From 2dd7cd829e165917bfe384febf21d9727b05fba4 Mon Sep 17 00:00:00 2001 From: hehao Date: Thu, 22 Mar 2018 04:29:14 +0800 Subject: [PATCH] Kernel: Xiaomi kernel changes for Redmi 5, Redmi 4A, Redmi 5A. The Patch based on QualComm release version: LA.UM.5.6.r1-05900-89xx.0 The kernel config file used are: rosy-perf_defconfig(Redmi 5), S88505AA1-perf_defconfig(Redmi 5A), S88503AC1-perf_defconfig(Redmi 4A) Change-Id: I384337b584abfd77ba82ddc59d2cc57ab5adb9ca Signed-off-by: hehao --- AndroidKernel.mk | 38 +- Makefile | 9 + arch/arm/boot/dts/qcom/Makefile | 19 +- .../batterydata-D1_Default-4v4-3300mah.dtsi | 48 + .../qcom/batterydata-Scud-4v4-3300mah.dtsi | 48 + .../qcom/batterydata-Sunwoda-4v4-3300mah.dtsi | 48 + .../qcom/batterydata-qrd-Atl-4v4-4100mah.dtsi | 48 + .../batterydata-qrd-Coslight-4v4-4100mah.dtsi | 48 + .../batterydata-qrd-Default-4v4-4100mah.dtsi | 48 + .../batterydata-qrd-Desay-4v4-4100mah.dtsi | 48 + .../batterydata-qrd-sku1-4v4-2800mah.dtsi | 2 +- ...ta-wingtech-desai_SAMSUNG-4v4-4000mah.dtsi | 117 + ...a-wingtech-feimaotui_SONY-4v4-3030mah.dtsi | 120 + ...a-wingtech-feimaotui_SONY-4v4-4000mah.dtsi | 122 + ...wingtech-guangyu_Coslight-4v4-4000mah.dtsi | 111 + ...a-wingtech-xingwangda_ATL-4v4-3030mah.dtsi | 116 + ...a-wingtech-xingwangda_ATL-4v4-4000mah.dtsi | 119 + .../dsi-panel-ft8006m-boe-5p7-720p-video.dtsi | 110 + .../dsi-panel-ft8613-csot-5p7-720p-video.dtsi | 204 + ...dsi-panel-ft8613-ebbg-5p5-1080p-video.dtsi | 99 + .../dsi-panel-ft8613-ebbg-5p7-720p-video.dtsi | 216 + .../dsi-panel-hx8394f-boe-720p-video.dtsi | 128 + .../dsi-panel-hx8394f-boe-c3a-720p-video.dtsi | 175 + .../dsi-panel-hx8394f-boe-c3b-720p-video.dtsi | 197 + .../dsi-panel-ili9881c-ebbg-720p-video.dtsi | 818 + ...si-panel-ili9881c-ebbg-c3a-720p-video.dtsi | 3418 +++ ...si-panel-ili9881c-ebbg-c3b-720p-video.dtsi | 3748 +++ ...dsi-panel-ili9881c-ebbgDJN-720p-video.dtsi | 819 + ...panel-ili9881c-ebbgDJN-c3b-720p-video.dtsi | 3748 +++ ...-panel-ili9881c-tianma-c3b-720p-video.dtsi | 18892 ++++++++++++++++ ...si-panel-nt35521s-ebbg-c3a-720p-video.dtsi | 233 + arch/arm/boot/dts/qcom/msm-audio.dtsi | 8 +- arch/arm/boot/dts/qcom/msm-pm8937.dtsi | 5 + .../dts/qcom/msm-pm8953-rpm-regulator.dtsi | 4 +- arch/arm/boot/dts/qcom/msm-pm8953.dtsi | 5 + arch/arm/boot/dts/qcom/msm-pmi8940.dtsi | 12 +- arch/arm/boot/dts/qcom/msm-pmi8950.dtsi | 18 +- .../boot/dts/qcom/msm8917-camera-pinctrl.dtsi | 13 + .../msm8917-camera-sensor-qrd-s88503.dtsi | 459 + .../msm8917-camera-sensor-qrd-s88505.dtsi | 405 + .../dts/qcom/msm8917-camera-sensor-qrd.dtsi | 332 +- arch/arm/boot/dts/qcom/msm8917-pinctrl.dtsi | 121 +- arch/arm/boot/dts/qcom/msm8917-pm.dtsi | 2 + .../qcom/msm8917-pmi8937-qrd-sku5_S88503.dts | 28 + .../qcom/msm8917-pmi8937-qrd-sku5_S88503.dtsi | 437 + .../qcom/msm8917-pmi8937-qrd-sku5_S88505.dts | 28 + .../qcom/msm8917-pmi8937-qrd-sku5_S88505.dtsi | 442 + arch/arm/boot/dts/qcom/msm8917-qrd.dtsi | 2 +- .../arm/boot/dts/qcom/msm8917-qrd_S88503.dtsi | 40 + .../arm/boot/dts/qcom/msm8917-qrd_S88505.dtsi | 43 + arch/arm/boot/dts/qcom/msm8917.dtsi | 55 +- arch/arm/boot/dts/qcom/msm8937-audio.dtsi | 2 +- .../msm8937-camera-sensor-qrd-wt88536.dtsi | 425 + arch/arm/boot/dts/qcom/msm8937-pinctrl.dtsi | 110 +- .../boot/dts/qcom/msm8937-pmi8950-mtp.dtsi | 53 + .../msm8937-pmi8950-qrd-sku1_S88536AA2.dtsi | 328 + arch/arm/boot/dts/qcom/msm8937-qrd.dtsi | 8 +- arch/arm/boot/dts/qcom/msm8937-regulator.dtsi | 4 +- arch/arm/boot/dts/qcom/msm8937.dtsi | 13 +- .../boot/dts/qcom/msm8940-pmi8950-mtp.dtsi | 43 + .../msm8940-pmi8950-qrd-sku7_S88536AA2.dts | 89 + arch/arm/boot/dts/qcom/msm8940.dtsi | 14 +- .../boot/dts/qcom/msm8952-mdss-panels.dtsi | 6 +- arch/arm/boot/dts/qcom/msm8953-audio.dtsi | 8 +- .../arm/boot/dts/qcom/msm8953-audio_rosy.dtsi | 263 + .../qcom/msm8953-camera-sensor-qrd_rosy.dtsi | 323 + arch/arm/boot/dts/qcom/msm8953-mtp_rosy.dtsi | 405 + .../boot/dts/qcom/msm8953-pinctrl_rosy.dtsi | 1476 ++ arch/arm/boot/dts/qcom/msm8953-pm.dtsi | 2 + .../boot/dts/qcom/msm8953-qrd-sku3_rosy.dtsi | 185 + arch/arm/boot/dts/qcom/msm8953-qrd_rosy.dtsi | 479 + arch/arm/boot/dts/qcom/msm8953-regulator.dtsi | 7 +- arch/arm/boot/dts/qcom/msm8953.dtsi | 8 +- arch/arm/boot/dts/qcom/msm8953_rosy.dtsi | 2591 +++ arch/arm/boot/dts/qcom/sdm450-qrd_rosy.dts | 23 + arch/arm/boot/dts/qcom/sdm450_rosy.dtsi | 120 + arch/arm/mach-nspire/Makefile.boot | 0 arch/arm64/Kconfig | 65 +- arch/arm64/configs/S88503AC1-perf_defconfig | 731 + arch/arm64/configs/S88505AA1-perf_defconfig | 755 + arch/arm64/configs/S88536AA2-perf_defconfig | 727 + arch/arm64/configs/S88536AA2_defconfig | 773 + arch/arm64/configs/rosy-perf_defconfig | 715 + arch/arm64/include/asm/bootinfo.h | 51 + arch/arm64/include/asm/processor.h | 1 + arch/arm64/kernel/Makefile | 1 + arch/arm64/kernel/bootinfo.c | 203 + arch/arm64/kernel/setup.c | 15 + arch/arm64/kernel/smp_spin_table.c | 1 + block/blk-flush.c | 15 +- block/blk-mq-tag.c | 2 +- block/blk-mq-tag.h | 12 + block/blk-mq.c | 16 +- block/blk.h | 6 + crypto/algif_skcipher.c | 14 +- drivers/Kconfig | 5 + drivers/Makefile | 6 + drivers/base/platform.c | 11 +- drivers/block/zram/Kconfig | 10 +- drivers/block/zram/zcomp.c | 301 +- drivers/block/zram/zcomp.h | 17 +- drivers/block/zram/zcomp_lz4.c | 16 +- drivers/block/zram/zcomp_lzo.c | 16 +- drivers/block/zram/zram_drv.c | 1218 +- drivers/block/zram/zram_drv.h | 12 +- drivers/char/diag/diag_masks.c | 20 + drivers/char/diag/diag_usb.c | 18 +- drivers/char/diag/diag_usb.h | 1 + drivers/char/diag/diagfwd.c | 7 +- drivers/clk/msm/clock-debug.c | 3 +- drivers/cpufreq/cpufreq_interactive.c | 15 + drivers/fingerprint/Kconfig | 7 + drivers/fingerprint/Makefile | 2 + drivers/fingerprint/fpc/Kconfig | 5 + drivers/fingerprint/fpc/Makefile | 1 + drivers/fingerprint/fpc/fpc1020_tee.c | 715 + drivers/fingerprint/goodix/Kconfig | 5 + drivers/fingerprint/goodix/Makefile | 1 + drivers/fingerprint/goodix/gf_spi.c | 925 + drivers/fingerprint/goodix/gf_spi.h | 108 + drivers/fingerprint/goodix/netlink.c | 97 + drivers/fingerprint/goodix/platform.c | 198 + drivers/fingerprintrosy/Kconfig | 8 + drivers/fingerprintrosy/Makefile | 3 + drivers/fingerprintrosy/fpcrosy/Kconfig | 6 + drivers/fingerprintrosy/fpcrosy/Makefile | 1 + drivers/fingerprintrosy/fpcrosy/fpc1020_tee.c | 647 + drivers/fingerprintrosy/goodixrosy/Kconfig | 5 + drivers/fingerprintrosy/goodixrosy/Makefile | 1 + drivers/fingerprintrosy/goodixrosy/gf_spi.c | 940 + drivers/fingerprintrosy/goodixrosy/gf_spi.h | 158 + drivers/fingerprintrosy/goodixrosy/netlink.c | 97 + drivers/fingerprintrosy/goodixrosy/platform.c | 113 + drivers/gpio/gpiolib.c | 8 - drivers/gpu/drm/nouveau/nouveau_usif.c | 7 +- drivers/gpu/msm/adreno_dispatch.c | 8 +- drivers/gpu/msm/kgsl.c | 2 +- drivers/hwmon/qpnp-adc-common.c | 114 + drivers/input/Makefile | 1 + drivers/input/misc/keychord.c | 4 +- drivers/input/radio_freq_up.c | 292 + drivers/input/touchscreen/FT5346/Kconfig | 5 + drivers/input/touchscreen/FT5346/Makefile | 3 + .../FT5346/focaltech_global/Makefile | 6 + .../focaltech_global/focaltech_global.h | 19 + .../focaltech_global/focaltech_ic_table.c | 531 + .../focaltech_global/focaltech_ic_table.h | 114 + .../FT5346/focaltech_test/Makefile | 9 + .../focaltech_test/focaltech_test_config.h | 35 + .../include/focaltech_test_detail_threshold.h | 142 + .../include/focaltech_test_ini.h | 66 + .../include/focaltech_test_main.h | 239 + .../include/focaltech_test_supported_ic.h | 1543 ++ .../FT5346/focaltech_test/src/Makefile | 12 + .../focaltech_test/src/focaltech_test.c | 534 + .../src/focaltech_test_detail_threshold.c | 2144 ++ .../src/focaltech_test_global.c | 535 + .../focaltech_test/src/focaltech_test_ini.c | 432 + .../focaltech_test/src/focaltech_test_main.c | 253 + .../focaltech_test/supported_ic/Makefile | 10 + .../focaltech_test_config_ft5x46.c | 524 + .../supported_ic/focaltech_test_ft5x46.c | 2327 ++ .../focaltech_test_supported_ic.c | 270 + drivers/input/touchscreen/FT5346/ft5346.c | 3296 +++ .../touchscreen/FT5346/ft_app_ic_ds_ebbg.txt | 3093 +++ .../FT5346/ft_app_ic_ds_ebbg_ili.txt | 3093 +++ .../FT5346/ft_app_ic_lens_tianma.txt | 2713 +++ .../FT5346/ft_app_ic_oufei_ebbg.txt | 2820 +++ .../FT5346/ft_app_ic_oufei_ebbg_ili.txt | 3091 +++ .../FT5346/ft_app_ic_oufei_ebbg_nt.txt | 3091 +++ .../FT5346/ft_app_ic_oufei_tianma.txt | 3093 +++ drivers/input/touchscreen/FT8006m/Kconfig | 17 + drivers/input/touchscreen/FT8006m/Makefile | 18 + .../touchscreen/FT8006m/focaltech_common.h | 222 + .../touchscreen/FT8006m/focaltech_config.h | 268 + .../touchscreen/FT8006m/focaltech_core.c | 1715 ++ .../touchscreen/FT8006m/focaltech_core.h | 212 + .../touchscreen/FT8006m/focaltech_esdcheck.c | 458 + .../touchscreen/FT8006m/focaltech_ex_fun.c | 1236 + .../touchscreen/FT8006m/focaltech_ex_mode.c | 347 + .../touchscreen/FT8006m/focaltech_flash.c | 808 + .../touchscreen/FT8006m/focaltech_flash.h | 131 + .../FT8006m/focaltech_flash/Makefile | 10 + .../focaltech_upgrade_common.h | 57 + .../focaltech_upgrade_ft8006.c | 1348 ++ .../focaltech_flash/focaltech_upgrade_idc.c | 575 + .../focaltech_flash/focaltech_upgrade_test.c | 167 + .../touchscreen/FT8006m/focaltech_gesture.c | 683 + .../input/touchscreen/FT8006m/focaltech_i2c.c | 217 + .../FT8006m/focaltech_point_report_check.c | 150 + .../touchscreen/FT8006m/focaltech_sensor.c | 314 + .../FT8006m/focaltech_test/Makefile | 10 + .../focaltech_test/focaltech_test_config.h | 63 + .../include/focaltech_ic_table.h | 115 + .../include/focaltech_test_detail_threshold.h | 131 + .../include/focaltech_test_ini.h | 66 + .../include/focaltech_test_main.h | 240 + .../include/focaltech_test_supported_ic.h | 1576 ++ .../FT8006m/focaltech_test/src/Makefile | 12 + .../focaltech_test/src/focaltech_ic_table.c | 532 + .../focaltech_test/src/focaltech_test.c | 812 + .../src/focaltech_test_detail_threshold.c | 1812 ++ .../src/focaltech_test_global.c | 498 + .../focaltech_test/src/focaltech_test_ini.c | 433 + .../focaltech_test/src/focaltech_test_main.c | 253 + .../focaltech_test/supported_ic/Makefile | 9 + .../focaltech_test_config_ft8006.c | 430 + .../supported_ic/focaltech_test_ft8006.c | 2101 ++ .../focaltech_test_supported_ic.c | 268 + .../include/firmware/FT8006m_app_sample.i | 5329 +++++ .../FT8006m/include/firmware/black_all.i | 7029 ++++++ .../FT8006m/include/firmware/white_all.i | 7029 ++++++ .../pramboot/FT8716_Pramboot_V0.5_20160723.i | 246 + drivers/input/touchscreen/FT8716/Kconfig | 16 + drivers/input/touchscreen/FT8716/Makefile | 18 + .../touchscreen/FT8716/focaltech_common.h | 221 + .../touchscreen/FT8716/focaltech_config.h | 261 + .../input/touchscreen/FT8716/focaltech_core.c | 1723 ++ .../input/touchscreen/FT8716/focaltech_core.h | 212 + .../touchscreen/FT8716/focaltech_esdcheck.c | 466 + .../touchscreen/FT8716/focaltech_ex_fun.c | 1230 + .../touchscreen/FT8716/focaltech_ex_mode.c | 347 + .../touchscreen/FT8716/focaltech_flash.c | 723 + .../touchscreen/FT8716/focaltech_flash.h | 131 + .../FT8716/focaltech_flash/Makefile | 10 + .../focaltech_upgrade_common.h | 57 + .../focaltech_upgrade_ft8716.c | 497 + .../focaltech_flash/focaltech_upgrade_idc.c | 575 + .../focaltech_flash/focaltech_upgrade_test.c | 167 + .../touchscreen/FT8716/focaltech_gesture.c | 683 + .../input/touchscreen/FT8716/focaltech_i2c.c | 206 + .../FT8716/focaltech_point_report_check.c | 150 + .../touchscreen/FT8716/focaltech_sensor.c | 314 + .../FT8716/focaltech_test/Makefile | 10 + .../focaltech_test/focaltech_test_config.h | 63 + .../include/focaltech_ic_table.h | 115 + .../include/focaltech_test_detail_threshold.h | 131 + .../include/focaltech_test_ini.h | 66 + .../include/focaltech_test_main.h | 240 + .../include/focaltech_test_supported_ic.h | 1589 ++ .../FT8716/focaltech_test/src/Makefile | 12 + .../focaltech_test/src/focaltech_ic_table.c | 534 + .../focaltech_test/src/focaltech_test.c | 902 + .../src/focaltech_test_detail_threshold.c | 1812 ++ .../src/focaltech_test_global.c | 499 + .../focaltech_test/src/focaltech_test_ini.c | 433 + .../focaltech_test/src/focaltech_test_main.c | 252 + .../focaltech_test/supported_ic/Makefile | 9 + .../focaltech_test_config_ft8716.c | 360 + .../supported_ic/focaltech_test_ft8716.c | 1450 ++ .../focaltech_test_supported_ic.c | 268 + .../include/firmware/FT8716_app_csot_sample.i | 3694 +++ .../include/firmware/FT8716_app_ebbg_sample.i | 3700 +++ .../pramboot/FT8716_Pramboot_V0.5_20160723.i | 246 + drivers/input/touchscreen/GT915L/FW_BIEL.txt | 11265 +++++++++ drivers/input/touchscreen/GT915L/FW_EACH.txt | 11265 +++++++++ drivers/input/touchscreen/GT915L/Kconfig | 5 + drivers/input/touchscreen/GT915L/Makefile | 4 + .../input/touchscreen/GT915L/goodix_tool.c | 736 + drivers/input/touchscreen/GT915L/gt9xx.c | 3495 +++ drivers/input/touchscreen/GT915L/gt9xx.h | 370 + .../input/touchscreen/GT915L/gt9xx_firmware.h | 43 + .../input/touchscreen/GT915L/gt9xx_update.c | 3251 +++ drivers/input/touchscreen/GT917D/FW_BIEL.txt | 5633 +++++ drivers/input/touchscreen/GT917D/FW_EACH.txt | 11265 +++++++++ drivers/input/touchscreen/GT917D/Kconfig | 5 + drivers/input/touchscreen/GT917D/Makefile | 4 + .../input/touchscreen/GT917D/goodix_tool.c | 707 + drivers/input/touchscreen/GT917D/gt917.c | 3570 +++ drivers/input/touchscreen/GT917D/gt9xx.h | 349 + .../input/touchscreen/GT917D/gt9xx_firmware.h | 42 + .../input/touchscreen/GT917D/gt9xx_update.c | 3251 +++ drivers/input/touchscreen/Kconfig | 30 + drivers/input/touchscreen/Makefile | 7 + drivers/input/touchscreen/ft5336/Kconfig | 5 + drivers/input/touchscreen/ft5336/Makefile | 3 + .../ft5336/focal_mcap_test_lib64.a_shipped | Bin 0 -> 71588 bytes .../input/touchscreen/ft5336/ft5x06_720p.c | 2996 +++ .../touchscreen/ft5336/ft5x06_test_lib.h | 24 + .../ft5336/ft_app_ic_biel_boe_720p.txt | 1807 ++ .../ft5336/ft_app_ic_biel_ebbg_720p.txt | 1810 ++ .../ft5336/ft_app_ic_lens_tianma_720p.txt | 1806 ++ .../ft5336/ft_app_ic_oufei_boe_720p.txt | 1810 ++ .../ft5336/ft_app_ic_oufei_tianma_720p.txt | 1806 ++ drivers/input/touchscreen/gen_vkeys.c | 2 +- drivers/input/touchscreen/gen_vkeys_gt.c | 229 + drivers/input/touchscreen/synaptics_rmi_dev.c | 10 +- drivers/irqchip/msm_show_resume_irq.c | 2 +- drivers/leds/Kconfig | 16 + drivers/leds/Makefile | 6 +- drivers/leds/gpio_vib.c | 224 + drivers/leds/led-triggers.c | 21 + drivers/leds/leds-aw2013.c | 1146 +- drivers/leds/leds-gpio.c | 396 +- drivers/leds/leds-msm-gpio-flash.c | 325 + drivers/leds/leds-qpnp-flash.c | 29 + drivers/leds/leds-qpnp-wled.c | 8 +- drivers/md/dm-verity-target.c | 2 +- .../msm/camera_v2/pproc/cpp/msm_cpp.c | 138 + .../camera_v2/sensor/actuator/msm_actuator.c | 65 +- .../msm/camera_v2/sensor/cci/msm_cci.c | 9 +- .../msm/camera_v2/sensor/eeprom/Makefile | 1 + .../msm/camera_v2/sensor/eeprom/msm_eeprom.c | 404 +- .../msm/camera_v2/sensor/eeprom/msm_eeprom.h | 4 + .../eeprom/msm_eeprom_insensor_ov13850.c | 62 + .../sensor/eeprom/msm_eeprom_otp_interface.h | 90 + .../msm/camera_v2/sensor/flash/msm_flash.c | 108 +- .../msm/camera_v2/sensor/msm_sensor_driver.c | 361 +- drivers/media/radio/radio-iris-transport.c | 4 + drivers/media/radio/radio-iris.c | 42 +- drivers/media/v4l2-core/v4l2-compat-ioctl32.c | 627 +- drivers/mfd/wcd9xxx-core.c | 8 +- drivers/misc/Makefile | 1 + drivers/misc/hardware_info.c | 331 + drivers/mmc/Kconfig | 8 + drivers/mmc/card/block.c | 84 +- drivers/mmc/card/queue.c | 20 +- drivers/mmc/core/bus.c | 14 + drivers/mmc/core/core.c | 37 +- drivers/mmc/core/core.h | 2 + drivers/mmc/core/debugfs.c | 38 +- drivers/mmc/core/mmc.c | 62 +- drivers/mmc/core/sd.c | 17 +- drivers/mmc/core/sdio.c | 12 +- drivers/mmc/host/cmdq_hci.c | 11 +- drivers/mmc/host/sdhci.c | 4 +- drivers/net/ethernet/amd/xgbe/xgbe.h | 2 +- drivers/net/ethernet/broadcom/bnx2x/bnx2x.h | 2 +- drivers/net/ethernet/freescale/fec.h | 1 + drivers/net/ethernet/intel/e1000e/e1000.h | 2 +- drivers/net/ethernet/intel/igb/igb.h | 2 +- drivers/net/ethernet/intel/ixgbe/ixgbe.h | 2 +- drivers/net/ethernet/ti/cpts.h | 1 + drivers/of/fdt.c | 18 + drivers/of/of_batterydata.c | 59 +- drivers/platform/msm/qpnp-power-on.c | 121 + drivers/power/Kconfig | 64 + drivers/power/Makefile | 3 + drivers/power/bq2560x.h | 69 + drivers/power/bq2560x_charger.c | 2466 ++ drivers/power/bq2560x_reg.h | 307 + drivers/power/bq27426_fg.c | 2290 ++ drivers/power/bq27426_gmfs.h | 946 + drivers/power/bq27426_gmfs_atl.h | 822 + drivers/power/bq27426_gmfs_default.h | 946 + drivers/power/bq27426_gmfs_desay.h | 822 + drivers/power/bq27426_gmfs_scud.h | 822 + drivers/power/bq27426_gmfs_sunwoda.h | 822 + drivers/power/bqfs_cmd_type.h | 42 + drivers/power/cw2015_battery.c | 1300 ++ drivers/power/pmic-voter.c | 2 +- drivers/power/power_supply_core.c | 85 + drivers/power/power_supply_sysfs.c | 3 + .../power/profile_WT1001_88509_NT_Feimaotui.h | 64 + drivers/power/profile_WT702_88509_NT_DeSai.h | 64 + .../power/profile_WT801_88509_NT_XinWangDa.h | 64 + .../power/profile_WT902_88509_NT_GuangYu.h | 64 + drivers/power/qpnp-fg.c | 265 +- drivers/power/qpnp-smbcharger.c | 467 +- drivers/power/reset/msm-poweroff.c | 60 +- drivers/power/smb358-charger.c | 1241 +- drivers/regulator/Kconfig | 14 + drivers/regulator/Makefile | 1 + drivers/regulator/tps65132-regulator.c | 628 + drivers/scsi/sg.c | 37 +- drivers/soc/qcom/Kconfig | 15 + drivers/soc/qcom/Makefile | 3 + drivers/soc/qcom/cpumaxfreq.c | 60 + drivers/soc/qcom/secboot_fuse.c | 121 + drivers/soc/qcom/serial_num.c | 121 + drivers/soc/qcom/subsystem_restart.c | 138 +- drivers/soc/qcom/watchdog_v2.c | 22 + drivers/spi/spidev.c | 74 +- drivers/staging/Kconfig | 4 + drivers/staging/Makefile | 3 + drivers/staging/android/Kconfig | 28 + drivers/staging/android/Makefile | 4 +- drivers/staging/android/ashmem.c | 3 + drivers/staging/android/binder.c | 4996 ++-- drivers/staging/android/binder_alloc.c | 1012 + drivers/staging/android/binder_alloc.h | 185 + .../staging/android/binder_alloc_selftest.c | 310 + drivers/staging/android/binder_trace.h | 120 +- drivers/staging/android/ion/ion.c | 2 +- drivers/staging/android/ion/ion_system_heap.c | 2 +- drivers/staging/android/lowmemorykiller.c | 476 +- drivers/staging/android/memsw_state.c | 306 + drivers/staging/android/memsw_state.h | 45 + drivers/staging/android/uapi/binder.h | 169 +- drivers/staging/ktrace/Kconfig | 6 + drivers/staging/ktrace/Makefile | 3 + drivers/staging/ktrace/ktrace_binder.c | 216 + drivers/staging/ktrace/ktrace_cpufreq.c | 316 + drivers/staging/ktrace/ktrace_event.c | 133 + drivers/staging/ktrace/ktrace_main.c | 52 + drivers/staging/ktrace/ktrace_mm.c | 284 + drivers/staging/ktrace/ktrace_print.c | 109 + drivers/staging/ktrace/ktrace_queue.c | 238 + drivers/staging/ktrace/ktrace_sched.c | 568 + drivers/staging/rtmm/Kconfig | 5 + drivers/staging/rtmm/Makefile | 1 + drivers/staging/rtmm/rtmm_main.c | 37 + drivers/staging/rtmm/rtmm_pool.c | 402 + drivers/staging/rtmm/rtmm_reclaim.c | 609 + drivers/usb/dwc3/dwc3-msm.c | 91 +- drivers/usb/dwc3/gadget.c | 14 +- drivers/usb/gadget/android.c | 7 + drivers/usb/gadget/ci13xxx_msm.c | 7 + drivers/usb/gadget/ci13xxx_udc.c | 7 +- drivers/usb/gadget/composite.c | 8 +- drivers/usb/gadget/function/f_mtp.c | 10 + drivers/usb/phy/phy-msm-usb.c | 60 +- drivers/video/fbdev/core/fbmem.c | 15 +- drivers/video/msm/mdss/mdss_dsi.c | 247 +- drivers/video/msm/mdss/mdss_dsi.h | 37 + drivers/video/msm/mdss/mdss_dsi_host.c | 17 +- drivers/video/msm/mdss/mdss_dsi_panel.c | 236 +- drivers/video/msm/mdss/mdss_dsi_status.c | 2 +- drivers/video/msm/mdss/mdss_fb.c | 215 +- drivers/video/msm/mdss/mdss_fb.h | 4 + drivers/video/msm/mdss/mdss_mdp_overlay.c | 1 + drivers/video/msm/mdss/mdss_panel.h | 4 + drivers/video/msm/mdss/mdss_rotator.c | 4 +- fs/attr.c | 12 +- fs/coredump.c | 2 +- fs/ecryptfs/keystore.c | 11 +- fs/exec.c | 2 +- fs/inode.c | 6 +- fs/internal.h | 4 +- fs/namei.c | 179 +- fs/namespace.c | 32 +- fs/notify/fanotify/fanotify_user.c | 2 +- fs/notify/inotify/inotify_user.c | 4 +- fs/open.c | 37 +- fs/pnode.c | 15 + fs/pnode.h | 1 + fs/proc/task_mmu.c | 18 +- fs/proc_namespace.c | 8 +- fs/pstore/Kconfig | 8 + fs/pstore/inode.c | 40 + fs/pstore/ram.c | 38 +- fs/sdcardfs/dentry.c | 70 +- fs/sdcardfs/derived_perm.c | 402 +- fs/sdcardfs/file.c | 114 +- fs/sdcardfs/inode.c | 423 +- fs/sdcardfs/lookup.c | 230 +- fs/sdcardfs/main.c | 207 +- fs/sdcardfs/mmap.c | 76 +- fs/sdcardfs/multiuser.h | 30 +- fs/sdcardfs/packagelist.c | 865 +- fs/sdcardfs/sdcardfs.h | 292 +- fs/sdcardfs/super.c | 138 +- fs/super.c | 28 +- fs/utimes.c | 4 +- include/clocksource/arm_arch_timer.h | 2 +- include/dt-bindings/input/input.h | 2 + include/linux/clocksource.h | 102 - include/linux/dcache.h | 8 +- include/linux/delay.h | 5 + include/linux/fb.h | 1 + include/linux/fs.h | 24 +- include/linux/hardware_info.h | 54 + include/linux/input/ft5346.h | 348 + include/linux/input/ft5x06_720p.h | 334 + include/linux/input/gen_vkeys_gt.h | 24 + include/linux/ktrace.h | 287 + include/linux/mdss_io_util.h | 2 + include/linux/mlx4/device.h | 2 +- include/linux/mm.h | 3 + include/linux/mm_types.h | 2 + include/linux/mmc/card.h | 2 + include/linux/mmc/host.h | 5 +- include/linux/mmc/mmc.h | 2 + include/linux/mount.h | 1 + include/linux/namei.h | 1 + include/linux/of_fdt.h | 2 + include/linux/pagemap.h | 5 - include/linux/pid.h | 4 +- include/linux/power/cw2015_battery.h | 55 + include/linux/power_supply.h | 4 + include/linux/qpnp/power-on.h | 7 + include/linux/rtmm.h | 31 + include/linux/sched.h | 21 +- include/linux/timecounter.h | 122 + include/linux/types.h | 3 + include/linux/usb/msm_hsusb.h | 6 +- include/linux/zpool.h | 15 +- include/linux/zsmalloc.h | 10 +- include/scsi/fc/Kbuild | 0 include/sound/rawmidi.h | 1 + include/uapi/linux/input.h | 5 + include/uapi/linux/msm_mdp.h | 5 + ipc/mqueue.c | 10 +- kernel/bpf/verifier.c | 21 +- kernel/cpu.c | 5 + kernel/cpuset.c | 55 +- kernel/events/core.c | 61 +- kernel/fork.c | 60 +- kernel/pid.c | 11 +- kernel/power/Kconfig | 10 + kernel/power/suspend.c | 2 + kernel/sched/qhmp_core.c | 25 + kernel/sched/qhmp_fair.c | 7 + kernel/sched/sched_avg.c | 2 +- kernel/time/Makefile | 2 +- kernel/time/alarmtimer.c | 25 + kernel/time/clocksource.c | 76 - kernel/time/timecounter.c | 95 + lib/Kconfig.debug | 15 + mm/mempolicy.c | 20 +- mm/migrate.c | 11 +- mm/page_alloc.c | 28 +- mm/vmscan.c | 46 + mm/zpool.c | 102 +- mm/zsmalloc.c | 507 +- net/bluetooth/bnep/core.c | 3 + net/core/iovec.c | 4 + net/dccp/ipv6.c | 6 + net/ipc_router/ipc_router_core.c | 2 +- net/ipv4/tcp.c | 6 + net/ipv4/tcp_ipv4.c | 8 + net/ipv6/ip6_gre.c | 40 +- net/ipv6/tcp_ipv6.c | 3 +- net/ipx/af_ipx.c | 5 +- net/rmnet_data/rmnet_data_handlers.c | 1 + net/wireless/nl80211.c | 3 +- net/xfrm/xfrm_policy.c | 6 + security/commoncap.c | 9 +- security/inode.c | 2 +- sound/core/pcm.c | 4 +- sound/core/rawmidi.c | 44 +- sound/core/seq/seq_clientmgr.c | 14 +- sound/core/seq/seq_ports.c | 10 +- sound/core/timer.c | 224 +- sound/pci/hda/hda_priv.h | 2 +- sound/soc/codecs/msm8x16-wcd.c | 67 +- sound/soc/codecs/wcd-mbhc-v2.c | 123 +- sound/soc/codecs/wcd-mbhc-v2.h | 1 + sound/soc/msm/AW87319_Audio_M.c | 454 + sound/soc/msm/Kconfig | 3 + sound/soc/msm/Makefile | 3 + sound/soc/msm/msm8952.c | 410 +- sound/soc/msm/qdsp6v2/q6asm.c | 20 +- sound/soc/msm/qdsp6v2/rtac.c | 32 + sound/usb/endpoint.c | 7 +- .../powerpc/copyloops/asm/processor.h | 0 .../powerpc/primitives/asm/ppc-opcode.h | 0 tools/virtio/linux/hrtimer.h | 0 548 files changed, 251153 insertions(+), 5880 deletions(-) create mode 100644 arch/arm/boot/dts/qcom/batterydata-D1_Default-4v4-3300mah.dtsi create mode 100644 arch/arm/boot/dts/qcom/batterydata-Scud-4v4-3300mah.dtsi create mode 100644 arch/arm/boot/dts/qcom/batterydata-Sunwoda-4v4-3300mah.dtsi create mode 100644 arch/arm/boot/dts/qcom/batterydata-qrd-Atl-4v4-4100mah.dtsi create mode 100644 arch/arm/boot/dts/qcom/batterydata-qrd-Coslight-4v4-4100mah.dtsi create mode 100644 arch/arm/boot/dts/qcom/batterydata-qrd-Default-4v4-4100mah.dtsi create mode 100644 arch/arm/boot/dts/qcom/batterydata-qrd-Desay-4v4-4100mah.dtsi create mode 100644 arch/arm/boot/dts/qcom/batterydata-wingtech-desai_SAMSUNG-4v4-4000mah.dtsi create mode 100644 arch/arm/boot/dts/qcom/batterydata-wingtech-feimaotui_SONY-4v4-3030mah.dtsi create mode 100644 arch/arm/boot/dts/qcom/batterydata-wingtech-feimaotui_SONY-4v4-4000mah.dtsi create mode 100644 arch/arm/boot/dts/qcom/batterydata-wingtech-guangyu_Coslight-4v4-4000mah.dtsi create mode 100644 arch/arm/boot/dts/qcom/batterydata-wingtech-xingwangda_ATL-4v4-3030mah.dtsi create mode 100644 arch/arm/boot/dts/qcom/batterydata-wingtech-xingwangda_ATL-4v4-4000mah.dtsi create mode 100644 arch/arm/boot/dts/qcom/dsi-panel-ft8006m-boe-5p7-720p-video.dtsi create mode 100644 arch/arm/boot/dts/qcom/dsi-panel-ft8613-csot-5p7-720p-video.dtsi create mode 100644 arch/arm/boot/dts/qcom/dsi-panel-ft8613-ebbg-5p5-1080p-video.dtsi create mode 100644 arch/arm/boot/dts/qcom/dsi-panel-ft8613-ebbg-5p7-720p-video.dtsi create mode 100644 arch/arm/boot/dts/qcom/dsi-panel-hx8394f-boe-720p-video.dtsi create mode 100644 arch/arm/boot/dts/qcom/dsi-panel-hx8394f-boe-c3a-720p-video.dtsi create mode 100644 arch/arm/boot/dts/qcom/dsi-panel-hx8394f-boe-c3b-720p-video.dtsi create mode 100644 arch/arm/boot/dts/qcom/dsi-panel-ili9881c-ebbg-720p-video.dtsi create mode 100644 arch/arm/boot/dts/qcom/dsi-panel-ili9881c-ebbg-c3a-720p-video.dtsi create mode 100644 arch/arm/boot/dts/qcom/dsi-panel-ili9881c-ebbg-c3b-720p-video.dtsi create mode 100644 arch/arm/boot/dts/qcom/dsi-panel-ili9881c-ebbgDJN-720p-video.dtsi create mode 100644 arch/arm/boot/dts/qcom/dsi-panel-ili9881c-ebbgDJN-c3b-720p-video.dtsi create mode 100644 arch/arm/boot/dts/qcom/dsi-panel-ili9881c-tianma-c3b-720p-video.dtsi create mode 100644 arch/arm/boot/dts/qcom/dsi-panel-nt35521s-ebbg-c3a-720p-video.dtsi create mode 100644 arch/arm/boot/dts/qcom/msm8917-camera-sensor-qrd-s88503.dtsi create mode 100644 arch/arm/boot/dts/qcom/msm8917-camera-sensor-qrd-s88505.dtsi create mode 100644 arch/arm/boot/dts/qcom/msm8917-pmi8937-qrd-sku5_S88503.dts create mode 100644 arch/arm/boot/dts/qcom/msm8917-pmi8937-qrd-sku5_S88503.dtsi create mode 100644 arch/arm/boot/dts/qcom/msm8917-pmi8937-qrd-sku5_S88505.dts create mode 100644 arch/arm/boot/dts/qcom/msm8917-pmi8937-qrd-sku5_S88505.dtsi create mode 100644 arch/arm/boot/dts/qcom/msm8917-qrd_S88503.dtsi create mode 100644 arch/arm/boot/dts/qcom/msm8917-qrd_S88505.dtsi create mode 100644 arch/arm/boot/dts/qcom/msm8937-camera-sensor-qrd-wt88536.dtsi create mode 100644 arch/arm/boot/dts/qcom/msm8937-pmi8950-qrd-sku1_S88536AA2.dtsi create mode 100644 arch/arm/boot/dts/qcom/msm8940-pmi8950-qrd-sku7_S88536AA2.dts create mode 100644 arch/arm/boot/dts/qcom/msm8953-audio_rosy.dtsi create mode 100644 arch/arm/boot/dts/qcom/msm8953-camera-sensor-qrd_rosy.dtsi create mode 100644 arch/arm/boot/dts/qcom/msm8953-mtp_rosy.dtsi create mode 100644 arch/arm/boot/dts/qcom/msm8953-pinctrl_rosy.dtsi create mode 100644 arch/arm/boot/dts/qcom/msm8953-qrd-sku3_rosy.dtsi create mode 100644 arch/arm/boot/dts/qcom/msm8953-qrd_rosy.dtsi create mode 100644 arch/arm/boot/dts/qcom/msm8953_rosy.dtsi create mode 100644 arch/arm/boot/dts/qcom/sdm450-qrd_rosy.dts create mode 100644 arch/arm/boot/dts/qcom/sdm450_rosy.dtsi delete mode 100644 arch/arm/mach-nspire/Makefile.boot create mode 100644 arch/arm64/configs/S88503AC1-perf_defconfig create mode 100644 arch/arm64/configs/S88505AA1-perf_defconfig create mode 100644 arch/arm64/configs/S88536AA2-perf_defconfig create mode 100644 arch/arm64/configs/S88536AA2_defconfig create mode 100644 arch/arm64/configs/rosy-perf_defconfig create mode 100644 arch/arm64/include/asm/bootinfo.h create mode 100644 arch/arm64/kernel/bootinfo.c create mode 100755 drivers/fingerprint/Kconfig create mode 100755 drivers/fingerprint/Makefile create mode 100755 drivers/fingerprint/fpc/Kconfig create mode 100755 drivers/fingerprint/fpc/Makefile create mode 100644 drivers/fingerprint/fpc/fpc1020_tee.c create mode 100755 drivers/fingerprint/goodix/Kconfig create mode 100755 drivers/fingerprint/goodix/Makefile create mode 100755 drivers/fingerprint/goodix/gf_spi.c create mode 100755 drivers/fingerprint/goodix/gf_spi.h create mode 100755 drivers/fingerprint/goodix/netlink.c create mode 100755 drivers/fingerprint/goodix/platform.c create mode 100755 drivers/fingerprintrosy/Kconfig create mode 100755 drivers/fingerprintrosy/Makefile create mode 100755 drivers/fingerprintrosy/fpcrosy/Kconfig create mode 100755 drivers/fingerprintrosy/fpcrosy/Makefile create mode 100644 drivers/fingerprintrosy/fpcrosy/fpc1020_tee.c create mode 100755 drivers/fingerprintrosy/goodixrosy/Kconfig create mode 100755 drivers/fingerprintrosy/goodixrosy/Makefile create mode 100644 drivers/fingerprintrosy/goodixrosy/gf_spi.c create mode 100644 drivers/fingerprintrosy/goodixrosy/gf_spi.h create mode 100644 drivers/fingerprintrosy/goodixrosy/netlink.c create mode 100644 drivers/fingerprintrosy/goodixrosy/platform.c create mode 100644 drivers/input/radio_freq_up.c create mode 100644 drivers/input/touchscreen/FT5346/Kconfig create mode 100644 drivers/input/touchscreen/FT5346/Makefile create mode 100644 drivers/input/touchscreen/FT5346/focaltech_global/Makefile create mode 100644 drivers/input/touchscreen/FT5346/focaltech_global/focaltech_global.h create mode 100644 drivers/input/touchscreen/FT5346/focaltech_global/focaltech_ic_table.c create mode 100644 drivers/input/touchscreen/FT5346/focaltech_global/focaltech_ic_table.h create mode 100644 drivers/input/touchscreen/FT5346/focaltech_test/Makefile create mode 100644 drivers/input/touchscreen/FT5346/focaltech_test/focaltech_test_config.h create mode 100644 drivers/input/touchscreen/FT5346/focaltech_test/include/focaltech_test_detail_threshold.h create mode 100644 drivers/input/touchscreen/FT5346/focaltech_test/include/focaltech_test_ini.h create mode 100644 drivers/input/touchscreen/FT5346/focaltech_test/include/focaltech_test_main.h create mode 100644 drivers/input/touchscreen/FT5346/focaltech_test/include/focaltech_test_supported_ic.h create mode 100644 drivers/input/touchscreen/FT5346/focaltech_test/src/Makefile create mode 100644 drivers/input/touchscreen/FT5346/focaltech_test/src/focaltech_test.c create mode 100644 drivers/input/touchscreen/FT5346/focaltech_test/src/focaltech_test_detail_threshold.c create mode 100644 drivers/input/touchscreen/FT5346/focaltech_test/src/focaltech_test_global.c create mode 100644 drivers/input/touchscreen/FT5346/focaltech_test/src/focaltech_test_ini.c create mode 100644 drivers/input/touchscreen/FT5346/focaltech_test/src/focaltech_test_main.c create mode 100644 drivers/input/touchscreen/FT5346/focaltech_test/supported_ic/Makefile create mode 100644 drivers/input/touchscreen/FT5346/focaltech_test/supported_ic/focaltech_test_config_ft5x46.c create mode 100644 drivers/input/touchscreen/FT5346/focaltech_test/supported_ic/focaltech_test_ft5x46.c create mode 100644 drivers/input/touchscreen/FT5346/focaltech_test/supported_ic/focaltech_test_supported_ic.c create mode 100644 drivers/input/touchscreen/FT5346/ft5346.c create mode 100644 drivers/input/touchscreen/FT5346/ft_app_ic_ds_ebbg.txt create mode 100644 drivers/input/touchscreen/FT5346/ft_app_ic_ds_ebbg_ili.txt create mode 100644 drivers/input/touchscreen/FT5346/ft_app_ic_lens_tianma.txt create mode 100644 drivers/input/touchscreen/FT5346/ft_app_ic_oufei_ebbg.txt create mode 100644 drivers/input/touchscreen/FT5346/ft_app_ic_oufei_ebbg_ili.txt create mode 100644 drivers/input/touchscreen/FT5346/ft_app_ic_oufei_ebbg_nt.txt create mode 100644 drivers/input/touchscreen/FT5346/ft_app_ic_oufei_tianma.txt create mode 100755 drivers/input/touchscreen/FT8006m/Kconfig create mode 100755 drivers/input/touchscreen/FT8006m/Makefile create mode 100755 drivers/input/touchscreen/FT8006m/focaltech_common.h create mode 100644 drivers/input/touchscreen/FT8006m/focaltech_config.h create mode 100755 drivers/input/touchscreen/FT8006m/focaltech_core.c create mode 100755 drivers/input/touchscreen/FT8006m/focaltech_core.h create mode 100755 drivers/input/touchscreen/FT8006m/focaltech_esdcheck.c create mode 100644 drivers/input/touchscreen/FT8006m/focaltech_ex_fun.c create mode 100755 drivers/input/touchscreen/FT8006m/focaltech_ex_mode.c create mode 100644 drivers/input/touchscreen/FT8006m/focaltech_flash.c create mode 100644 drivers/input/touchscreen/FT8006m/focaltech_flash.h create mode 100755 drivers/input/touchscreen/FT8006m/focaltech_flash/Makefile create mode 100755 drivers/input/touchscreen/FT8006m/focaltech_flash/focaltech_upgrade_common.h create mode 100644 drivers/input/touchscreen/FT8006m/focaltech_flash/focaltech_upgrade_ft8006.c create mode 100755 drivers/input/touchscreen/FT8006m/focaltech_flash/focaltech_upgrade_idc.c create mode 100755 drivers/input/touchscreen/FT8006m/focaltech_flash/focaltech_upgrade_test.c create mode 100755 drivers/input/touchscreen/FT8006m/focaltech_gesture.c create mode 100644 drivers/input/touchscreen/FT8006m/focaltech_i2c.c create mode 100755 drivers/input/touchscreen/FT8006m/focaltech_point_report_check.c create mode 100755 drivers/input/touchscreen/FT8006m/focaltech_sensor.c create mode 100755 drivers/input/touchscreen/FT8006m/focaltech_test/Makefile create mode 100755 drivers/input/touchscreen/FT8006m/focaltech_test/focaltech_test_config.h create mode 100755 drivers/input/touchscreen/FT8006m/focaltech_test/include/focaltech_ic_table.h create mode 100755 drivers/input/touchscreen/FT8006m/focaltech_test/include/focaltech_test_detail_threshold.h create mode 100755 drivers/input/touchscreen/FT8006m/focaltech_test/include/focaltech_test_ini.h create mode 100755 drivers/input/touchscreen/FT8006m/focaltech_test/include/focaltech_test_main.h create mode 100755 drivers/input/touchscreen/FT8006m/focaltech_test/include/focaltech_test_supported_ic.h create mode 100755 drivers/input/touchscreen/FT8006m/focaltech_test/src/Makefile create mode 100755 drivers/input/touchscreen/FT8006m/focaltech_test/src/focaltech_ic_table.c create mode 100755 drivers/input/touchscreen/FT8006m/focaltech_test/src/focaltech_test.c create mode 100755 drivers/input/touchscreen/FT8006m/focaltech_test/src/focaltech_test_detail_threshold.c create mode 100755 drivers/input/touchscreen/FT8006m/focaltech_test/src/focaltech_test_global.c create mode 100755 drivers/input/touchscreen/FT8006m/focaltech_test/src/focaltech_test_ini.c create mode 100755 drivers/input/touchscreen/FT8006m/focaltech_test/src/focaltech_test_main.c create mode 100755 drivers/input/touchscreen/FT8006m/focaltech_test/supported_ic/Makefile create mode 100644 drivers/input/touchscreen/FT8006m/focaltech_test/supported_ic/focaltech_test_config_ft8006.c create mode 100644 drivers/input/touchscreen/FT8006m/focaltech_test/supported_ic/focaltech_test_ft8006.c create mode 100755 drivers/input/touchscreen/FT8006m/focaltech_test/supported_ic/focaltech_test_supported_ic.c create mode 100644 drivers/input/touchscreen/FT8006m/include/firmware/FT8006m_app_sample.i create mode 100644 drivers/input/touchscreen/FT8006m/include/firmware/black_all.i create mode 100644 drivers/input/touchscreen/FT8006m/include/firmware/white_all.i create mode 100755 drivers/input/touchscreen/FT8006m/include/pramboot/FT8716_Pramboot_V0.5_20160723.i create mode 100755 drivers/input/touchscreen/FT8716/Kconfig create mode 100755 drivers/input/touchscreen/FT8716/Makefile create mode 100755 drivers/input/touchscreen/FT8716/focaltech_common.h create mode 100755 drivers/input/touchscreen/FT8716/focaltech_config.h create mode 100755 drivers/input/touchscreen/FT8716/focaltech_core.c create mode 100755 drivers/input/touchscreen/FT8716/focaltech_core.h create mode 100755 drivers/input/touchscreen/FT8716/focaltech_esdcheck.c create mode 100755 drivers/input/touchscreen/FT8716/focaltech_ex_fun.c create mode 100755 drivers/input/touchscreen/FT8716/focaltech_ex_mode.c create mode 100755 drivers/input/touchscreen/FT8716/focaltech_flash.c create mode 100755 drivers/input/touchscreen/FT8716/focaltech_flash.h create mode 100755 drivers/input/touchscreen/FT8716/focaltech_flash/Makefile create mode 100755 drivers/input/touchscreen/FT8716/focaltech_flash/focaltech_upgrade_common.h create mode 100755 drivers/input/touchscreen/FT8716/focaltech_flash/focaltech_upgrade_ft8716.c create mode 100755 drivers/input/touchscreen/FT8716/focaltech_flash/focaltech_upgrade_idc.c create mode 100755 drivers/input/touchscreen/FT8716/focaltech_flash/focaltech_upgrade_test.c create mode 100755 drivers/input/touchscreen/FT8716/focaltech_gesture.c create mode 100755 drivers/input/touchscreen/FT8716/focaltech_i2c.c create mode 100755 drivers/input/touchscreen/FT8716/focaltech_point_report_check.c create mode 100755 drivers/input/touchscreen/FT8716/focaltech_sensor.c create mode 100755 drivers/input/touchscreen/FT8716/focaltech_test/Makefile create mode 100755 drivers/input/touchscreen/FT8716/focaltech_test/focaltech_test_config.h create mode 100755 drivers/input/touchscreen/FT8716/focaltech_test/include/focaltech_ic_table.h create mode 100755 drivers/input/touchscreen/FT8716/focaltech_test/include/focaltech_test_detail_threshold.h create mode 100755 drivers/input/touchscreen/FT8716/focaltech_test/include/focaltech_test_ini.h create mode 100755 drivers/input/touchscreen/FT8716/focaltech_test/include/focaltech_test_main.h create mode 100755 drivers/input/touchscreen/FT8716/focaltech_test/include/focaltech_test_supported_ic.h create mode 100755 drivers/input/touchscreen/FT8716/focaltech_test/src/Makefile create mode 100755 drivers/input/touchscreen/FT8716/focaltech_test/src/focaltech_ic_table.c create mode 100755 drivers/input/touchscreen/FT8716/focaltech_test/src/focaltech_test.c create mode 100755 drivers/input/touchscreen/FT8716/focaltech_test/src/focaltech_test_detail_threshold.c create mode 100755 drivers/input/touchscreen/FT8716/focaltech_test/src/focaltech_test_global.c create mode 100755 drivers/input/touchscreen/FT8716/focaltech_test/src/focaltech_test_ini.c create mode 100755 drivers/input/touchscreen/FT8716/focaltech_test/src/focaltech_test_main.c create mode 100755 drivers/input/touchscreen/FT8716/focaltech_test/supported_ic/Makefile create mode 100755 drivers/input/touchscreen/FT8716/focaltech_test/supported_ic/focaltech_test_config_ft8716.c create mode 100755 drivers/input/touchscreen/FT8716/focaltech_test/supported_ic/focaltech_test_ft8716.c create mode 100755 drivers/input/touchscreen/FT8716/focaltech_test/supported_ic/focaltech_test_supported_ic.c create mode 100644 drivers/input/touchscreen/FT8716/include/firmware/FT8716_app_csot_sample.i create mode 100644 drivers/input/touchscreen/FT8716/include/firmware/FT8716_app_ebbg_sample.i create mode 100755 drivers/input/touchscreen/FT8716/include/pramboot/FT8716_Pramboot_V0.5_20160723.i create mode 100644 drivers/input/touchscreen/GT915L/FW_BIEL.txt create mode 100644 drivers/input/touchscreen/GT915L/FW_EACH.txt create mode 100644 drivers/input/touchscreen/GT915L/Kconfig create mode 100644 drivers/input/touchscreen/GT915L/Makefile create mode 100644 drivers/input/touchscreen/GT915L/goodix_tool.c create mode 100644 drivers/input/touchscreen/GT915L/gt9xx.c create mode 100644 drivers/input/touchscreen/GT915L/gt9xx.h create mode 100644 drivers/input/touchscreen/GT915L/gt9xx_firmware.h create mode 100644 drivers/input/touchscreen/GT915L/gt9xx_update.c create mode 100644 drivers/input/touchscreen/GT917D/FW_BIEL.txt create mode 100644 drivers/input/touchscreen/GT917D/FW_EACH.txt create mode 100644 drivers/input/touchscreen/GT917D/Kconfig create mode 100644 drivers/input/touchscreen/GT917D/Makefile create mode 100644 drivers/input/touchscreen/GT917D/goodix_tool.c create mode 100644 drivers/input/touchscreen/GT917D/gt917.c create mode 100644 drivers/input/touchscreen/GT917D/gt9xx.h create mode 100644 drivers/input/touchscreen/GT917D/gt9xx_firmware.h create mode 100644 drivers/input/touchscreen/GT917D/gt9xx_update.c create mode 100644 drivers/input/touchscreen/ft5336/Kconfig create mode 100644 drivers/input/touchscreen/ft5336/Makefile create mode 100644 drivers/input/touchscreen/ft5336/focal_mcap_test_lib64.a_shipped create mode 100644 drivers/input/touchscreen/ft5336/ft5x06_720p.c create mode 100755 drivers/input/touchscreen/ft5336/ft5x06_test_lib.h create mode 100644 drivers/input/touchscreen/ft5336/ft_app_ic_biel_boe_720p.txt create mode 100644 drivers/input/touchscreen/ft5336/ft_app_ic_biel_ebbg_720p.txt create mode 100644 drivers/input/touchscreen/ft5336/ft_app_ic_lens_tianma_720p.txt create mode 100644 drivers/input/touchscreen/ft5336/ft_app_ic_oufei_boe_720p.txt create mode 100644 drivers/input/touchscreen/ft5336/ft_app_ic_oufei_tianma_720p.txt create mode 100644 drivers/input/touchscreen/gen_vkeys_gt.c create mode 100644 drivers/leds/gpio_vib.c create mode 100644 drivers/leds/leds-msm-gpio-flash.c create mode 100644 drivers/media/platform/msm/camera_v2/sensor/eeprom/msm_eeprom_insensor_ov13850.c create mode 100644 drivers/media/platform/msm/camera_v2/sensor/eeprom/msm_eeprom_otp_interface.h mode change 100755 => 100644 drivers/media/platform/msm/camera_v2/sensor/msm_sensor_driver.c create mode 100755 drivers/misc/hardware_info.c create mode 100644 drivers/power/bq2560x.h create mode 100644 drivers/power/bq2560x_charger.c create mode 100644 drivers/power/bq2560x_reg.h create mode 100644 drivers/power/bq27426_fg.c create mode 100644 drivers/power/bq27426_gmfs.h create mode 100644 drivers/power/bq27426_gmfs_atl.h create mode 100644 drivers/power/bq27426_gmfs_default.h create mode 100644 drivers/power/bq27426_gmfs_desay.h create mode 100644 drivers/power/bq27426_gmfs_scud.h create mode 100644 drivers/power/bq27426_gmfs_sunwoda.h create mode 100644 drivers/power/bqfs_cmd_type.h create mode 100644 drivers/power/cw2015_battery.c create mode 100644 drivers/power/profile_WT1001_88509_NT_Feimaotui.h create mode 100644 drivers/power/profile_WT702_88509_NT_DeSai.h create mode 100644 drivers/power/profile_WT801_88509_NT_XinWangDa.h create mode 100644 drivers/power/profile_WT902_88509_NT_GuangYu.h create mode 100644 drivers/regulator/tps65132-regulator.c create mode 100644 drivers/soc/qcom/cpumaxfreq.c create mode 100644 drivers/soc/qcom/secboot_fuse.c create mode 100644 drivers/soc/qcom/serial_num.c create mode 100644 drivers/staging/android/binder_alloc.c create mode 100644 drivers/staging/android/binder_alloc.h create mode 100644 drivers/staging/android/binder_alloc_selftest.c create mode 100644 drivers/staging/android/memsw_state.c create mode 100644 drivers/staging/android/memsw_state.h create mode 100644 drivers/staging/ktrace/Kconfig create mode 100644 drivers/staging/ktrace/Makefile create mode 100644 drivers/staging/ktrace/ktrace_binder.c create mode 100644 drivers/staging/ktrace/ktrace_cpufreq.c create mode 100644 drivers/staging/ktrace/ktrace_event.c create mode 100644 drivers/staging/ktrace/ktrace_main.c create mode 100644 drivers/staging/ktrace/ktrace_mm.c create mode 100644 drivers/staging/ktrace/ktrace_print.c create mode 100644 drivers/staging/ktrace/ktrace_queue.c create mode 100644 drivers/staging/ktrace/ktrace_sched.c create mode 100644 drivers/staging/rtmm/Kconfig create mode 100644 drivers/staging/rtmm/Makefile create mode 100644 drivers/staging/rtmm/rtmm_main.c create mode 100644 drivers/staging/rtmm/rtmm_pool.c create mode 100644 drivers/staging/rtmm/rtmm_reclaim.c create mode 100755 include/linux/hardware_info.h create mode 100644 include/linux/input/ft5346.h create mode 100644 include/linux/input/ft5x06_720p.h create mode 100644 include/linux/input/gen_vkeys_gt.h create mode 100644 include/linux/ktrace.h create mode 100644 include/linux/power/cw2015_battery.h create mode 100644 include/linux/rtmm.h create mode 100644 include/linux/timecounter.h delete mode 100644 include/scsi/fc/Kbuild create mode 100644 kernel/time/timecounter.c create mode 100644 sound/soc/msm/AW87319_Audio_M.c delete mode 100644 tools/testing/selftests/powerpc/copyloops/asm/processor.h delete mode 100644 tools/testing/selftests/powerpc/primitives/asm/ppc-opcode.h delete mode 100644 tools/virtio/linux/hrtimer.h diff --git a/AndroidKernel.mk b/AndroidKernel.mk index 3db9ac9f0bcb6..ae8176f420e55 100644 --- a/AndroidKernel.mk +++ b/AndroidKernel.mk @@ -32,6 +32,16 @@ ifeq ($(TARGET_ARCH),arm) KERNEL_CONFIG_OVERRIDE := CONFIG_ANDROID_BINDER_IPC_32BIT=y endif endif +ifeq ($(WT_FINAL_RELEASE),yes) +KERNEL_CONFIG_OVERRIDE += CONFIG_DYNAMIC_DEBUG=n +KERNEL_CONFIG_OVERRIDE += CONFIG_DEBUG_RODATA=n +KERNEL_CONFIG_OVERRIDE += CONFIG_DEBUG_SPINLOCK=n +KERNEL_CONFIG_OVERRIDE += CONFIG_MSM_DEBUG_LAR_UNLOCK=n +KERNEL_CONFIG_OVERRIDE += CONFIG_CORESIGHT_DBGUI=n +KERNEL_CONFIG_OVERRIDE += CONFIG_MSM_RTB=n +KERNEL_CONFIG_OVERRIDE += CONFIG_MSM_RTB_SEPARATE_CPUS=n +KERNEL_CONFIG_OVERRIDE += CONFIG_IKCONFIG=n +endif TARGET_KERNEL_CROSS_COMPILE_PREFIX := $(strip $(TARGET_KERNEL_CROSS_COMPILE_PREFIX)) ifeq ($(TARGET_KERNEL_CROSS_COMPILE_PREFIX),) @@ -50,22 +60,22 @@ endif mkfile_path := $(abspath $(lastword $(MAKEFILE_LIST))) current_dir := $(notdir $(patsubst %/,%,$(dir $(mkfile_path)))) ifeq ($(TARGET_KERNEL_VERSION),) - TARGET_KERNEL_VERSION := 3.18 + TARGET_KERNEL_VERSION := 3.18 endif TARGET_KERNEL := msm-$(TARGET_KERNEL_VERSION) ifeq ($(TARGET_KERNEL),$(current_dir)) - # New style, kernel/msm-version - BUILD_ROOT_LOC := ../../ - TARGET_KERNEL_SOURCE := kernel/$(TARGET_KERNEL) - KERNEL_OUT := $(TARGET_OUT_INTERMEDIATES)/kernel/$(TARGET_KERNEL) - KERNEL_SYMLINK := $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ - KERNEL_USR := $(KERNEL_SYMLINK)/usr + # New style, kernel/msm-version + BUILD_ROOT_LOC := ../../ + TARGET_KERNEL_SOURCE := kernel/$(TARGET_KERNEL) + KERNEL_OUT := $(TARGET_OUT_INTERMEDIATES)/kernel/$(TARGET_KERNEL) + KERNEL_SYMLINK := $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ + KERNEL_USR := $(KERNEL_SYMLINK)/usr else - # Legacy style, kernel source directly under kernel - KERNEL_LEGACY_DIR := true - BUILD_ROOT_LOC := ../ - TARGET_KERNEL_SOURCE := kernel - KERNEL_OUT := $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ + # Legacy style, kernel source directly under kernel + KERNEL_LEGACY_DIR := true + BUILD_ROOT_LOC := ../ + TARGET_KERNEL_SOURCE := kernel + KERNEL_OUT := $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ endif KERNEL_CONFIG := $(KERNEL_OUT)/.config @@ -127,7 +137,7 @@ $(KERNEL_CONFIG): $(KERNEL_OUT) $(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) $(KERNEL_DEFCONFIG) $(hide) if [ ! -z "$(KERNEL_CONFIG_OVERRIDE)" ]; then \ echo "Overriding kernel config with '$(KERNEL_CONFIG_OVERRIDE)'"; \ - echo $(KERNEL_CONFIG_OVERRIDE) >> $(KERNEL_OUT)/.config; \ + for CONFIG_OVERRIDE in $(KERNEL_CONFIG_OVERRIDE);do echo $$CONFIG_OVERRIDE >> $(KERNEL_OUT)/.config;done; \ $(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) oldconfig; fi $(TARGET_PREBUILT_INT_KERNEL): $(KERNEL_OUT) $(KERNEL_HEADERS_INSTALL) @@ -150,7 +160,7 @@ $(KERNEL_HEADERS_INSTALL): $(KERNEL_OUT) $(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) $(KERNEL_DEFCONFIG); fi $(hide) if [ ! -z "$(KERNEL_CONFIG_OVERRIDE)" ]; then \ echo "Overriding kernel config with '$(KERNEL_CONFIG_OVERRIDE)'"; \ - echo $(KERNEL_CONFIG_OVERRIDE) >> $(KERNEL_OUT)/.config; \ + for CONFIG_OVERRIDE in $(KERNEL_CONFIG_OVERRIDE);do echo $$CONFIG_OVERRIDE >> $(KERNEL_OUT)/.config;done; \ $(MAKE) -C $(TARGET_KERNEL_SOURCE) O=$(BUILD_ROOT_LOC)$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) oldconfig; fi kerneltags: $(KERNEL_OUT) $(KERNEL_CONFIG) diff --git a/Makefile b/Makefile index b03ca98f7a366..d63eefa7fb3c4 100644 --- a/Makefile +++ b/Makefile @@ -694,6 +694,8 @@ else # Use make W=1 to enable this warning (see scripts/Makefile.build) KBUILD_CFLAGS += $(call cc-disable-warning, unused-but-set-variable) endif +# transport MTK_CDEFS ( mtk compile macros ) to .c for compile +KBUILD_CFLAGS += $(MTK_CDEFS) ifdef CONFIG_FRAME_POINTER KBUILD_CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls @@ -779,6 +781,13 @@ ifeq ($(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-goto.sh $(CC)), y) KBUILD_CFLAGS += -DCC_HAVE_ASM_GOTO endif +ifeq ($(WT_COMPILE_FACTORY_VERSION),yes) + KBUILD_CFLAGS += -DWT_COMPILE_FACTORY_VERSION +endif +ifeq ($(WT_FINAL_RELEASE),yes) + KBUILD_CFLAGS += -DWT_FINAL_RELEASE +endif + include $(srctree)/scripts/Makefile.kasan include $(srctree)/scripts/Makefile.extrawarn include $(srctree)/scripts/Makefile.ubsan diff --git a/arch/arm/boot/dts/qcom/Makefile b/arch/arm/boot/dts/qcom/Makefile index ba89193640f2d..40af15110b1ba 100644 --- a/arch/arm/boot/dts/qcom/Makefile +++ b/arch/arm/boot/dts/qcom/Makefile @@ -186,7 +186,9 @@ dtb-$(CONFIG_ARCH_MSM8917) += msm8917-rumi.dtb \ msm8917-pmi8937-rcm.dtb \ msm8917-pmi8950-rcm.dtb \ msm8917-qgp-tmo.dtb \ - msm8917-pmi8937-qrd-sku5.dtb + msm8917-pmi8937-qrd-sku5.dtb \ + msm8917-pmi8937-qrd-sku5_S88503.dtb \ + msm8917-pmi8937-qrd-sku5_S88505.dtb dtb-$(CONFIG_ARCH_MSM8920) += msm8920-pmi8937-cdp.dtb \ msm8920-pmi8937-mtp.dtb \ @@ -208,7 +210,8 @@ dtb-$(CONFIG_ARCH_MSM8940) += msm8940-pmi8937-cdp.dtb \ msm8940-pmi8940-mtp.dtb \ msm8940-pmi8940-cdp.dtb \ msm8940-pmi8940-rcm.dtb \ - msm8940-pmi8940-qrd-sku7.dtb + msm8940-pmi8940-qrd-sku7.dtb \ + msm8940-pmi8950-qrd-sku7_S88536AA2.dtb dtb-$(CONFIG_ARCH_MSM8953) += msm8953-sim.dtb \ msm8953-rumi.dtb \ @@ -236,7 +239,9 @@ dtb-$(CONFIG_ARCH_SDM450) += sdm450-rcm.dtb \ sdm450-mtp.dtb \ sdm450-qrd.dtb \ sdm450-pmi8940-mtp.dtb \ - sdm450-pmi8937-mtp.dtb + sdm450-pmi8937-mtp.dtb \ + sdm450-qrd_rosy.dtb + dtb-$(CONFIG_ARCH_MDM9607) += mdm9607-rumi.dtb \ mdm9607-cdp.dtb \ @@ -245,9 +250,9 @@ dtb-$(CONFIG_ARCH_MDM9607) += mdm9607-rumi.dtb \ mdm9607-mtp-sdcard.dtb dtb-$(CONFIG_ARCH_MSM8916) += msm8952-qrd-skum.dtb \ - msm8952-cdp.dtb \ - msm8952-ext-codec-cdp.dtb \ - msm8952-mtp.dtb + msm8952-cdp.dtb \ + msm8952-ext-codec-cdp.dtb \ + msm8952-mtp.dtb dtb-$(CONFIG_ARCH_MSM8909) += msm8909-pm8916-mtp.dtb \ msm8909w-wtp.dtb \ @@ -284,7 +289,7 @@ targets += dtbs targets += $(addprefix ../, $(dtb-y)) $(obj)/../%.dtb: $(src)/%.dts FORCE - $(call if_changed_dep,dtc) + $(call if_changed_dep,dtc) dtbs: $(addprefix $(obj)/,$(dtb-y)) endif diff --git a/arch/arm/boot/dts/qcom/batterydata-D1_Default-4v4-3300mah.dtsi b/arch/arm/boot/dts/qcom/batterydata-D1_Default-4v4-3300mah.dtsi new file mode 100644 index 0000000000000..00eabd9b38f6b --- /dev/null +++ b/arch/arm/boot/dts/qcom/batterydata-D1_Default-4v4-3300mah.dtsi @@ -0,0 +1,48 @@ + +qcom,3049735_wingtech_s88567aa1scud_3300mah_default { + qcom,max-voltage-uv = <4400000>; + qcom,nom-batt-capacity-mah = <3300>; + qcom,batt-id-kohm = <1000>; + qcom,battery-beta = <3380>; + qcom,battery-type = "Generic_Battery"; + qcom,chg-rslow-comp-c1 = <3506249>; + qcom,chg-rslow-comp-c2 = <4896078>; + qcom,chg-rs-to-rslow = <1106835>; + qcom,chg-rslow-comp-thr = <0xA3>; + qcom,checksum = <0x574F>; + qcom,gui-version = "PMI8950GUI - 2.0.0.16"; + qcom,fg-profile-data = [ + DB 83 95 7C + E9 80 EF 76 + 60 83 E8 6E + F3 88 2C 94 + 3D 82 78 99 + 7B BC F9 C8 + 55 0E 79 83 + 12 6C DB 78 + EF 6C 40 83 + 56 78 5E 84 + 4E 7B 7D 82 + 80 93 1A B5 + 80 C0 70 0F + BB 0C 10 5A + 14 70 77 FD + 40 3C AE 45 + CA 41 00 00 + 49 4C 63 39 + 07 41 00 00 + 00 00 00 00 + 00 00 00 00 + 85 70 D6 6A + E6 60 85 89 + 43 76 09 6B + 63 55 2D 7A + FD 6F FE 63 + 68 56 DE A2 + 24 48 68 02 + 66 A0 71 0C + 28 00 FF 36 + F0 11 30 03 + 00 00 00 0C + ]; +}; diff --git a/arch/arm/boot/dts/qcom/batterydata-Scud-4v4-3300mah.dtsi b/arch/arm/boot/dts/qcom/batterydata-Scud-4v4-3300mah.dtsi new file mode 100644 index 0000000000000..c914f35dbaf62 --- /dev/null +++ b/arch/arm/boot/dts/qcom/batterydata-Scud-4v4-3300mah.dtsi @@ -0,0 +1,48 @@ + +qcom,3049735_wingtech_s88567aa1scud_3300mah_averaged_masterslave_aug9th2017 { + qcom,max-voltage-uv = <4400000>; + qcom,nom-batt-capacity-mah = <3300>; + qcom,batt-id-kohm = <68>; + qcom,battery-beta = <3380>; + qcom,battery-type = "D1-qrd-scud-4v4-3300mah"; + qcom,chg-rslow-comp-c1 = <3506249>; + qcom,chg-rslow-comp-c2 = <4896078>; + qcom,chg-rs-to-rslow = <1106835>; + qcom,chg-rslow-comp-thr = <0xA3>; + qcom,checksum = <0x574F>; + qcom,gui-version = "PMI8950GUI - 2.0.0.16"; + qcom,fg-profile-data = [ + DB 83 95 7C + E9 80 EF 76 + 60 83 E8 6E + F3 88 2C 94 + 3D 82 78 99 + 7B BC F9 C8 + 55 0E 79 83 + 12 6C DB 78 + EF 6C 40 83 + 56 78 5E 84 + 4E 7B 7D 82 + 80 93 1A B5 + 80 C0 70 0F + BB 0C 10 5A + 14 70 77 FD + 40 3C AE 45 + CA 41 00 00 + 49 4C 63 39 + 07 41 00 00 + 00 00 00 00 + 00 00 00 00 + 85 70 D6 6A + E6 60 85 89 + 43 76 09 6B + 63 55 2D 7A + FD 6F FE 63 + 68 56 DE A2 + 24 48 68 02 + 66 A0 71 0C + 28 00 FF 36 + F0 11 30 03 + 00 00 00 0C + ]; +}; diff --git a/arch/arm/boot/dts/qcom/batterydata-Sunwoda-4v4-3300mah.dtsi b/arch/arm/boot/dts/qcom/batterydata-Sunwoda-4v4-3300mah.dtsi new file mode 100644 index 0000000000000..bb6e994c7e2cc --- /dev/null +++ b/arch/arm/boot/dts/qcom/batterydata-Sunwoda-4v4-3300mah.dtsi @@ -0,0 +1,48 @@ + +qcom,qrd_sdm450_4v4_3300mAh_sept11th2017 { + qcom,max-voltage-uv = <4400000>; + qcom,nom-batt-capacity-mah = <3300>; + qcom,batt-id-kohm = <330>; + qcom,battery-beta = <3380>; + qcom,battery-type = "D1-qrd-sunwoda-4v4-3300mah"; + qcom,chg-rslow-comp-c1 = <3898419>; + qcom,chg-rslow-comp-c2 = <6564992>; + qcom,chg-rs-to-rslow = <1234327>; + qcom,chg-rslow-comp-thr = <0xB4>; + qcom,checksum = <0xB04E>; + qcom,gui-version = "PMI8950GUI - 2.0.0.16"; + qcom,fg-profile-data = [ + DF 83 CB 7C + 13 81 3E 77 + 62 83 56 6F + 0A 89 3B 94 + 31 82 9E 99 + 8B BC FB C8 + 56 0F 0D 88 + 5A 7E 17 82 + 79 7C 48 83 + 81 72 2D 77 + 4A 51 59 82 + 2F 99 45 BC + BB C8 5E 0D + DF 0C E1 59 + 14 70 77 FD + 32 31 FE 45 + 6E 33 00 00 + 66 45 F2 30 + 8D 36 00 00 + 00 00 00 00 + 00 00 00 00 + DC 71 31 70 + 23 84 5C 82 + A3 7C 03 72 + DB 67 51 79 + 8F 75 37 6A + 7E 60 C1 A0 + 33 22 62 B7 + 5F A0 71 0C + 28 00 FF 36 + F0 11 30 03 + 00 00 00 0C + ]; +}; diff --git a/arch/arm/boot/dts/qcom/batterydata-qrd-Atl-4v4-4100mah.dtsi b/arch/arm/boot/dts/qcom/batterydata-qrd-Atl-4v4-4100mah.dtsi new file mode 100644 index 0000000000000..017e1d587029b --- /dev/null +++ b/arch/arm/boot/dts/qcom/batterydata-qrd-Atl-4v4-4100mah.dtsi @@ -0,0 +1,48 @@ + +qcom,2312470_wingtech_a12atl_4000mah_averaged_masterslave_feb1st2016 { + qcom,max-voltage-uv = <4400000>; + qcom,nom-batt-capacity-mah = <4100>; + qcom,batt-id-kohm = <68>; + qcom,battery-beta = <4150>; + qcom,battery-type = "qrd_msm8937_Atl_4100mah"; + qcom,chg-rslow-comp-c1 = <3011278>; + qcom,chg-rslow-comp-c2 = <4185582>; + qcom,chg-rs-to-rslow = <966005>; + qcom,chg-rslow-comp-thr = <0xA3>; + qcom,checksum = <0x90C2>; + qcom,gui-version = "PMI8950GUI - 2.0.0.15"; + qcom,fg-profile-data = [ + E1 83 CD 7C + FA 80 DE 76 + 69 83 6B 75 + 2B 8A 24 95 + 12 82 86 9A + 72 BD 12 CA + 56 11 EC 83 + B5 7C C8 80 + 55 76 5A 83 + A6 60 5E 81 + ED 8D 54 82 + 99 99 E9 BC + CD C9 54 0E + 65 10 A4 58 + 14 70 EE FC + 0F 36 44 3D + FD 2E 00 00 + 60 3F 44 33 + 35 3F 00 00 + 00 00 00 00 + 00 00 00 00 + F7 6B DA 6A + 5F 63 D8 80 + EB 6F 3C 62 + B5 57 6B 78 + DF 6E AE 60 + 8A 84 5B A3 + 17 A8 63 2D + 65 A0 71 0C + 28 00 FF 36 + F0 11 30 03 + 00 00 00 0C + ]; +}; diff --git a/arch/arm/boot/dts/qcom/batterydata-qrd-Coslight-4v4-4100mah.dtsi b/arch/arm/boot/dts/qcom/batterydata-qrd-Coslight-4v4-4100mah.dtsi new file mode 100644 index 0000000000000..cd5f348a00758 --- /dev/null +++ b/arch/arm/boot/dts/qcom/batterydata-qrd-Coslight-4v4-4100mah.dtsi @@ -0,0 +1,48 @@ + +qcom,2336567_wingtech_s88537a1coslight_4000mah_averaged_masterslave_mar3rd2016 { + qcom,max-voltage-uv = <4400000>; + qcom,nom-batt-capacity-mah = <4100>; + qcom,batt-id-kohm = <100>; + qcom,battery-beta = <4250>; + qcom,battery-type = "qrd_msm8937_Coslight_4100mah"; + qcom,chg-rslow-comp-c1 = <3658227>; + qcom,chg-rslow-comp-c2 = <6007355>; + qcom,chg-rs-to-rslow = <1091156>; + qcom,chg-rslow-comp-thr = <0xB2>; + qcom,checksum = <0xA765>; + qcom,gui-version = "PMI8950GUI - 2.0.0.15"; + qcom,fg-profile-data = [ + E1 83 E0 7C + 31 81 88 77 + 62 83 1C 74 + 4E 89 60 94 + 40 82 A6 98 + 79 B6 08 C2 + 52 17 07 88 + 0A 7E F7 81 + 73 7C 36 83 + 40 79 08 86 + 9D 81 6B 82 + 6B 98 D0 B6 + 25 C3 5E 15 + 32 10 42 59 + 14 70 EE FC + 04 36 DC 44 + DE 3B 00 00 + 7C 4C FD 31 + E6 41 00 00 + 00 00 00 00 + 00 00 00 00 + 4F 71 C5 6B + 5B 74 71 88 + 88 7C E6 71 + 60 74 15 72 + A2 75 71 6A + B9 66 5C A3 + 23 91 60 87 + 5E A0 71 0C + 28 00 FF 36 + F0 11 30 03 + 00 00 00 0C + ]; +}; diff --git a/arch/arm/boot/dts/qcom/batterydata-qrd-Default-4v4-4100mah.dtsi b/arch/arm/boot/dts/qcom/batterydata-qrd-Default-4v4-4100mah.dtsi new file mode 100644 index 0000000000000..107390fd21061 --- /dev/null +++ b/arch/arm/boot/dts/qcom/batterydata-qrd-Default-4v4-4100mah.dtsi @@ -0,0 +1,48 @@ + +qcom,2312470_wingtech_a12atl_4000mah_default { + qcom,max-voltage-uv = <4400000>; + qcom,nom-batt-capacity-mah = <4000>; + qcom,batt-id-kohm = <1>; + qcom,battery-beta = <4150>; + qcom,battery-type = "Generic_Battery"; + qcom,chg-rslow-comp-c1 = <3011278>; + qcom,chg-rslow-comp-c2 = <4185582>; + qcom,chg-rs-to-rslow = <966005>; + qcom,chg-rslow-comp-thr = <0xA3>; + qcom,checksum = <0x90C2>; + qcom,gui-version = "PMI8950GUI - 2.0.0.15"; + qcom,fg-profile-data = [ + E1 83 CD 7C + FA 80 DE 76 + 69 83 6B 75 + 2B 8A 24 95 + 12 82 86 9A + 72 BD 12 CA + 56 11 EC 83 + B5 7C C8 80 + 55 76 5A 83 + A6 60 5E 81 + ED 8D 54 82 + 99 99 E9 BC + CD C9 54 0E + 65 10 A4 58 + 14 70 EE FC + 0F 36 44 3D + FD 2E 00 00 + 60 3F 44 33 + 35 3F 00 00 + 00 00 00 00 + 00 00 00 00 + F7 6B DA 6A + 5F 63 D8 80 + EB 6F 3C 62 + B5 57 6B 78 + DF 6E AE 60 + 8A 84 5B A3 + 17 A8 63 2D + 65 A0 71 0C + 28 00 FF 36 + F0 11 30 03 + 00 00 00 0C + ]; +}; diff --git a/arch/arm/boot/dts/qcom/batterydata-qrd-Desay-4v4-4100mah.dtsi b/arch/arm/boot/dts/qcom/batterydata-qrd-Desay-4v4-4100mah.dtsi new file mode 100644 index 0000000000000..a5e3b5c71616b --- /dev/null +++ b/arch/arm/boot/dts/qcom/batterydata-qrd-Desay-4v4-4100mah.dtsi @@ -0,0 +1,48 @@ + +qcom,2312442_wingtech_a12desay_4000mah_averaged_masterslave_feb1st2016 { + qcom,max-voltage-uv = <4400000>; + qcom,nom-batt-capacity-mah = <4100>; + qcom,batt-id-kohm = <30>; + qcom,battery-beta = <4100>; + qcom,battery-type = "qrd_msm8937_Desay_4100mah"; + qcom,chg-rslow-comp-c1 = <3278930>; + qcom,chg-rslow-comp-c2 = <4973220>; + qcom,chg-rs-to-rslow = <1125247>; + qcom,chg-rslow-comp-thr = <0xAC>; + qcom,checksum = <0xAB22>; + qcom,gui-version = "PMI8950GUI - 2.0.0.15"; + qcom,fg-profile-data = [ + D6 83 5E 7C + BB 80 9B 76 + 64 83 81 74 + A6 89 BC 94 + 9D 82 F3 91 + E0 AF 03 BB + 52 16 FE 83 + 7E 7D 8B 81 + 0B 7C 6A 83 + 62 6F B7 89 + 29 95 49 82 + 32 9A B0 BD + 0A CB 52 0D + 1B 10 B3 59 + 14 70 EE FC + 78 3E 7B 3F + 0B 40 00 00 + 5A 46 C1 2B + 1E 2A 00 00 + 00 00 00 00 + 00 00 00 00 + BA 70 4D 6B + 31 63 73 88 + BF 75 02 6B + DE 60 EF 7B + D4 6E 44 63 + D6 75 4F A0 + 1E E4 60 FF + 5E A0 71 0C + 28 00 FF 36 + F0 11 30 03 + 00 00 00 0C + ]; +}; diff --git a/arch/arm/boot/dts/qcom/batterydata-qrd-sku1-4v4-2800mah.dtsi b/arch/arm/boot/dts/qcom/batterydata-qrd-sku1-4v4-2800mah.dtsi index da520398cbaa0..87679f8c5d0ff 100644 --- a/arch/arm/boot/dts/qcom/batterydata-qrd-sku1-4v4-2800mah.dtsi +++ b/arch/arm/boot/dts/qcom/batterydata-qrd-sku1-4v4-2800mah.dtsi @@ -14,7 +14,7 @@ qcom,qrd_msm8937_sku1_2920mah { /* #QRD8937_2800mAh_China_data_averaged_MasterSlave_Oct30th2015*/ qcom,max-voltage-uv = <4400000>; qcom,nom-batt-capacity-mah = <2800>; - qcom,batt-id-kohm = <90>; + qcom,batt-id-kohm = <68>; qcom,battery-beta = <3380>; qcom,battery-type = "qrd_msm8937_sku1_2800mah"; qcom,fastchg-current-ma = <2600>; diff --git a/arch/arm/boot/dts/qcom/batterydata-wingtech-desai_SAMSUNG-4v4-4000mah.dtsi b/arch/arm/boot/dts/qcom/batterydata-wingtech-desai_SAMSUNG-4v4-4000mah.dtsi new file mode 100644 index 0000000000000..ac7e8290df24f --- /dev/null +++ b/arch/arm/boot/dts/qcom/batterydata-wingtech-desai_SAMSUNG-4v4-4000mah.dtsi @@ -0,0 +1,117 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +qcom,wingtech-desai-4v4-4000mah-data { + qcom,default-rbatt-mohm = <116>; + qcom,max-voltage-uv = <4400000>; + qcom,fcc-mah = <4000>; + qcom,rbatt-capacitive-mohm = <10>; + qcom,v-cutoff-uv = <3400000>; + qcom,chg-term-ua = <100000>; + qcom,batt-id-kohm = <10>; + qcom,flat-ocv-threshold-uv = <3800000>; + qcom,battery-type = "wingtech-desai-4v4-3000mah"; + + qcom,fcc-temp-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-data = <4133 4132 4130 4121 4095>; + }; + + qcom,pc-temp-ocv-lut { + qcom,lut-col-legend = <(-20) 0 25 45 60>; + qcom,lut-row-legend = <100 95 90 85 80>, + <75 70 65 60 55>, + <50 45 40 35 30>, + <25 20 16 13 6>, + <5 4 3 2 1>, + <0>; + qcom,lut-data = <4360 4360 4360 4360 4360>, + <4260 4302 4308 4306 4302>, + <4188 4240 4249 4248 4244>, + <4124 4185 4193 4191 4187>, + <4088 4132 4138 4136 4132>, + <4030 4082 4086 4084 4080>, + <3935 4024 4041 4038 4032>, + <3890 3942 3976 3982 3988>, + <3846 3909 3944 3948 3946>, + <3821 3878 3895 3902 3902>, + <3805 3848 3856 3857 3856>, + <3790 3821 3829 3830 3828>, + <3774 3798 3808 3808 3807>, + <3758 3780 3790 3791 3789>, + <3742 3767 3776 3774 3770>, + <3726 3753 3761 3754 3744>, + <3709 3734 3743 3734 3720>, + <3693 3718 3722 3712 3699>, + <3678 3708 3698 3689 3676>, + <3604 3679 3680 3670 3657>, + <3582 3661 3668 3652 3636>, + <3552 3628 3624 3610 3590>, + <3510 3576 3564 3550 3530>, + <3444 3498 3480 3467 3445>, + <3322 3368 3345 3341 3310>, + <3000 3000 3000 3018 3000>; + }; + + qcom,rbatt-sf-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-row-legend = <100 95 90 85 80>, + <75 70 65 60 55>, + <50 45 40 35 30>, + <25 20 16 13 11>, + <10 9 8 7 6>, + <5 4 3 2 1>; + qcom,lut-data = <1382 266 100 84 79>, + <1379 266 100 84 79>, + <1278 267 100 85 79>, + <1186 269 103 87 80>, + <1162 274 107 90 79>, + <1091 280 112 92 81>, + <974 286 121 98 84>, + <964 241 122 99 87>, + <949 243 128 105 91>, + <977 241 109 102 93>, + <1021 240 98 85 79>, + <1071 241 98 84 79>, + <1124 240 101 87 81>, + <1178 246 104 90 84>, + <1231 262 105 90 84>, + <1292 282 105 87 81>, + <1360 297 103 86 81>, + <1410 309 104 86 81>, + <1322 312 100 83 77>, + <1381 324 99 84 78>, + <1416 334 101 85 79>, + <1453 345 103 88 83>, + <1485 359 107 91 88>, + <1525 379 112 97 93>, + <1576 393 117 102 97>, + <1634 405 120 97 90>, + <1745 412 109 91 84>, + <2055 432 110 91 86>, + <2583 466 115 95 90>, + <5166 565 160 109 109>; + }; + + qcom,ibat-acc-lut { + qcom,lut-col-legend = <(-20) 0 25>; + qcom,lut-row-legend = <0 250 500 1000 1500 2000>; + qcom,lut-data =<4066 4081 4072>, + <2422 4004 4006>, + <1628 3880 3989>, + <492 3340 3943>, + <110 2576 3850>, + <50 1987 3666>; + }; +}; diff --git a/arch/arm/boot/dts/qcom/batterydata-wingtech-feimaotui_SONY-4v4-3030mah.dtsi b/arch/arm/boot/dts/qcom/batterydata-wingtech-feimaotui_SONY-4v4-3030mah.dtsi new file mode 100644 index 0000000000000..932109d640125 --- /dev/null +++ b/arch/arm/boot/dts/qcom/batterydata-wingtech-feimaotui_SONY-4v4-3030mah.dtsi @@ -0,0 +1,120 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +qcom,wingtech-feimaotui-4v4-3030mah-data { + qcom,default-rbatt-mohm = <140>; + qcom,max-voltage-uv = <4400000>; + qcom,rbatt-capacitive-mohm = <50>; + qcom,v-cutoff-uv = <3400000>; + qcom,chg-term-ua = <100000>; + qcom,batt-id-kohm = <30>; + qcom,flat-ocv-threshold-uv = <3800000>; + qcom,battery-type = "wingtech-feimaotui-4v4-3030mah"; + + qcom,fcc-temp-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-data = <2343 2340 2338 2336 2328>; + }; + + qcom,pc-temp-ocv-lut { + qcom,lut-col-legend = <(-20) 0 25 45 60>; + qcom,lut-row-legend = <100 95 90 85 80>, + <75 70 65 60 55>, + <50 45 40 35 30>, + <25 20 16 13 11>, + <10 9 8 7 6>, + <5 4 3 2 1>, + <0>; + qcom,lut-data = <4328 4328 4328 4328 4086>, + <4240 4262 4266 4264 4076>, + <4172 4206 4208 4206 4056>, + <4106 4154 4154 4152 4046>, + <4070 4102 4102 4100 4036>, + <3995 4058 4062 4054 4020>, + <3919 3962 3992 3998 4002>, + <3882 3923 3960 3963 3961>, + <3843 3897 3914 3920 3919>, + <3808 3864 3870 3870 3869>, + <3791 3836 3840 3840 3840>, + <3778 3812 3818 3818 3817>, + <3766 3792 3800 3800 3798>, + <3756 3778 3784 3784 3782>, + <3744 3768 3770 3767 3762>, + <3734 3756 3756 3746 3734>, + <3720 3738 3736 3726 3713>, + <3706 3718 3714 3705 3691>, + <3692 3706 3696 3688 3675>, + <3680 3700 3690 3682 3670>, + <3672 3698 3689 3681 3669>, + <3662 3694 3688 3680 3668>, + <3651 3692 3686 3678 3666>, + <3636 3686 3682 3674 3660>, + <3618 3674 3670 3659 3640>, + <3594 3646 3639 3626 3602>, + <3560 3606 3592 3577 3552>, + <3514 3548 3530 3516 3490>, + <3446 3466 3448 3432 3404>, + <3322 3341 3320 3303 3274>, + <3000 3000 3000 3000 3006>; + }; + + qcom,rbatt-sf-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-row-legend = <100 95 90 85 80>, + <75 70 65 60 55>, + <50 45 40 35 30>, + <25 20 16 13 11>, + <10 9 8 7 6>, + <5 4 3 2 1>, + <0>; + qcom,lut-data = <1043 230 99 86 81>, + <1043 230 99 86 81>, + <1019 239 101 86 81>, + <984 247 104 87 82>, + <1009 251 109 91 84>, + <948 267 119 95 84>, + <893 223 119 96 86>, + <909 222 131 103 90>, + <906 230 119 108 95>, + <909 229 102 89 83>, + <950 228 100 86 81>, + <997 230 100 87 82>, + <1050 233 102 89 84>, + <1109 236 104 91 86>, + <1172 247 103 90 84>, + <1244 259 101 85 80>, + <1326 269 101 86 81>, + <1387 273 103 87 81>, + <1409 284 101 86 81>, + <1307 281 101 86 82>, + <1342 286 102 87 83>, + <1385 297 104 89 85>, + <1431 309 107 91 88>, + <1492 320 111 94 89>, + <1656 328 111 93 86>, + <1879 329 106 90 84>, + <2169 339 108 91 87>, + <2589 366 112 95 90>, + <3226 413 119 103 96>, + <5120 493 147 131 133>, + <53073 27234 27502 34136 15022>; + }; + + qcom,ibat-acc-lut { + qcom,lut-col-legend = <(-20) 0 25>; + qcom,lut-row-legend = <0 250 500 1000>; + qcom,lut-data = <2296 2305 2292>, + <1000 2256 2274>, + <626 2164 2262>, + <70 1732 2232>; + }; +}; diff --git a/arch/arm/boot/dts/qcom/batterydata-wingtech-feimaotui_SONY-4v4-4000mah.dtsi b/arch/arm/boot/dts/qcom/batterydata-wingtech-feimaotui_SONY-4v4-4000mah.dtsi new file mode 100644 index 0000000000000..acebd0803ad8f --- /dev/null +++ b/arch/arm/boot/dts/qcom/batterydata-wingtech-feimaotui_SONY-4v4-4000mah.dtsi @@ -0,0 +1,122 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +qcom,wingtech-feimaotui-4v4-4000mah-data { + qcom,default-rbatt-mohm = <140>; + qcom,max-voltage-uv = <4400000>; + qcom,fcc-mah = <2300>; + qcom,rbatt-capacitive-mohm = <50>; + qcom,v-cutoff-uv = <3400000>; + qcom,chg-term-ua = <100000>; + qcom,batt-id-kohm = <30>; + qcom,flat-ocv-threshold-uv = <3800000>; + qcom,battery-type = "wingtech-feimaotui-4v4-3000mah"; + + qcom,fcc-temp-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-data = <2343 2340 2338 2336 2328>; + }; + + qcom,pc-temp-ocv-lut { + qcom,lut-col-legend = <(-20) 0 25 45 60>; + qcom,lut-row-legend = <100 95 90 85 80>, + <75 70 65 60 55>, + <50 45 40 35 30>, + <25 20 16 13 11>, + <10 9 8 7 6>, + <5 4 3 2 1>, + <0>; + qcom,lut-data = <4328 4328 4328 4328 4086>, + <4240 4262 4266 4264 4076>, + <4172 4206 4208 4206 4056>, + <4106 4154 4154 4152 4046>, + <4070 4102 4102 4100 4036>, + <3995 4058 4062 4054 4020>, + <3919 3962 3992 3998 4002>, + <3882 3923 3960 3963 3961>, + <3843 3897 3914 3920 3919>, + <3808 3864 3870 3870 3869>, + <3791 3836 3840 3840 3840>, + <3778 3812 3818 3818 3817>, + <3766 3792 3800 3800 3798>, + <3756 3778 3784 3784 3782>, + <3744 3768 3770 3767 3762>, + <3734 3756 3756 3746 3734>, + <3720 3738 3736 3726 3713>, + <3706 3718 3714 3705 3691>, + <3692 3706 3696 3688 3675>, + <3680 3700 3690 3682 3670>, + <3672 3698 3689 3681 3669>, + <3662 3694 3688 3680 3668>, + <3651 3692 3686 3678 3666>, + <3636 3686 3682 3674 3660>, + <3618 3674 3670 3659 3640>, + <3594 3646 3639 3626 3602>, + <3560 3606 3592 3577 3552>, + <3514 3548 3530 3516 3490>, + <3446 3466 3448 3432 3404>, + <3322 3341 3320 3303 3274>, + <3000 3000 3000 3000 3006>; + }; + + qcom,rbatt-sf-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-row-legend = <100 95 90 85 80>, + <75 70 65 60 55>, + <50 45 40 35 30>, + <25 20 16 13 11>, + <10 9 8 7 6>, + <5 4 3 2 1>, + <0>; + qcom,lut-data = <1043 230 99 86 81>, + <1043 230 99 86 81>, + <1019 239 101 86 81>, + <984 247 104 87 82>, + <1009 251 109 91 84>, + <948 267 119 95 84>, + <893 223 119 96 86>, + <909 222 131 103 90>, + <906 230 119 108 95>, + <909 229 102 89 83>, + <950 228 100 86 81>, + <997 230 100 87 82>, + <1050 233 102 89 84>, + <1109 236 104 91 86>, + <1172 247 103 90 84>, + <1244 259 101 85 80>, + <1326 269 101 86 81>, + <1387 273 103 87 81>, + <1409 284 101 86 81>, + <1307 281 101 86 82>, + <1342 286 102 87 83>, + <1385 297 104 89 85>, + <1431 309 107 91 88>, + <1492 320 111 94 89>, + <1656 328 111 93 86>, + <1879 329 106 90 84>, + <2169 339 108 91 87>, + <2589 366 112 95 90>, + <3226 413 119 103 96>, + <5120 493 147 131 133>, + <53073 27234 27502 34136 15022>; + }; + + qcom,ibat-acc-lut { + qcom,lut-col-legend = <(-20) 0 25>; + qcom,lut-row-legend = <0 250 500 1000>; + qcom,lut-data = <2296 2305 2292>, + <1000 2256 2274>, + <626 2164 2262>, + <70 1732 2232>; + }; +}; diff --git a/arch/arm/boot/dts/qcom/batterydata-wingtech-guangyu_Coslight-4v4-4000mah.dtsi b/arch/arm/boot/dts/qcom/batterydata-wingtech-guangyu_Coslight-4v4-4000mah.dtsi new file mode 100644 index 0000000000000..b7d38ca5e47df --- /dev/null +++ b/arch/arm/boot/dts/qcom/batterydata-wingtech-guangyu_Coslight-4v4-4000mah.dtsi @@ -0,0 +1,111 @@ + +qcom,Wingtech4000-batterydata { + qcom,battery-type = "wingtech-guangyu-4v4-3000mah"; + qcom,batt-id-kohm = <100>; + qcom,chg-term-ua = <120000>; + qcom,default-rbatt-mohm = <112>; + qcom,fcc-mah = <4000>; + qcom,max-voltage-uv = <4400000>; + qcom,rbatt-capacitive-mohm = <50>; + qcom,v-cutoff-uv = <3400000>; + + qcom,fcc-temp-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-data = <4037 4050 4050 4046 4018>; + }; + + qcom,ibat-acc-lut { + qcom,lut-col-legend = <(-20) 0 25>; + qcom,lut-row-legend = <0 500 800 1000 1500>, + <2000>; + qcom,lut-data = <3968 3991 3988>, + <714 3850 3920>, + <448 3490 3906>, + <248 3193 3896>, + <48 2452 3826>, + <12 1878 3688>; + }; + + qcom,pc-temp-ocv-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-row-legend = <100 95 90 85 80>, + <75 70 65 60 55>, + <50 45 40 35 30>, + <25 20 16 13 11>, + <10 9 8 7 6>, + <5 4 3 2 1>, + <0>; + qcom,lut-data = <4389 4385 4379 4374 4367>, + <4246 4302 4314 4312 4306>, + <4150 4237 4256 4254 4249>, + <4070 4178 4198 4197 4192>, + <3988 4122 4142 4140 4137>, + <3934 4068 4088 4087 4084>, + <3890 4004 4038 4036 4034>, + <3861 3946 3985 3989 3988>, + <3839 3906 3938 3943 3943>, + <3820 3870 3888 3890 3890>, + <3804 3840 3854 3854 3854>, + <3788 3814 3828 3828 3828>, + <3773 3794 3806 3806 3806>, + <3756 3778 3786 3788 3786>, + <3739 3766 3769 3768 3766>, + <3720 3750 3753 3747 3736>, + <3699 3730 3735 3726 3714>, + <3678 3712 3714 3706 3694>, + <3660 3696 3694 3686 3674>, + <3646 3688 3686 3680 3668>, + <3639 3686 3684 3678 3667>, + <3628 3680 3682 3676 3665>, + <3616 3676 3680 3674 3662>, + <3602 3670 3676 3670 3658>, + <3584 3659 3668 3661 3649>, + <3562 3640 3650 3640 3626>, + <3535 3606 3609 3596 3584>, + <3496 3554 3550 3536 3526>, + <3434 3475 3466 3451 3444>, + <3316 3337 3324 3309 3312>, + <3000 3000 3000 3000 3000>; + }; + + qcom,rbatt-sf-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-row-legend = <100 95 90 85 80>, + <75 70 65 60 55>, + <50 45 40 35 30>, + <25 20 16 13 11>, + <10 9 8 7 6>, + <5 4 3 2 1>; + qcom,lut-data = <1427 317 100 81 73>, + <1427 316 100 81 73>, + <1289 303 100 81 73>, + <1186 293 100 81 75>, + <1084 285 103 83 77>, + <1039 279 104 85 78>, + <1016 264 107 87 79>, + <1020 244 111 90 81>, + <1032 243 108 92 82>, + <1058 240 95 80 75>, + <1087 241 93 79 73>, + <1124 243 94 79 74>, + <1177 249 96 80 75>, + <1233 259 96 81 76>, + <1298 272 96 81 75>, + <1366 290 96 80 75>, + <1446 314 97 80 76>, + <1514 338 98 81 76>, + <1571 361 98 80 74>, + <1569 373 99 80 75>, + <1587 387 100 82 77>, + <1638 400 102 84 79>, + <1732 417 105 88 82>, + <1883 436 110 91 85>, + <2069 461 113 93 86>, + <2304 480 113 90 82>, + <2620 505 108 86 79>, + <3055 536 111 88 79>, + <3730 584 115 90 82>, + <5181 704 141 120 91>; + }; +}; +/* TEST_DB_ID=TEST_ID_NOT_SET */ diff --git a/arch/arm/boot/dts/qcom/batterydata-wingtech-xingwangda_ATL-4v4-3030mah.dtsi b/arch/arm/boot/dts/qcom/batterydata-wingtech-xingwangda_ATL-4v4-3030mah.dtsi new file mode 100644 index 0000000000000..fcc71ffda47f2 --- /dev/null +++ b/arch/arm/boot/dts/qcom/batterydata-wingtech-xingwangda_ATL-4v4-3030mah.dtsi @@ -0,0 +1,116 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +qcom,wingtech-xingwangda-4v4-3030mah-data { + qcom,default-rbatt-mohm = <120>; + qcom,max-voltage-uv = <4400000>; + qcom,rbatt-capacitive-mohm = <10>; + qcom,v-cutoff-uv = <3400000>; + qcom,chg-term-ua = <100000>; + qcom,batt-id-kohm = <50>; + qcom,flat-ocv-threshold-uv = <3800000>; + qcom,battery-type = "wingtech-xingwangda-4v4-3030mah"; + + qcom,fcc-temp-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-data = <4025 4035 4034 4030 4020>; + }; + + qcom,pc-temp-ocv-lut { + qcom,lut-col-legend = <(-20) 0 25 45 60>; + qcom,lut-row-legend = <100 95 90 85 80>, + <75 70 65 60 55>, + <50 45 40 35 30>, + <25 20 16 13 11>, + <5 4 3 2 1>, + <0>; + qcom,lut-data = <4360 4360 4360 4360 4360>, + <4278 4311 4314 4310 4305>, + <4199 4248 4254 4251 4246>, + <4128 4188 4195 4194 4188>, + <4080 4130 4138 4136 4133>, + <4000 4075 4084 4083 4080>, + <3946 4010 4033 4033 4030>, + <3903 3952 3984 3986 3984>, + <3866 3915 3935 3942 3940>, + <3834 3880 3888 3890 3889>, + <3812 3847 3854 3854 3854>, + <3794 3820 3828 3828 3828>, + <3778 3797 3806 3807 3806>, + <3762 3779 3788 3789 3788>, + <3743 3766 3772 3771 3765>, + <3724 3750 3756 3749 3738>, + <3700 3734 3738 3730 3716>, + <3679 3720 3718 3710 3696>, + <3660 3708 3700 3692 3680>, + <3644 3700 3690 3682 3670>, + <3554 3640 3648 3640 3617>, + <3516 3598 3606 3596 3574>, + <3458 3539 3548 3537 3512>, + <3367 3454 3467 3456 3427>, + <3223 3318 3338 3327 3304>, + <3019 3000 3000 3000 3036>; + }; + + qcom,rbatt-sf-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-row-legend = <100 95 90 85 80>, + <75 70 65 60 55>, + <50 45 40 35 30>, + <25 20 16 13 11>, + <10 9 8 7 6>, + <5 4 3 2 1>, + <0>; + qcom,lut-data =<1351 292 100 81 73>, + <1351 292 100 81 73>, + <1232 292 102 82 74>, + <1143 289 104 84 75>, + <1113 287 108 86 78>, + <1048 282 111 89 79>, + <1027 273 116 92 81>, + <1018 265 123 97 83>, + <1016 264 114 100 87>, + <1020 260 101 85 78>, + <1035 260 99 81 74>, + <1063 260 99 82 76>, + <1103 262 102 84 79>, + <1160 267 105 88 82>, + <1231 273 106 88 80>, + <1318 282 103 83 77>, + <1423 297 103 83 77>, + <1575 317 103 83 77>, + <1747 341 102 82 76>, + <1864 360 102 82 75>, + <1881 367 102 84 78>, + <1805 357 104 85 80>, + <1664 352 108 88 82>, + <1835 363 112 91 86>, + <2064 375 114 92 86>, + <2373 388 112 88 79>, + <2802 408 109 88 80>, + <3500 448 112 89 82>, + <5633 516 118 92 83>, + <11267 1032 148 118 94>, + <22533 2063 295 235 188>; + }; + + qcom,ibat-acc-lut { + qcom,lut-col-legend = <(-20) 0 25>; + qcom,lut-row-legend = <0 500 800 1000 1500 2000>; + qcom,lut-data =<3944 3954 3974>, + <300 3793 3930>, + <86 3332 3905>, + <76 2939 3883>, + <17 2118 3797>, + <11 1552 3622>; + }; +}; diff --git a/arch/arm/boot/dts/qcom/batterydata-wingtech-xingwangda_ATL-4v4-4000mah.dtsi b/arch/arm/boot/dts/qcom/batterydata-wingtech-xingwangda_ATL-4v4-4000mah.dtsi new file mode 100644 index 0000000000000..ce537fba7e52f --- /dev/null +++ b/arch/arm/boot/dts/qcom/batterydata-wingtech-xingwangda_ATL-4v4-4000mah.dtsi @@ -0,0 +1,119 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + + +qcom,wingtech-xingwangda-4v4-4000mah-data { + qcom,default-rbatt-mohm = <120>; + qcom,max-voltage-uv = <4400000>; + qcom,fcc-mah = <4000>; + qcom,rbatt-capacitive-mohm = <10>; + qcom,v-cutoff-uv = <3400000>; + qcom,chg-term-ua = <100000>; + qcom,batt-id-kohm = <50>; + qcom,flat-ocv-threshold-uv = <3800000>; + qcom,battery-type = "wingtech-xingwangda-4v4-3000mah"; + + qcom,fcc-temp-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-data = <4025 4035 4034 4030 4020>; + }; + + qcom,pc-temp-ocv-lut { + qcom,lut-col-legend = <(-20) 0 25 45 60>; + qcom,lut-row-legend = <100 95 90 85 80>, + <75 70 65 60 55>, + <50 45 40 35 30>, + <25 20 16 13 11>, + <5 4 3 2 1>, + <0>; + qcom,lut-data = <4360 4360 4360 4360 4360>, + <4278 4311 4314 4310 4305>, + <4199 4248 4254 4251 4246>, + <4128 4188 4195 4194 4188>, + <4080 4130 4138 4136 4133>, + <4000 4075 4084 4083 4080>, + <3946 4010 4033 4033 4030>, + <3903 3952 3984 3986 3984>, + <3866 3915 3935 3942 3940>, + <3834 3880 3888 3890 3889>, + <3812 3847 3854 3854 3854>, + <3794 3820 3828 3828 3828>, + <3778 3797 3806 3807 3806>, + <3762 3779 3788 3789 3788>, + <3743 3766 3772 3771 3765>, + <3724 3750 3756 3749 3738>, + <3700 3734 3738 3730 3716>, + <3679 3720 3718 3710 3696>, + <3660 3708 3700 3692 3680>, + <3644 3700 3690 3682 3670>, + <3554 3640 3648 3640 3617>, + <3516 3598 3606 3596 3574>, + <3458 3539 3548 3537 3512>, + <3367 3454 3467 3456 3427>, + <3223 3318 3338 3327 3304>, + <3019 3000 3000 3000 3036>; + }; + + qcom,rbatt-sf-lut { + qcom,lut-col-legend = <(-20) 0 25 40 60>; + qcom,lut-row-legend = <100 95 90 85 80>, + <75 70 65 60 55>, + <50 45 40 35 30>, + <25 20 16 13 11>, + <10 9 8 7 6>, + <5 4 3 2 1>, + <0>; + qcom,lut-data =<1351 292 100 81 73>, + <1351 292 100 81 73>, + <1232 292 102 82 74>, + <1143 289 104 84 75>, + <1113 287 108 86 78>, + <1048 282 111 89 79>, + <1027 273 116 92 81>, + <1018 265 123 97 83>, + <1016 264 114 100 87>, + <1020 260 101 85 78>, + <1035 260 99 81 74>, + <1063 260 99 82 76>, + <1103 262 102 84 79>, + <1160 267 105 88 82>, + <1231 273 106 88 80>, + <1318 282 103 83 77>, + <1423 297 103 83 77>, + <1575 317 103 83 77>, + <1747 341 102 82 76>, + <1864 360 102 82 75>, + <1881 367 102 84 78>, + <1805 357 104 85 80>, + <1664 352 108 88 82>, + <1835 363 112 91 86>, + <2064 375 114 92 86>, + <2373 388 112 88 79>, + <2802 408 109 88 80>, + <3500 448 112 89 82>, + <5633 516 118 92 83>, + <11267 1032 148 118 94>, + <22533 2063 295 235 188>; + }; + + qcom,ibat-acc-lut { + qcom,lut-col-legend = <(-20) 0 25>; + qcom,lut-row-legend = <0 500 800 1000 1500 2000>; + qcom,lut-data =<3944 3954 3974>, + <300 3793 3930>, + <86 3332 3905>, + <76 2939 3883>, + <17 2118 3797>, + <11 1552 3622>; + }; +}; diff --git a/arch/arm/boot/dts/qcom/dsi-panel-ft8006m-boe-5p7-720p-video.dtsi b/arch/arm/boot/dts/qcom/dsi-panel-ft8006m-boe-5p7-720p-video.dtsi new file mode 100644 index 0000000000000..1667ef07c0e72 --- /dev/null +++ b/arch/arm/boot/dts/qcom/dsi-panel-ft8006m-boe-5p7-720p-video.dtsi @@ -0,0 +1,110 @@ +/* Copyright (c) 2013, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/*--------------------------------------------------------------------------- + * This file is autogenerated file using gcdb parser. Please do not edit it. + * Update input XML file to add a new entry or update variable in this file + * VERSION = "1.0" + *---------------------------------------------------------------------------*/ +&mdss_mdp { + dsi_ft8006m_boe_5p7_720p_video: qcom,mdss_dsi_ft8006m_boe_5p7_720p_video { + qcom,mdss-dsi-panel-name = "ft8006m_boe_5p7_720p_video"; + qcom,mdss-dsi-panel-controller = <&mdss_dsi0>; + qcom,mdss-dsi-panel-type = "dsi_video_mode"; + qcom,mdss-dsi-panel-destination = "display_1"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-pan-fps-update = "dfps_immediate_porch_mode_vfp"; + qcom,min-refresh-rate = <48>; + qcom,max-refresh-rate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <720>; + qcom,mdss-dsi-panel-height = <1440>; + qcom,mdss-pan-physical-width-dimension = <65>; + qcom,mdss-pan-physical-height-dimension = <129>; + qcom,mdss-dsi-h-front-porch = <45>; + qcom,mdss-dsi-h-back-porch = <25>; + qcom,mdss-dsi-h-pulse-width = <14>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <37>; + qcom,mdss-dsi-v-front-porch = <65>; + qcom,mdss-dsi-v-pulse-width = <8>; + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-underflow-color = <0x00>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-on-command = [39 01 00 00 78 00 02 11 00 + 39 00 00 00 00 00 03 50 5A 0E + 39 00 00 00 00 00 04 83 AC B4 6D + 39 00 00 00 00 00 03 50 5A 19 + 39 00 00 00 00 00 08 90 fc 6f f6 ef cf af 0f + 39 00 00 00 00 00 03 A1 00 44 + 39 00 00 00 00 00 11 80 ea d3 c6 b8 af a6 9e 98 92 8e 8a 85 00 60 f6 cf + 39 00 00 00 00 00 03 50 5A 23 + 39 00 00 00 00 00 07 90 ff 0f 00 00 2C 00 + 39 01 00 00 00 00 02 50 00 + 39 01 00 00 02 00 02 29 00 + ]; + qcom,mdss-dsi-off-command = [ + 05 01 00 00 14 00 02 28 00 + 05 01 00 00 78 00 02 10 00 + 39 01 00 00 00 00 02 04 5A + 39 01 00 00 00 00 02 05 5A]; + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command-state = "dsi_lp_mode"; + + qcom,mdss-dsi-panel-cabc-off-command = [39 01 00 00 00 00 03 50 5A 23 + 39 01 00 00 00 00 02 95 00 + 39 01 00 00 00 00 02 50 00]; + qcom,mdss-dsi-panel-cabc-on-command = [39 01 00 00 00 00 03 50 5A 23 + 39 01 00 00 00 00 02 95 01 + 39 01 00 00 00 00 02 50 00]; + qcom,mdss-dsi-panel-cabc-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-h-sync-pulse = <1>; + qcom,mdss-dsi-traffic-mode = "burst_mode"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + + qcom,mdss-dsi-panel-timings = [8B 1E 14 00 44 48 18 30 19 03 04 00]; + qcom,mdss-dsi-panel-timings-phy-v2 = [1E 1B 04 06 02 03 04 A0 + 1E 1B 04 06 02 03 04 A0 + 1E 1B 04 06 02 03 04 A0 + 1E 1B 04 06 02 03 04 A0 + 1E 0E 04 05 02 03 04 A0]; + qcom,mdss-dsi-t-clk-post = <0x0A>; + qcom,mdss-dsi-t-clk-pre = <0x1E>; + qcom,mdss-dsi-bl-min-level = <7>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,mdss-brightness-max-level = <4095>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled"; + qcom,mdss-dsi-lp11-init; + qcom,mdss-dsi-init-delay-us = <5000>; + qcom,mdss-dsi-reset-sequence = <1 35>, <0 5>, <1 10>; + qcom,mdss-dsi-pwr-off-rst-pull-high = <1>; + + qcom,mdss-dsi-panel-status-command = [06 01 00 01 05 00 02 0A 9c]; + qcom,mdss-dsi-panel-status-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-panel-status-check-mode = "reg_read"; + qcom,mdss-dsi-panel-status-valid-params = <1>; + qcom,mdss-dsi-panel-status-value = <0x9c>; + qcom,mdss-dsi-panel-status-read-length = <1>; + }; +}; diff --git a/arch/arm/boot/dts/qcom/dsi-panel-ft8613-csot-5p7-720p-video.dtsi b/arch/arm/boot/dts/qcom/dsi-panel-ft8613-csot-5p7-720p-video.dtsi new file mode 100644 index 0000000000000..a4a8680c7c705 --- /dev/null +++ b/arch/arm/boot/dts/qcom/dsi-panel-ft8613-csot-5p7-720p-video.dtsi @@ -0,0 +1,204 @@ +/* Copyright (c) 2013, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/*--------------------------------------------------------------------------- + * This file is autogenerated file using gcdb parser. Please do not edit it. + * Update input XML file to add a new entry or update variable in this file + * VERSION = "1.0" + *---------------------------------------------------------------------------*/ +&mdss_mdp { + dsi_ft8613_csot_5p7_720p_video: qcom,mdss_dsi_ft8613_csot_5p7_720p_video { + qcom,mdss-dsi-panel-name = "ft8613_csot_5p7_720p_video"; + qcom,mdss-dsi-panel-controller = <&mdss_dsi0>; + qcom,mdss-dsi-panel-type = "dsi_video_mode"; + qcom,mdss-dsi-panel-destination = "display_1"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-pan-fps-update = "dfps_immediate_porch_mode_vfp"; + qcom,min-refresh-rate = <48>; + qcom,max-refresh-rate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <720>; + qcom,mdss-dsi-panel-height = <1440>; + qcom,mdss-pan-physical-width-dimension = <65>; + qcom,mdss-pan-physical-height-dimension = <129>; + qcom,mdss-dsi-h-front-porch = <32>; + qcom,mdss-dsi-h-back-porch = <32>; + qcom,mdss-dsi-h-pulse-width = <2>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <16>; + qcom,mdss-dsi-v-front-porch = <16>; + qcom,mdss-dsi-v-pulse-width = <2>; + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-underflow-color = <0x00>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-on-command = [ + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 04 FF 87 16 01 + 39 01 00 00 00 00 02 00 80 + 39 01 00 00 00 00 03 FF 87 16 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 19 E1 00 06 18 2B 36 42 55 64 6B 74 7D 87 70 68 65 5E 50 45 37 2D 25 16 09 07 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 19 E2 00 06 18 2B 36 42 55 64 6B 74 7D 87 70 68 65 5E 50 45 37 2D 25 16 09 07 + 39 01 00 00 00 00 02 00 81 + 39 01 00 00 00 00 0D F3 40 89 C0 40 89 C0 40 81 C0 40 81 C0 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 05 2A 00 00 02 CF + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 05 2B 00 00 05 9F + 39 01 00 00 00 00 02 00 81 + 39 01 00 00 00 00 0a CA b9 ff b9 ff b9 ff 00 00 00 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 02 C6 10 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 13 C7 a0 bb bc aa cd 9a bb 8c 88 88 78 66 56 55 55 55 55 55 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 02 C6 11 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 13 C7 a0 ab ac aa cc 9a ba 8b 88 88 78 66 66 66 66 55 55 55 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 02 C6 12 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 13 C7 a0 aa 9c 9b cc 99 ba 8a 88 88 78 66 66 66 66 66 66 55 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 02 C6 13 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 13 C7 90 9b 9c 9a bc 9a a9 8b 88 88 88 66 66 66 66 66 66 66 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 02 C6 14 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 13 C7 90 9a 9c 9a ca 99 a9 8b 88 88 88 77 67 66 66 66 66 66 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 02 C6 15 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 13 C7 90 9a 9b 9a c9 99 99 8a 88 88 88 77 77 77 67 66 66 66 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 02 C6 16 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 13 C7 90 9a 9a 8a c9 99 99 8a 88 88 88 77 77 77 77 67 66 66 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 02 C6 17 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 13 C7 90 99 9a 8a b9 99 99 89 88 88 88 77 77 77 77 77 77 66 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 02 C6 18 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 13 C7 80 9a 8a 99 a9 99 98 89 88 88 88 78 77 77 77 77 77 77 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 02 C6 19 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 13 C7 80 99 99 99 b8 89 89 89 88 88 88 88 78 77 77 77 77 77 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 02 C6 1a + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 13 C7 80 99 99 98 a8 89 89 89 88 88 88 88 88 78 77 77 77 77 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 02 C6 1b + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 13 C7 80 98 99 89 98 99 88 89 88 88 88 88 88 88 78 77 77 77 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 02 C6 1c + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 13 C7 80 98 98 89 98 89 98 88 88 88 88 88 88 88 88 78 77 77 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 02 C6 1d + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 13 C7 80 88 89 89 98 79 89 88 88 88 88 88 88 88 88 88 78 77 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 02 C6 1e + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 13 C7 80 88 98 88 98 88 89 88 88 88 88 88 88 88 88 88 88 77 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 02 C6 1f + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 13 C7 80 88 88 88 88 89 88 88 88 88 88 88 88 88 88 88 88 88 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 02 C6 00 + 39 00 00 00 00 00 02 51 FF + 39 00 00 00 00 00 02 53 24 + 39 01 00 00 00 00 02 55 00 + 39 01 00 00 78 00 02 11 00 + 39 01 00 00 02 00 02 29 00 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 03 99 00 00 + ]; + qcom,mdss-dsi-off-command = [ + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 03 99 95 27 + 05 01 00 00 14 00 02 28 00 + 05 01 00 00 78 00 02 10 00 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 05 F7 5A A5 87 16 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 03 99 00 00 + ]; + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command-state = "dsi_lp_mode"; + + qcom,mdss-dsi-panel-cabc-off-command = [ + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 03 99 95 27 + 39 01 00 00 00 00 02 55 00 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 03 99 00 00 + ]; + qcom,mdss-dsi-panel-cabc-on-command = [ + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 03 99 95 27 + 39 01 00 00 00 00 02 55 01 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 03 99 00 00 + ]; + qcom,mdss-dsi-panel-cabc-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-h-sync-pulse = <1>; + qcom,mdss-dsi-traffic-mode = "burst_mode"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + + qcom,mdss-dsi-panel-timings = [8B 1E 14 00 44 48 18 30 19 03 04 00]; + qcom,mdss-dsi-panel-timings-phy-v2 = [1E 1B 04 06 02 03 04 A0 + 1E 1B 04 06 02 03 04 A0 + 1E 1B 04 06 02 03 04 A0 + 1E 1B 04 06 02 03 04 A0 + 1E 0E 03 05 02 03 04 A0]; + qcom,mdss-dsi-t-clk-post = <0x04>; + qcom,mdss-dsi-t-clk-pre = <0x1D>; + qcom,mdss-dsi-bl-min-level = <8>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,mdss-brightness-max-level = <4095>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled"; + qcom,mdss-dsi-lp11-init; + qcom,mdss-dsi-init-delay-us = <5000>; + qcom,mdss-dsi-reset-sequence = <1 10>, <0 5>, <1 30>; + + qcom,esd-check-enabled; + qcom,mdss-dsi-panel-status-command = [06 01 00 01 05 00 02 AC 00 + 06 01 00 01 05 00 02 0A 9C]; + qcom,mdss-dsi-panel-status-command-num = <2>; + qcom,mdss-dsi-panel-status-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-panel-status-check-mode = "reg_read"; + qcom,mdss-dsi-panel-status-valid-params = <1 1>; + qcom,mdss-dsi-panel-status-value = <0x00>,<0x9C>; + qcom,mdss-dsi-panel-status-read-length = <1 1>; + }; +}; diff --git a/arch/arm/boot/dts/qcom/dsi-panel-ft8613-ebbg-5p5-1080p-video.dtsi b/arch/arm/boot/dts/qcom/dsi-panel-ft8613-ebbg-5p5-1080p-video.dtsi new file mode 100644 index 0000000000000..2a92adab6a51f --- /dev/null +++ b/arch/arm/boot/dts/qcom/dsi-panel-ft8613-ebbg-5p5-1080p-video.dtsi @@ -0,0 +1,99 @@ +/* Copyright (c) 2013, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/*--------------------------------------------------------------------------- + * This file is autogenerated file using gcdb parser. Please do not edit it. + * Update input XML file to add a new entry or update variable in this file + * VERSION = "1.0" + *---------------------------------------------------------------------------*/ +&mdss_mdp { + dsi_ft8613_ebbg_5p5_1080p_video: qcom,mdss_dsi_ft8613_ebbg_5p5_1080p_video { + qcom,mdss-dsi-panel-name = "ft8613_ebbg_5p5_1080p_video"; + qcom,mdss-dsi-panel-controller = <&mdss_dsi0>; + qcom,mdss-dsi-panel-type = "dsi_video_mode"; + qcom,mdss-dsi-panel-destination = "display_1"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <1080>; + qcom,mdss-dsi-panel-height = <1920>; + qcom,mdss-pan-physical-width-dimension = <62>; + qcom,mdss-pan-physical-height-dimension = <110>; + qcom,mdss-dsi-h-front-porch = <88>; + qcom,mdss-dsi-h-back-porch = <98>; + qcom,mdss-dsi-h-pulse-width = <20>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <20>; + qcom,mdss-dsi-v-front-porch = <20>; + qcom,mdss-dsi-v-pulse-width = <2>; + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-underflow-color = <0x00>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-on-command = [39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 04 FF 87 16 01 + 39 00 00 00 00 00 02 00 80 + 39 00 00 00 00 00 03 FF 87 16 + 39 00 00 00 00 00 02 00 81 + 39 00 00 00 00 00 0A CA B4 FF B9 FF B9 FF 00 00 00 + 39 00 00 00 00 00 02 00 B0 + 39 00 00 00 00 00 02 CA 04 + 39 00 00 00 00 00 02 51 FF + 39 00 00 00 00 00 02 53 2C + 39 01 00 00 00 00 02 55 02 + 39 01 00 00 78 00 02 11 00 + 39 01 00 00 02 00 02 29 00 + ]; + qcom,mdss-dsi-off-command = [ + 05 00 00 00 14 00 02 28 00 + 05 01 00 00 78 00 02 10 00 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 05 F7 5A A5 87 16]; + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-h-sync-pulse = <1>; + qcom,mdss-dsi-traffic-mode = "burst_mode"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + + qcom,mdss-dsi-panel-timings = [8B 1E 14 00 44 48 18 30 19 03 04 00]; + qcom,mdss-dsi-panel-timings-phy-v2 = [24 1F 08 09 05 03 04 A0 + 24 1F 08 09 05 03 04 A0 + 24 1F 08 09 05 03 04 A0 + 24 1F 08 09 05 03 04 A0 + 24 1B 08 09 05 03 04 A0]; + qcom,mdss-dsi-t-clk-post = <0x0D>; + qcom,mdss-dsi-t-clk-pre = <0x30>; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled"; + qcom,mdss-dsi-lp11-init; + qcom,mdss-dsi-init-delay-us = <5000>; + qcom,mdss-dsi-reset-sequence = <1 10>, <0 5>, <1 10>; + + qcom,mdss-dsi-panel-status-command = [06 01 00 01 05 00 02 0A 08]; + qcom,mdss-dsi-panel-status-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-panel-status-check-mode = "reg_read"; + qcom,mdss-dsi-panel-status-valid-params = <1>; + qcom,mdss-dsi-panel-status-value = <0x9c>; + qcom,mdss-dsi-panel-status-read-length = <1>; + }; +}; diff --git a/arch/arm/boot/dts/qcom/dsi-panel-ft8613-ebbg-5p7-720p-video.dtsi b/arch/arm/boot/dts/qcom/dsi-panel-ft8613-ebbg-5p7-720p-video.dtsi new file mode 100644 index 0000000000000..2dbb4a31abb68 --- /dev/null +++ b/arch/arm/boot/dts/qcom/dsi-panel-ft8613-ebbg-5p7-720p-video.dtsi @@ -0,0 +1,216 @@ +/* Copyright (c) 2013, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/*--------------------------------------------------------------------------- + * This file is autogenerated file using gcdb parser. Please do not edit it. + * Update input XML file to add a new entry or update variable in this file + * VERSION = "1.0" + *---------------------------------------------------------------------------*/ +&mdss_mdp { + dsi_ft8613_ebbg_5p7_720p_video: qcom,mdss_dsi_ft8613_ebbg_5p7_720p_video { + qcom,mdss-dsi-panel-name = "ft8613_ebbg_5p7_720p_video"; + qcom,mdss-dsi-panel-controller = <&mdss_dsi0>; + qcom,mdss-dsi-panel-type = "dsi_video_mode"; + qcom,mdss-dsi-panel-destination = "display_1"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-pan-fps-update = "dfps_immediate_porch_mode_vfp"; + qcom,min-refresh-rate = <48>; + qcom,max-refresh-rate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <720>; + qcom,mdss-dsi-panel-height = <1440>; + qcom,mdss-pan-physical-width-dimension = <65>; + qcom,mdss-pan-physical-height-dimension = <129>; + qcom,mdss-dsi-h-front-porch = <32>; + qcom,mdss-dsi-h-back-porch = <32>; + qcom,mdss-dsi-h-pulse-width = <2>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <16>; + qcom,mdss-dsi-v-front-porch = <16>; + qcom,mdss-dsi-v-pulse-width = <2>; + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-underflow-color = <0x00>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-on-command = [ + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 04 FF 87 16 01 + 39 01 00 00 00 00 02 00 80 + 39 01 00 00 00 00 03 FF 87 16 + 39 01 00 00 00 00 02 00 81 + 39 01 00 00 00 00 0D F3 00 82 C0 00 82 C0 00 84 C0 00 84 C0 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 05 2A 00 00 02 CF + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 05 2B 00 00 05 9F + 39 00 00 00 00 00 02 00 81 + 39 00 00 00 00 00 0A CA B4 FF B9 FF B9 FF 00 00 00 + 39 00 00 00 00 00 02 00 B0 + 39 00 00 00 00 00 02 CA 04 + 39 00 00 00 00 00 02 00 88 + 39 00 00 00 00 00 05 C2 90 0C 12 00 + 39 00 00 00 00 00 02 00 CA + 39 00 00 00 00 00 02 CB 02 + 39 00 00 00 00 00 02 00 8A + 39 00 00 00 00 00 02 CC 04 + 39 00 00 00 00 00 02 00 9A + 39 00 00 00 00 00 02 CC 04 + 39 00 00 00 00 00 02 00 AB + 39 00 00 00 00 00 02 CD 0B + 39 00 00 00 00 00 02 00 8B + 39 00 00 00 00 00 02 CD 0B + 39 01 00 00 00 00 02 00 81 + 39 01 00 00 00 00 0a CA b9 ff b9 ff b9 ff 00 00 00 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 02 C6 10 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 13 C7 a0 bb 9c bb dc aa 8b 88 88 78 66 66 66 66 66 66 66 56 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 02 C6 11 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 13 C7 a0 ab 9c aa cd aa 8a 88 88 88 77 66 66 66 66 66 66 66 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 02 C6 12 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 13 C7 a0 aa 9c 9a bd 9b 8a 88 88 88 77 77 67 66 66 66 66 66 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 02 C6 13 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 13 C7 90 9b ab 9a cb aa 89 88 88 88 77 77 77 77 66 66 66 66 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 02 C6 14 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 13 C7 90 aa 8b aa ca a9 89 88 88 88 77 77 77 77 77 67 66 66 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 02 C6 15 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 13 C7 90 9a 8b 9a bb a9 89 88 88 88 77 77 77 77 77 77 67 66 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 02 C6 16 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 13 C7 90 9a 8a 9a ba 99 89 88 88 88 77 77 77 77 77 77 77 77 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 02 C6 17 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 13 C7 90 99 9a 89 ba 99 89 88 88 88 88 77 77 77 77 77 77 77 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 02 C6 18 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 13 C7 80 9a 99 99 a9 99 89 88 88 88 88 88 77 77 77 77 77 77 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 02 C6 19 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 13 C7 80 99 8a 99 a8 99 89 88 88 88 88 88 88 77 77 77 77 77 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 02 C6 1a + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 13 C7 80 99 89 99 a8 89 89 88 88 88 88 88 88 88 77 77 77 77 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 02 C6 1b + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 13 C7 80 89 89 99 a8 98 88 88 88 88 88 88 88 88 88 77 77 77 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 02 C6 1c + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 13 C7 80 98 89 98 a8 88 88 88 88 88 88 88 88 88 88 88 77 77 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 02 C6 1d + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 13 C7 80 88 89 98 98 98 88 88 88 88 88 88 88 88 88 88 78 77 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 02 C6 1e + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 13 C7 80 88 98 88 88 89 88 88 88 88 88 88 88 88 88 88 88 78 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 02 C6 1f + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 13 C7 80 88 88 88 88 89 88 88 88 88 88 88 88 88 88 88 88 88 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 02 C6 00 + 39 00 00 00 00 00 02 51 FF + 39 00 00 00 00 00 02 53 24 + 39 01 00 00 00 00 02 55 00 + 39 01 00 00 78 00 02 11 00 + 39 01 00 00 02 00 02 29 00 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 03 99 00 00 + ]; + qcom,mdss-dsi-off-command = [ + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 03 99 95 27 + 05 00 00 00 14 00 02 28 00 + 05 01 00 00 78 00 02 10 00 + 39 00 00 00 00 00 02 00 00 + 39 01 00 00 00 00 05 f7 5a a5 87 16 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 03 99 00 00 + ]; + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command-state = "dsi_lp_mode"; + + qcom,mdss-dsi-panel-cabc-off-command = [ + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 03 99 95 27 + 39 01 00 00 00 00 02 55 00 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 03 99 00 00 + ]; + qcom,mdss-dsi-panel-cabc-on-command = [ + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 03 99 95 27 + 39 01 00 00 00 00 02 55 01 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 03 99 00 00 + ]; + qcom,mdss-dsi-panel-cabc-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-h-sync-pulse = <1>; + qcom,mdss-dsi-traffic-mode = "burst_mode"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + + qcom,mdss-dsi-panel-timings = [8B 1E 14 00 44 48 18 30 19 03 04 00]; + qcom,mdss-dsi-panel-timings-phy-v2 = [1E 1B 04 06 02 03 04 A0 + 1E 1B 04 06 02 03 04 A0 + 1E 1B 04 06 02 03 04 A0 + 1E 1B 04 06 02 03 04 A0 + 1E 0E 03 05 02 03 04 A0]; + qcom,mdss-dsi-t-clk-post = <0x04>; + qcom,mdss-dsi-t-clk-pre = <0x1D>; + qcom,mdss-dsi-bl-min-level = <9>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,mdss-brightness-max-level = <4095>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled"; + qcom,mdss-dsi-lp11-init; + qcom,mdss-dsi-init-delay-us = <5000>; + qcom,mdss-dsi-reset-sequence = <1 10>, <0 5>, <1 30>; + + qcom,esd-check-enabled; + qcom,mdss-dsi-panel-status-command = [06 01 00 01 05 00 02 AC 00 + 06 01 00 01 05 00 02 0A 9C]; + qcom,mdss-dsi-panel-status-command-num = <2>; + qcom,mdss-dsi-panel-status-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-panel-status-check-mode = "reg_read"; + qcom,mdss-dsi-panel-status-valid-params = <1 1>; + qcom,mdss-dsi-panel-status-value = <0x00>,<0x9C>; + qcom,mdss-dsi-panel-status-read-length = <1 1>; +}; +}; diff --git a/arch/arm/boot/dts/qcom/dsi-panel-hx8394f-boe-720p-video.dtsi b/arch/arm/boot/dts/qcom/dsi-panel-hx8394f-boe-720p-video.dtsi new file mode 100644 index 0000000000000..abd23f54b489b --- /dev/null +++ b/arch/arm/boot/dts/qcom/dsi-panel-hx8394f-boe-720p-video.dtsi @@ -0,0 +1,128 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/*--------------------------------------------------------------------------- + * This file is autogenerated file using gcdb parser. Please do not edit it. + * Update input XML file to add a new entry or update variable in this file + * VERSION = "1.0" + *---------------------------------------------------------------------------*/ +&mdss_mdp { + dsi_hx8394f_boe_720_vid: qcom,mdss_dsi_hx8394f_boe_720p_video { + qcom,mdss-dsi-panel-name = "hx8394F_HD720p_video_BOE"; + qcom,mdss-dsi-panel-controller = <&mdss_dsi0>; + qcom,mdss-dsi-panel-type = "dsi_video_mode"; + qcom,mdss-dsi-panel-destination = "display_1"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <720>; + qcom,mdss-dsi-panel-height = <1280>; + qcom,mdss-dsi-h-front-porch = <160>; + qcom,mdss-dsi-h-back-porch = <160>; + qcom,mdss-dsi-h-pulse-width = <24>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <12>; + qcom,mdss-dsi-v-front-porch = <15>; + qcom,mdss-dsi-v-pulse-width = <4>; + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-color-order = "rgb_swap_rgb"; + qcom,mdss-dsi-underflow-color = <0x00>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-on-command = [39 01 00 00 00 00 04 B9 FF 83 94 + 39 01 00 00 78 00 02 11 00 + 39 01 00 00 14 00 02 29 00 + 39 01 00 00 00 00 02 51 FF + 39 01 00 00 05 00 0A C9 13 00 13 1E 31 1E 00 91 00 + 39 01 00 00 05 00 02 55 00 + 39 01 00 00 00 00 02 53 2C]; + qcom,mdss-dsi-off-command = [05 01 00 00 32 00 02 28 00 + 39 01 00 00 78 00 02 10 00]; + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-panel-warm-command = [39 01 00 00 01 00 3B E0 07 08 09 0D 10 14 16 13 24 36 48 4A 58 6F 76 80 97 A5 A8 B5 C6 62 63 68 6F 72 78 7F 7F 00 02 08 0D 0C 0E 0F 10 24 36 48 4A 58 6F 78 82 99 A4 A0 B1 C0 5E 5E 64 6B 6C 73 7F 7F + 39 01 00 00 01 00 02 BD 00 + 39 01 00 00 01 00 2C C1 01 00 0C 18 24 30 3A 43 4A 52 59 5F 66 6D 74 7B 83 8A 91 99 A0 A7 AE B5 BC C3 CA D1 D9 E0 E7 EF F7 FF 15 B3 59 B8 1E 00 AC 63 C0 + 39 01 00 00 01 00 02 BD 01 + 39 01 00 00 01 00 2B C1 00 0B 16 21 2C 36 3E 46 4D 54 5A 60 66 6C 73 79 7F 86 8D 93 9B A0 A6 AD B3 B9 BF C6 CD D3 DA E0 E6 06 9D 40 21 E3 3C 6E 62 C0 + 39 01 00 00 01 00 02 BD 02 + 39 01 00 00 01 00 2B C1 00 0A 14 1E 28 32 3B 43 4A 51 57 5D 62 69 6F 75 7B 82 88 8F 95 9C A2 A7 AE B4 BA C0 C6 CD D2 D9 DE 16 BE 95 DB CD E3 01 8C C0 + 39 01 00 00 01 00 02 BD 00]; + qcom,mdss-dsi-panel-cool-command = [39 01 00 00 01 00 3B E0 07 08 09 0D 10 14 16 13 24 36 48 4A 58 6F 76 80 97 A5 A8 B5 C6 62 63 68 6F 72 78 7F 7F 00 02 08 0D 0C 0E 11 10 24 36 48 4A 58 6F 78 82 99 A4 A0 B1 C0 5E 5E 64 6B 6C 73 7F 7F + 39 01 00 00 01 00 02 BD 00 + 39 01 00 00 01 00 2C C1 01 00 0A 14 1E 28 32 3C 43 4B 52 59 5F 66 6D 74 7B 82 8A 92 9A A0 A8 AF B7 BD C7 CE D5 DD E6 EE F7 FF 16 E3 11 59 A4 8D C3 84 C0 + 39 01 00 00 01 00 02 BD 01 + 39 01 00 00 01 00 2B C1 00 0A 13 1D 27 31 3B 43 4A 51 57 5E 64 6B 72 79 80 87 8F 97 9E A4 AB B3 BA C1 C9 D0 D7 DF E6 EE F6 0F F0 1D AA B4 7C 01 C8 00 + 39 01 00 00 01 00 02 BD 02 + 39 01 00 00 01 00 2B C1 00 0A 13 1D 27 32 3C 44 4C 53 5A 60 68 6F 76 7D 85 8C 94 9C A3 AA B2 B9 C0 C8 D0 D8 DF E7 EE F6 FE 0E 56 27 1B 7E B5 F8 8B 00 + 39 01 00 00 01 00 02 BD 00]; + qcom,mdss-dsi-panel-nature-command = [39 01 00 00 01 00 3B E0 07 08 09 0D 10 14 16 13 24 36 48 4A 58 6F 76 80 97 A5 A8 B5 C6 62 63 68 6F 72 78 7F 7F 00 02 08 0D 0C 0E 0F 10 24 36 48 4A 58 6F 78 82 99 A4 A0 B1 C0 5E 5E 64 6B 6C 73 7F 7F + 39 01 00 00 01 00 02 BD 00 + 39 01 00 00 01 00 2C C1 01 00 0A 14 1E 28 32 3B 43 4A 52 58 5F 65 6D 74 7B 82 8A 92 99 A1 A8 AE B6 BE C5 CD D6 DC E5 ED F6 FF 15 8F C9 C5 97 4F 3C CB C0 + 39 01 00 00 01 00 02 BD 01 + 39 01 00 00 01 00 2B C1 00 09 13 1D 26 30 39 41 48 4F 55 5C 62 68 6F 76 7D 84 8B 92 9A A0 A7 AE B5 BC C3 CB D2 D9 E0 E7 EF 24 85 5C 39 07 79 44 1A 80 + 39 01 00 00 01 00 02 BD 02 + 39 01 00 00 01 00 2B C1 00 09 12 1B 24 2E 38 41 48 4F 56 5C 62 69 70 77 7E 85 8C 93 9B A2 A8 AF B6 BD C4 CC D3 DA E1 E8 F0 15 7C 62 A9 1B 8B 4C 2E 00 + 39 01 00 00 01 00 02 BD 00]; + qcom,mdss-dsi-panel-gamma-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-panel-ce-std-command = [ + 39 01 00 00 05 00 02 55 00 + 39 01 00 00 0A 00 03 E4 01 00]; + qcom,mdss-dsi-panel-ce-vivid-command = [ + 39 01 00 00 05 00 02 55 11 + 39 01 00 00 14 00 03 E4 01 42 + 39 01 00 00 14 00 20 E5 00 00 0B 08 01 00 00 00 00 00 00 05 1D 19 1F 05 ED 09 20 00 00 04 0B 02 01 08 08 07 02 04 02 + 39 01 00 00 14 00 16 E6 00 08 00 05 05 10 10 10 20 20 20 10 10 10 10 10 03 A0 01 0F 11]; + qcom,mdss-dsi-panel-ce-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-h-sync-pulse = <1>; + qcom,mdss-dsi-traffic-mode = "burst_mode"; + qcom,mdss-dsi-lane-map = "lane_map_0123"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + qcom,mdss-dsi-panel-timings = [8C 1E 14 00 46 48 1A 22 18 03 04 00]; + qcom,mdss-dsi-t-clk-post = <0x04>; + qcom,mdss-dsi-t-clk-pre = <0x1C>; + + qcom,esd-check-enabled; + qcom,mdss-dsi-panel-status-command = [06 01 00 01 05 00 01 D9 + 06 01 00 01 05 00 01 09 + ]; + qcom,mdss-dsi-panel-status-command-num = <2>; + qcom,mdss-dsi-panel-status-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-panel-status-check-mode = "reg_read"; + qcom,mdss-dsi-panel-status-read-length = <4 4>; + qcom,mdss-dsi-panel-status-valid-params = <1 3>; + qcom,mdss-dsi-panel-status-value = + <0x80 0x80 0x73 0x04 >, + <0x80 0x80 0x73 0x04 >; + + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled"; + qcom,mdss-dsi-reset-sequence = <1 50>, <0 20>, <1 5>; + qcom,mdss-pan-physical-width-dimension = <62>; + qcom,mdss-pan-physical-height-dimension = <110>; + qcom,mdss-dsi-lp11-init; + qcom,mdss-dsi-init-delay-us = <50000>; + qcom,mdss-dsi-tx-eot-append; + }; +}; diff --git a/arch/arm/boot/dts/qcom/dsi-panel-hx8394f-boe-c3a-720p-video.dtsi b/arch/arm/boot/dts/qcom/dsi-panel-hx8394f-boe-c3a-720p-video.dtsi new file mode 100644 index 0000000000000..62c2c25525f1b --- /dev/null +++ b/arch/arm/boot/dts/qcom/dsi-panel-hx8394f-boe-c3a-720p-video.dtsi @@ -0,0 +1,175 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/*--------------------------------------------------------------------------- + * This file is autogenerated file using gcdb parser. Please do not edit it. + * Update input XML file to add a new entry or update variable in this file + * VERSION = "1.0" + *---------------------------------------------------------------------------*/ +&mdss_mdp { + dsi_hx8394f_boe_720_vid: qcom,mdss_dsi_hx8394f_boe_720p_video { + qcom,mdss-dsi-panel-name = "hx8394F_HD720p_video_BOE_c3a"; + qcom,mdss-dsi-panel-controller = <&mdss_dsi0>; + qcom,mdss-dsi-panel-type = "dsi_video_mode"; + qcom,mdss-dsi-panel-destination = "display_1"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <720>; + qcom,mdss-dsi-panel-height = <1280>; + qcom,mdss-dsi-h-front-porch = <160>; + qcom,mdss-dsi-h-back-porch = <160>; + qcom,mdss-dsi-h-pulse-width = <24>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <12>; + qcom,mdss-dsi-v-front-porch = <15>; + qcom,mdss-dsi-v-pulse-width = <4>; + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-color-order = "rgb_swap_rgb"; + qcom,mdss-dsi-underflow-color = <0x00>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-on-command = [39 01 00 00 00 00 04 B9 FF 83 94 + 05 01 00 00 78 00 02 11 00 + 05 01 00 00 14 00 02 29 00]; + qcom,mdss-dsi-off-command = [05 01 00 00 32 00 02 28 00 + 05 01 00 00 78 00 02 10 00]; + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-panel-warm-command = [39 01 00 00 01 00 3B E0 07 08 09 0D 10 14 16 13 24 36 48 4A 58 6F 76 80 97 A5 A8 B5 C6 62 63 68 6F 72 78 7F 7F 00 02 08 0D 0C 0E 0F 10 24 36 48 4A 58 6F 78 82 99 A4 A0 B1 C0 5E 5E 64 6B 6C 73 7F 7F + 39 01 00 00 01 00 02 BD 00 + 39 01 00 00 01 00 2C C1 01 00 0C 18 24 30 3A 43 4A 52 59 5F 66 6D 74 7B 83 8A 91 99 A0 A7 AE B5 BC C3 CA D1 D9 E0 E7 EF F7 FF 15 B3 59 B8 1E 00 AC 63 C0 + 39 01 00 00 01 00 02 BD 01 + 39 01 00 00 01 00 2B C1 00 0B 16 21 2C 36 3E 46 4D 54 5A 60 66 6C 73 79 7F 86 8D 93 9B A0 A6 AD B3 B9 BF C6 CD D3 DA E0 E6 06 9D 40 21 E3 3C 6E 62 C0 + 39 01 00 00 01 00 02 BD 02 + 39 01 00 00 01 00 2B C1 00 0A 14 1E 28 32 3B 43 4A 51 57 5D 62 69 6F 75 7B 82 88 8F 95 9C A2 A7 AE B4 BA C0 C6 CD D2 D9 DE 16 BE 95 DB CD E3 01 8C C0 + 39 01 00 00 01 00 02 BD 00]; + qcom,mdss-dsi-panel-cool-command = [39 01 00 00 01 00 3B E0 07 08 09 0D 10 14 16 13 24 36 48 4A 58 6F 76 80 97 A5 A8 B5 C6 62 63 68 6F 72 78 7F 7F 00 02 08 0D 0C 0E 11 10 24 36 48 4A 58 6F 78 82 99 A4 A0 B1 C0 5E 5E 64 6B 6C 73 7F 7F + 39 01 00 00 01 00 02 BD 00 + 39 01 00 00 01 00 2C C1 01 00 0A 14 1E 28 32 3C 43 4B 52 59 5F 66 6D 74 7B 82 8A 92 9A A0 A8 AF B7 BD C7 CE D5 DD E6 EE F7 FF 16 E3 11 59 A4 8D C3 84 C0 + 39 01 00 00 01 00 02 BD 01 + 39 01 00 00 01 00 2B C1 00 0A 13 1D 27 31 3B 43 4A 51 57 5E 64 6B 72 79 80 87 8F 97 9E A4 AB B3 BA C1 C9 D0 D7 DF E6 EE F6 0F F0 1D AA B4 7C 01 C8 00 + 39 01 00 00 01 00 02 BD 02 + 39 01 00 00 01 00 2B C1 00 0A 13 1D 27 32 3C 44 4C 53 5A 60 68 6F 76 7D 85 8C 94 9C A3 AA B2 B9 C0 C8 D0 D8 DF E7 EE F6 FE 0E 56 27 1B 7E B5 F8 8B 00 + 39 01 00 00 01 00 02 BD 00]; + qcom,mdss-dsi-panel-nature-command = [39 01 00 00 01 00 3B E0 07 08 09 0D 10 14 16 13 24 36 48 4A 58 6F 76 80 97 A5 A8 B5 C6 62 63 68 6F 72 78 7F 7F 00 02 08 0D 0C 0E 0F 10 24 36 48 4A 58 6F 78 82 99 A4 A0 B1 C0 5E 5E 64 6B 6C 73 7F 7F + 39 01 00 00 01 00 02 BD 00 + 39 01 00 00 01 00 2C C1 01 00 0A 14 1E 28 32 3B 43 4A 52 58 5F 65 6D 74 7B 82 8A 92 99 A1 A8 AE B6 BE C5 CD D6 DC E5 ED F6 FF 15 8F C9 C5 97 4F 3C CB C0 + 39 01 00 00 01 00 02 BD 01 + 39 01 00 00 01 00 2B C1 00 09 13 1D 26 30 39 41 48 4F 55 5C 62 68 6F 76 7D 84 8B 92 9A A0 A7 AE B5 BC C3 CB D2 D9 E0 E7 EF 24 85 5C 39 07 79 44 1A 80 + 39 01 00 00 01 00 02 BD 02 + 39 01 00 00 01 00 2B C1 00 09 12 1B 24 2E 38 41 48 4F 56 5C 62 69 70 77 7E 85 8C 93 9B A2 A8 AF B6 BD C4 CC D3 DA E1 E8 F0 15 7C 62 A9 1B 8B 4C 2E 00 + 39 01 00 00 01 00 02 BD 00]; + qcom,mdss-dsi-panel-gamma-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-panel-ce-std-command = [39 01 00 00 0A 00 03 E4 00 00]; + qcom,mdss-dsi-panel-ce-vivid-command = [39 01 00 00 14 00 02 E4 00 + 39 01 00 00 14 00 20 E5 00 00 0B 08 01 00 00 00 00 00 00 05 1D 19 1F 05 ED 09 20 00 00 04 0B 02 01 08 08 07 02 04 02 + 39 01 00 00 14 00 16 E6 00 08 00 05 05 10 10 10 20 20 20 10 10 10 10 10 03 A0 01 0F 11 + 39 01 00 00 14 00 03 E4 00 41]; + qcom,mdss-dsi-panel-ce-command-state = "dsi_lp_mode"; + + qcom,mdss-dsi-panel-eye-command01 = [39 01 00 00 00 00 3B E0 07 08 09 0D 10 14 16 13 24 36 48 4A 58 6F 76 80 97 A5 A8 B5 C6 62 63 68 6F 72 78 7F 7F 00 02 08 0D 0C 0E 0F 10 24 36 48 4A 58 6F 78 82 99 A4 A0 B1 C0 5E 5E 64 6B 6C 73 7F 7F + 39 01 00 00 00 00 02 BD 00 + 39 01 00 00 00 00 2C C1 01 00 0A 14 1E 28 32 3B 43 4A 52 58 5F 65 6D 74 7B 82 8A 92 99 A1 A8 AE B6 BE C5 CD D6 DC E5 ED F6 FF 15 8F C9 C5 97 4F 3C CB C0 + 39 01 00 00 00 00 02 BD 01 + 39 01 00 00 00 00 2B C1 00 09 13 1D 26 30 39 41 48 4F 55 5C 62 68 6F 76 7D 84 8B 92 9A A0 A7 AE B5 BC C3 CB D2 D9 E0 E7 EF 24 85 5C 39 07 79 44 1A 80 + 39 01 00 00 00 00 02 BD 02 + 39 01 00 00 00 00 2B C1 00 08 11 19 22 2C 35 3D 44 4B 51 57 5D 64 6A 71 77 7E 85 8C 93 99 9F A6 AC B3 BA C1 C8 CF D6 DC E3 37 5E 9A 48 50 6E C9 01 80 + 39 01 00 00 00 00 02 BD 00]; + qcom,mdss-dsi-panel-eye-command02 = [39 01 00 00 00 00 3B E0 07 08 09 0D 10 14 16 13 24 36 48 4A 58 6F 76 80 97 A5 A8 B5 C6 62 63 68 6F 72 78 7F 7F 00 02 08 0D 0C 0E 0F 10 24 36 48 4A 58 6F 78 82 99 A4 A0 B1 C0 5E 5E 64 6B 6C 73 7F 7F + 39 01 00 00 00 00 02 BD 00 + 39 01 00 00 00 00 2C C1 01 00 0A 14 1E 28 32 3B 43 4A 52 58 5F 65 6D 74 7B 82 8A 92 99 A1 A8 AE B6 BE C5 CD D6 DC E5 ED F6 FF 15 8F C9 C5 97 4F 3C CB C0 + 39 01 00 00 00 00 02 BD 01 + 39 01 00 00 00 00 2B C1 00 09 13 1D 26 30 39 41 48 4F 55 5C 62 68 6F 76 7D 84 8B 92 9A A0 A7 AE B5 BC C3 CB D2 D9 E0 E7 EF 24 85 5C 39 07 79 44 1A 80 + 39 01 00 00 00 00 02 BD 02 + 39 01 00 00 00 00 2B C1 00 08 10 18 20 2A 33 3A 40 47 4D 53 58 5E 65 6B 71 77 7E 84 8B 91 97 9E A3 A9 B0 B7 BD C4 CB D1 D7 16 81 D4 B0 77 E8 FD E0 C0 + 39 01 00 00 00 00 02 BD 00]; + qcom,mdss-dsi-panel-eye-command03 = [39 01 00 00 00 00 3B E0 07 08 09 0D 10 14 16 13 24 36 48 4A 58 6F 76 80 97 A5 A8 B5 C6 62 63 68 6F 72 78 7F 7F 00 02 08 0D 0C 0E 0F 10 24 36 48 4A 58 6F 78 82 99 A4 A0 B1 C0 5E 5E 64 6B 6C 73 7F 7F + 39 01 00 00 00 00 02 BD 00 + 39 01 00 00 00 00 2C C1 01 00 0A 14 1E 28 32 3B 43 4A 52 58 5F 65 6D 74 7B 82 8A 92 99 A1 A8 AE B6 BE C5 CD D6 DC E5 ED F6 FF 15 8F C9 C5 97 4F 3C CB C0 + 39 01 00 00 00 00 02 BD 01 + 39 01 00 00 00 00 2B C1 00 09 13 1D 26 30 39 41 48 4F 55 5C 62 68 6F 76 7D 84 8B 92 9A A0 A7 AE B5 BC C3 CB D2 D9 E0 E7 EF 24 85 5C 39 07 79 44 1A 80 + 39 01 00 00 00 00 02 BD 02 + 39 01 00 00 00 00 2B C1 00 07 0F 17 1E 27 30 37 3D 43 49 4E 53 59 5F 65 6B 71 77 7D 84 8A 8F 95 9B A1 A7 AD B3 BA C0 C6 CC 38 F5 B7 FE 6F 8B 4B C4 80 + 39 01 00 00 00 00 02 BD 00]; + qcom,mdss-dsi-panel-eye-command04 = [39 01 00 00 00 00 3B E0 07 08 09 0D 10 14 16 13 24 36 48 4A 58 6F 76 80 97 A5 A8 B5 C6 62 63 68 6F 72 78 7F 7F 00 02 08 0D 0C 0E 0F 10 24 36 48 4A 58 6F 78 82 99 A4 A0 B1 C0 5E 5E 64 6B 6C 73 7F 7F + 39 01 00 00 00 00 02 BD 00 + 39 01 00 00 00 00 2C C1 01 00 0A 14 1E 28 32 3B 43 4A 52 58 5F 65 6D 74 7B 82 8A 92 99 A1 A8 AE B6 BE C5 CD D6 DC E5 ED F6 FF 15 8F C9 C5 97 4F 3C CB C0 + 39 01 00 00 00 00 02 BD 01 + 39 01 00 00 00 00 2B C1 00 09 13 1D 26 30 39 41 48 4F 55 5C 62 68 6F 76 7D 84 8B 92 9A A0 A7 AE B5 BC C3 CB D2 D9 E0 E7 EF 24 85 5C 39 07 79 44 1A 80 + 39 01 00 00 00 00 02 BD 02 + 39 01 00 00 00 00 2B C1 00 07 0E 15 1D 25 2D 34 39 3F 44 4A 4E 54 5A 5F 64 6A 70 76 7C 81 87 8C 92 97 9D A3 A9 AF B4 BA C0 1B 14 EC E2 F9 B3 1A 0D 40 + 39 01 00 00 00 00 02 BD 00]; + qcom,mdss-dsi-panel-eye-command05 = [39 01 00 00 00 00 3B E0 07 08 09 0D 10 14 16 13 24 36 48 4A 58 6F 76 80 97 A5 A8 B5 C6 62 63 68 6F 72 78 7F 7F 00 02 08 0D 0C 0E 0F 10 24 36 48 4A 58 6F 78 82 99 A4 A0 B1 C0 5E 5E 64 6B 6C 73 7F 7F + 39 01 00 00 00 00 02 BD 00 + 39 01 00 00 00 00 2C C1 01 00 0A 14 1E 28 32 3B 43 4A 52 58 5F 65 6D 74 7B 82 8A 92 99 A1 A8 AE B6 BE C5 CD D6 DC E5 ED F6 FF 15 8F C9 C5 97 4F 3C CB C0 + 39 01 00 00 00 00 02 BD 01 + 39 01 00 00 00 00 2B C1 00 09 13 1D 26 30 39 41 48 4F 55 5C 62 68 6F 76 7D 84 8B 92 9A A0 A7 AE B5 BC C3 CB D2 D9 E0 E7 EF 24 85 5C 39 07 79 44 1A 80 + 39 01 00 00 00 00 02 BD 02 + 39 01 00 00 00 00 2B C1 00 06 0D 14 1B 23 2A 31 36 3B 40 45 4A 4F 54 59 5F 64 6A 6F 75 7A 7F 84 89 8E 94 99 9F A4 AA AF B5 3E 5C BF 6F 21 52 A7 35 00 + 39 01 00 00 00 00 02 BD 00]; + qcom,mdss-dsi-panel-eye-command06 = [39 01 00 00 00 00 3B E0 07 08 09 0D 10 14 16 13 24 36 48 4A 58 6F 76 80 97 A5 A8 B5 C6 62 63 68 6F 72 78 7F 7F 00 02 08 0D 0C 0E 0F 10 24 36 48 4A 58 6F 78 82 99 A4 A0 B1 C0 5E 5E 64 6B 6C 73 7F 7F + 39 01 00 00 00 00 02 BD 00 + 39 01 00 00 00 00 2C C1 01 00 0A 14 1E 28 32 3B 43 4A 52 58 5F 65 6D 74 7B 82 8A 92 99 A1 A8 AE B6 BE C5 CD D6 DC E5 ED F6 FF 15 8F C9 C5 97 4F 3C CB C0 + 39 01 00 00 00 00 02 BD 01 + 39 01 00 00 00 00 2B C1 00 09 13 1D 26 30 39 41 48 4F 55 5C 62 68 6F 76 7D 84 8B 92 9A A0 A7 AE B5 BC C3 CB D2 D9 E0 E7 EF 24 85 5C 39 07 79 44 1A 80 + 39 01 00 00 00 00 02 BD 02 + 39 01 00 00 00 00 2B C1 00 06 0C 13 19 21 28 2E 33 38 3D 41 46 4B 50 54 59 5E 63 69 6E 73 77 7D 81 86 8C 91 96 9B A0 A5 AA 2D D5 63 03 BC 9C 90 19 C0 + 39 01 00 00 00 00 02 BD 00]; + qcom,mdss-dsi-panel-eye-command07 = [39 01 00 00 00 00 3B E0 07 08 09 0D 10 14 16 13 24 36 48 4A 58 6F 76 80 97 A5 A8 B5 C6 62 63 68 6F 72 78 7F 7F 00 02 08 0D 0C 0E 0F 10 24 36 48 4A 58 6F 78 82 99 A4 A0 B1 C0 5E 5E 64 6B 6C 73 7F 7F + 39 01 00 00 00 00 02 BD 00 + 39 01 00 00 00 00 2C C1 01 00 0A 14 1E 28 32 3B 43 4A 52 58 5F 65 6D 74 7B 82 8A 92 99 A1 A8 AE B6 BE C5 CD D6 DC E5 ED F6 FF 15 8F C9 C5 97 4F 3C CB C0 + 39 01 00 00 00 00 02 BD 01 + 39 01 00 00 00 00 2B C1 00 09 13 1D 26 30 39 41 48 4F 55 5C 62 68 6F 76 7D 84 8B 92 9A A0 A7 AE B5 BC C3 CB D2 D9 E0 E7 EF 24 85 5C 39 07 79 44 1A 80 + 39 01 00 00 00 00 02 BD 02 + 39 01 00 00 00 00 2B C1 00 06 0C 12 18 1F 25 2B 30 34 39 3D 41 46 4A 4F 53 58 5D 62 67 6B 70 74 79 7D 82 87 8C 91 96 9A 9F 00 08 31 4D E4 63 2E 42 80 + 39 01 00 00 00 00 02 BD 00]; + qcom,mdss-dsi-panel-eye-command08 = [39 01 00 00 00 00 3B E0 07 08 09 0D 10 14 16 13 24 36 48 4A 58 6F 76 80 97 A5 A8 B5 C6 62 63 68 6F 72 78 7F 7F 00 02 08 0D 0C 0E 0F 10 24 36 48 4A 58 6F 78 82 99 A4 A0 B1 C0 5E 5E 64 6B 6C 73 7F 7F + 39 01 00 00 00 00 02 BD 00 + 39 01 00 00 00 00 2C C1 01 00 0A 14 1E 28 32 3B 43 4A 52 58 5F 65 6D 74 7B 82 8A 92 99 A1 A8 AE B6 BE C5 CD D6 DC E5 ED F6 FF 15 8F C9 C5 97 4F 3C CB C0 + 39 01 00 00 00 00 02 BD 01 + 39 01 00 00 00 00 2B C1 00 09 13 1D 26 30 39 41 48 4F 55 5C 62 68 6F 76 7D 84 8B 92 9A A0 A7 AE B5 BC C3 CB D2 D9 E0 E7 EF 24 85 5C 39 07 79 44 1A 80 + 39 01 00 00 00 00 02 BD 02 + 39 01 00 00 00 00 2B C1 00 05 0B 10 16 1C 22 27 2C 30 34 38 3C 40 45 49 4D 51 56 5A 5F 63 67 6B 6F 74 78 7D 81 86 8A 8E 93 22 6F 7F 70 76 57 CC 8A 40 + 39 01 00 00 00 00 02 BD 00]; + qcom,mdss-dsi-panel-eye-command-num = <8>; + qcom,mdss-dsi-h-sync-pulse = <1>; + qcom,mdss-dsi-traffic-mode = "burst_mode"; + qcom,mdss-dsi-lane-map = "lane_map_0123"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + qcom,mdss-dsi-panel-timings = [8C 20 14 00 46 48 1A 22 18 03 04 00]; + qcom,mdss-dsi-t-clk-post = <0x04>; + qcom,mdss-dsi-t-clk-pre = <0x1C>; + qcom,mdss-dsi-bl-min-level = <4>; + qcom,mdss-dsi-bl-max-level = <255>; + qcom,mdss-dsi-bl-pmic-pwm-frequency = <100>; + qcom,mdss-dsi-bl-pmic-bank-select = <0>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm"; + qcom,mdss-dsi-reset-sequence = <1 50>, <0 20>, <1 5>; + qcom,mdss-pan-physical-width-dimension = <62>; + qcom,mdss-pan-physical-height-dimension = <110>; + qcom,mdss-dsi-lp11-init; + qcom,mdss-dsi-init-delay-us = <50000>; + qcom,mdss-dsi-tx-eot-append; + }; +}; diff --git a/arch/arm/boot/dts/qcom/dsi-panel-hx8394f-boe-c3b-720p-video.dtsi b/arch/arm/boot/dts/qcom/dsi-panel-hx8394f-boe-c3b-720p-video.dtsi new file mode 100644 index 0000000000000..d26a2d4317246 --- /dev/null +++ b/arch/arm/boot/dts/qcom/dsi-panel-hx8394f-boe-c3b-720p-video.dtsi @@ -0,0 +1,197 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/*--------------------------------------------------------------------------- + * This file is autogenerated file using gcdb parser. Please do not edit it. + * Update input XML file to add a new entry or update variable in this file + * VERSION = "1.0" + *---------------------------------------------------------------------------*/ +&mdss_mdp { + dsi_hx8394f_boe_720_vid: qcom,mdss_dsi_hx8394f_boe_c3b_720p_video { + qcom,mdss-dsi-panel-name = "hx8394F_HD720p_video_BOE_c3b"; + qcom,mdss-dsi-panel-controller = <&mdss_dsi0>; + qcom,mdss-dsi-panel-type = "dsi_video_mode"; + qcom,mdss-dsi-panel-destination = "display_1"; + qcom,mdss-dsi-panel-model = "BOE HD HX8394F VIDEO PANEL"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <720>; + qcom,mdss-dsi-panel-height = <1280>; + qcom,mdss-dsi-h-front-porch = <160>; + qcom,mdss-dsi-h-back-porch = <160>; + qcom,mdss-dsi-h-pulse-width = <24>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <12>; + qcom,mdss-dsi-v-front-porch = <15>; + qcom,mdss-dsi-v-pulse-width = <4>; + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-color-order = "rgb_swap_rgb"; + qcom,mdss-dsi-underflow-color = <0x00>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-on-command = [39 01 00 00 00 00 04 B9 FF 83 94 + 05 01 00 00 78 00 02 11 00 + 05 01 00 00 14 00 02 29 00]; + qcom,mdss-dsi-off-command = [05 01 00 00 32 00 02 28 00 + 05 01 00 00 78 00 02 10 00]; + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-panel-warm-command = [39 01 00 00 01 00 3B E0 07 08 09 0D 10 14 16 13 24 36 48 4A 58 6F 76 80 97 A5 A8 B5 C6 62 63 68 6F 72 78 7F 7F 00 02 08 0D 0C 0E 0F 10 24 36 48 4A 58 6F 78 82 99 A4 A0 B1 C0 5E 5E 64 6B 6C 73 7F 7F + 39 01 00 00 01 00 02 BD 00 + 39 01 00 00 01 00 2C C1 01 00 0C 18 24 30 3A 43 4A 52 59 5F 66 6D 74 7B 83 8A 91 99 A0 A7 AE B5 BC C3 CA D1 D9 E0 E7 EF F7 FF 15 B3 59 B8 1E 00 AC 63 C0 + 39 01 00 00 01 00 02 BD 01 + 39 01 00 00 01 00 2B C1 00 0B 16 21 2C 36 3E 46 4D 54 5A 60 66 6C 73 79 7F 86 8D 93 9B A0 A6 AD B3 B9 BF C6 CD D3 DA E0 E6 06 9D 40 21 E3 3C 6E 62 C0 + 39 01 00 00 01 00 02 BD 02 + 39 01 00 00 01 00 2B C1 00 0A 14 1E 28 32 3B 43 4A 51 57 5D 62 69 6F 75 7B 82 88 8F 95 9C A2 A7 AE B4 BA C0 C6 CD D2 D9 DE 16 BE 95 DB CD E3 01 8C C0 + 39 01 00 00 01 00 02 BD 00]; + qcom,mdss-dsi-panel-cool-command = [39 01 00 00 01 00 3B E0 07 08 09 0D 10 14 16 13 24 36 48 4A 58 6F 76 80 97 A5 A8 B5 C6 62 63 68 6F 72 78 7F 7F 00 02 08 0D 0C 0E 11 10 24 36 48 4A 58 6F 78 82 99 A4 A0 B1 C0 5E 5E 64 6B 6C 73 7F 7F + 39 01 00 00 01 00 02 BD 00 + 39 01 00 00 01 00 2C C1 01 00 0A 14 1E 28 32 3C 43 4B 52 59 5F 66 6D 74 7B 82 8A 92 9A A0 A8 AF B7 BD C7 CE D5 DD E6 EE F7 FF 16 E3 11 59 A4 8D C3 84 C0 + 39 01 00 00 01 00 02 BD 01 + 39 01 00 00 01 00 2B C1 00 0A 13 1D 27 31 3B 43 4A 51 57 5E 64 6B 72 79 80 87 8F 97 9E A4 AB B3 BA C1 C9 D0 D7 DF E6 EE F6 0F F0 1D AA B4 7C 01 C8 00 + 39 01 00 00 01 00 02 BD 02 + 39 01 00 00 01 00 2B C1 00 0A 13 1D 27 32 3C 44 4C 53 5A 60 68 6F 76 7D 85 8C 94 9C A3 AA B2 B9 C0 C8 D0 D8 DF E7 EE F6 FE 0E 56 27 1B 7E B5 F8 8B 00 + 39 01 00 00 01 00 02 BD 00]; + qcom,mdss-dsi-panel-nature-command = [39 01 00 00 01 00 3B E0 07 08 09 0D 10 14 16 13 24 36 48 4A 58 6F 76 80 97 A5 A8 B5 C6 62 63 68 6F 72 78 7F 7F 00 02 08 0D 0C 0E 0F 10 24 36 48 4A 58 6F 78 82 99 A4 A0 B1 C0 5E 5E 64 6B 6C 73 7F 7F + 39 01 00 00 01 00 02 BD 00 + 39 01 00 00 01 00 2C C1 01 00 0A 14 1E 28 32 3B 43 4A 52 58 5F 65 6D 74 7B 82 8A 92 99 A1 A8 AE B6 BE C5 CD D6 DC E5 ED F6 FF 15 8F C9 C5 97 4F 3C CB C0 + 39 01 00 00 01 00 02 BD 01 + 39 01 00 00 01 00 2B C1 00 09 13 1D 26 30 39 41 48 4F 55 5C 62 68 6F 76 7D 84 8B 92 9A A0 A7 AE B5 BC C3 CB D2 D9 E0 E7 EF 24 85 5C 39 07 79 44 1A 80 + 39 01 00 00 01 00 02 BD 02 + 39 01 00 00 01 00 2B C1 00 09 12 1B 24 2E 38 41 48 4F 56 5C 62 69 70 77 7E 85 8C 93 9B A2 A8 AF B6 BD C4 CC D3 DA E1 E8 F0 15 7C 62 A9 1B 8B 4C 2E 00 + 39 01 00 00 01 00 02 BD 00]; + qcom,mdss-dsi-panel-gamma-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-panel-ce-std-command = [39 01 00 00 0A 00 03 E4 00 00]; + qcom,mdss-dsi-panel-ce-vivid-command = [39 01 00 00 14 00 02 E4 00 + 39 01 00 00 14 00 20 E5 00 00 0B 08 01 00 00 00 00 00 00 05 1D 19 1F 05 ED 09 20 00 00 04 0B 02 01 08 08 07 02 04 02 + 39 01 00 00 14 00 16 E6 00 08 00 05 05 10 10 10 20 20 20 10 10 10 10 10 03 A0 01 0F 11 + 39 01 00 00 14 00 03 E4 00 41]; + qcom,mdss-dsi-panel-ce-command-state = "dsi_lp_mode"; + + qcom,mdss-dsi-panel-eye-command01 = [39 01 00 00 00 00 3B E0 07 08 09 0D 10 14 16 13 24 36 48 4A 58 6F 76 80 97 A5 A8 B5 C6 62 63 68 6F 72 78 7F 7F 00 02 08 0D 0C 0E 0F 10 24 36 48 4A 58 6F 78 82 99 A4 A0 B1 C0 5E 5E 64 6B 6C 73 7F 7F + 39 01 00 00 00 00 02 BD 00 + 39 01 00 00 00 00 2C C1 01 00 0A 14 1E 28 32 3B 43 4A 52 58 5F 65 6D 74 7B 82 8A 92 99 A1 A8 AE B6 BE C5 CD D6 DC E5 ED F6 FF 15 8F C9 C5 97 4F 3C CB C0 + 39 01 00 00 00 00 02 BD 01 + 39 01 00 00 00 00 2B C1 00 09 12 1C 25 2E 37 3F 46 4D 53 59 5F 66 6C 73 7A 81 88 8F 96 9D A3 AA B1 B7 BE C6 CD D4 DB E2 EA 1D BF 9F DE 01 C9 3D 55 00 + 39 01 00 00 00 00 02 BD 02 + 39 01 00 00 00 00 2B C1 00 08 11 19 22 2C 36 3E 44 4B 52 58 5D 64 6B 71 78 7F 86 8C 94 9A A0 A7 AD B4 BB C2 C9 D0 D7 DD E4 37 A0 F1 E7 03 6E DA 57 C0 + 39 01 00 00 00 00 02 BD 00 + ]; + qcom,mdss-dsi-panel-eye-command02 = [39 01 00 00 00 00 3B E0 07 08 09 0D 10 14 16 13 24 36 48 4A 58 6F 76 80 97 A5 A8 B5 C6 62 63 68 6F 72 78 7F 7F 00 02 08 0D 0C 0E 0F 10 24 36 48 4A 58 6F 78 82 99 A4 A0 B1 C0 5E 5E 64 6B 6C 73 7F 7F + 39 01 00 00 00 00 02 BD 00 + 39 01 00 00 00 00 2C C1 01 00 0A 14 1E 28 32 3B 43 4A 52 58 5F 65 6D 74 7B 82 8A 92 99 A1 A8 AE B6 BE C5 CD D6 DC E5 ED F6 FF 15 8F C9 C5 97 4F 3C CB C0 + 39 01 00 00 00 00 02 BD 01 + 39 01 00 00 00 00 2B C1 00 09 12 1B 24 2D 36 3E 44 4B 51 57 5D 63 6A 70 77 7D 84 8C 93 99 9F A6 AC B3 BA C1 C8 CF D6 DC E4 06 B9 EF 77 7C 1C D6 53 40 + 39 01 00 00 00 00 02 BD 02 + 39 01 00 00 00 00 2B C1 00 08 10 18 21 2A 33 3B 41 48 4E 54 59 60 66 6C 72 79 80 86 8D 93 99 A0 A6 AC B3 B9 C0 C7 CD D3 DA 1B 28 D5 86 D2 A8 03 0B 80 + 39 01 00 00 00 00 02 BD 00 + ]; + qcom,mdss-dsi-panel-eye-command03 = [39 01 00 00 00 00 3B E0 07 08 09 0D 10 14 16 13 24 36 48 4A 58 6F 76 80 97 A5 A8 B5 C6 62 63 68 6F 72 78 7F 7F 00 02 08 0D 0C 0E 0F 10 24 36 48 4A 58 6F 78 82 99 A4 A0 B1 C0 5E 5E 64 6B 6C 73 7F 7F + 39 01 00 00 00 00 02 BD 00 + 39 01 00 00 00 00 2C C1 01 00 0A 14 1E 28 32 3B 43 4A 52 58 5F 65 6D 74 7B 82 8A 92 99 A1 A8 AE B6 BE C5 CD D6 DC E5 ED F6 FF 15 8F C9 C5 97 4F 3C CB C0 + 39 01 00 00 00 00 02 BD 01 + 39 01 00 00 00 00 2B C1 00 08 11 1B 23 2C 35 3C 43 4A 50 55 5B 61 68 6E 74 7B 82 89 90 96 9C A2 A9 AF B6 BD C4 CB D1 D8 DF 3C FB 83 B2 D0 0B 66 0D C0 + 39 01 00 00 00 00 02 BD 02 + 39 01 00 00 00 00 2B C1 00 08 0F 17 1F 28 31 38 3E 45 4A 50 55 5B 61 67 6D 73 79 80 86 8C 92 98 9E A4 AA B1 B7 BD C3 C9 D0 0E 65 89 AA 6D E6 0C 2F 40 + 39 01 00 00 00 00 02 BD 00 + ]; + qcom,mdss-dsi-panel-eye-command04 = [39 01 00 00 00 00 3B E0 07 08 09 0D 10 14 16 13 24 36 48 4A 58 6F 76 80 97 A5 A8 B5 C6 62 63 68 6F 72 78 7F 7F 00 02 08 0D 0C 0E 0F 10 24 36 48 4A 58 6F 78 82 99 A4 A0 B1 C0 5E 5E 64 6B 6C 73 7F 7F + 39 01 00 00 00 00 02 BD 00 + 39 01 00 00 00 00 2C C1 01 00 0A 14 1E 28 32 3B 43 4A 52 58 5F 65 6D 74 7B 82 8A 92 99 A1 A8 AE B6 BE C5 CD D6 DC E5 ED F6 FF 15 8F C9 C5 97 4F 3C CB C0 + 39 01 00 00 00 00 02 BD 01 + 39 01 00 00 00 00 2B C1 00 08 11 1A 23 2B 34 3B 41 48 4E 53 59 5F 65 6B 71 78 7E 85 8C 92 98 9E A5 AB B1 B8 BF C5 CC D2 DA 29 21 C3 5A DE 9A 1F 7B 00 + 39 01 00 00 00 00 02 BD 02 + 39 01 00 00 00 00 2B C1 00 07 0F 16 1D 26 2E 35 3B 41 46 4C 51 57 5C 62 67 6D 73 79 80 85 8B 90 96 9B A2 A8 AE B4 BA BF C6 21 EE AD 4D FF 63 75 13 00 + 39 01 00 00 00 00 02 BD 00 + ]; + qcom,mdss-dsi-panel-eye-command05 = [39 01 00 00 00 00 3B E0 07 08 09 0D 10 14 16 13 24 36 48 4A 58 6F 76 80 97 A5 A8 B5 C6 62 63 68 6F 72 78 7F 7F 00 02 08 0D 0C 0E 0F 10 24 36 48 4A 58 6F 78 82 99 A4 A0 B1 C0 5E 5E 64 6B 6C 73 7F 7F + 39 01 00 00 00 00 02 BD 00 + 39 01 00 00 00 00 2C C1 01 00 0A 14 1E 28 32 3B 43 4A 52 58 5F 65 6D 74 7B 82 8A 92 99 A1 A8 AE B6 BE C5 CD D6 DC E5 ED F6 FF 15 8F C9 C5 97 4F 3C CB C0 + 39 01 00 00 00 00 02 BD 01 + 39 01 00 00 00 00 2B C1 00 08 11 19 22 2A 33 3A 40 46 4C 52 57 5D 63 69 6F 75 7C 82 89 8F 95 9B A1 A7 AE B4 BB C1 C8 CE D5 13 70 64 55 63 95 A3 21 80 + 39 01 00 00 00 00 02 BD 02 + 39 01 00 00 00 00 2B C1 00 07 0E 15 1C 24 2C 32 38 3E 43 48 4D 52 57 5D 62 68 6D 73 79 7E 83 89 8E 93 99 9F A5 AA B0 B5 BB 05 67 85 2D 8E AD BE 3B 80 + 39 01 00 00 00 00 02 BD 00 + ]; + qcom,mdss-dsi-panel-eye-command06 = [39 01 00 00 00 00 3B E0 07 08 09 0D 10 14 16 13 24 36 48 4A 58 6F 76 80 97 A5 A8 B5 C6 62 63 68 6F 72 78 7F 7F 00 02 08 0D 0C 0E 0F 10 24 36 48 4A 58 6F 78 82 99 A4 A0 B1 C0 5E 5E 64 6B 6C 73 7F 7F + 39 01 00 00 00 00 02 BD 00 + 39 01 00 00 00 00 2C C1 01 00 0A 14 1E 28 32 3B 43 4A 52 58 5F 65 6D 74 7B 82 8A 92 99 A1 A8 AE B6 BE C5 CD D6 DC E5 ED F6 FF 15 8F C9 C5 97 4F 3C CB C0 + 39 01 00 00 00 00 02 BD 01 + 39 01 00 00 00 00 2B C1 00 08 10 19 21 29 31 38 3E 44 4A 4F 55 5A 60 66 6C 72 78 7F 85 8B 91 97 9D A3 A9 B0 B6 BC C2 C8 CF 08 6A B7 3E AD E5 44 6F C0 + 39 01 00 00 00 00 02 BD 02 + 39 01 00 00 00 00 2B C1 00 06 0D 14 1A 22 29 30 35 3A 3F 44 48 4D 53 58 5D 62 67 6D 72 77 7C 81 86 8B 91 96 9B A1 A6 AB B1 34 EC 79 F0 1C EB A7 DF 40 + 39 01 00 00 00 00 02 BD 00 + ]; + qcom,mdss-dsi-panel-eye-command07 = [39 01 00 00 00 00 3B E0 07 08 09 0D 10 14 16 13 24 36 48 4A 58 6F 76 80 97 A5 A8 B5 C6 62 63 68 6F 72 78 7F 7F 00 02 08 0D 0C 0E 0F 10 24 36 48 4A 58 6F 78 82 99 A4 A0 B1 C0 5E 5E 64 6B 6C 73 7F 7F + 39 01 00 00 00 00 02 BD 00 + 39 01 00 00 00 00 2C C1 01 00 0A 14 1E 28 32 3B 43 4A 52 58 5F 65 6D 74 7B 82 8A 92 99 A1 A8 AE B6 BE C5 CD D6 DC E5 ED F6 FF 15 8F C9 C5 97 4F 3C CB C0 + 39 01 00 00 00 00 02 BD 01 + 39 01 00 00 00 00 2B C1 00 07 10 18 20 28 30 36 3C 42 48 4D 52 58 5D 63 69 6E 75 7B 81 87 8C 92 98 9E A4 AA B0 B6 BC C2 C9 31 53 A1 49 31 8D 42 AA 40 + 39 01 00 00 00 00 02 BD 02 + 39 01 00 00 00 00 2B C1 00 06 0C 13 19 21 28 2E 33 38 3C 41 45 4A 4F 54 59 5E 63 68 6E 72 77 7C 80 85 8B 90 95 9A 9F A4 A9 2D 80 1D A9 16 25 F1 6E C0 + 39 01 00 00 00 00 02 BD 00 + ]; + qcom,mdss-dsi-panel-eye-command08 = [39 01 00 00 00 00 3B E0 07 08 09 0D 10 14 16 13 24 36 48 4A 58 6F 76 80 97 A5 A8 B5 C6 62 63 68 6F 72 78 7F 7F 00 02 08 0D 0C 0E 0F 10 24 36 48 4A 58 6F 78 82 99 A4 A0 B1 C0 5E 5E 64 6B 6C 73 7F 7F + 39 01 00 00 00 00 02 BD 00 + 39 01 00 00 00 00 2C C1 01 00 0A 14 1E 28 32 3B 43 4A 52 58 5F 65 6D 74 7B 82 8A 92 99 A1 A8 AE B6 BE C5 CD D6 DC E5 ED F6 FF 15 8F C9 C5 97 4F 3C CB C0 + 39 01 00 00 00 00 02 BD 01 + 39 01 00 00 00 00 2B C1 00 07 0F 17 1F 27 2E 35 3B 40 46 4B 50 55 5B 60 66 6B 71 77 7E 83 88 8E 94 99 9F A5 AB B1 B7 BD C3 3A 4D 30 22 3F 1D 2B A4 80 + 39 01 00 00 00 00 02 BD 02 + 39 01 00 00 00 00 2B C1 00 06 0C 12 18 1F 25 2B 30 35 39 3D 41 46 4B 4F 54 59 5D 62 67 6C 70 75 79 7E 83 88 8D 92 96 9B A0 00 1D 4B E2 0F DA D9 0D 40 + 39 01 00 00 00 00 02 BD 00 + ]; + qcom,mdss-dsi-panel-eye-command-num = <8>; + qcom,mdss-dsi-h-sync-pulse = <1>; + qcom,mdss-dsi-traffic-mode = "burst_mode"; + qcom,mdss-dsi-lane-map = "lane_map_0123"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + qcom,mdss-dsi-panel-timings = [8C 20 14 00 46 48 1A 22 18 03 04 00]; + qcom,mdss-dsi-t-clk-post = <0x04>; + qcom,mdss-dsi-t-clk-pre = <0x1C>; + qcom,mdss-dsi-bl-min-level = <4>; + qcom,mdss-dsi-bl-max-level = <255>; + qcom,mdss-dsi-bl-pmic-pwm-frequency = <100>; + qcom,mdss-dsi-bl-pmic-bank-select = <0>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm"; + qcom,mdss-dsi-reset-sequence = <1 50>, <0 20>, <1 5>; + qcom,mdss-pan-physical-width-dimension = <62>; + qcom,mdss-pan-physical-height-dimension = <110>; + qcom,mdss-dsi-lp11-init; + qcom,mdss-dsi-init-delay-us = <50000>; + qcom,mdss-dsi-tx-eot-append; + + qcom,esd-check-enabled; + qcom,mdss-dsi-panel-status-command = [06 01 00 01 05 00 01 D9 + 06 01 00 01 05 00 01 09 + ]; + qcom,mdss-dsi-panel-status-command-num = <2>; + qcom,mdss-dsi-panel-status-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-panel-status-check-mode = "reg_read"; + qcom,mdss-dsi-panel-status-read-length = <4 4>; + qcom,mdss-dsi-panel-status-valid-params = <1 3>; + qcom,mdss-dsi-panel-status-value = + <0x80 0x80 0x73 0x04 >, + <0x80 0x80 0x73 0x04 >; + }; +}; diff --git a/arch/arm/boot/dts/qcom/dsi-panel-ili9881c-ebbg-720p-video.dtsi b/arch/arm/boot/dts/qcom/dsi-panel-ili9881c-ebbg-720p-video.dtsi new file mode 100644 index 0000000000000..6efda422408a6 --- /dev/null +++ b/arch/arm/boot/dts/qcom/dsi-panel-ili9881c-ebbg-720p-video.dtsi @@ -0,0 +1,818 @@ +/* Copyright (c) 2013, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/*--------------------------------------------------------------------------- + * This file is autogenerated file using gcdb parser. Please do not edit it. + * Update input XML file to add a new entry or update variable in this file + * VERSION = "1.0" + *---------------------------------------------------------------------------*/ +&mdss_mdp { + dsi_ili9881c_ebbg_720p_video: qcom,mdss_dsi_ili9881c_ebbg_720p_video { + qcom,mdss-dsi-panel-name = "ili9881c_HD720p_video_Ebbg"; + qcom,mdss-dsi-panel-controller = <&mdss_dsi0>; + qcom,mdss-dsi-panel-type = "dsi_video_mode"; + qcom,mdss-dsi-panel-destination = "display_1"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <720>; + qcom,mdss-dsi-panel-height = <1280>; + qcom,mdss-pan-physical-width-dimension = <62>; + qcom,mdss-pan-physical-height-dimension = <110>; + qcom,mdss-dsi-h-front-porch = <114>; + qcom,mdss-dsi-h-back-porch = <180>; + qcom,mdss-dsi-h-pulse-width = <8>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <18>; + qcom,mdss-dsi-v-front-porch = <10>; + qcom,mdss-dsi-v-pulse-width = <4>; + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-underflow-color = <0x00>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-on-command = [39 00 00 00 00 00 05 FF 98 81 00 FF + 39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 E5 00 + 39 00 00 00 0A 00 04 FF 98 81 00 + 39 00 00 00 0A 00 04 FF 98 81 00 + 39 00 00 00 B4 00 02 11 00 + 39 00 00 00 00 00 02 29 00 + 39 00 00 00 0A 00 02 35 00 + 39 00 00 00 00 00 03 51 0F FF + 39 00 00 00 00 00 02 53 2C + 39 00 00 00 00 00 02 55 00 + 39 00 00 00 00 00 02 68 05 + 39 00 00 00 00 00 03 5E 00 FF + 39 00 00 00 00 00 04 FF 98 81 03 + 39 00 00 00 00 00 04 FF 98 81 03 + 39 00 00 00 00 00 02 2C 0C + 39 00 00 00 00 00 04 FF 98 81 02 + 39 00 00 00 00 00 04 FF 98 81 02 + 39 00 00 00 00 00 02 04 16 + 39 00 00 00 00 00 02 05 22 + 39 00 00 00 00 00 02 06 40 + 39 00 00 00 00 00 02 07 04 + 39 01 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 04 FF 98 81 00 + ]; + qcom,mdss-dsi-off-command = [ + 39 00 00 00 00 00 04 FF 98 81 00 + 39 00 00 00 00 00 04 FF 98 81 00 + 05 00 00 00 0A 00 02 28 00 + 05 01 00 00 96 00 02 10 00]; + qcom,mdss-dsi-on-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-panel-warm-command = [39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 A1 1A + 39 00 00 00 00 00 02 A2 29 + 39 00 00 00 00 00 02 A3 15 + 39 00 00 00 00 00 02 A4 18 + 39 00 00 00 00 00 02 A5 2B + 39 00 00 00 00 00 02 A6 1F + 39 00 00 00 00 00 02 A7 20 + 39 00 00 00 00 00 02 A8 8D + 39 00 00 00 00 00 02 A9 1C + 39 00 00 00 00 00 02 AA 28 + 39 00 00 00 00 00 02 AB 76 + 39 00 00 00 00 00 02 AC 1A + 39 00 00 00 00 00 02 AD 1A + 39 00 00 00 00 00 02 AE 4F + 39 00 00 00 00 00 02 AF 23 + 39 00 00 00 00 00 02 B0 29 + 39 00 00 00 00 00 02 B1 4F + 39 00 00 00 00 00 02 B2 5D + 39 00 00 00 00 00 02 B3 32 + 39 00 00 00 00 00 02 C0 00 + 39 00 00 00 00 00 02 C1 1A + 39 00 00 00 00 00 02 C2 29 + 39 00 00 00 00 00 02 C3 15 + 39 00 00 00 00 00 02 C4 18 + 39 00 00 00 00 00 02 C5 2B + 39 00 00 00 00 00 02 C6 1F + 39 00 00 00 00 00 02 C7 20 + 39 00 00 00 00 00 02 C8 8D + 39 00 00 00 00 00 02 C9 1C + 39 00 00 00 00 00 02 CA 28 + 39 00 00 00 00 00 02 CB 76 + 39 00 00 00 00 00 02 CC 1A + 39 00 00 00 00 00 02 CD 1A + 39 00 00 00 00 00 02 CE 4F + 39 00 00 00 00 00 02 CF 23 + 39 00 00 00 00 00 02 D0 29 + 39 00 00 00 00 00 02 D1 4F + 39 00 00 00 00 00 02 D2 5D + 39 01 00 00 00 00 02 D3 32 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 85 48 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 17 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 28 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 39 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 4C + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 5F + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 73 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 83 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 93 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 A6 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 B6 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 C6 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 D7 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B E6 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D F7 + 39 00 00 00 00 00 02 1E 01 + 39 00 00 00 00 00 02 1F 08 + 39 00 00 00 00 00 02 20 01 + 39 00 00 00 00 00 02 21 18 + 39 00 00 00 00 00 02 22 01 + 39 00 00 00 00 00 02 23 28 + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 37 + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 48 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 58 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 69 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 79 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 89 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 98 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 A8 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 B7 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 D6 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 F5 + 39 00 00 00 00 00 02 3A 02 + 39 00 00 00 00 00 02 3B 14 + 39 00 00 00 00 00 02 3C 02 + 39 00 00 00 00 00 02 3D 34 + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 53 + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 71 + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 91 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 AC + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 C9 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 E6 + 39 00 00 00 00 00 02 4A 03 + 39 00 00 00 00 00 02 4B 04 + 39 00 00 00 00 00 02 4C 03 + 39 00 00 00 00 00 02 4D 26 + 39 00 00 00 00 00 02 4E 03 + 39 00 00 00 00 00 02 4F 43 + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 63 + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 81 + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 A1 + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 BF + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 E5 + 39 00 00 00 00 00 02 5A 03 + 39 01 00 00 00 00 02 5B FF + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 12 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 24 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 33 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 42 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 52 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 62 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 72 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 80 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 8E + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 9D + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 AD + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 BB + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B C8 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D D7 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F E8 + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 F8 + 39 00 00 00 00 00 02 22 01 + 39 00 00 00 00 00 02 23 07 + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 16 + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 23 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 30 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 3E + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 4C + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 5A + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 68 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 77 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 85 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 A0 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 BB + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B D6 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D F1 + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 0C + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 28 + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 45 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 5E + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 78 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 95 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B B3 + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D CC + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F E6 + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 00 + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 1E + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 39 + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 53 + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 70 + 39 00 00 00 00 00 02 5A 03 + 39 01 00 00 00 00 02 5B 8A + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 0E + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 24 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 34 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 41 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 4C + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 56 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 64 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 73 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 81 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 8D + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 9B + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 AA + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B B8 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D C4 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F D1 + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 E0 + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 EF + 39 00 00 00 00 00 02 24 00 + 39 00 00 00 00 00 02 25 FD + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 0B + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 18 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 24 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 31 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 3D + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 4A + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 58 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 65 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 7F + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 98 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B B1 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D C9 + 39 00 00 00 00 00 02 3E 01 + 39 00 00 00 00 00 02 3F E2 + 39 00 00 00 00 00 02 40 01 + 39 00 00 00 00 00 02 41 FA + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 14 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 2D + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 47 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 5E + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B 76 + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D 90 + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F AB + 39 00 00 00 00 00 02 50 02 + 39 00 00 00 00 00 02 51 C4 + 39 00 00 00 00 00 02 52 02 + 39 00 00 00 00 00 02 53 DA + 39 00 00 00 00 00 02 54 02 + 39 00 00 00 00 00 02 55 F2 + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 0C + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 27 + 39 00 00 00 00 00 02 5A 03 + 39 00 00 00 00 00 02 5B 3E + 39 00 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 04 FF 98 81 00]; + + qcom,mdss-dsi-panel-cool-command = [39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 A1 1C + 39 00 00 00 00 00 02 A2 2B + 39 00 00 00 00 00 02 A3 15 + 39 00 00 00 00 00 02 A4 19 + 39 00 00 00 00 00 02 A5 2C + 39 00 00 00 00 00 02 A6 20 + 39 00 00 00 00 00 02 A7 21 + 39 00 00 00 00 00 02 A8 95 + 39 00 00 00 00 00 02 A9 1C + 39 00 00 00 00 00 02 AA 27 + 39 00 00 00 00 00 02 AB 7F + 39 00 00 00 00 00 02 AC 1C + 39 00 00 00 00 00 02 AD 1D + 39 00 00 00 00 00 02 AE 52 + 39 00 00 00 00 00 02 AF 27 + 39 00 00 00 00 00 02 B0 2B + 39 00 00 00 00 00 02 B1 56 + 39 00 00 00 00 00 02 B2 63 + 39 00 00 00 00 00 02 B3 32 + 39 00 00 00 00 00 02 C0 00 + 39 00 00 00 00 00 02 C1 1C + 39 00 00 00 00 00 02 C2 2B + 39 00 00 00 00 00 02 C3 15 + 39 00 00 00 00 00 02 C4 19 + 39 00 00 00 00 00 02 C5 2C + 39 00 00 00 00 00 02 C6 20 + 39 00 00 00 00 00 02 C7 21 + 39 00 00 00 00 00 02 C8 95 + 39 00 00 00 00 00 02 C9 1C + 39 00 00 00 00 00 02 CA 27 + 39 00 00 00 00 00 02 CB 7F + 39 00 00 00 00 00 02 CC 1C + 39 00 00 00 00 00 02 CD 1D + 39 00 00 00 00 00 02 CE 52 + 39 00 00 00 00 00 02 CF 27 + 39 00 00 00 00 00 02 D0 2B + 39 00 00 00 00 00 02 D1 56 + 39 00 00 00 00 00 02 D2 63 + 39 01 00 00 00 00 02 D3 32 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 85 48 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 18 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 29 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 3A + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 4C + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 5E + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 71 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 82 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 92 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 A4 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 B4 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 C5 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 D6 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B E9 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D FB + 39 00 00 00 00 00 02 1E 01 + 39 00 00 00 00 00 02 1F 08 + 39 00 00 00 00 00 02 20 01 + 39 00 00 00 00 00 02 21 18 + 39 00 00 00 00 00 02 22 01 + 39 00 00 00 00 00 02 23 28 + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 37 + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 46 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 57 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 67 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 78 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 88 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 97 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 A7 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 B6 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 D5 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 F4 + 39 00 00 00 00 00 02 3A 02 + 39 00 00 00 00 00 02 3B 13 + 39 00 00 00 00 00 02 3C 02 + 39 00 00 00 00 00 02 3D 34 + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 53 + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 70 + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 8F + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 B0 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 CE + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 EB + 39 00 00 00 00 00 02 4A 03 + 39 00 00 00 00 00 02 4B 0B + 39 00 00 00 00 00 02 4C 03 + 39 00 00 00 00 00 02 4D 2D + 39 00 00 00 00 00 02 4E 03 + 39 00 00 00 00 00 02 4F 49 + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 6A + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 87 + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 A7 + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 C6 + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 E2 + 39 00 00 00 00 00 02 5A 00 + 39 01 00 00 00 00 02 5B 00 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 13 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 25 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 36 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 46 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 57 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 67 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 78 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 87 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 96 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 A7 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 B7 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 C6 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B D5 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D E6 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F F7 + 39 00 00 00 00 00 02 20 01 + 39 00 00 00 00 00 02 21 08 + 39 00 00 00 00 00 02 22 01 + 39 00 00 00 00 00 02 23 17 + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 25 + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 33 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 42 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 51 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 61 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 70 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 7F + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 8E + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 9C + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 B9 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 D6 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B F4 + 39 00 00 00 00 00 02 3C 02 + 39 00 00 00 00 00 02 3D 13 + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 32 + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 4F + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 6A + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 87 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 A6 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 C4 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B DE + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D FB + 39 00 00 00 00 00 02 4E 03 + 39 00 00 00 00 00 02 4F 1A + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 37 + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 53 + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 72 + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 8E + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 AB + 39 00 00 00 00 00 02 5A 03 + 39 01 00 00 00 00 02 5B C9 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 0D + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 22 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 35 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 46 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 54 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 61 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 71 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 82 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 91 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 A2 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 B2 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 C1 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B D0 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D E2 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F F2 + 39 00 00 00 00 00 02 20 01 + 39 00 00 00 00 00 02 21 03 + 39 00 00 00 00 00 02 22 01 + 39 00 00 00 00 00 02 23 12 + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 20 + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 2E + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 3B + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 4B + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 5A + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 69 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 78 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 87 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 95 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 B1 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 CE + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B EC + 39 00 00 00 00 00 02 3C 02 + 39 00 00 00 00 00 02 3D 0A + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 29 + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 47 + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 61 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 7D + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 9B + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 BA + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B D4 + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D EF + 39 00 00 00 00 00 02 4E 03 + 39 00 00 00 00 00 02 4F 0C + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 2C + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 46 + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 64 + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 80 + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 9E + 39 00 00 00 00 00 02 5A 03 + 39 00 00 00 00 00 02 5B BA + 39 00 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 04 FF 98 81 00]; + qcom,mdss-dsi-panel-nature-command = [39 01 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 E5 02 + 39 00 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 02 11 00 + 39 01 00 00 00 00 04 FF 98 81 03 + 39 01 00 00 00 00 04 FF 98 81 03 + 39 01 00 00 00 00 02 2C 0C + 39 01 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 04 FF 98 81 00]; + + qcom,mdss-dsi-panel-gamma-command-state = "dsi_hs_mode"; + + qcom,mdss-dsi-init-last; + qcom,mdss-dsi-panel-ce-std-command = [39 01 00 00 00 00 04 FF 98 81 02 + 39 01 00 00 00 00 04 FF 98 81 02 + 39 01 00 00 00 00 02 10 06 + 39 01 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 02 55 00]; + qcom,mdss-dsi-panel-ce-vivid-command = [39 00 00 00 00 00 04 FF 98 81 02 + 39 00 00 00 00 00 04 FF 98 81 02 + 39 00 00 00 00 00 02 10 16 + 39 00 00 00 00 00 02 68 02 + 39 00 00 00 00 00 02 69 03 + 39 00 00 00 00 00 02 6A 03 + 39 00 00 00 00 00 02 6B 03 + 39 00 00 00 00 00 02 6C 00 + 39 00 00 00 00 00 02 6D 04 + 39 00 00 00 00 00 02 6E 04 + 39 00 00 00 00 00 02 6F 05 + 39 00 00 00 00 00 02 70 05 + 39 00 00 00 00 00 02 71 05 + 39 00 00 00 00 00 02 72 03 + 39 00 00 00 00 00 02 73 01 + 39 00 00 00 00 00 02 74 01 + 39 00 00 00 00 00 02 75 02 + 39 00 00 00 00 00 02 76 04 + 39 00 00 00 00 00 02 77 02 + 39 00 00 00 00 00 02 78 02 + 39 00 00 00 00 00 02 79 02 + 39 00 00 00 00 00 02 7A 02 + 39 00 00 00 00 00 02 7B 02 + 39 00 00 00 00 00 02 7C 02 + 39 00 00 00 00 00 02 7D 02 + 39 00 00 00 00 00 02 7E 02 + 39 00 00 00 00 00 02 7F 02 + 39 00 00 00 00 00 04 FF 98 81 00 + 39 00 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 02 55 01]; + + qcom,mdss-dsi-panel-ce-command-state = "dsi_hs_mode"; + + qcom,mdss-dsi-h-sync-pulse = <1>; + qcom,mdss-dsi-traffic-mode = "burst_mode"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + + qcom,mdss-dsi-panel-timings = [8B 1E 14 00 44 48 18 30 19 03 04 00]; + qcom,mdss-dsi-t-clk-post = <0x04>; + qcom,mdss-dsi-t-clk-pre = <0x1C>; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled"; + qcom,mdss-dsi-lp11-init; + qcom,mdss-dsi-init-delay-us = <20000>; + qcom,mdss-dsi-reset-sequence = <1 5>, <0 10>, <1 80>; + + qcom,esd-check-enabled; + + qcom,mdss-dsi-panel-status-command = [06 01 00 01 05 00 02 0A 08 + 06 01 00 01 05 00 02 0D 08]; + qcom,mdss-dsi-panel-status-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-panel-status-check-mode = "reg_read"; + qcom,mdss-dsi-panel-status-valid-params = <1 1>; + qcom,mdss-dsi-panel-status-value = <0x9c 0x00>; + qcom,mdss-dsi-panel-status-read-length = <1 1>; + }; +}; diff --git a/arch/arm/boot/dts/qcom/dsi-panel-ili9881c-ebbg-c3a-720p-video.dtsi b/arch/arm/boot/dts/qcom/dsi-panel-ili9881c-ebbg-c3a-720p-video.dtsi new file mode 100644 index 0000000000000..b50934b491985 --- /dev/null +++ b/arch/arm/boot/dts/qcom/dsi-panel-ili9881c-ebbg-c3a-720p-video.dtsi @@ -0,0 +1,3418 @@ +/* Copyright (c) 2013, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/*--------------------------------------------------------------------------- + * This file is autogenerated file using gcdb parser. Please do not edit it. + * Update input XML file to add a new entry or update variable in this file + * VERSION = "1.0" + *---------------------------------------------------------------------------*/ +&mdss_mdp { + dsi_ili9881c_ebbg_720p_video: qcom,mdss_dsi_ili9881c_ebbg_720p_video { + qcom,mdss-dsi-panel-name = "ili9881c_HD720p_video_Ebbg_c3a"; + qcom,mdss-dsi-panel-controller = <&mdss_dsi0>; + qcom,mdss-dsi-panel-type = "dsi_video_mode"; + qcom,mdss-dsi-panel-destination = "display_1"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <720>; + qcom,mdss-dsi-panel-height = <1280>; + qcom,mdss-pan-physical-width-dimension = <62>; + qcom,mdss-pan-physical-height-dimension = <110>; + qcom,mdss-dsi-h-front-porch = <116>; + qcom,mdss-dsi-h-back-porch = <180>; + qcom,mdss-dsi-h-pulse-width = <8>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <18>; + qcom,mdss-dsi-v-front-porch = <10>; + qcom,mdss-dsi-v-pulse-width = <4>; + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-underflow-color = <0x00>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-on-command = [39 01 00 00 00 00 04 FF 98 81 04 + 39 01 00 00 00 00 04 FF 98 81 04 + 39 01 00 00 00 00 02 E5 00 + 39 01 00 00 0A 00 04 FF 98 81 00 + 39 01 00 00 96 00 02 11 00 + 39 01 00 00 00 00 02 29 00 + 39 01 00 00 0A 00 02 35 00 + 39 00 00 00 00 00 04 FF 98 81 03 + 39 00 00 00 00 00 02 2C 0C + 39 01 00 00 00 00 04 FF 98 81 00]; + qcom,mdss-dsi-off-command = [39 00 00 00 00 00 04 FF 98 81 00 + 05 00 00 00 0A 00 02 28 00 + 05 01 00 00 96 00 02 10 00]; + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-panel-warm-command = [39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 A1 17 + 39 00 00 00 00 00 02 A2 27 + 39 00 00 00 00 00 02 A3 14 + 39 00 00 00 00 00 02 A4 17 + 39 00 00 00 00 00 02 A5 29 + 39 00 00 00 00 00 02 A6 1F + 39 00 00 00 00 00 02 A7 20 + 39 00 00 00 00 00 02 A8 89 + 39 00 00 00 00 00 02 A9 1D + 39 00 00 00 00 00 02 AA 29 + 39 00 00 00 00 00 02 AB 74 + 39 00 00 00 00 00 02 AC 1B + 39 00 00 00 00 00 02 AD 1A + 39 00 00 00 00 00 02 AE 4F + 39 00 00 00 00 00 02 AF 23 + 39 00 00 00 00 00 02 B0 27 + 39 00 00 00 00 00 02 B1 4F + 39 00 00 00 00 00 02 B2 5D + 39 00 00 00 00 00 02 B3 32 + 39 00 00 00 00 00 02 C0 00 + 39 00 00 00 00 00 02 C1 17 + 39 00 00 00 00 00 02 C2 27 + 39 00 00 00 00 00 02 C3 14 + 39 00 00 00 00 00 02 C4 17 + 39 00 00 00 00 00 02 C5 29 + 39 00 00 00 00 00 02 C6 1F + 39 00 00 00 00 00 02 C7 20 + 39 00 00 00 00 00 02 C8 89 + 39 00 00 00 00 00 02 C9 1D + 39 00 00 00 00 00 02 CA 29 + 39 00 00 00 00 00 02 CB 74 + 39 00 00 00 00 00 02 CC 1B + 39 00 00 00 00 00 02 CD 1A + 39 00 00 00 00 00 02 CE 4F + 39 00 00 00 00 00 02 CF 23 + 39 00 00 00 00 00 02 D0 27 + 39 00 00 00 00 00 02 D1 4F + 39 00 00 00 00 00 02 D2 5D + 39 01 00 00 00 00 02 D3 32 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 85 48 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 13 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 22 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 30 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 42 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 53 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 65 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 76 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 85 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 95 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 A5 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 B7 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 C6 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B D6 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D E6 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F F6 + 39 00 00 00 00 00 02 20 01 + 39 00 00 00 00 00 02 21 05 + 39 00 00 00 00 00 02 22 01 + 39 00 00 00 00 00 02 23 16 + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 24 + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 32 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 41 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 51 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 62 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 72 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 82 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 94 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 A4 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 C3 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 E2 + 39 00 00 00 00 00 02 3A 02 + 39 00 00 00 00 00 02 3B 02 + 39 00 00 00 00 00 02 3C 02 + 39 00 00 00 00 00 02 3D 1D + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 3F + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 5C + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 7B + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 9C + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 BE + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 DA + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B FA + 39 00 00 00 00 00 02 4C 03 + 39 00 00 00 00 00 02 4D 1C + 39 00 00 00 00 00 02 4E 03 + 39 00 00 00 00 00 02 4F 3C + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 5B + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 7B + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 A0 + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 BC + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 DB + 39 00 00 00 00 00 02 5A 00 + 39 01 00 00 00 00 02 5B 01 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 0D + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 1C + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 29 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 36 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 45 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 54 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 62 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 70 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 7D + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 8A + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 98 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 A7 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B B5 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D C2 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F D0 + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 DF + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 EE + 39 00 00 00 00 00 02 24 00 + 39 00 00 00 00 00 02 25 FD + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 0B + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 18 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 24 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 31 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 3C + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 4A + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 59 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 67 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 83 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 9E + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B B9 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D D4 + 39 00 00 00 00 00 02 3E 01 + 39 00 00 00 00 00 02 3F EE + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 0A + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 26 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 43 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 5C + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 77 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B 92 + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D AF + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F CA + 39 00 00 00 00 00 02 50 02 + 39 00 00 00 00 00 02 51 E4 + 39 00 00 00 00 00 02 52 02 + 39 00 00 00 00 00 02 53 FF + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 21 + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 39 + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 55 + 39 00 00 00 00 00 02 5A 03 + 39 01 00 00 00 00 02 5B 70 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 0A + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 13 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 25 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 30 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 3B + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 43 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 51 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 5F + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 6D + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 7B + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 87 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 94 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B A2 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D B0 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F BC + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 C9 + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 D6 + 39 00 00 00 00 00 02 24 00 + 39 00 00 00 00 00 02 25 E4 + 39 00 00 00 00 00 02 26 00 + 39 00 00 00 00 00 02 27 F2 + 39 00 00 00 00 00 02 28 00 + 39 00 00 00 00 00 02 29 FF + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 0B + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 18 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 23 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 2F + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 39 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 46 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 60 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 79 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B 93 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D AD + 39 00 00 00 00 00 02 3E 01 + 39 00 00 00 00 00 02 3F C5 + 39 00 00 00 00 00 02 40 01 + 39 00 00 00 00 00 02 41 DD + 39 00 00 00 00 00 02 42 01 + 39 00 00 00 00 00 02 43 F6 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 0F + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 29 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 43 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B 5A + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D 73 + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F 8C + 39 00 00 00 00 00 02 50 02 + 39 00 00 00 00 00 02 51 A6 + 39 00 00 00 00 00 02 52 02 + 39 00 00 00 00 00 02 53 C0 + 39 00 00 00 00 00 02 54 02 + 39 00 00 00 00 00 02 55 DB + 39 00 00 00 00 00 02 56 02 + 39 00 00 00 00 00 02 57 EF + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 0B + 39 00 00 00 00 00 02 5A 03 + 39 00 00 00 00 00 02 5B 25 + 39 00 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 04 FF 98 81 00]; + qcom,mdss-dsi-panel-cool-command = [ + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 A1 19 + 39 00 00 00 00 00 02 A2 29 + 39 00 00 00 00 00 02 A3 14 + 39 00 00 00 00 00 02 A4 18 + 39 00 00 00 00 00 02 A5 2A + 39 00 00 00 00 00 02 A6 20 + 39 00 00 00 00 00 02 A7 20 + 39 00 00 00 00 00 02 A8 91 + 39 00 00 00 00 00 02 A9 1C + 39 00 00 00 00 00 02 AA 28 + 39 00 00 00 00 00 02 AB 7E + 39 00 00 00 00 00 02 AC 1C + 39 00 00 00 00 00 02 AD 1C + 39 00 00 00 00 00 02 AE 51 + 39 00 00 00 00 00 02 AF 26 + 39 00 00 00 00 00 02 B0 2B + 39 00 00 00 00 00 02 B1 57 + 39 00 00 00 00 00 02 B2 66 + 39 00 00 00 00 00 02 B3 32 + 39 00 00 00 00 00 02 C0 00 + 39 00 00 00 00 00 02 C1 19 + 39 00 00 00 00 00 02 C2 29 + 39 00 00 00 00 00 02 C3 14 + 39 00 00 00 00 00 02 C4 18 + 39 00 00 00 00 00 02 C5 2A + 39 00 00 00 00 00 02 C6 20 + 39 00 00 00 00 00 02 C7 20 + 39 00 00 00 00 00 02 C8 91 + 39 00 00 00 00 00 02 C9 1C + 39 00 00 00 00 00 02 CA 28 + 39 00 00 00 00 00 02 CB 7E + 39 00 00 00 00 00 02 CC 1C + 39 00 00 00 00 00 02 CD 1C + 39 00 00 00 00 00 02 CE 51 + 39 00 00 00 00 00 02 CF 26 + 39 00 00 00 00 00 02 D0 2B + 39 00 00 00 00 00 02 D1 57 + 39 00 00 00 00 00 02 D2 66 + 39 01 00 00 00 00 02 D3 32 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 85 48 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 17 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 27 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 35 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 44 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 53 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 65 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 76 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 81 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 91 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 A5 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 B5 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 C4 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B D6 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D E9 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F FA + 39 00 00 00 00 00 02 20 01 + 39 00 00 00 00 00 02 21 08 + 39 00 00 00 00 00 02 22 01 + 39 00 00 00 00 00 02 23 17 + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 25 + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 34 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 42 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 54 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 64 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 74 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 83 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 92 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 A2 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 C2 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 E1 + 39 00 00 00 00 00 02 3A 02 + 39 00 00 00 00 00 02 3B 00 + 39 00 00 00 00 00 02 3C 02 + 39 00 00 00 00 00 02 3D 1F + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 41 + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 5F + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 7E + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 9F + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 C1 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 DD + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B FB + 39 00 00 00 00 00 02 4C 03 + 39 00 00 00 00 00 02 4D 20 + 39 00 00 00 00 00 02 4E 03 + 39 00 00 00 00 00 02 4F 3B + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 5B + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 7C + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 A0 + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 C3 + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 E3 + 39 00 00 00 00 00 02 5A 00 + 39 01 00 00 00 00 02 5B 00 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 12 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 21 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 2F + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 3D + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 4B + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 5A + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 69 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 77 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 85 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 94 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 A4 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 B3 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B C3 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D D1 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F E1 + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 EF + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 FF + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 11 + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 1F + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 2B + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 39 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 47 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 56 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 66 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 75 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 85 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 A1 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 BE + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B DB + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D F6 + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 14 + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 33 + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 4F + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 6C + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 8A + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 A9 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B C5 + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D E3 + 39 00 00 00 00 00 02 4E 03 + 39 00 00 00 00 00 02 4F 00 + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 21 + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 3F + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 61 + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 7C + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 9B + 39 00 00 00 00 00 02 5A 03 + 39 01 00 00 00 00 02 5B B6 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 09 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 16 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 26 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 36 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 43 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 4F + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 5E + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 6D + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 7D + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 8D + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 9E + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 AD + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B BE + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D CC + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F DC + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 EC + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 FC + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 0C + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 1A + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 27 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 35 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 42 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 51 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 60 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 6F + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 7E + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 9C + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 B9 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B D5 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D F1 + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 0E + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 2C + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 49 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 65 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 82 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 A0 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B BE + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D DA + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F F6 + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 17 + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 37 + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 56 + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 72 + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 8F + 39 00 00 00 00 00 02 5A 03 + 39 00 00 00 00 00 02 5B AB + 39 00 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 04 FF 98 81 00 ]; + qcom,mdss-dsi-panel-nature-command = [39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 E5 02 + 39 00 00 00 0A 00 04 FF 98 81 00 + 39 00 00 00 0A 00 02 11 00 + 39 00 00 00 00 00 04 FF 98 81 03 + 39 00 00 00 00 00 02 2C 0C + 39 01 00 00 00 00 04 FF 98 81 00]; + qcom,mdss-dsi-panel-gamma-command-state = "dsi_hs_mode"; + + qcom,mdss-dsi-init-last; + + qcom,mdss-dsi-panel-ce-std-command = [39 01 00 00 00 00 04 FF 98 81 02 + 39 01 00 00 00 00 04 FF 98 81 02 + 39 01 00 00 00 00 02 10 06 + 39 01 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 04 FF 98 81 00]; + qcom,mdss-dsi-panel-ce-vivid-command = [39 00 00 00 00 00 04 FF 98 81 02 + 39 00 00 00 00 00 04 FF 98 81 02 + 39 00 00 00 00 00 02 10 16 + 39 00 00 00 00 00 02 68 02 + 39 00 00 00 00 00 02 69 03 + 39 00 00 00 00 00 02 6A 03 + 39 00 00 00 00 00 02 6B 03 + 39 00 00 00 00 00 02 6C 00 + 39 00 00 00 00 00 02 6D 04 + 39 00 00 00 00 00 02 6E 04 + 39 00 00 00 00 00 02 6F 05 + 39 00 00 00 00 00 02 70 05 + 39 00 00 00 00 00 02 71 05 + 39 00 00 00 00 00 02 72 03 + 39 00 00 00 00 00 02 73 01 + 39 00 00 00 00 00 02 74 01 + 39 00 00 00 00 00 02 75 02 + 39 00 00 00 00 00 02 76 04 + 39 00 00 00 00 00 02 77 02 + 39 00 00 00 00 00 02 78 02 + 39 00 00 00 00 00 02 79 02 + 39 00 00 00 00 00 02 7A 02 + 39 00 00 00 00 00 02 7B 02 + 39 00 00 00 00 00 02 7C 02 + 39 00 00 00 00 00 02 7D 02 + 39 00 00 00 00 00 02 7E 02 + 39 00 00 00 00 00 02 7F 02 + 39 00 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 04 FF 98 81 00]; + qcom,mdss-dsi-panel-ce-command-state = "dsi_hs_mode"; + + qcom,mdss-dsi-panel-eye-command01 = [39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 A1 17 + 39 00 00 00 00 00 02 A2 27 + 39 00 00 00 00 00 02 A3 16 + 39 00 00 00 00 00 02 A4 18 + 39 00 00 00 00 00 02 A5 2A + 39 00 00 00 00 00 02 A6 1F + 39 00 00 00 00 00 02 A7 21 + 39 00 00 00 00 00 02 A8 8C + 39 00 00 00 00 00 02 A9 1C + 39 00 00 00 00 00 02 AA 28 + 39 00 00 00 00 00 02 AB 78 + 39 00 00 00 00 00 02 AC 1C + 39 00 00 00 00 00 02 AD 1D + 39 00 00 00 00 00 02 AE 52 + 39 00 00 00 00 00 02 AF 28 + 39 00 00 00 00 00 02 B0 2B + 39 00 00 00 00 00 02 B1 56 + 39 00 00 00 00 00 02 B2 64 + 39 00 00 00 00 00 02 B3 32 + 39 00 00 00 00 00 02 C0 00 + 39 00 00 00 00 00 02 C1 17 + 39 00 00 00 00 00 02 C2 27 + 39 00 00 00 00 00 02 C3 16 + 39 00 00 00 00 00 02 C4 18 + 39 00 00 00 00 00 02 C5 2A + 39 00 00 00 00 00 02 C6 1F + 39 00 00 00 00 00 02 C7 21 + 39 00 00 00 00 00 02 C8 8C + 39 00 00 00 00 00 02 C9 1C + 39 00 00 00 00 00 02 CA 28 + 39 00 00 00 00 00 02 CB 78 + 39 00 00 00 00 00 02 CC 1C + 39 00 00 00 00 00 02 CD 1D + 39 00 00 00 00 00 02 CE 52 + 39 00 00 00 00 00 02 CF 28 + 39 00 00 00 00 00 02 D0 2B + 39 00 00 00 00 00 02 D1 56 + 39 00 00 00 00 00 02 D2 64 + 39 01 00 00 00 00 02 D3 32 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 85 48 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 16 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 23 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 32 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 43 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 53 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 64 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 74 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 83 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 93 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 A4 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 B3 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 C3 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B D3 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D E3 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F F5 + 39 00 00 00 00 00 02 20 01 + 39 00 00 00 00 00 02 21 04 + 39 00 00 00 00 00 02 22 01 + 39 00 00 00 00 00 02 23 13 + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 23 + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 31 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 41 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 50 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 62 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 72 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 83 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 93 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 A3 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 C2 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 E1 + 39 00 00 00 00 00 02 3A 02 + 39 00 00 00 00 00 02 3B 00 + 39 00 00 00 00 00 02 3C 02 + 39 00 00 00 00 00 02 3D 20 + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 3E + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 5B + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 79 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 9B + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 BD + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 D8 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B F7 + 39 00 00 00 00 00 02 4C 03 + 39 00 00 00 00 00 02 4D 19 + 39 00 00 00 00 00 02 4E 03 + 39 00 00 00 00 00 02 4F 3A + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 5A + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 7A + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 9C + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 BD + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 E0 + 39 00 00 00 00 00 02 5A 00 + 39 01 00 00 00 00 02 5B 00 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 0E + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 1D + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 2B + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 3A + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 49 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 57 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 66 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 75 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 83 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 91 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 A0 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 AF + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B BD + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D CA + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F D9 + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 E9 + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 FA + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 09 + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 17 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 26 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 33 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 41 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 50 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 5F + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 6E + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 7C + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 99 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 B6 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B D2 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D ED + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 0A + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 28 + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 47 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 61 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 7E + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 9C + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B BC + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D D5 + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F F1 + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 0F + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 2F + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 4B + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 6A + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 86 + 39 00 00 00 00 00 02 5A 03 + 39 01 00 00 00 00 02 5B A5 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 08 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 11 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 20 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 2E + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 3A + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 44 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 52 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 61 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 70 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 7F + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 8C + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 9A + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B A9 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D B6 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F C2 + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 CF + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 DD + 39 00 00 00 00 00 02 24 00 + 39 00 00 00 00 00 02 25 ED + 39 00 00 00 00 00 02 26 00 + 39 00 00 00 00 00 02 27 FB + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 09 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 16 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 24 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 30 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 3C + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 49 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 57 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 72 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 8D + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B A8 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D C1 + 39 00 00 00 00 00 02 3E 01 + 39 00 00 00 00 00 02 3F DA + 39 00 00 00 00 00 02 40 01 + 39 00 00 00 00 00 02 41 F3 + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 0E + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 29 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 44 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 5D + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B 76 + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D 91 + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F AE + 39 00 00 00 00 00 02 50 02 + 39 00 00 00 00 00 02 51 C8 + 39 00 00 00 00 00 02 52 02 + 39 00 00 00 00 00 02 53 DF + 39 00 00 00 00 00 02 54 02 + 39 00 00 00 00 00 02 55 F9 + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 15 + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 31 + 39 00 00 00 00 00 02 5A 03 + 39 00 00 00 00 00 02 5B 4A + 39 00 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 04 FF 98 81 00]; + qcom,mdss-dsi-panel-eye-command02 = [39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 A1 17 + 39 00 00 00 00 00 02 A2 27 + 39 00 00 00 00 00 02 A3 16 + 39 00 00 00 00 00 02 A4 18 + 39 00 00 00 00 00 02 A5 2A + 39 00 00 00 00 00 02 A6 1F + 39 00 00 00 00 00 02 A7 21 + 39 00 00 00 00 00 02 A8 8C + 39 00 00 00 00 00 02 A9 1C + 39 00 00 00 00 00 02 AA 28 + 39 00 00 00 00 00 02 AB 78 + 39 00 00 00 00 00 02 AC 1C + 39 00 00 00 00 00 02 AD 1D + 39 00 00 00 00 00 02 AE 52 + 39 00 00 00 00 00 02 AF 28 + 39 00 00 00 00 00 02 B0 2B + 39 00 00 00 00 00 02 B1 56 + 39 00 00 00 00 00 02 B2 64 + 39 00 00 00 00 00 02 B3 32 + 39 00 00 00 00 00 02 C0 00 + 39 00 00 00 00 00 02 C1 17 + 39 00 00 00 00 00 02 C2 27 + 39 00 00 00 00 00 02 C3 16 + 39 00 00 00 00 00 02 C4 18 + 39 00 00 00 00 00 02 C5 2A + 39 00 00 00 00 00 02 C6 1F + 39 00 00 00 00 00 02 C7 21 + 39 00 00 00 00 00 02 C8 8C + 39 00 00 00 00 00 02 C9 1C + 39 00 00 00 00 00 02 CA 28 + 39 00 00 00 00 00 02 CB 78 + 39 00 00 00 00 00 02 CC 1C + 39 00 00 00 00 00 02 CD 1D + 39 00 00 00 00 00 02 CE 52 + 39 00 00 00 00 00 02 CF 28 + 39 00 00 00 00 00 02 D0 2B + 39 00 00 00 00 00 02 D1 56 + 39 00 00 00 00 00 02 D2 64 + 39 01 00 00 00 00 02 D3 32 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 85 48 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 16 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 24 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 32 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 43 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 53 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 64 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 74 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 83 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 93 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 A4 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 B3 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 C3 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B D3 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D E3 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F F5 + 39 00 00 00 00 00 02 20 01 + 39 00 00 00 00 00 02 21 04 + 39 00 00 00 00 00 02 22 01 + 39 00 00 00 00 00 02 23 13 + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 23 + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 31 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 41 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 50 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 62 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 72 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 83 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 93 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 A3 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 C2 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 E1 + 39 00 00 00 00 00 02 3A 02 + 39 00 00 00 00 00 02 3B 00 + 39 00 00 00 00 00 02 3C 02 + 39 00 00 00 00 00 02 3D 20 + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 3E + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 5B + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 79 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 9B + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 BD + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 D8 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B F7 + 39 00 00 00 00 00 02 4C 03 + 39 00 00 00 00 00 02 4D 19 + 39 00 00 00 00 00 02 4E 03 + 39 00 00 00 00 00 02 4F 3A + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 5A + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 7A + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 9C + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 BD + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 E0 + 39 00 00 00 00 00 02 5A 00 + 39 01 00 00 00 00 02 5B 00 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 0E + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 1D + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 2B + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 3A + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 49 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 57 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 66 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 75 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 84 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 92 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 A0 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 AF + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B BD + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D CA + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F DA + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 EA + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 FB + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 0A + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 18 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 27 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 34 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 42 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 51 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 61 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 6F + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 7D + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 9A + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 B7 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B D3 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D EF + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 0C + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 2A + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 48 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 64 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 80 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 9E + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B BE + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D D7 + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F F3 + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 12 + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 32 + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 4E + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 6D + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 89 + 39 00 00 00 00 00 02 5A 03 + 39 01 00 00 00 00 02 5B A8 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 07 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 0F + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 1B + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 2A + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 34 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 3D + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 4C + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 5A + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 68 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 77 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 84 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 91 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B 9E + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D AC + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F B8 + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 C4 + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 D0 + 39 00 00 00 00 00 02 24 00 + 39 00 00 00 00 00 02 25 DE + 39 00 00 00 00 00 02 26 00 + 39 00 00 00 00 00 02 27 ED + 39 00 00 00 00 00 02 28 00 + 39 00 00 00 00 00 02 29 FA + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 08 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 14 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 21 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 2D + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 38 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 45 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 5E + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 78 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B 92 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D AA + 39 00 00 00 00 00 02 3E 01 + 39 00 00 00 00 00 02 3F C2 + 39 00 00 00 00 00 02 40 01 + 39 00 00 00 00 00 02 41 DA + 39 00 00 00 00 00 02 42 01 + 39 00 00 00 00 00 02 43 F2 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 0B + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 24 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 40 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B 57 + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D 6E + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F 87 + 39 00 00 00 00 00 02 50 02 + 39 00 00 00 00 00 02 51 A1 + 39 00 00 00 00 00 02 52 02 + 39 00 00 00 00 00 02 53 BD + 39 00 00 00 00 00 02 54 02 + 39 00 00 00 00 00 02 55 D2 + 39 00 00 00 00 00 02 56 02 + 39 00 00 00 00 00 02 57 EA + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 03 + 39 00 00 00 00 00 02 5A 03 + 39 00 00 00 00 00 02 5B 1E + 39 00 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 04 FF 98 81 00]; + qcom,mdss-dsi-panel-eye-command03 = [39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 A1 17 + 39 00 00 00 00 00 02 A2 27 + 39 00 00 00 00 00 02 A3 16 + 39 00 00 00 00 00 02 A4 18 + 39 00 00 00 00 00 02 A5 2A + 39 00 00 00 00 00 02 A6 1F + 39 00 00 00 00 00 02 A7 21 + 39 00 00 00 00 00 02 A8 8C + 39 00 00 00 00 00 02 A9 1C + 39 00 00 00 00 00 02 AA 28 + 39 00 00 00 00 00 02 AB 78 + 39 00 00 00 00 00 02 AC 1C + 39 00 00 00 00 00 02 AD 1D + 39 00 00 00 00 00 02 AE 52 + 39 00 00 00 00 00 02 AF 28 + 39 00 00 00 00 00 02 B0 2B + 39 00 00 00 00 00 02 B1 56 + 39 00 00 00 00 00 02 B2 64 + 39 00 00 00 00 00 02 B3 32 + 39 00 00 00 00 00 02 C0 00 + 39 00 00 00 00 00 02 C1 17 + 39 00 00 00 00 00 02 C2 27 + 39 00 00 00 00 00 02 C3 16 + 39 00 00 00 00 00 02 C4 18 + 39 00 00 00 00 00 02 C5 2A + 39 00 00 00 00 00 02 C6 1F + 39 00 00 00 00 00 02 C7 21 + 39 00 00 00 00 00 02 C8 8C + 39 00 00 00 00 00 02 C9 1C + 39 00 00 00 00 00 02 CA 28 + 39 00 00 00 00 00 02 CB 78 + 39 00 00 00 00 00 02 CC 1C + 39 00 00 00 00 00 02 CD 1D + 39 00 00 00 00 00 02 CE 52 + 39 00 00 00 00 00 02 CF 28 + 39 00 00 00 00 00 02 D0 2B + 39 00 00 00 00 00 02 D1 56 + 39 00 00 00 00 00 02 D2 64 + 39 01 00 00 00 00 02 D3 32 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 85 48 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 16 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 24 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 32 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 43 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 53 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 64 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 74 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 84 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 94 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 A4 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 B3 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 C3 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B D3 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D E3 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F F5 + 39 00 00 00 00 00 02 20 01 + 39 00 00 00 00 00 02 21 04 + 39 00 00 00 00 00 02 22 01 + 39 00 00 00 00 00 02 23 13 + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 23 + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 31 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 41 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 50 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 62 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 72 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 83 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 93 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 A3 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 C2 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 E1 + 39 00 00 00 00 00 02 3A 02 + 39 00 00 00 00 00 02 3B 00 + 39 00 00 00 00 00 02 3C 02 + 39 00 00 00 00 00 02 3D 20 + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 3E + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 5B + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 79 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 9B + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 BD + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 D8 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B F7 + 39 00 00 00 00 00 02 4C 03 + 39 00 00 00 00 00 02 4D 19 + 39 00 00 00 00 00 02 4E 03 + 39 00 00 00 00 00 02 4F 3A + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 5A + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 7A + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 9C + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 BD + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 E0 + 39 00 00 00 00 00 02 5A 00 + 39 01 00 00 00 00 02 5B 00 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 0E + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 1D + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 2B + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 3A + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 49 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 57 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 66 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 75 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 83 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 91 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 A0 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 AF + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B BD + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D CA + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F DA + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 EA + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 FA + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 09 + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 18 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 26 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 33 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 42 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 51 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 60 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 6F + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 7D + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 9A + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 B7 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B D3 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D EF + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 0C + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 2A + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 48 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 63 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 80 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 9E + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B BD + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D D7 + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F F3 + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 11 + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 31 + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 4D + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 6D + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 88 + 39 00 00 00 00 00 02 5A 03 + 39 01 00 00 00 00 02 5B A7 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 06 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 0D + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 15 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 25 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 2F + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 36 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 44 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 53 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 61 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 6F + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 7C + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 88 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B 94 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D A1 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F AE + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 BA + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 C4 + 39 00 00 00 00 00 02 24 00 + 39 00 00 00 00 00 02 25 D0 + 39 00 00 00 00 00 02 26 00 + 39 00 00 00 00 00 02 27 DD + 39 00 00 00 00 00 02 28 00 + 39 00 00 00 00 00 02 29 EB + 39 00 00 00 00 00 02 2A 00 + 39 00 00 00 00 00 02 2B F8 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 05 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 11 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 1D + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 28 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 33 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 4A + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 63 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B 7A + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D 94 + 39 00 00 00 00 00 02 3E 01 + 39 00 00 00 00 00 02 3F AA + 39 00 00 00 00 00 02 40 01 + 39 00 00 00 00 00 02 41 C1 + 39 00 00 00 00 00 02 42 01 + 39 00 00 00 00 00 02 43 D8 + 39 00 00 00 00 00 02 44 01 + 39 00 00 00 00 00 02 45 EF + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 06 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 1E + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B 37 + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D 4F + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F 65 + 39 00 00 00 00 00 02 50 02 + 39 00 00 00 00 00 02 51 7B + 39 00 00 00 00 00 02 52 02 + 39 00 00 00 00 00 02 53 94 + 39 00 00 00 00 00 02 54 02 + 39 00 00 00 00 00 02 55 AD + 39 00 00 00 00 00 02 56 02 + 39 00 00 00 00 00 02 57 C5 + 39 00 00 00 00 00 02 58 02 + 39 00 00 00 00 00 02 59 D9 + 39 00 00 00 00 00 02 5A 02 + 39 00 00 00 00 00 02 5B F0 + 39 00 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 04 FF 98 81 00]; + qcom,mdss-dsi-panel-eye-command04 = [39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 A1 17 + 39 00 00 00 00 00 02 A2 27 + 39 00 00 00 00 00 02 A3 16 + 39 00 00 00 00 00 02 A4 18 + 39 00 00 00 00 00 02 A5 2A + 39 00 00 00 00 00 02 A6 1F + 39 00 00 00 00 00 02 A7 21 + 39 00 00 00 00 00 02 A8 8C + 39 00 00 00 00 00 02 A9 1C + 39 00 00 00 00 00 02 AA 28 + 39 00 00 00 00 00 02 AB 78 + 39 00 00 00 00 00 02 AC 1C + 39 00 00 00 00 00 02 AD 1D + 39 00 00 00 00 00 02 AE 52 + 39 00 00 00 00 00 02 AF 28 + 39 00 00 00 00 00 02 B0 2B + 39 00 00 00 00 00 02 B1 56 + 39 00 00 00 00 00 02 B2 64 + 39 00 00 00 00 00 02 B3 32 + 39 00 00 00 00 00 02 C0 00 + 39 00 00 00 00 00 02 C1 17 + 39 00 00 00 00 00 02 C2 27 + 39 00 00 00 00 00 02 C3 16 + 39 00 00 00 00 00 02 C4 18 + 39 00 00 00 00 00 02 C5 2A + 39 00 00 00 00 00 02 C6 1F + 39 00 00 00 00 00 02 C7 21 + 39 00 00 00 00 00 02 C8 8C + 39 00 00 00 00 00 02 C9 1C + 39 00 00 00 00 00 02 CA 28 + 39 00 00 00 00 00 02 CB 78 + 39 00 00 00 00 00 02 CC 1C + 39 00 00 00 00 00 02 CD 1D + 39 00 00 00 00 00 02 CE 52 + 39 00 00 00 00 00 02 CF 28 + 39 00 00 00 00 00 02 D0 2B + 39 00 00 00 00 00 02 D1 56 + 39 00 00 00 00 00 02 D2 64 + 39 01 00 00 00 00 02 D3 32 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 85 48 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 17 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 24 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 33 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 43 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 54 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 64 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 74 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 84 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 94 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 A4 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 B3 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 C3 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B D3 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D E3 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F F5 + 39 00 00 00 00 00 02 20 01 + 39 00 00 00 00 00 02 21 04 + 39 00 00 00 00 00 02 22 01 + 39 00 00 00 00 00 02 23 13 + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 23 + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 31 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 41 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 51 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 62 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 72 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 83 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 93 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 A3 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 C2 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 E1 + 39 00 00 00 00 00 02 3A 02 + 39 00 00 00 00 00 02 3B 00 + 39 00 00 00 00 00 02 3C 02 + 39 00 00 00 00 00 02 3D 20 + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 3E + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 5B + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 79 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 9B + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 BD + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 D8 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B F7 + 39 00 00 00 00 00 02 4C 03 + 39 00 00 00 00 00 02 4D 19 + 39 00 00 00 00 00 02 4E 03 + 39 00 00 00 00 00 02 4F 3A + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 5A + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 7A + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 9C + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 BD + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 E0 + 39 00 00 00 00 00 02 5A 00 + 39 01 00 00 00 00 02 5B 00 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 0E + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 1D + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 2B + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 3A + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 49 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 57 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 66 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 75 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 83 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 91 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 A0 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 AF + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B BD + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D CA + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F D9 + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 E9 + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 FA + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 08 + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 17 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 26 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 33 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 41 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 4F + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 5F + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 6E + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 7C + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 99 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 B6 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B D1 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D ED + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 0A + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 28 + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 46 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 61 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 7D + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 9C + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B BB + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D D5 + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F F1 + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 0E + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 2F + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 4A + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 69 + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 85 + 39 00 00 00 00 00 02 5A 03 + 39 01 00 00 00 00 02 5B A5 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 05 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 0A + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 10 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 1E + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 28 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 2D + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 3B + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 4B + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 58 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 65 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 72 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 7E + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B 89 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D 95 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F A1 + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 AD + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 B9 + 39 00 00 00 00 00 02 24 00 + 39 00 00 00 00 00 02 25 C3 + 39 00 00 00 00 00 02 26 00 + 39 00 00 00 00 00 02 27 CD + 39 00 00 00 00 00 02 28 00 + 39 00 00 00 00 00 02 29 D9 + 39 00 00 00 00 00 02 2A 00 + 39 00 00 00 00 00 02 2B E6 + 39 00 00 00 00 00 02 2C 00 + 39 00 00 00 00 00 02 2D F3 + 39 00 00 00 00 00 02 2E 00 + 39 00 00 00 00 00 02 2F FF + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 0B + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 16 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 21 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 35 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 4B + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B 62 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D 79 + 39 00 00 00 00 00 02 3E 01 + 39 00 00 00 00 00 02 3F 90 + 39 00 00 00 00 00 02 40 01 + 39 00 00 00 00 00 02 41 A6 + 39 00 00 00 00 00 02 42 01 + 39 00 00 00 00 00 02 43 BB + 39 00 00 00 00 00 02 44 01 + 39 00 00 00 00 00 02 45 D0 + 39 00 00 00 00 00 02 46 01 + 39 00 00 00 00 00 02 47 E6 + 39 00 00 00 00 00 02 48 01 + 39 00 00 00 00 00 02 49 FB + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B 11 + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D 29 + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F 40 + 39 00 00 00 00 00 02 50 02 + 39 00 00 00 00 00 02 51 55 + 39 00 00 00 00 00 02 52 02 + 39 00 00 00 00 00 02 53 6A + 39 00 00 00 00 00 02 54 02 + 39 00 00 00 00 00 02 55 7F + 39 00 00 00 00 00 02 56 02 + 39 00 00 00 00 00 02 57 96 + 39 00 00 00 00 00 02 58 02 + 39 00 00 00 00 00 02 59 AE + 39 00 00 00 00 00 02 5A 02 + 39 00 00 00 00 00 02 5B C5 + 39 00 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 04 FF 98 81 00 ]; + qcom,mdss-dsi-panel-eye-command05 = [39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 A1 17 + 39 00 00 00 00 00 02 A2 27 + 39 00 00 00 00 00 02 A3 16 + 39 00 00 00 00 00 02 A4 18 + 39 00 00 00 00 00 02 A5 2A + 39 00 00 00 00 00 02 A6 1F + 39 00 00 00 00 00 02 A7 21 + 39 00 00 00 00 00 02 A8 8C + 39 00 00 00 00 00 02 A9 1C + 39 00 00 00 00 00 02 AA 28 + 39 00 00 00 00 00 02 AB 78 + 39 00 00 00 00 00 02 AC 1C + 39 00 00 00 00 00 02 AD 1D + 39 00 00 00 00 00 02 AE 52 + 39 00 00 00 00 00 02 AF 28 + 39 00 00 00 00 00 02 B0 2B + 39 00 00 00 00 00 02 B1 56 + 39 00 00 00 00 00 02 B2 64 + 39 00 00 00 00 00 02 B3 32 + 39 00 00 00 00 00 02 C0 00 + 39 00 00 00 00 00 02 C1 17 + 39 00 00 00 00 00 02 C2 27 + 39 00 00 00 00 00 02 C3 16 + 39 00 00 00 00 00 02 C4 18 + 39 00 00 00 00 00 02 C5 2A + 39 00 00 00 00 00 02 C6 1F + 39 00 00 00 00 00 02 C7 21 + 39 00 00 00 00 00 02 C8 8C + 39 00 00 00 00 00 02 C9 1C + 39 00 00 00 00 00 02 CA 28 + 39 00 00 00 00 00 02 CB 78 + 39 00 00 00 00 00 02 CC 1C + 39 00 00 00 00 00 02 CD 1D + 39 00 00 00 00 00 02 CE 52 + 39 00 00 00 00 00 02 CF 28 + 39 00 00 00 00 00 02 D0 2B + 39 00 00 00 00 00 02 D1 56 + 39 00 00 00 00 00 02 D2 64 + 39 01 00 00 00 00 02 D3 32 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 85 48 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 17 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 24 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 33 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 43 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 54 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 64 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 74 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 84 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 94 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 A4 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 B3 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 C3 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B D3 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D E3 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F F5 + 39 00 00 00 00 00 02 20 01 + 39 00 00 00 00 00 02 21 04 + 39 00 00 00 00 00 02 22 01 + 39 00 00 00 00 00 02 23 13 + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 23 + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 31 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 41 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 51 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 62 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 72 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 83 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 93 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 A3 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 C2 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 E1 + 39 00 00 00 00 00 02 3A 02 + 39 00 00 00 00 00 02 3B 00 + 39 00 00 00 00 00 02 3C 02 + 39 00 00 00 00 00 02 3D 20 + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 3E + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 5B + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 79 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 9B + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 BD + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 D8 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B F7 + 39 00 00 00 00 00 02 4C 03 + 39 00 00 00 00 00 02 4D 19 + 39 00 00 00 00 00 02 4E 03 + 39 00 00 00 00 00 02 4F 3A + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 5A + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 7A + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 9C + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 BD + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 E0 + 39 00 00 00 00 00 02 5A 00 + 39 01 00 00 00 00 02 5B 00 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 0F + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 1D + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 2B + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 3A + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 49 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 57 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 66 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 75 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 83 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 91 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 A0 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 AF + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B BD + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D CA + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F D9 + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 EA + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 FA + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 09 + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 18 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 26 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 33 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 42 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 50 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 60 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 6F + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 7D + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 9A + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 B6 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B D2 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D EF + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 0B + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 29 + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 48 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 63 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 7F + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 9E + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B BD + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D D6 + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F F2 + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 11 + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 31 + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 4D + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 6C + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 88 + 39 00 00 00 00 00 02 5A 03 + 39 01 00 00 00 00 02 5B A7 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 05 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 09 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 0F + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 17 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 21 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 25 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 33 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 43 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 51 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 5D + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 69 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 75 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B 81 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D 8B + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F 96 + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 A2 + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 AD + 39 00 00 00 00 00 02 24 00 + 39 00 00 00 00 00 02 25 B7 + 39 00 00 00 00 00 02 26 00 + 39 00 00 00 00 00 02 27 C1 + 39 00 00 00 00 00 02 28 00 + 39 00 00 00 00 00 02 29 CB + 39 00 00 00 00 00 02 2A 00 + 39 00 00 00 00 00 02 2B D6 + 39 00 00 00 00 00 02 2C 00 + 39 00 00 00 00 00 02 2D E2 + 39 00 00 00 00 00 02 2E 00 + 39 00 00 00 00 00 02 2F EE + 39 00 00 00 00 00 02 30 00 + 39 00 00 00 00 00 02 31 F9 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 04 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 10 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 24 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 37 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B 4B + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D 62 + 39 00 00 00 00 00 02 3E 01 + 39 00 00 00 00 00 02 3F 77 + 39 00 00 00 00 00 02 40 01 + 39 00 00 00 00 00 02 41 8C + 39 00 00 00 00 00 02 42 01 + 39 00 00 00 00 00 02 43 A1 + 39 00 00 00 00 00 02 44 01 + 39 00 00 00 00 00 02 45 B6 + 39 00 00 00 00 00 02 46 01 + 39 00 00 00 00 00 02 47 C9 + 39 00 00 00 00 00 02 48 01 + 39 00 00 00 00 00 02 49 DD + 39 00 00 00 00 00 02 4A 01 + 39 00 00 00 00 00 02 4B F1 + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D 06 + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F 1B + 39 00 00 00 00 00 02 50 02 + 39 00 00 00 00 00 02 51 31 + 39 00 00 00 00 00 02 52 02 + 39 00 00 00 00 00 02 53 46 + 39 00 00 00 00 00 02 54 02 + 39 00 00 00 00 00 02 55 5A + 39 00 00 00 00 00 02 56 02 + 39 00 00 00 00 00 02 57 6D + 39 00 00 00 00 00 02 58 02 + 39 00 00 00 00 00 02 59 82 + 39 00 00 00 00 00 02 5A 02 + 39 00 00 00 00 00 02 5B 97 + 39 00 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 04 FF 98 81 00]; + qcom,mdss-dsi-panel-eye-command06 = [ + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 A1 17 + 39 00 00 00 00 00 02 A2 27 + 39 00 00 00 00 00 02 A3 16 + 39 00 00 00 00 00 02 A4 18 + 39 00 00 00 00 00 02 A5 2A + 39 00 00 00 00 00 02 A6 1F + 39 00 00 00 00 00 02 A7 21 + 39 00 00 00 00 00 02 A8 8C + 39 00 00 00 00 00 02 A9 1C + 39 00 00 00 00 00 02 AA 28 + 39 00 00 00 00 00 02 AB 78 + 39 00 00 00 00 00 02 AC 1C + 39 00 00 00 00 00 02 AD 1D + 39 00 00 00 00 00 02 AE 52 + 39 00 00 00 00 00 02 AF 28 + 39 00 00 00 00 00 02 B0 2B + 39 00 00 00 00 00 02 B1 56 + 39 00 00 00 00 00 02 B2 64 + 39 00 00 00 00 00 02 B3 32 + 39 00 00 00 00 00 02 C0 00 + 39 00 00 00 00 00 02 C1 17 + 39 00 00 00 00 00 02 C2 27 + 39 00 00 00 00 00 02 C3 16 + 39 00 00 00 00 00 02 C4 18 + 39 00 00 00 00 00 02 C5 2A + 39 00 00 00 00 00 02 C6 1F + 39 00 00 00 00 00 02 C7 21 + 39 00 00 00 00 00 02 C8 8C + 39 00 00 00 00 00 02 C9 1C + 39 00 00 00 00 00 02 CA 28 + 39 00 00 00 00 00 02 CB 78 + 39 00 00 00 00 00 02 CC 1C + 39 00 00 00 00 00 02 CD 1D + 39 00 00 00 00 00 02 CE 52 + 39 00 00 00 00 00 02 CF 28 + 39 00 00 00 00 00 02 D0 2B + 39 00 00 00 00 00 02 D1 56 + 39 00 00 00 00 00 02 D2 64 + 39 01 00 00 00 00 02 D3 32 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 85 48 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 17 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 24 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 33 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 43 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 54 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 64 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 74 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 84 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 94 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 A4 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 B3 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 C3 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B D3 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D E3 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F F5 + 39 00 00 00 00 00 02 20 01 + 39 00 00 00 00 00 02 21 04 + 39 00 00 00 00 00 02 22 01 + 39 00 00 00 00 00 02 23 13 + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 23 + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 31 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 41 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 51 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 62 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 72 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 83 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 93 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 A3 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 C2 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 E1 + 39 00 00 00 00 00 02 3A 02 + 39 00 00 00 00 00 02 3B 00 + 39 00 00 00 00 00 02 3C 02 + 39 00 00 00 00 00 02 3D 20 + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 3E + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 5B + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 79 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 9B + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 BD + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 D8 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B F7 + 39 00 00 00 00 00 02 4C 03 + 39 00 00 00 00 00 02 4D 19 + 39 00 00 00 00 00 02 4E 03 + 39 00 00 00 00 00 02 4F 3A + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 5A + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 7A + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 9C + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 BD + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 E0 + 39 00 00 00 00 00 02 5A 00 + 39 01 00 00 00 00 02 5B 00 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 0F + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 1D + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 2C + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 3A + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 49 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 57 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 66 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 75 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 83 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 91 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 A0 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 AF + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B BD + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D CA + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F D9 + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 EA + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 FA + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 09 + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 18 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 26 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 33 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 42 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 50 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 60 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 6F + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 7D + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 9A + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 B6 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B D2 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D EF + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 0B + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 29 + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 48 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 63 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 7F + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 9E + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B BD + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D D6 + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F F2 + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 11 + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 31 + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 4D + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 6C + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 88 + 39 00 00 00 00 00 02 5A 03 + 39 01 00 00 00 00 02 5B A7 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 05 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 07 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 0B + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 0F + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 16 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 18 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 29 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 39 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 47 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 54 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 5F + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 6A + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B 76 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D 80 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F 8A + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 94 + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 9F + 39 00 00 00 00 00 02 24 00 + 39 00 00 00 00 00 02 25 A9 + 39 00 00 00 00 00 02 26 00 + 39 00 00 00 00 00 02 27 B3 + 39 00 00 00 00 00 02 28 00 + 39 00 00 00 00 00 02 29 BD + 39 00 00 00 00 00 02 2A 00 + 39 00 00 00 00 00 02 2B C5 + 39 00 00 00 00 00 02 2C 00 + 39 00 00 00 00 00 02 2D CF + 39 00 00 00 00 00 02 2E 00 + 39 00 00 00 00 00 02 2F DA + 39 00 00 00 00 00 02 30 00 + 39 00 00 00 00 00 02 31 E5 + 39 00 00 00 00 00 02 32 00 + 39 00 00 00 00 00 02 33 F0 + 39 00 00 00 00 00 02 34 00 + 39 00 00 00 00 00 02 35 FA + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 0F + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 22 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B 34 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D 47 + 39 00 00 00 00 00 02 3E 01 + 39 00 00 00 00 00 02 3F 5B + 39 00 00 00 00 00 02 40 01 + 39 00 00 00 00 00 02 41 6F + 39 00 00 00 00 00 02 42 01 + 39 00 00 00 00 00 02 43 83 + 39 00 00 00 00 00 02 44 01 + 39 00 00 00 00 00 02 45 96 + 39 00 00 00 00 00 02 46 01 + 39 00 00 00 00 00 02 47 A9 + 39 00 00 00 00 00 02 48 01 + 39 00 00 00 00 00 02 49 BC + 39 00 00 00 00 00 02 4A 01 + 39 00 00 00 00 00 02 4B CE + 39 00 00 00 00 00 02 4C 01 + 39 00 00 00 00 00 02 4D E2 + 39 00 00 00 00 00 02 4E 01 + 39 00 00 00 00 00 02 4F F4 + 39 00 00 00 00 00 02 50 02 + 39 00 00 00 00 00 02 51 07 + 39 00 00 00 00 00 02 52 02 + 39 00 00 00 00 00 02 53 1A + 39 00 00 00 00 00 02 54 02 + 39 00 00 00 00 00 02 55 2E + 39 00 00 00 00 00 02 56 02 + 39 00 00 00 00 00 02 57 43 + 39 00 00 00 00 00 02 58 02 + 39 00 00 00 00 00 02 59 55 + 39 00 00 00 00 00 02 5A 02 + 39 00 00 00 00 00 02 5B 67 + 39 00 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 04 FF 98 81 00]; + qcom,mdss-dsi-panel-eye-command07 = [ + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 A1 17 + 39 00 00 00 00 00 02 A2 27 + 39 00 00 00 00 00 02 A3 16 + 39 00 00 00 00 00 02 A4 18 + 39 00 00 00 00 00 02 A5 2A + 39 00 00 00 00 00 02 A6 1F + 39 00 00 00 00 00 02 A7 21 + 39 00 00 00 00 00 02 A8 8C + 39 00 00 00 00 00 02 A9 1C + 39 00 00 00 00 00 02 AA 28 + 39 00 00 00 00 00 02 AB 78 + 39 00 00 00 00 00 02 AC 1C + 39 00 00 00 00 00 02 AD 1D + 39 00 00 00 00 00 02 AE 52 + 39 00 00 00 00 00 02 AF 28 + 39 00 00 00 00 00 02 B0 2B + 39 00 00 00 00 00 02 B1 56 + 39 00 00 00 00 00 02 B2 64 + 39 00 00 00 00 00 02 B3 32 + 39 00 00 00 00 00 02 C0 00 + 39 00 00 00 00 00 02 C1 17 + 39 00 00 00 00 00 02 C2 27 + 39 00 00 00 00 00 02 C3 16 + 39 00 00 00 00 00 02 C4 18 + 39 00 00 00 00 00 02 C5 2A + 39 00 00 00 00 00 02 C6 1F + 39 00 00 00 00 00 02 C7 21 + 39 00 00 00 00 00 02 C8 8C + 39 00 00 00 00 00 02 C9 1C + 39 00 00 00 00 00 02 CA 28 + 39 00 00 00 00 00 02 CB 78 + 39 00 00 00 00 00 02 CC 1C + 39 00 00 00 00 00 02 CD 1D + 39 00 00 00 00 00 02 CE 52 + 39 00 00 00 00 00 02 CF 28 + 39 00 00 00 00 00 02 D0 2B + 39 00 00 00 00 00 02 D1 56 + 39 00 00 00 00 00 02 D2 64 + 39 01 00 00 00 00 02 D3 32 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 85 48 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 17 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 24 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 33 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 43 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 54 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 64 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 74 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 84 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 94 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 A4 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 B3 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 C3 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B D3 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D E3 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F F5 + 39 00 00 00 00 00 02 20 01 + 39 00 00 00 00 00 02 21 04 + 39 00 00 00 00 00 02 22 01 + 39 00 00 00 00 00 02 23 13 + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 23 + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 31 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 41 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 51 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 62 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 72 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 83 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 93 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 A3 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 C2 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 E1 + 39 00 00 00 00 00 02 3A 02 + 39 00 00 00 00 00 02 3B 00 + 39 00 00 00 00 00 02 3C 02 + 39 00 00 00 00 00 02 3D 20 + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 3E + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 5B + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 79 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 9B + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 BD + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 D8 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B F7 + 39 00 00 00 00 00 02 4C 03 + 39 00 00 00 00 00 02 4D 19 + 39 00 00 00 00 00 02 4E 03 + 39 00 00 00 00 00 02 4F 3A + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 5A + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 7A + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 9C + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 BD + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 E0 + 39 00 00 00 00 00 02 5A 00 + 39 01 00 00 00 00 02 5B 00 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 0F + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 1E + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 2C + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 3A + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 49 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 58 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 67 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 76 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 84 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 92 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 A1 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 B0 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B BD + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D CA + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F DA + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 EB + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 FB + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 0A + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 19 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 27 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 34 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 43 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 51 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 61 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 70 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 7E + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 9B + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 B7 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B D4 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D F0 + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 0D + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 2A + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 49 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 64 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 81 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 9F + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B BE + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D D8 + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F F4 + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 13 + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 33 + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 4F + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 6E + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 8A + 39 00 00 00 00 00 02 5A 03 + 39 01 00 00 00 00 02 5B A9 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 05 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 07 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 0C + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 10 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 14 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 18 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 1C + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 2F + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 3D + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 4A + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 56 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 60 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B 6B + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D 75 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F 7F + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 88 + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 92 + 39 00 00 00 00 00 02 24 00 + 39 00 00 00 00 00 02 25 9B + 39 00 00 00 00 00 02 26 00 + 39 00 00 00 00 00 02 27 A5 + 39 00 00 00 00 00 02 28 00 + 39 00 00 00 00 00 02 29 AF + 39 00 00 00 00 00 02 2A 00 + 39 00 00 00 00 00 02 2B B8 + 39 00 00 00 00 00 02 2C 00 + 39 00 00 00 00 00 02 2D C0 + 39 00 00 00 00 00 02 2E 00 + 39 00 00 00 00 00 02 2F C8 + 39 00 00 00 00 00 02 30 00 + 39 00 00 00 00 00 02 31 D2 + 39 00 00 00 00 00 02 32 00 + 39 00 00 00 00 00 02 33 DC + 39 00 00 00 00 00 02 34 00 + 39 00 00 00 00 00 02 35 E6 + 39 00 00 00 00 00 02 36 00 + 39 00 00 00 00 00 02 37 FA + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 0E + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B 1F + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D 30 + 39 00 00 00 00 00 02 3E 01 + 39 00 00 00 00 00 02 3F 41 + 39 00 00 00 00 00 02 40 01 + 39 00 00 00 00 00 02 41 54 + 39 00 00 00 00 00 02 42 01 + 39 00 00 00 00 00 02 43 66 + 39 00 00 00 00 00 02 44 01 + 39 00 00 00 00 00 02 45 79 + 39 00 00 00 00 00 02 46 01 + 39 00 00 00 00 00 02 47 8B + 39 00 00 00 00 00 02 48 01 + 39 00 00 00 00 00 02 49 9D + 39 00 00 00 00 00 02 4A 01 + 39 00 00 00 00 00 02 4B AE + 39 00 00 00 00 00 02 4C 01 + 39 00 00 00 00 00 02 4D C0 + 39 00 00 00 00 00 02 4E 01 + 39 00 00 00 00 00 02 4F D1 + 39 00 00 00 00 00 02 50 01 + 39 00 00 00 00 00 02 51 E3 + 39 00 00 00 00 00 02 52 01 + 39 00 00 00 00 00 02 53 F3 + 39 00 00 00 00 00 02 54 02 + 39 00 00 00 00 00 02 55 06 + 39 00 00 00 00 00 02 56 02 + 39 00 00 00 00 00 02 57 18 + 39 00 00 00 00 00 02 58 02 + 39 00 00 00 00 00 02 59 2A + 39 00 00 00 00 00 02 5A 02 + 39 00 00 00 00 00 02 5B 3E + 39 00 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 04 FF 98 81 00]; + qcom,mdss-dsi-panel-eye-command08 = [39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 A1 17 + 39 00 00 00 00 00 02 A2 27 + 39 00 00 00 00 00 02 A3 16 + 39 00 00 00 00 00 02 A4 18 + 39 00 00 00 00 00 02 A5 2A + 39 00 00 00 00 00 02 A6 1F + 39 00 00 00 00 00 02 A7 21 + 39 00 00 00 00 00 02 A8 8C + 39 00 00 00 00 00 02 A9 1C + 39 00 00 00 00 00 02 AA 28 + 39 00 00 00 00 00 02 AB 78 + 39 00 00 00 00 00 02 AC 1C + 39 00 00 00 00 00 02 AD 1D + 39 00 00 00 00 00 02 AE 52 + 39 00 00 00 00 00 02 AF 28 + 39 00 00 00 00 00 02 B0 2B + 39 00 00 00 00 00 02 B1 56 + 39 00 00 00 00 00 02 B2 64 + 39 00 00 00 00 00 02 B3 32 + 39 00 00 00 00 00 02 C0 00 + 39 00 00 00 00 00 02 C1 17 + 39 00 00 00 00 00 02 C2 27 + 39 00 00 00 00 00 02 C3 16 + 39 00 00 00 00 00 02 C4 18 + 39 00 00 00 00 00 02 C5 2A + 39 00 00 00 00 00 02 C6 1F + 39 00 00 00 00 00 02 C7 21 + 39 00 00 00 00 00 02 C8 8C + 39 00 00 00 00 00 02 C9 1C + 39 00 00 00 00 00 02 CA 28 + 39 00 00 00 00 00 02 CB 78 + 39 00 00 00 00 00 02 CC 1C + 39 00 00 00 00 00 02 CD 1D + 39 00 00 00 00 00 02 CE 52 + 39 00 00 00 00 00 02 CF 28 + 39 00 00 00 00 00 02 D0 2B + 39 00 00 00 00 00 02 D1 56 + 39 00 00 00 00 00 02 D2 64 + 39 01 00 00 00 00 02 D3 32 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 85 48 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 18 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 24 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 33 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 43 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 54 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 64 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 74 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 84 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 94 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 A4 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 B3 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 C3 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B D3 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D E3 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F F5 + 39 00 00 00 00 00 02 20 01 + 39 00 00 00 00 00 02 21 04 + 39 00 00 00 00 00 02 22 01 + 39 00 00 00 00 00 02 23 13 + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 23 + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 31 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 41 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 51 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 62 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 72 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 83 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 93 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 A3 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 C2 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 E1 + 39 00 00 00 00 00 02 3A 02 + 39 00 00 00 00 00 02 3B 00 + 39 00 00 00 00 00 02 3C 02 + 39 00 00 00 00 00 02 3D 20 + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 3E + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 5B + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 79 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 9B + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 BD + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 D8 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B F7 + 39 00 00 00 00 00 02 4C 03 + 39 00 00 00 00 00 02 4D 19 + 39 00 00 00 00 00 02 4E 03 + 39 00 00 00 00 00 02 4F 3A + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 5A + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 7A + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 9C + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 BD + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 E0 + 39 00 00 00 00 00 02 5A 00 + 39 01 00 00 00 00 02 5B 00 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 0F + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 1E + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 2C + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 3A + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 49 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 58 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 66 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 76 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 84 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 92 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 A1 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 B0 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B BD + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D CA + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F DA + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 EB + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 FB + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 0A + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 19 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 27 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 34 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 43 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 51 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 61 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 6F + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 7E + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 9B + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 B7 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B D3 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D F0 + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 0C + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 2A + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 49 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 64 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 81 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 9F + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B BE + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D D7 + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F F4 + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 13 + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 32 + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 4F + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 6E + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 8A + 39 00 00 00 00 00 02 5A 03 + 39 01 00 00 00 00 02 5B A9 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 04 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 06 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 08 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 0C + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 0F + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 12 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 15 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 23 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 32 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 40 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 4C + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 56 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B 5F + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D 69 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F 73 + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 7C + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 85 + 39 00 00 00 00 00 02 24 00 + 39 00 00 00 00 00 02 25 8D + 39 00 00 00 00 00 02 26 00 + 39 00 00 00 00 00 02 27 96 + 39 00 00 00 00 00 02 28 00 + 39 00 00 00 00 00 02 29 A0 + 39 00 00 00 00 00 02 2A 00 + 39 00 00 00 00 00 02 2B A9 + 39 00 00 00 00 00 02 2C 00 + 39 00 00 00 00 00 02 2D B1 + 39 00 00 00 00 00 02 2E 00 + 39 00 00 00 00 00 02 2F BA + 39 00 00 00 00 00 02 30 00 + 39 00 00 00 00 00 02 31 C1 + 39 00 00 00 00 00 02 32 00 + 39 00 00 00 00 00 02 33 C9 + 39 00 00 00 00 00 02 34 00 + 39 00 00 00 00 00 02 35 D2 + 39 00 00 00 00 00 02 36 00 + 39 00 00 00 00 00 02 37 E4 + 39 00 00 00 00 00 02 38 00 + 39 00 00 00 00 00 02 39 F7 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B 09 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D 1A + 39 00 00 00 00 00 02 3E 01 + 39 00 00 00 00 00 02 3F 29 + 39 00 00 00 00 00 02 40 01 + 39 00 00 00 00 00 02 41 39 + 39 00 00 00 00 00 02 42 01 + 39 00 00 00 00 00 02 43 49 + 39 00 00 00 00 00 02 44 01 + 39 00 00 00 00 00 02 45 5A + 39 00 00 00 00 00 02 46 01 + 39 00 00 00 00 00 02 47 6B + 39 00 00 00 00 00 02 48 01 + 39 00 00 00 00 00 02 49 7C + 39 00 00 00 00 00 02 4A 01 + 39 00 00 00 00 00 02 4B 8D + 39 00 00 00 00 00 02 4C 01 + 39 00 00 00 00 00 02 4D 9E + 39 00 00 00 00 00 02 4E 01 + 39 00 00 00 00 00 02 4F AE + 39 00 00 00 00 00 02 50 01 + 39 00 00 00 00 00 02 51 BE + 39 00 00 00 00 00 02 52 01 + 39 00 00 00 00 00 02 53 CE + 39 00 00 00 00 00 02 54 01 + 39 00 00 00 00 00 02 55 DE + 39 00 00 00 00 00 02 56 01 + 39 00 00 00 00 00 02 57 EE + 39 00 00 00 00 00 02 58 01 + 39 00 00 00 00 00 02 59 FE + 39 00 00 00 00 00 02 5A 02 + 39 00 00 00 00 00 02 5B 0F + 39 00 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 04 FF 98 81 00]; + qcom,mdss-dsi-panel-eye-command-num = <8>; + + qcom,mdss-dsi-h-sync-pulse = <1>; + qcom,mdss-dsi-traffic-mode = "burst_mode"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + + qcom,mdss-dsi-panel-timings = [8B 1E 14 00 44 48 18 22 19 03 04 00]; + qcom,mdss-dsi-t-clk-post = <0x04>; + qcom,mdss-dsi-t-clk-pre = <0x1c>; + qcom,mdss-dsi-bl-min-level = <4>; + qcom,mdss-dsi-bl-max-level = <255>; + qcom,mdss-dsi-bl-pmic-pwm-frequency = <100>; + qcom,mdss-dsi-bl-pmic-bank-select = <0>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm"; + qcom,mdss-dsi-pwm-gpio = <&pm8937_mpps 4 0>; + + qcom,esd-check-enabled; + qcom,mdss-dsi-panel-status-command = [06 01 00 01 05 00 02 0A 08]; + qcom,mdss-dsi-panel-status-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-panel-status-check-mode = "reg_read"; + qcom,mdss-dsi-panel-status-valid-params = <1>; + qcom,mdss-dsi-panel-status-value = <0x9c>; + qcom,mdss-dsi-panel-status-read-length = <1>; + + qcom,mdss-dsi-lp11-init; + qcom,mdss-dsi-init-delay-us = <50000>; + qcom,mdss-dsi-reset-sequence = <1 5>, <0 10>, <1 80>; + + }; +}; diff --git a/arch/arm/boot/dts/qcom/dsi-panel-ili9881c-ebbg-c3b-720p-video.dtsi b/arch/arm/boot/dts/qcom/dsi-panel-ili9881c-ebbg-c3b-720p-video.dtsi new file mode 100644 index 0000000000000..e221636beb001 --- /dev/null +++ b/arch/arm/boot/dts/qcom/dsi-panel-ili9881c-ebbg-c3b-720p-video.dtsi @@ -0,0 +1,3748 @@ +/* Copyright (c) 2013, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/*--------------------------------------------------------------------------- + * This file is autogenerated file using gcdb parser. Please do not edit it. + * Update input XML file to add a new entry or update variable in this file + * VERSION = "1.0" + *---------------------------------------------------------------------------*/ +&mdss_mdp { + dsi_ili9881c_ebbg_720p_video: qcom,mdss_dsi_ili9881c_ebbg_c3b_720p_video { + qcom,mdss-dsi-panel-name = "ili9881c_HD720p_video_Ebbg_c3b"; + qcom,mdss-dsi-panel-controller = <&mdss_dsi0>; + qcom,mdss-dsi-panel-type = "dsi_video_mode"; + qcom,mdss-dsi-panel-destination = "display_1"; + qcom,mdss-dsi-panel-model = "EBBG HD ILI9881C VIDEO PANEL"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <720>; + qcom,mdss-dsi-panel-height = <1280>; + qcom,mdss-pan-physical-width-dimension = <62>; + qcom,mdss-pan-physical-height-dimension = <110>; + qcom,mdss-dsi-h-front-porch = <116>; + qcom,mdss-dsi-h-back-porch = <180>; + qcom,mdss-dsi-h-pulse-width = <8>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <18>; + qcom,mdss-dsi-v-front-porch = <10>; + qcom,mdss-dsi-v-pulse-width = <4>; + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-underflow-color = <0x00>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-on-command = [39 01 00 00 00 00 04 FF 98 81 04 + 39 01 00 00 00 00 04 FF 98 81 04 + 39 01 00 00 00 00 02 E5 00 + 39 01 00 00 0A 00 04 FF 98 81 00 + 39 01 00 00 96 00 02 11 00 + 39 01 00 00 00 00 02 29 00 + 39 01 00 00 0A 00 02 35 00 + 39 00 00 00 00 00 04 FF 98 81 03 + 39 00 00 00 00 00 02 2C 0C + 39 01 00 00 00 00 04 FF 98 81 00]; + qcom,mdss-dsi-off-command = [39 00 00 00 00 00 04 FF 98 81 00 + 05 00 00 00 0A 00 02 28 00 + 05 01 00 00 96 00 02 10 00]; + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-panel-warm-command = [39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 A1 17 + 39 00 00 00 00 00 02 A2 27 + 39 00 00 00 00 00 02 A3 14 + 39 00 00 00 00 00 02 A4 17 + 39 00 00 00 00 00 02 A5 29 + 39 00 00 00 00 00 02 A6 1F + 39 00 00 00 00 00 02 A7 20 + 39 00 00 00 00 00 02 A8 89 + 39 00 00 00 00 00 02 A9 1D + 39 00 00 00 00 00 02 AA 29 + 39 00 00 00 00 00 02 AB 74 + 39 00 00 00 00 00 02 AC 1B + 39 00 00 00 00 00 02 AD 1A + 39 00 00 00 00 00 02 AE 4F + 39 00 00 00 00 00 02 AF 23 + 39 00 00 00 00 00 02 B0 27 + 39 00 00 00 00 00 02 B1 4F + 39 00 00 00 00 00 02 B2 5D + 39 00 00 00 00 00 02 B3 32 + 39 00 00 00 00 00 02 C0 00 + 39 00 00 00 00 00 02 C1 17 + 39 00 00 00 00 00 02 C2 27 + 39 00 00 00 00 00 02 C3 14 + 39 00 00 00 00 00 02 C4 17 + 39 00 00 00 00 00 02 C5 29 + 39 00 00 00 00 00 02 C6 1F + 39 00 00 00 00 00 02 C7 20 + 39 00 00 00 00 00 02 C8 89 + 39 00 00 00 00 00 02 C9 1D + 39 00 00 00 00 00 02 CA 29 + 39 00 00 00 00 00 02 CB 74 + 39 00 00 00 00 00 02 CC 1B + 39 00 00 00 00 00 02 CD 1A + 39 00 00 00 00 00 02 CE 4F + 39 00 00 00 00 00 02 CF 23 + 39 00 00 00 00 00 02 D0 27 + 39 00 00 00 00 00 02 D1 4F + 39 00 00 00 00 00 02 D2 5D + 39 01 00 00 00 00 02 D3 32 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 85 48 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 13 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 22 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 30 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 42 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 53 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 65 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 76 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 85 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 95 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 A5 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 B7 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 C6 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B D6 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D E6 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F F6 + 39 00 00 00 00 00 02 20 01 + 39 00 00 00 00 00 02 21 05 + 39 00 00 00 00 00 02 22 01 + 39 00 00 00 00 00 02 23 16 + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 24 + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 32 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 41 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 51 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 62 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 72 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 82 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 94 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 A4 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 C3 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 E2 + 39 00 00 00 00 00 02 3A 02 + 39 00 00 00 00 00 02 3B 02 + 39 00 00 00 00 00 02 3C 02 + 39 00 00 00 00 00 02 3D 1D + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 3F + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 5C + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 7B + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 9C + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 BE + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 DA + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B FA + 39 00 00 00 00 00 02 4C 03 + 39 00 00 00 00 00 02 4D 1C + 39 00 00 00 00 00 02 4E 03 + 39 00 00 00 00 00 02 4F 3C + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 5B + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 7B + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 A0 + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 BC + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 DB + 39 00 00 00 00 00 02 5A 00 + 39 01 00 00 00 00 02 5B 01 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 0D + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 1C + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 29 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 36 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 45 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 54 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 62 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 70 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 7D + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 8A + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 98 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 A7 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B B5 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D C2 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F D0 + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 DF + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 EE + 39 00 00 00 00 00 02 24 00 + 39 00 00 00 00 00 02 25 FD + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 0B + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 18 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 24 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 31 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 3C + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 4A + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 59 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 67 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 83 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 9E + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B B9 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D D4 + 39 00 00 00 00 00 02 3E 01 + 39 00 00 00 00 00 02 3F EE + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 0A + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 26 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 43 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 5C + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 77 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B 92 + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D AF + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F CA + 39 00 00 00 00 00 02 50 02 + 39 00 00 00 00 00 02 51 E4 + 39 00 00 00 00 00 02 52 02 + 39 00 00 00 00 00 02 53 FF + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 21 + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 39 + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 55 + 39 00 00 00 00 00 02 5A 03 + 39 01 00 00 00 00 02 5B 70 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 0A + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 13 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 25 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 30 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 3B + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 43 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 51 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 5F + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 6D + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 7B + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 87 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 94 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B A2 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D B0 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F BC + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 C9 + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 D6 + 39 00 00 00 00 00 02 24 00 + 39 00 00 00 00 00 02 25 E4 + 39 00 00 00 00 00 02 26 00 + 39 00 00 00 00 00 02 27 F2 + 39 00 00 00 00 00 02 28 00 + 39 00 00 00 00 00 02 29 FF + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 0B + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 18 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 23 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 2F + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 39 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 46 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 60 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 79 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B 93 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D AD + 39 00 00 00 00 00 02 3E 01 + 39 00 00 00 00 00 02 3F C5 + 39 00 00 00 00 00 02 40 01 + 39 00 00 00 00 00 02 41 DD + 39 00 00 00 00 00 02 42 01 + 39 00 00 00 00 00 02 43 F6 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 0F + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 29 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 43 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B 5A + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D 73 + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F 8C + 39 00 00 00 00 00 02 50 02 + 39 00 00 00 00 00 02 51 A6 + 39 00 00 00 00 00 02 52 02 + 39 00 00 00 00 00 02 53 C0 + 39 00 00 00 00 00 02 54 02 + 39 00 00 00 00 00 02 55 DB + 39 00 00 00 00 00 02 56 02 + 39 00 00 00 00 00 02 57 EF + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 0B + 39 00 00 00 00 00 02 5A 03 + 39 00 00 00 00 00 02 5B 25 + 39 00 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 04 FF 98 81 00]; + qcom,mdss-dsi-panel-cool-command = [ + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 A1 19 + 39 00 00 00 00 00 02 A2 29 + 39 00 00 00 00 00 02 A3 14 + 39 00 00 00 00 00 02 A4 18 + 39 00 00 00 00 00 02 A5 2A + 39 00 00 00 00 00 02 A6 20 + 39 00 00 00 00 00 02 A7 20 + 39 00 00 00 00 00 02 A8 91 + 39 00 00 00 00 00 02 A9 1C + 39 00 00 00 00 00 02 AA 28 + 39 00 00 00 00 00 02 AB 7E + 39 00 00 00 00 00 02 AC 1C + 39 00 00 00 00 00 02 AD 1C + 39 00 00 00 00 00 02 AE 51 + 39 00 00 00 00 00 02 AF 26 + 39 00 00 00 00 00 02 B0 2B + 39 00 00 00 00 00 02 B1 57 + 39 00 00 00 00 00 02 B2 66 + 39 00 00 00 00 00 02 B3 32 + 39 00 00 00 00 00 02 C0 00 + 39 00 00 00 00 00 02 C1 19 + 39 00 00 00 00 00 02 C2 29 + 39 00 00 00 00 00 02 C3 14 + 39 00 00 00 00 00 02 C4 18 + 39 00 00 00 00 00 02 C5 2A + 39 00 00 00 00 00 02 C6 20 + 39 00 00 00 00 00 02 C7 20 + 39 00 00 00 00 00 02 C8 91 + 39 00 00 00 00 00 02 C9 1C + 39 00 00 00 00 00 02 CA 28 + 39 00 00 00 00 00 02 CB 7E + 39 00 00 00 00 00 02 CC 1C + 39 00 00 00 00 00 02 CD 1C + 39 00 00 00 00 00 02 CE 51 + 39 00 00 00 00 00 02 CF 26 + 39 00 00 00 00 00 02 D0 2B + 39 00 00 00 00 00 02 D1 57 + 39 00 00 00 00 00 02 D2 66 + 39 01 00 00 00 00 02 D3 32 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 85 48 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 17 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 27 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 35 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 44 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 53 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 65 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 76 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 81 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 91 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 A5 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 B5 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 C4 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B D6 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D E9 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F FA + 39 00 00 00 00 00 02 20 01 + 39 00 00 00 00 00 02 21 08 + 39 00 00 00 00 00 02 22 01 + 39 00 00 00 00 00 02 23 17 + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 25 + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 34 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 42 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 54 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 64 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 74 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 83 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 92 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 A2 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 C2 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 E1 + 39 00 00 00 00 00 02 3A 02 + 39 00 00 00 00 00 02 3B 00 + 39 00 00 00 00 00 02 3C 02 + 39 00 00 00 00 00 02 3D 1F + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 41 + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 5F + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 7E + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 9F + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 C1 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 DD + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B FB + 39 00 00 00 00 00 02 4C 03 + 39 00 00 00 00 00 02 4D 20 + 39 00 00 00 00 00 02 4E 03 + 39 00 00 00 00 00 02 4F 3B + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 5B + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 7C + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 A0 + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 C3 + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 E3 + 39 00 00 00 00 00 02 5A 00 + 39 01 00 00 00 00 02 5B 00 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 12 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 21 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 2F + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 3D + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 4B + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 5A + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 69 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 77 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 85 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 94 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 A4 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 B3 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B C3 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D D1 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F E1 + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 EF + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 FF + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 11 + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 1F + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 2B + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 39 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 47 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 56 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 66 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 75 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 85 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 A1 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 BE + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B DB + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D F6 + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 14 + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 33 + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 4F + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 6C + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 8A + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 A9 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B C5 + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D E3 + 39 00 00 00 00 00 02 4E 03 + 39 00 00 00 00 00 02 4F 00 + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 21 + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 3F + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 61 + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 7C + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 9B + 39 00 00 00 00 00 02 5A 03 + 39 01 00 00 00 00 02 5B B6 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 09 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 16 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 26 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 36 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 43 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 4F + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 5E + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 6D + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 7D + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 8D + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 9E + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 AD + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B BE + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D CC + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F DC + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 EC + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 FC + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 0C + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 1A + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 27 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 35 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 42 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 51 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 60 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 6F + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 7E + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 9C + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 B9 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B D5 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D F1 + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 0E + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 2C + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 49 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 65 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 82 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 A0 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B BE + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D DA + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F F6 + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 17 + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 37 + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 56 + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 72 + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 8F + 39 00 00 00 00 00 02 5A 03 + 39 00 00 00 00 00 02 5B AB + 39 00 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 04 FF 98 81 00 ]; + qcom,mdss-dsi-panel-nature-command = [ + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 A1 18 + 39 00 00 00 00 00 02 A2 27 + 39 00 00 00 00 00 02 A3 15 + 39 00 00 00 00 00 02 A4 17 + 39 00 00 00 00 00 02 A5 2B + 39 00 00 00 00 00 02 A6 20 + 39 00 00 00 00 00 02 A7 22 + 39 00 00 00 00 00 02 A8 95 + 39 00 00 00 00 00 02 A9 1B + 39 00 00 00 00 00 02 AA 27 + 39 00 00 00 00 00 02 AB 87 + 39 00 00 00 00 00 02 AC 1D + 39 00 00 00 00 00 02 AD 1F + 39 00 00 00 00 00 02 AE 54 + 39 00 00 00 00 00 02 AF 28 + 39 00 00 00 00 00 02 B0 2C + 39 00 00 00 00 00 02 B1 5C + 39 00 00 00 00 00 02 B2 6A + 39 00 00 00 00 00 02 B3 32 + 39 00 00 00 00 00 02 C0 00 + 39 00 00 00 00 00 02 C1 18 + 39 00 00 00 00 00 02 C2 27 + 39 00 00 00 00 00 02 C3 15 + 39 00 00 00 00 00 02 C4 17 + 39 00 00 00 00 00 02 C5 2B + 39 00 00 00 00 00 02 C6 20 + 39 00 00 00 00 00 02 C7 22 + 39 00 00 00 00 00 02 C8 95 + 39 00 00 00 00 00 02 C9 1B + 39 00 00 00 00 00 02 CA 27 + 39 00 00 00 00 00 02 CB 87 + 39 00 00 00 00 00 02 CC 1D + 39 00 00 00 00 00 02 CD 1F + 39 00 00 00 00 00 02 CE 54 + 39 00 00 00 00 00 02 CF 28 + 39 00 00 00 00 00 02 D0 2C + 39 00 00 00 00 00 02 D1 5C + 39 00 00 00 00 00 02 D2 6A + 39 01 00 00 00 00 02 D3 32 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 85 48 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 17 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 26 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 36 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 47 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 58 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 69 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 7B + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 8C + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 9D + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 AF + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 BE + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 D0 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B E1 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D F5 + 39 00 00 00 00 00 02 1E 01 + 39 00 00 00 00 00 02 1F 07 + 39 00 00 00 00 00 02 20 01 + 39 00 00 00 00 00 02 21 19 + 39 00 00 00 00 00 02 22 01 + 39 00 00 00 00 00 02 23 28 + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 34 + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 44 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 55 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 66 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 76 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 86 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 95 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 A5 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 B4 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 D2 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 EF + 39 00 00 00 00 00 02 3A 02 + 39 00 00 00 00 00 02 3B 0E + 39 00 00 00 00 00 02 3C 02 + 39 00 00 00 00 00 02 3D 2D + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 4B + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 69 + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 87 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 A9 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 C4 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 DF + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B FF + 39 00 00 00 00 00 02 4C 03 + 39 00 00 00 00 00 02 4D 20 + 39 00 00 00 00 00 02 4E 03 + 39 00 00 00 00 00 02 4F 3F + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 5D + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 7C + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 A2 + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 C2 + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 DF + 39 00 00 00 00 00 02 5A 00 + 39 01 00 00 00 00 02 5B 00 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 14 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 22 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 30 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 40 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 4F + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 5E + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 6E + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 7E + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 8C + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 9C + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 AC + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 BB + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B C9 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D D9 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F EB + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 FC + 39 00 00 00 00 00 02 22 01 + 39 00 00 00 00 00 02 23 0C + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 1B + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 2A + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 37 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 46 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 56 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 66 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 74 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 83 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 91 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 AD + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 C8 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B E4 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D FF + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 1B + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 38 + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 53 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 6D + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 89 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 A6 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B C4 + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D E0 + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F FB + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 1B + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 39 + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 54 + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 71 + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 8C + 39 00 00 00 00 00 02 5A 03 + 39 01 00 00 00 00 02 5B A9 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 04 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 11 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 19 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 2F + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 3F + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 4D + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 5D + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 6F + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 80 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 8F + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 A0 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 B0 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B BE + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D CC + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F DD + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 EF + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 FF + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 0E + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 1D + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 2B + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 38 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 47 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 56 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 65 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 73 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 81 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 9C + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 B7 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B D1 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D EB + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 05 + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 20 + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 3C + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 55 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 70 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 8A + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B A7 + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D C4 + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F DD + 39 00 00 00 00 00 02 50 02 + 39 00 00 00 00 00 02 51 F8 + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 14 + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 32 + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 4B + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 67 + 39 00 00 00 00 00 02 5A 03 + 39 01 00 00 00 00 02 5B 81 + + 39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 E5 02 + 39 00 00 00 0A 00 04 FF 98 81 00 + 39 00 00 00 0A 00 02 11 00 + 39 00 00 00 00 00 04 FF 98 81 03 + 39 00 00 00 00 00 02 2C 0C + 39 01 00 00 00 00 04 FF 98 81 00]; + qcom,mdss-dsi-panel-gamma-command-state = "dsi_hs_mode"; + + qcom,mdss-dsi-init-last; + + qcom,mdss-dsi-panel-ce-std-command = [39 01 00 00 00 00 04 FF 98 81 02 + 39 01 00 00 00 00 04 FF 98 81 02 + 39 01 00 00 00 00 02 10 06 + 39 01 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 04 FF 98 81 00]; + qcom,mdss-dsi-panel-ce-vivid-command = [39 00 00 00 00 00 04 FF 98 81 02 + 39 00 00 00 00 00 04 FF 98 81 02 + 39 00 00 00 00 00 02 10 16 + 39 00 00 00 00 00 02 68 05 + 39 00 00 00 00 00 02 69 05 + 39 00 00 00 00 00 02 6a 06 + 39 00 00 00 00 00 02 6b 06 + 39 00 00 00 00 00 02 6c 06 + 39 00 00 00 00 00 02 6D 06 + 39 00 00 00 00 00 02 6E 06 + 39 00 00 00 00 00 02 6F 06 + 39 00 00 00 00 00 02 70 06 + 39 00 00 00 00 00 02 71 06 + 39 00 00 00 00 00 02 72 06 + 39 00 00 00 00 00 02 73 06 + 39 00 00 00 00 00 02 74 06 + 39 00 00 00 00 00 02 75 06 + 39 00 00 00 00 00 02 76 06 + 39 00 00 00 00 00 02 77 06 + 39 00 00 00 00 00 02 78 06 + 39 00 00 00 00 00 02 79 06 + 39 00 00 00 00 00 02 7A 06 + 39 00 00 00 00 00 02 7B 06 + 39 00 00 00 00 00 02 7C 06 + 39 00 00 00 00 00 02 7D 06 + 39 00 00 00 00 00 02 7E 05 + 39 00 00 00 00 00 02 7F 05 + 39 00 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 04 FF 98 81 00]; + qcom,mdss-dsi-panel-ce-command-state = "dsi_hs_mode"; + + qcom,mdss-dsi-panel-eye-command01 = [ + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 A1 17 + 39 00 00 00 00 00 02 A2 27 + 39 00 00 00 00 00 02 A3 16 + 39 00 00 00 00 00 02 A4 18 + 39 00 00 00 00 00 02 A5 2A + 39 00 00 00 00 00 02 A6 1F + 39 00 00 00 00 00 02 A7 21 + 39 00 00 00 00 00 02 A8 8C + 39 00 00 00 00 00 02 A9 1C + 39 00 00 00 00 00 02 AA 28 + 39 00 00 00 00 00 02 AB 78 + 39 00 00 00 00 00 02 AC 1C + 39 00 00 00 00 00 02 AD 1D + 39 00 00 00 00 00 02 AE 52 + 39 00 00 00 00 00 02 AF 28 + 39 00 00 00 00 00 02 B0 2B + 39 00 00 00 00 00 02 B1 56 + 39 00 00 00 00 00 02 B2 64 + 39 00 00 00 00 00 02 B3 32 + 39 00 00 00 00 00 02 C0 00 + 39 00 00 00 00 00 02 C1 17 + 39 00 00 00 00 00 02 C2 27 + 39 00 00 00 00 00 02 C3 16 + 39 00 00 00 00 00 02 C4 18 + 39 00 00 00 00 00 02 C5 2A + 39 00 00 00 00 00 02 C6 1F + 39 00 00 00 00 00 02 C7 21 + 39 00 00 00 00 00 02 C8 8C + 39 00 00 00 00 00 02 C9 1C + 39 00 00 00 00 00 02 CA 28 + 39 00 00 00 00 00 02 CB 78 + 39 00 00 00 00 00 02 CC 1C + 39 00 00 00 00 00 02 CD 1D + 39 00 00 00 00 00 02 CE 52 + 39 00 00 00 00 00 02 CF 28 + 39 00 00 00 00 00 02 D0 2B + 39 00 00 00 00 00 02 D1 56 + 39 00 00 00 00 00 02 D2 64 + 39 01 00 00 00 00 02 D3 32 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 85 48 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 17 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 24 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 33 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 43 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 52 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 61 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 71 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 7F + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 8E + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 9E + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 AE + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 BC + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B CA + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D DA + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F EB + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 FB + 39 00 00 00 00 00 02 22 01 + 39 00 00 00 00 00 02 23 0C + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 1A + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 26 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 33 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 42 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 52 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 63 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 74 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 85 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 95 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 B4 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 D3 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B F3 + 39 00 00 00 00 00 02 3C 02 + 39 00 00 00 00 00 02 3D 13 + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 34 + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 50 + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 70 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 93 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 B7 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 D5 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B F5 + 39 00 00 00 00 00 02 4C 03 + 39 00 00 00 00 00 02 4D 1A + 39 00 00 00 00 00 02 4E 03 + 39 00 00 00 00 00 02 4F 3A + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 5A + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 7A + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 9C + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 BE + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 DD + 39 00 00 00 00 00 02 5A 00 + 39 01 00 00 00 00 02 5B 00 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 0F + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 1D + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 2C + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 3A + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 48 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 55 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 63 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 71 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 7F + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 8B + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 99 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 A7 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B B5 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D C2 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F CE + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 DD + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 ED + 39 00 00 00 00 00 02 24 00 + 39 00 00 00 00 00 02 25 FB + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 09 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 16 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 23 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 2F + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 3B + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 49 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 58 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 67 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 84 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 A0 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B BC + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D D8 + 39 00 00 00 00 00 02 3E 01 + 39 00 00 00 00 00 02 3F F4 + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 11 + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 2E + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 4C + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 69 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 87 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B A7 + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D C6 + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F E1 + 39 00 00 00 00 00 02 50 02 + 39 00 00 00 00 00 02 51 FF + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 1E + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 3C + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 59 + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 77 + 39 00 00 00 00 00 02 5A 03 + 39 01 00 00 00 00 02 5B 93 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 05 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 0D + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 1B + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 2C + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 39 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 44 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 52 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 60 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 6F + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 7D + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 8A + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 98 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B A6 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D B3 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F BF + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 CB + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 D9 + 39 00 00 00 00 00 02 24 00 + 39 00 00 00 00 00 02 25 E8 + 39 00 00 00 00 00 02 26 00 + 39 00 00 00 00 00 02 27 F5 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 03 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 10 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 1C + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 28 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 33 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 3F + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 4C + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 69 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 84 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B 9E + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D B8 + 39 00 00 00 00 00 02 3E 01 + 39 00 00 00 00 00 02 3F D3 + 39 00 00 00 00 00 02 40 01 + 39 00 00 00 00 00 02 41 EC + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 07 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 22 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 3F + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 5A + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B 75 + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D 92 + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F B0 + 39 00 00 00 00 00 02 50 02 + 39 00 00 00 00 00 02 51 CB + 39 00 00 00 00 00 02 52 02 + 39 00 00 00 00 00 02 53 E5 + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 01 + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 21 + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 3A + 39 00 00 00 00 00 02 5A 03 + 39 00 00 00 00 00 02 5B 55 + 39 00 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 04 FF 98 81 00]; + qcom,mdss-dsi-panel-eye-command02 = [ + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 A1 17 + 39 00 00 00 00 00 02 A2 27 + 39 00 00 00 00 00 02 A3 16 + 39 00 00 00 00 00 02 A4 18 + 39 00 00 00 00 00 02 A5 2A + 39 00 00 00 00 00 02 A6 1F + 39 00 00 00 00 00 02 A7 21 + 39 00 00 00 00 00 02 A8 8C + 39 00 00 00 00 00 02 A9 1C + 39 00 00 00 00 00 02 AA 28 + 39 00 00 00 00 00 02 AB 78 + 39 00 00 00 00 00 02 AC 1C + 39 00 00 00 00 00 02 AD 1D + 39 00 00 00 00 00 02 AE 52 + 39 00 00 00 00 00 02 AF 28 + 39 00 00 00 00 00 02 B0 2B + 39 00 00 00 00 00 02 B1 56 + 39 00 00 00 00 00 02 B2 64 + 39 00 00 00 00 00 02 B3 32 + 39 00 00 00 00 00 02 C0 00 + 39 00 00 00 00 00 02 C1 17 + 39 00 00 00 00 00 02 C2 27 + 39 00 00 00 00 00 02 C3 16 + 39 00 00 00 00 00 02 C4 18 + 39 00 00 00 00 00 02 C5 2A + 39 00 00 00 00 00 02 C6 1F + 39 00 00 00 00 00 02 C7 21 + 39 00 00 00 00 00 02 C8 8C + 39 00 00 00 00 00 02 C9 1C + 39 00 00 00 00 00 02 CA 28 + 39 00 00 00 00 00 02 CB 78 + 39 00 00 00 00 00 02 CC 1C + 39 00 00 00 00 00 02 CD 1D + 39 00 00 00 00 00 02 CE 52 + 39 00 00 00 00 00 02 CF 28 + 39 00 00 00 00 00 02 D0 2B + 39 00 00 00 00 00 02 D1 56 + 39 00 00 00 00 00 02 D2 64 + 39 01 00 00 00 00 02 D3 32 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 85 48 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 18 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 24 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 34 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 43 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 53 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 62 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 71 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 80 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 8E + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 9E + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 AE + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 BC + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B CB + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D DA + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F EB + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 FB + 39 00 00 00 00 00 02 22 01 + 39 00 00 00 00 00 02 23 0C + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 1A + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 26 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 34 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 42 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 52 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 63 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 75 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 85 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 95 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 B4 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 D3 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B F3 + 39 00 00 00 00 00 02 3C 02 + 39 00 00 00 00 00 02 3D 13 + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 34 + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 50 + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 70 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 93 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 B7 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 D5 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B F5 + 39 00 00 00 00 00 02 4C 03 + 39 00 00 00 00 00 02 4D 1A + 39 00 00 00 00 00 02 4E 03 + 39 00 00 00 00 00 02 4F 3A + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 5A + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 7A + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 9C + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 BE + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 DD + 39 00 00 00 00 00 02 5A 00 + 39 01 00 00 00 00 02 5B 00 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 0E + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 1D + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 2A + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 38 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 46 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 53 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 60 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 6D + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 7B + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 88 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 95 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 A3 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B B1 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D BD + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F C9 + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 D7 + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 E6 + 39 00 00 00 00 00 02 24 00 + 39 00 00 00 00 00 02 25 F4 + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 02 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 0F + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 1C + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 28 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 34 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 40 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 4E + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 5D + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 79 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 95 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B B0 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D CB + 39 00 00 00 00 00 02 3E 01 + 39 00 00 00 00 00 02 3F E6 + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 02 + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 1E + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 3C + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 58 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 75 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B 93 + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D B2 + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F CE + 39 00 00 00 00 00 02 50 02 + 39 00 00 00 00 00 02 51 E9 + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 06 + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 26 + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 42 + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 5F + 39 00 00 00 00 00 02 5A 03 + 39 01 00 00 00 00 02 5B 7B + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 04 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 0B + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 14 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 27 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 34 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 3E + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 4C + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 5A + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 69 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 77 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 83 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 90 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B 9D + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D AB + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F B7 + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 C3 + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 CE + 39 00 00 00 00 00 02 24 00 + 39 00 00 00 00 00 02 25 DC + 39 00 00 00 00 00 02 26 00 + 39 00 00 00 00 00 02 27 EA + 39 00 00 00 00 00 02 28 00 + 39 00 00 00 00 00 02 29 F7 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 04 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 10 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 1C + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 27 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 32 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 3C + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 57 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 71 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B 8B + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D A5 + 39 00 00 00 00 00 02 3E 01 + 39 00 00 00 00 00 02 3F BE + 39 00 00 00 00 00 02 40 01 + 39 00 00 00 00 00 02 41 D7 + 39 00 00 00 00 00 02 42 01 + 39 00 00 00 00 00 02 43 F0 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 09 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 23 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 3E + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B 58 + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D 72 + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F 8E + 39 00 00 00 00 00 02 50 02 + 39 00 00 00 00 00 02 51 AA + 39 00 00 00 00 00 02 52 02 + 39 00 00 00 00 00 02 53 C5 + 39 00 00 00 00 00 02 54 02 + 39 00 00 00 00 00 02 55 DE + 39 00 00 00 00 00 02 56 02 + 39 00 00 00 00 00 02 57 F7 + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 15 + 39 00 00 00 00 00 02 5A 03 + 39 00 00 00 00 00 02 5B 31 + 39 00 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 04 FF 98 81 00 ]; + qcom,mdss-dsi-panel-eye-command03 = [ + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 A1 17 + 39 00 00 00 00 00 02 A2 27 + 39 00 00 00 00 00 02 A3 16 + 39 00 00 00 00 00 02 A4 18 + 39 00 00 00 00 00 02 A5 2A + 39 00 00 00 00 00 02 A6 1F + 39 00 00 00 00 00 02 A7 21 + 39 00 00 00 00 00 02 A8 8C + 39 00 00 00 00 00 02 A9 1C + 39 00 00 00 00 00 02 AA 28 + 39 00 00 00 00 00 02 AB 78 + 39 00 00 00 00 00 02 AC 1C + 39 00 00 00 00 00 02 AD 1D + 39 00 00 00 00 00 02 AE 52 + 39 00 00 00 00 00 02 AF 28 + 39 00 00 00 00 00 02 B0 2B + 39 00 00 00 00 00 02 B1 56 + 39 00 00 00 00 00 02 B2 64 + 39 00 00 00 00 00 02 B3 32 + 39 00 00 00 00 00 02 C0 00 + 39 00 00 00 00 00 02 C1 17 + 39 00 00 00 00 00 02 C2 27 + 39 00 00 00 00 00 02 C3 16 + 39 00 00 00 00 00 02 C4 18 + 39 00 00 00 00 00 02 C5 2A + 39 00 00 00 00 00 02 C6 1F + 39 00 00 00 00 00 02 C7 21 + 39 00 00 00 00 00 02 C8 8C + 39 00 00 00 00 00 02 C9 1C + 39 00 00 00 00 00 02 CA 28 + 39 00 00 00 00 00 02 CB 78 + 39 00 00 00 00 00 02 CC 1C + 39 00 00 00 00 00 02 CD 1D + 39 00 00 00 00 00 02 CE 52 + 39 00 00 00 00 00 02 CF 28 + 39 00 00 00 00 00 02 D0 2B + 39 00 00 00 00 00 02 D1 56 + 39 00 00 00 00 00 02 D2 64 + 39 01 00 00 00 00 02 D3 32 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 85 48 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 19 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 25 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 35 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 44 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 53 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 62 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 72 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 80 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 8E + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 9E + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 AE + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 BC + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B CB + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D DA + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F EB + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 FC + 39 00 00 00 00 00 02 22 01 + 39 00 00 00 00 00 02 23 0C + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 1A + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 26 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 34 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 42 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 52 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 63 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 75 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 85 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 95 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 B4 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 D3 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B F3 + 39 00 00 00 00 00 02 3C 02 + 39 00 00 00 00 00 02 3D 13 + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 34 + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 50 + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 70 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 93 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 B7 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 D5 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B F5 + 39 00 00 00 00 00 02 4C 03 + 39 00 00 00 00 00 02 4D 1A + 39 00 00 00 00 00 02 4E 03 + 39 00 00 00 00 00 02 4F 3A + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 5A + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 7A + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 9C + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 BE + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 DD + 39 00 00 00 00 00 02 5A 00 + 39 01 00 00 00 00 02 5B 00 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 0E + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 1C + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 2A + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 37 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 45 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 52 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 5E + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 6B + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 79 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 86 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 92 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 A0 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B AD + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D BA + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F C6 + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 D4 + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 E1 + 39 00 00 00 00 00 02 24 00 + 39 00 00 00 00 00 02 25 F0 + 39 00 00 00 00 00 02 26 00 + 39 00 00 00 00 00 02 27 FE + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 0B + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 17 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 24 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 2F + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 3B + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 48 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 56 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 72 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 8D + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B A9 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D C3 + 39 00 00 00 00 00 02 3E 01 + 39 00 00 00 00 00 02 3F DE + 39 00 00 00 00 00 02 40 01 + 39 00 00 00 00 00 02 41 F9 + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 14 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 31 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 4D + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 69 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B 85 + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D A4 + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F C2 + 39 00 00 00 00 00 02 50 02 + 39 00 00 00 00 00 02 51 DC + 39 00 00 00 00 00 02 52 02 + 39 00 00 00 00 00 02 53 F7 + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 14 + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 33 + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 4E + 39 00 00 00 00 00 02 5A 03 + 39 01 00 00 00 00 02 5B 6C + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 05 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 0D + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 16 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 22 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 2F + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 38 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 47 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 55 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 63 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 70 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 7D + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 89 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B 96 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D A2 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F AF + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 BA + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 C6 + 39 00 00 00 00 00 02 24 00 + 39 00 00 00 00 00 02 25 D1 + 39 00 00 00 00 00 02 26 00 + 39 00 00 00 00 00 02 27 DE + 39 00 00 00 00 00 02 28 00 + 39 00 00 00 00 00 02 29 EB + 39 00 00 00 00 00 02 2A 00 + 39 00 00 00 00 00 02 2B F8 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 04 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 10 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 1B + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 26 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 30 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 46 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 5F + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B 79 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D 92 + 39 00 00 00 00 00 02 3E 01 + 39 00 00 00 00 00 02 3F AA + 39 00 00 00 00 00 02 40 01 + 39 00 00 00 00 00 02 41 C2 + 39 00 00 00 00 00 02 42 01 + 39 00 00 00 00 00 02 43 DA + 39 00 00 00 00 00 02 44 01 + 39 00 00 00 00 00 02 45 F2 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 0A + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 23 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B 3D + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D 56 + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F 6E + 39 00 00 00 00 00 02 50 02 + 39 00 00 00 00 00 02 51 88 + 39 00 00 00 00 00 02 52 02 + 39 00 00 00 00 00 02 53 A3 + 39 00 00 00 00 00 02 54 02 + 39 00 00 00 00 00 02 55 BF + 39 00 00 00 00 00 02 56 02 + 39 00 00 00 00 00 02 57 D5 + 39 00 00 00 00 00 02 58 02 + 39 00 00 00 00 00 02 59 EE + 39 00 00 00 00 00 02 5A 03 + 39 00 00 00 00 00 02 5B 08 + 39 00 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 04 FF 98 81 00 ]; + qcom,mdss-dsi-panel-eye-command04 = [ + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 A1 17 + 39 00 00 00 00 00 02 A2 27 + 39 00 00 00 00 00 02 A3 16 + 39 00 00 00 00 00 02 A4 18 + 39 00 00 00 00 00 02 A5 2A + 39 00 00 00 00 00 02 A6 1F + 39 00 00 00 00 00 02 A7 21 + 39 00 00 00 00 00 02 A8 8C + 39 00 00 00 00 00 02 A9 1C + 39 00 00 00 00 00 02 AA 28 + 39 00 00 00 00 00 02 AB 78 + 39 00 00 00 00 00 02 AC 1C + 39 00 00 00 00 00 02 AD 1D + 39 00 00 00 00 00 02 AE 52 + 39 00 00 00 00 00 02 AF 28 + 39 00 00 00 00 00 02 B0 2B + 39 00 00 00 00 00 02 B1 56 + 39 00 00 00 00 00 02 B2 64 + 39 00 00 00 00 00 02 B3 32 + 39 00 00 00 00 00 02 C0 00 + 39 00 00 00 00 00 02 C1 17 + 39 00 00 00 00 00 02 C2 27 + 39 00 00 00 00 00 02 C3 16 + 39 00 00 00 00 00 02 C4 18 + 39 00 00 00 00 00 02 C5 2A + 39 00 00 00 00 00 02 C6 1F + 39 00 00 00 00 00 02 C7 21 + 39 00 00 00 00 00 02 C8 8C + 39 00 00 00 00 00 02 C9 1C + 39 00 00 00 00 00 02 CA 28 + 39 00 00 00 00 00 02 CB 78 + 39 00 00 00 00 00 02 CC 1C + 39 00 00 00 00 00 02 CD 1D + 39 00 00 00 00 00 02 CE 52 + 39 00 00 00 00 00 02 CF 28 + 39 00 00 00 00 00 02 D0 2B + 39 00 00 00 00 00 02 D1 56 + 39 00 00 00 00 00 02 D2 64 + 39 01 00 00 00 00 02 D3 32 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 85 48 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 1A + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 26 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 35 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 44 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 54 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 63 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 72 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 80 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 8F + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 9E + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 AE + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 BD + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B CB + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D DA + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F EB + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 FC + 39 00 00 00 00 00 02 22 01 + 39 00 00 00 00 00 02 23 0C + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 1A + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 27 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 34 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 42 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 53 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 63 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 75 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 85 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 95 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 B4 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 D3 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B F3 + 39 00 00 00 00 00 02 3C 02 + 39 00 00 00 00 00 02 3D 13 + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 34 + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 50 + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 70 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 93 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 B7 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 D5 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B F5 + 39 00 00 00 00 00 02 4C 03 + 39 00 00 00 00 00 02 4D 1A + 39 00 00 00 00 00 02 4E 03 + 39 00 00 00 00 00 02 4F 3A + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 5A + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 7A + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 9C + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 BE + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 DD + 39 00 00 00 00 00 02 5A 00 + 39 01 00 00 00 00 02 5B 00 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 0E + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 1B + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 29 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 36 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 43 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 50 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 5C + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 69 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 76 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 82 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 8E + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 9C + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B A9 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D B6 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F C2 + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 CD + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 DB + 39 00 00 00 00 00 02 24 00 + 39 00 00 00 00 00 02 25 E9 + 39 00 00 00 00 00 02 26 00 + 39 00 00 00 00 00 02 27 F7 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 04 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 10 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 1C + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 28 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 33 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 3F + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 4D + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 68 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 83 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B 9E + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D B8 + 39 00 00 00 00 00 02 3E 01 + 39 00 00 00 00 00 02 3F D2 + 39 00 00 00 00 00 02 40 01 + 39 00 00 00 00 00 02 41 EB + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 06 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 21 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 3E + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 58 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B 74 + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D 90 + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F AF + 39 00 00 00 00 00 02 50 02 + 39 00 00 00 00 00 02 51 CA + 39 00 00 00 00 00 02 52 02 + 39 00 00 00 00 00 02 53 E3 + 39 00 00 00 00 00 02 54 02 + 39 00 00 00 00 00 02 55 FF + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 1C + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 39 + 39 00 00 00 00 00 02 5A 03 + 39 01 00 00 00 00 02 5B 53 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 04 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 09 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 11 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 1B + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 29 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 31 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 41 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 50 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 5C + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 69 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 76 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 82 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B 8D + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D 99 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F A6 + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 B1 + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 BC + 39 00 00 00 00 00 02 24 00 + 39 00 00 00 00 00 02 25 C7 + 39 00 00 00 00 00 02 26 00 + 39 00 00 00 00 00 02 27 D2 + 39 00 00 00 00 00 02 28 00 + 39 00 00 00 00 00 02 29 DE + 39 00 00 00 00 00 02 2A 00 + 39 00 00 00 00 00 02 2B EB + 39 00 00 00 00 00 02 2C 00 + 39 00 00 00 00 00 02 2D F7 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 03 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 0E + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 19 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 23 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 37 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 4D + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B 66 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D 7E + 39 00 00 00 00 00 02 3E 01 + 39 00 00 00 00 00 02 3F 95 + 39 00 00 00 00 00 02 40 01 + 39 00 00 00 00 00 02 41 AC + 39 00 00 00 00 00 02 42 01 + 39 00 00 00 00 00 02 43 C2 + 39 00 00 00 00 00 02 44 01 + 39 00 00 00 00 00 02 45 D9 + 39 00 00 00 00 00 02 46 01 + 39 00 00 00 00 00 02 47 F0 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 07 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B 1F + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D 38 + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F 4F + 39 00 00 00 00 00 02 50 02 + 39 00 00 00 00 00 02 51 67 + 39 00 00 00 00 00 02 52 02 + 39 00 00 00 00 00 02 53 7F + 39 00 00 00 00 00 02 54 02 + 39 00 00 00 00 00 02 55 99 + 39 00 00 00 00 00 02 56 02 + 39 00 00 00 00 00 02 57 B3 + 39 00 00 00 00 00 02 58 02 + 39 00 00 00 00 00 02 59 CA + 39 00 00 00 00 00 02 5A 02 + 39 00 00 00 00 00 02 5B E0 + 39 00 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 04 FF 98 81 00]; + qcom,mdss-dsi-panel-eye-command05 = [ + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 A1 17 + 39 00 00 00 00 00 02 A2 27 + 39 00 00 00 00 00 02 A3 16 + 39 00 00 00 00 00 02 A4 18 + 39 00 00 00 00 00 02 A5 2A + 39 00 00 00 00 00 02 A6 1F + 39 00 00 00 00 00 02 A7 21 + 39 00 00 00 00 00 02 A8 8C + 39 00 00 00 00 00 02 A9 1C + 39 00 00 00 00 00 02 AA 28 + 39 00 00 00 00 00 02 AB 78 + 39 00 00 00 00 00 02 AC 1C + 39 00 00 00 00 00 02 AD 1D + 39 00 00 00 00 00 02 AE 52 + 39 00 00 00 00 00 02 AF 28 + 39 00 00 00 00 00 02 B0 2B + 39 00 00 00 00 00 02 B1 56 + 39 00 00 00 00 00 02 B2 64 + 39 00 00 00 00 00 02 B3 32 + 39 00 00 00 00 00 02 C0 00 + 39 00 00 00 00 00 02 C1 17 + 39 00 00 00 00 00 02 C2 27 + 39 00 00 00 00 00 02 C3 16 + 39 00 00 00 00 00 02 C4 18 + 39 00 00 00 00 00 02 C5 2A + 39 00 00 00 00 00 02 C6 1F + 39 00 00 00 00 00 02 C7 21 + 39 00 00 00 00 00 02 C8 8C + 39 00 00 00 00 00 02 C9 1C + 39 00 00 00 00 00 02 CA 28 + 39 00 00 00 00 00 02 CB 78 + 39 00 00 00 00 00 02 CC 1C + 39 00 00 00 00 00 02 CD 1D + 39 00 00 00 00 00 02 CE 52 + 39 00 00 00 00 00 02 CF 28 + 39 00 00 00 00 00 02 D0 2B + 39 00 00 00 00 00 02 D1 56 + 39 00 00 00 00 00 02 D2 64 + 39 01 00 00 00 00 02 D3 32 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 85 48 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 1B + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 27 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 36 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 45 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 54 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 63 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 73 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 81 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 8F + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 9F + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 AE + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 BD + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B CB + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D DA + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F EB + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 FC + 39 00 00 00 00 00 02 22 01 + 39 00 00 00 00 00 02 23 0C + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 1B + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 27 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 34 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 42 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 53 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 63 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 75 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 85 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 95 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 B4 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 D3 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B F3 + 39 00 00 00 00 00 02 3C 02 + 39 00 00 00 00 00 02 3D 13 + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 34 + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 50 + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 70 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 93 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 B7 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 D5 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B F5 + 39 00 00 00 00 00 02 4C 03 + 39 00 00 00 00 00 02 4D 1A + 39 00 00 00 00 00 02 4E 03 + 39 00 00 00 00 00 02 4F 3A + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 5A + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 7A + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 9C + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 BE + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 DD + 39 00 00 00 00 00 02 5A 00 + 39 01 00 00 00 00 02 5B 00 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 0D + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 1A + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 28 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 34 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 42 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 4E + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 5A + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 66 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 73 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 80 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 8B + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 98 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B A5 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D B2 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F BD + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 C9 + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 D6 + 39 00 00 00 00 00 02 24 00 + 39 00 00 00 00 00 02 25 E3 + 39 00 00 00 00 00 02 26 00 + 39 00 00 00 00 00 02 27 F1 + 39 00 00 00 00 00 02 28 00 + 39 00 00 00 00 00 02 29 FE + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 0A + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 16 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 22 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 2D + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 38 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 44 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 5F + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 79 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B 94 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D AD + 39 00 00 00 00 00 02 3E 01 + 39 00 00 00 00 00 02 3F C7 + 39 00 00 00 00 00 02 40 01 + 39 00 00 00 00 00 02 41 E0 + 39 00 00 00 00 00 02 42 01 + 39 00 00 00 00 00 02 43 F9 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 14 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 2F + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 4A + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B 64 + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D 7F + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F 9C + 39 00 00 00 00 00 02 50 02 + 39 00 00 00 00 00 02 51 BA + 39 00 00 00 00 00 02 52 02 + 39 00 00 00 00 00 02 53 D2 + 39 00 00 00 00 00 02 54 02 + 39 00 00 00 00 00 02 55 EC + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 07 + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 24 + 39 00 00 00 00 00 02 5A 03 + 39 01 00 00 00 00 02 5B 3F + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 03 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 08 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 0F + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 16 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 21 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 2A + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 3A + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 49 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 56 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 63 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 6F + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 7B + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B 86 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D 91 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F 9D + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 A8 + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 B3 + 39 00 00 00 00 00 02 24 00 + 39 00 00 00 00 00 02 25 BD + 39 00 00 00 00 00 02 26 00 + 39 00 00 00 00 00 02 27 C8 + 39 00 00 00 00 00 02 28 00 + 39 00 00 00 00 00 02 29 D2 + 39 00 00 00 00 00 02 2A 00 + 39 00 00 00 00 00 02 2B DE + 39 00 00 00 00 00 02 2C 00 + 39 00 00 00 00 00 02 2D EA + 39 00 00 00 00 00 02 2E 00 + 39 00 00 00 00 00 02 2F F5 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 01 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 0C + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 16 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 2A + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 3C + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B 53 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D 6B + 39 00 00 00 00 00 02 3E 01 + 39 00 00 00 00 00 02 3F 81 + 39 00 00 00 00 00 02 40 01 + 39 00 00 00 00 00 02 41 97 + 39 00 00 00 00 00 02 42 01 + 39 00 00 00 00 00 02 43 AD + 39 00 00 00 00 00 02 44 01 + 39 00 00 00 00 00 02 45 C2 + 39 00 00 00 00 00 02 46 01 + 39 00 00 00 00 00 02 47 D8 + 39 00 00 00 00 00 02 48 01 + 39 00 00 00 00 00 02 49 ED + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B 03 + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D 1A + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F 31 + 39 00 00 00 00 00 02 50 02 + 39 00 00 00 00 00 02 51 48 + 39 00 00 00 00 00 02 52 02 + 39 00 00 00 00 00 02 53 5F + 39 00 00 00 00 00 02 54 02 + 39 00 00 00 00 00 02 55 75 + 39 00 00 00 00 00 02 56 02 + 39 00 00 00 00 00 02 57 8D + 39 00 00 00 00 00 02 58 02 + 39 00 00 00 00 00 02 59 A5 + 39 00 00 00 00 00 02 5A 02 + 39 00 00 00 00 00 02 5B BF + 39 00 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 04 FF 98 81 00]; + qcom,mdss-dsi-panel-eye-command06 = [ + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 A1 17 + 39 00 00 00 00 00 02 A2 27 + 39 00 00 00 00 00 02 A3 16 + 39 00 00 00 00 00 02 A4 18 + 39 00 00 00 00 00 02 A5 2A + 39 00 00 00 00 00 02 A6 1F + 39 00 00 00 00 00 02 A7 21 + 39 00 00 00 00 00 02 A8 8C + 39 00 00 00 00 00 02 A9 1C + 39 00 00 00 00 00 02 AA 28 + 39 00 00 00 00 00 02 AB 78 + 39 00 00 00 00 00 02 AC 1C + 39 00 00 00 00 00 02 AD 1D + 39 00 00 00 00 00 02 AE 52 + 39 00 00 00 00 00 02 AF 28 + 39 00 00 00 00 00 02 B0 2B + 39 00 00 00 00 00 02 B1 56 + 39 00 00 00 00 00 02 B2 64 + 39 00 00 00 00 00 02 B3 32 + 39 00 00 00 00 00 02 C0 00 + 39 00 00 00 00 00 02 C1 17 + 39 00 00 00 00 00 02 C2 27 + 39 00 00 00 00 00 02 C3 16 + 39 00 00 00 00 00 02 C4 18 + 39 00 00 00 00 00 02 C5 2A + 39 00 00 00 00 00 02 C6 1F + 39 00 00 00 00 00 02 C7 21 + 39 00 00 00 00 00 02 C8 8C + 39 00 00 00 00 00 02 C9 1C + 39 00 00 00 00 00 02 CA 28 + 39 00 00 00 00 00 02 CB 78 + 39 00 00 00 00 00 02 CC 1C + 39 00 00 00 00 00 02 CD 1D + 39 00 00 00 00 00 02 CE 52 + 39 00 00 00 00 00 02 CF 28 + 39 00 00 00 00 00 02 D0 2B + 39 00 00 00 00 00 02 D1 56 + 39 00 00 00 00 00 02 D2 64 + 39 01 00 00 00 00 02 D3 32 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 85 48 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 1B + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 28 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 37 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 45 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 55 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 64 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 73 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 81 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 90 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 9F + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 AE + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 BD + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B CB + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D DA + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F EC + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 FC + 39 00 00 00 00 00 02 22 01 + 39 00 00 00 00 00 02 23 0C + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 1B + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 27 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 34 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 42 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 53 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 63 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 75 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 85 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 95 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 B4 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 D4 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B F3 + 39 00 00 00 00 00 02 3C 02 + 39 00 00 00 00 00 02 3D 13 + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 34 + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 50 + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 70 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 93 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 B7 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 D5 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B F5 + 39 00 00 00 00 00 02 4C 03 + 39 00 00 00 00 00 02 4D 1A + 39 00 00 00 00 00 02 4E 03 + 39 00 00 00 00 00 02 4F 3A + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 5A + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 7A + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 9C + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 BE + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 DD + 39 00 00 00 00 00 02 5A 00 + 39 01 00 00 00 00 02 5B 00 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 0D + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 1A + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 27 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 33 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 40 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 4C + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 58 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 64 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 71 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 7D + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 88 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 94 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B A1 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D AE + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F B9 + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 C5 + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 D0 + 39 00 00 00 00 00 02 24 00 + 39 00 00 00 00 00 02 25 DD + 39 00 00 00 00 00 02 26 00 + 39 00 00 00 00 00 02 27 EB + 39 00 00 00 00 00 02 28 00 + 39 00 00 00 00 00 02 29 F8 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 05 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 10 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 1C + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 27 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 32 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 3D + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 57 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 71 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B 8A + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D A4 + 39 00 00 00 00 00 02 3E 01 + 39 00 00 00 00 00 02 3F BD + 39 00 00 00 00 00 02 40 01 + 39 00 00 00 00 00 02 41 D5 + 39 00 00 00 00 00 02 42 01 + 39 00 00 00 00 00 02 43 EE + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 07 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 21 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 3D + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B 56 + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D 70 + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F 8C + 39 00 00 00 00 00 02 50 02 + 39 00 00 00 00 00 02 51 A7 + 39 00 00 00 00 00 02 52 02 + 39 00 00 00 00 00 02 53 C3 + 39 00 00 00 00 00 02 54 02 + 39 00 00 00 00 00 02 55 DB + 39 00 00 00 00 00 02 56 02 + 39 00 00 00 00 00 02 57 F4 + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 11 + 39 00 00 00 00 00 02 5A 03 + 39 01 00 00 00 00 02 5B 2E + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 02 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 06 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 0B + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 11 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 19 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 22 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 33 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 43 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 51 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 5C + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 68 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 74 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B 7F + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D 89 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F 94 + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 9F + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 AA + 39 00 00 00 00 00 02 24 00 + 39 00 00 00 00 00 02 25 B5 + 39 00 00 00 00 00 02 26 00 + 39 00 00 00 00 00 02 27 BE + 39 00 00 00 00 00 02 28 00 + 39 00 00 00 00 00 02 29 C8 + 39 00 00 00 00 00 02 2A 00 + 39 00 00 00 00 00 02 2B D2 + 39 00 00 00 00 00 02 2C 00 + 39 00 00 00 00 00 02 2D DD + 39 00 00 00 00 00 02 2E 00 + 39 00 00 00 00 00 02 2F E9 + 39 00 00 00 00 00 02 30 00 + 39 00 00 00 00 00 02 31 F4 + 39 00 00 00 00 00 02 32 00 + 39 00 00 00 00 00 02 33 FE + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 09 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 1C + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 2F + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B 41 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D 57 + 39 00 00 00 00 00 02 3E 01 + 39 00 00 00 00 00 02 3F 6D + 39 00 00 00 00 00 02 40 01 + 39 00 00 00 00 00 02 41 83 + 39 00 00 00 00 00 02 42 01 + 39 00 00 00 00 00 02 43 98 + 39 00 00 00 00 00 02 44 01 + 39 00 00 00 00 00 02 45 AD + 39 00 00 00 00 00 02 46 01 + 39 00 00 00 00 00 02 47 C1 + 39 00 00 00 00 00 02 48 01 + 39 00 00 00 00 00 02 49 D6 + 39 00 00 00 00 00 02 4A 01 + 39 00 00 00 00 00 02 4B EA + 39 00 00 00 00 00 02 4C 01 + 39 00 00 00 00 00 02 4D FF + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F 14 + 39 00 00 00 00 00 02 50 02 + 39 00 00 00 00 00 02 51 2A + 39 00 00 00 00 00 02 52 02 + 39 00 00 00 00 00 02 53 40 + 39 00 00 00 00 00 02 54 02 + 39 00 00 00 00 00 02 55 56 + 39 00 00 00 00 00 02 56 02 + 39 00 00 00 00 00 02 57 6B + 39 00 00 00 00 00 02 58 02 + 39 00 00 00 00 00 02 59 81 + 39 00 00 00 00 00 02 5A 02 + 39 00 00 00 00 00 02 5B 99 + 39 00 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 04 FF 98 81 00]; + qcom,mdss-dsi-panel-eye-command07 = [ + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 A1 17 + 39 00 00 00 00 00 02 A2 27 + 39 00 00 00 00 00 02 A3 16 + 39 00 00 00 00 00 02 A4 18 + 39 00 00 00 00 00 02 A5 2A + 39 00 00 00 00 00 02 A6 1F + 39 00 00 00 00 00 02 A7 21 + 39 00 00 00 00 00 02 A8 8C + 39 00 00 00 00 00 02 A9 1C + 39 00 00 00 00 00 02 AA 28 + 39 00 00 00 00 00 02 AB 78 + 39 00 00 00 00 00 02 AC 1C + 39 00 00 00 00 00 02 AD 1D + 39 00 00 00 00 00 02 AE 52 + 39 00 00 00 00 00 02 AF 28 + 39 00 00 00 00 00 02 B0 2B + 39 00 00 00 00 00 02 B1 56 + 39 00 00 00 00 00 02 B2 64 + 39 00 00 00 00 00 02 B3 32 + 39 00 00 00 00 00 02 C0 00 + 39 00 00 00 00 00 02 C1 17 + 39 00 00 00 00 00 02 C2 27 + 39 00 00 00 00 00 02 C3 16 + 39 00 00 00 00 00 02 C4 18 + 39 00 00 00 00 00 02 C5 2A + 39 00 00 00 00 00 02 C6 1F + 39 00 00 00 00 00 02 C7 21 + 39 00 00 00 00 00 02 C8 8C + 39 00 00 00 00 00 02 C9 1C + 39 00 00 00 00 00 02 CA 28 + 39 00 00 00 00 00 02 CB 78 + 39 00 00 00 00 00 02 CC 1C + 39 00 00 00 00 00 02 CD 1D + 39 00 00 00 00 00 02 CE 52 + 39 00 00 00 00 00 02 CF 28 + 39 00 00 00 00 00 02 D0 2B + 39 00 00 00 00 00 02 D1 56 + 39 00 00 00 00 00 02 D2 64 + 39 01 00 00 00 00 02 D3 32 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 85 48 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 1C + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 29 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 37 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 46 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 55 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 64 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 74 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 82 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 90 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 9F + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 AF + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 BD + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B CB + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D DA + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F EC + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 FC + 39 00 00 00 00 00 02 22 01 + 39 00 00 00 00 00 02 23 0C + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 1B + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 27 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 34 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 42 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 53 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 63 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 75 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 85 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 95 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 B4 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 D4 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B F3 + 39 00 00 00 00 00 02 3C 02 + 39 00 00 00 00 00 02 3D 13 + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 34 + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 50 + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 70 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 93 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 B7 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 D5 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B F5 + 39 00 00 00 00 00 02 4C 03 + 39 00 00 00 00 00 02 4D 1A + 39 00 00 00 00 00 02 4E 03 + 39 00 00 00 00 00 02 4F 3A + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 5A + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 7A + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 9C + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 BE + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 DD + 39 00 00 00 00 00 02 5A 00 + 39 01 00 00 00 00 02 5B 00 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 0C + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 19 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 26 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 32 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 3E + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 4B + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 56 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 62 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 6E + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 7A + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 85 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 91 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B 9D + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D AA + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F B6 + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 C1 + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 CB + 39 00 00 00 00 00 02 24 00 + 39 00 00 00 00 00 02 25 D8 + 39 00 00 00 00 00 02 26 00 + 39 00 00 00 00 00 02 27 E5 + 39 00 00 00 00 00 02 28 00 + 39 00 00 00 00 00 02 29 F2 + 39 00 00 00 00 00 02 2A 00 + 39 00 00 00 00 00 02 2B FF + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 0B + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 16 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 21 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 2C + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 36 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 4E + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 68 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B 81 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D 9A + 39 00 00 00 00 00 02 3E 01 + 39 00 00 00 00 00 02 3F B2 + 39 00 00 00 00 00 02 40 01 + 39 00 00 00 00 00 02 41 CA + 39 00 00 00 00 00 02 42 01 + 39 00 00 00 00 00 02 43 E2 + 39 00 00 00 00 00 02 44 01 + 39 00 00 00 00 00 02 45 FB + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 14 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 2E + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B 48 + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D 62 + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F 7B + 39 00 00 00 00 00 02 50 02 + 39 00 00 00 00 00 02 51 97 + 39 00 00 00 00 00 02 52 02 + 39 00 00 00 00 00 02 53 B3 + 39 00 00 00 00 00 02 54 02 + 39 00 00 00 00 00 02 55 CC + 39 00 00 00 00 00 02 56 02 + 39 00 00 00 00 00 02 57 E3 + 39 00 00 00 00 00 02 58 02 + 39 00 00 00 00 00 02 59 FD + 39 00 00 00 00 00 02 5A 03 + 39 01 00 00 00 00 02 5B 17 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 01 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 03 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 05 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 07 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 0A + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 14 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 2A + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 3C + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 4A + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 56 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 61 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 6C + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B 77 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D 81 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F 8B + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 95 + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 A0 + 39 00 00 00 00 00 02 24 00 + 39 00 00 00 00 00 02 25 AA + 39 00 00 00 00 00 02 26 00 + 39 00 00 00 00 00 02 27 B4 + 39 00 00 00 00 00 02 28 00 + 39 00 00 00 00 00 02 29 BD + 39 00 00 00 00 00 02 2A 00 + 39 00 00 00 00 00 02 2B C7 + 39 00 00 00 00 00 02 2C 00 + 39 00 00 00 00 00 02 2D D0 + 39 00 00 00 00 00 02 2E 00 + 39 00 00 00 00 00 02 2F DA + 39 00 00 00 00 00 02 30 00 + 39 00 00 00 00 00 02 31 E5 + 39 00 00 00 00 00 02 32 00 + 39 00 00 00 00 00 02 33 F0 + 39 00 00 00 00 00 02 34 00 + 39 00 00 00 00 00 02 35 FA + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 0E + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 20 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B 31 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D 43 + 39 00 00 00 00 00 02 3E 01 + 39 00 00 00 00 00 02 3F 58 + 39 00 00 00 00 00 02 40 01 + 39 00 00 00 00 00 02 41 6D + 39 00 00 00 00 00 02 42 01 + 39 00 00 00 00 00 02 43 81 + 39 00 00 00 00 00 02 44 01 + 39 00 00 00 00 00 02 45 95 + 39 00 00 00 00 00 02 46 01 + 39 00 00 00 00 00 02 47 A9 + 39 00 00 00 00 00 02 48 01 + 39 00 00 00 00 00 02 49 BD + 39 00 00 00 00 00 02 4A 01 + 39 00 00 00 00 00 02 4B D0 + 39 00 00 00 00 00 02 4C 01 + 39 00 00 00 00 00 02 4D E3 + 39 00 00 00 00 00 02 4E 01 + 39 00 00 00 00 00 02 4F F7 + 39 00 00 00 00 00 02 50 02 + 39 00 00 00 00 00 02 51 0B + 39 00 00 00 00 00 02 52 02 + 39 00 00 00 00 00 02 53 1F + 39 00 00 00 00 00 02 54 02 + 39 00 00 00 00 00 02 55 34 + 39 00 00 00 00 00 02 56 02 + 39 00 00 00 00 00 02 57 49 + 39 00 00 00 00 00 02 58 02 + 39 00 00 00 00 00 02 59 5D + 39 00 00 00 00 00 02 5A 02 + 39 00 00 00 00 00 02 5B 71 + 39 00 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 04 FF 98 81 00 ]; + qcom,mdss-dsi-panel-eye-command08 = [ + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 A1 17 + 39 00 00 00 00 00 02 A2 27 + 39 00 00 00 00 00 02 A3 16 + 39 00 00 00 00 00 02 A4 18 + 39 00 00 00 00 00 02 A5 2A + 39 00 00 00 00 00 02 A6 1F + 39 00 00 00 00 00 02 A7 21 + 39 00 00 00 00 00 02 A8 8C + 39 00 00 00 00 00 02 A9 1C + 39 00 00 00 00 00 02 AA 28 + 39 00 00 00 00 00 02 AB 78 + 39 00 00 00 00 00 02 AC 1C + 39 00 00 00 00 00 02 AD 1D + 39 00 00 00 00 00 02 AE 52 + 39 00 00 00 00 00 02 AF 28 + 39 00 00 00 00 00 02 B0 2B + 39 00 00 00 00 00 02 B1 56 + 39 00 00 00 00 00 02 B2 64 + 39 00 00 00 00 00 02 B3 32 + 39 00 00 00 00 00 02 C0 00 + 39 00 00 00 00 00 02 C1 17 + 39 00 00 00 00 00 02 C2 27 + 39 00 00 00 00 00 02 C3 16 + 39 00 00 00 00 00 02 C4 18 + 39 00 00 00 00 00 02 C5 2A + 39 00 00 00 00 00 02 C6 1F + 39 00 00 00 00 00 02 C7 21 + 39 00 00 00 00 00 02 C8 8C + 39 00 00 00 00 00 02 C9 1C + 39 00 00 00 00 00 02 CA 28 + 39 00 00 00 00 00 02 CB 78 + 39 00 00 00 00 00 02 CC 1C + 39 00 00 00 00 00 02 CD 1D + 39 00 00 00 00 00 02 CE 52 + 39 00 00 00 00 00 02 CF 28 + 39 00 00 00 00 00 02 D0 2B + 39 00 00 00 00 00 02 D1 56 + 39 00 00 00 00 00 02 D2 64 + 39 01 00 00 00 00 02 D3 32 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 85 48 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 1D + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 1F + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 38 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 47 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 56 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 65 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 74 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 82 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 91 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 A0 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 AF + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 BD + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B CC + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D DB + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F EC + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 FC + 39 00 00 00 00 00 02 22 01 + 39 00 00 00 00 00 02 23 0D + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 1B + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 27 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 34 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 42 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 53 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 64 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 75 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 85 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 95 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 B4 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 D4 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B F3 + 39 00 00 00 00 00 02 3C 02 + 39 00 00 00 00 00 02 3D 13 + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 34 + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 50 + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 70 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 93 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 B7 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 D5 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B F5 + 39 00 00 00 00 00 02 4C 03 + 39 00 00 00 00 00 02 4D 1A + 39 00 00 00 00 00 02 4E 03 + 39 00 00 00 00 00 02 4F 3A + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 5A + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 7A + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 9C + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 BE + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 DD + 39 00 00 00 00 00 02 5A 00 + 39 01 00 00 00 00 02 5B 00 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 0B + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 0C + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 24 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 30 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 3C + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 49 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 54 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 5F + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 6A + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 77 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 82 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 8C + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B 99 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D A5 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F B1 + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 BC + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 C6 + 39 00 00 00 00 00 02 24 00 + 39 00 00 00 00 00 02 25 D2 + 39 00 00 00 00 00 02 26 00 + 39 00 00 00 00 00 02 27 DE + 39 00 00 00 00 00 02 28 00 + 39 00 00 00 00 00 02 29 EB + 39 00 00 00 00 00 02 2A 00 + 39 00 00 00 00 00 02 2B F7 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 04 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 0F + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 1A + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 25 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 2F + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 44 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 5E + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B 76 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D 8E + 39 00 00 00 00 00 02 3E 01 + 39 00 00 00 00 00 02 3F A6 + 39 00 00 00 00 00 02 40 01 + 39 00 00 00 00 00 02 41 BE + 39 00 00 00 00 00 02 42 01 + 39 00 00 00 00 00 02 43 D5 + 39 00 00 00 00 00 02 44 01 + 39 00 00 00 00 00 02 45 EC + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 04 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 1D + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B 37 + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D 50 + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F 68 + 39 00 00 00 00 00 02 50 02 + 39 00 00 00 00 00 02 51 81 + 39 00 00 00 00 00 02 52 02 + 39 00 00 00 00 00 02 53 9C + 39 00 00 00 00 00 02 54 02 + 39 00 00 00 00 00 02 55 B8 + 39 00 00 00 00 00 02 56 02 + 39 00 00 00 00 00 02 57 CF + 39 00 00 00 00 00 02 58 02 + 39 00 00 00 00 00 02 59 E6 + 39 00 00 00 00 00 02 5A 02 + 39 01 00 00 00 00 02 5B FF + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 02 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 03 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 0C + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 11 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 17 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 1B + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 1F + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 33 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 42 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 4F + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 59 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 64 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B 6E + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D 79 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F 82 + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 8B + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 95 + 39 00 00 00 00 00 02 24 00 + 39 00 00 00 00 00 02 25 9F + 39 00 00 00 00 00 02 26 00 + 39 00 00 00 00 00 02 27 A9 + 39 00 00 00 00 00 02 28 00 + 39 00 00 00 00 00 02 29 B3 + 39 00 00 00 00 00 02 2A 00 + 39 00 00 00 00 00 02 2B BB + 39 00 00 00 00 00 02 2C 00 + 39 00 00 00 00 00 02 2D C4 + 39 00 00 00 00 00 02 2E 00 + 39 00 00 00 00 00 02 2F CC + 39 00 00 00 00 00 02 30 00 + 39 00 00 00 00 00 02 31 D7 + 39 00 00 00 00 00 02 32 00 + 39 00 00 00 00 00 02 33 E0 + 39 00 00 00 00 00 02 34 00 + 39 00 00 00 00 00 02 35 EB + 39 00 00 00 00 00 02 36 00 + 39 00 00 00 00 00 02 37 FE + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 10 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B 21 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D 31 + 39 00 00 00 00 00 02 3E 01 + 39 00 00 00 00 00 02 3F 42 + 39 00 00 00 00 00 02 40 01 + 39 00 00 00 00 00 02 41 55 + 39 00 00 00 00 00 02 42 01 + 39 00 00 00 00 00 02 43 6A + 39 00 00 00 00 00 02 44 01 + 39 00 00 00 00 00 02 45 7D + 39 00 00 00 00 00 02 46 01 + 39 00 00 00 00 00 02 47 90 + 39 00 00 00 00 00 02 48 01 + 39 00 00 00 00 00 02 49 A2 + 39 00 00 00 00 00 02 4A 01 + 39 00 00 00 00 00 02 4B B4 + 39 00 00 00 00 00 02 4C 01 + 39 00 00 00 00 00 02 4D C7 + 39 00 00 00 00 00 02 4E 01 + 39 00 00 00 00 00 02 4F D9 + 39 00 00 00 00 00 02 50 01 + 39 00 00 00 00 00 02 51 EB + 39 00 00 00 00 00 02 52 01 + 39 00 00 00 00 00 02 53 FE + 39 00 00 00 00 00 02 54 02 + 39 00 00 00 00 00 02 55 11 + 39 00 00 00 00 00 02 56 02 + 39 00 00 00 00 00 02 57 24 + 39 00 00 00 00 00 02 58 02 + 39 00 00 00 00 00 02 59 39 + 39 00 00 00 00 00 02 5A 02 + 39 00 00 00 00 00 02 5B 4B + 39 00 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 04 FF 98 81 00]; + qcom,mdss-dsi-panel-eye-command-num = <8>; + + qcom,mdss-dsi-h-sync-pulse = <1>; + qcom,mdss-dsi-traffic-mode = "burst_mode"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + + qcom,mdss-dsi-panel-timings = [8B 1E 14 00 44 48 18 22 19 03 04 00]; + qcom,mdss-dsi-t-clk-post = <0x04>; + qcom,mdss-dsi-t-clk-pre = <0x1c>; + qcom,mdss-dsi-bl-min-level = <4>; + qcom,mdss-dsi-bl-max-level = <255>; + qcom,mdss-dsi-bl-pmic-pwm-frequency = <100>; + qcom,mdss-dsi-bl-pmic-bank-select = <0>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm"; + qcom,mdss-dsi-pwm-gpio = <&pm8937_mpps 4 0>; + + qcom,esd-check-enabled; + qcom,mdss-dsi-panel-status-command = [06 01 00 01 05 00 02 0A 08]; + qcom,mdss-dsi-panel-status-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-panel-status-check-mode = "reg_read"; + qcom,mdss-dsi-panel-status-valid-params = <1>; + qcom,mdss-dsi-panel-status-value = <0x9c>; + qcom,mdss-dsi-panel-status-read-length = <1>; + + qcom,mdss-dsi-lp11-init; + qcom,mdss-dsi-init-delay-us = <50000>; + qcom,mdss-dsi-reset-sequence = <1 5>, <0 10>, <1 80>; + + }; +}; diff --git a/arch/arm/boot/dts/qcom/dsi-panel-ili9881c-ebbgDJN-720p-video.dtsi b/arch/arm/boot/dts/qcom/dsi-panel-ili9881c-ebbgDJN-720p-video.dtsi new file mode 100644 index 0000000000000..a55a2fe3aa615 --- /dev/null +++ b/arch/arm/boot/dts/qcom/dsi-panel-ili9881c-ebbgDJN-720p-video.dtsi @@ -0,0 +1,819 @@ +/* Copyright (c) 2013, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/*--------------------------------------------------------------------------- + * This file is autogenerated file using gcdb parser. Please do not edit it. + * Update input XML file to add a new entry or update variable in this file + * VERSION = "1.0" + *---------------------------------------------------------------------------*/ +&mdss_mdp { + dsi_ili9881c_ebbgDJN_720p_video: qcom,mdss_dsi_ili9881c_ebbgDJN_720p_video { + qcom,mdss-dsi-panel-name = "ili9881c_HD720p_video_EbbgDJN"; + qcom,mdss-dsi-panel-controller = <&mdss_dsi0>; + qcom,mdss-dsi-panel-type = "dsi_video_mode"; + qcom,mdss-dsi-panel-destination = "display_1"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <720>; + qcom,mdss-dsi-panel-height = <1280>; + qcom,mdss-pan-physical-width-dimension = <62>; + qcom,mdss-pan-physical-height-dimension = <110>; + qcom,mdss-dsi-h-front-porch = <114>; + qcom,mdss-dsi-h-back-porch = <180>; + qcom,mdss-dsi-h-pulse-width = <8>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <18>; + qcom,mdss-dsi-v-front-porch = <10>; + qcom,mdss-dsi-v-pulse-width = <4>; + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-underflow-color = <0x00>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-on-command = [39 00 00 00 00 00 05 FF 98 81 00 FF + 39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 E5 00 + 39 00 00 00 0A 00 04 FF 98 81 00 + 39 00 00 00 0A 00 04 FF 98 81 00 + 39 00 00 00 B4 00 02 11 00 + 39 00 00 00 00 00 02 29 00 + 39 00 00 00 0A 00 02 35 00 + 39 00 00 00 00 00 03 51 0F FF + 39 00 00 00 00 00 02 53 2C + 39 00 00 00 00 00 02 55 00 + 39 00 00 00 00 00 02 68 05 + 39 00 00 00 00 00 03 5E 00 FF + 39 00 00 00 00 00 04 FF 98 81 03 + 39 00 00 00 00 00 04 FF 98 81 03 + 39 00 00 00 00 00 02 2C 0C + 39 00 00 00 00 00 04 FF 98 81 02 + 39 00 00 00 00 00 04 FF 98 81 02 + 39 00 00 00 00 00 02 04 16 + 39 00 00 00 00 00 02 05 22 + 39 00 00 00 00 00 02 06 40 + 39 00 00 00 00 00 02 07 04 + 39 01 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 04 FF 98 81 00 + ]; + qcom,mdss-dsi-off-command = [ + 39 00 00 00 00 00 04 FF 98 81 00 + 39 00 00 00 00 00 04 FF 98 81 00 + 05 00 00 00 0A 00 02 28 00 + 05 01 00 00 96 00 02 10 00]; + qcom,mdss-dsi-on-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-panel-warm-command = [39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 A1 1A + 39 00 00 00 00 00 02 A2 29 + 39 00 00 00 00 00 02 A3 15 + 39 00 00 00 00 00 02 A4 18 + 39 00 00 00 00 00 02 A5 2B + 39 00 00 00 00 00 02 A6 1F + 39 00 00 00 00 00 02 A7 20 + 39 00 00 00 00 00 02 A8 8D + 39 00 00 00 00 00 02 A9 1C + 39 00 00 00 00 00 02 AA 28 + 39 00 00 00 00 00 02 AB 76 + 39 00 00 00 00 00 02 AC 1A + 39 00 00 00 00 00 02 AD 1A + 39 00 00 00 00 00 02 AE 4F + 39 00 00 00 00 00 02 AF 23 + 39 00 00 00 00 00 02 B0 29 + 39 00 00 00 00 00 02 B1 4F + 39 00 00 00 00 00 02 B2 5D + 39 00 00 00 00 00 02 B3 32 + 39 00 00 00 00 00 02 C0 00 + 39 00 00 00 00 00 02 C1 1A + 39 00 00 00 00 00 02 C2 29 + 39 00 00 00 00 00 02 C3 15 + 39 00 00 00 00 00 02 C4 18 + 39 00 00 00 00 00 02 C5 2B + 39 00 00 00 00 00 02 C6 1F + 39 00 00 00 00 00 02 C7 20 + 39 00 00 00 00 00 02 C8 8D + 39 00 00 00 00 00 02 C9 1C + 39 00 00 00 00 00 02 CA 28 + 39 00 00 00 00 00 02 CB 76 + 39 00 00 00 00 00 02 CC 1A + 39 00 00 00 00 00 02 CD 1A + 39 00 00 00 00 00 02 CE 4F + 39 00 00 00 00 00 02 CF 23 + 39 00 00 00 00 00 02 D0 29 + 39 00 00 00 00 00 02 D1 4F + 39 00 00 00 00 00 02 D2 5D + 39 01 00 00 00 00 02 D3 32 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 85 48 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 17 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 28 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 39 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 4C + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 5F + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 73 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 83 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 93 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 A6 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 B6 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 C6 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 D7 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B E6 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D F7 + 39 00 00 00 00 00 02 1E 01 + 39 00 00 00 00 00 02 1F 08 + 39 00 00 00 00 00 02 20 01 + 39 00 00 00 00 00 02 21 18 + 39 00 00 00 00 00 02 22 01 + 39 00 00 00 00 00 02 23 28 + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 37 + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 48 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 58 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 69 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 79 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 89 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 98 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 A8 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 B7 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 D6 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 F5 + 39 00 00 00 00 00 02 3A 02 + 39 00 00 00 00 00 02 3B 14 + 39 00 00 00 00 00 02 3C 02 + 39 00 00 00 00 00 02 3D 34 + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 53 + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 71 + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 91 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 AC + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 C9 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 E6 + 39 00 00 00 00 00 02 4A 03 + 39 00 00 00 00 00 02 4B 04 + 39 00 00 00 00 00 02 4C 03 + 39 00 00 00 00 00 02 4D 26 + 39 00 00 00 00 00 02 4E 03 + 39 00 00 00 00 00 02 4F 43 + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 63 + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 81 + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 A1 + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 BF + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 E5 + 39 00 00 00 00 00 02 5A 03 + 39 01 00 00 00 00 02 5B FF + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 12 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 24 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 33 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 42 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 52 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 62 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 72 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 80 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 8E + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 9D + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 AD + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 BB + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B C8 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D D7 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F E8 + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 F8 + 39 00 00 00 00 00 02 22 01 + 39 00 00 00 00 00 02 23 07 + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 16 + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 23 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 30 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 3E + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 4C + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 5A + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 68 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 77 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 85 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 A0 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 BB + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B D6 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D F1 + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 0C + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 28 + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 45 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 5E + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 78 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 95 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B B3 + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D CC + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F E6 + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 00 + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 1E + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 39 + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 53 + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 70 + 39 00 00 00 00 00 02 5A 03 + 39 01 00 00 00 00 02 5B 8A + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 0E + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 24 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 34 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 41 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 4C + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 56 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 64 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 73 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 81 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 8D + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 9B + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 AA + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B B8 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D C4 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F D1 + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 E0 + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 EF + 39 00 00 00 00 00 02 24 00 + 39 00 00 00 00 00 02 25 FD + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 0B + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 18 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 24 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 31 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 3D + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 4A + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 58 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 65 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 7F + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 98 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B B1 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D C9 + 39 00 00 00 00 00 02 3E 01 + 39 00 00 00 00 00 02 3F E2 + 39 00 00 00 00 00 02 40 01 + 39 00 00 00 00 00 02 41 FA + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 14 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 2D + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 47 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 5E + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B 76 + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D 90 + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F AB + 39 00 00 00 00 00 02 50 02 + 39 00 00 00 00 00 02 51 C4 + 39 00 00 00 00 00 02 52 02 + 39 00 00 00 00 00 02 53 DA + 39 00 00 00 00 00 02 54 02 + 39 00 00 00 00 00 02 55 F2 + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 0C + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 27 + 39 00 00 00 00 00 02 5A 03 + 39 00 00 00 00 00 02 5B 3E + 39 00 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 04 FF 98 81 00]; + + qcom,mdss-dsi-panel-cool-command = [39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 A1 1C + 39 00 00 00 00 00 02 A2 2B + 39 00 00 00 00 00 02 A3 15 + 39 00 00 00 00 00 02 A4 19 + 39 00 00 00 00 00 02 A5 2C + 39 00 00 00 00 00 02 A6 20 + 39 00 00 00 00 00 02 A7 21 + 39 00 00 00 00 00 02 A8 95 + 39 00 00 00 00 00 02 A9 1C + 39 00 00 00 00 00 02 AA 27 + 39 00 00 00 00 00 02 AB 7F + 39 00 00 00 00 00 02 AC 1C + 39 00 00 00 00 00 02 AD 1D + 39 00 00 00 00 00 02 AE 52 + 39 00 00 00 00 00 02 AF 27 + 39 00 00 00 00 00 02 B0 2B + 39 00 00 00 00 00 02 B1 56 + 39 00 00 00 00 00 02 B2 63 + 39 00 00 00 00 00 02 B3 32 + 39 00 00 00 00 00 02 C0 00 + 39 00 00 00 00 00 02 C1 1C + 39 00 00 00 00 00 02 C2 2B + 39 00 00 00 00 00 02 C3 15 + 39 00 00 00 00 00 02 C4 19 + 39 00 00 00 00 00 02 C5 2C + 39 00 00 00 00 00 02 C6 20 + 39 00 00 00 00 00 02 C7 21 + 39 00 00 00 00 00 02 C8 95 + 39 00 00 00 00 00 02 C9 1C + 39 00 00 00 00 00 02 CA 27 + 39 00 00 00 00 00 02 CB 7F + 39 00 00 00 00 00 02 CC 1C + 39 00 00 00 00 00 02 CD 1D + 39 00 00 00 00 00 02 CE 52 + 39 00 00 00 00 00 02 CF 27 + 39 00 00 00 00 00 02 D0 2B + 39 00 00 00 00 00 02 D1 56 + 39 00 00 00 00 00 02 D2 63 + 39 01 00 00 00 00 02 D3 32 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 85 48 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 18 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 29 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 3A + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 4C + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 5E + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 71 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 82 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 92 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 A4 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 B4 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 C5 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 D6 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B E9 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D FB + 39 00 00 00 00 00 02 1E 01 + 39 00 00 00 00 00 02 1F 08 + 39 00 00 00 00 00 02 20 01 + 39 00 00 00 00 00 02 21 18 + 39 00 00 00 00 00 02 22 01 + 39 00 00 00 00 00 02 23 28 + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 37 + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 46 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 57 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 67 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 78 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 88 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 97 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 A7 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 B6 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 D5 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 F4 + 39 00 00 00 00 00 02 3A 02 + 39 00 00 00 00 00 02 3B 13 + 39 00 00 00 00 00 02 3C 02 + 39 00 00 00 00 00 02 3D 34 + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 53 + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 70 + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 8F + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 B0 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 CE + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 EB + 39 00 00 00 00 00 02 4A 03 + 39 00 00 00 00 00 02 4B 0B + 39 00 00 00 00 00 02 4C 03 + 39 00 00 00 00 00 02 4D 2D + 39 00 00 00 00 00 02 4E 03 + 39 00 00 00 00 00 02 4F 49 + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 6A + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 87 + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 A7 + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 C6 + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 E2 + 39 00 00 00 00 00 02 5A 00 + 39 01 00 00 00 00 02 5B 00 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 13 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 25 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 36 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 46 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 57 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 67 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 78 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 87 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 96 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 A7 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 B7 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 C6 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B D5 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D E6 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F F7 + 39 00 00 00 00 00 02 20 01 + 39 00 00 00 00 00 02 21 08 + 39 00 00 00 00 00 02 22 01 + 39 00 00 00 00 00 02 23 17 + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 25 + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 33 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 42 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 51 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 61 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 70 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 7F + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 8E + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 9C + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 B9 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 D6 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B F4 + 39 00 00 00 00 00 02 3C 02 + 39 00 00 00 00 00 02 3D 13 + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 32 + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 4F + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 6A + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 87 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 A6 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 C4 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B DE + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D FB + 39 00 00 00 00 00 02 4E 03 + 39 00 00 00 00 00 02 4F 1A + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 37 + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 53 + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 72 + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 8E + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 AB + 39 00 00 00 00 00 02 5A 03 + 39 01 00 00 00 00 02 5B C9 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 0D + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 22 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 35 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 46 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 54 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 61 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 71 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 82 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 91 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 A2 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 B2 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 C1 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B D0 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D E2 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F F2 + 39 00 00 00 00 00 02 20 01 + 39 00 00 00 00 00 02 21 03 + 39 00 00 00 00 00 02 22 01 + 39 00 00 00 00 00 02 23 12 + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 20 + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 2E + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 3B + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 4B + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 5A + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 69 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 78 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 87 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 95 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 B1 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 CE + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B EC + 39 00 00 00 00 00 02 3C 02 + 39 00 00 00 00 00 02 3D 0A + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 29 + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 47 + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 61 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 7D + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 9B + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 BA + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B D4 + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D EF + 39 00 00 00 00 00 02 4E 03 + 39 00 00 00 00 00 02 4F 0C + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 2C + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 46 + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 64 + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 80 + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 9E + 39 00 00 00 00 00 02 5A 03 + 39 00 00 00 00 00 02 5B BA + 39 00 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 04 FF 98 81 00]; + qcom,mdss-dsi-panel-nature-command = [39 01 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 E5 02 + 39 00 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 02 11 00 + 39 01 00 00 00 00 04 FF 98 81 03 + 39 01 00 00 00 00 04 FF 98 81 03 + 39 01 00 00 00 00 02 2C 0C + 39 01 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 04 FF 98 81 00]; + + qcom,mdss-dsi-panel-gamma-command-state = "dsi_hs_mode"; + + qcom,mdss-dsi-init-last; + qcom,mdss-dsi-panel-ce-std-command = [39 01 00 00 00 00 04 FF 98 81 02 + 39 01 00 00 00 00 04 FF 98 81 02 + 39 01 00 00 00 00 02 10 06 + 39 01 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 02 55 00]; + qcom,mdss-dsi-panel-ce-vivid-command = [39 00 00 00 00 00 04 FF 98 81 02 + 39 00 00 00 00 00 04 FF 98 81 02 + 39 00 00 00 00 00 02 10 16 + 39 00 00 00 00 00 02 68 02 + 39 00 00 00 00 00 02 69 03 + 39 00 00 00 00 00 02 6A 03 + 39 00 00 00 00 00 02 6B 03 + 39 00 00 00 00 00 02 6C 00 + 39 00 00 00 00 00 02 6D 04 + 39 00 00 00 00 00 02 6E 04 + 39 00 00 00 00 00 02 6F 05 + 39 00 00 00 00 00 02 70 05 + 39 00 00 00 00 00 02 71 05 + 39 00 00 00 00 00 02 72 03 + 39 00 00 00 00 00 02 73 01 + 39 00 00 00 00 00 02 74 01 + 39 00 00 00 00 00 02 75 02 + 39 00 00 00 00 00 02 76 04 + 39 00 00 00 00 00 02 77 02 + 39 00 00 00 00 00 02 78 02 + 39 00 00 00 00 00 02 79 02 + 39 00 00 00 00 00 02 7A 02 + 39 00 00 00 00 00 02 7B 02 + 39 00 00 00 00 00 02 7C 02 + 39 00 00 00 00 00 02 7D 02 + 39 00 00 00 00 00 02 7E 02 + 39 00 00 00 00 00 02 7F 02 + 39 00 00 00 00 00 04 FF 98 81 00 + 39 00 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 02 55 01]; + + qcom,mdss-dsi-panel-ce-command-state = "dsi_hs_mode"; + + qcom,mdss-dsi-h-sync-pulse = <1>; + qcom,mdss-dsi-traffic-mode = "burst_mode"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + + qcom,mdss-dsi-panel-timings = [8B 1E 14 00 44 48 18 30 19 03 04 00]; + qcom,mdss-dsi-t-clk-post = <0x04>; + qcom,mdss-dsi-t-clk-pre = <0x1C>; + qcom,mdss-dsi-bl-min-level = <1>; + qcom,mdss-dsi-bl-max-level = <4095>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled"; + qcom,mdss-dsi-lp11-init; + qcom,mdss-dsi-init-delay-us = <20000>; + qcom,mdss-dsi-reset-sequence = <1 5>, <0 10>, <1 80>; + qcom,mdss-night-brightness = <8 26 46 68>; + + qcom,esd-check-enabled; + + qcom,mdss-dsi-panel-status-command = [06 01 00 01 05 00 02 0A 08 + 06 01 00 01 05 00 02 0D 08]; + qcom,mdss-dsi-panel-status-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-panel-status-check-mode = "reg_read"; + qcom,mdss-dsi-panel-status-valid-params = <1 1>; + qcom,mdss-dsi-panel-status-value = <0x9c 0x00>; + qcom,mdss-dsi-panel-status-read-length = <1 1>; + }; +}; diff --git a/arch/arm/boot/dts/qcom/dsi-panel-ili9881c-ebbgDJN-c3b-720p-video.dtsi b/arch/arm/boot/dts/qcom/dsi-panel-ili9881c-ebbgDJN-c3b-720p-video.dtsi new file mode 100644 index 0000000000000..61d549f4fadb3 --- /dev/null +++ b/arch/arm/boot/dts/qcom/dsi-panel-ili9881c-ebbgDJN-c3b-720p-video.dtsi @@ -0,0 +1,3748 @@ +/* Copyright (c) 2013, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/*--------------------------------------------------------------------------- + * This file is autogenerated file using gcdb parser. Please do not edit it. + * Update input XML file to add a new entry or update variable in this file + * VERSION = "1.0" + *---------------------------------------------------------------------------*/ +&mdss_mdp { + dsi_ili9881c_ebbgDJN_720p_video: qcom,mdss_dsi_ili9881c_ebbgDJN_c3b_720p_video { + qcom,mdss-dsi-panel-name = "ili9881c_HD720p_video_EbbgDJN_c3b"; + qcom,mdss-dsi-panel-controller = <&mdss_dsi0>; + qcom,mdss-dsi-panel-type = "dsi_video_mode"; + qcom,mdss-dsi-panel-destination = "display_1"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <720>; + qcom,mdss-dsi-panel-height = <1280>; + qcom,mdss-pan-physical-width-dimension = <62>; + qcom,mdss-pan-physical-height-dimension = <110>; + qcom,mdss-dsi-h-front-porch = <112>; + qcom,mdss-dsi-h-back-porch = <180>; + qcom,mdss-dsi-h-pulse-width = <8>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <18>; + qcom,mdss-dsi-v-front-porch = <12>; + qcom,mdss-dsi-v-pulse-width = <4>; + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-underflow-color = <0x00>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-on-command = [39 01 00 00 00 00 04 FF 98 81 04 + 39 01 00 00 00 00 04 FF 98 81 04 + 39 01 00 00 00 00 02 E5 00 + 39 01 00 00 0A 00 04 FF 98 81 00 + 39 01 00 00 96 00 02 11 00 + 39 01 00 00 00 00 02 29 00 + 39 01 00 00 0A 00 02 35 00 + 39 00 00 00 00 00 04 FF 98 81 03 + 39 00 00 00 00 00 02 2C 0C + 39 01 00 00 00 00 04 FF 98 81 00]; + qcom,mdss-dsi-off-command = [39 00 00 00 00 00 04 FF 98 81 00 + 05 00 00 00 0A 00 02 28 00 + 05 01 00 00 96 00 02 10 00]; + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-panel-warm-command = [39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 A1 17 + 39 00 00 00 00 00 02 A2 27 + 39 00 00 00 00 00 02 A3 14 + 39 00 00 00 00 00 02 A4 17 + 39 00 00 00 00 00 02 A5 29 + 39 00 00 00 00 00 02 A6 1F + 39 00 00 00 00 00 02 A7 20 + 39 00 00 00 00 00 02 A8 89 + 39 00 00 00 00 00 02 A9 1D + 39 00 00 00 00 00 02 AA 29 + 39 00 00 00 00 00 02 AB 74 + 39 00 00 00 00 00 02 AC 1B + 39 00 00 00 00 00 02 AD 1A + 39 00 00 00 00 00 02 AE 4F + 39 00 00 00 00 00 02 AF 23 + 39 00 00 00 00 00 02 B0 27 + 39 00 00 00 00 00 02 B1 4F + 39 00 00 00 00 00 02 B2 5D + 39 00 00 00 00 00 02 B3 32 + 39 00 00 00 00 00 02 C0 00 + 39 00 00 00 00 00 02 C1 17 + 39 00 00 00 00 00 02 C2 27 + 39 00 00 00 00 00 02 C3 14 + 39 00 00 00 00 00 02 C4 17 + 39 00 00 00 00 00 02 C5 29 + 39 00 00 00 00 00 02 C6 1F + 39 00 00 00 00 00 02 C7 20 + 39 00 00 00 00 00 02 C8 89 + 39 00 00 00 00 00 02 C9 1D + 39 00 00 00 00 00 02 CA 29 + 39 00 00 00 00 00 02 CB 74 + 39 00 00 00 00 00 02 CC 1B + 39 00 00 00 00 00 02 CD 1A + 39 00 00 00 00 00 02 CE 4F + 39 00 00 00 00 00 02 CF 23 + 39 00 00 00 00 00 02 D0 27 + 39 00 00 00 00 00 02 D1 4F + 39 00 00 00 00 00 02 D2 5D + 39 01 00 00 00 00 02 D3 32 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 85 48 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 13 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 22 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 30 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 42 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 53 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 65 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 76 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 85 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 95 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 A5 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 B7 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 C6 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B D6 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D E6 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F F6 + 39 00 00 00 00 00 02 20 01 + 39 00 00 00 00 00 02 21 05 + 39 00 00 00 00 00 02 22 01 + 39 00 00 00 00 00 02 23 16 + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 24 + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 32 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 41 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 51 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 62 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 72 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 82 + 39 01 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 94 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 A4 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 C3 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 E2 + 39 00 00 00 00 00 02 3A 02 + 39 00 00 00 00 00 02 3B 02 + 39 00 00 00 00 00 02 3C 02 + 39 00 00 00 00 00 02 3D 1D + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 3F + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 5C + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 7B + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 9C + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 BE + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 DA + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B FA + 39 00 00 00 00 00 02 4C 03 + 39 00 00 00 00 00 02 4D 1C + 39 00 00 00 00 00 02 4E 03 + 39 00 00 00 00 00 02 4F 3C + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 5B + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 7B + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 A0 + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 BC + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 DB + 39 00 00 00 00 00 02 5A 00 + 39 01 00 00 00 00 02 5B 01 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 0D + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 1C + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 29 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 36 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 45 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 54 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 62 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 70 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 7D + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 8A + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 98 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 A7 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B B5 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D C2 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F D0 + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 DF + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 EE + 39 00 00 00 00 00 02 24 00 + 39 00 00 00 00 00 02 25 FD + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 0B + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 18 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 24 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 31 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 3C + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 4A + 39 01 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 59 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 67 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 83 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 9E + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B B9 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D D4 + 39 00 00 00 00 00 02 3E 01 + 39 00 00 00 00 00 02 3F EE + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 0A + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 26 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 43 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 5C + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 77 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B 92 + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D AF + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F CA + 39 00 00 00 00 00 02 50 02 + 39 00 00 00 00 00 02 51 E4 + 39 00 00 00 00 00 02 52 02 + 39 00 00 00 00 00 02 53 FF + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 21 + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 39 + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 55 + 39 00 00 00 00 00 02 5A 03 + 39 01 00 00 00 00 02 5B 70 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 0A + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 13 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 25 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 30 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 3B + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 43 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 51 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 5F + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 6D + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 7B + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 87 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 94 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B A2 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D B0 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F BC + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 C9 + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 D6 + 39 00 00 00 00 00 02 24 00 + 39 00 00 00 00 00 02 25 E4 + 39 00 00 00 00 00 02 26 00 + 39 00 00 00 00 00 02 27 F2 + 39 00 00 00 00 00 02 28 00 + 39 00 00 00 00 00 02 29 FF + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 0B + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 18 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 23 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 2F + 39 01 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 39 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 46 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 60 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 79 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B 93 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D AD + 39 00 00 00 00 00 02 3E 01 + 39 00 00 00 00 00 02 3F C5 + 39 00 00 00 00 00 02 40 01 + 39 00 00 00 00 00 02 41 DD + 39 00 00 00 00 00 02 42 01 + 39 00 00 00 00 00 02 43 F6 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 0F + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 29 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 43 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B 5A + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D 73 + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F 8C + 39 00 00 00 00 00 02 50 02 + 39 00 00 00 00 00 02 51 A6 + 39 00 00 00 00 00 02 52 02 + 39 00 00 00 00 00 02 53 C0 + 39 00 00 00 00 00 02 54 02 + 39 00 00 00 00 00 02 55 DB + 39 00 00 00 00 00 02 56 02 + 39 00 00 00 00 00 02 57 EF + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 0B + 39 00 00 00 00 00 02 5A 03 + 39 00 00 00 00 00 02 5B 25 + 39 00 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 04 FF 98 81 00]; + qcom,mdss-dsi-panel-cool-command = [ + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 A1 19 + 39 00 00 00 00 00 02 A2 29 + 39 00 00 00 00 00 02 A3 14 + 39 00 00 00 00 00 02 A4 18 + 39 00 00 00 00 00 02 A5 2A + 39 00 00 00 00 00 02 A6 20 + 39 00 00 00 00 00 02 A7 20 + 39 00 00 00 00 00 02 A8 91 + 39 00 00 00 00 00 02 A9 1C + 39 00 00 00 00 00 02 AA 28 + 39 00 00 00 00 00 02 AB 7E + 39 00 00 00 00 00 02 AC 1C + 39 00 00 00 00 00 02 AD 1C + 39 00 00 00 00 00 02 AE 51 + 39 00 00 00 00 00 02 AF 26 + 39 00 00 00 00 00 02 B0 2B + 39 00 00 00 00 00 02 B1 57 + 39 00 00 00 00 00 02 B2 66 + 39 00 00 00 00 00 02 B3 32 + 39 00 00 00 00 00 02 C0 00 + 39 00 00 00 00 00 02 C1 19 + 39 00 00 00 00 00 02 C2 29 + 39 00 00 00 00 00 02 C3 14 + 39 00 00 00 00 00 02 C4 18 + 39 00 00 00 00 00 02 C5 2A + 39 00 00 00 00 00 02 C6 20 + 39 00 00 00 00 00 02 C7 20 + 39 00 00 00 00 00 02 C8 91 + 39 00 00 00 00 00 02 C9 1C + 39 00 00 00 00 00 02 CA 28 + 39 00 00 00 00 00 02 CB 7E + 39 00 00 00 00 00 02 CC 1C + 39 00 00 00 00 00 02 CD 1C + 39 00 00 00 00 00 02 CE 51 + 39 00 00 00 00 00 02 CF 26 + 39 00 00 00 00 00 02 D0 2B + 39 00 00 00 00 00 02 D1 57 + 39 00 00 00 00 00 02 D2 66 + 39 01 00 00 00 00 02 D3 32 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 85 48 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 17 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 27 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 35 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 44 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 53 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 65 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 76 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 81 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 91 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 A5 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 B5 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 C4 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B D6 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D E9 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F FA + 39 00 00 00 00 00 02 20 01 + 39 00 00 00 00 00 02 21 08 + 39 00 00 00 00 00 02 22 01 + 39 00 00 00 00 00 02 23 17 + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 25 + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 34 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 42 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 54 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 64 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 74 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 83 + 39 01 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 92 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 A2 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 C2 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 E1 + 39 00 00 00 00 00 02 3A 02 + 39 00 00 00 00 00 02 3B 00 + 39 00 00 00 00 00 02 3C 02 + 39 00 00 00 00 00 02 3D 1F + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 41 + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 5F + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 7E + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 9F + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 C1 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 DD + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B FB + 39 00 00 00 00 00 02 4C 03 + 39 00 00 00 00 00 02 4D 20 + 39 00 00 00 00 00 02 4E 03 + 39 00 00 00 00 00 02 4F 3B + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 5B + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 7C + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 A0 + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 C3 + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 E3 + 39 00 00 00 00 00 02 5A 00 + 39 01 00 00 00 00 02 5B 00 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 12 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 21 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 2F + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 3D + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 4B + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 5A + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 69 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 77 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 85 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 94 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 A4 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 B3 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B C3 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D D1 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F E1 + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 EF + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 FF + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 11 + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 1F + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 2B + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 39 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 47 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 56 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 66 + 39 01 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 75 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 85 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 A1 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 BE + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B DB + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D F6 + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 14 + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 33 + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 4F + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 6C + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 8A + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 A9 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B C5 + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D E3 + 39 00 00 00 00 00 02 4E 03 + 39 00 00 00 00 00 02 4F 00 + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 21 + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 3F + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 61 + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 7C + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 9B + 39 00 00 00 00 00 02 5A 03 + 39 01 00 00 00 00 02 5B B6 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 09 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 16 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 26 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 36 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 43 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 4F + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 5E + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 6D + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 7D + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 8D + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 9E + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 AD + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B BE + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D CC + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F DC + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 EC + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 FC + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 0C + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 1A + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 27 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 35 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 42 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 51 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 60 + 39 01 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 6F + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 7E + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 9C + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 B9 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B D5 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D F1 + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 0E + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 2C + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 49 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 65 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 82 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 A0 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B BE + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D DA + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F F6 + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 17 + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 37 + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 56 + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 72 + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 8F + 39 00 00 00 00 00 02 5A 03 + 39 00 00 00 00 00 02 5B AB + 39 00 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 04 FF 98 81 00 ]; + qcom,mdss-dsi-panel-nature-command = [ + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 A1 18 + 39 00 00 00 00 00 02 A2 27 + 39 00 00 00 00 00 02 A3 15 + 39 00 00 00 00 00 02 A4 17 + 39 00 00 00 00 00 02 A5 2B + 39 00 00 00 00 00 02 A6 20 + 39 00 00 00 00 00 02 A7 22 + 39 00 00 00 00 00 02 A8 95 + 39 00 00 00 00 00 02 A9 1B + 39 00 00 00 00 00 02 AA 27 + 39 00 00 00 00 00 02 AB 87 + 39 00 00 00 00 00 02 AC 1D + 39 00 00 00 00 00 02 AD 1F + 39 00 00 00 00 00 02 AE 54 + 39 00 00 00 00 00 02 AF 28 + 39 00 00 00 00 00 02 B0 2C + 39 00 00 00 00 00 02 B1 5C + 39 00 00 00 00 00 02 B2 6A + 39 00 00 00 00 00 02 B3 32 + 39 00 00 00 00 00 02 C0 00 + 39 00 00 00 00 00 02 C1 18 + 39 00 00 00 00 00 02 C2 27 + 39 00 00 00 00 00 02 C3 15 + 39 00 00 00 00 00 02 C4 17 + 39 00 00 00 00 00 02 C5 2B + 39 00 00 00 00 00 02 C6 20 + 39 00 00 00 00 00 02 C7 22 + 39 00 00 00 00 00 02 C8 95 + 39 00 00 00 00 00 02 C9 1B + 39 00 00 00 00 00 02 CA 27 + 39 00 00 00 00 00 02 CB 87 + 39 00 00 00 00 00 02 CC 1D + 39 00 00 00 00 00 02 CD 1F + 39 00 00 00 00 00 02 CE 54 + 39 00 00 00 00 00 02 CF 28 + 39 00 00 00 00 00 02 D0 2C + 39 00 00 00 00 00 02 D1 5C + 39 00 00 00 00 00 02 D2 6A + 39 01 00 00 00 00 02 D3 32 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 85 48 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 17 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 26 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 36 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 47 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 58 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 69 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 7B + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 8C + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 9D + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 AF + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 BE + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 D0 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B E1 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D F5 + 39 00 00 00 00 00 02 1E 01 + 39 00 00 00 00 00 02 1F 07 + 39 00 00 00 00 00 02 20 01 + 39 00 00 00 00 00 02 21 19 + 39 00 00 00 00 00 02 22 01 + 39 00 00 00 00 00 02 23 28 + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 34 + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 44 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 55 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 66 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 76 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 86 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 95 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 A5 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 B4 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 D2 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 EF + 39 00 00 00 00 00 02 3A 02 + 39 00 00 00 00 00 02 3B 0E + 39 00 00 00 00 00 02 3C 02 + 39 00 00 00 00 00 02 3D 2D + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 4B + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 69 + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 87 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 A9 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 C4 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 DF + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B FF + 39 00 00 00 00 00 02 4C 03 + 39 00 00 00 00 00 02 4D 20 + 39 00 00 00 00 00 02 4E 03 + 39 00 00 00 00 00 02 4F 3F + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 5D + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 7C + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 A2 + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 C2 + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 DF + 39 00 00 00 00 00 02 5A 00 + 39 01 00 00 00 00 02 5B 00 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 14 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 22 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 30 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 40 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 4F + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 5E + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 6E + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 7E + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 8C + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 9C + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 AC + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 BB + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B C9 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D D9 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F EB + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 FC + 39 00 00 00 00 00 02 22 01 + 39 00 00 00 00 00 02 23 0C + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 1B + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 2A + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 37 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 46 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 56 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 66 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 74 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 83 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 91 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 AD + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 C8 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B E4 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D FF + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 1B + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 38 + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 53 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 6D + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 89 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 A6 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B C4 + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D E0 + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F FB + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 1B + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 39 + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 54 + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 71 + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 8C + 39 00 00 00 00 00 02 5A 03 + 39 01 00 00 00 00 02 5B A9 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 04 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 11 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 19 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 2F + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 3F + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 4D + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 5D + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 6F + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 80 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 8F + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 A0 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 B0 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B BE + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D CC + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F DD + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 EF + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 FF + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 0E + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 1D + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 2B + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 38 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 47 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 56 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 65 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 73 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 81 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 9C + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 B7 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B D1 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D EB + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 05 + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 20 + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 3C + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 55 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 70 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 8A + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B A7 + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D C4 + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F DD + 39 00 00 00 00 00 02 50 02 + 39 00 00 00 00 00 02 51 F8 + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 14 + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 32 + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 4B + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 67 + 39 00 00 00 00 00 02 5A 03 + 39 01 00 00 00 00 02 5B 81 + + 39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 E5 02 + 39 00 00 00 0A 00 04 FF 98 81 00 + 39 00 00 00 0A 00 02 11 00 + 39 00 00 00 00 00 04 FF 98 81 03 + 39 00 00 00 00 00 02 2C 0C + 39 01 00 00 00 00 04 FF 98 81 00]; + qcom,mdss-dsi-panel-gamma-command-state = "dsi_hs_mode"; + + qcom,mdss-dsi-init-last; + + qcom,mdss-dsi-panel-ce-std-command = [39 01 00 00 00 00 04 FF 98 81 02 + 39 01 00 00 00 00 04 FF 98 81 02 + 39 01 00 00 00 00 02 10 06 + 39 01 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 04 FF 98 81 00]; + qcom,mdss-dsi-panel-ce-vivid-command = [39 00 00 00 00 00 04 FF 98 81 02 + 39 00 00 00 00 00 04 FF 98 81 02 + 39 00 00 00 00 00 02 10 16 + 39 00 00 00 00 00 02 68 05 + 39 00 00 00 00 00 02 69 05 + 39 00 00 00 00 00 02 6a 06 + 39 00 00 00 00 00 02 6b 06 + 39 00 00 00 00 00 02 6c 06 + 39 00 00 00 00 00 02 6D 06 + 39 00 00 00 00 00 02 6E 06 + 39 00 00 00 00 00 02 6F 06 + 39 00 00 00 00 00 02 70 06 + 39 00 00 00 00 00 02 71 06 + 39 00 00 00 00 00 02 72 06 + 39 00 00 00 00 00 02 73 06 + 39 00 00 00 00 00 02 74 06 + 39 00 00 00 00 00 02 75 06 + 39 00 00 00 00 00 02 76 06 + 39 00 00 00 00 00 02 77 06 + 39 00 00 00 00 00 02 78 06 + 39 00 00 00 00 00 02 79 06 + 39 00 00 00 00 00 02 7A 06 + 39 00 00 00 00 00 02 7B 06 + 39 00 00 00 00 00 02 7C 06 + 39 00 00 00 00 00 02 7D 06 + 39 00 00 00 00 00 02 7E 05 + 39 00 00 00 00 00 02 7F 05 + 39 00 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 04 FF 98 81 00]; + qcom,mdss-dsi-panel-ce-command-state = "dsi_hs_mode"; + + qcom,mdss-dsi-panel-eye-command01 = [ + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 A1 17 + 39 00 00 00 00 00 02 A2 27 + 39 00 00 00 00 00 02 A3 16 + 39 00 00 00 00 00 02 A4 18 + 39 00 00 00 00 00 02 A5 2A + 39 00 00 00 00 00 02 A6 1F + 39 00 00 00 00 00 02 A7 21 + 39 00 00 00 00 00 02 A8 8C + 39 00 00 00 00 00 02 A9 1C + 39 00 00 00 00 00 02 AA 28 + 39 00 00 00 00 00 02 AB 78 + 39 00 00 00 00 00 02 AC 1C + 39 00 00 00 00 00 02 AD 1D + 39 00 00 00 00 00 02 AE 52 + 39 00 00 00 00 00 02 AF 28 + 39 00 00 00 00 00 02 B0 2B + 39 00 00 00 00 00 02 B1 56 + 39 00 00 00 00 00 02 B2 64 + 39 00 00 00 00 00 02 B3 32 + 39 00 00 00 00 00 02 C0 00 + 39 00 00 00 00 00 02 C1 17 + 39 00 00 00 00 00 02 C2 27 + 39 00 00 00 00 00 02 C3 16 + 39 00 00 00 00 00 02 C4 18 + 39 00 00 00 00 00 02 C5 2A + 39 00 00 00 00 00 02 C6 1F + 39 00 00 00 00 00 02 C7 21 + 39 00 00 00 00 00 02 C8 8C + 39 00 00 00 00 00 02 C9 1C + 39 00 00 00 00 00 02 CA 28 + 39 00 00 00 00 00 02 CB 78 + 39 00 00 00 00 00 02 CC 1C + 39 00 00 00 00 00 02 CD 1D + 39 00 00 00 00 00 02 CE 52 + 39 00 00 00 00 00 02 CF 28 + 39 00 00 00 00 00 02 D0 2B + 39 00 00 00 00 00 02 D1 56 + 39 00 00 00 00 00 02 D2 64 + 39 01 00 00 00 00 02 D3 32 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 85 48 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 17 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 24 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 33 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 43 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 52 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 61 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 71 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 7F + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 8E + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 9E + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 AE + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 BC + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B CA + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D DA + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F EB + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 FB + 39 00 00 00 00 00 02 22 01 + 39 00 00 00 00 00 02 23 0C + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 1A + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 26 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 33 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 42 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 52 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 63 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 74 + 39 01 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 85 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 95 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 B4 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 D3 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B F3 + 39 00 00 00 00 00 02 3C 02 + 39 00 00 00 00 00 02 3D 13 + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 34 + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 50 + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 70 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 93 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 B7 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 D5 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B F5 + 39 00 00 00 00 00 02 4C 03 + 39 00 00 00 00 00 02 4D 1A + 39 00 00 00 00 00 02 4E 03 + 39 00 00 00 00 00 02 4F 3A + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 5A + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 7A + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 9C + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 BE + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 DD + 39 00 00 00 00 00 02 5A 00 + 39 01 00 00 00 00 02 5B 00 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 0F + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 1D + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 2C + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 3A + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 48 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 55 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 63 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 71 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 7F + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 8B + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 99 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 A7 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B B5 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D C2 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F CE + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 DD + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 ED + 39 00 00 00 00 00 02 24 00 + 39 00 00 00 00 00 02 25 FB + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 09 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 16 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 23 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 2F + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 3B + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 49 + 39 01 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 58 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 67 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 84 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 A0 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B BC + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D D8 + 39 00 00 00 00 00 02 3E 01 + 39 00 00 00 00 00 02 3F F4 + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 11 + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 2E + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 4C + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 69 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 87 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B A7 + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D C6 + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F E1 + 39 00 00 00 00 00 02 50 02 + 39 00 00 00 00 00 02 51 FF + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 1E + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 3C + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 59 + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 77 + 39 00 00 00 00 00 02 5A 03 + 39 01 00 00 00 00 02 5B 93 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 05 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 0D + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 1B + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 2C + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 39 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 44 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 52 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 60 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 6F + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 7D + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 8A + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 98 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B A6 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D B3 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F BF + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 CB + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 D9 + 39 00 00 00 00 00 02 24 00 + 39 00 00 00 00 00 02 25 E8 + 39 00 00 00 00 00 02 26 00 + 39 00 00 00 00 00 02 27 F5 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 03 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 10 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 1C + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 28 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 33 + 39 01 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 3F + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 4C + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 69 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 84 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B 9E + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D B8 + 39 00 00 00 00 00 02 3E 01 + 39 00 00 00 00 00 02 3F D3 + 39 00 00 00 00 00 02 40 01 + 39 00 00 00 00 00 02 41 EC + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 07 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 22 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 3F + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 5A + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B 75 + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D 92 + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F B0 + 39 00 00 00 00 00 02 50 02 + 39 00 00 00 00 00 02 51 CB + 39 00 00 00 00 00 02 52 02 + 39 00 00 00 00 00 02 53 E5 + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 01 + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 21 + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 3A + 39 00 00 00 00 00 02 5A 03 + 39 00 00 00 00 00 02 5B 55 + 39 00 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 04 FF 98 81 00 + ]; + qcom,mdss-dsi-panel-eye-command02 = [ + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 A1 17 + 39 00 00 00 00 00 02 A2 27 + 39 00 00 00 00 00 02 A3 16 + 39 00 00 00 00 00 02 A4 18 + 39 00 00 00 00 00 02 A5 2A + 39 00 00 00 00 00 02 A6 1F + 39 00 00 00 00 00 02 A7 21 + 39 00 00 00 00 00 02 A8 8C + 39 00 00 00 00 00 02 A9 1C + 39 00 00 00 00 00 02 AA 28 + 39 00 00 00 00 00 02 AB 78 + 39 00 00 00 00 00 02 AC 1C + 39 00 00 00 00 00 02 AD 1D + 39 00 00 00 00 00 02 AE 52 + 39 00 00 00 00 00 02 AF 28 + 39 00 00 00 00 00 02 B0 2B + 39 00 00 00 00 00 02 B1 56 + 39 00 00 00 00 00 02 B2 64 + 39 00 00 00 00 00 02 B3 32 + 39 00 00 00 00 00 02 C0 00 + 39 00 00 00 00 00 02 C1 17 + 39 00 00 00 00 00 02 C2 27 + 39 00 00 00 00 00 02 C3 16 + 39 00 00 00 00 00 02 C4 18 + 39 00 00 00 00 00 02 C5 2A + 39 00 00 00 00 00 02 C6 1F + 39 00 00 00 00 00 02 C7 21 + 39 00 00 00 00 00 02 C8 8C + 39 00 00 00 00 00 02 C9 1C + 39 00 00 00 00 00 02 CA 28 + 39 00 00 00 00 00 02 CB 78 + 39 00 00 00 00 00 02 CC 1C + 39 00 00 00 00 00 02 CD 1D + 39 00 00 00 00 00 02 CE 52 + 39 00 00 00 00 00 02 CF 28 + 39 00 00 00 00 00 02 D0 2B + 39 00 00 00 00 00 02 D1 56 + 39 00 00 00 00 00 02 D2 64 + 39 01 00 00 00 00 02 D3 32 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 85 48 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 18 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 24 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 34 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 43 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 53 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 62 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 71 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 80 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 8E + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 9E + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 AE + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 BC + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B CB + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D DA + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F EB + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 FB + 39 00 00 00 00 00 02 22 01 + 39 00 00 00 00 00 02 23 0C + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 1A + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 26 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 34 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 42 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 52 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 63 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 75 + 39 01 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 85 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 95 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 B4 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 D3 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B F3 + 39 00 00 00 00 00 02 3C 02 + 39 00 00 00 00 00 02 3D 13 + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 34 + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 50 + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 70 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 93 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 B7 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 D5 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B F5 + 39 00 00 00 00 00 02 4C 03 + 39 00 00 00 00 00 02 4D 1A + 39 00 00 00 00 00 02 4E 03 + 39 00 00 00 00 00 02 4F 3A + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 5A + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 7A + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 9C + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 BE + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 DD + 39 00 00 00 00 00 02 5A 00 + 39 01 00 00 00 00 02 5B 00 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 0E + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 1D + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 2A + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 38 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 46 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 53 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 60 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 6D + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 7B + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 88 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 95 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 A3 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B B1 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D BD + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F C9 + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 D7 + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 E6 + 39 00 00 00 00 00 02 24 00 + 39 00 00 00 00 00 02 25 F4 + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 02 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 0F + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 1C + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 28 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 34 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 40 + 39 01 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 4E + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 5D + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 79 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 95 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B B0 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D CB + 39 00 00 00 00 00 02 3E 01 + 39 00 00 00 00 00 02 3F E6 + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 02 + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 1E + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 3C + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 58 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 75 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B 93 + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D B2 + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F CE + 39 00 00 00 00 00 02 50 02 + 39 00 00 00 00 00 02 51 E9 + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 06 + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 26 + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 42 + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 5F + 39 00 00 00 00 00 02 5A 03 + 39 01 00 00 00 00 02 5B 7B + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 04 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 0B + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 14 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 27 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 34 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 3E + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 4C + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 5A + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 69 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 77 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 83 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 90 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B 9D + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D AB + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F B7 + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 C3 + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 CE + 39 00 00 00 00 00 02 24 00 + 39 00 00 00 00 00 02 25 DC + 39 00 00 00 00 00 02 26 00 + 39 00 00 00 00 00 02 27 EA + 39 00 00 00 00 00 02 28 00 + 39 00 00 00 00 00 02 29 F7 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 04 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 10 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 1C + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 27 + 39 01 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 32 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 3C + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 57 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 71 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B 8B + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D A5 + 39 00 00 00 00 00 02 3E 01 + 39 00 00 00 00 00 02 3F BE + 39 00 00 00 00 00 02 40 01 + 39 00 00 00 00 00 02 41 D7 + 39 00 00 00 00 00 02 42 01 + 39 00 00 00 00 00 02 43 F0 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 09 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 23 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 3E + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B 58 + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D 72 + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F 8E + 39 00 00 00 00 00 02 50 02 + 39 00 00 00 00 00 02 51 AA + 39 00 00 00 00 00 02 52 02 + 39 00 00 00 00 00 02 53 C5 + 39 00 00 00 00 00 02 54 02 + 39 00 00 00 00 00 02 55 DE + 39 00 00 00 00 00 02 56 02 + 39 00 00 00 00 00 02 57 F7 + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 15 + 39 00 00 00 00 00 02 5A 03 + 39 00 00 00 00 00 02 5B 31 + 39 00 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 04 FF 98 81 00 ]; + qcom,mdss-dsi-panel-eye-command03 = [ + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 A1 17 + 39 00 00 00 00 00 02 A2 27 + 39 00 00 00 00 00 02 A3 16 + 39 00 00 00 00 00 02 A4 18 + 39 00 00 00 00 00 02 A5 2A + 39 00 00 00 00 00 02 A6 1F + 39 00 00 00 00 00 02 A7 21 + 39 00 00 00 00 00 02 A8 8C + 39 00 00 00 00 00 02 A9 1C + 39 00 00 00 00 00 02 AA 28 + 39 00 00 00 00 00 02 AB 78 + 39 00 00 00 00 00 02 AC 1C + 39 00 00 00 00 00 02 AD 1D + 39 00 00 00 00 00 02 AE 52 + 39 00 00 00 00 00 02 AF 28 + 39 00 00 00 00 00 02 B0 2B + 39 00 00 00 00 00 02 B1 56 + 39 00 00 00 00 00 02 B2 64 + 39 00 00 00 00 00 02 B3 32 + 39 00 00 00 00 00 02 C0 00 + 39 00 00 00 00 00 02 C1 17 + 39 00 00 00 00 00 02 C2 27 + 39 00 00 00 00 00 02 C3 16 + 39 00 00 00 00 00 02 C4 18 + 39 00 00 00 00 00 02 C5 2A + 39 00 00 00 00 00 02 C6 1F + 39 00 00 00 00 00 02 C7 21 + 39 00 00 00 00 00 02 C8 8C + 39 00 00 00 00 00 02 C9 1C + 39 00 00 00 00 00 02 CA 28 + 39 00 00 00 00 00 02 CB 78 + 39 00 00 00 00 00 02 CC 1C + 39 00 00 00 00 00 02 CD 1D + 39 00 00 00 00 00 02 CE 52 + 39 00 00 00 00 00 02 CF 28 + 39 00 00 00 00 00 02 D0 2B + 39 00 00 00 00 00 02 D1 56 + 39 00 00 00 00 00 02 D2 64 + 39 01 00 00 00 00 02 D3 32 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 85 48 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 19 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 25 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 35 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 44 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 53 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 62 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 72 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 80 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 8E + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 9E + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 AE + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 BC + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B CB + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D DA + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F EB + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 FC + 39 00 00 00 00 00 02 22 01 + 39 00 00 00 00 00 02 23 0C + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 1A + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 26 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 34 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 42 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 52 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 63 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 75 + 39 01 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 85 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 95 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 B4 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 D3 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B F3 + 39 00 00 00 00 00 02 3C 02 + 39 00 00 00 00 00 02 3D 13 + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 34 + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 50 + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 70 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 93 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 B7 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 D5 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B F5 + 39 00 00 00 00 00 02 4C 03 + 39 00 00 00 00 00 02 4D 1A + 39 00 00 00 00 00 02 4E 03 + 39 00 00 00 00 00 02 4F 3A + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 5A + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 7A + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 9C + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 BE + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 DD + 39 00 00 00 00 00 02 5A 00 + 39 01 00 00 00 00 02 5B 00 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 0E + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 1C + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 2A + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 37 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 45 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 52 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 5E + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 6B + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 79 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 86 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 92 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 A0 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B AD + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D BA + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F C6 + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 D4 + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 E1 + 39 00 00 00 00 00 02 24 00 + 39 00 00 00 00 00 02 25 F0 + 39 00 00 00 00 00 02 26 00 + 39 00 00 00 00 00 02 27 FE + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 0B + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 17 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 24 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 2F + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 3B + 39 01 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 48 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 56 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 72 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 8D + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B A9 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D C3 + 39 00 00 00 00 00 02 3E 01 + 39 00 00 00 00 00 02 3F DE + 39 00 00 00 00 00 02 40 01 + 39 00 00 00 00 00 02 41 F9 + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 14 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 31 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 4D + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 69 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B 85 + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D A4 + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F C2 + 39 00 00 00 00 00 02 50 02 + 39 00 00 00 00 00 02 51 DC + 39 00 00 00 00 00 02 52 02 + 39 00 00 00 00 00 02 53 F7 + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 14 + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 33 + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 4E + 39 00 00 00 00 00 02 5A 03 + 39 01 00 00 00 00 02 5B 6C + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 05 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 0D + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 16 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 22 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 2F + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 38 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 47 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 55 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 63 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 70 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 7D + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 89 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B 96 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D A2 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F AF + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 BA + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 C6 + 39 00 00 00 00 00 02 24 00 + 39 00 00 00 00 00 02 25 D1 + 39 00 00 00 00 00 02 26 00 + 39 00 00 00 00 00 02 27 DE + 39 00 00 00 00 00 02 28 00 + 39 00 00 00 00 00 02 29 EB + 39 00 00 00 00 00 02 2A 00 + 39 00 00 00 00 00 02 2B F8 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 04 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 10 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 1B + 39 01 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 26 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 30 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 46 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 5F + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B 79 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D 92 + 39 00 00 00 00 00 02 3E 01 + 39 00 00 00 00 00 02 3F AA + 39 00 00 00 00 00 02 40 01 + 39 00 00 00 00 00 02 41 C2 + 39 00 00 00 00 00 02 42 01 + 39 00 00 00 00 00 02 43 DA + 39 00 00 00 00 00 02 44 01 + 39 00 00 00 00 00 02 45 F2 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 0A + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 23 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B 3D + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D 56 + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F 6E + 39 00 00 00 00 00 02 50 02 + 39 00 00 00 00 00 02 51 88 + 39 00 00 00 00 00 02 52 02 + 39 00 00 00 00 00 02 53 A3 + 39 00 00 00 00 00 02 54 02 + 39 00 00 00 00 00 02 55 BF + 39 00 00 00 00 00 02 56 02 + 39 00 00 00 00 00 02 57 D5 + 39 00 00 00 00 00 02 58 02 + 39 00 00 00 00 00 02 59 EE + 39 00 00 00 00 00 02 5A 03 + 39 00 00 00 00 00 02 5B 08 + 39 00 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 04 FF 98 81 00 ]; + qcom,mdss-dsi-panel-eye-command04 = [ + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 A1 17 + 39 00 00 00 00 00 02 A2 27 + 39 00 00 00 00 00 02 A3 16 + 39 00 00 00 00 00 02 A4 18 + 39 00 00 00 00 00 02 A5 2A + 39 00 00 00 00 00 02 A6 1F + 39 00 00 00 00 00 02 A7 21 + 39 00 00 00 00 00 02 A8 8C + 39 00 00 00 00 00 02 A9 1C + 39 00 00 00 00 00 02 AA 28 + 39 00 00 00 00 00 02 AB 78 + 39 00 00 00 00 00 02 AC 1C + 39 00 00 00 00 00 02 AD 1D + 39 00 00 00 00 00 02 AE 52 + 39 00 00 00 00 00 02 AF 28 + 39 00 00 00 00 00 02 B0 2B + 39 00 00 00 00 00 02 B1 56 + 39 00 00 00 00 00 02 B2 64 + 39 00 00 00 00 00 02 B3 32 + 39 00 00 00 00 00 02 C0 00 + 39 00 00 00 00 00 02 C1 17 + 39 00 00 00 00 00 02 C2 27 + 39 00 00 00 00 00 02 C3 16 + 39 00 00 00 00 00 02 C4 18 + 39 00 00 00 00 00 02 C5 2A + 39 00 00 00 00 00 02 C6 1F + 39 00 00 00 00 00 02 C7 21 + 39 00 00 00 00 00 02 C8 8C + 39 00 00 00 00 00 02 C9 1C + 39 00 00 00 00 00 02 CA 28 + 39 00 00 00 00 00 02 CB 78 + 39 00 00 00 00 00 02 CC 1C + 39 00 00 00 00 00 02 CD 1D + 39 00 00 00 00 00 02 CE 52 + 39 00 00 00 00 00 02 CF 28 + 39 00 00 00 00 00 02 D0 2B + 39 00 00 00 00 00 02 D1 56 + 39 00 00 00 00 00 02 D2 64 + 39 01 00 00 00 00 02 D3 32 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 85 48 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 1A + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 26 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 35 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 44 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 54 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 63 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 72 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 80 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 8F + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 9E + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 AE + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 BD + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B CB + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D DA + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F EB + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 FC + 39 00 00 00 00 00 02 22 01 + 39 00 00 00 00 00 02 23 0C + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 1A + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 27 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 34 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 42 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 53 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 63 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 75 + 39 01 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 85 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 95 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 B4 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 D3 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B F3 + 39 00 00 00 00 00 02 3C 02 + 39 00 00 00 00 00 02 3D 13 + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 34 + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 50 + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 70 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 93 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 B7 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 D5 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B F5 + 39 00 00 00 00 00 02 4C 03 + 39 00 00 00 00 00 02 4D 1A + 39 00 00 00 00 00 02 4E 03 + 39 00 00 00 00 00 02 4F 3A + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 5A + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 7A + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 9C + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 BE + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 DD + 39 00 00 00 00 00 02 5A 00 + 39 01 00 00 00 00 02 5B 00 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 0E + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 1B + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 29 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 36 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 43 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 50 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 5C + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 69 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 76 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 82 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 8E + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 9C + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B A9 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D B6 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F C2 + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 CD + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 DB + 39 00 00 00 00 00 02 24 00 + 39 00 00 00 00 00 02 25 E9 + 39 00 00 00 00 00 02 26 00 + 39 00 00 00 00 00 02 27 F7 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 04 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 10 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 1C + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 28 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 33 + 39 01 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 3F + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 4D + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 68 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 83 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B 9E + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D B8 + 39 00 00 00 00 00 02 3E 01 + 39 00 00 00 00 00 02 3F D2 + 39 00 00 00 00 00 02 40 01 + 39 00 00 00 00 00 02 41 EB + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 06 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 21 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 3E + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 58 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B 74 + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D 90 + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F AF + 39 00 00 00 00 00 02 50 02 + 39 00 00 00 00 00 02 51 CA + 39 00 00 00 00 00 02 52 02 + 39 00 00 00 00 00 02 53 E3 + 39 00 00 00 00 00 02 54 02 + 39 00 00 00 00 00 02 55 FF + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 1C + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 39 + 39 00 00 00 00 00 02 5A 03 + 39 01 00 00 00 00 02 5B 53 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 04 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 09 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 11 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 1B + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 29 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 31 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 41 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 50 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 5C + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 69 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 76 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 82 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B 8D + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D 99 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F A6 + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 B1 + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 BC + 39 00 00 00 00 00 02 24 00 + 39 00 00 00 00 00 02 25 C7 + 39 00 00 00 00 00 02 26 00 + 39 00 00 00 00 00 02 27 D2 + 39 00 00 00 00 00 02 28 00 + 39 00 00 00 00 00 02 29 DE + 39 00 00 00 00 00 02 2A 00 + 39 00 00 00 00 00 02 2B EB + 39 00 00 00 00 00 02 2C 00 + 39 00 00 00 00 00 02 2D F7 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 03 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 0E + 39 01 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 19 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 23 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 37 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 4D + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B 66 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D 7E + 39 00 00 00 00 00 02 3E 01 + 39 00 00 00 00 00 02 3F 95 + 39 00 00 00 00 00 02 40 01 + 39 00 00 00 00 00 02 41 AC + 39 00 00 00 00 00 02 42 01 + 39 00 00 00 00 00 02 43 C2 + 39 00 00 00 00 00 02 44 01 + 39 00 00 00 00 00 02 45 D9 + 39 00 00 00 00 00 02 46 01 + 39 00 00 00 00 00 02 47 F0 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 07 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B 1F + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D 38 + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F 4F + 39 00 00 00 00 00 02 50 02 + 39 00 00 00 00 00 02 51 67 + 39 00 00 00 00 00 02 52 02 + 39 00 00 00 00 00 02 53 7F + 39 00 00 00 00 00 02 54 02 + 39 00 00 00 00 00 02 55 99 + 39 00 00 00 00 00 02 56 02 + 39 00 00 00 00 00 02 57 B3 + 39 00 00 00 00 00 02 58 02 + 39 00 00 00 00 00 02 59 CA + 39 00 00 00 00 00 02 5A 02 + 39 00 00 00 00 00 02 5B E0 + 39 00 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 04 FF 98 81 00]; + qcom,mdss-dsi-panel-eye-command05 = [ + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 A1 17 + 39 00 00 00 00 00 02 A2 27 + 39 00 00 00 00 00 02 A3 16 + 39 00 00 00 00 00 02 A4 18 + 39 00 00 00 00 00 02 A5 2A + 39 00 00 00 00 00 02 A6 1F + 39 00 00 00 00 00 02 A7 21 + 39 00 00 00 00 00 02 A8 8C + 39 00 00 00 00 00 02 A9 1C + 39 00 00 00 00 00 02 AA 28 + 39 00 00 00 00 00 02 AB 78 + 39 00 00 00 00 00 02 AC 1C + 39 00 00 00 00 00 02 AD 1D + 39 00 00 00 00 00 02 AE 52 + 39 00 00 00 00 00 02 AF 28 + 39 00 00 00 00 00 02 B0 2B + 39 00 00 00 00 00 02 B1 56 + 39 00 00 00 00 00 02 B2 64 + 39 00 00 00 00 00 02 B3 32 + 39 00 00 00 00 00 02 C0 00 + 39 00 00 00 00 00 02 C1 17 + 39 00 00 00 00 00 02 C2 27 + 39 00 00 00 00 00 02 C3 16 + 39 00 00 00 00 00 02 C4 18 + 39 00 00 00 00 00 02 C5 2A + 39 00 00 00 00 00 02 C6 1F + 39 00 00 00 00 00 02 C7 21 + 39 00 00 00 00 00 02 C8 8C + 39 00 00 00 00 00 02 C9 1C + 39 00 00 00 00 00 02 CA 28 + 39 00 00 00 00 00 02 CB 78 + 39 00 00 00 00 00 02 CC 1C + 39 00 00 00 00 00 02 CD 1D + 39 00 00 00 00 00 02 CE 52 + 39 00 00 00 00 00 02 CF 28 + 39 00 00 00 00 00 02 D0 2B + 39 00 00 00 00 00 02 D1 56 + 39 00 00 00 00 00 02 D2 64 + 39 01 00 00 00 00 02 D3 32 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 85 48 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 1B + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 27 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 36 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 45 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 54 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 63 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 73 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 81 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 8F + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 9F + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 AE + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 BD + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B CB + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D DA + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F EB + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 FC + 39 00 00 00 00 00 02 22 01 + 39 00 00 00 00 00 02 23 0C + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 1B + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 27 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 34 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 42 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 53 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 63 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 75 + 39 01 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 85 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 95 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 B4 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 D3 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B F3 + 39 00 00 00 00 00 02 3C 02 + 39 00 00 00 00 00 02 3D 13 + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 34 + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 50 + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 70 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 93 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 B7 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 D5 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B F5 + 39 00 00 00 00 00 02 4C 03 + 39 00 00 00 00 00 02 4D 1A + 39 00 00 00 00 00 02 4E 03 + 39 00 00 00 00 00 02 4F 3A + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 5A + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 7A + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 9C + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 BE + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 DD + 39 00 00 00 00 00 02 5A 00 + 39 01 00 00 00 00 02 5B 00 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 0D + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 1A + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 28 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 34 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 42 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 4E + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 5A + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 66 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 73 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 80 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 8B + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 98 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B A5 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D B2 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F BD + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 C9 + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 D6 + 39 00 00 00 00 00 02 24 00 + 39 00 00 00 00 00 02 25 E3 + 39 00 00 00 00 00 02 26 00 + 39 00 00 00 00 00 02 27 F1 + 39 00 00 00 00 00 02 28 00 + 39 00 00 00 00 00 02 29 FE + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 0A + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 16 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 22 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 2D + 39 01 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 38 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 44 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 5F + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 79 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B 94 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D AD + 39 00 00 00 00 00 02 3E 01 + 39 00 00 00 00 00 02 3F C7 + 39 00 00 00 00 00 02 40 01 + 39 00 00 00 00 00 02 41 E0 + 39 00 00 00 00 00 02 42 01 + 39 00 00 00 00 00 02 43 F9 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 14 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 2F + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 4A + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B 64 + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D 7F + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F 9C + 39 00 00 00 00 00 02 50 02 + 39 00 00 00 00 00 02 51 BA + 39 00 00 00 00 00 02 52 02 + 39 00 00 00 00 00 02 53 D2 + 39 00 00 00 00 00 02 54 02 + 39 00 00 00 00 00 02 55 EC + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 07 + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 24 + 39 00 00 00 00 00 02 5A 03 + 39 01 00 00 00 00 02 5B 3F + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 03 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 08 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 0F + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 16 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 21 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 2A + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 3A + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 49 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 56 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 63 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 6F + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 7B + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B 86 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D 91 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F 9D + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 A8 + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 B3 + 39 00 00 00 00 00 02 24 00 + 39 00 00 00 00 00 02 25 BD + 39 00 00 00 00 00 02 26 00 + 39 00 00 00 00 00 02 27 C8 + 39 00 00 00 00 00 02 28 00 + 39 00 00 00 00 00 02 29 D2 + 39 00 00 00 00 00 02 2A 00 + 39 00 00 00 00 00 02 2B DE + 39 00 00 00 00 00 02 2C 00 + 39 00 00 00 00 00 02 2D EA + 39 00 00 00 00 00 02 2E 00 + 39 00 00 00 00 00 02 2F F5 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 01 + 39 01 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 0C + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 16 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 2A + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 3C + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B 53 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D 6B + 39 00 00 00 00 00 02 3E 01 + 39 00 00 00 00 00 02 3F 81 + 39 00 00 00 00 00 02 40 01 + 39 00 00 00 00 00 02 41 97 + 39 00 00 00 00 00 02 42 01 + 39 00 00 00 00 00 02 43 AD + 39 00 00 00 00 00 02 44 01 + 39 00 00 00 00 00 02 45 C2 + 39 00 00 00 00 00 02 46 01 + 39 00 00 00 00 00 02 47 D8 + 39 00 00 00 00 00 02 48 01 + 39 00 00 00 00 00 02 49 ED + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B 03 + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D 1A + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F 31 + 39 00 00 00 00 00 02 50 02 + 39 00 00 00 00 00 02 51 48 + 39 00 00 00 00 00 02 52 02 + 39 00 00 00 00 00 02 53 5F + 39 00 00 00 00 00 02 54 02 + 39 00 00 00 00 00 02 55 75 + 39 00 00 00 00 00 02 56 02 + 39 00 00 00 00 00 02 57 8D + 39 00 00 00 00 00 02 58 02 + 39 00 00 00 00 00 02 59 A5 + 39 00 00 00 00 00 02 5A 02 + 39 00 00 00 00 00 02 5B BF + 39 00 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 04 FF 98 81 00]; + qcom,mdss-dsi-panel-eye-command06 = [ + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 A1 17 + 39 00 00 00 00 00 02 A2 27 + 39 00 00 00 00 00 02 A3 16 + 39 00 00 00 00 00 02 A4 18 + 39 00 00 00 00 00 02 A5 2A + 39 00 00 00 00 00 02 A6 1F + 39 00 00 00 00 00 02 A7 21 + 39 00 00 00 00 00 02 A8 8C + 39 00 00 00 00 00 02 A9 1C + 39 00 00 00 00 00 02 AA 28 + 39 00 00 00 00 00 02 AB 78 + 39 00 00 00 00 00 02 AC 1C + 39 00 00 00 00 00 02 AD 1D + 39 00 00 00 00 00 02 AE 52 + 39 00 00 00 00 00 02 AF 28 + 39 00 00 00 00 00 02 B0 2B + 39 00 00 00 00 00 02 B1 56 + 39 00 00 00 00 00 02 B2 64 + 39 00 00 00 00 00 02 B3 32 + 39 00 00 00 00 00 02 C0 00 + 39 00 00 00 00 00 02 C1 17 + 39 00 00 00 00 00 02 C2 27 + 39 00 00 00 00 00 02 C3 16 + 39 00 00 00 00 00 02 C4 18 + 39 00 00 00 00 00 02 C5 2A + 39 00 00 00 00 00 02 C6 1F + 39 00 00 00 00 00 02 C7 21 + 39 00 00 00 00 00 02 C8 8C + 39 00 00 00 00 00 02 C9 1C + 39 00 00 00 00 00 02 CA 28 + 39 00 00 00 00 00 02 CB 78 + 39 00 00 00 00 00 02 CC 1C + 39 00 00 00 00 00 02 CD 1D + 39 00 00 00 00 00 02 CE 52 + 39 00 00 00 00 00 02 CF 28 + 39 00 00 00 00 00 02 D0 2B + 39 00 00 00 00 00 02 D1 56 + 39 00 00 00 00 00 02 D2 64 + 39 01 00 00 00 00 02 D3 32 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 85 48 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 1B + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 28 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 37 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 45 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 55 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 64 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 73 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 81 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 90 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 9F + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 AE + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 BD + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B CB + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D DA + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F EC + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 FC + 39 00 00 00 00 00 02 22 01 + 39 00 00 00 00 00 02 23 0C + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 1B + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 27 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 34 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 42 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 53 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 63 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 75 + 39 01 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 85 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 95 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 B4 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 D4 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B F3 + 39 00 00 00 00 00 02 3C 02 + 39 00 00 00 00 00 02 3D 13 + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 34 + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 50 + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 70 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 93 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 B7 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 D5 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B F5 + 39 00 00 00 00 00 02 4C 03 + 39 00 00 00 00 00 02 4D 1A + 39 00 00 00 00 00 02 4E 03 + 39 00 00 00 00 00 02 4F 3A + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 5A + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 7A + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 9C + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 BE + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 DD + 39 00 00 00 00 00 02 5A 00 + 39 01 00 00 00 00 02 5B 00 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 0D + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 1A + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 27 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 33 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 40 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 4C + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 58 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 64 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 71 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 7D + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 88 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 94 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B A1 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D AE + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F B9 + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 C5 + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 D0 + 39 00 00 00 00 00 02 24 00 + 39 00 00 00 00 00 02 25 DD + 39 00 00 00 00 00 02 26 00 + 39 00 00 00 00 00 02 27 EB + 39 00 00 00 00 00 02 28 00 + 39 00 00 00 00 00 02 29 F8 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 05 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 10 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 1C + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 27 + 39 01 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 32 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 3D + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 57 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 71 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B 8A + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D A4 + 39 00 00 00 00 00 02 3E 01 + 39 00 00 00 00 00 02 3F BD + 39 00 00 00 00 00 02 40 01 + 39 00 00 00 00 00 02 41 D5 + 39 00 00 00 00 00 02 42 01 + 39 00 00 00 00 00 02 43 EE + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 07 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 21 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 3D + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B 56 + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D 70 + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F 8C + 39 00 00 00 00 00 02 50 02 + 39 00 00 00 00 00 02 51 A7 + 39 00 00 00 00 00 02 52 02 + 39 00 00 00 00 00 02 53 C3 + 39 00 00 00 00 00 02 54 02 + 39 00 00 00 00 00 02 55 DB + 39 00 00 00 00 00 02 56 02 + 39 00 00 00 00 00 02 57 F4 + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 11 + 39 00 00 00 00 00 02 5A 03 + 39 01 00 00 00 00 02 5B 2E + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 02 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 06 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 0B + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 11 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 19 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 22 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 33 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 43 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 51 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 5C + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 68 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 74 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B 7F + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D 89 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F 94 + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 9F + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 AA + 39 00 00 00 00 00 02 24 00 + 39 00 00 00 00 00 02 25 B5 + 39 00 00 00 00 00 02 26 00 + 39 00 00 00 00 00 02 27 BE + 39 00 00 00 00 00 02 28 00 + 39 00 00 00 00 00 02 29 C8 + 39 00 00 00 00 00 02 2A 00 + 39 00 00 00 00 00 02 2B D2 + 39 00 00 00 00 00 02 2C 00 + 39 00 00 00 00 00 02 2D DD + 39 00 00 00 00 00 02 2E 00 + 39 00 00 00 00 00 02 2F E9 + 39 00 00 00 00 00 02 30 00 + 39 00 00 00 00 00 02 31 F4 + 39 01 00 00 00 00 02 32 00 + 39 00 00 00 00 00 02 33 FE + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 09 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 1C + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 2F + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B 41 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D 57 + 39 00 00 00 00 00 02 3E 01 + 39 00 00 00 00 00 02 3F 6D + 39 00 00 00 00 00 02 40 01 + 39 00 00 00 00 00 02 41 83 + 39 00 00 00 00 00 02 42 01 + 39 00 00 00 00 00 02 43 98 + 39 00 00 00 00 00 02 44 01 + 39 00 00 00 00 00 02 45 AD + 39 00 00 00 00 00 02 46 01 + 39 00 00 00 00 00 02 47 C1 + 39 00 00 00 00 00 02 48 01 + 39 00 00 00 00 00 02 49 D6 + 39 00 00 00 00 00 02 4A 01 + 39 00 00 00 00 00 02 4B EA + 39 00 00 00 00 00 02 4C 01 + 39 00 00 00 00 00 02 4D FF + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F 14 + 39 00 00 00 00 00 02 50 02 + 39 00 00 00 00 00 02 51 2A + 39 00 00 00 00 00 02 52 02 + 39 00 00 00 00 00 02 53 40 + 39 00 00 00 00 00 02 54 02 + 39 00 00 00 00 00 02 55 56 + 39 00 00 00 00 00 02 56 02 + 39 00 00 00 00 00 02 57 6B + 39 00 00 00 00 00 02 58 02 + 39 00 00 00 00 00 02 59 81 + 39 00 00 00 00 00 02 5A 02 + 39 00 00 00 00 00 02 5B 99 + 39 00 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 04 FF 98 81 00]; + qcom,mdss-dsi-panel-eye-command07 = [ + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 A1 17 + 39 00 00 00 00 00 02 A2 27 + 39 00 00 00 00 00 02 A3 16 + 39 00 00 00 00 00 02 A4 18 + 39 00 00 00 00 00 02 A5 2A + 39 00 00 00 00 00 02 A6 1F + 39 00 00 00 00 00 02 A7 21 + 39 00 00 00 00 00 02 A8 8C + 39 00 00 00 00 00 02 A9 1C + 39 00 00 00 00 00 02 AA 28 + 39 00 00 00 00 00 02 AB 78 + 39 00 00 00 00 00 02 AC 1C + 39 00 00 00 00 00 02 AD 1D + 39 00 00 00 00 00 02 AE 52 + 39 00 00 00 00 00 02 AF 28 + 39 00 00 00 00 00 02 B0 2B + 39 00 00 00 00 00 02 B1 56 + 39 00 00 00 00 00 02 B2 64 + 39 00 00 00 00 00 02 B3 32 + 39 00 00 00 00 00 02 C0 00 + 39 00 00 00 00 00 02 C1 17 + 39 00 00 00 00 00 02 C2 27 + 39 00 00 00 00 00 02 C3 16 + 39 00 00 00 00 00 02 C4 18 + 39 00 00 00 00 00 02 C5 2A + 39 00 00 00 00 00 02 C6 1F + 39 00 00 00 00 00 02 C7 21 + 39 00 00 00 00 00 02 C8 8C + 39 00 00 00 00 00 02 C9 1C + 39 00 00 00 00 00 02 CA 28 + 39 00 00 00 00 00 02 CB 78 + 39 00 00 00 00 00 02 CC 1C + 39 00 00 00 00 00 02 CD 1D + 39 00 00 00 00 00 02 CE 52 + 39 00 00 00 00 00 02 CF 28 + 39 00 00 00 00 00 02 D0 2B + 39 00 00 00 00 00 02 D1 56 + 39 00 00 00 00 00 02 D2 64 + 39 01 00 00 00 00 02 D3 32 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 85 48 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 1C + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 29 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 37 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 46 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 55 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 64 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 74 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 82 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 90 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 9F + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 AF + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 BD + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B CB + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D DA + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F EC + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 FC + 39 00 00 00 00 00 02 22 01 + 39 00 00 00 00 00 02 23 0C + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 1B + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 27 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 34 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 42 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 53 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 63 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 75 + 39 01 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 85 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 95 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 B4 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 D4 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B F3 + 39 00 00 00 00 00 02 3C 02 + 39 00 00 00 00 00 02 3D 13 + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 34 + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 50 + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 70 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 93 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 B7 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 D5 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B F5 + 39 00 00 00 00 00 02 4C 03 + 39 00 00 00 00 00 02 4D 1A + 39 00 00 00 00 00 02 4E 03 + 39 00 00 00 00 00 02 4F 3A + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 5A + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 7A + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 9C + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 BE + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 DD + 39 00 00 00 00 00 02 5A 00 + 39 01 00 00 00 00 02 5B 00 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 0C + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 19 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 26 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 32 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 3E + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 4B + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 56 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 62 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 6E + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 7A + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 85 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 91 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B 9D + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D AA + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F B6 + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 C1 + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 CB + 39 00 00 00 00 00 02 24 00 + 39 00 00 00 00 00 02 25 D8 + 39 00 00 00 00 00 02 26 00 + 39 00 00 00 00 00 02 27 E5 + 39 00 00 00 00 00 02 28 00 + 39 00 00 00 00 00 02 29 F2 + 39 00 00 00 00 00 02 2A 00 + 39 00 00 00 00 00 02 2B FF + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 0B + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 16 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 21 + 39 01 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 2C + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 36 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 4E + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 68 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B 81 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D 9A + 39 00 00 00 00 00 02 3E 01 + 39 00 00 00 00 00 02 3F B2 + 39 00 00 00 00 00 02 40 01 + 39 00 00 00 00 00 02 41 CA + 39 00 00 00 00 00 02 42 01 + 39 00 00 00 00 00 02 43 E2 + 39 00 00 00 00 00 02 44 01 + 39 00 00 00 00 00 02 45 FB + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 14 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 2E + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B 48 + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D 62 + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F 7B + 39 00 00 00 00 00 02 50 02 + 39 00 00 00 00 00 02 51 97 + 39 00 00 00 00 00 02 52 02 + 39 00 00 00 00 00 02 53 B3 + 39 00 00 00 00 00 02 54 02 + 39 00 00 00 00 00 02 55 CC + 39 00 00 00 00 00 02 56 02 + 39 00 00 00 00 00 02 57 E3 + 39 00 00 00 00 00 02 58 02 + 39 00 00 00 00 00 02 59 FD + 39 00 00 00 00 00 02 5A 03 + 39 01 00 00 00 00 02 5B 17 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 01 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 03 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 05 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 07 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 0A + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 14 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 2A + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 3C + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 4A + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 56 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 61 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 6C + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B 77 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D 81 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F 8B + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 95 + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 A0 + 39 00 00 00 00 00 02 24 00 + 39 00 00 00 00 00 02 25 AA + 39 00 00 00 00 00 02 26 00 + 39 00 00 00 00 00 02 27 B4 + 39 00 00 00 00 00 02 28 00 + 39 00 00 00 00 00 02 29 BD + 39 00 00 00 00 00 02 2A 00 + 39 00 00 00 00 00 02 2B C7 + 39 00 00 00 00 00 02 2C 00 + 39 00 00 00 00 00 02 2D D0 + 39 00 00 00 00 00 02 2E 00 + 39 00 00 00 00 00 02 2F DA + 39 00 00 00 00 00 02 30 00 + 39 00 00 00 00 00 02 31 E5 + 39 01 00 00 00 00 02 32 00 + 39 00 00 00 00 00 02 33 F0 + 39 00 00 00 00 00 02 34 00 + 39 00 00 00 00 00 02 35 FA + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 0E + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 20 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B 31 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D 43 + 39 00 00 00 00 00 02 3E 01 + 39 00 00 00 00 00 02 3F 58 + 39 00 00 00 00 00 02 40 01 + 39 00 00 00 00 00 02 41 6D + 39 00 00 00 00 00 02 42 01 + 39 00 00 00 00 00 02 43 81 + 39 00 00 00 00 00 02 44 01 + 39 00 00 00 00 00 02 45 95 + 39 00 00 00 00 00 02 46 01 + 39 00 00 00 00 00 02 47 A9 + 39 00 00 00 00 00 02 48 01 + 39 00 00 00 00 00 02 49 BD + 39 00 00 00 00 00 02 4A 01 + 39 00 00 00 00 00 02 4B D0 + 39 00 00 00 00 00 02 4C 01 + 39 00 00 00 00 00 02 4D E3 + 39 00 00 00 00 00 02 4E 01 + 39 00 00 00 00 00 02 4F F7 + 39 00 00 00 00 00 02 50 02 + 39 00 00 00 00 00 02 51 0B + 39 00 00 00 00 00 02 52 02 + 39 00 00 00 00 00 02 53 1F + 39 00 00 00 00 00 02 54 02 + 39 00 00 00 00 00 02 55 34 + 39 00 00 00 00 00 02 56 02 + 39 00 00 00 00 00 02 57 49 + 39 00 00 00 00 00 02 58 02 + 39 00 00 00 00 00 02 59 5D + 39 00 00 00 00 00 02 5A 02 + 39 00 00 00 00 00 02 5B 71 + 39 00 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 04 FF 98 81 00 ]; + qcom,mdss-dsi-panel-eye-command08 = [ + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 A1 17 + 39 00 00 00 00 00 02 A2 27 + 39 00 00 00 00 00 02 A3 16 + 39 00 00 00 00 00 02 A4 18 + 39 00 00 00 00 00 02 A5 2A + 39 00 00 00 00 00 02 A6 1F + 39 00 00 00 00 00 02 A7 21 + 39 00 00 00 00 00 02 A8 8C + 39 00 00 00 00 00 02 A9 1C + 39 00 00 00 00 00 02 AA 28 + 39 00 00 00 00 00 02 AB 78 + 39 00 00 00 00 00 02 AC 1C + 39 00 00 00 00 00 02 AD 1D + 39 00 00 00 00 00 02 AE 52 + 39 00 00 00 00 00 02 AF 28 + 39 00 00 00 00 00 02 B0 2B + 39 00 00 00 00 00 02 B1 56 + 39 00 00 00 00 00 02 B2 64 + 39 00 00 00 00 00 02 B3 32 + 39 00 00 00 00 00 02 C0 00 + 39 00 00 00 00 00 02 C1 17 + 39 00 00 00 00 00 02 C2 27 + 39 00 00 00 00 00 02 C3 16 + 39 00 00 00 00 00 02 C4 18 + 39 00 00 00 00 00 02 C5 2A + 39 00 00 00 00 00 02 C6 1F + 39 00 00 00 00 00 02 C7 21 + 39 00 00 00 00 00 02 C8 8C + 39 00 00 00 00 00 02 C9 1C + 39 00 00 00 00 00 02 CA 28 + 39 00 00 00 00 00 02 CB 78 + 39 00 00 00 00 00 02 CC 1C + 39 00 00 00 00 00 02 CD 1D + 39 00 00 00 00 00 02 CE 52 + 39 00 00 00 00 00 02 CF 28 + 39 00 00 00 00 00 02 D0 2B + 39 00 00 00 00 00 02 D1 56 + 39 00 00 00 00 00 02 D2 64 + 39 01 00 00 00 00 02 D3 32 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 85 48 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 1D + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 1F + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 38 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 47 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 56 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 65 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 74 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 82 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 91 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 A0 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 AF + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 BD + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B CC + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D DB + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F EC + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 FC + 39 00 00 00 00 00 02 22 01 + 39 00 00 00 00 00 02 23 0D + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 1B + 39 00 00 00 00 00 02 26 01 + 39 00 00 00 00 00 02 27 27 + 39 00 00 00 00 00 02 28 01 + 39 00 00 00 00 00 02 29 34 + 39 00 00 00 00 00 02 2A 01 + 39 00 00 00 00 00 02 2B 42 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 53 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 64 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 75 + 39 01 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 85 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 95 + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 B4 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 D4 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B F3 + 39 00 00 00 00 00 02 3C 02 + 39 00 00 00 00 00 02 3D 13 + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 34 + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 50 + 39 00 00 00 00 00 02 42 02 + 39 00 00 00 00 00 02 43 70 + 39 00 00 00 00 00 02 44 02 + 39 00 00 00 00 00 02 45 93 + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 B7 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 D5 + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B F5 + 39 00 00 00 00 00 02 4C 03 + 39 00 00 00 00 00 02 4D 1A + 39 00 00 00 00 00 02 4E 03 + 39 00 00 00 00 00 02 4F 3A + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 5A + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 7A + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 9C + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 BE + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 DD + 39 00 00 00 00 00 02 5A 00 + 39 01 00 00 00 00 02 5B 00 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 0B + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 0C + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 24 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 30 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 3C + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 49 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 54 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 5F + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 6A + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 77 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 82 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 8C + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B 99 + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D A5 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F B1 + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 BC + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 C6 + 39 00 00 00 00 00 02 24 00 + 39 00 00 00 00 00 02 25 D2 + 39 00 00 00 00 00 02 26 00 + 39 00 00 00 00 00 02 27 DE + 39 00 00 00 00 00 02 28 00 + 39 00 00 00 00 00 02 29 EB + 39 00 00 00 00 00 02 2A 00 + 39 00 00 00 00 00 02 2B F7 + 39 00 00 00 00 00 02 2C 01 + 39 00 00 00 00 00 02 2D 04 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 0F + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 1A + 39 01 00 00 00 00 02 32 01 + 39 00 00 00 00 00 02 33 25 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 35 2F + 39 00 00 00 00 00 02 36 01 + 39 00 00 00 00 00 02 37 44 + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 5E + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B 76 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D 8E + 39 00 00 00 00 00 02 3E 01 + 39 00 00 00 00 00 02 3F A6 + 39 00 00 00 00 00 02 40 01 + 39 00 00 00 00 00 02 41 BE + 39 00 00 00 00 00 02 42 01 + 39 00 00 00 00 00 02 43 D5 + 39 00 00 00 00 00 02 44 01 + 39 00 00 00 00 00 02 45 EC + 39 00 00 00 00 00 02 46 02 + 39 00 00 00 00 00 02 47 04 + 39 00 00 00 00 00 02 48 02 + 39 00 00 00 00 00 02 49 1D + 39 00 00 00 00 00 02 4A 02 + 39 00 00 00 00 00 02 4B 37 + 39 00 00 00 00 00 02 4C 02 + 39 00 00 00 00 00 02 4D 50 + 39 00 00 00 00 00 02 4E 02 + 39 00 00 00 00 00 02 4F 68 + 39 00 00 00 00 00 02 50 02 + 39 00 00 00 00 00 02 51 81 + 39 00 00 00 00 00 02 52 02 + 39 00 00 00 00 00 02 53 9C + 39 00 00 00 00 00 02 54 02 + 39 00 00 00 00 00 02 55 B8 + 39 00 00 00 00 00 02 56 02 + 39 00 00 00 00 00 02 57 CF + 39 00 00 00 00 00 02 58 02 + 39 00 00 00 00 00 02 59 E6 + 39 00 00 00 00 00 02 5A 02 + 39 01 00 00 00 00 02 5B FF + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 02 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 03 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 0C + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 11 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 17 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 1B + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 1F + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 33 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 42 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 4F + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 59 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 64 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B 6E + 39 00 00 00 00 00 02 1C 00 + 39 00 00 00 00 00 02 1D 79 + 39 00 00 00 00 00 02 1E 00 + 39 00 00 00 00 00 02 1F 82 + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 8B + 39 00 00 00 00 00 02 22 00 + 39 00 00 00 00 00 02 23 95 + 39 00 00 00 00 00 02 24 00 + 39 00 00 00 00 00 02 25 9F + 39 00 00 00 00 00 02 26 00 + 39 00 00 00 00 00 02 27 A9 + 39 00 00 00 00 00 02 28 00 + 39 00 00 00 00 00 02 29 B3 + 39 00 00 00 00 00 02 2A 00 + 39 00 00 00 00 00 02 2B BB + 39 00 00 00 00 00 02 2C 00 + 39 00 00 00 00 00 02 2D C4 + 39 00 00 00 00 00 02 2E 00 + 39 00 00 00 00 00 02 2F CC + 39 00 00 00 00 00 02 30 00 + 39 00 00 00 00 00 02 31 D7 + 39 01 00 00 00 00 02 32 00 + 39 00 00 00 00 00 02 33 E0 + 39 00 00 00 00 00 02 34 00 + 39 00 00 00 00 00 02 35 EB + 39 00 00 00 00 00 02 36 00 + 39 00 00 00 00 00 02 37 FE + 39 00 00 00 00 00 02 38 01 + 39 00 00 00 00 00 02 39 10 + 39 00 00 00 00 00 02 3A 01 + 39 00 00 00 00 00 02 3B 21 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D 31 + 39 00 00 00 00 00 02 3E 01 + 39 00 00 00 00 00 02 3F 42 + 39 00 00 00 00 00 02 40 01 + 39 00 00 00 00 00 02 41 55 + 39 00 00 00 00 00 02 42 01 + 39 00 00 00 00 00 02 43 6A + 39 00 00 00 00 00 02 44 01 + 39 00 00 00 00 00 02 45 7D + 39 00 00 00 00 00 02 46 01 + 39 00 00 00 00 00 02 47 90 + 39 00 00 00 00 00 02 48 01 + 39 00 00 00 00 00 02 49 A2 + 39 00 00 00 00 00 02 4A 01 + 39 00 00 00 00 00 02 4B B4 + 39 00 00 00 00 00 02 4C 01 + 39 00 00 00 00 00 02 4D C7 + 39 00 00 00 00 00 02 4E 01 + 39 00 00 00 00 00 02 4F D9 + 39 00 00 00 00 00 02 50 01 + 39 00 00 00 00 00 02 51 EB + 39 00 00 00 00 00 02 52 01 + 39 00 00 00 00 00 02 53 FE + 39 00 00 00 00 00 02 54 02 + 39 00 00 00 00 00 02 55 11 + 39 00 00 00 00 00 02 56 02 + 39 00 00 00 00 00 02 57 24 + 39 00 00 00 00 00 02 58 02 + 39 00 00 00 00 00 02 59 39 + 39 00 00 00 00 00 02 5A 02 + 39 00 00 00 00 00 02 5B 4B + 39 00 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 00 00 04 FF 98 81 00]; + qcom,mdss-dsi-panel-eye-command-num = <8>; + + qcom,mdss-dsi-h-sync-pulse = <1>; + qcom,mdss-dsi-traffic-mode = "burst_mode"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + + qcom,mdss-dsi-panel-timings = [8B 1E 14 00 44 46 18 20 19 03 04 00]; + qcom,mdss-dsi-t-clk-post = <0x04>; + qcom,mdss-dsi-t-clk-pre = <0x1c>; + qcom,mdss-dsi-bl-min-level = <4>; + qcom,mdss-dsi-bl-max-level = <255>; + qcom,mdss-dsi-bl-pmic-pwm-frequency = <100>; + qcom,mdss-dsi-bl-pmic-bank-select = <0>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm"; + qcom,mdss-dsi-pwm-gpio = <&pm8937_mpps 4 0>; + + qcom,esd-check-enabled; + qcom,mdss-dsi-panel-status-command = [06 01 00 01 05 00 02 0A 08]; + qcom,mdss-dsi-panel-status-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-panel-status-check-mode = "reg_read"; + qcom,mdss-dsi-panel-status-valid-params = <1>; + qcom,mdss-dsi-panel-status-value = <0x9c>; + qcom,mdss-dsi-panel-status-read-length = <1>; + + qcom,mdss-dsi-lp11-init; + qcom,mdss-dsi-init-delay-us = <50000>; + qcom,mdss-dsi-reset-sequence = <1 5>, <0 10>, <1 80>; + + }; +}; diff --git a/arch/arm/boot/dts/qcom/dsi-panel-ili9881c-tianma-c3b-720p-video.dtsi b/arch/arm/boot/dts/qcom/dsi-panel-ili9881c-tianma-c3b-720p-video.dtsi new file mode 100644 index 0000000000000..a538d8f776e99 --- /dev/null +++ b/arch/arm/boot/dts/qcom/dsi-panel-ili9881c-tianma-c3b-720p-video.dtsi @@ -0,0 +1,18892 @@ +/* Copyright (c) 2013, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/*--------------------------------------------------------------------------- + * This file is autogenerated file using gcdb parser. Please do not edit it. + * Update input XML file to add a new entry or update variable in this file + * VERSION = "1.0" + *---------------------------------------------------------------------------*/ +&mdss_mdp { + dsi_ili9881c_tianma_720p_video: qcom,mdss_dsi_ili9881c_tianma_c3b_720p_video { + qcom,mdss-dsi-panel-name = "ili9881c_HD720p_video_tianma_c3b"; + qcom,mdss-dsi-panel-controller = <&mdss_dsi0>; + qcom,mdss-dsi-panel-type = "dsi_video_mode"; + qcom,mdss-dsi-panel-destination = "display_1"; + qcom,mdss-dsi-panel-model = "TIANMA HD ILI9881C VIDEO PANEL"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <720>; + qcom,mdss-dsi-panel-height = <1280>; + qcom,mdss-pan-physical-width-dimension = <62>; + qcom,mdss-pan-physical-height-dimension = <110>; + qcom,mdss-dsi-h-front-porch = <112>; + qcom,mdss-dsi-h-back-porch = <160>; + qcom,mdss-dsi-h-pulse-width = <8>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <18>; + qcom,mdss-dsi-v-front-porch = <40>; + qcom,mdss-dsi-v-pulse-width = <4>; + + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <0>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-underflow-color = <0xff>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-on-command = [39 01 00 00 00 00 04 FF 98 81 00 + 39 01 00 00 78 00 02 11 00 + 39 01 00 00 0A 00 02 29 00 + 39 01 00 00 00 00 04 FF 98 81 04 + 39 01 00 00 00 00 02 92 0F + 39 01 00 00 00 00 02 21 B0 + 39 01 00 00 00 00 04 FF 98 81 05 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 02 7F 81 + 39 01 00 00 00 00 04 FF 98 81 06 + 39 01 00 00 00 00 02 00 81 + 39 01 00 00 00 00 02 7F 83 + 39 01 00 00 00 00 04 FF 98 81 07 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 02 7F 89 + 39 01 00 00 00 00 04 FF 98 81 08 + 39 01 00 00 00 00 02 00 89 + 39 01 00 00 00 00 02 7F 93 + 39 01 00 00 00 00 04 FF 98 81 09 + 39 01 00 00 00 00 02 00 00 + 39 01 00 00 00 00 02 7F 93 + 39 01 00 00 00 00 04 FF 98 81 0A + 39 01 00 00 00 00 02 00 93 + 39 01 00 00 00 00 02 7F b3 + 39 01 00 00 00 00 04 FF 98 81 00]; + qcom,mdss-dsi-off-command = [39 00 00 00 00 00 04 FF 98 81 00 + 05 01 00 00 1F 00 02 28 00 + 05 01 00 00 8c 00 02 10 00]; + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command-state = "dsi_lp_mode"; + + + qcom,mdss-dsi-panel-nature-command = [39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 21 B2 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 f6 00 + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 A1 1D + 39 00 00 00 00 00 02 A2 2C + 39 00 00 00 00 00 02 A3 14 + 39 00 00 00 00 00 02 A4 16 + 39 00 00 00 00 00 02 A5 29 + 39 00 00 00 00 00 02 A6 1D + 39 00 00 00 00 00 02 A7 1F + 39 00 00 00 00 00 02 A8 99 + 39 00 00 00 00 00 02 A9 1D + 39 00 00 00 00 00 02 AA 29 + 39 00 00 00 00 00 02 AB 8C + 39 00 00 00 00 00 02 AC 1B + 39 00 00 00 00 00 02 AD 1A + 39 00 00 00 00 00 02 AE 4E + 39 00 00 00 00 00 02 AF 22 + 39 00 00 00 00 00 02 B0 27 + 39 00 00 00 00 00 02 B1 55 + 39 00 00 00 00 00 02 B2 65 + 39 00 00 00 00 00 02 B3 39 + + 39 00 00 00 00 00 02 C0 00 + 39 00 00 00 00 00 02 C1 1C + 39 00 00 00 00 00 02 C2 2B + 39 00 00 00 00 00 02 C3 14 + 39 00 00 00 00 00 02 C4 17 + 39 00 00 00 00 00 02 C5 2A + 39 00 00 00 00 00 02 C6 1E + 39 00 00 00 00 00 02 C7 1F + 39 00 00 00 00 00 02 C8 98 + 39 00 00 00 00 00 02 C9 1D + 39 00 00 00 00 00 02 CA 29 + 39 00 00 00 00 00 02 CB 8B + 39 00 00 00 00 00 02 CC 1C + 39 00 00 00 00 00 02 CD 1A + 39 00 00 00 00 00 02 CE 4F + 39 00 00 00 00 00 02 CF 23 + 39 00 00 00 00 00 02 D0 28 + 39 00 00 00 00 00 02 D1 54 + 39 00 00 00 00 00 02 D2 64 + 39 00 00 00 00 00 02 D3 39 + + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 01 81 + 39 00 00 00 00 00 02 02 01 + 39 00 00 00 00 00 02 03 02 + 39 00 00 00 00 00 02 04 03 + 39 00 00 00 00 00 02 05 04 + 39 00 00 00 00 00 02 06 03 + 39 00 00 00 00 00 02 07 03 + 39 00 00 00 00 00 02 08 03 + 39 00 00 00 00 00 02 09 03 + 39 00 00 00 00 00 02 0A 03 + 39 00 00 00 00 00 02 0B 03 + 39 00 00 00 00 00 02 0C 03 + 39 00 00 00 00 00 02 0D 03 + 39 00 00 00 00 00 02 0E 03 + 39 00 00 00 00 00 02 0F 03 + 39 00 00 00 00 00 02 10 03 + 39 00 00 00 00 00 02 11 03 + 39 00 00 00 00 00 02 12 04 + 39 00 00 00 00 00 02 13 04 + 39 00 00 00 00 00 02 14 04 + 39 00 00 00 00 00 02 15 04 + 39 00 00 00 00 00 02 16 04 + 39 00 00 00 00 00 02 17 03 + 39 00 00 00 00 00 02 18 03 + 39 00 00 00 00 00 02 19 04 + 39 00 00 00 00 00 02 1A 04 + 39 00 00 00 00 00 02 1B 05 + 39 00 00 00 00 00 02 1C 05 + 39 00 00 00 00 00 02 1D 05 + 39 00 00 00 00 00 02 1E 05 + 39 00 00 00 00 00 02 1F 05 + 39 00 00 00 00 00 02 20 05 + 39 00 00 00 00 00 02 21 06 + 39 00 00 00 00 00 02 22 06 + 39 00 00 00 00 00 02 23 05 + 39 00 00 00 00 00 02 24 05 + 39 00 00 00 00 00 02 25 04 + 39 00 00 00 00 00 02 26 04 + 39 00 00 00 00 00 02 27 04 + 39 00 00 00 00 00 02 28 05 + 39 00 00 00 00 00 02 29 05 + 39 00 00 00 00 00 02 2A 05 + 39 00 00 00 00 00 02 2B 04 + 39 00 00 00 00 00 02 2C 04 + 39 00 00 00 00 00 02 2D 04 + 39 00 00 00 00 00 02 2E 04 + 39 00 00 00 00 00 02 2F 04 + 39 00 00 00 00 00 02 30 03 + 39 00 00 00 00 00 02 31 03 + 39 00 00 00 00 00 02 32 02 + 39 00 00 00 00 00 02 33 03 + 39 00 00 00 00 00 02 34 03 + 39 00 00 00 00 00 02 35 03 + 39 00 00 00 00 00 02 36 04 + 39 00 00 00 00 00 02 37 04 + 39 00 00 00 00 00 02 38 04 + 39 00 00 00 00 00 02 39 04 + 39 00 00 00 00 00 02 3A 05 + 39 00 00 00 00 00 02 3B 06 + 39 00 00 00 00 00 02 3C 06 + 39 00 00 00 00 00 02 3D 06 + 39 00 00 00 00 00 02 3E 06 + 39 00 00 00 00 00 02 3F 07 + 39 00 00 00 00 00 02 40 07 + 39 00 00 00 00 00 02 41 07 + 39 00 00 00 00 00 02 42 07 + 39 00 00 00 00 00 02 43 07 + 39 00 00 00 00 00 02 44 07 + 39 00 00 00 00 00 02 45 07 + 39 00 00 00 00 00 02 46 07 + 39 00 00 00 00 00 02 47 07 + 39 00 00 00 00 00 02 48 07 + 39 00 00 00 00 00 02 49 08 + 39 00 00 00 00 00 02 4A 07 + 39 00 00 00 00 00 02 4B 07 + 39 00 00 00 00 00 02 4C 06 + 39 00 00 00 00 00 02 4D 06 + 39 00 00 00 00 00 02 4E 05 + 39 00 00 00 00 00 02 4F 05 + 39 00 00 00 00 00 02 50 05 + 39 00 00 00 00 00 02 51 05 + 39 00 00 00 00 00 02 52 06 + 39 00 00 00 00 00 02 53 06 + 39 00 00 00 00 00 02 54 05 + 39 00 00 00 00 00 02 55 05 + 39 00 00 00 00 00 02 56 05 + 39 00 00 00 00 00 02 57 05 + 39 00 00 00 00 00 02 58 05 + 39 00 00 00 00 00 02 59 05 + 39 00 00 00 00 00 02 5A 05 + 39 00 00 00 00 00 02 5B 05 + 39 00 00 00 00 00 02 5C 05 + 39 00 00 00 00 00 02 5D 04 + 39 00 00 00 00 00 02 5E 04 + 39 00 00 00 00 00 02 5F 04 + 39 00 00 00 00 00 02 60 04 + 39 00 00 00 00 00 02 61 04 + 39 00 00 00 00 00 02 62 04 + 39 00 00 00 00 00 02 63 03 + 39 00 00 00 00 00 02 64 03 + 39 00 00 00 00 00 02 65 03 + 39 00 00 00 00 00 02 66 03 + 39 00 00 00 00 00 02 67 03 + 39 00 00 00 00 00 02 68 02 + 39 00 00 00 00 00 02 69 02 + 39 00 00 00 00 00 02 6A 02 + 39 00 00 00 00 00 02 6B 02 + 39 00 00 00 00 00 02 6C 02 + 39 00 00 00 00 00 02 6D 02 + 39 00 00 00 00 00 02 6E 02 + 39 00 00 00 00 00 02 6F 01 + 39 00 00 00 00 00 02 70 01 + 39 00 00 00 00 00 02 71 01 + 39 00 00 00 00 00 02 72 01 + 39 00 00 00 00 00 02 73 00 + 39 00 00 00 00 00 02 74 00 + 39 00 00 00 00 00 02 75 00 + 39 00 00 00 00 00 02 76 00 + 39 00 00 00 00 00 02 77 81 + 39 00 00 00 00 00 02 78 81 + 39 00 00 00 00 00 02 79 81 + 39 00 00 00 00 00 02 7A 81 + 39 00 00 00 00 00 02 7B 81 + 39 00 00 00 00 00 02 7C 82 + 39 00 00 00 00 00 02 7D 82 + 39 00 00 00 00 00 02 7E 82 + 39 00 00 00 00 00 02 7F 82 + + + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 01 82 + 39 00 00 00 00 00 02 02 82 + 39 00 00 00 00 00 02 03 81 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 00 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 00 + 39 00 00 00 00 00 02 08 81 + 39 00 00 00 00 00 02 09 81 + 39 00 00 00 00 00 02 0A 81 + 39 00 00 00 00 00 02 0B 81 + 39 00 00 00 00 00 02 0C 82 + 39 00 00 00 00 00 02 0D 82 + 39 00 00 00 00 00 02 0E 82 + 39 00 00 00 00 00 02 0F 82 + 39 00 00 00 00 00 02 10 82 + 39 00 00 00 00 00 02 11 83 + 39 00 00 00 00 00 02 12 82 + 39 00 00 00 00 00 02 13 82 + 39 00 00 00 00 00 02 14 82 + 39 00 00 00 00 00 02 15 82 + 39 00 00 00 00 00 02 16 82 + 39 00 00 00 00 00 02 17 82 + 39 00 00 00 00 00 02 18 83 + 39 00 00 00 00 00 02 19 84 + 39 00 00 00 00 00 02 1A 84 + 39 00 00 00 00 00 02 1B 83 + 39 00 00 00 00 00 02 1C 83 + 39 00 00 00 00 00 02 1D 83 + 39 00 00 00 00 00 02 1E 83 + 39 00 00 00 00 00 02 1F 83 + 39 00 00 00 00 00 02 20 83 + 39 00 00 00 00 00 02 21 83 + 39 00 00 00 00 00 02 22 84 + 39 00 00 00 00 00 02 23 83 + 39 00 00 00 00 00 02 24 83 + 39 00 00 00 00 00 02 25 84 + 39 00 00 00 00 00 02 26 84 + 39 00 00 00 00 00 02 27 84 + 39 00 00 00 00 00 02 28 85 + 39 00 00 00 00 00 02 29 85 + 39 00 00 00 00 00 02 2A 85 + 39 00 00 00 00 00 02 2B 85 + 39 00 00 00 00 00 02 2C 85 + 39 00 00 00 00 00 02 2D 85 + 39 00 00 00 00 00 02 2E 85 + 39 00 00 00 00 00 02 2F 85 + 39 00 00 00 00 00 02 30 86 + 39 00 00 00 00 00 02 31 86 + 39 00 00 00 00 00 02 32 87 + 39 00 00 00 00 00 02 33 87 + 39 00 00 00 00 00 02 34 88 + 39 00 00 00 00 00 02 35 89 + 39 00 00 00 00 00 02 36 88 + 39 00 00 00 00 00 02 37 88 + 39 00 00 00 00 00 02 38 87 + 39 00 00 00 00 00 02 39 87 + 39 00 00 00 00 00 02 3A 87 + 39 00 00 00 00 00 02 3B 87 + 39 00 00 00 00 00 02 3C 87 + 39 00 00 00 00 00 02 3D 86 + 39 00 00 00 00 00 02 3E 86 + 39 00 00 00 00 00 02 3F 86 + 39 00 00 00 00 00 02 40 86 + 39 00 00 00 00 00 02 41 86 + 39 00 00 00 00 00 02 42 85 + 39 00 00 00 00 00 02 43 85 + 39 00 00 00 00 00 02 44 85 + 39 00 00 00 00 00 02 45 85 + 39 00 00 00 00 00 02 46 85 + 39 00 00 00 00 00 02 47 85 + 39 00 00 00 00 00 02 48 86 + 39 00 00 00 00 00 02 49 86 + 39 00 00 00 00 00 02 4A 86 + 39 00 00 00 00 00 02 4B 86 + 39 00 00 00 00 00 02 4C 86 + 39 00 00 00 00 00 02 4D 86 + 39 00 00 00 00 00 02 4E 86 + 39 00 00 00 00 00 02 4F 87 + 39 00 00 00 00 00 02 50 88 + 39 00 00 00 00 00 02 51 88 + 39 00 00 00 00 00 02 52 89 + 39 00 00 00 00 00 02 53 89 + 39 00 00 00 00 00 02 54 89 + 39 00 00 00 00 00 02 55 89 + 39 00 00 00 00 00 02 56 89 + 39 00 00 00 00 00 02 57 89 + 39 00 00 00 00 00 02 58 89 + 39 00 00 00 00 00 02 59 89 + 39 00 00 00 00 00 02 5A 89 + 39 00 00 00 00 00 02 5B 89 + 39 00 00 00 00 00 02 5C 89 + 39 00 00 00 00 00 02 5D 89 + 39 00 00 00 00 00 02 5E 8A + 39 00 00 00 00 00 02 5F 8A + 39 00 00 00 00 00 02 60 8A + 39 00 00 00 00 00 02 61 8A + 39 00 00 00 00 00 02 62 8B + 39 00 00 00 00 00 02 63 8B + 39 00 00 00 00 00 02 64 8B + 39 00 00 00 00 00 02 65 8B + 39 00 00 00 00 00 02 66 8B + 39 00 00 00 00 00 02 67 8C + 39 00 00 00 00 00 02 68 8C + 39 00 00 00 00 00 02 69 8C + 39 00 00 00 00 00 02 6A 8C + 39 00 00 00 00 00 02 6B 8D + 39 00 00 00 00 00 02 6C 8D + 39 00 00 00 00 00 02 6D 8D + 39 00 00 00 00 00 02 6E 8D + 39 00 00 00 00 00 02 6F 8E + 39 00 00 00 00 00 02 70 8D + 39 00 00 00 00 00 02 71 8D + 39 00 00 00 00 00 02 72 8E + 39 00 00 00 00 00 02 73 8E + 39 00 00 00 00 00 02 74 8F + 39 00 00 00 00 00 02 75 8F + 39 00 00 00 00 00 02 76 8F + 39 00 00 00 00 00 02 77 90 + 39 00 00 00 00 00 02 78 90 + 39 00 00 00 00 00 02 79 90 + 39 00 00 00 00 00 02 7A 90 + 39 00 00 00 00 00 02 7B 91 + 39 00 00 00 00 00 02 7C 91 + 39 00 00 00 00 00 02 7D 91 + 39 00 00 00 00 00 02 7E 91 + 39 00 00 00 00 00 02 7F 92 + + 39 00 00 00 00 00 04 FF 98 81 09 + 39 00 00 00 00 00 02 01 82 + 39 00 00 00 00 00 02 02 82 + 39 00 00 00 00 00 02 03 81 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 00 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 00 + 39 00 00 00 00 00 02 08 81 + 39 00 00 00 00 00 02 09 00 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 81 + 39 00 00 00 00 00 02 0C 81 + 39 00 00 00 00 00 02 0D 81 + 39 00 00 00 00 00 02 0E 81 + 39 00 00 00 00 00 02 0F 81 + 39 00 00 00 00 00 02 10 82 + 39 00 00 00 00 00 02 11 82 + 39 00 00 00 00 00 02 12 81 + 39 00 00 00 00 00 02 13 81 + 39 00 00 00 00 00 02 14 81 + 39 00 00 00 00 00 02 15 81 + 39 00 00 00 00 00 02 16 81 + 39 00 00 00 00 00 02 17 82 + 39 00 00 00 00 00 02 18 82 + 39 00 00 00 00 00 02 19 83 + 39 00 00 00 00 00 02 1A 82 + 39 00 00 00 00 00 02 1B 82 + 39 00 00 00 00 00 02 1C 81 + 39 00 00 00 00 00 02 1D 81 + 39 00 00 00 00 00 02 1E 81 + 39 00 00 00 00 00 02 1F 81 + 39 00 00 00 00 00 02 20 82 + 39 00 00 00 00 00 02 21 82 + 39 00 00 00 00 00 02 22 82 + 39 00 00 00 00 00 02 23 81 + 39 00 00 00 00 00 02 24 81 + 39 00 00 00 00 00 02 25 82 + 39 00 00 00 00 00 02 26 82 + 39 00 00 00 00 00 02 27 83 + 39 00 00 00 00 00 02 28 83 + 39 00 00 00 00 00 02 29 83 + 39 00 00 00 00 00 02 2A 83 + 39 00 00 00 00 00 02 2B 83 + 39 00 00 00 00 00 02 2C 83 + 39 00 00 00 00 00 02 2D 83 + 39 00 00 00 00 00 02 2E 83 + 39 00 00 00 00 00 02 2F 83 + 39 00 00 00 00 00 02 30 84 + 39 00 00 00 00 00 02 31 84 + 39 00 00 00 00 00 02 32 85 + 39 00 00 00 00 00 02 33 85 + 39 00 00 00 00 00 02 34 86 + 39 00 00 00 00 00 02 35 86 + 39 00 00 00 00 00 02 36 85 + 39 00 00 00 00 00 02 37 85 + 39 00 00 00 00 00 02 38 85 + 39 00 00 00 00 00 02 39 85 + 39 00 00 00 00 00 02 3A 85 + 39 00 00 00 00 00 02 3B 84 + 39 00 00 00 00 00 02 3C 84 + 39 00 00 00 00 00 02 3D 83 + 39 00 00 00 00 00 02 3E 83 + 39 00 00 00 00 00 02 3F 83 + 39 00 00 00 00 00 02 40 83 + 39 00 00 00 00 00 02 41 83 + 39 00 00 00 00 00 02 42 82 + 39 00 00 00 00 00 02 43 82 + 39 00 00 00 00 00 02 44 82 + 39 00 00 00 00 00 02 45 82 + 39 00 00 00 00 00 02 46 82 + 39 00 00 00 00 00 02 47 82 + 39 00 00 00 00 00 02 48 83 + 39 00 00 00 00 00 02 49 83 + 39 00 00 00 00 00 02 4A 83 + 39 00 00 00 00 00 02 4B 83 + 39 00 00 00 00 00 02 4C 83 + 39 00 00 00 00 00 02 4D 83 + 39 00 00 00 00 00 02 4E 84 + 39 00 00 00 00 00 02 4F 84 + 39 00 00 00 00 00 02 50 85 + 39 00 00 00 00 00 02 51 85 + 39 00 00 00 00 00 02 52 85 + 39 00 00 00 00 00 02 53 85 + 39 00 00 00 00 00 02 54 85 + 39 00 00 00 00 00 02 55 85 + 39 00 00 00 00 00 02 56 85 + 39 00 00 00 00 00 02 57 86 + 39 00 00 00 00 00 02 58 86 + 39 00 00 00 00 00 02 59 86 + 39 00 00 00 00 00 02 5A 86 + 39 00 00 00 00 00 02 5B 86 + 39 00 00 00 00 00 02 5C 86 + 39 00 00 00 00 00 02 5D 86 + 39 00 00 00 00 00 02 5E 87 + 39 00 00 00 00 00 02 5F 87 + 39 00 00 00 00 00 02 60 87 + 39 00 00 00 00 00 02 61 87 + 39 00 00 00 00 00 02 62 88 + 39 00 00 00 00 00 02 63 88 + 39 00 00 00 00 00 02 64 88 + 39 00 00 00 00 00 02 65 88 + 39 00 00 00 00 00 02 66 88 + 39 00 00 00 00 00 02 67 89 + 39 00 00 00 00 00 02 68 89 + 39 00 00 00 00 00 02 69 89 + 39 00 00 00 00 00 02 6A 89 + 39 00 00 00 00 00 02 6B 8A + 39 00 00 00 00 00 02 6C 8A + 39 00 00 00 00 00 02 6D 8A + 39 00 00 00 00 00 02 6E 8A + 39 00 00 00 00 00 02 6F 8A + 39 00 00 00 00 00 02 70 8A + 39 00 00 00 00 00 02 71 8B + 39 00 00 00 00 00 02 72 8B + 39 00 00 00 00 00 02 73 8C + 39 00 00 00 00 00 02 74 8C + 39 00 00 00 00 00 02 75 8C + 39 00 00 00 00 00 02 76 8D + 39 00 00 00 00 00 02 77 8D + 39 00 00 00 00 00 02 78 8D + 39 00 00 00 00 00 02 79 8D + 39 00 00 00 00 00 02 7A 8E + 39 00 00 00 00 00 02 7B 8E + 39 00 00 00 00 00 02 7C 8E + 39 00 00 00 00 00 02 7D 8E + 39 00 00 00 00 00 02 7E 8F + 39 00 00 00 00 00 02 7F 8F + 39 01 00 00 00 00 04 FF 98 81 00 + + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 01 82 + 39 00 00 00 00 00 02 02 82 + 39 00 00 00 00 00 02 03 82 + 39 00 00 00 00 00 02 04 82 + 39 00 00 00 00 00 02 05 83 + 39 00 00 00 00 00 02 06 83 + 39 00 00 00 00 00 02 07 83 + 39 00 00 00 00 00 02 08 83 + 39 00 00 00 00 00 02 09 82 + 39 00 00 00 00 00 02 0A 82 + 39 00 00 00 00 00 02 0B 82 + 39 00 00 00 00 00 02 0C 82 + 39 00 00 00 00 00 02 0D 82 + 39 00 00 00 00 00 02 0E 82 + 39 00 00 00 00 00 02 0F 82 + 39 00 00 00 00 00 02 10 81 + 39 00 00 00 00 00 02 11 82 + 39 00 00 00 00 00 02 12 82 + 39 00 00 00 00 00 02 13 82 + 39 00 00 00 00 00 02 14 83 + 39 00 00 00 00 00 02 15 83 + 39 00 00 00 00 00 02 16 84 + 39 00 00 00 00 00 02 17 84 + 39 00 00 00 00 00 02 18 84 + 39 00 00 00 00 00 02 19 84 + 39 00 00 00 00 00 02 1A 85 + 39 00 00 00 00 00 02 1B 85 + 39 00 00 00 00 00 02 1C 85 + 39 00 00 00 00 00 02 1D 85 + 39 00 00 00 00 00 02 1E 85 + 39 00 00 00 00 00 02 1F 85 + 39 00 00 00 00 00 02 20 85 + 39 00 00 00 00 00 02 21 86 + 39 00 00 00 00 00 02 22 86 + 39 00 00 00 00 00 02 23 86 + 39 00 00 00 00 00 02 24 86 + 39 00 00 00 00 00 02 25 86 + 39 00 00 00 00 00 02 26 86 + 39 00 00 00 00 00 02 27 86 + 39 00 00 00 00 00 02 28 86 + 39 00 00 00 00 00 02 29 86 + 39 00 00 00 00 00 02 2A 85 + 39 00 00 00 00 00 02 2B 85 + 39 00 00 00 00 00 02 2C 85 + 39 00 00 00 00 00 02 2D 85 + 39 00 00 00 00 00 02 2E 85 + 39 00 00 00 00 00 02 2F 84 + 39 00 00 00 00 00 02 30 84 + 39 00 00 00 00 00 02 31 85 + 39 00 00 00 00 00 02 32 85 + 39 00 00 00 00 00 02 33 85 + 39 00 00 00 00 00 02 34 86 + 39 00 00 00 00 00 02 35 86 + 39 00 00 00 00 00 02 36 87 + 39 00 00 00 00 00 02 37 87 + 39 00 00 00 00 00 02 38 88 + 39 00 00 00 00 00 02 39 88 + 39 00 00 00 00 00 02 3A 88 + 39 00 00 00 00 00 02 3B 88 + 39 00 00 00 00 00 02 3C 89 + 39 00 00 00 00 00 02 3D 89 + 39 00 00 00 00 00 02 3E 89 + 39 00 00 00 00 00 02 3F 89 + 39 00 00 00 00 00 02 40 89 + 39 00 00 00 00 00 02 41 89 + 39 00 00 00 00 00 02 42 89 + 39 00 00 00 00 00 02 43 89 + 39 00 00 00 00 00 02 44 89 + 39 00 00 00 00 00 02 45 88 + 39 00 00 00 00 00 02 46 88 + 39 00 00 00 00 00 02 47 88 + 39 00 00 00 00 00 02 48 87 + 39 00 00 00 00 00 02 49 87 + 39 00 00 00 00 00 02 4A 86 + 39 00 00 00 00 00 02 4B 86 + 39 00 00 00 00 00 02 4C 85 + 39 00 00 00 00 00 02 4D 85 + 39 00 00 00 00 00 02 4E 86 + 39 00 00 00 00 00 02 4F 86 + 39 00 00 00 00 00 02 50 87 + 39 00 00 00 00 00 02 51 87 + 39 00 00 00 00 00 02 52 88 + 39 00 00 00 00 00 02 53 88 + 39 00 00 00 00 00 02 54 88 + 39 00 00 00 00 00 02 55 88 + 39 00 00 00 00 00 02 56 88 + 39 00 00 00 00 00 02 57 88 + 39 00 00 00 00 00 02 58 88 + 39 00 00 00 00 00 02 59 88 + 39 00 00 00 00 00 02 5A 88 + 39 00 00 00 00 00 02 5B 88 + 39 00 00 00 00 00 02 5C 87 + 39 00 00 00 00 00 02 5D 87 + 39 00 00 00 00 00 02 5E 88 + 39 00 00 00 00 00 02 5F 88 + 39 00 00 00 00 00 02 60 88 + 39 00 00 00 00 00 02 61 89 + 39 00 00 00 00 00 02 62 89 + 39 00 00 00 00 00 02 63 89 + 39 00 00 00 00 00 02 64 89 + 39 00 00 00 00 00 02 65 89 + 39 00 00 00 00 00 02 66 88 + 39 00 00 00 00 00 02 67 88 + 39 00 00 00 00 00 02 68 88 + 39 00 00 00 00 00 02 69 87 + 39 00 00 00 00 00 02 6A 88 + 39 00 00 00 00 00 02 6B 88 + 39 00 00 00 00 00 02 6C 88 + 39 00 00 00 00 00 02 6D 88 + 39 00 00 00 00 00 02 6E 88 + 39 00 00 00 00 00 02 6F 88 + 39 00 00 00 00 00 02 70 88 + 39 00 00 00 00 00 02 71 87 + 39 00 00 00 00 00 02 72 87 + 39 00 00 00 00 00 02 73 87 + 39 00 00 00 00 00 02 74 87 + 39 00 00 00 00 00 02 75 87 + 39 00 00 00 00 00 02 76 87 + 39 00 00 00 00 00 02 77 87 + 39 00 00 00 00 00 02 78 87 + 39 00 00 00 00 00 02 79 87 + 39 00 00 00 00 00 02 7A 87 + 39 00 00 00 00 00 02 7B 87 + 39 00 00 00 00 00 02 7C 86 + 39 00 00 00 00 00 02 7D 86 + 39 00 00 00 00 00 02 7E 87 + 39 00 00 00 00 00 02 7F 87 + + 39 00 00 00 00 00 04 FF 98 81 08 + 39 00 00 00 00 00 02 01 92 + 39 00 00 00 00 00 02 02 92 + 39 00 00 00 00 00 02 03 92 + 39 00 00 00 00 00 02 04 92 + 39 00 00 00 00 00 02 05 92 + 39 00 00 00 00 00 02 06 93 + 39 00 00 00 00 00 02 07 93 + 39 00 00 00 00 00 02 08 93 + 39 00 00 00 00 00 02 09 93 + 39 00 00 00 00 00 02 0A 93 + 39 00 00 00 00 00 02 0B 93 + 39 00 00 00 00 00 02 0C 93 + 39 00 00 00 00 00 02 0D 93 + 39 00 00 00 00 00 02 0E 93 + 39 00 00 00 00 00 02 0F 93 + 39 00 00 00 00 00 02 10 93 + 39 00 00 00 00 00 02 11 93 + 39 00 00 00 00 00 02 12 92 + 39 00 00 00 00 00 02 13 93 + 39 00 00 00 00 00 02 14 92 + 39 00 00 00 00 00 02 15 93 + 39 00 00 00 00 00 02 16 93 + 39 00 00 00 00 00 02 17 93 + 39 00 00 00 00 00 02 18 94 + 39 00 00 00 00 00 02 19 94 + 39 00 00 00 00 00 02 1A 95 + 39 00 00 00 00 00 02 1B 95 + 39 00 00 00 00 00 02 1C 95 + 39 00 00 00 00 00 02 1D 96 + 39 00 00 00 00 00 02 1E 96 + 39 00 00 00 00 00 02 1F 96 + 39 00 00 00 00 00 02 20 96 + 39 00 00 00 00 00 02 21 97 + 39 00 00 00 00 00 02 22 97 + 39 00 00 00 00 00 02 23 97 + 39 00 00 00 00 00 02 24 97 + 39 00 00 00 00 00 02 25 97 + 39 00 00 00 00 00 02 26 98 + 39 00 00 00 00 00 02 27 98 + 39 00 00 00 00 00 02 28 98 + 39 00 00 00 00 00 02 29 98 + 39 00 00 00 00 00 02 2A 97 + 39 00 00 00 00 00 02 2B 97 + 39 00 00 00 00 00 02 2C 98 + 39 00 00 00 00 00 02 2D 98 + 39 00 00 00 00 00 02 2E 98 + 39 00 00 00 00 00 02 2F 97 + 39 00 00 00 00 00 02 30 97 + 39 00 00 00 00 00 02 31 97 + 39 00 00 00 00 00 02 32 97 + 39 00 00 00 00 00 02 33 97 + 39 00 00 00 00 00 02 34 96 + 39 00 00 00 00 00 02 35 96 + 39 00 00 00 00 00 02 36 97 + 39 00 00 00 00 00 02 37 97 + 39 00 00 00 00 00 02 38 98 + 39 00 00 00 00 00 02 39 99 + 39 00 00 00 00 00 02 3A 99 + 39 00 00 00 00 00 02 3B 99 + 39 00 00 00 00 00 02 3C 9A + 39 00 00 00 00 00 02 3D 9A + 39 00 00 00 00 00 02 3E 9B + 39 00 00 00 00 00 02 3F 9B + 39 00 00 00 00 00 02 40 9B + 39 00 00 00 00 00 02 41 9B + 39 00 00 00 00 00 02 42 9B + 39 00 00 00 00 00 02 43 9C + 39 00 00 00 00 00 02 44 9C + 39 00 00 00 00 00 02 45 9C + 39 00 00 00 00 00 02 46 9C + 39 00 00 00 00 00 02 47 9C + 39 00 00 00 00 00 02 48 9C + 39 00 00 00 00 00 02 49 9B + 39 00 00 00 00 00 02 4A 9B + 39 00 00 00 00 00 02 4B 9B + 39 00 00 00 00 00 02 4C 9A + 39 00 00 00 00 00 02 4D 9A + 39 00 00 00 00 00 02 4E 9A + 39 00 00 00 00 00 02 4F 99 + 39 00 00 00 00 00 02 50 99 + 39 00 00 00 00 00 02 51 98 + 39 00 00 00 00 00 02 52 99 + 39 00 00 00 00 00 02 53 99 + 39 00 00 00 00 00 02 54 9A + 39 00 00 00 00 00 02 55 9B + 39 00 00 00 00 00 02 56 9B + 39 00 00 00 00 00 02 57 9B + 39 00 00 00 00 00 02 58 9C + 39 00 00 00 00 00 02 59 9C + 39 00 00 00 00 00 02 5A 9C + 39 00 00 00 00 00 02 5B 9C + 39 00 00 00 00 00 02 5C 9C + 39 00 00 00 00 00 02 5D 9D + 39 00 00 00 00 00 02 5E 9C + 39 00 00 00 00 00 02 5F 9C + 39 00 00 00 00 00 02 60 9C + 39 00 00 00 00 00 02 61 9C + 39 00 00 00 00 00 02 62 9C + 39 00 00 00 00 00 02 63 9C + 39 00 00 00 00 00 02 64 9D + 39 00 00 00 00 00 02 65 9D + 39 00 00 00 00 00 02 66 9D + 39 00 00 00 00 00 02 67 9E + 39 00 00 00 00 00 02 68 9E + 39 00 00 00 00 00 02 69 9E + 39 00 00 00 00 00 02 6A 9E + 39 00 00 00 00 00 02 6B 9E + 39 00 00 00 00 00 02 6C 9D + 39 00 00 00 00 00 02 6D 9D + 39 00 00 00 00 00 02 6E 9D + 39 00 00 00 00 00 02 6F 9D + 39 00 00 00 00 00 02 70 9E + 39 00 00 00 00 00 02 71 9E + 39 00 00 00 00 00 02 72 9E + 39 00 00 00 00 00 02 73 9E + 39 00 00 00 00 00 02 74 9E + 39 00 00 00 00 00 02 75 9E + 39 00 00 00 00 00 02 76 9E + 39 00 00 00 00 00 02 77 9D + 39 00 00 00 00 00 02 78 9D + 39 00 00 00 00 00 02 79 9D + 39 00 00 00 00 00 02 7A 9D + 39 00 00 00 00 00 02 7B 9E + 39 00 00 00 00 00 02 7C 9E + 39 00 00 00 00 00 02 7D 9E + 39 00 00 00 00 00 02 7E 9E + 39 00 00 00 00 00 02 7F 9E + + + 39 00 00 00 00 00 04 FF 98 81 0A + 39 00 00 00 00 00 02 01 90 + 39 00 00 00 00 00 02 02 90 + 39 00 00 00 00 00 02 03 90 + 39 00 00 00 00 00 02 04 90 + 39 00 00 00 00 00 02 05 90 + 39 00 00 00 00 00 02 06 90 + 39 00 00 00 00 00 02 07 91 + 39 00 00 00 00 00 02 08 91 + 39 00 00 00 00 00 02 09 91 + 39 00 00 00 00 00 02 0A 91 + 39 00 00 00 00 00 02 0B 91 + 39 00 00 00 00 00 02 0C 91 + 39 00 00 00 00 00 02 0D 91 + 39 00 00 00 00 00 02 0E 91 + 39 00 00 00 00 00 02 0F 91 + 39 00 00 00 00 00 02 10 91 + 39 00 00 00 00 00 02 11 91 + 39 00 00 00 00 00 02 12 91 + 39 00 00 00 00 00 02 13 91 + 39 00 00 00 00 00 02 14 91 + 39 00 00 00 00 00 02 15 91 + 39 00 00 00 00 00 02 16 92 + 39 00 00 00 00 00 02 17 92 + 39 00 00 00 00 00 02 18 93 + 39 00 00 00 00 00 02 19 93 + 39 00 00 00 00 00 02 1A 94 + 39 00 00 00 00 00 02 1B 94 + 39 00 00 00 00 00 02 1C 94 + 39 00 00 00 00 00 02 1D 95 + 39 00 00 00 00 00 02 1E 95 + 39 00 00 00 00 00 02 1F 95 + 39 00 00 00 00 00 02 20 96 + 39 00 00 00 00 00 02 21 96 + 39 00 00 00 00 00 02 22 96 + 39 00 00 00 00 00 02 23 97 + 39 00 00 00 00 00 02 24 97 + 39 00 00 00 00 00 02 25 97 + 39 00 00 00 00 00 02 26 97 + 39 00 00 00 00 00 02 27 98 + 39 00 00 00 00 00 02 28 98 + 39 00 00 00 00 00 02 29 98 + 39 00 00 00 00 00 02 2A 98 + 39 00 00 00 00 00 02 2B 98 + 39 00 00 00 00 00 02 2C 98 + 39 00 00 00 00 00 02 2D 98 + 39 00 00 00 00 00 02 2E 98 + 39 00 00 00 00 00 02 2F 98 + 39 00 00 00 00 00 02 30 98 + 39 00 00 00 00 00 02 31 98 + 39 00 00 00 00 00 02 32 98 + 39 00 00 00 00 00 02 33 98 + 39 00 00 00 00 00 02 34 98 + 39 00 00 00 00 00 02 35 98 + 39 00 00 00 00 00 02 36 99 + 39 00 00 00 00 00 02 37 99 + 39 00 00 00 00 00 02 38 9A + 39 00 00 00 00 00 02 39 9A + 39 00 00 00 00 00 02 3A 9B + 39 00 00 00 00 00 02 3B 9C + 39 00 00 00 00 00 02 3C 9C + 39 00 00 00 00 00 02 3D 9D + 39 00 00 00 00 00 02 3E 9D + 39 00 00 00 00 00 02 3F 9E + 39 00 00 00 00 00 02 40 9E + 39 00 00 00 00 00 02 41 9E + 39 00 00 00 00 00 02 42 9F + 39 00 00 00 00 00 02 43 9F + 39 00 00 00 00 00 02 44 9F + 39 00 00 00 00 00 02 45 A0 + 39 00 00 00 00 00 02 46 A0 + 39 00 00 00 00 00 02 47 A0 + 39 00 00 00 00 00 02 48 A0 + 39 00 00 00 00 00 02 49 A0 + 39 00 00 00 00 00 02 4A A0 + 39 00 00 00 00 00 02 4B A0 + 39 00 00 00 00 00 02 4C A0 + 39 00 00 00 00 00 02 4D A0 + 39 00 00 00 00 00 02 4E A0 + 39 00 00 00 00 00 02 4F A0 + 39 00 00 00 00 00 02 50 A0 + 39 00 00 00 00 00 02 51 A0 + 39 00 00 00 00 00 02 52 9F + 39 00 00 00 00 00 02 53 9F + 39 00 00 00 00 00 02 54 A0 + 39 00 00 00 00 00 02 55 A1 + 39 00 00 00 00 00 02 56 A1 + 39 00 00 00 00 00 02 57 A2 + 39 00 00 00 00 00 02 58 A3 + 39 00 00 00 00 00 02 59 A4 + 39 00 00 00 00 00 02 5A A4 + 39 00 00 00 00 00 02 5B A5 + 39 00 00 00 00 00 02 5C A5 + 39 00 00 00 00 00 02 5D A5 + 39 00 00 00 00 00 02 5E A6 + 39 00 00 00 00 00 02 5F A6 + 39 00 00 00 00 00 02 60 A6 + 39 00 00 00 00 00 02 61 A7 + 39 00 00 00 00 00 02 62 A7 + 39 00 00 00 00 00 02 63 A7 + 39 00 00 00 00 00 02 64 A7 + 39 00 00 00 00 00 02 65 A7 + 39 00 00 00 00 00 02 66 A8 + 39 00 00 00 00 00 02 67 A9 + 39 00 00 00 00 00 02 68 AA + 39 00 00 00 00 00 02 69 AA + 39 00 00 00 00 00 02 6A AB + 39 00 00 00 00 00 02 6B AB + 39 00 00 00 00 00 02 6C AC + 39 00 00 00 00 00 02 6D AC + 39 00 00 00 00 00 02 6E AD + 39 00 00 00 00 00 02 6F AD + 39 00 00 00 00 00 02 70 AD + 39 00 00 00 00 00 02 71 AD + 39 00 00 00 00 00 02 72 AD + 39 00 00 00 00 00 02 73 AE + 39 00 00 00 00 00 02 74 AF + 39 00 00 00 00 00 02 75 B0 + 39 00 00 00 00 00 02 76 B0 + 39 00 00 00 00 00 02 77 B1 + 39 00 00 00 00 00 02 78 B2 + 39 00 00 00 00 00 02 79 B2 + 39 00 00 00 00 00 02 7A B3 + 39 00 00 00 00 00 02 7B B3 + 39 00 00 00 00 00 02 7C B3 + 39 00 00 00 00 00 02 7D B4 + 39 00 00 00 00 00 02 7E B5 + 39 00 00 00 00 00 02 7F B5 + + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F 82 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 82 + 39 00 00 00 00 00 02 7F 87 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F 92 + 39 00 00 00 00 00 04 FF 98 81 08 + 39 00 00 00 00 00 02 00 92 + 39 00 00 00 00 00 02 7F 9E + 39 00 00 00 00 00 04 FF 98 81 09 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F 8F + 39 00 00 00 00 00 04 FF 98 81 0A + 39 00 00 00 00 00 02 00 8F + 39 00 00 00 00 00 02 7F B5 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 80 01 + 39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 21 B0 + 39 00 00 00 00 00 02 32 02 + 39 01 00 00 00 00 04 FF 98 81 00 + 39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 21 B2 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 04 FF 98 81 0A + 39 00 00 00 00 00 02 7F B5 + 39 00 00 00 00 00 02 7E B5 + 39 00 00 00 00 00 02 7D B4 + 39 00 00 00 00 00 02 7C B3 + 39 00 00 00 00 00 02 7B B3 + 39 00 00 00 00 00 02 7A B3 + 39 00 00 00 00 00 02 79 B2 + 39 00 00 00 00 00 02 78 B2 + 39 00 00 00 00 00 02 77 B1 + 39 00 00 00 00 00 02 76 B0 + 39 00 00 00 00 00 02 75 B0 + 39 00 00 00 00 00 02 74 AF + 39 00 00 00 00 00 02 73 AE + 39 00 00 00 00 00 02 72 AD + 39 00 00 00 00 00 02 71 AD + 39 00 00 00 00 00 02 70 AD + 39 00 00 00 00 00 02 6F AD + 39 00 00 00 00 00 02 6E AD + 39 00 00 00 00 00 02 6D AC + 39 00 00 00 00 00 02 6C AC + 39 00 00 00 00 00 02 6B AB + 39 00 00 00 00 00 02 6A AB + 39 00 00 00 00 00 02 69 AA + 39 00 00 00 00 00 02 68 AA + 39 00 00 00 00 00 02 67 A9 + 39 00 00 00 00 00 02 66 A8 + 39 00 00 00 00 00 02 65 A7 + 39 00 00 00 00 00 02 64 A7 + 39 00 00 00 00 00 02 63 A7 + 39 00 00 00 00 00 02 62 A7 + 39 00 00 00 00 00 02 61 A7 + 39 00 00 00 00 00 02 60 A6 + 39 00 00 00 00 00 02 5F A6 + 39 00 00 00 00 00 02 5E A6 + 39 00 00 00 00 00 02 5D A5 + 39 00 00 00 00 00 02 5C A5 + 39 00 00 00 00 00 02 5B A5 + 39 00 00 00 00 00 02 5A A4 + 39 00 00 00 00 00 02 59 A4 + 39 00 00 00 00 00 02 58 A3 + 39 00 00 00 00 00 02 57 A2 + 39 00 00 00 00 00 02 56 A1 + 39 00 00 00 00 00 02 55 A1 + 39 00 00 00 00 00 02 54 A0 + 39 00 00 00 00 00 02 53 9F + 39 00 00 00 00 00 02 52 9F + 39 00 00 00 00 00 02 51 A0 + 39 00 00 00 00 00 02 50 A0 + 39 00 00 00 00 00 02 4F A0 + 39 00 00 00 00 00 02 4E A0 + 39 00 00 00 00 00 02 4D A0 + 39 00 00 00 00 00 02 4C A0 + 39 00 00 00 00 00 02 4B A0 + 39 00 00 00 00 00 02 4A A0 + 39 00 00 00 00 00 02 49 A0 + 39 00 00 00 00 00 02 48 A0 + 39 00 00 00 00 00 02 47 A0 + 39 00 00 00 00 00 02 46 A0 + 39 00 00 00 00 00 02 45 A0 + 39 00 00 00 00 00 02 44 9F + 39 00 00 00 00 00 02 43 9F + 39 00 00 00 00 00 02 42 9F + 39 00 00 00 00 00 02 41 9E + 39 00 00 00 00 00 02 40 9E + 39 00 00 00 00 00 02 3F 9E + 39 00 00 00 00 00 02 3E 9D + 39 00 00 00 00 00 02 3D 9D + 39 00 00 00 00 00 02 3C 9C + 39 00 00 00 00 00 02 3B 9C + 39 00 00 00 00 00 02 3A 9B + 39 00 00 00 00 00 02 39 9A + 39 00 00 00 00 00 02 38 9A + 39 00 00 00 00 00 02 37 99 + 39 00 00 00 00 00 02 36 99 + 39 00 00 00 00 00 02 35 98 + 39 00 00 00 00 00 02 34 98 + 39 00 00 00 00 00 02 33 98 + 39 00 00 00 00 00 02 32 98 + 39 00 00 00 00 00 02 31 98 + 39 00 00 00 00 00 02 30 98 + 39 00 00 00 00 00 02 2F 98 + 39 00 00 00 00 00 02 2E 98 + 39 00 00 00 00 00 02 2D 98 + 39 00 00 00 00 00 02 2C 98 + 39 00 00 00 00 00 02 2B 98 + 39 00 00 00 00 00 02 2A 98 + 39 00 00 00 00 00 02 29 98 + 39 00 00 00 00 00 02 28 98 + 39 00 00 00 00 00 02 27 98 + 39 00 00 00 00 00 02 26 97 + 39 00 00 00 00 00 02 25 97 + 39 00 00 00 00 00 02 24 97 + 39 00 00 00 00 00 02 23 97 + 39 00 00 00 00 00 02 22 96 + 39 00 00 00 00 00 02 21 96 + 39 00 00 00 00 00 02 20 96 + 39 00 00 00 00 00 02 1F 95 + 39 00 00 00 00 00 02 1E 95 + 39 00 00 00 00 00 02 1D 95 + 39 00 00 00 00 00 02 1C 94 + 39 00 00 00 00 00 02 1B 94 + 39 00 00 00 00 00 02 1A 94 + 39 00 00 00 00 00 02 19 93 + 39 00 00 00 00 00 02 18 93 + 39 00 00 00 00 00 02 17 92 + 39 00 00 00 00 00 02 16 92 + 39 00 00 00 00 00 02 15 91 + 39 00 00 00 00 00 02 14 91 + 39 00 00 00 00 00 02 13 91 + 39 00 00 00 00 00 02 12 91 + 39 00 00 00 00 00 02 11 91 + 39 00 00 00 00 00 02 10 91 + 39 00 00 00 00 00 02 0F 91 + 39 00 00 00 00 00 02 0E 91 + 39 00 00 00 00 00 02 0D 91 + 39 00 00 00 00 00 02 0C 91 + 39 00 00 00 00 00 02 0B 91 + 39 00 00 00 00 00 02 0A 91 + 39 00 00 00 00 00 02 09 91 + 39 00 00 00 00 00 02 08 91 + 39 00 00 00 00 00 02 07 91 + 39 00 00 00 00 00 02 06 90 + 39 00 00 00 00 00 02 05 90 + 39 00 00 00 00 00 02 04 90 + 39 00 00 00 00 00 02 03 90 + 39 00 00 00 00 00 02 02 90 + 39 00 00 00 00 00 02 01 90 + + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 7F 87 + 39 00 00 00 00 00 02 7E 87 + 39 00 00 00 00 00 02 7D 86 + 39 00 00 00 00 00 02 7C 86 + 39 00 00 00 00 00 02 7B 87 + 39 00 00 00 00 00 02 7A 87 + 39 00 00 00 00 00 02 79 87 + 39 00 00 00 00 00 02 78 87 + 39 00 00 00 00 00 02 77 87 + 39 00 00 00 00 00 02 76 87 + 39 00 00 00 00 00 02 75 87 + 39 00 00 00 00 00 02 74 87 + 39 00 00 00 00 00 02 73 87 + 39 00 00 00 00 00 02 72 87 + 39 00 00 00 00 00 02 71 87 + 39 00 00 00 00 00 02 70 88 + 39 00 00 00 00 00 02 6F 88 + 39 00 00 00 00 00 02 6E 88 + 39 00 00 00 00 00 02 6D 88 + 39 00 00 00 00 00 02 6C 88 + 39 00 00 00 00 00 02 6B 88 + 39 00 00 00 00 00 02 6A 88 + 39 00 00 00 00 00 02 69 87 + 39 00 00 00 00 00 02 68 88 + 39 00 00 00 00 00 02 67 88 + 39 00 00 00 00 00 02 66 88 + 39 00 00 00 00 00 02 65 89 + 39 00 00 00 00 00 02 64 89 + 39 00 00 00 00 00 02 63 89 + 39 00 00 00 00 00 02 62 89 + 39 00 00 00 00 00 02 61 89 + 39 00 00 00 00 00 02 60 88 + 39 00 00 00 00 00 02 5F 88 + 39 00 00 00 00 00 02 5E 88 + 39 00 00 00 00 00 02 5D 87 + 39 00 00 00 00 00 02 5C 87 + 39 00 00 00 00 00 02 5B 88 + 39 00 00 00 00 00 02 5A 88 + 39 00 00 00 00 00 02 59 88 + 39 00 00 00 00 00 02 58 88 + 39 00 00 00 00 00 02 57 88 + 39 00 00 00 00 00 02 56 88 + 39 00 00 00 00 00 02 55 88 + 39 00 00 00 00 00 02 54 88 + 39 00 00 00 00 00 02 53 88 + 39 00 00 00 00 00 02 52 88 + 39 00 00 00 00 00 02 51 87 + 39 00 00 00 00 00 02 50 87 + 39 00 00 00 00 00 02 4F 86 + 39 00 00 00 00 00 02 4E 86 + 39 00 00 00 00 00 02 4D 85 + 39 00 00 00 00 00 02 4C 85 + 39 00 00 00 00 00 02 4B 86 + 39 00 00 00 00 00 02 4A 86 + 39 00 00 00 00 00 02 49 87 + 39 00 00 00 00 00 02 48 87 + 39 00 00 00 00 00 02 47 88 + 39 00 00 00 00 00 02 46 88 + 39 00 00 00 00 00 02 45 88 + 39 00 00 00 00 00 02 44 89 + 39 00 00 00 00 00 02 43 89 + 39 00 00 00 00 00 02 42 89 + 39 00 00 00 00 00 02 41 89 + 39 00 00 00 00 00 02 40 89 + 39 00 00 00 00 00 02 3F 89 + 39 00 00 00 00 00 02 3E 89 + 39 00 00 00 00 00 02 3D 89 + 39 00 00 00 00 00 02 3C 89 + 39 00 00 00 00 00 02 3B 88 + 39 00 00 00 00 00 02 3A 88 + 39 00 00 00 00 00 02 39 88 + 39 00 00 00 00 00 02 38 88 + 39 00 00 00 00 00 02 37 87 + 39 00 00 00 00 00 02 36 87 + 39 00 00 00 00 00 02 35 86 + 39 00 00 00 00 00 02 34 86 + 39 00 00 00 00 00 02 33 85 + 39 00 00 00 00 00 02 32 85 + 39 00 00 00 00 00 02 31 85 + 39 00 00 00 00 00 02 30 84 + 39 00 00 00 00 00 02 2F 84 + 39 00 00 00 00 00 02 2E 85 + 39 00 00 00 00 00 02 2D 85 + 39 00 00 00 00 00 02 2C 85 + 39 00 00 00 00 00 02 2B 85 + 39 00 00 00 00 00 02 2A 85 + 39 00 00 00 00 00 02 29 86 + 39 00 00 00 00 00 02 28 86 + 39 00 00 00 00 00 02 27 86 + 39 00 00 00 00 00 02 26 86 + 39 00 00 00 00 00 02 25 86 + 39 00 00 00 00 00 02 24 86 + 39 00 00 00 00 00 02 23 86 + 39 00 00 00 00 00 02 22 86 + 39 00 00 00 00 00 02 21 86 + 39 00 00 00 00 00 02 20 85 + 39 00 00 00 00 00 02 1F 85 + 39 00 00 00 00 00 02 1E 85 + 39 00 00 00 00 00 02 1D 85 + 39 00 00 00 00 00 02 1C 85 + 39 00 00 00 00 00 02 1B 85 + 39 00 00 00 00 00 02 1A 85 + 39 00 00 00 00 00 02 19 84 + 39 00 00 00 00 00 02 18 84 + 39 00 00 00 00 00 02 17 84 + 39 00 00 00 00 00 02 16 84 + 39 00 00 00 00 00 02 15 83 + 39 00 00 00 00 00 02 14 83 + 39 00 00 00 00 00 02 13 82 + 39 00 00 00 00 00 02 12 82 + 39 00 00 00 00 00 02 11 82 + 39 00 00 00 00 00 02 10 81 + 39 00 00 00 00 00 02 0F 82 + 39 00 00 00 00 00 02 0E 82 + 39 00 00 00 00 00 02 0D 82 + 39 00 00 00 00 00 02 0C 82 + 39 00 00 00 00 00 02 0B 82 + 39 00 00 00 00 00 02 0A 82 + 39 00 00 00 00 00 02 09 82 + 39 00 00 00 00 00 02 08 83 + 39 00 00 00 00 00 02 07 83 + 39 00 00 00 00 00 02 06 83 + 39 00 00 00 00 00 02 05 83 + 39 00 00 00 00 00 02 04 82 + 39 00 00 00 00 00 02 03 82 + 39 00 00 00 00 00 02 02 82 + 39 00 00 00 00 00 02 01 82 + + 39 00 00 00 00 00 04 FF 98 81 08 + 39 00 00 00 00 00 02 7F 9E + 39 00 00 00 00 00 02 7E 9E + 39 00 00 00 00 00 02 7D 9E + 39 00 00 00 00 00 02 7C 9E + 39 00 00 00 00 00 02 7B 9E + 39 00 00 00 00 00 02 7A 9D + 39 00 00 00 00 00 02 79 9D + 39 00 00 00 00 00 02 78 9D + 39 00 00 00 00 00 02 77 9D + 39 00 00 00 00 00 02 76 9E + 39 00 00 00 00 00 02 75 9E + 39 00 00 00 00 00 02 74 9E + 39 00 00 00 00 00 02 73 9E + 39 00 00 00 00 00 02 72 9E + 39 00 00 00 00 00 02 71 9E + 39 00 00 00 00 00 02 70 9E + 39 00 00 00 00 00 02 6F 9D + 39 00 00 00 00 00 02 6E 9D + 39 00 00 00 00 00 02 6D 9D + 39 00 00 00 00 00 02 6C 9D + 39 00 00 00 00 00 02 6B 9E + 39 00 00 00 00 00 02 6A 9E + 39 00 00 00 00 00 02 69 9E + 39 00 00 00 00 00 02 68 9E + 39 00 00 00 00 00 02 67 9E + 39 00 00 00 00 00 02 66 9D + 39 00 00 00 00 00 02 65 9D + 39 00 00 00 00 00 02 64 9D + 39 00 00 00 00 00 02 63 9C + 39 00 00 00 00 00 02 62 9C + 39 00 00 00 00 00 02 61 9C + 39 00 00 00 00 00 02 60 9C + 39 00 00 00 00 00 02 5F 9C + 39 00 00 00 00 00 02 5E 9C + 39 00 00 00 00 00 02 5D 9D + 39 00 00 00 00 00 02 5C 9C + 39 00 00 00 00 00 02 5B 9C + 39 00 00 00 00 00 02 5A 9C + 39 00 00 00 00 00 02 59 9C + 39 00 00 00 00 00 02 58 9C + 39 00 00 00 00 00 02 57 9B + 39 00 00 00 00 00 02 56 9B + 39 00 00 00 00 00 02 55 9B + 39 00 00 00 00 00 02 54 9A + 39 00 00 00 00 00 02 53 99 + 39 00 00 00 00 00 02 52 99 + 39 00 00 00 00 00 02 51 98 + 39 00 00 00 00 00 02 50 99 + 39 00 00 00 00 00 02 4F 99 + 39 00 00 00 00 00 02 4E 9A + 39 00 00 00 00 00 02 4D 9A + 39 00 00 00 00 00 02 4C 9A + 39 00 00 00 00 00 02 4B 9B + 39 00 00 00 00 00 02 4A 9B + 39 00 00 00 00 00 02 49 9B + 39 00 00 00 00 00 02 48 9C + 39 00 00 00 00 00 02 47 9C + 39 00 00 00 00 00 02 46 9C + 39 00 00 00 00 00 02 45 9C + 39 00 00 00 00 00 02 44 9C + 39 00 00 00 00 00 02 43 9C + 39 00 00 00 00 00 02 42 9B + 39 00 00 00 00 00 02 41 9B + 39 00 00 00 00 00 02 40 9B + 39 00 00 00 00 00 02 3F 9B + 39 00 00 00 00 00 02 3E 9B + 39 00 00 00 00 00 02 3D 9A + 39 00 00 00 00 00 02 3C 9A + 39 00 00 00 00 00 02 3B 99 + 39 00 00 00 00 00 02 3A 99 + 39 00 00 00 00 00 02 39 99 + 39 00 00 00 00 00 02 38 98 + 39 00 00 00 00 00 02 37 97 + 39 00 00 00 00 00 02 36 97 + 39 00 00 00 00 00 02 35 96 + 39 00 00 00 00 00 02 34 96 + 39 00 00 00 00 00 02 33 97 + 39 00 00 00 00 00 02 32 97 + 39 00 00 00 00 00 02 31 97 + 39 00 00 00 00 00 02 30 97 + 39 00 00 00 00 00 02 2F 97 + 39 00 00 00 00 00 02 2E 98 + 39 00 00 00 00 00 02 2D 98 + 39 00 00 00 00 00 02 2C 98 + 39 00 00 00 00 00 02 2B 97 + 39 00 00 00 00 00 02 2A 97 + 39 00 00 00 00 00 02 29 98 + 39 00 00 00 00 00 02 28 98 + 39 00 00 00 00 00 02 27 98 + 39 00 00 00 00 00 02 26 98 + 39 00 00 00 00 00 02 25 97 + 39 00 00 00 00 00 02 24 97 + 39 00 00 00 00 00 02 23 97 + 39 00 00 00 00 00 02 22 97 + 39 00 00 00 00 00 02 21 97 + 39 00 00 00 00 00 02 20 96 + 39 00 00 00 00 00 02 1F 96 + 39 00 00 00 00 00 02 1E 96 + 39 00 00 00 00 00 02 1D 96 + 39 00 00 00 00 00 02 1C 95 + 39 00 00 00 00 00 02 1B 95 + 39 00 00 00 00 00 02 1A 95 + 39 00 00 00 00 00 02 19 94 + 39 00 00 00 00 00 02 18 94 + 39 00 00 00 00 00 02 17 93 + 39 00 00 00 00 00 02 16 93 + 39 00 00 00 00 00 02 15 93 + 39 00 00 00 00 00 02 14 92 + 39 00 00 00 00 00 02 13 93 + 39 00 00 00 00 00 02 12 92 + 39 00 00 00 00 00 02 11 93 + 39 00 00 00 00 00 02 10 93 + 39 00 00 00 00 00 02 0F 93 + 39 00 00 00 00 00 02 0E 93 + 39 00 00 00 00 00 02 0D 93 + 39 00 00 00 00 00 02 0C 93 + 39 00 00 00 00 00 02 0B 93 + 39 00 00 00 00 00 02 0A 93 + 39 00 00 00 00 00 02 09 93 + 39 00 00 00 00 00 02 08 93 + 39 00 00 00 00 00 02 07 93 + 39 00 00 00 00 00 02 06 93 + 39 00 00 00 00 00 02 05 92 + 39 00 00 00 00 00 02 04 92 + 39 00 00 00 00 00 02 03 92 + 39 00 00 00 00 00 02 02 92 + 39 00 00 00 00 00 02 01 92 + + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F 82 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 82 + 39 00 00 00 00 00 02 7F 87 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F 92 + 39 00 00 00 00 00 04 FF 98 81 08 + 39 00 00 00 00 00 02 00 92 + 39 00 00 00 00 00 02 7F 9E + 39 00 00 00 00 00 04 FF 98 81 09 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F 8F + 39 00 00 00 00 00 04 FF 98 81 0A + 39 00 00 00 00 00 02 00 8F + 39 00 00 00 00 00 02 7F B5 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 80 01 + 39 01 00 00 00 00 04 FF 98 81 00 + + 39 00 00 00 00 00 04 FF 98 81 09 + 39 00 00 00 00 00 02 7F 8F + 39 00 00 00 00 00 02 7E 8F + 39 00 00 00 00 00 02 7D 8E + 39 00 00 00 00 00 02 7C 8E + 39 00 00 00 00 00 02 7B 8E + 39 00 00 00 00 00 02 7A 8E + 39 00 00 00 00 00 02 79 8D + 39 00 00 00 00 00 02 78 8D + 39 00 00 00 00 00 02 77 8D + 39 00 00 00 00 00 02 76 8D + 39 00 00 00 00 00 02 75 8C + 39 00 00 00 00 00 02 74 8C + 39 00 00 00 00 00 02 73 8C + 39 00 00 00 00 00 02 72 8B + 39 00 00 00 00 00 02 71 8B + 39 00 00 00 00 00 02 70 8A + 39 00 00 00 00 00 02 6F 8A + 39 00 00 00 00 00 02 6E 8A + 39 00 00 00 00 00 02 6D 8A + 39 00 00 00 00 00 02 6C 8A + 39 00 00 00 00 00 02 6B 8A + 39 00 00 00 00 00 02 6A 89 + 39 00 00 00 00 00 02 69 89 + 39 00 00 00 00 00 02 68 89 + 39 00 00 00 00 00 02 67 89 + 39 00 00 00 00 00 02 66 88 + 39 00 00 00 00 00 02 65 88 + 39 00 00 00 00 00 02 64 88 + 39 00 00 00 00 00 02 63 88 + 39 00 00 00 00 00 02 62 88 + 39 00 00 00 00 00 02 61 87 + 39 00 00 00 00 00 02 60 87 + 39 00 00 00 00 00 02 5F 87 + 39 00 00 00 00 00 02 5E 87 + 39 00 00 00 00 00 02 5D 86 + 39 00 00 00 00 00 02 5C 86 + 39 00 00 00 00 00 02 5B 86 + 39 00 00 00 00 00 02 5A 86 + 39 00 00 00 00 00 02 59 86 + 39 00 00 00 00 00 02 58 86 + 39 00 00 00 00 00 02 57 86 + 39 00 00 00 00 00 02 56 85 + 39 00 00 00 00 00 02 55 85 + 39 00 00 00 00 00 02 54 85 + 39 00 00 00 00 00 02 53 85 + 39 00 00 00 00 00 02 52 85 + 39 00 00 00 00 00 02 51 85 + 39 00 00 00 00 00 02 50 85 + 39 00 00 00 00 00 02 4F 84 + 39 00 00 00 00 00 02 4E 84 + 39 00 00 00 00 00 02 4D 83 + 39 00 00 00 00 00 02 4C 83 + 39 00 00 00 00 00 02 4B 83 + 39 00 00 00 00 00 02 4A 83 + 39 00 00 00 00 00 02 49 83 + 39 00 00 00 00 00 02 48 83 + 39 00 00 00 00 00 02 47 82 + 39 00 00 00 00 00 02 46 82 + 39 00 00 00 00 00 02 45 82 + 39 00 00 00 00 00 02 44 82 + 39 00 00 00 00 00 02 43 82 + 39 00 00 00 00 00 02 42 82 + 39 00 00 00 00 00 02 41 83 + 39 00 00 00 00 00 02 40 83 + 39 00 00 00 00 00 02 3F 83 + 39 00 00 00 00 00 02 3E 83 + 39 00 00 00 00 00 02 3D 83 + 39 00 00 00 00 00 02 3C 84 + 39 00 00 00 00 00 02 3B 84 + 39 00 00 00 00 00 02 3A 85 + 39 00 00 00 00 00 02 39 85 + 39 00 00 00 00 00 02 38 85 + 39 00 00 00 00 00 02 37 85 + 39 00 00 00 00 00 02 36 85 + 39 00 00 00 00 00 02 35 86 + 39 00 00 00 00 00 02 34 86 + 39 00 00 00 00 00 02 33 85 + 39 00 00 00 00 00 02 32 85 + 39 00 00 00 00 00 02 31 84 + 39 00 00 00 00 00 02 30 84 + 39 00 00 00 00 00 02 2F 83 + 39 00 00 00 00 00 02 2E 83 + 39 00 00 00 00 00 02 2D 83 + 39 00 00 00 00 00 02 2C 83 + 39 00 00 00 00 00 02 2B 83 + 39 00 00 00 00 00 02 2A 83 + 39 00 00 00 00 00 02 29 83 + 39 00 00 00 00 00 02 28 83 + 39 00 00 00 00 00 02 27 83 + 39 00 00 00 00 00 02 26 82 + 39 00 00 00 00 00 02 25 82 + 39 00 00 00 00 00 02 24 81 + 39 00 00 00 00 00 02 23 81 + 39 00 00 00 00 00 02 22 82 + 39 00 00 00 00 00 02 21 82 + 39 00 00 00 00 00 02 20 82 + 39 00 00 00 00 00 02 1F 81 + 39 00 00 00 00 00 02 1E 81 + 39 00 00 00 00 00 02 1D 81 + 39 00 00 00 00 00 02 1C 81 + 39 00 00 00 00 00 02 1B 82 + 39 00 00 00 00 00 02 1A 82 + 39 00 00 00 00 00 02 19 83 + 39 00 00 00 00 00 02 18 82 + 39 00 00 00 00 00 02 17 82 + 39 00 00 00 00 00 02 16 81 + 39 00 00 00 00 00 02 15 81 + 39 00 00 00 00 00 02 14 81 + 39 00 00 00 00 00 02 13 81 + 39 00 00 00 00 00 02 12 81 + 39 00 00 00 00 00 02 11 82 + 39 00 00 00 00 00 02 10 82 + 39 00 00 00 00 00 02 0F 81 + 39 00 00 00 00 00 02 0E 81 + 39 00 00 00 00 00 02 0D 81 + 39 00 00 00 00 00 02 0C 81 + 39 00 00 00 00 00 02 0B 81 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 09 00 + 39 00 00 00 00 00 02 08 81 + 39 00 00 00 00 00 02 07 00 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 05 00 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 03 81 + 39 00 00 00 00 00 02 02 82 + 39 00 00 00 00 00 02 01 82 + + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 7F 82 + 39 00 00 00 00 00 02 7E 82 + 39 00 00 00 00 00 02 7D 82 + 39 00 00 00 00 00 02 7C 82 + 39 00 00 00 00 00 02 7B 81 + 39 00 00 00 00 00 02 7A 81 + 39 00 00 00 00 00 02 79 81 + 39 00 00 00 00 00 02 78 81 + 39 00 00 00 00 00 02 77 81 + 39 00 00 00 00 00 02 76 00 + 39 00 00 00 00 00 02 75 00 + 39 00 00 00 00 00 02 74 00 + 39 00 00 00 00 00 02 73 00 + 39 00 00 00 00 00 02 72 01 + 39 00 00 00 00 00 02 71 01 + 39 00 00 00 00 00 02 70 01 + 39 00 00 00 00 00 02 6F 01 + 39 00 00 00 00 00 02 6E 02 + 39 00 00 00 00 00 02 6D 02 + 39 00 00 00 00 00 02 6C 02 + 39 00 00 00 00 00 02 6B 02 + 39 00 00 00 00 00 02 6A 02 + 39 00 00 00 00 00 02 69 02 + 39 00 00 00 00 00 02 68 02 + 39 00 00 00 00 00 02 67 03 + 39 00 00 00 00 00 02 66 03 + 39 00 00 00 00 00 02 65 03 + 39 00 00 00 00 00 02 64 03 + 39 00 00 00 00 00 02 63 03 + 39 00 00 00 00 00 02 62 04 + 39 00 00 00 00 00 02 61 04 + 39 00 00 00 00 00 02 60 04 + 39 00 00 00 00 00 02 5F 04 + 39 00 00 00 00 00 02 5E 04 + 39 00 00 00 00 00 02 5D 04 + 39 00 00 00 00 00 02 5C 05 + 39 00 00 00 00 00 02 5B 05 + 39 00 00 00 00 00 02 5A 05 + 39 00 00 00 00 00 02 59 05 + 39 00 00 00 00 00 02 58 05 + 39 00 00 00 00 00 02 57 05 + 39 00 00 00 00 00 02 56 05 + 39 00 00 00 00 00 02 55 05 + 39 00 00 00 00 00 02 54 05 + 39 00 00 00 00 00 02 53 06 + 39 00 00 00 00 00 02 52 06 + 39 00 00 00 00 00 02 51 05 + 39 00 00 00 00 00 02 50 05 + 39 00 00 00 00 00 02 4F 05 + 39 00 00 00 00 00 02 4E 05 + 39 00 00 00 00 00 02 4D 06 + 39 00 00 00 00 00 02 4C 06 + 39 00 00 00 00 00 02 4B 07 + 39 00 00 00 00 00 02 4A 07 + 39 00 00 00 00 00 02 49 08 + 39 00 00 00 00 00 02 48 07 + 39 00 00 00 00 00 02 47 07 + 39 00 00 00 00 00 02 46 07 + 39 00 00 00 00 00 02 45 07 + 39 00 00 00 00 00 02 44 07 + 39 00 00 00 00 00 02 43 07 + 39 00 00 00 00 00 02 42 07 + 39 00 00 00 00 00 02 41 07 + 39 00 00 00 00 00 02 40 07 + 39 00 00 00 00 00 02 3F 07 + 39 00 00 00 00 00 02 3E 06 + 39 00 00 00 00 00 02 3D 06 + 39 00 00 00 00 00 02 3C 06 + 39 00 00 00 00 00 02 3B 06 + 39 00 00 00 00 00 02 3A 05 + 39 00 00 00 00 00 02 39 04 + 39 00 00 00 00 00 02 38 04 + 39 00 00 00 00 00 02 37 04 + 39 00 00 00 00 00 02 36 04 + 39 00 00 00 00 00 02 35 03 + 39 00 00 00 00 00 02 34 03 + 39 00 00 00 00 00 02 33 03 + 39 00 00 00 00 00 02 32 02 + 39 00 00 00 00 00 02 31 03 + 39 00 00 00 00 00 02 30 03 + 39 00 00 00 00 00 02 2F 04 + 39 00 00 00 00 00 02 2E 04 + 39 00 00 00 00 00 02 2D 04 + 39 00 00 00 00 00 02 2C 04 + 39 00 00 00 00 00 02 2B 04 + 39 00 00 00 00 00 02 2A 05 + 39 00 00 00 00 00 02 29 05 + 39 00 00 00 00 00 02 28 05 + 39 00 00 00 00 00 02 27 04 + 39 00 00 00 00 00 02 26 04 + 39 00 00 00 00 00 02 25 04 + 39 00 00 00 00 00 02 24 05 + 39 00 00 00 00 00 02 23 05 + 39 00 00 00 00 00 02 22 06 + 39 00 00 00 00 00 02 21 06 + 39 00 00 00 00 00 02 20 05 + 39 00 00 00 00 00 02 1F 05 + 39 00 00 00 00 00 02 1E 05 + 39 00 00 00 00 00 02 1D 05 + 39 00 00 00 00 00 02 1C 05 + 39 00 00 00 00 00 02 1B 05 + 39 00 00 00 00 00 02 1A 04 + 39 00 00 00 00 00 02 19 04 + 39 00 00 00 00 00 02 18 03 + 39 00 00 00 00 00 02 17 03 + 39 00 00 00 00 00 02 16 04 + 39 00 00 00 00 00 02 15 04 + 39 00 00 00 00 00 02 14 04 + 39 00 00 00 00 00 02 13 04 + 39 00 00 00 00 00 02 12 04 + 39 00 00 00 00 00 02 11 03 + 39 00 00 00 00 00 02 10 03 + 39 00 00 00 00 00 02 0F 03 + 39 00 00 00 00 00 02 0E 03 + 39 00 00 00 00 00 02 0D 03 + 39 00 00 00 00 00 02 0C 03 + 39 00 00 00 00 00 02 0B 03 + 39 00 00 00 00 00 02 0A 03 + 39 00 00 00 00 00 02 09 03 + 39 00 00 00 00 00 02 08 03 + 39 00 00 00 00 00 02 07 03 + 39 00 00 00 00 00 02 06 03 + 39 00 00 00 00 00 02 05 04 + 39 00 00 00 00 00 02 04 03 + 39 00 00 00 00 00 02 03 02 + 39 00 00 00 00 00 02 02 01 + 39 00 00 00 00 00 02 01 81 + + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 D3 39 + 39 00 00 00 00 00 02 D2 64 + 39 00 00 00 00 00 02 D1 54 + 39 00 00 00 00 00 02 D0 28 + 39 00 00 00 00 00 02 CF 23 + 39 00 00 00 00 00 02 CE 4F + 39 00 00 00 00 00 02 CD 1A + 39 00 00 00 00 00 02 CC 1C + 39 00 00 00 00 00 02 CB 8B + 39 00 00 00 00 00 02 CA 29 + 39 00 00 00 00 00 02 C9 1D + 39 00 00 00 00 00 02 C8 98 + 39 00 00 00 00 00 02 C7 1F + 39 00 00 00 00 00 02 C6 1E + 39 00 00 00 00 00 02 C5 2A + 39 00 00 00 00 00 02 C4 17 + 39 00 00 00 00 00 02 C3 14 + 39 00 00 00 00 00 02 C2 2B + 39 00 00 00 00 00 02 C1 1C + 39 00 00 00 00 00 02 C0 00 + + 39 00 00 00 00 00 02 B3 39 + 39 00 00 00 00 00 02 B2 65 + 39 00 00 00 00 00 02 B1 55 + 39 00 00 00 00 00 02 B0 27 + 39 00 00 00 00 00 02 AF 22 + 39 00 00 00 00 00 02 AE 4E + 39 00 00 00 00 00 02 AD 1A + 39 00 00 00 00 00 02 AC 1B + 39 00 00 00 00 00 02 AB 8C + 39 00 00 00 00 00 02 AA 29 + 39 00 00 00 00 00 02 A9 1D + 39 00 00 00 00 00 02 A8 99 + 39 00 00 00 00 00 02 A7 1F + 39 00 00 00 00 00 02 A6 1D + 39 00 00 00 00 00 02 A5 29 + 39 00 00 00 00 00 02 A4 16 + 39 00 00 00 00 00 02 A3 14 + 39 00 00 00 00 00 02 A2 2C + 39 00 00 00 00 00 02 A1 1D + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 f6 00 + + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 7F 92 + 39 00 00 00 00 00 02 7E 91 + 39 00 00 00 00 00 02 7D 91 + 39 00 00 00 00 00 02 7C 91 + 39 00 00 00 00 00 02 7B 91 + 39 00 00 00 00 00 02 7A 90 + 39 00 00 00 00 00 02 79 90 + 39 00 00 00 00 00 02 78 90 + 39 00 00 00 00 00 02 77 90 + 39 00 00 00 00 00 02 76 8F + 39 00 00 00 00 00 02 75 8F + 39 00 00 00 00 00 02 74 8F + 39 00 00 00 00 00 02 73 8E + 39 00 00 00 00 00 02 72 8E + 39 00 00 00 00 00 02 71 8D + 39 00 00 00 00 00 02 70 8D + 39 00 00 00 00 00 02 6F 8E + 39 00 00 00 00 00 02 6E 8D + 39 00 00 00 00 00 02 6D 8D + 39 00 00 00 00 00 02 6C 8D + 39 00 00 00 00 00 02 6B 8D + 39 00 00 00 00 00 02 6A 8C + 39 00 00 00 00 00 02 69 8C + 39 00 00 00 00 00 02 68 8C + 39 00 00 00 00 00 02 67 8C + 39 00 00 00 00 00 02 66 8B + 39 00 00 00 00 00 02 65 8B + 39 00 00 00 00 00 02 64 8B + 39 00 00 00 00 00 02 63 8B + 39 00 00 00 00 00 02 62 8B + 39 00 00 00 00 00 02 61 8A + 39 00 00 00 00 00 02 60 8A + 39 00 00 00 00 00 02 5F 8A + 39 00 00 00 00 00 02 5E 8A + 39 00 00 00 00 00 02 5D 89 + 39 00 00 00 00 00 02 5C 89 + 39 00 00 00 00 00 02 5B 89 + 39 00 00 00 00 00 02 5A 89 + 39 00 00 00 00 00 02 59 89 + 39 00 00 00 00 00 02 58 89 + 39 00 00 00 00 00 02 57 89 + 39 00 00 00 00 00 02 56 89 + 39 00 00 00 00 00 02 55 89 + 39 00 00 00 00 00 02 54 89 + 39 00 00 00 00 00 02 53 89 + 39 00 00 00 00 00 02 52 89 + 39 00 00 00 00 00 02 51 88 + 39 00 00 00 00 00 02 50 88 + 39 00 00 00 00 00 02 4F 87 + 39 00 00 00 00 00 02 4E 86 + 39 00 00 00 00 00 02 4D 86 + 39 00 00 00 00 00 02 4C 86 + 39 00 00 00 00 00 02 4B 86 + 39 00 00 00 00 00 02 4A 86 + 39 00 00 00 00 00 02 49 86 + 39 00 00 00 00 00 02 48 86 + 39 00 00 00 00 00 02 47 85 + 39 00 00 00 00 00 02 46 85 + 39 00 00 00 00 00 02 45 85 + 39 00 00 00 00 00 02 44 85 + 39 00 00 00 00 00 02 43 85 + 39 00 00 00 00 00 02 42 85 + 39 00 00 00 00 00 02 41 86 + 39 00 00 00 00 00 02 40 86 + 39 00 00 00 00 00 02 3F 86 + 39 00 00 00 00 00 02 3E 86 + 39 00 00 00 00 00 02 3D 86 + 39 00 00 00 00 00 02 3C 87 + 39 00 00 00 00 00 02 3B 87 + 39 00 00 00 00 00 02 3A 87 + 39 00 00 00 00 00 02 39 87 + 39 00 00 00 00 00 02 38 87 + 39 00 00 00 00 00 02 37 88 + 39 00 00 00 00 00 02 36 88 + 39 00 00 00 00 00 02 35 89 + 39 00 00 00 00 00 02 34 88 + 39 00 00 00 00 00 02 33 87 + 39 00 00 00 00 00 02 32 87 + 39 00 00 00 00 00 02 31 86 + 39 00 00 00 00 00 02 30 86 + 39 00 00 00 00 00 02 2F 85 + 39 00 00 00 00 00 02 2E 85 + 39 00 00 00 00 00 02 2D 85 + 39 00 00 00 00 00 02 2C 85 + 39 00 00 00 00 00 02 2B 85 + 39 00 00 00 00 00 02 2A 85 + 39 00 00 00 00 00 02 29 85 + 39 00 00 00 00 00 02 28 85 + 39 00 00 00 00 00 02 27 84 + 39 00 00 00 00 00 02 26 84 + 39 00 00 00 00 00 02 25 84 + 39 00 00 00 00 00 02 24 83 + 39 00 00 00 00 00 02 23 83 + 39 00 00 00 00 00 02 22 84 + 39 00 00 00 00 00 02 21 83 + 39 00 00 00 00 00 02 20 83 + 39 00 00 00 00 00 02 1F 83 + 39 00 00 00 00 00 02 1E 83 + 39 00 00 00 00 00 02 1D 83 + 39 00 00 00 00 00 02 1C 83 + 39 00 00 00 00 00 02 1B 83 + 39 00 00 00 00 00 02 1A 84 + 39 00 00 00 00 00 02 19 84 + 39 00 00 00 00 00 02 18 83 + 39 00 00 00 00 00 02 17 82 + 39 00 00 00 00 00 02 16 82 + 39 00 00 00 00 00 02 15 82 + 39 00 00 00 00 00 02 14 82 + 39 00 00 00 00 00 02 13 82 + 39 00 00 00 00 00 02 12 82 + 39 00 00 00 00 00 02 11 83 + 39 00 00 00 00 00 02 10 82 + 39 00 00 00 00 00 02 0F 82 + 39 00 00 00 00 00 02 0E 82 + 39 00 00 00 00 00 02 0D 82 + 39 00 00 00 00 00 02 0C 82 + 39 00 00 00 00 00 02 0B 81 + 39 00 00 00 00 00 02 0A 81 + 39 00 00 00 00 00 02 09 81 + 39 00 00 00 00 00 02 08 81 + 39 00 00 00 00 00 02 07 00 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 05 00 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 03 81 + 39 00 00 00 00 00 02 02 82 + 39 00 00 00 00 00 02 01 82 + + 39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 21 B0 + 39 00 00 00 00 00 02 32 02 + 39 01 00 00 00 00 04 FF 98 81 00 + + ]; + + + qcom,mdss-dsi-panel-warm-command = [39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 21 B2 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 f6 00 + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 A1 1D + 39 00 00 00 00 00 02 A2 2C + 39 00 00 00 00 00 02 A3 14 + 39 00 00 00 00 00 02 A4 16 + 39 00 00 00 00 00 02 A5 29 + 39 00 00 00 00 00 02 A6 1D + 39 00 00 00 00 00 02 A7 1F + 39 00 00 00 00 00 02 A8 99 + 39 00 00 00 00 00 02 A9 1D + 39 00 00 00 00 00 02 AA 29 + 39 00 00 00 00 00 02 AB 8C + 39 00 00 00 00 00 02 AC 1B + 39 00 00 00 00 00 02 AD 1A + 39 00 00 00 00 00 02 AE 4E + 39 00 00 00 00 00 02 AF 22 + 39 00 00 00 00 00 02 B0 27 + 39 00 00 00 00 00 02 B1 55 + 39 00 00 00 00 00 02 B2 65 + 39 00 00 00 00 00 02 B3 39 + + 39 00 00 00 00 00 02 C0 00 + 39 00 00 00 00 00 02 C1 1C + 39 00 00 00 00 00 02 C2 2B + 39 00 00 00 00 00 02 C3 14 + 39 00 00 00 00 00 02 C4 17 + 39 00 00 00 00 00 02 C5 2A + 39 00 00 00 00 00 02 C6 1E + 39 00 00 00 00 00 02 C7 1F + 39 00 00 00 00 00 02 C8 98 + 39 00 00 00 00 00 02 C9 1D + 39 00 00 00 00 00 02 CA 29 + 39 00 00 00 00 00 02 CB 8B + 39 00 00 00 00 00 02 CC 1C + 39 00 00 00 00 00 02 CD 1A + 39 00 00 00 00 00 02 CE 4F + 39 00 00 00 00 00 02 CF 23 + 39 00 00 00 00 00 02 D0 28 + 39 00 00 00 00 00 02 D1 54 + 39 00 00 00 00 00 02 D2 64 + 39 00 00 00 00 00 02 D3 39 + + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 01 81 + 39 00 00 00 00 00 02 02 01 + 39 00 00 00 00 00 02 03 02 + 39 00 00 00 00 00 02 04 03 + 39 00 00 00 00 00 02 05 04 + 39 00 00 00 00 00 02 06 03 + 39 00 00 00 00 00 02 07 03 + 39 00 00 00 00 00 02 08 04 + 39 00 00 00 00 00 02 09 04 + 39 00 00 00 00 00 02 0A 03 + 39 00 00 00 00 00 02 0B 03 + 39 00 00 00 00 00 02 0C 03 + 39 00 00 00 00 00 02 0D 03 + 39 00 00 00 00 00 02 0E 03 + 39 00 00 00 00 00 02 0F 03 + 39 00 00 00 00 00 02 10 03 + 39 00 00 00 00 00 02 11 04 + 39 00 00 00 00 00 02 12 04 + 39 00 00 00 00 00 02 13 04 + 39 00 00 00 00 00 02 14 04 + 39 00 00 00 00 00 02 15 04 + 39 00 00 00 00 00 02 16 04 + 39 00 00 00 00 00 02 17 03 + 39 00 00 00 00 00 02 18 03 + 39 00 00 00 00 00 02 19 04 + 39 00 00 00 00 00 02 1A 04 + 39 00 00 00 00 00 02 1B 05 + 39 00 00 00 00 00 02 1C 05 + 39 00 00 00 00 00 02 1D 05 + 39 00 00 00 00 00 02 1E 05 + 39 00 00 00 00 00 02 1F 05 + 39 00 00 00 00 00 02 20 05 + 39 00 00 00 00 00 02 21 06 + 39 00 00 00 00 00 02 22 06 + 39 00 00 00 00 00 02 23 05 + 39 00 00 00 00 00 02 24 05 + 39 00 00 00 00 00 02 25 05 + 39 00 00 00 00 00 02 26 04 + 39 00 00 00 00 00 02 27 05 + 39 00 00 00 00 00 02 28 05 + 39 00 00 00 00 00 02 29 05 + 39 00 00 00 00 00 02 2A 05 + 39 00 00 00 00 00 02 2B 05 + 39 00 00 00 00 00 02 2C 05 + 39 00 00 00 00 00 02 2D 05 + 39 00 00 00 00 00 02 2E 04 + 39 00 00 00 00 00 02 2F 04 + 39 00 00 00 00 00 02 30 03 + 39 00 00 00 00 00 02 31 03 + 39 00 00 00 00 00 02 32 02 + 39 00 00 00 00 00 02 33 03 + 39 00 00 00 00 00 02 34 04 + 39 00 00 00 00 00 02 35 04 + 39 00 00 00 00 00 02 36 04 + 39 00 00 00 00 00 02 37 04 + 39 00 00 00 00 00 02 38 04 + 39 00 00 00 00 00 02 39 05 + 39 00 00 00 00 00 02 3A 05 + 39 00 00 00 00 00 02 3B 06 + 39 00 00 00 00 00 02 3C 06 + 39 00 00 00 00 00 02 3D 07 + 39 00 00 00 00 00 02 3E 07 + 39 00 00 00 00 00 02 3F 07 + 39 00 00 00 00 00 02 40 07 + 39 00 00 00 00 00 02 41 07 + 39 00 00 00 00 00 02 42 08 + 39 00 00 00 00 00 02 43 08 + 39 00 00 00 00 00 02 44 08 + 39 00 00 00 00 00 02 45 08 + 39 00 00 00 00 00 02 46 08 + 39 00 00 00 00 00 02 47 08 + 39 00 00 00 00 00 02 48 08 + 39 00 00 00 00 00 02 49 08 + 39 00 00 00 00 00 02 4A 08 + 39 00 00 00 00 00 02 4B 07 + 39 00 00 00 00 00 02 4C 07 + 39 00 00 00 00 00 02 4D 06 + 39 00 00 00 00 00 02 4E 06 + 39 00 00 00 00 00 02 4F 06 + 39 00 00 00 00 00 02 50 06 + 39 00 00 00 00 00 02 51 06 + 39 00 00 00 00 00 02 52 06 + 39 00 00 00 00 00 02 53 06 + 39 00 00 00 00 00 02 54 06 + 39 00 00 00 00 00 02 55 06 + 39 00 00 00 00 00 02 56 06 + 39 00 00 00 00 00 02 57 06 + 39 00 00 00 00 00 02 58 05 + 39 00 00 00 00 00 02 59 05 + 39 00 00 00 00 00 02 5A 05 + 39 00 00 00 00 00 02 5B 05 + 39 00 00 00 00 00 02 5C 05 + 39 00 00 00 00 00 02 5D 05 + 39 00 00 00 00 00 02 5E 05 + 39 00 00 00 00 00 02 5F 05 + 39 00 00 00 00 00 02 60 04 + 39 00 00 00 00 00 02 61 04 + 39 00 00 00 00 00 02 62 04 + 39 00 00 00 00 00 02 63 04 + 39 00 00 00 00 00 02 64 04 + 39 00 00 00 00 00 02 65 03 + 39 00 00 00 00 00 02 66 03 + 39 00 00 00 00 00 02 67 03 + 39 00 00 00 00 00 02 68 03 + 39 00 00 00 00 00 02 69 03 + 39 00 00 00 00 00 02 6A 03 + 39 00 00 00 00 00 02 6B 03 + 39 00 00 00 00 00 02 6C 03 + 39 00 00 00 00 00 02 6D 03 + 39 00 00 00 00 00 02 6E 02 + 39 00 00 00 00 00 02 6F 02 + 39 00 00 00 00 00 02 70 02 + 39 00 00 00 00 00 02 71 02 + 39 00 00 00 00 00 02 72 01 + 39 00 00 00 00 00 02 73 01 + 39 00 00 00 00 00 02 74 01 + 39 00 00 00 00 00 02 75 01 + 39 00 00 00 00 00 02 76 00 + 39 00 00 00 00 00 02 77 00 + 39 00 00 00 00 00 02 78 00 + 39 00 00 00 00 00 02 79 00 + 39 00 00 00 00 00 02 7A 00 + 39 00 00 00 00 00 02 7B 81 + 39 00 00 00 00 00 02 7C 81 + 39 00 00 00 00 00 02 7D 81 + 39 00 00 00 00 00 02 7E 81 + 39 00 00 00 00 00 02 7F 81 + + + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 01 82 + 39 00 00 00 00 00 02 02 82 + 39 00 00 00 00 00 02 03 81 + 39 00 00 00 00 00 02 04 81 + 39 00 00 00 00 00 02 05 00 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 81 + 39 00 00 00 00 00 02 08 82 + 39 00 00 00 00 00 02 09 82 + 39 00 00 00 00 00 02 0A 82 + 39 00 00 00 00 00 02 0B 82 + 39 00 00 00 00 00 02 0C 83 + 39 00 00 00 00 00 02 0D 83 + 39 00 00 00 00 00 02 0E 83 + 39 00 00 00 00 00 02 0F 84 + 39 00 00 00 00 00 02 10 84 + 39 00 00 00 00 00 02 11 85 + 39 00 00 00 00 00 02 12 85 + 39 00 00 00 00 00 02 13 85 + 39 00 00 00 00 00 02 14 85 + 39 00 00 00 00 00 02 15 85 + 39 00 00 00 00 00 02 16 85 + 39 00 00 00 00 00 02 17 85 + 39 00 00 00 00 00 02 18 86 + 39 00 00 00 00 00 02 19 86 + 39 00 00 00 00 00 02 1A 87 + 39 00 00 00 00 00 02 1B 87 + 39 00 00 00 00 00 02 1C 87 + 39 00 00 00 00 00 02 1D 86 + 39 00 00 00 00 00 02 1E 86 + 39 00 00 00 00 00 02 1F 87 + 39 00 00 00 00 00 02 20 87 + 39 00 00 00 00 00 02 21 87 + 39 00 00 00 00 00 02 22 88 + 39 00 00 00 00 00 02 23 88 + 39 00 00 00 00 00 02 24 87 + 39 00 00 00 00 00 02 25 87 + 39 00 00 00 00 00 02 26 88 + 39 00 00 00 00 00 02 27 89 + 39 00 00 00 00 00 02 28 89 + 39 00 00 00 00 00 02 29 8A + 39 00 00 00 00 00 02 2A 8A + 39 00 00 00 00 00 02 2B 8A + 39 00 00 00 00 00 02 2C 8A + 39 00 00 00 00 00 02 2D 8A + 39 00 00 00 00 00 02 2E 8B + 39 00 00 00 00 00 02 2F 8B + 39 00 00 00 00 00 02 30 8B + 39 00 00 00 00 00 02 31 8C + 39 00 00 00 00 00 02 32 8C + 39 00 00 00 00 00 02 33 8D + 39 00 00 00 00 00 02 34 8D + 39 00 00 00 00 00 02 35 8E + 39 00 00 00 00 00 02 36 8F + 39 00 00 00 00 00 02 37 8F + 39 00 00 00 00 00 02 38 8F + 39 00 00 00 00 00 02 39 8F + 39 00 00 00 00 00 02 3A 8F + 39 00 00 00 00 00 02 3B 8F + 39 00 00 00 00 00 02 3C 8F + 39 00 00 00 00 00 02 3D 8F + 39 00 00 00 00 00 02 3E 8E + 39 00 00 00 00 00 02 3F 8E + 39 00 00 00 00 00 02 40 8E + 39 00 00 00 00 00 02 41 8E + 39 00 00 00 00 00 02 42 8E + 39 00 00 00 00 00 02 43 8E + 39 00 00 00 00 00 02 44 8E + 39 00 00 00 00 00 02 45 8E + 39 00 00 00 00 00 02 46 8E + 39 00 00 00 00 00 02 47 8E + 39 00 00 00 00 00 02 48 8E + 39 00 00 00 00 00 02 49 8E + 39 00 00 00 00 00 02 4A 8F + 39 00 00 00 00 00 02 4B 8F + 39 00 00 00 00 00 02 4C 8F + 39 00 00 00 00 00 02 4D 90 + 39 00 00 00 00 00 02 4E 90 + 39 00 00 00 00 00 02 4F 8F + 39 00 00 00 00 00 02 50 90 + 39 00 00 00 00 00 02 51 91 + 39 00 00 00 00 00 02 52 91 + 39 00 00 00 00 00 02 53 92 + 39 00 00 00 00 00 02 54 93 + 39 00 00 00 00 00 02 55 93 + 39 00 00 00 00 00 02 56 93 + 39 00 00 00 00 00 02 57 93 + 39 00 00 00 00 00 02 58 93 + 39 00 00 00 00 00 02 59 94 + 39 00 00 00 00 00 02 5A 94 + 39 00 00 00 00 00 02 5B 94 + 39 00 00 00 00 00 02 5C 94 + 39 00 00 00 00 00 02 5D 95 + 39 00 00 00 00 00 02 5E 95 + 39 00 00 00 00 00 02 5F 95 + 39 00 00 00 00 00 02 60 95 + 39 00 00 00 00 00 02 61 96 + 39 00 00 00 00 00 02 62 96 + 39 00 00 00 00 00 02 63 96 + 39 00 00 00 00 00 02 64 97 + 39 00 00 00 00 00 02 65 97 + 39 00 00 00 00 00 02 66 97 + 39 00 00 00 00 00 02 67 98 + 39 00 00 00 00 00 02 68 98 + 39 00 00 00 00 00 02 69 98 + 39 00 00 00 00 00 02 6A 99 + 39 00 00 00 00 00 02 6B 99 + 39 00 00 00 00 00 02 6C 9A + 39 00 00 00 00 00 02 6D 9A + 39 00 00 00 00 00 02 6E 9A + 39 00 00 00 00 00 02 6F 9B + 39 00 00 00 00 00 02 70 9B + 39 00 00 00 00 00 02 71 9B + 39 00 00 00 00 00 02 72 9C + 39 00 00 00 00 00 02 73 9C + 39 00 00 00 00 00 02 74 9B + 39 00 00 00 00 00 02 75 9C + 39 00 00 00 00 00 02 76 9D + 39 00 00 00 00 00 02 77 9D + 39 00 00 00 00 00 02 78 9E + 39 00 00 00 00 00 02 79 9E + 39 00 00 00 00 00 02 7A 9F + 39 00 00 00 00 00 02 7B 9F + 39 00 00 00 00 00 02 7C 9F + 39 00 00 00 00 00 02 7D 9F + 39 00 00 00 00 00 02 7E A0 + 39 00 00 00 00 00 02 7F A0 + + 39 00 00 00 00 00 04 FF 98 81 09 + 39 00 00 00 00 00 02 01 83 + 39 00 00 00 00 00 02 02 83 + 39 00 00 00 00 00 02 03 82 + 39 00 00 00 00 00 02 04 82 + 39 00 00 00 00 00 02 05 81 + 39 00 00 00 00 00 02 06 81 + 39 00 00 00 00 00 02 07 82 + 39 00 00 00 00 00 02 08 82 + 39 00 00 00 00 00 02 09 83 + 39 00 00 00 00 00 02 0A 83 + 39 00 00 00 00 00 02 0B 84 + 39 00 00 00 00 00 02 0C 84 + 39 00 00 00 00 00 02 0D 85 + 39 00 00 00 00 00 02 0E 85 + 39 00 00 00 00 00 02 0F 85 + 39 00 00 00 00 00 02 10 86 + 39 00 00 00 00 00 02 11 86 + 39 00 00 00 00 00 02 12 87 + 39 00 00 00 00 00 02 13 87 + 39 00 00 00 00 00 02 14 87 + 39 00 00 00 00 00 02 15 87 + 39 00 00 00 00 00 02 16 88 + 39 00 00 00 00 00 02 17 87 + 39 00 00 00 00 00 02 18 88 + 39 00 00 00 00 00 02 19 89 + 39 00 00 00 00 00 02 1A 8A + 39 00 00 00 00 00 02 1B 8A + 39 00 00 00 00 00 02 1C 8A + 39 00 00 00 00 00 02 1D 8A + 39 00 00 00 00 00 02 1E 8A + 39 00 00 00 00 00 02 1F 8A + 39 00 00 00 00 00 02 20 8A + 39 00 00 00 00 00 02 21 8B + 39 00 00 00 00 00 02 22 8B + 39 00 00 00 00 00 02 23 8C + 39 00 00 00 00 00 02 24 8C + 39 00 00 00 00 00 02 25 8C + 39 00 00 00 00 00 02 26 8B + 39 00 00 00 00 00 02 27 8D + 39 00 00 00 00 00 02 28 8E + 39 00 00 00 00 00 02 29 8E + 39 00 00 00 00 00 02 2A 8F + 39 00 00 00 00 00 02 2B 8F + 39 00 00 00 00 00 02 2C 8F + 39 00 00 00 00 00 02 2D 8F + 39 00 00 00 00 00 02 2E 90 + 39 00 00 00 00 00 02 2F 90 + 39 00 00 00 00 00 02 30 91 + 39 00 00 00 00 00 02 31 91 + 39 00 00 00 00 00 02 32 91 + 39 00 00 00 00 00 02 33 92 + 39 00 00 00 00 00 02 34 93 + 39 00 00 00 00 00 02 35 93 + 39 00 00 00 00 00 02 36 94 + 39 00 00 00 00 00 02 37 95 + 39 00 00 00 00 00 02 38 96 + 39 00 00 00 00 00 02 39 96 + 39 00 00 00 00 00 02 3A 96 + 39 00 00 00 00 00 02 3B 96 + 39 00 00 00 00 00 02 3C 96 + 39 00 00 00 00 00 02 3D 96 + 39 00 00 00 00 00 02 3E 96 + 39 00 00 00 00 00 02 3F 96 + 39 00 00 00 00 00 02 40 96 + 39 00 00 00 00 00 02 41 96 + 39 00 00 00 00 00 02 42 96 + 39 00 00 00 00 00 02 43 96 + 39 00 00 00 00 00 02 44 96 + 39 00 00 00 00 00 02 45 96 + 39 00 00 00 00 00 02 46 96 + 39 00 00 00 00 00 02 47 97 + 39 00 00 00 00 00 02 48 97 + 39 00 00 00 00 00 02 49 97 + 39 00 00 00 00 00 02 4A 97 + 39 00 00 00 00 00 02 4B 98 + 39 00 00 00 00 00 02 4C 98 + 39 00 00 00 00 00 02 4D 98 + 39 00 00 00 00 00 02 4E 99 + 39 00 00 00 00 00 02 4F 99 + 39 00 00 00 00 00 02 50 9A + 39 00 00 00 00 00 02 51 9A + 39 00 00 00 00 00 02 52 9A + 39 00 00 00 00 00 02 53 9B + 39 00 00 00 00 00 02 54 9C + 39 00 00 00 00 00 02 55 9D + 39 00 00 00 00 00 02 56 9D + 39 00 00 00 00 00 02 57 9E + 39 00 00 00 00 00 02 58 9E + 39 00 00 00 00 00 02 59 9F + 39 00 00 00 00 00 02 5A 9F + 39 00 00 00 00 00 02 5B 9F + 39 00 00 00 00 00 02 5C 9F + 39 00 00 00 00 00 02 5D A0 + 39 00 00 00 00 00 02 5E A0 + 39 00 00 00 00 00 02 5F A1 + 39 00 00 00 00 00 02 60 A1 + 39 00 00 00 00 00 02 61 A2 + 39 00 00 00 00 00 02 62 A2 + 39 00 00 00 00 00 02 63 A2 + 39 00 00 00 00 00 02 64 A3 + 39 00 00 00 00 00 02 65 A3 + 39 00 00 00 00 00 02 66 A4 + 39 00 00 00 00 00 02 67 A4 + 39 00 00 00 00 00 02 68 A5 + 39 00 00 00 00 00 02 69 A5 + 39 00 00 00 00 00 02 6A A6 + 39 00 00 00 00 00 02 6B A6 + 39 00 00 00 00 00 02 6C A7 + 39 00 00 00 00 00 02 6D A7 + 39 00 00 00 00 00 02 6E A8 + 39 00 00 00 00 00 02 6F A8 + 39 00 00 00 00 00 02 70 A9 + 39 00 00 00 00 00 02 71 A9 + 39 00 00 00 00 00 02 72 AA + 39 00 00 00 00 00 02 73 AA + 39 00 00 00 00 00 02 74 AB + 39 00 00 00 00 00 02 75 AB + 39 00 00 00 00 00 02 76 AC + 39 00 00 00 00 00 02 77 AC + 39 00 00 00 00 00 02 78 AC + 39 00 00 00 00 00 02 79 AD + 39 00 00 00 00 00 02 7A AE + 39 00 00 00 00 00 02 7B AE + 39 00 00 00 00 00 02 7C AF + 39 00 00 00 00 00 02 7D AF + 39 00 00 00 00 00 02 7E B0 + 39 00 00 00 00 00 02 7F B1 + 39 01 00 00 00 00 04 FF 98 81 00 + + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 01 81 + 39 00 00 00 00 00 02 02 81 + 39 00 00 00 00 00 02 03 82 + 39 00 00 00 00 00 02 04 82 + 39 00 00 00 00 00 02 05 82 + 39 00 00 00 00 00 02 06 82 + 39 00 00 00 00 00 02 07 82 + 39 00 00 00 00 00 02 08 82 + 39 00 00 00 00 00 02 09 82 + 39 00 00 00 00 00 02 0A 81 + 39 00 00 00 00 00 02 0B 81 + 39 00 00 00 00 00 02 0C 81 + 39 00 00 00 00 00 02 0D 81 + 39 00 00 00 00 00 02 0E 81 + 39 00 00 00 00 00 02 0F 81 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 81 + 39 00 00 00 00 00 02 12 81 + 39 00 00 00 00 00 02 13 82 + 39 00 00 00 00 00 02 14 82 + 39 00 00 00 00 00 02 15 82 + 39 00 00 00 00 00 02 16 83 + 39 00 00 00 00 00 02 17 83 + 39 00 00 00 00 00 02 18 83 + 39 00 00 00 00 00 02 19 83 + 39 00 00 00 00 00 02 1A 84 + 39 00 00 00 00 00 02 1B 84 + 39 00 00 00 00 00 02 1C 84 + 39 00 00 00 00 00 02 1D 84 + 39 00 00 00 00 00 02 1E 84 + 39 00 00 00 00 00 02 1F 84 + 39 00 00 00 00 00 02 20 84 + 39 00 00 00 00 00 02 21 85 + 39 00 00 00 00 00 02 22 85 + 39 00 00 00 00 00 02 23 85 + 39 00 00 00 00 00 02 24 85 + 39 00 00 00 00 00 02 25 85 + 39 00 00 00 00 00 02 26 84 + 39 00 00 00 00 00 02 27 85 + 39 00 00 00 00 00 02 28 84 + 39 00 00 00 00 00 02 29 84 + 39 00 00 00 00 00 02 2A 84 + 39 00 00 00 00 00 02 2B 84 + 39 00 00 00 00 00 02 2C 84 + 39 00 00 00 00 00 02 2D 84 + 39 00 00 00 00 00 02 2E 83 + 39 00 00 00 00 00 02 2F 83 + 39 00 00 00 00 00 02 30 83 + 39 00 00 00 00 00 02 31 84 + 39 00 00 00 00 00 02 32 84 + 39 00 00 00 00 00 02 33 84 + 39 00 00 00 00 00 02 34 85 + 39 00 00 00 00 00 02 35 85 + 39 00 00 00 00 00 02 36 86 + 39 00 00 00 00 00 02 37 86 + 39 00 00 00 00 00 02 38 87 + 39 00 00 00 00 00 02 39 87 + 39 00 00 00 00 00 02 3A 87 + 39 00 00 00 00 00 02 3B 87 + 39 00 00 00 00 00 02 3C 87 + 39 00 00 00 00 00 02 3D 88 + 39 00 00 00 00 00 02 3E 88 + 39 00 00 00 00 00 02 3F 88 + 39 00 00 00 00 00 02 40 88 + 39 00 00 00 00 00 02 41 88 + 39 00 00 00 00 00 02 42 88 + 39 00 00 00 00 00 02 43 87 + 39 00 00 00 00 00 02 44 87 + 39 00 00 00 00 00 02 45 87 + 39 00 00 00 00 00 02 46 87 + 39 00 00 00 00 00 02 47 86 + 39 00 00 00 00 00 02 48 86 + 39 00 00 00 00 00 02 49 85 + 39 00 00 00 00 00 02 4A 85 + 39 00 00 00 00 00 02 4B 84 + 39 00 00 00 00 00 02 4C 84 + 39 00 00 00 00 00 02 4D 84 + 39 00 00 00 00 00 02 4E 85 + 39 00 00 00 00 00 02 4F 85 + 39 00 00 00 00 00 02 50 86 + 39 00 00 00 00 00 02 51 86 + 39 00 00 00 00 00 02 52 86 + 39 00 00 00 00 00 02 53 87 + 39 00 00 00 00 00 02 54 87 + 39 00 00 00 00 00 02 55 87 + 39 00 00 00 00 00 02 56 87 + 39 00 00 00 00 00 02 57 87 + 39 00 00 00 00 00 02 58 87 + 39 00 00 00 00 00 02 59 87 + 39 00 00 00 00 00 02 5A 86 + 39 00 00 00 00 00 02 5B 86 + 39 00 00 00 00 00 02 5C 86 + 39 00 00 00 00 00 02 5D 86 + 39 00 00 00 00 00 02 5E 86 + 39 00 00 00 00 00 02 5F 87 + 39 00 00 00 00 00 02 60 87 + 39 00 00 00 00 00 02 61 87 + 39 00 00 00 00 00 02 62 87 + 39 00 00 00 00 00 02 63 87 + 39 00 00 00 00 00 02 64 87 + 39 00 00 00 00 00 02 65 87 + 39 00 00 00 00 00 02 66 87 + 39 00 00 00 00 00 02 67 86 + 39 00 00 00 00 00 02 68 86 + 39 00 00 00 00 00 02 69 86 + 39 00 00 00 00 00 02 6A 86 + 39 00 00 00 00 00 02 6B 87 + 39 00 00 00 00 00 02 6C 87 + 39 00 00 00 00 00 02 6D 87 + 39 00 00 00 00 00 02 6E 87 + 39 00 00 00 00 00 02 6F 86 + 39 00 00 00 00 00 02 70 86 + 39 00 00 00 00 00 02 71 86 + 39 00 00 00 00 00 02 72 85 + 39 00 00 00 00 00 02 73 85 + 39 00 00 00 00 00 02 74 85 + 39 00 00 00 00 00 02 75 85 + 39 00 00 00 00 00 02 76 85 + 39 00 00 00 00 00 02 77 85 + 39 00 00 00 00 00 02 78 85 + 39 00 00 00 00 00 02 79 85 + 39 00 00 00 00 00 02 7A 85 + 39 00 00 00 00 00 02 7B 85 + 39 00 00 00 00 00 02 7C 84 + 39 00 00 00 00 00 02 7D 85 + 39 00 00 00 00 00 02 7E 85 + 39 00 00 00 00 00 02 7F 85 + + 39 00 00 00 00 00 04 FF 98 81 08 + 39 00 00 00 00 00 02 01 A1 + 39 00 00 00 00 00 02 02 A1 + 39 00 00 00 00 00 02 03 A2 + 39 00 00 00 00 00 02 04 A2 + 39 00 00 00 00 00 02 05 A2 + 39 00 00 00 00 00 02 06 A3 + 39 00 00 00 00 00 02 07 A3 + 39 00 00 00 00 00 02 08 A3 + 39 00 00 00 00 00 02 09 A3 + 39 00 00 00 00 00 02 0A A4 + 39 00 00 00 00 00 02 0B A4 + 39 00 00 00 00 00 02 0C A4 + 39 00 00 00 00 00 02 0D A4 + 39 00 00 00 00 00 02 0E A5 + 39 00 00 00 00 00 02 0F A5 + 39 00 00 00 00 00 02 10 A5 + 39 00 00 00 00 00 02 11 A5 + 39 00 00 00 00 00 02 12 A5 + 39 00 00 00 00 00 02 13 A5 + 39 00 00 00 00 00 02 14 A5 + 39 00 00 00 00 00 02 15 A5 + 39 00 00 00 00 00 02 16 A5 + 39 00 00 00 00 00 02 17 A5 + 39 00 00 00 00 00 02 18 A5 + 39 00 00 00 00 00 02 19 A5 + 39 00 00 00 00 00 02 1A A6 + 39 00 00 00 00 00 02 1B A6 + 39 00 00 00 00 00 02 1C A7 + 39 00 00 00 00 00 02 1D A7 + 39 00 00 00 00 00 02 1E A8 + 39 00 00 00 00 00 02 1F A8 + 39 00 00 00 00 00 02 20 A9 + 39 00 00 00 00 00 02 21 A9 + 39 00 00 00 00 00 02 22 AA + 39 00 00 00 00 00 02 23 AA + 39 00 00 00 00 00 02 24 AA + 39 00 00 00 00 00 02 25 AB + 39 00 00 00 00 00 02 26 AB + 39 00 00 00 00 00 02 27 AC + 39 00 00 00 00 00 02 28 AC + 39 00 00 00 00 00 02 29 AC + 39 00 00 00 00 00 02 2A AC + 39 00 00 00 00 00 02 2B AD + 39 00 00 00 00 00 02 2C AD + 39 00 00 00 00 00 02 2D AE + 39 00 00 00 00 00 02 2E AD + 39 00 00 00 00 00 02 2F AD + 39 00 00 00 00 00 02 30 AD + 39 00 00 00 00 00 02 31 AD + 39 00 00 00 00 00 02 32 AE + 39 00 00 00 00 00 02 33 AE + 39 00 00 00 00 00 02 34 AE + 39 00 00 00 00 00 02 35 AE + 39 00 00 00 00 00 02 36 AE + 39 00 00 00 00 00 02 37 AE + 39 00 00 00 00 00 02 38 AE + 39 00 00 00 00 00 02 39 AD + 39 00 00 00 00 00 02 3A AD + 39 00 00 00 00 00 02 3B AE + 39 00 00 00 00 00 02 3C AE + 39 00 00 00 00 00 02 3D AF + 39 00 00 00 00 00 02 3E B0 + 39 00 00 00 00 00 02 3F B0 + 39 00 00 00 00 00 02 40 B1 + 39 00 00 00 00 00 02 41 B1 + 39 00 00 00 00 00 02 42 B2 + 39 00 00 00 00 00 02 43 B3 + 39 00 00 00 00 00 02 44 B3 + 39 00 00 00 00 00 02 45 B3 + 39 00 00 00 00 00 02 46 B4 + 39 00 00 00 00 00 02 47 B4 + 39 00 00 00 00 00 02 48 B4 + 39 00 00 00 00 00 02 49 B4 + 39 00 00 00 00 00 02 4A B5 + 39 00 00 00 00 00 02 4B B5 + 39 00 00 00 00 00 02 4C B5 + 39 00 00 00 00 00 02 4D B5 + 39 00 00 00 00 00 02 4E B5 + 39 00 00 00 00 00 02 4F B5 + 39 00 00 00 00 00 02 50 B5 + 39 00 00 00 00 00 02 51 B5 + 39 00 00 00 00 00 02 52 B5 + 39 00 00 00 00 00 02 53 B4 + 39 00 00 00 00 00 02 54 B4 + 39 00 00 00 00 00 02 55 B4 + 39 00 00 00 00 00 02 56 B4 + 39 00 00 00 00 00 02 57 B3 + 39 00 00 00 00 00 02 58 B3 + 39 00 00 00 00 00 02 59 B4 + 39 00 00 00 00 00 02 5A B5 + 39 00 00 00 00 00 02 5B B5 + 39 00 00 00 00 00 02 5C B6 + 39 00 00 00 00 00 02 5D B6 + 39 00 00 00 00 00 02 5E B7 + 39 00 00 00 00 00 02 5F B7 + 39 00 00 00 00 00 02 60 B8 + 39 00 00 00 00 00 02 61 B8 + 39 00 00 00 00 00 02 62 B8 + 39 00 00 00 00 00 02 63 B8 + 39 00 00 00 00 00 02 64 B9 + 39 00 00 00 00 00 02 65 B9 + 39 00 00 00 00 00 02 66 B9 + 39 00 00 00 00 00 02 67 B9 + 39 00 00 00 00 00 02 68 B9 + 39 00 00 00 00 00 02 69 B9 + 39 00 00 00 00 00 02 6A B9 + 39 00 00 00 00 00 02 6B BA + 39 00 00 00 00 00 02 6C BA + 39 00 00 00 00 00 02 6D BB + 39 00 00 00 00 00 02 6E BB + 39 00 00 00 00 00 02 6F BB + 39 00 00 00 00 00 02 70 BB + 39 00 00 00 00 00 02 71 BC + 39 00 00 00 00 00 02 72 BC + 39 00 00 00 00 00 02 73 BC + 39 00 00 00 00 00 02 74 BC + 39 00 00 00 00 00 02 75 BB + 39 00 00 00 00 00 02 76 BB + 39 00 00 00 00 00 02 77 BC + 39 00 00 00 00 00 02 78 BC + 39 00 00 00 00 00 02 79 BD + 39 00 00 00 00 00 02 7A BD + 39 00 00 00 00 00 02 7B BD + 39 00 00 00 00 00 02 7C BD + 39 00 00 00 00 00 02 7D BD + 39 00 00 00 00 00 02 7E BD + 39 00 00 00 00 00 02 7F BD + + + 39 00 00 00 00 00 04 FF 98 81 0A + 39 00 00 00 00 00 02 01 B2 + 39 00 00 00 00 00 02 02 B2 + 39 00 00 00 00 00 02 03 B3 + 39 00 00 00 00 00 02 04 B4 + 39 00 00 00 00 00 02 05 B4 + 39 00 00 00 00 00 02 06 B4 + 39 00 00 00 00 00 02 07 B5 + 39 00 00 00 00 00 02 08 B6 + 39 00 00 00 00 00 02 09 B6 + 39 00 00 00 00 00 02 0A B7 + 39 00 00 00 00 00 02 0B B7 + 39 00 00 00 00 00 02 0C B8 + 39 00 00 00 00 00 02 0D B8 + 39 00 00 00 00 00 02 0E B8 + 39 00 00 00 00 00 02 0F B9 + 39 00 00 00 00 00 02 10 B9 + 39 00 00 00 00 00 02 11 BA + 39 00 00 00 00 00 02 12 BA + 39 00 00 00 00 00 02 13 BB + 39 00 00 00 00 00 02 14 BB + 39 00 00 00 00 00 02 15 BB + 39 00 00 00 00 00 02 16 BC + 39 00 00 00 00 00 02 17 BC + 39 00 00 00 00 00 02 18 BC + 39 00 00 00 00 00 02 19 BD + 39 00 00 00 00 00 02 1A BD + 39 00 00 00 00 00 02 1B BD + 39 00 00 00 00 00 02 1C BD + 39 00 00 00 00 00 02 1D BE + 39 00 00 00 00 00 02 1E BE + 39 00 00 00 00 00 02 1F BE + 39 00 00 00 00 00 02 20 BF + 39 00 00 00 00 00 02 21 BF + 39 00 00 00 00 00 02 22 C0 + 39 00 00 00 00 00 02 23 C1 + 39 00 00 00 00 00 02 24 C2 + 39 00 00 00 00 00 02 25 C2 + 39 00 00 00 00 00 02 26 C3 + 39 00 00 00 00 00 02 27 C4 + 39 00 00 00 00 00 02 28 C4 + 39 00 00 00 00 00 02 29 C5 + 39 00 00 00 00 00 02 2A C6 + 39 00 00 00 00 00 02 2B C6 + 39 00 00 00 00 00 02 2C C7 + 39 00 00 00 00 00 02 2D C7 + 39 00 00 00 00 00 02 2E C8 + 39 00 00 00 00 00 02 2F C8 + 39 00 00 00 00 00 02 30 C9 + 39 00 00 00 00 00 02 31 C9 + 39 00 00 00 00 00 02 32 CA + 39 00 00 00 00 00 02 33 CB + 39 00 00 00 00 00 02 34 CC + 39 00 00 00 00 00 02 35 CC + 39 00 00 00 00 00 02 36 CC + 39 00 00 00 00 00 02 37 CC + 39 00 00 00 00 00 02 38 CC + 39 00 00 00 00 00 02 39 CD + 39 00 00 00 00 00 02 3A CD + 39 00 00 00 00 00 02 3B CD + 39 00 00 00 00 00 02 3C CE + 39 00 00 00 00 00 02 3D CE + 39 00 00 00 00 00 02 3E CE + 39 00 00 00 00 00 02 3F CF + 39 00 00 00 00 00 02 40 CF + 39 00 00 00 00 00 02 41 CF + 39 00 00 00 00 00 02 42 CF + 39 00 00 00 00 00 02 43 CF + 39 00 00 00 00 00 02 44 D0 + 39 00 00 00 00 00 02 45 D1 + 39 00 00 00 00 00 02 46 D2 + 39 00 00 00 00 00 02 47 D3 + 39 00 00 00 00 00 02 48 D4 + 39 00 00 00 00 00 02 49 D5 + 39 00 00 00 00 00 02 4A D5 + 39 00 00 00 00 00 02 4B D6 + 39 00 00 00 00 00 02 4C D7 + 39 00 00 00 00 00 02 4D D8 + 39 00 00 00 00 00 02 4E D8 + 39 00 00 00 00 00 02 4F D9 + 39 00 00 00 00 00 02 50 DA + 39 00 00 00 00 00 02 51 DA + 39 00 00 00 00 00 02 52 DB + 39 00 00 00 00 00 02 53 DB + 39 00 00 00 00 00 02 54 DC + 39 00 00 00 00 00 02 55 DC + 39 00 00 00 00 00 02 56 DD + 39 00 00 00 00 00 02 57 DD + 39 00 00 00 00 00 02 58 DE + 39 00 00 00 00 00 02 59 DE + 39 00 00 00 00 00 02 5A DE + 39 00 00 00 00 00 02 5B DE + 39 00 00 00 00 00 02 5C DF + 39 00 00 00 00 00 02 5D DF + 39 00 00 00 00 00 02 5E DF + 39 00 00 00 00 00 02 5F DF + 39 00 00 00 00 00 02 60 DF + 39 00 00 00 00 00 02 61 E0 + 39 00 00 00 00 00 02 62 E0 + 39 00 00 00 00 00 02 63 E0 + 39 00 00 00 00 00 02 64 E1 + 39 00 00 00 00 00 02 65 E2 + 39 00 00 00 00 00 02 66 E3 + 39 00 00 00 00 00 02 67 E4 + 39 00 00 00 00 00 02 68 E4 + 39 00 00 00 00 00 02 69 E5 + 39 00 00 00 00 00 02 6A E6 + 39 00 00 00 00 00 02 6B E7 + 39 00 00 00 00 00 02 6C E8 + 39 00 00 00 00 00 02 6D E9 + 39 00 00 00 00 00 02 6E E9 + 39 00 00 00 00 00 02 6F EA + 39 00 00 00 00 00 02 70 EA + 39 00 00 00 00 00 02 71 EB + 39 00 00 00 00 00 02 72 EC + 39 00 00 00 00 00 02 73 EC + 39 00 00 00 00 00 02 74 EC + 39 00 00 00 00 00 02 75 ED + 39 00 00 00 00 00 02 76 ED + 39 00 00 00 00 00 02 77 EE + 39 00 00 00 00 00 02 78 EF + 39 00 00 00 00 00 02 79 F0 + 39 00 00 00 00 00 02 7A F1 + 39 00 00 00 00 00 02 7B F2 + 39 00 00 00 00 00 02 7C F3 + 39 00 00 00 00 00 02 7D F3 + 39 00 00 00 00 00 02 7E F4 + 39 00 00 00 00 00 02 7F F5 + + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F 81 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 81 + 39 00 00 00 00 00 02 7F 85 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F a0 + 39 00 00 00 00 00 04 FF 98 81 08 + 39 00 00 00 00 00 02 00 a1 + 39 00 00 00 00 00 02 7F bd + 39 00 00 00 00 00 04 FF 98 81 09 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F b1 + 39 00 00 00 00 00 04 FF 98 81 0A + 39 00 00 00 00 00 02 00 b1 + 39 00 00 00 00 00 02 7F f5 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 80 01 + 39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 21 B0 + 39 00 00 00 00 00 02 32 02 + 39 01 00 00 00 00 04 FF 98 81 00 + 39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 21 B2 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 04 FF 98 81 0A + 39 00 00 00 00 00 02 7F F5 + 39 00 00 00 00 00 02 7E F4 + 39 00 00 00 00 00 02 7D F3 + 39 00 00 00 00 00 02 7C F3 + 39 00 00 00 00 00 02 7B F2 + 39 00 00 00 00 00 02 7A F1 + 39 00 00 00 00 00 02 79 F0 + 39 00 00 00 00 00 02 78 EF + 39 00 00 00 00 00 02 77 EE + 39 00 00 00 00 00 02 76 ED + 39 00 00 00 00 00 02 75 ED + 39 00 00 00 00 00 02 74 EC + 39 00 00 00 00 00 02 73 EC + 39 00 00 00 00 00 02 72 EC + 39 00 00 00 00 00 02 71 EB + 39 00 00 00 00 00 02 70 EA + 39 00 00 00 00 00 02 6F EA + 39 00 00 00 00 00 02 6E E9 + 39 00 00 00 00 00 02 6D E9 + 39 00 00 00 00 00 02 6C E8 + 39 00 00 00 00 00 02 6B E7 + 39 00 00 00 00 00 02 6A E6 + 39 00 00 00 00 00 02 69 E5 + 39 00 00 00 00 00 02 68 E4 + 39 00 00 00 00 00 02 67 E4 + 39 00 00 00 00 00 02 66 E3 + 39 00 00 00 00 00 02 65 E2 + 39 00 00 00 00 00 02 64 E1 + 39 00 00 00 00 00 02 63 E0 + 39 00 00 00 00 00 02 62 E0 + 39 00 00 00 00 00 02 61 E0 + 39 00 00 00 00 00 02 60 DF + 39 00 00 00 00 00 02 5F DF + 39 00 00 00 00 00 02 5E DF + 39 00 00 00 00 00 02 5D DF + 39 00 00 00 00 00 02 5C DF + 39 00 00 00 00 00 02 5B DE + 39 00 00 00 00 00 02 5A DE + 39 00 00 00 00 00 02 59 DE + 39 00 00 00 00 00 02 58 DE + 39 00 00 00 00 00 02 57 DD + 39 00 00 00 00 00 02 56 DD + 39 00 00 00 00 00 02 55 DC + 39 00 00 00 00 00 02 54 DC + 39 00 00 00 00 00 02 53 DB + 39 00 00 00 00 00 02 52 DB + 39 00 00 00 00 00 02 51 DA + 39 00 00 00 00 00 02 50 DA + 39 00 00 00 00 00 02 4F D9 + 39 00 00 00 00 00 02 4E D8 + 39 00 00 00 00 00 02 4D D8 + 39 00 00 00 00 00 02 4C D7 + 39 00 00 00 00 00 02 4B D6 + 39 00 00 00 00 00 02 4A D5 + 39 00 00 00 00 00 02 49 D5 + 39 00 00 00 00 00 02 48 D4 + 39 00 00 00 00 00 02 47 D3 + 39 00 00 00 00 00 02 46 D2 + 39 00 00 00 00 00 02 45 D1 + 39 00 00 00 00 00 02 44 D0 + 39 00 00 00 00 00 02 43 CF + 39 00 00 00 00 00 02 42 CF + 39 00 00 00 00 00 02 41 CF + 39 00 00 00 00 00 02 40 CF + 39 00 00 00 00 00 02 3F CF + 39 00 00 00 00 00 02 3E CE + 39 00 00 00 00 00 02 3D CE + 39 00 00 00 00 00 02 3C CE + 39 00 00 00 00 00 02 3B CD + 39 00 00 00 00 00 02 3A CD + 39 00 00 00 00 00 02 39 CD + 39 00 00 00 00 00 02 38 CC + 39 00 00 00 00 00 02 37 CC + 39 00 00 00 00 00 02 36 CC + 39 00 00 00 00 00 02 35 CC + 39 00 00 00 00 00 02 34 CC + 39 00 00 00 00 00 02 33 CB + 39 00 00 00 00 00 02 32 CA + 39 00 00 00 00 00 02 31 C9 + 39 00 00 00 00 00 02 30 C9 + 39 00 00 00 00 00 02 2F C8 + 39 00 00 00 00 00 02 2E C8 + 39 00 00 00 00 00 02 2D C7 + 39 00 00 00 00 00 02 2C C7 + 39 00 00 00 00 00 02 2B C6 + 39 00 00 00 00 00 02 2A C6 + 39 00 00 00 00 00 02 29 C5 + 39 00 00 00 00 00 02 28 C4 + 39 00 00 00 00 00 02 27 C4 + 39 00 00 00 00 00 02 26 C3 + 39 00 00 00 00 00 02 25 C2 + 39 00 00 00 00 00 02 24 C2 + 39 00 00 00 00 00 02 23 C1 + 39 00 00 00 00 00 02 22 C0 + 39 00 00 00 00 00 02 21 BF + 39 00 00 00 00 00 02 20 BF + 39 00 00 00 00 00 02 1F BE + 39 00 00 00 00 00 02 1E BE + 39 00 00 00 00 00 02 1D BE + 39 00 00 00 00 00 02 1C BD + 39 00 00 00 00 00 02 1B BD + 39 00 00 00 00 00 02 1A BD + 39 00 00 00 00 00 02 19 BD + 39 00 00 00 00 00 02 18 BC + 39 00 00 00 00 00 02 17 BC + 39 00 00 00 00 00 02 16 BC + 39 00 00 00 00 00 02 15 BB + 39 00 00 00 00 00 02 14 BB + 39 00 00 00 00 00 02 13 BB + 39 00 00 00 00 00 02 12 BA + 39 00 00 00 00 00 02 11 BA + 39 00 00 00 00 00 02 10 B9 + 39 00 00 00 00 00 02 0F B9 + 39 00 00 00 00 00 02 0E B8 + 39 00 00 00 00 00 02 0D B8 + 39 00 00 00 00 00 02 0C B8 + 39 00 00 00 00 00 02 0B B7 + 39 00 00 00 00 00 02 0A B7 + 39 00 00 00 00 00 02 09 B6 + 39 00 00 00 00 00 02 08 B6 + 39 00 00 00 00 00 02 07 B5 + 39 00 00 00 00 00 02 06 B4 + 39 00 00 00 00 00 02 05 B4 + 39 00 00 00 00 00 02 04 B4 + 39 00 00 00 00 00 02 03 B3 + 39 00 00 00 00 00 02 02 B2 + 39 00 00 00 00 00 02 01 B2 + + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 7F 85 + 39 00 00 00 00 00 02 7E 85 + 39 00 00 00 00 00 02 7D 85 + 39 00 00 00 00 00 02 7C 84 + 39 00 00 00 00 00 02 7B 85 + 39 00 00 00 00 00 02 7A 85 + 39 00 00 00 00 00 02 79 85 + 39 00 00 00 00 00 02 78 85 + 39 00 00 00 00 00 02 77 85 + 39 00 00 00 00 00 02 76 85 + 39 00 00 00 00 00 02 75 85 + 39 00 00 00 00 00 02 74 85 + 39 00 00 00 00 00 02 73 85 + 39 00 00 00 00 00 02 72 85 + 39 00 00 00 00 00 02 71 86 + 39 00 00 00 00 00 02 70 86 + 39 00 00 00 00 00 02 6F 86 + 39 00 00 00 00 00 02 6E 87 + 39 00 00 00 00 00 02 6D 87 + 39 00 00 00 00 00 02 6C 87 + 39 00 00 00 00 00 02 6B 87 + 39 00 00 00 00 00 02 6A 86 + 39 00 00 00 00 00 02 69 86 + 39 00 00 00 00 00 02 68 86 + 39 00 00 00 00 00 02 67 86 + 39 00 00 00 00 00 02 66 87 + 39 00 00 00 00 00 02 65 87 + 39 00 00 00 00 00 02 64 87 + 39 00 00 00 00 00 02 63 87 + 39 00 00 00 00 00 02 62 87 + 39 00 00 00 00 00 02 61 87 + 39 00 00 00 00 00 02 60 87 + 39 00 00 00 00 00 02 5F 87 + 39 00 00 00 00 00 02 5E 86 + 39 00 00 00 00 00 02 5D 86 + 39 00 00 00 00 00 02 5C 86 + 39 00 00 00 00 00 02 5B 86 + 39 00 00 00 00 00 02 5A 86 + 39 00 00 00 00 00 02 59 87 + 39 00 00 00 00 00 02 58 87 + 39 00 00 00 00 00 02 57 87 + 39 00 00 00 00 00 02 56 87 + 39 00 00 00 00 00 02 55 87 + 39 00 00 00 00 00 02 54 87 + 39 00 00 00 00 00 02 53 87 + 39 00 00 00 00 00 02 52 86 + 39 00 00 00 00 00 02 51 86 + 39 00 00 00 00 00 02 50 86 + 39 00 00 00 00 00 02 4F 85 + 39 00 00 00 00 00 02 4E 85 + 39 00 00 00 00 00 02 4D 84 + 39 00 00 00 00 00 02 4C 84 + 39 00 00 00 00 00 02 4B 84 + 39 00 00 00 00 00 02 4A 85 + 39 00 00 00 00 00 02 49 85 + 39 00 00 00 00 00 02 48 86 + 39 00 00 00 00 00 02 47 86 + 39 00 00 00 00 00 02 46 87 + 39 00 00 00 00 00 02 45 87 + 39 00 00 00 00 00 02 44 87 + 39 00 00 00 00 00 02 43 87 + 39 00 00 00 00 00 02 42 88 + 39 00 00 00 00 00 02 41 88 + 39 00 00 00 00 00 02 40 88 + 39 00 00 00 00 00 02 3F 88 + 39 00 00 00 00 00 02 3E 88 + 39 00 00 00 00 00 02 3D 88 + 39 00 00 00 00 00 02 3C 87 + 39 00 00 00 00 00 02 3B 87 + 39 00 00 00 00 00 02 3A 87 + 39 00 00 00 00 00 02 39 87 + 39 00 00 00 00 00 02 38 87 + 39 00 00 00 00 00 02 37 86 + 39 00 00 00 00 00 02 36 86 + 39 00 00 00 00 00 02 35 85 + 39 00 00 00 00 00 02 34 85 + 39 00 00 00 00 00 02 33 84 + 39 00 00 00 00 00 02 32 84 + 39 00 00 00 00 00 02 31 84 + 39 00 00 00 00 00 02 30 83 + 39 00 00 00 00 00 02 2F 83 + 39 00 00 00 00 00 02 2E 83 + 39 00 00 00 00 00 02 2D 84 + 39 00 00 00 00 00 02 2C 84 + 39 00 00 00 00 00 02 2B 84 + 39 00 00 00 00 00 02 2A 84 + 39 00 00 00 00 00 02 29 84 + 39 00 00 00 00 00 02 28 84 + 39 00 00 00 00 00 02 27 85 + 39 00 00 00 00 00 02 26 84 + 39 00 00 00 00 00 02 25 85 + 39 00 00 00 00 00 02 24 85 + 39 00 00 00 00 00 02 23 85 + 39 00 00 00 00 00 02 22 85 + 39 00 00 00 00 00 02 21 85 + 39 00 00 00 00 00 02 20 84 + 39 00 00 00 00 00 02 1F 84 + 39 00 00 00 00 00 02 1E 84 + 39 00 00 00 00 00 02 1D 84 + 39 00 00 00 00 00 02 1C 84 + 39 00 00 00 00 00 02 1B 84 + 39 00 00 00 00 00 02 1A 84 + 39 00 00 00 00 00 02 19 83 + 39 00 00 00 00 00 02 18 83 + 39 00 00 00 00 00 02 17 83 + 39 00 00 00 00 00 02 16 83 + 39 00 00 00 00 00 02 15 82 + 39 00 00 00 00 00 02 14 82 + 39 00 00 00 00 00 02 13 82 + 39 00 00 00 00 00 02 12 81 + 39 00 00 00 00 00 02 11 81 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 0F 81 + 39 00 00 00 00 00 02 0E 81 + 39 00 00 00 00 00 02 0D 81 + 39 00 00 00 00 00 02 0C 81 + 39 00 00 00 00 00 02 0B 81 + 39 00 00 00 00 00 02 0A 81 + 39 00 00 00 00 00 02 09 82 + 39 00 00 00 00 00 02 08 82 + 39 00 00 00 00 00 02 07 82 + 39 00 00 00 00 00 02 06 82 + 39 00 00 00 00 00 02 05 82 + 39 00 00 00 00 00 02 04 82 + 39 00 00 00 00 00 02 03 82 + 39 00 00 00 00 00 02 02 81 + 39 00 00 00 00 00 02 01 81 + + 39 00 00 00 00 00 04 FF 98 81 08 + 39 00 00 00 00 00 02 7F BD + 39 00 00 00 00 00 02 7E BD + 39 00 00 00 00 00 02 7D BD + 39 00 00 00 00 00 02 7C BD + 39 00 00 00 00 00 02 7B BD + 39 00 00 00 00 00 02 7A BD + 39 00 00 00 00 00 02 79 BD + 39 00 00 00 00 00 02 78 BC + 39 00 00 00 00 00 02 77 BC + 39 00 00 00 00 00 02 76 BB + 39 00 00 00 00 00 02 75 BB + 39 00 00 00 00 00 02 74 BC + 39 00 00 00 00 00 02 73 BC + 39 00 00 00 00 00 02 72 BC + 39 00 00 00 00 00 02 71 BC + 39 00 00 00 00 00 02 70 BB + 39 00 00 00 00 00 02 6F BB + 39 00 00 00 00 00 02 6E BB + 39 00 00 00 00 00 02 6D BB + 39 00 00 00 00 00 02 6C BA + 39 00 00 00 00 00 02 6B BA + 39 00 00 00 00 00 02 6A B9 + 39 00 00 00 00 00 02 69 B9 + 39 00 00 00 00 00 02 68 B9 + 39 00 00 00 00 00 02 67 B9 + 39 00 00 00 00 00 02 66 B9 + 39 00 00 00 00 00 02 65 B9 + 39 00 00 00 00 00 02 64 B9 + 39 00 00 00 00 00 02 63 B8 + 39 00 00 00 00 00 02 62 B8 + 39 00 00 00 00 00 02 61 B8 + 39 00 00 00 00 00 02 60 B8 + 39 00 00 00 00 00 02 5F B7 + 39 00 00 00 00 00 02 5E B7 + 39 00 00 00 00 00 02 5D B6 + 39 00 00 00 00 00 02 5C B6 + 39 00 00 00 00 00 02 5B B5 + 39 00 00 00 00 00 02 5A B5 + 39 00 00 00 00 00 02 59 B4 + 39 00 00 00 00 00 02 58 B3 + 39 00 00 00 00 00 02 57 B3 + 39 00 00 00 00 00 02 56 B4 + 39 00 00 00 00 00 02 55 B4 + 39 00 00 00 00 00 02 54 B4 + 39 00 00 00 00 00 02 53 B4 + 39 00 00 00 00 00 02 52 B5 + 39 00 00 00 00 00 02 51 B5 + 39 00 00 00 00 00 02 50 B5 + 39 00 00 00 00 00 02 4F B5 + 39 00 00 00 00 00 02 4E B5 + 39 00 00 00 00 00 02 4D B5 + 39 00 00 00 00 00 02 4C B5 + 39 00 00 00 00 00 02 4B B5 + 39 00 00 00 00 00 02 4A B5 + 39 00 00 00 00 00 02 49 B4 + 39 00 00 00 00 00 02 48 B4 + 39 00 00 00 00 00 02 47 B4 + 39 00 00 00 00 00 02 46 B4 + 39 00 00 00 00 00 02 45 B3 + 39 00 00 00 00 00 02 44 B3 + 39 00 00 00 00 00 02 43 B3 + 39 00 00 00 00 00 02 42 B2 + 39 00 00 00 00 00 02 41 B1 + 39 00 00 00 00 00 02 40 B1 + 39 00 00 00 00 00 02 3F B0 + 39 00 00 00 00 00 02 3E B0 + 39 00 00 00 00 00 02 3D AF + 39 00 00 00 00 00 02 3C AE + 39 00 00 00 00 00 02 3B AE + 39 00 00 00 00 00 02 3A AD + 39 00 00 00 00 00 02 39 AD + 39 00 00 00 00 00 02 38 AE + 39 00 00 00 00 00 02 37 AE + 39 00 00 00 00 00 02 36 AE + 39 00 00 00 00 00 02 35 AE + 39 00 00 00 00 00 02 34 AE + 39 00 00 00 00 00 02 33 AE + 39 00 00 00 00 00 02 32 AE + 39 00 00 00 00 00 02 31 AD + 39 00 00 00 00 00 02 30 AD + 39 00 00 00 00 00 02 2F AD + 39 00 00 00 00 00 02 2E AD + 39 00 00 00 00 00 02 2D AE + 39 00 00 00 00 00 02 2C AD + 39 00 00 00 00 00 02 2B AD + 39 00 00 00 00 00 02 2A AC + 39 00 00 00 00 00 02 29 AC + 39 00 00 00 00 00 02 28 AC + 39 00 00 00 00 00 02 27 AC + 39 00 00 00 00 00 02 26 AB + 39 00 00 00 00 00 02 25 AB + 39 00 00 00 00 00 02 24 AA + 39 00 00 00 00 00 02 23 AA + 39 00 00 00 00 00 02 22 AA + 39 00 00 00 00 00 02 21 A9 + 39 00 00 00 00 00 02 20 A9 + 39 00 00 00 00 00 02 1F A8 + 39 00 00 00 00 00 02 1E A8 + 39 00 00 00 00 00 02 1D A7 + 39 00 00 00 00 00 02 1C A7 + 39 00 00 00 00 00 02 1B A6 + 39 00 00 00 00 00 02 1A A6 + 39 00 00 00 00 00 02 19 A5 + 39 00 00 00 00 00 02 18 A5 + 39 00 00 00 00 00 02 17 A5 + 39 00 00 00 00 00 02 16 A5 + 39 00 00 00 00 00 02 15 A5 + 39 00 00 00 00 00 02 14 A5 + 39 00 00 00 00 00 02 13 A5 + 39 00 00 00 00 00 02 12 A5 + 39 00 00 00 00 00 02 11 A5 + 39 00 00 00 00 00 02 10 A5 + 39 00 00 00 00 00 02 0F A5 + 39 00 00 00 00 00 02 0E A5 + 39 00 00 00 00 00 02 0D A4 + 39 00 00 00 00 00 02 0C A4 + 39 00 00 00 00 00 02 0B A4 + 39 00 00 00 00 00 02 0A A4 + 39 00 00 00 00 00 02 09 A3 + 39 00 00 00 00 00 02 08 A3 + 39 00 00 00 00 00 02 07 A3 + 39 00 00 00 00 00 02 06 A3 + 39 00 00 00 00 00 02 05 A2 + 39 00 00 00 00 00 02 04 A2 + 39 00 00 00 00 00 02 03 A2 + 39 00 00 00 00 00 02 02 A1 + 39 00 00 00 00 00 02 01 A1 + + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F 81 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 81 + 39 00 00 00 00 00 02 7F 85 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F a0 + 39 00 00 00 00 00 04 FF 98 81 08 + 39 00 00 00 00 00 02 00 a1 + 39 00 00 00 00 00 02 7F bd + 39 00 00 00 00 00 04 FF 98 81 09 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F b1 + 39 00 00 00 00 00 04 FF 98 81 0A + 39 00 00 00 00 00 02 00 b1 + 39 00 00 00 00 00 02 7F f5 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 80 01 + 39 01 00 00 00 00 04 FF 98 81 00 + + 39 00 00 00 00 00 04 FF 98 81 09 + 39 00 00 00 00 00 02 7F B1 + 39 00 00 00 00 00 02 7E B0 + 39 00 00 00 00 00 02 7D AF + 39 00 00 00 00 00 02 7C AF + 39 00 00 00 00 00 02 7B AE + 39 00 00 00 00 00 02 7A AE + 39 00 00 00 00 00 02 79 AD + 39 00 00 00 00 00 02 78 AC + 39 00 00 00 00 00 02 77 AC + 39 00 00 00 00 00 02 76 AC + 39 00 00 00 00 00 02 75 AB + 39 00 00 00 00 00 02 74 AB + 39 00 00 00 00 00 02 73 AA + 39 00 00 00 00 00 02 72 AA + 39 00 00 00 00 00 02 71 A9 + 39 00 00 00 00 00 02 70 A9 + 39 00 00 00 00 00 02 6F A8 + 39 00 00 00 00 00 02 6E A8 + 39 00 00 00 00 00 02 6D A7 + 39 00 00 00 00 00 02 6C A7 + 39 00 00 00 00 00 02 6B A6 + 39 00 00 00 00 00 02 6A A6 + 39 00 00 00 00 00 02 69 A5 + 39 00 00 00 00 00 02 68 A5 + 39 00 00 00 00 00 02 67 A4 + 39 00 00 00 00 00 02 66 A4 + 39 00 00 00 00 00 02 65 A3 + 39 00 00 00 00 00 02 64 A3 + 39 00 00 00 00 00 02 63 A2 + 39 00 00 00 00 00 02 62 A2 + 39 00 00 00 00 00 02 61 A2 + 39 00 00 00 00 00 02 60 A1 + 39 00 00 00 00 00 02 5F A1 + 39 00 00 00 00 00 02 5E A0 + 39 00 00 00 00 00 02 5D A0 + 39 00 00 00 00 00 02 5C 9F + 39 00 00 00 00 00 02 5B 9F + 39 00 00 00 00 00 02 5A 9F + 39 00 00 00 00 00 02 59 9F + 39 00 00 00 00 00 02 58 9E + 39 00 00 00 00 00 02 57 9E + 39 00 00 00 00 00 02 56 9D + 39 00 00 00 00 00 02 55 9D + 39 00 00 00 00 00 02 54 9C + 39 00 00 00 00 00 02 53 9B + 39 00 00 00 00 00 02 52 9A + 39 00 00 00 00 00 02 51 9A + 39 00 00 00 00 00 02 50 9A + 39 00 00 00 00 00 02 4F 99 + 39 00 00 00 00 00 02 4E 99 + 39 00 00 00 00 00 02 4D 98 + 39 00 00 00 00 00 02 4C 98 + 39 00 00 00 00 00 02 4B 98 + 39 00 00 00 00 00 02 4A 97 + 39 00 00 00 00 00 02 49 97 + 39 00 00 00 00 00 02 48 97 + 39 00 00 00 00 00 02 47 97 + 39 00 00 00 00 00 02 46 96 + 39 00 00 00 00 00 02 45 96 + 39 00 00 00 00 00 02 44 96 + 39 00 00 00 00 00 02 43 96 + 39 00 00 00 00 00 02 42 96 + 39 00 00 00 00 00 02 41 96 + 39 00 00 00 00 00 02 40 96 + 39 00 00 00 00 00 02 3F 96 + 39 00 00 00 00 00 02 3E 96 + 39 00 00 00 00 00 02 3D 96 + 39 00 00 00 00 00 02 3C 96 + 39 00 00 00 00 00 02 3B 96 + 39 00 00 00 00 00 02 3A 96 + 39 00 00 00 00 00 02 39 96 + 39 00 00 00 00 00 02 38 96 + 39 00 00 00 00 00 02 37 95 + 39 00 00 00 00 00 02 36 94 + 39 00 00 00 00 00 02 35 93 + 39 00 00 00 00 00 02 34 93 + 39 00 00 00 00 00 02 33 92 + 39 00 00 00 00 00 02 32 91 + 39 00 00 00 00 00 02 31 91 + 39 00 00 00 00 00 02 30 91 + 39 00 00 00 00 00 02 2F 90 + 39 00 00 00 00 00 02 2E 90 + 39 00 00 00 00 00 02 2D 8F + 39 00 00 00 00 00 02 2C 8F + 39 00 00 00 00 00 02 2B 8F + 39 00 00 00 00 00 02 2A 8F + 39 00 00 00 00 00 02 29 8E + 39 00 00 00 00 00 02 28 8E + 39 00 00 00 00 00 02 27 8D + 39 00 00 00 00 00 02 26 8B + 39 00 00 00 00 00 02 25 8C + 39 00 00 00 00 00 02 24 8C + 39 00 00 00 00 00 02 23 8C + 39 00 00 00 00 00 02 22 8B + 39 00 00 00 00 00 02 21 8B + 39 00 00 00 00 00 02 20 8A + 39 00 00 00 00 00 02 1F 8A + 39 00 00 00 00 00 02 1E 8A + 39 00 00 00 00 00 02 1D 8A + 39 00 00 00 00 00 02 1C 8A + 39 00 00 00 00 00 02 1B 8A + 39 00 00 00 00 00 02 1A 8A + 39 00 00 00 00 00 02 19 89 + 39 00 00 00 00 00 02 18 88 + 39 00 00 00 00 00 02 17 87 + 39 00 00 00 00 00 02 16 88 + 39 00 00 00 00 00 02 15 87 + 39 00 00 00 00 00 02 14 87 + 39 00 00 00 00 00 02 13 87 + 39 00 00 00 00 00 02 12 87 + 39 00 00 00 00 00 02 11 86 + 39 00 00 00 00 00 02 10 86 + 39 00 00 00 00 00 02 0F 85 + 39 00 00 00 00 00 02 0E 85 + 39 00 00 00 00 00 02 0D 85 + 39 00 00 00 00 00 02 0C 84 + 39 00 00 00 00 00 02 0B 84 + 39 00 00 00 00 00 02 0A 83 + 39 00 00 00 00 00 02 09 83 + 39 00 00 00 00 00 02 08 82 + 39 00 00 00 00 00 02 07 82 + 39 00 00 00 00 00 02 06 81 + 39 00 00 00 00 00 02 05 81 + 39 00 00 00 00 00 02 04 82 + 39 00 00 00 00 00 02 03 82 + 39 00 00 00 00 00 02 02 83 + 39 00 00 00 00 00 02 01 83 + + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 7F 81 + 39 00 00 00 00 00 02 7E 81 + 39 00 00 00 00 00 02 7D 81 + 39 00 00 00 00 00 02 7C 81 + 39 00 00 00 00 00 02 7B 81 + 39 00 00 00 00 00 02 7A 00 + 39 00 00 00 00 00 02 79 00 + 39 00 00 00 00 00 02 78 00 + 39 00 00 00 00 00 02 77 00 + 39 00 00 00 00 00 02 76 00 + 39 00 00 00 00 00 02 75 01 + 39 00 00 00 00 00 02 74 01 + 39 00 00 00 00 00 02 73 01 + 39 00 00 00 00 00 02 72 01 + 39 00 00 00 00 00 02 71 02 + 39 00 00 00 00 00 02 70 02 + 39 00 00 00 00 00 02 6F 02 + 39 00 00 00 00 00 02 6E 02 + 39 00 00 00 00 00 02 6D 03 + 39 00 00 00 00 00 02 6C 03 + 39 00 00 00 00 00 02 6B 03 + 39 00 00 00 00 00 02 6A 03 + 39 00 00 00 00 00 02 69 03 + 39 00 00 00 00 00 02 68 03 + 39 00 00 00 00 00 02 67 03 + 39 00 00 00 00 00 02 66 03 + 39 00 00 00 00 00 02 65 03 + 39 00 00 00 00 00 02 64 04 + 39 00 00 00 00 00 02 63 04 + 39 00 00 00 00 00 02 62 04 + 39 00 00 00 00 00 02 61 04 + 39 00 00 00 00 00 02 60 04 + 39 00 00 00 00 00 02 5F 05 + 39 00 00 00 00 00 02 5E 05 + 39 00 00 00 00 00 02 5D 05 + 39 00 00 00 00 00 02 5C 05 + 39 00 00 00 00 00 02 5B 05 + 39 00 00 00 00 00 02 5A 05 + 39 00 00 00 00 00 02 59 05 + 39 00 00 00 00 00 02 58 05 + 39 00 00 00 00 00 02 57 06 + 39 00 00 00 00 00 02 56 06 + 39 00 00 00 00 00 02 55 06 + 39 00 00 00 00 00 02 54 06 + 39 00 00 00 00 00 02 53 06 + 39 00 00 00 00 00 02 52 06 + 39 00 00 00 00 00 02 51 06 + 39 00 00 00 00 00 02 50 06 + 39 00 00 00 00 00 02 4F 06 + 39 00 00 00 00 00 02 4E 06 + 39 00 00 00 00 00 02 4D 06 + 39 00 00 00 00 00 02 4C 07 + 39 00 00 00 00 00 02 4B 07 + 39 00 00 00 00 00 02 4A 08 + 39 00 00 00 00 00 02 49 08 + 39 00 00 00 00 00 02 48 08 + 39 00 00 00 00 00 02 47 08 + 39 00 00 00 00 00 02 46 08 + 39 00 00 00 00 00 02 45 08 + 39 00 00 00 00 00 02 44 08 + 39 00 00 00 00 00 02 43 08 + 39 00 00 00 00 00 02 42 08 + 39 00 00 00 00 00 02 41 07 + 39 00 00 00 00 00 02 40 07 + 39 00 00 00 00 00 02 3F 07 + 39 00 00 00 00 00 02 3E 07 + 39 00 00 00 00 00 02 3D 07 + 39 00 00 00 00 00 02 3C 06 + 39 00 00 00 00 00 02 3B 06 + 39 00 00 00 00 00 02 3A 05 + 39 00 00 00 00 00 02 39 05 + 39 00 00 00 00 00 02 38 04 + 39 00 00 00 00 00 02 37 04 + 39 00 00 00 00 00 02 36 04 + 39 00 00 00 00 00 02 35 04 + 39 00 00 00 00 00 02 34 04 + 39 00 00 00 00 00 02 33 03 + 39 00 00 00 00 00 02 32 02 + 39 00 00 00 00 00 02 31 03 + 39 00 00 00 00 00 02 30 03 + 39 00 00 00 00 00 02 2F 04 + 39 00 00 00 00 00 02 2E 04 + 39 00 00 00 00 00 02 2D 05 + 39 00 00 00 00 00 02 2C 05 + 39 00 00 00 00 00 02 2B 05 + 39 00 00 00 00 00 02 2A 05 + 39 00 00 00 00 00 02 29 05 + 39 00 00 00 00 00 02 28 05 + 39 00 00 00 00 00 02 27 05 + 39 00 00 00 00 00 02 26 04 + 39 00 00 00 00 00 02 25 05 + 39 00 00 00 00 00 02 24 05 + 39 00 00 00 00 00 02 23 05 + 39 00 00 00 00 00 02 22 06 + 39 00 00 00 00 00 02 21 06 + 39 00 00 00 00 00 02 20 05 + 39 00 00 00 00 00 02 1F 05 + 39 00 00 00 00 00 02 1E 05 + 39 00 00 00 00 00 02 1D 05 + 39 00 00 00 00 00 02 1C 05 + 39 00 00 00 00 00 02 1B 05 + 39 00 00 00 00 00 02 1A 04 + 39 00 00 00 00 00 02 19 04 + 39 00 00 00 00 00 02 18 03 + 39 00 00 00 00 00 02 17 03 + 39 00 00 00 00 00 02 16 04 + 39 00 00 00 00 00 02 15 04 + 39 00 00 00 00 00 02 14 04 + 39 00 00 00 00 00 02 13 04 + 39 00 00 00 00 00 02 12 04 + 39 00 00 00 00 00 02 11 04 + 39 00 00 00 00 00 02 10 03 + 39 00 00 00 00 00 02 0F 03 + 39 00 00 00 00 00 02 0E 03 + 39 00 00 00 00 00 02 0D 03 + 39 00 00 00 00 00 02 0C 03 + 39 00 00 00 00 00 02 0B 03 + 39 00 00 00 00 00 02 0A 03 + 39 00 00 00 00 00 02 09 04 + 39 00 00 00 00 00 02 08 04 + 39 00 00 00 00 00 02 07 03 + 39 00 00 00 00 00 02 06 03 + 39 00 00 00 00 00 02 05 04 + 39 00 00 00 00 00 02 04 03 + 39 00 00 00 00 00 02 03 02 + 39 00 00 00 00 00 02 02 01 + 39 00 00 00 00 00 02 01 81 + + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 D3 39 + 39 00 00 00 00 00 02 D2 64 + 39 00 00 00 00 00 02 D1 54 + 39 00 00 00 00 00 02 D0 28 + 39 00 00 00 00 00 02 CF 23 + 39 00 00 00 00 00 02 CE 4F + 39 00 00 00 00 00 02 CD 1A + 39 00 00 00 00 00 02 CC 1C + 39 00 00 00 00 00 02 CB 8B + 39 00 00 00 00 00 02 CA 29 + 39 00 00 00 00 00 02 C9 1D + 39 00 00 00 00 00 02 C8 98 + 39 00 00 00 00 00 02 C7 1F + 39 00 00 00 00 00 02 C6 1E + 39 00 00 00 00 00 02 C5 2A + 39 00 00 00 00 00 02 C4 17 + 39 00 00 00 00 00 02 C3 14 + 39 00 00 00 00 00 02 C2 2B + 39 00 00 00 00 00 02 C1 1C + 39 00 00 00 00 00 02 C0 00 + + 39 00 00 00 00 00 02 B3 39 + 39 00 00 00 00 00 02 B2 65 + 39 00 00 00 00 00 02 B1 55 + 39 00 00 00 00 00 02 B0 27 + 39 00 00 00 00 00 02 AF 22 + 39 00 00 00 00 00 02 AE 4E + 39 00 00 00 00 00 02 AD 1A + 39 00 00 00 00 00 02 AC 1B + 39 00 00 00 00 00 02 AB 8C + 39 00 00 00 00 00 02 AA 29 + 39 00 00 00 00 00 02 A9 1D + 39 00 00 00 00 00 02 A8 99 + 39 00 00 00 00 00 02 A7 1F + 39 00 00 00 00 00 02 A6 1D + 39 00 00 00 00 00 02 A5 29 + 39 00 00 00 00 00 02 A4 16 + 39 00 00 00 00 00 02 A3 14 + 39 00 00 00 00 00 02 A2 2C + 39 00 00 00 00 00 02 A1 1D + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 f6 00 + + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 7F A0 + 39 00 00 00 00 00 02 7E A0 + 39 00 00 00 00 00 02 7D 9F + 39 00 00 00 00 00 02 7C 9F + 39 00 00 00 00 00 02 7B 9F + 39 00 00 00 00 00 02 7A 9F + 39 00 00 00 00 00 02 79 9E + 39 00 00 00 00 00 02 78 9E + 39 00 00 00 00 00 02 77 9D + 39 00 00 00 00 00 02 76 9D + 39 00 00 00 00 00 02 75 9C + 39 00 00 00 00 00 02 74 9B + 39 00 00 00 00 00 02 73 9C + 39 00 00 00 00 00 02 72 9C + 39 00 00 00 00 00 02 71 9B + 39 00 00 00 00 00 02 70 9B + 39 00 00 00 00 00 02 6F 9B + 39 00 00 00 00 00 02 6E 9A + 39 00 00 00 00 00 02 6D 9A + 39 00 00 00 00 00 02 6C 9A + 39 00 00 00 00 00 02 6B 99 + 39 00 00 00 00 00 02 6A 99 + 39 00 00 00 00 00 02 69 98 + 39 00 00 00 00 00 02 68 98 + 39 00 00 00 00 00 02 67 98 + 39 00 00 00 00 00 02 66 97 + 39 00 00 00 00 00 02 65 97 + 39 00 00 00 00 00 02 64 97 + 39 00 00 00 00 00 02 63 96 + 39 00 00 00 00 00 02 62 96 + 39 00 00 00 00 00 02 61 96 + 39 00 00 00 00 00 02 60 95 + 39 00 00 00 00 00 02 5F 95 + 39 00 00 00 00 00 02 5E 95 + 39 00 00 00 00 00 02 5D 95 + 39 00 00 00 00 00 02 5C 94 + 39 00 00 00 00 00 02 5B 94 + 39 00 00 00 00 00 02 5A 94 + 39 00 00 00 00 00 02 59 94 + 39 00 00 00 00 00 02 58 93 + 39 00 00 00 00 00 02 57 93 + 39 00 00 00 00 00 02 56 93 + 39 00 00 00 00 00 02 55 93 + 39 00 00 00 00 00 02 54 93 + 39 00 00 00 00 00 02 53 92 + 39 00 00 00 00 00 02 52 91 + 39 00 00 00 00 00 02 51 91 + 39 00 00 00 00 00 02 50 90 + 39 00 00 00 00 00 02 4F 8F + 39 00 00 00 00 00 02 4E 90 + 39 00 00 00 00 00 02 4D 90 + 39 00 00 00 00 00 02 4C 8F + 39 00 00 00 00 00 02 4B 8F + 39 00 00 00 00 00 02 4A 8F + 39 00 00 00 00 00 02 49 8E + 39 00 00 00 00 00 02 48 8E + 39 00 00 00 00 00 02 47 8E + 39 00 00 00 00 00 02 46 8E + 39 00 00 00 00 00 02 45 8E + 39 00 00 00 00 00 02 44 8E + 39 00 00 00 00 00 02 43 8E + 39 00 00 00 00 00 02 42 8E + 39 00 00 00 00 00 02 41 8E + 39 00 00 00 00 00 02 40 8E + 39 00 00 00 00 00 02 3F 8E + 39 00 00 00 00 00 02 3E 8E + 39 00 00 00 00 00 02 3D 8F + 39 00 00 00 00 00 02 3C 8F + 39 00 00 00 00 00 02 3B 8F + 39 00 00 00 00 00 02 3A 8F + 39 00 00 00 00 00 02 39 8F + 39 00 00 00 00 00 02 38 8F + 39 00 00 00 00 00 02 37 8F + 39 00 00 00 00 00 02 36 8F + 39 00 00 00 00 00 02 35 8E + 39 00 00 00 00 00 02 34 8D + 39 00 00 00 00 00 02 33 8D + 39 00 00 00 00 00 02 32 8C + 39 00 00 00 00 00 02 31 8C + 39 00 00 00 00 00 02 30 8B + 39 00 00 00 00 00 02 2F 8B + 39 00 00 00 00 00 02 2E 8B + 39 00 00 00 00 00 02 2D 8A + 39 00 00 00 00 00 02 2C 8A + 39 00 00 00 00 00 02 2B 8A + 39 00 00 00 00 00 02 2A 8A + 39 00 00 00 00 00 02 29 8A + 39 00 00 00 00 00 02 28 89 + 39 00 00 00 00 00 02 27 89 + 39 00 00 00 00 00 02 26 88 + 39 00 00 00 00 00 02 25 87 + 39 00 00 00 00 00 02 24 87 + 39 00 00 00 00 00 02 23 88 + 39 00 00 00 00 00 02 22 88 + 39 00 00 00 00 00 02 21 87 + 39 00 00 00 00 00 02 20 87 + 39 00 00 00 00 00 02 1F 87 + 39 00 00 00 00 00 02 1E 86 + 39 00 00 00 00 00 02 1D 86 + 39 00 00 00 00 00 02 1C 87 + 39 00 00 00 00 00 02 1B 87 + 39 00 00 00 00 00 02 1A 87 + 39 00 00 00 00 00 02 19 86 + 39 00 00 00 00 00 02 18 86 + 39 00 00 00 00 00 02 17 85 + 39 00 00 00 00 00 02 16 85 + 39 00 00 00 00 00 02 15 85 + 39 00 00 00 00 00 02 14 85 + 39 00 00 00 00 00 02 13 85 + 39 00 00 00 00 00 02 12 85 + 39 00 00 00 00 00 02 11 85 + 39 00 00 00 00 00 02 10 84 + 39 00 00 00 00 00 02 0F 84 + 39 00 00 00 00 00 02 0E 83 + 39 00 00 00 00 00 02 0D 83 + 39 00 00 00 00 00 02 0C 83 + 39 00 00 00 00 00 02 0B 82 + 39 00 00 00 00 00 02 0A 82 + 39 00 00 00 00 00 02 09 82 + 39 00 00 00 00 00 02 08 82 + 39 00 00 00 00 00 02 07 81 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 05 00 + 39 00 00 00 00 00 02 04 81 + 39 00 00 00 00 00 02 03 81 + 39 00 00 00 00 00 02 02 82 + 39 00 00 00 00 00 02 01 82 + + 39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 21 B0 + 39 00 00 00 00 00 02 32 02 + 39 01 00 00 00 00 04 FF 98 81 00 + ]; + + + qcom,mdss-dsi-panel-cool-command = [39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 21 B2 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 f6 00 + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 A1 1D + 39 00 00 00 00 00 02 A2 2C + 39 00 00 00 00 00 02 A3 14 + 39 00 00 00 00 00 02 A4 16 + 39 00 00 00 00 00 02 A5 29 + 39 00 00 00 00 00 02 A6 1D + 39 00 00 00 00 00 02 A7 1F + 39 00 00 00 00 00 02 A8 99 + 39 00 00 00 00 00 02 A9 1D + 39 00 00 00 00 00 02 AA 29 + 39 00 00 00 00 00 02 AB 8C + 39 00 00 00 00 00 02 AC 1B + 39 00 00 00 00 00 02 AD 1A + 39 00 00 00 00 00 02 AE 4E + 39 00 00 00 00 00 02 AF 22 + 39 00 00 00 00 00 02 B0 27 + 39 00 00 00 00 00 02 B1 55 + 39 00 00 00 00 00 02 B2 65 + 39 00 00 00 00 00 02 B3 39 + + 39 00 00 00 00 00 02 C0 00 + 39 00 00 00 00 00 02 C1 1C + 39 00 00 00 00 00 02 C2 2B + 39 00 00 00 00 00 02 C3 14 + 39 00 00 00 00 00 02 C4 17 + 39 00 00 00 00 00 02 C5 2A + 39 00 00 00 00 00 02 C6 1E + 39 00 00 00 00 00 02 C7 1F + 39 00 00 00 00 00 02 C8 98 + 39 00 00 00 00 00 02 C9 1D + 39 00 00 00 00 00 02 CA 29 + 39 00 00 00 00 00 02 CB 8B + 39 00 00 00 00 00 02 CC 1C + 39 00 00 00 00 00 02 CD 1A + 39 00 00 00 00 00 02 CE 4F + 39 00 00 00 00 00 02 CF 23 + 39 00 00 00 00 00 02 D0 28 + 39 00 00 00 00 00 02 D1 54 + 39 00 00 00 00 00 02 D2 64 + 39 00 00 00 00 00 02 D3 39 + + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 01 81 + 39 00 00 00 00 00 02 02 01 + 39 00 00 00 00 00 02 03 02 + 39 00 00 00 00 00 02 04 03 + 39 00 00 00 00 00 02 05 04 + 39 00 00 00 00 00 02 06 04 + 39 00 00 00 00 00 02 07 03 + 39 00 00 00 00 00 02 08 04 + 39 00 00 00 00 00 02 09 04 + 39 00 00 00 00 00 02 0A 03 + 39 00 00 00 00 00 02 0B 03 + 39 00 00 00 00 00 02 0C 03 + 39 00 00 00 00 00 02 0D 03 + 39 00 00 00 00 00 02 0E 03 + 39 00 00 00 00 00 02 0F 03 + 39 00 00 00 00 00 02 10 03 + 39 00 00 00 00 00 02 11 04 + 39 00 00 00 00 00 02 12 04 + 39 00 00 00 00 00 02 13 04 + 39 00 00 00 00 00 02 14 04 + 39 00 00 00 00 00 02 15 04 + 39 00 00 00 00 00 02 16 04 + 39 00 00 00 00 00 02 17 03 + 39 00 00 00 00 00 02 18 03 + 39 00 00 00 00 00 02 19 04 + 39 00 00 00 00 00 02 1A 05 + 39 00 00 00 00 00 02 1B 05 + 39 00 00 00 00 00 02 1C 05 + 39 00 00 00 00 00 02 1D 05 + 39 00 00 00 00 00 02 1E 05 + 39 00 00 00 00 00 02 1F 05 + 39 00 00 00 00 00 02 20 05 + 39 00 00 00 00 00 02 21 06 + 39 00 00 00 00 00 02 22 06 + 39 00 00 00 00 00 02 23 05 + 39 00 00 00 00 00 02 24 05 + 39 00 00 00 00 00 02 25 05 + 39 00 00 00 00 00 02 26 05 + 39 00 00 00 00 00 02 27 05 + 39 00 00 00 00 00 02 28 05 + 39 00 00 00 00 00 02 29 05 + 39 00 00 00 00 00 02 2A 05 + 39 00 00 00 00 00 02 2B 05 + 39 00 00 00 00 00 02 2C 05 + 39 00 00 00 00 00 02 2D 05 + 39 00 00 00 00 00 02 2E 05 + 39 00 00 00 00 00 02 2F 04 + 39 00 00 00 00 00 02 30 04 + 39 00 00 00 00 00 02 31 03 + 39 00 00 00 00 00 02 32 03 + 39 00 00 00 00 00 02 33 03 + 39 00 00 00 00 00 02 34 04 + 39 00 00 00 00 00 02 35 04 + 39 00 00 00 00 00 02 36 04 + 39 00 00 00 00 00 02 37 05 + 39 00 00 00 00 00 02 38 05 + 39 00 00 00 00 00 02 39 05 + 39 00 00 00 00 00 02 3A 06 + 39 00 00 00 00 00 02 3B 06 + 39 00 00 00 00 00 02 3C 07 + 39 00 00 00 00 00 02 3D 07 + 39 00 00 00 00 00 02 3E 07 + 39 00 00 00 00 00 02 3F 08 + 39 00 00 00 00 00 02 40 08 + 39 00 00 00 00 00 02 41 08 + 39 00 00 00 00 00 02 42 08 + 39 00 00 00 00 00 02 43 08 + 39 00 00 00 00 00 02 44 08 + 39 00 00 00 00 00 02 45 08 + 39 00 00 00 00 00 02 46 08 + 39 00 00 00 00 00 02 47 08 + 39 00 00 00 00 00 02 48 08 + 39 00 00 00 00 00 02 49 09 + 39 00 00 00 00 00 02 4A 08 + 39 00 00 00 00 00 02 4B 08 + 39 00 00 00 00 00 02 4C 07 + 39 00 00 00 00 00 02 4D 07 + 39 00 00 00 00 00 02 4E 06 + 39 00 00 00 00 00 02 4F 06 + 39 00 00 00 00 00 02 50 06 + 39 00 00 00 00 00 02 51 06 + 39 00 00 00 00 00 02 52 07 + 39 00 00 00 00 00 02 53 07 + 39 00 00 00 00 00 02 54 06 + 39 00 00 00 00 00 02 55 06 + 39 00 00 00 00 00 02 56 06 + 39 00 00 00 00 00 02 57 06 + 39 00 00 00 00 00 02 58 06 + 39 00 00 00 00 00 02 59 06 + 39 00 00 00 00 00 02 5A 06 + 39 00 00 00 00 00 02 5B 06 + 39 00 00 00 00 00 02 5C 06 + 39 00 00 00 00 00 02 5D 06 + 39 00 00 00 00 00 02 5E 05 + 39 00 00 00 00 00 02 5F 05 + 39 00 00 00 00 00 02 60 05 + 39 00 00 00 00 00 02 61 05 + 39 00 00 00 00 00 02 62 05 + 39 00 00 00 00 00 02 63 05 + 39 00 00 00 00 00 02 64 04 + 39 00 00 00 00 00 02 65 04 + 39 00 00 00 00 00 02 66 04 + 39 00 00 00 00 00 02 67 04 + 39 00 00 00 00 00 02 68 04 + 39 00 00 00 00 00 02 69 04 + 39 00 00 00 00 00 02 6A 03 + 39 00 00 00 00 00 02 6B 03 + 39 00 00 00 00 00 02 6C 04 + 39 00 00 00 00 00 02 6D 04 + 39 00 00 00 00 00 02 6E 03 + 39 00 00 00 00 00 02 6F 03 + 39 00 00 00 00 00 02 70 02 + 39 00 00 00 00 00 02 71 02 + 39 00 00 00 00 00 02 72 02 + 39 00 00 00 00 00 02 73 02 + 39 00 00 00 00 00 02 74 01 + 39 00 00 00 00 00 02 75 01 + 39 00 00 00 00 00 02 76 01 + 39 00 00 00 00 00 02 77 01 + 39 00 00 00 00 00 02 78 01 + 39 00 00 00 00 00 02 79 01 + 39 00 00 00 00 00 02 7A 01 + 39 00 00 00 00 00 02 7B 00 + 39 00 00 00 00 00 02 7C 00 + 39 00 00 00 00 00 02 7D 00 + 39 00 00 00 00 00 02 7E 00 + 39 00 00 00 00 00 02 7F 00 + + + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 01 82 + 39 00 00 00 00 00 02 02 81 + 39 00 00 00 00 00 02 03 00 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 01 + 39 00 00 00 00 00 02 06 01 + 39 00 00 00 00 00 02 07 01 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 00 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 00 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 00 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 00 + 39 00 00 00 00 00 02 10 81 + 39 00 00 00 00 00 02 11 00 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 00 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 01 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 00 + 39 00 00 00 00 00 02 18 81 + 39 00 00 00 00 00 02 19 81 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 1B 00 + 39 00 00 00 00 00 02 1C 01 + 39 00 00 00 00 00 02 1D 01 + 39 00 00 00 00 00 02 1E 01 + 39 00 00 00 00 00 02 1F 01 + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 21 00 + 39 00 00 00 00 00 02 22 01 + 39 00 00 00 00 00 02 23 01 + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 25 00 + 39 00 00 00 00 00 02 26 00 + 39 00 00 00 00 00 02 27 00 + 39 00 00 00 00 00 02 28 00 + 39 00 00 00 00 00 02 29 00 + 39 00 00 00 00 00 02 2A 00 + 39 00 00 00 00 00 02 2B 00 + 39 00 00 00 00 00 02 2C 00 + 39 00 00 00 00 00 02 2D 00 + 39 00 00 00 00 00 02 2E 00 + 39 00 00 00 00 00 02 2F 00 + 39 00 00 00 00 00 02 30 81 + 39 00 00 00 00 00 02 31 81 + 39 00 00 00 00 00 02 32 82 + 39 00 00 00 00 00 02 33 82 + 39 00 00 00 00 00 02 34 82 + 39 00 00 00 00 00 02 35 81 + 39 00 00 00 00 00 02 36 81 + 39 00 00 00 00 00 02 37 81 + 39 00 00 00 00 00 02 38 81 + 39 00 00 00 00 00 02 39 00 + 39 00 00 00 00 00 02 3A 00 + 39 00 00 00 00 00 02 3B 01 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3D 02 + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3F 02 + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 41 03 + 39 00 00 00 00 00 02 42 03 + 39 00 00 00 00 00 02 43 03 + 39 00 00 00 00 00 02 44 03 + 39 00 00 00 00 00 02 45 03 + 39 00 00 00 00 00 02 46 03 + 39 00 00 00 00 00 02 47 03 + 39 00 00 00 00 00 02 48 03 + 39 00 00 00 00 00 02 49 03 + 39 00 00 00 00 00 02 4A 03 + 39 00 00 00 00 00 02 4B 03 + 39 00 00 00 00 00 02 4C 03 + 39 00 00 00 00 00 02 4D 02 + 39 00 00 00 00 00 02 4E 01 + 39 00 00 00 00 00 02 4F 01 + 39 00 00 00 00 00 02 50 01 + 39 00 00 00 00 00 02 51 01 + 39 00 00 00 00 00 02 52 01 + 39 00 00 00 00 00 02 53 01 + 39 00 00 00 00 00 02 54 01 + 39 00 00 00 00 00 02 55 01 + 39 00 00 00 00 00 02 56 01 + 39 00 00 00 00 00 02 57 01 + 39 00 00 00 00 00 02 58 01 + 39 00 00 00 00 00 02 59 01 + 39 00 00 00 00 00 02 5A 01 + 39 00 00 00 00 00 02 5B 01 + 39 00 00 00 00 00 02 5C 01 + 39 00 00 00 00 00 02 5D 01 + 39 00 00 00 00 00 02 5E 01 + 39 00 00 00 00 00 02 5F 01 + 39 00 00 00 00 00 02 60 01 + 39 00 00 00 00 00 02 61 01 + 39 00 00 00 00 00 02 62 01 + 39 00 00 00 00 00 02 63 00 + 39 00 00 00 00 00 02 64 00 + 39 00 00 00 00 00 02 65 00 + 39 00 00 00 00 00 02 66 00 + 39 00 00 00 00 00 02 67 00 + 39 00 00 00 00 00 02 68 00 + 39 00 00 00 00 00 02 69 00 + 39 00 00 00 00 00 02 6A 00 + 39 00 00 00 00 00 02 6B 81 + 39 00 00 00 00 00 02 6C 81 + 39 00 00 00 00 00 02 6D 00 + 39 00 00 00 00 00 02 6E 00 + 39 00 00 00 00 00 02 6F 81 + 39 00 00 00 00 00 02 70 81 + 39 00 00 00 00 00 02 71 81 + 39 00 00 00 00 00 02 72 81 + 39 00 00 00 00 00 02 73 82 + 39 00 00 00 00 00 02 74 82 + 39 00 00 00 00 00 02 75 82 + 39 00 00 00 00 00 02 76 82 + 39 00 00 00 00 00 02 77 82 + 39 00 00 00 00 00 02 78 82 + 39 00 00 00 00 00 02 79 82 + 39 00 00 00 00 00 02 7A 83 + 39 00 00 00 00 00 02 7B 83 + 39 00 00 00 00 00 02 7C 83 + 39 00 00 00 00 00 02 7D 83 + 39 00 00 00 00 00 02 7E 83 + 39 00 00 00 00 00 02 7F 83 + + 39 00 00 00 00 00 04 FF 98 81 09 + 39 00 00 00 00 00 02 01 82 + 39 00 00 00 00 00 02 02 81 + 39 00 00 00 00 00 02 03 00 + 39 00 00 00 00 00 02 04 01 + 39 00 00 00 00 00 02 05 02 + 39 00 00 00 00 00 02 06 02 + 39 00 00 00 00 00 02 07 02 + 39 00 00 00 00 00 02 08 02 + 39 00 00 00 00 00 02 09 02 + 39 00 00 00 00 00 02 0A 02 + 39 00 00 00 00 00 02 0B 02 + 39 00 00 00 00 00 02 0C 02 + 39 00 00 00 00 00 02 0D 02 + 39 00 00 00 00 00 02 0E 02 + 39 00 00 00 00 00 02 0F 02 + 39 00 00 00 00 00 02 10 03 + 39 00 00 00 00 00 02 11 03 + 39 00 00 00 00 00 02 12 03 + 39 00 00 00 00 00 02 13 04 + 39 00 00 00 00 00 02 14 04 + 39 00 00 00 00 00 02 15 04 + 39 00 00 00 00 00 02 16 04 + 39 00 00 00 00 00 02 17 03 + 39 00 00 00 00 00 02 18 04 + 39 00 00 00 00 00 02 19 05 + 39 00 00 00 00 00 02 1A 05 + 39 00 00 00 00 00 02 1B 06 + 39 00 00 00 00 00 02 1C 06 + 39 00 00 00 00 00 02 1D 06 + 39 00 00 00 00 00 02 1E 06 + 39 00 00 00 00 00 02 1F 06 + 39 00 00 00 00 00 02 20 07 + 39 00 00 00 00 00 02 21 08 + 39 00 00 00 00 00 02 22 07 + 39 00 00 00 00 00 02 23 07 + 39 00 00 00 00 00 02 24 07 + 39 00 00 00 00 00 02 25 07 + 39 00 00 00 00 00 02 26 07 + 39 00 00 00 00 00 02 27 08 + 39 00 00 00 00 00 02 28 08 + 39 00 00 00 00 00 02 29 08 + 39 00 00 00 00 00 02 2A 08 + 39 00 00 00 00 00 02 2B 08 + 39 00 00 00 00 00 02 2C 08 + 39 00 00 00 00 00 02 2D 08 + 39 00 00 00 00 00 02 2E 08 + 39 00 00 00 00 00 02 2F 08 + 39 00 00 00 00 00 02 30 07 + 39 00 00 00 00 00 02 31 07 + 39 00 00 00 00 00 02 32 08 + 39 00 00 00 00 00 02 33 08 + 39 00 00 00 00 00 02 34 09 + 39 00 00 00 00 00 02 35 09 + 39 00 00 00 00 00 02 36 0A + 39 00 00 00 00 00 02 37 0A + 39 00 00 00 00 00 02 38 0B + 39 00 00 00 00 00 02 39 0C + 39 00 00 00 00 00 02 3A 0C + 39 00 00 00 00 00 02 3B 0D + 39 00 00 00 00 00 02 3C 0D + 39 00 00 00 00 00 02 3D 0E + 39 00 00 00 00 00 02 3E 0E + 39 00 00 00 00 00 02 3F 0E + 39 00 00 00 00 00 02 40 0F + 39 00 00 00 00 00 02 41 0F + 39 00 00 00 00 00 02 42 0F + 39 00 00 00 00 00 02 43 0F + 39 00 00 00 00 00 02 44 0F + 39 00 00 00 00 00 02 45 0F + 39 00 00 00 00 00 02 46 10 + 39 00 00 00 00 00 02 47 10 + 39 00 00 00 00 00 02 48 10 + 39 00 00 00 00 00 02 49 10 + 39 00 00 00 00 00 02 4A 0F + 39 00 00 00 00 00 02 4B 0F + 39 00 00 00 00 00 02 4C 0F + 39 00 00 00 00 00 02 4D 0F + 39 00 00 00 00 00 02 4E 0F + 39 00 00 00 00 00 02 4F 0F + 39 00 00 00 00 00 02 50 10 + 39 00 00 00 00 00 02 51 10 + 39 00 00 00 00 00 02 52 10 + 39 00 00 00 00 00 02 53 10 + 39 00 00 00 00 00 02 54 10 + 39 00 00 00 00 00 02 55 10 + 39 00 00 00 00 00 02 56 11 + 39 00 00 00 00 00 02 57 11 + 39 00 00 00 00 00 02 58 11 + 39 00 00 00 00 00 02 59 11 + 39 00 00 00 00 00 02 5A 11 + 39 00 00 00 00 00 02 5B 11 + 39 00 00 00 00 00 02 5C 11 + 39 00 00 00 00 00 02 5D 11 + 39 00 00 00 00 00 02 5E 11 + 39 00 00 00 00 00 02 5F 11 + 39 00 00 00 00 00 02 60 11 + 39 00 00 00 00 00 02 61 11 + 39 00 00 00 00 00 02 62 11 + 39 00 00 00 00 00 02 63 11 + 39 00 00 00 00 00 02 64 11 + 39 00 00 00 00 00 02 65 11 + 39 00 00 00 00 00 02 66 11 + 39 00 00 00 00 00 02 67 11 + 39 00 00 00 00 00 02 68 11 + 39 00 00 00 00 00 02 69 12 + 39 00 00 00 00 00 02 6A 11 + 39 00 00 00 00 00 02 6B 11 + 39 00 00 00 00 00 02 6C 11 + 39 00 00 00 00 00 02 6D 11 + 39 00 00 00 00 00 02 6E 11 + 39 00 00 00 00 00 02 6F 10 + 39 00 00 00 00 00 02 70 11 + 39 00 00 00 00 00 02 71 11 + 39 00 00 00 00 00 02 72 10 + 39 00 00 00 00 00 02 73 10 + 39 00 00 00 00 00 02 74 11 + 39 00 00 00 00 00 02 75 10 + 39 00 00 00 00 00 02 76 10 + 39 00 00 00 00 00 02 77 10 + 39 00 00 00 00 00 02 78 10 + 39 00 00 00 00 00 02 79 10 + 39 00 00 00 00 00 02 7A 10 + 39 00 00 00 00 00 02 7B 11 + 39 00 00 00 00 00 02 7C 11 + 39 00 00 00 00 00 02 7D 11 + 39 00 00 00 00 00 02 7E 11 + 39 00 00 00 00 00 02 7F 11 + 39 01 00 00 00 00 04 FF 98 81 00 + + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 81 + 39 00 00 00 00 00 02 04 81 + 39 00 00 00 00 00 02 05 81 + 39 00 00 00 00 00 02 06 81 + 39 00 00 00 00 00 02 07 81 + 39 00 00 00 00 00 02 08 81 + 39 00 00 00 00 00 02 09 81 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 00 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 00 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 00 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 00 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 81 + 39 00 00 00 00 00 02 14 81 + 39 00 00 00 00 00 02 15 81 + 39 00 00 00 00 00 02 16 82 + 39 00 00 00 00 00 02 17 82 + 39 00 00 00 00 00 02 18 82 + 39 00 00 00 00 00 02 19 82 + 39 00 00 00 00 00 02 1A 83 + 39 00 00 00 00 00 02 1B 83 + 39 00 00 00 00 00 02 1C 83 + 39 00 00 00 00 00 02 1D 83 + 39 00 00 00 00 00 02 1E 83 + 39 00 00 00 00 00 02 1F 83 + 39 00 00 00 00 00 02 20 83 + 39 00 00 00 00 00 02 21 84 + 39 00 00 00 00 00 02 22 84 + 39 00 00 00 00 00 02 23 84 + 39 00 00 00 00 00 02 24 84 + 39 00 00 00 00 00 02 25 83 + 39 00 00 00 00 00 02 26 83 + 39 00 00 00 00 00 02 27 83 + 39 00 00 00 00 00 02 28 83 + 39 00 00 00 00 00 02 29 83 + 39 00 00 00 00 00 02 2A 83 + 39 00 00 00 00 00 02 2B 83 + 39 00 00 00 00 00 02 2C 83 + 39 00 00 00 00 00 02 2D 82 + 39 00 00 00 00 00 02 2E 82 + 39 00 00 00 00 00 02 2F 82 + 39 00 00 00 00 00 02 30 82 + 39 00 00 00 00 00 02 31 82 + 39 00 00 00 00 00 02 32 83 + 39 00 00 00 00 00 02 33 83 + 39 00 00 00 00 00 02 34 84 + 39 00 00 00 00 00 02 35 84 + 39 00 00 00 00 00 02 36 85 + 39 00 00 00 00 00 02 37 85 + 39 00 00 00 00 00 02 38 85 + 39 00 00 00 00 00 02 39 86 + 39 00 00 00 00 00 02 3A 86 + 39 00 00 00 00 00 02 3B 86 + 39 00 00 00 00 00 02 3C 86 + 39 00 00 00 00 00 02 3D 86 + 39 00 00 00 00 00 02 3E 86 + 39 00 00 00 00 00 02 3F 86 + 39 00 00 00 00 00 02 40 86 + 39 00 00 00 00 00 02 41 86 + 39 00 00 00 00 00 02 42 86 + 39 00 00 00 00 00 02 43 86 + 39 00 00 00 00 00 02 44 86 + 39 00 00 00 00 00 02 45 85 + 39 00 00 00 00 00 02 46 85 + 39 00 00 00 00 00 02 47 85 + 39 00 00 00 00 00 02 48 84 + 39 00 00 00 00 00 02 49 84 + 39 00 00 00 00 00 02 4A 83 + 39 00 00 00 00 00 02 4B 83 + 39 00 00 00 00 00 02 4C 82 + 39 00 00 00 00 00 02 4D 83 + 39 00 00 00 00 00 02 4E 84 + 39 00 00 00 00 00 02 4F 84 + 39 00 00 00 00 00 02 50 84 + 39 00 00 00 00 00 02 51 85 + 39 00 00 00 00 00 02 52 85 + 39 00 00 00 00 00 02 53 85 + 39 00 00 00 00 00 02 54 85 + 39 00 00 00 00 00 02 55 85 + 39 00 00 00 00 00 02 56 85 + 39 00 00 00 00 00 02 57 85 + 39 00 00 00 00 00 02 58 85 + 39 00 00 00 00 00 02 59 85 + 39 00 00 00 00 00 02 5A 85 + 39 00 00 00 00 00 02 5B 85 + 39 00 00 00 00 00 02 5C 84 + 39 00 00 00 00 00 02 5D 85 + 39 00 00 00 00 00 02 5E 85 + 39 00 00 00 00 00 02 5F 85 + 39 00 00 00 00 00 02 60 86 + 39 00 00 00 00 00 02 61 86 + 39 00 00 00 00 00 02 62 86 + 39 00 00 00 00 00 02 63 86 + 39 00 00 00 00 00 02 64 86 + 39 00 00 00 00 00 02 65 85 + 39 00 00 00 00 00 02 66 85 + 39 00 00 00 00 00 02 67 85 + 39 00 00 00 00 00 02 68 84 + 39 00 00 00 00 00 02 69 84 + 39 00 00 00 00 00 02 6A 85 + 39 00 00 00 00 00 02 6B 85 + 39 00 00 00 00 00 02 6C 85 + 39 00 00 00 00 00 02 6D 85 + 39 00 00 00 00 00 02 6E 85 + 39 00 00 00 00 00 02 6F 84 + 39 00 00 00 00 00 02 70 84 + 39 00 00 00 00 00 02 71 84 + 39 00 00 00 00 00 02 72 84 + 39 00 00 00 00 00 02 73 83 + 39 00 00 00 00 00 02 74 83 + 39 00 00 00 00 00 02 75 84 + 39 00 00 00 00 00 02 76 84 + 39 00 00 00 00 00 02 77 84 + 39 00 00 00 00 00 02 78 83 + 39 00 00 00 00 00 02 79 83 + 39 00 00 00 00 00 02 7A 83 + 39 00 00 00 00 00 02 7B 83 + 39 00 00 00 00 00 02 7C 83 + 39 00 00 00 00 00 02 7D 84 + 39 00 00 00 00 00 02 7E 84 + 39 00 00 00 00 00 02 7F 83 + + 39 00 00 00 00 00 04 FF 98 81 08 + 39 00 00 00 00 00 02 01 83 + 39 00 00 00 00 00 02 02 83 + 39 00 00 00 00 00 02 03 83 + 39 00 00 00 00 00 02 04 83 + 39 00 00 00 00 00 02 05 83 + 39 00 00 00 00 00 02 06 83 + 39 00 00 00 00 00 02 07 83 + 39 00 00 00 00 00 02 08 83 + 39 00 00 00 00 00 02 09 83 + 39 00 00 00 00 00 02 0A 82 + 39 00 00 00 00 00 02 0B 82 + 39 00 00 00 00 00 02 0C 82 + 39 00 00 00 00 00 02 0D 82 + 39 00 00 00 00 00 02 0E 82 + 39 00 00 00 00 00 02 0F 81 + 39 00 00 00 00 00 02 10 81 + 39 00 00 00 00 00 02 11 81 + 39 00 00 00 00 00 02 12 82 + 39 00 00 00 00 00 02 13 82 + 39 00 00 00 00 00 02 14 82 + 39 00 00 00 00 00 02 15 83 + 39 00 00 00 00 00 02 16 83 + 39 00 00 00 00 00 02 17 83 + 39 00 00 00 00 00 02 18 83 + 39 00 00 00 00 00 02 19 83 + 39 00 00 00 00 00 02 1A 84 + 39 00 00 00 00 00 02 1B 84 + 39 00 00 00 00 00 02 1C 84 + 39 00 00 00 00 00 02 1D 84 + 39 00 00 00 00 00 02 1E 84 + 39 00 00 00 00 00 02 1F 84 + 39 00 00 00 00 00 02 20 84 + 39 00 00 00 00 00 02 21 84 + 39 00 00 00 00 00 02 22 85 + 39 00 00 00 00 00 02 23 84 + 39 00 00 00 00 00 02 24 84 + 39 00 00 00 00 00 02 25 84 + 39 00 00 00 00 00 02 26 83 + 39 00 00 00 00 00 02 27 84 + 39 00 00 00 00 00 02 28 83 + 39 00 00 00 00 00 02 29 83 + 39 00 00 00 00 00 02 2A 83 + 39 00 00 00 00 00 02 2B 83 + 39 00 00 00 00 00 02 2C 82 + 39 00 00 00 00 00 02 2D 82 + 39 00 00 00 00 00 02 2E 82 + 39 00 00 00 00 00 02 2F 81 + 39 00 00 00 00 00 02 30 82 + 39 00 00 00 00 00 02 31 82 + 39 00 00 00 00 00 02 32 82 + 39 00 00 00 00 00 02 33 83 + 39 00 00 00 00 00 02 34 83 + 39 00 00 00 00 00 02 35 84 + 39 00 00 00 00 00 02 36 84 + 39 00 00 00 00 00 02 37 84 + 39 00 00 00 00 00 02 38 84 + 39 00 00 00 00 00 02 39 84 + 39 00 00 00 00 00 02 3A 85 + 39 00 00 00 00 00 02 3B 85 + 39 00 00 00 00 00 02 3C 85 + 39 00 00 00 00 00 02 3D 85 + 39 00 00 00 00 00 02 3E 85 + 39 00 00 00 00 00 02 3F 85 + 39 00 00 00 00 00 02 40 85 + 39 00 00 00 00 00 02 41 85 + 39 00 00 00 00 00 02 42 84 + 39 00 00 00 00 00 02 43 84 + 39 00 00 00 00 00 02 44 84 + 39 00 00 00 00 00 02 45 83 + 39 00 00 00 00 00 02 46 83 + 39 00 00 00 00 00 02 47 82 + 39 00 00 00 00 00 02 48 82 + 39 00 00 00 00 00 02 49 81 + 39 00 00 00 00 00 02 4A 81 + 39 00 00 00 00 00 02 4B 00 + 39 00 00 00 00 00 02 4C 81 + 39 00 00 00 00 00 02 4D 81 + 39 00 00 00 00 00 02 4E 81 + 39 00 00 00 00 00 02 4F 82 + 39 00 00 00 00 00 02 50 82 + 39 00 00 00 00 00 02 51 83 + 39 00 00 00 00 00 02 52 83 + 39 00 00 00 00 00 02 53 83 + 39 00 00 00 00 00 02 54 83 + 39 00 00 00 00 00 02 55 83 + 39 00 00 00 00 00 02 56 83 + 39 00 00 00 00 00 02 57 83 + 39 00 00 00 00 00 02 58 82 + 39 00 00 00 00 00 02 59 82 + 39 00 00 00 00 00 02 5A 82 + 39 00 00 00 00 00 02 5B 82 + 39 00 00 00 00 00 02 5C 82 + 39 00 00 00 00 00 02 5D 82 + 39 00 00 00 00 00 02 5E 82 + 39 00 00 00 00 00 02 5F 83 + 39 00 00 00 00 00 02 60 83 + 39 00 00 00 00 00 02 61 83 + 39 00 00 00 00 00 02 62 83 + 39 00 00 00 00 00 02 63 83 + 39 00 00 00 00 00 02 64 82 + 39 00 00 00 00 00 02 65 82 + 39 00 00 00 00 00 02 66 82 + 39 00 00 00 00 00 02 67 81 + 39 00 00 00 00 00 02 68 81 + 39 00 00 00 00 00 02 69 82 + 39 00 00 00 00 00 02 6A 82 + 39 00 00 00 00 00 02 6B 82 + 39 00 00 00 00 00 02 6C 82 + 39 00 00 00 00 00 02 6D 82 + 39 00 00 00 00 00 02 6E 81 + 39 00 00 00 00 00 02 6F 81 + 39 00 00 00 00 00 02 70 81 + 39 00 00 00 00 00 02 71 81 + 39 00 00 00 00 00 02 72 00 + 39 00 00 00 00 00 02 73 00 + 39 00 00 00 00 00 02 74 00 + 39 00 00 00 00 00 02 75 81 + 39 00 00 00 00 00 02 76 81 + 39 00 00 00 00 00 02 77 81 + 39 00 00 00 00 00 02 78 81 + 39 00 00 00 00 00 02 79 81 + 39 00 00 00 00 00 02 7A 00 + 39 00 00 00 00 00 02 7B 00 + 39 00 00 00 00 00 02 7C 81 + 39 00 00 00 00 00 02 7D 81 + 39 00 00 00 00 00 02 7E 81 + 39 00 00 00 00 00 02 7F 00 + + + 39 00 00 00 00 00 04 FF 98 81 0A + 39 00 00 00 00 00 02 01 11 + 39 00 00 00 00 00 02 02 11 + 39 00 00 00 00 00 02 03 11 + 39 00 00 00 00 00 02 04 11 + 39 00 00 00 00 00 02 05 12 + 39 00 00 00 00 00 02 06 12 + 39 00 00 00 00 00 02 07 13 + 39 00 00 00 00 00 02 08 13 + 39 00 00 00 00 00 02 09 13 + 39 00 00 00 00 00 02 0A 13 + 39 00 00 00 00 00 02 0B 14 + 39 00 00 00 00 00 02 0C 13 + 39 00 00 00 00 00 02 0D 13 + 39 00 00 00 00 00 02 0E 13 + 39 00 00 00 00 00 02 0F 13 + 39 00 00 00 00 00 02 10 12 + 39 00 00 00 00 00 02 11 12 + 39 00 00 00 00 00 02 12 12 + 39 00 00 00 00 00 02 13 12 + 39 00 00 00 00 00 02 14 12 + 39 00 00 00 00 00 02 15 12 + 39 00 00 00 00 00 02 16 12 + 39 00 00 00 00 00 02 17 12 + 39 00 00 00 00 00 02 18 12 + 39 00 00 00 00 00 02 19 12 + 39 00 00 00 00 00 02 1A 12 + 39 00 00 00 00 00 02 1B 12 + 39 00 00 00 00 00 02 1C 11 + 39 00 00 00 00 00 02 1D 11 + 39 00 00 00 00 00 02 1E 12 + 39 00 00 00 00 00 02 1F 12 + 39 00 00 00 00 00 02 20 12 + 39 00 00 00 00 00 02 21 13 + 39 00 00 00 00 00 02 22 13 + 39 00 00 00 00 00 02 23 13 + 39 00 00 00 00 00 02 24 13 + 39 00 00 00 00 00 02 25 13 + 39 00 00 00 00 00 02 26 14 + 39 00 00 00 00 00 02 27 14 + 39 00 00 00 00 00 02 28 14 + 39 00 00 00 00 00 02 29 15 + 39 00 00 00 00 00 02 2A 15 + 39 00 00 00 00 00 02 2B 14 + 39 00 00 00 00 00 02 2C 14 + 39 00 00 00 00 00 02 2D 14 + 39 00 00 00 00 00 02 2E 13 + 39 00 00 00 00 00 02 2F 13 + 39 00 00 00 00 00 02 30 13 + 39 00 00 00 00 00 02 31 12 + 39 00 00 00 00 00 02 32 12 + 39 00 00 00 00 00 02 33 12 + 39 00 00 00 00 00 02 34 12 + 39 00 00 00 00 00 02 35 11 + 39 00 00 00 00 00 02 36 11 + 39 00 00 00 00 00 02 37 11 + 39 00 00 00 00 00 02 38 11 + 39 00 00 00 00 00 02 39 11 + 39 00 00 00 00 00 02 3A 11 + 39 00 00 00 00 00 02 3B 11 + 39 00 00 00 00 00 02 3C 11 + 39 00 00 00 00 00 02 3D 11 + 39 00 00 00 00 00 02 3E 12 + 39 00 00 00 00 00 02 3F 12 + 39 00 00 00 00 00 02 40 13 + 39 00 00 00 00 00 02 41 13 + 39 00 00 00 00 00 02 42 13 + 39 00 00 00 00 00 02 43 14 + 39 00 00 00 00 00 02 44 14 + 39 00 00 00 00 00 02 45 15 + 39 00 00 00 00 00 02 46 15 + 39 00 00 00 00 00 02 47 14 + 39 00 00 00 00 00 02 48 14 + 39 00 00 00 00 00 02 49 13 + 39 00 00 00 00 00 02 4A 13 + 39 00 00 00 00 00 02 4B 12 + 39 00 00 00 00 00 02 4C 12 + 39 00 00 00 00 00 02 4D 12 + 39 00 00 00 00 00 02 4E 11 + 39 00 00 00 00 00 02 4F 11 + 39 00 00 00 00 00 02 50 11 + 39 00 00 00 00 00 02 51 11 + 39 00 00 00 00 00 02 52 11 + 39 00 00 00 00 00 02 53 11 + 39 00 00 00 00 00 02 54 11 + 39 00 00 00 00 00 02 55 11 + 39 00 00 00 00 00 02 56 11 + 39 00 00 00 00 00 02 57 11 + 39 00 00 00 00 00 02 58 11 + 39 00 00 00 00 00 02 59 10 + 39 00 00 00 00 00 02 5A 10 + 39 00 00 00 00 00 02 5B 0F + 39 00 00 00 00 00 02 5C 0F + 39 00 00 00 00 00 02 5D 0F + 39 00 00 00 00 00 02 5E 0E + 39 00 00 00 00 00 02 5F 0E + 39 00 00 00 00 00 02 60 0E + 39 00 00 00 00 00 02 61 0E + 39 00 00 00 00 00 02 62 0E + 39 00 00 00 00 00 02 63 0E + 39 00 00 00 00 00 02 64 0E + 39 00 00 00 00 00 02 65 0D + 39 00 00 00 00 00 02 66 0D + 39 00 00 00 00 00 02 67 0C + 39 00 00 00 00 00 02 68 0C + 39 00 00 00 00 00 02 69 0B + 39 00 00 00 00 00 02 6A 0B + 39 00 00 00 00 00 02 6B 0B + 39 00 00 00 00 00 02 6C 0B + 39 00 00 00 00 00 02 6D 0B + 39 00 00 00 00 00 02 6E 0A + 39 00 00 00 00 00 02 6F 0A + 39 00 00 00 00 00 02 70 0A + 39 00 00 00 00 00 02 71 09 + 39 00 00 00 00 00 02 72 08 + 39 00 00 00 00 00 02 73 07 + 39 00 00 00 00 00 02 74 06 + 39 00 00 00 00 00 02 75 06 + 39 00 00 00 00 00 02 76 05 + 39 00 00 00 00 00 02 77 04 + 39 00 00 00 00 00 02 78 04 + 39 00 00 00 00 00 02 79 03 + 39 00 00 00 00 00 02 7A 02 + 39 00 00 00 00 00 02 7B 01 + 39 00 00 00 00 00 02 7C 81 + 39 00 00 00 00 00 02 7D 82 + 39 00 00 00 00 00 02 7E 84 + 39 00 00 00 00 00 02 7F 85 + + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F 00 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F 83 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F 83 + 39 00 00 00 00 00 04 FF 98 81 08 + 39 00 00 00 00 00 02 00 83 + 39 00 00 00 00 00 02 7F 00 + 39 00 00 00 00 00 04 FF 98 81 09 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F 11 + 39 00 00 00 00 00 04 FF 98 81 0A + 39 00 00 00 00 00 02 00 11 + 39 00 00 00 00 00 02 7F 85 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 80 01 + 39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 21 B0 + 39 00 00 00 00 00 02 32 02 + 39 01 00 00 00 00 04 FF 98 81 00 + 39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 21 B2 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 04 FF 98 81 0A + 39 00 00 00 00 00 02 7F 85 + 39 00 00 00 00 00 02 7E 84 + 39 00 00 00 00 00 02 7D 82 + 39 00 00 00 00 00 02 7C 81 + 39 00 00 00 00 00 02 7B 01 + 39 00 00 00 00 00 02 7A 02 + 39 00 00 00 00 00 02 79 03 + 39 00 00 00 00 00 02 78 04 + 39 00 00 00 00 00 02 77 04 + 39 00 00 00 00 00 02 76 05 + 39 00 00 00 00 00 02 75 06 + 39 00 00 00 00 00 02 74 06 + 39 00 00 00 00 00 02 73 07 + 39 00 00 00 00 00 02 72 08 + 39 00 00 00 00 00 02 71 09 + 39 00 00 00 00 00 02 70 0A + 39 00 00 00 00 00 02 6F 0A + 39 00 00 00 00 00 02 6E 0A + 39 00 00 00 00 00 02 6D 0B + 39 00 00 00 00 00 02 6C 0B + 39 00 00 00 00 00 02 6B 0B + 39 00 00 00 00 00 02 6A 0B + 39 00 00 00 00 00 02 69 0B + 39 00 00 00 00 00 02 68 0C + 39 00 00 00 00 00 02 67 0C + 39 00 00 00 00 00 02 66 0D + 39 00 00 00 00 00 02 65 0D + 39 00 00 00 00 00 02 64 0E + 39 00 00 00 00 00 02 63 0E + 39 00 00 00 00 00 02 62 0E + 39 00 00 00 00 00 02 61 0E + 39 00 00 00 00 00 02 60 0E + 39 00 00 00 00 00 02 5F 0E + 39 00 00 00 00 00 02 5E 0E + 39 00 00 00 00 00 02 5D 0F + 39 00 00 00 00 00 02 5C 0F + 39 00 00 00 00 00 02 5B 0F + 39 00 00 00 00 00 02 5A 10 + 39 00 00 00 00 00 02 59 10 + 39 00 00 00 00 00 02 58 11 + 39 00 00 00 00 00 02 57 11 + 39 00 00 00 00 00 02 56 11 + 39 00 00 00 00 00 02 55 11 + 39 00 00 00 00 00 02 54 11 + 39 00 00 00 00 00 02 53 11 + 39 00 00 00 00 00 02 52 11 + 39 00 00 00 00 00 02 51 11 + 39 00 00 00 00 00 02 50 11 + 39 00 00 00 00 00 02 4F 11 + 39 00 00 00 00 00 02 4E 11 + 39 00 00 00 00 00 02 4D 12 + 39 00 00 00 00 00 02 4C 12 + 39 00 00 00 00 00 02 4B 12 + 39 00 00 00 00 00 02 4A 13 + 39 00 00 00 00 00 02 49 13 + 39 00 00 00 00 00 02 48 14 + 39 00 00 00 00 00 02 47 14 + 39 00 00 00 00 00 02 46 15 + 39 00 00 00 00 00 02 45 15 + 39 00 00 00 00 00 02 44 14 + 39 00 00 00 00 00 02 43 14 + 39 00 00 00 00 00 02 42 13 + 39 00 00 00 00 00 02 41 13 + 39 00 00 00 00 00 02 40 13 + 39 00 00 00 00 00 02 3F 12 + 39 00 00 00 00 00 02 3E 12 + 39 00 00 00 00 00 02 3D 11 + 39 00 00 00 00 00 02 3C 11 + 39 00 00 00 00 00 02 3B 11 + 39 00 00 00 00 00 02 3A 11 + 39 00 00 00 00 00 02 39 11 + 39 00 00 00 00 00 02 38 11 + 39 00 00 00 00 00 02 37 11 + 39 00 00 00 00 00 02 36 11 + 39 00 00 00 00 00 02 35 11 + 39 00 00 00 00 00 02 34 12 + 39 00 00 00 00 00 02 33 12 + 39 00 00 00 00 00 02 32 12 + 39 00 00 00 00 00 02 31 12 + 39 00 00 00 00 00 02 30 13 + 39 00 00 00 00 00 02 2F 13 + 39 00 00 00 00 00 02 2E 13 + 39 00 00 00 00 00 02 2D 14 + 39 00 00 00 00 00 02 2C 14 + 39 00 00 00 00 00 02 2B 14 + 39 00 00 00 00 00 02 2A 15 + 39 00 00 00 00 00 02 29 15 + 39 00 00 00 00 00 02 28 14 + 39 00 00 00 00 00 02 27 14 + 39 00 00 00 00 00 02 26 14 + 39 00 00 00 00 00 02 25 13 + 39 00 00 00 00 00 02 24 13 + 39 00 00 00 00 00 02 23 13 + 39 00 00 00 00 00 02 22 13 + 39 00 00 00 00 00 02 21 13 + 39 00 00 00 00 00 02 20 12 + 39 00 00 00 00 00 02 1F 12 + 39 00 00 00 00 00 02 1E 12 + 39 00 00 00 00 00 02 1D 11 + 39 00 00 00 00 00 02 1C 11 + 39 00 00 00 00 00 02 1B 12 + 39 00 00 00 00 00 02 1A 12 + 39 00 00 00 00 00 02 19 12 + 39 00 00 00 00 00 02 18 12 + 39 00 00 00 00 00 02 17 12 + 39 00 00 00 00 00 02 16 12 + 39 00 00 00 00 00 02 15 12 + 39 00 00 00 00 00 02 14 12 + 39 00 00 00 00 00 02 13 12 + 39 00 00 00 00 00 02 12 12 + 39 00 00 00 00 00 02 11 12 + 39 00 00 00 00 00 02 10 12 + 39 00 00 00 00 00 02 0F 13 + 39 00 00 00 00 00 02 0E 13 + 39 00 00 00 00 00 02 0D 13 + 39 00 00 00 00 00 02 0C 13 + 39 00 00 00 00 00 02 0B 14 + 39 00 00 00 00 00 02 0A 13 + 39 00 00 00 00 00 02 09 13 + 39 00 00 00 00 00 02 08 13 + 39 00 00 00 00 00 02 07 13 + 39 00 00 00 00 00 02 06 12 + 39 00 00 00 00 00 02 05 12 + 39 00 00 00 00 00 02 04 11 + 39 00 00 00 00 00 02 03 11 + 39 00 00 00 00 00 02 02 11 + 39 00 00 00 00 00 02 01 11 + + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 7F 83 + 39 00 00 00 00 00 02 7E 84 + 39 00 00 00 00 00 02 7D 84 + 39 00 00 00 00 00 02 7C 83 + 39 00 00 00 00 00 02 7B 83 + 39 00 00 00 00 00 02 7A 83 + 39 00 00 00 00 00 02 79 83 + 39 00 00 00 00 00 02 78 83 + 39 00 00 00 00 00 02 77 84 + 39 00 00 00 00 00 02 76 84 + 39 00 00 00 00 00 02 75 84 + 39 00 00 00 00 00 02 74 83 + 39 00 00 00 00 00 02 73 83 + 39 00 00 00 00 00 02 72 84 + 39 00 00 00 00 00 02 71 84 + 39 00 00 00 00 00 02 70 84 + 39 00 00 00 00 00 02 6F 84 + 39 00 00 00 00 00 02 6E 85 + 39 00 00 00 00 00 02 6D 85 + 39 00 00 00 00 00 02 6C 85 + 39 00 00 00 00 00 02 6B 85 + 39 00 00 00 00 00 02 6A 85 + 39 00 00 00 00 00 02 69 84 + 39 00 00 00 00 00 02 68 84 + 39 00 00 00 00 00 02 67 85 + 39 00 00 00 00 00 02 66 85 + 39 00 00 00 00 00 02 65 85 + 39 00 00 00 00 00 02 64 86 + 39 00 00 00 00 00 02 63 86 + 39 00 00 00 00 00 02 62 86 + 39 00 00 00 00 00 02 61 86 + 39 00 00 00 00 00 02 60 86 + 39 00 00 00 00 00 02 5F 85 + 39 00 00 00 00 00 02 5E 85 + 39 00 00 00 00 00 02 5D 85 + 39 00 00 00 00 00 02 5C 84 + 39 00 00 00 00 00 02 5B 85 + 39 00 00 00 00 00 02 5A 85 + 39 00 00 00 00 00 02 59 85 + 39 00 00 00 00 00 02 58 85 + 39 00 00 00 00 00 02 57 85 + 39 00 00 00 00 00 02 56 85 + 39 00 00 00 00 00 02 55 85 + 39 00 00 00 00 00 02 54 85 + 39 00 00 00 00 00 02 53 85 + 39 00 00 00 00 00 02 52 85 + 39 00 00 00 00 00 02 51 85 + 39 00 00 00 00 00 02 50 84 + 39 00 00 00 00 00 02 4F 84 + 39 00 00 00 00 00 02 4E 84 + 39 00 00 00 00 00 02 4D 83 + 39 00 00 00 00 00 02 4C 82 + 39 00 00 00 00 00 02 4B 83 + 39 00 00 00 00 00 02 4A 83 + 39 00 00 00 00 00 02 49 84 + 39 00 00 00 00 00 02 48 84 + 39 00 00 00 00 00 02 47 85 + 39 00 00 00 00 00 02 46 85 + 39 00 00 00 00 00 02 45 85 + 39 00 00 00 00 00 02 44 86 + 39 00 00 00 00 00 02 43 86 + 39 00 00 00 00 00 02 42 86 + 39 00 00 00 00 00 02 41 86 + 39 00 00 00 00 00 02 40 86 + 39 00 00 00 00 00 02 3F 86 + 39 00 00 00 00 00 02 3E 86 + 39 00 00 00 00 00 02 3D 86 + 39 00 00 00 00 00 02 3C 86 + 39 00 00 00 00 00 02 3B 86 + 39 00 00 00 00 00 02 3A 86 + 39 00 00 00 00 00 02 39 86 + 39 00 00 00 00 00 02 38 85 + 39 00 00 00 00 00 02 37 85 + 39 00 00 00 00 00 02 36 85 + 39 00 00 00 00 00 02 35 84 + 39 00 00 00 00 00 02 34 84 + 39 00 00 00 00 00 02 33 83 + 39 00 00 00 00 00 02 32 83 + 39 00 00 00 00 00 02 31 82 + 39 00 00 00 00 00 02 30 82 + 39 00 00 00 00 00 02 2F 82 + 39 00 00 00 00 00 02 2E 82 + 39 00 00 00 00 00 02 2D 82 + 39 00 00 00 00 00 02 2C 83 + 39 00 00 00 00 00 02 2B 83 + 39 00 00 00 00 00 02 2A 83 + 39 00 00 00 00 00 02 29 83 + 39 00 00 00 00 00 02 28 83 + 39 00 00 00 00 00 02 27 83 + 39 00 00 00 00 00 02 26 83 + 39 00 00 00 00 00 02 25 83 + 39 00 00 00 00 00 02 24 84 + 39 00 00 00 00 00 02 23 84 + 39 00 00 00 00 00 02 22 84 + 39 00 00 00 00 00 02 21 84 + 39 00 00 00 00 00 02 20 83 + 39 00 00 00 00 00 02 1F 83 + 39 00 00 00 00 00 02 1E 83 + 39 00 00 00 00 00 02 1D 83 + 39 00 00 00 00 00 02 1C 83 + 39 00 00 00 00 00 02 1B 83 + 39 00 00 00 00 00 02 1A 83 + 39 00 00 00 00 00 02 19 82 + 39 00 00 00 00 00 02 18 82 + 39 00 00 00 00 00 02 17 82 + 39 00 00 00 00 00 02 16 82 + 39 00 00 00 00 00 02 15 81 + 39 00 00 00 00 00 02 14 81 + 39 00 00 00 00 00 02 13 81 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 11 00 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 0F 00 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0D 00 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0B 00 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 09 81 + 39 00 00 00 00 00 02 08 81 + 39 00 00 00 00 00 02 07 81 + 39 00 00 00 00 00 02 06 81 + 39 00 00 00 00 00 02 05 81 + 39 00 00 00 00 00 02 04 81 + 39 00 00 00 00 00 02 03 81 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 01 00 + + 39 00 00 00 00 00 04 FF 98 81 08 + 39 00 00 00 00 00 02 7F 00 + 39 00 00 00 00 00 02 7E 81 + 39 00 00 00 00 00 02 7D 81 + 39 00 00 00 00 00 02 7C 81 + 39 00 00 00 00 00 02 7B 00 + 39 00 00 00 00 00 02 7A 00 + 39 00 00 00 00 00 02 79 81 + 39 00 00 00 00 00 02 78 81 + 39 00 00 00 00 00 02 77 81 + 39 00 00 00 00 00 02 76 81 + 39 00 00 00 00 00 02 75 81 + 39 00 00 00 00 00 02 74 00 + 39 00 00 00 00 00 02 73 00 + 39 00 00 00 00 00 02 72 00 + 39 00 00 00 00 00 02 71 81 + 39 00 00 00 00 00 02 70 81 + 39 00 00 00 00 00 02 6F 81 + 39 00 00 00 00 00 02 6E 81 + 39 00 00 00 00 00 02 6D 82 + 39 00 00 00 00 00 02 6C 82 + 39 00 00 00 00 00 02 6B 82 + 39 00 00 00 00 00 02 6A 82 + 39 00 00 00 00 00 02 69 82 + 39 00 00 00 00 00 02 68 81 + 39 00 00 00 00 00 02 67 81 + 39 00 00 00 00 00 02 66 82 + 39 00 00 00 00 00 02 65 82 + 39 00 00 00 00 00 02 64 82 + 39 00 00 00 00 00 02 63 83 + 39 00 00 00 00 00 02 62 83 + 39 00 00 00 00 00 02 61 83 + 39 00 00 00 00 00 02 60 83 + 39 00 00 00 00 00 02 5F 83 + 39 00 00 00 00 00 02 5E 82 + 39 00 00 00 00 00 02 5D 82 + 39 00 00 00 00 00 02 5C 82 + 39 00 00 00 00 00 02 5B 82 + 39 00 00 00 00 00 02 5A 82 + 39 00 00 00 00 00 02 59 82 + 39 00 00 00 00 00 02 58 82 + 39 00 00 00 00 00 02 57 83 + 39 00 00 00 00 00 02 56 83 + 39 00 00 00 00 00 02 55 83 + 39 00 00 00 00 00 02 54 83 + 39 00 00 00 00 00 02 53 83 + 39 00 00 00 00 00 02 52 83 + 39 00 00 00 00 00 02 51 83 + 39 00 00 00 00 00 02 50 82 + 39 00 00 00 00 00 02 4F 82 + 39 00 00 00 00 00 02 4E 81 + 39 00 00 00 00 00 02 4D 81 + 39 00 00 00 00 00 02 4C 81 + 39 00 00 00 00 00 02 4B 00 + 39 00 00 00 00 00 02 4A 81 + 39 00 00 00 00 00 02 49 81 + 39 00 00 00 00 00 02 48 82 + 39 00 00 00 00 00 02 47 82 + 39 00 00 00 00 00 02 46 83 + 39 00 00 00 00 00 02 45 83 + 39 00 00 00 00 00 02 44 84 + 39 00 00 00 00 00 02 43 84 + 39 00 00 00 00 00 02 42 84 + 39 00 00 00 00 00 02 41 85 + 39 00 00 00 00 00 02 40 85 + 39 00 00 00 00 00 02 3F 85 + 39 00 00 00 00 00 02 3E 85 + 39 00 00 00 00 00 02 3D 85 + 39 00 00 00 00 00 02 3C 85 + 39 00 00 00 00 00 02 3B 85 + 39 00 00 00 00 00 02 3A 85 + 39 00 00 00 00 00 02 39 84 + 39 00 00 00 00 00 02 38 84 + 39 00 00 00 00 00 02 37 84 + 39 00 00 00 00 00 02 36 84 + 39 00 00 00 00 00 02 35 84 + 39 00 00 00 00 00 02 34 83 + 39 00 00 00 00 00 02 33 83 + 39 00 00 00 00 00 02 32 82 + 39 00 00 00 00 00 02 31 82 + 39 00 00 00 00 00 02 30 82 + 39 00 00 00 00 00 02 2F 81 + 39 00 00 00 00 00 02 2E 82 + 39 00 00 00 00 00 02 2D 82 + 39 00 00 00 00 00 02 2C 82 + 39 00 00 00 00 00 02 2B 83 + 39 00 00 00 00 00 02 2A 83 + 39 00 00 00 00 00 02 29 83 + 39 00 00 00 00 00 02 28 83 + 39 00 00 00 00 00 02 27 84 + 39 00 00 00 00 00 02 26 83 + 39 00 00 00 00 00 02 25 84 + 39 00 00 00 00 00 02 24 84 + 39 00 00 00 00 00 02 23 84 + 39 00 00 00 00 00 02 22 85 + 39 00 00 00 00 00 02 21 84 + 39 00 00 00 00 00 02 20 84 + 39 00 00 00 00 00 02 1F 84 + 39 00 00 00 00 00 02 1E 84 + 39 00 00 00 00 00 02 1D 84 + 39 00 00 00 00 00 02 1C 84 + 39 00 00 00 00 00 02 1B 84 + 39 00 00 00 00 00 02 1A 84 + 39 00 00 00 00 00 02 19 83 + 39 00 00 00 00 00 02 18 83 + 39 00 00 00 00 00 02 17 83 + 39 00 00 00 00 00 02 16 83 + 39 00 00 00 00 00 02 15 83 + 39 00 00 00 00 00 02 14 82 + 39 00 00 00 00 00 02 13 82 + 39 00 00 00 00 00 02 12 82 + 39 00 00 00 00 00 02 11 81 + 39 00 00 00 00 00 02 10 81 + 39 00 00 00 00 00 02 0F 81 + 39 00 00 00 00 00 02 0E 82 + 39 00 00 00 00 00 02 0D 82 + 39 00 00 00 00 00 02 0C 82 + 39 00 00 00 00 00 02 0B 82 + 39 00 00 00 00 00 02 0A 82 + 39 00 00 00 00 00 02 09 83 + 39 00 00 00 00 00 02 08 83 + 39 00 00 00 00 00 02 07 83 + 39 00 00 00 00 00 02 06 83 + 39 00 00 00 00 00 02 05 83 + 39 00 00 00 00 00 02 04 83 + 39 00 00 00 00 00 02 03 83 + 39 00 00 00 00 00 02 02 83 + 39 00 00 00 00 00 02 01 83 + + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F 00 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F 83 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F 83 + 39 00 00 00 00 00 04 FF 98 81 08 + 39 00 00 00 00 00 02 00 83 + 39 00 00 00 00 00 02 7F 00 + 39 00 00 00 00 00 04 FF 98 81 09 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F 11 + 39 00 00 00 00 00 04 FF 98 81 0A + 39 00 00 00 00 00 02 00 11 + 39 00 00 00 00 00 02 7F 85 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 80 01 + 39 01 00 00 00 00 04 FF 98 81 00 + + 39 00 00 00 00 00 04 FF 98 81 09 + 39 00 00 00 00 00 02 7F 11 + 39 00 00 00 00 00 02 7E 11 + 39 00 00 00 00 00 02 7D 11 + 39 00 00 00 00 00 02 7C 11 + 39 00 00 00 00 00 02 7B 11 + 39 00 00 00 00 00 02 7A 10 + 39 00 00 00 00 00 02 79 10 + 39 00 00 00 00 00 02 78 10 + 39 00 00 00 00 00 02 77 10 + 39 00 00 00 00 00 02 76 10 + 39 00 00 00 00 00 02 75 10 + 39 00 00 00 00 00 02 74 11 + 39 00 00 00 00 00 02 73 10 + 39 00 00 00 00 00 02 72 10 + 39 00 00 00 00 00 02 71 11 + 39 00 00 00 00 00 02 70 11 + 39 00 00 00 00 00 02 6F 10 + 39 00 00 00 00 00 02 6E 11 + 39 00 00 00 00 00 02 6D 11 + 39 00 00 00 00 00 02 6C 11 + 39 00 00 00 00 00 02 6B 11 + 39 00 00 00 00 00 02 6A 11 + 39 00 00 00 00 00 02 69 12 + 39 00 00 00 00 00 02 68 11 + 39 00 00 00 00 00 02 67 11 + 39 00 00 00 00 00 02 66 11 + 39 00 00 00 00 00 02 65 11 + 39 00 00 00 00 00 02 64 11 + 39 00 00 00 00 00 02 63 11 + 39 00 00 00 00 00 02 62 11 + 39 00 00 00 00 00 02 61 11 + 39 00 00 00 00 00 02 60 11 + 39 00 00 00 00 00 02 5F 11 + 39 00 00 00 00 00 02 5E 11 + 39 00 00 00 00 00 02 5D 11 + 39 00 00 00 00 00 02 5C 11 + 39 00 00 00 00 00 02 5B 11 + 39 00 00 00 00 00 02 5A 11 + 39 00 00 00 00 00 02 59 11 + 39 00 00 00 00 00 02 58 11 + 39 00 00 00 00 00 02 57 11 + 39 00 00 00 00 00 02 56 11 + 39 00 00 00 00 00 02 55 10 + 39 00 00 00 00 00 02 54 10 + 39 00 00 00 00 00 02 53 10 + 39 00 00 00 00 00 02 52 10 + 39 00 00 00 00 00 02 51 10 + 39 00 00 00 00 00 02 50 10 + 39 00 00 00 00 00 02 4F 0F + 39 00 00 00 00 00 02 4E 0F + 39 00 00 00 00 00 02 4D 0F + 39 00 00 00 00 00 02 4C 0F + 39 00 00 00 00 00 02 4B 0F + 39 00 00 00 00 00 02 4A 0F + 39 00 00 00 00 00 02 49 10 + 39 00 00 00 00 00 02 48 10 + 39 00 00 00 00 00 02 47 10 + 39 00 00 00 00 00 02 46 10 + 39 00 00 00 00 00 02 45 0F + 39 00 00 00 00 00 02 44 0F + 39 00 00 00 00 00 02 43 0F + 39 00 00 00 00 00 02 42 0F + 39 00 00 00 00 00 02 41 0F + 39 00 00 00 00 00 02 40 0F + 39 00 00 00 00 00 02 3F 0E + 39 00 00 00 00 00 02 3E 0E + 39 00 00 00 00 00 02 3D 0E + 39 00 00 00 00 00 02 3C 0D + 39 00 00 00 00 00 02 3B 0D + 39 00 00 00 00 00 02 3A 0C + 39 00 00 00 00 00 02 39 0C + 39 00 00 00 00 00 02 38 0B + 39 00 00 00 00 00 02 37 0A + 39 00 00 00 00 00 02 36 0A + 39 00 00 00 00 00 02 35 09 + 39 00 00 00 00 00 02 34 09 + 39 00 00 00 00 00 02 33 08 + 39 00 00 00 00 00 02 32 08 + 39 00 00 00 00 00 02 31 07 + 39 00 00 00 00 00 02 30 07 + 39 00 00 00 00 00 02 2F 08 + 39 00 00 00 00 00 02 2E 08 + 39 00 00 00 00 00 02 2D 08 + 39 00 00 00 00 00 02 2C 08 + 39 00 00 00 00 00 02 2B 08 + 39 00 00 00 00 00 02 2A 08 + 39 00 00 00 00 00 02 29 08 + 39 00 00 00 00 00 02 28 08 + 39 00 00 00 00 00 02 27 08 + 39 00 00 00 00 00 02 26 07 + 39 00 00 00 00 00 02 25 07 + 39 00 00 00 00 00 02 24 07 + 39 00 00 00 00 00 02 23 07 + 39 00 00 00 00 00 02 22 07 + 39 00 00 00 00 00 02 21 08 + 39 00 00 00 00 00 02 20 07 + 39 00 00 00 00 00 02 1F 06 + 39 00 00 00 00 00 02 1E 06 + 39 00 00 00 00 00 02 1D 06 + 39 00 00 00 00 00 02 1C 06 + 39 00 00 00 00 00 02 1B 06 + 39 00 00 00 00 00 02 1A 05 + 39 00 00 00 00 00 02 19 05 + 39 00 00 00 00 00 02 18 04 + 39 00 00 00 00 00 02 17 03 + 39 00 00 00 00 00 02 16 04 + 39 00 00 00 00 00 02 15 04 + 39 00 00 00 00 00 02 14 04 + 39 00 00 00 00 00 02 13 04 + 39 00 00 00 00 00 02 12 03 + 39 00 00 00 00 00 02 11 03 + 39 00 00 00 00 00 02 10 03 + 39 00 00 00 00 00 02 0F 02 + 39 00 00 00 00 00 02 0E 02 + 39 00 00 00 00 00 02 0D 02 + 39 00 00 00 00 00 02 0C 02 + 39 00 00 00 00 00 02 0B 02 + 39 00 00 00 00 00 02 0A 02 + 39 00 00 00 00 00 02 09 02 + 39 00 00 00 00 00 02 08 02 + 39 00 00 00 00 00 02 07 02 + 39 00 00 00 00 00 02 06 02 + 39 00 00 00 00 00 02 05 02 + 39 00 00 00 00 00 02 04 01 + 39 00 00 00 00 00 02 03 00 + 39 00 00 00 00 00 02 02 81 + 39 00 00 00 00 00 02 01 82 + + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 7F 00 + 39 00 00 00 00 00 02 7E 00 + 39 00 00 00 00 00 02 7D 00 + 39 00 00 00 00 00 02 7C 00 + 39 00 00 00 00 00 02 7B 00 + 39 00 00 00 00 00 02 7A 01 + 39 00 00 00 00 00 02 79 01 + 39 00 00 00 00 00 02 78 01 + 39 00 00 00 00 00 02 77 01 + 39 00 00 00 00 00 02 76 01 + 39 00 00 00 00 00 02 75 01 + 39 00 00 00 00 00 02 74 01 + 39 00 00 00 00 00 02 73 02 + 39 00 00 00 00 00 02 72 02 + 39 00 00 00 00 00 02 71 02 + 39 00 00 00 00 00 02 70 02 + 39 00 00 00 00 00 02 6F 03 + 39 00 00 00 00 00 02 6E 03 + 39 00 00 00 00 00 02 6D 04 + 39 00 00 00 00 00 02 6C 04 + 39 00 00 00 00 00 02 6B 03 + 39 00 00 00 00 00 02 6A 03 + 39 00 00 00 00 00 02 69 04 + 39 00 00 00 00 00 02 68 04 + 39 00 00 00 00 00 02 67 04 + 39 00 00 00 00 00 02 66 04 + 39 00 00 00 00 00 02 65 04 + 39 00 00 00 00 00 02 64 04 + 39 00 00 00 00 00 02 63 05 + 39 00 00 00 00 00 02 62 05 + 39 00 00 00 00 00 02 61 05 + 39 00 00 00 00 00 02 60 05 + 39 00 00 00 00 00 02 5F 05 + 39 00 00 00 00 00 02 5E 05 + 39 00 00 00 00 00 02 5D 06 + 39 00 00 00 00 00 02 5C 06 + 39 00 00 00 00 00 02 5B 06 + 39 00 00 00 00 00 02 5A 06 + 39 00 00 00 00 00 02 59 06 + 39 00 00 00 00 00 02 58 06 + 39 00 00 00 00 00 02 57 06 + 39 00 00 00 00 00 02 56 06 + 39 00 00 00 00 00 02 55 06 + 39 00 00 00 00 00 02 54 06 + 39 00 00 00 00 00 02 53 07 + 39 00 00 00 00 00 02 52 07 + 39 00 00 00 00 00 02 51 06 + 39 00 00 00 00 00 02 50 06 + 39 00 00 00 00 00 02 4F 06 + 39 00 00 00 00 00 02 4E 06 + 39 00 00 00 00 00 02 4D 07 + 39 00 00 00 00 00 02 4C 07 + 39 00 00 00 00 00 02 4B 08 + 39 00 00 00 00 00 02 4A 08 + 39 00 00 00 00 00 02 49 09 + 39 00 00 00 00 00 02 48 08 + 39 00 00 00 00 00 02 47 08 + 39 00 00 00 00 00 02 46 08 + 39 00 00 00 00 00 02 45 08 + 39 00 00 00 00 00 02 44 08 + 39 00 00 00 00 00 02 43 08 + 39 00 00 00 00 00 02 42 08 + 39 00 00 00 00 00 02 41 08 + 39 00 00 00 00 00 02 40 08 + 39 00 00 00 00 00 02 3F 08 + 39 00 00 00 00 00 02 3E 07 + 39 00 00 00 00 00 02 3D 07 + 39 00 00 00 00 00 02 3C 07 + 39 00 00 00 00 00 02 3B 06 + 39 00 00 00 00 00 02 3A 06 + 39 00 00 00 00 00 02 39 05 + 39 00 00 00 00 00 02 38 05 + 39 00 00 00 00 00 02 37 05 + 39 00 00 00 00 00 02 36 04 + 39 00 00 00 00 00 02 35 04 + 39 00 00 00 00 00 02 34 04 + 39 00 00 00 00 00 02 33 03 + 39 00 00 00 00 00 02 32 03 + 39 00 00 00 00 00 02 31 03 + 39 00 00 00 00 00 02 30 04 + 39 00 00 00 00 00 02 2F 04 + 39 00 00 00 00 00 02 2E 05 + 39 00 00 00 00 00 02 2D 05 + 39 00 00 00 00 00 02 2C 05 + 39 00 00 00 00 00 02 2B 05 + 39 00 00 00 00 00 02 2A 05 + 39 00 00 00 00 00 02 29 05 + 39 00 00 00 00 00 02 28 05 + 39 00 00 00 00 00 02 27 05 + 39 00 00 00 00 00 02 26 05 + 39 00 00 00 00 00 02 25 05 + 39 00 00 00 00 00 02 24 05 + 39 00 00 00 00 00 02 23 05 + 39 00 00 00 00 00 02 22 06 + 39 00 00 00 00 00 02 21 06 + 39 00 00 00 00 00 02 20 05 + 39 00 00 00 00 00 02 1F 05 + 39 00 00 00 00 00 02 1E 05 + 39 00 00 00 00 00 02 1D 05 + 39 00 00 00 00 00 02 1C 05 + 39 00 00 00 00 00 02 1B 05 + 39 00 00 00 00 00 02 1A 05 + 39 00 00 00 00 00 02 19 04 + 39 00 00 00 00 00 02 18 03 + 39 00 00 00 00 00 02 17 03 + 39 00 00 00 00 00 02 16 04 + 39 00 00 00 00 00 02 15 04 + 39 00 00 00 00 00 02 14 04 + 39 00 00 00 00 00 02 13 04 + 39 00 00 00 00 00 02 12 04 + 39 00 00 00 00 00 02 11 04 + 39 00 00 00 00 00 02 10 03 + 39 00 00 00 00 00 02 0F 03 + 39 00 00 00 00 00 02 0E 03 + 39 00 00 00 00 00 02 0D 03 + 39 00 00 00 00 00 02 0C 03 + 39 00 00 00 00 00 02 0B 03 + 39 00 00 00 00 00 02 0A 03 + 39 00 00 00 00 00 02 09 04 + 39 00 00 00 00 00 02 08 04 + 39 00 00 00 00 00 02 07 03 + 39 00 00 00 00 00 02 06 04 + 39 00 00 00 00 00 02 05 04 + 39 00 00 00 00 00 02 04 03 + 39 00 00 00 00 00 02 03 02 + 39 00 00 00 00 00 02 02 01 + 39 00 00 00 00 00 02 01 81 + + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 D3 39 + 39 00 00 00 00 00 02 D2 64 + 39 00 00 00 00 00 02 D1 54 + 39 00 00 00 00 00 02 D0 28 + 39 00 00 00 00 00 02 CF 23 + 39 00 00 00 00 00 02 CE 4F + 39 00 00 00 00 00 02 CD 1A + 39 00 00 00 00 00 02 CC 1C + 39 00 00 00 00 00 02 CB 8B + 39 00 00 00 00 00 02 CA 29 + 39 00 00 00 00 00 02 C9 1D + 39 00 00 00 00 00 02 C8 98 + 39 00 00 00 00 00 02 C7 1F + 39 00 00 00 00 00 02 C6 1E + 39 00 00 00 00 00 02 C5 2A + 39 00 00 00 00 00 02 C4 17 + 39 00 00 00 00 00 02 C3 14 + 39 00 00 00 00 00 02 C2 2B + 39 00 00 00 00 00 02 C1 1C + 39 00 00 00 00 00 02 C0 00 + + 39 00 00 00 00 00 02 B3 39 + 39 00 00 00 00 00 02 B2 65 + 39 00 00 00 00 00 02 B1 55 + 39 00 00 00 00 00 02 B0 27 + 39 00 00 00 00 00 02 AF 22 + 39 00 00 00 00 00 02 AE 4E + 39 00 00 00 00 00 02 AD 1A + 39 00 00 00 00 00 02 AC 1B + 39 00 00 00 00 00 02 AB 8C + 39 00 00 00 00 00 02 AA 29 + 39 00 00 00 00 00 02 A9 1D + 39 00 00 00 00 00 02 A8 99 + 39 00 00 00 00 00 02 A7 1F + 39 00 00 00 00 00 02 A6 1D + 39 00 00 00 00 00 02 A5 29 + 39 00 00 00 00 00 02 A4 16 + 39 00 00 00 00 00 02 A3 14 + 39 00 00 00 00 00 02 A2 2C + 39 00 00 00 00 00 02 A1 1D + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 f6 00 + + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 7F 83 + 39 00 00 00 00 00 02 7E 83 + 39 00 00 00 00 00 02 7D 83 + 39 00 00 00 00 00 02 7C 83 + 39 00 00 00 00 00 02 7B 83 + 39 00 00 00 00 00 02 7A 83 + 39 00 00 00 00 00 02 79 82 + 39 00 00 00 00 00 02 78 82 + 39 00 00 00 00 00 02 77 82 + 39 00 00 00 00 00 02 76 82 + 39 00 00 00 00 00 02 75 82 + 39 00 00 00 00 00 02 74 82 + 39 00 00 00 00 00 02 73 82 + 39 00 00 00 00 00 02 72 81 + 39 00 00 00 00 00 02 71 81 + 39 00 00 00 00 00 02 70 81 + 39 00 00 00 00 00 02 6F 81 + 39 00 00 00 00 00 02 6E 00 + 39 00 00 00 00 00 02 6D 00 + 39 00 00 00 00 00 02 6C 81 + 39 00 00 00 00 00 02 6B 81 + 39 00 00 00 00 00 02 6A 00 + 39 00 00 00 00 00 02 69 00 + 39 00 00 00 00 00 02 68 00 + 39 00 00 00 00 00 02 67 00 + 39 00 00 00 00 00 02 66 00 + 39 00 00 00 00 00 02 65 00 + 39 00 00 00 00 00 02 64 00 + 39 00 00 00 00 00 02 63 00 + 39 00 00 00 00 00 02 62 01 + 39 00 00 00 00 00 02 61 01 + 39 00 00 00 00 00 02 60 01 + 39 00 00 00 00 00 02 5F 01 + 39 00 00 00 00 00 02 5E 01 + 39 00 00 00 00 00 02 5D 01 + 39 00 00 00 00 00 02 5C 01 + 39 00 00 00 00 00 02 5B 01 + 39 00 00 00 00 00 02 5A 01 + 39 00 00 00 00 00 02 59 01 + 39 00 00 00 00 00 02 58 01 + 39 00 00 00 00 00 02 57 01 + 39 00 00 00 00 00 02 56 01 + 39 00 00 00 00 00 02 55 01 + 39 00 00 00 00 00 02 54 01 + 39 00 00 00 00 00 02 53 01 + 39 00 00 00 00 00 02 52 01 + 39 00 00 00 00 00 02 51 01 + 39 00 00 00 00 00 02 50 01 + 39 00 00 00 00 00 02 4F 01 + 39 00 00 00 00 00 02 4E 01 + 39 00 00 00 00 00 02 4D 02 + 39 00 00 00 00 00 02 4C 03 + 39 00 00 00 00 00 02 4B 03 + 39 00 00 00 00 00 02 4A 03 + 39 00 00 00 00 00 02 49 03 + 39 00 00 00 00 00 02 48 03 + 39 00 00 00 00 00 02 47 03 + 39 00 00 00 00 00 02 46 03 + 39 00 00 00 00 00 02 45 03 + 39 00 00 00 00 00 02 44 03 + 39 00 00 00 00 00 02 43 03 + 39 00 00 00 00 00 02 42 03 + 39 00 00 00 00 00 02 41 03 + 39 00 00 00 00 00 02 40 02 + 39 00 00 00 00 00 02 3F 02 + 39 00 00 00 00 00 02 3E 02 + 39 00 00 00 00 00 02 3D 02 + 39 00 00 00 00 00 02 3C 01 + 39 00 00 00 00 00 02 3B 01 + 39 00 00 00 00 00 02 3A 00 + 39 00 00 00 00 00 02 39 00 + 39 00 00 00 00 00 02 38 81 + 39 00 00 00 00 00 02 37 81 + 39 00 00 00 00 00 02 36 81 + 39 00 00 00 00 00 02 35 81 + 39 00 00 00 00 00 02 34 82 + 39 00 00 00 00 00 02 33 82 + 39 00 00 00 00 00 02 32 82 + 39 00 00 00 00 00 02 31 81 + 39 00 00 00 00 00 02 30 81 + 39 00 00 00 00 00 02 2F 00 + 39 00 00 00 00 00 02 2E 00 + 39 00 00 00 00 00 02 2D 00 + 39 00 00 00 00 00 02 2C 00 + 39 00 00 00 00 00 02 2B 00 + 39 00 00 00 00 00 02 2A 00 + 39 00 00 00 00 00 02 29 00 + 39 00 00 00 00 00 02 28 00 + 39 00 00 00 00 00 02 27 00 + 39 00 00 00 00 00 02 26 00 + 39 00 00 00 00 00 02 25 00 + 39 00 00 00 00 00 02 24 01 + 39 00 00 00 00 00 02 23 01 + 39 00 00 00 00 00 02 22 01 + 39 00 00 00 00 00 02 21 00 + 39 00 00 00 00 00 02 20 00 + 39 00 00 00 00 00 02 1F 01 + 39 00 00 00 00 00 02 1E 01 + 39 00 00 00 00 00 02 1D 01 + 39 00 00 00 00 00 02 1C 01 + 39 00 00 00 00 00 02 1B 00 + 39 00 00 00 00 00 02 1A 00 + 39 00 00 00 00 00 02 19 81 + 39 00 00 00 00 00 02 18 81 + 39 00 00 00 00 00 02 17 00 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 15 01 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 13 00 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 11 00 + 39 00 00 00 00 00 02 10 81 + 39 00 00 00 00 00 02 0F 00 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0D 00 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0B 00 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 09 00 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 07 01 + 39 00 00 00 00 00 02 06 01 + 39 00 00 00 00 00 02 05 01 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 03 00 + 39 00 00 00 00 00 02 02 81 + 39 00 00 00 00 00 02 01 82 + + + 39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 21 B0 + 39 00 00 00 00 00 02 32 02 + 39 01 00 00 00 00 04 FF 98 81 00 + ]; + + + + qcom,mdss-dsi-panel-gamma-command-state = "dsi_hs_mode"; + + qcom,mdss-dsi-panel-eye-command01 = [39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 21 B2 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 f6 00 + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 A1 1E + 39 00 00 00 00 00 02 A2 2E + 39 00 00 00 00 00 02 A3 12 + 39 00 00 00 00 00 02 A4 15 + 39 00 00 00 00 00 02 A5 29 + 39 00 00 00 00 00 02 A6 1D + 39 00 00 00 00 00 02 A7 1E + 39 00 00 00 00 00 02 A8 9E + 39 00 00 00 00 00 02 A9 1D + 39 00 00 00 00 00 02 AA 2A + 39 00 00 00 00 00 02 AB 90 + 39 00 00 00 00 00 02 AC 1D + 39 00 00 00 00 00 02 AD 1C + 39 00 00 00 00 00 02 AE 4F + 39 00 00 00 00 00 02 AF 23 + 39 00 00 00 00 00 02 B0 28 + 39 00 00 00 00 00 02 B1 59 + 39 00 00 00 00 00 02 B2 68 + 39 00 00 00 00 00 02 B3 39 + + 39 00 00 00 00 00 02 C0 00 + 39 00 00 00 00 00 02 C1 1D + 39 00 00 00 00 00 02 C2 2D + 39 00 00 00 00 00 02 C3 13 + 39 00 00 00 00 00 02 C4 16 + 39 00 00 00 00 00 02 C5 29 + 39 00 00 00 00 00 02 C6 1D + 39 00 00 00 00 00 02 C7 1F + 39 00 00 00 00 00 02 C8 9D + 39 00 00 00 00 00 02 C9 1D + 39 00 00 00 00 00 02 CA 2A + 39 00 00 00 00 00 02 CB 8F + 39 00 00 00 00 00 02 CC 1D + 39 00 00 00 00 00 02 CD 1C + 39 00 00 00 00 00 02 CE 50 + 39 00 00 00 00 00 02 CF 24 + 39 00 00 00 00 00 02 D0 29 + 39 00 00 00 00 00 02 D1 58 + 39 00 00 00 00 00 02 D2 67 + 39 00 00 00 00 00 02 D3 39 + + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 01 82 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 01 + 39 00 00 00 00 00 02 04 03 + 39 00 00 00 00 00 02 05 04 + 39 00 00 00 00 00 02 06 03 + 39 00 00 00 00 00 02 07 03 + 39 00 00 00 00 00 02 08 04 + 39 00 00 00 00 00 02 09 04 + 39 00 00 00 00 00 02 0A 04 + 39 00 00 00 00 00 02 0B 03 + 39 00 00 00 00 00 02 0C 04 + 39 00 00 00 00 00 02 0D 04 + 39 00 00 00 00 00 02 0E 04 + 39 00 00 00 00 00 02 0F 03 + 39 00 00 00 00 00 02 10 04 + 39 00 00 00 00 00 02 11 04 + 39 00 00 00 00 00 02 12 04 + 39 00 00 00 00 00 02 13 04 + 39 00 00 00 00 00 02 14 04 + 39 00 00 00 00 00 02 15 04 + 39 00 00 00 00 00 02 16 04 + 39 00 00 00 00 00 02 17 04 + 39 00 00 00 00 00 02 18 04 + 39 00 00 00 00 00 02 19 04 + 39 00 00 00 00 00 02 1A 05 + 39 00 00 00 00 00 02 1B 05 + 39 00 00 00 00 00 02 1C 05 + 39 00 00 00 00 00 02 1D 06 + 39 00 00 00 00 00 02 1E 06 + 39 00 00 00 00 00 02 1F 06 + 39 00 00 00 00 00 02 20 05 + 39 00 00 00 00 00 02 21 05 + 39 00 00 00 00 00 02 22 05 + 39 00 00 00 00 00 02 23 05 + 39 00 00 00 00 00 02 24 07 + 39 00 00 00 00 00 02 25 09 + 39 00 00 00 00 00 02 26 09 + 39 00 00 00 00 00 02 27 08 + 39 00 00 00 00 00 02 28 08 + 39 00 00 00 00 00 02 29 07 + 39 00 00 00 00 00 02 2A 07 + 39 00 00 00 00 00 02 2B 07 + 39 00 00 00 00 00 02 2C 07 + 39 00 00 00 00 00 02 2D 07 + 39 00 00 00 00 00 02 2E 07 + 39 00 00 00 00 00 02 2F 06 + 39 00 00 00 00 00 02 30 06 + 39 00 00 00 00 00 02 31 06 + 39 00 00 00 00 00 02 32 05 + 39 00 00 00 00 00 02 33 05 + 39 00 00 00 00 00 02 34 05 + 39 00 00 00 00 00 02 35 05 + 39 00 00 00 00 00 02 36 06 + 39 00 00 00 00 00 02 37 08 + 39 00 00 00 00 00 02 38 08 + 39 00 00 00 00 00 02 39 08 + 39 00 00 00 00 00 02 3A 08 + 39 00 00 00 00 00 02 3B 07 + 39 00 00 00 00 00 02 3C 07 + 39 00 00 00 00 00 02 3D 07 + 39 00 00 00 00 00 02 3E 08 + 39 00 00 00 00 00 02 3F 08 + 39 00 00 00 00 00 02 40 08 + 39 00 00 00 00 00 02 41 08 + 39 00 00 00 00 00 02 42 07 + 39 00 00 00 00 00 02 43 07 + 39 00 00 00 00 00 02 44 07 + 39 00 00 00 00 00 02 45 07 + 39 00 00 00 00 00 02 46 07 + 39 00 00 00 00 00 02 47 07 + 39 00 00 00 00 00 02 48 06 + 39 00 00 00 00 00 02 49 06 + 39 00 00 00 00 00 02 4A 06 + 39 00 00 00 00 00 02 4B 05 + 39 00 00 00 00 00 02 4C 05 + 39 00 00 00 00 00 02 4D 05 + 39 00 00 00 00 00 02 4E 04 + 39 00 00 00 00 00 02 4F 04 + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 03 + 39 00 00 00 00 00 02 52 04 + 39 00 00 00 00 00 02 53 04 + 39 00 00 00 00 00 02 54 04 + 39 00 00 00 00 00 02 55 04 + 39 00 00 00 00 00 02 56 05 + 39 00 00 00 00 00 02 57 05 + 39 00 00 00 00 00 02 58 05 + 39 00 00 00 00 00 02 59 05 + 39 00 00 00 00 00 02 5A 05 + 39 00 00 00 00 00 02 5B 05 + 39 00 00 00 00 00 02 5C 05 + 39 00 00 00 00 00 02 5D 05 + 39 00 00 00 00 00 02 5E 05 + 39 00 00 00 00 00 02 5F 05 + 39 00 00 00 00 00 02 60 05 + 39 00 00 00 00 00 02 61 05 + 39 00 00 00 00 00 02 62 05 + 39 00 00 00 00 00 02 63 05 + 39 00 00 00 00 00 02 64 05 + 39 00 00 00 00 00 02 65 05 + 39 00 00 00 00 00 02 66 06 + 39 00 00 00 00 00 02 67 05 + 39 00 00 00 00 00 02 68 05 + 39 00 00 00 00 00 02 69 05 + 39 00 00 00 00 00 02 6A 05 + 39 00 00 00 00 00 02 6B 05 + 39 00 00 00 00 00 02 6C 05 + 39 00 00 00 00 00 02 6D 05 + 39 00 00 00 00 00 02 6E 05 + 39 00 00 00 00 00 02 6F 05 + 39 00 00 00 00 00 02 70 05 + 39 00 00 00 00 00 02 71 05 + 39 00 00 00 00 00 02 72 05 + 39 00 00 00 00 00 02 73 04 + 39 00 00 00 00 00 02 74 04 + 39 00 00 00 00 00 02 75 04 + 39 00 00 00 00 00 02 76 03 + 39 00 00 00 00 00 02 77 03 + 39 00 00 00 00 00 02 78 03 + 39 00 00 00 00 00 02 79 02 + 39 00 00 00 00 00 02 7A 02 + 39 00 00 00 00 00 02 7B 02 + 39 00 00 00 00 00 02 7C 02 + 39 00 00 00 00 00 02 7D 02 + 39 00 00 00 00 00 02 7E 02 + 39 00 00 00 00 00 02 7F 01 + + + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 01 83 + 39 00 00 00 00 00 02 02 83 + 39 00 00 00 00 00 02 03 82 + 39 00 00 00 00 00 02 04 82 + 39 00 00 00 00 00 02 05 81 + 39 00 00 00 00 00 02 06 81 + 39 00 00 00 00 00 02 07 81 + 39 00 00 00 00 00 02 08 81 + 39 00 00 00 00 00 02 09 82 + 39 00 00 00 00 00 02 0A 82 + 39 00 00 00 00 00 02 0B 82 + 39 00 00 00 00 00 02 0C 82 + 39 00 00 00 00 00 02 0D 83 + 39 00 00 00 00 00 02 0E 83 + 39 00 00 00 00 00 02 0F 83 + 39 00 00 00 00 00 02 10 83 + 39 00 00 00 00 00 02 11 84 + 39 00 00 00 00 00 02 12 84 + 39 00 00 00 00 00 02 13 84 + 39 00 00 00 00 00 02 14 84 + 39 00 00 00 00 00 02 15 84 + 39 00 00 00 00 00 02 16 84 + 39 00 00 00 00 00 02 17 85 + 39 00 00 00 00 00 02 18 85 + 39 00 00 00 00 00 02 19 85 + 39 00 00 00 00 00 02 1A 85 + 39 00 00 00 00 00 02 1B 85 + 39 00 00 00 00 00 02 1C 85 + 39 00 00 00 00 00 02 1D 85 + 39 00 00 00 00 00 02 1E 85 + 39 00 00 00 00 00 02 1F 85 + 39 00 00 00 00 00 02 20 85 + 39 00 00 00 00 00 02 21 85 + 39 00 00 00 00 00 02 22 85 + 39 00 00 00 00 00 02 23 86 + 39 00 00 00 00 00 02 24 86 + 39 00 00 00 00 00 02 25 87 + 39 00 00 00 00 00 02 26 87 + 39 00 00 00 00 00 02 27 85 + 39 00 00 00 00 00 02 28 83 + 39 00 00 00 00 00 02 29 84 + 39 00 00 00 00 00 02 2A 84 + 39 00 00 00 00 00 02 2B 85 + 39 00 00 00 00 00 02 2C 86 + 39 00 00 00 00 00 02 2D 86 + 39 00 00 00 00 00 02 2E 86 + 39 00 00 00 00 00 02 2F 87 + 39 00 00 00 00 00 02 30 87 + 39 00 00 00 00 00 02 31 88 + 39 00 00 00 00 00 02 32 88 + 39 00 00 00 00 00 02 33 88 + 39 00 00 00 00 00 02 34 89 + 39 00 00 00 00 00 02 35 8A + 39 00 00 00 00 00 02 36 8A + 39 00 00 00 00 00 02 37 8B + 39 00 00 00 00 00 02 38 8B + 39 00 00 00 00 00 02 39 8B + 39 00 00 00 00 00 02 3A 8A + 39 00 00 00 00 00 02 3B 89 + 39 00 00 00 00 00 02 3C 89 + 39 00 00 00 00 00 02 3D 89 + 39 00 00 00 00 00 02 3E 89 + 39 00 00 00 00 00 02 3F 8A + 39 00 00 00 00 00 02 40 8A + 39 00 00 00 00 00 02 41 8A + 39 00 00 00 00 00 02 42 8A + 39 00 00 00 00 00 02 43 8A + 39 00 00 00 00 00 02 44 8A + 39 00 00 00 00 00 02 45 8B + 39 00 00 00 00 00 02 46 8B + 39 00 00 00 00 00 02 47 8B + 39 00 00 00 00 00 02 48 8C + 39 00 00 00 00 00 02 49 8C + 39 00 00 00 00 00 02 4A 8C + 39 00 00 00 00 00 02 4B 8D + 39 00 00 00 00 00 02 4C 8D + 39 00 00 00 00 00 02 4D 8E + 39 00 00 00 00 00 02 4E 8E + 39 00 00 00 00 00 02 4F 8F + 39 00 00 00 00 00 02 50 90 + 39 00 00 00 00 00 02 51 90 + 39 00 00 00 00 00 02 52 90 + 39 00 00 00 00 00 02 53 91 + 39 00 00 00 00 00 02 54 91 + 39 00 00 00 00 00 02 55 92 + 39 00 00 00 00 00 02 56 92 + 39 00 00 00 00 00 02 57 92 + 39 00 00 00 00 00 02 58 92 + 39 00 00 00 00 00 02 59 92 + 39 00 00 00 00 00 02 5A 92 + 39 00 00 00 00 00 02 5B 92 + 39 00 00 00 00 00 02 5C 92 + 39 00 00 00 00 00 02 5D 92 + 39 00 00 00 00 00 02 5E 92 + 39 00 00 00 00 00 02 5F 92 + 39 00 00 00 00 00 02 60 92 + 39 00 00 00 00 00 02 61 92 + 39 00 00 00 00 00 02 62 92 + 39 00 00 00 00 00 02 63 92 + 39 00 00 00 00 00 02 64 92 + 39 00 00 00 00 00 02 65 93 + 39 00 00 00 00 00 02 66 93 + 39 00 00 00 00 00 02 67 93 + 39 00 00 00 00 00 02 68 93 + 39 00 00 00 00 00 02 69 93 + 39 00 00 00 00 00 02 6A 94 + 39 00 00 00 00 00 02 6B 93 + 39 00 00 00 00 00 02 6C 94 + 39 00 00 00 00 00 02 6D 94 + 39 00 00 00 00 00 02 6E 94 + 39 00 00 00 00 00 02 6F 94 + 39 00 00 00 00 00 02 70 94 + 39 00 00 00 00 00 02 71 94 + 39 00 00 00 00 00 02 72 94 + 39 00 00 00 00 00 02 73 94 + 39 00 00 00 00 00 02 74 95 + 39 00 00 00 00 00 02 75 95 + 39 00 00 00 00 00 02 76 95 + 39 00 00 00 00 00 02 77 95 + 39 00 00 00 00 00 02 78 96 + 39 00 00 00 00 00 02 79 96 + 39 00 00 00 00 00 02 7A 97 + 39 00 00 00 00 00 02 7B 97 + 39 00 00 00 00 00 02 7C 98 + 39 00 00 00 00 00 02 7D 98 + 39 00 00 00 00 00 02 7E 99 + 39 00 00 00 00 00 02 7F 99 + + 39 00 00 00 00 00 04 FF 98 81 09 + 39 00 00 00 00 00 02 01 83 + 39 00 00 00 00 00 02 02 84 + 39 00 00 00 00 00 02 03 83 + 39 00 00 00 00 00 02 04 82 + 39 00 00 00 00 00 02 05 81 + 39 00 00 00 00 00 02 06 81 + 39 00 00 00 00 00 02 07 82 + 39 00 00 00 00 00 02 08 82 + 39 00 00 00 00 00 02 09 82 + 39 00 00 00 00 00 02 0A 82 + 39 00 00 00 00 00 02 0B 83 + 39 00 00 00 00 00 02 0C 83 + 39 00 00 00 00 00 02 0D 84 + 39 00 00 00 00 00 02 0E 84 + 39 00 00 00 00 00 02 0F 84 + 39 00 00 00 00 00 02 10 84 + 39 00 00 00 00 00 02 11 85 + 39 00 00 00 00 00 02 12 85 + 39 00 00 00 00 00 02 13 85 + 39 00 00 00 00 00 02 14 85 + 39 00 00 00 00 00 02 15 85 + 39 00 00 00 00 00 02 16 86 + 39 00 00 00 00 00 02 17 87 + 39 00 00 00 00 00 02 18 87 + 39 00 00 00 00 00 02 19 87 + 39 00 00 00 00 00 02 1A 87 + 39 00 00 00 00 00 02 1B 87 + 39 00 00 00 00 00 02 1C 87 + 39 00 00 00 00 00 02 1D 87 + 39 00 00 00 00 00 02 1E 87 + 39 00 00 00 00 00 02 1F 87 + 39 00 00 00 00 00 02 20 87 + 39 00 00 00 00 00 02 21 87 + 39 00 00 00 00 00 02 22 88 + 39 00 00 00 00 00 02 23 88 + 39 00 00 00 00 00 02 24 89 + 39 00 00 00 00 00 02 25 89 + 39 00 00 00 00 00 02 26 8A + 39 00 00 00 00 00 02 27 89 + 39 00 00 00 00 00 02 28 87 + 39 00 00 00 00 00 02 29 87 + 39 00 00 00 00 00 02 2A 87 + 39 00 00 00 00 00 02 2B 88 + 39 00 00 00 00 00 02 2C 89 + 39 00 00 00 00 00 02 2D 89 + 39 00 00 00 00 00 02 2E 8A + 39 00 00 00 00 00 02 2F 8A + 39 00 00 00 00 00 02 30 8A + 39 00 00 00 00 00 02 31 8B + 39 00 00 00 00 00 02 32 8B + 39 00 00 00 00 00 02 33 8C + 39 00 00 00 00 00 02 34 8C + 39 00 00 00 00 00 02 35 8D + 39 00 00 00 00 00 02 36 8E + 39 00 00 00 00 00 02 37 8F + 39 00 00 00 00 00 02 38 8F + 39 00 00 00 00 00 02 39 8F + 39 00 00 00 00 00 02 3A 8F + 39 00 00 00 00 00 02 3B 8F + 39 00 00 00 00 00 02 3C 8E + 39 00 00 00 00 00 02 3D 8D + 39 00 00 00 00 00 02 3E 8E + 39 00 00 00 00 00 02 3F 8E + 39 00 00 00 00 00 02 40 8F + 39 00 00 00 00 00 02 41 8F + 39 00 00 00 00 00 02 42 8F + 39 00 00 00 00 00 02 43 90 + 39 00 00 00 00 00 02 44 90 + 39 00 00 00 00 00 02 45 90 + 39 00 00 00 00 00 02 46 90 + 39 00 00 00 00 00 02 47 91 + 39 00 00 00 00 00 02 48 91 + 39 00 00 00 00 00 02 49 91 + 39 00 00 00 00 00 02 4A 92 + 39 00 00 00 00 00 02 4B 92 + 39 00 00 00 00 00 02 4C 93 + 39 00 00 00 00 00 02 4D 93 + 39 00 00 00 00 00 02 4E 94 + 39 00 00 00 00 00 02 4F 94 + 39 00 00 00 00 00 02 50 95 + 39 00 00 00 00 00 02 51 96 + 39 00 00 00 00 00 02 52 96 + 39 00 00 00 00 00 02 53 97 + 39 00 00 00 00 00 02 54 97 + 39 00 00 00 00 00 02 55 98 + 39 00 00 00 00 00 02 56 99 + 39 00 00 00 00 00 02 57 99 + 39 00 00 00 00 00 02 58 9A + 39 00 00 00 00 00 02 59 9A + 39 00 00 00 00 00 02 5A 9A + 39 00 00 00 00 00 02 5B 9A + 39 00 00 00 00 00 02 5C 9A + 39 00 00 00 00 00 02 5D 9A + 39 00 00 00 00 00 02 5E 9A + 39 00 00 00 00 00 02 5F 9A + 39 00 00 00 00 00 02 60 9A + 39 00 00 00 00 00 02 61 9B + 39 00 00 00 00 00 02 62 9B + 39 00 00 00 00 00 02 63 9B + 39 00 00 00 00 00 02 64 9B + 39 00 00 00 00 00 02 65 9B + 39 00 00 00 00 00 02 66 9B + 39 00 00 00 00 00 02 67 9C + 39 00 00 00 00 00 02 68 9C + 39 00 00 00 00 00 02 69 9C + 39 00 00 00 00 00 02 6A 9C + 39 00 00 00 00 00 02 6B 9D + 39 00 00 00 00 00 02 6C 9D + 39 00 00 00 00 00 02 6D 9D + 39 00 00 00 00 00 02 6E 9D + 39 00 00 00 00 00 02 6F 9E + 39 00 00 00 00 00 02 70 9E + 39 00 00 00 00 00 02 71 9E + 39 00 00 00 00 00 02 72 9F + 39 00 00 00 00 00 02 73 9F + 39 00 00 00 00 00 02 74 9F + 39 00 00 00 00 00 02 75 9F + 39 00 00 00 00 00 02 76 A0 + 39 00 00 00 00 00 02 77 A0 + 39 00 00 00 00 00 02 78 A1 + 39 00 00 00 00 00 02 79 A1 + 39 00 00 00 00 00 02 7A A1 + 39 00 00 00 00 00 02 7B A1 + 39 00 00 00 00 00 02 7C A2 + 39 00 00 00 00 00 02 7D A3 + 39 00 00 00 00 00 02 7E A3 + 39 00 00 00 00 00 02 7F A4 + 39 01 00 00 00 00 04 FF 98 81 00 + + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 01 01 + 39 00 00 00 00 00 02 02 01 + 39 00 00 00 00 00 02 03 01 + 39 00 00 00 00 00 02 04 01 + 39 00 00 00 00 00 02 05 01 + 39 00 00 00 00 00 02 06 01 + 39 00 00 00 00 00 02 07 00 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 00 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 00 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 00 + 39 00 00 00 00 00 02 0E 01 + 39 00 00 00 00 00 02 0F 01 + 39 00 00 00 00 00 02 10 01 + 39 00 00 00 00 00 02 11 01 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 00 + 39 00 00 00 00 00 02 14 81 + 39 00 00 00 00 00 02 15 81 + 39 00 00 00 00 00 02 16 81 + 39 00 00 00 00 00 02 17 81 + 39 00 00 00 00 00 02 18 82 + 39 00 00 00 00 00 02 19 82 + 39 00 00 00 00 00 02 1A 82 + 39 00 00 00 00 00 02 1B 82 + 39 00 00 00 00 00 02 1C 82 + 39 00 00 00 00 00 02 1D 82 + 39 00 00 00 00 00 02 1E 82 + 39 00 00 00 00 00 02 1F 83 + 39 00 00 00 00 00 02 20 83 + 39 00 00 00 00 00 02 21 83 + 39 00 00 00 00 00 02 22 82 + 39 00 00 00 00 00 02 23 82 + 39 00 00 00 00 00 02 24 83 + 39 00 00 00 00 00 02 25 83 + 39 00 00 00 00 00 02 26 83 + 39 00 00 00 00 00 02 27 82 + 39 00 00 00 00 00 02 28 82 + 39 00 00 00 00 00 02 29 81 + 39 00 00 00 00 00 02 2A 81 + 39 00 00 00 00 00 02 2B 81 + 39 00 00 00 00 00 02 2C 81 + 39 00 00 00 00 00 02 2D 81 + 39 00 00 00 00 00 02 2E 00 + 39 00 00 00 00 00 02 2F 00 + 39 00 00 00 00 00 02 30 00 + 39 00 00 00 00 00 02 31 81 + 39 00 00 00 00 00 02 32 82 + 39 00 00 00 00 00 02 33 82 + 39 00 00 00 00 00 02 34 83 + 39 00 00 00 00 00 02 35 83 + 39 00 00 00 00 00 02 36 84 + 39 00 00 00 00 00 02 37 84 + 39 00 00 00 00 00 02 38 84 + 39 00 00 00 00 00 02 39 85 + 39 00 00 00 00 00 02 3A 85 + 39 00 00 00 00 00 02 3B 85 + 39 00 00 00 00 00 02 3C 86 + 39 00 00 00 00 00 02 3D 86 + 39 00 00 00 00 00 02 3E 86 + 39 00 00 00 00 00 02 3F 86 + 39 00 00 00 00 00 02 40 86 + 39 00 00 00 00 00 02 41 86 + 39 00 00 00 00 00 02 42 86 + 39 00 00 00 00 00 02 43 86 + 39 00 00 00 00 00 02 44 86 + 39 00 00 00 00 00 02 45 86 + 39 00 00 00 00 00 02 46 85 + 39 00 00 00 00 00 02 47 85 + 39 00 00 00 00 00 02 48 85 + 39 00 00 00 00 00 02 49 84 + 39 00 00 00 00 00 02 4A 84 + 39 00 00 00 00 00 02 4B 83 + 39 00 00 00 00 00 02 4C 83 + 39 00 00 00 00 00 02 4D 83 + 39 00 00 00 00 00 02 4E 84 + 39 00 00 00 00 00 02 4F 84 + 39 00 00 00 00 00 02 50 84 + 39 00 00 00 00 00 02 51 84 + 39 00 00 00 00 00 02 52 85 + 39 00 00 00 00 00 02 53 85 + 39 00 00 00 00 00 02 54 85 + 39 00 00 00 00 00 02 55 85 + 39 00 00 00 00 00 02 56 85 + 39 00 00 00 00 00 02 57 84 + 39 00 00 00 00 00 02 58 84 + 39 00 00 00 00 00 02 59 84 + 39 00 00 00 00 00 02 5A 83 + 39 00 00 00 00 00 02 5B 83 + 39 00 00 00 00 00 02 5C 83 + 39 00 00 00 00 00 02 5D 83 + 39 00 00 00 00 00 02 5E 83 + 39 00 00 00 00 00 02 5F 84 + 39 00 00 00 00 00 02 60 84 + 39 00 00 00 00 00 02 61 84 + 39 00 00 00 00 00 02 62 84 + 39 00 00 00 00 00 02 63 84 + 39 00 00 00 00 00 02 64 84 + 39 00 00 00 00 00 02 65 83 + 39 00 00 00 00 00 02 66 83 + 39 00 00 00 00 00 02 67 82 + 39 00 00 00 00 00 02 68 82 + 39 00 00 00 00 00 02 69 83 + 39 00 00 00 00 00 02 6A 83 + 39 00 00 00 00 00 02 6B 84 + 39 00 00 00 00 00 02 6C 84 + 39 00 00 00 00 00 02 6D 84 + 39 00 00 00 00 00 02 6E 84 + 39 00 00 00 00 00 02 6F 83 + 39 00 00 00 00 00 02 70 83 + 39 00 00 00 00 00 02 71 83 + 39 00 00 00 00 00 02 72 83 + 39 00 00 00 00 00 02 73 83 + 39 00 00 00 00 00 02 74 83 + 39 00 00 00 00 00 02 75 83 + 39 00 00 00 00 00 02 76 82 + 39 00 00 00 00 00 02 77 82 + 39 00 00 00 00 00 02 78 82 + 39 00 00 00 00 00 02 79 82 + 39 00 00 00 00 00 02 7A 82 + 39 00 00 00 00 00 02 7B 81 + 39 00 00 00 00 00 02 7C 82 + 39 00 00 00 00 00 02 7D 83 + 39 00 00 00 00 00 02 7E 83 + 39 00 00 00 00 00 02 7F 81 + + 39 00 00 00 00 00 04 FF 98 81 08 + 39 00 00 00 00 00 02 01 9A + 39 00 00 00 00 00 02 02 9A + 39 00 00 00 00 00 02 03 9A + 39 00 00 00 00 00 02 04 9B + 39 00 00 00 00 00 02 05 9B + 39 00 00 00 00 00 02 06 9B + 39 00 00 00 00 00 02 07 9C + 39 00 00 00 00 00 02 08 9C + 39 00 00 00 00 00 02 09 9C + 39 00 00 00 00 00 02 0A 9C + 39 00 00 00 00 00 02 0B 9C + 39 00 00 00 00 00 02 0C 9D + 39 00 00 00 00 00 02 0D 9D + 39 00 00 00 00 00 02 0E 9D + 39 00 00 00 00 00 02 0F 9D + 39 00 00 00 00 00 02 10 9D + 39 00 00 00 00 00 02 11 9E + 39 00 00 00 00 00 02 12 9E + 39 00 00 00 00 00 02 13 9E + 39 00 00 00 00 00 02 14 9E + 39 00 00 00 00 00 02 15 9E + 39 00 00 00 00 00 02 16 9E + 39 00 00 00 00 00 02 17 9E + 39 00 00 00 00 00 02 18 9E + 39 00 00 00 00 00 02 19 9E + 39 00 00 00 00 00 02 1A 9F + 39 00 00 00 00 00 02 1B 9F + 39 00 00 00 00 00 02 1C A0 + 39 00 00 00 00 00 02 1D A0 + 39 00 00 00 00 00 02 1E A1 + 39 00 00 00 00 00 02 1F A1 + 39 00 00 00 00 00 02 20 A1 + 39 00 00 00 00 00 02 21 A2 + 39 00 00 00 00 00 02 22 A2 + 39 00 00 00 00 00 02 23 A2 + 39 00 00 00 00 00 02 24 A3 + 39 00 00 00 00 00 02 25 A3 + 39 00 00 00 00 00 02 26 A3 + 39 00 00 00 00 00 02 27 A3 + 39 00 00 00 00 00 02 28 A3 + 39 00 00 00 00 00 02 29 A3 + 39 00 00 00 00 00 02 2A A4 + 39 00 00 00 00 00 02 2B A4 + 39 00 00 00 00 00 02 2C A4 + 39 00 00 00 00 00 02 2D A4 + 39 00 00 00 00 00 02 2E A5 + 39 00 00 00 00 00 02 2F A4 + 39 00 00 00 00 00 02 30 A4 + 39 00 00 00 00 00 02 31 A3 + 39 00 00 00 00 00 02 32 A4 + 39 00 00 00 00 00 02 33 A4 + 39 00 00 00 00 00 02 34 A3 + 39 00 00 00 00 00 02 35 A3 + 39 00 00 00 00 00 02 36 A3 + 39 00 00 00 00 00 02 37 A3 + 39 00 00 00 00 00 02 38 A3 + 39 00 00 00 00 00 02 39 A4 + 39 00 00 00 00 00 02 3A A4 + 39 00 00 00 00 00 02 3B A5 + 39 00 00 00 00 00 02 3C A6 + 39 00 00 00 00 00 02 3D A6 + 39 00 00 00 00 00 02 3E A7 + 39 00 00 00 00 00 02 3F A7 + 39 00 00 00 00 00 02 40 A8 + 39 00 00 00 00 00 02 41 A8 + 39 00 00 00 00 00 02 42 A9 + 39 00 00 00 00 00 02 43 A9 + 39 00 00 00 00 00 02 44 AA + 39 00 00 00 00 00 02 45 AA + 39 00 00 00 00 00 02 46 AA + 39 00 00 00 00 00 02 47 AB + 39 00 00 00 00 00 02 48 AB + 39 00 00 00 00 00 02 49 AB + 39 00 00 00 00 00 02 4A AB + 39 00 00 00 00 00 02 4B AB + 39 00 00 00 00 00 02 4C AB + 39 00 00 00 00 00 02 4D AB + 39 00 00 00 00 00 02 4E AB + 39 00 00 00 00 00 02 4F AB + 39 00 00 00 00 00 02 50 AB + 39 00 00 00 00 00 02 51 AB + 39 00 00 00 00 00 02 52 AB + 39 00 00 00 00 00 02 53 AA + 39 00 00 00 00 00 02 54 AA + 39 00 00 00 00 00 02 55 AA + 39 00 00 00 00 00 02 56 AA + 39 00 00 00 00 00 02 57 AA + 39 00 00 00 00 00 02 58 AB + 39 00 00 00 00 00 02 59 AB + 39 00 00 00 00 00 02 5A AC + 39 00 00 00 00 00 02 5B AC + 39 00 00 00 00 00 02 5C AC + 39 00 00 00 00 00 02 5D AD + 39 00 00 00 00 00 02 5E AD + 39 00 00 00 00 00 02 5F AD + 39 00 00 00 00 00 02 60 AD + 39 00 00 00 00 00 02 61 AD + 39 00 00 00 00 00 02 62 AD + 39 00 00 00 00 00 02 63 AD + 39 00 00 00 00 00 02 64 AC + 39 00 00 00 00 00 02 65 AC + 39 00 00 00 00 00 02 66 AC + 39 00 00 00 00 00 02 67 AC + 39 00 00 00 00 00 02 68 AD + 39 00 00 00 00 00 02 69 AD + 39 00 00 00 00 00 02 6A AE + 39 00 00 00 00 00 02 6B AE + 39 00 00 00 00 00 02 6C AE + 39 00 00 00 00 00 02 6D AE + 39 00 00 00 00 00 02 6E AE + 39 00 00 00 00 00 02 6F AE + 39 00 00 00 00 00 02 70 AE + 39 00 00 00 00 00 02 71 AE + 39 00 00 00 00 00 02 72 AE + 39 00 00 00 00 00 02 73 AE + 39 00 00 00 00 00 02 74 AF + 39 00 00 00 00 00 02 75 AF + 39 00 00 00 00 00 02 76 B0 + 39 00 00 00 00 00 02 77 B0 + 39 00 00 00 00 00 02 78 B0 + 39 00 00 00 00 00 02 79 B0 + 39 00 00 00 00 00 02 7A B0 + 39 00 00 00 00 00 02 7B B0 + 39 00 00 00 00 00 02 7C B0 + 39 00 00 00 00 00 02 7D B0 + 39 00 00 00 00 00 02 7E B0 + 39 00 00 00 00 00 02 7F B0 + + + 39 00 00 00 00 00 04 FF 98 81 0A + 39 00 00 00 00 00 02 01 A5 + 39 00 00 00 00 00 02 02 A6 + 39 00 00 00 00 00 02 03 A6 + 39 00 00 00 00 00 02 04 A7 + 39 00 00 00 00 00 02 05 A7 + 39 00 00 00 00 00 02 06 A7 + 39 00 00 00 00 00 02 07 A8 + 39 00 00 00 00 00 02 08 A8 + 39 00 00 00 00 00 02 09 A9 + 39 00 00 00 00 00 02 0A A9 + 39 00 00 00 00 00 02 0B AA + 39 00 00 00 00 00 02 0C AA + 39 00 00 00 00 00 02 0D AB + 39 00 00 00 00 00 02 0E AB + 39 00 00 00 00 00 02 0F AB + 39 00 00 00 00 00 02 10 AC + 39 00 00 00 00 00 02 11 AC + 39 00 00 00 00 00 02 12 AC + 39 00 00 00 00 00 02 13 AD + 39 00 00 00 00 00 02 14 AD + 39 00 00 00 00 00 02 15 AD + 39 00 00 00 00 00 02 16 AE + 39 00 00 00 00 00 02 17 AE + 39 00 00 00 00 00 02 18 AE + 39 00 00 00 00 00 02 19 AE + 39 00 00 00 00 00 02 1A AE + 39 00 00 00 00 00 02 1B AF + 39 00 00 00 00 00 02 1C AF + 39 00 00 00 00 00 02 1D AF + 39 00 00 00 00 00 02 1E B0 + 39 00 00 00 00 00 02 1F B1 + 39 00 00 00 00 00 02 20 B1 + 39 00 00 00 00 00 02 21 B2 + 39 00 00 00 00 00 02 22 B3 + 39 00 00 00 00 00 02 23 B3 + 39 00 00 00 00 00 02 24 B4 + 39 00 00 00 00 00 02 25 B4 + 39 00 00 00 00 00 02 26 B5 + 39 00 00 00 00 00 02 27 B5 + 39 00 00 00 00 00 02 28 B6 + 39 00 00 00 00 00 02 29 B6 + 39 00 00 00 00 00 02 2A B6 + 39 00 00 00 00 00 02 2B B7 + 39 00 00 00 00 00 02 2C B7 + 39 00 00 00 00 00 02 2D B8 + 39 00 00 00 00 00 02 2E B8 + 39 00 00 00 00 00 02 2F B8 + 39 00 00 00 00 00 02 30 B8 + 39 00 00 00 00 00 02 31 B9 + 39 00 00 00 00 00 02 32 BA + 39 00 00 00 00 00 02 33 BA + 39 00 00 00 00 00 02 34 BA + 39 00 00 00 00 00 02 35 BA + 39 00 00 00 00 00 02 36 BA + 39 00 00 00 00 00 02 37 BA + 39 00 00 00 00 00 02 38 BA + 39 00 00 00 00 00 02 39 BA + 39 00 00 00 00 00 02 3A BA + 39 00 00 00 00 00 02 3B BB + 39 00 00 00 00 00 02 3C BB + 39 00 00 00 00 00 02 3D BB + 39 00 00 00 00 00 02 3E BB + 39 00 00 00 00 00 02 3F BC + 39 00 00 00 00 00 02 40 BD + 39 00 00 00 00 00 02 41 BE + 39 00 00 00 00 00 02 42 BE + 39 00 00 00 00 00 02 43 BF + 39 00 00 00 00 00 02 44 C0 + 39 00 00 00 00 00 02 45 C1 + 39 00 00 00 00 00 02 46 C2 + 39 00 00 00 00 00 02 47 C2 + 39 00 00 00 00 00 02 48 C3 + 39 00 00 00 00 00 02 49 C4 + 39 00 00 00 00 00 02 4A C5 + 39 00 00 00 00 00 02 4B C5 + 39 00 00 00 00 00 02 4C C6 + 39 00 00 00 00 00 02 4D C6 + 39 00 00 00 00 00 02 4E C7 + 39 00 00 00 00 00 02 4F C7 + 39 00 00 00 00 00 02 50 C8 + 39 00 00 00 00 00 02 51 C8 + 39 00 00 00 00 00 02 52 C8 + 39 00 00 00 00 00 02 53 C9 + 39 00 00 00 00 00 02 54 C9 + 39 00 00 00 00 00 02 55 C9 + 39 00 00 00 00 00 02 56 CA + 39 00 00 00 00 00 02 57 CA + 39 00 00 00 00 00 02 58 CA + 39 00 00 00 00 00 02 59 CA + 39 00 00 00 00 00 02 5A CA + 39 00 00 00 00 00 02 5B CA + 39 00 00 00 00 00 02 5C CA + 39 00 00 00 00 00 02 5D CA + 39 00 00 00 00 00 02 5E CB + 39 00 00 00 00 00 02 5F CB + 39 00 00 00 00 00 02 60 CC + 39 00 00 00 00 00 02 61 CD + 39 00 00 00 00 00 02 62 CE + 39 00 00 00 00 00 02 63 CE + 39 00 00 00 00 00 02 64 CF + 39 00 00 00 00 00 02 65 D0 + 39 00 00 00 00 00 02 66 D0 + 39 00 00 00 00 00 02 67 D1 + 39 00 00 00 00 00 02 68 D1 + 39 00 00 00 00 00 02 69 D2 + 39 00 00 00 00 00 02 6A D2 + 39 00 00 00 00 00 02 6B D2 + 39 00 00 00 00 00 02 6C D3 + 39 00 00 00 00 00 02 6D D3 + 39 00 00 00 00 00 02 6E D3 + 39 00 00 00 00 00 02 6F D3 + 39 00 00 00 00 00 02 70 D3 + 39 00 00 00 00 00 02 71 D4 + 39 00 00 00 00 00 02 72 D5 + 39 00 00 00 00 00 02 73 D6 + 39 00 00 00 00 00 02 74 D7 + 39 00 00 00 00 00 02 75 D7 + 39 00 00 00 00 00 02 76 D8 + 39 00 00 00 00 00 02 77 D9 + 39 00 00 00 00 00 02 78 D9 + 39 00 00 00 00 00 02 79 DA + 39 00 00 00 00 00 02 7A DA + 39 00 00 00 00 00 02 7B DB + 39 00 00 00 00 00 02 7C DB + 39 00 00 00 00 00 02 7D DB + 39 00 00 00 00 00 02 7E DC + 39 00 00 00 00 00 02 7F DD + + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F 01 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 01 + 39 00 00 00 00 00 02 7F 81 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F 99 + 39 00 00 00 00 00 04 FF 98 81 08 + 39 00 00 00 00 00 02 00 99 + 39 00 00 00 00 00 02 7F B0 + 39 00 00 00 00 00 04 FF 98 81 09 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F A4 + 39 00 00 00 00 00 04 FF 98 81 0A + 39 00 00 00 00 00 02 00 A5 + 39 00 00 00 00 00 02 7F DD + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 80 01 + 39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 21 B0 + 39 00 00 00 00 00 02 32 02 + 39 01 00 00 00 00 04 FF 98 81 00 + 39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 21 B2 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 04 FF 98 81 0A + 39 00 00 00 00 00 02 7F DD + 39 00 00 00 00 00 02 7E DC + 39 00 00 00 00 00 02 7D DB + 39 00 00 00 00 00 02 7C DB + 39 00 00 00 00 00 02 7B DB + 39 00 00 00 00 00 02 7A DA + 39 00 00 00 00 00 02 79 DA + 39 00 00 00 00 00 02 78 D9 + 39 00 00 00 00 00 02 77 D9 + 39 00 00 00 00 00 02 76 D8 + 39 00 00 00 00 00 02 75 D7 + 39 00 00 00 00 00 02 74 D7 + 39 00 00 00 00 00 02 73 D6 + 39 00 00 00 00 00 02 72 D5 + 39 00 00 00 00 00 02 71 D4 + 39 00 00 00 00 00 02 70 D3 + 39 00 00 00 00 00 02 6F D3 + 39 00 00 00 00 00 02 6E D3 + 39 00 00 00 00 00 02 6D D3 + 39 00 00 00 00 00 02 6C D3 + 39 00 00 00 00 00 02 6B D2 + 39 00 00 00 00 00 02 6A D2 + 39 00 00 00 00 00 02 69 D2 + 39 00 00 00 00 00 02 68 D1 + 39 00 00 00 00 00 02 67 D1 + 39 00 00 00 00 00 02 66 D0 + 39 00 00 00 00 00 02 65 D0 + 39 00 00 00 00 00 02 64 CF + 39 00 00 00 00 00 02 63 CE + 39 00 00 00 00 00 02 62 CE + 39 00 00 00 00 00 02 61 CD + 39 00 00 00 00 00 02 60 CC + 39 00 00 00 00 00 02 5F CB + 39 00 00 00 00 00 02 5E CB + 39 00 00 00 00 00 02 5D CA + 39 00 00 00 00 00 02 5C CA + 39 00 00 00 00 00 02 5B CA + 39 00 00 00 00 00 02 5A CA + 39 00 00 00 00 00 02 59 CA + 39 00 00 00 00 00 02 58 CA + 39 00 00 00 00 00 02 57 CA + 39 00 00 00 00 00 02 56 CA + 39 00 00 00 00 00 02 55 C9 + 39 00 00 00 00 00 02 54 C9 + 39 00 00 00 00 00 02 53 C9 + 39 00 00 00 00 00 02 52 C8 + 39 00 00 00 00 00 02 51 C8 + 39 00 00 00 00 00 02 50 C8 + 39 00 00 00 00 00 02 4F C7 + 39 00 00 00 00 00 02 4E C7 + 39 00 00 00 00 00 02 4D C6 + 39 00 00 00 00 00 02 4C C6 + 39 00 00 00 00 00 02 4B C5 + 39 00 00 00 00 00 02 4A C5 + 39 00 00 00 00 00 02 49 C4 + 39 00 00 00 00 00 02 48 C3 + 39 00 00 00 00 00 02 47 C2 + 39 00 00 00 00 00 02 46 C2 + 39 00 00 00 00 00 02 45 C1 + 39 00 00 00 00 00 02 44 C0 + 39 00 00 00 00 00 02 43 BF + 39 00 00 00 00 00 02 42 BE + 39 00 00 00 00 00 02 41 BE + 39 00 00 00 00 00 02 40 BD + 39 00 00 00 00 00 02 3F BC + 39 00 00 00 00 00 02 3E BB + 39 00 00 00 00 00 02 3D BB + 39 00 00 00 00 00 02 3C BB + 39 00 00 00 00 00 02 3B BB + 39 00 00 00 00 00 02 3A BA + 39 00 00 00 00 00 02 39 BA + 39 00 00 00 00 00 02 38 BA + 39 00 00 00 00 00 02 37 BA + 39 00 00 00 00 00 02 36 BA + 39 00 00 00 00 00 02 35 BA + 39 00 00 00 00 00 02 34 BA + 39 00 00 00 00 00 02 33 BA + 39 00 00 00 00 00 02 32 BA + 39 00 00 00 00 00 02 31 B9 + 39 00 00 00 00 00 02 30 B8 + 39 00 00 00 00 00 02 2F B8 + 39 00 00 00 00 00 02 2E B8 + 39 00 00 00 00 00 02 2D B8 + 39 00 00 00 00 00 02 2C B7 + 39 00 00 00 00 00 02 2B B7 + 39 00 00 00 00 00 02 2A B6 + 39 00 00 00 00 00 02 29 B6 + 39 00 00 00 00 00 02 28 B6 + 39 00 00 00 00 00 02 27 B5 + 39 00 00 00 00 00 02 26 B5 + 39 00 00 00 00 00 02 25 B4 + 39 00 00 00 00 00 02 24 B4 + 39 00 00 00 00 00 02 23 B3 + 39 00 00 00 00 00 02 22 B3 + 39 00 00 00 00 00 02 21 B2 + 39 00 00 00 00 00 02 20 B1 + 39 00 00 00 00 00 02 1F B1 + 39 00 00 00 00 00 02 1E B0 + 39 00 00 00 00 00 02 1D AF + 39 00 00 00 00 00 02 1C AF + 39 00 00 00 00 00 02 1B AF + 39 00 00 00 00 00 02 1A AE + 39 00 00 00 00 00 02 19 AE + 39 00 00 00 00 00 02 18 AE + 39 00 00 00 00 00 02 17 AE + 39 00 00 00 00 00 02 16 AE + 39 00 00 00 00 00 02 15 AD + 39 00 00 00 00 00 02 14 AD + 39 00 00 00 00 00 02 13 AD + 39 00 00 00 00 00 02 12 AC + 39 00 00 00 00 00 02 11 AC + 39 00 00 00 00 00 02 10 AC + 39 00 00 00 00 00 02 0F AB + 39 00 00 00 00 00 02 0E AB + 39 00 00 00 00 00 02 0D AB + 39 00 00 00 00 00 02 0C AA + 39 00 00 00 00 00 02 0B AA + 39 00 00 00 00 00 02 0A A9 + 39 00 00 00 00 00 02 09 A9 + 39 00 00 00 00 00 02 08 A8 + 39 00 00 00 00 00 02 07 A8 + 39 00 00 00 00 00 02 06 A7 + 39 00 00 00 00 00 02 05 A7 + 39 00 00 00 00 00 02 04 A7 + 39 00 00 00 00 00 02 03 A6 + 39 00 00 00 00 00 02 02 A6 + 39 00 00 00 00 00 02 01 A5 + + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 7F 81 + 39 00 00 00 00 00 02 7E 83 + 39 00 00 00 00 00 02 7D 83 + 39 00 00 00 00 00 02 7C 82 + 39 00 00 00 00 00 02 7B 81 + 39 00 00 00 00 00 02 7A 82 + 39 00 00 00 00 00 02 79 82 + 39 00 00 00 00 00 02 78 82 + 39 00 00 00 00 00 02 77 82 + 39 00 00 00 00 00 02 76 82 + 39 00 00 00 00 00 02 75 83 + 39 00 00 00 00 00 02 74 83 + 39 00 00 00 00 00 02 73 83 + 39 00 00 00 00 00 02 72 83 + 39 00 00 00 00 00 02 71 83 + 39 00 00 00 00 00 02 70 83 + 39 00 00 00 00 00 02 6F 83 + 39 00 00 00 00 00 02 6E 84 + 39 00 00 00 00 00 02 6D 84 + 39 00 00 00 00 00 02 6C 84 + 39 00 00 00 00 00 02 6B 84 + 39 00 00 00 00 00 02 6A 83 + 39 00 00 00 00 00 02 69 83 + 39 00 00 00 00 00 02 68 82 + 39 00 00 00 00 00 02 67 82 + 39 00 00 00 00 00 02 66 83 + 39 00 00 00 00 00 02 65 83 + 39 00 00 00 00 00 02 64 84 + 39 00 00 00 00 00 02 63 84 + 39 00 00 00 00 00 02 62 84 + 39 00 00 00 00 00 02 61 84 + 39 00 00 00 00 00 02 60 84 + 39 00 00 00 00 00 02 5F 84 + 39 00 00 00 00 00 02 5E 83 + 39 00 00 00 00 00 02 5D 83 + 39 00 00 00 00 00 02 5C 83 + 39 00 00 00 00 00 02 5B 83 + 39 00 00 00 00 00 02 5A 83 + 39 00 00 00 00 00 02 59 84 + 39 00 00 00 00 00 02 58 84 + 39 00 00 00 00 00 02 57 84 + 39 00 00 00 00 00 02 56 85 + 39 00 00 00 00 00 02 55 85 + 39 00 00 00 00 00 02 54 85 + 39 00 00 00 00 00 02 53 85 + 39 00 00 00 00 00 02 52 85 + 39 00 00 00 00 00 02 51 84 + 39 00 00 00 00 00 02 50 84 + 39 00 00 00 00 00 02 4F 84 + 39 00 00 00 00 00 02 4E 84 + 39 00 00 00 00 00 02 4D 83 + 39 00 00 00 00 00 02 4C 83 + 39 00 00 00 00 00 02 4B 83 + 39 00 00 00 00 00 02 4A 84 + 39 00 00 00 00 00 02 49 84 + 39 00 00 00 00 00 02 48 85 + 39 00 00 00 00 00 02 47 85 + 39 00 00 00 00 00 02 46 85 + 39 00 00 00 00 00 02 45 86 + 39 00 00 00 00 00 02 44 86 + 39 00 00 00 00 00 02 43 86 + 39 00 00 00 00 00 02 42 86 + 39 00 00 00 00 00 02 41 86 + 39 00 00 00 00 00 02 40 86 + 39 00 00 00 00 00 02 3F 86 + 39 00 00 00 00 00 02 3E 86 + 39 00 00 00 00 00 02 3D 86 + 39 00 00 00 00 00 02 3C 86 + 39 00 00 00 00 00 02 3B 85 + 39 00 00 00 00 00 02 3A 85 + 39 00 00 00 00 00 02 39 85 + 39 00 00 00 00 00 02 38 84 + 39 00 00 00 00 00 02 37 84 + 39 00 00 00 00 00 02 36 84 + 39 00 00 00 00 00 02 35 83 + 39 00 00 00 00 00 02 34 83 + 39 00 00 00 00 00 02 33 82 + 39 00 00 00 00 00 02 32 82 + 39 00 00 00 00 00 02 31 81 + 39 00 00 00 00 00 02 30 00 + 39 00 00 00 00 00 02 2F 00 + 39 00 00 00 00 00 02 2E 00 + 39 00 00 00 00 00 02 2D 81 + 39 00 00 00 00 00 02 2C 81 + 39 00 00 00 00 00 02 2B 81 + 39 00 00 00 00 00 02 2A 81 + 39 00 00 00 00 00 02 29 81 + 39 00 00 00 00 00 02 28 82 + 39 00 00 00 00 00 02 27 82 + 39 00 00 00 00 00 02 26 83 + 39 00 00 00 00 00 02 25 83 + 39 00 00 00 00 00 02 24 83 + 39 00 00 00 00 00 02 23 82 + 39 00 00 00 00 00 02 22 82 + 39 00 00 00 00 00 02 21 83 + 39 00 00 00 00 00 02 20 83 + 39 00 00 00 00 00 02 1F 83 + 39 00 00 00 00 00 02 1E 82 + 39 00 00 00 00 00 02 1D 82 + 39 00 00 00 00 00 02 1C 82 + 39 00 00 00 00 00 02 1B 82 + 39 00 00 00 00 00 02 1A 82 + 39 00 00 00 00 00 02 19 82 + 39 00 00 00 00 00 02 18 82 + 39 00 00 00 00 00 02 17 81 + 39 00 00 00 00 00 02 16 81 + 39 00 00 00 00 00 02 15 81 + 39 00 00 00 00 00 02 14 81 + 39 00 00 00 00 00 02 13 00 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 11 01 + 39 00 00 00 00 00 02 10 01 + 39 00 00 00 00 00 02 0F 01 + 39 00 00 00 00 00 02 0E 01 + 39 00 00 00 00 00 02 0D 00 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0B 00 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 09 00 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 07 00 + 39 00 00 00 00 00 02 06 01 + 39 00 00 00 00 00 02 05 01 + 39 00 00 00 00 00 02 04 01 + 39 00 00 00 00 00 02 03 01 + 39 00 00 00 00 00 02 02 01 + 39 00 00 00 00 00 02 01 01 + + 39 00 00 00 00 00 04 FF 98 81 08 + 39 00 00 00 00 00 02 7F B0 + 39 00 00 00 00 00 02 7E B0 + 39 00 00 00 00 00 02 7D B0 + 39 00 00 00 00 00 02 7C B0 + 39 00 00 00 00 00 02 7B B0 + 39 00 00 00 00 00 02 7A B0 + 39 00 00 00 00 00 02 79 B0 + 39 00 00 00 00 00 02 78 B0 + 39 00 00 00 00 00 02 77 B0 + 39 00 00 00 00 00 02 76 B0 + 39 00 00 00 00 00 02 75 AF + 39 00 00 00 00 00 02 74 AF + 39 00 00 00 00 00 02 73 AE + 39 00 00 00 00 00 02 72 AE + 39 00 00 00 00 00 02 71 AE + 39 00 00 00 00 00 02 70 AE + 39 00 00 00 00 00 02 6F AE + 39 00 00 00 00 00 02 6E AE + 39 00 00 00 00 00 02 6D AE + 39 00 00 00 00 00 02 6C AE + 39 00 00 00 00 00 02 6B AE + 39 00 00 00 00 00 02 6A AE + 39 00 00 00 00 00 02 69 AD + 39 00 00 00 00 00 02 68 AD + 39 00 00 00 00 00 02 67 AC + 39 00 00 00 00 00 02 66 AC + 39 00 00 00 00 00 02 65 AC + 39 00 00 00 00 00 02 64 AC + 39 00 00 00 00 00 02 63 AD + 39 00 00 00 00 00 02 62 AD + 39 00 00 00 00 00 02 61 AD + 39 00 00 00 00 00 02 60 AD + 39 00 00 00 00 00 02 5F AD + 39 00 00 00 00 00 02 5E AD + 39 00 00 00 00 00 02 5D AD + 39 00 00 00 00 00 02 5C AC + 39 00 00 00 00 00 02 5B AC + 39 00 00 00 00 00 02 5A AC + 39 00 00 00 00 00 02 59 AB + 39 00 00 00 00 00 02 58 AB + 39 00 00 00 00 00 02 57 AA + 39 00 00 00 00 00 02 56 AA + 39 00 00 00 00 00 02 55 AA + 39 00 00 00 00 00 02 54 AA + 39 00 00 00 00 00 02 53 AA + 39 00 00 00 00 00 02 52 AB + 39 00 00 00 00 00 02 51 AB + 39 00 00 00 00 00 02 50 AB + 39 00 00 00 00 00 02 4F AB + 39 00 00 00 00 00 02 4E AB + 39 00 00 00 00 00 02 4D AB + 39 00 00 00 00 00 02 4C AB + 39 00 00 00 00 00 02 4B AB + 39 00 00 00 00 00 02 4A AB + 39 00 00 00 00 00 02 49 AB + 39 00 00 00 00 00 02 48 AB + 39 00 00 00 00 00 02 47 AB + 39 00 00 00 00 00 02 46 AA + 39 00 00 00 00 00 02 45 AA + 39 00 00 00 00 00 02 44 AA + 39 00 00 00 00 00 02 43 A9 + 39 00 00 00 00 00 02 42 A9 + 39 00 00 00 00 00 02 41 A8 + 39 00 00 00 00 00 02 40 A8 + 39 00 00 00 00 00 02 3F A7 + 39 00 00 00 00 00 02 3E A7 + 39 00 00 00 00 00 02 3D A6 + 39 00 00 00 00 00 02 3C A6 + 39 00 00 00 00 00 02 3B A5 + 39 00 00 00 00 00 02 3A A4 + 39 00 00 00 00 00 02 39 A4 + 39 00 00 00 00 00 02 38 A3 + 39 00 00 00 00 00 02 37 A3 + 39 00 00 00 00 00 02 36 A3 + 39 00 00 00 00 00 02 35 A3 + 39 00 00 00 00 00 02 34 A3 + 39 00 00 00 00 00 02 33 A4 + 39 00 00 00 00 00 02 32 A4 + 39 00 00 00 00 00 02 31 A3 + 39 00 00 00 00 00 02 30 A4 + 39 00 00 00 00 00 02 2F A4 + 39 00 00 00 00 00 02 2E A5 + 39 00 00 00 00 00 02 2D A4 + 39 00 00 00 00 00 02 2C A4 + 39 00 00 00 00 00 02 2B A4 + 39 00 00 00 00 00 02 2A A4 + 39 00 00 00 00 00 02 29 A3 + 39 00 00 00 00 00 02 28 A3 + 39 00 00 00 00 00 02 27 A3 + 39 00 00 00 00 00 02 26 A3 + 39 00 00 00 00 00 02 25 A3 + 39 00 00 00 00 00 02 24 A3 + 39 00 00 00 00 00 02 23 A2 + 39 00 00 00 00 00 02 22 A2 + 39 00 00 00 00 00 02 21 A2 + 39 00 00 00 00 00 02 20 A1 + 39 00 00 00 00 00 02 1F A1 + 39 00 00 00 00 00 02 1E A1 + 39 00 00 00 00 00 02 1D A0 + 39 00 00 00 00 00 02 1C A0 + 39 00 00 00 00 00 02 1B 9F + 39 00 00 00 00 00 02 1A 9F + 39 00 00 00 00 00 02 19 9E + 39 00 00 00 00 00 02 18 9E + 39 00 00 00 00 00 02 17 9E + 39 00 00 00 00 00 02 16 9E + 39 00 00 00 00 00 02 15 9E + 39 00 00 00 00 00 02 14 9E + 39 00 00 00 00 00 02 13 9E + 39 00 00 00 00 00 02 12 9E + 39 00 00 00 00 00 02 11 9E + 39 00 00 00 00 00 02 10 9D + 39 00 00 00 00 00 02 0F 9D + 39 00 00 00 00 00 02 0E 9D + 39 00 00 00 00 00 02 0D 9D + 39 00 00 00 00 00 02 0C 9D + 39 00 00 00 00 00 02 0B 9C + 39 00 00 00 00 00 02 0A 9C + 39 00 00 00 00 00 02 09 9C + 39 00 00 00 00 00 02 08 9C + 39 00 00 00 00 00 02 07 9C + 39 00 00 00 00 00 02 06 9B + 39 00 00 00 00 00 02 05 9B + 39 00 00 00 00 00 02 04 9B + 39 00 00 00 00 00 02 03 9A + 39 00 00 00 00 00 02 02 9A + 39 00 00 00 00 00 02 01 9A + + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F 01 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 01 + 39 00 00 00 00 00 02 7F 81 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F 99 + 39 00 00 00 00 00 04 FF 98 81 08 + 39 00 00 00 00 00 02 00 99 + 39 00 00 00 00 00 02 7F B0 + 39 00 00 00 00 00 04 FF 98 81 09 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F A4 + 39 00 00 00 00 00 04 FF 98 81 0A + 39 00 00 00 00 00 02 00 A5 + 39 00 00 00 00 00 02 7F DD + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 80 01 + 39 01 00 00 00 00 04 FF 98 81 00 + + 39 00 00 00 00 00 04 FF 98 81 09 + 39 00 00 00 00 00 02 7F A4 + 39 00 00 00 00 00 02 7E A3 + 39 00 00 00 00 00 02 7D A3 + 39 00 00 00 00 00 02 7C A2 + 39 00 00 00 00 00 02 7B A1 + 39 00 00 00 00 00 02 7A A1 + 39 00 00 00 00 00 02 79 A1 + 39 00 00 00 00 00 02 78 A1 + 39 00 00 00 00 00 02 77 A0 + 39 00 00 00 00 00 02 76 A0 + 39 00 00 00 00 00 02 75 9F + 39 00 00 00 00 00 02 74 9F + 39 00 00 00 00 00 02 73 9F + 39 00 00 00 00 00 02 72 9F + 39 00 00 00 00 00 02 71 9E + 39 00 00 00 00 00 02 70 9E + 39 00 00 00 00 00 02 6F 9E + 39 00 00 00 00 00 02 6E 9D + 39 00 00 00 00 00 02 6D 9D + 39 00 00 00 00 00 02 6C 9D + 39 00 00 00 00 00 02 6B 9D + 39 00 00 00 00 00 02 6A 9C + 39 00 00 00 00 00 02 69 9C + 39 00 00 00 00 00 02 68 9C + 39 00 00 00 00 00 02 67 9C + 39 00 00 00 00 00 02 66 9B + 39 00 00 00 00 00 02 65 9B + 39 00 00 00 00 00 02 64 9B + 39 00 00 00 00 00 02 63 9B + 39 00 00 00 00 00 02 62 9B + 39 00 00 00 00 00 02 61 9B + 39 00 00 00 00 00 02 60 9A + 39 00 00 00 00 00 02 5F 9A + 39 00 00 00 00 00 02 5E 9A + 39 00 00 00 00 00 02 5D 9A + 39 00 00 00 00 00 02 5C 9A + 39 00 00 00 00 00 02 5B 9A + 39 00 00 00 00 00 02 5A 9A + 39 00 00 00 00 00 02 59 9A + 39 00 00 00 00 00 02 58 9A + 39 00 00 00 00 00 02 57 99 + 39 00 00 00 00 00 02 56 99 + 39 00 00 00 00 00 02 55 98 + 39 00 00 00 00 00 02 54 97 + 39 00 00 00 00 00 02 53 97 + 39 00 00 00 00 00 02 52 96 + 39 00 00 00 00 00 02 51 96 + 39 00 00 00 00 00 02 50 95 + 39 00 00 00 00 00 02 4F 94 + 39 00 00 00 00 00 02 4E 94 + 39 00 00 00 00 00 02 4D 93 + 39 00 00 00 00 00 02 4C 93 + 39 00 00 00 00 00 02 4B 92 + 39 00 00 00 00 00 02 4A 92 + 39 00 00 00 00 00 02 49 91 + 39 00 00 00 00 00 02 48 91 + 39 00 00 00 00 00 02 47 91 + 39 00 00 00 00 00 02 46 90 + 39 00 00 00 00 00 02 45 90 + 39 00 00 00 00 00 02 44 90 + 39 00 00 00 00 00 02 43 90 + 39 00 00 00 00 00 02 42 8F + 39 00 00 00 00 00 02 41 8F + 39 00 00 00 00 00 02 40 8F + 39 00 00 00 00 00 02 3F 8E + 39 00 00 00 00 00 02 3E 8E + 39 00 00 00 00 00 02 3D 8D + 39 00 00 00 00 00 02 3C 8E + 39 00 00 00 00 00 02 3B 8F + 39 00 00 00 00 00 02 3A 8F + 39 00 00 00 00 00 02 39 8F + 39 00 00 00 00 00 02 38 8F + 39 00 00 00 00 00 02 37 8F + 39 00 00 00 00 00 02 36 8E + 39 00 00 00 00 00 02 35 8D + 39 00 00 00 00 00 02 34 8C + 39 00 00 00 00 00 02 33 8C + 39 00 00 00 00 00 02 32 8B + 39 00 00 00 00 00 02 31 8B + 39 00 00 00 00 00 02 30 8A + 39 00 00 00 00 00 02 2F 8A + 39 00 00 00 00 00 02 2E 8A + 39 00 00 00 00 00 02 2D 89 + 39 00 00 00 00 00 02 2C 89 + 39 00 00 00 00 00 02 2B 88 + 39 00 00 00 00 00 02 2A 87 + 39 00 00 00 00 00 02 29 87 + 39 00 00 00 00 00 02 28 87 + 39 00 00 00 00 00 02 27 89 + 39 00 00 00 00 00 02 26 8A + 39 00 00 00 00 00 02 25 89 + 39 00 00 00 00 00 02 24 89 + 39 00 00 00 00 00 02 23 88 + 39 00 00 00 00 00 02 22 88 + 39 00 00 00 00 00 02 21 87 + 39 00 00 00 00 00 02 20 87 + 39 00 00 00 00 00 02 1F 87 + 39 00 00 00 00 00 02 1E 87 + 39 00 00 00 00 00 02 1D 87 + 39 00 00 00 00 00 02 1C 87 + 39 00 00 00 00 00 02 1B 87 + 39 00 00 00 00 00 02 1A 87 + 39 00 00 00 00 00 02 19 87 + 39 00 00 00 00 00 02 18 87 + 39 00 00 00 00 00 02 17 87 + 39 00 00 00 00 00 02 16 86 + 39 00 00 00 00 00 02 15 85 + 39 00 00 00 00 00 02 14 85 + 39 00 00 00 00 00 02 13 85 + 39 00 00 00 00 00 02 12 85 + 39 00 00 00 00 00 02 11 85 + 39 00 00 00 00 00 02 10 84 + 39 00 00 00 00 00 02 0F 84 + 39 00 00 00 00 00 02 0E 84 + 39 00 00 00 00 00 02 0D 84 + 39 00 00 00 00 00 02 0C 83 + 39 00 00 00 00 00 02 0B 83 + 39 00 00 00 00 00 02 0A 82 + 39 00 00 00 00 00 02 09 82 + 39 00 00 00 00 00 02 08 82 + 39 00 00 00 00 00 02 07 82 + 39 00 00 00 00 00 02 06 81 + 39 00 00 00 00 00 02 05 81 + 39 00 00 00 00 00 02 04 82 + 39 00 00 00 00 00 02 03 83 + 39 00 00 00 00 00 02 02 84 + 39 00 00 00 00 00 02 01 83 + + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 7F 01 + 39 00 00 00 00 00 02 7E 02 + 39 00 00 00 00 00 02 7D 02 + 39 00 00 00 00 00 02 7C 02 + 39 00 00 00 00 00 02 7B 02 + 39 00 00 00 00 00 02 7A 02 + 39 00 00 00 00 00 02 79 02 + 39 00 00 00 00 00 02 78 03 + 39 00 00 00 00 00 02 77 03 + 39 00 00 00 00 00 02 76 03 + 39 00 00 00 00 00 02 75 04 + 39 00 00 00 00 00 02 74 04 + 39 00 00 00 00 00 02 73 04 + 39 00 00 00 00 00 02 72 05 + 39 00 00 00 00 00 02 71 05 + 39 00 00 00 00 00 02 70 05 + 39 00 00 00 00 00 02 6F 05 + 39 00 00 00 00 00 02 6E 05 + 39 00 00 00 00 00 02 6D 05 + 39 00 00 00 00 00 02 6C 05 + 39 00 00 00 00 00 02 6B 05 + 39 00 00 00 00 00 02 6A 05 + 39 00 00 00 00 00 02 69 05 + 39 00 00 00 00 00 02 68 05 + 39 00 00 00 00 00 02 67 05 + 39 00 00 00 00 00 02 66 06 + 39 00 00 00 00 00 02 65 05 + 39 00 00 00 00 00 02 64 05 + 39 00 00 00 00 00 02 63 05 + 39 00 00 00 00 00 02 62 05 + 39 00 00 00 00 00 02 61 05 + 39 00 00 00 00 00 02 60 05 + 39 00 00 00 00 00 02 5F 05 + 39 00 00 00 00 00 02 5E 05 + 39 00 00 00 00 00 02 5D 05 + 39 00 00 00 00 00 02 5C 05 + 39 00 00 00 00 00 02 5B 05 + 39 00 00 00 00 00 02 5A 05 + 39 00 00 00 00 00 02 59 05 + 39 00 00 00 00 00 02 58 05 + 39 00 00 00 00 00 02 57 05 + 39 00 00 00 00 00 02 56 05 + 39 00 00 00 00 00 02 55 04 + 39 00 00 00 00 00 02 54 04 + 39 00 00 00 00 00 02 53 04 + 39 00 00 00 00 00 02 52 04 + 39 00 00 00 00 00 02 51 03 + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 4F 04 + 39 00 00 00 00 00 02 4E 04 + 39 00 00 00 00 00 02 4D 05 + 39 00 00 00 00 00 02 4C 05 + 39 00 00 00 00 00 02 4B 05 + 39 00 00 00 00 00 02 4A 06 + 39 00 00 00 00 00 02 49 06 + 39 00 00 00 00 00 02 48 06 + 39 00 00 00 00 00 02 47 07 + 39 00 00 00 00 00 02 46 07 + 39 00 00 00 00 00 02 45 07 + 39 00 00 00 00 00 02 44 07 + 39 00 00 00 00 00 02 43 07 + 39 00 00 00 00 00 02 42 07 + 39 00 00 00 00 00 02 41 08 + 39 00 00 00 00 00 02 40 08 + 39 00 00 00 00 00 02 3F 08 + 39 00 00 00 00 00 02 3E 08 + 39 00 00 00 00 00 02 3D 07 + 39 00 00 00 00 00 02 3C 07 + 39 00 00 00 00 00 02 3B 07 + 39 00 00 00 00 00 02 3A 08 + 39 00 00 00 00 00 02 39 08 + 39 00 00 00 00 00 02 38 08 + 39 00 00 00 00 00 02 37 08 + 39 00 00 00 00 00 02 36 06 + 39 00 00 00 00 00 02 35 05 + 39 00 00 00 00 00 02 34 05 + 39 00 00 00 00 00 02 33 05 + 39 00 00 00 00 00 02 32 05 + 39 00 00 00 00 00 02 31 06 + 39 00 00 00 00 00 02 30 06 + 39 00 00 00 00 00 02 2F 06 + 39 00 00 00 00 00 02 2E 07 + 39 00 00 00 00 00 02 2D 07 + 39 00 00 00 00 00 02 2C 07 + 39 00 00 00 00 00 02 2B 07 + 39 00 00 00 00 00 02 2A 07 + 39 00 00 00 00 00 02 29 07 + 39 00 00 00 00 00 02 28 08 + 39 00 00 00 00 00 02 27 08 + 39 00 00 00 00 00 02 26 09 + 39 00 00 00 00 00 02 25 09 + 39 00 00 00 00 00 02 24 07 + 39 00 00 00 00 00 02 23 05 + 39 00 00 00 00 00 02 22 05 + 39 00 00 00 00 00 02 21 05 + 39 00 00 00 00 00 02 20 05 + 39 00 00 00 00 00 02 1F 06 + 39 00 00 00 00 00 02 1E 06 + 39 00 00 00 00 00 02 1D 06 + 39 00 00 00 00 00 02 1C 05 + 39 00 00 00 00 00 02 1B 05 + 39 00 00 00 00 00 02 1A 05 + 39 00 00 00 00 00 02 19 04 + 39 00 00 00 00 00 02 18 04 + 39 00 00 00 00 00 02 17 04 + 39 00 00 00 00 00 02 16 04 + 39 00 00 00 00 00 02 15 04 + 39 00 00 00 00 00 02 14 04 + 39 00 00 00 00 00 02 13 04 + 39 00 00 00 00 00 02 12 04 + 39 00 00 00 00 00 02 11 04 + 39 00 00 00 00 00 02 10 04 + 39 00 00 00 00 00 02 0F 03 + 39 00 00 00 00 00 02 0E 04 + 39 00 00 00 00 00 02 0D 04 + 39 00 00 00 00 00 02 0C 04 + 39 00 00 00 00 00 02 0B 03 + 39 00 00 00 00 00 02 0A 04 + 39 00 00 00 00 00 02 09 04 + 39 00 00 00 00 00 02 08 04 + 39 00 00 00 00 00 02 07 03 + 39 00 00 00 00 00 02 06 03 + 39 00 00 00 00 00 02 05 04 + 39 00 00 00 00 00 02 04 03 + 39 00 00 00 00 00 02 03 01 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 01 82 + + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 D3 39 + 39 00 00 00 00 00 02 D2 67 + 39 00 00 00 00 00 02 D1 58 + 39 00 00 00 00 00 02 D0 29 + 39 00 00 00 00 00 02 CF 24 + 39 00 00 00 00 00 02 CE 50 + 39 00 00 00 00 00 02 CD 1C + 39 00 00 00 00 00 02 CC 1D + 39 00 00 00 00 00 02 CB 8F + 39 00 00 00 00 00 02 CA 2A + 39 00 00 00 00 00 02 C9 1D + 39 00 00 00 00 00 02 C8 9D + 39 00 00 00 00 00 02 C7 1F + 39 00 00 00 00 00 02 C6 1D + 39 00 00 00 00 00 02 C5 29 + 39 00 00 00 00 00 02 C4 16 + 39 00 00 00 00 00 02 C3 13 + 39 00 00 00 00 00 02 C2 2D + 39 00 00 00 00 00 02 C1 1D + 39 00 00 00 00 00 02 C0 00 + + 39 00 00 00 00 00 02 B3 39 + 39 00 00 00 00 00 02 B2 68 + 39 00 00 00 00 00 02 B1 59 + 39 00 00 00 00 00 02 B0 28 + 39 00 00 00 00 00 02 AF 23 + 39 00 00 00 00 00 02 AE 4F + 39 00 00 00 00 00 02 AD 1C + 39 00 00 00 00 00 02 AC 1D + 39 00 00 00 00 00 02 AB 90 + 39 00 00 00 00 00 02 AA 2A + 39 00 00 00 00 00 02 A9 1D + 39 00 00 00 00 00 02 A8 9E + 39 00 00 00 00 00 02 A7 1E + 39 00 00 00 00 00 02 A6 1D + 39 00 00 00 00 00 02 A5 29 + 39 00 00 00 00 00 02 A4 15 + 39 00 00 00 00 00 02 A3 12 + 39 00 00 00 00 00 02 A2 2E + 39 00 00 00 00 00 02 A1 1E + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 f6 00 + + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 7F 99 + 39 00 00 00 00 00 02 7E 99 + 39 00 00 00 00 00 02 7D 98 + 39 00 00 00 00 00 02 7C 98 + 39 00 00 00 00 00 02 7B 97 + 39 00 00 00 00 00 02 7A 97 + 39 00 00 00 00 00 02 79 96 + 39 00 00 00 00 00 02 78 96 + 39 00 00 00 00 00 02 77 95 + 39 00 00 00 00 00 02 76 95 + 39 00 00 00 00 00 02 75 95 + 39 00 00 00 00 00 02 74 95 + 39 00 00 00 00 00 02 73 94 + 39 00 00 00 00 00 02 72 94 + 39 00 00 00 00 00 02 71 94 + 39 00 00 00 00 00 02 70 94 + 39 00 00 00 00 00 02 6F 94 + 39 00 00 00 00 00 02 6E 94 + 39 00 00 00 00 00 02 6D 94 + 39 00 00 00 00 00 02 6C 94 + 39 00 00 00 00 00 02 6B 93 + 39 00 00 00 00 00 02 6A 94 + 39 00 00 00 00 00 02 69 93 + 39 00 00 00 00 00 02 68 93 + 39 00 00 00 00 00 02 67 93 + 39 00 00 00 00 00 02 66 93 + 39 00 00 00 00 00 02 65 93 + 39 00 00 00 00 00 02 64 92 + 39 00 00 00 00 00 02 63 92 + 39 00 00 00 00 00 02 62 92 + 39 00 00 00 00 00 02 61 92 + 39 00 00 00 00 00 02 60 92 + 39 00 00 00 00 00 02 5F 92 + 39 00 00 00 00 00 02 5E 92 + 39 00 00 00 00 00 02 5D 92 + 39 00 00 00 00 00 02 5C 92 + 39 00 00 00 00 00 02 5B 92 + 39 00 00 00 00 00 02 5A 92 + 39 00 00 00 00 00 02 59 92 + 39 00 00 00 00 00 02 58 92 + 39 00 00 00 00 00 02 57 92 + 39 00 00 00 00 00 02 56 92 + 39 00 00 00 00 00 02 55 92 + 39 00 00 00 00 00 02 54 91 + 39 00 00 00 00 00 02 53 91 + 39 00 00 00 00 00 02 52 90 + 39 00 00 00 00 00 02 51 90 + 39 00 00 00 00 00 02 50 90 + 39 00 00 00 00 00 02 4F 8F + 39 00 00 00 00 00 02 4E 8E + 39 00 00 00 00 00 02 4D 8E + 39 00 00 00 00 00 02 4C 8D + 39 00 00 00 00 00 02 4B 8D + 39 00 00 00 00 00 02 4A 8C + 39 00 00 00 00 00 02 49 8C + 39 00 00 00 00 00 02 48 8C + 39 00 00 00 00 00 02 47 8B + 39 00 00 00 00 00 02 46 8B + 39 00 00 00 00 00 02 45 8B + 39 00 00 00 00 00 02 44 8A + 39 00 00 00 00 00 02 43 8A + 39 00 00 00 00 00 02 42 8A + 39 00 00 00 00 00 02 41 8A + 39 00 00 00 00 00 02 40 8A + 39 00 00 00 00 00 02 3F 8A + 39 00 00 00 00 00 02 3E 89 + 39 00 00 00 00 00 02 3D 89 + 39 00 00 00 00 00 02 3C 89 + 39 00 00 00 00 00 02 3B 89 + 39 00 00 00 00 00 02 3A 8A + 39 00 00 00 00 00 02 39 8B + 39 00 00 00 00 00 02 38 8B + 39 00 00 00 00 00 02 37 8B + 39 00 00 00 00 00 02 36 8A + 39 00 00 00 00 00 02 35 8A + 39 00 00 00 00 00 02 34 89 + 39 00 00 00 00 00 02 33 88 + 39 00 00 00 00 00 02 32 88 + 39 00 00 00 00 00 02 31 88 + 39 00 00 00 00 00 02 30 87 + 39 00 00 00 00 00 02 2F 87 + 39 00 00 00 00 00 02 2E 86 + 39 00 00 00 00 00 02 2D 86 + 39 00 00 00 00 00 02 2C 86 + 39 00 00 00 00 00 02 2B 85 + 39 00 00 00 00 00 02 2A 84 + 39 00 00 00 00 00 02 29 84 + 39 00 00 00 00 00 02 28 83 + 39 00 00 00 00 00 02 27 85 + 39 00 00 00 00 00 02 26 87 + 39 00 00 00 00 00 02 25 87 + 39 00 00 00 00 00 02 24 86 + 39 00 00 00 00 00 02 23 86 + 39 00 00 00 00 00 02 22 85 + 39 00 00 00 00 00 02 21 85 + 39 00 00 00 00 00 02 20 85 + 39 00 00 00 00 00 02 1F 85 + 39 00 00 00 00 00 02 1E 85 + 39 00 00 00 00 00 02 1D 85 + 39 00 00 00 00 00 02 1C 85 + 39 00 00 00 00 00 02 1B 85 + 39 00 00 00 00 00 02 1A 85 + 39 00 00 00 00 00 02 19 85 + 39 00 00 00 00 00 02 18 85 + 39 00 00 00 00 00 02 17 85 + 39 00 00 00 00 00 02 16 84 + 39 00 00 00 00 00 02 15 84 + 39 00 00 00 00 00 02 14 84 + 39 00 00 00 00 00 02 13 84 + 39 00 00 00 00 00 02 12 84 + 39 00 00 00 00 00 02 11 84 + 39 00 00 00 00 00 02 10 83 + 39 00 00 00 00 00 02 0F 83 + 39 00 00 00 00 00 02 0E 83 + 39 00 00 00 00 00 02 0D 83 + 39 00 00 00 00 00 02 0C 82 + 39 00 00 00 00 00 02 0B 82 + 39 00 00 00 00 00 02 0A 82 + 39 00 00 00 00 00 02 09 82 + 39 00 00 00 00 00 02 08 81 + 39 00 00 00 00 00 02 07 81 + 39 00 00 00 00 00 02 06 81 + 39 00 00 00 00 00 02 05 81 + 39 00 00 00 00 00 02 04 82 + 39 00 00 00 00 00 02 03 82 + 39 00 00 00 00 00 02 02 83 + 39 00 00 00 00 00 02 01 83 + + + 39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 21 B0 + 39 00 00 00 00 00 02 32 02 + 39 01 00 00 00 00 04 FF 98 81 00 + + ]; + + + qcom,mdss-dsi-panel-eye-command02 = [39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 21 B2 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 f6 00 + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 A1 1E + 39 00 00 00 00 00 02 A2 2E + 39 00 00 00 00 00 02 A3 12 + 39 00 00 00 00 00 02 A4 15 + 39 00 00 00 00 00 02 A5 29 + 39 00 00 00 00 00 02 A6 1D + 39 00 00 00 00 00 02 A7 1E + 39 00 00 00 00 00 02 A8 9E + 39 00 00 00 00 00 02 A9 1D + 39 00 00 00 00 00 02 AA 2A + 39 00 00 00 00 00 02 AB 90 + 39 00 00 00 00 00 02 AC 1D + 39 00 00 00 00 00 02 AD 1C + 39 00 00 00 00 00 02 AE 4F + 39 00 00 00 00 00 02 AF 23 + 39 00 00 00 00 00 02 B0 28 + 39 00 00 00 00 00 02 B1 59 + 39 00 00 00 00 00 02 B2 68 + 39 00 00 00 00 00 02 B3 39 + + 39 00 00 00 00 00 02 C0 00 + 39 00 00 00 00 00 02 C1 1D + 39 00 00 00 00 00 02 C2 2D + 39 00 00 00 00 00 02 C3 13 + 39 00 00 00 00 00 02 C4 16 + 39 00 00 00 00 00 02 C5 29 + 39 00 00 00 00 00 02 C6 1D + 39 00 00 00 00 00 02 C7 1F + 39 00 00 00 00 00 02 C8 9D + 39 00 00 00 00 00 02 C9 1D + 39 00 00 00 00 00 02 CA 2A + 39 00 00 00 00 00 02 CB 8F + 39 00 00 00 00 00 02 CC 1D + 39 00 00 00 00 00 02 CD 1C + 39 00 00 00 00 00 02 CE 50 + 39 00 00 00 00 00 02 CF 24 + 39 00 00 00 00 00 02 D0 29 + 39 00 00 00 00 00 02 D1 58 + 39 00 00 00 00 00 02 D2 67 + 39 00 00 00 00 00 02 D3 39 + + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 01 82 + 39 00 00 00 00 00 02 02 81 + 39 00 00 00 00 00 02 03 01 + 39 00 00 00 00 00 02 04 03 + 39 00 00 00 00 00 02 05 04 + 39 00 00 00 00 00 02 06 03 + 39 00 00 00 00 00 02 07 03 + 39 00 00 00 00 00 02 08 04 + 39 00 00 00 00 00 02 09 04 + 39 00 00 00 00 00 02 0A 04 + 39 00 00 00 00 00 02 0B 03 + 39 00 00 00 00 00 02 0C 03 + 39 00 00 00 00 00 02 0D 04 + 39 00 00 00 00 00 02 0E 03 + 39 00 00 00 00 00 02 0F 03 + 39 00 00 00 00 00 02 10 03 + 39 00 00 00 00 00 02 11 04 + 39 00 00 00 00 00 02 12 04 + 39 00 00 00 00 00 02 13 04 + 39 00 00 00 00 00 02 14 04 + 39 00 00 00 00 00 02 15 03 + 39 00 00 00 00 00 02 16 03 + 39 00 00 00 00 00 02 17 03 + 39 00 00 00 00 00 02 18 04 + 39 00 00 00 00 00 02 19 04 + 39 00 00 00 00 00 02 1A 04 + 39 00 00 00 00 00 02 1B 05 + 39 00 00 00 00 00 02 1C 05 + 39 00 00 00 00 00 02 1D 05 + 39 00 00 00 00 00 02 1E 05 + 39 00 00 00 00 00 02 1F 05 + 39 00 00 00 00 00 02 20 05 + 39 00 00 00 00 00 02 21 05 + 39 00 00 00 00 00 02 22 05 + 39 00 00 00 00 00 02 23 05 + 39 00 00 00 00 00 02 24 07 + 39 00 00 00 00 00 02 25 09 + 39 00 00 00 00 00 02 26 08 + 39 00 00 00 00 00 02 27 08 + 39 00 00 00 00 00 02 28 07 + 39 00 00 00 00 00 02 29 07 + 39 00 00 00 00 00 02 2A 07 + 39 00 00 00 00 00 02 2B 07 + 39 00 00 00 00 00 02 2C 07 + 39 00 00 00 00 00 02 2D 06 + 39 00 00 00 00 00 02 2E 06 + 39 00 00 00 00 00 02 2F 06 + 39 00 00 00 00 00 02 30 06 + 39 00 00 00 00 00 02 31 05 + 39 00 00 00 00 00 02 32 05 + 39 00 00 00 00 00 02 33 04 + 39 00 00 00 00 00 02 34 04 + 39 00 00 00 00 00 02 35 05 + 39 00 00 00 00 00 02 36 05 + 39 00 00 00 00 00 02 37 07 + 39 00 00 00 00 00 02 38 08 + 39 00 00 00 00 00 02 39 07 + 39 00 00 00 00 00 02 3A 07 + 39 00 00 00 00 00 02 3B 07 + 39 00 00 00 00 00 02 3C 07 + 39 00 00 00 00 00 02 3D 07 + 39 00 00 00 00 00 02 3E 07 + 39 00 00 00 00 00 02 3F 07 + 39 00 00 00 00 00 02 40 07 + 39 00 00 00 00 00 02 41 07 + 39 00 00 00 00 00 02 42 07 + 39 00 00 00 00 00 02 43 07 + 39 00 00 00 00 00 02 44 06 + 39 00 00 00 00 00 02 45 06 + 39 00 00 00 00 00 02 46 06 + 39 00 00 00 00 00 02 47 06 + 39 00 00 00 00 00 02 48 06 + 39 00 00 00 00 00 02 49 05 + 39 00 00 00 00 00 02 4A 05 + 39 00 00 00 00 00 02 4B 05 + 39 00 00 00 00 00 02 4C 04 + 39 00 00 00 00 00 02 4D 04 + 39 00 00 00 00 00 02 4E 04 + 39 00 00 00 00 00 02 4F 03 + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 03 + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 03 + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 03 + 39 00 00 00 00 00 02 56 04 + 39 00 00 00 00 00 02 57 04 + 39 00 00 00 00 00 02 58 04 + 39 00 00 00 00 00 02 59 04 + 39 00 00 00 00 00 02 5A 04 + 39 00 00 00 00 00 02 5B 04 + 39 00 00 00 00 00 02 5C 04 + 39 00 00 00 00 00 02 5D 04 + 39 00 00 00 00 00 02 5E 04 + 39 00 00 00 00 00 02 5F 04 + 39 00 00 00 00 00 02 60 05 + 39 00 00 00 00 00 02 61 04 + 39 00 00 00 00 00 02 62 04 + 39 00 00 00 00 00 02 63 04 + 39 00 00 00 00 00 02 64 04 + 39 00 00 00 00 00 02 65 04 + 39 00 00 00 00 00 02 66 05 + 39 00 00 00 00 00 02 67 04 + 39 00 00 00 00 00 02 68 04 + 39 00 00 00 00 00 02 69 04 + 39 00 00 00 00 00 02 6A 04 + 39 00 00 00 00 00 02 6B 04 + 39 00 00 00 00 00 02 6C 04 + 39 00 00 00 00 00 02 6D 04 + 39 00 00 00 00 00 02 6E 04 + 39 00 00 00 00 00 02 6F 04 + 39 00 00 00 00 00 02 70 04 + 39 00 00 00 00 00 02 71 04 + 39 00 00 00 00 00 02 72 04 + 39 00 00 00 00 00 02 73 03 + 39 00 00 00 00 00 02 74 03 + 39 00 00 00 00 00 02 75 02 + 39 00 00 00 00 00 02 76 02 + 39 00 00 00 00 00 02 77 02 + 39 00 00 00 00 00 02 78 02 + 39 00 00 00 00 00 02 79 01 + 39 00 00 00 00 00 02 7A 01 + 39 00 00 00 00 00 02 7B 01 + 39 00 00 00 00 00 02 7C 01 + 39 00 00 00 00 00 02 7D 01 + 39 00 00 00 00 00 02 7E 00 + 39 00 00 00 00 00 02 7F 00 + + + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 01 83 + 39 00 00 00 00 00 02 02 83 + 39 00 00 00 00 00 02 03 83 + 39 00 00 00 00 00 02 04 82 + 39 00 00 00 00 00 02 05 82 + 39 00 00 00 00 00 02 06 81 + 39 00 00 00 00 00 02 07 82 + 39 00 00 00 00 00 02 08 82 + 39 00 00 00 00 00 02 09 83 + 39 00 00 00 00 00 02 0A 83 + 39 00 00 00 00 00 02 0B 83 + 39 00 00 00 00 00 02 0C 84 + 39 00 00 00 00 00 02 0D 84 + 39 00 00 00 00 00 02 0E 84 + 39 00 00 00 00 00 02 0F 85 + 39 00 00 00 00 00 02 10 85 + 39 00 00 00 00 00 02 11 86 + 39 00 00 00 00 00 02 12 86 + 39 00 00 00 00 00 02 13 86 + 39 00 00 00 00 00 02 14 86 + 39 00 00 00 00 00 02 15 86 + 39 00 00 00 00 00 02 16 87 + 39 00 00 00 00 00 02 17 87 + 39 00 00 00 00 00 02 18 88 + 39 00 00 00 00 00 02 19 88 + 39 00 00 00 00 00 02 1A 89 + 39 00 00 00 00 00 02 1B 89 + 39 00 00 00 00 00 02 1C 89 + 39 00 00 00 00 00 02 1D 89 + 39 00 00 00 00 00 02 1E 89 + 39 00 00 00 00 00 02 1F 89 + 39 00 00 00 00 00 02 20 89 + 39 00 00 00 00 00 02 21 89 + 39 00 00 00 00 00 02 22 89 + 39 00 00 00 00 00 02 23 8A + 39 00 00 00 00 00 02 24 8A + 39 00 00 00 00 00 02 25 8B + 39 00 00 00 00 00 02 26 8C + 39 00 00 00 00 00 02 27 8C + 39 00 00 00 00 00 02 28 8A + 39 00 00 00 00 00 02 29 89 + 39 00 00 00 00 00 02 2A 89 + 39 00 00 00 00 00 02 2B 8A + 39 00 00 00 00 00 02 2C 8A + 39 00 00 00 00 00 02 2D 8B + 39 00 00 00 00 00 02 2E 8C + 39 00 00 00 00 00 02 2F 8C + 39 00 00 00 00 00 02 30 8C + 39 00 00 00 00 00 02 31 8D + 39 00 00 00 00 00 02 32 8D + 39 00 00 00 00 00 02 33 8E + 39 00 00 00 00 00 02 34 8F + 39 00 00 00 00 00 02 35 8F + 39 00 00 00 00 00 02 36 90 + 39 00 00 00 00 00 02 37 91 + 39 00 00 00 00 00 02 38 92 + 39 00 00 00 00 00 02 39 92 + 39 00 00 00 00 00 02 3A 92 + 39 00 00 00 00 00 02 3B 92 + 39 00 00 00 00 00 02 3C 92 + 39 00 00 00 00 00 02 3D 90 + 39 00 00 00 00 00 02 3E 90 + 39 00 00 00 00 00 02 3F 91 + 39 00 00 00 00 00 02 40 91 + 39 00 00 00 00 00 02 41 92 + 39 00 00 00 00 00 02 42 92 + 39 00 00 00 00 00 02 43 92 + 39 00 00 00 00 00 02 44 93 + 39 00 00 00 00 00 02 45 93 + 39 00 00 00 00 00 02 46 93 + 39 00 00 00 00 00 02 47 93 + 39 00 00 00 00 00 02 48 94 + 39 00 00 00 00 00 02 49 94 + 39 00 00 00 00 00 02 4A 95 + 39 00 00 00 00 00 02 4B 95 + 39 00 00 00 00 00 02 4C 96 + 39 00 00 00 00 00 02 4D 96 + 39 00 00 00 00 00 02 4E 97 + 39 00 00 00 00 00 02 4F 97 + 39 00 00 00 00 00 02 50 98 + 39 00 00 00 00 00 02 51 99 + 39 00 00 00 00 00 02 52 99 + 39 00 00 00 00 00 02 53 9A + 39 00 00 00 00 00 02 54 9A + 39 00 00 00 00 00 02 55 9B + 39 00 00 00 00 00 02 56 9B + 39 00 00 00 00 00 02 57 9C + 39 00 00 00 00 00 02 58 9D + 39 00 00 00 00 00 02 59 9D + 39 00 00 00 00 00 02 5A 9D + 39 00 00 00 00 00 02 5B 9D + 39 00 00 00 00 00 02 5C 9D + 39 00 00 00 00 00 02 5D 9E + 39 00 00 00 00 00 02 5E 9E + 39 00 00 00 00 00 02 5F 9E + 39 00 00 00 00 00 02 60 9E + 39 00 00 00 00 00 02 61 9E + 39 00 00 00 00 00 02 62 9E + 39 00 00 00 00 00 02 63 9F + 39 00 00 00 00 00 02 64 9F + 39 00 00 00 00 00 02 65 9F + 39 00 00 00 00 00 02 66 9F + 39 00 00 00 00 00 02 67 9F + 39 00 00 00 00 00 02 68 A0 + 39 00 00 00 00 00 02 69 A0 + 39 00 00 00 00 00 02 6A A0 + 39 00 00 00 00 00 02 6B A0 + 39 00 00 00 00 00 02 6C A0 + 39 00 00 00 00 00 02 6D A1 + 39 00 00 00 00 00 02 6E A1 + 39 00 00 00 00 00 02 6F A1 + 39 00 00 00 00 00 02 70 A1 + 39 00 00 00 00 00 02 71 A2 + 39 00 00 00 00 00 02 72 A2 + 39 00 00 00 00 00 02 73 A2 + 39 00 00 00 00 00 02 74 A3 + 39 00 00 00 00 00 02 75 A3 + 39 00 00 00 00 00 02 76 A3 + 39 00 00 00 00 00 02 77 A3 + 39 00 00 00 00 00 02 78 A4 + 39 00 00 00 00 00 02 79 A4 + 39 00 00 00 00 00 02 7A A4 + 39 00 00 00 00 00 02 7B A4 + 39 00 00 00 00 00 02 7C A5 + 39 00 00 00 00 00 02 7D A6 + 39 00 00 00 00 00 02 7E A7 + 39 00 00 00 00 00 02 7F A7 + + 39 00 00 00 00 00 04 FF 98 81 09 + 39 00 00 00 00 00 02 01 83 + 39 00 00 00 00 00 02 02 84 + 39 00 00 00 00 00 02 03 84 + 39 00 00 00 00 00 02 04 83 + 39 00 00 00 00 00 02 05 83 + 39 00 00 00 00 00 02 06 83 + 39 00 00 00 00 00 02 07 83 + 39 00 00 00 00 00 02 08 84 + 39 00 00 00 00 00 02 09 85 + 39 00 00 00 00 00 02 0A 85 + 39 00 00 00 00 00 02 0B 85 + 39 00 00 00 00 00 02 0C 86 + 39 00 00 00 00 00 02 0D 87 + 39 00 00 00 00 00 02 0E 87 + 39 00 00 00 00 00 02 0F 88 + 39 00 00 00 00 00 02 10 88 + 39 00 00 00 00 00 02 11 89 + 39 00 00 00 00 00 02 12 8A + 39 00 00 00 00 00 02 13 8A + 39 00 00 00 00 00 02 14 8A + 39 00 00 00 00 00 02 15 8B + 39 00 00 00 00 00 02 16 8B + 39 00 00 00 00 00 02 17 8C + 39 00 00 00 00 00 02 18 8D + 39 00 00 00 00 00 02 19 8D + 39 00 00 00 00 00 02 1A 8E + 39 00 00 00 00 00 02 1B 8E + 39 00 00 00 00 00 02 1C 8F + 39 00 00 00 00 00 02 1D 8F + 39 00 00 00 00 00 02 1E 8F + 39 00 00 00 00 00 02 1F 90 + 39 00 00 00 00 00 02 20 90 + 39 00 00 00 00 00 02 21 90 + 39 00 00 00 00 00 02 22 90 + 39 00 00 00 00 00 02 23 91 + 39 00 00 00 00 00 02 24 91 + 39 00 00 00 00 00 02 25 92 + 39 00 00 00 00 00 02 26 93 + 39 00 00 00 00 00 02 27 93 + 39 00 00 00 00 00 02 28 94 + 39 00 00 00 00 00 02 29 95 + 39 00 00 00 00 00 02 2A 94 + 39 00 00 00 00 00 02 2B 93 + 39 00 00 00 00 00 02 2C 92 + 39 00 00 00 00 00 02 2D 93 + 39 00 00 00 00 00 02 2E 94 + 39 00 00 00 00 00 02 2F 95 + 39 00 00 00 00 00 02 30 96 + 39 00 00 00 00 00 02 31 97 + 39 00 00 00 00 00 02 32 97 + 39 00 00 00 00 00 02 33 98 + 39 00 00 00 00 00 02 34 98 + 39 00 00 00 00 00 02 35 99 + 39 00 00 00 00 00 02 36 9A + 39 00 00 00 00 00 02 37 9B + 39 00 00 00 00 00 02 38 9C + 39 00 00 00 00 00 02 39 9C + 39 00 00 00 00 00 02 3A 9D + 39 00 00 00 00 00 02 3B 9E + 39 00 00 00 00 00 02 3C 9F + 39 00 00 00 00 00 02 3D 9F + 39 00 00 00 00 00 02 3E A0 + 39 00 00 00 00 00 02 3F A0 + 39 00 00 00 00 00 02 40 9F + 39 00 00 00 00 00 02 41 9F + 39 00 00 00 00 00 02 42 9F + 39 00 00 00 00 00 02 43 A0 + 39 00 00 00 00 00 02 44 A1 + 39 00 00 00 00 00 02 45 A1 + 39 00 00 00 00 00 02 46 A2 + 39 00 00 00 00 00 02 47 A2 + 39 00 00 00 00 00 02 48 A3 + 39 00 00 00 00 00 02 49 A3 + 39 00 00 00 00 00 02 4A A4 + 39 00 00 00 00 00 02 4B A4 + 39 00 00 00 00 00 02 4C A5 + 39 00 00 00 00 00 02 4D A5 + 39 00 00 00 00 00 02 4E A6 + 39 00 00 00 00 00 02 4F A7 + 39 00 00 00 00 00 02 50 A7 + 39 00 00 00 00 00 02 51 A8 + 39 00 00 00 00 00 02 52 A9 + 39 00 00 00 00 00 02 53 AA + 39 00 00 00 00 00 02 54 AA + 39 00 00 00 00 00 02 55 AB + 39 00 00 00 00 00 02 56 AC + 39 00 00 00 00 00 02 57 AD + 39 00 00 00 00 00 02 58 AE + 39 00 00 00 00 00 02 59 AF + 39 00 00 00 00 00 02 5A AF + 39 00 00 00 00 00 02 5B B0 + 39 00 00 00 00 00 02 5C B1 + 39 00 00 00 00 00 02 5D B2 + 39 00 00 00 00 00 02 5E B3 + 39 00 00 00 00 00 02 5F B3 + 39 00 00 00 00 00 02 60 B3 + 39 00 00 00 00 00 02 61 B4 + 39 00 00 00 00 00 02 62 B4 + 39 00 00 00 00 00 02 63 B4 + 39 00 00 00 00 00 02 64 B5 + 39 00 00 00 00 00 02 65 B5 + 39 00 00 00 00 00 02 66 B5 + 39 00 00 00 00 00 02 67 B6 + 39 00 00 00 00 00 02 68 B6 + 39 00 00 00 00 00 02 69 B7 + 39 00 00 00 00 00 02 6A B7 + 39 00 00 00 00 00 02 6B B8 + 39 00 00 00 00 00 02 6C B8 + 39 00 00 00 00 00 02 6D B8 + 39 00 00 00 00 00 02 6E B9 + 39 00 00 00 00 00 02 6F B9 + 39 00 00 00 00 00 02 70 BA + 39 00 00 00 00 00 02 71 BB + 39 00 00 00 00 00 02 72 BB + 39 00 00 00 00 00 02 73 BB + 39 00 00 00 00 00 02 74 BC + 39 00 00 00 00 00 02 75 BD + 39 00 00 00 00 00 02 76 BD + 39 00 00 00 00 00 02 77 BD + 39 00 00 00 00 00 02 78 BE + 39 00 00 00 00 00 02 79 BF + 39 00 00 00 00 00 02 7A BF + 39 00 00 00 00 00 02 7B C0 + 39 00 00 00 00 00 02 7C C0 + 39 00 00 00 00 00 02 7D C1 + 39 00 00 00 00 00 02 7E C1 + 39 00 00 00 00 00 02 7F C2 + 39 01 00 00 00 00 04 FF 98 81 00 + + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 01 81 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 81 + 39 00 00 00 00 00 02 04 81 + 39 00 00 00 00 00 02 05 81 + 39 00 00 00 00 00 02 06 81 + 39 00 00 00 00 00 02 07 81 + 39 00 00 00 00 00 02 08 81 + 39 00 00 00 00 00 02 09 81 + 39 00 00 00 00 00 02 0A 81 + 39 00 00 00 00 00 02 0B 81 + 39 00 00 00 00 00 02 0C 81 + 39 00 00 00 00 00 02 0D 81 + 39 00 00 00 00 00 02 0E 81 + 39 00 00 00 00 00 02 0F 81 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 81 + 39 00 00 00 00 00 02 12 81 + 39 00 00 00 00 00 02 13 82 + 39 00 00 00 00 00 02 14 82 + 39 00 00 00 00 00 02 15 82 + 39 00 00 00 00 00 02 16 82 + 39 00 00 00 00 00 02 17 83 + 39 00 00 00 00 00 02 18 83 + 39 00 00 00 00 00 02 19 83 + 39 00 00 00 00 00 02 1A 84 + 39 00 00 00 00 00 02 1B 84 + 39 00 00 00 00 00 02 1C 84 + 39 00 00 00 00 00 02 1D 84 + 39 00 00 00 00 00 02 1E 84 + 39 00 00 00 00 00 02 1F 84 + 39 00 00 00 00 00 02 20 84 + 39 00 00 00 00 00 02 21 84 + 39 00 00 00 00 00 02 22 84 + 39 00 00 00 00 00 02 23 84 + 39 00 00 00 00 00 02 24 84 + 39 00 00 00 00 00 02 25 84 + 39 00 00 00 00 00 02 26 85 + 39 00 00 00 00 00 02 27 84 + 39 00 00 00 00 00 02 28 84 + 39 00 00 00 00 00 02 29 83 + 39 00 00 00 00 00 02 2A 83 + 39 00 00 00 00 00 02 2B 83 + 39 00 00 00 00 00 02 2C 83 + 39 00 00 00 00 00 02 2D 82 + 39 00 00 00 00 00 02 2E 82 + 39 00 00 00 00 00 02 2F 82 + 39 00 00 00 00 00 02 30 82 + 39 00 00 00 00 00 02 31 83 + 39 00 00 00 00 00 02 32 83 + 39 00 00 00 00 00 02 33 84 + 39 00 00 00 00 00 02 34 84 + 39 00 00 00 00 00 02 35 85 + 39 00 00 00 00 00 02 36 85 + 39 00 00 00 00 00 02 37 86 + 39 00 00 00 00 00 02 38 86 + 39 00 00 00 00 00 02 39 86 + 39 00 00 00 00 00 02 3A 87 + 39 00 00 00 00 00 02 3B 87 + 39 00 00 00 00 00 02 3C 87 + 39 00 00 00 00 00 02 3D 88 + 39 00 00 00 00 00 02 3E 88 + 39 00 00 00 00 00 02 3F 88 + 39 00 00 00 00 00 02 40 88 + 39 00 00 00 00 00 02 41 88 + 39 00 00 00 00 00 02 42 88 + 39 00 00 00 00 00 02 43 88 + 39 00 00 00 00 00 02 44 88 + 39 00 00 00 00 00 02 45 88 + 39 00 00 00 00 00 02 46 88 + 39 00 00 00 00 00 02 47 87 + 39 00 00 00 00 00 02 48 87 + 39 00 00 00 00 00 02 49 86 + 39 00 00 00 00 00 02 4A 86 + 39 00 00 00 00 00 02 4B 86 + 39 00 00 00 00 00 02 4C 85 + 39 00 00 00 00 00 02 4D 85 + 39 00 00 00 00 00 02 4E 86 + 39 00 00 00 00 00 02 4F 86 + 39 00 00 00 00 00 02 50 86 + 39 00 00 00 00 00 02 51 86 + 39 00 00 00 00 00 02 52 87 + 39 00 00 00 00 00 02 53 87 + 39 00 00 00 00 00 02 54 87 + 39 00 00 00 00 00 02 55 87 + 39 00 00 00 00 00 02 56 87 + 39 00 00 00 00 00 02 57 87 + 39 00 00 00 00 00 02 58 86 + 39 00 00 00 00 00 02 59 86 + 39 00 00 00 00 00 02 5A 86 + 39 00 00 00 00 00 02 5B 85 + 39 00 00 00 00 00 02 5C 85 + 39 00 00 00 00 00 02 5D 85 + 39 00 00 00 00 00 02 5E 85 + 39 00 00 00 00 00 02 5F 86 + 39 00 00 00 00 00 02 60 86 + 39 00 00 00 00 00 02 61 86 + 39 00 00 00 00 00 02 62 86 + 39 00 00 00 00 00 02 63 86 + 39 00 00 00 00 00 02 64 86 + 39 00 00 00 00 00 02 65 86 + 39 00 00 00 00 00 02 66 85 + 39 00 00 00 00 00 02 67 85 + 39 00 00 00 00 00 02 68 85 + 39 00 00 00 00 00 02 69 85 + 39 00 00 00 00 00 02 6A 85 + 39 00 00 00 00 00 02 6B 86 + 39 00 00 00 00 00 02 6C 86 + 39 00 00 00 00 00 02 6D 86 + 39 00 00 00 00 00 02 6E 86 + 39 00 00 00 00 00 02 6F 86 + 39 00 00 00 00 00 02 70 86 + 39 00 00 00 00 00 02 71 86 + 39 00 00 00 00 00 02 72 85 + 39 00 00 00 00 00 02 73 85 + 39 00 00 00 00 00 02 74 85 + 39 00 00 00 00 00 02 75 85 + 39 00 00 00 00 00 02 76 85 + 39 00 00 00 00 00 02 77 84 + 39 00 00 00 00 00 02 78 84 + 39 00 00 00 00 00 02 79 84 + 39 00 00 00 00 00 02 7A 84 + 39 00 00 00 00 00 02 7B 84 + 39 00 00 00 00 00 02 7C 84 + 39 00 00 00 00 00 02 7D 85 + 39 00 00 00 00 00 02 7E 85 + 39 00 00 00 00 00 02 7F 85 + + 39 00 00 00 00 00 04 FF 98 81 08 + 39 00 00 00 00 00 02 01 A8 + 39 00 00 00 00 00 02 02 A9 + 39 00 00 00 00 00 02 03 A9 + 39 00 00 00 00 00 02 04 A9 + 39 00 00 00 00 00 02 05 AA + 39 00 00 00 00 00 02 06 AB + 39 00 00 00 00 00 02 07 AB + 39 00 00 00 00 00 02 08 AB + 39 00 00 00 00 00 02 09 AC + 39 00 00 00 00 00 02 0A AC + 39 00 00 00 00 00 02 0B AD + 39 00 00 00 00 00 02 0C AD + 39 00 00 00 00 00 02 0D AD + 39 00 00 00 00 00 02 0E AE + 39 00 00 00 00 00 02 0F AE + 39 00 00 00 00 00 02 10 AE + 39 00 00 00 00 00 02 11 AF + 39 00 00 00 00 00 02 12 AF + 39 00 00 00 00 00 02 13 AF + 39 00 00 00 00 00 02 14 B0 + 39 00 00 00 00 00 02 15 B0 + 39 00 00 00 00 00 02 16 B0 + 39 00 00 00 00 00 02 17 B1 + 39 00 00 00 00 00 02 18 B1 + 39 00 00 00 00 00 02 19 B1 + 39 00 00 00 00 00 02 1A B1 + 39 00 00 00 00 00 02 1B B1 + 39 00 00 00 00 00 02 1C B1 + 39 00 00 00 00 00 02 1D B1 + 39 00 00 00 00 00 02 1E B2 + 39 00 00 00 00 00 02 1F B3 + 39 00 00 00 00 00 02 20 B3 + 39 00 00 00 00 00 02 21 B4 + 39 00 00 00 00 00 02 22 B4 + 39 00 00 00 00 00 02 23 B5 + 39 00 00 00 00 00 02 24 B5 + 39 00 00 00 00 00 02 25 B6 + 39 00 00 00 00 00 02 26 B6 + 39 00 00 00 00 00 02 27 B7 + 39 00 00 00 00 00 02 28 B7 + 39 00 00 00 00 00 02 29 B7 + 39 00 00 00 00 00 02 2A B8 + 39 00 00 00 00 00 02 2B B8 + 39 00 00 00 00 00 02 2C B8 + 39 00 00 00 00 00 02 2D B9 + 39 00 00 00 00 00 02 2E B9 + 39 00 00 00 00 00 02 2F B9 + 39 00 00 00 00 00 02 30 B9 + 39 00 00 00 00 00 02 31 BA + 39 00 00 00 00 00 02 32 BA + 39 00 00 00 00 00 02 33 BB + 39 00 00 00 00 00 02 34 BB + 39 00 00 00 00 00 02 35 BA + 39 00 00 00 00 00 02 36 BA + 39 00 00 00 00 00 02 37 BA + 39 00 00 00 00 00 02 38 BA + 39 00 00 00 00 00 02 39 BA + 39 00 00 00 00 00 02 3A BA + 39 00 00 00 00 00 02 3B BA + 39 00 00 00 00 00 02 3C BA + 39 00 00 00 00 00 02 3D BA + 39 00 00 00 00 00 02 3E BA + 39 00 00 00 00 00 02 3F BB + 39 00 00 00 00 00 02 40 BC + 39 00 00 00 00 00 02 41 BD + 39 00 00 00 00 00 02 42 BE + 39 00 00 00 00 00 02 43 BE + 39 00 00 00 00 00 02 44 BF + 39 00 00 00 00 00 02 45 C0 + 39 00 00 00 00 00 02 46 C0 + 39 00 00 00 00 00 02 47 C1 + 39 00 00 00 00 00 02 48 C2 + 39 00 00 00 00 00 02 49 C2 + 39 00 00 00 00 00 02 4A C3 + 39 00 00 00 00 00 02 4B C3 + 39 00 00 00 00 00 02 4C C3 + 39 00 00 00 00 00 02 4D C4 + 39 00 00 00 00 00 02 4E C4 + 39 00 00 00 00 00 02 4F C4 + 39 00 00 00 00 00 02 50 C5 + 39 00 00 00 00 00 02 51 C5 + 39 00 00 00 00 00 02 52 C5 + 39 00 00 00 00 00 02 53 C6 + 39 00 00 00 00 00 02 54 C6 + 39 00 00 00 00 00 02 55 C6 + 39 00 00 00 00 00 02 56 C6 + 39 00 00 00 00 00 02 57 C6 + 39 00 00 00 00 00 02 58 C5 + 39 00 00 00 00 00 02 59 C5 + 39 00 00 00 00 00 02 5A C5 + 39 00 00 00 00 00 02 5B C5 + 39 00 00 00 00 00 02 5C C5 + 39 00 00 00 00 00 02 5D C5 + 39 00 00 00 00 00 02 5E C6 + 39 00 00 00 00 00 02 5F C6 + 39 00 00 00 00 00 02 60 C7 + 39 00 00 00 00 00 02 61 C7 + 39 00 00 00 00 00 02 62 C8 + 39 00 00 00 00 00 02 63 C8 + 39 00 00 00 00 00 02 64 C9 + 39 00 00 00 00 00 02 65 C9 + 39 00 00 00 00 00 02 66 C9 + 39 00 00 00 00 00 02 67 C9 + 39 00 00 00 00 00 02 68 CA + 39 00 00 00 00 00 02 69 C9 + 39 00 00 00 00 00 02 6A CA + 39 00 00 00 00 00 02 6B C9 + 39 00 00 00 00 00 02 6C C9 + 39 00 00 00 00 00 02 6D C9 + 39 00 00 00 00 00 02 6E C9 + 39 00 00 00 00 00 02 6F CA + 39 00 00 00 00 00 02 70 CB + 39 00 00 00 00 00 02 71 CB + 39 00 00 00 00 00 02 72 CC + 39 00 00 00 00 00 02 73 CC + 39 00 00 00 00 00 02 74 CC + 39 00 00 00 00 00 02 75 CD + 39 00 00 00 00 00 02 76 CD + 39 00 00 00 00 00 02 77 CD + 39 00 00 00 00 00 02 78 CD + 39 00 00 00 00 00 02 79 CD + 39 00 00 00 00 00 02 7A CC + 39 00 00 00 00 00 02 7B CD + 39 00 00 00 00 00 02 7C CE + 39 00 00 00 00 00 02 7D CE + 39 00 00 00 00 00 02 7E CF + 39 00 00 00 00 00 02 7F CF + + + 39 00 00 00 00 00 04 FF 98 81 0A + 39 00 00 00 00 00 02 01 C3 + 39 00 00 00 00 00 02 02 C3 + 39 00 00 00 00 00 02 03 C4 + 39 00 00 00 00 00 02 04 C5 + 39 00 00 00 00 00 02 05 C6 + 39 00 00 00 00 00 02 06 C7 + 39 00 00 00 00 00 02 07 C7 + 39 00 00 00 00 00 02 08 C8 + 39 00 00 00 00 00 02 09 C9 + 39 00 00 00 00 00 02 0A CA + 39 00 00 00 00 00 02 0B CB + 39 00 00 00 00 00 02 0C CB + 39 00 00 00 00 00 02 0D CC + 39 00 00 00 00 00 02 0E CD + 39 00 00 00 00 00 02 0F CD + 39 00 00 00 00 00 02 10 CE + 39 00 00 00 00 00 02 11 CF + 39 00 00 00 00 00 02 12 D0 + 39 00 00 00 00 00 02 13 D0 + 39 00 00 00 00 00 02 14 D1 + 39 00 00 00 00 00 02 15 D2 + 39 00 00 00 00 00 02 16 D2 + 39 00 00 00 00 00 02 17 D3 + 39 00 00 00 00 00 02 18 D4 + 39 00 00 00 00 00 02 19 D4 + 39 00 00 00 00 00 02 1A D5 + 39 00 00 00 00 00 02 1B D5 + 39 00 00 00 00 00 02 1C D6 + 39 00 00 00 00 00 02 1D D7 + 39 00 00 00 00 00 02 1E D7 + 39 00 00 00 00 00 02 1F D8 + 39 00 00 00 00 00 02 20 D8 + 39 00 00 00 00 00 02 21 D9 + 39 00 00 00 00 00 02 22 DA + 39 00 00 00 00 00 02 23 DA + 39 00 00 00 00 00 02 24 DA + 39 00 00 00 00 00 02 25 DB + 39 00 00 00 00 00 02 26 DB + 39 00 00 00 00 00 02 27 DB + 39 00 00 00 00 00 02 28 DC + 39 00 00 00 00 00 02 29 DD + 39 00 00 00 00 00 02 2A DE + 39 00 00 00 00 00 02 2B DF + 39 00 00 00 00 00 02 2C E0 + 39 00 00 00 00 00 02 2D E0 + 39 00 00 00 00 00 02 2E E1 + 39 00 00 00 00 00 02 2F E2 + 39 00 00 00 00 00 02 30 E3 + 39 00 00 00 00 00 02 31 E4 + 39 00 00 00 00 00 02 32 E4 + 39 00 00 00 00 00 02 33 E5 + 39 00 00 00 00 00 02 34 E6 + 39 00 00 00 00 00 02 35 E6 + 39 00 00 00 00 00 02 36 E7 + 39 00 00 00 00 00 02 37 E8 + 39 00 00 00 00 00 02 38 E8 + 39 00 00 00 00 00 02 39 E9 + 39 00 00 00 00 00 02 3A E9 + 39 00 00 00 00 00 02 3B EA + 39 00 00 00 00 00 02 3C EA + 39 00 00 00 00 00 02 3D EB + 39 00 00 00 00 00 02 3E EC + 39 00 00 00 00 00 02 3F ED + 39 00 00 00 00 00 02 40 ED + 39 00 00 00 00 00 02 41 ED + 39 00 00 00 00 00 02 42 EE + 39 00 00 00 00 00 02 43 EE + 39 00 00 00 00 00 02 44 EE + 39 00 00 00 00 00 02 45 EF + 39 00 00 00 00 00 02 46 EF + 39 00 00 00 00 00 02 47 F0 + 39 00 00 00 00 00 02 48 F0 + 39 00 00 00 00 00 02 49 F0 + 39 00 00 00 00 00 02 4A F0 + 39 00 00 00 00 00 02 4B F1 + 39 00 00 00 00 00 02 4C F2 + 39 00 00 00 00 00 02 4D F3 + 39 00 00 00 00 00 02 4E F4 + 39 00 00 00 00 00 02 4F F5 + 39 00 00 00 00 00 02 50 F6 + 39 00 00 00 00 00 02 51 F7 + 39 00 00 00 00 00 02 52 F8 + 39 00 00 00 00 00 02 53 F9 + 39 00 00 00 00 00 02 54 FA + 39 00 00 00 00 00 02 55 FB + 39 00 00 00 00 00 02 56 FC + 39 00 00 00 00 00 02 57 FD + 39 00 00 00 00 00 02 58 FE + 39 00 00 00 00 00 02 59 FF + 39 00 00 00 00 00 02 5A FF + 39 00 00 00 00 00 02 5B FF + 39 00 00 00 00 00 02 5C FF + 39 00 00 00 00 00 02 5D FF + 39 00 00 00 00 00 02 5E FF + 39 00 00 00 00 00 02 5F FF + 39 00 00 00 00 00 02 60 FF + 39 00 00 00 00 00 02 61 FF + 39 00 00 00 00 00 02 62 FF + 39 00 00 00 00 00 02 63 FF + 39 00 00 00 00 00 02 64 FF + 39 00 00 00 00 00 02 65 FF + 39 00 00 00 00 00 02 66 FF + 39 00 00 00 00 00 02 67 FF + 39 00 00 00 00 00 02 68 FF + 39 00 00 00 00 00 02 69 FF + 39 00 00 00 00 00 02 6A FF + 39 00 00 00 00 00 02 6B FF + 39 00 00 00 00 00 02 6C FF + 39 00 00 00 00 00 02 6D FF + 39 00 00 00 00 00 02 6E FF + 39 00 00 00 00 00 02 6F FF + 39 00 00 00 00 00 02 70 FF + 39 00 00 00 00 00 02 71 FF + 39 00 00 00 00 00 02 72 FF + 39 00 00 00 00 00 02 73 FF + 39 00 00 00 00 00 02 74 FF + 39 00 00 00 00 00 02 75 FF + 39 00 00 00 00 00 02 76 FF + 39 00 00 00 00 00 02 77 FF + 39 00 00 00 00 00 02 78 FF + 39 00 00 00 00 00 02 79 FF + 39 00 00 00 00 00 02 7A FF + 39 00 00 00 00 00 02 7B FF + 39 00 00 00 00 00 02 7C FF + 39 00 00 00 00 00 02 7D FF + 39 00 00 00 00 00 02 7E FF + 39 00 00 00 00 00 02 7F FF + + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F 00 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F 85 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F A7 + 39 00 00 00 00 00 04 FF 98 81 08 + 39 00 00 00 00 00 02 00 A8 + 39 00 00 00 00 00 02 7F CF + 39 00 00 00 00 00 04 FF 98 81 09 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F C2 + 39 00 00 00 00 00 04 FF 98 81 0A + 39 00 00 00 00 00 02 00 C2 + 39 00 00 00 00 00 02 7F FF + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 80 01 + 39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 21 B0 + 39 00 00 00 00 00 02 32 02 + 39 01 00 00 00 00 04 FF 98 81 00 + 39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 21 B2 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 04 FF 98 81 0A + 39 00 00 00 00 00 02 7F FF + 39 00 00 00 00 00 02 7E FF + 39 00 00 00 00 00 02 7D FF + 39 00 00 00 00 00 02 7C FF + 39 00 00 00 00 00 02 7B FF + 39 00 00 00 00 00 02 7A FF + 39 00 00 00 00 00 02 79 FF + 39 00 00 00 00 00 02 78 FF + 39 00 00 00 00 00 02 77 FF + 39 00 00 00 00 00 02 76 FF + 39 00 00 00 00 00 02 75 FF + 39 00 00 00 00 00 02 74 FF + 39 00 00 00 00 00 02 73 FF + 39 00 00 00 00 00 02 72 FF + 39 00 00 00 00 00 02 71 FF + 39 00 00 00 00 00 02 70 FF + 39 00 00 00 00 00 02 6F FF + 39 00 00 00 00 00 02 6E FF + 39 00 00 00 00 00 02 6D FF + 39 00 00 00 00 00 02 6C FF + 39 00 00 00 00 00 02 6B FF + 39 00 00 00 00 00 02 6A FF + 39 00 00 00 00 00 02 69 FF + 39 00 00 00 00 00 02 68 FF + 39 00 00 00 00 00 02 67 FF + 39 00 00 00 00 00 02 66 FF + 39 00 00 00 00 00 02 65 FF + 39 00 00 00 00 00 02 64 FF + 39 00 00 00 00 00 02 63 FF + 39 00 00 00 00 00 02 62 FF + 39 00 00 00 00 00 02 61 FF + 39 00 00 00 00 00 02 60 FF + 39 00 00 00 00 00 02 5F FF + 39 00 00 00 00 00 02 5E FF + 39 00 00 00 00 00 02 5D FF + 39 00 00 00 00 00 02 5C FF + 39 00 00 00 00 00 02 5B FF + 39 00 00 00 00 00 02 5A FF + 39 00 00 00 00 00 02 59 FF + 39 00 00 00 00 00 02 58 FE + 39 00 00 00 00 00 02 57 FD + 39 00 00 00 00 00 02 56 FC + 39 00 00 00 00 00 02 55 FB + 39 00 00 00 00 00 02 54 FA + 39 00 00 00 00 00 02 53 F9 + 39 00 00 00 00 00 02 52 F8 + 39 00 00 00 00 00 02 51 F7 + 39 00 00 00 00 00 02 50 F6 + 39 00 00 00 00 00 02 4F F5 + 39 00 00 00 00 00 02 4E F4 + 39 00 00 00 00 00 02 4D F3 + 39 00 00 00 00 00 02 4C F2 + 39 00 00 00 00 00 02 4B F1 + 39 00 00 00 00 00 02 4A F0 + 39 00 00 00 00 00 02 49 F0 + 39 00 00 00 00 00 02 48 F0 + 39 00 00 00 00 00 02 47 F0 + 39 00 00 00 00 00 02 46 EF + 39 00 00 00 00 00 02 45 EF + 39 00 00 00 00 00 02 44 EE + 39 00 00 00 00 00 02 43 EE + 39 00 00 00 00 00 02 42 EE + 39 00 00 00 00 00 02 41 ED + 39 00 00 00 00 00 02 40 ED + 39 00 00 00 00 00 02 3F ED + 39 00 00 00 00 00 02 3E EC + 39 00 00 00 00 00 02 3D EB + 39 00 00 00 00 00 02 3C EA + 39 00 00 00 00 00 02 3B EA + 39 00 00 00 00 00 02 3A E9 + 39 00 00 00 00 00 02 39 E9 + 39 00 00 00 00 00 02 38 E8 + 39 00 00 00 00 00 02 37 E8 + 39 00 00 00 00 00 02 36 E7 + 39 00 00 00 00 00 02 35 E6 + 39 00 00 00 00 00 02 34 E6 + 39 00 00 00 00 00 02 33 E5 + 39 00 00 00 00 00 02 32 E4 + 39 00 00 00 00 00 02 31 E4 + 39 00 00 00 00 00 02 30 E3 + 39 00 00 00 00 00 02 2F E2 + 39 00 00 00 00 00 02 2E E1 + 39 00 00 00 00 00 02 2D E0 + 39 00 00 00 00 00 02 2C E0 + 39 00 00 00 00 00 02 2B DF + 39 00 00 00 00 00 02 2A DE + 39 00 00 00 00 00 02 29 DD + 39 00 00 00 00 00 02 28 DC + 39 00 00 00 00 00 02 27 DB + 39 00 00 00 00 00 02 26 DB + 39 00 00 00 00 00 02 25 DB + 39 00 00 00 00 00 02 24 DA + 39 00 00 00 00 00 02 23 DA + 39 00 00 00 00 00 02 22 DA + 39 00 00 00 00 00 02 21 D9 + 39 00 00 00 00 00 02 20 D8 + 39 00 00 00 00 00 02 1F D8 + 39 00 00 00 00 00 02 1E D7 + 39 00 00 00 00 00 02 1D D7 + 39 00 00 00 00 00 02 1C D6 + 39 00 00 00 00 00 02 1B D5 + 39 00 00 00 00 00 02 1A D5 + 39 00 00 00 00 00 02 19 D4 + 39 00 00 00 00 00 02 18 D4 + 39 00 00 00 00 00 02 17 D3 + 39 00 00 00 00 00 02 16 D2 + 39 00 00 00 00 00 02 15 D2 + 39 00 00 00 00 00 02 14 D1 + 39 00 00 00 00 00 02 13 D0 + 39 00 00 00 00 00 02 12 D0 + 39 00 00 00 00 00 02 11 CF + 39 00 00 00 00 00 02 10 CE + 39 00 00 00 00 00 02 0F CD + 39 00 00 00 00 00 02 0E CD + 39 00 00 00 00 00 02 0D CC + 39 00 00 00 00 00 02 0C CB + 39 00 00 00 00 00 02 0B CB + 39 00 00 00 00 00 02 0A CA + 39 00 00 00 00 00 02 09 C9 + 39 00 00 00 00 00 02 08 C8 + 39 00 00 00 00 00 02 07 C7 + 39 00 00 00 00 00 02 06 C7 + 39 00 00 00 00 00 02 05 C6 + 39 00 00 00 00 00 02 04 C5 + 39 00 00 00 00 00 02 03 C4 + 39 00 00 00 00 00 02 02 C3 + 39 00 00 00 00 00 02 01 C3 + + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 7F 85 + 39 00 00 00 00 00 02 7E 85 + 39 00 00 00 00 00 02 7D 85 + 39 00 00 00 00 00 02 7C 84 + 39 00 00 00 00 00 02 7B 84 + 39 00 00 00 00 00 02 7A 84 + 39 00 00 00 00 00 02 79 84 + 39 00 00 00 00 00 02 78 84 + 39 00 00 00 00 00 02 77 84 + 39 00 00 00 00 00 02 76 85 + 39 00 00 00 00 00 02 75 85 + 39 00 00 00 00 00 02 74 85 + 39 00 00 00 00 00 02 73 85 + 39 00 00 00 00 00 02 72 85 + 39 00 00 00 00 00 02 71 86 + 39 00 00 00 00 00 02 70 86 + 39 00 00 00 00 00 02 6F 86 + 39 00 00 00 00 00 02 6E 86 + 39 00 00 00 00 00 02 6D 86 + 39 00 00 00 00 00 02 6C 86 + 39 00 00 00 00 00 02 6B 86 + 39 00 00 00 00 00 02 6A 85 + 39 00 00 00 00 00 02 69 85 + 39 00 00 00 00 00 02 68 85 + 39 00 00 00 00 00 02 67 85 + 39 00 00 00 00 00 02 66 85 + 39 00 00 00 00 00 02 65 86 + 39 00 00 00 00 00 02 64 86 + 39 00 00 00 00 00 02 63 86 + 39 00 00 00 00 00 02 62 86 + 39 00 00 00 00 00 02 61 86 + 39 00 00 00 00 00 02 60 86 + 39 00 00 00 00 00 02 5F 86 + 39 00 00 00 00 00 02 5E 85 + 39 00 00 00 00 00 02 5D 85 + 39 00 00 00 00 00 02 5C 85 + 39 00 00 00 00 00 02 5B 85 + 39 00 00 00 00 00 02 5A 86 + 39 00 00 00 00 00 02 59 86 + 39 00 00 00 00 00 02 58 86 + 39 00 00 00 00 00 02 57 87 + 39 00 00 00 00 00 02 56 87 + 39 00 00 00 00 00 02 55 87 + 39 00 00 00 00 00 02 54 87 + 39 00 00 00 00 00 02 53 87 + 39 00 00 00 00 00 02 52 87 + 39 00 00 00 00 00 02 51 86 + 39 00 00 00 00 00 02 50 86 + 39 00 00 00 00 00 02 4F 86 + 39 00 00 00 00 00 02 4E 86 + 39 00 00 00 00 00 02 4D 85 + 39 00 00 00 00 00 02 4C 85 + 39 00 00 00 00 00 02 4B 86 + 39 00 00 00 00 00 02 4A 86 + 39 00 00 00 00 00 02 49 86 + 39 00 00 00 00 00 02 48 87 + 39 00 00 00 00 00 02 47 87 + 39 00 00 00 00 00 02 46 88 + 39 00 00 00 00 00 02 45 88 + 39 00 00 00 00 00 02 44 88 + 39 00 00 00 00 00 02 43 88 + 39 00 00 00 00 00 02 42 88 + 39 00 00 00 00 00 02 41 88 + 39 00 00 00 00 00 02 40 88 + 39 00 00 00 00 00 02 3F 88 + 39 00 00 00 00 00 02 3E 88 + 39 00 00 00 00 00 02 3D 88 + 39 00 00 00 00 00 02 3C 87 + 39 00 00 00 00 00 02 3B 87 + 39 00 00 00 00 00 02 3A 87 + 39 00 00 00 00 00 02 39 86 + 39 00 00 00 00 00 02 38 86 + 39 00 00 00 00 00 02 37 86 + 39 00 00 00 00 00 02 36 85 + 39 00 00 00 00 00 02 35 85 + 39 00 00 00 00 00 02 34 84 + 39 00 00 00 00 00 02 33 84 + 39 00 00 00 00 00 02 32 83 + 39 00 00 00 00 00 02 31 83 + 39 00 00 00 00 00 02 30 82 + 39 00 00 00 00 00 02 2F 82 + 39 00 00 00 00 00 02 2E 82 + 39 00 00 00 00 00 02 2D 82 + 39 00 00 00 00 00 02 2C 83 + 39 00 00 00 00 00 02 2B 83 + 39 00 00 00 00 00 02 2A 83 + 39 00 00 00 00 00 02 29 83 + 39 00 00 00 00 00 02 28 84 + 39 00 00 00 00 00 02 27 84 + 39 00 00 00 00 00 02 26 85 + 39 00 00 00 00 00 02 25 84 + 39 00 00 00 00 00 02 24 84 + 39 00 00 00 00 00 02 23 84 + 39 00 00 00 00 00 02 22 84 + 39 00 00 00 00 00 02 21 84 + 39 00 00 00 00 00 02 20 84 + 39 00 00 00 00 00 02 1F 84 + 39 00 00 00 00 00 02 1E 84 + 39 00 00 00 00 00 02 1D 84 + 39 00 00 00 00 00 02 1C 84 + 39 00 00 00 00 00 02 1B 84 + 39 00 00 00 00 00 02 1A 84 + 39 00 00 00 00 00 02 19 83 + 39 00 00 00 00 00 02 18 83 + 39 00 00 00 00 00 02 17 83 + 39 00 00 00 00 00 02 16 82 + 39 00 00 00 00 00 02 15 82 + 39 00 00 00 00 00 02 14 82 + 39 00 00 00 00 00 02 13 82 + 39 00 00 00 00 00 02 12 81 + 39 00 00 00 00 00 02 11 81 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 0F 81 + 39 00 00 00 00 00 02 0E 81 + 39 00 00 00 00 00 02 0D 81 + 39 00 00 00 00 00 02 0C 81 + 39 00 00 00 00 00 02 0B 81 + 39 00 00 00 00 00 02 0A 81 + 39 00 00 00 00 00 02 09 81 + 39 00 00 00 00 00 02 08 81 + 39 00 00 00 00 00 02 07 81 + 39 00 00 00 00 00 02 06 81 + 39 00 00 00 00 00 02 05 81 + 39 00 00 00 00 00 02 04 81 + 39 00 00 00 00 00 02 03 81 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 01 81 + + 39 00 00 00 00 00 04 FF 98 81 08 + 39 00 00 00 00 00 02 7F CF + 39 00 00 00 00 00 02 7E CF + 39 00 00 00 00 00 02 7D CE + 39 00 00 00 00 00 02 7C CE + 39 00 00 00 00 00 02 7B CD + 39 00 00 00 00 00 02 7A CC + 39 00 00 00 00 00 02 79 CD + 39 00 00 00 00 00 02 78 CD + 39 00 00 00 00 00 02 77 CD + 39 00 00 00 00 00 02 76 CD + 39 00 00 00 00 00 02 75 CD + 39 00 00 00 00 00 02 74 CC + 39 00 00 00 00 00 02 73 CC + 39 00 00 00 00 00 02 72 CC + 39 00 00 00 00 00 02 71 CB + 39 00 00 00 00 00 02 70 CB + 39 00 00 00 00 00 02 6F CA + 39 00 00 00 00 00 02 6E C9 + 39 00 00 00 00 00 02 6D C9 + 39 00 00 00 00 00 02 6C C9 + 39 00 00 00 00 00 02 6B C9 + 39 00 00 00 00 00 02 6A CA + 39 00 00 00 00 00 02 69 C9 + 39 00 00 00 00 00 02 68 CA + 39 00 00 00 00 00 02 67 C9 + 39 00 00 00 00 00 02 66 C9 + 39 00 00 00 00 00 02 65 C9 + 39 00 00 00 00 00 02 64 C9 + 39 00 00 00 00 00 02 63 C8 + 39 00 00 00 00 00 02 62 C8 + 39 00 00 00 00 00 02 61 C7 + 39 00 00 00 00 00 02 60 C7 + 39 00 00 00 00 00 02 5F C6 + 39 00 00 00 00 00 02 5E C6 + 39 00 00 00 00 00 02 5D C5 + 39 00 00 00 00 00 02 5C C5 + 39 00 00 00 00 00 02 5B C5 + 39 00 00 00 00 00 02 5A C5 + 39 00 00 00 00 00 02 59 C5 + 39 00 00 00 00 00 02 58 C5 + 39 00 00 00 00 00 02 57 C6 + 39 00 00 00 00 00 02 56 C6 + 39 00 00 00 00 00 02 55 C6 + 39 00 00 00 00 00 02 54 C6 + 39 00 00 00 00 00 02 53 C6 + 39 00 00 00 00 00 02 52 C5 + 39 00 00 00 00 00 02 51 C5 + 39 00 00 00 00 00 02 50 C5 + 39 00 00 00 00 00 02 4F C4 + 39 00 00 00 00 00 02 4E C4 + 39 00 00 00 00 00 02 4D C4 + 39 00 00 00 00 00 02 4C C3 + 39 00 00 00 00 00 02 4B C3 + 39 00 00 00 00 00 02 4A C3 + 39 00 00 00 00 00 02 49 C2 + 39 00 00 00 00 00 02 48 C2 + 39 00 00 00 00 00 02 47 C1 + 39 00 00 00 00 00 02 46 C0 + 39 00 00 00 00 00 02 45 C0 + 39 00 00 00 00 00 02 44 BF + 39 00 00 00 00 00 02 43 BE + 39 00 00 00 00 00 02 42 BE + 39 00 00 00 00 00 02 41 BD + 39 00 00 00 00 00 02 40 BC + 39 00 00 00 00 00 02 3F BB + 39 00 00 00 00 00 02 3E BA + 39 00 00 00 00 00 02 3D BA + 39 00 00 00 00 00 02 3C BA + 39 00 00 00 00 00 02 3B BA + 39 00 00 00 00 00 02 3A BA + 39 00 00 00 00 00 02 39 BA + 39 00 00 00 00 00 02 38 BA + 39 00 00 00 00 00 02 37 BA + 39 00 00 00 00 00 02 36 BA + 39 00 00 00 00 00 02 35 BA + 39 00 00 00 00 00 02 34 BB + 39 00 00 00 00 00 02 33 BB + 39 00 00 00 00 00 02 32 BA + 39 00 00 00 00 00 02 31 BA + 39 00 00 00 00 00 02 30 B9 + 39 00 00 00 00 00 02 2F B9 + 39 00 00 00 00 00 02 2E B9 + 39 00 00 00 00 00 02 2D B9 + 39 00 00 00 00 00 02 2C B8 + 39 00 00 00 00 00 02 2B B8 + 39 00 00 00 00 00 02 2A B8 + 39 00 00 00 00 00 02 29 B7 + 39 00 00 00 00 00 02 28 B7 + 39 00 00 00 00 00 02 27 B7 + 39 00 00 00 00 00 02 26 B6 + 39 00 00 00 00 00 02 25 B6 + 39 00 00 00 00 00 02 24 B5 + 39 00 00 00 00 00 02 23 B5 + 39 00 00 00 00 00 02 22 B4 + 39 00 00 00 00 00 02 21 B4 + 39 00 00 00 00 00 02 20 B3 + 39 00 00 00 00 00 02 1F B3 + 39 00 00 00 00 00 02 1E B2 + 39 00 00 00 00 00 02 1D B1 + 39 00 00 00 00 00 02 1C B1 + 39 00 00 00 00 00 02 1B B1 + 39 00 00 00 00 00 02 1A B1 + 39 00 00 00 00 00 02 19 B1 + 39 00 00 00 00 00 02 18 B1 + 39 00 00 00 00 00 02 17 B1 + 39 00 00 00 00 00 02 16 B0 + 39 00 00 00 00 00 02 15 B0 + 39 00 00 00 00 00 02 14 B0 + 39 00 00 00 00 00 02 13 AF + 39 00 00 00 00 00 02 12 AF + 39 00 00 00 00 00 02 11 AF + 39 00 00 00 00 00 02 10 AE + 39 00 00 00 00 00 02 0F AE + 39 00 00 00 00 00 02 0E AE + 39 00 00 00 00 00 02 0D AD + 39 00 00 00 00 00 02 0C AD + 39 00 00 00 00 00 02 0B AD + 39 00 00 00 00 00 02 0A AC + 39 00 00 00 00 00 02 09 AC + 39 00 00 00 00 00 02 08 AB + 39 00 00 00 00 00 02 07 AB + 39 00 00 00 00 00 02 06 AB + 39 00 00 00 00 00 02 05 AA + 39 00 00 00 00 00 02 04 A9 + 39 00 00 00 00 00 02 03 A9 + 39 00 00 00 00 00 02 02 A9 + 39 00 00 00 00 00 02 01 A8 + + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F 00 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F 85 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F A7 + 39 00 00 00 00 00 04 FF 98 81 08 + 39 00 00 00 00 00 02 00 A8 + 39 00 00 00 00 00 02 7F CF + 39 00 00 00 00 00 04 FF 98 81 09 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F C2 + 39 00 00 00 00 00 04 FF 98 81 0A + 39 00 00 00 00 00 02 00 C2 + 39 00 00 00 00 00 02 7F FF + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 80 01 + 39 01 00 00 00 00 04 FF 98 81 00 + + 39 00 00 00 00 00 04 FF 98 81 09 + 39 00 00 00 00 00 02 7F C2 + 39 00 00 00 00 00 02 7E C1 + 39 00 00 00 00 00 02 7D C1 + 39 00 00 00 00 00 02 7C C0 + 39 00 00 00 00 00 02 7B C0 + 39 00 00 00 00 00 02 7A BF + 39 00 00 00 00 00 02 79 BF + 39 00 00 00 00 00 02 78 BE + 39 00 00 00 00 00 02 77 BD + 39 00 00 00 00 00 02 76 BD + 39 00 00 00 00 00 02 75 BD + 39 00 00 00 00 00 02 74 BC + 39 00 00 00 00 00 02 73 BB + 39 00 00 00 00 00 02 72 BB + 39 00 00 00 00 00 02 71 BB + 39 00 00 00 00 00 02 70 BA + 39 00 00 00 00 00 02 6F B9 + 39 00 00 00 00 00 02 6E B9 + 39 00 00 00 00 00 02 6D B8 + 39 00 00 00 00 00 02 6C B8 + 39 00 00 00 00 00 02 6B B8 + 39 00 00 00 00 00 02 6A B7 + 39 00 00 00 00 00 02 69 B7 + 39 00 00 00 00 00 02 68 B6 + 39 00 00 00 00 00 02 67 B6 + 39 00 00 00 00 00 02 66 B5 + 39 00 00 00 00 00 02 65 B5 + 39 00 00 00 00 00 02 64 B5 + 39 00 00 00 00 00 02 63 B4 + 39 00 00 00 00 00 02 62 B4 + 39 00 00 00 00 00 02 61 B4 + 39 00 00 00 00 00 02 60 B3 + 39 00 00 00 00 00 02 5F B3 + 39 00 00 00 00 00 02 5E B3 + 39 00 00 00 00 00 02 5D B2 + 39 00 00 00 00 00 02 5C B1 + 39 00 00 00 00 00 02 5B B0 + 39 00 00 00 00 00 02 5A AF + 39 00 00 00 00 00 02 59 AF + 39 00 00 00 00 00 02 58 AE + 39 00 00 00 00 00 02 57 AD + 39 00 00 00 00 00 02 56 AC + 39 00 00 00 00 00 02 55 AB + 39 00 00 00 00 00 02 54 AA + 39 00 00 00 00 00 02 53 AA + 39 00 00 00 00 00 02 52 A9 + 39 00 00 00 00 00 02 51 A8 + 39 00 00 00 00 00 02 50 A7 + 39 00 00 00 00 00 02 4F A7 + 39 00 00 00 00 00 02 4E A6 + 39 00 00 00 00 00 02 4D A5 + 39 00 00 00 00 00 02 4C A5 + 39 00 00 00 00 00 02 4B A4 + 39 00 00 00 00 00 02 4A A4 + 39 00 00 00 00 00 02 49 A3 + 39 00 00 00 00 00 02 48 A3 + 39 00 00 00 00 00 02 47 A2 + 39 00 00 00 00 00 02 46 A2 + 39 00 00 00 00 00 02 45 A1 + 39 00 00 00 00 00 02 44 A1 + 39 00 00 00 00 00 02 43 A0 + 39 00 00 00 00 00 02 42 9F + 39 00 00 00 00 00 02 41 9F + 39 00 00 00 00 00 02 40 9F + 39 00 00 00 00 00 02 3F A0 + 39 00 00 00 00 00 02 3E A0 + 39 00 00 00 00 00 02 3D 9F + 39 00 00 00 00 00 02 3C 9F + 39 00 00 00 00 00 02 3B 9E + 39 00 00 00 00 00 02 3A 9D + 39 00 00 00 00 00 02 39 9C + 39 00 00 00 00 00 02 38 9C + 39 00 00 00 00 00 02 37 9B + 39 00 00 00 00 00 02 36 9A + 39 00 00 00 00 00 02 35 99 + 39 00 00 00 00 00 02 34 98 + 39 00 00 00 00 00 02 33 98 + 39 00 00 00 00 00 02 32 97 + 39 00 00 00 00 00 02 31 97 + 39 00 00 00 00 00 02 30 96 + 39 00 00 00 00 00 02 2F 95 + 39 00 00 00 00 00 02 2E 94 + 39 00 00 00 00 00 02 2D 93 + 39 00 00 00 00 00 02 2C 92 + 39 00 00 00 00 00 02 2B 93 + 39 00 00 00 00 00 02 2A 94 + 39 00 00 00 00 00 02 29 95 + 39 00 00 00 00 00 02 28 94 + 39 00 00 00 00 00 02 27 93 + 39 00 00 00 00 00 02 26 93 + 39 00 00 00 00 00 02 25 92 + 39 00 00 00 00 00 02 24 91 + 39 00 00 00 00 00 02 23 91 + 39 00 00 00 00 00 02 22 90 + 39 00 00 00 00 00 02 21 90 + 39 00 00 00 00 00 02 20 90 + 39 00 00 00 00 00 02 1F 90 + 39 00 00 00 00 00 02 1E 8F + 39 00 00 00 00 00 02 1D 8F + 39 00 00 00 00 00 02 1C 8F + 39 00 00 00 00 00 02 1B 8E + 39 00 00 00 00 00 02 1A 8E + 39 00 00 00 00 00 02 19 8D + 39 00 00 00 00 00 02 18 8D + 39 00 00 00 00 00 02 17 8C + 39 00 00 00 00 00 02 16 8B + 39 00 00 00 00 00 02 15 8B + 39 00 00 00 00 00 02 14 8A + 39 00 00 00 00 00 02 13 8A + 39 00 00 00 00 00 02 12 8A + 39 00 00 00 00 00 02 11 89 + 39 00 00 00 00 00 02 10 88 + 39 00 00 00 00 00 02 0F 88 + 39 00 00 00 00 00 02 0E 87 + 39 00 00 00 00 00 02 0D 87 + 39 00 00 00 00 00 02 0C 86 + 39 00 00 00 00 00 02 0B 85 + 39 00 00 00 00 00 02 0A 85 + 39 00 00 00 00 00 02 09 85 + 39 00 00 00 00 00 02 08 84 + 39 00 00 00 00 00 02 07 83 + 39 00 00 00 00 00 02 06 83 + 39 00 00 00 00 00 02 05 83 + 39 00 00 00 00 00 02 04 83 + 39 00 00 00 00 00 02 03 84 + 39 00 00 00 00 00 02 02 84 + 39 00 00 00 00 00 02 01 83 + + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 7F 00 + 39 00 00 00 00 00 02 7E 00 + 39 00 00 00 00 00 02 7D 01 + 39 00 00 00 00 00 02 7C 01 + 39 00 00 00 00 00 02 7B 01 + 39 00 00 00 00 00 02 7A 01 + 39 00 00 00 00 00 02 79 01 + 39 00 00 00 00 00 02 78 02 + 39 00 00 00 00 00 02 77 02 + 39 00 00 00 00 00 02 76 02 + 39 00 00 00 00 00 02 75 02 + 39 00 00 00 00 00 02 74 03 + 39 00 00 00 00 00 02 73 03 + 39 00 00 00 00 00 02 72 04 + 39 00 00 00 00 00 02 71 04 + 39 00 00 00 00 00 02 70 04 + 39 00 00 00 00 00 02 6F 04 + 39 00 00 00 00 00 02 6E 04 + 39 00 00 00 00 00 02 6D 04 + 39 00 00 00 00 00 02 6C 04 + 39 00 00 00 00 00 02 6B 04 + 39 00 00 00 00 00 02 6A 04 + 39 00 00 00 00 00 02 69 04 + 39 00 00 00 00 00 02 68 04 + 39 00 00 00 00 00 02 67 04 + 39 00 00 00 00 00 02 66 05 + 39 00 00 00 00 00 02 65 04 + 39 00 00 00 00 00 02 64 04 + 39 00 00 00 00 00 02 63 04 + 39 00 00 00 00 00 02 62 04 + 39 00 00 00 00 00 02 61 04 + 39 00 00 00 00 00 02 60 05 + 39 00 00 00 00 00 02 5F 04 + 39 00 00 00 00 00 02 5E 04 + 39 00 00 00 00 00 02 5D 04 + 39 00 00 00 00 00 02 5C 04 + 39 00 00 00 00 00 02 5B 04 + 39 00 00 00 00 00 02 5A 04 + 39 00 00 00 00 00 02 59 04 + 39 00 00 00 00 00 02 58 04 + 39 00 00 00 00 00 02 57 04 + 39 00 00 00 00 00 02 56 04 + 39 00 00 00 00 00 02 55 03 + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 53 03 + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 51 03 + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 4F 03 + 39 00 00 00 00 00 02 4E 04 + 39 00 00 00 00 00 02 4D 04 + 39 00 00 00 00 00 02 4C 04 + 39 00 00 00 00 00 02 4B 05 + 39 00 00 00 00 00 02 4A 05 + 39 00 00 00 00 00 02 49 05 + 39 00 00 00 00 00 02 48 06 + 39 00 00 00 00 00 02 47 06 + 39 00 00 00 00 00 02 46 06 + 39 00 00 00 00 00 02 45 06 + 39 00 00 00 00 00 02 44 06 + 39 00 00 00 00 00 02 43 07 + 39 00 00 00 00 00 02 42 07 + 39 00 00 00 00 00 02 41 07 + 39 00 00 00 00 00 02 40 07 + 39 00 00 00 00 00 02 3F 07 + 39 00 00 00 00 00 02 3E 07 + 39 00 00 00 00 00 02 3D 07 + 39 00 00 00 00 00 02 3C 07 + 39 00 00 00 00 00 02 3B 07 + 39 00 00 00 00 00 02 3A 07 + 39 00 00 00 00 00 02 39 07 + 39 00 00 00 00 00 02 38 08 + 39 00 00 00 00 00 02 37 07 + 39 00 00 00 00 00 02 36 05 + 39 00 00 00 00 00 02 35 05 + 39 00 00 00 00 00 02 34 04 + 39 00 00 00 00 00 02 33 04 + 39 00 00 00 00 00 02 32 05 + 39 00 00 00 00 00 02 31 05 + 39 00 00 00 00 00 02 30 06 + 39 00 00 00 00 00 02 2F 06 + 39 00 00 00 00 00 02 2E 06 + 39 00 00 00 00 00 02 2D 06 + 39 00 00 00 00 00 02 2C 07 + 39 00 00 00 00 00 02 2B 07 + 39 00 00 00 00 00 02 2A 07 + 39 00 00 00 00 00 02 29 07 + 39 00 00 00 00 00 02 28 07 + 39 00 00 00 00 00 02 27 08 + 39 00 00 00 00 00 02 26 08 + 39 00 00 00 00 00 02 25 09 + 39 00 00 00 00 00 02 24 07 + 39 00 00 00 00 00 02 23 05 + 39 00 00 00 00 00 02 22 05 + 39 00 00 00 00 00 02 21 05 + 39 00 00 00 00 00 02 20 05 + 39 00 00 00 00 00 02 1F 05 + 39 00 00 00 00 00 02 1E 05 + 39 00 00 00 00 00 02 1D 05 + 39 00 00 00 00 00 02 1C 05 + 39 00 00 00 00 00 02 1B 05 + 39 00 00 00 00 00 02 1A 04 + 39 00 00 00 00 00 02 19 04 + 39 00 00 00 00 00 02 18 04 + 39 00 00 00 00 00 02 17 03 + 39 00 00 00 00 00 02 16 03 + 39 00 00 00 00 00 02 15 03 + 39 00 00 00 00 00 02 14 04 + 39 00 00 00 00 00 02 13 04 + 39 00 00 00 00 00 02 12 04 + 39 00 00 00 00 00 02 11 04 + 39 00 00 00 00 00 02 10 03 + 39 00 00 00 00 00 02 0F 03 + 39 00 00 00 00 00 02 0E 03 + 39 00 00 00 00 00 02 0D 04 + 39 00 00 00 00 00 02 0C 03 + 39 00 00 00 00 00 02 0B 03 + 39 00 00 00 00 00 02 0A 04 + 39 00 00 00 00 00 02 09 04 + 39 00 00 00 00 00 02 08 04 + 39 00 00 00 00 00 02 07 03 + 39 00 00 00 00 00 02 06 03 + 39 00 00 00 00 00 02 05 04 + 39 00 00 00 00 00 02 04 03 + 39 00 00 00 00 00 02 03 01 + 39 00 00 00 00 00 02 02 81 + 39 00 00 00 00 00 02 01 82 + + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 D3 39 + 39 00 00 00 00 00 02 D2 67 + 39 00 00 00 00 00 02 D1 58 + 39 00 00 00 00 00 02 D0 29 + 39 00 00 00 00 00 02 CF 24 + 39 00 00 00 00 00 02 CE 50 + 39 00 00 00 00 00 02 CD 1C + 39 00 00 00 00 00 02 CC 1D + 39 00 00 00 00 00 02 CB 8F + 39 00 00 00 00 00 02 CA 2A + 39 00 00 00 00 00 02 C9 1D + 39 00 00 00 00 00 02 C8 9D + 39 00 00 00 00 00 02 C7 1F + 39 00 00 00 00 00 02 C6 1D + 39 00 00 00 00 00 02 C5 29 + 39 00 00 00 00 00 02 C4 16 + 39 00 00 00 00 00 02 C3 13 + 39 00 00 00 00 00 02 C2 2D + 39 00 00 00 00 00 02 C1 1D + 39 00 00 00 00 00 02 C0 00 + + 39 00 00 00 00 00 02 B3 39 + 39 00 00 00 00 00 02 B2 68 + 39 00 00 00 00 00 02 B1 59 + 39 00 00 00 00 00 02 B0 28 + 39 00 00 00 00 00 02 AF 23 + 39 00 00 00 00 00 02 AE 4F + 39 00 00 00 00 00 02 AD 1C + 39 00 00 00 00 00 02 AC 1D + 39 00 00 00 00 00 02 AB 90 + 39 00 00 00 00 00 02 AA 2A + 39 00 00 00 00 00 02 A9 1D + 39 00 00 00 00 00 02 A8 9E + 39 00 00 00 00 00 02 A7 1E + 39 00 00 00 00 00 02 A6 1D + 39 00 00 00 00 00 02 A5 29 + 39 00 00 00 00 00 02 A4 15 + 39 00 00 00 00 00 02 A3 12 + 39 00 00 00 00 00 02 A2 2E + 39 00 00 00 00 00 02 A1 1E + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 f6 00 + + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 7F A7 + 39 00 00 00 00 00 02 7E A7 + 39 00 00 00 00 00 02 7D A6 + 39 00 00 00 00 00 02 7C A5 + 39 00 00 00 00 00 02 7B A4 + 39 00 00 00 00 00 02 7A A4 + 39 00 00 00 00 00 02 79 A4 + 39 00 00 00 00 00 02 78 A4 + 39 00 00 00 00 00 02 77 A3 + 39 00 00 00 00 00 02 76 A3 + 39 00 00 00 00 00 02 75 A3 + 39 00 00 00 00 00 02 74 A3 + 39 00 00 00 00 00 02 73 A2 + 39 00 00 00 00 00 02 72 A2 + 39 00 00 00 00 00 02 71 A2 + 39 00 00 00 00 00 02 70 A1 + 39 00 00 00 00 00 02 6F A1 + 39 00 00 00 00 00 02 6E A1 + 39 00 00 00 00 00 02 6D A1 + 39 00 00 00 00 00 02 6C A0 + 39 00 00 00 00 00 02 6B A0 + 39 00 00 00 00 00 02 6A A0 + 39 00 00 00 00 00 02 69 A0 + 39 00 00 00 00 00 02 68 A0 + 39 00 00 00 00 00 02 67 9F + 39 00 00 00 00 00 02 66 9F + 39 00 00 00 00 00 02 65 9F + 39 00 00 00 00 00 02 64 9F + 39 00 00 00 00 00 02 63 9F + 39 00 00 00 00 00 02 62 9E + 39 00 00 00 00 00 02 61 9E + 39 00 00 00 00 00 02 60 9E + 39 00 00 00 00 00 02 5F 9E + 39 00 00 00 00 00 02 5E 9E + 39 00 00 00 00 00 02 5D 9E + 39 00 00 00 00 00 02 5C 9D + 39 00 00 00 00 00 02 5B 9D + 39 00 00 00 00 00 02 5A 9D + 39 00 00 00 00 00 02 59 9D + 39 00 00 00 00 00 02 58 9D + 39 00 00 00 00 00 02 57 9C + 39 00 00 00 00 00 02 56 9B + 39 00 00 00 00 00 02 55 9B + 39 00 00 00 00 00 02 54 9A + 39 00 00 00 00 00 02 53 9A + 39 00 00 00 00 00 02 52 99 + 39 00 00 00 00 00 02 51 99 + 39 00 00 00 00 00 02 50 98 + 39 00 00 00 00 00 02 4F 97 + 39 00 00 00 00 00 02 4E 97 + 39 00 00 00 00 00 02 4D 96 + 39 00 00 00 00 00 02 4C 96 + 39 00 00 00 00 00 02 4B 95 + 39 00 00 00 00 00 02 4A 95 + 39 00 00 00 00 00 02 49 94 + 39 00 00 00 00 00 02 48 94 + 39 00 00 00 00 00 02 47 93 + 39 00 00 00 00 00 02 46 93 + 39 00 00 00 00 00 02 45 93 + 39 00 00 00 00 00 02 44 93 + 39 00 00 00 00 00 02 43 92 + 39 00 00 00 00 00 02 42 92 + 39 00 00 00 00 00 02 41 92 + 39 00 00 00 00 00 02 40 91 + 39 00 00 00 00 00 02 3F 91 + 39 00 00 00 00 00 02 3E 90 + 39 00 00 00 00 00 02 3D 90 + 39 00 00 00 00 00 02 3C 92 + 39 00 00 00 00 00 02 3B 92 + 39 00 00 00 00 00 02 3A 92 + 39 00 00 00 00 00 02 39 92 + 39 00 00 00 00 00 02 38 92 + 39 00 00 00 00 00 02 37 91 + 39 00 00 00 00 00 02 36 90 + 39 00 00 00 00 00 02 35 8F + 39 00 00 00 00 00 02 34 8F + 39 00 00 00 00 00 02 33 8E + 39 00 00 00 00 00 02 32 8D + 39 00 00 00 00 00 02 31 8D + 39 00 00 00 00 00 02 30 8C + 39 00 00 00 00 00 02 2F 8C + 39 00 00 00 00 00 02 2E 8C + 39 00 00 00 00 00 02 2D 8B + 39 00 00 00 00 00 02 2C 8A + 39 00 00 00 00 00 02 2B 8A + 39 00 00 00 00 00 02 2A 89 + 39 00 00 00 00 00 02 29 89 + 39 00 00 00 00 00 02 28 8A + 39 00 00 00 00 00 02 27 8C + 39 00 00 00 00 00 02 26 8C + 39 00 00 00 00 00 02 25 8B + 39 00 00 00 00 00 02 24 8A + 39 00 00 00 00 00 02 23 8A + 39 00 00 00 00 00 02 22 89 + 39 00 00 00 00 00 02 21 89 + 39 00 00 00 00 00 02 20 89 + 39 00 00 00 00 00 02 1F 89 + 39 00 00 00 00 00 02 1E 89 + 39 00 00 00 00 00 02 1D 89 + 39 00 00 00 00 00 02 1C 89 + 39 00 00 00 00 00 02 1B 89 + 39 00 00 00 00 00 02 1A 89 + 39 00 00 00 00 00 02 19 88 + 39 00 00 00 00 00 02 18 88 + 39 00 00 00 00 00 02 17 87 + 39 00 00 00 00 00 02 16 87 + 39 00 00 00 00 00 02 15 86 + 39 00 00 00 00 00 02 14 86 + 39 00 00 00 00 00 02 13 86 + 39 00 00 00 00 00 02 12 86 + 39 00 00 00 00 00 02 11 86 + 39 00 00 00 00 00 02 10 85 + 39 00 00 00 00 00 02 0F 85 + 39 00 00 00 00 00 02 0E 84 + 39 00 00 00 00 00 02 0D 84 + 39 00 00 00 00 00 02 0C 84 + 39 00 00 00 00 00 02 0B 83 + 39 00 00 00 00 00 02 0A 83 + 39 00 00 00 00 00 02 09 83 + 39 00 00 00 00 00 02 08 82 + 39 00 00 00 00 00 02 07 82 + 39 00 00 00 00 00 02 06 81 + 39 00 00 00 00 00 02 05 82 + 39 00 00 00 00 00 02 04 82 + 39 00 00 00 00 00 02 03 83 + 39 00 00 00 00 00 02 02 83 + 39 00 00 00 00 00 02 01 83 + + + 39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 21 B0 + 39 00 00 00 00 00 02 32 02 + 39 01 00 00 00 00 04 FF 98 81 00 + + ]; + + + qcom,mdss-dsi-panel-eye-command04= [39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 21 B2 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 f6 02 + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 A1 1E + 39 00 00 00 00 00 02 A2 2E + 39 00 00 00 00 00 02 A3 12 + 39 00 00 00 00 00 02 A4 15 + 39 00 00 00 00 00 02 A5 29 + 39 00 00 00 00 00 02 A6 1D + 39 00 00 00 00 00 02 A7 1E + 39 00 00 00 00 00 02 A8 9E + 39 00 00 00 00 00 02 A9 1D + 39 00 00 00 00 00 02 AA 2A + 39 00 00 00 00 00 02 AB 90 + 39 00 00 00 00 00 02 AC 1D + 39 00 00 00 00 00 02 AD 1C + 39 00 00 00 00 00 02 AE 4F + 39 00 00 00 00 00 02 AF 23 + 39 00 00 00 00 00 02 B0 28 + 39 00 00 00 00 00 02 B1 59 + 39 00 00 00 00 00 02 B2 68 + 39 00 00 00 00 00 02 B3 39 + + 39 00 00 00 00 00 02 C0 00 + 39 00 00 00 00 00 02 C1 1D + 39 00 00 00 00 00 02 C2 2D + 39 00 00 00 00 00 02 C3 13 + 39 00 00 00 00 00 02 C4 16 + 39 00 00 00 00 00 02 C5 29 + 39 00 00 00 00 00 02 C6 1D + 39 00 00 00 00 00 02 C7 1F + 39 00 00 00 00 00 02 C8 9D + 39 00 00 00 00 00 02 C9 1D + 39 00 00 00 00 00 02 CA 2A + 39 00 00 00 00 00 02 CB 8F + 39 00 00 00 00 00 02 CC 1D + 39 00 00 00 00 00 02 CD 1C + 39 00 00 00 00 00 02 CE 50 + 39 00 00 00 00 00 02 CF 24 + 39 00 00 00 00 00 02 D0 29 + 39 00 00 00 00 00 02 D1 58 + 39 00 00 00 00 00 02 D2 67 + 39 00 00 00 00 00 02 D3 39 + + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 01 82 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 01 + 39 00 00 00 00 00 02 04 03 + 39 00 00 00 00 00 02 05 04 + 39 00 00 00 00 00 02 06 03 + 39 00 00 00 00 00 02 07 03 + 39 00 00 00 00 00 02 08 04 + 39 00 00 00 00 00 02 09 04 + 39 00 00 00 00 00 02 0A 04 + 39 00 00 00 00 00 02 0B 03 + 39 00 00 00 00 00 02 0C 04 + 39 00 00 00 00 00 02 0D 04 + 39 00 00 00 00 00 02 0E 04 + 39 00 00 00 00 00 02 0F 03 + 39 00 00 00 00 00 02 10 04 + 39 00 00 00 00 00 02 11 04 + 39 00 00 00 00 00 02 12 04 + 39 00 00 00 00 00 02 13 04 + 39 00 00 00 00 00 02 14 04 + 39 00 00 00 00 00 02 15 04 + 39 00 00 00 00 00 02 16 04 + 39 00 00 00 00 00 02 17 04 + 39 00 00 00 00 00 02 18 04 + 39 00 00 00 00 00 02 19 04 + 39 00 00 00 00 00 02 1A 05 + 39 00 00 00 00 00 02 1B 05 + 39 00 00 00 00 00 02 1C 05 + 39 00 00 00 00 00 02 1D 06 + 39 00 00 00 00 00 02 1E 06 + 39 00 00 00 00 00 02 1F 06 + 39 00 00 00 00 00 02 20 05 + 39 00 00 00 00 00 02 21 05 + 39 00 00 00 00 00 02 22 05 + 39 00 00 00 00 00 02 23 05 + 39 00 00 00 00 00 02 24 07 + 39 00 00 00 00 00 02 25 09 + 39 00 00 00 00 00 02 26 09 + 39 00 00 00 00 00 02 27 08 + 39 00 00 00 00 00 02 28 08 + 39 00 00 00 00 00 02 29 07 + 39 00 00 00 00 00 02 2A 07 + 39 00 00 00 00 00 02 2B 07 + 39 00 00 00 00 00 02 2C 07 + 39 00 00 00 00 00 02 2D 07 + 39 00 00 00 00 00 02 2E 07 + 39 00 00 00 00 00 02 2F 06 + 39 00 00 00 00 00 02 30 06 + 39 00 00 00 00 00 02 31 06 + 39 00 00 00 00 00 02 32 05 + 39 00 00 00 00 00 02 33 05 + 39 00 00 00 00 00 02 34 05 + 39 00 00 00 00 00 02 35 05 + 39 00 00 00 00 00 02 36 06 + 39 00 00 00 00 00 02 37 08 + 39 00 00 00 00 00 02 38 08 + 39 00 00 00 00 00 02 39 08 + 39 00 00 00 00 00 02 3A 08 + 39 00 00 00 00 00 02 3B 07 + 39 00 00 00 00 00 02 3C 07 + 39 00 00 00 00 00 02 3D 07 + 39 00 00 00 00 00 02 3E 08 + 39 00 00 00 00 00 02 3F 08 + 39 00 00 00 00 00 02 40 08 + 39 00 00 00 00 00 02 41 08 + 39 00 00 00 00 00 02 42 07 + 39 00 00 00 00 00 02 43 07 + 39 00 00 00 00 00 02 44 07 + 39 00 00 00 00 00 02 45 07 + 39 00 00 00 00 00 02 46 07 + 39 00 00 00 00 00 02 47 07 + 39 00 00 00 00 00 02 48 06 + 39 00 00 00 00 00 02 49 06 + 39 00 00 00 00 00 02 4A 06 + 39 00 00 00 00 00 02 4B 05 + 39 00 00 00 00 00 02 4C 05 + 39 00 00 00 00 00 02 4D 05 + 39 00 00 00 00 00 02 4E 04 + 39 00 00 00 00 00 02 4F 04 + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 03 + 39 00 00 00 00 00 02 52 04 + 39 00 00 00 00 00 02 53 04 + 39 00 00 00 00 00 02 54 04 + 39 00 00 00 00 00 02 55 04 + 39 00 00 00 00 00 02 56 05 + 39 00 00 00 00 00 02 57 05 + 39 00 00 00 00 00 02 58 05 + 39 00 00 00 00 00 02 59 05 + 39 00 00 00 00 00 02 5A 05 + 39 00 00 00 00 00 02 5B 05 + 39 00 00 00 00 00 02 5C 05 + 39 00 00 00 00 00 02 5D 05 + 39 00 00 00 00 00 02 5E 05 + 39 00 00 00 00 00 02 5F 05 + 39 00 00 00 00 00 02 60 05 + 39 00 00 00 00 00 02 61 05 + 39 00 00 00 00 00 02 62 05 + 39 00 00 00 00 00 02 63 05 + 39 00 00 00 00 00 02 64 05 + 39 00 00 00 00 00 02 65 05 + 39 00 00 00 00 00 02 66 06 + 39 00 00 00 00 00 02 67 05 + 39 00 00 00 00 00 02 68 05 + 39 00 00 00 00 00 02 69 05 + 39 00 00 00 00 00 02 6A 05 + 39 00 00 00 00 00 02 6B 05 + 39 00 00 00 00 00 02 6C 05 + 39 00 00 00 00 00 02 6D 05 + 39 00 00 00 00 00 02 6E 05 + 39 00 00 00 00 00 02 6F 05 + 39 00 00 00 00 00 02 70 05 + 39 00 00 00 00 00 02 71 05 + 39 00 00 00 00 00 02 72 04 + 39 00 00 00 00 00 02 73 04 + 39 00 00 00 00 00 02 74 04 + 39 00 00 00 00 00 02 75 04 + 39 00 00 00 00 00 02 76 03 + 39 00 00 00 00 00 02 77 03 + 39 00 00 00 00 00 02 78 03 + 39 00 00 00 00 00 02 79 02 + 39 00 00 00 00 00 02 7A 02 + 39 00 00 00 00 00 02 7B 02 + 39 00 00 00 00 00 02 7C 02 + 39 00 00 00 00 00 02 7D 02 + 39 00 00 00 00 00 02 7E 01 + 39 00 00 00 00 00 02 7F 01 + + + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 01 83 + 39 00 00 00 00 00 02 02 84 + 39 00 00 00 00 00 02 03 83 + 39 00 00 00 00 00 02 04 83 + 39 00 00 00 00 00 02 05 82 + 39 00 00 00 00 00 02 06 82 + 39 00 00 00 00 00 02 07 82 + 39 00 00 00 00 00 02 08 83 + 39 00 00 00 00 00 02 09 84 + 39 00 00 00 00 00 02 0A 84 + 39 00 00 00 00 00 02 0B 84 + 39 00 00 00 00 00 02 0C 85 + 39 00 00 00 00 00 02 0D 85 + 39 00 00 00 00 00 02 0E 86 + 39 00 00 00 00 00 02 0F 86 + 39 00 00 00 00 00 02 10 86 + 39 00 00 00 00 00 02 11 87 + 39 00 00 00 00 00 02 12 88 + 39 00 00 00 00 00 02 13 88 + 39 00 00 00 00 00 02 14 88 + 39 00 00 00 00 00 02 15 88 + 39 00 00 00 00 00 02 16 89 + 39 00 00 00 00 00 02 17 89 + 39 00 00 00 00 00 02 18 8A + 39 00 00 00 00 00 02 19 8A + 39 00 00 00 00 00 02 1A 8B + 39 00 00 00 00 00 02 1B 8B + 39 00 00 00 00 00 02 1C 8B + 39 00 00 00 00 00 02 1D 8B + 39 00 00 00 00 00 02 1E 8B + 39 00 00 00 00 00 02 1F 8C + 39 00 00 00 00 00 02 20 8C + 39 00 00 00 00 00 02 21 8C + 39 00 00 00 00 00 02 22 8C + 39 00 00 00 00 00 02 23 8C + 39 00 00 00 00 00 02 24 8D + 39 00 00 00 00 00 02 25 8E + 39 00 00 00 00 00 02 26 8E + 39 00 00 00 00 00 02 27 8F + 39 00 00 00 00 00 02 28 8F + 39 00 00 00 00 00 02 29 8E + 39 00 00 00 00 00 02 2A 8C + 39 00 00 00 00 00 02 2B 8D + 39 00 00 00 00 00 02 2C 8D + 39 00 00 00 00 00 02 2D 8E + 39 00 00 00 00 00 02 2E 8F + 39 00 00 00 00 00 02 2F 90 + 39 00 00 00 00 00 02 30 90 + 39 00 00 00 00 00 02 31 91 + 39 00 00 00 00 00 02 32 91 + 39 00 00 00 00 00 02 33 92 + 39 00 00 00 00 00 02 34 93 + 39 00 00 00 00 00 02 35 93 + 39 00 00 00 00 00 02 36 94 + 39 00 00 00 00 00 02 37 95 + 39 00 00 00 00 00 02 38 95 + 39 00 00 00 00 00 02 39 96 + 39 00 00 00 00 00 02 3A 97 + 39 00 00 00 00 00 02 3B 97 + 39 00 00 00 00 00 02 3C 97 + 39 00 00 00 00 00 02 3D 97 + 39 00 00 00 00 00 02 3E 96 + 39 00 00 00 00 00 02 3F 96 + 39 00 00 00 00 00 02 40 96 + 39 00 00 00 00 00 02 41 97 + 39 00 00 00 00 00 02 42 97 + 39 00 00 00 00 00 02 43 98 + 39 00 00 00 00 00 02 44 98 + 39 00 00 00 00 00 02 45 99 + 39 00 00 00 00 00 02 46 99 + 39 00 00 00 00 00 02 47 99 + 39 00 00 00 00 00 02 48 9A + 39 00 00 00 00 00 02 49 9A + 39 00 00 00 00 00 02 4A 9B + 39 00 00 00 00 00 02 4B 9B + 39 00 00 00 00 00 02 4C 9B + 39 00 00 00 00 00 02 4D 9C + 39 00 00 00 00 00 02 4E 9D + 39 00 00 00 00 00 02 4F 9D + 39 00 00 00 00 00 02 50 9E + 39 00 00 00 00 00 02 51 9E + 39 00 00 00 00 00 02 52 9F + 39 00 00 00 00 00 02 53 A0 + 39 00 00 00 00 00 02 54 A1 + 39 00 00 00 00 00 02 55 A2 + 39 00 00 00 00 00 02 56 A2 + 39 00 00 00 00 00 02 57 A2 + 39 00 00 00 00 00 02 58 A3 + 39 00 00 00 00 00 02 59 A4 + 39 00 00 00 00 00 02 5A A5 + 39 00 00 00 00 00 02 5B A5 + 39 00 00 00 00 00 02 5C A6 + 39 00 00 00 00 00 02 5D A6 + 39 00 00 00 00 00 02 5E A6 + 39 00 00 00 00 00 02 5F A6 + 39 00 00 00 00 00 02 60 A6 + 39 00 00 00 00 00 02 61 A6 + 39 00 00 00 00 00 02 62 A6 + 39 00 00 00 00 00 02 63 A7 + 39 00 00 00 00 00 02 64 A7 + 39 00 00 00 00 00 02 65 A7 + 39 00 00 00 00 00 02 66 A8 + 39 00 00 00 00 00 02 67 A8 + 39 00 00 00 00 00 02 68 A8 + 39 00 00 00 00 00 02 69 A8 + 39 00 00 00 00 00 02 6A A9 + 39 00 00 00 00 00 02 6B A9 + 39 00 00 00 00 00 02 6C A9 + 39 00 00 00 00 00 02 6D AA + 39 00 00 00 00 00 02 6E AA + 39 00 00 00 00 00 02 6F AA + 39 00 00 00 00 00 02 70 AB + 39 00 00 00 00 00 02 71 AB + 39 00 00 00 00 00 02 72 AB + 39 00 00 00 00 00 02 73 AC + 39 00 00 00 00 00 02 74 AC + 39 00 00 00 00 00 02 75 AD + 39 00 00 00 00 00 02 76 AD + 39 00 00 00 00 00 02 77 AD + 39 00 00 00 00 00 02 78 AD + 39 00 00 00 00 00 02 79 AE + 39 00 00 00 00 00 02 7A AE + 39 00 00 00 00 00 02 7B AF + 39 00 00 00 00 00 02 7C AF + 39 00 00 00 00 00 02 7D AF + 39 00 00 00 00 00 02 7E AF + 39 00 00 00 00 00 02 7F B1 + + 39 00 00 00 00 00 04 FF 98 81 09 + 39 00 00 00 00 00 02 01 83 + 39 00 00 00 00 00 02 02 85 + 39 00 00 00 00 00 02 03 85 + 39 00 00 00 00 00 02 04 84 + 39 00 00 00 00 00 02 05 84 + 39 00 00 00 00 00 02 06 84 + 39 00 00 00 00 00 02 07 84 + 39 00 00 00 00 00 02 08 85 + 39 00 00 00 00 00 02 09 86 + 39 00 00 00 00 00 02 0A 87 + 39 00 00 00 00 00 02 0B 87 + 39 00 00 00 00 00 02 0C 88 + 39 00 00 00 00 00 02 0D 89 + 39 00 00 00 00 00 02 0E 8A + 39 00 00 00 00 00 02 0F 8B + 39 00 00 00 00 00 02 10 8B + 39 00 00 00 00 00 02 11 8C + 39 00 00 00 00 00 02 12 8D + 39 00 00 00 00 00 02 13 8E + 39 00 00 00 00 00 02 14 8E + 39 00 00 00 00 00 02 15 8F + 39 00 00 00 00 00 02 16 8F + 39 00 00 00 00 00 02 17 90 + 39 00 00 00 00 00 02 18 91 + 39 00 00 00 00 00 02 19 92 + 39 00 00 00 00 00 02 1A 93 + 39 00 00 00 00 00 02 1B 94 + 39 00 00 00 00 00 02 1C 94 + 39 00 00 00 00 00 02 1D 95 + 39 00 00 00 00 00 02 1E 95 + 39 00 00 00 00 00 02 1F 96 + 39 00 00 00 00 00 02 20 6A + 39 00 00 00 00 00 02 21 69 + 39 00 00 00 00 00 02 22 69 + 39 00 00 00 00 00 02 23 68 + 39 00 00 00 00 00 02 24 68 + 39 00 00 00 00 00 02 25 67 + 39 00 00 00 00 00 02 26 67 + 39 00 00 00 00 00 02 27 66 + 39 00 00 00 00 00 02 28 65 + 39 00 00 00 00 00 02 29 64 + 39 00 00 00 00 00 02 2A 63 + 39 00 00 00 00 00 02 2B 62 + 39 00 00 00 00 00 02 2C 62 + 39 00 00 00 00 00 02 2D 63 + 39 00 00 00 00 00 02 2E 64 + 39 00 00 00 00 00 02 2F 63 + 39 00 00 00 00 00 02 30 62 + 39 00 00 00 00 00 02 31 61 + 39 00 00 00 00 00 02 32 60 + 39 00 00 00 00 00 02 33 5F + 39 00 00 00 00 00 02 34 5E + 39 00 00 00 00 00 02 35 5D + 39 00 00 00 00 00 02 36 5D + 39 00 00 00 00 00 02 37 5C + 39 00 00 00 00 00 02 38 5B + 39 00 00 00 00 00 02 39 5A + 39 00 00 00 00 00 02 3A 59 + 39 00 00 00 00 00 02 3B 58 + 39 00 00 00 00 00 02 3C 57 + 39 00 00 00 00 00 02 3D 56 + 39 00 00 00 00 00 02 3E 55 + 39 00 00 00 00 00 02 3F 54 + 39 00 00 00 00 00 02 40 53 + 39 00 00 00 00 00 02 41 53 + 39 00 00 00 00 00 02 42 52 + 39 00 00 00 00 00 02 43 52 + 39 00 00 00 00 00 02 44 53 + 39 00 00 00 00 00 02 45 53 + 39 00 00 00 00 00 02 46 52 + 39 00 00 00 00 00 02 47 51 + 39 00 00 00 00 00 02 48 50 + 39 00 00 00 00 00 02 49 4F + 39 00 00 00 00 00 02 4A 4E + 39 00 00 00 00 00 02 4B 4E + 39 00 00 00 00 00 02 4C 4D + 39 00 00 00 00 00 02 4D 4D + 39 00 00 00 00 00 02 4E 4C + 39 00 00 00 00 00 02 4F 4B + 39 00 00 00 00 00 02 50 4A + 39 00 00 00 00 00 02 51 49 + 39 00 00 00 00 00 02 52 49 + 39 00 00 00 00 00 02 53 48 + 39 00 00 00 00 00 02 54 47 + 39 00 00 00 00 00 02 55 46 + 39 00 00 00 00 00 02 56 45 + 39 00 00 00 00 00 02 57 44 + 39 00 00 00 00 00 02 58 43 + 39 00 00 00 00 00 02 59 42 + 39 00 00 00 00 00 02 5A 41 + 39 00 00 00 00 00 02 5B 40 + 39 00 00 00 00 00 02 5C 3F + 39 00 00 00 00 00 02 5D 3E + 39 00 00 00 00 00 02 5E 3D + 39 00 00 00 00 00 02 5F 3D + 39 00 00 00 00 00 02 60 3C + 39 00 00 00 00 00 02 61 3A + 39 00 00 00 00 00 02 62 39 + 39 00 00 00 00 00 02 63 38 + 39 00 00 00 00 00 02 64 38 + 39 00 00 00 00 00 02 65 37 + 39 00 00 00 00 00 02 66 37 + 39 00 00 00 00 00 02 67 36 + 39 00 00 00 00 00 02 68 36 + 39 00 00 00 00 00 02 69 35 + 39 00 00 00 00 00 02 6A 35 + 39 00 00 00 00 00 02 6B 34 + 39 00 00 00 00 00 02 6C 34 + 39 00 00 00 00 00 02 6D 33 + 39 00 00 00 00 00 02 6E 32 + 39 00 00 00 00 00 02 6F 32 + 39 00 00 00 00 00 02 70 31 + 39 00 00 00 00 00 02 71 30 + 39 00 00 00 00 00 02 72 30 + 39 00 00 00 00 00 02 73 2F + 39 00 00 00 00 00 02 74 2E + 39 00 00 00 00 00 02 75 2E + 39 00 00 00 00 00 02 76 2D + 39 00 00 00 00 00 02 77 2C + 39 00 00 00 00 00 02 78 2C + 39 00 00 00 00 00 02 79 2B + 39 00 00 00 00 00 02 7A 2A + 39 00 00 00 00 00 02 7B 29 + 39 00 00 00 00 00 02 7C 29 + 39 00 00 00 00 00 02 7D 28 + 39 00 00 00 00 00 02 7E 28 + 39 00 00 00 00 00 02 7F 27 + 39 01 00 00 00 00 04 FF 98 81 00 + + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 01 01 + 39 00 00 00 00 00 02 02 01 + 39 00 00 00 00 00 02 03 01 + 39 00 00 00 00 00 02 04 01 + 39 00 00 00 00 00 02 05 01 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 00 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 09 00 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 0B 00 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0D 00 + 39 00 00 00 00 00 02 0E 01 + 39 00 00 00 00 00 02 0F 01 + 39 00 00 00 00 00 02 10 01 + 39 00 00 00 00 00 02 11 01 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 13 00 + 39 00 00 00 00 00 02 14 81 + 39 00 00 00 00 00 02 15 81 + 39 00 00 00 00 00 02 16 81 + 39 00 00 00 00 00 02 17 81 + 39 00 00 00 00 00 02 18 82 + 39 00 00 00 00 00 02 19 82 + 39 00 00 00 00 00 02 1A 82 + 39 00 00 00 00 00 02 1B 82 + 39 00 00 00 00 00 02 1C 82 + 39 00 00 00 00 00 02 1D 82 + 39 00 00 00 00 00 02 1E 82 + 39 00 00 00 00 00 02 1F 83 + 39 00 00 00 00 00 02 20 83 + 39 00 00 00 00 00 02 21 83 + 39 00 00 00 00 00 02 22 82 + 39 00 00 00 00 00 02 23 82 + 39 00 00 00 00 00 02 24 83 + 39 00 00 00 00 00 02 25 83 + 39 00 00 00 00 00 02 26 83 + 39 00 00 00 00 00 02 27 82 + 39 00 00 00 00 00 02 28 82 + 39 00 00 00 00 00 02 29 81 + 39 00 00 00 00 00 02 2A 81 + 39 00 00 00 00 00 02 2B 81 + 39 00 00 00 00 00 02 2C 81 + 39 00 00 00 00 00 02 2D 81 + 39 00 00 00 00 00 02 2E 00 + 39 00 00 00 00 00 02 2F 00 + 39 00 00 00 00 00 02 30 00 + 39 00 00 00 00 00 02 31 81 + 39 00 00 00 00 00 02 32 82 + 39 00 00 00 00 00 02 33 82 + 39 00 00 00 00 00 02 34 83 + 39 00 00 00 00 00 02 35 83 + 39 00 00 00 00 00 02 36 84 + 39 00 00 00 00 00 02 37 84 + 39 00 00 00 00 00 02 38 84 + 39 00 00 00 00 00 02 39 85 + 39 00 00 00 00 00 02 3A 85 + 39 00 00 00 00 00 02 3B 85 + 39 00 00 00 00 00 02 3C 86 + 39 00 00 00 00 00 02 3D 86 + 39 00 00 00 00 00 02 3E 86 + 39 00 00 00 00 00 02 3F 86 + 39 00 00 00 00 00 02 40 86 + 39 00 00 00 00 00 02 41 86 + 39 00 00 00 00 00 02 42 86 + 39 00 00 00 00 00 02 43 86 + 39 00 00 00 00 00 02 44 86 + 39 00 00 00 00 00 02 45 86 + 39 00 00 00 00 00 02 46 85 + 39 00 00 00 00 00 02 47 85 + 39 00 00 00 00 00 02 48 85 + 39 00 00 00 00 00 02 49 84 + 39 00 00 00 00 00 02 4A 84 + 39 00 00 00 00 00 02 4B 83 + 39 00 00 00 00 00 02 4C 83 + 39 00 00 00 00 00 02 4D 83 + 39 00 00 00 00 00 02 4E 84 + 39 00 00 00 00 00 02 4F 84 + 39 00 00 00 00 00 02 50 84 + 39 00 00 00 00 00 02 51 84 + 39 00 00 00 00 00 02 52 85 + 39 00 00 00 00 00 02 53 85 + 39 00 00 00 00 00 02 54 85 + 39 00 00 00 00 00 02 55 85 + 39 00 00 00 00 00 02 56 85 + 39 00 00 00 00 00 02 57 84 + 39 00 00 00 00 00 02 58 84 + 39 00 00 00 00 00 02 59 84 + 39 00 00 00 00 00 02 5A 83 + 39 00 00 00 00 00 02 5B 83 + 39 00 00 00 00 00 02 5C 83 + 39 00 00 00 00 00 02 5D 83 + 39 00 00 00 00 00 02 5E 83 + 39 00 00 00 00 00 02 5F 84 + 39 00 00 00 00 00 02 60 84 + 39 00 00 00 00 00 02 61 84 + 39 00 00 00 00 00 02 62 84 + 39 00 00 00 00 00 02 63 84 + 39 00 00 00 00 00 02 64 84 + 39 00 00 00 00 00 02 65 83 + 39 00 00 00 00 00 02 66 83 + 39 00 00 00 00 00 02 67 83 + 39 00 00 00 00 00 02 68 82 + 39 00 00 00 00 00 02 69 83 + 39 00 00 00 00 00 02 6A 83 + 39 00 00 00 00 00 02 6B 84 + 39 00 00 00 00 00 02 6C 84 + 39 00 00 00 00 00 02 6D 84 + 39 00 00 00 00 00 02 6E 84 + 39 00 00 00 00 00 02 6F 83 + 39 00 00 00 00 00 02 70 83 + 39 00 00 00 00 00 02 71 83 + 39 00 00 00 00 00 02 72 83 + 39 00 00 00 00 00 02 73 83 + 39 00 00 00 00 00 02 74 83 + 39 00 00 00 00 00 02 75 83 + 39 00 00 00 00 00 02 76 82 + 39 00 00 00 00 00 02 77 82 + 39 00 00 00 00 00 02 78 82 + 39 00 00 00 00 00 02 79 82 + 39 00 00 00 00 00 02 7A 82 + 39 00 00 00 00 00 02 7B 81 + 39 00 00 00 00 00 02 7C 82 + 39 00 00 00 00 00 02 7D 83 + 39 00 00 00 00 00 02 7E 83 + 39 00 00 00 00 00 02 7F 81 + + 39 00 00 00 00 00 04 FF 98 81 08 + 39 00 00 00 00 00 02 01 B2 + 39 00 00 00 00 00 02 02 B2 + 39 00 00 00 00 00 02 03 B3 + 39 00 00 00 00 00 02 04 B4 + 39 00 00 00 00 00 02 05 B4 + 39 00 00 00 00 00 02 06 B5 + 39 00 00 00 00 00 02 07 B5 + 39 00 00 00 00 00 02 08 B6 + 39 00 00 00 00 00 02 09 B7 + 39 00 00 00 00 00 02 0A B7 + 39 00 00 00 00 00 02 0B B7 + 39 00 00 00 00 00 02 0C B8 + 39 00 00 00 00 00 02 0D B9 + 39 00 00 00 00 00 02 0E B9 + 39 00 00 00 00 00 02 0F BA + 39 00 00 00 00 00 02 10 BA + 39 00 00 00 00 00 02 11 BA + 39 00 00 00 00 00 02 12 BB + 39 00 00 00 00 00 02 13 BB + 39 00 00 00 00 00 02 14 BC + 39 00 00 00 00 00 02 15 BC + 39 00 00 00 00 00 02 16 BC + 39 00 00 00 00 00 02 17 BD + 39 00 00 00 00 00 02 18 BD + 39 00 00 00 00 00 02 19 BD + 39 00 00 00 00 00 02 1A BE + 39 00 00 00 00 00 02 1B BE + 39 00 00 00 00 00 02 1C BF + 39 00 00 00 00 00 02 1D BF + 39 00 00 00 00 00 02 1E BF + 39 00 00 00 00 00 02 1F BF + 39 00 00 00 00 00 02 20 BF + 39 00 00 00 00 00 02 21 C0 + 39 00 00 00 00 00 02 22 C1 + 39 00 00 00 00 00 02 23 C1 + 39 00 00 00 00 00 02 24 C2 + 39 00 00 00 00 00 02 25 C2 + 39 00 00 00 00 00 02 26 C3 + 39 00 00 00 00 00 02 27 C4 + 39 00 00 00 00 00 02 28 C4 + 39 00 00 00 00 00 02 29 C5 + 39 00 00 00 00 00 02 2A C5 + 39 00 00 00 00 00 02 2B C6 + 39 00 00 00 00 00 02 2C C6 + 39 00 00 00 00 00 02 2D C7 + 39 00 00 00 00 00 02 2E C7 + 39 00 00 00 00 00 02 2F C8 + 39 00 00 00 00 00 02 30 C8 + 39 00 00 00 00 00 02 31 C8 + 39 00 00 00 00 00 02 32 C9 + 39 00 00 00 00 00 02 33 C9 + 39 00 00 00 00 00 02 34 C9 + 39 00 00 00 00 00 02 35 C9 + 39 00 00 00 00 00 02 36 CA + 39 00 00 00 00 00 02 37 CB + 39 00 00 00 00 00 02 38 CB + 39 00 00 00 00 00 02 39 CA + 39 00 00 00 00 00 02 3A CA + 39 00 00 00 00 00 02 3B CB + 39 00 00 00 00 00 02 3C CB + 39 00 00 00 00 00 02 3D CB + 39 00 00 00 00 00 02 3E CB + 39 00 00 00 00 00 02 3F CB + 39 00 00 00 00 00 02 40 CB + 39 00 00 00 00 00 02 41 CB + 39 00 00 00 00 00 02 42 CB + 39 00 00 00 00 00 02 43 CC + 39 00 00 00 00 00 02 44 CD + 39 00 00 00 00 00 02 45 CE + 39 00 00 00 00 00 02 46 CF + 39 00 00 00 00 00 02 47 D0 + 39 00 00 00 00 00 02 48 D0 + 39 00 00 00 00 00 02 49 D1 + 39 00 00 00 00 00 02 4A D2 + 39 00 00 00 00 00 02 4B D2 + 39 00 00 00 00 00 02 4C D3 + 39 00 00 00 00 00 02 4D D4 + 39 00 00 00 00 00 02 4E D5 + 39 00 00 00 00 00 02 4F D5 + 39 00 00 00 00 00 02 50 D5 + 39 00 00 00 00 00 02 51 D6 + 39 00 00 00 00 00 02 52 D6 + 39 00 00 00 00 00 02 53 D7 + 39 00 00 00 00 00 02 54 D7 + 39 00 00 00 00 00 02 55 D8 + 39 00 00 00 00 00 02 56 D8 + 39 00 00 00 00 00 02 57 D8 + 39 00 00 00 00 00 02 58 D8 + 39 00 00 00 00 00 02 59 D9 + 39 00 00 00 00 00 02 5A D9 + 39 00 00 00 00 00 02 5B D9 + 39 00 00 00 00 00 02 5C D9 + 39 00 00 00 00 00 02 5D D9 + 39 00 00 00 00 00 02 5E D9 + 39 00 00 00 00 00 02 5F D9 + 39 00 00 00 00 00 02 60 D9 + 39 00 00 00 00 00 02 61 D9 + 39 00 00 00 00 00 02 62 D9 + 39 00 00 00 00 00 02 63 DA + 39 00 00 00 00 00 02 64 DA + 39 00 00 00 00 00 02 65 DB + 39 00 00 00 00 00 02 66 DC + 39 00 00 00 00 00 02 67 DC + 39 00 00 00 00 00 02 68 DD + 39 00 00 00 00 00 02 69 DD + 39 00 00 00 00 00 02 6A DE + 39 00 00 00 00 00 02 6B DE + 39 00 00 00 00 00 02 6C DE + 39 00 00 00 00 00 02 6D DE + 39 00 00 00 00 00 02 6E DE + 39 00 00 00 00 00 02 6F DF + 39 00 00 00 00 00 02 70 DF + 39 00 00 00 00 00 02 71 DE + 39 00 00 00 00 00 02 72 DE + 39 00 00 00 00 00 02 73 DF + 39 00 00 00 00 00 02 74 DF + 39 00 00 00 00 00 02 75 E0 + 39 00 00 00 00 00 02 76 E1 + 39 00 00 00 00 00 02 77 E1 + 39 00 00 00 00 00 02 78 E2 + 39 00 00 00 00 00 02 79 E2 + 39 00 00 00 00 00 02 7A E2 + 39 00 00 00 00 00 02 7B E3 + 39 00 00 00 00 00 02 7C E3 + 39 00 00 00 00 00 02 7D E3 + 39 00 00 00 00 00 02 7E E3 + 39 00 00 00 00 00 02 7F E3 + + + 39 00 00 00 00 00 04 FF 98 81 0A + 39 00 00 00 00 00 02 01 25 + 39 00 00 00 00 00 02 02 25 + 39 00 00 00 00 00 02 03 24 + 39 00 00 00 00 00 02 04 23 + 39 00 00 00 00 00 02 05 23 + 39 00 00 00 00 00 02 06 22 + 39 00 00 00 00 00 02 07 21 + 39 00 00 00 00 00 02 08 20 + 39 00 00 00 00 00 02 09 20 + 39 00 00 00 00 00 02 0A 1F + 39 00 00 00 00 00 02 0B 1E + 39 00 00 00 00 00 02 0C 1D + 39 00 00 00 00 00 02 0D 1B + 39 00 00 00 00 00 02 0E 1B + 39 00 00 00 00 00 02 0F 1A + 39 00 00 00 00 00 02 10 19 + 39 00 00 00 00 00 02 11 18 + 39 00 00 00 00 00 02 12 17 + 39 00 00 00 00 00 02 13 16 + 39 00 00 00 00 00 02 14 15 + 39 00 00 00 00 00 02 15 14 + 39 00 00 00 00 00 02 16 13 + 39 00 00 00 00 00 02 17 12 + 39 00 00 00 00 00 02 18 12 + 39 00 00 00 00 00 02 19 11 + 39 00 00 00 00 00 02 1A 10 + 39 00 00 00 00 00 02 1B 0F + 39 00 00 00 00 00 02 1C 0E + 39 00 00 00 00 00 02 1D 0D + 39 00 00 00 00 00 02 1E 0C + 39 00 00 00 00 00 02 1F 0C + 39 00 00 00 00 00 02 20 0B + 39 00 00 00 00 00 02 21 0A + 39 00 00 00 00 00 02 22 09 + 39 00 00 00 00 00 02 23 08 + 39 00 00 00 00 00 02 24 08 + 39 00 00 00 00 00 02 25 07 + 39 00 00 00 00 00 02 26 06 + 39 00 00 00 00 00 02 27 05 + 39 00 00 00 00 00 02 28 04 + 39 00 00 00 00 00 02 29 04 + 39 00 00 00 00 00 02 2A 03 + 39 00 00 00 00 00 02 2B 02 + 39 00 00 00 00 00 02 2C 02 + 39 00 00 00 00 00 02 2D 01 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2F 00 + 39 00 00 00 00 00 02 30 81 + 39 00 00 00 00 00 02 31 82 + 39 00 00 00 00 00 02 32 83 + 39 00 00 00 00 00 02 33 84 + 39 00 00 00 00 00 02 34 85 + 39 00 00 00 00 00 02 35 86 + 39 00 00 00 00 00 02 36 87 + 39 00 00 00 00 00 02 37 88 + 39 00 00 00 00 00 02 38 89 + 39 00 00 00 00 00 02 39 8A + 39 00 00 00 00 00 02 3A 8B + 39 00 00 00 00 00 02 3B 8B + 39 00 00 00 00 00 02 3C 8C + 39 00 00 00 00 00 02 3D 8D + 39 00 00 00 00 00 02 3E 8E + 39 00 00 00 00 00 02 3F 8F + 39 00 00 00 00 00 02 40 90 + 39 00 00 00 00 00 02 41 91 + 39 00 00 00 00 00 02 42 91 + 39 00 00 00 00 00 02 43 92 + 39 00 00 00 00 00 02 44 93 + 39 00 00 00 00 00 02 45 94 + 39 00 00 00 00 00 02 46 94 + 39 00 00 00 00 00 02 47 95 + 39 00 00 00 00 00 02 48 96 + 39 00 00 00 00 00 02 49 97 + 39 00 00 00 00 00 02 4A 98 + 39 00 00 00 00 00 02 4B 99 + 39 00 00 00 00 00 02 4C 99 + 39 00 00 00 00 00 02 4D 99 + 39 00 00 00 00 00 02 4E 9A + 39 00 00 00 00 00 02 4F 9A + 39 00 00 00 00 00 02 50 9B + 39 00 00 00 00 00 02 51 9C + 39 00 00 00 00 00 02 52 9C + 39 00 00 00 00 00 02 53 9D + 39 00 00 00 00 00 02 54 9D + 39 00 00 00 00 00 02 55 9E + 39 00 00 00 00 00 02 56 9E + 39 00 00 00 00 00 02 57 9F + 39 00 00 00 00 00 02 58 A0 + 39 00 00 00 00 00 02 59 A2 + 39 00 00 00 00 00 02 5A A3 + 39 00 00 00 00 00 02 5B A4 + 39 00 00 00 00 00 02 5C A5 + 39 00 00 00 00 00 02 5D A6 + 39 00 00 00 00 00 02 5E A7 + 39 00 00 00 00 00 02 5F A9 + 39 00 00 00 00 00 02 60 AA + 39 00 00 00 00 00 02 61 AB + 39 00 00 00 00 00 02 62 AC + 39 00 00 00 00 00 02 63 AD + 39 00 00 00 00 00 02 64 AE + 39 00 00 00 00 00 02 65 AF + 39 00 00 00 00 00 02 66 B0 + 39 00 00 00 00 00 02 67 B1 + 39 00 00 00 00 00 02 68 B2 + 39 00 00 00 00 00 02 69 B3 + 39 00 00 00 00 00 02 6A B4 + 39 00 00 00 00 00 02 6B B5 + 39 00 00 00 00 00 02 6C B6 + 39 00 00 00 00 00 02 6D B7 + 39 00 00 00 00 00 02 6E B7 + 39 00 00 00 00 00 02 6F B8 + 39 00 00 00 00 00 02 70 B9 + 39 00 00 00 00 00 02 71 BA + 39 00 00 00 00 00 02 72 BA + 39 00 00 00 00 00 02 73 BB + 39 00 00 00 00 00 02 74 BB + 39 00 00 00 00 00 02 75 BC + 39 00 00 00 00 00 02 76 BD + 39 00 00 00 00 00 02 77 BD + 39 00 00 00 00 00 02 78 BE + 39 00 00 00 00 00 02 79 BE + 39 00 00 00 00 00 02 7A BF + 39 00 00 00 00 00 02 7B BF + 39 00 00 00 00 00 02 7C C1 + 39 00 00 00 00 00 02 7D C2 + 39 00 00 00 00 00 02 7E C3 + 39 00 00 00 00 00 02 7F C4 + + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F 01 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 01 + 39 00 00 00 00 00 02 7F 81 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F B1 + 39 00 00 00 00 00 04 FF 98 81 08 + 39 00 00 00 00 00 02 00 B1 + 39 00 00 00 00 00 02 7F E3 + 39 00 00 00 00 00 04 FF 98 81 09 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F 27 + 39 00 00 00 00 00 04 FF 98 81 0A + 39 00 00 00 00 00 02 00 26 + 39 00 00 00 00 00 02 7F C4 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 80 01 + 39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 21 B0 + 39 00 00 00 00 00 02 32 02 + 39 01 00 00 00 00 04 FF 98 81 00 + 39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 21 B2 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 04 FF 98 81 0A + 39 00 00 00 00 00 02 7F C4 + 39 00 00 00 00 00 02 7E C3 + 39 00 00 00 00 00 02 7D C2 + 39 00 00 00 00 00 02 7C C1 + 39 00 00 00 00 00 02 7B BF + 39 00 00 00 00 00 02 7A BF + 39 00 00 00 00 00 02 79 BE + 39 00 00 00 00 00 02 78 BE + 39 00 00 00 00 00 02 77 BD + 39 00 00 00 00 00 02 76 BD + 39 00 00 00 00 00 02 75 BC + 39 00 00 00 00 00 02 74 BB + 39 00 00 00 00 00 02 73 BB + 39 00 00 00 00 00 02 72 BA + 39 00 00 00 00 00 02 71 BA + 39 00 00 00 00 00 02 70 B9 + 39 00 00 00 00 00 02 6F B8 + 39 00 00 00 00 00 02 6E B7 + 39 00 00 00 00 00 02 6D B7 + 39 00 00 00 00 00 02 6C B6 + 39 00 00 00 00 00 02 6B B5 + 39 00 00 00 00 00 02 6A B4 + 39 00 00 00 00 00 02 69 B3 + 39 00 00 00 00 00 02 68 B2 + 39 00 00 00 00 00 02 67 B1 + 39 00 00 00 00 00 02 66 B0 + 39 00 00 00 00 00 02 65 AF + 39 00 00 00 00 00 02 64 AE + 39 00 00 00 00 00 02 63 AD + 39 00 00 00 00 00 02 62 AC + 39 00 00 00 00 00 02 61 AB + 39 00 00 00 00 00 02 60 AA + 39 00 00 00 00 00 02 5F A9 + 39 00 00 00 00 00 02 5E A7 + 39 00 00 00 00 00 02 5D A6 + 39 00 00 00 00 00 02 5C A5 + 39 00 00 00 00 00 02 5B A4 + 39 00 00 00 00 00 02 5A A3 + 39 00 00 00 00 00 02 59 A2 + 39 00 00 00 00 00 02 58 A0 + 39 00 00 00 00 00 02 57 9F + 39 00 00 00 00 00 02 56 9E + 39 00 00 00 00 00 02 55 9E + 39 00 00 00 00 00 02 54 9D + 39 00 00 00 00 00 02 53 9D + 39 00 00 00 00 00 02 52 9C + 39 00 00 00 00 00 02 51 9C + 39 00 00 00 00 00 02 50 9B + 39 00 00 00 00 00 02 4F 9A + 39 00 00 00 00 00 02 4E 9A + 39 00 00 00 00 00 02 4D 99 + 39 00 00 00 00 00 02 4C 99 + 39 00 00 00 00 00 02 4B 99 + 39 00 00 00 00 00 02 4A 98 + 39 00 00 00 00 00 02 49 97 + 39 00 00 00 00 00 02 48 96 + 39 00 00 00 00 00 02 47 95 + 39 00 00 00 00 00 02 46 94 + 39 00 00 00 00 00 02 45 94 + 39 00 00 00 00 00 02 44 93 + 39 00 00 00 00 00 02 43 92 + 39 00 00 00 00 00 02 42 91 + 39 00 00 00 00 00 02 41 91 + 39 00 00 00 00 00 02 40 90 + 39 00 00 00 00 00 02 3F 8F + 39 00 00 00 00 00 02 3E 8E + 39 00 00 00 00 00 02 3D 8D + 39 00 00 00 00 00 02 3C 8C + 39 00 00 00 00 00 02 3B 8B + 39 00 00 00 00 00 02 3A 8B + 39 00 00 00 00 00 02 39 8A + 39 00 00 00 00 00 02 38 89 + 39 00 00 00 00 00 02 37 88 + 39 00 00 00 00 00 02 36 87 + 39 00 00 00 00 00 02 35 86 + 39 00 00 00 00 00 02 34 85 + 39 00 00 00 00 00 02 33 84 + 39 00 00 00 00 00 02 32 83 + 39 00 00 00 00 00 02 31 82 + 39 00 00 00 00 00 02 30 81 + 39 00 00 00 00 00 02 2F 00 + 39 00 00 00 00 00 02 2E 01 + 39 00 00 00 00 00 02 2D 01 + 39 00 00 00 00 00 02 2C 02 + 39 00 00 00 00 00 02 2B 02 + 39 00 00 00 00 00 02 2A 03 + 39 00 00 00 00 00 02 29 04 + 39 00 00 00 00 00 02 28 04 + 39 00 00 00 00 00 02 27 05 + 39 00 00 00 00 00 02 26 06 + 39 00 00 00 00 00 02 25 07 + 39 00 00 00 00 00 02 24 08 + 39 00 00 00 00 00 02 23 08 + 39 00 00 00 00 00 02 22 09 + 39 00 00 00 00 00 02 21 0A + 39 00 00 00 00 00 02 20 0B + 39 00 00 00 00 00 02 1F 0C + 39 00 00 00 00 00 02 1E 0C + 39 00 00 00 00 00 02 1D 0D + 39 00 00 00 00 00 02 1C 0E + 39 00 00 00 00 00 02 1B 0F + 39 00 00 00 00 00 02 1A 10 + 39 00 00 00 00 00 02 19 11 + 39 00 00 00 00 00 02 18 12 + 39 00 00 00 00 00 02 17 12 + 39 00 00 00 00 00 02 16 13 + 39 00 00 00 00 00 02 15 14 + 39 00 00 00 00 00 02 14 15 + 39 00 00 00 00 00 02 13 16 + 39 00 00 00 00 00 02 12 17 + 39 00 00 00 00 00 02 11 18 + 39 00 00 00 00 00 02 10 19 + 39 00 00 00 00 00 02 0F 1A + 39 00 00 00 00 00 02 0E 1B + 39 00 00 00 00 00 02 0D 1B + 39 00 00 00 00 00 02 0C 1D + 39 00 00 00 00 00 02 0B 1E + 39 00 00 00 00 00 02 0A 1F + 39 00 00 00 00 00 02 09 20 + 39 00 00 00 00 00 02 08 20 + 39 00 00 00 00 00 02 07 21 + 39 00 00 00 00 00 02 06 22 + 39 00 00 00 00 00 02 05 23 + 39 00 00 00 00 00 02 04 23 + 39 00 00 00 00 00 02 03 24 + 39 00 00 00 00 00 02 02 25 + 39 00 00 00 00 00 02 01 25 + + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 7F 81 + 39 00 00 00 00 00 02 7E 83 + 39 00 00 00 00 00 02 7D 83 + 39 00 00 00 00 00 02 7C 82 + 39 00 00 00 00 00 02 7B 81 + 39 00 00 00 00 00 02 7A 82 + 39 00 00 00 00 00 02 79 82 + 39 00 00 00 00 00 02 78 82 + 39 00 00 00 00 00 02 77 82 + 39 00 00 00 00 00 02 76 82 + 39 00 00 00 00 00 02 75 83 + 39 00 00 00 00 00 02 74 83 + 39 00 00 00 00 00 02 73 83 + 39 00 00 00 00 00 02 72 83 + 39 00 00 00 00 00 02 71 83 + 39 00 00 00 00 00 02 70 83 + 39 00 00 00 00 00 02 6F 83 + 39 00 00 00 00 00 02 6E 84 + 39 00 00 00 00 00 02 6D 84 + 39 00 00 00 00 00 02 6C 84 + 39 00 00 00 00 00 02 6B 84 + 39 00 00 00 00 00 02 6A 83 + 39 00 00 00 00 00 02 69 83 + 39 00 00 00 00 00 02 68 82 + 39 00 00 00 00 00 02 67 83 + 39 00 00 00 00 00 02 66 83 + 39 00 00 00 00 00 02 65 83 + 39 00 00 00 00 00 02 64 84 + 39 00 00 00 00 00 02 63 84 + 39 00 00 00 00 00 02 62 84 + 39 00 00 00 00 00 02 61 84 + 39 00 00 00 00 00 02 60 84 + 39 00 00 00 00 00 02 5F 84 + 39 00 00 00 00 00 02 5E 83 + 39 00 00 00 00 00 02 5D 83 + 39 00 00 00 00 00 02 5C 83 + 39 00 00 00 00 00 02 5B 83 + 39 00 00 00 00 00 02 5A 83 + 39 00 00 00 00 00 02 59 84 + 39 00 00 00 00 00 02 58 84 + 39 00 00 00 00 00 02 57 84 + 39 00 00 00 00 00 02 56 85 + 39 00 00 00 00 00 02 55 85 + 39 00 00 00 00 00 02 54 85 + 39 00 00 00 00 00 02 53 85 + 39 00 00 00 00 00 02 52 85 + 39 00 00 00 00 00 02 51 84 + 39 00 00 00 00 00 02 50 84 + 39 00 00 00 00 00 02 4F 84 + 39 00 00 00 00 00 02 4E 84 + 39 00 00 00 00 00 02 4D 83 + 39 00 00 00 00 00 02 4C 83 + 39 00 00 00 00 00 02 4B 83 + 39 00 00 00 00 00 02 4A 84 + 39 00 00 00 00 00 02 49 84 + 39 00 00 00 00 00 02 48 85 + 39 00 00 00 00 00 02 47 85 + 39 00 00 00 00 00 02 46 85 + 39 00 00 00 00 00 02 45 86 + 39 00 00 00 00 00 02 44 86 + 39 00 00 00 00 00 02 43 86 + 39 00 00 00 00 00 02 42 86 + 39 00 00 00 00 00 02 41 86 + 39 00 00 00 00 00 02 40 86 + 39 00 00 00 00 00 02 3F 86 + 39 00 00 00 00 00 02 3E 86 + 39 00 00 00 00 00 02 3D 86 + 39 00 00 00 00 00 02 3C 86 + 39 00 00 00 00 00 02 3B 85 + 39 00 00 00 00 00 02 3A 85 + 39 00 00 00 00 00 02 39 85 + 39 00 00 00 00 00 02 38 84 + 39 00 00 00 00 00 02 37 84 + 39 00 00 00 00 00 02 36 84 + 39 00 00 00 00 00 02 35 83 + 39 00 00 00 00 00 02 34 83 + 39 00 00 00 00 00 02 33 82 + 39 00 00 00 00 00 02 32 82 + 39 00 00 00 00 00 02 31 81 + 39 00 00 00 00 00 02 30 00 + 39 00 00 00 00 00 02 2F 00 + 39 00 00 00 00 00 02 2E 00 + 39 00 00 00 00 00 02 2D 81 + 39 00 00 00 00 00 02 2C 81 + 39 00 00 00 00 00 02 2B 81 + 39 00 00 00 00 00 02 2A 81 + 39 00 00 00 00 00 02 29 81 + 39 00 00 00 00 00 02 28 82 + 39 00 00 00 00 00 02 27 82 + 39 00 00 00 00 00 02 26 83 + 39 00 00 00 00 00 02 25 83 + 39 00 00 00 00 00 02 24 83 + 39 00 00 00 00 00 02 23 82 + 39 00 00 00 00 00 02 22 82 + 39 00 00 00 00 00 02 21 83 + 39 00 00 00 00 00 02 20 83 + 39 00 00 00 00 00 02 1F 83 + 39 00 00 00 00 00 02 1E 82 + 39 00 00 00 00 00 02 1D 82 + 39 00 00 00 00 00 02 1C 82 + 39 00 00 00 00 00 02 1B 82 + 39 00 00 00 00 00 02 1A 82 + 39 00 00 00 00 00 02 19 82 + 39 00 00 00 00 00 02 18 82 + 39 00 00 00 00 00 02 17 81 + 39 00 00 00 00 00 02 16 81 + 39 00 00 00 00 00 02 15 81 + 39 00 00 00 00 00 02 14 81 + 39 00 00 00 00 00 02 13 00 + 39 00 00 00 00 00 02 12 00 + 39 00 00 00 00 00 02 11 01 + 39 00 00 00 00 00 02 10 01 + 39 00 00 00 00 00 02 0F 01 + 39 00 00 00 00 00 02 0E 01 + 39 00 00 00 00 00 02 0D 00 + 39 00 00 00 00 00 02 0C 00 + 39 00 00 00 00 00 02 0B 00 + 39 00 00 00 00 00 02 0A 00 + 39 00 00 00 00 00 02 09 00 + 39 00 00 00 00 00 02 08 00 + 39 00 00 00 00 00 02 07 00 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 05 01 + 39 00 00 00 00 00 02 04 01 + 39 00 00 00 00 00 02 03 01 + 39 00 00 00 00 00 02 02 01 + 39 00 00 00 00 00 02 01 01 + + 39 00 00 00 00 00 04 FF 98 81 08 + 39 00 00 00 00 00 02 7F E3 + 39 00 00 00 00 00 02 7E E3 + 39 00 00 00 00 00 02 7D E3 + 39 00 00 00 00 00 02 7C E3 + 39 00 00 00 00 00 02 7B E3 + 39 00 00 00 00 00 02 7A E2 + 39 00 00 00 00 00 02 79 E2 + 39 00 00 00 00 00 02 78 E2 + 39 00 00 00 00 00 02 77 E1 + 39 00 00 00 00 00 02 76 E1 + 39 00 00 00 00 00 02 75 E0 + 39 00 00 00 00 00 02 74 DF + 39 00 00 00 00 00 02 73 DF + 39 00 00 00 00 00 02 72 DE + 39 00 00 00 00 00 02 71 DE + 39 00 00 00 00 00 02 70 DF + 39 00 00 00 00 00 02 6F DF + 39 00 00 00 00 00 02 6E DE + 39 00 00 00 00 00 02 6D DE + 39 00 00 00 00 00 02 6C DE + 39 00 00 00 00 00 02 6B DE + 39 00 00 00 00 00 02 6A DE + 39 00 00 00 00 00 02 69 DD + 39 00 00 00 00 00 02 68 DD + 39 00 00 00 00 00 02 67 DC + 39 00 00 00 00 00 02 66 DC + 39 00 00 00 00 00 02 65 DB + 39 00 00 00 00 00 02 64 DA + 39 00 00 00 00 00 02 63 DA + 39 00 00 00 00 00 02 62 D9 + 39 00 00 00 00 00 02 61 D9 + 39 00 00 00 00 00 02 60 D9 + 39 00 00 00 00 00 02 5F D9 + 39 00 00 00 00 00 02 5E D9 + 39 00 00 00 00 00 02 5D D9 + 39 00 00 00 00 00 02 5C D9 + 39 00 00 00 00 00 02 5B D9 + 39 00 00 00 00 00 02 5A D9 + 39 00 00 00 00 00 02 59 D9 + 39 00 00 00 00 00 02 58 D8 + 39 00 00 00 00 00 02 57 D8 + 39 00 00 00 00 00 02 56 D8 + 39 00 00 00 00 00 02 55 D8 + 39 00 00 00 00 00 02 54 D7 + 39 00 00 00 00 00 02 53 D7 + 39 00 00 00 00 00 02 52 D6 + 39 00 00 00 00 00 02 51 D6 + 39 00 00 00 00 00 02 50 D5 + 39 00 00 00 00 00 02 4F D5 + 39 00 00 00 00 00 02 4E D5 + 39 00 00 00 00 00 02 4D D4 + 39 00 00 00 00 00 02 4C D3 + 39 00 00 00 00 00 02 4B D2 + 39 00 00 00 00 00 02 4A D2 + 39 00 00 00 00 00 02 49 D1 + 39 00 00 00 00 00 02 48 D0 + 39 00 00 00 00 00 02 47 D0 + 39 00 00 00 00 00 02 46 CF + 39 00 00 00 00 00 02 45 CE + 39 00 00 00 00 00 02 44 CD + 39 00 00 00 00 00 02 43 CC + 39 00 00 00 00 00 02 42 CB + 39 00 00 00 00 00 02 41 CB + 39 00 00 00 00 00 02 40 CB + 39 00 00 00 00 00 02 3F CB + 39 00 00 00 00 00 02 3E CB + 39 00 00 00 00 00 02 3D CB + 39 00 00 00 00 00 02 3C CB + 39 00 00 00 00 00 02 3B CB + 39 00 00 00 00 00 02 3A CA + 39 00 00 00 00 00 02 39 CA + 39 00 00 00 00 00 02 38 CB + 39 00 00 00 00 00 02 37 CB + 39 00 00 00 00 00 02 36 CA + 39 00 00 00 00 00 02 35 C9 + 39 00 00 00 00 00 02 34 C9 + 39 00 00 00 00 00 02 33 C9 + 39 00 00 00 00 00 02 32 C9 + 39 00 00 00 00 00 02 31 C8 + 39 00 00 00 00 00 02 30 C8 + 39 00 00 00 00 00 02 2F C8 + 39 00 00 00 00 00 02 2E C7 + 39 00 00 00 00 00 02 2D C7 + 39 00 00 00 00 00 02 2C C6 + 39 00 00 00 00 00 02 2B C6 + 39 00 00 00 00 00 02 2A C5 + 39 00 00 00 00 00 02 29 C5 + 39 00 00 00 00 00 02 28 C4 + 39 00 00 00 00 00 02 27 C4 + 39 00 00 00 00 00 02 26 C3 + 39 00 00 00 00 00 02 25 C2 + 39 00 00 00 00 00 02 24 C2 + 39 00 00 00 00 00 02 23 C1 + 39 00 00 00 00 00 02 22 C1 + 39 00 00 00 00 00 02 21 C0 + 39 00 00 00 00 00 02 20 BF + 39 00 00 00 00 00 02 1F BF + 39 00 00 00 00 00 02 1E BF + 39 00 00 00 00 00 02 1D BF + 39 00 00 00 00 00 02 1C BF + 39 00 00 00 00 00 02 1B BE + 39 00 00 00 00 00 02 1A BE + 39 00 00 00 00 00 02 19 BD + 39 00 00 00 00 00 02 18 BD + 39 00 00 00 00 00 02 17 BD + 39 00 00 00 00 00 02 16 BC + 39 00 00 00 00 00 02 15 BC + 39 00 00 00 00 00 02 14 BC + 39 00 00 00 00 00 02 13 BB + 39 00 00 00 00 00 02 12 BB + 39 00 00 00 00 00 02 11 BA + 39 00 00 00 00 00 02 10 BA + 39 00 00 00 00 00 02 0F BA + 39 00 00 00 00 00 02 0E B9 + 39 00 00 00 00 00 02 0D B9 + 39 00 00 00 00 00 02 0C B8 + 39 00 00 00 00 00 02 0B B7 + 39 00 00 00 00 00 02 0A B7 + 39 00 00 00 00 00 02 09 B7 + 39 00 00 00 00 00 02 08 B6 + 39 00 00 00 00 00 02 07 B5 + 39 00 00 00 00 00 02 06 B5 + 39 00 00 00 00 00 02 05 B4 + 39 00 00 00 00 00 02 04 B4 + 39 00 00 00 00 00 02 03 B3 + 39 00 00 00 00 00 02 02 B2 + 39 00 00 00 00 00 02 01 B2 + + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F 01 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 01 + 39 00 00 00 00 00 02 7F 81 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F B1 + 39 00 00 00 00 00 04 FF 98 81 08 + 39 00 00 00 00 00 02 00 B1 + 39 00 00 00 00 00 02 7F E3 + 39 00 00 00 00 00 04 FF 98 81 09 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F 27 + 39 00 00 00 00 00 04 FF 98 81 0A + 39 00 00 00 00 00 02 00 26 + 39 00 00 00 00 00 02 7F C4 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 80 01 + 39 01 00 00 00 00 04 FF 98 81 00 + + 39 00 00 00 00 00 04 FF 98 81 09 + 39 00 00 00 00 00 02 7F 27 + 39 00 00 00 00 00 02 7E 28 + 39 00 00 00 00 00 02 7D 28 + 39 00 00 00 00 00 02 7C 29 + 39 00 00 00 00 00 02 7B 29 + 39 00 00 00 00 00 02 7A 2A + 39 00 00 00 00 00 02 79 2B + 39 00 00 00 00 00 02 78 2C + 39 00 00 00 00 00 02 77 2C + 39 00 00 00 00 00 02 76 2D + 39 00 00 00 00 00 02 75 2E + 39 00 00 00 00 00 02 74 2E + 39 00 00 00 00 00 02 73 2F + 39 00 00 00 00 00 02 72 30 + 39 00 00 00 00 00 02 71 30 + 39 00 00 00 00 00 02 70 31 + 39 00 00 00 00 00 02 6F 32 + 39 00 00 00 00 00 02 6E 32 + 39 00 00 00 00 00 02 6D 33 + 39 00 00 00 00 00 02 6C 34 + 39 00 00 00 00 00 02 6B 34 + 39 00 00 00 00 00 02 6A 35 + 39 00 00 00 00 00 02 69 35 + 39 00 00 00 00 00 02 68 36 + 39 00 00 00 00 00 02 67 36 + 39 00 00 00 00 00 02 66 37 + 39 00 00 00 00 00 02 65 37 + 39 00 00 00 00 00 02 64 38 + 39 00 00 00 00 00 02 63 38 + 39 00 00 00 00 00 02 62 39 + 39 00 00 00 00 00 02 61 3A + 39 00 00 00 00 00 02 60 3C + 39 00 00 00 00 00 02 5F 3D + 39 00 00 00 00 00 02 5E 3D + 39 00 00 00 00 00 02 5D 3E + 39 00 00 00 00 00 02 5C 3F + 39 00 00 00 00 00 02 5B 40 + 39 00 00 00 00 00 02 5A 41 + 39 00 00 00 00 00 02 59 42 + 39 00 00 00 00 00 02 58 43 + 39 00 00 00 00 00 02 57 44 + 39 00 00 00 00 00 02 56 45 + 39 00 00 00 00 00 02 55 46 + 39 00 00 00 00 00 02 54 47 + 39 00 00 00 00 00 02 53 48 + 39 00 00 00 00 00 02 52 49 + 39 00 00 00 00 00 02 51 49 + 39 00 00 00 00 00 02 50 4A + 39 00 00 00 00 00 02 4F 4B + 39 00 00 00 00 00 02 4E 4C + 39 00 00 00 00 00 02 4D 4D + 39 00 00 00 00 00 02 4C 4D + 39 00 00 00 00 00 02 4B 4E + 39 00 00 00 00 00 02 4A 4E + 39 00 00 00 00 00 02 49 4F + 39 00 00 00 00 00 02 48 50 + 39 00 00 00 00 00 02 47 51 + 39 00 00 00 00 00 02 46 52 + 39 00 00 00 00 00 02 45 53 + 39 00 00 00 00 00 02 44 53 + 39 00 00 00 00 00 02 43 52 + 39 00 00 00 00 00 02 42 52 + 39 00 00 00 00 00 02 41 53 + 39 00 00 00 00 00 02 40 53 + 39 00 00 00 00 00 02 3F 54 + 39 00 00 00 00 00 02 3E 55 + 39 00 00 00 00 00 02 3D 56 + 39 00 00 00 00 00 02 3C 57 + 39 00 00 00 00 00 02 3B 58 + 39 00 00 00 00 00 02 3A 59 + 39 00 00 00 00 00 02 39 5A + 39 00 00 00 00 00 02 38 5B + 39 00 00 00 00 00 02 37 5C + 39 00 00 00 00 00 02 36 5D + 39 00 00 00 00 00 02 35 5D + 39 00 00 00 00 00 02 34 5E + 39 00 00 00 00 00 02 33 5F + 39 00 00 00 00 00 02 32 60 + 39 00 00 00 00 00 02 31 61 + 39 00 00 00 00 00 02 30 62 + 39 00 00 00 00 00 02 2F 63 + 39 00 00 00 00 00 02 2E 64 + 39 00 00 00 00 00 02 2D 63 + 39 00 00 00 00 00 02 2C 62 + 39 00 00 00 00 00 02 2B 62 + 39 00 00 00 00 00 02 2A 63 + 39 00 00 00 00 00 02 29 64 + 39 00 00 00 00 00 02 28 65 + 39 00 00 00 00 00 02 27 66 + 39 00 00 00 00 00 02 26 67 + 39 00 00 00 00 00 02 25 67 + 39 00 00 00 00 00 02 24 68 + 39 00 00 00 00 00 02 23 68 + 39 00 00 00 00 00 02 22 69 + 39 00 00 00 00 00 02 21 69 + 39 00 00 00 00 00 02 20 6A + 39 00 00 00 00 00 02 1F 96 + 39 00 00 00 00 00 02 1E 95 + 39 00 00 00 00 00 02 1D 95 + 39 00 00 00 00 00 02 1C 94 + 39 00 00 00 00 00 02 1B 94 + 39 00 00 00 00 00 02 1A 93 + 39 00 00 00 00 00 02 19 92 + 39 00 00 00 00 00 02 18 91 + 39 00 00 00 00 00 02 17 90 + 39 00 00 00 00 00 02 16 8F + 39 00 00 00 00 00 02 15 8F + 39 00 00 00 00 00 02 14 8E + 39 00 00 00 00 00 02 13 8E + 39 00 00 00 00 00 02 12 8D + 39 00 00 00 00 00 02 11 8C + 39 00 00 00 00 00 02 10 8B + 39 00 00 00 00 00 02 0F 8B + 39 00 00 00 00 00 02 0E 8A + 39 00 00 00 00 00 02 0D 89 + 39 00 00 00 00 00 02 0C 88 + 39 00 00 00 00 00 02 0B 87 + 39 00 00 00 00 00 02 0A 87 + 39 00 00 00 00 00 02 09 86 + 39 00 00 00 00 00 02 08 85 + 39 00 00 00 00 00 02 07 84 + 39 00 00 00 00 00 02 06 84 + 39 00 00 00 00 00 02 05 84 + 39 00 00 00 00 00 02 04 84 + 39 00 00 00 00 00 02 03 85 + 39 00 00 00 00 00 02 02 85 + 39 00 00 00 00 00 02 01 83 + + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 7F 01 + 39 00 00 00 00 00 02 7E 01 + 39 00 00 00 00 00 02 7D 02 + 39 00 00 00 00 00 02 7C 02 + 39 00 00 00 00 00 02 7B 02 + 39 00 00 00 00 00 02 7A 02 + 39 00 00 00 00 00 02 79 02 + 39 00 00 00 00 00 02 78 03 + 39 00 00 00 00 00 02 77 03 + 39 00 00 00 00 00 02 76 03 + 39 00 00 00 00 00 02 75 04 + 39 00 00 00 00 00 02 74 04 + 39 00 00 00 00 00 02 73 04 + 39 00 00 00 00 00 02 72 04 + 39 00 00 00 00 00 02 71 05 + 39 00 00 00 00 00 02 70 05 + 39 00 00 00 00 00 02 6F 05 + 39 00 00 00 00 00 02 6E 05 + 39 00 00 00 00 00 02 6D 05 + 39 00 00 00 00 00 02 6C 05 + 39 00 00 00 00 00 02 6B 05 + 39 00 00 00 00 00 02 6A 05 + 39 00 00 00 00 00 02 69 05 + 39 00 00 00 00 00 02 68 05 + 39 00 00 00 00 00 02 67 05 + 39 00 00 00 00 00 02 66 06 + 39 00 00 00 00 00 02 65 05 + 39 00 00 00 00 00 02 64 05 + 39 00 00 00 00 00 02 63 05 + 39 00 00 00 00 00 02 62 05 + 39 00 00 00 00 00 02 61 05 + 39 00 00 00 00 00 02 60 05 + 39 00 00 00 00 00 02 5F 05 + 39 00 00 00 00 00 02 5E 05 + 39 00 00 00 00 00 02 5D 05 + 39 00 00 00 00 00 02 5C 05 + 39 00 00 00 00 00 02 5B 05 + 39 00 00 00 00 00 02 5A 05 + 39 00 00 00 00 00 02 59 05 + 39 00 00 00 00 00 02 58 05 + 39 00 00 00 00 00 02 57 05 + 39 00 00 00 00 00 02 56 05 + 39 00 00 00 00 00 02 55 04 + 39 00 00 00 00 00 02 54 04 + 39 00 00 00 00 00 02 53 04 + 39 00 00 00 00 00 02 52 04 + 39 00 00 00 00 00 02 51 03 + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 4F 04 + 39 00 00 00 00 00 02 4E 04 + 39 00 00 00 00 00 02 4D 05 + 39 00 00 00 00 00 02 4C 05 + 39 00 00 00 00 00 02 4B 05 + 39 00 00 00 00 00 02 4A 06 + 39 00 00 00 00 00 02 49 06 + 39 00 00 00 00 00 02 48 06 + 39 00 00 00 00 00 02 47 07 + 39 00 00 00 00 00 02 46 07 + 39 00 00 00 00 00 02 45 07 + 39 00 00 00 00 00 02 44 07 + 39 00 00 00 00 00 02 43 07 + 39 00 00 00 00 00 02 42 07 + 39 00 00 00 00 00 02 41 08 + 39 00 00 00 00 00 02 40 08 + 39 00 00 00 00 00 02 3F 08 + 39 00 00 00 00 00 02 3E 08 + 39 00 00 00 00 00 02 3D 07 + 39 00 00 00 00 00 02 3C 07 + 39 00 00 00 00 00 02 3B 07 + 39 00 00 00 00 00 02 3A 08 + 39 00 00 00 00 00 02 39 08 + 39 00 00 00 00 00 02 38 08 + 39 00 00 00 00 00 02 37 08 + 39 00 00 00 00 00 02 36 06 + 39 00 00 00 00 00 02 35 05 + 39 00 00 00 00 00 02 34 05 + 39 00 00 00 00 00 02 33 05 + 39 00 00 00 00 00 02 32 05 + 39 00 00 00 00 00 02 31 06 + 39 00 00 00 00 00 02 30 06 + 39 00 00 00 00 00 02 2F 06 + 39 00 00 00 00 00 02 2E 07 + 39 00 00 00 00 00 02 2D 07 + 39 00 00 00 00 00 02 2C 07 + 39 00 00 00 00 00 02 2B 07 + 39 00 00 00 00 00 02 2A 07 + 39 00 00 00 00 00 02 29 07 + 39 00 00 00 00 00 02 28 08 + 39 00 00 00 00 00 02 27 08 + 39 00 00 00 00 00 02 26 09 + 39 00 00 00 00 00 02 25 09 + 39 00 00 00 00 00 02 24 07 + 39 00 00 00 00 00 02 23 05 + 39 00 00 00 00 00 02 22 05 + 39 00 00 00 00 00 02 21 05 + 39 00 00 00 00 00 02 20 05 + 39 00 00 00 00 00 02 1F 06 + 39 00 00 00 00 00 02 1E 06 + 39 00 00 00 00 00 02 1D 06 + 39 00 00 00 00 00 02 1C 05 + 39 00 00 00 00 00 02 1B 05 + 39 00 00 00 00 00 02 1A 05 + 39 00 00 00 00 00 02 19 04 + 39 00 00 00 00 00 02 18 04 + 39 00 00 00 00 00 02 17 04 + 39 00 00 00 00 00 02 16 04 + 39 00 00 00 00 00 02 15 04 + 39 00 00 00 00 00 02 14 04 + 39 00 00 00 00 00 02 13 04 + 39 00 00 00 00 00 02 12 04 + 39 00 00 00 00 00 02 11 04 + 39 00 00 00 00 00 02 10 04 + 39 00 00 00 00 00 02 0F 03 + 39 00 00 00 00 00 02 0E 04 + 39 00 00 00 00 00 02 0D 04 + 39 00 00 00 00 00 02 0C 04 + 39 00 00 00 00 00 02 0B 03 + 39 00 00 00 00 00 02 0A 04 + 39 00 00 00 00 00 02 09 04 + 39 00 00 00 00 00 02 08 04 + 39 00 00 00 00 00 02 07 03 + 39 00 00 00 00 00 02 06 03 + 39 00 00 00 00 00 02 05 04 + 39 00 00 00 00 00 02 04 03 + 39 00 00 00 00 00 02 03 01 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 01 82 + + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 D3 39 + 39 00 00 00 00 00 02 D2 67 + 39 00 00 00 00 00 02 D1 58 + 39 00 00 00 00 00 02 D0 29 + 39 00 00 00 00 00 02 CF 24 + 39 00 00 00 00 00 02 CE 50 + 39 00 00 00 00 00 02 CD 1C + 39 00 00 00 00 00 02 CC 1D + 39 00 00 00 00 00 02 CB 8F + 39 00 00 00 00 00 02 CA 2A + 39 00 00 00 00 00 02 C9 1D + 39 00 00 00 00 00 02 C8 9D + 39 00 00 00 00 00 02 C7 1F + 39 00 00 00 00 00 02 C6 1D + 39 00 00 00 00 00 02 C5 29 + 39 00 00 00 00 00 02 C4 16 + 39 00 00 00 00 00 02 C3 13 + 39 00 00 00 00 00 02 C2 2D + 39 00 00 00 00 00 02 C1 1D + 39 00 00 00 00 00 02 C0 00 + + 39 00 00 00 00 00 02 B3 39 + 39 00 00 00 00 00 02 B2 68 + 39 00 00 00 00 00 02 B1 59 + 39 00 00 00 00 00 02 B0 28 + 39 00 00 00 00 00 02 AF 23 + 39 00 00 00 00 00 02 AE 4F + 39 00 00 00 00 00 02 AD 1C + 39 00 00 00 00 00 02 AC 1D + 39 00 00 00 00 00 02 AB 90 + 39 00 00 00 00 00 02 AA 2A + 39 00 00 00 00 00 02 A9 1D + 39 00 00 00 00 00 02 A8 9E + 39 00 00 00 00 00 02 A7 1E + 39 00 00 00 00 00 02 A6 1D + 39 00 00 00 00 00 02 A5 29 + 39 00 00 00 00 00 02 A4 15 + 39 00 00 00 00 00 02 A3 12 + 39 00 00 00 00 00 02 A2 2E + 39 00 00 00 00 00 02 A1 1E + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 f6 02 + + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 7F B1 + 39 00 00 00 00 00 02 7E AF + 39 00 00 00 00 00 02 7D AF + 39 00 00 00 00 00 02 7C AF + 39 00 00 00 00 00 02 7B AF + 39 00 00 00 00 00 02 7A AE + 39 00 00 00 00 00 02 79 AE + 39 00 00 00 00 00 02 78 AD + 39 00 00 00 00 00 02 77 AD + 39 00 00 00 00 00 02 76 AD + 39 00 00 00 00 00 02 75 AD + 39 00 00 00 00 00 02 74 AC + 39 00 00 00 00 00 02 73 AC + 39 00 00 00 00 00 02 72 AB + 39 00 00 00 00 00 02 71 AB + 39 00 00 00 00 00 02 70 AB + 39 00 00 00 00 00 02 6F AA + 39 00 00 00 00 00 02 6E AA + 39 00 00 00 00 00 02 6D AA + 39 00 00 00 00 00 02 6C A9 + 39 00 00 00 00 00 02 6B A9 + 39 00 00 00 00 00 02 6A A9 + 39 00 00 00 00 00 02 69 A8 + 39 00 00 00 00 00 02 68 A8 + 39 00 00 00 00 00 02 67 A8 + 39 00 00 00 00 00 02 66 A8 + 39 00 00 00 00 00 02 65 A7 + 39 00 00 00 00 00 02 64 A7 + 39 00 00 00 00 00 02 63 A7 + 39 00 00 00 00 00 02 62 A6 + 39 00 00 00 00 00 02 61 A6 + 39 00 00 00 00 00 02 60 A6 + 39 00 00 00 00 00 02 5F A6 + 39 00 00 00 00 00 02 5E A6 + 39 00 00 00 00 00 02 5D A6 + 39 00 00 00 00 00 02 5C A6 + 39 00 00 00 00 00 02 5B A5 + 39 00 00 00 00 00 02 5A A5 + 39 00 00 00 00 00 02 59 A4 + 39 00 00 00 00 00 02 58 A3 + 39 00 00 00 00 00 02 57 A2 + 39 00 00 00 00 00 02 56 A2 + 39 00 00 00 00 00 02 55 A2 + 39 00 00 00 00 00 02 54 A1 + 39 00 00 00 00 00 02 53 A0 + 39 00 00 00 00 00 02 52 9F + 39 00 00 00 00 00 02 51 9E + 39 00 00 00 00 00 02 50 9E + 39 00 00 00 00 00 02 4F 9D + 39 00 00 00 00 00 02 4E 9D + 39 00 00 00 00 00 02 4D 9C + 39 00 00 00 00 00 02 4C 9B + 39 00 00 00 00 00 02 4B 9B + 39 00 00 00 00 00 02 4A 9B + 39 00 00 00 00 00 02 49 9A + 39 00 00 00 00 00 02 48 9A + 39 00 00 00 00 00 02 47 99 + 39 00 00 00 00 00 02 46 99 + 39 00 00 00 00 00 02 45 99 + 39 00 00 00 00 00 02 44 98 + 39 00 00 00 00 00 02 43 98 + 39 00 00 00 00 00 02 42 97 + 39 00 00 00 00 00 02 41 97 + 39 00 00 00 00 00 02 40 96 + 39 00 00 00 00 00 02 3F 96 + 39 00 00 00 00 00 02 3E 96 + 39 00 00 00 00 00 02 3D 97 + 39 00 00 00 00 00 02 3C 97 + 39 00 00 00 00 00 02 3B 97 + 39 00 00 00 00 00 02 3A 97 + 39 00 00 00 00 00 02 39 96 + 39 00 00 00 00 00 02 38 95 + 39 00 00 00 00 00 02 37 95 + 39 00 00 00 00 00 02 36 94 + 39 00 00 00 00 00 02 35 93 + 39 00 00 00 00 00 02 34 93 + 39 00 00 00 00 00 02 33 92 + 39 00 00 00 00 00 02 32 91 + 39 00 00 00 00 00 02 31 91 + 39 00 00 00 00 00 02 30 90 + 39 00 00 00 00 00 02 2F 90 + 39 00 00 00 00 00 02 2E 8F + 39 00 00 00 00 00 02 2D 8E + 39 00 00 00 00 00 02 2C 8D + 39 00 00 00 00 00 02 2B 8D + 39 00 00 00 00 00 02 2A 8C + 39 00 00 00 00 00 02 29 8E + 39 00 00 00 00 00 02 28 8F + 39 00 00 00 00 00 02 27 8F + 39 00 00 00 00 00 02 26 8E + 39 00 00 00 00 00 02 25 8E + 39 00 00 00 00 00 02 24 8D + 39 00 00 00 00 00 02 23 8C + 39 00 00 00 00 00 02 22 8C + 39 00 00 00 00 00 02 21 8C + 39 00 00 00 00 00 02 20 8C + 39 00 00 00 00 00 02 1F 8C + 39 00 00 00 00 00 02 1E 8B + 39 00 00 00 00 00 02 1D 8B + 39 00 00 00 00 00 02 1C 8B + 39 00 00 00 00 00 02 1B 8B + 39 00 00 00 00 00 02 1A 8B + 39 00 00 00 00 00 02 19 8A + 39 00 00 00 00 00 02 18 8A + 39 00 00 00 00 00 02 17 89 + 39 00 00 00 00 00 02 16 89 + 39 00 00 00 00 00 02 15 88 + 39 00 00 00 00 00 02 14 88 + 39 00 00 00 00 00 02 13 88 + 39 00 00 00 00 00 02 12 88 + 39 00 00 00 00 00 02 11 87 + 39 00 00 00 00 00 02 10 86 + 39 00 00 00 00 00 02 0F 86 + 39 00 00 00 00 00 02 0E 86 + 39 00 00 00 00 00 02 0D 85 + 39 00 00 00 00 00 02 0C 85 + 39 00 00 00 00 00 02 0B 84 + 39 00 00 00 00 00 02 0A 84 + 39 00 00 00 00 00 02 09 84 + 39 00 00 00 00 00 02 08 83 + 39 00 00 00 00 00 02 07 82 + 39 00 00 00 00 00 02 06 82 + 39 00 00 00 00 00 02 05 82 + 39 00 00 00 00 00 02 04 83 + 39 00 00 00 00 00 02 03 83 + 39 00 00 00 00 00 02 02 84 + 39 00 00 00 00 00 02 01 83 + + + 39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 21 B0 + 39 00 00 00 00 00 02 32 02 + 39 01 00 00 00 00 04 FF 98 81 00 + + ]; + + + qcom,mdss-dsi-panel-eye-command05 = [39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 21 B2 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 f6 02 + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 A1 1E + 39 00 00 00 00 00 02 A2 2E + 39 00 00 00 00 00 02 A3 12 + 39 00 00 00 00 00 02 A4 15 + 39 00 00 00 00 00 02 A5 29 + 39 00 00 00 00 00 02 A6 1D + 39 00 00 00 00 00 02 A7 1E + 39 00 00 00 00 00 02 A8 9E + 39 00 00 00 00 00 02 A9 1D + 39 00 00 00 00 00 02 AA 2A + 39 00 00 00 00 00 02 AB 90 + 39 00 00 00 00 00 02 AC 1D + 39 00 00 00 00 00 02 AD 1C + 39 00 00 00 00 00 02 AE 4F + 39 00 00 00 00 00 02 AF 23 + 39 00 00 00 00 00 02 B0 28 + 39 00 00 00 00 00 02 B1 59 + 39 00 00 00 00 00 02 B2 68 + 39 00 00 00 00 00 02 B3 39 + + 39 00 00 00 00 00 02 C0 00 + 39 00 00 00 00 00 02 C1 1D + 39 00 00 00 00 00 02 C2 2D + 39 00 00 00 00 00 02 C3 13 + 39 00 00 00 00 00 02 C4 16 + 39 00 00 00 00 00 02 C5 29 + 39 00 00 00 00 00 02 C6 1D + 39 00 00 00 00 00 02 C7 1F + 39 00 00 00 00 00 02 C8 9D + 39 00 00 00 00 00 02 C9 1D + 39 00 00 00 00 00 02 CA 2A + 39 00 00 00 00 00 02 CB 8F + 39 00 00 00 00 00 02 CC 1D + 39 00 00 00 00 00 02 CD 1C + 39 00 00 00 00 00 02 CE 50 + 39 00 00 00 00 00 02 CF 24 + 39 00 00 00 00 00 02 D0 29 + 39 00 00 00 00 00 02 D1 58 + 39 00 00 00 00 00 02 D2 67 + 39 00 00 00 00 00 02 D3 39 + + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 01 82 + 39 00 00 00 00 00 02 02 81 + 39 00 00 00 00 00 02 03 01 + 39 00 00 00 00 00 02 04 03 + 39 00 00 00 00 00 02 05 04 + 39 00 00 00 00 00 02 06 03 + 39 00 00 00 00 00 02 07 03 + 39 00 00 00 00 00 02 08 04 + 39 00 00 00 00 00 02 09 04 + 39 00 00 00 00 00 02 0A 04 + 39 00 00 00 00 00 02 0B 03 + 39 00 00 00 00 00 02 0C 04 + 39 00 00 00 00 00 02 0D 04 + 39 00 00 00 00 00 02 0E 03 + 39 00 00 00 00 00 02 0F 03 + 39 00 00 00 00 00 02 10 04 + 39 00 00 00 00 00 02 11 04 + 39 00 00 00 00 00 02 12 04 + 39 00 00 00 00 00 02 13 04 + 39 00 00 00 00 00 02 14 04 + 39 00 00 00 00 00 02 15 03 + 39 00 00 00 00 00 02 16 03 + 39 00 00 00 00 00 02 17 03 + 39 00 00 00 00 00 02 18 04 + 39 00 00 00 00 00 02 19 04 + 39 00 00 00 00 00 02 1A 04 + 39 00 00 00 00 00 02 1B 05 + 39 00 00 00 00 00 02 1C 05 + 39 00 00 00 00 00 02 1D 05 + 39 00 00 00 00 00 02 1E 06 + 39 00 00 00 00 00 02 1F 05 + 39 00 00 00 00 00 02 20 05 + 39 00 00 00 00 00 02 21 05 + 39 00 00 00 00 00 02 22 05 + 39 00 00 00 00 00 02 23 05 + 39 00 00 00 00 00 02 24 07 + 39 00 00 00 00 00 02 25 09 + 39 00 00 00 00 00 02 26 08 + 39 00 00 00 00 00 02 27 08 + 39 00 00 00 00 00 02 28 08 + 39 00 00 00 00 00 02 29 07 + 39 00 00 00 00 00 02 2A 07 + 39 00 00 00 00 00 02 2B 07 + 39 00 00 00 00 00 02 2C 07 + 39 00 00 00 00 00 02 2D 07 + 39 00 00 00 00 00 02 2E 06 + 39 00 00 00 00 00 02 2F 06 + 39 00 00 00 00 00 02 30 06 + 39 00 00 00 00 00 02 31 05 + 39 00 00 00 00 00 02 32 05 + 39 00 00 00 00 00 02 33 04 + 39 00 00 00 00 00 02 34 05 + 39 00 00 00 00 00 02 35 05 + 39 00 00 00 00 00 02 36 06 + 39 00 00 00 00 00 02 37 07 + 39 00 00 00 00 00 02 38 08 + 39 00 00 00 00 00 02 39 07 + 39 00 00 00 00 00 02 3A 07 + 39 00 00 00 00 00 02 3B 07 + 39 00 00 00 00 00 02 3C 07 + 39 00 00 00 00 00 02 3D 07 + 39 00 00 00 00 00 02 3E 07 + 39 00 00 00 00 00 02 3F 07 + 39 00 00 00 00 00 02 40 07 + 39 00 00 00 00 00 02 41 07 + 39 00 00 00 00 00 02 42 07 + 39 00 00 00 00 00 02 43 07 + 39 00 00 00 00 00 02 44 07 + 39 00 00 00 00 00 02 45 06 + 39 00 00 00 00 00 02 46 06 + 39 00 00 00 00 00 02 47 06 + 39 00 00 00 00 00 02 48 06 + 39 00 00 00 00 00 02 49 06 + 39 00 00 00 00 00 02 4A 05 + 39 00 00 00 00 00 02 4B 05 + 39 00 00 00 00 00 02 4C 04 + 39 00 00 00 00 00 02 4D 04 + 39 00 00 00 00 00 02 4E 04 + 39 00 00 00 00 00 02 4F 03 + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 03 + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 03 + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 04 + 39 00 00 00 00 00 02 56 04 + 39 00 00 00 00 00 02 57 04 + 39 00 00 00 00 00 02 58 04 + 39 00 00 00 00 00 02 59 04 + 39 00 00 00 00 00 02 5A 04 + 39 00 00 00 00 00 02 5B 04 + 39 00 00 00 00 00 02 5C 04 + 39 00 00 00 00 00 02 5D 04 + 39 00 00 00 00 00 02 5E 04 + 39 00 00 00 00 00 02 5F 04 + 39 00 00 00 00 00 02 60 05 + 39 00 00 00 00 00 02 61 05 + 39 00 00 00 00 00 02 62 05 + 39 00 00 00 00 00 02 63 05 + 39 00 00 00 00 00 02 64 05 + 39 00 00 00 00 00 02 65 05 + 39 00 00 00 00 00 02 66 05 + 39 00 00 00 00 00 02 67 05 + 39 00 00 00 00 00 02 68 05 + 39 00 00 00 00 00 02 69 04 + 39 00 00 00 00 00 02 6A 04 + 39 00 00 00 00 00 02 6B 05 + 39 00 00 00 00 00 02 6C 05 + 39 00 00 00 00 00 02 6D 05 + 39 00 00 00 00 00 02 6E 05 + 39 00 00 00 00 00 02 6F 04 + 39 00 00 00 00 00 02 70 04 + 39 00 00 00 00 00 02 71 05 + 39 00 00 00 00 00 02 72 04 + 39 00 00 00 00 00 02 73 03 + 39 00 00 00 00 00 02 74 03 + 39 00 00 00 00 00 02 75 03 + 39 00 00 00 00 00 02 76 02 + 39 00 00 00 00 00 02 77 02 + 39 00 00 00 00 00 02 78 02 + 39 00 00 00 00 00 02 79 02 + 39 00 00 00 00 00 02 7A 01 + 39 00 00 00 00 00 02 7B 01 + 39 00 00 00 00 00 02 7C 01 + 39 00 00 00 00 00 02 7D 01 + 39 00 00 00 00 00 02 7E 01 + 39 00 00 00 00 00 02 7F 00 + + + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 01 83 + 39 00 00 00 00 00 02 02 84 + 39 00 00 00 00 00 02 03 83 + 39 00 00 00 00 00 02 04 83 + 39 00 00 00 00 00 02 05 83 + 39 00 00 00 00 00 02 06 82 + 39 00 00 00 00 00 02 07 83 + 39 00 00 00 00 00 02 08 83 + 39 00 00 00 00 00 02 09 84 + 39 00 00 00 00 00 02 0A 84 + 39 00 00 00 00 00 02 0B 85 + 39 00 00 00 00 00 02 0C 86 + 39 00 00 00 00 00 02 0D 86 + 39 00 00 00 00 00 02 0E 87 + 39 00 00 00 00 00 02 0F 87 + 39 00 00 00 00 00 02 10 88 + 39 00 00 00 00 00 02 11 88 + 39 00 00 00 00 00 02 12 89 + 39 00 00 00 00 00 02 13 89 + 39 00 00 00 00 00 02 14 8A + 39 00 00 00 00 00 02 15 8A + 39 00 00 00 00 00 02 16 8A + 39 00 00 00 00 00 02 17 8B + 39 00 00 00 00 00 02 18 8C + 39 00 00 00 00 00 02 19 8C + 39 00 00 00 00 00 02 1A 8D + 39 00 00 00 00 00 02 1B 8D + 39 00 00 00 00 00 02 1C 8E + 39 00 00 00 00 00 02 1D 8E + 39 00 00 00 00 00 02 1E 8E + 39 00 00 00 00 00 02 1F 8E + 39 00 00 00 00 00 02 20 8F + 39 00 00 00 00 00 02 21 8F + 39 00 00 00 00 00 02 22 8F + 39 00 00 00 00 00 02 23 8F + 39 00 00 00 00 00 02 24 90 + 39 00 00 00 00 00 02 25 91 + 39 00 00 00 00 00 02 26 91 + 39 00 00 00 00 00 02 27 92 + 39 00 00 00 00 00 02 28 93 + 39 00 00 00 00 00 02 29 93 + 39 00 00 00 00 00 02 2A 92 + 39 00 00 00 00 00 02 2B 90 + 39 00 00 00 00 00 02 2C 91 + 39 00 00 00 00 00 02 2D 92 + 39 00 00 00 00 00 02 2E 93 + 39 00 00 00 00 00 02 2F 93 + 39 00 00 00 00 00 02 30 94 + 39 00 00 00 00 00 02 31 95 + 39 00 00 00 00 00 02 32 95 + 39 00 00 00 00 00 02 33 96 + 39 00 00 00 00 00 02 34 97 + 39 00 00 00 00 00 02 35 97 + 39 00 00 00 00 00 02 36 98 + 39 00 00 00 00 00 02 37 99 + 39 00 00 00 00 00 02 38 9A + 39 00 00 00 00 00 02 39 9A + 39 00 00 00 00 00 02 3A 9B + 39 00 00 00 00 00 02 3B 9C + 39 00 00 00 00 00 02 3C 9D + 39 00 00 00 00 00 02 3D 9D + 39 00 00 00 00 00 02 3E 9D + 39 00 00 00 00 00 02 3F 9D + 39 00 00 00 00 00 02 40 9C + 39 00 00 00 00 00 02 41 9C + 39 00 00 00 00 00 02 42 9D + 39 00 00 00 00 00 02 43 9D + 39 00 00 00 00 00 02 44 9E + 39 00 00 00 00 00 02 45 9E + 39 00 00 00 00 00 02 46 9F + 39 00 00 00 00 00 02 47 9F + 39 00 00 00 00 00 02 48 9F + 39 00 00 00 00 00 02 49 A0 + 39 00 00 00 00 00 02 4A A0 + 39 00 00 00 00 00 02 4B A1 + 39 00 00 00 00 00 02 4C A2 + 39 00 00 00 00 00 02 4D A2 + 39 00 00 00 00 00 02 4E A3 + 39 00 00 00 00 00 02 4F A3 + 39 00 00 00 00 00 02 50 A4 + 39 00 00 00 00 00 02 51 A5 + 39 00 00 00 00 00 02 52 A5 + 39 00 00 00 00 00 02 53 A6 + 39 00 00 00 00 00 02 54 A7 + 39 00 00 00 00 00 02 55 A8 + 39 00 00 00 00 00 02 56 A9 + 39 00 00 00 00 00 02 57 AA + 39 00 00 00 00 00 02 58 AA + 39 00 00 00 00 00 02 59 AB + 39 00 00 00 00 00 02 5A AC + 39 00 00 00 00 00 02 5B AD + 39 00 00 00 00 00 02 5C AD + 39 00 00 00 00 00 02 5D AE + 39 00 00 00 00 00 02 5E AE + 39 00 00 00 00 00 02 5F AE + 39 00 00 00 00 00 02 60 AF + 39 00 00 00 00 00 02 61 AF + 39 00 00 00 00 00 02 62 AF + 39 00 00 00 00 00 02 63 AF + 39 00 00 00 00 00 02 64 B0 + 39 00 00 00 00 00 02 65 B0 + 39 00 00 00 00 00 02 66 B0 + 39 00 00 00 00 00 02 67 B1 + 39 00 00 00 00 00 02 68 B1 + 39 00 00 00 00 00 02 69 B1 + 39 00 00 00 00 00 02 6A B2 + 39 00 00 00 00 00 02 6B B2 + 39 00 00 00 00 00 02 6C B2 + 39 00 00 00 00 00 02 6D B3 + 39 00 00 00 00 00 02 6E B3 + 39 00 00 00 00 00 02 6F B4 + 39 00 00 00 00 00 02 70 B4 + 39 00 00 00 00 00 02 71 B5 + 39 00 00 00 00 00 02 72 B5 + 39 00 00 00 00 00 02 73 B6 + 39 00 00 00 00 00 02 74 B6 + 39 00 00 00 00 00 02 75 B6 + 39 00 00 00 00 00 02 76 B7 + 39 00 00 00 00 00 02 77 B7 + 39 00 00 00 00 00 02 78 B8 + 39 00 00 00 00 00 02 79 B8 + 39 00 00 00 00 00 02 7A B8 + 39 00 00 00 00 00 02 7B B9 + 39 00 00 00 00 00 02 7C B9 + 39 00 00 00 00 00 02 7D BA + 39 00 00 00 00 00 02 7E BA + 39 00 00 00 00 00 02 7F BB + + 39 00 00 00 00 00 04 FF 98 81 09 + 39 00 00 00 00 00 02 01 83 + 39 00 00 00 00 00 02 02 85 + 39 00 00 00 00 00 02 03 85 + 39 00 00 00 00 00 02 04 85 + 39 00 00 00 00 00 02 05 85 + 39 00 00 00 00 00 02 06 85 + 39 00 00 00 00 00 02 07 86 + 39 00 00 00 00 00 02 08 87 + 39 00 00 00 00 00 02 09 88 + 39 00 00 00 00 00 02 0A 89 + 39 00 00 00 00 00 02 0B 89 + 39 00 00 00 00 00 02 0C 8A + 39 00 00 00 00 00 02 0D 8B + 39 00 00 00 00 00 02 0E 8C + 39 00 00 00 00 00 02 0F 8D + 39 00 00 00 00 00 02 10 8E + 39 00 00 00 00 00 02 11 8F + 39 00 00 00 00 00 02 12 90 + 39 00 00 00 00 00 02 13 91 + 39 00 00 00 00 00 02 14 92 + 39 00 00 00 00 00 02 15 93 + 39 00 00 00 00 00 02 16 93 + 39 00 00 00 00 00 02 17 94 + 39 00 00 00 00 00 02 18 95 + 39 00 00 00 00 00 02 19 96 + 39 00 00 00 00 00 02 1A 97 + 39 00 00 00 00 00 02 1B 98 + 39 00 00 00 00 00 02 1C 99 + 39 00 00 00 00 00 02 1D 9A + 39 00 00 00 00 00 02 1E 9B + 39 00 00 00 00 00 02 1F 9B + 39 00 00 00 00 00 02 20 64 + 39 00 00 00 00 00 02 21 63 + 39 00 00 00 00 00 02 22 63 + 39 00 00 00 00 00 02 23 62 + 39 00 00 00 00 00 02 24 61 + 39 00 00 00 00 00 02 25 61 + 39 00 00 00 00 00 02 26 60 + 39 00 00 00 00 00 02 27 60 + 39 00 00 00 00 00 02 28 5F + 39 00 00 00 00 00 02 29 5E + 39 00 00 00 00 00 02 2A 5D + 39 00 00 00 00 00 02 2B 5B + 39 00 00 00 00 00 02 2C 5A + 39 00 00 00 00 00 02 2D 59 + 39 00 00 00 00 00 02 2E 58 + 39 00 00 00 00 00 02 2F 59 + 39 00 00 00 00 00 02 30 5A + 39 00 00 00 00 00 02 31 5A + 39 00 00 00 00 00 02 32 59 + 39 00 00 00 00 00 02 33 57 + 39 00 00 00 00 00 02 34 56 + 39 00 00 00 00 00 02 35 55 + 39 00 00 00 00 00 02 36 54 + 39 00 00 00 00 00 02 37 53 + 39 00 00 00 00 00 02 38 52 + 39 00 00 00 00 00 02 39 51 + 39 00 00 00 00 00 02 3A 50 + 39 00 00 00 00 00 02 3B 4F + 39 00 00 00 00 00 02 3C 4E + 39 00 00 00 00 00 02 3D 4D + 39 00 00 00 00 00 02 3E 4C + 39 00 00 00 00 00 02 3F 4A + 39 00 00 00 00 00 02 40 49 + 39 00 00 00 00 00 02 41 48 + 39 00 00 00 00 00 02 42 47 + 39 00 00 00 00 00 02 43 46 + 39 00 00 00 00 00 02 44 45 + 39 00 00 00 00 00 02 45 44 + 39 00 00 00 00 00 02 46 44 + 39 00 00 00 00 00 02 47 44 + 39 00 00 00 00 00 02 48 44 + 39 00 00 00 00 00 02 49 44 + 39 00 00 00 00 00 02 4A 43 + 39 00 00 00 00 00 02 4B 42 + 39 00 00 00 00 00 02 4C 41 + 39 00 00 00 00 00 02 4D 40 + 39 00 00 00 00 00 02 4E 3F + 39 00 00 00 00 00 02 4F 3E + 39 00 00 00 00 00 02 50 3D + 39 00 00 00 00 00 02 51 3C + 39 00 00 00 00 00 02 52 3B + 39 00 00 00 00 00 02 53 3B + 39 00 00 00 00 00 02 54 3A + 39 00 00 00 00 00 02 55 39 + 39 00 00 00 00 00 02 56 38 + 39 00 00 00 00 00 02 57 37 + 39 00 00 00 00 00 02 58 36 + 39 00 00 00 00 00 02 59 35 + 39 00 00 00 00 00 02 5A 34 + 39 00 00 00 00 00 02 5B 33 + 39 00 00 00 00 00 02 5C 32 + 39 00 00 00 00 00 02 5D 30 + 39 00 00 00 00 00 02 5E 2F + 39 00 00 00 00 00 02 5F 2E + 39 00 00 00 00 00 02 60 2D + 39 00 00 00 00 00 02 61 2C + 39 00 00 00 00 00 02 62 2A + 39 00 00 00 00 00 02 63 2A + 39 00 00 00 00 00 02 64 29 + 39 00 00 00 00 00 02 65 28 + 39 00 00 00 00 00 02 66 26 + 39 00 00 00 00 00 02 67 25 + 39 00 00 00 00 00 02 68 24 + 39 00 00 00 00 00 02 69 23 + 39 00 00 00 00 00 02 6A 22 + 39 00 00 00 00 00 02 6B 21 + 39 00 00 00 00 00 02 6C 21 + 39 00 00 00 00 00 02 6D 20 + 39 00 00 00 00 00 02 6E 1F + 39 00 00 00 00 00 02 6F 1F + 39 00 00 00 00 00 02 70 1E + 39 00 00 00 00 00 02 71 1D + 39 00 00 00 00 00 02 72 1C + 39 00 00 00 00 00 02 73 1C + 39 00 00 00 00 00 02 74 1B + 39 00 00 00 00 00 02 75 1A + 39 00 00 00 00 00 02 76 19 + 39 00 00 00 00 00 02 77 18 + 39 00 00 00 00 00 02 78 18 + 39 00 00 00 00 00 02 79 17 + 39 00 00 00 00 00 02 7A 16 + 39 00 00 00 00 00 02 7B 15 + 39 00 00 00 00 00 02 7C 14 + 39 00 00 00 00 00 02 7D 13 + 39 00 00 00 00 00 02 7E 12 + 39 00 00 00 00 00 02 7F 12 + 39 01 00 00 00 00 04 FF 98 81 00 + + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 03 00 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 05 00 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 07 81 + 39 00 00 00 00 00 02 08 81 + 39 00 00 00 00 00 02 09 81 + 39 00 00 00 00 00 02 0A 81 + 39 00 00 00 00 00 02 0B 81 + 39 00 00 00 00 00 02 0C 81 + 39 00 00 00 00 00 02 0D 81 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0F 00 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 11 00 + 39 00 00 00 00 00 02 12 81 + 39 00 00 00 00 00 02 13 81 + 39 00 00 00 00 00 02 14 82 + 39 00 00 00 00 00 02 15 82 + 39 00 00 00 00 00 02 16 82 + 39 00 00 00 00 00 02 17 83 + 39 00 00 00 00 00 02 18 83 + 39 00 00 00 00 00 02 19 83 + 39 00 00 00 00 00 02 1A 83 + 39 00 00 00 00 00 02 1B 83 + 39 00 00 00 00 00 02 1C 84 + 39 00 00 00 00 00 02 1D 84 + 39 00 00 00 00 00 02 1E 84 + 39 00 00 00 00 00 02 1F 84 + 39 00 00 00 00 00 02 20 84 + 39 00 00 00 00 00 02 21 84 + 39 00 00 00 00 00 02 22 84 + 39 00 00 00 00 00 02 23 84 + 39 00 00 00 00 00 02 24 84 + 39 00 00 00 00 00 02 25 84 + 39 00 00 00 00 00 02 26 84 + 39 00 00 00 00 00 02 27 84 + 39 00 00 00 00 00 02 28 83 + 39 00 00 00 00 00 02 29 83 + 39 00 00 00 00 00 02 2A 83 + 39 00 00 00 00 00 02 2B 83 + 39 00 00 00 00 00 02 2C 82 + 39 00 00 00 00 00 02 2D 82 + 39 00 00 00 00 00 02 2E 82 + 39 00 00 00 00 00 02 2F 81 + 39 00 00 00 00 00 02 30 82 + 39 00 00 00 00 00 02 31 82 + 39 00 00 00 00 00 02 32 83 + 39 00 00 00 00 00 02 33 83 + 39 00 00 00 00 00 02 34 84 + 39 00 00 00 00 00 02 35 84 + 39 00 00 00 00 00 02 36 85 + 39 00 00 00 00 00 02 37 85 + 39 00 00 00 00 00 02 38 86 + 39 00 00 00 00 00 02 39 86 + 39 00 00 00 00 00 02 3A 86 + 39 00 00 00 00 00 02 3B 87 + 39 00 00 00 00 00 02 3C 87 + 39 00 00 00 00 00 02 3D 87 + 39 00 00 00 00 00 02 3E 87 + 39 00 00 00 00 00 02 3F 87 + 39 00 00 00 00 00 02 40 88 + 39 00 00 00 00 00 02 41 88 + 39 00 00 00 00 00 02 42 87 + 39 00 00 00 00 00 02 43 88 + 39 00 00 00 00 00 02 44 87 + 39 00 00 00 00 00 02 45 87 + 39 00 00 00 00 00 02 46 87 + 39 00 00 00 00 00 02 47 87 + 39 00 00 00 00 00 02 48 86 + 39 00 00 00 00 00 02 49 86 + 39 00 00 00 00 00 02 4A 85 + 39 00 00 00 00 00 02 4B 85 + 39 00 00 00 00 00 02 4C 84 + 39 00 00 00 00 00 02 4D 85 + 39 00 00 00 00 00 02 4E 85 + 39 00 00 00 00 00 02 4F 85 + 39 00 00 00 00 00 02 50 86 + 39 00 00 00 00 00 02 51 86 + 39 00 00 00 00 00 02 52 86 + 39 00 00 00 00 00 02 53 86 + 39 00 00 00 00 00 02 54 86 + 39 00 00 00 00 00 02 55 86 + 39 00 00 00 00 00 02 56 86 + 39 00 00 00 00 00 02 57 86 + 39 00 00 00 00 00 02 58 86 + 39 00 00 00 00 00 02 59 86 + 39 00 00 00 00 00 02 5A 85 + 39 00 00 00 00 00 02 5B 85 + 39 00 00 00 00 00 02 5C 84 + 39 00 00 00 00 00 02 5D 85 + 39 00 00 00 00 00 02 5E 85 + 39 00 00 00 00 00 02 5F 85 + 39 00 00 00 00 00 02 60 85 + 39 00 00 00 00 00 02 61 86 + 39 00 00 00 00 00 02 62 86 + 39 00 00 00 00 00 02 63 86 + 39 00 00 00 00 00 02 64 85 + 39 00 00 00 00 00 02 65 85 + 39 00 00 00 00 00 02 66 85 + 39 00 00 00 00 00 02 67 84 + 39 00 00 00 00 00 02 68 84 + 39 00 00 00 00 00 02 69 85 + 39 00 00 00 00 00 02 6A 85 + 39 00 00 00 00 00 02 6B 85 + 39 00 00 00 00 00 02 6C 86 + 39 00 00 00 00 00 02 6D 86 + 39 00 00 00 00 00 02 6E 86 + 39 00 00 00 00 00 02 6F 85 + 39 00 00 00 00 00 02 70 85 + 39 00 00 00 00 00 02 71 85 + 39 00 00 00 00 00 02 72 85 + 39 00 00 00 00 00 02 73 85 + 39 00 00 00 00 00 02 74 85 + 39 00 00 00 00 00 02 75 85 + 39 00 00 00 00 00 02 76 84 + 39 00 00 00 00 00 02 77 84 + 39 00 00 00 00 00 02 78 83 + 39 00 00 00 00 00 02 79 84 + 39 00 00 00 00 00 02 7A 84 + 39 00 00 00 00 00 02 7B 84 + 39 00 00 00 00 00 02 7C 83 + 39 00 00 00 00 00 02 7D 84 + 39 00 00 00 00 00 02 7E 85 + 39 00 00 00 00 00 02 7F 84 + + 39 00 00 00 00 00 04 FF 98 81 08 + 39 00 00 00 00 00 02 01 BB + 39 00 00 00 00 00 02 02 BD + 39 00 00 00 00 00 02 03 BD + 39 00 00 00 00 00 02 04 BE + 39 00 00 00 00 00 02 05 BF + 39 00 00 00 00 00 02 06 BF + 39 00 00 00 00 00 02 07 C0 + 39 00 00 00 00 00 02 08 C1 + 39 00 00 00 00 00 02 09 C1 + 39 00 00 00 00 00 02 0A C2 + 39 00 00 00 00 00 02 0B C3 + 39 00 00 00 00 00 02 0C C3 + 39 00 00 00 00 00 02 0D C4 + 39 00 00 00 00 00 02 0E C4 + 39 00 00 00 00 00 02 0F C5 + 39 00 00 00 00 00 02 10 C6 + 39 00 00 00 00 00 02 11 C6 + 39 00 00 00 00 00 02 12 C7 + 39 00 00 00 00 00 02 13 C8 + 39 00 00 00 00 00 02 14 C8 + 39 00 00 00 00 00 02 15 C8 + 39 00 00 00 00 00 02 16 C9 + 39 00 00 00 00 00 02 17 C9 + 39 00 00 00 00 00 02 18 CA + 39 00 00 00 00 00 02 19 CA + 39 00 00 00 00 00 02 1A CB + 39 00 00 00 00 00 02 1B CB + 39 00 00 00 00 00 02 1C CC + 39 00 00 00 00 00 02 1D CC + 39 00 00 00 00 00 02 1E CD + 39 00 00 00 00 00 02 1F CD + 39 00 00 00 00 00 02 20 CD + 39 00 00 00 00 00 02 21 CD + 39 00 00 00 00 00 02 22 CE + 39 00 00 00 00 00 02 23 CE + 39 00 00 00 00 00 02 24 CE + 39 00 00 00 00 00 02 25 CF + 39 00 00 00 00 00 02 26 D0 + 39 00 00 00 00 00 02 27 D1 + 39 00 00 00 00 00 02 28 D1 + 39 00 00 00 00 00 02 29 D2 + 39 00 00 00 00 00 02 2A D3 + 39 00 00 00 00 00 02 2B D4 + 39 00 00 00 00 00 02 2C D4 + 39 00 00 00 00 00 02 2D D5 + 39 00 00 00 00 00 02 2E D5 + 39 00 00 00 00 00 02 2F D6 + 39 00 00 00 00 00 02 30 D6 + 39 00 00 00 00 00 02 31 D7 + 39 00 00 00 00 00 02 32 D8 + 39 00 00 00 00 00 02 33 D8 + 39 00 00 00 00 00 02 34 D8 + 39 00 00 00 00 00 02 35 D9 + 39 00 00 00 00 00 02 36 D9 + 39 00 00 00 00 00 02 37 DA + 39 00 00 00 00 00 02 38 DA + 39 00 00 00 00 00 02 39 DA + 39 00 00 00 00 00 02 3A DB + 39 00 00 00 00 00 02 3B DC + 39 00 00 00 00 00 02 3C DC + 39 00 00 00 00 00 02 3D DC + 39 00 00 00 00 00 02 3E DC + 39 00 00 00 00 00 02 3F DC + 39 00 00 00 00 00 02 40 DC + 39 00 00 00 00 00 02 41 DD + 39 00 00 00 00 00 02 42 DD + 39 00 00 00 00 00 02 43 DD + 39 00 00 00 00 00 02 44 DD + 39 00 00 00 00 00 02 45 DD + 39 00 00 00 00 00 02 46 DD + 39 00 00 00 00 00 02 47 DE + 39 00 00 00 00 00 02 48 DF + 39 00 00 00 00 00 02 49 E0 + 39 00 00 00 00 00 02 4A E1 + 39 00 00 00 00 00 02 4B E2 + 39 00 00 00 00 00 02 4C E2 + 39 00 00 00 00 00 02 4D E3 + 39 00 00 00 00 00 02 4E E4 + 39 00 00 00 00 00 02 4F E5 + 39 00 00 00 00 00 02 50 E6 + 39 00 00 00 00 00 02 51 E7 + 39 00 00 00 00 00 02 52 E7 + 39 00 00 00 00 00 02 53 E8 + 39 00 00 00 00 00 02 54 E9 + 39 00 00 00 00 00 02 55 E9 + 39 00 00 00 00 00 02 56 EA + 39 00 00 00 00 00 02 57 EA + 39 00 00 00 00 00 02 58 EB + 39 00 00 00 00 00 02 59 EB + 39 00 00 00 00 00 02 5A EC + 39 00 00 00 00 00 02 5B EC + 39 00 00 00 00 00 02 5C ED + 39 00 00 00 00 00 02 5D ED + 39 00 00 00 00 00 02 5E ED + 39 00 00 00 00 00 02 5F EE + 39 00 00 00 00 00 02 60 EE + 39 00 00 00 00 00 02 61 EE + 39 00 00 00 00 00 02 62 EE + 39 00 00 00 00 00 02 63 EE + 39 00 00 00 00 00 02 64 EE + 39 00 00 00 00 00 02 65 EE + 39 00 00 00 00 00 02 66 EE + 39 00 00 00 00 00 02 67 EE + 39 00 00 00 00 00 02 68 EF + 39 00 00 00 00 00 02 69 F0 + 39 00 00 00 00 00 02 6A F0 + 39 00 00 00 00 00 02 6B F1 + 39 00 00 00 00 00 02 6C F2 + 39 00 00 00 00 00 02 6D F2 + 39 00 00 00 00 00 02 6E F3 + 39 00 00 00 00 00 02 6F F3 + 39 00 00 00 00 00 02 70 F4 + 39 00 00 00 00 00 02 71 F4 + 39 00 00 00 00 00 02 72 F5 + 39 00 00 00 00 00 02 73 F5 + 39 00 00 00 00 00 02 74 F5 + 39 00 00 00 00 00 02 75 F5 + 39 00 00 00 00 00 02 76 F5 + 39 00 00 00 00 00 02 77 F5 + 39 00 00 00 00 00 02 78 F5 + 39 00 00 00 00 00 02 79 F6 + 39 00 00 00 00 00 02 7A F7 + 39 00 00 00 00 00 02 7B F7 + 39 00 00 00 00 00 02 7C F8 + 39 00 00 00 00 00 02 7D F9 + 39 00 00 00 00 00 02 7E F9 + 39 00 00 00 00 00 02 7F FA + + + 39 00 00 00 00 00 04 FF 98 81 0A + 39 00 00 00 00 00 02 01 10 + 39 00 00 00 00 00 02 02 0F + 39 00 00 00 00 00 02 03 0E + 39 00 00 00 00 00 02 04 0D + 39 00 00 00 00 00 02 05 0D + 39 00 00 00 00 00 02 06 0C + 39 00 00 00 00 00 02 07 0B + 39 00 00 00 00 00 02 08 0A + 39 00 00 00 00 00 02 09 09 + 39 00 00 00 00 00 02 0A 08 + 39 00 00 00 00 00 02 0B 07 + 39 00 00 00 00 00 02 0C 06 + 39 00 00 00 00 00 02 0D 06 + 39 00 00 00 00 00 02 0E 05 + 39 00 00 00 00 00 02 0F 03 + 39 00 00 00 00 00 02 10 03 + 39 00 00 00 00 00 02 11 02 + 39 00 00 00 00 00 02 12 01 + 39 00 00 00 00 00 02 13 00 + 39 00 00 00 00 00 02 14 82 + 39 00 00 00 00 00 02 15 83 + 39 00 00 00 00 00 02 16 84 + 39 00 00 00 00 00 02 17 85 + 39 00 00 00 00 00 02 18 86 + 39 00 00 00 00 00 02 19 87 + 39 00 00 00 00 00 02 1A 88 + 39 00 00 00 00 00 02 1B 89 + 39 00 00 00 00 00 02 1C 8A + 39 00 00 00 00 00 02 1D 8B + 39 00 00 00 00 00 02 1E 8D + 39 00 00 00 00 00 02 1F 8E + 39 00 00 00 00 00 02 20 8F + 39 00 00 00 00 00 02 21 90 + 39 00 00 00 00 00 02 22 91 + 39 00 00 00 00 00 02 23 92 + 39 00 00 00 00 00 02 24 93 + 39 00 00 00 00 00 02 25 94 + 39 00 00 00 00 00 02 26 95 + 39 00 00 00 00 00 02 27 96 + 39 00 00 00 00 00 02 28 97 + 39 00 00 00 00 00 02 29 98 + 39 00 00 00 00 00 02 2A 99 + 39 00 00 00 00 00 02 2B 99 + 39 00 00 00 00 00 02 2C 9A + 39 00 00 00 00 00 02 2D 9B + 39 00 00 00 00 00 02 2E 9C + 39 00 00 00 00 00 02 2F 9D + 39 00 00 00 00 00 02 30 9E + 39 00 00 00 00 00 02 31 9F + 39 00 00 00 00 00 02 32 A0 + 39 00 00 00 00 00 02 33 A1 + 39 00 00 00 00 00 02 34 A2 + 39 00 00 00 00 00 02 35 A3 + 39 00 00 00 00 00 02 36 A3 + 39 00 00 00 00 00 02 37 A4 + 39 00 00 00 00 00 02 38 A5 + 39 00 00 00 00 00 02 39 A6 + 39 00 00 00 00 00 02 3A A7 + 39 00 00 00 00 00 02 3B A8 + 39 00 00 00 00 00 02 3C A9 + 39 00 00 00 00 00 02 3D AA + 39 00 00 00 00 00 02 3E AB + 39 00 00 00 00 00 02 3F AD + 39 00 00 00 00 00 02 40 AE + 39 00 00 00 00 00 02 41 AF + 39 00 00 00 00 00 02 42 B0 + 39 00 00 00 00 00 02 43 B1 + 39 00 00 00 00 00 02 44 B2 + 39 00 00 00 00 00 02 45 B3 + 39 00 00 00 00 00 02 46 B4 + 39 00 00 00 00 00 02 47 B5 + 39 00 00 00 00 00 02 48 B6 + 39 00 00 00 00 00 02 49 B7 + 39 00 00 00 00 00 02 4A B8 + 39 00 00 00 00 00 02 4B B9 + 39 00 00 00 00 00 02 4C BA + 39 00 00 00 00 00 02 4D BB + 39 00 00 00 00 00 02 4E BC + 39 00 00 00 00 00 02 4F BD + 39 00 00 00 00 00 02 50 BE + 39 00 00 00 00 00 02 51 BF + 39 00 00 00 00 00 02 52 C0 + 39 00 00 00 00 00 02 53 C1 + 39 00 00 00 00 00 02 54 C2 + 39 00 00 00 00 00 02 55 C3 + 39 00 00 00 00 00 02 56 C4 + 39 00 00 00 00 00 02 57 C4 + 39 00 00 00 00 00 02 58 C5 + 39 00 00 00 00 00 02 59 C5 + 39 00 00 00 00 00 02 5A C6 + 39 00 00 00 00 00 02 5B C7 + 39 00 00 00 00 00 02 5C C8 + 39 00 00 00 00 00 02 5D C9 + 39 00 00 00 00 00 02 5E C9 + 39 00 00 00 00 00 02 5F CA + 39 00 00 00 00 00 02 60 CB + 39 00 00 00 00 00 02 61 CB + 39 00 00 00 00 00 02 62 CC + 39 00 00 00 00 00 02 63 CD + 39 00 00 00 00 00 02 64 CF + 39 00 00 00 00 00 02 65 D0 + 39 00 00 00 00 00 02 66 D2 + 39 00 00 00 00 00 02 67 D3 + 39 00 00 00 00 00 02 68 D4 + 39 00 00 00 00 00 02 69 D5 + 39 00 00 00 00 00 02 6A D7 + 39 00 00 00 00 00 02 6B D8 + 39 00 00 00 00 00 02 6C D9 + 39 00 00 00 00 00 02 6D DB + 39 00 00 00 00 00 02 6E DC + 39 00 00 00 00 00 02 6F DD + 39 00 00 00 00 00 02 70 DE + 39 00 00 00 00 00 02 71 E0 + 39 00 00 00 00 00 02 72 E1 + 39 00 00 00 00 00 02 73 E2 + 39 00 00 00 00 00 02 74 E3 + 39 00 00 00 00 00 02 75 E4 + 39 00 00 00 00 00 02 76 E5 + 39 00 00 00 00 00 02 77 E6 + 39 00 00 00 00 00 02 78 E7 + 39 00 00 00 00 00 02 79 E8 + 39 00 00 00 00 00 02 7A E9 + 39 00 00 00 00 00 02 7B EA + 39 00 00 00 00 00 02 7C EB + 39 00 00 00 00 00 02 7D EC + 39 00 00 00 00 00 02 7E ED + 39 00 00 00 00 00 02 7F EE + + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F 00 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F 84 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F bb + 39 00 00 00 00 00 04 FF 98 81 08 + 39 00 00 00 00 00 02 00 bb + 39 00 00 00 00 00 02 7F fa + 39 00 00 00 00 00 04 FF 98 81 09 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F 12 + 39 00 00 00 00 00 04 FF 98 81 0A + 39 00 00 00 00 00 02 00 11 + 39 00 00 00 00 00 02 7F ee + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 80 01 + 39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 21 B0 + 39 00 00 00 00 00 02 32 02 + 39 01 00 00 00 00 04 FF 98 81 00 + 39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 21 B2 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 04 FF 98 81 0A + 39 00 00 00 00 00 02 7F EE + 39 00 00 00 00 00 02 7E ED + 39 00 00 00 00 00 02 7D EC + 39 00 00 00 00 00 02 7C EB + 39 00 00 00 00 00 02 7B EA + 39 00 00 00 00 00 02 7A E9 + 39 00 00 00 00 00 02 79 E8 + 39 00 00 00 00 00 02 78 E7 + 39 00 00 00 00 00 02 77 E6 + 39 00 00 00 00 00 02 76 E5 + 39 00 00 00 00 00 02 75 E4 + 39 00 00 00 00 00 02 74 E3 + 39 00 00 00 00 00 02 73 E2 + 39 00 00 00 00 00 02 72 E1 + 39 00 00 00 00 00 02 71 E0 + 39 00 00 00 00 00 02 70 DE + 39 00 00 00 00 00 02 6F DD + 39 00 00 00 00 00 02 6E DC + 39 00 00 00 00 00 02 6D DB + 39 00 00 00 00 00 02 6C D9 + 39 00 00 00 00 00 02 6B D8 + 39 00 00 00 00 00 02 6A D7 + 39 00 00 00 00 00 02 69 D5 + 39 00 00 00 00 00 02 68 D4 + 39 00 00 00 00 00 02 67 D3 + 39 00 00 00 00 00 02 66 D2 + 39 00 00 00 00 00 02 65 D0 + 39 00 00 00 00 00 02 64 CF + 39 00 00 00 00 00 02 63 CD + 39 00 00 00 00 00 02 62 CC + 39 00 00 00 00 00 02 61 CB + 39 00 00 00 00 00 02 60 CB + 39 00 00 00 00 00 02 5F CA + 39 00 00 00 00 00 02 5E C9 + 39 00 00 00 00 00 02 5D C9 + 39 00 00 00 00 00 02 5C C8 + 39 00 00 00 00 00 02 5B C7 + 39 00 00 00 00 00 02 5A C6 + 39 00 00 00 00 00 02 59 C5 + 39 00 00 00 00 00 02 58 C5 + 39 00 00 00 00 00 02 57 C4 + 39 00 00 00 00 00 02 56 C4 + 39 00 00 00 00 00 02 55 C3 + 39 00 00 00 00 00 02 54 C2 + 39 00 00 00 00 00 02 53 C1 + 39 00 00 00 00 00 02 52 C0 + 39 00 00 00 00 00 02 51 BF + 39 00 00 00 00 00 02 50 BE + 39 00 00 00 00 00 02 4F BD + 39 00 00 00 00 00 02 4E BC + 39 00 00 00 00 00 02 4D BB + 39 00 00 00 00 00 02 4C BA + 39 00 00 00 00 00 02 4B B9 + 39 00 00 00 00 00 02 4A B8 + 39 00 00 00 00 00 02 49 B7 + 39 00 00 00 00 00 02 48 B6 + 39 00 00 00 00 00 02 47 B5 + 39 00 00 00 00 00 02 46 B4 + 39 00 00 00 00 00 02 45 B3 + 39 00 00 00 00 00 02 44 B2 + 39 00 00 00 00 00 02 43 B1 + 39 00 00 00 00 00 02 42 B0 + 39 00 00 00 00 00 02 41 AF + 39 00 00 00 00 00 02 40 AE + 39 00 00 00 00 00 02 3F AD + 39 00 00 00 00 00 02 3E AB + 39 00 00 00 00 00 02 3D AA + 39 00 00 00 00 00 02 3C A9 + 39 00 00 00 00 00 02 3B A8 + 39 00 00 00 00 00 02 3A A7 + 39 00 00 00 00 00 02 39 A6 + 39 00 00 00 00 00 02 38 A5 + 39 00 00 00 00 00 02 37 A4 + 39 00 00 00 00 00 02 36 A3 + 39 00 00 00 00 00 02 35 A3 + 39 00 00 00 00 00 02 34 A2 + 39 00 00 00 00 00 02 33 A1 + 39 00 00 00 00 00 02 32 A0 + 39 00 00 00 00 00 02 31 9F + 39 00 00 00 00 00 02 30 9E + 39 00 00 00 00 00 02 2F 9D + 39 00 00 00 00 00 02 2E 9C + 39 00 00 00 00 00 02 2D 9B + 39 00 00 00 00 00 02 2C 9A + 39 00 00 00 00 00 02 2B 99 + 39 00 00 00 00 00 02 2A 99 + 39 00 00 00 00 00 02 29 98 + 39 00 00 00 00 00 02 28 97 + 39 00 00 00 00 00 02 27 96 + 39 00 00 00 00 00 02 26 95 + 39 00 00 00 00 00 02 25 94 + 39 00 00 00 00 00 02 24 93 + 39 00 00 00 00 00 02 23 92 + 39 00 00 00 00 00 02 22 91 + 39 00 00 00 00 00 02 21 90 + 39 00 00 00 00 00 02 20 8F + 39 00 00 00 00 00 02 1F 8E + 39 00 00 00 00 00 02 1E 8D + 39 00 00 00 00 00 02 1D 8B + 39 00 00 00 00 00 02 1C 8A + 39 00 00 00 00 00 02 1B 89 + 39 00 00 00 00 00 02 1A 88 + 39 00 00 00 00 00 02 19 87 + 39 00 00 00 00 00 02 18 86 + 39 00 00 00 00 00 02 17 85 + 39 00 00 00 00 00 02 16 84 + 39 00 00 00 00 00 02 15 83 + 39 00 00 00 00 00 02 14 82 + 39 00 00 00 00 00 02 13 00 + 39 00 00 00 00 00 02 12 01 + 39 00 00 00 00 00 02 11 02 + 39 00 00 00 00 00 02 10 03 + 39 00 00 00 00 00 02 0F 03 + 39 00 00 00 00 00 02 0E 05 + 39 00 00 00 00 00 02 0D 06 + 39 00 00 00 00 00 02 0C 06 + 39 00 00 00 00 00 02 0B 07 + 39 00 00 00 00 00 02 0A 08 + 39 00 00 00 00 00 02 09 09 + 39 00 00 00 00 00 02 08 0A + 39 00 00 00 00 00 02 07 0B + 39 00 00 00 00 00 02 06 0C + 39 00 00 00 00 00 02 05 0D + 39 00 00 00 00 00 02 04 0D + 39 00 00 00 00 00 02 03 0E + 39 00 00 00 00 00 02 02 0F + 39 00 00 00 00 00 02 01 10 + + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 7F 84 + 39 00 00 00 00 00 02 7E 85 + 39 00 00 00 00 00 02 7D 84 + 39 00 00 00 00 00 02 7C 83 + 39 00 00 00 00 00 02 7B 84 + 39 00 00 00 00 00 02 7A 84 + 39 00 00 00 00 00 02 79 84 + 39 00 00 00 00 00 02 78 83 + 39 00 00 00 00 00 02 77 84 + 39 00 00 00 00 00 02 76 84 + 39 00 00 00 00 00 02 75 85 + 39 00 00 00 00 00 02 74 85 + 39 00 00 00 00 00 02 73 85 + 39 00 00 00 00 00 02 72 85 + 39 00 00 00 00 00 02 71 85 + 39 00 00 00 00 00 02 70 85 + 39 00 00 00 00 00 02 6F 85 + 39 00 00 00 00 00 02 6E 86 + 39 00 00 00 00 00 02 6D 86 + 39 00 00 00 00 00 02 6C 86 + 39 00 00 00 00 00 02 6B 85 + 39 00 00 00 00 00 02 6A 85 + 39 00 00 00 00 00 02 69 85 + 39 00 00 00 00 00 02 68 84 + 39 00 00 00 00 00 02 67 84 + 39 00 00 00 00 00 02 66 85 + 39 00 00 00 00 00 02 65 85 + 39 00 00 00 00 00 02 64 85 + 39 00 00 00 00 00 02 63 86 + 39 00 00 00 00 00 02 62 86 + 39 00 00 00 00 00 02 61 86 + 39 00 00 00 00 00 02 60 85 + 39 00 00 00 00 00 02 5F 85 + 39 00 00 00 00 00 02 5E 85 + 39 00 00 00 00 00 02 5D 85 + 39 00 00 00 00 00 02 5C 84 + 39 00 00 00 00 00 02 5B 85 + 39 00 00 00 00 00 02 5A 85 + 39 00 00 00 00 00 02 59 86 + 39 00 00 00 00 00 02 58 86 + 39 00 00 00 00 00 02 57 86 + 39 00 00 00 00 00 02 56 86 + 39 00 00 00 00 00 02 55 86 + 39 00 00 00 00 00 02 54 86 + 39 00 00 00 00 00 02 53 86 + 39 00 00 00 00 00 02 52 86 + 39 00 00 00 00 00 02 51 86 + 39 00 00 00 00 00 02 50 86 + 39 00 00 00 00 00 02 4F 85 + 39 00 00 00 00 00 02 4E 85 + 39 00 00 00 00 00 02 4D 85 + 39 00 00 00 00 00 02 4C 84 + 39 00 00 00 00 00 02 4B 85 + 39 00 00 00 00 00 02 4A 85 + 39 00 00 00 00 00 02 49 86 + 39 00 00 00 00 00 02 48 86 + 39 00 00 00 00 00 02 47 87 + 39 00 00 00 00 00 02 46 87 + 39 00 00 00 00 00 02 45 87 + 39 00 00 00 00 00 02 44 87 + 39 00 00 00 00 00 02 43 88 + 39 00 00 00 00 00 02 42 87 + 39 00 00 00 00 00 02 41 88 + 39 00 00 00 00 00 02 40 88 + 39 00 00 00 00 00 02 3F 87 + 39 00 00 00 00 00 02 3E 87 + 39 00 00 00 00 00 02 3D 87 + 39 00 00 00 00 00 02 3C 87 + 39 00 00 00 00 00 02 3B 87 + 39 00 00 00 00 00 02 3A 86 + 39 00 00 00 00 00 02 39 86 + 39 00 00 00 00 00 02 38 86 + 39 00 00 00 00 00 02 37 85 + 39 00 00 00 00 00 02 36 85 + 39 00 00 00 00 00 02 35 84 + 39 00 00 00 00 00 02 34 84 + 39 00 00 00 00 00 02 33 83 + 39 00 00 00 00 00 02 32 83 + 39 00 00 00 00 00 02 31 82 + 39 00 00 00 00 00 02 30 82 + 39 00 00 00 00 00 02 2F 81 + 39 00 00 00 00 00 02 2E 82 + 39 00 00 00 00 00 02 2D 82 + 39 00 00 00 00 00 02 2C 82 + 39 00 00 00 00 00 02 2B 83 + 39 00 00 00 00 00 02 2A 83 + 39 00 00 00 00 00 02 29 83 + 39 00 00 00 00 00 02 28 83 + 39 00 00 00 00 00 02 27 84 + 39 00 00 00 00 00 02 26 84 + 39 00 00 00 00 00 02 25 84 + 39 00 00 00 00 00 02 24 84 + 39 00 00 00 00 00 02 23 84 + 39 00 00 00 00 00 02 22 84 + 39 00 00 00 00 00 02 21 84 + 39 00 00 00 00 00 02 20 84 + 39 00 00 00 00 00 02 1F 84 + 39 00 00 00 00 00 02 1E 84 + 39 00 00 00 00 00 02 1D 84 + 39 00 00 00 00 00 02 1C 84 + 39 00 00 00 00 00 02 1B 83 + 39 00 00 00 00 00 02 1A 83 + 39 00 00 00 00 00 02 19 83 + 39 00 00 00 00 00 02 18 83 + 39 00 00 00 00 00 02 17 83 + 39 00 00 00 00 00 02 16 82 + 39 00 00 00 00 00 02 15 82 + 39 00 00 00 00 00 02 14 82 + 39 00 00 00 00 00 02 13 81 + 39 00 00 00 00 00 02 12 81 + 39 00 00 00 00 00 02 11 00 + 39 00 00 00 00 00 02 10 00 + 39 00 00 00 00 00 02 0F 00 + 39 00 00 00 00 00 02 0E 00 + 39 00 00 00 00 00 02 0D 81 + 39 00 00 00 00 00 02 0C 81 + 39 00 00 00 00 00 02 0B 81 + 39 00 00 00 00 00 02 0A 81 + 39 00 00 00 00 00 02 09 81 + 39 00 00 00 00 00 02 08 81 + 39 00 00 00 00 00 02 07 81 + 39 00 00 00 00 00 02 06 00 + 39 00 00 00 00 00 02 05 00 + 39 00 00 00 00 00 02 04 00 + 39 00 00 00 00 00 02 03 00 + 39 00 00 00 00 00 02 02 00 + 39 00 00 00 00 00 02 01 00 + + 39 00 00 00 00 00 04 FF 98 81 08 + 39 00 00 00 00 00 02 7F FA + 39 00 00 00 00 00 02 7E F9 + 39 00 00 00 00 00 02 7D F9 + 39 00 00 00 00 00 02 7C F8 + 39 00 00 00 00 00 02 7B F7 + 39 00 00 00 00 00 02 7A F7 + 39 00 00 00 00 00 02 79 F6 + 39 00 00 00 00 00 02 78 F5 + 39 00 00 00 00 00 02 77 F5 + 39 00 00 00 00 00 02 76 F5 + 39 00 00 00 00 00 02 75 F5 + 39 00 00 00 00 00 02 74 F5 + 39 00 00 00 00 00 02 73 F5 + 39 00 00 00 00 00 02 72 F5 + 39 00 00 00 00 00 02 71 F4 + 39 00 00 00 00 00 02 70 F4 + 39 00 00 00 00 00 02 6F F3 + 39 00 00 00 00 00 02 6E F3 + 39 00 00 00 00 00 02 6D F2 + 39 00 00 00 00 00 02 6C F2 + 39 00 00 00 00 00 02 6B F1 + 39 00 00 00 00 00 02 6A F0 + 39 00 00 00 00 00 02 69 F0 + 39 00 00 00 00 00 02 68 EF + 39 00 00 00 00 00 02 67 EE + 39 00 00 00 00 00 02 66 EE + 39 00 00 00 00 00 02 65 EE + 39 00 00 00 00 00 02 64 EE + 39 00 00 00 00 00 02 63 EE + 39 00 00 00 00 00 02 62 EE + 39 00 00 00 00 00 02 61 EE + 39 00 00 00 00 00 02 60 EE + 39 00 00 00 00 00 02 5F EE + 39 00 00 00 00 00 02 5E ED + 39 00 00 00 00 00 02 5D ED + 39 00 00 00 00 00 02 5C ED + 39 00 00 00 00 00 02 5B EC + 39 00 00 00 00 00 02 5A EC + 39 00 00 00 00 00 02 59 EB + 39 00 00 00 00 00 02 58 EB + 39 00 00 00 00 00 02 57 EA + 39 00 00 00 00 00 02 56 EA + 39 00 00 00 00 00 02 55 E9 + 39 00 00 00 00 00 02 54 E9 + 39 00 00 00 00 00 02 53 E8 + 39 00 00 00 00 00 02 52 E7 + 39 00 00 00 00 00 02 51 E7 + 39 00 00 00 00 00 02 50 E6 + 39 00 00 00 00 00 02 4F E5 + 39 00 00 00 00 00 02 4E E4 + 39 00 00 00 00 00 02 4D E3 + 39 00 00 00 00 00 02 4C E2 + 39 00 00 00 00 00 02 4B E2 + 39 00 00 00 00 00 02 4A E1 + 39 00 00 00 00 00 02 49 E0 + 39 00 00 00 00 00 02 48 DF + 39 00 00 00 00 00 02 47 DE + 39 00 00 00 00 00 02 46 DD + 39 00 00 00 00 00 02 45 DD + 39 00 00 00 00 00 02 44 DD + 39 00 00 00 00 00 02 43 DD + 39 00 00 00 00 00 02 42 DD + 39 00 00 00 00 00 02 41 DD + 39 00 00 00 00 00 02 40 DC + 39 00 00 00 00 00 02 3F DC + 39 00 00 00 00 00 02 3E DC + 39 00 00 00 00 00 02 3D DC + 39 00 00 00 00 00 02 3C DC + 39 00 00 00 00 00 02 3B DC + 39 00 00 00 00 00 02 3A DB + 39 00 00 00 00 00 02 39 DA + 39 00 00 00 00 00 02 38 DA + 39 00 00 00 00 00 02 37 DA + 39 00 00 00 00 00 02 36 D9 + 39 00 00 00 00 00 02 35 D9 + 39 00 00 00 00 00 02 34 D8 + 39 00 00 00 00 00 02 33 D8 + 39 00 00 00 00 00 02 32 D8 + 39 00 00 00 00 00 02 31 D7 + 39 00 00 00 00 00 02 30 D6 + 39 00 00 00 00 00 02 2F D6 + 39 00 00 00 00 00 02 2E D5 + 39 00 00 00 00 00 02 2D D5 + 39 00 00 00 00 00 02 2C D4 + 39 00 00 00 00 00 02 2B D4 + 39 00 00 00 00 00 02 2A D3 + 39 00 00 00 00 00 02 29 D2 + 39 00 00 00 00 00 02 28 D1 + 39 00 00 00 00 00 02 27 D1 + 39 00 00 00 00 00 02 26 D0 + 39 00 00 00 00 00 02 25 CF + 39 00 00 00 00 00 02 24 CE + 39 00 00 00 00 00 02 23 CE + 39 00 00 00 00 00 02 22 CE + 39 00 00 00 00 00 02 21 CD + 39 00 00 00 00 00 02 20 CD + 39 00 00 00 00 00 02 1F CD + 39 00 00 00 00 00 02 1E CD + 39 00 00 00 00 00 02 1D CC + 39 00 00 00 00 00 02 1C CC + 39 00 00 00 00 00 02 1B CB + 39 00 00 00 00 00 02 1A CB + 39 00 00 00 00 00 02 19 CA + 39 00 00 00 00 00 02 18 CA + 39 00 00 00 00 00 02 17 C9 + 39 00 00 00 00 00 02 16 C9 + 39 00 00 00 00 00 02 15 C8 + 39 00 00 00 00 00 02 14 C8 + 39 00 00 00 00 00 02 13 C8 + 39 00 00 00 00 00 02 12 C7 + 39 00 00 00 00 00 02 11 C6 + 39 00 00 00 00 00 02 10 C6 + 39 00 00 00 00 00 02 0F C5 + 39 00 00 00 00 00 02 0E C4 + 39 00 00 00 00 00 02 0D C4 + 39 00 00 00 00 00 02 0C C3 + 39 00 00 00 00 00 02 0B C3 + 39 00 00 00 00 00 02 0A C2 + 39 00 00 00 00 00 02 09 C1 + 39 00 00 00 00 00 02 08 C1 + 39 00 00 00 00 00 02 07 C0 + 39 00 00 00 00 00 02 06 BF + 39 00 00 00 00 00 02 05 BF + 39 00 00 00 00 00 02 04 BE + 39 00 00 00 00 00 02 03 BD + 39 00 00 00 00 00 02 02 BD + 39 00 00 00 00 00 02 01 BB + + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F 00 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F 84 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F bb + 39 00 00 00 00 00 04 FF 98 81 08 + 39 00 00 00 00 00 02 00 bb + 39 00 00 00 00 00 02 7F fa + 39 00 00 00 00 00 04 FF 98 81 09 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F 12 + 39 00 00 00 00 00 04 FF 98 81 0A + 39 00 00 00 00 00 02 00 11 + 39 00 00 00 00 00 02 7F ee + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 80 01 + 39 01 00 00 00 00 04 FF 98 81 00 + + 39 00 00 00 00 00 04 FF 98 81 09 + 39 00 00 00 00 00 02 7F 12 + 39 00 00 00 00 00 02 7E 12 + 39 00 00 00 00 00 02 7D 13 + 39 00 00 00 00 00 02 7C 14 + 39 00 00 00 00 00 02 7B 15 + 39 00 00 00 00 00 02 7A 16 + 39 00 00 00 00 00 02 79 17 + 39 00 00 00 00 00 02 78 18 + 39 00 00 00 00 00 02 77 18 + 39 00 00 00 00 00 02 76 19 + 39 00 00 00 00 00 02 75 1A + 39 00 00 00 00 00 02 74 1B + 39 00 00 00 00 00 02 73 1C + 39 00 00 00 00 00 02 72 1C + 39 00 00 00 00 00 02 71 1D + 39 00 00 00 00 00 02 70 1E + 39 00 00 00 00 00 02 6F 1F + 39 00 00 00 00 00 02 6E 1F + 39 00 00 00 00 00 02 6D 20 + 39 00 00 00 00 00 02 6C 21 + 39 00 00 00 00 00 02 6B 21 + 39 00 00 00 00 00 02 6A 22 + 39 00 00 00 00 00 02 69 23 + 39 00 00 00 00 00 02 68 24 + 39 00 00 00 00 00 02 67 25 + 39 00 00 00 00 00 02 66 26 + 39 00 00 00 00 00 02 65 28 + 39 00 00 00 00 00 02 64 29 + 39 00 00 00 00 00 02 63 2A + 39 00 00 00 00 00 02 62 2A + 39 00 00 00 00 00 02 61 2C + 39 00 00 00 00 00 02 60 2D + 39 00 00 00 00 00 02 5F 2E + 39 00 00 00 00 00 02 5E 2F + 39 00 00 00 00 00 02 5D 30 + 39 00 00 00 00 00 02 5C 32 + 39 00 00 00 00 00 02 5B 33 + 39 00 00 00 00 00 02 5A 34 + 39 00 00 00 00 00 02 59 35 + 39 00 00 00 00 00 02 58 36 + 39 00 00 00 00 00 02 57 37 + 39 00 00 00 00 00 02 56 38 + 39 00 00 00 00 00 02 55 39 + 39 00 00 00 00 00 02 54 3A + 39 00 00 00 00 00 02 53 3B + 39 00 00 00 00 00 02 52 3B + 39 00 00 00 00 00 02 51 3C + 39 00 00 00 00 00 02 50 3D + 39 00 00 00 00 00 02 4F 3E + 39 00 00 00 00 00 02 4E 3F + 39 00 00 00 00 00 02 4D 40 + 39 00 00 00 00 00 02 4C 41 + 39 00 00 00 00 00 02 4B 42 + 39 00 00 00 00 00 02 4A 43 + 39 00 00 00 00 00 02 49 44 + 39 00 00 00 00 00 02 48 44 + 39 00 00 00 00 00 02 47 44 + 39 00 00 00 00 00 02 46 44 + 39 00 00 00 00 00 02 45 44 + 39 00 00 00 00 00 02 44 45 + 39 00 00 00 00 00 02 43 46 + 39 00 00 00 00 00 02 42 47 + 39 00 00 00 00 00 02 41 48 + 39 00 00 00 00 00 02 40 49 + 39 00 00 00 00 00 02 3F 4A + 39 00 00 00 00 00 02 3E 4C + 39 00 00 00 00 00 02 3D 4D + 39 00 00 00 00 00 02 3C 4E + 39 00 00 00 00 00 02 3B 4F + 39 00 00 00 00 00 02 3A 50 + 39 00 00 00 00 00 02 39 51 + 39 00 00 00 00 00 02 38 52 + 39 00 00 00 00 00 02 37 53 + 39 00 00 00 00 00 02 36 54 + 39 00 00 00 00 00 02 35 55 + 39 00 00 00 00 00 02 34 56 + 39 00 00 00 00 00 02 33 57 + 39 00 00 00 00 00 02 32 59 + 39 00 00 00 00 00 02 31 5A + 39 00 00 00 00 00 02 30 5A + 39 00 00 00 00 00 02 2F 59 + 39 00 00 00 00 00 02 2E 58 + 39 00 00 00 00 00 02 2D 59 + 39 00 00 00 00 00 02 2C 5A + 39 00 00 00 00 00 02 2B 5B + 39 00 00 00 00 00 02 2A 5D + 39 00 00 00 00 00 02 29 5E + 39 00 00 00 00 00 02 28 5F + 39 00 00 00 00 00 02 27 60 + 39 00 00 00 00 00 02 26 60 + 39 00 00 00 00 00 02 25 61 + 39 00 00 00 00 00 02 24 61 + 39 00 00 00 00 00 02 23 62 + 39 00 00 00 00 00 02 22 63 + 39 00 00 00 00 00 02 21 63 + 39 00 00 00 00 00 02 20 64 + 39 00 00 00 00 00 02 1F 9B + 39 00 00 00 00 00 02 1E 9B + 39 00 00 00 00 00 02 1D 9A + 39 00 00 00 00 00 02 1C 99 + 39 00 00 00 00 00 02 1B 98 + 39 00 00 00 00 00 02 1A 97 + 39 00 00 00 00 00 02 19 96 + 39 00 00 00 00 00 02 18 95 + 39 00 00 00 00 00 02 17 94 + 39 00 00 00 00 00 02 16 93 + 39 00 00 00 00 00 02 15 93 + 39 00 00 00 00 00 02 14 92 + 39 00 00 00 00 00 02 13 91 + 39 00 00 00 00 00 02 12 90 + 39 00 00 00 00 00 02 11 8F + 39 00 00 00 00 00 02 10 8E + 39 00 00 00 00 00 02 0F 8D + 39 00 00 00 00 00 02 0E 8C + 39 00 00 00 00 00 02 0D 8B + 39 00 00 00 00 00 02 0C 8A + 39 00 00 00 00 00 02 0B 89 + 39 00 00 00 00 00 02 0A 89 + 39 00 00 00 00 00 02 09 88 + 39 00 00 00 00 00 02 08 87 + 39 00 00 00 00 00 02 07 86 + 39 00 00 00 00 00 02 06 85 + 39 00 00 00 00 00 02 05 85 + 39 00 00 00 00 00 02 04 85 + 39 00 00 00 00 00 02 03 85 + 39 00 00 00 00 00 02 02 85 + 39 00 00 00 00 00 02 01 83 + + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 7F 00 + 39 00 00 00 00 00 02 7E 01 + 39 00 00 00 00 00 02 7D 01 + 39 00 00 00 00 00 02 7C 01 + 39 00 00 00 00 00 02 7B 01 + 39 00 00 00 00 00 02 7A 01 + 39 00 00 00 00 00 02 79 02 + 39 00 00 00 00 00 02 78 02 + 39 00 00 00 00 00 02 77 02 + 39 00 00 00 00 00 02 76 02 + 39 00 00 00 00 00 02 75 03 + 39 00 00 00 00 00 02 74 03 + 39 00 00 00 00 00 02 73 03 + 39 00 00 00 00 00 02 72 04 + 39 00 00 00 00 00 02 71 05 + 39 00 00 00 00 00 02 70 04 + 39 00 00 00 00 00 02 6F 04 + 39 00 00 00 00 00 02 6E 05 + 39 00 00 00 00 00 02 6D 05 + 39 00 00 00 00 00 02 6C 05 + 39 00 00 00 00 00 02 6B 05 + 39 00 00 00 00 00 02 6A 04 + 39 00 00 00 00 00 02 69 04 + 39 00 00 00 00 00 02 68 05 + 39 00 00 00 00 00 02 67 05 + 39 00 00 00 00 00 02 66 05 + 39 00 00 00 00 00 02 65 05 + 39 00 00 00 00 00 02 64 05 + 39 00 00 00 00 00 02 63 05 + 39 00 00 00 00 00 02 62 05 + 39 00 00 00 00 00 02 61 05 + 39 00 00 00 00 00 02 60 05 + 39 00 00 00 00 00 02 5F 04 + 39 00 00 00 00 00 02 5E 04 + 39 00 00 00 00 00 02 5D 04 + 39 00 00 00 00 00 02 5C 04 + 39 00 00 00 00 00 02 5B 04 + 39 00 00 00 00 00 02 5A 04 + 39 00 00 00 00 00 02 59 04 + 39 00 00 00 00 00 02 58 04 + 39 00 00 00 00 00 02 57 04 + 39 00 00 00 00 00 02 56 04 + 39 00 00 00 00 00 02 55 04 + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 53 03 + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 51 03 + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 4F 03 + 39 00 00 00 00 00 02 4E 04 + 39 00 00 00 00 00 02 4D 04 + 39 00 00 00 00 00 02 4C 04 + 39 00 00 00 00 00 02 4B 05 + 39 00 00 00 00 00 02 4A 05 + 39 00 00 00 00 00 02 49 06 + 39 00 00 00 00 00 02 48 06 + 39 00 00 00 00 00 02 47 06 + 39 00 00 00 00 00 02 46 06 + 39 00 00 00 00 00 02 45 06 + 39 00 00 00 00 00 02 44 07 + 39 00 00 00 00 00 02 43 07 + 39 00 00 00 00 00 02 42 07 + 39 00 00 00 00 00 02 41 07 + 39 00 00 00 00 00 02 40 07 + 39 00 00 00 00 00 02 3F 07 + 39 00 00 00 00 00 02 3E 07 + 39 00 00 00 00 00 02 3D 07 + 39 00 00 00 00 00 02 3C 07 + 39 00 00 00 00 00 02 3B 07 + 39 00 00 00 00 00 02 3A 07 + 39 00 00 00 00 00 02 39 07 + 39 00 00 00 00 00 02 38 08 + 39 00 00 00 00 00 02 37 07 + 39 00 00 00 00 00 02 36 06 + 39 00 00 00 00 00 02 35 05 + 39 00 00 00 00 00 02 34 05 + 39 00 00 00 00 00 02 33 04 + 39 00 00 00 00 00 02 32 05 + 39 00 00 00 00 00 02 31 05 + 39 00 00 00 00 00 02 30 06 + 39 00 00 00 00 00 02 2F 06 + 39 00 00 00 00 00 02 2E 06 + 39 00 00 00 00 00 02 2D 07 + 39 00 00 00 00 00 02 2C 07 + 39 00 00 00 00 00 02 2B 07 + 39 00 00 00 00 00 02 2A 07 + 39 00 00 00 00 00 02 29 07 + 39 00 00 00 00 00 02 28 08 + 39 00 00 00 00 00 02 27 08 + 39 00 00 00 00 00 02 26 08 + 39 00 00 00 00 00 02 25 09 + 39 00 00 00 00 00 02 24 07 + 39 00 00 00 00 00 02 23 05 + 39 00 00 00 00 00 02 22 05 + 39 00 00 00 00 00 02 21 05 + 39 00 00 00 00 00 02 20 05 + 39 00 00 00 00 00 02 1F 05 + 39 00 00 00 00 00 02 1E 06 + 39 00 00 00 00 00 02 1D 05 + 39 00 00 00 00 00 02 1C 05 + 39 00 00 00 00 00 02 1B 05 + 39 00 00 00 00 00 02 1A 04 + 39 00 00 00 00 00 02 19 04 + 39 00 00 00 00 00 02 18 04 + 39 00 00 00 00 00 02 17 03 + 39 00 00 00 00 00 02 16 03 + 39 00 00 00 00 00 02 15 03 + 39 00 00 00 00 00 02 14 04 + 39 00 00 00 00 00 02 13 04 + 39 00 00 00 00 00 02 12 04 + 39 00 00 00 00 00 02 11 04 + 39 00 00 00 00 00 02 10 04 + 39 00 00 00 00 00 02 0F 03 + 39 00 00 00 00 00 02 0E 03 + 39 00 00 00 00 00 02 0D 04 + 39 00 00 00 00 00 02 0C 04 + 39 00 00 00 00 00 02 0B 03 + 39 00 00 00 00 00 02 0A 04 + 39 00 00 00 00 00 02 09 04 + 39 00 00 00 00 00 02 08 04 + 39 00 00 00 00 00 02 07 03 + 39 00 00 00 00 00 02 06 03 + 39 00 00 00 00 00 02 05 04 + 39 00 00 00 00 00 02 04 03 + 39 00 00 00 00 00 02 03 01 + 39 00 00 00 00 00 02 02 81 + 39 00 00 00 00 00 02 01 82 + + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 D3 39 + 39 00 00 00 00 00 02 D2 67 + 39 00 00 00 00 00 02 D1 58 + 39 00 00 00 00 00 02 D0 29 + 39 00 00 00 00 00 02 CF 24 + 39 00 00 00 00 00 02 CE 50 + 39 00 00 00 00 00 02 CD 1C + 39 00 00 00 00 00 02 CC 1D + 39 00 00 00 00 00 02 CB 8F + 39 00 00 00 00 00 02 CA 2A + 39 00 00 00 00 00 02 C9 1D + 39 00 00 00 00 00 02 C8 9D + 39 00 00 00 00 00 02 C7 1F + 39 00 00 00 00 00 02 C6 1D + 39 00 00 00 00 00 02 C5 29 + 39 00 00 00 00 00 02 C4 16 + 39 00 00 00 00 00 02 C3 13 + 39 00 00 00 00 00 02 C2 2D + 39 00 00 00 00 00 02 C1 1D + 39 00 00 00 00 00 02 C0 00 + + 39 00 00 00 00 00 02 B3 39 + 39 00 00 00 00 00 02 B2 68 + 39 00 00 00 00 00 02 B1 59 + 39 00 00 00 00 00 02 B0 28 + 39 00 00 00 00 00 02 AF 23 + 39 00 00 00 00 00 02 AE 4F + 39 00 00 00 00 00 02 AD 1C + 39 00 00 00 00 00 02 AC 1D + 39 00 00 00 00 00 02 AB 90 + 39 00 00 00 00 00 02 AA 2A + 39 00 00 00 00 00 02 A9 1D + 39 00 00 00 00 00 02 A8 9E + 39 00 00 00 00 00 02 A7 1E + 39 00 00 00 00 00 02 A6 1D + 39 00 00 00 00 00 02 A5 29 + 39 00 00 00 00 00 02 A4 15 + 39 00 00 00 00 00 02 A3 12 + 39 00 00 00 00 00 02 A2 2E + 39 00 00 00 00 00 02 A1 1E + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 f6 02 + + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 7F BB + 39 00 00 00 00 00 02 7E BA + 39 00 00 00 00 00 02 7D BA + 39 00 00 00 00 00 02 7C B9 + 39 00 00 00 00 00 02 7B B9 + 39 00 00 00 00 00 02 7A B8 + 39 00 00 00 00 00 02 79 B8 + 39 00 00 00 00 00 02 78 B8 + 39 00 00 00 00 00 02 77 B7 + 39 00 00 00 00 00 02 76 B7 + 39 00 00 00 00 00 02 75 B6 + 39 00 00 00 00 00 02 74 B6 + 39 00 00 00 00 00 02 73 B6 + 39 00 00 00 00 00 02 72 B5 + 39 00 00 00 00 00 02 71 B5 + 39 00 00 00 00 00 02 70 B4 + 39 00 00 00 00 00 02 6F B4 + 39 00 00 00 00 00 02 6E B3 + 39 00 00 00 00 00 02 6D B3 + 39 00 00 00 00 00 02 6C B2 + 39 00 00 00 00 00 02 6B B2 + 39 00 00 00 00 00 02 6A B2 + 39 00 00 00 00 00 02 69 B1 + 39 00 00 00 00 00 02 68 B1 + 39 00 00 00 00 00 02 67 B1 + 39 00 00 00 00 00 02 66 B0 + 39 00 00 00 00 00 02 65 B0 + 39 00 00 00 00 00 02 64 B0 + 39 00 00 00 00 00 02 63 AF + 39 00 00 00 00 00 02 62 AF + 39 00 00 00 00 00 02 61 AF + 39 00 00 00 00 00 02 60 AF + 39 00 00 00 00 00 02 5F AE + 39 00 00 00 00 00 02 5E AE + 39 00 00 00 00 00 02 5D AE + 39 00 00 00 00 00 02 5C AD + 39 00 00 00 00 00 02 5B AD + 39 00 00 00 00 00 02 5A AC + 39 00 00 00 00 00 02 59 AB + 39 00 00 00 00 00 02 58 AA + 39 00 00 00 00 00 02 57 AA + 39 00 00 00 00 00 02 56 A9 + 39 00 00 00 00 00 02 55 A8 + 39 00 00 00 00 00 02 54 A7 + 39 00 00 00 00 00 02 53 A6 + 39 00 00 00 00 00 02 52 A5 + 39 00 00 00 00 00 02 51 A5 + 39 00 00 00 00 00 02 50 A4 + 39 00 00 00 00 00 02 4F A3 + 39 00 00 00 00 00 02 4E A3 + 39 00 00 00 00 00 02 4D A2 + 39 00 00 00 00 00 02 4C A2 + 39 00 00 00 00 00 02 4B A1 + 39 00 00 00 00 00 02 4A A0 + 39 00 00 00 00 00 02 49 A0 + 39 00 00 00 00 00 02 48 9F + 39 00 00 00 00 00 02 47 9F + 39 00 00 00 00 00 02 46 9F + 39 00 00 00 00 00 02 45 9E + 39 00 00 00 00 00 02 44 9E + 39 00 00 00 00 00 02 43 9D + 39 00 00 00 00 00 02 42 9D + 39 00 00 00 00 00 02 41 9C + 39 00 00 00 00 00 02 40 9C + 39 00 00 00 00 00 02 3F 9D + 39 00 00 00 00 00 02 3E 9D + 39 00 00 00 00 00 02 3D 9D + 39 00 00 00 00 00 02 3C 9D + 39 00 00 00 00 00 02 3B 9C + 39 00 00 00 00 00 02 3A 9B + 39 00 00 00 00 00 02 39 9A + 39 00 00 00 00 00 02 38 9A + 39 00 00 00 00 00 02 37 99 + 39 00 00 00 00 00 02 36 98 + 39 00 00 00 00 00 02 35 97 + 39 00 00 00 00 00 02 34 97 + 39 00 00 00 00 00 02 33 96 + 39 00 00 00 00 00 02 32 95 + 39 00 00 00 00 00 02 31 95 + 39 00 00 00 00 00 02 30 94 + 39 00 00 00 00 00 02 2F 93 + 39 00 00 00 00 00 02 2E 93 + 39 00 00 00 00 00 02 2D 92 + 39 00 00 00 00 00 02 2C 91 + 39 00 00 00 00 00 02 2B 90 + 39 00 00 00 00 00 02 2A 92 + 39 00 00 00 00 00 02 29 93 + 39 00 00 00 00 00 02 28 93 + 39 00 00 00 00 00 02 27 92 + 39 00 00 00 00 00 02 26 91 + 39 00 00 00 00 00 02 25 91 + 39 00 00 00 00 00 02 24 90 + 39 00 00 00 00 00 02 23 8F + 39 00 00 00 00 00 02 22 8F + 39 00 00 00 00 00 02 21 8F + 39 00 00 00 00 00 02 20 8F + 39 00 00 00 00 00 02 1F 8E + 39 00 00 00 00 00 02 1E 8E + 39 00 00 00 00 00 02 1D 8E + 39 00 00 00 00 00 02 1C 8E + 39 00 00 00 00 00 02 1B 8D + 39 00 00 00 00 00 02 1A 8D + 39 00 00 00 00 00 02 19 8C + 39 00 00 00 00 00 02 18 8C + 39 00 00 00 00 00 02 17 8B + 39 00 00 00 00 00 02 16 8A + 39 00 00 00 00 00 02 15 8A + 39 00 00 00 00 00 02 14 8A + 39 00 00 00 00 00 02 13 89 + 39 00 00 00 00 00 02 12 89 + 39 00 00 00 00 00 02 11 88 + 39 00 00 00 00 00 02 10 88 + 39 00 00 00 00 00 02 0F 87 + 39 00 00 00 00 00 02 0E 87 + 39 00 00 00 00 00 02 0D 86 + 39 00 00 00 00 00 02 0C 86 + 39 00 00 00 00 00 02 0B 85 + 39 00 00 00 00 00 02 0A 84 + 39 00 00 00 00 00 02 09 84 + 39 00 00 00 00 00 02 08 83 + 39 00 00 00 00 00 02 07 83 + 39 00 00 00 00 00 02 06 82 + 39 00 00 00 00 00 02 05 83 + 39 00 00 00 00 00 02 04 83 + 39 00 00 00 00 00 02 03 83 + 39 00 00 00 00 00 02 02 84 + 39 00 00 00 00 00 02 01 83 + + + 39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 21 B0 + 39 00 00 00 00 00 02 32 02 + 39 01 00 00 00 00 04 FF 98 81 00 + + ]; + + + qcom,mdss-dsi-panel-eye-command06 = [39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 21 B2 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 f6 01 + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 A1 1E + 39 00 00 00 00 00 02 A2 2E + 39 00 00 00 00 00 02 A3 12 + 39 00 00 00 00 00 02 A4 15 + 39 00 00 00 00 00 02 A5 29 + 39 00 00 00 00 00 02 A6 1D + 39 00 00 00 00 00 02 A7 1E + 39 00 00 00 00 00 02 A8 9E + 39 00 00 00 00 00 02 A9 1D + 39 00 00 00 00 00 02 AA 2A + 39 00 00 00 00 00 02 AB 90 + 39 00 00 00 00 00 02 AC 1D + 39 00 00 00 00 00 02 AD 1C + 39 00 00 00 00 00 02 AE 4F + 39 00 00 00 00 00 02 AF 23 + 39 00 00 00 00 00 02 B0 28 + 39 00 00 00 00 00 02 B1 59 + 39 00 00 00 00 00 02 B2 68 + 39 00 00 00 00 00 02 B3 39 + + 39 00 00 00 00 00 02 C0 00 + 39 00 00 00 00 00 02 C1 1D + 39 00 00 00 00 00 02 C2 2D + 39 00 00 00 00 00 02 C3 13 + 39 00 00 00 00 00 02 C4 16 + 39 00 00 00 00 00 02 C5 29 + 39 00 00 00 00 00 02 C6 1D + 39 00 00 00 00 00 02 C7 1F + 39 00 00 00 00 00 02 C8 9D + 39 00 00 00 00 00 02 C9 1D + 39 00 00 00 00 00 02 CA 2A + 39 00 00 00 00 00 02 CB 8F + 39 00 00 00 00 00 02 CC 1D + 39 00 00 00 00 00 02 CD 1C + 39 00 00 00 00 00 02 CE 50 + 39 00 00 00 00 00 02 CF 24 + 39 00 00 00 00 00 02 D0 29 + 39 00 00 00 00 00 02 D1 58 + 39 00 00 00 00 00 02 D2 67 + 39 00 00 00 00 00 02 D3 39 + + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 01 82 + 39 00 00 00 00 00 02 02 81 + 39 00 00 00 00 00 02 03 01 + 39 00 00 00 00 00 02 04 03 + 39 00 00 00 00 00 02 05 03 + 39 00 00 00 00 00 02 06 03 + 39 00 00 00 00 00 02 07 03 + 39 00 00 00 00 00 02 08 04 + 39 00 00 00 00 00 02 09 04 + 39 00 00 00 00 00 02 0A 03 + 39 00 00 00 00 00 02 0B 03 + 39 00 00 00 00 00 02 0C 03 + 39 00 00 00 00 00 02 0D 03 + 39 00 00 00 00 00 02 0E 03 + 39 00 00 00 00 00 02 0F 03 + 39 00 00 00 00 00 02 10 03 + 39 00 00 00 00 00 02 11 04 + 39 00 00 00 00 00 02 12 04 + 39 00 00 00 00 00 02 13 04 + 39 00 00 00 00 00 02 14 03 + 39 00 00 00 00 00 02 15 03 + 39 00 00 00 00 00 02 16 03 + 39 00 00 00 00 00 02 17 03 + 39 00 00 00 00 00 02 18 03 + 39 00 00 00 00 00 02 19 04 + 39 00 00 00 00 00 02 1A 04 + 39 00 00 00 00 00 02 1B 04 + 39 00 00 00 00 00 02 1C 04 + 39 00 00 00 00 00 02 1D 05 + 39 00 00 00 00 00 02 1E 05 + 39 00 00 00 00 00 02 1F 05 + 39 00 00 00 00 00 02 20 05 + 39 00 00 00 00 00 02 21 04 + 39 00 00 00 00 00 02 22 04 + 39 00 00 00 00 00 02 23 04 + 39 00 00 00 00 00 02 24 06 + 39 00 00 00 00 00 02 25 08 + 39 00 00 00 00 00 02 26 08 + 39 00 00 00 00 00 02 27 07 + 39 00 00 00 00 00 02 28 07 + 39 00 00 00 00 00 02 29 07 + 39 00 00 00 00 00 02 2A 06 + 39 00 00 00 00 00 02 2B 06 + 39 00 00 00 00 00 02 2C 06 + 39 00 00 00 00 00 02 2D 06 + 39 00 00 00 00 00 02 2E 06 + 39 00 00 00 00 00 02 2F 05 + 39 00 00 00 00 00 02 30 05 + 39 00 00 00 00 00 02 31 05 + 39 00 00 00 00 00 02 32 04 + 39 00 00 00 00 00 02 33 03 + 39 00 00 00 00 00 02 34 04 + 39 00 00 00 00 00 02 35 04 + 39 00 00 00 00 00 02 36 05 + 39 00 00 00 00 00 02 37 06 + 39 00 00 00 00 00 02 38 07 + 39 00 00 00 00 00 02 39 07 + 39 00 00 00 00 00 02 3A 06 + 39 00 00 00 00 00 02 3B 06 + 39 00 00 00 00 00 02 3C 06 + 39 00 00 00 00 00 02 3D 06 + 39 00 00 00 00 00 02 3E 06 + 39 00 00 00 00 00 02 3F 06 + 39 00 00 00 00 00 02 40 06 + 39 00 00 00 00 00 02 41 06 + 39 00 00 00 00 00 02 42 06 + 39 00 00 00 00 00 02 43 06 + 39 00 00 00 00 00 02 44 06 + 39 00 00 00 00 00 02 45 05 + 39 00 00 00 00 00 02 46 05 + 39 00 00 00 00 00 02 47 05 + 39 00 00 00 00 00 02 48 05 + 39 00 00 00 00 00 02 49 05 + 39 00 00 00 00 00 02 4A 04 + 39 00 00 00 00 00 02 4B 04 + 39 00 00 00 00 00 02 4C 03 + 39 00 00 00 00 00 02 4D 03 + 39 00 00 00 00 00 02 4E 03 + 39 00 00 00 00 00 02 4F 02 + 39 00 00 00 00 00 02 50 02 + 39 00 00 00 00 00 02 51 02 + 39 00 00 00 00 00 02 52 02 + 39 00 00 00 00 00 02 53 02 + 39 00 00 00 00 00 02 54 02 + 39 00 00 00 00 00 02 55 02 + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 57 03 + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 59 03 + 39 00 00 00 00 00 02 5A 03 + 39 00 00 00 00 00 02 5B 03 + 39 00 00 00 00 00 02 5C 03 + 39 00 00 00 00 00 02 5D 03 + 39 00 00 00 00 00 02 5E 03 + 39 00 00 00 00 00 02 5F 03 + 39 00 00 00 00 00 02 60 03 + 39 00 00 00 00 00 02 61 03 + 39 00 00 00 00 00 02 62 03 + 39 00 00 00 00 00 02 63 03 + 39 00 00 00 00 00 02 64 03 + 39 00 00 00 00 00 02 65 03 + 39 00 00 00 00 00 02 66 03 + 39 00 00 00 00 00 02 67 03 + 39 00 00 00 00 00 02 68 03 + 39 00 00 00 00 00 02 69 03 + 39 00 00 00 00 00 02 6A 03 + 39 00 00 00 00 00 02 6B 03 + 39 00 00 00 00 00 02 6C 03 + 39 00 00 00 00 00 02 6D 03 + 39 00 00 00 00 00 02 6E 03 + 39 00 00 00 00 00 02 6F 03 + 39 00 00 00 00 00 02 70 03 + 39 00 00 00 00 00 02 71 03 + 39 00 00 00 00 00 02 72 02 + 39 00 00 00 00 00 02 73 02 + 39 00 00 00 00 00 02 74 01 + 39 00 00 00 00 00 02 75 01 + 39 00 00 00 00 00 02 76 01 + 39 00 00 00 00 00 02 77 00 + 39 00 00 00 00 00 02 78 00 + 39 00 00 00 00 00 02 79 00 + 39 00 00 00 00 00 02 7A 00 + 39 00 00 00 00 00 02 7B 81 + 39 00 00 00 00 00 02 7C 81 + 39 00 00 00 00 00 02 7D 81 + 39 00 00 00 00 00 02 7E 81 + 39 00 00 00 00 00 02 7F 81 + + + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 01 83 + 39 00 00 00 00 00 02 02 84 + 39 00 00 00 00 00 02 03 84 + 39 00 00 00 00 00 02 04 84 + 39 00 00 00 00 00 02 05 84 + 39 00 00 00 00 00 02 06 84 + 39 00 00 00 00 00 02 07 84 + 39 00 00 00 00 00 02 08 85 + 39 00 00 00 00 00 02 09 86 + 39 00 00 00 00 00 02 0A 86 + 39 00 00 00 00 00 02 0B 87 + 39 00 00 00 00 00 02 0C 88 + 39 00 00 00 00 00 02 0D 88 + 39 00 00 00 00 00 02 0E 89 + 39 00 00 00 00 00 02 0F 8A + 39 00 00 00 00 00 02 10 8A + 39 00 00 00 00 00 02 11 8B + 39 00 00 00 00 00 02 12 8C + 39 00 00 00 00 00 02 13 8D + 39 00 00 00 00 00 02 14 8D + 39 00 00 00 00 00 02 15 8E + 39 00 00 00 00 00 02 16 8E + 39 00 00 00 00 00 02 17 8F + 39 00 00 00 00 00 02 18 90 + 39 00 00 00 00 00 02 19 90 + 39 00 00 00 00 00 02 1A 91 + 39 00 00 00 00 00 02 1B 92 + 39 00 00 00 00 00 02 1C 93 + 39 00 00 00 00 00 02 1D 93 + 39 00 00 00 00 00 02 1E 94 + 39 00 00 00 00 00 02 1F 94 + 39 00 00 00 00 00 02 20 95 + 39 00 00 00 00 00 02 21 95 + 39 00 00 00 00 00 02 22 95 + 39 00 00 00 00 00 02 23 96 + 39 00 00 00 00 00 02 24 96 + 39 00 00 00 00 00 02 25 97 + 39 00 00 00 00 00 02 26 97 + 39 00 00 00 00 00 02 27 98 + 39 00 00 00 00 00 02 28 99 + 39 00 00 00 00 00 02 29 9A + 39 00 00 00 00 00 02 2A 9B + 39 00 00 00 00 00 02 2B 9C + 39 00 00 00 00 00 02 2C 9B + 39 00 00 00 00 00 02 2D 99 + 39 00 00 00 00 00 02 2E 9A + 39 00 00 00 00 00 02 2F 9B + 39 00 00 00 00 00 02 30 9C + 39 00 00 00 00 00 02 31 9D + 39 00 00 00 00 00 02 32 9E + 39 00 00 00 00 00 02 33 9F + 39 00 00 00 00 00 02 34 9F + 39 00 00 00 00 00 02 35 A0 + 39 00 00 00 00 00 02 36 A1 + 39 00 00 00 00 00 02 37 A2 + 39 00 00 00 00 00 02 38 A3 + 39 00 00 00 00 00 02 39 A3 + 39 00 00 00 00 00 02 3A A4 + 39 00 00 00 00 00 02 3B A5 + 39 00 00 00 00 00 02 3C A6 + 39 00 00 00 00 00 02 3D A7 + 39 00 00 00 00 00 02 3E A9 + 39 00 00 00 00 00 02 3F A9 + 39 00 00 00 00 00 02 40 A9 + 39 00 00 00 00 00 02 41 AA + 39 00 00 00 00 00 02 42 AA + 39 00 00 00 00 00 02 43 A9 + 39 00 00 00 00 00 02 44 A9 + 39 00 00 00 00 00 02 45 AA + 39 00 00 00 00 00 02 46 AB + 39 00 00 00 00 00 02 47 AC + 39 00 00 00 00 00 02 48 AC + 39 00 00 00 00 00 02 49 AD + 39 00 00 00 00 00 02 4A AE + 39 00 00 00 00 00 02 4B AE + 39 00 00 00 00 00 02 4C AF + 39 00 00 00 00 00 02 4D AF + 39 00 00 00 00 00 02 4E B0 + 39 00 00 00 00 00 02 4F B1 + 39 00 00 00 00 00 02 50 B2 + 39 00 00 00 00 00 02 51 B2 + 39 00 00 00 00 00 02 52 B3 + 39 00 00 00 00 00 02 53 B4 + 39 00 00 00 00 00 02 54 B5 + 39 00 00 00 00 00 02 55 B5 + 39 00 00 00 00 00 02 56 B6 + 39 00 00 00 00 00 02 57 B7 + 39 00 00 00 00 00 02 58 B8 + 39 00 00 00 00 00 02 59 B9 + 39 00 00 00 00 00 02 5A BA + 39 00 00 00 00 00 02 5B BB + 39 00 00 00 00 00 02 5C BC + 39 00 00 00 00 00 02 5D BD + 39 00 00 00 00 00 02 5E BE + 39 00 00 00 00 00 02 5F BF + 39 00 00 00 00 00 02 60 C0 + 39 00 00 00 00 00 02 61 C1 + 39 00 00 00 00 00 02 62 C1 + 39 00 00 00 00 00 02 63 C2 + 39 00 00 00 00 00 02 64 C2 + 39 00 00 00 00 00 02 65 C3 + 39 00 00 00 00 00 02 66 C3 + 39 00 00 00 00 00 02 67 C3 + 39 00 00 00 00 00 02 68 C4 + 39 00 00 00 00 00 02 69 C4 + 39 00 00 00 00 00 02 6A C5 + 39 00 00 00 00 00 02 6B C5 + 39 00 00 00 00 00 02 6C C6 + 39 00 00 00 00 00 02 6D C7 + 39 00 00 00 00 00 02 6E C7 + 39 00 00 00 00 00 02 6F C8 + 39 00 00 00 00 00 02 70 C8 + 39 00 00 00 00 00 02 71 C9 + 39 00 00 00 00 00 02 72 C9 + 39 00 00 00 00 00 02 73 CA + 39 00 00 00 00 00 02 74 CA + 39 00 00 00 00 00 02 75 CB + 39 00 00 00 00 00 02 76 CC + 39 00 00 00 00 00 02 77 CC + 39 00 00 00 00 00 02 78 CD + 39 00 00 00 00 00 02 79 CD + 39 00 00 00 00 00 02 7A CE + 39 00 00 00 00 00 02 7B CE + 39 00 00 00 00 00 02 7C CF + 39 00 00 00 00 00 02 7D D0 + 39 00 00 00 00 00 02 7E D1 + 39 00 00 00 00 00 02 7F D1 + + 39 00 00 00 00 00 04 FF 98 81 09 + 39 00 00 00 00 00 02 01 83 + 39 00 00 00 00 00 02 02 85 + 39 00 00 00 00 00 02 03 86 + 39 00 00 00 00 00 02 04 86 + 39 00 00 00 00 00 02 05 87 + 39 00 00 00 00 00 02 06 87 + 39 00 00 00 00 00 02 07 87 + 39 00 00 00 00 00 02 08 88 + 39 00 00 00 00 00 02 09 89 + 39 00 00 00 00 00 02 0A 8B + 39 00 00 00 00 00 02 0B 8C + 39 00 00 00 00 00 02 0C 8D + 39 00 00 00 00 00 02 0D 8E + 39 00 00 00 00 00 02 0E 8F + 39 00 00 00 00 00 02 0F 90 + 39 00 00 00 00 00 02 10 92 + 39 00 00 00 00 00 02 11 93 + 39 00 00 00 00 00 02 12 94 + 39 00 00 00 00 00 02 13 95 + 39 00 00 00 00 00 02 14 96 + 39 00 00 00 00 00 02 15 97 + 39 00 00 00 00 00 02 16 99 + 39 00 00 00 00 00 02 17 99 + 39 00 00 00 00 00 02 18 9A + 39 00 00 00 00 00 02 19 9B + 39 00 00 00 00 00 02 1A 9C + 39 00 00 00 00 00 02 1B 9D + 39 00 00 00 00 00 02 1C 9F + 39 00 00 00 00 00 02 1D A0 + 39 00 00 00 00 00 02 1E A1 + 39 00 00 00 00 00 02 1F A2 + 39 00 00 00 00 00 02 20 5D + 39 00 00 00 00 00 02 21 5B + 39 00 00 00 00 00 02 22 5B + 39 00 00 00 00 00 02 23 5A + 39 00 00 00 00 00 02 24 59 + 39 00 00 00 00 00 02 25 58 + 39 00 00 00 00 00 02 26 57 + 39 00 00 00 00 00 02 27 56 + 39 00 00 00 00 00 02 28 55 + 39 00 00 00 00 00 02 29 54 + 39 00 00 00 00 00 02 2A 54 + 39 00 00 00 00 00 02 2B 52 + 39 00 00 00 00 00 02 2C 51 + 39 00 00 00 00 00 02 2D 50 + 39 00 00 00 00 00 02 2E 4F + 39 00 00 00 00 00 02 2F 4D + 39 00 00 00 00 00 02 30 4C + 39 00 00 00 00 00 02 31 4B + 39 00 00 00 00 00 02 32 4A + 39 00 00 00 00 00 02 33 4B + 39 00 00 00 00 00 02 34 4C + 39 00 00 00 00 00 02 35 4B + 39 00 00 00 00 00 02 36 49 + 39 00 00 00 00 00 02 37 48 + 39 00 00 00 00 00 02 38 46 + 39 00 00 00 00 00 02 39 45 + 39 00 00 00 00 00 02 3A 43 + 39 00 00 00 00 00 02 3B 42 + 39 00 00 00 00 00 02 3C 41 + 39 00 00 00 00 00 02 3D 40 + 39 00 00 00 00 00 02 3E 3F + 39 00 00 00 00 00 02 3F 3E + 39 00 00 00 00 00 02 40 3C + 39 00 00 00 00 00 02 41 3B + 39 00 00 00 00 00 02 42 3A + 39 00 00 00 00 00 02 43 38 + 39 00 00 00 00 00 02 44 37 + 39 00 00 00 00 00 02 45 36 + 39 00 00 00 00 00 02 46 34 + 39 00 00 00 00 00 02 47 33 + 39 00 00 00 00 00 02 48 31 + 39 00 00 00 00 00 02 49 30 + 39 00 00 00 00 00 02 4A 30 + 39 00 00 00 00 00 02 4B 2F + 39 00 00 00 00 00 02 4C 2E + 39 00 00 00 00 00 02 4D 2E + 39 00 00 00 00 00 02 4E 2E + 39 00 00 00 00 00 02 4F 2D + 39 00 00 00 00 00 02 50 2C + 39 00 00 00 00 00 02 51 2A + 39 00 00 00 00 00 02 52 29 + 39 00 00 00 00 00 02 53 28 + 39 00 00 00 00 00 02 54 27 + 39 00 00 00 00 00 02 55 26 + 39 00 00 00 00 00 02 56 25 + 39 00 00 00 00 00 02 57 24 + 39 00 00 00 00 00 02 58 23 + 39 00 00 00 00 00 02 59 22 + 39 00 00 00 00 00 02 5A 20 + 39 00 00 00 00 00 02 5B 1F + 39 00 00 00 00 00 02 5C 1E + 39 00 00 00 00 00 02 5D 1D + 39 00 00 00 00 00 02 5E 1C + 39 00 00 00 00 00 02 5F 1A + 39 00 00 00 00 00 02 60 19 + 39 00 00 00 00 00 02 61 18 + 39 00 00 00 00 00 02 62 17 + 39 00 00 00 00 00 02 63 15 + 39 00 00 00 00 00 02 64 14 + 39 00 00 00 00 00 02 65 13 + 39 00 00 00 00 00 02 66 11 + 39 00 00 00 00 00 02 67 10 + 39 00 00 00 00 00 02 68 0F + 39 00 00 00 00 00 02 69 0D + 39 00 00 00 00 00 02 6A 0C + 39 00 00 00 00 00 02 6B 0B + 39 00 00 00 00 00 02 6C 0A + 39 00 00 00 00 00 02 6D 08 + 39 00 00 00 00 00 02 6E 07 + 39 00 00 00 00 00 02 6F 05 + 39 00 00 00 00 00 02 70 04 + 39 00 00 00 00 00 02 71 03 + 39 00 00 00 00 00 02 72 02 + 39 00 00 00 00 00 02 73 01 + 39 00 00 00 00 00 02 74 00 + 39 00 00 00 00 00 02 75 81 + 39 00 00 00 00 00 02 76 82 + 39 00 00 00 00 00 02 77 83 + 39 00 00 00 00 00 02 78 84 + 39 00 00 00 00 00 02 79 85 + 39 00 00 00 00 00 02 7A 86 + 39 00 00 00 00 00 02 7B 87 + 39 00 00 00 00 00 02 7C 88 + 39 00 00 00 00 00 02 7D 89 + 39 00 00 00 00 00 02 7E 8A + 39 00 00 00 00 00 02 7F 8B + 39 01 00 00 00 00 04 FF 98 81 00 + + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 01 82 + 39 00 00 00 00 00 02 02 82 + 39 00 00 00 00 00 02 03 82 + 39 00 00 00 00 00 02 04 82 + 39 00 00 00 00 00 02 05 82 + 39 00 00 00 00 00 02 06 83 + 39 00 00 00 00 00 02 07 83 + 39 00 00 00 00 00 02 08 83 + 39 00 00 00 00 00 02 09 83 + 39 00 00 00 00 00 02 0A 83 + 39 00 00 00 00 00 02 0B 83 + 39 00 00 00 00 00 02 0C 83 + 39 00 00 00 00 00 02 0D 83 + 39 00 00 00 00 00 02 0E 83 + 39 00 00 00 00 00 02 0F 83 + 39 00 00 00 00 00 02 10 82 + 39 00 00 00 00 00 02 11 82 + 39 00 00 00 00 00 02 12 83 + 39 00 00 00 00 00 02 13 83 + 39 00 00 00 00 00 02 14 84 + 39 00 00 00 00 00 02 15 84 + 39 00 00 00 00 00 02 16 84 + 39 00 00 00 00 00 02 17 85 + 39 00 00 00 00 00 02 18 85 + 39 00 00 00 00 00 02 19 85 + 39 00 00 00 00 00 02 1A 85 + 39 00 00 00 00 00 02 1B 86 + 39 00 00 00 00 00 02 1C 86 + 39 00 00 00 00 00 02 1D 86 + 39 00 00 00 00 00 02 1E 86 + 39 00 00 00 00 00 02 1F 86 + 39 00 00 00 00 00 02 20 86 + 39 00 00 00 00 00 02 21 86 + 39 00 00 00 00 00 02 22 86 + 39 00 00 00 00 00 02 23 86 + 39 00 00 00 00 00 02 24 86 + 39 00 00 00 00 00 02 25 86 + 39 00 00 00 00 00 02 26 87 + 39 00 00 00 00 00 02 27 86 + 39 00 00 00 00 00 02 28 86 + 39 00 00 00 00 00 02 29 86 + 39 00 00 00 00 00 02 2A 85 + 39 00 00 00 00 00 02 2B 85 + 39 00 00 00 00 00 02 2C 85 + 39 00 00 00 00 00 02 2D 85 + 39 00 00 00 00 00 02 2E 85 + 39 00 00 00 00 00 02 2F 84 + 39 00 00 00 00 00 02 30 84 + 39 00 00 00 00 00 02 31 85 + 39 00 00 00 00 00 02 32 85 + 39 00 00 00 00 00 02 33 86 + 39 00 00 00 00 00 02 34 86 + 39 00 00 00 00 00 02 35 87 + 39 00 00 00 00 00 02 36 87 + 39 00 00 00 00 00 02 37 88 + 39 00 00 00 00 00 02 38 88 + 39 00 00 00 00 00 02 39 89 + 39 00 00 00 00 00 02 3A 89 + 39 00 00 00 00 00 02 3B 89 + 39 00 00 00 00 00 02 3C 8A + 39 00 00 00 00 00 02 3D 8A + 39 00 00 00 00 00 02 3E 8A + 39 00 00 00 00 00 02 3F 8A + 39 00 00 00 00 00 02 40 8A + 39 00 00 00 00 00 02 41 8A + 39 00 00 00 00 00 02 42 8A + 39 00 00 00 00 00 02 43 8A + 39 00 00 00 00 00 02 44 8A + 39 00 00 00 00 00 02 45 8A + 39 00 00 00 00 00 02 46 8A + 39 00 00 00 00 00 02 47 8A + 39 00 00 00 00 00 02 48 8A + 39 00 00 00 00 00 02 49 89 + 39 00 00 00 00 00 02 4A 89 + 39 00 00 00 00 00 02 4B 88 + 39 00 00 00 00 00 02 4C 88 + 39 00 00 00 00 00 02 4D 88 + 39 00 00 00 00 00 02 4E 88 + 39 00 00 00 00 00 02 4F 88 + 39 00 00 00 00 00 02 50 89 + 39 00 00 00 00 00 02 51 89 + 39 00 00 00 00 00 02 52 89 + 39 00 00 00 00 00 02 53 89 + 39 00 00 00 00 00 02 54 8A + 39 00 00 00 00 00 02 55 8A + 39 00 00 00 00 00 02 56 8A + 39 00 00 00 00 00 02 57 8A + 39 00 00 00 00 00 02 58 89 + 39 00 00 00 00 00 02 59 89 + 39 00 00 00 00 00 02 5A 89 + 39 00 00 00 00 00 02 5B 88 + 39 00 00 00 00 00 02 5C 88 + 39 00 00 00 00 00 02 5D 88 + 39 00 00 00 00 00 02 5E 88 + 39 00 00 00 00 00 02 5F 88 + 39 00 00 00 00 00 02 60 89 + 39 00 00 00 00 00 02 61 89 + 39 00 00 00 00 00 02 62 89 + 39 00 00 00 00 00 02 63 89 + 39 00 00 00 00 00 02 64 89 + 39 00 00 00 00 00 02 65 89 + 39 00 00 00 00 00 02 66 89 + 39 00 00 00 00 00 02 67 88 + 39 00 00 00 00 00 02 68 88 + 39 00 00 00 00 00 02 69 88 + 39 00 00 00 00 00 02 6A 88 + 39 00 00 00 00 00 02 6B 89 + 39 00 00 00 00 00 02 6C 89 + 39 00 00 00 00 00 02 6D 89 + 39 00 00 00 00 00 02 6E 89 + 39 00 00 00 00 00 02 6F 89 + 39 00 00 00 00 00 02 70 89 + 39 00 00 00 00 00 02 71 89 + 39 00 00 00 00 00 02 72 89 + 39 00 00 00 00 00 02 73 89 + 39 00 00 00 00 00 02 74 89 + 39 00 00 00 00 00 02 75 88 + 39 00 00 00 00 00 02 76 88 + 39 00 00 00 00 00 02 77 88 + 39 00 00 00 00 00 02 78 88 + 39 00 00 00 00 00 02 79 87 + 39 00 00 00 00 00 02 7A 88 + 39 00 00 00 00 00 02 7B 88 + 39 00 00 00 00 00 02 7C 87 + 39 00 00 00 00 00 02 7D 87 + 39 00 00 00 00 00 02 7E 88 + 39 00 00 00 00 00 02 7F 89 + + 39 00 00 00 00 00 04 FF 98 81 08 + 39 00 00 00 00 00 02 01 D2 + 39 00 00 00 00 00 02 02 D3 + 39 00 00 00 00 00 02 03 D3 + 39 00 00 00 00 00 02 04 D4 + 39 00 00 00 00 00 02 05 D5 + 39 00 00 00 00 00 02 06 D5 + 39 00 00 00 00 00 02 07 D6 + 39 00 00 00 00 00 02 08 D7 + 39 00 00 00 00 00 02 09 D8 + 39 00 00 00 00 00 02 0A D9 + 39 00 00 00 00 00 02 0B DA + 39 00 00 00 00 00 02 0C DA + 39 00 00 00 00 00 02 0D DB + 39 00 00 00 00 00 02 0E DC + 39 00 00 00 00 00 02 0F DD + 39 00 00 00 00 00 02 10 DE + 39 00 00 00 00 00 02 11 DE + 39 00 00 00 00 00 02 12 DF + 39 00 00 00 00 00 02 13 E0 + 39 00 00 00 00 00 02 14 E1 + 39 00 00 00 00 00 02 15 E2 + 39 00 00 00 00 00 02 16 E2 + 39 00 00 00 00 00 02 17 E3 + 39 00 00 00 00 00 02 18 E4 + 39 00 00 00 00 00 02 19 E5 + 39 00 00 00 00 00 02 1A E6 + 39 00 00 00 00 00 02 1B E6 + 39 00 00 00 00 00 02 1C E7 + 39 00 00 00 00 00 02 1D E8 + 39 00 00 00 00 00 02 1E E8 + 39 00 00 00 00 00 02 1F E9 + 39 00 00 00 00 00 02 20 E9 + 39 00 00 00 00 00 02 21 EA + 39 00 00 00 00 00 02 22 EB + 39 00 00 00 00 00 02 23 EB + 39 00 00 00 00 00 02 24 EC + 39 00 00 00 00 00 02 25 ED + 39 00 00 00 00 00 02 26 ED + 39 00 00 00 00 00 02 27 EE + 39 00 00 00 00 00 02 28 EE + 39 00 00 00 00 00 02 29 EF + 39 00 00 00 00 00 02 2A EF + 39 00 00 00 00 00 02 2B F0 + 39 00 00 00 00 00 02 2C F0 + 39 00 00 00 00 00 02 2D F1 + 39 00 00 00 00 00 02 2E F2 + 39 00 00 00 00 00 02 2F F3 + 39 00 00 00 00 00 02 30 F4 + 39 00 00 00 00 00 02 31 F5 + 39 00 00 00 00 00 02 32 F5 + 39 00 00 00 00 00 02 33 F6 + 39 00 00 00 00 00 02 34 F7 + 39 00 00 00 00 00 02 35 F8 + 39 00 00 00 00 00 02 36 F9 + 39 00 00 00 00 00 02 37 F9 + 39 00 00 00 00 00 02 38 FA + 39 00 00 00 00 00 02 39 FB + 39 00 00 00 00 00 02 3A FC + 39 00 00 00 00 00 02 3B FC + 39 00 00 00 00 00 02 3C FD + 39 00 00 00 00 00 02 3D FE + 39 00 00 00 00 00 02 3E FE + 39 00 00 00 00 00 02 3F FF + 39 00 00 00 00 00 02 40 FF + 39 00 00 00 00 00 02 41 FF + 39 00 00 00 00 00 02 42 FF + 39 00 00 00 00 00 02 43 FF + 39 00 00 00 00 00 02 44 FF + 39 00 00 00 00 00 02 45 FF + 39 00 00 00 00 00 02 46 FF + 39 00 00 00 00 00 02 47 FF + 39 00 00 00 00 00 02 48 FF + 39 00 00 00 00 00 02 49 FF + 39 00 00 00 00 00 02 4A FF + 39 00 00 00 00 00 02 4B FF + 39 00 00 00 00 00 02 4C FF + 39 00 00 00 00 00 02 4D FF + 39 00 00 00 00 00 02 4E FF + 39 00 00 00 00 00 02 4F FF + 39 00 00 00 00 00 02 50 FF + 39 00 00 00 00 00 02 51 FF + 39 00 00 00 00 00 02 52 FF + 39 00 00 00 00 00 02 53 FF + 39 00 00 00 00 00 02 54 FF + 39 00 00 00 00 00 02 55 FF + 39 00 00 00 00 00 02 56 FF + 39 00 00 00 00 00 02 57 FF + 39 00 00 00 00 00 02 58 FF + 39 00 00 00 00 00 02 59 FF + 39 00 00 00 00 00 02 5A FF + 39 00 00 00 00 00 02 5B FF + 39 00 00 00 00 00 02 5C FF + 39 00 00 00 00 00 02 5D FF + 39 00 00 00 00 00 02 5E FF + 39 00 00 00 00 00 02 5F FF + 39 00 00 00 00 00 02 60 FF + 39 00 00 00 00 00 02 61 FF + 39 00 00 00 00 00 02 62 FF + 39 00 00 00 00 00 02 63 FF + 39 00 00 00 00 00 02 64 FF + 39 00 00 00 00 00 02 65 FF + 39 00 00 00 00 00 02 66 FF + 39 00 00 00 00 00 02 67 FF + 39 00 00 00 00 00 02 68 FF + 39 00 00 00 00 00 02 69 FF + 39 00 00 00 00 00 02 6A FF + 39 00 00 00 00 00 02 6B FF + 39 00 00 00 00 00 02 6C FF + 39 00 00 00 00 00 02 6D FF + 39 00 00 00 00 00 02 6E FF + 39 00 00 00 00 00 02 6F FF + 39 00 00 00 00 00 02 70 FF + 39 00 00 00 00 00 02 71 FF + 39 00 00 00 00 00 02 72 FF + 39 00 00 00 00 00 02 73 FF + 39 00 00 00 00 00 02 74 FF + 39 00 00 00 00 00 02 75 FF + 39 00 00 00 00 00 02 76 FF + 39 00 00 00 00 00 02 77 FF + 39 00 00 00 00 00 02 78 FF + 39 00 00 00 00 00 02 79 FF + 39 00 00 00 00 00 02 7A FF + 39 00 00 00 00 00 02 7B FF + 39 00 00 00 00 00 02 7C FF + 39 00 00 00 00 00 02 7D FF + 39 00 00 00 00 00 02 7E FF + 39 00 00 00 00 00 02 7F FF + + + 39 00 00 00 00 00 04 FF 98 81 0A + 39 00 00 00 00 00 02 01 73 + 39 00 00 00 00 00 02 02 72 + 39 00 00 00 00 00 02 03 71 + 39 00 00 00 00 00 02 04 70 + 39 00 00 00 00 00 02 05 6F + 39 00 00 00 00 00 02 06 6E + 39 00 00 00 00 00 02 07 6D + 39 00 00 00 00 00 02 08 6C + 39 00 00 00 00 00 02 09 6B + 39 00 00 00 00 00 02 0A 69 + 39 00 00 00 00 00 02 0B 68 + 39 00 00 00 00 00 02 0C 67 + 39 00 00 00 00 00 02 0D 66 + 39 00 00 00 00 00 02 0E 65 + 39 00 00 00 00 00 02 0F 64 + 39 00 00 00 00 00 02 10 63 + 39 00 00 00 00 00 02 11 62 + 39 00 00 00 00 00 02 12 61 + 39 00 00 00 00 00 02 13 60 + 39 00 00 00 00 00 02 14 5F + 39 00 00 00 00 00 02 15 5D + 39 00 00 00 00 00 02 16 5C + 39 00 00 00 00 00 02 17 5B + 39 00 00 00 00 00 02 18 5A + 39 00 00 00 00 00 02 19 59 + 39 00 00 00 00 00 02 1A 58 + 39 00 00 00 00 00 02 1B 57 + 39 00 00 00 00 00 02 1C 56 + 39 00 00 00 00 00 02 1D 55 + 39 00 00 00 00 00 02 1E 53 + 39 00 00 00 00 00 02 1F 51 + 39 00 00 00 00 00 02 20 50 + 39 00 00 00 00 00 02 21 4F + 39 00 00 00 00 00 02 22 4E + 39 00 00 00 00 00 02 23 4C + 39 00 00 00 00 00 02 24 4B + 39 00 00 00 00 00 02 25 49 + 39 00 00 00 00 00 02 26 48 + 39 00 00 00 00 00 02 27 47 + 39 00 00 00 00 00 02 28 46 + 39 00 00 00 00 00 02 29 45 + 39 00 00 00 00 00 02 2A 43 + 39 00 00 00 00 00 02 2B 42 + 39 00 00 00 00 00 02 2C 41 + 39 00 00 00 00 00 02 2D 40 + 39 00 00 00 00 00 02 2E 3E + 39 00 00 00 00 00 02 2F 3D + 39 00 00 00 00 00 02 30 3C + 39 00 00 00 00 00 02 31 3A + 39 00 00 00 00 00 02 32 39 + 39 00 00 00 00 00 02 33 38 + 39 00 00 00 00 00 02 34 37 + 39 00 00 00 00 00 02 35 36 + 39 00 00 00 00 00 02 36 35 + 39 00 00 00 00 00 02 37 34 + 39 00 00 00 00 00 02 38 32 + 39 00 00 00 00 00 02 39 31 + 39 00 00 00 00 00 02 3A 30 + 39 00 00 00 00 00 02 3B 2F + 39 00 00 00 00 00 02 3C 2E + 39 00 00 00 00 00 02 3D 2C + 39 00 00 00 00 00 02 3E 2B + 39 00 00 00 00 00 02 3F 2A + 39 00 00 00 00 00 02 40 29 + 39 00 00 00 00 00 02 41 28 + 39 00 00 00 00 00 02 42 27 + 39 00 00 00 00 00 02 43 26 + 39 00 00 00 00 00 02 44 25 + 39 00 00 00 00 00 02 45 24 + 39 00 00 00 00 00 02 46 23 + 39 00 00 00 00 00 02 47 22 + 39 00 00 00 00 00 02 48 21 + 39 00 00 00 00 00 02 49 1F + 39 00 00 00 00 00 02 4A 1E + 39 00 00 00 00 00 02 4B 1D + 39 00 00 00 00 00 02 4C 1B + 39 00 00 00 00 00 02 4D 1A + 39 00 00 00 00 00 02 4E 19 + 39 00 00 00 00 00 02 4F 17 + 39 00 00 00 00 00 02 50 16 + 39 00 00 00 00 00 02 51 15 + 39 00 00 00 00 00 02 52 13 + 39 00 00 00 00 00 02 53 12 + 39 00 00 00 00 00 02 54 11 + 39 00 00 00 00 00 02 55 0F + 39 00 00 00 00 00 02 56 0E + 39 00 00 00 00 00 02 57 0D + 39 00 00 00 00 00 02 58 0C + 39 00 00 00 00 00 02 59 0B + 39 00 00 00 00 00 02 5A 09 + 39 00 00 00 00 00 02 5B 08 + 39 00 00 00 00 00 02 5C 07 + 39 00 00 00 00 00 02 5D 06 + 39 00 00 00 00 00 02 5E 05 + 39 00 00 00 00 00 02 5F 03 + 39 00 00 00 00 00 02 60 02 + 39 00 00 00 00 00 02 61 01 + 39 00 00 00 00 00 02 62 00 + 39 00 00 00 00 00 02 63 81 + 39 00 00 00 00 00 02 64 82 + 39 00 00 00 00 00 02 65 84 + 39 00 00 00 00 00 02 66 85 + 39 00 00 00 00 00 02 67 86 + 39 00 00 00 00 00 02 68 86 + 39 00 00 00 00 00 02 69 87 + 39 00 00 00 00 00 02 6A 88 + 39 00 00 00 00 00 02 6B 89 + 39 00 00 00 00 00 02 6C 8A + 39 00 00 00 00 00 02 6D 8B + 39 00 00 00 00 00 02 6E 8C + 39 00 00 00 00 00 02 6F 8D + 39 00 00 00 00 00 02 70 8E + 39 00 00 00 00 00 02 71 8F + 39 00 00 00 00 00 02 72 90 + 39 00 00 00 00 00 02 73 91 + 39 00 00 00 00 00 02 74 92 + 39 00 00 00 00 00 02 75 94 + 39 00 00 00 00 00 02 76 95 + 39 00 00 00 00 00 02 77 97 + 39 00 00 00 00 00 02 78 99 + 39 00 00 00 00 00 02 79 9A + 39 00 00 00 00 00 02 7A 9C + 39 00 00 00 00 00 02 7B 9D + 39 00 00 00 00 00 02 7C 9E + 39 00 00 00 00 00 02 7D A0 + 39 00 00 00 00 00 02 7E A2 + 39 00 00 00 00 00 02 7F A3 + + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F 81 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 82 + 39 00 00 00 00 00 02 7F 89 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F d1 + 39 00 00 00 00 00 04 FF 98 81 08 + 39 00 00 00 00 00 02 00 d2 + 39 00 00 00 00 00 02 7F ff + 39 00 00 00 00 00 04 FF 98 81 09 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F 8b + 39 00 00 00 00 00 04 FF 98 81 0A + 39 00 00 00 00 00 02 00 74 + 39 00 00 00 00 00 02 7F a3 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 80 01 + 39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 21 B0 + 39 00 00 00 00 00 02 32 02 + 39 01 00 00 00 00 04 FF 98 81 00 + 39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 21 B2 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 04 FF 98 81 0A + 39 00 00 00 00 00 02 7F A3 + 39 00 00 00 00 00 02 7E A2 + 39 00 00 00 00 00 02 7D A0 + 39 00 00 00 00 00 02 7C 9E + 39 00 00 00 00 00 02 7B 9D + 39 00 00 00 00 00 02 7A 9C + 39 00 00 00 00 00 02 79 9A + 39 00 00 00 00 00 02 78 99 + 39 00 00 00 00 00 02 77 97 + 39 00 00 00 00 00 02 76 95 + 39 00 00 00 00 00 02 75 94 + 39 00 00 00 00 00 02 74 92 + 39 00 00 00 00 00 02 73 91 + 39 00 00 00 00 00 02 72 90 + 39 00 00 00 00 00 02 71 8F + 39 00 00 00 00 00 02 70 8E + 39 00 00 00 00 00 02 6F 8D + 39 00 00 00 00 00 02 6E 8C + 39 00 00 00 00 00 02 6D 8B + 39 00 00 00 00 00 02 6C 8A + 39 00 00 00 00 00 02 6B 89 + 39 00 00 00 00 00 02 6A 88 + 39 00 00 00 00 00 02 69 87 + 39 00 00 00 00 00 02 68 86 + 39 00 00 00 00 00 02 67 86 + 39 00 00 00 00 00 02 66 85 + 39 00 00 00 00 00 02 65 84 + 39 00 00 00 00 00 02 64 82 + 39 00 00 00 00 00 02 63 81 + 39 00 00 00 00 00 02 62 00 + 39 00 00 00 00 00 02 61 01 + 39 00 00 00 00 00 02 60 02 + 39 00 00 00 00 00 02 5F 03 + 39 00 00 00 00 00 02 5E 05 + 39 00 00 00 00 00 02 5D 06 + 39 00 00 00 00 00 02 5C 07 + 39 00 00 00 00 00 02 5B 08 + 39 00 00 00 00 00 02 5A 09 + 39 00 00 00 00 00 02 59 0B + 39 00 00 00 00 00 02 58 0C + 39 00 00 00 00 00 02 57 0D + 39 00 00 00 00 00 02 56 0E + 39 00 00 00 00 00 02 55 0F + 39 00 00 00 00 00 02 54 11 + 39 00 00 00 00 00 02 53 12 + 39 00 00 00 00 00 02 52 13 + 39 00 00 00 00 00 02 51 15 + 39 00 00 00 00 00 02 50 16 + 39 00 00 00 00 00 02 4F 17 + 39 00 00 00 00 00 02 4E 19 + 39 00 00 00 00 00 02 4D 1A + 39 00 00 00 00 00 02 4C 1B + 39 00 00 00 00 00 02 4B 1D + 39 00 00 00 00 00 02 4A 1E + 39 00 00 00 00 00 02 49 1F + 39 00 00 00 00 00 02 48 21 + 39 00 00 00 00 00 02 47 22 + 39 00 00 00 00 00 02 46 23 + 39 00 00 00 00 00 02 45 24 + 39 00 00 00 00 00 02 44 25 + 39 00 00 00 00 00 02 43 26 + 39 00 00 00 00 00 02 42 27 + 39 00 00 00 00 00 02 41 28 + 39 00 00 00 00 00 02 40 29 + 39 00 00 00 00 00 02 3F 2A + 39 00 00 00 00 00 02 3E 2B + 39 00 00 00 00 00 02 3D 2C + 39 00 00 00 00 00 02 3C 2E + 39 00 00 00 00 00 02 3B 2F + 39 00 00 00 00 00 02 3A 30 + 39 00 00 00 00 00 02 39 31 + 39 00 00 00 00 00 02 38 32 + 39 00 00 00 00 00 02 37 34 + 39 00 00 00 00 00 02 36 35 + 39 00 00 00 00 00 02 35 36 + 39 00 00 00 00 00 02 34 37 + 39 00 00 00 00 00 02 33 38 + 39 00 00 00 00 00 02 32 39 + 39 00 00 00 00 00 02 31 3A + 39 00 00 00 00 00 02 30 3C + 39 00 00 00 00 00 02 2F 3D + 39 00 00 00 00 00 02 2E 3E + 39 00 00 00 00 00 02 2D 40 + 39 00 00 00 00 00 02 2C 41 + 39 00 00 00 00 00 02 2B 42 + 39 00 00 00 00 00 02 2A 43 + 39 00 00 00 00 00 02 29 45 + 39 00 00 00 00 00 02 28 46 + 39 00 00 00 00 00 02 27 47 + 39 00 00 00 00 00 02 26 48 + 39 00 00 00 00 00 02 25 49 + 39 00 00 00 00 00 02 24 4B + 39 00 00 00 00 00 02 23 4C + 39 00 00 00 00 00 02 22 4E + 39 00 00 00 00 00 02 21 4F + 39 00 00 00 00 00 02 20 50 + 39 00 00 00 00 00 02 1F 51 + 39 00 00 00 00 00 02 1E 53 + 39 00 00 00 00 00 02 1D 55 + 39 00 00 00 00 00 02 1C 56 + 39 00 00 00 00 00 02 1B 57 + 39 00 00 00 00 00 02 1A 58 + 39 00 00 00 00 00 02 19 59 + 39 00 00 00 00 00 02 18 5A + 39 00 00 00 00 00 02 17 5B + 39 00 00 00 00 00 02 16 5C + 39 00 00 00 00 00 02 15 5D + 39 00 00 00 00 00 02 14 5F + 39 00 00 00 00 00 02 13 60 + 39 00 00 00 00 00 02 12 61 + 39 00 00 00 00 00 02 11 62 + 39 00 00 00 00 00 02 10 63 + 39 00 00 00 00 00 02 0F 64 + 39 00 00 00 00 00 02 0E 65 + 39 00 00 00 00 00 02 0D 66 + 39 00 00 00 00 00 02 0C 67 + 39 00 00 00 00 00 02 0B 68 + 39 00 00 00 00 00 02 0A 69 + 39 00 00 00 00 00 02 09 6B + 39 00 00 00 00 00 02 08 6C + 39 00 00 00 00 00 02 07 6D + 39 00 00 00 00 00 02 06 6E + 39 00 00 00 00 00 02 05 6F + 39 00 00 00 00 00 02 04 70 + 39 00 00 00 00 00 02 03 71 + 39 00 00 00 00 00 02 02 72 + 39 00 00 00 00 00 02 01 73 + + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 7F 89 + 39 00 00 00 00 00 02 7E 88 + 39 00 00 00 00 00 02 7D 87 + 39 00 00 00 00 00 02 7C 87 + 39 00 00 00 00 00 02 7B 88 + 39 00 00 00 00 00 02 7A 88 + 39 00 00 00 00 00 02 79 87 + 39 00 00 00 00 00 02 78 88 + 39 00 00 00 00 00 02 77 88 + 39 00 00 00 00 00 02 76 88 + 39 00 00 00 00 00 02 75 88 + 39 00 00 00 00 00 02 74 89 + 39 00 00 00 00 00 02 73 89 + 39 00 00 00 00 00 02 72 89 + 39 00 00 00 00 00 02 71 89 + 39 00 00 00 00 00 02 70 89 + 39 00 00 00 00 00 02 6F 89 + 39 00 00 00 00 00 02 6E 89 + 39 00 00 00 00 00 02 6D 89 + 39 00 00 00 00 00 02 6C 89 + 39 00 00 00 00 00 02 6B 89 + 39 00 00 00 00 00 02 6A 88 + 39 00 00 00 00 00 02 69 88 + 39 00 00 00 00 00 02 68 88 + 39 00 00 00 00 00 02 67 88 + 39 00 00 00 00 00 02 66 89 + 39 00 00 00 00 00 02 65 89 + 39 00 00 00 00 00 02 64 89 + 39 00 00 00 00 00 02 63 89 + 39 00 00 00 00 00 02 62 89 + 39 00 00 00 00 00 02 61 89 + 39 00 00 00 00 00 02 60 89 + 39 00 00 00 00 00 02 5F 88 + 39 00 00 00 00 00 02 5E 88 + 39 00 00 00 00 00 02 5D 88 + 39 00 00 00 00 00 02 5C 88 + 39 00 00 00 00 00 02 5B 88 + 39 00 00 00 00 00 02 5A 89 + 39 00 00 00 00 00 02 59 89 + 39 00 00 00 00 00 02 58 89 + 39 00 00 00 00 00 02 57 8A + 39 00 00 00 00 00 02 56 8A + 39 00 00 00 00 00 02 55 8A + 39 00 00 00 00 00 02 54 8A + 39 00 00 00 00 00 02 53 89 + 39 00 00 00 00 00 02 52 89 + 39 00 00 00 00 00 02 51 89 + 39 00 00 00 00 00 02 50 89 + 39 00 00 00 00 00 02 4F 88 + 39 00 00 00 00 00 02 4E 88 + 39 00 00 00 00 00 02 4D 88 + 39 00 00 00 00 00 02 4C 88 + 39 00 00 00 00 00 02 4B 88 + 39 00 00 00 00 00 02 4A 89 + 39 00 00 00 00 00 02 49 89 + 39 00 00 00 00 00 02 48 8A + 39 00 00 00 00 00 02 47 8A + 39 00 00 00 00 00 02 46 8A + 39 00 00 00 00 00 02 45 8A + 39 00 00 00 00 00 02 44 8A + 39 00 00 00 00 00 02 43 8A + 39 00 00 00 00 00 02 42 8A + 39 00 00 00 00 00 02 41 8A + 39 00 00 00 00 00 02 40 8A + 39 00 00 00 00 00 02 3F 8A + 39 00 00 00 00 00 02 3E 8A + 39 00 00 00 00 00 02 3D 8A + 39 00 00 00 00 00 02 3C 8A + 39 00 00 00 00 00 02 3B 89 + 39 00 00 00 00 00 02 3A 89 + 39 00 00 00 00 00 02 39 89 + 39 00 00 00 00 00 02 38 88 + 39 00 00 00 00 00 02 37 88 + 39 00 00 00 00 00 02 36 87 + 39 00 00 00 00 00 02 35 87 + 39 00 00 00 00 00 02 34 86 + 39 00 00 00 00 00 02 33 86 + 39 00 00 00 00 00 02 32 85 + 39 00 00 00 00 00 02 31 85 + 39 00 00 00 00 00 02 30 84 + 39 00 00 00 00 00 02 2F 84 + 39 00 00 00 00 00 02 2E 85 + 39 00 00 00 00 00 02 2D 85 + 39 00 00 00 00 00 02 2C 85 + 39 00 00 00 00 00 02 2B 85 + 39 00 00 00 00 00 02 2A 85 + 39 00 00 00 00 00 02 29 86 + 39 00 00 00 00 00 02 28 86 + 39 00 00 00 00 00 02 27 86 + 39 00 00 00 00 00 02 26 87 + 39 00 00 00 00 00 02 25 86 + 39 00 00 00 00 00 02 24 86 + 39 00 00 00 00 00 02 23 86 + 39 00 00 00 00 00 02 22 86 + 39 00 00 00 00 00 02 21 86 + 39 00 00 00 00 00 02 20 86 + 39 00 00 00 00 00 02 1F 86 + 39 00 00 00 00 00 02 1E 86 + 39 00 00 00 00 00 02 1D 86 + 39 00 00 00 00 00 02 1C 86 + 39 00 00 00 00 00 02 1B 86 + 39 00 00 00 00 00 02 1A 85 + 39 00 00 00 00 00 02 19 85 + 39 00 00 00 00 00 02 18 85 + 39 00 00 00 00 00 02 17 85 + 39 00 00 00 00 00 02 16 84 + 39 00 00 00 00 00 02 15 84 + 39 00 00 00 00 00 02 14 84 + 39 00 00 00 00 00 02 13 83 + 39 00 00 00 00 00 02 12 83 + 39 00 00 00 00 00 02 11 82 + 39 00 00 00 00 00 02 10 82 + 39 00 00 00 00 00 02 0F 83 + 39 00 00 00 00 00 02 0E 83 + 39 00 00 00 00 00 02 0D 83 + 39 00 00 00 00 00 02 0C 83 + 39 00 00 00 00 00 02 0B 83 + 39 00 00 00 00 00 02 0A 83 + 39 00 00 00 00 00 02 09 83 + 39 00 00 00 00 00 02 08 83 + 39 00 00 00 00 00 02 07 83 + 39 00 00 00 00 00 02 06 83 + 39 00 00 00 00 00 02 05 82 + 39 00 00 00 00 00 02 04 82 + 39 00 00 00 00 00 02 03 82 + 39 00 00 00 00 00 02 02 82 + 39 00 00 00 00 00 02 01 82 + + 39 00 00 00 00 00 04 FF 98 81 08 + 39 00 00 00 00 00 02 7F FF + 39 00 00 00 00 00 02 7E FF + 39 00 00 00 00 00 02 7D FF + 39 00 00 00 00 00 02 7C FF + 39 00 00 00 00 00 02 7B FF + 39 00 00 00 00 00 02 7A FF + 39 00 00 00 00 00 02 79 FF + 39 00 00 00 00 00 02 78 FF + 39 00 00 00 00 00 02 77 FF + 39 00 00 00 00 00 02 76 FF + 39 00 00 00 00 00 02 75 FF + 39 00 00 00 00 00 02 74 FF + 39 00 00 00 00 00 02 73 FF + 39 00 00 00 00 00 02 72 FF + 39 00 00 00 00 00 02 71 FF + 39 00 00 00 00 00 02 70 FF + 39 00 00 00 00 00 02 6F FF + 39 00 00 00 00 00 02 6E FF + 39 00 00 00 00 00 02 6D FF + 39 00 00 00 00 00 02 6C FF + 39 00 00 00 00 00 02 6B FF + 39 00 00 00 00 00 02 6A FF + 39 00 00 00 00 00 02 69 FF + 39 00 00 00 00 00 02 68 FF + 39 00 00 00 00 00 02 67 FF + 39 00 00 00 00 00 02 66 FF + 39 00 00 00 00 00 02 65 FF + 39 00 00 00 00 00 02 64 FF + 39 00 00 00 00 00 02 63 FF + 39 00 00 00 00 00 02 62 FF + 39 00 00 00 00 00 02 61 FF + 39 00 00 00 00 00 02 60 FF + 39 00 00 00 00 00 02 5F FF + 39 00 00 00 00 00 02 5E FF + 39 00 00 00 00 00 02 5D FF + 39 00 00 00 00 00 02 5C FF + 39 00 00 00 00 00 02 5B FF + 39 00 00 00 00 00 02 5A FF + 39 00 00 00 00 00 02 59 FF + 39 00 00 00 00 00 02 58 FF + 39 00 00 00 00 00 02 57 FF + 39 00 00 00 00 00 02 56 FF + 39 00 00 00 00 00 02 55 FF + 39 00 00 00 00 00 02 54 FF + 39 00 00 00 00 00 02 53 FF + 39 00 00 00 00 00 02 52 FF + 39 00 00 00 00 00 02 51 FF + 39 00 00 00 00 00 02 50 FF + 39 00 00 00 00 00 02 4F FF + 39 00 00 00 00 00 02 4E FF + 39 00 00 00 00 00 02 4D FF + 39 00 00 00 00 00 02 4C FF + 39 00 00 00 00 00 02 4B FF + 39 00 00 00 00 00 02 4A FF + 39 00 00 00 00 00 02 49 FF + 39 00 00 00 00 00 02 48 FF + 39 00 00 00 00 00 02 47 FF + 39 00 00 00 00 00 02 46 FF + 39 00 00 00 00 00 02 45 FF + 39 00 00 00 00 00 02 44 FF + 39 00 00 00 00 00 02 43 FF + 39 00 00 00 00 00 02 42 FF + 39 00 00 00 00 00 02 41 FF + 39 00 00 00 00 00 02 40 FF + 39 00 00 00 00 00 02 3F FF + 39 00 00 00 00 00 02 3E FE + 39 00 00 00 00 00 02 3D FE + 39 00 00 00 00 00 02 3C FD + 39 00 00 00 00 00 02 3B FC + 39 00 00 00 00 00 02 3A FC + 39 00 00 00 00 00 02 39 FB + 39 00 00 00 00 00 02 38 FA + 39 00 00 00 00 00 02 37 F9 + 39 00 00 00 00 00 02 36 F9 + 39 00 00 00 00 00 02 35 F8 + 39 00 00 00 00 00 02 34 F7 + 39 00 00 00 00 00 02 33 F6 + 39 00 00 00 00 00 02 32 F5 + 39 00 00 00 00 00 02 31 F5 + 39 00 00 00 00 00 02 30 F4 + 39 00 00 00 00 00 02 2F F3 + 39 00 00 00 00 00 02 2E F2 + 39 00 00 00 00 00 02 2D F1 + 39 00 00 00 00 00 02 2C F0 + 39 00 00 00 00 00 02 2B F0 + 39 00 00 00 00 00 02 2A EF + 39 00 00 00 00 00 02 29 EF + 39 00 00 00 00 00 02 28 EE + 39 00 00 00 00 00 02 27 EE + 39 00 00 00 00 00 02 26 ED + 39 00 00 00 00 00 02 25 ED + 39 00 00 00 00 00 02 24 EC + 39 00 00 00 00 00 02 23 EB + 39 00 00 00 00 00 02 22 EB + 39 00 00 00 00 00 02 21 EA + 39 00 00 00 00 00 02 20 E9 + 39 00 00 00 00 00 02 1F E9 + 39 00 00 00 00 00 02 1E E8 + 39 00 00 00 00 00 02 1D E8 + 39 00 00 00 00 00 02 1C E7 + 39 00 00 00 00 00 02 1B E6 + 39 00 00 00 00 00 02 1A E6 + 39 00 00 00 00 00 02 19 E5 + 39 00 00 00 00 00 02 18 E4 + 39 00 00 00 00 00 02 17 E3 + 39 00 00 00 00 00 02 16 E2 + 39 00 00 00 00 00 02 15 E2 + 39 00 00 00 00 00 02 14 E1 + 39 00 00 00 00 00 02 13 E0 + 39 00 00 00 00 00 02 12 DF + 39 00 00 00 00 00 02 11 DE + 39 00 00 00 00 00 02 10 DE + 39 00 00 00 00 00 02 0F DD + 39 00 00 00 00 00 02 0E DC + 39 00 00 00 00 00 02 0D DB + 39 00 00 00 00 00 02 0C DA + 39 00 00 00 00 00 02 0B DA + 39 00 00 00 00 00 02 0A D9 + 39 00 00 00 00 00 02 09 D8 + 39 00 00 00 00 00 02 08 D7 + 39 00 00 00 00 00 02 07 D6 + 39 00 00 00 00 00 02 06 D5 + 39 00 00 00 00 00 02 05 D5 + 39 00 00 00 00 00 02 04 D4 + 39 00 00 00 00 00 02 03 D3 + 39 00 00 00 00 00 02 02 D3 + 39 00 00 00 00 00 02 01 D2 + + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F 81 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 82 + 39 00 00 00 00 00 02 7F 89 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F d1 + 39 00 00 00 00 00 04 FF 98 81 08 + 39 00 00 00 00 00 02 00 d2 + 39 00 00 00 00 00 02 7F ff + 39 00 00 00 00 00 04 FF 98 81 09 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F 8b + 39 00 00 00 00 00 04 FF 98 81 0A + 39 00 00 00 00 00 02 00 74 + 39 00 00 00 00 00 02 7F a3 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 80 01 + 39 01 00 00 00 00 04 FF 98 81 00 + + 39 00 00 00 00 00 04 FF 98 81 09 + 39 00 00 00 00 00 02 7F 8B + 39 00 00 00 00 00 02 7E 8A + 39 00 00 00 00 00 02 7D 89 + 39 00 00 00 00 00 02 7C 88 + 39 00 00 00 00 00 02 7B 87 + 39 00 00 00 00 00 02 7A 86 + 39 00 00 00 00 00 02 79 85 + 39 00 00 00 00 00 02 78 84 + 39 00 00 00 00 00 02 77 83 + 39 00 00 00 00 00 02 76 82 + 39 00 00 00 00 00 02 75 81 + 39 00 00 00 00 00 02 74 00 + 39 00 00 00 00 00 02 73 01 + 39 00 00 00 00 00 02 72 02 + 39 00 00 00 00 00 02 71 03 + 39 00 00 00 00 00 02 70 04 + 39 00 00 00 00 00 02 6F 05 + 39 00 00 00 00 00 02 6E 07 + 39 00 00 00 00 00 02 6D 08 + 39 00 00 00 00 00 02 6C 0A + 39 00 00 00 00 00 02 6B 0B + 39 00 00 00 00 00 02 6A 0C + 39 00 00 00 00 00 02 69 0D + 39 00 00 00 00 00 02 68 0F + 39 00 00 00 00 00 02 67 10 + 39 00 00 00 00 00 02 66 11 + 39 00 00 00 00 00 02 65 13 + 39 00 00 00 00 00 02 64 14 + 39 00 00 00 00 00 02 63 15 + 39 00 00 00 00 00 02 62 17 + 39 00 00 00 00 00 02 61 18 + 39 00 00 00 00 00 02 60 19 + 39 00 00 00 00 00 02 5F 1A + 39 00 00 00 00 00 02 5E 1C + 39 00 00 00 00 00 02 5D 1D + 39 00 00 00 00 00 02 5C 1E + 39 00 00 00 00 00 02 5B 1F + 39 00 00 00 00 00 02 5A 20 + 39 00 00 00 00 00 02 59 22 + 39 00 00 00 00 00 02 58 23 + 39 00 00 00 00 00 02 57 24 + 39 00 00 00 00 00 02 56 25 + 39 00 00 00 00 00 02 55 26 + 39 00 00 00 00 00 02 54 27 + 39 00 00 00 00 00 02 53 28 + 39 00 00 00 00 00 02 52 29 + 39 00 00 00 00 00 02 51 2A + 39 00 00 00 00 00 02 50 2C + 39 00 00 00 00 00 02 4F 2D + 39 00 00 00 00 00 02 4E 2E + 39 00 00 00 00 00 02 4D 2E + 39 00 00 00 00 00 02 4C 2E + 39 00 00 00 00 00 02 4B 2F + 39 00 00 00 00 00 02 4A 30 + 39 00 00 00 00 00 02 49 30 + 39 00 00 00 00 00 02 48 31 + 39 00 00 00 00 00 02 47 33 + 39 00 00 00 00 00 02 46 34 + 39 00 00 00 00 00 02 45 36 + 39 00 00 00 00 00 02 44 37 + 39 00 00 00 00 00 02 43 38 + 39 00 00 00 00 00 02 42 3A + 39 00 00 00 00 00 02 41 3B + 39 00 00 00 00 00 02 40 3C + 39 00 00 00 00 00 02 3F 3E + 39 00 00 00 00 00 02 3E 3F + 39 00 00 00 00 00 02 3D 40 + 39 00 00 00 00 00 02 3C 41 + 39 00 00 00 00 00 02 3B 42 + 39 00 00 00 00 00 02 3A 43 + 39 00 00 00 00 00 02 39 45 + 39 00 00 00 00 00 02 38 46 + 39 00 00 00 00 00 02 37 48 + 39 00 00 00 00 00 02 36 49 + 39 00 00 00 00 00 02 35 4B + 39 00 00 00 00 00 02 34 4C + 39 00 00 00 00 00 02 33 4B + 39 00 00 00 00 00 02 32 4A + 39 00 00 00 00 00 02 31 4B + 39 00 00 00 00 00 02 30 4C + 39 00 00 00 00 00 02 2F 4D + 39 00 00 00 00 00 02 2E 4F + 39 00 00 00 00 00 02 2D 50 + 39 00 00 00 00 00 02 2C 51 + 39 00 00 00 00 00 02 2B 52 + 39 00 00 00 00 00 02 2A 54 + 39 00 00 00 00 00 02 29 54 + 39 00 00 00 00 00 02 28 55 + 39 00 00 00 00 00 02 27 56 + 39 00 00 00 00 00 02 26 57 + 39 00 00 00 00 00 02 25 58 + 39 00 00 00 00 00 02 24 59 + 39 00 00 00 00 00 02 23 5A + 39 00 00 00 00 00 02 22 5B + 39 00 00 00 00 00 02 21 5B + 39 00 00 00 00 00 02 20 5D + 39 00 00 00 00 00 02 1F A2 + 39 00 00 00 00 00 02 1E A1 + 39 00 00 00 00 00 02 1D A0 + 39 00 00 00 00 00 02 1C 9F + 39 00 00 00 00 00 02 1B 9D + 39 00 00 00 00 00 02 1A 9C + 39 00 00 00 00 00 02 19 9B + 39 00 00 00 00 00 02 18 9A + 39 00 00 00 00 00 02 17 99 + 39 00 00 00 00 00 02 16 99 + 39 00 00 00 00 00 02 15 97 + 39 00 00 00 00 00 02 14 96 + 39 00 00 00 00 00 02 13 95 + 39 00 00 00 00 00 02 12 94 + 39 00 00 00 00 00 02 11 93 + 39 00 00 00 00 00 02 10 92 + 39 00 00 00 00 00 02 0F 90 + 39 00 00 00 00 00 02 0E 8F + 39 00 00 00 00 00 02 0D 8E + 39 00 00 00 00 00 02 0C 8D + 39 00 00 00 00 00 02 0B 8C + 39 00 00 00 00 00 02 0A 8B + 39 00 00 00 00 00 02 09 89 + 39 00 00 00 00 00 02 08 88 + 39 00 00 00 00 00 02 07 87 + 39 00 00 00 00 00 02 06 87 + 39 00 00 00 00 00 02 05 87 + 39 00 00 00 00 00 02 04 86 + 39 00 00 00 00 00 02 03 86 + 39 00 00 00 00 00 02 02 85 + 39 00 00 00 00 00 02 01 83 + + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 7F 81 + 39 00 00 00 00 00 02 7E 81 + 39 00 00 00 00 00 02 7D 81 + 39 00 00 00 00 00 02 7C 81 + 39 00 00 00 00 00 02 7B 81 + 39 00 00 00 00 00 02 7A 00 + 39 00 00 00 00 00 02 79 00 + 39 00 00 00 00 00 02 78 00 + 39 00 00 00 00 00 02 77 00 + 39 00 00 00 00 00 02 76 01 + 39 00 00 00 00 00 02 75 01 + 39 00 00 00 00 00 02 74 01 + 39 00 00 00 00 00 02 73 02 + 39 00 00 00 00 00 02 72 02 + 39 00 00 00 00 00 02 71 03 + 39 00 00 00 00 00 02 70 03 + 39 00 00 00 00 00 02 6F 03 + 39 00 00 00 00 00 02 6E 03 + 39 00 00 00 00 00 02 6D 03 + 39 00 00 00 00 00 02 6C 03 + 39 00 00 00 00 00 02 6B 03 + 39 00 00 00 00 00 02 6A 03 + 39 00 00 00 00 00 02 69 03 + 39 00 00 00 00 00 02 68 03 + 39 00 00 00 00 00 02 67 03 + 39 00 00 00 00 00 02 66 03 + 39 00 00 00 00 00 02 65 03 + 39 00 00 00 00 00 02 64 03 + 39 00 00 00 00 00 02 63 03 + 39 00 00 00 00 00 02 62 03 + 39 00 00 00 00 00 02 61 03 + 39 00 00 00 00 00 02 60 03 + 39 00 00 00 00 00 02 5F 03 + 39 00 00 00 00 00 02 5E 03 + 39 00 00 00 00 00 02 5D 03 + 39 00 00 00 00 00 02 5C 03 + 39 00 00 00 00 00 02 5B 03 + 39 00 00 00 00 00 02 5A 03 + 39 00 00 00 00 00 02 59 03 + 39 00 00 00 00 00 02 58 03 + 39 00 00 00 00 00 02 57 03 + 39 00 00 00 00 00 02 56 03 + 39 00 00 00 00 00 02 55 02 + 39 00 00 00 00 00 02 54 02 + 39 00 00 00 00 00 02 53 02 + 39 00 00 00 00 00 02 52 02 + 39 00 00 00 00 00 02 51 02 + 39 00 00 00 00 00 02 50 02 + 39 00 00 00 00 00 02 4F 02 + 39 00 00 00 00 00 02 4E 03 + 39 00 00 00 00 00 02 4D 03 + 39 00 00 00 00 00 02 4C 03 + 39 00 00 00 00 00 02 4B 04 + 39 00 00 00 00 00 02 4A 04 + 39 00 00 00 00 00 02 49 05 + 39 00 00 00 00 00 02 48 05 + 39 00 00 00 00 00 02 47 05 + 39 00 00 00 00 00 02 46 05 + 39 00 00 00 00 00 02 45 05 + 39 00 00 00 00 00 02 44 06 + 39 00 00 00 00 00 02 43 06 + 39 00 00 00 00 00 02 42 06 + 39 00 00 00 00 00 02 41 06 + 39 00 00 00 00 00 02 40 06 + 39 00 00 00 00 00 02 3F 06 + 39 00 00 00 00 00 02 3E 06 + 39 00 00 00 00 00 02 3D 06 + 39 00 00 00 00 00 02 3C 06 + 39 00 00 00 00 00 02 3B 06 + 39 00 00 00 00 00 02 3A 06 + 39 00 00 00 00 00 02 39 07 + 39 00 00 00 00 00 02 38 07 + 39 00 00 00 00 00 02 37 06 + 39 00 00 00 00 00 02 36 05 + 39 00 00 00 00 00 02 35 04 + 39 00 00 00 00 00 02 34 04 + 39 00 00 00 00 00 02 33 03 + 39 00 00 00 00 00 02 32 04 + 39 00 00 00 00 00 02 31 05 + 39 00 00 00 00 00 02 30 05 + 39 00 00 00 00 00 02 2F 05 + 39 00 00 00 00 00 02 2E 06 + 39 00 00 00 00 00 02 2D 06 + 39 00 00 00 00 00 02 2C 06 + 39 00 00 00 00 00 02 2B 06 + 39 00 00 00 00 00 02 2A 06 + 39 00 00 00 00 00 02 29 07 + 39 00 00 00 00 00 02 28 07 + 39 00 00 00 00 00 02 27 07 + 39 00 00 00 00 00 02 26 08 + 39 00 00 00 00 00 02 25 08 + 39 00 00 00 00 00 02 24 06 + 39 00 00 00 00 00 02 23 04 + 39 00 00 00 00 00 02 22 04 + 39 00 00 00 00 00 02 21 04 + 39 00 00 00 00 00 02 20 05 + 39 00 00 00 00 00 02 1F 05 + 39 00 00 00 00 00 02 1E 05 + 39 00 00 00 00 00 02 1D 05 + 39 00 00 00 00 00 02 1C 04 + 39 00 00 00 00 00 02 1B 04 + 39 00 00 00 00 00 02 1A 04 + 39 00 00 00 00 00 02 19 04 + 39 00 00 00 00 00 02 18 03 + 39 00 00 00 00 00 02 17 03 + 39 00 00 00 00 00 02 16 03 + 39 00 00 00 00 00 02 15 03 + 39 00 00 00 00 00 02 14 03 + 39 00 00 00 00 00 02 13 04 + 39 00 00 00 00 00 02 12 04 + 39 00 00 00 00 00 02 11 04 + 39 00 00 00 00 00 02 10 03 + 39 00 00 00 00 00 02 0F 03 + 39 00 00 00 00 00 02 0E 03 + 39 00 00 00 00 00 02 0D 03 + 39 00 00 00 00 00 02 0C 03 + 39 00 00 00 00 00 02 0B 03 + 39 00 00 00 00 00 02 0A 03 + 39 00 00 00 00 00 02 09 04 + 39 00 00 00 00 00 02 08 04 + 39 00 00 00 00 00 02 07 03 + 39 00 00 00 00 00 02 06 03 + 39 00 00 00 00 00 02 05 03 + 39 00 00 00 00 00 02 04 03 + 39 00 00 00 00 00 02 03 01 + 39 00 00 00 00 00 02 02 81 + 39 00 00 00 00 00 02 01 82 + + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 D3 39 + 39 00 00 00 00 00 02 D2 67 + 39 00 00 00 00 00 02 D1 58 + 39 00 00 00 00 00 02 D0 29 + 39 00 00 00 00 00 02 CF 24 + 39 00 00 00 00 00 02 CE 50 + 39 00 00 00 00 00 02 CD 1C + 39 00 00 00 00 00 02 CC 1D + 39 00 00 00 00 00 02 CB 8F + 39 00 00 00 00 00 02 CA 2A + 39 00 00 00 00 00 02 C9 1D + 39 00 00 00 00 00 02 C8 9D + 39 00 00 00 00 00 02 C7 1F + 39 00 00 00 00 00 02 C6 1D + 39 00 00 00 00 00 02 C5 29 + 39 00 00 00 00 00 02 C4 16 + 39 00 00 00 00 00 02 C3 13 + 39 00 00 00 00 00 02 C2 2D + 39 00 00 00 00 00 02 C1 1D + 39 00 00 00 00 00 02 C0 00 + + 39 00 00 00 00 00 02 B3 39 + 39 00 00 00 00 00 02 B2 68 + 39 00 00 00 00 00 02 B1 59 + 39 00 00 00 00 00 02 B0 28 + 39 00 00 00 00 00 02 AF 23 + 39 00 00 00 00 00 02 AE 4F + 39 00 00 00 00 00 02 AD 1C + 39 00 00 00 00 00 02 AC 1D + 39 00 00 00 00 00 02 AB 90 + 39 00 00 00 00 00 02 AA 2A + 39 00 00 00 00 00 02 A9 1D + 39 00 00 00 00 00 02 A8 9E + 39 00 00 00 00 00 02 A7 1E + 39 00 00 00 00 00 02 A6 1D + 39 00 00 00 00 00 02 A5 29 + 39 00 00 00 00 00 02 A4 15 + 39 00 00 00 00 00 02 A3 12 + 39 00 00 00 00 00 02 A2 2E + 39 00 00 00 00 00 02 A1 1E + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 f6 01 + + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 7F D1 + 39 00 00 00 00 00 02 7E D1 + 39 00 00 00 00 00 02 7D D0 + 39 00 00 00 00 00 02 7C CF + 39 00 00 00 00 00 02 7B CE + 39 00 00 00 00 00 02 7A CE + 39 00 00 00 00 00 02 79 CD + 39 00 00 00 00 00 02 78 CD + 39 00 00 00 00 00 02 77 CC + 39 00 00 00 00 00 02 76 CC + 39 00 00 00 00 00 02 75 CB + 39 00 00 00 00 00 02 74 CA + 39 00 00 00 00 00 02 73 CA + 39 00 00 00 00 00 02 72 C9 + 39 00 00 00 00 00 02 71 C9 + 39 00 00 00 00 00 02 70 C8 + 39 00 00 00 00 00 02 6F C8 + 39 00 00 00 00 00 02 6E C7 + 39 00 00 00 00 00 02 6D C7 + 39 00 00 00 00 00 02 6C C6 + 39 00 00 00 00 00 02 6B C5 + 39 00 00 00 00 00 02 6A C5 + 39 00 00 00 00 00 02 69 C4 + 39 00 00 00 00 00 02 68 C4 + 39 00 00 00 00 00 02 67 C3 + 39 00 00 00 00 00 02 66 C3 + 39 00 00 00 00 00 02 65 C3 + 39 00 00 00 00 00 02 64 C2 + 39 00 00 00 00 00 02 63 C2 + 39 00 00 00 00 00 02 62 C1 + 39 00 00 00 00 00 02 61 C1 + 39 00 00 00 00 00 02 60 C0 + 39 00 00 00 00 00 02 5F BF + 39 00 00 00 00 00 02 5E BE + 39 00 00 00 00 00 02 5D BD + 39 00 00 00 00 00 02 5C BC + 39 00 00 00 00 00 02 5B BB + 39 00 00 00 00 00 02 5A BA + 39 00 00 00 00 00 02 59 B9 + 39 00 00 00 00 00 02 58 B8 + 39 00 00 00 00 00 02 57 B7 + 39 00 00 00 00 00 02 56 B6 + 39 00 00 00 00 00 02 55 B5 + 39 00 00 00 00 00 02 54 B5 + 39 00 00 00 00 00 02 53 B4 + 39 00 00 00 00 00 02 52 B3 + 39 00 00 00 00 00 02 51 B2 + 39 00 00 00 00 00 02 50 B2 + 39 00 00 00 00 00 02 4F B1 + 39 00 00 00 00 00 02 4E B0 + 39 00 00 00 00 00 02 4D AF + 39 00 00 00 00 00 02 4C AF + 39 00 00 00 00 00 02 4B AE + 39 00 00 00 00 00 02 4A AE + 39 00 00 00 00 00 02 49 AD + 39 00 00 00 00 00 02 48 AC + 39 00 00 00 00 00 02 47 AC + 39 00 00 00 00 00 02 46 AB + 39 00 00 00 00 00 02 45 AA + 39 00 00 00 00 00 02 44 A9 + 39 00 00 00 00 00 02 43 A9 + 39 00 00 00 00 00 02 42 AA + 39 00 00 00 00 00 02 41 AA + 39 00 00 00 00 00 02 40 A9 + 39 00 00 00 00 00 02 3F A9 + 39 00 00 00 00 00 02 3E A9 + 39 00 00 00 00 00 02 3D A7 + 39 00 00 00 00 00 02 3C A6 + 39 00 00 00 00 00 02 3B A5 + 39 00 00 00 00 00 02 3A A4 + 39 00 00 00 00 00 02 39 A3 + 39 00 00 00 00 00 02 38 A3 + 39 00 00 00 00 00 02 37 A2 + 39 00 00 00 00 00 02 36 A1 + 39 00 00 00 00 00 02 35 A0 + 39 00 00 00 00 00 02 34 9F + 39 00 00 00 00 00 02 33 9F + 39 00 00 00 00 00 02 32 9E + 39 00 00 00 00 00 02 31 9D + 39 00 00 00 00 00 02 30 9C + 39 00 00 00 00 00 02 2F 9B + 39 00 00 00 00 00 02 2E 9A + 39 00 00 00 00 00 02 2D 99 + 39 00 00 00 00 00 02 2C 9B + 39 00 00 00 00 00 02 2B 9C + 39 00 00 00 00 00 02 2A 9B + 39 00 00 00 00 00 02 29 9A + 39 00 00 00 00 00 02 28 99 + 39 00 00 00 00 00 02 27 98 + 39 00 00 00 00 00 02 26 97 + 39 00 00 00 00 00 02 25 97 + 39 00 00 00 00 00 02 24 96 + 39 00 00 00 00 00 02 23 96 + 39 00 00 00 00 00 02 22 95 + 39 00 00 00 00 00 02 21 95 + 39 00 00 00 00 00 02 20 95 + 39 00 00 00 00 00 02 1F 94 + 39 00 00 00 00 00 02 1E 94 + 39 00 00 00 00 00 02 1D 93 + 39 00 00 00 00 00 02 1C 93 + 39 00 00 00 00 00 02 1B 92 + 39 00 00 00 00 00 02 1A 91 + 39 00 00 00 00 00 02 19 90 + 39 00 00 00 00 00 02 18 90 + 39 00 00 00 00 00 02 17 8F + 39 00 00 00 00 00 02 16 8E + 39 00 00 00 00 00 02 15 8E + 39 00 00 00 00 00 02 14 8D + 39 00 00 00 00 00 02 13 8D + 39 00 00 00 00 00 02 12 8C + 39 00 00 00 00 00 02 11 8B + 39 00 00 00 00 00 02 10 8A + 39 00 00 00 00 00 02 0F 8A + 39 00 00 00 00 00 02 0E 89 + 39 00 00 00 00 00 02 0D 88 + 39 00 00 00 00 00 02 0C 88 + 39 00 00 00 00 00 02 0B 87 + 39 00 00 00 00 00 02 0A 86 + 39 00 00 00 00 00 02 09 86 + 39 00 00 00 00 00 02 08 85 + 39 00 00 00 00 00 02 07 84 + 39 00 00 00 00 00 02 06 84 + 39 00 00 00 00 00 02 05 84 + 39 00 00 00 00 00 02 04 84 + 39 00 00 00 00 00 02 03 84 + 39 00 00 00 00 00 02 02 84 + 39 00 00 00 00 00 02 01 83 + + + 39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 21 B0 + 39 00 00 00 00 00 02 32 02 + 39 01 00 00 00 00 04 FF 98 81 00 + ]; + + + qcom,mdss-dsi-panel-eye-command07= [39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 21 B2 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 f6 01 + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 A1 1C + 39 00 00 00 00 00 02 A2 2B + 39 00 00 00 00 00 02 A3 13 + 39 00 00 00 00 00 02 A4 16 + 39 00 00 00 00 00 02 A5 29 + 39 00 00 00 00 00 02 A6 1D + 39 00 00 00 00 00 02 A7 1E + 39 00 00 00 00 00 02 A8 94 + 39 00 00 00 00 00 02 A9 1E + 39 00 00 00 00 00 02 AA 2A + 39 00 00 00 00 00 02 AB 86 + 39 00 00 00 00 00 02 AC 1C + 39 00 00 00 00 00 02 AD 1A + 39 00 00 00 00 00 02 AE 4E + 39 00 00 00 00 00 02 AF 22 + 39 00 00 00 00 00 02 B0 26 + 39 00 00 00 00 00 02 B1 51 + 39 00 00 00 00 00 02 B2 60 + 39 00 00 00 00 00 02 B3 39 + + 39 00 00 00 00 00 02 C0 00 + 39 00 00 00 00 00 02 C1 1B + 39 00 00 00 00 00 02 C2 2A + 39 00 00 00 00 00 02 C3 14 + 39 00 00 00 00 00 02 C4 16 + 39 00 00 00 00 00 02 C5 29 + 39 00 00 00 00 00 02 C6 1D + 39 00 00 00 00 00 02 C7 1F + 39 00 00 00 00 00 02 C8 93 + 39 00 00 00 00 00 02 C9 1E + 39 00 00 00 00 00 02 CA 2A + 39 00 00 00 00 00 02 CB 85 + 39 00 00 00 00 00 02 CC 1D + 39 00 00 00 00 00 02 CD 1B + 39 00 00 00 00 00 02 CE 4E + 39 00 00 00 00 00 02 CF 23 + 39 00 00 00 00 00 02 D0 27 + 39 00 00 00 00 00 02 D1 50 + 39 00 00 00 00 00 02 D2 5F + 39 00 00 00 00 00 02 D3 39 + + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 01 + 39 00 00 00 00 00 02 03 02 + 39 00 00 00 00 00 02 04 02 + 39 00 00 00 00 00 02 05 03 + 39 00 00 00 00 00 02 06 04 + 39 00 00 00 00 00 02 07 03 + 39 00 00 00 00 00 02 08 04 + 39 00 00 00 00 00 02 09 04 + 39 00 00 00 00 00 02 0A 03 + 39 00 00 00 00 00 02 0B 03 + 39 00 00 00 00 00 02 0C 03 + 39 00 00 00 00 00 02 0D 04 + 39 00 00 00 00 00 02 0E 04 + 39 00 00 00 00 00 02 0F 04 + 39 00 00 00 00 00 02 10 04 + 39 00 00 00 00 00 02 11 05 + 39 00 00 00 00 00 02 12 05 + 39 00 00 00 00 00 02 13 05 + 39 00 00 00 00 00 02 14 05 + 39 00 00 00 00 00 02 15 05 + 39 00 00 00 00 00 02 16 04 + 39 00 00 00 00 00 02 17 04 + 39 00 00 00 00 00 02 18 05 + 39 00 00 00 00 00 02 19 05 + 39 00 00 00 00 00 02 1A 06 + 39 00 00 00 00 00 02 1B 06 + 39 00 00 00 00 00 02 1C 06 + 39 00 00 00 00 00 02 1D 07 + 39 00 00 00 00 00 02 1E 08 + 39 00 00 00 00 00 02 1F 07 + 39 00 00 00 00 00 02 20 07 + 39 00 00 00 00 00 02 21 05 + 39 00 00 00 00 00 02 22 04 + 39 00 00 00 00 00 02 23 04 + 39 00 00 00 00 00 02 24 04 + 39 00 00 00 00 00 02 25 05 + 39 00 00 00 00 00 02 26 05 + 39 00 00 00 00 00 02 27 05 + 39 00 00 00 00 00 02 28 05 + 39 00 00 00 00 00 02 29 06 + 39 00 00 00 00 00 02 2A 06 + 39 00 00 00 00 00 02 2B 06 + 39 00 00 00 00 00 02 2C 05 + 39 00 00 00 00 00 02 2D 05 + 39 00 00 00 00 00 02 2E 05 + 39 00 00 00 00 00 02 2F 06 + 39 00 00 00 00 00 02 30 06 + 39 00 00 00 00 00 02 31 05 + 39 00 00 00 00 00 02 32 04 + 39 00 00 00 00 00 02 33 04 + 39 00 00 00 00 00 02 34 04 + 39 00 00 00 00 00 02 35 05 + 39 00 00 00 00 00 02 36 05 + 39 00 00 00 00 00 02 37 06 + 39 00 00 00 00 00 02 38 06 + 39 00 00 00 00 00 02 39 06 + 39 00 00 00 00 00 02 3A 07 + 39 00 00 00 00 00 02 3B 07 + 39 00 00 00 00 00 02 3C 07 + 39 00 00 00 00 00 02 3D 07 + 39 00 00 00 00 00 02 3E 08 + 39 00 00 00 00 00 02 3F 08 + 39 00 00 00 00 00 02 40 08 + 39 00 00 00 00 00 02 41 08 + 39 00 00 00 00 00 02 42 08 + 39 00 00 00 00 00 02 43 08 + 39 00 00 00 00 00 02 44 08 + 39 00 00 00 00 00 02 45 08 + 39 00 00 00 00 00 02 46 08 + 39 00 00 00 00 00 02 47 07 + 39 00 00 00 00 00 02 48 06 + 39 00 00 00 00 00 02 49 06 + 39 00 00 00 00 00 02 4A 06 + 39 00 00 00 00 00 02 4B 05 + 39 00 00 00 00 00 02 4C 05 + 39 00 00 00 00 00 02 4D 05 + 39 00 00 00 00 00 02 4E 05 + 39 00 00 00 00 00 02 4F 04 + 39 00 00 00 00 00 02 50 04 + 39 00 00 00 00 00 02 51 04 + 39 00 00 00 00 00 02 52 04 + 39 00 00 00 00 00 02 53 04 + 39 00 00 00 00 00 02 54 04 + 39 00 00 00 00 00 02 55 04 + 39 00 00 00 00 00 02 56 04 + 39 00 00 00 00 00 02 57 05 + 39 00 00 00 00 00 02 58 05 + 39 00 00 00 00 00 02 59 05 + 39 00 00 00 00 00 02 5A 05 + 39 00 00 00 00 00 02 5B 05 + 39 00 00 00 00 00 02 5C 05 + 39 00 00 00 00 00 02 5D 05 + 39 00 00 00 00 00 02 5E 05 + 39 00 00 00 00 00 02 5F 05 + 39 00 00 00 00 00 02 60 04 + 39 00 00 00 00 00 02 61 04 + 39 00 00 00 00 00 02 62 05 + 39 00 00 00 00 00 02 63 05 + 39 00 00 00 00 00 02 64 05 + 39 00 00 00 00 00 02 65 05 + 39 00 00 00 00 00 02 66 04 + 39 00 00 00 00 00 02 67 05 + 39 00 00 00 00 00 02 68 05 + 39 00 00 00 00 00 02 69 05 + 39 00 00 00 00 00 02 6A 04 + 39 00 00 00 00 00 02 6B 04 + 39 00 00 00 00 00 02 6C 04 + 39 00 00 00 00 00 02 6D 04 + 39 00 00 00 00 00 02 6E 04 + 39 00 00 00 00 00 02 6F 04 + 39 00 00 00 00 00 02 70 04 + 39 00 00 00 00 00 02 71 04 + 39 00 00 00 00 00 02 72 03 + 39 00 00 00 00 00 02 73 03 + 39 00 00 00 00 00 02 74 03 + 39 00 00 00 00 00 02 75 03 + 39 00 00 00 00 00 02 76 03 + 39 00 00 00 00 00 02 77 02 + 39 00 00 00 00 00 02 78 02 + 39 00 00 00 00 00 02 79 02 + 39 00 00 00 00 00 02 7A 02 + 39 00 00 00 00 00 02 7B 02 + 39 00 00 00 00 00 02 7C 02 + 39 00 00 00 00 00 02 7D 02 + 39 00 00 00 00 00 02 7E 02 + 39 00 00 00 00 00 02 7F 02 + + + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 01 82 + 39 00 00 00 00 00 02 02 83 + 39 00 00 00 00 00 02 03 83 + 39 00 00 00 00 00 02 04 83 + 39 00 00 00 00 00 02 05 84 + 39 00 00 00 00 00 02 06 84 + 39 00 00 00 00 00 02 07 85 + 39 00 00 00 00 00 02 08 85 + 39 00 00 00 00 00 02 09 86 + 39 00 00 00 00 00 02 0A 87 + 39 00 00 00 00 00 02 0B 87 + 39 00 00 00 00 00 02 0C 88 + 39 00 00 00 00 00 02 0D 89 + 39 00 00 00 00 00 02 0E 8B + 39 00 00 00 00 00 02 0F 8C + 39 00 00 00 00 00 02 10 8C + 39 00 00 00 00 00 02 11 8D + 39 00 00 00 00 00 02 12 8D + 39 00 00 00 00 00 02 13 8E + 39 00 00 00 00 00 02 14 8F + 39 00 00 00 00 00 02 15 90 + 39 00 00 00 00 00 02 16 90 + 39 00 00 00 00 00 02 17 90 + 39 00 00 00 00 00 02 18 90 + 39 00 00 00 00 00 02 19 91 + 39 00 00 00 00 00 02 1A 92 + 39 00 00 00 00 00 02 1B 94 + 39 00 00 00 00 00 02 1C 95 + 39 00 00 00 00 00 02 1D 96 + 39 00 00 00 00 00 02 1E 96 + 39 00 00 00 00 00 02 1F 97 + 39 00 00 00 00 00 02 20 97 + 39 00 00 00 00 00 02 21 98 + 39 00 00 00 00 00 02 22 98 + 39 00 00 00 00 00 02 23 99 + 39 00 00 00 00 00 02 24 99 + 39 00 00 00 00 00 02 25 9A + 39 00 00 00 00 00 02 26 99 + 39 00 00 00 00 00 02 27 9A + 39 00 00 00 00 00 02 28 9B + 39 00 00 00 00 00 02 29 9D + 39 00 00 00 00 00 02 2A 9F + 39 00 00 00 00 00 02 2B A0 + 39 00 00 00 00 00 02 2C A2 + 39 00 00 00 00 00 02 2D A3 + 39 00 00 00 00 00 02 2E A3 + 39 00 00 00 00 00 02 2F A4 + 39 00 00 00 00 00 02 30 A4 + 39 00 00 00 00 00 02 31 A5 + 39 00 00 00 00 00 02 32 A5 + 39 00 00 00 00 00 02 33 A6 + 39 00 00 00 00 00 02 34 A6 + 39 00 00 00 00 00 02 35 A7 + 39 00 00 00 00 00 02 36 A8 + 39 00 00 00 00 00 02 37 A9 + 39 00 00 00 00 00 02 38 AA + 39 00 00 00 00 00 02 39 AB + 39 00 00 00 00 00 02 3A AC + 39 00 00 00 00 00 02 3B AC + 39 00 00 00 00 00 02 3C AC + 39 00 00 00 00 00 02 3D AD + 39 00 00 00 00 00 02 3E AF + 39 00 00 00 00 00 02 3F B0 + 39 00 00 00 00 00 02 40 B1 + 39 00 00 00 00 00 02 41 B2 + 39 00 00 00 00 00 02 42 B3 + 39 00 00 00 00 00 02 43 B3 + 39 00 00 00 00 00 02 44 B3 + 39 00 00 00 00 00 02 45 B4 + 39 00 00 00 00 00 02 46 B4 + 39 00 00 00 00 00 02 47 B4 + 39 00 00 00 00 00 02 48 B5 + 39 00 00 00 00 00 02 49 B6 + 39 00 00 00 00 00 02 4A B6 + 39 00 00 00 00 00 02 4B B7 + 39 00 00 00 00 00 02 4C B7 + 39 00 00 00 00 00 02 4D B8 + 39 00 00 00 00 00 02 4E B8 + 39 00 00 00 00 00 02 4F B9 + 39 00 00 00 00 00 02 50 BA + 39 00 00 00 00 00 02 51 BB + 39 00 00 00 00 00 02 52 BC + 39 00 00 00 00 00 02 53 BC + 39 00 00 00 00 00 02 54 BD + 39 00 00 00 00 00 02 55 BE + 39 00 00 00 00 00 02 56 BE + 39 00 00 00 00 00 02 57 BF + 39 00 00 00 00 00 02 58 C0 + 39 00 00 00 00 00 02 59 C1 + 39 00 00 00 00 00 02 5A C3 + 39 00 00 00 00 00 02 5B C4 + 39 00 00 00 00 00 02 5C C5 + 39 00 00 00 00 00 02 5D C6 + 39 00 00 00 00 00 02 5E C7 + 39 00 00 00 00 00 02 5F C8 + 39 00 00 00 00 00 02 60 C9 + 39 00 00 00 00 00 02 61 CA + 39 00 00 00 00 00 02 62 CB + 39 00 00 00 00 00 02 63 CC + 39 00 00 00 00 00 02 64 CD + 39 00 00 00 00 00 02 65 CD + 39 00 00 00 00 00 02 66 CE + 39 00 00 00 00 00 02 67 CE + 39 00 00 00 00 00 02 68 CF + 39 00 00 00 00 00 02 69 D0 + 39 00 00 00 00 00 02 6A D0 + 39 00 00 00 00 00 02 6B D1 + 39 00 00 00 00 00 02 6C D2 + 39 00 00 00 00 00 02 6D D2 + 39 00 00 00 00 00 02 6E D3 + 39 00 00 00 00 00 02 6F D4 + 39 00 00 00 00 00 02 70 D4 + 39 00 00 00 00 00 02 71 D5 + 39 00 00 00 00 00 02 72 D6 + 39 00 00 00 00 00 02 73 D7 + 39 00 00 00 00 00 02 74 D7 + 39 00 00 00 00 00 02 75 D8 + 39 00 00 00 00 00 02 76 D9 + 39 00 00 00 00 00 02 77 DA + 39 00 00 00 00 00 02 78 DA + 39 00 00 00 00 00 02 79 DB + 39 00 00 00 00 00 02 7A DC + 39 00 00 00 00 00 02 7B DD + 39 00 00 00 00 00 02 7C DD + 39 00 00 00 00 00 02 7D DE + 39 00 00 00 00 00 02 7E DF + 39 00 00 00 00 00 02 7F E0 + + 39 00 00 00 00 00 04 FF 98 81 09 + 39 00 00 00 00 00 02 01 83 + 39 00 00 00 00 00 02 02 84 + 39 00 00 00 00 00 02 03 85 + 39 00 00 00 00 00 02 04 86 + 39 00 00 00 00 00 02 05 87 + 39 00 00 00 00 00 02 06 89 + 39 00 00 00 00 00 02 07 89 + 39 00 00 00 00 00 02 08 8A + 39 00 00 00 00 00 02 09 8B + 39 00 00 00 00 00 02 0A 8D + 39 00 00 00 00 00 02 0B 8E + 39 00 00 00 00 00 02 0C 90 + 39 00 00 00 00 00 02 0D 91 + 39 00 00 00 00 00 02 0E 92 + 39 00 00 00 00 00 02 0F 93 + 39 00 00 00 00 00 02 10 95 + 39 00 00 00 00 00 02 11 97 + 39 00 00 00 00 00 02 12 98 + 39 00 00 00 00 00 02 13 9A + 39 00 00 00 00 00 02 14 9B + 39 00 00 00 00 00 02 15 9C + 39 00 00 00 00 00 02 16 9D + 39 00 00 00 00 00 02 17 9F + 39 00 00 00 00 00 02 18 A0 + 39 00 00 00 00 00 02 19 A1 + 39 00 00 00 00 00 02 1A A2 + 39 00 00 00 00 00 02 1B A3 + 39 00 00 00 00 00 02 1C A4 + 39 00 00 00 00 00 02 1D A5 + 39 00 00 00 00 00 02 1E A7 + 39 00 00 00 00 00 02 1F A8 + 39 00 00 00 00 00 02 20 56 + 39 00 00 00 00 00 02 21 55 + 39 00 00 00 00 00 02 22 53 + 39 00 00 00 00 00 02 23 51 + 39 00 00 00 00 00 02 24 50 + 39 00 00 00 00 00 02 25 4F + 39 00 00 00 00 00 02 26 4E + 39 00 00 00 00 00 02 27 4D + 39 00 00 00 00 00 02 28 4C + 39 00 00 00 00 00 02 29 4B + 39 00 00 00 00 00 02 2A 49 + 39 00 00 00 00 00 02 2B 48 + 39 00 00 00 00 00 02 2C 47 + 39 00 00 00 00 00 02 2D 46 + 39 00 00 00 00 00 02 2E 45 + 39 00 00 00 00 00 02 2F 45 + 39 00 00 00 00 00 02 30 43 + 39 00 00 00 00 00 02 31 41 + 39 00 00 00 00 00 02 32 3F + 39 00 00 00 00 00 02 33 3D + 39 00 00 00 00 00 02 34 3B + 39 00 00 00 00 00 02 35 39 + 39 00 00 00 00 00 02 36 37 + 39 00 00 00 00 00 02 37 35 + 39 00 00 00 00 00 02 38 35 + 39 00 00 00 00 00 02 39 34 + 39 00 00 00 00 00 02 3A 32 + 39 00 00 00 00 00 02 3B 31 + 39 00 00 00 00 00 02 3C 30 + 39 00 00 00 00 00 02 3D 2F + 39 00 00 00 00 00 02 3E 2E + 39 00 00 00 00 00 02 3F 2D + 39 00 00 00 00 00 02 40 2B + 39 00 00 00 00 00 02 41 2A + 39 00 00 00 00 00 02 42 29 + 39 00 00 00 00 00 02 43 27 + 39 00 00 00 00 00 02 44 26 + 39 00 00 00 00 00 02 45 24 + 39 00 00 00 00 00 02 46 23 + 39 00 00 00 00 00 02 47 21 + 39 00 00 00 00 00 02 48 20 + 39 00 00 00 00 00 02 49 20 + 39 00 00 00 00 00 02 4A 1E + 39 00 00 00 00 00 02 4B 1C + 39 00 00 00 00 00 02 4C 1A + 39 00 00 00 00 00 02 4D 18 + 39 00 00 00 00 00 02 4E 16 + 39 00 00 00 00 00 02 4F 15 + 39 00 00 00 00 00 02 50 14 + 39 00 00 00 00 00 02 51 13 + 39 00 00 00 00 00 02 52 12 + 39 00 00 00 00 00 02 53 11 + 39 00 00 00 00 00 02 54 10 + 39 00 00 00 00 00 02 55 0F + 39 00 00 00 00 00 02 56 0E + 39 00 00 00 00 00 02 57 0D + 39 00 00 00 00 00 02 58 0B + 39 00 00 00 00 00 02 59 0A + 39 00 00 00 00 00 02 5A 09 + 39 00 00 00 00 00 02 5B 08 + 39 00 00 00 00 00 02 5C 07 + 39 00 00 00 00 00 02 5D 05 + 39 00 00 00 00 00 02 5E 04 + 39 00 00 00 00 00 02 5F 03 + 39 00 00 00 00 00 02 60 02 + 39 00 00 00 00 00 02 61 00 + 39 00 00 00 00 00 02 62 81 + 39 00 00 00 00 00 02 63 82 + 39 00 00 00 00 00 02 64 84 + 39 00 00 00 00 00 02 65 85 + 39 00 00 00 00 00 02 66 87 + 39 00 00 00 00 00 02 67 88 + 39 00 00 00 00 00 02 68 89 + 39 00 00 00 00 00 02 69 8A + 39 00 00 00 00 00 02 6A 8C + 39 00 00 00 00 00 02 6B 8D + 39 00 00 00 00 00 02 6C 8F + 39 00 00 00 00 00 02 6D 91 + 39 00 00 00 00 00 02 6E 92 + 39 00 00 00 00 00 02 6F 94 + 39 00 00 00 00 00 02 70 96 + 39 00 00 00 00 00 02 71 97 + 39 00 00 00 00 00 02 72 99 + 39 00 00 00 00 00 02 73 9A + 39 00 00 00 00 00 02 74 9C + 39 00 00 00 00 00 02 75 9E + 39 00 00 00 00 00 02 76 9F + 39 00 00 00 00 00 02 77 A1 + 39 00 00 00 00 00 02 78 A2 + 39 00 00 00 00 00 02 79 A4 + 39 00 00 00 00 00 02 7A A5 + 39 00 00 00 00 00 02 7B A7 + 39 00 00 00 00 00 02 7C A8 + 39 00 00 00 00 00 02 7D A9 + 39 00 00 00 00 00 02 7E AA + 39 00 00 00 00 00 02 7F AC + 39 01 00 00 00 00 04 FF 98 81 00 + + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 01 01 + 39 00 00 00 00 00 02 02 01 + 39 00 00 00 00 00 02 03 01 + 39 00 00 00 00 00 02 04 01 + 39 00 00 00 00 00 02 05 02 + 39 00 00 00 00 00 02 06 02 + 39 00 00 00 00 00 02 07 02 + 39 00 00 00 00 00 02 08 02 + 39 00 00 00 00 00 02 09 02 + 39 00 00 00 00 00 02 0A 02 + 39 00 00 00 00 00 02 0B 02 + 39 00 00 00 00 00 02 0C 03 + 39 00 00 00 00 00 02 0D 03 + 39 00 00 00 00 00 02 0E 03 + 39 00 00 00 00 00 02 0F 03 + 39 00 00 00 00 00 02 10 03 + 39 00 00 00 00 00 02 11 02 + 39 00 00 00 00 00 02 12 02 + 39 00 00 00 00 00 02 13 02 + 39 00 00 00 00 00 02 14 01 + 39 00 00 00 00 00 02 15 01 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 00 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 19 81 + 39 00 00 00 00 00 02 1A 81 + 39 00 00 00 00 00 02 1B 81 + 39 00 00 00 00 00 02 1C 81 + 39 00 00 00 00 00 02 1D 82 + 39 00 00 00 00 00 02 1E 82 + 39 00 00 00 00 00 02 1F 82 + 39 00 00 00 00 00 02 20 82 + 39 00 00 00 00 00 02 21 82 + 39 00 00 00 00 00 02 22 82 + 39 00 00 00 00 00 02 23 82 + 39 00 00 00 00 00 02 24 82 + 39 00 00 00 00 00 02 25 83 + 39 00 00 00 00 00 02 26 83 + 39 00 00 00 00 00 02 27 83 + 39 00 00 00 00 00 02 28 83 + 39 00 00 00 00 00 02 29 82 + 39 00 00 00 00 00 02 2A 82 + 39 00 00 00 00 00 02 2B 82 + 39 00 00 00 00 00 02 2C 82 + 39 00 00 00 00 00 02 2D 82 + 39 00 00 00 00 00 02 2E 81 + 39 00 00 00 00 00 02 2F 81 + 39 00 00 00 00 00 02 30 82 + 39 00 00 00 00 00 02 31 82 + 39 00 00 00 00 00 02 32 83 + 39 00 00 00 00 00 02 33 83 + 39 00 00 00 00 00 02 34 84 + 39 00 00 00 00 00 02 35 84 + 39 00 00 00 00 00 02 36 85 + 39 00 00 00 00 00 02 37 85 + 39 00 00 00 00 00 02 38 85 + 39 00 00 00 00 00 02 39 86 + 39 00 00 00 00 00 02 3A 86 + 39 00 00 00 00 00 02 3B 86 + 39 00 00 00 00 00 02 3C 86 + 39 00 00 00 00 00 02 3D 86 + 39 00 00 00 00 00 02 3E 86 + 39 00 00 00 00 00 02 3F 87 + 39 00 00 00 00 00 02 40 87 + 39 00 00 00 00 00 02 41 86 + 39 00 00 00 00 00 02 42 86 + 39 00 00 00 00 00 02 43 86 + 39 00 00 00 00 00 02 44 86 + 39 00 00 00 00 00 02 45 86 + 39 00 00 00 00 00 02 46 85 + 39 00 00 00 00 00 02 47 85 + 39 00 00 00 00 00 02 48 85 + 39 00 00 00 00 00 02 49 84 + 39 00 00 00 00 00 02 4A 84 + 39 00 00 00 00 00 02 4B 83 + 39 00 00 00 00 00 02 4C 83 + 39 00 00 00 00 00 02 4D 83 + 39 00 00 00 00 00 02 4E 84 + 39 00 00 00 00 00 02 4F 84 + 39 00 00 00 00 00 02 50 84 + 39 00 00 00 00 00 02 51 84 + 39 00 00 00 00 00 02 52 85 + 39 00 00 00 00 00 02 53 85 + 39 00 00 00 00 00 02 54 85 + 39 00 00 00 00 00 02 55 85 + 39 00 00 00 00 00 02 56 84 + 39 00 00 00 00 00 02 57 84 + 39 00 00 00 00 00 02 58 84 + 39 00 00 00 00 00 02 59 84 + 39 00 00 00 00 00 02 5A 83 + 39 00 00 00 00 00 02 5B 83 + 39 00 00 00 00 00 02 5C 83 + 39 00 00 00 00 00 02 5D 83 + 39 00 00 00 00 00 02 5E 83 + 39 00 00 00 00 00 02 5F 84 + 39 00 00 00 00 00 02 60 84 + 39 00 00 00 00 00 02 61 84 + 39 00 00 00 00 00 02 62 84 + 39 00 00 00 00 00 02 63 84 + 39 00 00 00 00 00 02 64 84 + 39 00 00 00 00 00 02 65 83 + 39 00 00 00 00 00 02 66 83 + 39 00 00 00 00 00 02 67 83 + 39 00 00 00 00 00 02 68 82 + 39 00 00 00 00 00 02 69 83 + 39 00 00 00 00 00 02 6A 83 + 39 00 00 00 00 00 02 6B 83 + 39 00 00 00 00 00 02 6C 83 + 39 00 00 00 00 00 02 6D 83 + 39 00 00 00 00 00 02 6E 83 + 39 00 00 00 00 00 02 6F 83 + 39 00 00 00 00 00 02 70 82 + 39 00 00 00 00 00 02 71 82 + 39 00 00 00 00 00 02 72 83 + 39 00 00 00 00 00 02 73 83 + 39 00 00 00 00 00 02 74 83 + 39 00 00 00 00 00 02 75 83 + 39 00 00 00 00 00 02 76 83 + 39 00 00 00 00 00 02 77 82 + 39 00 00 00 00 00 02 78 82 + 39 00 00 00 00 00 02 79 82 + 39 00 00 00 00 00 02 7A 82 + 39 00 00 00 00 00 02 7B 81 + 39 00 00 00 00 00 02 7C 82 + 39 00 00 00 00 00 02 7D 82 + 39 00 00 00 00 00 02 7E 82 + 39 00 00 00 00 00 02 7F 81 + + 39 00 00 00 00 00 04 FF 98 81 08 + 39 00 00 00 00 00 02 01 E0 + 39 00 00 00 00 00 02 02 E1 + 39 00 00 00 00 00 02 03 E2 + 39 00 00 00 00 00 02 04 E3 + 39 00 00 00 00 00 02 05 E4 + 39 00 00 00 00 00 02 06 E4 + 39 00 00 00 00 00 02 07 E5 + 39 00 00 00 00 00 02 08 E6 + 39 00 00 00 00 00 02 09 E7 + 39 00 00 00 00 00 02 0A E8 + 39 00 00 00 00 00 02 0B E8 + 39 00 00 00 00 00 02 0C E9 + 39 00 00 00 00 00 02 0D EA + 39 00 00 00 00 00 02 0E EB + 39 00 00 00 00 00 02 0F EC + 39 00 00 00 00 00 02 10 ED + 39 00 00 00 00 00 02 11 EE + 39 00 00 00 00 00 02 12 EF + 39 00 00 00 00 00 02 13 F0 + 39 00 00 00 00 00 02 14 F0 + 39 00 00 00 00 00 02 15 F1 + 39 00 00 00 00 00 02 16 F2 + 39 00 00 00 00 00 02 17 F3 + 39 00 00 00 00 00 02 18 F3 + 39 00 00 00 00 00 02 19 F4 + 39 00 00 00 00 00 02 1A F5 + 39 00 00 00 00 00 02 1B F6 + 39 00 00 00 00 00 02 1C F7 + 39 00 00 00 00 00 02 1D F7 + 39 00 00 00 00 00 02 1E F8 + 39 00 00 00 00 00 02 1F F9 + 39 00 00 00 00 00 02 20 FA + 39 00 00 00 00 00 02 21 FA + 39 00 00 00 00 00 02 22 FB + 39 00 00 00 00 00 02 23 FC + 39 00 00 00 00 00 02 24 FC + 39 00 00 00 00 00 02 25 FD + 39 00 00 00 00 00 02 26 FE + 39 00 00 00 00 00 02 27 FE + 39 00 00 00 00 00 02 28 FF + 39 00 00 00 00 00 02 29 FF + 39 00 00 00 00 00 02 2A FF + 39 00 00 00 00 00 02 2B FF + 39 00 00 00 00 00 02 2C FF + 39 00 00 00 00 00 02 2D FF + 39 00 00 00 00 00 02 2E FF + 39 00 00 00 00 00 02 2F FF + 39 00 00 00 00 00 02 30 FF + 39 00 00 00 00 00 02 31 FF + 39 00 00 00 00 00 02 32 FF + 39 00 00 00 00 00 02 33 FF + 39 00 00 00 00 00 02 34 FF + 39 00 00 00 00 00 02 35 FF + 39 00 00 00 00 00 02 36 FF + 39 00 00 00 00 00 02 37 FF + 39 00 00 00 00 00 02 38 FF + 39 00 00 00 00 00 02 39 FF + 39 00 00 00 00 00 02 3A FF + 39 00 00 00 00 00 02 3B FF + 39 00 00 00 00 00 02 3C FF + 39 00 00 00 00 00 02 3D FF + 39 00 00 00 00 00 02 3E FF + 39 00 00 00 00 00 02 3F FF + 39 00 00 00 00 00 02 40 FF + 39 00 00 00 00 00 02 41 FF + 39 00 00 00 00 00 02 42 FF + 39 00 00 00 00 00 02 43 FF + 39 00 00 00 00 00 02 44 FF + 39 00 00 00 00 00 02 45 FF + 39 00 00 00 00 00 02 46 FF + 39 00 00 00 00 00 02 47 FF + 39 00 00 00 00 00 02 48 FF + 39 00 00 00 00 00 02 49 FF + 39 00 00 00 00 00 02 4A FF + 39 00 00 00 00 00 02 4B FF + 39 00 00 00 00 00 02 4C FF + 39 00 00 00 00 00 02 4D FF + 39 00 00 00 00 00 02 4E FF + 39 00 00 00 00 00 02 4F FF + 39 00 00 00 00 00 02 50 FF + 39 00 00 00 00 00 02 51 FF + 39 00 00 00 00 00 02 52 FF + 39 00 00 00 00 00 02 53 FF + 39 00 00 00 00 00 02 54 FF + 39 00 00 00 00 00 02 55 FF + 39 00 00 00 00 00 02 56 FF + 39 00 00 00 00 00 02 57 FF + 39 00 00 00 00 00 02 58 FF + 39 00 00 00 00 00 02 59 FF + 39 00 00 00 00 00 02 5A FF + 39 00 00 00 00 00 02 5B FF + 39 00 00 00 00 00 02 5C FF + 39 00 00 00 00 00 02 5D FF + 39 00 00 00 00 00 02 5E FF + 39 00 00 00 00 00 02 5F FF + 39 00 00 00 00 00 02 60 FF + 39 00 00 00 00 00 02 61 FF + 39 00 00 00 00 00 02 62 FF + 39 00 00 00 00 00 02 63 FF + 39 00 00 00 00 00 02 64 FF + 39 00 00 00 00 00 02 65 FF + 39 00 00 00 00 00 02 66 FF + 39 00 00 00 00 00 02 67 FF + 39 00 00 00 00 00 02 68 FF + 39 00 00 00 00 00 02 69 FF + 39 00 00 00 00 00 02 6A FF + 39 00 00 00 00 00 02 6B FF + 39 00 00 00 00 00 02 6C FF + 39 00 00 00 00 00 02 6D FF + 39 00 00 00 00 00 02 6E FF + 39 00 00 00 00 00 02 6F FF + 39 00 00 00 00 00 02 70 FF + 39 00 00 00 00 00 02 71 FF + 39 00 00 00 00 00 02 72 FF + 39 00 00 00 00 00 02 73 FF + 39 00 00 00 00 00 02 74 FF + 39 00 00 00 00 00 02 75 FF + 39 00 00 00 00 00 02 76 FF + 39 00 00 00 00 00 02 77 FF + 39 00 00 00 00 00 02 78 FF + 39 00 00 00 00 00 02 79 FF + 39 00 00 00 00 00 02 7A FF + 39 00 00 00 00 00 02 7B FF + 39 00 00 00 00 00 02 7C FF + 39 00 00 00 00 00 02 7D FF + 39 00 00 00 00 00 02 7E FF + 39 00 00 00 00 00 02 7F FF + + + 39 00 00 00 00 00 04 FF 98 81 0A + 39 00 00 00 00 00 02 01 52 + 39 00 00 00 00 00 02 02 51 + 39 00 00 00 00 00 02 03 4F + 39 00 00 00 00 00 02 04 4E + 39 00 00 00 00 00 02 05 4D + 39 00 00 00 00 00 02 06 4B + 39 00 00 00 00 00 02 07 4A + 39 00 00 00 00 00 02 08 49 + 39 00 00 00 00 00 02 09 47 + 39 00 00 00 00 00 02 0A 46 + 39 00 00 00 00 00 02 0B 44 + 39 00 00 00 00 00 02 0C 43 + 39 00 00 00 00 00 02 0D 42 + 39 00 00 00 00 00 02 0E 41 + 39 00 00 00 00 00 02 0F 3F + 39 00 00 00 00 00 02 10 3E + 39 00 00 00 00 00 02 11 3C + 39 00 00 00 00 00 02 12 3B + 39 00 00 00 00 00 02 13 3A + 39 00 00 00 00 00 02 14 38 + 39 00 00 00 00 00 02 15 37 + 39 00 00 00 00 00 02 16 36 + 39 00 00 00 00 00 02 17 34 + 39 00 00 00 00 00 02 18 33 + 39 00 00 00 00 00 02 19 32 + 39 00 00 00 00 00 02 1A 30 + 39 00 00 00 00 00 02 1B 2F + 39 00 00 00 00 00 02 1C 2E + 39 00 00 00 00 00 02 1D 2D + 39 00 00 00 00 00 02 1E 2C + 39 00 00 00 00 00 02 1F 2A + 39 00 00 00 00 00 02 20 28 + 39 00 00 00 00 00 02 21 27 + 39 00 00 00 00 00 02 22 25 + 39 00 00 00 00 00 02 23 24 + 39 00 00 00 00 00 02 24 23 + 39 00 00 00 00 00 02 25 21 + 39 00 00 00 00 00 02 26 20 + 39 00 00 00 00 00 02 27 1E + 39 00 00 00 00 00 02 28 1D + 39 00 00 00 00 00 02 29 1B + 39 00 00 00 00 00 02 2A 1A + 39 00 00 00 00 00 02 2B 19 + 39 00 00 00 00 00 02 2C 17 + 39 00 00 00 00 00 02 2D 16 + 39 00 00 00 00 00 02 2E 14 + 39 00 00 00 00 00 02 2F 13 + 39 00 00 00 00 00 02 30 11 + 39 00 00 00 00 00 02 31 10 + 39 00 00 00 00 00 02 32 0E + 39 00 00 00 00 00 02 33 0D + 39 00 00 00 00 00 02 34 0B + 39 00 00 00 00 00 02 35 0A + 39 00 00 00 00 00 02 36 08 + 39 00 00 00 00 00 02 37 07 + 39 00 00 00 00 00 02 38 05 + 39 00 00 00 00 00 02 39 04 + 39 00 00 00 00 00 02 3A 03 + 39 00 00 00 00 00 02 3B 01 + 39 00 00 00 00 00 02 3C 00 + 39 00 00 00 00 00 02 3D 82 + 39 00 00 00 00 00 02 3E 83 + 39 00 00 00 00 00 02 3F 85 + 39 00 00 00 00 00 02 40 86 + 39 00 00 00 00 00 02 41 87 + 39 00 00 00 00 00 02 42 89 + 39 00 00 00 00 00 02 43 8A + 39 00 00 00 00 00 02 44 8C + 39 00 00 00 00 00 02 45 8D + 39 00 00 00 00 00 02 46 8E + 39 00 00 00 00 00 02 47 90 + 39 00 00 00 00 00 02 48 91 + 39 00 00 00 00 00 02 49 93 + 39 00 00 00 00 00 02 4A 94 + 39 00 00 00 00 00 02 4B 95 + 39 00 00 00 00 00 02 4C 96 + 39 00 00 00 00 00 02 4D 98 + 39 00 00 00 00 00 02 4E 99 + 39 00 00 00 00 00 02 4F 9A + 39 00 00 00 00 00 02 50 9B + 39 00 00 00 00 00 02 51 9D + 39 00 00 00 00 00 02 52 9E + 39 00 00 00 00 00 02 53 9F + 39 00 00 00 00 00 02 54 A1 + 39 00 00 00 00 00 02 55 A2 + 39 00 00 00 00 00 02 56 A3 + 39 00 00 00 00 00 02 57 A4 + 39 00 00 00 00 00 02 58 A6 + 39 00 00 00 00 00 02 59 A7 + 39 00 00 00 00 00 02 5A A8 + 39 00 00 00 00 00 02 5B AA + 39 00 00 00 00 00 02 5C AC + 39 00 00 00 00 00 02 5D AD + 39 00 00 00 00 00 02 5E AF + 39 00 00 00 00 00 02 5F B0 + 39 00 00 00 00 00 02 60 B2 + 39 00 00 00 00 00 02 61 B4 + 39 00 00 00 00 00 02 62 B5 + 39 00 00 00 00 00 02 63 B7 + 39 00 00 00 00 00 02 64 B9 + 39 00 00 00 00 00 02 65 BA + 39 00 00 00 00 00 02 66 BC + 39 00 00 00 00 00 02 67 BD + 39 00 00 00 00 00 02 68 BF + 39 00 00 00 00 00 02 69 C1 + 39 00 00 00 00 00 02 6A C2 + 39 00 00 00 00 00 02 6B C4 + 39 00 00 00 00 00 02 6C C5 + 39 00 00 00 00 00 02 6D C7 + 39 00 00 00 00 00 02 6E C8 + 39 00 00 00 00 00 02 6F CA + 39 00 00 00 00 00 02 70 CC + 39 00 00 00 00 00 02 71 CE + 39 00 00 00 00 00 02 72 CF + 39 00 00 00 00 00 02 73 D0 + 39 00 00 00 00 00 02 74 D1 + 39 00 00 00 00 00 02 75 D3 + 39 00 00 00 00 00 02 76 D4 + 39 00 00 00 00 00 02 77 D6 + 39 00 00 00 00 00 02 78 D7 + 39 00 00 00 00 00 02 79 D9 + 39 00 00 00 00 00 02 7A DA + 39 00 00 00 00 00 02 7B DC + 39 00 00 00 00 00 02 7C DD + 39 00 00 00 00 00 02 7D DF + 39 00 00 00 00 00 02 7E E0 + 39 00 00 00 00 00 02 7F E1 + + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F 02 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 02 + 39 00 00 00 00 00 02 7F 81 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F E0 + 39 00 00 00 00 00 04 FF 98 81 08 + 39 00 00 00 00 00 02 00 E0 + 39 00 00 00 00 00 02 7F FF + 39 00 00 00 00 00 04 FF 98 81 09 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F ac + 39 00 00 00 00 00 04 FF 98 81 0A + 39 00 00 00 00 00 02 00 53 + 39 00 00 00 00 00 02 7F e1 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 80 01 + 39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 21 B0 + 39 00 00 00 00 00 02 32 02 + 39 01 00 00 00 00 04 FF 98 81 00 + 39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 21 B2 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 04 FF 98 81 0A + 39 00 00 00 00 00 02 7F E1 + 39 00 00 00 00 00 02 7E E0 + 39 00 00 00 00 00 02 7D DF + 39 00 00 00 00 00 02 7C DD + 39 00 00 00 00 00 02 7B DC + 39 00 00 00 00 00 02 7A DA + 39 00 00 00 00 00 02 79 D9 + 39 00 00 00 00 00 02 78 D7 + 39 00 00 00 00 00 02 77 D6 + 39 00 00 00 00 00 02 76 D4 + 39 00 00 00 00 00 02 75 D3 + 39 00 00 00 00 00 02 74 D1 + 39 00 00 00 00 00 02 73 D0 + 39 00 00 00 00 00 02 72 CF + 39 00 00 00 00 00 02 71 CE + 39 00 00 00 00 00 02 70 CC + 39 00 00 00 00 00 02 6F CA + 39 00 00 00 00 00 02 6E C8 + 39 00 00 00 00 00 02 6D C7 + 39 00 00 00 00 00 02 6C C5 + 39 00 00 00 00 00 02 6B C4 + 39 00 00 00 00 00 02 6A C2 + 39 00 00 00 00 00 02 69 C1 + 39 00 00 00 00 00 02 68 BF + 39 00 00 00 00 00 02 67 BD + 39 00 00 00 00 00 02 66 BC + 39 00 00 00 00 00 02 65 BA + 39 00 00 00 00 00 02 64 B9 + 39 00 00 00 00 00 02 63 B7 + 39 00 00 00 00 00 02 62 B5 + 39 00 00 00 00 00 02 61 B4 + 39 00 00 00 00 00 02 60 B2 + 39 00 00 00 00 00 02 5F B0 + 39 00 00 00 00 00 02 5E AF + 39 00 00 00 00 00 02 5D AD + 39 00 00 00 00 00 02 5C AC + 39 00 00 00 00 00 02 5B AA + 39 00 00 00 00 00 02 5A A8 + 39 00 00 00 00 00 02 59 A7 + 39 00 00 00 00 00 02 58 A6 + 39 00 00 00 00 00 02 57 A4 + 39 00 00 00 00 00 02 56 A3 + 39 00 00 00 00 00 02 55 A2 + 39 00 00 00 00 00 02 54 A1 + 39 00 00 00 00 00 02 53 9F + 39 00 00 00 00 00 02 52 9E + 39 00 00 00 00 00 02 51 9D + 39 00 00 00 00 00 02 50 9B + 39 00 00 00 00 00 02 4F 9A + 39 00 00 00 00 00 02 4E 99 + 39 00 00 00 00 00 02 4D 98 + 39 00 00 00 00 00 02 4C 96 + 39 00 00 00 00 00 02 4B 95 + 39 00 00 00 00 00 02 4A 94 + 39 00 00 00 00 00 02 49 93 + 39 00 00 00 00 00 02 48 91 + 39 00 00 00 00 00 02 47 90 + 39 00 00 00 00 00 02 46 8E + 39 00 00 00 00 00 02 45 8D + 39 00 00 00 00 00 02 44 8C + 39 00 00 00 00 00 02 43 8A + 39 00 00 00 00 00 02 42 89 + 39 00 00 00 00 00 02 41 87 + 39 00 00 00 00 00 02 40 86 + 39 00 00 00 00 00 02 3F 85 + 39 00 00 00 00 00 02 3E 83 + 39 00 00 00 00 00 02 3D 82 + 39 00 00 00 00 00 02 3C 00 + 39 00 00 00 00 00 02 3B 01 + 39 00 00 00 00 00 02 3A 03 + 39 00 00 00 00 00 02 39 04 + 39 00 00 00 00 00 02 38 05 + 39 00 00 00 00 00 02 37 07 + 39 00 00 00 00 00 02 36 08 + 39 00 00 00 00 00 02 35 0A + 39 00 00 00 00 00 02 34 0B + 39 00 00 00 00 00 02 33 0D + 39 00 00 00 00 00 02 32 0E + 39 00 00 00 00 00 02 31 10 + 39 00 00 00 00 00 02 30 11 + 39 00 00 00 00 00 02 2F 13 + 39 00 00 00 00 00 02 2E 14 + 39 00 00 00 00 00 02 2D 16 + 39 00 00 00 00 00 02 2C 17 + 39 00 00 00 00 00 02 2B 19 + 39 00 00 00 00 00 02 2A 1A + 39 00 00 00 00 00 02 29 1B + 39 00 00 00 00 00 02 28 1D + 39 00 00 00 00 00 02 27 1E + 39 00 00 00 00 00 02 26 20 + 39 00 00 00 00 00 02 25 21 + 39 00 00 00 00 00 02 24 23 + 39 00 00 00 00 00 02 23 24 + 39 00 00 00 00 00 02 22 25 + 39 00 00 00 00 00 02 21 27 + 39 00 00 00 00 00 02 20 28 + 39 00 00 00 00 00 02 1F 2A + 39 00 00 00 00 00 02 1E 2C + 39 00 00 00 00 00 02 1D 2D + 39 00 00 00 00 00 02 1C 2E + 39 00 00 00 00 00 02 1B 2F + 39 00 00 00 00 00 02 1A 30 + 39 00 00 00 00 00 02 19 32 + 39 00 00 00 00 00 02 18 33 + 39 00 00 00 00 00 02 17 34 + 39 00 00 00 00 00 02 16 36 + 39 00 00 00 00 00 02 15 37 + 39 00 00 00 00 00 02 14 38 + 39 00 00 00 00 00 02 13 3A + 39 00 00 00 00 00 02 12 3B + 39 00 00 00 00 00 02 11 3C + 39 00 00 00 00 00 02 10 3E + 39 00 00 00 00 00 02 0F 3F + 39 00 00 00 00 00 02 0E 41 + 39 00 00 00 00 00 02 0D 42 + 39 00 00 00 00 00 02 0C 43 + 39 00 00 00 00 00 02 0B 44 + 39 00 00 00 00 00 02 0A 46 + 39 00 00 00 00 00 02 09 47 + 39 00 00 00 00 00 02 08 49 + 39 00 00 00 00 00 02 07 4A + 39 00 00 00 00 00 02 06 4B + 39 00 00 00 00 00 02 05 4D + 39 00 00 00 00 00 02 04 4E + 39 00 00 00 00 00 02 03 4F + 39 00 00 00 00 00 02 02 51 + 39 00 00 00 00 00 02 01 52 + + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 7F 81 + 39 00 00 00 00 00 02 7E 82 + 39 00 00 00 00 00 02 7D 82 + 39 00 00 00 00 00 02 7C 82 + 39 00 00 00 00 00 02 7B 81 + 39 00 00 00 00 00 02 7A 82 + 39 00 00 00 00 00 02 79 82 + 39 00 00 00 00 00 02 78 82 + 39 00 00 00 00 00 02 77 82 + 39 00 00 00 00 00 02 76 83 + 39 00 00 00 00 00 02 75 83 + 39 00 00 00 00 00 02 74 83 + 39 00 00 00 00 00 02 73 83 + 39 00 00 00 00 00 02 72 83 + 39 00 00 00 00 00 02 71 82 + 39 00 00 00 00 00 02 70 82 + 39 00 00 00 00 00 02 6F 83 + 39 00 00 00 00 00 02 6E 83 + 39 00 00 00 00 00 02 6D 83 + 39 00 00 00 00 00 02 6C 83 + 39 00 00 00 00 00 02 6B 83 + 39 00 00 00 00 00 02 6A 83 + 39 00 00 00 00 00 02 69 83 + 39 00 00 00 00 00 02 68 82 + 39 00 00 00 00 00 02 67 83 + 39 00 00 00 00 00 02 66 83 + 39 00 00 00 00 00 02 65 83 + 39 00 00 00 00 00 02 64 84 + 39 00 00 00 00 00 02 63 84 + 39 00 00 00 00 00 02 62 84 + 39 00 00 00 00 00 02 61 84 + 39 00 00 00 00 00 02 60 84 + 39 00 00 00 00 00 02 5F 84 + 39 00 00 00 00 00 02 5E 83 + 39 00 00 00 00 00 02 5D 83 + 39 00 00 00 00 00 02 5C 83 + 39 00 00 00 00 00 02 5B 83 + 39 00 00 00 00 00 02 5A 83 + 39 00 00 00 00 00 02 59 84 + 39 00 00 00 00 00 02 58 84 + 39 00 00 00 00 00 02 57 84 + 39 00 00 00 00 00 02 56 84 + 39 00 00 00 00 00 02 55 85 + 39 00 00 00 00 00 02 54 85 + 39 00 00 00 00 00 02 53 85 + 39 00 00 00 00 00 02 52 85 + 39 00 00 00 00 00 02 51 84 + 39 00 00 00 00 00 02 50 84 + 39 00 00 00 00 00 02 4F 84 + 39 00 00 00 00 00 02 4E 84 + 39 00 00 00 00 00 02 4D 83 + 39 00 00 00 00 00 02 4C 83 + 39 00 00 00 00 00 02 4B 83 + 39 00 00 00 00 00 02 4A 84 + 39 00 00 00 00 00 02 49 84 + 39 00 00 00 00 00 02 48 85 + 39 00 00 00 00 00 02 47 85 + 39 00 00 00 00 00 02 46 85 + 39 00 00 00 00 00 02 45 86 + 39 00 00 00 00 00 02 44 86 + 39 00 00 00 00 00 02 43 86 + 39 00 00 00 00 00 02 42 86 + 39 00 00 00 00 00 02 41 86 + 39 00 00 00 00 00 02 40 87 + 39 00 00 00 00 00 02 3F 87 + 39 00 00 00 00 00 02 3E 86 + 39 00 00 00 00 00 02 3D 86 + 39 00 00 00 00 00 02 3C 86 + 39 00 00 00 00 00 02 3B 86 + 39 00 00 00 00 00 02 3A 86 + 39 00 00 00 00 00 02 39 86 + 39 00 00 00 00 00 02 38 85 + 39 00 00 00 00 00 02 37 85 + 39 00 00 00 00 00 02 36 85 + 39 00 00 00 00 00 02 35 84 + 39 00 00 00 00 00 02 34 84 + 39 00 00 00 00 00 02 33 83 + 39 00 00 00 00 00 02 32 83 + 39 00 00 00 00 00 02 31 82 + 39 00 00 00 00 00 02 30 82 + 39 00 00 00 00 00 02 2F 81 + 39 00 00 00 00 00 02 2E 81 + 39 00 00 00 00 00 02 2D 82 + 39 00 00 00 00 00 02 2C 82 + 39 00 00 00 00 00 02 2B 82 + 39 00 00 00 00 00 02 2A 82 + 39 00 00 00 00 00 02 29 82 + 39 00 00 00 00 00 02 28 83 + 39 00 00 00 00 00 02 27 83 + 39 00 00 00 00 00 02 26 83 + 39 00 00 00 00 00 02 25 83 + 39 00 00 00 00 00 02 24 82 + 39 00 00 00 00 00 02 23 82 + 39 00 00 00 00 00 02 22 82 + 39 00 00 00 00 00 02 21 82 + 39 00 00 00 00 00 02 20 82 + 39 00 00 00 00 00 02 1F 82 + 39 00 00 00 00 00 02 1E 82 + 39 00 00 00 00 00 02 1D 82 + 39 00 00 00 00 00 02 1C 81 + 39 00 00 00 00 00 02 1B 81 + 39 00 00 00 00 00 02 1A 81 + 39 00 00 00 00 00 02 19 81 + 39 00 00 00 00 00 02 18 00 + 39 00 00 00 00 00 02 17 00 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 15 01 + 39 00 00 00 00 00 02 14 01 + 39 00 00 00 00 00 02 13 02 + 39 00 00 00 00 00 02 12 02 + 39 00 00 00 00 00 02 11 02 + 39 00 00 00 00 00 02 10 03 + 39 00 00 00 00 00 02 0F 03 + 39 00 00 00 00 00 02 0E 03 + 39 00 00 00 00 00 02 0D 03 + 39 00 00 00 00 00 02 0C 03 + 39 00 00 00 00 00 02 0B 02 + 39 00 00 00 00 00 02 0A 02 + 39 00 00 00 00 00 02 09 02 + 39 00 00 00 00 00 02 08 02 + 39 00 00 00 00 00 02 07 02 + 39 00 00 00 00 00 02 06 02 + 39 00 00 00 00 00 02 05 02 + 39 00 00 00 00 00 02 04 01 + 39 00 00 00 00 00 02 03 01 + 39 00 00 00 00 00 02 02 01 + 39 00 00 00 00 00 02 01 01 + + 39 00 00 00 00 00 04 FF 98 81 08 + 39 00 00 00 00 00 02 7F FF + 39 00 00 00 00 00 02 7E FF + 39 00 00 00 00 00 02 7D FF + 39 00 00 00 00 00 02 7C FF + 39 00 00 00 00 00 02 7B FF + 39 00 00 00 00 00 02 7A FF + 39 00 00 00 00 00 02 79 FF + 39 00 00 00 00 00 02 78 FF + 39 00 00 00 00 00 02 77 FF + 39 00 00 00 00 00 02 76 FF + 39 00 00 00 00 00 02 75 FF + 39 00 00 00 00 00 02 74 FF + 39 00 00 00 00 00 02 73 FF + 39 00 00 00 00 00 02 72 FF + 39 00 00 00 00 00 02 71 FF + 39 00 00 00 00 00 02 70 FF + 39 00 00 00 00 00 02 6F FF + 39 00 00 00 00 00 02 6E FF + 39 00 00 00 00 00 02 6D FF + 39 00 00 00 00 00 02 6C FF + 39 00 00 00 00 00 02 6B FF + 39 00 00 00 00 00 02 6A FF + 39 00 00 00 00 00 02 69 FF + 39 00 00 00 00 00 02 68 FF + 39 00 00 00 00 00 02 67 FF + 39 00 00 00 00 00 02 66 FF + 39 00 00 00 00 00 02 65 FF + 39 00 00 00 00 00 02 64 FF + 39 00 00 00 00 00 02 63 FF + 39 00 00 00 00 00 02 62 FF + 39 00 00 00 00 00 02 61 FF + 39 00 00 00 00 00 02 60 FF + 39 00 00 00 00 00 02 5F FF + 39 00 00 00 00 00 02 5E FF + 39 00 00 00 00 00 02 5D FF + 39 00 00 00 00 00 02 5C FF + 39 00 00 00 00 00 02 5B FF + 39 00 00 00 00 00 02 5A FF + 39 00 00 00 00 00 02 59 FF + 39 00 00 00 00 00 02 58 FF + 39 00 00 00 00 00 02 57 FF + 39 00 00 00 00 00 02 56 FF + 39 00 00 00 00 00 02 55 FF + 39 00 00 00 00 00 02 54 FF + 39 00 00 00 00 00 02 53 FF + 39 00 00 00 00 00 02 52 FF + 39 00 00 00 00 00 02 51 FF + 39 00 00 00 00 00 02 50 FF + 39 00 00 00 00 00 02 4F FF + 39 00 00 00 00 00 02 4E FF + 39 00 00 00 00 00 02 4D FF + 39 00 00 00 00 00 02 4C FF + 39 00 00 00 00 00 02 4B FF + 39 00 00 00 00 00 02 4A FF + 39 00 00 00 00 00 02 49 FF + 39 00 00 00 00 00 02 48 FF + 39 00 00 00 00 00 02 47 FF + 39 00 00 00 00 00 02 46 FF + 39 00 00 00 00 00 02 45 FF + 39 00 00 00 00 00 02 44 FF + 39 00 00 00 00 00 02 43 FF + 39 00 00 00 00 00 02 42 FF + 39 00 00 00 00 00 02 41 FF + 39 00 00 00 00 00 02 40 FF + 39 00 00 00 00 00 02 3F FF + 39 00 00 00 00 00 02 3E FF + 39 00 00 00 00 00 02 3D FF + 39 00 00 00 00 00 02 3C FF + 39 00 00 00 00 00 02 3B FF + 39 00 00 00 00 00 02 3A FF + 39 00 00 00 00 00 02 39 FF + 39 00 00 00 00 00 02 38 FF + 39 00 00 00 00 00 02 37 FF + 39 00 00 00 00 00 02 36 FF + 39 00 00 00 00 00 02 35 FF + 39 00 00 00 00 00 02 34 FF + 39 00 00 00 00 00 02 33 FF + 39 00 00 00 00 00 02 32 FF + 39 00 00 00 00 00 02 31 FF + 39 00 00 00 00 00 02 30 FF + 39 00 00 00 00 00 02 2F FF + 39 00 00 00 00 00 02 2E FF + 39 00 00 00 00 00 02 2D FF + 39 00 00 00 00 00 02 2C FF + 39 00 00 00 00 00 02 2B FF + 39 00 00 00 00 00 02 2A FF + 39 00 00 00 00 00 02 29 FF + 39 00 00 00 00 00 02 28 FF + 39 00 00 00 00 00 02 27 FE + 39 00 00 00 00 00 02 26 FE + 39 00 00 00 00 00 02 25 FD + 39 00 00 00 00 00 02 24 FC + 39 00 00 00 00 00 02 23 FC + 39 00 00 00 00 00 02 22 FB + 39 00 00 00 00 00 02 21 FA + 39 00 00 00 00 00 02 20 FA + 39 00 00 00 00 00 02 1F F9 + 39 00 00 00 00 00 02 1E F8 + 39 00 00 00 00 00 02 1D F7 + 39 00 00 00 00 00 02 1C F7 + 39 00 00 00 00 00 02 1B F6 + 39 00 00 00 00 00 02 1A F5 + 39 00 00 00 00 00 02 19 F4 + 39 00 00 00 00 00 02 18 F3 + 39 00 00 00 00 00 02 17 F3 + 39 00 00 00 00 00 02 16 F2 + 39 00 00 00 00 00 02 15 F1 + 39 00 00 00 00 00 02 14 F0 + 39 00 00 00 00 00 02 13 F0 + 39 00 00 00 00 00 02 12 EF + 39 00 00 00 00 00 02 11 EE + 39 00 00 00 00 00 02 10 ED + 39 00 00 00 00 00 02 0F EC + 39 00 00 00 00 00 02 0E EB + 39 00 00 00 00 00 02 0D EA + 39 00 00 00 00 00 02 0C E9 + 39 00 00 00 00 00 02 0B E8 + 39 00 00 00 00 00 02 0A E8 + 39 00 00 00 00 00 02 09 E7 + 39 00 00 00 00 00 02 08 E6 + 39 00 00 00 00 00 02 07 E5 + 39 00 00 00 00 00 02 06 E4 + 39 00 00 00 00 00 02 05 E4 + 39 00 00 00 00 00 02 04 E3 + 39 00 00 00 00 00 02 03 E2 + 39 00 00 00 00 00 02 02 E1 + 39 00 00 00 00 00 02 01 E0 + + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F 02 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 02 + 39 00 00 00 00 00 02 7F 81 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F E0 + 39 00 00 00 00 00 04 FF 98 81 08 + 39 00 00 00 00 00 02 00 E0 + 39 00 00 00 00 00 02 7F FF + 39 00 00 00 00 00 04 FF 98 81 09 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F ac + 39 00 00 00 00 00 04 FF 98 81 0A + 39 00 00 00 00 00 02 00 53 + 39 00 00 00 00 00 02 7F e1 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 80 01 + 39 01 00 00 00 00 04 FF 98 81 00 + + 39 00 00 00 00 00 04 FF 98 81 09 + 39 00 00 00 00 00 02 7F AC + 39 00 00 00 00 00 02 7E AA + 39 00 00 00 00 00 02 7D A9 + 39 00 00 00 00 00 02 7C A8 + 39 00 00 00 00 00 02 7B A7 + 39 00 00 00 00 00 02 7A A5 + 39 00 00 00 00 00 02 79 A4 + 39 00 00 00 00 00 02 78 A2 + 39 00 00 00 00 00 02 77 A1 + 39 00 00 00 00 00 02 76 9F + 39 00 00 00 00 00 02 75 9E + 39 00 00 00 00 00 02 74 9C + 39 00 00 00 00 00 02 73 9A + 39 00 00 00 00 00 02 72 99 + 39 00 00 00 00 00 02 71 97 + 39 00 00 00 00 00 02 70 96 + 39 00 00 00 00 00 02 6F 94 + 39 00 00 00 00 00 02 6E 92 + 39 00 00 00 00 00 02 6D 91 + 39 00 00 00 00 00 02 6C 8F + 39 00 00 00 00 00 02 6B 8D + 39 00 00 00 00 00 02 6A 8C + 39 00 00 00 00 00 02 69 8A + 39 00 00 00 00 00 02 68 89 + 39 00 00 00 00 00 02 67 88 + 39 00 00 00 00 00 02 66 87 + 39 00 00 00 00 00 02 65 85 + 39 00 00 00 00 00 02 64 84 + 39 00 00 00 00 00 02 63 82 + 39 00 00 00 00 00 02 62 81 + 39 00 00 00 00 00 02 61 00 + 39 00 00 00 00 00 02 60 02 + 39 00 00 00 00 00 02 5F 03 + 39 00 00 00 00 00 02 5E 04 + 39 00 00 00 00 00 02 5D 05 + 39 00 00 00 00 00 02 5C 07 + 39 00 00 00 00 00 02 5B 08 + 39 00 00 00 00 00 02 5A 09 + 39 00 00 00 00 00 02 59 0A + 39 00 00 00 00 00 02 58 0B + 39 00 00 00 00 00 02 57 0D + 39 00 00 00 00 00 02 56 0E + 39 00 00 00 00 00 02 55 0F + 39 00 00 00 00 00 02 54 10 + 39 00 00 00 00 00 02 53 11 + 39 00 00 00 00 00 02 52 12 + 39 00 00 00 00 00 02 51 13 + 39 00 00 00 00 00 02 50 14 + 39 00 00 00 00 00 02 4F 15 + 39 00 00 00 00 00 02 4E 16 + 39 00 00 00 00 00 02 4D 18 + 39 00 00 00 00 00 02 4C 1A + 39 00 00 00 00 00 02 4B 1C + 39 00 00 00 00 00 02 4A 1E + 39 00 00 00 00 00 02 49 20 + 39 00 00 00 00 00 02 48 20 + 39 00 00 00 00 00 02 47 21 + 39 00 00 00 00 00 02 46 23 + 39 00 00 00 00 00 02 45 24 + 39 00 00 00 00 00 02 44 26 + 39 00 00 00 00 00 02 43 27 + 39 00 00 00 00 00 02 42 29 + 39 00 00 00 00 00 02 41 2A + 39 00 00 00 00 00 02 40 2B + 39 00 00 00 00 00 02 3F 2D + 39 00 00 00 00 00 02 3E 2E + 39 00 00 00 00 00 02 3D 2F + 39 00 00 00 00 00 02 3C 30 + 39 00 00 00 00 00 02 3B 31 + 39 00 00 00 00 00 02 3A 32 + 39 00 00 00 00 00 02 39 34 + 39 00 00 00 00 00 02 38 35 + 39 00 00 00 00 00 02 37 35 + 39 00 00 00 00 00 02 36 37 + 39 00 00 00 00 00 02 35 39 + 39 00 00 00 00 00 02 34 3B + 39 00 00 00 00 00 02 33 3D + 39 00 00 00 00 00 02 32 3F + 39 00 00 00 00 00 02 31 41 + 39 00 00 00 00 00 02 30 43 + 39 00 00 00 00 00 02 2F 45 + 39 00 00 00 00 00 02 2E 45 + 39 00 00 00 00 00 02 2D 46 + 39 00 00 00 00 00 02 2C 47 + 39 00 00 00 00 00 02 2B 48 + 39 00 00 00 00 00 02 2A 49 + 39 00 00 00 00 00 02 29 4B + 39 00 00 00 00 00 02 28 4C + 39 00 00 00 00 00 02 27 4D + 39 00 00 00 00 00 02 26 4E + 39 00 00 00 00 00 02 25 4F + 39 00 00 00 00 00 02 24 50 + 39 00 00 00 00 00 02 23 51 + 39 00 00 00 00 00 02 22 53 + 39 00 00 00 00 00 02 21 55 + 39 00 00 00 00 00 02 20 56 + 39 00 00 00 00 00 02 1F A8 + 39 00 00 00 00 00 02 1E A7 + 39 00 00 00 00 00 02 1D A5 + 39 00 00 00 00 00 02 1C A4 + 39 00 00 00 00 00 02 1B A3 + 39 00 00 00 00 00 02 1A A2 + 39 00 00 00 00 00 02 19 A1 + 39 00 00 00 00 00 02 18 A0 + 39 00 00 00 00 00 02 17 9F + 39 00 00 00 00 00 02 16 9D + 39 00 00 00 00 00 02 15 9C + 39 00 00 00 00 00 02 14 9B + 39 00 00 00 00 00 02 13 9A + 39 00 00 00 00 00 02 12 98 + 39 00 00 00 00 00 02 11 97 + 39 00 00 00 00 00 02 10 95 + 39 00 00 00 00 00 02 0F 93 + 39 00 00 00 00 00 02 0E 92 + 39 00 00 00 00 00 02 0D 91 + 39 00 00 00 00 00 02 0C 90 + 39 00 00 00 00 00 02 0B 8E + 39 00 00 00 00 00 02 0A 8D + 39 00 00 00 00 00 02 09 8B + 39 00 00 00 00 00 02 08 8A + 39 00 00 00 00 00 02 07 89 + 39 00 00 00 00 00 02 06 89 + 39 00 00 00 00 00 02 05 87 + 39 00 00 00 00 00 02 04 86 + 39 00 00 00 00 00 02 03 85 + 39 00 00 00 00 00 02 02 84 + 39 00 00 00 00 00 02 01 83 + + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 7F 02 + 39 00 00 00 00 00 02 7E 02 + 39 00 00 00 00 00 02 7D 02 + 39 00 00 00 00 00 02 7C 02 + 39 00 00 00 00 00 02 7B 02 + 39 00 00 00 00 00 02 7A 02 + 39 00 00 00 00 00 02 79 02 + 39 00 00 00 00 00 02 78 02 + 39 00 00 00 00 00 02 77 02 + 39 00 00 00 00 00 02 76 03 + 39 00 00 00 00 00 02 75 03 + 39 00 00 00 00 00 02 74 03 + 39 00 00 00 00 00 02 73 03 + 39 00 00 00 00 00 02 72 03 + 39 00 00 00 00 00 02 71 04 + 39 00 00 00 00 00 02 70 04 + 39 00 00 00 00 00 02 6F 04 + 39 00 00 00 00 00 02 6E 04 + 39 00 00 00 00 00 02 6D 04 + 39 00 00 00 00 00 02 6C 04 + 39 00 00 00 00 00 02 6B 04 + 39 00 00 00 00 00 02 6A 04 + 39 00 00 00 00 00 02 69 05 + 39 00 00 00 00 00 02 68 05 + 39 00 00 00 00 00 02 67 05 + 39 00 00 00 00 00 02 66 04 + 39 00 00 00 00 00 02 65 05 + 39 00 00 00 00 00 02 64 05 + 39 00 00 00 00 00 02 63 05 + 39 00 00 00 00 00 02 62 05 + 39 00 00 00 00 00 02 61 04 + 39 00 00 00 00 00 02 60 04 + 39 00 00 00 00 00 02 5F 05 + 39 00 00 00 00 00 02 5E 05 + 39 00 00 00 00 00 02 5D 05 + 39 00 00 00 00 00 02 5C 05 + 39 00 00 00 00 00 02 5B 05 + 39 00 00 00 00 00 02 5A 05 + 39 00 00 00 00 00 02 59 05 + 39 00 00 00 00 00 02 58 05 + 39 00 00 00 00 00 02 57 05 + 39 00 00 00 00 00 02 56 04 + 39 00 00 00 00 00 02 55 04 + 39 00 00 00 00 00 02 54 04 + 39 00 00 00 00 00 02 53 04 + 39 00 00 00 00 00 02 52 04 + 39 00 00 00 00 00 02 51 04 + 39 00 00 00 00 00 02 50 04 + 39 00 00 00 00 00 02 4F 04 + 39 00 00 00 00 00 02 4E 05 + 39 00 00 00 00 00 02 4D 05 + 39 00 00 00 00 00 02 4C 05 + 39 00 00 00 00 00 02 4B 05 + 39 00 00 00 00 00 02 4A 06 + 39 00 00 00 00 00 02 49 06 + 39 00 00 00 00 00 02 48 06 + 39 00 00 00 00 00 02 47 07 + 39 00 00 00 00 00 02 46 08 + 39 00 00 00 00 00 02 45 08 + 39 00 00 00 00 00 02 44 08 + 39 00 00 00 00 00 02 43 08 + 39 00 00 00 00 00 02 42 08 + 39 00 00 00 00 00 02 41 08 + 39 00 00 00 00 00 02 40 08 + 39 00 00 00 00 00 02 3F 08 + 39 00 00 00 00 00 02 3E 08 + 39 00 00 00 00 00 02 3D 07 + 39 00 00 00 00 00 02 3C 07 + 39 00 00 00 00 00 02 3B 07 + 39 00 00 00 00 00 02 3A 07 + 39 00 00 00 00 00 02 39 06 + 39 00 00 00 00 00 02 38 06 + 39 00 00 00 00 00 02 37 06 + 39 00 00 00 00 00 02 36 05 + 39 00 00 00 00 00 02 35 05 + 39 00 00 00 00 00 02 34 04 + 39 00 00 00 00 00 02 33 04 + 39 00 00 00 00 00 02 32 04 + 39 00 00 00 00 00 02 31 05 + 39 00 00 00 00 00 02 30 06 + 39 00 00 00 00 00 02 2F 06 + 39 00 00 00 00 00 02 2E 05 + 39 00 00 00 00 00 02 2D 05 + 39 00 00 00 00 00 02 2C 05 + 39 00 00 00 00 00 02 2B 06 + 39 00 00 00 00 00 02 2A 06 + 39 00 00 00 00 00 02 29 06 + 39 00 00 00 00 00 02 28 05 + 39 00 00 00 00 00 02 27 05 + 39 00 00 00 00 00 02 26 05 + 39 00 00 00 00 00 02 25 05 + 39 00 00 00 00 00 02 24 04 + 39 00 00 00 00 00 02 23 04 + 39 00 00 00 00 00 02 22 04 + 39 00 00 00 00 00 02 21 05 + 39 00 00 00 00 00 02 20 07 + 39 00 00 00 00 00 02 1F 07 + 39 00 00 00 00 00 02 1E 08 + 39 00 00 00 00 00 02 1D 07 + 39 00 00 00 00 00 02 1C 06 + 39 00 00 00 00 00 02 1B 06 + 39 00 00 00 00 00 02 1A 06 + 39 00 00 00 00 00 02 19 05 + 39 00 00 00 00 00 02 18 05 + 39 00 00 00 00 00 02 17 04 + 39 00 00 00 00 00 02 16 04 + 39 00 00 00 00 00 02 15 05 + 39 00 00 00 00 00 02 14 05 + 39 00 00 00 00 00 02 13 05 + 39 00 00 00 00 00 02 12 05 + 39 00 00 00 00 00 02 11 05 + 39 00 00 00 00 00 02 10 04 + 39 00 00 00 00 00 02 0F 04 + 39 00 00 00 00 00 02 0E 04 + 39 00 00 00 00 00 02 0D 04 + 39 00 00 00 00 00 02 0C 03 + 39 00 00 00 00 00 02 0B 03 + 39 00 00 00 00 00 02 0A 03 + 39 00 00 00 00 00 02 09 04 + 39 00 00 00 00 00 02 08 04 + 39 00 00 00 00 00 02 07 03 + 39 00 00 00 00 00 02 06 04 + 39 00 00 00 00 00 02 05 03 + 39 00 00 00 00 00 02 04 02 + 39 00 00 00 00 00 02 03 02 + 39 00 00 00 00 00 02 02 01 + 39 00 00 00 00 00 02 01 00 + + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 D3 39 + 39 00 00 00 00 00 02 D2 5F + 39 00 00 00 00 00 02 D1 50 + 39 00 00 00 00 00 02 D0 27 + 39 00 00 00 00 00 02 CF 23 + 39 00 00 00 00 00 02 CE 4E + 39 00 00 00 00 00 02 CD 1B + 39 00 00 00 00 00 02 CC 1D + 39 00 00 00 00 00 02 CB 85 + 39 00 00 00 00 00 02 CA 2A + 39 00 00 00 00 00 02 C9 1E + 39 00 00 00 00 00 02 C8 93 + 39 00 00 00 00 00 02 C7 1F + 39 00 00 00 00 00 02 C6 1D + 39 00 00 00 00 00 02 C5 29 + 39 00 00 00 00 00 02 C4 16 + 39 00 00 00 00 00 02 C3 14 + 39 00 00 00 00 00 02 C2 2A + 39 00 00 00 00 00 02 C1 1B + 39 00 00 00 00 00 02 C0 00 + + 39 00 00 00 00 00 02 B3 39 + 39 00 00 00 00 00 02 B2 60 + 39 00 00 00 00 00 02 B1 51 + 39 00 00 00 00 00 02 B0 26 + 39 00 00 00 00 00 02 AF 22 + 39 00 00 00 00 00 02 AE 4E + 39 00 00 00 00 00 02 AD 1A + 39 00 00 00 00 00 02 AC 1C + 39 00 00 00 00 00 02 AB 86 + 39 00 00 00 00 00 02 AA 2A + 39 00 00 00 00 00 02 A9 1E + 39 00 00 00 00 00 02 A8 94 + 39 00 00 00 00 00 02 A7 1E + 39 00 00 00 00 00 02 A6 1D + 39 00 00 00 00 00 02 A5 29 + 39 00 00 00 00 00 02 A4 16 + 39 00 00 00 00 00 02 A3 13 + 39 00 00 00 00 00 02 A2 2B + 39 00 00 00 00 00 02 A1 1C + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 f6 01 + + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 7F E0 + 39 00 00 00 00 00 02 7E DF + 39 00 00 00 00 00 02 7D DE + 39 00 00 00 00 00 02 7C DD + 39 00 00 00 00 00 02 7B DD + 39 00 00 00 00 00 02 7A DC + 39 00 00 00 00 00 02 79 DB + 39 00 00 00 00 00 02 78 DA + 39 00 00 00 00 00 02 77 DA + 39 00 00 00 00 00 02 76 D9 + 39 00 00 00 00 00 02 75 D8 + 39 00 00 00 00 00 02 74 D7 + 39 00 00 00 00 00 02 73 D7 + 39 00 00 00 00 00 02 72 D6 + 39 00 00 00 00 00 02 71 D5 + 39 00 00 00 00 00 02 70 D4 + 39 00 00 00 00 00 02 6F D4 + 39 00 00 00 00 00 02 6E D3 + 39 00 00 00 00 00 02 6D D2 + 39 00 00 00 00 00 02 6C D2 + 39 00 00 00 00 00 02 6B D1 + 39 00 00 00 00 00 02 6A D0 + 39 00 00 00 00 00 02 69 D0 + 39 00 00 00 00 00 02 68 CF + 39 00 00 00 00 00 02 67 CE + 39 00 00 00 00 00 02 66 CE + 39 00 00 00 00 00 02 65 CD + 39 00 00 00 00 00 02 64 CD + 39 00 00 00 00 00 02 63 CC + 39 00 00 00 00 00 02 62 CB + 39 00 00 00 00 00 02 61 CA + 39 00 00 00 00 00 02 60 C9 + 39 00 00 00 00 00 02 5F C8 + 39 00 00 00 00 00 02 5E C7 + 39 00 00 00 00 00 02 5D C6 + 39 00 00 00 00 00 02 5C C5 + 39 00 00 00 00 00 02 5B C4 + 39 00 00 00 00 00 02 5A C3 + 39 00 00 00 00 00 02 59 C1 + 39 00 00 00 00 00 02 58 C0 + 39 00 00 00 00 00 02 57 BF + 39 00 00 00 00 00 02 56 BE + 39 00 00 00 00 00 02 55 BE + 39 00 00 00 00 00 02 54 BD + 39 00 00 00 00 00 02 53 BC + 39 00 00 00 00 00 02 52 BC + 39 00 00 00 00 00 02 51 BB + 39 00 00 00 00 00 02 50 BA + 39 00 00 00 00 00 02 4F B9 + 39 00 00 00 00 00 02 4E B8 + 39 00 00 00 00 00 02 4D B8 + 39 00 00 00 00 00 02 4C B7 + 39 00 00 00 00 00 02 4B B7 + 39 00 00 00 00 00 02 4A B6 + 39 00 00 00 00 00 02 49 B6 + 39 00 00 00 00 00 02 48 B5 + 39 00 00 00 00 00 02 47 B4 + 39 00 00 00 00 00 02 46 B4 + 39 00 00 00 00 00 02 45 B4 + 39 00 00 00 00 00 02 44 B3 + 39 00 00 00 00 00 02 43 B3 + 39 00 00 00 00 00 02 42 B3 + 39 00 00 00 00 00 02 41 B2 + 39 00 00 00 00 00 02 40 B1 + 39 00 00 00 00 00 02 3F B0 + 39 00 00 00 00 00 02 3E AF + 39 00 00 00 00 00 02 3D AD + 39 00 00 00 00 00 02 3C AC + 39 00 00 00 00 00 02 3B AC + 39 00 00 00 00 00 02 3A AC + 39 00 00 00 00 00 02 39 AB + 39 00 00 00 00 00 02 38 AA + 39 00 00 00 00 00 02 37 A9 + 39 00 00 00 00 00 02 36 A8 + 39 00 00 00 00 00 02 35 A7 + 39 00 00 00 00 00 02 34 A6 + 39 00 00 00 00 00 02 33 A6 + 39 00 00 00 00 00 02 32 A5 + 39 00 00 00 00 00 02 31 A5 + 39 00 00 00 00 00 02 30 A4 + 39 00 00 00 00 00 02 2F A4 + 39 00 00 00 00 00 02 2E A3 + 39 00 00 00 00 00 02 2D A3 + 39 00 00 00 00 00 02 2C A2 + 39 00 00 00 00 00 02 2B A0 + 39 00 00 00 00 00 02 2A 9F + 39 00 00 00 00 00 02 29 9D + 39 00 00 00 00 00 02 28 9B + 39 00 00 00 00 00 02 27 9A + 39 00 00 00 00 00 02 26 99 + 39 00 00 00 00 00 02 25 9A + 39 00 00 00 00 00 02 24 99 + 39 00 00 00 00 00 02 23 99 + 39 00 00 00 00 00 02 22 98 + 39 00 00 00 00 00 02 21 98 + 39 00 00 00 00 00 02 20 97 + 39 00 00 00 00 00 02 1F 97 + 39 00 00 00 00 00 02 1E 96 + 39 00 00 00 00 00 02 1D 96 + 39 00 00 00 00 00 02 1C 95 + 39 00 00 00 00 00 02 1B 94 + 39 00 00 00 00 00 02 1A 92 + 39 00 00 00 00 00 02 19 91 + 39 00 00 00 00 00 02 18 90 + 39 00 00 00 00 00 02 17 90 + 39 00 00 00 00 00 02 16 90 + 39 00 00 00 00 00 02 15 90 + 39 00 00 00 00 00 02 14 8F + 39 00 00 00 00 00 02 13 8E + 39 00 00 00 00 00 02 12 8D + 39 00 00 00 00 00 02 11 8D + 39 00 00 00 00 00 02 10 8C + 39 00 00 00 00 00 02 0F 8C + 39 00 00 00 00 00 02 0E 8B + 39 00 00 00 00 00 02 0D 89 + 39 00 00 00 00 00 02 0C 88 + 39 00 00 00 00 00 02 0B 87 + 39 00 00 00 00 00 02 0A 87 + 39 00 00 00 00 00 02 09 86 + 39 00 00 00 00 00 02 08 85 + 39 00 00 00 00 00 02 07 85 + 39 00 00 00 00 00 02 06 84 + 39 00 00 00 00 00 02 05 84 + 39 00 00 00 00 00 02 04 83 + 39 00 00 00 00 00 02 03 83 + 39 00 00 00 00 00 02 02 83 + 39 00 00 00 00 00 02 01 82 + + + 39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 21 B0 + 39 00 00 00 00 00 02 32 02 + 39 01 00 00 00 00 04 FF 98 81 00 + ]; + + + + + + qcom,mdss-dsi-panel-eye-command03= [39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 21 B2 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 f6 02 + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 A1 1E + 39 00 00 00 00 00 02 A2 2E + 39 00 00 00 00 00 02 A3 12 + 39 00 00 00 00 00 02 A4 15 + 39 00 00 00 00 00 02 A5 29 + 39 00 00 00 00 00 02 A6 1D + 39 00 00 00 00 00 02 A7 1E + 39 00 00 00 00 00 02 A8 9E + 39 00 00 00 00 00 02 A9 1D + 39 00 00 00 00 00 02 AA 2A + 39 00 00 00 00 00 02 AB 90 + 39 00 00 00 00 00 02 AC 1D + 39 00 00 00 00 00 02 AD 1C + 39 00 00 00 00 00 02 AE 4F + 39 00 00 00 00 00 02 AF 23 + 39 00 00 00 00 00 02 B0 28 + 39 00 00 00 00 00 02 B1 59 + 39 00 00 00 00 00 02 B2 68 + 39 00 00 00 00 00 02 B3 39 + + 39 00 00 00 00 00 02 C0 00 + 39 00 00 00 00 00 02 C1 1D + 39 00 00 00 00 00 02 C2 2D + 39 00 00 00 00 00 02 C3 13 + 39 00 00 00 00 00 02 C4 16 + 39 00 00 00 00 00 02 C5 29 + 39 00 00 00 00 00 02 C6 1D + 39 00 00 00 00 00 02 C7 1F + 39 00 00 00 00 00 02 C8 9D + 39 00 00 00 00 00 02 C9 1D + 39 00 00 00 00 00 02 CA 2A + 39 00 00 00 00 00 02 CB 8F + 39 00 00 00 00 00 02 CC 1D + 39 00 00 00 00 00 02 CD 1C + 39 00 00 00 00 00 02 CE 50 + 39 00 00 00 00 00 02 CF 24 + 39 00 00 00 00 00 02 D0 29 + 39 00 00 00 00 00 02 D1 58 + 39 00 00 00 00 00 02 D2 67 + 39 00 00 00 00 00 02 D3 39 + + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 01 82 + 39 00 00 00 00 00 02 02 81 + 39 00 00 00 00 00 02 03 01 + 39 00 00 00 00 00 02 04 03 + 39 00 00 00 00 00 02 05 04 + 39 00 00 00 00 00 02 06 03 + 39 00 00 00 00 00 02 07 03 + 39 00 00 00 00 00 02 08 04 + 39 00 00 00 00 00 02 09 04 + 39 00 00 00 00 00 02 0A 04 + 39 00 00 00 00 00 02 0B 03 + 39 00 00 00 00 00 02 0C 03 + 39 00 00 00 00 00 02 0D 04 + 39 00 00 00 00 00 02 0E 03 + 39 00 00 00 00 00 02 0F 03 + 39 00 00 00 00 00 02 10 03 + 39 00 00 00 00 00 02 11 04 + 39 00 00 00 00 00 02 12 04 + 39 00 00 00 00 00 02 13 04 + 39 00 00 00 00 00 02 14 04 + 39 00 00 00 00 00 02 15 03 + 39 00 00 00 00 00 02 16 03 + 39 00 00 00 00 00 02 17 03 + 39 00 00 00 00 00 02 18 04 + 39 00 00 00 00 00 02 19 04 + 39 00 00 00 00 00 02 1A 04 + 39 00 00 00 00 00 02 1B 04 + 39 00 00 00 00 00 02 1C 05 + 39 00 00 00 00 00 02 1D 05 + 39 00 00 00 00 00 02 1E 05 + 39 00 00 00 00 00 02 1F 05 + 39 00 00 00 00 00 02 20 05 + 39 00 00 00 00 00 02 21 05 + 39 00 00 00 00 00 02 22 05 + 39 00 00 00 00 00 02 23 04 + 39 00 00 00 00 00 02 24 07 + 39 00 00 00 00 00 02 25 09 + 39 00 00 00 00 00 02 26 08 + 39 00 00 00 00 00 02 27 08 + 39 00 00 00 00 00 02 28 07 + 39 00 00 00 00 00 02 29 07 + 39 00 00 00 00 00 02 2A 07 + 39 00 00 00 00 00 02 2B 07 + 39 00 00 00 00 00 02 2C 07 + 39 00 00 00 00 00 02 2D 06 + 39 00 00 00 00 00 02 2E 06 + 39 00 00 00 00 00 02 2F 06 + 39 00 00 00 00 00 02 30 06 + 39 00 00 00 00 00 02 31 05 + 39 00 00 00 00 00 02 32 05 + 39 00 00 00 00 00 02 33 04 + 39 00 00 00 00 00 02 34 04 + 39 00 00 00 00 00 02 35 05 + 39 00 00 00 00 00 02 36 05 + 39 00 00 00 00 00 02 37 07 + 39 00 00 00 00 00 02 38 07 + 39 00 00 00 00 00 02 39 07 + 39 00 00 00 00 00 02 3A 07 + 39 00 00 00 00 00 02 3B 07 + 39 00 00 00 00 00 02 3C 07 + 39 00 00 00 00 00 02 3D 07 + 39 00 00 00 00 00 02 3E 07 + 39 00 00 00 00 00 02 3F 07 + 39 00 00 00 00 00 02 40 07 + 39 00 00 00 00 00 02 41 07 + 39 00 00 00 00 00 02 42 07 + 39 00 00 00 00 00 02 43 07 + 39 00 00 00 00 00 02 44 06 + 39 00 00 00 00 00 02 45 06 + 39 00 00 00 00 00 02 46 06 + 39 00 00 00 00 00 02 47 06 + 39 00 00 00 00 00 02 48 06 + 39 00 00 00 00 00 02 49 05 + 39 00 00 00 00 00 02 4A 05 + 39 00 00 00 00 00 02 4B 04 + 39 00 00 00 00 00 02 4C 04 + 39 00 00 00 00 00 02 4D 04 + 39 00 00 00 00 00 02 4E 04 + 39 00 00 00 00 00 02 4F 03 + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 51 02 + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 53 03 + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 55 03 + 39 00 00 00 00 00 02 56 04 + 39 00 00 00 00 00 02 57 04 + 39 00 00 00 00 00 02 58 04 + 39 00 00 00 00 00 02 59 04 + 39 00 00 00 00 00 02 5A 04 + 39 00 00 00 00 00 02 5B 04 + 39 00 00 00 00 00 02 5C 04 + 39 00 00 00 00 00 02 5D 04 + 39 00 00 00 00 00 02 5E 04 + 39 00 00 00 00 00 02 5F 04 + 39 00 00 00 00 00 02 60 04 + 39 00 00 00 00 00 02 61 04 + 39 00 00 00 00 00 02 62 04 + 39 00 00 00 00 00 02 63 04 + 39 00 00 00 00 00 02 64 04 + 39 00 00 00 00 00 02 65 04 + 39 00 00 00 00 00 02 66 04 + 39 00 00 00 00 00 02 67 04 + 39 00 00 00 00 00 02 68 04 + 39 00 00 00 00 00 02 69 04 + 39 00 00 00 00 00 02 6A 04 + 39 00 00 00 00 00 02 6B 04 + 39 00 00 00 00 00 02 6C 04 + 39 00 00 00 00 00 02 6D 04 + 39 00 00 00 00 00 02 6E 04 + 39 00 00 00 00 00 02 6F 04 + 39 00 00 00 00 00 02 70 04 + 39 00 00 00 00 00 02 71 04 + 39 00 00 00 00 00 02 72 03 + 39 00 00 00 00 00 02 73 03 + 39 00 00 00 00 00 02 74 02 + 39 00 00 00 00 00 02 75 02 + 39 00 00 00 00 00 02 76 02 + 39 00 00 00 00 00 02 77 02 + 39 00 00 00 00 00 02 78 01 + 39 00 00 00 00 00 02 79 01 + 39 00 00 00 00 00 02 7A 01 + 39 00 00 00 00 00 02 7B 01 + 39 00 00 00 00 00 02 7C 00 + 39 00 00 00 00 00 02 7D 00 + 39 00 00 00 00 00 02 7E 00 + 39 00 00 00 00 00 02 7F 00 + + + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 01 83 + 39 00 00 00 00 00 02 02 83 + 39 00 00 00 00 00 02 03 83 + 39 00 00 00 00 00 02 04 82 + 39 00 00 00 00 00 02 05 82 + 39 00 00 00 00 00 02 06 82 + 39 00 00 00 00 00 02 07 82 + 39 00 00 00 00 00 02 08 83 + 39 00 00 00 00 00 02 09 83 + 39 00 00 00 00 00 02 0A 83 + 39 00 00 00 00 00 02 0B 84 + 39 00 00 00 00 00 02 0C 84 + 39 00 00 00 00 00 02 0D 85 + 39 00 00 00 00 00 02 0E 85 + 39 00 00 00 00 00 02 0F 85 + 39 00 00 00 00 00 02 10 86 + 39 00 00 00 00 00 02 11 86 + 39 00 00 00 00 00 02 12 87 + 39 00 00 00 00 00 02 13 87 + 39 00 00 00 00 00 02 14 87 + 39 00 00 00 00 00 02 15 87 + 39 00 00 00 00 00 02 16 88 + 39 00 00 00 00 00 02 17 88 + 39 00 00 00 00 00 02 18 89 + 39 00 00 00 00 00 02 19 89 + 39 00 00 00 00 00 02 1A 8A + 39 00 00 00 00 00 02 1B 8A + 39 00 00 00 00 00 02 1C 8A + 39 00 00 00 00 00 02 1D 8A + 39 00 00 00 00 00 02 1E 8A + 39 00 00 00 00 00 02 1F 8A + 39 00 00 00 00 00 02 20 8A + 39 00 00 00 00 00 02 21 8A + 39 00 00 00 00 00 02 22 8B + 39 00 00 00 00 00 02 23 8B + 39 00 00 00 00 00 02 24 8C + 39 00 00 00 00 00 02 25 8C + 39 00 00 00 00 00 02 26 8D + 39 00 00 00 00 00 02 27 8E + 39 00 00 00 00 00 02 28 8D + 39 00 00 00 00 00 02 29 8B + 39 00 00 00 00 00 02 2A 8A + 39 00 00 00 00 00 02 2B 8B + 39 00 00 00 00 00 02 2C 8C + 39 00 00 00 00 00 02 2D 8D + 39 00 00 00 00 00 02 2E 8E + 39 00 00 00 00 00 02 2F 8E + 39 00 00 00 00 00 02 30 8E + 39 00 00 00 00 00 02 31 8F + 39 00 00 00 00 00 02 32 8F + 39 00 00 00 00 00 02 33 90 + 39 00 00 00 00 00 02 34 91 + 39 00 00 00 00 00 02 35 91 + 39 00 00 00 00 00 02 36 92 + 39 00 00 00 00 00 02 37 93 + 39 00 00 00 00 00 02 38 93 + 39 00 00 00 00 00 02 39 94 + 39 00 00 00 00 00 02 3A 94 + 39 00 00 00 00 00 02 3B 95 + 39 00 00 00 00 00 02 3C 95 + 39 00 00 00 00 00 02 3D 94 + 39 00 00 00 00 00 02 3E 93 + 39 00 00 00 00 00 02 3F 93 + 39 00 00 00 00 00 02 40 94 + 39 00 00 00 00 00 02 41 94 + 39 00 00 00 00 00 02 42 95 + 39 00 00 00 00 00 02 43 95 + 39 00 00 00 00 00 02 44 96 + 39 00 00 00 00 00 02 45 96 + 39 00 00 00 00 00 02 46 96 + 39 00 00 00 00 00 02 47 96 + 39 00 00 00 00 00 02 48 97 + 39 00 00 00 00 00 02 49 97 + 39 00 00 00 00 00 02 4A 98 + 39 00 00 00 00 00 02 4B 98 + 39 00 00 00 00 00 02 4C 99 + 39 00 00 00 00 00 02 4D 99 + 39 00 00 00 00 00 02 4E 9A + 39 00 00 00 00 00 02 4F 9A + 39 00 00 00 00 00 02 50 9B + 39 00 00 00 00 00 02 51 9C + 39 00 00 00 00 00 02 52 9C + 39 00 00 00 00 00 02 53 9D + 39 00 00 00 00 00 02 54 9E + 39 00 00 00 00 00 02 55 9E + 39 00 00 00 00 00 02 56 9F + 39 00 00 00 00 00 02 57 9F + 39 00 00 00 00 00 02 58 A0 + 39 00 00 00 00 00 02 59 A1 + 39 00 00 00 00 00 02 5A A1 + 39 00 00 00 00 00 02 5B A1 + 39 00 00 00 00 00 02 5C A1 + 39 00 00 00 00 00 02 5D A2 + 39 00 00 00 00 00 02 5E A2 + 39 00 00 00 00 00 02 5F A2 + 39 00 00 00 00 00 02 60 A2 + 39 00 00 00 00 00 02 61 A2 + 39 00 00 00 00 00 02 62 A2 + 39 00 00 00 00 00 02 63 A3 + 39 00 00 00 00 00 02 64 A3 + 39 00 00 00 00 00 02 65 A3 + 39 00 00 00 00 00 02 66 A3 + 39 00 00 00 00 00 02 67 A3 + 39 00 00 00 00 00 02 68 A4 + 39 00 00 00 00 00 02 69 A4 + 39 00 00 00 00 00 02 6A A4 + 39 00 00 00 00 00 02 6B A5 + 39 00 00 00 00 00 02 6C A5 + 39 00 00 00 00 00 02 6D A5 + 39 00 00 00 00 00 02 6E A6 + 39 00 00 00 00 00 02 6F A6 + 39 00 00 00 00 00 02 70 A6 + 39 00 00 00 00 00 02 71 A6 + 39 00 00 00 00 00 02 72 A7 + 39 00 00 00 00 00 02 73 A7 + 39 00 00 00 00 00 02 74 A7 + 39 00 00 00 00 00 02 75 A8 + 39 00 00 00 00 00 02 76 A8 + 39 00 00 00 00 00 02 77 A8 + 39 00 00 00 00 00 02 78 A8 + 39 00 00 00 00 00 02 79 A9 + 39 00 00 00 00 00 02 7A A9 + 39 00 00 00 00 00 02 7B AA + 39 00 00 00 00 00 02 7C AA + 39 00 00 00 00 00 02 7D AA + 39 00 00 00 00 00 02 7E AB + 39 00 00 00 00 00 02 7F AC + + 39 00 00 00 00 00 04 FF 98 81 09 + 39 00 00 00 00 00 02 01 83 + 39 00 00 00 00 00 02 02 84 + 39 00 00 00 00 00 02 03 84 + 39 00 00 00 00 00 02 04 83 + 39 00 00 00 00 00 02 05 83 + 39 00 00 00 00 00 02 06 83 + 39 00 00 00 00 00 02 07 83 + 39 00 00 00 00 00 02 08 84 + 39 00 00 00 00 00 02 09 85 + 39 00 00 00 00 00 02 0A 85 + 39 00 00 00 00 00 02 0B 86 + 39 00 00 00 00 00 02 0C 86 + 39 00 00 00 00 00 02 0D 87 + 39 00 00 00 00 00 02 0E 88 + 39 00 00 00 00 00 02 0F 88 + 39 00 00 00 00 00 02 10 89 + 39 00 00 00 00 00 02 11 89 + 39 00 00 00 00 00 02 12 8A + 39 00 00 00 00 00 02 13 8B + 39 00 00 00 00 00 02 14 8B + 39 00 00 00 00 00 02 15 8B + 39 00 00 00 00 00 02 16 8C + 39 00 00 00 00 00 02 17 8D + 39 00 00 00 00 00 02 18 8D + 39 00 00 00 00 00 02 19 8E + 39 00 00 00 00 00 02 1A 8F + 39 00 00 00 00 00 02 1B 8F + 39 00 00 00 00 00 02 1C 90 + 39 00 00 00 00 00 02 1D 90 + 39 00 00 00 00 00 02 1E 90 + 39 00 00 00 00 00 02 1F 91 + 39 00 00 00 00 00 02 20 6F + 39 00 00 00 00 00 02 21 6F + 39 00 00 00 00 00 02 22 6E + 39 00 00 00 00 00 02 23 6E + 39 00 00 00 00 00 02 24 6E + 39 00 00 00 00 00 02 25 6D + 39 00 00 00 00 00 02 26 6C + 39 00 00 00 00 00 02 27 6B + 39 00 00 00 00 00 02 28 6B + 39 00 00 00 00 00 02 29 6A + 39 00 00 00 00 00 02 2A 6A + 39 00 00 00 00 00 02 2B 6B + 39 00 00 00 00 00 02 2C 6C + 39 00 00 00 00 00 02 2D 6C + 39 00 00 00 00 00 02 2E 6B + 39 00 00 00 00 00 02 2F 6A + 39 00 00 00 00 00 02 30 69 + 39 00 00 00 00 00 02 31 68 + 39 00 00 00 00 00 02 32 67 + 39 00 00 00 00 00 02 33 67 + 39 00 00 00 00 00 02 34 66 + 39 00 00 00 00 00 02 35 65 + 39 00 00 00 00 00 02 36 64 + 39 00 00 00 00 00 02 37 63 + 39 00 00 00 00 00 02 38 63 + 39 00 00 00 00 00 02 39 62 + 39 00 00 00 00 00 02 3A 61 + 39 00 00 00 00 00 02 3B 60 + 39 00 00 00 00 00 02 3C 5F + 39 00 00 00 00 00 02 3D 5E + 39 00 00 00 00 00 02 3E 5E + 39 00 00 00 00 00 02 3F 5E + 39 00 00 00 00 00 02 40 5E + 39 00 00 00 00 00 02 41 5F + 39 00 00 00 00 00 02 42 5F + 39 00 00 00 00 00 02 43 5E + 39 00 00 00 00 00 02 44 5D + 39 00 00 00 00 00 02 45 5D + 39 00 00 00 00 00 02 46 5C + 39 00 00 00 00 00 02 47 5B + 39 00 00 00 00 00 02 48 5B + 39 00 00 00 00 00 02 49 5A + 39 00 00 00 00 00 02 4A 5A + 39 00 00 00 00 00 02 4B 59 + 39 00 00 00 00 00 02 4C 59 + 39 00 00 00 00 00 02 4D 58 + 39 00 00 00 00 00 02 4E 57 + 39 00 00 00 00 00 02 4F 57 + 39 00 00 00 00 00 02 50 56 + 39 00 00 00 00 00 02 51 55 + 39 00 00 00 00 00 02 52 55 + 39 00 00 00 00 00 02 53 54 + 39 00 00 00 00 00 02 54 53 + 39 00 00 00 00 00 02 55 52 + 39 00 00 00 00 00 02 56 51 + 39 00 00 00 00 00 02 57 51 + 39 00 00 00 00 00 02 58 50 + 39 00 00 00 00 00 02 59 4F + 39 00 00 00 00 00 02 5A 4E + 39 00 00 00 00 00 02 5B 4D + 39 00 00 00 00 00 02 5C 4C + 39 00 00 00 00 00 02 5D 4B + 39 00 00 00 00 00 02 5E 4A + 39 00 00 00 00 00 02 5F 4A + 39 00 00 00 00 00 02 60 49 + 39 00 00 00 00 00 02 61 49 + 39 00 00 00 00 00 02 62 49 + 39 00 00 00 00 00 02 63 48 + 39 00 00 00 00 00 02 64 48 + 39 00 00 00 00 00 02 65 48 + 39 00 00 00 00 00 02 66 47 + 39 00 00 00 00 00 02 67 47 + 39 00 00 00 00 00 02 68 46 + 39 00 00 00 00 00 02 69 46 + 39 00 00 00 00 00 02 6A 45 + 39 00 00 00 00 00 02 6B 45 + 39 00 00 00 00 00 02 6C 44 + 39 00 00 00 00 00 02 6D 44 + 39 00 00 00 00 00 02 6E 43 + 39 00 00 00 00 00 02 6F 43 + 39 00 00 00 00 00 02 70 42 + 39 00 00 00 00 00 02 71 42 + 39 00 00 00 00 00 02 72 41 + 39 00 00 00 00 00 02 73 41 + 39 00 00 00 00 00 02 74 40 + 39 00 00 00 00 00 02 75 40 + 39 00 00 00 00 00 02 76 3F + 39 00 00 00 00 00 02 77 3F + 39 00 00 00 00 00 02 78 3E + 39 00 00 00 00 00 02 79 3E + 39 00 00 00 00 00 02 7A 3D + 39 00 00 00 00 00 02 7B 3C + 39 00 00 00 00 00 02 7C 3C + 39 00 00 00 00 00 02 7D 3B + 39 00 00 00 00 00 02 7E 3B + 39 00 00 00 00 00 02 7F 3A + 39 01 00 00 00 00 04 FF 98 81 00 + + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 01 81 + 39 00 00 00 00 00 02 02 81 + 39 00 00 00 00 00 02 03 81 + 39 00 00 00 00 00 02 04 81 + 39 00 00 00 00 00 02 05 81 + 39 00 00 00 00 00 02 06 81 + 39 00 00 00 00 00 02 07 81 + 39 00 00 00 00 00 02 08 81 + 39 00 00 00 00 00 02 09 81 + 39 00 00 00 00 00 02 0A 81 + 39 00 00 00 00 00 02 0B 81 + 39 00 00 00 00 00 02 0C 81 + 39 00 00 00 00 00 02 0D 81 + 39 00 00 00 00 00 02 0E 81 + 39 00 00 00 00 00 02 0F 81 + 39 00 00 00 00 00 02 10 81 + 39 00 00 00 00 00 02 11 81 + 39 00 00 00 00 00 02 12 81 + 39 00 00 00 00 00 02 13 82 + 39 00 00 00 00 00 02 14 82 + 39 00 00 00 00 00 02 15 82 + 39 00 00 00 00 00 02 16 83 + 39 00 00 00 00 00 02 17 83 + 39 00 00 00 00 00 02 18 83 + 39 00 00 00 00 00 02 19 84 + 39 00 00 00 00 00 02 1A 84 + 39 00 00 00 00 00 02 1B 84 + 39 00 00 00 00 00 02 1C 84 + 39 00 00 00 00 00 02 1D 84 + 39 00 00 00 00 00 02 1E 84 + 39 00 00 00 00 00 02 1F 84 + 39 00 00 00 00 00 02 20 85 + 39 00 00 00 00 00 02 21 84 + 39 00 00 00 00 00 02 22 84 + 39 00 00 00 00 00 02 23 84 + 39 00 00 00 00 00 02 24 84 + 39 00 00 00 00 00 02 25 85 + 39 00 00 00 00 00 02 26 85 + 39 00 00 00 00 00 02 27 84 + 39 00 00 00 00 00 02 28 84 + 39 00 00 00 00 00 02 29 83 + 39 00 00 00 00 00 02 2A 83 + 39 00 00 00 00 00 02 2B 83 + 39 00 00 00 00 00 02 2C 83 + 39 00 00 00 00 00 02 2D 83 + 39 00 00 00 00 00 02 2E 82 + 39 00 00 00 00 00 02 2F 82 + 39 00 00 00 00 00 02 30 82 + 39 00 00 00 00 00 02 31 83 + 39 00 00 00 00 00 02 32 83 + 39 00 00 00 00 00 02 33 84 + 39 00 00 00 00 00 02 34 85 + 39 00 00 00 00 00 02 35 85 + 39 00 00 00 00 00 02 36 85 + 39 00 00 00 00 00 02 37 86 + 39 00 00 00 00 00 02 38 86 + 39 00 00 00 00 00 02 39 87 + 39 00 00 00 00 00 02 3A 87 + 39 00 00 00 00 00 02 3B 87 + 39 00 00 00 00 00 02 3C 88 + 39 00 00 00 00 00 02 3D 88 + 39 00 00 00 00 00 02 3E 88 + 39 00 00 00 00 00 02 3F 88 + 39 00 00 00 00 00 02 40 88 + 39 00 00 00 00 00 02 41 88 + 39 00 00 00 00 00 02 42 88 + 39 00 00 00 00 00 02 43 88 + 39 00 00 00 00 00 02 44 88 + 39 00 00 00 00 00 02 45 88 + 39 00 00 00 00 00 02 46 88 + 39 00 00 00 00 00 02 47 87 + 39 00 00 00 00 00 02 48 87 + 39 00 00 00 00 00 02 49 87 + 39 00 00 00 00 00 02 4A 86 + 39 00 00 00 00 00 02 4B 86 + 39 00 00 00 00 00 02 4C 85 + 39 00 00 00 00 00 02 4D 86 + 39 00 00 00 00 00 02 4E 86 + 39 00 00 00 00 00 02 4F 86 + 39 00 00 00 00 00 02 50 87 + 39 00 00 00 00 00 02 51 87 + 39 00 00 00 00 00 02 52 87 + 39 00 00 00 00 00 02 53 87 + 39 00 00 00 00 00 02 54 87 + 39 00 00 00 00 00 02 55 87 + 39 00 00 00 00 00 02 56 87 + 39 00 00 00 00 00 02 57 87 + 39 00 00 00 00 00 02 58 87 + 39 00 00 00 00 00 02 59 87 + 39 00 00 00 00 00 02 5A 86 + 39 00 00 00 00 00 02 5B 86 + 39 00 00 00 00 00 02 5C 85 + 39 00 00 00 00 00 02 5D 85 + 39 00 00 00 00 00 02 5E 86 + 39 00 00 00 00 00 02 5F 86 + 39 00 00 00 00 00 02 60 86 + 39 00 00 00 00 00 02 61 87 + 39 00 00 00 00 00 02 62 87 + 39 00 00 00 00 00 02 63 87 + 39 00 00 00 00 00 02 64 86 + 39 00 00 00 00 00 02 65 86 + 39 00 00 00 00 00 02 66 86 + 39 00 00 00 00 00 02 67 86 + 39 00 00 00 00 00 02 68 85 + 39 00 00 00 00 00 02 69 85 + 39 00 00 00 00 00 02 6A 86 + 39 00 00 00 00 00 02 6B 86 + 39 00 00 00 00 00 02 6C 87 + 39 00 00 00 00 00 02 6D 87 + 39 00 00 00 00 00 02 6E 87 + 39 00 00 00 00 00 02 6F 86 + 39 00 00 00 00 00 02 70 86 + 39 00 00 00 00 00 02 71 86 + 39 00 00 00 00 00 02 72 86 + 39 00 00 00 00 00 02 73 86 + 39 00 00 00 00 00 02 74 86 + 39 00 00 00 00 00 02 75 86 + 39 00 00 00 00 00 02 76 85 + 39 00 00 00 00 00 02 77 85 + 39 00 00 00 00 00 02 78 84 + 39 00 00 00 00 00 02 79 85 + 39 00 00 00 00 00 02 7A 85 + 39 00 00 00 00 00 02 7B 85 + 39 00 00 00 00 00 02 7C 84 + 39 00 00 00 00 00 02 7D 85 + 39 00 00 00 00 00 02 7E 86 + 39 00 00 00 00 00 02 7F 85 + + 39 00 00 00 00 00 04 FF 98 81 08 + 39 00 00 00 00 00 02 01 AD + 39 00 00 00 00 00 02 02 AE + 39 00 00 00 00 00 02 03 AE + 39 00 00 00 00 00 02 04 AF + 39 00 00 00 00 00 02 05 AF + 39 00 00 00 00 00 02 06 B0 + 39 00 00 00 00 00 02 07 B0 + 39 00 00 00 00 00 02 08 B1 + 39 00 00 00 00 00 02 09 B1 + 39 00 00 00 00 00 02 0A B2 + 39 00 00 00 00 00 02 0B B2 + 39 00 00 00 00 00 02 0C B3 + 39 00 00 00 00 00 02 0D B3 + 39 00 00 00 00 00 02 0E B4 + 39 00 00 00 00 00 02 0F B4 + 39 00 00 00 00 00 02 10 B4 + 39 00 00 00 00 00 02 11 B4 + 39 00 00 00 00 00 02 12 B5 + 39 00 00 00 00 00 02 13 B5 + 39 00 00 00 00 00 02 14 B6 + 39 00 00 00 00 00 02 15 B6 + 39 00 00 00 00 00 02 16 B6 + 39 00 00 00 00 00 02 17 B7 + 39 00 00 00 00 00 02 18 B7 + 39 00 00 00 00 00 02 19 B7 + 39 00 00 00 00 00 02 1A B8 + 39 00 00 00 00 00 02 1B B8 + 39 00 00 00 00 00 02 1C B8 + 39 00 00 00 00 00 02 1D B8 + 39 00 00 00 00 00 02 1E B8 + 39 00 00 00 00 00 02 1F B8 + 39 00 00 00 00 00 02 20 B9 + 39 00 00 00 00 00 02 21 BA + 39 00 00 00 00 00 02 22 BA + 39 00 00 00 00 00 02 23 BB + 39 00 00 00 00 00 02 24 BC + 39 00 00 00 00 00 02 25 BC + 39 00 00 00 00 00 02 26 BD + 39 00 00 00 00 00 02 27 BD + 39 00 00 00 00 00 02 28 BE + 39 00 00 00 00 00 02 29 BE + 39 00 00 00 00 00 02 2A BF + 39 00 00 00 00 00 02 2B BF + 39 00 00 00 00 00 02 2C BF + 39 00 00 00 00 00 02 2D C0 + 39 00 00 00 00 00 02 2E C0 + 39 00 00 00 00 00 02 2F C0 + 39 00 00 00 00 00 02 30 C1 + 39 00 00 00 00 00 02 31 C1 + 39 00 00 00 00 00 02 32 C1 + 39 00 00 00 00 00 02 33 C1 + 39 00 00 00 00 00 02 34 C2 + 39 00 00 00 00 00 02 35 C3 + 39 00 00 00 00 00 02 36 C2 + 39 00 00 00 00 00 02 37 C2 + 39 00 00 00 00 00 02 38 C2 + 39 00 00 00 00 00 02 39 C2 + 39 00 00 00 00 00 02 3A C2 + 39 00 00 00 00 00 02 3B C3 + 39 00 00 00 00 00 02 3C C3 + 39 00 00 00 00 00 02 3D C3 + 39 00 00 00 00 00 02 3E C3 + 39 00 00 00 00 00 02 3F C2 + 39 00 00 00 00 00 02 40 C3 + 39 00 00 00 00 00 02 41 C4 + 39 00 00 00 00 00 02 42 C4 + 39 00 00 00 00 00 02 43 C5 + 39 00 00 00 00 00 02 44 C6 + 39 00 00 00 00 00 02 45 C7 + 39 00 00 00 00 00 02 46 C7 + 39 00 00 00 00 00 02 47 C8 + 39 00 00 00 00 00 02 48 C9 + 39 00 00 00 00 00 02 49 CA + 39 00 00 00 00 00 02 4A CA + 39 00 00 00 00 00 02 4B CB + 39 00 00 00 00 00 02 4C CC + 39 00 00 00 00 00 02 4D CC + 39 00 00 00 00 00 02 4E CC + 39 00 00 00 00 00 02 4F CD + 39 00 00 00 00 00 02 50 CD + 39 00 00 00 00 00 02 51 CE + 39 00 00 00 00 00 02 52 CE + 39 00 00 00 00 00 02 53 CE + 39 00 00 00 00 00 02 54 CF + 39 00 00 00 00 00 02 55 CF + 39 00 00 00 00 00 02 56 CF + 39 00 00 00 00 00 02 57 CF + 39 00 00 00 00 00 02 58 CF + 39 00 00 00 00 00 02 59 CF + 39 00 00 00 00 00 02 5A CF + 39 00 00 00 00 00 02 5B CF + 39 00 00 00 00 00 02 5C CF + 39 00 00 00 00 00 02 5D CF + 39 00 00 00 00 00 02 5E CF + 39 00 00 00 00 00 02 5F CF + 39 00 00 00 00 00 02 60 CF + 39 00 00 00 00 00 02 61 D0 + 39 00 00 00 00 00 02 62 D1 + 39 00 00 00 00 00 02 63 D1 + 39 00 00 00 00 00 02 64 D2 + 39 00 00 00 00 00 02 65 D2 + 39 00 00 00 00 00 02 66 D3 + 39 00 00 00 00 00 02 67 D3 + 39 00 00 00 00 00 02 68 D3 + 39 00 00 00 00 00 02 69 D3 + 39 00 00 00 00 00 02 6A D4 + 39 00 00 00 00 00 02 6B D4 + 39 00 00 00 00 00 02 6C D4 + 39 00 00 00 00 00 02 6D D4 + 39 00 00 00 00 00 02 6E D4 + 39 00 00 00 00 00 02 6F D3 + 39 00 00 00 00 00 02 70 D4 + 39 00 00 00 00 00 02 71 D4 + 39 00 00 00 00 00 02 72 D5 + 39 00 00 00 00 00 02 73 D5 + 39 00 00 00 00 00 02 74 D6 + 39 00 00 00 00 00 02 75 D6 + 39 00 00 00 00 00 02 76 D7 + 39 00 00 00 00 00 02 77 D7 + 39 00 00 00 00 00 02 78 D7 + 39 00 00 00 00 00 02 79 D8 + 39 00 00 00 00 00 02 7A D8 + 39 00 00 00 00 00 02 7B D8 + 39 00 00 00 00 00 02 7C D8 + 39 00 00 00 00 00 02 7D D8 + 39 00 00 00 00 00 02 7E D8 + 39 00 00 00 00 00 02 7F D9 + + + 39 00 00 00 00 00 04 FF 98 81 0A + 39 00 00 00 00 00 02 01 39 + 39 00 00 00 00 00 02 02 38 + 39 00 00 00 00 00 02 03 38 + 39 00 00 00 00 00 02 04 38 + 39 00 00 00 00 00 02 05 36 + 39 00 00 00 00 00 02 06 35 + 39 00 00 00 00 00 02 07 34 + 39 00 00 00 00 00 02 08 34 + 39 00 00 00 00 00 02 09 33 + 39 00 00 00 00 00 02 0A 32 + 39 00 00 00 00 00 02 0B 31 + 39 00 00 00 00 00 02 0C 30 + 39 00 00 00 00 00 02 0D 30 + 39 00 00 00 00 00 02 0E 2F + 39 00 00 00 00 00 02 0F 2E + 39 00 00 00 00 00 02 10 2D + 39 00 00 00 00 00 02 11 2D + 39 00 00 00 00 00 02 12 2C + 39 00 00 00 00 00 02 13 2B + 39 00 00 00 00 00 02 14 2A + 39 00 00 00 00 00 02 15 2A + 39 00 00 00 00 00 02 16 29 + 39 00 00 00 00 00 02 17 28 + 39 00 00 00 00 00 02 18 28 + 39 00 00 00 00 00 02 19 27 + 39 00 00 00 00 00 02 1A 26 + 39 00 00 00 00 00 02 1B 26 + 39 00 00 00 00 00 02 1C 25 + 39 00 00 00 00 00 02 1D 25 + 39 00 00 00 00 00 02 1E 24 + 39 00 00 00 00 00 02 1F 23 + 39 00 00 00 00 00 02 20 23 + 39 00 00 00 00 00 02 21 22 + 39 00 00 00 00 00 02 22 21 + 39 00 00 00 00 00 02 23 21 + 39 00 00 00 00 00 02 24 20 + 39 00 00 00 00 00 02 25 20 + 39 00 00 00 00 00 02 26 20 + 39 00 00 00 00 00 02 27 1F + 39 00 00 00 00 00 02 28 1F + 39 00 00 00 00 00 02 29 1E + 39 00 00 00 00 00 02 2A 1D + 39 00 00 00 00 00 02 2B 1C + 39 00 00 00 00 00 02 2C 1B + 39 00 00 00 00 00 02 2D 1A + 39 00 00 00 00 00 02 2E 1A + 39 00 00 00 00 00 02 2F 19 + 39 00 00 00 00 00 02 30 18 + 39 00 00 00 00 00 02 31 17 + 39 00 00 00 00 00 02 32 16 + 39 00 00 00 00 00 02 33 16 + 39 00 00 00 00 00 02 34 15 + 39 00 00 00 00 00 02 35 14 + 39 00 00 00 00 00 02 36 13 + 39 00 00 00 00 00 02 37 13 + 39 00 00 00 00 00 02 38 12 + 39 00 00 00 00 00 02 39 11 + 39 00 00 00 00 00 02 3A 11 + 39 00 00 00 00 00 02 3B 10 + 39 00 00 00 00 00 02 3C 0F + 39 00 00 00 00 00 02 3D 0F + 39 00 00 00 00 00 02 3E 0E + 39 00 00 00 00 00 02 3F 0E + 39 00 00 00 00 00 02 40 0D + 39 00 00 00 00 00 02 41 0C + 39 00 00 00 00 00 02 42 0B + 39 00 00 00 00 00 02 43 0B + 39 00 00 00 00 00 02 44 0B + 39 00 00 00 00 00 02 45 0B + 39 00 00 00 00 00 02 46 0A + 39 00 00 00 00 00 02 47 0A + 39 00 00 00 00 00 02 48 09 + 39 00 00 00 00 00 02 49 09 + 39 00 00 00 00 00 02 4A 09 + 39 00 00 00 00 00 02 4B 08 + 39 00 00 00 00 00 02 4C 08 + 39 00 00 00 00 00 02 4D 08 + 39 00 00 00 00 00 02 4E 07 + 39 00 00 00 00 00 02 4F 05 + 39 00 00 00 00 00 02 50 04 + 39 00 00 00 00 00 02 51 03 + 39 00 00 00 00 00 02 52 02 + 39 00 00 00 00 00 02 53 01 + 39 00 00 00 00 00 02 54 00 + 39 00 00 00 00 00 02 55 81 + 39 00 00 00 00 00 02 56 82 + 39 00 00 00 00 00 02 57 83 + 39 00 00 00 00 00 02 58 84 + 39 00 00 00 00 00 02 59 85 + 39 00 00 00 00 00 02 5A 86 + 39 00 00 00 00 00 02 5B 87 + 39 00 00 00 00 00 02 5C 88 + 39 00 00 00 00 00 02 5D 88 + 39 00 00 00 00 00 02 5E 89 + 39 00 00 00 00 00 02 5F 8A + 39 00 00 00 00 00 02 60 8B + 39 00 00 00 00 00 02 61 8B + 39 00 00 00 00 00 02 62 8C + 39 00 00 00 00 00 02 63 8D + 39 00 00 00 00 00 02 64 8E + 39 00 00 00 00 00 02 65 8E + 39 00 00 00 00 00 02 66 8F + 39 00 00 00 00 00 02 67 8F + 39 00 00 00 00 00 02 68 90 + 39 00 00 00 00 00 02 69 90 + 39 00 00 00 00 00 02 6A 91 + 39 00 00 00 00 00 02 6B 91 + 39 00 00 00 00 00 02 6C 91 + 39 00 00 00 00 00 02 6D 92 + 39 00 00 00 00 00 02 6E 92 + 39 00 00 00 00 00 02 6F 92 + 39 00 00 00 00 00 02 70 93 + 39 00 00 00 00 00 02 71 94 + 39 00 00 00 00 00 02 72 95 + 39 00 00 00 00 00 02 73 96 + 39 00 00 00 00 00 02 74 97 + 39 00 00 00 00 00 02 75 98 + 39 00 00 00 00 00 02 76 99 + 39 00 00 00 00 00 02 77 9A + 39 00 00 00 00 00 02 78 9B + 39 00 00 00 00 00 02 79 9B + 39 00 00 00 00 00 02 7A 9C + 39 00 00 00 00 00 02 7B 9D + 39 00 00 00 00 00 02 7C 9E + 39 00 00 00 00 00 02 7D 9E + 39 00 00 00 00 00 02 7E 9F + 39 00 00 00 00 00 02 7F 9F + + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F 00 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F 85 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F AC + 39 00 00 00 00 00 04 FF 98 81 08 + 39 00 00 00 00 00 02 00 AC + 39 00 00 00 00 00 02 7F D9 + 39 00 00 00 00 00 04 FF 98 81 09 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F 3A + 39 00 00 00 00 00 04 FF 98 81 0A + 39 00 00 00 00 00 02 00 3a + 39 00 00 00 00 00 02 7F 9F + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 80 01 + 39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 21 B0 + 39 00 00 00 00 00 02 32 02 + 39 01 00 00 00 00 04 FF 98 81 00 + 39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 21 B2 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 04 FF 98 81 0A + 39 00 00 00 00 00 02 7F 9F + 39 00 00 00 00 00 02 7E 9F + 39 00 00 00 00 00 02 7D 9E + 39 00 00 00 00 00 02 7C 9E + 39 00 00 00 00 00 02 7B 9D + 39 00 00 00 00 00 02 7A 9C + 39 00 00 00 00 00 02 79 9B + 39 00 00 00 00 00 02 78 9B + 39 00 00 00 00 00 02 77 9A + 39 00 00 00 00 00 02 76 99 + 39 00 00 00 00 00 02 75 98 + 39 00 00 00 00 00 02 74 97 + 39 00 00 00 00 00 02 73 96 + 39 00 00 00 00 00 02 72 95 + 39 00 00 00 00 00 02 71 94 + 39 00 00 00 00 00 02 70 93 + 39 00 00 00 00 00 02 6F 92 + 39 00 00 00 00 00 02 6E 92 + 39 00 00 00 00 00 02 6D 92 + 39 00 00 00 00 00 02 6C 91 + 39 00 00 00 00 00 02 6B 91 + 39 00 00 00 00 00 02 6A 91 + 39 00 00 00 00 00 02 69 90 + 39 00 00 00 00 00 02 68 90 + 39 00 00 00 00 00 02 67 8F + 39 00 00 00 00 00 02 66 8F + 39 00 00 00 00 00 02 65 8E + 39 00 00 00 00 00 02 64 8E + 39 00 00 00 00 00 02 63 8D + 39 00 00 00 00 00 02 62 8C + 39 00 00 00 00 00 02 61 8B + 39 00 00 00 00 00 02 60 8B + 39 00 00 00 00 00 02 5F 8A + 39 00 00 00 00 00 02 5E 89 + 39 00 00 00 00 00 02 5D 88 + 39 00 00 00 00 00 02 5C 88 + 39 00 00 00 00 00 02 5B 87 + 39 00 00 00 00 00 02 5A 86 + 39 00 00 00 00 00 02 59 85 + 39 00 00 00 00 00 02 58 84 + 39 00 00 00 00 00 02 57 83 + 39 00 00 00 00 00 02 56 82 + 39 00 00 00 00 00 02 55 81 + 39 00 00 00 00 00 02 54 00 + 39 00 00 00 00 00 02 53 01 + 39 00 00 00 00 00 02 52 02 + 39 00 00 00 00 00 02 51 03 + 39 00 00 00 00 00 02 50 04 + 39 00 00 00 00 00 02 4F 05 + 39 00 00 00 00 00 02 4E 07 + 39 00 00 00 00 00 02 4D 08 + 39 00 00 00 00 00 02 4C 08 + 39 00 00 00 00 00 02 4B 08 + 39 00 00 00 00 00 02 4A 09 + 39 00 00 00 00 00 02 49 09 + 39 00 00 00 00 00 02 48 09 + 39 00 00 00 00 00 02 47 0A + 39 00 00 00 00 00 02 46 0A + 39 00 00 00 00 00 02 45 0B + 39 00 00 00 00 00 02 44 0B + 39 00 00 00 00 00 02 43 0B + 39 00 00 00 00 00 02 42 0B + 39 00 00 00 00 00 02 41 0C + 39 00 00 00 00 00 02 40 0D + 39 00 00 00 00 00 02 3F 0E + 39 00 00 00 00 00 02 3E 0E + 39 00 00 00 00 00 02 3D 0F + 39 00 00 00 00 00 02 3C 0F + 39 00 00 00 00 00 02 3B 10 + 39 00 00 00 00 00 02 3A 11 + 39 00 00 00 00 00 02 39 11 + 39 00 00 00 00 00 02 38 12 + 39 00 00 00 00 00 02 37 13 + 39 00 00 00 00 00 02 36 13 + 39 00 00 00 00 00 02 35 14 + 39 00 00 00 00 00 02 34 15 + 39 00 00 00 00 00 02 33 16 + 39 00 00 00 00 00 02 32 16 + 39 00 00 00 00 00 02 31 17 + 39 00 00 00 00 00 02 30 18 + 39 00 00 00 00 00 02 2F 19 + 39 00 00 00 00 00 02 2E 1A + 39 00 00 00 00 00 02 2D 1A + 39 00 00 00 00 00 02 2C 1B + 39 00 00 00 00 00 02 2B 1C + 39 00 00 00 00 00 02 2A 1D + 39 00 00 00 00 00 02 29 1E + 39 00 00 00 00 00 02 28 1F + 39 00 00 00 00 00 02 27 1F + 39 00 00 00 00 00 02 26 20 + 39 00 00 00 00 00 02 25 20 + 39 00 00 00 00 00 02 24 20 + 39 00 00 00 00 00 02 23 21 + 39 00 00 00 00 00 02 22 21 + 39 00 00 00 00 00 02 21 22 + 39 00 00 00 00 00 02 20 23 + 39 00 00 00 00 00 02 1F 23 + 39 00 00 00 00 00 02 1E 24 + 39 00 00 00 00 00 02 1D 25 + 39 00 00 00 00 00 02 1C 25 + 39 00 00 00 00 00 02 1B 26 + 39 00 00 00 00 00 02 1A 26 + 39 00 00 00 00 00 02 19 27 + 39 00 00 00 00 00 02 18 28 + 39 00 00 00 00 00 02 17 28 + 39 00 00 00 00 00 02 16 29 + 39 00 00 00 00 00 02 15 2A + 39 00 00 00 00 00 02 14 2A + 39 00 00 00 00 00 02 13 2B + 39 00 00 00 00 00 02 12 2C + 39 00 00 00 00 00 02 11 2D + 39 00 00 00 00 00 02 10 2D + 39 00 00 00 00 00 02 0F 2E + 39 00 00 00 00 00 02 0E 2F + 39 00 00 00 00 00 02 0D 30 + 39 00 00 00 00 00 02 0C 30 + 39 00 00 00 00 00 02 0B 31 + 39 00 00 00 00 00 02 0A 32 + 39 00 00 00 00 00 02 09 33 + 39 00 00 00 00 00 02 08 34 + 39 00 00 00 00 00 02 07 34 + 39 00 00 00 00 00 02 06 35 + 39 00 00 00 00 00 02 05 36 + 39 00 00 00 00 00 02 04 38 + 39 00 00 00 00 00 02 03 38 + 39 00 00 00 00 00 02 02 38 + 39 00 00 00 00 00 02 01 39 + + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 7F 85 + 39 00 00 00 00 00 02 7E 86 + 39 00 00 00 00 00 02 7D 85 + 39 00 00 00 00 00 02 7C 84 + 39 00 00 00 00 00 02 7B 85 + 39 00 00 00 00 00 02 7A 85 + 39 00 00 00 00 00 02 79 85 + 39 00 00 00 00 00 02 78 84 + 39 00 00 00 00 00 02 77 85 + 39 00 00 00 00 00 02 76 85 + 39 00 00 00 00 00 02 75 86 + 39 00 00 00 00 00 02 74 86 + 39 00 00 00 00 00 02 73 86 + 39 00 00 00 00 00 02 72 86 + 39 00 00 00 00 00 02 71 86 + 39 00 00 00 00 00 02 70 86 + 39 00 00 00 00 00 02 6F 86 + 39 00 00 00 00 00 02 6E 87 + 39 00 00 00 00 00 02 6D 87 + 39 00 00 00 00 00 02 6C 87 + 39 00 00 00 00 00 02 6B 86 + 39 00 00 00 00 00 02 6A 86 + 39 00 00 00 00 00 02 69 85 + 39 00 00 00 00 00 02 68 85 + 39 00 00 00 00 00 02 67 86 + 39 00 00 00 00 00 02 66 86 + 39 00 00 00 00 00 02 65 86 + 39 00 00 00 00 00 02 64 86 + 39 00 00 00 00 00 02 63 87 + 39 00 00 00 00 00 02 62 87 + 39 00 00 00 00 00 02 61 87 + 39 00 00 00 00 00 02 60 86 + 39 00 00 00 00 00 02 5F 86 + 39 00 00 00 00 00 02 5E 86 + 39 00 00 00 00 00 02 5D 85 + 39 00 00 00 00 00 02 5C 85 + 39 00 00 00 00 00 02 5B 86 + 39 00 00 00 00 00 02 5A 86 + 39 00 00 00 00 00 02 59 87 + 39 00 00 00 00 00 02 58 87 + 39 00 00 00 00 00 02 57 87 + 39 00 00 00 00 00 02 56 87 + 39 00 00 00 00 00 02 55 87 + 39 00 00 00 00 00 02 54 87 + 39 00 00 00 00 00 02 53 87 + 39 00 00 00 00 00 02 52 87 + 39 00 00 00 00 00 02 51 87 + 39 00 00 00 00 00 02 50 87 + 39 00 00 00 00 00 02 4F 86 + 39 00 00 00 00 00 02 4E 86 + 39 00 00 00 00 00 02 4D 86 + 39 00 00 00 00 00 02 4C 85 + 39 00 00 00 00 00 02 4B 86 + 39 00 00 00 00 00 02 4A 86 + 39 00 00 00 00 00 02 49 87 + 39 00 00 00 00 00 02 48 87 + 39 00 00 00 00 00 02 47 87 + 39 00 00 00 00 00 02 46 88 + 39 00 00 00 00 00 02 45 88 + 39 00 00 00 00 00 02 44 88 + 39 00 00 00 00 00 02 43 88 + 39 00 00 00 00 00 02 42 88 + 39 00 00 00 00 00 02 41 88 + 39 00 00 00 00 00 02 40 88 + 39 00 00 00 00 00 02 3F 88 + 39 00 00 00 00 00 02 3E 88 + 39 00 00 00 00 00 02 3D 88 + 39 00 00 00 00 00 02 3C 88 + 39 00 00 00 00 00 02 3B 87 + 39 00 00 00 00 00 02 3A 87 + 39 00 00 00 00 00 02 39 87 + 39 00 00 00 00 00 02 38 86 + 39 00 00 00 00 00 02 37 86 + 39 00 00 00 00 00 02 36 85 + 39 00 00 00 00 00 02 35 85 + 39 00 00 00 00 00 02 34 85 + 39 00 00 00 00 00 02 33 84 + 39 00 00 00 00 00 02 32 83 + 39 00 00 00 00 00 02 31 83 + 39 00 00 00 00 00 02 30 82 + 39 00 00 00 00 00 02 2F 82 + 39 00 00 00 00 00 02 2E 82 + 39 00 00 00 00 00 02 2D 83 + 39 00 00 00 00 00 02 2C 83 + 39 00 00 00 00 00 02 2B 83 + 39 00 00 00 00 00 02 2A 83 + 39 00 00 00 00 00 02 29 83 + 39 00 00 00 00 00 02 28 84 + 39 00 00 00 00 00 02 27 84 + 39 00 00 00 00 00 02 26 85 + 39 00 00 00 00 00 02 25 85 + 39 00 00 00 00 00 02 24 84 + 39 00 00 00 00 00 02 23 84 + 39 00 00 00 00 00 02 22 84 + 39 00 00 00 00 00 02 21 84 + 39 00 00 00 00 00 02 20 85 + 39 00 00 00 00 00 02 1F 84 + 39 00 00 00 00 00 02 1E 84 + 39 00 00 00 00 00 02 1D 84 + 39 00 00 00 00 00 02 1C 84 + 39 00 00 00 00 00 02 1B 84 + 39 00 00 00 00 00 02 1A 84 + 39 00 00 00 00 00 02 19 84 + 39 00 00 00 00 00 02 18 83 + 39 00 00 00 00 00 02 17 83 + 39 00 00 00 00 00 02 16 83 + 39 00 00 00 00 00 02 15 82 + 39 00 00 00 00 00 02 14 82 + 39 00 00 00 00 00 02 13 82 + 39 00 00 00 00 00 02 12 81 + 39 00 00 00 00 00 02 11 81 + 39 00 00 00 00 00 02 10 81 + 39 00 00 00 00 00 02 0F 81 + 39 00 00 00 00 00 02 0E 81 + 39 00 00 00 00 00 02 0D 81 + 39 00 00 00 00 00 02 0C 81 + 39 00 00 00 00 00 02 0B 81 + 39 00 00 00 00 00 02 0A 81 + 39 00 00 00 00 00 02 09 81 + 39 00 00 00 00 00 02 08 81 + 39 00 00 00 00 00 02 07 81 + 39 00 00 00 00 00 02 06 81 + 39 00 00 00 00 00 02 05 81 + 39 00 00 00 00 00 02 04 81 + 39 00 00 00 00 00 02 03 81 + 39 00 00 00 00 00 02 02 81 + 39 00 00 00 00 00 02 01 81 + + 39 00 00 00 00 00 04 FF 98 81 08 + 39 00 00 00 00 00 02 7F D9 + 39 00 00 00 00 00 02 7E D8 + 39 00 00 00 00 00 02 7D D8 + 39 00 00 00 00 00 02 7C D8 + 39 00 00 00 00 00 02 7B D8 + 39 00 00 00 00 00 02 7A D8 + 39 00 00 00 00 00 02 79 D8 + 39 00 00 00 00 00 02 78 D7 + 39 00 00 00 00 00 02 77 D7 + 39 00 00 00 00 00 02 76 D7 + 39 00 00 00 00 00 02 75 D6 + 39 00 00 00 00 00 02 74 D6 + 39 00 00 00 00 00 02 73 D5 + 39 00 00 00 00 00 02 72 D5 + 39 00 00 00 00 00 02 71 D4 + 39 00 00 00 00 00 02 70 D4 + 39 00 00 00 00 00 02 6F D3 + 39 00 00 00 00 00 02 6E D4 + 39 00 00 00 00 00 02 6D D4 + 39 00 00 00 00 00 02 6C D4 + 39 00 00 00 00 00 02 6B D4 + 39 00 00 00 00 00 02 6A D4 + 39 00 00 00 00 00 02 69 D3 + 39 00 00 00 00 00 02 68 D3 + 39 00 00 00 00 00 02 67 D3 + 39 00 00 00 00 00 02 66 D3 + 39 00 00 00 00 00 02 65 D2 + 39 00 00 00 00 00 02 64 D2 + 39 00 00 00 00 00 02 63 D1 + 39 00 00 00 00 00 02 62 D1 + 39 00 00 00 00 00 02 61 D0 + 39 00 00 00 00 00 02 60 CF + 39 00 00 00 00 00 02 5F CF + 39 00 00 00 00 00 02 5E CF + 39 00 00 00 00 00 02 5D CF + 39 00 00 00 00 00 02 5C CF + 39 00 00 00 00 00 02 5B CF + 39 00 00 00 00 00 02 5A CF + 39 00 00 00 00 00 02 59 CF + 39 00 00 00 00 00 02 58 CF + 39 00 00 00 00 00 02 57 CF + 39 00 00 00 00 00 02 56 CF + 39 00 00 00 00 00 02 55 CF + 39 00 00 00 00 00 02 54 CF + 39 00 00 00 00 00 02 53 CE + 39 00 00 00 00 00 02 52 CE + 39 00 00 00 00 00 02 51 CE + 39 00 00 00 00 00 02 50 CD + 39 00 00 00 00 00 02 4F CD + 39 00 00 00 00 00 02 4E CC + 39 00 00 00 00 00 02 4D CC + 39 00 00 00 00 00 02 4C CC + 39 00 00 00 00 00 02 4B CB + 39 00 00 00 00 00 02 4A CA + 39 00 00 00 00 00 02 49 CA + 39 00 00 00 00 00 02 48 C9 + 39 00 00 00 00 00 02 47 C8 + 39 00 00 00 00 00 02 46 C7 + 39 00 00 00 00 00 02 45 C7 + 39 00 00 00 00 00 02 44 C6 + 39 00 00 00 00 00 02 43 C5 + 39 00 00 00 00 00 02 42 C4 + 39 00 00 00 00 00 02 41 C4 + 39 00 00 00 00 00 02 40 C3 + 39 00 00 00 00 00 02 3F C2 + 39 00 00 00 00 00 02 3E C3 + 39 00 00 00 00 00 02 3D C3 + 39 00 00 00 00 00 02 3C C3 + 39 00 00 00 00 00 02 3B C3 + 39 00 00 00 00 00 02 3A C2 + 39 00 00 00 00 00 02 39 C2 + 39 00 00 00 00 00 02 38 C2 + 39 00 00 00 00 00 02 37 C2 + 39 00 00 00 00 00 02 36 C2 + 39 00 00 00 00 00 02 35 C3 + 39 00 00 00 00 00 02 34 C2 + 39 00 00 00 00 00 02 33 C1 + 39 00 00 00 00 00 02 32 C1 + 39 00 00 00 00 00 02 31 C1 + 39 00 00 00 00 00 02 30 C1 + 39 00 00 00 00 00 02 2F C0 + 39 00 00 00 00 00 02 2E C0 + 39 00 00 00 00 00 02 2D C0 + 39 00 00 00 00 00 02 2C BF + 39 00 00 00 00 00 02 2B BF + 39 00 00 00 00 00 02 2A BF + 39 00 00 00 00 00 02 29 BE + 39 00 00 00 00 00 02 28 BE + 39 00 00 00 00 00 02 27 BD + 39 00 00 00 00 00 02 26 BD + 39 00 00 00 00 00 02 25 BC + 39 00 00 00 00 00 02 24 BC + 39 00 00 00 00 00 02 23 BB + 39 00 00 00 00 00 02 22 BA + 39 00 00 00 00 00 02 21 BA + 39 00 00 00 00 00 02 20 B9 + 39 00 00 00 00 00 02 1F B8 + 39 00 00 00 00 00 02 1E B8 + 39 00 00 00 00 00 02 1D B8 + 39 00 00 00 00 00 02 1C B8 + 39 00 00 00 00 00 02 1B B8 + 39 00 00 00 00 00 02 1A B8 + 39 00 00 00 00 00 02 19 B7 + 39 00 00 00 00 00 02 18 B7 + 39 00 00 00 00 00 02 17 B7 + 39 00 00 00 00 00 02 16 B6 + 39 00 00 00 00 00 02 15 B6 + 39 00 00 00 00 00 02 14 B6 + 39 00 00 00 00 00 02 13 B5 + 39 00 00 00 00 00 02 12 B5 + 39 00 00 00 00 00 02 11 B4 + 39 00 00 00 00 00 02 10 B4 + 39 00 00 00 00 00 02 0F B4 + 39 00 00 00 00 00 02 0E B4 + 39 00 00 00 00 00 02 0D B3 + 39 00 00 00 00 00 02 0C B3 + 39 00 00 00 00 00 02 0B B2 + 39 00 00 00 00 00 02 0A B2 + 39 00 00 00 00 00 02 09 B1 + 39 00 00 00 00 00 02 08 B1 + 39 00 00 00 00 00 02 07 B0 + 39 00 00 00 00 00 02 06 B0 + 39 00 00 00 00 00 02 05 AF + 39 00 00 00 00 00 02 04 AF + 39 00 00 00 00 00 02 03 AE + 39 00 00 00 00 00 02 02 AE + 39 00 00 00 00 00 02 01 AD + + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F 00 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F 85 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F AC + 39 00 00 00 00 00 04 FF 98 81 08 + 39 00 00 00 00 00 02 00 AC + 39 00 00 00 00 00 02 7F D9 + 39 00 00 00 00 00 04 FF 98 81 09 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F 3A + 39 00 00 00 00 00 04 FF 98 81 0A + 39 00 00 00 00 00 02 00 3a + 39 00 00 00 00 00 02 7F 9F + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 80 01 + 39 01 00 00 00 00 04 FF 98 81 00 + + 39 00 00 00 00 00 04 FF 98 81 09 + 39 00 00 00 00 00 02 7F 3A + 39 00 00 00 00 00 02 7E 3B + 39 00 00 00 00 00 02 7D 3B + 39 00 00 00 00 00 02 7C 3C + 39 00 00 00 00 00 02 7B 3C + 39 00 00 00 00 00 02 7A 3D + 39 00 00 00 00 00 02 79 3E + 39 00 00 00 00 00 02 78 3E + 39 00 00 00 00 00 02 77 3F + 39 00 00 00 00 00 02 76 3F + 39 00 00 00 00 00 02 75 40 + 39 00 00 00 00 00 02 74 40 + 39 00 00 00 00 00 02 73 41 + 39 00 00 00 00 00 02 72 41 + 39 00 00 00 00 00 02 71 42 + 39 00 00 00 00 00 02 70 42 + 39 00 00 00 00 00 02 6F 43 + 39 00 00 00 00 00 02 6E 43 + 39 00 00 00 00 00 02 6D 44 + 39 00 00 00 00 00 02 6C 44 + 39 00 00 00 00 00 02 6B 45 + 39 00 00 00 00 00 02 6A 45 + 39 00 00 00 00 00 02 69 46 + 39 00 00 00 00 00 02 68 46 + 39 00 00 00 00 00 02 67 47 + 39 00 00 00 00 00 02 66 47 + 39 00 00 00 00 00 02 65 48 + 39 00 00 00 00 00 02 64 48 + 39 00 00 00 00 00 02 63 48 + 39 00 00 00 00 00 02 62 49 + 39 00 00 00 00 00 02 61 49 + 39 00 00 00 00 00 02 60 49 + 39 00 00 00 00 00 02 5F 4A + 39 00 00 00 00 00 02 5E 4A + 39 00 00 00 00 00 02 5D 4B + 39 00 00 00 00 00 02 5C 4C + 39 00 00 00 00 00 02 5B 4D + 39 00 00 00 00 00 02 5A 4E + 39 00 00 00 00 00 02 59 4F + 39 00 00 00 00 00 02 58 50 + 39 00 00 00 00 00 02 57 51 + 39 00 00 00 00 00 02 56 51 + 39 00 00 00 00 00 02 55 52 + 39 00 00 00 00 00 02 54 53 + 39 00 00 00 00 00 02 53 54 + 39 00 00 00 00 00 02 52 55 + 39 00 00 00 00 00 02 51 55 + 39 00 00 00 00 00 02 50 56 + 39 00 00 00 00 00 02 4F 57 + 39 00 00 00 00 00 02 4E 57 + 39 00 00 00 00 00 02 4D 58 + 39 00 00 00 00 00 02 4C 59 + 39 00 00 00 00 00 02 4B 59 + 39 00 00 00 00 00 02 4A 5A + 39 00 00 00 00 00 02 49 5A + 39 00 00 00 00 00 02 48 5B + 39 00 00 00 00 00 02 47 5B + 39 00 00 00 00 00 02 46 5C + 39 00 00 00 00 00 02 45 5D + 39 00 00 00 00 00 02 44 5D + 39 00 00 00 00 00 02 43 5E + 39 00 00 00 00 00 02 42 5F + 39 00 00 00 00 00 02 41 5F + 39 00 00 00 00 00 02 40 5E + 39 00 00 00 00 00 02 3F 5E + 39 00 00 00 00 00 02 3E 5E + 39 00 00 00 00 00 02 3D 5E + 39 00 00 00 00 00 02 3C 5F + 39 00 00 00 00 00 02 3B 60 + 39 00 00 00 00 00 02 3A 61 + 39 00 00 00 00 00 02 39 62 + 39 00 00 00 00 00 02 38 63 + 39 00 00 00 00 00 02 37 63 + 39 00 00 00 00 00 02 36 64 + 39 00 00 00 00 00 02 35 65 + 39 00 00 00 00 00 02 34 66 + 39 00 00 00 00 00 02 33 67 + 39 00 00 00 00 00 02 32 67 + 39 00 00 00 00 00 02 31 68 + 39 00 00 00 00 00 02 30 69 + 39 00 00 00 00 00 02 2F 6A + 39 00 00 00 00 00 02 2E 6B + 39 00 00 00 00 00 02 2D 6C + 39 00 00 00 00 00 02 2C 6C + 39 00 00 00 00 00 02 2B 6B + 39 00 00 00 00 00 02 2A 6A + 39 00 00 00 00 00 02 29 6A + 39 00 00 00 00 00 02 28 6B + 39 00 00 00 00 00 02 27 6B + 39 00 00 00 00 00 02 26 6C + 39 00 00 00 00 00 02 25 6D + 39 00 00 00 00 00 02 24 6E + 39 00 00 00 00 00 02 23 6E + 39 00 00 00 00 00 02 22 6E + 39 00 00 00 00 00 02 21 6F + 39 00 00 00 00 00 02 20 6F + 39 00 00 00 00 00 02 1F 91 + 39 00 00 00 00 00 02 1E 90 + 39 00 00 00 00 00 02 1D 90 + 39 00 00 00 00 00 02 1C 90 + 39 00 00 00 00 00 02 1B 8F + 39 00 00 00 00 00 02 1A 8F + 39 00 00 00 00 00 02 19 8E + 39 00 00 00 00 00 02 18 8D + 39 00 00 00 00 00 02 17 8D + 39 00 00 00 00 00 02 16 8C + 39 00 00 00 00 00 02 15 8B + 39 00 00 00 00 00 02 14 8B + 39 00 00 00 00 00 02 13 8B + 39 00 00 00 00 00 02 12 8A + 39 00 00 00 00 00 02 11 89 + 39 00 00 00 00 00 02 10 89 + 39 00 00 00 00 00 02 0F 88 + 39 00 00 00 00 00 02 0E 88 + 39 00 00 00 00 00 02 0D 87 + 39 00 00 00 00 00 02 0C 86 + 39 00 00 00 00 00 02 0B 86 + 39 00 00 00 00 00 02 0A 85 + 39 00 00 00 00 00 02 09 85 + 39 00 00 00 00 00 02 08 84 + 39 00 00 00 00 00 02 07 83 + 39 00 00 00 00 00 02 06 83 + 39 00 00 00 00 00 02 05 83 + 39 00 00 00 00 00 02 04 83 + 39 00 00 00 00 00 02 03 84 + 39 00 00 00 00 00 02 02 84 + 39 00 00 00 00 00 02 01 83 + + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 7F 00 + 39 00 00 00 00 00 02 7E 00 + 39 00 00 00 00 00 02 7D 00 + 39 00 00 00 00 00 02 7C 00 + 39 00 00 00 00 00 02 7B 01 + 39 00 00 00 00 00 02 7A 01 + 39 00 00 00 00 00 02 79 01 + 39 00 00 00 00 00 02 78 01 + 39 00 00 00 00 00 02 77 02 + 39 00 00 00 00 00 02 76 02 + 39 00 00 00 00 00 02 75 02 + 39 00 00 00 00 00 02 74 02 + 39 00 00 00 00 00 02 73 03 + 39 00 00 00 00 00 02 72 03 + 39 00 00 00 00 00 02 71 04 + 39 00 00 00 00 00 02 70 04 + 39 00 00 00 00 00 02 6F 04 + 39 00 00 00 00 00 02 6E 04 + 39 00 00 00 00 00 02 6D 04 + 39 00 00 00 00 00 02 6C 04 + 39 00 00 00 00 00 02 6B 04 + 39 00 00 00 00 00 02 6A 04 + 39 00 00 00 00 00 02 69 04 + 39 00 00 00 00 00 02 68 04 + 39 00 00 00 00 00 02 67 04 + 39 00 00 00 00 00 02 66 04 + 39 00 00 00 00 00 02 65 04 + 39 00 00 00 00 00 02 64 04 + 39 00 00 00 00 00 02 63 04 + 39 00 00 00 00 00 02 62 04 + 39 00 00 00 00 00 02 61 04 + 39 00 00 00 00 00 02 60 04 + 39 00 00 00 00 00 02 5F 04 + 39 00 00 00 00 00 02 5E 04 + 39 00 00 00 00 00 02 5D 04 + 39 00 00 00 00 00 02 5C 04 + 39 00 00 00 00 00 02 5B 04 + 39 00 00 00 00 00 02 5A 04 + 39 00 00 00 00 00 02 59 04 + 39 00 00 00 00 00 02 58 04 + 39 00 00 00 00 00 02 57 04 + 39 00 00 00 00 00 02 56 04 + 39 00 00 00 00 00 02 55 03 + 39 00 00 00 00 00 02 54 03 + 39 00 00 00 00 00 02 53 03 + 39 00 00 00 00 00 02 52 03 + 39 00 00 00 00 00 02 51 02 + 39 00 00 00 00 00 02 50 03 + 39 00 00 00 00 00 02 4F 03 + 39 00 00 00 00 00 02 4E 04 + 39 00 00 00 00 00 02 4D 04 + 39 00 00 00 00 00 02 4C 04 + 39 00 00 00 00 00 02 4B 04 + 39 00 00 00 00 00 02 4A 05 + 39 00 00 00 00 00 02 49 05 + 39 00 00 00 00 00 02 48 06 + 39 00 00 00 00 00 02 47 06 + 39 00 00 00 00 00 02 46 06 + 39 00 00 00 00 00 02 45 06 + 39 00 00 00 00 00 02 44 06 + 39 00 00 00 00 00 02 43 07 + 39 00 00 00 00 00 02 42 07 + 39 00 00 00 00 00 02 41 07 + 39 00 00 00 00 00 02 40 07 + 39 00 00 00 00 00 02 3F 07 + 39 00 00 00 00 00 02 3E 07 + 39 00 00 00 00 00 02 3D 07 + 39 00 00 00 00 00 02 3C 07 + 39 00 00 00 00 00 02 3B 07 + 39 00 00 00 00 00 02 3A 07 + 39 00 00 00 00 00 02 39 07 + 39 00 00 00 00 00 02 38 07 + 39 00 00 00 00 00 02 37 07 + 39 00 00 00 00 00 02 36 05 + 39 00 00 00 00 00 02 35 05 + 39 00 00 00 00 00 02 34 04 + 39 00 00 00 00 00 02 33 04 + 39 00 00 00 00 00 02 32 05 + 39 00 00 00 00 00 02 31 05 + 39 00 00 00 00 00 02 30 06 + 39 00 00 00 00 00 02 2F 06 + 39 00 00 00 00 00 02 2E 06 + 39 00 00 00 00 00 02 2D 06 + 39 00 00 00 00 00 02 2C 07 + 39 00 00 00 00 00 02 2B 07 + 39 00 00 00 00 00 02 2A 07 + 39 00 00 00 00 00 02 29 07 + 39 00 00 00 00 00 02 28 07 + 39 00 00 00 00 00 02 27 08 + 39 00 00 00 00 00 02 26 08 + 39 00 00 00 00 00 02 25 09 + 39 00 00 00 00 00 02 24 07 + 39 00 00 00 00 00 02 23 04 + 39 00 00 00 00 00 02 22 05 + 39 00 00 00 00 00 02 21 05 + 39 00 00 00 00 00 02 20 05 + 39 00 00 00 00 00 02 1F 05 + 39 00 00 00 00 00 02 1E 05 + 39 00 00 00 00 00 02 1D 05 + 39 00 00 00 00 00 02 1C 05 + 39 00 00 00 00 00 02 1B 04 + 39 00 00 00 00 00 02 1A 04 + 39 00 00 00 00 00 02 19 04 + 39 00 00 00 00 00 02 18 04 + 39 00 00 00 00 00 02 17 03 + 39 00 00 00 00 00 02 16 03 + 39 00 00 00 00 00 02 15 03 + 39 00 00 00 00 00 02 14 04 + 39 00 00 00 00 00 02 13 04 + 39 00 00 00 00 00 02 12 04 + 39 00 00 00 00 00 02 11 04 + 39 00 00 00 00 00 02 10 03 + 39 00 00 00 00 00 02 0F 03 + 39 00 00 00 00 00 02 0E 03 + 39 00 00 00 00 00 02 0D 04 + 39 00 00 00 00 00 02 0C 03 + 39 00 00 00 00 00 02 0B 03 + 39 00 00 00 00 00 02 0A 04 + 39 00 00 00 00 00 02 09 04 + 39 00 00 00 00 00 02 08 04 + 39 00 00 00 00 00 02 07 03 + 39 00 00 00 00 00 02 06 03 + 39 00 00 00 00 00 02 05 04 + 39 00 00 00 00 00 02 04 03 + 39 00 00 00 00 00 02 03 01 + 39 00 00 00 00 00 02 02 81 + 39 00 00 00 00 00 02 01 82 + + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 D3 39 + 39 00 00 00 00 00 02 D2 67 + 39 00 00 00 00 00 02 D1 58 + 39 00 00 00 00 00 02 D0 29 + 39 00 00 00 00 00 02 CF 24 + 39 00 00 00 00 00 02 CE 50 + 39 00 00 00 00 00 02 CD 1C + 39 00 00 00 00 00 02 CC 1D + 39 00 00 00 00 00 02 CB 8F + 39 00 00 00 00 00 02 CA 2A + 39 00 00 00 00 00 02 C9 1D + 39 00 00 00 00 00 02 C8 9D + 39 00 00 00 00 00 02 C7 1F + 39 00 00 00 00 00 02 C6 1D + 39 00 00 00 00 00 02 C5 29 + 39 00 00 00 00 00 02 C4 16 + 39 00 00 00 00 00 02 C3 13 + 39 00 00 00 00 00 02 C2 2D + 39 00 00 00 00 00 02 C1 1D + 39 00 00 00 00 00 02 C0 00 + + 39 00 00 00 00 00 02 B3 39 + 39 00 00 00 00 00 02 B2 68 + 39 00 00 00 00 00 02 B1 59 + 39 00 00 00 00 00 02 B0 28 + 39 00 00 00 00 00 02 AF 23 + 39 00 00 00 00 00 02 AE 4F + 39 00 00 00 00 00 02 AD 1C + 39 00 00 00 00 00 02 AC 1D + 39 00 00 00 00 00 02 AB 90 + 39 00 00 00 00 00 02 AA 2A + 39 00 00 00 00 00 02 A9 1D + 39 00 00 00 00 00 02 A8 9E + 39 00 00 00 00 00 02 A7 1E + 39 00 00 00 00 00 02 A6 1D + 39 00 00 00 00 00 02 A5 29 + 39 00 00 00 00 00 02 A4 15 + 39 00 00 00 00 00 02 A3 12 + 39 00 00 00 00 00 02 A2 2E + 39 00 00 00 00 00 02 A1 1E + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 f6 02 + + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 7F AC + 39 00 00 00 00 00 02 7E AB + 39 00 00 00 00 00 02 7D AA + 39 00 00 00 00 00 02 7C AA + 39 00 00 00 00 00 02 7B AA + 39 00 00 00 00 00 02 7A A9 + 39 00 00 00 00 00 02 79 A9 + 39 00 00 00 00 00 02 78 A8 + 39 00 00 00 00 00 02 77 A8 + 39 00 00 00 00 00 02 76 A8 + 39 00 00 00 00 00 02 75 A8 + 39 00 00 00 00 00 02 74 A7 + 39 00 00 00 00 00 02 73 A7 + 39 00 00 00 00 00 02 72 A7 + 39 00 00 00 00 00 02 71 A6 + 39 00 00 00 00 00 02 70 A6 + 39 00 00 00 00 00 02 6F A6 + 39 00 00 00 00 00 02 6E A6 + 39 00 00 00 00 00 02 6D A5 + 39 00 00 00 00 00 02 6C A5 + 39 00 00 00 00 00 02 6B A5 + 39 00 00 00 00 00 02 6A A4 + 39 00 00 00 00 00 02 69 A4 + 39 00 00 00 00 00 02 68 A4 + 39 00 00 00 00 00 02 67 A3 + 39 00 00 00 00 00 02 66 A3 + 39 00 00 00 00 00 02 65 A3 + 39 00 00 00 00 00 02 64 A3 + 39 00 00 00 00 00 02 63 A3 + 39 00 00 00 00 00 02 62 A2 + 39 00 00 00 00 00 02 61 A2 + 39 00 00 00 00 00 02 60 A2 + 39 00 00 00 00 00 02 5F A2 + 39 00 00 00 00 00 02 5E A2 + 39 00 00 00 00 00 02 5D A2 + 39 00 00 00 00 00 02 5C A1 + 39 00 00 00 00 00 02 5B A1 + 39 00 00 00 00 00 02 5A A1 + 39 00 00 00 00 00 02 59 A1 + 39 00 00 00 00 00 02 58 A0 + 39 00 00 00 00 00 02 57 9F + 39 00 00 00 00 00 02 56 9F + 39 00 00 00 00 00 02 55 9E + 39 00 00 00 00 00 02 54 9E + 39 00 00 00 00 00 02 53 9D + 39 00 00 00 00 00 02 52 9C + 39 00 00 00 00 00 02 51 9C + 39 00 00 00 00 00 02 50 9B + 39 00 00 00 00 00 02 4F 9A + 39 00 00 00 00 00 02 4E 9A + 39 00 00 00 00 00 02 4D 99 + 39 00 00 00 00 00 02 4C 99 + 39 00 00 00 00 00 02 4B 98 + 39 00 00 00 00 00 02 4A 98 + 39 00 00 00 00 00 02 49 97 + 39 00 00 00 00 00 02 48 97 + 39 00 00 00 00 00 02 47 96 + 39 00 00 00 00 00 02 46 96 + 39 00 00 00 00 00 02 45 96 + 39 00 00 00 00 00 02 44 96 + 39 00 00 00 00 00 02 43 95 + 39 00 00 00 00 00 02 42 95 + 39 00 00 00 00 00 02 41 94 + 39 00 00 00 00 00 02 40 94 + 39 00 00 00 00 00 02 3F 93 + 39 00 00 00 00 00 02 3E 93 + 39 00 00 00 00 00 02 3D 94 + 39 00 00 00 00 00 02 3C 95 + 39 00 00 00 00 00 02 3B 95 + 39 00 00 00 00 00 02 3A 94 + 39 00 00 00 00 00 02 39 94 + 39 00 00 00 00 00 02 38 93 + 39 00 00 00 00 00 02 37 93 + 39 00 00 00 00 00 02 36 92 + 39 00 00 00 00 00 02 35 91 + 39 00 00 00 00 00 02 34 91 + 39 00 00 00 00 00 02 33 90 + 39 00 00 00 00 00 02 32 8F + 39 00 00 00 00 00 02 31 8F + 39 00 00 00 00 00 02 30 8E + 39 00 00 00 00 00 02 2F 8E + 39 00 00 00 00 00 02 2E 8E + 39 00 00 00 00 00 02 2D 8D + 39 00 00 00 00 00 02 2C 8C + 39 00 00 00 00 00 02 2B 8B + 39 00 00 00 00 00 02 2A 8A + 39 00 00 00 00 00 02 29 8B + 39 00 00 00 00 00 02 28 8D + 39 00 00 00 00 00 02 27 8E + 39 00 00 00 00 00 02 26 8D + 39 00 00 00 00 00 02 25 8C + 39 00 00 00 00 00 02 24 8C + 39 00 00 00 00 00 02 23 8B + 39 00 00 00 00 00 02 22 8B + 39 00 00 00 00 00 02 21 8A + 39 00 00 00 00 00 02 20 8A + 39 00 00 00 00 00 02 1F 8A + 39 00 00 00 00 00 02 1E 8A + 39 00 00 00 00 00 02 1D 8A + 39 00 00 00 00 00 02 1C 8A + 39 00 00 00 00 00 02 1B 8A + 39 00 00 00 00 00 02 1A 8A + 39 00 00 00 00 00 02 19 89 + 39 00 00 00 00 00 02 18 89 + 39 00 00 00 00 00 02 17 88 + 39 00 00 00 00 00 02 16 88 + 39 00 00 00 00 00 02 15 87 + 39 00 00 00 00 00 02 14 87 + 39 00 00 00 00 00 02 13 87 + 39 00 00 00 00 00 02 12 87 + 39 00 00 00 00 00 02 11 86 + 39 00 00 00 00 00 02 10 86 + 39 00 00 00 00 00 02 0F 85 + 39 00 00 00 00 00 02 0E 85 + 39 00 00 00 00 00 02 0D 85 + 39 00 00 00 00 00 02 0C 84 + 39 00 00 00 00 00 02 0B 84 + 39 00 00 00 00 00 02 0A 83 + 39 00 00 00 00 00 02 09 83 + 39 00 00 00 00 00 02 08 83 + 39 00 00 00 00 00 02 07 82 + 39 00 00 00 00 00 02 06 82 + 39 00 00 00 00 00 02 05 82 + 39 00 00 00 00 00 02 04 82 + 39 00 00 00 00 00 02 03 83 + 39 00 00 00 00 00 02 02 83 + 39 00 00 00 00 00 02 01 83 + 39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 21 B0 + 39 00 00 00 00 00 02 32 02 + 39 01 00 00 00 00 04 FF 98 81 00 + ]; + + qcom,mdss-dsi-panel-eye-command08= [39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 21 B2 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 f6 03 + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 A1 1C + 39 00 00 00 00 00 02 A2 2B + 39 00 00 00 00 00 02 A3 13 + 39 00 00 00 00 00 02 A4 16 + 39 00 00 00 00 00 02 A5 29 + 39 00 00 00 00 00 02 A6 1D + 39 00 00 00 00 00 02 A7 1E + 39 00 00 00 00 00 02 A8 94 + 39 00 00 00 00 00 02 A9 1E + 39 00 00 00 00 00 02 AA 2A + 39 00 00 00 00 00 02 AB 86 + 39 00 00 00 00 00 02 AC 1C + 39 00 00 00 00 00 02 AD 1A + 39 00 00 00 00 00 02 AE 4E + 39 00 00 00 00 00 02 AF 22 + 39 00 00 00 00 00 02 B0 26 + 39 00 00 00 00 00 02 B1 51 + 39 00 00 00 00 00 02 B2 60 + 39 00 00 00 00 00 02 B3 39 + + 39 00 00 00 00 00 02 C0 00 + 39 00 00 00 00 00 02 C1 1B + 39 00 00 00 00 00 02 C2 2A + 39 00 00 00 00 00 02 C3 14 + 39 00 00 00 00 00 02 C4 16 + 39 00 00 00 00 00 02 C5 29 + 39 00 00 00 00 00 02 C6 1D + 39 00 00 00 00 00 02 C7 1F + 39 00 00 00 00 00 02 C8 93 + 39 00 00 00 00 00 02 C9 1E + 39 00 00 00 00 00 02 CA 2A + 39 00 00 00 00 00 02 CB 85 + 39 00 00 00 00 00 02 CC 1D + 39 00 00 00 00 00 02 CD 1B + 39 00 00 00 00 00 02 CE 4E + 39 00 00 00 00 00 02 CF 23 + 39 00 00 00 00 00 02 D0 27 + 39 00 00 00 00 00 02 D1 50 + 39 00 00 00 00 00 02 D2 5F + 39 00 00 00 00 00 02 D3 39 + + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 01 00 + 39 00 00 00 00 00 02 02 01 + 39 00 00 00 00 00 02 03 02 + 39 00 00 00 00 00 02 04 02 + 39 00 00 00 00 00 02 05 03 + 39 00 00 00 00 00 02 06 03 + 39 00 00 00 00 00 02 07 03 + 39 00 00 00 00 00 02 08 04 + 39 00 00 00 00 00 02 09 04 + 39 00 00 00 00 00 02 0A 03 + 39 00 00 00 00 00 02 0B 03 + 39 00 00 00 00 00 02 0C 03 + 39 00 00 00 00 00 02 0D 03 + 39 00 00 00 00 00 02 0E 04 + 39 00 00 00 00 00 02 0F 03 + 39 00 00 00 00 00 02 10 04 + 39 00 00 00 00 00 02 11 05 + 39 00 00 00 00 00 02 12 05 + 39 00 00 00 00 00 02 13 05 + 39 00 00 00 00 00 02 14 05 + 39 00 00 00 00 00 02 15 05 + 39 00 00 00 00 00 02 16 04 + 39 00 00 00 00 00 02 17 04 + 39 00 00 00 00 00 02 18 05 + 39 00 00 00 00 00 02 19 05 + 39 00 00 00 00 00 02 1A 05 + 39 00 00 00 00 00 02 1B 06 + 39 00 00 00 00 00 02 1C 06 + 39 00 00 00 00 00 02 1D 06 + 39 00 00 00 00 00 02 1E 08 + 39 00 00 00 00 00 02 1F 07 + 39 00 00 00 00 00 02 20 06 + 39 00 00 00 00 00 02 21 05 + 39 00 00 00 00 00 02 22 04 + 39 00 00 00 00 00 02 23 03 + 39 00 00 00 00 00 02 24 04 + 39 00 00 00 00 00 02 25 04 + 39 00 00 00 00 00 02 26 05 + 39 00 00 00 00 00 02 27 05 + 39 00 00 00 00 00 02 28 05 + 39 00 00 00 00 00 02 29 05 + 39 00 00 00 00 00 02 2A 06 + 39 00 00 00 00 00 02 2B 05 + 39 00 00 00 00 00 02 2C 05 + 39 00 00 00 00 00 02 2D 05 + 39 00 00 00 00 00 02 2E 05 + 39 00 00 00 00 00 02 2F 06 + 39 00 00 00 00 00 02 30 06 + 39 00 00 00 00 00 02 31 05 + 39 00 00 00 00 00 02 32 04 + 39 00 00 00 00 00 02 33 03 + 39 00 00 00 00 00 02 34 04 + 39 00 00 00 00 00 02 35 04 + 39 00 00 00 00 00 02 36 05 + 39 00 00 00 00 00 02 37 05 + 39 00 00 00 00 00 02 38 06 + 39 00 00 00 00 00 02 39 06 + 39 00 00 00 00 00 02 3A 06 + 39 00 00 00 00 00 02 3B 07 + 39 00 00 00 00 00 02 3C 07 + 39 00 00 00 00 00 02 3D 07 + 39 00 00 00 00 00 02 3E 07 + 39 00 00 00 00 00 02 3F 07 + 39 00 00 00 00 00 02 40 08 + 39 00 00 00 00 00 02 41 07 + 39 00 00 00 00 00 02 42 07 + 39 00 00 00 00 00 02 43 07 + 39 00 00 00 00 00 02 44 08 + 39 00 00 00 00 00 02 45 08 + 39 00 00 00 00 00 02 46 07 + 39 00 00 00 00 00 02 47 07 + 39 00 00 00 00 00 02 48 06 + 39 00 00 00 00 00 02 49 06 + 39 00 00 00 00 00 02 4A 05 + 39 00 00 00 00 00 02 4B 05 + 39 00 00 00 00 00 02 4C 05 + 39 00 00 00 00 00 02 4D 05 + 39 00 00 00 00 00 02 4E 04 + 39 00 00 00 00 00 02 4F 04 + 39 00 00 00 00 00 02 50 04 + 39 00 00 00 00 00 02 51 04 + 39 00 00 00 00 00 02 52 04 + 39 00 00 00 00 00 02 53 04 + 39 00 00 00 00 00 02 54 04 + 39 00 00 00 00 00 02 55 04 + 39 00 00 00 00 00 02 56 04 + 39 00 00 00 00 00 02 57 04 + 39 00 00 00 00 00 02 58 04 + 39 00 00 00 00 00 02 59 04 + 39 00 00 00 00 00 02 5A 04 + 39 00 00 00 00 00 02 5B 04 + 39 00 00 00 00 00 02 5C 04 + 39 00 00 00 00 00 02 5D 04 + 39 00 00 00 00 00 02 5E 04 + 39 00 00 00 00 00 02 5F 04 + 39 00 00 00 00 00 02 60 04 + 39 00 00 00 00 00 02 61 04 + 39 00 00 00 00 00 02 62 04 + 39 00 00 00 00 00 02 63 04 + 39 00 00 00 00 00 02 64 04 + 39 00 00 00 00 00 02 65 04 + 39 00 00 00 00 00 02 66 04 + 39 00 00 00 00 00 02 67 04 + 39 00 00 00 00 00 02 68 05 + 39 00 00 00 00 00 02 69 04 + 39 00 00 00 00 00 02 6A 04 + 39 00 00 00 00 00 02 6B 04 + 39 00 00 00 00 00 02 6C 04 + 39 00 00 00 00 00 02 6D 04 + 39 00 00 00 00 00 02 6E 04 + 39 00 00 00 00 00 02 6F 04 + 39 00 00 00 00 00 02 70 03 + 39 00 00 00 00 00 02 71 03 + 39 00 00 00 00 00 02 72 03 + 39 00 00 00 00 00 02 73 03 + 39 00 00 00 00 00 02 74 03 + 39 00 00 00 00 00 02 75 02 + 39 00 00 00 00 00 02 76 02 + 39 00 00 00 00 00 02 77 02 + 39 00 00 00 00 00 02 78 02 + 39 00 00 00 00 00 02 79 02 + 39 00 00 00 00 00 02 7A 02 + 39 00 00 00 00 00 02 7B 01 + 39 00 00 00 00 00 02 7C 01 + 39 00 00 00 00 00 02 7D 01 + 39 00 00 00 00 00 02 7E 01 + 39 00 00 00 00 00 02 7F 01 + + + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 01 82 + 39 00 00 00 00 00 02 02 83 + 39 00 00 00 00 00 02 03 83 + 39 00 00 00 00 00 02 04 83 + 39 00 00 00 00 00 02 05 84 + 39 00 00 00 00 00 02 06 85 + 39 00 00 00 00 00 02 07 85 + 39 00 00 00 00 00 02 08 86 + 39 00 00 00 00 00 02 09 87 + 39 00 00 00 00 00 02 0A 88 + 39 00 00 00 00 00 02 0B 88 + 39 00 00 00 00 00 02 0C 89 + 39 00 00 00 00 00 02 0D 8A + 39 00 00 00 00 00 02 0E 8B + 39 00 00 00 00 00 02 0F 8C + 39 00 00 00 00 00 02 10 8D + 39 00 00 00 00 00 02 11 8E + 39 00 00 00 00 00 02 12 8E + 39 00 00 00 00 00 02 13 8F + 39 00 00 00 00 00 02 14 90 + 39 00 00 00 00 00 02 15 91 + 39 00 00 00 00 00 02 16 91 + 39 00 00 00 00 00 02 17 91 + 39 00 00 00 00 00 02 18 92 + 39 00 00 00 00 00 02 19 93 + 39 00 00 00 00 00 02 1A 94 + 39 00 00 00 00 00 02 1B 95 + 39 00 00 00 00 00 02 1C 96 + 39 00 00 00 00 00 02 1D 97 + 39 00 00 00 00 00 02 1E 98 + 39 00 00 00 00 00 02 1F 98 + 39 00 00 00 00 00 02 20 99 + 39 00 00 00 00 00 02 21 99 + 39 00 00 00 00 00 02 22 9A + 39 00 00 00 00 00 02 23 9B + 39 00 00 00 00 00 02 24 9B + 39 00 00 00 00 00 02 25 9C + 39 00 00 00 00 00 02 26 9C + 39 00 00 00 00 00 02 27 9C + 39 00 00 00 00 00 02 28 9D + 39 00 00 00 00 00 02 29 9F + 39 00 00 00 00 00 02 2A A0 + 39 00 00 00 00 00 02 2B A2 + 39 00 00 00 00 00 02 2C A4 + 39 00 00 00 00 00 02 2D A5 + 39 00 00 00 00 00 02 2E A6 + 39 00 00 00 00 00 02 2F A6 + 39 00 00 00 00 00 02 30 A7 + 39 00 00 00 00 00 02 31 A7 + 39 00 00 00 00 00 02 32 A8 + 39 00 00 00 00 00 02 33 A8 + 39 00 00 00 00 00 02 34 A9 + 39 00 00 00 00 00 02 35 AA + 39 00 00 00 00 00 02 36 AA + 39 00 00 00 00 00 02 37 AB + 39 00 00 00 00 00 02 38 AC + 39 00 00 00 00 00 02 39 AD + 39 00 00 00 00 00 02 3A AE + 39 00 00 00 00 00 02 3B AF + 39 00 00 00 00 00 02 3C B0 + 39 00 00 00 00 00 02 3D B0 + 39 00 00 00 00 00 02 3E B1 + 39 00 00 00 00 00 02 3F B3 + 39 00 00 00 00 00 02 40 B4 + 39 00 00 00 00 00 02 41 B5 + 39 00 00 00 00 00 02 42 B6 + 39 00 00 00 00 00 02 43 B7 + 39 00 00 00 00 00 02 44 B7 + 39 00 00 00 00 00 02 45 B7 + 39 00 00 00 00 00 02 46 B8 + 39 00 00 00 00 00 02 47 B8 + 39 00 00 00 00 00 02 48 B9 + 39 00 00 00 00 00 02 49 B9 + 39 00 00 00 00 00 02 4A BA + 39 00 00 00 00 00 02 4B BB + 39 00 00 00 00 00 02 4C BB + 39 00 00 00 00 00 02 4D BC + 39 00 00 00 00 00 02 4E BC + 39 00 00 00 00 00 02 4F BD + 39 00 00 00 00 00 02 50 BE + 39 00 00 00 00 00 02 51 BF + 39 00 00 00 00 00 02 52 C0 + 39 00 00 00 00 00 02 53 C0 + 39 00 00 00 00 00 02 54 C1 + 39 00 00 00 00 00 02 55 C2 + 39 00 00 00 00 00 02 56 C3 + 39 00 00 00 00 00 02 57 C3 + 39 00 00 00 00 00 02 58 C4 + 39 00 00 00 00 00 02 59 C5 + 39 00 00 00 00 00 02 5A C6 + 39 00 00 00 00 00 02 5B C8 + 39 00 00 00 00 00 02 5C C9 + 39 00 00 00 00 00 02 5D CA + 39 00 00 00 00 00 02 5E CB + 39 00 00 00 00 00 02 5F CC + 39 00 00 00 00 00 02 60 CD + 39 00 00 00 00 00 02 61 CE + 39 00 00 00 00 00 02 62 CF + 39 00 00 00 00 00 02 63 D0 + 39 00 00 00 00 00 02 64 D1 + 39 00 00 00 00 00 02 65 D2 + 39 00 00 00 00 00 02 66 D3 + 39 00 00 00 00 00 02 67 D4 + 39 00 00 00 00 00 02 68 D4 + 39 00 00 00 00 00 02 69 D5 + 39 00 00 00 00 00 02 6A D6 + 39 00 00 00 00 00 02 6B D6 + 39 00 00 00 00 00 02 6C D7 + 39 00 00 00 00 00 02 6D D8 + 39 00 00 00 00 00 02 6E D9 + 39 00 00 00 00 00 02 6F DA + 39 00 00 00 00 00 02 70 DA + 39 00 00 00 00 00 02 71 DB + 39 00 00 00 00 00 02 72 DC + 39 00 00 00 00 00 02 73 DD + 39 00 00 00 00 00 02 74 DD + 39 00 00 00 00 00 02 75 DE + 39 00 00 00 00 00 02 76 DF + 39 00 00 00 00 00 02 77 DF + 39 00 00 00 00 00 02 78 E0 + 39 00 00 00 00 00 02 79 E1 + 39 00 00 00 00 00 02 7A E2 + 39 00 00 00 00 00 02 7B E3 + 39 00 00 00 00 00 02 7C E3 + 39 00 00 00 00 00 02 7D E4 + 39 00 00 00 00 00 02 7E E5 + 39 00 00 00 00 00 02 7F E6 + + 39 00 00 00 00 00 04 FF 98 81 09 + 39 00 00 00 00 00 02 01 83 + 39 00 00 00 00 00 02 02 84 + 39 00 00 00 00 00 02 03 85 + 39 00 00 00 00 00 02 04 86 + 39 00 00 00 00 00 02 05 87 + 39 00 00 00 00 00 02 06 89 + 39 00 00 00 00 00 02 07 8A + 39 00 00 00 00 00 02 08 8B + 39 00 00 00 00 00 02 09 8C + 39 00 00 00 00 00 02 0A 8E + 39 00 00 00 00 00 02 0B 8F + 39 00 00 00 00 00 02 0C 91 + 39 00 00 00 00 00 02 0D 92 + 39 00 00 00 00 00 02 0E 93 + 39 00 00 00 00 00 02 0F 95 + 39 00 00 00 00 00 02 10 97 + 39 00 00 00 00 00 02 11 98 + 39 00 00 00 00 00 02 12 9A + 39 00 00 00 00 00 02 13 9C + 39 00 00 00 00 00 02 14 9D + 39 00 00 00 00 00 02 15 9E + 39 00 00 00 00 00 02 16 9F + 39 00 00 00 00 00 02 17 A1 + 39 00 00 00 00 00 02 18 A2 + 39 00 00 00 00 00 02 19 A4 + 39 00 00 00 00 00 02 1A A5 + 39 00 00 00 00 00 02 1B A6 + 39 00 00 00 00 00 02 1C A7 + 39 00 00 00 00 00 02 1D A8 + 39 00 00 00 00 00 02 1E A9 + 39 00 00 00 00 00 02 1F AB + 39 00 00 00 00 00 02 20 53 + 39 00 00 00 00 00 02 21 52 + 39 00 00 00 00 00 02 22 50 + 39 00 00 00 00 00 02 23 4E + 39 00 00 00 00 00 02 24 4D + 39 00 00 00 00 00 02 25 4B + 39 00 00 00 00 00 02 26 4A + 39 00 00 00 00 00 02 27 49 + 39 00 00 00 00 00 02 28 48 + 39 00 00 00 00 00 02 29 46 + 39 00 00 00 00 00 02 2A 45 + 39 00 00 00 00 00 02 2B 44 + 39 00 00 00 00 00 02 2C 42 + 39 00 00 00 00 00 02 2D 41 + 39 00 00 00 00 00 02 2E 40 + 39 00 00 00 00 00 02 2F 3F + 39 00 00 00 00 00 02 30 3E + 39 00 00 00 00 00 02 31 3D + 39 00 00 00 00 00 02 32 3B + 39 00 00 00 00 00 02 33 39 + 39 00 00 00 00 00 02 34 37 + 39 00 00 00 00 00 02 35 35 + 39 00 00 00 00 00 02 36 33 + 39 00 00 00 00 00 02 37 31 + 39 00 00 00 00 00 02 38 2F + 39 00 00 00 00 00 02 39 2D + 39 00 00 00 00 00 02 3A 2C + 39 00 00 00 00 00 02 3B 2B + 39 00 00 00 00 00 02 3C 2A + 39 00 00 00 00 00 02 3D 28 + 39 00 00 00 00 00 02 3E 27 + 39 00 00 00 00 00 02 3F 26 + 39 00 00 00 00 00 02 40 25 + 39 00 00 00 00 00 02 41 23 + 39 00 00 00 00 00 02 42 22 + 39 00 00 00 00 00 02 43 21 + 39 00 00 00 00 00 02 44 1F + 39 00 00 00 00 00 02 45 1E + 39 00 00 00 00 00 02 46 1C + 39 00 00 00 00 00 02 47 1A + 39 00 00 00 00 00 02 48 19 + 39 00 00 00 00 00 02 49 17 + 39 00 00 00 00 00 02 4A 16 + 39 00 00 00 00 00 02 4B 15 + 39 00 00 00 00 00 02 4C 14 + 39 00 00 00 00 00 02 4D 12 + 39 00 00 00 00 00 02 4E 10 + 39 00 00 00 00 00 02 4F 0E + 39 00 00 00 00 00 02 50 0C + 39 00 00 00 00 00 02 51 0A + 39 00 00 00 00 00 02 52 09 + 39 00 00 00 00 00 02 53 07 + 39 00 00 00 00 00 02 54 06 + 39 00 00 00 00 00 02 55 05 + 39 00 00 00 00 00 02 56 04 + 39 00 00 00 00 00 02 57 03 + 39 00 00 00 00 00 02 58 02 + 39 00 00 00 00 00 02 59 01 + 39 00 00 00 00 00 02 5A 00 + 39 00 00 00 00 00 02 5B 82 + 39 00 00 00 00 00 02 5C 83 + 39 00 00 00 00 00 02 5D 84 + 39 00 00 00 00 00 02 5E 86 + 39 00 00 00 00 00 02 5F 87 + 39 00 00 00 00 00 02 60 88 + 39 00 00 00 00 00 02 61 8A + 39 00 00 00 00 00 02 62 8B + 39 00 00 00 00 00 02 63 8C + 39 00 00 00 00 00 02 64 8E + 39 00 00 00 00 00 02 65 8F + 39 00 00 00 00 00 02 66 90 + 39 00 00 00 00 00 02 67 92 + 39 00 00 00 00 00 02 68 94 + 39 00 00 00 00 00 02 69 95 + 39 00 00 00 00 00 02 6A 97 + 39 00 00 00 00 00 02 6B 98 + 39 00 00 00 00 00 02 6C 99 + 39 00 00 00 00 00 02 6D 9A + 39 00 00 00 00 00 02 6E 9C + 39 00 00 00 00 00 02 6F 9E + 39 00 00 00 00 00 02 70 9F + 39 00 00 00 00 00 02 71 A1 + 39 00 00 00 00 00 02 72 A3 + 39 00 00 00 00 00 02 73 A5 + 39 00 00 00 00 00 02 74 A7 + 39 00 00 00 00 00 02 75 A8 + 39 00 00 00 00 00 02 76 AA + 39 00 00 00 00 00 02 77 AB + 39 00 00 00 00 00 02 78 AD + 39 00 00 00 00 00 02 79 AF + 39 00 00 00 00 00 02 7A B0 + 39 00 00 00 00 00 02 7B B2 + 39 00 00 00 00 00 02 7C B4 + 39 00 00 00 00 00 02 7D B6 + 39 00 00 00 00 00 02 7E B7 + 39 00 00 00 00 00 02 7F B9 + 39 01 00 00 00 00 04 FF 98 81 00 + + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 01 01 + 39 00 00 00 00 00 02 02 01 + 39 00 00 00 00 00 02 03 01 + 39 00 00 00 00 00 02 04 01 + 39 00 00 00 00 00 02 05 01 + 39 00 00 00 00 00 02 06 01 + 39 00 00 00 00 00 02 07 01 + 39 00 00 00 00 00 02 08 01 + 39 00 00 00 00 00 02 09 01 + 39 00 00 00 00 00 02 0A 01 + 39 00 00 00 00 00 02 0B 02 + 39 00 00 00 00 00 02 0C 02 + 39 00 00 00 00 00 02 0D 02 + 39 00 00 00 00 00 02 0E 02 + 39 00 00 00 00 00 02 0F 02 + 39 00 00 00 00 00 02 10 02 + 39 00 00 00 00 00 02 11 02 + 39 00 00 00 00 00 02 12 01 + 39 00 00 00 00 00 02 13 01 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 15 00 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 17 81 + 39 00 00 00 00 00 02 18 81 + 39 00 00 00 00 00 02 19 81 + 39 00 00 00 00 00 02 1A 82 + 39 00 00 00 00 00 02 1B 82 + 39 00 00 00 00 00 02 1C 82 + 39 00 00 00 00 00 02 1D 82 + 39 00 00 00 00 00 02 1E 83 + 39 00 00 00 00 00 02 1F 83 + 39 00 00 00 00 00 02 20 83 + 39 00 00 00 00 00 02 21 83 + 39 00 00 00 00 00 02 22 83 + 39 00 00 00 00 00 02 23 83 + 39 00 00 00 00 00 02 24 83 + 39 00 00 00 00 00 02 25 83 + 39 00 00 00 00 00 02 26 83 + 39 00 00 00 00 00 02 27 83 + 39 00 00 00 00 00 02 28 83 + 39 00 00 00 00 00 02 29 83 + 39 00 00 00 00 00 02 2A 83 + 39 00 00 00 00 00 02 2B 83 + 39 00 00 00 00 00 02 2C 83 + 39 00 00 00 00 00 02 2D 83 + 39 00 00 00 00 00 02 2E 82 + 39 00 00 00 00 00 02 2F 82 + 39 00 00 00 00 00 02 30 82 + 39 00 00 00 00 00 02 31 83 + 39 00 00 00 00 00 02 32 84 + 39 00 00 00 00 00 02 33 84 + 39 00 00 00 00 00 02 34 85 + 39 00 00 00 00 00 02 35 85 + 39 00 00 00 00 00 02 36 85 + 39 00 00 00 00 00 02 37 86 + 39 00 00 00 00 00 02 38 86 + 39 00 00 00 00 00 02 39 86 + 39 00 00 00 00 00 02 3A 87 + 39 00 00 00 00 00 02 3B 87 + 39 00 00 00 00 00 02 3C 87 + 39 00 00 00 00 00 02 3D 87 + 39 00 00 00 00 00 02 3E 87 + 39 00 00 00 00 00 02 3F 87 + 39 00 00 00 00 00 02 40 88 + 39 00 00 00 00 00 02 41 87 + 39 00 00 00 00 00 02 42 87 + 39 00 00 00 00 00 02 43 87 + 39 00 00 00 00 00 02 44 87 + 39 00 00 00 00 00 02 45 87 + 39 00 00 00 00 00 02 46 86 + 39 00 00 00 00 00 02 47 86 + 39 00 00 00 00 00 02 48 86 + 39 00 00 00 00 00 02 49 85 + 39 00 00 00 00 00 02 4A 85 + 39 00 00 00 00 00 02 4B 84 + 39 00 00 00 00 00 02 4C 84 + 39 00 00 00 00 00 02 4D 84 + 39 00 00 00 00 00 02 4E 85 + 39 00 00 00 00 00 02 4F 85 + 39 00 00 00 00 00 02 50 85 + 39 00 00 00 00 00 02 51 85 + 39 00 00 00 00 00 02 52 86 + 39 00 00 00 00 00 02 53 86 + 39 00 00 00 00 00 02 54 86 + 39 00 00 00 00 00 02 55 86 + 39 00 00 00 00 00 02 56 86 + 39 00 00 00 00 00 02 57 85 + 39 00 00 00 00 00 02 58 85 + 39 00 00 00 00 00 02 59 85 + 39 00 00 00 00 00 02 5A 84 + 39 00 00 00 00 00 02 5B 84 + 39 00 00 00 00 00 02 5C 84 + 39 00 00 00 00 00 02 5D 84 + 39 00 00 00 00 00 02 5E 84 + 39 00 00 00 00 00 02 5F 85 + 39 00 00 00 00 00 02 60 85 + 39 00 00 00 00 00 02 61 85 + 39 00 00 00 00 00 02 62 85 + 39 00 00 00 00 00 02 63 85 + 39 00 00 00 00 00 02 64 85 + 39 00 00 00 00 00 02 65 85 + 39 00 00 00 00 00 02 66 84 + 39 00 00 00 00 00 02 67 84 + 39 00 00 00 00 00 02 68 83 + 39 00 00 00 00 00 02 69 84 + 39 00 00 00 00 00 02 6A 84 + 39 00 00 00 00 00 02 6B 84 + 39 00 00 00 00 00 02 6C 85 + 39 00 00 00 00 00 02 6D 85 + 39 00 00 00 00 00 02 6E 84 + 39 00 00 00 00 00 02 6F 84 + 39 00 00 00 00 00 02 70 84 + 39 00 00 00 00 00 02 71 84 + 39 00 00 00 00 00 02 72 84 + 39 00 00 00 00 00 02 73 84 + 39 00 00 00 00 00 02 74 84 + 39 00 00 00 00 00 02 75 84 + 39 00 00 00 00 00 02 76 84 + 39 00 00 00 00 00 02 77 84 + 39 00 00 00 00 00 02 78 83 + 39 00 00 00 00 00 02 79 83 + 39 00 00 00 00 00 02 7A 83 + 39 00 00 00 00 00 02 7B 83 + 39 00 00 00 00 00 02 7C 83 + 39 00 00 00 00 00 02 7D 84 + 39 00 00 00 00 00 02 7E 84 + 39 00 00 00 00 00 02 7F 83 + + 39 00 00 00 00 00 04 FF 98 81 08 + 39 00 00 00 00 00 02 01 E7 + 39 00 00 00 00 00 02 02 E8 + 39 00 00 00 00 00 02 03 E8 + 39 00 00 00 00 00 02 04 E9 + 39 00 00 00 00 00 02 05 EA + 39 00 00 00 00 00 02 06 EB + 39 00 00 00 00 00 02 07 EC + 39 00 00 00 00 00 02 08 ED + 39 00 00 00 00 00 02 09 EE + 39 00 00 00 00 00 02 0A EF + 39 00 00 00 00 00 02 0B EF + 39 00 00 00 00 00 02 0C F0 + 39 00 00 00 00 00 02 0D F1 + 39 00 00 00 00 00 02 0E F2 + 39 00 00 00 00 00 02 0F F3 + 39 00 00 00 00 00 02 10 F4 + 39 00 00 00 00 00 02 11 F5 + 39 00 00 00 00 00 02 12 F6 + 39 00 00 00 00 00 02 13 F6 + 39 00 00 00 00 00 02 14 F7 + 39 00 00 00 00 00 02 15 F8 + 39 00 00 00 00 00 02 16 F9 + 39 00 00 00 00 00 02 17 FA + 39 00 00 00 00 00 02 18 FB + 39 00 00 00 00 00 02 19 FC + 39 00 00 00 00 00 02 1A FD + 39 00 00 00 00 00 02 1B FD + 39 00 00 00 00 00 02 1C FE + 39 00 00 00 00 00 02 1D FF + 39 00 00 00 00 00 02 1E FF + 39 00 00 00 00 00 02 1F FF + 39 00 00 00 00 00 02 20 FF + 39 00 00 00 00 00 02 21 FF + 39 00 00 00 00 00 02 22 FF + 39 00 00 00 00 00 02 23 FF + 39 00 00 00 00 00 02 24 FF + 39 00 00 00 00 00 02 25 FF + 39 00 00 00 00 00 02 26 FF + 39 00 00 00 00 00 02 27 FF + 39 00 00 00 00 00 02 28 FF + 39 00 00 00 00 00 02 29 FF + 39 00 00 00 00 00 02 2A FF + 39 00 00 00 00 00 02 2B FF + 39 00 00 00 00 00 02 2C FF + 39 00 00 00 00 00 02 2D FF + 39 00 00 00 00 00 02 2E FF + 39 00 00 00 00 00 02 2F FF + 39 00 00 00 00 00 02 30 FF + 39 00 00 00 00 00 02 31 FF + 39 00 00 00 00 00 02 32 FF + 39 00 00 00 00 00 02 33 FF + 39 00 00 00 00 00 02 34 FF + 39 00 00 00 00 00 02 35 FF + 39 00 00 00 00 00 02 36 FF + 39 00 00 00 00 00 02 37 FF + 39 00 00 00 00 00 02 38 FF + 39 00 00 00 00 00 02 39 FF + 39 00 00 00 00 00 02 3A FF + 39 00 00 00 00 00 02 3B FF + 39 00 00 00 00 00 02 3C FF + 39 00 00 00 00 00 02 3D FF + 39 00 00 00 00 00 02 3E FF + 39 00 00 00 00 00 02 3F FF + 39 00 00 00 00 00 02 40 FF + 39 00 00 00 00 00 02 41 FF + 39 00 00 00 00 00 02 42 FF + 39 00 00 00 00 00 02 43 FF + 39 00 00 00 00 00 02 44 FF + 39 00 00 00 00 00 02 45 FF + 39 00 00 00 00 00 02 46 FF + 39 00 00 00 00 00 02 47 FF + 39 00 00 00 00 00 02 48 FF + 39 00 00 00 00 00 02 49 FF + 39 00 00 00 00 00 02 4A FF + 39 00 00 00 00 00 02 4B FF + 39 00 00 00 00 00 02 4C FF + 39 00 00 00 00 00 02 4D FF + 39 00 00 00 00 00 02 4E FF + 39 00 00 00 00 00 02 4F FF + 39 00 00 00 00 00 02 50 FF + 39 00 00 00 00 00 02 51 FF + 39 00 00 00 00 00 02 52 FF + 39 00 00 00 00 00 02 53 FF + 39 00 00 00 00 00 02 54 FF + 39 00 00 00 00 00 02 55 FF + 39 00 00 00 00 00 02 56 FF + 39 00 00 00 00 00 02 57 FF + 39 00 00 00 00 00 02 58 FF + 39 00 00 00 00 00 02 59 FF + 39 00 00 00 00 00 02 5A FF + 39 00 00 00 00 00 02 5B FF + 39 00 00 00 00 00 02 5C FF + 39 00 00 00 00 00 02 5D FF + 39 00 00 00 00 00 02 5E FF + 39 00 00 00 00 00 02 5F FF + 39 00 00 00 00 00 02 60 FF + 39 00 00 00 00 00 02 61 FF + 39 00 00 00 00 00 02 62 FF + 39 00 00 00 00 00 02 63 FF + 39 00 00 00 00 00 02 64 FF + 39 00 00 00 00 00 02 65 FF + 39 00 00 00 00 00 02 66 FF + 39 00 00 00 00 00 02 67 FF + 39 00 00 00 00 00 02 68 FF + 39 00 00 00 00 00 02 69 FF + 39 00 00 00 00 00 02 6A FF + 39 00 00 00 00 00 02 6B FF + 39 00 00 00 00 00 02 6C FF + 39 00 00 00 00 00 02 6D FF + 39 00 00 00 00 00 02 6E FF + 39 00 00 00 00 00 02 6F FF + 39 00 00 00 00 00 02 70 FF + 39 00 00 00 00 00 02 71 FF + 39 00 00 00 00 00 02 72 FF + 39 00 00 00 00 00 02 73 FF + 39 00 00 00 00 00 02 74 FF + 39 00 00 00 00 00 02 75 FF + 39 00 00 00 00 00 02 76 FF + 39 00 00 00 00 00 02 77 FF + 39 00 00 00 00 00 02 78 FF + 39 00 00 00 00 00 02 79 FF + 39 00 00 00 00 00 02 7A FF + 39 00 00 00 00 00 02 7B FF + 39 00 00 00 00 00 02 7C FF + 39 00 00 00 00 00 02 7D FF + 39 00 00 00 00 00 02 7E FF + 39 00 00 00 00 00 02 7F FF + + + 39 00 00 00 00 00 04 FF 98 81 0A + 39 00 00 00 00 00 02 01 45 + 39 00 00 00 00 00 02 02 43 + 39 00 00 00 00 00 02 03 42 + 39 00 00 00 00 00 02 04 41 + 39 00 00 00 00 00 02 05 3F + 39 00 00 00 00 00 02 06 3E + 39 00 00 00 00 00 02 07 3C + 39 00 00 00 00 00 02 08 3B + 39 00 00 00 00 00 02 09 3A + 39 00 00 00 00 00 02 0A 38 + 39 00 00 00 00 00 02 0B 37 + 39 00 00 00 00 00 02 0C 35 + 39 00 00 00 00 00 02 0D 34 + 39 00 00 00 00 00 02 0E 32 + 39 00 00 00 00 00 02 0F 31 + 39 00 00 00 00 00 02 10 2F + 39 00 00 00 00 00 02 11 2E + 39 00 00 00 00 00 02 12 2D + 39 00 00 00 00 00 02 13 2B + 39 00 00 00 00 00 02 14 2A + 39 00 00 00 00 00 02 15 28 + 39 00 00 00 00 00 02 16 27 + 39 00 00 00 00 00 02 17 25 + 39 00 00 00 00 00 02 18 24 + 39 00 00 00 00 00 02 19 22 + 39 00 00 00 00 00 02 1A 21 + 39 00 00 00 00 00 02 1B 1F + 39 00 00 00 00 00 02 1C 1E + 39 00 00 00 00 00 02 1D 1D + 39 00 00 00 00 00 02 1E 1B + 39 00 00 00 00 00 02 1F 1A + 39 00 00 00 00 00 02 20 18 + 39 00 00 00 00 00 02 21 17 + 39 00 00 00 00 00 02 22 15 + 39 00 00 00 00 00 02 23 14 + 39 00 00 00 00 00 02 24 13 + 39 00 00 00 00 00 02 25 12 + 39 00 00 00 00 00 02 26 10 + 39 00 00 00 00 00 02 27 0E + 39 00 00 00 00 00 02 28 0C + 39 00 00 00 00 00 02 29 0B + 39 00 00 00 00 00 02 2A 0A + 39 00 00 00 00 00 02 2B 08 + 39 00 00 00 00 00 02 2C 07 + 39 00 00 00 00 00 02 2D 05 + 39 00 00 00 00 00 02 2E 04 + 39 00 00 00 00 00 02 2F 02 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 31 81 + 39 00 00 00 00 00 02 32 83 + 39 00 00 00 00 00 02 33 84 + 39 00 00 00 00 00 02 34 86 + 39 00 00 00 00 00 02 35 87 + 39 00 00 00 00 00 02 36 89 + 39 00 00 00 00 00 02 37 8A + 39 00 00 00 00 00 02 38 8C + 39 00 00 00 00 00 02 39 8E + 39 00 00 00 00 00 02 3A 8F + 39 00 00 00 00 00 02 3B 91 + 39 00 00 00 00 00 02 3C 92 + 39 00 00 00 00 00 02 3D 94 + 39 00 00 00 00 00 02 3E 96 + 39 00 00 00 00 00 02 3F 97 + 39 00 00 00 00 00 02 40 68 + 39 00 00 00 00 00 02 41 66 + 39 00 00 00 00 00 02 42 64 + 39 00 00 00 00 00 02 43 63 + 39 00 00 00 00 00 02 44 61 + 39 00 00 00 00 00 02 45 60 + 39 00 00 00 00 00 02 46 5E + 39 00 00 00 00 00 02 47 5D + 39 00 00 00 00 00 02 48 5B + 39 00 00 00 00 00 02 49 5A + 39 00 00 00 00 00 02 4A 58 + 39 00 00 00 00 00 02 4B 57 + 39 00 00 00 00 00 02 4C 55 + 39 00 00 00 00 00 02 4D 54 + 39 00 00 00 00 00 02 4E 52 + 39 00 00 00 00 00 02 4F 51 + 39 00 00 00 00 00 02 50 4F + 39 00 00 00 00 00 02 51 4E + 39 00 00 00 00 00 02 52 4D + 39 00 00 00 00 00 02 53 4B + 39 00 00 00 00 00 02 54 4A + 39 00 00 00 00 00 02 55 48 + 39 00 00 00 00 00 02 56 47 + 39 00 00 00 00 00 02 57 46 + 39 00 00 00 00 00 02 58 44 + 39 00 00 00 00 00 02 59 43 + 39 00 00 00 00 00 02 5A 42 + 39 00 00 00 00 00 02 5B 40 + 39 00 00 00 00 00 02 5C 3F + 39 00 00 00 00 00 02 5D 3D + 39 00 00 00 00 00 02 5E 3C + 39 00 00 00 00 00 02 5F 3B + 39 00 00 00 00 00 02 60 39 + 39 00 00 00 00 00 02 61 38 + 39 00 00 00 00 00 02 62 37 + 39 00 00 00 00 00 02 63 35 + 39 00 00 00 00 00 02 64 33 + 39 00 00 00 00 00 02 65 31 + 39 00 00 00 00 00 02 66 30 + 39 00 00 00 00 00 02 67 2E + 39 00 00 00 00 00 02 68 2C + 39 00 00 00 00 00 02 69 2B + 39 00 00 00 00 00 02 6A 29 + 39 00 00 00 00 00 02 6B 27 + 39 00 00 00 00 00 02 6C 25 + 39 00 00 00 00 00 02 6D 24 + 39 00 00 00 00 00 02 6E 22 + 39 00 00 00 00 00 02 6F 20 + 39 00 00 00 00 00 02 70 1F + 39 00 00 00 00 00 02 71 1D + 39 00 00 00 00 00 02 72 1B + 39 00 00 00 00 00 02 73 1A + 39 00 00 00 00 00 02 74 18 + 39 00 00 00 00 00 02 75 16 + 39 00 00 00 00 00 02 76 15 + 39 00 00 00 00 00 02 77 13 + 39 00 00 00 00 00 02 78 11 + 39 00 00 00 00 00 02 79 0F + 39 00 00 00 00 00 02 7A 0E + 39 00 00 00 00 00 02 7B 0C + 39 00 00 00 00 00 02 7C 0B + 39 00 00 00 00 00 02 7D 09 + 39 00 00 00 00 00 02 7E 08 + 39 00 00 00 00 00 02 7F 07 + + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F 01 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 01 + 39 00 00 00 00 00 02 7F 83 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F E6 + 39 00 00 00 00 00 04 FF 98 81 08 + 39 00 00 00 00 00 02 00 E7 + 39 00 00 00 00 00 02 7F FF + 39 00 00 00 00 00 04 FF 98 81 09 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F b9 + 39 00 00 00 00 00 04 FF 98 81 0A + 39 00 00 00 00 00 02 00 46 + 39 00 00 00 00 00 02 7F 07 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 80 01 + 39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 21 B0 + 39 00 00 00 00 00 02 32 02 + 39 01 00 00 00 00 04 FF 98 81 00 + 39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 21 B2 + 39 00 00 00 00 00 02 32 01 + 39 00 00 00 00 00 04 FF 98 81 0A + 39 00 00 00 00 00 02 7F 07 + 39 00 00 00 00 00 02 7E 08 + 39 00 00 00 00 00 02 7D 09 + 39 00 00 00 00 00 02 7C 0B + 39 00 00 00 00 00 02 7B 0C + 39 00 00 00 00 00 02 7A 0E + 39 00 00 00 00 00 02 79 0F + 39 00 00 00 00 00 02 78 11 + 39 00 00 00 00 00 02 77 13 + 39 00 00 00 00 00 02 76 15 + 39 00 00 00 00 00 02 75 16 + 39 00 00 00 00 00 02 74 18 + 39 00 00 00 00 00 02 73 1A + 39 00 00 00 00 00 02 72 1B + 39 00 00 00 00 00 02 71 1D + 39 00 00 00 00 00 02 70 1F + 39 00 00 00 00 00 02 6F 20 + 39 00 00 00 00 00 02 6E 22 + 39 00 00 00 00 00 02 6D 24 + 39 00 00 00 00 00 02 6C 25 + 39 00 00 00 00 00 02 6B 27 + 39 00 00 00 00 00 02 6A 29 + 39 00 00 00 00 00 02 69 2B + 39 00 00 00 00 00 02 68 2C + 39 00 00 00 00 00 02 67 2E + 39 00 00 00 00 00 02 66 30 + 39 00 00 00 00 00 02 65 31 + 39 00 00 00 00 00 02 64 33 + 39 00 00 00 00 00 02 63 35 + 39 00 00 00 00 00 02 62 37 + 39 00 00 00 00 00 02 61 38 + 39 00 00 00 00 00 02 60 39 + 39 00 00 00 00 00 02 5F 3B + 39 00 00 00 00 00 02 5E 3C + 39 00 00 00 00 00 02 5D 3D + 39 00 00 00 00 00 02 5C 3F + 39 00 00 00 00 00 02 5B 40 + 39 00 00 00 00 00 02 5A 42 + 39 00 00 00 00 00 02 59 43 + 39 00 00 00 00 00 02 58 44 + 39 00 00 00 00 00 02 57 46 + 39 00 00 00 00 00 02 56 47 + 39 00 00 00 00 00 02 55 48 + 39 00 00 00 00 00 02 54 4A + 39 00 00 00 00 00 02 53 4B + 39 00 00 00 00 00 02 52 4D + 39 00 00 00 00 00 02 51 4E + 39 00 00 00 00 00 02 50 4F + 39 00 00 00 00 00 02 4F 51 + 39 00 00 00 00 00 02 4E 52 + 39 00 00 00 00 00 02 4D 54 + 39 00 00 00 00 00 02 4C 55 + 39 00 00 00 00 00 02 4B 57 + 39 00 00 00 00 00 02 4A 58 + 39 00 00 00 00 00 02 49 5A + 39 00 00 00 00 00 02 48 5B + 39 00 00 00 00 00 02 47 5D + 39 00 00 00 00 00 02 46 5E + 39 00 00 00 00 00 02 45 60 + 39 00 00 00 00 00 02 44 61 + 39 00 00 00 00 00 02 43 63 + 39 00 00 00 00 00 02 42 64 + 39 00 00 00 00 00 02 41 66 + 39 00 00 00 00 00 02 40 68 + 39 00 00 00 00 00 02 3F 97 + 39 00 00 00 00 00 02 3E 96 + 39 00 00 00 00 00 02 3D 94 + 39 00 00 00 00 00 02 3C 92 + 39 00 00 00 00 00 02 3B 91 + 39 00 00 00 00 00 02 3A 8F + 39 00 00 00 00 00 02 39 8E + 39 00 00 00 00 00 02 38 8C + 39 00 00 00 00 00 02 37 8A + 39 00 00 00 00 00 02 36 89 + 39 00 00 00 00 00 02 35 87 + 39 00 00 00 00 00 02 34 86 + 39 00 00 00 00 00 02 33 84 + 39 00 00 00 00 00 02 32 83 + 39 00 00 00 00 00 02 31 81 + 39 00 00 00 00 00 02 30 01 + 39 00 00 00 00 00 02 2F 02 + 39 00 00 00 00 00 02 2E 04 + 39 00 00 00 00 00 02 2D 05 + 39 00 00 00 00 00 02 2C 07 + 39 00 00 00 00 00 02 2B 08 + 39 00 00 00 00 00 02 2A 0A + 39 00 00 00 00 00 02 29 0B + 39 00 00 00 00 00 02 28 0C + 39 00 00 00 00 00 02 27 0E + 39 00 00 00 00 00 02 26 10 + 39 00 00 00 00 00 02 25 12 + 39 00 00 00 00 00 02 24 13 + 39 00 00 00 00 00 02 23 14 + 39 00 00 00 00 00 02 22 15 + 39 00 00 00 00 00 02 21 17 + 39 00 00 00 00 00 02 20 18 + 39 00 00 00 00 00 02 1F 1A + 39 00 00 00 00 00 02 1E 1B + 39 00 00 00 00 00 02 1D 1D + 39 00 00 00 00 00 02 1C 1E + 39 00 00 00 00 00 02 1B 1F + 39 00 00 00 00 00 02 1A 21 + 39 00 00 00 00 00 02 19 22 + 39 00 00 00 00 00 02 18 24 + 39 00 00 00 00 00 02 17 25 + 39 00 00 00 00 00 02 16 27 + 39 00 00 00 00 00 02 15 28 + 39 00 00 00 00 00 02 14 2A + 39 00 00 00 00 00 02 13 2B + 39 00 00 00 00 00 02 12 2D + 39 00 00 00 00 00 02 11 2E + 39 00 00 00 00 00 02 10 2F + 39 00 00 00 00 00 02 0F 31 + 39 00 00 00 00 00 02 0E 32 + 39 00 00 00 00 00 02 0D 34 + 39 00 00 00 00 00 02 0C 35 + 39 00 00 00 00 00 02 0B 37 + 39 00 00 00 00 00 02 0A 38 + 39 00 00 00 00 00 02 09 3A + 39 00 00 00 00 00 02 08 3B + 39 00 00 00 00 00 02 07 3C + 39 00 00 00 00 00 02 06 3E + 39 00 00 00 00 00 02 05 3F + 39 00 00 00 00 00 02 04 41 + 39 00 00 00 00 00 02 03 42 + 39 00 00 00 00 00 02 02 43 + 39 00 00 00 00 00 02 01 45 + + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 7F 83 + 39 00 00 00 00 00 02 7E 84 + 39 00 00 00 00 00 02 7D 84 + 39 00 00 00 00 00 02 7C 83 + 39 00 00 00 00 00 02 7B 83 + 39 00 00 00 00 00 02 7A 83 + 39 00 00 00 00 00 02 79 83 + 39 00 00 00 00 00 02 78 83 + 39 00 00 00 00 00 02 77 84 + 39 00 00 00 00 00 02 76 84 + 39 00 00 00 00 00 02 75 84 + 39 00 00 00 00 00 02 74 84 + 39 00 00 00 00 00 02 73 84 + 39 00 00 00 00 00 02 72 84 + 39 00 00 00 00 00 02 71 84 + 39 00 00 00 00 00 02 70 84 + 39 00 00 00 00 00 02 6F 84 + 39 00 00 00 00 00 02 6E 84 + 39 00 00 00 00 00 02 6D 85 + 39 00 00 00 00 00 02 6C 85 + 39 00 00 00 00 00 02 6B 84 + 39 00 00 00 00 00 02 6A 84 + 39 00 00 00 00 00 02 69 84 + 39 00 00 00 00 00 02 68 83 + 39 00 00 00 00 00 02 67 84 + 39 00 00 00 00 00 02 66 84 + 39 00 00 00 00 00 02 65 85 + 39 00 00 00 00 00 02 64 85 + 39 00 00 00 00 00 02 63 85 + 39 00 00 00 00 00 02 62 85 + 39 00 00 00 00 00 02 61 85 + 39 00 00 00 00 00 02 60 85 + 39 00 00 00 00 00 02 5F 85 + 39 00 00 00 00 00 02 5E 84 + 39 00 00 00 00 00 02 5D 84 + 39 00 00 00 00 00 02 5C 84 + 39 00 00 00 00 00 02 5B 84 + 39 00 00 00 00 00 02 5A 84 + 39 00 00 00 00 00 02 59 85 + 39 00 00 00 00 00 02 58 85 + 39 00 00 00 00 00 02 57 85 + 39 00 00 00 00 00 02 56 86 + 39 00 00 00 00 00 02 55 86 + 39 00 00 00 00 00 02 54 86 + 39 00 00 00 00 00 02 53 86 + 39 00 00 00 00 00 02 52 86 + 39 00 00 00 00 00 02 51 85 + 39 00 00 00 00 00 02 50 85 + 39 00 00 00 00 00 02 4F 85 + 39 00 00 00 00 00 02 4E 85 + 39 00 00 00 00 00 02 4D 84 + 39 00 00 00 00 00 02 4C 84 + 39 00 00 00 00 00 02 4B 84 + 39 00 00 00 00 00 02 4A 85 + 39 00 00 00 00 00 02 49 85 + 39 00 00 00 00 00 02 48 86 + 39 00 00 00 00 00 02 47 86 + 39 00 00 00 00 00 02 46 86 + 39 00 00 00 00 00 02 45 87 + 39 00 00 00 00 00 02 44 87 + 39 00 00 00 00 00 02 43 87 + 39 00 00 00 00 00 02 42 87 + 39 00 00 00 00 00 02 41 87 + 39 00 00 00 00 00 02 40 88 + 39 00 00 00 00 00 02 3F 87 + 39 00 00 00 00 00 02 3E 87 + 39 00 00 00 00 00 02 3D 87 + 39 00 00 00 00 00 02 3C 87 + 39 00 00 00 00 00 02 3B 87 + 39 00 00 00 00 00 02 3A 87 + 39 00 00 00 00 00 02 39 86 + 39 00 00 00 00 00 02 38 86 + 39 00 00 00 00 00 02 37 86 + 39 00 00 00 00 00 02 36 85 + 39 00 00 00 00 00 02 35 85 + 39 00 00 00 00 00 02 34 85 + 39 00 00 00 00 00 02 33 84 + 39 00 00 00 00 00 02 32 84 + 39 00 00 00 00 00 02 31 83 + 39 00 00 00 00 00 02 30 82 + 39 00 00 00 00 00 02 2F 82 + 39 00 00 00 00 00 02 2E 82 + 39 00 00 00 00 00 02 2D 83 + 39 00 00 00 00 00 02 2C 83 + 39 00 00 00 00 00 02 2B 83 + 39 00 00 00 00 00 02 2A 83 + 39 00 00 00 00 00 02 29 83 + 39 00 00 00 00 00 02 28 83 + 39 00 00 00 00 00 02 27 83 + 39 00 00 00 00 00 02 26 83 + 39 00 00 00 00 00 02 25 83 + 39 00 00 00 00 00 02 24 83 + 39 00 00 00 00 00 02 23 83 + 39 00 00 00 00 00 02 22 83 + 39 00 00 00 00 00 02 21 83 + 39 00 00 00 00 00 02 20 83 + 39 00 00 00 00 00 02 1F 83 + 39 00 00 00 00 00 02 1E 83 + 39 00 00 00 00 00 02 1D 82 + 39 00 00 00 00 00 02 1C 82 + 39 00 00 00 00 00 02 1B 82 + 39 00 00 00 00 00 02 1A 82 + 39 00 00 00 00 00 02 19 81 + 39 00 00 00 00 00 02 18 81 + 39 00 00 00 00 00 02 17 81 + 39 00 00 00 00 00 02 16 00 + 39 00 00 00 00 00 02 15 00 + 39 00 00 00 00 00 02 14 00 + 39 00 00 00 00 00 02 13 01 + 39 00 00 00 00 00 02 12 01 + 39 00 00 00 00 00 02 11 02 + 39 00 00 00 00 00 02 10 02 + 39 00 00 00 00 00 02 0F 02 + 39 00 00 00 00 00 02 0E 02 + 39 00 00 00 00 00 02 0D 02 + 39 00 00 00 00 00 02 0C 02 + 39 00 00 00 00 00 02 0B 02 + 39 00 00 00 00 00 02 0A 01 + 39 00 00 00 00 00 02 09 01 + 39 00 00 00 00 00 02 08 01 + 39 00 00 00 00 00 02 07 01 + 39 00 00 00 00 00 02 06 01 + 39 00 00 00 00 00 02 05 01 + 39 00 00 00 00 00 02 04 01 + 39 00 00 00 00 00 02 03 01 + 39 00 00 00 00 00 02 02 01 + 39 00 00 00 00 00 02 01 01 + + 39 00 00 00 00 00 04 FF 98 81 08 + 39 00 00 00 00 00 02 7F FF + 39 00 00 00 00 00 02 7E FF + 39 00 00 00 00 00 02 7D FF + 39 00 00 00 00 00 02 7C FF + 39 00 00 00 00 00 02 7B FF + 39 00 00 00 00 00 02 7A FF + 39 00 00 00 00 00 02 79 FF + 39 00 00 00 00 00 02 78 FF + 39 00 00 00 00 00 02 77 FF + 39 00 00 00 00 00 02 76 FF + 39 00 00 00 00 00 02 75 FF + 39 00 00 00 00 00 02 74 FF + 39 00 00 00 00 00 02 73 FF + 39 00 00 00 00 00 02 72 FF + 39 00 00 00 00 00 02 71 FF + 39 00 00 00 00 00 02 70 FF + 39 00 00 00 00 00 02 6F FF + 39 00 00 00 00 00 02 6E FF + 39 00 00 00 00 00 02 6D FF + 39 00 00 00 00 00 02 6C FF + 39 00 00 00 00 00 02 6B FF + 39 00 00 00 00 00 02 6A FF + 39 00 00 00 00 00 02 69 FF + 39 00 00 00 00 00 02 68 FF + 39 00 00 00 00 00 02 67 FF + 39 00 00 00 00 00 02 66 FF + 39 00 00 00 00 00 02 65 FF + 39 00 00 00 00 00 02 64 FF + 39 00 00 00 00 00 02 63 FF + 39 00 00 00 00 00 02 62 FF + 39 00 00 00 00 00 02 61 FF + 39 00 00 00 00 00 02 60 FF + 39 00 00 00 00 00 02 5F FF + 39 00 00 00 00 00 02 5E FF + 39 00 00 00 00 00 02 5D FF + 39 00 00 00 00 00 02 5C FF + 39 00 00 00 00 00 02 5B FF + 39 00 00 00 00 00 02 5A FF + 39 00 00 00 00 00 02 59 FF + 39 00 00 00 00 00 02 58 FF + 39 00 00 00 00 00 02 57 FF + 39 00 00 00 00 00 02 56 FF + 39 00 00 00 00 00 02 55 FF + 39 00 00 00 00 00 02 54 FF + 39 00 00 00 00 00 02 53 FF + 39 00 00 00 00 00 02 52 FF + 39 00 00 00 00 00 02 51 FF + 39 00 00 00 00 00 02 50 FF + 39 00 00 00 00 00 02 4F FF + 39 00 00 00 00 00 02 4E FF + 39 00 00 00 00 00 02 4D FF + 39 00 00 00 00 00 02 4C FF + 39 00 00 00 00 00 02 4B FF + 39 00 00 00 00 00 02 4A FF + 39 00 00 00 00 00 02 49 FF + 39 00 00 00 00 00 02 48 FF + 39 00 00 00 00 00 02 47 FF + 39 00 00 00 00 00 02 46 FF + 39 00 00 00 00 00 02 45 FF + 39 00 00 00 00 00 02 44 FF + 39 00 00 00 00 00 02 43 FF + 39 00 00 00 00 00 02 42 FF + 39 00 00 00 00 00 02 41 FF + 39 00 00 00 00 00 02 40 FF + 39 00 00 00 00 00 02 3F FF + 39 00 00 00 00 00 02 3E FF + 39 00 00 00 00 00 02 3D FF + 39 00 00 00 00 00 02 3C FF + 39 00 00 00 00 00 02 3B FF + 39 00 00 00 00 00 02 3A FF + 39 00 00 00 00 00 02 39 FF + 39 00 00 00 00 00 02 38 FF + 39 00 00 00 00 00 02 37 FF + 39 00 00 00 00 00 02 36 FF + 39 00 00 00 00 00 02 35 FF + 39 00 00 00 00 00 02 34 FF + 39 00 00 00 00 00 02 33 FF + 39 00 00 00 00 00 02 32 FF + 39 00 00 00 00 00 02 31 FF + 39 00 00 00 00 00 02 30 FF + 39 00 00 00 00 00 02 2F FF + 39 00 00 00 00 00 02 2E FF + 39 00 00 00 00 00 02 2D FF + 39 00 00 00 00 00 02 2C FF + 39 00 00 00 00 00 02 2B FF + 39 00 00 00 00 00 02 2A FF + 39 00 00 00 00 00 02 29 FF + 39 00 00 00 00 00 02 28 FF + 39 00 00 00 00 00 02 27 FF + 39 00 00 00 00 00 02 26 FF + 39 00 00 00 00 00 02 25 FF + 39 00 00 00 00 00 02 24 FF + 39 00 00 00 00 00 02 23 FF + 39 00 00 00 00 00 02 22 FF + 39 00 00 00 00 00 02 21 FF + 39 00 00 00 00 00 02 20 FF + 39 00 00 00 00 00 02 1F FF + 39 00 00 00 00 00 02 1E FF + 39 00 00 00 00 00 02 1D FF + 39 00 00 00 00 00 02 1C FE + 39 00 00 00 00 00 02 1B FD + 39 00 00 00 00 00 02 1A FD + 39 00 00 00 00 00 02 19 FC + 39 00 00 00 00 00 02 18 FB + 39 00 00 00 00 00 02 17 FA + 39 00 00 00 00 00 02 16 F9 + 39 00 00 00 00 00 02 15 F8 + 39 00 00 00 00 00 02 14 F7 + 39 00 00 00 00 00 02 13 F6 + 39 00 00 00 00 00 02 12 F6 + 39 00 00 00 00 00 02 11 F5 + 39 00 00 00 00 00 02 10 F4 + 39 00 00 00 00 00 02 0F F3 + 39 00 00 00 00 00 02 0E F2 + 39 00 00 00 00 00 02 0D F1 + 39 00 00 00 00 00 02 0C F0 + 39 00 00 00 00 00 02 0B EF + 39 00 00 00 00 00 02 0A EF + 39 00 00 00 00 00 02 09 EE + 39 00 00 00 00 00 02 08 ED + 39 00 00 00 00 00 02 07 EC + 39 00 00 00 00 00 02 06 EB + 39 00 00 00 00 00 02 05 EA + 39 00 00 00 00 00 02 04 E9 + 39 00 00 00 00 00 02 03 E8 + 39 00 00 00 00 00 02 02 E8 + 39 00 00 00 00 00 02 01 E7 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F 01 + 39 00 00 00 00 00 04 FF 98 81 06 + 39 00 00 00 00 00 02 00 01 + 39 00 00 00 00 00 02 7F 83 + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F E6 + 39 00 00 00 00 00 04 FF 98 81 08 + 39 00 00 00 00 00 02 00 E7 + 39 00 00 00 00 00 02 7F FF + 39 00 00 00 00 00 04 FF 98 81 09 + 39 00 00 00 00 00 02 00 00 + 39 00 00 00 00 00 02 7F b9 + 39 00 00 00 00 00 04 FF 98 81 0A + 39 00 00 00 00 00 02 00 46 + 39 00 00 00 00 00 02 7F 07 + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 80 01 + 39 01 00 00 00 00 04 FF 98 81 00 + + 39 00 00 00 00 00 04 FF 98 81 09 + 39 00 00 00 00 00 02 7F B9 + 39 00 00 00 00 00 02 7E B7 + 39 00 00 00 00 00 02 7D B6 + 39 00 00 00 00 00 02 7C B4 + 39 00 00 00 00 00 02 7B B2 + 39 00 00 00 00 00 02 7A B0 + 39 00 00 00 00 00 02 79 AF + 39 00 00 00 00 00 02 78 AD + 39 00 00 00 00 00 02 77 AB + 39 00 00 00 00 00 02 76 AA + 39 00 00 00 00 00 02 75 A8 + 39 00 00 00 00 00 02 74 A7 + 39 00 00 00 00 00 02 73 A5 + 39 00 00 00 00 00 02 72 A3 + 39 00 00 00 00 00 02 71 A1 + 39 00 00 00 00 00 02 70 9F + 39 00 00 00 00 00 02 6F 9E + 39 00 00 00 00 00 02 6E 9C + 39 00 00 00 00 00 02 6D 9A + 39 00 00 00 00 00 02 6C 99 + 39 00 00 00 00 00 02 6B 98 + 39 00 00 00 00 00 02 6A 97 + 39 00 00 00 00 00 02 69 95 + 39 00 00 00 00 00 02 68 94 + 39 00 00 00 00 00 02 67 92 + 39 00 00 00 00 00 02 66 90 + 39 00 00 00 00 00 02 65 8F + 39 00 00 00 00 00 02 64 8E + 39 00 00 00 00 00 02 63 8C + 39 00 00 00 00 00 02 62 8B + 39 00 00 00 00 00 02 61 8A + 39 00 00 00 00 00 02 60 88 + 39 00 00 00 00 00 02 5F 87 + 39 00 00 00 00 00 02 5E 86 + 39 00 00 00 00 00 02 5D 84 + 39 00 00 00 00 00 02 5C 83 + 39 00 00 00 00 00 02 5B 82 + 39 00 00 00 00 00 02 5A 00 + 39 00 00 00 00 00 02 59 01 + 39 00 00 00 00 00 02 58 02 + 39 00 00 00 00 00 02 57 03 + 39 00 00 00 00 00 02 56 04 + 39 00 00 00 00 00 02 55 05 + 39 00 00 00 00 00 02 54 06 + 39 00 00 00 00 00 02 53 07 + 39 00 00 00 00 00 02 52 09 + 39 00 00 00 00 00 02 51 0A + 39 00 00 00 00 00 02 50 0C + 39 00 00 00 00 00 02 4F 0E + 39 00 00 00 00 00 02 4E 10 + 39 00 00 00 00 00 02 4D 12 + 39 00 00 00 00 00 02 4C 14 + 39 00 00 00 00 00 02 4B 15 + 39 00 00 00 00 00 02 4A 16 + 39 00 00 00 00 00 02 49 17 + 39 00 00 00 00 00 02 48 19 + 39 00 00 00 00 00 02 47 1A + 39 00 00 00 00 00 02 46 1C + 39 00 00 00 00 00 02 45 1E + 39 00 00 00 00 00 02 44 1F + 39 00 00 00 00 00 02 43 21 + 39 00 00 00 00 00 02 42 22 + 39 00 00 00 00 00 02 41 23 + 39 00 00 00 00 00 02 40 25 + 39 00 00 00 00 00 02 3F 26 + 39 00 00 00 00 00 02 3E 27 + 39 00 00 00 00 00 02 3D 28 + 39 00 00 00 00 00 02 3C 2A + 39 00 00 00 00 00 02 3B 2B + 39 00 00 00 00 00 02 3A 2C + 39 00 00 00 00 00 02 39 2D + 39 00 00 00 00 00 02 38 2F + 39 00 00 00 00 00 02 37 31 + 39 00 00 00 00 00 02 36 33 + 39 00 00 00 00 00 02 35 35 + 39 00 00 00 00 00 02 34 37 + 39 00 00 00 00 00 02 33 39 + 39 00 00 00 00 00 02 32 3B + 39 00 00 00 00 00 02 31 3D + 39 00 00 00 00 00 02 30 3E + 39 00 00 00 00 00 02 2F 3F + 39 00 00 00 00 00 02 2E 40 + 39 00 00 00 00 00 02 2D 41 + 39 00 00 00 00 00 02 2C 42 + 39 00 00 00 00 00 02 2B 44 + 39 00 00 00 00 00 02 2A 45 + 39 00 00 00 00 00 02 29 46 + 39 00 00 00 00 00 02 28 48 + 39 00 00 00 00 00 02 27 49 + 39 00 00 00 00 00 02 26 4A + 39 00 00 00 00 00 02 25 4B + 39 00 00 00 00 00 02 24 4D + 39 00 00 00 00 00 02 23 4E + 39 00 00 00 00 00 02 22 50 + 39 00 00 00 00 00 02 21 52 + 39 00 00 00 00 00 02 20 53 + 39 00 00 00 00 00 02 1F AB + 39 00 00 00 00 00 02 1E A9 + 39 00 00 00 00 00 02 1D A8 + 39 00 00 00 00 00 02 1C A7 + 39 00 00 00 00 00 02 1B A6 + 39 00 00 00 00 00 02 1A A5 + 39 00 00 00 00 00 02 19 A4 + 39 00 00 00 00 00 02 18 A2 + 39 00 00 00 00 00 02 17 A1 + 39 00 00 00 00 00 02 16 9F + 39 00 00 00 00 00 02 15 9E + 39 00 00 00 00 00 02 14 9D + 39 00 00 00 00 00 02 13 9C + 39 00 00 00 00 00 02 12 9A + 39 00 00 00 00 00 02 11 98 + 39 00 00 00 00 00 02 10 97 + 39 00 00 00 00 00 02 0F 95 + 39 00 00 00 00 00 02 0E 93 + 39 00 00 00 00 00 02 0D 92 + 39 00 00 00 00 00 02 0C 91 + 39 00 00 00 00 00 02 0B 8F + 39 00 00 00 00 00 02 0A 8E + 39 00 00 00 00 00 02 09 8C + 39 00 00 00 00 00 02 08 8B + 39 00 00 00 00 00 02 07 8A + 39 00 00 00 00 00 02 06 89 + 39 00 00 00 00 00 02 05 87 + 39 00 00 00 00 00 02 04 86 + 39 00 00 00 00 00 02 03 85 + 39 00 00 00 00 00 02 02 84 + 39 00 00 00 00 00 02 01 83 + + 39 00 00 00 00 00 04 FF 98 81 05 + 39 00 00 00 00 00 02 7F 01 + 39 00 00 00 00 00 02 7E 01 + 39 00 00 00 00 00 02 7D 01 + 39 00 00 00 00 00 02 7C 01 + 39 00 00 00 00 00 02 7B 01 + 39 00 00 00 00 00 02 7A 02 + 39 00 00 00 00 00 02 79 02 + 39 00 00 00 00 00 02 78 02 + 39 00 00 00 00 00 02 77 02 + 39 00 00 00 00 00 02 76 02 + 39 00 00 00 00 00 02 75 02 + 39 00 00 00 00 00 02 74 03 + 39 00 00 00 00 00 02 73 03 + 39 00 00 00 00 00 02 72 03 + 39 00 00 00 00 00 02 71 03 + 39 00 00 00 00 00 02 70 03 + 39 00 00 00 00 00 02 6F 04 + 39 00 00 00 00 00 02 6E 04 + 39 00 00 00 00 00 02 6D 04 + 39 00 00 00 00 00 02 6C 04 + 39 00 00 00 00 00 02 6B 04 + 39 00 00 00 00 00 02 6A 04 + 39 00 00 00 00 00 02 69 04 + 39 00 00 00 00 00 02 68 05 + 39 00 00 00 00 00 02 67 04 + 39 00 00 00 00 00 02 66 04 + 39 00 00 00 00 00 02 65 04 + 39 00 00 00 00 00 02 64 04 + 39 00 00 00 00 00 02 63 04 + 39 00 00 00 00 00 02 62 04 + 39 00 00 00 00 00 02 61 04 + 39 00 00 00 00 00 02 60 04 + 39 00 00 00 00 00 02 5F 04 + 39 00 00 00 00 00 02 5E 04 + 39 00 00 00 00 00 02 5D 04 + 39 00 00 00 00 00 02 5C 04 + 39 00 00 00 00 00 02 5B 04 + 39 00 00 00 00 00 02 5A 04 + 39 00 00 00 00 00 02 59 04 + 39 00 00 00 00 00 02 58 04 + 39 00 00 00 00 00 02 57 04 + 39 00 00 00 00 00 02 56 04 + 39 00 00 00 00 00 02 55 04 + 39 00 00 00 00 00 02 54 04 + 39 00 00 00 00 00 02 53 04 + 39 00 00 00 00 00 02 52 04 + 39 00 00 00 00 00 02 51 04 + 39 00 00 00 00 00 02 50 04 + 39 00 00 00 00 00 02 4F 04 + 39 00 00 00 00 00 02 4E 04 + 39 00 00 00 00 00 02 4D 05 + 39 00 00 00 00 00 02 4C 05 + 39 00 00 00 00 00 02 4B 05 + 39 00 00 00 00 00 02 4A 05 + 39 00 00 00 00 00 02 49 06 + 39 00 00 00 00 00 02 48 06 + 39 00 00 00 00 00 02 47 07 + 39 00 00 00 00 00 02 46 07 + 39 00 00 00 00 00 02 45 08 + 39 00 00 00 00 00 02 44 08 + 39 00 00 00 00 00 02 43 07 + 39 00 00 00 00 00 02 42 07 + 39 00 00 00 00 00 02 41 07 + 39 00 00 00 00 00 02 40 08 + 39 00 00 00 00 00 02 3F 07 + 39 00 00 00 00 00 02 3E 07 + 39 00 00 00 00 00 02 3D 07 + 39 00 00 00 00 00 02 3C 07 + 39 00 00 00 00 00 02 3B 07 + 39 00 00 00 00 00 02 3A 06 + 39 00 00 00 00 00 02 39 06 + 39 00 00 00 00 00 02 38 06 + 39 00 00 00 00 00 02 37 05 + 39 00 00 00 00 00 02 36 05 + 39 00 00 00 00 00 02 35 04 + 39 00 00 00 00 00 02 34 04 + 39 00 00 00 00 00 02 33 03 + 39 00 00 00 00 00 02 32 04 + 39 00 00 00 00 00 02 31 05 + 39 00 00 00 00 00 02 30 06 + 39 00 00 00 00 00 02 2F 06 + 39 00 00 00 00 00 02 2E 05 + 39 00 00 00 00 00 02 2D 05 + 39 00 00 00 00 00 02 2C 05 + 39 00 00 00 00 00 02 2B 05 + 39 00 00 00 00 00 02 2A 06 + 39 00 00 00 00 00 02 29 05 + 39 00 00 00 00 00 02 28 05 + 39 00 00 00 00 00 02 27 05 + 39 00 00 00 00 00 02 26 05 + 39 00 00 00 00 00 02 25 04 + 39 00 00 00 00 00 02 24 04 + 39 00 00 00 00 00 02 23 03 + 39 00 00 00 00 00 02 22 04 + 39 00 00 00 00 00 02 21 05 + 39 00 00 00 00 00 02 20 06 + 39 00 00 00 00 00 02 1F 07 + 39 00 00 00 00 00 02 1E 08 + 39 00 00 00 00 00 02 1D 06 + 39 00 00 00 00 00 02 1C 06 + 39 00 00 00 00 00 02 1B 06 + 39 00 00 00 00 00 02 1A 05 + 39 00 00 00 00 00 02 19 05 + 39 00 00 00 00 00 02 18 05 + 39 00 00 00 00 00 02 17 04 + 39 00 00 00 00 00 02 16 04 + 39 00 00 00 00 00 02 15 05 + 39 00 00 00 00 00 02 14 05 + 39 00 00 00 00 00 02 13 05 + 39 00 00 00 00 00 02 12 05 + 39 00 00 00 00 00 02 11 05 + 39 00 00 00 00 00 02 10 04 + 39 00 00 00 00 00 02 0F 03 + 39 00 00 00 00 00 02 0E 04 + 39 00 00 00 00 00 02 0D 03 + 39 00 00 00 00 00 02 0C 03 + 39 00 00 00 00 00 02 0B 03 + 39 00 00 00 00 00 02 0A 03 + 39 00 00 00 00 00 02 09 04 + 39 00 00 00 00 00 02 08 04 + 39 00 00 00 00 00 02 07 03 + 39 00 00 00 00 00 02 06 03 + 39 00 00 00 00 00 02 05 03 + 39 00 00 00 00 00 02 04 02 + 39 00 00 00 00 00 02 03 02 + 39 00 00 00 00 00 02 02 01 + 39 00 00 00 00 00 02 01 00 + + 39 00 00 00 00 00 04 FF 98 81 01 + 39 00 00 00 00 00 02 D3 39 + 39 00 00 00 00 00 02 D2 5F + 39 00 00 00 00 00 02 D1 50 + 39 00 00 00 00 00 02 D0 27 + 39 00 00 00 00 00 02 CF 23 + 39 00 00 00 00 00 02 CE 4E + 39 00 00 00 00 00 02 CD 1B + 39 00 00 00 00 00 02 CC 1D + 39 00 00 00 00 00 02 CB 85 + 39 00 00 00 00 00 02 CA 2A + 39 00 00 00 00 00 02 C9 1E + 39 00 00 00 00 00 02 C8 93 + 39 00 00 00 00 00 02 C7 1F + 39 00 00 00 00 00 02 C6 1D + 39 00 00 00 00 00 02 C5 29 + 39 00 00 00 00 00 02 C4 16 + 39 00 00 00 00 00 02 C3 14 + 39 00 00 00 00 00 02 C2 2A + 39 00 00 00 00 00 02 C1 1B + 39 00 00 00 00 00 02 C0 00 + + 39 00 00 00 00 00 02 B3 39 + 39 00 00 00 00 00 02 B2 60 + 39 00 00 00 00 00 02 B1 51 + 39 00 00 00 00 00 02 B0 26 + 39 00 00 00 00 00 02 AF 22 + 39 00 00 00 00 00 02 AE 4E + 39 00 00 00 00 00 02 AD 1A + 39 00 00 00 00 00 02 AC 1C + 39 00 00 00 00 00 02 AB 86 + 39 00 00 00 00 00 02 AA 2A + 39 00 00 00 00 00 02 A9 1E + 39 00 00 00 00 00 02 A8 94 + 39 00 00 00 00 00 02 A7 1E + 39 00 00 00 00 00 02 A6 1D + 39 00 00 00 00 00 02 A5 29 + 39 00 00 00 00 00 02 A4 16 + 39 00 00 00 00 00 02 A3 13 + 39 00 00 00 00 00 02 A2 2B + 39 00 00 00 00 00 02 A1 1C + 39 00 00 00 00 00 02 A0 00 + 39 00 00 00 00 00 02 34 01 + 39 00 00 00 00 00 02 f6 03 + + 39 00 00 00 00 00 04 FF 98 81 07 + 39 00 00 00 00 00 02 7F E6 + 39 00 00 00 00 00 02 7E E5 + 39 00 00 00 00 00 02 7D E4 + 39 00 00 00 00 00 02 7C E3 + 39 00 00 00 00 00 02 7B E3 + 39 00 00 00 00 00 02 7A E2 + 39 00 00 00 00 00 02 79 E1 + 39 00 00 00 00 00 02 78 E0 + 39 00 00 00 00 00 02 77 DF + 39 00 00 00 00 00 02 76 DF + 39 00 00 00 00 00 02 75 DE + 39 00 00 00 00 00 02 74 DD + 39 00 00 00 00 00 02 73 DD + 39 00 00 00 00 00 02 72 DC + 39 00 00 00 00 00 02 71 DB + 39 00 00 00 00 00 02 70 DA + 39 00 00 00 00 00 02 6F DA + 39 00 00 00 00 00 02 6E D9 + 39 00 00 00 00 00 02 6D D8 + 39 00 00 00 00 00 02 6C D7 + 39 00 00 00 00 00 02 6B D6 + 39 00 00 00 00 00 02 6A D6 + 39 00 00 00 00 00 02 69 D5 + 39 00 00 00 00 00 02 68 D4 + 39 00 00 00 00 00 02 67 D4 + 39 00 00 00 00 00 02 66 D3 + 39 00 00 00 00 00 02 65 D2 + 39 00 00 00 00 00 02 64 D1 + 39 00 00 00 00 00 02 63 D0 + 39 00 00 00 00 00 02 62 CF + 39 00 00 00 00 00 02 61 CE + 39 00 00 00 00 00 02 60 CD + 39 00 00 00 00 00 02 5F CC + 39 00 00 00 00 00 02 5E CB + 39 00 00 00 00 00 02 5D CA + 39 00 00 00 00 00 02 5C C9 + 39 00 00 00 00 00 02 5B C8 + 39 00 00 00 00 00 02 5A C6 + 39 00 00 00 00 00 02 59 C5 + 39 00 00 00 00 00 02 58 C4 + 39 00 00 00 00 00 02 57 C3 + 39 00 00 00 00 00 02 56 C3 + 39 00 00 00 00 00 02 55 C2 + 39 00 00 00 00 00 02 54 C1 + 39 00 00 00 00 00 02 53 C0 + 39 00 00 00 00 00 02 52 C0 + 39 00 00 00 00 00 02 51 BF + 39 00 00 00 00 00 02 50 BE + 39 00 00 00 00 00 02 4F BD + 39 00 00 00 00 00 02 4E BC + 39 00 00 00 00 00 02 4D BC + 39 00 00 00 00 00 02 4C BB + 39 00 00 00 00 00 02 4B BB + 39 00 00 00 00 00 02 4A BA + 39 00 00 00 00 00 02 49 B9 + 39 00 00 00 00 00 02 48 B9 + 39 00 00 00 00 00 02 47 B8 + 39 00 00 00 00 00 02 46 B8 + 39 00 00 00 00 00 02 45 B7 + 39 00 00 00 00 00 02 44 B7 + 39 00 00 00 00 00 02 43 B7 + 39 00 00 00 00 00 02 42 B6 + 39 00 00 00 00 00 02 41 B5 + 39 00 00 00 00 00 02 40 B4 + 39 00 00 00 00 00 02 3F B3 + 39 00 00 00 00 00 02 3E B1 + 39 00 00 00 00 00 02 3D B0 + 39 00 00 00 00 00 02 3C B0 + 39 00 00 00 00 00 02 3B AF + 39 00 00 00 00 00 02 3A AE + 39 00 00 00 00 00 02 39 AD + 39 00 00 00 00 00 02 38 AC + 39 00 00 00 00 00 02 37 AB + 39 00 00 00 00 00 02 36 AA + 39 00 00 00 00 00 02 35 AA + 39 00 00 00 00 00 02 34 A9 + 39 00 00 00 00 00 02 33 A8 + 39 00 00 00 00 00 02 32 A8 + 39 00 00 00 00 00 02 31 A7 + 39 00 00 00 00 00 02 30 A7 + 39 00 00 00 00 00 02 2F A6 + 39 00 00 00 00 00 02 2E A6 + 39 00 00 00 00 00 02 2D A5 + 39 00 00 00 00 00 02 2C A4 + 39 00 00 00 00 00 02 2B A2 + 39 00 00 00 00 00 02 2A A0 + 39 00 00 00 00 00 02 29 9F + 39 00 00 00 00 00 02 28 9D + 39 00 00 00 00 00 02 27 9C + 39 00 00 00 00 00 02 26 9C + 39 00 00 00 00 00 02 25 9C + 39 00 00 00 00 00 02 24 9B + 39 00 00 00 00 00 02 23 9B + 39 00 00 00 00 00 02 22 9A + 39 00 00 00 00 00 02 21 99 + 39 00 00 00 00 00 02 20 99 + 39 00 00 00 00 00 02 1F 98 + 39 00 00 00 00 00 02 1E 98 + 39 00 00 00 00 00 02 1D 97 + 39 00 00 00 00 00 02 1C 96 + 39 00 00 00 00 00 02 1B 95 + 39 00 00 00 00 00 02 1A 94 + 39 00 00 00 00 00 02 19 93 + 39 00 00 00 00 00 02 18 92 + 39 00 00 00 00 00 02 17 91 + 39 00 00 00 00 00 02 16 91 + 39 00 00 00 00 00 02 15 91 + 39 00 00 00 00 00 02 14 90 + 39 00 00 00 00 00 02 13 8F + 39 00 00 00 00 00 02 12 8E + 39 00 00 00 00 00 02 11 8E + 39 00 00 00 00 00 02 10 8D + 39 00 00 00 00 00 02 0F 8C + 39 00 00 00 00 00 02 0E 8B + 39 00 00 00 00 00 02 0D 8A + 39 00 00 00 00 00 02 0C 89 + 39 00 00 00 00 00 02 0B 88 + 39 00 00 00 00 00 02 0A 88 + 39 00 00 00 00 00 02 09 87 + 39 00 00 00 00 00 02 08 86 + 39 00 00 00 00 00 02 07 85 + 39 00 00 00 00 00 02 06 85 + 39 00 00 00 00 00 02 05 84 + 39 00 00 00 00 00 02 04 83 + 39 00 00 00 00 00 02 03 83 + 39 00 00 00 00 00 02 02 83 + 39 00 00 00 00 00 02 01 82 + 39 00 00 00 00 00 04 FF 98 81 04 + 39 00 00 00 00 00 02 21 B0 + 39 00 00 00 00 00 02 32 02 + 39 01 00 00 00 00 04 FF 98 81 00 + ]; + + + + qcom,mdss-dsi-panel-eye-command-num = <8>; + qcom,mdss-dsi-panel-ce-std-command = [39 01 00 00 00 00 04 FF 98 81 02 + 39 01 00 00 00 00 02 10 06 + 39 01 00 00 00 00 04 FF 98 81 00]; + qcom,mdss-dsi-panel-ce-vivid-command = [39 00 00 00 00 00 04 FF 98 81 00 + 39 00 00 00 00 00 04 FF 98 81 02 + 39 00 00 00 00 00 02 10 16 + 39 00 00 00 00 00 02 68 03 + 39 00 00 00 00 00 02 69 20 + 39 00 00 00 00 00 02 6A 20 + 39 00 00 00 00 00 02 6B 01 + 39 00 00 00 00 00 02 6C 02 + 39 00 00 00 00 00 02 6D 03 + 39 00 00 00 00 00 02 6E 04 + 39 00 00 00 00 00 02 6F 05 + 39 00 00 00 00 00 02 70 05 + 39 00 00 00 00 00 02 71 05 + 39 00 00 00 00 00 02 72 05 + 39 00 00 00 00 00 02 73 05 + 39 00 00 00 00 00 02 74 05 + 39 00 00 00 00 00 02 75 06 + 39 00 00 00 00 00 02 76 07 + 39 00 00 00 00 00 02 77 07 + 39 00 00 00 00 00 02 78 07 + 39 00 00 00 00 00 02 79 07 + 39 00 00 00 00 00 02 7A 07 + 39 00 00 00 00 00 02 7B 06 + 39 00 00 00 00 00 02 7C 03 + 39 00 00 00 00 00 02 7D 03 + 39 00 00 00 00 00 02 7E 03 + 39 00 00 00 00 00 02 7F 03 + 39 01 00 00 00 00 04 FF 98 81 00 + + 39 00 00 00 00 00 04 FF 98 81 02 + 39 00 00 00 00 00 02 7F 03 + 39 00 00 00 00 00 02 7E 03 + 39 00 00 00 00 00 02 7D 03 + 39 00 00 00 00 00 02 7C 03 + 39 00 00 00 00 00 02 7B 06 + 39 00 00 00 00 00 02 7A 07 + 39 00 00 00 00 00 02 79 07 + 39 00 00 00 00 00 02 78 07 + 39 00 00 00 00 00 02 77 07 + 39 00 00 00 00 00 02 76 07 + 39 00 00 00 00 00 02 75 06 + 39 00 00 00 00 00 02 74 05 + 39 00 00 00 00 00 02 73 05 + 39 00 00 00 00 00 02 72 05 + 39 00 00 00 00 00 02 71 05 + 39 00 00 00 00 00 02 70 05 + 39 00 00 00 00 00 02 6F 05 + 39 00 00 00 00 00 02 6E 04 + 39 00 00 00 00 00 02 6D 03 + 39 00 00 00 00 00 02 6C 02 + 39 00 00 00 00 00 02 6B 01 + 39 00 00 00 00 00 02 6A 20 + 39 00 00 00 00 00 02 69 20 + 39 00 00 00 00 00 02 68 03 + 39 00 00 00 00 00 02 10 16 + 39 01 00 00 00 00 04 FF 98 81 00]; + qcom,mdss-dsi-panel-ce-command-state = "dsi_hs_mode"; + + + qcom,mdss-dsi-h-sync-pulse = <1>; + qcom,mdss-dsi-traffic-mode = "burst_mode"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-lane-3-state; + + qcom,mdss-dsi-panel-timings = [8B 1E 14 00 44 48 18 22 19 03 04 00]; + qcom,mdss-dsi-t-clk-post = <0x04>; + qcom,mdss-dsi-t-clk-pre = <0x1C>; + qcom,mdss-dsi-bl-min-level = <4>; + qcom,mdss-dsi-bl-max-level = <255>; + qcom,mdss-dsi-bl-pmic-pwm-frequency = <100>; + qcom,mdss-dsi-bl-pmic-bank-select = <0>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm"; + qcom,mdss-dsi-pwm-gpio = <&pm8937_mpps 4 0>; + + qcom,esd-check-enabled; + qcom,mdss-dsi-panel-status-command = [06 01 00 01 05 00 02 0A 08]; + qcom,mdss-dsi-panel-status-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-panel-status-check-mode = "reg_read"; + qcom,mdss-dsi-panel-status-valid-params = <1>; + qcom,mdss-dsi-panel-status-value = <0x9c>; + qcom,mdss-dsi-panel-status-read-length = <1>; + + qcom,mdss-dsi-lp11-init; + qcom,mdss-dsi-init-delay-us = <50000>; + qcom,mdss-dsi-reset-sequence = <1 5>, <0 10>, <1 80>; + + }; +}; diff --git a/arch/arm/boot/dts/qcom/dsi-panel-nt35521s-ebbg-c3a-720p-video.dtsi b/arch/arm/boot/dts/qcom/dsi-panel-nt35521s-ebbg-c3a-720p-video.dtsi new file mode 100644 index 0000000000000..6fd0009f31f09 --- /dev/null +++ b/arch/arm/boot/dts/qcom/dsi-panel-nt35521s-ebbg-c3a-720p-video.dtsi @@ -0,0 +1,233 @@ +/* Copyright (c) 2013, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + See the + * GNU General Public License for more details. + */ + +/*--------------------------------------------------------------------------- + * This file is autogenerated file using gcdb parser. Please do not edit it. + * Update input XML file to add a new entry or update variable in this file + * VERSION = "1.0" + *---------------------------------------------------------------------------*/ +&mdss_mdp { + dsi_nt35521s_ebbg_720_video: qcom,mdss_dsi_nt35521s_ebbg_720p_video { + qcom,mdss-dsi-panel-name = "nt35521s_HD720p_video_EBBG_c3a"; + qcom,mdss-dsi-panel-controller = <&mdss_dsi0>; + qcom,mdss-dsi-panel-type = "dsi_video_mode"; + qcom,mdss-dsi-panel-destination = "display_1"; + qcom,mdss-dsi-panel-framerate = <60>; + qcom,mdss-dsi-virtual-channel-id = <0>; + qcom,mdss-dsi-stream = <0>; + qcom,mdss-dsi-panel-width = <720>; + qcom,mdss-dsi-panel-height = <1280>; + qcom,mdss-pan-physical-width-dimension = <62>; + qcom,mdss-pan-physical-height-dimension = <110>; + qcom,mdss-dsi-h-front-porch = <240>; + qcom,mdss-dsi-h-back-porch = <241>; + qcom,mdss-dsi-h-pulse-width = <20>; + qcom,mdss-dsi-h-sync-skew = <0>; + qcom,mdss-dsi-v-back-porch = <28>; + qcom,mdss-dsi-v-front-porch = <35>; + qcom,mdss-dsi-v-pulse-width = <2>; + qcom,mdss-dsi-h-left-border = <0>; + qcom,mdss-dsi-h-right-border = <0>; + qcom,mdss-dsi-v-top-border = <0>; + qcom,mdss-dsi-v-bottom-border = <20>; + qcom,mdss-dsi-bpp = <24>; + qcom,mdss-dsi-underflow-color = <0x00>; + qcom,mdss-dsi-border-color = <0>; + qcom,mdss-dsi-on-command = [29 01 00 00 00 00 06 F0 55 AA 52 08 00 + 29 01 00 00 00 00 02 B1 6C + 29 01 00 00 00 00 02 64 07 + 29 01 00 00 00 00 03 CC 40 00 + 29 01 00 00 00 00 11 D1 00 00 00 01 01 01 01 01 01 01 01 01 02 02 02 02 + 29 01 00 00 00 00 0D D7 00 00 00 00 00 00 00 00 00 00 00 00 + 29 01 00 00 00 00 0D D8 00 00 00 00 00 00 00 00 00 00 00 00 + 29 01 00 00 00 00 06 F0 55 AA 52 00 00 + 29 01 00 00 00 00 05 FF AA 55 25 01 + 29 01 00 00 00 00 02 6F 1A + 29 01 00 00 00 00 02 F7 05 + 29 01 00 00 00 00 02 6F 16 + 29 01 00 00 00 00 02 F7 10 + 29 01 00 00 00 00 02 6F 10 + 29 01 00 00 00 00 02 F7 1D + 29 01 00 00 00 00 05 FF AA 55 25 00 + 29 01 00 00 00 00 02 35 00 + 05 01 00 00 78 00 02 11 00 + 05 01 00 00 00 00 02 29 00 + 37 01 00 00 00 00 02 01 00]; + qcom,mdss-dsi-off-command = [05 01 00 00 00 00 02 28 00 + 05 01 00 00 78 00 02 10 00]; + qcom,mdss-dsi-on-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-off-command-state = "dsi_hs_mode"; + qcom,mdss-dsi-panel-warm-command = [29 01 00 00 00 00 06 F0 55 AA 52 08 00 + 29 01 00 00 00 00 02 26 01 + 29 01 00 00 00 00 02 26 02]; + qcom,mdss-dsi-panel-cool-command = [29 01 00 00 00 00 06 F0 55 AA 52 08 00 + 29 01 00 00 00 00 02 26 02 + 29 01 00 00 00 00 02 26 04]; + qcom,mdss-dsi-panel-nature-command = [29 01 00 00 00 00 06 F0 55 AA 52 08 00 + 29 01 00 00 00 00 02 26 02 + 29 01 00 00 00 00 02 26 01]; + qcom,mdss-dsi-panel-gamma-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-panel-ce-std-command = [29 00 00 00 00 00 06 F0 55 AA 52 08 00 + 29 01 00 00 00 00 02 55 00]; + qcom,mdss-dsi-panel-ce-bright-command = [29 00 00 00 00 00 06 F0 55 AA 52 08 00 + 29 01 00 00 00 00 02 55 B0]; + qcom,mdss-dsi-panel-ce-vivid-command = [29 00 00 00 00 00 06 F0 55 AA 52 08 00 + 29 01 00 00 00 00 02 55 80]; + qcom,mdss-dsi-panel-ce-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-panel-eye-command01 = [29 00 00 00 00 00 06 F0 55 AA 52 08 02 + 29 01 00 00 00 00 02 EE 03 + 29 00 00 00 00 00 11 B0 00 14 00 2C 00 51 00 6D 00 85 00 AB 00 CA 00 FC + 29 01 00 00 00 00 11 B1 01 24 01 60 01 8E 01 D7 02 10 02 12 02 47 02 89 + 29 00 00 00 00 00 11 B2 02 B4 02 EE 03 14 03 43 03 60 03 86 03 97 03 B0 + 29 01 00 00 00 00 05 B3 03 D3 03 D5 + 29 00 00 00 00 00 11 B4 01 02 01 06 01 0F 01 18 01 21 01 31 01 40 01 59 + 29 01 00 00 00 00 11 B5 01 70 01 98 01 BB 01 F3 02 24 02 26 02 59 02 98 + 29 00 00 00 00 00 11 B6 02 C3 02 FB 03 20 03 4E 03 6A 03 8C 03 9E 03 B4 + 29 01 00 00 00 00 05 B7 03 D0 03 D5 + 29 00 00 00 00 00 11 B8 01 51 01 54 01 59 01 5F 01 64 01 6E 01 77 01 8A + 29 00 00 00 00 00 11 B9 01 9C 01 BC 01 D7 02 08 02 35 02 36 02 67 02 A5 + 29 00 00 00 00 00 11 BA 02 CF 03 07 03 29 03 56 03 71 03 8E 03 A2 03 CF + 29 01 00 00 00 00 05 BB 03 D4 03 D5]; + qcom,mdss-dsi-panel-eye-command02 = [29 00 00 00 00 00 06 F0 55 AA 52 08 02 + 29 01 00 00 00 00 02 EE 03 + 29 00 00 00 00 00 11 B0 00 14 00 2C 00 51 00 6D 00 85 00 AB 00 CA 00 FC + 29 01 00 00 00 00 11 B1 01 24 01 60 01 8E 01 D7 02 10 02 12 02 47 02 89 + 29 00 00 00 00 00 11 B2 02 B4 02 EE 03 14 03 43 03 60 03 86 03 97 03 B0 + 29 01 00 00 00 00 05 B3 03 D3 03 D5 + 29 00 00 00 00 00 11 B4 01 02 01 06 01 0F 01 18 01 21 01 31 01 40 01 59 + 29 01 00 00 00 00 11 B5 01 70 01 98 01 BB 01 F3 02 24 02 26 02 59 02 98 + 29 00 00 00 00 00 11 B6 02 C3 02 FB 03 20 03 4E 03 6A 03 8C 03 9E 03 B4 + 29 01 00 00 00 00 05 B7 03 D0 03 D5 + 29 00 00 00 00 00 11 B8 01 75 01 77 01 7B 01 80 01 84 01 8D 01 96 01 A5 + 29 00 00 00 00 00 11 B9 01 B4 01 CF 01 E7 02 14 02 3E 02 3F 02 70 02 AD + 29 00 00 00 00 00 11 BA 02 D6 03 0E 03 30 03 5B 03 75 03 90 03 A5 03 D1 + 29 01 00 00 00 00 05 BB 03 D4 03 D5]; + qcom,mdss-dsi-panel-eye-command03 = [29 00 00 00 00 00 06 F0 55 AA 52 08 02 + 29 01 00 00 00 00 02 EE 03 + 29 00 00 00 00 00 11 B0 00 14 00 2C 00 51 00 6D 00 85 00 AB 00 CA 00 FC + 29 01 00 00 00 00 11 B1 01 24 01 60 01 8E 01 D7 02 10 02 12 02 47 02 89 + 29 00 00 00 00 00 11 B2 02 B4 02 EE 03 14 03 43 03 60 03 86 03 97 03 B0 + 29 01 00 00 00 00 05 B3 03 D3 03 D5 + 29 00 00 00 00 00 11 B4 01 02 01 06 01 0F 01 18 01 21 01 31 01 40 01 59 + 29 01 00 00 00 00 11 B5 01 70 01 98 01 BB 01 F3 02 24 02 26 02 59 02 98 + 29 00 00 00 00 00 11 B6 02 C3 02 FB 03 20 03 4E 03 6A 03 8C 03 9E 03 B4 + 29 01 00 00 00 00 05 B7 03 D0 03 D5 + 29 00 00 00 00 00 11 B8 01 91 01 93 01 97 01 9B 01 9F 01 A6 01 AD 01 BB + 29 00 00 00 00 00 11 B9 01 C8 01 E0 01 F6 02 1E 02 47 02 49 02 78 02 B5 + 29 00 00 00 00 00 11 BA 02 DE 03 14 03 36 03 60 03 79 03 94 03 A8 03 D2 + 29 01 00 00 00 00 05 BB 03 D4 03 D5]; + qcom,mdss-dsi-panel-eye-command04 = [29 00 00 00 00 00 06 F0 55 AA 52 08 02 + 29 01 00 00 00 00 02 EE 03 + 29 00 00 00 00 00 11 B0 00 14 00 2C 00 51 00 6D 00 85 00 AB 00 CA 00 FC + 29 01 00 00 00 00 11 B1 01 24 01 60 01 8E 01 D7 02 10 02 12 02 47 02 89 + 29 00 00 00 00 00 11 B2 02 B4 02 EE 03 14 03 43 03 60 03 86 03 97 03 B0 + 29 01 00 00 00 00 05 B3 03 D3 03 D5 + 29 00 00 00 00 00 11 B4 01 02 01 06 01 0F 01 18 01 21 01 31 01 40 01 59 + 29 01 00 00 00 00 11 B5 01 70 01 98 01 BB 01 F3 02 24 02 26 02 59 02 98 + 29 00 00 00 00 00 11 B6 02 C3 02 FB 03 20 03 4E 03 6A 03 8C 03 9E 03 B4 + 29 01 00 00 00 00 05 B7 03 D0 03 D5 + 29 00 00 00 00 00 11 B8 01 B1 01 B2 01 B6 01 B9 01 BC 01 C2 01 C8 01 D3 + 29 00 00 00 00 00 11 B9 01 DE 01 F3 02 06 02 2C 02 53 02 54 02 83 02 BE + 29 00 00 00 00 00 11 BA 02 E7 03 1C 03 3D 03 67 03 80 03 99 03 AA 03 D2 + 29 01 00 00 00 00 05 BB 03 D4 03 D5]; + qcom,mdss-dsi-panel-eye-command05 = [29 00 00 00 00 00 06 F0 55 AA 52 08 02 + 29 01 00 00 00 00 02 EE 03 + 29 00 00 00 00 00 11 B0 00 14 00 2C 00 51 00 6D 00 85 00 AB 00 CA 00 FC + 29 01 00 00 00 00 11 B1 01 24 01 60 01 8E 01 D7 02 10 02 12 02 47 02 89 + 29 00 00 00 00 00 11 B2 02 B4 02 EE 03 14 03 43 03 60 03 86 03 97 03 B0 + 29 01 00 00 00 00 05 B3 03 D3 03 D5 + 29 00 00 00 00 00 11 B4 01 02 01 06 01 0F 01 18 01 21 01 31 01 40 01 59 + 29 01 00 00 00 00 11 B5 01 70 01 98 01 BB 01 F3 02 24 02 26 02 59 02 98 + 29 00 00 00 00 00 11 B6 02 C3 02 FB 03 20 03 4E 03 6A 03 8C 03 9E 03 B4 + 29 01 00 00 00 00 05 B7 03 D0 03 D5 + 29 00 00 00 00 00 11 B8 01 C8 01 C9 01 CC 01 CF 01 D1 01 D6 01 DB 01 E6 + 29 00 00 00 00 00 11 B9 01 EF 02 02 02 14 02 37 02 5D 02 5E 02 8B 02 C7 + 29 00 00 00 00 00 11 BA 02 EF 03 23 03 43 03 6C 03 85 03 9D 03 AC 03 D2 + 29 01 00 00 00 00 05 BB 03 D4 03 D5]; + qcom,mdss-dsi-panel-eye-command06 = [29 00 00 00 00 00 06 F0 55 AA 52 08 02 + 29 01 00 00 00 00 02 EE 03 + 29 00 00 00 00 00 11 B0 00 14 00 2C 00 51 00 6D 00 85 00 AB 00 CA 00 FC + 29 01 00 00 00 00 11 B1 01 24 01 60 01 8E 01 D7 02 10 02 12 02 47 02 89 + 29 00 00 00 00 00 11 B2 02 B4 02 EE 03 14 03 43 03 60 03 86 03 97 03 B0 + 29 01 00 00 00 00 05 B3 03 D3 03 D5 + 29 00 00 00 00 00 11 B4 01 02 01 06 01 0F 01 18 01 21 01 31 01 40 01 59 + 29 01 00 00 00 00 11 B5 01 70 01 98 01 BB 01 F3 02 24 02 26 02 59 02 98 + 29 00 00 00 00 00 11 B6 02 C3 02 FB 03 20 03 4E 03 6A 03 8C 03 9E 03 B4 + 29 01 00 00 00 00 05 B7 03 D0 03 D5 + 29 00 00 00 00 00 11 B8 01 DE 01 E0 01 E2 01 E5 01 E6 01 EB 01 F0 01 F8 + 29 00 00 00 00 00 11 B9 02 01 02 12 02 22 02 44 02 68 02 6A 02 96 02 D1 + 29 00 00 00 00 00 11 BA 02 F8 03 2A 03 4A 03 71 03 89 03 A1 03 C6 03 D3 + 29 01 00 00 00 00 05 BB 03 D4 03 D5]; + qcom,mdss-dsi-panel-eye-command07 = [29 00 00 00 00 00 06 F0 55 AA 52 08 02 + 29 01 00 00 00 00 02 EE 03 + 29 00 00 00 00 00 11 B0 00 14 00 2C 00 51 00 6D 00 85 00 AB 00 CA 00 FC + 29 01 00 00 00 00 11 B1 01 24 01 60 01 8E 01 D7 02 10 02 12 02 47 02 89 + 29 00 00 00 00 00 11 B2 02 B4 02 EE 03 14 03 43 03 60 03 86 03 97 03 B0 + 29 01 00 00 00 00 05 B3 03 D3 03 D5 + 29 00 00 00 00 00 11 B4 01 02 01 06 01 0F 01 18 01 21 01 31 01 40 01 59 + 29 01 00 00 00 00 11 B5 01 70 01 98 01 BB 01 F3 02 24 02 26 02 59 02 98 + 29 00 00 00 00 00 11 B6 02 C3 02 FB 03 20 03 4E 03 6A 03 8C 03 9E 03 B4 + 29 01 00 00 00 00 05 B7 03 D0 03 D5 + 29 00 00 00 00 00 11 B8 01 F4 01 F5 01 F7 01 F9 01 FB 01 FF 02 02 02 0B + 29 00 00 00 00 00 11 B9 02 12 02 21 02 31 02 50 02 75 02 76 02 A1 02 DC + 29 00 00 00 00 00 11 BA 03 03 03 33 03 52 03 76 03 8C 03 A5 03 CA 03 D3 + 29 01 00 00 00 00 05 BB 03 D4 03 D5]; + qcom,mdss-dsi-panel-eye-command08 = [29 00 00 00 00 00 06 F0 55 AA 52 08 02 + 29 01 00 00 00 00 02 EE 03 + 29 00 00 00 00 00 11 B0 00 14 00 2C 00 51 00 6D 00 85 00 AB 00 CA 00 FC + 29 01 00 00 00 00 11 B1 01 24 01 60 01 8E 01 D7 02 10 02 12 02 47 02 89 + 29 00 00 00 00 00 11 B2 02 B4 02 EE 03 14 03 43 03 60 03 86 03 97 03 B0 + 29 01 00 00 00 00 05 B3 03 D3 03 D5 + 29 00 00 00 00 00 11 B4 01 02 01 06 01 0F 01 18 01 21 01 31 01 40 01 59 + 29 01 00 00 00 00 11 B5 01 70 01 98 01 BB 01 F3 02 24 02 26 02 59 02 98 + 29 00 00 00 00 00 11 B6 02 C3 02 FB 03 20 03 4E 03 6A 03 8C 03 9E 03 B4 + 29 01 00 00 00 00 05 B7 03 D0 03 D5 + 29 00 00 00 00 00 11 B8 02 07 02 08 02 0A 02 0B 02 0E 02 11 02 14 02 1B + 29 00 00 00 00 00 11 B9 02 23 02 31 02 3F 02 5E 02 81 02 82 02 AD 02 E7 + 29 00 00 00 00 00 11 BA 03 0D 03 3C 03 5A 03 7D 03 8E 03 A8 03 CE 03 D3 + 29 01 00 00 00 00 05 BB 03 D4 03 D5]; + qcom,mdss-dsi-panel-eye-command-num = <8>; + qcom,mdss-dsi-init-last; + qcom,mdss-dsi-h-sync-pulse = <1>; + qcom,mdss-dsi-traffic-mode = "non_burst_sync_event"; + qcom,mdss-dsi-bllp-eof-power-mode; + qcom,mdss-dsi-bllp-power-mode; + qcom,mdss-dsi-lane-0-state; + qcom,mdss-dsi-lane-1-state; + qcom,mdss-dsi-lane-2-state; + qcom,mdss-dsi-tx-eot-append; + qcom,mdss-dsi-hbp-power-mode; + qcom,mdss-dsi-panel-timings = [CF 32 20 00 5E 62 26 34 29 03 04 00]; + qcom,mdss-dsi-t-clk-post = <0x03>; + qcom,mdss-dsi-t-clk-pre = <0x27>; + qcom,mdss-dsi-bl-min-level = <4>; + qcom,mdss-dsi-bl-max-level = <255>; + qcom,mdss-dsi-bl-pmic-pwm-frequency = <100>; + qcom,mdss-dsi-bl-pmic-bank-select = <0>; + qcom,mdss-dsi-dma-trigger = "trigger_sw"; + qcom,mdss-dsi-mdp-trigger = "none"; + + qcom,esd-check-enabled; + qcom,mdss-dsi-panel-status-command = [06 01 00 01 05 00 02 0A 08]; + qcom,mdss-dsi-panel-status-command-state = "dsi_lp_mode"; + qcom,mdss-dsi-panel-status-check-mode = "reg_read"; + qcom,mdss-dsi-panel-status-value = <0x9C>; + qcom,mdss-dsi-panel-status-read-length = <1>; + + qcom,mdss-dsi-lp11-init; + qcom,mdss-dsi-init-delay-us = <50000>; + qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_pwm"; + qcom,mdss-dsi-pwm-gpio = <&pm8937_mpps 4 0>; + qcom,mdss-dsi-reset-sequence = <1 5>, <0 10>, <1 80>; + }; +}; diff --git a/arch/arm/boot/dts/qcom/msm-audio.dtsi b/arch/arm/boot/dts/qcom/msm-audio.dtsi index ee732f71cce41..2e2eada23234f 100644 --- a/arch/arm/boot/dts/qcom/msm-audio.dtsi +++ b/arch/arm/boot/dts/qcom/msm-audio.dtsi @@ -317,17 +317,19 @@ qcom,msm-mclk-freq = <9600000>; qcom,msm-mbhc-hphl-swh = <0>; qcom,msm-mbhc-gnd-swh = <0>; - qcom,msm-hs-micbias-type = "external"; + qcom,msm-hs-micbias-type = "internal"; + ext-spk-amp-gpio = <&tlmm 124 0>; + headset-gpio = <&tlmm 129 0>; qcom,msm-micbias1-ext-cap; qcom,audio-routing = "RX_BIAS", "MCLK", "SPK_RX_BIAS", "MCLK", "INT_LDO_H", "MCLK", "MIC BIAS External", "Handset Mic", - "MIC BIAS External2", "Headset Mic", + "MIC BIAS Internal2", "Headset Mic", "MIC BIAS External", "Secondary Mic", "AMIC1", "MIC BIAS External", - "AMIC2", "MIC BIAS External2", + "AMIC2", "MIC BIAS Internal2", "AMIC3", "MIC BIAS External", "WSA_SPK OUT", "VDD_WSA_SWITCH", "SpkrMono WSA_IN", "WSA_SPK OUT"; diff --git a/arch/arm/boot/dts/qcom/msm-pm8937.dtsi b/arch/arm/boot/dts/qcom/msm-pm8937.dtsi index e523cbdfb5dce..b12393cc423e4 100644 --- a/arch/arm/boot/dts/qcom/msm-pm8937.dtsi +++ b/arch/arm/boot/dts/qcom/msm-pm8937.dtsi @@ -35,10 +35,15 @@ "resin-bark", "kpdpwr-resin-bark"; qcom,pon-dbc-delay = <15625>; qcom,system-reset; + qcom,store-hard-reset-reason; qcom,pon_1 { qcom,pon-type = <0>; qcom,pull-up = <1>; + qcom,support-reset = <1>; + qcom,s1-timer = <4480>; + qcom,s2-timer = <2000>; + qcom,s2-type = <7>; linux,code = <116>; }; diff --git a/arch/arm/boot/dts/qcom/msm-pm8953-rpm-regulator.dtsi b/arch/arm/boot/dts/qcom/msm-pm8953-rpm-regulator.dtsi index 2db90e29a82f1..874027bbc16a2 100644 --- a/arch/arm/boot/dts/qcom/msm-pm8953-rpm-regulator.dtsi +++ b/arch/arm/boot/dts/qcom/msm-pm8953-rpm-regulator.dtsi @@ -226,13 +226,13 @@ qcom,resource-id = <10>; qcom,regulator-type = <0>; qcom,hpm-min-load = <10000>; - status = "disabled"; + status = "okay"; regulator-l10 { compatible = "qcom,rpm-smd-regulator"; regulator-name = "pm8953_l10"; qcom,set = <3>; - status = "disabled"; + status = "okay"; }; }; diff --git a/arch/arm/boot/dts/qcom/msm-pm8953.dtsi b/arch/arm/boot/dts/qcom/msm-pm8953.dtsi index 7fad9be18b27d..d247da0d82cff 100644 --- a/arch/arm/boot/dts/qcom/msm-pm8953.dtsi +++ b/arch/arm/boot/dts/qcom/msm-pm8953.dtsi @@ -35,10 +35,15 @@ "resin-bark", "kpdpwr-resin-bark"; qcom,pon-dbc-delay = <15625>; qcom,system-reset; + qcom,store-hard-reset-reason; qcom,pon_1 { qcom,pon-type = <0>; qcom,pull-up = <1>; + qcom,support-reset = <1>; + qcom,s1-timer = <4480>; + qcom,s2-timer = <2000>; + qcom,s2-type = <7>; linux,code = <116>; }; diff --git a/arch/arm/boot/dts/qcom/msm-pmi8940.dtsi b/arch/arm/boot/dts/qcom/msm-pmi8940.dtsi index 618daeb8c3796..d1b84d6add533 100644 --- a/arch/arm/boot/dts/qcom/msm-pmi8940.dtsi +++ b/arch/arm/boot/dts/qcom/msm-pmi8940.dtsi @@ -493,6 +493,7 @@ qcom,sync-dly-us = <800>; qcom,fs-curr-ua = <20000>; qcom,en-phase-stag; + qcom,en-cabc; qcom,led-strings-list = [00 01]; qcom,en-ext-pfet-sc-pro; qcom,cons-sync-write-delay-us = <1000>; @@ -529,7 +530,7 @@ qcom,max-current = <1000>; qcom,duration = <1280>; qcom,id = <0>; - qcom,current = <625>; + qcom,current = <1000>; }; pmi8940_flash1: qcom,flash_1 { @@ -540,7 +541,7 @@ qcom,max-current = <1000>; qcom,duration = <1280>; qcom,id = <1>; - qcom,current = <625>; + qcom,current = <800>; }; pmi8940_torch0: qcom,torch_0 { @@ -560,7 +561,7 @@ "torch1_trigger"; qcom,max-current = <200>; qcom,id = <1>; - qcom,current = <120>; + qcom,current = <75>; }; pmi8940_switch: qcom,switch { @@ -587,13 +588,12 @@ vcc_pon-supply = <&pon_perph_reg>; qcom,play-mode = "direct"; qcom,wave-play-rate-us = <5263>; - qcom,actuator-type = "lra"; + qcom,actuator-type = "erm"; qcom,wave-shape = "square"; - qcom,vmax-mv = <2000>; + qcom,vmax-mv = <2900>; qcom,ilim-ma = <800>; qcom,sc-deb-cycles = <8>; qcom,int-pwm-freq-khz = <505>; - qcom,en-brake; qcom,brake-pattern = [03 03 00 00]; qcom,use-play-irq; qcom,use-sc-irq; diff --git a/arch/arm/boot/dts/qcom/msm-pmi8950.dtsi b/arch/arm/boot/dts/qcom/msm-pmi8950.dtsi index 25244c0506e53..7d18b019f490e 100644 --- a/arch/arm/boot/dts/qcom/msm-pmi8950.dtsi +++ b/arch/arm/boot/dts/qcom/msm-pmi8950.dtsi @@ -215,7 +215,6 @@ qcom,pmic-revid = <&pmi8950_revid>; qcom,force-aicl-rerun; qcom,aicl-rerun-period-s = <180>; - qcom,autoadjust-vfloat; qcom,chgr@1000 { reg = <0x1000 0x100>; @@ -528,6 +527,7 @@ qcom,hyb-thres = <625>; qcom,sync-dly-us = <800>; qcom,fs-curr-ua = <20000>; + qcom,en-cabc; qcom,led-strings-list = [00 01]; qcom,en-ext-pfet-sc-pro; qcom,cons-sync-write-delay-us = <1000>; @@ -585,7 +585,7 @@ "torch0_trigger"; qcom,max-current = <200>; qcom,id = <0>; - qcom,current = <120>; + qcom,current = <100>; }; pmi8950_torch1: qcom,torch_1 { @@ -595,7 +595,16 @@ "torch1_trigger"; qcom,max-current = <200>; qcom,id = <1>; - qcom,current = <120>; + qcom,current = <100>; + }; + pmi8950_torch2: qcom,torch_2 { + label = "torch"; + qcom,led-name = "flashlight"; + qcom,default-led-trigger = + "torch2_trigger"; + qcom,max-current = <200>; + qcom,id = <1>; + qcom,current = <100>; }; pmi8950_switch: qcom,switch { @@ -624,11 +633,10 @@ qcom,wave-play-rate-us = <5263>; qcom,actuator-type = "erm"; qcom,wave-shape = "square"; - qcom,vmax-mv = <2000>; + qcom,vmax-mv = <2700>; qcom,ilim-ma = <800>; qcom,sc-deb-cycles = <8>; qcom,int-pwm-freq-khz = <505>; - qcom,en-brake; qcom,brake-pattern = [03 03 00 00]; qcom,use-play-irq; qcom,use-sc-irq; diff --git a/arch/arm/boot/dts/qcom/msm8917-camera-pinctrl.dtsi b/arch/arm/boot/dts/qcom/msm8917-camera-pinctrl.dtsi index a48b5dfc866f6..ce9315b0fa7d1 100644 --- a/arch/arm/boot/dts/qcom/msm8917-camera-pinctrl.dtsi +++ b/arch/arm/boot/dts/qcom/msm8917-camera-pinctrl.dtsi @@ -275,3 +275,16 @@ cam_sensor_front1_sleep: cam_sensor_front1_sleep { drive-strength = <2>; /* 2 MA */ }; }; + +SGM3780_default: SGM3780_default { + mux { + pins = "gpio90", "gpio93"; + function = "gpio"; + }; + + config { + pins = "gpio90", "gpio93"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; +}; diff --git a/arch/arm/boot/dts/qcom/msm8917-camera-sensor-qrd-s88503.dtsi b/arch/arm/boot/dts/qcom/msm8917-camera-sensor-qrd-s88503.dtsi new file mode 100644 index 0000000000000..ebcdbb518ecbb --- /dev/null +++ b/arch/arm/boot/dts/qcom/msm8917-camera-sensor-qrd-s88503.dtsi @@ -0,0 +1,459 @@ +/* + * Copyright (c) 2016, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&soc { + flash_SGM3780:flashlight { + compatible = "qcom,leds-gpio-flash"; + status = "okay"; + pinctrl-names = "flash_default"; + pinctrl-0 = <&SGM3780_default>; + qcom,flash-en = <93>; + qcom,flash-now = <90>; + qcom,op-seq = "flash_en", "flash_now"; + qcom,torch-seq-val = <1 0>; + qcom,flash-seq-val = <0 1>; + linux,name = "flashlight"; + linux,default-trigger = "flashlight-trigger"; + }; + + led_flash0: qcom,camera-flash { + cell-index = <0>; + compatible = "qcom,camera-flash"; + qcom,flash-type = <3>; + qcom,flash-source = <&flash_SGM3780>; + qcom,torch-source = <&flash_SGM3780>; + }; + }; + +&cci { + actuator0: qcom,actuator@0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,actuator"; + qcom,cci-master = <0>; + cam_vaf-supply = <&pm8917_l17>; + qcom,cam-vreg-name = "cam_vaf"; + qcom,cam-vreg-min-voltage = <2850000>; + qcom,cam-vreg-max-voltage = <2850000>; + qcom,cam-vreg-op-mode = <80000>; + }; + + eeprom0: qcom,eeprom@0 { + cell-index = <0>; + reg = <0x00>; + qcom,eeprom-name = "ov13850"; + compatible = "qcom,eeprom"; + qcom,slave-addr = <0x20>; + qcom,cci-master = <0>; + qcom,num-blocks = <1>; + qcom,page0 = <0 0x3d85 2 0x16 1 0>; + qcom,poll0 = <0 0x3d85 2 0x16 1 0>; + qcom,mem0 = <410 0x7220 2 0 1 1>; + cam_vdig-supply = <&pm8917_l23>; + cam_vana-supply = <&pm8917_l22>; + cam_vio-supply = <&pm8917_l6>; + cam_vaf-supply = <&pm8917_l17>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana", + "cam_vaf"; + qcom,cam-vreg-min-voltage = <1200000 1800000 2800000 2850000>; + qcom,cam-vreg-max-voltage = <1200000 1800000 2800000 2850000>; + qcom,cam-vreg-op-mode = <200000 80000 80000 100000>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_default &cam_sensor_rear_default>; + pinctrl-1 = <&cam_sensor_mclk0_sleep &cam_sensor_rear_sleep>; + gpios = <&tlmm 26 0>, + <&tlmm 35 0>, + <&tlmm 36 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK0", + "CAM_RESET0", + "CAM_STANDBY0"; + qcom,cam-power-seq-type = "sensor_vreg", + "sensor_vreg", "sensor_vreg", + "sensor_clk", + "sensor_gpio", "sensor_gpio"; + qcom,cam-power-seq-val = "cam_vana", + "cam_vio","cam_vdig", + "sensor_cam_mclk", + "sensor_gpio_reset", + "sensor_gpio_standby"; + qcom,cam-power-seq-cfg-val = <1 1 1 24000000 1 1>; + qcom,cam-power-seq-delay = <0 0 10 1 10 0>; + status = "ok"; + clocks = <&clock_gcc clk_mclk0_clk_src>, + <&clock_gcc clk_gcc_camss_mclk0_clk>; + clock-names = "cam_src_clk", "cam_clk"; + qcom,clock-rates = <19200000 0>; + }; + + eeprom2: qcom,eeprom@2 { + cell-index = <2>; + reg = <0x02>; + qcom,eeprom-name = "s5k5e8_ofilm"; + compatible = "qcom,eeprom"; + qcom,slave-addr = <0x20>; + qcom,cci-master = <0>; + + qcom,num-blocks = <5>; + qcom,page0 = <1 0x0A00 2 0x04 1 1>; + qcom,poll0 = <0 0x0A00 2 0x04 1 1>; + qcom,mem0 = <0 0x0 2 0 1 0>; + qcom,page1 = <1 0x0A02 2 0x04 1 1>; + qcom,poll1 = <0 0x0A02 2 0x04 2 1>; + qcom,mem1 = <0 0x0 2 0 1 0>; + qcom,page2 = <1 0x0A00 2 0x01 1 1>; + qcom,poll2 = <0 0x0A00 2 0x01 1 1>; + qcom,mem2 = <48 0x0A04 2 0 1 1>; + qcom,page3 = <1 0x0A00 2 0x04 1 1>; + qcom,poll3 = <0 0x0A00 2 0x04 1 1>; + qcom,mem3 = <0 0x0 2 0 1 0>; + qcom,page4 = <1 0x0A00 2 0x00 1 1>; + qcom,poll4 = <0 0x0A00 2 0x00 1 0>; + qcom,mem4 = <0 0x0 2 0 1 0>; + + cam_vdig-supply = <&pm8917_l23>; + cam_vana-supply = <&pm8917_l22>; + cam_vio-supply = <&pm8917_l6>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-min-voltage = <1200000 1800000 2800000>; + qcom,cam-vreg-max-voltage = <1200000 1800000 2800000>; + qcom,cam-vreg-op-mode = <200000 80000 100000>; + qcom,gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_default + &cam_sensor_front1_default>; + pinctrl-1 = <&cam_sensor_mclk2_sleep + &cam_sensor_front1_sleep>; + gpios = <&tlmm 28 0>, + <&tlmm 40 0>, + <&tlmm 39 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK2", + "CAM_RESET2", + "CAM_STANDBY2"; + qcom,cam-power-seq-type = + "sensor_gpio", + "sensor_gpio", + "sensor_clk", + "sensor_vreg", + "sensor_vreg", + "sensor_vreg", + "sensor_gpio", + "sensor_gpio"; + qcom,cam-power-seq-val = + "sensor_gpio_reset", + "sensor_gpio_standby", + "sensor_cam_mclk", + "cam_vdig", + "cam_vana", + "cam_vio", + "sensor_gpio_reset", + "sensor_gpio_standby"; + qcom,cam-power-seq-cfg-val = <0 0 24000000 1 1 1 1 1>; + qcom,cam-power-seq-delay = <5 5 10 1 1 1 5 5>; + status = "ok"; + clocks = <&clock_gcc clk_mclk2_clk_src>, + <&clock_gcc clk_gcc_camss_mclk2_clk>; + clock-names = "cam_src_clk", "cam_clk"; + qcom,clock-rates = <19200000 0>; + }; + + eeprom4: qcom,eeprom@4 { + cell-index = <4>; + reg = <0x04>; + qcom,eeprom-name = "s5k3l2"; + compatible = "qcom,eeprom"; + qcom,slave-addr = <0xA0>; + qcom,cci-master = <0>; + qcom,num-blocks = <1>; + qcom,page0 = <0 0x0 2 0x01 1 1>; + qcom,poll0 = <0 0x0 2 0 1 1>; + qcom,mem0 = <0x834 0x0 2 0 1 0>; + cam_vdig-supply = <&pm8917_l23>; + cam_vana-supply = <&pm8917_l22>; + cam_vio-supply = <&pm8917_l6>; + cam_vaf-supply = <&pm8917_l17>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana", + "cam_vaf"; + qcom,cam-vreg-min-voltage = <1200000 1800000 2800000 2850000>; + qcom,cam-vreg-max-voltage = <1200000 1800000 2800000 2850000>; + qcom,cam-vreg-op-mode = <200000 80000 80000 100000>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_default &cam_sensor_rear_default>; + pinctrl-1 = <&cam_sensor_mclk0_sleep &cam_sensor_rear_sleep>; + gpios = <&tlmm 26 0>, + <&tlmm 35 0>, + <&tlmm 36 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK0", + "CAM_RESET0", + "CAM_STANDBY0"; + qcom,cam-power-seq-type = "sensor_vreg", + "sensor_vreg", "sensor_vreg", + "sensor_clk", + "sensor_gpio", "sensor_gpio"; + qcom,cam-power-seq-val = "cam_vana", + "cam_vio","cam_vdig", + "sensor_cam_mclk", + "sensor_gpio_reset", + "sensor_gpio_standby"; + qcom,cam-power-seq-cfg-val = <1 1 1 24000000 1 1>; + qcom,cam-power-seq-delay = <0 0 10 1 10 0>; + status = "ok"; + clocks = <&clock_gcc clk_mclk0_clk_src>, + <&clock_gcc clk_gcc_camss_mclk0_clk>; + clock-names = "cam_src_clk", "cam_clk"; + qcom,clock-rates = <19200000 0>; + }; + + eeprom5: qcom,eeprom@5{ + cell-index = <5>; + reg = <0x05>; + qcom,eeprom-name = "ov5675"; + compatible = "qcom,eeprom"; + qcom,slave-addr = <0x6c>; + qcom,cci-master = <0>; + + qcom,num-blocks = <4>; + qcom,page0 = <1 0x3d88 2 7010 2 1>; + qcom,poll0 = <1 0x3d88 2 7010 2 1>; + qcom,mem0 = <0 0x0 2 0 1 0>; + qcom,page1 = <1 0x3d8a 2 0x710f 2 1>; + qcom,poll1 = <1 0x3d8a 2 0x710f 2 1>; + qcom,mem1 = <0 0x3d00 2 0 1 0>; + qcom,page2 = <1 0x3d85 2 0x6 1 1>; + qcom,poll2 = <1 0x3d85 2 0x6 1 1>; + qcom,mem2 = <0 0x3d00 2 0 1 0>; + qcom,page3 = <1 0x0100 2 0x1 1 1>; + qcom,pageen3 = <0 0x3d85 2 0x16 1 0>; + qcom,poll3 = <0 0x3d85 2 0x16 1 0>; + qcom,mem3 = <30 0x7010 2 0 1 1>; + + cam_vdig-supply = <&pm8917_l23>; + cam_vana-supply = <&pm8917_l22>; + cam_vio-supply = <&pm8917_l6>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-min-voltage = <1200000 1800000 2800000>; + qcom,cam-vreg-max-voltage = <1200000 1800000 2800000>; + qcom,cam-vreg-op-mode = <200000 80000 100000>; + qcom,gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_default + &cam_sensor_front1_default>; + pinctrl-1 = <&cam_sensor_mclk2_sleep + &cam_sensor_front1_sleep>; + gpios = <&tlmm 28 0>, + <&tlmm 40 0>, + <&tlmm 39 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK2", + "CAM_RESET2", + "CAM_STANDBY2"; + qcom,cam-power-seq-type = + "sensor_gpio", + "sensor_gpio", + "sensor_clk", + "sensor_vreg", + "sensor_vreg", + "sensor_vreg", + "sensor_gpio", + "sensor_gpio"; + qcom,cam-power-seq-val = + "sensor_gpio_reset", + "sensor_gpio_standby", + "sensor_cam_mclk", + "cam_vdig", + "cam_vana", + "cam_vio", + "sensor_gpio_reset", + "sensor_gpio_standby"; + qcom,cam-power-seq-cfg-val = <0 0 24000000 1 1 1 1 1>; + qcom,cam-power-seq-delay = <5 5 10 1 1 1 5 5>; + status = "ok"; + clocks = <&clock_gcc clk_mclk2_clk_src>, + <&clock_gcc clk_gcc_camss_mclk2_clk>; + clock-names = "cam_src_clk", "cam_clk"; + qcom,clock-rates = <19200000 0>; + }; + + eeprom6: qcom,eeprom@6 { + cell-index = <6>; + reg = <0x06>; + qcom,eeprom-name = "s5k5e8"; + compatible = "qcom,eeprom"; + qcom,slave-addr = <0x30>; + qcom,cci-master = <0>; + + qcom,num-blocks = <5>; + qcom,page0 = <1 0x0A00 2 0x04 1 1>; + qcom,poll0 = <0 0x0A00 2 0x04 1 1>; + qcom,mem0 = <0 0x0 2 0 1 0>; + qcom,page1 = <1 0x0A02 2 0x04 1 1>; + qcom,poll1 = <0 0x0A02 2 0x04 2 1>; + qcom,mem1 = <0 0x0 2 0 1 0>; + qcom,page2 = <1 0x0A00 2 0x01 1 1>; + qcom,poll2 = <0 0x0A00 2 0x01 1 1>; + qcom,mem2 = <48 0x0A04 2 0 1 1>; + qcom,page3 = <1 0x0A00 2 0x04 1 1>; + qcom,poll3 = <0 0x0A00 2 0x04 1 1>; + qcom,mem3 = <0 0x0 2 0 1 0>; + qcom,page4 = <1 0x0A00 2 0x00 1 1>; + qcom,poll4 = <0 0x0A00 2 0x00 1 0>; + qcom,mem4 = <0 0x0 2 0 1 0>; + + cam_vdig-supply = <&pm8917_l23>; + cam_vana-supply = <&pm8917_l22>; + cam_vio-supply = <&pm8917_l6>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-min-voltage = <1200000 1800000 2800000>; + qcom,cam-vreg-max-voltage = <1200000 1800000 2800000>; + qcom,cam-vreg-op-mode = <200000 80000 100000>; + qcom,gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_default + &cam_sensor_front1_default>; + pinctrl-1 = <&cam_sensor_mclk2_sleep + &cam_sensor_front1_sleep>; + gpios = <&tlmm 28 0>, + <&tlmm 40 0>, + <&tlmm 39 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK2", + "CAM_RESET2", + "CAM_STANDBY2"; + qcom,cam-power-seq-type = + "sensor_gpio", + "sensor_gpio", + "sensor_clk", + "sensor_vreg", + "sensor_vreg", + "sensor_vreg", + "sensor_gpio", + "sensor_gpio"; + qcom,cam-power-seq-val = + "sensor_gpio_reset", + "sensor_gpio_standby", + "sensor_cam_mclk", + "cam_vdig", + "cam_vana", + "cam_vio", + "sensor_gpio_reset", + "sensor_gpio_standby"; + qcom,cam-power-seq-cfg-val = <0 0 24000000 1 1 1 1 1>; + qcom,cam-power-seq-delay = <5 5 10 1 1 1 5 5>; + status = "ok"; + clocks = <&clock_gcc clk_mclk2_clk_src>, + <&clock_gcc clk_gcc_camss_mclk2_clk>; + clock-names = "cam_src_clk", "cam_clk"; + qcom,clock-rates = <19200000 0>; + }; + + qcom,camera@0 { + cell-index = <0>; + compatible = "qcom,camera"; + reg = <0x0>; + qcom,csiphy-sd-index = <0>; + qcom,csid-sd-index = <0>; + qcom,mount-angle = <90>; + qcom,actuator-src = <&actuator0>; + qcom,led-flash-src = <&led_flash0>; + qcom,eeprom-src = <&eeprom0 &eeprom4>; + cam_vdig-supply = <&pm8917_l23>; + cam_vana-supply = <&pm8917_l22>; + cam_vio-supply = <&pm8917_l6>; + cam_vaf-supply = <&pm8917_l17>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana", + "cam_vaf"; + qcom,cam-vreg-min-voltage = <1200000 1800000 2800000 2850000>; + qcom,cam-vreg-max-voltage = <1200000 1800000 2800000 2850000>; + qcom,cam-vreg-op-mode = <200000 80000 80000 100000>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_default + &cam_sensor_rear_default>; + pinctrl-1 = <&cam_sensor_mclk0_sleep + &cam_sensor_rear_sleep>; + gpios = <&tlmm 26 0>, + <&tlmm 35 0>, + <&tlmm 36 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK0", + "CAM_RESET0", + "CAM_STANDBY0"; + qcom,sensor-position = <0>; + qcom,sensor-mode = <0>; + qcom,cci-master = <0>; + clocks = <&clock_gcc clk_mclk0_clk_src>, + <&clock_gcc clk_gcc_camss_mclk0_clk>; + clock-names = "cam_src_clk", "cam_clk"; + qcom,clock-rates = <24000000 0>; + }; + + qcom,camera@2 { + cell-index = <2>; + compatible = "qcom,camera"; + reg = <0x01>; + qcom,csiphy-sd-index = <1>; + qcom,csid-sd-index = <1>; + qcom,eeprom-src = <&eeprom6 &eeprom5 &eeprom2>; + qcom,mount-angle = <270>; + cam_vdig-supply = <&pm8917_l23>; + cam_vana-supply = <&pm8917_l22>; + cam_vio-supply = <&pm8917_l6>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-min-voltage = <1200000 0 2800000>; + qcom,cam-vreg-max-voltage = <1200000 0 2800000>; + qcom,cam-vreg-op-mode = <105000 0 80000>; + qcom,gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_default + &cam_sensor_front1_default>; + pinctrl-1 = <&cam_sensor_mclk2_sleep + &cam_sensor_front1_sleep>; + gpios = <&tlmm 28 0>, + <&tlmm 40 0>, + <&tlmm 39 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK2", + "CAM_RESET2", + "CAM_STANDBY2"; + qcom,sensor-position = <1>; + qcom,sensor-mode = <0>; + qcom,cci-master = <0>; + clocks = <&clock_gcc clk_mclk2_clk_src>, + <&clock_gcc clk_gcc_camss_mclk2_clk>; + clock-names = "cam_src_clk", "cam_clk"; + qcom,clock-rates = <24000000 0>; + }; +}; diff --git a/arch/arm/boot/dts/qcom/msm8917-camera-sensor-qrd-s88505.dtsi b/arch/arm/boot/dts/qcom/msm8917-camera-sensor-qrd-s88505.dtsi new file mode 100644 index 0000000000000..9312a920594df --- /dev/null +++ b/arch/arm/boot/dts/qcom/msm8917-camera-sensor-qrd-s88505.dtsi @@ -0,0 +1,405 @@ +/* + * Copyright (c) 2016, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ +&soc { + flash_SGM3780:flashlight { + compatible = "qcom,leds-gpio-flash"; + status = "okay"; + pinctrl-names = "flash_default"; + pinctrl-0 = <&SGM3780_default>; + qcom,flash-en = <93>; + qcom,flash-now = <90>; + qcom,op-seq = "flash_en", "flash_now"; + qcom,torch-seq-val = <1 0>; + qcom,flash-seq-val = <0 1>; + linux,name = "flashlight"; + linux,default-trigger = "flashlight-trigger"; + }; + led_flash01: qcom,camera-flash { + cell-index = <0>; + compatible = "qcom,camera-flash"; + qcom,flash-type = <3>; + qcom,flash-source = <&flash_SGM3780>; + qcom,torch-source = <&flash_SGM3780>; + }; +}; +&cci { + actuator0: qcom,actuator@0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,actuator"; + qcom,cci-master = <0>; + cam_vaf-supply = <&pm8917_l17>; + qcom,cam-vreg-name = "cam_vaf"; + qcom,cam-vreg-min-voltage = <2850000>; + qcom,cam-vreg-max-voltage = <2850000>; + qcom,cam-vreg-op-mode = <80000>; + }; + + eeprom0: qcom,eeprom@5 { + cell-index = <5>; + reg = <0x05>; + qcom,eeprom-name = "s5k3l8_ofilm_riva"; + compatible = "qcom,eeprom"; + qcom,slave-addr = <0xa0>; + qcom,cci-master = <0>; + qcom,num-blocks = <1>; + + qcom,page0 = <0 0x0 2 0x01 1 1>; + qcom,poll0 = <0 0x0 2 0 1 1>; + qcom,mem0 = <0x848 0x0 2 0 1 0>; + + cam_vdig-supply = <&pm8917_l23>; + cam_vio-supply = <&pm8917_l6>; + cam_vana-supply = <&pm8917_l22>; + cam_vaf-supply = <&pm8917_l17>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana", + "cam_vaf"; + qcom,cam-vreg-min-voltage = <1200000 1800000 2800000 2850000>; + qcom,cam-vreg-max-voltage = <1200000 1800000 2800000 2850000>; + qcom,cam-vreg-op-mode = <200000 200000 80000 100000>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_default &cam_sensor_rear_default>; + pinctrl-1 = <&cam_sensor_mclk0_sleep &cam_sensor_rear_sleep>; + gpios = <&tlmm 26 0>, + <&tlmm 35 0>, + <&tlmm 36 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK0", + "MCAM_RESET0", + "MCAM_STANDBY0"; + qcom,cam-power-seq-type = + "sensor_gpio", + "sensor_gpio", + "sensor_clk", + "sensor_vreg", + "sensor_vreg", + "sensor_vreg", + "sensor_gpio", + "sensor_gpio"; + qcom,cam-power-seq-val = + "sensor_gpio_reset", + "sensor_gpio_standby", + "sensor_cam_mclk", + "cam_vdig", + "cam_vana", + "cam_vio", + "sensor_gpio_reset", + "sensor_gpio_standby"; + qcom,cam-power-seq-cfg-val = <0 0 24000000 1 1 1 1 1>; + qcom,cam-power-seq-delay = <5 1 1 1 1 1 10 1>; + status = "ok"; + clocks = <&clock_gcc clk_mclk0_clk_src>, + <&clock_gcc clk_gcc_camss_mclk0_clk>; + clock-names = "cam_src_clk", "cam_clk"; + qcom,clock-rates = <24000000 0>; + }; + + eeprom2: qcom,eeprom@2 { + cell-index = <2>; + reg = <0x02>; + qcom,eeprom-name = "s5k5e8_ofilm_riva"; + compatible = "qcom,eeprom"; + qcom,slave-addr = <0x5a>; + qcom,cci-master = <0>; + + qcom,num-blocks = <5>; + qcom,page0 = <1 0x0A00 2 0x04 1 1>; + qcom,poll0 = <0 0x0A00 2 0x04 1 1>; + qcom,mem0 = <0 0x0 2 0 1 0>; + qcom,page1 = <1 0x0A02 2 0x04 1 1>; + qcom,poll1 = <0 0x0A02 2 0x04 2 1>; + qcom,mem1 = <0 0x0 2 0 1 0>; + qcom,page2 = <1 0x0A00 2 0x01 1 1>; + qcom,poll2 = <0 0x0A00 2 0x01 1 1>; + qcom,mem2 = <24 0x0A04 2 0 1 1>; + qcom,page3 = <1 0x0A00 2 0x04 1 1>; + qcom,poll3 = <0 0x0A00 2 0x04 1 1>; + qcom,mem3 = <0 0x0 2 0 1 0>; + qcom,page4 = <1 0x0A00 2 0x00 1 1>; + qcom,poll4 = <0 0x0A00 2 0x00 1 0>; + qcom,mem4 = <0 0x0 2 0 1 0>; + + cam_vdig-supply = <&pm8917_l23>; + cam_vio-supply = <&pm8917_l6>; + cam_vana-supply = <&pm8917_l22>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-min-voltage = <1200000 1800000 2800000>; + qcom,cam-vreg-max-voltage = <1200000 1800000 2800000>; + qcom,cam-vreg-op-mode = <200000 80000 100000>; + qcom,gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_default + &cam_sensor_front1_default>; + pinctrl-1 = <&cam_sensor_mclk2_sleep + &cam_sensor_front1_sleep>; + gpios = <&tlmm 28 0>, + <&tlmm 40 0>, + <&tlmm 39 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK2", + "CAM_RESET2", + "CAM_STANDBY2"; + qcom,cam-power-seq-type = + "sensor_gpio", + "sensor_gpio", + "sensor_clk", + "sensor_vreg", + "sensor_vreg", + "sensor_vreg", + "sensor_gpio", + "sensor_gpio"; + qcom,cam-power-seq-val = + "sensor_gpio_reset", + "sensor_gpio_standby", + "sensor_cam_mclk", + "cam_vdig", + "cam_vana", + "cam_vio", + "sensor_gpio_reset", + "sensor_gpio_standby"; + qcom,cam-power-seq-cfg-val = <0 0 24000000 1 1 1 1 1>; + qcom,cam-power-seq-delay = <1 5 1 1 1 1 1 1 10>; + status = "ok"; + clocks = <&clock_gcc clk_mclk2_clk_src>, + <&clock_gcc clk_gcc_camss_mclk2_clk>; + clock-names = "cam_src_clk", "cam_clk"; + qcom,clock-rates = <24000000 0>; + }; + eeprom3: qcom,eeprom@3 { + cell-index = <3>; + reg = <0x03>; + qcom,eeprom-name = "s5k5e8_qtech_riva"; + compatible = "qcom,eeprom"; + qcom,slave-addr = <0x5a>; + qcom,cci-master = <0>; + + qcom,num-blocks = <5>; + qcom,page0 = <1 0x0A00 2 0x04 1 1>; + qcom,poll0 = <0 0x0A00 2 0x04 1 1>; + qcom,mem0 = <0 0x0 2 0 1 0>; + qcom,page1 = <1 0x0A02 2 0x04 1 1>; + qcom,poll1 = <0 0x0A02 2 0x04 2 1>; + qcom,mem1 = <0 0x0 2 0 1 0>; + qcom,page2 = <1 0x0A00 2 0x01 1 1>; + qcom,poll2 = <0 0x0A00 2 0x01 1 1>; + qcom,mem2 = <24 0x0A04 2 0 1 1>; + qcom,page3 = <1 0x0A00 2 0x04 1 1>; + qcom,poll3 = <0 0x0A00 2 0x04 1 1>; + qcom,mem3 = <0 0x0 2 0 1 0>; + qcom,page4 = <1 0x0A00 2 0x00 1 1>; + qcom,poll4 = <0 0x0A00 2 0x00 1 0>; + qcom,mem4 = <0 0x0 2 0 1 0>; + + cam_vdig-supply = <&pm8917_l23>; + cam_vana-supply = <&pm8917_l22>; + cam_vio-supply = <&pm8917_l6>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-min-voltage = <1200000 1800000 2800000>; + qcom,cam-vreg-max-voltage = <1200000 1800000 2800000>; + qcom,cam-vreg-op-mode = <200000 80000 100000>; + qcom,gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_default + &cam_sensor_front1_default>; + pinctrl-1 = <&cam_sensor_mclk2_sleep + &cam_sensor_front1_sleep>; + gpios = <&tlmm 28 0>, + <&tlmm 40 0>, + <&tlmm 39 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK2", + "CAM_RESET2", + "CAM_STANDBY2"; + qcom,cam-power-seq-type = + "sensor_gpio", + "sensor_gpio", + "sensor_clk", + "sensor_vreg", + "sensor_vreg", + "sensor_vreg", + "sensor_gpio", + "sensor_gpio"; + qcom,cam-power-seq-val = + "sensor_gpio_reset", + "sensor_gpio_standby", + "sensor_cam_mclk", + "cam_vdig", + "cam_vana", + "cam_vio", + "sensor_gpio_reset", + "sensor_gpio_standby"; + qcom,cam-power-seq-cfg-val = <0 0 24000000 1 1 1 1 1>; + qcom,cam-power-seq-delay = <1 5 1 1 1 1 1 1 10>; + status = "ok"; + clocks = <&clock_gcc clk_mclk2_clk_src>, + <&clock_gcc clk_gcc_camss_mclk2_clk>; + clock-names = "cam_src_clk", "cam_clk"; + qcom,clock-rates = <24000000 0>; + }; + + eeprom4: qcom,eeprom@4 { + cell-index = <4>; + reg = <0x04>; + qcom,eeprom-name = "ov13855_qtech"; + compatible = "qcom,eeprom"; + qcom,slave-addr = <0xa0>; + qcom,cci-master = <0>; + qcom,num-blocks = <1>; + + qcom,page0 = <0 0x0 2 0x01 1 1>; + qcom,poll0 = <0 0x0 2 0 1 1>; + qcom,mem0 = <0xAE8 0x0 2 0 1 0>; + + cam_vdig-supply = <&pm8917_l23>; + cam_vio-supply = <&pm8917_l6>; + cam_vana-supply = <&pm8917_l22>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-min-voltage = <1200000 1800000 2800000>; + qcom,cam-vreg-max-voltage = <1200000 1800000 2800000>; + qcom,cam-vreg-op-mode = <200000 80000 100000>; + qcom,gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_default + &cam_sensor_front1_default>; + pinctrl-1 = <&cam_sensor_mclk2_sleep + &cam_sensor_front1_sleep>; + gpios = <&tlmm 28 0>, + <&tlmm 40 0>, + <&tlmm 39 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK2", + "CAM_RESET2", + "CAM_STANDBY2"; + qcom,cam-power-seq-type = + "sensor_gpio", + "sensor_gpio", + "sensor_clk", + "sensor_vreg", + "sensor_vreg", + "sensor_vreg", + "sensor_gpio", + "sensor_gpio"; + qcom,cam-power-seq-val = + "sensor_gpio_reset", + "sensor_gpio_standby", + "sensor_cam_mclk", + "cam_vdig", + "cam_vana", + "cam_vio", + "sensor_gpio_reset", + "sensor_gpio_standby"; + qcom,cam-power-seq-cfg-val = <0 0 24000000 1 1 1 1 1>; + qcom,cam-power-seq-delay = <5 1 1 1 1 1 10 1>; + status = "ok"; + clocks = <&clock_gcc clk_mclk2_clk_src>, + <&clock_gcc clk_gcc_camss_mclk2_clk>; + clock-names = "cam_src_clk", "cam_clk"; + qcom,clock-rates = <24000000 0>; + }; + + qcom,camera@0 { + cell-index = <0>; + compatible = "qcom,camera"; + reg = <0x0>; + qcom,csiphy-sd-index = <0>; + qcom,csid-sd-index = <0>; + qcom,mount-angle = <90>; + qcom,actuator-src = <&actuator0>; + qcom,led-flash-src = <&led_flash0>; + qcom,eeprom-src = <&eeprom0 &eeprom4>; + cam_vdig-supply = <&pm8917_l23>; + cam_vio-supply = <&pm8917_l6>; + cam_vana-supply = <&pm8917_l22>; + cam_vaf-supply = <&pm8917_l17>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana", + "cam_vaf"; + qcom,cam-vreg-min-voltage = <1200000 1800000 2800000 2850000>; + qcom,cam-vreg-max-voltage = <1200000 1800000 2800000 2850000>; + qcom,cam-vreg-op-mode = <200000 80000 80000 100000>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_default + &cam_sensor_rear_default>; + pinctrl-1 = <&cam_sensor_mclk0_sleep + &cam_sensor_rear_sleep>; + gpios = <&tlmm 26 0>, + <&tlmm 35 0>, + <&tlmm 36 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK0", + "CAM_RESET0", + "CAM_STANDBY0"; + qcom,sensor-position = <0>; + qcom,sensor-mode = <0>; + qcom,cci-master = <0>; + clocks = <&clock_gcc clk_mclk0_clk_src>, + <&clock_gcc clk_gcc_camss_mclk0_clk>; + clock-names = "cam_src_clk", "cam_clk"; + qcom,clock-rates = <24000000 0>; + }; + + qcom,camera@2 { + cell-index = <2>; + compatible = "qcom,camera"; + reg = <0x01>; + qcom,csiphy-sd-index = <1>; + qcom,csid-sd-index = <1>; + qcom,eeprom-src = <&eeprom2 &eeprom3>; + qcom,mount-angle = <270>; + cam_vdig-supply = <&pm8917_l23>; + cam_vio-supply = <&pm8917_l6>; + cam_vana-supply = <&pm8917_l22>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-min-voltage = <1200000 1800000 2800000>; + qcom,cam-vreg-max-voltage = <1200000 1800000 2800000>; + qcom,cam-vreg-op-mode = <105000 80000 80000>; + qcom,gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_default + &cam_sensor_front1_default>; + pinctrl-1 = <&cam_sensor_mclk2_sleep + &cam_sensor_front1_sleep>; + gpios = <&tlmm 28 0>, + <&tlmm 40 0>, + <&tlmm 39 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK2", + "CAM_RESET2", + "CAM_STANDBY2"; + qcom,sensor-position = <1>; + qcom,sensor-mode = <0>; + qcom,cci-master = <0>; + clocks = <&clock_gcc clk_mclk2_clk_src>, + <&clock_gcc clk_gcc_camss_mclk2_clk>; + clock-names = "cam_src_clk", "cam_clk"; + qcom,clock-rates = <24000000 0>; + }; +}; diff --git a/arch/arm/boot/dts/qcom/msm8917-camera-sensor-qrd.dtsi b/arch/arm/boot/dts/qcom/msm8917-camera-sensor-qrd.dtsi index 70d2d831f7242..b4167b81e8137 100644 --- a/arch/arm/boot/dts/qcom/msm8917-camera-sensor-qrd.dtsi +++ b/arch/arm/boot/dts/qcom/msm8917-camera-sensor-qrd.dtsi @@ -1,5 +1,6 @@ /* * Copyright (c) 2016, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -10,6 +11,31 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ + +&soc { + flash_SGM3780:flashlight { + compatible = "qcom,leds-gpio-flash"; + status = "okay"; + pinctrl-names = "flash_default"; + pinctrl-0 = <&SGM3780_default>; + qcom,flash-en = <93>; + qcom,flash-now = <90>; + qcom,op-seq = "flash_en", "flash_now"; + qcom,torch-seq-val = <1 0>; + qcom,flash-seq-val = <0 1>; + linux,name = "flashlight"; + linux,default-trigger = "flashlight-trigger"; + }; + + led_flash0: qcom,camera-flash { + cell-index = <0>; + compatible = "qcom,camera-flash"; + qcom,flash-type = <3>; + qcom,flash-source = <&flash_SGM3780>; + qcom,torch-source = <&flash_SGM3780>; + }; +}; + &cci { actuator0: qcom,actuator@0 { cell-index = <0>; @@ -25,25 +51,40 @@ eeprom0: qcom,eeprom@0 { cell-index = <0>; + reg = <0x00>; + qcom,eeprom-name = "ov13850"; compatible = "qcom,eeprom"; + qcom,slave-addr = <0x20>; qcom,cci-master = <0>; - reg = <0x0>; + qcom,num-blocks = <4>; + qcom,page0 = <1 0x3d88 2 7010 2 1>; + qcom,poll0 = <1 0x3d88 2 7010 2 1>; + qcom,mem0 = <0 0x0 2 0 1 0>; + qcom,page1 = <1 0x3d8a 2 0x710f 2 1>; + qcom,poll1 = <1 0x3d8a 2 0x710f 2 1>; + qcom,mem1 = <0 0x3d00 2 0 1 0>; + qcom,page2 = <1 0x3d85 2 0x6 1 1>; + qcom,poll2 = <1 0x3d85 2 0x6 1 1>; + qcom,mem2 = <0 0x3d00 2 0 1 0>; + qcom,page3 = <1 0x0100 2 0x1 1 1>; + qcom,pageen3 = <0 0x3d85 2 0x16 1 0>; + qcom,poll3 = <0 0x3d85 2 0x16 1 0>; + qcom,mem3 = <478 0x7220 2 0 1 1>; cam_vdig-supply = <&pm8917_l23>; cam_vana-supply = <&pm8917_l22>; cam_vio-supply = <&pm8917_l6>; cam_vaf-supply = <&pm8917_l17>; qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana", "cam_vaf"; - qcom,cam-vreg-min-voltage = <1200000 0 2800000 2850000>; - qcom,cam-vreg-max-voltage = <1200000 0 2800000 2850000>; - qcom,cam-vreg-op-mode = <200000 0 80000 100000>; + qcom,cam-vreg-min-voltage = <1200000 1800000 2800000 2850000>; + qcom,cam-vreg-max-voltage = <1200000 1800000 2800000 2850000>; + qcom,cam-vreg-op-mode = <200000 80000 80000 100000>; pinctrl-names = "cam_default", "cam_suspend"; - pinctrl-0 = <&cam_sensor_mclk0_default - &cam_sensor_rear_default>; + pinctrl-0 = <&cam_sensor_mclk0_default &cam_sensor_rear_default>; pinctrl-1 = <&cam_sensor_mclk0_sleep &cam_sensor_rear_sleep>; gpios = <&tlmm 26 0>, - <&tlmm 36 0>, - <&tlmm 35 0>; + <&tlmm 35 0>, + <&tlmm 36 0>; qcom,gpio-reset = <1>; qcom,gpio-standby = <2>; qcom,gpio-req-tbl-num = <0 1 2>; @@ -51,26 +92,180 @@ qcom,gpio-req-tbl-label = "CAMIF_MCLK0", "CAM_RESET0", "CAM_STANDBY0"; + qcom,cam-power-seq-type = "sensor_vreg", + "sensor_vreg", "sensor_vreg", + "sensor_clk", + "sensor_gpio", "sensor_gpio"; + qcom,cam-power-seq-val = "cam_vana", + "cam_vio","cam_vdig", + "sensor_cam_mclk", + "sensor_gpio_reset", + "sensor_gpio_standby"; + qcom,cam-power-seq-cfg-val = <1 1 1 24000000 1 1>; + qcom,cam-power-seq-delay = <0 0 10 1 10 0>; status = "ok"; clocks = <&clock_gcc clk_mclk0_clk_src>, - <&clock_gcc clk_gcc_camss_mclk0_clk>; + <&clock_gcc clk_gcc_camss_mclk0_clk>; clock-names = "cam_src_clk", "cam_clk"; qcom,clock-rates = <19200000 0>; }; eeprom2: qcom,eeprom@2 { cell-index = <2>; - compatible = "qcom,eeprom"; reg = <0x02>; + qcom,eeprom-name = "s5k5e8_ofilm"; + compatible = "qcom,eeprom"; + qcom,slave-addr = <0x20>; + qcom,cci-master = <0>; + + qcom,num-blocks = <5>; + qcom,page0 = <1 0x0A00 2 0x04 1 1>; + qcom,poll0 = <0 0x0A00 2 0x04 1 1>; + qcom,mem0 = <0 0x0 2 0 1 0>; + qcom,page1 = <1 0x0A02 2 0x04 1 1>; + qcom,poll1 = <0 0x0A02 2 0x04 2 1>; + qcom,mem1 = <0 0x0 2 0 1 0>; + qcom,page2 = <1 0x0A00 2 0x01 1 1>; + qcom,poll2 = <0 0x0A00 2 0x01 1 1>; + qcom,mem2 = <48 0x0A04 2 0 1 1>; + qcom,page3 = <1 0x0A00 2 0x04 1 1>; + qcom,poll3 = <0 0x0A00 2 0x04 1 1>; + qcom,mem3 = <0 0x0 2 0 1 0>; + qcom,page4 = <1 0x0A00 2 0x00 1 1>; + qcom,poll4 = <0 0x0A00 2 0x00 1 0>; + qcom,mem4 = <0 0x0 2 0 1 0>; + + cam_vdig-supply = <&pm8917_l23>; + cam_vana-supply = <&pm8917_l22>; + cam_vio-supply = <&pm8917_l6>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-min-voltage = <1200000 1800000 2800000>; + qcom,cam-vreg-max-voltage = <1200000 1800000 2800000>; + qcom,cam-vreg-op-mode = <200000 80000 100000>; + qcom,gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_default + &cam_sensor_front1_default>; + pinctrl-1 = <&cam_sensor_mclk2_sleep + &cam_sensor_front1_sleep>; + gpios = <&tlmm 28 0>, + <&tlmm 40 0>, + <&tlmm 39 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK2", + "CAM_RESET2", + "CAM_STANDBY2"; + qcom,cam-power-seq-type = + "sensor_gpio", + "sensor_gpio", + "sensor_clk", + "sensor_vreg", + "sensor_vreg", + "sensor_vreg", + "sensor_gpio", + "sensor_gpio"; + qcom,cam-power-seq-val = + "sensor_gpio_reset", + "sensor_gpio_standby", + "sensor_cam_mclk", + "cam_vdig", + "cam_vana", + "cam_vio", + "sensor_gpio_reset", + "sensor_gpio_standby"; + qcom,cam-power-seq-cfg-val = <0 0 24000000 1 1 1 1 1>; + qcom,cam-power-seq-delay = <5 5 10 1 1 1 5 5>; + status = "ok"; + clocks = <&clock_gcc clk_mclk2_clk_src>, + <&clock_gcc clk_gcc_camss_mclk2_clk>; + clock-names = "cam_src_clk", "cam_clk"; + qcom,clock-rates = <19200000 0>; + }; + + eeprom4: qcom,eeprom@4 { + cell-index = <4>; + reg = <0x04>; + qcom,eeprom-name = "s5k3l2"; + compatible = "qcom,eeprom"; + qcom,slave-addr = <0xA0>; + qcom,cci-master = <0>; + qcom,num-blocks = <1>; + qcom,page0 = <0 0x0 2 0x01 1 1>; + qcom,poll0 = <0 0x0 2 0 1 1>; + qcom,mem0 = <0x834 0x0 2 0 1 0>; cam_vdig-supply = <&pm8917_l23>; cam_vana-supply = <&pm8917_l22>; cam_vio-supply = <&pm8917_l6>; cam_vaf-supply = <&pm8917_l17>; qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana", - "cam_vaf"; - qcom,cam-vreg-min-voltage = <1200000 0 2800000 2850000>; - qcom,cam-vreg-max-voltage = <1200000 0 2800000 2850000>; - qcom,cam-vreg-op-mode = <105000 0 80000 100000>; + "cam_vaf"; + qcom,cam-vreg-min-voltage = <1200000 1800000 2800000 2850000>; + qcom,cam-vreg-max-voltage = <1200000 1800000 2800000 2850000>; + qcom,cam-vreg-op-mode = <200000 80000 80000 100000>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_default &cam_sensor_rear_default>; + pinctrl-1 = <&cam_sensor_mclk0_sleep &cam_sensor_rear_sleep>; + gpios = <&tlmm 26 0>, + <&tlmm 35 0>, + <&tlmm 36 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK0", + "CAM_RESET0", + "CAM_STANDBY0"; + qcom,cam-power-seq-type = "sensor_vreg", + "sensor_vreg", "sensor_vreg", + "sensor_clk", + "sensor_gpio", "sensor_gpio"; + qcom,cam-power-seq-val = "cam_vana", + "cam_vio","cam_vdig", + "sensor_cam_mclk", + "sensor_gpio_reset", + "sensor_gpio_standby"; + qcom,cam-power-seq-cfg-val = <1 1 1 24000000 1 1>; + qcom,cam-power-seq-delay = <0 0 10 1 10 0>; + status = "ok"; + clocks = <&clock_gcc clk_mclk0_clk_src>, + <&clock_gcc clk_gcc_camss_mclk0_clk>; + clock-names = "cam_src_clk", "cam_clk"; + qcom,clock-rates = <19200000 0>; + }; + + eeprom5: qcom,eeprom@5{ + cell-index = <5>; + reg = <0x05>; + qcom,eeprom-name = "ov5675"; + compatible = "qcom,eeprom"; + qcom,slave-addr = <0x6c>; + qcom,cci-master = <0>; + + qcom,num-blocks = <4>; + qcom,page0 = <1 0x3d88 2 7010 2 1>; + qcom,poll0 = <1 0x3d88 2 7010 2 1>; + qcom,mem0 = <0 0x0 2 0 1 0>; + qcom,page1 = <1 0x3d8a 2 0x710f 2 1>; + qcom,poll1 = <1 0x3d8a 2 0x710f 2 1>; + qcom,mem1 = <0 0x3d00 2 0 1 0>; + qcom,page2 = <1 0x3d85 2 0x6 1 1>; + qcom,poll2 = <1 0x3d85 2 0x6 1 1>; + qcom,mem2 = <0 0x3d00 2 0 1 0>; + qcom,page3 = <1 0x0100 2 0x1 1 1>; + qcom,pageen3 = <0 0x3d85 2 0x16 1 0>; + qcom,poll3 = <0 0x3d85 2 0x16 1 0>; + qcom,mem3 = <30 0x7010 2 0 1 1>; + + cam_vdig-supply = <&pm8917_l23>; + cam_vana-supply = <&pm8917_l22>; + cam_vio-supply = <&pm8917_l6>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-min-voltage = <1200000 1800000 2800000>; + qcom,cam-vreg-max-voltage = <1200000 1800000 2800000>; + qcom,cam-vreg-op-mode = <200000 80000 100000>; qcom,gpio-no-mux = <0>; pinctrl-names = "cam_default", "cam_suspend"; pinctrl-0 = <&cam_sensor_mclk2_default @@ -87,7 +282,101 @@ qcom,gpio-req-tbl-label = "CAMIF_MCLK2", "CAM_RESET2", "CAM_STANDBY2"; + qcom,cam-power-seq-type = + "sensor_gpio", + "sensor_gpio", + "sensor_clk", + "sensor_vreg", + "sensor_vreg", + "sensor_vreg", + "sensor_gpio", + "sensor_gpio"; + qcom,cam-power-seq-val = + "sensor_gpio_reset", + "sensor_gpio_standby", + "sensor_cam_mclk", + "cam_vdig", + "cam_vana", + "cam_vio", + "sensor_gpio_reset", + "sensor_gpio_standby"; + qcom,cam-power-seq-cfg-val = <0 0 24000000 1 1 1 1 1>; + qcom,cam-power-seq-delay = <5 5 10 1 1 1 5 5>; + status = "ok"; + clocks = <&clock_gcc clk_mclk2_clk_src>, + <&clock_gcc clk_gcc_camss_mclk2_clk>; + clock-names = "cam_src_clk", "cam_clk"; + qcom,clock-rates = <19200000 0>; + }; + + eeprom6: qcom,eeprom@6 { + cell-index = <6>; + reg = <0x06>; + qcom,eeprom-name = "s5k5e8"; + compatible = "qcom,eeprom"; + qcom,slave-addr = <0x30>; qcom,cci-master = <0>; + + qcom,num-blocks = <5>; + qcom,page0 = <1 0x0A00 2 0x04 1 1>; + qcom,poll0 = <0 0x0A00 2 0x04 1 1>; + qcom,mem0 = <0 0x0 2 0 1 0>; + qcom,page1 = <1 0x0A02 2 0x04 1 1>; + qcom,poll1 = <0 0x0A02 2 0x04 2 1>; + qcom,mem1 = <0 0x0 2 0 1 0>; + qcom,page2 = <1 0x0A00 2 0x01 1 1>; + qcom,poll2 = <0 0x0A00 2 0x01 1 1>; + qcom,mem2 = <48 0x0A04 2 0 1 1>; + qcom,page3 = <1 0x0A00 2 0x04 1 1>; + qcom,poll3 = <0 0x0A00 2 0x04 1 1>; + qcom,mem3 = <0 0x0 2 0 1 0>; + qcom,page4 = <1 0x0A00 2 0x00 1 1>; + qcom,poll4 = <0 0x0A00 2 0x00 1 0>; + qcom,mem4 = <0 0x0 2 0 1 0>; + + cam_vdig-supply = <&pm8917_l23>; + cam_vana-supply = <&pm8917_l22>; + cam_vio-supply = <&pm8917_l6>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-min-voltage = <1200000 1800000 2800000>; + qcom,cam-vreg-max-voltage = <1200000 1800000 2800000>; + qcom,cam-vreg-op-mode = <200000 80000 100000>; + qcom,gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_default + &cam_sensor_front1_default>; + pinctrl-1 = <&cam_sensor_mclk2_sleep + &cam_sensor_front1_sleep>; + gpios = <&tlmm 28 0>, + <&tlmm 40 0>, + <&tlmm 39 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK2", + "CAM_RESET2", + "CAM_STANDBY2"; + qcom,cam-power-seq-type = + "sensor_gpio", + "sensor_gpio", + "sensor_clk", + "sensor_vreg", + "sensor_vreg", + "sensor_vreg", + "sensor_gpio", + "sensor_gpio"; + qcom,cam-power-seq-val = + "sensor_gpio_reset", + "sensor_gpio_standby", + "sensor_cam_mclk", + "cam_vdig", + "cam_vana", + "cam_vio", + "sensor_gpio_reset", + "sensor_gpio_standby"; + qcom,cam-power-seq-cfg-val = <0 0 24000000 1 1 1 1 1>; + qcom,cam-power-seq-delay = <5 5 10 1 1 1 5 5>; status = "ok"; clocks = <&clock_gcc clk_mclk2_clk_src>, <&clock_gcc clk_gcc_camss_mclk2_clk>; @@ -103,25 +392,24 @@ qcom,csid-sd-index = <0>; qcom,mount-angle = <90>; qcom,actuator-src = <&actuator0>; - qcom,led-flash-src = <&led_flash0>; - qcom,eeprom-src = <&eeprom0>; + qcom,eeprom-src = <&eeprom0 &eeprom4>; cam_vdig-supply = <&pm8917_l23>; cam_vana-supply = <&pm8917_l22>; cam_vio-supply = <&pm8917_l6>; cam_vaf-supply = <&pm8917_l17>; qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana", "cam_vaf"; - qcom,cam-vreg-min-voltage = <1200000 0 2800000 2850000>; - qcom,cam-vreg-max-voltage = <1200000 0 2800000 2850000>; - qcom,cam-vreg-op-mode = <200000 0 80000 100000>; + qcom,cam-vreg-min-voltage = <1200000 1800000 2800000 2850000>; + qcom,cam-vreg-max-voltage = <1200000 1800000 2800000 2850000>; + qcom,cam-vreg-op-mode = <200000 80000 80000 100000>; pinctrl-names = "cam_default", "cam_suspend"; pinctrl-0 = <&cam_sensor_mclk0_default &cam_sensor_rear_default>; pinctrl-1 = <&cam_sensor_mclk0_sleep &cam_sensor_rear_sleep>; gpios = <&tlmm 26 0>, - <&tlmm 36 0>, - <&tlmm 35 0>; + <&tlmm 35 0>, + <&tlmm 36 0>; qcom,gpio-reset = <1>; qcom,gpio-standby = <2>; qcom,gpio-req-tbl-num = <0 1 2>; @@ -144,7 +432,7 @@ reg = <0x01>; qcom,csiphy-sd-index = <1>; qcom,csid-sd-index = <1>; - qcom,eeprom-src = <&eeprom2>; + qcom,eeprom-src = <&eeprom6 &eeprom5 &eeprom2>; qcom,mount-angle = <270>; cam_vdig-supply = <&pm8917_l23>; cam_vana-supply = <&pm8917_l22>; diff --git a/arch/arm/boot/dts/qcom/msm8917-pinctrl.dtsi b/arch/arm/boot/dts/qcom/msm8917-pinctrl.dtsi index 6617e1aafefa1..89079ae9a1ac9 100644 --- a/arch/arm/boot/dts/qcom/msm8917-pinctrl.dtsi +++ b/arch/arm/boot/dts/qcom/msm8917-pinctrl.dtsi @@ -1,5 +1,6 @@ /* * Copyright (c) 2015-2016, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -68,7 +69,53 @@ }; }; }; - + smb_int_pin { + pins = "gpio61"; + qcom,num-grp-pins = <1>; + qcom,pin-func = <0>; + label = "smb_int_gpio"; + smb_int_default: smb_int_default { + drive-strength = <2>; /*8 MA */ + bias-pull-up; /* PULL UP*/ + }; + }; + bq_int_default: bq_int_default { + mux { + pins = "gpio25"; + function ="gpio"; + }; + config { + pins = "gpio25"; + drive-strength = <2>; /* 2 MA */ + bias-pull-up; + /* PULL UP*/ + }; + }; + tps65132_en_default: tps65132_en_default { + mux { + pins = "gpio126", "gpio127"; + function = "gpio"; + }; + config { + pins = "gpio126", "gpio127"; + drive-strength = <2>; + bias-pull-down; + }; + }; + gpio_led_pins { + gpio_led_off: gpio_led_off { + mux { + pins = "gpio45"; + function = "gpio"; + }; + config { + pins = "gpio45"; + drive-strength = <6>; + bias-pull-down; + output-low; + }; + }; + }; pmx_ts_reset_suspend { ts_reset_suspend: ts_reset_suspend { mux { @@ -871,24 +918,24 @@ pri-tlmm-lines { pri_tlmm_lines_act: pri_tlmm_lines_act { mux { - pins = "gpio85", "gpio88"; + pins = /*"gpio85", */"gpio88"; function = "pri_mi2s"; }; config { - pins = "gpio85", "gpio88"; + pins = /*"gpio85", */"gpio88"; drive-strength = <8>; }; }; pri_tlmm_lines_sus: pri_tlmm_lines_sus { mux { - pins = "gpio85", "gpio88"; + pins = /*"gpio85", */"gpio88"; function = "pri_mi2s"; }; config { - pins = "gpio85", "gpio88"; + pins = /*"gpio85", */"gpio88"; drive-strength = <2>; bias-pull-down; }; @@ -981,7 +1028,65 @@ }; }; }; + spi7 { + spi7_default: spi7_default { + /* active state */ + mux { + /* MOSI, MISO, CLK */ + pins = "gpio85", "gpio86", "gpio88"; + function = "blsp_spi7"; + }; + config { + pins = "gpio85", "gpio86", "gpio88"; + drive-strength = <12>; /* 12 MA */ + bias-disable = <0>; /* No PULL */ + }; + }; + + spi7_sleep: spi7_sleep { + /* suspended state */ + mux { + /* MOSI, MISO, CLK */ + pins = "gpio85", "gpio86", "gpio88"; + function = "gpio"; + }; + + config { + pins = "gpio85", "gpio86", "gpio88"; + drive-strength = <2>; /* 2 MA */ + bias-pull-down; /* PULL Down */ + }; + }; + + spi7_cs0_active: cs0_active { + /* CS */ + mux { + pins = "gpio87"; + function = "blsp_spi7"; + }; + + config { + pins = "gpio87"; + drive-strength = <2>; + bias-disable = <0>; + }; + }; + + spi7_cs0_sleep: cs0_sleep { + /* CS */ + mux { + pins = "gpio87"; + function = "gpio"; + }; + + config { + pins = "gpio87"; + drive-strength = <2>; + bias-disable = <0>; + }; + }; + }; i2c_2 { i2c_2_active: i2c_2_active { /* active state */ @@ -1007,7 +1112,7 @@ config { pins = "gpio6", "gpio7"; drive-strength = <2>; - bias-disable; + bias-pull-down; }; }; }; @@ -1182,12 +1287,12 @@ usbc_int_default: usbc_int_default { mux { - pins = "gpio97", "gpio131"; + pins = /*"gpio97",*/ "gpio131"; function = "gpio"; }; config { - pins = "gpio97", "gpio131"; + pins = /*"gpio97",*/ "gpio131"; drive-strength = <2>; bias-pull-up; }; diff --git a/arch/arm/boot/dts/qcom/msm8917-pm.dtsi b/arch/arm/boot/dts/qcom/msm8917-pm.dtsi index 367bdee125249..1cf7cee0d0ae2 100644 --- a/arch/arm/boot/dts/qcom/msm8917-pm.dtsi +++ b/arch/arm/boot/dts/qcom/msm8917-pm.dtsi @@ -202,6 +202,7 @@ <0xff 155>, /* sdc1_irq(0) */ <0xff 157>, /* sdc2_irq(0) */ <0xff 167>, /* bam_irq(0) */ + <0xff 168>, <0xff 170>, /* sdc1_pwr_cmd_irq */ <0xff 173>, /* o_wcss_apss_smd_hi */ <0xff 174>, /* o_wcss_apss_smd_med */ @@ -241,6 +242,7 @@ <0xff 263>, /* ipa_bam_irq[2] */ <0xff 269>, /* rpm_wdog_expired_irq */ <0xff 270>, /* blsp1_bam_irq[0] */ + <0xff 271>, /* sps interrupt */ <0xff 272>, /* smmu_intr_bus[17] */ <0xff 273>, /* smmu_bus_intr[18] */ <0xff 274>, /* smmu_bus_intr[19] */ diff --git a/arch/arm/boot/dts/qcom/msm8917-pmi8937-qrd-sku5_S88503.dts b/arch/arm/boot/dts/qcom/msm8917-pmi8937-qrd-sku5_S88503.dts new file mode 100644 index 0000000000000..68989f098a838 --- /dev/null +++ b/arch/arm/boot/dts/qcom/msm8917-pmi8937-qrd-sku5_S88503.dts @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2016, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/dts-v1/; + +#include "msm8917.dtsi" +#include "msm8917-pmi8937-qrd-sku5_S88503.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM8917-PMI8937 QRD SKU5"; + compatible = "qcom,msm8917-qrd-sku5", "qcom,msm8917-qrd", + "qcom,msm8917", "qcom,qrd"; + qcom,board-id= <0x1000b 1>, <0x2000b 1>; +}; + +&int_codec { + qcom,model = "msm8917-sku5-snd-card"; +}; diff --git a/arch/arm/boot/dts/qcom/msm8917-pmi8937-qrd-sku5_S88503.dtsi b/arch/arm/boot/dts/qcom/msm8917-pmi8937-qrd-sku5_S88503.dtsi new file mode 100644 index 0000000000000..928e626ce5b4f --- /dev/null +++ b/arch/arm/boot/dts/qcom/msm8917-pmi8937-qrd-sku5_S88503.dtsi @@ -0,0 +1,437 @@ +/* + * Copyright (c) 2016, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "msm8917-qrd.dtsi" +#include "msm8937-mdss-panels.dtsi" +#include "dsi-panel-hx8394f-boe-c3a-720p-video.dtsi" +#include "dsi-panel-nt35521s-ebbg-c3a-720p-video.dtsi" + +#include "dsi-panel-ili9881c-ebbg-c3a-720p-video.dtsi" + +#include "msm8917-qrd_S88503.dtsi" +#include "msm8917-camera-sensor-qrd-s88503.dtsi" + +&mdss_mdp { + qcom,mdss-pref-prim-intf = "dsi"; +}; + +&mdss_dsi { + hw-config = "single_dsi"; +}; + +&mdss_dsi0 { + qcom,dsi-pref-prim-pan = <&dsi_hx8394f_boe_720_vid>; + qcom,dsi-pref-sub-pan = <&dsi_nt35521s_ebbg_720_video>; + + qcom,dsi-pref-sub1-pan = <&dsi_ili9881c_ebbg_720p_video>; + pinctrl-names = "mdss_default", "mdss_sleep"; + pinctrl-0 = <&mdss_dsi_active>; + pinctrl-1 = <&mdss_dsi_suspend>; + qcom,platform-te-gpio = <&tlmm 24 0>; + qcom,platform-reset-gpio = <&tlmm 60 0>; + lab-supply = <&tps65132_pos>; + ibb-supply = <&tps65132_neg>; + + qcom,regulator-ldo-mode; + qcom,platform-regulator-settings = [ 00 01 01 00 20 07 00]; +}; + +&dsi_panel_pwr_supply { + qcom,panel-supply-entry@2 { + reg = <2>; + qcom,supply-name = "lab"; + qcom,supply-min-voltage = <5000000>; + qcom,supply-max-voltage = <5000000>; + qcom,supply-enable-load = <200>; + qcom,supply-disable-load = <0>; + }; + + qcom,panel-supply-entry@3 { + reg = <3>; + qcom,supply-name = "ibb"; + qcom,supply-min-voltage = <5000000>; + qcom,supply-max-voltage = <5000000>; + qcom,supply-enable-load = <40>; + qcom,supply-disable-load = <0>; + qcom,supply-post-off-sleep = <3>; + }; +}; +&dsi_hx8394f_boe_720_vid { + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; +}; +&dsi_nt35521s_ebbg_720_video { + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; +}; + + + + +&dsi_ili9881c_ebbg_720p_video { + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; +}; + +&soc { + i2c@78b6000 { /* i2c 2 */ + aw2013@45 { /*blink */ + compatible = "awinc,aw2013"; + reg = <0x45>; + rgb_led-supply = <&pm8917_l10>; + + red { + label = "red"; + linux,default-trigger = "battery-red"; + default-state = "off"; + retain-state-suspended; + }; + + green { + label = "green"; + linux,default-trigger = "battery-green"; + default-state = "off"; + retain-state-suspended; + }; + + blue { + label = "blue"; + linux,default-trigger = "battery-blue"; + default-state = "off"; + retain-state-suspended; + }; + white { + label = "white"; + linux,default-trigger = "none"; + default-state = "off"; + retain-state-suspended; + }; + + yellow { + label = "yellow"; + linux,default-trigger = "none"; + default-state = "off"; + retain-state-suspended; + }; + + cyan { + label = "cyan"; + linux,default-trigger = "none"; + default-state = "off"; + retain-state-suspended; + }; + purple { + label = "purple"; + linux,default-trigger = "none"; + default-state = "off"; + retain-state-suspended; + }; + + }; +}; +gpio-leds { + compatible = "gpio-leds"; + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&gpio_led_off>; + + infred { + gpios = <&tlmm 45 0>; + label = "infrared"; + linux,default-trigger = "infra-red"; + default-state = "off"; + retain-state-suspended; + }; + + }; + gpio-vib { + compatible = "gpio-vibrator"; + vibrator { + gpios = <&tlmm 97 0>; + label = "vibrator"; + max_timeout = <50000>; + }; + }; +}; +&i2c_3 { /* BLSP1 QUP3 */ + status = "ok"; + ftech@38 { + compatible = "focaltech,5336"; + reg = <0x38>; + interrupt-parent = <&tlmm>; + interrupts = <65 0x2008>; + vdd-supply = <&pm8917_l10>; + vcc_i2c-supply = <&pm8917_l5>; + /* pins used by touchscreen */ + pinctrl-names = "pmx_ts_active","pmx_ts_suspend", + "pmx_ts_release"; + pinctrl-0 = <&ts_int_active &ts_reset_active>; + pinctrl-1 = <&ts_int_suspend &ts_reset_suspend>; + pinctrl-2 = <&ts_release>; + ftech,name = "ft5336"; + ftech,family-id = <0x36>; + ftech,reset-gpio = <&tlmm 64 0x00>; + ftech,irq-gpio = <&tlmm 65 0x2008>; + ftech,display-coords = <0 0 720 1280>; + ftech,panel-coords = <0 0 720 1280>; + ftech,virtual-key1 = <139 140 2000>;/*menu*/ + ftech,virtual-key2 = <172 360 2000>;/*home*/ + ftech,virtual-key3 = <158 580 2000>;/*back*/ + ftech,no-force-update; + ftech,i2c-pull-up; + ftech,group-id = <1>; + ftech,hard-reset-delay-ms = <20>; + ftech,soft-reset-delay-ms = <200>; + ftech,num-max-touches = <10>; + ftech,fw-delay-aa-ms = <30>; + ftech,fw-delay-55-ms = <30>; + ftech,fw-upgrade-id1 = <0x79>; + ftech,fw-upgrade-id2 = <0x18>; + ftech,fw-delay-readid-ms = <10>; + ftech,fw-delay-era-flsh-ms = <2000>; + ftech,fw-auto-cal; + ftech,ignore-id-check; + }; + goodix_ts@5d { + compatible = "goodix,gt9xx"; + reg = <0x5d>; + interrupt-parent = <&tlmm>; + interrupts = <65 0x2008>; + vdd_ana-supply = <&pm8917_l10>; + vcc_i2c-supply = <&pm8917_l5>; + pinctrl-names = "pmx_ts_active","pmx_ts_suspend", + "pmx_ts_release"; + pinctrl-0 = <&ts_int_active &ts_reset_active>; + pinctrl-1 = <&ts_int_suspend &ts_reset_suspend>; + pinctrl-2 = <&ts_release>; + goodix,rst-gpio = <&tlmm 64 0x00>; + goodix,irq-gpio = <&tlmm 65 0x2008>; + goodix,cfg-group0 = [ + 41 D0 02 00 05 05 75 01 01 0F 24 + 0F 64 3C 03 05 00 00 00 02 00 00 + 00 16 19 1C 14 8C 0E 0E 24 00 31 + 0D 00 00 00 83 33 1D 00 41 00 00 + 00 00 00 08 0A 00 2B 1C 3C 94 D5 + 03 08 00 00 04 93 1E 00 82 23 00 + 74 29 00 69 2F 00 5F 37 00 5F 20 + 40 60 00 F0 40 30 55 50 27 00 00 + 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 14 19 00 00 + 50 50 02 04 06 08 0A 0C 0E 10 12 + 14 16 18 1A 1C 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 1D + 1E 1F 20 21 22 24 26 28 29 2A 1C + 18 16 14 13 12 10 0F 0C 0A 08 06 + 04 02 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 9C 01]; + }; + +}; + +&soc { + gen-vkeys_ft { + compatible = "qcom,gen-vkeys"; + label = "ft5346"; + qcom,disp-maxx = <720>; + qcom,disp-maxy = <1280>; + qcom,panel-maxx = <720>; + qcom,panel-maxy = <2080>; + qcom,key-codes = <139 172 158>; + qcom,y-offset = <0>; + }; + gen-vkeys_gt { + compatible = "qcom,gen-vkeys_gt"; + label = "goodix-ts"; + qcom,disp-maxx = <720>; + qcom,disp-maxy = <1280>; + qcom,panel-maxx = <720>; + qcom,panel-maxy = <2080>; + qcom,key-codes = <139 172 158>; + qcom,y-offset = <0>; + }; + +}; + +&i2c_2 { /* i2c 2 */ + tps65132@3e { + compatible = "ti,tps65132"; + reg = <0x3e>; + i2c-pwr-supply = <&pm8917_l5>; + ti,en-gpio-lpm; + pinctrl-names = "default"; + pinctrl-0 = <&tps65132_en_default>; + + regulators { + tps65132_pos: pos-boost { + regulator-name = "tps65132-pos"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + ti,discharge-enable; + ti,enable-time = <800>; + ti,current-limit = <200000>; + ti,en-gpio = <&tlmm 126 0>; + }; + + tps65132_neg: neg-boost { + regulator-name = "tps65132-neg"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + ti,discharge-enable; + ti,enable-time = <800>; + ti,current-limit = <40000>; + ti,en-gpio = <&tlmm 127 0>; + }; + }; + }; +}; + + + +&i2c_5 { + status = "ok"; + smb358_otg_vreg: smb358-charger@57 { + compatible = "qcom,smb358-charger"; + reg = <0x57>; + interrupt-parent = <&tlmm>; + interrupts = <61 0x0>; + pinctrl-names = "default"; + pinctrl-0 = <&smb_int_default>; + qcom,irq-gpio = <&tlmm 61 0x0>; + qcom,battid-gpio = <&pm8937_gpios 5 0>; + qcom,float-voltage-mv = <4400>; + qcom,recharge-mv = <50>; + regulator-name = "smb358_otg_vreg"; + qcom,thermal-mitigation = <1500 1000 700 700>; + qcom,fastchg-current-max-ma = <1500>; + qcom,bms-psy-name = "bms"; + + qcom,bms-controlled-charging; + qcom,chg-inhibit-disabled; + qcom,chg-vadc = <&pm8937_vadc>; + qcom,chg-adc_tm = <&pm8937_adc_tm>; + qcom,using-pmic-therm; + qcom,bat-present-decidegc = <(300)>; + qcom,disable-apsd; +/* + * Below properties are used for enable JEITA + */ + qcom,hot-bat-decidegc = <600>; + qcom,warm-bat-decidegc = <450>; + qcom,cool-bat-decidegc = <100>; + qcom,cold-bat-decidegc = <0>; + qcom,warm-bat-ma = <600>; + + qcom,cool-normal-bat-ma = <600>; + qcom,cool-cold-bat-ma = <300>; + qcom,iterm-ma = <150>; + qcom,warm-bat-mv = <4100>; + qcom,cool-bat-mv = <4400>; + + qcom,battery-fcc = <3030>; + status = "ok"; + }; + cw2015: cw2015@62 { + compatible = "cellwise,cw2015"; + reg = <0x62>; + vdd-supply = <&pm8917_l17>; + vcc_i2c-supply = <&pm8917_l5>; + interrupt-parent = <&tlmm>; + interrupts = <86 8>; + cw2015,irq-gpio=<86>; + }; +}; +&soc { + led_flash0: qcom,camera-flash { + cell-index = <0>; + compatible = "qcom,camera-flash"; + qcom,flash-type = <1>; + }; +}; +&usb_otg { + + qcom,hsusb-otg-mode = <3>; + interrupts = <0 134 0>,<0 140 0>,<0 136 0>; + interrupt-names = "core_irq", "async_irq", "phy_irq"; + vbus_otg-supply = <&smb358_otg_vreg>; + qcom,hsusb-otg-phy-init-seq = + <0x39 0x81 0x37 0x82 0xffffffff>; +}; + +&pm8937_vadc{ + chan@13 { + label = "mpp4"; + reg = <0x13>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; +}; + +&pm8937_gpios { +gpio@c700 { + reg = <0xc700 0x100>; + qcom,pin-num = <8>; + qcom,mode = <1>; /*QPNP_PIN_MODE_DIG_OUT*/ + qcom,output-type = <0>; /*QPNP_PIN_OUT_BUF_CMOS*/ + qcom,invert = <0>; /*QPNP_PIN_INVERT_DISABLE*/ + qcom,pull = <5>; /*QPNP_PIN_PULL_NO*/ + qcom,vin-sel = <0>; /*QPNP_PIN_VIN2, VREG_S3A*/ + qcom,out-strength = <3>;/*QPNP_PIN_OUT_STRENGTH_MED*/ + qcom,src-sel = <5>; /*QPNP_PIN_SEL_FUNC_2*/ + qcom,master-en = <1>; /*Enable GPIO by default*/ + status = "ok"; + }; + gpio@c400 { + qcom,mode = <0>; + qcom,output-type = <0>; + qcom,pull = <0>; + qcom,vin-sel = <2>; + qcom,out-strength = <3>; + qcom,src-sel = <0>; + qcom,master-en = <1>; + status = "okay"; + }; +}; + + &pm8937_1{ + pm8937_pwm: pwm@bc00 { + status = "ok"; + compatible = "qcom,qpnp-pwm"; + reg = <0xbc00 0x100>; + reg-names = "qpnp-lpg-channel-base"; + qcom,channel-id = <0>; + qcom,supported-sizes = <6>, <9>; + qcom,force-pwm-size = <9>; + #pwm-cells = <2>; + }; + }; + +/ { +qrd_batterydata: qcom,battery-data { + qcom,batt-id-range-pct = <15>; + qcom,rpull-up-kohm = <68>; + qcom,vref-batt-therm = <1800000>; + + #include "batterydata-wingtech-feimaotui_SONY-4v4-3030mah.dtsi" + #include "batterydata-wingtech-xingwangda_ATL-4v4-3030mah.dtsi" + + }; + +}; +&rpm_bus { + rpm-regulator-ldoa6 { + pm8917_l6: regulator-l6 { + regulator-always-on; + }; + }; +}; diff --git a/arch/arm/boot/dts/qcom/msm8917-pmi8937-qrd-sku5_S88505.dts b/arch/arm/boot/dts/qcom/msm8917-pmi8937-qrd-sku5_S88505.dts new file mode 100644 index 0000000000000..04aa0b9b9fedc --- /dev/null +++ b/arch/arm/boot/dts/qcom/msm8917-pmi8937-qrd-sku5_S88505.dts @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2016, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/dts-v1/; + +#include "msm8917.dtsi" +#include "msm8917-pmi8937-qrd-sku5_S88505.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM8917-PMI8937 QRD SKU5"; + compatible = "qcom,msm8917-qrd-sku5", "qcom,msm8917-qrd", + "qcom,msm8917", "qcom,qrd"; + qcom,board-id= <0x1000b 2>, <0x2000b 2>; +}; + +&int_codec { + qcom,model = "msm8917-sku5-snd-card"; +}; diff --git a/arch/arm/boot/dts/qcom/msm8917-pmi8937-qrd-sku5_S88505.dtsi b/arch/arm/boot/dts/qcom/msm8917-pmi8937-qrd-sku5_S88505.dtsi new file mode 100644 index 0000000000000..758c8178d02d3 --- /dev/null +++ b/arch/arm/boot/dts/qcom/msm8917-pmi8937-qrd-sku5_S88505.dtsi @@ -0,0 +1,442 @@ +/* + * Copyright (c) 2016, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "msm8917-qrd.dtsi" +#include "msm8937-mdss-panels.dtsi" +#include "dsi-panel-hx8394f-boe-c3b-720p-video.dtsi" +#include "dsi-panel-ili9881c-ebbg-c3b-720p-video.dtsi" +#include "dsi-panel-ili9881c-ebbgDJN-c3b-720p-video.dtsi" +#include "dsi-panel-ili9881c-tianma-c3b-720p-video.dtsi" + +#include "msm8917-camera-sensor-qrd-s88505.dtsi" + +#include "msm8917-qrd_S88505.dtsi" + +&mdss_mdp { + qcom,mdss-pref-prim-intf = "dsi"; +}; + +&mdss_dsi { + hw-config = "single_dsi"; +}; + +&mdss_dsi0 { + qcom,dsi-pref-prim-pan = <&dsi_hx8394f_boe_720_vid>; + qcom,dsi-pref-sub-pan = <&dsi_ili9881c_ebbg_720p_video>; + qcom,dsi-pref-sub1-pan = <&dsi_ili9881c_ebbgDJN_720p_video>; + qcom,dsi-pref-sub2-pan = <&dsi_ili9881c_tianma_720p_video>; + pinctrl-names = "mdss_default", "mdss_sleep"; + pinctrl-0 = <&mdss_dsi_active>; + pinctrl-1 = <&mdss_dsi_suspend>; + qcom,platform-te-gpio = <&tlmm 24 0>; + qcom,platform-reset-gpio = <&tlmm 60 0>; + lab-supply = <&tps65132_pos>; + ibb-supply = <&tps65132_neg>; + + qcom,regulator-ldo-mode; + qcom,platform-regulator-settings = [ 00 01 01 00 20 07 00]; +}; + +&dsi_panel_pwr_supply { + qcom,panel-supply-entry@2 { + reg = <2>; + qcom,supply-name = "lab"; + qcom,supply-min-voltage = <5000000>; + qcom,supply-max-voltage = <5000000>; + qcom,supply-enable-load = <200>; + qcom,supply-disable-load = <0>; + }; + + qcom,panel-supply-entry@3 { + reg = <3>; + qcom,supply-name = "ibb"; + qcom,supply-min-voltage = <5000000>; + qcom,supply-max-voltage = <5000000>; + qcom,supply-enable-load = <40>; + qcom,supply-disable-load = <0>; + qcom,supply-post-off-sleep = <3>; + }; +}; +&dsi_hx8394f_boe_720_vid { + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; +}; + +&dsi_ili9881c_ebbg_720p_video { + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; +}; + +&dsi_ili9881c_ebbgDJN_720p_video { + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; +}; + +&dsi_ili9881c_tianma_720p_video { + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; +}; + + +&soc { + i2c@78b7000 { + status = "ok"; + ftech@38 { + compatible = "focaltech,5336"; + reg = <0x38>; + interrupt-parent = <&tlmm>; + interrupts = <65 0x2008>; + vdd-supply = <&pm8917_l10>; + vcc_i2c-supply = <&pm8917_l5>; + /* pins used by touchscreen */ + pinctrl-names = "pmx_ts_active","pmx_ts_suspend", + "pmx_ts_release"; + pinctrl-0 = <&ts_int_active &ts_reset_active>; + pinctrl-1 = <&ts_int_suspend &ts_reset_suspend>; + pinctrl-2 = <&ts_release>; + ftech,name = "ft5336"; + ftech,family-id = <0x36>; + ftech,reset-gpio = <&tlmm 64 0x00>; + ftech,irq-gpio = <&tlmm 65 0x2008>; + ftech,display-coords = <0 0 720 1280>; + ftech,panel-coords = <0 0 720 1280>; + ftech,virtual-key1 = <139 140 2000>;/*menu*/ + ftech,virtual-key2 = <172 360 2000>;/*home*/ + ftech,virtual-key3 = <158 580 2000>;/*back*/ + ftech,no-force-update; + ftech,i2c-pull-up; + ftech,group-id = <1>; + ftech,hard-reset-delay-ms = <20>; + ftech,soft-reset-delay-ms = <200>; + ftech,num-max-touches = <10>; + ftech,fw-delay-aa-ms = <30>; + ftech,fw-delay-55-ms = <30>; + ftech,fw-upgrade-id1 = <0x79>; + ftech,fw-upgrade-id2 = <0x18>; + ftech,fw-delay-readid-ms = <10>; + ftech,fw-delay-era-flsh-ms = <2000>; + ftech,fw-auto-cal; + ftech,ignore-id-check; + }; + goodix_ts@5d { + compatible = "goodix,gt9xx"; + reg = <0x5d>; + interrupt-parent = <&tlmm>; + interrupts = <65 0x2008>; + vdd_ana-supply = <&pm8917_l10>; + vcc_i2c-supply = <&pm8917_l5>; + pinctrl-names = "pmx_ts_active","pmx_ts_suspend", + "pmx_ts_release"; + pinctrl-0 = <&ts_int_active &ts_reset_active>; + pinctrl-1 = <&ts_int_suspend &ts_reset_suspend>; + pinctrl-2 = <&ts_release>; + goodix,rst-gpio = <&tlmm 64 0x00>; + goodix,irq-gpio = <&tlmm 65 0x2008>; + goodix,cfg-group0 = [ + 41 D0 02 00 05 05 75 01 01 0F 24 + 0F 64 3C 03 05 00 00 00 02 00 00 + 00 16 19 1C 14 8C 0E 0E 24 00 31 + 0D 00 00 00 83 33 1D 00 41 00 00 + 00 00 00 08 0A 00 2B 1C 3C 94 D5 + 03 08 00 00 04 93 1E 00 82 23 00 + 74 29 00 69 2F 00 5F 37 00 5F 20 + 40 60 00 F0 40 30 55 50 27 00 00 + 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 14 19 00 00 + 50 50 02 04 06 08 0A 0C 0E 10 12 + 14 16 18 1A 1C 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 1D + 1E 1F 20 21 22 24 26 28 29 2A 1C + 18 16 14 13 12 10 0F 0C 0A 08 06 + 04 02 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 9C 01]; + }; + + }; + + gen-vkeys { + compatible = "qcom,gen-vkeys"; + label = "ft5346"; + qcom,disp-maxx = <720>; + qcom,disp-maxy = <1280>; + qcom,panel-maxx = <720>; + qcom,panel-maxy = <2080>; + qcom,key-codes = <139 172 158>; + qcom,y-offset = <0>; + }; + gen-vkeys_gt { + compatible = "qcom,gen-vkeys_gt"; + label = "goodix-ts"; + qcom,disp-maxx = <720>; + qcom,disp-maxy = <1280>; + qcom,panel-maxx = <720>; + qcom,panel-maxy = <2080>; + qcom,key-codes = <139 172 158>; + qcom,y-offset = <0>; + }; + + i2c@78b6000 { /* i2c 2 */ + aw2013@45 { /*blink */ + compatible = "awinc,aw2013"; + reg = <0x45>; + rgb_led-supply = <&pm8917_l10>; + + red { + label = "red"; + linux,default-trigger = "battery-red"; + default-state = "off"; + retain-state-suspended; + }; + + green { + label = "green"; + linux,default-trigger = "battery-green"; + default-state = "off"; + retain-state-suspended; + }; + + blue { + label = "blue"; + linux,default-trigger = "battery-blue"; + default-state = "off"; + retain-state-suspended; + }; + white { + label = "white"; + linux,default-trigger = "none"; + default-state = "off"; + retain-state-suspended; + }; + + yellow { + label = "yellow"; + linux,default-trigger = "none"; + default-state = "off"; + retain-state-suspended; + }; + + cyan { + label = "cyan"; + linux,default-trigger = "none"; + default-state = "off"; + retain-state-suspended; + }; + purple { + label = "purple"; + linux,default-trigger = "none"; + default-state = "off"; + retain-state-suspended; + }; + + }; +}; +gpio-vib { + compatible = "gpio-vibrator"; + vibrator { + gpios = <&tlmm 97 0>; + label = "vibrator"; + max_timeout = <50000>; + }; + }; +}; + + +&i2c_2 { /* i2c 2 */ + tps65132@3e { + compatible = "ti,tps65132"; + reg = <0x3e>; + i2c-pwr-supply = <&pm8917_l5>; + ti,en-gpio-lpm; + pinctrl-names = "default"; + pinctrl-0 = <&tps65132_en_default>; + + regulators { + tps65132_pos: pos-boost { + regulator-name = "tps65132-pos"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + ti,discharge-enable; + ti,enable-time = <800>; + ti,current-limit = <200000>; + ti,en-gpio = <&tlmm 126 0>; + }; + + tps65132_neg: neg-boost { + regulator-name = "tps65132-neg"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + ti,discharge-enable; + ti,enable-time = <800>; + ti,current-limit = <40000>; + ti,en-gpio = <&tlmm 127 0>; + }; + }; + }; +}; + + +&spi_7{ + status = "ok"; + spi_ir@1 { + compatible = "qcom,spi-msm-codec-slave"; + reg = <1>; + spi-max-frequency = <50000000>; + spi-cpol; + status = "ok"; + }; +}; + + +&i2c_5 { + status = "ok"; + +bq27426@55 { + compatible = "ti,bq27426"; + reg = <0x55>; + + vcc_i2c-supply = <&pm8917_l5>; + interrupt-parent = <&tlmm>; + interrupts = <25 2>; + qcom,battid-vadc = <&pm8937_vadc>; + pinctrl-names = "default"; + pinctrl-0 = <&bq_int_default>; +}; + +bq2560x_otg_supply: bq2560x@6B { + compatible = "ti,bq25601-charger"; + reg = <0x6B>; + interrupt-parent = <&tlmm>; + interrupts = <61 2>; + pinctrl-names = "default"; + pinctrl-0 = <&smb_int_default>; + + regulator-name = "bq2560x_otg_supply"; + vdd-supply = <&pm8917_l17>; + + + ti,bq2560x,chip-enable-gpio = <48>; + ti,bq2560x,usb-vlim = <4400>; + ti,bq2560x,usb-ilim = <500>; + ti,bq2560x,usb-vreg = <4400>; + ti,bq2560x,usb-ichg = <500>; + + ti,bq2560x,ta-vlim = <4400>; + ti,bq2560x,ta-ilim = <1000>; + ti,bq2560x,ta-vreg = <4400>; + ti,bq2560x,ta-ichg = <1500>; + qcom,thermal-mitigation = <1000 800 700 0>; + + ti,bq2560x,precharge-current = <256>; + ti,bq2560x,termination-current = <60>; + ti,bq2560x,boost-voltage = <4998>; + ti,bq2560x,boost-current = <500>; + ti,bq2560x,enable_term; + ti,bq2560x,stat-pin-ctrl = <0>; + ti,bq2560x,vac-ovp-threshold = <6500>; + + ti,bq2560x,jeita-hot-degc = <550>; + ti,bq2560x,jeita-warm-degc = <450>; + ti,bq2560x,jeita-cool-normal-degc = <150>; + ti,bq2560x,jeita-cold-cool-degc = <50>; + ti,bq2560x,jeita-cold-degc = <0>; + + ti,bq2560x,jeita-hot-hysteresis = <20>; + ti,bq2560x,jeita-cold-hysteresis = <10>; + + ti,bq2560x,jeita-cold-cool-ma = <300>; + ti,bq2560x,jeita-cool-normal-ma = <600>; + ti,bq2560x,jeita-cool-mv = <4400>; + ti,bq2560x,jeita-warm-ma = <1000>; + ti,bq2560x,jeita-warm-mv = <4100>; + + ti,bq2560x,software-jeita-supported; + }; +}; + +&pm8937_vadc { + chan@13 { + label = "mpp4"; + reg = <0x13>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; +}; + +&soc { + led_flash0: qcom,camera-flash { + cell-index = <0>; + compatible = "qcom,camera-flash"; + qcom,flash-type = <1>; + }; +}; +&usb_otg { + qcom,hsusb-otg-mode = <3>; + interrupts = <0 134 0>,<0 140 0>,<0 136 0>; + interrupt-names = "core_irq", "async_irq", "phy_irq"; + vbus_otg-supply = <&bq2560x_otg_supply>; + qcom,hsusb-otg-phy-init-seq = + <0x53 0x80 0x39 0x81 0x37 0x82 0xffffffff>; +}; +&pm8937_gpios { + gpio@c700 { + reg = <0xc700 0x100>; + qcom,pin-num = <8>; + qcom,mode = <1>; /*QPNP_PIN_MODE_DIG_OUT*/ + qcom,output-type = <0>; /*QPNP_PIN_OUT_BUF_CMOS*/ + qcom,invert = <0>; /*QPNP_PIN_INVERT_DISABLE*/ + qcom,pull = <5>; /*QPNP_PIN_PULL_NO*/ + qcom,vin-sel = <0>; /*QPNP_PIN_VIN2, VREG_S3A*/ + qcom,out-strength = <3>;/*QPNP_PIN_OUT_STRENGTH_MED*/ + qcom,src-sel = <5>; /*QPNP_PIN_SEL_FUNC_2*/ + qcom,master-en = <1>; /*Enable GPIO by default*/ + status = "ok"; + }; + gpio@c400 { + qcom,mode = <0>; + qcom,output-type = <0>; + qcom,pull = <0>; + qcom,vin-sel = <2>; + qcom,out-strength = <3>; + qcom,src-sel = <0>; + qcom,master-en = <1>; + status = "okay"; + }; +}; + + &pm8937_1{ + pm8937_pwm: pwm@bc00 { + status = "ok"; + compatible = "qcom,qpnp-pwm"; + reg = <0xbc00 0x100>; + reg-names = "qpnp-lpg-channel-base"; + qcom,channel-id = <0>; + qcom,supported-sizes = <6>, <9>; + qcom,force-pwm-size = <9>; + #pwm-cells = <2>; + }; + }; + +/ { +qrd_batterydata: qcom,battery-data { + qcom,batt-id-range-pct = <15>; + qcom,rpull-up-kohm = <68>; + qcom,vref-batt-therm = <1800000>; + #include "batterydata-qrd-sku2-4v35-2590mah.dtsi" + #include "batterydata-wingtech-desai_SAMSUNG-4v4-4000mah.dtsi" + #include "batterydata-wingtech-feimaotui_SONY-4v4-4000mah.dtsi" + #include "batterydata-wingtech-xingwangda_ATL-4v4-4000mah.dtsi" + #include "batterydata-wingtech-guangyu_Coslight-4v4-4000mah.dtsi" + }; + +}; diff --git a/arch/arm/boot/dts/qcom/msm8917-qrd.dtsi b/arch/arm/boot/dts/qcom/msm8917-qrd.dtsi index c0644c765e1b3..66e77fb5ef64d 100644 --- a/arch/arm/boot/dts/qcom/msm8917-qrd.dtsi +++ b/arch/arm/boot/dts/qcom/msm8917-qrd.dtsi @@ -12,7 +12,6 @@ */ #include "msm8917-pinctrl.dtsi" -#include "msm8917-camera-sensor-qrd.dtsi" &blsp1_uart2 { status = "ok"; @@ -25,6 +24,7 @@ vdd-supply = <&pm8917_l8>; qcom,vdd-voltage-level = <2900000 2900000>; qcom,vdd-current-level = <200 570000>; + qcom,vdd-always-on; /* device communication power supply */ vdd-io-supply = <&pm8917_l5>; diff --git a/arch/arm/boot/dts/qcom/msm8917-qrd_S88503.dtsi b/arch/arm/boot/dts/qcom/msm8917-qrd_S88503.dtsi new file mode 100644 index 0000000000000..25ee555dffa2d --- /dev/null +++ b/arch/arm/boot/dts/qcom/msm8917-qrd_S88503.dtsi @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2016, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&int_codec { + status = "okay"; + qcom,msm-mbhc-hphl-swh = <1>; + qcom,msm-gpios = + "pri_i2s"; + qcom,pinctrl-names = + "all_off", + "pri_i2s_act"; + pinctrl-names = + "all_off", + "pri_i2s_act"; + pinctrl-0 = <&cdc_pdm_lines_sus &cdc_pdm_lines_2_sus>; + pinctrl-1 = <&cdc_pdm_lines_act &cdc_pdm_lines_2_act>; + qcom,cdc-us-euro-gpios; + qcom,msm-hs-micbias-type = "internal"; + qcom,audio-routing = + "RX_BIAS", "MCLK", + "SPK_RX_BIAS", "MCLK", + "INT_LDO_H", "MCLK", + "MIC BIAS External", "Handset Mic", + "MIC BIAS Internal2", "Headset Mic", + "MIC BIAS External", "Secondary Mic", + "AMIC1", "MIC BIAS External", + "AMIC2", "MIC BIAS Internal2", + "AMIC3", "MIC BIAS External"; +}; + diff --git a/arch/arm/boot/dts/qcom/msm8917-qrd_S88505.dtsi b/arch/arm/boot/dts/qcom/msm8917-qrd_S88505.dtsi new file mode 100644 index 0000000000000..76e13b8cb4537 --- /dev/null +++ b/arch/arm/boot/dts/qcom/msm8917-qrd_S88505.dtsi @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2016, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&int_codec { + status = "okay"; + qcom,msm-mbhc-hphl-swh = <1>; + qcom,msm-gpios = + "pri_i2s"; + qcom,pinctrl-names = + "all_off", + "pri_i2s_act"; + pinctrl-names = + "all_off", + "pri_i2s_act"; + pinctrl-0 = <&cdc_pdm_lines_sus &cdc_pdm_lines_2_sus>; + pinctrl-1 = <&cdc_pdm_lines_act &cdc_pdm_lines_2_act>; + qcom,cdc-us-euro-gpios; + ext-spk-amp-gpio; + qcom,msm-spk-ext-pa = <&tlmm 124 0>; + qcom,msm-hs-micbias-type = "internal"; + qcom,msm-micbias2-ext-cap; + qcom,audio-routing = + "RX_BIAS", "MCLK", + "SPK_RX_BIAS", "MCLK", + "INT_LDO_H", "MCLK", + "MIC BIAS External", "Handset Mic", + "MIC BIAS Internal2", "Headset Mic", + "MIC BIAS External", "Secondary Mic", + "AMIC1", "MIC BIAS External", + "AMIC2", "MIC BIAS Internal2", + "AMIC3", "MIC BIAS External"; +}; + diff --git a/arch/arm/boot/dts/qcom/msm8917.dtsi b/arch/arm/boot/dts/qcom/msm8917.dtsi index cd233ccbb99e8..e7a25b3191377 100644 --- a/arch/arm/boot/dts/qcom/msm8917.dtsi +++ b/arch/arm/boot/dts/qcom/msm8917.dtsi @@ -1,5 +1,6 @@ /* * Copyright (c) 2015-2017, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -40,6 +41,7 @@ smd21 = &smdtty_data21; smd36 = &smdtty_loopback; spi3 = &spi_3; + spi7 = &spi_7; i2c2 = &i2c_2; i2c5 = &i2c_5; i2c3 = &i2c_3; @@ -55,7 +57,7 @@ other_ext_mem: other_ext_region@0 { compatible = "removed-dma-pool"; no-map; - reg = <0x0 0x85b00000 0x0 0xd00000>; + reg = <0x0 0x84A00000 0x0 0x1E00000>; }; modem_mem: modem_region@0 { @@ -398,7 +400,6 @@ qcom,freq-mitigation-temp = <105>; qcom,freq-mitigation-temp-hysteresis = <15>; qcom,freq-mitigation-value = <998400>; - qcom,therm-reset-temp = <115>; qcom,online-hotplug-core; qcom,synchronous-cluster-id = <1>; qcom,synchronous-cluster-map = <1 4 &CPU0 &CPU1 &CPU2 &CPU3>; @@ -557,6 +558,32 @@ dma-names = "tx", "rx"; }; + spi_7: spi@7af7000 { /* BLSP1 QUP3 */ + compatible = "qcom,spi-qup-v2"; + #address-cells = <1>; + #size-cells = <0>; + reg-names = "spi_physical", "spi_bam_physical"; + reg = <0x7af7000 0x600>, + <0x7ac4000 0x1f000>; + interrupt-names = "spi_irq", "spi_bam_irq"; + interrupts = <0 301 0>, <0 239 0>; + spi-max-frequency = <50000000>; + pinctrl-names = "spi_default", "spi_sleep"; + pinctrl-0 = <&spi7_default &spi7_cs0_active>; + pinctrl-1 = <&spi7_sleep &spi7_cs0_sleep>; + clocks = <&clock_gcc clk_gcc_blsp2_ahb_clk>, + <&clock_gcc clk_gcc_blsp2_qup3_spi_apps_clk>; + clock-names = "iface_clk", "core_clk"; + qcom,use-bam; + qcom,use-pinctrl; + qcom,ver-reg-exists; + qcom,bam-consumer-pipe-index = <8>; + qcom,bam-producer-pipe-index = <9>; + qcom,master-id = <84>; + qcom,rt-priority; + status = "disabled"; + }; + rpm_bus: qcom,rpm-smd { compatible = "qcom,rpm-smd"; rpm-channel-name = "rpm_requests"; @@ -752,10 +779,10 @@ HSUSB_1p8-supply = <&pm8917_l7>; HSUSB_3p3-supply = <&pm8917_l13>; qcom,vdd-voltage-level = <0 1200000 1200000>; - vbus_otg-supply = <&smbcharger_charger_otg>; - + qcom,hsusb-otg-phy-init-seq = + <0x53 0x80 0x32 0x81 0x07 0x82 0x13 0x83 0xffffffff>; qcom,hsusb-otg-phy-type = <3>; /* SNPS Femto PHY */ - qcom,hsusb-otg-mode = <3>; /* OTG mode */ + qcom,hsusb-otg-mode = <1>; /* OTG mode */ qcom,hsusb-otg-otg-control = <2>; /* PMIC */ qcom,dp-manual-pullup; qcom,hsusb-otg-mpm-dpsehv-int = <49>; @@ -765,7 +792,7 @@ qcom,axi-prefetch-enable; qcom,enable-sdp-typec-current-limit; qcom,hsusb-otg-delay-lpm; - + qcom,hsusb-otg-default-mode = <1>; /* peripheral mode */ qcom,msm-bus,name = "usb2"; qcom,msm-bus,num-cases = <3>; qcom,msm-bus,num-paths = <1>; @@ -1112,6 +1139,18 @@ }; }; + sn_fuse: snfuse@0xa0128 { + compatible = "qcom,sn-fuse"; + reg = <0xa0128 0x4>; + reg-names = "sn-base"; + }; + + sec_boot_fuse: secbootfuse@0xa41d0 { + compatible = "qcom,sec-boot-fuse"; + reg = <0xa41d0 0x4>; + reg-names = "sec-boot-base"; + }; + qcom,smdtty { compatible = "qcom,smdtty"; @@ -1283,9 +1322,9 @@ qcom,ce-opp-freq = <100000000>; }; - qcom_seecom: qseecom@85b00000 { + qcom_seecom: qseecom@84A00000 { compatible = "qcom,qseecom"; - reg = <0x85b00000 0x800000>; + reg = <0x84A00000 0x1900000>; reg-names = "secapp-region"; qcom,hlos-num-ce-hw-instances = <1>; qcom,hlos-ce-hw-instance = <0>; diff --git a/arch/arm/boot/dts/qcom/msm8937-audio.dtsi b/arch/arm/boot/dts/qcom/msm8937-audio.dtsi index 8a2dd86562e23..0c2adc6f3214c 100644 --- a/arch/arm/boot/dts/qcom/msm8937-audio.dtsi +++ b/arch/arm/boot/dts/qcom/msm8937-audio.dtsi @@ -17,7 +17,7 @@ qcom,model = "msm8952-snd-card-mtp"; qcom,cdc-us-euro-gpios = <&tlmm 63 0>; - qcom,msm-mbhc-hphl-swh = <0>; + qcom,msm-mbhc-hphl-swh = <1>; qcom,msm-mbhc-gnd-swh = <0>; qcom,msm-hs-micbias-type = "external"; qcom,msm-micbias1-ext-cap; diff --git a/arch/arm/boot/dts/qcom/msm8937-camera-sensor-qrd-wt88536.dtsi b/arch/arm/boot/dts/qcom/msm8937-camera-sensor-qrd-wt88536.dtsi new file mode 100644 index 0000000000000..0e217d8ec3123 --- /dev/null +++ b/arch/arm/boot/dts/qcom/msm8937-camera-sensor-qrd-wt88536.dtsi @@ -0,0 +1,425 @@ +/* + * Copyright (c) 2015, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ +&cci { + actuator0: qcom,actuator@0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,actuator"; + qcom,cci-master = <0>; + cam_vaf-supply = <&pm8937_l17>; + qcom,cam-vreg-name = "cam_vaf"; + qcom,cam-vreg-min-voltage = <2850000>; + qcom,cam-vreg-max-voltage = <2850000>; + qcom,cam-vreg-op-mode = <80000>; + }; + + eeprom0: qcom,eeprom@0 { + cell-index = <0>; + reg = <0x00>; + qcom,eeprom-name = "s5k3l8_ofilm"; + compatible = "qcom,eeprom"; + qcom,slave-addr = <0xB0>; + qcom,cci-master = <0>; + qcom,num-blocks = <1>; + + qcom,page0 = <0 0x0 2 0x01 1 1>; + qcom,poll0 = <0 0x0 2 0 1 1>; + qcom,mem0 = <0x7E9 0x0 2 0 1 0>; + + cam_vdig-supply = <&pm8937_l23>; + cam_vana-supply = <&pm8937_l22>; + cam_vio-supply = <&pm8937_l6>; + cam_vaf-supply = <&pm8937_l17>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana", + "cam_vaf"; + qcom,cam-vreg-min-voltage = <1200000 1800000 2800000 2850000>; + qcom,cam-vreg-max-voltage = <1200000 1800000 2800000 2850000>; + qcom,cam-vreg-op-mode = <200000 200000 80000 100000>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_default &cam_sensor_rear_default>; + pinctrl-1 = <&cam_sensor_mclk0_sleep &cam_sensor_rear_sleep>; + gpios = <&tlmm 26 0>, + <&tlmm 36 0>, + <&tlmm 35 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK0", + "MCAM_RESET0", + "MCAM_STANDBY0"; + qcom,cam-power-seq-type = "sensor_vreg", + "sensor_vreg", "sensor_vreg", "sensor_vreg", + "sensor_clk", + "sensor_gpio", "sensor_gpio", + "sensor_gpio", "sensor_gpio"; + qcom,cam-power-seq-val = "cam_vio", + "cam_vana", "cam_vdig", "cam_vaf", + "sensor_cam_mclk", + "sensor_gpio_reset", + "sensor_gpio_standby", + "sensor_gpio_reset", + "sensor_gpio_standby"; + qcom,cam-power-seq-cfg-val = <1 1 1 1 24000000 0 0 1 1>; + qcom,cam-power-seq-delay = <1 1 5 1 10 5 5 5 5>; + status = "ok"; + clocks = <&clock_gcc clk_mclk0_clk_src>, + <&clock_gcc clk_gcc_camss_mclk0_clk>; + clock-names = "cam_src_clk", "cam_clk"; + qcom,clock-rates = <24000000 0>; + }; + + eeprom1: qcom,eeprom@1 { + cell-index = <1>; + reg = <0x01>; + qcom,eeprom-name = "s5k3l8_sunny"; + compatible = "qcom,eeprom"; + qcom,slave-addr = <0xB0>; + qcom,cci-master = <0>; + qcom,num-blocks = <1>; + + qcom,page0 = <0 0x0 2 0x01 1 1>; + qcom,poll0 = <0 0x0 2 0 1 1>; + qcom,mem0 = <0x7E9 0x0 2 0 1 0>; + + cam_vdig-supply = <&pm8937_l23>; + cam_vana-supply = <&pm8937_l22>; + cam_vio-supply = <&pm8937_l6>; + cam_vaf-supply = <&pm8937_l17>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana", + "cam_vaf"; + qcom,cam-vreg-min-voltage = <1200000 1800000 2800000 2850000>; + qcom,cam-vreg-max-voltage = <1200000 1800000 2800000 2850000>; + qcom,cam-vreg-op-mode = <200000 200000 80000 100000>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_default &cam_sensor_rear_default>; + pinctrl-1 = <&cam_sensor_mclk0_sleep &cam_sensor_rear_sleep>; + gpios = <&tlmm 26 0>, + <&tlmm 36 0>, + <&tlmm 35 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK0", + "MCAM_RESET0", + "MCAM_STANDBY0"; + + qcom,cam-power-seq-type = "sensor_vreg", + "sensor_vreg", "sensor_vreg", "sensor_vreg", + "sensor_clk", + "sensor_gpio", "sensor_gpio", + "sensor_gpio", "sensor_gpio"; + qcom,cam-power-seq-val = "cam_vio", + "cam_vana", "cam_vdig", "cam_vaf", + "sensor_cam_mclk", + "sensor_gpio_reset", + "sensor_gpio_standby", + "sensor_gpio_reset", + "sensor_gpio_standby"; + qcom,cam-power-seq-cfg-val = <1 1 1 1 24000000 0 0 1 1>; + qcom,cam-power-seq-delay = <1 1 5 5 10 5 5 5 5>; + status = "ok"; + clocks = <&clock_gcc clk_mclk0_clk_src>, + <&clock_gcc clk_gcc_camss_mclk0_clk>; + clock-names = "cam_src_clk", "cam_clk"; + qcom,clock-rates = <24000000 0>; + }; + + eeprom2: qcom,eeprom@2{ + cell-index = <2>; + reg = <0x02>; + qcom,eeprom-name = "ov5675_ofilm"; + compatible = "qcom,eeprom"; + qcom,slave-addr = <0x6c>; + qcom,cci-master = <0>; + qcom,num-blocks = <4>; + + qcom,page0 = <1 0x3d88 2 7010 2 1>; + qcom,poll0 = <1 0x3d88 2 7010 2 1>; + qcom,mem0 = <0 0x7010 2 0 1 1>; + qcom,page1 = <1 0x3d8a 2 0x710f 2 1>; + qcom,poll1 = <1 0x3d8a 2 0x710f 2 1>; + qcom,mem1 = <0 0x7010 2 0 1 1>; + qcom,page2 = <1 0x3d85 2 0x6 1 1>; + qcom,poll2 = <1 0x3d85 2 0x6 1 1>; + qcom,mem2 = <0 0x7010 2 0 1 1>; + qcom,page3 = <1 0x0100 2 0x1 1 1>; + qcom,poll3 = <0 0x0100 2 0x1 1 1>; + qcom,mem3 = <0x18 0x7010 2 0 1 1>; + + cam_vdig-supply = <&pm8937_l23>; + cam_vana-supply = <&pm8937_l22>; + cam_vio-supply = <&pm8937_l6>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-min-voltage = <1200000 1800000 2800000>; + qcom,cam-vreg-max-voltage = <1200000 1800000 2800000>; + qcom,cam-vreg-op-mode = <200000 80000 100000>; + qcom,gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_default + &cam_sensor_front1_default>; + pinctrl-1 = <&cam_sensor_mclk2_sleep + &cam_sensor_front1_sleep>; + gpios = <&tlmm 28 0>, + <&tlmm 40 0>, + <&tlmm 39 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK2", + "CAM_RESET2", + "CAM_STANDBY2"; + qcom,cam-power-seq-type = + "sensor_gpio", + "sensor_gpio", + "sensor_clk", + "sensor_vreg", + "sensor_vreg", + "sensor_vreg", + "sensor_gpio", + "sensor_gpio"; + qcom,cam-power-seq-val = + "sensor_gpio_reset", + "sensor_gpio_standby", + "sensor_cam_mclk", + "cam_vdig", + "cam_vana", + "cam_vio", + "sensor_gpio_reset", + "sensor_gpio_standby"; + qcom,cam-power-seq-cfg-val = <0 0 24000000 1 1 1 1 1>; + qcom,cam-power-seq-delay = <5 5 10 1 1 1 5 5>; + status = "ok"; + clocks = <&clock_gcc clk_mclk2_clk_src>, + <&clock_gcc clk_gcc_camss_mclk2_clk>; + clock-names = "cam_src_clk", "cam_clk"; + qcom,clock-rates = <24000000 0>; + }; + + eeprom3: qcom,eeprom@3{ + cell-index = <3>; + reg = <0x03>; + qcom,eeprom-name = "s5k5e8_sunny"; + compatible = "qcom,eeprom"; + qcom,slave-addr = <0x5a>; + qcom,cci-master = <0>; + qcom,num-blocks = <5>; + + qcom,page0 = <1 0x0A00 2 0x04 1 1>; + qcom,poll0 = <0 0x0A00 2 0x04 1 1>; + qcom,mem0 = <0 0x0 2 0 1 0>; + qcom,page1 = <1 0x0A02 2 0x04 1 1>; + qcom,poll1 = <0 0x0A02 2 0x04 2 1>; + qcom,mem1 = <0 0x0 2 0 1 0>; + qcom,page2 = <1 0x0A00 2 0x01 1 1>; + qcom,poll2 = <0 0x0A00 2 0x01 1 1>; + qcom,mem2 = <24 0x0A04 2 0 1 1>; + qcom,page3 = <1 0x0A00 2 0x04 1 1>; + qcom,poll3 = <0 0x0A00 2 0x04 1 1>; + qcom,mem3 = <0 0x0 2 0 1 0>; + qcom,page4 = <1 0x0A00 2 0x00 1 1>; + qcom,poll4 = <0 0x0A00 2 0x00 1 0>; + qcom,mem4 = <0 0x0 2 0 1 0>; + + cam_vdig-supply = <&pm8937_l23>; + cam_vana-supply = <&pm8937_l22>; + cam_vio-supply = <&pm8937_l6>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-min-voltage = <1200000 1800000 2800000>; + qcom,cam-vreg-max-voltage = <1200000 1800000 2800000>; + qcom,cam-vreg-op-mode = <200000 80000 100000>; + qcom,gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_default + &cam_sensor_front1_default>; + pinctrl-1 = <&cam_sensor_mclk2_sleep + &cam_sensor_front1_sleep>; + gpios = <&tlmm 28 0>, + <&tlmm 40 0>, + <&tlmm 39 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK2", + "CAM_RESET2", + "CAM_STANDBY2"; + qcom,cam-power-seq-type = + "sensor_gpio", + "sensor_gpio", + "sensor_clk", + "sensor_vreg", + "sensor_vreg", + "sensor_vreg", + "sensor_gpio", + "sensor_gpio"; + qcom,cam-power-seq-val = + "sensor_gpio_reset", + "sensor_gpio_standby", + "sensor_cam_mclk", + "cam_vdig", + "cam_vana", + "cam_vio", + "sensor_gpio_reset", + "sensor_gpio_standby"; + qcom,cam-power-seq-cfg-val = <0 0 24000000 1 1 1 1 1>; + qcom,cam-power-seq-delay = <5 5 10 1 1 1 5 5>; + status = "ok"; + clocks = <&clock_gcc clk_mclk2_clk_src>, + <&clock_gcc clk_gcc_camss_mclk2_clk>; + clock-names = "cam_src_clk", "cam_clk"; + qcom,clock-rates = <24000000 0>; + }; + eeprom4: qcom,eeprom@4 { + cell-index = <4>; + reg = <0x04>; + qcom,eeprom-name = "ov13855_sunny"; + compatible = "qcom,eeprom"; + qcom,slave-addr = <0xB0>; + qcom,cci-master = <0>; + qcom,num-blocks = <1>; + + qcom,page0 = <0 0x0 2 0x01 1 1>; + qcom,poll0 = <0 0x0 2 0 1 1>; + qcom,mem0 = <0x7E9 0x0 2 0 1 0>; + + cam_vdig-supply = <&pm8937_l23>; + cam_vana-supply = <&pm8937_l22>; + cam_vio-supply = <&pm8937_l6>; + cam_vaf-supply = <&pm8937_l17>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana", + "cam_vaf"; + qcom,cam-vreg-min-voltage = <1200000 1800000 2800000 2850000>; + qcom,cam-vreg-max-voltage = <1200000 1800000 2800000 2850000>; + qcom,cam-vreg-op-mode = <200000 200000 80000 100000>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_default &cam_sensor_rear_default>; + pinctrl-1 = <&cam_sensor_mclk0_sleep &cam_sensor_rear_sleep>; + gpios = <&tlmm 26 0>, + <&tlmm 36 0>, + <&tlmm 35 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK0", + "MCAM_RESET0", + "MCAM_STANDBY0"; + + qcom,cam-power-seq-type = "sensor_vreg", + "sensor_vreg", "sensor_vreg", "sensor_vreg", + "sensor_clk", + "sensor_gpio", "sensor_gpio", + "sensor_gpio", "sensor_gpio"; + qcom,cam-power-seq-val = "cam_vio", + "cam_vana", "cam_vdig", "cam_vaf", + "sensor_cam_mclk", + "sensor_gpio_reset", + "sensor_gpio_standby", + "sensor_gpio_reset", + "sensor_gpio_standby"; + qcom,cam-power-seq-cfg-val = <1 1 1 1 24000000 0 0 1 1>; + qcom,cam-power-seq-delay = <1 1 5 5 10 5 5 5 5>; + status = "ok"; + clocks = <&clock_gcc clk_mclk0_clk_src>, + <&clock_gcc clk_gcc_camss_mclk0_clk>; + clock-names = "cam_src_clk", "cam_clk"; + qcom,clock-rates = <24000000 0>; + }; + + qcom,camera@0 { + cell-index = <0>; + compatible = "qcom,camera"; + reg = <0x0>; + qcom,csiphy-sd-index = <0>; + qcom,csid-sd-index = <0>; + qcom,mount-angle = <90>; + qcom,actuator-src = <&actuator0>; + qcom,led-flash-src = <&led_flash0>; + qcom,eeprom-src = <&eeprom0 &eeprom1 &eeprom4>; + cam_vdig-supply = <&pm8937_l23>; + cam_vana-supply = <&pm8937_l22>; + cam_vio-supply = <&pm8937_l6>; + cam_vaf-supply = <&pm8937_l17>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana", + "cam_vaf"; + qcom,cam-vreg-min-voltage = <1200000 1800000 2800000 2850000>; + qcom,cam-vreg-max-voltage = <1200000 1800000 2800000 2850000>; + qcom,cam-vreg-op-mode = <200000 80000 80000 100000>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_default + &cam_sensor_rear_default>; + pinctrl-1 = <&cam_sensor_mclk0_sleep + &cam_sensor_rear_sleep>; + gpios = <&tlmm 26 0>, + <&tlmm 36 0>, + <&tlmm 35 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK0", + "CAM_RESET0", + "CAM_STANDBY0"; + qcom,sensor-position = <0>; + qcom,sensor-mode = <0>; + qcom,cci-master = <0>; + clocks = <&clock_gcc clk_mclk0_clk_src>, + <&clock_gcc clk_gcc_camss_mclk0_clk>; + clock-names = "cam_src_clk", "cam_clk"; + qcom,clock-rates = <24000000 0>; + }; + + qcom,camera@2 { + cell-index = <2>; + compatible = "qcom,camera"; + reg = <0x02>; + qcom,csiphy-sd-index = <1>; + qcom,csid-sd-index = <1>; + qcom,eeprom-src = <&eeprom2 &eeprom3>; + qcom,mount-angle = <90>; + cam_vdig-supply = <&pm8937_l23>; + cam_vana-supply = <&pm8937_l22>; + cam_vio-supply = <&pm8937_l6>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-min-voltage = <1200000 0 2800000>; + qcom,cam-vreg-max-voltage = <1200000 0 2800000>; + qcom,cam-vreg-op-mode = <105000 0 80000>; + qcom,gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_default + &cam_sensor_front1_default>; + pinctrl-1 = <&cam_sensor_mclk2_sleep + &cam_sensor_front1_sleep>; + gpios = <&tlmm 28 0>, + <&tlmm 40 0>, + <&tlmm 39 0>; + qcom,gpio-reset = <1>; + qcom,gpio-standby = <2>; + qcom,gpio-req-tbl-num = <0 1 2>; + qcom,gpio-req-tbl-flags = <1 0 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK2", + "CAM_RESET2", + "CAM_STANDBY2"; + qcom,sensor-position = <1>; + qcom,sensor-mode = <0>; + qcom,cci-master = <0>; + clocks = <&clock_gcc clk_mclk2_clk_src>, + <&clock_gcc clk_gcc_camss_mclk2_clk>; + clock-names = "cam_src_clk", "cam_clk"; + qcom,clock-rates = <24000000 0>; + }; +}; diff --git a/arch/arm/boot/dts/qcom/msm8937-pinctrl.dtsi b/arch/arm/boot/dts/qcom/msm8937-pinctrl.dtsi index 63b7b94ffafd7..367891ded11e3 100644 --- a/arch/arm/boot/dts/qcom/msm8937-pinctrl.dtsi +++ b/arch/arm/boot/dts/qcom/msm8937-pinctrl.dtsi @@ -49,7 +49,20 @@ }; }; - + gpio_led_pins { + gpio_led_off: gpio_led_off { + mux { + pins = "gpio45"; + function = "gpio"; + }; + config { + pins = "gpio45"; + drive-strength = <6>; + bias-disable; + output-high; + }; + }; + }; i2c_2 { i2c_2_active: i2c_2_active { /* active state */ @@ -289,7 +302,102 @@ }; }; }; + fpc_spi_active: fpc_spi_active{ + mux { + pins = "gpio20", "gpio21", "gpio22", "gpio23"; + function = "blsp_spi6"; + }; + config { + pins = "gpio20", "gpio21", "gpio22", "gpio23"; + drive-strength = <2>; + bias-disable = <0>; + }; + }; + fpc_reset_reset: fpc_reset_reset{ + mux { + pins = "gpio8"; + function = "gpio"; + }; + config { + pins = "gpio8"; + drive-strength = <2>; + bias-disable = <0>; + output-low; + }; + }; + fpc_reset_active: fpc_reset_active{ + mux { + pins = "gpio8"; + function = "gpio"; + }; + config { + pins = "gpio8"; + drive-strength = <2>; + bias-disable = <0>; + output-high; + }; + }; + fpc_irq_active: fpc_irq_active { + mux { + pins = "gpio9"; + function = "gpio"; + }; + config { + pins = "gpio9"; + drive-strength = <2>; + bias-disable = <0>; + input-enable; + }; + }; + goodix_spi_active: goodix_spi_active{ + mux { + pins = "gpio20", "gpio21", "gpio22", "gpio23"; + function = "blsp_spi6"; + }; + config { + pins = "gpio20", "gpio21", "gpio22", "gpio23"; + drive-strength = <2>; + bias-disable = <0>; + }; + }; + goodix_reset_reset: goodix_reset_reset{ + mux { + pins = "gpio8"; + function = "gpio"; + }; + config { + pins = "gpio8"; + drive-strength = <2>; + bias-disable = <0>; + output-low; + }; + }; + goodix_reset_active: goodix_reset_active{ + mux { + pins = "gpio8"; + function = "gpio"; + }; + config { + pins = "gpio8"; + drive-strength = <2>; + bias-disable = <0>; + output-high; + }; + }; + + goodix_irq_active: goodix_irq_active { + mux { + pins = "gpio9"; + function = "gpio"; + }; + config { + pins = "gpio9"; + drive-strength = <2>; + bias-disable = <0>; + input-enable; + }; + }; wcnss_pmux_5wire { /* Active configuration of bus pins */ wcnss_default: wcnss_default { diff --git a/arch/arm/boot/dts/qcom/msm8937-pmi8950-mtp.dtsi b/arch/arm/boot/dts/qcom/msm8937-pmi8950-mtp.dtsi index 7d2a6c9b92720..34f425a975137 100644 --- a/arch/arm/boot/dts/qcom/msm8937-pmi8950-mtp.dtsi +++ b/arch/arm/boot/dts/qcom/msm8937-pmi8950-mtp.dtsi @@ -14,6 +14,9 @@ #include "msm-pmi8950.dtsi" #include "msm8937-mtp.dtsi" #include "msm8937-audio-mtp.dtsi" +#include "dsi-panel-hx8394f-boe-720p-video.dtsi" +#include "dsi-panel-ili9881c-ebbg-720p-video.dtsi" +#include "dsi-panel-ili9881c-ebbgDJN-720p-video.dtsi" &soc { led_flash0: qcom,camera-flash { @@ -44,9 +47,31 @@ qcom,chg-led-support; }; +&mdss_mdp { + qcom,mdss-pref-prim-intf = "dsi"; +}; + +&mdss_dsi { + hw-config = "single_dsi"; +}; + &mdss_dsi0 { lab-supply = <&lab_regulator>; ibb-supply = <&ibb_regulator>; + + qcom,dsi-pref-prim-pan = <&dsi_hx8394f_boe_720_vid>; + qcom,dsi-pref-sub-pan = <&dsi_ili9881c_ebbg_720p_video>; + qcom,dsi-pref-sub1-pan = <&dsi_ili9881c_ebbgDJN_720p_video>; + pinctrl-names = "mdss_default", "mdss_sleep"; + pinctrl-0 = <&mdss_dsi_active &mdss_te_active>; + pinctrl-1 = <&mdss_dsi_suspend &mdss_te_suspend>; + + qcom,platform-te-gpio = <&tlmm 24 0>; + qcom,platform-reset-gpio = <&tlmm 60 0>; + + qcom,regulator-ldo-mode; + qcom,platform-regulator-settings = [ 00 01 01 00 20 07 00]; + }; &mdss_dsi1 { @@ -83,3 +108,31 @@ qcom,supply-post-on-sleep = <20>; }; }; +&dsi_hx8394f_boe_720_vid { + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; +}; + +&dsi_ili9881c_ebbg_720p_video { + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; +}; +&dsi_ili9881c_ebbgDJN_720p_video { + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; +}; + +&spmi_bus { + qcom,pmi8950@3 { + labibb: qpnp-labibb-regulator { + ibb_regulator: qcom,ibb@dc00 { + /delete-property/ + qcom,qpnp-ibb-use-default-voltage; + qcom,qpnp-ibb-init-lcd-voltage = <5500000>; + }; + + lab_regulator: qcom,lab@de00 { + /delete-property/ + qcom,qpnp-ibb-use-default-voltage; + qcom,qpnp-ibb-init-lcd-voltage = <5500000>; + }; + }; + }; +}; diff --git a/arch/arm/boot/dts/qcom/msm8937-pmi8950-qrd-sku1_S88536AA2.dtsi b/arch/arm/boot/dts/qcom/msm8937-pmi8950-qrd-sku1_S88536AA2.dtsi new file mode 100644 index 0000000000000..2794b17b50b06 --- /dev/null +++ b/arch/arm/boot/dts/qcom/msm8937-pmi8950-qrd-sku1_S88536AA2.dtsi @@ -0,0 +1,328 @@ +/* + * Copyright (c) 2015-2016, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "msm-pmi8950.dtsi" +#include "msm8937-qrd.dtsi" +#include "msm8937-mdss-panels.dtsi" +#include "dsi-panel-hx8394f-boe-720p-video.dtsi" +#include "dsi-panel-ili9881c-ebbg-720p-video.dtsi" +#include "dsi-panel-ili9881c-ebbgDJN-720p-video.dtsi" +#include "msm8937-camera-sensor-qrd-wt88536.dtsi" + +&i2c_2 { /* i2c 6 */ + + aw2013@45 { /*blink */ + compatible = "awinic,aw2013"; + reg = <0x45>; + rgb_led-supply = <&pm8937_l10>; + + red { + label = "red"; + linux,default-trigger = "battery-red"; + default-state = "off"; + retain-state-suspended; + }; + + green { + label = "green"; + linux,default-trigger = "battery-green"; + default-state = "off"; + retain-state-suspended; + }; + + blue { + label = "blue"; + linux,default-trigger = "battery-blue"; + default-state = "off"; + retain-state-suspended; + }; + white { + label = "white"; + linux,default-trigger = "none"; + default-state = "off"; + retain-state-suspended; + }; + + yellow { + label = "yellow"; + linux,default-trigger = "none"; + default-state = "off"; + retain-state-suspended; + }; + + cyan { + label = "cyan"; + linux,default-trigger = "none"; + default-state = "off"; + retain-state-suspended; + }; + purple { + label = "purple"; + linux,default-trigger = "none"; + default-state = "off"; + retain-state-suspended; + }; + + }; +}; + +&soc { + led_flash0: qcom,camera-flash { + cell-index = <0>; + compatible = "qcom,camera-flash"; + qcom,flash-type = <1>; + qcom,flash-source = <&pmi8950_flash0>; + qcom,torch-source = <&pmi8950_torch0 &pmi8950_torch2>; + qcom,switch-source = <&pmi8950_switch>; + }; + + i2c@78b7000 { + status = "ok"; + ftech@38 { + compatible = "focaltech,5336"; + reg = <0x38>; + interrupt-parent = <&tlmm>; + interrupts = <65 0x2008>; + vdd-supply = <&pm8937_l10>; + vcc_i2c-supply = <&pm8937_l5>; + /* pins used by touchscreen */ + pinctrl-names = "pmx_ts_active","pmx_ts_suspend", + "pmx_ts_release"; + pinctrl-0 = <&ts_int_active &ts_reset_active>; + pinctrl-1 = <&ts_int_suspend &ts_reset_suspend>; + pinctrl-2 = <&ts_release>; + ftech,name = "ft5336"; + ftech,family-id = <0x36>; + ftech,reset-gpio = <&tlmm 64 0x00>; + ftech,irq-gpio = <&tlmm 65 0x2008>; + ftech,display-coords = <0 0 720 1280>; + ftech,panel-coords = <0 0 720 1280>; + ftech,virtual-key1 = <139 140 2000>;/*menu*/ + ftech,virtual-key2 = <172 360 2000>;/*home*/ + ftech,virtual-key3 = <158 580 2000>;/*back*/ + ftech,no-force-update; + ftech,i2c-pull-up; + ftech,group-id = <1>; + ftech,hard-reset-delay-ms = <20>; + ftech,soft-reset-delay-ms = <200>; + ftech,num-max-touches = <10>; + ftech,fw-delay-aa-ms = <30>; + ftech,fw-delay-55-ms = <30>; + ftech,fw-upgrade-id1 = <0x79>; + ftech,fw-upgrade-id2 = <0x18>; + ftech,fw-delay-readid-ms = <10>; + ftech,fw-delay-era-flsh-ms = <2000>; + ftech,fw-auto-cal; + ftech,ignore-id-check; + }; + }; + + gen-vkey1 { + compatible = "qcom,gen-vkeys"; + label = "ft5x06_720p"; + qcom,disp-maxx = <720>; + qcom,disp-maxy = <1280>; + qcom,panel-maxx = <720>; + qcom,panel-maxy = <1458>; + qcom,key-codes = <139 172 158>; + qcom,y-offset = <0>; + }; + + fpc1020 { + compatible = "soc:fpc1020"; + + interrupt-parent = <&tlmm>; + interrupts = <9 0x0>; + + fpc,gpio_rst = <&tlmm 8 0>; + fpc,gpio_irq = <&tlmm 9 0>; + + vcc_spi-supply = <&pm8937_l5>; + vdd_ana-supply = <&pm8937_l5>; + vdd_io-supply = <&pm8937_l5>; + + fpc,enable-on-boot; + /delete-property/ + fpc,enable-wakeup; + + fpc,spi-max-frequency = <4800000>; + + /* Only for SPI Clock Handled by Linux */ + clock-names = "iface_clk", "core_clk"; + clocks = <&clock_gcc clk_gcc_blsp1_ahb_clk>, + <&clock_gcc clk_gcc_blsp1_qup1_spi_apps_clk>; + + pinctrl-names = "fpc1020_spi_active", + "fpc1020_reset_reset", + "fpc1020_reset_active", + "fpc1020_irq_active"; + + pinctrl-0 = <&fpc_spi_active>; + pinctrl-1 = <&fpc_reset_reset>; + pinctrl-2 = <&fpc_reset_active>; + pinctrl-3 = <&fpc_irq_active>; + }; + + goodix_fp { + compatible = "goodix,fingerprint"; + spi-max-frequency = <1000000>; + input-device-name = "gf3208"; + interrupt-parent = <&tlmm>; + interrupts = <9 0x0>; + + goodix,gpio_reset = <&tlmm 8 0>; + goodix,gpio_irq = <&tlmm 9 0>; + + clock-names = "iface_clk", "core_clk"; + clocks = <&clock_gcc clk_gcc_blsp1_ahb_clk>, + <&clock_gcc clk_gcc_blsp1_qup1_spi_apps_clk>; + + pinctrl-names = "goodixfp_spi_active", + "goodixfp_reset_reset", + "goodixfp_reset_active", + "goodixfp_irq_active"; + + pinctrl-0 = <&goodix_spi_active>; + pinctrl-1 = <&goodix_reset_reset>; + pinctrl-2 = <&goodix_reset_active>; + pinctrl-3 = <&goodix_irq_active>; + }; + gpio-leds { + compatible = "gpio-leds"; + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&gpio_led_off>; + + infred { + gpios = <&tlmm 45 0>; + label = "infrared"; + linux,default-trigger = "infra-red"; + default-state = "off"; + retain-state-suspended; + }; + + }; +}; + +&mdss_mdp { + qcom,mdss-pref-prim-intf = "dsi"; +}; + +&mdss_dsi { + hw-config = "single_dsi"; +}; + + +&mdss_dsi0 { + lab-supply = <&lab_regulator>; + ibb-supply = <&ibb_regulator>; + + + + qcom,dsi-pref-prim-pan = <&dsi_hx8394f_boe_720_vid>; + qcom,dsi-pref-sub-pan = <&dsi_ili9881c_ebbg_720p_video>; + qcom,dsi-pref-sub1-pan = <&dsi_ili9881c_ebbgDJN_720p_video>; + pinctrl-names = "mdss_default", "mdss_sleep"; + pinctrl-0 = <&mdss_dsi_active &mdss_te_active>; + pinctrl-1 = <&mdss_dsi_suspend &mdss_te_suspend>; + + qcom,platform-te-gpio = <&tlmm 24 0>; + qcom,platform-reset-gpio = <&tlmm 60 0>; + + qcom,regulator-ldo-mode; + qcom,platform-regulator-settings = [ 00 01 01 00 20 07 00]; + +}; + +&mdss_dsi1 { + lab-supply = <&lab_regulator>; + ibb-supply = <&ibb_regulator>; +}; + +&labibb { + status = "ok"; + qpnp,qpnp-labibb-mode = "lcd"; +}; + +&ibb_regulator { + qcom,qpnp-ibb-discharge-resistor = <32>; +}; + +&dsi_panel_pwr_supply { + qcom,panel-supply-entry@2 { + reg = <2>; + qcom,supply-name = "lab"; + qcom,supply-min-voltage = <4600000>; + qcom,supply-max-voltage = <6000000>; + qcom,supply-enable-load = <100000>; + qcom,supply-disable-load = <100>; + qcom,supply-post-on-sleep = <5>; + }; + + qcom,panel-supply-entry@3 { + reg = <3>; + qcom,supply-name = "ibb"; + qcom,supply-min-voltage = <4600000>; + qcom,supply-max-voltage = <6000000>; + qcom,supply-enable-load = <100000>; + qcom,supply-disable-load = <100>; + qcom,supply-post-on-sleep = <5>; + }; +}; + +&dsi_hx8394f_boe_720_vid { + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; +}; + +&dsi_ili9881c_ebbg_720p_video { + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; +}; +&dsi_ili9881c_ebbgDJN_720p_video { + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; +}; + +&spmi_bus { + qcom,pmi8950@3 { + labibb: qpnp-labibb-regulator { + ibb_regulator: qcom,ibb@dc00 { + /delete-property/ + qcom,qpnp-ibb-use-default-voltage; + qcom,qpnp-ibb-init-lcd-voltage = <5500000>; + }; + + lab_regulator: qcom,lab@de00 { + /delete-property/ + qcom,qpnp-ibb-use-default-voltage; + qcom,qpnp-ibb-init-lcd-voltage = <5500000>; + }; + }; + }; +}; + +&sdc2_cmd_on { + config { + drive-strength = <12>; + }; +}; + +&sdc2_data_on { + config { + drive-strength = <12>; + }; +}; + +&flash_led { + /delete-node/ qcom,flash_1; + /delete-node/ qcom,torch_1; +}; diff --git a/arch/arm/boot/dts/qcom/msm8937-qrd.dtsi b/arch/arm/boot/dts/qcom/msm8937-qrd.dtsi index 116de59bdfff1..7476cf921ff27 100644 --- a/arch/arm/boot/dts/qcom/msm8937-qrd.dtsi +++ b/arch/arm/boot/dts/qcom/msm8937-qrd.dtsi @@ -1,5 +1,6 @@ /* * Copyright (c) 2015-2016, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -12,7 +13,6 @@ */ #include "msm8937-pinctrl.dtsi" -#include "msm8937-camera-sensor-qrd.dtsi" &soc { gpio_keys { @@ -30,6 +30,11 @@ debounce-interval = <15>; }; }; + + + boardinfo { + compatible = "wt:boardinfo"; + }; }; &wled { @@ -83,6 +88,7 @@ vdd-supply = <&pm8937_l8>; qcom,vdd-voltage-level = <2900000 2900000>; qcom,vdd-current-level = <200 570000>; + qcom,vdd-always-on; /* device communication power supply */ vdd-io-supply = <&pm8937_l5>; diff --git a/arch/arm/boot/dts/qcom/msm8937-regulator.dtsi b/arch/arm/boot/dts/qcom/msm8937-regulator.dtsi index ca571e27aebd4..20c93441fadef 100644 --- a/arch/arm/boot/dts/qcom/msm8937-regulator.dtsi +++ b/arch/arm/boot/dts/qcom/msm8937-regulator.dtsi @@ -136,6 +136,7 @@ regulator-max-microvolt = <1800000>; qcom,init-voltage = <1800000>; status = "okay"; + regulator-always-on; }; }; @@ -296,6 +297,7 @@ pm8937_s5: spm-regulator@2000 { compatible = "qcom,spm-regulator"; reg = <0x2000 0x100>; + qcom,mode = "pwm"; regulator-name = "pm8937_s5"; regulator-min-microvolt = <1050000>; regulator-max-microvolt = <1350000>; @@ -360,7 +362,7 @@ qcom,cpr-fuse-corners = <3>; qcom,cpr-voltage-ceiling = <1155000 1225000 1350000>; - qcom,cpr-voltage-floor = <1050000 1050000 1090000>; + qcom,cpr-voltage-floor = <1150000 1150000 1250000>; vdd-apc-supply = <&pm8937_s5>; mem-acc-supply = <&mem_acc_vreg_corner>; diff --git a/arch/arm/boot/dts/qcom/msm8937.dtsi b/arch/arm/boot/dts/qcom/msm8937.dtsi index b3c684453a119..3b63f95521ca4 100644 --- a/arch/arm/boot/dts/qcom/msm8937.dtsi +++ b/arch/arm/boot/dts/qcom/msm8937.dtsi @@ -33,7 +33,7 @@ other_ext_mem: other_ext_region@0 { compatible = "removed-dma-pool"; no-map; - reg = <0x0 0x85b00000 0x0 0xd00000>; + reg = <0x0 0x84A00000 0x0 0x1E00000>; }; modem_mem: modem_region@0 { @@ -540,6 +540,11 @@ qcom,enable-load = <0>; qcom,disable-load = <0>; }; + aw87319@58{ /*AW87319 PA*/ + compatible = "awinic,aw87319_pa"; + reg = <0x58>; + qcom,ext_pa_spk_aw87319_rst = <&tlmm 124 0>; + }; }; i2c_3: i2c@78b7000 { /* BLSP1 QUP3 */ @@ -550,7 +555,7 @@ reg = <0x78b7000 0x600>; interrupt-names = "qup_irq"; interrupts = <0 97 0>; - qcom,clk-freq-out = <400000>; + qcom,clk-freq-out = <100000>; qcom,clk-freq-in = <19200000>; clock-names = "iface_clk", "core_clk"; clocks = <&clock_gcc clk_gcc_blsp1_ahb_clk>, @@ -1523,9 +1528,9 @@ qcom,ce-opp-freq = <100000000>; }; - qcom_seecom: qseecom@85b00000 { + qcom_seecom: qseecom@84A00000 { compatible = "qcom,qseecom"; - reg = <0x85b00000 0x800000>; + reg = <0x84A00000 0x1900000>; reg-names = "secapp-region"; qcom,hlos-num-ce-hw-instances = <1>; qcom,hlos-ce-hw-instance = <0>; diff --git a/arch/arm/boot/dts/qcom/msm8940-pmi8950-mtp.dtsi b/arch/arm/boot/dts/qcom/msm8940-pmi8950-mtp.dtsi index 65b5097206e66..e04927561c21f 100644 --- a/arch/arm/boot/dts/qcom/msm8940-pmi8950-mtp.dtsi +++ b/arch/arm/boot/dts/qcom/msm8940-pmi8950-mtp.dtsi @@ -15,4 +15,47 @@ #include "msm8940-mtp.dtsi" &soc { + + i2c@78b7000 { + status = "ok"; + ftech@38 { + compatible = "focaltech,5336"; + reg = <0x38>; + interrupt-parent = <&tlmm>; + interrupts = <65 0x2008>; + vdd-supply = <&pm8937_l10>; + vcc_i2c-supply = <&pm8937_l5>; + /* pins used by touchscreen */ + pinctrl-names = "pmx_ts_active","pmx_ts_suspend", + "pmx_ts_release"; + pinctrl-0 = <&ts_int_active &ts_reset_active>; + pinctrl-1 = <&ts_int_suspend &ts_reset_suspend>; + pinctrl-2 = <&ts_release>; + ftech,name = "ft5336"; + ftech,family-id = <0x36>; + ftech,reset-gpio = <&tlmm 64 0x00>; + ftech,irq-gpio = <&tlmm 65 0x2008>; + ftech,display-coords = <0 0 720 1280>; + ftech,panel-coords = <0 0 720 1280>; + ftech,virtual-key1 = <139 140 2000>;/*menu*/ + ftech,virtual-key2 = <172 360 2000>;/*home*/ + ftech,virtual-key3 = <158 580 2000>;/*back*/ + ftech,no-force-update; + ftech,i2c-pull-up; + ftech,group-id = <1>; + ftech,hard-reset-delay-ms = <20>; + ftech,soft-reset-delay-ms = <200>; + ftech,num-max-touches = <10>; + ftech,fw-delay-aa-ms = <30>; + ftech,fw-delay-55-ms = <30>; + ftech,fw-upgrade-id1 = <0x79>; + ftech,fw-upgrade-id2 = <0x18>; + ftech,fw-delay-readid-ms = <10>; + ftech,fw-delay-era-flsh-ms = <2000>; + ftech,fw-auto-cal; + ftech,ignore-id-check; + }; + + }; }; + diff --git a/arch/arm/boot/dts/qcom/msm8940-pmi8950-qrd-sku7_S88536AA2.dts b/arch/arm/boot/dts/qcom/msm8940-pmi8950-qrd-sku7_S88536AA2.dts new file mode 100644 index 0000000000000..8f32c9942cb04 --- /dev/null +++ b/arch/arm/boot/dts/qcom/msm8940-pmi8950-qrd-sku7_S88536AA2.dts @@ -0,0 +1,89 @@ +/* + * Copyright (c) 2016, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/dts-v1/; + +#include "msm8940.dtsi" +#include "msm8937-pmi8950-qrd-sku1_S88536AA2.dtsi" +#include "msm8940-pinctrl.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM8940-PMI8950 QRD SKU7"; + compatible = "qcom,msm8940-qrd-sku7", "qcom,msm8940-qrd", + "qcom,msm8940", "qcom,qrd"; + qcom,board-id= <0x1000b 1>, <0x2000b 1>; + qcom,pmic-id = <0x10019 0x010011 0x0 0x0>; +}; + +/ { + qrd_batterydata: qcom,battery-data { + qcom,batt-id-range-pct = <15>; + #include "batterydata-qrd-Desay-4v4-4100mah.dtsi" + #include "batterydata-qrd-Atl-4v4-4100mah.dtsi" + #include "batterydata-qrd-Coslight-4v4-4100mah.dtsi" + #include "batterydata-qrd-Default-4v4-4100mah.dtsi" + }; +}; + +&pmi8950_charger { + qcom,battery-data = <&qrd_batterydata>; + qcom,float-voltage-mv = <4400>; + qcom,chg-inhibit-fg; + qcom,thermal-mitigation = <2000 1500 1200 700 0>; + status = "okay"; + qcom,vchg_sns-vadc = <&pmi8950_vadc>; + qcom,vchg-adc-channel-id = <3>; +}; + +&pmi8950_fg { + qcom,battery-data = <&qrd_batterydata>; + qcom,cold-bat-decidegc = <(0)>; + qcom,cool-bat-decidegc = <(150)>; + qcom,hot-bat-decidegc = <550>; + qcom,warm-bat-decidegc = <450>; + qcom,warm-bat-india-decidegc = <500>; + qcom,fg-iterm-ma = <180>; + qcom,fg-chg-iterm-ma = <130>; + qcom,resume-soc = <99>; + qcom,resume-soc-raw = <253>; + qcom,vbat-estimate-diff-mv = <100>; + qcom,fg-cutoff-voltage-mv = <3400>; + qcom,fg-cc-cv-threshold-mv = <4390>; + qcom,cl-max-increment-deciperc = <1>; + qcom,cl-max-decrement-deciperc = <1>; + qcom,fg-delta-soc = <1>; + qcom,bad-battery-detection-enable; + qcom,hold-soc-while-full; + qcom,thermal-coefficients = [B7 85 B2 49 71 35]; +}; + +&usb_otg { + qcom,usbin-vadc = <&pmi8950_vadc>; +}; +&soc { + sound { + qcom,model = "msm8920-sku7-snd-card"; + }; + + i2c@78b7000 { + synaptics@4b { + vdd-supply = <&pm8937_l10>; + }; + }; +}; + +&i2c_2 { + pericom-type-c@1d { + status="disabled"; + }; +}; diff --git a/arch/arm/boot/dts/qcom/msm8940.dtsi b/arch/arm/boot/dts/qcom/msm8940.dtsi index 6ec88d4915276..f4bffec714799 100644 --- a/arch/arm/boot/dts/qcom/msm8940.dtsi +++ b/arch/arm/boot/dts/qcom/msm8940.dtsi @@ -473,7 +473,6 @@ <38 0 28>, /* SVSP(20mv); TURBO(15mv); KV(1.9) */ <0 0 38>; /* TURBO(20mv); KV(1.9) */ - qcom,cpr-enable; }; &mdss_mdp { @@ -548,6 +547,19 @@ qcom,inst-id = <11>; }; + + sn_fuse: snfuse@0xa0128 { + compatible = "qcom,sn-fuse"; + reg = <0xa0128 0x4>; + reg-names = "sn-base"; + }; + + sec_boot_fuse: secbootfuse@0xa41d0 { + compatible = "qcom,sec-boot-fuse"; + reg = <0xa41d0 0x4>; + reg-names = "sec-boot-base"; + }; + }; /* GPU overrides */ diff --git a/arch/arm/boot/dts/qcom/msm8952-mdss-panels.dtsi b/arch/arm/boot/dts/qcom/msm8952-mdss-panels.dtsi index 17798d4384617..e4d20291c7cd0 100644 --- a/arch/arm/boot/dts/qcom/msm8952-mdss-panels.dtsi +++ b/arch/arm/boot/dts/qcom/msm8952-mdss-panels.dtsi @@ -35,6 +35,7 @@ qcom,supply-max-voltage = <1800000>; qcom,supply-enable-load = <100000>; qcom,supply-disable-load = <100>; + qcom,supply-post-on-sleep = <12>; }; qcom,panel-supply-entry@2 { @@ -44,6 +45,8 @@ qcom,supply-max-voltage = <6000000>; qcom,supply-enable-load = <100000>; qcom,supply-disable-load = <100>; + qcom,supply-post-on-sleep = <12>; + qcom,supply-pre-off-sleep = <2>; }; qcom,panel-supply-entry@3 { @@ -53,7 +56,8 @@ qcom,supply-max-voltage = <6000000>; qcom,supply-enable-load = <100000>; qcom,supply-disable-load = <100>; - qcom,supply-post-on-sleep = <20>; + qcom,supply-post-on-sleep = <2>; + qcom,supply-post-off-sleep = <4>; }; }; }; diff --git a/arch/arm/boot/dts/qcom/msm8953-audio.dtsi b/arch/arm/boot/dts/qcom/msm8953-audio.dtsi index 386bc5fc7b578..a9e33101f4c40 100644 --- a/arch/arm/boot/dts/qcom/msm8953-audio.dtsi +++ b/arch/arm/boot/dts/qcom/msm8953-audio.dtsi @@ -16,11 +16,11 @@ &int_codec { qcom,model = "msm8953-snd-card-mtp"; - qcom,cdc-us-euro-gpios = <&tlmm 63 0>; - qcom,msm-mbhc-hphl-swh = <0>; - qcom,msm-mbhc-gnd-swh = <0>; - qcom,msm-hs-micbias-type = "internal"; + qcom,cdc-us-euro-gpios; + qcom,msm-mbhc-hphl-swh = <1>; + qcom,msm-hs-micbias-type = "external"; qcom,msm-micbias1-ext-cap; + qcom,msm-micbias2-ext-cap; qcom,msm-gpios = "pri_i2s", diff --git a/arch/arm/boot/dts/qcom/msm8953-audio_rosy.dtsi b/arch/arm/boot/dts/qcom/msm8953-audio_rosy.dtsi new file mode 100644 index 0000000000000..cae990dc42e94 --- /dev/null +++ b/arch/arm/boot/dts/qcom/msm8953-audio_rosy.dtsi @@ -0,0 +1,263 @@ +/* + * Copyright (c) 2015-2016, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "msm8953-wsa881x.dtsi" + +&int_codec { + qcom,model = "msm8953-snd-card-mtp"; + + qcom,cdc-us-euro-gpios; + qcom,msm-mbhc-hphl-swh = <1>; + qcom,msm-hs-micbias-type = "external"; + qcom,msm-micbias1-ext-cap; + qcom,msm-micbias2-ext-cap; + + qcom,msm-gpios = + "pri_i2s", + "us_eu_gpio", + "quin_i2s", + "comp_gpio"; + qcom,pinctrl-names = + "all_off", + "pri_i2s_act", + "us_eu_gpio_act", + "pri_i2s_us_eu_gpio_act", + "quin_act", + "quin_pri_i2s_act", + "quin_us_eu_gpio_act", + "quin_us_eu_gpio_pri_i2s_act", + "comp_gpio_act", + "comp_gpio_pri_i2s_act", + "comp_gpio_us_eu_gpio_act", + "comp_gpio_pri_i2s_us_eu_gpio_act", + "comp_gpio_quin_act", + "comp_gpio_quin_pri_i2s_act", + "comp_gpio_quin_us_eu_gpio_act", + "comp_gpio_quin_us_eu_gpio_pri_i2s_act"; + + pinctrl-names = + "all_off", + "pri_i2s_act", + "us_eu_gpio_act", + "pri_i2s_us_eu_gpio_act", + "quin_act", + "quin_pri_i2s_act", + "quin_us_eu_gpio_act", + "quin_us_eu_gpio_pri_i2s_act", + "comp_gpio_act", + "comp_gpio_pri_i2s_act", + "comp_gpio_us_eu_gpio_act", + "comp_gpio_pri_i2s_us_eu_gpio_act", + "comp_gpio_quin_act", + "comp_gpio_quin_pri_i2s_act", + "comp_gpio_quin_us_eu_gpio_act", + "comp_gpio_quin_us_eu_gpio_pri_i2s_act"; + + pinctrl-0 = <&cdc_pdm_lines_sus &cdc_pdm_comp_lines_sus + &cdc_pdm_lines_2_sus &cross_conn_det_sus + &pri_tlmm_lines_sus &pri_tlmm_ws_sus>; + pinctrl-1 = <&cdc_pdm_lines_act &cdc_pdm_comp_lines_sus + &cdc_pdm_lines_2_act &cross_conn_det_sus + &pri_tlmm_lines_sus &pri_tlmm_ws_sus>; + pinctrl-2 = <&cdc_pdm_lines_sus &cdc_pdm_comp_lines_sus + &cdc_pdm_lines_2_sus &cross_conn_det_act + &pri_tlmm_lines_sus &pri_tlmm_ws_sus>; + pinctrl-3 = <&cdc_pdm_lines_act &cdc_pdm_comp_lines_sus + &cdc_pdm_lines_2_act &cross_conn_det_act + &pri_tlmm_lines_sus &pri_tlmm_ws_sus>; + pinctrl-4 = <&cdc_pdm_lines_sus &cdc_pdm_comp_lines_sus + &cdc_pdm_lines_2_sus &cross_conn_det_sus + &pri_tlmm_lines_act &pri_tlmm_ws_act>; + pinctrl-5 = <&cdc_pdm_lines_act &cdc_pdm_comp_lines_sus + &cdc_pdm_lines_2_act &cross_conn_det_sus + &pri_tlmm_lines_act &pri_tlmm_ws_act>; + pinctrl-6 = <&cdc_pdm_lines_sus &cdc_pdm_comp_lines_sus + &cdc_pdm_lines_2_sus &cross_conn_det_act + &pri_tlmm_lines_act &pri_tlmm_ws_act>; + pinctrl-7 = <&cdc_pdm_lines_act &cdc_pdm_comp_lines_sus + &cdc_pdm_lines_2_act &cross_conn_det_act + &pri_tlmm_lines_act &pri_tlmm_ws_act>; + pinctrl-8 = <&cdc_pdm_lines_sus &cdc_pdm_comp_lines_act + &cdc_pdm_lines_2_sus &cross_conn_det_sus + &pri_tlmm_lines_sus &pri_tlmm_ws_sus>; + pinctrl-9 = <&cdc_pdm_lines_act &cdc_pdm_comp_lines_act + &cdc_pdm_lines_2_act &cross_conn_det_sus + &pri_tlmm_lines_sus &pri_tlmm_ws_sus>; + pinctrl-10 = <&cdc_pdm_lines_sus &cdc_pdm_comp_lines_act + &cdc_pdm_lines_2_sus &cross_conn_det_act + &pri_tlmm_lines_sus &pri_tlmm_ws_sus>; + pinctrl-11 = <&cdc_pdm_lines_act &cdc_pdm_comp_lines_act + &cdc_pdm_lines_2_act &cross_conn_det_act + &pri_tlmm_lines_sus &pri_tlmm_ws_sus>; + pinctrl-12 = <&cdc_pdm_lines_sus &cdc_pdm_comp_lines_act + &cdc_pdm_lines_2_sus &cross_conn_det_sus + &pri_tlmm_lines_act &pri_tlmm_ws_act>; + pinctrl-13 = <&cdc_pdm_lines_act &cdc_pdm_comp_lines_act + &cdc_pdm_lines_2_act &cross_conn_det_sus + &pri_tlmm_lines_act &pri_tlmm_ws_act>; + pinctrl-14 = <&cdc_pdm_lines_sus &cdc_pdm_comp_lines_act + &cdc_pdm_lines_2_sus &cross_conn_det_act + &pri_tlmm_lines_act &pri_tlmm_ws_act>; + pinctrl-15 = <&cdc_pdm_lines_act &cdc_pdm_comp_lines_act + &cdc_pdm_lines_2_act &cross_conn_det_act + &pri_tlmm_lines_act &pri_tlmm_ws_act>; + + asoc-codec = <&stub_codec>, <&pm8953_diangu_dig>, <&hdmi_dba>; + asoc-codec-names = "msm-stub-codec.1", "cajon_codec", + "msm-hdmi-dba-codec-rx"; +}; + +&pm8953_gpios { + gpio@c000 { + status = "ok"; + qcom,mode = <1>; + qcom,pull = <5>; + qcom,vin-sel = <0>; + qcom,src-sel = <2>; + qcom,master-en = <1>; + qcom,out-strength = <2>; + }; +}; + +&ext_codec { + qcom,model = "msm8953-tasha-snd-card"; + + qcom,cdc-us-euro-gpios = <&tlmm 63 0>; + qcom,msm-mbhc-hphl-swh = <0>; + qcom,msm-mbhc-gnd-swh = <0>; + + qcom,wsa-max-devs = <2>; + qcom,wsa-devs = <&wsa881x_211>, <&wsa881x_212>, + <&wsa881x_213>, <&wsa881x_214>; + qcom,wsa-aux-dev-prefix = "SpkrLeft", "SpkrRight", + "SpkrLeft", "SpkrRight"; +}; + +&wcd9xxx_intc { + interrupt-parent = <&tlmm>; + interrupts = <73 0>; + qcom,gpio-connect = <&tlmm 73 0>; +}; + +&clock_audio { + qcom,audio-ref-clk-gpio = <&pm8953_gpios 1 0>; + qcom,lpass-mclk-id = "pri_mclk"; + clocks = <&clock_gcc clk_div_clk2>; + pinctrl-names = "sleep", "active"; + pinctrl-0 = <&cdc_mclk2_sleep>; + pinctrl-1 = <&cdc_mclk2_active>; +}; + +&pm8953_1 { + pm8953_diangu_dig: 8953_wcd_codec@f000 { + compatible = "qcom,msm8x16_wcd_codec"; + reg = <0xf000 0x100>; + interrupt-parent = <&spmi_bus>; + interrupts = <0x1 0xf0 0x0>, + <0x1 0xf0 0x1>, + <0x1 0xf0 0x2>, + <0x1 0xf0 0x3>, + <0x1 0xf0 0x4>, + <0x1 0xf0 0x5>, + <0x1 0xf0 0x6>, + <0x1 0xf0 0x7>; + interrupt-names = "spk_cnp_int", + "spk_clip_int", + "spk_ocp_int", + "ins_rem_det1", + "but_rel_det", + "but_press_det", + "ins_rem_det", + "mbhc_int"; + + cdc-vdda-cp-supply = <&pm8953_s4>; + qcom,cdc-vdda-cp-voltage = <1900000 2050000>; + qcom,cdc-vdda-cp-current = <500000>; + + cdc-vdd-io-supply = <&pm8953_l5>; + qcom,cdc-vdd-io-voltage = <1800000 1800000>; + qcom,cdc-vdd-io-current = <5000>; + + cdc-vdd-pa-supply = <&pm8953_s4>; + qcom,cdc-vdd-pa-voltage = <1900000 2050000>; + qcom,cdc-vdd-pa-current = <260000>; + + cdc-vdd-mic-bias-supply = <&pm8953_l13>; + qcom,cdc-vdd-mic-bias-voltage = <3125000 3125000>; + qcom,cdc-vdd-mic-bias-current = <5000>; + + qcom,cdc-mclk-clk-rate = <9600000>; + + qcom,cdc-static-supplies = "cdc-vdd-io", + "cdc-vdd-pa", + "cdc-vdda-cp"; + + qcom,cdc-on-demand-supplies = "cdc-vdd-mic-bias"; + qcom,dig-cdc-base-addr = <0xc0f0000>; + }; + + pm8953_diangu_analog: 8953_wcd_codec@f100 { + compatible = "qcom,msm8x16_wcd_codec"; + reg = <0xf100 0x100>; + interrupt-parent = <&spmi_bus>; + interrupts = <0x1 0xf1 0x0>, + <0x1 0xf1 0x1>, + <0x1 0xf1 0x2>, + <0x1 0xf1 0x3>, + <0x1 0xf1 0x4>, + <0x1 0xf1 0x5>; + interrupt-names = "ear_ocp_int", + "hphr_ocp_int", + "hphl_ocp_det", + "ear_cnp_int", + "hphr_cnp_int", + "hphl_cnp_int"; + qcom,dig-cdc-base-addr = <0xc0f0000>; + }; +}; + +&wcd_rst_gpio { + qcom,cdc-rst-n-gpio = <&tlmm 67 0>; +}; + +&wcd9335 { + clock-names = "wcd_clk", "wcd_native_clk"; + clocks = <&clock_audio clk_audio_pmi_clk>, + <&clock_audio clk_audio_ap_clk2>; + + qcom,cdc-reset-gpio = <&tlmm 67 0>; + + cdc-vdd-buck-supply = <&eldo2_8953>; + qcom,cdc-vdd-buck-voltage = <1800000 1800000>; + qcom,cdc-vdd-buck-current = <650000>; + + cdc-buck-sido-supply = <&eldo2_8953>; + qcom,cdc-buck-sido-voltage = <1800000 1800000>; + qcom,cdc-buck-sido-current = <150000>; + + cdc-vdd-tx-h-supply = <&eldo2_8953>; + qcom,cdc-vdd-tx-h-voltage = <1800000 1800000>; + qcom,cdc-vdd-tx-h-current = <25000>; + + cdc-vdd-rx-h-supply = <&eldo2_8953>; + qcom,cdc-vdd-rx-h-voltage = <1800000 1800000>; + qcom,cdc-vdd-rx-h-current = <25000>; + + cdc-vdd-px-supply = <&eldo2_8953>; + qcom,cdc-vdd-px-voltage = <1800000 1800000>; + qcom,cdc-vdd-px-current = <10000>; + + cdc-vdd-mic-bias-supply = <&pm8953_l13>; + qcom,cdc-vdd-mic-bias-voltage = <3125000 3125000>; + qcom,cdc-vdd-mic-bias-current = <15000>; +}; diff --git a/arch/arm/boot/dts/qcom/msm8953-camera-sensor-qrd_rosy.dtsi b/arch/arm/boot/dts/qcom/msm8953-camera-sensor-qrd_rosy.dtsi new file mode 100644 index 0000000000000..6c2300162a114 --- /dev/null +++ b/arch/arm/boot/dts/qcom/msm8953-camera-sensor-qrd_rosy.dtsi @@ -0,0 +1,323 @@ +/* + * Copyright (c) 2015-2016, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&soc { + led_flash1: qcom,camera-flash@1 { + cell-index = <1>; + compatible = "qcom,camera-flash"; + qcom,flash-type = <1>; + qcom,flash-source = <&pmi8940_flash1>; + qcom,torch-source = <&pmi8940_torch1>; + qcom,switch-source = <&pmi8940_switch>; + }; + + led_flash0: qcom,camera-flash@0 { + cell-index = <0>; + compatible = "qcom,camera-flash"; + qcom,flash-type = <1>; + qcom,flash-source = <&pmi8940_flash0>; + qcom,torch-source = <&pmi8940_torch0>; + qcom,switch-source = <&pmi8940_switch>; + }; +}; + +&cci { + actuator0: qcom,actuator@0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,actuator"; + qcom,cci-master = <0>; + cam_vaf-supply = <&pm8953_l17>; + qcom,cam-vreg-name = "cam_vaf"; + qcom,cam-vreg-min-voltage = <2850000>; + qcom,cam-vreg-max-voltage = <2850000>; + qcom,cam-vreg-op-mode = <80000>; + }; + + eeprom0: qcom,eeprom@0 { + cell-index = <0>; + reg = <0x0>; + qcom,eeprom-name = "ovt_ov12a10_i"; + compatible = "qcom,eeprom"; + qcom,slave-addr = <0xB0>; + qcom,cci-master = <0>; + qcom,num-blocks = <1>; + + qcom,page0 = <0 0x0 2 0x01 1 1>; + qcom,poll0 = <0 0x0 2 0 1 1>; + qcom,mem0 = <0x18F6 0x0 2 0 1 0>; + + cam_vio-supply = <&pm8953_l6>; + cam_vaf-supply = <&pm8953_l17>; + qcom,cam-vreg-name = "cam_vio", "cam_vaf"; + qcom,cam-vreg-min-voltage = <1800000 2850000>; + qcom,cam-vreg-max-voltage = <1800000 2850000>; + qcom,cam-vreg-op-mode = <100000 100000>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_default + &cam_sensor_rear_default>; + pinctrl-1 = <&cam_sensor_mclk0_sleep &cam_sensor_rear_sleep>; + gpios = <&tlmm 26 0>, + <&tlmm 40 0>; + qcom,gpio-reset = <1>; + qcom,gpio-req-tbl-num = <0 1>; + qcom,gpio-req-tbl-flags = <1 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK0", + "CAM_RESET0"; + qcom,cam-power-seq-type = "sensor_vreg", "sensor_vreg"; + qcom,cam-power-seq-val = "cam_vio", "cam_vaf"; + qcom,cam-power-seq-cfg-val = <1 1>; + qcom,cam-power-seq-delay = <5 5>; + status = "ok"; + clocks = <&clock_gcc clk_mclk0_clk_src>, + <&clock_gcc clk_gcc_camss_mclk0_clk>; + clock-names = "cam_src_clk", "cam_clk"; + qcom,clock-rates = <24000000 0>; + }; + eeprom1: qcom,eeprom@1 { + cell-index = <1>; + reg = <0x1>; + qcom,eeprom-name = "sony_imx486_ii"; + compatible = "qcom,eeprom"; + qcom,slave-addr = <0xB0>; + qcom,cci-master = <0>; + qcom,num-blocks = <1>; + + qcom,page0 = <0 0x0 2 0x01 1 1>; + qcom,poll0 = <0 0x0 2 0 1 1>; + qcom,mem0 = <0x18F6 0x0 2 0 1 0>; + + cam_vio-supply = <&pm8953_l6>; + cam_vaf-supply = <&pm8953_l17>; + qcom,cam-vreg-name = "cam_vio", "cam_vaf"; + qcom,cam-vreg-min-voltage = <1800000 2850000>; + qcom,cam-vreg-max-voltage = <1800000 2850000>; + qcom,cam-vreg-op-mode = <100000 100000>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_default + &cam_sensor_rear_default>; + pinctrl-1 = <&cam_sensor_mclk0_sleep &cam_sensor_rear_sleep>; + gpios = <&tlmm 26 0>, + <&tlmm 40 0>; + qcom,gpio-reset = <1>; + qcom,gpio-req-tbl-num = <0 1>; + qcom,gpio-req-tbl-flags = <1 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK0", + "CAM_RESET0"; + qcom,cam-power-seq-type = "sensor_vreg", "sensor_vreg"; + qcom,cam-power-seq-val = "cam_vio", "cam_vaf"; + qcom,cam-power-seq-cfg-val = <1 1>; + qcom,cam-power-seq-delay = <5 5>; + status = "ok"; + clocks = <&clock_gcc clk_mclk0_clk_src>, + <&clock_gcc clk_gcc_camss_mclk0_clk>; + clock-names = "cam_src_clk", "cam_clk"; + qcom,clock-rates = <24000000 0>; + }; + + eeprom2: qcom,eeprom@2{ + cell-index = <2>; + reg = <0x02>; + qcom,eeprom-name = "ovt_ov5675_i"; + compatible = "qcom,eeprom"; + qcom,slave-addr = <0x20>; + qcom,cci-master = <1>; + qcom,num-blocks = <1>; + + qcom,page0 = <0 0x3d88 2 0x7010 2 1>; + qcom,poll0 = <0 0x3d88 2 0x7010 2 1>; + qcom,mem0 = <0x95 0x7010 2 0 1 1>; + + cam_vdig-supply = <&pm8953_l23>; + cam_vio-supply = <&pm8953_l6>; + cam_vana-supply = <&pm8953_l22>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-min-voltage = <1200000 1800000 2900000>; + qcom,cam-vreg-max-voltage = <1200000 1800000 2900000>; + qcom,cam-vreg-op-mode = <105000 80000 80000>; + qcom,gpio-no-mux = <0>; + + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_default + &cam_sensor_front1_default>; + pinctrl-1 = <&cam_sensor_mclk1_sleep + &cam_sensor_front1_sleep>; + gpios = <&tlmm 27 0>, + <&tlmm 129 0>; + qcom,gpio-reset = <1>; + qcom,gpio-req-tbl-num = <0 1>; + qcom,gpio-req-tbl-flags = <1 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RESET1"; + + qcom,cam-power-seq-type = + "sensor_gpio", + "sensor_vreg", + "sensor_vreg", + "sensor_vreg", + "sensor_gpio", + "sensor_clk"; + qcom,cam-power-seq-val = + "sensor_gpio_reset", + "cam_vio", + "cam_vana", + "cam_vdig", + "sensor_gpio_reset", + "sensor_cam_mclk"; + qcom,cam-power-seq-cfg-val = <0 1 1 1 1 24000000>; + qcom,cam-power-seq-delay = <5 1 1 5 10 10>; + + status = "ok"; + clocks = <&clock_gcc clk_mclk1_clk_src>, + <&clock_gcc clk_gcc_camss_mclk1_clk>; + clock-names = "cam_src_clk", "cam_clk"; + qcom,clock-rates = <24000000 0>; + }; + + eeprom3: qcom,eeprom@3{ + cell-index = <3>; + reg = <0x03>; + qcom,eeprom-name = "ovt_ov5675_ii"; + compatible = "qcom,eeprom"; + qcom,slave-addr = <0x6c>; + qcom,cci-master = <1>; + qcom,num-blocks = <1>; + + qcom,page0 = <0 0x3d88 2 0x7010 2 1>; + qcom,poll0 = <0 0x3d88 2 0x7010 2 1>; + qcom,mem0 = <0x95 0x7010 2 0 1 1>; + + cam_vdig-supply = <&pm8953_l23>; + cam_vio-supply = <&pm8953_l6>; + cam_vana-supply = <&pm8953_l22>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-min-voltage = <1200000 1800000 2900000>; + qcom,cam-vreg-max-voltage = <1200000 1800000 2900000>; + qcom,cam-vreg-op-mode = <105000 80000 80000>; + qcom,gpio-no-mux = <0>; + + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_default + &cam_sensor_front1_default>; + pinctrl-1 = <&cam_sensor_mclk1_sleep + &cam_sensor_front1_sleep>; + gpios = <&tlmm 27 0>, + <&tlmm 129 0>; + qcom,gpio-reset = <1>; + qcom,gpio-req-tbl-num = <0 1>; + qcom,gpio-req-tbl-flags = <1 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RESET1"; + + qcom,cam-power-seq-type = + "sensor_gpio", + "sensor_vreg", + "sensor_vreg", + "sensor_vreg", + "sensor_gpio", + "sensor_clk"; + qcom,cam-power-seq-val = + "sensor_gpio_reset", + "cam_vio", + "cam_vana", + "cam_vdig", + "sensor_gpio_reset", + "sensor_cam_mclk"; + qcom,cam-power-seq-cfg-val = <0 1 1 1 1 24000000>; + qcom,cam-power-seq-delay = <5 1 1 5 10 10>; + + status = "ok"; + clocks = <&clock_gcc clk_mclk1_clk_src>, + <&clock_gcc clk_gcc_camss_mclk1_clk>; + clock-names = "cam_src_clk", "cam_clk"; + qcom,clock-rates = <24000000 0>; + }; + + qcom,camera@0 { + cell-index = <0>; + compatible = "qcom,camera"; + reg = <0x0>; + qcom,csiphy-sd-index = <0>; + qcom,csid-sd-index = <0>; + qcom,mount-angle = <270>; + qcom,actuator-src = <&actuator0>; + qcom,eeprom-src = <&eeprom0 &eeprom1>; + qcom,led-flash-src = <&led_flash0>; + cam_vio-supply = <&pm8953_l6>; + cam_vdig-supply = <&pm8953_l2>; + cam_vaf-supply = <&pm8953_l17>; + cam_vana-supply = <&pm8953_l22>; + qcom,cam-vreg-name = "cam_vio", "cam_vdig", "cam_vaf", + "cam_vana"; + qcom,cam-vreg-min-voltage = <0 1200000 2850000 2900000>; + qcom,cam-vreg-max-voltage = <0 1200000 2850000 2900000>; + qcom,cam-vreg-op-mode = <0 105000 100000 80000>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_default + &cam_sensor_rear_default>; + pinctrl-1 = <&cam_sensor_mclk0_sleep &cam_sensor_rear_sleep>; + gpios = <&tlmm 26 0>, + <&tlmm 40 0>; + qcom,gpio-reset = <1>; + qcom,gpio-req-tbl-num = <0 1>; + qcom,gpio-req-tbl-flags = <1 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK0", + "CAM_RESET0"; + qcom,sensor-position = <0>; + qcom,sensor-mode = <0>; + qcom,cci-master = <0>; + status = "ok"; + clocks = <&clock_gcc clk_mclk0_clk_src>, + <&clock_gcc clk_gcc_camss_mclk0_clk>; + clock-names = "cam_src_clk", "cam_clk"; + qcom,clock-rates = <24000000 0>; + }; + qcom,camera@2 { + cell-index = <2>; + compatible = "qcom,camera"; + reg = <0x02>; + qcom,csiphy-sd-index = <2>; + qcom,csid-sd-index = <2>; + qcom,mount-angle = <90>; + qcom,led-flash-src = <&led_flash1>; + qcom,eeprom-src = <&eeprom2 &eeprom3>; + cam_vdig-supply = <&pm8953_l23>; + cam_vio-supply = <&pm8953_l6>; + cam_vana-supply = <&pm8953_l22>; + qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana"; + qcom,cam-vreg-min-voltage = <1200000 0 2900000>; + qcom,cam-vreg-max-voltage = <1200000 0 2900000>; + qcom,cam-vreg-op-mode = <105000 0 80000>; + qcom,gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_default + &cam_sensor_front1_default>; + pinctrl-1 = <&cam_sensor_mclk1_sleep + &cam_sensor_front1_sleep>; + gpios = <&tlmm 27 0>, + <&tlmm 129 0>; + qcom,gpio-reset = <1>; + qcom,gpio-req-tbl-num = <0 1>; + qcom,gpio-req-tbl-flags = <1 0>; + qcom,gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RESET1"; + qcom,sensor-position = <1>; + qcom,sensor-mode = <0>; + qcom,cci-master = <1>; + status = "ok"; + clocks = <&clock_gcc clk_mclk1_clk_src>, + <&clock_gcc clk_gcc_camss_mclk1_clk>; + clock-names = "cam_src_clk", "cam_clk"; + qcom,clock-rates = <24000000 0>; + }; +}; diff --git a/arch/arm/boot/dts/qcom/msm8953-mtp_rosy.dtsi b/arch/arm/boot/dts/qcom/msm8953-mtp_rosy.dtsi new file mode 100644 index 0000000000000..0693452033e89 --- /dev/null +++ b/arch/arm/boot/dts/qcom/msm8953-mtp_rosy.dtsi @@ -0,0 +1,405 @@ +/* + * Copyright (c) 2015-2016, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "msm8953-pinctrl.dtsi" +#include "msm8953-audio-mtp.dtsi" +#include "msm8953-camera-sensor-mtp.dtsi" +#include "dsi-panel-ft8613-ebbg-5p7-720p-video.dtsi" +#include "dsi-panel-ft8006m-boe-5p7-720p-video.dtsi" +#include "dsi-panel-ft8613-ebbg-5p5-1080p-video.dtsi" + +&spi_3 { /* BLSP1 QUP3 */ + spi-max-frequency = <16000000>; + maxim_sti@0 { + status = "disabled"; + compatible = "maxim,maxim_sti"; + reg = <0>; + interrupt-parent = <&tlmm>; + interrupts = <65 0>; + spi-max-frequency = <16000000>; + avdd-supply = <&pm8953_l10>; + dvdd-supply = <&pm8953_l5>; + maxim_sti,irq-gpio = <&tlmm 65 0x00>; + maxim_sti,reset-gpio = <&tlmm 64 0x00>; + maxim_sti,touch_fusion = "/vendor/bin/touch_fusion"; + maxim_sti,config_file = "/etc/firmware/qtc800s.cfg"; + maxim_sti,fw_name = "qtc800s.bin"; + pinctrl-names = "pmx_ts_active","pmx_ts_suspend", + "pmx_ts_release"; + pinctrl-0 = <&ts_int_active &ts_reset_active>; + pinctrl-1 = <&ts_int_suspend &ts_reset_suspend>; + pinctrl-2 = <&ts_release>; + }; +}; + +&i2c_5 { /* BLSP2 QUP1 (NFC) */ + nq@28 { + compatible = "qcom,nq-nci"; + reg = <0x28>; + qcom,nq-irq = <&tlmm 17 0x00>; + qcom,nq-ven = <&tlmm 16 0x00>; + qcom,nq-firm = <&tlmm 62 0x00>; + qcom,nq-clkreq = <&pm8953_gpios 2 0x00>; + interrupt-parent = <&tlmm>; + qcom,clk-src = "BBCLK2"; + interrupts = <17 0>; + interrupt-names = "nfc_irq"; + pinctrl-names = "nfc_active", "nfc_suspend"; + pinctrl-0 = <&nfc_int_active &nfc_disable_active>; + pinctrl-1 = <&nfc_int_suspend &nfc_disable_suspend>; + clocks = <&clock_gcc clk_bb_clk2_pin>; + clock-names = "ref_clk"; + }; +}; + +&i2c_3 { + status = "ok"; + focaltech@38{ + compatible = "focaltech,fts"; + reg = <0x38>; + interrupt-parent = <&tlmm>; + interrupts = <65 0x2008>; + vdd-supply = <&pm8953_l10>; + vcc_i2c-suppy = <&pm8953_l6>; + lab-supply = <&lab_regulator>; + ibb-supply = <&ibb_regulator>; + /* pins used by touchscreen */ + pinctrl-names = "pmx_ts_active","pmx_ts_suspend", + "pmx_ts_release"; + pinctrl-0 = <&ts_int_active &ts_reset_active>; + pinctrl-1 = <&ts_int_suspend &ts_reset_suspend>; + pinctrl-2 = <&ts_release>; + focaltech,name = "fts_ts"; + focaltech,family-id = <0x54>; + focaltech,reset-gpio = <&tlmm 64 0x00>; + focaltech,irq-gpio = <&tlmm 65 0x2008>; + focaltech,display-coords = <0 0 1080 1920>; + focaltech,panel-coords = <0 0 1080 1920>; + /*ftech,button-map= <139 102 158>;*/ + focaltech,virtual-key1 = <139 560 2000>;/*menu*/ + focaltech,virtual-key2 = <102 360 2000>;/*home*/ + focaltech,virtual-key3 = <158 160 2000>;/*back*/ + focaltech,no-force-update; + focaltech,i2c-pull-up; + focaltech,group-id = <1>; + focaltech,hard-reset-delay-ms = <20>; + focaltech,soft-reset-delay-ms = <200>; + focaltech,num-max-touches = <10>; + focaltech,fw-delay-aa-ms = <30>; + focaltech,fw-delay-55-ms = <30>; + focaltech,fw-upgrade-id1 = <0x79>; + focaltech,fw-upgrade-id2 = <0x18>; + focaltech,fw-delay-readid-ms = <10>; + focaltech,fw-delay-era-flsh-ms = <2000>; + focaltech,fw-auto-cal; + focaltech,ignore-id-check; + }; +}; + +&pm8953_l10 { + regulator-max-microvolt = <2850000>; +}; + +&soc { + gpio_keys { + compatible = "gpio-keys"; + input-name = "gpio-keys"; + pinctrl-names = "tlmm_gpio_key_active","tlmm_gpio_key_suspend"; + pinctrl-0 = <&gpio_key_active>; + pinctrl-1 = <&gpio_key_suspend>; + + camera_focus { + label = "camera_focus"; + gpios = <&tlmm 87 0x1>; + linux,input-type = <1>; + linux,code = <0x210>; + debounce-interval = <15>; + }; + + camera_snapshot { + label = "camera_snapshot"; + gpios = <&tlmm 86 0x1>; + linux,input-type = <1>; + linux,code = <0x2fe>; + debounce-interval = <15>; + }; + + vol_up { + label = "volume_up"; + gpios = <&tlmm 85 0x1>; + linux,input-type = <1>; + linux,code = <115>; + debounce-interval = <15>; + }; + }; + + hbtp { + compatible = "qcom,hbtp-input"; + vcc_ana-supply = <&pm8953_l10>; + vcc_dig-supply = <&pm8953_l5>; + qcom,afe-load = <50000>; + qcom,afe-vtg-min = <2850000>; + qcom,afe-vtg-max = <2850000>; + qcom,dig-load = <15000>; + qcom,dig-vtg-min = <1800000>; + qcom,dig-vtg-max = <1800000>; + }; + i2c@78b6000 { /* i2c 2 */ + aw2013@45 { /*blink */ + compatible = "awinc,aw2013"; + reg = <0x45>; + rgb_led-supply = <&pm8953_l10>; + + red { + label = "red"; + linux,default-trigger = "battery-red"; + default-state = "off"; + retain-state-suspended; + }; + + green { + label = "green"; + linux,default-trigger = "battery-green"; + default-state = "off"; + retain-state-suspended; + }; + + blue { + label = "blue"; + linux,default-trigger = "battery-blue"; + default-state = "off"; + retain-state-suspended; + }; + white { + label = "white"; + linux,default-trigger = "none"; + default-state = "off"; + retain-state-suspended; + }; + + yellow { + label = "yellow"; + linux,default-trigger = "none"; + default-state = "off"; + retain-state-suspended; + }; + + cyan { + label = "cyan"; + linux,default-trigger = "none"; + default-state = "off"; + retain-state-suspended; + }; + purple { + label = "purple"; + linux,default-trigger = "none"; + default-state = "off"; + retain-state-suspended; + }; + + }; + }; +}; + +&pmi_haptic{ + qcom,actuator-type = "lra"; + qcom,lra-auto-res-mode="qwd"; + qcom,lra-high-z="opt1"; + qcom,lra-res-cal-period = <0>; + qcom,wave-play-rate-us = <4165>; +}; + +&wled { + qcom,cons-sync-write-delay-us = <1000>; +}; + +&flash_led { + compatible = "qcom,qpnp-flash-led"; + reg = <0xd300 0x100>; + qcom,follow-otst2-rb-disabled; +}; + +#include "msm8953-mdss-panels.dtsi" + +&mdss_mdp { + qcom,mdss-pref-prim-intf = "dsi"; +}; + +&mdss_dsi { + hw-config = "single_dsi"; +}; + +&mdss_dsi0 { + qcom,dsi-pref-prim-pan = <&dsi_ft8613_ebbg_5p7_720p_video>; + qcom,dsi-pref-sub-pan = <&dsi_ft8006m_boe_5p7_720p_video>; + qcom,dsi-pref-sub1-pan = <&dsi_ft8613_ebbg_5p5_1080p_video>; + pinctrl-names = "mdss_default", "mdss_sleep"; + pinctrl-0 = <&mdss_dsi_active>; + pinctrl-1 = <&mdss_dsi_suspend>; + + qcom,platform-reset-gpio = <&tlmm 61 0>; + lab-supply = <&lab_regulator>; + ibb-supply = <&ibb_regulator>; +}; + +&mdss_dsi1 { + status = "disabled"; + qcom,dsi-pref-prim-pan = <&dsi_adv7533_1080p>; + pinctrl-names = "mdss_default", "mdss_sleep"; + pinctrl-0 = <&mdss_dsi_active &mdss_te_active>; + pinctrl-1 = <&mdss_dsi_suspend &mdss_te_suspend>; + + qcom,pluggable; + qcom,platform-te-gpio = <&tlmm 24 0>; + qcom,platform-reset-gpio = <&tlmm 61 0>; + qcom,platform-bklight-en-gpio = <&tlmm 59 0>; +}; + +&labibb { + status = "ok"; + qpnp,qpnp-labibb-mode = "lcd"; +}; + +&dsi_ft8613_ebbg_5p7_720p_video { + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; +}; + +&dsi_ft8006m_boe_5p7_720p_video { + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; +}; + +&dsi_ft8613_ebbg_5p5_1080p_video { + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; +}; + +&dsi_truly_1080_vid { + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; + qcom,mdss-dsi-pan-enable-dynamic-fps; + qcom,mdss-dsi-pan-fps-update = "dfps_immediate_clk_mode"; +}; + +&dsi_truly_1080_cmd { + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; + qcom,ulps-enabled; + qcom,partial-update-enabled; + qcom,panel-roi-alignment = <2 2 4 2 1080 2>; +}; + +&blsp1_uart0 { + status = "ok"; + pinctrl-names = "default"; + pinctrl-0 = <&uart_console_active>; +}; + +&mem_client_3_size { + qcom,peripheral-size = <0x500000>; +}; + +&sdhc_1 { + /* device core power supply */ + vdd-supply = <&pm8953_l8>; + qcom,vdd-voltage-level = <2900000 2900000>; + qcom,vdd-current-level = <200 570000>; + + /* device communication power supply */ + vdd-io-supply = <&pm8953_l5>; + qcom,vdd-io-always-on; + qcom,vdd-io-lpm-sup; + qcom,vdd-io-voltage-level = <1800000 1800000>; + qcom,vdd-io-current-level = <200 325000>; + + pinctrl-names = "active", "sleep"; + pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on &sdc1_rclk_on>; + pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off &sdc1_rclk_off>; + + qcom,clk-rates = <400000 20000000 25000000 50000000 100000000 192000000 + 384000000>; + qcom,nonremovable; + qcom,bus-speed-mode = "HS400_1p8v", "HS200_1p8v", "DDR_1p8v"; + + status = "ok"; +}; + +&sdhc_2 { + /* device core power supply */ + vdd-supply = <&pm8953_l11>; + qcom,vdd-voltage-level = <2950000 2950000>; + qcom,vdd-current-level = <15000 800000>; + + /* device communication power supply */ + vdd-io-supply = <&pm8953_l12>; + qcom,vdd-io-voltage-level = <1800000 2950000>; + qcom,vdd-io-current-level = <200 22000>; + + pinctrl-names = "active", "sleep"; + pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>; + pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off>; + + #address-cells = <0>; + interrupt-parent = <&sdhc_2>; + interrupts = <0 1 2>; + #interrupt-cells = <1>; + interrupt-map-mask = <0xffffffff>; + interrupt-map = <0 &intc 0 125 0 + 1 &intc 0 221 0 + 2 &tlmm 133 0>; + interrupt-names = "hc_irq", "pwr_irq", "status_irq"; + cd-gpios = <&tlmm 133 0x1>; + + qcom,clk-rates = <400000 20000000 25000000 50000000 100000000 + 200000000>; + qcom,bus-speed-mode = "SDR12", "SDR25", "SDR50", "DDR50", "SDR104"; + + status = "ok"; +}; + +&pm8953_typec { + ss-mux-supply = <&pm8953_l13>; + qcom,ssmux-gpio = <&tlmm 139 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&typec_ssmux_config>; +}; + +/{ + mtp_batterydata: qcom,battery-data { + qcom,batt-id-range-pct = <15>; + #include "batterydata-itech-3000mah.dtsi" + #include "batterydata-ascent-3450mAh.dtsi" + }; +}; + +&pmi8950_fg { + qcom,battery-data = <&mtp_batterydata>; +}; + +&pmi8950_charger { + qcom,battery-data = <&mtp_batterydata>; + qcom,chg-led-sw-controls; + qcom,chg-led-support; + qcom,external-typec; + qcom,typec-psy-name = "typec"; +}; + +&pm8953_gpios { + /* GPIO 2 (NFC_CLK_REQ) */ + gpio@c100 { + qcom,mode = <0>; + qcom,output-type = <0>; + qcom,pull = <0>; + qcom,vin-sel = <2>; + qcom,out-strength = <3>; + qcom,src-sel = <0>; + qcom,master-en = <1>; + status = "okay"; + }; +}; diff --git a/arch/arm/boot/dts/qcom/msm8953-pinctrl_rosy.dtsi b/arch/arm/boot/dts/qcom/msm8953-pinctrl_rosy.dtsi new file mode 100644 index 0000000000000..9523453cfb500 --- /dev/null +++ b/arch/arm/boot/dts/qcom/msm8953-pinctrl_rosy.dtsi @@ -0,0 +1,1476 @@ +/* + * Copyright (c) 2015-2016, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&soc { + tlmm: pinctrl@1000000 { + compatible = "qcom,msm8953-pinctrl"; + reg = <0x1000000 0x300000>; + interrupts = <0 208 0>; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <2>; + + pmx-uartconsole { + uart_console_active: uart_console_active { + mux { + pins = "gpio4", "gpio5"; + function = "blsp_uart2"; + }; + + config { + pins = "gpio4", "gpio5"; + drive-strength = <2>; + bias-disable; + }; + }; + + uart_console_sleep: uart_console_sleep { + mux { + pins = "gpio4", "gpio5"; + function = "blsp_uart2"; + }; + + config { + pins = "gpio4", "gpio5"; + drive-strength = <2>; + bias-pull-down; + }; + }; + + }; + cci { + cci0_active: cci0_active { + /* cci0 active state */ + mux { + /* CLK, DATA */ + pins = "gpio29", "gpio30"; + function = "cci_i2c"; + }; + + config { + pins = "gpio29", "gpio30"; + drive-strength = <2>; /* 2 MA */ + bias-disable; /* No PULL */ + }; + }; + + cci0_suspend: cci0_suspend { + /* cci0 suspended state */ + mux { + /* CLK, DATA */ + pins = "gpio29", "gpio30"; + function = "cci_i2c"; + }; + + config { + pins = "gpio29", "gpio30"; + drive-strength = <2>; /* 2 MA */ + bias-disable; /* No PULL */ + }; + }; + + cci1_active: cci1_active { + /* cci1 active state */ + mux { + /* CLK, DATA */ + pins = "gpio31", "gpio32"; + function = "cci_i2c"; + }; + + config { + pins = "gpio31", "gpio32"; + drive-strength = <2>; /* 2 MA */ + bias-disable; /* No PULL */ + }; + }; + + cci1_suspend: cci1_suspend { + /* cci1 suspended state */ + mux { + /* CLK, DATA */ + pins = "gpio31", "gpio32"; + function = "cci_i2c"; + }; + + config { + pins = "gpio31", "gpio32"; + drive-strength = <2>; /* 2 MA */ + bias-disable; /* No PULL */ + }; + }; + }; + + /*sensors */ + cam_sensor_mclk0_default: cam_sensor_mclk0_default { + /* MCLK0 */ + mux { + /* CLK, DATA */ + pins = "gpio26"; + function = "cam_mclk"; + }; + + config { + pins = "gpio26"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk0_sleep: cam_sensor_mclk0_sleep { + /* MCLK0 */ + mux { + /* CLK, DATA */ + pins = "gpio26"; + function = "cam_mclk"; + }; + + config { + pins = "gpio26"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_rear_default: cam_sensor_rear_default { + /* RESET, STANDBY */ + mux { + pins = "gpio40"; + function = "gpio"; + }; + + config { + pins = "gpio40"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_rear_sleep: cam_sensor_rear_sleep { + /* RESET, STANDBY */ + mux { + pins = "gpio40"; + function = "gpio"; + }; + + config { + pins = "gpio40"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk1_default: cam_sensor_mclk1_default { + /* MCLK1 */ + mux { + /* CLK, DATA */ + pins = "gpio27"; + function = "cam_mclk"; + }; + + config { + pins = "gpio27"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk1_sleep: cam_sensor_mclk1_sleep { + /* MCLK1 */ + mux { + /* CLK, DATA */ + pins = "gpio27"; + function = "cam_mclk"; + }; + + config { + pins = "gpio27"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_front1_default: cam_sensor_front1_default { + /* RESET, STANDBY */ + mux { + pins = "gpio129", "gpio130"; + function = "gpio"; + }; + + config { + pins = "gpio129", "gpio130"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_front1_sleep: cam_sensor_front1_sleep { + /* RESET, STANDBY */ + mux { + pins = "gpio129", "gpio130"; + function = "gpio"; + }; + + config { + pins = "gpio129", "gpio130"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + pmx_adv7533_int: pmx_adv7533_int { + adv7533_int_active: adv7533_int_active { + mux { + pins = "gpio90"; + function = "gpio"; + }; + + config { + pins = "gpio90"; + drive-strength = <16>; + bias-disable; + }; + }; + + adv7533_int_suspend: adv7533_int_suspend { + mux { + pins = "gpio90"; + function = "gpio"; + }; + + config { + pins = "gpio90"; + drive-strength = <16>; + bias-disable; + }; + }; + + }; + + pmx_mdss: pmx_mdss { + mdss_dsi_active: mdss_dsi_active { + mux { + pins = "gpio61", "gpio59"; + function = "gpio"; + }; + + config { + pins = "gpio61", "gpio59"; + drive-strength = <8>; /* 8 mA */ + bias-disable = <0>; /* no pull */ + output-high; + }; + }; + + mdss_dsi_suspend: mdss_dsi_suspend { + mux { + pins = "gpio61", "gpio59"; + function = "gpio"; + }; + + config { + pins = "gpio61", "gpio59"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* pull down */ + }; + }; + }; + + pmx_mdss_te { + mdss_te_active: mdss_te_active { + mux { + pins = "gpio24"; + function = "mdp_vsync"; + }; + config { + pins = "gpio24"; + drive-strength = <2>; /* 8 mA */ + bias-pull-down; /* pull down*/ + }; + }; + + mdss_te_suspend: mdss_te_suspend { + mux { + pins = "gpio24"; + function = "mdp_vsync"; + }; + config { + pins = "gpio24"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* pull down */ + }; + }; + }; + + /* SDC pin type */ + sdc1_clk_on: sdc1_clk_on { + config { + pins = "sdc1_clk"; + bias-disable; /* NO pull */ + drive-strength = <16>; /* 16 MA */ + }; + }; + + sdc1_clk_off: sdc1_clk_off { + config { + pins = "sdc1_clk"; + bias-disable; /* NO pull */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + sdc1_cmd_on: sdc1_cmd_on { + config { + pins = "sdc1_cmd"; + bias-pull-up; /* pull up */ + drive-strength = <10>; /* 10 MA */ + }; + }; + + sdc1_cmd_off: sdc1_cmd_off { + config { + pins = "sdc1_cmd"; + num-grp-pins = <1>; + bias-pull-up; /* pull up */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + sdc1_data_on: sdc1_data_on { + config { + pins = "sdc1_data"; + bias-pull-up; /* pull up */ + drive-strength = <10>; /* 10 MA */ + }; + }; + + sdc1_data_off: sdc1_data_off { + config { + pins = "sdc1_data"; + bias-pull-up; /* pull up */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + sdc1_rclk_on: sdc1_rclk_on { + config { + pins = "sdc1_rclk"; + bias-pull-down; /* pull down */ + }; + }; + + sdc1_rclk_off: sdc1_rclk_off { + config { + pins = "sdc1_rclk"; + bias-pull-down; /* pull down */ + }; + }; + + sdc2_clk_on: sdc2_clk_on { + config { + pins = "sdc2_clk"; + drive-strength = <16>; /* 16 MA */ + bias-disable; /* NO pull */ + }; + }; + + sdc2_clk_off: sdc2_clk_off { + config { + pins = "sdc2_clk"; + bias-disable; /* NO pull */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + sdc2_cmd_on: sdc2_cmd_on { + config { + pins = "sdc2_cmd"; + bias-pull-up; /* pull up */ + drive-strength = <10>; /* 10 MA */ + }; + }; + + sdc2_cmd_off: sdc2_cmd_off { + config { + pins = "sdc2_cmd"; + bias-pull-up; /* pull up */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + sdc2_data_on: sdc2_data_on { + config { + pins = "sdc2_data"; + bias-pull-up; /* pull up */ + drive-strength = <10>; /* 10 MA */ + }; + }; + + sdc2_data_off: sdc2_data_off { + config { + pins = "sdc2_data"; + bias-pull-up; /* pull up */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + sdc2_cd_on: cd_on { + mux { + pins = "gpio133"; + function = "gpio"; + }; + + config { + pins = "gpio133"; + drive-strength = <2>; + bias-pull-up; + }; + }; + + sdc2_cd_off: cd_off { + mux { + pins = "gpio133"; + function = "gpio"; + }; + + config { + pins = "gpio133"; + drive-strength = <2>; + bias-disable; + }; + }; + gpio_led_pins { + gpio_led_off: gpio_led_off { + mux { + pins = "gpio20"; + function = "gpio"; + }; + config { + pins = "gpio20"; + drive-strength = <6>; + bias-pull-down; + output-low; + }; + }; + }; + i2c_2 { + i2c_2_active: i2c_2_active { + /* active state */ + mux { + pins = "gpio6", "gpio7"; + function = "blsp_i2c2"; + }; + + config { + pins = "gpio6", "gpio7"; + drive-strength = <2>; + bias-disable; + }; + }; + + i2c_2_sleep: i2c_2_sleep { + /* suspended state */ + mux { + pins = "gpio6", "gpio7"; + function = "gpio"; + }; + + config { + pins = "gpio6", "gpio7"; + drive-strength = <2>; + bias-disable; + }; + }; + }; + + i2c_3 { + i2c_3_active: i2c_3_active { + /* active state */ + mux { + pins = "gpio10", "gpio11"; + function = "blsp_i2c3"; + }; + + config { + pins = "gpio10", "gpio11"; + drive-strength = <2>; + bias-disable; + }; + }; + + i2c_3_sleep: i2c_3_sleep { + /* suspended state */ + mux { + pins = "gpio10", "gpio11"; + function = "gpio"; + }; + + config { + pins = "gpio10", "gpio11"; + drive-strength = <2>; + bias-disable; + }; + }; + }; + + i2c_5 { + i2c_5_active: i2c_5_active { + /* active state */ + mux { + pins = "gpio18", "gpio19"; + function = "blsp_i2c5"; + }; + + config { + pins = "gpio18", "gpio19"; + drive-strength = <2>; + bias-disable; + }; + }; + + i2c_5_sleep: i2c_5_sleep { + /* suspended state */ + mux { + pins = "gpio18", "gpio19"; + function = "gpio"; + }; + + config { + pins = "gpio18", "gpio19"; + drive-strength = <2>; + bias-disable; + }; + }; + }; + i2c_8{ + i2c_8_active:i2c_8_active{ + /* active state */ + mux{ + pins = "gpio98","gpio99"; + function = "blsp_i2c8"; + }; + + config{ + pins = "gpio98","gpio99"; + drive-strength = <2>; + bias-disable; + }; + }; + + i2c_8_sleep:i2c_8_sleep{ + /* suspended state */ + mux{ + pins = "gpio98","gpio99"; + function = "gpio"; + }; + + config{ + pins = "gpio98","gpio99"; + drive-strength = <2>; + bias-disable; + }; + }; + }; + + wcnss_pmux_5wire { + /* Active configuration of bus pins */ + wcnss_default: wcnss_default { + wcss_wlan2 { + pins = "gpio76"; + function = "wcss_wlan2"; + }; + wcss_wlan1 { + pins = "gpio77"; + function = "wcss_wlan1"; + }; + wcss_wlan0 { + pins = "gpio78"; + function = "wcss_wlan0"; + }; + wcss_wlan { + pins = "gpio79", "gpio80"; + function = "wcss_wlan"; + }; + + config { + pins = "gpio76", "gpio77", + "gpio78", "gpio79", + "gpio80"; + drive-strength = <6>; /* 6 MA */ + bias-pull-up; /* PULL UP */ + }; + }; + + wcnss_sleep: wcnss_sleep { + wcss_wlan2 { + pins = "gpio76"; + function = "wcss_wlan2"; + }; + wcss_wlan1 { + pins = "gpio77"; + function = "wcss_wlan1"; + }; + wcss_wlan0 { + pins = "gpio78"; + function = "wcss_wlan0"; + }; + wcss_wlan { + pins = "gpio79", "gpio80"; + function = "wcss_wlan"; + }; + + config { + pins = "gpio76", "gpio77", + "gpio78", "gpio79", + "gpio80"; + drive-strength = <2>; /* 2 MA */ + bias-pull-down; /* PULL Down */ + }; + }; + }; + + wcnss_pmux_gpio: wcnss_pmux_gpio { + wcnss_gpio_default: wcnss_gpio_default { + /* Active configuration of bus pins */ + mux { + /* Uses general purpose pins */ + pins = "gpio76", "gpio77", + "gpio78", "gpio79", + "gpio80"; + function = "gpio"; + }; + + config { + pins = "gpio76", "gpio77", + "gpio78", "gpio79", + "gpio80"; + drive-strength = <6>; /* 6 MA */ + bias-pull-up; /* PULL UP */ + }; + }; + }; + + wcd9xxx_intr { + wcd_intr_default: wcd_intr_default{ + mux { + pins = "gpio73"; + function = "gpio"; + }; + + config { + pins = "gpio73"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* pull down */ + input-enable; + }; + }; + }; + + cdc_reset_ctrl { + cdc_reset_sleep: cdc_reset_sleep { + mux { + pins = "gpio67"; + function = "gpio"; + }; + config { + pins = "gpio67"; + drive-strength = <16>; + bias-disable; + output-low; + }; + }; + cdc_reset_active:cdc_reset_active { + mux { + pins = "gpio67"; + function = "gpio"; + }; + config { + pins = "gpio67"; + drive-strength = <16>; + bias-pull-down; + output-high; + }; + }; + }; + + cdc_mclk2_pin { + cdc_mclk2_sleep: cdc_mclk2_sleep { + mux { + pins = "gpio66"; + function = "pri_mi2s"; + }; + config { + pins = "gpio66"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + }; + }; + cdc_mclk2_active: cdc_mclk2_active { + mux { + pins = "gpio66"; + function = "pri_mi2s"; + }; + config { + pins = "gpio66"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + }; + }; + }; + + cdc-pdm-2-lines { + cdc_pdm_lines_2_act: pdm_lines_2_on { + mux { + pins = "gpio70", "gpio71", "gpio72"; + function = "cdc_pdm0"; + }; + + config { + pins = "gpio70", "gpio71", "gpio72"; + drive-strength = <8>; + }; + }; + + cdc_pdm_lines_2_sus: pdm_lines_2_off { + mux { + pins = "gpio70", "gpio71", "gpio72"; + function = "cdc_pdm0"; + }; + + config { + pins = "gpio70", "gpio71", "gpio72"; + drive-strength = <2>; + bias-disable; + }; + }; + }; + + cdc-pdm-lines { + cdc_pdm_lines_act: pdm_lines_on { + mux { + pins = "gpio69", "gpio73", "gpio74"; + function = "cdc_pdm0"; + }; + + config { + pins = "gpio69", "gpio73", "gpio74"; + drive-strength = <8>; + }; + }; + cdc_pdm_lines_sus: pdm_lines_off { + mux { + pins = "gpio69", "gpio73", "gpio74"; + function = "cdc_pdm0"; + }; + + config { + pins = "gpio69", "gpio73", "gpio74"; + drive-strength = <2>; + bias-disable; + }; + }; + }; + + cdc-pdm-comp-lines { + cdc_pdm_comp_lines_act: pdm_comp_lines_on { + mux { + pins = "gpio67", "gpio68"; + function = "cdc_pdm0"; + }; + + config { + pins = "gpio67", "gpio68"; + drive-strength = <8>; + }; + }; + + cdc_pdm_comp_lines_sus: pdm_comp_lines_off { + mux { + pins = "gpio67", "gpio68"; + function = "cdc_pdm0"; + }; + + config { + pins = "gpio67", "gpio68"; + drive-strength = <2>; + bias-disable; + }; + }; + }; + + cross-conn-det { + cross_conn_det_act: lines_on { + mux { + pins = "gpio63"; + function = "gpio"; + }; + + config { + pins = "gpio63"; + drive-strength = <8>; + output-low; + bias-pull-down; + }; + }; + + cross_conn_det_sus: lines_off { + mux { + pins = "gpio63"; + function = "gpio"; + }; + + config { + pins = "gpio63"; + drive-strength = <2>; + bias-pull-down; + }; + }; + }; + + /* WSA VI sense */ + wsa-vi { + wsa_vi_on: wsa_vi_on { + mux { + pins = "gpio94", "gpio95"; + function = "wsa_io"; + }; + + config { + pins = "gpio94", "gpio95"; + drive-strength = <8>; /* 8 MA */ + bias-disable; /* NO pull */ + }; + }; + + wsa_vi_off: wsa_vi_off { + mux { + pins = "gpio94", "gpio95"; + function = "wsa_io"; + }; + + config { + pins = "gpio94", "gpio95"; + drive-strength = <2>; /* 2 MA */ + bias-pull-down; + }; + }; + }; + + /* WSA CLK */ + wsa_clk { + wsa_clk_on: wsa_clk_on { + mux { + pins = "gpio25"; + function = "pri_mi2s_mclk_a"; + }; + + config { + pins = "gpio25"; + drive-strength = <8>; /* 8 MA */ + output-high; + }; + }; + + wsa_clk_off: wsa_clk_off { + mux { + pins = "gpio25"; + function = "pri_mi2s_mclk_a"; + }; + + config { + pins = "gpio25"; + drive-strength = <2>; /* 2 MA */ + output-low; + bias-pull-down; + }; + }; + }; + + pri-tlmm-lines { + pri_tlmm_lines_act: pri_tlmm_lines_act { + mux { + pins = "gpio91", "gpio93"; + function = "pri_mi2s"; + }; + + config { + pins = "gpio91", "gpio93"; + drive-strength = <8>; + }; + }; + + pri_tlmm_lines_sus: pri_tlmm_lines_sus { + mux { + pins = "gpio91", "gpio93"; + function = "pri_mi2s"; + }; + + config { + pins = "gpio91", "gpio93"; + drive-strength = <2>; + bias-pull-down; + }; + }; + }; + + pri-tlmm-ws-lines { + pri_tlmm_ws_act: pri_tlmm_ws_act { + mux { + pins = "gpio92"; + function = "pri_mi2s_ws"; + }; + + config { + pins = "gpio92"; + drive-strength = <8>; + }; + }; + + pri_tlmm_ws_sus: pri_tlmm_ws_sus { + mux { + pins = "gpio92"; + function = "pri_mi2s_ws"; + }; + + config { + pins = "gpio92"; + drive-strength = <2>; + bias-pull-down; + }; + }; + }; + + fpc_spi_active: fpc_spi_active{ + mux { + pins = "gpio135", "gpio136", "gpio137", "gpio138"; + function = "blsp_spi7"; + }; + config { + pins = "gpio135", "gpio136", "gpio137", "gpio138"; + drive-strength = <2>; + bias-disable = <0>; + }; + }; + fpc_reset_reset: fpc_reset_reset{ + mux { + pins = "gpio140"; + function = "gpio"; + }; + config { + pins = "gpio140"; + drive-strength = <2>; + bias-disable = <0>; + output-low; + }; + }; + fpc_reset_active: fpc_reset_active{ + mux { + pins = "gpio140"; + function = "gpio"; + }; + config { + pins = "gpio140"; + drive-strength = <2>; + bias-disable = <0>; + output-high; + }; + }; + + fpc_irq_active: fpc_irq_active { + mux { + pins = "gpio48"; + function = "gpio"; + }; + config { + pins = "gpio48"; + drive-strength = <2>; + bias-disable = <0>; + input-enable; + }; + }; + goodix_spi_active: goodix_spi_active{ + mux { + pins = "gpio135", "gpio136", "gpio137", "gpio138"; + function = "blsp_spi7"; + }; + config { + pins = "gpio135", "gpio136", "gpio137", "gpio138"; + drive-strength = <2>; + bias-disable = <0>; + }; + }; + goodix_reset_reset: goodix_reset_reset{ + mux { + pins = "gpio140"; + function = "gpio"; + }; + config { + pins = "gpio140"; + drive-strength = <2>; + bias-disable = <0>; + output-low; + }; + }; + goodix_reset_active: goodix_reset_active{ + mux { + pins = "gpio140"; + function = "gpio"; + }; + config { + pins = "gpio140"; + drive-strength = <2>; + bias-disable = <0>; + output-high; + }; + }; + + goodix_irq_active: goodix_irq_active { + mux { + pins = "gpio48"; + function = "gpio"; + }; + config { + pins = "gpio48"; + drive-strength = <2>; + bias-disable = <0>; + input-enable; + }; + }; + + spi6 { + spi6_default: spi6_default { + /* active state */ + mux { + /* MOSI, MISO, CLK */ + pins = "gpio20", "gpio21", "gpio23"; + function = "blsp_spi6"; + }; + + config { + pins = "gpio20", "gpio21", "gpio23"; + drive-strength = <12>; /* 12 MA */ + bias-disable = <0>; /* No PULL */ + }; + }; + + spi6_sleep: spi6_sleep { + /* suspended state */ + mux { + /* MOSI, MISO, CLK */ + pins = "gpio20", "gpio21", "gpio23"; + function = "gpio"; + }; + + config { + pins = "gpio20", "gpio21", "gpio23"; + drive-strength = <2>; /* 2 MA */ + bias-pull-down; /* PULL Down */ + }; + }; + + spi6_cs0_active: cs0_active { + /* CS */ + mux { + pins = "gpio22"; + function = "blsp_spi6"; + }; + + config { + pins = "gpio22"; + drive-strength = <2>; + bias-disable = <0>; + }; + }; + + spi6_cs0_sleep: cs0_sleep { + /* CS */ + mux { + pins = "gpio22"; + function = "gpio"; + }; + + config { + pins = "gpio22"; + drive-strength = <2>; + bias-disable = <0>; + }; + }; + }; + /* add pingrp for touchscreen */ + pmx_ts_int_active { + ts_int_active: ts_int_active { + mux { + pins = "gpio65"; + function = "gpio"; + }; + + config { + pins = "gpio65"; + drive-strength = <8>; + bias-pull-up; + }; + }; + }; + + pmx_ts_int_suspend { + ts_int_suspend: ts_int_suspend { + mux { + pins = "gpio65"; + function = "gpio"; + }; + + config { + pins = "gpio65"; + drive-strength = <2>; + bias-pull-down; + }; + }; + }; + + pmx_ts_reset_active { + ts_reset_active: ts_reset_active { + mux { + pins = "gpio64"; + function = "gpio"; + }; + + config { + pins = "gpio64"; + drive-strength = <8>; + bias-pull-up; + }; + }; + }; + + pmx_ts_reset_suspend { + ts_reset_suspend: ts_reset_suspend { + mux { + pins = "gpio64"; + function = "gpio"; + }; + + config { + pins = "gpio64"; + drive-strength = <2>; + bias-pull-down; + }; + }; + }; + + pmx_ts_release { + ts_release: ts_release { + mux { + pins = "gpio65", "gpio64"; + function = "gpio"; + }; + + config { + pins = "gpio65", "gpio64"; + drive-strength = <2>; + bias-pull-down; + }; + }; + }; + + tlmm_gpio_key { + gpio_key_active: gpio_key_active { + mux { + pins = "gpio85", "gpio86", "gpio87"; + function = "gpio"; + }; + + config { + pins = "gpio85", "gpio86", "gpio87"; + drive-strength = <2>; + bias-pull-up; + }; + }; + + gpio_key_suspend: gpio_key_suspend { + mux { + pins = "gpio85", "gpio86", "gpio87"; + function = "gpio"; + }; + + config { + pins = "gpio85", "gpio86", "gpio87"; + drive-strength = <2>; + bias-pull-up; + }; + }; + }; + pmx_qdsd_clk { + qdsd_clk_sdcard: clk_sdcard { + config { + pins = "qdsd_clk"; + bias-disable;/* NO pull */ + drive-strength = <16>; /* 16 MA */ + }; + }; + qdsd_clk_trace: clk_trace { + config { + pins = "qdsd_clk"; + bias-pull-down; /* pull down */ + drive-strength = <2>; /* 2 MA */ + }; + }; + qdsd_clk_swdtrc: clk_swdtrc { + config { + pins = "qdsd_clk"; + bias-pull-down; /* pull down */ + drive-strength = <2>; /* 2 MA */ + }; + }; + qdsd_clk_spmi: clk_spmi { + config { + pins = "qdsd_clk"; + bias-pull-down; /* pull down */ + drive-strength = <2>; /* 2 MA */ + }; + }; + }; + + pmx_qdsd_cmd { + qdsd_cmd_sdcard: cmd_sdcard { + config { + pins = "qdsd_cmd"; + bias-pull-down; /* pull down */ + drive-strength = <8>; /* 8 MA */ + }; + }; + qdsd_cmd_trace: cmd_trace { + config { + pins = "qdsd_cmd"; + bias-pull-down; /* pull down */ + drive-strength = <2>; /* 2 MA */ + }; + }; + qdsd_cmd_swduart: cmd_uart { + config { + pins = "qdsd_cmd"; + bias-pull-up; /* pull up */ + drive-strength = <2>; /* 2 MA */ + }; + }; + qdsd_cmd_swdtrc: cmd_swdtrc { + config { + pins = "qdsd_cmd"; + bias-pull-up; /* pull up */ + drive-strength = <2>; /* 2 MA */ + }; + }; + qdsd_cmd_jtag: cmd_jtag { + config { + pins = "qdsd_cmd"; + bias-disable; /* NO pull */ + drive-strength = <8>; /* 8 MA */ + }; + }; + qdsd_cmd_spmi: cmd_spmi { + config { + pins = "qdsd_cmd"; + bias-pull-down; /* pull down */ + drive-strength = <10>; /* 10 MA */ + }; + }; + }; + + pmx_qdsd_data0 { + qdsd_data0_sdcard: data0_sdcard { + config { + pins = "qdsd_data0"; + bias-pull-down; /* pull down */ + drive-strength = <8>; /* 8 MA */ + }; + }; + qdsd_data0_trace: data0_trace { + config { + pins = "qdsd_data0"; + bias-pull-down; /* pull down */ + drive-strength = <8>; /* 8 MA */ + }; + }; + qdsd_data0_swduart: data0_uart { + config { + pins = "qdsd_data0"; + bias-pull-down; /* pull down */ + drive-strength = <2>; /* 2 MA */ + }; + }; + qdsd_data0_swdtrc: data0_swdtrc { + config { + pins = "qdsd_data0"; + bias-pull-down; /* pull down */ + drive-strength = <2>; /* 2 MA */ + }; + }; + qdsd_data0_jtag: data0_jtag { + config { + pins = "qdsd_data0"; + bias-pull-up; /* pull up */ + drive-strength = <2>; /* 2 MA */ + }; + }; + qdsd_data0_spmi: data0_spmi { + config { + pins = "qdsd_data0"; + bias-pull-down; /* pull down */ + drive-strength = <2>; /* 2 MA */ + }; + }; + }; + + pmx_qdsd_data1 { + qdsd_data1_sdcard: data1_sdcard { + config { + pins = "qdsd_data1"; + bias-pull-down; /* pull down */ + drive-strength = <8>; /* 8 MA */ + }; + }; + qdsd_data1_trace: data1_trace { + config { + pins = "qdsd_data1"; + bias-pull-down; /* pull down */ + drive-strength = <8>; /* 8 MA */ + }; + }; + qdsd_data1_swduart: data1_uart { + config { + pins = "qdsd_data1"; + bias-pull-down; /* pull down */ + drive-strength = <2>; /* 2 MA */ + }; + }; + qdsd_data1_swdtrc: data1_swdtrc { + config { + pins = "qdsd_data1"; + bias-pull-down; /* pull down */ + drive-strength = <2>; /* 2 MA */ + }; + }; + qdsd_data1_jtag: data1_jtag { + config { + pins = "qdsd_data1"; + bias-pull-down; /* pull down */ + drive-strength = <2>; /* 2 MA */ + }; + }; + }; + + pmx_qdsd_data2 { + qdsd_data2_sdcard: data2_sdcard { + config { + pins = "qdsd_data2"; + bias-pull-down; /* pull down */ + drive-strength = <8>; /* 8 MA */ + }; + }; + qdsd_data2_trace: data2_trace { + config { + pins = "qdsd_data2"; + bias-pull-down; /* pull down */ + drive-strength = <8>; /* 8 MA */ + }; + }; + qdsd_data2_swduart: data2_uart { + config { + pins = "qdsd_data2"; + bias-pull-down; /* pull down */ + drive-strength = <2>; /* 2 MA */ + }; + }; + qdsd_data2_swdtrc: data2_swdtrc { + config { + pins = "qdsd_data2"; + bias-pull-down; /* pull down */ + drive-strength = <2>; /* 2 MA */ + }; + }; + qdsd_data2_jtag: data2_jtag { + config { + pins = "qdsd_data2"; + bias-pull-up; /* pull up */ + drive-strength = <8>; /* 8 MA */ + }; + }; + }; + + pmx_qdsd_data3 { + qdsd_data3_sdcard: data3_sdcard { + config { + pins = "qdsd_data3"; + bias-pull-down; /* pull down */ + drive-strength = <8>; /* 8 MA */ + }; + }; + qdsd_data3_trace: data3_trace { + config { + pins = "qdsd_data3"; + bias-pull-down; /* pull down */ + drive-strength = <8>; /* 8 MA */ + }; + }; + qdsd_data3_swduart: data3_uart { + config { + pins = "qdsd_data3"; + bias-pull-up; /* pull up */ + drive-strength = <2>; /* 2 MA */ + }; + }; + qdsd_data3_swdtrc: data3_swdtrc { + config { + pins = "qdsd_data3"; + bias-pull-up; /* pull up */ + drive-strength = <2>; /* 2 MA */ + }; + }; + qdsd_data3_jtag: data3_jtag { + config { + pins = "qdsd_data3"; + bias-pull-up; /* pull up */ + drive-strength = <2>; /* 2 MA */ + }; + }; + qdsd_data3_spmi: data3_spmi { + config { + pins = "qdsd_data3"; + bias-pull-down; /* pull down */ + drive-strength = <8>; /* 8 MA */ + }; + }; + }; + + typec_ssmux_config: typec_ssmux_config { + mux { + pins = "gpio139"; + function = "gpio"; + }; + + config { + pins = "gpio139"; + drive-strength = <2>; + bias-disable; + }; + }; + + radio_frequence_config: radio_frequence_config { + config { + pins = "gpio112"; + drive-strength = <2>; + bias-pull-up; + }; + }; + }; +}; diff --git a/arch/arm/boot/dts/qcom/msm8953-pm.dtsi b/arch/arm/boot/dts/qcom/msm8953-pm.dtsi index d30fe282fb356..ca4da0b8f9c41 100644 --- a/arch/arm/boot/dts/qcom/msm8953-pm.dtsi +++ b/arch/arm/boot/dts/qcom/msm8953-pm.dtsi @@ -402,6 +402,7 @@ <0xff 264>, /* arm-smmu context fault */ <0xff 269>, /* rpm_wdog_expired_irq */ <0xff 270>, /* blsp1_bam_irq[0] */ + <0xff 271>, /* sps interrupt */ <0xff 273>, /* smmu_bus_intr[18] */ <0xff 274>, /* smmu_bus_intr[19] */ <0xff 275>, /* rpm_ipc(30) */ @@ -455,6 +456,7 @@ <34 81>, <35 85>, <36 90>, + <37 112>, <50 67>, <51 73>, <52 74>, diff --git a/arch/arm/boot/dts/qcom/msm8953-qrd-sku3_rosy.dtsi b/arch/arm/boot/dts/qcom/msm8953-qrd-sku3_rosy.dtsi new file mode 100644 index 0000000000000..100ee3ae777b5 --- /dev/null +++ b/arch/arm/boot/dts/qcom/msm8953-qrd-sku3_rosy.dtsi @@ -0,0 +1,185 @@ +/* + * Copyright (c) 2015-2016, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "msm8953-qrd_rosy.dtsi" +#include "msm8953-pinctrl_rosy.dtsi" +#include "msm8953-camera-sensor-qrd_rosy.dtsi" +#include "dsi-panel-ft8613-ebbg-5p7-720p-video.dtsi" +#include "dsi-panel-ft8006m-boe-5p7-720p-video.dtsi" +#include "dsi-panel-ft8613-ebbg-5p5-1080p-video.dtsi" +#include "dsi-panel-ft8613-csot-5p7-720p-video.dtsi" + +&spmi_bus { + qcom,pmi8940@3 { + labibb: qpnp-labibb-regulator { + ibb_regulator: qcom,ibb@dc00 { + /delete-property/ + qcom,qpnp-ibb-use-default-voltage; + qcom,qpnp-ibb-init-lcd-voltage = <5700000>; + }; + + lab_regulator: qcom,lab@de00 { + /delete-property/ + qcom,qpnp-ibb-use-default-voltage; + qcom,qpnp-ibb-init-lcd-voltage = <5700000>; + }; + }; + }; +}; + +#include "msm8953-mdss-panels.dtsi" + +&tlmm { + pmx_mdss { + mdss_dsi_active: mdss_dsi_active { + mux { + pins = "gpio61"; + }; + config { + pins = "gpio61"; + }; + }; + mdss_dsi_suspend: mdss_dsi_suspend { + mux { + pins = "gpio61"; + }; + config { + pins = "gpio61"; + }; + }; + }; +}; + +&dsi_r69006_1080p_cmd { + qcom,esd-check-enabled; +}; + +#include "msm8953-mdss-panels.dtsi" +&mdss_mdp { + qcom,mdss-pref-prim-intf = "dsi"; +}; + +&mdss_dsi { + hw-config = "single_dsi"; +}; + +&mdss_dsi0 { + qcom,dsi-pref-prim-pan = <&dsi_ft8613_ebbg_5p7_720p_video>; + qcom,dsi-pref-sub-pan = <&dsi_ft8006m_boe_5p7_720p_video>; + qcom,dsi-pref-sub1-pan = <&dsi_ft8613_csot_5p7_720p_video>; + qcom,dsi-pref-sub2-pan = <&dsi_ft8613_ebbg_5p5_1080p_video>; + pinctrl-names = "mdss_default", "mdss_sleep"; + pinctrl-0 = <&mdss_dsi_active>; + pinctrl-1 = <&mdss_dsi_suspend>; + + qcom,platform-reset-gpio = <&tlmm 61 0>; + iovdd_gpio-supply = <&iovdd_gpio_vreg>; + lab-supply = <&lab_regulator>; + ibb-supply = <&ibb_regulator>; +}; + +&mdss_dsi1 { + status = "disabled"; +}; + +&labibb { + status = "ok"; + qpnp,qpnp-labibb-mode = "lcd"; +}; + +&dsi_panel_pwr_supply { + qcom,panel-supply-entry@1 { + reg = <1>; + qcom,supply-name = "iovdd_gpio"; + qcom,supply-min-voltage = <1800000>; + qcom,supply-max-voltage = <1800000>; + qcom,supply-enable-load = <100000>; + qcom,supply-disable-load = <100>; + qcom,supply-post-on-sleep = <10>; + }; + qcom,panel-supply-entry@2 { + reg = <2>; + qcom,supply-name = "lab"; + qcom,supply-min-voltage = <4600000>; + qcom,supply-max-voltage = <6000000>; + qcom,supply-enable-load = <100000>; + qcom,supply-disable-load = <100>; + }; + + qcom,panel-supply-entry@3 { + reg = <3>; + qcom,supply-name = "ibb"; + qcom,supply-min-voltage = <4600000>; + qcom,supply-max-voltage = <6000000>; + qcom,supply-enable-load = <100000>; + qcom,supply-disable-load = <100>; + qcom,supply-post-on-sleep = <10>; + }; +}; + +&dsi_ft8613_ebbg_5p7_720p_video { + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; + qcom,qpnp-ibb-init-lcd-voltage = <5800000>; + qcom,qpnp-lab-init-lcd-voltage = <5800000>; +}; + +&dsi_ft8006m_boe_5p7_720p_video { + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; + qcom,qpnp-ibb-init-lcd-voltage = <6000000>; + qcom,qpnp-lab-init-lcd-voltage = <6000000>; +}; + +&dsi_ft8613_csot_5p7_720p_video { + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; + qcom,qpnp-ibb-init-lcd-voltage = <5800000>; + qcom,qpnp-lab-init-lcd-voltage = <5800000>; +}; + +&dsi_ft8613_ebbg_5p5_1080p_video { + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; + qcom,qpnp-ibb-init-lcd-voltage = <5800000>; + qcom,qpnp-lab-init-lcd-voltage = <5800000>; +}; + +&dsi_r69006_1080p_cmd { + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; +}; + +&dsi_r69006_1080p_video { + qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; +}; + +&int_codec { + status = "okay"; + qcom,model = "msm8953-snd-card-mtp"; + qcom,msm-hs-micbias-type = "internal"; +}; + +&pm8953_diangu_dig { + status = "okay"; +}; + +&pm8953_diangu_analog { + status = "okay"; +}; +&wsa881x_i2c_e { + status = "disabled"; +}; + +&wsa881x_i2c_44 { + status = "disabled"; +}; + +&wsa881x_i2c_f { + status = "disabled"; +}; diff --git a/arch/arm/boot/dts/qcom/msm8953-qrd_rosy.dtsi b/arch/arm/boot/dts/qcom/msm8953-qrd_rosy.dtsi new file mode 100644 index 0000000000000..fe703e6b22442 --- /dev/null +++ b/arch/arm/boot/dts/qcom/msm8953-qrd_rosy.dtsi @@ -0,0 +1,479 @@ +/* + * Copyright (c) 2015-2016, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "msm8953-pinctrl_rosy.dtsi" +#include "msm8953-camera-sensor-qrd_rosy.dtsi" +#include +#include + +&soc { + radio_frequence { + compatible = "wingtech,radio_frequence_detection"; + pinctrl-names = "default"; + pinctrl-0 = <&radio_frequence_config>; + gpios = <&tlmm 112 GPIO_ACTIVE_HIGH>; + linux,input-type = <1>; + linux,code = ; + interrupts-extended = <&tlmm 112 0x3>; + debounce-interval = <30>; + }; + + gpio_keys { + compatible = "gpio-keys"; + input-name = "gpio-keys"; + pinctrl-names = "tlmm_gpio_key_active","tlmm_gpio_key_suspend"; + pinctrl-0 = <&gpio_key_active>; + pinctrl-1 = <&gpio_key_suspend>; + + vol_up { + label = "volume_up"; + gpios = <&tlmm 85 0x1>; + linux,input-type = <1>; + linux,code = <115>; + debounce-interval = <15>; + }; + }; + + i2c@78b7000 { /* BLSP1 QUP3 */ + status = "okay"; + synaptics@4b { + compatible = "synaptics,dsx-i2c"; + reg = <0x4b>; + interrupt-parent = <&tlmm>; + interrupts = <65 0x2008>; + vdd_ana-supply = <&vdd_vreg>; + vcc_i2c-supply = <&pm8953_l6>; + synaptics,pwr-reg-name = "vdd_ana"; + synaptics,bus-reg-name = "vcc_i2c"; + synaptics,irq-gpio = <&tlmm 65 0x2008>; + synaptics,irq-on-state = <0>; + synaptics,irq-flags = <0x2008>; + synaptics,power-delay-ms = <200>; + synaptics,reset-delay-ms = <200>; + synaptics,max-y-for-2d = <1919>; + synaptics,cap-button-codes = <139 158 172>; + synaptics,vir-button-codes = <139 180 2000 320 160 + 158 540 2000 320 160 + 172 900 2000 320 160>; + synaptics,resume-in-workqueue; + /* Underlying clocks used by secure touch */ + clock-names = "iface_clk", "core_clk"; + clocks = <&clock_gcc clk_gcc_blsp1_ahb_clk>, + <&clock_gcc clk_gcc_blsp1_qup3_i2c_apps_clk>; + }; + }; + + vdd_vreg: vdd_vreg { + compatible = "regulator-fixed"; + status = "ok"; + regulator-name = "vdd_vreg"; + }; + fpc1020 { + compatible = "fpc,fpc1020"; + + interrupt-parent = <&tlmm>; + interrupts = <48 0x0>; + + fpc,gpio_rst = <&tlmm 140 0>; + fpc,gpio_irq = <&tlmm 48 0>; + fpc,gpio_pwr = <&tlmm 134 0>; + + vcc_spi-supply = <&pm8953_l5>; + vdd_ana-supply = <&pm8953_l5>; + vdd_io-supply = <&pm8953_l5>; + + fpc,enable-on-boot; + /delete-property/ + fpc,enable-wakeup; + + fpc,spi-max-frequency = <4800000>; + + /* Only for SPI Clock Handled by Linux */ + clock-names = "iface_clk", "core_clk"; + clocks = <&clock_gcc clk_gcc_blsp1_ahb_clk>, + <&clock_gcc clk_gcc_blsp1_qup1_spi_apps_clk>; + + pinctrl-names = "fpc1020_spi_active", + "fpc1020_reset_reset", + "fpc1020_reset_active", + "fpc1020_irq_active"; + + pinctrl-0 = <&fpc_spi_active>; + pinctrl-1 = <&fpc_reset_reset>; + pinctrl-2 = <&fpc_reset_active>; + pinctrl-3 = <&fpc_irq_active>; + }; + + goodix_fp { + compatible = "goodix,fingerprint"; + interrupt-parent = <&tlmm>; + interrupts = <48 0x1>; + fp-gpio-irq = <&tlmm 48 0x00>; + fp-gpio-reset = <&tlmm 140 0x00>; + fp-gpio-power = <&tlmm 134 0x00>; + spi-max-frequency = <19200000>; + }; + gpio-leds { + compatible = "gpio-leds"; + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&gpio_led_off>; + + infred { + gpios = <&tlmm 20 0>; + label = "infrared"; + linux,default-trigger = "infra-red"; + default-state = "off"; + retain-state-suspended; + }; + + }; + + iovdd_gpio_vreg: iovdd_gpio_vreg { + compatible = "regulator-fixed"; + regulator-name="iovdd_gpio_vreg"; + gpio = <&tlmm 97 0>; /* iovdd - ldo6 */ + startup-delay-us = <300>; + enable-active-high; + regulator-boot-on; + status = "ok"; + }; + +}; +&i2c_2 { /* i2c 2 */ + aw2013@45 { /*blink */ + compatible = "awinc,aw2013"; + reg = <0x45>; + rgb_led-supply = <&pm8953_l10>; + + red { + label = "red"; + linux,default-trigger = "battery-red"; + default-state = "off"; + retain-state-suspended; + }; + + green { + label = "green"; + linux,default-trigger = "battery-green"; + default-state = "off"; + retain-state-suspended; + }; + + blue { + label = "blue"; + linux,default-trigger = "battery-blue"; + default-state = "off"; + retain-state-suspended; + }; + white { + label = "white"; + linux,default-trigger = "none"; + default-state = "off"; + retain-state-suspended; + }; + + yellow { + label = "yellow"; + linux,default-trigger = "none"; + default-state = "off"; + retain-state-suspended; + }; + + cyan { + label = "cyan"; + linux,default-trigger = "none"; + default-state = "off"; + retain-state-suspended; + }; + purple { + label = "purple"; + linux,default-trigger = "none"; + default-state = "off"; + retain-state-suspended; + }; + }; + }; +&wled { + qcom,cons-sync-write-delay-us = <1000>; +}; + +/ { + qrd_batterydata: qcom,battery-data { + qcom,batt-id-range-pct = <15>; + #include "batterydata-Scud-4v4-3300mah.dtsi" + #include "batterydata-Sunwoda-4v4-3300mah.dtsi" + #include "batterydata-D1_Default-4v4-3300mah.dtsi" + }; +}; + +&pm8953_typec { + ss-mux-supply = <&pm8953_l6>; + qcom,ssmux-gpio = <&tlmm 139 GPIO_ACTIVE_LOW>; + pinctrl-names = "default"; + pinctrl-0 = <&typec_ssmux_config>; +}; + +&pmi8940_charger { + qcom,battery-data = <&qrd_batterydata>; + qcom,float-voltage-mv = <4400>; + qcom,chg-inhibit-fg; + qcom,thermal-mitigation = <2000 1800 1500 1200 1000 0>; + status = "okay"; + qcom,vchg_sns-vadc = <&pmi8940_vadc>; + qcom,vchg-adc-channel-id = <3>; + qcom,customize-cool-low-limit = <0>; + qcom,customize-cool-high-limit = <50>; + qcom,fastchg-current-customize-cool = <300>; + qcom,fastchg-current-bat-cool = <900>; + qcom,fastchg-current-ma = <2000>; + qcom,override-usb-current; +}; + +&pmi8940_fg { + qcom,battery-data = <&qrd_batterydata>; + qcom,cold-bat-decidegc = <(0)>; + qcom,cool-bat-decidegc = <(150)>; + qcom,hot-bat-decidegc = <550>; + qcom,warm-bat-decidegc = <450>; + qcom,warm-bat-india-decidegc = <500>; + qcom,fg-iterm-ma = <230>; + qcom,fg-chg-iterm-ma = <200>; + qcom,resume-soc = <99>; + qcom,resume-soc-raw = <253>; + qcom,vbat-estimate-diff-mv = <100>; + qcom,fg-cutoff-voltage-mv = <3400>; + qcom,fg-cc-cv-threshold-mv = <4390>; + qcom,cl-max-increment-deciperc = <1>; + qcom,cl-max-decrement-deciperc = <1>; + qcom,fg-delta-soc = <2>; + qcom,bad-battery-detection-enable; + qcom,hold-soc-while-full; + qcom,thermal-coefficients = [DA 86 F0 50 08 3C]; +}; + +&usb3 { + qcom,usbin-vadc = <&pmi8940_vadc>; + qcom,detect-dpdm-floating; +}; + +&blsp1_uart0 { + status = "ok"; + pinctrl-names = "default"; + pinctrl-0 = <&uart_console_active>; +}; + +&sdhc_1 { + /* device core power supply */ + vdd-supply = <&pm8953_l8>; + qcom,vdd-voltage-level = <2900000 2900000>; + qcom,vdd-current-level = <200 570000>; + qcom,vdd-always-on; + + /* device communication power supply */ + vdd-io-supply = <&pm8953_l5>; + qcom,vdd-io-always-on; + qcom,vdd-io-lpm-sup; + qcom,vdd-io-voltage-level = <1800000 1800000>; + qcom,vdd-io-current-level = <200 325000>; + + pinctrl-names = "active", "sleep"; + pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on &sdc1_rclk_on>; + pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off &sdc1_rclk_off>; + + qcom,clk-rates = <400000 20000000 25000000 50000000 100000000 192000000 + 384000000>; + qcom,nonremovable; + qcom,bus-speed-mode = "HS400_1p8v", "HS200_1p8v", "DDR_1p8v"; + + status = "ok"; +}; + +&sdhc_2 { + /* device core power supply */ + vdd-supply = <&pm8953_l11>; + qcom,vdd-voltage-level = <2950000 2950000>; + qcom,vdd-current-level = <15000 800000>; + + /* device communication power supply */ + vdd-io-supply = <&pm8953_l12>; + qcom,vdd-io-voltage-level = <1800000 2950000>; + qcom,vdd-io-current-level = <200 22000>; + + pinctrl-names = "active", "sleep"; + pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>; + pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>; + + #address-cells = <0>; + interrupt-parent = <&sdhc_2>; + interrupts = <0 1 2>; + #interrupt-cells = <1>; + interrupt-map-mask = <0xffffffff>; + interrupt-map = <0 &intc 0 125 0 + 1 &intc 0 221 0 + 2 &tlmm 133 0>; + interrupt-names = "hc_irq", "pwr_irq", "status_irq"; + cd-gpios = <&tlmm 133 0x0>; + + qcom,clk-rates = <400000 20000000 25000000 50000000 100000000 + 200000000>; + qcom,bus-speed-mode = "SDR12", "SDR25", "SDR50", "DDR50", "SDR104"; + + status = "ok"; +}; + +&i2c_5 { /* BLSP2 QUP1 (NFC) */ + nq@28 { + compatible = "qcom,nq-nci"; + reg = <0x28>; + qcom,nq-irq = <&tlmm 17 0x00>; + qcom,nq-ven = <&tlmm 16 0x00>; + qcom,nq-firm = <&tlmm 62 0x00>; + qcom,nq-clkreq = <&pm8953_gpios 2 0x00>; + interrupt-parent = <&tlmm>; + qcom,clk-src = "BBCLK2"; + interrupts = <17 0>; + interrupt-names = "nfc_irq"; + pinctrl-names = "nfc_active", "nfc_suspend"; + pinctrl-0 = <&nfc_int_active &nfc_disable_active>; + pinctrl-1 = <&nfc_int_suspend &nfc_disable_suspend>; + clocks = <&clock_gcc clk_bb_clk2_pin>; + clock-names = "ref_clk"; + }; +}; + +&i2c_3 { + status = "ok"; + focaltech@38{ + compatible = "focaltech,fts"; + reg = <0x38>; + interrupt-parent = <&tlmm>; + interrupts = <65 0x2008>; + vdd-supply = <&pm8953_l10>; + vcc_i2c-suppy = <&pm8953_l5>; + panel_iovdd-supply = <&iovdd_gpio_vreg>; + lab-supply = <&lab_regulator>; + ibb-supply = <&ibb_regulator>; + /* pins used by touchscreen */ + pinctrl-names = "pmx_ts_active","pmx_ts_suspend", + "pmx_ts_release"; + pinctrl-0 = <&ts_int_active &ts_reset_active>; + pinctrl-1 = <&ts_int_suspend &ts_reset_suspend>; + pinctrl-2 = <&ts_release>; + focaltech,name = "fts_ts"; + focaltech,family-id = <0x54>; + focaltech,reset-gpio = <&tlmm 64 0x00>; + focaltech,irq-gpio = <&tlmm 65 0x2008>; + focaltech,display-coords = <0 0 720 1440>; + focaltech,panel-coords = <0 0 720 1440>; + /*ftech,button-map= <139 102 158>;*/ + focaltech,virtual-key1 = <139 560 2000>;/*menu*/ + focaltech,virtual-key2 = <102 360 2000>;/*home*/ + focaltech,virtual-key3 = <158 160 2000>;/*back*/ + focaltech,no-force-update; + focaltech,i2c-pull-up; + focaltech,group-id = <1>; + focaltech,hard-reset-delay-ms = <20>; + focaltech,soft-reset-delay-ms = <200>; + focaltech,num-max-touches = <10>; + focaltech,fw-delay-aa-ms = <30>; + focaltech,fw-delay-55-ms = <30>; + focaltech,fw-upgrade-id1 = <0x79>; + focaltech,fw-upgrade-id2 = <0x18>; + focaltech,fw-delay-readid-ms = <10>; + focaltech,fw-delay-era-flsh-ms = <2000>; + focaltech,fw-auto-cal; + focaltech,ignore-id-check; + }; + focaltech@39{ + compatible = "focaltech,ft8006m"; + reg = <0x39>; + interrupt-parent = <&tlmm>; + interrupts = <65 0x2008>; + vdd-supply = <&pm8953_l10>; + vcc_i2c-suppy = <&pm8953_l5>; + panel_iovdd-supply = <&iovdd_gpio_vreg>; + lab-supply = <&lab_regulator>; + ibb-supply = <&ibb_regulator>; + /* pins used by touchscreen */ + pinctrl-names = "pmx_ts_active","pmx_ts_suspend", + "pmx_ts_release"; + pinctrl-0 = <&ts_int_active &ts_reset_active>; + pinctrl-1 = <&ts_int_suspend &ts_reset_suspend>; + pinctrl-2 = <&ts_release>; + focaltech,name = "fts_ts"; + focaltech,family-id = <0x54>; + focaltech,reset-gpio = <&tlmm 64 0x00>; + focaltech,irq-gpio = <&tlmm 65 0x2008>; + focaltech,display-coords = <0 0 720 1440>; + focaltech,panel-coords = <0 0 720 1440>; + focaltech,virtual-key1 = <139 560 2000>;/*menu*/ + focaltech,virtual-key2 = <102 360 2000>;/*home*/ + focaltech,virtual-key3 = <158 160 2000>;/*back*/ + focaltech,no-force-update; + focaltech,i2c-pull-up; + focaltech,group-id = <1>; + focaltech,hard-reset-delay-ms = <20>; + focaltech,soft-reset-delay-ms = <200>; + focaltech,num-max-touches = <10>; + focaltech,fw-delay-aa-ms = <30>; + focaltech,fw-delay-55-ms = <30>; + focaltech,fw-upgrade-id1 = <0x79>; + focaltech,fw-upgrade-id2 = <0x18>; + focaltech,fw-delay-readid-ms = <10>; + focaltech,fw-delay-era-flsh-ms = <2000>; + focaltech,fw-auto-cal; + focaltech,ignore-id-check; + }; + +}; + +&pm8953_gpios { + /* GPIO 2 (NFC_CLK_REQ) */ + gpio@c100 { + qcom,mode = <0>; + qcom,output-type = <0>; + qcom,pull = <0>; + qcom,vin-sel = <2>; + qcom,out-strength = <3>; + qcom,src-sel = <0>; + qcom,master-en = <1>; + status = "okay"; + }; +}; + +&i2c_3 { + status = "ok"; +}; + +&led_flash0{ + qcom,flash-source = <&pmi8950_flash0>; + qcom,torch-source = <&pmi8950_torch0>; +}; + +&pm8953_vadc { + /delete-node/ chan@11; +}; + +&sdc2_cmd_on { + config { + drive-strength=<12>; + }; +}; + +&sdc2_data_on { + config { + drive-strength=<12>; + }; +}; diff --git a/arch/arm/boot/dts/qcom/msm8953-regulator.dtsi b/arch/arm/boot/dts/qcom/msm8953-regulator.dtsi index 30c6d6791677d..45c1e18536d1c 100644 --- a/arch/arm/boot/dts/qcom/msm8953-regulator.dtsi +++ b/arch/arm/boot/dts/qcom/msm8953-regulator.dtsi @@ -172,6 +172,7 @@ regulator-max-microvolt = <1800000>; qcom,init-voltage = <1800000>; status = "okay"; + regulator-always-on; }; }; @@ -287,9 +288,9 @@ rpm-regulator-ldoa22 { status = "okay"; pm8953_l22: regulator-l22 { - regulator-min-microvolt = <2800000>; - regulator-max-microvolt = <2800000>; - qcom,init-voltage = <2800000>; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + qcom,init-voltage = <2900000>; status = "okay"; }; }; diff --git a/arch/arm/boot/dts/qcom/msm8953.dtsi b/arch/arm/boot/dts/qcom/msm8953.dtsi index 58ffa3f01c289..4004ff4bd41a5 100644 --- a/arch/arm/boot/dts/qcom/msm8953.dtsi +++ b/arch/arm/boot/dts/qcom/msm8953.dtsi @@ -84,8 +84,8 @@ }; dfps_data_mem: dfps_data_mem@90000000 { - reg = <0 0x90000000 0 0x1000>; - label = "dfps_data_mem"; + reg = <0 0x90000000 0 0x1000>; + label = "dfps_data_mem"; }; cont_splash_mem: splash_region@0x90001000 { @@ -750,7 +750,7 @@ dmas = <&dma_blsp1 8 64 0x20000020 0x20>, <&dma_blsp1 9 32 0x20000020 0x20>; dma-names = "tx", "rx"; - status = "disabled"; + status = "okay"; }; i2c_5: i2c@7af5000 { /* BLSP2 QUP1 */ @@ -2298,7 +2298,7 @@ #include "msm-pm8953.dtsi" #include "msm8953-regulator.dtsi" #include "msm-audio.dtsi" -#include "msm8953-audio.dtsi" +#include "msm8953-audio_rosy.dtsi" #include "msm-gdsc-8916.dtsi" #include "msm8953-camera.dtsi" #include "msm8953-mdss.dtsi" diff --git a/arch/arm/boot/dts/qcom/msm8953_rosy.dtsi b/arch/arm/boot/dts/qcom/msm8953_rosy.dtsi new file mode 100644 index 0000000000000..cdc676c4a0666 --- /dev/null +++ b/arch/arm/boot/dts/qcom/msm8953_rosy.dtsi @@ -0,0 +1,2591 @@ +/* + * Copyright (c) 2015-2016, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "skeleton64.dtsi" +#include +#include +#include + +/ { + model = "Qualcomm Technologies, Inc. MSM 8953"; + compatible = "qcom,msm8953"; + qcom,msm-id = <293 0x0>; + interrupt-parent = <&intc>; + + chosen { + bootargs = "sched_enable_hmp=1 sched_enable_power_aware=1"; + }; + + reserved-memory { + #address-cells = <2>; + #size-cells = <2>; + ranges; + + other_ext_mem: other_ext_region@0 { + compatible = "removed-dma-pool"; + no-map; + reg = <0x0 0x84A00000 0x0 0x1E00000>; + }; + + modem_mem: modem_region@0 { + compatible = "removed-dma-pool"; + no-map-fixup; + reg = <0x0 0x86c00000 0x0 0x6a00000>; + }; + + adsp_fw_mem: adsp_fw_region@0 { + compatible = "removed-dma-pool"; + no-map; + reg = <0x0 0x8d600000 0x0 0x1100000>; + }; + + wcnss_fw_mem: wcnss_fw_region@0 { + compatible = "removed-dma-pool"; + no-map; + reg = <0x0 0x8e700000 0x0 0x700000>; + }; + + venus_mem: venus_region@0 { + compatible = "shared-dma-pool"; + reusable; + alloc-ranges = <0x0 0x80000000 0x0 0x10000000>; + alignment = <0 0x400000>; + size = <0 0x0800000>; + }; + + secure_mem: secure_region@0 { + compatible = "shared-dma-pool"; + reusable; + alignment = <0 0x400000>; + size = <0 0x09800000>; + }; + + qseecom_mem: qseecom_region@0 { + compatible = "shared-dma-pool"; + reusable; + alignment = <0 0x400000>; + size = <0 0x1000000>; + }; + + adsp_mem: adsp_region@0 { + compatible = "shared-dma-pool"; + reusable; + size = <0 0x400000>; + }; + + dfps_data_mem: dfps_data_mem@90000000 { + reg = <0 0x90000000 0 0x1000>; + label = "dfps_data_mem"; + }; + + cont_splash_mem: splash_region@0x90001000 { + reg = <0x0 0x90001000 0x0 0x13ff000>; + label = "cont_splash_mem"; + }; + + gpu_mem: gpu_region@0 { + compatible = "shared-dma-pool"; + reusable; + alloc-ranges = <0x0 0x80000000 0x0 0x10000000>; + alignment = <0 0x400000>; + size = <0 0x800000>; + }; + }; + + aliases { + /* smdtty devices */ + smd1 = &smdtty_apps_fm; + smd2 = &smdtty_apps_riva_bt_acl; + smd3 = &smdtty_apps_riva_bt_cmd; + smd4 = &smdtty_mbalbridge; + smd5 = &smdtty_apps_riva_ant_cmd; + smd6 = &smdtty_apps_riva_ant_data; + smd7 = &smdtty_data1; + smd8 = &smdtty_data4; + smd11 = &smdtty_data11; + smd21 = &smdtty_data21; + smd36 = &smdtty_loopback; + sdhc1 = &sdhc_1; /* SDC1 eMMC slot */ + sdhc2 = &sdhc_2; /* SDC2 for SD card */ + i2c2 = &i2c_2; + i2c3 = &i2c_3; + i2c5 = &i2c_5; + spi3 = &spi_3; + spi6 = &spi_6; + i2c8 = &i2c_8; + }; + + soc: soc { }; + +}; + +#include "msm8953-pinctrl.dtsi" +#include "msm8953-cpu.dtsi" +#include "msm8953-gpu.dtsi" +#include "msm8953-ion.dtsi" +#include "msm8953-smp2p.dtsi" +#include "msm-arm-smmu-8953.dtsi" +#include "msm8953-coresight.dtsi" +#include "msm8953-bus.dtsi" +#include "msm8953-iommu-domains.dtsi" +#include "msm8953-vidc.dtsi" +#include "msm8953-pm.dtsi" + +&soc { + #address-cells = <1>; + #size-cells = <1>; + ranges = <0 0 0 0xffffffff>; + compatible = "simple-bus"; + + apc_apm: apm@b111000 { + compatible = "qcom,msm8953-apm"; + reg = <0xb111000 0x1000>; + reg-names = "pm-apcc-glb"; + qcom,apm-post-halt-delay = <0x2>; + qcom,apm-halt-clk-delay = <0x11>; + qcom,apm-resume-clk-delay = <0x10>; + qcom,apm-sel-switch-delay = <0x01>; + }; + + intc: interrupt-controller@b000000 { + compatible = "qcom,msm-qgic2"; + interrupt-controller; + #interrupt-cells = <3>; + reg = <0x0b000000 0x1000>, + <0x0b002000 0x1000>; + }; + + arm64-cpu-erp { + compatible = "arm,arm64-cpu-erp"; + interrupts = <0 275 0>, + <0 276 0>, + <0 273 0>, + <0 274 0>; + interrupt-names = "pri-dbe-irq", + "sec-dbe-irq", + "pri-ext-irq", + "sec-ext-irq"; + poll-delay-ms = <5000>; + }; + + qcom,msm-gladiator@b1c0000 { + compatible = "qcom,msm-gladiator"; + reg = <0x0b1c0000 0x4000>; + reg-names = "gladiator_base"; + interrupts = <0 22 0>; + }; + + timer { + compatible = "arm,armv8-timer"; + interrupts = <1 2 0xff08>, + <1 3 0xff08>, + <1 4 0xff08>, + <1 1 0xff08>; + clock-frequency = <19200000>; + }; + + timer@b120000 { + #address-cells = <1>; + #size-cells = <1>; + ranges; + compatible = "arm,armv7-timer-mem"; + reg = <0xb120000 0x1000>; + clock-frequency = <19200000>; + + frame@b121000 { + frame-number = <0>; + interrupts = <0 8 0x4>, + <0 7 0x4>; + reg = <0xb121000 0x1000>, + <0xb122000 0x1000>; + }; + + frame@b123000 { + frame-number = <1>; + interrupts = <0 9 0x4>; + reg = <0xb123000 0x1000>; + status = "disabled"; + }; + + frame@b124000 { + frame-number = <2>; + interrupts = <0 10 0x4>; + reg = <0xb124000 0x1000>; + status = "disabled"; + }; + + frame@b125000 { + frame-number = <3>; + interrupts = <0 11 0x4>; + reg = <0xb125000 0x1000>; + status = "disabled"; + }; + + frame@b126000 { + frame-number = <4>; + interrupts = <0 12 0x4>; + reg = <0xb126000 0x1000>; + status = "disabled"; + }; + + frame@b127000 { + frame-number = <5>; + interrupts = <0 13 0x4>; + reg = <0xb127000 0x1000>; + status = "disabled"; + }; + + frame@b128000 { + frame-number = <6>; + interrupts = <0 14 0x4>; + reg = <0xb128000 0x1000>; + status = "disabled"; + }; + }; + qcom,rmtfs_sharedmem@00000000 { + compatible = "qcom,sharedmem-uio"; + reg = <0x00000000 0x00180000>; + reg-names = "rmtfs"; + qcom,client-id = <0x00000001>; + }; + + restart@4ab000 { + compatible = "qcom,pshold"; + reg = <0x4ab000 0x4>, + <0x193d100 0x4>; + reg-names = "pshold-base", "tcsr-boot-misc-detect"; + }; + + qcom,mpm2-sleep-counter@4a3000 { + compatible = "qcom,mpm2-sleep-counter"; + reg = <0x4a3000 0x1000>; + clock-frequency = <32768>; + }; + + cpu-pmu { + compatible = "arm,armv8-pmuv3"; + interrupts = <1 7 0xff00>; + }; + + qcom,sps { + compatible = "qcom,msm_sps_4k"; + qcom,pipe-attr-ee; + }; + + tsens: tsens@4a8000 { + compatible = "qcom,msm8953-tsens"; + reg = <0x4a8000 0x2000>, + <0xa4000 0x1000>; + reg-names = "tsens_physical", "tsens_eeprom_physical"; + interrupts = <0 184 0>, <0 314 0>; + interrupt-names = "tsens-upper-lower", "tsens-critical"; + qcom,client-id = <1 2 3 4 5 6 7 8 9 10 11 12 13 14 15>; + qcom,sensor-id = <1 2 3 4 5 6 7 8 9 10 11 12 13 14 15>; + qcom,sensors = <15>; + qcom,slope = <3200 3200 3200 3200 3200 3200 3200 3200 + 3200 3200 3200 3200 3200 3200 3200>; + qcom,valid-status-check; + }; + + qcom,sensor-information { + compatible = "qcom,sensor-information"; + sensor_information0: qcom,sensor-information-0 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor0"; + qcom,scaling-factor = <10>; + }; + + sensor_information1: qcom,sensor-information-1 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor1"; + qcom,scaling-factor = <10>; + }; + + sensor_information2: qcom,sensor-information-2 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor2"; + qcom,alias-name = "pop_mem"; + qcom,scaling-factor = <10>; + }; + + sensor_information3: qcom,sensor-information-3 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor3"; + qcom,scaling-factor = <10>; + }; + + sensor_information4: qcom,sensor-information-4 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor4"; + qcom,scaling-factor = <10>; + }; + + sensor_information5: qcom,sensor-information-5 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor5"; + qcom,scaling-factor = <10>; + }; + + sensor_information6: qcom,sensor-information-6 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor6"; + qcom,scaling-factor = <10>; + }; + + sensor_information7: qcom,sensor-information-7 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor7"; + qcom,scaling-factor = <10>; + }; + + sensor_information8: qcom,sensor-information-8 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor8"; + qcom,scaling-factor = <10>; + qcom,alias-name = "L2_cache_1"; + }; + + sensor_information9: qcom,sensor-information-9 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor9"; + qcom,scaling-factor = <10>; + }; + + sensor_information10: qcom,sensor-information-10 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor10"; + qcom,scaling-factor = <10>; + }; + + sensor_information11: qcom,sensor-information-11 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor11"; + qcom,scaling-factor = <10>; + }; + + sensor_information12: qcom,sensor-information-12 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor12"; + qcom,scaling-factor = <10>; + }; + + sensor_information13: qcom,sensor-information-13 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor13"; + qcom,scaling-factor = <10>; + qcom,alias-name = "L2_cache_0"; + }; + + sensor_information14: qcom,sensor-information-14 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor14"; + qcom,scaling-factor = <10>; + }; + + sensor_information15: qcom,sensor-information-15 { + qcom,sensor-type = "tsens"; + qcom,sensor-name = "tsens_tz_sensor15"; + qcom,alias-name = "gpu"; + qcom,scaling-factor = <10>; + }; + + sensor_information16: qcom,sensor-information-16 { + qcom,sensor-type = "alarm"; + qcom,sensor-name = "pm8953_tz"; + qcom,scaling-factor = <1000>; + }; + + sensor_information17: qcom,sensor-information-17 { + qcom,sensor-type = "adc"; + qcom,sensor-name = "pa_therm0"; + }; + + sensor_information18: qcom,sensor-information-18 { + qcom,sensor-type = "adc"; + qcom,sensor-name = "pa_therm1"; + }; + + sensor_information19: qcom,sensor-information-19 { + qcom,sensor-type = "adc"; + qcom,sensor-name = "xo_therm"; + }; + + sensor_information20: qcom,sensor-information-20 { + qcom,sensor-type = "adc"; + qcom,sensor-name = "xo_therm_buf"; + }; + + sensor_information21: qcom,sensor-information-21 { + qcom,sensor-type = "adc"; + qcom,sensor-name = "case_therm"; + }; + }; + + mitigation_profile0: qcom,limit_info-0 { + qcom,temperature-sensor = <&sensor_information9>; + qcom,boot-frequency-mitigate; + qcom,hotplug-mitigation-enable; + qcom,emergency-frequency-mitigate; + }; + + mitigation_profile1: qcom,limit_info-1 { + qcom,temperature-sensor = <&sensor_information10>; + qcom,boot-frequency-mitigate; + qcom,hotplug-mitigation-enable; + qcom,emergency-frequency-mitigate; + }; + + mitigation_profile2: qcom,limit_info-2 { + qcom,temperature-sensor = <&sensor_information11>; + qcom,boot-frequency-mitigate; + qcom,hotplug-mitigation-enable; + qcom,emergency-frequency-mitigate; + }; + + mitigation_profile3: qcom,limit_info-3 { + qcom,temperature-sensor = <&sensor_information12>; + qcom,boot-frequency-mitigate; + qcom,hotplug-mitigation-enable; + qcom,emergency-frequency-mitigate; + }; + + mitigation_profile4: qcom,limit_info-4 { + qcom,temperature-sensor = <&sensor_information4>; + qcom,boot-frequency-mitigate; + qcom,hotplug-mitigation-enable; + qcom,emergency-frequency-mitigate; + }; + + mitigation_profile5: qcom,limit_info-5 { + qcom,temperature-sensor = <&sensor_information5>; + qcom,boot-frequency-mitigate; + qcom,hotplug-mitigation-enable; + qcom,emergency-frequency-mitigate; + }; + + mitigation_profile6: qcom,limit_info-6 { + qcom,temperature-sensor = <&sensor_information6>; + qcom,boot-frequency-mitigate; + qcom,hotplug-mitigation-enable; + qcom,emergency-frequency-mitigate; + }; + + mitigation_profile7: qcom,limit_info-7 { + qcom,temperature-sensor = <&sensor_information7>; + qcom,boot-frequency-mitigate; + qcom,hotplug-mitigation-enable; + qcom,emergency-frequency-mitigate; + }; + + qcom,msm-thermal { + compatible = "qcom,msm-thermal"; + qcom,sensor-id = <9>; + qcom,poll-ms = <250>; + qcom,limit-temp = <60>; + qcom,temp-hysteresis = <10>; + qcom,freq-step = <2>; + qcom,core-limit-temp = <80>; + qcom,core-temp-hysteresis = <10>; + qcom,hotplug-temp = <105>; + qcom,hotplug-temp-hysteresis = <15>; + qcom,freq-mitigation-temp = <105>; + qcom,freq-mitigation-temp-hysteresis = <15>; + qcom,freq-mitigation-value = <1036800>; + qcom,therm-reset-temp = <115>; + qcom,online-hotplug-core; + qcom,synchronous-cluster-id = <0 1>; + qcom,synchronous-cluster-map = <0 4 &CPU0 &CPU1 &CPU2 &CPU3>, + <1 4 &CPU4 &CPU5 &CPU6 &CPU7>; + qcom,disable-cx-phase-ctrl; + qcom,disable-gfx-phase-ctrl; + qcom,disable-vdd-mx; + qcom,disable-psm; + qcom,disable-ocr; + qcom,vdd-restriction-temp = <5>; + qcom,vdd-restriction-temp-hysteresis = <10>; + vdd-dig-supply = <&pm8953_s2_floor_level>; + vdd-gfx-supply = <&gfx_vreg_corner>; + + qcom,vdd-dig-rstr { + qcom,vdd-rstr-reg = "vdd-dig"; + qcom,levels = ; + qcom,min-level = ; + }; + + qcom,vdd-gfx-rstr { + qcom,vdd-rstr-reg = "vdd-gfx"; + qcom,levels = <5 7 7>; /* Nominal, Turbo, Turbo */ + qcom,min-level = <1>; /* No Request */ + }; + + msm_thermal_freq: qcom,vdd-apps-rstr { + qcom,vdd-rstr-reg = "vdd-apps"; + qcom,levels = <1689600>; + qcom,freq-req; + }; + }; + + qcom,bcl { + compatible = "qcom,bcl"; + qcom,bcl-enable; + qcom,bcl-framework-interface; + qcom,bcl-freq-control-list = <&CPU0 &CPU1 &CPU2 &CPU3 + &CPU4 &CPU5 &CPU6 &CPU7>; + qcom,bcl-hotplug-list = <&CPU6 &CPU7>; + qcom,bcl-soc-hotplug-list = <&CPU4 &CPU5 &CPU6 &CPU7>; + qcom,ibat-monitor { + qcom,low-threshold-uamp = <3400000>; + qcom,high-threshold-uamp = <4200000>; + qcom,mitigation-freq-khz = <1689600>; + qcom,vph-high-threshold-uv = <3500000>; + qcom,vph-low-threshold-uv = <3200000>; + qcom,soc-low-threshold = <10>; + qcom,thermal-handle = <&msm_thermal_freq>; + }; + }; + + qcom,msm-core@a0000 { + compatible = "qcom,apss-core-ea"; + reg = <0xa0000 0x1000>; + qcom,low-hyst-temp = <10>; + qcom,high-hyst-temp = <5>; + + ea0: ea0 { + sensor = <&sensor_information9>; + }; + + ea1: ea1 { + sensor = <&sensor_information10>; + }; + + ea2: ea2 { + sensor = <&sensor_information11>; + }; + + ea3: ea3 { + sensor = <&sensor_information12>; + }; + + ea4: ea4 { + sensor = <&sensor_information4>; + }; + + ea5: ea5 { + sensor = <&sensor_information5>; + }; + + ea6: ea6 { + sensor = <&sensor_information6>; + }; + + ea7: ea7 { + sensor = <&sensor_information7>; + }; + }; + + blsp1_uart0: serial@78af000 { + compatible = "qcom,msm-lsuart-v14"; + reg = <0x78af000 0x200>; + interrupts = <0 107 0>; + status = "disabled"; + clocks = <&clock_gcc clk_gcc_blsp1_uart1_apps_clk>, + <&clock_gcc clk_gcc_blsp1_ahb_clk>; + clock-names = "core_clk", "iface_clk"; + }; + + blsp1_uart1: uart@78b0000 { + compatible = "qcom,msm-hsuart-v14"; + reg = <0x78b0000 0x200>, + <0x7884000 0x1f000>; + reg-names = "core_mem", "bam_mem"; + + interrupt-names = "core_irq", "bam_irq", "wakeup_irq"; + #address-cells = <0>; + interrupt-parent = <&blsp1_uart1>; + interrupts = <0 1 2>; + #interrupt-cells = <1>; + interrupt-map-mask = <0xffffffff>; + interrupt-map = <0 &intc 0 108 0 + 1 &intc 0 238 0 + 2 &tlmm 13 0>; + + qcom,inject-rx-on-wakeup; + qcom,rx-char-to-inject = <0xFD>; + qcom,master-id = <86>; + clock-names = "core_clk", "iface_clk"; + clocks = <&clock_gcc clk_gcc_blsp1_uart2_apps_clk>, + <&clock_gcc clk_gcc_blsp1_ahb_clk>; + pinctrl-names = "sleep", "default"; + pinctrl-0 = <&hsuart_sleep>; + pinctrl-1 = <&hsuart_active>; + qcom,bam-tx-ep-pipe-index = <2>; + qcom,bam-rx-ep-pipe-index = <3>; + qcom,msm-bus,name = "blsp1_uart1"; + qcom,msm-bus,num-cases = <2>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <86 512 0 0>, + <86 512 500 800>; + status = "disabled"; + }; + + dma_blsp1: qcom,sps-dma@7884000 { /* BLSP1 */ + #dma-cells = <4>; + compatible = "qcom,sps-dma"; + reg = <0x7884000 0x1f000>; + interrupts = <0 238 0>; + qcom,summing-threshold = <10>; + }; + + dma_blsp2: qcom,sps-dma@7ac4000 { /* BLSP2 */ + #dma-cells = <4>; + compatible = "qcom,sps-dma"; + reg = <0x7ac4000 0x1f000>; + interrupts = <0 239 0>; + qcom,summing-threshold = <10>; + }; + + spi_3: spi@78b7000 { /* BLSP1 QUP3 */ + compatible = "qcom,spi-qup-v2"; + #address-cells = <1>; + #size-cells = <0>; + reg-names = "spi_physical", "spi_bam_physical"; + reg = <0x78b7000 0x600>, + <0x7884000 0x1f000>; + interrupt-names = "spi_irq", "spi_bam_irq"; + interrupts = <0 97 0>, <0 238 0>; + spi-max-frequency = <19200000>; + pinctrl-names = "spi_default", "spi_sleep"; + pinctrl-0 = <&spi3_default &spi3_cs0_active>; + pinctrl-1 = <&spi3_sleep &spi3_cs0_sleep>; + clocks = <&clock_gcc clk_gcc_blsp1_ahb_clk>, + <&clock_gcc clk_gcc_blsp1_qup3_spi_apps_clk>; + clock-names = "iface_clk", "core_clk"; + qcom,infinite-mode = <0>; + qcom,use-bam; + qcom,use-pinctrl; + qcom,ver-reg-exists; + qcom,bam-consumer-pipe-index = <8>; + qcom,bam-producer-pipe-index = <9>; + qcom,master-id = <86>; + }; + + spi_6: spi@7af6000 { + compatible = "qcom,spi-qup-v2"; + #address-cells = <1>; + #size-cells = <0>; + reg-names = "spi_physical", "spi_bam_physical"; + reg = <0x7af6000 0x600>, + <0x7ac4000 0x1f000>; + interrupt-names = "spi_irq", "spi_bam_irq"; + interrupts = <0 300 0>, <0 239 0>; + spi-max-frequency = <50000000>; + pinctrl-names = "spi_default", "spi_sleep"; + pinctrl-0 = <&spi6_default &spi6_cs0_active>; + pinctrl-1 = <&spi6_sleep &spi6_cs0_sleep>; + clocks = <&clock_gcc clk_gcc_blsp2_ahb_clk>, + <&clock_gcc clk_gcc_blsp2_qup2_spi_apps_clk>; + clock-names = "iface_clk", "core_clk"; + qcom,infinite-mode = <0>; + qcom,use-bam; + qcom,rt-priority; + qcom,use-pinctrl; + qcom,ver-reg-exists; + qcom,bam-consumer-pipe-index = <6>; + qcom,bam-producer-pipe-index = <7>; + qcom,master-id = <84>; + status = "ok"; + spi_ir@1 { + compatible = "qcom,spi-msm-codec-slave"; + reg = <1>; + spi-max-frequency = <50000000>; + spi-cpol; + status = "ok"; + }; + }; + + i2c_2: i2c@78b6000 { /* BLSP1 QUP2 */ + compatible = "qcom,i2c-msm-v2"; + #address-cells = <1>; + #size-cells = <0>; + reg-names = "qup_phys_addr"; + reg = <0x78b6000 0x600>; + interrupt-names = "qup_irq"; + interrupts = <0 96 0>; + qcom,clk-freq-out = <400000>; + qcom,clk-freq-in = <19200000>; + clock-names = "iface_clk", "core_clk"; + clocks = <&clock_gcc clk_gcc_blsp1_ahb_clk>, + <&clock_gcc clk_gcc_blsp1_qup2_i2c_apps_clk>; + + pinctrl-names = "i2c_active", "i2c_sleep"; + pinctrl-0 = <&i2c_2_active>; + pinctrl-1 = <&i2c_2_sleep>; + qcom,noise-rjct-scl = <0>; + qcom,noise-rjct-sda = <0>; + qcom,master-id = <86>; + dmas = <&dma_blsp1 6 64 0x20000020 0x20>, + <&dma_blsp1 7 32 0x20000020 0x20>; + dma-names = "tx", "rx"; + + /* DSI_TO_HDMI I2C configuration */ + adv7533@39 { + compatible = "adv7533"; + reg = <0x39>; + instance_id = <0>; + adi,video-mode = <3>; /* 3 = 1080p */ + adi,main-addr = <0x39>; + adi,cec-dsi-addr = <0x3C>; + adi,enable-audio; + pinctrl-names = "pmx_adv7533_active", + "pmx_adv7533_suspend"; + pinctrl-0 = <&adv7533_int_active>; + pinctrl-1 = <&adv7533_int_suspend>; + adi,irq-gpio = <&tlmm 90 0x2002>; + hpd-5v-en-supply = <&adv_vreg>; + qcom,supply-names = "hpd-5v-en"; + qcom,min-voltage-level = <0>; + qcom,max-voltage-level = <0>; + qcom,enable-load = <0>; + qcom,disable-load = <0>; + }; + }; + + i2c_3: i2c@78b7000 { /* BLSP1 QUP3 */ + compatible = "qcom,i2c-msm-v2"; + #address-cells = <1>; + #size-cells = <0>; + reg-names = "qup_phys_addr"; + reg = <0x78b7000 0x600>; + interrupt-names = "qup_irq"; + interrupts = <0 97 0>; + qcom,clk-freq-out = <400000>; + qcom,clk-freq-in = <19200000>; + clock-names = "iface_clk", "core_clk"; + clocks = <&clock_gcc clk_gcc_blsp1_ahb_clk>, + <&clock_gcc clk_gcc_blsp1_qup3_i2c_apps_clk>; + + pinctrl-names = "i2c_active", "i2c_sleep"; + pinctrl-0 = <&i2c_3_active>; + pinctrl-1 = <&i2c_3_sleep>; + qcom,noise-rjct-scl = <0>; + qcom,noise-rjct-sda = <0>; + qcom,master-id = <86>; + dmas = <&dma_blsp1 8 64 0x20000020 0x20>, + <&dma_blsp1 9 32 0x20000020 0x20>; + dma-names = "tx", "rx"; + status = "okay"; + }; + + i2c_5: i2c@7af5000 { /* BLSP2 QUP1 */ + compatible = "qcom,i2c-msm-v2"; + #address-cells = <1>; + #size-cells = <0>; + reg-names = "qup_phys_addr"; + reg = <0x7af5000 0x600>; + interrupt-names = "qup_irq"; + interrupts = <0 299 0>; + qcom,clk-freq-out = <400000>; + qcom,clk-freq-in = <19200000>; + clock-names = "iface_clk", "core_clk"; + clocks = <&clock_gcc clk_gcc_blsp2_ahb_clk>, + <&clock_gcc clk_gcc_blsp2_qup1_i2c_apps_clk>; + + pinctrl-names = "i2c_active", "i2c_sleep"; + pinctrl-0 = <&i2c_5_active>; + pinctrl-1 = <&i2c_5_sleep>; + qcom,noise-rjct-scl = <0>; + qcom,noise-rjct-sda = <0>; + qcom,master-id = <84>; + dmas = <&dma_blsp2 4 64 0x20000020 0x20>, + <&dma_blsp2 5 32 0x20000020 0x20>; + dma-names = "tx", "rx"; + }; + + i2c_8: i2c@7af8000 { /* BLSP2 QUP3 */ + compatible = "qcom,i2c-msm-v2"; + #address-cells = <1>; + #size-cells = <0>; + reg-names = "qup_phys_addr"; + reg = <0x7af8000 0x600>; + interrupt-names = "qup_irq"; + interrupts = <0 302 0>; + qcom,clk-freq-out = <400000>; + qcom,clk-freq-in = <19200000>; + clock-names = "iface_clk", "core_clk"; + clocks = <&clock_gcc clk_gcc_blsp2_ahb_clk>, + <&clock_gcc clk_gcc_blsp2_qup4_i2c_apps_clk>; + + pinctrl-names = "i2c_active", "i2c_sleep"; + pinctrl-0 = <&i2c_8_active>; + pinctrl-1 = <&i2c_8_sleep>; + qcom,noise-rjct-scl = <0>; + qcom,noise-rjct-sda = <0>; + qcom,master-id = <84>; + dmas = <&dma_blsp2 10 64 0x20000020 0x20>, + <&dma_blsp2 11 32 0x20000020 0x20>; + dma-names = "tx", "rx"; + + aw87319@58{ /*AW87319 PA*/ + compatible = "awinic,aw87319_pa"; + reg = <0x58>; + qcom,ext_pa_spk_aw87319_rst = <&tlmm 96 0>; + }; + }; + + slim_msm: slim@c140000{ + cell-index = <1>; + compatible = "qcom,slim-ngd"; + reg = <0xc140000 0x2c000>, + <0xc104000 0x2a000>; + reg-names = "slimbus_physical", "slimbus_bam_physical"; + interrupts = <0 163 0>, <0 180 0>; + interrupt-names = "slimbus_irq", "slimbus_bam_irq"; + qcom,apps-ch-pipes = <0x600000>; + qcom,ea-pc = <0x200>; + status = "disabled"; + }; + + dcc: dcc@b3000 { + compatible = "qcom,dcc"; + reg = <0xb3000 0x1000>, + <0xb4000 0x800>; + reg-names = "dcc-base", "dcc-ram-base"; + + clocks = <&clock_gcc clk_gcc_dcc_clk>; + clock-names = "dcc_clk"; + + qcom,save-reg; + }; + + clock_gcc: qcom,gcc@1800000 { + compatible = "qcom,gcc-8953"; + reg = <0x1800000 0x80000>; + reg-names = "cc_base"; + vdd_dig-supply = <&pm8953_s2_level>; + #clock-cells = <1>; + }; + + clock_gcc_mdss: qcom,gcc-mdss@1800000 { + compatible = "qcom,gcc-mdss-8953"; + reg = <0x1800000 0x80000>; + reg-names = "cc_base"; + clock-names = "pclk0_src", "pclk1_src", + "byte0_src", "byte1_src"; + clocks = <&mdss_dsi0_pll clk_dsi0pll_pixel_clk_mux>, + <&mdss_dsi1_pll clk_dsi1pll_pixel_clk_mux>, + <&mdss_dsi0_pll clk_dsi0pll_byte_clk_mux>, + <&mdss_dsi1_pll clk_dsi1pll_byte_clk_mux>; + #clock-cells = <1>; + }; + + clock_debug: qcom,cc-debug@1874000 { + compatible = "qcom,cc-debug-8953"; + reg = <0x1874000 0x4>; + reg-names = "cc_base"; + clocks = <&clock_cpu clk_cpu_debug_pri_mux>; + clock-names = "debug_cpu_clk"; + #clock-cells = <1>; + }; + + clock_gcc_gfx: qcom,gcc-gfx@1800000 { + compatible = "qcom,gcc-gfx-8953"; + reg = <0x1800000 0x80000>; + reg-names = "cc_base"; + vdd_gfx-supply = <&gfx_vreg_corner>; + qcom,gfxfreq-corner = + < 0 0 >, + < 133330000 1 >, /* Min SVS */ + < 216000000 2 >, /* Low SVS */ + < 320000000 3 >, /* SVS */ + < 400000000 4 >, /* SVS Plus */ + < 510000000 5 >, /* NOM */ + < 560000000 6 >, /* Nom Plus */ + < 650000000 7 >; /* Turbo */ + #clock-cells = <1>; + }; + + clock_cpu: qcom,cpu-clock-8953@b116000 { + compatible = "qcom,cpu-clock-8953"; + reg = <0xb114000 0x68>, + <0xb014000 0x68>, + <0xb116000 0x400>, + <0xb111050 0x08>, + <0xb011050 0x08>, + <0xb1d1050 0x08>, + <0x00a4124 0x08>; + reg-names = "rcgwr-c0-base", "rcgwr-c1-base", + "c0-pll", "c0-mux", "c1-mux", + "cci-mux", "efuse"; + vdd-mx-supply = <&pm8953_s7_level_ao>; + vdd-cl-supply = <&apc_vreg>; + clocks = <&clock_gcc clk_xo_a_clk_src>; + clock-names = "xo_a"; + qcom,num-clusters = <2>; + qcom,speed0-bin-v0-cl = + < 0 0>, + < 652800000 1>, + < 1036800000 2>, + < 1401600000 3>, + < 1689600000 4>, + < 1804800000 5>, + < 1958400000 6>, + < 2016000000 7>; + qcom,speed0-bin-v0-cci = + < 0 0>, + < 261120000 1>, + < 414720000 2>, + < 560640000 3>, + < 675840000 4>, + < 721920000 5>, + < 783360000 6>, + < 806400000 7>; + qcom,speed2-bin-v0-cl = + < 0 0>, + < 652800000 1>, + < 1036800000 2>, + < 1401600000 3>, + < 1689600000 4>, + < 1804800000 5>, + < 1958400000 6>, + < 2016000000 7>; + qcom,speed2-bin-v0-cci = + < 0 0>, + < 261120000 1>, + < 414720000 2>, + < 560640000 3>, + < 675840000 4>, + < 721920000 5>, + < 783360000 6>, + < 806400000 7>; + qcom,speed7-bin-v0-cl = + < 0 0>, + < 652800000 1>, + < 1036800000 2>, + < 1401600000 3>, + < 1689600000 4>, + < 1804800000 5>, + < 1958400000 6>, + < 2016000000 7>, + < 2150400000 8>, + < 2208000000 9>; + qcom,speed7-bin-v0-cci = + < 0 0>, + < 261120000 1>, + < 414720000 2>, + < 560640000 3>, + < 675840000 4>, + < 721920000 5>, + < 783360000 6>, + < 806400000 7>, + < 860160000 8>, + < 883200000 9>; + qcom,speed6-bin-v0-cl = + < 0 0>, + < 652800000 1>, + < 1036800000 2>, + < 1401600000 3>, + < 1689600000 4>, + < 1804800000 5>; + qcom,speed6-bin-v0-cci = + < 0 0>, + < 261120000 1>, + < 414720000 2>, + < 560640000 3>, + < 675840000 4>, + < 721920000 5>; + #clock-cells = <1>; + }; + + msm_cpufreq: qcom,msm-cpufreq { + compatible = "qcom,msm-cpufreq"; + clock-names = "l2_clk", "cpu0_clk", "cpu1_clk", "cpu2_clk", + "cpu3_clk", "cpu4_clk", "cpu5_clk", + "cpu6_clk", "cpu7_clk"; + clocks = <&clock_cpu clk_cci_clk>, + <&clock_cpu clk_a53_pwr_clk>, + <&clock_cpu clk_a53_pwr_clk>, + <&clock_cpu clk_a53_pwr_clk>, + <&clock_cpu clk_a53_pwr_clk>, + <&clock_cpu clk_a53_pwr_clk>, + <&clock_cpu clk_a53_pwr_clk>, + <&clock_cpu clk_a53_pwr_clk>, + <&clock_cpu clk_a53_pwr_clk>; + + qcom,cpufreq-table = + < 652800 >, + < 1036800 >, + < 1401600 >, + < 1689600 >, + < 1804800 >, + < 1958400 >, + < 2016000 >, + < 2150400 >, + < 2208000 >; + }; + + cpubw: qcom,cpubw { + compatible = "qcom,devbw"; + governor = "cpufreq"; + qcom,src-dst-ports = <1 512>; + qcom,active-only; + qcom,bw-tbl = + < 769 /* 100.8 MHz */ >, + < 1611 /* 211.2 MHz */ >, /*Low SVS*/ + < 2124 /* 278.4 MHz */ >, + < 2929 /* 384 MHz */ >, + < 3221 /* 422.4 MHz */ >, /* SVS */ + < 4248 /* 556.8 MHz */ >, + < 5126 /* 672 MHz */ >, + < 5859 /* 768 MHz */ >, /* SVS+ */ + < 6152 /* 806.4 MHz */ >, + < 6445 /* 844.8 MHz */ >, /* NOM */ + < 7104 /* 931.2 MHz */ >; /* TURBO */ + }; + + mincpubw: qcom,mincpubw { + compatible = "qcom,devbw"; + governor = "cpufreq"; + qcom,src-dst-ports = <1 512>; + qcom,active-only; + qcom,bw-tbl = + < 769 /* 100.8 MHz */ >, + < 1611 /* 211.2 MHz */ >, /*Low SVS*/ + < 2124 /* 278.4 MHz */ >, + < 2929 /* 384 MHz */ >, + < 3221 /* 422.4 MHz */ >, /* SVS */ + < 4248 /* 556.8 MHz */ >, + < 5126 /* 672 MHz */ >, + < 5859 /* 768 MHz */ >, /* SVS+ */ + < 6152 /* 806.4 MHz */ >, + < 6445 /* 844.8 MHz */ >, /* NOM */ + < 7104 /* 931.2 MHz */ >; /* TURBO */ + }; + + qcom,cpu-bwmon { + compatible = "qcom,bimc-bwmon2"; + reg = <0x408000 0x300>, <0x401000 0x200>; + reg-names = "base", "global_base"; + interrupts = <0 183 4>; + qcom,mport = <0>; + qcom,target-dev = <&cpubw>; + }; + + devfreq-cpufreq { + cpubw-cpufreq { + target-dev = <&cpubw>; + cpu-to-dev-map = + < 652800 1611>, + < 1036800 3221>, + < 1401600 5859>, + < 1689600 6445>, + < 1804800 7104>, + < 1958400 7104>, + < 2208000 7104>; + }; + + mincpubw-cpufreq { + target-dev = <&mincpubw>; + cpu-to-dev-map = + < 652800 1611 >, + < 1401600 3221 >, + < 2208000 5859 >; + }; + }; + + rpm_bus: qcom,rpm-smd { + compatible = "qcom,rpm-smd"; + rpm-channel-name = "rpm_requests"; + rpm-channel-type = <15>; /* SMD_APPS_RPM */ + }; + + qcom,ipc-spinlock@1905000 { + compatible = "qcom,ipc-spinlock-sfpb"; + reg = <0x1905000 0x8000>; + qcom,num-locks = <8>; + }; + + qcom,smem@86300000 { + compatible = "qcom,smem"; + reg = <0x86300000 0x100000>, + <0x0b011008 0x4>, + <0x60000 0x8000>, + <0x193d000 0x8>; + reg-names = "smem", "irq-reg-base", + "aux-mem1", "smem_targ_info_reg"; + qcom,mpu-enabled; + + qcom,smd-modem { + compatible = "qcom,smd"; + qcom,smd-edge = <0>; + qcom,smd-irq-offset = <0x0>; + qcom,smd-irq-bitmask = <0x1000>; + interrupts = <0 25 1>; + label = "modem"; + qcom,not-loadable; + }; + + qcom,smsm-modem { + compatible = "qcom,smsm"; + qcom,smsm-edge = <0>; + qcom,smsm-irq-offset = <0x0>; + qcom,smsm-irq-bitmask = <0x2000>; + interrupts = <0 26 1>; + }; + + qcom,smd-wcnss { + compatible = "qcom,smd"; + qcom,smd-edge = <6>; + qcom,smd-irq-offset = <0x0>; + qcom,smd-irq-bitmask = <0x20000>; + interrupts = <0 142 1>; + label = "wcnss"; + }; + + qcom,smsm-wcnss { + compatible = "qcom,smsm"; + qcom,smsm-edge = <6>; + qcom,smsm-irq-offset = <0x0>; + qcom,smsm-irq-bitmask = <0x80000>; + interrupts = <0 144 1>; + }; + + qcom,smd-adsp { + compatible = "qcom,smd"; + qcom,smd-edge = <1>; + qcom,smd-irq-offset = <0x0>; + qcom,smd-irq-bitmask = <0x100>; + interrupts = <0 289 1>; + label = "adsp"; + }; + + qcom,smsm-adsp { + compatible = "qcom,smsm"; + qcom,smsm-edge = <1>; + qcom,smsm-irq-offset = <0x0>; + qcom,smsm-irq-bitmask = <0x200>; + interrupts = <0 290 1>; + }; + + qcom,smd-rpm { + compatible = "qcom,smd"; + qcom,smd-edge = <15>; + qcom,smd-irq-offset = <0x0>; + qcom,smd-irq-bitmask = <0x1>; + interrupts = <0 168 1>; + label = "rpm"; + qcom,irq-no-suspend; + qcom,not-loadable; + }; + }; + + qcom,wdt@b017000 { + compatible = "qcom,msm-watchdog"; + reg = <0xb017000 0x1000>; + reg-names = "wdt-base"; + interrupts = <0 3 0>, <0 4 0>; + qcom,bark-time = <11000>; + qcom,pet-time = <10000>; + qcom,ipi-ping; + qcom,wakeup-enable; + }; + + qcom,chd { + compatible = "qcom,core-hang-detect"; + qcom,threshold-arr = <0xb1880b0 0xb1980b0 0xb1a80b0 + 0xb1b80b0 0xb0880b0 0xb0980b0 0xb0a80b0 0xb0b80b0>; + qcom,config-arr = <0xb1880b8 0xb1980b8 0xb1a80b8 + 0xb1b80b8 0xb0880b8 0xb0980b8 0xb0a80b8 0xb0b80b8>; + }; + + qcom,msm-rtb { + compatible = "qcom,msm-rtb"; + qcom,rtb-size = <0x100000>; + }; + + qcom,msm-imem@8600000 { + compatible = "qcom,msm-imem"; + reg = <0x08600000 0x1000>; + ranges = <0x0 0x08600000 0x1000>; + #address-cells = <1>; + #size-cells = <1>; + + mem_dump_table@10 { + compatible = "qcom,msm-imem-mem_dump_table"; + reg = <0x10 8>; + }; + + dload_type@18 { + compatible = "qcom,msm-imem-dload-type"; + reg = <0x18 4>; + }; + + restart_reason@65c { + compatible = "qcom,msm-imem-restart_reason"; + reg = <0x65c 4>; + }; + + boot_stats@6b0 { + compatible = "qcom,msm-imem-boot_stats"; + reg = <0x6b0 32>; + }; + + pil@94c { + compatible = "qcom,msm-imem-pil"; + reg = <0x94c 200>; + + }; + }; + + qcom,memshare { + compatible = "qcom,memshare"; + + qcom,client_1 { + compatible = "qcom,memshare-peripheral"; + qcom,peripheral-size = <0x200000>; + qcom,client-id = <0>; + qcom,allocate-boot-time; + label = "modem"; + }; + + qcom,client_2 { + compatible = "qcom,memshare-peripheral"; + qcom,peripheral-size = <0x300000>; + qcom,client-id = <2>; + label = "modem"; + }; + + mem_client_3_size: qcom,client_3 { + compatible = "qcom,memshare-peripheral"; + qcom,peripheral-size = <0x0>; + qcom,client-id = <1>; + label = "modem"; + }; + }; + + jtag_fuse: jtagfuse@a601c { + compatible = "qcom,jtag-fuse-v2"; + reg = <0xa601c 0x8>; + reg-names = "fuse-base"; + }; + sn_fuse: snfuse@0xa0128 { + compatible = "qcom,sn-fuse"; + reg = <0xa0128 0x4>; + reg-names = "sn-base"; + }; + + + sec_boot_fuse: secbootfuse@0xa41d0 { + compatible = "qcom,sec-boot-fuse"; + reg = <0xa41d0 0x4>; + reg-names = "sec-boot-base"; + }; + + jtag_mm0: jtagmm@619c000 { + compatible = "qcom,jtagv8-mm"; + reg = <0x619c000 0x1000>, + <0x6190000 0x1000>; + reg-names = "etm-base", "debug-base"; + + qcom,coresight-jtagmm-cpu = <&CPU0>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + jtag_mm1: jtagmm@619d000 { + compatible = "qcom,jtagv8-mm"; + reg = <0x619d000 0x1000>, + <0x6192000 0x1000>; + reg-names = "etm-base", "debug-base"; + + qcom,coresight-jtagmm-cpu = <&CPU1>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + jtag_mm2: jtagmm@619e000 { + compatible = "qcom,jtagv8-mm"; + reg = <0x619e000 0x1000>, + <0x6194000 0x1000>; + reg-names = "etm-base", "debug-base"; + + qcom,coresight-jtagmm-cpu = <&CPU2>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + jtag_mm3: jtagmm@619f000 { + compatible = "qcom,jtagv8-mm"; + reg = <0x619f000 0x1000>, + <0x6196000 0x1000>; + reg-names = "etm-base", "debug-base"; + + qcom,coresight-jtagmm-cpu = <&CPU3>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + jtag_mm4: jtagmm@61bc000 { + compatible = "qcom,jtagv8-mm"; + reg = <0x61bc000 0x1000>, + <0x61b0000 0x1000>; + reg-names = "etm-base", "debug-base"; + + qcom,coresight-jtagmm-cpu = <&CPU4>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + jtag_mm5: jtagmm@61bd000 { + compatible = "qcom,jtagv8-mm"; + reg = <0x61bd000 0x1000>, + <0x61b2000 0x1000>; + reg-names = "etm-base", "debug-base"; + + qcom,coresight-jtagmm-cpu = <&CPU5>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + jtag_mm6: jtagmm@61be000 { + compatible = "qcom,jtagv8-mm"; + reg = <0x61be000 0x1000>, + <0x61b4000 0x1000>; + reg-names = "etm-base", "debug-base"; + + qcom,coresight-jtagmm-cpu = <&CPU6>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + jtag_mm7: jtagmm@61bf000 { + compatible = "qcom,jtagv8-mm"; + reg = <0x61bf000 0x1000>, + <0x61b6000 0x1000>; + reg-names = "etm-base", "debug-base"; + + qcom,coresight-jtagmm-cpu = <&CPU7>; + + clocks = <&clock_gcc clk_qdss_clk>, + <&clock_gcc clk_qdss_a_clk>; + clock-names = "core_clk", "core_a_clk"; + }; + + ipa_hw: qcom,ipa@07900000 { + compatible = "qcom,ipa"; + reg = <0x07900000 0x4effc>, <0x07904000 0x26934>; + reg-names = "ipa-base", "bam-base"; + interrupts = <0 228 0>, + <0 230 0>; + interrupt-names = "ipa-irq", "bam-irq"; + qcom,ipa-hw-ver = <6>; /* IPA core version = IPAv2.6L */ + qcom,ipa-hw-mode = <0>; /* IPA hw type = Normal */ + qcom,wan-rx-ring-size = <192>; /* IPA WAN-rx-ring-size*/ + qcom,lan-rx-ring-size = <192>; /* IPA LAN-rx-ring-size*/ + clock-names = "core_clk"; + clocks = <&clock_gcc clk_ipa_clk>; + qcom,ee = <0>; + qcom,use-ipa-tethering-bridge; + qcom,modem-cfg-emb-pipe-flt; + qcom,msm-bus,name = "ipa"; + qcom,msm-bus,num-cases = <3>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <90 512 0 0>, /* No BIMC vote (ab=0 Mbps, ib=0 Mbps ~ 0MHZ) */ + <90 512 100000 800000>, /* SVS (ab=100, ib=800 ~ 50MHz) */ + <90 512 100000 1200000>; /* PERF (ab=100, ib=1200 ~ 75MHz) */ + qcom,bus-vector-names = "MIN", "SVS", "PERF"; + }; + + qcom,rmnet-ipa { + compatible = "qcom,rmnet-ipa"; + qcom,rmnet-ipa-ssr; + qcom,ipa-loaduC; + qcom,ipa-advertise-sg-support; + }; + + qcom,smdtty { + compatible = "qcom,smdtty"; + + smdtty_apps_fm: qcom,smdtty-apps-fm { + qcom,smdtty-remote = "wcnss"; + qcom,smdtty-port-name = "APPS_FM"; + }; + + smdtty_apps_riva_bt_acl: smdtty-apps-riva-bt-acl { + qcom,smdtty-remote = "wcnss"; + qcom,smdtty-port-name = "APPS_RIVA_BT_ACL"; + }; + + smdtty_apps_riva_bt_cmd: qcom,smdtty-apps-riva-bt-cmd { + qcom,smdtty-remote = "wcnss"; + qcom,smdtty-port-name = "APPS_RIVA_BT_CMD"; + }; + + smdtty_mbalbridge: qcom,smdtty-mbalbridge { + qcom,smdtty-remote = "modem"; + qcom,smdtty-port-name = "MBALBRIDGE"; + }; + + smdtty_apps_riva_ant_cmd: smdtty-apps-riva-ant-cmd { + qcom,smdtty-remote = "wcnss"; + qcom,smdtty-port-name = "APPS_RIVA_ANT_CMD"; + }; + + smdtty_apps_riva_ant_data: smdtty-apps-riva-ant-data { + qcom,smdtty-remote = "wcnss"; + qcom,smdtty-port-name = "APPS_RIVA_ANT_DATA"; + }; + + smdtty_data1: qcom,smdtty-data1 { + qcom,smdtty-remote = "modem"; + qcom,smdtty-port-name = "DATA1"; + }; + + smdtty_data4: qcom,smdtty-data4 { + qcom,smdtty-remote = "modem"; + qcom,smdtty-port-name = "DATA4"; + }; + + smdtty_data11: qcom,smdtty-data11 { + qcom,smdtty-remote = "modem"; + qcom,smdtty-port-name = "DATA11"; + }; + + smdtty_data21: qcom,smdtty-data21 { + qcom,smdtty-remote = "modem"; + qcom,smdtty-port-name = "DATA21"; + }; + + smdtty_loopback: smdtty-loopback { + qcom,smdtty-remote = "modem"; + qcom,smdtty-port-name = "LOOPBACK"; + qcom,smdtty-dev-name = "LOOPBACK_TTY"; + }; + }; + + qcom,smdpkt { + compatible = "qcom,smdpkt"; + + qcom,smdpkt-data5-cntl { + qcom,smdpkt-remote = "modem"; + qcom,smdpkt-port-name = "DATA5_CNTL"; + qcom,smdpkt-dev-name = "smdcntl0"; + }; + + qcom,smdpkt-data22 { + qcom,smdpkt-remote = "modem"; + qcom,smdpkt-port-name = "DATA22"; + qcom,smdpkt-dev-name = "smd22"; + }; + + qcom,smdpkt-data40-cntl { + qcom,smdpkt-remote = "modem"; + qcom,smdpkt-port-name = "DATA40_CNTL"; + qcom,smdpkt-dev-name = "smdcntl8"; + }; + + qcom,smdpkt-apr-apps2 { + qcom,smdpkt-remote = "adsp"; + qcom,smdpkt-port-name = "apr_apps2"; + qcom,smdpkt-dev-name = "apr_apps2"; + }; + + qcom,smdpkt-loopback { + qcom,smdpkt-remote = "modem"; + qcom,smdpkt-port-name = "LOOPBACK"; + qcom,smdpkt-dev-name = "smd_pkt_loopback"; + }; + }; + + qcom,iris-fm { + compatible = "qcom,iris_fm"; + }; + + qcom,wcnss-wlan@0a000000 { + compatible = "qcom,wcnss_wlan"; + reg = <0x0a000000 0x280000>, + <0x0b011008 0x04>, + <0x0a21b000 0x3000>, + <0x03204000 0x00000100>, + <0x03200800 0x00000200>, + <0x0a100400 0x00000200>, + <0x0a205050 0x00000200>, + <0x0a219000 0x00000020>, + <0x0a080488 0x00000008>, + <0x0a080fb0 0x00000008>, + <0x0a08040c 0x00000008>, + <0x0a0120a8 0x00000008>, + <0x0a012448 0x00000008>, + <0x0a080c00 0x00000001>; + + reg-names = "wcnss_mmio", "wcnss_fiq", + "pronto_phy_base", "riva_phy_base", + "riva_ccu_base", "pronto_a2xb_base", + "pronto_ccpu_base", "pronto_saw2_base", + "wlan_tx_phy_aborts","wlan_brdg_err_source", + "wlan_tx_status", "alarms_txctl", + "alarms_tactl", "pronto_mcu_base"; + + interrupts = <0 145 0 0 146 0>; + interrupt-names = "wcnss_wlantx_irq", "wcnss_wlanrx_irq"; + + qcom,pronto-vddmx-supply = <&pm8953_s7_level_ao>; + qcom,pronto-vddcx-supply = <&pm8953_s2_level>; + qcom,pronto-vddpx-supply = <&pm8953_l5>; + qcom,iris-vddxo-supply = <&pm8953_l7>; + qcom,iris-vddrfa-supply = <&pm8953_l19>; + qcom,iris-vddpa-supply = <&pm8953_l9>; + qcom,iris-vdddig-supply = <&pm8953_l5>; + + qcom,iris-vddxo-voltage-level = <1800000 0 1800000>; + qcom,iris-vddrfa-voltage-level = <1300000 0 1300000>; + qcom,iris-vddpa-voltage-level = <3300000 0 3300000>; + qcom,iris-vdddig-voltage-level = <1800000 0 1800000>; + + qcom,vddmx-voltage-level = ; + qcom,vddcx-voltage-level = ; + qcom,vddpx-voltage-level = <1800000 0 1800000>; + + qcom,iris-vddxo-current = <10000>; + qcom,iris-vddrfa-current = <100000>; + qcom,iris-vddpa-current = <515000>; + qcom,iris-vdddig-current = <10000>; + + qcom,pronto-vddmx-current = <0>; + qcom,pronto-vddcx-current = <0>; + qcom,pronto-vddpx-current = <0>; + + pinctrl-names = "wcnss_default", "wcnss_sleep", + "wcnss_gpio_default"; + pinctrl-0 = <&wcnss_default>; + pinctrl-1 = <&wcnss_sleep>; + pinctrl-2 = <&wcnss_gpio_default>; + + gpios = <&tlmm 76 0>, <&tlmm 77 0>, <&tlmm 78 0>, + <&tlmm 79 0>, <&tlmm 80 0>; + + clocks = <&clock_gcc clk_xo_wlan_clk>, + <&clock_gcc clk_rf_clk2>, + <&clock_debug clk_gcc_debug_mux>, + <&clock_gcc clk_wcnss_m_clk>; + + clock-names = "xo", "rf_clk", "measure", "wcnss_debug"; + + qcom,has-autodetect-xo; + qcom,is-pronto-v3; + qcom,has-pronto-hw; + qcom,has-vsys-adc-channel; + qcom,has-a2xb-split-reg; + qcom,wcnss-adc_tm = <&pm8953_adc_tm>; + }; + + qcom_rng: qrng@e3000 { + compatible = "qcom,msm-rng"; + reg = <0xe3000 0x1000>; + qcom,msm-rng-iface-clk; + qcom,no-qrng-config; + qcom,msm-bus,name = "msm-rng-noc"; + qcom,msm-bus,num-cases = <2>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <1 618 0 0>, /* No vote */ + <1 618 0 800>; /* 100 MB/s */ + clocks = <&clock_gcc clk_gcc_prng_ahb_clk>; + clock-names = "iface_clk"; + }; + + qcom_tzlog: tz-log@08600720 { + compatible = "qcom,tz-log"; + reg = <0x08600720 0x2000>; + }; + + qcom_crypto: qcrypto@720000 { + compatible = "qcom,qcrypto"; + reg = <0x720000 0x20000>, + <0x704000 0x20000>; + reg-names = "crypto-base","crypto-bam-base"; + interrupts = <0 207 0>; + qcom,bam-pipe-pair = <2>; + qcom,ce-hw-instance = <0>; + qcom,ce-device = <0>; + qcom,ce-hw-shared; + qcom,clk-mgmt-sus-res; + qcom,msm-bus,name = "qcrypto-noc"; + qcom,msm-bus,num-cases = <2>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <55 512 0 0>, + <55 512 393600 393600>; + clocks = <&clock_gcc clk_crypto_clk_src>, + <&clock_gcc clk_gcc_crypto_clk>, + <&clock_gcc clk_gcc_crypto_ahb_clk>, + <&clock_gcc clk_gcc_crypto_axi_clk>; + clock-names = "core_clk_src", "core_clk", + "iface_clk", "bus_clk"; + qcom,use-sw-aes-cbc-ecb-ctr-algo; + qcom,use-sw-aes-xts-algo; + qcom,use-sw-aes-ccm-algo; + qcom,use-sw-ahash-algo; + qcom,use-sw-hmac-algo; + qcom,use-sw-aead-algo; + qcom,ce-opp-freq = <100000000>; + }; + + qcom_cedev: qcedev@720000 { + compatible = "qcom,qcedev"; + reg = <0x720000 0x20000>, + <0x704000 0x20000>; + reg-names = "crypto-base","crypto-bam-base"; + interrupts = <0 207 0>; + qcom,bam-pipe-pair = <1>; + qcom,ce-hw-instance = <0>; + qcom,ce-device = <0>; + qcom,ce-hw-shared; + qcom,msm-bus,name = "qcedev-noc"; + qcom,msm-bus,num-cases = <2>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <55 512 0 0>, + <55 512 393600 393600>; + clocks = <&clock_gcc clk_crypto_clk_src>, + <&clock_gcc clk_gcc_crypto_clk>, + <&clock_gcc clk_gcc_crypto_ahb_clk>, + <&clock_gcc clk_gcc_crypto_axi_clk>; + clock-names = "core_clk_src", "core_clk", + "iface_clk", "bus_clk"; + qcom,ce-opp-freq = <100000000>; + }; + + qcom_seecom: qseecom@84A00000 { + compatible = "qcom,qseecom"; + reg = <0x84A00000 0x1900000>; + reg-names = "secapp-region"; + qcom,hlos-num-ce-hw-instances = <1>; + qcom,hlos-ce-hw-instance = <0>; + qcom,qsee-ce-hw-instance = <0>; + qcom,disk-encrypt-pipe-pair = <2>; + qcom,support-fde; + qcom,msm-bus,name = "qseecom-noc"; + qcom,msm-bus,num-cases = <4>; + qcom,msm-bus,num-paths = <1>; + qcom,support-bus-scaling; + qcom,appsbl-qseecom-support; + qcom,msm-bus,vectors-KBps = + <55 512 0 0>, + <55 512 0 0>, + <55 512 120000 1200000>, + <55 512 393600 3936000>; + clocks = <&clock_gcc clk_crypto_clk_src>, + <&clock_gcc clk_gcc_crypto_clk>, + <&clock_gcc clk_gcc_crypto_ahb_clk>, + <&clock_gcc clk_gcc_crypto_axi_clk>; + clock-names = "core_clk_src", "core_clk", + "iface_clk", "bus_clk"; + qcom,ce-opp-freq = <100000000>; + }; + + qcom,ipc_router { + compatible = "qcom,ipc_router"; + qcom,node-id = <1>; + }; + + qcom,ipc_router_modem_xprt { + compatible = "qcom,ipc_router_smd_xprt"; + qcom,ch-name = "IPCRTR"; + qcom,xprt-remote = "modem"; + qcom,xprt-linkid = <1>; + qcom,xprt-version = <1>; + qcom,fragmented-data; + qcom,disable-pil-loading; + }; + + qcom,ipc_router_q6_xprt { + compatible = "qcom,ipc_router_smd_xprt"; + qcom,ch-name = "IPCRTR"; + qcom,xprt-remote = "adsp"; + qcom,xprt-linkid = <1>; + qcom,xprt-version = <1>; + qcom,fragmented-data; + }; + + qcom,ipc_router_wcnss_xprt { + compatible = "qcom,ipc_router_smd_xprt"; + qcom,ch-name = "IPCRTR"; + qcom,xprt-remote = "wcnss"; + qcom,xprt-linkid = <1>; + qcom,xprt-version = <1>; + qcom,fragmented-data; + }; + + qcom,adsprpc-mem { + compatible = "qcom,msm-adsprpc-mem-region"; + memory-region = <&adsp_mem>; + }; + + qcom,adsprpc_domains { + compatible = "qcom,msm-fastrpc-legacy-compute-cb"; + qcom,msm_fastrpc_compute_cb { + qcom,adsp-shared-phandle = <&adsp_shared>; + qcom,adsp-shared-sids = + <0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf>; + qcom,virtual-addr-pool = <0x80000000 0x7FFFFFFF>; + }; + }; + + sdcc1_ice: sdcc1ice@7803000 { + compatible = "qcom,ice"; + reg = <0x7803000 0x8000>; + interrupt-names = "sdcc_ice_nonsec_level_irq", + "sdcc_ice_sec_level_irq"; + interrupts = <0 312 0>, <0 313 0>; + qcom,enable-ice-clk; + clock-names = "ice_core_clk_src", "ice_core_clk", + "bus_clk", "iface_clk"; + clocks = <&clock_gcc clk_sdcc1_ice_core_clk_src>, + <&clock_gcc clk_gcc_sdcc1_ice_core_clk>, + <&clock_gcc clk_gcc_sdcc1_apps_clk>, + <&clock_gcc clk_gcc_sdcc1_ahb_clk>; + qcom,op-freq-hz = <270000000>, <0>, <0>, <0>; + qcom,msm-bus,name = "sdcc_ice_noc"; + qcom,msm-bus,num-cases = <2>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <78 512 0 0>, /* No vote */ + <78 512 1000 0>; /* Max. bandwidth */ + qcom,bus-vector-names = "MIN", "MAX"; + qcom,instance-type = "sdcc"; + }; + + sdhc_1: sdhci@7824900 { + compatible = "qcom,sdhci-msm"; + reg = <0x7824900 0x500>, <0x7824000 0x800>, <0x7824e00 0x200>; + reg-names = "hc_mem", "core_mem", "cmdq_mem"; + + interrupts = <0 123 0>, <0 138 0>; + interrupt-names = "hc_irq", "pwr_irq"; + + sdhc-msm-crypto = <&sdcc1_ice>; + qcom,bus-width = <8>; + + qcom,devfreq,freq-table = <50000000 200000000>; + + qcom,pm-qos-irq-type = "affine_irq"; + qcom,pm-qos-irq-latency = <2 213>; + + qcom,pm-qos-cpu-groups = <0x0f 0xf0>; + qcom,pm-qos-cmdq-latency-us = <2 213>, <2 213>; + + qcom,pm-qos-legacy-latency-us = <2 213>, <2 213>; + + qcom,msm-bus,name = "sdhc1"; + qcom,msm-bus,num-cases = <9>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = <78 512 0 0>, /* No vote */ + <78 512 1046 3200>, /* 400 KB/s*/ + <78 512 52286 160000>, /* 20 MB/s */ + <78 512 65360 200000>, /* 25 MB/s */ + <78 512 130718 400000>, /* 50 MB/s */ + <78 512 130718 400000>, /* 100 MB/s */ + <78 512 261438 800000>, /* 200 MB/s */ + <78 512 261438 800000>, /* 400 MB/s */ + <78 512 1338562 4096000>; /* Max. bandwidth */ + qcom,bus-bw-vectors-bps = <0 400000 20000000 25000000 50000000 + 100000000 200000000 400000000 4294967295>; + + clocks = <&clock_gcc clk_gcc_sdcc1_ahb_clk>, + <&clock_gcc clk_gcc_sdcc1_apps_clk>, + <&clock_gcc clk_gcc_sdcc1_ice_core_clk>; + clock-names = "iface_clk", "core_clk", "ice_core_clk"; + qcom,ice-clk-rates = <270000000 160000000>; + qcom,large-address-bus; + + status = "disabled"; + }; + + sdhc_2: sdhci@7864900 { + compatible = "qcom,sdhci-msm"; + reg = <0x7864900 0x500>, <0x7864000 0x800>; + reg-names = "hc_mem", "core_mem"; + + interrupts = <0 125 0>, <0 221 0>; + interrupt-names = "hc_irq", "pwr_irq"; + + qcom,bus-width = <4>; + + qcom,pm-qos-irq-type = "affine_irq"; + qcom,pm-qos-irq-latency = <2 213>; + + qcom,pm-qos-cpu-groups = <0x0f 0xf0>; + qcom,pm-qos-legacy-latency-us = <2 213>, <2 213>; + + qcom,devfreq,freq-table = <50000000 200000000>; + + qcom,msm-bus,name = "sdhc2"; + qcom,msm-bus,num-cases = <8>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = <81 512 0 0>, /* No vote */ + <81 512 1046 3200>, /* 400 KB/s*/ + <81 512 52286 160000>, /* 20 MB/s */ + <81 512 65360 200000>, /* 25 MB/s */ + <81 512 130718 400000>, /* 50 MB/s */ + <81 512 261438 800000>, /* 100 MB/s */ + <81 512 261438 800000>, /* 200 MB/s */ + <81 512 1338562 4096000>; /* Max. bandwidth */ + qcom,bus-bw-vectors-bps = <0 400000 20000000 25000000 50000000 + 100000000 200000000 4294967295>; + + clocks = <&clock_gcc clk_gcc_sdcc2_ahb_clk>, + <&clock_gcc clk_gcc_sdcc2_apps_clk>; + clock-names = "iface_clk", "core_clk"; + + qcom,large-address-bus; + status = "disabled"; + }; + + spmi_bus: qcom,spmi@200f000 { + compatible = "qcom,spmi-pmic-arb"; + reg = <0x200f000 0x1000>, + <0x2400000 0x800000>, + <0x2c00000 0x800000>, + <0x3800000 0x200000>, + <0x200a000 0x2100>; + reg-names = "core", "chnls", "obsrvr", "intr", "cnfg"; + interrupts = <0 190 0>; + qcom,pmic-arb-channel = <0>; + qcom,pmic-arb-max-peripherals = <256>; + qcom,pmic-arb-max-periph-interrupts = <256>; + qcom,pmic-arb-ee = <0>; + #interrupt-cells = <3>; + interrupt-controller; + #address-cells = <1>; + #size-cells = <0>; + cell-index = <0>; + }; + + qcom,memshare { + compatible = "qcom,memshare"; + + qcom,client_1 { + compatible = "qcom,memshare-peripheral"; + qcom,peripheral-size = <0x200000>; + qcom,client-id = <0>; + qcom,allocate-boot-time; + label = "modem"; + }; + + qcom,client_2 { + compatible = "qcom,memshare-peripheral"; + qcom,peripheral-size = <0x300000>; + qcom,client-id = <2>; + label = "modem"; + }; + + qcom,client_3 { + compatible = "qcom,memshare-peripheral"; + qcom,peripheral-size = <0x0>; + qcom,client-id = <1>; + label = "modem"; + }; + }; + + qcom,mss@4080000 { + compatible = "qcom,pil-q6v55-mss"; + reg = <0x04080000 0x100>, + <0x0194f000 0x010>, + <0x01950000 0x008>, + <0x01951000 0x008>, + <0x04020000 0x040>, + <0x01871000 0x004>; + reg-names = "qdsp6_base", "halt_q6", "halt_modem", "halt_nc", + "rmb_base", "restart_reg"; + + interrupts = <0 24 1>; + vdd_mss-supply = <&pm8953_s1>; + vdd_cx-supply = <&pm8953_s2_level>; + vdd_cx-voltage = ; + vdd_mx-supply = <&pm8953_s7_level_ao>; + vdd_mx-uV = ; + vdd_pll-supply = <&pm8953_l7>; + qcom,vdd_pll = <1800000>; + + clocks = <&clock_gcc clk_xo_pil_mss_clk>, + <&clock_gcc clk_gcc_mss_cfg_ahb_clk>, + <&clock_gcc clk_gcc_mss_q6_bimc_axi_clk>, + <&clock_gcc clk_gcc_boot_rom_ahb_clk>; + clock-names = "xo", "iface_clk", "bus_clk", "mem_clk"; + qcom,proxy-clock-names = "xo"; + qcom,active-clock-names = "iface_clk", "bus_clk", "mem_clk"; + + qcom,pas-id = <5>; + qcom,pil-mss-memsetup; + qcom,firmware-name = "modem"; + qcom,pil-self-auth; + qcom,sysmon-id = <0>; + qcom,ssctl-instance-id = <0x12>; + qcom,qdsp6v56-1-10; + + /* GPIO inputs from mss */ + qcom,gpio-err-fatal = <&smp2pgpio_ssr_smp2p_1_in 0 0>; + qcom,gpio-err-ready = <&smp2pgpio_ssr_smp2p_1_in 1 0>; + qcom,gpio-proxy-unvote = <&smp2pgpio_ssr_smp2p_1_in 2 0>; + qcom,gpio-stop-ack = <&smp2pgpio_ssr_smp2p_1_in 3 0>; + qcom,gpio-shutdown-ack = <&smp2pgpio_ssr_smp2p_1_in 7 0>; + + /* GPIO output to mss */ + qcom,gpio-force-stop = <&smp2pgpio_ssr_smp2p_1_out 0 0>; + memory-region = <&modem_mem>; + }; + + qcom,lpass@c200000 { + compatible = "qcom,pil-tz-generic"; + reg = <0xc200000 0x00100>; + interrupts = <0 293 1>; + + vdd_cx-supply = <&pm8953_s2_level>; + qcom,proxy-reg-names = "vdd_cx"; + qcom,vdd_cx-uV-uA = ; + + clocks = <&clock_gcc clk_xo_pil_lpass_clk>, + <&clock_gcc clk_gcc_crypto_clk>, + <&clock_gcc clk_gcc_crypto_ahb_clk>, + <&clock_gcc clk_gcc_crypto_axi_clk>, + <&clock_gcc clk_crypto_clk_src>; + clock-names = "xo", "scm_core_clk", "scm_iface_clk", + "scm_bus_clk", "scm_core_clk_src"; + qcom,proxy-clock-names = "xo", "scm_core_clk", "scm_iface_clk", + "scm_bus_clk", "scm_core_clk_src"; + qcom,scm_core_clk_src-freq = <80000000>; + + qcom,pas-id = <1>; + qcom,complete-ramdump; + qcom,proxy-timeout-ms = <10000>; + qcom,smem-id = <423>; + qcom,sysmon-id = <1>; + qcom,ssctl-instance-id = <0x14>; + qcom,firmware-name = "adsp"; + + /* GPIO inputs from lpass */ + qcom,gpio-err-fatal = <&smp2pgpio_ssr_smp2p_2_in 0 0>; + qcom,gpio-proxy-unvote = <&smp2pgpio_ssr_smp2p_2_in 2 0>; + qcom,gpio-err-ready = <&smp2pgpio_ssr_smp2p_2_in 1 0>; + qcom,gpio-stop-ack = <&smp2pgpio_ssr_smp2p_2_in 3 0>; + + /* GPIO output to lpass */ + qcom,gpio-force-stop = <&smp2pgpio_ssr_smp2p_2_out 0 0>; + + memory-region = <&adsp_fw_mem>; + }; + + qcom,venus@1de0000 { + compatible = "qcom,pil-tz-generic"; + reg = <0x1de0000 0x4000>; + + vdd-supply = <&gdsc_venus>; + qcom,proxy-reg-names = "vdd"; + + clocks = <&clock_gcc clk_gcc_venus0_vcodec0_clk>, + <&clock_gcc clk_gcc_venus0_ahb_clk>, + <&clock_gcc clk_gcc_venus0_axi_clk>, + <&clock_gcc clk_gcc_crypto_clk>, + <&clock_gcc clk_gcc_crypto_ahb_clk>, + <&clock_gcc clk_gcc_crypto_axi_clk>, + <&clock_gcc clk_crypto_clk_src>; + + clock-names = "core_clk", "iface_clk", "bus_clk", + "scm_core_clk", "scm_iface_clk", + "scm_bus_clk", "scm_core_clk_src"; + + qcom,proxy-clock-names = "core_clk", "iface_clk", + "bus_clk", "scm_core_clk", + "scm_iface_clk", "scm_bus_clk", + "scm_core_clk_src"; + qcom,scm_core_clk_src-freq = <80000000>; + + qcom,msm-bus,name = "pil-venus"; + qcom,msm-bus,num-cases = <2>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <63 512 0 0>, + <63 512 0 304000>; + + qcom,pas-id = <9>; + qcom,proxy-timeout-ms = <100>; + qcom,firmware-name = "venus"; + memory-region = <&venus_mem>; + }; + + qcom,msm-ssc-sensors { + compatible = "qcom,msm-ssc-sensors"; + }; + + qcom,pronto@a21b000 { + compatible = "qcom,pil-tz-generic"; + reg = <0x0a21b000 0x3000>; + interrupts = <0 149 1>; + + vdd_pronto_pll-supply = <&pm8953_l7>; + proxy-reg-names = "vdd_pronto_pll"; + vdd_pronto_pll-uV-uA = <1800000 18000>; + clocks = <&clock_gcc clk_xo_pil_pronto_clk>, + <&clock_gcc clk_gcc_crypto_clk>, + <&clock_gcc clk_gcc_crypto_ahb_clk>, + <&clock_gcc clk_gcc_crypto_axi_clk>, + <&clock_gcc clk_crypto_clk_src>; + + clock-names = "xo", "scm_core_clk", "scm_iface_clk", + "scm_bus_clk", "scm_core_clk_src"; + qcom,proxy-clock-names = "xo", "scm_core_clk", "scm_iface_clk", + "scm_bus_clk", "scm_core_clk_src"; + qcom,scm_core_clk_src = <80000000>; + + qcom,pas-id = <6>; + qcom,proxy-timeout-ms = <10000>; + qcom,smem-id = <422>; + qcom,sysmon-id = <6>; + qcom,ssctl-instance-id = <0x13>; + qcom,firmware-name = "wcnss"; + + /* GPIO inputs from wcnss */ + qcom,gpio-err-fatal = <&smp2pgpio_ssr_smp2p_4_in 0 0>; + qcom,gpio-err-ready = <&smp2pgpio_ssr_smp2p_4_in 1 0>; + qcom,gpio-proxy-unvote = <&smp2pgpio_ssr_smp2p_4_in 2 0>; + qcom,gpio-stop-ack = <&smp2pgpio_ssr_smp2p_4_in 3 0>; + + /* GPIO output to wcnss */ + qcom,gpio-force-stop = <&smp2pgpio_ssr_smp2p_4_out 0 0>; + memory-region = <&wcnss_fw_mem>; + }; + + usb3: ssusb@7000000{ + compatible = "qcom,dwc-usb3-msm"; + reg = <0x07000000 0xfc000>, + <0x0007e000 0x400>; + reg-names = "core_base", + "ahb2phy_base"; + #address-cells = <1>; + #size-cells = <1>; + ranges; + + interrupts = <0 136 0>, <0 220 0>, <0 134 0>; + interrupt-names = "hs_phy_irq", "ss_phy_irq", "pwr_event_irq"; + + USB3_GDSC-supply = <&gdsc_usb30>; + vbus_dwc3-supply = <&smbcharger_charger_otg>; + qcom,usb-dbm = <&dbm_1p5>; + qcom,msm-bus,name = "usb3"; + qcom,msm-bus,num-cases = <2>; + qcom,msm-bus,num-paths = <1>; + qcom,msm-bus,vectors-KBps = + <61 512 0 0>, + <61 512 240000 800000>; + + qcom,dwc-usb3-msm-tx-fifo-size = <21288>; + + clocks = <&clock_gcc clk_gcc_usb30_master_clk>, + <&clock_gcc clk_gcc_pcnoc_usb3_axi_clk>, + <&clock_gcc clk_gcc_usb30_mock_utmi_clk>, + <&clock_gcc clk_gcc_usb30_sleep_clk>, + <&clock_gcc clk_xo_dwc3_clk>, + <&clock_gcc clk_gcc_usb_phy_cfg_ahb_clk>; + + clock-names = "core_clk", "iface_clk", "utmi_clk", + "sleep_clk", "xo", "cfg_ahb_clk"; + + dwc3@7000000 { + compatible = "snps,dwc3"; + reg = <0x07000000 0xc8d0>; + interrupt-parent = <&intc>; + interrupts = <0 140 0>; + usb-phy = <&qusb_phy>, <&ssphy>; + tx-fifo-resize; + snps,usb3-u1u2-disable; + snps,nominal-elastic-buffer; + snps,is-utmi-l1-suspend; + snps,hird-threshold = /bits/ 8 <0x0>; + }; + + qcom,usbbam@7104000 { + compatible = "qcom,usb-bam-msm"; + reg = <0x07104000 0x1a934>; + interrupt-parent = <&intc>; + interrupts = <0 135 0>; + + qcom,bam-type = <0>; + qcom,usb-bam-fifo-baseaddr = <0x08605000>; + qcom,usb-bam-num-pipes = <8>; + qcom,ignore-core-reset-ack; + qcom,disable-clk-gating; + qcom,usb-bam-override-threshold = <0x4001>; + qcom,usb-bam-max-mbps-highspeed = <400>; + qcom,usb-bam-max-mbps-superspeed = <3600>; + qcom,reset-bam-on-connect; + + qcom,pipe0 { + label = "ssusb-ipa-out-0"; + qcom,usb-bam-mem-type = <1>; + qcom,dir = <0>; + qcom,pipe-num = <0>; + qcom,peer-bam = <1>; + qcom,src-bam-pipe-index = <1>; + qcom,data-fifo-size = <0x8000>; + qcom,descriptor-fifo-size = <0x2000>; + }; + + qcom,pipe1 { + label = "ssusb-ipa-in-0"; + qcom,usb-bam-mem-type = <1>; + qcom,dir = <1>; + qcom,pipe-num = <0>; + qcom,peer-bam = <1>; + qcom,dst-bam-pipe-index = <0>; + qcom,data-fifo-size = <0x8000>; + qcom,descriptor-fifo-size = <0x2000>; + }; + + qcom,pipe2 { + label = "ssusb-qdss-in-0"; + qcom,usb-bam-mem-type = <2>; + qcom,dir = <1>; + qcom,pipe-num = <0>; + qcom,peer-bam = <0>; + qcom,peer-bam-physical-address = <0x06044000>; + qcom,src-bam-pipe-index = <0>; + qcom,dst-bam-pipe-index = <2>; + qcom,data-fifo-offset = <0x0>; + qcom,data-fifo-size = <0xe00>; + qcom,descriptor-fifo-offset = <0xe00>; + qcom,descriptor-fifo-size = <0x200>; + }; + + qcom,pipe3 { + label = "ssusb-dpl-ipa-in-1"; + qcom,usb-bam-mem-type = <1>; + qcom,dir = <1>; + qcom,pipe-num = <1>; + qcom,peer-bam = <1>; + qcom,dst-bam-pipe-index = <2>; + qcom,data-fifo-size = <0x8000>; + qcom,descriptor-fifo-size = <0x2000>; + }; + }; + }; + + qusb_phy: qusb@79000 { + compatible = "qcom,qusb2phy"; + reg = <0x079000 0x180>, + <0x070f8800 0x400>, + <0x01841030 0x4>, + <0x0193f044 0x4>, + <0x0193f020 0x4>; + reg-names = "qusb_phy_base", + "qscratch_base", + "ref_clk_addr", + "tcsr_phy_clk_scheme_sel", + "tcsr_phy_level_shift_keeper"; + + USB3_GDSC-supply = <&gdsc_usb30>; + vdd-supply = <&pm8953_l3>; + vdda18-supply = <&pm8953_l7>; + vdda33-supply = <&pm8953_l13>; + qcom,vdd-voltage-level = <0 925000 925000>; + + qcom,qusb-phy-init-seq = <0xF8 0x80 + 0x73 0x84 + 0x83 0x88 + 0xC7 0x8C + 0x14 0x9C + 0x30 0x08 + 0x79 0x0C + 0x21 0x10 + 0x00 0x90 + 0x9F 0x1C + 0x00 0x18>; + phy_type= "utmi"; + + clocks = <&clock_gcc clk_bb_clk1>, + <&clock_gcc clk_gcc_qusb_ref_clk>, + <&clock_gcc clk_gcc_usb_phy_cfg_ahb_clk>, + <&clock_gcc clk_gcc_qusb2_phy_reset>, + <&clock_gcc clk_gcc_pcnoc_usb3_axi_clk>, + <&clock_gcc clk_gcc_usb30_master_clk>; + + clock-names = "ref_clk_src", "ref_clk", "cfg_ahb_clk", + "phy_reset", "iface_clk", "core_clk"; + + }; + + usb_nop_phy: usb_nop_phy { + status = "disabled"; + compatible = "usb-nop-xceiv"; + }; + + + ssphy: ssphy@78000 { + compatible = "qcom,usb-ssphy-qmp"; + reg = <0x78000 0x9f8>, + <0x0193f244 0x4>, + <0x0193f044 0x4>; + reg-names = "qmp_phy_base", + "vls_clamp_reg", + "tcsr_phy_clk_scheme_sel"; + qcom,qmp-phy-init-seq = <0xac 0x14 0x1a 0x00 + 0x34 0x08 0x08 0x00 + 0x174 0x30 0x30 0x00 + 0x3c 0x06 0x06 0x00 + 0xb4 0x00 0x00 0x00 + 0xb8 0x08 0x08 0x00 + 0x194 0x06 0x06 0x3e8 + 0x19c 0x01 0x01 0x00 + 0x178 0x00 0x00 0x00 + 0xd0 0x82 0x82 0x00 + 0xdc 0x55 0x55 0x00 + 0xe0 0x55 0x55 0x00 + 0xe4 0x03 0x03 0x00 + 0x78 0x0b 0x0b 0x00 + 0x84 0x16 0x16 0x00 + 0x90 0x28 0x28 0x00 + 0x108 0x80 0x80 0x00 + 0x10c 0x00 0x00 0x00 + 0x184 0x0a 0x0a 0x00 + 0x4c 0x15 0x15 0x00 + 0x50 0x34 0x34 0x00 + 0x54 0x00 0x00 0x00 + 0xc8 0x00 0x00 0x00 + 0x18c 0x00 0x00 0x00 + 0xcc 0x00 0x00 0x00 + 0x128 0x00 0x00 0x00 + 0x0c 0x0a 0x0a 0x00 + 0x10 0x01 0x01 0x00 + 0x1c 0x31 0x31 0x00 + 0x20 0x01 0x01 0x00 + 0x14 0x00 0x00 0x00 + 0x18 0x00 0x00 0x00 + 0x24 0xde 0xde 0x00 + 0x28 0x07 0x07 0x00 + 0x48 0x0f 0x0f 0x00 + 0x70 0x0f 0x0f 0x00 + 0x100 0x80 0x80 0x00 + 0x440 0x0b 0x0b 0x00 + 0x4d8 0x02 0x02 0x00 + 0x4dc 0x6c 0x6c 0x00 + 0x4e0 0xbb 0xbb 0x00 + 0x508 0x77 0x77 0x00 + 0x50c 0x80 0x80 0x00 + 0x514 0x03 0x03 0x00 + 0x51c 0x16 0x16 0x00 + 0x448 0x75 0x75 0x00 + 0x454 0x00 0x00 0x00 + 0x40c 0x0a 0x0a 0x00 + 0x41c 0x06 0x06 0x00 + 0x510 0x00 0x00 0x00 + 0x268 0x45 0x45 0x00 + 0x2ac 0x12 0x12 0x00 + 0x294 0x06 0x06 0x00 + 0x254 0x00 0x00 0x00 + 0x8c8 0x83 0x83 0x00 + 0x8c4 0x02 0x02 0x00 + 0x8cc 0x09 0x09 0x00 + 0x8d0 0xa2 0xa2 0x00 + 0x8d4 0x85 0x85 0x00 + 0x880 0xd1 0xd1 0x00 + 0x884 0x1f 0x1f 0x00 + 0x888 0x47 0x47 0x00 + 0x80c 0x9f 0x9f 0x00 + 0x824 0x17 0x17 0x00 + 0x828 0x0f 0x0f 0x00 + 0x8b8 0x75 0x75 0x00 + 0x8bc 0x13 0x13 0x00 + 0x8b0 0x86 0x86 0x00 + 0x8a0 0x04 0x04 0x00 + 0x88c 0x44 0x44 0x00 + 0x870 0xe7 0xe7 0x00 + 0x874 0x03 0x03 0x00 + 0x878 0x40 0x40 0x00 + 0x87c 0x00 0x00 0x00 + 0x9d8 0x88 0x88 0x00 + 0xffffffff 0xffffffff 0x00 0x00>; + qcom,qmp-phy-reg-offset = <0x988 0x98c 0x990 0x994 + 0x974 0x8d8 0x8dc 0x804 0x800 + 0x808>; + vdd-supply = <&pm8953_l3>; + vdda18-supply = <&pm8953_l7>; + qcom,vdd-voltage-level = <0 925000 925000>; + qcom,vbus-valid-override; + + clocks = <&clock_gcc clk_gcc_usb3_aux_clk>, + <&clock_gcc clk_gcc_usb3_pipe_clk>, + <&clock_gcc clk_gcc_usb_phy_cfg_ahb_clk>, + <&clock_gcc clk_gcc_usb3_phy_reset>, + <&clock_gcc clk_gcc_usb3phy_phy_reset>, + <&clock_gcc clk_bb_clk1>, + <&clock_gcc clk_gcc_usb_ss_ref_clk>; + + clock-names = "aux_clk", "pipe_clk", "cfg_ahb_clk", "phy_reset", + "phy_phy_reset", "ref_clk_src", "ref_clk"; + + }; + + usb_audio_qmi_dev { + compatible = "qcom,usb-audio-qmi-dev"; + qcom,usb-audio-intr-num = <2>; + }; + + dbm_1p5: dbm@70f8000 { + compatible = "qcom,usb-dbm-1p5"; + reg = <0x070f8000 0x300>; + qcom,reset-ep-after-lpm-resume; + }; + + android_usb@86000c8 { + compatible = "qcom,android-usb"; + reg = <0x086000c8 0xc8>; + qcom,pm-qos-latency = <2 213 11028>; + }; +}; + +#include "msm-pm8953-rpm-regulator.dtsi" +#include "msm-pm8953.dtsi" +#include "msm8953-regulator.dtsi" +#include "msm-pmi8940.dtsi" +#include "msm-audio.dtsi" +#include "msm8953-audio_rosy.dtsi" +#include "msm-gdsc-8916.dtsi" +#include "msm8953-camera.dtsi" +#include "msm8953-mdss.dtsi" +#include "msm8953-mdss-pll.dtsi" + +&gdsc_venus { + clock-names = "bus_clk", "core_clk"; + clocks = <&clock_gcc clk_gcc_venus0_axi_clk>, + <&clock_gcc clk_gcc_venus0_vcodec0_clk>; + status = "okay"; +}; + +&gdsc_venus_core0 { + qcom,support-hw-trigger; + clock-names ="core0_clk"; + clocks = <&clock_gcc clk_gcc_venus0_core0_vcodec0_clk>; + status = "okay"; +}; + +&gdsc_mdss { + clock-names = "core_clk", "bus_clk"; + clocks = <&clock_gcc clk_gcc_mdss_mdp_clk>, + <&clock_gcc clk_gcc_mdss_axi_clk>; + proxy-supply = <&gdsc_mdss>; + qcom,proxy-consumer-enable; + status = "okay"; +}; + +&gdsc_oxili_gx { + clock-names = "core_root_clk"; + clocks =<&clock_gcc_gfx clk_gfx3d_clk_src>; + qcom,force-enable-root-clk; + parent-supply = <&gfx_vreg_corner>; + status = "okay"; +}; + +&gdsc_jpeg { + clock-names = "core_clk", "bus_clk"; + clocks = <&clock_gcc clk_gcc_camss_jpeg0_clk>, + <&clock_gcc clk_gcc_camss_jpeg_axi_clk>; + status = "okay"; +}; + +&gdsc_vfe { + clock-names = "core_clk", "bus_clk", "micro_clk", + "csi_clk"; + clocks = <&clock_gcc clk_gcc_camss_vfe0_clk>, + <&clock_gcc clk_gcc_camss_vfe_axi_clk>, + <&clock_gcc clk_gcc_camss_micro_ahb_clk>, + <&clock_gcc clk_gcc_camss_csi_vfe0_clk>; + status = "okay"; +}; + +&gdsc_vfe1 { + clock-names = "core_clk", "bus_clk", "micro_clk", + "csi_clk"; + clocks = <&clock_gcc clk_gcc_camss_vfe1_clk>, + <&clock_gcc clk_gcc_camss_vfe1_axi_clk>, + <&clock_gcc clk_gcc_camss_micro_ahb_clk>, + <&clock_gcc clk_gcc_camss_csi_vfe1_clk>; + status = "okay"; +}; + +&gdsc_cpp { + clock-names = "core_clk", "bus_clk"; + clocks = <&clock_gcc clk_gcc_camss_cpp_clk>, + <&clock_gcc clk_gcc_camss_cpp_axi_clk>; + status = "okay"; +}; + +&gdsc_oxili_cx { + clock-names = "core_clk"; + clocks = <&clock_gcc_gfx clk_gcc_oxili_gfx3d_clk>; + status = "okay"; +}; + +&gdsc_usb30 { + status = "okay"; +}; + +&pm8953_mpps { + mpp@a100 { + /* MPP2 - PA_THERM config */ + qcom,mode = <4>; /* AIN input */ + qcom,invert = <1>; /* Enable MPP */ + qcom,ain-route = <1>; /* AMUX 6 */ + qcom,master-en = <1>; + qcom,src-sel = <0>; /* Function constant */ + }; + + mpp@a300 { + /* MPP4 - CASE_THERM config */ + qcom,mode = <4>; /* AIN input */ + qcom,invert = <1>; /* Enable MPP */ + qcom,ain-route = <3>; /* AMUX 8 */ + qcom,master-en = <1>; + qcom,src-sel = <0>; /* Function constant */ + }; +}; + +&pm8953_vadc { + chan@5 { + label = "vcoin"; + reg = <5>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@7 { + label = "vph_pwr"; + reg = <7>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@36 { + label = "pa_therm0"; + reg = <0x36>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + }; + + chan@11 { + label = "pa_therm1"; + reg = <0x11>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,vadc-thermal-node; + }; + + chan@32 { + label = "xo_therm"; + reg = <0x32>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <4>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,vadc-thermal-node; + }; + + chan@3c { + label = "xo_therm_buf"; + reg = <0x3c>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <4>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,vadc-thermal-node; + }; + + chan@13 { + label = "case_therm"; + reg = <0x13>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,vadc-thermal-node; + }; +}; + +&pm8953_adc_tm { + chan@36 { + label = "pa_therm0"; + reg = <0x36>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "ratiometric"; + qcom,scale-function = <2>; + qcom,hw-settle-time = <2>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x48>; + qcom,thermal-node; + }; + + chan@7 { + label = "vph_pwr"; + reg = <0x7>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <1>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + qcom,btm-channel-number = <0x68>; + }; +}; diff --git a/arch/arm/boot/dts/qcom/sdm450-qrd_rosy.dts b/arch/arm/boot/dts/qcom/sdm450-qrd_rosy.dts new file mode 100644 index 0000000000000..163d7b1e86a03 --- /dev/null +++ b/arch/arm/boot/dts/qcom/sdm450-qrd_rosy.dts @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2017, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/dts-v1/; + +#include "sdm450_rosy.dtsi" +#include "msm8953-qrd-sku3_rosy.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. SDM450 QRD"; + compatible = "qcom,sdm450-qrd", "qcom,sdm450", "qcom,qrd"; + qcom,board-id = <11 1>; +}; diff --git a/arch/arm/boot/dts/qcom/sdm450_rosy.dtsi b/arch/arm/boot/dts/qcom/sdm450_rosy.dtsi new file mode 100644 index 0000000000000..8be543d238321 --- /dev/null +++ b/arch/arm/boot/dts/qcom/sdm450_rosy.dtsi @@ -0,0 +1,120 @@ +/* + * Copyright (c) 2017, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "skeleton64.dtsi" +#include "msm8953_rosy.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. SDM450"; + compatible = "qcom,sdm450"; + qcom,msm-id = <338 0x0>; + interrupt-parent = <&intc>; + + soc: soc { }; +}; + +&clock_gcc_gfx { + compatible = "qcom,gcc-gfx-sdm450"; + qcom,gfxfreq-corner = + < 0 0 >, + < 133330000 1 >, /* Min SVS */ + < 216000000 2 >, /* Low SVS */ + < 320000000 3 >, /* SVS */ + < 400000000 4 >, /* SVS Plus */ + < 510000000 5 >, /* NOM */ + < 560000000 6 >, /* Nom Plus */ + < 600000000 7 >; /* Turbo */ +}; + +/* GPU Overrides*/ +&msm_gpu { + + /delete-node/qcom,gpu-pwrlevels; + + qcom,gpu-pwrlevels { + #address-cells = <1>; + #size-cells = <0>; + + compatible = "qcom,gpu-pwrlevels"; + + /* TURBO */ + qcom,gpu-pwrlevel@0 { + reg = <0>; + qcom,gpu-freq = <600000000>; + qcom,bus-freq = <10>; + qcom,bus-min = <10>; + qcom,bus-max = <10>; + }; + + /* NOM+ */ + qcom,gpu-pwrlevel@1 { + reg = <1>; + qcom,gpu-freq = <560000000>; + qcom,bus-freq = <10>; + qcom,bus-min = <8>; + qcom,bus-max = <10>; + }; + + /* NOM */ + qcom,gpu-pwrlevel@2 { + reg = <2>; + qcom,gpu-freq = <510000000>; + qcom,bus-freq = <9>; + qcom,bus-min = <6>; + qcom,bus-max = <10>; + }; + + /* SVS+ */ + qcom,gpu-pwrlevel@3 { + reg = <3>; + qcom,gpu-freq = <400000000>; + qcom,bus-freq = <7>; + qcom,bus-min = <5>; + qcom,bus-max = <8>; + }; + + /* SVS */ + qcom,gpu-pwrlevel@4 { + reg = <4>; + qcom,gpu-freq = <320000000>; + qcom,bus-freq = <4>; + qcom,bus-min = <2>; + qcom,bus-max = <6>; + }; + + /* Low SVS */ + qcom,gpu-pwrlevel@5 { + reg = <5>; + qcom,gpu-freq = <216000000>; + qcom,bus-freq = <1>; + qcom,bus-min = <1>; + qcom,bus-max = <4>; + }; + + /* Min SVS */ + qcom,gpu-pwrlevel@6 { + reg = <6>; + qcom,gpu-freq = <133300000>; + qcom,bus-freq = <1>; + qcom,bus-min = <1>; + qcom,bus-max = <4>; + }; + /* XO */ + qcom,gpu-pwrlevel@7 { + reg = <7>; + qcom,gpu-freq = <19200000>; + qcom,bus-freq = <0>; + qcom,bus-min = <0>; + }; + }; +}; diff --git a/arch/arm/mach-nspire/Makefile.boot b/arch/arm/mach-nspire/Makefile.boot deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index 26a5e8aab8202..737117b5d6af0 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -98,31 +98,31 @@ config MMU def_bool y config ARCH_MMAP_RND_BITS_MIN - default 14 if ARM64_64K_PAGES - default 16 if ARM64_16K_PAGES - default 18 + default 14 if ARM64_64K_PAGES + default 16 if ARM64_16K_PAGES + default 18 # max bits determined by the following formula: # VA_BITS - PAGE_SHIFT - 3 config ARCH_MMAP_RND_BITS_MAX - default 19 if ARM64_VA_BITS=36 - default 24 if ARM64_VA_BITS=39 - default 27 if ARM64_VA_BITS=42 - default 30 if ARM64_VA_BITS=47 - default 29 if ARM64_VA_BITS=48 && ARM64_64K_PAGES - default 31 if ARM64_VA_BITS=48 && ARM64_16K_PAGES - default 33 if ARM64_VA_BITS=48 - default 14 if ARM64_64K_PAGES - default 16 if ARM64_16K_PAGES - default 18 + default 19 if ARM64_VA_BITS=36 + default 24 if ARM64_VA_BITS=39 + default 27 if ARM64_VA_BITS=42 + default 30 if ARM64_VA_BITS=47 + default 29 if ARM64_VA_BITS=48 && ARM64_64K_PAGES + default 31 if ARM64_VA_BITS=48 && ARM64_16K_PAGES + default 33 if ARM64_VA_BITS=48 + default 14 if ARM64_64K_PAGES + default 16 if ARM64_16K_PAGES + default 18 config ARCH_MMAP_RND_COMPAT_BITS_MIN - default 7 if ARM64_64K_PAGES - default 9 if ARM64_16K_PAGES - default 11 + default 7 if ARM64_64K_PAGES + default 9 if ARM64_16K_PAGES + default 11 config ARCH_MMAP_RND_COMPAT_BITS_MAX - default 16 + default 16 config NO_IOPORT_MAP def_bool y if !PCI @@ -155,7 +155,7 @@ config GENERIC_HWEIGHT def_bool y config GENERIC_CSUM - def_bool y + def_bool y config GENERIC_CALIBRATE_DELAY def_bool y @@ -624,9 +624,9 @@ config ARM64_PGTABLE_LEVELS default 4 if ARM64_4K_PAGES && ARM64_VA_BITS_48 config CPU_BIG_ENDIAN - bool "Build big-endian kernel" - help - Say Y if you plan on running a kernel in big-endian mode. + bool "Build big-endian kernel" + help + Say Y if you plan on running a kernel in big-endian mode. config ARM64_SEV_IN_LOCK_UNLOCK bool "Add explicit SEV in the spinlock unlock code path" @@ -700,14 +700,14 @@ config HOTPLUG_CPU # a multiplatform kernel, we just want the highest value required by the # selected platforms. config ARCH_NR_GPIO - int - default 1024 if ARCH_TEGRA - default 1024 if ARCH_MSM - default 256 - help - Maximum number of GPIOs in the system. + int + default 1024 if ARCH_TEGRA + default 1024 if ARCH_MSM + default 256 + help + Maximum number of GPIOs in the system. - If unsure, leave the default value. + If unsure, leave the default value. source kernel/Kconfig.preempt @@ -782,6 +782,13 @@ config HAVE_ARCH_TRANSPARENT_HUGEPAGE config ARCH_HAS_CACHE_LINE_SIZE def_bool y +config BOOT_INFO + bool "Boot information from bootloader" + default y + help + On embedded linux device, we try to collect more information from + bootloader to kernel. eg. powerup reason. + source "mm/Kconfig" config SECCOMP @@ -949,7 +956,7 @@ config EFI help This option provides support for runtime services provided by UEFI firmware (such as non-volatile variables, realtime - clock, and platform reset). A UEFI stub is also provided to + clock, and platform reset). A UEFI stub is also provided to allow the kernel to be booted as an EFI application. This is only useful on systems that have UEFI firmware. diff --git a/arch/arm64/configs/S88503AC1-perf_defconfig b/arch/arm64/configs/S88503AC1-perf_defconfig new file mode 100644 index 0000000000000..b8928d39a9525 --- /dev/null +++ b/arch/arm64/configs/S88503AC1-perf_defconfig @@ -0,0 +1,731 @@ +CONFIG_LOCALVERSION="-perf" +CONFIG_AUDIT=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_RCU_FAST_NO_HZ=y +CONFIG_RCU_BOOST=y +CONFIG_RCU_NOCB_CPU=y +CONFIG_RCU_NOCB_CPU_ALL=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=n +CONFIG_CGROUPS=y +CONFIG_CGROUP_FREEZER=y +CONFIG_CGROUP_CPUACCT=y +CONFIG_RESOURCE_COUNTERS=y +CONFIG_CGROUP_SCHED=y +CONFIG_RT_GROUP_SCHED=y +CONFIG_SCHED_HMP=y +CONFIG_SCHED_CORE_CTL=y +CONFIG_SCHED_QHMP=y +CONFIG_C3N_SMB358=y +CONFIG_NAMESPACES=y +CONFIG_LEDS_AW2013=y +CONFIG_LEDS_GPIO=y +CONFIG_VIB_GPIO=y +# CONFIG_UTS_NS is not set +# CONFIG_PID_NS is not set +CONFIG_CIFS=y +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="iso8859-1" +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_CODEPAGE_936=y +CONFIG_NLS_CODEPAGE_950=y +CONFIG_NLS_ASCII=y +CONFIG_NLS_ISO8859_1=y +CONFIG_NLS_UTF8=y +# CONFIG_CIFS_STATS is not set +CONFIG_CIFS_WEAK_PW_HASH=y +CONFIG_CIFS_UPCALL=y +CONFIG_CIFS_XATTR=y +CONFIG_CIFS_POSIX=y +# CONFIG_CIFS_DEBUG2 is not set +CONFIG_CIFS_DFS_UPCALL=y +CONFIG_CIFS_ACL=y +CONFIG_CIFS_EXPERIMENTAL=y +CONFIG_SMB_FS=m +CONFIG_SMB_NLS_DEFAULT=y +CONFIG_SMB_NLS_REMOTE="cp850" +CONFIG_BLK_DEV_INITRD=y +CONFIG_RD_BZIP2=y +CONFIG_RD_LZMA=y +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_KALLSYMS_ALL=y +CONFIG_EMBEDDED=y +# CONFIG_SLUB_DEBUG is not set +CONFIG_PROFILING=y +CONFIG_CC_STACKPROTECTOR_STRONG=y +CONFIG_ARCH_MMAP_RND_COMPAT_BITS=16 +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODULE_FORCE_UNLOAD=y +CONFIG_MODVERSIONS=y +CONFIG_MODULE_SIG=y +CONFIG_MODULE_SIG_FORCE=y +CONFIG_MODULE_SIG_SHA512=y +CONFIG_PARTITION_ADVANCED=y +CONFIG_ARCH_MSM=y +CONFIG_ARCH_MSM8916=y +CONFIG_ARCH_MSM8917=y +CONFIG_ARCH_MSM8920=y +CONFIG_ARCH_MSM8940=y +CONFIG_ARCH_MSM8953=y +CONFIG_ARCH_MSM8937=y +CONFIG_ARCH_MSMCOBALT=y +CONFIG_PCI_MSM=y +CONFIG_SMP=y +CONFIG_SCHED_MC=y +CONFIG_PREEMPT=y +CONFIG_CLEANCACHE=y +CONFIG_CMA=y +CONFIG_CMA_DEBUGFS=y +CONFIG_ZSMALLOC=y +CONFIG_RTMM=y +CONFIG_ZCACHE=y +CONFIG_PROCESS_RECLAIM=y +CONFIG_SECCOMP=y +CONFIG_ARMV8_DEPRECATED=y +CONFIG_SWP_EMULATION=y +CONFIG_CP15_BARRIER_EMULATION=y +CONFIG_SETEND_EMULATION=y +CONFIG_BUILD_ARM64_APPENDED_DTB_IMAGE=y +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +CONFIG_COMPAT=y +CONFIG_PM_AUTOSLEEP=y +CONFIG_PM_WAKELOCKS=y +CONFIG_PM_WAKELOCKS_LIMIT=0 +# CONFIG_PM_WAKELOCKS_GC is not set +CONFIG_PM_RUNTIME=y +CONFIG_PM_DEBUG=y +CONFIG_SUSPEND_TIME=y +CONFIG_CPU_IDLE=y +CONFIG_CPU_FREQ=y +CONFIG_SCHED_FREQ_INPUT=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_INTERACTIVE=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_XFRM_USER=y +CONFIG_XFRM_STATISTICS=y +CONFIG_NET_KEY=y +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_IP_MULTIPLE_TABLES=y +CONFIG_IP_ROUTE_VERBOSE=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_INET_AH=y +CONFIG_INET_ESP=y +CONFIG_INET_IPCOMP=y +# CONFIG_INET_XFRM_MODE_BEET is not set +# CONFIG_INET_LRO is not set +CONFIG_INET_DIAG_DESTROY=y +CONFIG_IPV6=y +CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_ROUTE_INFO=y +CONFIG_IPV6_OPTIMISTIC_DAD=y +CONFIG_INET6_AH=y +CONFIG_INET6_ESP=y +CONFIG_INET6_IPCOMP=y +CONFIG_IPV6_MIP6=y +CONFIG_IPV6_MULTIPLE_TABLES=y +CONFIG_IPV6_SUBTREES=y +CONFIG_NETFILTER=y +CONFIG_NF_CONNTRACK=y +CONFIG_NF_CONNTRACK_SECMARK=y +CONFIG_NF_CONNTRACK_EVENTS=y +CONFIG_NF_CT_PROTO_DCCP=y +CONFIG_NF_CT_PROTO_SCTP=y +CONFIG_NF_CT_PROTO_UDPLITE=y +CONFIG_NF_CONNTRACK_AMANDA=y +CONFIG_NF_CONNTRACK_FTP=y +CONFIG_NF_CONNTRACK_H323=y +CONFIG_NF_CONNTRACK_IRC=y +CONFIG_NF_CONNTRACK_NETBIOS_NS=y +CONFIG_NF_CONNTRACK_PPTP=y +CONFIG_NF_CONNTRACK_SANE=y +CONFIG_NF_CONNTRACK_TFTP=y +CONFIG_NF_CT_NETLINK=y +CONFIG_NETFILTER_XT_TARGET_CLASSIFY=y +CONFIG_NETFILTER_XT_TARGET_CONNMARK=y +CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=y +CONFIG_NETFILTER_XT_TARGET_IDLETIMER=y +CONFIG_NETFILTER_XT_TARGET_HARDIDLETIMER=y +CONFIG_NETFILTER_XT_TARGET_LOG=y +CONFIG_NETFILTER_XT_TARGET_MARK=y +CONFIG_NETFILTER_XT_TARGET_NFLOG=y +CONFIG_NETFILTER_XT_TARGET_NFQUEUE=y +CONFIG_NETFILTER_XT_TARGET_NOTRACK=y +CONFIG_NETFILTER_XT_TARGET_TEE=y +CONFIG_NETFILTER_XT_TARGET_TPROXY=y +CONFIG_NETFILTER_XT_TARGET_TRACE=y +CONFIG_NETFILTER_XT_TARGET_SECMARK=y +CONFIG_NETFILTER_XT_TARGET_TCPMSS=y +CONFIG_NETFILTER_XT_MATCH_COMMENT=y +CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=y +CONFIG_NETFILTER_XT_MATCH_CONNMARK=y +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y +CONFIG_NETFILTER_XT_MATCH_DSCP=y +CONFIG_NETFILTER_XT_MATCH_ESP=y +CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=y +CONFIG_NETFILTER_XT_MATCH_HELPER=y +CONFIG_NETFILTER_XT_MATCH_IPRANGE=y +CONFIG_NETFILTER_XT_MATCH_LENGTH=y +CONFIG_NETFILTER_XT_MATCH_LIMIT=y +CONFIG_NETFILTER_XT_MATCH_MAC=y +CONFIG_NETFILTER_XT_MATCH_MARK=y +CONFIG_NETFILTER_XT_MATCH_MULTIPORT=y +CONFIG_NETFILTER_XT_MATCH_POLICY=y +CONFIG_NETFILTER_XT_MATCH_PKTTYPE=y +CONFIG_NETFILTER_XT_MATCH_QTAGUID=y +CONFIG_NETFILTER_XT_MATCH_QUOTA=y +CONFIG_NETFILTER_XT_MATCH_QUOTA2=y +CONFIG_NETFILTER_XT_MATCH_SOCKET=y +CONFIG_NETFILTER_XT_MATCH_STATE=y +CONFIG_NETFILTER_XT_MATCH_STATISTIC=y +CONFIG_NETFILTER_XT_MATCH_STRING=y +CONFIG_NETFILTER_XT_MATCH_TIME=y +CONFIG_NETFILTER_XT_MATCH_U32=y +CONFIG_NF_CONNTRACK_IPV4=y +CONFIG_IP_NF_IPTABLES=y +CONFIG_IP_NF_MATCH_AH=y +CONFIG_IP_NF_MATCH_ECN=y +CONFIG_IP_NF_MATCH_RPFILTER=y +CONFIG_IP_NF_MATCH_TTL=y +CONFIG_IP_NF_FILTER=y +CONFIG_IP_NF_TARGET_REJECT=y +CONFIG_IP_NF_NAT=y +CONFIG_IP_NF_TARGET_MASQUERADE=y +CONFIG_IP_NF_TARGET_NATTYPE_MODULE=y +CONFIG_IP_NF_TARGET_NETMAP=y +CONFIG_IP_NF_TARGET_REDIRECT=y +CONFIG_IP_NF_MANGLE=y +CONFIG_IP_NF_RAW=y +CONFIG_IP_NF_SECURITY=y +CONFIG_IP_NF_ARPTABLES=y +CONFIG_IP_NF_ARPFILTER=y +CONFIG_IP_NF_ARP_MANGLE=y +CONFIG_NF_CONNTRACK_IPV6=y +CONFIG_IP6_NF_IPTABLES=y +CONFIG_IP6_NF_MATCH_RPFILTER=y +CONFIG_IP6_NF_FILTER=y +CONFIG_IP6_NF_TARGET_REJECT=y +CONFIG_IP6_NF_MANGLE=y +CONFIG_IP6_NF_RAW=y +CONFIG_BRIDGE_NF_EBTABLES=y +CONFIG_BRIDGE_EBT_BROUTE=y +CONFIG_L2TP=y +CONFIG_L2TP_DEBUGFS=y +CONFIG_L2TP_V3=y +CONFIG_L2TP_IP=y +CONFIG_L2TP_ETH=y +CONFIG_BRIDGE=y +CONFIG_NET_SCHED=y +CONFIG_NET_SCH_HTB=y +CONFIG_NET_SCH_PRIO=y +CONFIG_NET_CLS_FW=y +CONFIG_NET_CLS_U32=y +CONFIG_CLS_U32_MARK=y +CONFIG_NET_CLS_FLOW=y +CONFIG_NET_EMATCH=y +CONFIG_NET_EMATCH_CMP=y +CONFIG_NET_EMATCH_NBYTE=y +CONFIG_NET_EMATCH_U32=y +CONFIG_NET_EMATCH_META=y +CONFIG_NET_EMATCH_TEXT=y +CONFIG_NET_CLS_ACT=y +CONFIG_RMNET_DATA=y +CONFIG_RMNET_DATA_FC=y +CONFIG_RMNET_DATA_DEBUG_PKT=n +CONFIG_SOCKEV_NLMCAST=y +CONFIG_BT=y +CONFIG_BT_RFCOMM=y +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=y +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_HIDP=y +CONFIG_MSM_BT_POWER=y +CONFIG_CFG80211=y +CONFIG_CFG80211_INTERNAL_REGDB=y +CONFIG_RFKILL=y +CONFIG_NFC_NQ=n +CONFIG_IPC_ROUTER=y +CONFIG_IPC_ROUTER_SECURITY=y +CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y +CONFIG_DMA_CMA=y +CONFIG_ZRAM=y +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_SIZE=8192 +CONFIG_UID_STAT=y +CONFIG_QSEECOM=y +CONFIG_HDCP_QSEECOM=y +CONFIG_UID_CPUTIME=y +CONFIG_USB_EXT_TYPE_C_PERICOM=n +CONFIG_MSM_ULTRASOUND=y +CONFIG_SCSI=y +CONFIG_BLK_DEV_SD=y +CONFIG_CHR_DEV_SG=y +CONFIG_CHR_DEV_SCH=y +CONFIG_SCSI_CONSTANTS=y +CONFIG_SCSI_LOGGING=y +CONFIG_SCSI_SCAN_ASYNC=y +CONFIG_SCSI_UFSHCD=y +CONFIG_SCSI_UFSHCD_PLATFORM=y +CONFIG_SCSI_UFS_QCOM=y +CONFIG_SCSI_UFS_QCOM_ICE=y +CONFIG_MD=y +CONFIG_BLK_DEV_DM=y +CONFIG_DM_CRYPT=y +CONFIG_DM_REQ_CRYPT=y +CONFIG_DM_VERITY=y +CONFIG_DM_VERITY_FEC=y +CONFIG_NETDEVICES=y +CONFIG_DUMMY=y +CONFIG_TUN=y +CONFIG_RNDIS_IPA=y +CONFIG_MSM_RMNET_BAM=y +CONFIG_PPP=y +CONFIG_PPP_BSDCOMP=y +CONFIG_PPP_DEFLATE=y +CONFIG_PPP_FILTER=y +CONFIG_PPP_MPPE=y +CONFIG_PPP_MULTILINK=y +CONFIG_PPPOE=y +CONFIG_PPPOL2TP=y +CONFIG_PPPOLAC=y +CONFIG_PPPOPNS=y +CONFIG_PPP_ASYNC=y +CONFIG_PPP_SYNC_TTY=y +CONFIG_USB_USBNET=y +CONFIG_WCNSS_CORE=y +CONFIG_WCNSS_CORE_PRONTO=y +CONFIG_WCNSS_REGISTER_DUMP_ON_BITE=y +CONFIG_WCNSS_MEM_PRE_ALLOC=y +CONFIG_CNSS_CRYPTO=y +CONFIG_ATH_CARDS=y +CONFIG_WIL6210=m +CONFIG_CNSS=y +CONFIG_CLD_LL_CORE=y +CONFIG_BUS_AUTO_SUSPEND=y +CONFIG_INPUT_EVDEV=y +CONFIG_INPUT_EVBUG=m +CONFIG_INPUT_KEYRESET=y +CONFIG_KEYBOARD_GPIO=y +# CONFIG_INPUT_MOUSE is not set +CONFIG_INPUT_JOYSTICK=y +CONFIG_JOYSTICK_XPAD=y +CONFIG_INPUT_TABLET=y +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_CORE_v21=y +CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_RMI_DEV_v21=y +CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_FW_UPDATE_v21=y +CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_CORE_v26=y +CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_RMI_DEV_v26=y +CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_FW_UPDATE_v26=y +CONFIG_TOUCHSCREEN_LOCKDOWN_INFO=y +CONFIG_TOUCHSCREEN_ATMEL_MXT=y +CONFIG_TOUCHSCREEN_GEN_VKEYS=y +CONFIG_TOUCHSCREEN_FT5346=y +CONFIG_TOUCHSCREEN_GT915L=y +CONFIG_FT_SECURE_TOUCH=y +CONFIG_TOUCHSCREEN_MAXIM_STI=y +CONFIG_INPUT_MISC=y +CONFIG_INPUT_HBTP_INPUT=n +CONFIG_INPUT_KEYCHORD=y +CONFIG_INPUT_UINPUT=y +CONFIG_INPUT_GPIO=y +# CONFIG_VT is not set +# CONFIG_LEGACY_PTYS is not set +# CONFIG_DEVMEM is not set +# CONFIG_DEVKMEM is not set +CONFIG_SERIAL_MSM_HS=n +CONFIG_SERIAL_MSM_HSL=n +CONFIG_SERIAL_MSM_HSL_CONSOLE=n +CONFIG_SERIAL_MSM_SMD=y +CONFIG_DIAG_CHAR=y +CONFIG_HW_RANDOM=y +CONFIG_HW_RANDOM_MSM_LEGACY=y +CONFIG_MSM_SMD_PKT=y +CONFIG_MSM_ADSPRPC=y +CONFIG_MSM_RDBG=m +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_MSM_V2=y +CONFIG_SLIMBUS=y +CONFIG_SLIMBUS_MSM_NGD=y +CONFIG_SOUNDWIRE=y +CONFIG_SPI=y +CONFIG_SPI_QUP=y +CONFIG_SPI_SPIDEV=m +CONFIG_PINCTRL_MSM8952=y +CONFIG_PINCTRL_MSM8937=y +CONFIG_PINCTRL_MSMCOBALT=y +CONFIG_PINCTRL_MSM8917=y +CONFIG_PINCTRL_MSM8940=y +CONFIG_PINCTRL_MSM8953=y +CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_QPNP_PIN=y +CONFIG_SMB1351_USB_CHARGER=n +CONFIG_SMB135X_CHARGER=n +CONFIG_QPNP_SMBCHARGER=n +CONFIG_QPNP_FG=n +#CONFIG_BATTERY_BCL=y +#CONFIG_MSM_BCL_CTL=y +#CONFIG_MSM_BCL_PERIPHERAL_CTL=y +CONFIG_SMB358_CHARGER=y +CONFIG_BATTERY_CW2015=y +CONFIG_POWER_RESET_MSM=y +CONFIG_MSM_DLOAD_MODE=y +CONFIG_MSM_PM=y +CONFIG_MSM_APM=y +CONFIG_SENSORS_EPM_ADC=y +CONFIG_SENSORS_QPNP_ADC_VOLTAGE=y +CONFIG_SENSORS_QPNP_ADC_CURRENT=y +CONFIG_THERMAL=y +CONFIG_THERMAL_TSENS8974=y +CONFIG_LIMITS_MONITOR=y +CONFIG_LIMITS_LITE_HW=y +CONFIG_THERMAL_MONITOR=y +CONFIG_THERMAL_QPNP=y +CONFIG_THERMAL_QPNP_ADC_TM=y +CONFIG_WCD9335_CODEC=y +CONFIG_REGULATOR=y +CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_REGULATOR_STUB=y +CONFIG_REGULATOR_FAN53555=y +CONFIG_REGULATOR_MEM_ACC=y +CONFIG_REGULATOR_RPM_SMD=y +CONFIG_REGULATOR_QPNP=y +CONFIG_REGULATOR_QPNP_LABIBB=y +CONFIG_REGULATOR_SPM=y +CONFIG_REGULATOR_CPR=y +CONFIG_REGULATOR_CPR3_HMSS=y +CONFIG_REGULATOR_CPR3_MMSS=y +CONFIG_REGULATOR_KRYO=y +CONFIG_MEDIA_SUPPORT=y +CONFIG_MEDIA_CAMERA_SUPPORT=y +CONFIG_MEDIA_RADIO_SUPPORT=y +CONFIG_MEDIA_CONTROLLER=y +CONFIG_VIDEO_V4L2_SUBDEV_API=y +CONFIG_V4L_PLATFORM_DRIVERS=y +CONFIG_SOC_CAMERA=y +CONFIG_SOC_CAMERA_PLATFORM=y +CONFIG_MSM_VIDC_V4L2=y +CONFIG_MSM_VIDC_VMEM=y +CONFIG_MSM_VIDC_GOVERNORS=y +CONFIG_MSM_CAMERA=y +CONFIG_MSMB_CAMERA=y +CONFIG_MSM_CAMERA_SENSOR=y +CONFIG_MSM_CPP=y +CONFIG_MSM_CCI=y +CONFIG_MSM_CSI20_HEADER=y +CONFIG_MSM_CSI22_HEADER=y +CONFIG_MSM_CSI30_HEADER=y +CONFIG_MSM_CSI31_HEADER=y +CONFIG_MSM_CSIPHY=y +CONFIG_MSM_CSID=y +CONFIG_MSM_EEPROM=y +CONFIG_MSM_ISPIF=y +CONFIG_MSM_ISPIF_V2=y +CONFIG_IMX134=y +CONFIG_IMX132=y +CONFIG_OV9724=y +CONFIG_OV5648=y +CONFIG_GC0339=y +CONFIG_OV8825=y +CONFIG_OV8865=y +CONFIG_s5k4e1=y +CONFIG_OV12830=y +CONFIG_MSM_V4L2_VIDEO_OVERLAY_DEVICE=y +CONFIG_MSMB_JPEG=y +CONFIG_MSM_FD=y +CONFIG_RADIO_IRIS=y +CONFIG_RADIO_IRIS_TRANSPORT=y +CONFIG_RADIO_SILABS=y +CONFIG_MSM_KGSL=y +CONFIG_FB=y +CONFIG_FB_MSM=y +CONFIG_MSM_DBA=y +CONFIG_MSM_DBA_ADV7533=y +CONFIG_FB_MSM_MDSS=y +CONFIG_FB_MSM_MDSS_WRITEBACK=y +CONFIG_FB_MSM_MDSS_XLOG_DEBUG=y +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_SOUND=y +CONFIG_SND=y +CONFIG_SND_USB_AUDIO=y +CONFIG_SND_SOC=y +CONFIG_SND_SOC_MSM8X16=y +CONFIG_HIDRAW=y +CONFIG_UHID=y +CONFIG_HID_APPLE=y +CONFIG_HID_ELECOM=y +CONFIG_HID_MAGICMOUSE=y +CONFIG_HID_MICROSOFT=y +CONFIG_HID_MULTITOUCH=y +CONFIG_USB_HIDDEV=y +CONFIG_USB_ANNOUNCE_NEW_DEVICES=y +CONFIG_USB_MON=y +CONFIG_USB_XHCI_HCD=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_MSM=y +CONFIG_USB_EHCI_MSM_HSIC=y +CONFIG_USB_ACM=y +CONFIG_USB_STORAGE=y +CONFIG_USB_STORAGE_DATAFAB=y +CONFIG_USB_STORAGE_FREECOM=y +CONFIG_USB_STORAGE_ISD200=y +CONFIG_USB_STORAGE_USBAT=y +CONFIG_USB_STORAGE_SDDR09=y +CONFIG_USB_STORAGE_SDDR55=y +CONFIG_USB_STORAGE_JUMPSHOT=y +CONFIG_USB_STORAGE_ALAUDA=y +CONFIG_USB_STORAGE_KARMA=y +CONFIG_USB_STORAGE_CYPRESS_ATACB=y +CONFIG_USB_DWC3=y +CONFIG_USB_SERIAL=y +CONFIG_USB_EHSET_TEST_FIXTURE=y +CONFIG_NOP_USB_XCEIV=y +CONFIG_USB_MSM_HSPHY=y +CONFIG_USB_MSM_SSPHY_QMP=y +CONFIG_MSM_QUSB_PHY=y +CONFIG_DUAL_ROLE_USB_INTF=y +CONFIG_USB_GADGET=y +CONFIG_USB_GADGET_DEBUG_FILES=y +CONFIG_USB_GADGET_DEBUG_FS=y +CONFIG_USB_GADGET_VBUS_DRAW=500 +CONFIG_USB_CI13XXX_MSM=y +CONFIG_USB_G_ANDROID=y +CONFIG_MMC=y +CONFIG_MMC_PERF_PROFILING=n +CONFIG_MMC_CLKGATE=y +CONFIG_MMC_PARANOID_SD_INIT=y +CONFIG_MMC_BLOCK_MINORS=32 +CONFIG_MMC_BLOCK_DEFERRED_RESUME=y +CONFIG_MMC_TEST=m +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MMC_SDHCI_MSM=y +CONFIG_MMC_SDHCI_MSM_ICE=y +CONFIG_MMC_CQ_HCI=y +CONFIG_LEDS_QPNP=y +CONFIG_LEDS_QPNP_FLASH=y +CONFIG_LEDS_QPNP_WLED=y +CONFIG_LEDS_TRIGGERS=y +CONFIG_SWITCH=y +CONFIG_EDAC=y +CONFIG_EDAC_MM_EDAC=y +CONFIG_EDAC_CORTEX_ARM64=y +CONFIG_EDAC_CORTEX_ARM64_PANIC_ON_CE=y +CONFIG_EDAC_CORTEX_ARM64_PANIC_ON_UE=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_DRV_QPNP=y +CONFIG_DMADEVICES=y +CONFIG_QCOM_SPS_DMA=y +CONFIG_UIO=y +CONFIG_UIO_MSM_SHAREDMEM=y +CONFIG_STAGING=y +CONFIG_ANDROID=y +CONFIG_ANDROID_BINDER_IPC=y +CONFIG_ASHMEM=y +CONFIG_ANDROID_TIMED_GPIO=y +CONFIG_ANDROID_LOW_MEMORY_KILLER=y +CONFIG_SW_SYNC_USER=y +CONFIG_ION=y +CONFIG_ION_MSM=y +CONFIG_MSM_AVTIMER=y +CONFIG_MSM_BUS_SCALING=y +CONFIG_BUS_TOPOLOGY_ADHOC=y +CONFIG_QPNP_POWER_ON=y +CONFIG_QPNP_REVID=y +CONFIG_QPNP_COINCELL=y +CONFIG_SPS=y +CONFIG_USB_BAM=y +CONFIG_SPS_SUPPORT_NDP_BAM=y +CONFIG_IPA=y +CONFIG_RMNET_IPA=y +CONFIG_QPNP_HAPTIC=y +CONFIG_BW_MONITOR=y +CONFIG_MSM_SPMI=y +CONFIG_MSM_SPMI_PMIC_ARB=y +CONFIG_MSM_QPNP_INT=y +CONFIG_CP_ACCESS64=y +CONFIG_MSM_INRUSH_CURRENT_MITIGATION=y +CONFIG_MSM_ADSP_LOADER=y +CONFIG_MSM_MEMORY_DUMP_V2=y +CONFIG_MSM_BOOT_STATS=y +CONFIG_MSM_CPUSS_DUMP=y +CONFIG_MSM_COMMON_LOG=y +CONFIG_MSM_DDR_HEALTH=y +CONFIG_MSM_WATCHDOG_V2=y +CONFIG_MSM_FORCE_WDOG_BITE_ON_PANIC=y +CONFIG_MSM_RPM_SMD=y +CONFIG_MSM_RPM_RBCPR_STATS_V2_LOG=y +CONFIG_MSM_RPM_LOG=y +CONFIG_MSM_RPM_STATS_LOG=y +CONFIG_MSM_RUN_QUEUE_STATS=y +CONFIG_MSM_SCM=y +CONFIG_MSM_SCM_XPU=y +CONFIG_MSM_MPM_OF=y +CONFIG_MSM_SMEM=y +CONFIG_MSM_SMD=y +CONFIG_MSM_SMD_DEBUG=n +CONFIG_MSM_GLINK=y +CONFIG_MSM_GLINK_LOOPBACK_SERVER=y +CONFIG_MSM_GLINK_SMD_XPRT=y +CONFIG_MSM_GLINK_SMEM_NATIVE_XPRT=y +CONFIG_MSM_SMEM_LOGGING=y +CONFIG_MSM_SMP2P=y +CONFIG_MSM_SMP2P_TEST=y +CONFIG_MSM_SPM=y +CONFIG_MSM_L2_SPM=y +CONFIG_MSM_QMI_INTERFACE=y +CONFIG_MSM_IPC_ROUTER_SMD_XPRT=y +CONFIG_MSM_EVENT_TIMER=y +CONFIG_MSM_SUBSYSTEM_RESTART=y +CONFIG_MSM_SYSMON_COMM=y +CONFIG_MSM_PIL=y +CONFIG_MSM_PIL_SSR_GENERIC=y +CONFIG_MSM_PIL_MSS_QDSP6V5=y +CONFIG_MSM_BAM_DMUX=y +CONFIG_MSM_PERFORMANCE=y +# CONFIG_MSM_PERFORMANCE_HOTPLUG_ON is not set +CONFIG_MSM_KERNEL_PROTECT=y +CONFIG_MSM_KERNEL_PROTECT_MPU=y +CONFIG_MEM_SHARE_QMI_SERVICE=y +CONFIG_MSM_CLK_CONTROLLER_V2=y +CONFIG_MSM_MDSS_PLL=y +CONFIG_REMOTE_SPINLOCK_MSM=y +CONFIG_MSM_IOMMU_V1=y +CONFIG_ARM_SMMU=y +CONFIG_IOMMU_DEBUG=y +CONFIG_IOMMU_TESTS=y +CONFIG_SPDM_SCM=y +CONFIG_DEVFREQ_SPDM=y +CONFIG_PWM=y +CONFIG_PWM_QPNP=y +CONFIG_ARM_GIC_PANIC_HANDLER=y +CONFIG_CORESIGHT=n +CONFIG_CORESIGHT_EVENT=n +CONFIG_CORESIGHT_FUSE=n +CONFIG_CORESIGHT_CTI=n +CONFIG_CORESIGHT_CTI_SAVE_DISABLE=n +CONFIG_CORESIGHT_TMC=n +CONFIG_CORESIGHT_TPIU=n +CONFIG_CORESIGHT_FUNNEL=n +CONFIG_CORESIGHT_REPLICATOR=n +CONFIG_CORESIGHT_STM=n +CONFIG_CORESIGHT_HWEVENT=n +CONFIG_SENSORS_SSC=y +CONFIG_MSM_TZ_LOG=y +CONFIG_EXT2_FS=y +CONFIG_EXT2_FS_XATTR=y +CONFIG_EXT3_FS=y +# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set +CONFIG_EXT4_FS=y +CONFIG_EXT4_FS_SECURITY=y +CONFIG_QUOTA=y +# CONFIG_PRINT_QUOTA_WARNING is not set +CONFIG_FUSE_FS=y +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_ASCII=y +CONFIG_NLS_ISO8859_1=y +CONFIG_PRINTK_TIME=y +CONFIG_DEBUG_INFO=y +CONFIG_MAGIC_SYSRQ=y +CONFIG_PANIC_TIMEOUT=5 +CONFIG_PANIC_ON_RECURSIVE_FAULT=y +# CONFIG_SCHED_DEBUG is not set +CONFIG_SCHEDSTATS=y +CONFIG_TIMER_STATS=y +CONFIG_IPC_LOGGING=y +CONFIG_CPU_FREQ_SWITCH_PROFILER=y +CONFIG_DEBUG_SET_MODULE_RONX=y +CONFIG_DEBUG_RODATA=y +CONFIG_SECURITY=y +CONFIG_SECURITY_NETWORK=y +CONFIG_LSM_MMAP_MIN_ADDR=4096 +CONFIG_SECURITY_SELINUX=y +CONFIG_CRYPTO_NULL=y +CONFIG_CRYPTO_CTR=y +CONFIG_CRYPTO_XCBC=y +CONFIG_CRYPTO_MD4=y +CONFIG_CRYPTO_TWOFISH=y +CONFIG_CRYPTO_DEV_QCRYPTO=y +CONFIG_CRYPTO_DEV_QCOM_MSM_QCE=y +CONFIG_CRYPTO_DEV_QCEDEV=y +CONFIG_CRYPTO_DEV_OTA_CRYPTO=y +CONFIG_CRYPTO_DEV_QCOM_ICE=y +CONFIG_ARM64_CRYPTO=y +CONFIG_CRYPTO_SHA1_ARM64_CE=y +CONFIG_CRYPTO_SHA2_ARM64_CE=y +CONFIG_CRYPTO_GHASH_ARM64_CE=y +CONFIG_CRYPTO_AES_ARM64_CE=y +CONFIG_CRYPTO_AES_ARM64_CE_CCM=y +CONFIG_CRYPTO_AES_ARM64_CE_BLK=y +CONFIG_CRYPTO_AES_ARM64_NEON_BLK=y +CONFIG_QMI_ENCDEC=y +CONFIG_REGULATOR_TPS65132=y +CONFIG_SND_SOC_AW87319=y +CONFIG_SERIAL_NUM=y +CONFIG_SECBOOT_FUSE=y +CONFIG_PSTORE=y +CONFIG_PSTORE_CONSOLE=y +CONFIG_PSTORE_FTRACE=y +CONFIG_PSTORE_RAM=y +CONFIG_PSTORE_LAST_KMSG=y +CONFIG_CPUMAXFREQ=y +## MIUI ADD:START +## Multi userspace config support +CONFIG_ECRYPT_FS=y +CONFIG_KEYS=y +CONFIG_ENCRYPTED_KEYS=y +CONFIG_CRYPTO=y +CONFIG_CRYPTO_AES=y +CONFIG_CRYPTO_SHA1=y +CONFIG_CRYPTO_SHA256=y +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_GF128MUL=y +CONFIG_CRYPTO_SEQIV=y +CONFIG_CRYPTO_CTR=y +CONFIG_CRYPTO_XTS=y +CONFIG_NAMESPACES=y +#CONFIG_UTS_NS=y +#CONFIG_IPC_NS=y +## do not turn on user-namespaces as it enables +## CONFIG_UIDGID_STRICT_TYPE_CHECKS, which results in several compile +## errors +#CONFIG_USER_NS=y +#CONFIG_PID_NS=y +CONFIG_NET_NS=y +CONFIG_VETH=y +## END +CONFIG_DISABLE_TEMP_PROTECT=n +CONFIG_DIFFERENT_TP_COLOR=y +CONFIG_COLOFUL_RGB_FOR_PROJECT=y + +CONFIG_MSM_RTB=y +CONFIG_MSM_RTB_SEPARATE_CPUS=y + +ONFIG_ZRAM_DEBUG=y +CONFIG_SWAP=y +CONFIG_MEMCG=y +CONFIG_MEMCG_SWAP=y +CONFIG_ANDROID_WHETSTONE=y +CONFIG_CGROUP_MEM_RES_CTLR=y +CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y + +CONFIG_DUMP_ALL_STACKS=y +# CONFIG_FIRE_WATCHDOG is not set + +# sdcardfs +CONFIG_SDCARD_FS=y diff --git a/arch/arm64/configs/S88505AA1-perf_defconfig b/arch/arm64/configs/S88505AA1-perf_defconfig new file mode 100644 index 0000000000000..0db762863b3db --- /dev/null +++ b/arch/arm64/configs/S88505AA1-perf_defconfig @@ -0,0 +1,755 @@ +CONFIG_LOCALVERSION="-perf" +CONFIG_AUDIT=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_RCU_FAST_NO_HZ=y +CONFIG_RCU_BOOST=y +CONFIG_RCU_NOCB_CPU=y +CONFIG_RCU_NOCB_CPU_ALL=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=n +CONFIG_CGROUPS=y +CONFIG_CGROUP_FREEZER=y +CONFIG_CGROUP_CPUACCT=y +CONFIG_RESOURCE_COUNTERS=y +CONFIG_CGROUP_SCHED=y +CONFIG_CPUSETS=y +CONFIG_RT_GROUP_SCHED=y +CONFIG_SCHED_HMP=y +CONFIG_SCHED_CORE_CTL=y +CONFIG_C3B_BQ2560X=y +CONFIG_CHARGER_BQ2560=y +CONFIG_GAUGE_BQ27426=y +CONFIG_DISABLE_TEMP_PROTECT=n +CONFIG_SCHED_QHMP=y +CONFIG_NAMESPACES=y +CONFIG_LEDS_AW2013=y +CONFIG_LEDS_GPIO=y +CONFIG_VIB_GPIO=y +# CONFIG_UTS_NS is not set +# CONFIG_PID_NS is not set +CONFIG_CIFS=y +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="iso8859-1" +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_CODEPAGE_936=y +CONFIG_NLS_CODEPAGE_950=y +CONFIG_NLS_ASCII=y +CONFIG_NLS_ISO8859_1=y +CONFIG_NLS_UTF8=y +CONFIG_RTMM=y +# CONFIG_CIFS_STATS is not set +CONFIG_CIFS_WEAK_PW_HASH=y +CONFIG_CIFS_UPCALL=y +CONFIG_CIFS_XATTR=y +CONFIG_CIFS_POSIX=y +# CONFIG_CIFS_DEBUG2 is not set +CONFIG_CIFS_DFS_UPCALL=y +CONFIG_CIFS_ACL=y +CONFIG_CIFS_EXPERIMENTAL=y +CONFIG_SMB_FS=m +CONFIG_SMB_NLS_DEFAULT=y +CONFIG_SMB_NLS_REMOTE="cp850" +CONFIG_BLK_DEV_INITRD=y +CONFIG_RD_BZIP2=y +CONFIG_RD_LZMA=y +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_KALLSYMS_ALL=y +CONFIG_EMBEDDED=y +# CONFIG_SLUB_DEBUG is not set +CONFIG_PROFILING=y +CONFIG_CC_STACKPROTECTOR_STRONG=y +CONFIG_ARCH_MMAP_RND_COMPAT_BITS=16 +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODULE_FORCE_UNLOAD=y +CONFIG_MODVERSIONS=y +CONFIG_MODULE_SIG=y +CONFIG_MODULE_SIG_FORCE=y +CONFIG_MODULE_SIG_SHA512=y +CONFIG_PARTITION_ADVANCED=y +CONFIG_ARCH_MSM=y +CONFIG_ARCH_MSM8916=y +CONFIG_ARCH_MSM8917=y +CONFIG_ARCH_MSM8920=y +CONFIG_ARCH_MSM8940=y +CONFIG_ARCH_MSM8953=y +CONFIG_ARCH_MSM8937=y +CONFIG_ARCH_MSMCOBALT=y +CONFIG_PCI_MSM=y +CONFIG_SMP=y +CONFIG_SCHED_MC=y +CONFIG_PREEMPT=y +CONFIG_CLEANCACHE=y +CONFIG_CMA=y +CONFIG_CMA_DEBUGFS=y +CONFIG_ZSMALLOC=y +CONFIG_ZCACHE=y +CONFIG_PROCESS_RECLAIM=y +CONFIG_SECCOMP=y +CONFIG_ARMV8_DEPRECATED=y +CONFIG_SWP_EMULATION=y +CONFIG_CP15_BARRIER_EMULATION=y +CONFIG_SETEND_EMULATION=y +CONFIG_BUILD_ARM64_APPENDED_DTB_IMAGE=y +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +CONFIG_COMPAT=y +CONFIG_PM_AUTOSLEEP=y +CONFIG_PM_WAKELOCKS=y +CONFIG_PM_WAKELOCKS_LIMIT=0 +# CONFIG_PM_WAKELOCKS_GC is not set +CONFIG_PM_RUNTIME=y +CONFIG_PM_DEBUG=n +CONFIG_SUSPEND_TIME=y +CONFIG_SUSPEND_SKIP_SYNC=y +CONFIG_CPU_IDLE=y +CONFIG_CPU_FREQ=y +CONFIG_SCHED_FREQ_INPUT=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_INTERACTIVE=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_XFRM=y +CONFIG_XFRM_USER=y +CONFIG_XFRM_STATISTICS=y +CONFIG_NET_KEY=y +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_IP_MULTIPLE_TABLES=y +CONFIG_IP_ROUTE_VERBOSE=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_INET_AH=y +CONFIG_INET_ESP=y +CONFIG_INET_IPCOMP=y +CONFIG_INET_XFRM_TUNNEL=y +CONFIG_INET_XFRM_MODE_TRANSPORT=y +CONFIG_INET_XFRM_MODE_TUNNEL=y +CONFIG_INET_XFRM_MODE_BEET=y +# CONFIG_INET_LRO is not set +CONFIG_INET_DIAG_DESTROY=y +CONFIG_IPV6=y +CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_ROUTE_INFO=y +CONFIG_IPV6_OPTIMISTIC_DAD=y +CONFIG_INET6_AH=y +CONFIG_INET6_ESP=y +CONFIG_INET6_IPCOMP=y +CONFIG_IPV6_MIP6=y +CONFIG_IPV6_MULTIPLE_TABLES=y +CONFIG_IPV6_SUBTREES=y +CONFIG_NETFILTER=y +CONFIG_NF_CONNTRACK=y +CONFIG_NF_CONNTRACK_SECMARK=y +CONFIG_NF_CONNTRACK_EVENTS=y +CONFIG_NF_CT_PROTO_DCCP=y +CONFIG_NF_CT_PROTO_SCTP=y +CONFIG_NF_CT_PROTO_UDPLITE=y +CONFIG_NF_CONNTRACK_AMANDA=y +CONFIG_NF_CONNTRACK_FTP=y +CONFIG_NF_CONNTRACK_H323=y +CONFIG_NF_CONNTRACK_IRC=y +CONFIG_NF_CONNTRACK_NETBIOS_NS=y +CONFIG_NF_CONNTRACK_PPTP=y +CONFIG_NF_CONNTRACK_SANE=y +CONFIG_NF_CONNTRACK_TFTP=y +CONFIG_NF_CT_NETLINK=y +CONFIG_NETFILTER_XT_TARGET_CLASSIFY=y +CONFIG_NETFILTER_XT_TARGET_CONNMARK=y +CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=y +CONFIG_NETFILTER_XT_TARGET_IDLETIMER=y +CONFIG_NETFILTER_XT_TARGET_HARDIDLETIMER=y +CONFIG_NETFILTER_XT_TARGET_LOG=y +CONFIG_NETFILTER_XT_TARGET_MARK=y +CONFIG_NETFILTER_XT_TARGET_NFLOG=y +CONFIG_NETFILTER_XT_TARGET_NFQUEUE=y +CONFIG_NETFILTER_XT_TARGET_NOTRACK=y +CONFIG_NETFILTER_XT_TARGET_TEE=y +CONFIG_NETFILTER_XT_TARGET_TPROXY=y +CONFIG_NETFILTER_XT_TARGET_TRACE=y +CONFIG_NETFILTER_XT_TARGET_SECMARK=y +CONFIG_NETFILTER_XT_TARGET_TCPMSS=y +CONFIG_NETFILTER_XT_MATCH_COMMENT=y +CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=y +CONFIG_NETFILTER_XT_MATCH_CONNMARK=y +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y +CONFIG_NETFILTER_XT_MATCH_DSCP=y +CONFIG_NETFILTER_XT_MATCH_ESP=y +CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=y +CONFIG_NETFILTER_XT_MATCH_HELPER=y +CONFIG_NETFILTER_XT_MATCH_IPRANGE=y +CONFIG_NETFILTER_XT_MATCH_LENGTH=y +CONFIG_NETFILTER_XT_MATCH_LIMIT=y +CONFIG_NETFILTER_XT_MATCH_MAC=y +CONFIG_NETFILTER_XT_MATCH_MARK=y +CONFIG_NETFILTER_XT_MATCH_MULTIPORT=y +CONFIG_NETFILTER_XT_MATCH_POLICY=y +CONFIG_NETFILTER_XT_MATCH_PKTTYPE=y +CONFIG_NETFILTER_XT_MATCH_QTAGUID=y +CONFIG_NETFILTER_XT_MATCH_QUOTA=y +CONFIG_NETFILTER_XT_MATCH_QUOTA2=y +CONFIG_NETFILTER_XT_MATCH_SOCKET=y +CONFIG_NETFILTER_XT_MATCH_STATE=y +CONFIG_NETFILTER_XT_MATCH_STATISTIC=y +CONFIG_NETFILTER_XT_MATCH_STRING=y +CONFIG_NETFILTER_XT_MATCH_TIME=y +CONFIG_NETFILTER_XT_MATCH_U32=y +CONFIG_NF_CONNTRACK_IPV4=y +CONFIG_IP_NF_IPTABLES=y +CONFIG_IP_NF_MATCH_AH=y +CONFIG_IP_NF_MATCH_ECN=y +CONFIG_IP_NF_MATCH_RPFILTER=y +CONFIG_IP_NF_MATCH_TTL=y +CONFIG_IP_NF_FILTER=y +CONFIG_IP_NF_TARGET_REJECT=y +CONFIG_IP_NF_NAT=y +CONFIG_IP_NF_TARGET_MASQUERADE=y +CONFIG_IP_NF_TARGET_NATTYPE_MODULE=y +CONFIG_IP_NF_TARGET_NETMAP=y +CONFIG_IP_NF_TARGET_REDIRECT=y +CONFIG_IP_NF_MANGLE=y +CONFIG_IP_NF_RAW=y +CONFIG_IP_NF_SECURITY=y +CONFIG_IP_NF_ARPTABLES=y +CONFIG_IP_NF_ARPFILTER=y +CONFIG_IP_NF_ARP_MANGLE=y +CONFIG_NF_CONNTRACK_IPV6=y +CONFIG_IP6_NF_IPTABLES=y +CONFIG_IP6_NF_MATCH_RPFILTER=y +CONFIG_IP6_NF_FILTER=y +CONFIG_IP6_NF_TARGET_REJECT=y +CONFIG_IP6_NF_MANGLE=y +CONFIG_IP6_NF_RAW=y +CONFIG_BRIDGE_NF_EBTABLES=y +CONFIG_BRIDGE_EBT_BROUTE=y +CONFIG_L2TP=y +CONFIG_L2TP_DEBUGFS=y +CONFIG_L2TP_V3=y +CONFIG_L2TP_IP=y +CONFIG_L2TP_ETH=y +CONFIG_BRIDGE=y +CONFIG_NET_SCHED=y +CONFIG_NET_SCH_HTB=y +CONFIG_NET_SCH_PRIO=y +CONFIG_NET_CLS_FW=y +CONFIG_NET_CLS_U32=y +CONFIG_CLS_U32_MARK=y +CONFIG_NET_CLS_FLOW=y +CONFIG_NET_EMATCH=y +CONFIG_NET_EMATCH_CMP=y +CONFIG_NET_EMATCH_NBYTE=y +CONFIG_NET_EMATCH_U32=y +CONFIG_NET_EMATCH_META=y +CONFIG_NET_EMATCH_TEXT=y +CONFIG_NET_CLS_ACT=y +CONFIG_RMNET_DATA=y +CONFIG_RMNET_DATA_FC=y +#CONFIG_RMNET_DATA_DEBUG_PKT=y +CONFIG_SOCKEV_NLMCAST=y +CONFIG_BT=y +CONFIG_BT_RFCOMM=y +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=y +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_HIDP=y +CONFIG_MSM_BT_POWER=y +CONFIG_CFG80211=y +CONFIG_CFG80211_INTERNAL_REGDB=y +CONFIG_RFKILL=y +CONFIG_NFC_NQ=n +CONFIG_IPC_ROUTER=y +CONFIG_IPC_ROUTER_SECURITY=y +CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y +CONFIG_DMA_CMA=y +CONFIG_ZRAM=y +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_SIZE=8192 +CONFIG_UID_STAT=y +CONFIG_QSEECOM=y +CONFIG_HDCP_QSEECOM=y +CONFIG_UID_CPUTIME=y +CONFIG_USB_EXT_TYPE_C_PERICOM=n +CONFIG_MSM_ULTRASOUND=y +CONFIG_SCSI=y +CONFIG_BLK_DEV_SD=y +CONFIG_CHR_DEV_SG=y +CONFIG_CHR_DEV_SCH=y +CONFIG_SCSI_CONSTANTS=y +CONFIG_SCSI_LOGGING=y +CONFIG_SCSI_SCAN_ASYNC=y +CONFIG_SCSI_UFSHCD=y +CONFIG_SCSI_UFSHCD_PLATFORM=y +CONFIG_SCSI_UFS_QCOM=y +CONFIG_SCSI_UFS_QCOM_ICE=y +CONFIG_MD=y +CONFIG_BLK_DEV_DM=y +CONFIG_DM_CRYPT=y +CONFIG_DM_REQ_CRYPT=y +CONFIG_DM_VERITY=y +CONFIG_DM_VERITY_FEC=y +CONFIG_NETDEVICES=y +CONFIG_DUMMY=y +CONFIG_TUN=y +CONFIG_RNDIS_IPA=y +CONFIG_MSM_RMNET_BAM=y +CONFIG_PPP=y +CONFIG_PPP_BSDCOMP=y +CONFIG_PPP_DEFLATE=y +CONFIG_PPP_FILTER=y +CONFIG_PPP_MPPE=y +CONFIG_PPP_MULTILINK=y +CONFIG_PPPOE=y +CONFIG_PPPOATM=m +CONFIG_PPPOL2TP=y +CONFIG_PPPOLAC=y +CONFIG_PPPOPNS=y +CONFIG_PPP_ASYNC=y +CONFIG_PPP_SYNC_TTY=y +CONFIG_USB_USBNET=y +CONFIG_WCNSS_CORE=y +CONFIG_WCNSS_CORE_PRONTO=y +CONFIG_WCNSS_REGISTER_DUMP_ON_BITE=y +CONFIG_WCNSS_MEM_PRE_ALLOC=y +CONFIG_CNSS_CRYPTO=y +CONFIG_ATH_CARDS=y +CONFIG_WIL6210=m +CONFIG_CNSS=y +CONFIG_CLD_LL_CORE=y +CONFIG_BUS_AUTO_SUSPEND=y +CONFIG_INPUT_EVDEV=y +CONFIG_INPUT_EVBUG=m +CONFIG_INPUT_KEYRESET=y +CONFIG_KEYBOARD_GPIO=y +# CONFIG_INPUT_MOUSE is not set +CONFIG_INPUT_JOYSTICK=y +CONFIG_JOYSTICK_XPAD=y +CONFIG_INPUT_TABLET=y +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_CORE_v21=y +CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_RMI_DEV_v21=y +CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_FW_UPDATE_v21=y +CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_CORE_v26=y +CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_RMI_DEV_v26=y +CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_FW_UPDATE_v26=y +CONFIG_TOUCHSCREEN_LOCKDOWN_INFO=y +CONFIG_TOUCHSCREEN_ATMEL_MXT=y +CONFIG_TOUCHSCREEN_GEN_VKEYS=y +CONFIG_TOUCHSCREEN_FT5346=y +CONFIG_TOUCHSCREEN_GT917D=y +CONFIG_FT_SECURE_TOUCH=y +CONFIG_TOUCHSCREEN_MAXIM_STI=y +CONFIG_INPUT_MISC=y +CONFIG_INPUT_HBTP_INPUT=n +CONFIG_INPUT_KEYCHORD=y +CONFIG_INPUT_UINPUT=y +CONFIG_INPUT_GPIO=y +# CONFIG_VT is not set +# CONFIG_LEGACY_PTYS is not set +# CONFIG_DEVMEM is not set +# CONFIG_DEVKMEM is not set +CONFIG_SERIAL_MSM_HS=n +CONFIG_SERIAL_MSM_HSL=n +CONFIG_SERIAL_MSM_HSL_CONSOLE=n +CONFIG_SERIAL_MSM_SMD=y +CONFIG_DIAG_CHAR=y +CONFIG_HW_RANDOM=y +CONFIG_HW_RANDOM_MSM_LEGACY=y +CONFIG_MSM_SMD_PKT=y +CONFIG_MSM_ADSPRPC=y +CONFIG_MSM_RDBG=m +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_MSM_V2=y +CONFIG_SLIMBUS=y +CONFIG_SLIMBUS_MSM_NGD=y +CONFIG_SOUNDWIRE=y +CONFIG_SPI=y +CONFIG_SPI_QUP=y +CONFIG_SPI_SPIDEV=y +CONFIG_PINCTRL_MSM8952=y +CONFIG_PINCTRL_MSM8937=y +CONFIG_PINCTRL_MSMCOBALT=y +CONFIG_PINCTRL_MSM8917=y +CONFIG_PINCTRL_MSM8940=y +CONFIG_PINCTRL_MSM8953=y +CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_QPNP_PIN=y +CONFIG_SMB1351_USB_CHARGER=n +CONFIG_SMB135X_CHARGER=n +CONFIG_QPNP_SMBCHARGER=n +CONFIG_QPNP_FG=n +#CONFIG_BATTERY_BCL=y +#CONFIG_MSM_BCL_CTL=y +#CONFIG_MSM_BCL_PERIPHERAL_CTL=y +CONFIG_SMB358_CHARGER=n +CONFIG_BATTERY_CW2015=n +CONFIG_POWER_RESET_MSM=y +CONFIG_MSM_DLOAD_MODE=y +CONFIG_MSM_PM=y +CONFIG_MSM_APM=y +CONFIG_SENSORS_EPM_ADC=y +CONFIG_SENSORS_QPNP_ADC_VOLTAGE=y +CONFIG_SENSORS_QPNP_ADC_CURRENT=y +CONFIG_THERMAL=y +CONFIG_THERMAL_TSENS8974=y +CONFIG_LIMITS_MONITOR=y +CONFIG_LIMITS_LITE_HW=y +CONFIG_THERMAL_MONITOR=y +CONFIG_THERMAL_QPNP=y +CONFIG_THERMAL_QPNP_ADC_TM=y +CONFIG_WCD9335_CODEC=y +CONFIG_REGULATOR=y +CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_REGULATOR_STUB=y +CONFIG_REGULATOR_FAN53555=y +CONFIG_REGULATOR_MEM_ACC=y +CONFIG_REGULATOR_RPM_SMD=y +CONFIG_REGULATOR_QPNP=y +CONFIG_REGULATOR_QPNP_LABIBB=y +CONFIG_REGULATOR_SPM=y +CONFIG_REGULATOR_CPR=y +CONFIG_REGULATOR_CPR3_HMSS=y +CONFIG_REGULATOR_CPR3_MMSS=y +CONFIG_REGULATOR_KRYO=y +CONFIG_MEDIA_SUPPORT=y +CONFIG_MEDIA_CAMERA_SUPPORT=y +CONFIG_MEDIA_RADIO_SUPPORT=y +CONFIG_MEDIA_CONTROLLER=y +CONFIG_VIDEO_V4L2_SUBDEV_API=y +CONFIG_V4L_PLATFORM_DRIVERS=y +CONFIG_SOC_CAMERA=y +CONFIG_SOC_CAMERA_PLATFORM=y +CONFIG_MSM_VIDC_V4L2=y +CONFIG_MSM_VIDC_VMEM=y +CONFIG_MSM_VIDC_GOVERNORS=y +CONFIG_MSM_CAMERA=y +CONFIG_MSMB_CAMERA=y +CONFIG_MSM_CAMERA_SENSOR=y +CONFIG_MSM_CPP=y +CONFIG_MSM_CCI=y +CONFIG_MSM_CSI20_HEADER=y +CONFIG_MSM_CSI22_HEADER=y +CONFIG_MSM_CSI30_HEADER=y +CONFIG_MSM_CSI31_HEADER=y +CONFIG_MSM_CSIPHY=y +CONFIG_MSM_CSID=y +CONFIG_MSM_EEPROM=y +CONFIG_MSM_ISPIF=y +CONFIG_MSM_ISPIF_V2=y +CONFIG_IMX134=y +CONFIG_IMX132=y +CONFIG_OV9724=y +CONFIG_OV5648=y +CONFIG_GC0339=y +CONFIG_OV8825=y +CONFIG_OV8865=y +CONFIG_s5k4e1=y +CONFIG_OV12830=y +CONFIG_MSM_V4L2_VIDEO_OVERLAY_DEVICE=y +CONFIG_MSMB_JPEG=y +CONFIG_MSM_FD=y +CONFIG_RADIO_IRIS=y +CONFIG_RADIO_IRIS_TRANSPORT=y +CONFIG_RADIO_SILABS=y +CONFIG_MSM_KGSL=y +CONFIG_FB=y +CONFIG_FB_MSM=y +CONFIG_MSM_DBA=y +CONFIG_MSM_DBA_ADV7533=y +CONFIG_FB_MSM_MDSS=y +CONFIG_FB_MSM_MDSS_WRITEBACK=y +CONFIG_FB_MSM_MDSS_XLOG_DEBUG=n +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_SOUND=y +CONFIG_SND=y +CONFIG_SND_USB_AUDIO=y +CONFIG_SND_SOC=y +CONFIG_SND_SOC_MSM8X16=y +CONFIG_HIDRAW=y +CONFIG_UHID=y +CONFIG_HID_APPLE=y +CONFIG_HID_ELECOM=y +CONFIG_HID_MAGICMOUSE=y +CONFIG_HID_MICROSOFT=y +CONFIG_HID_MULTITOUCH=y +CONFIG_USB_HIDDEV=y +CONFIG_USB_ANNOUNCE_NEW_DEVICES=y +CONFIG_USB_MON=y +CONFIG_USB_XHCI_HCD=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_MSM=y +CONFIG_USB_EHCI_MSM_HSIC=y +CONFIG_USB_ACM=y +CONFIG_USB_STORAGE=y +CONFIG_USB_STORAGE_DATAFAB=y +CONFIG_USB_STORAGE_FREECOM=y +CONFIG_USB_STORAGE_ISD200=y +CONFIG_USB_STORAGE_USBAT=y +CONFIG_USB_STORAGE_SDDR09=y +CONFIG_USB_STORAGE_SDDR55=y +CONFIG_USB_STORAGE_JUMPSHOT=y +CONFIG_USB_STORAGE_ALAUDA=y +CONFIG_USB_STORAGE_KARMA=y +CONFIG_USB_STORAGE_CYPRESS_ATACB=y +CONFIG_USB_DWC3=y +CONFIG_USB_SERIAL=y +CONFIG_USB_EHSET_TEST_FIXTURE=y +CONFIG_NOP_USB_XCEIV=y +CONFIG_USB_MSM_HSPHY=y +CONFIG_USB_MSM_SSPHY_QMP=y +CONFIG_MSM_QUSB_PHY=y +CONFIG_DUAL_ROLE_USB_INTF=y +CONFIG_USB_GADGET=y +CONFIG_USB_GADGET_DEBUG_FILES=y +CONFIG_USB_GADGET_DEBUG_FS=y +CONFIG_USB_GADGET_VBUS_DRAW=500 +CONFIG_USB_CI13XXX_MSM=y +CONFIG_USB_G_ANDROID=y +CONFIG_MMC=y +#CONFIG_MMC_PERF_PROFILING=y +CONFIG_MMC_CLKGATE=y +CONFIG_MMC_PARANOID_SD_INIT=y +CONFIG_MMC_BLOCK_MINORS=32 +CONFIG_MMC_BLOCK_DEFERRED_RESUME=y +CONFIG_MMC_TEST=m +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MMC_SDHCI_MSM=y +CONFIG_MMC_SDHCI_MSM_ICE=y +CONFIG_MMC_CQ_HCI=y +CONFIG_LEDS_QPNP=y +CONFIG_LEDS_QPNP_FLASH=y +CONFIG_LEDS_QPNP_WLED=y +CONFIG_LEDS_TRIGGERS=y +CONFIG_SWITCH=y +CONFIG_EDAC=y +CONFIG_EDAC_MM_EDAC=y +CONFIG_EDAC_CORTEX_ARM64=y +CONFIG_EDAC_CORTEX_ARM64_PANIC_ON_CE=y +CONFIG_EDAC_CORTEX_ARM64_PANIC_ON_UE=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_DRV_QPNP=y +CONFIG_DMADEVICES=y +CONFIG_QCOM_SPS_DMA=y +CONFIG_UIO=y +CONFIG_UIO_MSM_SHAREDMEM=y +CONFIG_STAGING=y +CONFIG_ANDROID=y +CONFIG_ANDROID_BINDER_IPC=y +CONFIG_ASHMEM=y +CONFIG_ANDROID_TIMED_GPIO=y +CONFIG_ANDROID_LOW_MEMORY_KILLER=y +CONFIG_SW_SYNC_USER=y +CONFIG_ION=y +CONFIG_ION_MSM=y +CONFIG_MSM_AVTIMER=y +CONFIG_MSM_BUS_SCALING=y +CONFIG_BUS_TOPOLOGY_ADHOC=y +CONFIG_QPNP_POWER_ON=y +CONFIG_QPNP_REVID=y +CONFIG_QPNP_COINCELL=y +CONFIG_SPS=y +CONFIG_USB_BAM=y +CONFIG_SPS_SUPPORT_NDP_BAM=y +CONFIG_IPA=y +CONFIG_RMNET_IPA=y +CONFIG_QPNP_HAPTIC=y +CONFIG_BW_MONITOR=y +CONFIG_MSM_SPMI=y +CONFIG_MSM_SPMI_PMIC_ARB=y +CONFIG_MSM_QPNP_INT=y +CONFIG_CP_ACCESS64=y +CONFIG_MSM_INRUSH_CURRENT_MITIGATION=y +CONFIG_MSM_ADSP_LOADER=y +CONFIG_MSM_MEMORY_DUMP_V2=y +CONFIG_MSM_BOOT_STATS=y +CONFIG_MSM_CPUSS_DUMP=y +CONFIG_MSM_COMMON_LOG=y +CONFIG_MSM_DDR_HEALTH=y +CONFIG_MSM_WATCHDOG_V2=y +CONFIG_MSM_FORCE_WDOG_BITE_ON_PANIC=y +CONFIG_MSM_RPM_SMD=y +CONFIG_MSM_RPM_RBCPR_STATS_V2_LOG=y +CONFIG_MSM_RPM_LOG=y +CONFIG_MSM_RPM_STATS_LOG=y +CONFIG_MSM_RUN_QUEUE_STATS=y +CONFIG_MSM_SCM=y +CONFIG_MSM_SCM_XPU=y +CONFIG_MSM_MPM_OF=y +CONFIG_MSM_SMEM=y +CONFIG_MSM_SMD=y +#CONFIG_MSM_SMD_DEBUG=y +CONFIG_MSM_GLINK=y +CONFIG_MSM_GLINK_LOOPBACK_SERVER=y +CONFIG_MSM_GLINK_SMD_XPRT=y +CONFIG_MSM_GLINK_SMEM_NATIVE_XPRT=y +CONFIG_MSM_SMEM_LOGGING=y +CONFIG_MSM_SMP2P=y +CONFIG_MSM_SMP2P_TEST=y +CONFIG_MSM_SPM=y +CONFIG_MSM_L2_SPM=y +CONFIG_MSM_QMI_INTERFACE=y +CONFIG_MSM_IPC_ROUTER_SMD_XPRT=y +CONFIG_MSM_EVENT_TIMER=y +CONFIG_MSM_SUBSYSTEM_RESTART=y +CONFIG_MSM_SYSMON_COMM=y +CONFIG_MSM_PIL=y +CONFIG_MSM_PIL_SSR_GENERIC=y +CONFIG_MSM_PIL_MSS_QDSP6V5=y +CONFIG_MSM_BAM_DMUX=y +CONFIG_MSM_PERFORMANCE=y +# CONFIG_MSM_PERFORMANCE_HOTPLUG_ON is not set +CONFIG_MSM_KERNEL_PROTECT=y +CONFIG_MSM_KERNEL_PROTECT_MPU=y +CONFIG_MEM_SHARE_QMI_SERVICE=y +CONFIG_MSM_CLK_CONTROLLER_V2=y +CONFIG_MSM_MDSS_PLL=y +CONFIG_REMOTE_SPINLOCK_MSM=y +CONFIG_MSM_IOMMU_V1=y +CONFIG_ARM_SMMU=y +CONFIG_IOMMU_DEBUG=n +CONFIG_IOMMU_TESTS=n +CONFIG_SPDM_SCM=y +CONFIG_DEVFREQ_SPDM=y +CONFIG_PWM=y +CONFIG_PWM_QPNP=y +CONFIG_ARM_GIC_PANIC_HANDLER=y +CONFIG_CORESIGHT=n +CONFIG_CORESIGHT_EVENT=n +CONFIG_CORESIGHT_FUSE=n +CONFIG_CORESIGHT_CTI=n +CONFIG_CORESIGHT_CTI_SAVE_DISABLE=n +CONFIG_CORESIGHT_TMC=n +CONFIG_CORESIGHT_TPIU=n +CONFIG_CORESIGHT_FUNNEL=n +CONFIG_CORESIGHT_REPLICATOR=n +CONFIG_CORESIGHT_STM=n +CONFIG_CORESIGHT_HWEVENT=n +CONFIG_SENSORS_SSC=y +CONFIG_MSM_TZ_LOG=y +CONFIG_EXT2_FS=y +CONFIG_EXT2_FS_XATTR=y +CONFIG_EXT3_FS=y +# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set +CONFIG_EXT4_FS=y +CONFIG_EXT4_FS_SECURITY=y +CONFIG_QUOTA=y +# CONFIG_PRINT_QUOTA_WARNING is not set +CONFIG_FUSE_FS=y +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_ASCII=y +CONFIG_NLS_ISO8859_1=y +CONFIG_PRINTK_TIME=y +CONFIG_DYNAMIC_DEBUG=y +CONFIG_DEBUG_INFO=y +CONFIG_MAGIC_SYSRQ=y +CONFIG_PANIC_TIMEOUT=5 +CONFIG_PANIC_ON_RECURSIVE_FAULT=y +# CONFIG_SCHED_DEBUG is not set +CONFIG_SCHEDSTATS=y +CONFIG_TIMER_STATS=y +CONFIG_IPC_LOGGING=y +CONFIG_CPU_FREQ_SWITCH_PROFILER=y +CONFIG_DEBUG_SET_MODULE_RONX=y +CONFIG_DEBUG_RODATA=n +CONFIG_SECURITY=y +CONFIG_SECURITY_NETWORK=y +CONFIG_LSM_MMAP_MIN_ADDR=4096 +CONFIG_SECURITY_SELINUX=y +CONFIG_CRYPTO_NULL=y +CONFIG_CRYPTO_CTR=y +CONFIG_CRYPTO_XCBC=y +CONFIG_CRYPTO_MD4=y +CONFIG_CRYPTO_TWOFISH=y +CONFIG_CRYPTO_DEV_QCRYPTO=y +CONFIG_CRYPTO_DEV_QCOM_MSM_QCE=y +CONFIG_CRYPTO_DEV_QCEDEV=y +CONFIG_CRYPTO_DEV_OTA_CRYPTO=y +CONFIG_CRYPTO_DEV_QCOM_ICE=y +CONFIG_ARM64_CRYPTO=y +CONFIG_CRYPTO_SHA1_ARM64_CE=y +CONFIG_CRYPTO_SHA2_ARM64_CE=y +CONFIG_CRYPTO_GHASH_ARM64_CE=y +CONFIG_CRYPTO_AES_ARM64_CE=y +CONFIG_CRYPTO_AES_ARM64_CE_CCM=y +CONFIG_CRYPTO_AES_ARM64_CE_BLK=y +CONFIG_CRYPTO_AES_ARM64_NEON_BLK=y +CONFIG_QMI_ENCDEC=y +CONFIG_SERIAL_NUM=y +CONFIG_SECBOOT_FUSE=y +CONFIG_REGULATOR_TPS65132=y +CONFIG_SND_SOC_AW87319=y +CONFIG_PSTORE=y +CONFIG_PSTORE_CONSOLE=y +CONFIG_PSTORE_PMSG=y +CONFIG_PSTORE_FTRACE=y +CONFIG_PSTORE_RAM=y +CONFIG_PSTORE_LAST_KMSG=y +CONFIG_CPUMAXFREQ=y +## MIUI ADD:START +## Multi userspace config support +CONFIG_ECRYPT_FS=y +CONFIG_KEYS=y +CONFIG_ENCRYPTED_KEYS=y +CONFIG_CRYPTO=y +CONFIG_CRYPTO_AES=y +CONFIG_CRYPTO_SHA1=y +CONFIG_CRYPTO_SHA256=y +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_GF128MUL=y +CONFIG_CRYPTO_SEQIV=y +CONFIG_CRYPTO_CTR=y +CONFIG_CRYPTO_XTS=y +CONFIG_NAMESPACES=y +CONFIG_XFRM_MIGRATE=y +CONFIG_NET_KEY_MIGRATE=y + +#CONFIG_UTS_NS=y +#CONFIG_IPC_NS=y +## do not turn on user-namespaces as it enables +## CONFIG_UIDGID_STRICT_TYPE_CHECKS, which results in several compile +## errors +#CONFIG_USER_NS=y +#CONFIG_PID_NS=y +CONFIG_NET_NS=y +CONFIG_VETH=y +## END + +#CONFIG_ZRAM_DEBUG=y +CONFIG_SWAP=y +CONFIG_MEMCG=y +CONFIG_MEMCG_SWAP=y +CONFIG_ANDROID_WHETSTONE=y +CONFIG_CGROUP_MEM_RES_CTLR=y +CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y + +#MIUI ADD +#Add CIFS Config +CONFIG_NETWORK_FILESYSTEMS=y +CONFIG_CIFS=y +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="iso8859-1" +CONFIG_NLS_CODEPAGE_936=y +CONFIG_NLS_CODEPAGE_950=y +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_UTF8=y +#MIUI END + +CONFIG_BOOT_INFO=y +CONFIG_OF_FLATTREE=y + +CONFIG_DUMP_ALL_STACKS=y +# CONFIG_FIRE_WATCHDOG is not set + +# sdcardfs +CONFIG_SDCARD_FS=y diff --git a/arch/arm64/configs/S88536AA2-perf_defconfig b/arch/arm64/configs/S88536AA2-perf_defconfig new file mode 100644 index 0000000000000..dda1b31487f26 --- /dev/null +++ b/arch/arm64/configs/S88536AA2-perf_defconfig @@ -0,0 +1,727 @@ +CONFIG_LOCALVERSION="-perf" +CONFIG_AUDIT=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_RCU_FAST_NO_HZ=y +CONFIG_RCU_BOOST=y +CONFIG_RCU_NOCB_CPU=y +CONFIG_RCU_NOCB_CPU_ALL=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=n +CONFIG_CGROUPS=y +CONFIG_CGROUP_FREEZER=y +CONFIG_CGROUP_CPUACCT=y +CONFIG_RESOURCE_COUNTERS=y +CONFIG_CGROUP_SCHED=y +CONFIG_CPUSETS=y +CONFIG_RT_GROUP_SCHED=y +CONFIG_CFS_BANDWIDTH=y +CONFIG_SCHED_HMP=y +CONFIG_SCHED_CORE_CTL=y +CONFIG_SCHED_QHMP=y +CONFIG_NAMESPACES=y +# CONFIG_UTS_NS is not set +# CONFIG_PID_NS is not set +CONFIG_CIFS=y +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="iso8859-1" +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_CODEPAGE_936=y +CONFIG_NLS_CODEPAGE_950=y +CONFIG_NLS_ASCII=y +CONFIG_NLS_ISO8859_1=y +CONFIG_NLS_UTF8=y +# CONFIG_CIFS_STATS is not set +CONFIG_CIFS_WEAK_PW_HASH=y +CONFIG_CIFS_UPCALL=y +CONFIG_CIFS_XATTR=y +CONFIG_CIFS_POSIX=y +# CONFIG_CIFS_DEBUG2 is not set +CONFIG_CIFS_DFS_UPCALL=y +CONFIG_CIFS_ACL=y +CONFIG_CIFS_EXPERIMENTAL=y +CONFIG_SMB_FS=m +CONFIG_SMB_NLS_DEFAULT=y +CONFIG_SMB_NLS_REMOTE="cp850" +CONFIG_BLK_DEV_INITRD=y +CONFIG_RD_BZIP2=y +CONFIG_RD_LZMA=y +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_KALLSYMS_ALL=y +CONFIG_PSTORE_LAST_KMSG=y +CONFIG_EMBEDDED=y +# CONFIG_SLUB_DEBUG is not set +CONFIG_PROFILING=y +CONFIG_CC_STACKPROTECTOR_STRONG=y +CONFIG_ARCH_MMAP_RND_COMPAT_BITS=16 +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODULE_FORCE_UNLOAD=y +CONFIG_MODVERSIONS=y +CONFIG_MODULE_SIG=y +CONFIG_MODULE_SIG_FORCE=y +CONFIG_MODULE_SIG_SHA512=y +CONFIG_PARTITION_ADVANCED=y +CONFIG_ARCH_MSM=y +CONFIG_ARCH_MSM8916=y +CONFIG_ARCH_MSM8917=y +CONFIG_ARCH_MSM8920=y +CONFIG_ARCH_MSM8940=y +CONFIG_ARCH_MSM8953=y +CONFIG_ARCH_MSM8937=y +CONFIG_ARCH_MSMCOBALT=y +CONFIG_PCI_MSM=y +CONFIG_SMP=y +CONFIG_SCHED_MC=y +CONFIG_PREEMPT=y +CONFIG_CLEANCACHE=y +CONFIG_CMA=y +CONFIG_CMA_DEBUGFS=y +CONFIG_ZSMALLOC=y +CONFIG_ZSMALLOC_STAT=y +CONFIG_ZCACHE=y +CONFIG_PROCESS_RECLAIM=y +CONFIG_SECCOMP=y +CONFIG_ARMV8_DEPRECATED=y +CONFIG_SWP_EMULATION=y +CONFIG_CP15_BARRIER_EMULATION=y +CONFIG_SETEND_EMULATION=y +CONFIG_BUILD_ARM64_APPENDED_DTB_IMAGE=y +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +CONFIG_COMPAT=y +CONFIG_PM_AUTOSLEEP=y +CONFIG_PM_WAKELOCKS=y +CONFIG_PM_WAKELOCKS_LIMIT=0 +# CONFIG_PM_WAKELOCKS_GC is not set +CONFIG_PM_RUNTIME=y +CONFIG_PM_DEBUG=y +CONFIG_SUSPEND_TIME=y +CONFIG_CPU_IDLE=y +CONFIG_CPU_FREQ=y +CONFIG_SCHED_FREQ_INPUT=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_INTERACTIVE=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_XFRM_USER=y +CONFIG_XFRM_STATISTICS=y +CONFIG_NET_KEY=y +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_IP_MULTIPLE_TABLES=y +CONFIG_IP_ROUTE_VERBOSE=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_INET_AH=y +CONFIG_INET_ESP=y +CONFIG_INET_IPCOMP=y +# CONFIG_INET_XFRM_MODE_BEET is not set +# CONFIG_INET_LRO is not set +CONFIG_INET_DIAG_DESTROY=y +CONFIG_IPV6=y +CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_ROUTE_INFO=y +CONFIG_IPV6_OPTIMISTIC_DAD=y +CONFIG_INET6_AH=y +CONFIG_INET6_ESP=y +CONFIG_INET6_IPCOMP=y +CONFIG_IPV6_MIP6=y +CONFIG_IPV6_MULTIPLE_TABLES=y +CONFIG_IPV6_SUBTREES=y +CONFIG_NETFILTER=y +CONFIG_NF_CONNTRACK=y +CONFIG_NF_CONNTRACK_SECMARK=y +CONFIG_NF_CONNTRACK_EVENTS=y +CONFIG_NF_CT_PROTO_DCCP=y +CONFIG_NF_CT_PROTO_SCTP=y +CONFIG_NF_CT_PROTO_UDPLITE=y +CONFIG_NF_CONNTRACK_AMANDA=y +CONFIG_NF_CONNTRACK_FTP=y +CONFIG_NF_CONNTRACK_H323=y +CONFIG_NF_CONNTRACK_IRC=y +CONFIG_NF_CONNTRACK_NETBIOS_NS=y +CONFIG_NF_CONNTRACK_PPTP=y +CONFIG_NF_CONNTRACK_SANE=y +CONFIG_NF_CONNTRACK_TFTP=y +CONFIG_NF_CT_NETLINK=y +CONFIG_NETFILTER_XT_TARGET_CLASSIFY=y +CONFIG_NETFILTER_XT_TARGET_CONNMARK=y +CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=y +CONFIG_NETFILTER_XT_TARGET_IDLETIMER=y +CONFIG_NETFILTER_XT_TARGET_HARDIDLETIMER=y +CONFIG_NETFILTER_XT_TARGET_LOG=y +CONFIG_NETFILTER_XT_TARGET_MARK=y +CONFIG_NETFILTER_XT_TARGET_NFLOG=y +CONFIG_NETFILTER_XT_TARGET_NFQUEUE=y +CONFIG_NETFILTER_XT_TARGET_NOTRACK=y +CONFIG_NETFILTER_XT_TARGET_TEE=y +CONFIG_NETFILTER_XT_TARGET_TPROXY=y +CONFIG_NETFILTER_XT_TARGET_TRACE=y +CONFIG_NETFILTER_XT_TARGET_SECMARK=y +CONFIG_NETFILTER_XT_TARGET_TCPMSS=y +CONFIG_NETFILTER_XT_MATCH_COMMENT=y +CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=y +CONFIG_NETFILTER_XT_MATCH_CONNMARK=y +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y +CONFIG_NETFILTER_XT_MATCH_DSCP=y +CONFIG_NETFILTER_XT_MATCH_ESP=y +CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=y +CONFIG_NETFILTER_XT_MATCH_HELPER=y +CONFIG_NETFILTER_XT_MATCH_IPRANGE=y +CONFIG_NETFILTER_XT_MATCH_LENGTH=y +CONFIG_NETFILTER_XT_MATCH_LIMIT=y +CONFIG_NETFILTER_XT_MATCH_MAC=y +CONFIG_NETFILTER_XT_MATCH_MARK=y +CONFIG_NETFILTER_XT_MATCH_MULTIPORT=y +CONFIG_NETFILTER_XT_MATCH_POLICY=y +CONFIG_NETFILTER_XT_MATCH_PKTTYPE=y +CONFIG_NETFILTER_XT_MATCH_QTAGUID=y +CONFIG_NETFILTER_XT_MATCH_QUOTA=y +CONFIG_NETFILTER_XT_MATCH_QUOTA2=y +CONFIG_NETFILTER_XT_MATCH_SOCKET=y +CONFIG_NETFILTER_XT_MATCH_STATE=y +CONFIG_NETFILTER_XT_MATCH_STATISTIC=y +CONFIG_NETFILTER_XT_MATCH_STRING=y +CONFIG_NETFILTER_XT_MATCH_TIME=y +CONFIG_NETFILTER_XT_MATCH_U32=y +CONFIG_NF_CONNTRACK_IPV4=y +CONFIG_IP_NF_IPTABLES=y +CONFIG_IP_NF_MATCH_AH=y +CONFIG_IP_NF_MATCH_ECN=y +CONFIG_IP_NF_MATCH_RPFILTER=y +CONFIG_IP_NF_MATCH_TTL=y +CONFIG_IP_NF_FILTER=y +CONFIG_IP_NF_TARGET_REJECT=y +CONFIG_IP_NF_NAT=y +CONFIG_IP_NF_TARGET_MASQUERADE=y +CONFIG_IP_NF_TARGET_NATTYPE_MODULE=y +CONFIG_IP_NF_TARGET_NETMAP=y +CONFIG_IP_NF_TARGET_REDIRECT=y +CONFIG_IP_NF_MANGLE=y +CONFIG_IP_NF_RAW=y +CONFIG_IP_NF_SECURITY=y +CONFIG_IP_NF_ARPTABLES=y +CONFIG_IP_NF_ARPFILTER=y +CONFIG_IP_NF_ARP_MANGLE=y +CONFIG_NF_CONNTRACK_IPV6=y +CONFIG_IP6_NF_IPTABLES=y +CONFIG_IP6_NF_MATCH_RPFILTER=y +CONFIG_IP6_NF_FILTER=y +CONFIG_IP6_NF_TARGET_REJECT=y +CONFIG_IP6_NF_MANGLE=y +CONFIG_IP6_NF_RAW=y +CONFIG_BRIDGE_NF_EBTABLES=y +CONFIG_BRIDGE_EBT_BROUTE=y +CONFIG_L2TP=y +CONFIG_L2TP_DEBUGFS=y +CONFIG_L2TP_V3=y +CONFIG_L2TP_IP=y +CONFIG_L2TP_ETH=y +CONFIG_BRIDGE=y +CONFIG_NET_SCHED=y +CONFIG_NET_SCH_HTB=y +CONFIG_NET_SCH_PRIO=y +CONFIG_NET_CLS_FW=y +CONFIG_NET_CLS_U32=y +CONFIG_CLS_U32_MARK=y +CONFIG_NET_CLS_FLOW=y +CONFIG_NET_EMATCH=y +CONFIG_NET_EMATCH_CMP=y +CONFIG_NET_EMATCH_NBYTE=y +CONFIG_NET_EMATCH_U32=y +CONFIG_NET_EMATCH_META=y +CONFIG_NET_EMATCH_TEXT=y +CONFIG_NET_CLS_ACT=y +CONFIG_RMNET_DATA=y +CONFIG_RMNET_DATA_FC=y +CONFIG_RMNET_DATA_DEBUG_PKT=n +CONFIG_SOCKEV_NLMCAST=y +CONFIG_BT=y +CONFIG_BT_RFCOMM=y +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=y +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_HIDP=y +CONFIG_MSM_BT_POWER=y +CONFIG_CFG80211=y +CONFIG_CFG80211_INTERNAL_REGDB=y +CONFIG_RFKILL=y +CONFIG_NFC_NQ=y +CONFIG_IPC_ROUTER=y +CONFIG_IPC_ROUTER_SECURITY=y +CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y +CONFIG_DMA_CMA=y +CONFIG_ZRAM=y +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_SIZE=8192 +CONFIG_UID_STAT=y +CONFIG_QSEECOM=y +CONFIG_HDCP_QSEECOM=y +CONFIG_UID_CPUTIME=y +CONFIG_USB_EXT_TYPE_C_PERICOM=y +CONFIG_MSM_ULTRASOUND=y +CONFIG_SCSI=y +CONFIG_BLK_DEV_SD=y +CONFIG_CHR_DEV_SG=y +CONFIG_CHR_DEV_SCH=y +CONFIG_SCSI_CONSTANTS=y +CONFIG_SCSI_LOGGING=y +CONFIG_SCSI_SCAN_ASYNC=y +CONFIG_SCSI_UFSHCD=y +CONFIG_SCSI_UFSHCD_PLATFORM=y +CONFIG_SCSI_UFS_QCOM=y +CONFIG_SCSI_UFS_QCOM_ICE=y +CONFIG_MD=y +CONFIG_BLK_DEV_DM=y +CONFIG_DM_CRYPT=y +CONFIG_DM_REQ_CRYPT=y +CONFIG_DM_VERITY=y +CONFIG_DM_VERITY_FEC=y +CONFIG_NETDEVICES=y +CONFIG_DUMMY=y +CONFIG_TUN=y +CONFIG_RNDIS_IPA=y +CONFIG_MSM_RMNET_BAM=y +CONFIG_PPP=y +CONFIG_PPP_BSDCOMP=y +CONFIG_PPP_DEFLATE=y +CONFIG_PPP_FILTER=y +CONFIG_PPP_MPPE=y +CONFIG_PPP_MULTILINK=y +CONFIG_PPPOE=y +CONFIG_PPPOL2TP=y +CONFIG_PPPOLAC=y +CONFIG_PPPOPNS=y +CONFIG_PPP_ASYNC=y +CONFIG_PPP_SYNC_TTY=y +CONFIG_USB_USBNET=y +CONFIG_WCNSS_CORE=y +CONFIG_WCNSS_CORE_PRONTO=y +CONFIG_WCNSS_REGISTER_DUMP_ON_BITE=y +CONFIG_WCNSS_MEM_PRE_ALLOC=y +CONFIG_CNSS_CRYPTO=y +CONFIG_ATH_CARDS=y +CONFIG_WIL6210=m +CONFIG_CNSS=y +CONFIG_CLD_LL_CORE=y +CONFIG_BUS_AUTO_SUSPEND=y +CONFIG_INPUT_EVDEV=y +CONFIG_INPUT_EVBUG=m +CONFIG_INPUT_KEYRESET=y +CONFIG_KEYBOARD_GPIO=y +# CONFIG_INPUT_MOUSE is not set +CONFIG_INPUT_JOYSTICK=y +CONFIG_JOYSTICK_XPAD=y +CONFIG_INPUT_TABLET=y +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_CORE_v21=y +CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_RMI_DEV_v21=y +CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_FW_UPDATE_v21=y +CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_CORE_v26=y +CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_RMI_DEV_v26=y +CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_FW_UPDATE_v26=y +CONFIG_TOUCHSCREEN_ATMEL_MXT=y +CONFIG_TOUCHSCREEN_GEN_VKEYS=y +CONFIG_TOUCHSCREEN_FT5336=y +CONFIG_FT_SECURE_TOUCH=y +CONFIG_TOUCHSCREEN_MAXIM_STI=y +CONFIG_INPUT_MISC=y +CONFIG_INPUT_HBTP_INPUT=n +CONFIG_INPUT_KEYCHORD=y +CONFIG_INPUT_UINPUT=y +CONFIG_INPUT_GPIO=y +# CONFIG_VT is not set +# CONFIG_LEGACY_PTYS is not set +# CONFIG_DEVMEM is not set +# CONFIG_DEVKMEM is not set +CONFIG_SERIAL_MSM_HS=y +CONFIG_SERIAL_MSM_SMD=y +CONFIG_DIAG_CHAR=y +CONFIG_HW_RANDOM=y +CONFIG_HW_RANDOM_MSM_LEGACY=y +CONFIG_MSM_SMD_PKT=y +CONFIG_MSM_ADSPRPC=y +CONFIG_MSM_RDBG=m +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_MSM_V2=y +CONFIG_SLIMBUS=y +CONFIG_SLIMBUS_MSM_NGD=y +CONFIG_SOUNDWIRE=y +CONFIG_SPI=y +CONFIG_SPI_QUP=y +CONFIG_SPI_SPIDEV=m +CONFIG_PINCTRL_MSM8952=y +CONFIG_PINCTRL_MSM8937=y +CONFIG_PINCTRL_MSMCOBALT=y +CONFIG_PINCTRL_MSM8917=y +CONFIG_PINCTRL_MSM8940=y +CONFIG_PINCTRL_MSM8953=y +CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_QPNP_PIN=y +CONFIG_SMB1351_USB_CHARGER=n +CONFIG_SMB135X_CHARGER=n +CONFIG_QPNP_SMBCHARGER=y +CONFIG_QPNP_FG=y +CONFIG_BATTERY_BCL=y +CONFIG_MSM_BCL_CTL=y +CONFIG_MSM_BCL_PERIPHERAL_CTL=y +CONFIG_POWER_RESET_MSM=y +CONFIG_MSM_DLOAD_MODE=y +CONFIG_MSM_PM=y +CONFIG_MSM_APM=y +CONFIG_SENSORS_EPM_ADC=y +CONFIG_SENSORS_QPNP_ADC_VOLTAGE=y +CONFIG_SENSORS_QPNP_ADC_CURRENT=y +CONFIG_THERMAL=y +CONFIG_THERMAL_TSENS8974=y +CONFIG_LIMITS_MONITOR=y +CONFIG_LIMITS_LITE_HW=y +CONFIG_THERMAL_MONITOR=y +CONFIG_THERMAL_QPNP=y +CONFIG_THERMAL_QPNP_ADC_TM=y +CONFIG_WCD9335_CODEC=y +CONFIG_REGULATOR=y +CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_REGULATOR_STUB=y +CONFIG_REGULATOR_FAN53555=y +CONFIG_REGULATOR_MEM_ACC=y +CONFIG_REGULATOR_RPM_SMD=y +CONFIG_REGULATOR_QPNP=y +CONFIG_REGULATOR_QPNP_LABIBB=y +CONFIG_REGULATOR_SPM=y +CONFIG_REGULATOR_CPR=y +CONFIG_REGULATOR_CPR3_HMSS=y +CONFIG_REGULATOR_CPR3_MMSS=y +CONFIG_REGULATOR_KRYO=y +CONFIG_MEDIA_SUPPORT=y +CONFIG_MEDIA_CAMERA_SUPPORT=y +CONFIG_MEDIA_RADIO_SUPPORT=y +CONFIG_MEDIA_CONTROLLER=y +CONFIG_VIDEO_V4L2_SUBDEV_API=y +CONFIG_V4L_PLATFORM_DRIVERS=y +CONFIG_SOC_CAMERA=y +CONFIG_SOC_CAMERA_PLATFORM=y +CONFIG_MSM_VIDC_V4L2=y +CONFIG_MSM_VIDC_VMEM=y +CONFIG_MSM_VIDC_GOVERNORS=y +CONFIG_MSM_CAMERA=y +CONFIG_MSMB_CAMERA=y +CONFIG_MSM_CAMERA_SENSOR=y +CONFIG_MSM_CPP=y +CONFIG_MSM_CCI=y +CONFIG_MSM_CSI20_HEADER=y +CONFIG_MSM_CSI22_HEADER=y +CONFIG_MSM_CSI30_HEADER=y +CONFIG_MSM_CSI31_HEADER=y +CONFIG_MSM_CSIPHY=y +CONFIG_MSM_CSID=y +CONFIG_MSM_EEPROM=y +CONFIG_MSM_ISPIF=y +CONFIG_MSM_ISPIF_V2=y +CONFIG_IMX134=y +CONFIG_IMX132=y +CONFIG_OV9724=y +CONFIG_OV5648=y +CONFIG_GC0339=y +CONFIG_OV8825=y +CONFIG_OV8865=y +CONFIG_s5k4e1=y +CONFIG_OV12830=y +CONFIG_MSM_V4L2_VIDEO_OVERLAY_DEVICE=y +CONFIG_MSMB_JPEG=y +CONFIG_MSM_FD=y +CONFIG_RADIO_IRIS=y +CONFIG_RADIO_IRIS_TRANSPORT=y +CONFIG_RADIO_SILABS=y +CONFIG_MSM_KGSL=y +CONFIG_FB=y +CONFIG_FB_MSM=y +CONFIG_MSM_DBA=y +CONFIG_MSM_DBA_ADV7533=y +CONFIG_FB_MSM_MDSS=y +CONFIG_FB_MSM_MDSS_WRITEBACK=y +CONFIG_FB_MSM_MDSS_XLOG_DEBUG=y +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_SOUND=y +CONFIG_SND=y +CONFIG_SND_USB_AUDIO=y +CONFIG_SND_SOC=y +CONFIG_SND_SOC_MSM8X16=y +CONFIG_SND_SOC_AW87319=y +CONFIG_HIDRAW=y +CONFIG_UHID=y +CONFIG_HID_APPLE=y +CONFIG_HID_ELECOM=y +CONFIG_HID_MAGICMOUSE=y +CONFIG_HID_MICROSOFT=y +CONFIG_HID_MULTITOUCH=y +CONFIG_USB_HIDDEV=y +CONFIG_USB_ANNOUNCE_NEW_DEVICES=y +CONFIG_USB_MON=y +CONFIG_USB_XHCI_HCD=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_MSM=y +CONFIG_USB_EHCI_MSM_HSIC=y +CONFIG_USB_ACM=y +CONFIG_USB_STORAGE=y +CONFIG_USB_STORAGE_DATAFAB=y +CONFIG_USB_STORAGE_FREECOM=y +CONFIG_USB_STORAGE_ISD200=y +CONFIG_USB_STORAGE_USBAT=y +CONFIG_USB_STORAGE_SDDR09=y +CONFIG_USB_STORAGE_SDDR55=y +CONFIG_USB_STORAGE_JUMPSHOT=y +CONFIG_USB_STORAGE_ALAUDA=y +CONFIG_USB_STORAGE_KARMA=y +CONFIG_USB_STORAGE_CYPRESS_ATACB=y +CONFIG_USB_DWC3=y +CONFIG_USB_SERIAL=y +CONFIG_USB_EHSET_TEST_FIXTURE=y +CONFIG_NOP_USB_XCEIV=y +CONFIG_USB_MSM_HSPHY=y +CONFIG_USB_MSM_SSPHY_QMP=y +CONFIG_MSM_QUSB_PHY=y +CONFIG_DUAL_ROLE_USB_INTF=y +CONFIG_USB_GADGET=y +CONFIG_USB_GADGET_DEBUG_FILES=y +CONFIG_USB_GADGET_DEBUG_FS=y +CONFIG_USB_GADGET_VBUS_DRAW=500 +CONFIG_USB_CI13XXX_MSM=y +CONFIG_USB_G_ANDROID=y +CONFIG_MMC=y +CONFIG_MMC_PERF_PROFILING=n +CONFIG_MMC_CLKGATE=y +CONFIG_MMC_PARANOID_SD_INIT=y +CONFIG_MMC_BLOCK_MINORS=32 +CONFIG_MMC_BLOCK_DEFERRED_RESUME=y +CONFIG_MMC_TEST=m +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MMC_SDHCI_MSM=y +CONFIG_MMC_SDHCI_MSM_ICE=y +CONFIG_MMC_CQ_HCI=y +CONFIG_LEDS_QPNP=y +CONFIG_LEDS_QPNP_FLASH=y +CONFIG_LEDS_QPNP_WLED=y +CONFIG_LEDS_TRIGGERS=y +CONFIG_SWITCH=y +CONFIG_EDAC=y +CONFIG_EDAC_MM_EDAC=y +CONFIG_EDAC_CORTEX_ARM64=y +CONFIG_EDAC_CORTEX_ARM64_PANIC_ON_CE=y +CONFIG_EDAC_CORTEX_ARM64_PANIC_ON_UE=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_DRV_QPNP=y +CONFIG_DMADEVICES=y +CONFIG_QCOM_SPS_DMA=y +CONFIG_UIO=y +CONFIG_UIO_MSM_SHAREDMEM=y +CONFIG_STAGING=y +CONFIG_ANDROID=y +CONFIG_ANDROID_BINDER_IPC=y +CONFIG_ASHMEM=y +CONFIG_ANDROID_TIMED_GPIO=y +CONFIG_ANDROID_LOW_MEMORY_KILLER=y +CONFIG_SW_SYNC_USER=y +CONFIG_ION=y +CONFIG_ION_MSM=y +CONFIG_MSM_AVTIMER=y +CONFIG_MSM_BUS_SCALING=y +CONFIG_BUS_TOPOLOGY_ADHOC=y +CONFIG_QPNP_POWER_ON=y +CONFIG_QPNP_REVID=y +CONFIG_QPNP_COINCELL=y +CONFIG_SPS=y +CONFIG_USB_BAM=y +CONFIG_SPS_SUPPORT_NDP_BAM=y +CONFIG_IPA=y +CONFIG_RMNET_IPA=y +CONFIG_QPNP_HAPTIC=y +CONFIG_BW_MONITOR=y +CONFIG_MSM_SPMI=y +CONFIG_MSM_SPMI_PMIC_ARB=y +CONFIG_MSM_QPNP_INT=y +CONFIG_CP_ACCESS64=y +CONFIG_MSM_INRUSH_CURRENT_MITIGATION=y +CONFIG_MSM_ADSP_LOADER=y +CONFIG_MSM_MEMORY_DUMP_V2=y +CONFIG_MSM_BOOT_STATS=y +CONFIG_MSM_CPUSS_DUMP=y +CONFIG_MSM_COMMON_LOG=y +CONFIG_MSM_DDR_HEALTH=y +CONFIG_MSM_WATCHDOG_V2=y +CONFIG_MSM_FORCE_WDOG_BITE_ON_PANIC=y +CONFIG_MSM_RPM_SMD=y +CONFIG_MSM_RPM_RBCPR_STATS_V2_LOG=y +CONFIG_MSM_RPM_LOG=y +CONFIG_MSM_RPM_STATS_LOG=y +CONFIG_MSM_RUN_QUEUE_STATS=y +CONFIG_MSM_SCM=y +CONFIG_MSM_SCM_XPU=y +CONFIG_MSM_MPM_OF=y +CONFIG_MSM_SMEM=y +CONFIG_MSM_SMD=y +CONFIG_MSM_SMD_DEBUG=n +CONFIG_MSM_GLINK=y +CONFIG_MSM_GLINK_LOOPBACK_SERVER=y +CONFIG_MSM_GLINK_SMD_XPRT=y +CONFIG_MSM_GLINK_SMEM_NATIVE_XPRT=y +CONFIG_MSM_SMEM_LOGGING=y +CONFIG_MSM_SMP2P=y +CONFIG_MSM_SMP2P_TEST=y +CONFIG_MSM_SPM=y +CONFIG_MSM_L2_SPM=y +CONFIG_MSM_QMI_INTERFACE=y +CONFIG_MSM_IPC_ROUTER_SMD_XPRT=y +CONFIG_MSM_EVENT_TIMER=y +CONFIG_MSM_SUBSYSTEM_RESTART=y +CONFIG_MSM_SYSMON_COMM=y +CONFIG_MSM_PIL=y +CONFIG_MSM_PIL_SSR_GENERIC=y +CONFIG_MSM_PIL_MSS_QDSP6V5=y +CONFIG_MSM_BAM_DMUX=y +CONFIG_MSM_PERFORMANCE=y +# CONFIG_MSM_PERFORMANCE_HOTPLUG_ON is not set +CONFIG_MSM_KERNEL_PROTECT=y +CONFIG_MSM_KERNEL_PROTECT_MPU=y +CONFIG_MEM_SHARE_QMI_SERVICE=y +CONFIG_MSM_CLK_CONTROLLER_V2=y +CONFIG_MSM_MDSS_PLL=y +CONFIG_REMOTE_SPINLOCK_MSM=y +CONFIG_MSM_IOMMU_V1=y +CONFIG_ARM_SMMU=y +CONFIG_IOMMU_DEBUG=y +CONFIG_IOMMU_TESTS=y +CONFIG_SPDM_SCM=y +CONFIG_DEVFREQ_SPDM=y +CONFIG_PWM=y +CONFIG_PWM_QPNP=y +CONFIG_ARM_GIC_PANIC_HANDLER=y +CONFIG_CORESIGHT=n +CONFIG_CORESIGHT_EVENT=n +CONFIG_CORESIGHT_FUSE=n +CONFIG_CORESIGHT_CTI=n +CONFIG_CORESIGHT_CTI_SAVE_DISABLE=n +CONFIG_CORESIGHT_TMC=n +CONFIG_CORESIGHT_TPIU=n +CONFIG_CORESIGHT_FUNNEL=n +CONFIG_CORESIGHT_REPLICATOR=n +CONFIG_CORESIGHT_STM=n +CONFIG_CORESIGHT_HWEVENT=n +CONFIG_SENSORS_SSC=y +CONFIG_MSM_TZ_LOG=y +CONFIG_EXT2_FS=y +CONFIG_EXT2_FS_XATTR=y +CONFIG_EXT3_FS=y +# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set +CONFIG_EXT4_FS=y +CONFIG_EXT4_FS_SECURITY=y +CONFIG_QUOTA=y +# CONFIG_PRINT_QUOTA_WARNING is not set +CONFIG_FUSE_FS=y +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_ASCII=y +CONFIG_NLS_ISO8859_1=y +CONFIG_PRINTK_TIME=y +CONFIG_DEBUG_INFO=y +CONFIG_MAGIC_SYSRQ=y +CONFIG_PANIC_TIMEOUT=5 +CONFIG_PANIC_ON_RECURSIVE_FAULT=y +# CONFIG_SCHED_DEBUG is not set +CONFIG_SCHEDSTATS=y +CONFIG_TIMER_STATS=y +CONFIG_IPC_LOGGING=y +CONFIG_CPU_FREQ_SWITCH_PROFILER=y +CONFIG_DEBUG_SET_MODULE_RONX=y +CONFIG_DEBUG_RODATA=y +CONFIG_SECURITY=y +CONFIG_SECURITY_NETWORK=y +CONFIG_LSM_MMAP_MIN_ADDR=4096 +CONFIG_SECURITY_SELINUX=y +CONFIG_CRYPTO_NULL=y +CONFIG_CRYPTO_CTR=y +CONFIG_CRYPTO_XCBC=y +CONFIG_CRYPTO_MD4=y +CONFIG_CRYPTO_TWOFISH=y +CONFIG_CRYPTO_DEV_QCRYPTO=y +CONFIG_CRYPTO_DEV_QCOM_MSM_QCE=y +CONFIG_CRYPTO_DEV_QCEDEV=y +CONFIG_CRYPTO_DEV_OTA_CRYPTO=y +CONFIG_CRYPTO_DEV_QCOM_ICE=y +CONFIG_ARM64_CRYPTO=y +CONFIG_CRYPTO_SHA1_ARM64_CE=y +CONFIG_CRYPTO_SHA2_ARM64_CE=y +CONFIG_CRYPTO_GHASH_ARM64_CE=y +CONFIG_CRYPTO_AES_ARM64_CE=y +CONFIG_CRYPTO_AES_ARM64_CE_CCM=y +CONFIG_CRYPTO_AES_ARM64_CE_BLK=y +CONFIG_CRYPTO_AES_ARM64_NEON_BLK=y +CONFIG_QMI_ENCDEC=y +CONFIG_CPUMAXFREQ=y +CONFIG_SERIAL_NUM=y +CONFIG_SECBOOT_FUSE=y +## MIUI ADD:START +## Multi userspace config support +CONFIG_ECRYPT_FS=y +CONFIG_KEYS=y +CONFIG_ENCRYPTED_KEYS=y +CONFIG_CRYPTO=y +CONFIG_CRYPTO_AES=y +CONFIG_CRYPTO_SHA1=y +CONFIG_CRYPTO_SHA256=y +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_GF128MUL=y +CONFIG_CRYPTO_SEQIV=y +CONFIG_CRYPTO_CTR=y +CONFIG_CRYPTO_XTS=y +CONFIG_NAMESPACES=y +#CONFIG_UTS_NS=y +#CONFIG_IPC_NS=y +## do not turn on user-namespaces as it enables +## CONFIG_UIDGID_STRICT_TYPE_CHECKS, which results in several compile +## errors +#CONFIG_USER_NS=y +#CONFIG_PID_NS=y +CONFIG_NET_NS=y +CONFIG_VETH=y +## END +CONFIG_FINGERPRINT=y +CONFIG_FINGERPRINT_GOODIX_GF3208=y +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_AW2013=y +CONFIG_FINGERPRINT_FPC1020=y + +CONFIG_DYNAMIC_DEBUG=y +CONFIG_DISABLE_TEMP_PROTECT=n +CONFIG_A13N_PMI8952=y + +#CONFIG_ZRAM_DEBUG=y +CONFIG_SWAP=y +CONFIG_MEMCG=y +CONFIG_MEMCG_SWAP=y +CONFIG_ANDROID_WHETSTONE=y +CONFIG_CGROUP_MEM_RES_CTLR=y +CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y + +#MIUI ADD +#Add CIFS Config +CONFIG_NETWORK_FILESYSTEMS=y +CONFIG_CIFS=y +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="iso8859-1" +CONFIG_NLS_CODEPAGE_936=y +CONFIG_NLS_CODEPAGE_950=y +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_UTF8=y +#MIUI END diff --git a/arch/arm64/configs/S88536AA2_defconfig b/arch/arm64/configs/S88536AA2_defconfig new file mode 100644 index 0000000000000..77d39e6ab7b60 --- /dev/null +++ b/arch/arm64/configs/S88536AA2_defconfig @@ -0,0 +1,773 @@ +CONFIG_AUDIT=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_RCU_FAST_NO_HZ=y +CONFIG_RCU_BOOST=y +CONFIG_RCU_NOCB_CPU=y +CONFIG_RCU_NOCB_CPU_ALL=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=n +CONFIG_CGROUPS=y +CONFIG_CGROUP_DEBUG=y +CONFIG_CGROUP_FREEZER=y +CONFIG_CGROUP_CPUACCT=y +CONFIG_RESOURCE_COUNTERS=y +CONFIG_CGROUP_SCHED=y +CONFIG_CPUSETS=y +CONFIG_RT_GROUP_SCHED=y +CONFIG_CFS_BANDWIDTH=y +CONFIG_SCHED_HMP=y +CONFIG_SCHED_CORE_CTL=y +CONFIG_SCHED_QHMP=y +CONFIG_NAMESPACES=y +# CONFIG_UTS_NS is not set +# CONFIG_PID_NS is not set +CONFIG_CIFS=y +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="iso8859-1" +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_CODEPAGE_936=y +CONFIG_NLS_CODEPAGE_950=y +CONFIG_NLS_ASCII=y +CONFIG_NLS_ISO8859_1=y +CONFIG_NLS_UTF8=y +# CONFIG_CIFS_STATS is not set +CONFIG_CIFS_WEAK_PW_HASH=y +CONFIG_CIFS_UPCALL=y +CONFIG_CIFS_XATTR=y +CONFIG_CIFS_POSIX=y +# CONFIG_CIFS_DEBUG2 is not set +CONFIG_CIFS_DFS_UPCALL=y +CONFIG_CIFS_ACL=y +CONFIG_CIFS_EXPERIMENTAL=y +CONFIG_SMB_FS=m +CONFIG_SMB_NLS_DEFAULT=y +CONFIG_SMB_NLS_REMOTE="cp850" +CONFIG_BLK_DEV_INITRD=y +CONFIG_RD_BZIP2=y +CONFIG_RD_LZMA=y +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_KALLSYMS_ALL=y +CONFIG_PSTORE_LAST_KMSG=y +CONFIG_EMBEDDED=y +CONFIG_PROFILING=y +CONFIG_CC_STACKPROTECTOR_STRONG=y +CONFIG_ARCH_MMAP_RND_COMPAT_BITS=16 +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODULE_FORCE_UNLOAD=y +CONFIG_MODVERSIONS=y +CONFIG_MODULE_SIG=y +CONFIG_MODULE_SIG_FORCE=y +CONFIG_MODULE_SIG_SHA512=y +CONFIG_PARTITION_ADVANCED=y +CONFIG_ARCH_MSM=y +CONFIG_ARCH_MSM8916=y +CONFIG_ARCH_MSM8917=y +CONFIG_ARCH_MSM8920=y +CONFIG_ARCH_MSM8940=y +CONFIG_ARCH_MSM8953=y +CONFIG_ARCH_MSM8937=y +CONFIG_ARCH_MSMCOBALT=y +CONFIG_PCI_MSM=y +CONFIG_SMP=y +CONFIG_SCHED_MC=y +CONFIG_PREEMPT=y +CONFIG_CLEANCACHE=y +CONFIG_CMA=y +CONFIG_CMA_DEBUGFS=y +CONFIG_ZSMALLOC=y +CONFIG_ZSMALLOC_STAT=y +CONFIG_ZCACHE=y +CONFIG_PROCESS_RECLAIM=y +CONFIG_SECCOMP=y +CONFIG_ARMV8_DEPRECATED=y +CONFIG_SWP_EMULATION=y +CONFIG_CP15_BARRIER_EMULATION=y +CONFIG_SETEND_EMULATION=y +CONFIG_BUILD_ARM64_APPENDED_DTB_IMAGE=y +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +CONFIG_COMPAT=y +CONFIG_PM_AUTOSLEEP=y +CONFIG_PM_WAKELOCKS=y +CONFIG_PM_WAKELOCKS_LIMIT=0 +# CONFIG_PM_WAKELOCKS_GC is not set +CONFIG_PM_RUNTIME=y +CONFIG_PM_DEBUG=y +CONFIG_SUSPEND_TIME=y +CONFIG_CPU_IDLE=y +CONFIG_CPU_FREQ=y +CONFIG_SCHED_FREQ_INPUT=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_INTERACTIVE=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_XFRM_USER=y +CONFIG_XFRM_STATISTICS=y +CONFIG_NET_KEY=y +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_IP_MULTIPLE_TABLES=y +CONFIG_IP_ROUTE_VERBOSE=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_INET_AH=y +CONFIG_INET_ESP=y +CONFIG_INET_IPCOMP=y +# CONFIG_INET_XFRM_MODE_BEET is not set +# CONFIG_INET_LRO is not set +CONFIG_INET_DIAG_DESTROY=y +CONFIG_IPV6=y +CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_ROUTE_INFO=y +CONFIG_IPV6_OPTIMISTIC_DAD=y +CONFIG_INET6_AH=y +CONFIG_INET6_ESP=y +CONFIG_INET6_IPCOMP=y +CONFIG_IPV6_MIP6=y +CONFIG_IPV6_MULTIPLE_TABLES=y +CONFIG_IPV6_SUBTREES=y +CONFIG_NETFILTER=y +CONFIG_NF_CONNTRACK=y +CONFIG_NF_CONNTRACK_SECMARK=y +CONFIG_NF_CONNTRACK_EVENTS=y +CONFIG_NF_CT_PROTO_DCCP=y +CONFIG_NF_CT_PROTO_SCTP=y +CONFIG_NF_CT_PROTO_UDPLITE=y +CONFIG_NF_CONNTRACK_AMANDA=y +CONFIG_NF_CONNTRACK_FTP=y +CONFIG_NF_CONNTRACK_H323=y +CONFIG_NF_CONNTRACK_IRC=y +CONFIG_NF_CONNTRACK_NETBIOS_NS=y +CONFIG_NF_CONNTRACK_PPTP=y +CONFIG_NF_CONNTRACK_SANE=y +CONFIG_NF_CONNTRACK_TFTP=y +CONFIG_NF_CT_NETLINK=y +CONFIG_NETFILTER_XT_TARGET_CLASSIFY=y +CONFIG_NETFILTER_XT_TARGET_CONNMARK=y +CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=y +CONFIG_NETFILTER_XT_TARGET_IDLETIMER=y +CONFIG_NETFILTER_XT_TARGET_HARDIDLETIMER=y +CONFIG_NETFILTER_XT_TARGET_LOG=y +CONFIG_NETFILTER_XT_TARGET_MARK=y +CONFIG_NETFILTER_XT_TARGET_NFLOG=y +CONFIG_NETFILTER_XT_TARGET_NFQUEUE=y +CONFIG_NETFILTER_XT_TARGET_NOTRACK=y +CONFIG_NETFILTER_XT_TARGET_TEE=y +CONFIG_NETFILTER_XT_TARGET_TPROXY=y +CONFIG_NETFILTER_XT_TARGET_TRACE=y +CONFIG_NETFILTER_XT_TARGET_SECMARK=y +CONFIG_NETFILTER_XT_TARGET_TCPMSS=y +CONFIG_NETFILTER_XT_MATCH_COMMENT=y +CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=y +CONFIG_NETFILTER_XT_MATCH_CONNMARK=y +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y +CONFIG_NETFILTER_XT_MATCH_DSCP=y +CONFIG_NETFILTER_XT_MATCH_ESP=y +CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=y +CONFIG_NETFILTER_XT_MATCH_HELPER=y +CONFIG_NETFILTER_XT_MATCH_IPRANGE=y +CONFIG_NETFILTER_XT_MATCH_LENGTH=y +CONFIG_NETFILTER_XT_MATCH_LIMIT=y +CONFIG_NETFILTER_XT_MATCH_MAC=y +CONFIG_NETFILTER_XT_MATCH_MARK=y +CONFIG_NETFILTER_XT_MATCH_MULTIPORT=y +CONFIG_NETFILTER_XT_MATCH_POLICY=y +CONFIG_NETFILTER_XT_MATCH_PKTTYPE=y +CONFIG_NETFILTER_XT_MATCH_QTAGUID=y +CONFIG_NETFILTER_XT_MATCH_QUOTA=y +CONFIG_NETFILTER_XT_MATCH_QUOTA2=y +CONFIG_NETFILTER_XT_MATCH_SOCKET=y +CONFIG_NETFILTER_XT_MATCH_STATE=y +CONFIG_NETFILTER_XT_MATCH_STATISTIC=y +CONFIG_NETFILTER_XT_MATCH_STRING=y +CONFIG_NETFILTER_XT_MATCH_TIME=y +CONFIG_NETFILTER_XT_MATCH_U32=y +CONFIG_NF_CONNTRACK_IPV4=y +CONFIG_IP_NF_IPTABLES=y +CONFIG_IP_NF_MATCH_AH=y +CONFIG_IP_NF_MATCH_ECN=y +CONFIG_IP_NF_MATCH_RPFILTER=y +CONFIG_IP_NF_MATCH_TTL=y +CONFIG_IP_NF_FILTER=y +CONFIG_IP_NF_TARGET_REJECT=y +CONFIG_IP_NF_NAT=y +CONFIG_IP_NF_TARGET_MASQUERADE=y +CONFIG_IP_NF_TARGET_NATTYPE_MODULE=y +CONFIG_IP_NF_TARGET_NETMAP=y +CONFIG_IP_NF_TARGET_REDIRECT=y +CONFIG_IP_NF_MANGLE=y +CONFIG_IP_NF_RAW=y +CONFIG_IP_NF_SECURITY=y +CONFIG_IP_NF_ARPTABLES=y +CONFIG_IP_NF_ARPFILTER=y +CONFIG_IP_NF_ARP_MANGLE=y +CONFIG_NF_CONNTRACK_IPV6=y +CONFIG_IP6_NF_IPTABLES=y +CONFIG_IP6_NF_MATCH_RPFILTER=y +CONFIG_IP6_NF_FILTER=y +CONFIG_IP6_NF_TARGET_REJECT=y +CONFIG_IP6_NF_MANGLE=y +CONFIG_IP6_NF_RAW=y +CONFIG_BRIDGE_NF_EBTABLES=y +CONFIG_BRIDGE_EBT_BROUTE=y +CONFIG_L2TP=y +CONFIG_L2TP_DEBUGFS=y +CONFIG_L2TP_V3=y +CONFIG_L2TP_IP=y +CONFIG_L2TP_ETH=y +CONFIG_BRIDGE=y +CONFIG_NET_SCHED=y +CONFIG_NET_SCH_HTB=y +CONFIG_NET_SCH_PRIO=y +CONFIG_NET_CLS_FW=y +CONFIG_NET_CLS_U32=y +CONFIG_CLS_U32_MARK=y +CONFIG_NET_CLS_FLOW=y +CONFIG_NET_EMATCH=y +CONFIG_NET_EMATCH_CMP=y +CONFIG_NET_EMATCH_NBYTE=y +CONFIG_NET_EMATCH_U32=y +CONFIG_NET_EMATCH_META=y +CONFIG_NET_EMATCH_TEXT=y +CONFIG_NET_CLS_ACT=y +CONFIG_RMNET_DATA=y +CONFIG_RMNET_DATA_FC=y +CONFIG_RMNET_DATA_DEBUG_PKT=y +CONFIG_SOCKEV_NLMCAST=y +CONFIG_BT=y +CONFIG_BT_RFCOMM=y +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=y +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_HIDP=y +CONFIG_MSM_BT_POWER=y +CONFIG_CFG80211=y +CONFIG_CFG80211_INTERNAL_REGDB=y +CONFIG_RFKILL=y +CONFIG_NFC_NQ=y +CONFIG_IPC_ROUTER=y +CONFIG_IPC_ROUTER_SECURITY=y +CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y +CONFIG_DMA_CMA=y +CONFIG_CMA_SIZE_MBYTES=40 +CONFIG_ZRAM=y +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_SIZE=8192 +CONFIG_UID_STAT=y +CONFIG_QSEECOM=y +CONFIG_HDCP_QSEECOM=y +CONFIG_UID_CPUTIME=y +CONFIG_USB_EXT_TYPE_C_PERICOM=y +CONFIG_MSM_ULTRASOUND=y +CONFIG_SCSI=y +CONFIG_BLK_DEV_SD=y +CONFIG_CHR_DEV_SG=y +CONFIG_CHR_DEV_SCH=y +CONFIG_SCSI_CONSTANTS=y +CONFIG_SCSI_LOGGING=y +CONFIG_SCSI_SCAN_ASYNC=y +CONFIG_SCSI_UFSHCD=y +CONFIG_SCSI_UFSHCD_PLATFORM=y +CONFIG_SCSI_UFS_QCOM=y +CONFIG_SCSI_UFS_QCOM_ICE=y +CONFIG_MD=y +CONFIG_BLK_DEV_DM=y +CONFIG_DM_CRYPT=y +CONFIG_DM_REQ_CRYPT=y +CONFIG_DM_VERITY=y +CONFIG_DM_VERITY_FEC=y +CONFIG_NETDEVICES=y +CONFIG_DUMMY=y +CONFIG_TUN=y +CONFIG_RNDIS_IPA=y +CONFIG_MSM_RMNET_BAM=y +CONFIG_PPP=y +CONFIG_PPP_BSDCOMP=y +CONFIG_PPP_DEFLATE=y +CONFIG_PPP_FILTER=y +CONFIG_PPP_MPPE=y +CONFIG_PPP_MULTILINK=y +CONFIG_PPPOE=y +CONFIG_PPPOL2TP=y +CONFIG_PPPOLAC=y +CONFIG_PPPOPNS=y +CONFIG_PPP_ASYNC=y +CONFIG_PPP_SYNC_TTY=y +CONFIG_USB_USBNET=y +CONFIG_WCNSS_CORE=y +CONFIG_WCNSS_CORE_PRONTO=y +CONFIG_WCNSS_REGISTER_DUMP_ON_BITE=y +CONFIG_WCNSS_MEM_PRE_ALLOC=y +CONFIG_CNSS_CRYPTO=y +CONFIG_ATH_CARDS=y +CONFIG_WIL6210=m +CONFIG_CNSS=y +CONFIG_CLD_LL_CORE=y +CONFIG_BUS_AUTO_SUSPEND=y +CONFIG_INPUT_EVDEV=y +CONFIG_INPUT_EVBUG=m +CONFIG_INPUT_KEYRESET=y +CONFIG_KEYBOARD_GPIO=y +# CONFIG_INPUT_MOUSE is not set +CONFIG_INPUT_JOYSTICK=y +CONFIG_JOYSTICK_XPAD=y +CONFIG_INPUT_TABLET=y +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_CORE_v21=y +CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_RMI_DEV_v21=y +CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_FW_UPDATE_v21=y +CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_CORE_v26=y +CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_RMI_DEV_v26=y +CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_FW_UPDATE_v26=y +CONFIG_TOUCHSCREEN_ATMEL_MXT=y +CONFIG_TOUCHSCREEN_GEN_VKEYS=y +CONFIG_TOUCHSCREEN_FT5336=y +CONFIG_FT_SECURE_TOUCH=y +CONFIG_TOUCHSCREEN_MAXIM_STI=y +CONFIG_INPUT_MISC=y +CONFIG_INPUT_HBTP_INPUT=n +CONFIG_INPUT_KEYCHORD=y +CONFIG_INPUT_UINPUT=y +CONFIG_INPUT_GPIO=y +# CONFIG_VT is not set +# CONFIG_LEGACY_PTYS is not set +CONFIG_SERIAL_MSM_HS=y +CONFIG_SERIAL_MSM_HSL=y +CONFIG_SERIAL_MSM_HSL_CONSOLE=y +CONFIG_SERIAL_MSM_SMD=y +CONFIG_DIAG_CHAR=y +CONFIG_HW_RANDOM=y +CONFIG_HW_RANDOM_MSM_LEGACY=y +CONFIG_MSM_SMD_PKT=y +CONFIG_MSM_ADSPRPC=y +CONFIG_MSM_RDBG=m +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_MSM_V2=y +CONFIG_SLIMBUS=y +CONFIG_SLIMBUS_MSM_NGD=y +CONFIG_SOUNDWIRE=y +CONFIG_SPI=y +CONFIG_SPI_QUP=y +CONFIG_SPI_SPIDEV=m +CONFIG_PINCTRL_MSM8952=y +CONFIG_PINCTRL_MSM8937=y +CONFIG_PINCTRL_MSMCOBALT=y +CONFIG_PINCTRL_MSM8917=y +CONFIG_PINCTRL_MSM8940=y +CONFIG_PINCTRL_MSM8953=y +CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_QPNP_PIN=y +CONFIG_SMB1351_USB_CHARGER=n +CONFIG_SMB135X_CHARGER=n +CONFIG_QPNP_SMBCHARGER=y +CONFIG_QPNP_FG=y +CONFIG_BATTERY_BCL=y +CONFIG_MSM_BCL_CTL=y +CONFIG_MSM_BCL_PERIPHERAL_CTL=y +CONFIG_POWER_RESET_MSM=y +CONFIG_MSM_DLOAD_MODE=y +CONFIG_MSM_PM=y +CONFIG_MSM_APM=y +CONFIG_SENSORS_EPM_ADC=y +CONFIG_SENSORS_QPNP_ADC_VOLTAGE=y +CONFIG_SENSORS_QPNP_ADC_CURRENT=y +CONFIG_THERMAL=y +CONFIG_THERMAL_TSENS8974=y +CONFIG_LIMITS_MONITOR=y +CONFIG_LIMITS_LITE_HW=y +CONFIG_THERMAL_MONITOR=y +CONFIG_THERMAL_QPNP=y +CONFIG_THERMAL_QPNP_ADC_TM=y +CONFIG_WCD9335_CODEC=y +CONFIG_REGULATOR=y +CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_REGULATOR_STUB=y +CONFIG_REGULATOR_FAN53555=y +CONFIG_REGULATOR_MEM_ACC=y +CONFIG_REGULATOR_RPM_SMD=y +CONFIG_REGULATOR_QPNP=y +CONFIG_REGULATOR_QPNP_LABIBB=y +CONFIG_REGULATOR_SPM=y +CONFIG_REGULATOR_CPR=y +CONFIG_REGULATOR_CPR3_HMSS=y +CONFIG_REGULATOR_CPR3_MMSS=y +CONFIG_REGULATOR_KRYO=y +CONFIG_MEDIA_SUPPORT=y +CONFIG_MEDIA_CAMERA_SUPPORT=y +CONFIG_MEDIA_RADIO_SUPPORT=y +CONFIG_MEDIA_CONTROLLER=y +CONFIG_VIDEO_V4L2_SUBDEV_API=y +CONFIG_V4L_PLATFORM_DRIVERS=y +CONFIG_SOC_CAMERA=y +CONFIG_SOC_CAMERA_PLATFORM=y +CONFIG_MSM_VIDC_V4L2=y +CONFIG_MSM_VIDC_VMEM=y +CONFIG_MSM_VIDC_GOVERNORS=y +CONFIG_MSM_CAMERA=y +CONFIG_MSM_CAMERA_DEBUG=y +CONFIG_MSMB_CAMERA=y +CONFIG_MSMB_CAMERA_DEBUG=y +CONFIG_MSM_CAMERA_SENSOR=y +CONFIG_MSM_CPP=y +CONFIG_MSM_CCI=y +CONFIG_MSM_CSI20_HEADER=y +CONFIG_MSM_CSI22_HEADER=y +CONFIG_MSM_CSI30_HEADER=y +CONFIG_MSM_CSI31_HEADER=y +CONFIG_MSM_CSIPHY=y +CONFIG_MSM_CSID=y +CONFIG_MSM_EEPROM=y +CONFIG_MSM_ISPIF_V2=y +CONFIG_IMX134=y +CONFIG_IMX132=y +CONFIG_OV9724=y +CONFIG_OV5648=y +CONFIG_GC0339=y +CONFIG_OV8825=y +CONFIG_OV8865=y +CONFIG_s5k4e1=y +CONFIG_OV12830=y +CONFIG_MSM_V4L2_VIDEO_OVERLAY_DEVICE=y +CONFIG_MSMB_JPEG=y +CONFIG_MSM_FD=y +CONFIG_RADIO_IRIS=y +CONFIG_RADIO_IRIS_TRANSPORT=y +CONFIG_RADIO_SILABS=y +CONFIG_MSM_KGSL=y +CONFIG_FB=y +CONFIG_FB_MSM=y +CONFIG_MSM_DBA=y +CONFIG_MSM_DBA_ADV7533=y +CONFIG_FB_MSM_MDSS=y +CONFIG_FB_MSM_MDSS_WRITEBACK=y +CONFIG_FB_MSM_MDSS_XLOG_DEBUG=y +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_SOUND=y +CONFIG_SND=y +CONFIG_SND_USB_AUDIO=y +CONFIG_SND_SOC=y +CONFIG_SND_SOC_MSM8X16=y +CONFIG_SND_SOC_AW87319=y +CONFIG_HIDRAW=y +CONFIG_UHID=y +CONFIG_HID_APPLE=y +CONFIG_HID_ELECOM=y +CONFIG_HID_MAGICMOUSE=y +CONFIG_HID_MICROSOFT=y +CONFIG_HID_MULTITOUCH=y +CONFIG_USB_HIDDEV=y +CONFIG_USB_ANNOUNCE_NEW_DEVICES=y +CONFIG_USB_MON=y +CONFIG_USB_XHCI_HCD=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_MSM=y +CONFIG_USB_EHCI_MSM_HSIC=y +CONFIG_USB_ACM=y +CONFIG_USB_STORAGE=y +CONFIG_USB_STORAGE_DATAFAB=y +CONFIG_USB_STORAGE_FREECOM=y +CONFIG_USB_STORAGE_ISD200=y +CONFIG_USB_STORAGE_USBAT=y +CONFIG_USB_STORAGE_SDDR09=y +CONFIG_USB_STORAGE_SDDR55=y +CONFIG_USB_STORAGE_JUMPSHOT=y +CONFIG_USB_STORAGE_ALAUDA=y +CONFIG_USB_STORAGE_KARMA=y +CONFIG_USB_STORAGE_CYPRESS_ATACB=y +CONFIG_USB_DWC3=y +CONFIG_USB_SERIAL=y +CONFIG_USB_EHSET_TEST_FIXTURE=y +CONFIG_NOP_USB_XCEIV=y +CONFIG_USB_MSM_HSPHY=y +CONFIG_USB_MSM_SSPHY_QMP=y +CONFIG_MSM_QUSB_PHY=y +CONFIG_DUAL_ROLE_USB_INTF=y +CONFIG_USB_GADGET=y +CONFIG_USB_GADGET_DEBUG_FILES=y +CONFIG_USB_GADGET_DEBUG_FS=y +CONFIG_USB_GADGET_VBUS_DRAW=500 +CONFIG_USB_CI13XXX_MSM=y +CONFIG_USB_G_ANDROID=y +CONFIG_MMC=y +CONFIG_MMC_PERF_PROFILING=y +CONFIG_MMC_CLKGATE=y +CONFIG_MMC_PARANOID_SD_INIT=y +CONFIG_MMC_BLOCK_MINORS=32 +CONFIG_MMC_BLOCK_DEFERRED_RESUME=y +CONFIG_MMC_TEST=m +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MMC_SDHCI_MSM=y +CONFIG_MMC_SDHCI_MSM_ICE=y +CONFIG_MMC_CQ_HCI=y +CONFIG_LEDS_QPNP=y +CONFIG_LEDS_QPNP_FLASH=y +CONFIG_LEDS_QPNP_WLED=y +CONFIG_LEDS_TRIGGERS=y +CONFIG_SWITCH=y +CONFIG_EDAC=y +CONFIG_EDAC_MM_EDAC=y +CONFIG_EDAC_CORTEX_ARM64=y +CONFIG_EDAC_CORTEX_ARM64_PANIC_ON_CE=y +CONFIG_EDAC_CORTEX_ARM64_PANIC_ON_UE=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_DRV_QPNP=y +CONFIG_DMADEVICES=y +CONFIG_QCOM_SPS_DMA=y +CONFIG_UIO=y +CONFIG_UIO_MSM_SHAREDMEM=y +CONFIG_STAGING=y +CONFIG_ANDROID=y +CONFIG_ANDROID_BINDER_IPC=y +CONFIG_ASHMEM=y +CONFIG_ANDROID_TIMED_GPIO=y +CONFIG_ANDROID_LOW_MEMORY_KILLER=y +CONFIG_SW_SYNC_USER=y +CONFIG_ION=y +CONFIG_ION_MSM=y +CONFIG_MSM_AVTIMER=y +CONFIG_MSM_BUS_SCALING=y +CONFIG_BUS_TOPOLOGY_ADHOC=y +CONFIG_QPNP_POWER_ON=y +CONFIG_QPNP_REVID=y +CONFIG_QPNP_COINCELL=y +CONFIG_SPS=y +CONFIG_USB_BAM=y +CONFIG_SPS_SUPPORT_NDP_BAM=y +CONFIG_IPA=y +CONFIG_RMNET_IPA=y +CONFIG_QPNP_HAPTIC=y +CONFIG_BW_MONITOR=y +CONFIG_MSM_SPMI=y +CONFIG_MSM_SPMI_PMIC_ARB=y +CONFIG_MSM_QPNP_INT=y +CONFIG_CP_ACCESS64=y +CONFIG_MSM_INRUSH_CURRENT_MITIGATION=y +CONFIG_MSM_ADSP_LOADER=y +CONFIG_MSM_MEMORY_DUMP_V2=y +CONFIG_MSM_DEBUG_LAR_UNLOCK=y +CONFIG_MSM_BOOT_STATS=y +CONFIG_MSM_CPUSS_DUMP=y +CONFIG_MSM_COMMON_LOG=y +CONFIG_MSM_DDR_HEALTH=y +CONFIG_MSM_WATCHDOG_V2=y +CONFIG_MSM_FORCE_WDOG_BITE_ON_PANIC=y +CONFIG_MSM_CORE_HANG_DETECT=y +CONFIG_MSM_RPM_SMD=y +CONFIG_MSM_RPM_RBCPR_STATS_V2_LOG=y +CONFIG_MSM_RPM_LOG=y +CONFIG_MSM_RPM_STATS_LOG=y +CONFIG_MSM_RUN_QUEUE_STATS=y +CONFIG_MSM_SCM=y +CONFIG_MSM_SCM_XPU=y +CONFIG_MSM_MPM_OF=y +CONFIG_MSM_SMEM=y +CONFIG_MSM_SMD=y +CONFIG_MSM_SMD_DEBUG=y +CONFIG_MSM_GLINK=y +CONFIG_MSM_GLINK_LOOPBACK_SERVER=y +CONFIG_MSM_GLINK_SMD_XPRT=y +CONFIG_MSM_GLINK_SMEM_NATIVE_XPRT=y +CONFIG_MSM_SMEM_LOGGING=y +CONFIG_MSM_SMP2P=y +CONFIG_MSM_SMP2P_TEST=y +CONFIG_MSM_SPM=y +CONFIG_MSM_L2_SPM=y +CONFIG_MSM_QMI_INTERFACE=y +CONFIG_MSM_DCC=y +CONFIG_MSM_IPC_ROUTER_SMD_XPRT=y +CONFIG_MSM_EVENT_TIMER=y +CONFIG_MSM_IPC_ROUTER_GLINK_XPRT=y +CONFIG_MSM_GLINK_PKT=y +CONFIG_MSM_SUBSYSTEM_RESTART=y +CONFIG_MSM_SYSMON_COMM=y +CONFIG_MSM_PIL=y +CONFIG_MSM_PIL_SSR_GENERIC=y +CONFIG_MSM_PIL_MSS_QDSP6V5=y +CONFIG_TRACER_PKT=y +CONFIG_MSM_BAM_DMUX=y +CONFIG_MSM_PERFORMANCE=y +# CONFIG_MSM_PERFORMANCE_HOTPLUG_ON is not set +CONFIG_MSM_KERNEL_PROTECT=y +CONFIG_MSM_KERNEL_PROTECT_MPU=y +CONFIG_MEM_SHARE_QMI_SERVICE=y +CONFIG_MSM_CLK_CONTROLLER_V2=y +CONFIG_MSM_MDSS_PLL=y +CONFIG_REMOTE_SPINLOCK_MSM=y +CONFIG_MSM_IOMMU_V1=y +CONFIG_ARM_SMMU=y +CONFIG_IOMMU_DEBUG=y +CONFIG_IOMMU_DEBUG_TRACKING=y +CONFIG_IOMMU_TESTS=y +CONFIG_SPDM_SCM=y +CONFIG_DEVFREQ_SPDM=y +CONFIG_PWM=y +CONFIG_PWM_QPNP=y +CONFIG_ARM_GIC_PANIC_HANDLER=y +CONFIG_CORESIGHT=y +CONFIG_CORESIGHT_EVENT=y +CONFIG_CORESIGHT_FUSE=y +CONFIG_CORESIGHT_CTI=y +CONFIG_CORESIGHT_TMC=y +CONFIG_CORESIGHT_TPIU=y +CONFIG_CORESIGHT_FUNNEL=y +CONFIG_CORESIGHT_REPLICATOR=y +CONFIG_CORESIGHT_TPDA=y +CONFIG_CORESIGHT_TPDM=y +CONFIG_CORESIGHT_DBGUI=y +CONFIG_CORESIGHT_STM=y +CONFIG_CORESIGHT_HWEVENT=y +CONFIG_CORESIGHT_ETMV4=y +CONFIG_CORESIGHT_REMOTE_ETM=y +CONFIG_CORESIGHT_QPDI=y +CONFIG_SENSORS_SSC=y +CONFIG_MSM_TZ_LOG=y +CONFIG_EXT2_FS=y +CONFIG_EXT2_FS_XATTR=y +CONFIG_EXT3_FS=y +# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set +CONFIG_EXT4_FS=y +CONFIG_EXT4_FS_SECURITY=y +CONFIG_QUOTA=y +# CONFIG_PRINT_QUOTA_WARNING is not set +CONFIG_FUSE_FS=y +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_ASCII=y +CONFIG_NLS_ISO8859_1=y +CONFIG_PRINTK_TIME=y +CONFIG_LOG_BUF_MAGIC=y +CONFIG_DYNAMIC_DEBUG=y +CONFIG_DEBUG_INFO=y +CONFIG_PAGE_OWNER=y +CONFIG_MAGIC_SYSRQ=y +CONFIG_SLUB_DEBUG_PANIC_ON=y +CONFIG_DEBUG_OBJECTS=y +CONFIG_DEBUG_OBJECTS_FREE=y +CONFIG_DEBUG_OBJECTS_TIMERS=y +CONFIG_DEBUG_OBJECTS_WORK=y +CONFIG_DEBUG_OBJECTS_RCU_HEAD=y +CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER=y +CONFIG_SLUB_DEBUG_ON=y +CONFIG_DEBUG_KMEMLEAK=y +CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE=4000 +CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y +CONFIG_DEBUG_STACK_USAGE=y +CONFIG_DEBUG_MEMORY_INIT=y +CONFIG_LOCKUP_DETECTOR=y +CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=y +# CONFIG_DETECT_HUNG_TASK is not set +CONFIG_PANIC_TIMEOUT=5 +CONFIG_PANIC_ON_RECURSIVE_FAULT=y +CONFIG_PANIC_ON_SCHED_BUG=y +CONFIG_PANIC_ON_RT_THROTTLING=y +CONFIG_SCHEDSTATS=y +CONFIG_TIMER_STATS=y +CONFIG_DEBUG_SPINLOCK=y +CONFIG_DEBUG_MUTEXES=y +CONFIG_DEBUG_ATOMIC_SLEEP=y +CONFIG_DEBUG_LIST=y +CONFIG_FAULT_INJECTION=y +CONFIG_FAIL_PAGE_ALLOC=y +CONFIG_UFS_FAULT_INJECTION=y +CONFIG_FAULT_INJECTION_DEBUG_FS=y +CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y +CONFIG_MSM_RTB=y +CONFIG_MSM_RTB_SEPARATE_CPUS=y +CONFIG_IPC_LOGGING=y +CONFIG_BLK_DEV_IO_TRACE=y +CONFIG_CPU_FREQ_SWITCH_PROFILER=y +CONFIG_PANIC_ON_DATA_CORRUPTION=y +CONFIG_DEBUG_SET_MODULE_RONX=y +CONFIG_FREE_PAGES_RDONLY=y +CONFIG_KERNEL_TEXT_RDONLY=y +CONFIG_SECURITY=y +CONFIG_SECURITY_NETWORK=y +CONFIG_LSM_MMAP_MIN_ADDR=4096 +CONFIG_SECURITY_SELINUX=y +CONFIG_CRYPTO_NULL=y +CONFIG_CRYPTO_CTR=y +CONFIG_CRYPTO_XCBC=y +CONFIG_CRYPTO_MD4=y +CONFIG_CRYPTO_TWOFISH=y +CONFIG_CRYPTO_DEV_QCRYPTO=y +CONFIG_CRYPTO_DEV_QCOM_MSM_QCE=y +CONFIG_CRYPTO_DEV_QCEDEV=y +CONFIG_CRYPTO_DEV_OTA_CRYPTO=y +CONFIG_CRYPTO_DEV_QCOM_ICE=y +CONFIG_ARM64_CRYPTO=y +CONFIG_CRYPTO_SHA1_ARM64_CE=y +CONFIG_CRYPTO_SHA2_ARM64_CE=y +CONFIG_CRYPTO_GHASH_ARM64_CE=y +CONFIG_CRYPTO_AES_ARM64_CE=y +CONFIG_CRYPTO_AES_ARM64_CE_CCM=y +CONFIG_CRYPTO_AES_ARM64_CE_BLK=y +CONFIG_CRYPTO_AES_ARM64_NEON_BLK=y +CONFIG_QMI_ENCDEC=y +CONFIG_CPUMAXFREQ=y +CONFIG_SERIAL_NUM=y +CONFIG_SECBOOT_FUSE=y +## MIUI ADD:START +## Multi userspace config support +CONFIG_ECRYPT_FS=y +CONFIG_KEYS=y +CONFIG_ENCRYPTED_KEYS=y +CONFIG_CRYPTO=y +CONFIG_CRYPTO_AES=y +CONFIG_CRYPTO_SHA1=y +CONFIG_CRYPTO_SHA256=y +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_GF128MUL=y +CONFIG_CRYPTO_SEQIV=y +CONFIG_CRYPTO_CTR=y +CONFIG_CRYPTO_XTS=y +CONFIG_NAMESPACES=y +#CONFIG_UTS_NS=y +#CONFIG_IPC_NS=y +## do not turn on user-namespaces as it enables +## CONFIG_UIDGID_STRICT_TYPE_CHECKS, which results in several compile +## errors +#CONFIG_USER_NS=y +#CONFIG_PID_NS=y +CONFIG_NET_NS=y +CONFIG_VETH=y +## END +CONFIG_FINGERPRINT=y +CONFIG_FINGERPRINT_GOODIX_GF3208=y +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_AW2013=y +CONFIG_FINGERPRINT_FPC1020=y +CONFIG_DISABLE_TEMP_PROTECT=n +CONFIG_A13N_PMI8952=y + +#CONFIG_ZRAM_DEBUG=y +CONFIG_SWAP=y +CONFIG_MEMCG=y +CONFIG_MEMCG_SWAP=y +CONFIG_ANDROID_WHETSTONE=y +CONFIG_CGROUP_MEM_RES_CTLR=y +CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y + +#MIUI ADD +#Add CIFS Config +CONFIG_NETWORK_FILESYSTEMS=y +CONFIG_CIFS=y +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="iso8859-1" +CONFIG_NLS_CODEPAGE_936=y +CONFIG_NLS_CODEPAGE_950=y +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_UTF8=y +#MIUI END + diff --git a/arch/arm64/configs/rosy-perf_defconfig b/arch/arm64/configs/rosy-perf_defconfig new file mode 100644 index 0000000000000..772a4b361c24a --- /dev/null +++ b/arch/arm64/configs/rosy-perf_defconfig @@ -0,0 +1,715 @@ +CONFIG_LOCALVERSION="-perf" +CONFIG_AUDIT=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_IRQ_TIME_ACCOUNTING=y +CONFIG_RCU_FAST_NO_HZ=y +CONFIG_RCU_BOOST=y +CONFIG_RCU_NOCB_CPU=y +CONFIG_RCU_NOCB_CPU_ALL=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=n +CONFIG_CGROUPS=y +CONFIG_CGROUP_FREEZER=y +CONFIG_CPUSETS=y +CONFIG_CGROUP_CPUACCT=y +CONFIG_RESOURCE_COUNTERS=y +CONFIG_CGROUP_SCHED=y +CONFIG_RT_GROUP_SCHED=y +CONFIG_SCHED_HMP=y +CONFIG_NAMESPACES=y +# CONFIG_UTS_NS is not set +# CONFIG_PID_NS is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_RD_BZIP2=y +CONFIG_RD_LZMA=y +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_KALLSYMS_ALL=y +CONFIG_EMBEDDED=y +# CONFIG_SLUB_DEBUG is not set +CONFIG_PROFILING=y +CONFIG_CC_STACKPROTECTOR_STRONG=y +CONFIG_ARCH_MMAP_RND_COMPAT_BITS=16 +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODULE_FORCE_UNLOAD=y +CONFIG_MODVERSIONS=y +CONFIG_MODULE_SIG=y +CONFIG_MODULE_SIG_FORCE=y +CONFIG_MODULE_SIG_SHA512=y +CONFIG_PARTITION_ADVANCED=y +CONFIG_ARCH_MSM=y +CONFIG_ARCH_MSM8916=y +CONFIG_ARCH_MSM8940=y +CONFIG_ARCH_MSM8953=y +CONFIG_ARCH_SDM450=y +CONFIG_ARCH_MSM8937=y +CONFIG_ARCH_MSMCOBALT=y +CONFIG_PCI_MSM=y +CONFIG_SMP=y +CONFIG_SCHED_MC=y +CONFIG_PREEMPT=y +CONFIG_CLEANCACHE=y +CONFIG_CMA=y +CONFIG_CMA_DEBUGFS=y +CONFIG_ZSMALLOC=y +CONFIG_ZCACHE=y +CONFIG_PROCESS_RECLAIM=y +CONFIG_SECCOMP=y +CONFIG_RTMM=y +CONFIG_ARMV8_DEPRECATED=y +CONFIG_SWP_EMULATION=y +CONFIG_CP15_BARRIER_EMULATION=y +CONFIG_SETEND_EMULATION=y +CONFIG_BUILD_ARM64_APPENDED_DTB_IMAGE=y +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +CONFIG_COMPAT=y +CONFIG_PM_AUTOSLEEP=y +CONFIG_PM_WAKELOCKS=y +CONFIG_PM_WAKELOCKS_LIMIT=0 +# CONFIG_PM_WAKELOCKS_GC is not set +CONFIG_PM_RUNTIME=y +CONFIG_PM_DEBUG=y +CONFIG_SUSPEND_TIME=y +CONFIG_CPU_IDLE=y +CONFIG_CPU_FREQ=y +CONFIG_SCHED_FREQ_INPUT=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_INTERACTIVE=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_XFRM_USER=y +CONFIG_XFRM_STATISTICS=y +CONFIG_NET_KEY=y +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_IP_MULTIPLE_TABLES=y +CONFIG_IP_ROUTE_VERBOSE=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_INET_AH=y +CONFIG_INET_ESP=y +CONFIG_INET_IPCOMP=y +# CONFIG_INET_XFRM_MODE_BEET is not set +# CONFIG_INET_LRO is not set +CONFIG_INET_DIAG_DESTROY=y +CONFIG_IPV6=y +CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_ROUTE_INFO=y +CONFIG_IPV6_OPTIMISTIC_DAD=y +CONFIG_INET6_AH=y +CONFIG_INET6_ESP=y +CONFIG_INET6_IPCOMP=y +CONFIG_IPV6_MIP6=y +CONFIG_IPV6_MULTIPLE_TABLES=y +CONFIG_IPV6_SUBTREES=y +CONFIG_NETFILTER=y +CONFIG_NF_CONNTRACK=y +CONFIG_NF_CONNTRACK_SECMARK=y +CONFIG_NF_CONNTRACK_EVENTS=y +CONFIG_NF_CT_PROTO_DCCP=y +CONFIG_NF_CT_PROTO_SCTP=y +CONFIG_NF_CT_PROTO_UDPLITE=y +CONFIG_NF_CONNTRACK_AMANDA=y +CONFIG_NF_CONNTRACK_FTP=y +CONFIG_NF_CONNTRACK_H323=y +CONFIG_NF_CONNTRACK_IRC=y +CONFIG_NF_CONNTRACK_NETBIOS_NS=y +CONFIG_NF_CONNTRACK_PPTP=y +CONFIG_NF_CONNTRACK_SANE=y +CONFIG_NF_CONNTRACK_TFTP=y +CONFIG_NF_CT_NETLINK=y +CONFIG_NETFILTER_XT_TARGET_CLASSIFY=y +CONFIG_NETFILTER_XT_TARGET_CONNMARK=y +CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=y +CONFIG_NETFILTER_XT_TARGET_IDLETIMER=y +CONFIG_NETFILTER_XT_TARGET_HARDIDLETIMER=y +CONFIG_NETFILTER_XT_TARGET_LOG=y +CONFIG_NETFILTER_XT_TARGET_MARK=y +CONFIG_NETFILTER_XT_TARGET_NFLOG=y +CONFIG_NETFILTER_XT_TARGET_NFQUEUE=y +CONFIG_NETFILTER_XT_TARGET_NOTRACK=y +CONFIG_NETFILTER_XT_TARGET_TEE=y +CONFIG_NETFILTER_XT_TARGET_TPROXY=y +CONFIG_NETFILTER_XT_TARGET_TRACE=y +CONFIG_NETFILTER_XT_TARGET_SECMARK=y +CONFIG_NETFILTER_XT_TARGET_TCPMSS=y +CONFIG_NETFILTER_XT_MATCH_COMMENT=y +CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=y +CONFIG_NETFILTER_XT_MATCH_CONNMARK=y +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y +CONFIG_NETFILTER_XT_MATCH_DSCP=y +CONFIG_NETFILTER_XT_MATCH_ESP=y +CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=y +CONFIG_NETFILTER_XT_MATCH_HELPER=y +CONFIG_NETFILTER_XT_MATCH_IPRANGE=y +CONFIG_NETFILTER_XT_MATCH_LENGTH=y +CONFIG_NETFILTER_XT_MATCH_LIMIT=y +CONFIG_NETFILTER_XT_MATCH_MAC=y +CONFIG_NETFILTER_XT_MATCH_MARK=y +CONFIG_NETFILTER_XT_MATCH_MULTIPORT=y +CONFIG_NETFILTER_XT_MATCH_POLICY=y +CONFIG_NETFILTER_XT_MATCH_PKTTYPE=y +CONFIG_NETFILTER_XT_MATCH_QTAGUID=y +CONFIG_NETFILTER_XT_MATCH_QUOTA=y +CONFIG_NETFILTER_XT_MATCH_QUOTA2=y +CONFIG_NETFILTER_XT_MATCH_SOCKET=y +CONFIG_NETFILTER_XT_MATCH_STATE=y +CONFIG_NETFILTER_XT_MATCH_STATISTIC=y +CONFIG_NETFILTER_XT_MATCH_STRING=y +CONFIG_NETFILTER_XT_MATCH_TIME=y +CONFIG_NETFILTER_XT_MATCH_U32=y +CONFIG_NF_CONNTRACK_IPV4=y +CONFIG_IP_NF_IPTABLES=y +CONFIG_IP_NF_MATCH_AH=y +CONFIG_IP_NF_MATCH_ECN=y +CONFIG_IP_NF_MATCH_RPFILTER=y +CONFIG_IP_NF_MATCH_TTL=y +CONFIG_IP_NF_FILTER=y +CONFIG_IP_NF_TARGET_REJECT=y +CONFIG_IP_NF_NAT=y +CONFIG_IP_NF_TARGET_MASQUERADE=y +CONFIG_IP_NF_TARGET_NATTYPE_MODULE=y +CONFIG_IP_NF_TARGET_NETMAP=y +CONFIG_IP_NF_TARGET_REDIRECT=y +CONFIG_IP_NF_MANGLE=y +CONFIG_IP_NF_RAW=y +CONFIG_IP_NF_SECURITY=y +CONFIG_IP_NF_ARPTABLES=y +CONFIG_IP_NF_ARPFILTER=y +CONFIG_IP_NF_ARP_MANGLE=y +CONFIG_NF_CONNTRACK_IPV6=y +CONFIG_IP6_NF_IPTABLES=y +CONFIG_IP6_NF_MATCH_RPFILTER=y +CONFIG_IP6_NF_FILTER=y +CONFIG_IP6_NF_TARGET_REJECT=y +CONFIG_IP6_NF_MANGLE=y +CONFIG_IP6_NF_RAW=y +CONFIG_BRIDGE_NF_EBTABLES=y +CONFIG_BRIDGE_EBT_BROUTE=y +CONFIG_L2TP=y +CONFIG_L2TP_DEBUGFS=y +CONFIG_L2TP_V3=y +CONFIG_L2TP_IP=y +CONFIG_L2TP_ETH=y +CONFIG_BRIDGE=y +CONFIG_NET_SCHED=y +CONFIG_NET_SCH_HTB=y +CONFIG_NET_SCH_PRIO=y +CONFIG_NET_CLS_FW=y +CONFIG_NET_CLS_U32=y +CONFIG_CLS_U32_MARK=y +CONFIG_NET_CLS_FLOW=y +CONFIG_NET_EMATCH=y +CONFIG_NET_EMATCH_CMP=y +CONFIG_NET_EMATCH_NBYTE=y +CONFIG_NET_EMATCH_U32=y +CONFIG_NET_EMATCH_META=y +CONFIG_NET_EMATCH_TEXT=y +CONFIG_NET_CLS_ACT=y +CONFIG_RMNET_DATA=y +CONFIG_RMNET_DATA_FC=y +#CONFIG_RMNET_DATA_DEBUG_PKT=y +CONFIG_SOCKEV_NLMCAST=y +CONFIG_BT=y +CONFIG_MSM_BT_POWER=y +CONFIG_CFG80211=y +CONFIG_CFG80211_INTERNAL_REGDB=y +CONFIG_RFKILL=y +CONFIG_NFC_NQ=y +CONFIG_IPC_ROUTER=y +CONFIG_IPC_ROUTER_SECURITY=y +CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y +CONFIG_DMA_CMA=y +CONFIG_ZRAM=y +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_SIZE=8192 +CONFIG_UID_STAT=y +CONFIG_QSEECOM=y +CONFIG_HDCP_QSEECOM=y +CONFIG_UID_CPUTIME=y +CONFIG_USB_EXT_TYPE_C_PERICOM=y +CONFIG_MSM_ULTRASOUND=y +CONFIG_SCSI=y +CONFIG_BLK_DEV_SD=y +CONFIG_CHR_DEV_SG=y +CONFIG_CHR_DEV_SCH=y +CONFIG_SCSI_CONSTANTS=y +CONFIG_SCSI_LOGGING=y +CONFIG_SCSI_SCAN_ASYNC=y +CONFIG_SCSI_UFSHCD=y +CONFIG_SCSI_UFSHCD_PLATFORM=y +CONFIG_SCSI_UFS_QCOM=y +CONFIG_SCSI_UFS_QCOM_ICE=y +CONFIG_MD=y +CONFIG_BLK_DEV_DM=y +CONFIG_DM_CRYPT=y +CONFIG_DM_REQ_CRYPT=y +CONFIG_DM_UEVENT=y +CONFIG_DM_VERITY=y +CONFIG_DM_VERITY_FEC=y +CONFIG_NETDEVICES=y +CONFIG_DUMMY=y +CONFIG_TUN=y +CONFIG_RNDIS_IPA=y +CONFIG_PPP=y +CONFIG_PPP_BSDCOMP=y +CONFIG_PPP_DEFLATE=y +CONFIG_PPP_FILTER=y +CONFIG_PPP_MPPE=y +CONFIG_PPP_MULTILINK=y +CONFIG_PPPOE=y +CONFIG_PPPOL2TP=y +CONFIG_PPPOLAC=y +CONFIG_PPPOPNS=y +CONFIG_PPP_ASYNC=y +CONFIG_PPP_SYNC_TTY=y +CONFIG_USB_USBNET=y +CONFIG_WCNSS_CORE=y +CONFIG_WCNSS_CORE_PRONTO=y +CONFIG_WCNSS_REGISTER_DUMP_ON_BITE=y +CONFIG_WCNSS_MEM_PRE_ALLOC=y +CONFIG_CNSS_CRYPTO=y +CONFIG_ATH_CARDS=y +CONFIG_WIL6210=m +CONFIG_CLD_LL_CORE=y +CONFIG_INPUT_EVDEV=y +CONFIG_INPUT_EVBUG=m +CONFIG_INPUT_KEYRESET=y +CONFIG_KEYBOARD_GPIO=y +# CONFIG_INPUT_MOUSE is not set +CONFIG_INPUT_JOYSTICK=y +CONFIG_JOYSTICK_XPAD=y +CONFIG_INPUT_TABLET=y +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_FTS=y +CONFIG_TOUCHSCREEN_FT8006M=y +CONFIG_TOUCHSCREEN_ATMEL_MXT=y +CONFIG_TOUCHSCREEN_GEN_VKEYS=y +CONFIG_TOUCHSCREEN_FT5X06=y +CONFIG_TOUCHSCREEN_MAXIM_STI=y +CONFIG_INPUT_MISC=y +#CONFIG_INPUT_HBTP_INPUT=y +CONFIG_INPUT_KEYCHORD=y +CONFIG_INPUT_UINPUT=y +CONFIG_INPUT_GPIO=y +# CONFIG_VT is not set +# CONFIG_LEGACY_PTYS is not set +# CONFIG_DEVMEM is not set +# CONFIG_DEVKMEM is not set +CONFIG_SERIAL_MSM_HS=y +CONFIG_SERIAL_MSM_SMD=y +CONFIG_DIAG_CHAR=y +CONFIG_HW_RANDOM=y +CONFIG_HW_RANDOM_MSM_LEGACY=y +CONFIG_MSM_SMD_PKT=y +CONFIG_MSM_ADSPRPC=y +CONFIG_MSM_RDBG=m +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_MSM_V2=y +CONFIG_SLIMBUS=y +CONFIG_SLIMBUS_MSM_NGD=y +CONFIG_SOUNDWIRE=y +CONFIG_SPI=y +CONFIG_SPI_QUP=y +CONFIG_SPI_SPIDEV=y +CONFIG_PINCTRL_MSM8952=y +CONFIG_PINCTRL_MSM8937=y +CONFIG_PINCTRL_MSMCOBALT=y +CONFIG_PINCTRL_MSM8940=y +CONFIG_PINCTRL_MSM8953=y +CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_QPNP_PIN=y +CONFIG_SMB1351_USB_CHARGER=y +CONFIG_SMB135X_CHARGER=y +CONFIG_QPNP_SMBCHARGER=y +CONFIG_QPNP_FG=y +CONFIG_BATTERY_BCL=y +CONFIG_QPNP_TYPEC=n +CONFIG_MSM_BCL_CTL=y +CONFIG_MSM_BCL_PERIPHERAL_CTL=y +CONFIG_POWER_RESET_MSM=y +CONFIG_MSM_DLOAD_MODE=y +CONFIG_MSM_PM=y +CONFIG_APSS_CORE_EA=y +CONFIG_MSM_APM=y +CONFIG_SENSORS_EPM_ADC=y +CONFIG_SENSORS_QPNP_ADC_VOLTAGE=y +CONFIG_SENSORS_QPNP_ADC_CURRENT=y +CONFIG_THERMAL=y +CONFIG_THERMAL_TSENS8974=y +CONFIG_LIMITS_MONITOR=y +CONFIG_LIMITS_LITE_HW=y +CONFIG_THERMAL_MONITOR=y +CONFIG_THERMAL_QPNP=y +CONFIG_THERMAL_QPNP_ADC_TM=y +CONFIG_WCD9335_CODEC=y +CONFIG_REGULATOR=y +CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_REGULATOR_STUB=y +CONFIG_REGULATOR_FAN53555=y +CONFIG_REGULATOR_MSM_GFX_LDO=y +CONFIG_REGULATOR_MEM_ACC=y +CONFIG_REGULATOR_RPM_SMD=y +CONFIG_REGULATOR_QPNP=y +CONFIG_REGULATOR_QPNP_LABIBB=y +CONFIG_REGULATOR_SPM=y +CONFIG_REGULATOR_CPR=y +CONFIG_REGULATOR_CPR3_HMSS=y +CONFIG_REGULATOR_CPR3_MMSS=y +CONFIG_REGULATOR_CPR4_APSS=y +CONFIG_REGULATOR_CPRH_KBSS=y +CONFIG_REGULATOR_KRYO=y +CONFIG_MEDIA_SUPPORT=y +CONFIG_MEDIA_CAMERA_SUPPORT=y +CONFIG_MEDIA_RADIO_SUPPORT=y +CONFIG_MEDIA_CONTROLLER=y +CONFIG_VIDEO_V4L2_SUBDEV_API=y +CONFIG_V4L_PLATFORM_DRIVERS=y +CONFIG_SOC_CAMERA=y +CONFIG_SOC_CAMERA_PLATFORM=y +CONFIG_MSM_VIDC_V4L2=y +CONFIG_MSM_VIDC_VMEM=y +CONFIG_MSM_VIDC_GOVERNORS=y +CONFIG_MSM_CAMERA=y +CONFIG_MSMB_CAMERA=y +CONFIG_MSM_CAMERA_SENSOR=y +CONFIG_MSM_CPP=y +CONFIG_MSM_CCI=y +CONFIG_MSM_CSI20_HEADER=y +CONFIG_MSM_CSI22_HEADER=y +CONFIG_MSM_CSI30_HEADER=y +CONFIG_MSM_CSI31_HEADER=y +CONFIG_MSM_CSIPHY=y +CONFIG_MSM_CSID=y +CONFIG_MSM_EEPROM=y +CONFIG_MSM_ISPIF=y +CONFIG_IMX134=y +CONFIG_IMX132=y +CONFIG_OV9724=y +CONFIG_OV5648=y +CONFIG_GC0339=y +CONFIG_OV8825=y +CONFIG_OV8865=y +CONFIG_s5k4e1=y +CONFIG_OV12830=y +CONFIG_MSM_V4L2_VIDEO_OVERLAY_DEVICE=y +CONFIG_MSMB_JPEG=y +CONFIG_MSM_FD=y +CONFIG_MSM_SDE_ROTATOR=y +CONFIG_RADIO_IRIS=y +CONFIG_RADIO_IRIS_TRANSPORT=y +CONFIG_RADIO_SILABS=y +CONFIG_MSM_KGSL=y +CONFIG_FB=y +CONFIG_FB_MSM=y +CONFIG_MSM_DBA=y +CONFIG_MSM_DBA_ADV7533=y +CONFIG_FB_MSM_MDSS=y +CONFIG_FB_MSM_MDSS_WRITEBACK=y +CONFIG_FB_MSM_MDSS_HDMI_PANEL=y +CONFIG_FB_MSM_MDSS_XLOG_DEBUG=y +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_SOUND=y +CONFIG_SND=y +CONFIG_SND_USB_AUDIO=y +CONFIG_SND_USB_AUDIO_QMI=y +CONFIG_SND_SOC=y +CONFIG_SND_SOC_MSM8X16=y +CONFIG_SND_SOC_AW87319=y +CONFIG_HIDRAW=y +CONFIG_UHID=y +CONFIG_HID_APPLE=y +CONFIG_HID_ELECOM=y +CONFIG_HID_MAGICMOUSE=y +CONFIG_HID_MICROSOFT=y +CONFIG_HID_MULTITOUCH=y +CONFIG_USB_HIDDEV=y +CONFIG_USB_ANNOUNCE_NEW_DEVICES=y +CONFIG_USB_MON=y +CONFIG_USB_XHCI_HCD=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_MSM=y +CONFIG_USB_EHCI_MSM_HSIC=y +CONFIG_USB_ACM=y +CONFIG_USB_STORAGE=y +CONFIG_USB_STORAGE_DATAFAB=y +CONFIG_USB_STORAGE_FREECOM=y +CONFIG_USB_STORAGE_ISD200=y +CONFIG_USB_STORAGE_USBAT=y +CONFIG_USB_STORAGE_SDDR09=y +CONFIG_USB_STORAGE_SDDR55=y +CONFIG_USB_STORAGE_JUMPSHOT=y +CONFIG_USB_STORAGE_ALAUDA=y +CONFIG_USB_STORAGE_KARMA=y +CONFIG_USB_STORAGE_CYPRESS_ATACB=y +CONFIG_USB_DWC3=y +CONFIG_USB_SERIAL=y +CONFIG_USB_EHSET_TEST_FIXTURE=y +CONFIG_NOP_USB_XCEIV=y +CONFIG_USB_MSM_HSPHY=y +CONFIG_USB_MSM_SSPHY_QMP=y +CONFIG_MSM_QUSB_PHY=y +CONFIG_DUAL_ROLE_USB_INTF=y +CONFIG_USB_GADGET=y +CONFIG_USB_GADGET_DEBUG_FILES=y +CONFIG_USB_GADGET_DEBUG_FS=y +CONFIG_USB_GADGET_VBUS_DRAW=500 +CONFIG_USB_CI13XXX_MSM=y +CONFIG_USB_G_ANDROID=y +CONFIG_MMC=y +#CONFIG_MMC_PERF_PROFILING=y +CONFIG_MMC_CLKGATE=y +CONFIG_MMC_PARANOID_SD_INIT=y +CONFIG_MMC_BLOCK_MINORS=32 +CONFIG_MMC_BLOCK_DEFERRED_RESUME=y +CONFIG_MMC_TEST=m +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MMC_SDHCI_MSM=y +CONFIG_MMC_SDHCI_MSM_ICE=y +CONFIG_MMC_CQ_HCI=y +CONFIG_LEDS_QPNP=y +CONFIG_LEDS_QPNP_FLASH=y +CONFIG_LEDS_QPNP_WLED=y +CONFIG_LEDS_TRIGGERS=y +CONFIG_SWITCH=y +CONFIG_EDAC=y +CONFIG_EDAC_MM_EDAC=y +CONFIG_EDAC_CORTEX_ARM64=y +CONFIG_EDAC_CORTEX_ARM64_DBE_IRQ_ONLY=y +CONFIG_EDAC_CORTEX_ARM64_PANIC_ON_UE=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_DRV_QPNP=y +CONFIG_DMADEVICES=y +CONFIG_QCOM_SPS_DMA=y +CONFIG_UIO=y +CONFIG_UIO_MSM_SHAREDMEM=y +CONFIG_STAGING=y +CONFIG_ANDROID=y +CONFIG_ANDROID_BINDER_IPC=y +CONFIG_ASHMEM=y +CONFIG_ANDROID_TIMED_GPIO=y +CONFIG_ANDROID_LOW_MEMORY_KILLER=y +CONFIG_SW_SYNC_USER=y +CONFIG_ION=y +CONFIG_ION_MSM=y +CONFIG_MSM_AVTIMER=y +CONFIG_MSM_BUS_SCALING=y +CONFIG_BUS_TOPOLOGY_ADHOC=y +CONFIG_QPNP_POWER_ON=y +CONFIG_QPNP_REVID=y +CONFIG_QPNP_COINCELL=y +CONFIG_SPS=y +CONFIG_USB_BAM=y +CONFIG_SPS_SUPPORT_NDP_BAM=y +CONFIG_IPA=y +CONFIG_RMNET_IPA=y +CONFIG_QPNP_HAPTIC=y +CONFIG_MSM_SPMI=y +CONFIG_MSM_SPMI_PMIC_ARB=y +CONFIG_MSM_QPNP_INT=y +CONFIG_CP_ACCESS64=y +CONFIG_MSM_ADSP_LOADER=y +CONFIG_MSM_MEMORY_DUMP_V2=y +CONFIG_MSM_BOOT_STATS=y +CONFIG_MSM_CPUSS_DUMP=y +CONFIG_MSM_COMMON_LOG=y +CONFIG_MSM_DDR_HEALTH=y +CONFIG_MSM_WATCHDOG_V2=y +CONFIG_MSM_FORCE_WDOG_BITE_ON_PANIC=y +CONFIG_MSM_RPM_SMD=y +CONFIG_MSM_RPM_RBCPR_STATS_V2_LOG=y +CONFIG_MSM_RPM_LOG=y +CONFIG_MSM_RPM_STATS_LOG=y +CONFIG_MSM_RUN_QUEUE_STATS=y +CONFIG_MSM_SCM=y +CONFIG_MSM_SCM_XPU=y +CONFIG_MSM_MPM_OF=y +CONFIG_MSM_SMEM=y +CONFIG_MSM_SMD=y +#CONFIG_MSM_SMD_DEBUG=y +CONFIG_MSM_GLINK=y +CONFIG_MSM_GLINK_LOOPBACK_SERVER=y +CONFIG_MSM_GLINK_SMD_XPRT=y +CONFIG_MSM_GLINK_SMEM_NATIVE_XPRT=y +#CONFIG_MSM_SPCOM=y +CONFIG_MSM_SMEM_LOGGING=y +CONFIG_MSM_SMP2P=y +CONFIG_MSM_SMP2P_TEST=y +CONFIG_MSM_SPM=y +CONFIG_MSM_L2_SPM=y +CONFIG_MSM_QMI_INTERFACE=y +CONFIG_MSM_IPC_ROUTER_SMD_XPRT=y +CONFIG_MSM_EVENT_TIMER=y +CONFIG_MSM_TZ_SMMU=y +CONFIG_MSM_SUBSYSTEM_RESTART=y +CONFIG_MSM_SYSMON_COMM=y +CONFIG_MSM_PIL=y +CONFIG_MSM_PIL_SSR_GENERIC=y +CONFIG_MSM_PIL_MSS_QDSP6V5=y +CONFIG_ICNSS=y +CONFIG_MSM_BAM_DMUX=y +CONFIG_MSM_PERFORMANCE=y +CONFIG_MSM_KERNEL_PROTECT=y +CONFIG_MSM_KERNEL_PROTECT_MPU=y +CONFIG_MEM_SHARE_QMI_SERVICE=y +CONFIG_MSM_CLK_CONTROLLER_V2=y +CONFIG_MSM_MDSS_PLL=y +CONFIG_REMOTE_SPINLOCK_MSM=y +CONFIG_MSM_IOMMU_V1=y +CONFIG_ARM_SMMU=y +CONFIG_IOMMU_DEBUG=y +CONFIG_IOMMU_TESTS=y +CONFIG_SPDM_SCM=y +CONFIG_DEVFREQ_SPDM=y +CONFIG_PWM=y +CONFIG_PWM_QPNP=y +CONFIG_ARM_GIC_PANIC_HANDLER=y +CONFIG_ARM_GIC_V3_ACL=y +#CONFIG_CORESIGHT=y +#CONFIG_CORESIGHT_EVENT=y +#CONFIG_CORESIGHT_FUSE=y +#CONFIG_CORESIGHT_CTI=y +#CONFIG_CORESIGHT_CTI_SAVE_DISABLE=y +#CONFIG_CORESIGHT_TMC=y +#CONFIG_CORESIGHT_TPIU=y +#CONFIG_CORESIGHT_FUNNEL=y +#CONFIG_CORESIGHT_REPLICATOR=y +#CONFIG_CORESIGHT_STM=y +#CONFIG_CORESIGHT_HWEVENT=y +CONFIG_SENSORS_SSC=y +CONFIG_MSM_TZ_LOG=y +CONFIG_EXT2_FS=y +CONFIG_EXT2_FS_XATTR=y +CONFIG_EXT3_FS=y +# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set +CONFIG_EXT4_FS=y +CONFIG_EXT4_FS_SECURITY=y +CONFIG_QUOTA=y +# CONFIG_PRINT_QUOTA_WARNING is not set +CONFIG_FUSE_FS=y +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_ASCII=y +CONFIG_NLS_ISO8859_1=y +CONFIG_PRINTK_TIME=y +CONFIG_DEBUG_INFO=y +CONFIG_MAGIC_SYSRQ=y +CONFIG_PANIC_TIMEOUT=5 +CONFIG_PANIC_ON_RECURSIVE_FAULT=y +# CONFIG_SCHED_DEBUG is not set +CONFIG_SCHEDSTATS=y +CONFIG_TIMER_STATS=y +CONFIG_IPC_LOGGING=y +CONFIG_CPU_FREQ_SWITCH_PROFILER=y +CONFIG_DEBUG_SET_MODULE_RONX=y +CONFIG_DEBUG_RODATA=y +CONFIG_SECURITY=y +CONFIG_SECURITY_NETWORK=y +CONFIG_LSM_MMAP_MIN_ADDR=4096 +CONFIG_SECURITY_SELINUX=y +CONFIG_CRYPTO_NULL=y +CONFIG_CRYPTO_CTR=y +CONFIG_CRYPTO_XCBC=y +CONFIG_CRYPTO_MD4=y +CONFIG_CRYPTO_TWOFISH=y +CONFIG_CRYPTO_DEV_QCRYPTO=y +CONFIG_CRYPTO_DEV_QCOM_MSM_QCE=y +CONFIG_CRYPTO_DEV_QCEDEV=y +CONFIG_CRYPTO_DEV_OTA_CRYPTO=y +CONFIG_CRYPTO_DEV_QCOM_ICE=y +CONFIG_ARM64_CRYPTO=y +CONFIG_CRYPTO_SHA1_ARM64_CE=y +CONFIG_CRYPTO_SHA2_ARM64_CE=y +CONFIG_CRYPTO_GHASH_ARM64_CE=y +CONFIG_CRYPTO_AES_ARM64_CE=y +CONFIG_CRYPTO_AES_ARM64_CE_CCM=y +CONFIG_CRYPTO_AES_ARM64_CE_BLK=y +CONFIG_CRYPTO_AES_ARM64_NEON_BLK=y +CONFIG_QMI_ENCDEC=y +## MIUI ADD:START +## Multi userspace config support +CONFIG_ECRYPT_FS=y +CONFIG_KEYS=y +CONFIG_ENCRYPTED_KEYS=y +CONFIG_CRYPTO=y +CONFIG_CRYPTO_AES=y +CONFIG_CRYPTO_SHA1=y +CONFIG_CRYPTO_SHA256=y +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_GF128MUL=y +CONFIG_CRYPTO_SEQIV=y +CONFIG_CRYPTO_CTR=y +CONFIG_CRYPTO_XTS=y +CONFIG_NAMESPACES=y +#CONFIG_UTS_NS=y +#CONFIG_IPC_NS=y +## do not turn on user-namespaces as it enables +## CONFIG_UIDGID_STRICT_TYPE_CHECKS, which results in several compile +## errors +#CONFIG_USER_NS=y +#CONFIG_PID_NS=y +CONFIG_NET_NS=y +CONFIG_VETH=y +## END +CONFIG_LEDS_AW2013=y +CONFIG_D1_ROSY=y +CONFIG_CPUMAXFREQ=y +CONFIG_SERIAL_NUM=y +CONFIG_SECBOOT_FUSE=y +##enable RTB +#CONFIG_MSM_RTB=y +CONFIG_MSM_RTB_SEPARATE_CPUS=y +CONFIG_DYNAMIC_DEBUG=y +#CONFIG_DEBUG_SPINLOCK=y +CONFIG_MSM_DEBUG_LAR_UNLOCK=y +CONFIG_CORESIGHT_DBGUI=y +CONFIG_LEDS_GPIO=y +CONFIG_FINGERPRINT_ROSY=y +CONFIG_FINGERPRINT_GOODIX_GF3208_ROSY=y +CONFIG_FINGERPRINT_FPC1020_ROSY=y +CONFIG_SUSPEND_SKIP_SYNC=y +CONFIG_DISABLE_TEMP_PROTECT=n +CONFIG_PSTORE=y +CONFIG_PSTORE_CONSOLE=y +CONFIG_PSTORE_FTRACE=y +CONFIG_PSTORE_PMSG=y +CONFIG_PSTORE_RAM=y +CONFIG_PSTORE_LAST_KMSG=y + +CONFIG_DUMP_ALL_STACKS=y +# CONFIG_FIRE_WATCHDOG is not set + +CONFIG_BOOT_INFO=y +CONFIG_OF_FLATTREE=y + +#Add CIFS Config +CONFIG_NETWORK_FILESYSTEMS=y +CONFIG_CIFS=y +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="iso8859-1" +CONFIG_NLS_CODEPAGE_936=y +CONFIG_NLS_CODEPAGE_950=y +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_UTF8=y + +#CONFIG_ZRAM_DEBUG=y +CONFIG_SWAP=y +CONFIG_MEMCG=y +CONFIG_MEMCG_SWAP=y +CONFIG_ANDROID_WHETSTONE=y +CONFIG_CGROUP_MEM_RES_CTLR=y +CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y + +# sdcardfs +CONFIG_SDCARD_FS=y diff --git a/arch/arm64/include/asm/bootinfo.h b/arch/arm64/include/asm/bootinfo.h new file mode 100644 index 0000000000000..b2db0353e4211 --- /dev/null +++ b/arch/arm64/include/asm/bootinfo.h @@ -0,0 +1,51 @@ +/* + * bootinfo.h + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#ifndef __ASMARM_BOOTINFO_H +#define __ASMARM_BOOTINFO_H + +#define HW_MAJOR_VERSION_SHIFT 4 +#define HW_MAJOR_VERSION_MASK 0xF0 +#define HW_MINOR_VERSION_SHIFT 0 +#define HW_MINOR_VERSION_MASK 0x0F + +typedef enum { + PU_REASON_EVENT_HWRST, + PU_REASON_EVENT_SMPL, + PU_REASON_EVENT_RTC, + PU_REASON_EVENT_DC_CHG, + PU_REASON_EVENT_USB_CHG, + PU_REASON_EVENT_PON1, + PU_REASON_EVENT_CABLE, + PU_REASON_EVENT_KPD, + PU_REASON_EVENT_WARMRST, + PU_REASON_EVENT_LPK, + PU_REASON_MAX +} powerup_reason_t; + +enum { + RS_REASON_EVENT_WDOG, + RS_REASON_EVENT_KPANIC, + RS_REASON_EVENT_NORMAL, + RS_REASON_EVENT_OTHER, + RS_REASON_MAX +}; + +#define RESTART_EVENT_WDOG 0x10000 +#define RESTART_EVENT_KPANIC 0x20000 +#define RESTART_EVENT_NORMAL 0x40000 +#define RESTART_EVENT_OTHER 0x80000 + +unsigned int get_powerup_reason(void); +int is_abnormal_powerup(void); +void set_powerup_reason(unsigned int powerup_reason); +unsigned int get_hw_version(void); +void set_hw_version(unsigned int hw_version); +unsigned int get_hw_version_major(void); +unsigned int get_hw_version_minor(void); +#endif diff --git a/arch/arm64/include/asm/processor.h b/arch/arm64/include/asm/processor.h index bd4e7c7096055..d69981ac0765d 100644 --- a/arch/arm64/include/asm/processor.h +++ b/arch/arm64/include/asm/processor.h @@ -31,6 +31,7 @@ #include #include +#include #include #include diff --git a/arch/arm64/kernel/Makefile b/arch/arm64/kernel/Makefile index 7b00b863c648f..0ad51096c9b6b 100644 --- a/arch/arm64/kernel/Makefile +++ b/arch/arm64/kernel/Makefile @@ -20,6 +20,7 @@ arm64-obj-y := cputable.o debug-monitors.o entry.o irq.o fpsimd.o \ hyp-stub.o psci.o psci-call.o cpu_ops.o insn.o \ return_address.o cpuinfo.o cpu_errata.o cpufeature.o alternative.o +arm64-obj-$(CONFIG_BOOT_INFO) += bootinfo.o arm64-obj-$(CONFIG_COMPAT) += sys32.o kuser32.o signal32.o \ sys_compat.o \ ../../arm/kernel/opcodes.o diff --git a/arch/arm64/kernel/bootinfo.c b/arch/arm64/kernel/bootinfo.c new file mode 100644 index 0000000000000..b4c51395705cc --- /dev/null +++ b/arch/arm64/kernel/bootinfo.c @@ -0,0 +1,203 @@ +/* + * bootinfo.c + * + * Copyright (C) 2011 Xiaomi Ltd. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +static const char * const powerup_reasons[PU_REASON_MAX] = { + [PU_REASON_EVENT_KPD] = "keypad", + [PU_REASON_EVENT_RTC] = "rtc", + [PU_REASON_EVENT_CABLE] = "cable", + [PU_REASON_EVENT_SMPL] = "smpl", + [PU_REASON_EVENT_PON1] = "pon1", + [PU_REASON_EVENT_USB_CHG] = "usb_chg", + [PU_REASON_EVENT_DC_CHG] = "dc_chg", + [PU_REASON_EVENT_HWRST] = "hw_reset", + [PU_REASON_EVENT_LPK] = "long_power_key", +}; + +static const char * const reset_reasons[RS_REASON_MAX] = { + [RS_REASON_EVENT_WDOG] = "wdog", + [RS_REASON_EVENT_KPANIC] = "kpanic", + [RS_REASON_EVENT_NORMAL] = "reboot", + [RS_REASON_EVENT_OTHER] = "other", +}; + +static struct kobject *bootinfo_kobj = NULL; +static powerup_reason_t powerup_reason; +static unsigned int hw_version; + +#define bootinfo_attr(_name) \ +static struct kobj_attribute _name##_attr = { \ + .attr = { \ + .name = __stringify(_name), \ + .mode = 0644, \ + }, \ + .show = _name##_show, \ + .store = NULL, \ +} + +#define bootinfo_func_init(type,name,initval) \ + static type name = (initval); \ + type get_##name(void) \ + { \ + return name; \ + } \ + void set_##name(type __##name) \ + { \ + name = __##name; \ + } \ + EXPORT_SYMBOL(set_##name); \ + EXPORT_SYMBOL(get_##name); + +int is_abnormal_powerup(void) +{ + u32 pu_reason = get_powerup_reason(); + return (pu_reason & (RESTART_EVENT_KPANIC | RESTART_EVENT_WDOG)) | + (pu_reason & BIT(PU_REASON_EVENT_HWRST) & RESTART_EVENT_OTHER); +} + +static ssize_t powerup_reason_show(struct kobject *kobj, struct kobj_attribute *attr, char * buf) +{ + char *s = buf; + u32 pu_reason; + int pu_reason_index = PU_REASON_MAX; + u32 reset_reason; + int reset_reason_index = RS_REASON_MAX; + + pu_reason = get_powerup_reason(); + if (((pu_reason & BIT(PU_REASON_EVENT_HWRST)) + && qpnp_pon_is_ps_hold_reset()) || + (pu_reason & BIT(PU_REASON_EVENT_WARMRST))) { + reset_reason = pu_reason >> 16; + reset_reason_index = find_first_bit((unsigned long *)&reset_reason, + sizeof(reset_reason)*BITS_PER_BYTE); + if (reset_reason_index < RS_REASON_MAX && reset_reason_index >= 0) { + s += sprintf(s, "%s\n", reset_reasons[reset_reason_index]); + printk(KERN_DEBUG "%s: rs_reason [0x%x], first non-zero bit" + " %d\n", __func__, reset_reason, reset_reason_index); + goto out; + }; + } + if (qpnp_pon_is_lpk() && + (pu_reason & BIT(PU_REASON_EVENT_HWRST))) + pu_reason_index = PU_REASON_EVENT_LPK; + else if (pu_reason & BIT(PU_REASON_EVENT_HWRST)) + pu_reason_index = PU_REASON_EVENT_HWRST; + else if (pu_reason & BIT(PU_REASON_EVENT_SMPL)) + pu_reason_index = PU_REASON_EVENT_SMPL; + else if (pu_reason & BIT(PU_REASON_EVENT_RTC)) + pu_reason_index = PU_REASON_EVENT_RTC; + else if (pu_reason & BIT(PU_REASON_EVENT_USB_CHG)) + pu_reason_index = PU_REASON_EVENT_USB_CHG; + else if (pu_reason & BIT(PU_REASON_EVENT_DC_CHG)) + pu_reason_index = PU_REASON_EVENT_DC_CHG; + else if (pu_reason & BIT(PU_REASON_EVENT_KPD)) + pu_reason_index = PU_REASON_EVENT_KPD; + else if (pu_reason & BIT(PU_REASON_EVENT_PON1)) + pu_reason_index = PU_REASON_EVENT_PON1; + if (pu_reason_index < PU_REASON_MAX && pu_reason_index >=0) { + s += sprintf(s, "%s\n", powerup_reasons[pu_reason_index]); + printk(KERN_DEBUG "%s: pu_reason [0x%x] index %d\n", + __func__, pu_reason, pu_reason_index); + goto out; + } + s += sprintf(s, "unknown reboot\n"); +out: + return (s - buf); +} + +static ssize_t powerup_reason_details_show(struct kobject *kobj, struct kobj_attribute *attr, char * buf) +{ + u32 pu_reason; + + pu_reason = get_powerup_reason(); + + return sprintf(buf, "0x%x\n", pu_reason); +} + +static ssize_t hw_version_show(struct kobject *kobj, struct kobj_attribute *attr, char * buf) +{ + u32 hw_version; + + hw_version = get_hw_version(); + + return sprintf(buf, "0x%x\n", hw_version); +} + +bootinfo_attr(powerup_reason); +bootinfo_attr(powerup_reason_details); +bootinfo_attr(hw_version); +bootinfo_func_init(u32, powerup_reason, 0); +bootinfo_func_init(u32, hw_version, 0); + +unsigned int get_hw_version_major(void) { + return ((get_hw_version() & HW_MAJOR_VERSION_MASK) >> HW_MAJOR_VERSION_SHIFT); +} +EXPORT_SYMBOL(get_hw_version_major); + +unsigned int get_hw_version_minor(void) { + return ((get_hw_version() & HW_MINOR_VERSION_MASK) >> HW_MINOR_VERSION_SHIFT); +} + +static struct attribute * g[] = { + &powerup_reason_attr.attr, + &powerup_reason_details_attr.attr, + &hw_version_attr.attr, + NULL, +}; + +static struct attribute_group attr_group = { + .attrs = g, +}; + +static int __init bootinfo_init(void) +{ + int ret = -ENOMEM; + + bootinfo_kobj = kobject_create_and_add("bootinfo", NULL); + if (bootinfo_kobj == NULL) { + printk("bootinfo_init: subsystem_register failed\n"); + goto fail; + } + + ret = sysfs_create_group(bootinfo_kobj, &attr_group); + if (ret) { + printk("bootinfo_init: subsystem_register failed\n"); + goto sys_fail; + } + + return ret; + +sys_fail: + kobject_del(bootinfo_kobj); +fail: + return ret; + +} + +static void __exit bootinfo_exit(void) +{ + if (bootinfo_kobj) { + sysfs_remove_group(bootinfo_kobj, &attr_group); + kobject_del(bootinfo_kobj); + } +} + +core_initcall(bootinfo_init); +module_exit(bootinfo_exit); + diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c index d594ce9d5875f..475f27fbff7b1 100644 --- a/arch/arm64/kernel/setup.c +++ b/arch/arm64/kernel/setup.c @@ -63,6 +63,7 @@ #include #include #include +#include unsigned int processor_id; EXPORT_SYMBOL(processor_id); @@ -85,6 +86,8 @@ unsigned int compat_elf_hwcap __read_mostly = COMPAT_ELF_HWCAP_DEFAULT; unsigned int compat_elf_hwcap2 __read_mostly; #endif +extern void pstore_ram_reserve_memory(void); + DECLARE_BITMAP(cpu_hwcaps, ARM64_NCAPS); unsigned int boot_reason; @@ -380,6 +383,14 @@ static void __init request_standard_resources(void) request_resource(res, &kernel_data); } } +#ifdef CONFIG_OF_FLATTREE +void __init early_init_dt_setup_pureason_arch(unsigned long pu_reason) +{ + set_powerup_reason(pu_reason); + pr_info("Powerup reason=0x%x\n", get_powerup_reason()); +} +#endif + #ifdef CONFIG_BLK_DEV_INITRD /* @@ -496,6 +507,10 @@ void __init setup_arch(char **cmdline_p) smp_build_mpidr_hash(); #endif +#ifdef CONFIG_PSTORE + pstore_ram_reserve_memory(); +#endif + #ifdef CONFIG_VT #if defined(CONFIG_VGA_CONSOLE) conswitchp = &vga_con; diff --git a/arch/arm64/kernel/smp_spin_table.c b/arch/arm64/kernel/smp_spin_table.c index 0d9afcfcae92a..f189668566caf 100644 --- a/arch/arm64/kernel/smp_spin_table.c +++ b/arch/arm64/kernel/smp_spin_table.c @@ -25,6 +25,7 @@ #include #include #include +#include #include static phys_addr_t cpu_release_addr[NR_CPUS]; diff --git a/block/blk-flush.c b/block/blk-flush.c index 10679fe62c8c3..d9a005037179d 100644 --- a/block/blk-flush.c +++ b/block/blk-flush.c @@ -112,6 +112,7 @@ #include "blk.h" #include "blk-mq.h" +#include "blk-mq-tag.h" /* FLUSH/FUA sequences */ enum { @@ -283,7 +284,12 @@ static void flush_end_io(struct request *flush_rq, int error) struct blk_flush_queue *fq = blk_get_flush_queue(q, flush_rq->mq_ctx); if (q->mq_ops) { + struct blk_mq_hw_ctx *hctx; + + /* release the tag's ownership to the req cloned from */ spin_lock_irqsave(&fq->mq_flush_lock, flags); + hctx = q->mq_ops->map_queue(q, flush_rq->mq_ctx->cpu); + blk_mq_tag_set_rq(hctx, flush_rq->tag, fq->orig_rq); flush_rq->tag = -1; } @@ -366,11 +372,18 @@ static bool blk_kick_flush(struct request_queue *q, struct blk_flush_queue *fq) /* * Borrow tag from the first request since they can't - * be in flight at the same time. + * be in flight at the same time. And acquire the tag's + * ownership for flush req. */ if (q->mq_ops) { + struct blk_mq_hw_ctx *hctx; + flush_rq->mq_ctx = first_rq->mq_ctx; flush_rq->tag = first_rq->tag; + fq->orig_rq = first_rq; + + hctx = q->mq_ops->map_queue(q, first_rq->mq_ctx->cpu); + blk_mq_tag_set_rq(hctx, first_rq->tag, flush_rq); } flush_rq->cmd_type = REQ_TYPE_FS; diff --git a/block/blk-mq-tag.c b/block/blk-mq-tag.c index 702ae29b8d90f..4fbc8d563777f 100644 --- a/block/blk-mq-tag.c +++ b/block/blk-mq-tag.c @@ -403,7 +403,7 @@ static void bt_for_each(struct blk_mq_hw_ctx *hctx, for (bit = find_first_bit(&bm->word, bm->depth); bit < bm->depth; bit = find_next_bit(&bm->word, bm->depth, bit + 1)) { - rq = blk_mq_tag_to_rq(hctx->tags, off + bit); + rq = hctx->tags->rqs[off + bit]; if (rq->q == hctx->queue) fn(hctx, rq, data, reserved); } diff --git a/block/blk-mq-tag.h b/block/blk-mq-tag.h index 6206ed17ef766..14c6e4c925564 100644 --- a/block/blk-mq-tag.h +++ b/block/blk-mq-tag.h @@ -85,4 +85,16 @@ static inline void blk_mq_tag_idle(struct blk_mq_hw_ctx *hctx) __blk_mq_tag_idle(hctx); } +/* + * This helper should only be used for flush request to share tag + * with the request cloned from, and both the two requests can't be + * in flight at the same time. The caller has to make sure the tag + * can't be freed. + */ +static inline void blk_mq_tag_set_rq(struct blk_mq_hw_ctx *hctx, + unsigned int tag, struct request *rq) +{ + hctx->tags->rqs[tag] = rq; +} + #endif diff --git a/block/blk-mq.c b/block/blk-mq.c index 691959ecb80fe..4b839c117c566 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -498,23 +498,9 @@ void blk_mq_kick_requeue_list(struct request_queue *q) } EXPORT_SYMBOL(blk_mq_kick_requeue_list); -static inline bool is_flush_request(struct request *rq, - struct blk_flush_queue *fq, unsigned int tag) -{ - return ((rq->cmd_flags & REQ_FLUSH_SEQ) && - fq->flush_rq->tag == tag); -} - struct request *blk_mq_tag_to_rq(struct blk_mq_tags *tags, unsigned int tag) { - struct request *rq = tags->rqs[tag]; - /* mq_ctx of flush rq is always cloned from the corresponding req */ - struct blk_flush_queue *fq = blk_get_flush_queue(rq->q, rq->mq_ctx); - - if (!is_flush_request(rq, fq, tag)) - return rq; - - return fq->flush_rq; + return tags->rqs[tag]; } EXPORT_SYMBOL(blk_mq_tag_to_rq); diff --git a/block/blk.h b/block/blk.h index 39471974401c5..5bc529f289215 100644 --- a/block/blk.h +++ b/block/blk.h @@ -22,6 +22,12 @@ struct blk_flush_queue { struct list_head flush_queue[2]; struct list_head flush_data_in_flight; struct request *flush_rq; + + /* + * flush_rq shares tag with this rq, both can't be active + * at the same time + */ + struct request *orig_rq; spinlock_t mq_flush_lock; }; diff --git a/crypto/algif_skcipher.c b/crypto/algif_skcipher.c index d2cacc7f079f8..ea51eb5f575ef 100644 --- a/crypto/algif_skcipher.c +++ b/crypto/algif_skcipher.c @@ -446,13 +446,6 @@ static int skcipher_recvmsg(struct kiocb *unused, struct socket *sock, char __user *from = iov->iov_base; while (seglen) { - sgl = list_first_entry(&ctx->tsgl, - struct skcipher_sg_list, list); - sg = sgl->sg; - - while (!sg->length) - sg++; - used = ctx->used; if (!used) { err = skcipher_wait_for_data(sk, flags); @@ -474,6 +467,13 @@ static int skcipher_recvmsg(struct kiocb *unused, struct socket *sock, if (!used) goto free; + sgl = list_first_entry(&ctx->tsgl, + struct skcipher_sg_list, list); + sg = sgl->sg; + + while (!sg->length) + sg++; + ablkcipher_request_set_crypt(&ctx->req, sg, ctx->rsgl.sg, used, ctx->iv); diff --git a/drivers/Kconfig b/drivers/Kconfig index 351d9100e93df..1c08080d114e6 100644 --- a/drivers/Kconfig +++ b/drivers/Kconfig @@ -198,4 +198,9 @@ source "drivers/firmware/Kconfig" source "drivers/bif/Kconfig" +#source "drivers/gud/Kconfig" + +source "drivers/fingerprint/Kconfig" + +source "drivers/fingerprintrosy/Kconfig" endmenu diff --git a/drivers/Makefile b/drivers/Makefile index e3352f1e48385..c8dc476ce7b05 100644 --- a/drivers/Makefile +++ b/drivers/Makefile @@ -170,3 +170,9 @@ obj-$(CONFIG_ESOC) += esoc/ obj-$(CONFIG_BIF) += bif/ obj-$(CONFIG_SENSORS_SSC) += sensors/ + +# driver_override, *cp; + char *driver_override, *old, *cp; if (count > PATH_MAX) return -EINVAL; @@ -740,12 +740,15 @@ static ssize_t driver_override_store(struct device *dev, if (cp) *cp = '\0'; + device_lock(dev); + old = pdev->driver_override; if (strlen(driver_override)) { pdev->driver_override = driver_override; } else { kfree(driver_override); pdev->driver_override = NULL; } + device_unlock(dev); kfree(old); @@ -756,8 +759,12 @@ static ssize_t driver_override_show(struct device *dev, struct device_attribute *attr, char *buf) { struct platform_device *pdev = to_platform_device(dev); + ssize_t len; - return sprintf(buf, "%s\n", pdev->driver_override); + device_lock(dev); + len = sprintf(buf, "%s\n", pdev->driver_override); + device_unlock(dev); + return len; } static DEVICE_ATTR_RW(driver_override); diff --git a/drivers/block/zram/Kconfig b/drivers/block/zram/Kconfig index 6489c0fd0ea6e..386ba3d1a6ee8 100644 --- a/drivers/block/zram/Kconfig +++ b/drivers/block/zram/Kconfig @@ -23,12 +23,4 @@ config ZRAM_LZ4_COMPRESS default n help This option enables LZ4 compression algorithm support. Compression - algorithm can be changed using `comp_algorithm' device attribute. - -config ZRAM_DEBUG - bool "Compressed RAM block device debug support" - depends on ZRAM - default n - help - This option adds additional debugging code to the compressed - RAM block device driver. + algorithm can be changed using `comp_algorithm' device attribute. \ No newline at end of file diff --git a/drivers/block/zram/zcomp.c b/drivers/block/zram/zcomp.c index 6fbb10ca73b10..b51a816d766bb 100644 --- a/drivers/block/zram/zcomp.c +++ b/drivers/block/zram/zcomp.c @@ -13,6 +13,7 @@ #include #include #include +#include #include "zcomp.h" #include "zcomp_lzo.h" @@ -20,29 +21,6 @@ #include "zcomp_lz4.h" #endif -/* - * single zcomp_strm backend - */ -struct zcomp_strm_single { - struct mutex strm_lock; - struct zcomp_strm *zstrm; -}; - -/* - * multi zcomp_strm backend - */ -struct zcomp_strm_multi { - /* protect strm list */ - spinlock_t strm_lock; - /* max possible number of zstrm streams */ - int max_strm; - /* number of available zstrm streams */ - int avail_strm; - /* list of available strms */ - struct list_head idle_strm; - wait_queue_head_t strm_wait; -}; - static struct zcomp_backend *backends[] = { &zcomp_lzo, #ifdef CONFIG_ZRAM_LZ4_COMPRESS @@ -74,18 +52,18 @@ static void zcomp_strm_free(struct zcomp *comp, struct zcomp_strm *zstrm) * allocate new zcomp_strm structure with ->private initialized by * backend, return NULL on error */ -static struct zcomp_strm *zcomp_strm_alloc(struct zcomp *comp) +static struct zcomp_strm *zcomp_strm_alloc(struct zcomp *comp, gfp_t flags) { - struct zcomp_strm *zstrm = kmalloc(sizeof(*zstrm), GFP_NOIO); + struct zcomp_strm *zstrm = kmalloc(sizeof(*zstrm), flags); if (!zstrm) return NULL; - zstrm->private = comp->backend->create(); + zstrm->private = comp->backend->create(flags); /* * allocate 2 pages. 1 for compressed data, plus 1 extra for the * case when compressed size is larger than the original one */ - zstrm->buffer = (void *)__get_free_pages(GFP_NOIO | __GFP_ZERO, 1); + zstrm->buffer = (void *)__get_free_pages(flags | __GFP_ZERO, 1); if (!zstrm->private || !zstrm->buffer) { zcomp_strm_free(comp, zstrm); zstrm = NULL; @@ -93,180 +71,6 @@ static struct zcomp_strm *zcomp_strm_alloc(struct zcomp *comp) return zstrm; } -/* - * get idle zcomp_strm or wait until other process release - * (zcomp_strm_release()) one for us - */ -static struct zcomp_strm *zcomp_strm_multi_find(struct zcomp *comp) -{ - struct zcomp_strm_multi *zs = comp->stream; - struct zcomp_strm *zstrm; - - while (1) { - spin_lock(&zs->strm_lock); - if (!list_empty(&zs->idle_strm)) { - zstrm = list_entry(zs->idle_strm.next, - struct zcomp_strm, list); - list_del(&zstrm->list); - spin_unlock(&zs->strm_lock); - return zstrm; - } - /* zstrm streams limit reached, wait for idle stream */ - if (zs->avail_strm >= zs->max_strm) { - spin_unlock(&zs->strm_lock); - wait_event(zs->strm_wait, !list_empty(&zs->idle_strm)); - continue; - } - /* allocate new zstrm stream */ - zs->avail_strm++; - spin_unlock(&zs->strm_lock); - - zstrm = zcomp_strm_alloc(comp); - if (!zstrm) { - spin_lock(&zs->strm_lock); - zs->avail_strm--; - spin_unlock(&zs->strm_lock); - wait_event(zs->strm_wait, !list_empty(&zs->idle_strm)); - continue; - } - break; - } - return zstrm; -} - -/* add stream back to idle list and wake up waiter or free the stream */ -static void zcomp_strm_multi_release(struct zcomp *comp, struct zcomp_strm *zstrm) -{ - struct zcomp_strm_multi *zs = comp->stream; - - spin_lock(&zs->strm_lock); - if (zs->avail_strm <= zs->max_strm) { - list_add(&zstrm->list, &zs->idle_strm); - spin_unlock(&zs->strm_lock); - wake_up(&zs->strm_wait); - return; - } - - zs->avail_strm--; - spin_unlock(&zs->strm_lock); - zcomp_strm_free(comp, zstrm); -} - -/* change max_strm limit */ -static bool zcomp_strm_multi_set_max_streams(struct zcomp *comp, int num_strm) -{ - struct zcomp_strm_multi *zs = comp->stream; - struct zcomp_strm *zstrm; - - spin_lock(&zs->strm_lock); - zs->max_strm = num_strm; - /* - * if user has lowered the limit and there are idle streams, - * immediately free as much streams (and memory) as we can. - */ - while (zs->avail_strm > num_strm && !list_empty(&zs->idle_strm)) { - zstrm = list_entry(zs->idle_strm.next, - struct zcomp_strm, list); - list_del(&zstrm->list); - zcomp_strm_free(comp, zstrm); - zs->avail_strm--; - } - spin_unlock(&zs->strm_lock); - return true; -} - -static void zcomp_strm_multi_destroy(struct zcomp *comp) -{ - struct zcomp_strm_multi *zs = comp->stream; - struct zcomp_strm *zstrm; - - while (!list_empty(&zs->idle_strm)) { - zstrm = list_entry(zs->idle_strm.next, - struct zcomp_strm, list); - list_del(&zstrm->list); - zcomp_strm_free(comp, zstrm); - } - kfree(zs); -} - -static int zcomp_strm_multi_create(struct zcomp *comp, int max_strm) -{ - struct zcomp_strm *zstrm; - struct zcomp_strm_multi *zs; - - comp->destroy = zcomp_strm_multi_destroy; - comp->strm_find = zcomp_strm_multi_find; - comp->strm_release = zcomp_strm_multi_release; - comp->set_max_streams = zcomp_strm_multi_set_max_streams; - zs = kmalloc(sizeof(struct zcomp_strm_multi), GFP_KERNEL); - if (!zs) - return -ENOMEM; - - comp->stream = zs; - spin_lock_init(&zs->strm_lock); - INIT_LIST_HEAD(&zs->idle_strm); - init_waitqueue_head(&zs->strm_wait); - zs->max_strm = max_strm; - zs->avail_strm = 1; - - zstrm = zcomp_strm_alloc(comp); - if (!zstrm) { - kfree(zs); - return -ENOMEM; - } - list_add(&zstrm->list, &zs->idle_strm); - return 0; -} - -static struct zcomp_strm *zcomp_strm_single_find(struct zcomp *comp) -{ - struct zcomp_strm_single *zs = comp->stream; - mutex_lock(&zs->strm_lock); - return zs->zstrm; -} - -static void zcomp_strm_single_release(struct zcomp *comp, - struct zcomp_strm *zstrm) -{ - struct zcomp_strm_single *zs = comp->stream; - mutex_unlock(&zs->strm_lock); -} - -static bool zcomp_strm_single_set_max_streams(struct zcomp *comp, int num_strm) -{ - /* zcomp_strm_single support only max_comp_streams == 1 */ - return false; -} - -static void zcomp_strm_single_destroy(struct zcomp *comp) -{ - struct zcomp_strm_single *zs = comp->stream; - zcomp_strm_free(comp, zs->zstrm); - kfree(zs); -} - -static int zcomp_strm_single_create(struct zcomp *comp) -{ - struct zcomp_strm_single *zs; - - comp->destroy = zcomp_strm_single_destroy; - comp->strm_find = zcomp_strm_single_find; - comp->strm_release = zcomp_strm_single_release; - comp->set_max_streams = zcomp_strm_single_set_max_streams; - zs = kmalloc(sizeof(struct zcomp_strm_single), GFP_KERNEL); - if (!zs) - return -ENOMEM; - - comp->stream = zs; - mutex_init(&zs->strm_lock); - zs->zstrm = zcomp_strm_alloc(comp); - if (!zs->zstrm) { - kfree(zs); - return -ENOMEM; - } - return 0; -} - /* show available compressors */ ssize_t zcomp_available_show(const char *comp, char *buf) { @@ -274,7 +78,7 @@ ssize_t zcomp_available_show(const char *comp, char *buf) int i = 0; while (backends[i]) { - if (sysfs_streq(comp, backends[i]->name)) + if (!strcmp(comp, backends[i]->name)) sz += scnprintf(buf + sz, PAGE_SIZE - sz - 2, "[%s] ", backends[i]->name); else @@ -286,19 +90,19 @@ ssize_t zcomp_available_show(const char *comp, char *buf) return sz; } -bool zcomp_set_max_streams(struct zcomp *comp, int num_strm) +bool zcomp_available_algorithm(const char *comp) { - return comp->set_max_streams(comp, num_strm); + return find_backend(comp) != NULL; } struct zcomp_strm *zcomp_strm_find(struct zcomp *comp) { - return comp->strm_find(comp); + return *get_cpu_ptr(comp->stream); } void zcomp_strm_release(struct zcomp *comp, struct zcomp_strm *zstrm) { - comp->strm_release(comp, zstrm); + put_cpu_ptr(comp->stream); } int zcomp_compress(struct zcomp *comp, struct zcomp_strm *zstrm, @@ -314,9 +118,83 @@ int zcomp_decompress(struct zcomp *comp, const unsigned char *src, return comp->backend->decompress(src, src_len, dst); } +static int __zcomp_cpu_notifier(struct zcomp *comp, + unsigned long action, unsigned long cpu) +{ + struct zcomp_strm *zstrm; + + switch (action) { + case CPU_UP_PREPARE: + if (WARN_ON(*per_cpu_ptr(comp->stream, cpu))) + break; + zstrm = zcomp_strm_alloc(comp, GFP_KERNEL); + if (IS_ERR_OR_NULL(zstrm)) { + pr_err("Can't allocate a compression stream\n"); + return NOTIFY_BAD; + } + *per_cpu_ptr(comp->stream, cpu) = zstrm; + break; + case CPU_DEAD: + case CPU_UP_CANCELED: + zstrm = *per_cpu_ptr(comp->stream, cpu); + if (!IS_ERR_OR_NULL(zstrm)) + zcomp_strm_free(comp, zstrm); + *per_cpu_ptr(comp->stream, cpu) = NULL; + break; + default: + break; + } + return NOTIFY_OK; +} + +static int zcomp_cpu_notifier(struct notifier_block *nb, + unsigned long action, void *pcpu) +{ + unsigned long cpu = (unsigned long)pcpu; + struct zcomp *comp = container_of(nb, typeof(*comp), notifier); + + return __zcomp_cpu_notifier(comp, action, cpu); +} + +static int zcomp_init(struct zcomp *comp) +{ + unsigned long cpu; + int ret; + + comp->notifier.notifier_call = zcomp_cpu_notifier; + + comp->stream = alloc_percpu(struct zcomp_strm *); + if (!comp->stream) + return -ENOMEM; + + cpu_notifier_register_begin(); + for_each_online_cpu(cpu) { + ret = __zcomp_cpu_notifier(comp, CPU_UP_PREPARE, cpu); + if (ret == NOTIFY_BAD) + goto cleanup; + } + __register_cpu_notifier(&comp->notifier); + cpu_notifier_register_done(); + return 0; + +cleanup: + for_each_online_cpu(cpu) + __zcomp_cpu_notifier(comp, CPU_UP_CANCELED, cpu); + cpu_notifier_register_done(); + return -ENOMEM; +} + void zcomp_destroy(struct zcomp *comp) { - comp->destroy(comp); + unsigned long cpu; + + cpu_notifier_register_begin(); + for_each_online_cpu(cpu) + __zcomp_cpu_notifier(comp, CPU_UP_CANCELED, cpu); + __unregister_cpu_notifier(&comp->notifier); + cpu_notifier_register_done(); + + free_percpu(comp->stream); kfree(comp); } @@ -326,9 +204,9 @@ void zcomp_destroy(struct zcomp *comp) * backend pointer or ERR_PTR if things went bad. ERR_PTR(-EINVAL) * if requested algorithm is not supported, ERR_PTR(-ENOMEM) in * case of allocation error, or any other error potentially - * returned by functions zcomp_strm_{multi,single}_create. + * returned by zcomp_init(). */ -struct zcomp *zcomp_create(const char *compress, int max_strm) +struct zcomp *zcomp_create(const char *compress) { struct zcomp *comp; struct zcomp_backend *backend; @@ -343,10 +221,7 @@ struct zcomp *zcomp_create(const char *compress, int max_strm) return ERR_PTR(-ENOMEM); comp->backend = backend; - if (max_strm > 1) - error = zcomp_strm_multi_create(comp, max_strm); - else - error = zcomp_strm_single_create(comp); + error = zcomp_init(comp); if (error) { kfree(comp); return ERR_PTR(error); diff --git a/drivers/block/zram/zcomp.h b/drivers/block/zram/zcomp.h index c59d1fca72c06..ffd88cb747fee 100644 --- a/drivers/block/zram/zcomp.h +++ b/drivers/block/zram/zcomp.h @@ -10,8 +10,6 @@ #ifndef _ZCOMP_H_ #define _ZCOMP_H_ -#include - struct zcomp_strm { /* compression/decompression buffer */ void *buffer; @@ -21,8 +19,6 @@ struct zcomp_strm { * working memory) */ void *private; - /* used in multi stream backend, protected by backend strm_lock */ - struct list_head list; }; /* static compression backend */ @@ -33,7 +29,7 @@ struct zcomp_backend { int (*decompress)(const unsigned char *src, size_t src_len, unsigned char *dst); - void *(*create)(void); + void *(*create)(gfp_t flags); void (*destroy)(void *private); const char *name; @@ -41,18 +37,15 @@ struct zcomp_backend { /* dynamic per-device compression frontend */ struct zcomp { - void *stream; + struct zcomp_strm * __percpu *stream; struct zcomp_backend *backend; - - struct zcomp_strm *(*strm_find)(struct zcomp *comp); - void (*strm_release)(struct zcomp *comp, struct zcomp_strm *zstrm); - bool (*set_max_streams)(struct zcomp *comp, int num_strm); - void (*destroy)(struct zcomp *comp); + struct notifier_block notifier; }; ssize_t zcomp_available_show(const char *comp, char *buf); +bool zcomp_available_algorithm(const char *comp); -struct zcomp *zcomp_create(const char *comp, int max_strm); +struct zcomp *zcomp_create(const char *comp); void zcomp_destroy(struct zcomp *comp); struct zcomp_strm *zcomp_strm_find(struct zcomp *comp); diff --git a/drivers/block/zram/zcomp_lz4.c b/drivers/block/zram/zcomp_lz4.c index dd6083124276f..0110086accba8 100644 --- a/drivers/block/zram/zcomp_lz4.c +++ b/drivers/block/zram/zcomp_lz4.c @@ -15,24 +15,14 @@ #include "zcomp_lz4.h" -static void *zcomp_lz4_create(void) +static void *zcomp_lz4_create(gfp_t flags) { void *ret; - /* - * This function can be called in swapout/fs write path - * so we can't use GFP_FS|IO. And it assumes we already - * have at least one stream in zram initialization so we - * don't do best effort to allocate more stream in here. - * A default stream will work well without further multiple - * streams. That's why we use NORETRY | NOWARN. - */ - ret = kzalloc(LZ4_MEM_COMPRESS, GFP_NOIO | __GFP_NORETRY | - __GFP_NOWARN); + ret = kmalloc(LZ4_MEM_COMPRESS, flags); if (!ret) ret = __vmalloc(LZ4_MEM_COMPRESS, - GFP_NOIO | __GFP_NORETRY | __GFP_NOWARN | - __GFP_ZERO | __GFP_HIGHMEM, + flags | __GFP_HIGHMEM, PAGE_KERNEL); return ret; } diff --git a/drivers/block/zram/zcomp_lzo.c b/drivers/block/zram/zcomp_lzo.c index edc549920fa06..ed7a1f0549ecf 100644 --- a/drivers/block/zram/zcomp_lzo.c +++ b/drivers/block/zram/zcomp_lzo.c @@ -15,24 +15,14 @@ #include "zcomp_lzo.h" -static void *lzo_create(void) +static void *lzo_create(gfp_t flags) { void *ret; - /* - * This function can be called in swapout/fs write path - * so we can't use GFP_FS|IO. And it assumes we already - * have at least one stream in zram initialization so we - * don't do best effort to allocate more stream in here. - * A default stream will work well without further multiple - * streams. That's why we use NORETRY | NOWARN. - */ - ret = kzalloc(LZO1X_MEM_COMPRESS, GFP_NOIO | __GFP_NORETRY | - __GFP_NOWARN); + ret = kmalloc(LZO1X_MEM_COMPRESS, flags); if (!ret) ret = __vmalloc(LZO1X_MEM_COMPRESS, - GFP_NOIO | __GFP_NORETRY | __GFP_NOWARN | - __GFP_ZERO | __GFP_HIGHMEM, + flags | __GFP_HIGHMEM, PAGE_KERNEL); return ret; } diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c index 74fd2566b8757..21a367439a0cf 100644 --- a/drivers/block/zram/zram_drv.c +++ b/drivers/block/zram/zram_drv.c @@ -3,6 +3,7 @@ * * Copyright (C) 2008, 2009, 2010 Nitin Gupta * 2012, 2013 Minchan Kim + * Copyright (C) 2018 XiaoMi, Inc. * * This code is released using a dual license strategy: BSD/GPL * You can choose the licence that better fits your requirements. @@ -15,10 +16,6 @@ #define KMSG_COMPONENT "zram" #define pr_fmt(fmt) KMSG_COMPONENT ": " fmt -#ifdef CONFIG_ZRAM_DEBUG -#define DEBUG -#endif - #include #include #include @@ -32,22 +29,18 @@ #include #include #include -#include -#include +#include +#include #include "zram_drv.h" -/* Globals */ +static DEFINE_IDR(zram_index_idr); +/* idr index must be protected */ +static DEFINE_MUTEX(zram_index_mutex); + static int zram_major; -static struct zram *zram_devices; static const char *default_compressor = "lzo"; -/* - * We don't need to see memory allocation errors more than once every 1 - * second to know that a problem is occurring. - */ -#define ALLOC_ERROR_LOG_RATE_MS 1000 - /* Module params (documentation at end) */ static unsigned int num_devices = 1; @@ -61,7 +54,7 @@ static inline void deprecated_attr_warn(const char *name) } #define ZRAM_ATTR_RO(name) \ -static ssize_t name##_show(struct device *d, \ +static ssize_t name##_show(struct device *d, \ struct device_attribute *attr, char *b) \ { \ struct zram *zram = dev_to_zram(d); \ @@ -77,81 +70,122 @@ static inline bool init_done(struct zram *zram) return zram->disksize; } -static int zram_show_mem_notifier(struct notifier_block *nb, - unsigned long action, - void *data) +static inline struct zram *dev_to_zram(struct device *dev) { - int i; + return (struct zram *)dev_to_disk(dev)->private_data; +} - if (!zram_devices) - return 0; +/* flag operations require table entry bit_spin_lock() being held */ +static int zram_test_flag(struct zram_meta *meta, u32 index, + enum zram_pageflags flag) +{ + return meta->table[index].value & BIT(flag); +} - for (i = 0; i < num_devices; i++) { - struct zram *zram = &zram_devices[i]; - struct zram_meta *meta = zram->meta; +static void zram_set_flag(struct zram_meta *meta, u32 index, + enum zram_pageflags flag) +{ + meta->table[index].value |= BIT(flag); +} - if (!down_read_trylock(&zram->init_lock)) - continue; +static void zram_clear_flag(struct zram_meta *meta, u32 index, + enum zram_pageflags flag) +{ + meta->table[index].value &= ~BIT(flag); +} - if (init_done(zram)) { - u64 val; - u64 data_size; - u64 orig_data_size; - - val = zs_get_total_pages(meta->mem_pool); - data_size = atomic64_read(&zram->stats.compr_data_size); - orig_data_size = atomic64_read( - &zram->stats.pages_stored); - pr_info("Zram[%d] mem_used_total = %llu\n", i, - val << PAGE_SHIFT); - pr_info("Zram[%d] compr_data_size = %llu\n", i, - (unsigned long long)data_size); - pr_info("Zram[%d] orig_data_size = %llu\n", i, - (unsigned long long)orig_data_size); - } +static size_t zram_get_obj_size(struct zram_meta *meta, u32 index) +{ + return meta->table[index].value & (BIT(ZRAM_FLAG_SHIFT) - 1); +} - up_read(&zram->init_lock); - } +static void zram_set_obj_size(struct zram_meta *meta, + u32 index, size_t size) +{ + unsigned long flags = meta->table[index].value >> ZRAM_FLAG_SHIFT; - return 0; + meta->table[index].value = (flags << ZRAM_FLAG_SHIFT) | size; } -static struct notifier_block zram_show_mem_notifier_block = { - .notifier_call = zram_show_mem_notifier -}; +static inline bool is_partial_io(struct bio_vec *bvec) +{ + return bvec->bv_len != PAGE_SIZE; +} -static inline struct zram *dev_to_zram(struct device *dev) +/* + * Check if request is within bounds and aligned on zram logical blocks. + */ +static inline bool valid_io_request(struct zram *zram, + sector_t start, unsigned int size) { - return (struct zram *)dev_to_disk(dev)->private_data; + u64 end, bound; + + /* unaligned request */ + if (unlikely(start & (ZRAM_SECTOR_PER_LOGICAL_BLOCK - 1))) + return false; + if (unlikely(size & (ZRAM_LOGICAL_BLOCK_SIZE - 1))) + return false; + + end = start + (size >> SECTOR_SHIFT); + bound = zram->disksize >> SECTOR_SHIFT; + /* out of range range */ + if (unlikely(start >= bound || end > bound || start > end)) + return false; + + /* I/O request is valid */ + return true; } -static ssize_t compact_store(struct device *dev, - struct device_attribute *attr, const char *buf, size_t len) +static void update_position(u32 *index, int *offset, struct bio_vec *bvec) { - unsigned long nr_migrated; - struct zram *zram = dev_to_zram(dev); - struct zram_meta *meta; + if (*offset + bvec->bv_len >= PAGE_SIZE) + (*index)++; + *offset = (*offset + bvec->bv_len) % PAGE_SIZE; +} - down_read(&zram->init_lock); - if (!init_done(zram)) { - up_read(&zram->init_lock); - return -EINVAL; - } +static inline void update_used_max(struct zram *zram, + const unsigned long pages) +{ + unsigned long old_max, cur_max; - meta = zram->meta; - nr_migrated = zs_compact(meta->mem_pool); - atomic64_add(nr_migrated, &zram->stats.num_migrated); - up_read(&zram->init_lock); + old_max = atomic_long_read(&zram->stats.max_used_pages); - return len; + do { + cur_max = old_max; + if (pages > cur_max) + old_max = atomic_long_cmpxchg( + &zram->stats.max_used_pages, cur_max, pages); + } while (old_max != cur_max); } -static ssize_t disksize_show(struct device *dev, - struct device_attribute *attr, char *buf) +static bool page_zero_filled(void *ptr) { - struct zram *zram = dev_to_zram(dev); + unsigned int pos; + unsigned long *page; - return scnprintf(buf, PAGE_SIZE, "%llu\n", zram->disksize); + page = (unsigned long *)ptr; + + for (pos = 0; pos != PAGE_SIZE / sizeof(*page); pos++) { + if (page[pos]) + return false; + } + + return true; +} + +static void handle_zero_page(struct bio_vec *bvec) +{ + struct page *page = bvec->bv_page; + void *user_mem; + + user_mem = kmap_atomic(page); + if (is_partial_io(bvec)) + memset(user_mem + bvec->bv_offset, 0, bvec->bv_len); + else + clear_page(user_mem); + kunmap_atomic(user_mem); + + flush_dcache_page(page); } static ssize_t initstate_show(struct device *dev, @@ -167,6 +201,14 @@ static ssize_t initstate_show(struct device *dev, return scnprintf(buf, PAGE_SIZE, "%u\n", val); } +static ssize_t disksize_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct zram *zram = dev_to_zram(dev); + + return scnprintf(buf, PAGE_SIZE, "%llu\n", zram->disksize); +} + static ssize_t orig_data_size_show(struct device *dev, struct device_attribute *attr, char *buf) { @@ -194,19 +236,6 @@ static ssize_t mem_used_total_show(struct device *dev, return scnprintf(buf, PAGE_SIZE, "%llu\n", val << PAGE_SHIFT); } -static ssize_t max_comp_streams_show(struct device *dev, - struct device_attribute *attr, char *buf) -{ - int val; - struct zram *zram = dev_to_zram(dev); - - down_read(&zram->init_lock); - val = zram->max_comp_streams; - up_read(&zram->init_lock); - - return scnprintf(buf, PAGE_SIZE, "%d\n", val); -} - static ssize_t mem_limit_show(struct device *dev, struct device_attribute *attr, char *buf) { @@ -276,33 +305,25 @@ static ssize_t mem_used_max_store(struct device *dev, return len; } +/* + * We switched to per-cpu streams and this attr is not needed anymore. + * However, we will keep it around for some time, because: + * a) we may revert per-cpu streams in the future + * b) it's visible to user space and we need to follow our 2 years + * retirement rule; but we already have a number of 'soon to be + * altered' attrs, so max_comp_streams need to wait for the next + * layoff cycle. + */ +static ssize_t max_comp_streams_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + return scnprintf(buf, PAGE_SIZE, "%d\n", num_online_cpus()); +} + static ssize_t max_comp_streams_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t len) { - int num; - struct zram *zram = dev_to_zram(dev); - int ret; - - ret = kstrtoint(buf, 0, &num); - if (ret < 0) - return ret; - if (num < 1) - return -EINVAL; - - down_write(&zram->init_lock); - if (init_done(zram)) { - if (!zcomp_set_max_streams(zram->comp, num)) { - pr_info("Cannot change max compression streams\n"); - ret = -EINVAL; - goto out; - } - } - - zram->max_comp_streams = num; - ret = len; -out: - up_write(&zram->init_lock); - return ret; + return len; } static ssize_t comp_algorithm_show(struct device *dev, @@ -322,6 +343,11 @@ static ssize_t comp_algorithm_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t len) { struct zram *zram = dev_to_zram(dev); + size_t sz; + + if (!zcomp_available_algorithm(buf)) + return -EINVAL; + down_write(&zram->init_lock); if (init_done(zram)) { up_write(&zram->init_lock); @@ -329,78 +355,117 @@ static ssize_t comp_algorithm_store(struct device *dev, return -EBUSY; } strlcpy(zram->compressor, buf, sizeof(zram->compressor)); + + /* ignore trailing newline */ + sz = strlen(zram->compressor); + if (sz > 0 && zram->compressor[sz - 1] == '\n') + zram->compressor[sz - 1] = 0x00; + up_write(&zram->init_lock); return len; } -/* flag operations needs meta->tb_lock */ -static int zram_test_flag(struct zram_meta *meta, u32 index, - enum zram_pageflags flag) +static ssize_t compact_store(struct device *dev, + struct device_attribute *attr, const char *buf, size_t len) { - return meta->table[index].value & BIT(flag); -} + struct zram *zram = dev_to_zram(dev); + struct zram_meta *meta; -static void zram_set_flag(struct zram_meta *meta, u32 index, - enum zram_pageflags flag) -{ - meta->table[index].value |= BIT(flag); -} + down_read(&zram->init_lock); + if (!init_done(zram)) { + up_read(&zram->init_lock); + return -EINVAL; + } -static void zram_clear_flag(struct zram_meta *meta, u32 index, - enum zram_pageflags flag) -{ - meta->table[index].value &= ~BIT(flag); -} + meta = zram->meta; + zs_compact(meta->mem_pool); + up_read(&zram->init_lock); -static size_t zram_get_obj_size(struct zram_meta *meta, u32 index) -{ - return meta->table[index].value & (BIT(ZRAM_FLAG_SHIFT) - 1); + return len; } -static void zram_set_obj_size(struct zram_meta *meta, - u32 index, size_t size) +static ssize_t io_stat_show(struct device *dev, + struct device_attribute *attr, char *buf) { - unsigned long flags = meta->table[index].value >> ZRAM_FLAG_SHIFT; + struct zram *zram = dev_to_zram(dev); + ssize_t ret; - meta->table[index].value = (flags << ZRAM_FLAG_SHIFT) | size; -} + down_read(&zram->init_lock); + ret = scnprintf(buf, PAGE_SIZE, + "%8llu %8llu %8llu %8llu\n", + (u64)atomic64_read(&zram->stats.failed_reads), + (u64)atomic64_read(&zram->stats.failed_writes), + (u64)atomic64_read(&zram->stats.invalid_io), + (u64)atomic64_read(&zram->stats.notify_free)); + up_read(&zram->init_lock); -static inline int is_partial_io(struct bio_vec *bvec) -{ - return bvec->bv_len != PAGE_SIZE; + return ret; } -/* - * Check if request is within bounds and aligned on zram logical blocks. - */ -static inline int valid_io_request(struct zram *zram, - sector_t start, unsigned int size) +static ssize_t mm_stat_show(struct device *dev, + struct device_attribute *attr, char *buf) { - u64 end, bound; + struct zram *zram = dev_to_zram(dev); + struct zs_pool_stats pool_stats; + u64 orig_size, mem_used = 0; + long max_used; + ssize_t ret; - /* unaligned request */ - if (unlikely(start & (ZRAM_SECTOR_PER_LOGICAL_BLOCK - 1))) - return 0; - if (unlikely(size & (ZRAM_LOGICAL_BLOCK_SIZE - 1))) - return 0; + memset(&pool_stats, 0x00, sizeof(struct zs_pool_stats)); - end = start + (size >> SECTOR_SHIFT); - bound = zram->disksize >> SECTOR_SHIFT; - /* out of range range */ - if (unlikely(start >= bound || end > bound || start > end)) - return 0; + down_read(&zram->init_lock); + if (init_done(zram)) { + mem_used = zs_get_total_pages(zram->meta->mem_pool); + zs_pool_stats(zram->meta->mem_pool, &pool_stats); + } - /* I/O request is valid */ - return 1; -} + orig_size = atomic64_read(&zram->stats.pages_stored); + max_used = atomic_long_read(&zram->stats.max_used_pages); -static void zram_meta_free(struct zram_meta *meta, u64 disksize) -{ - size_t num_pages = disksize >> PAGE_SHIFT; - size_t index; + ret = scnprintf(buf, PAGE_SIZE, + "%8llu %8llu %8llu %8lu %8ld %8llu %8lu\n", + orig_size << PAGE_SHIFT, + (u64)atomic64_read(&zram->stats.compr_data_size), + mem_used << PAGE_SHIFT, + zram->limit_pages << PAGE_SHIFT, + max_used << PAGE_SHIFT, + (u64)atomic64_read(&zram->stats.zero_pages), + pool_stats.pages_compacted); + up_read(&zram->init_lock); - /* Free all pages that are still in this zram device */ - for (index = 0; index < num_pages; index++) { + return ret; +} + +static DEVICE_ATTR_RO(io_stat); +static DEVICE_ATTR_RO(mm_stat); +ZRAM_ATTR_RO(num_reads); +ZRAM_ATTR_RO(num_writes); +ZRAM_ATTR_RO(failed_reads); +ZRAM_ATTR_RO(failed_writes); +ZRAM_ATTR_RO(invalid_io); +ZRAM_ATTR_RO(notify_free); +ZRAM_ATTR_RO(zero_pages); +ZRAM_ATTR_RO(compr_data_size); + +static inline bool zram_meta_get(struct zram *zram) +{ + if (atomic_inc_not_zero(&zram->refcount)) + return true; + return false; +} + +static inline void zram_meta_put(struct zram *zram) +{ + atomic_dec(&zram->refcount); +} + +static void zram_meta_free(struct zram_meta *meta, u64 disksize) +{ + size_t num_pages = disksize >> PAGE_SHIFT; + size_t index; + + /* Free all pages that are still in this zram device */ + for (index = 0; index < num_pages; index++) { unsigned long handle = meta->table[index].handle; if (!handle) @@ -414,10 +479,9 @@ static void zram_meta_free(struct zram_meta *meta, u64 disksize) kfree(meta); } -static struct zram_meta *zram_meta_alloc(int device_id, u64 disksize) +static struct zram_meta *zram_meta_alloc(char *pool_name, u64 disksize) { size_t num_pages; - char pool_name[8]; struct zram_meta *meta = kmalloc(sizeof(*meta), GFP_KERNEL); if (!meta) @@ -430,8 +494,7 @@ static struct zram_meta *zram_meta_alloc(int device_id, u64 disksize) goto out_error; } - snprintf(pool_name, sizeof(pool_name), "zram%d", device_id); - meta->mem_pool = zs_create_pool(pool_name, GFP_NOIO | __GFP_HIGHMEM); + meta->mem_pool = zs_create_pool(pool_name); if (!meta->mem_pool) { pr_err("Error creating memory pool\n"); goto out_error; @@ -445,56 +508,6 @@ static struct zram_meta *zram_meta_alloc(int device_id, u64 disksize) return NULL; } -static inline bool zram_meta_get(struct zram *zram) -{ - if (atomic_inc_not_zero(&zram->refcount)) - return true; - return false; -} - -static inline void zram_meta_put(struct zram *zram) -{ - atomic_dec(&zram->refcount); -} - -static void update_position(u32 *index, int *offset, struct bio_vec *bvec) -{ - if (*offset + bvec->bv_len >= PAGE_SIZE) - (*index)++; - *offset = (*offset + bvec->bv_len) % PAGE_SIZE; -} - -static int page_zero_filled(void *ptr) -{ - unsigned int pos; - unsigned long *page; - - page = (unsigned long *)ptr; - - for (pos = 0; pos != PAGE_SIZE / sizeof(*page); pos++) { - if (page[pos]) - return 0; - } - - return 1; -} - -static void handle_zero_page(struct bio_vec *bvec) -{ - struct page *page = bvec->bv_page; - void *user_mem; - - user_mem = kmap_atomic(page); - if (is_partial_io(bvec)) - memset(user_mem + bvec->bv_offset, 0, bvec->bv_len); - else - clear_page(user_mem); - kunmap_atomic(user_mem); - - flush_dcache_page(page); -} - - /* * To protect concurrent access to the same index entry, * caller should hold this table index entry's bit_spinlock to @@ -589,7 +602,7 @@ static int zram_bvec_read(struct zram *zram, struct bio_vec *bvec, uncmem = user_mem; if (!uncmem) { - pr_info("Unable to allocate temp memory\n"); + pr_err("Unable to allocate temp memory\n"); ret = -ENOMEM; goto out_cleanup; } @@ -612,34 +625,17 @@ static int zram_bvec_read(struct zram *zram, struct bio_vec *bvec, return ret; } -static inline void update_used_max(struct zram *zram, - const unsigned long pages) -{ - unsigned long old_max, cur_max; - - old_max = atomic_long_read(&zram->stats.max_used_pages); - - do { - cur_max = old_max; - if (pages > cur_max) - old_max = atomic_long_cmpxchg( - &zram->stats.max_used_pages, cur_max, pages); - } while (old_max != cur_max); -} - static int zram_bvec_write(struct zram *zram, struct bio_vec *bvec, u32 index, int offset) { int ret = 0; size_t clen; - unsigned long handle; + unsigned long handle = 0; struct page *page; unsigned char *user_mem, *cmem, *src, *uncmem = NULL; struct zram_meta *meta = zram->meta; - struct zcomp_strm *zstrm; - bool locked = false; + struct zcomp_strm *zstrm = NULL; unsigned long alloced_pages; - static unsigned long zram_rs_time; page = bvec->bv_page; if (is_partial_io(bvec)) { @@ -657,10 +653,8 @@ static int zram_bvec_write(struct zram *zram, struct bio_vec *bvec, u32 index, goto out; } - zstrm = zcomp_strm_find(zram->comp); - locked = true; +compress_again: user_mem = kmap_atomic(page); - if (is_partial_io(bvec)) { memcpy(uncmem + offset, user_mem + bvec->bv_offset, bvec->bv_len); @@ -684,6 +678,7 @@ static int zram_bvec_write(struct zram *zram, struct bio_vec *bvec, u32 index, goto out; } + zstrm = zcomp_strm_find(zram->comp); ret = zcomp_compress(zram->comp, zstrm, uncmem, &clen); if (!is_partial_io(bvec)) { kunmap_atomic(user_mem); @@ -695,6 +690,7 @@ static int zram_bvec_write(struct zram *zram, struct bio_vec *bvec, u32 index, pr_err("Compression failed! err=%d\n", ret); goto out; } + src = zstrm->buffer; if (unlikely(clen > max_zpage_size)) { clen = PAGE_SIZE; @@ -702,26 +698,48 @@ static int zram_bvec_write(struct zram *zram, struct bio_vec *bvec, u32 index, src = uncmem; } - handle = zs_malloc(meta->mem_pool, clen); + /* + * handle allocation has 2 paths: + * a) fast path is executed with preemption disabled (for + * per-cpu streams) and has __GFP_DIRECT_RECLAIM bit clear, + * since we can't sleep; + * b) slow path enables preemption and attempts to allocate + * the page with __GFP_DIRECT_RECLAIM bit set. we have to + * put per-cpu compression stream and, thus, to re-do + * the compression once handle is allocated. + * + * if we have a 'non-null' handle here then we are coming + * from the slow path and handle has already been allocated. + */ + if (!handle) + handle = zs_malloc(meta->mem_pool, clen, + + __GFP_NOWARN | + __GFP_HIGHMEM); if (!handle) { - if (printk_timed_ratelimit(&zram_rs_time, - ALLOC_ERROR_LOG_RATE_MS)) - pr_info("Error allocating memory for compressed page: %u, size=%zu\n", - index, clen); + zcomp_strm_release(zram->comp, zstrm); + zstrm = NULL; + handle = zs_malloc(meta->mem_pool, clen, + GFP_NOIO | __GFP_HIGHMEM); + if (handle) + goto compress_again; + + pr_err("Error allocating memory for compressed page: %u, size=%zu\n", + index, clen); ret = -ENOMEM; goto out; } alloced_pages = zs_get_total_pages(meta->mem_pool); + update_used_max(zram, alloced_pages); + if (zram->limit_pages && alloced_pages > zram->limit_pages) { zs_free(meta->mem_pool, handle); ret = -ENOMEM; goto out; } - update_used_max(zram, alloced_pages); - cmem = zs_map_object(meta->mem_pool, handle, ZS_MM_WO); if ((clen == PAGE_SIZE) && !is_partial_io(bvec)) { @@ -733,7 +751,7 @@ static int zram_bvec_write(struct zram *zram, struct bio_vec *bvec, u32 index, } zcomp_strm_release(zram->comp, zstrm); - locked = false; + zstrm = NULL; zs_unmap_object(meta->mem_pool, handle); /* @@ -751,36 +769,13 @@ static int zram_bvec_write(struct zram *zram, struct bio_vec *bvec, u32 index, atomic64_add(clen, &zram->stats.compr_data_size); atomic64_inc(&zram->stats.pages_stored); out: - if (locked) + if (zstrm) zcomp_strm_release(zram->comp, zstrm); if (is_partial_io(bvec)) kfree(uncmem); return ret; } -static int zram_bvec_rw(struct zram *zram, struct bio_vec *bvec, u32 index, - int offset, int rw) -{ - int ret; - - if (rw == READ) { - atomic64_inc(&zram->stats.num_reads); - ret = zram_bvec_read(zram, bvec, index, offset); - } else { - atomic64_inc(&zram->stats.num_writes); - ret = zram_bvec_write(zram, bvec, index, offset); - } - - if (unlikely(ret)) { - if (rw == READ) - atomic64_inc(&zram->stats.failed_reads); - else - atomic64_inc(&zram->stats.failed_writes); - } - - return ret; -} - /* * zram_bio_discard - handler on discard request * @index: physical block index in PAGE_SIZE units @@ -820,217 +815,99 @@ static void zram_bio_discard(struct zram *zram, u32 index, } } -static void zram_reset_device(struct zram *zram) +static int zram_bvec_rw(struct zram *zram, struct bio_vec *bvec, u32 index, + int offset, int rw) { - struct zram_meta *meta; - struct zcomp *comp; - u64 disksize; - down_write(&zram->init_lock); + int ret; +/* + generic_start_io_acct(rw, bvec->bv_len >> SECTOR_SHIFT, + &zram->disk->part0); +*/ + if (rw == READ) { + atomic64_inc(&zram->stats.num_reads); + ret = zram_bvec_read(zram, bvec, index, offset); + } else { + atomic64_inc(&zram->stats.num_writes); + ret = zram_bvec_write(zram, bvec, index, offset); + } +/* + generic_end_io_acct(rw, &zram->disk->part0, start_time); +*/ + if (unlikely(ret)) { + if (rw == READ) + atomic64_inc(&zram->stats.failed_reads); + else + atomic64_inc(&zram->stats.failed_writes); + } - zram->limit_pages = 0; + return ret; +} - if (!init_done(zram)) { - up_write(&zram->init_lock); +static void __zram_make_request(struct zram *zram, struct bio *bio) +{ + int offset, rw; + u32 index; + struct bio_vec bvec; + struct bvec_iter iter; + + index = bio->bi_iter.bi_sector >> SECTORS_PER_PAGE_SHIFT; + offset = (bio->bi_iter.bi_sector & + (SECTORS_PER_PAGE - 1)) << SECTOR_SHIFT; + + if (unlikely(bio->bi_rw & REQ_DISCARD)) { + zram_bio_discard(zram, index, offset, bio); + bio_endio(bio, 0); return; } - meta = zram->meta; - comp = zram->comp; - disksize = zram->disksize; - /* - * Refcount will go down to 0 eventually and r/w handler - * cannot handle further I/O so it will bail out by - * check zram_meta_get. - */ - zram_meta_put(zram); - /* - * We want to free zram_meta in process context to avoid - * deadlock between reclaim path and any other locks. - */ - wait_event(zram->io_done, atomic_read(&zram->refcount) == 0); + rw = bio_data_dir(bio); + bio_for_each_segment(bvec, bio, iter) { + int max_transfer_size = PAGE_SIZE - offset; - /* Reset stats */ - memset(&zram->stats, 0, sizeof(zram->stats)); - zram->disksize = 0; - zram->max_comp_streams = 1; + if (bvec.bv_len > max_transfer_size) { + /* + * zram_bvec_rw() can only make operation on a single + * zram page. Split the bio vector. + */ + struct bio_vec bv; - set_capacity(zram->disk, 0); - part_stat_set_all(&zram->disk->part0, 0); + bv.bv_page = bvec.bv_page; + bv.bv_len = max_transfer_size; + bv.bv_offset = bvec.bv_offset; - up_write(&zram->init_lock); - /* I/O operation under all of CPU are done so let's free */ - zram_meta_free(meta, disksize); - zcomp_destroy(comp); + if (zram_bvec_rw(zram, &bv, index, offset, rw) < 0) + goto out; + + bv.bv_len = bvec.bv_len - max_transfer_size; + bv.bv_offset += max_transfer_size; + if (zram_bvec_rw(zram, &bv, index + 1, 0, rw) < 0) + goto out; + } else + if (zram_bvec_rw(zram, &bvec, index, offset, rw) < 0) + goto out; + + update_position(&index, &offset, &bvec); + } + + bio_endio(bio, 0); + return; + +out: + bio_io_error(bio); } -static ssize_t disksize_store(struct device *dev, - struct device_attribute *attr, const char *buf, size_t len) +/* + * Handler function for all zram I/O requests. + */ +static void zram_make_request(struct request_queue *queue, struct bio *bio) { - u64 disksize; - struct zcomp *comp; - struct zram_meta *meta; - struct zram *zram = dev_to_zram(dev); - int err; + struct zram *zram = queue->queuedata; - disksize = memparse(buf, NULL); - if (!disksize) - return -EINVAL; + if (unlikely(!zram_meta_get(zram))) + goto error; - disksize = PAGE_ALIGN(disksize); - meta = zram_meta_alloc(zram->disk->first_minor, disksize); - if (!meta) - return -ENOMEM; - comp = zcomp_create(zram->compressor, zram->max_comp_streams); - if (IS_ERR(comp)) { - pr_info("Cannot initialise %s compressing backend\n", - zram->compressor); - err = PTR_ERR(comp); - goto out_free_meta; - } - - down_write(&zram->init_lock); - if (init_done(zram)) { - pr_info("Cannot change disksize for initialized device\n"); - err = -EBUSY; - goto out_destroy_comp; - } - - init_waitqueue_head(&zram->io_done); - atomic_set(&zram->refcount, 1); - zram->meta = meta; - zram->comp = comp; - zram->disksize = disksize; - set_capacity(zram->disk, zram->disksize >> SECTOR_SHIFT); - up_write(&zram->init_lock); - - /* - * Revalidate disk out of the init_lock to avoid lockdep splat. - * It's okay because disk's capacity is protected by init_lock - * so that revalidate_disk always sees up-to-date capacity. - */ - revalidate_disk(zram->disk); - - return len; - -out_destroy_comp: - up_write(&zram->init_lock); - zcomp_destroy(comp); -out_free_meta: - zram_meta_free(meta, disksize); - return err; -} - -static ssize_t reset_store(struct device *dev, - struct device_attribute *attr, const char *buf, size_t len) -{ - int ret; - unsigned short do_reset; - struct zram *zram; - struct block_device *bdev; - - zram = dev_to_zram(dev); - bdev = bdget_disk(zram->disk, 0); - - if (!bdev) - return -ENOMEM; - - mutex_lock(&bdev->bd_mutex); - /* Do not reset an active device! */ - if (bdev->bd_openers) { - ret = -EBUSY; - goto out; - } - - ret = kstrtou16(buf, 10, &do_reset); - if (ret) - goto out; - - if (!do_reset) { - ret = -EINVAL; - goto out; - } - - /* Make sure all pending I/O is finished */ - fsync_bdev(bdev); - zram_reset_device(zram); - - mutex_unlock(&bdev->bd_mutex); - revalidate_disk(zram->disk); - bdput(bdev); - - return len; - -out: - mutex_unlock(&bdev->bd_mutex); - bdput(bdev); - return ret; -} - -static void __zram_make_request(struct zram *zram, struct bio *bio) -{ - int offset, rw; - u32 index; - struct bio_vec bvec; - struct bvec_iter iter; - - index = bio->bi_iter.bi_sector >> SECTORS_PER_PAGE_SHIFT; - offset = (bio->bi_iter.bi_sector & - (SECTORS_PER_PAGE - 1)) << SECTOR_SHIFT; - - if (unlikely(bio->bi_rw & REQ_DISCARD)) { - zram_bio_discard(zram, index, offset, bio); - bio_endio(bio, 0); - return; - } - - rw = bio_data_dir(bio); - bio_for_each_segment(bvec, bio, iter) { - int max_transfer_size = PAGE_SIZE - offset; - - if (bvec.bv_len > max_transfer_size) { - /* - * zram_bvec_rw() can only make operation on a single - * zram page. Split the bio vector. - */ - struct bio_vec bv; - - bv.bv_page = bvec.bv_page; - bv.bv_len = max_transfer_size; - bv.bv_offset = bvec.bv_offset; - - if (zram_bvec_rw(zram, &bv, index, offset, rw) < 0) - goto out; - - bv.bv_len = bvec.bv_len - max_transfer_size; - bv.bv_offset += max_transfer_size; - if (zram_bvec_rw(zram, &bv, index + 1, 0, rw) < 0) - goto out; - } else - if (zram_bvec_rw(zram, &bvec, index, offset, rw) < 0) - goto out; - - update_position(&index, &offset, &bvec); - } - - set_bit(BIO_UPTODATE, &bio->bi_flags); - bio_endio(bio, 0); - return; - -out: - bio_io_error(bio); -} - -/* - * Handler function for all zram I/O requests. - */ -static void zram_make_request(struct request_queue *queue, struct bio *bio) -{ - struct zram *zram = queue->queuedata; - - if (unlikely(!zram_meta_get(zram))) - goto error; if (!valid_io_request(zram, bio->bi_iter.bi_sector, bio->bi_iter.bi_size)) { @@ -1045,6 +922,7 @@ static void zram_make_request(struct request_queue *queue, struct bio *bio) zram_meta_put(zram); error: bio_io_error(bio); + return; } static void zram_slot_free_notify(struct block_device *bdev, @@ -1104,80 +982,184 @@ static int zram_rw_page(struct block_device *bdev, sector_t sector, return err; } -static const struct block_device_operations zram_devops = { - .swap_slot_free_notify = zram_slot_free_notify, - .rw_page = zram_rw_page, - .owner = THIS_MODULE -}; +static void zram_reset_device(struct zram *zram) +{ + struct zram_meta *meta; + struct zcomp *comp; + u64 disksize; -static DEVICE_ATTR_WO(compact); -static DEVICE_ATTR_RW(disksize); -static DEVICE_ATTR_RO(initstate); -static DEVICE_ATTR_WO(reset); -static DEVICE_ATTR_RO(orig_data_size); -static DEVICE_ATTR_RO(mem_used_total); -static DEVICE_ATTR_RW(mem_limit); -static DEVICE_ATTR_RW(mem_used_max); -static DEVICE_ATTR_RW(max_comp_streams); -static DEVICE_ATTR_RW(comp_algorithm); + down_write(&zram->init_lock); -static ssize_t io_stat_show(struct device *dev, - struct device_attribute *attr, char *buf) + zram->limit_pages = 0; + + if (!init_done(zram)) { + up_write(&zram->init_lock); + return; + } + + meta = zram->meta; + comp = zram->comp; + disksize = zram->disksize; + /* + * Refcount will go down to 0 eventually and r/w handler + * cannot handle further I/O so it will bail out by + * check zram_meta_get. + */ + zram_meta_put(zram); + /* + * We want to free zram_meta in process context to avoid + * deadlock between reclaim path and any other locks. + */ + wait_event(zram->io_done, atomic_read(&zram->refcount) == 0); + + /* Reset stats */ + memset(&zram->stats, 0, sizeof(zram->stats)); + zram->disksize = 0; + + set_capacity(zram->disk, 0); + part_stat_set_all(&zram->disk->part0, 0); + + up_write(&zram->init_lock); + /* I/O operation under all of CPU are done so let's free */ + zram_meta_free(meta, disksize); + zcomp_destroy(comp); +} + +static ssize_t disksize_store(struct device *dev, + struct device_attribute *attr, const char *buf, size_t len) { + u64 disksize; + struct zcomp *comp; + struct zram_meta *meta; struct zram *zram = dev_to_zram(dev); - ssize_t ret; + int err; - down_read(&zram->init_lock); - ret = scnprintf(buf, PAGE_SIZE, - "%8llu %8llu %8llu %8llu\n", - (u64)atomic64_read(&zram->stats.failed_reads), - (u64)atomic64_read(&zram->stats.failed_writes), - (u64)atomic64_read(&zram->stats.invalid_io), - (u64)atomic64_read(&zram->stats.notify_free)); - up_read(&zram->init_lock); + disksize = memparse(buf, NULL); + if (!disksize) + return -EINVAL; - return ret; + disksize = PAGE_ALIGN(disksize); + meta = zram_meta_alloc(zram->disk->disk_name, disksize); + if (!meta) + return -ENOMEM; + + comp = zcomp_create(zram->compressor); + if (IS_ERR(comp)) { + pr_err("Cannot initialise %s compressing backend\n", + zram->compressor); + err = PTR_ERR(comp); + goto out_free_meta; + } + + down_write(&zram->init_lock); + if (init_done(zram)) { + pr_info("Cannot change disksize for initialized device\n"); + err = -EBUSY; + goto out_destroy_comp; + } + + init_waitqueue_head(&zram->io_done); + atomic_set(&zram->refcount, 1); + zram->meta = meta; + zram->comp = comp; + zram->disksize = disksize; + set_capacity(zram->disk, zram->disksize >> SECTOR_SHIFT); + up_write(&zram->init_lock); + + /* + * Revalidate disk out of the init_lock to avoid lockdep splat. + * It's okay because disk's capacity is protected by init_lock + * so that revalidate_disk always sees up-to-date capacity. + */ + revalidate_disk(zram->disk); + + return len; + +out_destroy_comp: + up_write(&zram->init_lock); + zcomp_destroy(comp); +out_free_meta: + zram_meta_free(meta, disksize); + return err; } -static ssize_t mm_stat_show(struct device *dev, - struct device_attribute *attr, char *buf) +static ssize_t reset_store(struct device *dev, + struct device_attribute *attr, const char *buf, size_t len) { - struct zram *zram = dev_to_zram(dev); - u64 orig_size, mem_used = 0; - long max_used; - ssize_t ret; + int ret; + unsigned short do_reset; + struct zram *zram; + struct block_device *bdev; - down_read(&zram->init_lock); - if (init_done(zram)) - mem_used = zs_get_total_pages(zram->meta->mem_pool); + ret = kstrtou16(buf, 10, &do_reset); + if (ret) + return ret; - orig_size = atomic64_read(&zram->stats.pages_stored); - max_used = atomic_long_read(&zram->stats.max_used_pages); + if (!do_reset) + return -EINVAL; - ret = scnprintf(buf, PAGE_SIZE, - "%8llu %8llu %8llu %8lu %8ld %8llu %8llu\n", - orig_size << PAGE_SHIFT, - (u64)atomic64_read(&zram->stats.compr_data_size), - mem_used << PAGE_SHIFT, - zram->limit_pages << PAGE_SHIFT, - max_used << PAGE_SHIFT, - (u64)atomic64_read(&zram->stats.zero_pages), - (u64)atomic64_read(&zram->stats.num_migrated)); - up_read(&zram->init_lock); + zram = dev_to_zram(dev); + bdev = bdget_disk(zram->disk, 0); + if (!bdev) + return -ENOMEM; + + mutex_lock(&bdev->bd_mutex); + /* Do not reset an active device or claimed device */ + if (bdev->bd_openers || zram->claim) { + mutex_unlock(&bdev->bd_mutex); + bdput(bdev); + return -EBUSY; + } + + /* From now on, anyone can't open /dev/zram[0-9] */ + zram->claim = true; + mutex_unlock(&bdev->bd_mutex); + + /* Make sure all the pending I/O are finished */ + fsync_bdev(bdev); + zram_reset_device(zram); + revalidate_disk(zram->disk); + bdput(bdev); + + mutex_lock(&bdev->bd_mutex); + zram->claim = false; + mutex_unlock(&bdev->bd_mutex); + + return len; +} + +static int zram_open(struct block_device *bdev, fmode_t mode) +{ + int ret = 0; + struct zram *zram; + + WARN_ON(!mutex_is_locked(&bdev->bd_mutex)); + + zram = bdev->bd_disk->private_data; + /* zram was claimed to reset so open request fails */ + if (zram->claim) + ret = -EBUSY; return ret; } -static DEVICE_ATTR_RO(io_stat); -static DEVICE_ATTR_RO(mm_stat); -ZRAM_ATTR_RO(num_reads); -ZRAM_ATTR_RO(num_writes); -ZRAM_ATTR_RO(failed_reads); -ZRAM_ATTR_RO(failed_writes); -ZRAM_ATTR_RO(invalid_io); -ZRAM_ATTR_RO(notify_free); -ZRAM_ATTR_RO(zero_pages); -ZRAM_ATTR_RO(compr_data_size); +static const struct block_device_operations zram_devops = { + .open = zram_open, + .swap_slot_free_notify = zram_slot_free_notify, + .rw_page = zram_rw_page, + .owner = THIS_MODULE +}; + +static DEVICE_ATTR_WO(compact); +static DEVICE_ATTR_RW(disksize); +static DEVICE_ATTR_RO(initstate); +static DEVICE_ATTR_WO(reset); +static DEVICE_ATTR_RO(orig_data_size); +static DEVICE_ATTR_RO(mem_used_total); +static DEVICE_ATTR_RW(mem_limit); +static DEVICE_ATTR_RW(mem_used_max); +static DEVICE_ATTR_RW(max_comp_streams); +static DEVICE_ATTR_RW(comp_algorithm); static struct attribute *zram_disk_attrs[] = { &dev_attr_disksize.attr, @@ -1207,10 +1189,24 @@ static struct attribute_group zram_disk_attr_group = { .attrs = zram_disk_attrs, }; -static int create_device(struct zram *zram, int device_id) +/* + * Allocate and initialize new zram device. the function returns + * '>= 0' device_id upon success, and negative value otherwise. + */ +static int zram_add(void) { + struct zram *zram; struct request_queue *queue; - int ret = -ENOMEM; + int ret, device_id; + + zram = kzalloc(sizeof(struct zram), GFP_KERNEL); + if (!zram) + return -ENOMEM; + + ret = idr_alloc(&zram_index_idr, zram, 0, 0, GFP_KERNEL); + if (ret < 0) + goto out_free_dev; + device_id = ret; init_rwsem(&zram->init_lock); @@ -1218,15 +1214,16 @@ static int create_device(struct zram *zram, int device_id) if (!queue) { pr_err("Error allocating disk queue for device %d\n", device_id); - goto out; + ret = -ENOMEM; + goto out_free_idr; } blk_queue_make_request(queue, zram_make_request); - /* gendisk structure */ + /* gendisk structure */ zram->disk = alloc_disk(1); if (!zram->disk) { - pr_warn("Error allocating disk structure for device %d\n", + pr_err("Error allocating disk structure for device %d\n", device_id); ret = -ENOMEM; goto out_free_queue; @@ -1240,7 +1237,6 @@ static int create_device(struct zram *zram, int device_id) zram->disk->private_data = zram; snprintf(zram->disk->disk_name, 16, "zram%d", device_id); - __set_bit(QUEUE_FLAG_FAST, &queue->queue_flags); /* Actual capacity set using syfs (/sys/block/zram/disksize */ set_capacity(zram->disk, 0); /* zram devices sort of resembles non-rotational disks */ @@ -1256,7 +1252,7 @@ static int create_device(struct zram *zram, int device_id) blk_queue_io_min(zram->disk->queue, PAGE_SIZE); blk_queue_io_opt(zram->disk->queue, PAGE_SIZE); zram->disk->queue->limits.discard_granularity = PAGE_SIZE; - zram->disk->queue->limits.max_discard_sectors = UINT_MAX; + blk_queue_max_discard_sectors(zram->disk->queue, UINT_MAX); /* * zram_bio_discard() will clear all logical blocks if logical block * size is identical with physical block size(PAGE_SIZE). But if it is @@ -1276,98 +1272,184 @@ static int create_device(struct zram *zram, int device_id) ret = sysfs_create_group(&disk_to_dev(zram->disk)->kobj, &zram_disk_attr_group); if (ret < 0) { - pr_warn("Error creating sysfs group"); + pr_err("Error creating sysfs group for device %d\n", + device_id); goto out_free_disk; } strlcpy(zram->compressor, default_compressor, sizeof(zram->compressor)); zram->meta = NULL; - zram->max_comp_streams = 1; - return 0; + + pr_info("Added device: %s\n", zram->disk->disk_name); + return device_id; out_free_disk: del_gendisk(zram->disk); put_disk(zram->disk); out_free_queue: blk_cleanup_queue(queue); -out: +out_free_idr: + idr_remove(&zram_index_idr, device_id); +out_free_dev: + kfree(zram); return ret; } -static void destroy_devices(unsigned int nr) +static int zram_remove(struct zram *zram) +{ + struct block_device *bdev; + + bdev = bdget_disk(zram->disk, 0); + if (!bdev) + return -ENOMEM; + + mutex_lock(&bdev->bd_mutex); + if (bdev->bd_openers || zram->claim) { + mutex_unlock(&bdev->bd_mutex); + bdput(bdev); + return -EBUSY; + } + + zram->claim = true; + mutex_unlock(&bdev->bd_mutex); + + /* + * Remove sysfs first, so no one will perform a disksize + * store while we destroy the devices. This also helps during + * hot_remove -- zram_reset_device() is the last holder of + * ->init_lock, no later/concurrent disksize_store() or any + * other sysfs handlers are possible. + */ + sysfs_remove_group(&disk_to_dev(zram->disk)->kobj, + &zram_disk_attr_group); + + /* Make sure all the pending I/O are finished */ + fsync_bdev(bdev); + zram_reset_device(zram); + bdput(bdev); + + pr_info("Removed device: %s\n", zram->disk->disk_name); + + blk_cleanup_queue(zram->disk->queue); + del_gendisk(zram->disk); + put_disk(zram->disk); + kfree(zram); + return 0; +} + +/* zram-control sysfs attributes */ +static ssize_t hot_add_show(struct class *class, + struct class_attribute *attr, + char *buf) +{ + int ret; + + mutex_lock(&zram_index_mutex); + ret = zram_add(); + mutex_unlock(&zram_index_mutex); + + if (ret < 0) + return ret; + return scnprintf(buf, PAGE_SIZE, "%d\n", ret); +} + +static ssize_t hot_remove_store(struct class *class, + struct class_attribute *attr, + const char *buf, + size_t count) { struct zram *zram; - unsigned int i; + int ret, dev_id; - for (i = 0; i < nr; i++) { - zram = &zram_devices[i]; - /* - * Remove sysfs first, so no one will perform a disksize - * store while we destroy the devices - */ - sysfs_remove_group(&disk_to_dev(zram->disk)->kobj, - &zram_disk_attr_group); + /* dev_id is gendisk->first_minor, which is `int' */ + ret = kstrtoint(buf, 10, &dev_id); + if (ret) + return ret; + if (dev_id < 0) + return -EINVAL; - zram_reset_device(zram); + mutex_lock(&zram_index_mutex); - blk_cleanup_queue(zram->disk->queue); - del_gendisk(zram->disk); - put_disk(zram->disk); + zram = idr_find(&zram_index_idr, dev_id); + if (zram) { + ret = zram_remove(zram); + idr_remove(&zram_index_idr, dev_id); + } else { + ret = -ENODEV; } - kfree(zram_devices); + mutex_unlock(&zram_index_mutex); + return ret ? ret : count; +} + +static struct class_attribute zram_control_class_attrs[] = { + __ATTR_RO(hot_add), + __ATTR_WO(hot_remove), + __ATTR_NULL, +}; + +static struct class zram_control_class = { + .name = "zram-control", + .owner = THIS_MODULE, + .class_attrs = zram_control_class_attrs, +}; + +static int zram_remove_cb(int id, void *ptr, void *data) +{ + zram_remove(ptr); + return 0; +} + +static void destroy_devices(void) +{ + class_unregister(&zram_control_class); + idr_for_each(&zram_index_idr, &zram_remove_cb, NULL); + idr_destroy(&zram_index_idr); unregister_blkdev(zram_major, "zram"); - pr_info("Destroyed %u device(s)\n", nr); } static int __init zram_init(void) { - int ret, dev_id; + int ret; - if (num_devices > max_num_devices) { - pr_warn("Invalid value for num_devices: %u\n", - num_devices); - return -EINVAL; + ret = class_register(&zram_control_class); + if (ret) { + pr_err("Unable to register zram-control class\n"); + return ret; } zram_major = register_blkdev(0, "zram"); if (zram_major <= 0) { - pr_warn("Unable to get major number\n"); + pr_err("Unable to get major number\n"); + class_unregister(&zram_control_class); return -EBUSY; } - /* Allocate the device array and initialize each one */ - zram_devices = kzalloc(num_devices * sizeof(struct zram), GFP_KERNEL); - if (!zram_devices) { - unregister_blkdev(zram_major, "zram"); - return -ENOMEM; - } - - for (dev_id = 0; dev_id < num_devices; dev_id++) { - ret = create_device(&zram_devices[dev_id], dev_id); - if (ret) + while (num_devices != 0) { + mutex_lock(&zram_index_mutex); + ret = zram_add(); + mutex_unlock(&zram_index_mutex); + if (ret < 0) goto out_error; + num_devices--; } - show_mem_notifier_register(&zram_show_mem_notifier_block); - pr_info("Created %u device(s) ...\n", num_devices); - return 0; out_error: - destroy_devices(dev_id); + destroy_devices(); return ret; } static void __exit zram_exit(void) { - destroy_devices(num_devices); + destroy_devices(); } module_init(zram_init); module_exit(zram_exit); module_param(num_devices, uint, 0); -MODULE_PARM_DESC(num_devices, "Number of zram devices"); +MODULE_PARM_DESC(num_devices, "Number of pre-created zram devices"); MODULE_LICENSE("Dual BSD/GPL"); MODULE_AUTHOR("Nitin Gupta "); diff --git a/drivers/block/zram/zram_drv.h b/drivers/block/zram/zram_drv.h index 570c598f4ce9a..06b1636f47221 100644 --- a/drivers/block/zram/zram_drv.h +++ b/drivers/block/zram/zram_drv.h @@ -20,12 +20,6 @@ #include "zcomp.h" -/* - * Some arbitrary value. This is just to catch - * invalid value for num_devices module parameter. - */ -static const unsigned max_num_devices = 32; - /*-- Configurable parameters */ /* @@ -84,7 +78,6 @@ struct zram_stats { atomic64_t compr_data_size; /* compressed size of pages stored */ atomic64_t num_reads; /* failed + successful */ atomic64_t num_writes; /* --do-- */ - atomic64_t num_migrated; /* no. of migrated object */ atomic64_t failed_reads; /* can happen when memory is too low */ atomic64_t failed_writes; /* can happen when memory is too low */ atomic64_t invalid_io; /* non-page-aligned I/O requests */ @@ -109,7 +102,6 @@ struct zram { * the number of pages zram can consume for storing compressed data */ unsigned long limit_pages; - int max_comp_streams; struct zram_stats stats; atomic_t refcount; /* refcount for zram_meta */ @@ -121,5 +113,9 @@ struct zram { */ u64 disksize; /* bytes */ char compressor[10]; + /* + * zram is claimed so open request will be failed + */ + bool claim; /* Protected by bdev->bd_mutex */ }; #endif diff --git a/drivers/char/diag/diag_masks.c b/drivers/char/diag/diag_masks.c index 7b2fa58147311..de18a7a86dc41 100644 --- a/drivers/char/diag/diag_masks.c +++ b/drivers/char/diag/diag_masks.c @@ -753,7 +753,9 @@ static int diag_cmd_set_msg_mask(unsigned char *src_buf, int src_len, for (i = 0; i < NUM_PERIPHERALS; i++) { if (!diag_check_update(i)) continue; + mutex_lock(&driver->md_session_lock); diag_send_msg_mask_update(i, req->ssid_first, req->ssid_last); + mutex_unlock(&driver->md_session_lock); } end: return write_len; @@ -815,7 +817,9 @@ static int diag_cmd_set_all_msg_mask(unsigned char *src_buf, int src_len, for (i = 0; i < NUM_PERIPHERALS; i++) { if (!diag_check_update(i)) continue; + mutex_lock(&driver->md_session_lock); diag_send_msg_mask_update(i, ALL_SSID, ALL_SSID); + mutex_unlock(&driver->md_session_lock); } return write_len; @@ -909,7 +913,9 @@ static int diag_cmd_update_event_mask(unsigned char *src_buf, int src_len, for (i = 0; i < NUM_PERIPHERALS; i++) { if (!diag_check_update(i)) continue; + mutex_lock(&driver->md_session_lock); diag_send_event_mask_update(i); + mutex_unlock(&driver->md_session_lock); } return write_len; @@ -956,7 +962,9 @@ static int diag_cmd_toggle_events(unsigned char *src_buf, int src_len, for (i = 0; i < NUM_PERIPHERALS; i++) { if (!diag_check_update(i)) continue; + mutex_lock(&driver->md_session_lock); diag_send_event_mask_update(i); + mutex_unlock(&driver->md_session_lock); } memcpy(dest_buf, &header, sizeof(header)); write_len += sizeof(header); @@ -1210,7 +1218,9 @@ static int diag_cmd_set_log_mask(unsigned char *src_buf, int src_len, for (i = 0; i < NUM_PERIPHERALS; i++) { if (!diag_check_update(i)) continue; + mutex_lock(&driver->md_session_lock); diag_send_log_mask_update(i, req->equip_id); + mutex_unlock(&driver->md_session_lock); } end: return write_len; @@ -1261,7 +1271,9 @@ static int diag_cmd_disable_log_mask(unsigned char *src_buf, int src_len, for (i = 0; i < NUM_PERIPHERALS; i++) { if (!diag_check_update(i)) continue; + mutex_lock(&driver->md_session_lock); diag_send_log_mask_update(i, ALL_EQUIP_ID); + mutex_unlock(&driver->md_session_lock); } return write_len; @@ -1882,6 +1894,12 @@ int diag_copy_to_user_log_mask(char __user *buf, size_t count, mutex_lock(&mask_info->lock); mask = (struct diag_log_mask_t *)(mask_info->ptr); for (i = 0; i < MAX_EQUIP_ID; i++, mask++) { + if (!mask->ptr) { + pr_err("diag: In %s, mask->ptr==NULL, equip_id:%d\n", + __func__, mask->equip_id); + continue; + } + ptr = mask_info->update_buf; len = 0; mutex_lock(&mask->lock); @@ -1924,9 +1942,11 @@ void diag_send_updates_peripheral(uint8_t peripheral) diag_send_feature_mask_update(peripheral); if (driver->time_sync_enabled) diag_send_time_sync_update(peripheral); + mutex_lock(&driver->md_session_lock); diag_send_msg_mask_update(peripheral, ALL_SSID, ALL_SSID); diag_send_log_mask_update(peripheral, ALL_EQUIP_ID); diag_send_event_mask_update(peripheral); + mutex_unlock(&driver->md_session_lock); diag_send_real_time_update(peripheral, driver->real_time_mode[DIAG_LOCAL_PROC]); diag_send_peripheral_buffering_mode( diff --git a/drivers/char/diag/diag_usb.c b/drivers/char/diag/diag_usb.c index ca54b24ec6042..93c5076302cf9 100644 --- a/drivers/char/diag/diag_usb.c +++ b/drivers/char/diag/diag_usb.c @@ -213,23 +213,33 @@ static void usb_connect_work_fn(struct work_struct *work) * and synchronously when Diag wants to disconnect from USB * explicitly. */ -static void usb_disconnect(struct diag_usb_info *ch) +static void __usb_disconnect(struct diag_usb_info *ch, int skip) { if (!ch) return; - if (!atomic_read(&ch->connected) && driver->usb_connected) + WARN_ON(skip && !atomic_read(&ch->connected) && driver->usb_connected); + + if (!skip && !atomic_read(&ch->connected) && driver->usb_connected) diag_clear_masks(NULL); if (ch && ch->ops && ch->ops->close) ch->ops->close(ch->ctxt, DIAG_USB_MODE); } +static void usb_disconnect(struct diag_usb_info *ch) +{ + if (!ch) + return; + + __usb_disconnect(ch, ch->closing); +} + static void usb_disconnect_work_fn(struct work_struct *work) { struct diag_usb_info *ch = container_of(work, struct diag_usb_info, disconnect_work); - usb_disconnect(ch); + __usb_disconnect(ch, 0); } static void usb_read_work_fn(struct work_struct *work) @@ -354,12 +364,14 @@ static void diag_usb_notifier(void *priv, unsigned event, switch (event) { case USB_DIAG_CONNECT: usb_info->max_size = usb_diag_request_size(usb_info->hdl); + usb_info->closing = 0; atomic_set(&usb_info->connected, 1); pr_info("diag: USB channel %s connected\n", usb_info->name); queue_work(usb_info->usb_wq, &usb_info->connect_work); break; case USB_DIAG_DISCONNECT: + usb_info->closing = 1; atomic_set(&usb_info->connected, 0); pr_info("diag: USB channel %s disconnected\n", usb_info->name); queue_work(usb_info->usb_wq, diff --git a/drivers/char/diag/diag_usb.h b/drivers/char/diag/diag_usb.h index cf4d4db3e3c32..22bf9b7dc3cd1 100644 --- a/drivers/char/diag/diag_usb.h +++ b/drivers/char/diag/diag_usb.h @@ -53,6 +53,7 @@ struct diag_usb_info { atomic_t connected; atomic_t diag_state; atomic_t read_pending; + int closing; int enabled; int mempool; int max_size; diff --git a/drivers/char/diag/diagfwd.c b/drivers/char/diag/diagfwd.c index 2d79828449312..1668274709b1a 100644 --- a/drivers/char/diag/diagfwd.c +++ b/drivers/char/diag/diagfwd.c @@ -1,4 +1,5 @@ /* Copyright (c) 2008-2017, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -903,7 +904,11 @@ int diag_process_apps_pkt(unsigned char *buf, int len, pr_debug("diag: In %s, received cmd %02x %02x %02x\n", __func__, entry.cmd_code, entry.subsys_id, entry.cmd_code_hi); - +#ifdef WT_COMPILE_FACTORY_VERSION + if (entry.cmd_code == 0x4b && entry.subsys_id == 0x0b && (entry.cmd_code_hi == 0x36 || entry.cmd_code_hi == 0x34)) { + print_hex_dump(KERN_ERR, "wt_factory_cmd: ", DUMP_PREFIX_NONE, 16, 1, &buf[2], len > (3+5) ? 6 : (len-2), false); + } +#endif if (*buf == DIAG_CMD_LOG_ON_DMND && driver->log_on_demand_support && driver->feature[PERIPHERAL_MODEM].rcvd_feature_mask) { write_len = diag_cmd_log_on_demand(buf, len, diff --git a/drivers/clk/msm/clock-debug.c b/drivers/clk/msm/clock-debug.c index d0ff821eb2039..bbcfed53fb1f5 100644 --- a/drivers/clk/msm/clock-debug.c +++ b/drivers/clk/msm/clock-debug.c @@ -1,6 +1,7 @@ /* * Copyright (C) 2007 Google, Inc. * Copyright (c) 2007-2014, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. * * This software is licensed under the terms of the GNU General Public * License version 2, as published by the Free Software Foundation, and @@ -34,7 +35,7 @@ static LIST_HEAD(clk_list); static DEFINE_MUTEX(clk_list_lock); static struct dentry *debugfs_base; -static u32 debug_suspend; +static u32 debug_suspend = 1; static int clock_debug_rate_set(void *data, u64 val) { diff --git a/drivers/cpufreq/cpufreq_interactive.c b/drivers/cpufreq/cpufreq_interactive.c index 789a131fec7a5..bdac1d22b5282 100644 --- a/drivers/cpufreq/cpufreq_interactive.c +++ b/drivers/cpufreq/cpufreq_interactive.c @@ -31,6 +31,7 @@ #include #include #include +#include #define CREATE_TRACE_POINTS #include @@ -662,6 +663,14 @@ static void cpufreq_interactive_timer(unsigned long data) ppol->policy->cur, new_freq); ppol->target_freq = new_freq; + + if ((ppol->target_freq != ppol->policy->cur) + && (ppol->target_freq > ppol->policy->max)) { + ktrace_add_cpufreq_event(KTRACE_CPUFREQ_TYPE_MITIGATION, + current->pid, ktime_to_ns(ktime_get()), max_cpu, + ppol->target_freq, ppol->policy->max); + } + spin_unlock_irqrestore(&ppol->target_freq_lock, flags); spin_lock_irqsave(&speedchange_cpumask_lock, flags); cpumask_set_cpu(max_cpu, &speedchange_cpumask); @@ -1796,6 +1805,12 @@ static int cpufreq_governor_interactive(struct cpufreq_policy *policy, case CPUFREQ_GOV_LIMITS: ppol = per_cpu(polinfo, policy->cpu); + if (policy->max < policy->cpuinfo.max_freq) { + ktrace_cpufreq_set_mitigated(current->comm, policy->cpu, policy->related_cpus, policy->max); + } else { + ktrace_cpufreq_set_mitigated(current->comm, policy->cpu, policy->related_cpus, 0); + } + __cpufreq_driver_target(policy, ppol->target_freq, CPUFREQ_RELATION_L); diff --git a/drivers/fingerprint/Kconfig b/drivers/fingerprint/Kconfig new file mode 100755 index 0000000000000..fc1ec096771d1 --- /dev/null +++ b/drivers/fingerprint/Kconfig @@ -0,0 +1,7 @@ +config FINGERPRINT + tristate "Fingerprint driver support" + help + Say Y here to enable goodix fingerprint driver support! + +source "drivers/fingerprint/goodix/Kconfig" +source "drivers/fingerprint/fpc/Kconfig" diff --git a/drivers/fingerprint/Makefile b/drivers/fingerprint/Makefile new file mode 100755 index 0000000000000..28d1360d2205c --- /dev/null +++ b/drivers/fingerprint/Makefile @@ -0,0 +1,2 @@ +obj-$(CONFIG_FINGERPRINT_GOODIX_GF3208) += goodix/ +obj-$(CONFIG_FINGERPRINT_FPC1020) += fpc/ diff --git a/drivers/fingerprint/fpc/Kconfig b/drivers/fingerprint/fpc/Kconfig new file mode 100755 index 0000000000000..49cbae40d8ce8 --- /dev/null +++ b/drivers/fingerprint/fpc/Kconfig @@ -0,0 +1,5 @@ +config FINGERPRINT_FPC1020 + tristate "FingerPrint Cards fingerprint drvier support" + depends on FINGERPRINT + help + Say Y here to enable goodix fingerprint driver support! diff --git a/drivers/fingerprint/fpc/Makefile b/drivers/fingerprint/fpc/Makefile new file mode 100755 index 0000000000000..2a107b89704d4 --- /dev/null +++ b/drivers/fingerprint/fpc/Makefile @@ -0,0 +1 @@ +obj-$(CONFIG_FINGERPRINT_FPC1020) += fpc1020_tee.o diff --git a/drivers/fingerprint/fpc/fpc1020_tee.c b/drivers/fingerprint/fpc/fpc1020_tee.c new file mode 100644 index 0000000000000..3588b8b634fd6 --- /dev/null +++ b/drivers/fingerprint/fpc/fpc1020_tee.c @@ -0,0 +1,715 @@ +/* + * FPC1020 Fingerprint sensor device driver + * + * This driver will control the platform resources that the FPC fingerprint + * sensor needs to operate. The major things are probing the sensor to check + * that it is actually connected and let the Kernel know this and with that also + * enabling and disabling of regulators, enabling and disabling of platform + * clocks, controlling GPIOs such as SPI chip select, sensor reset line, sensor + * IRQ line, MISO and MOSI lines. + * + * The driver will expose most of its available functionality in sysfs which + * enables dynamic control of these features from eg. a user space process. + * + * The sensor's IRQ events will be pushed to Kernel's event handling system and + * are exposed in the drivers event node. This makes it possible for a user + * space process to poll the input node and receive IRQ events easily. Usually + * this node is available under /dev/input/eventX where 'X' is a number given by + * the event system. A user space process will need to traverse all the event + * nodes and ask for its parent's name (through EVIOCGNAME) which should match + * the value in device tree named input-device-name. + * + * This driver will NOT send any SPI commands to the sensor it only controls the + * electrical parts. + * + * + * Copyright (c) 2015 Fingerprint Cards AB + * Copyright (C) 2018 XiaoMi, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License Version 2 + * as published by the Free Software Foundation. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define FPC1020_RESET_LOW_US 1000 +#define FPC1020_RESET_HIGH1_US 100 +#define FPC1020_RESET_HIGH2_US 1250 +#define PWR_ON_STEP_SLEEP 100 +#define PWR_ON_STEP_RANGE1 100 +#define PWR_ON_STEP_RANGE2 900 +#define FPC_TTW_HOLD_TIME 2000 +#define FP_UNLOCK_REJECTION_TIMEOUT (FPC_TTW_HOLD_TIME - 500) +#define NUM_PARAMS_REG_ENABLE_SET 2 + +static const char * const pctl_names[] = { + "fpc1020_spi_active", + "fpc1020_reset_reset", + "fpc1020_reset_active", + "fpc1020_irq_active", +}; + + +struct fpc1020_data { + struct device *dev; + struct pinctrl *fingerprint_pinctrl; + struct pinctrl_state *pinctrl_state[ARRAY_SIZE(pctl_names)]; +#ifdef LINUX_CONTROL_SPI_CLK + u32 max_speed_hz; + struct clk *iface_clk; + struct clk *core_clk; +#endif + + struct wake_lock ttw_wl; + int irq_gpio; + int rst_gpio; + struct mutex lock; + bool prepared; + bool wakeup_enabled; + bool compatible_enabled; +#ifdef LINUX_CONTROL_SPI_CLK + bool clocks_enabled; + bool clocks_suspended; +#endif + struct notifier_block fb_notifier; + bool fb_black; + bool wait_finger_down; + struct work_struct work; +}; +char boardid_info_fingerprint[HARDWARE_MAX_ITEM_LONGTH] = {0,}; +static irqreturn_t fpc1020_irq_handler(int irq, void *handle); +static int fpc1020_request_named_gpio(struct fpc1020_data *fpc1020, + const char *label, int *gpio); +static int hw_reset(struct fpc1020_data *fpc1020); + +#ifdef LINUX_CONTROL_SPI_CLK +static int set_clks(struct fpc1020_data *fpc1020, bool enable) +{ + int rc = 0; + mutex_lock(&fpc1020->lock); + + if (enable == fpc1020->clocks_enabled) + goto out; + + if (enable) { + rc = clk_set_rate(fpc1020->core_clk, fpc1020->max_speed_hz); + if (rc) { + dev_err(fpc1020->dev, + "%s: Error setting clk_rate: %u, %d\n", + __func__, fpc1020->max_speed_hz, + rc); + goto out; + } + rc = clk_prepare_enable(fpc1020->core_clk); + if (rc) { + dev_err(fpc1020->dev, + "%s: Error enabling core clk: %d\n", + __func__, rc); + goto out; + } + + rc = clk_prepare_enable(fpc1020->iface_clk); + if (rc) { + dev_err(fpc1020->dev, + "%s: Error enabling iface clk: %d\n", + __func__, rc); + clk_disable_unprepare(fpc1020->core_clk); + goto out; + } + dev_dbg(fpc1020->dev, "%s ok. clk rate %u hz\n", __func__, + fpc1020->max_speed_hz); + + fpc1020->clocks_enabled = true; + } else { + clk_disable_unprepare(fpc1020->iface_clk); + clk_disable_unprepare(fpc1020->core_clk); + fpc1020->clocks_enabled = false; + } + +out: + mutex_unlock(&fpc1020->lock); + return rc; +} + +static ssize_t clk_enable_set(struct device *dev, + struct device_attribute *attr, const char *buf, size_t count) +{ + struct fpc1020_data *fpc1020 = dev_get_drvdata(dev); + return set_clks(fpc1020, (*buf == '1')) ? : count; +} + +static DEVICE_ATTR(clk_enable, S_IWUSR, NULL, clk_enable_set); +#endif +/** + * Will try to select the set of pins (GPIOS) defined in a pin control node of + * the device tree named @p name. + * + * The node can contain several eg. GPIOs that is controlled when selecting it. + * The node may activate or deactivate the pins it contains, the action is + * defined in the device tree node itself and not here. The states used + * internally is fetched at probe time. + * + * @see pctl_names + * @see fpc1020_probe + */ +static int select_pin_ctl(struct fpc1020_data *fpc1020, const char *name) +{ + size_t i; + int rc; + struct device *dev = fpc1020->dev; + for (i = 0; i < ARRAY_SIZE(fpc1020->pinctrl_state); i++) { + const char *n = pctl_names[i]; + if (!strncmp(n, name, strlen(n))) { + rc = pinctrl_select_state(fpc1020->fingerprint_pinctrl, + fpc1020->pinctrl_state[i]); + if (rc) + dev_err(dev, "cannot select '%s'\n", name); + else + dev_dbg(dev, "Selected '%s'\n", name); + goto exit; + } + } + rc = -EINVAL; + dev_err(dev, "%s:'%s' not found\n", __func__, name); +exit: + return rc; +} + +static ssize_t pinctl_set(struct device *dev, + struct device_attribute *attr, const char *buf, size_t count) +{ + struct fpc1020_data *fpc1020 = dev_get_drvdata(dev); + int rc = select_pin_ctl(fpc1020, buf); + return rc ? rc : count; +} +static DEVICE_ATTR(pinctl_set, S_IWUSR, NULL, pinctl_set); + +static int hw_reset(struct fpc1020_data *fpc1020) +{ + int irq_gpio; + struct device *dev = fpc1020->dev; + + int rc = select_pin_ctl(fpc1020, "fpc1020_reset_active"); + if (rc) + goto exit; + usleep_range(FPC1020_RESET_HIGH1_US, FPC1020_RESET_HIGH1_US + 100); + + rc = select_pin_ctl(fpc1020, "fpc1020_reset_reset"); + if (rc) + goto exit; + usleep_range(FPC1020_RESET_LOW_US, FPC1020_RESET_LOW_US + 100); + + rc = select_pin_ctl(fpc1020, "fpc1020_reset_active"); + if (rc) + goto exit; + usleep_range(FPC1020_RESET_HIGH1_US, FPC1020_RESET_HIGH1_US + 100); + + irq_gpio = gpio_get_value(fpc1020->irq_gpio); + dev_info(dev, "IRQ after reset %d\n", irq_gpio); +exit: + return rc; +} + +static ssize_t hw_reset_set(struct device *dev, + struct device_attribute *attr, const char *buf, size_t count) +{ + int rc; + struct fpc1020_data *fpc1020 = dev_get_drvdata(dev); + + if (!strncmp(buf, "reset", strlen("reset"))) + rc = hw_reset(fpc1020); + else + return -EINVAL; + return rc ? rc : count; +} +static DEVICE_ATTR(hw_reset, S_IWUSR, NULL, hw_reset_set); + +/** + * Will setup clocks, GPIOs, and regulators to correctly initialize the touch + * sensor to be ready for work. + * + * In the correct order according to the sensor spec this function will + * enable/disable regulators, SPI platform clocks, and reset line, all to set + * the sensor in a correct power on or off state "electrical" wise. + * + * @see spi_prepare_set + * @note This function will not send any commands to the sensor it will only + * control it "electrically". + */ +static int device_prepare(struct fpc1020_data *fpc1020, bool enable) +{ + int rc; + + mutex_lock(&fpc1020->lock); + if (enable && !fpc1020->prepared) { + fpc1020->prepared = true; + select_pin_ctl(fpc1020, "fpc1020_reset_reset"); + + usleep_range(PWR_ON_STEP_SLEEP, PWR_ON_STEP_RANGE2); + + (void)select_pin_ctl(fpc1020, "fpc1020_reset_active"); + usleep_range(PWR_ON_STEP_SLEEP, PWR_ON_STEP_RANGE1); + } else if (!enable && fpc1020->prepared) { + rc = 0; + + (void)select_pin_ctl(fpc1020, "fpc1020_reset_reset"); + usleep_range(PWR_ON_STEP_SLEEP, PWR_ON_STEP_RANGE2); + + fpc1020->prepared = false; + } else { + rc = 0; + } + mutex_unlock(&fpc1020->lock); + return rc; +} + +static ssize_t spi_prepare_set(struct device *dev, + struct device_attribute *attr, const char *buf, size_t count) +{ + int rc; + struct fpc1020_data *fpc1020 = dev_get_drvdata(dev); + + if (!strncmp(buf, "enable", strlen("enable"))) + rc = device_prepare(fpc1020, true); + else if (!strncmp(buf, "disable", strlen("disable"))) + rc = device_prepare(fpc1020, false); + else + return -EINVAL; + return rc ? rc : count; +} +static DEVICE_ATTR(spi_prepare, S_IWUSR, NULL, spi_prepare_set); + +/** + * sysf node to check the interrupt status of the sensor, the interrupt + * handler should perform sysf_notify to allow userland to poll the node. + */ +static ssize_t irq_get(struct device *device, + struct device_attribute *attribute, + char *buffer) +{ + struct fpc1020_data *fpc1020 = dev_get_drvdata(device); + int irq = gpio_get_value(fpc1020->irq_gpio); + return scnprintf(buffer, PAGE_SIZE, "%i\n", irq); +} + + +/** + * writing to the irq node will just drop a printk message + * and return success, used for latency measurement. + */ +static ssize_t irq_ack(struct device *device, + struct device_attribute *attribute, + const char *buffer, size_t count) +{ + struct fpc1020_data *fpc1020 = dev_get_drvdata(device); + dev_dbg(fpc1020->dev, "%s\n", __func__); + return count; +} + +static DEVICE_ATTR(irq, S_IRUSR | S_IWUSR, irq_get, irq_ack); + +static ssize_t fingerdown_wait_set(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t count) +{ + struct fpc1020_data *fpc1020 = dev_get_drvdata(dev); + + dev_dbg(fpc1020->dev, "%s\n", __func__); + if (!strncmp(buf, "enable", strlen("enable"))) + fpc1020->wait_finger_down = true; + else if (!strncmp(buf, "disable", strlen("disable"))) + fpc1020->wait_finger_down = false; + else + return -EINVAL; + + return count; +} +static DEVICE_ATTR(fingerdown_wait, S_IWUSR, NULL, fingerdown_wait_set); + +static ssize_t compatible_all_set(struct device *dev, + struct device_attribute *attr, const char *buf, size_t count) +{ + int rc; + int i; + int irqf; + struct fpc1020_data *fpc1020 = dev_get_drvdata(dev); + dev_err(dev, "compatible all enter %d\n", fpc1020->compatible_enabled); + if (!strncmp(buf, "enable", strlen("enable")) && fpc1020->compatible_enabled != 1) { + rc = fpc1020_request_named_gpio(fpc1020, "fpc,gpio_irq", + &fpc1020->irq_gpio); + if (rc) + goto exit; + rc = fpc1020_request_named_gpio(fpc1020, "fpc,gpio_rst", + &fpc1020->rst_gpio); + if (rc) + goto exit; + + fpc1020->fingerprint_pinctrl = devm_pinctrl_get(dev); + if (IS_ERR(fpc1020->fingerprint_pinctrl)) { + if (PTR_ERR(fpc1020->fingerprint_pinctrl) == -EPROBE_DEFER) { + dev_info(dev, "pinctrl not ready\n"); + rc = -EPROBE_DEFER; + goto exit; + } + dev_err(dev, "Target does not use pinctrl\n"); + fpc1020->fingerprint_pinctrl = NULL; + rc = -EINVAL; + goto exit; + } + + for (i = 0; i < ARRAY_SIZE(fpc1020->pinctrl_state); i++) { + const char *n = pctl_names[i]; + struct pinctrl_state *state = + pinctrl_lookup_state(fpc1020->fingerprint_pinctrl, n); + if (IS_ERR(state)) { + dev_err(dev, "cannot find '%s'\n", n); + rc = -EINVAL; + goto exit; + } + dev_info(dev, "found pin control %s\n", n); + fpc1020->pinctrl_state[i] = state; + } + + rc = select_pin_ctl(fpc1020, "fpc1020_reset_reset"); + if (rc) + goto exit; + rc = select_pin_ctl(fpc1020, "fpc1020_irq_active"); + if (rc) + goto exit; + irqf = IRQF_TRIGGER_RISING | IRQF_ONESHOT; + if (1) { + dev_err(dev, "enable-wakeup request irq %d\n", fpc1020->compatible_enabled); + irqf |= IRQF_NO_SUSPEND; + device_init_wakeup(dev, 1); + rc = devm_request_threaded_irq(dev, gpio_to_irq(fpc1020->irq_gpio), + NULL, fpc1020_irq_handler, irqf, + dev_name(dev), fpc1020); + if (rc) { + dev_err(dev, "could not request irq %d\n", + gpio_to_irq(fpc1020->irq_gpio)); + goto exit; + } + dev_err(dev, "requested irq %d\n", gpio_to_irq(fpc1020->irq_gpio)); + } + + /* Request that the interrupt should be wakeable */ + enable_irq_wake(gpio_to_irq(fpc1020->irq_gpio)); + fpc1020->compatible_enabled = 1; + if (of_property_read_bool(dev->of_node, "fpc,enable-on-boot")) { + dev_info(dev, "Enabling hardware\n"); + (void)device_prepare(fpc1020, true); + #ifdef LINUX_CONTROL_SPI_CLK + (void)set_clks(fpc1020, false); + #endif + } + } else if (!strncmp(buf, "disable", strlen("disable")) && fpc1020->compatible_enabled != 0) { + if (gpio_is_valid(fpc1020->irq_gpio)) { + devm_gpio_free(dev, fpc1020->irq_gpio); + pr_info("remove irq_gpio success\n"); + } + if (gpio_is_valid(fpc1020->rst_gpio)) { + devm_gpio_free(dev, fpc1020->rst_gpio); + pr_info("remove rst_gpio success\n"); + } + devm_free_irq(dev, gpio_to_irq(fpc1020->irq_gpio), fpc1020); + fpc1020->compatible_enabled = 0; + } else + goto exit; + hw_reset(fpc1020); + return count; +exit: + return -EINVAL; +} +static DEVICE_ATTR(compatible_all, S_IWUSR, NULL, compatible_all_set); +static struct attribute *attributes[] = { + &dev_attr_pinctl_set.attr, + &dev_attr_spi_prepare.attr, + &dev_attr_hw_reset.attr, + &dev_attr_compatible_all.attr, +#ifdef LINUX_CONTROL_SPI_CLK + &dev_attr_clk_enable.attr, +#endif + &dev_attr_irq.attr, + &dev_attr_fingerdown_wait.attr, + NULL +}; + +static const struct attribute_group attribute_group = { + .attrs = attributes, +}; + +static void notification_work(struct work_struct *work) +{ + mdss_prim_panel_fb_unblank(FP_UNLOCK_REJECTION_TIMEOUT); + pr_debug("unblank\n"); +} + +static irqreturn_t fpc1020_irq_handler(int irq, void *handle) +{ + struct fpc1020_data *fpc1020 = handle; + dev_dbg(fpc1020->dev, "%s\n", __func__); + + /* Make sure 'wakeup_enabled' is updated before using it + ** since this is interrupt context (other thread...) */ + smp_rmb(); + + if (fpc1020->wakeup_enabled) { + wake_lock_timeout(&fpc1020->ttw_wl, + msecs_to_jiffies(FPC_TTW_HOLD_TIME)); + } + + sysfs_notify(&fpc1020->dev->kobj, NULL, dev_attr_irq.attr.name); + + if (fpc1020->wait_finger_down && fpc1020->fb_black) { + pr_debug("%s enter\n", __func__); + fpc1020->wait_finger_down = false; + schedule_work(&fpc1020->work); + } + return IRQ_HANDLED; +} + +static int fpc1020_request_named_gpio(struct fpc1020_data *fpc1020, + const char *label, int *gpio) +{ + struct device *dev = fpc1020->dev; + struct device_node *np = dev->of_node; + int rc = of_get_named_gpio(np, label, 0); + if (rc < 0) { + dev_err(dev, "failed to get '%s'\n", label); + return rc; + } + *gpio = rc; + rc = devm_gpio_request(dev, *gpio, label); + if (rc) { + dev_err(dev, "failed to request gpio %d\n", *gpio); + return rc; + } + dev_dbg(dev, "%s %d\n", label, *gpio); + return 0; +} + +static int fpc_fb_notif_callback(struct notifier_block *nb, + unsigned long val, void *data) +{ + struct fpc1020_data *fpc1020 = container_of(nb, struct fpc1020_data, + fb_notifier); + struct fb_event *evdata = data; + unsigned int blank; + + if (!fpc1020) + return 0; + + if (val != FB_EVENT_BLANK) + return 0; + + pr_debug("[info] %s value = %d\n", __func__, (int)val); + + if (evdata && evdata->data && val == FB_EVENT_BLANK) { + blank = *(int *)(evdata->data); + switch (blank) { + case FB_BLANK_POWERDOWN: + fpc1020->fb_black = true; + break; + case FB_BLANK_UNBLANK: + fpc1020->fb_black = false; + break; + default: + pr_debug("%s defalut\n", __func__); + break; + } + } + return NOTIFY_OK; +} + + +static struct notifier_block fpc_notif_block = { + .notifier_call = fpc_fb_notif_callback, +}; + + +void parse_cmldine_for_fingerprint(struct device *dev) +{ + char *boadrid_start; + boadrid_start = strstr(saved_command_line, "board_id="); + if (boadrid_start != NULL) { + strncpy(boardid_info_fingerprint, boadrid_start+sizeof("board_id=")-1, 12); + dev_info(dev, "%s: is ok %s \n", __func__, boardid_info_fingerprint); + } else { + pr_debug("boarid not define!\n"); + } +} + +static int fpc1020_probe(struct platform_device *pdev) +{ + struct device *dev = &pdev->dev; + int rc = 0; + + struct device_node *np = dev->of_node; + + struct fpc1020_data *fpc1020 = devm_kzalloc(dev, sizeof(*fpc1020), + GFP_KERNEL); + if (!fpc1020) { + dev_err(dev, + "failed to allocate memory for struct fpc1020_data\n"); + rc = -ENOMEM; + goto exit; + } + + parse_cmldine_for_fingerprint(dev); + if (strcmp(boardid_info_fingerprint, "S88537DC1:bo") == 0) { + devm_kfree(dev, fpc1020); + dev_info(dev, "%s: exit fpc probe\n", __func__); + return -EPERM; + } + + fpc1020->dev = dev; + dev_set_drvdata(dev, fpc1020); + + if (!np) { + dev_err(dev, "no of node found\n"); + rc = -EINVAL; + goto exit; + } + +#ifdef LINUX_CONTROL_SPI_CLK + if (of_property_read_u32(dev->of_node, "fpc,spi-max-frequency", &fpc1020->max_speed_hz)) { + fpc1020->max_speed_hz = 4800000; + dev_err(dev, "%s: Failed to get spi-max-frequency\n", __func__); + } + + fpc1020->iface_clk = clk_get(dev, "iface_clk"); + if (IS_ERR(fpc1020->iface_clk)) { + dev_err(dev, "%s: Failed to get iface_clk\n", __func__); + rc = -EINVAL; + goto exit; + } + + fpc1020->core_clk = clk_get(dev, "core_clk"); + if (IS_ERR(fpc1020->core_clk)) { + dev_err(dev, "%s: Failed to get core_clk\n", __func__); + rc = -EINVAL; + goto exit; + } +#endif + fpc1020->wakeup_enabled = true; +#ifdef LINUX_CONTROL_SPI_CLK + fpc1020->clocks_enabled = false; + fpc1020->clocks_suspended = false; +#endif + + mutex_init(&fpc1020->lock); + wake_lock_init(&fpc1020->ttw_wl, WAKE_LOCK_SUSPEND, "fpc_ttw_wl"); + + rc = sysfs_create_group(&dev->kobj, &attribute_group); + if (rc) { + dev_err(dev, "could not create sysfs\n"); + goto exit; + } + + dev_info(dev, "%s: ok\n", __func__); + fpc1020->fb_black = false; + fpc1020->wait_finger_down = false; + INIT_WORK(&fpc1020->work, notification_work); + fpc1020->fb_notifier = fpc_notif_block; + fb_register_client(&fpc1020->fb_notifier); +exit: + return rc; +} + +static int fpc1020_remove(struct platform_device *pdev) +{ + struct fpc1020_data *fpc1020 = dev_get_drvdata(&pdev->dev); + + fb_unregister_client(&fpc1020->fb_notifier); + sysfs_remove_group(&pdev->dev.kobj, &attribute_group); + mutex_destroy(&fpc1020->lock); + wake_lock_destroy(&fpc1020->ttw_wl); + dev_info(&pdev->dev, "%s\n", __func__); + return 0; +} + +#ifdef LINUX_CONTROL_SPI_CLK +static int fpc1020_suspend(struct device *dev) +{ + struct fpc1020_data *fpc1020 = dev_get_drvdata(dev); + + fpc1020->clocks_suspended = fpc1020->clocks_enabled; + set_clks(fpc1020, false); + return 0; +} + +static int fpc1020_resume(struct device *dev) +{ + struct fpc1020_data *fpc1020 = dev_get_drvdata(dev); + + if (fpc1020->clocks_suspended) + set_clks(fpc1020, true); + + return 0; +} + +static const struct dev_pm_ops fpc1020_pm_ops = { + .suspend = fpc1020_suspend, + .resume = fpc1020_resume, +}; +#endif + +static struct of_device_id fpc1020_of_match[] = { + { .compatible = "soc:fpc1020", }, + {} +}; +MODULE_DEVICE_TABLE(of, fpc1020_of_match); + +static struct platform_driver fpc1020_driver = { + .driver = { + .name = "fpc1020", + .owner = THIS_MODULE, + .of_match_table = fpc1020_of_match, +#ifdef LINUX_CONTROL_SPI_CLK + .pm = &fpc1020_pm_ops, +#endif + }, + .probe = fpc1020_probe, + .remove = fpc1020_remove, +}; + +static int __init fpc1020_init(void) +{ + int rc = platform_driver_register(&fpc1020_driver); + if (!rc) + pr_info("%s OK\n", __func__); + else + pr_err("%s %d\n", __func__, rc); + return rc; +} + +static void __exit fpc1020_exit(void) +{ + pr_info("%s\n", __func__); + platform_driver_unregister(&fpc1020_driver); +} + +module_init(fpc1020_init); +module_exit(fpc1020_exit); + +MODULE_LICENSE("GPL v2"); +MODULE_AUTHOR("Aleksej Makarov"); +MODULE_AUTHOR("Henrik Tillman "); +MODULE_DESCRIPTION("FPC1020 Fingerprint sensor device driver."); diff --git a/drivers/fingerprint/goodix/Kconfig b/drivers/fingerprint/goodix/Kconfig new file mode 100755 index 0000000000000..3b2d98e01b097 --- /dev/null +++ b/drivers/fingerprint/goodix/Kconfig @@ -0,0 +1,5 @@ +config FINGERPRINT_GOODIX_GF3208 + tristate "Goodix GF3208 fingerprint drvier support" + depends on FINGERPRINT + help + Say Y here to enable goodix fingerprint driver support! diff --git a/drivers/fingerprint/goodix/Makefile b/drivers/fingerprint/goodix/Makefile new file mode 100755 index 0000000000000..54c40263f5623 --- /dev/null +++ b/drivers/fingerprint/goodix/Makefile @@ -0,0 +1 @@ +obj-$(CONFIG_FINGERPRINT_GOODIX_GF3208) += gf_spi.o platform.o netlink.o \ No newline at end of file diff --git a/drivers/fingerprint/goodix/gf_spi.c b/drivers/fingerprint/goodix/gf_spi.c new file mode 100755 index 0000000000000..7243cb2acfdb7 --- /dev/null +++ b/drivers/fingerprint/goodix/gf_spi.c @@ -0,0 +1,925 @@ + /*Simple synchronous userspace interface to SPI devices + * + * Copyright (C) 2006 SWAPP + * Andrea Paterniani + * Copyright (C) 2007 David Brownell (simplification, cleanup) + * Copyright (C) 2018 XiaoMi, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "gf_spi.h" + +#if defined(USE_SPI_BUS) +#include +#include +#elif defined(USE_PLATFORM_BUS) +#include +#endif + +#define WAKELOCK_HOLD_TIME 2000 /* in ms */ +#define FP_UNLOCK_REJECTION_TIMEOUT (WAKELOCK_HOLD_TIME - 500) + +#define GF_SPIDEV_NAME "goodix,fingerprint" +/*device name after register in charater*/ +#define GF_DEV_NAME "goodix_fp" +#define GF_INPUT_NAME "gf3208" /*"goodix_fp" */ + +#define CHRD_DRIVER_NAME "goodix_fp_spi" +#define CLASS_NAME "goodix_fp" +#define SPIDEV_MAJOR 225 /* assigned */ +#define N_SPI_MINORS 32 /* ... up to 256 */ + + +struct gf_key_map key_map[] = { + { "POWER", KEY_POWER }, + { "HOME" , KEY_HOME }, + { "MENU" , KEY_MENU }, + { "BACK" , KEY_BACK }, + { "UP" , KEY_UP }, + { "DOWN" , KEY_DOWN }, + { "LEFT" , KEY_LEFT }, + { "RIGHT", KEY_RIGHT }, + { "CAMERA", KEY_CAMERA }, + { "ENTER", KEY_SELECT}, + { "FORCE", KEY_F9 }, + { "CLICK", KEY_F19 }, +}; + +/**************************debug******************************/ +#define GF_DEBUG +/*#undef GF_DEBUG*/ + +#ifdef GF_DEBUG +#define gf_dbg(fmt, args...) do { \ + pr_warn("gf:" fmt, ##args);\ + } while (0) +#define FUNC_ENTRY() pr_warn("gf:%s, entry\n", __func__) +#define FUNC_EXIT() pr_warn("gf:%s, exit\n", __func__) +#else +#define gf_dbg(fmt, args...) +#define FUNC_ENTRY() +#define FUNC_EXIT() +#endif + +/*Global variables*/ +/*static MODE g_mode = GF_IMAGE_MODE;*/ +static DECLARE_BITMAP(minors, N_SPI_MINORS); +static LIST_HEAD(device_list); +static DEFINE_MUTEX(device_list_lock); +static struct gf_dev gf; +static struct class *gf_class; +static int driver_init_partial(struct gf_dev *gf_dev); + +static void gf_enable_irq(struct gf_dev *gf_dev) +{ + if (gf_dev->irq_enabled) { + pr_warn("IRQ has been enabled.\n"); + } else { + enable_irq(gf_dev->irq); + gf_dev->irq_enabled = 1; + } +} + +static void gf_disable_irq(struct gf_dev *gf_dev) +{ + if (gf_dev->irq_enabled) { + gf_dev->irq_enabled = 0; + disable_irq(gf_dev->irq); + } else { + pr_warn("IRQ has been disabled.\n"); + } +} + +#ifdef AP_CONTROL_CLK +static long spi_clk_max_rate(struct clk *clk, unsigned long rate) +{ + long lowest_available, nearest_low, step_size, cur; + long step_direction = -1; + long guess = rate; + int max_steps = 10; + + cur = clk_round_rate(clk, rate); + if (cur == rate) + return rate; + + /* if we got here then: cur > rate */ + lowest_available = clk_round_rate(clk, 0); + if (lowest_available > rate) + return -EINVAL; + + step_size = (rate - lowest_available) >> 1; + nearest_low = lowest_available; + + while (max_steps-- && step_size) { + guess += step_size * step_direction; + cur = clk_round_rate(clk, guess); + + if ((cur < rate) && (cur > nearest_low)) + nearest_low = cur; + /* + * if we stepped too far, then start stepping in the other + * direction with half the step size + */ + if (((cur > rate) && (step_direction > 0)) + || ((cur < rate) && (step_direction < 0))) { + step_direction = -step_direction; + step_size >>= 1; + } + } + return nearest_low; +} + +static void spi_clock_set(struct gf_dev *gf_dev, int speed) +{ + long rate; + int rc; + + rate = spi_clk_max_rate(gf_dev->core_clk, speed); + if (rate < 0) { + pr_info("%s: no match found for requested clock frequency:%d", + __func__, speed); + return; + } + + rc = clk_set_rate(gf_dev->core_clk, rate); +} + +static int gfspi_ioctl_clk_init(struct gf_dev *data) +{ + pr_debug("%s: enter\n", __func__); + + data->clk_enabled = 0; + data->core_clk = clk_get(&data->spi->dev, "core_clk"); + if (IS_ERR_OR_NULL(data->core_clk)) { + pr_err("%s: fail to get core_clk\n", __func__); + return -EPERM; + } + data->iface_clk = clk_get(&data->spi->dev, "iface_clk"); + if (IS_ERR_OR_NULL(data->iface_clk)) { + pr_err("%s: fail to get iface_clk\n", __func__); + clk_put(data->core_clk); + data->core_clk = NULL; + return -ENOENT; + } + return 0; +} + +static int gfspi_ioctl_clk_enable(struct gf_dev *data) +{ + int err; + + pr_debug("%s: enter\n", __func__); + + if (data->clk_enabled) + return 0; + + err = clk_prepare_enable(data->core_clk); + if (err) { + pr_err("%s: fail to enable core_clk\n", __func__); + return -EPERM; + } + + err = clk_prepare_enable(data->iface_clk); + if (err) { + pr_err("%s: fail to enable iface_clk\n", __func__); + clk_disable_unprepare(data->core_clk); + return -ENOENT; + } + + data->clk_enabled = 1; + + return 0; +} + +static int gfspi_ioctl_clk_disable(struct gf_dev *data) +{ + pr_debug("%s: enter\n", __func__); + + if (!data->clk_enabled) + return 0; + + clk_disable_unprepare(data->core_clk); + clk_disable_unprepare(data->iface_clk); + data->clk_enabled = 0; + + return 0; +} + +static int gfspi_ioctl_clk_uninit(struct gf_dev *data) +{ + pr_debug("%s: enter\n", __func__); + + if (data->clk_enabled) + gfspi_ioctl_clk_disable(data); + + if (!IS_ERR_OR_NULL(data->core_clk)) { + clk_put(data->core_clk); + data->core_clk = NULL; + } + + if (!IS_ERR_OR_NULL(data->iface_clk)) { + clk_put(data->iface_clk); + data->iface_clk = NULL; + } + + return 0; +} +#endif + +static long gf_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) +{ + struct gf_dev *gf_dev = &gf; + struct gf_key gf_key = { 0 }; + int retval = 0; + int i; +#ifdef AP_CONTROL_CLK + unsigned int speed = 0; +#endif + FUNC_ENTRY(); + if (_IOC_TYPE(cmd) != GF_IOC_MAGIC) + return -ENODEV; + + if (_IOC_DIR(cmd) & _IOC_READ) + retval = + !access_ok(VERIFY_WRITE, (void __user *)arg, + _IOC_SIZE(cmd)); + if ((retval == 0) && (_IOC_DIR(cmd) & _IOC_WRITE)) + retval = + !access_ok(VERIFY_READ, (void __user *)arg, _IOC_SIZE(cmd)); + if (retval) + return -EFAULT; + + if (gf_dev->device_available == 0) { + if ((cmd == GF_IOC_POWER_ON) || (cmd == GF_IOC_POWER_OFF) || (cmd == GF_IOC_ENABLE_GPIO)) { + pr_info("power cmd\n"); + } else { + pr_info("Sensor is power off currently. \n"); + return -ENODEV; + } + } + + switch (cmd) { + case GF_IOC_ENABLE_GPIO: + driver_init_partial(gf_dev); + break; + case GF_IOC_RELEASE_GPIO: + gf_cleanup(gf_dev); + break; + case GF_IOC_DISABLE_IRQ: + gf_disable_irq(gf_dev); + break; + case GF_IOC_ENABLE_IRQ: + gf_enable_irq(gf_dev); + break; + case GF_IOC_SETSPEED: +#ifdef AP_CONTROL_CLK + retval = __get_user(speed, (u32 __user *) arg); + if (retval == 0) { + if (speed > 12 * 1000 * 1000) { + pr_warn("Set speed:%d is larger than 12Mbps.\n", speed); + } else { + spi_clock_set(gf_dev, speed); + } + } else { + pr_warn("Failed to get speed from user. retval = %d\n", retval); + } +#else + pr_info("This kernel doesn't support control clk in AP\n"); +#endif + break; + case GF_IOC_RESET: + gf_hw_reset(gf_dev, 3); + break; + case GF_IOC_COOLBOOT: + gf_power_off(gf_dev); + mdelay(5); + gf_power_on(gf_dev); + break; + case GF_IOC_SENDKEY: + if (copy_from_user + (&gf_key, (struct gf_key *)arg, sizeof(struct gf_key))) { + pr_warn("Failed to copy data from user space.\n"); + retval = -EFAULT; + break; + } + + for (i = 0; i < ARRAY_SIZE(key_map); i++) { + if (key_map[i].val == gf_key.key) { + if (KEY_CAMERA == gf_key.key) { + input_report_key(gf_dev->input, KEY_SELECT, gf_key.value); + input_sync(gf_dev->input); + } else{ + input_report_key(gf_dev->input, gf_key.key, gf_key.value); + input_sync(gf_dev->input); + + } + break; + } + } + if (i == ARRAY_SIZE(key_map)) { + pr_warn("key %d not support yet \n", gf_key.key); + retval = -EFAULT; + } + + break; + case GF_IOC_CLK_READY: +#ifdef AP_CONTROL_CLK + gfspi_ioctl_clk_enable(gf_dev); +#else + pr_info("Doesn't support control clock.\n"); +#endif + break; + case GF_IOC_CLK_UNREADY: +#ifdef AP_CONTROL_CLK + gfspi_ioctl_clk_disable(gf_dev); +#else + pr_info("Doesn't support control clock.\n"); +#endif + break; + case GF_IOC_PM_FBCABCK: + __put_user(gf_dev->fb_black, (u8 __user *) arg); + break; + case GF_IOC_POWER_ON: + if (gf_dev->device_available == 1) + pr_info("Sensor has already powered-on.\n"); + else + gf_power_on(gf_dev); + gf_dev->device_available = 1; + break; + case GF_IOC_POWER_OFF: + if (gf_dev->device_available == 0) + pr_info("Sensor has already powered-off.\n"); + else + gf_power_off(gf_dev); + gf_dev->device_available = 0; + break; + default: + gf_dbg("Unsupport cmd:0x%x\n", cmd); + break; + } + + FUNC_EXIT(); + return retval; +} + +#ifdef CONFIG_COMPAT +static long +gf_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) +{ + return gf_ioctl(filp, cmd, (unsigned long)compat_ptr(arg)); +} +#endif /*CONFIG_COMPAT*/ + +static void notification_work(struct work_struct *work) +{ + mdss_prim_panel_fb_unblank(FP_UNLOCK_REJECTION_TIMEOUT); + pr_debug("unblank\n"); +} + +static irqreturn_t gf_irq(int irq, void *handle) +{ + +#if defined(GF_NETLINK_ENABLE) + + struct gf_dev *gf_dev = &gf; + char temp = GF_NET_EVENT_IRQ; + gf_dbg("enter irq %s\n", __func__); + + wake_lock_timeout(&gf_dev->ttw_wl, msecs_to_jiffies(WAKELOCK_HOLD_TIME)); + + sendnlmsg(&temp); + if ((gf_dev->wait_finger_down == true) && (gf_dev->device_available == 1) && (gf_dev->fb_black == 1)) { + gf_dev->wait_finger_down = false; + schedule_work(&gf_dev->work); + } +#elif defined (GF_FASYNC) + + struct gf_dev *gf_dev = &gf; + if (gf_dev->async) + kill_fasync(&gf_dev->async, SIGIO, POLL_IN); +#endif + + return IRQ_HANDLED; + +} + +static int driver_init_partial(struct gf_dev *gf_dev) +{ + int ret = 0; + FUNC_ENTRY(); + pr_warn("--------driver_init_partial start.--------\n"); + + gf_dev->device_available = 1; + + if (gf_parse_dts(gf_dev)) + goto error; + + gf_dev->irq = gf_irq_num(gf_dev); + ret = devm_request_threaded_irq(&gf_dev->spi->dev, + gf_dev->irq, + NULL, + gf_irq, + IRQF_TRIGGER_RISING | IRQF_ONESHOT, + "gf", gf_dev); + if (ret) { + pr_err("Could not request irq %d\n", gpio_to_irq(gf_dev->irq_gpio)); + goto error; + } + if (!ret) { + enable_irq_wake(gf_dev->irq); + gf_enable_irq(gf_dev); + gf_disable_irq(gf_dev); + } + + gf_hw_reset(gf_dev, 360); + + FUNC_EXIT(); + return 0; + +error: + + gf_cleanup(gf_dev); + + gf_dev->device_available = 0; + + return -EPERM; + + +} +static int gf_open(struct inode *inode, struct file *filp) +{ + struct gf_dev *gf_dev; + int status = -ENXIO; + + FUNC_ENTRY(); + mutex_lock(&device_list_lock); + + list_for_each_entry(gf_dev, &device_list, device_entry) { + if (gf_dev->devt == inode->i_rdev) { + gf_dbg("Found\n"); + status = 0; + break; + } + } + + if (status == 0) { + if (status == 0) { + gf_dev->users++; + filp->private_data = gf_dev; + nonseekable_open(inode, filp); + gf_dbg("Succeed to open device. irq = %d\n", + gf_dev->irq); + + gf_dev->device_available = 1; + } + } else { + gf_dbg("No device for minor %d\n", iminor(inode)); + } + mutex_unlock(&device_list_lock); + FUNC_EXIT(); + return status; +} + +#ifdef GF_FASYNC +static int gf_fasync(int fd, struct file *filp, int mode) +{ + struct gf_dev *gf_dev = filp->private_data; + int ret; + + FUNC_ENTRY(); + ret = fasync_helper(fd, filp, mode, &gf_dev->async); + FUNC_EXIT(); + gf_dbg("ret = %d\n", ret); + return ret; +} +#endif + +static int gf_release(struct inode *inode, struct file *filp) +{ + struct gf_dev *gf_dev; + int status = 0; + + FUNC_ENTRY(); + mutex_lock(&device_list_lock); + gf_dev = filp->private_data; + filp->private_data = NULL; + + gf_dev->users--; + if (!gf_dev->users) { + + gf_dbg("disble_irq. irq = %d\n", gf_dev->irq); + gf_disable_irq(gf_dev); + + + + + devm_free_irq(&gf_dev->spi->dev, gf_dev->irq, gf_dev); + + /*power off the sensor*/ + gf_dev->device_available = 0; + gf_power_off(gf_dev); + } + mutex_unlock(&device_list_lock); + FUNC_EXIT(); + + return status; +} + +static const struct file_operations gf_fops = { + .owner = THIS_MODULE, + /* REVISIT switch to aio primitives, so that userspace + * gets more complete API coverage. It'll simplify things + * too, except for the locking. + */ + .unlocked_ioctl = gf_ioctl, +#ifdef CONFIG_COMPAT + .compat_ioctl = gf_compat_ioctl, +#endif /*CONFIG_COMPAT*/ + .open = gf_open, + .release = gf_release, +#ifdef GF_FASYNC + .fasync = gf_fasync, +#endif +}; + +static int goodix_fb_state_chg_callback(struct notifier_block *nb, + unsigned long val, void *data) +{ + struct gf_dev *gf_dev; + struct fb_event *evdata = data; + unsigned int blank; + +#if defined(GF_NETLINK_ENABLE) + char temp = 0; +#endif + + if (val != FB_EVENT_BLANK) + return 0; + pr_info("[info] %s go to the goodix_fb_state_chg_callback value = %d\n", + __func__, (int)val); + gf_dev = container_of(nb, struct gf_dev, notifier); + if (evdata && evdata->data && val == FB_EVENT_BLANK && gf_dev) { + blank = *(int *)(evdata->data); + switch (blank) { + case FB_BLANK_POWERDOWN: + if (gf_dev->device_available == 1) { + gf_dev->fb_black = 1; + gf_dev->wait_finger_down = true; +#if defined(GF_NETLINK_ENABLE) + temp = GF_NET_EVENT_FB_BLACK; + sendnlmsg(&temp); +#elif defined (GF_FASYNC) + if (gf_dev->async) { + kill_fasync(&gf_dev->async, SIGIO, + POLL_IN); + } +#endif + /*device unavailable */ + + } + break; + case FB_BLANK_UNBLANK: + if (gf_dev->device_available == 1) { + gf_dev->fb_black = 0; +#if defined(GF_NETLINK_ENABLE) + temp = GF_NET_EVENT_FB_UNBLACK; + sendnlmsg(&temp); +#elif defined (GF_FASYNC) + if (gf_dev->async) { + kill_fasync(&gf_dev->async, SIGIO, + POLL_IN); + } +#endif + /*device available */ + + } + break; + default: + pr_info("%s defalut\n", __func__); + break; + } + } + return NOTIFY_OK; +} + +static struct notifier_block goodix_noti_block = { + .notifier_call = goodix_fb_state_chg_callback, +}; + +static void gf_reg_key_kernel(struct gf_dev *gf_dev) +{ + int i; + + set_bit(EV_KEY, gf_dev->input->evbit); + for (i = 0; i < ARRAY_SIZE(key_map); i++) { + set_bit(key_map[i].val, gf_dev->input->keybit); + } + + gf_dev->input->name = GF_INPUT_NAME; + if (input_register_device(gf_dev->input)) + pr_warn("Failed to register GF as input device.\n"); +} + + +#if defined(USE_SPI_BUS) +static int gf_probe(struct spi_device *spi) +#elif defined(USE_PLATFORM_BUS) +static int gf_probe(struct platform_device *pdev) +#endif +{ + struct gf_dev *gf_dev = &gf; + int status = -EINVAL; + unsigned long minor; + + FUNC_ENTRY(); + + pr_warn("--------gf_probe start.--------\n"); + /* Initialize the driver data */ + INIT_LIST_HEAD(&gf_dev->device_entry); + +#if defined(USE_SPI_BUS) + gf_dev->spi = spi; +#elif defined(USE_PLATFORM_BUS) + gf_dev->spi = pdev; +#endif + + gf_dev->irq_gpio = -EINVAL; + gf_dev->reset_gpio = -EINVAL; + gf_dev->pwr_gpio = -EINVAL; + gf_dev->device_available = 0; + gf_dev->fb_black = 0; + gf_dev->irq_enabled = 0; + gf_dev->fingerprint_pinctrl = NULL; + gf_dev->wait_finger_down = false; + INIT_WORK(&gf_dev->work, notification_work); + + /* If we can allocate a minor number, hook up this device. + * Reusing minors is fine so long as udev or mdev is working. + */ + mutex_lock(&device_list_lock); + minor = find_first_zero_bit(minors, N_SPI_MINORS); + if (minor < N_SPI_MINORS) { + struct device *dev; + + gf_dev->devt = MKDEV(SPIDEV_MAJOR, minor); + dev = device_create(gf_class, &gf_dev->spi->dev, gf_dev->devt, + gf_dev, GF_DEV_NAME); + status = IS_ERR(dev) ? PTR_ERR(dev) : 0; + } else { + dev_dbg(&gf_dev->spi->dev, "no minor number available!\n"); + status = -ENODEV; + } + + if (status == 0) { + set_bit(minor, minors); + list_add(&gf_dev->device_entry, &device_list); + } else { + gf_dev->devt = 0; + } + mutex_unlock(&device_list_lock); + + if (status == 0) { + /*input device subsystem */ + gf_dev->input = input_allocate_device(); + if (gf_dev->input == NULL) { + dev_dbg(&gf_dev->input->dev, + "Faile to allocate input device.\n"); + status = -ENOMEM; + goto error; + } +#ifdef AP_CONTROL_CLK + pr_info("Get the clk resource.\n"); + /* Enable spi clock */ + if (gfspi_ioctl_clk_init(gf_dev)) + goto gfspi_probe_clk_init_failed; + + + if (gfspi_ioctl_clk_enable(gf_dev)) + goto gfspi_probe_clk_enable_failed; + + spi_clock_set(gf_dev, 4.8*1000*1000); +#endif + + gf_dev->notifier = goodix_noti_block; + fb_register_client(&gf_dev->notifier); + gf_reg_key_kernel(gf_dev); + + wake_lock_init(&gf_dev->ttw_wl, WAKE_LOCK_SUSPEND, "goodix_ttw_wl"); + } + + pr_warn("--------gf_probe end---OK.--------\n"); + return status; + +error: + gf_cleanup(gf_dev); + gf_dev->device_available = 0; + if (gf_dev->devt != 0) { + pr_info("Err: status = %d\n", status); + mutex_lock(&device_list_lock); + list_del(&gf_dev->device_entry); + device_destroy(gf_class, gf_dev->devt); + clear_bit(MINOR(gf_dev->devt), minors); + mutex_unlock(&device_list_lock); + +#ifdef AP_CONTROL_CLK +gfspi_probe_clk_enable_failed: + gfspi_ioctl_clk_uninit(gf_dev); +gfspi_probe_clk_init_failed: +#endif + if (gf_dev->input != NULL) + input_unregister_device(gf_dev->input); + } + + FUNC_EXIT(); + return status; +} + +/*static int __devexit gf_remove(struct spi_device *spi)*/ +#if defined(USE_SPI_BUS) +static int gf_remove(struct spi_device *spi) +#elif defined(USE_PLATFORM_BUS) +static int gf_remove(struct platform_device *pdev) +#endif +{ + struct gf_dev *gf_dev = &gf; + FUNC_ENTRY(); + + /* make sure ops on existing fds can abort cleanly */ + if (gf_dev->irq) + free_irq(gf_dev->irq, gf_dev); + + if (gf_dev->input != NULL) + input_unregister_device(gf_dev->input); + input_free_device(gf_dev->input); + + /* prevent new opens */ + mutex_lock(&device_list_lock); + list_del(&gf_dev->device_entry); + device_destroy(gf_class, gf_dev->devt); + clear_bit(MINOR(gf_dev->devt), minors); + if (gf_dev->users == 0) + kfree(gf_dev); + + mutex_unlock(&device_list_lock); + + wake_lock_destroy(&gf_dev->ttw_wl); + + FUNC_EXIT(); + return 0; +} + +#if defined(USE_SPI_BUS) +static int gf_suspend(struct spi_device *spi, pm_message_t mesg) +#elif defined(USE_PLATFORM_BUS) +static int gf_suspend(struct platform_device *pdev, pm_message_t state) +#endif +{ + + gf_dbg("gf_suspend_test.\n"); + return 0; +} + +#if defined(USE_SPI_BUS) +static int gf_resume(struct spi_device *spi) +#elif defined(USE_PLATFORM_BUS) +static int gf_resume(struct platform_device *pdev) +#endif +{ + gf_dbg("gf_resume_test.\n"); + return 0; +} + +static struct of_device_id gx_match_table[] = { + {.compatible = GF_SPIDEV_NAME,}, + {}, +}; + +#if defined(USE_SPI_BUS) +static struct spi_driver gf_driver = { +#elif defined(USE_PLATFORM_BUS) +static struct platform_driver gf_driver = { +#endif + .driver = { + .name = GF_DEV_NAME, + .owner = THIS_MODULE, +#if defined(USE_SPI_BUS) + +#endif + .of_match_table = gx_match_table, + }, + .probe = gf_probe, + .remove = gf_remove, + .suspend = gf_suspend, + .resume = gf_resume, +}; + +static int __init gf_init(void) +{ + int status; + FUNC_ENTRY(); + + pr_warn("--------gf_init start.--------\n"); + /* Claim our 256 reserved device numbers. Then register a class + * that will key udev/mdev to add/remove /dev nodes. Last, register + * the driver which manages those device numbers. + */ + + BUILD_BUG_ON(N_SPI_MINORS > 256); + status = register_chrdev(SPIDEV_MAJOR, CHRD_DRIVER_NAME, &gf_fops); + if (status < 0) { + pr_warn("Failed to register char device!\n"); + FUNC_EXIT(); + return status; + } + gf_class = class_create(THIS_MODULE, CLASS_NAME); + if (IS_ERR(gf_class)) { + unregister_chrdev(SPIDEV_MAJOR, gf_driver.driver.name); + pr_warn("Failed to create class.\n"); + FUNC_EXIT(); + return PTR_ERR(gf_class); + } +#if defined(USE_PLATFORM_BUS) + status = platform_driver_register(&gf_driver); +#elif defined(USE_SPI_BUS) + status = spi_register_driver(&gf_driver); +#endif + if (status < 0) { + class_destroy(gf_class); + unregister_chrdev(SPIDEV_MAJOR, gf_driver.driver.name); + pr_warn("Failed to register SPI driver.\n"); + } + +#ifdef GF_NETLINK_ENABLE + netlink_init(); +#endif + pr_info(" status = 0x%x\n", status); + FUNC_EXIT(); + + pr_warn("--------gf_init end---OK.--------\n"); + return 0; +} + +module_init(gf_init); + +static void __exit gf_exit(void) +{ + FUNC_ENTRY(); +#ifdef GF_NETLINK_ENABLE + netlink_exit(); +#endif +#if defined(USE_PLATFORM_BUS) + platform_driver_unregister(&gf_driver); +#elif defined(USE_SPI_BUS) + spi_unregister_driver(&gf_driver); +#endif + class_destroy(gf_class); + unregister_chrdev(SPIDEV_MAJOR, gf_driver.driver.name); + FUNC_EXIT(); +} + +module_exit(gf_exit); + +MODULE_AUTHOR("Jiangtao Yi, "); +MODULE_DESCRIPTION("User mode SPI device interface"); +MODULE_LICENSE("GPL"); +MODULE_ALIAS("spi:gf-spi"); diff --git a/drivers/fingerprint/goodix/gf_spi.h b/drivers/fingerprint/goodix/gf_spi.h new file mode 100755 index 0000000000000..bcbe4d98740ee --- /dev/null +++ b/drivers/fingerprint/goodix/gf_spi.h @@ -0,0 +1,108 @@ +#ifndef __GF_SPI_H +#define __GF_SPI_H + +#include +#include +#include +/**********************************************************/ +enum FP_MODE{ + GF_IMAGE_MODE = 0, + GF_KEY_MODE, + GF_SLEEP_MODE, + GF_FF_MODE, + GF_DEBUG_MODE = 0x56 +}; + +struct gf_key { + unsigned int key; + int value; +}; + + +struct gf_key_map { + char *name; + unsigned short val; +}; + +#define GF_IOC_MAGIC 'G' +#define GF_IOC_DISABLE_IRQ _IO(GF_IOC_MAGIC, 0) +#define GF_IOC_ENABLE_IRQ _IO(GF_IOC_MAGIC, 1) +#define GF_IOC_SETSPEED _IOW(GF_IOC_MAGIC, 2, unsigned int) +#define GF_IOC_RESET _IO(GF_IOC_MAGIC, 3) +#define GF_IOC_COOLBOOT _IO(GF_IOC_MAGIC, 4) +#define GF_IOC_SENDKEY _IOW(GF_IOC_MAGIC, 5, struct gf_key) +#define GF_IOC_CLK_READY _IO(GF_IOC_MAGIC, 6) +#define GF_IOC_CLK_UNREADY _IO(GF_IOC_MAGIC, 7) +#define GF_IOC_PM_FBCABCK _IO(GF_IOC_MAGIC, 8) +#define GF_IOC_POWER_ON _IO(GF_IOC_MAGIC, 9) +#define GF_IOC_POWER_OFF _IO(GF_IOC_MAGIC, 10) +#define GF_IOC_ENABLE_GPIO _IO(GF_IOC_MAGIC, 11) +#define GF_IOC_RELEASE_GPIO _IO(GF_IOC_MAGIC, 12) + +#define GF_IOC_MAXNR 13 + + +#define USE_PLATFORM_BUS 1 + + +#define GF_NETLINK_ENABLE 1 +#define GF_NET_EVENT_IRQ 0 +#define GF_NET_EVENT_FB_BLACK 1 +#define GF_NET_EVENT_FB_UNBLACK 2 + + +static const char * const pctl_names[] = { + + "goodixfp_reset_reset", + "goodixfp_reset_active", + "goodixfp_irq_active", +}; + + +struct gf_dev { + dev_t devt; + struct list_head device_entry; +#if defined(USE_SPI_BUS) + struct spi_device *spi; +#elif defined(USE_PLATFORM_BUS) + struct platform_device *spi; +#endif + struct clk *core_clk; + struct clk *iface_clk; + + struct pinctrl *fingerprint_pinctrl; + struct pinctrl_state *pinctrl_state[ARRAY_SIZE(pctl_names)]; + + struct input_dev *input; + /* buffer is NULL unless this device is open (users > 0) */ + unsigned users; + signed irq_gpio; + signed reset_gpio; + signed pwr_gpio; + int irq; + int irq_enabled; + int clk_enabled; +#ifdef GF_FASYNC + struct fasync_struct *async; +#endif + struct notifier_block notifier; + char device_available; + char fb_black; + struct wake_lock ttw_wl; + char wait_finger_down; + struct work_struct work; +}; + +int gf_parse_dts(struct gf_dev *gf_dev); +void gf_cleanup(struct gf_dev *gf_dev); + +int gf_power_on(struct gf_dev *gf_dev); +int gf_power_off(struct gf_dev *gf_dev); + +int gf_hw_reset(struct gf_dev *gf_dev, unsigned int delay_ms); +int gf_irq_num(struct gf_dev *gf_dev); + +void sendnlmsg(char *message); +int netlink_init(void); +void netlink_exit(void); +#endif /*__GF_SPI_H*/ diff --git a/drivers/fingerprint/goodix/netlink.c b/drivers/fingerprint/goodix/netlink.c new file mode 100755 index 0000000000000..e53bb41d23f0f --- /dev/null +++ b/drivers/fingerprint/goodix/netlink.c @@ -0,0 +1,97 @@ +#include +#include +#include +#include +#include +#include +#include + +#define NETLINK_TEST 25 +#define MAX_MSGSIZE 4*1024 +int stringlength(char *s); +void sendnlmsg(char *message); +int pid; +int err; +struct sock *nl_sk = NULL; +int flag = 0; + + +struct gf_uk_channel{ + int channel_id; + int reserved; + char buf[3*1024]; + int len; +}; + + +void sendnlmsg(char *message) +{ + struct sk_buff *skb_1; + struct nlmsghdr *nlh; + int len = NLMSG_SPACE(MAX_MSGSIZE); + int slen = 0; + if (!message || !nl_sk) { + return ; + } + skb_1 = alloc_skb(len, GFP_KERNEL); + if (!skb_1) { + printk(KERN_ERR "my_net_link:alloc_skb_1 error\n"); + } + slen = strlen(message); + nlh = nlmsg_put(skb_1, 0, 0, 0, MAX_MSGSIZE, 0); + + NETLINK_CB(skb_1).portid = 0; + NETLINK_CB(skb_1).dst_group = 0; + + message[slen] = '\0'; + memcpy(NLMSG_DATA(nlh), message, slen+1); + + + netlink_unicast(nl_sk, skb_1, pid, MSG_DONTWAIT); + +} + + +void nl_data_ready(struct sk_buff *__skb) +{ + struct sk_buff *skb; + struct nlmsghdr *nlh; + char str[100]; + skb = skb_get (__skb); + if (skb->len >= NLMSG_SPACE(0)) { + nlh = nlmsg_hdr(skb); + + memcpy(str, NLMSG_DATA(nlh), sizeof(str)); + pid = nlh->nlmsg_pid; + kfree_skb(skb); + } + +} + + +int netlink_init(void) +{ + + struct netlink_kernel_cfg netlink_cfg; + netlink_cfg.groups = 0; + netlink_cfg.flags = 0; + netlink_cfg.input = nl_data_ready; + netlink_cfg.cb_mutex = NULL; + + nl_sk = netlink_kernel_create(&init_net, NETLINK_TEST, &netlink_cfg); + + if (!nl_sk) { + printk(KERN_ERR "my_net_link: create netlink socket error.\n"); + return 1; + } + return 0; +} + +void netlink_exit(void) +{ + if (nl_sk != NULL) { + sock_release(nl_sk->sk_socket); + } + + printk("my_net_link: self module exited\n"); +} diff --git a/drivers/fingerprint/goodix/platform.c b/drivers/fingerprint/goodix/platform.c new file mode 100755 index 0000000000000..131970b30cf27 --- /dev/null +++ b/drivers/fingerprint/goodix/platform.c @@ -0,0 +1,198 @@ +#include +#include +#include +#include +#include +#include +#include + +#include "gf_spi.h" + +#if defined(USE_SPI_BUS) +#include +#include +#elif defined(USE_PLATFORM_BUS) +#include +#endif + +#define gf_dbg(fmt, args...) do { \ + pr_warn("gf:" fmt, ##args);\ + } while (0) + + +static int gf3208_request_named_gpio(struct gf_dev *gf_dev, const char *label, int *gpio) +{ + struct device *dev = &gf_dev->spi->dev; + struct device_node *np = dev->of_node; + int rc = of_get_named_gpio(np, label, 0); + if (rc < 0) { + dev_err(dev, "failed to get '%s'\n", label); + return rc; + } + *gpio = rc; + rc = devm_gpio_request(dev, *gpio, label); + if (rc) { + dev_err(dev, "failed to request gpio %d\n", *gpio); + return rc; + } + dev_err(dev, "%s %d\n", label, *gpio); + return 0; +} + +static int select_pin_ctl(struct gf_dev *gf_dev, const char *name) +{ + size_t i; + int rc; + struct device *dev = &gf_dev->spi->dev; + + for (i = 0; i < ARRAY_SIZE(gf_dev->pinctrl_state); i++) { + const char *n = pctl_names[i]; + if (!strncmp(n, name, strlen(n))) { + rc = pinctrl_select_state(gf_dev->fingerprint_pinctrl, gf_dev->pinctrl_state[i]); + + if (rc) + dev_err(dev, "cannot select '%s'\n", name); + else + dev_err(dev, "Selected '%s'\n", name); + goto exit; + } + } + rc = -EINVAL; + dev_err(dev, "%s:'%s' not found\n", __func__, name); +exit: + return rc; +} + + +/*GPIO pins reference.*/ +int gf_parse_dts(struct gf_dev *gf_dev) +{ + int rc = 0; + int i = 0; + pr_warn("--------gf_parse_dts start.--------\n"); + + /*get reset resource*/ + rc = gf3208_request_named_gpio(gf_dev, "goodix, gpio_reset", &gf_dev->reset_gpio); + if (rc) { + + gf_dbg("Failed to request RESET GPIO. rc = %d\n", rc); + return -EPERM; + } + + /*get irq resourece*/ + rc = gf3208_request_named_gpio(gf_dev, "goodix, gpio_irq", &gf_dev->irq_gpio); + if (rc) { + gf_dbg("Failed to request IRQ GPIO. rc = %d\n", rc); + return -EPERM; + } + + gf_dev->fingerprint_pinctrl = devm_pinctrl_get(&gf_dev->spi->dev); + for (i = 0; i < ARRAY_SIZE(gf_dev->pinctrl_state); i++) { + const char *n = pctl_names[i]; + struct pinctrl_state *state = + pinctrl_lookup_state(gf_dev->fingerprint_pinctrl, n); + if (IS_ERR(state)) { + pr_err("cannot find '%s'\n", n); + rc = -EINVAL; + } + pr_info("found pin control %s\n", n); + gf_dev->pinctrl_state[i] = state; + } + + rc = select_pin_ctl(gf_dev, "goodixfp_reset_active"); + if (rc) + goto exit; + rc = select_pin_ctl(gf_dev, "goodixfp_irq_active"); + if (rc) + goto exit; + pr_warn("--------gf_parse_dts end---OK.--------\n"); + +exit: + return rc; +} + +void gf_cleanup(struct gf_dev *gf_dev) +{ + gf_dbg("[info] enter%s\n", __func__); + + if (gpio_is_valid(gf_dev->irq_gpio)) { + + devm_gpio_free(&gf_dev->spi->dev, gf_dev->irq_gpio); + gf_dbg("remove irq_gpio success\n"); + } + + if (gpio_is_valid(gf_dev->reset_gpio)) { + + devm_gpio_free(&gf_dev->spi->dev, gf_dev->reset_gpio); + gf_dbg("remove reset_gpio success\n"); + } + + if (gf_dev->fingerprint_pinctrl != NULL) { + devm_pinctrl_put(gf_dev->fingerprint_pinctrl); + gf_dev->fingerprint_pinctrl = NULL; + gf_dbg("gx fingerprint_pinctrl release success\n"); + } +} + +/*power management*/ +int gf_power_on(struct gf_dev *gf_dev) +{ + int rc = 0; + msleep(10); + pr_info("---- power on ok ----\n"); + + return rc; +} + +int gf_power_off(struct gf_dev *gf_dev) +{ + int rc = 0; + pr_info("---- power off ----\n"); + return rc; +} + +static int hw_reset(struct gf_dev *gf_dev) +{ + int irq_gpio; + struct device *dev = &gf_dev->spi->dev; + int rc = select_pin_ctl(gf_dev, "goodixfp_reset_reset"); + if (rc) + goto exit; + mdelay(3); + + rc = select_pin_ctl(gf_dev, "goodixfp_reset_active"); + if (rc) + goto exit; + + irq_gpio = gpio_get_value(gf_dev->irq_gpio); + dev_info(dev, "IRQ after reset %d\n", irq_gpio); +exit: + return rc; +} + + +/******************************************************************** + *CPU output low level in RST pin to reset GF. This is the MUST action for GF. + *Take care of this function. IO Pin driver strength / glitch and so on. + ********************************************************************/ +int gf_hw_reset(struct gf_dev *gf_dev, unsigned int delay_ms) +{ + if (gf_dev == NULL) { + pr_info("Input buff is NULL.\n"); + return -EPERM; + } + hw_reset(gf_dev); + mdelay(delay_ms); + return 0; +} + +int gf_irq_num(struct gf_dev *gf_dev) +{ + if (gf_dev == NULL) { + pr_info("Input buff is NULL.\n"); + return -EPERM; + } else { + return gpio_to_irq(gf_dev->irq_gpio); + } +} + diff --git a/drivers/fingerprintrosy/Kconfig b/drivers/fingerprintrosy/Kconfig new file mode 100755 index 0000000000000..8911f4ea55903 --- /dev/null +++ b/drivers/fingerprintrosy/Kconfig @@ -0,0 +1,8 @@ +config FINGERPRINT_ROSY + tristate "ROSY Fingerprint driver support" + help + Say Y here to enable goodix fingerprint driver support! + +source "drivers/fingerprintrosy/goodixrosy/Kconfig" +source "drivers/fingerprintrosy/fpcrosy/Kconfig" + diff --git a/drivers/fingerprintrosy/Makefile b/drivers/fingerprintrosy/Makefile new file mode 100755 index 0000000000000..572f9928d6a5f --- /dev/null +++ b/drivers/fingerprintrosy/Makefile @@ -0,0 +1,3 @@ +obj-$(CONFIG_FINGERPRINT_GOODIX_GF3208_ROSY) += goodixrosy/ +obj-$(CONFIG_FINGERPRINT_FPC1020_ROSY) += fpcrosy/ + diff --git a/drivers/fingerprintrosy/fpcrosy/Kconfig b/drivers/fingerprintrosy/fpcrosy/Kconfig new file mode 100755 index 0000000000000..71cd2a83e4a7d --- /dev/null +++ b/drivers/fingerprintrosy/fpcrosy/Kconfig @@ -0,0 +1,6 @@ +config FINGERPRINT_FPC1020_ROSY + tristate "FingerPrint Cards fingerprint drvier support" + depends on FINGERPRINT_ROSY + help + Say Y here to enable goodix fingerprint driver support! + diff --git a/drivers/fingerprintrosy/fpcrosy/Makefile b/drivers/fingerprintrosy/fpcrosy/Makefile new file mode 100755 index 0000000000000..57eaf267c406d --- /dev/null +++ b/drivers/fingerprintrosy/fpcrosy/Makefile @@ -0,0 +1 @@ +obj-$(CONFIG_FINGERPRINT_FPC1020_ROSY) += fpc1020_tee.o diff --git a/drivers/fingerprintrosy/fpcrosy/fpc1020_tee.c b/drivers/fingerprintrosy/fpcrosy/fpc1020_tee.c new file mode 100644 index 0000000000000..8539a6a794e66 --- /dev/null +++ b/drivers/fingerprintrosy/fpcrosy/fpc1020_tee.c @@ -0,0 +1,647 @@ +/* + * FPC1020 Fingerprint sensor device driver + * + * This driver will control the platform resources that the FPC fingerprint + * sensor needs to operate. The major things are probing the sensor to check + * that it is actually connected and let the Kernel know this and with that also + * enabling and disabling of regulators, controlling GPIOs such as sensor reset + * line, sensor IRQ line. + * + * The driver will expose most of its available functionality in sysfs which + * enables dynamic control of these features from eg. a user space process. + * + * The sensor's IRQ events will be pushed to Kernel's event handling system and + * are exposed in the drivers event node. + * + * This driver will NOT send any commands to the sensor it only controls the + * electrical parts. + * + * + * Copyright (c) 2015 Fingerprint Cards AB + * Copyright (C) 2018 XiaoMi, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License Version 2 + * as published by the Free Software Foundation. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#define FPC_TTW_HOLD_TIME 2000 +#define FP_UNLOCK_REJECTION_TIMEOUT (FPC_TTW_HOLD_TIME - 500) + + +#define RESET_LOW_SLEEP_MIN_US 5000 +#define RESET_LOW_SLEEP_MAX_US (RESET_LOW_SLEEP_MIN_US + 100) +#define RESET_HIGH_SLEEP1_MIN_US 100 +#define RESET_HIGH_SLEEP1_MAX_US (RESET_HIGH_SLEEP1_MIN_US + 100) +#define RESET_HIGH_SLEEP2_MIN_US 5000 +#define RESET_HIGH_SLEEP2_MAX_US (RESET_HIGH_SLEEP2_MIN_US + 100) +#define PWR_ON_SLEEP_MIN_US 100 +#define PWR_ON_SLEEP_MAX_US (PWR_ON_SLEEP_MIN_US + 900) + +#define NUM_PARAMS_REG_ENABLE_SET 2 + +static const char * const pctl_names[] = { + "fpc1020_reset_reset", + "fpc1020_reset_active", + "fpc1020_irq_active", +}; + +struct fpc1020_data { + struct device *dev; + + struct pinctrl *fingerprint_pinctrl; + struct pinctrl_state *pinctrl_state[ARRAY_SIZE(pctl_names)]; + + + struct wake_lock ttw_wl; + int irq_gpio; + int rst_gpio; + struct mutex lock; /* To set/get exported values in sysfs */ + bool prepared; + bool compatible_enabled; + atomic_t wakeup_enabled; /* Used both in ISR and non-ISR */ + + struct notifier_block fb_notifier; + bool fb_black; + bool wait_finger_down; + struct work_struct work; + +}; + +static irqreturn_t fpc1020_irq_handler(int irq, void *handle); +static int fpc1020_request_named_gpio(struct fpc1020_data *fpc1020, + const char *label, int *gpio); +static int hw_reset(struct fpc1020_data *fpc1020); + +/** + * sysfs node for controlling clocks. + * + * This is disabled in platform variant of this driver but kept for + * backwards compatibility. Only prints a debug print that it is + * disabled. + */ +static ssize_t clk_enable_set(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t count) +{ + dev_dbg(dev, + "clk_enable sysfs node not enabled in platform driver\n"); + + return count; +} +static DEVICE_ATTR(clk_enable, S_IWUSR, NULL, clk_enable_set); + +/** + * Will try to select the set of pins (GPIOS) defined in a pin control node of + * the device tree named @p name. + * + * The node can contain several eg. GPIOs that is controlled when selecting it. + * The node may activate or deactivate the pins it contains, the action is + * defined in the device tree node itself and not here. The states used + * internally is fetched at probe time. + * + * @see pctl_names + * @see fpc1020_probe + */ +static int select_pin_ctl(struct fpc1020_data *fpc1020, const char *name) +{ + size_t i; + int rc; + struct device *dev = fpc1020->dev; + + for (i = 0; i < ARRAY_SIZE(fpc1020->pinctrl_state); i++) { + const char *n = pctl_names[i]; + + if (!strncmp(n, name, strlen(n))) { + rc = pinctrl_select_state(fpc1020->fingerprint_pinctrl, + fpc1020->pinctrl_state[i]); + if (rc) + dev_err(dev, "cannot select '%s'\n", name); + else + dev_dbg(dev, "Selected '%s'\n", name); + goto exit; + } + } + + rc = -EINVAL; + dev_err(dev, "%s:'%s' not found\n", __func__, name); + +exit: + return rc; +} + +static ssize_t pinctl_set(struct device *dev, + struct device_attribute *attr, const char *buf, size_t count) +{ + struct fpc1020_data *fpc1020 = dev_get_drvdata(dev); + int rc; + + mutex_lock(&fpc1020->lock); + rc = select_pin_ctl(fpc1020, buf); + mutex_unlock(&fpc1020->lock); + + return rc ? rc : count; +} +static DEVICE_ATTR(pinctl_set, S_IWUSR, NULL, pinctl_set); + +static int hw_reset(struct fpc1020_data *fpc1020) +{ + int irq_gpio; + struct device *dev = fpc1020->dev; + int rc = select_pin_ctl(fpc1020, "fpc1020_reset_active"); + + if (rc) + goto exit; + usleep_range(RESET_HIGH_SLEEP1_MIN_US, RESET_HIGH_SLEEP1_MAX_US); + + rc = select_pin_ctl(fpc1020, "fpc1020_reset_reset"); + if (rc) + goto exit; + usleep_range(RESET_LOW_SLEEP_MIN_US, RESET_LOW_SLEEP_MAX_US); + + rc = select_pin_ctl(fpc1020, "fpc1020_reset_active"); + if (rc) + goto exit; + usleep_range(RESET_HIGH_SLEEP2_MIN_US, RESET_HIGH_SLEEP2_MAX_US); + + irq_gpio = gpio_get_value(fpc1020->irq_gpio); + dev_info(dev, "IRQ after reset %d\n", irq_gpio); + +exit: + return rc; +} + +static ssize_t hw_reset_set(struct device *dev, + struct device_attribute *attr, const char *buf, size_t count) +{ + int rc; + struct fpc1020_data *fpc1020 = dev_get_drvdata(dev); + + if (!strncmp(buf, "reset", strlen("reset"))) { + mutex_lock(&fpc1020->lock); + rc = hw_reset(fpc1020); + mutex_unlock(&fpc1020->lock); + } else { + return -EINVAL; + } + + return rc ? rc : count; +} +static DEVICE_ATTR(hw_reset, S_IWUSR, NULL, hw_reset_set); + +/** + * Will setup GPIOs, and regulators to correctly initialize the touch sensor to + * be ready for work. + * + * In the correct order according to the sensor spec this function will + * enable/disable regulators, and reset line, all to set the sensor in a + * correct power on or off state "electrical" wise. + * + * @see device_prepare_set + * @note This function will not send any commands to the sensor it will only + * control it "electrically". + */ +static int device_prepare(struct fpc1020_data *fpc1020, bool enable) +{ + int rc; + + mutex_lock(&fpc1020->lock); + if (enable && !fpc1020->prepared) { + fpc1020->prepared = true; + select_pin_ctl(fpc1020, "fpc1020_reset_reset"); + + usleep_range(PWR_ON_SLEEP_MIN_US, PWR_ON_SLEEP_MAX_US); + + /* As we can't control chip select here the other part of the + * sensor driver eg. the TEE driver needs to do a _SOFT_ reset + * on the sensor after power up to be sure that the sensor is + * in a good state after power up. Okeyed by ASIC. */ + + (void)select_pin_ctl(fpc1020, "fpc1020_reset_active"); + } else if (!enable && fpc1020->prepared) { + rc = 0; + (void)select_pin_ctl(fpc1020, "fpc1020_reset_reset"); + + usleep_range(PWR_ON_SLEEP_MIN_US, PWR_ON_SLEEP_MAX_US); + fpc1020->prepared = false; + } else { + rc = 0; + } + mutex_unlock(&fpc1020->lock); + + return rc; +} + +/** + * sysfs node to enable/disable (power up/power down) the touch sensor + * + * @see device_prepare + */ +static ssize_t device_prepare_set(struct device *dev, + struct device_attribute *attr, const char *buf, size_t count) +{ + int rc; + struct fpc1020_data *fpc1020 = dev_get_drvdata(dev); + + if (!strncmp(buf, "enable", strlen("enable"))) + rc = device_prepare(fpc1020, true); + else if (!strncmp(buf, "disable", strlen("disable"))) + rc = device_prepare(fpc1020, false); + else + return -EINVAL; + + return rc ? rc : count; +} +static DEVICE_ATTR(device_prepare, S_IWUSR, NULL, device_prepare_set); + +/** + * sysfs node for controlling whether the driver is allowed + * to wake up the platform on interrupt. + */ +static ssize_t wakeup_enable_set(struct device *dev, + struct device_attribute *attr, const char *buf, size_t count) +{ + struct fpc1020_data *fpc1020 = dev_get_drvdata(dev); + ssize_t ret = count; + + mutex_lock(&fpc1020->lock); + if (!strncmp(buf, "enable", strlen("enable"))) + atomic_set(&fpc1020->wakeup_enabled, 1); + else if (!strncmp(buf, "disable", strlen("disable"))) + atomic_set(&fpc1020->wakeup_enabled, 1); + else + ret = -EINVAL; + mutex_unlock(&fpc1020->lock); + + return ret; +} +static DEVICE_ATTR(wakeup_enable, S_IWUSR, NULL, wakeup_enable_set); + +/** + * sysf node to check the interrupt status of the sensor, the interrupt + * handler should perform sysf_notify to allow userland to poll the node. + */ +static ssize_t irq_get(struct device *dev, + struct device_attribute *attr, + char *buf) +{ + struct fpc1020_data *fpc1020 = dev_get_drvdata(dev); + int irq = gpio_get_value(fpc1020->irq_gpio); + + return scnprintf(buf, PAGE_SIZE, "%i\n", irq); +} + +/** + * writing to the irq node will just drop a printk message + * and return success, used for latency measurement. + */ +static ssize_t irq_ack(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t count) +{ + struct fpc1020_data *fpc1020 = dev_get_drvdata(dev); + + dev_dbg(fpc1020->dev, "%s\n", __func__); + + return count; +} +static DEVICE_ATTR(irq, S_IRUSR | S_IWUSR, irq_get, irq_ack); + +static ssize_t fingerdown_wait_set(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t count) +{ + struct fpc1020_data *fpc1020 = dev_get_drvdata(dev); + + dev_dbg(fpc1020->dev, "%s\n", __func__); + if (!strncmp(buf, "enable", strlen("enable"))) + fpc1020->wait_finger_down = true; + else if (!strncmp(buf, "disable", strlen("disable"))) + fpc1020->wait_finger_down = false; + else + return -EINVAL; + + return count; +} +static DEVICE_ATTR(fingerdown_wait, S_IWUSR, NULL, fingerdown_wait_set); + +static ssize_t compatible_all_set(struct device *dev, + struct device_attribute *attr, const char *buf, size_t count) +{ + int rc; + int i; + int irqf; + struct fpc1020_data *fpc1020 = dev_get_drvdata(dev); + dev_err(dev, "compatible all enter %d\n", fpc1020->compatible_enabled); + if (!strncmp(buf, "enable", strlen("enable")) && fpc1020->compatible_enabled != 1) { + rc = fpc1020_request_named_gpio(fpc1020, "fpc,gpio_irq", + &fpc1020->irq_gpio); + if (rc) + goto exit; + + rc = fpc1020_request_named_gpio(fpc1020, "fpc,gpio_rst", + &fpc1020->rst_gpio); + dev_err(dev, "fpc request reset result = %d\n", rc); + if (rc) + goto exit; + fpc1020->fingerprint_pinctrl = devm_pinctrl_get(dev); + if (IS_ERR(fpc1020->fingerprint_pinctrl)) { + if (PTR_ERR(fpc1020->fingerprint_pinctrl) == -EPROBE_DEFER) { + dev_info(dev, "pinctrl not ready\n"); + rc = -EPROBE_DEFER; + goto exit; + } + dev_err(dev, "Target does not use pinctrl\n"); + fpc1020->fingerprint_pinctrl = NULL; + rc = -EINVAL; + goto exit; + } + + for (i = 0; i < ARRAY_SIZE(fpc1020->pinctrl_state); i++) { + const char *n = pctl_names[i]; + struct pinctrl_state *state = + pinctrl_lookup_state(fpc1020->fingerprint_pinctrl, n); + if (IS_ERR(state)) { + dev_err(dev, "cannot find '%s'\n", n); + rc = -EINVAL; + goto exit; + } + dev_info(dev, "found pin control %s\n", n); + fpc1020->pinctrl_state[i] = state; + } + rc = select_pin_ctl(fpc1020, "fpc1020_reset_reset"); + if (rc) + goto exit; + rc = select_pin_ctl(fpc1020, "fpc1020_irq_active"); + if (rc) + goto exit; + irqf = IRQF_TRIGGER_RISING | IRQF_ONESHOT; + if (of_property_read_bool(dev->of_node, "fpc,enable-wakeup")) { + irqf |= IRQF_NO_SUSPEND; + device_init_wakeup(dev, 1); + } + rc = devm_request_threaded_irq(dev, gpio_to_irq(fpc1020->irq_gpio), + NULL, fpc1020_irq_handler, irqf, + dev_name(dev), fpc1020); + if (rc) { + dev_err(dev, "could not request irq %d\n", + gpio_to_irq(fpc1020->irq_gpio)); + goto exit; + } + dev_dbg(dev, "requested irq %d\n", gpio_to_irq(fpc1020->irq_gpio)); + + /* Request that the interrupt should be wakeable */ + enable_irq_wake(gpio_to_irq(fpc1020->irq_gpio)); + fpc1020->compatible_enabled = 1; + if (of_property_read_bool(dev->of_node, "fpc,enable-on-boot")) { + dev_info(dev, "Enabling hardware\n"); + (void)device_prepare(fpc1020, true); +#ifdef LINUX_CONTROL_SPI_CLK + (void)set_clks(fpc1020, false); +#endif + } + } else if (!strncmp(buf, "disable", strlen("disable")) && fpc1020->compatible_enabled != 0) { + if (gpio_is_valid(fpc1020->irq_gpio)) { + devm_gpio_free(dev, fpc1020->irq_gpio); + pr_info("remove irq_gpio success\n"); + } + if (gpio_is_valid(fpc1020->rst_gpio)) { + devm_gpio_free(dev, fpc1020->rst_gpio); + pr_info("remove rst_gpio success\n"); + } + devm_free_irq(dev, gpio_to_irq(fpc1020->irq_gpio), fpc1020); + fpc1020->compatible_enabled = 0; + } + hw_reset(fpc1020); + return count; +exit: + return -EINVAL; +} +static DEVICE_ATTR(compatible_all, S_IWUSR, NULL, compatible_all_set); +static struct attribute *attributes[] = { + &dev_attr_pinctl_set.attr, + &dev_attr_device_prepare.attr, + + &dev_attr_hw_reset.attr, + &dev_attr_wakeup_enable.attr, + &dev_attr_clk_enable.attr, + &dev_attr_irq.attr, + &dev_attr_compatible_all.attr, + &dev_attr_fingerdown_wait.attr, + NULL +}; + +static const struct attribute_group attribute_group = { + .attrs = attributes, +}; + +static void notification_work(struct work_struct *work) +{ + mdss_prim_panel_fb_unblank(FP_UNLOCK_REJECTION_TIMEOUT); + pr_debug("unblank\n"); +} + +static irqreturn_t fpc1020_irq_handler(int irq, void *handle) +{ + struct fpc1020_data *fpc1020 = handle; + + dev_dbg(fpc1020->dev, "%s\n", __func__); + + if (atomic_read(&fpc1020->wakeup_enabled)) { + wake_lock_timeout(&fpc1020->ttw_wl, + msecs_to_jiffies(FPC_TTW_HOLD_TIME)); + } + + sysfs_notify(&fpc1020->dev->kobj, NULL, dev_attr_irq.attr.name); + + if (fpc1020->wait_finger_down && fpc1020->fb_black) { + pr_debug("%s enter\n", __func__); + fpc1020->wait_finger_down = false; + schedule_work(&fpc1020->work); + } + + return IRQ_HANDLED; +} + +static int fpc1020_request_named_gpio(struct fpc1020_data *fpc1020, + const char *label, int *gpio) +{ + struct device *dev = fpc1020->dev; + struct device_node *np = dev->of_node; + int rc = of_get_named_gpio(np, label, 0); + + if (rc < 0) { + dev_err(dev, "failed to get '%s'\n", label); + return rc; + } + *gpio = rc; + + rc = devm_gpio_request(dev, *gpio, label); + if (rc) { + dev_err(dev, "failed to request gpio %d\n", *gpio); + return rc; + } + dev_dbg(dev, "%s %d\n", label, *gpio); + + return 0; +} + +static int fpc_fb_notif_callback(struct notifier_block *nb, + unsigned long val, void *data) +{ + struct fpc1020_data *fpc1020 = container_of(nb, struct fpc1020_data, + fb_notifier); + struct fb_event *evdata = data; + unsigned int blank; + + if (!fpc1020) + return 0; + + if (val != FB_EVENT_BLANK) + return 0; + + pr_debug("[info] %s value = %d\n", __func__, (int)val); + + if (evdata && evdata->data && val == FB_EVENT_BLANK) { + blank = *(int *)(evdata->data); + switch (blank) { + case FB_BLANK_POWERDOWN: + fpc1020->fb_black = true; + break; + case FB_BLANK_UNBLANK: + fpc1020->fb_black = false; + break; + default: + pr_debug("%s defalut\n", __func__); + break; + } + } + return NOTIFY_OK; +} + + +static struct notifier_block fpc_notif_block = { + .notifier_call = fpc_fb_notif_callback, +}; + +static int fpc1020_probe(struct platform_device *pdev) +{ + struct device *dev = &pdev->dev; + int rc = 0; + + + struct device_node *np = dev->of_node; + struct fpc1020_data *fpc1020 = devm_kzalloc(dev, sizeof(*fpc1020), + GFP_KERNEL); + + if (!fpc1020) { + dev_err(dev, + "failed to allocate memory for struct fpc1020_data\n"); + rc = -ENOMEM; + goto exit; + } + + fpc1020->dev = dev; + platform_set_drvdata(pdev, fpc1020); + + if (!np) { + dev_err(dev, "no of node found\n"); + rc = -EINVAL; + goto exit; + } + + atomic_set(&fpc1020->wakeup_enabled, 1); + mutex_init(&fpc1020->lock); + + wake_lock_init(&fpc1020->ttw_wl, WAKE_LOCK_SUSPEND, "fpc_ttw_wl"); + + rc = sysfs_create_group(&dev->kobj, &attribute_group); + if (rc) { + dev_err(dev, "could not create sysfs\n"); + goto exit; + } + + dev_info(dev, "%s: ok\n", __func__); + + fpc1020->fb_black = false; + fpc1020->wait_finger_down = false; + INIT_WORK(&fpc1020->work, notification_work); + fpc1020->fb_notifier = fpc_notif_block; + fb_register_client(&fpc1020->fb_notifier); + + +exit: + return rc; +} + +static int fpc1020_remove(struct platform_device *pdev) +{ + struct fpc1020_data *fpc1020 = platform_get_drvdata(pdev); + + fb_unregister_client(&fpc1020->fb_notifier); + sysfs_remove_group(&pdev->dev.kobj, &attribute_group); + mutex_destroy(&fpc1020->lock); + wake_lock_destroy(&fpc1020->ttw_wl); + dev_info(&pdev->dev, "%s\n", __func__); + + return 0; +} + +static struct of_device_id fpc1020_of_match[] = { + { .compatible = "fpc,fpc1020", }, + {} +}; +MODULE_DEVICE_TABLE(of, fpc1020_of_match); + +static struct platform_driver fpc1020_driver = { + .driver = { + .name = "fpc1020", + .owner = THIS_MODULE, + .of_match_table = fpc1020_of_match, + }, + .probe = fpc1020_probe, + .remove = fpc1020_remove, +}; + +static int __init fpc1020_init(void) +{ + int rc = platform_driver_register(&fpc1020_driver); + + if (!rc) + pr_info("%s OK\n", __func__); + else + pr_err("%s %d\n", __func__, rc); + + return rc; +} + +static void __exit fpc1020_exit(void) +{ + pr_info("%s\n", __func__); + platform_driver_unregister(&fpc1020_driver); +} + +module_init(fpc1020_init); +module_exit(fpc1020_exit); + +MODULE_LICENSE("GPL v2"); +MODULE_AUTHOR("Aleksej Makarov"); +MODULE_AUTHOR("Henrik Tillman "); +MODULE_DESCRIPTION("FPC1020 Fingerprint sensor device driver."); diff --git a/drivers/fingerprintrosy/goodixrosy/Kconfig b/drivers/fingerprintrosy/goodixrosy/Kconfig new file mode 100755 index 0000000000000..c23fedcbddc6b --- /dev/null +++ b/drivers/fingerprintrosy/goodixrosy/Kconfig @@ -0,0 +1,5 @@ +config FINGERPRINT_GOODIX_GF3208_ROSY + tristate "generic goodix fingerprint driver" + depends on FINGERPRINT_ROSY + help + add support for goodix fingerprint driver. diff --git a/drivers/fingerprintrosy/goodixrosy/Makefile b/drivers/fingerprintrosy/goodixrosy/Makefile new file mode 100755 index 0000000000000..d8e1d2169d31f --- /dev/null +++ b/drivers/fingerprintrosy/goodixrosy/Makefile @@ -0,0 +1 @@ +obj-$(CONFIG_FINGERPRINT_GOODIX_GF3208_ROSY) += gf_spi.o platform.o netlink.o diff --git a/drivers/fingerprintrosy/goodixrosy/gf_spi.c b/drivers/fingerprintrosy/goodixrosy/gf_spi.c new file mode 100644 index 0000000000000..87943b2dd746e --- /dev/null +++ b/drivers/fingerprintrosy/goodixrosy/gf_spi.c @@ -0,0 +1,940 @@ +/* + * TEE driver for goodix fingerprint sensor + * Copyright (C) 2016 Goodix + * Copyright (C) 2018 XiaoMi, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "gf_spi.h" + +#if defined(USE_SPI_BUS) +#include +#include +#elif defined(USE_PLATFORM_BUS) +#include +#endif + +#include +#define VER_MAJOR 1 +#define VER_MINOR 2 +#define PATCH_LEVEL 10 + +#define WAKELOCK_HOLD_TIME 2000 /* in ms */ +#define FP_UNLOCK_REJECTION_TIMEOUT (WAKELOCK_HOLD_TIME - 500) + +#define GF_SPIDEV_NAME "goodix,fingerprint" +/*device name after register in charater*/ +#define GF_DEV_NAME "goodix_fp" +#define GF_INPUT_NAME "uinput-goodix" /*"goodix_fp" */ + +#define CHRD_DRIVER_NAME "goodix_fp_spi" +#define CLASS_NAME "goodix_fp" + +#define N_SPI_MINORS 32 /* ... up to 256 */ +static int SPIDEV_MAJOR; + +static DECLARE_BITMAP(minors, N_SPI_MINORS); +static LIST_HEAD(device_list); +static DEFINE_MUTEX(device_list_lock); +static struct wake_lock fp_wakelock; +static struct gf_dev gf; + +static struct gf_key_map maps[] = { + { EV_KEY, GF_KEY_INPUT_HOME }, + { EV_KEY, GF_KEY_INPUT_MENU }, + { EV_KEY, GF_KEY_INPUT_BACK }, + { EV_KEY, GF_KEY_INPUT_POWER }, +#if defined(SUPPORT_NAV_EVENT) + { EV_KEY, GF_NAV_INPUT_UP }, + { EV_KEY, GF_NAV_INPUT_DOWN }, + { EV_KEY, GF_NAV_INPUT_RIGHT }, + { EV_KEY, GF_NAV_INPUT_LEFT }, + { EV_KEY, GF_KEY_INPUT_CAMERA }, + { EV_KEY, GF_NAV_INPUT_CLICK }, + { EV_KEY, GF_NAV_INPUT_DOUBLE_CLICK }, + { EV_KEY, GF_NAV_INPUT_LONG_PRESS }, + { EV_KEY, GF_NAV_INPUT_HEAVY }, +#endif + { EV_KEY, GF_KEY_INPUT_SELECT}, +}; + +static void notification_work(struct work_struct *work) +{ + mdss_prim_panel_fb_unblank(FP_UNLOCK_REJECTION_TIMEOUT); + pr_debug("unblank\n"); +} + +static void gf_enable_irq(struct gf_dev *gf_dev) +{ + if (gf_dev->irq_enabled) { + pr_warn("IRQ has been enabled.\n"); + } else { + enable_irq(gf_dev->irq); + gf_dev->irq_enabled = 1; + } +} + +static void gf_disable_irq(struct gf_dev *gf_dev) +{ + if (gf_dev->irq_enabled) { + gf_dev->irq_enabled = 0; + disable_irq(gf_dev->irq); + } else { + pr_warn("IRQ has been disabled.\n"); + } +} + +#ifdef AP_CONTROL_CLK +static long spi_clk_max_rate(struct clk *clk, unsigned long rate) +{ + long lowest_available, nearest_low, step_size, cur; + long step_direction = -1; + long guess = rate; + int max_steps = 10; + + cur = clk_round_rate(clk, rate); + if (cur == rate) + return rate; + + /* if we got here then: cur > rate */ + lowest_available = clk_round_rate(clk, 0); + if (lowest_available > rate) + return -EINVAL; + + step_size = (rate - lowest_available) >> 1; + nearest_low = lowest_available; + + while (max_steps-- && step_size) { + guess += step_size * step_direction; + cur = clk_round_rate(clk, guess); + + if ((cur < rate) && (cur > nearest_low)) + nearest_low = cur; + /* + * if we stepped too far, then start stepping in the other + * direction with half the step size + */ + if (((cur > rate) && (step_direction > 0)) + || ((cur < rate) && (step_direction < 0))) { + step_direction = -step_direction; + step_size >>= 1; + } + } + return nearest_low; +} + +static void spi_clock_set(struct gf_dev *gf_dev, int speed) +{ + long rate; + int rc; + + rate = spi_clk_max_rate(gf_dev->core_clk, speed); + if (rate < 0) { + pr_info("%s: no match found for requested clock frequency:%d", + __func__, speed); + return; + } + + rc = clk_set_rate(gf_dev->core_clk, rate); +} + +static int gfspi_ioctl_clk_init(struct gf_dev *data) +{ + pr_debug("%s: enter\n", __func__); + + data->clk_enabled = 0; + data->core_clk = clk_get(&data->spi->dev, "core_clk"); + if (IS_ERR_OR_NULL(data->core_clk)) { + pr_err("%s: fail to get core_clk\n", __func__); + return -EPERM; + } + data->iface_clk = clk_get(&data->spi->dev, "iface_clk"); + if (IS_ERR_OR_NULL(data->iface_clk)) { + pr_err("%s: fail to get iface_clk\n", __func__); + clk_put(data->core_clk); + data->core_clk = NULL; + return -ENOENT; + } + return 0; +} + +static int gfspi_ioctl_clk_enable(struct gf_dev *data) +{ + int err; + + pr_debug("%s: enter\n", __func__); + + if (data->clk_enabled) + return 0; + + err = clk_prepare_enable(data->core_clk); + if (err) { + pr_err("%s: fail to enable core_clk\n", __func__); + return -EPERM; + } + + err = clk_prepare_enable(data->iface_clk); + if (err) { + pr_err("%s: fail to enable iface_clk\n", __func__); + clk_disable_unprepare(data->core_clk); + return -ENOENT; + } + + data->clk_enabled = 1; + + return 0; +} + +static int gfspi_ioctl_clk_disable(struct gf_dev *data) +{ + pr_debug("%s: enter\n", __func__); + + if (!data->clk_enabled) + return 0; + + clk_disable_unprepare(data->core_clk); + clk_disable_unprepare(data->iface_clk); + data->clk_enabled = 0; + + return 0; +} + +static int gfspi_ioctl_clk_uninit(struct gf_dev *data) +{ + pr_debug("%s: enter\n", __func__); + + if (data->clk_enabled) + gfspi_ioctl_clk_disable(data); + + if (!IS_ERR_OR_NULL(data->core_clk)) { + clk_put(data->core_clk); + data->core_clk = NULL; + } + + if (!IS_ERR_OR_NULL(data->iface_clk)) { + clk_put(data->iface_clk); + data->iface_clk = NULL; + } + + return 0; +} +#endif + +static void nav_event_input(struct gf_dev *gf_dev, gf_nav_event_t nav_event) +{ + uint32_t nav_input = 0; + + switch (nav_event) { + case GF_NAV_FINGER_DOWN: + pr_debug("%s nav finger down\n", __func__); + break; + + case GF_NAV_FINGER_UP: + pr_debug("%s nav finger up\n", __func__); + break; + + case GF_NAV_DOWN: + nav_input = GF_NAV_INPUT_DOWN; + pr_debug("%s nav down\n", __func__); + break; + + case GF_NAV_UP: + nav_input = GF_NAV_INPUT_UP; + pr_debug("%s nav up\n", __func__); + break; + + case GF_NAV_LEFT: + nav_input = GF_NAV_INPUT_LEFT; + pr_debug("%s nav left\n", __func__); + break; + + case GF_NAV_RIGHT: + nav_input = GF_NAV_INPUT_RIGHT; + pr_debug("%s nav right\n", __func__); + break; + + case GF_NAV_CLICK: + nav_input = GF_NAV_INPUT_CLICK; + pr_debug("%s nav click\n", __func__); + break; + + case GF_NAV_HEAVY: + nav_input = GF_NAV_INPUT_HEAVY; + pr_debug("%s nav heavy\n", __func__); + break; + + case GF_NAV_LONG_PRESS: + nav_input = GF_NAV_INPUT_LONG_PRESS; + pr_debug("%s nav long press\n", __func__); + break; + + case GF_NAV_DOUBLE_CLICK: + nav_input = GF_NAV_INPUT_DOUBLE_CLICK; + pr_debug("%s nav double click\n", __func__); + break; + + default: + pr_warn("%s unknown nav event: %d\n", __func__, nav_event); + break; + } + + if ((nav_event != GF_NAV_FINGER_DOWN) && + (nav_event != GF_NAV_FINGER_UP)) { + input_report_key(gf_dev->input, nav_input, 1); + input_sync(gf_dev->input); + input_report_key(gf_dev->input, nav_input, 0); + input_sync(gf_dev->input); + } +} + +static irqreturn_t gf_irq(int irq, void *handle) +{ +#if defined(GF_NETLINK_ENABLE) + char msg = GF_NET_EVENT_IRQ; + struct gf_dev *gf_dev = &gf; + + wake_lock_timeout(&fp_wakelock, msecs_to_jiffies(WAKELOCK_HOLD_TIME)); + sendnlmsg(&msg); + + if ((gf_dev->wait_finger_down == true) && (gf_dev->device_available == 1) && (gf_dev->fb_black == 1)) { + gf_dev->wait_finger_down = false; + schedule_work(&gf_dev->work); + } + +#elif defined(GF_FASYNC) + struct gf_dev *gf_dev = &gf; + + if (gf_dev->async) + kill_fasync(&gf_dev->async, SIGIO, POLL_IN); +#endif + + return IRQ_HANDLED; +} + +static int irq_setup(struct gf_dev *gf_dev) +{ + int status; + + gf_dev->irq = gf_irq_num(gf_dev); + status = request_threaded_irq(gf_dev->irq, NULL, gf_irq, + IRQF_TRIGGER_RISING | IRQF_ONESHOT, + "gf", gf_dev); + + if (status) { + pr_err("failed to request IRQ:%d\n", gf_dev->irq); + return status; + } + enable_irq_wake(gf_dev->irq); + gf_dev->irq_enabled = 1; + + return status; +} + +static void irq_cleanup(struct gf_dev *gf_dev) +{ + gf_dev->irq_enabled = 0; + disable_irq(gf_dev->irq); + disable_irq_wake(gf_dev->irq); + free_irq(gf_dev->irq, gf_dev); +} + +static void gf_kernel_key_input(struct gf_dev *gf_dev, struct gf_key *gf_key) +{ + uint32_t key_input = 0; + + if (gf_key->key == GF_KEY_HOME) { + key_input = GF_KEY_INPUT_SELECT; + pr_info("fp keycode home-SELECT \n"); + } else if (gf_key->key == GF_KEY_POWER) { + key_input = GF_KEY_INPUT_SELECT; + pr_info("fp keycode power \n"); + } else if (gf_key->key == GF_KEY_CAMERA) { + key_input = GF_KEY_INPUT_SELECT; + pr_info("fp keycode camera \n"); + } else { + /* add special key define */ + key_input = gf_key->key; + } + pr_info("%s: received key event[%d], key=%d, value=%d\n", + __func__, key_input, gf_key->key, gf_key->value); + + if ((GF_KEY_POWER == gf_key->key || GF_KEY_CAMERA == gf_key->key) + && (gf_key->value == 1)) { + #ifndef WT_COMPILE_FACTORY_VERSION + input_report_key(gf_dev->input, key_input, 1); + input_sync(gf_dev->input); + input_report_key(gf_dev->input, key_input, 0); + input_sync(gf_dev->input); + #endif + } + + if (gf_key->key == GF_KEY_HOME) { + #ifndef WT_COMPILE_FACTORY_VERSION + + input_report_key(gf_dev->input, key_input, gf_key->value); + input_sync(gf_dev->input); + #endif + } +} + +static long gf_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) +{ + struct gf_dev *gf_dev = &gf; + struct gf_key gf_key; +#if defined(SUPPORT_NAV_EVENT) + gf_nav_event_t nav_event = GF_NAV_NONE; +#endif + int retval = 0; + u8 netlink_route = NETLINK_TEST; + struct gf_ioc_chip_info info; + + if (_IOC_TYPE(cmd) != GF_IOC_MAGIC) + return -ENODEV; + + if (_IOC_DIR(cmd) & _IOC_READ) + retval = !access_ok(VERIFY_WRITE, (void __user *)arg, _IOC_SIZE(cmd)); + else if (_IOC_DIR(cmd) & _IOC_WRITE) + retval = !access_ok(VERIFY_READ, (void __user *)arg, _IOC_SIZE(cmd)); + if (retval) + return -EFAULT; + + switch (cmd) { + case GF_IOC_INIT: + pr_debug("%s GF_IOC_INIT\n", __func__); + if (copy_to_user((void __user *)arg, (void *)&netlink_route, sizeof(u8))) { + pr_err("GF_IOC_INIT failed\n"); + retval = -EFAULT; + break; + } + break; + + case GF_IOC_EXIT: + pr_debug("%s GF_IOC_EXIT\n", __func__); + break; + + case GF_IOC_DISABLE_IRQ: + pr_debug("%s GF_IOC_DISABEL_IRQ\n", __func__); + gf_disable_irq(gf_dev); + break; + + case GF_IOC_ENABLE_IRQ: + pr_debug("%s GF_IOC_ENABLE_IRQ\n", __func__); + gf_enable_irq(gf_dev); + break; + + case GF_IOC_RESET: + pr_debug("%s GF_IOC_RESET\n", __func__); + gf_hw_reset(gf_dev, 3); + break; + + case GF_IOC_INPUT_KEY_EVENT: + if (copy_from_user(&gf_key, (void __user *)arg, sizeof(struct gf_key))) { + pr_err("failed to copy input key event from user to kernel\n"); + retval = -EFAULT; + break; + } + + gf_kernel_key_input(gf_dev, &gf_key); + break; + +#if defined(SUPPORT_NAV_EVENT) + case GF_IOC_NAV_EVENT: + pr_debug("%s GF_IOC_NAV_EVENT\n", __func__); + if (copy_from_user(&nav_event, (void __user *)arg, sizeof(gf_nav_event_t))) { + pr_err("failed to copy nav event from user to kernel\n"); + retval = -EFAULT; + break; + } + + nav_event_input(gf_dev, nav_event); + break; +#endif + + case GF_IOC_ENABLE_SPI_CLK: + pr_debug("%s GF_IOC_ENABLE_SPI_CLK\n", __func__); +#ifdef AP_CONTROL_CLK + gfspi_ioctl_clk_enable(gf_dev); +#else + pr_debug("doesn't support control clock!\n"); +#endif + break; + + case GF_IOC_DISABLE_SPI_CLK: + pr_debug("%s GF_IOC_DISABLE_SPI_CLK\n", __func__); +#ifdef AP_CONTROL_CLK + gfspi_ioctl_clk_disable(gf_dev); +#else + pr_debug("doesn't support control clock!\n"); +#endif + break; + + case GF_IOC_ENABLE_POWER: + pr_debug("%s GF_IOC_ENABLE_POWER\n", __func__); + gf_power_on(gf_dev); + break; + + case GF_IOC_DISABLE_POWER: + pr_debug("%s GF_IOC_DISABLE_POWER\n", __func__); + gf_power_off(gf_dev); + break; + + case GF_IOC_ENTER_SLEEP_MODE: + pr_debug("%s GF_IOC_ENTER_SLEEP_MODE\n", __func__); + break; + + case GF_IOC_GET_FW_INFO: + pr_debug("%s GF_IOC_GET_FW_INFO\n", __func__); + break; + + case GF_IOC_REMOVE: + pr_debug("%s GF_IOC_REMOVE\n", __func__); + irq_cleanup(gf_dev); + gf_cleanup(gf_dev); + break; + + case GF_IOC_CHIP_INFO: + pr_debug("%s GF_IOC_CHIP_INFO\n", __func__); + if (copy_from_user(&info, (void __user *)arg, sizeof(struct gf_ioc_chip_info))) { + retval = -EFAULT; + break; + } + pr_info("vendor_id : 0x%x\n", info.vendor_id); + pr_info("mode : 0x%x\n", info.mode); + pr_info("operation: 0x%x\n", info.operation); + break; + + default: + pr_warn("unsupport cmd:0x%x\n", cmd); + break; + } + + return retval; +} + +#ifdef CONFIG_COMPAT +static long gf_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) +{ + return gf_ioctl(filp, cmd, (unsigned long)compat_ptr(arg)); +} +#endif /*CONFIG_COMPAT*/ + + +static int gf_open(struct inode *inode, struct file *filp) +{ + struct gf_dev *gf_dev = &gf; + int status = -ENXIO; + + mutex_lock(&device_list_lock); + + list_for_each_entry(gf_dev, &device_list, device_entry) { + if (gf_dev->devt == inode->i_rdev) { + pr_info("Found\n"); + status = 0; + break; + } + } + + if (status == 0) { + if (status == 0) { + gf_dev->users++; + filp->private_data = gf_dev; + nonseekable_open(inode, filp); + pr_info("Succeed to open device. irq = %d\n", + gf_dev->irq); + if (gf_dev->users == 1) { + status = gf_parse_dts(gf_dev); + if (status) + goto err_parse_dt; + + status = irq_setup(gf_dev); + if (status) + goto err_irq; + } + gf_hw_reset(gf_dev, 3); + gf_dev->device_available = 1; + } + } else { + pr_info("No device for minor %d\n", iminor(inode)); + } + mutex_unlock(&device_list_lock); + + return status; +err_irq: + gf_cleanup(gf_dev); +err_parse_dt: + return status; +} + +#ifdef GF_FASYNC +static int gf_fasync(int fd, struct file *filp, int mode) +{ + struct gf_dev *gf_dev = filp->private_data; + int ret; + + ret = fasync_helper(fd, filp, mode, &gf_dev->async); + pr_info("ret = %d\n", ret); + return ret; +} +#endif + +static int gf_release(struct inode *inode, struct file *filp) +{ + struct gf_dev *gf_dev = &gf; + int status = 0; + + struct device *dev = &gf_dev->spi->dev; + mutex_lock(&device_list_lock); + gf_dev = filp->private_data; + filp->private_data = NULL; + + /*last close?? */ + gf_dev->users--; + if (!gf_dev->users) { + + pr_info("disble_irq. irq = %d\n", gf_dev->irq); + gf_disable_irq(gf_dev); + /*power off the sensor*/ + gf_dev->device_available = 0; + if (gpio_is_valid(gf_dev->reset_gpio)) { + devm_gpio_free(dev, gf_dev->reset_gpio); + pr_err(" gf_release === reset"); + } + if (gpio_is_valid(gf_dev->irq_gpio)) { + devm_gpio_free(dev, gf_dev->irq_gpio); + pr_err(" gf_release === irq"); + } + devm_free_irq(dev, gpio_to_irq(gf_dev->irq_gpio), gf_dev); + gf_power_off(gf_dev); + } + mutex_unlock(&device_list_lock); + return status; +} + +static const struct file_operations gf_fops = { + .owner = THIS_MODULE, + /* REVISIT switch to aio primitives, so that userspace + * gets more complete API coverage. It'll simplify things + * too, except for the locking. + */ + .unlocked_ioctl = gf_ioctl, +#ifdef CONFIG_COMPAT + .compat_ioctl = gf_compat_ioctl, +#endif /*CONFIG_COMPAT*/ + .open = gf_open, + .release = gf_release, +#ifdef GF_FASYNC + .fasync = gf_fasync, +#endif +}; + +static int goodix_fb_state_chg_callback(struct notifier_block *nb, + unsigned long val, void *data) +{ + struct gf_dev *gf_dev; + struct fb_event *evdata = data; + unsigned int blank; + char msg = 0; + + if (val != FB_EVENT_BLANK) + return 0; + pr_info("[info] %s go to the goodix_fb_state_chg_callback value = %d\n", + __func__, (int)val); + gf_dev = container_of(nb, struct gf_dev, notifier); + if (evdata && evdata->data && val == FB_EVENT_BLANK && gf_dev) { + blank = *(int *)(evdata->data); + switch (blank) { + case FB_BLANK_POWERDOWN: + if (gf_dev->device_available == 1) { + gf_dev->fb_black = 1; + gf_dev->wait_finger_down = true; +#if defined(GF_NETLINK_ENABLE) + msg = GF_NET_EVENT_FB_BLACK; + sendnlmsg(&msg); +#elif defined(GF_FASYNC) + if (gf_dev->async) + kill_fasync(&gf_dev->async, SIGIO, POLL_IN); +#endif + } + break; + case FB_BLANK_UNBLANK: + if (gf_dev->device_available == 1) { + gf_dev->fb_black = 0; +#if defined(GF_NETLINK_ENABLE) + msg = GF_NET_EVENT_FB_UNBLACK; + sendnlmsg(&msg); +#elif defined(GF_FASYNC) + if (gf_dev->async) + kill_fasync(&gf_dev->async, SIGIO, POLL_IN); +#endif + } + break; + default: + pr_info("%s defalut\n", __func__); + break; + } + } + return NOTIFY_OK; +} + +static struct notifier_block goodix_noti_block = { + .notifier_call = goodix_fb_state_chg_callback, +}; + +static struct class *gf_class; +#if defined(USE_SPI_BUS) +static int gf_probe(struct spi_device *spi) +#elif defined(USE_PLATFORM_BUS) +static int gf_probe(struct platform_device *pdev) +#endif +{ + struct gf_dev *gf_dev = &gf; + int status = -EINVAL; + unsigned long minor; + int i; + + /* Initialize the driver data */ + INIT_LIST_HEAD(&gf_dev->device_entry); +#if defined(USE_SPI_BUS) + gf_dev->spi = spi; +#elif defined(USE_PLATFORM_BUS) + gf_dev->spi = pdev; +#endif + gf_dev->irq_gpio = -EINVAL; + gf_dev->reset_gpio = -EINVAL; + gf_dev->pwr_gpio = -EINVAL; + gf_dev->device_available = 0; + gf_dev->fb_black = 0; + + gf_dev->wait_finger_down = false; + INIT_WORK(&gf_dev->work, notification_work); + + + /* If we can allocate a minor number, hook up this device. + * Reusing minors is fine so long as udev or mdev is working. + */ + mutex_lock(&device_list_lock); + minor = find_first_zero_bit(minors, N_SPI_MINORS); + if (minor < N_SPI_MINORS) { + struct device *dev; + + gf_dev->devt = MKDEV(SPIDEV_MAJOR, minor); + dev = device_create(gf_class, &gf_dev->spi->dev, gf_dev->devt, + gf_dev, GF_DEV_NAME); + status = IS_ERR(dev) ? PTR_ERR(dev) : 0; + } else { + dev_dbg(&gf_dev->spi->dev, "no minor number available!\n"); + status = -ENODEV; + mutex_unlock(&device_list_lock); + goto error_hw; + } + + if (status == 0) { + set_bit(minor, minors); + list_add(&gf_dev->device_entry, &device_list); + } else { + gf_dev->devt = 0; + goto error_hw; + } + mutex_unlock(&device_list_lock); + + gf_dev->input = input_allocate_device(); + if (gf_dev->input == NULL) { + pr_err("%s, failed to allocate input device\n", __func__); + status = -ENOMEM; + goto error_dev; + } + for (i = 0; i < ARRAY_SIZE(maps); i++) + input_set_capability(gf_dev->input, maps[i].type, maps[i].code); + + gf_dev->input->name = GF_INPUT_NAME; + status = input_register_device(gf_dev->input); + if (status) { + pr_err("failed to register input device\n"); + goto error_input; + } + +#ifdef AP_CONTROL_CLK + pr_info("Get the clk resource.\n"); + /* Enable spi clock */ + if (gfspi_ioctl_clk_init(gf_dev)) + goto gfspi_probe_clk_init_failed; + + if (gfspi_ioctl_clk_enable(gf_dev)) + goto gfspi_probe_clk_enable_failed; + + spi_clock_set(gf_dev, 1000000); +#endif + + gf_dev->notifier = goodix_noti_block; + fb_register_client(&gf_dev->notifier); + + wake_lock_init(&fp_wakelock, WAKE_LOCK_SUSPEND, "fp_wakelock"); + + pr_info("version V%d.%d.%02d\n", VER_MAJOR, VER_MINOR, PATCH_LEVEL); + + return status; + +#ifdef AP_CONTROL_CLK +gfspi_probe_clk_enable_failed: + gfspi_ioctl_clk_uninit(gf_dev); +gfspi_probe_clk_init_failed: +#endif + +error_input: + if (gf_dev->input != NULL) + input_free_device(gf_dev->input); +error_dev: + if (gf_dev->devt != 0) { + pr_info("Err: status = %d\n", status); + mutex_lock(&device_list_lock); + list_del(&gf_dev->device_entry); + device_destroy(gf_class, gf_dev->devt); + clear_bit(MINOR(gf_dev->devt), minors); + mutex_unlock(&device_list_lock); + } +error_hw: + gf_dev->device_available = 0; + + return status; +} + +#if defined(USE_SPI_BUS) +static int gf_remove(struct spi_device *spi) +#elif defined(USE_PLATFORM_BUS) +static int gf_remove(struct platform_device *pdev) +#endif +{ + struct gf_dev *gf_dev = &gf; + + wake_lock_destroy(&fp_wakelock); + fb_unregister_client(&gf_dev->notifier); + if (gf_dev->input) + input_unregister_device(gf_dev->input); + input_free_device(gf_dev->input); + + /* prevent new opens */ + mutex_lock(&device_list_lock); + list_del(&gf_dev->device_entry); + device_destroy(gf_class, gf_dev->devt); + clear_bit(MINOR(gf_dev->devt), minors); + mutex_unlock(&device_list_lock); + + return 0; +} + +static const struct of_device_id gx_match_table[] = { + { .compatible = GF_SPIDEV_NAME }, + {}, +}; + +#if defined(USE_SPI_BUS) +static struct spi_driver gf_driver = { +#elif defined(USE_PLATFORM_BUS) +static struct platform_driver gf_driver = { +#endif + .driver = { + .name = GF_DEV_NAME, + .owner = THIS_MODULE, + .of_match_table = gx_match_table, + }, + .probe = gf_probe, + .remove = gf_remove, +}; + +static int __init gf_init(void) +{ + int status; + + /* Claim our 256 reserved device numbers. Then register a class + * that will key udev/mdev to add/remove /dev nodes. Last, register + * the driver which manages those device numbers. + */ + + BUILD_BUG_ON(N_SPI_MINORS > 256); + status = register_chrdev(SPIDEV_MAJOR, CHRD_DRIVER_NAME, &gf_fops); + if (status < 0) { + pr_warn("Failed to register char device!\n"); + return status; + } + SPIDEV_MAJOR = status; + gf_class = class_create(THIS_MODULE, CLASS_NAME); + if (IS_ERR(gf_class)) { + unregister_chrdev(SPIDEV_MAJOR, gf_driver.driver.name); + pr_warn("Failed to create class.\n"); + return PTR_ERR(gf_class); + } +#if defined(USE_PLATFORM_BUS) + status = platform_driver_register(&gf_driver); +#elif defined(USE_SPI_BUS) + status = spi_register_driver(&gf_driver); +#endif + if (status < 0) { + class_destroy(gf_class); + unregister_chrdev(SPIDEV_MAJOR, gf_driver.driver.name); + pr_warn("Failed to register SPI driver.\n"); + } + +#ifdef GF_NETLINK_ENABLE + netlink_init(); +#endif + pr_info("status = 0x%x\n", status); + return 0; +} +module_init(gf_init); + +static void __exit gf_exit(void) +{ +#ifdef GF_NETLINK_ENABLE + netlink_exit(); +#endif +#if defined(USE_PLATFORM_BUS) + platform_driver_unregister(&gf_driver); +#elif defined(USE_SPI_BUS) + spi_unregister_driver(&gf_driver); +#endif + class_destroy(gf_class); + unregister_chrdev(SPIDEV_MAJOR, gf_driver.driver.name); +} +module_exit(gf_exit); + +MODULE_AUTHOR("Jiangtao Yi, "); +MODULE_AUTHOR("Jandy Gou, "); +MODULE_DESCRIPTION("goodix fingerprint sensor device driver"); +MODULE_LICENSE("GPL"); diff --git a/drivers/fingerprintrosy/goodixrosy/gf_spi.h b/drivers/fingerprintrosy/goodixrosy/gf_spi.h new file mode 100644 index 0000000000000..f0e8b2e77f26b --- /dev/null +++ b/drivers/fingerprintrosy/goodixrosy/gf_spi.h @@ -0,0 +1,158 @@ +/* + * driver definition for sensor driver + * + * Coypright (c) 2017 Goodix + */ +#ifndef __GF_SPI_H +#define __GF_SPI_H + +#include +#include +/**********************************************************/ +enum FP_MODE{ + GF_IMAGE_MODE = 0, + GF_KEY_MODE, + GF_SLEEP_MODE, + GF_FF_MODE, + GF_DEBUG_MODE = 0x56 +}; + +#define SUPPORT_NAV_EVENT + +#if defined(SUPPORT_NAV_EVENT) +#define GF_NAV_INPUT_UP KEY_UP +#define GF_NAV_INPUT_DOWN KEY_DOWN +#define GF_NAV_INPUT_LEFT KEY_LEFT +#define GF_NAV_INPUT_RIGHT KEY_RIGHT +#define GF_NAV_INPUT_CLICK KEY_VOLUMEDOWN +#define GF_NAV_INPUT_DOUBLE_CLICK KEY_VOLUMEUP +#define GF_NAV_INPUT_LONG_PRESS KEY_SEARCH +#define GF_NAV_INPUT_HEAVY KEY_CHAT +#endif + +#define GF_KEY_INPUT_HOME KEY_HOME +#define GF_KEY_INPUT_MENU KEY_MENU +#define GF_KEY_INPUT_BACK KEY_BACK +#define GF_KEY_INPUT_POWER KEY_POWER +#define GF_KEY_INPUT_CAMERA KEY_CAMERA +#define GF_KEY_INPUT_SELECT KEY_SELECT + +#if defined(SUPPORT_NAV_EVENT) +typedef enum gf_nav_event { + GF_NAV_NONE = 0, + GF_NAV_FINGER_UP, + GF_NAV_FINGER_DOWN, + GF_NAV_UP, + GF_NAV_DOWN, + GF_NAV_LEFT, + GF_NAV_RIGHT, + GF_NAV_CLICK, + GF_NAV_HEAVY, + GF_NAV_LONG_PRESS, + GF_NAV_DOUBLE_CLICK, +} gf_nav_event_t; +#endif + +typedef enum gf_key_event { + GF_KEY_NONE = 0, + GF_KEY_HOME, + GF_KEY_POWER, + GF_KEY_MENU, + GF_KEY_BACK, + GF_KEY_CAMERA, +} gf_key_event_t; + +struct gf_key { + enum gf_key_event key; + uint32_t value; /* key down = 1, key up = 0 */ +}; + +struct gf_key_map { + unsigned int type; + unsigned int code; +}; + +struct gf_ioc_chip_info { + unsigned char vendor_id; + unsigned char mode; + unsigned char operation; + unsigned char reserved[5]; +}; + +#define GF_IOC_MAGIC 'g' +#define GF_IOC_INIT _IOR(GF_IOC_MAGIC, 0, uint8_t) +#define GF_IOC_EXIT _IO(GF_IOC_MAGIC, 1) +#define GF_IOC_RESET _IO(GF_IOC_MAGIC, 2) +#define GF_IOC_ENABLE_IRQ _IO(GF_IOC_MAGIC, 3) +#define GF_IOC_DISABLE_IRQ _IO(GF_IOC_MAGIC, 4) +#define GF_IOC_ENABLE_SPI_CLK _IOW(GF_IOC_MAGIC, 5, uint32_t) +#define GF_IOC_DISABLE_SPI_CLK _IO(GF_IOC_MAGIC, 6) +#define GF_IOC_ENABLE_POWER _IO(GF_IOC_MAGIC, 7) +#define GF_IOC_DISABLE_POWER _IO(GF_IOC_MAGIC, 8) +#define GF_IOC_INPUT_KEY_EVENT _IOW(GF_IOC_MAGIC, 9, struct gf_key) +#define GF_IOC_ENTER_SLEEP_MODE _IO(GF_IOC_MAGIC, 10) +#define GF_IOC_GET_FW_INFO _IOR(GF_IOC_MAGIC, 11, uint8_t) +#define GF_IOC_REMOVE _IO(GF_IOC_MAGIC, 12) +#define GF_IOC_CHIP_INFO _IOW(GF_IOC_MAGIC, 13, struct gf_ioc_chip_info) + +#if defined(SUPPORT_NAV_EVENT) +#define GF_IOC_NAV_EVENT _IOW(GF_IOC_MAGIC, 14, gf_nav_event_t) +#define GF_IOC_MAXNR 15 /* THIS MACRO IS NOT USED NOW... */ +#else +#define GF_IOC_MAXNR 14 /* THIS MACRO IS NOT USED NOW... */ +#endif + + +#define USE_PLATFORM_BUS 1 + + +#define GF_NETLINK_ENABLE 1 +#define GF_NET_EVENT_IRQ 1 +#define GF_NET_EVENT_FB_BLACK 2 +#define GF_NET_EVENT_FB_UNBLACK 3 +#define NETLINK_TEST 25 + +struct gf_dev { + dev_t devt; + struct list_head device_entry; +#if defined(USE_SPI_BUS) + struct spi_device *spi; +#elif defined(USE_PLATFORM_BUS) + struct platform_device *spi; +#endif + struct clk *core_clk; + struct clk *iface_clk; + + struct input_dev *input; + /* buffer is NULL unless this device is open (users > 0) */ + unsigned users; + signed irq_gpio; + signed reset_gpio; + signed pwr_gpio; + int irq; + int irq_enabled; + int clk_enabled; +#ifdef GF_FASYNC + struct fasync_struct *async; +#endif + struct notifier_block notifier; + char device_available; + char fb_black; + + char wait_finger_down; + struct work_struct work; +}; + +int gf_parse_dts(struct gf_dev *gf_dev); +void gf_cleanup(struct gf_dev *gf_dev); + +int gf_power_on(struct gf_dev *gf_dev); +int gf_power_off(struct gf_dev *gf_dev); + +int gf_hw_reset(struct gf_dev *gf_dev, unsigned int delay_ms); +int gf_irq_num(struct gf_dev *gf_dev); + +void sendnlmsg(char *msg); +int netlink_init(void); +void netlink_exit(void); +#endif /*__GF_SPI_H*/ diff --git a/drivers/fingerprintrosy/goodixrosy/netlink.c b/drivers/fingerprintrosy/goodixrosy/netlink.c new file mode 100644 index 0000000000000..6691186c240aa --- /dev/null +++ b/drivers/fingerprintrosy/goodixrosy/netlink.c @@ -0,0 +1,97 @@ +/* + * netlink interface + * + * Copyright (c) 2017 Goodix + */ +#include +#include +#include +#include +#include +#include +#include +#include "gf_spi.h" + +#define NETLINK_TEST 25 +#define MAX_MSGSIZE 32 + +static int pid = -1; +static struct sock *nl_sk; + +void sendnlmsg(char *msg) +{ + struct sk_buff *skb_1; + struct nlmsghdr *nlh; + int len = NLMSG_SPACE(MAX_MSGSIZE); + int ret = 0; + + if (!msg || !nl_sk || !pid) + return; + + skb_1 = alloc_skb(len, GFP_KERNEL); + if (!skb_1) + return; + + nlh = nlmsg_put(skb_1, 0, 0, 0, MAX_MSGSIZE, 0); + + NETLINK_CB(skb_1).portid = 0; + NETLINK_CB(skb_1).dst_group = 0; + + memcpy(NLMSG_DATA(nlh), msg, sizeof(char)); + pr_debug("send message: %d\n", *(char *)NLMSG_DATA(nlh)); + + ret = netlink_unicast(nl_sk, skb_1, pid, MSG_DONTWAIT); + if (ret) + pr_err("failed to send msg error:0x%x\n", ret); +} + +static void nl_data_ready(struct sk_buff *__skb) +{ + struct sk_buff *skb; + struct nlmsghdr *nlh; + char str[100]; + + skb = skb_get(__skb); + if (skb->len >= NLMSG_SPACE(0)) { + nlh = nlmsg_hdr(skb); + + memcpy(str, NLMSG_DATA(nlh), sizeof(str)); + pid = nlh->nlmsg_pid; + + kfree_skb(skb); + } + +} + + +int netlink_init(void) +{ + struct netlink_kernel_cfg netlink_cfg; + + memset(&netlink_cfg, 0, sizeof(struct netlink_kernel_cfg)); + + netlink_cfg.groups = 0; + netlink_cfg.flags = 0; + netlink_cfg.input = nl_data_ready; + netlink_cfg.cb_mutex = NULL; + + nl_sk = netlink_kernel_create(&init_net, NETLINK_TEST, + &netlink_cfg); + + if (!nl_sk) { + pr_err("create netlink socket error\n"); + return 1; + } + + return 0; +} + +void netlink_exit(void) +{ + if (nl_sk != NULL) { + netlink_kernel_release(nl_sk); + nl_sk = NULL; + } + + pr_info("self module exited\n"); +} diff --git a/drivers/fingerprintrosy/goodixrosy/platform.c b/drivers/fingerprintrosy/goodixrosy/platform.c new file mode 100644 index 0000000000000..3792780375bf0 --- /dev/null +++ b/drivers/fingerprintrosy/goodixrosy/platform.c @@ -0,0 +1,113 @@ +/* + * platform indepent driver interface + * + * Coypritht (c) 2017 Goodix + */ +#include +#include +#include +#include +#include +#include +#include + +#include "gf_spi.h" + +#if defined(USE_SPI_BUS) +#include +#include +#elif defined(USE_PLATFORM_BUS) +#include +#endif + +int gf_parse_dts(struct gf_dev *gf_dev) +{ + int rc = 0; + struct device *dev = &gf_dev->spi->dev; + struct device_node *np = dev->of_node; + gf_dev->reset_gpio = of_get_named_gpio(np, "fp-gpio-reset", 0); + if (gf_dev->reset_gpio < 0) { + pr_err("falied to get reset gpio!\n"); + return gf_dev->reset_gpio; + } + + rc = devm_gpio_request(dev, gf_dev->reset_gpio, "goodix_reset"); + if (rc) { + pr_err("failed to request reset gpio, rc = %d\n", rc); + goto err_reset; + } + gpio_direction_output(gf_dev->reset_gpio, 1); + + gf_dev->irq_gpio = of_get_named_gpio(np, "fp-gpio-irq", 0); + if (gf_dev->irq_gpio < 0) { + pr_err("falied to get irq gpio!\n"); + return gf_dev->irq_gpio; + } + + rc = devm_gpio_request(dev, gf_dev->irq_gpio, "goodix_irq"); + if (rc) { + pr_err("failed to request irq gpio, rc = %d\n", rc); + goto err_irq; + } + gpio_direction_input(gf_dev->irq_gpio); + +err_irq: + devm_gpio_free(dev, gf_dev->reset_gpio); +err_reset: + return rc; +} + +void gf_cleanup(struct gf_dev *gf_dev) +{ + pr_info("[info] %s\n", __func__); + + if (gpio_is_valid(gf_dev->irq_gpio)) { + gpio_free(gf_dev->irq_gpio); + pr_info("remove irq_gpio success\n"); + } + if (gpio_is_valid(gf_dev->reset_gpio)) { + gpio_free(gf_dev->reset_gpio); + pr_info("remove reset_gpio success\n"); + } +} + +int gf_power_on(struct gf_dev *gf_dev) +{ + int rc = 0; + + /* TODO: add your power control here */ + return rc; +} + +int gf_power_off(struct gf_dev *gf_dev) +{ + int rc = 0; + + /* TODO: add your power control here */ + + return rc; +} + +int gf_hw_reset(struct gf_dev *gf_dev, unsigned int delay_ms) +{ + if (gf_dev == NULL) { + pr_info("Input buff is NULL.\n"); + return -EPERM; + } + gpio_direction_output(gf_dev->reset_gpio, 1); + gpio_set_value(gf_dev->reset_gpio, 0); + mdelay(5); + gpio_set_value(gf_dev->reset_gpio, 1); + mdelay(delay_ms); + return 0; +} + +int gf_irq_num(struct gf_dev *gf_dev) +{ + if (gf_dev == NULL) { + pr_info("Input buff is NULL.\n"); + return -EPERM; + } else { + return gpio_to_irq(gf_dev->irq_gpio); + } +} diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c index c81bda0ec2cf1..a8d6a0ef1b0cb 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@ -989,14 +989,6 @@ static int _gpiod_direction_output_raw(struct gpio_desc *desc, int value) struct gpio_chip *chip; int status = -EINVAL; - /* GPIOs used for IRQs shall not be set as output */ - if (test_bit(FLAG_USED_AS_IRQ, &desc->flags)) { - gpiod_err(desc, - "%s: tried to set a GPIO tied to an IRQ as output\n", - __func__); - return -EIO; - } - /* Open drain pin should not be driven to 1 */ if (value && test_bit(FLAG_OPEN_DRAIN, &desc->flags)) return gpiod_direction_input(desc); diff --git a/drivers/gpu/drm/nouveau/nouveau_usif.c b/drivers/gpu/drm/nouveau/nouveau_usif.c index cb1182d7e80ea..8d4fcc17b2b4e 100644 --- a/drivers/gpu/drm/nouveau/nouveau_usif.c +++ b/drivers/gpu/drm/nouveau/nouveau_usif.c @@ -316,6 +316,12 @@ usif_ioctl(struct drm_file *filp, void __user *user, u32 argc) } else goto done; + object = (void *)(unsigned long)argv->v0.token; + if (!access_ok(VERIFY_READ, object, sizeof(struct usif_object))) { + ret = -EINVAL; + goto done; + } + mutex_lock(&cli->mutex); switch (argv->v0.type) { case NVIF_IOCTL_V0_NEW: @@ -340,7 +346,6 @@ usif_ioctl(struct drm_file *filp, void __user *user, u32 argc) break; } if (argv->v0.route == NVDRM_OBJECT_USIF) { - object = (void *)(unsigned long)argv->v0.token; argv->v0.route = object->route; argv->v0.token = object->token; if (ret == 0 && argv->v0.type == NVIF_IOCTL_V0_DEL) { diff --git a/drivers/gpu/msm/adreno_dispatch.c b/drivers/gpu/msm/adreno_dispatch.c index 522c32743d3dd..370848ecd2835 100644 --- a/drivers/gpu/msm/adreno_dispatch.c +++ b/drivers/gpu/msm/adreno_dispatch.c @@ -1769,8 +1769,12 @@ static int dispatcher_do_fault(struct adreno_device *adreno_dev) /* Turn off all the timers */ del_timer_sync(&dispatcher->timer); del_timer_sync(&dispatcher->fault_timer); - del_timer_sync(&adreno_dev->preempt.timer); - + /* + * Deleting uninitialized timer will block for ever on kernel debug + * disable build. Hence skip del timer if it is not initialized. + */ + if (adreno_is_preemption_enabled(adreno_dev)) + del_timer_sync(&adreno_dev->preempt.timer); mutex_lock(&device->mutex); /* hang opcode */ diff --git a/drivers/gpu/msm/kgsl.c b/drivers/gpu/msm/kgsl.c index e022e0ef7c05d..dbc227a72522a 100644 --- a/drivers/gpu/msm/kgsl.c +++ b/drivers/gpu/msm/kgsl.c @@ -2163,7 +2163,7 @@ static long _gpuobj_map_useraddr(struct kgsl_device *device, struct kgsl_mem_entry *entry, struct kgsl_gpuobj_import *param) { - struct kgsl_gpuobj_import_useraddr useraddr; + struct kgsl_gpuobj_import_useraddr useraddr = {0}; int ret; param->flags &= KGSL_MEMFLAGS_GPUREADONLY diff --git a/drivers/hwmon/qpnp-adc-common.c b/drivers/hwmon/qpnp-adc-common.c index bacb9d857b9c4..5c3509311cdb7 100644 --- a/drivers/hwmon/qpnp-adc-common.c +++ b/drivers/hwmon/qpnp-adc-common.c @@ -1,4 +1,5 @@ /* Copyright (c) 2012-2016, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -387,6 +388,118 @@ static const struct qpnp_vadc_map_pt adcmap_qrd_skut1_btm_threshold[] = { /* Voltage to temperature */ static const struct qpnp_vadc_map_pt adcmap_100k_104ef_104fb[] = { +#ifdef CONFIG_C3N_SMB358 + {1707, -30 }, + {1701, -29}, + {1694, -28}, + {1688, -27}, + {1681, -26}, + {1674, -25}, + {1666, -24}, + {1658, -23}, + {1650, -22}, + {1641, -21}, + {1632, -20}, + {1622, -19}, + {1612, -18}, + {1602, -17}, + {1591, -16}, + {1580, -15}, + {1569, -14}, + {1557, -13}, + {1544, -12}, + {1531, -11}, + {1518, -10}, + {1505, -9}, + {1491, -8}, + {1476, -7}, + {1461, -6}, + {1446, -5}, + {1431, -4}, + {1415, -3}, + {1399, -2}, + {1382, -1}, + {1365, 0}, + {1348, 1}, + {1330, 2 }, + {1313, 3 }, + {1295, 4 }, + {1277, 5 }, + {1258, 6 }, + {1240, 7 }, + {1221, 8 }, + {1202, 9 }, + {1183, 10}, + {1165, 11}, + {1146, 12}, + {1127, 13}, + {1108, 14}, + {1089, 15}, + {1070, 16}, + {1051, 17}, + {1032, 18}, + {1013, 19}, + {995, 20}, + {976, 21}, + {958, 22}, + {940, 23}, + {922, 24}, + {905, 25}, + {888, 26}, + {871, 27}, + {854, 28}, + {837, 29}, + {821, 30}, + {805, 31}, + {790, 32}, + {774, 33}, + {759, 34}, + {745, 35}, + {731, 36}, + {717, 37}, + {703, 38}, + {690, 39}, + {677, 40}, + {664, 41}, + {652, 42}, + {640, 43}, + {628, 44}, + {617, 45}, + {606, 46}, + {595, 47}, + {585, 48}, + {575, 49}, + {565, 50}, + {556, 51}, + {546, 52}, + {538, 53}, + {529, 54}, + {521, 55}, + {513, 56}, + {505, 57}, + {497, 58}, + {490, 59}, + {483, 60}, + {476, 61}, + {470, 62}, + {463, 63}, + {457, 64}, + {451, 65}, + {445, 66}, + {440, 67}, + {434, 68}, + {429, 69}, + {424, 70}, + {419, 71}, + {415, 72}, + {410, 73}, + {406, 74}, + {402, 75}, + {398, 76}, + {394, 77}, + {390, 78}, + {386, 79} +#else {1758, -40}, {1742, -35}, {1719, -30}, @@ -421,6 +534,7 @@ static const struct qpnp_vadc_map_pt adcmap_100k_104ef_104fb[] = { {59, 115}, {51, 120}, {44, 125} +#endif }; /* Voltage to temperature */ diff --git a/drivers/input/Makefile b/drivers/input/Makefile index ee4c06520bb43..650452afb9bc1 100644 --- a/drivers/input/Makefile +++ b/drivers/input/Makefile @@ -28,3 +28,4 @@ obj-$(CONFIG_INPUT_APMPOWER) += apm-power.o obj-$(CONFIG_INPUT_KEYRESET) += keyreset.o obj-$(CONFIG_INPUT_KEYCOMBO) += keycombo.o +obj-y += radio_freq_up.o diff --git a/drivers/input/misc/keychord.c b/drivers/input/misc/keychord.c index a5ea27ad0e16c..f580edf1c87ce 100644 --- a/drivers/input/misc/keychord.c +++ b/drivers/input/misc/keychord.c @@ -300,8 +300,10 @@ static ssize_t keychord_write(struct file *file, const char __user *buffer, ret = input_register_handler(&kdev->input_handler); if (ret) { - kfree(keychords); + spin_lock_irqsave(&kdev->lock, flags); + kfree(kdev->keychords); kdev->keychords = 0; + spin_unlock_irqrestore(&kdev->lock, flags); return ret; } kdev->registered = 1; diff --git a/drivers/input/radio_freq_up.c b/drivers/input/radio_freq_up.c new file mode 100644 index 0000000000000..3720f66036276 --- /dev/null +++ b/drivers/input/radio_freq_up.c @@ -0,0 +1,292 @@ +/** + * Copyright (C) 2017.9.1 Wingtech + * Copyright (C) 2018 XiaoMi, Inc. + * + * Songmuchun Create + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ +#define pr_fmt(fmt) "[radio_frequence]: " fmt + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + * Debug messages level + */ +static int debug; +module_param(debug, int, 0644); + +/* debug code */ +#define radio_fre_dbg(msg...) do { \ + if (debug > 0) { \ + pr_info(msg); \ + } \ +} while (0) + +/** + * struct radio_freq_platform_data - The radio_freq_platform_data structure + * @irq: irq number(virtual). + * @type: type of the event (EV_KEY, EV_REL, etc...). + * @code: event code. + * @det_gpio: gpio number. + * @debounce_interval: how many msecs to debounce from device tree. + * @timer_debounce: software time debounce when gpiolib doesn't provide debounce. + * @work: delayed work. + * @det_gpio_flags: gpio flags from device tree. + * @input_dev: input device that is registered. + */ +struct radio_freq_platform_data { + int irq; + unsigned int type; + unsigned int code[2]; + int det_gpio; + int debounce_interval; + int timer_debounce; + struct delayed_work work; + enum of_gpio_flags det_gpio_flags; + struct input_dev *input_dev; +}; + +static void radio_freq__work_func(struct work_struct *work) +{ + struct radio_freq_platform_data *pdata = + container_of(work, struct radio_freq_platform_data, work.work); + int value; + unsigned int code; + + value = gpio_get_value(pdata->det_gpio); + radio_fre_dbg("gpio input value = %d\n", value); + + code = value ? pdata->code[0] : pdata->code[1]; + input_event(pdata->input_dev, pdata->type, code, 1); + input_sync(pdata->input_dev); + input_event(pdata->input_dev, pdata->type, code, 0); + input_sync(pdata->input_dev); +} + +static irqreturn_t radio_freq_interrupt(int irq, void *dev_id) +{ + struct radio_freq_platform_data *pdata = dev_id; + + radio_fre_dbg("irq enter\n"); + BUG_ON(irq != pdata->irq); + + mod_delayed_work(system_wq, + &pdata->work, + msecs_to_jiffies(pdata->timer_debounce)); + radio_fre_dbg("irq exit\n"); + + return IRQ_HANDLED; +} + +static int radio_freq_input_dev_init(struct device *dev) +{ + int i; + struct radio_freq_platform_data *pdata = dev_get_drvdata(dev); + struct input_dev *input_dev = pdata->input_dev; + + /* Init and register input device */ + input_dev->name = dev->driver->name; + input_dev->id.bustype = BUS_HOST; + input_dev->dev.parent = dev; + + input_set_drvdata(input_dev, pdata); + for (i = 0; i < sizeof(pdata->code) / sizeof(pdata->code[0]); i++) + input_set_capability(input_dev, pdata->type, pdata->code[i]); + + return input_register_device(input_dev); +} + +/** + * radio_freq_prase_dt - prase device tree. + * @dev: pointer to the device structure + * + * @return: 0 if success, otherwise negative number will be return. + */ +static int radio_freq_prase_dt(struct device *dev) +{ + struct device_node *dev_node = dev->of_node; + struct platform_device *pdev = to_platform_device(dev); + struct radio_freq_platform_data *pdata = dev_get_drvdata(dev); + + if (of_property_read_u32(dev_node, "debounce-interval", &pdata->debounce_interval)) + pdata->debounce_interval = 10; + + pdata->det_gpio = of_get_gpio_flags(dev_node, 0, &pdata->det_gpio_flags); + if (unlikely(!gpio_is_valid(pdata->det_gpio))) { + pr_err("failed to prase gpios property!\n"); + return -EPERM; + } + + if (of_property_read_u32_array(dev_node, "linux,code", pdata->code, + sizeof(pdata->code) / sizeof(pdata->code[0]))) { + pr_err("without keycode: 0x%x\n", pdata->det_gpio); + return -EPERM; + } + + if (of_property_read_u32(dev_node, "linux,input-type", &pdata->type)) + pdata->type = EV_KEY; + + pdata->irq = platform_get_irq(pdev, 0); + if (unlikely(pdata->irq < 0)) { + pr_err("failed to prase irq property!\n"); + return pdata->irq; + } + + return 0; +} + +static int radio_freq_suspend(struct device *dev) +{ + struct radio_freq_platform_data *pdata = dev_get_drvdata(dev); + + radio_fre_dbg("suspend\n"); + enable_irq_wake(pdata->irq); + + return 0; +} + +static int radio_freq_resume(struct device *dev) +{ + struct radio_freq_platform_data *pdata = dev_get_drvdata(dev); + + radio_fre_dbg("resume\n"); + disable_irq_wake(pdata->irq); + + return 0; +} + +/** + * radio_freq_quiesce - prase device tree. + * @data: pointer to the private data + * + * This function will cancel the delayed work which is registered.When the driver probe + * is failure or driver is removed, the driver model will invoke this function to free + * device resource. + */ +static void radio_freq_quiesce(void *data) +{ + struct radio_freq_platform_data *pdata = data; + + cancel_delayed_work(&pdata->work); +} + +static int radio_freq_probe(struct platform_device *pdev) +{ + int ret; + struct radio_freq_platform_data *pdata; + struct device *dev = &pdev->dev; + const char *devname = dev_name(dev); + + pr_info("radio frequence detection probe start\n"); + + if (likely(pdev->dev.of_node)) { + pdata = devm_kzalloc(dev, sizeof(*pdata), GFP_KERNEL); + if (!pdata) { + pr_err("failed to allocate memory!\n"); + return -ENOMEM; + } + platform_set_drvdata(pdev, pdata); + + ret = radio_freq_prase_dt(dev); + if (ret < 0) { + pr_err("failed to prase device tree!\n"); + return ret; + } + } else { + pr_err("device node is not exist!\n"); + return -EPERM; + } + + /** + * Allocate and register input device. + */ + pdata->input_dev = devm_input_allocate_device(dev); + if (!pdata->input_dev) { + pr_err("failed to allocate input device!\n"); + return -EPERM; + } + ret = radio_freq_input_dev_init(dev); + if (unlikely(ret)) { + pr_err("failed to register input device!\n"); + return ret; + } + + /** + * After prase dt, we can do some usingfull thing. + */ + ret = gpio_set_debounce(pdata->det_gpio, pdata->debounce_interval * 1000); + /* use timer if gpiolib doesn't provide debounce */ + if (ret < 0) + pdata->timer_debounce = pdata->debounce_interval; + + INIT_DELAYED_WORK(&pdata->work, radio_freq__work_func); + ret = devm_add_action(dev, radio_freq_quiesce, pdata); + if (unlikely(ret)) { + pr_err("failed to register quiesce action, error: %d\n", ret); + return ret; + } + + ret = devm_gpio_request_one(dev, pdata->det_gpio, + GPIOF_IN | GPIOF_EXPORT, "radio_frequence_det_gpio"); + if (unlikely(ret)) { + pr_err("failed to request gpio %d\n", pdata->det_gpio); + return ret; + } + + ret = devm_request_any_context_irq(dev, pdata->irq, radio_freq_interrupt, + irq_get_trigger_type(pdata->irq), + devname ?: dev->driver->name, pdata); + if (unlikely(ret)) { + pr_err("failed to request irq %d\n", pdata->irq); + return ret; + } + + device_init_wakeup(dev, true); + + pr_info("radio frequence detection probe end\n"); + + return 0; +} + +static int radio_freq_remove(struct platform_device *pdev) +{ + return 0; +} + +static const struct of_device_id radio_freq_of_match[] = { + {.compatible = "wingtech,radio_frequence_detection",}, + {/* sentinel */} +}; + +MODULE_DEVICE_TABLE(of, radio_freq_of_match); + +static SIMPLE_DEV_PM_OPS(radio_freq_pm_ops, radio_freq_suspend, radio_freq_resume); + +static struct platform_driver radio_freq_driver = { + .driver = { + .owner = THIS_MODULE, + .name = "radio_frequence", + .pm = &radio_freq_pm_ops, + .of_match_table = of_match_ptr(radio_freq_of_match), + }, + .probe = radio_freq_probe, + .remove = radio_freq_remove, +}; + +module_platform_driver(radio_freq_driver); + +MODULE_DESCRIPTION("radio frequence gpio check driver"); +MODULE_AUTHOR("Songmuchun "); +MODULE_LICENSE("GPL"); diff --git a/drivers/input/touchscreen/FT5346/Kconfig b/drivers/input/touchscreen/FT5346/Kconfig new file mode 100644 index 0000000000000..9526203554275 --- /dev/null +++ b/drivers/input/touchscreen/FT5346/Kconfig @@ -0,0 +1,5 @@ + +config TOUCHSCREEN_FT5346 + tristate "FOCALTECH FT5346 touchpanel driver" + depends on CONFIG_INPUT_TOUCHSCREEN + default n diff --git a/drivers/input/touchscreen/FT5346/Makefile b/drivers/input/touchscreen/FT5346/Makefile new file mode 100644 index 0000000000000..2bb007c0389ab --- /dev/null +++ b/drivers/input/touchscreen/FT5346/Makefile @@ -0,0 +1,3 @@ +#FT5336 touchpanel driver + +obj-y += ft5346.o focaltech_global/ focaltech_test/ diff --git a/drivers/input/touchscreen/FT5346/focaltech_global/Makefile b/drivers/input/touchscreen/FT5346/focaltech_global/Makefile new file mode 100644 index 0000000000000..fac3f7882f6ce --- /dev/null +++ b/drivers/input/touchscreen/FT5346/focaltech_global/Makefile @@ -0,0 +1,6 @@ +#drivers/input/touchscreen/focaltech_touch +# +#Makefile for flash module +# + +obj-y += focaltech_ic_table.o diff --git a/drivers/input/touchscreen/FT5346/focaltech_global/focaltech_global.h b/drivers/input/touchscreen/FT5346/focaltech_global/focaltech_global.h new file mode 100644 index 0000000000000..8508b406d9a54 --- /dev/null +++ b/drivers/input/touchscreen/FT5346/focaltech_global/focaltech_global.h @@ -0,0 +1,19 @@ +/************************************************************************ +* Copyright (C) 2012-2015, Focaltech Systems (R)£¬All Rights Reserved. +* Copyright (C) 2018 XiaoMi, Inc. +* +* File Name: Global.c +* +* Author: Software Development Team, AE +* +* Created: 2015-07-14 +* +* Abstract: global function for test +* +************************************************************************/ +#ifndef _FOCALTECH_GLOBAL_H +#define _FOCALTECH_GLOBAL_H + +#include "focaltech_ic_table.h" + +#endif diff --git a/drivers/input/touchscreen/FT5346/focaltech_global/focaltech_ic_table.c b/drivers/input/touchscreen/FT5346/focaltech_global/focaltech_ic_table.c new file mode 100644 index 0000000000000..3ebd10b198a6c --- /dev/null +++ b/drivers/input/touchscreen/FT5346/focaltech_global/focaltech_ic_table.c @@ -0,0 +1,531 @@ +/* + * + * FocalTech TouchScreen driver. + * + * Copyright (c) 2010-2016, FocalTech Systems, Ltd., all rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +/******************************************************************************* +* +* File Name: Focaltech_ic_table.c +* +* Author: Xu YF & ZR, Software Department, FocalTech +* +* Created: 2016-03-17 +* +* Modify: +* +* Abstract: +* +* Reference: +* +*******************************************************************************/ + +/******************************************************************************* +* 1.Included header files +*******************************************************************************/ + +#include +#include +#include "focaltech_ic_table.h" + +/******************************************************************************* +* Private constant and macro definitions using #define +*******************************************************************************/ +#define FOCALTECH_IC_TABLE_INFO "File Version of focaltech_ic_table.c: V1.0.0 2016-03-22" + +/******************************************************************************* +* Private enumerations, structures and unions using typedef +*******************************************************************************/ + +/******************************************************************************* +* Static variables +*******************************************************************************/ + +/******************************************************************************* +* Global variable or extern global variabls/functions +*******************************************************************************/ + +/******************************************************************************* +* Static function prototypes +*******************************************************************************/ + + +/******************************************************************************* +* functions body +*******************************************************************************/ + + + +unsigned int fts_ic_table_get_ic_code_from_ic_name(char *strIcName) +{ + + if (strncmp(strIcName, "FT5X36", 6) == 0) + return IC_FT5X36; + if (strncmp(strIcName, "FT5X36i", 7) == 0) + return IC_FT5X36i; + if (strncmp(strIcName, "FT3X16", 6) == 0) + return IC_FT3X16; + if (strncmp(strIcName, "FT3X26", 6) == 0) + return IC_FT3X26; + + if (strncmp(strIcName, "FT5X22", 6) == 0) + return IC_FT5X46; + if (strncmp(strIcName, "FT5X46", 6) == 0) + return IC_FT5X46; + if (strncmp(strIcName, "FT5X46i", 7) == 0) + return IC_FT5X46i; + if (strncmp(strIcName, "FT5526", 6) == 0) + return IC_FT5526; + if (strncmp(strIcName, "FT3X17", 6) == 0) + return IC_FT3X17; + if (strncmp(strIcName, "FT5436", 6) == 0) + return IC_FT5436; + if (strncmp(strIcName, "FT3X27", 6) == 0) + return IC_FT3X27; + if (strncmp(strIcName, "FT5526i", 7) == 0) + return IC_FT5526I; + if (strncmp(strIcName, "FT5416", 6) == 0) + return IC_FT5416; + if (strncmp(strIcName, "FT5426", 6) == 0) + return IC_FT5426; + if (strncmp(strIcName, "FT5435", 6) == 0) + return IC_FT5435; + if (strncmp(strIcName, "FT7681", 6) == 0) + return IC_FT7681; + if (strncmp(strIcName, "FT7661", 6) == 0) + return IC_FT7661; + if (strncmp(strIcName, "FT7511", 6) == 0) + return IC_FT7511; + if (strncmp(strIcName, "FT7421", 6) == 0) + return IC_FT7421; + + + if (strncmp(strIcName, "FT6X06", 6) == 0) + return IC_FT6X06; + if (strncmp(strIcName, "FT3X06", 6) == 0) + return IC_FT3X06; + + if (strncmp(strIcName, "FT6X36", 6) == 0) + return IC_FT6X36; + if (strncmp(strIcName, "FT3X07", 6) == 0) + return IC_FT3X07; + if (strncmp(strIcName, "FT6416", 6) == 0) + return IC_FT6416; + if (strncmp(strIcName, "FT6336G/U", 9) == 0) + return IC_FT6426; + if (strncmp(strIcName, "FT6236U", 7) == 0) + return IC_FT6236U; + if (strncmp(strIcName, "FT6436U", 7) == 0) + return IC_FT6436U; + if (strncmp(strIcName, "FT3267", 6) == 0) + return IC_FT3267; + if (strncmp(strIcName, "FT3367", 6) == 0) + return IC_FT3367; + if (strncmp(strIcName, "FT7401", 6) == 0) + return IC_FT7401; + if (strncmp(strIcName, "FT3407U", 7) == 0) + return IC_FT3407U; + + + + if (strncmp(strIcName, "FT5X16", 6) == 0) + return IC_FT5X16; + if (strncmp(strIcName, "FT5X12", 6) == 0) + return IC_FT5X12; + + if (strncmp(strIcName, "FT5506", 6) == 0) + return IC_FT5506; + if (strncmp(strIcName, "FT5606", 6) == 0) + return IC_FT5606; + if (strncmp(strIcName, "FT5816", 6) == 0) + return IC_FT5816; + + if (strncmp(strIcName, "FT5822", 6) == 0) + return IC_FT5822; + if (strncmp(strIcName, "FT5626", 6) == 0) + return IC_FT5626; + if (strncmp(strIcName, "FT5726", 6) == 0) + return IC_FT5726; + if (strncmp(strIcName, "FT5826B", 7) == 0) + return IC_FT5826B; + if (strncmp(strIcName, "FT3617", 6) == 0) + return IC_FT3617; + if (strncmp(strIcName, "FT3717", 6) == 0) + return IC_FT3717; + if (strncmp(strIcName, "FT7811", 6) == 0) + return IC_FT7811; + if (strncmp(strIcName, "FT5826S", 7) == 0) + return IC_FT5826S; + + if (strncmp(strIcName, "FT5306", 6) == 0) + return IC_FT5306; + if (strncmp(strIcName, "FT5406", 6) == 0) + return IC_FT5406; + + if (strncmp(strIcName, "FT8606", 6) == 0) + return IC_FT8606; + if (strncmp(strIcName, "FT8716", 6) == 0) + return IC_FT8716; + + if (strncmp(strIcName, "FT3C47U", 7) == 0) + return IC_FT3C47U; + + if (strncmp(strIcName, "FT8607", 6) == 0) + return IC_FT8607; + if (strncmp(strIcName, "FT8707", 6) == 0) + return IC_FT8707; + + + if (strncmp(strIcName, "FT8736", 6) == 0) + return IC_FT8736; + + if (strncmp(strIcName, "FT3D47", 6) == 0) + return IC_FT3D47; + + if (strncmp(strIcName, "FTE716", 6) == 0) + return IC_FTE716; + + if (strncmp(strIcName, "FT5442", 6) == 0) + return IC_FT5442; + + if (strncmp(strIcName, "FT3428U", 7) == 0) + return IC_FT3428U; + + if (strncmp(strIcName, "FT8006", 6) == 0) + return IC_FT8006; + + if (strncmp(strIcName, "FTE736", 6) == 0) + return IC_FTE736; + + printk("%s. can NOT get ic code. ERROR !!! \n", __func__); + + return 0xff; +} + + +void fts_ic_table_get_ic_name_from_ic_code(unsigned int ucIcCode, char *strIcName) +{ + if (NULL == strIcName) + return; + + sprintf(strIcName, "%s", "NA");/*if can't find IC , set 'NA'*/ + + if (ucIcCode == IC_FT5X36) + sprintf(strIcName, "%s", "FT5X36"); + if (ucIcCode == IC_FT5X36i) + sprintf(strIcName, "%s", "FT5X36i"); + if (ucIcCode == IC_FT3X16) + sprintf(strIcName, "%s", "FT3X16"); + if (ucIcCode == IC_FT3X26) + sprintf(strIcName, "%s", "FT3X26"); + + + if (ucIcCode == IC_FT5X46) + sprintf(strIcName, "%s", "FT5X46"); + if (ucIcCode == IC_FT5X46i) + sprintf(strIcName, "%s", "FT5X46i"); + if (ucIcCode == IC_FT5526) + sprintf(strIcName, "%s", "FT5526"); + if (ucIcCode == IC_FT3X17) + sprintf(strIcName, "%s", "FT3X17"); + if (ucIcCode == IC_FT5436) + sprintf(strIcName, "%s", "FT5436"); + if (ucIcCode == IC_FT3X27) + sprintf(strIcName, "%s", "FT3X27"); + if (ucIcCode == IC_FT5526I) + sprintf(strIcName, "%s", "FT5526i"); + if (ucIcCode == IC_FT5416) + sprintf(strIcName, "%s", "FT5416"); + if (ucIcCode == IC_FT5426) + sprintf(strIcName, "%s", "FT5426"); + if (ucIcCode == IC_FT5435) + sprintf(strIcName, "%s", "FT5435"); + if (ucIcCode == IC_FT7681) + sprintf(strIcName, "%s", "FT7681"); + if (ucIcCode == IC_FT7661) + sprintf(strIcName, "%s", "FT7661"); + if (ucIcCode == IC_FT7511) + sprintf(strIcName, "%s", "FT7511"); + if (ucIcCode == IC_FT7421) + sprintf(strIcName, "%s", "FT7421"); + + if (ucIcCode == IC_FT6X06) + sprintf(strIcName, "%s", "FT6X06"); + if (ucIcCode == IC_FT3X06) + sprintf(strIcName, "%s", "FT3X06"); + + if (ucIcCode == IC_FT6X36) + sprintf(strIcName, "%s", "FT6X36"); + if (ucIcCode == IC_FT3X07) + sprintf(strIcName, "%s", "FT3X07"); + if (ucIcCode == IC_FT6416) + sprintf(strIcName, "%s", "FT6416"); + if (ucIcCode == IC_FT6426) + sprintf(strIcName, "%s", "FT6336G/U"); + if (ucIcCode == IC_FT6236U) + sprintf(strIcName, "%s", "FT6236U"); + if (ucIcCode == IC_FT6436U) + sprintf(strIcName, "%s", "FT6436U"); + if (ucIcCode == IC_FT3267) + sprintf(strIcName, "%s", "FT3267"); + if (ucIcCode == IC_FT3367) + sprintf(strIcName, "%s", "FT3367"); + if (ucIcCode == IC_FT7401) + sprintf(strIcName, "%s", "FT7401"); + if (ucIcCode == IC_FT3407U) + sprintf(strIcName, "%s", "FT3407U"); + + if (ucIcCode == IC_FT5X16) + sprintf(strIcName, "%s", "FT5X16"); + if (ucIcCode == IC_FT5X12) + sprintf(strIcName, "%s", "FT5X12"); + + if (ucIcCode == IC_FT5506) + sprintf(strIcName, "%s", "FT5506"); + if (ucIcCode == IC_FT5606) + sprintf(strIcName, "%s", "FT5606"); + if (ucIcCode == IC_FT5816) + sprintf(strIcName, "%s", "FT5816"); + + if (ucIcCode == IC_FT5822) + sprintf(strIcName, "%s", "FT5822"); + if (ucIcCode == IC_FT5626) + sprintf(strIcName, "%s", "FT5626"); + if (ucIcCode == IC_FT5726) + sprintf(strIcName, "%s", "FT5726"); + if (ucIcCode == IC_FT5826B) + sprintf(strIcName, "%s", "FT5826B"); + if (ucIcCode == IC_FT3617) + sprintf(strIcName, "%s", "FT3617"); + if (ucIcCode == IC_FT3717) + sprintf(strIcName, "%s", "FT3717"); + if (ucIcCode == IC_FT7811) + sprintf(strIcName, "%s", "FT7811"); + if (ucIcCode == IC_FT5826S) + sprintf(strIcName, "%s", "FT5826S"); + + if (ucIcCode == IC_FT5306) + sprintf(strIcName, "%s", "FT5306"); + if (ucIcCode == IC_FT5406) + sprintf(strIcName, "%s", "FT5406"); + + if (ucIcCode == IC_FT8606) + sprintf(strIcName, "%s", "FT8606"); + if (ucIcCode == IC_FT8716) + sprintf(strIcName, "%s", "FT8716"); + + if (ucIcCode == IC_FT3C47U) + sprintf(strIcName, "%s", "FT3C47U"); + + if (ucIcCode == IC_FT8607) + sprintf(strIcName, "%s", "FT8607"); + if (ucIcCode == IC_FT8707) + sprintf(strIcName, "%s", "FT8707"); + if (ucIcCode == IC_FT8736) + sprintf(strIcName, "%s", "FT8736"); + + if (ucIcCode == IC_FT3D47) + sprintf(strIcName, "%s", "FT3D47"); + + if (ucIcCode == IC_FTE716) + sprintf(strIcName, "%s", "FTE716"); + + if (ucIcCode == IC_FT5442) + sprintf(strIcName, "%s", "FT5442"); + + if (ucIcCode == IC_FT3428U) + sprintf(strIcName, "%s", "FT3428U"); + + if (ucIcCode == IC_FT8006) + sprintf(strIcName, "%s", "FT8006"); + + if (ucIcCode == IC_FTE736) + sprintf(strIcName, "%s", "FTE736"); + + return ; +} + + +unsigned int fts_ic_table_get_ic_code_from_chip_id(unsigned char chip_id, unsigned char chip_id2) +{ + unsigned int ic_code = 0; + switch (chip_id) { + case 0x55: + ic_code = IC_FT5306; + break; + case 0x08: + ic_code = IC_FT5606; + break; + case 0x0a: + ic_code = IC_FT5X16; + break; + case 0x06: + ic_code = IC_FT6X06; + break; + case 0x36: + ic_code = IC_FT6X36; + break; + case 0x14: + ic_code = IC_FT5X36; + break; + case 0x13: + ic_code = IC_FT3X16; + break; + case 0x12: + ic_code = IC_FT5X36i; + break; + case 0x11: + ic_code = IC_FT5X36i; + break; + case 0x54: + ic_code = IC_FT5X46; + break; + case 0x58: + ic_code = IC_FT5822; + break; + + + case 0x86: + if (0x06 == chip_id2) + ic_code = IC_FT8606; + else if (0x07 == chip_id2) + ic_code = IC_FT8607; + break; + case 0x87: + if (0x07 == chip_id2) + ic_code = IC_FT8707; + else if (0x16 == chip_id2) + ic_code = IC_FT8716; + else if (0x36 == chip_id2) + ic_code = IC_FT8736; + break; + case 0xE7: + if (0x16 == chip_id2) + ic_code = IC_FTE716; + else if (0x36 == chip_id2) + ic_code = IC_FTE736; + break; + + default: + ic_code = 0; + break; + + } + return ic_code; +} + + +unsigned int fts_ic_table_get_chip_id_from_ic_code(unsigned int ic_code, unsigned char *chip_id, unsigned char *chip_id2) +{ + unsigned char uc_chip_id = 0; + unsigned char uc_chip_id2 = 0; + switch (ic_code>>4) { + case (IC_FT5306>>4): + uc_chip_id = 0x55; + break; + case (IC_FT5606>>4): + uc_chip_id = 0x08; + break; + case (IC_FT5X16>>4): + uc_chip_id = 0x0a; + break; + case (IC_FT6X06>>4): + uc_chip_id = 0x06; + break; + case (IC_FT6X36>>4): + uc_chip_id = 0x36; + break; + case (IC_FT5X36>>4): + switch (ic_code) { + case (IC_FT5X36): + uc_chip_id = 0x14; + break; + case (IC_FT3X26): + uc_chip_id = 0x13; + break; + case (IC_FT3X16): + uc_chip_id = 0x12; + break; + case (IC_FT5X36i): + uc_chip_id = 0x11; + break; + } + break; + case (IC_FT5X46>>4): + uc_chip_id = 0x54; + break; + case (IC_FT5822>>4): + uc_chip_id = 0x58; + break; + + + case (IC_FT8606>>4): + uc_chip_id = 0x86; + uc_chip_id2 = 0x06; + break; + case (IC_FT8607>>4): + uc_chip_id = 0x86; + uc_chip_id2 = 0x07; + break; + case (IC_FT8707>>4): + uc_chip_id = 0x87; + uc_chip_id2 = 0x07; + break; + case (IC_FT8716>>4): + uc_chip_id = 0x87; + uc_chip_id2 = 0x16; + break; + case (IC_FT8736>>4): + uc_chip_id = 0x87; + uc_chip_id2 = 0x36; + break; + case (IC_FTE716>>4): + uc_chip_id = 0xE7; + uc_chip_id2 = 0x16; + break; + case (IC_FTE736>>4): + uc_chip_id = 0xE7; + uc_chip_id2 = 0x36; + break; + + default: + uc_chip_id = 0; + break; + + } + + *chip_id = uc_chip_id; + *chip_id2 = uc_chip_id2; + + return 0; +} +int fts_ic_table_need_chip_id2(unsigned int chip_id) +{ + int b_need_id2 = -1; + switch (chip_id) { + case 0x86: + case 0x87: + case 0xE7: + b_need_id2 = 0; + printk("b_need_id2 = %d, chip_id = 0x%02x\n", b_need_id2, chip_id); + break; + default: + b_need_id2 = -1; + printk("b_need_id2 = %d, chip_id = 0x%02x\n", b_need_id2, chip_id); + break; + + } + return b_need_id2; +} diff --git a/drivers/input/touchscreen/FT5346/focaltech_global/focaltech_ic_table.h b/drivers/input/touchscreen/FT5346/focaltech_global/focaltech_ic_table.h new file mode 100644 index 0000000000000..b4cd1fb1dafac --- /dev/null +++ b/drivers/input/touchscreen/FT5346/focaltech_global/focaltech_ic_table.h @@ -0,0 +1,114 @@ +/* + * + * FocalTech TouchScreen driver. + * + * Copyright (c) 2010-2016, FocalTech Systems, Ltd., all rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#ifndef __FOCALTECH_IC_TABLE_H__ +#define __FOCALTECH_IC_TABLE_H__ +/******************************************************************************* +* +* File Name: focaltech_ic_table.h +* +* Author: Xu YF & ZR, Software Department, FocalTech +* +* Created: 2016-03-17 +* +* Modify: +* +* Abstract: +* +* Reference: +* +*******************************************************************************/ + +/******************************************************************************* +* 1.Included header files +*******************************************************************************/ + +/*----------------------------------------------------------- +IC corresponding code, each of the IC code is 8 bit, high 4 bit on behalf of the same series, low 4 bit on behalf of the specific IC +-----------------------------------------------------------*/ +enum IC_Type { + IC_FT5X36 = 0x10, + IC_FT5X36i = 0x11, + IC_FT3X16 = 0x12, + IC_FT3X26 = 0x13, + + IC_FT5X46 = 0x21, + IC_FT5X46i = 0x22, + IC_FT5526 = 0x23, + IC_FT3X17 = 0x24, + IC_FT5436 = 0x25, + IC_FT3X27 = 0x26, + IC_FT5526I = 0x27, + IC_FT5416 = 0x28, + IC_FT5426 = 0x29, + IC_FT5435 = 0x2A, + IC_FT7681 = 0x2B, + IC_FT7661 = 0x2C, + IC_FT7511 = 0x2D, + IC_FT7421 = 0x2E, + IC_FT6X06 = 0x30, + IC_FT3X06 = 0x31, + IC_FT6X36 = 0x40, + IC_FT3X07 = 0x41, + IC_FT6416 = 0x42, + IC_FT6426 = 0x43, + IC_FT7401 = 0x44, + IC_FT3407U = 0x45, + IC_FT6236U = 0x46, + IC_FT6436U = 0x47, + IC_FT3267 = 0x48, + IC_FT3367 = 0x49, + IC_FT5X16 = 0x50, + IC_FT5X12 = 0x51, + IC_FT5506 = 0x60, + IC_FT5606 = 0x61, + IC_FT5816 = 0x62, + IC_FT5822 = 0x70, + IC_FT5626 = 0x71, + IC_FT5726 = 0x72, + IC_FT5826B = 0x73, + IC_FT3617 = 0x74, + IC_FT3717 = 0x75, + IC_FT7811 = 0x76, + IC_FT5826S = 0x77, + IC_FT5306 = 0x80, + IC_FT5406 = 0x81, + IC_FT8606 = 0x90, + IC_FT8716 = 0xA0, + IC_FT3C47U = 0xB0, + IC_FT8607 = 0xC0, + IC_FT8707 = 0xD0, + IC_FT8736 = 0xE0, + IC_FT3D47 = 0xF0, + IC_FTE716 = 0x100, + IC_FT5442 = 0x110, + IC_FT3428U = 0x120, + IC_FT8006 = 0x130, + IC_FTE736 = 0x140 +}; + + + +extern unsigned int fts_ic_table_get_ic_code_from_ic_name(char *strIcName); +extern void fts_ic_table_get_ic_name_from_ic_code(unsigned int ic_code, char *strIcName); + +extern unsigned int fts_ic_table_get_ic_code_from_chip_id(unsigned char chip_id, unsigned char chip_id2); +extern unsigned int fts_ic_table_get_chip_id_from_ic_code(unsigned int ic_code, unsigned char *chip_id, unsigned char *chip_id2); +extern int fts_ic_table_need_chip_id2(unsigned int chip_id); + +#endif diff --git a/drivers/input/touchscreen/FT5346/focaltech_test/Makefile b/drivers/input/touchscreen/FT5346/focaltech_test/Makefile new file mode 100644 index 0000000000000..94567c601458c --- /dev/null +++ b/drivers/input/touchscreen/FT5346/focaltech_test/Makefile @@ -0,0 +1,9 @@ +#drivers/input/touchscreen/mediatek/focaltech_ts/focaltech_test +# +#Makefile for test module +# + +obj-y += src/ supported_ic/ + + + diff --git a/drivers/input/touchscreen/FT5346/focaltech_test/focaltech_test_config.h b/drivers/input/touchscreen/FT5346/focaltech_test/focaltech_test_config.h new file mode 100644 index 0000000000000..28223ff5b611e --- /dev/null +++ b/drivers/input/touchscreen/FT5346/focaltech_test/focaltech_test_config.h @@ -0,0 +1,35 @@ +/************************************************************************ +* Copyright (C) 2012-2015, Focaltech Systems (R)£¬All Rights Reserved. +* Copyright (C) 2018 XiaoMi, Inc. +* +* File Name: focaltech_test_config.h +* +* Author: Software Development Team, AE +* +* Created: 2016-08-01 +* +* Abstract: global function for test +* +***************************************************************ene*********/ +#ifndef _GLOBAL_H +#define _GLOBAL_H + + +/*----------------------------------------------------------- +IC Type Test +-----------------------------------------------------------*/ + +#define FT3C47_TEST 0 +#define FT5822_TEST 0 +#define FT5X46_TEST 1 +#define FT6X36_TEST 0 +#define FT8606_TEST 0 +#define FT8607_TEST 0 +#define FT8716_TEST 0 +#define FT8736_TEST 0 +#define FTE716_TEST 0 +#define FTE736_TEST 0 +#define FT8006_TEST 0 + + +#endif diff --git a/drivers/input/touchscreen/FT5346/focaltech_test/include/focaltech_test_detail_threshold.h b/drivers/input/touchscreen/FT5346/focaltech_test/include/focaltech_test_detail_threshold.h new file mode 100644 index 0000000000000..295a7d5101947 --- /dev/null +++ b/drivers/input/touchscreen/FT5346/focaltech_test/include/focaltech_test_detail_threshold.h @@ -0,0 +1,142 @@ +/************************************************************************ +* Copyright (C) 2012-2015, Focaltech Systems (R)£¬All Rights Reserved. +* Copyright (C) 2018 XiaoMi, Inc. +* +* File Name: focaltech_test_detail_threshold.h +* +* Author: Software Development Team, AE +* +* Created: 2016-08-01 +* +* Abstract: Set Detail Threshold for all IC +* +************************************************************************/ + +#ifndef _DETAIL_THRESHOLD_H +#define _DETAIL_THRESHOLD_H + +#define TX_NUM_MAX 60 +#define RX_NUM_MAX 60 +#define NUM_MAX (TX_NUM_MAX)*(RX_NUM_MAX) +#define MAX_PATH 256 + +#define BUFFER_LENGTH 512 +#define MAX_TEST_ITEM 20 +#define MAX_GRAPH_ITEM 20 +#define MAX_CHANNEL_NUM 144 + +#define FORCETOUCH_ROW 1 + +struct stCfg_Incell_DetailThreshold { + unsigned char (*InvalidNode)[RX_NUM_MAX]; + + + int (*RawDataTest_Min)[RX_NUM_MAX]; + int (*RawDataTest_Max)[RX_NUM_MAX]; + + int (*CBTest_Min)[RX_NUM_MAX]; + int (*CBTest_Max)[RX_NUM_MAX]; + + int (*CBUniformityTest_CHX_Linearity)[RX_NUM_MAX]; + int (*CBUniformityTest_CHY_Linearity)[RX_NUM_MAX]; + + int (*RawDataUniformityTest_CHX_Linearity)[RX_NUM_MAX]; + int (*RawDataUniformityTest_CHY_Linearity)[RX_NUM_MAX]; + int (*RawDataUniformityTest_CB_Data)[RX_NUM_MAX]; + +}; + +struct stCfg_MCap_DetailThreshold { + unsigned char (*InvalidNode)[RX_NUM_MAX]; + unsigned char (*InvalidNode_SC)[RX_NUM_MAX]; + + int (*RawDataTest_Min)[RX_NUM_MAX]; + int (*RawDataTest_Max)[RX_NUM_MAX]; + int (*RawDataTest_Low_Min)[RX_NUM_MAX]; + int (*RawDataTest_Low_Max)[RX_NUM_MAX]; + int (*RawDataTest_High_Min)[RX_NUM_MAX]; + int (*RawDataTest_High_Max)[RX_NUM_MAX]; + int (*RxLinearityTest_Max)[RX_NUM_MAX]; + int (*TxLinearityTest_Max)[RX_NUM_MAX]; + int (*PanelDifferTest_Max)[RX_NUM_MAX]; + int (*PanelDifferTest_Min)[RX_NUM_MAX]; + int (*SCapRawDataTest_ON_Max)[RX_NUM_MAX]; + int (*SCapRawDataTest_ON_Min)[RX_NUM_MAX]; + int (*SCapRawDataTest_OFF_Max)[RX_NUM_MAX]; + int (*SCapRawDataTest_OFF_Min)[RX_NUM_MAX]; + short (*SCapCbTest_ON_Max)[RX_NUM_MAX]; + short (*SCapCbTest_ON_Min)[RX_NUM_MAX]; + short (*SCapCbTest_OFF_Max)[RX_NUM_MAX]; + short (*SCapCbTest_OFF_Min)[RX_NUM_MAX]; + int (*NoistTest_Coefficient)[RX_NUM_MAX]; + + int (*SITORawdata_RxLinearityTest_Base)[RX_NUM_MAX]; + int (*SITORawdata_TxLinearityTest_Base)[RX_NUM_MAX]; + + int ForceTouch_SCapRawDataTest_ON_Max[FORCETOUCH_ROW][RX_NUM_MAX]; + int ForceTouch_SCapRawDataTest_ON_Min[FORCETOUCH_ROW][RX_NUM_MAX]; + int ForceTouch_SCapRawDataTest_OFF_Max[FORCETOUCH_ROW][RX_NUM_MAX]; + int ForceTouch_SCapRawDataTest_OFF_Min[FORCETOUCH_ROW][RX_NUM_MAX]; + int ForceTouch_SCapCbTest_ON_Max[FORCETOUCH_ROW][RX_NUM_MAX]; + int ForceTouch_SCapCbTest_ON_Min[FORCETOUCH_ROW][RX_NUM_MAX]; + int ForceTouch_SCapCbTest_OFF_Max[FORCETOUCH_ROW][RX_NUM_MAX]; + int ForceTouch_SCapCbTest_OFF_Min[FORCETOUCH_ROW][RX_NUM_MAX]; +}; + +struct stCfg_SCap_DetailThreshold { + int TempData[MAX_CHANNEL_NUM]; + int RawDataTest_Max[MAX_CHANNEL_NUM]; + int RawDataTest_Min[MAX_CHANNEL_NUM]; + int CiTest_Max[MAX_CHANNEL_NUM]; + int CiTest_Min[MAX_CHANNEL_NUM]; + int DeltaCiTest_Base[MAX_CHANNEL_NUM]; + int DeltaCiTest_AnotherBase1[MAX_CHANNEL_NUM]; + int DeltaCiTest_AnotherBase2[MAX_CHANNEL_NUM]; + int CiDeviationTest_Base[MAX_CHANNEL_NUM]; + + int NoiseTest_Max[MAX_CHANNEL_NUM]; + int DeltaCxTest_Sort[MAX_CHANNEL_NUM]; + int DeltaCxTest_Area[MAX_CHANNEL_NUM]; + + int CbTest_Max[MAX_CHANNEL_NUM]; + int CbTest_Min[MAX_CHANNEL_NUM]; + int DeltaCbTest_Base[MAX_CHANNEL_NUM]; + int DifferTest_Base[MAX_CHANNEL_NUM]; + int CBDeviationTest_Base[MAX_CHANNEL_NUM]; + int K1DifferTest_Base[MAX_CHANNEL_NUM]; +}; + +void OnInit_MCap_DetailThreshold(char *strIniFile); +void OnInit_SCap_DetailThreshold(char *strIniFile); +void OnInit_Incell_DetailThreshold(char *strIniFile); + +void set_max_channel_num(void); + +void OnInit_InvalidNode(char *strIniFile); +void OnInit_DThreshold_RawDataTest(char *strIniFile); +void OnInit_DThreshold_SCapRawDataTest(char *strIniFile); +void OnInit_DThreshold_SCapCbTest(char *strIniFile); + +void OnInit_DThreshold_SITORawdata_RxLinearityTest(char *strIniFile); +void OnInit_DThreshold_SITORawdata_TxLinearityTest(char *strIniFile); + +void OnInit_DThreshold_ForceTouch_SCapRawDataTest(char *strIniFile); +void OnInit_DThreshold_ForceTouch_SCapCbTest(char *strIniFile); + + +void OnInit_DThreshold_RxLinearityTest(char *strIniFile); +void OnInit_DThreshold_TxLinearityTest(char *strIniFile); + +void OnInit_DThreshold_PanelDifferTest(char *strIniFile); +void OnInit_DThreshold_NoiseTest(char *strIniFile); + +void OnInit_DThreshold_CBTest(char *strIniFile); +void OnInit_DThreshold_AllButtonCBTest(char *strIniFile); +void OnThreshold_VkAndVaRawDataSeparateTest(char *strIniFile); +void OnInit_DThreshold_RawDataUniformityTest(char *strIniFile); + +void OnGetTestItemParam(char *strItemName, char *strIniFile, int iDefautValue); + +int malloc_struct_DetailThreshold(void); +void free_struct_DetailThreshold(void); +#endif diff --git a/drivers/input/touchscreen/FT5346/focaltech_test/include/focaltech_test_ini.h b/drivers/input/touchscreen/FT5346/focaltech_test/include/focaltech_test_ini.h new file mode 100644 index 0000000000000..7828c96507bea --- /dev/null +++ b/drivers/input/touchscreen/FT5346/focaltech_test/include/focaltech_test_ini.h @@ -0,0 +1,66 @@ +/************************************************************************ +* Copyright (C) 2012-2015, Focaltech Systems (R)£¬All Rights Reserved. +* Copyright (C) 2018 XiaoMi, Inc. +* +* File Name: focaltech_test_ini.h +* +* Author: Software Development Team, AE +* +* Created: 2016-08-01 +* +* Abstract: parsing function of INI file +* +************************************************************************/ +#ifndef INI_H +#define INI_H + +#define MAX_KEY_NUM 300 +#define MAX_KEY_NAME_LEN 50 +#define MAX_KEY_VALUE_LEN 360 + +#define MAX_CFG_BUF 480 +#define SUCCESS 0 +/* return value */ +#define CFG_OK SUCCESS +#define CFG_SECTION_NOT_FOUND -1 +#define CFG_KEY_NOT_FOUND -2 +#define CFG_ERR -10 + +#define CFG_ERR_OPEN_FILE -10 +#define CFG_ERR_CREATE_FILE -11 +#define CFG_ERR_READ_FILE -12 +#define CFG_ERR_WRITE_FILE -13 +#define CFG_ERR_FILE_FORMAT -14 +#define CFG_ERR_TOO_MANY_KEY_NUM -15 +#define CFG_ERR_OUT_OF_LEN -16 + +#define CFG_ERR_EXCEED_BUF_SIZE -22 + +#define COPYF_OK SUCCESS +#define COPYF_ERR_OPEN_FILE -10 +#define COPYF_ERR_CREATE_FILE -11 +#define COPYF_ERR_READ_FILE -12 +#define COPYF_ERR_WRITE_FILE -13 + +typedef struct _ST_INI_FILE_DATA { + char pSectionName[MAX_KEY_NAME_LEN]; + char pKeyName[MAX_KEY_NAME_LEN]; + char pKeyValue[MAX_KEY_VALUE_LEN]; + int iSectionNameLen; + int iKeyNameLen; + int iKeyValueLen; +} ST_INI_FILE_DATA; + + + +int ini_get_key(char *filedata, char *section, char *key, char *value); + + +int fts_atoi(char *nptr); +char *ini_str_trim_r(char *buf); +char *ini_str_trim_l(char *buf); + +int init_key_data(void); +int ini_get_key_data(char *filedata); +int release_key_data(void); +#endif diff --git a/drivers/input/touchscreen/FT5346/focaltech_test/include/focaltech_test_main.h b/drivers/input/touchscreen/FT5346/focaltech_test/include/focaltech_test_main.h new file mode 100644 index 0000000000000..022f4a81a5cd7 --- /dev/null +++ b/drivers/input/touchscreen/FT5346/focaltech_test/include/focaltech_test_main.h @@ -0,0 +1,239 @@ +/************************************************************************ +* Copyright (C) 2012-2015, Focaltech Systems (R)£¬All Rights Reserved. +* Copyright (C) 2018 XiaoMi, Inc. +* +* File Name: focaltech_test_main.h +* +* Author: Software Development Team, AE +* +* Created: 2016-08-01 +* +* Abstract: test entry for all IC +* +************************************************************************/ +#ifndef _TEST_LIB_H +#define _TEST_LIB_H + +#include "focaltech_test_detail_threshold.h" +#include "../focaltech_test_config.h" + +#define boolean unsigned char +#define bool unsigned char +#define BYTE unsigned char +#define false 0 +#define true 1 +#define pre 1 + + +enum NodeType { + NODE_INVALID_TYPE = 0, + NODE_VALID_TYPE = 1, + NODE_KEY_TYPE = 2, + NODE_AST_TYPE = 3, +}; + + +typedef int (*FTS_I2C_READ_FUNCTION)(unsigned char *, int , unsigned char *, int); +typedef int (*FTS_I2C_WRITE_FUNCTION)(unsigned char *, int); + +extern FTS_I2C_READ_FUNCTION fts_i2c_read_test; +extern FTS_I2C_WRITE_FUNCTION fts_i2c_write_test; + +extern int init_i2c_read_func(FTS_I2C_READ_FUNCTION fpI2C_Read); +extern int init_i2c_write_func(FTS_I2C_WRITE_FUNCTION fpI2C_Write); + +int set_param_data(char *TestParamData); +boolean start_test_tp(void); +int get_test_data(char *pTestData); + +int focaltech_test_main_init(void); +int focaltech_test_main_exit(void); + +#define MIN_HOLE_LEVEL (-1) +#define MAX_HOLE_LEVEL 0x7F +/*----------------------------------------------------------- +Error Code for Comm +-----------------------------------------------------------*/ +#define ERROR_CODE_OK 0x00 +#define ERROR_CODE_CHECKSUM_ERROR 0x01 +#define ERROR_CODE_INVALID_COMMAND 0x02 +#define ERROR_CODE_INVALID_PARAM 0x03 +#define ERROR_CODE_IIC_WRITE_ERROR 0x04 +#define ERROR_CODE_IIC_READ_ERROR 0x05 +#define ERROR_CODE_WRITE_USB_ERROR 0x06 +#define ERROR_CODE_WAIT_RESPONSE_TIMEOUT 0x07 +#define ERROR_CODE_PACKET_RE_ERROR 0x08 +#define ERROR_CODE_NO_DEVICE 0x09 +#define ERROR_CODE_WAIT_WRITE_TIMEOUT 0x0a +#define ERROR_CODE_READ_USB_ERROR 0x0b +#define ERROR_CODE_COMM_ERROR 0x0c +#define ERROR_CODE_ALLOCATE_BUFFER_ERROR 0x0d +#define ERROR_CODE_DEVICE_OPENED 0x0e +#define ERROR_CODE_DEVICE_CLOSED 0x0f + +/*----------------------------------------------------------- +Test Status +-----------------------------------------------------------*/ +#define RESULT_NULL 0 +#define RESULT_PASS 1 +#define RESULT_NG 2 +#define RESULT_TESTING 3 +#define RESULT_TBD 4 +#define RESULT_REPLACE 5 +#define RESULT_CONNECTING 6 + +/*----------------------------------------------------------- + +read write max bytes per time +-----------------------------------------------------------*/ + +#define BYTES_PER_TIME 128 + +extern void fts_test_funcs(void); +struct StTestFuncs { + void (*OnInit_TestItem)(char *); + void (*OnInit_BasicThreshold)(char *) ; + void (*SetTestItem)(void) ; + boolean (*Start_Test)(void); + int (*Get_test_data)(char *); +}; +extern struct StTestFuncs g_stTestFuncs; + +struct structCompareChannel { + unsigned char bCh1; + unsigned char bCh2; + int fResistanceValue; + int iAdcValue; +}; + +struct StruScreenSeting { + int iSelectedIC; + int iTxNum; + int iRxNum; + int isNormalize; + int iUsedMaxTxNum; + int iUsedMaxRxNum; + + unsigned char iChannelsNum; + unsigned char iKeyNum; +}; +extern struct StruScreenSeting g_ScreenSetParam; +struct stTestItem { + unsigned char ItemType; + unsigned char TestNum; + unsigned char TestResult; + unsigned char ItemCode; +}; +extern struct stTestItem g_stTestItem[1][MAX_TEST_ITEM]; + +struct structSCapConfEx { + unsigned char ChannelXNum; + unsigned char ChannelYNum; + unsigned char KeyNum; + unsigned char KeyNumTotal; + bool bLeftKey1; + bool bLeftKey2; + bool bLeftKey3; + bool bRightKey1; + bool bRightKey2; + bool bRightKey3; +}; +extern struct structSCapConfEx g_stSCapConfEx; + +enum NORMALIZE_Type { + Overall_Normalize = 0, + Auto_Normalize = 1, +}; + +enum PROOF_TYPE { + Proof_Normal, + Proof_Level0, + Proof_NoWaterProof, +}; + +/*----------------------------------------------------------- +IC Capacitance Type 0:Self Capacitance, 1:Mutual Capacitance, 2:IDC +-----------------------------------------------------------*/ +enum enum_Report_Protocol_Type { + Self_Capacitance = 0, + Mutual_Capacitance = 1, + IDC_Capacitance = 2, +}; + +#if (FT6X36_TEST) +#define IC_Capacitance_Type 0 +#elif((FT3C47_TEST) || (FT5822_TEST) || (FT5X46_TEST)) +#define IC_Capacitance_Type 1 +#elif ((FT8606_TEST) || (FT8607_TEST) || (FT8716_TEST) || (FT8736_TEST) || (FTE716_TEST) || (FTE736_TEST) || (FT8006_TEST)) +#define IC_Capacitance_Type 2 +#endif + + +extern struct stCfg_MCap_DetailThreshold g_stCfg_MCap_DetailThreshold; +extern struct stCfg_SCap_DetailThreshold g_stCfg_SCap_DetailThreshold; +extern struct stCfg_Incell_DetailThreshold g_stCfg_Incell_DetailThreshold; + + +extern int g_TestItemNum;/*test item num*/ +extern char g_strIcName[20];/*IC Name*/ +extern char *g_pStoreAllData; + +int GetPrivateProfileString(char *section, char *ItemName, char *defaultvalue, char *returnValue, char *IniFile); +void focal_msleep(int ms); +void SysDelay(int ms); +int focal_abs(int value); +unsigned int SqrtNew(unsigned int n) ; + + +void OnInit_InterfaceCfg(char *strIniFile); + +int ReadReg(unsigned char RegAddr, unsigned char *RegData); +int WriteReg(unsigned char RegAddr, unsigned char RegData); +unsigned char Comm_Base_IIC_IO(unsigned char *pWriteBuffer, int iBytesToWrite, unsigned char *pReadBuffer, int iBytesToRead); + +unsigned char EnterWork(void); +unsigned char EnterFactory(void); + +void fts_SetTestItemCodeName(unsigned char ucitemcode); + +extern void *fts_malloc(size_t size); +extern void fts_free(void *p); + +extern int InitTest(void); +extern void FinishTest(void); +extern void InitStoreParamOfTestData(void); +extern void MergeAllTestData(void); +extern int AllocateMemory(void); +extern void FreeMemory(void); + +extern char *g_pTmpBuff; +extern char *g_pStoreMsgArea; +extern int g_lenStoreMsgArea; +extern char *g_pMsgAreaLine2; +extern int g_lenMsgAreaLine2; +extern char *g_pStoreDataArea; +extern int g_lenStoreDataArea; +extern unsigned char m_ucTestItemCode; +extern int m_iStartLine; +extern int m_iTestDataCount; + +extern char *TestResult ; +extern int TestResultLen; + +#define FOCAL_TEST_DEBUG_EN 0 +#if (FOCAL_TEST_DEBUG_EN) +#define FTS_TEST_DBG(fmt, args...) do {printk(KERN_ERR "[FTS] [TEST]%s. line: %d. "fmt"\n", __FUNCTION__, __LINE__, ##args); } while (0) +#define FTS_TEST_FUNC_ENTER() printk(KERN_ERR "[FTS][TEST]%s: Enter(%d)\n", __func__, __LINE__) +#define FTS_TEST_FUNC_EXIT() printk(KERN_ERR "[FTS][TEST]%s: Exit(%d)\n", __func__, __LINE__) +#else +#define FTS_TEST_DBG(fmt, args...) do {} while (0) +#define FTS_TEST_FUNC_ENTER() +#define FTS_TEST_FUNC_EXIT() +#endif + +#define FTS_TEST_INFO(fmt, args...) do { printk(KERN_ERR "[FTS][TEST][Info]%s. line: %d. "fmt"\n", __FUNCTION__, __LINE__, ##args); } while (0) +#define FTS_TEST_ERROR(fmt, args...) do { printk(KERN_ERR "[FTS][TEST][Error]%s. line: %d. "fmt"\n", __FUNCTION__, __LINE__, ##args); } while (0) + + + +#endif diff --git a/drivers/input/touchscreen/FT5346/focaltech_test/include/focaltech_test_supported_ic.h b/drivers/input/touchscreen/FT5346/focaltech_test/include/focaltech_test_supported_ic.h new file mode 100644 index 0000000000000..8743d011f0c23 --- /dev/null +++ b/drivers/input/touchscreen/FT5346/focaltech_test/include/focaltech_test_supported_ic.h @@ -0,0 +1,1543 @@ +/************************************************************************ +* Copyright (C) 2012-2016, Focaltech Systems (R) All Rights Reserved. +* Copyright (C) 2018 XiaoMi, Inc. +* +* File Name: focaltech_test_supported_ic.h +* +* Author: Software Development Team, AE +* +* Created: 2016-08-01 +* +* Abstract: test entry for all IC +* +************************************************************************/ + +#include +#include + +#include "../focaltech_test_config.h" +#include "focaltech_test_main.h" + +#if (FT8716_TEST) + +struct stCfg_FT8716_TestItem { + bool FW_VERSION_TEST; + bool FACTORY_ID_TEST; + bool PROJECT_CODE_TEST; + bool IC_VERSION_TEST; + bool RAWDATA_TEST; + bool CHANNEL_NUM_TEST; + bool INT_PIN_TEST; + bool RESET_PIN_TEST; + bool NOISE_TEST; + bool CB_TEST; + bool SHORT_CIRCUIT_TEST; + bool OPEN_TEST; + bool CB_UNIFORMITY_TEST; + bool DIFFER_UNIFORMITY_TEST; + bool DIFFER2_UNIFORMITY_TEST; + bool LCD_NOISE_TEST; + bool GPIO_TEST; + bool RESETDETECTION_TEST; + bool ERASE_TEST; + bool RAWDATA_UNIFORMITY_TEST; + bool VIRTUAL_DIFFER_TEST; + +}; +struct stCfg_FT8716_BasicThreshold { + BYTE FW_VER_VALUE; + BYTE Factory_ID_Number; + char Project_Code[32]; + BYTE IC_Version; + bool bRawDataTest_VA_Check; + int RawDataTest_Min; + int RawDataTest_Max; + bool bRawDataTest_VKey_Check; + int RawDataTest_Min_VKey; + int RawDataTest_Max_VKey; + BYTE ChannelNumTest_ChannelXNum; + BYTE ChannelNumTest_ChannelYNum; + BYTE ChannelNumTest_KeyNum; + BYTE ResetPinTest_RegAddr; + BYTE IntPinTest_RegAddr; + int NoiseTest_Coefficient; + int NoiseTest_Frames; + int NoiseTest_Time; + BYTE NoiseTest_SampeMode; + BYTE NoiseTest_NoiseMode; + BYTE NoiseTest_ShowTip; + bool bCBTest_VA_Check; + int CbTest_Min; + int CbTest_Max; + bool bCBTest_VKey_Check; + int CbTest_Min_Vkey; + int CbTest_Max_Vkey; + + bool bCBTest_VKey_DCheck_Check; + int CbTest_Min_DCheck_Vkey; + int CbTest_Max_DCheck_Vkey; + + bool bLcdBusyAdjust; + int ShortCircuit_ResMin; + + int OpenTest_CBMin; + bool OpenTest_Check_K1; + int OpenTest_K1Threshold; + bool OpenTest_Check_K2; + int OpenTest_K2Threshold; + + bool CBUniformityTest_Check_CHX; + bool CBUniformityTest_Check_CHY; + bool CBUniformityTest_Check_MinMax; + int CBUniformityTest_CHX_Hole; + int CBUniformityTest_CHY_Hole; + int CBUniformityTest_MinMax_Hole; + + bool DifferUniformityTest_Check_CHX; + bool DifferUniformityTest_Check_CHY; + bool DifferUniformityTest_Check_MinMax; + int DifferUniformityTest_CHX_Hole; + int DifferUniformityTest_CHY_Hole; + int DifferUniformityTest_MinMax_Hole; + int DeltaVol; + + bool Differ2UniformityTest_Check_CHX; + bool Differ2UniformityTest_Check_CHY; + int Differ2UniformityTest_CHX_Hole; + int Differ2UniformityTest_CHY_Hole; + int Differ2UniformityTest_Differ_Min; + int Differ2UniformityTest_Differ_Max; + + + int LCDNoiseTest_FrameNum; + int LCDNoiseTest_Coefficient; + int LCDNoiseTest_Coefficient_Key; + BYTE LCDNoiseTest_NoiseMode; + int LCDNoiseTest_SequenceFrame; + int LCDNoiseTest_MaxFrame; + + bool RawDataUniformityTest_Check_FIXCB; + bool RawDataUniformityTest_Check_CHX; + bool RawDataUniformityTest_Check_CHY; + int RawDataUniformityTest_CHX_Hole; + int RawDataUniformityTest_CHY_Hole; + +}; +enum enumTestItem_FT8716 { + Code_FT8716_ENTER_FACTORY_MODE, + Code_FT8716_DOWNLOAD, + Code_FT8716_UPGRADE, + Code_FT8716_FACTORY_ID_TEST, + Code_FT8716_PROJECT_CODE_TEST, + Code_FT8716_FW_VERSION_TEST, + Code_FT8716_IC_VERSION_TEST, + Code_FT8716_RAWDATA_TEST, + Code_FT8716_CHANNEL_NUM_TEST, + + Code_FT8716_INT_PIN_TEST, + Code_FT8716_RESET_PIN_TEST, + Code_FT8716_NOISE_TEST, + Code_FT8716_CB_TEST, + Code_FT8716_WRITE_CONFIG, + + Code_FT8716_SHORT_CIRCUIT_TEST, + Code_FT8716_OPEN_TEST, + Code_FT8716_CB_UNIFORMITY_TEST, + Code_FT8716_DIFFER_UNIFORMITY_TEST, + Code_FT8716_DIFFER2_UNIFORMITY_TEST, + Code_FT8716_LCD_NOISE_TEST, + Code_FT8716_GPIO_TEST, + Code_FT8716_IC_TYPE_TEST, + Code_FT8716_RESET_DETECT_TEST, + Code_FT8716_ERASE_SECTOR_TEST, + Code_FT8716_RAWDATA_UNIFORMITY_TEST, + Code_FT8716_VIRTUAL_DIFFER_TEST, +}; + + + +#elif (FT8607_TEST) + +struct stCfg_FT8607_TESTItem { + bool FW_VERSION_TEST; + bool FACTORY_ID_TEST; + bool PROJECT_CODE_TEST; + bool IC_VERSION_TEST; + bool RAWDATA_TEST; + bool CHANNEL_NUM_TEST; + bool INT_PIN_TEST; + bool RESET_PIN_TEST; + bool NOISE_TEST; + bool CB_TEST; + bool SHORT_CIRCUIT_TEST; + bool LCD_NOISE_TEST; + bool OSC60MHZ_TEST; + bool OSCTRM_TEST; + bool SNR_TEST; + bool LPWG_RAWDATA_TEST; + bool LPWG_CB_TEST; + bool LPWG_NOISE_TEST; + bool DIFFER_TEST; + bool DIFFER_UNIFORMITY_TEST; + bool OPEN_TEST; +}; + +struct stCfg_FT8607_BasicThreshold { + BYTE FW_VER_VALUE; + BYTE Factory_ID_Number; + char Project_Code[32]; + BYTE IC_Version; + int RawDataTest_Min; + int RawDataTest_Max; + BYTE ChannelNumTest_ChannelXNum; + BYTE ChannelNumTest_ChannelYNum; + BYTE ChannelNumTest_KeyNum; + BYTE ResetPinTest_RegAddr; + BYTE IntPinTest_RegAddr; + int NoiseTest_Coefficient; + int NoiseTest_Frames; + int NoiseTest_Time; + BYTE NoiseTest_SampeMode; + BYTE NoiseTest_NoiseMode; + BYTE NoiseTest_ShowTip; + BYTE IsDifferMode; + bool bCBTest_VA_Check; + int CbTest_Min; + int CbTest_Max; + bool bCBTest_VKey_Check; + int CbTest_Min_Vkey; + int CbTest_Max_Vkey; + int ShortCircuit_ResMin; + int iLCDNoiseTestFrame; + int iLCDNoiseTestMax; + + int iLCDNoiseCoefficient; + int OSC60MHZTest_OSCMin; + int OSC60MHZTest_OSCMax; + + int OSCTRMTest_OSCMin; + int OSCTRMTest_OSCMax; + int OSCTRMTest_OSCDetMin; + int OSCTRMTest_OSCDetMax; + int SNRTest_FrameNum; + int SNRTest_Min; + + int DIFFERTest_FrameNum; + int DIFFERTest_DifferMax; + int DIFFERTest_DifferMin; + + bool DifferUniformityTest_Check_CHX; + bool DifferUniformityTest_Check_CHY; + bool DifferUniformityTest_Check_MinMax; + int DifferUniformityTest_CHX_Hole; + int DifferUniformityTest_CHY_Hole; + int DifferUniformityTest_MinMax_Hole; + + int LPWG_RawDataTest_Min; + int LPWG_RawDataTest_Max; + + bool bLPWG_CBTest_VA_Check; + int LPWG_CbTest_Min; + int LPWG_CbTest_Max; + bool bLPWG_CBTest_VKey_Check; + int LPWG_CbTest_Min_Vkey; + int LPWG_CbTest_Max_Vkey; + + int LPWG_NoiseTest_Coefficient; + int LPWG_NoiseTest_Frames; + int LPWG_NoiseTest_Time; + BYTE LPWG_NoiseTest_SampeMode; + BYTE LPWG_NoiseTest_NoiseMode; + BYTE LPWG_NoiseTest_ShowTip; + BYTE LPWG_IsDifferMode; + + int Open_Test_CBMin; +}; + + +enum enumTestItem_FT8607 { + Code_FT8607_ENTER_FACTORY_MODE, + Code_FT8607_DOWNLOAD, + Code_FT8607_UPGRADE, + Code_FT8607_FACTORY_ID_TEST, + Code_FT8607_PROJECT_CODE_TEST, + Code_FT8607_FW_VERSION_TEST, + Code_FT8607_IC_VERSION_TEST, + Code_FT8607_RAWDATA_TEST, + Code_FT8607_CHANNEL_NUM_TEST, + + Code_FT8607_INT_PIN_TEST, + Code_FT8607_RESET_PIN_TEST, + Code_FT8607_NOISE_TEST, + Code_FT8607_CB_TEST, + Code_FT8607_WRITE_CONFIG, + + Code_FT8607_SHORT_CIRCUIT_TEST, + Code_FT8607_LCD_NOISE_TEST, + + Code_FT8607_OSC60MHZ_TEST, + Code_FT8607_OSCTRM_TEST, + Code_FT8607_SNR_TEST, + Code_FT8607_DIFFER_TEST, + Code_FT8607_DIFFER_UNIFORMITY_TEST, + + Code_FT8607_LPWG_RAWDATA_TEST, + Code_FT8607_LPWG_CB_TEST, + Code_FT8607_LPWG_NOISE_TEST, + Code_FT8607_OPEN_TEST, +}; + +#elif (FT5X46_TEST) +/*----------------------------------------------- +FT5X46 and FT5X46 is the same series of chips +FT5422\FT5X46 is the chip code for internally develope +FT5X46 is the chip code for market +------------------------------------------------*/ +struct stCfg_FT5X46_TestItem { + bool FW_VERSION_TEST; + bool FACTORY_ID_TEST; + bool PROJECT_CODE_TEST; + bool IC_VERSION_TEST; + bool RAWDATA_TEST; + bool ADC_DETECT_TEST; + bool SCAP_CB_TEST; + bool SCAP_RAWDATA_TEST; + bool CHANNEL_NUM_TEST; + bool INT_PIN_TEST; + bool RESET_PIN_TEST; + bool NOISE_TEST; + bool WEAK_SHORT_CIRCUIT_TEST; + bool UNIFORMITY_TEST; + bool CM_TEST; + + bool RAWDATA_MARGIN_TEST; + bool PANEL_DIFFER_TEST; + bool PANEL_DIFFER_UNIFORMITY_TEST; + + bool LCM_ID_TEST; + bool PANEL_ID_TEST; + + bool TE_TEST; + bool SITO_RAWDATA_UNIFORMITY_TEST; + bool PATTERN_TEST; + bool GPIO_TEST; + bool LCD_NOISE_TEST; +}; +struct stCfg_FT5X46_BasicThreshold { + BYTE FW_VER_VALUE; + BYTE Factory_ID_Number; + char Project_Code[32]; + BYTE IC_Version; + BYTE LCM_ID; + int RawDataTest_low_Min; + int RawDataTest_Low_Max; + int RawDataTest_high_Min; + int RawDataTest_high_Max; + BYTE RawDataTest_SetLowFreq; + BYTE RawDataTest_SetHighFreq; + int AdcDetect_Max; + + int SCapCbTest_OFF_Min; + int SCapCbTest_OFF_Max; + int SCapCbTest_ON_Min; + int SCapCbTest_ON_Max; + bool SCapCbTest_LetTx_Disable; + BYTE SCapCbTest_SetWaterproof_OFF; + BYTE SCapCbTest_SetWaterproof_ON; + + int SCapRawDataTest_OFF_Min; + int SCapRawDataTest_OFF_Max; + int SCapRawDataTest_ON_Min; + int SCapRawDataTest_ON_Max; + bool SCapRawDataTest_LetTx_Disable; + BYTE SCapRawDataTest_SetWaterproof_OFF; + BYTE SCapRawDataTest_SetWaterproof_ON; + bool bChannelTestMapping; + bool bChannelTestNoMapping; + BYTE ChannelNumTest_TxNum; + BYTE ChannelNumTest_RxNum; + BYTE ChannelNumTest_TxNpNum; + BYTE ChannelNumTest_RxNpNum; + BYTE ResetPinTest_RegAddr; + BYTE IntPinTest_RegAddr; + BYTE IntPinTest_TestNum; + int NoiseTest_Max; + int GloveNoiseTest_Coefficient; + int NoiseTest_Frames; + int NoiseTest_Time; + BYTE NoiseTest_SampeMode; + BYTE NoiseTest_NoiseMode; + BYTE NoiseTest_ShowTip; + bool bNoiseTest_GloveMode; + int NoiseTest_RawdataMin; + unsigned char Set_Frequency; + bool bNoiseThreshold_Choose; + int NoiseTest_Threshold; + int NoiseTest_MinNgFrame; + bool bNoiseTest_TPToolProcess; + + int WeakShortTest_CG; + int WeakShortTest_CC; + int WeakShortTest_CC_Rsen; + bool WeakShortTest_CapShortTest; + + + bool Uniformity_CheckTx; + bool Uniformity_CheckRx; + bool Uniformity_CheckMinMax; + int Uniformity_Tx_Hole; + int Uniformity_Rx_Hole; + int Uniformity_MinMax_Hole; + bool CMTest_CheckMin; + bool CMTest_CheckMax; + int CMTest_MinHole; + int CMTest_MaxHole; + + int RawdataMarginTest_Min; + int RawdataMarginTest_Max; + + int PanelDifferTest_Min; + int PanelDifferTest_Max; + + bool PanelDiffer_UniformityTest_Check_Tx; + bool PanelDiffer_UniformityTest_Check_Rx; + bool PanelDiffer_UniformityTest_Check_MinMax; + int PanelDiffer_UniformityTest_Tx_Hole; + int PanelDiffer_UniformityTest_Rx_Hole; + int PanelDiffer_UniformityTest_MinMax_Hole; + + bool SITO_RawdtaUniformityTest_Check_Tx; + bool SITO_RawdtaUniformityTest_Check_Rx; + int SITO_RawdtaUniformityTest_Tx_Hole; + int SITO_RawdtaUniformityTest_Rx_Hole; + + bool bPattern00; + bool bPatternFF; + bool bPattern55; + bool bPatternAA; + bool bPatternBin; + + int Lcd_Noise_MaxFrame; + int Lcd_Noise_Conficient; + int Lcd_Noise_Noise_Mode; + int Lcd_Noise_MaxNgPoint; + int Lcd_Noise_FrameNum; + + bool Lcd_Noise_NoiseThresholdMode; + int Lcd_Noise_NoiseCoefficient; + int Lcd_Noise_NoiseMax; + int Lcd_Noise_SetFrequency; +}; +enum enumTestItem_FT5X46 { + Code_FT5X46_ENTER_FACTORY_MODE, + Code_FT5X46_DOWNLOAD, + Code_FT5X46_UPGRADE, + Code_FT5X46_FACTORY_ID_TEST, + Code_FT5X46_PROJECT_CODE_TEST, + Code_FT5X46_FW_VERSION_TEST, + Code_FT5X46_IC_VERSION_TEST, + Code_FT5X46_RAWDATA_TEST, + Code_FT5X46_ADCDETECT_TEST, + Code_FT5X46_SCAP_CB_TEST, + Code_FT5X46_SCAP_RAWDATA_TEST, + Code_FT5X46_CHANNEL_NUM_TEST, + Code_FT5X46_INT_PIN_TEST, + Code_FT5X46_RESET_PIN_TEST, + Code_FT5X46_NOISE_TEST, + Code_FT5X46_WEAK_SHORT_CIRCUIT_TEST, + Code_FT5X46_UNIFORMITY_TEST, + Code_FT5X46_CM_TEST, + Code_FT5X46_RAWDATA_MARGIN_TEST, + Code_FT5X46_WRITE_CONFIG, + Code_FT5X46_PANELDIFFER_TEST, + Code_FT5X46_PANELDIFFER_UNIFORMITY_TEST, + Code_FT5X46_LCM_ID_TEST, + Code_FT5X46_JUDEG_NORMALIZE_TYPE, + Code_FT5X46_TE_TEST, + Code_FT5X46_SITO_RAWDATA_UNIFORMITY_TEST, + Code_FT5X46_PATTERN_TEST, + Code_FT5X46_GPIO_TEST, + Code_FT5X46_LCD_NOISE_TEST, +}; + +#elif (FT6X36_TEST) + +struct stCfg_FT6X36_TestItem { + bool FW_VERSION_TEST; + bool FACTORY_ID_TEST; + bool PROJECT_CODE_TEST; + bool IC_VERSION_TEST; + bool RAWDATA_TEST; + bool CHANNEL_NUM_TEST; + bool CHANNEL_SHORT_TEST; + bool INT_PIN_TEST; + bool RESET_PIN_TEST; + bool NOISE_TEST; + bool CB_TEST; + bool DELTA_CB_TEST; + bool CHANNELS_DEVIATION_TEST; + bool TWO_SIDES_DEVIATION_TEST; + bool FPC_SHORT_TEST; + bool FPC_OPEN_TEST; + bool SREF_OPEN_TEST; + bool TE_TEST; + bool CB_DEVIATION_TEST; + bool DIFFER_TEST; + bool WEAK_SHORT_TEST; + bool DIFFER_TEST2; + bool K1_DIFFER_TEST; +}; + +struct stCfg_FT6X36_BasicThreshold { + BYTE FW_VER_VALUE; + BYTE Factory_ID_Number; + char Project_Code[32]; + BYTE IC_Version; + int RawDataTest_Min; + int RawDataTest_Max; + BYTE ChannelNumTest_ChannelNum; + BYTE ChannelNumTest_KeyNum; + int ChannelShortTest_K1; + int ChannelShortTest_K2; + int ChannelShortTest_CB; + BYTE ResetPinTest_RegAddr; + BYTE IntPinTest_RegAddr; + int WeakShortThreshold; + int NoiseTest_Max; + int NoiseTest_Frames; + int NoiseTest_Time; + BYTE NoiseTest_SampeMode; + BYTE NoiseTest_NoiseMode; + BYTE NoiseTest_ShowTip; + int FPCShort_CB_Min; + int FPCShort_CB_Max; + int FPCShort_RawData_Min; + int FPCShort_RawData_Max; + int FPCOpen_CB_Min; + int FPCOpen_CB_Max; + int FPCOpen_RawData_Min; + int FPCOpen_RawData_Max; + int SREFOpen_Hole_Base1; + int SREFOpen_Hole_Base2; + int SREFOpen_Hole; + int CBDeviationTest_Hole; + int Differ_Ave_Hole; + int Differ_Max_Hole; + int CbTest_Min; + int CbTest_Max; + int DeltaCbTest_Base; + int DeltaCbTest_Differ_Max; + bool DeltaCbTest_Include_Key_Test; + int DeltaCbTest_Key_Differ_Max; + int DeltaCbTest_Deviation_S1; + int DeltaCbTest_Deviation_S2; + int DeltaCbTest_Deviation_S3; + int DeltaCbTest_Deviation_S4; + int DeltaCbTest_Deviation_S5; + int DeltaCbTest_Deviation_S6; + bool DeltaCbTest_Set_Critical; + int DeltaCbTest_Critical_S1; + int DeltaCbTest_Critical_S2; + int DeltaCbTest_Critical_S3; + int DeltaCbTest_Critical_S4; + int DeltaCbTest_Critical_S5; + int DeltaCbTest_Critical_S6; + + int ChannelsDeviationTest_Deviation_S1; + int ChannelsDeviationTest_Deviation_S2; + int ChannelsDeviationTest_Deviation_S3; + int ChannelsDeviationTest_Deviation_S4; + int ChannelsDeviationTest_Deviation_S5; + int ChannelsDeviationTest_Deviation_S6; + bool ChannelsDeviationTest_Set_Critical; + int ChannelsDeviationTest_Critical_S1; + int ChannelsDeviationTest_Critical_S2; + int ChannelsDeviationTest_Critical_S3; + int ChannelsDeviationTest_Critical_S4; + int ChannelsDeviationTest_Critical_S5; + int ChannelsDeviationTest_Critical_S6; + + int TwoSidesDeviationTest_Deviation_S1; + int TwoSidesDeviationTest_Deviation_S2; + int TwoSidesDeviationTest_Deviation_S3; + int TwoSidesDeviationTest_Deviation_S4; + int TwoSidesDeviationTest_Deviation_S5; + int TwoSidesDeviationTest_Deviation_S6; + bool TwoSidesDeviationTest_Set_Critical; + int TwoSidesDeviationTest_Critical_S1; + int TwoSidesDeviationTest_Critical_S2; + int TwoSidesDeviationTest_Critical_S3; + int TwoSidesDeviationTest_Critical_S4; + int TwoSidesDeviationTest_Critical_S5; + int TwoSidesDeviationTest_Critical_S6; + + int DifferTest2_Data_H_Min; + int DifferTest2_Data_H_Max; + int DifferTest2_Data_M_Min; + int DifferTest2_Data_M_Max; + int DifferTest2_Data_L_Min; + int DifferTest2_Data_L_Max; + bool bDifferTest2_Data_H; + bool bDifferTest2_Data_M; + bool bDifferTest2_Data_L; + int K1DifferTest_StartK1; + int K1DifferTest_EndK1; + int K1DifferTest_MinHold2; + int K1DifferTest_MaxHold2; + int K1DifferTest_MinHold4; + int K1DifferTest_MaxHold4; + int K1DifferTest_Deviation2; + int K1DifferTest_Deviation4; +}; + +enum enumTestItem_FT6X36 { + Code_FT6X36_ENTER_FACTORY_MODE, + Code_FT6X36_DOWNLOAD, + Code_FT6X36_UPGRADE, + Code_FT6X36_FACTORY_ID_TEST, + Code_FT6X36_PROJECT_CODE_TEST, + Code_FT6X36_FW_VERSION_TEST, + Code_FT6X36_IC_VERSION_TEST, + Code_FT6X36_RAWDATA_TEST, + Code_FT6X36_CHANNEL_NUM_TEST, + Code_FT6X36_CHANNEL_SHORT_TEST, + Code_FT6X36_INT_PIN_TEST, + Code_FT6X36_RESET_PIN_TEST, + Code_FT6X36_NOISE_TEST, + Code_FT6X36_CB_TEST, + Code_FT6X36_DELTA_CB_TEST, + Code_FT6X36_CHANNELS_DEVIATION_TEST, + Code_FT6X36_TWO_SIDES_DEVIATION_TEST, + Code_FT6X36_FPC_SHORT_TEST, + Code_FT6X36_FPC_OPEN_TEST, + Code_FT6X36_SREF_OPEN_TEST, + Code_FT6X36_TE_TEST, + Code_FT6X36_CB_DEVIATION_TEST, + Code_FT6X36_WRITE_CONFIG, + Code_FT6X36_DIFFER_TEST, + Code_FT6X36_WEAK_SHORT_TEST, + Code_FT6X36_DIFFER_TEST2, + Code_FT6X36_K1_DIFFER_TEST, +}; + +#elif (FT5822_TEST) + +struct stCfg_FT5822_TestItem { + bool FW_VERSION_TEST; + bool FACTORY_ID_TEST; + bool PROJECT_CODE_TEST; + bool IC_VERSION_TEST; + bool RAWDATA_TEST; + bool ADC_DETECT_TEST; + bool SCAP_CB_TEST; + bool SCAP_RAWDATA_TEST; + bool CHANNEL_NUM_TEST; + bool INT_PIN_TEST; + bool RESET_PIN_TEST; + bool NOISE_TEST; + bool WEAK_SHORT_CIRCUIT_TEST; + bool UNIFORMITY_TEST; + bool CM_TEST; + + bool RAWDATA_MARGIN_TEST; + bool PANEL_DIFFER_TEST; + bool PANEL_DIFFER_UNIFORMITY_TEST; + + bool LCM_ID_TEST; + + bool TE_TEST; + bool SITO_RAWDATA_UNIFORMITY_TEST; + bool PATTERN_TEST; +}; +struct stCfg_FT5822_BasicThreshold { + BYTE FW_VER_VALUE; + BYTE Factory_ID_Number; + char Project_Code[32]; + BYTE IC_Version; + BYTE LCM_ID; + int RawDataTest_low_Min; + int RawDataTest_Low_Max; + int RawDataTest_high_Min; + int RawDataTest_high_Max; + BYTE RawDataTest_SetLowFreq; + BYTE RawDataTest_SetHighFreq; + int AdcDetect_Max; + + int SCapCbTest_OFF_Min; + int SCapCbTest_OFF_Max; + int SCapCbTest_ON_Min; + int SCapCbTest_ON_Max; + bool SCapCbTest_LetTx_Disable; + BYTE SCapCbTest_SetWaterproof_OFF; + BYTE SCapCbTest_SetWaterproof_ON; + + int SCapRawDataTest_OFF_Min; + int SCapRawDataTest_OFF_Max; + int SCapRawDataTest_ON_Min; + int SCapRawDataTest_ON_Max; + bool SCapRawDataTest_LetTx_Disable; + BYTE SCapRawDataTest_SetWaterproof_OFF; + BYTE SCapRawDataTest_SetWaterproof_ON; + bool bChannelTestMapping; + bool bChannelTestNoMapping; + BYTE ChannelNumTest_TxNum; + BYTE ChannelNumTest_RxNum; + BYTE ChannelNumTest_TxNpNum; + BYTE ChannelNumTest_RxNpNum; + BYTE ResetPinTest_RegAddr; + BYTE IntPinTest_RegAddr; + BYTE IntPinTest_TestNum; + int NoiseTest_Max; + int GloveNoiseTest_Coefficient; + int NoiseTest_Frames; + int NoiseTest_Time; + BYTE NoiseTest_SampeMode; + BYTE NoiseTest_NoiseMode; + BYTE NoiseTest_ShowTip; + BYTE NoiseTest_ShowTipAfter; + bool bNoiseTest_GloveMode; + int NoiseTest_RawdataMin; + bool bNoiseTest_FWMode; + int NoiseTest_SetFrequency; + unsigned char Set_Frequency; + bool bNoiseThreshold_Choose; + int NoiseTest_Threshold; + int NoiseTest_MinNgFrame; + int NoiseTest_Max_Value; + int WeakShortTest_CG; + int WeakShortTest_CC; + + bool Uniformity_CheckTx; + bool Uniformity_CheckRx; + bool Uniformity_CheckMinMax; + int Uniformity_Tx_Hole; + int Uniformity_Rx_Hole; + int Uniformity_MinMax_Hole; + bool CMTest_CheckMin; + bool CMTest_CheckMax; + int CMTest_MinHole; + int CMTest_MaxHole; + + int RawdataMarginTest_Min; + int RawdataMarginTest_Max; + + int PanelDifferTest_Min; + int PanelDifferTest_Max; + + bool PanelDiffer_UniformityTest_Check_Tx; + bool PanelDiffer_UniformityTest_Check_Rx; + bool PanelDiffer_UniformityTest_Check_MinMax; + int PanelDiffer_UniformityTest_Tx_Hole; + int PanelDiffer_UniformityTest_Rx_Hole; + int PanelDiffer_UniformityTest_MinMax_Hole; + + bool SITO_RawdtaUniformityTest_Check_Tx; + bool SITO_RawdtaUniformityTest_Check_Rx; + int SITO_RawdtaUniformityTest_Tx_Hole; + int SITO_RawdtaUniformityTest_Rx_Hole; + + bool bPattern00; + bool bPatternFF; + bool bPattern55; + bool bPatternAA; + bool bPatternBin; +}; +enum enumTestItem_FT5822 { + Code_FT5822_ENTER_FACTORY_MODE, + Code_FT5822_DOWNLOAD, + Code_FT5822_UPGRADE, + Code_FT5822_FACTORY_ID_TEST, + Code_FT5822_PROJECT_CODE_TEST, + Code_FT5822_FW_VERSION_TEST, + Code_FT5822_IC_VERSION_TEST, + Code_FT5822_RAWDATA_TEST, + Code_FT5822_ADCDETECT_TEST, + Code_FT5822_SCAP_CB_TEST, + Code_FT5822_SCAP_RAWDATA_TEST, + Code_FT5822_CHANNEL_NUM_TEST, + Code_FT5822_INT_PIN_TEST, + Code_FT5822_RESET_PIN_TEST, + Code_FT5822_NOISE_TEST, + Code_FT5822_WEAK_SHORT_CIRCUIT_TEST, + Code_FT5822_UNIFORMITY_TEST, + Code_FT5822_CM_TEST, + Code_FT5822_RAWDATA_MARGIN_TEST, + Code_FT5822_WRITE_CONFIG, + Code_FT5822_PANELDIFFER_TEST, + Code_FT5822_PANELDIFFER_UNIFORMITY_TEST, + Code_FT5822_LCM_ID_TEST, + Code_FT5822_JUDEG_NORMALIZE_TYPE, + Code_FT5822_TE_TEST, + Code_FT5822_SITO_RAWDATA_UNIFORMITY_TEST, + Code_FT5822_PATTERN_TEST, +}; + +#elif (FT8006_TEST) + +struct stCfg_FT8006_TestItem { + bool FW_VERSION_TEST; + bool FACTORY_ID_TEST; + bool PROJECT_CODE_TEST; + bool IC_VERSION_TEST; + bool RAWDATA_TEST; + bool CHANNEL_NUM_TEST; + bool INT_PIN_TEST; + bool RESET_PIN_TEST; + bool NOISE_TEST; + bool CB_TEST; + bool SHORT_CIRCUIT_TEST; + bool LCD_NOISE_TEST; + bool OSC60MHZ_TEST; + bool OSCTRM_TEST; + bool SNR_TEST; + bool LPWG_RAWDATA_TEST; + bool LPWG_CB_TEST; + bool LPWG_NOISE_TEST; + bool DIFFER_TEST; + bool DIFFER_UNIFORMITY_TEST; + bool DIFFER2_TEST; + +}; +struct stCfg_FT8006_BasicThreshold { + BYTE FW_VER_VALUE; + BYTE Factory_ID_Number; + char Project_Code[32]; + BYTE IC_Version; + int RawDataTest_Min; + int RawDataTest_Max; + BYTE ChannelNumTest_ChannelXNum; + BYTE ChannelNumTest_ChannelYNum; + BYTE ChannelNumTest_KeyNum; + BYTE ResetPinTest_RegAddr; + BYTE IntPinTest_RegAddr; + int NoiseTest_Coefficient; + int NoiseTest_Frames; + int NoiseTest_Time; + BYTE NoiseTest_SampeMode; + BYTE NoiseTest_NoiseMode; + BYTE NoiseTest_ShowTip; + BYTE IsDifferMode; + bool bCBTest_VA_Check; + int CbTest_Min; + int CbTest_Max; + bool bCBTest_VKey_Check; + int CbTest_Min_Vkey; + int CbTest_Max_Vkey; + int ShortCircuit_ResMin; + int iLCDNoiseTestFrame; + int iLCDNoiseTestMaxScreen; + int iLCDNoiseTestMaxFrame; + int iLCDNoiseCoefficient; + + int OSC60MHZTest_OSCMin; + int OSC60MHZTest_OSCMax; + + int OSCTRMTest_OSCMin; + int OSCTRMTest_OSCMax; + int OSCTRMTest_OSCDetMin; + int OSCTRMTest_OSCDetMax; + int SNRTest_FrameNum; + int SNRTest_Min; + + int DIFFERTest_FrameNum; + int DIFFERTest_DifferMax; + int DIFFERTest_DifferMin; + + bool DifferUniformityTest_Check_CHX; + bool DifferUniformityTest_Check_CHY; + bool DifferUniformityTest_Check_MinMax; + int DifferUniformityTest_CHX_Hole; + int DifferUniformityTest_CHY_Hole; + int DifferUniformityTest_MinMax_Hole; + + int LPWG_RawDataTest_Min; + int LPWG_RawDataTest_Max; + + bool bLPWG_CBTest_VA_Check; + int LPWG_CbTest_Min; + int LPWG_CbTest_Max; + bool bLPWG_CBTest_VKey_Check; + int LPWG_CbTest_Min_Vkey; + int LPWG_CbTest_Max_Vkey; + + int LPWG_NoiseTest_Coefficient; + int LPWG_NoiseTest_Frames; + int LPWG_NoiseTest_Time; + BYTE LPWG_NoiseTest_SampeMode; + BYTE LPWG_NoiseTest_NoiseMode; + BYTE LPWG_NoiseTest_ShowTip; + BYTE LPWG_IsDifferMode; + + int Differ2Test_Min; + int Differ2Test_Max; + +}; +enum enumTestItem_FT8006 { + Code_FT8006_ENTER_FACTORY_MODE, + Code_FT8006_DOWNLOAD, + Code_FT8006_UPGRADE, + Code_FT8006_FACTORY_ID_TEST, + Code_FT8006_PROJECT_CODE_TEST, + Code_FT8006_FW_VERSION_TEST, + Code_FT8006_IC_VERSION_TEST, + Code_FT8006_RAWDATA_TEST, + Code_FT8006_CHANNEL_NUM_TEST, + Code_FT8006_INT_PIN_TEST, + Code_FT8006_RESET_PIN_TEST, + Code_FT8006_NOISE_TEST, + Code_FT8006_CB_TEST, + Code_FT8006_WRITE_CONFIG, + Code_FT8006_SHORT_CIRCUIT_TEST, + Code_FT8006_LCD_NOISE_TEST, + + Code_FT8006_OSC60MHZ_TEST, + Code_FT8006_OSCTRM_TEST, + Code_FT8006_SNR_TEST, + Code_FT8006_DIFFER_TEST, + Code_FT8006_DIFFER_UNIFORMITY_TEST, + + Code_FT8006_LPWG_RAWDATA_TEST, + Code_FT8006_LPWG_CB_TEST, + Code_FT8006_LPWG_NOISE_TEST, + Code_FT8006_DIFFER2_TEST, +}; + +#elif (FT8736_TEST) + +struct stCfg_FT8736_TestItem { + bool FW_VERSION_TEST; + bool FACTORY_ID_TEST; + bool PROJECT_CODE_TEST; + bool IC_VERSION_TEST; + bool ICTYPE_TEST; + bool RAWDATA_TEST; + bool CHANNEL_NUM_TEST; + bool INT_PIN_TEST; + bool RESET_PIN_TEST; + bool NOISE_TEST; + bool CB_TEST; + bool SHORT_CIRCUIT_TEST; + bool OPEN_TEST; + bool CB_UNIFORMITY_TEST; + bool DIFFER_UNIFORMITY_TEST; + bool DIFFER2_UNIFORMITY_TEST; + bool LCD_NOISE_TEST; + bool CB_DECREASE_TEST; + bool VREF_DECREASE_TEST; +}; +struct stCfg_FT8736_BasicThreshold { + BYTE FW_VER_VALUE; + BYTE Factory_ID_Number; + char Project_Code[32]; + BYTE IC_Version; + bool bRawDataTest_VA_Check; + int RawDataTest_Min; + int RawDataTest_Max; + bool bRawDataTest_VKey_Check; + int RawDataTest_Min_VKey; + int RawDataTest_Max_VKey; + BYTE ChannelNumTest_ChannelXNum; + BYTE ChannelNumTest_ChannelYNum; + BYTE ChannelNumTest_KeyNum; + BYTE ResetPinTest_RegAddr; + BYTE IntPinTest_RegAddr; + int NoiseTest_Coefficient; + int NoiseTest_Frames; + int NoiseTest_Time; + BYTE NoiseTest_SampeMode; + BYTE NoiseTest_NoiseMode; + BYTE NoiseTest_ShowTip; + bool bCBTest_VA_Check; + int CbTest_Min; + int CbTest_Max; + bool bCBTest_VKey_Check; + int CbTest_Min_Vkey; + int CbTest_Max_Vkey; + + int ShortCircuit_ResMin; + + int OpenTest_CBMin; + + bool CBUniformityTest_Check_CHX; + bool CBUniformityTest_Check_CHY; + bool CBUniformityTest_Check_MinMax; + int CBUniformityTest_CHX_Hole; + int CBUniformityTest_CHY_Hole; + int CBUniformityTest_MinMax_Hole; + + bool DifferUniformityTest_Check_CHX; + bool DifferUniformityTest_Check_CHY; + bool DifferUniformityTest_Check_MinMax; + int DifferUniformityTest_CHX_Hole; + int DifferUniformityTest_CHY_Hole; + int DifferUniformityTest_MinMax_Hole; + int DeltaVol; + + bool Differ2UniformityTest_Check_CHX; + bool Differ2UniformityTest_Check_CHY; + int Differ2UniformityTest_CHX_Hole; + int Differ2UniformityTest_CHY_Hole; + int Differ2UniformityTest_Differ_Min; + int Differ2UniformityTest_Differ_Max; + + int LCDNoiseTest_FrameNum; + int LCDNoiseTest_Coefficient; + int LCDNoiseTest_Coefficient_Key; + BYTE LCDNoiseTest_NoiseMode; + + int CBDecrease_Step; + int CBDecrease_OrgMin; + int CBDecrease_OrgMax; + int CBDecrease_CalcMin; + int CBDecrease_CalcMax; + + int VRefDecrease_StepBegin; + int VRefDecrease_StepEnd; + int VRefDecrease_OrgMin; + int VRefDecrease_OrgMax; + int VRefDecrease_CalcMin; + int VRefDecrease_CalcMax; +}; + +enum enumTestItem_FT8736 { + Code_FT8736_ENTER_FACTORY_MODE, + Code_FT8736_DOWNLOAD, + Code_FT8736_UPGRADE, + Code_FT8736_FACTORY_ID_TEST, + Code_FT8736_PROJECT_CODE_TEST, + Code_FT8736_FW_VERSION_TEST, + Code_FT8736_IC_VERSION_TEST, + Code_FT8736_RAWDATA_TEST, + Code_FT8736_CHANNEL_NUM_TEST, + + Code_FT8736_INT_PIN_TEST, + Code_FT8736_RESET_PIN_TEST, + Code_FT8736_NOISE_TEST, + Code_FT8736_CB_TEST, + Code_FT8736_WRITE_CONFIG, + + Code_FT8736_SHORT_CIRCUIT_TEST, + Code_FT8736_OPEN_TEST, + Code_FT8736_CB_UNIFORMITY_TEST, + Code_FT8736_DIFFER_UNIFORMITY_TEST, + Code_FT8736_DIFFER2_UNIFORMITY_TEST, + Code_FT8736_LCD_NOISE_TEST, + Code_FT8736_CB_DECREASE_TEST, + Code_FT8736_VREF_DECREASE_TEST, + Code_FT8736_IC_TYPE_TEST, +}; + +#elif (FTE716_TEST) +struct stCfg_FTE716_TestItem { + bool FW_VERSION_TEST; + bool FACTORY_ID_TEST; + bool PROJECT_CODE_TEST; + bool IC_VERSION_TEST; + bool ICTYPE_TEST; + bool RAWDATA_TEST; + bool CHANNEL_NUM_TEST; + bool INT_PIN_TEST; + bool RESET_PIN_TEST; + bool NOISE_TEST; + bool CB_TEST; + bool SHORT_CIRCUIT_TEST; + bool OPEN_TEST; + bool CB_UNIFORMITY_TEST; + bool DIFFER_UNIFORMITY_TEST; + bool DIFFER2_UNIFORMITY_TEST; + bool LCD_NOISE_TEST; + bool GPIO_TEST; +}; +struct stCfg_FTE716_BasicThreshold { + BYTE FW_VER_VALUE; + BYTE Factory_ID_Number; + char Project_Code[32]; + bool bOri_ProjectCode; + BYTE IC_Version; + bool bRawDataTest_VA_Check; + int RawDataTest_Min; + int RawDataTest_Max; + bool bRawDataTest_VKey_Check; + int RawDataTest_Min_VKey; + int RawDataTest_Max_VKey; + BYTE ChannelNumTest_ChannelXNum; + BYTE ChannelNumTest_ChannelYNum; + BYTE ChannelNumTest_KeyNum; + BYTE ResetPinTest_RegAddr; + BYTE IntPinTest_RegAddr; + int NoiseTest_Coefficient; + int NoiseTest_Frames; + int NoiseTest_Time; + BYTE NoiseTest_SampeMode; + BYTE NoiseTest_NoiseMode; + BYTE NoiseTest_ShowTip; + bool bCBTest_VA_Check; + int CbTest_Min; + int CbTest_Max; + bool bCBTest_VKey_Check; + int CbTest_Min_Vkey; + int CbTest_Max_Vkey; + + int ShortCircuit_ResMin; + + int OpenTest_CBMin; + bool OpenTest_Check_K1; + int OpenTest_K1Threshold; + bool OpenTest_Check_K2; + int OpenTest_K2Threshold; + + bool CBUniformityTest_Check_CHX; + bool CBUniformityTest_Check_CHY; + bool CBUniformityTest_Check_MinMax; + int CBUniformityTest_CHX_Hole; + int CBUniformityTest_CHY_Hole; + int CBUniformityTest_MinMax_Hole; + + bool DifferUniformityTest_Check_CHX; + bool DifferUniformityTest_Check_CHY; + bool DifferUniformityTest_Check_MinMax; + int DifferUniformityTest_CHX_Hole; + int DifferUniformityTest_CHY_Hole; + int DifferUniformityTest_MinMax_Hole; + int DeltaVol; + + bool Differ2UniformityTest_Check_CHX; + bool Differ2UniformityTest_Check_CHY; + int Differ2UniformityTest_CHX_Hole; + int Differ2UniformityTest_CHY_Hole; + int Differ2UniformityTest_Differ_Min; + int Differ2UniformityTest_Differ_Max; + + int LCDNoiseTest_FrameNum; + int LCDNoiseTest_Coefficient; + BYTE LCDNoiseTest_NoiseMode; +}; + +enum enumTestItem_FTE716 { + Code_FTE716_ENTER_FACTORY_MODE, + Code_FTE716_DOWNLOAD, + Code_FTE716_UPGRADE, + Code_FTE716_FACTORY_ID_TEST, + Code_FTE716_PROJECT_CODE_TEST, + Code_FTE716_FW_VERSION_TEST, + Code_FTE716_IC_VERSION_TEST, + Code_FTE716_RAWDATA_TEST, + Code_FTE716_CHANNEL_NUM_TEST, + + Code_FTE716_INT_PIN_TEST, + Code_FTE716_RESET_PIN_TEST, + Code_FTE716_NOISE_TEST, + Code_FTE716_CB_TEST, + Code_FTE716_WRITE_CONFIG, + + Code_FTE716_SHORT_CIRCUIT_TEST, + Code_FTE716_OPEN_TEST, + Code_FTE716_CB_UNIFORMITY_TEST, + Code_FTE716_DIFFER_UNIFORMITY_TEST, + Code_FTE716_DIFFER2_UNIFORMITY_TEST, + Code_FTE716_LCD_NOISE_TEST, + Code_FTE716_GPIO_TEST, + Code_FTE716_IC_TYPE_TEST, +}; + +#elif (FTE736_TEST) + +struct stCfg_FTE736_TestItem { + bool FW_VERSION_TEST; + bool FACTORY_ID_TEST; + bool PROJECT_CODE_TEST; + bool IC_VERSION_TEST; + bool ICTYPE_TEST; + bool RAWDATA_TEST; + bool CHANNEL_NUM_TEST; + bool INT_PIN_TEST; + bool RESET_PIN_TEST; + bool NOISE_TEST; + bool CB_TEST; + bool SHORT_CIRCUIT_TEST; + bool OPEN_TEST; + bool CB_UNIFORMITY_TEST; + bool DIFFER_UNIFORMITY_TEST; + bool DIFFER2_UNIFORMITY_TEST; + bool LCD_NOISE_TEST; + bool CB_DECREASE_TEST; + bool VREF_DECREASE_TEST; +}; +struct stCfg_FTE736_BasicThreshold { + BYTE FW_VER_VALUE; + BYTE Factory_ID_Number; + char Project_Code[32]; + BYTE IC_Version; + bool bRawDataTest_VA_Check; + int RawDataTest_Min; + int RawDataTest_Max; + bool bRawDataTest_VKey_Check; + int RawDataTest_Min_VKey; + int RawDataTest_Max_VKey; + BYTE ChannelNumTest_ChannelXNum; + BYTE ChannelNumTest_ChannelYNum; + BYTE ChannelNumTest_KeyNum; + BYTE ResetPinTest_RegAddr; + BYTE IntPinTest_RegAddr; + int NoiseTest_Coefficient; + int NoiseTest_Frames; + int NoiseTest_Time; + BYTE NoiseTest_SampeMode; + BYTE NoiseTest_NoiseMode; + BYTE NoiseTest_ShowTip; + bool bCBTest_VA_Check; + int CbTest_Min; + int CbTest_Max; + bool bCBTest_VKey_Check; + int CbTest_Min_Vkey; + int CbTest_Max_Vkey; + + int ShortCircuit_ResMin; + + int OpenTest_CBMin; + + bool CBUniformityTest_Check_CHX; + bool CBUniformityTest_Check_CHY; + bool CBUniformityTest_Check_MinMax; + int CBUniformityTest_CHX_Hole; + int CBUniformityTest_CHY_Hole; + int CBUniformityTest_MinMax_Hole; + + bool DifferUniformityTest_Check_CHX; + bool DifferUniformityTest_Check_CHY; + bool DifferUniformityTest_Check_MinMax; + int DifferUniformityTest_CHX_Hole; + int DifferUniformityTest_CHY_Hole; + int DifferUniformityTest_MinMax_Hole; + int DeltaVol; + + bool Differ2UniformityTest_Check_CHX; + bool Differ2UniformityTest_Check_CHY; + int Differ2UniformityTest_CHX_Hole; + int Differ2UniformityTest_CHY_Hole; + int Differ2UniformityTest_Differ_Min; + int Differ2UniformityTest_Differ_Max; + + int LCDNoiseTest_FrameNum; + int LCDNoiseTest_Coefficient; + int LCDNoiseTest_Coefficient_Key; + BYTE LCDNoiseTest_NoiseMode; + + int CBDecrease_Step; + int CBDecrease_OrgMin; + int CBDecrease_OrgMax; + int CBDecrease_CalcMin; + int CBDecrease_CalcMax; + + int VRefDecrease_StepBegin; + int VRefDecrease_StepEnd; + int VRefDecrease_OrgMin; + int VRefDecrease_OrgMax; + int VRefDecrease_CalcMin; + int VRefDecrease_CalcMax; +}; + +enum enumTestItem_FTE736 { + Code_FTE736_ENTER_FACTORY_MODE, + Code_FTE736_DOWNLOAD, + Code_FTE736_UPGRADE, + Code_FTE736_FACTORY_ID_TEST, + Code_FTE736_PROJECT_CODE_TEST, + Code_FTE736_FW_VERSION_TEST, + Code_FTE736_IC_VERSION_TEST, + Code_FTE736_RAWDATA_TEST, + Code_FTE736_CHANNEL_NUM_TEST, + + Code_FTE736_INT_PIN_TEST, + Code_FTE736_RESET_PIN_TEST, + Code_FTE736_NOISE_TEST, + Code_FTE736_CB_TEST, + Code_FTE736_WRITE_CONFIG, + + Code_FTE736_SHORT_CIRCUIT_TEST, + Code_FTE736_OPEN_TEST, + Code_FTE736_CB_UNIFORMITY_TEST, + Code_FTE736_DIFFER_UNIFORMITY_TEST, + Code_FTE736_DIFFER2_UNIFORMITY_TEST, + Code_FTE736_LCD_NOISE_TEST, + Code_FTE736_CB_DECREASE_TEST, + Code_FTE736_VREF_DECREASE_TEST, + Code_FTE736_IC_TYPE_TEST, +}; + +#elif(FT8606_TEST) + +struct stCfg_FT8606_TestItem { + bool FW_VERSION_TEST; + bool FACTORY_ID_TEST; + bool PROJECT_CODE_TEST; + bool IC_VERSION_TEST; + bool RAWDATA_TEST; + bool CHANNEL_NUM_TEST; + bool INT_PIN_TEST; + bool RESET_PIN_TEST; + bool NOISE_TEST; + bool CB_TEST; + bool SHORT_CIRCUIT_TEST; + bool LCD_NOISE_TEST; + bool OSC60MHZ_TEST; + bool OSCTRM_TEST; + bool IVSN_TEST; +}; +struct stCfg_FT8606_BasicThreshold { + BYTE FW_VER_VALUE; + BYTE Factory_ID_Number; + char Project_Code[32]; + BYTE IC_Version; + int RawDataTest_Min; + int RawDataTest_Max; + BYTE ChannelNumTest_ChannelXNum; + BYTE ChannelNumTest_ChannelYNum; + BYTE ChannelNumTest_KeyNum; + BYTE ResetPinTest_RegAddr; + BYTE IntPinTest_RegAddr; + int NoiseTest_Coefficient; + int NoiseTest_Frames; + int NoiseTest_Time; + BYTE NoiseTest_SampeMode; + BYTE NoiseTest_NoiseMode; + BYTE NoiseTest_ShowTip; + int CbTest_Min; + int CbTest_Max; + int ShortTest_Max; + int ShortTest_K2Value; + bool ShortTest_Tip; + bool IsDifferMode; + int iLCDNoiseTestFrame; + int iLCDNoiseTestMaxScreen; + int iLCDNoiseTestMaxFrame; + int iLCDNoiseCoefficient; + + int OSC60MHZTest_OSCMin; + int OSC60MHZTest_OSCMax; + + int OSCTRMTest_OSCMin; + int OSCTRMTest_OSCMax; + int OSCTRMTest_OSCDetMin; + int OSCTRMTest_OSCDetMax; +}; + + +enum enumTestItem_FT8606 { + Code_FT8606_ENTER_FACTORY_MODE, + Code_FT8606_DOWNLOAD, + Code_FT8606_UPGRADE, + Code_FT8606_FACTORY_ID_TEST, + Code_FT8606_PROJECT_CODE_TEST, + Code_FT8606_FW_VERSION_TEST, + Code_FT8606_IC_VERSION_TEST, + Code_FT8606_RAWDATA_TEST, + Code_FT8606_CHANNEL_NUM_TEST, + + Code_FT8606_INT_PIN_TEST, + Code_FT8606_RESET_PIN_TEST, + Code_FT8606_NOISE_TEST, + Code_FT8606_CB_TEST, + Code_FT8606_WRITE_CONFIG, + + Code_FT8606_SHORT_CIRCUIT_TEST, + Code_FT8606_LCD_NOISE_TEST, + Code_FT8606_OSC60MHZ_TEST, + Code_FT8606_OSCTRM_TEST, + Code_FT8606_IVSN_TEST, +}; + +#elif(FT3C47_TEST) + +struct stCfg_FT3C47_TestItem { + bool FW_VERSION_TEST; + bool FACTORY_ID_TEST; + bool PROJECT_CODE_TEST; + bool IC_VERSION_TEST; + bool RAWDATA_TEST; + bool ADC_DETECT_TEST; + bool SCAP_CB_TEST; + bool SCAP_RAWDATA_TEST; + bool CHANNEL_NUM_TEST; + bool INT_PIN_TEST; + bool RESET_PIN_TEST; + bool NOISE_TEST; + bool WEAK_SHORT_CIRCUIT_TEST; + bool UNIFORMITY_TEST; + bool CM_TEST; + + bool RAWDATA_MARGIN_TEST; + bool PANEL_DIFFER_TEST; + bool PANEL_DIFFER_UNIFORMITY_TEST; + + bool LCM_ID_TEST; + + bool TE_TEST; + bool SITO_RAWDATA_UNIFORMITY_TEST; + bool PATTERN_TEST; + + bool FORCETOUCH_CHANNEL_NUM_TEST; + bool FORCETOUCH_RAWDATA_TEST; + bool FORCETOUCH_CB_TEST; + bool FORCETOUCH_WEAK_SHORT_CIRCUIT_TEST; + bool FORCETOUCH_FLATNESS_TEST; +}; + +struct stCfg_FT3C47_BasicThreshold { + BYTE FW_VER_VALUE; + BYTE Factory_ID_Number; + char Project_Code[32]; + BYTE IC_Version; + BYTE LCM_ID; + int RawDataTest_low_Min; + int RawDataTest_Low_Max; + int RawDataTest_high_Min; + int RawDataTest_high_Max; + BYTE RawDataTest_SetLowFreq; + BYTE RawDataTest_SetHighFreq; + int AdcDetect_Max; + int SCapCbTest_OFF_Min; + int SCapCbTest_OFF_Max; + int SCapCbTest_ON_Min; + int SCapCbTest_ON_Max; + bool SCapCbTest_LetTx_Disable; + BYTE SCapCbTest_SetWaterproof_OFF; + BYTE SCapCbTest_SetWaterproof_ON; + int SCapRawDataTest_OFF_Min; + int SCapRawDataTest_OFF_Max; + int SCapRawDataTest_ON_Min; + int SCapRawDataTest_ON_Max; + bool SCapRawDataTest_LetTx_Disable; + BYTE SCapRawDataTest_SetWaterproof_OFF; + BYTE SCapRawDataTest_SetWaterproof_ON; + bool bChannelTestMapping; + bool bChannelTestNoMapping; + BYTE ChannelNumTest_TxNum; + BYTE ChannelNumTest_RxNum; + BYTE ChannelNumTest_TxNpNum; + BYTE ChannelNumTest_RxNpNum; + BYTE ResetPinTest_RegAddr; + BYTE IntPinTest_RegAddr; + BYTE IntPinTest_TestNum; + int NoiseTest_Max; + int GloveNoiseTest_Coefficient; + int NoiseTest_Frames; + int NoiseTest_Time; + BYTE NoiseTest_SampeMode; + BYTE NoiseTest_NoiseMode; + BYTE NoiseTest_ShowTip; + bool bNoiseTest_GloveMode; + int NoiseTest_RawdataMin; + unsigned char Set_Frequency; + bool bNoiseThreshold_Choose; + int NoiseTest_Threshold; + int NoiseTest_MinNgFrame; + + int WeakShortTest_CG; + int WeakShortTest_CC; + int WeakShortTest_CC_Rsen; + bool WeakShortTest_CapShortTest; + + bool Uniformity_CheckTx; + bool Uniformity_CheckRx; + bool Uniformity_CheckMinMax; + int Uniformity_Tx_Hole; + int Uniformity_Rx_Hole; + int Uniformity_MinMax_Hole; + bool CMTest_CheckMin; + bool CMTest_CheckMax; + int CMTest_MinHole; + int CMTest_MaxHole; + + int RawdataMarginTest_Min; + int RawdataMarginTest_Max; + + int PanelDifferTest_Min; + int PanelDifferTest_Max; + + bool PanelDiffer_UniformityTest_Check_Tx; + bool PanelDiffer_UniformityTest_Check_Rx; + bool PanelDiffer_UniformityTest_Check_MinMax; + int PanelDiffer_UniformityTest_Tx_Hole; + int PanelDiffer_UniformityTest_Rx_Hole; + int PanelDiffer_UniformityTest_MinMax_Hole; + + bool SITO_RawdtaUniformityTest_Check_Tx; + bool SITO_RawdtaUniformityTest_Check_Rx; + int SITO_RawdtaUniformityTest_Tx_Hole; + int SITO_RawdtaUniformityTest_Rx_Hole; + + bool bPattern00; + bool bPatternFF; + bool bPattern55; + bool bPatternAA; + bool bPatternBin; + + int ForceTouch_ChannelNumTest_ChannelNum; + + int ForceTouch_SCapRawDataTest_OFF_Min; + int ForceTouch_SCapRawDataTest_OFF_Max; + int ForceTouch_SCapRawDataTest_ON_Min; + int ForceTouch_SCapRawDataTest_ON_Max; + BYTE ForceTouch_SCapRawDataTest_SetWaterproof_OFF; + BYTE ForceTouch_SCapRawDataTest_SetWaterproof_ON; + + int ForceTouch_SCapCbTest_OFF_Min; + int ForceTouch_SCapCbTest_OFF_Max; + int ForceTouch_SCapCbTest_ON_Min; + int ForceTouch_SCapCbTest_ON_Max; + BYTE ForceTouch_SCapCBTest_SetWaterproof_OFF; + BYTE ForceTouch_SCapCBTest_SetWaterproof_ON; + + int ForceTouch_WeakShortTest_CG; + int ForceTouch_WeakShortTest_CC; + bool bForceTouch_WeakShortTest_CapShortTest; + + int ForceTouch_FlatnessTest_Differ_Threshold; + int ForceTouch_FlatnessTest_Differ_Coefficient; + bool ForceTouch_FlatnessTest_Differ_Threshold_Check; + bool ForceTouch_FlatnessTest_Differ_Coefficient_Check; + +}; +enum enumTestItem_FT3C47 { + Code_FT3C47_ENTER_FACTORY_MODE, + Code_FT3C47_DOWNLOAD, + Code_FT3C47_UPGRADE, + Code_FT3C47_FACTORY_ID_TEST, + Code_FT3C47_PROJECT_CODE_TEST, + Code_FT3C47_FW_VERSION_TEST, + Code_FT3C47_IC_VERSION_TEST, + Code_FT3C47_RAWDATA_TEST, + Code_FT3C47_ADCDETECT_TEST, + Code_FT3C47_SCAP_CB_TEST, + Code_FT3C47_SCAP_RAWDATA_TEST, + Code_FT3C47_CHANNEL_NUM_TEST, + Code_FT3C47_INT_PIN_TEST, + Code_FT3C47_RESET_PIN_TEST, + Code_FT3C47_NOISE_TEST, + Code_FT3C47_WEAK_SHORT_CIRCUIT_TEST, + Code_FT3C47_UNIFORMITY_TEST, + Code_FT3C47_CM_TEST, + Code_FT3C47_RAWDATA_MARGIN_TEST, + Code_FT3C47_WRITE_CONFIG, + Code_FT3C47_PANELDIFFER_TEST, + Code_FT3C47_PANELDIFFER_UNIFORMITY_TEST, + Code_FT3C47_LCM_ID_TEST, + Code_FT3C47_JUDEG_NORMALIZE_TYPE, + Code_FT3C47_TE_TEST, + Code_FT3C47_SITO_RAWDATA_UNIFORMITY_TEST, + Code_FT3C47_PATTERN_TEST, + + Code_FT3C47_GPIO_TEST, + Code_FT3C47_LCD_NOISE_TEST, + Code_FT3C47_FORCE_TOUCH_CHANNEL_NUM_TEST, + Code_FT3C47_FORCE_TOUCH_SCAP_RAWDATA_TEST, + Code_FT3C47_FORCE_TOUCH_SCAP_CB_TEST, + Code_FT3C47_FORCE_TOUCH_WEAK_SHORT_CIRCUIT_TEST, + Code_FT3C47_FORCE_TOUCH_FLATNESS_TEST, +}; + + +#endif + + diff --git a/drivers/input/touchscreen/FT5346/focaltech_test/src/Makefile b/drivers/input/touchscreen/FT5346/focaltech_test/src/Makefile new file mode 100644 index 0000000000000..f5d4ed7c1e77d --- /dev/null +++ b/drivers/input/touchscreen/FT5346/focaltech_test/src/Makefile @@ -0,0 +1,12 @@ +#drivers/input/touchscreen/mediatek/focaltech_ts/focaltech_test/src +# +# Makefile for test module +# +# Linux driver folder + + +obj-y += focaltech_test.o +obj-y += focaltech_test_main.o +obj-y += focaltech_test_ini.o +obj-y += focaltech_test_global.o +obj-y += focaltech_test_detail_threshold.o diff --git a/drivers/input/touchscreen/FT5346/focaltech_test/src/focaltech_test.c b/drivers/input/touchscreen/FT5346/focaltech_test/src/focaltech_test.c new file mode 100644 index 0000000000000..c0b5cc1047f7c --- /dev/null +++ b/drivers/input/touchscreen/FT5346/focaltech_test/src/focaltech_test.c @@ -0,0 +1,534 @@ +/* + * + * FocalTech TouchScreen driver. + * + * Copyright (c) 2010-2016, FocalTech Systems, Ltd., all rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +/************************************************************************ +* +* File Name: focaltech_test.c +* +* Author: Software Department, FocalTech +* +* Created: 2016-08-01 +* +* Modify: +* +* Abstract: create char device and proc node for the comm between APK and TP +* +************************************************************************/ + +/******************************************************************************* +* Included header files +*******************************************************************************/ +#include +#include +#include +#include +#include + +#include +#include + +#include +#include "../include/focaltech_test_main.h" +#include "../include/focaltech_test_ini.h" + + +/******************************************************************************* +* Private constant and macro definitions using #define +*******************************************************************************/ + +#define IC_TEST_VERSION "Test version: V1.0.0--2016-08-01, (sync version of FT_MultipleTest: V4.0.0.0 ------ 2016-07-18)" + +#define FTS_INI_FILE_PATH "/system/etc/" +#define FTS_CSV_FILE_PATH "/storage/" + +#define FTS_TEST_BUFFER_SIZE 80*1024 +#define FTS_TEST_PRINT_SIZE 128 +/******************************************************************************* +* Private enumerations, structures and unions using typedef +*******************************************************************************/ + + +/******************************************************************************* +* Static variables +*******************************************************************************/ + +/******************************************************************************* +* Global variable or extern global variabls/functions +*******************************************************************************/ + + +/******************************************************************************* +* Static function prototypes +*******************************************************************************/ +static int fts_test_get_ini_size(char *config_name); +static int fts_test_read_ini_data(char *config_name, char *config_buf); +static int fts_test_save_test_data(char *file_name, char *data_buf, int iLen); +static int fts_test_get_testparam_from_ini(char *config_name); + +/******************************************************************************* +* functions body +*******************************************************************************/ +extern struct i2c_client *fts_i2c_client; +extern void disable_irq(unsigned int irq); +extern void enable_irq(unsigned int irq); + +static DEFINE_MUTEX(fts_mutex); +static int fts_test_i2c_read(unsigned char *writebuf, int writelen, unsigned char *readbuf, int readlen) +{ + int ret = -1; + if (writelen > 0) { + struct i2c_msg msgs[] = { + { + .addr = fts_i2c_client->addr, + .flags = 0, + .len = writelen, + .buf = writebuf, + }, + { + .addr = fts_i2c_client->addr, + .flags = I2C_M_RD, + .len = readlen, + .buf = readbuf, + }, + }; + ret = i2c_transfer(fts_i2c_client->adapter, msgs, 2); + if (ret < 0) + dev_err(&fts_i2c_client->dev, "%s: i2c read error.\n", __func__); + } else { + struct i2c_msg msgs[] = { + { + .addr = fts_i2c_client->addr, + .flags = I2C_M_RD, + .len = readlen, + .buf = readbuf, + }, + }; + ret = i2c_transfer(fts_i2c_client->adapter, msgs, 1); + if (ret < 0) + dev_err(&fts_i2c_client->dev, "%s:i2c read error.\n", __func__); + } + + return ret; + +} + +static int fts_test_i2c_write(unsigned char *writebuf, int writelen) +{ + int ret = -1; + + struct i2c_msg msgs[] = { + { + .addr = fts_i2c_client->addr, + .flags = 0, + .len = writelen, + .buf = writebuf, + }, + }; + ret = i2c_transfer(fts_i2c_client->adapter, msgs, 1); + if (ret < 0) + dev_err(&fts_i2c_client->dev, "%s: i2c write error.\n", __func__); + + return ret; +} + + +static int fts_test_get_ini_size(char *config_name) +{ + struct file *pfile = NULL; + struct inode *inode = NULL; + + off_t fsize = 0; + char filepath[128]; + + FTS_TEST_FUNC_ENTER(); + + memset(filepath, 0, sizeof(filepath)); + sprintf(filepath, "%s%s", FTS_INI_FILE_PATH, config_name); + + if (NULL == pfile) + pfile = filp_open(filepath, O_RDONLY, 0); + + if (IS_ERR(pfile)) { + FTS_TEST_ERROR("error occured while opening file %s.", filepath); + return -EIO; + } + + inode = pfile->f_dentry->d_inode; + + fsize = inode->i_size; + filp_close(pfile, NULL); + + FTS_TEST_FUNC_ENTER(); + + return fsize; +} + + +static int fts_test_read_ini_data(char *config_name, char *config_buf) +{ + struct file *pfile = NULL; + struct inode *inode = NULL; + + off_t fsize = 0; + char filepath[128]; + loff_t pos = 0; + mm_segment_t old_fs; + + FTS_TEST_FUNC_ENTER(); + + memset(filepath, 0, sizeof(filepath)); + sprintf(filepath, "%s%s", FTS_INI_FILE_PATH, config_name); + if (NULL == pfile) { + pfile = filp_open(filepath, O_RDONLY, 0); + } + if (IS_ERR(pfile)) { + FTS_TEST_ERROR("error occured while opening file %s.", filepath); + return -EIO; + } + + inode = pfile->f_dentry->d_inode; + + fsize = inode->i_size; + old_fs = get_fs(); + set_fs(KERNEL_DS); + pos = 0; + vfs_read(pfile, config_buf, fsize, &pos); + filp_close(pfile, NULL); + set_fs(old_fs); + + FTS_TEST_FUNC_EXIT(); + return 0; +} + + +static int fts_test_save_test_data(char *file_name, char *data_buf, int iLen) +{ + struct file *pfile = NULL; + + char filepath[128]; + loff_t pos; + mm_segment_t old_fs; + + FTS_TEST_FUNC_ENTER(); + + memset(filepath, 0, sizeof(filepath)); + sprintf(filepath, "%s%s", FTS_CSV_FILE_PATH, file_name); + if (NULL == pfile) { + pfile = filp_open(filepath, O_CREAT|O_RDWR, 0); + } + if (IS_ERR(pfile)) { + FTS_TEST_ERROR("error occured while opening file %s.", filepath); + return -EIO; + } + + old_fs = get_fs(); + set_fs(KERNEL_DS); + pos = 0; + vfs_write(pfile, data_buf, iLen, &pos); + filp_close(pfile, NULL); + set_fs(old_fs); + + FTS_TEST_FUNC_EXIT(); + return 0; +} + + +static int fts_test_get_testparam_from_ini(char *config_name) +{ + char *pcfiledata = NULL; + int ret = 0; + int inisize = 0; + + FTS_TEST_FUNC_ENTER(); + + inisize = fts_test_get_ini_size(config_name); + FTS_TEST_DBG("ini_size = %d ", inisize); + if (inisize <= 0) { + FTS_TEST_ERROR("%s ERROR:Get firmware size failed", __func__); + return -EIO; + } + + pcfiledata = fts_malloc(inisize + 1); + if (NULL == pcfiledata) { + FTS_TEST_ERROR("fts_malloc failed in function:%s", __func__); + return -EPERM; + } + + memset(pcfiledata, 0, inisize + 1); + + if (fts_test_read_ini_data(config_name, pcfiledata)) { + FTS_TEST_ERROR(" - ERROR: fts_test_read_ini_data failed"); + fts_free(pcfiledata); + pcfiledata = NULL; + + return -EIO; + } else { + FTS_TEST_DBG("fts_test_read_ini_data successful"); + } + + ret = set_param_data(pcfiledata); + + fts_free(pcfiledata); + pcfiledata = NULL; + + FTS_TEST_FUNC_EXIT(); + + if (ret < 0) + return ret; + + return 0; +} + + + + +static int fts_test_entry(char *ini_file_name, char *bufdest, ssize_t *pinumread) +{ + /* place holder for future use */ + char cfgname[128]; + char *testdata = NULL; + char *printdata = NULL; + int iTestDataLen = 0; + int ret = 0; + int icycle = 0, i = 0; + int print_index = 0; + int test_result = -1; + + FTS_TEST_FUNC_ENTER(); + FTS_TEST_DBG("ini_file_name:%s.", ini_file_name); + /*Used to obtain the test data stored in the library, pay attention to the size of the distribution space.*/ + FTS_TEST_DBG("Allocate memory, size: %d", FTS_TEST_BUFFER_SIZE); + testdata = fts_malloc(FTS_TEST_BUFFER_SIZE); + if (NULL == testdata) { + FTS_TEST_ERROR("fts_malloc failed in function:%s", __func__); + return -EPERM; + } + printdata = fts_malloc(FTS_TEST_PRINT_SIZE); + if (NULL == printdata) { + FTS_TEST_ERROR("fts_malloc failed in function:%s", __func__); + return -EPERM; + } + /*Initialize the platform related I2C read and write functions*/ + + init_i2c_write_func(fts_test_i2c_write); + init_i2c_read_func(fts_test_i2c_read); + + /*Initialize pointer memory*/ + ret = focaltech_test_main_init(); + if (ret < 0) { + FTS_TEST_ERROR("focaltech_test_main_init() error."); + goto TEST_ERR; + } + + /*Read parse configuration file*/ + memset(cfgname, 0, sizeof(cfgname)); + sprintf(cfgname, "%s", ini_file_name); + FTS_TEST_DBG("ini_file_name = %s", cfgname); + + fts_test_funcs(); + + if (fts_test_get_testparam_from_ini(cfgname) < 0) { + FTS_TEST_ERROR("get testparam from ini failure"); + goto TEST_ERR; + } + + /*Start testing according to the test configuration*/ + if (true == start_test_tp()) { + + FTS_TEST_INFO("tp test pass"); + test_result = 0; + } + + else { + + FTS_TEST_INFO("tp test failure"); + test_result = -1; + } + + + /*Gets the number of tests in the test library and saves it*/ + iTestDataLen = get_test_data(testdata); + + + icycle = 0; + /*Print test data packets */ + FTS_TEST_DBG("print test data: \n"); + for (i = 0; i < iTestDataLen; i++) { + if (('\0' == testdata[i]) + || (icycle == FTS_TEST_PRINT_SIZE - 2) + || (i == iTestDataLen-1) + ) { + if (icycle == 0) { + print_index++; + } else { + memcpy(printdata, testdata + print_index, icycle); + printdata[FTS_TEST_PRINT_SIZE-1] = '\0'; + FTS_TEST_DBG("%s", printdata); + print_index += icycle; + icycle = 0; + } + } else { + icycle++; + } + } + FTS_TEST_DBG("\n"); + + + + fts_test_save_test_data("testdata.csv", testdata, iTestDataLen); + fts_test_save_test_data("testresult.txt", TestResult, TestResultLen); + + + /*Release memory */ + focaltech_test_main_exit(); + + + + if (NULL != testdata) + fts_free(testdata); + if (NULL != printdata) + fts_free(printdata); + + FTS_TEST_FUNC_EXIT(); + + return test_result; + +TEST_ERR: + if (NULL != testdata) + fts_free(testdata); + if (NULL != printdata) + fts_free(printdata); + + FTS_TEST_FUNC_EXIT(); + + return -EPERM; +} + +/************************************************************************ +* Name: fts_test_show +* Brief: no +* Input: device, device attribute, char buf +* Output: no +* Return: EPERM +***********************************************************************/ +static ssize_t fts_test_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + return -EPERM; +} + +/************************************************************************ +* Name: fts_test_store +* Brief: upgrade from app.bin +* Input: device, device attribute, char buf, char count +* Output: no +* Return: char count +***********************************************************************/ +static ssize_t fts_test_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) +{ + char fwname[128] = {0}; + struct i2c_client *client = fts_i2c_client; + char *bufdest = NULL; + ssize_t pinumread = 0; + + FTS_TEST_FUNC_ENTER(); + + memset(fwname, 0, sizeof(fwname)); + sprintf(fwname, "%s", buf); + fwname[count-1] = '\0'; + FTS_TEST_DBG("fwname:%s.", fwname); + mutex_lock(&fts_mutex); + + + disable_irq(client->irq); + +#if defined(FTS_ESDCHECK_EN) && (FTS_ESDCHECK_EN) + fts_esdcheck_switch(DISABLE); +#endif + + fts_test_entry("ft5346_ds.ini", bufdest, &pinumread); + +#if defined(FTS_ESDCHECK_EN) && (FTS_ESDCHECK_EN) + fts_esdcheck_switch(ENABLE); +#endif + + enable_irq(client->irq); + mutex_unlock(&fts_mutex); + + + FTS_TEST_FUNC_EXIT(); + + return count; +} +/* upgrade from app.bin +* example:echo "***.ini" > fts_test +*/ +static DEVICE_ATTR(fts_test, S_IRUGO|S_IWUSR, fts_test_show, fts_test_store); + +/* add your attr in here*/ +static struct attribute *fts_test_attributes[] = { + &dev_attr_fts_test.attr, + NULL +}; + +static struct attribute_group fts_test_attribute_group = { + .attrs = fts_test_attributes +}; + + +int fts_test_init(struct i2c_client *client) +{ + int err = 0; + + FTS_TEST_FUNC_ENTER(); + + FTS_TEST_INFO("[focal] %s ", IC_TEST_VERSION); + + + err = sysfs_create_group(&client->dev.kobj, &fts_test_attribute_group); + if (0 != err) { + FTS_TEST_ERROR("[focal] %s() - ERROR: sysfs_create_group() failed.", __func__); + sysfs_remove_group(&client->dev.kobj, &fts_test_attribute_group); + return -EIO; + } else { + FTS_TEST_DBG("[focal] %s() - sysfs_create_group() succeeded.", __func__); + } + + FTS_TEST_FUNC_EXIT(); + + return err; +} +int fts_test_exit(struct i2c_client *client) +{ + FTS_TEST_FUNC_ENTER(); + + sysfs_remove_group(&client->dev.kobj, &fts_test_attribute_group); + + FTS_TEST_FUNC_EXIT(); + + return 0; +} + +int fts_open_short_test(char *ini_file_name, char *bufdest, ssize_t *pinumread) +{ + return fts_test_entry(ini_file_name, bufdest, pinumread); +} + + + +EXPORT_SYMBOL(fts_open_short_test); + diff --git a/drivers/input/touchscreen/FT5346/focaltech_test/src/focaltech_test_detail_threshold.c b/drivers/input/touchscreen/FT5346/focaltech_test/src/focaltech_test_detail_threshold.c new file mode 100644 index 0000000000000..2006819e915dc --- /dev/null +++ b/drivers/input/touchscreen/FT5346/focaltech_test/src/focaltech_test_detail_threshold.c @@ -0,0 +1,2144 @@ +/************************************************************************ +* Copyright (C) 2012-2015, Focaltech Systems (R)£¬All Rights Reserved. +* Copyright (C) 2018 XiaoMi, Inc. +* +* File Name: focaltech_test_detail_threshold.c +* +* Author: Software Development Team, AE +* +* Created: 2016-08-01 +* +* Abstract: Set Detail Threshold for all IC +* +************************************************************************/ +#include +#include +#include + +#include "../include/focaltech_test_ini.h" +#include "../include/focaltech_test_detail_threshold.h" +#include "../include/focaltech_test_main.h" +#include "../../focaltech_global/focaltech_ic_table.h" + + +struct stCfg_MCap_DetailThreshold g_stCfg_MCap_DetailThreshold; +struct stCfg_SCap_DetailThreshold g_stCfg_SCap_DetailThreshold; +struct stCfg_Incell_DetailThreshold g_stCfg_Incell_DetailThreshold; + +void set_max_channel_num(void) +{ + + FTS_TEST_FUNC_ENTER(); + switch (g_ScreenSetParam.iSelectedIC>>4) { + case IC_FT5822>>4: + case IC_FT8006>>4: + case IC_FTE716>>4: + g_ScreenSetParam.iUsedMaxTxNum = TX_NUM_MAX; + g_ScreenSetParam.iUsedMaxRxNum = RX_NUM_MAX; + break; + default: + g_ScreenSetParam.iUsedMaxTxNum = 30; + g_ScreenSetParam.iUsedMaxRxNum = 30; + break; + } + + FTS_TEST_DBG("MaxTxNum = %d, MaxRxNum = %d. ", g_ScreenSetParam.iUsedMaxTxNum, g_ScreenSetParam.iUsedMaxRxNum); + + FTS_TEST_FUNC_EXIT(); + +} + +int malloc_struct_DetailThreshold(void) +{ + FTS_TEST_FUNC_ENTER(); + + + g_stCfg_MCap_DetailThreshold.InvalidNode = (unsigned char (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(unsigned char)); + if (NULL == g_stCfg_MCap_DetailThreshold.InvalidNode) + goto ERR; + + g_stCfg_MCap_DetailThreshold.InvalidNode_SC = (unsigned char (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(unsigned char)); + if (NULL == g_stCfg_MCap_DetailThreshold.InvalidNode_SC) + goto ERR; + + g_stCfg_MCap_DetailThreshold.RawDataTest_Min = (int (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == g_stCfg_MCap_DetailThreshold.RawDataTest_Min) + goto ERR; + + g_stCfg_MCap_DetailThreshold.RawDataTest_Max = (int (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == g_stCfg_MCap_DetailThreshold.RawDataTest_Max) + goto ERR; + + g_stCfg_MCap_DetailThreshold.RawDataTest_Low_Min = (int (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == g_stCfg_MCap_DetailThreshold.RawDataTest_Low_Min) + goto ERR; + + g_stCfg_MCap_DetailThreshold.RawDataTest_Low_Max = (int (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == g_stCfg_MCap_DetailThreshold.RawDataTest_Low_Max) + goto ERR; + + g_stCfg_MCap_DetailThreshold.RawDataTest_High_Min = (int (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == g_stCfg_MCap_DetailThreshold.RawDataTest_High_Min) + goto ERR; + + g_stCfg_MCap_DetailThreshold.RawDataTest_High_Max = (int (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == g_stCfg_MCap_DetailThreshold.RawDataTest_High_Max) + goto ERR; + + g_stCfg_MCap_DetailThreshold.RxLinearityTest_Max = (int (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == g_stCfg_MCap_DetailThreshold.RxLinearityTest_Max) + goto ERR; + + g_stCfg_MCap_DetailThreshold.TxLinearityTest_Max = (int (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == g_stCfg_MCap_DetailThreshold.TxLinearityTest_Max) + goto ERR; + + g_stCfg_MCap_DetailThreshold.SITORawdata_RxLinearityTest_Base = (int (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == g_stCfg_MCap_DetailThreshold.SITORawdata_RxLinearityTest_Base) + goto ERR; + + g_stCfg_MCap_DetailThreshold.SITORawdata_TxLinearityTest_Base = (int (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == g_stCfg_MCap_DetailThreshold.SITORawdata_TxLinearityTest_Base) + goto ERR; + + g_stCfg_MCap_DetailThreshold.SCapRawDataTest_ON_Max = (int (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == g_stCfg_MCap_DetailThreshold.SCapRawDataTest_ON_Max) + goto ERR; + + g_stCfg_MCap_DetailThreshold.SCapRawDataTest_ON_Min = (int (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == g_stCfg_MCap_DetailThreshold.SCapRawDataTest_ON_Min) + goto ERR; + + g_stCfg_MCap_DetailThreshold.SCapRawDataTest_OFF_Max = (int (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == g_stCfg_MCap_DetailThreshold.SCapRawDataTest_OFF_Max) + goto ERR; + + g_stCfg_MCap_DetailThreshold.SCapRawDataTest_OFF_Min = (int (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == g_stCfg_MCap_DetailThreshold.SCapRawDataTest_OFF_Min) + goto ERR; + + g_stCfg_MCap_DetailThreshold.SCapCbTest_ON_Max = (short (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(short)); + if (NULL == g_stCfg_MCap_DetailThreshold.SCapCbTest_ON_Max) + goto ERR; + + g_stCfg_MCap_DetailThreshold.SCapCbTest_ON_Min = (short (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(short)); + if (NULL == g_stCfg_MCap_DetailThreshold.SCapCbTest_ON_Min) + goto ERR; + + g_stCfg_MCap_DetailThreshold.SCapCbTest_OFF_Max = (short (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(short)); + if (NULL == g_stCfg_MCap_DetailThreshold.SCapCbTest_OFF_Max) + goto ERR; + + g_stCfg_MCap_DetailThreshold.SCapCbTest_OFF_Min = (short (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(short)); + if (NULL == g_stCfg_MCap_DetailThreshold.SCapCbTest_OFF_Min) + goto ERR; + + g_stCfg_MCap_DetailThreshold.NoistTest_Coefficient = (int (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == g_stCfg_MCap_DetailThreshold.NoistTest_Coefficient) + goto ERR; + + g_stCfg_MCap_DetailThreshold.PanelDifferTest_Max = (int (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == g_stCfg_MCap_DetailThreshold.PanelDifferTest_Max) + goto ERR; + + + g_stCfg_MCap_DetailThreshold.PanelDifferTest_Min = (int (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == g_stCfg_MCap_DetailThreshold.PanelDifferTest_Min) + goto ERR; + + + + g_stCfg_Incell_DetailThreshold.InvalidNode = (unsigned char (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(unsigned char)); + if (NULL == g_stCfg_Incell_DetailThreshold.InvalidNode) { + FTS_TEST_DBG("InvalidNode. \n"); + goto ERR; + } + + + g_stCfg_Incell_DetailThreshold.RawDataTest_Min = (int (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == g_stCfg_Incell_DetailThreshold.RawDataTest_Min) { + FTS_TEST_DBG("RawDataTest_Min. \n"); + goto ERR; + } + g_stCfg_Incell_DetailThreshold.RawDataTest_Max = (int (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == g_stCfg_Incell_DetailThreshold.RawDataTest_Max) { + FTS_TEST_DBG("RawDataTest_Max. \n"); + goto ERR; + } + g_stCfg_Incell_DetailThreshold.CBTest_Min = (int (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == g_stCfg_Incell_DetailThreshold.CBTest_Min) { + FTS_TEST_DBG("CBTest_Min. \n"); + goto ERR; + } + g_stCfg_Incell_DetailThreshold.CBTest_Max = (int (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == g_stCfg_Incell_DetailThreshold.CBTest_Max) { + FTS_TEST_DBG("CBTest_Max. \n"); + goto ERR; + } + + g_stCfg_Incell_DetailThreshold.CBUniformityTest_CHY_Linearity = (int (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == g_stCfg_Incell_DetailThreshold.CBUniformityTest_CHY_Linearity) { + FTS_TEST_DBG("CBUniformityTest_CHY_Linearity. \n"); + goto ERR; + } + g_stCfg_Incell_DetailThreshold.CBUniformityTest_CHX_Linearity = (int (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == g_stCfg_Incell_DetailThreshold.CBUniformityTest_CHX_Linearity) { + FTS_TEST_DBG("CBUniformityTest_CHX_Linearity. \n"); + goto ERR; + } + + g_stCfg_Incell_DetailThreshold.RawDataUniformityTest_CHX_Linearity = (int (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == g_stCfg_Incell_DetailThreshold.RawDataUniformityTest_CHX_Linearity) { + FTS_TEST_DBG("RawDataUniformityTest_CHX_Linearity. \n"); + goto ERR; + } + + g_stCfg_Incell_DetailThreshold.RawDataUniformityTest_CHY_Linearity = (int (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == g_stCfg_Incell_DetailThreshold.RawDataUniformityTest_CHY_Linearity) { + FTS_TEST_DBG("RawDataUniformityTest_CHY_Linearity. \n"); + goto ERR; + } + + g_stCfg_Incell_DetailThreshold.RawDataUniformityTest_CB_Data = (int (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == g_stCfg_Incell_DetailThreshold.RawDataUniformityTest_CB_Data) { + FTS_TEST_DBG("RawDataUniformityTest_CB_Data. \n"); + goto ERR; + } + + FTS_TEST_FUNC_EXIT(); + + return 0; + +ERR: + FTS_TEST_ERROR("fts_malloc memory failed in function."); + return -EPERM; +} + +void free_struct_DetailThreshold(void) +{ + if (NULL != g_stCfg_MCap_DetailThreshold.InvalidNode) { + fts_free(g_stCfg_MCap_DetailThreshold.InvalidNode); + g_stCfg_MCap_DetailThreshold.InvalidNode = NULL; + } + if (NULL != g_stCfg_MCap_DetailThreshold.InvalidNode_SC) { + fts_free(g_stCfg_MCap_DetailThreshold.InvalidNode_SC); + g_stCfg_MCap_DetailThreshold.InvalidNode_SC = NULL; + } + if (NULL != g_stCfg_MCap_DetailThreshold.RawDataTest_Min) { + fts_free(g_stCfg_MCap_DetailThreshold.RawDataTest_Min); + } + if (NULL != g_stCfg_MCap_DetailThreshold.RawDataTest_Max) { + fts_free(g_stCfg_MCap_DetailThreshold.RawDataTest_Max); + } + if (NULL != g_stCfg_MCap_DetailThreshold.RawDataTest_Low_Min) { + fts_free(g_stCfg_MCap_DetailThreshold.RawDataTest_Low_Min); + } + if (NULL != g_stCfg_MCap_DetailThreshold.RawDataTest_Low_Max) { + fts_free(g_stCfg_MCap_DetailThreshold.RawDataTest_Low_Max); + } + if (NULL != g_stCfg_MCap_DetailThreshold.RawDataTest_High_Min) { + fts_free(g_stCfg_MCap_DetailThreshold.RawDataTest_High_Min); + } + if (NULL != g_stCfg_MCap_DetailThreshold.RawDataTest_High_Max) { + fts_free(g_stCfg_MCap_DetailThreshold.RawDataTest_High_Max); + } + if (NULL != g_stCfg_MCap_DetailThreshold.RxLinearityTest_Max) { + fts_free(g_stCfg_MCap_DetailThreshold.RxLinearityTest_Max); + } + if (NULL != g_stCfg_MCap_DetailThreshold.TxLinearityTest_Max) { + fts_free(g_stCfg_MCap_DetailThreshold.TxLinearityTest_Max); + } + if (NULL != g_stCfg_MCap_DetailThreshold.SITORawdata_RxLinearityTest_Base) { + fts_free(g_stCfg_MCap_DetailThreshold.SITORawdata_RxLinearityTest_Base); + } + if (NULL != g_stCfg_MCap_DetailThreshold.SITORawdata_TxLinearityTest_Base) { + fts_free(g_stCfg_MCap_DetailThreshold.SITORawdata_TxLinearityTest_Base); + } + if (NULL != g_stCfg_MCap_DetailThreshold.SCapRawDataTest_ON_Max) { + fts_free(g_stCfg_MCap_DetailThreshold.SCapRawDataTest_ON_Max); + } + if (NULL != g_stCfg_MCap_DetailThreshold.SCapRawDataTest_ON_Min) { + fts_free(g_stCfg_MCap_DetailThreshold.SCapRawDataTest_ON_Min); + } + if (NULL != g_stCfg_MCap_DetailThreshold.SCapRawDataTest_OFF_Max) { + fts_free(g_stCfg_MCap_DetailThreshold.SCapRawDataTest_OFF_Max); + } + if (NULL != g_stCfg_MCap_DetailThreshold.SCapRawDataTest_OFF_Min) { + fts_free(g_stCfg_MCap_DetailThreshold.SCapRawDataTest_OFF_Min); + } + if (NULL != g_stCfg_MCap_DetailThreshold.SCapCbTest_ON_Max) { + fts_free(g_stCfg_MCap_DetailThreshold.SCapCbTest_ON_Max); + } + if (NULL != g_stCfg_MCap_DetailThreshold.SCapCbTest_ON_Min) { + fts_free(g_stCfg_MCap_DetailThreshold.SCapCbTest_ON_Min); + } + if (NULL != g_stCfg_MCap_DetailThreshold.SCapCbTest_OFF_Max) { + fts_free(g_stCfg_MCap_DetailThreshold.SCapCbTest_OFF_Max); + } + if (NULL != g_stCfg_MCap_DetailThreshold.SCapCbTest_OFF_Min) { + fts_free(g_stCfg_MCap_DetailThreshold.SCapCbTest_OFF_Min); + } + if (NULL != g_stCfg_MCap_DetailThreshold.NoistTest_Coefficient) { + fts_free(g_stCfg_MCap_DetailThreshold.NoistTest_Coefficient); + g_stCfg_MCap_DetailThreshold.NoistTest_Coefficient = NULL; + } + + if (NULL != g_stCfg_MCap_DetailThreshold.PanelDifferTest_Max) { + fts_free(g_stCfg_MCap_DetailThreshold.PanelDifferTest_Max); + g_stCfg_MCap_DetailThreshold.PanelDifferTest_Max = NULL; + } + + if (NULL != g_stCfg_MCap_DetailThreshold.PanelDifferTest_Min) { + fts_free(g_stCfg_MCap_DetailThreshold.PanelDifferTest_Min); + g_stCfg_MCap_DetailThreshold.PanelDifferTest_Min = NULL; + } + + if (NULL != g_stCfg_Incell_DetailThreshold.InvalidNode) { + fts_free(g_stCfg_Incell_DetailThreshold.InvalidNode); + g_stCfg_Incell_DetailThreshold.InvalidNode = NULL; + } + + if (NULL != g_stCfg_Incell_DetailThreshold.RawDataTest_Min) { + fts_free(g_stCfg_Incell_DetailThreshold.RawDataTest_Min); + g_stCfg_Incell_DetailThreshold.RawDataTest_Min = NULL; + } + + if (NULL != g_stCfg_Incell_DetailThreshold.RawDataTest_Max) { + fts_free(g_stCfg_Incell_DetailThreshold.RawDataTest_Max); + g_stCfg_Incell_DetailThreshold.RawDataTest_Max = NULL; + } + + if (NULL != g_stCfg_Incell_DetailThreshold.RawDataTest_Max) { + fts_free(g_stCfg_Incell_DetailThreshold.RawDataTest_Max); + g_stCfg_Incell_DetailThreshold.RawDataTest_Max = NULL; + } + + if (NULL != g_stCfg_Incell_DetailThreshold.CBTest_Min) { + fts_free(g_stCfg_Incell_DetailThreshold.CBTest_Min); + g_stCfg_Incell_DetailThreshold.CBTest_Min = NULL; + } + + if (NULL != g_stCfg_Incell_DetailThreshold.CBTest_Max) { + fts_free(g_stCfg_Incell_DetailThreshold.CBTest_Max); + g_stCfg_Incell_DetailThreshold.CBTest_Max = NULL; + } + + if (NULL != g_stCfg_Incell_DetailThreshold.CBUniformityTest_CHX_Linearity) { + fts_free(g_stCfg_Incell_DetailThreshold.CBUniformityTest_CHX_Linearity); + g_stCfg_Incell_DetailThreshold.CBUniformityTest_CHX_Linearity = NULL; + } + + if (NULL != g_stCfg_Incell_DetailThreshold.CBUniformityTest_CHY_Linearity) { + fts_free(g_stCfg_Incell_DetailThreshold.CBUniformityTest_CHY_Linearity); + g_stCfg_Incell_DetailThreshold.CBUniformityTest_CHY_Linearity = NULL; + } + + if (NULL != g_stCfg_Incell_DetailThreshold.RawDataUniformityTest_CHX_Linearity) { + fts_free(g_stCfg_Incell_DetailThreshold.RawDataUniformityTest_CHX_Linearity); + g_stCfg_Incell_DetailThreshold.RawDataUniformityTest_CHX_Linearity = NULL; + } + + if (NULL != g_stCfg_Incell_DetailThreshold.RawDataUniformityTest_CHY_Linearity) { + fts_free(g_stCfg_Incell_DetailThreshold.RawDataUniformityTest_CHY_Linearity); + g_stCfg_Incell_DetailThreshold.RawDataUniformityTest_CHY_Linearity = NULL; + } + + if (NULL != g_stCfg_Incell_DetailThreshold.RawDataUniformityTest_CB_Data) { + fts_free(g_stCfg_Incell_DetailThreshold.RawDataUniformityTest_CB_Data); + g_stCfg_Incell_DetailThreshold.RawDataUniformityTest_CB_Data = NULL; + } + +} + +void OnInit_SCap_DetailThreshold(char *strIniFile) +{ + FTS_TEST_FUNC_ENTER(); + + OnGetTestItemParam("RawDataTest_Max", strIniFile, 12500); + memcpy(g_stCfg_SCap_DetailThreshold.RawDataTest_Max, g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + OnGetTestItemParam("RawDataTest_Min", strIniFile, 16500); + memcpy(g_stCfg_SCap_DetailThreshold.RawDataTest_Min, g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + OnGetTestItemParam("CiTest_Max", strIniFile, 5); + memcpy(g_stCfg_SCap_DetailThreshold.CiTest_Max, g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + OnGetTestItemParam("CiTest_Min", strIniFile, 250); + memcpy(g_stCfg_SCap_DetailThreshold.CiTest_Min, g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + OnGetTestItemParam("DeltaCiTest_Base", strIniFile, 0); + memcpy(g_stCfg_SCap_DetailThreshold.DeltaCiTest_Base, g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + OnGetTestItemParam("DeltaCiTest_AnotherBase1", strIniFile, 0); + memcpy(g_stCfg_SCap_DetailThreshold.DeltaCiTest_AnotherBase1, g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + OnGetTestItemParam("DeltaCiTest_AnotherBase2", strIniFile, 0); + memcpy(g_stCfg_SCap_DetailThreshold.DeltaCiTest_AnotherBase2, g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + OnGetTestItemParam("NoiseTest_Max", strIniFile, 20); + memcpy(g_stCfg_SCap_DetailThreshold.NoiseTest_Max, g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + OnGetTestItemParam("CiDeviation_Base", strIniFile, 0); + memcpy(g_stCfg_SCap_DetailThreshold.CiDeviationTest_Base, g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + OnGetTestItemParam("DeltaCxTest_Sort", strIniFile, 1); + memcpy(g_stCfg_SCap_DetailThreshold.DeltaCxTest_Sort, g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + OnGetTestItemParam("DeltaCxTest_Area", strIniFile, 1); + memcpy(g_stCfg_SCap_DetailThreshold.DeltaCxTest_Area, g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + + + OnGetTestItemParam("CbTest_Max", strIniFile, 0); + memcpy(g_stCfg_SCap_DetailThreshold.CbTest_Max, g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + + OnGetTestItemParam("CbTest_Min", strIniFile, 0); + memcpy(g_stCfg_SCap_DetailThreshold.CbTest_Min, g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + + OnGetTestItemParam("DeltaCbTest_Base", strIniFile, 0); + memcpy(g_stCfg_SCap_DetailThreshold.DeltaCbTest_Base, g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + + OnGetTestItemParam("DifferTest_Base", strIniFile, 0); + memcpy(g_stCfg_SCap_DetailThreshold.DifferTest_Base, g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + + OnGetTestItemParam("CBDeviation_Base", strIniFile, 0); + memcpy(g_stCfg_SCap_DetailThreshold.CBDeviationTest_Base, g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + + OnGetTestItemParam("K1DifferTest_Base", strIniFile, 0); + memcpy(g_stCfg_SCap_DetailThreshold.K1DifferTest_Base, g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + FTS_TEST_FUNC_EXIT(); +} + +void OnGetTestItemParam(char *strItemName, char *strIniFile, int iDefautValue) +{ + + char strValue[800]; + char str_tmp[128]; + int iValue = 0; + int dividerPos = 0; + int index = 0; + int i = 0, j = 0, k = 0; + memset(g_stCfg_SCap_DetailThreshold.TempData, 0, sizeof(g_stCfg_SCap_DetailThreshold.TempData)); + sprintf(str_tmp, "%d", iDefautValue); + GetPrivateProfileString("Basic_Threshold", strItemName, str_tmp, strValue, strIniFile); + iValue = fts_atoi(strValue); + for (i = 0; i < MAX_CHANNEL_NUM; i++) { + g_stCfg_SCap_DetailThreshold.TempData[i] = iValue; + } + + dividerPos = GetPrivateProfileString("SpecialSet", strItemName, "", strValue, strIniFile); + if (dividerPos > 0) { + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_SCap_DetailThreshold.TempData[k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } +} + +void OnInit_MCap_DetailThreshold(char *strIniFile) +{ + + FTS_TEST_FUNC_ENTER(); + + set_max_channel_num(); + + OnInit_InvalidNode(strIniFile); + OnInit_DThreshold_RawDataTest(strIniFile); + OnInit_DThreshold_SCapRawDataTest(strIniFile); + OnInit_DThreshold_SCapCbTest(strIniFile); + + OnInit_DThreshold_ForceTouch_SCapRawDataTest(strIniFile); + OnInit_DThreshold_ForceTouch_SCapCbTest(strIniFile); + + OnInit_DThreshold_SITORawdata_TxLinearityTest(strIniFile); + OnInit_DThreshold_SITORawdata_RxLinearityTest(strIniFile); + + OnInit_DThreshold_RxLinearityTest(strIniFile); + OnInit_DThreshold_TxLinearityTest(strIniFile); + + OnInit_DThreshold_PanelDifferTest(strIniFile); + OnInit_DThreshold_NoiseTest(strIniFile); + + FTS_TEST_FUNC_EXIT(); +} +void OnInit_InvalidNode(char *strIniFile) +{ + + char str[MAX_PATH] = {0}, strTemp[MAX_PATH] = {0}; + int i = 0, j = 0; + + + + FTS_TEST_FUNC_ENTER(); + + for (i = 0; i < g_ScreenSetParam.iUsedMaxTxNum; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + sprintf(strTemp, "InvalidNode[%d][%d]", (i+1), (j+1)); + + GetPrivateProfileString("INVALID_NODE", strTemp, "1", str, strIniFile); + if (fts_atoi(str) == 0) { + g_stCfg_MCap_DetailThreshold.InvalidNode[i][j] = 0; + g_stCfg_Incell_DetailThreshold.InvalidNode[i][j] = 0; + FTS_TEST_DBG("node (%d, %d) \n", (i+1), (j+1)); + + } else if (fts_atoi(str) == 2) { + g_stCfg_MCap_DetailThreshold.InvalidNode[i][j] = 2; + g_stCfg_Incell_DetailThreshold.InvalidNode[i][j] = 2; + } else { + g_stCfg_MCap_DetailThreshold.InvalidNode[i][j] = 1; + g_stCfg_Incell_DetailThreshold.InvalidNode[i][j] = 1; + } + + + + + } + } + + for (i = 0; i < 2; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + sprintf(strTemp, "InvalidNodeS[%d][%d]", (i+1), (j+1)); + GetPrivateProfileString("INVALID_NODES", strTemp, "1", str, strIniFile); + if (fts_atoi(str) == 0) { + g_stCfg_MCap_DetailThreshold.InvalidNode_SC[i][j] = 0; + } else if (fts_atoi(str) == 2) { + g_stCfg_MCap_DetailThreshold.InvalidNode_SC[i][j] = 2; + } else + g_stCfg_MCap_DetailThreshold.InvalidNode_SC[i][j] = 1; + } + + } + + FTS_TEST_FUNC_EXIT(); +} + +void OnInit_DThreshold_RawDataTest(char *strIniFile) +{ + char str[128], strTemp[MAX_PATH], strValue[MAX_PATH]; + int MaxValue, MinValue; + int dividerPos = 0; + char str_tmp[128]; + int index = 0; + int k = 0, i = 0, j = 0; + + FTS_TEST_FUNC_ENTER(); + + if ((g_ScreenSetParam.iSelectedIC >> 4 == IC_FT8716 >> 4) || (g_ScreenSetParam.iSelectedIC >> 4 == IC_FT8736 >> 4) || (g_ScreenSetParam.iSelectedIC >> 4 == IC_FTE716 >> 4)) { + return; + } + + + GetPrivateProfileString("Basic_Threshold", "RawDataTest_Max", "10000", str, strIniFile); + MaxValue = fts_atoi(str); + + + + for (i = 0; i < g_ScreenSetParam.iUsedMaxTxNum; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.RawDataTest_Max[i][j] = MaxValue; + g_stCfg_Incell_DetailThreshold.RawDataTest_Max[i][j] = MaxValue; + + } + } + + for (i = 0; i < g_ScreenSetParam.iUsedMaxTxNum; i++) { + sprintf(str, "RawData_Max_Tx%d", (i + 1)); + + dividerPos = GetPrivateProfileString("SpecialSet", str, "111", strTemp, strIniFile); + + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.RawDataTest_Max[i][k] = (short)(fts_atoi(str_tmp)); + g_stCfg_Incell_DetailThreshold.RawDataTest_Max[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + + } + + GetPrivateProfileString("Basic_Threshold", "RawDataTest_Min", "7000", str, strIniFile); + MinValue = fts_atoi(str); + + for (i = 0; i < g_ScreenSetParam.iUsedMaxTxNum; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.RawDataTest_Min[i][j] = MinValue; + g_stCfg_Incell_DetailThreshold.RawDataTest_Min[i][j] = MinValue; + } + } + for (i = 0; i < g_ScreenSetParam.iUsedMaxTxNum; i++) { + sprintf(str, "RawData_Min_Tx%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.RawDataTest_Min[i][k] = (short)(fts_atoi(str_tmp)); + g_stCfg_Incell_DetailThreshold.RawDataTest_Min[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + + GetPrivateProfileString("Basic_Threshold", "RawDataTest_Low_Max", "15000", str, strIniFile); + MaxValue = fts_atoi(str); + + for (i = 0; i < g_ScreenSetParam.iUsedMaxTxNum; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.RawDataTest_Low_Max[i][j] = MaxValue; + } + } + for (i = 0; i < g_ScreenSetParam.iUsedMaxTxNum; i++) { + sprintf(str, "RawData_Max_Low_Tx%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.RawDataTest_Low_Max[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + GetPrivateProfileString("Basic_Threshold", "RawDataTest_Low_Min", "3000", str, strIniFile); + MinValue = fts_atoi(str); + + for (i = 0; i < g_ScreenSetParam.iUsedMaxTxNum; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.RawDataTest_Low_Min[i][j] = MinValue; + } + } + for (i = 0; i < g_ScreenSetParam.iUsedMaxTxNum; i++) { + sprintf(str, "RawData_Min_Low_Tx%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.RawDataTest_Low_Min[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + + GetPrivateProfileString("Basic_Threshold", "RawDataTest_High_Max", "15000", str, strIniFile); + MaxValue = fts_atoi(str); + + for (i = 0; i < g_ScreenSetParam.iUsedMaxTxNum; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.RawDataTest_High_Max[i][j] = MaxValue; + } + } + GetPrivateProfileString("Basic_Threshold", "RawDataTest_High_Min", "3000", str, strIniFile); + MinValue = fts_atoi(str); + + for (i = 0; i < g_ScreenSetParam.iUsedMaxTxNum; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.RawDataTest_High_Min[i][j] = MinValue; + } + } + for (i = 0; i < g_ScreenSetParam.iUsedMaxTxNum; i++) { + sprintf(str, "RawData_Max_High_Tx%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.RawDataTest_High_Max[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + + for (i = 0; i < g_ScreenSetParam.iUsedMaxTxNum; i++) { + sprintf(str, "RawData_Min_High_Tx%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.RawDataTest_High_Min[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + FTS_TEST_FUNC_EXIT(); +} + +void OnInit_DThreshold_SCapRawDataTest(char *strIniFile) +{ + char str[128], strTemp[MAX_PATH], strValue[MAX_PATH]; + int MaxValue, MinValue; + int dividerPos = 0; + char str_tmp[128]; + int index = 0; + int k = 0, i = 0, j = 0; + + FTS_TEST_FUNC_ENTER(); + + + GetPrivateProfileString("Basic_Threshold", "SCapRawDataTest_OFF_Min", "150", str, strIniFile); + MinValue = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "SCapRawDataTest_OFF_Max", "1000", str, strIniFile); + MaxValue = fts_atoi(str); + + + for (i = 0; i < 2; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.SCapRawDataTest_OFF_Max[i][j] = MaxValue; + } + } + for (i = 0; i < 2; i++) { + sprintf(str, "ScapRawData_OFF_Max_%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.SCapRawDataTest_OFF_Max[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + for (i = 0; i < 2; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.SCapRawDataTest_OFF_Min[i][j] = MinValue; + } + } + for (i = 0; i < 2; i++) { + sprintf(str, "ScapRawData_OFF_Min_%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.SCapRawDataTest_OFF_Min[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + + GetPrivateProfileString("Basic_Threshold", "SCapRawDataTest_ON_Min", "150", str, strIniFile); + MinValue = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "SCapRawDataTest_ON_Max", "1000", str, strIniFile); + MaxValue = fts_atoi(str); + + + for (i = 0; i < 2; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.SCapRawDataTest_ON_Max[i][j] = MaxValue; + } + } + for (i = 0; i < 2; i++) { + sprintf(str, "ScapRawData_ON_Max_%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.SCapRawDataTest_ON_Max[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + for (i = 0; i < 2; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.SCapRawDataTest_ON_Min[i][j] = MinValue; + } + } + for (i = 0; i < 2; i++) { + sprintf(str, "ScapRawData_ON_Min_%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.SCapRawDataTest_ON_Min[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + FTS_TEST_FUNC_EXIT(); +} + +void OnInit_DThreshold_SCapCbTest(char *strIniFile) +{ + char str[128], strTemp[MAX_PATH], strValue[MAX_PATH]; + int MaxValue, MinValue; + int dividerPos = 0; + char str_tmp[128]; + int index = 0; + int k = 0, i = 0, j = 0; + + FTS_TEST_FUNC_ENTER(); + + + GetPrivateProfileString("Basic_Threshold", "SCapCbTest_ON_Min", "0", str, strIniFile); + MinValue = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "SCapCbTest_ON_Max", "240", str, strIniFile); + MaxValue = fts_atoi(str); + + + for (i = 0; i < 2; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.SCapCbTest_ON_Max[i][j] = MaxValue; + } + } + for (i = 0; i < 2; i++) { + sprintf(str, "ScapCB_ON_Max_%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.SCapCbTest_ON_Max[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + for (i = 0; i < 2; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.SCapCbTest_ON_Min[i][j] = MinValue; + } + } + for (i = 0; i < 2; i++) { + sprintf(str, "ScapCB_ON_Min_%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.SCapCbTest_ON_Min[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + + GetPrivateProfileString("Basic_Threshold", "SCapCbTest_OFF_Min", "0", str, strIniFile); + MinValue = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "SCapCbTest_OFF_Max", "240", str, strIniFile); + MaxValue = fts_atoi(str); + + for (i = 0; i < 2; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.SCapCbTest_OFF_Max[i][j] = MaxValue; + } + } + for (i = 0; i < 2; i++) { + sprintf(str, "ScapCB_OFF_Max_%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.SCapCbTest_OFF_Max[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + for (i = 0; i < 2; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.SCapCbTest_OFF_Min[i][j] = MinValue; + } + } + for (i = 0; i < 2; i++) { + sprintf(str, "ScapCB_OFF_Min_%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.SCapCbTest_OFF_Min[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + FTS_TEST_FUNC_EXIT(); +} + +void OnInit_DThreshold_PanelDifferTest(char *strIniFile) +{ + + char str[128], strTemp[MAX_PATH], strValue[MAX_PATH]; + int MaxValue, MinValue; + int dividerPos = 0; + int index = 0; + int k = 0, i = 0, j = 0; + char str_tmp[128]; + + FTS_TEST_FUNC_ENTER(); + + GetPrivateProfileString("Basic_Threshold", "PanelDifferTest_Max", "1000", str, strIniFile); + MaxValue = fts_atoi(str); + for (i = 0; i < TX_NUM_MAX; i++) { + for (j = 0; j < RX_NUM_MAX; j++) { + g_stCfg_MCap_DetailThreshold.PanelDifferTest_Max[i][j] = MaxValue; + } + } + + for (i = 0; i < TX_NUM_MAX; i++) { + sprintf(str, "Panel_Differ_Max_Tx%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.PanelDifferTest_Max[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + + GetPrivateProfileString("Basic_Threshold", "PanelDifferTest_Min", "150", str, strIniFile); + MinValue = fts_atoi(str); + for (i = 0; i < TX_NUM_MAX; i++) { + for (j = 0; j < RX_NUM_MAX; j++) { + g_stCfg_MCap_DetailThreshold.PanelDifferTest_Min[i][j] = MinValue; + } + } + + for (i = 0; i < TX_NUM_MAX; i++) { + sprintf(str, "Panel_Differ_Min_Tx%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.PanelDifferTest_Min[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + FTS_TEST_FUNC_EXIT(); + +} + + +void OnInit_DThreshold_NoiseTest(char *strIniFile) +{ + char str[128], strTemp[MAX_PATH], strValue[MAX_PATH]; + int MaxValue = 0; + int dividerPos = 0; + char str_tmp[128]; + int index = 0; + int k = 0, i = 0, j = 0; + + FTS_TEST_FUNC_ENTER(); + + + GetPrivateProfileString("Basic_Threshold", "NoiseTest_GloveMode", "0", str, strIniFile); + if (1 == fts_atoi(str)) + GetPrivateProfileString("Basic_Threshold", "GloveNoiseTest_Coefficient", "100", str, strIniFile); + else + GetPrivateProfileString("Basic_Threshold", "NoiseTest_Max", "50", str, strIniFile); + + MaxValue = fts_atoi(str); + + for (i = 0; i < TX_NUM_MAX; i++) { + for (j = 0; j < RX_NUM_MAX; j++) { + g_stCfg_MCap_DetailThreshold.NoistTest_Coefficient[i][j] = MaxValue; + } + } + + for (i = 0; i < TX_NUM_MAX; i++) { + sprintf(str, "NoistTestCoefficient_Tx%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.NoistTest_Coefficient[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + + } + + + +} + + +void OnInit_DThreshold_RxLinearityTest(char *strIniFile) +{ + char str[128], strTemp[MAX_PATH], strValue[MAX_PATH]; + int MaxValue = 0; + int dividerPos = 0; + char str_tmp[128]; + int index = 0; + int k = 0, i = 0, j = 0; + + FTS_TEST_FUNC_ENTER(); + + + GetPrivateProfileString("Basic_Threshold", "RxLinearityTest_Max", "50", str, strIniFile); + MaxValue = fts_atoi(str); + + + + for (i = 0; i < g_ScreenSetParam.iUsedMaxTxNum; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.RxLinearityTest_Max[i][j] = MaxValue; + } + } + + for (i = 0; i < g_ScreenSetParam.iUsedMaxTxNum; i++) { + sprintf(str, "Rx_Linearity_Max_Tx%d", (i + 1)); + + dividerPos = GetPrivateProfileString("SpecialSet", str, "111", strTemp, strIniFile); + + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.RxLinearityTest_Max[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + + } + + FTS_TEST_FUNC_EXIT(); +} + +void OnInit_DThreshold_TxLinearityTest(char *strIniFile) +{ + char str[128], strTemp[MAX_PATH], strValue[MAX_PATH]; + int MaxValue = 0; + int dividerPos = 0; + char str_tmp[128]; + int index = 0; + int k = 0, i = 0, j = 0; + + FTS_TEST_FUNC_ENTER(); + + + GetPrivateProfileString("Basic_Threshold", "TxLinearityTest_Max", "50", str, strIniFile); + MaxValue = fts_atoi(str); + + + + for (i = 0; i < g_ScreenSetParam.iUsedMaxTxNum; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.TxLinearityTest_Max[i][j] = MaxValue; + } + } + + for (i = 0; i < g_ScreenSetParam.iUsedMaxTxNum; i++) { + sprintf(str, "Tx_Linearity_Max_Tx%d", (i + 1)); + + dividerPos = GetPrivateProfileString("SpecialSet", str, "111", strTemp, strIniFile); + + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.TxLinearityTest_Max[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + + } + FTS_TEST_FUNC_EXIT(); +} + + +void OnInit_DThreshold_SITORawdata_RxLinearityTest(char *strIniFile) +{ + + char str[128], strTemp[MAX_PATH], strValue[MAX_PATH]; + int MaxValue = 0; + int i = 0, j = 0; + char str_tmp[128]; + int dividerPos = 0; + int index = 0; + int k = 0; + + if (IC_FT5X46>>4 != g_ScreenSetParam.iSelectedIC>>4 && IC_FT3C47U>>4 != g_ScreenSetParam.iSelectedIC>>4) { + return; + } + + + if (IC_FT5X46>>4 == g_ScreenSetParam.iSelectedIC>>4 || IC_FT3C47U>>4 == g_ScreenSetParam.iSelectedIC>>4) { + GetPrivateProfileString("Basic_Threshold", "SITO_RawdataUniformityTest_Rx_Hole", "10", str, strIniFile); + MaxValue = 0/*atoi(str)*/; + } + + for (i = 0; i < g_ScreenSetParam.iUsedMaxTxNum; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.SITORawdata_RxLinearityTest_Base[i][j] = MaxValue; + } + } + + for (i = 0; i < g_ScreenSetParam.iUsedMaxTxNum; i++) { + sprintf(str, "SITORawdata_Rx_Linearity_Base_Rx%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.SITORawdata_RxLinearityTest_Base[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + +} + + + +void OnInit_DThreshold_SITORawdata_TxLinearityTest(char *strIniFile) +{ + + char str[128], strTemp[MAX_PATH], strValue[MAX_PATH]; + int MaxValue = 0; + int i = 0, j = 0; + char str_tmp[128]; + int dividerPos = 0; + int index = 0; + int k = 0; + + if (IC_FT5X46>>4 != g_ScreenSetParam.iSelectedIC>>4 && IC_FT3C47U>>4 != g_ScreenSetParam.iSelectedIC>>4) { + return; + } + + + if (IC_FT5X46>>4 == g_ScreenSetParam.iSelectedIC>>4 || IC_FT3C47U>>4 == g_ScreenSetParam.iSelectedIC>>4) { + GetPrivateProfileString("Basic_Threshold", "SITO_RawdataUniformityTest_Tx_Hole", "10", str, strIniFile); + MaxValue = 0/*atoi(str)*/; + } + + for (i = 0; i < g_ScreenSetParam.iUsedMaxTxNum; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.SITORawdata_TxLinearityTest_Base[i][j] = MaxValue; + } + } + + for (i = 0; i < g_ScreenSetParam.iUsedMaxTxNum; i++) { + sprintf(str, "SITORawdata_Rx_Linearity_Base_Tx%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.SITORawdata_TxLinearityTest_Base[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + +} + + + +void OnInit_DThreshold_ForceTouch_SCapRawDataTest(char *strIniFile) +{ + char str[128], strTemp[MAX_PATH], strValue[MAX_PATH]; + int MaxValue, MinValue; + int dividerPos = 0; + char str_tmp[128]; + int index = 0; + int k = 0, i = 0, j = 0; + + FTS_TEST_FUNC_ENTER(); + + + GetPrivateProfileString("Basic_Threshold", "ForceTouch_SCapRawDataTest_OFF_Min", "150", str, strIniFile); + MinValue = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "ForceTouch_SCapRawDataTest_OFF_Max", "1000", str, strIniFile); + MaxValue = fts_atoi(str); + + + for (i = 0; i < 1; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.ForceTouch_SCapRawDataTest_OFF_Max[i][j] = MaxValue; + } + } + for (i = 0; i < 1; i++) { + sprintf(str, "ForceTouch_ScapRawData_OFF_Max_%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.ForceTouch_SCapRawDataTest_OFF_Max[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + for (i = 0; i < 1; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.ForceTouch_SCapRawDataTest_OFF_Min[i][j] = MinValue; + } + } + for (i = 0; i < 1; i++) { + sprintf(str, "ForceTouch_ScapRawData_OFF_Min_%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.ForceTouch_SCapRawDataTest_OFF_Min[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + + GetPrivateProfileString("Basic_Threshold", "ForceTouch_SCapRawDataTest_ON_Min", "150", str, strIniFile); + MinValue = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "ForceTouch_SCapRawDataTest_ON_Max", "1000", str, strIniFile); + MaxValue = fts_atoi(str); + + + for (i = 0; i < 1; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.ForceTouch_SCapRawDataTest_ON_Max[i][j] = MaxValue; + } + } + for (i = 0; i < 1; i++) { + sprintf(str, "ForceTouch_ScapRawData_ON_Max_%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.ForceTouch_SCapRawDataTest_ON_Max[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + for (i = 0; i < 1; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.ForceTouch_SCapRawDataTest_ON_Min[i][j] = MinValue; + } + } + for (i = 0; i < 1; i++) { + sprintf(str, "ForceTouch_ScapRawData_ON_Min_%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.ForceTouch_SCapRawDataTest_ON_Min[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + FTS_TEST_FUNC_EXIT(); +} + +void OnInit_DThreshold_ForceTouch_SCapCbTest(char *strIniFile) +{ + char str[128], strTemp[MAX_PATH], strValue[MAX_PATH]; + int MaxValue, MinValue; + int dividerPos = 0; + char str_tmp[128]; + int index = 0; + int k = 0, i = 0, j = 0; + + FTS_TEST_FUNC_ENTER(); + + + GetPrivateProfileString("Basic_Threshold", "ForceTouch_SCapCbTest_ON_Min", "0", str, strIniFile); + MinValue = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "ForceTouch_SCapCbTest_ON_Max", "240", str, strIniFile); + MaxValue = fts_atoi(str); + + + for (i = 0; i < 1; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.ForceTouch_SCapCbTest_ON_Max[i][j] = MaxValue; + } + } + for (i = 0; i < 1; i++) { + sprintf(str, "ForceTouch_ScapCB_ON_Max_%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.ForceTouch_SCapCbTest_ON_Max[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + for (i = 0; i < 1; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.ForceTouch_SCapCbTest_ON_Min[i][j] = MinValue; + } + } + for (i = 0; i < 1; i++) { + sprintf(str, "ForceTouch_ScapCB_ON_Min_%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + FTS_TEST_DBG("%s\r", strTemp); + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.ForceTouch_SCapCbTest_ON_Min[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + + GetPrivateProfileString("Basic_Threshold", "ForceTouch_SCapCbTest_OFF_Min", "0", str, strIniFile); + MinValue = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "ForceTouch_SCapCbTest_OFF_Max", "240", str, strIniFile); + MaxValue = fts_atoi(str); + + for (i = 0; i < 1; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.ForceTouch_SCapCbTest_OFF_Max[i][j] = MaxValue; + } + } + for (i = 0; i < 1; i++) { + sprintf(str, "ForceTouch_ScapCB_OFF_Max_%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.ForceTouch_SCapCbTest_OFF_Max[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + for (i = 0; i < 1; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.ForceTouch_SCapCbTest_OFF_Min[i][j] = MinValue; + } + } + for (i = 0; i < 1; i++) { + sprintf(str, "ForceTouch_ScapCB_OFF_Min_%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.ForceTouch_SCapCbTest_OFF_Min[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + FTS_TEST_FUNC_EXIT(); +} + +void OnInit_Incell_DetailThreshold(char *strIniFile) +{ + + FTS_TEST_FUNC_ENTER(); + + set_max_channel_num(); + + OnInit_InvalidNode(strIniFile); + + OnInit_DThreshold_RawDataTest(strIniFile); + OnInit_DThreshold_CBTest(strIniFile); + OnInit_DThreshold_AllButtonCBTest(strIniFile); + OnThreshold_VkAndVaRawDataSeparateTest(strIniFile); + + OnInit_DThreshold_RawDataUniformityTest(strIniFile); + + FTS_TEST_FUNC_EXIT(); +} + +void OnInit_DThreshold_CBTest(char *strIniFile) +{ + char str[128], strTemp[MAX_PATH], strValue[MAX_PATH]; + int MaxValue, MinValue, MaxValue_Vkey, MinValue_Vkey; + int ChannelNumTest_ChannelXNum, ChannelNumTest_ChannelYNum; + int dividerPos = 0; + char str_tmp[128]; + int index = 0; + int k = 0, i = 0, j = 0; + + FTS_TEST_FUNC_ENTER(); + if (g_ScreenSetParam.iSelectedIC >> 4 == IC_FT8606 >> 4) { + return; + } + + GetPrivateProfileString("Basic_Threshold", "CBTest_Max", "100", str, strIniFile); + MaxValue = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "CBTest_Max_Vkey", "100", str, strIniFile); + MaxValue_Vkey = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "ChannelNumTest_ChannelX", "15", str, strIniFile); + ChannelNumTest_ChannelXNum = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "ChannelNumTest_ChannelY", "24", str, strIniFile); + ChannelNumTest_ChannelYNum = fts_atoi(str); + + for (i = 0; i < TX_NUM_MAX; i++) { + for (j = 0; j < RX_NUM_MAX; j++) { + g_stCfg_Incell_DetailThreshold.CBTest_Max[i][j] = MaxValue; + } + + if (i == ChannelNumTest_ChannelXNum) { + for (j = 0; j < RX_NUM_MAX; j++) { + g_stCfg_Incell_DetailThreshold.CBTest_Max[i][j] = MaxValue_Vkey; + } + } + } + + for (i = 0; i < TX_NUM_MAX; i++) { + sprintf(str, "CB_Max_Tx%d", (i + 1)); + + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_Incell_DetailThreshold.CBTest_Max[i][k] = (short)(fts_atoi(str_tmp)); + + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + + + GetPrivateProfileString("Basic_Threshold", "CBTest_Min", "3", str, strIniFile); + MinValue = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "CBTest_Min_Vkey", "3", str, strIniFile); + MinValue_Vkey = fts_atoi(str); + + for (i = 0; i < TX_NUM_MAX; i++) { + for (j = 0; j < RX_NUM_MAX; j++) { + g_stCfg_Incell_DetailThreshold.CBTest_Min[i][j] = MinValue; + } + + if (i == ChannelNumTest_ChannelXNum) { + for (j = 0; j < RX_NUM_MAX; j++) { + g_stCfg_Incell_DetailThreshold.CBTest_Min[i][j] = MinValue_Vkey; + } + } + } + + for (i = 0; i < TX_NUM_MAX; i++) { + sprintf(str, "CB_Min_Tx%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_Incell_DetailThreshold.CBTest_Min[i][k] = (short)(fts_atoi(str_tmp)); + + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + FTS_TEST_FUNC_EXIT(); +} + + + +void OnInit_DThreshold_AllButtonCBTest(char *strIniFile) +{ + char str[128], strTemp[MAX_PATH], strValue[MAX_PATH]; + int MaxValue, MinValue; + int dividerPos = 0; + char str_tmp[128]; + int index = 0; + int k = 0, i = 0, j = 0; + + FTS_TEST_FUNC_ENTER(); + + if (g_ScreenSetParam.iSelectedIC >> 4 != IC_FT8606 >> 4) { + return; + } + + GetPrivateProfileString("Basic_Threshold", "CBTest_Max", "100", str, strIniFile); + MaxValue = fts_atoi(str); + + + for (i = 0; i < TX_NUM_MAX; i++) { + for (j = 0; j < RX_NUM_MAX; j++) { + g_stCfg_Incell_DetailThreshold.CBTest_Max[i][j] = MaxValue; + } + } + + for (i = 0; i < TX_NUM_MAX; i++) { + sprintf(str, "CB_Max_Tx%d", (i + 1)); + + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_Incell_DetailThreshold.CBTest_Max[i][k] = (short)(fts_atoi(str_tmp)); + + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + + + GetPrivateProfileString("Basic_Threshold", "CBTest_Min", "3", str, strIniFile); + MinValue = fts_atoi(str); + + for (i = 0; i < TX_NUM_MAX; i++) { + for (j = 0; j < RX_NUM_MAX; j++) { + g_stCfg_Incell_DetailThreshold.CBTest_Min[i][j] = MinValue; + } + } + + for (i = 0; i < TX_NUM_MAX; i++) { + sprintf(str, "CB_Min_Tx%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_Incell_DetailThreshold.CBTest_Min[i][k] = (short)(fts_atoi(str_tmp)); + + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + FTS_TEST_FUNC_EXIT(); +} + +void OnThreshold_VkAndVaRawDataSeparateTest(char *strIniFile) +{ + char str[128], strTemp[MAX_PATH], strValue[MAX_PATH]; + int MaxValue, MinValue, MaxValue_Vkey, MinValue_Vkey; + int ChannelNumTest_ChannelXNum, ChannelNumTest_ChannelYNum; + int dividerPos = 0; + char str_tmp[128]; + int index = 0; + int k = 0, i = 0, j = 0; + + + FTS_TEST_FUNC_ENTER(); + + if ((g_ScreenSetParam.iSelectedIC >> 4 != IC_FT8716 >> 4) && (g_ScreenSetParam.iSelectedIC >> 4 != IC_FT8736 >> 4) && (g_ScreenSetParam.iSelectedIC >> 4 != IC_FTE716 >> 4)) { + return; + } + + GetPrivateProfileString("Basic_Threshold", "RawDataTest_Max", "1100", str, strIniFile); + MaxValue = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "RawDataTest_Max_VKey", "1100", str, strIniFile); + MaxValue_Vkey = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "ChannelNumTest_ChannelX", "15", str, strIniFile); + ChannelNumTest_ChannelXNum = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "ChannelNumTest_ChannelY", "24", str, strIniFile); + ChannelNumTest_ChannelYNum = fts_atoi(str); + + for (i = 0; i < TX_NUM_MAX; i++) { + for (j = 0; j < RX_NUM_MAX; j++) { + g_stCfg_Incell_DetailThreshold.RawDataTest_Max[i][j] = MaxValue; + } + + if (i == ChannelNumTest_ChannelXNum) { + for (j = 0; j < RX_NUM_MAX; j++) { + g_stCfg_Incell_DetailThreshold.RawDataTest_Max[i][j] = MaxValue_Vkey; + } + } + } + + + for (i = 0; i < TX_NUM_MAX; i++) { + sprintf(str, "RawData_Max_Tx%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_Incell_DetailThreshold.RawDataTest_Max[i][k] = (short)(fts_atoi(str_tmp)); + + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + GetPrivateProfileString("Basic_Threshold", "RawDataTest_Min", "5000", str, strIniFile); + MinValue = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "RawDataTest_Min_VKey", "5000", str, strIniFile); + MinValue_Vkey = fts_atoi(str); + + for (i = 0; i < TX_NUM_MAX; i++) { + for (j = 0; j < RX_NUM_MAX; j++) { + g_stCfg_Incell_DetailThreshold.RawDataTest_Min[i][j] = MinValue; + } + + if (i == ChannelNumTest_ChannelXNum) { + for (j = 0; j < RX_NUM_MAX; j++) { + g_stCfg_Incell_DetailThreshold.RawDataTest_Min[i][j] = MinValue_Vkey; + } + } + } + + for (i = 0; i < TX_NUM_MAX; i++) { + sprintf(str, "RawData_Min_Tx%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_Incell_DetailThreshold.RawDataTest_Min[i][k] = (short)(fts_atoi(str_tmp)); + + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + FTS_TEST_FUNC_EXIT(); +} + +void OnInit_DThreshold_RawDataUniformityTest(char *strIniFile) +{ + + int iBasicCHX = 0, iBasicCHY = 0; + char str[128], strTemp[MAX_PATH], strValue[MAX_PATH]; + int dividerPos = 0; + char str_tmp[128]; + int index = 0; + int k = 0, i = 0, j = 0; + + GetPrivateProfileString("Basic_Threshold", "RawDataUniformityTest_CHX_Hole", "15", str, strIniFile); + iBasicCHX = fts_atoi(str); + + for (i = 0; i < TX_NUM_MAX; i++) { + for (j = 0; j < RX_NUM_MAX; j++) { + g_stCfg_Incell_DetailThreshold.RawDataUniformityTest_CHX_Linearity[i][j] = iBasicCHX; + } + } + + for (i = 0; i < TX_NUM_MAX; i++) { + sprintf(str, "RawDataUniformityTest_CHX%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_Incell_DetailThreshold.RawDataUniformityTest_CHX_Linearity[i][k] = (short)(fts_atoi(str_tmp)); + + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + + GetPrivateProfileString("Basic_Threshold", "RawDataUniformityTest_CHY_Hole", "15", str, strIniFile); + iBasicCHY = fts_atoi(str); + + for (i = 0; i < TX_NUM_MAX; i++) { + for (j = 0; j < RX_NUM_MAX; j++) { + g_stCfg_Incell_DetailThreshold.RawDataUniformityTest_CHY_Linearity[i][j] = iBasicCHY; + } + } + + for (i = 0; i < TX_NUM_MAX; i++) { + sprintf(str, "RawDataUniformityTest_CHY%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_Incell_DetailThreshold.RawDataUniformityTest_CHY_Linearity[i][k] = (short)(fts_atoi(str_tmp)); + + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + + for (i = 0; i < TX_NUM_MAX; i++) { + for (j = 0; j < RX_NUM_MAX; j++) { + g_stCfg_Incell_DetailThreshold.RawDataUniformityTest_CB_Data[i][j] = 20; + } + } + + for (i = 0; i < TX_NUM_MAX; i++) { + sprintf(str, "RawDataUniformityTest_CB%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_Incell_DetailThreshold.RawDataUniformityTest_CB_Data[i][k] = (short)(fts_atoi(str_tmp)); + + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } +} + + diff --git a/drivers/input/touchscreen/FT5346/focaltech_test/src/focaltech_test_global.c b/drivers/input/touchscreen/FT5346/focaltech_test/src/focaltech_test_global.c new file mode 100644 index 0000000000000..97c92650f8c88 --- /dev/null +++ b/drivers/input/touchscreen/FT5346/focaltech_test/src/focaltech_test_global.c @@ -0,0 +1,535 @@ +/************************************************************************ +* Copyright (C) 2012-2015, Focaltech Systems (R)£¬All Rights Reserved. +* Copyright (C) 2018 XiaoMi, Inc. +* +* File Name: focaltech_test_global.c +* +* Author: Software Development Team, AE +* +* Created: 2016-08-01 +* +* Abstract: global function for test +* +************************************************************************/ + +#include +#include +#include +#include +#include +#include + +#include "../include/focaltech_test_ini.h" +#include "../focaltech_test_config.h" +#include "../include/focaltech_test_main.h" +#include "../../focaltech_global/focaltech_ic_table.h" + +#define DEVIDE_MODE_ADDR 0x00 + +/*buff length*/ +#define BUFF_LEN_STORE_MSG_AREA 1024*10 +#define BUFF_LEN_MSG_AREA_LINE2 1024*4 +#define BUFF_LEN_STORE_DATA_AREA 1024*80 +#define BUFF_LEN_TMP_BUFFER 1024*16 + + +char *g_pTmpBuff = NULL; +char *g_pStoreMsgArea = NULL; +int g_lenStoreMsgArea = 0; +char *g_pMsgAreaLine2 = NULL; +int g_lenMsgAreaLine2 = 0; +char *g_pStoreDataArea = NULL; +int g_lenStoreDataArea = 0; +unsigned char m_ucTestItemCode = 0; +int m_iStartLine = 0; +int m_iTestDataCount = 0; +char *TestResult = NULL; +int TestResultLen = 0; + +/*ÄÚ´æÉêÇ뷽ʽ*/ +#define FTS_MALLOC_TYPE 1 +enum enum_malloc_mode { + kmalloc_mode = 0, + vmalloc_mode = 1, +}; + +struct StruScreenSeting g_ScreenSetParam; +struct stTestItem g_stTestItem[1][MAX_TEST_ITEM]; +struct structSCapConfEx g_stSCapConfEx; + +int g_TestItemNum = 0; +char g_strIcName[20] = {0}; +char *g_pStoreAllData = NULL; + + +int GetPrivateProfileString(char *section, char *ItemName, char *defaultvalue, char *returnValue, char *IniFile) +{ + char value[512] = {0}; + int len = 0; + + if (NULL == returnValue) { + FTS_TEST_DBG("[FTS] returnValue==NULL in function %s.", __func__); + return 0; + } + + if (ini_get_key(IniFile, section, ItemName, value) < 0) { + if (NULL != defaultvalue) + memcpy(value, defaultvalue, strlen(defaultvalue)); + sprintf(returnValue, "%s", value); + return 0; + } else { + len = sprintf(returnValue, "%s", value); + } + + return len; +} + +void focal_msleep(int ms) +{ + msleep(ms); +} + +void SysDelay(int ms) +{ + msleep(ms); +} + +int focal_abs(int value) +{ + if (value < 0) + value = 0 - value; + + return value; +} + +/************************************************************************ +* Name: SqrtNew +* Brief: calculate sqrt of input. +* Input: unsigned int n +* Output: none +* Return: sqrt of n. +***********************************************************************/ +unsigned int SqrtNew(unsigned int n) +{ + unsigned int val = 0, last = 0; + unsigned char i = 0;; + + if (n < 6) { + if (n < 2) { + return n; + } + return n/2; + } + val = n; + i = 0; + while (val > 1) { + val >>= 1; + i++; + } + val <<= (i >> 1); + val = (val + val + val) >> 1; + do { + last = val; + val = ((val + n/val) >> 1); + } while (focal_abs(val-last) > pre); + return val; +} + +void *fts_malloc(size_t size) +{ + if (FTS_MALLOC_TYPE == kmalloc_mode) { + return kmalloc(size, GFP_ATOMIC); + } else if (FTS_MALLOC_TYPE == vmalloc_mode) { + return vmalloc(size); + } else { + FTS_TEST_DBG("invalid malloc. \n"); + return NULL; + } + + return NULL; +} + +void fts_free(void *p) +{ + if (FTS_MALLOC_TYPE == kmalloc_mode) { + return kfree(p); + } else if (FTS_MALLOC_TYPE == vmalloc_mode) { + return vfree(p); + } else { + FTS_TEST_DBG("invalid free. \n"); + return ; + } + + return ; +} + +void OnInit_InterfaceCfg(char *strIniFile) +{ + char str[128] = {0}; + + FTS_TEST_FUNC_ENTER(); + + GetPrivateProfileString("Interface", "IC_Type", "FT5X36", str, strIniFile); + g_ScreenSetParam.iSelectedIC = fts_ic_table_get_ic_code_from_ic_name(str); + FTS_TEST_INFO(" IC code :0x%02x. ", g_ScreenSetParam.iSelectedIC); + + + GetPrivateProfileString("Interface", "Normalize_Type", 0, str, strIniFile); + g_ScreenSetParam.isNormalize = fts_atoi(str); + + FTS_TEST_FUNC_EXIT(); + +} +/************************************************************************ +* Name: ReadReg(Same function name as FT_MultipleTest) +* Brief: Read Register +* Input: RegAddr +* Output: RegData +* Return: Comm Code. Code = 0x00 is OK, else fail. +***********************************************************************/ +int ReadReg(unsigned char RegAddr, unsigned char *RegData) +{ + int iRet; + if (NULL == fts_i2c_read_test) { + FTS_TEST_DBG("[focal] %s fts_i2c_read_test == NULL !!! ", __func__); + return (ERROR_CODE_INVALID_COMMAND); + } + + iRet = fts_i2c_read_test(&RegAddr, 1, RegData, 1); + + if (iRet >= 0) + return (ERROR_CODE_OK); + else + return (ERROR_CODE_COMM_ERROR); +} + +/************************************************************************ +* Name: WriteReg(Same function name as FT_MultipleTest) +* Brief: Write Register +* Input: RegAddr, RegData +* Output: null +* Return: Comm Code. Code = 0x00 is OK, else fail. +***********************************************************************/ +int WriteReg(unsigned char RegAddr, unsigned char RegData) +{ + int iRet; + unsigned char cmd[2] = {0}; + if (NULL == fts_i2c_write_test) { + FTS_TEST_DBG("[focal] %s fts_i2c_write_test == NULL !!!", __func__); + return (ERROR_CODE_INVALID_COMMAND); + } + cmd[0] = RegAddr; + cmd[1] = RegData; + iRet = fts_i2c_write_test(cmd, 2); + + if (iRet >= 0) + return (ERROR_CODE_OK); + else + return (ERROR_CODE_COMM_ERROR); +} +/************************************************************************ +* Name: Comm_Base_IIC_IO(Same function name as FT_MultipleTest) +* Brief: Write/Read Data by IIC +* Input: pWriteBuffer, iBytesToWrite, iBytesToRead +* Output: pReadBuffer +* Return: Comm Code. Code = 0x00 is OK, else fail. +***********************************************************************/ +unsigned char Comm_Base_IIC_IO(unsigned char *pWriteBuffer, int iBytesToWrite, unsigned char *pReadBuffer, int iBytesToRead) +{ + int iRet; + + if (NULL == fts_i2c_read_test) { + FTS_TEST_DBG("[focal] %s fts_i2c_read_test == NULL !!! ", __func__); + return (ERROR_CODE_INVALID_COMMAND); + } + + if (iBytesToRead > 0) { + iRet = fts_i2c_read_test(pWriteBuffer, iBytesToWrite, pReadBuffer, iBytesToRead); + } else { + iRet = fts_i2c_write_test(pWriteBuffer, iBytesToWrite); + } + + if (iRet >= 0) + return (ERROR_CODE_OK); + else + return (ERROR_CODE_COMM_ERROR); +} +/************************************************************************ +* Name: EnterWork(Same function name as FT_MultipleTest) +* Brief: Enter Work Mode +* Input: null +* Output: null +* Return: Comm Code. Code = 0x00 is OK, else fail. +***********************************************************************/ +unsigned char EnterWork(void) +{ + unsigned char RunState = 0; + unsigned char ReCode = ERROR_CODE_COMM_ERROR; + + FTS_TEST_FUNC_ENTER(); + ReCode = ReadReg(DEVIDE_MODE_ADDR, &RunState); + if (ReCode == ERROR_CODE_OK) { + if (((RunState>>4)&0x07) == 0x00) { + ReCode = ERROR_CODE_OK; + } else { + ReCode = WriteReg(DEVIDE_MODE_ADDR, 0); + if (ReCode == ERROR_CODE_OK) { + ReCode = ReadReg(DEVIDE_MODE_ADDR, &RunState); + if (ReCode == ERROR_CODE_OK) { + if (((RunState>>4)&0x07) == 0x00) { + ReCode = ERROR_CODE_OK; + } else { + ReCode = ERROR_CODE_COMM_ERROR; + } + } else + FTS_TEST_ERROR("EnterWork read DEVIDE_MODE_ADDR error 3."); + } else + FTS_TEST_ERROR("EnterWork write DEVIDE_MODE_ADDR error 2."); + } + } else + FTS_TEST_ERROR("EnterWork read DEVIDE_MODE_ADDR error 1."); + + FTS_TEST_FUNC_EXIT(); + + return ReCode; + +} +/************************************************************************ +* Name: EnterFactory +* Brief: enter Fcatory Mode +* Input: null +* Output: null +* Return: Comm Code. Code = 0 is OK, else fail. +***********************************************************************/ +unsigned char EnterFactory(void) +{ + unsigned char RunState = 0; + int index = 0; + unsigned char ReCode = ERROR_CODE_COMM_ERROR; + + FTS_TEST_FUNC_ENTER(); + ReCode = ReadReg(DEVIDE_MODE_ADDR, &RunState); + if (ReCode == ERROR_CODE_OK) { + if (((RunState>>4)&0x07) == 0x04) { + ReCode = ERROR_CODE_OK; + } else { + ReCode = WriteReg(DEVIDE_MODE_ADDR, 0x40); + if (ReCode == ERROR_CODE_OK) { + for (index = 0; index < 20; ++index) { + ReCode = ReadReg(DEVIDE_MODE_ADDR, &RunState); + if (ReCode == ERROR_CODE_OK) { + if (((RunState>>4)&0x07) == 0x04) { + ReCode = ERROR_CODE_OK; + break; + } else { + ReCode = ERROR_CODE_COMM_ERROR; + } + } + SysDelay(50); + } + if (ReCode != ERROR_CODE_OK) + FTS_TEST_ERROR("EnterFactory read DEVIDE_MODE_ADDR error 3."); + } else + FTS_TEST_ERROR("EnterFactory write DEVIDE_MODE_ADDR error 2."); + } + } else + FTS_TEST_ERROR("EnterFactory read DEVIDE_MODE_ADDR error 1."); + + FTS_TEST_FUNC_EXIT(); + return ReCode; +} + +/************************************************************************ +* Name: fts_SetTestItemCodeName +* Brief: set test item code and name +* Input: null +* Output: null +* Return: +**********************************************************************/ + +void fts_SetTestItemCodeName(unsigned char ucitemcode) +{ + g_stTestItem[0][g_TestItemNum].ItemCode = ucitemcode; + + g_stTestItem[0][g_TestItemNum].TestNum = g_TestItemNum; + g_stTestItem[0][g_TestItemNum].TestResult = RESULT_NULL; + g_TestItemNum++; +} + +/************************************************************************ +* Name: InitTest +* Brief: Init all param before test +* Input: none +* Output: none +* Return: none +***********************************************************************/ +int InitTest(void) +{ + int ret = 0; + ret = AllocateMemory(); + if (ret < 0) + return -EPERM; + + InitStoreParamOfTestData(); + + g_stSCapConfEx.ChannelXNum = 0; + g_stSCapConfEx.ChannelYNum = 0; + g_stSCapConfEx.KeyNum = 0; + g_stSCapConfEx.KeyNumTotal = 6; + + return 0; + +} + +/************************************************************************ +* Name: FinishTest +* Brief: Init all param before test +* Input: none +* Output: none +* Return: none +***********************************************************************/ +void FinishTest(void) +{ + MergeAllTestData(); + FreeMemory(); +} + + +/************************************************************************ +* Name: InitStoreParamOfTestData +* Brief: Init store param of test data +* Input: none +* Output: none +* Return: none +***********************************************************************/ +void InitStoreParamOfTestData(void) +{ + g_lenStoreMsgArea = 0; + + g_lenStoreMsgArea += sprintf(g_pStoreMsgArea, "ECC, 85, 170, IC Name, %s, IC Code, %x\n", g_strIcName, g_ScreenSetParam.iSelectedIC); + + + + g_lenMsgAreaLine2 = 0; + + + + g_lenStoreDataArea = 0; + m_iStartLine = 11; + + m_iTestDataCount = 0; +} +/************************************************************************ +* Name: MergeAllTestData +* Brief: Merge All Data of test result +* Input: none +* Output: none +* Return: none +***********************************************************************/ +void MergeAllTestData(void) +{ + int iLen = 0; + + + iLen = sprintf(g_pTmpBuff, "TestItem, %d, ", m_iTestDataCount); + memcpy(g_pStoreMsgArea+g_lenStoreMsgArea, g_pTmpBuff, iLen); + g_lenStoreMsgArea += iLen; + + + memcpy(g_pStoreMsgArea+g_lenStoreMsgArea, g_pMsgAreaLine2, g_lenMsgAreaLine2); + g_lenStoreMsgArea += g_lenMsgAreaLine2; + + + iLen = sprintf(g_pTmpBuff, "\n\n\n\n\n\n\n\n\n"); + memcpy(g_pStoreMsgArea+g_lenStoreMsgArea, g_pTmpBuff, iLen); + g_lenStoreMsgArea += iLen; + + + memcpy(g_pStoreAllData, g_pStoreMsgArea, g_lenStoreMsgArea); + + + if (0 != g_lenStoreDataArea) { + memcpy(g_pStoreAllData+g_lenStoreMsgArea, g_pStoreDataArea, g_lenStoreDataArea); + } + + + + FTS_TEST_DBG("lenStoreMsgArea=%d, lenStoreDataArea = %d", g_lenStoreMsgArea, g_lenStoreDataArea); +} + + + +/************************************************************************ +* Name: AllocateMemory +* Brief: Allocate pointer Memory +* Input: none +* Output: none +* Return: none +***********************************************************************/ +int AllocateMemory(void) +{ + + g_pStoreMsgArea = NULL; + if (NULL == g_pStoreMsgArea) + g_pStoreMsgArea = fts_malloc(BUFF_LEN_STORE_MSG_AREA); + if (NULL == g_pStoreMsgArea) + goto ERR; + + g_pMsgAreaLine2 = NULL; + if (NULL == g_pMsgAreaLine2) + g_pMsgAreaLine2 = fts_malloc(BUFF_LEN_MSG_AREA_LINE2); + if (NULL == g_pMsgAreaLine2) + goto ERR; + + g_pStoreDataArea = NULL; + if (NULL == g_pStoreDataArea) + g_pStoreDataArea = fts_malloc(BUFF_LEN_STORE_DATA_AREA); + if (NULL == g_pStoreDataArea) + goto ERR; + + g_pTmpBuff = NULL; + if (NULL == g_pTmpBuff) + g_pTmpBuff = fts_malloc(BUFF_LEN_TMP_BUFFER); + if (NULL == g_pTmpBuff) + goto ERR; + + TestResult = NULL; + if (NULL == TestResult) + TestResult = fts_malloc(BUFF_LEN_TMP_BUFFER); + if (NULL == TestResult) + goto ERR; + + return 0; + +ERR: + FTS_TEST_ERROR("fts_malloc memory failed in function."); + return -EPERM; + +} + +/************************************************************************ +* Name: FreeMemory +* Brief: Release pointer memory +* Input: none +* Output: none +* Return: none +***********************************************************************/ +void FreeMemory(void) +{ + + if (NULL != g_pStoreMsgArea) + fts_free(g_pStoreMsgArea); + + if (NULL != g_pMsgAreaLine2) + fts_free(g_pMsgAreaLine2); + + if (NULL != g_pStoreDataArea) + fts_free(g_pStoreDataArea); + + if (NULL != g_pTmpBuff) + fts_free(g_pTmpBuff); + + +} + + diff --git a/drivers/input/touchscreen/FT5346/focaltech_test/src/focaltech_test_ini.c b/drivers/input/touchscreen/FT5346/focaltech_test/src/focaltech_test_ini.c new file mode 100644 index 0000000000000..d5eba110d32d0 --- /dev/null +++ b/drivers/input/touchscreen/FT5346/focaltech_test/src/focaltech_test_ini.c @@ -0,0 +1,432 @@ +/************************************************************************ +* Copyright (C) 2012-2015, Focaltech Systems (R)£¬All Rights Reserved. +* Copyright (C) 2018 XiaoMi, Inc. +* +* File Name: focaltech_test_ini.c +* +* Author: Software Development Team, AE +* +* Created: 2016-08-01 +* +* Abstract: parsing function of INI file +* +************************************************************************/ +#include +#include +#include +#include + +#include "../include/focaltech_test_ini.h" +#include "../include/focaltech_test_main.h" + + +char CFG_SSL = '['; /* Section Symbol --Can be defined according to the special need to change. For example {} */ +char CFG_SSR = ']'; /* Section Symbol --Can be defined according to the special need to change. For example {} */ +char CFG_NIS = ':'; /* Separator between name and index */ +char CFG_NTS = '#'; /* annotator */ +char CFG_EQS = '='; /* The equal sign */ + + +ST_INI_FILE_DATA *g_st_ini_file_data = NULL; +int g_used_key_num = 0; + + +static int ini_file_get_line(char *filedata, char *buffer, int maxlen); +static long fts_atol(char *nptr); + + +/* Works only for digits and letters, but small and fast */ +#define TOLOWER(x) ((x) | 0x20) + +int fts_strncmp(const char *cs, const char *ct, size_t count) +{ + unsigned char c1 = 0, c2 = 0; + + while (count) { + c1 = TOLOWER(*cs++); + c2 = TOLOWER(*ct++); + if (c1 != c2) + return c1 < c2 ? -1 : 1; + if (!c1) + break; + count--; + } + return 0; +} + +/************************************************************* +Function: Get the value of key +Input: char * filedata; char * section; char * key +Output: char * value¡¡key +Return: 0 SUCCESS + -1 can not find section + -2 can not find key + -10 File open failed + -12 File read failed + -14 File format error + -22 Out of buffer size +Note: +*************************************************************/ +int ini_get_key(char *filedata, char *section, char *key, char *value) +{ + int i = 0; + int ret = -2; + for (i = 0; i < g_used_key_num; i++) { + if (fts_strncmp(section, g_st_ini_file_data[i].pSectionName, + g_st_ini_file_data[i].iSectionNameLen) != 0) + continue; + + if (strlen(key) == g_st_ini_file_data[i].iKeyNameLen) { + if (fts_strncmp(key, g_st_ini_file_data[i].pKeyName, g_st_ini_file_data[i].iKeyNameLen) == 0) + + { + memcpy(value, g_st_ini_file_data[i].pKeyValue, g_st_ini_file_data[i].iKeyValueLen); + ret = 0; + break; + } + } + } + + return ret; +} + +/************************************************************* +Function: Remove empty character on the right side of the string +Input: char * buf --String pointer +Output: +Return: String pointer +Note: +*************************************************************/ +char *ini_str_trim_r(char *buf) +{ + int len, i; + char tmp[512]; + + memset(tmp, 0, sizeof(tmp)); + len = strlen(buf); + + + memset(tmp, 0x00, len); + for (i = 0; i < len; i++) { + if (buf[i] != ' ') + break; + } + if (i < len) { + strncpy(tmp, (buf+i), (len-i)); + } + strncpy(buf, tmp, len); + + return buf; +} + +/************************************************************* +Function: Remove empty character on the left side of the string +Input: char * buf --String pointer +Output: +Return: String pointer +Note: +*************************************************************/ +char *ini_str_trim_l(char *buf) +{ + int len, i; + char tmp[512]; + + memset(tmp, 0, sizeof(tmp)); + len = strlen(buf); + + + memset(tmp, 0x00, len); + + for (i = 0; i < len; i++) { + if (buf[len-i-1] != ' ') + break; + } + if (i < len) { + strncpy(tmp, buf, len-i); + } + strncpy(buf, tmp, len); + + return buf; +} + +/************************************************************* +Function: Read a line from file +Input: FILE *fp; int maxlen-- Maximum length of buffer +Output: char *buffer -- A string +Return: >0 Actual read length + -1 End of file + -2 Error reading file +Note: +*************************************************************/ +static int ini_file_get_line(char *filedata, char *buffer, int maxlen) +{ + int i = 0; + int j = 0; + int iRetNum = -1; + char ch1 = '\0'; + + for (i = 0, j = 0; i < maxlen; j++) { + ch1 = filedata[j]; + iRetNum = j+1; + if (ch1 == '\n' || ch1 == '\r') { + ch1 = filedata[j+1]; + if (ch1 == '\n' || ch1 == '\r') { + iRetNum++; + } + + break; + } else if (ch1 == 0x00) { + iRetNum = -1; + break; + } else { + buffer[i++] = ch1; /* ignore carriage return */ + } + } + buffer[i] = '\0'; + + return iRetNum; +} + +int my_fts_atoi(const char *str) +{ + int result = 0; + int signal = 1; /* The default is positive number*/ + if ((*str >= '0' && *str <= '9') || *str == '-' || *str == '+') { + if (*str == '-' || *str == '+') { + if (*str == '-') + signal = -1; /*enter negative number*/ + str++; + } + } else + return 0; + /*start transform*/ + while (*str >= '0' && *str <= '9') + result = result*10 + (*str++ - '0'); + + return signal*result; +} + +int isspace(int x) +{ + if (x == ' ' || x == '\t' || x == '\n' || x == '\f' || x == '\b' || x == '\r') + return 1; + else + return 0; +} + +int isdigit(int x) +{ + if (x <= '9' && x >= '0') + return 1; + else + return 0; + +} + +static long fts_atol(char *nptr) +{ + int c; /* current char */ + long total; /* current total */ + int sign; /* if ''-'', then negative, otherwise positive */ + /* skip whitespace */ + while (isspace((int)(unsigned char)*nptr)) + ++nptr; + c = (int)(unsigned char)*nptr++; + sign = c; /* save sign indication */ + if (c == '-' || c == '+') + c = (int)(unsigned char)*nptr++; /* skip sign */ + total = 0; + while (isdigit(c)) { + total = 10 * total + (c - '0'); /* accumulate digit */ + c = (int)(unsigned char)*nptr++; /* get next char */ + } + if (sign == '-') + return -total; + else + return total; /* return result, negated if necessary */ +} + +int fts_atoi(char *nptr) +{ + return (int)fts_atol(nptr); +} + +int init_key_data(void) +{ + int i = 0; + + FTS_TEST_FUNC_ENTER(); + + g_used_key_num = 0; + + g_st_ini_file_data = NULL; + if (NULL == g_st_ini_file_data) + g_st_ini_file_data = fts_malloc(sizeof(ST_INI_FILE_DATA)*MAX_KEY_NUM); + if (NULL == g_st_ini_file_data) { + FTS_TEST_ERROR("fts_malloc failed in function."); + return -EPERM; + } + for (i = 0; i < MAX_KEY_NUM; i++) { + memset(g_st_ini_file_data[i].pSectionName, 0, MAX_KEY_NAME_LEN); + memset(g_st_ini_file_data[i].pKeyName, 0, MAX_KEY_NAME_LEN); + memset(g_st_ini_file_data[i].pKeyValue, 0, MAX_KEY_VALUE_LEN); + g_st_ini_file_data[i].iSectionNameLen = 0; + g_st_ini_file_data[i].iKeyNameLen = 0; + g_st_ini_file_data[i].iKeyValueLen = 0; + } + + FTS_TEST_FUNC_EXIT(); + return 1; +} + +int release_key_data(void) +{ + if (NULL != g_st_ini_file_data) + fts_free(g_st_ini_file_data); + + return 0; +} +int print_key_data(void) +{ + int i = 0; + + + + FTS_TEST_DBG("g_used_key_num = %d", g_used_key_num); + for (i = 0; i < MAX_KEY_NUM; i++) { + + FTS_TEST_DBG("pSectionName_%d:%s, pKeyName_%d:%s\n,pKeyValue_%d:%s", + i, g_st_ini_file_data[i].pSectionName, + i, g_st_ini_file_data[i].pKeyName, + i, g_st_ini_file_data[i].pKeyValue + ); + + } + + return 1; +} +/************************************************************* +Function: Read all the parameters and values to the structure. +Return: Returns the number of key. If you go wrong, return a negative number. + -10 File open failed + -12 File read failed + -14 File format error +Note: +*************************************************************/ +int ini_get_key_data(char *filedata) +{ + + char buf1[MAX_CFG_BUF + 1] = {0}; + int n = 0; + int ret = 0; + int dataoff = 0; + int iEqualSign = 0; + int i = 0; + char tmpSectionName[MAX_CFG_BUF + 1] = {0}; + + + + FTS_TEST_FUNC_ENTER(); + + ret = init_key_data();/*init*/ + if (ret < 0) { + return -EPERM; + } + + g_used_key_num = 0; + while (1) {/*find section */ + ret = CFG_ERR_READ_FILE; + n = ini_file_get_line(filedata+dataoff, buf1, MAX_CFG_BUF); + if (n < -1) + goto cfg_scts_end; + if (n < 0) + break;/* file end */ + if (n >= MAX_CFG_BUF) { + FTS_TEST_ERROR("Error Length:%d\n", n); + goto cfg_scts_end; + } + + dataoff += n; + + n = strlen(ini_str_trim_l(ini_str_trim_r(buf1))); + if (n == 0 || buf1[0] == CFG_NTS) + continue; /* A blank line or a comment line */ + ret = CFG_ERR_FILE_FORMAT; + + if (n > 2 && ((buf1[0] == CFG_SSL && buf1[n-1] != CFG_SSR))) { + FTS_TEST_ERROR("Bad Section:%s\n", buf1); + goto cfg_scts_end; + } + + + if (buf1[0] == CFG_SSL) { + g_st_ini_file_data[g_used_key_num].iSectionNameLen = n-2; + if (MAX_KEY_NAME_LEN < g_st_ini_file_data[g_used_key_num].iSectionNameLen) { + ret = CFG_ERR_OUT_OF_LEN; + FTS_TEST_ERROR("MAX_KEY_NAME_LEN: CFG_ERR_OUT_OF_LEN\n"); + goto cfg_scts_end; + } + + buf1[n-1] = 0x00; + strcpy((char *)tmpSectionName, buf1+1); + + + continue; + } + + + strcpy(g_st_ini_file_data[g_used_key_num].pSectionName, tmpSectionName); + g_st_ini_file_data[g_used_key_num].iSectionNameLen = strlen(tmpSectionName); + + iEqualSign = 0; + for (i = 0; i < n; i++) { + if (buf1[i] == CFG_EQS) { + iEqualSign = i; + break; + } + } + if (0 == iEqualSign) + continue; + /* before equal sign is assigned to the key name*/ + g_st_ini_file_data[g_used_key_num].iKeyNameLen = iEqualSign; + if (MAX_KEY_NAME_LEN < g_st_ini_file_data[g_used_key_num].iKeyNameLen) { + ret = CFG_ERR_OUT_OF_LEN; + FTS_TEST_ERROR("MAX_KEY_NAME_LEN: CFG_ERR_OUT_OF_LEN\n"); + goto cfg_scts_end; + } + memcpy(g_st_ini_file_data[g_used_key_num].pKeyName, + buf1, g_st_ini_file_data[g_used_key_num].iKeyNameLen); + + /* After equal sign is assigned to the key value*/ + g_st_ini_file_data[g_used_key_num].iKeyValueLen = n-iEqualSign-1; + if (MAX_KEY_VALUE_LEN < g_st_ini_file_data[g_used_key_num].iKeyValueLen) { + ret = CFG_ERR_OUT_OF_LEN; + FTS_TEST_ERROR("MAX_KEY_VALUE_LEN: CFG_ERR_OUT_OF_LEN\n"); + goto cfg_scts_end; + } + memcpy(g_st_ini_file_data[g_used_key_num].pKeyValue, + buf1 + iEqualSign+1, g_st_ini_file_data[g_used_key_num].iKeyValueLen); + + + ret = g_used_key_num; + + g_used_key_num++; /*Parameter number accumulation*/ + if (MAX_KEY_NUM < g_used_key_num) { + ret = CFG_ERR_TOO_MANY_KEY_NUM; + FTS_TEST_ERROR("MAX_KEY_NUM: CFG_ERR_TOO_MANY_KEY_NUM\n"); + goto cfg_scts_end; + } + } + + + + FTS_TEST_FUNC_EXIT(); + + return 0; + +cfg_scts_end: + + FTS_TEST_FUNC_EXIT(); + return ret; +} + diff --git a/drivers/input/touchscreen/FT5346/focaltech_test/src/focaltech_test_main.c b/drivers/input/touchscreen/FT5346/focaltech_test/src/focaltech_test_main.c new file mode 100644 index 0000000000000..4f5dd43dbe8b2 --- /dev/null +++ b/drivers/input/touchscreen/FT5346/focaltech_test/src/focaltech_test_main.c @@ -0,0 +1,253 @@ +/************************************************************************ +* Copyright (C) 2012-2016, Focaltech Systems (R)£¬All Rights Reserved. + * Copyright (C) 2018 XiaoMi, Inc. +* +* File Name: focaltech_test_main.c +* +* Author: Software Development Team, AE +* +* Created: 2016-08-01 +* +* Abstract: test entry for all IC +* +************************************************************************/ +#include +#include +#include +#include + + + +#include "../include/focaltech_test_main.h" +#include "../focaltech_test_config.h" +#include "../include/focaltech_test_supported_ic.h" +#include "../include/focaltech_test_ini.h" +#include "../../focaltech_global/focaltech_ic_table.h" + + +#define FTS_TEST_STORE_DATA_SIZE 80*1024 + +FTS_I2C_READ_FUNCTION fts_i2c_read_test; +FTS_I2C_WRITE_FUNCTION fts_i2c_write_test; + +char *g_testparamstring = NULL; + +struct StTestFuncs g_stTestFuncs; + + +int init_i2c_read_func(FTS_I2C_READ_FUNCTION fpI2C_Read) +{ + unsigned char value = 0; + unsigned char recode = 0; + + FTS_TEST_FUNC_ENTER(); + + fts_i2c_read_test = fpI2C_Read; + if (NULL == fts_i2c_read_test) { + FTS_TEST_DBG("[focal] %s fts_i2c_read_test == NULL ", __func__); + } + + + recode = ReadReg(0xa6, &value); + if (recode != ERROR_CODE_OK) { + FTS_TEST_ERROR("[focal] ReadReg Error, code: %d ", recode); + } else { + FTS_TEST_DBG("[focal] ReadReg successed, Addr: 0xa6, value: 0x%02x ", value); + } + + + FTS_TEST_FUNC_EXIT(); + return 0; +} + +int init_i2c_write_func(FTS_I2C_WRITE_FUNCTION fpI2C_Write) +{ + FTS_TEST_FUNC_ENTER(); + + fts_i2c_write_test = fpI2C_Write; + if (NULL == fts_i2c_write_test) { + FTS_TEST_ERROR("[focal] fts_i2c_read_test == NULL "); + } + + FTS_TEST_FUNC_EXIT(); + return 0; +} + + + +/************************************************************************ +* Name: set_param_data +* Brief: load Config. Set IC series, init test items, init basic threshold, int detailThreshold, and set order of test items +* Input: TestParamData, from ini file. +* Output: none +* Return: 0. No sense, just according to the old format. +***********************************************************************/ +int set_param_data(char *TestParamData) +{ + int ret = 0; + + FTS_TEST_FUNC_ENTER(); + + g_testparamstring = TestParamData; + + ret = ini_get_key_data(g_testparamstring); + if (ret < 0) { + FTS_TEST_ERROR("ini_get_key_data error."); + return ret; + } + + + + OnInit_InterfaceCfg(g_testparamstring); + + /*Get IC Name*/ + fts_ic_table_get_ic_name_from_ic_code(g_ScreenSetParam.iSelectedIC, g_strIcName); + + + + if (g_stTestFuncs.OnInit_TestItem) { + g_stTestFuncs.OnInit_TestItem(g_testparamstring); + + } + + if (g_stTestFuncs.OnInit_BasicThreshold) { + g_stTestFuncs.OnInit_BasicThreshold(g_testparamstring); + + + } + + if (IC_Capacitance_Type == Self_Capacitance) { + OnInit_SCap_DetailThreshold(g_testparamstring); + } else if (IC_Capacitance_Type == Mutual_Capacitance) { + OnInit_MCap_DetailThreshold(g_testparamstring); + } else if (IC_Capacitance_Type == IDC_Capacitance) { + OnInit_Incell_DetailThreshold(g_testparamstring); + } + + if (g_stTestFuncs.SetTestItem) { + g_stTestFuncs.SetTestItem(); + } + + FTS_TEST_FUNC_EXIT(); + + return 0; +} + +/************************************************************************ +* Name: start_test_tp +* Brief: Test entry. Select test items based on IC series +* Input: none +* Output: none +* Return: Test Result, PASS or FAIL +***********************************************************************/ + +boolean start_test_tp(void) +{ + boolean bTestResult = false; + + FTS_TEST_FUNC_ENTER(); + + FTS_TEST_DBG("IC_%s Test", g_strIcName); + + if (g_stTestFuncs.Start_Test) { + + bTestResult = g_stTestFuncs.Start_Test(); + + } else { + FTS_TEST_DBG("[Focal]Start_Test func null!\n"); + bTestResult = false; + } + + EnterWork(); + + FTS_TEST_FUNC_EXIT(); + + return bTestResult; +} +/************************************************************************ +* Name: get_test_data +* Brief: Get test data based on IC series +* Input: none +* Output: pTestData, External application for memory, buff size >= 1024*8 +* Return: the length of test data. if length > 0, got data;else ERR. +***********************************************************************/ +int get_test_data(char *pTestData) +{ + int iLen = 0; + FTS_TEST_DBG("[focal] %s start ", __func__); + + + if (g_stTestFuncs.Get_test_data) { + + iLen = g_stTestFuncs.Get_test_data(pTestData); + + } else { + FTS_TEST_DBG("[Focal]Get_test_data func null!\n"); + } + + FTS_TEST_FUNC_EXIT(); + return iLen; +} + +int focaltech_test_main_init(void) +{ + int ret = 0; + + FTS_TEST_FUNC_ENTER(); + + /*Allocate memory, storage test results*/ + g_pStoreAllData = NULL; + if (NULL == g_pStoreAllData) + g_pStoreAllData = fts_malloc(FTS_TEST_STORE_DATA_SIZE); + if (NULL == g_pStoreAllData) + return -EPERM; + + /* Allocate memory, assigned to detail threshold structure*/ + ret = malloc_struct_DetailThreshold(); + + FTS_TEST_FUNC_EXIT(); + + if (ret < 0) + return ret; + + return 0; +} +/************************************************************************ +* Name: free_test_param_data +* Brief: release printer memory +* Input: none +* Output: none +* Return: none. +***********************************************************************/ +int focaltech_test_main_exit(void) +{ + + FTS_TEST_DBG("[focal] release memory -start."); + + TestResultLen = 0; + + /* Release memory test results */ + if (NULL != g_pStoreAllData) { + FTS_TEST_DBG("[FTS] release memory g_pStoreAllData."); + fts_free(g_pStoreAllData); + g_pStoreAllData = NULL; + } + + + if (NULL != TestResult) { + fts_free(TestResult); + TestResult = NULL; + } + + + /* Releasing the memory of the detailed threshold structure */ + FTS_TEST_DBG("[FTS] release memory free_struct_DetailThreshold."); + free_struct_DetailThreshold(); + + + /* release memory of key data for ini file */ + release_key_data(); + FTS_TEST_DBG("[focal] release memory -end."); + return 0; +} + diff --git a/drivers/input/touchscreen/FT5346/focaltech_test/supported_ic/Makefile b/drivers/input/touchscreen/FT5346/focaltech_test/supported_ic/Makefile new file mode 100644 index 0000000000000..7db0f9243b1f2 --- /dev/null +++ b/drivers/input/touchscreen/FT5346/focaltech_test/supported_ic/Makefile @@ -0,0 +1,10 @@ +#drivers/input/touchscreen/mediatek/focaltech_ts/focaltech_test +# +# Makefile for test module +# +# Linux driver folder + + +obj-y += focaltech_test_config_ft5x46.o +obj-y += focaltech_test_ft5x46.o +obj-y += focaltech_test_supported_ic.o diff --git a/drivers/input/touchscreen/FT5346/focaltech_test/supported_ic/focaltech_test_config_ft5x46.c b/drivers/input/touchscreen/FT5346/focaltech_test/supported_ic/focaltech_test_config_ft5x46.c new file mode 100644 index 0000000000000..70aef9a55873d --- /dev/null +++ b/drivers/input/touchscreen/FT5346/focaltech_test/supported_ic/focaltech_test_config_ft5x46.c @@ -0,0 +1,524 @@ +/************************************************************************ +* Copyright (C) 2012-2015, Focaltech Systems (R)£¬All Rights Reserved. +* Copyright (C) 2018 XiaoMi, Inc. +* +* File Name: Focaltech_test_config_ft5x46.c +* +* Author: Software Development Team, AE +* +* Created: 2015-07-14 +* +* Abstract: Set Config for FT5X46\FT5X46i\FT5526\FT3X17\FT5436\FT3X27\FT5526i\FT5416\FT5426\FT5435 +* +************************************************************************/ +#include +#include + +#include "../include/focaltech_test_ini.h" +#include "../include/focaltech_test_supported_ic.h" +#include "../focaltech_test_config.h" + + +#if (FT5X46_TEST) + + +struct stCfg_FT5X46_TestItem g_stCfg_FT5X46_TestItem; +struct stCfg_FT5X46_BasicThreshold g_stCfg_FT5X46_BasicThreshold; + +void OnInit_FT5X46_TestItem(char *strIniFile) +{ + char str[512]; + + FTS_TEST_FUNC_ENTER(); + + + GetPrivateProfileString("TestItem", "FW_VERSION_TEST", "0", str, strIniFile); + g_stCfg_FT5X46_TestItem.FW_VERSION_TEST = fts_atoi(str); + + + GetPrivateProfileString("TestItem", "FACTORY_ID_TEST", "0", str, strIniFile); + g_stCfg_FT5X46_TestItem.FACTORY_ID_TEST = fts_atoi(str); + + + GetPrivateProfileString("TestItem", "PROJECT_CODE_TEST", "0", str, strIniFile); + g_stCfg_FT5X46_TestItem.PROJECT_CODE_TEST = fts_atoi(str); + + + GetPrivateProfileString("TestItem", "IC_VERSION_TEST", "0", str, strIniFile); + g_stCfg_FT5X46_TestItem.IC_VERSION_TEST = fts_atoi(str); + + + GetPrivateProfileString("TestItem", "LCM_ID_TEST", "0", str, strIniFile); + g_stCfg_FT5X46_TestItem.LCM_ID_TEST = fts_atoi(str); + + + GetPrivateProfileString("TestItem", "RAWDATA_TEST", "1", str, strIniFile); + g_stCfg_FT5X46_TestItem.RAWDATA_TEST = fts_atoi(str); + + + GetPrivateProfileString("TestItem", "ADC_DETECT_TEST", "1", str, strIniFile); + g_stCfg_FT5X46_TestItem.ADC_DETECT_TEST = fts_atoi(str); + + GetPrivateProfileString("TestItem", "SCAP_CB_TEST", "1", str, strIniFile); + g_stCfg_FT5X46_TestItem.SCAP_CB_TEST = fts_atoi(str); + + + GetPrivateProfileString("TestItem", "SCAP_RAWDATA_TEST", "1", str, strIniFile); + g_stCfg_FT5X46_TestItem.SCAP_RAWDATA_TEST = fts_atoi(str); + + + GetPrivateProfileString("TestItem", "CHANNEL_NUM_TEST", "1", str, strIniFile); + g_stCfg_FT5X46_TestItem.CHANNEL_NUM_TEST = fts_atoi(str); + + + GetPrivateProfileString("TestItem", "INT_PIN_TEST", "0", str, strIniFile); + g_stCfg_FT5X46_TestItem.INT_PIN_TEST = fts_atoi(str); + + + GetPrivateProfileString("TestItem", "RESET_PIN_TEST", "0", str, strIniFile); + g_stCfg_FT5X46_TestItem.RESET_PIN_TEST = fts_atoi(str); + + + GetPrivateProfileString("TestItem", "NOISE_TEST", "0", str, strIniFile); + g_stCfg_FT5X46_TestItem.NOISE_TEST = fts_atoi(str); + + + GetPrivateProfileString("TestItem", "WEAK_SHORT_CIRCUIT_TEST", "0", str, strIniFile); + g_stCfg_FT5X46_TestItem.WEAK_SHORT_CIRCUIT_TEST = fts_atoi(str); + + + GetPrivateProfileString("TestItem", "UNIFORMITY_TEST", "0", str, strIniFile); + g_stCfg_FT5X46_TestItem.UNIFORMITY_TEST = fts_atoi(str); + + + GetPrivateProfileString("TestItem", "CM_TEST", "0", str, strIniFile); + g_stCfg_FT5X46_TestItem.CM_TEST = fts_atoi(str); + + + GetPrivateProfileString("TestItem", "RAWDATA_MARGIN_TEST", "0", str, strIniFile); + g_stCfg_FT5X46_TestItem.RAWDATA_MARGIN_TEST = fts_atoi(str); + + + GetPrivateProfileString("TestItem", "PANEL_DIFFER_TEST", "0", str, strIniFile); + g_stCfg_FT5X46_TestItem.PANEL_DIFFER_TEST = fts_atoi(str); + + + GetPrivateProfileString("TestItem", "PANEL_DIFFER_UNIFORMITY_TEST", "0", str, strIniFile); + g_stCfg_FT5X46_TestItem.PANEL_DIFFER_UNIFORMITY_TEST = fts_atoi(str); + + + GetPrivateProfileString("TestItem", "TE_TEST", "0", str, strIniFile); + g_stCfg_FT5X46_TestItem.TE_TEST = fts_atoi(str); + + + GetPrivateProfileString("TestItem", "SITO_RAWDATA_UNIFORMITY_TEST", "0", str, strIniFile); + g_stCfg_FT5X46_TestItem.SITO_RAWDATA_UNIFORMITY_TEST = fts_atoi(str); + + + GetPrivateProfileString("TestItem", "PATTERN_TEST", "0", str, strIniFile); + g_stCfg_FT5X46_TestItem.PATTERN_TEST = fts_atoi(str); + + + GetPrivateProfileString("TestItem", "LCD_NOISE_TEST", "0", str, strIniFile); + g_stCfg_FT5X46_TestItem.LCD_NOISE_TEST = fts_atoi(str); + + FTS_TEST_FUNC_EXIT(); +} +void OnInit_FT5X46_BasicThreshold(char *strIniFile) +{ + char str[512]; + + FTS_TEST_FUNC_ENTER(); + + + GetPrivateProfileString("Basic_Threshold", "FW_VER_VALUE", "0", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.FW_VER_VALUE = fts_atoi(str); + + + GetPrivateProfileString("Basic_Threshold", "Factory_ID_Number", "255", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.Factory_ID_Number = fts_atoi(str); + + + GetPrivateProfileString("Basic_Threshold", "Project_Code", " ", str, strIniFile); + + sprintf(g_stCfg_FT5X46_BasicThreshold.Project_Code, "%s", str); + + + GetPrivateProfileString("Basic_Threshold", "IC_Version", "3", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.IC_Version = fts_atoi(str); + + + GetPrivateProfileString("Basic_Threshold", "LCM_ID", "1", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.LCM_ID = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "RawDataTest_Low_Min", "3000", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.RawDataTest_low_Min = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "RawDataTest_Low_Max", "15000", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.RawDataTest_Low_Max = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "RawDataTest_High_Min", "3000", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.RawDataTest_high_Min = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "RawDataTest_High_Max", "15000", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.RawDataTest_high_Max = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "RawDataTest_LowFreq", "0", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.RawDataTest_SetLowFreq = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "RawDataTest_HighFreq", "0", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.RawDataTest_SetHighFreq = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "Adc_Detect_Max", "0", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.AdcDetect_Max = fts_atoi(str); + + + GetPrivateProfileString("Basic_Threshold", "SCapCbTest_OFF_Min", "0", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.SCapCbTest_OFF_Min = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "SCapCbTest_OFF_Max", "240", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.SCapCbTest_OFF_Max = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "SCapCbTest_ON_Min", "0", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.SCapCbTest_ON_Min = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "SCapCbTest_ON_Max", "240", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.SCapCbTest_ON_Max = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "ScapCBTest_SetWaterproof_OFF", "0", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.SCapCbTest_SetWaterproof_OFF = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "ScapCBTest_SetWaterproof_ON", "240", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.SCapCbTest_SetWaterproof_ON = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "SCapCBTest_LetTx_Disable", "0", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.SCapCbTest_LetTx_Disable = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "SCapRawDataTest_OFF_Min", "5000", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.SCapRawDataTest_OFF_Min = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "SCapRawDataTest_OFF_Max", "8500", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.SCapRawDataTest_OFF_Max = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "SCapRawDataTest_ON_Min", "5000", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.SCapRawDataTest_ON_Min = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "SCapRawDataTest_ON_Max", "8500", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.SCapRawDataTest_ON_Max = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "SCapRawDataTest_SetWaterproof_OFF", "1", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.SCapRawDataTest_SetWaterproof_OFF = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "SCapRawDataTest_SetWaterproof_ON", "0", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.SCapRawDataTest_SetWaterproof_ON = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "SCapRawDataTest_LetTx_Disable", "0", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.SCapRawDataTest_LetTx_Disable = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "ChannelNumTest_Mapping", "1", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.bChannelTestMapping = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "ChannelNumTest_NoMapping", "0", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.bChannelTestNoMapping = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "ChannelNumTest_TxNum", "13", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.ChannelNumTest_TxNum = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "ChannelNumTest_RxNum", "24", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.ChannelNumTest_RxNum = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "ChannelNumTest_Tx_NP_Num", "13", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.ChannelNumTest_TxNpNum = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "ChannelNumTest_Rx_NP_Num", "24", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.ChannelNumTest_RxNpNum = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "ResetPinTest_RegAddr", "136", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.ResetPinTest_RegAddr = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "IntPinTest_RegAddr", "79", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.IntPinTest_RegAddr = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "IntPinTest_TestNum", "1", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.IntPinTest_TestNum = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "NoiseTest_Max", "20", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.NoiseTest_Max = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "NoiseTest_Frames", "32", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.NoiseTest_Frames = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "NoiseTest_Time", "1", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.NoiseTest_Time = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "NoiseTest_SampeMode", "0", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.NoiseTest_SampeMode = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "NoiseTest_NoiseMode", "0", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.NoiseTest_NoiseMode = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "NoiseTest_ShowTip", "0", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.NoiseTest_ShowTip = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "NoiseTest_GloveMode", "0", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.bNoiseTest_GloveMode = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "NoiseTest_RawdataMin", "5000", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.NoiseTest_RawdataMin = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "GloveNoiseTest_Coefficient", "100", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.GloveNoiseTest_Coefficient = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "Set_Frequency", "0", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.Set_Frequency = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "NoiseThreshold_Choose", "0", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.bNoiseThreshold_Choose = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "NoiseTest_Threshold", "50", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.NoiseTest_Threshold = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "NoiseTest_MinNGFrame", "0", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.NoiseTest_MinNgFrame = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "NoiseTest_TPToolProcess", "0", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.bNoiseTest_TPToolProcess = fts_atoi(str); + + + GetPrivateProfileString("Basic_Threshold", "WeakShortTest_CG", "2000", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.WeakShortTest_CG = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "WeakShortTest_CC", "2000", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.WeakShortTest_CC = fts_atoi(str); + + + GetPrivateProfileString("Basic_Threshold", "UniformityTest_Check_Tx", "0", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.Uniformity_CheckTx = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "UniformityTest_Check_Rx", "0", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.Uniformity_CheckRx = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "UniformityTest_Check_MinMax", "0", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.Uniformity_CheckMinMax = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "UniformityTest_Tx_Hole", "20", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.Uniformity_Tx_Hole = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "UniformityTest_Rx_Hole", "20", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.Uniformity_Rx_Hole = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "UniformityTest_MinMax_Hole", "70", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.Uniformity_MinMax_Hole = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "CMTest_Check_Min", "0", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.CMTest_CheckMin = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "CMTest_Check_Max", "0", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.CMTest_CheckMax = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "CMTest_Min_Hole", "0.5", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.CMTest_MinHole = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "CMTest_Max_Hole", "5", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.CMTest_MaxHole = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "RawdataMarginTest_Min", "10", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.RawdataMarginTest_Min = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "RawdataMarginTest_Max", "1", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.RawdataMarginTest_Max = fts_atoi(str); + + + GetPrivateProfileString("Basic_Threshold", "PanelDifferTest_Min", "150", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.PanelDifferTest_Min = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "PanelDifferTest_Max", "1000", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.PanelDifferTest_Max = fts_atoi(str); + + + GetPrivateProfileString("Basic_Threshold", "PanelDiffer_UniformityTest_Check_Tx", "0", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.PanelDiffer_UniformityTest_Check_Tx = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "PanelDiffer_UniformityTest_Check_Rx", "0", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.PanelDiffer_UniformityTest_Check_Rx = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "PanelDiffer_UniformityTest_Check_MinMax", "0", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.PanelDiffer_UniformityTest_Check_MinMax = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "PanelDiffer_UniformityTest_Tx_Hole", "20", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.PanelDiffer_UniformityTest_Tx_Hole = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "PanelDiffer_UniformityTest_Rx_Hole", "20", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.PanelDiffer_UniformityTest_Rx_Hole = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "PanelDiffer_UniformityTest_MinMax_Hole", "70", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.PanelDiffer_UniformityTest_MinMax_Hole = fts_atoi(str); + + + GetPrivateProfileString("Basic_Threshold", "SITO_RawdataUniformityTest_Check_Tx", "0", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.SITO_RawdtaUniformityTest_Check_Tx = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "SITO_RawdataUniformityTest_Check_Rx", "0", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.SITO_RawdtaUniformityTest_Check_Rx = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "SITO_RawdataUniformityTest_Tx_Hole", "10", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.SITO_RawdtaUniformityTest_Tx_Hole = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "SITO_RawdataUniformityTest_Rx_Hole", "10", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.SITO_RawdtaUniformityTest_Rx_Hole = fts_atoi(str); + + + GetPrivateProfileString("Basic_Threshold", "PramTest_Check_00", "1", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.bPattern00 = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "PramTest_Check_FF", "1", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.bPatternFF = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "PramTest_Check_55", "1", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.bPattern55 = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "PramTest_Check_AA", "1", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.bPatternAA = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "PramTest_Check_BIN", "1", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.bPatternBin = fts_atoi(str); + + + GetPrivateProfileString("Basic_Threshold", "WeakShortTest_CC_Rsen", "57", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.WeakShortTest_CC_Rsen = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "WeakShortTest_CapShortTest", "0", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.WeakShortTest_CapShortTest = fts_atoi(str); + + + GetPrivateProfileString("Basic_Threshold", "Lcd_Noise_Max_Frame", "200", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.Lcd_Noise_MaxFrame = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "Lcd_Noise_Conficient", "100", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.Lcd_Noise_Conficient = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "Lcd_Noise_Mode", "1", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.Lcd_Noise_Noise_Mode = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "Lcd_Noise_MaxNgPoint", "0", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.Lcd_Noise_MaxNgPoint = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "Lcd_Noise_FrameNum", "63", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.Lcd_Noise_FrameNum = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "Lcd_Noise_SetFrequency", "0", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.Lcd_Noise_SetFrequency = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "Lcd_Noise_NoiseThresholdMode", "0", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.Lcd_Noise_NoiseThresholdMode = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "Lcd_Noise_NoiseCoefficient", "200", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.Lcd_Noise_NoiseCoefficient = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "Lcd_Noise_NoiseMax", "50", str, strIniFile); + g_stCfg_FT5X46_BasicThreshold.Lcd_Noise_NoiseMax = fts_atoi(str); + + FTS_TEST_FUNC_EXIT(); +} + +void SetTestItem_FT5X46(void) +{ + + g_TestItemNum = 0; + + FTS_TEST_FUNC_ENTER(); + + + if (g_stCfg_FT5X46_TestItem.RESET_PIN_TEST == 1) { + + fts_SetTestItemCodeName(Code_FT5X46_RESET_PIN_TEST); + } + + + if (g_stCfg_FT5X46_TestItem.FACTORY_ID_TEST == 1) { + + fts_SetTestItemCodeName(Code_FT5X46_FACTORY_ID_TEST); + } + + + if (g_stCfg_FT5X46_TestItem.PROJECT_CODE_TEST == 1) { + + fts_SetTestItemCodeName(Code_FT5X46_PROJECT_CODE_TEST); + } + + + if (g_stCfg_FT5X46_TestItem.FW_VERSION_TEST == 1) { + + fts_SetTestItemCodeName(Code_FT5X46_FW_VERSION_TEST); + } + + + if (g_stCfg_FT5X46_TestItem.LCM_ID_TEST == 1) { + + fts_SetTestItemCodeName(Code_FT5X46_LCM_ID_TEST); + } + + + if (g_stCfg_FT5X46_TestItem.IC_VERSION_TEST == 1) { + + fts_SetTestItemCodeName(Code_FT5X46_IC_VERSION_TEST); + } + + + + fts_SetTestItemCodeName(Code_FT5X46_ENTER_FACTORY_MODE); + + + if (g_stCfg_FT5X46_TestItem.TE_TEST == 1) { + + fts_SetTestItemCodeName(Code_FT5X46_TE_TEST); + } + + + if (g_stCfg_FT5X46_TestItem.CHANNEL_NUM_TEST == 1) { + + fts_SetTestItemCodeName(Code_FT5X46_CHANNEL_NUM_TEST); + } + + + if (g_stCfg_FT5X46_TestItem.LCD_NOISE_TEST == 1) { + + fts_SetTestItemCodeName(Code_FT5X46_LCD_NOISE_TEST); + } + + + if (g_stCfg_FT5X46_TestItem.NOISE_TEST == 1) { + + fts_SetTestItemCodeName(Code_FT5X46_NOISE_TEST); + } + + + if (g_stCfg_FT5X46_TestItem.RAWDATA_TEST == 1) { + + fts_SetTestItemCodeName(Code_FT5X46_RAWDATA_TEST); + } + + + if (g_stCfg_FT5X46_TestItem.UNIFORMITY_TEST == 1) { + + fts_SetTestItemCodeName(Code_FT5X46_UNIFORMITY_TEST); + } + + + if (g_stCfg_FT5X46_TestItem.SITO_RAWDATA_UNIFORMITY_TEST == 1) { + + fts_SetTestItemCodeName(Code_FT5X46_SITO_RAWDATA_UNIFORMITY_TEST); + } + + + if (g_stCfg_FT5X46_TestItem.CM_TEST == 1) { + + fts_SetTestItemCodeName(Code_FT5X46_CM_TEST); + } + + + if (g_stCfg_FT5X46_TestItem.ADC_DETECT_TEST == 1) { + + fts_SetTestItemCodeName(Code_FT5X46_ADCDETECT_TEST); + } + + + if (g_stCfg_FT5X46_TestItem.SCAP_CB_TEST == 1) { + + fts_SetTestItemCodeName(Code_FT5X46_SCAP_CB_TEST); + } + + + if (g_stCfg_FT5X46_TestItem.SCAP_RAWDATA_TEST == 1) { + + fts_SetTestItemCodeName(Code_FT5X46_SCAP_RAWDATA_TEST); + } + + + if (g_stCfg_FT5X46_TestItem.RAWDATA_MARGIN_TEST == 1) { + + fts_SetTestItemCodeName(Code_FT5X46_RAWDATA_MARGIN_TEST); + } + + + if (g_stCfg_FT5X46_TestItem.WEAK_SHORT_CIRCUIT_TEST == 1) { + + fts_SetTestItemCodeName(Code_FT5X46_WEAK_SHORT_CIRCUIT_TEST); + } + + + if (g_stCfg_FT5X46_TestItem.PANEL_DIFFER_TEST == 1) { + + fts_SetTestItemCodeName(Code_FT5X46_PANELDIFFER_TEST); + } + + if (g_stCfg_FT5X46_TestItem.PANEL_DIFFER_UNIFORMITY_TEST == 1) { + + fts_SetTestItemCodeName(Code_FT5X46_PANELDIFFER_UNIFORMITY_TEST); + } + + + if (g_stCfg_FT5X46_TestItem.INT_PIN_TEST == 1) { + + fts_SetTestItemCodeName(Code_FT5X46_INT_PIN_TEST); + } + + FTS_TEST_FUNC_EXIT(); +} + +#endif + diff --git a/drivers/input/touchscreen/FT5346/focaltech_test/supported_ic/focaltech_test_ft5x46.c b/drivers/input/touchscreen/FT5346/focaltech_test/supported_ic/focaltech_test_ft5x46.c new file mode 100644 index 0000000000000..fff3e01b95de8 --- /dev/null +++ b/drivers/input/touchscreen/FT5346/focaltech_test/supported_ic/focaltech_test_ft5x46.c @@ -0,0 +1,2327 @@ +/************************************************************************ +* Copyright (C) 2012-2015, Focaltech Systems (R)£¬All Rights Reserved. +* Copyright (C) 2018 XiaoMi, Inc. +* +* File Name: Focaltech_test_ft5x46.c +* +* Author: Software Development Team, AE +* +* Created: 2015-07-14 +* +* Abstract: test item for FT5X46\FT5X46i\FT5526\FT3X17\FT5436\FT3X27\FT5526i\FT5416\FT5426\FT5435 +* +************************************************************************/ + +/******************************************************************************* +* Included header files +*******************************************************************************/ +#include +#include +#include + +#include "../include/focaltech_test_detail_threshold.h" +#include "../include/focaltech_test_supported_ic.h" +#include "../include/focaltech_test_main.h" +#include "../focaltech_test_config.h" +#include "../../focaltech_global/focaltech_ic_table.h" + + +#if (FT5X46_TEST) + + +/******************************************************************************* +* Private constant and macro definitions using #define +*******************************************************************************/ + + + + +#define SPECIAL_TEST_FOR_MEIZU_EN 0 + + +#define DEVIDE_MODE_ADDR 0x00 +#define REG_LINE_NUM 0x01 +#define REG_TX_NUM 0x02 +#define REG_RX_NUM 0x03 +#define REG_PATTERN_5422 0x53 +#define REG_MAPPING_SWITCH 0x54 +#define REG_TX_NOMAPPING_NUM 0x55 +#define REG_RX_NOMAPPING_NUM 0x56 +#define REG_NORMALIZE_TYPE 0x16 +#define REG_ScCbBuf0 0x4E +#define REG_ScWorkMode 0x44 +#define REG_ScCbAddrR 0x45 +#define REG_RawBuf0 0x36 +#define REG_WATER_CHANNEL_SELECT 0x09 +#define REG_FW_PROCESS 0x1A +#define REG_NOISE_SAMPLE_FRAME 0X1C +#define REG_LCD_NOISE_CONFICIENT 0X0F +#define REG_LCD_NOISE_MAX_NG 0X10 +#define REG_LCD_NOISE_MODE 0X1B +#define REG_LCD_NOISE_FRAMEFAILED 0X11 +#define REG_RELEASECODEID_H 0xAE +#define REG_RELEASECODEID_L 0xAF +#define MAX_NOISE_FRAMES 200 + +/******************************************************************************* +* Private enumerations, structures and unions using typedef +*******************************************************************************/ +enum WaterproofType { + WT_NeedProofOnTest, + WT_NeedProofOffTest, + WT_NeedTxOnVal, + WT_NeedRxOnVal, + WT_NeedTxOffVal, + WT_NeedRxOffVal, +}; + +enum NOISE_TYPE { + NT_AvgData = 0, + NT_MaxData = 1, + NT_MaxDevication = 2, + NT_DifferData = 3, +}; + +/******************************************************************************* +* Static variables +*******************************************************************************/ + +static int m_RawData[TX_NUM_MAX][RX_NUM_MAX] = {{0} } ; +static int m_iTempRawData[TX_NUM_MAX * RX_NUM_MAX] = {0}; +static unsigned char m_ucTempData[TX_NUM_MAX * RX_NUM_MAX*2] = {0}; +static bool m_bV3TP; + + +static int m_DifferData[TX_NUM_MAX][RX_NUM_MAX] = {{0} } ; +static int m_absDifferData[TX_NUM_MAX][RX_NUM_MAX] = {{0} } ; + + + + + + + + + + + + + + +/******************************************************************************* +* Global variable or extern global variabls/functions +*******************************************************************************/ +extern struct stCfg_FT5X46_BasicThreshold g_stCfg_FT5X46_BasicThreshold; + +/******************************************************************************* +* Static function prototypes +*******************************************************************************/ + +static int StartScan(void); +static unsigned char ReadRawData(unsigned char Freq, unsigned char LineNum, int ByteNum, int *pRevBuffer); +static unsigned char GetPanelRows(unsigned char *pPanelRows); +static unsigned char GetPanelCols(unsigned char *pPanelCols); +static unsigned char GetTxSC_CB(unsigned char index, unsigned char *pcbValue); +static unsigned char GetRawData(void); +static unsigned char GetChannelNum(void); +static void Save_Test_Data(int iData[TX_NUM_MAX][RX_NUM_MAX], int iArrayIndex, unsigned char Row, unsigned char Col, unsigned char ItemCount); +static void ShowRawData(void); +static boolean GetTestCondition(int iTestType, unsigned char ucChannelValue); +static unsigned char GetChannelNumNoMapping(void); +static unsigned char SwitchToNoMapping(void); +static unsigned char WeakShort_GetAdcData(int AllAdcDataLen, int *pRevBuffer); + + + + +boolean FT5X46_StartTest(void); +int FT5X46_get_test_data(char *pTestData); + + +unsigned char FT5X46_TestItem_EnterFactoryMode(void); +unsigned char FT5X46_TestItem_RawDataTest(bool *bTestResult); +unsigned char FT5X46_TestItem_SCapRawDataTest(bool *bTestResult); +unsigned char FT5X46_TestItem_SCapCbTest(bool *bTestResult); +unsigned char FT5X46_TestItem_PanelDifferTest(bool *bTestResult); +unsigned char FT5X46_TestItem_WeakShortTest(bool *bTestResult); + + + +/************************************************************************ +* Name: FT5X46_StartTest +* Brief: Test entry. Determine which test item to test +* Input: none +* Output: none +* Return: Test Result, PASS or FAIL +***********************************************************************/ +boolean FT5X46_StartTest() +{ + bool bTestResult = true; + bool bTempResult = 1; + unsigned char ReCode = 0; + unsigned char ucDevice = 0; + int iItemCount = 0; + + FTS_TEST_FUNC_ENTER(); + + + if (InitTest() < 0) { + FTS_TEST_ERROR("[focal] Failed to init test."); + return false; + } + + + if (0 == g_TestItemNum) + bTestResult = false; + + + for (iItemCount = 0; iItemCount < g_TestItemNum; iItemCount++) { + m_ucTestItemCode = g_stTestItem[ucDevice][iItemCount].ItemCode; + + + if (Code_FT5X46_ENTER_FACTORY_MODE == g_stTestItem[ucDevice][iItemCount].ItemCode + ) { + + ReCode = FT5X46_TestItem_EnterFactoryMode(); + if (ERROR_CODE_OK != ReCode || (!bTempResult)) { + bTestResult = false; + g_stTestItem[ucDevice][iItemCount].TestResult = RESULT_NG; + break; + } else + g_stTestItem[ucDevice][iItemCount].TestResult = RESULT_PASS; + } + + + + if (Code_FT5X46_RAWDATA_TEST == g_stTestItem[ucDevice][iItemCount].ItemCode + ) { + + ReCode = FT5X46_TestItem_RawDataTest(&bTempResult); + if (ERROR_CODE_OK != ReCode || (!bTempResult)) { + bTestResult = false; + g_stTestItem[ucDevice][iItemCount].TestResult = RESULT_NG; + } else + g_stTestItem[ucDevice][iItemCount].TestResult = RESULT_PASS; + } + + + + if (Code_FT5X46_SCAP_CB_TEST == g_stTestItem[ucDevice][iItemCount].ItemCode + ) { + ReCode = FT5X46_TestItem_SCapCbTest(&bTempResult); + if (ERROR_CODE_OK != ReCode || (!bTempResult)) { + bTestResult = false; + g_stTestItem[ucDevice][iItemCount].TestResult = RESULT_NG; + } else + g_stTestItem[ucDevice][iItemCount].TestResult = RESULT_PASS; + } + + + if (Code_FT5X46_SCAP_RAWDATA_TEST == g_stTestItem[ucDevice][iItemCount].ItemCode + ) { + ReCode = FT5X46_TestItem_SCapRawDataTest(&bTempResult); + if (ERROR_CODE_OK != ReCode || (!bTempResult)) { + bTestResult = false; + g_stTestItem[ucDevice][iItemCount].TestResult = RESULT_NG; + } else + g_stTestItem[ucDevice][iItemCount].TestResult = RESULT_PASS; + } + + + if (Code_FT5X46_PANELDIFFER_TEST == g_stTestItem[ucDevice][iItemCount].ItemCode + ) { + + ReCode = FT5X46_TestItem_PanelDifferTest(&bTempResult); + if (ERROR_CODE_OK != ReCode || (!bTempResult)) { + bTestResult = false; + g_stTestItem[ucDevice][iItemCount].TestResult = RESULT_NG; + } else + g_stTestItem[ucDevice][iItemCount].TestResult = RESULT_PASS; + } + + + + if (Code_FT5X46_WEAK_SHORT_CIRCUIT_TEST == g_stTestItem[ucDevice][iItemCount].ItemCode + ) { + + ReCode = FT5X46_TestItem_WeakShortTest(&bTempResult); + if (ERROR_CODE_OK != ReCode || (!bTempResult)) { + bTestResult = false; + g_stTestItem[ucDevice][iItemCount].TestResult = RESULT_NG; + } else + g_stTestItem[ucDevice][iItemCount].TestResult = RESULT_PASS; + } + + + } + + + FinishTest(); + + g_TestItemNum = 0; + + return bTestResult; +} + +/************************************************************************ +* Name: FT5X46_get_test_data +* Brief: get data of test result +* Input: none +* Output: pTestData, the returned buff +* Return: the length of test data. if length > 0, got data;else ERR. +***********************************************************************/ +int FT5X46_get_test_data(char *pTestData) +{ + if (NULL == pTestData) { + FTS_TEST_ERROR(" pTestData == NULL "); + return -EPERM; + } + memcpy(pTestData, g_pStoreAllData, (g_lenStoreMsgArea+g_lenStoreDataArea)); + return (g_lenStoreMsgArea+g_lenStoreDataArea); +} + +/************************************************************************ +* Name: FT5X46_TestItem_EnterFactoryMode +* Brief: Check whether TP can enter Factory Mode, and do some thing +* Input: none +* Output: none +* Return: Comm Code. Code = 0x00 is OK, else fail. +***********************************************************************/ +unsigned char FT5X46_TestItem_EnterFactoryMode(void) +{ + unsigned char ReCode = ERROR_CODE_INVALID_PARAM; + int iRedo = 5; + int i ; + unsigned char chPattern = 0; + + FTS_TEST_FUNC_ENTER(); + + SysDelay(150); + for (i = 1; i <= iRedo; i++) { + ReCode = EnterFactory(); + if (ERROR_CODE_OK != ReCode) { + FTS_TEST_ERROR("Failed to Enter factory mode..."); + if (i < iRedo) { + SysDelay(50); + continue; + } + } else { + break; + } + + } + SysDelay(300); + + + if (ReCode != ERROR_CODE_OK) { + return ReCode; + } + + + ReCode = GetChannelNum(); + + + + + + ReCode = ReadReg(REG_PATTERN_5422, &chPattern); + if (chPattern == 1) { + m_bV3TP = true; + } else { + m_bV3TP = false; + } + + return ReCode; +} +/************************************************************************ +* Name: FT5X46_TestItem_RawDataTest +* Brief: TestItem: RawDataTest. Check if MCAP RawData is within the range. +* Input: none +* Output: bTestResult, PASS or FAIL +* Return: Comm Code. Code = 0x00 is OK, else fail. +***********************************************************************/ +unsigned char FT5X46_TestItem_RawDataTest(bool *bTestResult) +{ + unsigned char ReCode = 0; + bool btmpresult = true; + int RawDataMin; + int RawDataMax; + unsigned char ucFre; + unsigned char strSwitch = 0; + unsigned char OriginValue = 0xff; + int index = 0; + int iRow, iCol; + int iValue = 0; + int nRawDataOK = 0; + + + FTS_TEST_INFO("\n\n==============================Test Item: -------- Raw Data Test \n"); + ReCode = EnterFactory(); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("\n\n// Failed to Enter factory Mode. Error Code: %d", ReCode); + goto TEST_ERR; + } + + + + if (m_bV3TP) { + ReCode = ReadReg(REG_MAPPING_SWITCH, &strSwitch); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("\n Read REG_MAPPING_SWITCH error. Error Code: %d", ReCode); + goto TEST_ERR; + } + + if (strSwitch != 0) { + ReCode = WriteReg(REG_MAPPING_SWITCH, 0); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("\n Write REG_MAPPING_SWITCH error. Error Code: %d", ReCode); + goto TEST_ERR; + } + + ReCode = GetChannelNum(); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("\n GetChannelNum error. Error Code: %d", ReCode); + goto TEST_ERR; + } + } + } + + + ReCode = ReadReg(REG_NORMALIZE_TYPE, &OriginValue); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("\n Read REG_NORMALIZE_TYPE error. Error Code: %d", ReCode); + goto TEST_ERR; + } + ReCode = ReadReg(0x0A, &ucFre); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("\n Read frequency error. Error Code: %d", ReCode); + goto TEST_ERR; + } + + if (g_ScreenSetParam.isNormalize == Auto_Normalize) { + if (OriginValue != 1) { + ReCode = WriteReg(REG_NORMALIZE_TYPE, 0x01); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("\n write REG_NORMALIZE_TYPE error. Error Code: %d", ReCode); + goto TEST_ERR; + } + } + + + FTS_TEST_DBG("\n=========Set Frequecy High\n"); + ReCode = WriteReg(0x0A, 0x81); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("\n Set Frequecy High error. Error Code: %d", ReCode); + goto TEST_ERR; + } + + FTS_TEST_DBG("\n=========FIR State: ON"); + ReCode = WriteReg(0xFB, 1); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("\n FIR State: ON error. Error Code: %d", ReCode); + goto TEST_ERR; + } + + + for (index = 0; index < 3; ++index) { + ReCode = GetRawData(); + } + + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("\nGet Rawdata failed, Error Code: 0x%x", ReCode); + goto TEST_ERR; + } + + ShowRawData(); + + + for (iRow = 0; iRow < g_ScreenSetParam.iTxNum; iRow++) { + for (iCol = 0; iCol < g_ScreenSetParam.iRxNum; iCol++) { + if (g_stCfg_MCap_DetailThreshold.InvalidNode[iRow][iCol] == 0) + continue; + RawDataMin = g_stCfg_MCap_DetailThreshold.RawDataTest_High_Min[iRow][iCol]; + RawDataMax = g_stCfg_MCap_DetailThreshold.RawDataTest_High_Max[iRow][iCol]; + iValue = m_RawData[iRow][iCol]; + if (iValue < RawDataMin || iValue > RawDataMax) { + btmpresult = false; + FTS_TEST_ERROR("rawdata test failure. Node=(%d, %d), Get_value=%d, Set_Range=(%d, %d) ", \ + iRow+1, iCol+1, iValue, RawDataMin, RawDataMax); + } + } + } + + + Save_Test_Data(m_RawData, 0, g_ScreenSetParam.iTxNum, g_ScreenSetParam.iRxNum, 2); + } else { + if (OriginValue != 0) { + ReCode = WriteReg(REG_NORMALIZE_TYPE, 0x00); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("\n write REG_NORMALIZE_TYPE error. Error Code: %d", ReCode); + goto TEST_ERR; + } + } + + + if (g_stCfg_FT5X46_BasicThreshold.RawDataTest_SetLowFreq) { + FTS_TEST_DBG("\n=========Set Frequecy Low"); + ReCode = WriteReg(0x0A, 0x80); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("\n write frequency error. Error Code: %d", ReCode); + goto TEST_ERR; + } + + + + FTS_TEST_DBG("\n=========FIR State: OFF\n"); + ReCode = WriteReg(0xFB, 0); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("\n FIR State: OFF error. Error Code: %d", ReCode); + goto TEST_ERR; + } + SysDelay(100); + + /* + for (index = 0; index < 3; ++index ) { + ReCode = GetRawData(); + } + */ + for (index = 0, nRawDataOK = 0; index < 10 && nRawDataOK < 3; ++index) { + ReCode = GetRawData(); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("Get Rawdata failed, index:%d. Error Code: 0x%x", index, ReCode); + } else + nRawDataOK++; + } + + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("Get Rawdata failed, Error Code: 0x%x", ReCode); + goto TEST_ERR; + } + ShowRawData(); + + + for (iRow = 0; iRow < g_ScreenSetParam.iTxNum; iRow++) { + + for (iCol = 0; iCol < g_ScreenSetParam.iRxNum; iCol++) { + if (g_stCfg_MCap_DetailThreshold.InvalidNode[iRow][iCol] == 0) + continue; + RawDataMin = g_stCfg_MCap_DetailThreshold.RawDataTest_Low_Min[iRow][iCol]; + RawDataMax = g_stCfg_MCap_DetailThreshold.RawDataTest_Low_Max[iRow][iCol]; + iValue = m_RawData[iRow][iCol]; + if (iValue < RawDataMin || iValue > RawDataMax) { + btmpresult = false; + FTS_TEST_ERROR("rawdata test failure. Node=(%d, %d), Get_value=%d, Set_Range=(%d, %d) ", \ + iRow+1, iCol+1, iValue, RawDataMin, RawDataMax); + } + } + } + + + Save_Test_Data(m_RawData, 0, g_ScreenSetParam.iTxNum, g_ScreenSetParam.iRxNum, 1); + } + + + + if (g_stCfg_FT5X46_BasicThreshold.RawDataTest_SetHighFreq) { + + FTS_TEST_DBG("\n=========Set Frequecy High"); + ReCode = WriteReg(0x0A, 0x81); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("\n Set Frequecy High error. Error Code: %d", ReCode); + goto TEST_ERR; + } + + + + FTS_TEST_DBG("\n=========FIR State: OFF\n"); + ReCode = WriteReg(0xFB, 0); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("\n FIR State: OFF error. Error Code: %d", ReCode); + goto TEST_ERR; + } + SysDelay(100); + + for (index = 0; index < 3; ++index) { + ReCode = GetRawData(); + } + + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("\nGet Rawdata failed, Error Code: 0x%x", ReCode); + if (ReCode != ERROR_CODE_OK) + goto TEST_ERR; + } + ShowRawData(); + + + for (iRow = 0; iRow < g_ScreenSetParam.iTxNum; iRow++) { + + for (iCol = 0; iCol < g_ScreenSetParam.iRxNum; iCol++) { + if (g_stCfg_MCap_DetailThreshold.InvalidNode[iRow][iCol] == 0) + continue; + RawDataMin = g_stCfg_MCap_DetailThreshold.RawDataTest_High_Min[iRow][iCol]; + RawDataMax = g_stCfg_MCap_DetailThreshold.RawDataTest_High_Max[iRow][iCol]; + iValue = m_RawData[iRow][iCol]; + if (iValue < RawDataMin || iValue > RawDataMax) { + btmpresult = false; + FTS_TEST_ERROR("rawdata test failure. Node=(%d, %d), Get_value=%d, Set_Range=(%d, %d) ", \ + iRow+1, iCol+1, iValue, RawDataMin, RawDataMax); + } + } + } + + + Save_Test_Data(m_RawData, 0, g_ScreenSetParam.iTxNum, g_ScreenSetParam.iRxNum, 2); + } + + } + + + + ReCode = WriteReg(REG_NORMALIZE_TYPE, OriginValue); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("\n Write REG_NORMALIZE_TYPE error. Error Code: %d", ReCode); + goto TEST_ERR; + } + ReCode = WriteReg(0x0A, ucFre); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("\n Write 0x0A error. Error Code: %d", ReCode); + goto TEST_ERR; + } + + + if (m_bV3TP) { + ReCode = WriteReg(REG_MAPPING_SWITCH, strSwitch); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("\n Write REG_MAPPING_SWITCH error. Error Code: %d", ReCode); + goto TEST_ERR; + } + } + + TestResultLen += sprintf(TestResult+TestResultLen, " RawData Test is %s. \n\n", (btmpresult ? "OK" : "NG")); + + + if (btmpresult) { + *bTestResult = true; + FTS_TEST_INFO("\n\n//RawData Test is OK!"); + } else { + *bTestResult = false; + FTS_TEST_INFO("\n\n//RawData Test is NG!"); + } + return ReCode; + +TEST_ERR: + + *bTestResult = false; + FTS_TEST_INFO("\n\n//RawData Test is NG!"); + TestResultLen += sprintf(TestResult+TestResultLen, " RawData Test is NG. \n\n"); + return ReCode; + +} +/************************************************************************ +* Name: FT5X46_TestItem_SCapRawDataTest +* Brief: TestItem: SCapRawDataTest. Check if SCAP RawData is within the range. +* Input: none +* Output: bTestResult, PASS or FAIL +* Return: Comm Code. Code = 0x00 is OK, else fail. +***********************************************************************/ +unsigned char FT5X46_TestItem_SCapRawDataTest(bool *bTestResult) +{ + int i = 0; + int RawDataMin = 0; + int RawDataMax = 0; + int Value = 0; + boolean bFlag = true; + unsigned char ReCode = 0; + boolean btmpresult = true; + int iMax = 0; + int iMin = 0; + int iAvg = 0; + int ByteNum = 0; + unsigned char wc_value = 0; + unsigned char ucValue = 0; + int iCount = 0; + + + FTS_TEST_INFO("\n\n==============================Test Item: -------- Scap RawData Test \n"); + + + ReCode = EnterFactory(); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("\n\n// Failed to Enter factory Mode. Error Code: %d", ReCode); + goto TEST_ERR; + } + + + ReCode = ReadReg(REG_WATER_CHANNEL_SELECT, &wc_value); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("\n\n// Failed to read REG_WATER_CHANNEL_SELECT. Error Code: %d", ReCode); + goto TEST_ERR; + } + + + ReCode = SwitchToNoMapping(); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("\n\n// Failed to SwitchToNoMapping. Error Code: %d", ReCode); + goto TEST_ERR; + } + + + ReCode = StartScan(); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("Failed to Scan SCap RawData! "); + goto TEST_ERR; + } + for (i = 0; i < 3; i++) { + memset(m_iTempRawData, 0, sizeof(m_iTempRawData)); + + + ByteNum = (g_ScreenSetParam.iTxNum + g_ScreenSetParam.iRxNum)*2; + ReCode = ReadRawData(0, 0xAC, ByteNum, m_iTempRawData); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_DBG("Failed to ReadRawData water! "); + goto TEST_ERR; + } + + memcpy(m_RawData[0+g_ScreenSetParam.iTxNum], m_iTempRawData, sizeof(int)*g_ScreenSetParam.iRxNum); + memcpy(m_RawData[1+g_ScreenSetParam.iTxNum], m_iTempRawData + g_ScreenSetParam.iRxNum, sizeof(int)*g_ScreenSetParam.iTxNum); + + + ByteNum = (g_ScreenSetParam.iTxNum + g_ScreenSetParam.iRxNum)*2; + ReCode = ReadRawData(0, 0xAB, ByteNum, m_iTempRawData); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("Failed to ReadRawData no water! "); + goto TEST_ERR; + } + memcpy(m_RawData[2+g_ScreenSetParam.iTxNum], m_iTempRawData, sizeof(int)*g_ScreenSetParam.iRxNum); + memcpy(m_RawData[3+g_ScreenSetParam.iTxNum], m_iTempRawData + g_ScreenSetParam.iRxNum, sizeof(int)*g_ScreenSetParam.iTxNum); + } + + + + + + bFlag = GetTestCondition(WT_NeedProofOnTest, wc_value); + if (g_stCfg_FT5X46_BasicThreshold.SCapRawDataTest_SetWaterproof_ON && bFlag) { + iCount = 0; + RawDataMin = g_stCfg_FT5X46_BasicThreshold.SCapRawDataTest_ON_Min; + RawDataMax = g_stCfg_FT5X46_BasicThreshold.SCapRawDataTest_ON_Max; + iMax = -m_RawData[0+g_ScreenSetParam.iTxNum][0]; + iMin = 2 * m_RawData[0+g_ScreenSetParam.iTxNum][0]; + iAvg = 0; + Value = 0; + + + bFlag = GetTestCondition(WT_NeedRxOnVal, wc_value); + if (bFlag) + FTS_TEST_DBG("Judge Rx in Waterproof-ON:"); + for (i = 0; bFlag && i < g_ScreenSetParam.iRxNum; i++) { + if (g_stCfg_MCap_DetailThreshold.InvalidNode_SC[0][i] == 0) + continue; + RawDataMin = g_stCfg_MCap_DetailThreshold.SCapRawDataTest_ON_Min[0][i]; + RawDataMax = g_stCfg_MCap_DetailThreshold.SCapRawDataTest_ON_Max[0][i]; + Value = m_RawData[0+g_ScreenSetParam.iTxNum][i]; + iAvg += Value; + if (iMax < Value) + iMax = Value; + if (iMin > Value) + iMin = Value; + if (Value > RawDataMax || Value < RawDataMin) { + btmpresult = false; + FTS_TEST_ERROR("Failed. Num = %d, Value = %d, range = (%d, %d):", i+1, Value, RawDataMin, RawDataMax); + } + iCount++; + } + + + bFlag = GetTestCondition(WT_NeedTxOnVal, wc_value); + if (bFlag) + FTS_TEST_DBG("Judge Tx in Waterproof-ON:"); + for (i = 0; bFlag && i < g_ScreenSetParam.iTxNum; i++) { + if (g_stCfg_MCap_DetailThreshold.InvalidNode_SC[1][i] == 0) + continue; + RawDataMin = g_stCfg_MCap_DetailThreshold.SCapRawDataTest_ON_Min[1][i]; + RawDataMax = g_stCfg_MCap_DetailThreshold.SCapRawDataTest_ON_Max[1][i]; + Value = m_RawData[1+g_ScreenSetParam.iTxNum][i]; + iAvg += Value; + if (iMax < Value) + iMax = Value; + if (iMin > Value) + iMin = Value; + if (Value > RawDataMax || Value < RawDataMin) { + btmpresult = false; + FTS_TEST_ERROR("Failed. Num = %d, Value = %d, range = (%d, %d):", i+1, Value, RawDataMin, RawDataMax); + } + iCount++; + } + if (0 == iCount) { + iAvg = 0; + iMax = 0; + iMin = 0; + } else + iAvg = iAvg/iCount; + + FTS_TEST_DBG("SCap RawData in Waterproof-ON, Max : %d, Min: %d, Deviation: %d, Average: %d", iMax, iMin, iMax - iMin, iAvg); + + + Save_Test_Data(m_RawData, g_ScreenSetParam.iTxNum+0, 2, g_ScreenSetParam.iRxNum, 1); + } + + + bFlag = GetTestCondition(WT_NeedProofOffTest, wc_value); + if (g_stCfg_FT5X46_BasicThreshold.SCapRawDataTest_SetWaterproof_OFF && bFlag) { + iCount = 0; + RawDataMin = g_stCfg_FT5X46_BasicThreshold.SCapRawDataTest_OFF_Min; + RawDataMax = g_stCfg_FT5X46_BasicThreshold.SCapRawDataTest_OFF_Max; + iMax = -m_RawData[2+g_ScreenSetParam.iTxNum][0]; + iMin = 2 * m_RawData[2+g_ScreenSetParam.iTxNum][0]; + iAvg = 0; + Value = 0; + + bFlag = GetTestCondition(WT_NeedRxOffVal, wc_value); + if (bFlag) + FTS_TEST_DBG("Judge Rx in Waterproof-OFF:"); + for (i = 0; bFlag && i < g_ScreenSetParam.iRxNum; i++) { + if (g_stCfg_MCap_DetailThreshold.InvalidNode_SC[0][i] == 0) + continue; + RawDataMin = g_stCfg_MCap_DetailThreshold.SCapRawDataTest_OFF_Min[0][i]; + RawDataMax = g_stCfg_MCap_DetailThreshold.SCapRawDataTest_OFF_Max[0][i]; + Value = m_RawData[2+g_ScreenSetParam.iTxNum][i]; + iAvg += Value; + + + + if (iMax < Value) + iMax = Value; + if (iMin > Value) + iMin = Value; + if (Value > RawDataMax || Value < RawDataMin) { + btmpresult = false; + FTS_TEST_ERROR("Failed. Num = %d, Value = %d, range = (%d, %d):", i+1, Value, RawDataMin, RawDataMax); + } + iCount++; + } + + bFlag = GetTestCondition(WT_NeedTxOffVal, wc_value); + if (bFlag) + FTS_TEST_DBG("Judge Tx in Waterproof-OFF:"); + for (i = 0; bFlag && i < g_ScreenSetParam.iTxNum; i++) { + if (g_stCfg_MCap_DetailThreshold.InvalidNode_SC[1][i] == 0) + continue; + + Value = m_RawData[3+g_ScreenSetParam.iTxNum][i]; + RawDataMin = g_stCfg_MCap_DetailThreshold.SCapRawDataTest_OFF_Min[1][i]; + RawDataMax = g_stCfg_MCap_DetailThreshold.SCapRawDataTest_OFF_Max[1][i]; + + iAvg += Value; + if (iMax < Value) + iMax = Value; + if (iMin > Value) + iMin = Value; + if (Value > RawDataMax || Value < RawDataMin) { + btmpresult = false; + FTS_TEST_ERROR("Failed. Num = %d, Value = %d, range = (%d, %d):", i+1, Value, RawDataMin, RawDataMax); + } + iCount++; + } + if (0 == iCount) { + iAvg = 0; + iMax = 0; + iMin = 0; + } else + iAvg = iAvg/iCount; + + FTS_TEST_DBG("SCap RawData in Waterproof-OFF, Max : %d, Min: %d, Deviation: %d, Average: %d", iMax, iMin, iMax - iMin, iAvg); + + + Save_Test_Data(m_RawData, g_ScreenSetParam.iTxNum+2, 2, g_ScreenSetParam.iRxNum, 2); + } + + if (m_bV3TP) { + ReCode = ReadReg(REG_MAPPING_SWITCH, &ucValue); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("\n Read REG_MAPPING_SWITCH error. Error Code: %d", ReCode); + goto TEST_ERR; + } + + if (0 != ucValue) { + ReCode = WriteReg(REG_MAPPING_SWITCH, 0); + SysDelay(10); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("Failed to switch mapping type!\n "); + btmpresult = false; + } + } + + + ReCode = GetChannelNum(); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("\n GetChannelNum error. Error Code: %d", ReCode); + goto TEST_ERR; + } + } + + TestResultLen += sprintf(TestResult+TestResultLen, " SCap RawData Test is %s. \n\n", (btmpresult ? "OK" : "NG")); + + + + if (btmpresult) { + *bTestResult = true; + FTS_TEST_INFO("\n\n//SCap RawData Test is OK!"); + } else { + *bTestResult = false; + FTS_TEST_INFO("\n\n//SCap RawData Test is NG!"); + } + return ReCode; + +TEST_ERR: + *bTestResult = false; + FTS_TEST_INFO("\n\n//SCap RawData Test is NG!"); + TestResultLen += sprintf(TestResult+TestResultLen, " SCap RawData Test is NG. \n\n"); + return ReCode; +} + +/************************************************************************ +* Name: FT5X46_TestItem_SCapCbTest +* Brief: TestItem: SCapCbTest. Check if SCAP Cb is within the range. +* Input: none +* Output: bTestResult, PASS or FAIL +* Return: Comm Code. Code = 0x00 is OK, else fail. +***********************************************************************/ +unsigned char FT5X46_TestItem_SCapCbTest(bool *bTestResult) +{ + int i, /* j, iOutNum, */index, Value, CBMin, CBMax; + boolean bFlag = true; + unsigned char ReCode; + boolean btmpresult = true; + int iMax, iMin, iAvg; + unsigned char wc_value = 0; + unsigned char ucValue = 0; + int iCount = 0; + + + FTS_TEST_INFO("\n\n==============================Test Item: ----- Scap CB Test \n"); + + + ReCode = EnterFactory(); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("\n\n// Failed to Enter factory Mode. Error Code: %d", ReCode); + goto TEST_ERR; + } + + + ReCode = ReadReg(REG_WATER_CHANNEL_SELECT, &wc_value); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("\n Read REG_WATER_CHANNEL_SELECT error. Error Code: %d", ReCode); + goto TEST_ERR; + } + + + bFlag = SwitchToNoMapping(); + if (bFlag) { + FTS_TEST_ERROR("Failed to SwitchToNoMapping! ReCode = %d. ", ReCode); + goto TEST_ERR; + } + + + ReCode = StartScan(); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("Failed to Scan SCap RawData!ReCode = %d. ", ReCode); + goto TEST_ERR; + } + + + for (i = 0; i < 3; i++) { + memset(m_RawData, 0, sizeof(m_RawData)); + memset(m_ucTempData, 0, sizeof(m_ucTempData)); + + + ReCode = WriteReg(REG_ScWorkMode, 1); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("Get REG_ScWorkMode Failed!"); + goto TEST_ERR; + } + + ReCode = StartScan(); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("StartScan Failed!"); + goto TEST_ERR; + } + + ReCode = WriteReg(REG_ScCbAddrR, 0); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("Write REG_ScCbAddrR Failed!"); + goto TEST_ERR; + } + + ReCode = GetTxSC_CB(g_ScreenSetParam.iTxNum + g_ScreenSetParam.iRxNum + 128, m_ucTempData); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("GetTxSC_CB Failed!"); + goto TEST_ERR; + } + + for (index = 0; index < g_ScreenSetParam.iRxNum; ++index) { + m_RawData[0 + g_ScreenSetParam.iTxNum][index] = m_ucTempData[index]; + } + for (index = 0; index < g_ScreenSetParam.iTxNum; ++index) { + m_RawData[1 + g_ScreenSetParam.iTxNum][index] = m_ucTempData[index + g_ScreenSetParam.iRxNum]; + } + + + ReCode = WriteReg(REG_ScWorkMode, 0); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("Get REG_ScWorkMode Failed!"); + goto TEST_ERR; + } + + ReCode = StartScan(); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("StartScan Failed!"); + goto TEST_ERR; + } + + ReCode = WriteReg(REG_ScCbAddrR, 0); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("Write REG_ScCbAddrR Failed!"); + goto TEST_ERR; + } + + ReCode = GetTxSC_CB(g_ScreenSetParam.iTxNum + g_ScreenSetParam.iRxNum + 128, m_ucTempData); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("GetTxSC_CB Failed!"); + goto TEST_ERR; + } + for (index = 0; index < g_ScreenSetParam.iRxNum; ++index) { + m_RawData[2 + g_ScreenSetParam.iTxNum][index] = m_ucTempData[index]; + } + for (index = 0; index < g_ScreenSetParam.iTxNum; ++index) { + m_RawData[3 + g_ScreenSetParam.iTxNum][index] = m_ucTempData[index + g_ScreenSetParam.iRxNum]; + } + + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("Failed to Get SCap CB!"); + } + } + + if (ReCode != ERROR_CODE_OK) + goto TEST_ERR; + + + + + bFlag = GetTestCondition(WT_NeedProofOnTest, wc_value); + if (g_stCfg_FT5X46_BasicThreshold.SCapCbTest_SetWaterproof_ON && bFlag) { + FTS_TEST_DBG("SCapCbTest in WaterProof On Mode: "); + + iMax = -m_RawData[0+g_ScreenSetParam.iTxNum][0]; + iMin = 2 * m_RawData[0+g_ScreenSetParam.iTxNum][0]; + iAvg = 0; + Value = 0; + iCount = 0; + + + bFlag = GetTestCondition(WT_NeedRxOnVal, wc_value); + if (bFlag) + FTS_TEST_DBG("SCap CB_Rx: "); + for (i = 0; bFlag && i < g_ScreenSetParam.iRxNum; i++) { + if (g_stCfg_MCap_DetailThreshold.InvalidNode_SC[0][i] == 0) + continue; + CBMin = g_stCfg_MCap_DetailThreshold.SCapCbTest_ON_Min[0][i]; + CBMax = g_stCfg_MCap_DetailThreshold.SCapCbTest_ON_Max[0][i]; + Value = m_RawData[0+g_ScreenSetParam.iTxNum][i]; + iAvg += Value; + + if (iMax < Value) + iMax = Value; + if (iMin > Value) + iMin = Value; + if (Value > CBMax || Value < CBMin) { + btmpresult = false; + FTS_TEST_ERROR("Failed. Num = %d, Value = %d, range = (%d, %d):", i+1, Value, CBMin, CBMax); + } + iCount++; + } + + + bFlag = GetTestCondition(WT_NeedTxOnVal, wc_value); + if (bFlag) + FTS_TEST_DBG("SCap CB_Tx: "); + for (i = 0; bFlag && i < g_ScreenSetParam.iTxNum; i++) { + if (g_stCfg_MCap_DetailThreshold.InvalidNode_SC[1][i] == 0) + continue; + CBMin = g_stCfg_MCap_DetailThreshold.SCapCbTest_ON_Min[1][i]; + CBMax = g_stCfg_MCap_DetailThreshold.SCapCbTest_ON_Max[1][i]; + Value = m_RawData[1+g_ScreenSetParam.iTxNum][i]; + iAvg += Value; + if (iMax < Value) + iMax = Value; + if (iMin > Value) + iMin = Value; + if (Value > CBMax || Value < CBMin) { + btmpresult = false; + FTS_TEST_ERROR("Failed. Num = %d, Value = %d, range = (%d, %d):", i+1, Value, CBMin, CBMax); + } + iCount++; + } + + if (0 == iCount) { + iAvg = 0; + iMax = 0; + iMin = 0; + } else + iAvg = iAvg/iCount; + + FTS_TEST_DBG("SCap CB in Waterproof-ON, Max : %d, Min: %d, Deviation: %d, Average: %d", iMax, iMin, iMax - iMin, iAvg); + + + Save_Test_Data(m_RawData, g_ScreenSetParam.iTxNum+0, 2, g_ScreenSetParam.iRxNum, 1); + } + + bFlag = GetTestCondition(WT_NeedProofOffTest, wc_value); + if (g_stCfg_FT5X46_BasicThreshold.SCapCbTest_SetWaterproof_OFF && bFlag) { + FTS_TEST_DBG("SCapCbTest in WaterProof OFF Mode: "); + iMax = -m_RawData[2+g_ScreenSetParam.iTxNum][0]; + iMin = 2 * m_RawData[2+g_ScreenSetParam.iTxNum][0]; + iAvg = 0; + Value = 0; + iCount = 0; + + + bFlag = GetTestCondition(WT_NeedRxOffVal, wc_value); + if (bFlag) + FTS_TEST_DBG("SCap CB_Rx: "); + for (i = 0; bFlag && i < g_ScreenSetParam.iRxNum; i++) { + if (g_stCfg_MCap_DetailThreshold.InvalidNode_SC[0][i] == 0) + continue; + CBMin = g_stCfg_MCap_DetailThreshold.SCapCbTest_OFF_Min[0][i]; + CBMax = g_stCfg_MCap_DetailThreshold.SCapCbTest_OFF_Max[0][i]; + Value = m_RawData[2+g_ScreenSetParam.iTxNum][i]; + iAvg += Value; + + if (iMax < Value) + iMax = Value; + if (iMin > Value) + iMin = Value; + if (Value > CBMax || Value < CBMin) { + btmpresult = false; + FTS_TEST_ERROR("Failed. Num = %d, Value = %d, range = (%d, %d):", i+1, Value, CBMin, CBMax); + } + iCount++; + } + + + bFlag = GetTestCondition(WT_NeedTxOffVal, wc_value); + if (bFlag) + FTS_TEST_DBG("SCap CB_Tx: "); + for (i = 0; bFlag && i < g_ScreenSetParam.iTxNum; i++) { + + if (g_stCfg_MCap_DetailThreshold.InvalidNode_SC[1][i] == 0) + continue; + CBMin = g_stCfg_MCap_DetailThreshold.SCapCbTest_OFF_Min[1][i]; + CBMax = g_stCfg_MCap_DetailThreshold.SCapCbTest_OFF_Max[1][i]; + Value = m_RawData[3+g_ScreenSetParam.iTxNum][i]; + + iAvg += Value; + if (iMax < Value) + iMax = Value; + if (iMin > Value) + iMin = Value; + if (Value > CBMax || Value < CBMin) { + btmpresult = false; + FTS_TEST_ERROR("Failed. Num = %d, Value = %d, range = (%d, %d):", i+1, Value, CBMin, CBMax); + } + iCount++; + } + + if (0 == iCount) { + iAvg = 0; + iMax = 0; + iMin = 0; + } else + iAvg = iAvg/iCount; + + FTS_TEST_DBG("SCap CB in Waterproof-OFF, Max : %d, Min: %d, Deviation: %d, Average: %d", iMax, iMin, iMax - iMin, iAvg); + + + Save_Test_Data(m_RawData, g_ScreenSetParam.iTxNum+2, 2, g_ScreenSetParam.iRxNum, 2); + } + + if (m_bV3TP) { + ReCode = ReadReg(REG_MAPPING_SWITCH, &ucValue); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("\n Read REG_MAPPING_SWITCH error. Error Code: %d", ReCode); + goto TEST_ERR; + } + + if (0 != ucValue) { + ReCode = WriteReg(REG_MAPPING_SWITCH, 0); + SysDelay(10); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_DBG("Failed to switch mapping type!\n "); + btmpresult = false; + } + } + + + ReCode = GetChannelNum(); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("\n GetChannelNum error. Error Code: %d", ReCode); + goto TEST_ERR; + } + } + + TestResultLen += sprintf(TestResult+TestResultLen, " SCap CB Test is %s. \n\n", (btmpresult ? "OK" : "NG")); + + + + if (btmpresult) { + *bTestResult = true; + FTS_TEST_INFO("\n\n//SCap CB Test Test is OK!"); + } else { + *bTestResult = false; + FTS_TEST_INFO("\n\n//SCap CB Test Test is NG!"); + } + return ReCode; + +TEST_ERR: + + *bTestResult = false; + FTS_TEST_INFO("\n\n//SCap CB Test Test is NG!"); + TestResultLen += sprintf(TestResult+TestResultLen, " SCap CB Test is NG. \n\n"); + return ReCode; +} + + +unsigned char FT5X46_TestItem_WeakShortTest(bool *bTestResult) +{ + + unsigned char ReCode = ERROR_CODE_COMM_ERROR; + int i = 0; + bool btmpresult = true; + int iAllAdcDataNum = 63; + int iMaxTx = 35; + unsigned char iTxNum, iRxNum, iChannelNum; + int iClbData_Ground, iClbData_Mutual, iOffset, iRsen, iCCRsen; + unsigned char IcValue = 0; + unsigned char strSwitch = 1; + bool bCapShortTest = false; + + int *iAdcData = NULL; + + int fKcal = 0; + int *fMShortResistance = NULL, *fGShortResistance = NULL; + int iDoffset = 0, iDsen = 0, iDrefn = 0; + int iMin_CG = 0; + int iCount = 0; + int iMin_CC = 0; + int iDCal = 0; + int iMa = 0; + + + FTS_TEST_INFO("\n\n\n\n==============================Test Item: ----- Weak Short-Circuit Test \r\n\r\n"); + + ReCode = EnterWork(); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR(" EnterWork failed.. Error Code: %d", ReCode); + btmpresult = false; + goto TEST_ERR; + } + SysDelay(200); + + + ReCode = ReadReg(0xB1, &IcValue); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("\n Read 0xB1 IcValue error. Error Code: %d\n", ReCode); + btmpresult = false; + goto TEST_ERR; + } else + FTS_TEST_DBG(" IcValue:0x%02x. \n", IcValue); + + iRsen = 57; + + iCCRsen = g_stCfg_FT5X46_BasicThreshold.WeakShortTest_CC_Rsen; + bCapShortTest = g_stCfg_FT5X46_BasicThreshold.WeakShortTest_CapShortTest; + FTS_TEST_DBG(" iCCRsen:%d. \n", iCCRsen); + FTS_TEST_DBG(" bCapShortTest:%d. \n", bCapShortTest); + + ReCode = EnterFactory(); + SysDelay(100); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_DBG(" EnterFactory failed.. Error Code: %d", ReCode); + btmpresult = false; + goto TEST_ERR; + } + + + + + if (m_bV3TP) { + ReCode = ReadReg(REG_MAPPING_SWITCH, &strSwitch); + if (strSwitch != 1) { + ReCode = WriteReg(REG_MAPPING_SWITCH, 1); + SysDelay(20); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("\r\nFailed to restore mapping type!\r\n "); + btmpresult = false; + } + GetChannelNumNoMapping(); + + iTxNum = g_ScreenSetParam.iTxNum; + iRxNum = g_ScreenSetParam.iRxNum; + } + } else { + + + ReCode = ReadReg(0x02, &iTxNum); + ReCode = ReadReg(0x03, &iRxNum); + FTS_TEST_DBG("Newly acquired TxNum:%d, RxNum:%d", iTxNum, iRxNum); + } + + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("ReCode error. Error Code: %d\n", ReCode); + btmpresult = false; + goto TEST_ERR; + } + + iChannelNum = iTxNum + iRxNum; + iMaxTx = iTxNum; + iAllAdcDataNum = 1 + (1 + iTxNum + iRxNum)*2; + + for (i = 0; i < 5; i++) { + ReCode = StartScan(); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("StartScan Failed!\n"); + + SysDelay(100); + } else { + FTS_TEST_DBG("StartScan OK!\n"); + break; + } + } + if (i >= 5) { + FTS_TEST_ERROR("StartScan Failed for several times.!\n"); + btmpresult = false; + goto TEST_ERR; + } + for (i = 0; i < 3; i++) { + GetRawData(); + } + + iAdcData = fts_malloc(iAllAdcDataNum*sizeof(int)); + memset(iAdcData, 0, iAllAdcDataNum); + + for (i = 0; i < 5; i++) { + memset(iAdcData, 0, iAllAdcDataNum); + + FTS_TEST_DBG("WeakShort_GetAdcData times: %d", i); + + ReCode = WeakShort_GetAdcData(iAllAdcDataNum*2, iAdcData); + SysDelay(50); + if (ReCode != ERROR_CODE_OK) { + continue; + } else { + if (0 == iAdcData[0] && 0 == iAdcData[1]) { + continue; + } + + else + break; + } + } + if (i >= 5) { + FTS_TEST_ERROR("WeakShort_GetAdcData or ADC data error. tried times: %d", i); + btmpresult = false; + goto TEST_ERR; + } + + + iOffset = iAdcData[0]; + iClbData_Ground = iAdcData[1]; + iClbData_Mutual = iAdcData[2 + iChannelNum]; + + +#if 0 + + + for (i = 0; i < iAllAdcDataNum/*iChannelNum*/; i++) { + if (i <= (iChannelNum + 1)) { + if (i == 0) + FTS_TEST_DBG("\n\n\nOffset %02d: %4d, \n", i, iAdcData[i]); + else if (i == 1) /*if(i <= iMaxTx)*/ + FTS_TEST_DBG("Ground %02d: %4d, \n", i, iAdcData[i]); + else if (i <= (iMaxTx + 1)) + FTS_TEST_DBG("Tx%02d: %4d, ", i-1, iAdcData[i]); + else if (i <= (iChannelNum + 1)) + FTS_TEST_DBG("Rx%02d: %4d, ", i - iMaxTx-1, iAdcData[i]); + + if (i % 10 == 0) + FTS_TEST_DBG("\n"); + + } else { + if (i == (iChannelNum + 2)) + FTS_TEST_DBG("\n\n\nMultual %02d: %4d, \n", i, iAdcData[i]); + else if (i <= (iMaxTx)+(iChannelNum + 2)) + FTS_TEST_DBG("Tx%02d: %4d, ", i - (iChannelNum + 2), iAdcData[i]); + else if (i < iAllAdcDataNum) + FTS_TEST_DBG("Rx%02d: %4d, ", i - iMaxTx - (iChannelNum + 2), iAdcData[i]); + + if (i % 10 == 0) + FTS_TEST_DBG("\n"); + + } + } + FTS_TEST_DBG("\r\n"); + +#endif + + + + fMShortResistance = fts_malloc(iChannelNum*sizeof(int)); + memset(fMShortResistance, 0, iChannelNum); + fGShortResistance = fts_malloc(iChannelNum*sizeof(int)); + memset(fGShortResistance, 0, iChannelNum); + + + iMin_CG = g_stCfg_FT5X46_BasicThreshold.WeakShortTest_CG; + + iDoffset = iOffset - 1024; + iDrefn = iClbData_Ground; + + + FTS_TEST_DBG("Drefp: %5d \r\n", iDrefn); + + FTS_TEST_DBG("Doffset: %5d \r\n", iDoffset); + + FTS_TEST_DBG("Rshort(Ground): \n\n\n"); + + fKcal = 1; + FTS_TEST_DBG("Short Circuit (Channel and Ground):\r\n"); + + for (i = 0; i < iChannelNum; i++) { + iDsen = iAdcData[i+2]; + + FTS_TEST_DBG("%5d ", iDsen); + + if (i+1 == iMaxTx) { + + FTS_TEST_DBG("\n"); + } + + if ((2047+iDoffset) - iDsen <= 0) { + continue; + } + + if (i == iMaxTx) { + + FTS_TEST_DBG("\n"); + + } + + if (IcValue <= 0x05 || IcValue == 0xff) { + + fGShortResistance[i] = (iDsen - iDoffset + 410) * 25 * fKcal / (2047 + iDoffset - iDsen) - 3; + } else { + if (iDrefn - iDsen <= 0) { + fGShortResistance[i] = iMin_CG; + FTS_TEST_DBG("%02d ", fGShortResistance[i]); + + continue; + } + + fGShortResistance[i] = (((iDsen - iDoffset + 384) / (iDrefn - iDsen) * 57) - 1); + } + if (fGShortResistance[i] < 0) + fGShortResistance[i] = 0; + + FTS_TEST_DBG("%02d ", fGShortResistance[i]); + + if ((iMin_CG > fGShortResistance[i]) || (iDsen - iDoffset < 0)) { + iCount++; + if (i+1 <= iMaxTx) + FTS_TEST_DBG("Tx%02d: %02d (k¦¸), ", i+1, fGShortResistance[i]); + else + FTS_TEST_DBG("Rx%02d: %02d (k¦¸), ", i+1 - iMaxTx, fGShortResistance[i]); + if (iCount % 10 == 0) + FTS_TEST_DBG("\n"); + } + + } + FTS_TEST_DBG("\n"); + + + if (iCount > 0) { + + btmpresult = false; + } + + + iMin_CC = g_stCfg_FT5X46_BasicThreshold.WeakShortTest_CC; + + if ((IcValue == 0x06 || IcValue < 0xff) && iRsen != iCCRsen) { + iRsen = iCCRsen; + } + iDoffset = iOffset - 1024; + iDrefn = iClbData_Mutual; + fKcal = 1.0; + + FTS_TEST_DBG("\n\nShort Circuit (Channel and Channel):\n"); + iCount = 0; + + + FTS_TEST_DBG("Drefp: %5d \r\n", iDrefn); + FTS_TEST_DBG("Doffset: %5d \r\n", iDoffset); + FTS_TEST_DBG("Rshort(Channel):"); + iDCal = max(iDrefn, 116 + iDoffset); + + for (i = 0; i < iChannelNum; i++) { + iDsen = iAdcData[i+iChannelNum + 3]; + + FTS_TEST_DBG("%5d ", iDsen); + if (i+1 == iMaxTx) { + + FTS_TEST_DBG("\n"); + } + if (IcValue <= 0x05 || IcValue == 0xff) { + if (iDsen - iDrefn < 0) + continue; + } + + if (i == iMaxTx) { + + FTS_TEST_DBG("\n"); + } + + + if (IcValue <= 0x05 || IcValue == 0xff) { + iMa = iDsen - iDCal; + iMa = iMa ? iMa : 1; + fMShortResistance[i] = ((2047 + iDoffset - iDCal) * 24 / iMa - 27) * fKcal - 6; + } else { + if (iDrefn - iDsen <= 0) { + fMShortResistance[i] = iMin_CC; + FTS_TEST_DBG("%02d ", fMShortResistance[i]); + continue; + } + + fMShortResistance[i] = (iDsen - iDoffset - 123) * iRsen * fKcal / (iDrefn - iDsen /*temp*/) - 2; + } + + + FTS_TEST_DBG("%02d ", fMShortResistance[i]); + + if (fMShortResistance[i] < 0 && fMShortResistance[i] >= -240) + fMShortResistance[i] = 0; + else if (fMShortResistance[i] < -240) + continue; + + if (fMShortResistance[i] <= 0 || fMShortResistance[i] < iMin_CC) { + iCount++; + if (i+1 <= iMaxTx) + FTS_TEST_DBG("Tx%02d: %02d(k¦¸), ", i+1, fMShortResistance[i]); + else + FTS_TEST_DBG("Rx%02d: %02d(k¦¸), ", i+1 - iMaxTx, fMShortResistance[i]); + + if (iCount % 10 == 0) + FTS_TEST_DBG("\n"); + + } + + } + FTS_TEST_DBG("\n"); + + + if (iCount > 0 && !bCapShortTest) { + + btmpresult = false; + } + + + if (bCapShortTest && iCount) { + FTS_TEST_DBG(" bCapShortTest && iCount. need to add ......"); + } + + + if (m_bV3TP) { + ReCode = WriteReg(REG_MAPPING_SWITCH, strSwitch); + SysDelay(50); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("Failed to restore mapping type!\r\n "); + btmpresult = false; + } + ReCode = GetChannelNum(); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("\n GetChannelNum error. Error Code: %d", ReCode); + goto TEST_ERR; + } + + ReCode = GetRawData(); + } + +TEST_ERR: + + if (NULL != iAdcData) { + fts_free(iAdcData); + iAdcData = NULL; + } + + if (NULL != fMShortResistance) { + fts_free(fMShortResistance); + fMShortResistance = NULL; + } + + if (NULL != fGShortResistance) { + fts_free(fGShortResistance); + fGShortResistance = NULL; + } + + TestResultLen += sprintf(TestResult+TestResultLen, " Weak Short Test is %s. \n\n", (btmpresult ? "OK" : "NG")); + + if (btmpresult) { + FTS_TEST_INFO("\r\n\r\n//Weak Short Test is OK."); + *bTestResult = true; + } else { + FTS_TEST_INFO("\r\n\r\n//Weak Short Test is NG."); + *bTestResult = false; + } + + + return ReCode; +} + + +unsigned char FT5X46_TestItem_PanelDifferTest(bool *bTestResult) +{ + int index = 0; + int iRow = 0, iCol = 0; + int iValue = 0; + unsigned char ReCode = 0, strSwitch = -1; + bool btmpresult = true; + int iMax, iMin; + int maxValue = 0; + int minValue = 32767; + int AvgValue = 0; + int InvalidNum = 0; + int i = 0, j = 0; + + unsigned char OriginRawDataType = 0xff; + unsigned char OriginFrequecy = 0xff; + unsigned char OriginFirState = 0xff; + + + FTS_TEST_INFO("\r\n\r\n\r\n==============================Test Item: -------- Panel Differ Test \r\n\r\n"); + + ReCode = EnterFactory(); + SysDelay(20); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("\n\n// Failed to Enter factory Mode. Error Code: %d", ReCode); + goto TEST_ERR; + } + + + + if (m_bV3TP) { + ReCode = ReadReg(REG_MAPPING_SWITCH, &strSwitch); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("\n Read REG_MAPPING_SWITCH error. Error Code: %d", ReCode); + goto TEST_ERR; + } + + if (strSwitch != 0) { + ReCode = WriteReg(REG_MAPPING_SWITCH, 0); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("\n Write REG_MAPPING_SWITCH error. Error Code: %d", ReCode); + goto TEST_ERR; + } + + ReCode = GetChannelNum(); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("\n GetChannelNum error. Error Code: %d", ReCode); + goto TEST_ERR; + } + + ReCode = GetRawData(); + } + } + + + FTS_TEST_DBG("\r\n=========Set Auto Equalization:\r\n"); + ReCode = ReadReg(REG_NORMALIZE_TYPE, &OriginRawDataType); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("Read REG_NORMALIZE_TYPE error. Error Code: %d", ReCode); + btmpresult = false; + goto TEST_ERR; + } + + if (OriginRawDataType != 0) { + ReCode = WriteReg(REG_NORMALIZE_TYPE, 0x00); + SysDelay(50); + if (ReCode != ERROR_CODE_OK) { + btmpresult = false; + FTS_TEST_ERROR("Write reg REG_NORMALIZE_TYPE Failed."); + goto TEST_ERR; + } + } + + + + FTS_TEST_DBG("=========Set Frequecy High"); + ReCode = ReadReg(0x0A, &OriginFrequecy); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("Read reg 0x0A error. Error Code: %d", ReCode); + btmpresult = false; + goto TEST_ERR; + } + + ReCode = WriteReg(0x0A, 0x81); + SysDelay(10); + if (ReCode != ERROR_CODE_OK) { + btmpresult = false; + FTS_TEST_ERROR("Write reg 0x0A Failed."); + goto TEST_ERR; + } + + FTS_TEST_DBG("=========FIR State: OFF"); + ReCode = ReadReg(0xFB, &OriginFirState); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("Read reg 0xFB error. Error Code: %d", ReCode); + btmpresult = false; + goto TEST_ERR; + } + ReCode = WriteReg(0xFB, 0); + SysDelay(50); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("Write reg 0xFB Failed."); + btmpresult = false; + goto TEST_ERR; + } + ReCode = GetRawData(); + + for (index = 0; index < 4; ++index) { + ReCode = GetRawData(); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("GetRawData Failed."); + btmpresult = false; + goto TEST_ERR; + } + } + + + for (i = 0; i < g_ScreenSetParam.iTxNum; i++) { + for (j = 0; j < g_ScreenSetParam.iRxNum; j++) { + m_DifferData[i][j] = m_RawData[i][j]/10; + } + } + + + + +#if 1 + FTS_TEST_DBG("PannelDiffer :\n"); + for (iRow = 0; iRow < g_ScreenSetParam.iTxNum; iRow++) { + FTS_TEST_DBG("\nRow%2d: ", iRow+1); + for (iCol = 0; iCol < g_ScreenSetParam.iRxNum; iCol++) { + + + iValue = m_DifferData[iRow][iCol]; + FTS_TEST_DBG("%4d, ", iValue); + } + FTS_TEST_DBG("\n"); + } + FTS_TEST_DBG("\n"); +#endif + + + + + + for (iRow = 0; iRow < g_ScreenSetParam.iTxNum; iRow++) { + for (iCol = 0; iCol < g_ScreenSetParam.iRxNum; iCol++) { + if (g_stCfg_MCap_DetailThreshold.InvalidNode[iRow][iCol] == 0) + continue; + + iValue = m_DifferData[iRow][iCol]; + iMin = g_stCfg_MCap_DetailThreshold.PanelDifferTest_Min[iRow][iCol]; + iMax = g_stCfg_MCap_DetailThreshold.PanelDifferTest_Max[iRow][iCol]; + + if (iValue < iMin || iValue > iMax) { + btmpresult = false; + FTS_TEST_ERROR("Out Of Range. Node=(%d, %d), Get_value=%d, Set_Range=(%d, %d) \n", \ + iRow+1, iCol+1, iValue, iMin, iMax); + } + } + } + + + + + FTS_TEST_DBG("PannelDiffer ABS:\n"); + for (i = 0; i < g_ScreenSetParam.iTxNum; i++) { + + FTS_TEST_DBG("\n"); + for (j = 0; j < g_ScreenSetParam.iRxNum; j++) { + + FTS_TEST_DBG("%ld,", abs(m_DifferData[i][j])); + m_absDifferData[i][j] = abs(m_DifferData[i][j]); + + if (NODE_AST_TYPE == g_stCfg_MCap_DetailThreshold.InvalidNode[i][j] || NODE_INVALID_TYPE == g_stCfg_MCap_DetailThreshold.InvalidNode[i][j]) { + InvalidNum++; + continue; + } + maxValue = max(maxValue, m_DifferData[i][j]); + minValue = min(minValue, m_DifferData[i][j]); + AvgValue += m_DifferData[i][j]; + } + } + FTS_TEST_DBG("\n"); + Save_Test_Data(m_absDifferData, 0, g_ScreenSetParam.iTxNum, g_ScreenSetParam.iRxNum, 1); + + + AvgValue = AvgValue/(g_ScreenSetParam.iTxNum*g_ScreenSetParam.iRxNum - InvalidNum); + FTS_TEST_DBG("PanelDiffer:Max: %d, Min: %d, Avg: %d ", maxValue, minValue, AvgValue); + + ReCode = WriteReg(REG_NORMALIZE_TYPE, OriginRawDataType); + ReCode = WriteReg(0x0A, OriginFrequecy); + ReCode = WriteReg(0xFB, OriginFirState); + + + if (m_bV3TP) { + ReCode = WriteReg(REG_MAPPING_SWITCH, strSwitch); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("Failed to restore mapping type!"); + btmpresult = false; + } + } + + TestResultLen += sprintf(TestResult+TestResultLen, " Panel Differ Test is %s. \n\n", (btmpresult ? "OK" : "NG")); + + + + if (btmpresult) { + *bTestResult = true; + FTS_TEST_INFO(" //Panel Differ Test is OK!"); + } else { + *bTestResult = false; + FTS_TEST_INFO(" //Panel Differ Test is NG!"); + } + return ReCode; + +TEST_ERR: + + *bTestResult = false; + FTS_TEST_INFO(" //Panel Differ Test is NG!"); + TestResultLen += sprintf(TestResult+TestResultLen, " Panel Differ Test is NG. \n\n"); + return ReCode; +} + + + + +/************************************************************************ +* Name: GetPanelRows(Same function name as FT_MultipleTest) +* Brief: Get row of TP +* Input: none +* Output: pPanelRows +* Return: Comm Code. Code = 0x00 is OK, else fail. +***********************************************************************/ +static unsigned char GetPanelRows(unsigned char *pPanelRows) +{ + return ReadReg(REG_TX_NUM, pPanelRows); +} + +/************************************************************************ +* Name: GetPanelCols(Same function name as FT_MultipleTest) +* Brief: get column of TP +* Input: none +* Output: pPanelCols +* Return: Comm Code. Code = 0x00 is OK, else fail. +***********************************************************************/ +static unsigned char GetPanelCols(unsigned char *pPanelCols) +{ + return ReadReg(REG_RX_NUM, pPanelCols); +} +/************************************************************************ +* Name: StartScan(Same function name as FT_MultipleTest) +* Brief: Scan TP, do it before read Raw Data +* Input: none +* Output: none +* Return: Comm Code. Code = 0x00 is OK, else fail. +***********************************************************************/ +static int StartScan(void) +{ + unsigned char RegVal = 0; + unsigned char times = 0; + const unsigned char MaxTimes = 250; + unsigned char ReCode = ERROR_CODE_COMM_ERROR; + + ReCode = ReadReg(DEVIDE_MODE_ADDR, &RegVal); + FTS_TEST_ERROR("first read:RegVal = 0x%x\n", RegVal); + if (ReCode == ERROR_CODE_OK) { + RegVal |= 0x80; + ReCode = WriteReg(DEVIDE_MODE_ADDR, RegVal); + if (ReCode == ERROR_CODE_OK) { + while (times++ < MaxTimes) { + SysDelay(16); + ReCode = ReadReg(DEVIDE_MODE_ADDR, &RegVal); + FTS_TEST_ERROR("RegVal = 0x%x\n", RegVal); + if (ReCode == ERROR_CODE_OK) { + if ((RegVal>>7) == 0) + break; + } else { + FTS_TEST_ERROR("StartScan read DEVIDE_MODE_ADDR error."); + break; + } + } + if (times < MaxTimes) + ReCode = ERROR_CODE_OK; + else { + ReCode = ERROR_CODE_COMM_ERROR; + FTS_TEST_ERROR("times NOT < MaxTimes. error."); + } + } else + FTS_TEST_ERROR("StartScan write DEVIDE_MODE_ADDR error."); + } else + FTS_TEST_ERROR("StartScan read DEVIDE_MODE_ADDR error."); + return ReCode; + +} +/************************************************************************ +* Name: ReadRawData(Same function name as FT_MultipleTest) +* Brief: read Raw Data +* Input: Freq(No longer used, reserved), LineNum, ByteNum +* Output: pRevBuffer +* Return: Comm Code. Code = 0x00 is OK, else fail. +***********************************************************************/ +unsigned char ReadRawData(unsigned char Freq, unsigned char LineNum, int ByteNum, int *pRevBuffer) +{ + unsigned char ReCode = ERROR_CODE_COMM_ERROR; + unsigned char I2C_wBuffer[3]; + int i, iReadNum; + unsigned short BytesNumInTestMode1 = 0; + + + iReadNum = ByteNum/BYTES_PER_TIME; + + if (0 != (ByteNum%BYTES_PER_TIME)) + iReadNum++; + + if (ByteNum <= BYTES_PER_TIME) { + BytesNumInTestMode1 = ByteNum; + } else { + BytesNumInTestMode1 = BYTES_PER_TIME; + } + + ReCode = WriteReg(REG_LINE_NUM, LineNum); + + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("Failed to write REG_LINE_NUM! "); + goto READ_ERR; + } + + + I2C_wBuffer[0] = REG_RawBuf0; + if (ReCode == ERROR_CODE_OK) { + focal_msleep(10); + ReCode = Comm_Base_IIC_IO(I2C_wBuffer, 1, m_ucTempData, BytesNumInTestMode1); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("read rawdata Comm_Base_IIC_IO Failed!1 "); + goto READ_ERR; + } + } + + for (i = 1; i < iReadNum; i++) { + if (ReCode != ERROR_CODE_OK) + break; + + if (i == iReadNum-1) { + focal_msleep(10); + ReCode = Comm_Base_IIC_IO(NULL, 0, m_ucTempData+BYTES_PER_TIME*i, ByteNum-BYTES_PER_TIME*i); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("read rawdata Comm_Base_IIC_IO Failed!2 "); + goto READ_ERR; + } + } else { + focal_msleep(10); + ReCode = Comm_Base_IIC_IO(NULL, 0, m_ucTempData+BYTES_PER_TIME*i, BYTES_PER_TIME); + + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("read rawdata Comm_Base_IIC_IO Failed!3 "); + goto READ_ERR; + } + } + + } + + if (ReCode == ERROR_CODE_OK) { + for (i = 0; i < (ByteNum>>1); i++) { + pRevBuffer[i] = (m_ucTempData[i<<1]<<8)+m_ucTempData[(i<<1)+1]; + + + + + } + } + +READ_ERR: + return ReCode; + +} +/************************************************************************ +* Name: GetTxSC_CB(Same function name as FT_MultipleTest) +* Brief: get CB of Tx SCap +* Input: index +* Output: pcbValue +* Return: Comm Code. Code = 0x00 is OK, else fail. +***********************************************************************/ +unsigned char GetTxSC_CB(unsigned char index, unsigned char *pcbValue) +{ + unsigned char ReCode = ERROR_CODE_OK; + unsigned char wBuffer[4]; + + if (index < 128) { + *pcbValue = 0; + WriteReg(REG_ScCbAddrR, index); + ReCode = ReadReg(REG_ScCbBuf0, pcbValue); + } else { + WriteReg(REG_ScCbAddrR, 0); + wBuffer[0] = REG_ScCbBuf0; + ReCode = Comm_Base_IIC_IO(wBuffer, 1, pcbValue, index-128); + + } + + return ReCode; +} + + + + +/************************************************************************ +* Name: Save_Test_Data +* Brief: Storage format of test data +* Input: int iData[TX_NUM_MAX][RX_NUM_MAX], int iArrayIndex, unsigned char Row, unsigned char Col, unsigned char ItemCount +* Output: none +* Return: none +***********************************************************************/ +static void Save_Test_Data(int iData[TX_NUM_MAX][RX_NUM_MAX], int iArrayIndex, unsigned char Row, unsigned char Col, unsigned char ItemCount) +{ + int iLen = 0; + int i = 0, j = 0; + + + iLen = sprintf(g_pTmpBuff, "NA, %d, %d, %d, %d, %d, ", \ + m_ucTestItemCode, Row, Col, m_iStartLine, ItemCount); + memcpy(g_pMsgAreaLine2+g_lenMsgAreaLine2, g_pTmpBuff, iLen); + g_lenMsgAreaLine2 += iLen; + + m_iStartLine += Row; + m_iTestDataCount++; + + + for (i = 0+iArrayIndex; (i < Row+iArrayIndex) && (i < TX_NUM_MAX); i++) { + for (j = 0; (j < Col) && (j < RX_NUM_MAX); j++) { + if (j == (Col - 1)) + iLen = sprintf(g_pTmpBuff, "%d, \n", iData[i][j]); + else + iLen = sprintf(g_pTmpBuff, "%d, ", iData[i][j]); + + memcpy(g_pStoreDataArea+g_lenStoreDataArea, g_pTmpBuff, iLen); + g_lenStoreDataArea += iLen; + } + } + +} + +/************************************************************************ +* Name: GetChannelNum +* Brief: Get Channel Num(Tx and Rx) +* Input: none +* Output: none +* Return: Comm Code. Code = 0x00 is OK, else fail. +***********************************************************************/ +static unsigned char GetChannelNum(void) +{ + unsigned char ReCode; + unsigned char rBuffer[1]; + + + ReCode = GetPanelRows(rBuffer); + if (ReCode == ERROR_CODE_OK) { + g_ScreenSetParam.iTxNum = rBuffer[0]; + if (g_ScreenSetParam.iTxNum > g_ScreenSetParam.iUsedMaxTxNum) { + FTS_TEST_ERROR("Failed to get Tx number, Get num = %d, UsedMaxNum = %d", + g_ScreenSetParam.iTxNum, g_ScreenSetParam.iUsedMaxTxNum); + g_ScreenSetParam.iTxNum = 0; + return ERROR_CODE_INVALID_PARAM; + } + } else { + FTS_TEST_ERROR("Failed to get Tx number"); + } + + + + ReCode = GetPanelCols(rBuffer); + if (ReCode == ERROR_CODE_OK) { + g_ScreenSetParam.iRxNum = rBuffer[0]; + if (g_ScreenSetParam.iRxNum > g_ScreenSetParam.iUsedMaxRxNum) { + FTS_TEST_ERROR("Failed to get Rx number, Get num = %d, UsedMaxNum = %d", + g_ScreenSetParam.iRxNum, g_ScreenSetParam.iUsedMaxRxNum); + g_ScreenSetParam.iRxNum = 0; + return ERROR_CODE_INVALID_PARAM; + } + } else { + FTS_TEST_ERROR("Failed to get Rx number"); + } + + return ReCode; + +} +/************************************************************************ +* Name: GetRawData +* Brief: Get Raw Data of MCAP +* Input: none +* Output: none +* Return: Comm Code. Code = 0x00 is OK, else fail. +***********************************************************************/ +static unsigned char GetRawData(void) +{ + unsigned char ReCode = ERROR_CODE_OK; + int iRow = 0; + int iCol = 0; + + + FTS_TEST_DBG("Start Scan ..."); + + ReCode = StartScan(); + if (ERROR_CODE_OK != ReCode) { + FTS_TEST_ERROR("Failed to Scan ..."); + return ReCode; + } + + FTS_TEST_DBG("Succee to Scan ..."); + + + memset(m_RawData, 0, sizeof(m_RawData)); + memset(m_iTempRawData, 0, sizeof(m_iTempRawData)); + + ReCode = ReadRawData(1, 0xAA, (g_ScreenSetParam.iTxNum * g_ScreenSetParam.iRxNum)*2, m_iTempRawData); + if (ERROR_CODE_OK != ReCode) { + FTS_TEST_ERROR("Failed to ReadRawData ..."); + return ReCode; + } + + for (iRow = 0; iRow < g_ScreenSetParam.iTxNum; iRow++) { + for (iCol = 0; iCol < g_ScreenSetParam.iRxNum; iCol++) { + m_RawData[iRow][iCol] = m_iTempRawData[iRow*g_ScreenSetParam.iRxNum + iCol]; + } + } + return ReCode; +} +/************************************************************************ +* Name: ShowRawData +* Brief: Show RawData +* Input: none +* Output: none +* Return: none. +***********************************************************************/ +static void ShowRawData(void) +{ + int iRow, iCol; + + for (iRow = 0; iRow < g_ScreenSetParam.iTxNum; iRow++) { + FTS_TEST_DBG("Tx%2d: ", iRow+1); + for (iCol = 0; iCol < g_ScreenSetParam.iRxNum; iCol++) { + FTS_TEST_DBG("%5d ", m_RawData[iRow][iCol]); + } + FTS_TEST_DBG("\n "); + } +} + +/************************************************************************ +* Name: GetChannelNumNoMapping +* Brief: get Tx&Rx num from other Register +* Input: none +* Output: none +* Return: Comm Code. Code = 0x00 is OK, else fail. +***********************************************************************/ +static unsigned char GetChannelNumNoMapping(void) +{ + unsigned char ReCode; + unsigned char rBuffer[1]; + + + FTS_TEST_DBG("Get Tx Num..."); + ReCode = ReadReg(REG_TX_NOMAPPING_NUM, rBuffer); + if (ReCode == ERROR_CODE_OK) { + g_ScreenSetParam.iTxNum = rBuffer[0]; + } else { + FTS_TEST_ERROR("Failed to get Tx number"); + } + + + FTS_TEST_DBG("Get Rx Num..."); + ReCode = ReadReg(REG_RX_NOMAPPING_NUM, rBuffer); + if (ReCode == ERROR_CODE_OK) { + g_ScreenSetParam.iRxNum = rBuffer[0]; + } else { + FTS_TEST_ERROR("Failed to get Rx number"); + } + + return ReCode; +} +/************************************************************************ +* Name: SwitchToNoMapping +* Brief: If it is V3 pattern, Get Tx/Rx Num again +* Input: none +* Output: none +* Return: Comm Code. Code = 0x00 is OK, else fail. +***********************************************************************/ +static unsigned char SwitchToNoMapping(void) +{ + unsigned char chPattern = -1; + unsigned char ReCode = ERROR_CODE_OK; + unsigned char RegData = -1; + ReCode = ReadReg(REG_PATTERN_5422, &chPattern); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("Switch To NoMapping Failed!"); + goto READ_ERR; + } + + if (1 == chPattern) { + RegData = -1; + ReCode = ReadReg(REG_MAPPING_SWITCH, &RegData); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("read REG_MAPPING_SWITCH Failed!"); + goto READ_ERR; + } + + if (1 != RegData) { + ReCode = WriteReg(REG_MAPPING_SWITCH, 1); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("write REG_MAPPING_SWITCH Failed!"); + goto READ_ERR; + } + focal_msleep(20); + ReCode = GetChannelNumNoMapping(); + + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("GetChannelNumNoMapping Failed!"); + goto READ_ERR; + } + } + } + +READ_ERR: + return ReCode; +} +/************************************************************************ +* Name: GetTestCondition +* Brief: Check whether Rx or TX need to test, in Waterproof ON/OFF Mode. +* Input: none +* Output: none +* Return: true: need to test; false: Not tested. +***********************************************************************/ +static boolean GetTestCondition(int iTestType, unsigned char ucChannelValue) +{ + boolean bIsNeeded = false; + switch (iTestType) { + case WT_NeedProofOnTest: + bIsNeeded = !(ucChannelValue & 0x20); + break; + case WT_NeedProofOffTest: + bIsNeeded = !(ucChannelValue & 0x80); + break; + case WT_NeedTxOnVal: + bIsNeeded = !(ucChannelValue & 0x40) || !(ucChannelValue & 0x04); + break; + case WT_NeedRxOnVal: + bIsNeeded = !(ucChannelValue & 0x40) || (ucChannelValue & 0x04); + break; + case WT_NeedTxOffVal: + bIsNeeded = (0x00 == (ucChannelValue & 0x03)) || (0x02 == (ucChannelValue & 0x03)); + break; + case WT_NeedRxOffVal: + bIsNeeded = (0x01 == (ucChannelValue & 0x03)) || (0x02 == (ucChannelValue & 0x03)); + break; + default: + break; + } + return bIsNeeded; +} + + + +static unsigned char WeakShort_GetAdcData(int AllAdcDataLen, int *pRevBuffer) +{ + unsigned char ReCode = ERROR_CODE_COMM_ERROR; + int iReadDataLen = AllAdcDataLen; + unsigned char *pDataSend = NULL; + + unsigned char Data = 0xff; + unsigned char tmp = 0xff; + int i = 0; + bool bAdcOK = false; + + FTS_TEST_FUNC_ENTER(); + + pDataSend = fts_malloc(iReadDataLen + 1); + if (pDataSend == NULL) + return ERROR_CODE_ALLOCATE_BUFFER_ERROR; + memset(pDataSend, 0, iReadDataLen + 1); + + ReCode = WriteReg(0x07, 0x01); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("WriteReg error. \n"); + return ReCode; + } + + SysDelay(100); + + for (i = 0; i < 100*5; i++) { + SysDelay(10); + ReCode = ReadReg(0x07, &Data); + FTS_TEST_ERROR("data = 0x%x\n", Data); + if (i == 30) { + ReadReg(0x02, &tmp); + FTS_TEST_ERROR("Reg 0x02 = 0x%x\n", tmp); + } + if (ReCode == ERROR_CODE_OK) { + if (Data == 0) { + bAdcOK = true; + break; + } + } + } + + if (!bAdcOK) { + FTS_TEST_ERROR("ADC data NOT ready. error.\n"); + ReCode = ERROR_CODE_COMM_ERROR; + goto EndGetAdc; + } + SysDelay(300); + pDataSend[0] = 0xF4; + + + ReCode = Comm_Base_IIC_IO(pDataSend, 1, pDataSend + 1, iReadDataLen); + if (ReCode == ERROR_CODE_OK) { + FTS_TEST_DBG("\n Adc Data:\n"); + for (i = 0; i < iReadDataLen/2; i++) { + pRevBuffer[i] = (pDataSend[1 + 2*i]<<8) + pDataSend[1 + 2*i + 1]; + FTS_TEST_DBG("%d, ", pRevBuffer[i]); + } + FTS_TEST_DBG("\n"); + } else { + FTS_TEST_ERROR("Comm_Base_IIC_IO error. error:%d. \n", ReCode); + } + +EndGetAdc: + if (pDataSend != NULL) { + fts_free(pDataSend); + pDataSend = NULL; + } + + FTS_TEST_FUNC_EXIT(); + + return ReCode; +} + + +#endif + diff --git a/drivers/input/touchscreen/FT5346/focaltech_test/supported_ic/focaltech_test_supported_ic.c b/drivers/input/touchscreen/FT5346/focaltech_test/supported_ic/focaltech_test_supported_ic.c new file mode 100644 index 0000000000000..87bb43db60935 --- /dev/null +++ b/drivers/input/touchscreen/FT5346/focaltech_test/supported_ic/focaltech_test_supported_ic.c @@ -0,0 +1,270 @@ +/************************************************************************ +* Copyright (C) 2012-2015, Focaltech Systems (R)£¬All Rights Reserved. +* Copyright (C) 2018 XiaoMi, Inc. +* +* File Name: focaltech_test_supported_ic.c +* +* Author: Software Development +* +* Created: 2016-08-01 +* +* Abstract: test item for FT8716 +* +************************************************************************/ + +/******************************************************************************* +* Included header files +*******************************************************************************/ + + +#include "../include/focaltech_test_supported_ic.h" +#include "../focaltech_test_config.h" + + + +#if (FT8607_TEST) +void OnInit_FT8607_TestItem(char *strIniFile); +void OnInit_FT8607_BasicThreshold(char *strIniFile); +void SetTestItem_FT8607(void); +boolean FT8607_StartTest(void); +int FT8607_get_test_data(char *pTestData); + +void fts_test_funcs(void) +{ + FTS_TEST_FUNC_ENTER(); + + g_stTestFuncs.OnInit_TestItem = OnInit_FT8607_TestItem; + g_stTestFuncs.OnInit_BasicThreshold = OnInit_FT8607_BasicThreshold; + g_stTestFuncs.SetTestItem = SetTestItem_FT8607; + g_stTestFuncs.Start_Test = FT8607_StartTest; + g_stTestFuncs.Get_test_data = FT8607_get_test_data; + + FTS_TEST_FUNC_EXIT(); +} + + +#elif (FT8716_TEST) + +boolean FT8716_StartTest(void); +int FT8716_get_test_data(char *pTestData); + +void OnInit_FT8716_TestItem(char *strIniFile); +void OnInit_FT8716_BasicThreshold(char *strIniFile); +void SetTestItem_FT8716(void); + +void fts_test_funcs(void) +{ + FTS_TEST_FUNC_ENTER(); + + g_stTestFuncs.OnInit_TestItem = OnInit_FT8716_TestItem; + g_stTestFuncs.OnInit_BasicThreshold = OnInit_FT8716_BasicThreshold; + g_stTestFuncs.SetTestItem = SetTestItem_FT8716; + g_stTestFuncs.Start_Test = FT8716_StartTest; + g_stTestFuncs.Get_test_data = FT8716_get_test_data; + + FTS_TEST_FUNC_EXIT(); +} + +#elif (FT5X46_TEST) + +boolean FT5X46_StartTest(void); +int FT5X46_get_test_data(char *pTestData); + +void OnInit_FT5X46_TestItem(char *strIniFile); +void OnInit_FT5X46_BasicThreshold(char *strIniFile); +void SetTestItem_FT5X46(void); + +void fts_test_funcs(void) +{ + FTS_TEST_FUNC_ENTER(); + + g_stTestFuncs.OnInit_TestItem = OnInit_FT5X46_TestItem; + g_stTestFuncs.OnInit_BasicThreshold = OnInit_FT5X46_BasicThreshold; + g_stTestFuncs.SetTestItem = SetTestItem_FT5X46; + g_stTestFuncs.Start_Test = FT5X46_StartTest; + g_stTestFuncs.Get_test_data = FT5X46_get_test_data; + + FTS_TEST_FUNC_EXIT(); +} + +#elif (FT6X36_TEST) + +boolean FT6X36_StartTest(void); +int FT6X36_get_test_data(char *pTestData); + +void OnInit_FT6X36_TestItem(char *strIniFile); +void OnInit_FT6X36_BasicThreshold(char *strIniFile); +void SetTestItem_FT6X36(void); + +void fts_test_funcs(void) +{ + FTS_TEST_FUNC_ENTER(); + + g_stTestFuncs.OnInit_TestItem = OnInit_FT6X36_TestItem; + g_stTestFuncs.OnInit_BasicThreshold = OnInit_FT6X36_BasicThreshold; + g_stTestFuncs.SetTestItem = SetTestItem_FT6X36; + g_stTestFuncs.Start_Test = FT6X36_StartTest; + g_stTestFuncs.Get_test_data = FT6X36_get_test_data; + + FTS_TEST_FUNC_EXIT(); +} + +#elif (FT5822_TEST) + +boolean FT5822_StartTest(void); +int FT5822_get_test_data(char *pTestData); + +void OnInit_FT5822_TestItem(char *strIniFile); +void OnInit_FT5822_BasicThreshold(char *strIniFile); +void SetTestItem_FT5822(void); + +void fts_test_funcs(void) +{ + FTS_TEST_FUNC_ENTER(); + + g_stTestFuncs.OnInit_TestItem = OnInit_FT5822_TestItem; + g_stTestFuncs.OnInit_BasicThreshold = OnInit_FT5822_BasicThreshold; + g_stTestFuncs.SetTestItem = SetTestItem_FT5822; + g_stTestFuncs.Start_Test = FT5822_StartTest; + g_stTestFuncs.Get_test_data = FT5822_get_test_data; + + FTS_TEST_FUNC_EXIT(); +} + +#elif (FT8006_TEST) + +boolean FT8006_StartTest(void); +int FT8006_get_test_data(char *pTestData); + +void OnInit_FT8006_TestItem(char *strIniFile); +void OnInit_FT8006_BasicThreshold(char *strIniFile); +void SetTestItem_FT8006(void); + +void fts_test_funcs(void) +{ + FTS_TEST_FUNC_ENTER(); + + g_stTestFuncs.OnInit_TestItem = OnInit_FT8006_TestItem; + g_stTestFuncs.OnInit_BasicThreshold = OnInit_FT8006_BasicThreshold; + g_stTestFuncs.SetTestItem = SetTestItem_FT8006; + g_stTestFuncs.Start_Test = FT8006_StartTest; + g_stTestFuncs.Get_test_data = FT8006_get_test_data; + + FTS_TEST_FUNC_EXIT(); +} + + +#elif (FT8736_TEST) + +boolean FT8736_StartTest(void); +int FT8736_get_test_data(char *pTestData); + +void OnInit_FT8736_TestItem(char *strIniFile); +void OnInit_FT8736_BasicThreshold(char *strIniFile); +void SetTestItem_FT8736(void); + +void fts_test_funcs(void) +{ + FTS_TEST_FUNC_ENTER(); + + g_stTestFuncs.OnInit_TestItem = OnInit_FT8736_TestItem; + g_stTestFuncs.OnInit_BasicThreshold = OnInit_FT8736_BasicThreshold; + g_stTestFuncs.SetTestItem = SetTestItem_FT8736; + g_stTestFuncs.Start_Test = FT8736_StartTest; + g_stTestFuncs.Get_test_data = FT8736_get_test_data; + + FTS_TEST_FUNC_EXIT(); +} + +#elif (FTE736_TEST) + +boolean FTE736_StartTest(void); +int FTE736_get_test_data(char *pTestData); + +void OnInit_FTE736_TestItem(char *strIniFile); +void OnInit_FTE736_BasicThreshold(char *strIniFile); +void SetTestItem_FTE736(void); + +void fts_test_funcs(void) +{ + FTS_TEST_FUNC_ENTER(); + + g_stTestFuncs.OnInit_TestItem = OnInit_FTE736_TestItem; + g_stTestFuncs.OnInit_BasicThreshold = OnInit_FTE736_BasicThreshold; + g_stTestFuncs.SetTestItem = SetTestItem_FTE736; + g_stTestFuncs.Start_Test = FTE736_StartTest; + g_stTestFuncs.Get_test_data = FTE736_get_test_data; + + FTS_TEST_FUNC_EXIT(); +} + +#elif (FTE716_TEST) + +boolean FTE716_StartTest(void); +int FTE716_get_test_data(char *pTestData); + +void OnInit_FTE716_TestItem(char *strIniFile); +void OnInit_FTE716_BasicThreshold(char *strIniFile); +void SetTestItem_FTE716(void); + +void fts_test_funcs(void) +{ + FTS_TEST_FUNC_ENTER(); + + g_stTestFuncs.OnInit_TestItem = OnInit_FTE716_TestItem; + g_stTestFuncs.OnInit_BasicThreshold = OnInit_FTE716_BasicThreshold; + g_stTestFuncs.SetTestItem = SetTestItem_FTE716; + g_stTestFuncs.Start_Test = FTE716_StartTest; + g_stTestFuncs.Get_test_data = FTE716_get_test_data; + + FTS_TEST_FUNC_EXIT(); +} + +#elif (FT8606_TEST) + +boolean FT8606_StartTest(void); +int FT8606_get_test_data(char *pTestData); + +void OnInit_FT8606_TestItem(char *strIniFile); +void OnInit_FT8606_BasicThreshold(char *strIniFile); +void SetTestItem_FT8606(void); + +void fts_test_funcs(void) +{ + FTS_TEST_FUNC_ENTER(); + + g_stTestFuncs.OnInit_TestItem = OnInit_FT8606_TestItem; + g_stTestFuncs.OnInit_BasicThreshold = OnInit_FT8606_BasicThreshold; + g_stTestFuncs.SetTestItem = SetTestItem_FT8606; + g_stTestFuncs.Start_Test = FT8606_StartTest; + g_stTestFuncs.Get_test_data = FT8606_get_test_data; + + FTS_TEST_FUNC_EXIT(); +} + +#elif (FT3C47_TEST) + +boolean FT3C47_StartTest(void); +int FT3C47_get_test_data(char *pTestData); + +void OnInit_FT3C47_TestItem(char *strIniFile); +void OnInit_FT3C47_BasicThreshold(char *strIniFile); +void SetTestItem_FT3C47(void); + +void fts_test_funcs(void) +{ + FTS_TEST_FUNC_ENTER(); + + g_stTestFuncs.OnInit_TestItem = OnInit_FT3C47_TestItem; + g_stTestFuncs.OnInit_BasicThreshold = OnInit_FT3C47_BasicThreshold; + g_stTestFuncs.SetTestItem = SetTestItem_FT3C47; + g_stTestFuncs.Start_Test = FT3C47_StartTest; + g_stTestFuncs.Get_test_data = FT3C47_get_test_data; + + FTS_TEST_FUNC_EXIT(); +} + + +#endif + + diff --git a/drivers/input/touchscreen/FT5346/ft5346.c b/drivers/input/touchscreen/FT5346/ft5346.c new file mode 100644 index 0000000000000..174a61760177f --- /dev/null +++ b/drivers/input/touchscreen/FT5346/ft5346.c @@ -0,0 +1,3296 @@ +/* + * + * FocalTech ft5x06 TouchScreen driver. + * + * Copyright (c) 2010 Focal tech Ltd. + * Copyright (c) 2012-2014, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#if WT_ADD_CTP_INFO +#include +#endif + +#if WT_CTP_GESTURE_SUPPORT + +#define FTS_GESTRUE_POINTS 255 +#define FTS_GESTRUE_POINTS_HEADER 8 + +static void Ctp_Gesture_Fucntion_Proc_File(void); +static char gtp_gesture_value; +static char gtp_gesture_onoff = '0'; +unsigned short coordinate_x[150] = {0}; +unsigned short coordinate_y[150] = {0}; +#endif + +#if CTP_CHARGER_DETECT +#include +#endif + +#if defined(CONFIG_FB) +#include +#include + +#elif defined(CONFIG_HAS_EARLYSUSPEND) +#include +/* Early-suspend level */ +#define FT_SUSPEND_LEVEL 1 +#endif + + +#if WT_ADD_CTP_INFO +static u8 lockdown_info[FT_LOCKDOWN_SIZE]; + +static u8 nomal_boot; + +#endif +u8 tp_rgb_color; + +static u8 TP_Maker, LCD_Maker, Panel_Ink, Project_Id; +static char lcd_ic_name[10] = {0}; +extern char Lcm_name[HARDWARE_MAX_ITEM_LONGTH]; + +#define FT_MAX_SIZE 64 + +#define FT_DEBUG_DIR_NAME "ts_debug" + +#define TPD_MAX_POINTS_5 5 +#define TPD_MAX_POINTS_10 10 + +#define TPD_MAX_POINTS_2 2 +#define AUTO_CLB_NEED 1 +#define AUTO_CLB_NONEED 0 +struct Upgrade_Info fts_updateinfo_curr; +static struct Upgrade_Info fts_updateinfo[] = { + {0x55, "FT5x06", TPD_MAX_POINTS_5, AUTO_CLB_NEED, 50, 30, 0x79, 0x03, 1, 2000}, + {0x08, "FT5606", TPD_MAX_POINTS_5, AUTO_CLB_NEED, 50, 30, 0x79, 0x06, 100, 2000}, + {0x0a, "FT5x16", TPD_MAX_POINTS_5, AUTO_CLB_NEED, 50, 30, 0x79, 0x07, 1, 1500}, + {0x05, "FT6208", TPD_MAX_POINTS_2, AUTO_CLB_NONEED, 60, 30, 0x79, 0x05, 10, 2000}, + {0x06, "FT6x06", TPD_MAX_POINTS_2, AUTO_CLB_NONEED, 100, 30, 0x79, 0x08, 10, 2000}, + {0x36, "FT6x36", TPD_MAX_POINTS_2, AUTO_CLB_NONEED, 100, 30, 0x79, 0x18, 10, 2000}, + {0x55, "FT5x06i", TPD_MAX_POINTS_5, AUTO_CLB_NEED, 50, 30, 0x79, 0x03, 1, 2000}, + {0x14, "FT5336", TPD_MAX_POINTS_10, AUTO_CLB_NONEED, 30, 30, 0x79, 0x11, 10, 2000}, + {0x13, "FT3316", TPD_MAX_POINTS_5, AUTO_CLB_NONEED, 30, 30, 0x79, 0x11, 10, 2000}, + {0x12, "FT5436i", TPD_MAX_POINTS_5, AUTO_CLB_NONEED, 30, 30, 0x79, 0x11, 10, 2000}, + {0x11, "FT5336i", TPD_MAX_POINTS_5, AUTO_CLB_NONEED, 30, 30, 0x79, 0x11, 10, 2000}, + {0x54, "FT5x46", TPD_MAX_POINTS_5, AUTO_CLB_NONEED, 2, 2, 0x54, 0x2c, 10, 1350}, +}; + +#define FT_STORE_TS_INFO(buf, id, name, max_tch, group_id, fw_vkey_support, \ + fw_name, fw_maj, fw_min, fw_sub_min) \ + snprintf(buf, FT_INFO_MAX_LEN, \ + "controller\t= focaltech\n" \ + "model\t\t= 0x%x\n" \ + "name\t\t= %s\n" \ + "max_touches\t= %d\n" \ + "drv_ver\t\t= 0x%x\n" \ + "group_id\t= 0x%x\n" \ + "fw_vkey_support\t= %s\n" \ + "fw_name\t\t= %s\n" \ + "fw_ver\t\t= %d.%d.%d\n", id, name, \ + max_tch, FT_DRIVER_VERSION, group_id, \ + fw_vkey_support, fw_name, fw_maj, fw_min, \ + fw_sub_min) + +#if CTP_PROC_INTERFACE +#define CTP_PARENT_PROC_NAME "touchscreen" +#define CTP_OPEN_PROC_NAME "ctp_openshort_test" +#define FTS_INI_FILE_NAME "ft5346_ds.ini" + +static DEFINE_MUTEX(fts_mutex); +struct i2c_client *fts_i2c_client = NULL; +EXPORT_SYMBOL(fts_i2c_client); +extern int fts_open_short_test(char *ini_file_name, char *bufdest, ssize_t *pinumread); + +static ssize_t ctp_open_proc_read(struct file *file, char __user *buf, size_t count, loff_t *ppos); +static ssize_t ctp_open_proc_write(struct file *filp, const char __user *userbuf, size_t count, loff_t *ppos); +static const struct file_operations ctp_open_procs_fops = { + .write = ctp_open_proc_write, + .read = ctp_open_proc_read, + .owner = THIS_MODULE, +}; +#endif + + + +#ifdef CONFIG_TOUCHSCREEN_LOCKDOWN_INFO +#define CTP_PARENT_PROC_NAME "touchscreen" +#define CTP_LOCKDOWN_INFOR_NAME "lockdown_info" + +static ssize_t ctp_lockdown_proc_read(struct file *file, char __user *buf, size_t count, loff_t *ppos); +static ssize_t ctp_lockdown_proc_write(struct file *filp, const char __user *userbuf, size_t count, loff_t *ppos); +static const struct file_operations ctp_lockdown_procs_fops = { + .write = ctp_lockdown_proc_write, + .read = ctp_lockdown_proc_read, + .owner = THIS_MODULE, +}; +#endif + + +#if FTS_PROC_APK_DEBUG +#define PROC_UPGRADE 0 +#define PROC_READ_REGISTER 1 +#define PROC_WRITE_REGISTER 2 +#define PROC_RAWDATA 3 +#define PROC_AUTOCLB 4 + +#define PROC_NAME "ft5x0x-debug" +static unsigned char proc_operate_mode = PROC_RAWDATA; +static struct proc_dir_entry *ft5x0x_proc_entry; +#endif + +static u8 is_ic_update_crash; +static struct i2c_client *update_client; +static struct i2c_client *gesture_client; + +static struct proc_dir_entry *ctp_device_proc; + +#if CTP_CHARGER_DETECT +extern int power_supply_get_battery_charge_state(struct power_supply *psy); +static struct power_supply *batt_psy; +static u8 is_charger_plug; +static u8 pre_charger_status; + +#endif + +#if CTP_SYS_APK_UPDATE +static struct i2c_client *g_focalclient +#endif + +#if CTP_SYS_APK_UPDATE +static int focal_i2c_Read(unsigned char *writebuf, + int writelen, unsigned char *readbuf, int readlen) +{ + int ret; + + if (writelen > 0) { + struct i2c_msg msgs[] = { + { + .addr = g_focalclient->addr, + .flags = 0, + .len = writelen, + .buf = writebuf, + }, + { + .addr = g_focalclient->addr, + .flags = I2C_M_RD, + .len = readlen, + .buf = readbuf, + }, + }; + ret = i2c_transfer(g_focalclient->adapter, msgs, 2); + if (ret < 0) + dev_err(&g_focalclient->dev, "f%s: i2c read error.\n", + __func__); + } else { + struct i2c_msg msgs[] = { + { + .addr = g_focalclient->addr, + .flags = I2C_M_RD, + .len = readlen, + .buf = readbuf, + }, + }; + ret = i2c_transfer(g_focalclient->adapter, msgs, 1); + if (ret < 0) + dev_err(&g_focalclient->dev, "%s:i2c read error.\n", __func__); + } + return ret; +} +/*write data by i2c*/ +static int focal_i2c_Write(unsigned char *writebuf, int writelen) +{ + int ret; + + struct i2c_msg msg[] = { + { + .addr = g_focalclient->addr, + .flags = 0, + .len = writelen, + .buf = writebuf, + }, + }; + + ret = i2c_transfer(g_focalclient->adapter, msg, 1); + if (ret < 0) + dev_err(&g_focalclient->dev, "%s i2c write error.\n", __func__); + + return ret; +} +#endif + +static int ft5x06_i2c_read(struct i2c_client *client, char *writebuf, + int writelen, char *readbuf, int readlen) +{ + int ret; + + if (writelen > 0) { + struct i2c_msg msgs[] = { + { + .addr = client->addr, + .flags = 0, + .len = writelen, + .buf = writebuf, + }, + { + .addr = client->addr, + .flags = I2C_M_RD, + .len = readlen, + .buf = readbuf, + }, + }; + ret = i2c_transfer(client->adapter, msgs, 2); + if (ret < 0) + dev_err(&client->dev, "%s: i2c read error.\n", __func__); + } else { + struct i2c_msg msgs[] = { + { + .addr = client->addr, + .flags = I2C_M_RD, + .len = readlen, + .buf = readbuf, + }, + }; + ret = i2c_transfer(client->adapter, msgs, 1); + if (ret < 0) + dev_err(&client->dev, "%s:i2c read error.\n", __func__); + } + return ret; +} + +static int ft5x06_i2c_write(struct i2c_client *client, char *writebuf, + int writelen) +{ + int ret; + + struct i2c_msg msgs[] = { + { + .addr = client->addr, + .flags = 0, + .len = writelen, + .buf = writebuf, + }, + }; + ret = i2c_transfer(client->adapter, msgs, 1); + if (ret < 0) + dev_err(&client->dev, "%s: i2c write error.\n", __func__); + + return ret; +} + +static int ft5x0x_write_reg(struct i2c_client *client, u8 addr, const u8 val) +{ + u8 buf[2] = {0}; + + buf[0] = addr; + buf[1] = val; + + return ft5x06_i2c_write(client, buf, sizeof(buf)); +} + +static int ft5x0x_read_reg(struct i2c_client *client, u8 addr, u8 *val) +{ + return ft5x06_i2c_read(client, &addr, 1, val, 1); +} + +static void ft5x06_update_fw_vendor_id(struct ft5x06_ts_data *data) +{ + struct i2c_client *client = data->client; + u8 reg_addr; + int err; + + reg_addr = FT_REG_FW_VENDOR_ID; + err = ft5x06_i2c_read(client, ®_addr, 1, &data->fw_vendor_id, 1); + if (err < 0) + dev_err(&client->dev, "fw vendor id read failed"); + + dev_err(&client->dev, "WT: fw vendor id = %d ", data->fw_vendor_id); +} + +static void ft5x06_update_fw_ver(struct ft5x06_ts_data *data) +{ + struct i2c_client *client = data->client; + u8 reg_addr; + int err; + + reg_addr = FT_REG_FW_VER; + err = ft5x06_i2c_read(client, ®_addr, 1, &data->fw_ver[0], 1); + if (err < 0) + dev_err(&client->dev, "fw major version read failed"); + + reg_addr = FT_REG_FW_MIN_VER; + err = ft5x06_i2c_read(client, ®_addr, 1, &data->fw_ver[1], 1); + if (err < 0) + dev_err(&client->dev, "fw minor version read failed"); + + reg_addr = FT_REG_FW_SUB_MIN_VER; + err = ft5x06_i2c_read(client, ®_addr, 1, &data->fw_ver[2], 1); + if (err < 0) + dev_err(&client->dev, "fw sub minor version read failed"); + + dev_info(&client->dev, "Firmware version = %d.%d.%d\n", + data->fw_ver[0], data->fw_ver[1], data->fw_ver[2]); +} + +#if WT_CTP_GESTURE_SUPPORT +static void check_gesture(int gesture_id, struct input_dev *ip_dev) +{ + + switch (gesture_id) { + case 0x24: + gtp_gesture_value = 'K'; + input_report_key(ip_dev, KEYCODE_WAKEUP, 1); + input_sync(ip_dev); + input_report_key(ip_dev, KEYCODE_WAKEUP, 0); + input_sync(ip_dev); + break; + default: + break; + } +} +static int fts_read_Gestruedata(struct input_dev *ip_dev) +{ + unsigned char buf[FTS_GESTRUE_POINTS * 3] = { 0 }; + int ret = -1; + int i = 0; + int gestrue_id = 0; + short pointnum = 0; + buf[0] = 0xd3; + + pointnum = 0; + ret = ft5x06_i2c_read(gesture_client, buf, 1, buf, FTS_GESTRUE_POINTS_HEADER); + if (ret < 0) { + CTP_ERROR("%s read touchdata failed.\n", __func__); + return ret; + } + CTP_ERROR("tpd %d read buf data.\n", buf[0]); + if (0x24 == buf[0]) { + gestrue_id = 0x24; + check_gesture(gestrue_id, ip_dev); + CTP_ERROR("tpd %d check_gesture gestrue_id.\n", gestrue_id); + return -EPERM; + } + + /* FW */ + + { + gestrue_id = buf[0]; + pointnum = (short)(buf[1]) & 0xff; + buf[0] = 0xd3; + + if ((pointnum * 4 + 8) < 255) { + ret = ft5x06_i2c_read(gesture_client, buf, 1, buf, (pointnum * 4 + 8)); + } else { + ret = ft5x06_i2c_read(gesture_client, buf, 1, buf, 255); + ret = ft5x06_i2c_read(gesture_client, buf, 0, buf+255, (pointnum * 4 + 8) - 255); + } + if (ret < 0) { + CTP_ERROR("%s read touchdata failed.\n", __func__); + return ret; + } + +printk("wdb: gestrue_id = %d \n", gestrue_id); + + + check_gesture(gestrue_id, ip_dev); + for (i = 0; i < pointnum; i++) { + coordinate_x[i] = (((s16) buf[0 + (4 * i)]) & 0x0F) << + 8 | (((s16) buf[1 + (4 * i)]) & 0xFF); + coordinate_y[i] = (((s16) buf[2 + (4 * i)]) & 0x0F) << + 8 | (((s16) buf[3 + (4 * i)]) & 0xFF); + } + return -EPERM; + } + + return -EPERM; +} +#endif + + +static irqreturn_t ft5x06_ts_interrupt(int irq, void *dev_id) +{ + struct ft5x06_ts_data *data = dev_id; + struct input_dev *ip_dev; + int rc, i, ret; + u32 id, x, y, status, num_touches; + u8 reg = 0x00, *buf, state; + bool update_input = false; + + if (!data) { + CTP_ERROR("%s: Invalid data\n", __func__); + return IRQ_HANDLED; + } + +#if CTP_CHARGER_DETECT + if (!batt_psy) { + + batt_psy = power_supply_get_by_name("usb"); + } else{ + + + + if (is_charger_plug != pre_charger_status) { + pre_charger_status = is_charger_plug; + ft5x0x_write_reg(update_client, 0x8B, is_charger_plug); + + } + } + +#endif + + ip_dev = data->input_dev; + buf = data->tch_data; + + rc = ft5x06_i2c_read(data->client, ®, 1, + buf, data->tch_data_len); + if (rc < 0) { + dev_err(&data->client->dev, "%s: read data fail\n", __func__); + return IRQ_HANDLED; + } + +#if WT_CTP_GESTURE_SUPPORT + if (gtp_gesture_onoff == '1') { + ret = ft5x0x_read_reg(gesture_client, 0xd0, &state); + CTP_DEBUG("in event gesture:%d\n", state); + if (ret < 0) { + CTP_ERROR("read value fail"); + } + if (state == 1) { + fts_read_Gestruedata(ip_dev); + return IRQ_HANDLED; + } + } +#endif + + for (i = 0; i < data->pdata->num_max_touches; i++) { + id = (buf[FT_TOUCH_ID_POS + FT_ONE_TCH_LEN * i]) >> 4; + if (id >= FT_MAX_ID) + break; + + update_input = true; + + x = (buf[FT_TOUCH_X_H_POS + FT_ONE_TCH_LEN * i] & 0x0F) << 8 | + (buf[FT_TOUCH_X_L_POS + FT_ONE_TCH_LEN * i]); + y = (buf[FT_TOUCH_Y_H_POS + FT_ONE_TCH_LEN * i] & 0x0F) << 8 | + (buf[FT_TOUCH_Y_L_POS + FT_ONE_TCH_LEN * i]); + + status = buf[FT_TOUCH_EVENT_POS + FT_ONE_TCH_LEN * i] >> 6; + + num_touches = buf[FT_TD_STATUS] & FT_STATUS_NUM_TP_MASK; + + /* invalid combination */ + if (!num_touches && !status && !id) + break; + + input_mt_slot(ip_dev, id); + if (status == FT_TOUCH_DOWN || status == FT_TOUCH_CONTACT) { + input_mt_report_slot_state(ip_dev, MT_TOOL_FINGER, 1); + input_report_abs(ip_dev, ABS_MT_POSITION_X, x); + input_report_abs(ip_dev, ABS_MT_POSITION_Y, y); + } else { + input_mt_report_slot_state(ip_dev, MT_TOOL_FINGER, 0); + } + } + + if (update_input) { + input_mt_report_pointer_emulation(ip_dev, false); + input_sync(ip_dev); + } + + if (num_touches == 0) { + for (i = 0; i < data->pdata->num_max_touches; i++) { + input_mt_slot(ip_dev, i); + input_mt_report_slot_state(ip_dev, MT_TOOL_FINGER, 0); + } + input_mt_report_pointer_emulation(ip_dev, false); + input_sync(ip_dev); + } + + return IRQ_HANDLED; +} + +static int ft5x06_power_on(struct ft5x06_ts_data *data, bool on) +{ + int rc; + + if (!on) + goto power_off; + + rc = regulator_enable(data->vdd); + if (rc) { + dev_err(&data->client->dev, + "Regulator vdd enable failed rc=%d\n", rc); + return rc; + } + + rc = regulator_enable(data->vcc_i2c); + if (rc) { + dev_err(&data->client->dev, + "Regulator vcc_i2c enable failed rc=%d\n", rc); + regulator_disable(data->vdd); + } + + return rc; + +power_off: + rc = regulator_disable(data->vdd); + if (rc) { + dev_err(&data->client->dev, + "Regulator vdd disable failed rc=%d\n", rc); + return rc; + } + + rc = regulator_disable(data->vcc_i2c); + if (rc) { + dev_err(&data->client->dev, + "Regulator vcc_i2c disable failed rc=%d\n", rc); + rc = regulator_enable(data->vdd); + if (rc) { + dev_err(&data->client->dev, + "Regulator vdd enable failed rc=%d\n", rc); + } + } + + return rc; +} + +static int ft5x06_power_init(struct ft5x06_ts_data *data, bool on) +{ + int rc; + + if (!on) + goto pwr_deinit; + + data->vdd = regulator_get(&data->client->dev, "vdd"); + if (IS_ERR(data->vdd)) { + rc = PTR_ERR(data->vdd); + dev_err(&data->client->dev, + "Regulator get failed vdd rc=%d\n", rc); + return rc; + } + + if (regulator_count_voltages(data->vdd) > 0) { + rc = regulator_set_voltage(data->vdd, FT_VTG_MIN_UV, + FT_VTG_MAX_UV); + if (rc) { + dev_err(&data->client->dev, + "Regulator set_vtg failed vdd rc=%d\n", rc); + goto reg_vdd_put; + } + } + + data->vcc_i2c = regulator_get(&data->client->dev, "vcc_i2c"); + if (IS_ERR(data->vcc_i2c)) { + rc = PTR_ERR(data->vcc_i2c); + dev_err(&data->client->dev, + "Regulator get failed vcc_i2c rc=%d\n", rc); + goto reg_vdd_set_vtg; + } + + if (regulator_count_voltages(data->vcc_i2c) > 0) { + rc = regulator_set_voltage(data->vcc_i2c, FT_I2C_VTG_MIN_UV, + FT_I2C_VTG_MAX_UV); + if (rc) { + dev_err(&data->client->dev, + "Regulator set_vtg failed vcc_i2c rc=%d\n", rc); + goto reg_vcc_i2c_put; + } + } + + return 0; + +reg_vcc_i2c_put: + regulator_put(data->vcc_i2c); +reg_vdd_set_vtg: + if (regulator_count_voltages(data->vdd) > 0) + regulator_set_voltage(data->vdd, 0, FT_VTG_MAX_UV); +reg_vdd_put: + regulator_put(data->vdd); + return rc; + +pwr_deinit: + if (regulator_count_voltages(data->vdd) > 0) + regulator_set_voltage(data->vdd, 0, FT_VTG_MAX_UV); + + regulator_put(data->vdd); + + if (regulator_count_voltages(data->vcc_i2c) > 0) + regulator_set_voltage(data->vcc_i2c, 0, FT_I2C_VTG_MAX_UV); + + regulator_put(data->vcc_i2c); + return 0; +} + +static int ft5x06_ts_pinctrl_init(struct ft5x06_ts_data *ft5x06_data) +{ + int retval; + + /* Get pinctrl if target uses pinctrl */ + ft5x06_data->ts_pinctrl = devm_pinctrl_get(&(ft5x06_data->client->dev)); + if (IS_ERR_OR_NULL(ft5x06_data->ts_pinctrl)) { + dev_dbg(&ft5x06_data->client->dev, + "Target does not use pinctrl\n"); + retval = PTR_ERR(ft5x06_data->ts_pinctrl); + ft5x06_data->ts_pinctrl = NULL; + return retval; + } + + ft5x06_data->gpio_state_active + = pinctrl_lookup_state(ft5x06_data->ts_pinctrl, + "pmx_ts_active"); + if (IS_ERR_OR_NULL(ft5x06_data->gpio_state_active)) { + dev_dbg(&ft5x06_data->client->dev, + "Can not get ts default pinstate\n"); + retval = PTR_ERR(ft5x06_data->gpio_state_active); + ft5x06_data->ts_pinctrl = NULL; + return retval; + } + + ft5x06_data->gpio_state_suspend + = pinctrl_lookup_state(ft5x06_data->ts_pinctrl, + "pmx_ts_suspend"); + if (IS_ERR_OR_NULL(ft5x06_data->gpio_state_suspend)) { + dev_err(&ft5x06_data->client->dev, + "Can not get ts sleep pinstate\n"); + retval = PTR_ERR(ft5x06_data->gpio_state_suspend); + ft5x06_data->ts_pinctrl = NULL; + return retval; + } + return 0; +} + + +static void ft5x06_ts_pinctrl_free(struct ft5x06_ts_data *ft5x06_data) +{ + /* Put pinctrl if target uses pinctrl */ + if (!IS_ERR_OR_NULL(ft5x06_data->ts_pinctrl)) { + devm_pinctrl_put(ft5x06_data->ts_pinctrl); + ft5x06_data->ts_pinctrl = NULL; + } +} + +static int ft5x06_ts_pinctrl_select(struct ft5x06_ts_data *ft5x06_data, + bool on) +{ + struct pinctrl_state *pins_state; + int ret; + + pins_state = on ? ft5x06_data->gpio_state_active + : ft5x06_data->gpio_state_suspend; + if (!IS_ERR_OR_NULL(pins_state)) { + ret = pinctrl_select_state(ft5x06_data->ts_pinctrl, pins_state); + if (ret) { + dev_err(&ft5x06_data->client->dev, + "can not set %s pins\n", + on ? "pmx_ts_active" : "pmx_ts_suspend"); + return ret; + } + } else { + dev_err(&ft5x06_data->client->dev, + "not a valid '%s' pinstate\n", + on ? "pmx_ts_active" : "pmx_ts_suspend"); + } + + return 0; +} + + +#ifdef CONFIG_PM +static int ft5x06_ts_suspend(struct device *dev) +{ + struct ft5x06_ts_data *data = dev_get_drvdata(dev); + char txbuf[2], i; + int err; + + if (data->loading_fw) { + dev_info(dev, "Firmware loading in process...\n"); + return 0; + } + + if (data->suspended) { + dev_info(dev, "Already in suspend state\n"); + return 0; + } + +#if WT_CTP_GESTURE_SUPPORT + if (gtp_gesture_onoff == '1') { + ft5x0x_write_reg(gesture_client, 0xd0, 0x01); + + { + ft5x0x_write_reg(gesture_client, 0xd1, 0xff); + ft5x0x_write_reg(gesture_client, 0xd2, 0xff); + ft5x0x_write_reg(gesture_client, 0xd5, 0xff); + ft5x0x_write_reg(gesture_client, 0xd6, 0xff); + ft5x0x_write_reg(gesture_client, 0xd7, 0xff); + ft5x0x_write_reg(gesture_client, 0xd8, 0xff); + } + enable_irq_wake(data->client->irq); + CTP_DEBUG("in suspend gesture\n"); + return 0; + } +#endif + + disable_irq(data->client->irq); + + /* release all touches */ + for (i = 0; i < data->pdata->num_max_touches; i++) { + input_mt_slot(data->input_dev, i); + input_mt_report_slot_state(data->input_dev, MT_TOOL_FINGER, 0); + } + input_mt_report_pointer_emulation(data->input_dev, false); + input_sync(data->input_dev); + + if (gpio_is_valid(data->pdata->reset_gpio)) { + txbuf[0] = FT_REG_PMODE; + txbuf[1] = FT_PMODE_HIBERNATE; + err = ft5x06_i2c_write(data->client, txbuf, sizeof(txbuf)); + + msleep(data->pdata->hard_rst_dly); + } + + + if (data->pdata->power_on) { + err = data->pdata->power_on(false); + if (err) { + dev_err(dev, "power off failed"); + goto pwr_off_fail; + } + } else { + err = ft5x06_power_on(data, false); + if (err) { + dev_err(dev, "power off failed"); + goto pwr_off_fail; + } + } + + data->suspended = true; + + return 0; + + +pwr_off_fail: + if (gpio_is_valid(data->pdata->reset_gpio)) { + gpio_set_value_cansleep(data->pdata->reset_gpio, 0); + msleep(data->pdata->hard_rst_dly); + gpio_set_value_cansleep(data->pdata->reset_gpio, 1); + } + enable_irq(data->client->irq); + return err; + +} + +static int ft5x06_ts_resume(struct device *dev) +{ + struct ft5x06_ts_data *data = dev_get_drvdata(dev); + int err; + if (!data->suspended) { + dev_dbg(dev, "Already in awake state\n"); + + } +#if WT_CTP_GESTURE_SUPPORT + printk("Resume Gesture TP.\n"); + if (gtp_gesture_onoff == '1') { + ft5x0x_write_reg(gesture_client, 0xD0, 0x00); + CTP_DEBUG("Resume Gesture TP Done.\n"); + } +#endif + + if (data->pdata->power_on) { + err = data->pdata->power_on(true); + if (err) { + dev_err(dev, "power on failed"); + return err; + } + } else { + err = ft5x06_power_on(data, true); + if (err) { + dev_err(dev, "power on failed"); + return err; + } + } + + if (gpio_is_valid(data->pdata->reset_gpio)) { + gpio_set_value_cansleep(data->pdata->reset_gpio, 0); + msleep(data->pdata->hard_rst_dly); + gpio_set_value_cansleep(data->pdata->reset_gpio, 1); + } + + msleep(data->pdata->soft_rst_dly); + + enable_irq(data->client->irq); + +#if CTP_CHARGER_DETECT + batt_psy = power_supply_get_by_name("usb"); + if (!batt_psy) + CTP_ERROR("tp resume battery supply not found\n"); + else{ + + + CTP_DEBUG("is_charger_plug %d, prev %d", is_charger_plug, pre_charger_status); + if (is_charger_plug) { + ft5x0x_write_reg(update_client, 0x8B, 1); + } else{ + ft5x0x_write_reg(update_client, 0x8B, 0); + } + } + pre_charger_status = is_charger_plug; +#endif + + + data->suspended = false; + + return 0; +} + +static const struct dev_pm_ops ft5x06_ts_pm_ops = { +#if (!defined(CONFIG_FB) && !defined(CONFIG_HAS_EARLYSUSPEND)) + .suspend = ft5x06_ts_suspend, + .resume = ft5x06_ts_resume, +#endif +}; + +#else +static int ft5x06_ts_suspend(struct device *dev) +{ + return 0; +} + +static int ft5x06_ts_resume(struct device *dev) +{ + return 0; +} + +#endif + +#if defined(CONFIG_FB) + +static void fb_notify_resume_work(struct work_struct *work) +{ + struct ft5x06_ts_data *ft5x06_data = + container_of(work, struct ft5x06_ts_data, fb_notify_work); + ft5x06_ts_resume(&ft5x06_data->client->dev); +} +static int fb_notifier_callback(struct notifier_block *self, + unsigned long event, void *data) +{ + struct fb_event *evdata = data; + int *blank; + struct ft5x06_ts_data *ft5x06_data = + container_of(self, struct ft5x06_ts_data, fb_notif); + + if (evdata && evdata->data && event == FB_EVENT_BLANK && + ft5x06_data && ft5x06_data->client) { + blank = evdata->data; + if (*blank == FB_BLANK_UNBLANK) + schedule_work(&ft5x06_data->fb_notify_work); + else if (*blank == FB_BLANK_POWERDOWN) { + flush_work(&ft5x06_data->fb_notify_work); + ft5x06_ts_suspend(&ft5x06_data->client->dev); + } + } + + return 0; +} +#elif defined(CONFIG_HAS_EARLYSUSPEND) +static void ft5x06_ts_early_suspend(struct early_suspend *handler) +{ + struct ft5x06_ts_data *data = container_of(handler, + struct ft5x06_ts_data, + early_suspend); + + ft5x06_ts_suspend(&data->client->dev); +} + +static void ft5x06_ts_late_resume(struct early_suspend *handler) +{ + struct ft5x06_ts_data *data = container_of(handler, + struct ft5x06_ts_data, + early_suspend); + + ft5x06_ts_resume(&data->client->dev); +} +#endif + + +int hid_to_i2c(struct i2c_client *client) +{ + u8 auc_i2c_write_buf[5] = {0}; + int bRet = 0; +#ifdef HIDTOI2C_DISABLE + + return 2; + +#endif + auc_i2c_write_buf[0] = 0xeb; + auc_i2c_write_buf[1] = 0xaa; + auc_i2c_write_buf[2] = 0x09; + ft5x06_i2c_write(client, auc_i2c_write_buf, 3); + msleep(10); + auc_i2c_write_buf[0] = auc_i2c_write_buf[1] = auc_i2c_write_buf[2] = 0; + ft5x06_i2c_read(client, auc_i2c_write_buf, 0, auc_i2c_write_buf, 3); + CTP_DEBUG("auc_i2c_write_buf[0]:%x, auc_i2c_write_buf[1]:%x, auc_i2c_write_buf[2]:%x\n", auc_i2c_write_buf[0], auc_i2c_write_buf[1], auc_i2c_write_buf[2]); + if (0xeb == auc_i2c_write_buf[0] && 0xaa == auc_i2c_write_buf[1] && 0x08 == auc_i2c_write_buf[2]) { + bRet = 1; + } else + bRet = 0; + return bRet; +} + +static int ft5x06_fw_upgrade_start(struct i2c_client *client, + const u8 *data, u32 data_len) { + struct ft5x06_ts_data *ts_data = i2c_get_clientdata(client); + struct fw_upgrade_info info = ts_data->pdata->info; + + u8 reg_addr; + u8 chip_id = 0x00; + u8 w_buf[FT_MAX_WR_BUF] = {0}, r_buf[FT_MAX_RD_BUF] = {0}; + u8 pkt_buf[FT_FW_PKT_LEN + FT_FW_PKT_META_LEN]; + int i, j, temp; + u32 pkt_num, pkt_len; + + + u8 fw_ecc; + int i_ret; + + + +#if 1 + reg_addr = FT_REG_ID; + temp = ft5x06_i2c_read(client, ®_addr, 1, &chip_id, 1); + CTP_DEBUG("Update:Read ic info:%x\n", chip_id); + if (temp < 0) { + dev_err(&client->dev, "version read failed"); + } + + if (is_ic_update_crash) { + chip_id = CTP_IC_TYPE_2; + } + + for (i = 0; i < sizeof(fts_updateinfo)/sizeof(struct Upgrade_Info); i++) { + if (chip_id == fts_updateinfo[i].CHIP_ID) { + info.auto_cal = fts_updateinfo[i].AUTO_CLB; + info.delay_55 = fts_updateinfo[i].delay_55; + info.delay_aa = fts_updateinfo[i].delay_aa; + info.delay_erase_flash = fts_updateinfo[i].delay_earse_flash; + info.delay_readid = fts_updateinfo[i].delay_readid; + info.upgrade_id_1 = fts_updateinfo[i].upgrade_id_1; + info.upgrade_id_2 = fts_updateinfo[i].upgrade_id_2; + + break; + } + } + + ts_data->family_id = chip_id; + + if (i >= sizeof(fts_updateinfo)/sizeof(struct Upgrade_Info)) { + info.auto_cal = fts_updateinfo[11].AUTO_CLB; + info.delay_55 = fts_updateinfo[11].delay_55; + info.delay_aa = fts_updateinfo[11].delay_aa; + info.delay_erase_flash = fts_updateinfo[11].delay_earse_flash; + info.delay_readid = fts_updateinfo[11].delay_readid; + info.upgrade_id_1 = fts_updateinfo[11].upgrade_id_1; + info.upgrade_id_2 = fts_updateinfo[11].upgrade_id_2; + } +#endif + + dev_err(&client->dev, "id1 = 0x%x id2 = 0x%x family_id=0x%x,data_len = %d\n", + info.upgrade_id_1, info.upgrade_id_2, ts_data->family_id, data_len); + /* determine firmware size */ + i_ret = hid_to_i2c(client); + + if (i_ret == 0) { + CTP_DEBUG("[FTS] hid change to i2c fail ! \n"); + } + + for (i = 0, j = 0; i < FT_UPGRADE_LOOP; i++) { + msleep(FT_EARSE_DLY_MS); + ft5x0x_write_reg(client, 0xfc, FT_UPGRADE_AA); + msleep(info.delay_aa); + + + ft5x0x_write_reg(client, 0xfc, FT_UPGRADE_55); + msleep(200); + i_ret = hid_to_i2c(client); + if (i_ret == 0) { + CTP_DEBUG("[FTS] hid change to i2c fail ! \n"); + + } + + msleep(10); + /* Enter upgrade mode */ + w_buf[0] = FT_UPGRADE_55; + ft5x06_i2c_write(client, &w_buf[0], 1); + usleep(FT_55_AA_DLY_NS); + w_buf[0] = FT_UPGRADE_AA; + ft5x06_i2c_write(client, &w_buf[0], 1); + if (i_ret < 0) { + CTP_DEBUG("[FTS] failed writing 0x55 and 0xaa ! \n"); + continue; + } + + + /* check READ_ID */ + msleep(info.delay_readid); + w_buf[0] = FT_READ_ID_REG; + w_buf[1] = 0x00; + w_buf[2] = 0x00; + w_buf[3] = 0x00; + + ft5x06_i2c_read(client, w_buf, 4, r_buf, 2); + + + CTP_DEBUG("r_buf[0] :%X,r_buf[1]: %X\n", r_buf[0], r_buf[1]); + if (r_buf[0] != info.upgrade_id_1 + || r_buf[1] != info.upgrade_id_2) { + dev_err(&client->dev, "Upgrade ID mismatch(%d), IC=0x%x 0x%x, info=0x%x 0x%x\n", + i, r_buf[0], r_buf[1], + info.upgrade_id_1, info.upgrade_id_2); + } else + break; + } + CTP_DEBUG("Begin to update \n\n"); + if (i >= FT_UPGRADE_LOOP) { + dev_err(&client->dev, "Abort upgrade\n"); + return -EIO; + } + + /* erase app and panel paramenter area */ + CTP_DEBUG("Step 4:erase app and panel paramenter area\n"); + w_buf[0] = FT_ERASE_APP_REG; + ft5x06_i2c_write(client, w_buf, 1); + msleep(1350); + + for (i = 0; i < 15; i++) { + w_buf[0] = 0x6a; + r_buf[0] = r_buf[1] = 0x00; + ft5x06_i2c_read(client, w_buf, 1, r_buf, 2); + + if (0xF0 == r_buf[0] && 0xAA == r_buf[1]) { + break; + } + msleep(50); + + } + + w_buf[0] = 0xB0; + w_buf[1] = (u8) ((data_len >> 16) & 0xFF); + w_buf[2] = (u8) ((data_len >> 8) & 0xFF); + w_buf[3] = (u8) (data_len & 0xFF); + + ft5x06_i2c_write(client, w_buf, 4); + + /* program firmware */ + CTP_DEBUG("Step 5:program firmware\n"); + pkt_num = (data_len) / FT_FW_PKT_LEN; + pkt_buf[0] = FT_FW_START_REG; + pkt_buf[1] = 0x00; + fw_ecc = 0; + temp = 0; + + for (j = 0; j < pkt_num; j++) { + temp = j * FT_FW_PKT_LEN; + pkt_buf[2] = (u8) (temp >> 8); + pkt_buf[3] = (u8) temp; + pkt_len = FT_FW_PKT_LEN; + pkt_buf[4] = (u8) (pkt_len >> 8); + pkt_buf[5] = (u8) pkt_len; + + for (i = 0; i < FT_FW_PKT_LEN; i++) { + pkt_buf[6 + i] = data[j * FT_FW_PKT_LEN + i]; + fw_ecc ^= pkt_buf[6 + i]; + } + + ft5x06_i2c_write(client, pkt_buf, FT_FW_PKT_LEN + 6); + + for (i = 0; i < 30; i++) { + w_buf[0] = 0x6a; + r_buf[0] = r_buf[1] = 0x00; + ft5x06_i2c_read(client, w_buf, 1, r_buf, 2); + + if ((j + 0x1000) == (((r_buf[0]) << 8) | r_buf[1])) { + break; + } + msleep(1); + } + } + + /* send remaining bytes */ + CTP_DEBUG("Step 6:send remaining bytes\n"); + if ((data_len) % FT_FW_PKT_LEN > 0) { + temp = pkt_num * FT_FW_PKT_LEN; + pkt_buf[2] = (u8) (temp >> 8); + pkt_buf[3] = (u8) temp; + temp = (data_len) % FT_FW_PKT_LEN; + pkt_buf[4] = (u8) (temp >> 8); + pkt_buf[5] = (u8) temp; + + for (i = 0; i < temp; i++) { + pkt_buf[6 + i] = data[pkt_num * FT_FW_PKT_LEN + i]; + fw_ecc ^= pkt_buf[6 + i]; + } + + ft5x06_i2c_write(client, pkt_buf, temp + 6); + + for (i = 0; i < 30; i++) { + w_buf[0] = 0x6a; + r_buf[0] = r_buf[1] = 0x00; + ft5x06_i2c_read(client, w_buf, 1, r_buf, 2); + + if ((j + 0x1000) == (((r_buf[0]) << 8) | r_buf[1])) { + break; + } + msleep(1); + } + } + + msleep(50); + + /*********Step 6: read out checksum***********************/ + /*send the opration head */ + CTP_DEBUG("Step 7: read out checksum\n"); + w_buf[0] = 0x64; + ft5x06_i2c_write(client, w_buf, 1); + msleep(300); + + temp = 0; + w_buf[0] = 0x65; + w_buf[1] = (u8)(temp >> 16); + w_buf[2] = (u8)(temp >> 8); + w_buf[3] = (u8)(temp); + temp = data_len; + w_buf[4] = (u8)(temp >> 8); + w_buf[5] = (u8)(temp); + i_ret = ft5x06_i2c_write(client, w_buf, 6); + msleep(data_len/256); + + for (i = 0; i < 100; i++) { + w_buf[0] = 0x6a; + r_buf[0] = r_buf[1] = 0x00; + ft5x06_i2c_read(client, w_buf, 1, r_buf, 2); + + if (0xF0 == r_buf[0] && 0x55 == r_buf[1]) { + break; + } + msleep(1); + + } + w_buf[0] = 0x66; + ft5x06_i2c_read(client, w_buf, 1, r_buf, 1); + if (r_buf[0] != fw_ecc) { + dev_err(&client->dev, "[FTS]--ecc error! FW=%02x bt_ecc=%02x\n", + r_buf[0], + fw_ecc); + + return -EIO; + } + + /* reset */ + CTP_DEBUG("Step 8: reset \n"); + w_buf[0] = FT_REG_RESET_FW; + ft5x06_i2c_write(client, w_buf, 1); + msleep(ts_data->pdata->soft_rst_dly); + + CTP_DEBUG("Firmware upgrade successful\n"); + + return 0; +} + +static void fts_get_upgrade_array(struct i2c_client *client) +{ + + u8 chip_id; + u32 i; + int ret = 0; + + ret = ft5x0x_read_reg(client, FT_REG_ID, &chip_id); + if (ret < 0) { + CTP_ERROR("[Focal][Touch] read value fail"); + } + + for (i = 0; i < sizeof(fts_updateinfo)/sizeof(struct Upgrade_Info); i++) { + if (chip_id == fts_updateinfo[i].CHIP_ID) { + memcpy(&fts_updateinfo_curr, &fts_updateinfo[i], sizeof(struct Upgrade_Info)); + break; + } + } + + CTP_DEBUG("fts_updateinfo:%d\n", i); + if (i >= sizeof(fts_updateinfo)/sizeof(struct Upgrade_Info)) { + memcpy(&fts_updateinfo_curr, &fts_updateinfo[11], sizeof(struct Upgrade_Info)); + } +} + +static void fts_ctpm_read_lockdown(struct i2c_client *client, struct ft5x06_ts_data *data) +{ + u8 buf[128]; + u8 w_buf[4], r_buf[2]; + u32 i = 0, j = 0; + u32 k = 0; + int i_ret; + struct ft5x06_ts_data *ts_data = i2c_get_clientdata(client); + + fts_get_upgrade_array(client); + CTP_DEBUG("id1 = 0x%x id2 = 0x%x\n", fts_updateinfo_curr.upgrade_id_1, fts_updateinfo_curr.upgrade_id_2); + i_ret = hid_to_i2c(client); + if (i_ret == 0) { + CTP_DEBUG("[FTS] hid change to i2c fail ! \n"); + } + + for (i = 0, j = 0; i < FT_UPGRADE_LOOP; i++) { + + + + CTP_DEBUG("[FTS]Step 1:Reset CTPM \n"); + ft5x0x_write_reg(client, 0xfc, 0xaa); + msleep(fts_updateinfo_curr.delay_aa); + ft5x0x_write_reg(client, 0xfc, 0x55); + msleep(100); + + i_ret = hid_to_i2c(client); + if (i_ret == 0) { + CTP_DEBUG("[FTS] hid change to i2c fail ! \n"); + } + msleep(2); + + /* Enter upgrade mode */ + CTP_DEBUG("[FTS]Step 2:Enter upgrade mode \n"); + w_buf[0] = FT_UPGRADE_55; + ft5x06_i2c_write(client, &w_buf[0], 1); + msleep(5); + w_buf[0] = FT_UPGRADE_AA; + ft5x06_i2c_write(client, &w_buf[0], 1); + + /* check READ_ID */ + msleep(fts_updateinfo_curr.delay_readid); + w_buf[0] = FT_READ_ID_REG; + w_buf[1] = 0x00; + w_buf[2] = 0x00; + w_buf[3] = 0x00; + ft5x06_i2c_read(client, w_buf, 4, r_buf, 2); + + CTP_DEBUG("r_buf[0] :%X,r_buf[1]: %X\n", r_buf[0], r_buf[1]); + if (r_buf[0] != fts_updateinfo_curr.upgrade_id_1 + || r_buf[1] != fts_updateinfo_curr.upgrade_id_2) { + dev_err(&client->dev, "Upgrade ID mismatch(%d), IC=0x%x 0x%x, info=0x%x 0x%x\n", + i, r_buf[0], r_buf[1], + fts_updateinfo_curr.upgrade_id_1, fts_updateinfo_curr.upgrade_id_2); + } else + break; + } + + /*--------- read current project setting ---------- */ + buf[0] = 0x03; + buf[1] = 0x00; + for (i = 0; i < FT_UPGRADE_LOOP; i++) { + buf[2] = 0xd7; + buf[3] = 0xa0; + + i_ret = ft5x06_i2c_write(client, buf, 4); + if (i_ret < 0) { + CTP_DEBUG("[FTS] Step 4: read lcm id from flash error when i2c write, i_ret = %d\n", i_ret); + continue; + } + + msleep(2); + + i_ret = ft5x06_i2c_read(client, buf, 0, data->lockdown_info, 8); + if (i_ret < 0) { + CTP_DEBUG("[FTS] Step 4: read lcm id from flash error when i2c write, i_ret = %d\n", i_ret); + continue; + } else { + CTP_DEBUG("[FTS] Step 4: read lcm id from flash success \n"); + break; + } + } + msleep(20); + + if (gpio_is_valid(ts_data->pdata->reset_gpio)) { + gpio_set_value_cansleep(ts_data->pdata->reset_gpio, 0); + msleep(ts_data->pdata->hard_rst_dly); + gpio_set_value_cansleep(ts_data->pdata->reset_gpio, 1); + } + msleep(80); + + for (k = 0 ; k < FT_LOCKDOWN_SIZE; k++) { + lockdown_info[k] = data->lockdown_info[k]; + } + + + tp_rgb_color = lockdown_info[2]; + TP_Maker = lockdown_info[0]; + LCD_Maker = lockdown_info[1]; + Panel_Ink = lockdown_info[2]; + Project_Id = lockdown_info[4]; + dev_info(&client->dev, "Lockdown info: %02X %02X %02X %02X %02X %02X %02X %02X", + lockdown_info[0], lockdown_info[1], + lockdown_info[2], lockdown_info[3], + lockdown_info[4], lockdown_info[5], + lockdown_info[6], lockdown_info[7]); + + dev_info(&client->dev, "WT: TP_Maker = 0x%x\n", TP_Maker); + dev_info(&client->dev, "WT: LCD_Maker = 0x%x\n", LCD_Maker); + dev_info(&client->dev, "WT: Panel_Ink = 0x%x\n", Panel_Ink); + dev_info(&client->dev, "WT: Project_Id = 0x%x\n", Project_Id); + +} + +#if TPD_AUTO_UPGRADE + +static unsigned char CTPM_FW1[] = { +#include "ft_app_ic_oufei_tianma.txt" +}; +static unsigned char CTPM_FW2[] = { +#include "ft_app_ic_ds_ebbg.txt" +}; +static unsigned char CTPM_FW3[] = { +#include "ft_app_ic_ds_ebbg_ili.txt" +}; +static unsigned char CTPM_FW4[] = { +#include "ft_app_ic_oufei_ebbg.txt" +}; + +static unsigned char CTPM_FW5[] = { +#include "ft_app_ic_oufei_ebbg_ili.txt" +}; +static unsigned char CTPM_FW6[] = { +#include "ft_app_ic_oufei_ebbg_nt.txt" +}; +static unsigned char CTPM_FW7[] = { +#include "ft_app_ic_lens_tianma.txt" +}; + +static int fts_ctpm_fw_upgrade_with_i_file(struct ft5x06_ts_data *data) +{ + struct i2c_client *client = data->client; + int flag_TPID = 0; + u8 *pbt_buf = 0x0; + int rc = 0, fw_len = 0; + u8 uc_host_fm_ver, uc_tp_fm_ver, vendor_id, ic_type; + u8 reg_addr; + + reg_addr = 0xA6; + ft5x06_i2c_read(client, ®_addr, 1, &uc_tp_fm_ver, 1); + reg_addr = 0xA8; + ft5x06_i2c_read(client, ®_addr, 1, &vendor_id, 1); + reg_addr = 0xA3; + ft5x06_i2c_read(client, ®_addr, 1, &ic_type, 1); + + CTP_INFO("Vendor ID:0x%02X, TP FW:0x%02X, IC TYPE:%d", vendor_id, uc_tp_fm_ver, ic_type); + if (vendor_id == 0xA8 || vendor_id == 0x00 || ic_type == 0xA3 || ic_type == 0x00) { + CTP_ERROR("vend_id read error,need project"); + + fts_ctpm_read_lockdown(client, data); + is_ic_update_crash = 1; + flag_TPID = 1; + } + + snprintf(lcd_ic_name, strchr(Lcm_name, '_')-Lcm_name + 1, Lcm_name); + + if (TP_Maker == TP_OUFEI && LCD_Maker == TP_TIANMA) { + pbt_buf = CTPM_FW1; + fw_len = sizeof(CTPM_FW1); + CTP_DEBUG("OUFEI+TIANMA"); + } else if (TP_Maker == TP_DS && LCD_Maker == TP_EBBG) { + + if (!strcmp(lcd_ic_name , "ili9881c")) { + pbt_buf = CTPM_FW3; + fw_len = sizeof(CTPM_FW3); + CTP_DEBUG("TP_DS+TP_EBBG+ili"); + } + + else { + pbt_buf = CTPM_FW2; + fw_len = sizeof(CTPM_FW2); + CTP_DEBUG("TP_DS+TP_EBBG"); + } + } else if (TP_Maker == TP_OUFEI && LCD_Maker == TP_EBBG && Project_Id == PROJECT_C3B) { + pbt_buf = CTPM_FW4; + fw_len = sizeof(CTPM_FW4); + CTP_DEBUG("TP_OUFEI+TP_EBBG"); + } else if (TP_Maker == TP_LENS && LCD_Maker == TP_TIANMA && Project_Id == PROJECT_C3B) { + pbt_buf = CTPM_FW7; + fw_len = sizeof(CTPM_FW7); + CTP_INFO("TP_LENS+TP_TIANMA ft_app_ic_lens_tianma.txt"); + } + + else if (TP_Maker == TP_OUFEI && LCD_Maker == TP_EBBG && Project_Id == PROJECT_C3N) { + if (!strcmp(lcd_ic_name , "ili9881c")) { + pbt_buf = CTPM_FW5; + fw_len = sizeof(CTPM_FW5); + CTP_DEBUG("TP_OUFEI+TP_EBBG_ili9881c"); + } else { + pbt_buf = CTPM_FW6; + fw_len = sizeof(CTPM_FW6); + CTP_DEBUG("TP_OUFEI+TP_EBBG_nt35521"); + } + } + + else { + CTP_ERROR("read vendor_id fail"); + return -EPERM; + } + + CTP_DEBUG("update firmware size:%d", fw_len); + if ((sizeof(CTPM_FW1) < 8) || (sizeof(CTPM_FW1) > FT_MAX_SIZE*1024) || (sizeof(CTPM_FW2) < 8) || (sizeof(CTPM_FW2) > FT_MAX_SIZE*1024)) { + CTP_ERROR("FW length error\n"); + return -EPERM; + } + + if ((pbt_buf[fw_len - 8] ^ pbt_buf[fw_len - 6]) == 0xFF + && (pbt_buf[fw_len - 7] ^ pbt_buf[fw_len - 5]) == 0xFF + && (pbt_buf[fw_len - 3] ^ pbt_buf[fw_len - 4]) == 0xFF) { + uc_host_fm_ver = pbt_buf[fw_len - 2]; + CTP_DEBUG("[FTS] uc_tp_fm_ver = %d.\n", uc_tp_fm_ver); + CTP_DEBUG("[FTS] uc_host_fm_ver = %d.\n", uc_host_fm_ver); + + if ((uc_tp_fm_ver < uc_host_fm_ver) || (is_ic_update_crash == 1)) { + rc = ft5x06_fw_upgrade_start(update_client, pbt_buf, fw_len); + if (rc != 0) { + CTP_DEBUG("[FTS] upgrade failed rc = %d.\n", rc); + } else { + CTP_DEBUG("[FTS] upgrade successfully.\n"); + } + } + } + + return rc; +} +#endif + +#if CTP_SYS_APK_UPDATE +static ssize_t ft5x06_fw_name_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + u8 fw_version = 0x00; + + ft5x0x_read_reg(update_client, FT5x0x_REG_FW_VER, &fw_version); + + return sprintf(buf, "firmware version %02X\n", fw_version); +} + +static ssize_t ft5x06_fw_name_store(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t size) +{ + struct ft5x06_ts_data *data = dev_get_drvdata(dev); + + if (size > FT_FW_NAME_MAX_LEN - 1) + return -EINVAL; + + strlcpy(data->fw_name, buf, size); + if (data->fw_name[size-1] == '\n') + data->fw_name[size-1] = 0; + + return size; +} + +static DEVICE_ATTR(fw_name, 0664, ft5x06_fw_name_show, ft5x06_fw_name_store); + +static int ft5x06_auto_cal(struct i2c_client *client) +{ + struct ft5x06_ts_data *data = i2c_get_clientdata(client); + u8 temp = 0, i; + + /* set to factory mode */ + msleep(2 * data->pdata->soft_rst_dly); + ft5x0x_write_reg(client, FT_REG_DEV_MODE, FT_FACTORYMODE_VALUE); + msleep(data->pdata->soft_rst_dly); + + /* start calibration */ + ft5x0x_write_reg(client, FT_DEV_MODE_REG_CAL, FT_CAL_START); + msleep(2 * data->pdata->soft_rst_dly); + for (i = 0; i < FT_CAL_RETRY; i++) { + ft5x0x_read_reg(client, FT_REG_CAL, &temp); + /*return to normal mode, calibration finish */ + if (((temp & FT_CAL_MASK) >> FT_4BIT_SHIFT) == FT_CAL_FIN) + break; + } + + /*calibration OK */ + msleep(2 * data->pdata->soft_rst_dly); + ft5x0x_write_reg(client, FT_REG_DEV_MODE, FT_FACTORYMODE_VALUE); + msleep(data->pdata->soft_rst_dly); + + /* store calibration data */ + ft5x0x_write_reg(client, FT_DEV_MODE_REG_CAL, FT_CAL_STORE); + msleep(2 * data->pdata->soft_rst_dly); + + /* set to normal mode */ + ft5x0x_write_reg(client, FT_REG_DEV_MODE, FT_WORKMODE_VALUE); + msleep(2 * data->pdata->soft_rst_dly); + + return 0; +} + + +static int ft5x06_fw_upgrade(struct device *dev, bool force) +{ + struct ft5x06_ts_data *data = dev_get_drvdata(dev); + const struct firmware *fw = NULL; + int rc; + u8 fw_file_maj, fw_file_min, fw_file_sub_min, fw_file_vendor_id; + bool fw_upgrade = false; + + if (data->suspended) { + dev_err(dev, "Device is in suspend state: Exit FW upgrade\n"); + return -EBUSY; + } + + rc = request_firmware(&fw, data->fw_name, dev); + if (rc < 0) { + dev_err(dev, "Request firmware failed - %s (%d)\n", + data->fw_name, rc); + return rc; + } + + if (fw->size < FT_FW_MIN_SIZE || fw->size > FT_FW_MAX_SIZE) { + dev_err(dev, "Invalid firmware size (%zu)\n", fw->size); + rc = -EIO; + goto rel_fw; + } + + if (data->family_id == FT6X36_ID) { + fw_file_maj = FT_FW_FILE_MAJ_VER_FT6X36(fw); + fw_file_vendor_id = FT_FW_FILE_VENDOR_ID_FT6X36(fw); + } else { + fw_file_maj = FT_FW_FILE_MAJ_VER(fw); + fw_file_vendor_id = FT_FW_FILE_VENDOR_ID(fw); + } + fw_file_min = FT_FW_FILE_MIN_VER(fw); + fw_file_sub_min = FT_FW_FILE_SUB_MIN_VER(fw); + + dev_info(dev, "Current firmware: %d.%d.%d", data->fw_ver[0], + data->fw_ver[1], data->fw_ver[2]); + dev_info(dev, "New firmware: %d.%d.%d", fw_file_maj, + fw_file_min, fw_file_sub_min); + + if (force) + fw_upgrade = true; + else if ((data->fw_ver[0] < fw_file_maj) && + data->fw_vendor_id == fw_file_vendor_id) + fw_upgrade = true; + + if (!fw_upgrade) { + dev_info(dev, "Exiting fw upgrade...\n"); + rc = -EFAULT; + goto rel_fw; + } + + /* start firmware upgrade */ + if (FT_FW_CHECK(fw, data)) { + rc = ft5x06_fw_upgrade_start(data->client, fw->data, fw->size); + if (rc < 0) + dev_err(dev, "update failed (%d). try later...\n", rc); + else if (data->pdata->info.auto_cal) + ft5x06_auto_cal(data->client); + } else { + dev_err(dev, "FW format error\n"); + rc = -EIO; + } + + ft5x06_update_fw_ver(data); + + FT_STORE_TS_INFO(data->ts_info, data->family_id, data->pdata->name, + data->pdata->num_max_touches, data->pdata->group_id, + data->pdata->fw_vkey_support ? "yes" : "no", + data->pdata->fw_name, data->fw_ver[0], + data->fw_ver[1], data->fw_ver[2]); +rel_fw: + release_firmware(fw); + return rc; +} + + +static ssize_t ft5x06_update_fw_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct ft5x06_ts_data *data = dev_get_drvdata(dev); + return snprintf(buf, 2, "%d\n", data->loading_fw); +} + +static ssize_t ft5x06_update_fw_store(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t size) +{ + struct ft5x06_ts_data *data = dev_get_drvdata(dev); + unsigned long val; + int rc; + + if (size > 2) + return -EINVAL; + + rc = kstrtoul(buf, 10, &val); + if (rc != 0) + return rc; + + if (data->suspended) { + dev_info(dev, "In suspend state, try again later...\n"); + return size; + } + + mutex_lock(&data->input_dev->mutex); + if (!data->loading_fw && val) { + data->loading_fw = true; + ft5x06_fw_upgrade(dev, false); + data->loading_fw = false; + } + mutex_unlock(&data->input_dev->mutex); + + return size; +} + +static DEVICE_ATTR(update_fw, 0664, ft5x06_update_fw_show, + ft5x06_update_fw_store); + +static ssize_t ft5x06_force_update_fw_store(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t size) +{ + struct ft5x06_ts_data *data = dev_get_drvdata(dev); + unsigned long val; + int rc; + + if (size > 2) + return -EINVAL; + + rc = kstrtoul(buf, 10, &val); + if (rc != 0) + return rc; + + mutex_lock(&data->input_dev->mutex); + if (!data->loading_fw && val) { + data->loading_fw = true; + ft5x06_fw_upgrade(dev, true); + data->loading_fw = false; + } + mutex_unlock(&data->input_dev->mutex); + + return size; +} + +static DEVICE_ATTR(force_update_fw, 0664, ft5x06_update_fw_show, + ft5x06_force_update_fw_store); + + +#define FT_DEBUG_DIR_NAME "ts_debug" + +static bool ft5x06_debug_addr_is_valid(int addr) +{ + if (addr < 0 || addr > 0xFF) { + pr_err("FT reg address is invalid: 0x%x\n", addr); + return false; + } + + return true; +} + +static int ft5x06_debug_data_set(void *_data, u64 val) +{ + struct ft5x06_ts_data *data = _data; + + mutex_lock(&data->input_dev->mutex); + + if (ft5x06_debug_addr_is_valid(data->addr)) + dev_info(&data->client->dev, + "Writing into FT registers not supported\n"); + + mutex_unlock(&data->input_dev->mutex); + + return 0; +} + +static int ft5x06_debug_data_get(void *_data, u64 *val) +{ + struct ft5x06_ts_data *data = _data; + int rc; + u8 reg; + + mutex_lock(&data->input_dev->mutex); + + if (ft5x06_debug_addr_is_valid(data->addr)) { + rc = ft5x0x_read_reg(data->client, data->addr, ®); + if (rc < 0) + dev_err(&data->client->dev, + "FT read register 0x%x failed (%d)\n", + data->addr, rc); + else + *val = reg; + } + + mutex_unlock(&data->input_dev->mutex); + + return 0; +} + +DEFINE_SIMPLE_ATTRIBUTE(debug_data_fops, ft5x06_debug_data_get, + ft5x06_debug_data_set, "0x%02llX\n"); + +static int ft5x06_debug_addr_set(void *_data, u64 val) +{ + struct ft5x06_ts_data *data = _data; + + if (ft5x06_debug_addr_is_valid(val)) { + mutex_lock(&data->input_dev->mutex); + data->addr = val; + mutex_unlock(&data->input_dev->mutex); + } + + return 0; +} + +static int ft5x06_debug_addr_get(void *_data, u64 *val) +{ + struct ft5x06_ts_data *data = _data; + + mutex_lock(&data->input_dev->mutex); + + if (ft5x06_debug_addr_is_valid(data->addr)) + *val = data->addr; + + mutex_unlock(&data->input_dev->mutex); + + return 0; +} + +DEFINE_SIMPLE_ATTRIBUTE(debug_addr_fops, ft5x06_debug_addr_get, + ft5x06_debug_addr_set, "0x%02llX\n"); + +static int ft5x06_debug_suspend_set(void *_data, u64 val) +{ + struct ft5x06_ts_data *data = _data; + + mutex_lock(&data->input_dev->mutex); + + if (val) + ft5x06_ts_suspend(&data->client->dev); + else + ft5x06_ts_resume(&data->client->dev); + + mutex_unlock(&data->input_dev->mutex); + + return 0; +} + +static int ft5x06_debug_suspend_get(void *_data, u64 *val) +{ + struct ft5x06_ts_data *data = _data; + + mutex_lock(&data->input_dev->mutex); + *val = data->suspended; + mutex_unlock(&data->input_dev->mutex); + + return 0; +} + +DEFINE_SIMPLE_ATTRIBUTE(debug_suspend_fops, ft5x06_debug_suspend_get, + ft5x06_debug_suspend_set, "%lld\n"); + +static int ft5x06_debug_dump_info(struct seq_file *m, void *v) +{ + struct ft5x06_ts_data *data = m->private; + + seq_printf(m, "%s\n", data->ts_info); + + return 0; +} + +static int debugfs_dump_info_open(struct inode *inode, struct file *file) +{ + return single_open(file, ft5x06_debug_dump_info, inode->i_private); +} + +static const struct file_operations debug_dump_info_fops = { + .owner = THIS_MODULE, + .open = debugfs_dump_info_open, + .read = seq_read, + .release = single_release, +}; + +#endif + +static int ft5x0x_GetFirmwareSize(char *firmware_name) +{ + struct file *pfile = NULL; + struct inode *inode; + unsigned long magic; + off_t fsize = 0; + char filepath[128]; + memset(filepath, 0, sizeof(filepath)); + + sprintf(filepath, "%s", firmware_name); + CTP_ERROR("filepath=%s\n", filepath); + if (NULL == pfile) { + pfile = filp_open(filepath, O_RDONLY, 0); + } + if (IS_ERR(pfile)) { + CTP_ERROR("error occured while opening file %s.\n", filepath); + return -EPERM; + } + inode = pfile->f_dentry->d_inode; + magic = inode->i_sb->s_magic; + fsize = inode->i_size; + filp_close(pfile, NULL); + return fsize; +} + +static int ft5x0x_ReadFirmware(char *firmware_name, unsigned char *firmware_buf) +{ + struct file *pfile = NULL; + struct inode *inode; + unsigned long magic; + off_t fsize; + char filepath[128]; + loff_t pos; + mm_segment_t old_fs; + + memset(filepath, 0, sizeof(filepath)); + sprintf(filepath, "%s", firmware_name); + CTP_INFO("filepath=%s\n", filepath); + if (NULL == pfile) { + pfile = filp_open(filepath, O_RDONLY, 0); + } + if (IS_ERR(pfile)) { + CTP_ERROR("error occured while opening file %s.\n", filepath); + return -EPERM; + } + inode = pfile->f_dentry->d_inode; + magic = inode->i_sb->s_magic; + fsize = inode->i_size; + + old_fs = get_fs(); + set_fs(KERNEL_DS); + pos = 0; + + vfs_read(pfile, firmware_buf, fsize, &pos); + + filp_close(pfile, NULL); + set_fs(old_fs); + return 0; +} + +static void delay_qt_ms(unsigned long w_ms) +{ + unsigned long i; + unsigned long j; + + for (i = 0; i < w_ms; i++) { + for (j = 0; j < 1000; j++) { + udelay(1); + } + } +} + +static int fts_ctpm_auto_clb(void) +{ + unsigned char uc_temp; + unsigned char i ; + + printk("[FTS] start auto CLB.\n"); + msleep(200); + ft5x0x_write_reg(update_client, 0, 0x40); + delay_qt_ms(100); + ft5x0x_write_reg(update_client, 2, 0x4); + delay_qt_ms(300); + for (i = 0; i < 100; i++) { + ft5x0x_read_reg(update_client, 0, &uc_temp); + if (((uc_temp&0x70)>>4) == 0x0) { + break; + } + delay_qt_ms(200); + printk("[FTS] waiting calibration %d\n", i); + } + + printk("[FTS] calibration OK.\n"); + + msleep(300); + ft5x0x_write_reg(update_client, 0, 0x40); + delay_qt_ms(100); + ft5x0x_write_reg(update_client, 2, 0x5); + delay_qt_ms(300); + ft5x0x_write_reg(update_client, 0, 0x0); + msleep(300); + printk("[FTS] store CLB result OK.\n"); + return 0; +} + + +static int fts_ctpm_fw_upgrade_with_app_file(char *firmware_name) +{ + unsigned char *pbt_buf = NULL; + int i_ret; + u8 fwver; + int fwsize = ft5x0x_GetFirmwareSize(firmware_name); + + CTP_DEBUG("enter fw_upgrade_with_app_file"); + if (fwsize <= 0) { + CTP_ERROR("%s ERROR:Get firmware size failed\n", __FUNCTION__); + return -EPERM; + } + + pbt_buf = (unsigned char *) kmalloc(fwsize+1, GFP_ATOMIC); + if (ft5x0x_ReadFirmware(firmware_name, pbt_buf)) { + CTP_ERROR("%s() - ERROR: request_firmware failed\n", __FUNCTION__); + kfree(pbt_buf); + return -EPERM; + } + + + + if ((pbt_buf[fwsize - 8] ^ pbt_buf[fwsize - 6]) != 0xFF + || (pbt_buf[fwsize - 7] ^ pbt_buf[fwsize - 5]) != 0xFF + || (pbt_buf[fwsize - 3] ^ pbt_buf[fwsize - 4]) != 0xFF) { + CTP_ERROR("the update file is not correct, please check\n"); + CTP_ERROR("checksum is %2x, %2x, %2x, %2x, %2x, %2x", pbt_buf[fwsize - 8], pbt_buf[fwsize - 6], pbt_buf[fwsize - 7], pbt_buf[fwsize - 5], pbt_buf[fwsize - 3], pbt_buf[fwsize - 4]); + return -EPERM; + } + /*call the upgrade function*/ + i_ret = ft5x06_fw_upgrade_start(update_client, pbt_buf, fwsize); + if (i_ret != 0) { + CTP_ERROR("%s() - ERROR:[FTS] upgrade failed i_ret = %d.\n", __FUNCTION__, i_ret); + + + } else { + CTP_INFO("[FTS] upgrade successfully.\n"); + if (ft5x0x_read_reg(update_client, FT5x0x_REG_FW_VER, &fwver) >= 0) + CTP_INFO("the new fw ver is 0x%02x\n", fwver); + + } + kfree(pbt_buf); + return i_ret; +} + +#if CTP_SYS_APK_UPDATE + +static ssize_t ft5x0x_fwupgradeapp_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + /* place holder for future use */ + return -EPERM; +} +#endif + +#if CTP_SYS_APK_UPDATE + +static ssize_t ft5x0x_fwupgradeapp_store(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t count) +{ + + + struct i2c_client *client = container_of(dev, struct i2c_client, dev); + + char fwname[128]; + memset(fwname, 0, sizeof(fwname)); + sprintf(fwname, "%s", buf); + fwname[count-1] = '\0'; + + disable_irq(client->irq); + + fts_ctpm_fw_upgrade_with_app_file(fwname); + + enable_irq(client->irq); + + return count; +} + +#endif + +#if CTP_SYS_APK_UPDATE + +static DEVICE_ATTR(ftsfwupgradeapp, S_IRUGO|S_IWUSR, ft5x0x_fwupgradeapp_show, ft5x0x_fwupgradeapp_store); +#endif + + +#ifdef CONFIG_OF +static int ft5x06_get_dt_coords(struct device *dev, char *name, + struct ft5x06_ts_platform_data *pdata) +{ + u32 coords[FT_COORDS_ARR_SIZE]; + struct property *prop; + struct device_node *np = dev->of_node; + int coords_size, rc; + + prop = of_find_property(np, name, NULL); + if (!prop) + return -EINVAL; + if (!prop->value) + return -ENODATA; + + coords_size = prop->length / sizeof(u32); + if (coords_size != FT_COORDS_ARR_SIZE) { + dev_err(dev, "invalid %s\n", name); + return -EINVAL; + } + + rc = of_property_read_u32_array(np, name, coords, coords_size); + if (rc && (rc != -EINVAL)) { + dev_err(dev, "Unable to read %s\n", name); + return rc; + } + + if (!strcmp(name, "ftech,panel-coords")) { + pdata->panel_minx = coords[0]; + pdata->panel_miny = coords[1]; + pdata->panel_maxx = coords[2]; + pdata->panel_maxy = coords[3]; + } else if (!strcmp(name, "ftech,display-coords")) { + pdata->x_min = coords[0]; + pdata->y_min = coords[1]; + pdata->x_max = coords[2]; + pdata->y_max = coords[3]; + } else { + dev_err(dev, "unsupported property %s\n", name); + return -EINVAL; + } + + return 0; +} + +static int ft5x06_parse_dt(struct device *dev, + struct ft5x06_ts_platform_data *pdata) +{ + int rc; + struct device_node *np = dev->of_node; + struct property *prop; + u32 temp_val, num_buttons; + u32 button_map[MAX_BUTTONS]; + + pdata->name = "ftech"; + rc = of_property_read_string(np, "ftech,name", &pdata->name); + if (rc && (rc != -EINVAL)) { + dev_err(dev, "Unable to read name\n"); + return rc; + } + + rc = ft5x06_get_dt_coords(dev, "ftech,panel-coords", pdata); + if (rc && (rc != -EINVAL)) + return rc; + + rc = ft5x06_get_dt_coords(dev, "ftech,display-coords", pdata); + if (rc) + return rc; + + pdata->i2c_pull_up = of_property_read_bool(np, + "ftech,i2c-pull-up"); + + pdata->no_force_update = of_property_read_bool(np, + "ftech,no-force-update"); + + /* reset, irq gpio info */ + pdata->reset_gpio = of_get_named_gpio_flags(np, "ftech,reset-gpio", + 0, &pdata->reset_gpio_flags); + if (pdata->reset_gpio < 0) + return pdata->reset_gpio; + + pdata->irq_gpio = of_get_named_gpio_flags(np, "ftech,irq-gpio", + 0, &pdata->irq_gpio_flags); + if (pdata->irq_gpio < 0) + return pdata->irq_gpio; + + pdata->fw_name = "ft_fw.bin"; + rc = of_property_read_string(np, "ftech,fw-name", &pdata->fw_name); + if (rc && (rc != -EINVAL)) { + dev_err(dev, "Unable to read fw name\n"); + return rc; + } + + rc = of_property_read_u32(np, "ftech,group-id", &temp_val); + if (!rc) + pdata->group_id = temp_val; + else + return rc; + + rc = of_property_read_u32(np, "ftech,hard-reset-delay-ms", + &temp_val); + if (!rc) + pdata->hard_rst_dly = temp_val; + else + return rc; + + rc = of_property_read_u32(np, "ftech,soft-reset-delay-ms", + &temp_val); + if (!rc) + pdata->soft_rst_dly = temp_val; + else + return rc; + + rc = of_property_read_u32(np, "ftech,num-max-touches", &temp_val); + if (!rc) + pdata->num_max_touches = temp_val; + else + return rc; + + rc = of_property_read_u32(np, "ftech,fw-delay-aa-ms", &temp_val); + if (rc && (rc != -EINVAL)) { + dev_err(dev, "Unable to read fw delay aa\n"); + return rc; + } else if (rc != -EINVAL) + pdata->info.delay_aa = temp_val; + + rc = of_property_read_u32(np, "ftech,fw-delay-55-ms", &temp_val); + if (rc && (rc != -EINVAL)) { + dev_err(dev, "Unable to read fw delay 55\n"); + return rc; + } else if (rc != -EINVAL) + pdata->info.delay_55 = temp_val; + + rc = of_property_read_u32(np, "ftech,fw-upgrade-id1", &temp_val); + if (rc && (rc != -EINVAL)) { + dev_err(dev, "Unable to read fw upgrade id1\n"); + return rc; + } else if (rc != -EINVAL) + pdata->info.upgrade_id_1 = temp_val; + + rc = of_property_read_u32(np, "ftech,fw-upgrade-id2", &temp_val); + if (rc && (rc != -EINVAL)) { + dev_err(dev, "Unable to read fw upgrade id2\n"); + return rc; + } else if (rc != -EINVAL) + pdata->info.upgrade_id_2 = temp_val; + + rc = of_property_read_u32(np, "ftech,fw-delay-readid-ms", + &temp_val); + if (rc && (rc != -EINVAL)) { + dev_err(dev, "Unable to read fw delay read id\n"); + return rc; + } else if (rc != -EINVAL) + pdata->info.delay_readid = temp_val; + + rc = of_property_read_u32(np, "ftech,fw-delay-era-flsh-ms", + &temp_val); + if (rc && (rc != -EINVAL)) { + dev_err(dev, "Unable to read fw delay erase flash\n"); + return rc; + } else if (rc != -EINVAL) + pdata->info.delay_erase_flash = temp_val; + + pdata->info.auto_cal = of_property_read_bool(np, + "ftech,fw-auto-cal"); + + pdata->fw_vkey_support = of_property_read_bool(np, + "ftech,fw-vkey-support"); + + pdata->ignore_id_check = of_property_read_bool(np, + "ftech,ignore-id-check"); + + rc = of_property_read_u32(np, "ftech,family-id", &temp_val); + if (!rc) + pdata->family_id = temp_val; + else + return rc; + + prop = of_find_property(np, "ftech,button-map", NULL); + if (prop) { + num_buttons = prop->length / sizeof(temp_val); + if (num_buttons > MAX_BUTTONS) + return -EINVAL; + + rc = of_property_read_u32_array(np, + "ftech,button-map", button_map, + num_buttons); + if (rc) { + dev_err(dev, "Unable to read key codes\n"); + return rc; + } + } + + return 0; +} +#else +static int ft5x06_parse_dt(struct device *dev, + struct ft5x06_ts_platform_data *pdata) { + return -ENODEV; +} +#endif + + +#ifdef CONFIG_TOUCHSCREEN_LOCKDOWN_INFO +static ssize_t ctp_lockdown_proc_read(struct file *file, char __user *buf, size_t count, loff_t *ppos) +{ + char *ptr = buf; + + if (*ppos) { + CTP_INFO("tp test again return\n"); + return 0; + } + *ppos += count; + + return sprintf(ptr, "%02X%02X%02X%02X%02X%02X%02X%02X\n", + lockdown_info[0], lockdown_info[1], lockdown_info[2], lockdown_info[3], + lockdown_info[4], lockdown_info[5], lockdown_info[6], lockdown_info[7]); + +} + +static ssize_t ctp_lockdown_proc_write(struct file *filp, const char __user *userbuf, size_t count, loff_t *ppos) +{ + return -EPERM; +} + +static void create_ctp_lockdown_proc(void) +{ + struct proc_dir_entry *ctp_lockdown_proc = NULL; + if (ctp_device_proc == NULL) { + ctp_device_proc = proc_mkdir(CTP_PARENT_PROC_NAME, NULL); + if (ctp_device_proc == NULL) { + CTP_ERROR("ft5x06: create parent_proc fail\n"); + return; + } + } + ctp_lockdown_proc = proc_create(CTP_LOCKDOWN_INFOR_NAME, 0666, ctp_device_proc, &ctp_lockdown_procs_fops); + if (ctp_lockdown_proc == NULL) { + CTP_ERROR("ft5x06: create ctp_lockdown_proc fail\n"); + } +} + +#endif + +#if WT_ADD_CTP_INFO +static int hardwareinfo_set(struct ft5x06_ts_data *data, u8 value_name, u8 color) +{ + char firmware_ver[HARDWARE_MAX_ITEM_LONGTH]; + char vendor_for_id[HARDWARE_MAX_ITEM_LONGTH]; + char ic_name[HARDWARE_MAX_ITEM_LONGTH]; + char ic_color[HARDWARE_MAX_ITEM_LONGTH]; + int err; + u8 uc_tp_fm_ver, reg_addr; + + if (lockdown_info[0] == VENDOR_O_FILM) + snprintf(vendor_for_id, HARDWARE_MAX_ITEM_LONGTH, "o-film"); + else if (lockdown_info[0] == TP_LENS) + snprintf(vendor_for_id, HARDWARE_MAX_ITEM_LONGTH, "LENS"); + else if (lockdown_info[0] == VENDOR_DS) + snprintf(vendor_for_id, HARDWARE_MAX_ITEM_LONGTH, "DS"); + else if (data->fw_vendor_id == VENDOR_O_FILM) + snprintf(vendor_for_id, HARDWARE_MAX_ITEM_LONGTH, "o-film"); + else if (data->fw_vendor_id == VENDOR_Lens) + snprintf(vendor_for_id, HARDWARE_MAX_ITEM_LONGTH, "LENS"); + else if (data->fw_vendor_id == VENDOR_DS) + snprintf(vendor_for_id, HARDWARE_MAX_ITEM_LONGTH, "DS"); + else + snprintf(vendor_for_id, HARDWARE_MAX_ITEM_LONGTH, "Other vendor"); + + switch (value_name) { + case TP_IC_FT5X06: + snprintf(ic_name, HARDWARE_MAX_ITEM_LONGTH, "FT5X06"); + break; + case TP_IC_FT5606: + snprintf(ic_name, HARDWARE_MAX_ITEM_LONGTH, "FT5606"); + break; + case TP_IC_FT5X16: + snprintf(ic_name, HARDWARE_MAX_ITEM_LONGTH, "FT5X16"); + break; + case TP_IC_FT6208: + snprintf(ic_name, HARDWARE_MAX_ITEM_LONGTH, "FT6208"); + break; + case TP_IC_FT6X06: + snprintf(ic_name, HARDWARE_MAX_ITEM_LONGTH, "FT6X06"); + break; + case TP_IC_FT6X36: + snprintf(ic_name, HARDWARE_MAX_ITEM_LONGTH, "FT6X36"); + break; + case TP_IC_FT5336: + snprintf(ic_name, HARDWARE_MAX_ITEM_LONGTH, "FT5336"); + break; + case TP_IC_FT3316: + snprintf(ic_name, HARDWARE_MAX_ITEM_LONGTH, "FT3316"); + break; + case TP_IC_FT5436i: + snprintf(ic_name, HARDWARE_MAX_ITEM_LONGTH, "FT5436i"); + break; + case TP_IC_FT5336i: + snprintf(ic_name, HARDWARE_MAX_ITEM_LONGTH, "FT5336i"); + break; + case TP_IC_FT5346: + snprintf(ic_name, HARDWARE_MAX_ITEM_LONGTH, "FT5435"); + break; + default: + snprintf(ic_name, HARDWARE_MAX_ITEM_LONGTH, "Other IC"); + } + + + switch (color) { + case TP_White: + snprintf(ic_color, HARDWARE_MAX_ITEM_LONGTH, "White"); + break; + case TP_Black: + snprintf(ic_color, HARDWARE_MAX_ITEM_LONGTH, "Black"); + break; + case TP_Golden: + snprintf(ic_color, HARDWARE_MAX_ITEM_LONGTH, "Golden"); + break; + default: + snprintf(ic_color, HARDWARE_MAX_ITEM_LONGTH, "other Color"); + } + + if (nomal_boot) { + reg_addr = 0xA6; + ft5x06_i2c_read(data->client, ®_addr, 1, &uc_tp_fm_ver, 1); + snprintf(firmware_ver, HARDWARE_MAX_ITEM_LONGTH, "%s, %s, FW:0x%x, %s", vendor_for_id, ic_name, uc_tp_fm_ver, ic_color); + } else + snprintf(firmware_ver, HARDWARE_MAX_ITEM_LONGTH, "%s, %s, FW:0x%x, %s", vendor_for_id, ic_name, data->fw_ver[0], ic_color); + + err = hardwareinfo_set_prop(HARDWARE_TP, firmware_ver); + dev_err(&data->client->dev, "Set hardwareinfo is: %s\n", firmware_ver); + if (err < 0) + return -EPERM; + + return 0; +} +#endif + +#if CTP_PROC_INTERFACE +static ssize_t ctp_open_proc_read(struct file *file, char __user *buf, size_t count, loff_t *ppos) +{ + char *ptr = buf; + u8 result = 0; + int nret = -1; + char cfgname[128]; + struct i2c_client *client = fts_i2c_client; + ssize_t num_read_chars = 0; + + if (*ppos) { + CTP_INFO("tp test again return\n"); + return 0; + } + *ppos += count; + + mutex_lock(&fts_mutex); + disable_irq(client->irq); + + if (TP_Maker == TP_OUFEI && LCD_Maker == TP_EBBG && Project_Id == PROJECT_C3B) { + sprintf(cfgname, "%s", "ft5346_oufei_ebbg_c3b.ini"); + CTP_INFO("cfgname is: %s\n", cfgname); + } else if (TP_Maker == TP_LENS && LCD_Maker == TP_TIANMA && Project_Id == PROJECT_C3B) { + sprintf(cfgname, "%s", "ft5346_lens_tianma.ini"); + CTP_INFO("cfgname is: %s\n", cfgname); + } else if (TP_Maker == TP_DS && LCD_Maker == TP_EBBG && Project_Id == PROJECT_C3N) { + if (!strcmp(lcd_ic_name , "ili9881c")) { + sprintf(cfgname, "%s", "ft5346_ds_ebbg_nova.ini"); + CTP_INFO("cfgname is: %s\n", cfgname); + } else { + sprintf(cfgname, "%s", "ft5346_ds_ebbg_nova.ini"); + CTP_INFO("cfgname is: %s\n", cfgname); + } + } + + else if (TP_Maker == TP_OUFEI && LCD_Maker == TP_EBBG && Project_Id == PROJECT_C3N) { + sprintf(cfgname, "%s", "ft5346_oufei_ebbg.ini"); + CTP_INFO("cfgname is: %s\n", cfgname); + } else { + CTP_INFO("no ini match the project ctp,please check!"); + return count; + } + nret = fts_open_short_test(cfgname, NULL, &num_read_chars); + if (0 != nret) { + result = 0; + dev_err(&client->dev, "%s: fts open short test fail \n", __func__); + } else { + result = 1; + dev_err(&client->dev, "%s: fts open short test success \n", __func__); + } + + enable_irq(client->irq); + mutex_unlock(&fts_mutex); + + dev_err(&client->dev, "%s: End Open-Short Test \n", __func__); + return sprintf(ptr, "result=%d\n", result); +} + +static ssize_t ctp_open_proc_write(struct file *filp, const char __user *userbuf, size_t count, loff_t *ppos) +{ + return -EPERM; +} + +static void create_ctp_proc(void) +{ + + + + + + struct proc_dir_entry *ctp_open_proc = NULL; + if (ctp_device_proc == NULL) { + ctp_device_proc = proc_mkdir(CTP_PARENT_PROC_NAME, NULL); + if (ctp_device_proc == NULL) { + CTP_ERROR("ft5x06: create parent_proc fail\n"); + return; + } + } + ctp_open_proc = proc_create(CTP_OPEN_PROC_NAME, 0777, ctp_device_proc, &ctp_open_procs_fops); + if (ctp_open_proc == NULL) { + CTP_ERROR("ft5x06: create open_proc fail\n"); + } +} +#endif + +#if FTS_PROC_APK_DEBUG +static int ft5x0x_i2c_Read(struct i2c_client *client, char *writebuf, + int writelen, char *readbuf, int readlen) +{ + int ret; + + if (writelen > 0) { + struct i2c_msg msgs[] = { + { + .addr = client->addr, + .flags = 0, + .len = writelen, + .buf = writebuf, + }, + { + .addr = client->addr, + .flags = I2C_M_RD, + .len = readlen, + .buf = readbuf, + }, + }; + ret = i2c_transfer(client->adapter, msgs, 2); + if (ret < 0) + dev_err(&client->dev, "f%s: i2c read error.\n", + __func__); + } else { + struct i2c_msg msgs[] = { + { + .addr = client->addr, + .flags = I2C_M_RD, + .len = readlen, + .buf = readbuf, + }, + }; + ret = i2c_transfer(client->adapter, msgs, 1); + if (ret < 0) + dev_err(&client->dev, "%s:i2c read error.\n", __func__); + } + return ret; +} +/*write data by i2c*/ +static int ft5x0x_i2c_Write(struct i2c_client *client, char *writebuf, int writelen) +{ + int ret; + + struct i2c_msg msg[] = { + { + .addr = client->addr, + .flags = 0, + .len = writelen, + .buf = writebuf, + }, + }; + + ret = i2c_transfer(client->adapter, msg, 1); + if (ret < 0) + dev_err(&client->dev, "%s i2c write error.\n", __func__); + + return ret; +} + +static ssize_t ft5x0x_debug_write(struct file *filp, const char __user *buff, size_t len, loff_t *ppos) +{ + struct i2c_client *client = update_client; + unsigned char writebuf[FTS_PACKET_LENGTH]; + int buflen = len; + int writelen = 0; + int ret = 0; + + if (*ppos) + return -EPERM; + + if (copy_from_user(&writebuf, buff, buflen)) { + dev_err(&client->dev, "%s:copy from user error\n", __func__); + return -EFAULT; + } + proc_operate_mode = writebuf[0]; + CTP_INFO("write mode %x", proc_operate_mode); + switch (proc_operate_mode) { + case PROC_UPGRADE: + { + char upgrade_file_path[128]; + memset(upgrade_file_path, 0, sizeof(upgrade_file_path)); + sprintf(upgrade_file_path, "%s", writebuf + 1); + upgrade_file_path[buflen-1] = '\0'; + + disable_irq(client->irq); + + ret = fts_ctpm_fw_upgrade_with_app_file(upgrade_file_path); + + enable_irq(client->irq); + if (ret < 0) { + dev_err(&client->dev, "%s:upgrade failed.\n", __func__); + return ret; + } + } + break; + case PROC_READ_REGISTER: + writelen = 1; + ret = ft5x0x_i2c_Write(client, writebuf + 1, writelen); + if (ret < 0) { + dev_err(&client->dev, "%s:write iic error\n", __func__); + return ret; + } + break; + case PROC_WRITE_REGISTER: + writelen = 2; + ret = ft5x0x_i2c_Write(client, writebuf + 1, writelen); + if (ret < 0) { + dev_err(&client->dev, "%s:write iic error\n", __func__); + return ret; + } + break; + case PROC_RAWDATA: + break; + case PROC_AUTOCLB: + fts_ctpm_auto_clb(); + break; + default: + break; + } + + *ppos += len; + return len; +} + +static unsigned char debug_read_buf[PAGE_SIZE]; + +/*interface of read proc*/ +static ssize_t ft5x0x_debug_read(struct file *file, char __user *user_buf, size_t count, loff_t *ppos) +{ + struct i2c_client *client = update_client; + int ret = 0; + int num_read_chars = 0; + int readlen = 0; + u8 regvalue = 0x00, regaddr = 0x00; + + if (*ppos) + return -EPERM; + + switch (proc_operate_mode) { + case PROC_UPGRADE: + /*after calling ft5x0x_debug_write to upgrade*/ + regaddr = 0xA6; + ret = ft5x0x_read_reg(client, regaddr, ®value); + if (ret < 0) + num_read_chars = sprintf(debug_read_buf, "%s", "get fw version failed.\n"); + else + num_read_chars = sprintf(debug_read_buf, "current fw version:0x%02x\n", regvalue); + break; + case PROC_READ_REGISTER: + readlen = 1; + ret = ft5x0x_i2c_Read(client, NULL, 0, debug_read_buf, readlen); + if (ret < 0) { + dev_err(&client->dev, "%s:read iic error\n", __func__); + return ret; + } else + + num_read_chars = 1; + break; + case PROC_RAWDATA: + break; + default: + break; + } + + memcpy(user_buf, debug_read_buf, num_read_chars); + *ppos += num_read_chars; + return num_read_chars; +} + +static const struct file_operations ctp_apk_proc_fops = { + .write = ft5x0x_debug_write, + .read = ft5x0x_debug_read, + .open = simple_open, + .owner = THIS_MODULE, +}; + +static int ft5x0x_create_apk_debug_channel(struct i2c_client *client) +{ + ft5x0x_proc_entry = proc_create(PROC_NAME, 0666, NULL, &ctp_apk_proc_fops); + if (NULL == ft5x0x_proc_entry) { + dev_err(&client->dev, "Couldn't create proc entry!\n"); + return -ENOMEM; + } + return 0; +} + +static void ft5x0x_release_apk_debug_channel(void) +{ + if (ft5x0x_proc_entry) + remove_proc_entry(PROC_NAME, NULL); +} + +#endif + +#if WT_CTP_GESTURE_SUPPORT +static ssize_t proc_gesture_data_read(struct file *file, char __user *buffer, size_t count, loff_t *ppos) +{ + int num = 0; + if (*ppos) + return 0; + printk("proc_gesture_data_read=%d\n", gtp_gesture_value); + num = sprintf(buffer, "%c\n", gtp_gesture_value); + *ppos += num; + return num; +} + + +static ssize_t proc_gesture_data_write(struct file *file, const char __user *buffer, size_t count, loff_t *ppos) +{ + sscanf(buffer, "%c", >p_gesture_value); + return count; +} + +static ssize_t proc_gesture_onoff_read(struct file *file, char __user *page, size_t count, loff_t *ppos) +{ + int num; + if (*ppos) + return 0; + + num = sprintf(page, "%c\n", gtp_gesture_onoff); + *ppos += num; + return num; + +} + +static ssize_t proc_gesture_onoff_write(struct file *file, const char __user *buffer, size_t count, loff_t *ppos) +{ + sscanf(buffer, "%c", >p_gesture_onoff); + return count; +} + +static const struct file_operations gt_gesture_var_proc_fops = { + .write = proc_gesture_data_write, + .read = proc_gesture_data_read, + .open = simple_open, + .owner = THIS_MODULE, +}; + +static const struct file_operations gt_gesture_onoff_proc_fops = { + .write = proc_gesture_onoff_write, + .read = proc_gesture_onoff_read, + .open = simple_open, + .owner = THIS_MODULE, +}; + +void Ctp_Gesture_Fucntion_Proc_File(void) +{ + struct proc_dir_entry *ctp_device_proc = NULL; + struct proc_dir_entry *ctp_gesture_type_proc = NULL; + struct proc_dir_entry *ctp_gesture_onoff_proc = NULL; + + ctp_device_proc = proc_mkdir("gesture", NULL); + + ctp_gesture_type_proc = proc_create("data", 0660, ctp_device_proc, >_gesture_var_proc_fops); + if (ctp_gesture_type_proc == NULL) { + CTP_DEBUG("ctp_gesture_var_proc create failed\n"); + } + + ctp_gesture_onoff_proc = proc_create("onoff", 0660, ctp_device_proc, >_gesture_onoff_proc_fops); + if (ctp_gesture_onoff_proc == NULL) { + CTP_DEBUG("ctp_gesture_onoff_proc create failed\n"); + } + +} + +#endif + +static int fts_input_event(struct input_dev *dev, + unsigned int type, unsigned int code, int value) +{ + char buffer[16]; + + if (type == EV_SYN && code == SYN_CONFIG) { + sprintf(buffer, "%d", value); + + CTP_INFO("FTS:Gesture on/off : %d", value); + if (value >= MXT_INPUT_EVENT_START && value <= MXT_INPUT_EVENT_END) { + if (value == MXT_INPUT_EVENT_WAKUP_MODE_ON) { + gtp_gesture_onoff = '1'; + } else if (value == MXT_INPUT_EVENT_WAKUP_MODE_OFF) { + gtp_gesture_onoff = '0'; + } else { + gtp_gesture_onoff = '0'; + CTP_ERROR("Failed Open/Close Gesture Function!\n"); + return -ENOMEM; + } + } + } + + return 0; +} + + +static int get_boot_mode(struct i2c_client *client) +{ + int ret; + char *cmdline_tp = NULL; + char *temp; + char cmd_line[15] = {'\0'}; + + cmdline_tp = strstr(saved_command_line, "androidboot.mode="); + if (cmdline_tp != NULL) { + temp = cmdline_tp + strlen("androidboot.mode="); + ret = strncmp(temp, "ffbm", strlen("ffbm")); + memcpy(cmd_line, temp, 10); + dev_err(&client->dev, "cmd_line =%s \n", cmd_line); + if (ret == 0) { + dev_err(&client->dev, "mode: ffbm\n"); + return 1;/* factory mode*/ + } else { + dev_err(&client->dev, "mode: no ffbm\n"); + return 2;/* no factory mode*/ + } + } + + nomal_boot = 1; + dev_err(&client->dev, "has no androidboot.mode \n"); + return 0; +} + +static int ft5x06_ts_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ + struct ft5x06_ts_platform_data *pdata; + struct ft5x06_ts_data *data; + struct input_dev *input_dev; + struct dentry *temp; + u8 reg_value; + u8 reg_addr; + int err; + int len; + u8 ic_name; +#if TPD_AUTO_UPGRADE + int ret_auto_upgrade = 0; + int i; +#endif + + temp = NULL; + update_client = client; + gesture_client = client; + + +#if CTP_PROC_INTERFACE + fts_i2c_client = client; +#endif + + if (client->dev.of_node) { + pdata = devm_kzalloc(&client->dev, + sizeof(struct ft5x06_ts_platform_data), GFP_KERNEL); + if (!pdata) { + dev_err(&client->dev, "Failed to allocate memory\n"); + return -ENOMEM; + } + + err = ft5x06_parse_dt(&client->dev, pdata); + if (err) { + dev_err(&client->dev, "DT parsing failed\n"); + return err; + } + } else + pdata = client->dev.platform_data; + + if (!pdata) { + dev_err(&client->dev, "Invalid pdata\n"); + return -EINVAL; + } + + if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { + dev_err(&client->dev, "I2C not supported\n"); + return -ENODEV; + } + + data = devm_kzalloc(&client->dev, + sizeof(struct ft5x06_ts_data), GFP_KERNEL); + if (!data) { + dev_err(&client->dev, "Not enough memory\n"); + return -ENOMEM; + } + + if (pdata->fw_name) { + len = strlen(pdata->fw_name); + if (len > FT_FW_NAME_MAX_LEN - 1) { + dev_err(&client->dev, "Invalid firmware name\n"); + return -EINVAL; + } + + strlcpy(data->fw_name, pdata->fw_name, len + 1); + } + + data->tch_data_len = FT_TCH_LEN(pdata->num_max_touches); + data->tch_data = devm_kzalloc(&client->dev, + data->tch_data_len, GFP_KERNEL); + if (!data) { + return -ENOMEM; + } + + input_dev = input_allocate_device(); + if (!input_dev) { + return -ENOMEM; + } + + data->input_dev = input_dev; + data->client = client; + data->pdata = pdata; + + input_dev->name = "ft5346"; + input_dev->id.bustype = BUS_I2C; + input_dev->dev.parent = &client->dev; + input_dev->event = fts_input_event; + input_set_drvdata(input_dev, data); + i2c_set_clientdata(client, data); + + __set_bit(EV_KEY, input_dev->evbit); + __set_bit(EV_ABS, input_dev->evbit); + __set_bit(BTN_TOUCH, input_dev->keybit); + __set_bit(INPUT_PROP_DIRECT, input_dev->propbit); + +#if WT_CTP_GESTURE_SUPPORT + input_set_capability(input_dev, EV_KEY, KEY_POWER); + input_set_capability(input_dev, EV_KEY, KEYCODE_WAKEUP); + + __set_bit(KEYCODE_WAKEUP, input_dev->keybit); +#endif + + input_mt_init_slots(input_dev, pdata->num_max_touches, 0); + input_set_abs_params(input_dev, ABS_MT_POSITION_X, pdata->x_min, + pdata->x_max, 0, 0); + input_set_abs_params(input_dev, ABS_MT_POSITION_Y, pdata->y_min, + pdata->y_max, 0, 0); + + err = input_register_device(input_dev); + if (err) { + dev_err(&client->dev, "Input device registration failed\n"); + goto free_inputdev; + } + + if (pdata->power_init) { + err = pdata->power_init(true); + if (err) { + dev_err(&client->dev, "power init failed"); + goto unreg_inputdev; + } + } else { + err = ft5x06_power_init(data, true); + if (err) { + dev_err(&client->dev, "power init failed"); + goto unreg_inputdev; + } + } + + if (pdata->power_on) { + err = pdata->power_on(true); + if (err) { + dev_err(&client->dev, "power on failed"); + goto pwr_deinit; + } + } else { + err = ft5x06_power_on(data, true); + if (err) { + dev_err(&client->dev, "power on failed"); + goto pwr_deinit; + } + } + + err = ft5x06_ts_pinctrl_init(data); + if (!err && data->ts_pinctrl) { + err = ft5x06_ts_pinctrl_select(data, true); + if (err < 0) + goto pwr_off; + } + + if (gpio_is_valid(pdata->irq_gpio)) { + err = gpio_request(pdata->irq_gpio, "ft5x06_irq_gpio"); + if (err) { + dev_err(&client->dev, "irq gpio request failed"); + goto pwr_off; + } + err = gpio_direction_input(pdata->irq_gpio); + if (err) { + dev_err(&client->dev, + "set_direction for irq gpio failed\n"); + goto free_irq_gpio; + } + } + + if (gpio_is_valid(pdata->reset_gpio)) { + err = gpio_request(pdata->reset_gpio, "ft5x06_reset_gpio"); + if (err) { + goto free_irq_gpio; + } + + err = gpio_direction_output(pdata->reset_gpio, 0); + if (err) { + dev_err(&client->dev, + "set_direction for reset gpio failed\n"); + goto free_reset_gpio; + } + msleep(data->pdata->hard_rst_dly); + gpio_set_value_cansleep(data->pdata->reset_gpio, 1); + } + + /* make sure CTP already finish startup process */ + msleep(data->pdata->soft_rst_dly); + + /* check the controller id */ + reg_addr = FT_REG_ID; + err = ft5x06_i2c_read(client, ®_addr, 1, ®_value, 1); + if (err < 0) { + dev_err(&client->dev, "version read failed"); + goto free_reset_gpio; + } + ic_name = reg_value; + + dev_info(&client->dev, "Device ID = 0x%x\n", reg_value); + + if ((pdata->family_id != reg_value) && (!pdata->ignore_id_check)) { + dev_err(&client->dev, "%s:Unsupported controller\n", __func__); + goto free_reset_gpio; + } + + data->family_id = pdata->family_id; + + err = request_threaded_irq(client->irq, NULL, + ft5x06_ts_interrupt, + /*pdata->irq_gpio_flags |*/ IRQF_TRIGGER_FALLING | IRQF_ONESHOT, + client->dev.driver->name, data); + if (err) { + dev_err(&client->dev, "request irq failed\n"); + goto free_reset_gpio; + } + + disable_irq(data->client->irq); + +#if CTP_SYS_APK_UPDATE + err = device_create_file(&client->dev, &dev_attr_fw_name); + if (err) { + dev_err(&client->dev, "sys file creation failed\n"); + } + + err = device_create_file(&client->dev, &dev_attr_ftsfwupgradeapp); + if (err) { + dev_err(&client->dev, "upgradeapp sys file creation failed\n"); + } + + err = device_create_file(&client->dev, &dev_attr_ftsmcaptest); + if (err) { + dev_err(&client->dev, "ftsmcaptest sys file creation failed\n"); + } + err = device_create_file(&client->dev, &dev_attr_update_fw); + if (err) { + dev_err(&client->dev, "sys file creation failed\n"); + } + + err = device_create_file(&client->dev, &dev_attr_force_update_fw); + if (err) { + dev_err(&client->dev, "sys file creation failed\n"); + } + + data->dir = debugfs_create_dir(FT_DEBUG_DIR_NAME, NULL); + if (data->dir == NULL || IS_ERR(data->dir)) { + pr_err("debugfs_create_dir failed(%ld)\n", PTR_ERR(data->dir)); + err = PTR_ERR(data->dir); + } else { + temp = debugfs_create_file("addr", S_IRUSR | S_IWUSR, data->dir, data, + &debug_addr_fops); + if (temp == NULL || IS_ERR(temp)) { + pr_err("debugfs_create_file failed: rc=%ld\n", PTR_ERR(temp)); + err = PTR_ERR(temp); + } + + temp = debugfs_create_file("data", S_IRUSR | S_IWUSR, data->dir, data, + &debug_data_fops); + if (temp == NULL || IS_ERR(temp)) { + pr_err("debugfs_create_file failed: rc=%ld\n", PTR_ERR(temp)); + err = PTR_ERR(temp); + } + + temp = debugfs_create_file("suspend", S_IRUSR | S_IWUSR, data->dir, + data, &debug_suspend_fops); + if (temp == NULL || IS_ERR(temp)) { + pr_err("debugfs_create_file failed: rc=%ld\n", PTR_ERR(temp)); + err = PTR_ERR(temp); + } + + temp = debugfs_create_file("dump_info", S_IRUSR | S_IWUSR, data->dir, + data, &debug_dump_info_fops); + if (temp == NULL || IS_ERR(temp)) { + pr_err("debugfs_create_file failed: rc=%ld\n", PTR_ERR(temp)); + err = PTR_ERR(temp); + } + } +#endif + + data->ts_info = devm_kzalloc(&client->dev, + FT_INFO_MAX_LEN, GFP_KERNEL); + if (!data->ts_info) { + dev_err(&client->dev, "Not enough memory\n"); + goto free_irq_gpio; + } + + /*get some register information */ + reg_addr = FT_REG_POINT_RATE; + ft5x06_i2c_read(client, ®_addr, 1, ®_value, 1); + if (err < 0) + dev_err(&client->dev, "report rate read failed"); + + dev_info(&client->dev, "report rate = %dHz\n", reg_value * 10); + + reg_addr = FT_REG_THGROUP; + err = ft5x06_i2c_read(client, ®_addr, 1, ®_value, 1); + if (err < 0) + dev_err(&client->dev, "threshold read failed"); + + dev_dbg(&client->dev, "touch threshold = %d\n", reg_value * 4); + + ft5x06_update_fw_ver(data); + ft5x06_update_fw_vendor_id(data); + + FT_STORE_TS_INFO(data->ts_info, data->family_id, data->pdata->name, + data->pdata->num_max_touches, data->pdata->group_id, + data->pdata->fw_vkey_support ? "yes" : "no", + data->pdata->fw_name, data->fw_ver[0], + data->fw_ver[1], data->fw_ver[2]); + +#if WT_ADD_CTP_INFO + fts_ctpm_read_lockdown(client, data); +#endif + +#if defined(CONFIG_FB) + INIT_WORK(&data->fb_notify_work, fb_notify_resume_work); + data->fb_notif.notifier_call = fb_notifier_callback; + + err = fb_register_client(&data->fb_notif); + + if (err) + dev_err(&client->dev, "Unable to register fb_notifier: %d\n", + err); +#elif defined(CONFIG_HAS_EARLYSUSPEND) + data->early_suspend.level = EARLY_SUSPEND_LEVEL_BLANK_SCREEN + + FT_SUSPEND_LEVEL; + data->early_suspend.suspend = ft5x06_ts_early_suspend; + data->early_suspend.resume = ft5x06_ts_late_resume; + register_early_suspend(&data->early_suspend); +#endif + + +#ifdef CONFIG_TOUCHSCREEN_LOCKDOWN_INFO + create_ctp_lockdown_proc(); +#endif + + +#if CTP_PROC_INTERFACE + create_ctp_proc(); +#endif + +#if WT_CTP_GESTURE_SUPPORT + + Ctp_Gesture_Fucntion_Proc_File(); +#endif + +#if FTS_PROC_APK_DEBUG + ft5x0x_create_apk_debug_channel(update_client); +#endif + + +#if TPD_AUTO_UPGRADE + + err = get_boot_mode(client); + if (err == 0) { + dev_err(&client->dev, "upgrade\n"); + CTP_DEBUG("********************Enter CTP Auto Upgrade********************\n"); + msleep(50); + i = 0; + do { + ret_auto_upgrade = fts_ctpm_fw_upgrade_with_i_file(data); + i++; + if (ret_auto_upgrade < 0) { + CTP_DEBUG(" ctp upgrade fail err = %d \n", ret_auto_upgrade); + } + } while ((ret_auto_upgrade < 0) && (i < 3)); + } else { + dev_err(&client->dev, "no upgrade\n"); + CTP_DEBUG("not nomal_boot\n"); + } +#endif + +#if WT_ADD_CTP_INFO + err = hardwareinfo_set(data, ic_name, lockdown_info[2]); + if (err < 0) + dev_err(&client->dev, "hardwareinfo set failed"); +#endif + +#if CTP_CHARGER_DETECT + batt_psy = power_supply_get_by_name("usb"); + if (!batt_psy) + CTP_DEBUG("tp battery supply not found\n"); +#endif + + enable_irq(data->client->irq); + + return 0; + + +free_reset_gpio: + if (gpio_is_valid(pdata->reset_gpio)) + gpio_free(pdata->reset_gpio); + if (data->ts_pinctrl) { + err = ft5x06_ts_pinctrl_select(data, false); + if (err < 0) + CTP_ERROR("Cannot get idle pinctrl state\n"); + } +free_irq_gpio: + if (gpio_is_valid(pdata->irq_gpio)) + gpio_free(pdata->irq_gpio); + if (data->ts_pinctrl) { + err = ft5x06_ts_pinctrl_select(data, false); + if (err < 0) + CTP_ERROR("Cannot get idle pinctrl state\n"); + } + + +ft5x06_ts_pinctrl_free(data); + +pwr_off: +pwr_deinit: +unreg_inputdev: + input_unregister_device(input_dev); + input_dev = NULL; +free_inputdev: + input_free_device(input_dev); + return err; +} + +static int ft5x06_ts_remove(struct i2c_client *client) +{ + struct ft5x06_ts_data *data = i2c_get_clientdata(client); + int retval; + +#if CTP_SYS_APK_UPDATE + device_remove_file(&client->dev, &dev_attr_fw_name); +#endif + +#if FTS_PROC_APK_DEBUG + ft5x0x_release_apk_debug_channel(); +#endif + + +#if defined(CONFIG_FB) + if (fb_unregister_client(&data->fb_notif)) + dev_err(&client->dev, "Error occurred while unregistering fb_notifier.\n"); +#elif defined(CONFIG_HAS_EARLYSUSPEND) + unregister_early_suspend(&data->early_suspend); +#endif + free_irq(client->irq, data); + + if (gpio_is_valid(data->pdata->reset_gpio)) + gpio_free(data->pdata->reset_gpio); + + if (gpio_is_valid(data->pdata->irq_gpio)) + gpio_free(data->pdata->irq_gpio); + + if (data->ts_pinctrl) { + retval = ft5x06_ts_pinctrl_select(data, false); + if (retval < 0) + CTP_ERROR("Cannot get idle pinctrl state\n"); + } + input_unregister_device(data->input_dev); + + return 0; +} + +void ft5x06_ts_shutdown(struct i2c_client *client) +{ + struct ft5x06_ts_data *data = i2c_get_clientdata(client); + int retval; + + free_irq(client->irq, data); + + if (gpio_is_valid(data->pdata->reset_gpio)) { + retval = gpio_direction_output(data->pdata->reset_gpio, 0); + if (retval) { + dev_err(&data->client->dev, + "set_direction for reset gpio failed\n"); + } + gpio_free(data->pdata->reset_gpio); + } + + if (gpio_is_valid(data->pdata->irq_gpio)) + gpio_free(data->pdata->irq_gpio); + + if (data->pdata->power_init) + data->pdata->power_init(false); + else + ft5x06_power_init(data, false); +} + + +static const struct i2c_device_id ft5x06_ts_id[] = { + {"ft5x06_720p", 0}, + {}, +}; + +MODULE_DEVICE_TABLE(i2c, ft5x06_ts_id); + +#ifdef CONFIG_OF +static struct of_device_id ft5x06_match_table[] = { + { .compatible = "focaltech,5336",}, + { }, +}; +#else +#define ft5x06_match_table NULL +#endif + +static struct i2c_driver ft5x06_ts_driver = { + .probe = ft5x06_ts_probe, + .remove = ft5x06_ts_remove, + .shutdown = ft5x06_ts_shutdown, + .driver = { + .name = "ft5x06_720p", + .owner = THIS_MODULE, + .of_match_table = ft5x06_match_table, +#ifdef CONFIG_PM + .pm = &ft5x06_ts_pm_ops, +#endif + }, + .id_table = ft5x06_ts_id, +}; + +static int __init ft5x06_ts_init(void) +{ + return i2c_add_driver(&ft5x06_ts_driver); +} +module_init(ft5x06_ts_init); + +static void __exit ft5x06_ts_exit(void) +{ + i2c_del_driver(&ft5x06_ts_driver); +} +module_exit(ft5x06_ts_exit); + +MODULE_DESCRIPTION("FocalTech ft5x06 TouchScreen driver"); +MODULE_LICENSE("GPL v2"); diff --git a/drivers/input/touchscreen/FT5346/ft_app_ic_ds_ebbg.txt b/drivers/input/touchscreen/FT5346/ft_app_ic_ds_ebbg.txt new file mode 100644 index 0000000000000..420be95973f9d --- /dev/null +++ b/drivers/input/touchscreen/FT5346/ft_app_ic_ds_ebbg.txt @@ -0,0 +1,3093 @@ +0x2, 0x1f,0xd2,0x2, 0xb5,0xb4,0xeb,0xaa,0x8, 0x22,0x22,0x2, 0x0, 0x42,0xb4,0x2, +0x4, 0xa9,0xb7,0xea,0x22,0x24,0xff,0xa9,0x97,0xea,0x22,0x2, 0x70,0x2d,0xb4,0x2, +0x4, 0xa9,0xb6,0xea,0x22,0x24,0xff,0xa9,0x96,0xea,0x22,0x2, 0x7d,0x45,0x7f,0x60, +0xa9,0xc2,0xea,0x74,0x1, 0x12,0x13,0x96,0x7f,0x6, 0x12,0x5, 0xb4,0x7f,0x6, 0x2, +0x9, 0xa1,0x32,0x2, 0x7d,0xa4,0xe4,0x2, 0x29,0xfa,0x22,0x2, 0x0, 0x5a,0x12,0x10, +0xa2,0x2, 0x13,0x79,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x32,0x2, 0x0, 0x76,0x1, 0x2, +0x4, 0x8, 0x10,0x20,0x40,0x80,0xa2,0x13,0x22,0x32,0xff,0x2, 0x0, 0x69,0x2, 0x31, +0xb3,0xff,0xff,0x2, 0x10,0x52,0xca,0x7b,0xca,0x6b,0xca,0x5b,0xca,0x4b,0xca,0x2b, +0xca,0x1b,0xca,0xb, 0xc0,0xd0,0xc0,0x83,0xc0,0x82,0xd2,0xb, 0x7e,0xf, 0x38,0xc8, +0x69,0x30,0x0, 0x4, 0x7a,0x73,0x38,0xd8,0x7e,0x73,0x38,0xd8,0xa, 0x37,0x5e,0x34, +0x0, 0x4, 0x68,0x4, 0xd2,0xa, 0x80,0x2, 0xc2,0xa, 0x7e,0x34,0x0, 0x1f,0x79,0x30, +0x0, 0x4, 0xc2,0xc3,0x12,0x12,0x9e,0x12,0x7f,0x5, 0x7e,0x1f,0x38,0xc8,0x69,0x31, +0x0, 0x2, 0x5e,0x34,0x0, 0x40,0x68,0x2e,0x6c,0xaa,0x7e,0x10,0x2, 0xac,0x1a,0x7e, +0x1f,0x38,0xc8,0x7f,0x71,0x2d,0xf0,0x69,0x17,0x0, 0x9c,0x59,0x10,0x38,0xcc,0xb, +0xa0,0xbe,0xa0,0x3, 0x78,0xe4,0x69,0x11,0x0, 0xa4,0x7a,0x17,0x38,0xd4,0x69,0x31, +0x0, 0xa2,0x7a,0x37,0x38,0xd2,0xa9,0xc1,0xc4,0xd0,0x82,0xd0,0x83,0xd0,0xd0,0xda, +0xb, 0xda,0x1b,0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda,0x7b,0x32,0x7d,0x13, +0x7e,0x1f,0x38,0xf7,0x1b,0x1a,0x10,0xc2,0xc6,0xd2,0xee,0x22,0xff,0xff,0x54,0x2c, +0xca,0x79,0x7f,0x50,0x7c,0xeb,0x7e,0x34,0x0, 0x24,0x7e,0x8, 0x0, 0x2c,0x7e,0x24, +0x0, 0x2, 0x12,0xb7,0xc7,0xe5,0x2c,0xbe,0xb0,0x0, 0x38,0x2, 0x21,0x4a,0xe5,0x2c, +0xbe,0xb0,0x76,0x28,0x2, 0x21,0x4a,0x7e,0xe1,0x2c,0xbe,0xe0,0x76,0x38,0x2, 0x21, +0x78,0x7e,0x34,0x1e,0x45,0x79,0x35,0x0, 0x2, 0x7e,0x34,0x1e,0x29,0x79,0x35,0x0, +0x4, 0xbe,0xe0,0x81,0x68,0x2, 0x21,0x71,0x74,0x23,0x7a,0x5b,0xb0,0x74,0x1c,0x61, +0x84,0x74,0x1, 0x7a,0x5b,0xb0,0x61,0x84,0x7c,0xbe,0x14,0xbe,0xb0,0x75,0x40,0x2, +0x61,0x33,0x7e,0xa0,0x3, 0xa4,0x2e,0x54,0x1, 0x8c,0x89,0x54,0x2, 0x2, 0xfb,0x2, +0x2, 0xfb,0x2, 0x3, 0x33,0x2, 0x2, 0xfb,0x2, 0x3, 0x33,0x2, 0x2, 0xed,0x2, 0x2, +0xfb,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x2, 0xfb,0x2, 0x3, 0x33,0x2, 0x2, 0xfb, +0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x25,0x2, 0x3, 0x33,0x2, 0x3, 0x9, 0x2, +0x2, 0xfb,0x2, 0x3, 0x17,0x2, 0x3, 0x17,0x2, 0x2, 0xfb,0x2, 0x3, 0x33,0x2, 0x3, +0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33, +0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, +0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, +0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33, +0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, +0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, +0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33, +0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, +0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, +0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33, +0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, +0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, +0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33, +0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, +0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, +0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33, +0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, +0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x2, 0xfb,0x41,0xfb,0x7e,0x34,0x1e, +0x45,0x79,0x35,0x0, 0x2, 0x7e,0x34,0x1d,0xe2,0x61,0x3f,0x7e,0x34,0x1e,0x19,0x79, +0x35,0x0, 0x2, 0x7e,0x34,0x1e,0x29,0x61,0x3f,0x7e,0x34,0x1e,0x19,0x79,0x35,0x0, +0x2, 0x7e,0x34,0x1d,0xb2,0x61,0x3f,0x7e,0x34,0x1d,0x96,0x79,0x35,0x0, 0x2, 0x7e, +0x34,0x1d,0xc6,0x61,0x3f,0x7e,0x34,0x1e,0xa, 0x79,0x35,0x0, 0x2, 0x7e,0x34,0x1d, +0xf1,0x61,0x3f,0x7e,0x34,0x1e,0x45,0x79,0x35,0x0, 0x2, 0x7e,0x34,0x1e,0x29,0x79, +0x35,0x0, 0x4, 0xbe,0xe0,0x16,0x28,0x2, 0x61,0x4e,0x7c,0xfe,0x61,0x62,0x7e,0xf0, +0x16,0xbe,0xe0,0x72,0x50,0x2, 0x61,0x62,0xa, 0x3e,0x9e,0x34,0x0, 0x72,0xb, 0x34, +0x2c,0xf7,0x7e,0x70,0x3, 0xac,0x7f,0x7d,0x23,0x2e,0x24,0x1e,0x69,0x7a,0x51,0x82, +0x7a,0x41,0x83,0xe4,0x93,0x7a,0x5b,0xb0,0x2e,0x34,0x1e,0x6a,0x7a,0x71,0x82,0x7a, +0x61,0x83,0xe4,0x93,0x39,0xb5,0x0, 0x1, 0xda,0x79,0x22,0xca,0x3b,0x7f,0x30,0x74, +0x1, 0x12,0x13,0xde,0x29,0x73,0x0, 0xf3,0x2e,0x70,0xff,0x92,0x4, 0x29,0xb3,0x0, +0xf4,0x12,0x13,0xaf,0x7f,0x3, 0x12,0xd, 0x72,0x7f,0x3, 0x12,0x6, 0xba,0x29,0x73, +0x0, 0xa, 0xa, 0x37,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x24,0x29,0x73,0x0, 0xa3, +0xa, 0x27,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24, +0x69,0x33,0x0, 0xff,0x4d,0x32,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x2, 0x29,0x73, +0x0, 0xa, 0xa, 0x47,0x29,0x73,0x0, 0x5, 0xa, 0x57,0x9d,0x54,0xf5,0x35,0x29,0xb3, +0x0, 0xa5,0x70,0xb, 0x29,0xb3,0x0, 0xf8,0x29,0x73,0x0, 0xf7,0x12,0xb, 0xad,0x29, +0x73,0x0, 0xa5,0x2e,0x70,0xff,0x92,0x4, 0xe5,0x35,0x12,0xb, 0x1e,0x69,0x33,0x0, +0xfd,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x28,0x69,0x23,0x0, 0xfb,0x3e,0x24,0x3e, +0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x29,0x73,0x0, 0xfa,0xa, 0x37,0x2d, +0x32,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x2a,0x29,0x73,0x0, 0xf9,0xa, 0x37,0x7e, +0xf, 0x38,0xc8,0x79,0x30,0x0, 0x2c,0x7e,0x34,0x0, 0x1, 0x7e,0xf, 0x38,0xc8,0x79, +0x30,0x0, 0x34,0x7e,0x34,0x1, 0xb, 0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x2e,0x29, +0x73,0x0, 0x5, 0xa, 0x37,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x10,0x69,0x33,0x0, +0xa8,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x1c,0x69,0x33,0x0, 0xaa,0x7e,0xf, 0x38, +0xc8,0x79,0x30,0x0, 0x1e,0x6c,0xaa,0x7e,0x50,0x2, 0xac,0x5a,0x69,0x13,0x1, 0x1, +0x2d,0x12,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0x30,0x7e,0xf, 0x38,0xc8,0x2d,0x12,0x79, +0x30,0x0, 0x44,0xb, 0xa0,0xbe,0xa0,0xc, 0x40,0xdd,0xda,0x3b,0x22,0xca,0xf8,0x7f, +0x70,0x7e,0x7b,0xf0,0x29,0x77,0x0, 0x1, 0xbc,0x7f,0x28,0x2, 0x7c,0xf7,0x69,0x17, +0x0, 0x6, 0x6d,0x0, 0x7e,0x34,0x0, 0xf2,0x74,0xff,0x12,0x20,0xde,0x7f,0x7, 0x12, +0xe, 0xed,0xa9,0xd6,0xcb,0x6c,0xaa,0x80,0x2d,0x6c,0x77,0x80,0x1f,0x7e,0x10,0xb, +0xac,0x1a,0xa, 0x17,0x2d,0x1, 0x3e,0x4, 0x69,0x17,0x0, 0x6, 0x2d,0x10,0x6d,0x0, +0xb, 0xa, 0x20,0x6e,0x24,0xff,0xff,0x1b,0xa, 0x20,0xb, 0x70,0x29,0x67,0x0, 0x1, +0xbc,0x67,0x38,0xd9,0xb, 0xa0,0x7e,0x7b,0x60,0xbc,0x6a,0x38,0xcc,0x69,0x37,0x0, +0x6, 0x7e,0xf, 0x39,0xd, 0x79,0x30,0x0, 0x4, 0x7c,0x4f,0x6c,0x55,0xa, 0x3f,0x2d, +0x32,0x7e,0xf, 0x39,0xd, 0x79,0x30,0x0, 0xc, 0x6d,0x11,0x7e,0x1f,0x39,0xd, 0x1b, +0x1a,0x10,0x7e,0x34,0x0, 0xd0,0x12,0xf, 0x45,0x6c,0xaa,0xbe,0xa0,0x4, 0x50,0x18, +0x7e,0x70,0x4, 0xac,0x7a,0x7c,0xb7,0x7e,0x1f,0x39,0xd, 0x69,0x41,0x0, 0x26,0x60, +0x42,0x1e,0x44,0x14,0x78,0xfb,0x80,0x3b,0xbe,0xa0,0x8, 0x50,0x1b,0xa, 0x3a,0x1b, +0x36,0x3e,0x34,0x3e,0x34,0x7c,0xb7,0x7e,0x1f,0x39,0xd, 0x69,0x41,0x0, 0x28,0x60, +0x22,0x1e,0x44,0x14,0x78,0xfb,0x80,0x1b,0xa, 0x3a,0x9e,0x34,0x0, 0x8, 0x3e,0x34, +0x3e,0x34,0x7c,0xb7,0x7e,0x1f,0x39,0xd, 0x69,0x41,0x0, 0x2a,0x60,0x5, 0x1e,0x44, +0x14,0x78,0xfb,0x5e,0x44,0x0, 0xf, 0x7e,0x50,0x2, 0xac,0x5a,0x69,0x37,0x0, 0x6, +0x2d,0x32,0x6d,0x22,0x1b,0x1a,0x40,0xb, 0xa0,0xbe,0xa0,0xb, 0x40,0x8d,0xa9,0xc6, +0xcb,0xda,0xf8,0x22,0x29,0x70,0x0, 0x96,0x29,0x90,0x0, 0x98,0x29,0x60,0x0, 0x97, +0x29,0x80,0x0, 0x8d,0xbe,0x80,0x4, 0x38,0x4, 0x6c,0xaa,0x80,0x21,0xbe,0x80,0x8, +0x38,0x5, 0x7e,0xa0,0x1, 0x80,0x17,0xbe,0x80,0x10,0x38,0x5, 0x7e,0xa0,0x2, 0x80, +0xd, 0xbe,0x80,0x20,0x38,0x5, 0x7e,0xa0,0x3, 0x80,0x3, 0x7e,0xa0,0x4, 0xbe,0x90, +0x3, 0x28,0x3, 0x7e,0x90,0x3, 0xbe,0x80,0x3f,0x28,0x3, 0x7e,0x80,0x3f,0xbe,0x60, +0x1, 0x28,0x3, 0x7e,0x60,0x1, 0xbe,0x70,0x2, 0x28,0x2, 0x6c,0x77,0xa, 0x28,0x3e, +0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x7c,0x89,0x6c,0x99,0x3e,0x44,0x3e, +0x44,0x3e,0x44,0x2d,0x42,0xa, 0x26,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x2d, +0x24,0xa, 0x37,0x3e,0x34,0x3e,0x34,0x2d,0x32,0x7e,0x7f,0x38,0xf7,0x79,0x37,0x0, +0x2, 0x29,0xb0,0x0, 0x8c,0x7c,0x4b,0x6c,0x55,0x29,0xb0,0x0, 0x8b,0xa, 0x3b,0x2d, +0x32,0x7e,0x7f,0x38,0xc0,0x79,0x37,0x0, 0x80,0x69,0x30,0x0, 0xa0,0x7e,0x7f,0x38, +0xf7,0x79,0x37,0x0, 0xc, 0x69,0x30,0x0, 0x9e,0x5e,0x34,0xe0,0xf, 0x29,0xb0,0x0, +0x8c,0xa, 0x2b,0x1b,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x2d,0x32,0x7e, +0x7f,0x38,0xc0,0x79,0x37,0x0, 0x82,0xa, 0x2a,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e, +0x24,0x29,0xb0,0x0, 0x99,0xa, 0x3b,0x2d,0x32,0x7e,0x7f,0x38,0xf7,0x79,0x37,0x0, +0x6, 0x69,0x30,0x0, 0x9c,0x7e,0x7f,0x38,0xf7,0x79,0x37,0x0, 0x8, 0x69,0x30,0x0, +0x9a,0x7e,0xf, 0x38,0xf7,0x79,0x30,0x0, 0xa, 0x22,0x7f,0x60,0x74,0x1, 0x12,0x13, +0xde,0x29,0x36,0x0, 0xf5,0x29,0x26,0x0, 0xa3,0x29,0x16,0x0, 0xa4,0xbe,0x20,0x2, +0x28,0x3, 0x7e,0x20,0x2, 0xbe,0x10,0x40,0x28,0x3, 0x7e,0x10,0x40,0x7e,0x34,0x0, +0x4, 0x7c,0xb2,0x60,0x5, 0x3e,0x34,0x14,0x78,0xfb,0x7c,0x7, 0xa, 0x31,0x7e,0x2f, +0x38,0xc8,0x79,0x32,0x0, 0x12,0x7c,0x73,0xac,0x70,0xa, 0x21,0x12,0x1e,0xb9,0x7c, +0x27,0xa, 0x32,0x7e,0x2f,0x38,0xc8,0x79,0x32,0x0, 0x14,0x7c,0x73,0xac,0x70,0x29, +0x26,0x0, 0xf6,0xa, 0x22,0xad,0x32,0xa, 0x21,0x8d,0x32,0x7d,0x43,0x7c,0x73,0xac, +0x70,0xa, 0x21,0x12,0x1e,0xb9,0x7c,0xa7,0x7c,0x2a,0x7c,0xb9,0x2c,0xab,0xbe,0xa0, +0xc, 0x50,0x3, 0x7e,0xa0,0xc, 0xbe,0x20,0xc, 0x50,0x3, 0x7e,0x20,0xc, 0xa, 0x20, +0xa, 0x31,0x12,0x1e,0xb9,0x7d,0xe3,0xa, 0x3a,0xb, 0x34,0xad,0x3e,0xb, 0x34,0xbe, +0x34,0x2, 0x0, 0x40,0x4, 0x7e,0x34,0x1, 0xff,0x29,0x46,0x0, 0xf7,0x7e,0x50,0x2, +0xac,0x45,0xa, 0xf2,0xad,0xfe,0x2d,0x2f,0xb, 0x24,0xbe,0x24,0x2, 0x0, 0x40,0x4, +0x7e,0x24,0x1, 0xff,0xa, 0x13,0x7e,0x7f,0x38,0xc8,0x79,0x17,0x0, 0xa, 0x1e,0x24, +0x7c,0x45,0x6c,0x55,0x1e,0x34,0x2d,0x32,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0xc, +0xa, 0x3a,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x22,0x22,0xa9,0xd6,0xcb,0x69,0x30, +0x0, 0x4, 0x7e,0x2f,0x39,0xd, 0x79,0x32,0x0, 0x4, 0x69,0x30,0x0, 0x6, 0x7e,0x2f, +0x39,0xd, 0x79,0x32,0x0, 0x6, 0x69,0x30,0x0, 0x8, 0x7e,0x2f,0x39,0xd, 0x79,0x32, +0x0, 0x8, 0x7e,0xb, 0x70,0x7c,0x47,0x6c,0x55,0x29,0x70,0x0, 0x1, 0xa, 0x37,0x2d, +0x32,0x7e,0x2f,0x39,0xd, 0x79,0x32,0x0, 0xc, 0x29,0x70,0x0, 0x2, 0xa, 0x37,0x7e, +0xf, 0x39,0xd, 0x79,0x30,0x0, 0xe, 0x6d,0x11,0x7e,0x1f,0x39,0xd, 0x1b,0x1a,0x10, +0x7e,0x34,0x0, 0xe0,0x12,0xf, 0x45,0xa9,0xc6,0xcb,0x22,0xb2,0x86,0x22,0xff,0xff, +0x7f,0x21,0xa9,0xd6,0xcb,0x69,0x30,0x0, 0x4, 0x7e,0x7f,0x39,0xd, 0x79,0x37,0x0, +0x4, 0x69,0x30,0x0, 0x8, 0x7e,0x7f,0x39,0xd, 0x79,0x37,0x0, 0x6, 0x69,0x30,0x0, +0x6, 0x7e,0x7f,0x39,0xd, 0x79,0x37,0x0, 0x8, 0x29,0x70,0x0, 0x1, 0x7c,0x47,0x6c, +0x55,0x7e,0xb, 0x70,0xa, 0x37,0x2d,0x32,0x7e,0x7f,0x39,0xd, 0x79,0x37,0x0, 0xc, +0x29,0x70,0x0, 0x2, 0xa, 0x37,0x1b,0x34,0x7e,0x7f,0x39,0xd, 0x79,0x37,0x0, 0xa, +0x69,0x30,0x0, 0xa, 0x7e,0x7f,0x39,0xd, 0x79,0x37,0x0, 0xe, 0x69,0x30,0x0, 0xc, +0x7e,0x7f,0x39,0xd, 0x79,0x37,0x0, 0x10,0x69,0x30,0x0, 0xe, 0x7e,0x7f,0x39,0xd, +0x79,0x37,0x0, 0x12,0x29,0x70,0x0, 0x3, 0x7c,0x27,0x6c,0x33,0x7e,0x1f,0x39,0xd, +0x1b,0x1a,0x10,0x7e,0x34,0x0, 0xa0,0x12,0xf, 0x45,0x7e,0x1f,0x39,0xd, 0x69,0x11, +0x0, 0x1a,0x7a,0x2b,0x30,0x69,0x11,0x0, 0x1c,0x39,0x32,0x0, 0x1, 0x69,0x11,0x0, +0x16,0x79,0x12,0x0, 0x2, 0x69,0x11,0x0, 0x18,0x79,0x12,0x0, 0x4, 0x69,0x11,0x0, +0x22,0x79,0x12,0x0, 0x6, 0x69,0x11,0x0, 0x24,0x79,0x12,0x0, 0x8, 0x69,0x11,0x0, +0x1e,0x79,0x12,0x0, 0xa, 0x69,0x31,0x0, 0x20,0x79,0x32,0x0, 0xc, 0xa9,0xc6,0xcb, +0x22,0xca,0x3b,0x7c,0x57,0x7c,0x4b,0x5e,0x40,0x3, 0x69,0x30,0x0, 0x4, 0x5e,0x60, +0x3f,0x6c,0xaa,0xa, 0x4a,0x69,0xf0,0x0, 0xa, 0x69,0xe0,0x0, 0x8, 0x2d,0xf4,0x7e, +0x7b,0xb0,0xa, 0xfb,0x7d,0x4f,0x7c,0x89,0x6c,0x99,0x7d,0xf4,0xa, 0xea,0x69,0xd0, +0x0, 0xe, 0x69,0xc0,0x0, 0xc, 0x2d,0xde,0x7e,0x6b,0xb0,0xa, 0x4b,0x2d,0x4f,0x7e, +0xd0,0x28,0xac,0xd5,0x7e,0xf0,0x2, 0xac,0xfa,0x7d,0xd7,0x2d,0xd6,0x7e,0xf0,0xf0, +0xac,0xf4,0x2d,0xd7,0x7e,0x7f,0x38,0xf3,0x2d,0xfd,0x79,0x47,0x1, 0x8c,0xb, 0xa0, +0xbe,0xa0,0xe, 0x78,0xae,0x6c,0xaa,0x7e,0x90,0x2, 0xac,0x9a,0x69,0xf0,0x0, 0x2, +0xb, 0xa, 0xe0,0x2d,0xf4,0xb, 0x7a,0x40,0x7e,0xd0,0x28,0xac,0xd5,0x7e,0xf0,0x2, +0xac,0xfa,0x7d,0xd7,0x2d,0xd6,0x7e,0xf0,0xf0,0xac,0xf4,0x2d,0xd7,0x7e,0x7f,0x38, +0xf3,0x2d,0xfd,0x79,0x47,0x1, 0x80,0xb, 0xa0,0xbe,0xa0,0x4, 0x40,0xc9,0x7e,0x90, +0xf0,0xac,0x94,0x74,0x28,0xac,0xb5,0x7d,0xf5,0x2d,0xf4,0x7e,0x2f,0x38,0xf3,0x2d, +0x5f,0x79,0x32,0x1, 0x88,0x69,0x30,0x0, 0x6, 0x7e,0x30,0xf0,0xac,0x34,0x74,0x28, +0xac,0x5b,0x2d,0x21,0x7e,0xf, 0x38,0xf3,0x2d,0x12,0x79,0x30,0x1, 0x8a,0xda,0x3b, +0x22,0x29,0x60,0x0, 0xb, 0xa, 0x46,0x29,0x60,0x0, 0x4, 0xa, 0x26,0x2d,0x24,0x7c, +0x65,0x29,0xb0,0x0, 0x6, 0xbc,0xb6,0x28,0x2, 0x7c,0x6b,0x29,0x70,0x0, 0x5, 0x29, +0xb0,0x0, 0x7, 0xbc,0xb7,0x28,0x2, 0x7c,0x7b,0x6c,0xaa,0x6d,0x22,0x7e,0x90,0x2, +0xac,0x9a,0x7e,0x7f,0x38,0xc0,0x2d,0xf4,0x79,0x27,0x0, 0x2, 0xb, 0xa0,0xbe,0xa0, +0x23,0x78,0xea,0x6c,0xaa,0x80,0x55,0xa, 0x2a,0x7f,0x70,0x2d,0xf2,0x29,0x57,0x0, +0x4c,0xbe,0x50,0x23,0x50,0x23,0x29,0x47,0x0, 0xb4,0xa, 0xd4,0x7d,0x4d,0x7c,0x89, +0x6c,0x99,0x7d,0xd4,0x7e,0x90,0x2, 0xac,0x95,0x7e,0x7f,0x38,0xc0,0x2d,0xf4,0xb, +0xf5,0xb, 0x7a,0x40,0x4d,0x4d,0x1b,0x7a,0x40,0xa, 0x4a,0x7f,0x70,0x2d,0xf4,0x29, +0x47,0x0, 0x4c,0xa, 0xd4,0x7e,0x90,0x2, 0xac,0x9a,0x7e,0x7f,0x38,0xc0,0x2d,0xf4, +0xb, 0xf5,0xb, 0x7a,0x40,0x4d,0x4d,0x1b,0x7a,0x40,0xb, 0xa0,0xbc,0x6a,0x38,0xa7, +0x6c,0xaa,0x80,0x1d,0xa, 0x2a,0x7f,0x70,0x2d,0xf2,0x29,0x67,0x0, 0x6f,0xa, 0x46, +0x7e,0x50,0x2, 0xac,0x5a,0x7e,0x7f,0x38,0xc0,0x2d,0xf2,0x79,0x47,0x0, 0x48,0xb, +0xa0,0xbc,0x7a,0x38,0xdf,0x22,0x7c,0x7b,0x7e,0x7f,0x38,0xc8,0x69,0x47,0x0, 0xc, +0x6c,0x88,0x3e,0x44,0x69,0x7, 0x0, 0xa, 0x69,0x57,0x0, 0x2, 0x1e,0x54,0x1e,0x54, +0x1e,0x54,0x1e,0x54,0x1e,0x54,0x1e,0x54,0x1e,0x54,0x5e,0x54,0x0, 0x3, 0x7e,0x14, +0x0, 0x4, 0x70,0x2, 0x41,0x9b,0x3e,0x14,0x14,0x78,0xfb,0x7c,0xa3,0xa, 0xda,0xad, +0xd0,0x7d,0xcd,0x6d,0x11,0x79,0x17,0x0, 0x8c,0x7c,0xb7,0x70,0x2, 0x41,0xb4,0x1e, +0xd4,0x14,0x78,0xfb,0xbe,0xd4,0x1, 0x0, 0x38,0x2, 0x41,0xc2,0x7e,0xd4,0x1, 0x0, +0x41,0xce,0xbe,0xd4,0x0, 0x10,0x40,0x2, 0x41,0xce,0x7e,0xd4,0x0, 0x10,0x7d,0x3d, +0x12,0x12,0x6a,0xa, 0x1b,0x7e,0x1f,0x38,0xc8,0x79,0x11,0x0, 0x90,0x7e,0x1f,0x38, +0xc8,0x79,0xd1,0x0, 0x8e,0x7e,0x7f,0x38,0xc8,0x69,0x37,0x0, 0x8, 0xad,0x3c,0x8d, +0x3d,0x79,0x37,0x0, 0x92,0x7e,0x14,0x0, 0x6, 0x7e,0x1f,0x38,0xc8,0x79,0x11,0x0, +0x94,0x7d,0x24,0x9d,0x20,0xa, 0x3a,0xad,0x32,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, +0x96,0x7e,0x34,0x0, 0x10,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x98,0x22,0x7c,0x5b, +0x7e,0xf, 0x38,0xc8,0x69,0x40,0x0, 0x22,0x30,0x4, 0x6b,0x6d,0xff,0x7d,0x3f,0xbe, +0x50,0x10,0x28,0x2e,0x7e,0x54,0xff,0xff,0x79,0x50,0x0, 0x42,0x9e,0x50,0x10,0x6c, +0xaa,0x80,0x11,0x7e,0xe4,0x0, 0x1, 0x7c,0xba,0x60,0x5, 0x3e,0xe4,0x14,0x78,0xfb, +0x2d,0x3e,0xb, 0xa0,0xbc,0x5a,0x38,0xeb,0x7e,0x6f,0x38,0xc8,0x79,0x36,0x0, 0x40, +0x80,0x25,0x79,0xf0,0x0, 0x40,0x6c,0xaa,0x80,0x11,0x7e,0xf4,0x0, 0x1, 0x7c,0xba, +0x60,0x5, 0x3e,0xf4,0x14,0x78,0xfb,0x2d,0x3f,0xb, 0xa0,0xbc,0x5a,0x38,0xeb,0x7e, +0x7f,0x38,0xc8,0x79,0x37,0x0, 0x42,0x7d,0x34,0x2e,0x34,0x0, 0xc, 0x7e,0x7f,0x38, +0xc8,0x79,0x37,0x0, 0x16,0x22,0x6d,0x33,0x79,0x30,0x0, 0x40,0x7e,0xf, 0x38,0xc8, +0x79,0x30,0x0, 0x42,0x7e,0x1f,0x38,0xc8,0x79,0x41,0x0, 0x16,0x22,0x7c,0x17,0x7c, +0x3b,0x6d,0x33,0x7e,0x2f,0x38,0xc8,0x79,0x32,0x0, 0x40,0x7e,0x2f,0x38,0xc8,0x79, +0x32,0x0, 0x42,0x7e,0x7f,0x38,0xc8,0x69,0x57,0x0, 0x12,0x7c,0xab,0x69,0x37,0x0, +0x2, 0x1e,0x34,0x1e,0x34,0x1e,0x34,0x1e,0x34,0x1e,0x34,0x1e,0x34,0x1e,0x34,0x5e, +0x34,0x0, 0x3, 0x7c,0xb7,0x7e,0x44,0x0, 0x4, 0x60,0x5, 0x3e,0x44,0x14,0x78,0xfb, +0x7c,0x29,0xa, 0x22,0xa, 0x3a,0x12,0x1e,0xb9,0xa, 0x23,0x2d,0x32,0x7c,0xb7,0x7c, +0x61,0x6c,0x77,0xa, 0xb, 0x1e,0x4, 0x2d,0x3, 0x79,0x7, 0x0, 0xc, 0x7c,0x73,0xac, +0x72,0xa, 0x2a,0x12,0x1e,0xb9,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x16,0x6d,0x33, +0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x22,0x22,0xa9,0xd6,0xcb,0x69,0x30,0x0, 0x6, +0x7e,0x2f,0x39,0xd, 0x79,0x32,0x0, 0x4, 0x69,0x30,0x0, 0x8, 0x7e,0x2f,0x39,0xd, +0x79,0x32,0x0, 0x8, 0x29,0x70,0x0, 0x2, 0x7c,0x47,0x6c,0x55,0x29,0x70,0x0, 0x3, +0xa, 0x37,0x2d,0x32,0x7e,0x2f,0x39,0xd, 0x79,0x32,0x0, 0xc, 0x7e,0xb, 0x70,0x7c, +0x47,0x29,0x70,0x0, 0x1, 0xa, 0x37,0x2d,0x32,0x7e,0x2f,0x39,0xd, 0x79,0x32,0x0, +0xa, 0x29,0x70,0x0, 0x4, 0xa, 0x37,0x7e,0x2f,0x39,0xd, 0x79,0x32,0x0, 0xe, 0x29, +0xb0,0x0, 0x5, 0x54,0x1, 0x7c,0x2b,0x6c,0x33,0x7e,0x1f,0x39,0xd, 0x1b,0x1a,0x10, +0x7e,0x34,0x0, 0xc0,0x12,0xf, 0x45,0xa9,0xc6,0xcb,0x22,0xca,0x79,0x7c,0xab,0x5e, +0xa0,0x3, 0x6c,0x77,0x7e,0x50,0x2, 0xac,0x57,0x69,0xd0,0x0, 0xe, 0x69,0xc0,0x0, +0xc, 0x2d,0xd2,0x29,0x66,0x0, 0x1, 0xa, 0xf6,0x7d,0x4f,0x7c,0x89,0x6c,0x99,0x7d, +0xf4,0x7e,0x6b,0x60,0xa, 0x46,0x2d,0x4f,0x7e,0xf0,0xf0,0xac,0xfa,0x2d,0x27,0x7e, +0x7f,0x38,0xf3,0x2d,0xf2,0x79,0x47,0x2, 0x54,0xb, 0x70,0xbe,0x70,0xe, 0x40,0xc4, +0x69,0x40,0x0, 0x4, 0x7e,0xf0,0xf0,0xac,0xfa,0x7e,0x1f,0x38,0xf3,0x2d,0x37,0x79, +0x41,0x2, 0x50,0x69,0x30,0x0, 0x6, 0x74,0xf0,0xa4,0x7e,0xf, 0x38,0xf3,0x2d,0x15, +0x79,0x30,0x2, 0x52,0xda,0x79,0x22,0xa9,0xd6,0xcb,0xc2,0x19,0x69,0x30,0x0, 0x4, +0x7e,0x2f,0x39,0xd, 0x79,0x32,0x0, 0x4, 0x69,0x30,0x0, 0x6, 0x7e,0x2f,0x39,0xd, +0x79,0x32,0x0, 0x6, 0x69,0x30,0x0, 0x8, 0x7e,0x2f,0x39,0xd, 0x79,0x32,0x0, 0x8, +0x7e,0xb, 0x70,0x7c,0x47,0x6c,0x55,0x29,0x70,0x0, 0x1, 0xa, 0x37,0x2d,0x32,0x7e, +0x2f,0x39,0xd, 0x79,0x32,0x0, 0xc, 0x29,0x70,0x0, 0x2, 0xa, 0x37,0x7e,0x2f,0x39, +0xd, 0x79,0x32,0x0, 0xe, 0x29,0xb0,0x0, 0x3, 0x54,0x1, 0xa, 0x5b,0x7c,0xab,0xe4, +0x7e,0x1f,0x39,0xd, 0x1b,0x1a,0x50,0x69,0x30,0x0, 0xa, 0x12,0xf, 0x45,0xa9,0xc6, +0xcb,0x22,0x69,0x30,0x0, 0xae,0x7e,0x2f,0x38,0xc8,0x79,0x32,0x0, 0x6, 0x29,0x50, +0x0, 0xa6,0xa, 0x55,0x7d,0x23,0x1e,0x24,0x9d,0x25,0x7e,0x2f,0x38,0xc8,0x79,0x22, +0x0, 0x18,0x7d,0x23,0x1e,0x24,0x1b,0x25,0x7e,0x2f,0x38,0xc8,0x79,0x22,0x0, 0x38, +0x69,0x20,0x0, 0xfd,0x1e,0x34,0x9d,0x32,0x9e,0x34,0x0, 0xa, 0x7e,0x2f,0x38,0xc8, +0x79,0x32,0x0, 0x26,0x29,0x70,0x0, 0xa7,0xa, 0x37,0x7e,0x2f,0x38,0xc8,0x79,0x32, +0x0, 0x1a,0x29,0x70,0x0, 0xb, 0xa, 0x27,0x29,0x70,0x0, 0x4, 0x2d,0x32,0x7e,0x2f, +0x38,0xc8,0x79,0x32,0x0, 0x8, 0x2, 0x9, 0xa1,0xca,0x3b,0xf5,0x24,0x7f,0x41,0x7f, +0x30,0xe5,0x25,0x7e,0x8, 0x0, 0x26,0x12,0x1, 0x20,0xe5,0x24,0xbe,0xb0,0x23,0x28, +0x3, 0x75,0x24,0x23,0x6c,0xaa,0x80,0x36,0xa, 0x3a,0x2d,0x39,0x7d,0x28,0x7e,0x1b, +0xb0,0xbe,0xb1,0x26,0x40,0xd, 0x74,0x23,0xa, 0x4a,0x7f,0x3, 0x2d,0x14,0x7a,0xb, +0xb0,0x80,0x19,0x7e,0x1b,0xb0,0xa, 0x3b,0x2e,0x35,0x28,0x7a,0x71,0x82,0x7a,0x61, +0x83,0xe4,0x93,0xa, 0x4a,0x7f,0x13,0x2d,0x34,0x7a,0x1b,0xb0,0xb, 0xa0,0xe5,0x24, +0xbc,0xba,0x38,0xc4,0xda,0x3b,0x22,0xa9,0xd6,0xcb,0x69,0x20,0x0, 0x4, 0x7e,0x2f, +0x39,0xd, 0x79,0x22,0x0, 0x4, 0x69,0x20,0x0, 0x8, 0x7e,0x2f,0x39,0xd, 0x79,0x22, +0x0, 0x8, 0x7e,0xb, 0x50,0xa, 0x55,0x7c,0xab,0xe4,0x29,0x50,0x0, 0x1, 0xa, 0x25, +0x2d,0x25,0x7e,0x2f,0x39,0xd, 0x79,0x22,0x0, 0xc, 0x29,0x50,0x0, 0x2, 0xa, 0x25, +0x7e,0xf, 0x39,0xd, 0x79,0x20,0x0, 0xe, 0x7e,0xf, 0x39,0xd, 0x79,0x30,0x0, 0xa, +0x6d,0x11,0x7e,0x1f,0x39,0xd, 0x1b,0x1a,0x10,0x7e,0x34,0x0, 0x40,0x12,0xf, 0x45, +0xa9,0xc6,0xcb,0x22,0x7c,0xab,0x7e,0x34,0x0, 0x1, 0x7e,0xf, 0x38,0xf7,0x79,0x30, +0x0, 0xe, 0xc2,0x18,0xe4,0x7a,0xb3,0x38,0xf2,0x5e,0xa0,0x3, 0xa, 0x1a,0x3e,0x14, +0x7e,0x1f,0x38,0xc0,0x1b,0x1a,0x10,0x7e,0xf, 0x38,0xc0,0x2e,0x14,0x0, 0x84,0xb, +0xa, 0x30,0x4e,0x70,0x20,0x1b,0xa, 0x30,0x74,0x1, 0x12,0x13,0x56,0x7e,0xf, 0x38, +0xf7,0xb, 0xa, 0x30,0x4e,0x70,0xc, 0x1b,0xa, 0x30,0xa9,0xd3,0xcd,0x7e,0xf, 0x38, +0xf7,0xb, 0x15,0xb, 0xa, 0x30,0x4e,0x70,0x1, 0x1b,0xa, 0x30,0x22,0x7f,0x10,0xa9, +0xd6,0xcb,0x69,0x11,0x0, 0x2, 0x7e,0x2f,0x39,0xd, 0x79,0x12,0x0, 0x4, 0x69,0x11, +0x0, 0x4, 0x7e,0x2f,0x39,0xd, 0x79,0x12,0x0, 0x6, 0x69,0x11,0x0, 0x6, 0x7e,0x2f, +0x39,0xd, 0x79,0x12,0x0, 0x8, 0x7e,0x1b,0x30,0xa, 0x3, 0x7e,0x14,0x1, 0x0, 0xad, +0x10,0x29,0x71,0x0, 0x1, 0xa, 0x37,0x2d,0x31,0x7e,0xf, 0x39,0xd, 0x79,0x30,0x0, +0xc, 0x6d,0x11,0x7e,0x1f,0x39,0xd, 0x1b,0x1a,0x10,0x7e,0x34,0x0, 0x60,0x12,0xf, +0x45,0xa9,0xc6,0xcb,0x22,0xa9,0xd7,0xcb,0x7d,0x23,0x4e,0x50,0x1, 0x7e,0xf, 0x39, +0xd, 0xb, 0xa, 0x30,0x4d,0x32,0x1b,0xa, 0x30,0x80,0x1e,0x7e,0xf, 0x39,0xd, 0xb, +0xa, 0x30,0x7d,0x23,0x5e,0x24,0x0, 0x8, 0xbe,0x24,0x0, 0x8, 0x78,0xb, 0xa9,0xd7, +0xcb,0x4e,0x70,0x4, 0x1b,0xa, 0x30,0xd2,0x19,0x7e,0xf, 0x39,0xd, 0xb, 0xa, 0x30, +0x7d,0x23,0x5e,0x24,0x80,0x0, 0xbe,0x24,0x80,0x0, 0x78,0xcf,0x4e,0x60,0x40,0x1b, +0xa, 0x30,0x6d,0x11,0x7e,0x1f,0x39,0xd, 0x1b,0x1a,0x10,0x22,0xca,0x3b,0xf5,0x24, +0x7f,0x41,0x7f,0x30,0xe5,0x25,0x7e,0x8, 0x0, 0x26,0x12,0x1, 0x20,0x6c,0xaa,0x80, +0x36,0xa, 0x3a,0x2d,0x39,0x7d,0x28,0x7e,0x1b,0xb0,0xbe,0xb1,0x27,0x40,0xd, 0x74, +0x1c,0xa, 0x4a,0x7f,0x3, 0x2d,0x14,0x7a,0xb, 0xb0,0x80,0x19,0x7e,0x1b,0xb0,0xa, +0x3b,0x2e,0x35,0x2a,0x7a,0x71,0x82,0x7a,0x61,0x83,0xe4,0x93,0xa, 0x4a,0x7f,0x13, +0x2d,0x34,0x7a,0x1b,0xb0,0xb, 0xa0,0xe5,0x24,0xbc,0xba,0x38,0xc4,0xda,0x3b,0x22, +0x5, 0x63,0x31,0x20,0x18,0x13,0xf, 0xd, 0xc, 0xa, 0x9, 0x8, 0x7, 0x6, 0x5, 0x4, +0xca,0xf8,0x7d,0xe2,0x7d,0xd3,0x7c,0xfb,0xbe,0x30,0x1, 0x28,0x6, 0x7e,0xf4,0x0, +0x10,0x80,0xf, 0xbe,0x30,0x0, 0x28,0x6, 0x7e,0xf4,0x0, 0x8, 0x80,0x4, 0x7e,0xf4, +0x0, 0x4, 0x7d,0x1f,0x6d,0x0, 0x6d,0x33,0x7e,0x24,0x0, 0x10,0x12,0x1f,0x58,0x7f, +0x1, 0x7d,0x3d,0x6d,0x22,0x12,0x1e,0xeb,0x7d,0x1e,0x12,0x1f,0x5, 0x74,0x4, 0xac, +0xbf,0x7e,0xf, 0x38,0xc8,0x2d,0x15,0x79,0x30,0x0, 0x82,0x79,0x20,0x0, 0x80,0xda, +0xf8,0x22,0xca,0x7b,0xca,0x6b,0xca,0x5b,0xca,0x4b,0xca,0x2b,0xca,0x1b,0xca,0xb, +0xc0,0xd0,0xc0,0x83,0xc0,0x82,0xd2,0x18,0x7e,0xf, 0x38,0xf7,0xb, 0xa, 0x30,0x7c, +0x57,0x7a,0x53,0x38,0xf2,0x4e,0x70,0xc, 0x1b,0xa, 0x30,0xc2,0xc6,0x6d,0x33,0x7e, +0xf, 0x38,0xf7,0x79,0x30,0x0, 0xe, 0x12,0x12,0x9e,0x12,0x7f,0x5, 0xd0,0x82,0xd0, +0x83,0xd0,0xd0,0xda,0xb, 0xda,0x1b,0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda, +0x7b,0x32,0x74,0x3, 0x12,0x13,0x56,0xa9,0xd1,0xc4,0x7e,0xf, 0x38,0xc0,0x2e,0x14, +0x0, 0x84,0xb, 0xa, 0x30,0x4e,0x70,0x20,0x1b,0xa, 0x30,0x7e,0x14,0x0, 0x1, 0x7e, +0x1f,0x38,0xc0,0x1b,0x1a,0x10,0x7e,0xf, 0x38,0xc8,0xb, 0x16,0xb, 0xa, 0x30,0x4e, +0x70,0x1, 0x1b,0xa, 0x30,0xc2,0xb, 0xe4,0x7a,0xb3,0x38,0xd8,0x7e,0x1f,0x38,0xc0, +0xb, 0x1a,0x30,0x5e,0x34,0x0, 0x1, 0x78,0xf3,0x74,0x2, 0x2, 0x13,0x56,0x7c,0x6b, +0x6c,0xaa,0x80,0x17,0x7e,0x90,0x2, 0xac,0x9a,0x7e,0x7f,0x38,0xf3,0x2d,0xf4,0xb, +0x7a,0x20,0x7f,0x70,0x2d,0xf4,0x1b,0x7a,0x20,0xb, 0xa0,0xbc,0x7a,0x38,0xe5,0x6c, +0xaa,0x80,0x20,0x7e,0x50,0x2, 0xac,0x5a,0x7e,0x7f,0x38,0xf3,0x2d,0xf2,0x69,0x27, +0x0, 0x38,0xa, 0xf7,0xa, 0x4a,0x2d,0x4f,0x3e,0x44,0x7f,0x70,0x2d,0xf4,0x1b,0x7a, +0x20,0xb, 0xa0,0xbc,0x6a,0x38,0xdc,0x22,0xca,0x79,0x7c,0xab,0x5e,0xa0,0x3, 0x6c, +0x77,0x7e,0x50,0x2, 0xac,0x57,0x7f,0x60,0x2d,0xd2,0x29,0x66,0x0, 0x1, 0xa, 0xf6, +0x7d,0x4f,0x7c,0x89,0x6c,0x99,0x7d,0xf4,0x7e,0x6b,0x60,0xa, 0x46,0x2d,0x4f,0x7e, +0xf0,0xf0,0xac,0xfa,0x2d,0x27,0x7e,0x7f,0x38,0xf3,0x2d,0xf2,0x79,0x47,0x2, 0x54, +0xb, 0x70,0xbe,0x70,0xe, 0x40,0xca,0xda,0x79,0x22,0x29,0x50,0x0, 0xf5,0xac,0x5b, +0x7e,0xf, 0x38,0xc8,0x69,0x30,0x0, 0xc, 0xa, 0x56,0x3e,0x54,0xbe,0x24,0x2, 0x0, +0x40,0x4, 0x7e,0x24,0x1, 0xff,0xbd,0x25,0x28,0x1f,0x2e,0x14,0x0, 0xc, 0x6c,0x66, +0x1b,0xa, 0x30,0x1e,0x24,0x7c,0x45,0x6c,0x55,0x7e,0xf, 0x38,0xc8,0x2e,0x14,0x0, +0xc, 0xb, 0xa, 0x30,0x4d,0x32,0x1b,0xa, 0x30,0x22,0x7c,0x6b,0x6c,0xaa,0x7e,0x50, +0x28,0xac,0x57,0x7e,0x90,0x2, 0xac,0x9a,0x2d,0x42,0x7e,0x50,0xf0,0xac,0x56,0x2d, +0x24,0x7e,0x7f,0x38,0xf3,0x2d,0xf2,0x69,0x27,0x1, 0x8c,0x6c,0x44,0xa, 0x4a,0x7f, +0x60,0x2d,0xd4,0x7e,0x6b,0xb0,0x7c,0x8b,0x6c,0x99,0x4d,0x24,0x79,0x27,0x1, 0x8c, +0xb, 0xa0,0xbe,0xa0,0xe, 0x40,0xc7,0x22,0x7c,0x6b,0x6c,0xaa,0x7e,0x50,0x28,0xac, +0x57,0x7e,0x90,0x2, 0xac,0x9a,0x2d,0x42,0x7e,0x50,0xf0,0xac,0x56,0x2d,0x24,0x7e, +0x7f,0x38,0xf3,0x2d,0xf2,0x69,0x27,0x1, 0x8c,0x6c,0x55,0xa, 0x4a,0x7f,0x60,0x2d, +0xd4,0x7e,0x6b,0xb0,0xa, 0x4b,0x4d,0x24,0x79,0x27,0x1, 0x8c,0xb, 0xa0,0xbe,0xa0, +0xe, 0x40,0xc9,0x22,0xa9,0xd6,0xcb,0x54,0x3f,0x5e,0x70,0x1f,0x7c,0x2b,0x6c,0x33, +0x3e,0x14,0x3e,0x14,0x2e,0x14,0x0, 0x5, 0xa, 0x37,0x3e,0x34,0x3e,0x34,0x3e,0x34, +0x3e,0x34,0x3e,0x34,0x2d,0x31,0x7e,0xf, 0x39,0xd, 0x79,0x30,0x0, 0x2, 0x7e,0xf, +0x39,0xd, 0x79,0x20,0x0, 0x14,0xa9,0xc6,0xcb,0x22,0x7d,0x23,0x6c,0x66,0x7e,0x30, +0x2, 0xac,0x36,0x2e,0x14,0x20,0x8f,0x7a,0x31,0x82,0x7a,0x21,0x83,0xe4,0x93,0xa, +0x1b,0xbd,0x12,0x28,0x7, 0xb, 0x60,0xbe,0x60,0x14,0x40,0xe2,0x7e,0x70,0x2, 0xac, +0x67,0x2e,0x34,0x20,0x90,0x7a,0x71,0x82,0x7a,0x61,0x83,0xe4,0x93,0x22,0x7e,0xf, +0x38,0xc0,0x2e,0x14,0x0, 0x84,0xb, 0xa, 0x30,0x5e,0x70,0xdf,0x1b,0xa, 0x30,0x74, +0x3, 0x12,0x13,0x56,0x7e,0x14,0x0, 0x3, 0x7e,0x1f,0x38,0xc0,0x1b,0x1a,0x10,0x7e, +0x1f,0x38,0xc0,0xb, 0x1a,0x30,0x5e,0x34,0x0, 0x1, 0x78,0xf3,0xe4,0x2, 0x13,0x56, +0x2e,0x34,0x4, 0x0, 0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x60,0x7e,0x34,0x4, 0x0, +0x9d,0x32,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x62,0x7e,0x34,0x0, 0x1, 0x7e,0xf, +0x38,0xc8,0x79,0x30,0x0, 0x64,0xa, 0x3b,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x66, +0x22,0x7c,0xa5,0xbe,0x34,0x0, 0x0, 0x28,0x10,0xa, 0x1b,0x3e,0x14,0x7d,0x23,0x7c, +0x45,0x6c,0x55,0x2d,0x21,0xa, 0x3a,0x80,0x8, 0xa, 0x2b,0x3e,0x24,0x7c,0x67,0x6c, +0x77,0x2d,0x32,0x7e,0xf, 0x38,0xf7,0x79,0x30,0x0, 0x4, 0x22,0x7c,0xa7,0x7e,0x1f, +0x38,0xc0,0x69,0x41,0x0, 0x8a,0x5e,0x44,0x10,0xf, 0xa, 0x1a,0x3e,0x14,0x3e,0x14, +0x3e,0x14,0x3e,0x14,0xa, 0x5b,0xc4,0x23,0x54,0xe0,0x7c,0xab,0xe4,0x2d,0x51,0x4d, +0x45,0x79,0x41,0x0, 0x8a,0x22,0x7e,0xf, 0x38,0xc0,0x69,0x30,0x0, 0x84,0x5e,0x70, +0xe7,0x1b,0xb1,0x68,0xc, 0x14,0x68,0xc, 0xb, 0xb1,0x78,0x5, 0x4e,0x70,0x10,0x80, +0x3, 0x4e,0x70,0x8, 0x79,0x30,0x0, 0x84,0x22,0x7e,0x34,0x0, 0x1f,0x7e,0xf, 0x38, +0xc8,0x79,0x30,0x0, 0x4, 0xa9,0xd2,0xcd,0x7e,0xf, 0x38,0xc8,0xb, 0xa, 0x30,0x4e, +0x70,0x1, 0x1b,0xa, 0x30,0x22,0xbe,0xb0,0x0, 0x28,0xa, 0xa9,0xd7,0xca,0xa9,0xd3, +0xcb,0xa9,0xd2,0xcb,0x22,0xa9,0xc7,0xca,0xa9,0xc3,0xcb,0xa9,0xc2,0xcb,0x22,0x30, +0x4, 0xa, 0x54,0x3, 0xa, 0x3b,0x2e,0x34,0x2, 0x0, 0x80,0x2, 0x6d,0x33,0x7e,0xf, +0x38,0xc8,0x79,0x30,0x0, 0x3a,0x22,0x7e,0xf, 0x38,0xc0,0x69,0x30,0x0, 0x8a,0x60, +0x5, 0x4e,0x60,0x10,0x80,0x3, 0x5e,0x60,0xef,0x79,0x30,0x0, 0x8a,0x22,0xbe,0xb0, +0x0, 0x28,0x9, 0xa9,0xd6,0xca,0xd2,0xcd,0xa9,0xd1,0xcb,0x22,0xa9,0xc6,0xca,0xc2, +0xcd,0xa9,0xc1,0xcb,0x22,0x7e,0x34,0x0, 0xf, 0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, +0x4, 0xc2,0xc3,0xd2,0xeb,0x22,0x6, 0xe, 0x15,0x1a,0x1f,0x26,0x2b,0x2d,0x2e,0x2f, +0x2c,0x2a,0x24,0x1f,0x1a,0x14,0xf, 0x8, 0x3, 0x3, 0x6, 0xb, 0x10,0x15,0x1c,0x22, +0x28,0x2d,0x34,0x39,0x3d,0x40,0xe, 0x3, 0x0, 0x0, 0x0, 0x3, 0x8, 0xc, 0x11,0x16, +0x1c,0x23,0x2b,0x32,0x37,0x3c,0x40,0x45,0x4a,0x4d,0x4c,0x4b,0x4a,0x48,0x46,0x46, +0x45,0x45,0x44,0x44,0x43,0x44,0x45,0x78,0x65,0x55,0x2, 0xd, 0x14,0x1b,0x21,0x25, +0x2b,0x31,0x37,0x36,0x33,0x2d,0x28,0x20,0x19,0x14,0xd, 0x8, 0x1, 0x2, 0x5, 0xb, +0x10,0x18,0x1e,0x23,0x2a,0x30,0x35,0x3a,0x3e,0x3f,0x0, 0x1, 0x1, 0x0, 0x0, 0x0, +0x0, 0x0, 0x1, 0x4, 0x9, 0xf, 0x15,0x1d,0x24,0x2a,0x30,0x35,0x3b,0x3e,0x3f,0x40, +0x3f,0x3e,0x3d,0x3d,0x3c,0x3c,0x3b,0x3b,0x39,0x37,0x1a,0x2d,0x65,0x55,0x1b,0x29, +0x27,0x1e,0x14,0x11,0x1a,0x26,0x2e,0x37,0x3d,0x3f,0x3d,0x37,0x2e,0x21,0x16,0xc, +0x5, 0x1, 0x0, 0x0, 0x1, 0x3, 0xa, 0x13,0x1d,0x26,0x2e,0x33,0x38,0x3a,0x16,0x21, +0x2b,0x32,0x30,0x2a,0x27,0x2a,0x2f,0x2d,0x24,0x1a,0x10,0x7, 0x1, 0x0, 0x2, 0x7, +0x10,0x19,0x23,0x2d,0x36,0x41,0x49,0x4c,0x4a,0x45,0x3c,0x34,0x2a,0x27,0x51,0x71, +0x50,0x55,0x28,0x12,0x11,0x18,0x23,0x29,0x2b,0x2a,0x2e,0x35,0x3c,0x3e,0x3f,0x39, +0x31,0x28,0x1e,0x15,0xe, 0x6, 0x3, 0x1, 0x0, 0x0, 0x3, 0xc, 0x16,0x20,0x2b,0x32, +0x37,0x39,0x20,0x29,0x32,0x37,0x31,0x28,0x21,0x2a,0x31,0x2d,0x23,0x1b,0x13,0x8, +0x1, 0x0, 0x1, 0x5, 0xc, 0x18,0x20,0x29,0x34,0x3e,0x47,0x4f,0x50,0x4d,0x45,0x3c, +0x34,0x31,0x26,0xcb,0x50,0x55,0x1d,0x2f,0x2c,0x25,0x1a,0x1b,0x20,0x29,0x31,0x31, +0x2e,0x2d,0x35,0x3d,0x3f,0x3d,0x38,0x2c,0x22,0x15,0xd, 0x6, 0x1, 0x0, 0x1, 0x6, +0x10,0x1b,0x24,0x2f,0x38,0x3d,0xd, 0x1b,0x27,0x31,0x32,0x28,0x1e,0x14,0x15,0x1d, +0x28,0x31,0x34,0x2a,0x1f,0x14,0x9, 0x1, 0x0, 0x4, 0xd, 0x17,0x21,0x2c,0x35,0x40, +0x47,0x47,0x44,0x3c,0x34,0x30,0x1b,0x82,0x50,0x55,0x19,0x2e,0x2a,0x1f,0x18,0x1b, +0x22,0x2d,0x30,0x2e,0x2e,0x35,0x3d,0x3f,0x3d,0x3a,0x2f,0x24,0x18,0xf, 0x7, 0x1, +0x0, 0x0, 0x3, 0xb, 0x16,0x1e,0x29,0x32,0x3a,0x3d,0x11,0x1f,0x28,0x32,0x30,0x26, +0x1b,0x14,0x1c,0x25,0x2e,0x35,0x2e,0x23,0x19,0x11,0x4, 0x0, 0x1, 0x8, 0x10,0x1c, +0x25,0x30,0x38,0x40,0x42,0x3f,0x39,0x32,0x2c,0x27,0xc0,0xd1,0x50,0x55,0x18,0x2c, +0x29,0x1e,0x14,0x13,0x16,0x1e,0x29,0x30,0x2e,0x2c,0x2b,0x37,0x3d,0x3f,0x3e,0x39, +0x30,0x25,0x1b,0x10,0x8, 0x1, 0x0, 0x2, 0x9, 0x13,0x1f,0x2d,0x38,0x3c,0x11,0x1a, +0x23,0x2f,0x33,0x29,0x20,0x16,0xe, 0x13,0x1d,0x28,0x32,0x31,0x28,0x1e,0x16,0xb, +0x2, 0x0, 0x1, 0x8, 0x12,0x1e,0x29,0x33,0x3b,0x3f,0x3c,0x32,0x29,0x26,0x30,0x6e, +0x50,0x55,0x16,0x2b,0x24,0x17,0xd, 0xa, 0xe, 0x15,0x24,0x28,0x25,0x23,0x2b,0x36, +0x3b,0x3d,0x3b,0x37,0x2b,0x20,0x15,0xb, 0x4, 0x0, 0x0, 0x3, 0xe, 0x19,0x27,0x33, +0x3d,0x3f,0x13,0x21,0x2e,0x37,0x3a,0x31,0x27,0x1c,0x13,0x1c,0x28,0x34,0x3e,0x37, +0x2d,0x22,0x18,0xc, 0x1, 0x0, 0x3, 0xd, 0x18,0x25,0x31,0x3c,0x47,0x48,0x42,0x38, +0x2e,0x2a,0x31,0x62,0x50,0x55,0x35,0x2e,0x27,0x22,0x1f,0x1b,0x16,0x10,0xc, 0x8, +0x6, 0x4, 0x2, 0x0, 0x0, 0x0, 0x1, 0x3, 0x6, 0xb, 0xe, 0x12,0x17,0x1d,0x22,0x26, +0x2a,0x30,0x35,0x39,0x3d,0x3f,0x0, 0x0, 0x1, 0x4, 0x6, 0x8, 0xb, 0x10,0x16,0x1b, +0x1f,0x23,0x28,0x2d,0x32,0x36,0x3b,0x40,0x44,0x48,0x4a,0x4b,0x4c,0x4b,0x4a,0x48, +0x46,0x43,0x40,0x3e,0x3c,0x3a,0x3c,0x9c,0x34,0x55,0x9, 0x17,0x1d,0x26,0x2e,0x37, +0x3c,0x3f,0x3b,0x33,0x2b,0x22,0x1a,0x11,0xb, 0x5, 0x3, 0x1, 0x1, 0x0, 0x0, 0x0, +0x1, 0x6, 0xa, 0x11,0x19,0x22,0x2a,0x32,0x39,0x3d,0x30,0x30,0x2f,0x2c,0x26,0x1e, +0x17,0xd, 0x5, 0x0, 0x0, 0x1, 0x6, 0xe, 0x15,0x1e,0x26,0x2c,0x32,0x3a,0x41,0x48, +0x50,0x5b,0x61,0x64,0x64,0x60,0x5b,0x56,0x51,0x4f,0xd8,0x2c,0x33,0x55,0x26,0x1c, +0x19,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x17,0x17,0x15,0xf, 0x9, 0x4, 0x1, 0x0, +0x0, 0x0, 0x0, 0x1, 0x4, 0xb, 0x12,0x18,0x1f,0x28,0x31,0x37,0x3c,0x40,0x1, 0x7, +0xe, 0x14,0x1c,0x23,0x2c,0x34,0x3e,0x44,0x4c,0x54,0x5b,0x60,0x5d,0x55,0x4f,0x49, +0x43,0x3d,0x38,0x32,0x2b,0x26,0x22,0x1f,0x1e,0x1c,0x1c,0x1c,0x1c,0x1d,0x66,0x54, +0x74,0x55,0x3e,0x2c,0x21,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d, +0x1e,0x1e,0x1d,0x1a,0x11,0xc, 0x7, 0x2, 0x0, 0x0, 0x3, 0xa, 0x12,0x1c,0x23,0x2c, +0x38,0x40,0xc, 0x0, 0x6, 0xf, 0x17,0x22,0x29,0x32,0x3b,0x41,0x47,0x4f,0x55,0x5c, +0x66,0x71,0x79,0x3e,0x76,0x6d,0x64,0x5a,0x52,0x4b,0x42,0x39,0x35,0x33,0x32,0x32, +0x31,0x31,0xf3,0xdb,0x74,0x55,0x9, 0x7, 0x6, 0x6, 0x5, 0x5, 0x4, 0x4, 0x4, 0x4, +0x3, 0x2, 0x2, 0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xa, 0x10,0x14,0x1b,0x22, +0x28,0x2e,0x34,0x39,0x3d,0x40,0x0, 0xb, 0x11,0x16,0x1b,0x22,0x28,0x2c,0x33,0x39, +0x40,0x46,0x4d,0x52,0x56,0x5c,0x61,0x68,0x6d,0x73,0x73,0x71,0x71,0x71,0x70,0x70, +0x6f,0x6f,0x6f,0x6f,0x6d,0x6e,0x79,0x80,0x44,0x55,0x17,0x13,0x12,0x12,0x11,0x10, +0xf, 0xd, 0xc, 0xb, 0x9, 0x8, 0x7, 0x4, 0x3, 0x2, 0x1, 0x0, 0x0, 0x0, 0x1, 0x4, +0xb, 0x10,0x16,0x1d,0x24,0x29,0x31,0x39,0x3d,0x40,0x0, 0xe, 0x16,0x1a,0x1f,0x24, +0x29,0x2e,0x33,0x38,0x3e,0x43,0x47,0x50,0x55,0x59,0x62,0x69,0x6e,0x75,0x7c,0xff, +0x7d,0x7c,0x79,0x73,0x6d,0x68,0x60,0x5a,0x57,0x56,0x5d,0x8, 0x44,0x55,0x0, 0x7, +0xb, 0xd, 0x10,0x12,0x16,0x17,0x17,0x18,0x18,0x19,0x19,0x19,0x1c,0x1e,0x20,0x22, +0x23,0x25,0x27,0x29,0x2b,0x30,0x32,0x33,0x35,0x38,0x39,0x3b,0x3d,0x3f,0x3e,0x29, +0x1f,0x18,0xf, 0x7, 0x6, 0xc, 0x12,0x1d,0x25,0x2d,0x36,0x3e,0x3b,0x35,0x2c,0x26, +0x20,0x19,0x11,0xa, 0x3, 0x3, 0x9, 0x10,0x18,0x24,0x2c,0x33,0x3a,0x3e,0x60,0x9b, +0x32,0x55,0x0, 0x5, 0x5, 0x5, 0x4, 0x3, 0x2, 0x3, 0x5, 0x7, 0xa, 0xe, 0x11,0x19, +0x1b,0x1c,0x1d,0x1c,0x1c,0x1d,0x1f,0x22,0x25,0x2a,0x31,0x33,0x35,0x37,0x38,0x39, +0x3c,0x40,0x0, 0x12,0x1c,0x24,0x2b,0x34,0x3c,0x39,0x2f,0x29,0x21,0x16,0xf, 0xd, +0x14,0x1e,0x2a,0x33,0x31,0x27,0x20,0x18,0x10,0x7, 0xa, 0x10,0x1a,0x26,0x2f,0x37, +0x3d,0x3f,0xfb,0x8f,0x32,0x55,0x2c,0x23,0x1f,0x19,0x13,0xc, 0x7, 0x3, 0x0, 0x0, +0x0, 0x1, 0x5, 0xa, 0xf, 0x16,0x1d,0x23,0x2a,0x30,0x36,0x3b,0x3e,0x40,0x3f,0x3e, +0x3b,0x38,0x33,0x2f,0x2b,0x28,0x9, 0x1, 0x0, 0x1, 0x3, 0x9, 0xe, 0x14,0x1b,0x21, +0x27,0x2e,0x36,0x3b,0x3e,0x41,0x41,0x40,0x3d,0x3a,0x36,0x2f,0x2b,0x26,0x20,0x1c, +0x16,0x10,0xc, 0xa, 0x9, 0xb, 0x36,0xdc,0x30,0x55,0x1a,0x9, 0x5, 0x1, 0x0, 0x0, +0x0, 0x2, 0x5, 0x9, 0xf, 0x16,0x1c,0x22,0x2a,0x31,0x36,0x39,0x3c,0x3e,0x3f,0x3f, +0x3d,0x38,0x30,0x27,0x1f,0x18,0x12,0xb, 0x6, 0x5, 0x7, 0x12,0x19,0x22,0x2c,0x36, +0x3f,0x49,0x53,0x5c,0x63,0x66,0x64,0x5f,0x58,0x4c,0x43,0x3d,0x34,0x2b,0x22,0x1b, +0x15,0xb, 0x4, 0x0, 0x0, 0x1, 0x4, 0xb, 0x13,0x18,0xf1,0xc, 0x30,0x55,0x18,0x2c, +0x34,0x39,0x3c,0x3d,0x3f,0x3f,0x3f,0x3d,0x3b,0x36,0x30,0x2a,0x24,0x1c,0x16,0xd, +0x6, 0x1, 0x0, 0x0, 0x0, 0x1, 0x1, 0x3, 0x5, 0x9, 0xf, 0x17,0x1e,0x24,0x1, 0x2, +0x8, 0xe, 0x14,0x1a,0x21,0x28,0x30,0x37,0x40,0x49,0x50,0x55,0x59,0x5c,0x5c,0x58, +0x51,0x48,0x3f,0x38,0x31,0x2b,0x25,0x1d,0x17,0x11,0xa, 0x4, 0x1, 0x1, 0x9d,0xbf, +0x30,0x55,0x16,0x7, 0x2, 0x0, 0x0, 0x0, 0x0, 0x1, 0x4, 0x8, 0xe, 0x16,0x1f,0x28, +0x30,0x38,0x3c,0x3e,0x3f,0x40,0x3f,0x3f,0x3d,0x3b,0x37,0x32,0x2c,0x25,0x1d,0x16, +0xf, 0xc, 0x53,0x46,0x3e,0x35,0x2e,0x27,0x20,0x1a,0x14,0xd, 0x6, 0x1, 0x0, 0x0, +0x3, 0xa, 0x13,0x1a,0x20,0x27,0x2d,0x33,0x3a,0x40,0x48,0x4f,0x54,0x58,0x5a,0x5a, +0x58,0x57,0xc6,0x55,0x30,0x55,0x7, 0x1, 0x4, 0xa, 0x10,0x18,0x20,0x2a,0x32,0x38, +0x3c,0x3e,0x3f,0x3e,0x3d,0x3b,0x39,0x35,0x30,0x27,0x21,0x19,0x12,0xb, 0x6, 0x3, +0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x32,0x1d,0x12,0x9, 0x5, 0x1, 0x0, 0x0, 0x1, 0x5, +0xd, 0x17,0x20,0x2a,0x32,0x3b,0x45,0x4e,0x58,0x63,0x69,0x6b,0x6a,0x64,0x5d,0x57, +0x4f,0x47,0x40,0x38,0x32,0x2f,0x1a,0xb5,0x30,0x55,0x21,0x13,0xc, 0x8, 0x5, 0x2, +0x1, 0x0, 0x0, 0x1, 0x3, 0x8, 0xf, 0x17,0x1e,0x24,0x2b,0x32,0x39,0x3d,0x3e,0x3f, +0x3f,0x3d,0x3a,0x36,0x30,0x29,0x21,0x1a,0x16,0x13,0x5, 0x9, 0xe, 0x14,0x1a,0x22, +0x29,0x30,0x38,0x3f,0x47,0x4d,0x51,0x51,0x4f,0x4d,0x49,0x42,0x39,0x31,0x2b,0x25, +0x1e,0x17,0x10,0x8, 0x3, 0x0, 0x0, 0x1, 0x3, 0x5, 0xaf,0x13,0x30,0x55,0x38,0x3f, +0x3d,0x3a,0x36,0x2e,0x26,0x1f,0x14,0xb, 0x6, 0x2, 0x0, 0x0, 0x0, 0x1, 0x2, 0x5, +0x9, 0xe, 0x14,0x1c,0x23,0x2a,0x34,0x38,0x3a,0x3b,0x3d,0x3d,0x3d,0x3d,0x29,0x1a, +0x10,0x9, 0x4, 0x0, 0x0, 0x1, 0x4, 0xc, 0x14,0x1c,0x22,0x28,0x2f,0x37,0x3f,0x47, +0x4f,0x56,0x5a,0x5b,0x59,0x56,0x4e,0x47,0x40,0x37,0x30,0x28,0x22,0x1f,0x2a,0xa9, +0x30,0x55,0x3e,0x3b,0x38,0x33,0x2b,0x24,0x1d,0x16,0x10,0x7, 0x3, 0x1, 0x0, 0x0, +0x0, 0x1, 0x1, 0x3, 0x6, 0xc, 0x15,0x1c,0x23,0x29,0x2f,0x35,0x38,0x3b,0x3c,0x3e, +0x3f,0x3f,0x1f,0x10,0xa, 0x6, 0x0, 0x0, 0x0, 0x2, 0x4, 0xc, 0x12,0x18,0x1e,0x25, +0x2c,0x35,0x3c,0x42,0x4a,0x51,0x56,0x56,0x53,0x4e,0x49,0x40,0x3a,0x33,0x2c,0x25, +0x1f,0x1c,0xf9,0xa2,0x30,0x55,0x1f,0x2b,0x31,0x35,0x38,0x3b,0x3e,0x3f,0x3f,0x3d, +0x3a,0x34,0x2d,0x27,0x23,0x1d,0x17,0x10,0x9, 0x4, 0x1, 0x0, 0x0, 0x1, 0x3, 0x6, +0xa, 0xf, 0x15,0x1b,0x20,0x23,0x45,0x42,0x3e,0x38,0x34,0x2d,0x24,0x1c,0x15,0x11, +0xb, 0x6, 0x2, 0x0, 0x0, 0x0, 0x1, 0x3, 0x7, 0xd, 0x12,0x18,0x20,0x28,0x30,0x36, +0x3c,0x42,0x47,0x48,0x49,0x4a,0x65,0x9d,0x30,0x55,0x1c,0x2a,0x33,0x39,0x3c,0x3e, +0x3f,0x3f,0x3e,0x3d,0x3a,0x35,0x2e,0x28,0x23,0x1c,0x15,0xf, 0x9, 0x4, 0x1, 0x0, +0x0, 0x1, 0x1, 0x4, 0x8, 0xd, 0x13,0x19,0x1e,0x22,0x40,0x3e,0x3a,0x33,0x2f,0x29, +0x22,0x1b,0x15,0x10,0xa, 0x5, 0x1, 0x0, 0x0, 0x1, 0x2, 0x5, 0xa, 0x11,0x17,0x1c, +0x24,0x2a,0x30,0x35,0x3b,0x40,0x43,0x44,0x45,0x45,0xcb,0xc6,0x30,0x55,0x5, 0x3, +0x4, 0x7, 0xa, 0x10,0x17,0x21,0x28,0x2e,0x33,0x38,0x3c,0x3e,0x3f,0x3f,0x3e,0x3b, +0x38,0x31,0x29,0x21,0x18,0xf, 0x9, 0x4, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x26,0x35, +0x3d,0x45,0x4b,0x51,0x53,0x52,0x4f,0x4c,0x46,0x41,0x3b,0x34,0x2e,0x25,0x1e,0x17, +0x11,0x9, 0x3, 0x0, 0x0, 0x2, 0x6, 0xc, 0x12,0x18,0x1e,0x24,0x2c,0x31,0xf4,0xb6, +0x30,0x55,0xa, 0x5, 0x5, 0x5, 0x8, 0xf, 0x16,0x20,0x29,0x31,0x36,0x3a,0x3c,0x3e, +0x3f,0x3f,0x3e,0x3c,0x3a,0x33,0x2d,0x24,0x1c,0x14,0xf, 0x8, 0x4, 0x0, 0x0, 0x0, +0x1, 0x2, 0x35,0x46,0x4e,0x56,0x5d,0x65,0x68,0x66,0x60,0x57,0x4f,0x47,0x3f,0x37, +0x2e,0x25,0x1e,0x16,0x10,0x6, 0x2, 0x0, 0x1, 0x5, 0xb, 0x15,0x1d,0x28,0x2f,0x39, +0x41,0x45,0xf0,0xbc,0x30,0x55,0x7, 0x3, 0x3, 0x3, 0x4, 0x7, 0xf, 0x17,0x20,0x28, +0x30,0x36,0x3b,0x3d,0x3f,0x3f,0x3d,0x39,0x36,0x2d,0x25,0x1d,0x16,0xd, 0x8, 0x2, +0x0, 0x0, 0x1, 0x2, 0x3, 0x5, 0x2e,0x3f,0x48,0x50,0x59,0x5f,0x67,0x68,0x63,0x5d, +0x52,0x4a,0x3e,0x35,0x2b,0x20,0x18,0x10,0xa, 0x3, 0x0, 0x0, 0x1, 0x7, 0xe, 0x19, +0x22,0x2b,0x31,0x3a,0x42,0x47,0xef,0xc9,0x30,0x55,0x3b,0x3c,0x3c,0x3b,0x39,0x36, +0x2f,0x27,0x21,0x19,0x11,0xb, 0x5, 0x1, 0x0, 0x0, 0x1, 0x2, 0x4, 0x6, 0xa, 0x10, +0x16,0x1f,0x26,0x2d,0x33,0x39,0x3c,0x3e,0x3f,0x3f,0x22,0x31,0x3b,0x41,0x47,0x4d, +0x56,0x59,0x5a,0x58,0x55,0x51,0x4b,0x43,0x3d,0x35,0x29,0x20,0x18,0x11,0x9, 0x3, +0x0, 0x0, 0x1, 0x3, 0x7, 0xf, 0x15,0x1b,0x21,0x26,0x2b,0xa0,0x30,0x55,0x37,0x38, +0x37,0x34,0x2d,0x26,0x1c,0x16,0xe, 0x9, 0x4, 0x2, 0x0, 0x0, 0x0, 0x1, 0x2, 0x5, +0xa, 0x10,0x17,0x20,0x26,0x2e,0x35,0x3a,0x3c,0x3e,0x3f,0x3f,0x3e,0x3e,0x30,0x40, +0x49,0x50,0x59,0x5e,0x60,0x5d,0x56,0x50,0x47,0x41,0x39,0x33,0x2a,0x20,0x1a,0x10, +0xa, 0x5, 0x1, 0x0, 0x0, 0x3, 0x8, 0x10,0x17,0x1f,0x25,0x2f,0x38,0x3c,0x37,0xc3, +0x30,0x55,0x3b,0x3d,0x3d,0x3b,0x38,0x32,0x27,0x1c,0x13,0xe, 0x8, 0x3, 0x0, 0x0, +0x0, 0x1, 0x3, 0x7, 0xb, 0x12,0x18,0x20,0x28,0x31,0x39,0x3d,0x3f,0x40,0x3f,0x3f, +0x3e,0x3e,0x33,0x45,0x4e,0x57,0x5d,0x65,0x6c,0x6a,0x66,0x63,0x5c,0x53,0x4a,0x40, +0x38,0x2e,0x25,0x1a,0x11,0x8, 0x4, 0x0, 0x0, 0x2, 0x9, 0x10,0x19,0x21,0x2a,0x32, +0x39,0x3e,0x7, 0x90,0x30,0x55,0x39,0x2b,0x24,0x1c,0x15,0xe, 0x9, 0x6, 0x5, 0x6, +0x9, 0x10,0x19,0x22,0x27,0x2e,0x35,0x3b,0x3e,0x3f,0x3d,0x38,0x32,0x2c,0x26,0x1f, +0x19,0x13,0xb, 0x5, 0x1, 0x0, 0x6, 0x0, 0x1, 0x2, 0x6, 0xb, 0x11,0x17,0x1d,0x24, +0x2a,0x2f,0x32,0x34,0x35,0x36,0x37,0x3b,0x41,0x47,0x4e,0x56,0x5d,0x61,0x64,0x65, +0x65,0x63,0x60,0x5c,0x57,0x54,0xd1,0x4a,0x46,0x55,0x0, 0x1, 0x3, 0x5, 0x7, 0x8, +0xa, 0xb, 0xc, 0xe, 0xf, 0x11,0x12,0x14,0x16,0x1a,0x1e,0x22,0x24,0x27,0x2a,0x2c, +0x2e,0x31,0x33,0x36,0x38,0x3a,0x3c,0x3e,0x3f,0x3f,0x1, 0xe, 0x14,0x1b,0x23,0x28, +0x2e,0x35,0x3a,0x40,0x48,0x4f,0x56,0x5d,0x62,0x61,0x5a,0x53,0x4e,0x47,0x40,0x3b, +0x35,0x2d,0x29,0x22,0x1b,0x17,0x10,0x9, 0x5, 0x1, 0x6d,0x7d,0x54,0x55,0x0, 0x2, +0x3, 0x5, 0x6, 0x8, 0xb, 0x10,0x13,0x16,0x17,0x19,0x1b,0x1d,0x1f,0x21,0x22,0x22, +0x22,0x22,0x23,0x25,0x28,0x2e,0x31,0x34,0x36,0x38,0x3a,0x3c,0x3e,0x3f,0x6, 0x17, +0x20,0x27,0x30,0x38,0x3e,0x39,0x32,0x2b,0x25,0x1e,0x18,0x10,0x9, 0x9, 0x10,0x18, +0x1f,0x26,0x2f,0x36,0x3c,0x38,0x2f,0x27,0x1f,0x18,0xf, 0x8, 0x1, 0x2, 0xc7,0x75, +0x31,0x55,0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x3, 0x8, 0xd, 0x12,0x15,0x17,0x18,0x1a, +0x1b,0x1c,0x1d,0x1d,0x1e,0x1f,0x22,0x27,0x2e,0x35,0x38,0x3b,0x3d,0x3e,0x3f,0x40, +0x3f,0x3e,0x6, 0x15,0x1b,0x23,0x29,0x2f,0x37,0x3c,0x37,0x2e,0x27,0x20,0x1a,0x13, +0xe, 0x14,0x1a,0x21,0x27,0x2f,0x38,0x3f,0x3d,0x35,0x2e,0x26,0x20,0x18,0x11,0xb, +0x3, 0x0, 0x67,0x3f,0x31,0x55,0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, +0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0x10,0x11,0x12,0x13,0x14,0x1c,0x1d,0x1e,0x1f,0x20, +0x21,0x22,0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0x10,0x11, +0x12,0x13,0x14,0x15,0x16,0x17,0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0xe, +0xf, 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x0, 0x1, 0x2, 0x3, 0x4, 0x1c,0x1d,0x1e, +0x1f,0x20,0x0, 0x1, 0x2, 0x3, 0xe, 0xf, 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, +0x18,0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0x10,0x11, +0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x6, 0x5, 0x4, 0x3, 0x2, 0x1, +0x0, 0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x0, 0x0, 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, +0x7, 0x8, 0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, +0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0x10,0x11,0x12,0x13,0x14,0x15,0x16, +0x17,0x18,0x19,0x1a,0x1b,0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, +0xb, 0xc, 0xd, 0xe, 0xf, 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a, +0x1b,0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,0x0, 0x1, 0x1, 0x1, 0x10,0x1c,0x2, 0x10, +0x1c,0x0, 0x1, 0x1, 0x4, 0xf, 0x1c,0x0, 0x1, 0x1, 0x6, 0x1b,0xf, 0x7, 0xe, 0x1c, +0x8, 0x23,0x15,0x0, 0x1, 0x1, 0xa, 0x10,0x19,0xb, 0x14,0x1c,0xc, 0xf, 0x18,0x0, +0x1, 0x1, 0xe, 0x23,0x15,0xf, 0xd, 0x19,0x0, 0x1, 0x1, 0x11,0xd, 0x14,0x12,0x10, +0x19,0x13,0x1c,0x10,0x14,0x1a,0x10,0x15,0x10,0x19,0x16,0x23,0x1c,0x72,0x23,0x15, +0x73,0x23,0x1c,0x74,0x23,0x1c,0x75,0xe, 0x1c,0xc2,0xd5,0x7c,0xb4,0x30,0xe7,0x8, +0xb2,0xd5,0x6e,0x24,0xff,0xff,0xb, 0x24,0x7c,0xb6,0x30,0xe7,0x12,0xb2,0xd5,0x6e, +0x34,0xff,0xff,0xb, 0x34,0x8d,0x32,0x6e,0x24,0xff,0xff,0xb, 0x24,0x80,0x2, 0x8d, +0x32,0x30,0xd5,0x6, 0x6e,0x34,0xff,0xff,0xb, 0x34,0x22,0x7d,0x51,0xad,0x3, 0x7d, +0x2, 0x7d,0x21,0xad,0x5, 0x2d,0x12,0xad,0x35,0x2d,0x21,0x22,0x7d,0x2, 0xad,0x31, +0xad,0x10,0x2d,0x21,0x22,0x6d,0x0, 0x74,0x10,0x4d,0x0, 0x78,0xb, 0x4d,0x22,0x78, +0x27,0x8d,0x31,0x7d,0x12,0x6d,0x22,0x22,0x7d,0x43,0x7d,0x32,0x6d,0x22,0x2f,0x11, +0x2d,0x44,0x50,0x2, 0xa5,0xf, 0xbf,0x10,0x40,0x4, 0x9f,0x10,0xb, 0x90,0x14,0x78, +0xed,0x7f,0x1, 0x6d,0x22,0x7d,0x34,0x22,0x7d,0x41,0x7d,0x13,0x8d,0x24,0x7d,0x2, +0x2f,0x0, 0x40,0x4, 0xbd,0x4, 0x40,0x4, 0x9d,0x4, 0xb, 0x14,0x14,0x78,0xf1,0x7d, +0x23,0x7d,0x31,0x7d,0x10,0x6d,0x0, 0x22,0xc2,0xd5,0x7c,0xb0,0x30,0xe7,0x8, 0xb2, +0xd5,0x9f,0x22,0x9f,0x20,0x7f,0x2, 0x7c,0xb4,0x30,0xe7,0x13,0xb2,0xd5,0x9f,0x22, +0x9f,0x21,0x7f,0x12,0x12,0x1f,0x7, 0x9f,0x22,0x9f,0x20,0x7f,0x2, 0x80,0x3, 0x12, +0x1f,0x7, 0x30,0xd5,0x6, 0x9f,0x22,0x9f,0x21,0x7f,0x12,0x22,0x6c,0xaa,0x4d,0x11, +0x68,0x1a,0x1e,0x54,0x68,0xe, 0xb, 0x38,0x20,0x1b,0x18,0x20,0xb, 0x35,0xb, 0x15, +0x1b,0x54,0x78,0xf2,0x50,0x6, 0x7e,0x39,0x40,0x7a,0x19,0x40,0x22,0x6c,0xaa,0x4d, +0x11,0x68,0x1e,0x1e,0x54,0x50,0xc, 0x7e,0x1b,0x0, 0x7a,0x19,0x0, 0x68,0x12,0xb, +0x1c,0xb, 0x14,0xb, 0x1a,0x0, 0x1b,0x18,0x0, 0xb, 0x1d,0xb, 0x15,0x1b,0x54,0x78, +0xf2,0x22,0x75,0x84,0x1, 0x7e,0x44,0x3f,0xff,0xe4,0x7a,0x49,0xb0,0x1b,0x44,0x78, +0xf9,0x7e,0xf8,0x39,0x13,0x75,0xc, 0x0, 0x75,0xd, 0x0, 0x75,0xe, 0x2, 0x75,0xf, +0x0, 0xc2,0x6, 0xc2,0x7, 0x75,0x1b,0x0, 0xc2,0xc, 0xc2,0xd, 0xc2,0xf, 0x75,0x1c, +0x0, 0x75,0x1d,0x0, 0xc2,0x8, 0xc2,0x9, 0x75,0x1e,0x0, 0xc2,0x11,0x75,0x1f,0x0, +0xc2,0x13,0x75,0x4c,0x0, 0xc2,0x14,0x75,0x4d,0x64,0xc2,0x15,0xc2,0x16,0xc2,0x17, +0x75,0x4e,0x0, 0xd2,0x0, 0xd2,0x1, 0xd2,0x2, 0xd2,0x18,0xc2,0xa, 0xd2,0xb, 0x7e, +0x4, 0x0, 0xff,0x7e,0x14,0x21,0x10,0xb, 0xa, 0x40,0x5d,0x44,0x68,0x1a,0x69,0x20, +0x0, 0x2, 0xb, 0xe, 0xb, 0x44,0x80,0xa, 0x7e,0xb, 0xb0,0x7a,0x29,0xb0,0xb, 0x24, +0xb, 0xc, 0x1b,0x44,0x78,0xf2,0x80,0xdf,0x2, 0x36,0x72,0x0, 0x0, 0x0, 0x47,0x0, +0xcb,0x1, 0x0, 0x0, 0x10,0xfd,0xc7,0xfb,0x7e,0xfb,0xfb,0x1, 0xbb,0xc, 0x9e,0x19, +0x0, 0x21,0x45,0x0, 0xe, 0x1, 0xf, 0x2, 0x10,0x3, 0x11,0x4, 0x12,0x5, 0x13,0x6, +0x14,0x7, 0x15,0x8, 0x16,0x9, 0x17,0xa, 0x18,0xb, 0x19,0xc, 0x1a,0xd, 0x1b,0xdf, +0x22,0xc3,0x21,0xa9,0x20,0x94,0x1f,0x81,0x1e,0x70,0x1d,0x62,0x1c,0x55,0x1b,0x4a, +0x1a,0x41,0x19,0x38,0x18,0x31,0x17,0x2b,0x16,0x25,0x15,0x21,0x14,0x1c,0x13,0x19, +0x12,0x16,0x11,0x13,0x10,0x11,0xf, 0x10,0xe, 0xca,0xf8,0x7f,0x20,0x80,0xa, 0x7e, +0x1b,0xf0,0x7a,0x2b,0xf0,0xb, 0x34,0xb, 0x54,0x69,0xff,0xff,0xfc,0x7d,0xef,0x1b, +0xe4,0x79,0xef,0xff,0xfc,0x4d,0xff,0x78,0xe6,0x7f,0x10,0xda,0xf8,0x22,0x7d,0x43, +0x7f,0x10,0x80,0x7, 0x1b,0x44,0x7a,0xb, 0xb0,0xb, 0x14,0x4d,0x44,0x78,0xf5,0x22, +0xff,0x0, 0x1, 0x2, 0x0, 0xff,0x1, 0x2, 0x0, 0x1, 0xff,0x2, 0x0, 0x1, 0x2, 0xff, +0x7d,0x23,0xbe,0x24,0x0, 0x0, 0x48,0x3, 0x7d,0x32,0x22,0x6d,0x33,0x9d,0x32,0x22, +0x0, 0x4, 0x31,0xd0,0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x33,0xff,0x1, 0x0, 0x1, 0x25, +0xf6,0x1, 0x0, 0x1, 0x37,0x9b,0x0, 0x0, 0x2, 0x37,0xed,0x0, 0x0, 0x0, 0x2, 0x37, +0xef,0x0, 0x0, 0x0, 0x1, 0x37,0xf1,0x0, 0x0, 0x1, 0x34,0x4f,0x0, 0x0, 0x1, 0x39, +0x11,0x0, 0x0, 0x1, 0x34,0x8a,0x0, 0x0, 0x2, 0x34,0x9f,0x0, 0x0, 0x0, 0x1, 0x34, +0xa1,0x0, 0x0, 0x1, 0x34,0xaf,0x0, 0x0, 0x1, 0x34,0xc4,0x0, 0x0, 0x1, 0x34,0xc5, +0x0, 0x0, 0x1, 0x35,0x3e,0x0, 0x0, 0x1, 0x35,0x3f,0x1, 0x0, 0x1, 0x35,0x40,0x0, +0x0, 0x3c,0x35,0xe9,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x1, 0x36,0x61,0x0, 0x0, 0x1, 0x36,0x62,0x0, 0x0, 0x1, 0x36,0x63,0x0, 0x0, +0x1, 0x35,0xe2,0x1, 0x0, 0x2, 0x35,0xe5,0x0, 0x0, 0x0, 0x1, 0x2f,0xa9,0x0, 0x0, +0x1, 0x2f,0xaa,0x0, 0x0, 0x1, 0x2f,0xab,0x0, 0x0, 0x1, 0x2f,0xac,0x0, 0x0, 0x1, +0x36,0x66,0x1, 0x0, 0x1, 0x36,0xe0,0x0, 0x0, 0x1, 0x39,0x12,0x0, 0x0, 0x6, 0x38, +0xfb,0x3f,0x1f,0x50,0x11,0x20,0x10,0x0, 0x1, 0x39,0x1, 0x24,0x0, 0x1, 0x39,0x8, +0x0, 0x0, 0x1, 0x39,0x9, 0x0, 0x0, 0x1, 0x39,0xa, 0x0, 0x0, 0x1, 0x39,0xb, 0x0, +0x0, 0x1, 0x39,0xc, 0x0, 0x0, 0x1, 0x0, 0x4f,0x0, 0x0, 0x1, 0x3, 0xec,0x0, 0x0, +0x4, 0x37,0x40,0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x39,0x2, 0x0, 0x0, 0x1, 0x39,0x3, +0x0, 0x0, 0x2, 0x39,0x4, 0x0, 0x0, 0x0, 0x1, 0x39,0x6, 0x64,0x0, 0x1, 0x39,0x7, +0x0, 0x0, 0x1, 0x39,0x13,0x0, 0x0, 0x1, 0x3, 0xfe,0x0, 0x0, 0x1, 0x3, 0xff,0x0, +0x0, 0x2, 0x2b,0xb9,0x2b,0xbf,0x0, 0x1, 0x2f,0x7f,0x2, 0x0, 0x1, 0x2f,0xa8,0x0, +0x0, 0x1, 0x38,0xdd,0x0, 0x0, 0x1, 0x38,0x3e,0xff,0x0, 0x1, 0x38,0x3f,0x0, 0x0, +0x1, 0x38,0x40,0x0, 0x0, 0x1, 0x38,0x41,0x40,0x0, 0x1, 0x38,0x42,0x40,0x0, 0x4, +0x38,0xf3,0x0, 0x0, 0x50,0x0, 0x0, 0x4, 0x38,0xf7,0x0, 0x0, 0x64,0x0, 0x0, 0x4, +0x38,0xc0,0x0, 0x0, 0x6c,0x0, 0x0, 0x4, 0x38,0xc4,0x0, 0x0, 0x68,0xc0,0x0, 0x4, +0x38,0xc8,0x0, 0x0, 0x68,0x0, 0x0, 0x4, 0x38,0xd9,0x0, 0x0, 0x40,0x0, 0x0, 0x4, +0x39,0xd, 0x0, 0x0, 0x60,0x0, 0x0, 0x0, 0x3, 0x20,0x0, 0xc, 0x1, 0xf4,0x2, 0x58, +0x0, 0xc, 0x0, 0xfa,0x1, 0xc2,0x0, 0xa, 0x0, 0xc8,0x1, 0x40,0x0, 0x5, 0x0, 0x78, +0x0, 0xc8,0x0, 0x4, 0x0, 0x3c,0x0, 0x78,0x0, 0x3, 0x0, 0xa, 0x0, 0x3c,0x0, 0x2, +0x0, 0x0, 0x0, 0xe, 0x1c,0x23,0x5, 0xdc,0x0, 0x32,0x3, 0xe8,0x0, 0x28,0x0, 0x0, +0x0, 0x1e,0x12,0x3f,0x13,0x12,0x69,0x8e,0x12,0x23,0xb, 0x12,0x28,0x48,0x12,0x8d, +0xec,0x2, 0x23,0x4, 0x74,0x1, 0x7a,0xb3,0x36,0x6a,0x22,0x12,0x73,0x71,0x12,0x23, +0x40,0x2, 0x23,0x14,0x7e,0x34,0x0, 0x3, 0x6d,0x22,0x2, 0x23,0x1d,0x7d,0x43,0x7e, +0xa3,0x34,0x38,0xbe,0xa0,0x5, 0x50,0x16,0x7e,0x70,0x4, 0xac,0x7a,0x59,0x43,0x34, +0x3b,0x59,0x23,0x34,0x3d,0x7c,0xba,0x4, 0x7a,0xb3,0x34,0x38,0xc3,0x22,0xd3,0x22, +0x6d,0x33,0x7e,0x24,0x6, 0xfc,0x12,0x23,0x1d,0x7e,0x34,0x0, 0x1, 0x7e,0x24,0x7, +0x7a,0x2, 0x23,0x1d,0x7e,0x34,0x60,0xa3,0x12,0x23,0x9e,0x12,0x26,0x5b,0x12,0x46, +0xa2,0x12,0x73,0x28,0x12,0x3f,0x13,0x12,0x69,0x87,0x12,0xc0,0x25,0x12,0x23,0xb, +0x12,0x28,0x48,0x12,0x68,0x23,0x12,0x8d,0xec,0x2, 0x23,0x4, 0x7e,0x34,0x61,0x4f, +0x7e,0x24,0x0, 0xff,0xb, 0x1a,0x30,0x7a,0x37,0x2a,0x5a,0x7e,0x34,0x61,0x51,0x7e, +0x24,0x0, 0xff,0xb, 0x1a,0x30,0x7a,0x37,0x2a,0x5c,0x7e,0x34,0x61,0x53,0x7e,0x24, +0x0, 0xff,0xb, 0x1a,0x30,0x22,0x7e,0x34,0x61,0x55,0x12,0x23,0x9e,0x7a,0x37,0x28, +0x95,0x7e,0x34,0x61,0xba,0x12,0x23,0x9e,0x7a,0x37,0x28,0x99,0x7e,0x34,0x61,0xb8, +0x12,0x23,0x9e,0x7a,0x37,0x28,0x97,0x7e,0x34,0x62,0x12,0x12,0x23,0x9e,0x7a,0x37, +0x28,0x9b,0x7e,0x34,0x61,0xbc,0x12,0x23,0x9e,0x7a,0x37,0x28,0x9d,0x7e,0x34,0x61, +0xbe,0x12,0x23,0x9e,0x7a,0x37,0x28,0x9f,0x7e,0x34,0x61,0xc0,0x12,0x23,0x9e,0x12, +0xc0,0xb1,0x12,0x23,0x9e,0x7a,0x37,0x28,0xa3,0x90,0x61,0xc4,0xe4,0x93,0x7a,0xb3, +0x28,0xa5,0xe4,0x7a,0xb3,0x28,0xa8,0x12,0x2f,0xdd,0x3e,0x34,0x7e,0x8, 0x25,0xf7, +0xe4,0x2, 0x20,0xde,0x12,0x25,0xc3,0x7e,0xb3,0x36,0x71,0xb4,0x1, 0x16,0x7e,0x34, +0x62,0x34,0x12,0x23,0x9e,0x7a,0x37,0x2a,0x5a,0x7e,0x34,0x62,0x36,0x12,0x23,0x9e, +0x7a,0x37,0x2a,0x5c,0x7e,0xb3,0x28,0xa8,0xb4,0x1, 0x37,0x7e,0x34,0x62,0x3e,0x12, +0x23,0x9e,0x7a,0x37,0x2a,0x5a,0x7e,0x34,0x62,0x40,0x12,0x23,0x9e,0x7a,0x37,0x2a, +0x5c,0x7e,0x34,0x62,0x42,0x12,0x23,0x9e,0x7a,0x37,0x2a,0x4f,0x7e,0x34,0x62,0x44, +0x12,0x23,0x9e,0x7a,0x37,0x2a,0x51,0x7e,0x34,0x62,0x46,0x12,0x23,0x9e,0x7a,0x37, +0x2a,0x53,0x7e,0xb3,0x2a,0x2, 0x70,0x21,0x7e,0x27,0x2a,0x5a,0x7d,0x32,0x7e,0x14, +0x0, 0x4, 0xad,0x13,0x7d,0x31,0x12,0x25,0x3c,0xbe,0x34,0x0, 0x50,0x28,0x4, 0x7e, +0x34,0x0, 0x50,0x2d,0x32,0x7a,0x37,0x2a,0x5a,0x22,0x7e,0x54,0x0, 0x54,0x7e,0x44, +0x0, 0xff,0x69,0x32,0x0, 0x4, 0x69,0x22,0x0, 0x2, 0xb, 0x2a,0x10,0x7a,0x1d,0x26, +0x7a,0x15,0x24,0x7e,0x34,0x0, 0x20,0x7e,0x8, 0x0, 0x24,0x7e,0x24,0x0, 0x6, 0x12, +0xb7,0xc7,0x7e,0x34,0x61,0x4f,0x12,0x23,0x9e,0x1e,0x34,0x1e,0x34,0x7a,0x73,0x36, +0xe1,0x7e,0x34,0x61,0x51,0x12,0x23,0x9e,0xe, 0x34,0xe, 0x34,0x7a,0x73,0x36,0xe2, +0x7e,0x34,0x61,0x55,0x12,0x23,0x9e,0x12,0x25,0x3c,0x7a,0x73,0x36,0xe3,0x7e,0x34, +0x61,0x57,0x12,0x23,0x9e,0x12,0x25,0x3c,0x7a,0x73,0x36,0xe4,0x7e,0x34,0x61,0x59, +0x12,0x23,0x9e,0x12,0x25,0x3c,0x7a,0x73,0x36,0xe5,0x7e,0x34,0x61,0x5b,0x12,0x23, +0x9e,0x12,0x25,0x3c,0x7a,0x73,0x36,0xe6,0x7e,0x34,0x0, 0x59,0xca,0x39,0x7e,0x34, +0x61,0x5f,0x7e,0x24,0x0, 0xff,0x7e,0x8, 0x36,0xe7,0x12,0x20,0xb9,0x1b,0xfd,0xe5, +0x25,0x7a,0xb3,0x37,0x12,0xe5,0x28,0x7a,0xb3,0x37,0x1, 0x22,0x1e,0x34,0x1e,0x34, +0x1e,0x34,0x1e,0x34,0x22,0x90,0x60,0x99,0xe4,0x93,0x7a,0xb3,0x2a,0x4d,0x90,0x60, +0x9e,0xe4,0x93,0x7a,0xb3,0x2a,0x4e,0x7e,0x34,0x61,0x55,0x12,0x23,0x9e,0x12,0xc0, +0xa8,0x12,0x23,0x9e,0x7a,0x37,0x2a,0x51,0x7e,0x14,0x61,0x59,0x7e,0x4, 0x0, 0xff, +0xb, 0xa, 0x20,0x7a,0x27,0x2a,0x53,0x7a,0x37,0x2a,0x55,0x90,0x60,0x9d,0xe4,0x93, +0x7a,0xb3,0x2a,0x59,0x12,0x23,0x7c,0x12,0xc0,0x55,0x7e,0x34,0x62,0x12,0x12,0x23, +0x9e,0x7a,0x37,0x2a,0x60,0x90,0x60,0x9f,0xe4,0x93,0x7a,0xb3,0x2a,0x64,0x90,0x60, +0xa0,0xe4,0x93,0x7a,0xb3,0x2a,0x65,0x7e,0x34,0x60,0xa1,0x12,0x23,0x9e,0x7a,0x37, +0x2a,0x66,0x7e,0x34,0x61,0x5b,0x12,0x23,0x9e,0x7a,0x37,0x2a,0x62,0xe4,0x7a,0xb3, +0x16,0x92,0x22,0x12,0x23,0x7c,0x12,0xc0,0x55,0x7e,0x34,0x61,0x55,0x12,0x23,0x9e, +0x12,0xc0,0xa8,0x12,0x23,0x9e,0x7a,0x37,0x2a,0x51,0x7e,0x34,0x61,0x59,0x12,0x23, +0x9e,0x7a,0x37,0x2a,0x53,0x22,0xca,0xf8,0x7e,0xf3,0x37,0xa0,0xbe,0xf0,0x5, 0x78, +0xb, 0x74,0x1, 0x7a,0xb3,0x37,0xa0,0x12,0x0, 0x9, 0x80,0x52,0xbe,0xf0,0x4, 0x78, +0x13,0x12,0xc0,0x0, 0x12,0x23,0x9e,0x12,0x26,0x5b,0xe4,0x7a,0xb3,0x2b,0x2, 0x12, +0x7a,0x2d,0x80,0x3a,0xbe,0xf0,0x6, 0x78,0x19,0x12,0xc0,0x0, 0x12,0x23,0x9e,0x12, +0x26,0x5b,0x12,0x49,0xd, 0xe4,0x7a,0xb3,0x2b,0x1e,0x12,0x69,0xab,0x12,0xc1,0x1, +0x80,0x1c,0xbe,0xf0,0x7, 0x78,0x1d,0x12,0xc0,0x0, 0x12,0x23,0x9e,0x12,0x26,0x5b, +0x12,0x2f,0xf4,0x50,0xfb,0x12,0x88,0x17,0x12,0x69,0x97,0x12,0x28,0x48,0x74,0x2, +0x7a,0xb3,0x37,0xa0,0xda,0xf8,0x22,0x7e,0x34,0x3, 0xe8,0x6d,0x22,0x7a,0x27,0x3, +0xed,0x7a,0x37,0x3, 0xef,0x22,0x7e,0xb3,0x37,0x6, 0x14,0x68,0x60,0x14,0x78,0x2, +0xe1,0x10,0x14,0x68,0x73,0x24,0x3, 0x68,0x2, 0xe1,0x5, 0x12,0xc1,0x32,0x38,0x8, +0x30,0x10,0xf, 0x12,0xc1,0x2a,0x68,0xa, 0x12,0x63,0x2, 0xe4,0x7a,0xb3,0x38,0x85, +0x80,0x7e,0x7e,0xb3,0x36,0xe7,0x30,0xe0,0x77,0x7e,0x73,0x36,0xe8,0xa, 0x27,0x7e, +0x34,0x4, 0x0, 0xad,0x32,0x7e,0xb3,0x37,0x31,0xb4,0x1, 0xb, 0x7e,0x34,0x62,0x64, +0x12,0x23,0x9e,0x2e,0x34,0x4, 0x0, 0xbe,0x37,0x38,0x83,0x50,0x53,0x12,0x63,0x2, +0x74,0x1, 0x7a,0xb3,0x37,0x6, 0xe4,0x7a,0xb3,0x38,0x87,0x80,0x43,0x12,0xc1,0x32, +0x28,0x39,0xe4,0x7a,0xb3,0x37,0x6, 0x7e,0xb3,0x38,0x85,0xb4,0x1, 0x6, 0x74,0x1, +0x7a,0xb3,0x37,0x6, 0xd2,0x17,0x80,0x23,0x7e,0x34,0x60,0xa5,0x12,0x23,0x9e,0x12, +0x26,0x5b,0x12,0x45,0x73,0x12,0x23,0x54,0xe4,0x7a,0xb3,0x37,0x6, 0x7a,0xb3,0x39, +0x7, 0xd2,0x17,0x80,0xb, 0x74,0x1, 0x7a,0xb3,0x37,0x6, 0xe4,0x7a,0xb3,0x39,0x7, +0x12,0x90,0xd2,0x2, 0x27,0x16,0xca,0xd8,0xca,0x79,0x7e,0xb3,0x37,0x6, 0xb4,0x1, +0x2, 0x80,0x3, 0x2, 0x28,0x38,0x6c,0xdd,0x6c,0xff,0x12,0x91,0x11,0x7d,0xf3,0x12, +0x2f,0xf4,0x50,0xfb,0x74,0x1, 0x7a,0xb3,0x38,0x86,0x12,0x3d,0xac,0x12,0x13,0xc7, +0x12,0x0, 0x1e,0x74,0xa, 0x12,0x45,0x15,0x12,0xc0,0xe7,0x7e,0xe7,0x2b,0xd, 0x7a, +0xe5,0x24,0x7e,0xe3,0x2a,0xfa,0x74,0x4, 0x7a,0xb3,0x2a,0xfa,0x7e,0xe7,0x2b,0xd, +0x5e,0xe4,0x0, 0x3f,0x7a,0xe7,0x2b,0xd, 0x7e,0xb3,0x2a,0xfa,0x12,0x7b,0xd0,0x7c, +0x7b,0x74,0x6, 0xac,0x7b,0x7e,0x24,0x0, 0x4, 0x12,0x1e,0xb9,0x7d,0x23,0x7d,0x3f, +0x12,0x25,0x3c,0xad,0x32,0x7a,0x37,0x2b,0x7, 0x12,0x4e,0xe0,0x12,0x26,0x57,0x7e, +0xb3,0x37,0x31,0xb4,0x1, 0x4, 0x74,0x10,0x80,0x2, 0x74,0xa, 0x12,0x91,0x5d,0x12, +0x4f,0xaf,0x80,0xf, 0x80,0x7, 0x12,0x45,0xcf,0xe4,0x12,0x46,0x7, 0x20,0x93,0xf6, +0x12,0x45,0x9f,0x30,0x18,0xf7,0x30,0x17,0xf4,0xd2,0x4, 0x12,0x45,0x5a,0xe4,0x12, +0x13,0xde,0xb, 0xd0,0x12,0x4c,0x83,0x12,0x91,0x76,0x7e,0xa3,0x38,0x85,0x4c,0xaa, +0x78,0x6, 0x74,0x1, 0x7a,0xb3,0x38,0x86,0x4c,0xaa,0x68,0xb, 0x7e,0xb3,0x37,0x31, +0x70,0x5, 0xe4,0x7a,0xb3,0x38,0x85,0x12,0x28,0x3d,0x78,0x18,0x7e,0xb3,0x38,0x85, +0x60,0x12,0xe4,0x7a,0xb3,0x38,0x85,0x7a,0xb3,0x2a,0x2, 0x7a,0xb3,0x2a,0x3, 0x7e, +0xf0,0x1, 0x80,0x1d,0x12,0x28,0x3d,0x68,0x10,0x7e,0xb3,0x38,0x85,0x70,0xa, 0x7e, +0xf0,0x1, 0xe4,0x7a,0xb3,0x37,0x6, 0x80,0x8, 0xbe,0xd0,0x32,0x50,0x3, 0x2, 0x27, +0x8c,0xe4,0x7a,0xb3,0x2b,0x4, 0x7e,0x35,0x24,0x7a,0x37,0x2b,0xd, 0x7a,0xe3,0x2a, +0xfa,0x4c,0xff,0x68,0x3, 0x12,0x28,0x48,0xda,0x79,0xda,0xd8,0x22,0x7e,0x73,0x38, +0xf2,0xa, 0x37,0x5e,0x34,0x0, 0x2, 0x22,0xe4,0x7a,0xb3,0x34,0x3a,0x7a,0xb3,0x34, +0x39,0x12,0x4e,0x9b,0xb4,0x1, 0x4, 0x74,0x1, 0x80,0x2, 0x74,0x3, 0x7a,0xb3,0x34, +0x3a,0x22,0xca,0x3b,0x12,0x2f,0xf4,0x50,0xfb,0x7e,0xf3,0x2b,0xf, 0x7c,0xbf,0x12, +0xb3,0xfc,0x12,0xb4,0x13,0x7e,0xb3,0x2b,0x1f,0xf5,0x28,0x7e,0xb3,0x2b,0x20,0xf5, +0x29,0x7e,0xb3,0x37,0x8, 0xb4,0x1, 0xf, 0x12,0x8d,0x6c,0x7e,0xb3,0x16,0x91,0x70, +0x6, 0x12,0x28,0x48,0xc3,0x21,0x6c,0x12,0x29,0x6f,0x3e,0x34,0xca,0x39,0x7e,0x18, +0x6, 0xfc,0x7e,0x8, 0x4, 0x7e,0x12,0x20,0xb9,0x1b,0xfd,0x12,0x29,0x6f,0x3e,0x34, +0xca,0x39,0x7e,0x18,0x7, 0x7a,0x7e,0x8, 0x4, 0x0, 0x12,0x20,0xb9,0x1b,0xfd,0x7e, +0xb3,0x37,0x8, 0xb4,0x3, 0x7, 0x12,0xac,0x20,0x7a,0x37,0x37,0xe3,0x74,0x1, 0x7a, +0xb3,0x16,0x90,0x12,0x69,0x8e,0x12,0xac,0xe, 0x7e,0xc3,0x3, 0xec,0x12,0x6e,0x31, +0xe4,0x12,0x13,0xde,0x12,0x28,0x48,0x7e,0x8, 0x4, 0x7e,0x7a,0xd, 0x2a,0x7e,0x18, +0x6, 0x76,0x7e,0xb3,0x2b,0x72,0x12,0x7a,0xc8,0x7e,0x8, 0x4, 0x0, 0x7a,0xd, 0x2a, +0x7e,0x18,0x5, 0xf8,0x7e,0xb3,0x25,0xf0,0x12,0x7a,0xc8,0x7e,0xd3,0x2b,0x1f,0x7e, +0xe3,0x2b,0x20,0xe5,0x28,0x7a,0xb3,0x2b,0x1f,0xe5,0x29,0x12,0x6e,0x8b,0x50,0x5, +0x7c,0xbc,0x12,0xb3,0x54,0x7e,0x34,0x8, 0xa, 0x7e,0x4, 0xd, 0xc8,0x7d,0x20,0x7d, +0x10,0x12,0x6a,0xd4,0x7a,0xd3,0x2b,0x1f,0x7a,0xe3,0x2b,0x20,0x7c,0xbf,0x12,0x86, +0xf8,0x12,0xaa,0x18,0x7e,0xb3,0x39,0x7, 0x4, 0x7a,0xb3,0x39,0x7, 0x7e,0x73,0x39, +0x7, 0xbe,0x70,0xfa,0x28,0x6, 0x74,0x64,0x7a,0xb3,0x39,0x7, 0x7e,0xb3,0x16,0x90, +0x60,0x9, 0x7e,0xb3,0x16,0x91,0x60,0x3, 0xd3,0x80,0x1, 0xc3,0xda,0x3b,0x22,0x7e, +0x73,0x2a,0x74,0xa, 0x27,0x7e,0x73,0x2a,0x73,0xa, 0x37,0x2d,0x32,0x22,0x12,0x48, +0x7, 0x7e,0xb3,0x37,0x8, 0xb4,0x3, 0x6c,0x12,0xb6,0xe2,0x12,0x26,0x57,0x12,0x3f, +0xfb,0x7e,0xb3,0x37,0x9c,0x30,0xe7,0xe9,0x12,0x28,0x62,0x12,0x29,0x6f,0x3e,0x34, +0xca,0x39,0x7e,0x18,0x4, 0x0, 0x7e,0x8, 0x4, 0xfc,0x12,0x20,0xb9,0x1b,0xfd,0x12, +0x29,0x6f,0x3e,0x34,0xca,0x39,0x7e,0x18,0x4, 0x7e,0x7e,0x8, 0x5, 0x7a,0x12,0x20, +0xb9,0x1b,0xfd,0x7e,0xb3,0x2b,0x1d,0xb4,0x1, 0x18,0x12,0xab,0xdb,0x12,0x75,0xe9, +0x12,0xaf,0x89,0x12,0xa7,0xbd,0x12,0x88,0x5f,0x12,0x56,0xde,0x12,0x2a,0x3, 0x12, +0x58,0x52,0x12,0x48,0x39,0x12,0x3a,0x9f,0x7e,0xb3,0x37,0x9c,0x54,0x7f,0x7a,0xb3, +0x37,0x9c,0x80,0x8d,0x12,0x2f,0xee,0x2, 0x0, 0x46,0x7a,0xb3,0x2b,0x2, 0x7a,0xb3, +0x2b,0x1e,0x22,0x12,0x52,0x6d,0x12,0x2b,0xfa,0x12,0x2b,0xfa,0x12,0x36,0xac,0x12, +0x9c,0xfd,0x12,0x9f,0xef,0x12,0x2b,0xfa,0x12,0x9b,0xe7,0x12,0x2b,0xfa,0x12,0xa0, +0xae,0x12,0x2b,0xfa,0x2, 0x2a,0x27,0xca,0x3b,0x75,0x24,0x0, 0x6c,0xcc,0x6c,0xdd, +0x7e,0xc4,0x0, 0x3c,0xca,0xc9,0x7e,0x18,0x36,0x25,0x7e,0x8, 0x35,0xe9,0x12,0x20, +0xb9,0x1b,0xfd,0x7e,0xf3,0x28,0x84,0xa, 0xcf,0x3e,0xc4,0xca,0xc9,0x7e,0x18,0x26, +0xfa,0x7e,0x8, 0x1f,0x34,0x12,0x20,0xb9,0x1b,0xfd,0x6c,0x88,0x6c,0xee,0x41,0xfb, +0x7e,0xc4,0x3, 0xff,0x7e,0xc0,0xff,0x6c,0x99,0x80,0x4c,0x74,0x2, 0xac,0xb9,0x9, +0xb5,0x1f,0x34,0xbe,0xb0,0xff,0x68,0x3d,0x7c,0xb9,0x12,0x2f,0xb7,0x60,0x36,0x74, +0x2, 0xac,0xb9,0x9, 0x75,0x1f,0x35,0xa, 0x27,0x74,0x2, 0xac,0xbe,0x9, 0x75,0x36, +0x26,0xa, 0x37,0x12,0x81,0xbf,0x74,0x2, 0xac,0xb9,0x9, 0x75,0x1f,0x34,0xa, 0x27, +0x74,0x2, 0xac,0xbe,0x9, 0x75,0x36,0x25,0x12,0xa1,0x4b,0x2d,0x13,0xbd,0xc1,0x28, +0x4, 0x7d,0xc1,0x7c,0xc9,0xb, 0x90,0xbc,0xf9,0x38,0xb0,0xbe,0xc0,0xff,0x68,0x39, +0x7e,0x70,0x2, 0xac,0x7c,0x9, 0xb3,0x1f,0x34,0x9, 0x73,0x1f,0x35,0x12,0x2c,0x40, +0xbe,0x37,0x2a,0x5a,0x48,0x23,0x7e,0x70,0x2, 0xac,0x7c,0x9, 0x53,0x1f,0x34,0x74, +0x2, 0xac,0xbd,0x19,0x55,0x1f,0x70,0x9, 0x53,0x1f,0x35,0x19,0x55,0x1f,0x71,0x74, +0xff,0x19,0xb3,0x1f,0x34,0xb, 0x80,0xb, 0xd0,0xb, 0xe0,0x7e,0x73,0x35,0xe8,0xbc, +0x7e,0x28,0x2, 0x41,0x60,0x7c,0xe8,0x80,0x6d,0x6d,0xdd,0x7e,0x80,0xff,0x6c,0x99, +0x80,0x3c,0x7c,0xb9,0x12,0x2f,0xb7,0x60,0x33,0x12,0x2f,0xe4,0xbe,0xb0,0xff,0x68, +0x2b,0x9, 0x73,0x1f,0x35,0x12,0x30,0x3, 0x7f,0x71,0xb, 0x7a,0x50,0xbe,0x54,0x0, +0x0, 0x58,0x5, 0x6d,0x55,0x1b,0x7a,0x50,0xb, 0x7a,0xc0,0xbd,0xcd,0x8, 0xd, 0x12, +0x2f,0xe4,0xf5,0x24,0x9, 0xc3,0x1f,0x35,0x7d,0xdc,0x7c,0x89,0xb, 0x90,0xbc,0xf9, +0x38,0xc0,0xbe,0x80,0xff,0x68,0x1d,0x7e,0x71,0x24,0x74,0x2, 0xac,0xbd,0x19,0x75, +0x1f,0x70,0x19,0xc5,0x1f,0x71,0x7e,0xa0,0xff,0x7e,0x70,0x2, 0xac,0x78,0x19,0xa3, +0x1f,0x34,0xb, 0xd0,0xb, 0xe0,0x90,0x60,0x99,0xe4,0x93,0xbc,0xbe,0x38,0x8a,0x90, +0x60,0x9a,0xe4,0x93,0x7c,0xab,0x74,0x2, 0xa4,0xca,0x59,0x7e,0x18,0x1f,0x70,0x7e, +0x8, 0x1f,0x34,0x12,0x20,0xb9,0x1b,0xfd,0x7c,0xfd,0x12,0x97,0x4, 0x7e,0x8, 0x36, +0x25,0x74,0xff,0x12,0x20,0xde,0xbe,0xf0,0x0, 0x28,0x35,0xa, 0x3f,0x3e,0x34,0xca, +0x39,0x7e,0x18,0x1f,0x34,0x7e,0x8, 0x26,0xfa,0x12,0x20,0xb9,0x1b,0xfd,0xa, 0x3f, +0x3e,0x34,0xca,0x39,0x7e,0x18,0x1f,0x34,0x7e,0x8, 0x36,0x25,0x12,0x20,0xb9,0x1b, +0xfd,0x6c,0xee,0x80,0x7, 0x7c,0xbe,0x12,0x2f,0xd0,0xb, 0xe0,0xbc,0xfe,0x38,0xf5, +0x7a,0xf3,0x35,0xe8,0x7a,0xf3,0x28,0x84,0x90,0x60,0x99,0xe4,0x93,0xbe,0xb3,0x28, +0x84,0x50,0x4, 0x7a,0xb3,0x28,0x84,0xda,0x3b,0x22,0xca,0x79,0x6c,0xff,0x6c,0xee, +0x80,0x2e,0x7c,0xbe,0x12,0x2f,0xb7,0x60,0x25,0x7e,0x34,0x0, 0x2, 0xca,0x39,0xac, +0x7e,0x2e,0x34,0x26,0xfa,0x6d,0x22,0x7e,0x30,0x2, 0xac,0x3f,0x2e,0x14,0x26,0xfa, +0x6d,0x0, 0x12,0x20,0xb9,0x1b,0xfd,0x7c,0xbf,0x12,0x2f,0xd0,0xb, 0xf0,0xb, 0xe0, +0x12,0x9c,0xf6,0x38,0xcd,0x7a,0xf3,0x28,0x84,0xda,0x79,0x22,0x7c,0xba,0x7c,0x7d, +0x12,0x30,0x3, 0xb, 0x1a,0x30,0x22,0xca,0x3b,0x7c,0xfb,0x75,0x3b,0x0, 0x7e,0xb3, +0x2a,0x6f,0xf5,0x40,0x7e,0xb3,0x2a,0x70,0xf5,0x41,0x7e,0xd3,0x28,0x84,0xe4,0x7a, +0xb3,0x33,0xc2,0x7a,0xb3,0x33,0xc0,0x7a,0xb3,0x33,0xc1,0x7e,0x8, 0x1f,0x34,0x12, +0x2f,0xdd,0xe4,0x12,0x20,0xde,0x12,0x2f,0xdd,0x3e,0x34,0x7e,0x8, 0x33,0xc3,0xe4, +0x12,0x20,0xde,0xbe,0xd0,0x2, 0x50,0x2, 0xe1,0xa2,0x6c,0xcc,0xe1,0x91,0x12,0xc0, +0x8b,0xf5,0x24,0x9, 0xb3,0x26,0xfb,0xf5,0x25,0x4c,0xcc,0x68,0x8, 0xa, 0x3c,0x9, +0xb3,0x1f,0x34,0x70,0xa, 0xa, 0x3c,0xb, 0x34,0xa, 0x2c,0x19,0x72,0x1f,0x34,0x7c, +0xbd,0x14,0xbc,0xbc,0x78,0x2, 0xe1,0x97,0xa, 0x5c,0xb, 0x54,0xf5,0x2e,0xe1,0x88, +0x7e,0x71,0x2e,0x74,0x2, 0xac,0x7b,0x9, 0xa3,0x26,0xfa,0x7a,0xa1,0x26,0x9, 0xb3, +0x26,0xfb,0xf5,0x27,0xa, 0x2a,0xe5,0x24,0x12,0x2f,0xd6,0x7c,0xb7,0xf5,0x28,0xe5, +0x27,0xa, 0x2b,0xe5,0x25,0x12,0x2f,0xd6,0x7c,0xb7,0xf5,0x29,0xe5,0x28,0xbe,0xb0, +0x4, 0x40,0x2, 0xe1,0x86,0xe5,0x29,0xbe,0xb0,0x4, 0x40,0x2, 0xe1,0x86,0x85,0x25, +0x44,0x85,0x26,0x45,0x85,0x27,0x46,0x7e,0x8, 0x0, 0x31,0x7e,0x18,0x0, 0x33,0xe5, +0x24,0x12,0xb0,0x69,0x75,0x3b,0x0, 0x6c,0xee,0x75,0x30,0x0, 0xe5,0x24,0x7e,0x71, +0x25,0x12,0x2c,0x40,0x7a,0x35,0x35,0xe5,0x26,0x7e,0x71,0x27,0x12,0x2c,0x40,0x7a, +0x35,0x37,0x7e,0x35,0x35,0xbe,0x35,0x37,0x8, 0x7, 0x7e,0x35,0x37,0x7d,0x83,0x80, +0x3, 0x7e,0x85,0x35,0x7a,0x85,0x39,0xe, 0x84,0xe5,0x28,0xbe,0xb0,0x1, 0x38,0x2b, +0xe5,0x29,0xbe,0xb0,0x1, 0x38,0x24,0x7c,0xbf,0x30,0xe1,0x1f,0xe5,0x26,0x7e,0x71, +0x25,0x12,0x2c,0x40,0x7d,0x43,0xe5,0x24,0x7e,0x71,0x27,0x12,0x2c,0x40,0x2d,0x34, +0xbd,0x38,0x18,0x2, 0xe1,0x1d,0x75,0x30,0x1, 0xe1,0x1d,0xe5,0x28,0xbe,0xb0,0x1, +0x38,0x9, 0xe5,0x29,0xbe,0xb0,0x1, 0x38,0x2, 0xe1,0x1d,0xe5,0x28,0xbe,0xb0,0x4, +0x40,0x2, 0xe1,0x1d,0xe5,0x29,0xbe,0xb0,0x4, 0x40,0x2, 0xe1,0x1d,0x7c,0xbf,0x20, +0xe0,0x2, 0xe1,0x1d,0x6d,0x99,0x75,0x42,0x0, 0xc2,0x4, 0xc2,0x5, 0xe5,0x26,0xbe, +0xb1,0x24,0x28,0x4, 0xe5,0x24,0x80,0x2, 0xe5,0x26,0xf5,0x2a,0xe5,0x26,0xbe,0xb1, +0x24,0x50,0x4, 0xe5,0x24,0x80,0x2, 0xe5,0x26,0xf5,0x2c,0xe5,0x27,0xbe,0xb1,0x25, +0x28,0x4, 0xe5,0x25,0x80,0x2, 0xe5,0x27,0xf5,0x2b,0xe5,0x27,0xbe,0xb1,0x25,0x50, +0x4, 0xe5,0x25,0x80,0x2, 0xe5,0x27,0xf5,0x2d,0xe5,0x2c,0xbe,0xb1,0x2a,0x78,0x29, +0xd2,0x4, 0xe5,0x2a,0x60,0x8, 0xe5,0x40,0x14,0xbe,0xb1,0x2a,0x78,0x2, 0xd2,0x5, +0xe5,0x2a,0xbe,0xb0,0x0, 0x28,0x2, 0x15,0x2a,0xe5,0x40,0xa, 0x2b,0x1b,0x24,0xe5, +0x2c,0xa, 0x3b,0xbd,0x32,0x58,0x2, 0x5, 0x2c,0xe5,0x2d,0xbe,0xb1,0x2b,0x78,0x29, +0xd2,0x4, 0xe5,0x2b,0x60,0x8, 0xe5,0x41,0x14,0xbe,0xb1,0x2b,0x78,0x2, 0xd2,0x5, +0xe5,0x2b,0xbe,0xb0,0x0, 0x28,0x2, 0x15,0x2b,0xe5,0x41,0xa, 0x2b,0x1b,0x24,0xe5, +0x2d,0xa, 0x3b,0xbd,0x32,0x58,0x2, 0x5, 0x2d,0x85,0x2a,0x3c,0x80,0x4c,0x85,0x2b, +0x3d,0x80,0x3e,0xe5,0x3c,0x7e,0x71,0x3d,0x12,0x2c,0x40,0x7a,0x35,0x3e,0xe5,0x2a, +0xbe,0xb1,0x3c,0x68,0x15,0xe5,0x2c,0xbe,0xb1,0x3c,0x68,0xe, 0xe5,0x2b,0xbe,0xb1, +0x3d,0x68,0x7, 0xe5,0x2d,0xbe,0xb1,0x3d,0x78,0x9, 0x7e,0x35,0x3e,0x2d,0x93,0x5, +0x42,0x80,0xc, 0x7e,0x35,0x33,0xbe,0x35,0x3e,0x58,0x2, 0x5, 0x3b,0xb, 0xe0,0x5, +0x3d,0xe5,0x2d,0xbe,0xb1,0x3d,0x50,0xbb,0x5, 0x3c,0xe5,0x2c,0xbe,0xb1,0x3c,0x50, +0xad,0xe5,0x2c,0x12,0x2f,0xae,0xe5,0x2a,0x12,0x2f,0xa5,0xe5,0x2a,0x12,0x2f,0xae, +0xe5,0x2c,0x12,0x2f,0xa5,0x7e,0x85,0x37,0x2e,0x85,0x35,0x30,0x4, 0x9, 0x20,0x5, +0x6, 0x9d,0x98,0x15,0x42,0x15,0x42,0xe5,0x42,0xbe,0xb0,0x4, 0x28,0x6, 0xe5,0x42, +0x24,0xfc,0xf5,0x42,0xbe,0x94,0x0, 0x0, 0x58,0x2, 0x6d,0x99,0x7d,0x18,0x1a,0x2, +0x1a,0x0, 0x7e,0x35,0x31,0x1a,0x26,0x1a,0x24,0x12,0x1e,0xeb,0xe5,0x42,0xa, 0x1b, +0x6d,0x0, 0x12,0x1e,0xeb,0x7f,0x21,0x7d,0x39,0x1a,0x26,0x1a,0x24,0x7e,0x14,0x0, +0x28,0x12,0x1e,0xfc,0xbf,0x12,0x8, 0x15,0xe5,0x3b,0xa, 0x3b,0xa, 0x2e,0x9d,0x23, +0x3e,0x24,0x3e,0x24,0xa, 0x3e,0xbd,0x23,0x18,0x3, 0x75,0x30,0x2, 0xe5,0x30,0xbe, +0xb0,0x0, 0x28,0x62,0xe5,0x30,0xa, 0x3b,0x2e,0x34,0x33,0xbf,0x7e,0x39,0xb0,0x4, +0x7a,0x39,0xb0,0xe5,0x2e,0xa, 0x3b,0x9, 0xa3,0x1f,0x34,0x4c,0xaa,0x78,0xc, 0xa, +0x2c,0x9, 0xb2,0x1f,0x34,0x19,0xb3,0x1f,0x34,0x80,0x3b,0xa, 0x2c,0x9, 0xb2,0x1f, +0x34,0xf5,0x43,0xbc,0xba,0x28,0x3, 0x7a,0xa1,0x43,0x75,0x2f,0x0, 0x80,0x22,0x9, +0x33,0x1f,0x34,0xe5,0x2f,0xa, 0x2b,0x9, 0x22,0x1f,0x34,0xbc,0x23,0x68,0xa, 0xa, +0xc, 0x9, 0x30,0x1f,0x34,0xbc,0x23,0x78,0x6, 0xe5,0x43,0x19,0xb2,0x1f,0x34,0x5, +0x2f,0xbe,0xd1,0x2f,0x38,0xd9,0x5, 0x2e,0xbe,0xd1,0x2e,0x28,0x2, 0x81,0xc0,0xb, +0xc0,0xbc,0xdc,0x28,0x2, 0x81,0x8e,0x7e,0x8, 0x1f,0x34,0x12,0xaf,0x94,0x7a,0xb3, +0x33,0xc2,0xda,0x3b,0x22,0x7e,0x71,0x2d,0x12,0x2c,0x40,0x9d,0x93,0x22,0x7e,0x71, +0x2b,0x12,0x2c,0x40,0x9d,0x93,0x22,0x7c,0x7b,0x12,0x77,0xf6,0x9, 0xa2,0x27,0x72, +0x7c,0xb7,0x54,0x7, 0xa, 0x3b,0x2e,0x34,0x0, 0x5e,0x12,0x91,0x6d,0x5c,0xba,0x22, +0x7e,0x70,0x1, 0x2, 0x51,0x5f,0xa, 0x3b,0x9d,0x32,0x2, 0x21,0x0, 0x90,0x60,0x9a, +0x93,0xa, 0x3b,0x22,0x7e,0x70,0x2, 0xac,0x79,0x9, 0xb3,0x1f,0x34,0x22,0x12,0x2f, +0xf4,0x50,0xfb,0x22,0x7e,0xb3,0x34,0x3a,0xb4,0x1, 0x2, 0xc3,0x22,0xd3,0x22,0x7c, +0xbd,0x7c,0x7e,0x7e,0x13,0x2a,0x6e,0xac,0x1b,0x3e,0x4, 0x7e,0x30,0x2, 0xac,0x37, +0x2d,0x10,0x7e,0x1f,0x13,0x8a,0x2d,0x31,0x22,0xca,0x3b,0x7c,0x5b,0x7e,0x43,0x28, +0x84,0xbe,0x40,0x1, 0x28,0x2, 0x21,0x14,0x7e,0xa3,0x2a,0x6e,0x7e,0x70,0x2, 0xac, +0x75,0x9, 0xd3,0x26,0xfa,0x9, 0xc3,0x26,0xfb,0x7c,0xbd,0x7c,0x7c,0x12,0x30,0x3, +0x7f,0x1, 0x90,0x60,0xaa,0xe4,0x93,0x70,0x12,0x7c,0xfc,0x7c,0x9d,0x7e,0x83,0x2a, +0x70,0x7e,0xe3,0x2a,0x6f,0xa, 0xca,0x6d,0xbb,0x9d,0xbc,0xa, 0xa8,0x1b,0xa5,0xa, +0x5f,0xbd,0x5a,0x58,0x2, 0x21,0x14,0xa, 0x59,0x1b,0x54,0xbe,0x54,0x0, 0x0, 0x48, +0x4e,0x7c,0xb9,0x14,0x12,0x31,0x5a,0x50,0x46,0x7c,0xb9,0x14,0x12,0x31,0x17,0xb, +0x1a,0xe0,0x7d,0x3b,0x12,0x31,0x4c,0x8, 0x11,0x9d,0xae,0xbe,0xa4,0x0, 0x0, 0x58, +0x4, 0x6d,0x55,0x80,0x2, 0x7d,0x5a,0x12,0x31,0x44,0x7c,0xb8,0x24,0xfe,0xbc,0xbf, +0x78,0x1d,0x90,0x60,0xaa,0xe4,0x93,0x70,0x4, 0x7d,0xfd,0x1b,0xf4,0x7d,0x5f,0x12, +0x31,0x1e,0xb, 0x1a,0x30,0xbd,0x3a,0x8, 0x6, 0x12,0x31,0x20,0x1b,0x1a,0xa0,0xa, +0xa9,0xb, 0xa4,0xa, 0x5e,0xbd,0xa5,0x58,0x4b,0x7c,0xb9,0x4, 0x12,0x31,0x5a,0x50, +0x43,0x7c,0xb9,0x4, 0x12,0x31,0x17,0xb, 0x1a,0xe0,0x7d,0x3c,0x12,0x31,0x4c,0x8, +0x11,0x9d,0xae,0xbe,0xa4,0x0, 0x0, 0x58,0x4, 0x6d,0x55,0x80,0x2, 0x7d,0x5a,0x12, +0x31,0x44,0x7c,0xb8,0x24,0xfe,0xbc,0xbf,0x78,0x1a,0x90,0x60,0xaa,0xe4,0x93,0x70, +0x4, 0x7d,0xfd,0x1b,0xf4,0x7d,0x5f,0x12,0x31,0x1e,0xb, 0x1a,0x50,0xbd,0x5a,0x8, +0x3, 0x1b,0x1a,0xa0,0xda,0x3b,0x22,0x12,0x31,0x27,0x7d,0xd3,0x7d,0x5d,0x3e,0x54, +0x7e,0x1f,0x13,0x8a,0x2d,0x35,0x22,0x7c,0x5b,0x7e,0x43,0x2a,0x6e,0x90,0x60,0xab, +0xe4,0x93,0x7c,0xab,0x90,0x60,0xaa,0xe4,0x93,0x70,0x8, 0x7c,0x75,0xac,0x74,0xa, +0x2a,0x2d,0x32,0x22,0x2d,0x31,0x7d,0x20,0x1b,0x1a,0x50,0x22,0x3e,0x34,0x7f,0x40, +0x2d,0x93,0xb, 0x4a,0xa0,0xbe,0xe4,0x0, 0x0, 0x22,0x7c,0xab,0x6c,0x77,0x80,0x12, +0xa, 0x27,0x2e,0x24,0x60,0xac,0x12,0x51,0x4f,0x93,0xbc,0xba,0x78,0x2, 0xd3,0x22, +0xb, 0x70,0x90,0x60,0xa7,0xe4,0x93,0xbc,0xb7,0x38,0xe5,0xc3,0x22,0x12,0x36,0x9c, +0x60,0x30,0x6c,0x22,0x80,0x24,0x7c,0xb2,0x12,0x31,0x5a,0x50,0x1b,0x7c,0xb2,0x12, +0x31,0x27,0x7d,0x3, 0x12,0x36,0x94,0x49,0x55,0x38,0xe8,0x7d,0x40,0x3e,0x44,0x7e, +0x1f,0x13,0x8a,0x2d,0x34,0x1b,0x1a,0x50,0xb, 0x20,0x7e,0x73,0x2a,0x75,0xbc,0x72, +0x38,0xd4,0x22,0xca,0x3b,0x6c,0xff,0x12,0xc0,0xde,0x7e,0xb3,0x16,0x91,0xb4,0x1, +0x2, 0x80,0x2, 0x41,0xdd,0x6c,0xcc,0x41,0xcf,0x12,0xc0,0x8b,0xf5,0x27,0x9, 0xb3, +0x26,0xfb,0xf5,0x28,0x7e,0xb3,0x28,0x84,0xb4,0x1, 0xb, 0x7e,0xb3,0x36,0x71,0x70, +0x5, 0x12,0x32,0xe0,0x80,0x6, 0x75,0x25,0x2, 0x75,0x26,0x2, 0x7c,0xbc,0x12,0x30, +0x19,0xd2,0x3, 0x12,0x32,0xe7,0x7e,0xb3,0x36,0xec,0xb4,0x1, 0x1b,0x7e,0xb3,0x2a, +0x3, 0xb4,0x1, 0x14,0x7e,0xb3,0x28,0x84,0xb4,0x1, 0xd, 0x7e,0x37,0x28,0x86,0xbe, +0x34,0x0, 0xa, 0x40,0x3, 0x12,0x32,0xe0,0xe5,0x27,0x60,0xc, 0xa, 0x2e,0x1b,0x24, +0xe5,0x27,0xa, 0x3b,0xbd,0x32,0x48,0x3, 0x75,0x25,0x1, 0xe5,0x28,0x60,0xc, 0xa, +0x2d,0x1b,0x24,0xe5,0x28,0xa, 0x3b,0xbd,0x32,0x48,0x3, 0x75,0x26,0x1, 0x75,0x24, +0x0, 0x80,0x3c,0xe5,0x24,0xbc,0xbc,0x68,0x34,0x12,0x35,0xda,0x9, 0xa3,0x26,0xfa, +0x7a,0xa1,0x29,0x9, 0xb3,0x26,0xfb,0xf5,0x2a,0xa, 0x2a,0xe5,0x27,0x12,0x2f,0xd6, +0xbe,0x34,0x0, 0x3, 0x18,0x17,0xe5,0x2a,0xa, 0x2b,0xe5,0x28,0x12,0x2f,0xd6,0xbe, +0x34,0x0, 0x3, 0x18,0x8, 0x75,0x25,0x1, 0x75,0x26,0x1, 0x80,0x7, 0x5, 0x24,0x12, +0x36,0xa4,0x38,0xbf,0xe5,0x27,0x7e,0x71,0x28,0x12,0xa0,0x94,0x50,0x8, 0x12,0x31, +0x7d,0x12,0x35,0xd3,0x80,0x8, 0x12,0x69,0x84,0x50,0x3, 0x12,0x32,0xe0,0xe5,0x25, +0x7e,0x71,0x26,0x7c,0x6c,0x7c,0x5f,0x12,0x33,0x21,0x90,0x61,0x36,0xe4,0x93,0xb4, +0x1, 0x16,0x7e,0x70,0x9, 0xac,0x7c,0x7d,0x13,0x2e,0x14,0x27,0x76,0x6d,0x0, 0x2e, +0x34,0x27,0x78,0x6d,0x22,0x12,0x7f,0xc5,0x12,0x31,0x7d,0xb, 0xf0,0xb, 0xc0,0x7e, +0x73,0x28,0x84,0xbc,0x7c,0x28,0x2, 0x21,0xc9,0x7a,0xf3,0x28,0x84,0xda,0x3b,0x22, +0x75,0x25,0x3, 0x75,0x26,0x3, 0x22,0x12,0x36,0x9c,0x60,0x34,0x6c,0x22,0x80,0x28, +0x7c,0xb2,0x12,0x31,0x5a,0x50,0x1f,0x7c,0xb2,0x12,0x31,0x27,0x3e,0x34,0x7e,0x7f, +0x13,0x8a,0x2d,0xf3,0xb, 0x7a,0x30,0x12,0x36,0x94,0x59,0x35,0x38,0xe8,0x30,0x3, +0x5, 0x6d,0x33,0x1b,0x7a,0x30,0xb, 0x20,0x7e,0x73,0x2a,0x75,0xbc,0x72,0x38,0xd0, +0x22,0xca,0x3b,0x7c,0xf5,0x7c,0xe6,0x7c,0xd7,0x7c,0xcb,0x74,0x9, 0xac,0xbf,0x7d, +0xd5,0x2e,0xd4,0x27,0x76,0x6d,0xcc,0x7e,0x37,0x2a,0x66,0x7a,0x35,0x43,0xe4,0x39, +0xb6,0x0, 0x6, 0x7e,0x70,0x2, 0xac,0x7e,0x9, 0xb3,0x26,0xfa,0xf5,0x31,0x9, 0xb3, +0x26,0xfb,0xf5,0x32,0x7e,0x73,0x2a,0x6e,0x7c,0x6d,0x7e,0x8, 0x0, 0x35,0x12,0x35, +0x80,0xf5,0x33,0xe5,0x31,0x7e,0x73,0x2a,0x6d,0x7c,0x6c,0x7e,0x8, 0x0, 0x34,0x12, +0x35,0x80,0x7c,0xab,0xe5,0x34,0x7e,0x71,0x35,0x12,0x30,0x3, 0x7a,0x35,0x3f,0x7e, +0x34,0x15,0x9e,0x7a,0x35,0x41,0x85,0x34,0x39,0x85,0x35,0x3a,0x7a,0xa1,0x3b,0x85, +0x33,0x3c,0x7e,0xb3,0x2a,0x59,0xf5,0x3d,0x75,0x3e,0x0, 0x7e,0x8, 0x0, 0x39,0x12, +0x90,0x50,0x7d,0x23,0x6d,0x33,0x7e,0x97,0x15,0xa0,0x6d,0x88,0x2f,0x41,0x7e,0x37, +0x15,0xa2,0x6d,0x22,0x7d,0x3, 0x6d,0x11,0x7e,0x37,0x15,0xa4,0x2f,0x10,0x7a,0x1d, +0x2b,0x7e,0x37,0x15,0xa6,0x7d,0x23,0x6d,0x33,0x7e,0xb7,0x15,0xa8,0x6d,0xaa,0x2f, +0x51,0x7f,0x74,0xa, 0x4c,0xe5,0x31,0xa, 0x5b,0x9d,0x54,0xf5,0x2f,0x81,0xc7,0xa, +0x4d,0xe5,0x32,0xa, 0x5b,0x9d,0x54,0xf5,0x30,0x81,0xb1,0xe5,0x2f,0xbe,0xb0,0x0, +0x58,0x2, 0x81,0xaf,0x7e,0x73,0x2a,0x6d,0xbe,0x71,0x2f,0x18,0x2, 0x81,0xaf,0xe5, +0x30,0xbe,0xb0,0x0, 0x58,0x2, 0x81,0xaf,0x7e,0x73,0x2a,0x6e,0xbe,0x71,0x30,0x18, +0x2, 0x81,0xaf,0xe5,0x2f,0x7e,0x71,0x30,0x12,0x2c,0x40,0x7e,0x53,0x2a,0x59,0xa, +0x25,0x9d,0x32,0x7a,0x35,0x37,0xbe,0x34,0x0, 0x0, 0x18,0x2, 0x81,0xaf,0x7e,0x35, +0x43,0xbe,0x35,0x37,0x18,0xd, 0x7f,0x16,0x2e,0x34,0x0, 0x6, 0x7e,0x1b,0xb0,0x4, +0x7a,0x1b,0xb0,0xe5,0x31,0xa, 0x2b,0xe5,0x2f,0x12,0x35,0x65,0x18,0xb, 0xe5,0x32, +0xa, 0x2b,0xe5,0x30,0x12,0x35,0x65,0x8, 0x56,0xe5,0x2f,0x7e,0x71,0x30,0x7c,0x6e, +0x12,0xb8,0xa8,0xf5,0x36,0xb4,0x2, 0xc, 0x7e,0x35,0x37,0x7d,0x23,0xe, 0x24,0x9d, +0x32,0x7a,0x35,0x37,0xe5,0x36,0xbe,0xb0,0x2, 0x68,0x5, 0xe5,0x36,0xb4,0x1, 0x2f, +0x7e,0x45,0x37,0x7d,0x34,0x1a,0x26,0x1a,0x24,0xe5,0x2f,0x12,0x35,0x56,0x7f,0x1, +0x7e,0x1d,0x2b,0x9f,0x10,0x7a,0x1d,0x2b,0x7d,0x34,0x1a,0x26,0x1a,0x24,0xe5,0x30, +0x12,0x35,0x56,0x9f,0x51,0x12,0x35,0x5d,0x9f,0x41,0x12,0x35,0x5d,0x9f,0x71,0x5, +0x30,0xa, 0x2d,0xe5,0x32,0xa, 0x3b,0x2d,0x32,0x1a,0x27,0xe5,0x30,0x1a,0x3b,0xbd, +0x32,0x18,0x2, 0x61,0xeb,0x5, 0x2f,0xa, 0x2c,0xe5,0x31,0xa, 0x3b,0x2d,0x32,0x1a, +0x27,0xe5,0x2f,0x1a,0x3b,0xbd,0x32,0x18,0x2, 0x61,0xdf,0xbe,0x48,0x0, 0x0, 0x78, +0x2, 0xb, 0x4c,0xbe,0x78,0x0, 0x0, 0x78,0x2, 0xb, 0x7c,0x7e,0x1d,0x2b,0x7f,0x4, +0x12,0x35,0x71,0x1b,0x6a,0x30,0x7f,0x15,0x7f,0x7, 0x12,0x35,0x71,0x79,0x36,0x0, +0x2, 0x7e,0xb3,0x2a,0x65,0x60,0xd, 0x1e,0xf4,0x1e,0xe4,0x50,0x4, 0x4e,0xf4,0x80, +0x0, 0x14,0x78,0xf3,0xbe,0x78,0x0, 0x7f,0x28,0x4, 0x7e,0x78,0x0, 0x7f,0x7d,0x3f, +0x39,0x76,0x0, 0x5, 0x74,0x9, 0xac,0xbe,0x9, 0x75,0x27,0x7c,0x39,0x76,0x0, 0x6, +0xbe,0x70,0xf, 0x28,0x6, 0x74,0xf, 0x39,0xb6,0x0, 0x6, 0x7e,0xa1,0x31,0x7e,0x70, +0x9, 0xac,0x7f,0x19,0xa3,0x27,0x7d,0x7e,0xa1,0x32,0x7e,0x70,0x9, 0xac,0x7f,0x19, +0xa3,0x27,0x7e,0xda,0x3b,0x22,0x1a,0x1b,0x1a,0x2, 0x2, 0x1e,0xeb,0x7e,0x35,0x37, +0x1a,0x26,0x1a,0x24,0x22,0x1a,0x3b,0x9d,0x32,0x12,0x21,0x0, 0xbe,0x34,0x0, 0x1, +0x22,0x74,0x6, 0x2f,0x11,0x14,0x78,0xfb,0x12,0x1f,0x7, 0x2e,0x18,0x0, 0x20,0x22, +0xca,0xf8,0x7c,0xf6,0x7c,0x87,0x7c,0x9b,0xa, 0x2f,0x7d,0x32,0x3e,0x34,0xb, 0x34, +0x7c,0xb7,0xbc,0xf9,0x38,0x14,0xa, 0xf8,0x1b,0xf4,0xa, 0x3f,0x9d,0xf3,0xa, 0x39, +0xbd,0x3f,0x18,0x6, 0x7c,0xab,0xa, 0x39,0x80,0x1d,0xbc,0xf9,0x28,0xd, 0xa, 0x39, +0xa, 0x5f,0x2d,0x53,0xb, 0x54,0x7c,0xab,0xe4,0x80,0x10,0xa, 0x3f,0xa, 0x58,0x2d, +0x53,0xa, 0x39,0x9d,0x53,0x7c,0xab,0x9d,0x32,0x7c,0xb7,0x7a,0xb, 0xb0,0x7c,0xba, +0xda,0xf8,0x22,0x75,0x25,0x0, 0x75,0x26,0x0, 0x22,0x7e,0x71,0x24,0x74,0x2, 0xac, +0x7b,0x22,0xca,0x3b,0x7e,0xb3,0x2a,0x74,0xf5,0x27,0x12,0x0, 0x66,0x50,0x2, 0xc1, +0x6f,0x6d,0x33,0x9e,0x37,0x2a,0x4f,0x3e,0x34,0xbe,0x37,0x7, 0xf8,0x18,0x70,0x7e, +0xb3,0x16,0x92,0x70,0x6a,0x7e,0xb3,0x28,0xa8,0xb4,0x1, 0x60,0x7e,0x77,0x2a,0x51, +0x7e,0x67,0x2a,0x53,0x75,0x24,0x0, 0x80,0x4e,0xe5,0x24,0x12,0x2f,0xb7,0x60,0x45, +0x12,0x35,0xda,0x12,0x9d,0x80,0xf5,0x26,0x7e,0xb3,0x2a,0x3, 0xb4,0x1, 0xe, 0x90, +0x60,0xab,0xe4,0x93,0xbe,0xb1,0x26,0x78,0x4, 0xe, 0x64,0xe, 0x74,0x7e,0xa1,0x26, +0x74,0x2, 0xa4,0x49,0x35,0x4, 0xfc,0xbd,0x36,0x48,0xd, 0xe5,0x25,0xa, 0x2b,0xe5, +0x27,0x12,0x9b,0x18,0xbd,0x37,0x58,0xd, 0xe5,0x24,0x6c,0x77,0x12,0x51,0x5f,0x12, +0x35,0xda,0x12,0x37,0x9f,0x5, 0x24,0x12,0x36,0xa4,0x38,0xad,0x12,0xa6,0x5, 0xda, +0x3b,0x22,0x12,0x46,0xa2,0x12,0x24,0x9a,0x12,0x73,0x28,0x12,0x22,0xf2,0x7e,0xb3, +0x37,0x8, 0x24,0xfd,0x68,0x9, 0xb, 0xb1,0x78,0xf4,0x12,0x58,0xf0,0x80,0xef,0x12, +0x29,0x7e,0x80,0xea,0x7c,0xa3,0xb, 0x30,0x74,0x2, 0xa4,0x22,0x6c,0x33,0x90,0x60, +0xa7,0xe4,0x93,0x22,0x7e,0x73,0x28,0x84,0xbe,0x71,0x24,0x22,0x12,0xa5,0xee,0x12, +0x9b,0x49,0x12,0x35,0xe2,0x12,0x9a,0x38,0x2, 0x36,0xbb,0xca,0x3b,0x12,0x2b,0xfa, +0x7e,0xb3,0x28,0x84,0x60,0x6, 0x7e,0xb3,0x35,0xe2,0x60,0x9, 0xe4,0x7a,0xb3,0x35, +0xe4,0x7a,0xb3,0x35,0x69,0x7e,0xb3,0x35,0xe2,0x70,0x69,0x6c,0x99,0x80,0x5d,0x74, +0x2, 0xac,0xb9,0x9, 0x85,0x26,0xfa,0x9, 0xf5,0x26,0xfb,0x7c,0xb9,0x12,0x9a,0xed, +0x40,0x48,0x6c,0xee,0x80,0x3c,0x74,0x2, 0xac,0xbe,0x9, 0xd5,0x35,0x6a,0x9, 0xc5, +0x35,0x6b,0xa, 0x28,0xa, 0x3d,0x12,0x37,0x67,0x78,0x25,0xa, 0x2f,0xa, 0x3c,0x12, +0x37,0x67,0x78,0x1c,0x7c,0xb9,0x12,0x37,0x6f,0x7e,0x14,0x62,0x2b,0x12,0x87,0xee, +0x58,0xe, 0x7c,0xb9,0x6c,0x77,0x12,0x51,0x5f,0x7c,0xb8,0x7c,0x7f,0x12,0x37,0xa7, +0xb, 0xe0,0x7e,0x73,0x35,0xe4,0xbc,0x7e,0x38,0xbc,0xb, 0x90,0x7e,0x73,0x28,0x84, +0xbc,0x79,0x38,0x9b,0x7e,0x73,0x35,0x69,0x7a,0x73,0x35,0xe4,0xa, 0x37,0x3e,0x34, +0xca,0x39,0x7e,0x18,0x35,0xa6,0x7e,0x8, 0x35,0x6a,0x12,0x20,0xb9,0x1b,0xfd,0xe4, +0x7a,0xb3,0x35,0xe2,0xda,0x3b,0x22,0x9d,0x32,0x12,0x21,0x0, 0x4d,0x33,0x22,0x7c, +0xab,0x7e,0x70,0x2, 0xac,0x7a,0x9, 0xb3,0x26,0xfa,0x9, 0x73,0x26,0xfb,0x2, 0x2c, +0x40,0xca,0xf8,0x7c,0xfb,0x7e,0x70,0x2, 0x12,0x99,0x6c,0x7f,0x71,0x7c,0xbf,0x12, +0x37,0x6f,0x12,0xa4,0xcf,0x7f,0x17,0x12,0x1f,0x58,0x7c,0xb7,0xda,0xf8,0x22,0x9, +0xb3,0x26,0xfa,0x9, 0x73,0x26,0xfb,0x7c,0x6b,0x7e,0xa3,0x35,0x69,0x7e,0x50,0x2, +0xac,0x5a,0x19,0x62,0x35,0xa6,0x19,0x72,0x35,0xa7,0x7c,0xba,0x4, 0x7a,0xb3,0x35, +0x69,0x22,0xca,0xf8,0x6c,0xff,0x80,0x18,0x7c,0xbf,0x12,0x37,0x6f,0xbe,0x37,0x2a, +0x5c,0x58,0xb, 0x12,0x51,0x5b,0x7e,0x70,0x2, 0xac,0x7f,0x12,0x37,0x9f,0xb, 0xf0, +0x12,0x52,0x66,0x38,0xe3,0x12,0x2b,0xfa,0xda,0xf8,0x22,0xca,0xf8,0x7c,0xab,0xbe, +0xa0,0x34,0x38,0x3, 0x2, 0x38,0xfd,0xbe,0xa0,0x35,0x78,0x6, 0x7e,0xb3,0x2b,0x10, +0x41,0x1c,0xbe,0xa0,0x36,0x68,0x5, 0xbe,0xa0,0x37,0x78,0x1d,0x7e,0x35,0x8, 0x7d, +0x23,0xb, 0x24,0x7a,0x25,0x8, 0x2e,0x37,0x31,0xce,0x7e,0x39,0xb0,0xbe,0xa0,0x37, +0x68,0x2, 0x41,0x1c,0x75,0x1a,0x36,0x41,0x1c,0xbe,0xa0,0x38,0x68,0x5, 0xbe,0xa0, +0x39,0x78,0x1b,0x7e,0xf3,0x37,0xc0,0x7c,0xbf,0x4, 0x7a,0xb3,0x37,0xc0,0xbe,0xa0, +0x39,0x78,0x3, 0x75,0x1a,0x38,0xa, 0x3f,0x9, 0xb3,0x2b,0x21,0x41,0x1c,0xbe,0xa0, +0x3a,0x68,0x5, 0xbe,0xa0,0x3b,0x78,0x1b,0x7e,0xf3,0x37,0xc2,0x7c,0xbf,0x4, 0x7a, +0xb3,0x37,0xc2,0xbe,0xa0,0x3b,0x78,0x3, 0x75,0x1a,0x3a,0xa, 0x3f,0x9, 0xb3,0x2b, +0x44,0x41,0x1c,0xbe,0xa0,0xfb,0x78,0x6, 0x7e,0xb3,0x2b,0x12,0x41,0x1c,0xbe,0xa0, +0x5e,0x78,0x26,0x7e,0xf, 0x38,0xc0,0x69,0x30,0x0, 0x8e,0xa, 0x56,0x1e,0x54,0x1e, +0x54,0x1e,0x54,0x5e,0x54,0x0, 0x1, 0x3, 0x3, 0x54,0xc0,0xa, 0x36,0x5e,0x34,0x0, +0x3, 0x7c,0xa7,0x4c,0xba,0x44,0x80,0x41,0x1c,0xbe,0xa0,0x3c,0x68,0x5, 0xbe,0xa0, +0x3d,0x78,0x1b,0x7e,0xf3,0x37,0xc4,0x7c,0xbf,0x4, 0x7a,0xb3,0x37,0xc4,0xbe,0xa0, +0x3d,0x78,0x3, 0x75,0x1a,0x3c,0xa, 0x3f,0x9, 0xb3,0x2a,0x7a,0x41,0x1c,0xbe,0xa0, +0x3e,0x68,0x5, 0xbe,0xa0,0x3f,0x78,0x1b,0x7e,0xf3,0x37,0xc6,0x7c,0xbf,0x4, 0x7a, +0xb3,0x37,0xc6,0xbe,0xa0,0x3f,0x78,0x3, 0x75,0x1a,0x3e,0xa, 0x3f,0x9, 0xb3,0x2a, +0x9d,0x41,0x1c,0xbe,0xa0,0x40,0x40,0xd, 0xbe,0xa0,0x4d,0x38,0x8, 0xa, 0x3a,0x9, +0xb3,0x37,0x9c,0x41,0x1c,0xbe,0xa0,0x4e,0x68,0x5, 0xbe,0xa0,0x4f,0x78,0x1e,0x7e, +0xf3,0x37,0xe1,0x7c,0xbf,0x4, 0x7a,0xb3,0x37,0xe1,0xbe,0xa0,0x4f,0x78,0x3, 0x75, +0x1a,0x4e,0xa, 0x3f,0x2e,0x37,0x31,0xcc,0x7e,0x39,0xb0,0x41,0x1c,0xbe,0xa0,0x51, +0x68,0x5, 0xbe,0xa0,0x52,0x78,0x28,0x7e,0x14,0x60,0x0, 0x6d,0x0, 0x2e,0x4, 0x0, +0xff,0x7e,0xb3,0x37,0xec,0xa, 0x3b,0x6d,0x22,0x2f,0x10,0x7e,0x1b,0x70,0x4, 0x7a, +0xb3,0x37,0xec,0xbe,0xa0,0x52,0x78,0x3, 0x75,0x1a,0x51,0x7c,0xb7,0x41,0x1c,0xbe, +0xa0,0x5c,0x68,0x5, 0xbe,0xa0,0x5d,0x78,0x1a,0x7e,0xf3,0x37,0xb5,0x7c,0xbf,0x4, +0x7a,0xb3,0x37,0xb5,0xbe,0xa0,0x5d,0x78,0x3, 0x75,0x1a,0x5c,0x7c,0xbf,0x12,0x3a, +0x1f,0x41,0x1c,0xbe,0xa0,0x60,0x40,0xd, 0xbe,0xa0,0x6c,0x38,0x8, 0xa, 0x3a,0x9, +0xb3,0x3, 0x91,0x41,0x1c,0xbe,0xa0,0x6d,0x78,0x4, 0xe5,0xe, 0x80,0x7e,0xbe,0xa0, +0xf4,0x68,0x5, 0xbe,0xa0,0xf5,0x78,0x18,0x7e,0x35,0xa, 0x7d,0x23,0xb, 0x24,0x7a, +0x25,0xa, 0x9, 0xb3,0x31,0xd4,0xbe,0xa0,0xf5,0x78,0x61,0x75,0x1a,0xf4,0x80,0x5c, +0xbe,0xa0,0xf0,0x68,0x5, 0xbe,0xa0,0xf1,0x78,0x9, 0x7c,0x1a,0x2e,0x10,0x20,0xa5, +0xe7,0x80,0x49,0xbe,0xa0,0xf2,0x68,0x5, 0xbe,0xa0,0xf3,0x78,0x1b,0x7e,0x15,0x10, +0x3e,0x14,0x7e,0x1f,0x31,0xd0,0x2d,0x31,0xb, 0x1a,0x30,0xbe,0xa0,0xf2,0x78,0x4, +0xa, 0x56,0x80,0x28,0x7d,0x53,0x80,0x24,0xbe,0xa0,0xf6,0x78,0x4, 0xe5,0xf, 0x80, +0x1b,0xbe,0xa0,0xf7,0x78,0xd, 0x7e,0x34,0x62,0x48,0x7e,0x24,0x0, 0xff,0xb, 0x1a, +0x50,0x80,0x9, 0xbe,0xa0,0xfd,0x78,0x3, 0xe4,0x80,0x1, 0xe4,0xda,0xf8,0x22,0x7c, +0xab,0xbe,0xa0,0x0, 0x40,0x11,0x7e,0xb3,0x2a,0x6e,0xbc,0xba,0x28,0x9, 0x74,0x2, +0xa4,0x49,0x25,0x34,0x0, 0x80,0x51,0x7e,0x13,0x2a,0x6e,0xbc,0x1a,0x38,0x1c,0x7e, +0x3, 0x2a,0x6d,0xa, 0x10,0xa, 0x21,0x2d,0x12,0xa, 0x3a,0xbd,0x31,0x58,0xc, 0x9d, +0x32,0x3e,0x34,0x3e,0x34,0x49,0x23,0x3, 0x60,0x80,0x2d,0x7e,0x3, 0x2a,0x6d,0xa, +0x20,0xa, 0x11,0x7d,0x41,0x2d,0x42,0xa, 0x3a,0xbd,0x34,0x48,0x19,0x7e,0x10,0x2, +0xac,0x1, 0x2d,0x1, 0xbd,0x30,0x58,0xe, 0x9d,0x31,0x9d,0x32,0x3e,0x34,0x3e,0x34, +0x49,0x23,0x3, 0x62,0x80,0x2, 0xe4,0x22,0x7e,0x34,0x0, 0x64,0xad,0x23,0x74,0xc, +0x1e,0x34,0x1e,0x24,0x50,0x3, 0x4e,0x60,0x80,0x14,0x78,0xf4,0x7c,0xb7,0x22,0xca, +0xf8,0x80,0x38,0x7c,0xbf,0x12,0x3a,0x1f,0xa, 0x1b,0x7e,0x63,0x2a,0x6e,0x7e,0x70, +0x2, 0xac,0x67,0x7e,0x10,0x2, 0xac,0x1f,0x2d,0x3, 0x7e,0x1f,0x13,0x8a,0x2d,0x30, +0x12,0x3a,0xde,0x9d,0x35,0x1b,0x1a,0x10,0xb, 0xf0,0x12,0x3a,0xde,0x7e,0x73,0x2a, +0x6e,0xa, 0x27,0x2d,0x25,0xa, 0x3f,0xbd,0x32,0x48,0xc8,0xda,0xf8,0x22,0x7e,0xa3, +0x2a,0x6d,0x74,0x2, 0xa4,0x22,0x12,0x3f,0xaa,0xb4,0x1, 0x14,0xca,0x39,0x7e,0x18, +0x37,0xdc,0x7e,0x8, 0x25,0xee,0x12,0x20,0xb9,0x1b,0xfd,0x12,0x3f,0x49,0x80,0x12, +0xca,0x39,0x7e,0x18,0x37,0xdc,0x7e,0x8, 0x2b,0x70,0x12,0x20,0xb9,0x1b,0xfd,0x12, +0x3f,0x67,0x2, 0x3b,0x15,0x7a,0x1f,0x2a,0xfc,0x7a,0xf, 0x2a,0xf8,0x22,0xca,0xf8, +0x7c,0x6b,0xa5,0xbe,0x0, 0x9, 0x7c,0xb7,0x12,0x7d,0xab,0xd2,0x6, 0xa1,0xa0,0xa5, +0xbe,0x1, 0x3d,0x7a,0x73,0x37,0x9d,0xa5,0xbf,0xad,0x2, 0x80,0x2f,0xa5,0xbf,0xae, +0x4, 0xd2,0x7, 0xa1,0xa0,0xa5,0xbf,0xaa,0x5, 0x12,0xc0,0xf8,0x80,0x1e,0xa5,0xbf, +0xab,0xa, 0x7e,0x34,0x5, 0x7a,0x7a,0x37,0x31,0xce,0x80,0x10,0xa5,0xbf,0xac,0x2, +0x80,0x2, 0xa1,0xa0,0x7e,0x34,0x4, 0xfc,0x7a,0x37,0x31,0xce,0x6d,0x33,0x81,0x1c, +0xbe,0x60,0x4, 0x40,0x20,0xbe,0x60,0x8, 0x38,0x1b,0x12,0x3d,0xa3,0xa5,0xbe,0x7, +0x7, 0x6d,0x33,0x7a,0x35,0xa, 0xa1,0xa0,0xa5,0xbe,0x8, 0x2, 0x80,0x2, 0xa1,0xa0, +0x12,0x7, 0xfb,0xa1,0xa0,0xa5,0xbe,0xa, 0x9, 0x43,0xc, 0x20,0x7a,0x73,0x37,0xa6, +0xa1,0xa0,0xa5,0xbe,0xb, 0x8, 0x12,0x3d,0xa3,0x12,0x3f,0xc8,0xa1,0xa0,0xbe,0x60, +0x1b,0x40,0x7, 0xbe,0x60,0x1c,0x38,0x2, 0xa1,0x38,0xbe,0x60,0x1e,0x40,0xd, 0xbe, +0x60,0x23,0x38,0x8, 0x12,0x3d,0xa5,0x43,0xc, 0x40,0xa1,0xa0,0xbe,0x60,0x15,0x40, +0x1a,0xbe,0x60,0x18,0x38,0x15,0x12,0x3d,0xa5,0xd2,0x6, 0xa5,0xbe,0x15,0x2, 0x80, +0x2, 0xa1,0xa0,0x74,0x7, 0x7a,0xb3,0x37,0xa0,0xa1,0xa0,0xa5,0xbe,0x19,0x7, 0xe4, +0x7a,0xb3,0x37,0xb5,0xa1,0xa0,0xbe,0x60,0x24,0x40,0x7, 0xbe,0x60,0x2c,0x38,0x2, +0xa1,0x38,0xa5,0xbe,0x2d,0x1b,0x12,0x3d,0xa5,0x20,0x7, 0x2, 0xa1,0xa0,0x7e,0x63, +0x37,0xc8,0x7c,0x46,0x6c,0x55,0xa, 0x37,0x2d,0x32,0x3e,0x34,0x7a,0x35,0x8, 0xa1, +0xa0,0xbe,0x60,0x2f,0x40,0xa, 0xbe,0x60,0x33,0x38,0x5, 0x43,0xc, 0x8, 0xa1,0x38, +0xa5,0xbe,0x34,0xf, 0x43,0xc, 0x10,0xbe,0x70,0x64,0x38,0x2, 0xa1,0x38,0x7e,0x70, +0x64,0xa1,0x38,0xbe,0x60,0x38,0x68,0x4, 0xa5,0xbe,0x39,0x21,0x43,0xc, 0x1, 0x7e, +0xf3,0x37,0xc1,0x7c,0xbf,0x4, 0x7a,0xb3,0x37,0xc1,0xa, 0x2f,0x19,0x72,0x2b,0x21, +0xa5,0xbe,0x39,0x2, 0x80,0x2, 0xa1,0xa0,0x75,0x1a,0x38,0xa1,0xa0,0xbe,0x60,0x3a, +0x68,0x4, 0xa5,0xbe,0x3b,0x21,0x43,0xc, 0x2, 0x7e,0xf3,0x37,0xc3,0x7c,0xbf,0x4, +0x7a,0xb3,0x37,0xc3,0xa, 0x2f,0x19,0x72,0x2b,0x44,0xa5,0xbe,0x3b,0x2, 0x80,0x2, +0xa1,0xa0,0x75,0x1a,0x3a,0xa1,0xa0,0xa5,0xbe,0xfb,0x9, 0x43,0xc, 0x4, 0x7a,0x73, +0x2b,0x12,0xa1,0xa0,0xa5,0xbe,0x50,0x6, 0x7a,0x73,0x37,0xec,0xa1,0xa0,0xbe,0x60, +0x3c,0x68,0x4, 0xa5,0xbe,0x3d,0x21,0x43,0xc, 0x1, 0x7e,0xf3,0x37,0xc5,0x7c,0xbf, +0x4, 0x7a,0xb3,0x37,0xc5,0xa, 0x2f,0x19,0x72,0x2a,0x7a,0xa5,0xbe,0x3d,0x2, 0x80, +0x2, 0xa1,0xa0,0x75,0x1a,0x3c,0xa1,0xa0,0xbe,0x60,0x3e,0x68,0x4, 0xa5,0xbe,0x3f, +0x21,0x43,0xc, 0x1, 0x7e,0xf3,0x37,0xc7,0x7c,0xbf,0x4, 0x7a,0xb3,0x37,0xc7,0xa, +0x2f,0x19,0x72,0x2a,0x9d,0xa5,0xbe,0x3f,0x2, 0x80,0x2, 0xa1,0xa0,0x75,0x1a,0x3e, +0xa1,0xa0,0xbe,0x60,0x40,0x40,0xd, 0xbe,0x60,0x42,0x38,0x8, 0x12,0x3d,0xa5,0x75, +0xd, 0x1, 0x80,0xa, 0xa5,0xbe,0x43,0xb, 0x12,0x3d,0xa5,0x75,0xd, 0x2, 0x12,0x3a, +0xe6,0x80,0x7d,0xa5,0xbe,0x44,0x8, 0x12,0x3d,0xa5,0x12,0x3f,0x70,0x80,0x71,0xbe, +0x60,0x45,0x68,0x4, 0xa5,0xbe,0x46,0x5, 0x12,0x3d,0xa5,0x80,0x63,0xbe,0x60,0x4e, +0x68,0x4, 0xa5,0xbe,0x4f,0x20,0x43,0xd, 0x4, 0x7e,0xf3,0x37,0xe2,0x7c,0xbf,0x4, +0x7a,0xb3,0x37,0xe2,0xa, 0x2f,0x2e,0x27,0x31,0xcc,0x7a,0x29,0x70,0xa5,0xbe,0x4f, +0x3f,0x75,0x1a,0x4e,0x80,0x3a,0xa5,0xbe,0x6d,0x5, 0x7a,0x71,0xe, 0x80,0x31,0xbe, +0x60,0xf0,0x40,0x25,0xbe,0x60,0xf3,0x38,0x20,0x7c,0x16,0x2e,0x10,0x20,0x7c,0xb7, +0xa5,0xf7,0xa5,0xbe,0xf3,0x1a,0x7e,0x15,0x12,0x7e,0x5, 0x10,0x3e,0x4, 0x7e,0x1f, +0x31,0xd0,0x2d,0x30,0x1b,0x1a,0x10,0x80,0x7, 0xa5,0xbe,0xf6,0x3, 0x7a,0x71,0xf, +0xda,0xf8,0x22,0xd2,0x6, 0xa, 0x26,0x19,0x72,0x37,0x9c,0x22,0x7a,0xb3,0x2b,0x0, +0x70,0x14,0x12,0x3f,0x67,0x12,0x3b,0x15,0x7e,0x18,0x6, 0x76,0x7a,0x1f,0x6, 0xf4, +0x7e,0x18,0x4, 0x7e,0x80,0x10,0xb4,0x1, 0x11,0x12,0x3f,0x49,0x12,0x3b,0x15,0x12, +0x3f,0xf2,0x7e,0x18,0x4, 0x0, 0x7a,0x1f,0x6, 0xf8,0x22,0x74,0x1, 0x12,0x0, 0x1e, +0xe4,0x12,0x3d,0xac,0x12,0x3d,0xf3,0xe4,0x12,0x0, 0x1e,0x74,0x1, 0x12,0x3d,0xac, +0x2, 0x3d,0xf3,0xca,0x3b,0x7e,0xd3,0x2a,0x73,0x7e,0xc3,0x2a,0x74,0x7e,0x8, 0x1f, +0x44,0x12,0x3f,0xe9,0x7e,0x8, 0x1f,0x8a,0x7e,0x34,0x0, 0x46,0x12,0x20,0xde,0x7e, +0x8, 0x1f,0xd0,0x7e,0x34,0x0, 0xa, 0xe4,0x12,0x20,0xde,0x7e,0x8, 0x1f,0xda,0x7e, +0x34,0x0, 0xa, 0x12,0x20,0xde,0x7e,0xf3,0x2a,0xfc,0x7e,0x18,0x2a,0xdc,0x7a,0x1d, +0x24,0x7e,0x18,0x1f,0xd0,0x7a,0x1d,0x28,0x7c,0xbd,0x7c,0x7c,0x7e,0x8, 0x2a,0xb9, +0x12,0xba,0x6c,0x6c,0xee,0x80,0x2b,0xa, 0x3e,0x9, 0xa3,0x2a,0xdc,0xa, 0x3a,0x2e, +0x34,0x20,0x73,0x12,0x91,0x6d,0x7c,0xab,0xbe,0xa0,0x1c,0x50,0x13,0xa, 0x3e,0x12, +0x3f,0xb, 0xa, 0x4a,0x19,0xb4,0x1f,0x44,0x7e,0xb3,0x2a,0xfb,0x19,0xb4,0x1f,0x8a, +0xb, 0xe0,0xbc,0xce,0x38,0xd1,0x6c,0xee,0x80,0x24,0xa, 0x3e,0x9, 0xa3,0x2a,0xb9, +0xbe,0xa0,0x23,0x50,0x17,0xa, 0x2e,0xa, 0x3c,0x2d,0x32,0x12,0x3f,0xb, 0xa, 0x4a, +0x19,0xb4,0x1f,0x60,0x7e,0xb3,0x2a,0xfb,0x19,0xb4,0x1f,0xa6,0xb, 0xe0,0xbc,0xde, +0x38,0xd8,0x7e,0xb3,0x2a,0xfd,0x7e,0x8, 0x1f,0xe4,0x60,0x9, 0x7e,0x18,0x1f,0xd0, +0x12,0xb9,0x2, 0x80,0x3, 0x12,0x3f,0xd9,0x6c,0xee,0x7e,0x18,0x1f,0xe4,0x7a,0x1f, +0x1f,0x34,0x74,0x2, 0xac,0xbe,0x49,0x35,0x1f,0xd0,0x7a,0x37,0x1f,0x38,0x74,0x2, +0xac,0xbe,0x49,0x35,0x1f,0xda,0x7a,0x37,0x1f,0x3a,0x7e,0x70,0xe, 0xac,0x7e,0x2e, +0x34,0x1f,0x44,0x6d,0x22,0x7a,0x1f,0x1f,0x3c,0x7e,0x70,0xe, 0xac,0x7e,0x2e,0x34, +0x1f,0x8a,0x7a,0x1f,0x1f,0x40,0x7e,0x8, 0x1f,0x34,0x7c,0xbf,0x7c,0x7e,0x12,0x8, +0xd1,0xb, 0xe0,0xbe,0xe0,0x5, 0x40,0xb2,0xda,0x3b,0x22,0x2e,0x37,0x2a,0xfe,0x7e, +0x39,0xb0,0x22,0x74,0x1, 0x7a,0xb3,0x37,0x8, 0x12,0xaf,0x1f,0x12,0x13,0xf5,0x12, +0xb9,0x8e,0xe4,0x12,0xa, 0x66,0x7e,0x24,0x3, 0xd4,0x12,0x3f,0xcb,0x74,0x1, 0x12, +0x3d,0xac,0x12,0x3f,0xd2,0x7e,0x34,0xd0,0xc, 0x12,0x1, 0xe, 0x12,0x3d,0xdb,0x7e, +0x34,0x0, 0x1, 0xe4,0x6c,0x55,0x2, 0x13,0x1, 0x7e,0x1f,0x25,0xf2,0x7e,0xf, 0x25, +0xee,0x22,0x7a,0xb3,0x2b,0x0, 0x70,0x5, 0x12,0x3f,0x67,0x80,0x6, 0xb4,0x1, 0x6, +0x12,0x3f,0x49,0x12,0x3b,0x15,0x22,0x7e,0x1f,0x2b,0x74,0x7e,0xf, 0x2b,0x70,0x22, +0x12,0x3f,0xaa,0xb4,0x1, 0x17,0xca,0x39,0x7e,0x18,0x25,0xee,0x7e,0x8, 0x37,0xdc, +0x12,0x20,0xb9,0x1b,0xfd,0x12,0xc0,0xef,0x12,0x3f,0x49,0x80,0x1a,0xca,0x39,0x7e, +0x18,0x2b,0x70,0x7e,0x8, 0x37,0xdc,0x12,0x20,0xb9,0x1b,0xfd,0x7e,0x37,0x2b,0x76, +0x7a,0x37,0x31,0xcc,0x12,0x3f,0x67,0x2, 0x3b,0x15,0x7e,0xb3,0x37,0xe0,0x7e,0x34, +0x0, 0x4, 0x22,0x7c,0x6b,0x12,0x3f,0xe1,0x78,0x5, 0x7c,0xb6,0x2, 0x7d,0xd6,0xb4, +0x4, 0x5, 0x7c,0xb6,0x2, 0x3b,0x1e,0x22,0xb2,0x82,0x22,0x7d,0x32,0x74,0xfa,0x2, +0x12,0xd0,0x7e,0x8, 0x2a,0x6d,0x2, 0x0, 0x2e,0x7e,0x34,0x0, 0x8, 0xe4,0x2, 0x20, +0xde,0x7e,0xb3,0x37,0x9c,0xc4,0x54,0x7, 0x22,0x7e,0x34,0x0, 0x46,0x74,0x3f,0x2, +0x20,0xde,0x7e,0x18,0x5, 0xf8,0x7a,0x1f,0x6, 0xf4,0x22,0x30,0x6, 0x3b,0xc2,0x6, +0x12,0x25,0xe6,0x7e,0x73,0x37,0xa1,0x7a,0x73,0x2a,0x4d,0x7e,0x73,0x37,0xa2,0x7a, +0x73,0x2b,0x1d,0x7e,0x73,0x37,0xa2,0x7a,0x73,0x2b,0x1, 0x7e,0xb3,0x37,0xa3,0x60, +0x18,0x7e,0x34,0x0, 0x2, 0x12,0x41,0x5d,0x7e,0x34,0x0, 0x1, 0x12,0x41,0x5d,0x6d, +0x33,0x12,0x41,0x5d,0xe4,0x7a,0xb3,0x37,0xa3,0x12,0x4f,0xfa,0x2, 0x40,0x3f,0xe5, +0xc, 0x70,0x2, 0x21,0x5c,0xe5,0xc, 0x30,0xe0,0x10,0x53,0xc, 0xfe,0x12,0x72,0x92, +0x12,0x79,0x31,0x7e,0x8, 0x2a,0x6d,0x12,0x9, 0xa1,0xe5,0xc, 0x30,0xe1,0x6, 0x53, +0xc, 0xfd,0x12,0xba,0x23,0xe5,0xc, 0x30,0xe2,0x32,0x53,0xc, 0xfb,0x7e,0xb3,0x2b, +0x12,0x60,0x9, 0x7e,0x8, 0x2a,0x6d,0x12,0x6, 0xba,0x80,0xb, 0x7e,0xb3,0x2b,0x65, +0x7e,0x73,0x2b,0x64,0x12,0xb, 0xad,0x7e,0x73,0x2b,0x12,0x2e,0x70,0xff,0x92,0x4, +0x90,0x60,0x51,0xe4,0x93,0x9e,0xb3,0x2a,0x77,0x12,0xb, 0x1e,0xe5,0xc, 0x30,0xe3, +0x45,0x53,0xc, 0xf7,0x7e,0x73,0x37,0xce,0x7a,0x73,0x2b,0xf, 0x12,0x87,0x52,0x7a, +0xb3,0x0, 0x4f,0xbe,0xb0,0xff,0x68,0xb, 0x43,0xc, 0x20,0x7e,0x73,0x0, 0x4f,0x7a, +0x73,0x37,0xa6,0x12,0x6e,0x29,0x12,0xc0,0x42,0x7e,0x73,0x37,0xcf,0xbe,0x73,0x2b, +0x62,0x68,0x6, 0x7a,0x73,0x2b,0x62,0xd2,0xc, 0x30,0xc, 0x7, 0x12,0xaf,0x1d,0xe4, +0x12,0xa, 0x66,0x12,0x8d,0xec,0xe5,0xc, 0x30,0xe4,0xf, 0x53,0xc, 0xef,0x7e,0x43, +0x37,0xd0,0x7e,0x50,0xa, 0xac,0x45,0x12,0x3f,0xcb,0xe5,0xc, 0x30,0xe6,0x4e,0x53, +0xc, 0xbf,0x7e,0x73,0x37,0xbc,0xbe,0x70,0x7, 0x28,0x6, 0x74,0x7, 0x7a,0xb3,0x37, +0xbc,0xa9,0xd5,0xcb,0x74,0xe, 0x12,0x43,0xeb,0x7c,0x7b,0x5e,0x70,0xf, 0x7e,0x63, +0x37,0xbc,0xa, 0x26,0x2e,0x24,0x0, 0x3, 0x12,0x47,0x81,0x7c,0x65,0x4c,0x76,0x74, +0xe, 0x12,0x43,0x5f,0x12,0x43,0xeb,0x12,0x43,0xf3,0x7e,0x73,0x37,0xbf,0x7a,0x73, +0x2b,0x14,0x7e,0x73,0x37,0xbe,0x7a,0x73,0x2b,0x1f,0x12,0xc1,0x1, 0xe5,0xc, 0x30, +0xe5,0xa, 0x53,0xc, 0xdf,0x7e,0xb3,0x37,0xa6,0x2, 0x48,0x77,0x22,0xca,0xd8,0xca, +0x79,0x7d,0xd3,0x90,0x60,0x50,0xe4,0x93,0x7c,0xfb,0x90,0x60,0x51,0xe4,0x93,0x7c, +0x8b,0xa, 0x38,0xa, 0xcf,0x2d,0xc3,0xb, 0xc4,0x7d,0x3c,0x7c,0xe7,0x12,0x26,0x57, +0xa9,0xd0,0xc4,0xa9,0xd5,0xcb,0x74,0x7, 0x12,0x43,0xeb,0x7c,0x8b,0x74,0x7, 0x7e, +0x70,0xf, 0x12,0x43,0xf0,0x7e,0x54,0x0, 0x78,0x7e,0x1f,0x38,0xc4,0x79,0x51,0x0, +0x6, 0x7e,0x54,0x0, 0x80,0x7e,0x1f,0x38,0xc4,0x79,0x51,0x0, 0x8, 0x7e,0x54,0x0, +0xc, 0x7e,0x1f,0x38,0xc4,0x79,0x51,0x0, 0x10,0xbe,0xd4,0x0, 0x2, 0x78,0xb, 0x7e, +0x1f,0x38,0xc4,0x12,0x43,0x48,0x44,0x1, 0x80,0x20,0x7e,0x1f,0x38,0xc4,0x12,0x43, +0x48,0x44,0x8, 0x1b,0x1a,0x50,0x4d,0xdd,0x7e,0x1f,0x38,0xc4,0x78,0x7, 0x12,0x43, +0x48,0x54,0xfb,0x80,0x5, 0x12,0x43,0x48,0x44,0x4, 0x1b,0x1a,0x50,0x7e,0x1f,0x38, +0xc0,0x69,0xe1,0x0, 0x84,0x69,0x51,0x0, 0x90,0x7d,0xf5,0x2e,0x34,0x0, 0x90,0x5e, +0xa0,0xf6,0x1b,0x1a,0x50,0x7e,0xb3,0x37,0x12,0xbe,0xb0,0x6, 0x40,0x3, 0xb4,0xff, +0xe, 0x12,0x43,0x53,0x54,0xe6,0x12,0x43,0x50,0x4e,0x54,0x1, 0xa4,0x80,0xc, 0x12, +0x43,0x53,0x5e,0x54,0xfe,0xe6,0x12,0x43,0x50,0x44,0xa4,0x1b,0x1a,0x50,0xbe,0xd4, +0x0, 0x2, 0x78,0x2d,0x7e,0x1f,0x38,0xc4,0x12,0x43,0x48,0x5e,0x54,0x0, 0xf, 0x1b, +0x1a,0x50,0x7e,0x1f,0x38,0xc4,0x12,0x43,0x48,0x44,0x50,0x1b,0x1a,0x50,0x7e,0x34, +0x0, 0x2, 0x12,0x44,0x72,0x12,0x44,0x4b,0x12,0x44,0x28,0x7a,0x37,0x31,0xd4,0x61, +0x4, 0x6c,0xdd,0x41,0xfe,0x4c,0xdd,0x78,0x4, 0x6c,0x99,0x80,0x2b,0xbc,0xfd,0x40, +0x12,0xa, 0xcd,0x9, 0x9c,0x2a,0xb8,0xbe,0x90,0x23,0x40,0x3, 0x7e,0x90,0x22,0xb, +0x90,0x80,0x15,0xa, 0x3f,0xa, 0xcd,0x9d,0xc3,0x9, 0x9c,0x2a,0xdb,0xbe,0x90,0x1c, +0x40,0x3, 0x7e,0x90,0x1b,0x2e,0x90,0x24,0x7e,0x1f,0x38,0xc4,0x12,0x43,0x48,0x5e, +0x54,0x0, 0xf, 0x1b,0x1a,0x50,0xa, 0xc9,0x3e,0xc4,0x3e,0xc4,0x3e,0xc4,0x3e,0xc4, +0x7e,0x1f,0x38,0xc4,0x12,0x43,0x48,0x4d,0x5c,0x1b,0x1a,0x50,0xe5,0xe, 0x60,0x7, +0xe5,0xe, 0xbe,0xb0,0x64,0x28,0x6, 0x7e,0x34,0x0, 0x2, 0x80,0x4, 0xe5,0xe, 0xa, +0x3b,0x12,0x44,0x72,0x12,0x44,0x4b,0xbe,0xd4,0x0, 0x1, 0x78,0x10,0x12,0x44,0x4b, +0x12,0x44,0x28,0x74,0x2, 0xac,0xbd,0x59,0x35,0x31,0xd6,0x80,0xf, 0x12,0x44,0x28, +0xa, 0x5e,0xa, 0x2d,0x2d,0x25,0x3e,0x24,0x59,0x32,0x31,0xd6,0xb, 0xd0,0xbc,0xed, +0x28,0x2, 0x41,0x65,0xa9,0xd5,0xcb,0x74,0x7, 0x7c,0x78,0x12,0x43,0xf0,0xa9,0xc0, +0xc4,0x7e,0x1f,0x38,0xc0,0x79,0xe1,0x0, 0x84,0x7e,0x1f,0x38,0xc0,0x79,0xf1,0x0, +0x90,0x6d,0x33,0x7e,0xf, 0x38,0xc4,0x79,0x30,0x0, 0x6, 0x7e,0xf, 0x38,0xc4,0x79, +0x30,0x0, 0x8, 0x7e,0xf, 0x38,0xc4,0x79,0x30,0x0, 0x10,0x7e,0xf, 0x38,0xc4,0x79, +0x30,0x0, 0xe, 0xda,0x79,0xda,0xd8,0x22,0x2e,0x34,0x0, 0xe, 0xb, 0x1a,0x50,0x22, +0x1b,0x1a,0x50,0x7e,0x1f,0x38,0xc0,0x2e,0x34,0x0, 0x84,0xb, 0x1a,0x50,0x22,0xf5, +0xfd,0x7a,0x71,0xfe,0x22,0xca,0x79,0xa9,0xd5,0xcb,0x74,0x2, 0x7e,0x70,0x3f,0x12, +0x43,0x5f,0x74,0xf, 0x12,0x43,0xeb,0x7c,0xfb,0x74,0xf, 0x7c,0x7f,0x5e,0x70,0xfe, +0x12,0x43,0x5f,0x74,0xc, 0x12,0x43,0xeb,0x7c,0xfb,0x54,0x7f,0x68,0x8, 0x74,0xc, +0x7e,0x70,0xf8,0x12,0x43,0x5f,0x90,0x61,0x18,0xe4,0x93,0x7c,0xab,0xbe,0xa0,0x7, +0x38,0xb, 0x12,0x45,0x6, 0x7c,0xb7,0xa, 0x7b,0xb, 0x75,0x80,0x16,0x90,0x61,0x17, +0xe4,0x93,0xb4,0x1, 0xe, 0xbe,0xa0,0x7, 0x28,0x9, 0x12,0x45,0x6, 0xa, 0x77,0x2e, +0x74,0x0, 0x7, 0x74,0xe, 0x7c,0x7f,0x12,0x43,0x5f,0x74,0x7, 0x12,0x43,0xeb,0x7c, +0xfb,0x5e,0xf0,0xfb,0x90,0x60,0x2, 0xe4,0x93,0xa, 0x3b,0x3e,0x34,0x3e,0x34,0x4c, +0xf7,0x74,0x7, 0x7c,0x7f,0x12,0x43,0xf0,0xda,0x79,0x22,0xf5,0xfd,0xe5,0xfe,0x22, +0x12,0x43,0x5f,0x75,0xfd,0xff,0xa9,0xc5,0xcb,0x22,0x6d,0x33,0x7e,0x8, 0x0, 0x24, +0x7e,0x24,0x0, 0x12,0x12,0xb7,0xc7,0xe5,0x34,0x20,0xe7,0x1b,0xa9,0xd5,0xcb,0x74, +0x3, 0x7e,0x71,0x27,0x12,0x43,0x5f,0x74,0xb, 0x7e,0x71,0x2f,0x12,0x43,0x5f,0x74, +0xc, 0x7e,0x71,0x30,0x12,0x43,0xf0,0x22,0x7e,0xf, 0x38,0xc4,0x69,0x30,0x0, 0xa, +0x7d,0x23,0x6d,0x33,0x69,0x10,0x0, 0xc, 0x6d,0x0, 0x2f,0x10,0x74,0x7, 0x1e,0x34, +0x1e,0x24,0x50,0x3, 0x4e,0x60,0x80,0x14,0x78,0xf4,0x22,0x7e,0x34,0x0, 0x1, 0x7e, +0xf, 0x38,0xc4,0x79,0x30,0x0, 0x4, 0x7e,0xf, 0x38,0xc4,0x69,0x30,0x0, 0x12,0x5e, +0x34,0x0, 0x1, 0x68,0xf2,0x7e,0x34,0x0, 0x1, 0x79,0x30,0x0, 0x12,0x22,0x7e,0x34, +0x0, 0x1, 0x7d,0x23,0x80,0x12,0x7e,0x30,0x4, 0x80,0x5, 0x74,0xfa,0x12,0x45,0x15, +0x7c,0x23,0x1b,0x30,0xa5,0xba,0x0, 0xf3,0x7d,0x32,0x1b,0x24,0x4d,0x33,0x78,0xe6, +0x22,0x12,0x47,0xf8,0xc2,0x3, 0x12,0xb6,0x57,0xc2,0x5, 0x12,0x45,0x51,0xc2,0x3, +0x12,0x47,0x21,0xa9,0xd5,0xcb,0x74,0xf, 0x12,0x43,0xeb,0x7a,0x1b,0xb0,0x74,0xf, +0x6c,0x77,0x12,0x43,0x5f,0xe5,0xfc,0x7a,0xb, 0xb0,0x43,0xfc,0x10,0x2, 0x43,0xf3, +0x24,0xab,0x68,0x10,0x24,0xef,0x68,0x1c,0x24,0xde,0x68,0x26,0x24,0xde,0x78,0x2f, +0x74,0x5, 0x80,0x2d,0x7e,0xb3,0x33,0xff,0xb4,0x5, 0x2a,0x12,0x44,0x6e,0x12,0xb6, +0xf, 0x2, 0xb6,0xc4,0x7e,0xb3,0x33,0xff,0xb4,0x5, 0x1a,0x12,0x44,0x6e,0x75,0xe9, +0xff,0x22,0x7e,0xb3,0x33,0xff,0xb4,0x5, 0xc, 0x12,0x44,0x6e,0x2, 0xb6,0xbe,0x74, +0x1, 0x7a,0xb3,0x33,0xff,0x22,0xa, 0x3a,0x2e,0x34,0x0, 0x3, 0x3e,0x34,0x3e,0x34, +0x3e,0x34,0x3e,0x34,0x22,0x7c,0xab,0x80,0xe, 0x7e,0x70,0x3, 0x80,0x1, 0x0, 0x7c, +0x67,0x1b,0x70,0xa5,0xbe,0x0, 0xf7,0x7c,0x6a,0x1b,0xa0,0xa5,0xbe,0x0, 0xea,0x22, +0x7c,0x6b,0xa9,0xd5,0xcb,0x74,0xf, 0x12,0x43,0x5f,0x7a,0x61,0xfc,0x12,0x43,0xf3, +0x12,0x46,0x68,0xd2,0x3, 0x12,0x47,0x21,0x12,0x45,0x6b,0x12,0x13,0xde,0x2, 0x13, +0x96,0xa9,0xd0,0xce,0xa2,0x5, 0xa9,0x91,0xc9,0x22,0x30,0x4, 0x6, 0x12,0x45,0x6b, +0x2, 0x13,0x96,0x12,0x47,0xf8,0xc2,0x5, 0x2, 0x45,0x51,0xd2,0x5, 0x12,0x45,0x51, +0x74,0x1, 0x22,0x12,0x45,0xcf,0x12,0x91,0x8, 0x75,0xcd,0x0, 0xa9,0xd6,0xeb,0xa9, +0xd7,0xcd,0xc2,0xce,0x12,0xc0,0xd5,0x12,0x44,0x91,0x74,0x1, 0x12,0x46,0x7, 0xa9, +0xc6,0xeb,0xa9,0xc7,0xcd,0xd2,0xce,0xe5,0x25,0x7e,0x71,0x24,0x2, 0x45,0x30,0x30, +0x18,0x5, 0xc2,0x4, 0x12,0x45,0x5a,0xa9,0xd1,0xcd,0xa9,0xc5,0xea,0x30,0x17,0x3, +0x20,0x18,0x14,0x12,0x45,0xcf,0xa9,0xd0,0xce,0xa9,0xc4,0xc9,0x74,0x2, 0x12,0x46, +0x7, 0xa9,0xd0,0xce,0xa9,0xd4,0xc9,0xa9,0xc1,0xcd,0xd2,0x4, 0x2, 0x45,0x5a,0x74, +0x81,0x7a,0xb3,0x39,0x2, 0x22,0x80,0x1d,0x12,0x45,0xcf,0x12,0x47,0xff,0x68,0x5, +0xc2,0x4, 0x12,0x45,0x5a,0x7e,0xb3,0x34,0x3a,0xbe,0xb0,0x2, 0x68,0x18,0x20,0x17, +0x15,0xe4,0x12,0x46,0x7, 0x20,0x93,0xe0,0x12,0x45,0xcf,0xa9,0xd1,0xcd,0xa9,0xc5, +0xea,0x74,0x2, 0x2, 0x46,0x7, 0x22,0x7c,0xab,0x7e,0xb3,0x39,0x2, 0xb4,0x81,0x38, +0x4c,0xaa,0x78,0x5, 0xa9,0xd0,0x87,0x80,0x29,0xbe,0xa0,0x1, 0x78,0xf, 0xc2,0xaf, +0xa9,0xd0,0xce,0xa9,0xc7,0xc9,0xa9,0xd1,0x87,0xd2,0xaf,0x80,0x15,0xbe,0xa0,0x2, +0x78,0x16,0xc2,0xaf,0x20,0x93,0x9, 0xa9,0xd0,0xce,0xa9,0xd7,0xc9,0xa9,0xd1,0x87, +0xd2,0xaf,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe4,0x7a,0xb3,0x39,0x2, 0x22,0xd2,0x3, +0x80,0x12,0x30,0x3, 0xc, 0x12,0x47,0xff,0x68,0x7, 0xc2,0x3, 0xc2,0x4, 0x12,0x45, +0x5a,0x12,0x45,0xd6,0x30,0x17,0xeb,0x22,0xca,0xf8,0xa2,0xaf,0xe4,0x33,0x7c,0xfb, +0xd2,0x3, 0x12,0xb6,0x57,0xa9,0xd0,0xcb,0xc2,0xaf,0xa9,0xd0,0x9e,0x75,0x9d,0x0, +0xa9,0xd0,0x9e,0x75,0x9c,0x20,0xa9,0xd0,0x9e,0xa9,0xd4,0x9e,0xa9,0xd0,0xcd,0x74, +0x41,0x12,0x45,0x15,0xa9,0xd0,0x9e,0xa9,0xd7,0x9e,0x2e,0xf0,0xff,0x92,0xaf,0xda, +0xf8,0x22,0xe4,0x12,0x46,0xf0,0x12,0xb6,0x60,0x12,0x26,0x57,0x12,0xb6,0xdb,0x12, +0x43,0x65,0x12,0xb6,0x5, 0x12,0xb6,0x77,0x12,0x0, 0x4a,0x12,0xb6,0x83,0x12,0x7e, +0xa0,0x12,0xb6,0x93,0xd2,0xaf,0x12,0x47,0x8a,0x12,0xb8,0x1e,0x12,0x43,0xfa,0x12, +0x46,0x68,0x7e,0x8, 0x3, 0xf1,0x12,0xa9,0xa3,0x90,0x60,0x50,0xe4,0x93,0xca,0xb8, +0x90,0x60,0x51,0xe4,0x93,0x7c,0x7b,0x7e,0x24,0xff,0xff,0xda,0xb8,0x2, 0x12,0x34, +0xa9,0xc4,0xca,0xa9,0xc5,0xca,0xbe,0xb0,0x8, 0x50,0x3, 0x12,0x90,0xff,0xa9,0xd0, +0xce,0xa9,0xc0,0xc9,0xd2,0x5, 0x12,0x45,0x51,0xa9,0xc2,0xea,0x75,0xc1,0x6, 0x75, +0xc2,0xc, 0xd2,0x3, 0x12,0x47,0x21,0xa9,0xc1,0xc4,0xa9,0xd2,0xc4,0xa9,0xc2,0xe1, +0x22,0xa2,0x3, 0xa9,0x97,0xc1,0xa2,0x3, 0xa9,0x97,0xc2,0x22,0x7e,0x34,0x36,0xe1, +0x30,0xd, 0x4b,0xc2,0xd, 0x9, 0x53,0x0, 0x2, 0x12,0x47,0x7f,0x7a,0x27,0x2a,0x4f, +0x9, 0x53,0x0, 0x3, 0x12,0x47,0x7f,0x7a,0x27,0x2a,0x51,0x9, 0x53,0x0, 0x4, 0x12, +0x47,0x7f,0x7a,0x27,0x2a,0x53,0x7e,0x39,0x50,0xa, 0x25,0x3e,0x24,0x3e,0x24,0x7a, +0x27,0x2a,0x5a,0x9, 0x53,0x0, 0x1, 0xa, 0x25,0x3e,0x24,0x3e,0x24,0x7a,0x27,0x2a, +0x5c,0x9, 0x73,0x0, 0x5, 0xa, 0x37,0x12,0x45,0xc, 0x7a,0x37,0x2a,0x62,0x22,0xa, +0x25,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x22,0xa9,0xd5,0xcb,0x74,0x10,0x12, +0x43,0xeb,0x7c,0x7b,0x12,0x43,0xf3,0x30,0xe7,0x3, 0x7e,0x70,0x2, 0xd2,0xcd,0x7e, +0x24,0x0, 0xef,0x7e,0xf, 0x38,0xc0,0x79,0x20,0x0, 0x84,0x7e,0x24,0x20,0x5f,0x7e, +0xf, 0x38,0xc0,0x79,0x20,0x0, 0x82,0x7e,0x24,0x41,0x0, 0x7e,0xf, 0x38,0xc0,0x79, +0x20,0x0, 0x90,0x7c,0x67,0x6c,0x77,0x2e,0x34,0x0, 0xc1,0x7e,0xf, 0x38,0xc0,0x79, +0x30,0x0, 0x86,0x7e,0x34,0x29,0x90,0x7e,0xf, 0x38,0xc0,0x79,0x30,0x0, 0x8a,0x7e, +0x34,0x6a,0xd1,0x7e,0xf, 0x38,0xc0,0x79,0x30,0x0, 0x8c,0x7e,0x34,0x3, 0x61,0x7e, +0xf, 0x38,0xc0,0x79,0x30,0x0, 0x8e,0x22,0xe4,0x12,0x13,0xde,0x2, 0x13,0x96,0x7e, +0xb3,0x34,0x3a,0xbe,0xb0,0x1, 0x22,0x12,0xc0,0xf8,0x12,0xc0,0xef,0x6d,0x33,0x7a, +0x35,0xa, 0x12,0x48,0x56,0x12,0x48,0x30,0x74,0x50,0x7a,0xb3,0x37,0xd0,0x7e,0x24, +0x3, 0x20,0x12,0x3f,0xcb,0xe4,0x12,0xc0,0x27,0x6d,0x33,0x7a,0x37,0x39,0x4, 0x22, +0x7e,0x73,0x2b,0x62,0x7a,0x73,0x37,0xcf,0x22,0xa2,0xa, 0xe4,0x33,0x7a,0xb3,0x37, +0xca,0x7e,0x73,0x37,0xce,0xbe,0x73,0x2b,0xf, 0x68,0xa, 0xe5,0xc, 0x70,0x6, 0x12, +0x48,0x56,0x12,0x48,0x30,0x22,0x7e,0x73,0x2b,0xf, 0x7a,0x73,0x37,0xce,0x7e,0x73, +0x2b,0x1f,0x7a,0x73,0x37,0xbe,0x7e,0x73,0x2b,0x20,0x7a,0x73,0x37,0xbd,0x7e,0x73, +0x2b,0x14,0x7a,0x73,0x37,0xbf,0x22,0xca,0xd8,0xca,0x79,0x7c,0xdb,0x90,0x61,0xc5, +0xe4,0x93,0x7c,0xab,0xbe,0xd0,0x80,0x78,0x18,0x7e,0xe0,0xff,0x6c,0xff,0x80,0xb, +0x12,0x48,0xe8,0x38,0x4, 0x7c,0xeb,0x7c,0xdf,0xb, 0xf0,0xbc,0xaf,0x38,0xf1,0x80, +0x1a,0xbe,0xd0,0x81,0x78,0x15,0x6c,0xee,0x6c,0xff,0x80,0xb, 0x12,0x48,0xe8,0x40, +0x4, 0x7c,0xeb,0x7c,0xdf,0xb, 0xf0,0xbc,0xaf,0x38,0xf1,0xbc,0xad,0x38,0x2, 0x6c, +0xdd,0x7c,0xbd,0x12,0x8d,0xb3,0x12,0x48,0x6e,0x7e,0x73,0x2b,0x1f,0x7a,0x73,0x37, +0xbe,0x12,0x49,0x4, 0x7e,0x73,0x2b,0xf, 0x7a,0x73,0x37,0xce,0x12,0x48,0x30,0x7a, +0xd3,0x37,0xa6,0xda,0x79,0xda,0xd8,0x22,0x7e,0x90,0x5, 0xac,0x9f,0x9, 0xb4,0x26, +0x33,0xbc,0xbe,0x22,0x30,0x3, 0x3, 0x12,0x48,0x6e,0xa2,0x4, 0x92,0x5, 0x12,0x49, +0xc3,0x2, 0x49,0x4, 0x7e,0x73,0x2b,0x20,0x7a,0x73,0x37,0xbd,0x22,0x74,0x40,0x12, +0x6e,0x8b,0x50,0x9, 0xd2,0x3, 0xd2,0x4, 0x12,0x48,0xf4,0x80,0x1c,0x74,0x1, 0x12, +0x49,0x47,0x7e,0x43,0x37,0xbb,0x7e,0x50,0x64,0xac,0x45,0x12,0x87,0xf8,0x7a,0xb3, +0x2b,0x1f,0x7e,0xf, 0x38,0xd9,0x12,0x4d,0x9b,0x12,0x49,0x4, 0x7e,0x73,0x2b,0x1f, +0x7a,0x73,0x37,0xbe,0x2, 0x48,0x6e,0xca,0x3b,0x7c,0xdb,0xe4,0x7a,0xb3,0x2b,0x14, +0x12,0xc0,0x42,0x7e,0xc0,0xa, 0x12,0x4e,0x6e,0x30,0xb, 0xfd,0x74,0x1, 0x12,0x0, +0xe, 0x7e,0x1f,0x38,0xd9,0x12,0x90,0x58,0x7d,0x73,0xbe,0x74,0xff,0xff,0x78,0x9, +0x12,0x49,0xb7,0x2e,0x34,0x0, 0x3, 0x80,0x18,0xbe,0x74,0x80,0x0, 0x28,0x7, 0x12, +0x49,0xb7,0xb, 0x35,0x80,0xb, 0xbe,0x74,0x40,0x0, 0x28,0xc, 0x12,0x49,0xb7,0xb, +0x34,0x1b,0xa, 0x30,0x1b,0xc0,0x78,0xbe,0xbe,0xd0,0x1, 0x78,0x9, 0x7e,0x1f,0x38, +0xd9,0x12,0x8f,0xfb,0x7d,0x73,0x7e,0x1f,0x38,0xc8,0x69,0x31,0x0, 0x1a,0x7a,0x73, +0x2b,0x14,0x7d,0x37,0xda,0x3b,0x22,0x7e,0xf, 0x38,0xc8,0x2e,0x14,0x0, 0x1a,0xb, +0xa, 0x30,0x22,0xca,0x3b,0x7e,0x34,0xff,0xff,0x7a,0x35,0x35,0x7e,0xb3,0x37,0xb1, +0xf5,0x2a,0x7e,0xb3,0x2a,0x6d,0xf5,0x2b,0x7e,0xb3,0x2a,0x6e,0xf5,0x2c,0x7e,0xb3, +0x2a,0x70,0xf5,0x2d,0x7e,0xb3,0x2a,0x6f,0xf5,0x2e,0x7e,0x34,0x27,0x10,0x7a,0x35, +0x2f,0x7e,0x18,0x40,0x0, 0x7a,0x1d,0x31,0x12,0x4e,0x67,0x30,0xb, 0xfd,0x74,0x1, +0x12,0x0, 0xe, 0x7e,0x8, 0x34,0x0, 0x12,0x4e,0x5f,0x6c,0xff,0x80,0x35,0x12,0x4c, +0x40,0x6c,0xee,0x80,0x19,0x7e,0x11,0x2c,0xac,0x1e,0x3e,0x4, 0x7e,0x30,0x2, 0xac, +0x3f,0x2d,0x10,0x7e,0x1d,0x31,0x2d,0x31,0xb, 0x1a,0x10,0x12,0x4c,0x47,0xe5,0x2e, +0xbc,0xbe,0x38,0xe1,0xe5,0x2e,0x12,0x4c,0x56,0x74,0x2, 0xac,0xbf,0x59,0x35,0x34, +0x0, 0xb, 0xf0,0xe5,0x2d,0xbc,0xbf,0x38,0xc5,0x12,0xc0,0xba,0x68,0xb, 0x7e,0x34, +0x10,0x0, 0x12,0x4c,0x7c,0x59,0x35,0x33,0xfe,0x6c,0xff,0x80,0x78,0x12,0x4c,0x40, +0x6c,0xee,0x80,0x14,0x12,0x4e,0x38,0x1e,0x34,0x1e,0x24,0x50,0x3, 0x4e,0x60,0x80, +0x14,0x78,0xf4,0x7d,0x13,0x12,0x4c,0x47,0xe5,0x2a,0xbc,0xbe,0x38,0xe6,0xe5,0x2a, +0x12,0x4c,0x56,0x74,0x4, 0xac,0xbf,0x59,0x35,0x3, 0x60,0xe5,0x2a,0xbe,0xb1,0x2d, +0x50,0x35,0x12,0x4c,0x40,0x7e,0xe1,0x2a,0x80,0x14,0x12,0x4e,0x38,0x1e,0x34,0x1e, +0x24,0x50,0x3, 0x4e,0x60,0x80,0x14,0x78,0xf4,0x7d,0x13,0x12,0x4c,0x47,0xe5,0x2d, +0xbc,0xbe,0x38,0xe6,0xe5,0x2a,0xa, 0x3b,0x6d,0x22,0xe5,0x2d,0xa, 0x1b,0x6d,0x0, +0x9f,0x1, 0x12,0x4c,0x5a,0x80,0x4, 0x7e,0x34,0x10,0x0, 0x74,0x4, 0xac,0xbf,0x59, +0x35,0x3, 0x62,0xb, 0xf0,0xe5,0x2e,0xbc,0xbf,0x38,0x82,0xe5,0x2d,0xa, 0x1b,0x6d, +0x0, 0x7e,0x18,0x0, 0x7a,0x12,0x1f,0x7, 0x6c,0xff,0x80,0x2e,0x74,0x2, 0xac,0xbf, +0x49,0x25,0x34,0x0, 0xa, 0x5f,0xad,0x53,0x7e,0x14,0x10,0x0, 0x9d,0x15,0xad,0x12, +0x74,0xc, 0x1e,0x14,0x1e,0x4, 0x50,0x3, 0x4e,0x20,0x80,0x14,0x78,0xf4,0x7d,0x21, +0x74,0x2, 0xac,0xbf,0x59,0x25,0x34,0x0, 0xb, 0xf0,0xe5,0x2d,0xbc,0xbf,0x38,0xcc, +0xe5,0x2b,0xa, 0x1b,0x6d,0x0, 0x7e,0x18,0x0, 0x28,0x12,0x1f,0x7, 0x6c,0xff,0x80, +0x5c,0x74,0x4, 0xac,0xbf,0x49,0x25,0x3, 0x60,0xa, 0x1f,0xad,0x13,0x7e,0xf4,0x10, +0x0, 0x9d,0xf1,0xad,0xf2,0x74,0xc, 0x1e,0xf4,0x1e,0xe4,0x50,0x4, 0x4e,0xf4,0x80, +0x0, 0x14,0x78,0xf3,0x7d,0x2f,0x74,0x4, 0xac,0xbf,0x59,0x25,0x3, 0x60,0xe5,0x2a, +0xbe,0xb1,0x2d,0x50,0x26,0x74,0x4, 0xac,0xbf,0x49,0x25,0x3, 0x62,0x2e,0x14,0x10, +0x0, 0xad,0x12,0x74,0xc, 0x1e,0x14,0x1e,0x4, 0x50,0x3, 0x4e,0x20,0x80,0x14,0x78, +0xf4,0x7d,0x21,0x74,0x4, 0xac,0xbf,0x59,0x25,0x3, 0x62,0xb, 0xf0,0xe5,0x2b,0xbc, +0xbf,0x38,0x9e,0x7e,0x73,0x37,0xb3,0xa, 0x37,0x6d,0x22,0x74,0xc, 0x2f,0x11,0x14, +0x78,0xfb,0x7e,0xf4,0x0, 0x64,0x7d,0x1f,0x12,0x1f,0x5, 0x7d,0xe3,0x7a,0xe5,0x35, +0x7e,0x73,0x37,0xb4,0xa, 0x37,0x6d,0x22,0x74,0xc, 0x2f,0x11,0x14,0x78,0xfb,0x7d, +0x1f,0x12,0x1f,0x5, 0x7d,0x63,0x6c,0xff,0x80,0x20,0x74,0x2, 0xac,0xbf,0x49,0x45, +0x34,0x0, 0xbe,0x45,0x35,0x28,0x9, 0x7e,0x35,0x35,0x59,0x35,0x34,0x0, 0x80,0x8, +0xbd,0x46,0x50,0x4, 0x59,0x65,0x34,0x0, 0xb, 0xf0,0xe5,0x2d,0xbc,0xbf,0x38,0xda, +0x6c,0xff,0x80,0x3a,0x74,0x4, 0xac,0xbf,0x49,0x45,0x3, 0x60,0xbe,0x45,0x35,0x28, +0x9, 0x7e,0x35,0x35,0x59,0x35,0x3, 0x60,0x80,0x8, 0xbd,0x46,0x50,0x4, 0x59,0x65, +0x3, 0x60,0x49,0x45,0x3, 0x62,0xbe,0x45,0x35,0x28,0x9, 0x7e,0x35,0x35,0x59,0x35, +0x3, 0x62,0x80,0x8, 0xbd,0x46,0x50,0x4, 0x59,0x65,0x3, 0x62,0xb, 0xf0,0xe5,0x2b, +0xbc,0xbf,0x38,0xc0,0x30,0x5, 0x6, 0x7e,0xd, 0x31,0x12,0x4d,0x9b,0xda,0x3b,0x22, +0x9f,0x11,0x7a,0x1f,0x24,0xf4,0x22,0x6d,0x0, 0x7e,0x1f,0x24,0xf4,0x2f,0x10,0x7a, +0x1f,0x24,0xf4,0xb, 0xe0,0x22,0xa, 0x1b,0x6d,0x0, 0x7e,0x1f,0x24,0xf4,0x12,0x1f, +0x7, 0x7a,0x1f,0x24,0xf4,0x7e,0x25,0x2f,0x74,0xc, 0x7d,0x13,0x7d,0x32,0x6d,0x22, +0x60,0x5, 0x2f,0x11,0x14,0x78,0xfb,0xb, 0x14,0x2, 0x1f,0x5, 0x7e,0xa1,0x2c,0x74, +0x2, 0xa4,0x22,0xca,0x3b,0x7e,0x8, 0x1f,0x34,0x12,0x4e,0x5f,0x7e,0x1f,0x38,0xf3, +0x7a,0x1d,0x26,0x7e,0xb3,0x2a,0x74,0xf5,0x2d,0x7e,0xb3,0x38,0x86,0xb4,0x1, 0x6, +0x7e,0x38,0x38,0x88,0x80,0x4, 0x7e,0x38,0x5, 0xf8,0x6d,0x33,0x7a,0x35,0x2a,0x74, +0x2, 0x12,0x0, 0x1e,0x7e,0xb3,0x38,0x87,0x70,0xe, 0x7e,0xb3,0x38,0x85,0x70,0x8, +0x74,0x1, 0x7a,0xb3,0x38,0x87,0xa1,0x57,0x7e,0xb3,0x38,0x87,0x70,0x6, 0x74,0x1, +0x7a,0xb3,0x38,0x87,0x7e,0xb3,0x38,0x86,0xb4,0x1, 0x17,0x75,0x2c,0x0, 0x80,0x9, +0x12,0x4c,0x7c,0x12,0x4d,0x8b,0x12,0x4e,0x27,0xe5,0x2d,0xbe,0xb1,0x2c,0x38,0xf0, +0x80,0x1b,0x75,0x2c,0x0, 0x80,0xf, 0x12,0x4c,0x7c,0x12,0x4d,0x8b,0x3e,0x24,0x3e, +0x24,0x1e,0x24,0x12,0x4e,0x27,0xe5,0x2d,0xbe,0xb1,0x2c,0x38,0xea,0x7e,0x34,0x61, +0x59,0x12,0x23,0x9e,0x7a,0x35,0x2e,0x7e,0x18,0x1f,0x34,0x7f,0x1, 0x12,0xa6,0x56, +0x75,0x2c,0x0, 0x80,0x16,0x12,0x4c,0x7c,0x12,0x4d,0x84,0xbe,0x35,0x2a,0x8, 0x9, +0x12,0x4c,0x7c,0x12,0x4d,0x84,0x7a,0x35,0x2a,0x5, 0x2c,0xe5,0x2d,0xbe,0xb1,0x2c, +0x38,0xe3,0x12,0x4d,0x93,0x40,0x25,0x7e,0xb3,0x38,0x86,0xb4,0x1, 0x1e,0x5, 0x1c, +0xe5,0x1c,0xbe,0xb0,0xa, 0x40,0x15,0x75,0x1c,0x0, 0xe5,0x2d,0xa, 0x3b,0x3e,0x34, +0xca,0x39,0x7e,0x1d,0x26,0x7f,0x3, 0x12,0x20,0xb9,0x1b,0xfd,0x74,0x2, 0x12,0x0, +0x1e,0x12,0x4d,0x93,0x50,0xb, 0x74,0x2, 0x7a,0xb3,0x38,0xf2,0xe4,0x7a,0xb3,0x38, +0x87,0xda,0x3b,0x22,0x49,0x35,0x1f,0x34,0x2, 0x21,0x0, 0x7f,0x13,0x2d,0x35,0xb, +0x1a,0x20,0x22,0x7e,0x37,0x2b,0x7, 0xbe,0x35,0x2a,0x22,0x12,0x4d,0xa5,0xb, 0x34, +0x7a,0x73,0x2b,0x20,0x22,0xca,0x79,0x7f,0x10,0x9f,0x0, 0x12,0xc1,0x3a,0x4c,0xaa, +0x78,0x6, 0x7e,0x34,0x0, 0x40,0x80,0x6c,0x6c,0x99,0x80,0x38,0xa, 0xe9,0x2e,0xe4, +0x60,0xac,0x7d,0x7e,0x7a,0xf1,0x82,0x7a,0xe1,0x83,0xe4,0x93,0x7c,0x8b,0x90,0x60, +0xaa,0xe4,0x93,0x70,0xe, 0x7e,0xf3,0x2a,0x6e,0xac,0xf8,0x7e,0xb3,0x2a,0x70,0xa, +0xfb,0x2d,0xf7,0x7d,0xef,0x3e,0xe4,0x7f,0x61,0x2d,0xde,0xb, 0x6a,0xd0,0x6d,0xcc, +0x2f,0x6, 0xb, 0x90,0xbc,0xa9,0x38,0xc4,0xbe,0x8, 0x0, 0x0, 0x78,0x2, 0xb, 0xc, +0xa, 0x5a,0x6d,0x44,0x7f,0x10,0x7f,0x2, 0x12,0x1f,0x7, 0x7f,0x1, 0xb, 0xc, 0x7e, +0x34,0xc4,0x0, 0x7e,0x24,0x0, 0x9, 0x12,0x1f,0x7, 0xbe,0x34,0x0, 0xfa,0x28,0x4, +0x7e,0x34,0x0, 0xfa,0xda,0x79,0x22,0x7e,0xd, 0x26,0x2d,0x15,0xb, 0xa, 0x30,0x9d, +0x32,0x59,0x35,0x1f,0x34,0x5, 0x2c,0x22,0x7e,0x11,0x2c,0xac,0x1f,0x3e,0x4, 0x7e, +0x30,0x2, 0xac,0x3e,0x2d,0x10,0x7e,0x1d,0x31,0x2d,0x31,0xb, 0x1a,0x20,0x7a,0x27, +0x24,0xf2,0x74,0x2, 0xac,0xbe,0x49,0x35,0x34,0x0, 0xad,0x23,0x74,0xc, 0x22,0x7e, +0x34,0x0, 0x38,0xe4,0x2, 0x20,0xde,0x7e,0x8, 0x2a,0x6d,0x12,0xd, 0x72,0xe4,0x12, +0x0, 0xe, 0x74,0x1, 0x7e,0x70,0x99,0x12,0x13,0x2c,0x2, 0x0, 0x4e,0xb4,0x3, 0x5, +0x12,0x4e,0x8d,0x80,0x2, 0xe4,0x22,0x12,0x4e,0x72,0x74,0x1, 0x22,0x12,0xc0,0x9f, +0xe4,0x12,0x0, 0xe, 0x7e,0x8, 0x2a,0x6d,0x2, 0xd, 0x72,0x12,0x7f,0x6f,0x38,0x2, +0xe4,0x22,0x12,0x7f,0x67,0x49,0x55,0x34,0x3b,0xbe,0xb0,0x2, 0x38,0x3, 0x2, 0x4e, +0xb4,0x2, 0x4e,0x7d,0x7e,0xd7,0x2b,0xd, 0xbe,0xb0,0x1, 0x28,0x2, 0xe4,0x22,0x12, +0x7e,0xf8,0x12,0x4e,0xe0,0x7a,0xd7,0x2b,0xd, 0x7e,0x73,0x2a,0xfa,0xa, 0x37,0x3e, +0x34,0x3e,0x34,0xe4,0x7e,0x50,0x1, 0x12,0x13,0x1, 0x12,0x4f,0xaf,0x74,0x1, 0x22, +0x7e,0x8, 0x2a,0x6d,0x2, 0x5, 0xb4,0xca,0x3b,0x7e,0xe3,0x2a,0x74,0x7e,0xf3,0x2a, +0xfa,0x74,0x1, 0x7a,0xb3,0x2a,0xfa,0x12,0x4e,0xe0,0x12,0xc0,0xe7,0x12,0x29,0x6f, +0x7e,0x17,0x2a,0xfe,0x6d,0x0, 0x12,0x20,0xde,0x7e,0xd0,0x7, 0x12,0x26,0x57,0x6c, +0xcc,0x80,0x19,0x7e,0x34,0x0, 0x1, 0x7c,0xbd,0x60,0x5, 0x3e,0x34,0x14,0x78,0xfb, +0x7c,0x67,0x12,0x4f,0xf0,0x4c,0x76,0x7a,0x29,0x70,0xb, 0xc0,0x12,0x7b,0xb7,0xa, +0x3c,0xbd,0x32,0x48,0xde,0x12,0x4f,0x9e,0x30,0x18,0xfd,0x12,0x7b,0xc6,0x7e,0xb3, +0x2a,0x73,0x7c,0x7e,0x12,0x7b,0x31,0x6c,0xcc,0x80,0x29,0x74,0x2, 0xac,0xbc,0x49, +0x35,0x6, 0xfc,0xbe,0x34,0x15,0x40,0x50,0x19,0x7e,0x34,0x0, 0x1, 0x7c,0xbd,0x60, +0x5, 0x3e,0x34,0x14,0x78,0xfb,0x7c,0xb7,0x64,0xff,0x12,0x4f,0xf0,0x5c,0x7b,0x7a, +0x29,0x70,0xb, 0xc0,0x12,0x7b,0xb7,0xa, 0x3c,0xbd,0x32,0x48,0xce,0x1b,0xd0,0xbe, +0xd0,0x0, 0x58,0x88,0x12,0x7b,0x39,0x74,0x2, 0x12,0xc1,0xa, 0x12,0x50,0x51,0x74, +0x2, 0x12,0x0, 0x1e,0x7a,0xf3,0x2a,0xfa,0x12,0x4e,0xe0,0xda,0x3b,0x22,0x74,0x2, +0x12,0x0, 0x1e,0x7e,0xb3,0x2a,0xfc,0x12,0x50,0x51,0x74,0x2, 0x12,0x0, 0x1e,0x74, +0x5, 0x7e,0x70,0x9b,0x12,0x13,0x2c,0x12,0x4f,0xc1,0x7e,0xb3,0x2a,0xfc,0x2, 0xe, +0x94,0x6c,0xaa,0x80,0x22,0xa, 0x3a,0x9, 0x73,0x2a,0xdc,0x2e,0x34,0x20,0x73,0x12, +0x91,0x6d,0x7c,0x7b,0xa, 0x47,0x7e,0x50,0x2, 0xac,0x5a,0x7e,0xf, 0x38,0xc0,0x2d, +0x12,0x79,0x40,0x0, 0x48,0xb, 0xa0,0x7e,0x63,0x2a,0x74,0xbc,0x6a,0x38,0xd6,0x22, +0xa, 0x2c,0x2e,0x27,0x2a,0xfe,0x7e,0x29,0x70,0x22,0xe5,0xd, 0x60,0x52,0xe5,0xd, +0x30,0xe0,0x6, 0x53,0xd, 0xfe,0x12,0x4e,0xe0,0xe5,0xd, 0x30,0xe1,0x14,0x53,0xd, +0xfd,0x7e,0xb3,0x37,0xe0,0x70,0x4, 0x74,0x1, 0x80,0x1, 0xe4,0x12,0xc1,0xa, 0x12, +0x50,0xd4,0xe5,0xd, 0x30,0xe2,0x29,0x53,0xd, 0xfb,0xe4,0x7a,0xb3,0x37,0xe1,0x7e, +0xb3,0x37,0xe0,0x70,0xa, 0x74,0x1, 0x12,0x0, 0x1e,0x12,0x3f,0x67,0x80,0x7, 0xe4, +0x12,0x0, 0x1e,0x12,0x3f,0x49,0x12,0x3b,0x15,0x7e,0xb3,0x2a,0xfc,0x2, 0x50,0x51, +0x22,0xca,0x79,0x7c,0xfb,0x7e,0x8, 0x24,0xf2,0x12,0x3f,0xe9,0x7e,0xa3,0x2a,0x73, +0x7e,0x73,0x2a,0x74,0x6c,0xee,0x80,0x1e,0xa, 0x2e,0x9, 0x62,0x2a,0xdc,0xa, 0x26, +0x12,0x51,0x4b,0x93,0x7c,0x6b,0xbe,0x60,0x1c,0x50,0x9, 0xa, 0x2e,0x12,0x50,0xca, +0x19,0xb2,0x24,0xf2,0xb, 0xe0,0xbc,0x7e,0x38,0xde,0x6c,0xee,0x80,0x1a,0xa, 0x2e, +0x9, 0x62,0x2a,0xb9,0xbe,0x60,0x23,0x50,0xd, 0xa, 0x1e,0xa, 0x27,0x2d,0x21,0x12, +0x50,0xca,0x19,0xb2,0x25,0xe, 0xb, 0xe0,0xbc,0xae,0x38,0xe2,0x6c,0xee,0x7e,0x30, +0xe, 0xac,0x3e,0x2e,0x14,0x24,0xf2,0x6d,0x0, 0x7c,0xbf,0x7c,0x7e,0x12,0x11,0xba, +0xb, 0xe0,0xbe,0xe0,0x5, 0x40,0xe7,0xda,0x79,0x22,0x2e,0x27,0x2a,0xfe,0x7e,0x29, +0xb0,0xa, 0x26,0x22,0xca,0x79,0x7c,0xfb,0x7e,0x8, 0x1f,0x34,0x12,0x3f,0xe9,0x7e, +0xa3,0x2a,0x73,0x7e,0x63,0x2a,0x74,0x6c,0xee,0x80,0x1f,0xa, 0x2e,0x9, 0x72,0x2a, +0xdc,0xbe,0x70,0x1c,0x50,0x12,0xa, 0x27,0x12,0x51,0x4b,0x93,0x7c,0x7b,0x7e,0xb3, +0x2a,0xfb,0xa, 0x27,0x19,0xb2,0x1f,0x34,0xb, 0xe0,0xbc,0x6e,0x38,0xdd,0x6c,0xee, +0x80,0x17,0xa, 0x3e,0x9, 0x73,0x2a,0xb9,0xbe,0x70,0x23,0x50,0xa, 0x7e,0x63,0x2a, +0xfb,0xa, 0x27,0x19,0x62,0x1f,0x50,0xb, 0xe0,0xbc,0xae,0x38,0xe5,0x6c,0xee,0x7e, +0x30,0xe, 0xac,0x3e,0x2e,0x14,0x1f,0x34,0x6d,0x0, 0x7c,0xbf,0x7c,0x7e,0x12,0x11, +0xf8,0xb, 0xe0,0xbe,0xe0,0x5, 0x40,0xe7,0xda,0x79,0x22,0x2e,0x24,0x20,0x73,0x7a, +0x51,0x82,0x7a,0x41,0x83,0xe4,0x22,0x7a,0xb3,0x34,0xc4,0x7c,0xbf,0x6c,0x77,0x7c, +0x67,0x7c,0x7b,0xc4,0x23,0x54,0x1f,0x7c,0xab,0x7c,0xb7,0x54,0x7, 0xa, 0x2b,0x2e, +0x24,0x0, 0x5e,0x12,0x51,0x4f,0x93,0x7c,0x7b,0x4c,0x66,0x68,0xf, 0xa, 0x2a,0x2e, +0x24,0x27,0x72,0x7e,0x29,0xb0,0x4c,0xb7,0x7a,0x29,0xb0,0x22,0x7c,0xb7,0x64,0xff, +0xa, 0x2a,0x2e,0x24,0x27,0x72,0x7e,0x29,0x70,0x5c,0x7b,0x7a,0x29,0x70,0x22,0xca, +0xf8,0x6c,0xaa,0x6d,0x33,0x7e,0x24,0x7f,0xff,0x7e,0xf0,0x1, 0x80,0x32,0xa, 0x1f, +0x7e,0xb3,0x2a,0x6e,0xa, 0xb, 0x2d,0x1, 0x3e,0x4, 0x49,0x10,0x4, 0xfc,0xbe,0x14, +0x3, 0xe8,0x8, 0x1a,0xb, 0xa0,0xbd,0x13,0x8, 0x4, 0x7d,0x31,0x80,0x10,0xbd,0x12, +0x58,0xc, 0x7d,0x21,0xbe,0x24,0x0, 0x0, 0x18,0x4, 0x7e,0x24,0x0, 0x1, 0xb, 0xf0, +0x7e,0xb3,0x2a,0x6f,0xa, 0xb, 0x1b,0x4, 0xa, 0x1f,0xbd,0x10,0x48,0xc0,0x7e,0xb3, +0x34,0xa1,0x7a,0xb3,0x36,0xf3,0x7a,0xa3,0x36,0xf7,0xe4,0x7a,0xb3,0x36,0xf5,0xbe, +0xa0,0xb, 0x78,0x18,0x9d,0x32,0xbe,0x34,0x5, 0xdc,0x58,0x10,0x7e,0x37,0x28,0x8a, +0xbe,0x34,0x1, 0x5e,0x58,0x6, 0x74,0x1, 0x7a,0xb3,0x34,0xa1,0x7e,0x73,0x34,0xa1, +0xbe,0x70,0x0, 0x28,0x3e,0x6c,0xff,0x80,0x35,0x7c,0xbf,0x12,0x97,0xfc,0x60,0x22, +0x74,0x22,0x7a,0xb3,0x36,0xf4,0x7e,0xb3,0x34,0xc4,0x4, 0x12,0x51,0x57,0x7e,0x73, +0x34,0xc4,0xbe,0x70,0x5, 0x40,0x15,0xe4,0x7a,0xb3,0x34,0xc4,0x7a,0xb3,0x34,0xa1, +0x80,0xa, 0xe4,0x12,0x51,0x57,0x74,0x33,0x7a,0xb3,0x36,0xf5,0xb, 0xf0,0x12,0x52, +0x66,0x38,0xc6,0xda,0xf8,0x22,0x7e,0x73,0x28,0x84,0xbc,0x7f,0x22,0xca,0xd8,0xca, +0x79,0xc2,0x3, 0x6d,0x88,0x7a,0x87,0x38,0x3c,0xe4,0x7a,0xb3,0x1f,0x58,0xe5,0x1d, +0xbe,0xb0,0xff,0x50,0x2, 0x5, 0x1d,0x7e,0xb3,0x28,0x84,0x60,0xc, 0x12,0x8c,0x87, +0xb, 0x1a,0x80,0xbe,0x87,0x7, 0xfa,0x28,0xa, 0xc2,0x10,0x6d,0x88,0x7a,0x87,0x37, +0xfd,0x61,0xa0,0x12,0x93,0x91,0x60,0x12,0x7e,0x34,0x62,0xe, 0x12,0x87,0xc4,0x7a, +0x87,0x37,0xf3,0x12,0x54,0x2b,0x7a,0x87,0x37,0xfd,0x7e,0x87,0x37,0xf3,0x4d,0x88, +0x68,0x6, 0x74,0x1, 0x7a,0xb3,0x28,0xa9,0x6c,0xff,0x80,0x7b,0xe4,0xa, 0x3f,0x19, +0xb3,0x1f,0x34,0x12,0x54,0x3c,0x9, 0xe5,0x26,0xfb,0x7e,0x8, 0x1f,0x52,0x7c,0xbd, +0x7c,0x7e,0x12,0x55,0xb9,0x7d,0x93,0x7e,0x87,0x37,0xfd,0xbd,0x89,0x50,0x4, 0x7a, +0x97,0x37,0xfd,0x7e,0x87,0x38,0x3c,0xbd,0x89,0x50,0x4, 0x7a,0x97,0x38,0x3c,0xe5, +0x1d,0xbe,0xb0,0x5, 0x38,0x1f,0x7e,0x8, 0x37,0xff,0x12,0x54,0x4e,0x50,0x7, 0x12, +0x54,0x45,0xd2,0x3, 0x80,0x2f,0x7e,0x8, 0x37,0xff,0x7e,0x18,0x1f,0x52,0x12,0x57, +0x0, 0x50,0x22,0x80,0x10,0x12,0x54,0x2b,0xbd,0x89,0x38,0x19,0x7e,0x8, 0x1f,0x52, +0x12,0x91,0x86,0x50,0x10,0x12,0x54,0x45,0x7e,0x8, 0x1f,0x58,0x7e,0x18,0x1f,0x52, +0x12,0x93,0x6b,0xd2,0x3, 0xb, 0xf0,0x12,0x52,0x66,0x38,0x80,0x30,0x3, 0x37,0x6c, +0xff,0x80,0x20,0x12,0x54,0x3c,0x9, 0xe5,0x26,0xfb,0x7e,0x8, 0x1f,0x58,0x12,0x54, +0x4e,0x40,0x9, 0xa, 0x3f,0x9, 0xb3,0x1f,0x34,0xb4,0x1, 0x5, 0x7c,0xbf,0x12,0x54, +0x7, 0xb, 0xf0,0x12,0x52,0x66,0x38,0xdb,0x75,0x1d,0x0, 0x7e,0x34,0x62,0xe, 0x12, +0x23,0x9e,0x7a,0x37,0x37,0xf3,0x7e,0x63,0x1f,0x58,0x7e,0x70,0x6, 0xac,0x67,0xb, +0x34,0xca,0x39,0x7e,0x18,0x1f,0x58,0x7e,0x8, 0x37,0xff,0x12,0x20,0xb9,0x1b,0xfd, +0x7e,0x37,0x37,0xf3,0x4d,0x33,0x78,0x39,0x90,0x62,0x9, 0xe4,0x93,0xa, 0x3b,0xbe, +0x37,0x37,0xfd,0x38,0x40,0x7c,0x7b,0x1e,0x70,0xa, 0x37,0xbe,0x37,0x38,0x3c,0x38, +0x34,0x90,0x60,0x51,0x12,0x54,0x33,0x7e,0x73,0x26,0xf7,0xa, 0x37,0xbd,0x32,0x8, +0x24,0x90,0x60,0x50,0x12,0x54,0x33,0x7e,0x73,0x26,0xf6,0xa, 0x37,0xbd,0x32,0x8, +0x14,0x6c,0xff,0x80,0x7, 0x7c,0xbf,0x12,0x54,0x7, 0xb, 0xf0,0x12,0x52,0x66,0x38, +0xf4,0xd2,0x3, 0x80,0x6, 0x6d,0x33,0x7a,0x37,0x37,0xfd,0xa2,0x3, 0x92,0x10,0x12, +0x56,0xe9,0xda,0x79,0xda,0xd8,0x22,0x7c,0xab,0x7e,0xb3,0x39,0xb, 0x70,0x1b,0x7e, +0xb3,0x28,0xa8,0x70,0x15,0x12,0xc1,0x2a,0x68,0x10,0x7e,0xb3,0x2a,0x6b,0xbe,0xb0, +0x1, 0x68,0x7, 0x7c,0xba,0x6c,0x77,0x2, 0x51,0x5f,0x22,0x90,0x62,0x9, 0xe4,0x93, +0xa, 0x8b,0x22,0xe4,0x93,0x7c,0x7b,0x1e,0x70,0xa, 0x27,0x22,0x74,0x2, 0xac,0xbf, +0x9, 0xd5,0x26,0xfa,0x22,0x74,0x1, 0xa, 0x8f,0x19,0xb8,0x1f,0x34,0x22,0x7c,0xbd, +0x7c,0x7e,0x7c,0x6b,0xc2,0x4, 0x6c,0xaa,0x80,0x30,0x7e,0x50,0x6, 0xac,0x5a,0x7f, +0x70,0x2d,0xf2,0xb, 0xf4,0x29,0xb7,0x0, 0x2, 0xbc,0xb6,0x40,0x1b,0x7e,0x7b,0xb0, +0xbc,0xb6,0x38,0x14,0x29,0xb7,0x0, 0x3, 0xbc,0xb7,0x40,0xc, 0x29,0xb7,0x0, 0x1, +0xbc,0xb7,0x38,0x4, 0xd2,0x4, 0x80,0x9, 0xb, 0xa0,0x7e,0xb, 0xb0,0xbc,0xba,0x38, +0xc9,0xa2,0x4, 0x22,0xca,0xd8,0xca,0x79,0x7e,0xa3,0x2a,0x6e,0x7e,0x47,0x28,0x99, +0xe4,0x7a,0xb3,0x28,0xa6,0x7e,0xb3,0x26,0xf0,0xbe,0xb0,0x0, 0x28,0x4c,0x7e,0x73, +0x28,0x85,0xbe,0x70,0x0, 0x28,0x43,0x6c,0xff,0x80,0x3b,0x7e,0x50,0x2, 0xac,0x5f, +0x9, 0xd2,0x27,0x36,0x9, 0xe2,0x27,0x37,0x7e,0x50,0x2, 0xac,0x5e,0x49,0x12,0x4, +0xfc,0x6d,0x22,0x9e,0x27,0x2a,0x53,0xbd,0x12,0x58,0x19,0x12,0x55,0xa6,0x49,0x12, +0x4, 0xfc,0x6d,0x22,0x9e,0x27,0x2a,0x51,0xbd,0x12,0x58,0x8, 0x74,0x1, 0x7a,0xb3, +0x28,0xa6,0x80,0x6, 0xb, 0xf0,0xbc,0x7f,0x38,0xc1,0xe4,0x7a,0xb3,0x28,0xa7,0x7e, +0xb3,0x26,0x83,0x70,0x40,0x12,0x8f,0xe3,0x28,0x3b,0x6c,0xff,0x80,0x33,0x7e,0x50, +0x2, 0xac,0x5f,0x9, 0xd2,0x26,0xfa,0x9, 0xe2,0x26,0xfb,0x12,0x55,0xa6,0x49,0x2, +0x5, 0x7a,0x6d,0x11,0x9d,0x14,0xbd,0x1, 0x48,0xd, 0x7e,0x10,0x2, 0xac,0x1e,0x49, +0x20,0x5, 0x7a,0xbd,0x21,0x58,0x8, 0x74,0x1, 0x7a,0xb3,0x28,0xa7,0x80,0x6, 0xb, +0xf0,0xbc,0x7f,0x38,0xc9,0x12,0xb1,0x8e,0xe4,0x7a,0xb3,0x28,0xa9,0x7e,0x37,0x28, +0x88,0x2e,0x37,0x28,0x86,0xbe,0x37,0x28,0x9f,0x28,0x6, 0x74,0x1, 0x7a,0xb3,0x28, +0xa9,0x74,0x1, 0x7a,0xb3,0x28,0xaa,0x6c,0xff,0x80,0x1f,0x12,0x55,0xaf,0x49,0x25, +0x25,0xf7,0x7d,0x43,0x9d,0x42,0x7d,0x34,0x12,0x21,0x0, 0xbe,0x37,0x28,0x9d,0x8, +0x7, 0xe4,0x7a,0xb3,0x28,0xaa,0x80,0x7, 0xb, 0xf0,0x12,0x52,0x66,0x38,0xdc,0x6c, +0xff,0x80,0x9, 0x12,0x55,0xaf,0x59,0x35,0x25,0xf7,0xb, 0xf0,0x12,0x52,0x66,0x38, +0xf2,0xda,0x79,0xda,0xd8,0x22,0xa, 0x1d,0xa, 0x2a,0x2d,0x21,0x3e,0x24,0x22,0x7c, +0xbf,0x12,0x37,0x6f,0x74,0x2, 0xac,0xbf,0x22,0xca,0x3b,0x7c,0xc7,0x7c,0xfb,0x7f, +0x40,0x6d,0x33,0x7a,0x35,0x24,0x7e,0xa3,0x2a,0x6d,0x7e,0x73,0x2a,0x6e,0x4c,0xcc, +0x78,0x5, 0x7e,0xc0,0x1, 0x80,0xd, 0x7c,0xb7,0x14,0xbc,0xbc,0x78,0x6, 0xa, 0x6c, +0x1b,0x65,0x7c,0xcd,0x4c,0xff,0x78,0x5, 0x7e,0xf0,0x1, 0x80,0xb, 0x7c,0xba,0x14, +0xbc,0xbf,0x78,0x4, 0xa, 0x7f,0x1b,0x75,0x7f,0x4, 0x7e,0x34,0x0, 0x6, 0xe4,0x12, +0x20,0xde,0x7e,0x73,0x2a,0x6d,0xa, 0x37,0x1b,0x34,0x7a,0x4b,0x70,0x7e,0x73,0x2a, +0x6e,0xa, 0x37,0x1b,0x34,0x39,0x74,0x0, 0x1, 0x7c,0xec,0x80,0x1c,0x75,0x26,0x0, +0x7c,0xdf,0x80,0xa, 0x12,0x91,0xd5,0x70,0xa, 0x12,0x56,0xd3,0x1b,0xd0,0xbe,0xd0, +0x0, 0x58,0xf1,0xe5,0x26,0x60,0x7, 0x1b,0xe0,0xbe,0xe0,0x0, 0x58,0xdf,0x7c,0xec, +0x80,0x23,0x75,0x26,0x0, 0x1a,0x3f,0xb, 0x34,0x7c,0xd7,0x80,0xa, 0x12,0x91,0xd5, +0x70,0xd, 0x12,0x56,0xd3,0xb, 0xd0,0x7e,0x73,0x2a,0x6d,0xbc,0x7d,0x18,0xee,0xe5, +0x26,0x60,0x7, 0x1b,0xe0,0xbe,0xe0,0x0, 0x58,0xd8,0x1a,0x3c,0xb, 0x34,0x7c,0xe7, +0x80,0x1c,0x75,0x26,0x0, 0x7c,0xdf,0x80,0xa, 0x12,0x91,0xd5,0x70,0xa, 0x12,0x56, +0xd3,0x1b,0xd0,0xbe,0xd0,0x0, 0x58,0xf1,0xe5,0x26,0x60,0xa, 0xb, 0xe0,0x7e,0x73, +0x2a,0x6e,0xbc,0x7e,0x18,0xdc,0x1a,0x3c,0xb, 0x34,0x7c,0xe7,0x80,0x21,0x75,0x26, +0x0, 0x1a,0x6f,0xb, 0x64,0x80,0xa, 0x12,0x91,0xd5,0x70,0xd, 0x12,0x56,0xd3,0xb, +0xd0,0x7e,0x73,0x2a,0x6d,0xbc,0x7d,0x18,0xee,0xe5,0x26,0x60,0xa, 0xb, 0xe0,0x7e, +0x73,0x2a,0x6e,0xbc,0x7e,0x18,0xd7,0x7e,0x35,0x24,0x7d,0x23,0x39,0x54,0x0, 0x5, +0xda,0x3b,0x22,0x5, 0x26,0x7e,0x35,0x24,0xb, 0x34,0x7a,0x35,0x24,0x22,0x12,0x57, +0x32,0x12,0x51,0x9f,0x7a,0xb3,0x2a,0xc, 0x22,0x30,0x10,0x13,0x12,0xc1,0x1a,0x68, +0x6, 0x7e,0xb3,0x39,0xb, 0x60,0x8, 0x7e,0x34,0xb, 0xb8,0x7a,0x37,0x37,0xfb,0x22, +0x7f,0x61,0x7f,0x50,0x7e,0x6b,0x90,0x80,0x1f,0x29,0x86,0x0, 0x1, 0x80,0xf, 0x7f, +0x5, 0x7c,0xb9,0x7c,0x78,0x12,0x54,0x52,0x50,0x2, 0xd3,0x22,0xb, 0x80,0x29,0x76, +0x0, 0x3, 0xbc,0x78,0x50,0xe9,0xb, 0x90,0x29,0x76,0x0, 0x2, 0xbc,0x79,0x50,0xd9, +0xc3,0x22,0x7e,0xa3,0x28,0x84,0xe4,0x7a,0xb3,0x34,0xa2,0x6c,0x33,0x80,0x3d,0x7e, +0x70,0x2, 0xac,0x73,0x9, 0x23,0x26,0xfb,0x7e,0x10,0x1, 0x6c,0x0, 0x80,0x27,0xbc, +0x3, 0x68,0x21,0x7e,0x70,0x2, 0xac,0x70,0x9, 0x93,0x26,0xfb,0xa, 0x29,0xa, 0x32, +0x12,0x35,0x67,0x18,0x2, 0xb, 0x10,0xbe,0x10,0x2, 0x40,0x8, 0x74,0x2, 0x7a,0xb3, +0x34,0xa2,0x80,0x6, 0xb, 0x0, 0xbc,0xa0,0x38,0xd5,0xb, 0x30,0xbc,0xa3,0x38,0xbf, +0x2, 0x57,0x83,0xca,0xf8,0x7e,0x33,0x28,0x84,0x6c,0x22,0x80,0x45,0x74,0x2, 0xac, +0xb2,0x9, 0x15,0x26,0xfa,0x9, 0x5, 0x26,0xfb,0x7e,0xa0,0x1, 0x6c,0x99,0x80,0x2c, +0xbc,0x92,0x68,0x26,0x7e,0x70,0x2, 0xac,0x79,0x9, 0x83,0x26,0xfa,0x9, 0xf3,0x26, +0xfb,0xa, 0x28,0xa, 0x31,0x12,0x35,0x67,0x18,0xb, 0xa, 0x2f,0xa, 0x30,0x12,0x35, +0x67,0x8, 0x2, 0xb, 0xa0,0xbe,0xa0,0x3, 0x50,0x6, 0xb, 0x90,0xbc,0x39,0x38,0xd0, +0xb, 0x20,0xbc,0x32,0x38,0xb7,0x7e,0xb3,0x35,0x3e,0xbe,0xb0,0x0, 0x28,0x12,0x14, +0x7a,0xb3,0x35,0x3e,0xbe,0xb0,0x14,0x28,0x8, 0x7e,0x34,0x0, 0x78,0x7a,0x37,0x2a, +0x5a,0x7e,0xb3,0x36,0xec,0x70,0x58,0x7e,0xb3,0x39,0xb, 0x70,0x52,0x7e,0xb3,0x36, +0x71,0x70,0x4c,0x7e,0x37,0x37,0xfd,0xbe,0x34,0x0, 0x14,0x50,0x42,0x7e,0x37,0x28, +0x8a,0xbe,0x34,0x3, 0x20,0x58,0x38,0x7e,0xb3,0x28,0x84,0xbe,0xb0,0x3, 0x40,0x2f, +0xbe,0xa0,0x3, 0x40,0x2a,0x7e,0xb3,0x26,0x85,0xbe,0xb0,0x3, 0x50,0x9, 0x7e,0xb3, +0x26,0x84,0xbe,0xb0,0x3, 0x40,0x18,0x7e,0xb3,0x26,0xf6,0xbe,0xb0,0x8, 0x50,0x9, +0x7e,0xb3,0x26,0xf7,0xbe,0xb0,0x8, 0x40,0x6, 0x74,0x1e,0x7a,0xb3,0x35,0x3e,0xda, +0xf8,0x22,0xca,0xd8,0xca,0x79,0x7e,0x73,0x2a,0x6e,0x7e,0xf3,0x2a,0x6d,0xac,0xf7, +0x7d,0x37,0x3e,0x34,0x7e,0x8, 0x1f,0x34,0xe4,0x12,0x20,0xde,0x7e,0xb3,0x37,0xb7, +0xb4,0x1, 0x64,0x7e,0x73,0x37,0xb8,0xbe,0x70,0x0, 0x28,0x5b,0x6c,0xdd,0x80,0x3c, +0x12,0x26,0x57,0x12,0x28,0x62,0x6d,0x33,0x80,0x28,0x7e,0x35,0x24,0x3e,0x34,0x49, +0x33,0xd, 0xc8,0x12,0x21,0x0, 0x7a,0x35,0x26,0x7e,0x35,0x24,0x7d,0x13,0x3e,0x14, +0x49,0x21,0x1f,0x34,0xbe,0x25,0x26,0x58,0x7, 0x7e,0x25,0x26,0x59,0x21,0x1f,0x34, +0xb, 0x34,0x7a,0x35,0x24,0xbe,0x75,0x24,0x38,0xd0,0xb, 0xd0,0x7e,0x73,0x37,0xb8, +0xbc,0x7d,0x38,0xbc,0x7d,0x37,0x3e,0x34,0xca,0x39,0x7e,0x18,0x1f,0x34,0x7e,0x8, +0xd, 0xc8,0x12,0x20,0xb9,0x1b,0xfd,0xda,0x79,0xda,0xd8,0x22,0x7e,0xb3,0x37,0x5, +0xb4,0x1, 0x4, 0xe4,0x2, 0x58,0xe8,0x22,0x70,0x3, 0xd2,0x86,0x22,0xc2,0x86,0x22, +0x12,0x68,0x10,0x12,0x7d,0x94,0x7e,0xb3,0x37,0x8, 0xb4,0x1, 0x74,0x12,0xb6,0xe2, +0x7e,0x34,0x60,0xa5,0x12,0x23,0x9e,0x12,0x26,0x5b,0x12,0x91,0x18,0x12,0x47,0x2c, +0x12,0x28,0x62,0x50,0xde,0x12,0xab,0xdb,0x12,0x75,0xe9,0x7e,0xb3,0x37,0x5, 0xb4, +0x1, 0x4, 0xe4,0x12,0x58,0xe8,0x12,0xaf,0x89,0x12,0xa7,0xbd,0x12,0x5e,0xaa,0x40, +0xc2,0x12,0x88,0x5f,0x12,0x5e,0xaa,0x40,0xba,0x12,0x56,0xde,0x12,0x2a,0x3, 0x12, +0x0, 0x6e,0x12,0x5f,0x2f,0x12,0x5f,0x83,0x12,0x5b,0x94,0x12,0x96,0x24,0x12,0x5e, +0xc2,0x12,0x5f,0xcd,0x12,0xaa,0xe6,0x12,0x87,0x74,0x7e,0xb3,0x36,0xf1,0xbe,0xb0, +0x88,0x68,0x3, 0x12,0x59,0x77,0x12,0x67,0xfa,0x12,0x26,0x66,0x12,0x62,0xa5,0x80, +0x82,0x12,0x2f,0xee,0x2, 0x58,0xdc,0xca,0x3b,0x75,0x24,0x0, 0x6c,0xff,0x12,0x35, +0xd3,0x75,0x28,0x3, 0x6c,0xee,0x7e,0x48,0x29,0xbc,0x7e,0xb3,0x2a,0xb, 0x70,0xe, +0x7e,0xb3,0x2a,0x7, 0x70,0x8, 0x7e,0xb3,0x2a,0x8, 0x70,0x2, 0x61,0x6b,0x30,0xe, +0x6, 0x7e,0x68,0x33,0x28,0x80,0x4, 0x7e,0x68,0x32,0xea,0x7f,0x6, 0x12,0x7e,0xef, +0x7e,0x73,0x2a,0x4, 0x7a,0x6b,0x70,0x6c,0xdd,0x61,0x1c,0x74,0x9, 0xac,0xbd,0x9, +0xc5,0x29,0xc, 0x7c,0xbc,0x54,0xf, 0xa, 0x3b,0x12,0x5e,0x3d,0xf5,0x28,0x7c,0xbc, +0x54,0xf0,0xbe,0xb0,0x0, 0x28,0x2, 0x61,0x1a,0xe5,0x28,0xbe,0xb0,0x3, 0x78,0x2, +0x61,0x1a,0x7e,0x8, 0x0, 0x28,0x7c,0xbc,0x12,0x9e,0xec,0x50,0x2, 0x61,0x1a,0x74, +0x9, 0xac,0xbd,0x9, 0xb5,0x29,0xd, 0xf5,0x25,0x74,0x9, 0xac,0xbd,0x9, 0xb5,0x29, +0xe, 0xc4,0x54,0xf0,0xf5,0x26,0x7e,0x73,0x2a,0x4d,0xbc,0x7c,0x28,0x54,0x7e,0xb3, +0x2a,0x9, 0x70,0x2a,0x75,0x29,0xf, 0x7e,0x8, 0x0, 0x25,0xa, 0x3c,0x2e,0x34,0x32, +0xd6,0x6d,0x22,0x74,0x1, 0x12,0x7f,0xd4,0x75,0x29,0x20,0x7e,0x8, 0x0, 0x26,0xa, +0x3c,0x2e,0x34,0x32,0xe0,0x6d,0x22,0x74,0x10,0x12,0x7f,0xd4,0x80,0xe, 0xa, 0x3c, +0x9, 0xb3,0x32,0xd6,0xf5,0x25,0x9, 0xb3,0x32,0xe0,0xf5,0x26,0xa, 0x3c,0x12,0x5e, +0x3d,0xb4,0x1, 0xe, 0xe4,0xa, 0x3c,0x19,0xb3,0x32,0xd6,0x19,0xb3,0x32,0xe0,0x12, +0x35,0xd3,0x7e,0xb3,0x2a,0x64,0xb4,0xff,0x13,0x75,0x25,0x0, 0x74,0x9, 0xac,0xbd, +0x9, 0xb5,0x29,0xc, 0xbe,0xb0,0xff,0x68,0x3, 0x75,0x25,0x1, 0x7e,0x90,0x9, 0xac, +0x9d,0x49,0xb4,0x29,0x8, 0x49,0xa4,0x29,0xa, 0xe5,0x28,0xb4,0x1, 0x2c,0x75,0x27, +0x0, 0x80,0x1d,0x7e,0x71,0x27,0x74,0x9, 0xac,0x7b,0x9, 0xb3,0x33,0x6a,0x54,0xf, +0xbc,0xbc,0x78,0xa, 0x49,0xb3,0x33,0x66,0x49,0xa3,0x33,0x68,0x80,0xc, 0x5, 0x27, +0x90,0x60,0x99,0xe4,0x93,0xbe,0xb1,0x27,0x38,0xd9,0x5e,0xb4,0xf, 0xff,0x5e,0xa4, +0xf, 0xff,0x9, 0x74,0x29,0xc, 0xa, 0x57,0xc4,0x54,0xf0,0x7c,0xab,0xe4,0x2d,0xa5, +0xbe,0x70,0xff,0x68,0x16,0xe5,0x28,0xbe,0xb0,0x1, 0x68,0x2, 0x5, 0x24,0xb, 0xf0, +0xe5,0x28,0xa, 0x5b,0x12,0xb9,0x5c,0x2d,0xb5,0x80,0x4, 0x2e,0xb4,0xc0,0x0, 0x7e, +0x70,0x6, 0xac,0x7e,0x7f,0x6, 0x2d,0x13,0x79,0xb0,0x0, 0x2, 0x7f,0x6, 0x2d,0x13, +0x79,0xa0,0x0, 0x4, 0xe5,0x25,0x7f,0x6, 0x2d,0x13,0x39,0xb0,0x0, 0x6, 0xe5,0x26, +0x2d,0x3d,0x7d,0x2c,0x39,0xb1,0x0, 0x7, 0xb, 0xe0,0xb, 0xd0,0x7e,0x73,0x2a,0x4d, +0xbc,0x7d,0x28,0x2, 0x21,0xbb,0xe5,0x24,0x39,0xb6,0x0, 0x1, 0x7e,0xb3,0x37,0x31, +0xb4,0x1, 0x9, 0x7e,0xb3,0x2a,0x8, 0xb4,0x1, 0x17,0x80,0xd, 0xbe,0xf0,0x0, 0x38, +0x6, 0x7e,0xb3,0x2a,0x8, 0x60,0xa, 0xb2,0xe, 0x12,0x7e,0x81,0x74,0x1, 0x12,0x58, +0xe8,0x7e,0xb3,0x2a,0x7, 0x60,0x5, 0x7f,0x4, 0x12,0x5e,0x61,0xe4,0x7a,0xb3,0x2a, +0xb, 0x7a,0xb3,0x2a,0x7, 0x7a,0xb3,0x2a,0x8, 0x80,0x4, 0xe4,0x12,0x58,0xe8,0x12, +0x5f,0xc2,0xca,0x59,0x7e,0x18,0x29,0x8, 0x7e,0x8, 0x33,0x66,0x12,0x20,0xb9,0x1b, +0xfd,0x4c,0xff,0x78,0xc, 0x12,0x73,0xe5,0x7e,0x8, 0x33,0x66,0x74,0xff,0x12,0x20, +0xde,0xda,0x3b,0x22,0xca,0xf8,0x7e,0x68,0x29,0xbc,0x6c,0xaa,0x80,0x19,0x7e,0x70, +0xff,0x12,0x5e,0x8b,0xe4,0xa, 0x4a,0x19,0xb4,0x1f,0x34,0x74,0xff,0x19,0xb4,0x1f, +0x46,0x19,0xb4,0x1f,0x50,0xb, 0xa0,0x12,0x5e,0x25,0x38,0xe2,0x7e,0x73,0x2a,0x2, +0xa5,0xbf,0x0, 0x23,0x7e,0xb3,0x34,0x4f,0x70,0x2, 0xa1,0xab,0x6c,0xaa,0x80,0x10, +0x7e,0x44,0x7f,0xff,0x12,0x5e,0x95,0x79,0x40,0x0, 0x14,0x12,0x5e,0x45,0xb, 0xa0, +0x12,0x5e,0x25,0x38,0xeb,0xa1,0xab,0x7e,0xb3,0x34,0x4f,0x70,0x3d,0xbe,0x70,0x0, +0x28,0x38,0x6c,0xaa,0x80,0x2a,0x7e,0x90,0x9, 0xac,0x9a,0x49,0x34,0x28,0xae,0x12, +0x5e,0x95,0x79,0x30,0x0, 0x14,0x49,0x34,0x28,0xb0,0x7f,0x6, 0x2d,0x12,0x79,0x30, +0x0, 0x28,0x74,0x1, 0xa, 0x3a,0x19,0xb3,0x1f,0x34,0x19,0xa4,0x28,0xb2,0xb, 0xa0, +0x7e,0xb3,0x2a,0x2, 0xbc,0xba,0x38,0xce,0xa1,0xab,0x6c,0xaa,0x80,0x17,0x12,0x5e, +0x57,0x3e,0x34,0x59,0x43,0x15,0x4e,0x59,0x43,0x15,0x50,0x59,0x43,0x15,0x76,0x59, +0x43,0x15,0x78,0xb, 0xa0,0x12,0x5e,0x25,0x38,0xe4,0x6c,0xaa,0x80,0x41,0x6c,0xff, +0x80,0x36,0x7e,0x70,0x2, 0xac,0x7f,0x7f,0x6, 0x2d,0x13,0x69,0x30,0x0, 0x14,0xbe, +0x34,0x7f,0xff,0x68,0x21,0xa, 0x4f,0x9, 0xb4,0x1f,0x50,0xb4,0xff,0x18,0x12,0x5e, +0x35,0x59,0x32,0x15,0x4e,0x69,0x30,0x0, 0x28,0x59,0x32,0x15,0x50,0x12,0x5e,0x4e, +0x19,0xb4,0x1f,0x50,0x80,0x7, 0xb, 0xf0,0x12,0x5e,0x2d,0x38,0xc5,0xb, 0xa0,0x7e, +0xb3,0x34,0x4f,0xbc,0xba,0x38,0xb7,0x6c,0xaa,0x80,0x28,0xa, 0x3a,0x9, 0xb3,0x1f, +0x46,0xb4,0xff,0x1d,0x6c,0xff,0x80,0x14,0xa, 0x4f,0x9, 0xb4,0x1f,0x50,0xb4,0xff, +0x9, 0x12,0x5e,0x4e,0x19,0xb4,0x1f,0x50,0x80,0x7, 0xb, 0xf0,0x12,0x5e,0x2d,0x38, +0xe7,0xb, 0xa0,0x12,0x5e,0x25,0x38,0xd3,0x6c,0xaa,0x80,0x1a,0x7e,0x70,0x9, 0xac, +0x7a,0x49,0x43,0x28,0xae,0x12,0x5e,0x35,0x59,0x42,0x15,0x76,0x49,0x33,0x28,0xb0, +0x59,0x32,0x15,0x78,0xb, 0xa0,0x7e,0xb3,0x2a,0x2, 0xbc,0xba,0x38,0xde,0x7e,0x34, +0x15,0x4e,0x7a,0x37,0x1f,0x40,0x7e,0x34,0x15,0x76,0x7a,0x37,0x1f,0x42,0x7e,0x34, +0x15,0x9e,0x7a,0x37,0x1f,0x44,0x7e,0x73,0x34,0x4f,0x7a,0x73,0x1f,0x3e,0x7e,0x73, +0x2a,0x2, 0x7a,0x73,0x1f,0x3f,0x7e,0x8, 0x1f,0x3e,0x12,0x4, 0xad,0x6c,0xaa,0x80, +0x59,0x7e,0x70,0xff,0x6c,0xff,0x80,0x19,0x7e,0x50,0x2, 0xac,0x5f,0x49,0x12,0x15, +0x9e,0xa, 0x2a,0xbd,0x21,0x78,0x8, 0xa, 0x3f,0x9, 0x73,0x1f,0x46,0x80,0x7, 0xb, +0xf0,0x12,0x5e,0x2d,0x38,0xe2,0xbe,0x70,0xff,0x68,0x2d,0x12,0x5e,0x8b,0x74,0x1, +0xa, 0x47,0x19,0xb4,0x1f,0x34,0x7e,0x90,0x9, 0xac,0x9a,0x49,0x24,0x28,0xae,0x7e, +0x30,0x2, 0xac,0x37,0x2d,0x1d,0x7d,0xc, 0x79,0x20,0x0, 0x14,0x49,0x44,0x28,0xb0, +0x7e,0x50,0x2, 0xac,0x57,0x12,0x5e,0x45,0xb, 0xa0,0x7e,0x63,0x2a,0x2, 0xbc,0x6a, +0x38,0x9f,0x6c,0xaa,0x80,0x20,0xa, 0x3a,0x9, 0xb3,0x1f,0x34,0xbe,0xb0,0x1, 0x68, +0x13,0x12,0x5e,0x57,0x7f,0x6, 0x2d,0x13,0x79,0x40,0x0, 0x14,0x2d,0x3d,0x7d,0x2c, +0x79,0x41,0x0, 0x28,0xb, 0xa0,0x12,0x5e,0x25,0x38,0xdb,0x7e,0xf3,0x2a,0x2, 0x7a, +0xf3,0x34,0x4f,0x6c,0xaa,0x80,0x66,0xa, 0x3a,0x9, 0xb3,0x1f,0x34,0xb4,0x1, 0x2b, +0x12,0x5e,0x9f,0xb4,0x1, 0x6, 0x74,0x3, 0x39,0xb1,0x0, 0xa, 0xa, 0x3a,0x2d,0x3d, +0x7d,0x2c,0x29,0x31,0x0, 0xa, 0xa5,0xbb,0x3, 0x6, 0xe4,0x7a,0x1b,0xb0,0x80,0x2e, +0xa5,0xbb,0x0, 0x2a,0x74,0x2, 0x7a,0x1b,0xb0,0x80,0x23,0x12,0x5e,0x9f,0xbe,0xb0, +0x2, 0x68,0x2, 0x70,0x14,0x74,0x1, 0x7a,0x1b,0xb0,0x7c,0x2f,0xb, 0xf0,0x7e,0x30, +0x9, 0xac,0x23,0x19,0xa1,0x28,0xb2,0x80,0x5, 0x74,0x3, 0x7a,0x1b,0xb0,0xa, 0x3a, +0x2d,0x3d,0x7d,0x2c,0x7e,0x1b,0xb0,0x39,0xb1,0x0, 0xa, 0xb, 0xa0,0x12,0x5e,0x25, +0x38,0x95,0xda,0xf8,0x22,0x90,0x60,0x99,0xe4,0x93,0xbc,0xba,0x22,0x90,0x60,0x99, +0xe4,0x93,0xbc,0xbf,0x22,0x7e,0x50,0x2, 0xac,0x5a,0x3e,0x24,0x22,0x2d,0x39,0x7d, +0x28,0x7e,0x1b,0xb0,0x22,0x7f,0x6, 0x2d,0x12,0x79,0x40,0x0, 0x28,0x22,0xa, 0x3a, +0x19,0xf3,0x1f,0x46,0x74,0x1, 0x22,0x7e,0x44,0x7f,0xff,0x7e,0x70,0x2, 0xac,0x7a, +0x22,0x6c,0xaa,0x80,0x20,0x74,0x3, 0x12,0xa9,0x99,0x7f,0x10,0x2d,0x34,0x39,0xb1, +0x0, 0xa, 0x12,0x5e,0x57,0x7f,0x70,0x2d,0xf3,0x79,0x47,0x0, 0x14,0x2d,0x31,0x79, +0x41,0x0, 0x28,0xb, 0xa0,0x12,0x5e,0x25,0x38,0xdb,0x22,0x7e,0x50,0x9, 0xac,0x5a, +0x19,0x72,0x28,0xb2,0x22,0x7e,0x50,0x2, 0xac,0x5a,0x7f,0x6, 0x2d,0x12,0x22,0xa, +0x3a,0x2d,0x3d,0x7d,0x2c,0x29,0xb1,0x0, 0xa, 0x22,0xc2,0x3, 0x7e,0xb3,0x16,0x91, +0x60,0x6, 0x7e,0xb3,0x16,0x90,0x70,0x7, 0x12,0x9b,0xdf,0x28,0x2, 0xd2,0x3, 0xa2, +0x3, 0x22,0xca,0xf8,0x7e,0xa3,0x2a,0x2, 0x4c,0xaa,0x78,0x11,0x7e,0xb3,0x2a,0x3, +0xbe,0xb0,0x0, 0x28,0x13,0x74,0x1, 0x7a,0xb3,0x2a,0x7, 0x80,0xb, 0xbe,0xa0,0x0, +0x28,0x6, 0x74,0x1, 0x7a,0xb3,0x2a,0xb, 0x12,0x5f,0xc2,0xca,0x59,0x7e,0x18,0x28, +0xae,0x7e,0x8, 0x29,0x8, 0x12,0x20,0xb9,0x1b,0xfd,0x90,0x61,0x35,0xe4,0x93,0xbe, +0xb0,0x0, 0x28,0x28,0x6c,0xff,0x80,0x1f,0x74,0x9, 0xac,0xbf,0x49,0x35,0x28,0xae, +0x12,0x80,0x16,0x74,0x9, 0xac,0xbf,0x59,0x35,0x29,0x8, 0x49,0x35,0x28,0xb0,0x12, +0x64,0xdb,0x12,0xab,0x9b,0xb, 0xf0,0x12,0x5e,0x2d,0x38,0xdc,0xda,0xf8,0x22,0x2, +0x5f,0x32,0xca,0x79,0x6c,0xff,0x7e,0xd7,0x2a,0x5a,0x6c,0xee,0x80,0x35,0x7c,0xbe, +0x12,0x37,0x6f,0xbd,0x3d,0x48,0x2a,0x7c,0xbe,0x12,0x2f,0xb7,0x60,0x23,0x7e,0xc4, +0x0, 0x9, 0xca,0xc9,0x7e,0x70,0x9, 0xac,0x7e,0x2e,0x34,0x27,0x76,0x6d,0x22,0x7e, +0x30,0x9, 0xac,0x3f,0x2e,0x14,0x28,0xae,0x6d,0x0, 0x12,0x20,0xb9,0x1b,0xfd,0xb, +0xf0,0xb, 0xe0,0x12,0x9c,0xf6,0x38,0xc6,0x7a,0x73,0x28,0x93,0x7a,0xf3,0x2a,0x2, +0xda,0x79,0x22,0x12,0x9d,0xda,0x2, 0x5f,0x89,0x7e,0xa3,0x2a,0x3, 0xbe,0xa0,0x0, +0x38,0x2f,0xbe,0xa3,0x2a,0x2, 0x50,0x19,0x7e,0xb3,0x2a,0xc, 0xbe,0xb3,0x35,0x40, +0x28,0x14,0x7e,0xb3,0x35,0x40,0x4, 0x7a,0xb3,0x35,0x40,0x7a,0xa3,0x2a,0x2, 0x80, +0x5, 0xe4,0x7a,0xb3,0x35,0x40,0x7e,0xb3,0x2a,0x2, 0x70,0x5, 0xe4,0x7a,0xb3,0x2a, +0xb, 0x22,0x90,0x60,0x99,0xe4,0x93,0x7c,0xab,0x74,0x9, 0xa4,0x22,0x12,0x68,0x38, +0x2, 0x5f,0xd3,0x7e,0xb3,0x2a,0x9, 0x70,0x24,0x7e,0xa3,0x34,0xa2,0x4c,0xaa,0x78, +0x3, 0xe4,0x80,0x7, 0xbe,0xa0,0x2, 0x78,0x6, 0x74,0x3, 0x7a,0xb3,0x34,0xad,0x7e, +0x73,0x34,0xae,0xbe,0x73,0x34,0xad,0x28,0x4, 0x7a,0x73,0x34,0xad,0x22,0xff,0xff, +0x70,0x8f,0x0, 0xff,0x53,0xac,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x45,0x37,0x32,0x1, 0xc3,0x1, 0x45,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x18,0xe7,0x30,0x30,0x31,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0xd, 0x18,0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0xc, 0xb, 0xa, 0x9, 0x8, 0x7, 0x6, 0x5, 0x4, 0x3, +0x2, 0x1, 0xe, 0xf, 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x0, 0x0, 0x0, +0x0, 0x5, 0x0, 0x4, 0xff,0x23,0x1c,0x2, 0xdf,0xa, 0x1e,0xa, 0x64,0x1e,0x10,0x0, +0x4, 0x0, 0x64,0xd, 0xac,0x0, 0xc8,0x3, 0x1, 0x0, 0x0, 0x17,0x2, 0x6, 0xa, 0x0, +0x0, 0x0, 0x46,0x0, 0xe6,0x1, 0x18,0x1, 0xb8,0x1, 0xf4,0x2, 0x94,0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c,0x1, 0x68,0x2, 0x44,0x0, 0x0, 0x0, 0x0, 0x7, +0xd0,0x0, 0x14,0x1, 0x19,0x37,0x1, 0xf4,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e, +0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e, +0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e, +0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e, +0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x0, 0x4, 0x5a,0x20,0x1, 0x20,0x2, 0x0, 0x0, +0x0, 0x0, 0x1, 0xf4,0x65,0x40,0xd, 0x18,0x25,0x19,0x28,0x6, 0x80,0x19,0x28,0x6, +0x80,0x8, 0x10,0x4, 0x20,0x1, 0x0, 0x2, 0xd0,0x32,0x32,0x1, 0xec,0x2, 0x50,0x0, +0xe1,0x0, 0xe1,0x5, 0x0, 0x37,0x37,0x1, 0xba,0x1, 0xba,0x0, 0xe0,0x0, 0xe0,0x0, +0xb4,0x0, 0xa0,0x0, 0x96,0x1, 0x18,0x1, 0x18,0x1, 0x18,0xa, 0x0, 0x1, 0x68,0x1, +0x5, 0xb, 0x1e,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22,0x15,0x0, 0x1, 0x54,0x1, 0x0, 0x18, +0x1, 0x53,0x1, 0x14,0x0, 0x0, 0x1, 0x1, 0x10,0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x55,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x96,0x2, 0x26,0x0, 0x50,0x0, 0x27, +0x0, 0x4, 0x0, 0x4, 0x1, 0x4, 0x1, 0x90,0x0, 0xc8,0x0, 0x50,0x1, 0xf4,0x0, 0x96, +0x1, 0x2c,0x1, 0x2c,0x4, 0x37,0x2, 0x5a,0x65,0x20,0x28,0x2, 0x2c,0x2e,0x20,0x3c, +0x2, 0x5b,0x66,0x20,0x46,0x2, 0x42,0x49,0x30,0x37,0x2, 0x5a,0x65,0x20,0x37,0x2, +0x5a,0x65,0x20,0x37,0x2, 0x5a,0x65,0x20,0x37,0x2, 0x5a,0x65,0x20,0x4, 0x5, 0x28, +0x29,0x2a,0x2b,0x2c,0x4, 0x0, 0xd2,0x2, 0x30,0x64,0x0, 0xc8,0x1, 0x5e,0x0, 0x64, +0x0, 0x64,0x0, 0x96,0x0, 0x64,0xb, 0xb8,0x8, 0x5, 0x6, 0x80,0x1, 0x90,0x1, 0x2c, +0x1, 0xc2,0x3, 0x20,0xf, 0xa0,0x1, 0x3, 0x20,0x4, 0xb0,0x3, 0x20,0x1, 0x2, 0x2, +0x4, 0x4, 0x6, 0x40,0x1, 0x2c,0x1, 0x18,0x1, 0x90,0x1, 0x90,0x1, 0x90,0x1, 0x90, +0x1, 0x2c,0x1, 0x90,0x1, 0x7c,0x1, 0x7c,0x0, 0x50,0x0, 0x46,0x0, 0x78,0x0, 0x78, +0x0, 0x78,0x0, 0x78,0x0, 0x78,0x14,0x8, 0x0, 0x50,0x2, 0x80,0x0, 0x50,0x4, 0xb0, +0x0, 0x32,0x1, 0xf4,0x1, 0xf4,0x3, 0x20,0x0, 0x14,0x0, 0x37,0x0, 0x1e,0x0, 0x80, +0x0, 0xb4,0x0, 0xa0,0x0, 0x3c,0x3, 0xe8,0x1, 0x40,0x0, 0x5a,0x0, 0x3c,0x3, 0xe8, +0x0, 0x20,0x2, 0xb0,0x0, 0x0, 0x5, 0x0, 0x0, 0x64,0x0, 0xa0,0x0, 0xa0,0x13,0x88, +0x1, 0x2c,0x0, 0xa0,0x0, 0xa0,0x10,0x0, 0xc, 0x0, 0xa, 0xb, 0x5, 0x5, 0x7, 0x8, +0x6, 0x6, 0xc, 0x64,0xc8,0x7e,0x8, 0x37,0xf3,0x12,0x62,0xdf,0x7e,0x8, 0x37,0xfb, +0x12,0x62,0xdf,0x12,0x62,0xf4,0x12,0x62,0xfb,0x2, 0x62,0xbc,0x7e,0x37,0x37,0xf3, +0xbe,0x34,0x0, 0x0, 0x28,0x18,0x7e,0x73,0x39,0x7, 0xbe,0x70,0x5, 0x50,0xf, 0x7e, +0xb3,0x37,0x31,0x70,0x9, 0x12,0x63,0x2, 0x74,0x1, 0x7a,0xb3,0x37,0x6, 0x22,0xb, +0xa, 0x30,0xe5,0x4e,0xa, 0x2b,0xbd,0x32,0x28,0x4, 0x9d,0x32,0x80,0x2, 0x6d,0x33, +0x1b,0xa, 0x30,0x22,0x7e,0x8, 0x2b,0xb7,0x2, 0x62,0xdf,0x7e,0x8, 0x38,0xe6,0x2, +0x62,0xdf,0x6d,0x33,0x7a,0x37,0x38,0x83,0x22,0xca,0xf8,0x7e,0xa3,0x2a,0x2, 0x7e, +0xb3,0x2a,0x3, 0xbe,0xa0,0x1, 0x38,0x21,0xbe,0xb0,0x1, 0x38,0x1c,0x7e,0x47,0x28, +0x86,0xbe,0x44,0x0, 0x1e,0x28,0x2, 0x80,0x10,0x7e,0xf3,0x2f,0x80,0x4c,0xff,0x68, +0x17,0x7e,0x47,0x2b,0xb7,0x4d,0x44,0x78,0xf, 0x12,0x63,0x2, 0x74,0x1, 0x7a,0xb3, +0x38,0x85,0x7a,0xb3,0x37,0x6, 0x80,0x35,0x4c,0xaa,0x78,0x36,0xb4,0x1, 0x33,0x7e, +0x37,0x2b,0xb7,0x7a,0x37,0x2f,0x82,0x7e,0xb3,0x2f,0x80,0xb4,0x3, 0x1f,0x7e,0x37, +0x2b,0xb7,0xbe,0x34,0x0, 0x0, 0x28,0x15,0x74,0x4, 0x7a,0xb3,0x2f,0x80,0x7e,0x37, +0x2f,0x98,0x7e,0x27,0x2f,0x9a,0x12,0x64,0x1a,0x81,0x13,0x80,0x0, 0x12,0xbd,0xdd, +0x81,0x13,0x7e,0xc7,0x29,0x8, 0x7e,0xd7,0x29,0xa, 0x4c,0xff,0x78,0x19,0x70,0x57, +0xbe,0xa0,0x1, 0x78,0x52,0x7d,0x3c,0x7d,0x2d,0x12,0xbd,0x78,0x12,0x64,0x16,0x74, +0x1, 0x7a,0xb3,0x2f,0x80,0x80,0x40,0xbe,0xf0,0x1, 0x78,0x2e,0x7e,0x27,0x2f,0x88, +0x9e,0x27,0x2f,0x90,0x7e,0x14,0x62,0x8a,0x12,0x64,0xd3,0xbd,0x23,0x38,0x13,0x7e, +0x27,0x2f,0x96,0x9e,0x27,0x2f,0x8e,0x7e,0x14,0x62,0x8c,0x12,0x64,0xd3,0xbd,0x23, +0x28,0x15,0x74,0x3, 0x7a,0xb3,0x2f,0x80,0x80,0x5, 0xbe,0xf0,0x3, 0x78,0x8, 0x7a, +0xc7,0x2f,0x98,0x7a,0xd7,0x2f,0x9a,0x7e,0xb3,0x2f,0x80,0x60,0x26,0x7d,0x3c,0x7d, +0x2d,0x7e,0x17,0x2b,0xbb,0x7e,0x7, 0x2b,0xbd,0x12,0x66,0xce,0xa, 0x2b,0x7e,0x73, +0x2f,0x7f,0xa, 0x37,0xbd,0x32,0x58,0xb, 0x12,0x64,0x16,0x7a,0xc7,0x2b,0xbb,0x7a, +0xd7,0x2b,0xbd,0xda,0xf8,0x22,0x7d,0x3c,0x7d,0x2d,0x7d,0x42,0x7d,0x13,0x7d,0x24, +0x12,0x67,0xca,0x7d,0x31,0x12,0x85,0xfd,0x2, 0x64,0x2b,0x7e,0x3, 0x2f,0xa8,0xbe, +0x0, 0xf0,0x50,0x2, 0x81,0xc4,0x81,0xb9,0x6c,0x99,0x7e,0xb3,0x2f,0x7f,0xbe,0xb0, +0x20,0x50,0x5, 0x4, 0x7a,0xb3,0x2f,0x7f,0x7e,0x1f,0x2b,0xbf,0x7a,0x1f,0x1f,0x34, +0x7e,0x80,0x1, 0x80,0x49,0x74,0x4, 0xac,0xb8,0x49,0x35,0x2b,0xbf,0x49,0x25,0x2b, +0xc1,0x7e,0x17,0x1f,0x34,0x7e,0x7, 0x1f,0x36,0x12,0x66,0xce,0x7c,0x1b,0x7e,0x3, +0x2f,0x7f,0xbc,0x1, 0x38,0x26,0xb, 0x90,0x7e,0x70,0x4, 0xac,0x78,0x2e,0x34,0x2b, +0xbf,0x7e,0x14,0x1f,0x34,0x74,0x4, 0x12,0x1f,0x8c,0x7e,0x34,0x1f,0x34,0x7e,0x30, +0x4, 0xac,0x39,0x2e,0x14,0x2b,0xbf,0x74,0x4, 0x12,0x1f,0x8c,0xb, 0x80,0x7e,0x3, +0x2f,0xa8,0xbc,0x8, 0x38,0xaf,0xa, 0x59,0xb, 0x54,0x7c,0xb, 0x7a,0x3, 0x2f,0xa8, +0x7e,0x3, 0x2f,0x7f,0xbe,0x0, 0x20,0x50,0xb, 0x7e,0x3, 0x2f,0xa8,0xbe,0x0, 0xec, +0x40,0x2, 0x81,0x38,0x22,0x7d,0x34,0x9e,0x34,0x0, 0x40,0x7d,0x2e,0x9d,0x23,0x7e, +0x14,0x61,0x49,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0x30,0x22,0x7d,0xe3,0x9f,0x11,0x7e, +0x14,0x61,0x43,0x12,0x83,0x62,0x90,0x61,0x35,0xe4,0x93,0x70,0x3, 0x7d,0x3e,0x22, +0x90,0x61,0x36,0xe4,0x93,0xb4,0x1, 0x6, 0x7e,0x83,0x2a,0x6f,0x80,0x4, 0x7e,0x83, +0x2a,0x70,0x12,0x87,0xd4,0xbe,0xe4,0x0, 0x3f,0x38,0x1e,0x7e,0x24,0x0, 0x3f,0x9d, +0x2e,0x7e,0x14,0x61,0x47,0x12,0x64,0xd3,0x12,0x66,0x10,0x90,0x61,0x45,0x12,0x66, +0x7, 0x48,0x2, 0x7f,0x10,0x9f,0x1, 0x7f,0x10,0x12,0xc1,0x3a,0xbe,0xa0,0x0, 0x28, +0x32,0x7d,0x14,0x9e,0x14,0x0, 0x3f,0xbd,0x1e,0x38,0x13,0x12,0x66,0xb8,0x40,0xe, +0x12,0x64,0xc5,0x12,0x65,0xfa,0x48,0x32,0x7f,0x10,0x1b,0x1c,0x80,0x2c,0x12,0x66, +0xb8,0x50,0x31,0x7d,0x34,0x9e,0x34,0x0, 0x20,0x12,0x64,0xcb,0x12,0x66,0x10,0x7d, +0x1f,0x80,0x1d,0x4c,0xaa,0x78,0x1d,0x12,0x66,0xb1,0xbd,0x5e,0x38,0x16,0x12,0x64, +0xc5,0x12,0x65,0xfa,0x48,0x4, 0x7f,0x10,0x1b,0x1c,0xa, 0xb, 0x7d,0x1f,0x9d,0x10, +0x6d,0x0, 0x2f,0x10,0xbe,0xe4,0x0, 0x3f,0x28,0x6f,0x12,0x66,0xb1,0xbd,0x5e,0x28, +0x68,0x7d,0xd4,0xb, 0xd4,0x1e,0xd4,0x7d,0x5d,0x1b,0x54,0xbd,0x5e,0x40,0xc, 0x7d, +0x35,0x9d,0x3e,0x6d,0x22,0x7e,0x14,0x61,0x4b,0x80,0xa, 0x7d,0x3e,0x9d,0x3d,0x6d, +0x22,0x7e,0x14,0x61,0x4d,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0x10,0x12,0x1e,0xfc,0x12, +0x66,0x14,0xbd,0x5e,0x7d,0x1f,0x40,0xc, 0x1e,0x14,0x1b,0x14,0x6d,0x0, 0x9f,0x1, +0x7f,0x10,0x80,0x6, 0x1e,0x14,0x6d,0x0, 0x2f,0x10,0x90,0x61,0x45,0x12,0x66,0x7, +0x58,0x4, 0x7f,0x10,0x80,0x13,0x90,0x61,0x46,0xe4,0x93,0xa, 0xb, 0x7d,0x1f,0x9d, +0x10,0x6d,0x0, 0xbf,0x10,0x8, 0x2, 0x7f,0x10,0x22,0xad,0x32,0x6d,0x22,0x7c,0x76, +0x7c,0x65,0x1a,0x24,0x90,0x61,0x46,0xe4,0x93,0xa, 0x1b,0x6d,0x0, 0xbf,0x10,0x22, +0xad,0x32,0x6d,0x22,0x7c,0x76,0x7c,0x65,0x1a,0x24,0x22,0x7e,0x73,0x36,0x69,0x7a, +0x73,0x36,0xdf,0x7e,0x27,0x38,0xd6,0x7e,0x14,0x61,0xc8,0x12,0x64,0xd3,0x1e,0x34, +0xbd,0x32,0x50,0x6, 0x74,0x1, 0x7a,0xb3,0x36,0x69,0x7e,0x14,0x61,0xc8,0x12,0x64, +0xd3,0xbd,0x32,0x50,0x8, 0xe4,0x7a,0xb3,0x36,0x67,0x12,0x67,0x62,0x7e,0x37,0x36, +0x6f,0xbd,0x32,0x50,0x4, 0x7a,0x27,0x36,0x6f,0x12,0xc1,0x12,0x38,0xa, 0x12,0x8f, +0xf3,0x38,0x5, 0x12,0x8f,0xeb,0x28,0x3d,0x12,0x67,0x69,0x7e,0x14,0x61,0xc8,0x12, +0x64,0xd3,0x1e,0x34,0x1e,0x34,0xbd,0x32,0x28,0x21,0x7e,0xb3,0x36,0x67,0x4, 0x7a, +0xb3,0x36,0x67,0x7e,0x73,0x36,0x67,0xbe,0x70,0x32,0x28,0x14,0x74,0x32,0x7a,0xb3, +0x36,0x67,0x12,0xc0,0x95,0x7a,0xb3,0x36,0xdc,0x80,0x5, 0xe4,0x7a,0xb3,0x36,0x67, +0x7d,0x32,0x2, 0xad,0xac,0x2, 0x66,0xa8,0x12,0x67,0xc0,0xe4,0x7a,0xb3,0x36,0x75, +0x22,0x7d,0x54,0x9e,0x54,0x0, 0x3f,0x22,0x7d,0x4, 0x9e,0x4, 0x0, 0x1f,0x7e,0xd4, +0x60,0xd1,0x7e,0xc4,0x0, 0xff,0xb, 0x6a,0x10,0x2d,0x10,0xbd,0x1e,0x22,0x7d,0x51, +0x7d,0x12,0x9d,0x35,0x12,0x21,0x0, 0x7c,0xa7,0x12,0x67,0xeb,0x7c,0xb7,0xbc,0xba, +0x50,0x3, 0x7c,0xba,0x22,0x22,0x7d,0x13,0x7e,0x54,0x62,0x58,0x12,0x67,0x15,0x50, +0x21,0x7e,0x54,0x62,0x5a,0x12,0x67,0x15,0x28,0x18,0x7e,0x14,0x62,0x5c,0x12,0x64, +0xd3,0xbd,0x32,0x50,0xd, 0x7e,0x14,0x62,0x5e,0x12,0x64,0xd3,0xbd,0x32,0x28,0x2, +0xe4,0x22,0x74,0x1, 0x22,0x7e,0x44,0x0, 0xff,0xb, 0x2a,0x30,0xbd,0x31,0x22,0x12, +0x66,0x1b,0x2, 0x67,0x25,0x7e,0xb3,0x36,0x69,0x60,0xf, 0x74,0x1, 0x7a,0xb3,0x36, +0x71,0x7e,0xb3,0x36,0xdf,0x70,0x3, 0x12,0xaf,0x2f,0x7e,0xb3,0x36,0x71,0xb4,0x1, +0xc, 0x74,0x3, 0x12,0x67,0x59,0x12,0x23,0x9e,0x3e,0x34,0x80,0x7, 0xe4,0x12,0x67, +0x59,0x12,0x23,0x9e,0x7a,0x37,0x2a,0x62,0x22,0x7a,0xb3,0x34,0xae,0x7e,0x34,0x61, +0x5b,0x22,0x74,0x2, 0x7a,0xb3,0x36,0x69,0x22,0x7e,0xb3,0x36,0x75,0xb4,0x1, 0x3, +0x2, 0x67,0x62,0x7e,0xb3,0x36,0xdb,0x4, 0x7a,0xb3,0x36,0xdb,0x7e,0xb3,0x36,0x69, +0xb4,0x2, 0x18,0x7e,0xb3,0x36,0xda,0x4, 0x7a,0xb3,0x36,0xda,0xb4,0x1, 0x6, 0x74, +0x1, 0x7a,0xb3,0x36,0xdb,0x74,0x1, 0x7a,0xb3,0x36,0x69,0x7e,0x73,0x36,0xda,0xbe, +0x70,0x3, 0x40,0xf, 0x74,0x1, 0x7a,0xb3,0x36,0x75,0x12,0x67,0x62,0x12,0xaf,0x2f, +0x12,0x67,0xc0,0x7e,0x73,0x36,0xdb,0xbe,0x70,0xa, 0x28,0x3, 0x2, 0x67,0xc0,0x22, +0xe4,0x7a,0xb3,0x36,0xdb,0x7a,0xb3,0x36,0xda,0x22,0x7e,0xa3,0x2f,0xa8,0xbe,0xa0, +0xf0,0x50,0x17,0x74,0x4, 0xa4,0x59,0x35,0x2b,0xbf,0x12,0x67,0xf2,0x59,0x25,0x2b, +0xc1,0x7e,0xb3,0x2f,0xa8,0x4, 0x7a,0xb3,0x2f,0xa8,0x22,0x7d,0x31,0x9d,0x30,0x2, +0x21,0x0, 0x7e,0xa3,0x2f,0xa8,0x74,0x4, 0xa4,0x22,0x7e,0x73,0x28,0x93,0x7a,0x73, +0x28,0x94,0x7e,0x73,0x2a,0x2, 0x7a,0x73,0x2a,0x3, 0xe4,0x7a,0xb3,0x2a,0x6, 0x22, +0x12,0xc0,0x25,0x12,0x63,0x2, 0x7a,0x37,0x39,0x4, 0x12,0x69,0x87,0x12,0x28,0x48, +0x2, 0x68,0x23,0x12,0x69,0x84,0x50,0x4, 0x74,0x19,0x80,0x2, 0x74,0x3, 0x7a,0xb3, +0x34,0x88,0xe4,0x7a,0xb3,0x34,0x89,0x22,0xca,0x79,0x7e,0x13,0x2a,0x2, 0x7e,0x78, +0x29,0xbc,0x12,0x69,0x84,0xe4,0x33,0x7c,0xb, 0x4c,0x0, 0x68,0x8, 0x7e,0x30,0x19, +0x7e,0xa0,0x5, 0x80,0x6, 0x7e,0x30,0x3, 0x7e,0xa0,0x1, 0xa5,0xb9,0x0, 0x5, 0x12, +0x68,0x23,0x21,0x6d,0xbc,0x20,0x50,0x3, 0x12,0x68,0x23,0x6c,0x0, 0x21,0x62,0x7e, +0x70,0x9, 0xac,0x70,0x9, 0x93,0x29,0xc, 0xbe,0x90,0xff,0x78,0x2, 0x21,0x60,0xa, +0x29,0x7f,0x67,0x2d,0xd2,0x7e,0x6b,0x80,0xbe,0x80,0x2, 0x68,0x2, 0x21,0x43,0x12, +0x69,0x7a,0x49,0x33,0x29,0x8, 0x9d,0x32,0x12,0x21,0x0, 0x7d,0xd3,0x7e,0x70,0x4, +0xac,0x79,0x49,0x23,0x35,0x43,0x12,0x69,0x70,0x9d,0x32,0x12,0x21,0x0, 0x7d,0xc3, +0x7e,0x73,0x34,0x88,0xa, 0x27,0xbd,0x2d,0x28,0x53,0xbd,0x2c,0x28,0x4f,0x12,0x69, +0x7a,0x7e,0xf0,0x9, 0xac,0xf0,0x59,0x27,0x29,0x8, 0x7e,0x50,0x4, 0xac,0x59,0x49, +0x22,0x35,0x43,0x7e,0xf0,0x9, 0xac,0xf0,0x59,0x27,0x29,0xa, 0xbe,0x10,0x0, 0x28, +0x2, 0x1b,0x10,0xa5,0xb9,0x0, 0x79,0x7e,0xb3,0x34,0x89,0x4, 0x7a,0xb3,0x34,0x89, +0x7e,0x63,0x34,0x89,0xbe,0x60,0x32,0x40,0x67,0xe4,0x7a,0xb3,0x34,0x89,0x7e,0xb3, +0x34,0x88,0xbc,0xb3,0x50,0x5a,0x4, 0x7a,0xb3,0x34,0x88,0x80,0x53,0x7e,0x50,0x9, +0xac,0x50,0x49,0xb2,0x29,0x8, 0x7e,0xf0,0x4, 0xac,0xf9,0x59,0xb7,0x35,0x41,0x49, +0x22,0x29,0xa, 0x59,0x27,0x35,0x43,0xbc,0x73,0x28,0x6, 0x7a,0xa3,0x34,0x88,0x80, +0xb, 0xbc,0x7a,0x28,0x7, 0x7c,0xb7,0x14,0x7a,0xb3,0x34,0x88,0xe4,0x7a,0xb3,0x34, +0x89,0x80,0x1d,0x4c,0x88,0x78,0x19,0x7e,0x70,0x9, 0xac,0x70,0x49,0x33,0x29,0x8, +0x7e,0x50,0x4, 0xac,0x59,0x59,0x32,0x35,0x41,0x12,0x69,0x70,0x59,0x32,0x35,0x43, +0xb, 0x0, 0x90,0x60,0x99,0xe4,0x93,0xbc,0xb0,0x28,0x2, 0x1, 0x6f,0xda,0x79,0x22, +0x7e,0x70,0x9, 0xac,0x70,0x49,0x33,0x29,0xa, 0x22,0x7e,0x50,0x4, 0xac,0x59,0x49, +0x22,0x35,0x41,0x22,0xa2,0x8, 0x22,0x7e,0x34,0xd, 0xac,0x12,0x26,0x5b,0x12,0x7a, +0x2d,0x12,0x69,0xab,0x2, 0x69,0x97,0x30,0xf, 0x10,0x12,0x6e,0x8f,0x50,0x3, 0x12, +0x6f,0x6e,0x12,0x6a,0x50,0x12,0x69,0xd1,0xc2,0xf, 0x22,0x7e,0xb3,0x2b,0x1e,0x70, +0x1f,0x12,0x26,0x57,0x12,0x2f,0xf4,0x50,0xfb,0x12,0x6a,0x50,0x12,0x88,0x17,0x20, +0xf, 0x3, 0x12,0x69,0xd1,0x74,0x2, 0x7a,0xb3,0x2b,0x1e,0xe4,0x7a,0xb3,0x16,0x91, +0x22,0xca,0x3b,0x7e,0xb3,0x2b,0xf, 0x7a,0xb3,0x1f,0x33,0x7e,0xf3,0x2b,0x62,0x12, +0x87,0x56,0x7c,0xdb,0xbe,0xd0,0xff,0x68,0x64,0x6c,0xcc,0x12,0xc0,0xcc,0xf5,0x2a, +0x7e,0x73,0x2b,0xf, 0xbe,0x71,0x2a,0x68,0x36,0x7e,0x70,0x4, 0xac,0x7d,0xa, 0x2c, +0x12,0x91,0x67,0x7c,0xeb,0xbe,0xe0,0x2, 0x38,0x43,0xa, 0xe, 0x7e,0x14,0x2, 0xe0, +0xad,0x10,0x2e,0x14,0x16,0x93,0x6d,0x0, 0x7a,0xd, 0x2b,0x7e,0x70,0x1d,0xac,0x7e, +0x2e,0x34,0x37,0x44,0x6d,0x22,0x7a,0x1f,0x37,0x40,0x7c,0xbc,0x12,0x6c,0x20,0xb, +0xc0,0xbe,0xc0,0x4, 0x40,0xb5,0x7e,0x73,0x2b,0x62,0xbc,0x7f,0x68,0x6, 0x7a,0xf3, +0x2b,0x62,0xd2,0xc, 0xd2,0x3, 0x7e,0xb3,0x1f,0x33,0x12,0x6d,0x13,0xda,0x3b,0x22, +0x7e,0xf, 0x13,0x8a,0x7e,0x18,0x8, 0xa, 0xca,0x3b,0x7a,0x1d,0x2a,0x7f,0x30,0x12, +0xc0,0x1b,0x7a,0x55,0x32,0x7e,0xb3,0x2b,0x1d,0xf5,0x2f,0xe4,0x7a,0xb3,0x2b,0x1d, +0x7f,0x3, 0x7e,0x1d,0x2a,0x12,0x79,0x7a,0x12,0xc0,0x9f,0x12,0xc0,0x42,0x75,0x2e, +0x0, 0x12,0x4e,0x6e,0x30,0xb, 0xfd,0x74,0x1, 0x12,0xc1,0x22,0x7e,0x14,0x40,0x0, +0x7d,0x21,0x7d,0x7, 0x12,0x6a,0xd4,0x12,0xb3,0x89,0x6d,0x33,0x80,0x19,0x7e,0x35, +0x30,0x3e,0x34,0x7f,0x3, 0x2d,0x13,0xb, 0xa, 0x20,0x7e,0xd, 0x2a,0x2d,0x13,0x12, +0x7b,0x20,0x7e,0x35,0x30,0xb, 0x34,0x7a,0x35,0x30,0x7e,0x35,0x32,0xbe,0x35,0x30, +0x38,0xdc,0x5, 0x2e,0xe5,0x2e,0xbe,0xb0,0x1, 0x40,0xb6,0xe5,0x2f,0x7a,0xb3,0x2b, +0x1d,0xda,0x3b,0x22,0x7e,0xb3,0x2a,0x6d,0xca,0x3b,0x7c,0xdb,0x7a,0x5, 0x39,0x7d, +0x71,0x7a,0x25,0x37,0x7a,0x35,0x35,0x12,0x6e,0x8f,0x50,0x7c,0x6c,0xcc,0x80,0x11, +0x7e,0x73,0x2a,0x6e,0x12,0x6b,0xff,0x12,0x6b,0xe5,0x7e,0x34,0x34,0x0, 0x12,0x6c, +0x8, 0x12,0x6d,0x34,0x38,0xea,0x6c,0xcc,0x80,0x58,0x7e,0xa3,0x2a,0x6e,0x7c,0x7a, +0x12,0x6b,0xff,0x75,0x3b,0x0, 0x80,0x27,0x7e,0xb3,0x37,0xb1,0xbe,0xb1,0x3b,0x7e, +0x70,0x4, 0x28,0x8, 0xac,0x7c,0x49,0x43,0x3, 0x60,0x80,0x6, 0xac,0x7c,0x49,0x43, +0x3, 0x62,0x7e,0x71,0x3b,0x74,0x2, 0xac,0x7b,0x59,0x43,0x34,0x50,0x5, 0x3b,0x7e, +0xb3,0x2a,0x70,0xbe,0xb1,0x3b,0x38,0xd0,0x12,0xc0,0xba,0x68,0xb, 0x7e,0x34,0x10, +0x0, 0x74,0x2, 0xa4,0x59,0x35,0x34,0x4e,0x12,0x6b,0xe5,0x7e,0x34,0x34,0x50,0x12, +0x6c,0x8, 0xbc,0xdc,0x38,0xa4,0x80,0x2c,0x7a,0xd3,0x25,0xb6,0x7e,0x73,0x2a,0x70, +0x7a,0x73,0x25,0xb7,0xe4,0x7a,0xb3,0x25,0xb9,0x74,0x6, 0x7a,0xb3,0x25,0xb8,0x7a, +0x77,0x25,0xba,0x7a,0x77,0x25,0xbe,0x7e,0x8, 0x25,0xb6,0x7e,0x73,0x2b,0x1f,0xa, +0x37,0x12,0xe, 0x37,0x7d,0x37,0x12,0x7f,0x78,0x7e,0x35,0x39,0x7a,0x37,0x25,0xbe, +0xe4,0x7a,0xb3,0x25,0xb8,0x12,0x6b,0xf6,0x7a,0xd3,0x25,0xb6,0x7e,0xb3,0x2b,0x1d, +0x70,0xf, 0xe4,0x7a,0xb3,0x25,0xb9,0x7a,0x77,0x25,0xba,0x7e,0x34,0x0, 0x20,0x80, +0x16,0x74,0x1, 0x7a,0xb3,0x25,0xb9,0x7e,0x35,0x35,0x7a,0x37,0x25,0xba,0x7e,0x35, +0x37,0x7a,0x37,0x25,0xbc,0x6d,0x33,0x7a,0x37,0x25,0xc0,0x7e,0x8, 0x25,0xb6,0x12, +0xd, 0x7, 0xda,0x3b,0x22,0x74,0xc, 0x7a,0xb3,0x25,0xb8,0x74,0x1, 0x7a,0xb3,0x25, +0xb6,0xe4,0x7a,0xb3,0x25,0xb9,0x7e,0x73,0x2a,0x6e,0x7a,0x73,0x25,0xb7,0x22,0xac, +0x7c,0x3e,0x34,0x7d,0xf7,0x2d,0xf3,0x22,0x7a,0x37,0x25,0xba,0x7d,0x3f,0x7a,0x37, +0x25,0xbc,0x7a,0x37,0x25,0xbe,0x7e,0x8, 0x25,0xb6,0x12,0x7, 0x9b,0xb, 0xc0,0x22, +0xca,0x3b,0x7a,0xd, 0x2f,0x7c,0xcb,0x7e,0xb3,0x2b,0x1d,0xf5,0x33,0x7e,0xb3,0x2b, +0xf, 0xf5,0x34,0x7e,0xd3,0x2b,0x14,0x7e,0xe3,0x2b,0x1f,0x7e,0xf3,0x2b,0x20,0x7e, +0x34,0x0, 0x38,0xca,0x39,0x7e,0x18,0x34,0x0, 0x7e,0x8, 0x24,0xf2,0x12,0x20,0xb9, +0x1b,0xfd,0x7e,0x34,0x0, 0x8c,0xca,0x39,0x7e,0x18,0x3, 0x60,0x7e,0x8, 0x25,0x2a, +0x12,0x20,0xb9,0x1b,0xfd,0x7c,0xbc,0x12,0xb3,0x54,0x74,0x1, 0x7a,0xb3,0x2b,0x1d, +0x74,0x5, 0xac,0xbc,0x12,0xc0,0x39,0x74,0x5, 0xac,0xbc,0x12,0x6f,0xff,0x74,0x5, +0xac,0xbc,0x12,0xc0,0x30,0x74,0x5, 0xac,0xbc,0x9, 0x75,0x26,0x37,0xbe,0x73,0x2b, +0x62,0x68,0x6, 0x7a,0x73,0x2b,0x62,0xd2,0xc, 0xc2,0x3, 0x12,0xc0,0xcc,0x12,0x6d, +0x13,0x12,0x4e,0x67,0x30,0xb, 0xfd,0x74,0x1, 0x12,0x0, 0xe, 0x7e,0x14,0x40,0x0, +0x7d,0x31,0x7e,0x2f,0x13,0x86,0x7d,0x25,0x7e,0x4, 0xd, 0xc8,0x12,0x6a,0xd4,0x12, +0xc0,0x1b,0x7a,0x55,0x35,0x7e,0xd, 0x2f,0x7e,0x18,0xd, 0xc8,0x12,0xa8,0xef,0x12, +0xa9,0xc9,0xe5,0x33,0x7a,0xb3,0x2b,0x1d,0xe5,0x34,0x7a,0xb3,0x2b,0xf, 0x7a,0xd3, +0x2b,0x14,0x7a,0xe3,0x2b,0x1f,0x7a,0xf3,0x2b,0x20,0x7e,0x34,0x0, 0x38,0xca,0x39, +0x7e,0x18,0x24,0xf2,0x7e,0x8, 0x34,0x0, 0x12,0x20,0xb9,0x1b,0xfd,0x7e,0x34,0x0, +0x8c,0xca,0x39,0x7e,0x18,0x25,0x2a,0x7e,0x8, 0x3, 0x60,0x12,0x20,0xb9,0x1b,0xfd, +0xda,0x3b,0x22,0x7a,0xb3,0x2b,0xf, 0x12,0x6e,0x29,0x30,0xc, 0xa, 0x12,0xaf,0x1d, +0x30,0x3, 0x4, 0xe4,0x12,0xa, 0x66,0x30,0x3, 0x9, 0x12,0xae,0xd2,0x12,0x8d,0xef, +0x2, 0x8c,0x90,0x22,0x7e,0x73,0x2a,0x6f,0xbc,0x7c,0x22,0xca,0x3b,0x7f,0x61,0x7f, +0x50,0x7e,0x14,0x22,0xe2,0x7e,0x4, 0x0, 0xff,0x69,0x30,0x0, 0x2, 0xb, 0xa, 0x20, +0x7a,0x1d,0x2c,0x7e,0x73,0x2a,0x6d,0xa, 0x37,0x3e,0x34,0xca,0x39,0x7f,0x16,0x7f, +0x5, 0x12,0x20,0xb9,0x1b,0xfd,0x6c,0xdd,0x12,0xa7,0x10,0x7a,0xb3,0x1f,0x34,0x6c, +0xcc,0x80,0x4f,0x12,0x6e,0x19,0x40,0x48,0x12,0x6e,0xf, 0x50,0x43,0x74,0x2, 0xac, +0xbc,0x7f,0x16,0x2d,0x35,0xb, 0x1a,0x10,0x7d,0x3f,0x12,0x21,0x0, 0x7d,0x3, 0x7d, +0x31,0x12,0x21,0x0, 0xbd,0x30,0x58,0x2, 0x7d,0xf1,0xbe,0x15,0x2a,0x8, 0x5, 0x7e, +0x15,0x2a,0x80,0xb, 0x6d,0x0, 0x9e,0x5, 0x2a,0xbd,0x1, 0x8, 0x2, 0x7d,0x10,0x7d, +0x31,0x1a,0x26,0x1a,0x24,0x2f,0x41,0x7e,0xb3,0x1f,0x34,0x4, 0x7a,0xb3,0x1f,0x34, +0xb, 0xc0,0x12,0x6d,0x34,0x38,0xac,0x7e,0x73,0x1f,0x34,0x4c,0x77,0x68,0x34,0x12, +0xa7,0x2d,0x8, 0x2, 0x7d,0x7f,0xbe,0x75,0x2a,0x8, 0x5, 0x7e,0x75,0x2a,0x80,0xb, +0x6d,0xee,0x9e,0xe5,0x2a,0xbd,0xe7,0x8, 0x2, 0x7d,0x7e,0x6c,0xcc,0x80,0xf, 0x12, +0x6e,0x19,0x40,0x8, 0x12,0x6e,0xf, 0x50,0x3, 0x12,0xa7,0x18,0xb, 0xc0,0x12,0x6d, +0x34,0x38,0xec,0xb, 0xd0,0xbe,0xd0,0x3, 0x50,0x2, 0xa1,0x68,0xda,0x3b,0x22,0x7c, +0x1d,0x2e,0x10,0x2d,0xa5,0xe7,0xbc,0xab,0x22,0xa, 0xec,0x9, 0xae,0x2a,0xb9,0x7c, +0x1d,0x2e,0x10,0x2c,0xa5,0xe7,0xbc,0xab,0x22,0x12,0x6e,0xa0,0x7a,0x37,0x2b,0x1b, +0x22,0x7e,0xa3,0x0, 0x4f,0xbe,0xa0,0xff,0x68,0x48,0xbe,0xa3,0x3, 0xec,0x68,0x42, +0x74,0x5, 0xa4,0x12,0xc0,0xc3,0x12,0x6e,0x83,0x12,0xc0,0x39,0x12,0x6e,0x83,0x12, +0xc0,0x30,0x12,0x6e,0x8f,0x50,0x9, 0x7e,0xb3,0x0, 0x4f,0x12,0xb3,0x54,0x80,0x6, +0x12,0x6e,0x83,0x12,0x6f,0xff,0x12,0x6e,0x29,0x12,0x6f,0xf8,0x7e,0x73,0x2b,0x14, +0xa, 0x37,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x1a,0x7e,0x73,0x0, 0x4f,0x7a,0x73, +0x3, 0xec,0x22,0x7e,0xa3,0x0, 0x4f,0x74,0x5, 0xa4,0x22,0x7a,0xb3,0x2b,0x20,0x7e, +0xb3,0x37,0x8, 0xb4,0x3, 0x8, 0x7e,0xb3,0x37,0xb2,0x70,0x2, 0xc3,0x22,0xd3,0x22, +0x7e,0x23,0x2b,0xf, 0x7e,0x33,0x37,0xcd,0x7e,0x34,0x60,0xd6,0x7e,0x24,0x0, 0xff, +0xb, 0x1a,0x0, 0xac,0x23,0x2d,0x10,0xbe,0x14,0x0, 0xa, 0x50,0x4, 0x7e,0x14,0x0, +0xa, 0x7e,0x63,0x2b,0x10,0xbe,0x14,0xf, 0x3c,0x40,0x4, 0x7e,0x14,0xf, 0x3c,0xbe, +0x14,0x7, 0x8, 0x40,0x3, 0xe4,0x80,0x21,0xbe,0x14,0x3, 0x84,0x40,0x16,0x90,0x61, +0x1b,0xe4,0x93,0x7c,0x7b,0xbe,0x70,0x1, 0x28,0x4, 0x74,0x1, 0x80,0xb, 0x7a,0x73, +0x2b,0x10,0x80,0x9, 0x90,0x61,0x1b,0xe4,0x93,0x7a,0xb3,0x2b,0x10,0x7e,0x73,0x2b, +0x10,0xbc,0x76,0x68,0x2, 0xd2,0xc, 0x7e,0x24,0x1, 0xf4,0x7d,0x31,0x8d,0x32,0x7c, +0x17,0xbe,0x10,0x7, 0x28,0x3, 0x7e,0x10,0x7, 0x7e,0x1f,0x38,0xc0,0x69,0x51,0x0, +0x86,0x54,0x1f,0xa, 0x1, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x2d, +0x5, 0x79,0x1, 0x0, 0x86,0x6d,0x0, 0x7e,0x34,0xb8,0x0, 0x7e,0x24,0x0, 0xb, 0x2, +0x1f,0x58,0x7e,0xb, 0x70,0x7a,0x73,0x2b,0xf, 0x29,0x70,0x0, 0x4, 0x7a,0x73,0x2b, +0x62,0x29,0x70,0x0, 0x1, 0x7a,0x73,0x2b,0x14,0x29,0x70,0x0, 0x3, 0x7a,0x73,0x2b, +0x20,0x12,0x6e,0x29,0x12,0x6f,0xf8,0xd2,0x3, 0xc2,0x4, 0x2, 0x48,0xf4,0xca,0xf8, +0x6c,0xff,0x80,0x34,0x7e,0x73,0x0, 0x4f,0xbc,0x7f,0x68,0x2a,0x7e,0x30,0x5, 0xac, +0x3f,0x12,0x6f,0xea,0xca,0x39,0x7e,0x30,0x38,0xac,0x3f,0x12,0xc0,0x76,0x12,0x20, +0xb9,0x1b,0xfd,0x7e,0x34,0x0, 0x8c,0xca,0x39,0x7e,0x30,0x8c,0xac,0x3f,0x12,0xc0, +0x6b,0x12,0x20,0xb9,0x1b,0xfd,0xb, 0xf0,0x90,0x61,0xc5,0xe4,0x93,0xbc,0xbf,0x38, +0xc3,0x7e,0x23,0x0, 0x4f,0x7e,0x30,0x5, 0xac,0x23,0x12,0x6f,0xea,0xca,0x39,0x7e, +0x23,0x0, 0x4f,0x7e,0x30,0x38,0xac,0x23,0x12,0xc0,0x76,0x12,0x20,0xb9,0x1b,0xfd, +0x7e,0x34,0x0, 0x8c,0xca,0x39,0x7e,0x23,0x0, 0x4f,0x7e,0x30,0x8c,0xac,0x23,0x12, +0xc0,0x6b,0x12,0x20,0xb9,0x1b,0xfd,0xda,0xf8,0x22,0x2e,0x14,0x26,0x33,0x6d,0x0, +0x12,0x6f,0x42,0x7e,0x34,0x0, 0x38,0x22,0x7e,0x8, 0x2a,0x6d,0x2, 0x3, 0x8b,0x9, +0x75,0x26,0x35,0x7a,0x73,0x2b,0x1f,0x22,0x7e,0x37,0x3, 0xed,0xb, 0x34,0x7a,0x37, +0x3, 0xed,0x7e,0x37,0x3, 0xef,0xbe,0x37,0x3, 0xed,0x28,0x3, 0x2, 0x70,0x23,0x22, +0x2, 0x70,0x8, 0xe5,0x9a,0x60,0x5, 0xd2,0x9c,0xa9,0xd6,0xdf,0x22,0xca,0x7b,0xca, +0x6b,0xca,0x5b,0xca,0x4b,0xca,0x2b,0xca,0x1b,0xca,0xb, 0xc0,0xd0,0xc0,0x83,0xc0, +0x82,0x12,0x70,0x20,0xd0,0x82,0xd0,0x83,0xd0,0xd0,0xda,0xb, 0xda,0x1b,0xda,0x2b, +0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda,0x7b,0x32,0x7e,0x34,0x0, 0x4, 0xca,0x39,0x7e, +0x34,0x61,0x2d,0x7e,0x24,0x0, 0xff,0x7e,0x8, 0x2b,0x70,0x12,0x20,0xb9,0x1b,0xfd, +0x7e,0x34,0x2a,0xe, 0x7a,0x37,0x2b,0x76,0xe4,0x7a,0xb3,0x2b,0x74,0x7a,0xb3,0x2b, +0x75,0x7e,0x34,0x0, 0x4, 0xca,0x39,0x12,0x79,0x25,0x7e,0x8, 0x25,0xee,0x12,0x20, +0xb9,0x1b,0xfd,0x7e,0x34,0x2b,0x78,0x7a,0x37,0x25,0xf4,0xe4,0x7a,0xb3,0x25,0xf2, +0x74,0x1, 0x7a,0xb3,0x25,0xf3,0x22,0xca,0xd8,0xca,0x79,0x90,0x60,0x50,0xe4,0x93, +0x7c,0xdb,0x90,0x60,0x51,0xe4,0x93,0x7c,0xeb,0x7e,0x73,0x2a,0x74,0xbc,0x7e,0x28, +0x4, 0x7c,0xf7,0x80,0x2, 0x7c,0xfe,0x7a,0xd3,0x2a,0x6d,0x7a,0xe3,0x2a,0x6e,0x7a, +0xd3,0x2a,0x71,0x7a,0xe3,0x2a,0x72,0x7a,0xd3,0x2a,0x73,0x7a,0xe3,0x2a,0x74,0x90, +0x60,0xa8,0xe4,0x93,0x7c,0xab,0x7a,0xa3,0x2a,0x77,0x90,0x60,0xa9,0xe4,0x93,0xa, +0x2b,0xa, 0x3d,0x9d,0x32,0x7c,0xb7,0x7a,0xb3,0x2a,0x6f,0xa, 0x2a,0xa, 0x3e,0x9d, +0x32,0x7a,0x73,0x2a,0x70,0x90,0x60,0x91,0xe4,0x93,0x7a,0xb3,0x2a,0x78,0x90,0x60, +0x94,0xe4,0x93,0x7a,0xb3,0x2a,0x79,0xa, 0x3d,0xca,0x39,0x7e,0x34,0x60,0x52,0x7e, +0x24,0x0, 0xff,0x7e,0x8, 0x2a,0x7a,0x12,0x20,0xb9,0x1b,0xfd,0xa, 0x3f,0xca,0x39, +0x7e,0x34,0x60,0x75,0x7e,0x24,0x0, 0xff,0x7e,0x8, 0x2a,0x9d,0x12,0x20,0xb9,0x1b, +0xfd,0x7e,0x34,0x0, 0x23,0xca,0x39,0x7e,0x34,0x60,0xd8,0x7e,0x24,0x0, 0xff,0x7e, +0x8, 0x2b,0x21,0x12,0x20,0xb9,0x1b,0xfd,0x12,0x72,0x92,0x12,0x79,0x31,0x90,0x60, +0xaa,0xe4,0x93,0x70,0x8, 0x7a,0xd3,0x2a,0x75,0x7a,0xe3,0x2a,0x76,0x12,0x70,0x59, +0x74,0x1, 0x12,0x3d,0xac,0xe4,0x7a,0xb3,0x2b,0x1, 0x7a,0xb3,0x2b,0x2, 0x12,0x73, +0xf1,0x7a,0x37,0x2b,0xd, 0x74,0x3, 0x7a,0xb3,0x2b,0x3, 0xe4,0x7a,0xb3,0x2b,0x4, +0x74,0x2, 0x7a,0xb3,0x2b,0x5, 0x7e,0x34,0x61,0x59,0x12,0x23,0x9e,0x7a,0x37,0x2b, +0x7, 0x74,0x4, 0x7a,0xb3,0x2b,0x6, 0x7e,0x34,0x0, 0xf, 0x7a,0x37,0x2b,0x9, 0x7e, +0x34,0x20,0x5f,0x7a,0x37,0x2b,0xb, 0x90,0x61,0x1a,0xe4,0x93,0x7a,0xb3,0x2b,0x62, +0x90,0x61,0x1b,0xe4,0x93,0x7a,0xb3,0x2b,0x10,0x90,0x61,0x1c,0xe4,0x93,0x7a,0xb3, +0x2b,0x11,0x74,0x4, 0x7a,0xb3,0x2b,0x13,0x90,0x60,0xd5,0xe4,0x93,0x7a,0xb3,0x2b, +0xf, 0x12,0x6e,0x29,0xe4,0x7a,0xb3,0x2b,0x1d,0x7a,0xb3,0x2b,0x1e,0x7e,0x34,0x61, +0x22,0x12,0x23,0x9e,0x7a,0x37,0x2b,0x19,0x90,0x60,0xd3,0x93,0x7a,0xb3,0x2b,0x12, +0x90,0x61,0x24,0xe4,0x93,0x7a,0xb3,0x2b,0x20,0x90,0x61,0x19,0xe4,0x93,0x7a,0xb3, +0x2b,0x1f,0x7e,0x34,0x61,0x1e,0x12,0x23,0x9e,0x7a,0x37,0x2b,0x15,0x7e,0x34,0x61, +0x20,0x12,0x23,0x9e,0x7a,0x37,0x2b,0x17,0x90,0x61,0x1d,0xe4,0x93,0x7a,0xb3,0x2b, +0x14,0x7e,0x34,0x0, 0x30,0x7a,0x37,0x2b,0x6a,0x74,0x5, 0x7a,0xb3,0x2b,0x67,0x7e, +0x34,0x0, 0x5, 0x7a,0x37,0x2b,0x68,0xe4,0x7a,0xb3,0x2b,0x66,0x7e,0x34,0x4, 0x6d, +0x7a,0x37,0x2b,0x6c,0x74,0x1, 0x7a,0xb3,0x2b,0x63,0x74,0x6, 0x7a,0xb3,0x2b,0x64, +0xe4,0x7a,0xb3,0x2b,0x65,0x74,0x1, 0x7a,0xb3,0x2b,0x60,0xe4,0x7a,0xb3,0x2b,0x61, +0x7e,0x34,0x20,0x5b,0x7a,0x37,0x2b,0x6e,0xa, 0x3e,0xca,0x39,0x7e,0x34,0x60,0xfb, +0x7e,0x24,0x0, 0xff,0x7e,0x8, 0x2b,0x44,0x12,0x20,0xb9,0x1b,0xfd,0xda,0x79,0xda, +0xd8,0x22,0x12,0xc0,0xd5,0x12,0x72,0xf4,0x90,0x60,0x50,0xe4,0x93,0xa, 0x3b,0x7d, +0x13,0x2e,0x14,0x2a,0x7a,0x6d,0x0, 0x9, 0xb3,0x2a,0x79,0x12,0x72,0xdb,0xa, 0x3b, +0x7d,0x13,0x2e,0x14,0x2b,0x21,0x6d,0x0, 0x9, 0xb3,0x2b,0x20,0x12,0x72,0xdb,0xa, +0x1b,0x2e,0x14,0x2a,0x7c,0x12,0x72,0xe8,0xe5,0x25,0x12,0x72,0xdf,0xa, 0x1b,0x2e, +0x14,0x2b,0x23,0x12,0x72,0xe8,0xe5,0x24,0x2, 0x20,0xde,0x7e,0x34,0x0, 0x2, 0x12, +0x20,0xde,0x90,0x60,0x50,0xe4,0x93,0x22,0x6d,0x0, 0x90,0x60,0x91,0xe4,0x93,0xa, +0x3b,0x1b,0x35,0x22,0x6c,0xaa,0x6c,0x99,0x80,0xc, 0xa, 0xf9,0x9, 0xbf,0x2a,0x7a, +0xbc,0xba,0x68,0x7, 0xb, 0x90,0x12,0x73,0x20,0x38,0xef,0x12,0x73,0x20,0x68,0x7, +0xb, 0xa0,0xbe,0xa0,0x23,0x40,0xdf,0x7a,0xb, 0xa0,0x74,0x6e,0x7a,0x1b,0xb0,0x22, +0x90,0x60,0x50,0xe4,0x93,0xbc,0xb9,0x22,0x12,0x77,0xfd,0x12,0x70,0xa7,0x12,0x0, +0xa, 0x12,0x3f,0xf2,0x7e,0x18,0x4, 0x0, 0x7a,0x1f,0x6, 0xf8,0x7e,0xf, 0x6, 0xf8, +0x7e,0x1f,0x6, 0xf4,0x12,0x79,0x9d,0x7e,0x18,0x8, 0xa, 0x7a,0x1f,0x13,0x86,0x7e, +0x18,0xd, 0xc8,0x7a,0x1f,0x13,0x8a,0x7e,0xf, 0x13,0x8a,0x7e,0x1f,0x13,0x86,0x12, +0x79,0x7a,0x12,0x79,0x2e,0x12,0x25,0x45,0x12,0x73,0xa7,0x12,0x73,0x7f,0x2, 0x73, +0x71,0xe4,0x7a,0xb3,0x34,0x38,0x7a,0xb3,0x34,0x39,0x7a,0xb3,0x34,0x3a,0x22,0x12, +0x73,0xe5,0x7e,0x24,0x0, 0x3, 0xad,0x32,0x7e,0x8, 0x28,0xae,0x74,0xff,0x12,0x20, +0xde,0x12,0x9f,0xe3,0x7e,0x8, 0x29,0xbc,0x12,0x5e,0x61,0x7e,0x8, 0x2a,0x2, 0x7e, +0x34,0x0, 0xb, 0xe4,0x2, 0x20,0xde,0x7e,0x8, 0x26,0x5b,0x7e,0x34,0x2, 0x3a,0xe4, +0x12,0x20,0xde,0x90,0x60,0x9c,0x93,0xa, 0x3b,0x3e,0x34,0x7e,0x8, 0x26,0x8c,0x74, +0xff,0x12,0x20,0xde,0x90,0x60,0x9c,0xe4,0x93,0xa, 0x3b,0x3e,0x34,0x7e,0x8, 0x26, +0xb4,0x74,0xff,0x12,0x20,0xde,0x90,0x60,0x9a,0x12,0x73,0xe8,0x7e,0x8, 0x27,0x76, +0x74,0xff,0x2, 0x20,0xde,0x90,0x60,0x99,0xe4,0x93,0x7c,0x7b,0x74,0x9, 0xac,0x7b, +0x22,0x6d,0x33,0x6c,0xaa,0x80,0x14,0xa, 0x2a,0x9, 0xb2,0x2a,0xdc,0x54,0x1, 0x78, +0x5, 0x4e,0x70,0x1, 0x80,0x3, 0x4e,0x70,0x10,0xb, 0xa0,0x7e,0x53,0x2a,0x74,0xbc, +0x5a,0x38,0xe4,0x6c,0xaa,0x80,0x1f,0xa, 0x2a,0x9, 0xb2,0x2a,0xb9,0xbe,0xb0,0xd, +0x38,0x5, 0x4e,0x70,0xc0,0x80,0xd, 0xbe,0xb0,0x1b,0x38,0x5, 0x4e,0x60,0x8, 0x80, +0x3, 0x4e,0x60,0x50,0xb, 0xa0,0x12,0x74,0x3c,0x38,0xdc,0x22,0x7e,0xb3,0x2a,0x73, +0xbc,0xba,0x22,0xca,0x3b,0x7e,0xb4,0x7f,0xff,0x7d,0xab,0x7d,0x8b,0x6d,0x22,0x7d, +0x32,0x7d,0x9b,0x75,0x24,0x0, 0x6c,0x99,0x7e,0x78,0x4, 0xfc,0x7e,0x8, 0x5, 0x7a, +0xe4,0x7a,0xb3,0x8, 0x8, 0x7a,0xb3,0x8, 0x9, 0x7a,0xb3,0x26,0xf6,0x7a,0xb3,0x26, +0xf8,0x7a,0xb3,0x26,0xf7,0x7a,0xb3,0x26,0xf9,0x6c,0xaa,0x80,0x5f,0x12,0x75,0xb2, +0xb, 0x6a,0xc0,0xbd,0xca,0x58,0x2, 0x7d,0xac,0xbd,0xc3,0x8, 0x2, 0x7d,0x3c,0x2d, +0x71,0x7d,0x60,0xb, 0x3a,0xd0,0xbd,0xd9,0x58,0x2, 0x7d,0x9d,0x7e,0x67,0x2a,0x53, +0x7e,0x74,0x0, 0x3, 0xad,0x76,0xbd,0xc7,0x8, 0x2, 0x5, 0x24,0x12,0x75,0x9f,0xb, +0x3a,0xd0,0xbd,0xcd,0x8, 0xb, 0x7e,0xb3,0x26,0xf7,0x4, 0x7a,0xb3,0x26,0xf7,0x80, +0x19,0x12,0x75,0xa8,0xb, 0x3a,0xc0,0x6e,0xd4,0xff,0xff,0xb, 0xd4,0xbd,0xcd,0x58, +0x9, 0x7e,0xb3,0x26,0xf9,0x4, 0x7a,0xb3,0x26,0xf9,0xb, 0xa0,0x7e,0xb3,0x2a,0x74, +0xbc,0xba,0x38,0x99,0x7a,0xa7,0x7, 0xfe,0x7a,0x37,0x8, 0x2, 0xe5,0x24,0x7a,0xb3, +0x8, 0x9, 0x7a,0x97,0x8, 0x6, 0x12,0x75,0x97,0x2d,0xf5,0x6c,0xaa,0x80,0x50,0x12, +0x75,0xb2,0xb, 0x6a,0xd0,0xbd,0xd8,0x58,0x2, 0x7d,0x8d,0xbd,0xd2,0x8, 0x2, 0x7d, +0x2d,0x7e,0x67,0x2a,0x51,0x7e,0x74,0x0, 0x3, 0xad,0x76,0xbd,0xd7,0x8, 0x2, 0xb, +0x90,0x12,0x75,0x9f,0xb, 0x3a,0xc0,0xbd,0xdc,0x8, 0xb, 0x7e,0xb3,0x26,0xf6,0x4, +0x7a,0xb3,0x26,0xf6,0x80,0x17,0x12,0x75,0xa8,0xb, 0x3a,0xd0,0x6d,0x99,0x9d,0x9c, +0xbd,0xd9,0x58,0x9, 0x7e,0xb3,0x26,0xf8,0x4, 0x7a,0xb3,0x26,0xf8,0xb, 0xa0,0x12, +0x74,0x3c,0x38,0xab,0x7a,0x87,0x7, 0xfc,0x7a,0x27,0x8, 0x0, 0x7a,0x93,0x8, 0x8, +0x12,0x75,0x97,0x2d,0x15,0x6c,0xaa,0x80,0xe, 0x12,0xa5,0xe4,0xb, 0x7a,0x90,0xbd, +0x9b,0x58,0x2, 0x7d,0xb9,0xb, 0xa0,0x12,0x74,0x3c,0x38,0xed,0x7a,0xb7,0x8, 0x4, +0xbd,0x8a,0x58,0x2, 0x7d,0xa8,0x7a,0xa7,0x7, 0xf8,0xbd,0x32,0x58,0x2, 0x7d,0x32, +0x7a,0x37,0x7, 0xfa,0xda,0x3b,0x22,0x7e,0xa3,0x2a,0x74,0x74,0x2, 0xa4,0x22,0x7e, +0x74,0x62,0x10,0x7e,0x64,0x0, 0xff,0x22,0x7e,0xf0,0x2, 0xac,0xfa,0x2d,0x7f,0x7d, +0x6e,0x22,0x7e,0xf0,0x2, 0xac,0xfa,0x7f,0x67,0x2d,0xd7,0x22,0xca,0x3b,0x7f,0x31, +0x7a,0xd, 0x24,0x7e,0x35,0x28,0x7a,0x35,0x2e,0x7e,0xd, 0x24,0x7f,0x13,0x12,0xa6, +0x56,0x7e,0x35,0x28,0x7a,0x35,0x2a,0x12,0x75,0x97,0x7e,0xd, 0x24,0x2d,0x15,0x7f, +0x13,0x2d,0x35,0x12,0x6d,0x3b,0xda,0x3b,0x22,0x7e,0x37,0x2a,0x4f,0x1e,0x34,0x7a, +0x35,0x28,0x7e,0x8, 0x4, 0xfc,0x7e,0x18,0x4, 0x0, 0x12,0x75,0xbc,0x7e,0x37,0x28, +0x99,0xe, 0x34,0x7a,0x35,0x28,0x7e,0x8, 0x5, 0x7a,0x7e,0x18,0x4, 0x7e,0x12,0x75, +0xbc,0x12,0x76,0x2b,0x12,0xa7,0x45,0x2, 0x76,0x1a,0xe4,0x7a,0xb3,0x3, 0xff,0x7e, +0xb3,0x28,0xa8,0x60,0x5, 0xe4,0x7a,0xb3,0x3, 0xff,0x22,0xca,0x3b,0x7e,0xf3,0x2a, +0x6e,0x12,0xc0,0xde,0x6c,0xcc,0x80,0x13,0x7c,0x7c,0xac,0x7f,0x3e,0x34,0x7e,0xf, +0x13,0x8a,0x2d,0x13,0x7c,0xbd,0x12,0xa7,0xcd,0xb, 0xc0,0xbc,0xec,0x38,0xe9,0xda, +0x3b,0x22,0xe4,0x7a,0xb3,0x28,0x93,0x12,0xbb,0xb5,0x7e,0xb3,0x16,0x91,0xb4,0x1, +0x8, 0x7e,0x73,0x28,0x84,0x7a,0x73,0x28,0x92,0x7e,0x18,0x4, 0xfc,0x7a,0x1f,0x6, +0xf8,0x12,0x3f,0xf2,0x12,0x76,0x9a,0x12,0x74,0x43,0x7e,0xb3,0x16,0x90,0xb4,0x1, +0x18,0x7e,0x73,0x26,0x83,0x7a,0x73,0x26,0xf3,0x7e,0x73,0x26,0x85,0x7a,0x73,0x26, +0xf5,0x7e,0x73,0x26,0x84,0x7a,0x73,0x26,0xf4,0x22,0x7e,0x8, 0x26,0x86,0x7e,0x34, +0x0, 0x3, 0xe4,0x12,0x20,0xde,0x7e,0x8, 0x26,0x89,0x7e,0x34,0x0, 0x3, 0x12,0x20, +0xde,0x7a,0xb3,0x26,0x83,0x7a,0xb3,0x26,0x84,0x7a,0xb3,0x26,0x85,0x7a,0xb3,0x26, +0xf0,0x7a,0xb3,0x26,0xf1,0x7a,0xb3,0x26,0xf2,0x7e,0x18,0x26,0x6f,0x12,0xc0,0xb, +0x6c,0x55,0x12,0x77,0x60,0x7a,0xb3,0x26,0x85,0x7e,0x18,0x26,0x5b,0x12,0xbf,0xe7, +0x6c,0x55,0x12,0x77,0x60,0x7a,0xb3,0x26,0x84,0x6c,0x77,0x80,0x14,0x12,0x77,0xe9, +0x60,0x5, 0x3e,0x24,0x14,0x78,0xfb,0x12,0x77,0xf2,0x2e,0x24,0x26,0x86,0x12,0xc0, +0x60,0x7e,0x63,0x26,0x84,0xbc,0x67,0x38,0xe4,0x6c,0x77,0x80,0x14,0x12,0x77,0xe9, +0x60,0x5, 0x3e,0x24,0x14,0x78,0xfb,0x12,0x77,0xf2,0x2e,0x24,0x26,0x89,0x12,0xc0, +0x60,0x7e,0xa3,0x26,0x85,0xbc,0xa7,0x38,0xe4,0x7e,0xb3,0x26,0x84,0xa4,0x7a,0xb3, +0x26,0x83,0x7e,0x18,0x26,0xe6,0x12,0xc0,0xb, 0x7e,0x50,0x1, 0x12,0x77,0x60,0x7a, +0xb3,0x26,0xf2,0x7e,0x18,0x26,0xdc,0x12,0xbf,0xe7,0x7e,0x50,0x1, 0x12,0x77,0x60, +0x7c,0xab,0x7a,0xa3,0x26,0xf1,0x7e,0xb3,0x26,0xf2,0xa4,0x7a,0xb3,0x26,0xf0,0x22, +0xca,0x69,0xca,0xf8,0x7c,0x4b,0x6c,0xaa,0x6d,0xff,0x6c,0xff,0x80,0x70,0x7e,0xd0, +0x2, 0xac,0xdf,0x7f,0x60,0x2d,0xd6,0xb, 0x6a,0xe0,0x4c,0x55,0x68,0x6, 0x6e,0xe4, +0xff,0xff,0xb, 0xe4,0xbd,0x3e,0x58,0x54,0x4c,0xff,0x78,0x8, 0x6d,0x44,0x69,0xf0, +0x0, 0x2, 0x80,0x1b,0x7c,0xb4,0x14,0xbc,0xbf,0x7f,0x56,0x78,0x9, 0x1b,0xb5,0xb, +0x5a,0x40,0x6d,0xff,0x80,0x9, 0x1b,0xb5,0xb, 0x5a,0x40,0x69,0xf6,0x0, 0x2, 0x4c, +0x55,0x68,0xc, 0x6e,0x44,0xff,0xff,0xb, 0x44,0x6e,0xf4,0xff,0xff,0xb, 0xf4,0xbd, +0x4e,0x58,0x19,0xbd,0xfe,0x18,0x15,0xa, 0xba,0x7e,0x6d,0x24,0x2d,0xdb,0x7a,0x6b, +0xf0,0xb, 0xa0,0x90,0x60,0x9b,0xe4,0x93,0xbc,0xba,0x28,0x6, 0xb, 0xf0,0xbc,0x4f, +0x38,0x8c,0x7c,0xba,0xda,0xf8,0xda,0x69,0x22,0x7c,0xb7,0x54,0x7, 0x7e,0x24,0x0, +0x1, 0x22,0x7c,0xa5,0x7c,0xb7,0xc4,0x23,0x54,0x1f,0xa, 0x2b,0x22,0xe4,0x7a,0xb3, +0x37,0x9c,0x7a,0xb3,0x37,0x9d,0x90,0x60,0x50,0x93,0x7a,0xb3,0x37,0x9e,0x90,0x60, +0x51,0xe4,0x93,0x7a,0xb3,0x37,0x9f,0xe4,0x7a,0xb3,0x37,0xa0,0x90,0x60,0x99,0x93, +0x7a,0xb3,0x37,0xa1,0xe4,0x7a,0xb3,0x37,0xa2,0x7a,0xb3,0x37,0xa3,0x90,0x61,0xc4, +0x93,0x7a,0xb3,0x37,0xa5,0x7e,0x34,0x61,0x4f,0x12,0x23,0x9e,0x1e,0x34,0x1e,0x34, +0x7a,0x73,0x37,0xa9,0x7e,0x34,0x61,0x55,0x12,0x23,0x9e,0x1e,0x34,0x1e,0x34,0x7a, +0x73,0x37,0xaa,0x74,0x64,0x7a,0xb3,0x37,0xbb,0x90,0x61,0x18,0xe4,0x93,0x7a,0xb3, +0x37,0xbc,0x90,0x61,0x17,0xe4,0x93,0x7a,0xb3,0x37,0xa8,0x90,0x61,0x19,0xe4,0x93, +0x7a,0xb3,0x37,0xbe,0x90,0x61,0x24,0xe4,0x93,0x7a,0xb3,0x37,0xbd,0x90,0x61,0x1d, +0xe4,0x93,0x7a,0xb3,0x37,0xbf,0x90,0x61,0x25,0xe4,0x93,0x7a,0xb3,0x37,0xba,0xe4, +0x7a,0xb3,0x37,0xb5,0x74,0xfa,0x7a,0xb3,0x37,0xb3,0x74,0x1e,0x7a,0xb3,0x37,0xb4, +0x74,0x1, 0x7a,0xb3,0x37,0xb2,0x74,0xd, 0x7a,0xb3,0x37,0xb1,0x74,0x1, 0x7a,0xb3, +0x37,0xb6,0xe4,0x7a,0xb3,0x37,0xb7,0x7a,0xb3,0x37,0xb8,0x7e,0x8, 0x37,0xc0,0x7e, +0x34,0x0, 0x2c,0x12,0x20,0xde,0x7e,0x34,0x60,0xd6,0x12,0x23,0x9e,0xa, 0x36,0x7a, +0x73,0x37,0xcb,0x7e,0x34,0x60,0xd6,0x12,0x23,0x9e,0x7a,0x73,0x37,0xcc,0x90,0x60, +0xd4,0x93,0x7a,0xb3,0x37,0xcd,0x90,0x60,0xd5,0xe4,0x93,0x7a,0xb3,0x37,0xce,0x7e, +0x34,0x0, 0x4, 0xca,0x39,0x12,0x79,0x25,0x7e,0x8, 0x37,0xdc,0x12,0x20,0xb9,0x1b, +0xfd,0x74,0x5, 0x7a,0xb3,0x37,0xe9,0x74,0x1, 0x7a,0xb3,0x37,0xe0,0x7e,0x34,0x0, +0x28,0xca,0x39,0x7e,0x34,0x61,0xd5,0x7e,0x24,0x0, 0xff,0x7e,0x8, 0x26,0x33,0x12, +0x20,0xb9,0x1b,0xfd,0x22,0x7e,0x34,0x61,0x29,0x7e,0x24,0x0, 0xff,0x22,0x2, 0x23, +0xa6,0xca,0xf8,0x7e,0x73,0x2a,0x78,0xa, 0x47,0x7e,0x73,0x2a,0x71,0xa, 0x57,0x2d, +0x54,0x7e,0xa3,0x2a,0x73,0xbc,0xab,0x28,0x2, 0x7c,0xba,0x7e,0xf3,0x2a,0x72,0x7e, +0xa3,0x2a,0x74,0xbc,0xaf,0x28,0x2, 0x7c,0xfa,0x75,0x25,0x15,0x7e,0x8, 0x2a,0xb9, +0x7e,0x18,0x2a,0x7a,0x12,0xd, 0xd9,0x75,0x25,0x15,0x7e,0x8, 0x2a,0xdc,0x7e,0x18, +0x2a,0x9d,0x7c,0xbf,0x12,0xf, 0x9c,0xda,0xf8,0x22,0x7f,0x60,0x7e,0xa3,0x2a,0x6d, +0x7e,0xb3,0x2a,0x6e,0xa4,0x7d,0xf5,0x3e,0xf4,0x7f,0x1, 0x7d,0x3f,0xe4,0x12,0x20, +0xde,0x7f,0x6, 0x7d,0x3f,0x12,0x20,0xde,0x7a,0xb3,0x16,0x91,0x22,0x7f,0x70,0x7e, +0x33,0x2a,0x74,0xa, 0x43,0x7e,0x33,0x2a,0x73,0xa, 0x53,0x2d,0x54,0x3e,0x54,0x7c, +0xab,0xe4,0x7a,0xb3,0x16,0x90,0x7f,0x1, 0xa, 0x3a,0x12,0x20,0xde,0x7f,0x7, 0xa, +0x3a,0x2, 0x20,0xde,0xca,0xd8,0xca,0x79,0x7c,0xfb,0x7f,0x51,0x7f,0x40,0x7f,0x15, +0x12,0x79,0x9d,0x12,0x3f,0xd2,0x7e,0xe0,0x1, 0x12,0x4f,0xaf,0x30,0x18,0xfd,0x74, +0x2, 0x12,0x0, 0x1e,0x7f,0x4, 0x12,0x7b,0x29,0x6c,0xdd,0x80,0x18,0x74,0x2, 0xac, +0xbd,0x7f,0x14,0x2d,0x35,0xb, 0x1a,0x20,0x74,0x2, 0xac,0xbd,0x7f,0x5, 0x2d,0x15, +0x12,0x7b,0x20,0xb, 0xd0,0x7e,0x73,0x2a,0x74,0xa, 0x7, 0x7e,0x63,0x2a,0x73,0xa, +0x16,0x2d,0x10,0xa, 0x2d,0xbd,0x21,0x48,0xd4,0x1b,0xe0,0x78,0xbc,0x7f,0x5, 0x7c, +0xbf,0x2e,0x73,0x2a,0x73,0x12,0x7a,0x8e,0xda,0x79,0xda,0xd8,0x22,0x7e,0xb3,0x2b, +0x2, 0x70,0x41,0x12,0x2f,0xf4,0x50,0xfb,0xe4,0x6c,0x77,0x6c,0x66,0x12,0x7a,0x75, +0x7e,0x8, 0x6, 0xfc,0x7e,0x1f,0x6, 0xf4,0x7e,0xb3,0x2b,0x72,0x12,0x79,0xc4,0x74, +0x1, 0x7e,0x70,0x1, 0x7e,0x60,0x1, 0x12,0x7a,0x75,0x7e,0x8, 0x7, 0x7a,0x7e,0x1f, +0x6, 0xf4,0x7e,0xb3,0x25,0xf0,0x12,0x79,0xc4,0x74,0x2, 0x7a,0xb3,0x2b,0x2, 0xe4, +0x7a,0xb3,0x16,0x90,0x22,0x7c,0x96,0x7c,0xa7,0x12,0x3d,0xac,0x7c,0xba,0x12,0x13, +0xc7,0x74,0xa, 0x12,0x45,0x15,0x7c,0xb9,0x12,0x0, 0x1e,0x2, 0x4e,0xe7,0xca,0xd8, +0xca,0x79,0x7c,0xf7,0x7f,0x70,0x12,0x7b,0xd0,0x7c,0xeb,0x6c,0xdd,0x80,0x20,0x74, +0x2, 0xac,0xbd,0x7f,0x67,0x2d,0xd5,0xb, 0x6a,0x30,0x6d,0x22,0x74,0x4, 0x2f,0x11, +0x14,0x78,0xfb,0xa, 0x1e,0x6d,0x0, 0x12,0x1f,0x7, 0x1b,0x6a,0x30,0xb, 0xd0,0xbc, +0xfd,0x38,0xdc,0xda,0x79,0xda,0xd8,0x22,0xca,0x79,0x7f,0x51,0x7f,0x40,0x7e,0xa3, +0x2a,0x74,0xa, 0x3a,0x7e,0xa3,0x2a,0x73,0xa, 0x7a,0x2d,0x73,0x7e,0xd, 0x2a,0x7c, +0x7f,0x12,0x7a,0x8e,0xa, 0x3f,0x3e,0x34,0xca,0x39,0x7e,0x1d,0x2a,0x7f,0x4, 0x12, +0x20,0xb9,0x1b,0xfd,0x7e,0xb3,0x2b,0x1, 0xb4,0x1, 0x22,0x6c,0xaa,0x80,0x1a,0x7e, +0x70,0x2, 0xac,0x7a,0x7f,0x5, 0x2d,0x13,0xb, 0xa, 0x20,0x7f,0x4, 0x2d,0x13,0xb, +0xa, 0x30,0x9d,0x32,0x1b,0xa, 0x30,0xb, 0xa0,0xbc,0xfa,0x38,0xe2,0xda,0x79,0x22, +0xb, 0xa, 0x30,0x2d,0x32,0x1b,0xa, 0x30,0x22,0x7e,0xb3,0x2a,0x73,0x7e,0x73,0x2a, +0x74,0x12,0x10,0xee,0x74,0x2, 0x2, 0x0, 0x1e,0xca,0xd8,0xca,0x79,0x7e,0xf0,0xa, +0x74,0x1, 0x7a,0xb3,0x2a,0xfa,0x12,0x29,0x6f,0x7c,0xe7,0x80,0x5d,0x12,0x26,0x57, +0x12,0x4f,0x9e,0x30,0x18,0xfd,0x12,0x7b,0xc6,0x12,0x7b,0x29,0x6c,0xdd,0x80,0x3d, +0x7e,0x50,0x2, 0xac,0x5d,0x49,0x32,0x6, 0xfc,0xbe,0x34,0x14,0x78,0x50,0x14,0xa, +0x1d,0x2e,0x17,0x2a,0xfe,0x7e,0x19,0xb0,0xbe,0xb0,0x0, 0x28,0x1e,0x14,0x7a,0x19, +0xb0,0x80,0x18,0xbe,0x34,0x19,0x28,0x28,0x10,0xa, 0x3d,0x12,0x3f,0xb, 0xbe,0xb0, +0xff,0x68,0x8, 0x4, 0x7a,0x39,0xb0,0x80,0x2, 0x1b,0xe0,0xb, 0xd0,0x12,0x7b,0xb7, +0xa, 0x3d,0xbd,0x32,0x48,0xba,0x4c,0xee,0x68,0x8, 0x7c,0xaf,0x1b,0xf0,0x4c,0xaa, +0x78,0x9b,0xda,0x79,0xda,0xd8,0x22,0x7e,0x73,0x2a,0x74,0xa, 0x37,0x7e,0x53,0x2a, +0x73,0xa, 0x25,0x2d,0x23,0x22,0x74,0x2, 0x12,0x0, 0x1e,0x7e,0x8, 0x6, 0xfc,0x22, +0x7c,0x7b,0xa5,0xbf,0x0, 0x3, 0x74,0x10,0x22,0xbe,0x70,0x4, 0x38,0x4, 0x6c,0xaa, +0x80,0x21,0xbe,0x70,0x8, 0x38,0x5, 0x7e,0xa0,0x1, 0x80,0x17,0xbe,0x70,0x10,0x38, +0x5, 0x7e,0xa0,0x2, 0x80,0xd, 0xbe,0x70,0x20,0x38,0x5, 0x7e,0xa0,0x3, 0x80,0x3, +0x7e,0xa0,0x4, 0xa, 0x47,0x3e,0x44,0x3e,0x44,0x3e,0x44,0x7c,0xba,0x60,0x5, 0x1e, +0x44,0x14,0x78,0xfb,0x7c,0xb9,0x22,0x7e,0xa3,0x2f,0xa8,0x7e,0x70,0x4, 0xac,0x7a, +0xb, 0x34,0xbe,0x37,0x37,0xed,0x40,0x39,0x7e,0x37,0x37,0xed,0xb, 0x34,0x7a,0x37, +0x37,0xed,0xbe,0x34,0x0, 0x1, 0x78,0x5, 0x7e,0xb3,0x37,0x34,0x22,0xbe,0x34,0x0, +0x2, 0x78,0x3, 0x7c,0xba,0x22,0xbe,0x34,0x0, 0x2, 0x50,0x9, 0x7d,0x23,0x1b,0x25, +0x9, 0xb2,0x38,0xfb,0x22,0x9e,0x34,0x0, 0x3, 0x2e,0x37,0x2b,0xb9,0x7e,0x39,0xb0, +0x22,0x74,0xff,0x22,0x70,0x5, 0x7e,0xb3,0x37,0x9c,0x22,0xbe,0xb0,0x3, 0x38,0x15, +0x75,0x1b,0x0, 0x30,0xe, 0x6, 0x7e,0x18,0x32,0xea,0x80,0x4, 0x7e,0x18,0x33,0x28, +0x7a,0x1d,0x14,0x80,0x8, 0xbe,0xb0,0x5e,0x38,0x10,0x75,0x1b,0x0, 0xa, 0x1b,0x7e, +0x1d,0x14,0x2d,0x31,0x1b,0x34,0x7e,0x1b,0xb0,0x22,0xbe,0xb0,0xd3,0x68,0x3, 0xb4, +0xd4,0x10,0xb4,0xd3,0x8, 0x6d,0x33,0x7a,0x37,0x37,0xed,0x80,0x2, 0x15,0x1a,0x2, +0x7c,0x17,0xbe,0xb0,0xeb,0x68,0x3, 0xb4,0xec,0x3, 0x2, 0x7d,0x61,0xbe,0xb0,0x80, +0x40,0xc, 0xbe,0xb0,0xdf,0x38,0x7, 0xa, 0x3b,0x9, 0xb3,0x36,0x61,0x22,0xb4,0xfc, +0x5, 0x7e,0xb3,0x37,0x8, 0x22,0xb4,0xfd,0x17,0x6c,0xaa,0x7e,0xb3,0x28,0xa8,0x60, +0x3, 0x4e,0xa0,0x1, 0x7e,0xb3,0x36,0x71,0x60,0x3, 0x4e,0xa0,0x2, 0x7c,0xba,0x22, +0xb4,0xfe,0x5, 0x7e,0xb3,0x2b,0xf, 0x22,0x74,0xff,0x22,0x7c,0x7b,0x6c,0xaa,0x12, +0x3f,0xe1,0x78,0x9, 0x7c,0xb7,0x12,0x7c,0x64,0x7c,0xab,0x80,0xa, 0xb4,0x4, 0x7, +0x7c,0xb7,0x12,0x37,0xeb,0x7c,0xab,0x7c,0xba,0x22,0x30,0x90,0x19,0xc2,0x90,0xe5, +0x18,0x70,0x9, 0x75,0x18,0x1, 0xe5,0x91,0xf5,0x1a,0x80,0x11,0x7e,0x71,0x91,0xe5, +0x1a,0x12,0x3f,0xb3,0x5, 0x1a,0x30,0x91,0xb, 0xc2,0x91,0x5, 0x1a,0xe5,0x1a,0x12, +0x7c,0xfb,0xf5,0x91,0x22,0xca,0x7b,0xca,0x2b,0xca,0x1b,0xca,0xb, 0xc0,0x83,0xc0, +0x82,0x12,0x7d,0x1a,0xd0,0x82,0xd0,0x83,0xda,0xb, 0xda,0x1b,0xda,0x2b,0xda,0x7b, +0x32,0xb4,0xeb,0x5, 0xe4,0x7a,0xb3,0x37,0xf2,0x7e,0x73,0x37,0xf2,0xa, 0x27,0x2e, +0x24,0x0, 0x6, 0x12,0x51,0x4f,0x93,0x7c,0xab,0x7c,0xb7,0x4, 0x7a,0xb3,0x37,0xf2, +0xb4,0x3, 0xb, 0xe4,0x7a,0xb3,0x37,0xf2,0x6d,0x33,0x7a,0x37,0x37,0xef,0x75,0x1a, +0xeb,0x7c,0xba,0x22,0x7e,0xa3,0x37,0x9b,0x7c,0xba,0x4, 0x7a,0xb3,0x37,0x9b,0x7a, +0xa3,0x36,0xf2,0x22,0xa9,0xc0,0x93,0x75,0x18,0x0, 0x32,0x7a,0xb3,0x37,0x9c,0xc4, +0x54,0x7, 0xbe,0xb0,0x4, 0x68,0x3, 0xb4,0x2, 0x4, 0x74,0x3, 0x80,0x7, 0x60,0x3, +0xb4,0x1, 0x7, 0x74,0x1, 0x7a,0xb3,0x37,0x8, 0x22,0x74,0x1, 0x7a,0xb3,0x37,0x8, +0xe4,0x7a,0xb3,0x37,0x9c,0x22,0x7c,0xa7,0x7c,0x3b,0xa5,0xbb,0x0, 0x7, 0x7c,0xba, +0x12,0x7d,0xab,0x80,0x2c,0xbe,0x30,0xeb,0x68,0x4, 0xa5,0xbb,0xec,0x9, 0x7c,0xb3, +0x7c,0x7a,0x12,0x7e,0x45,0x80,0x1a,0xbe,0x30,0x80,0x40,0x15,0xbe,0x30,0xdf,0x38, +0x10,0x7c,0xb3,0x24,0x80,0x7c,0x7a,0x12,0x7e,0x21,0xa5,0xbb,0x8f,0x3, 0x75,0x19, +0x1, 0xa5,0xbb,0xfc,0x5, 0x7c,0xba,0x2, 0x44,0xc0,0x74,0x1, 0x7a,0xb3,0x33,0xff, +0x22,0x7c,0x6b,0x2e,0x60,0xdd,0x68,0x1c,0x2e,0x60,0xfd,0x68,0x17,0x1b,0x61,0x68, +0x13,0x2e,0x60,0xfa,0x68,0xe, 0x1b,0x60,0x68,0xa, 0x80,0x0, 0xa, 0x2b,0x19,0x72, +0x36,0xe1,0xd2,0xd, 0x22,0xbe,0xb0,0xeb,0x68,0x3, 0xb4,0xec,0x33,0x7e,0x27,0x37, +0xef,0x4d,0x22,0x78,0xe, 0xa5,0xbf,0xaa,0xa, 0x7e,0x24,0x0, 0x1, 0x7a,0x27,0x37, +0xef,0x15,0x1a,0x7e,0x27,0x37,0xef,0xbe,0x24,0x0, 0x1, 0x78,0x10,0xa5,0xbf,0x9, +0x6, 0x7e,0x34,0x0, 0x2, 0x80,0x2, 0x6d,0x33,0x7a,0x37,0x37,0xef,0x75,0x1a,0xea, +0x22,0x7e,0xb3,0x37,0xf1,0x4, 0x7a,0xb3,0x37,0xf1,0xe5,0x19,0xb4,0x1, 0x8, 0xe4, +0x7a,0xb3,0x37,0xf1,0x75,0x19,0x0, 0x7e,0x73,0x37,0xf1,0x7a,0x73,0x36,0xf0,0x22, +0xe4,0x7a,0xb3,0x37,0x9c,0x7e,0x8, 0x32,0xea,0x12,0x7e,0xef,0x7e,0x8, 0x33,0x28, +0x7e,0x34,0x0, 0x3e,0x12,0x20,0xde,0x7e,0x18,0x32,0xea,0x7a,0x1d,0x14,0x12,0x7e, +0xd1,0x2, 0x7e,0xc4,0x75,0x18,0x0, 0x75,0x1a,0x0, 0x7e,0xb3,0x37,0x9c,0xf5,0x91, +0x22,0x2, 0x7e,0xd4,0x90,0x60,0x0, 0xe4,0x93,0x54,0xfe,0x75,0x91,0x0, 0xc2,0x90, +0xc2,0x91,0xc2,0xc9,0x54,0xfe,0xf5,0x92,0xd2,0xe8,0xc2,0xc0,0xd2,0xad,0x22,0x7e, +0x34,0x0, 0x3e,0x74,0xff,0x2, 0x20,0xde,0x7c,0xab,0x12,0x3f,0x52,0x7c,0xba,0x12, +0x13,0xc7,0x2, 0x0, 0x1e,0x30,0x18,0x8, 0x74,0x5, 0x7e,0x70,0x99,0x12,0x13,0x2c, +0x7e,0xb3,0x34,0x3a,0xb4,0x1, 0x4f,0x12,0x7f,0x67,0x49,0x35,0x34,0x3b,0x49,0x15, +0x34,0x3d,0x6d,0x0, 0xbe,0x8, 0x0, 0x0, 0x68,0x1a,0xbe,0x70,0x0, 0x40,0x15,0xbe, +0x70,0x2, 0x38,0x10,0x74,0x2, 0x12,0x0, 0x1e,0x7e,0xb3,0x2a,0x73,0x7e,0x73,0x2a, +0x74,0x12,0x10,0xee,0x7e,0xb3,0x34,0x39,0x4, 0x7a,0xb3,0x34,0x39,0x12,0x7f,0x6f, +0x28,0xe, 0x12,0x4e,0x9b,0xb4,0x1, 0x4, 0x74,0x1, 0x80,0x6, 0x74,0x3, 0x80,0x2, +0x74,0x2, 0x7a,0xb3,0x34,0x3a,0x22,0x7e,0xa3,0x34,0x39,0x74,0x4, 0xa4,0x22,0x7e, +0x73,0x34,0x38,0xbe,0x73,0x34,0x39,0x22,0x7d,0xf3,0x6d,0xee,0x6c,0x99,0x80,0x3c, +0x7c,0xb9,0x12,0x31,0x27,0x7d,0xd3,0x7d,0xcd,0x3e,0xc4,0x7f,0x57,0x2d,0xbc,0xb, +0x5a,0x10,0x1a,0x2, 0x1a,0x0, 0x7e,0x83,0x2b,0x20,0xa, 0x98,0x6d,0x88,0x7f,0x10, +0x7f,0x4, 0x12,0x1e,0xeb,0x74,0x6, 0x7f,0x1, 0x1e,0x14,0x1e,0x4, 0x50,0x3, 0x4e, +0x20,0x80,0x14,0x78,0xf4,0x7d,0xc1,0x1b,0x5a,0xc0,0xb, 0x90,0x7e,0x83,0x2a,0x75, +0xbc,0x89,0x38,0xbc,0x22,0x7f,0x20,0xb, 0x2a,0x10,0xb, 0x1a,0x0, 0x1b,0x2a,0x0, +0x1b,0x1a,0x10,0x22,0x7c,0x9b,0x7f,0x71,0x7e,0x7b,0x80,0x4c,0x88,0x78,0x7, 0x7e, +0xb, 0x90,0x7a,0x7b,0x90,0x22,0xa, 0x28,0x7e,0xb, 0x80,0xa, 0x38,0x9d,0x32,0x12, +0x21,0x0, 0xe5,0x29,0xa, 0x2b,0xbd,0x32,0x8, 0x15,0x7e,0x7b,0xa0,0x7e,0xb, 0xb0, +0xbc,0xba,0x7c,0xba,0x28,0x4, 0x2c,0xb9,0x80,0x2, 0x9c,0xb9,0x7a,0x7b,0xb0,0x7e, +0x7b,0x70,0x7a,0xb, 0x70,0x22,0x7d,0xc3,0x7e,0x34,0x61,0x37,0x12,0x87,0xbc,0x90, +0x61,0x35,0xe4,0x93,0x70,0x3, 0x7d,0x3c,0x22,0x90,0x61,0x36,0xe4,0x93,0xb4,0x1, +0x6, 0x7e,0x83,0x2a,0x70,0x80,0x4, 0x7e,0x83,0x2a,0x6f,0x12,0x87,0xd4,0xbe,0xc4, +0x0, 0x3f,0x38,0x1c,0x7e,0xe4,0x0, 0x3f,0x9d,0xec,0x7e,0x34,0x61,0x3b,0x12,0x81, +0x2, 0x12,0x80,0xf1,0xbf,0x71,0x40,0x2, 0x7f,0x71,0x9f,0x17,0x7f,0x71,0x1, 0xee, +0x12,0x66,0xb1,0xbd,0x5c,0x38,0x21,0x7d,0xec,0x9d,0xe5,0x7e,0x34,0x61,0x3d,0x12, +0x81,0x2, 0x90,0x61,0x3a,0xe4,0x93,0xa, 0x3b,0xbf,0x71,0x40,0x4, 0x7f,0x71,0x1b, +0x7c,0x12,0x80,0xf9,0x2f,0x71,0x80,0x66,0x7d,0xb4,0xb, 0xb4,0x1e,0xb4,0x7d,0x5b, +0x1b,0x54,0xbd,0x5c,0x40,0xc, 0x7d,0xf5,0x9d,0xfc,0x6d,0xee,0x7e,0x34,0x61,0x3f, +0x80,0xa, 0x7d,0xfc,0x9d,0xfb,0x6d,0xee,0x7e,0x34,0x61,0x41,0x12,0x87,0xcc,0x7f, +0x17,0x12,0x1e,0xfc,0x7f,0x71,0x12,0x81,0x1c,0x7f,0x71,0xbd,0x5c,0x7d,0x3d,0x40, +0xc, 0x1e,0x34,0x1b,0x34,0x6d,0x22,0x9f,0x17,0x7f,0x71,0x80,0x6, 0x1e,0x34,0x6d, +0x22,0x2f,0x71,0x12,0x80,0xf1,0x6d,0x22,0xbf,0x71,0x50,0x4, 0x7f,0x71,0x80,0xe, +0x90,0x61,0x3a,0xe4,0x93,0x12,0x80,0xf9,0xbf,0x71,0x28,0x2, 0x7f,0x71,0x7d,0x3f, +0x22,0x90,0x61,0x39,0xe4,0x93,0xa, 0x3b,0x22,0xa, 0x2b,0x7d,0x3d,0x9d,0x32,0x6d, +0x22,0x22,0x7e,0x24,0x0, 0xff,0xb, 0x1a,0xf0,0xad,0xfe,0x6d,0xee,0x7d,0x3f,0x7d, +0x2e,0x7c,0x76,0x7c,0x65,0x7f,0x71,0x22,0x7d,0x30,0xad,0x31,0x7c,0x76,0x7c,0x65, +0xa, 0x24,0x22,0xca,0x79,0x7c,0xe5,0x7c,0xfb,0x7e,0xe4,0xff,0xfc,0x7c,0xb4,0x12, +0x9f,0x40,0x7d,0x3, 0x74,0x9, 0xac,0xbf,0x12,0x87,0xe5,0x49,0x35,0x28,0xae,0x12, +0x81,0xbf,0x12,0x81,0x18,0x7d,0x13,0x5e,0x30,0xfc,0x7e,0x70,0x9, 0xac,0x7f,0x49, +0xf3,0x29,0x62,0x74,0x9, 0xac,0xbe,0x49,0x25,0x28,0xae,0xbd,0x2f,0x28,0xf, 0x7d, +0x53,0x2e,0x54,0x29,0x62,0x7d,0x2f,0x2d,0x21,0x1b,0x58,0x20,0x80,0x9, 0x2e,0x34, +0x29,0x62,0x9d,0xf1,0x1b,0x38,0xf0,0x74,0x9, 0xac,0xbf,0x12,0x81,0xb3,0x12,0x81, +0x18,0x7d,0x13,0x5d,0x1e,0x7e,0x50,0x9, 0xac,0x5f,0x49,0x32,0x29,0x64,0x74,0x9, +0xac,0xbe,0x49,0x5, 0x28,0xb0,0xbd,0x3, 0x28,0xd, 0x7d,0x2, 0x2e,0x4, 0x29,0x64, +0x2d,0x13,0x1b,0x8, 0x10,0x80,0x9, 0x2e,0x24,0x29,0x64,0x9d,0x31,0x1b,0x28,0x30, +0xda,0x79,0x22,0x49,0x25,0x29,0x64,0x74,0x9, 0xac,0xbe,0x49,0x35,0x28,0xb0,0x9d, +0x32,0x12,0x21,0x0, 0x7d,0x13,0x22,0x7d,0x41,0x7d,0x2, 0x7c,0x37,0x7c,0x2b,0x74, +0x4, 0xac,0xb2,0x49,0x35,0x2b,0xbf,0x49,0xf5,0x2b,0xc1,0x74,0x4, 0xac,0xb3,0x49, +0x25,0x2b,0xbf,0x49,0x55,0x2b,0xc1,0x12,0x81,0xbf,0x7d,0x3f,0x9d,0x35,0x12,0x21, +0x0, 0x9d,0x34,0x12,0x21,0x0, 0x7e,0x54,0x62,0x6a,0x7e,0x44,0x0, 0xff,0xb, 0x2a, +0x20,0xbd,0x32,0x50,0xf, 0x12,0x67,0xeb,0x7e,0x14,0x62,0x6a,0x12,0x87,0xee,0x50, +0x3, 0x74,0x1, 0x22,0xe4,0x22,0xca,0xf8,0x6c,0xff,0x7e,0xb7,0x2f,0x9c,0x7e,0xc7, +0x2f,0x9e,0x7e,0x97,0x2f,0x84,0x7e,0xd7,0x2f,0x86,0x7e,0xa7,0x2f,0x98,0x7e,0xe7, +0x2f,0x9a,0xe4,0x7e,0x73,0x2f,0xa8,0x1b,0x70,0x7d,0x2b,0x7d,0x1c,0x12,0x81,0xc7, +0x70,0x2, 0x61,0x45,0x7e,0x73,0x2f,0xa8,0xbe,0x70,0xa, 0x28,0x13,0xe4,0x7e,0x70, +0x9, 0x7e,0x27,0x2f,0xa0,0x7e,0x17,0x2f,0xa2,0x12,0x81,0xc7,0x70,0x2, 0x61,0x45, +0x7e,0x73,0x2f,0xa8,0xbe,0x70,0x14,0x28,0x13,0xe4,0x7e,0x70,0x13,0x7e,0x27,0x2f, +0xa4,0x7e,0x17,0x2f,0xa6,0x12,0x81,0xc7,0x70,0x2, 0x61,0x45,0x7e,0x34,0x62,0x72, +0x12,0x83,0x4a,0x28,0x4a,0x7e,0x34,0x62,0x70,0x12,0x83,0x54,0x50,0x41,0x7e,0xb3, +0x2f,0x81,0x70,0x3b,0x7e,0x34,0x62,0x76,0x12,0x23,0x9e,0x12,0x83,0x5e,0x7d,0x8f, +0x9d,0x83,0xbe,0x87,0x2f,0x82,0x50,0x27,0x7e,0x34,0x62,0x74,0x12,0x87,0xc4,0x9d, +0xf8,0xbe,0xf7,0x2f,0x82,0x28,0x18,0x7d,0xfc,0x3e,0xf4,0xbd,0xfb,0x40,0x2, 0x61, +0x45,0xbd,0xa9,0x50,0x5, 0x7e,0xf0,0x20,0x80,0x7b,0x7e,0xf0,0x21,0x80,0x76,0x7e, +0x34,0x62,0x7a,0x12,0x83,0x54,0x28,0x6d,0x7e,0x34,0x62,0x78,0x12,0x83,0x4a,0x50, +0x64,0x7e,0xb3,0x2f,0x81,0x70,0x5e,0x7e,0x34,0x62,0x7e,0x12,0x23,0x9e,0x12,0x83, +0x5e,0x7d,0xaf,0x9d,0xa3,0xbe,0xa7,0x2f,0x82,0x50,0x4a,0x7e,0x34,0x62,0x7c,0x7e, +0x24,0x0, 0xff,0xb, 0x1a,0xa0,0x9d,0xfa,0xbe,0xf7,0x2f,0x82,0x28,0x37,0x7d,0xfb, +0x3e,0xf4,0xbd,0xfc,0x50,0x2f,0xbd,0xed,0x50,0x5, 0x7e,0xf0,0x22,0x80,0x26,0x12, +0x67,0xf2,0x49,0x35,0x2b,0xbb,0x49,0x15,0x2b,0xbd,0x49,0x25,0x2b,0xab,0x49,0x5, +0x2b,0xad,0x9d,0x10,0xbe,0x14,0x0, 0x20,0x18,0x8, 0x9d,0x32,0xbe,0x34,0x0, 0x10, +0x58,0x3, 0x7e,0xf0,0x23,0x7c,0xbf,0xda,0xf8,0x22,0x7e,0x24,0x0, 0xff,0xb, 0x1a, +0xf0,0xbd,0xfc,0x22,0x7e,0x24,0x0, 0xff,0xb, 0x1a,0xf0,0xbd,0xfb,0x22,0x7e,0x14, +0x62,0x8e,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0xf0,0x22,0x12,0x86,0x69,0x7a,0x37,0x2f, +0x9c,0x12,0x85,0xf4,0x7a,0x37,0x2f,0x9e,0x12,0x82,0x16,0x60,0x1, 0x22,0x7e,0x73, +0x2f,0xa8,0xa, 0x37,0x7a,0x35,0x24,0x7e,0x8, 0x2b,0xbf,0x7e,0x18,0x2f,0x80,0x2, +0x83,0x92,0xca,0xf8,0x7e,0x45,0x24,0x7c,0xb9,0x7a,0xb3,0x38,0x3f,0x74,0xff,0x7a, +0xb3,0x38,0x3e,0x6d,0x55,0x80,0x19,0x7d,0xf5,0x3e,0xf4,0x12,0x86,0x74,0x7d,0xe5, +0x3e,0xe4,0x59,0xfe,0x1f,0x34,0x69,0xf6,0x0, 0x2, 0x59,0xfe,0x21,0x14,0xb, 0x54, +0xbd,0x45,0x38,0xe3,0x7e,0x33,0x38,0x3f,0xbe,0x30,0x4, 0x38,0x2, 0x81,0x54,0x69, +0xf1,0x0, 0x1c,0x69,0x11,0x0, 0x1e,0xbd,0x1f,0x18,0x19,0x4d,0x11,0x78,0x4, 0x7e, +0x14,0x0, 0x1, 0x7d,0x3f,0x7d,0x21,0x12,0x1e,0xb9,0x7c,0xf7,0x74,0x40,0x7a,0xb3, +0x38,0x42,0x80,0x43,0x4d,0xff,0x78,0x4, 0x7e,0xf4,0x0, 0x1, 0x7d,0x31,0x7d,0x2f, +0x12,0x1e,0xb9,0x7c,0xf7,0x74,0x80,0x7a,0xb3,0x38,0x42,0x7d,0xf, 0x2d,0xf, 0xbd, +0x1, 0x8, 0x24,0x1a,0x2, 0x1a,0x0, 0x7e,0x73,0x38,0x42,0xa, 0x37,0x6d,0x22,0x12, +0x1e,0xeb,0x7d,0x5f,0x1a,0x4a,0x1a,0x48,0x7d,0x1f,0x1a,0x2, 0x1a,0x0, 0x2f,0x2, +0x12,0x1f,0x7, 0x7a,0x73,0x38,0x42,0xbe,0xf0,0x5, 0x58,0x14,0x12,0x84,0x73,0x12, +0xbf,0x3c,0x12,0x84,0x73,0x12,0x84,0x7c,0x12,0x84,0x73,0x12,0xa5,0x28,0x80,0xa, +0x74,0x7d,0x80,0x2, 0x74,0x7f,0x7a,0xb3,0x38,0x3e,0xe4,0x7a,0xb3,0x38,0x3f,0x7e, +0x73,0x39,0x1, 0xbe,0x73,0x38,0x3e,0x48,0x6, 0x7e,0xb3,0x38,0x40,0x80,0x1, 0xe4, +0xda,0xf8,0x22,0x7e,0x8, 0x1f,0x34,0x7e,0x18,0x21,0x14,0x22,0xca,0x3b,0x7f,0x71, +0x7e,0x60,0x1, 0xb, 0xa, 0x20,0xb, 0x7a,0x50,0x7c,0x4b,0x7a,0x53,0x22,0xf4,0x7a, +0x43,0x23,0xe4,0x7e,0x70,0x1, 0x7e,0xa0,0x1, 0xa1,0x9d,0x7e,0x90,0x2, 0xac,0x9a, +0x7f,0x60,0x2d,0xd4,0xb, 0x6a,0xd0,0x7d,0x7d,0x7c,0xbf,0xf5,0x26,0x7f,0x67,0x2d, +0xd4,0xb, 0x6a,0x40,0xa, 0xd5,0xa, 0xbb,0x7d,0xab,0x9d,0xad,0x7d,0x7a,0x7c,0x8f, +0xbe,0x80,0x0, 0x58,0x5, 0x6e,0x80,0xff,0xb, 0x80,0xa, 0xa4,0xa, 0x79,0x9d,0x7a, +0xbe,0xf0,0x0, 0x58,0x5, 0x6e,0xf0,0xff,0xb, 0xf0,0xbe,0x80,0x2, 0x58,0x7, 0xbe, +0xf0,0x2, 0x58,0x2, 0xa1,0x9b,0xbe,0x60,0x0, 0x18,0x2, 0xa1,0x83,0xbe,0x70,0xec, +0x28,0x2, 0xa1,0xa7,0xbe,0x80,0x8, 0x58,0x5, 0xbe,0xf0,0x8, 0x48,0x61,0xa, 0xa7, +0xb, 0xa4,0x7d,0x6a,0x7c,0x7d,0xa, 0xa5,0x2d,0xab,0x12,0x85,0xeb,0x19,0xba,0x22, +0xf4,0xa, 0xd9,0xa, 0xa4,0x2d,0xad,0x12,0x85,0xeb,0x19,0xba,0x23,0xe4,0x9, 0xba, +0x22,0xf4,0xa, 0xdb,0xa, 0xc5,0x2d,0xcd,0xe, 0xc4,0x7d,0x6c,0x7c,0xbd,0xa, 0xc7, +0x19,0xbc,0x22,0xf3,0x9, 0xbc,0x23,0xe4,0xa, 0xcb,0xa, 0xa4,0x2d,0xac,0x12,0x85, +0xeb,0x19,0xba,0x23,0xe3,0x2d,0xdb,0x12,0x85,0xe2,0x19,0xbd,0x22,0xf5,0xa, 0xd9, +0x12,0x85,0xe0,0x19,0xbd,0x23,0xe5,0xb, 0xd5,0x7d,0x6d,0x7c,0x7d,0x80,0x24,0xbe, +0x80,0x4, 0x58,0x5, 0xbe,0xf0,0x4, 0x48,0x1a,0xe5,0x26,0xa, 0xcb,0xa, 0xd5,0x12, +0x85,0xe0,0x19,0xbd,0x22,0xf4,0xa, 0xc9,0xa, 0xd4,0x12,0x85,0xe0,0x19,0xbd,0x23, +0xe4,0xb, 0x70,0xbe,0x70,0xf0,0x50,0x1f,0x7e,0x51,0x26,0x7c,0x49,0xe5,0x26,0xa, +0xd7,0x19,0xbd,0x22,0xf4,0x19,0x9d,0x23,0xe4,0xb, 0x70,0xb, 0xa0,0x7e,0xb3,0x38, +0x3f,0xbc,0xba,0x28,0x2, 0x81,0x9b,0x7a,0x73,0x38,0x3f,0x7e,0xa0,0x1, 0x80,0x25, +0xa, 0x3a,0x9, 0xb3,0x22,0xf4,0xa, 0x2b,0x7e,0x70,0x2, 0xac,0x7a,0x7f,0x60,0x2d, +0xd3,0x1b,0x6a,0x20,0xa, 0x2a,0x9, 0xb2,0x23,0xe4,0xa, 0x4b,0x2d,0x3f,0x7d,0x2e, +0x1b,0x1a,0x40,0xb, 0xa0,0x7e,0xb3,0x38,0x3f,0xbc,0xba,0x38,0xd3,0xda,0x3b,0x22, +0x2d,0xdc,0xe, 0xd4,0x7d,0x6d,0x7c,0xbd,0xa, 0xd7,0x22,0xe, 0xa4,0x7d,0x6a,0x7c, +0xbd,0xa, 0xa7,0x22,0x7e,0x37,0x2f,0x96,0x9e,0x37,0x2f,0x8e,0x22,0x7e,0x17,0x2f, +0x90,0xbd,0x13,0x28,0xa, 0x7a,0x37,0x2f,0x90,0x7a,0x27,0x2f,0x92,0x80,0x10,0x7e, +0x17,0x2f,0x88,0xbd,0x13,0x50,0x8, 0x7a,0x37,0x2f,0x88,0x7a,0x27,0x2f,0x8a,0x7e, +0x17,0x2f,0x8e,0xbd,0x12,0x28,0xa, 0x7a,0x27,0x2f,0x8e,0x7a,0x37,0x2f,0x8c,0x80, +0x10,0x7e,0x17,0x2f,0x96,0xbd,0x12,0x50,0x8, 0x7a,0x27,0x2f,0x96,0x7a,0x37,0x2f, +0x94,0x7e,0xb3,0x2f,0xa8,0xb4,0xa, 0xf, 0x12,0x86,0x69,0x7a,0x37,0x2f,0xa0,0x12, +0x85,0xf4,0x7a,0x37,0x2f,0xa2,0x22,0xb4,0x14,0xe, 0x12,0x86,0x69,0x7a,0x37,0x2f, +0xa4,0x12,0x85,0xf4,0x7a,0x37,0x2f,0xa6,0x22,0x7e,0x37,0x2f,0x88,0x9e,0x37,0x2f, +0x90,0x22,0x7d,0xf4,0x3e,0xf4,0x7f,0x60,0x2d,0xdf,0xb, 0x6a,0xf0,0x22,0x7c,0xab, +0x6d,0x44,0x80,0x29,0x4c,0xaa,0x68,0x11,0x12,0x86,0xb5,0x60,0x5, 0x3e,0xe4,0x14, +0x78,0xfb,0x12,0x86,0x72,0x2d,0xfe,0x80,0xf, 0x12,0x86,0xb5,0x60,0x5, 0x3e,0xe4, +0x14,0x78,0xfb,0x12,0x86,0x72,0x9d,0xfe,0x1b,0x6a,0xf0,0xb, 0x44,0x7e,0xf5,0x2a, +0xbd,0xf4,0x38,0xd0,0x22,0x7f,0x71,0x2d,0xf4,0x7e,0x7b,0xb0,0x1a,0xeb,0x7f,0x61, +0x2e,0xd5,0x2a,0x7e,0x6b,0xb0,0x22,0x7c,0x7b,0x90,0x60,0x93,0xe4,0x93,0xa, 0x1b, +0x7e,0x63,0x2a,0x71,0xa, 0x6, 0x2d,0x1, 0x7e,0x63,0x2a,0x6e,0xa, 0x16,0xad,0x10, +0x7d,0x21,0x12,0x87,0xdc,0xa, 0x26,0x7a,0x25,0x2a,0x74,0x1d,0xac,0x7b,0x2e,0x34, +0x37,0x44,0x6d,0x22,0xe4,0x2, 0x86,0x7e,0x7c,0x2b,0x7e,0xb3,0x1f,0x33,0xbc,0x2b, +0x68,0x4f,0x12,0x87,0x56,0x7c,0x3b,0x7c,0xb2,0x12,0x87,0x56,0x7c,0xab,0xbe,0x30, +0xff,0x68,0x3e,0xbe,0xa0,0xff,0x68,0x39,0x7e,0x70,0x4, 0xac,0x73,0xa, 0x2a,0x12, +0x91,0x67,0xbe,0xb0,0x2, 0x38,0x2a,0xa, 0x2b,0x7e,0x34,0x2, 0xe0,0xad,0x32,0x2e, +0x34,0x16,0x93,0x6d,0x22,0x30,0x16,0x3, 0x2, 0x86,0xc7,0x7e,0xb3,0x2b,0x1d,0xb4, +0x1, 0xf, 0x12,0xc0,0x1b,0x7a,0x55,0x2a,0x7e,0x8, 0xd, 0xc8,0x74,0x1, 0x2, 0x86, +0x7e,0x22,0x7e,0xb3,0x2b,0xf, 0x7c,0xab,0x6c,0x77,0x7e,0x50,0x5, 0xac,0x57,0x9, +0x62,0x26,0x33,0xbc,0x6a,0x78,0x3, 0x7c,0xb7,0x22,0xb, 0x70,0xbe,0x70,0x4, 0x40, +0xe9,0x74,0xff,0x22,0x7e,0xb3,0x37,0x31,0x70,0x6, 0x12,0x87,0xad,0x2, 0x87,0xb6, +0x12,0x63,0x9, 0x12,0xbd,0x6d,0x50,0xa, 0x12,0x83,0x6a,0x7c,0x3b,0x12,0x87,0xad, +0x80,0x5, 0x12,0xbe,0x14,0x7c,0x3b,0x4c,0x33,0x68,0x11,0x7c,0xb3,0x12,0xbc,0xf1, +0x60,0xa, 0x7a,0x33,0x37,0x34,0x74,0x1, 0x7a,0xb3,0x2a,0x8, 0x22,0xe4,0x7a,0xb3, +0x2f,0x80,0x22,0x2, 0x81,0x23,0xe4,0x7a,0xb3,0x38,0xdd,0x22,0x7e,0x24,0x0, 0xff, +0xb, 0x1a,0xd0,0x22,0x7e,0x24,0x0, 0xff,0xb, 0x1a,0x80,0x22,0x7e,0x24,0x0, 0xff, +0xb, 0x1a,0x10,0x22,0x7e,0x90,0x40,0xac,0x89,0x1b,0x44,0x22,0x3e,0x24,0x7e,0xf, +0x38,0xd9,0x2d,0x12,0x22,0x49,0x25,0x29,0x62,0x74,0x9, 0xac,0xbe,0x22,0x7e,0x4, +0x0, 0xff,0xb, 0xa, 0x20,0xbd,0x32,0x22,0x7d,0x13,0x7d,0x32,0x6d,0x22,0x74,0x6, +0x2f,0x11,0x14,0x78,0xfb,0xb, 0x14,0x12,0x1f,0x5, 0x7d,0x53,0xbe,0x54,0x0, 0xff, +0x28,0x4, 0x7e,0x54,0x0, 0x40,0x22,0x12,0x6e,0x8f,0x50,0x3, 0xd2,0xf, 0x22,0xc2, +0xf, 0x22,0x12,0xac,0xe9,0x12,0x88,0x2b,0x2, 0x88,0x17,0x7e,0x8, 0x24,0xf2,0x7e, +0x34,0x0, 0xc, 0xe4,0x12,0x20,0xde,0x12,0xaa,0x61,0x12,0xaa,0x58,0xa9,0xd1,0xcb, +0x12,0xc1,0x22,0x7a,0x37,0x24,0xf6,0x7e,0x1f,0x38,0xd9,0x7a,0x37,0x24,0xf8,0x7e, +0x1f,0x13,0x86,0x7a,0x37,0x24,0xfa,0x6d,0x33,0x12,0xb4,0x77,0x2, 0xd, 0x7, 0x12, +0x54,0x94,0x12,0x88,0xb9,0x12,0x8c,0xad,0x7e,0xb3,0x37,0x6, 0xb4,0x1, 0x1e,0x7e, +0x34,0x61,0xc0,0x12,0x87,0xcc,0x7e,0x24,0x0, 0x5, 0xad,0x12,0x7a,0x17,0x28,0xa1, +0x7e,0x14,0x61,0xc2,0x12,0x64,0xd3,0xad,0x32,0x7a,0x37,0x28,0xa3,0x7e,0xb3,0x39, +0x11,0x60,0x7, 0x14,0x7a,0xb3,0x39,0x11,0x80,0x6, 0x7e,0xb3,0x28,0xac,0x60,0x9, +0x12,0x88,0x22,0x12,0x8c,0x90,0x12,0xb3,0xd3,0x7e,0xb3,0x28,0xad,0x60,0x9, 0x12, +0xbb,0x30,0x12,0xaa,0x6a,0x2, 0x8d,0x10,0x22,0x7e,0x90,0x1, 0x7e,0xb3,0x2f,0xa9, +0xbe,0xb0,0xff,0x50,0x5, 0x4, 0x7a,0xb3,0x2f,0xa9,0x7e,0x34,0x61,0xc0,0x12,0x23, +0x9e,0x12,0xc0,0xb1,0x12,0x23,0x9e,0x7a,0x37,0x28,0xa3,0x12,0x8c,0x87,0xb, 0x1a, +0xf0,0x7e,0x34,0x61,0x4f,0x12,0x87,0xbc,0xe4,0x7a,0xb3,0x28,0xac,0x74,0x1, 0x7a, +0xb3,0x28,0xad,0x7e,0x34,0xff,0xfa,0xad,0x3f,0x12,0x8f,0xdc,0x7d,0xc3,0xe, 0xc4, +0x7e,0xe7,0x7, 0xfe,0xbd,0xe3,0x58,0x15,0x7e,0xe7,0x7, 0xfc,0xbd,0xec,0x58,0xd, +0x12,0x8a,0x7c,0x8, 0x8, 0x12,0x8b,0xe, 0x60,0x3, 0x12,0x8a,0x95,0x12,0x8b,0xe, +0xa, 0xeb,0x4d,0xee,0x68,0x3b,0x6d,0xee,0x9d,0xef,0xbe,0xe7,0x7, 0xfe,0x18,0x6, +0xbe,0xe7,0x7, 0xfc,0x8, 0x2b,0x12,0x8a,0x7c,0x8, 0x26,0x7e,0x37,0x28,0x8e,0x12, +0x21,0x0, 0xbe,0x37,0x28,0x8a,0x8, 0x19,0x12,0x8a,0x74,0x28,0x14,0x7e,0x83,0x28, +0x85,0xbe,0x80,0x1, 0x28,0xb, 0x7e,0xc7,0x7, 0xfa,0xbd,0xcf,0x58,0x3, 0x12,0x8a, +0x95,0x12,0xad,0x28,0x40,0x5, 0xe4,0x7a,0xb3,0x28,0xa8,0x12,0xc1,0x1a,0x68,0x6, +0x7e,0xb3,0x39,0xb, 0x60,0x7, 0xe4,0x7a,0xb3,0x28,0xad,0x80,0x7d,0x12,0x8a,0x74, +0x28,0x5, 0xe4,0x7a,0xb3,0x28,0xad,0x30,0x10,0x5, 0xe4,0x7a,0xb3,0x28,0xad,0x12, +0xad,0x66,0x50,0xd, 0x74,0x1, 0x7a,0xb3,0x28,0xad,0x12,0x8a,0xa6,0x7c,0x9b,0x80, +0x1a,0x7e,0xb3,0x26,0x84,0x70,0x14,0x7e,0xb3,0x26,0x85,0x70,0xe, 0x12,0x8a,0x74, +0x28,0x9, 0x7e,0x90,0x3, 0x74,0x1, 0x7a,0xb3,0x28,0xad,0x7e,0xc7,0x7, 0xfa,0xbe, +0xc4,0x5, 0xdc,0x8, 0x17,0x12,0x8a,0x74,0x28,0x12,0x6d,0xcc,0x9d,0xcd,0xbe,0xc7, +0x28,0x8e,0x58,0x8, 0x12,0x8a,0x87,0xe4,0x7a,0xb3,0x28,0xad,0xa, 0x29,0x7e,0x14, +0x61,0xc0,0x12,0x64,0xd3,0xad,0x32,0x7a,0x37,0x28,0xa1,0xa, 0x29,0x7e,0x14,0x61, +0xc2,0x12,0x64,0xd3,0xad,0x32,0x7a,0x37,0x28,0xa3,0x12,0x0, 0x66,0x50,0xd, 0xe4, +0x7a,0xb3,0x28,0xad,0x12,0x8f,0xe3,0x28,0x3, 0x12,0x8a,0x87,0x7e,0xc7,0x28,0x8a, +0xbd,0xcd,0x8, 0x19,0x12,0x9b,0xf, 0x6e,0x34,0xff,0xff,0xb, 0x34,0xbe,0x37,0x28, +0x8e,0x58,0xa, 0x12,0x0, 0x66,0x50,0x5, 0xe4,0x7a,0xb3,0x28,0xad,0x12,0x8b,0x8e, +0xb4,0x1, 0x5, 0xe4,0x7a,0xb3,0x28,0xad,0x7e,0xb3,0x28,0xac,0xb4,0x1, 0x9, 0xe4, +0x7a,0xb3,0x28,0x84,0x7a,0xb3,0x2a,0x2, 0x12,0xac,0x90,0x7e,0xb3,0x2f,0xaa,0xbe, +0xb0,0x0, 0x28,0x1f,0x14,0x7a,0xb3,0x2f,0xaa,0x70,0x18,0xe4,0x7a,0xb3,0x28,0xad, +0x12,0x8c,0x7f,0x7a,0xb3,0x16,0x91,0x7a,0xb3,0x16,0x90,0x7a,0xb3,0x28,0x84,0x7a, +0xb3,0x26,0x83,0x22,0x7e,0x83,0x28,0x84,0xbe,0x80,0x0, 0x22,0x6d,0xee,0x9e,0xe7, +0x2a,0x5a,0xbe,0xe7,0x28,0x8e,0x22,0xe4,0x7a,0xb3,0x2f,0xaa,0x7a,0xb3,0x28,0xac, +0x74,0x2, 0x2, 0x29,0xfa,0x74,0x2, 0x7a,0xb3,0x2f,0xaa,0xe4,0x7a,0xb3,0x2f,0xa9, +0x12,0x8c,0x7f,0x2, 0x29,0xfa,0x7e,0xa0,0x1, 0x7e,0x47,0x7, 0xf8,0x12,0x8c,0x87, +0xb, 0x1a,0x0, 0x7e,0x34,0xff,0xfa,0xad,0x30,0x7e,0x14,0x0, 0x2, 0x12,0x8b,0x6, +0x8, 0x12,0x7e,0xb3,0x28,0xac,0x60,0x7, 0xe4,0x7a,0xb3,0x28,0xad,0x80,0x32,0x7e, +0xa0,0x5, 0x80,0x2d,0x7e,0x34,0xff,0xfb,0x12,0x8b,0x4, 0x8, 0x5, 0x7e,0xa0,0x4, +0x80,0x1f,0x7e,0x34,0xff,0xfc,0x12,0x8b,0x4, 0x8, 0x5, 0x7e,0xa0,0x3, 0x80,0x11, +0x7e,0x34,0xff,0xfd,0x12,0x8b,0x4, 0x8, 0x5, 0x7e,0xa0,0x2, 0x80,0x3, 0x7e,0xa0, +0x1, 0x7c,0xba,0x22,0xad,0x30,0x7d,0x21,0x12,0x1e,0xb9,0xbd,0x34,0x22,0x6c,0x66, +0x90,0x60,0xa7,0xe4,0x93,0xbe,0xb0,0x0, 0x28,0x71,0x90,0x60,0xaa,0xe4,0x93,0x70, +0x6a,0x7e,0xb3,0x28,0xa8,0xb4,0x1, 0x63,0x7e,0x73,0x26,0xf2,0xbe,0x70,0x0, 0x28, +0x5a,0x6c,0x33,0x80,0x4e,0xa, 0x23,0x9, 0x72,0x26,0xe6,0x7e,0xb3,0x2a,0x6e,0x14, +0xbc,0x7b,0x78,0x3d,0x6c,0x22,0x80,0x27,0x7c,0xb2,0x7c,0x73,0x12,0x9d,0x8b,0x50, +0x1c,0xa, 0x22,0x7e,0x73,0x2a,0x6e,0xa, 0x7, 0x2d,0x2, 0x3e,0x4, 0x49,0x20,0x4, +0xfc,0x6d,0x0, 0x9e,0x7, 0x2a,0x4f,0xbd,0x20,0x58,0x2, 0xb, 0x60,0xb, 0x20,0x7e, +0x73,0x2a,0x6d,0xbc,0x72,0x38,0xd1,0xbe,0x60,0x0, 0x28,0x3, 0x74,0x1, 0x22,0xe4, +0x22,0xb, 0x30,0x7e,0x73,0x26,0xf2,0xbc,0x73,0x38,0xaa,0x74,0x1, 0x22,0xca,0x3b, +0x12,0xa6,0x4e,0x38,0x2, 0x81,0x55,0x7e,0xc3,0x2f,0xad,0x4c,0xcc,0x78,0x3d,0x7a, +0xb3,0x2f,0xad,0xe4,0x7a,0xb3,0x2f,0xaf,0x6c,0xaa,0x80,0x26,0x12,0x8c,0x60,0x7e, +0x70,0x2, 0xac,0x7a,0x9, 0xd3,0x26,0xfa,0x9, 0xe3,0x26,0xfb,0x7a,0x49,0xd0,0x19, +0xe4,0x0, 0x1, 0x74,0x1, 0x19,0xb4,0x0, 0x8, 0x12,0x8c,0x6a,0x59,0x34,0x0, 0x2, +0xb, 0xa0,0x7e,0xb3,0x28,0x84,0xbc,0xba,0x38,0xd2,0x80,0x7f,0x7c,0xfc,0x6c,0xaa, +0x80,0x35,0x12,0x8c,0x60,0x7e,0x49,0xd0,0x9, 0xe4,0x0, 0x1, 0x9, 0xb4,0x0, 0x8, +0x70,0x4, 0x1b,0xf0,0x80,0x1f,0x12,0x8c,0x6a,0x7d,0x23,0x49,0x34,0x0, 0x2, 0x9d, +0x32,0x12,0x21,0x0, 0x7d,0xf3,0xbe,0xf4,0x0, 0x23,0x8, 0x9, 0x74,0x5, 0x19,0xb4, +0x0, 0x8, 0x75,0x4c,0x1, 0xb, 0xa0,0xbc,0xfa,0x38,0xc7,0x4c,0xff,0x78,0x2, 0x80, +0x26,0x7e,0x73,0x2f,0xaf,0xbe,0x70,0x4, 0x40,0x22,0x6c,0xaa,0x80,0xe, 0x12,0x8c, +0x60,0x9, 0xb4,0x0, 0x8, 0xbe,0xb0,0x5, 0x68,0x6, 0xb, 0xa0,0xbc,0xfa,0x38,0xee, +0xbc,0xfa,0x78,0x3, 0x75,0x4c,0x0, 0x12,0x8c,0x71,0x80,0xf, 0x7c,0xb7,0x4, 0x7a, +0xb3,0x2f,0xaf,0x80,0x6, 0x12,0x8c,0x71,0x75,0x4c,0x0, 0xe5,0x4c,0xda,0x3b,0x22, +0x7e,0x90,0x9, 0xac,0x9a,0x2e,0x44,0x2f,0xb0,0x22,0x7c,0xbd,0x7c,0x7e,0x2, 0x2c, +0x40,0xe4,0x7a,0xb3,0x2f,0xae,0x7a,0xb3,0x2f,0xad,0x7a,0xb3,0x2f,0xaf,0x22,0x74, +0x1, 0x7a,0xb3,0x28,0xac,0xe4,0x22,0x7e,0x34,0x61,0x55,0x7e,0x24,0x0, 0xff,0x22, +0x12,0x8c,0xcd,0x6d,0x33,0x7a,0x37,0x36,0xdd,0x6c,0xaa,0x80,0x5, 0x12,0x8d,0x5e, +0xb, 0xa0,0x12,0x8d,0x8, 0x38,0xf6,0xe4,0x7a,0xb3,0x36,0x72,0x22,0x12,0xb0,0xbe, +0x60,0x1a,0x74,0x1, 0x7a,0xb3,0x28,0xad,0x7e,0x37,0x28,0xa1,0x3e,0x34,0x7a,0x37, +0x28,0xa1,0x7e,0x37,0x28,0xa3,0x3e,0x34,0x7a,0x37,0x28,0xa3,0x22,0x7e,0x37,0x38, +0xd2,0x12,0x25,0x3c,0x7a,0x37,0x36,0xdd,0x6c,0xaa,0x80,0x23,0x12,0x8d,0x8, 0x28, +0x26,0xa, 0x4a,0x9, 0x64,0x36,0x76,0xbc,0x6b,0x50,0x12,0x7e,0x50,0x2, 0xac,0x5a, +0x49,0x42,0x38,0xcc,0x7e,0x70,0xc, 0xac,0x67,0x59,0x43,0x36,0x80,0xb, 0xa0,0x7e, +0xb3,0x36,0x73,0xbc,0xba,0x38,0xd5,0x22,0x90,0x61,0xc5,0xe4,0x93,0xbc,0xba,0x22, +0x6c,0xaa,0x80,0x44,0x7e,0x70,0xc, 0xac,0x7a,0x12,0xae,0xc5,0xbe,0x34,0x3, 0xe8, +0x8, 0x5, 0x12,0x8d,0x5e,0x80,0x2f,0x7e,0x50,0xc, 0xac,0x5a,0x49,0x32,0x36,0x84, +0x49,0x12,0x36,0x80,0xbd,0x13,0x28,0xf, 0x7d,0x2, 0x2e,0x4, 0x36,0x84,0x7d,0x13, +0xb, 0x15,0x1b,0x8, 0x10,0x80,0xf, 0xbe,0x34,0x0, 0x2, 0x28,0x9, 0x2e,0x24,0x36, +0x84,0x1b,0x35,0x1b,0x28,0x30,0xb, 0xa0,0x12,0x8d,0x8, 0x38,0xb7,0x22,0x7e,0x50, +0xc, 0xac,0x5a,0x49,0x32,0x36,0x80,0x59,0x32,0x36,0x84,0x22,0x7e,0xb3,0x36,0x66, +0x60,0x6, 0x14,0x7a,0xb3,0x36,0x66,0x22,0x12,0x8c,0xcd,0x90,0x61,0xc5,0xe4,0x93, +0xbe,0xb0,0x4, 0x28,0x3, 0x12,0x8d,0xef,0x7e,0xb3,0x36,0xec,0x70,0xe, 0x7e,0xb3, +0x39,0x12,0xb4,0x1, 0x7, 0xe4,0x12,0x8d,0xb3,0x12,0xc0,0x95,0x12,0x67,0x1f,0x12, +0x8e,0xa2,0x7e,0xa3,0x36,0xec,0x7a,0xa3,0x39,0x12,0xbe,0xb0,0xff,0x68,0x3, 0x2, +0x8d,0xb3,0x22,0xca,0xf8,0x7c,0xfb,0x74,0x5, 0xac,0xbf,0x12,0xc0,0xc3,0x12,0xc0, +0x39,0x12,0x6f,0xff,0x12,0xc0,0x30,0x7a,0xf3,0x0, 0x4f,0x7c,0xbf,0x12,0xb3,0x54, +0x12,0x6e,0x29,0x74,0x5, 0xac,0xbf,0x9, 0xb5,0x26,0x37,0x12,0xaf,0x4, 0x12,0x8d, +0xef,0x12,0x23,0x4, 0xe4,0x7a,0xb3,0x16,0x91,0xda,0xf8,0x22,0x12,0x8f,0xd2,0x7e, +0xb3,0x2b,0xf, 0xca,0x3b,0x7c,0xeb,0x6c,0xff,0x7e,0x34,0x60,0xd6,0x7e,0x24,0x0, +0xff,0xb, 0x1a,0xc0,0x7e,0x73,0x37,0xcd,0xa, 0xb7,0x7e,0xb3,0x2b,0x10,0xf5,0x36, +0x12,0x8f,0xca,0xbe,0xd0,0x4, 0x38,0x5, 0xe4,0x7a,0xb3,0x36,0x72,0xa, 0x3e,0xad, +0x3b,0x7d,0xa3,0x2d,0xac,0x75,0x35,0x0, 0x7e,0xa3,0x36,0x72,0xbc,0xad,0x40,0x2, +0x80,0x19,0xbe,0xa0,0x0, 0x28,0x19,0x74,0x5, 0xa4,0x9, 0x75,0x26,0x33,0xbc,0x7e, +0x78,0xe, 0x7c,0xbd,0x14,0xbe,0xb3,0x36,0x72,0x78,0x5, 0xe4,0x7a,0xb3,0x36,0x72, +0x7e,0xc3,0x36,0x72,0x80,0x41,0x7e,0xb3,0x36,0x72,0x4, 0x7a,0xb3,0x36,0x72,0x7e, +0x90,0x5, 0xac,0x9c,0x9, 0xa4,0x26,0x33,0xbc,0xae,0x68,0x29,0xe5,0x35,0xa, 0xdb, +0x19,0xcd,0x36,0x76,0xa, 0x9a,0xad,0x9b,0x2d,0x9c,0x7e,0xa1,0x35,0x7c,0xba,0x4, +0xf5,0x35,0x7c,0xba,0x7d,0x39,0x7d,0x2a,0x7e,0x31,0x36,0x12,0x10,0x0, 0xb, 0xf0, +0xbe,0xf0,0x3, 0x50,0x6, 0xb, 0xc0,0xbc,0xdc,0x38,0xbb,0x7a,0xf3,0x36,0x73,0xda, +0x3b,0x22,0xca,0xd8,0xca,0x79,0x7e,0xe0,0xff,0x12,0xaf,0x5a,0x7e,0xb3,0x36,0x6b, +0xb4,0x1, 0x8, 0x12,0x88,0x22,0xe4,0x7a,0xb3,0x36,0x6b,0x7e,0xb3,0x36,0x6a,0x60, +0x4, 0x74,0xff,0xe1,0xc5,0x7e,0xb3,0x36,0x69,0xb4,0x2, 0x2, 0x80,0x2, 0xe1,0xb9, +0x12,0xc1,0x12,0x38,0xc, 0x12,0x8f,0xf3,0x38,0x7, 0x12,0x8f,0xeb,0x38,0x2, 0xe1, +0xb9,0x12,0x8f,0xca,0xa, 0x3d,0x1b,0x34,0xbe,0x34,0x0, 0x3, 0x48,0x4, 0x74,0x3, +0x80,0x3, 0x7c,0xbd,0x14,0x12,0xae,0x34,0x7c,0xfb,0x7e,0xb3,0x36,0x68,0x4, 0x7a, +0xb3,0x36,0x68,0x90,0x61,0xc5,0xe4,0x93,0x14,0x12,0xae,0x34,0x7c,0xab,0xbe,0xa0, +0xff,0x68,0x2c,0xbe,0xf0,0xff,0x68,0x25,0x7e,0x30,0xc, 0xac,0x3f,0x49,0x21,0x36, +0x7e,0x7e,0xf4,0x61,0xcc,0x7e,0xe4,0x0, 0xff,0xb, 0x7a,0x30,0xbd,0x23,0x28,0xf, +0x12,0xae,0xbb,0x3e,0x34,0xbd,0x23,0x28,0x6, 0x7c,0xfa,0x80,0x2, 0x7c,0xfa,0xbe, +0xf0,0xff,0x78,0x11,0xe4,0x7a,0xb3,0x36,0x68,0x7a,0xb3,0x36,0x69,0x7a,0xb3,0x36, +0x75,0x74,0xff,0x80,0x70,0x90,0x61,0xd4,0xe4,0x93,0xbe,0xb3,0x36,0x68,0x50,0x59, +0x74,0xc, 0xac,0xbf,0x49,0x25,0x36,0x7e,0x7e,0x14,0x61,0xcc,0x12,0x64,0xd3,0xbd, +0x23,0x50,0x3d,0x7e,0x34,0x61,0xd0,0x12,0x23,0x9e,0xbe,0x37,0x36,0x64,0x40,0xd, +0x7e,0x34,0x61,0xd2,0x12,0x23,0x9e,0xbe,0x37,0x36,0x6f,0x50,0x23,0x74,0x5, 0xac, +0xbf,0x9, 0x75,0x26,0x33,0xbe,0x73,0x2b,0xf, 0x68,0x15,0x7c,0xef,0xbe,0xe0,0x4, +0x50,0x8, 0x12,0x87,0x52,0xbe,0xb0,0x4, 0x40,0x6, 0x74,0x1, 0x7a,0xb3,0x36,0x6b, +0xe4,0x7a,0xb3,0x36,0x75,0x7a,0xb3,0x36,0x69,0xbe,0xe0,0xff,0x68,0x5, 0xe4,0x7a, +0xb3,0x36,0x68,0x7c,0xbe,0xda,0x79,0xda,0xd8,0x22,0x90,0x61,0xc5,0xe4,0x93,0x7c, +0xdb,0x22,0x12,0xae,0xd2,0x74,0x1, 0x7a,0xb3,0x36,0x66,0x22,0x7e,0x24,0x0, 0x2, +0x2, 0x1e,0xb9,0x7e,0x73,0x28,0x84,0xbe,0x70,0x0, 0x22,0x7e,0x73,0x26,0xf5,0xbe, +0x70,0x0, 0x22,0x7e,0x73,0x26,0xf4,0xbe,0x70,0x0, 0x22,0xca,0xf8,0x7e,0xf3,0x2a, +0x70,0x7a,0x37,0x1f,0x3a,0x7e,0x34,0x15,0x9e,0x7a,0x37,0x1f,0x3c,0xe4,0x7a,0xb3, +0x1f,0x34,0x7a,0xb3,0x1f,0x35,0x7e,0x73,0x2a,0x6f,0x7a,0x73,0x1f,0x36,0x7a,0xf3, +0x1f,0x37,0x7a,0xb3,0x1f,0x38,0x7a,0xb3,0x1f,0x39,0x7e,0x8, 0x1f,0x34,0x12,0x90, +0x50,0x6d,0x22,0x7d,0x3, 0x6d,0x11,0x7e,0x37,0x15,0xa0,0x2f,0x10,0x7e,0x33,0x1f, +0x36,0x6d,0x0, 0x12,0x1f,0x7, 0xa, 0x1f,0x6d,0x0, 0x12,0x1f,0x7, 0xda,0xf8,0x22, +0x12,0xc, 0x29,0x7e,0x37,0x15,0x9e,0x22,0x7a,0x37,0x1f,0x38,0x7e,0x34,0x15,0xa8, +0x7a,0x37,0x1f,0x3c,0x7e,0x34,0x15,0x9e,0x7a,0x37,0x1f,0x3a,0x7e,0x73,0x2a,0x6f, +0x7a,0x73,0x1f,0x35,0x7e,0x73,0x2a,0x70,0x7a,0x73,0x1f,0x34,0x7e,0x37,0x2a,0x5c, +0x7a,0x37,0x1f,0x3e,0x7e,0x37,0x2a,0x5e,0x7a,0x37,0x1f,0x40,0x7e,0x37,0x2a,0x60, +0x7a,0x37,0x1f,0x42,0x74,0x1, 0x7a,0xb3,0x1f,0x36,0x7a,0xb3,0x1f,0x37,0x7e,0x8, +0x1f,0x34,0x7e,0x18,0x1f,0x44,0x12,0x8, 0x0, 0x7e,0x37,0x1f,0x4e,0x7e,0x27,0x1f, +0x4a,0xbd,0x23,0x28,0x2, 0x7d,0x32,0x22,0x74,0xc8,0x7a,0xb3,0x39,0x6, 0xc2,0x17, +0x80,0xa, 0x12,0x45,0xd6,0x30,0x17,0x4, 0x75,0xe9,0xff,0x22,0x12,0x47,0xff,0x68, +0xf1,0x22,0x74,0x1, 0x12,0x90,0xf1,0x20,0x17,0x6, 0x12,0x46,0x4e,0x12,0x90,0xfa, +0x7e,0xb3,0x34,0x3a,0xb4,0x1, 0x6, 0x12,0x90,0xb8,0x12,0x90,0xfa,0xe4,0x2, 0x90, +0xf1,0xbe,0xb0,0x8, 0x50,0x3, 0x12,0x90,0xff,0x22,0xd2,0x4, 0x2, 0x45,0x5a,0xa, +0x5b,0x2e,0x54,0x0, 0x8, 0xf5,0xcc,0x22,0x12,0x47,0xff,0x68,0xfb,0x20,0x93,0xfd, +0x22,0x7e,0x34,0x61,0x59,0x2, 0x23,0x9e,0x7e,0xb3,0x37,0x6, 0x70,0x2e,0x7e,0x73, +0x36,0xe9,0xbe,0x70,0x10,0x40,0x2, 0x6c,0x77,0x7e,0xb3,0x37,0x31,0xb4,0x1, 0x3, +0x7e,0x70,0x6, 0xa, 0x37,0x2e,0x34,0xf, 0xf0,0x12,0x91,0x6d,0x7c,0xab,0xe5,0x4e, +0xa, 0x3b,0x2e,0x37,0x38,0x83,0x7a,0x37,0x38,0x83,0x80,0xc, 0x7e,0xa3,0x36,0xea, +0xbe,0xa0,0x7f,0x28,0x3, 0x7e,0xa0,0x7f,0x7c,0xba,0x2, 0x91,0x5d,0x75,0x4e,0x0, +0x7a,0xb3,0x39,0x6, 0xc2,0x17,0x22,0x2d,0x32,0x2e,0x34,0x20,0xf0,0x7a,0x71,0x82, +0x7a,0x61,0x83,0xe4,0x93,0x22,0x7e,0xb3,0x38,0x86,0x70,0x4, 0x74,0x1, 0x80,0x1, +0xe4,0x7a,0xb3,0x38,0x86,0x22,0x7f,0x20,0xc2,0x4, 0x7e,0x2b,0x60,0x29,0x72,0x0, +0x2, 0x9c,0x76,0x1a,0x37,0x12,0x21,0x0, 0x7c,0x27,0x29,0x72,0x0, 0x1, 0x29,0x32, +0x0, 0x3, 0x9c,0x37,0x1a,0x33,0x12,0x21,0x0, 0x7c,0x37,0x1a,0x23,0x1a,0x32,0x9d, +0x32,0x12,0x21,0x0, 0x7c,0x67,0x7c,0x72,0xbc,0x32,0x58,0x2, 0x7c,0x73,0xbe,0x60, +0x5, 0x18,0x5, 0xbe,0x70,0x6, 0x58,0x8, 0x7e,0x37,0x37,0xf3,0x4d,0x33,0x68,0x2, +0xd2,0x4, 0xa2,0x4, 0x22,0x7c,0xbd,0x7c,0x7e,0x7f,0x4, 0xca,0x3b,0x7f,0x70,0x7c, +0xe7,0x7c,0xdb,0x7e,0xc0,0x4, 0x7e,0xb3,0x2a,0x6d,0xf5,0x28,0x7e,0xb3,0x2a,0x6e, +0xf5,0x27,0x7e,0x34,0x62,0xa, 0x12,0x87,0xbc,0x6c,0xff,0x12,0x2f,0xff,0x7f,0x51, +0xe5,0x28,0xa, 0x3b,0x1b,0x34,0xa, 0xcd,0xbd,0xc3,0x58,0x14,0xe5,0x27,0xa, 0x3b, +0x1b,0x34,0xa, 0xce,0xbd,0xc3,0x58,0x8, 0x4c,0xee,0x68,0x4, 0x4c,0xdd,0x78,0x3, +0x4e,0xf0,0x10,0xb, 0x5a,0x30,0x7e,0x14,0x62,0xa, 0x12,0x87,0xee,0x8, 0xc, 0x7e, +0x27,0x28,0x8a,0xbe,0x24,0x3, 0x20,0x8, 0x2, 0x61,0x2a,0xb, 0xa, 0xc0,0x1e,0xc4, +0xbd,0x3c,0x8, 0xc, 0x7e,0xc7,0x28,0x8a,0xbe,0xc4,0x3, 0x20,0x58,0x2, 0x61,0x2a, +0x6c,0xaa,0x7c,0x8d,0x80,0x1c,0x7c,0x9e,0xbe,0x80,0x0, 0x48,0x11,0x7e,0xb3,0x2a, +0x6d,0xbc,0xb8,0x8, 0x9, 0x12,0x93,0x61,0x58,0x14,0xb, 0xa0,0x80,0x2, 0xb, 0xa0, +0x1b,0x80,0x1a,0x2c,0x1a,0x3d,0x9d,0x32,0x1a,0xc8,0xbd,0xc3,0x18,0xd8,0xbc,0xca, +0x18,0x5, 0x4e,0xf0,0x1, 0x61,0x2a,0x6c,0xaa,0x7c,0x8d,0x80,0x1c,0x7c,0x9e,0xbe, +0x80,0x0, 0x48,0x11,0x7e,0xb3,0x2a,0x6d,0xbc,0xb8,0x8, 0x9, 0x12,0x93,0x61,0x58, +0x14,0xb, 0xa0,0x80,0x2, 0xb, 0xa0,0xb, 0x80,0x1a,0x2c,0x1a,0x3d,0x2d,0x32,0x1a, +0xc8,0xbd,0xc3,0x48,0xd8,0xbc,0xca,0x18,0x5, 0x4e,0xf0,0x2, 0x80,0x6c,0x6c,0xaa, +0x7c,0x9e,0x80,0x1c,0x7c,0x8d,0xbe,0x90,0x0, 0x48,0x11,0x7e,0xb3,0x2a,0x6e,0xbc, +0xb9,0x8, 0x9, 0x12,0x93,0x61,0x58,0x14,0xb, 0xa0,0x80,0x2, 0xb, 0xa0,0x1b,0x90, +0x1a,0x2c,0x1a,0x3e,0x9d,0x32,0x1a,0xc9,0xbd,0xc3,0x18,0xd8,0xbc,0xca,0x18,0x5, +0x4e,0xf0,0x4, 0x80,0x35,0x6c,0xaa,0x7c,0x9e,0x80,0x1c,0x7c,0x8d,0xbe,0x90,0x0, +0x48,0x11,0x7e,0xb3,0x2a,0x6e,0xbc,0xb9,0x8, 0x9, 0x12,0x93,0x61,0x58,0x14,0xb, +0xa0,0x80,0x2, 0xb, 0xa0,0xb, 0x90,0x1a,0x2c,0x1a,0x3e,0x2d,0x32,0x1a,0xc9,0xbd, +0xc3,0x48,0xd8,0xbc,0xca,0x18,0x3, 0x4e,0xf0,0x8, 0x4c,0xff,0x68,0x2e,0x7e,0x7b, +0xb0,0xbc,0xbd,0x40,0x3, 0x7a,0x7b,0xd0,0x29,0xb7,0x0, 0x2, 0xbc,0xbd,0x38,0x4, +0x39,0xd7,0x0, 0x2, 0x29,0xb7,0x0, 0x1, 0xbc,0xbe,0x40,0x4, 0x39,0xe7,0x0, 0x1, +0x29,0xb7,0x0, 0x3, 0xbc,0xbe,0x38,0x4, 0x39,0xe7,0x0, 0x3, 0x7c,0xbf,0xda,0x3b, +0x22,0x7c,0xb8,0x7c,0x79,0x12,0x2c,0x40,0xbd,0x3d,0x22,0x7f,0x60,0x7e,0x6b,0xa0, +0xbe,0xa0,0xa, 0x50,0x1b,0x7e,0x14,0x0, 0x6, 0xca,0x19,0x74,0x6, 0xa4,0x7f,0x6, +0x2d,0x15,0xb, 0x14,0x12,0x20,0xb9,0x1b,0xfd,0x7e,0x6b,0xb0,0x4, 0x7a,0x6b,0xb0, +0x22,0x6c,0xaa,0x7e,0x63,0x2a,0x6e,0x7e,0x73,0x2a,0x6d,0xac,0x76,0x7d,0x13,0x1e, +0x14,0x7e,0x27,0x28,0x88,0x2e,0x27,0x28,0x86,0xbd,0x21,0x38,0xa, 0x1e,0x34,0x1e, +0x34,0xbe,0x37,0x28,0x86,0x50,0x29,0x90,0x60,0x51,0xe4,0x93,0x1e,0xb0,0xa, 0x2b, +0x7e,0xb3,0x26,0xf7,0xa, 0x3b,0xbd,0x32,0x8, 0x16,0x90,0x60,0x50,0xe4,0x93,0x1e, +0xb0,0xa, 0x2b,0x7e,0xb3,0x26,0xf6,0xa, 0x3b,0xbd,0x32,0x8, 0x3, 0x7e,0xa0,0x1, +0x7c,0xba,0x22,0xca,0x3b,0x6d,0x11,0x7e,0xe3,0x2a,0x2, 0x4c,0xee,0x78,0x23,0x6c, +0xff,0x80,0x1a,0x74,0x2, 0xac,0xbf,0x12,0x95,0x90,0x7e,0x70,0x9, 0xac,0x7f,0x19, +0xa3,0x34,0xca,0x74,0x2, 0xa, 0x3f,0x19,0xb3,0x35,0x34,0xb, 0xf0,0x12,0x5e,0x2d, +0x38,0xe1,0x12,0x97,0xc0,0x7e,0x24,0x0, 0x14,0xad,0x32,0x7d,0x43,0x2e,0x44,0x3, +0x20,0x6c,0xff,0xa1,0x69,0x74,0x9, 0xac,0xbf,0x9, 0xd5,0x28,0xb2,0x5e,0xd0,0xf, +0x12,0x95,0xa1,0x38,0x2, 0xa1,0x67,0xa, 0x1d,0x9, 0xb1,0x29,0xbc,0xbe,0xb0,0x1, +0x78,0x2, 0xa1,0x4d,0x75,0x24,0x0, 0xa1,0x3f,0x7e,0xa1,0x24,0x74,0x9, 0xa4,0x9, +0xc5,0x34,0xca,0xbc,0xcd,0x68,0x2, 0xa1,0x3d,0x49,0x25,0x34,0xc8,0x74,0x9, 0xac, +0xbf,0x49,0x35,0x28,0xb0,0x9d,0x32,0x12,0x21,0x0, 0x7d,0x3, 0x7e,0xa1,0x24,0x74, +0x9, 0xa4,0x49,0x25,0x34,0xc6,0x74,0x9, 0xac,0xbf,0x12,0x96,0x1b,0x2d,0x3, 0xa, +0x1c,0x9, 0xa1,0x35,0x34,0xbe,0xa0,0x0, 0x28,0x17,0x7e,0x30,0x2, 0xac,0x3c,0x59, +0x1, 0x35,0x20,0xa, 0x1c,0x2e,0x14,0x35,0x34,0x7c,0xba,0x14,0x7a,0x19,0xb0,0xa1, +0x67,0x74,0x2, 0xac,0xbc,0x49,0x15,0x35,0x20,0xbe,0x14,0x0, 0x32,0x28,0x8, 0x7d, +0x31,0x2d,0x34,0xbd,0x30,0x40,0x20,0xbe,0x14,0x0, 0x32,0x28,0x8, 0xbe,0x4, 0x0, +0x32,0x28,0x2, 0x80,0x72,0x7d,0x31,0x2e,0x34,0x0, 0x32,0xbd,0x30,0x50,0x8, 0xbe, +0x14,0x0, 0x32,0x28,0x2, 0x80,0x60,0xbe,0x4, 0x0, 0xa0,0x28,0x56,0xa, 0x1d,0x9, +0xb1,0x29,0xbc,0x70,0x4, 0x74,0x3, 0x80,0x2, 0x74,0x1, 0xa, 0x1d,0x19,0xb1,0x29, +0xbc,0x74,0x3, 0xa, 0x1c,0x19,0xb1,0x29,0xc6,0xbe,0xe0,0x0, 0x28,0x69,0x1b,0xe0, +0x7e,0x70,0x9, 0xac,0x7f,0x2e,0x34,0x28,0xae,0x7e,0x14,0x1f,0x34,0x74,0x9, 0x12, +0x1f,0x8c,0x7e,0x70,0x9, 0xac,0x7e,0x12,0x97,0xae,0xac,0x3f,0x12,0x95,0x98,0x7e, +0x34,0x1f,0x34,0x7e,0x30,0x9, 0xac,0x3e,0x12,0x95,0x98,0x1b,0xf0,0x74,0x2, 0xac, +0xbc,0x80,0x4, 0x74,0x2, 0xac,0xbc,0x59,0x5, 0x35,0x20,0x80,0x2a,0x5, 0x24,0x90, +0x60,0x99,0xe4,0x93,0xbe,0xb1,0x24,0x28,0x2, 0x81,0x49,0x80,0x1a,0x6d,0x11,0x74, +0x2, 0xac,0xbd,0x12,0x95,0x90,0x7e,0x30,0x9, 0xac,0x3d,0x19,0xa1,0x34,0xca,0x74, +0x2, 0xa, 0x1d,0x19,0xb1,0x35,0x34,0xb, 0xf0,0xbc,0xef,0x28,0x2, 0x81,0x25,0xe4, +0x7a,0xb3,0x16,0x92,0x90,0x60,0x99,0x12,0x5f,0xc6,0xca,0x59,0x7e,0x18,0x28,0xae, +0x7e,0x8, 0x34,0xc6,0x12,0x20,0xb9,0x1b,0xfd,0x7a,0xe3,0x2a,0x2, 0xda,0x3b,0x22, +0x59,0x15,0x35,0x20,0x7e,0xa0,0xff,0x22,0x2e,0x14,0x28,0xae,0x74,0x9, 0x2, 0x1f, +0x8c,0x90,0x60,0x99,0xe4,0x93,0xbc,0xbd,0x22,0xca,0x3b,0x7c,0xfb,0x6c,0xee,0x80, +0x63,0x6c,0xdd,0x80,0x16,0x74,0x9, 0xac,0xbd,0x9, 0x65,0x29,0x66,0x74,0x9, 0xac, +0xbe,0x9, 0x75,0x28,0xb2,0xbc,0x67,0x68,0x7, 0xb, 0xd0,0x12,0x95,0xa1,0x38,0xe5, +0x12,0x95,0xa1,0x28,0x43,0x74,0x9, 0xac,0xbd,0x9, 0xc5,0x29,0x66,0x12,0x81,0xb3, +0x74,0x9, 0xac,0xbd,0x12,0x87,0xe5,0x12,0x96,0x1b,0x2d,0x31,0x7a,0x35,0x24,0xa, +0x3c,0x9, 0xb3,0x29,0xbc,0xb4,0x1, 0xe, 0x6d,0x33,0x74,0x2, 0xac,0xbc,0x59,0x35, +0x34,0x8b,0x59,0x35,0x34,0xb0,0x7e,0x35,0x24,0x7c,0xbd,0x7c,0x5e,0x7c,0x4c,0x12, +0x87,0xb3,0xb, 0xe0,0xbc,0xfe,0x38,0x99,0xda,0x3b,0x22,0x49,0x35,0x28,0xae,0x9d, +0x32,0x2, 0x21,0x0, 0x7e,0xb3,0x37,0x31,0x70,0x3, 0x12,0x93,0xe3,0x2, 0x96,0x30, +0xca,0x79,0x7e,0xf3,0x2a,0x2, 0x7e,0xe3,0x2a,0x3, 0x7c,0xbf,0x7c,0x7e,0x12,0x96, +0x7c,0x7c,0xbf,0x12,0x97,0x10,0x4c,0xee,0x78,0x14,0x12,0x5f,0xc2,0xca,0x59,0x7e, +0x18,0x28,0xae,0x7e,0x8, 0x29,0x62,0x12,0x20,0xb9,0x1b,0xfd,0x80,0xb, 0x7e,0xb3, +0x2a,0x9, 0x70,0x5, 0x7c,0xbf,0x12,0x95,0xa9,0x7c,0xbf,0x12,0x9f,0x90,0xbe,0xf0, +0x0, 0x28,0x6, 0x74,0x1, 0x7a,0xb3,0x2a,0xb, 0xda,0x79,0x22,0x7c,0x67,0x7c,0x7b, +0xa5,0xbf,0x0, 0x17,0xbe,0x60,0x0, 0x28,0xf, 0x74,0x1, 0x7a,0xb3,0x2a,0x7, 0xe4, +0x7a,0xb3,0x2a,0x9, 0x7a,0xb3,0x2a,0xa, 0x2, 0x96,0xeb,0xa5,0xbe,0x0, 0x1d,0x6c, +0xaa,0x80,0xe, 0x7e,0x60,0xff,0x7e,0x50,0x9, 0xac,0x5a,0x19,0x62,0x29,0x66,0xb, +0xa0,0x12,0x5e,0x25,0x38,0xed,0x74,0x1, 0x7a,0xb3,0x2a,0x6, 0x6c,0xaa,0x80,0x26, +0x7e,0x30,0x9, 0xac,0x3a,0x2e,0x14,0x28,0xae,0xb, 0x18,0x20,0x12,0x47,0x81,0x1b, +0x18,0x20,0x7e,0x30,0x9, 0xac,0x3a,0x2e,0x14,0x28,0xb0,0xb, 0x18,0x20,0x12,0x47, +0x81,0x1b,0x18,0x20,0xb, 0xa0,0xbc,0x7a,0x38,0xd6,0x22,0x12,0x97,0x4, 0x7e,0x8, +0x34,0xb0,0xe4,0x12,0x20,0xde,0x90,0x60,0x99,0x12,0x97,0x8, 0x7e,0x8, 0x34,0x8b, +0xe4,0x2, 0x20,0xde,0x90,0x60,0x99,0xe4,0x93,0x7c,0x7b,0x74,0x2, 0xac,0x7b,0x22, +0xca,0xd8,0xca,0x79,0x7c,0xdb,0x90,0x60,0x99,0xe4,0x93,0x7c,0xfb,0x6c,0x11,0x80, +0x21,0x7e,0x0, 0xff,0x74,0x9, 0xac,0xb1,0x19,0x5, 0x1f,0x38,0x7e,0x34,0x7f,0xff, +0x74,0x9, 0xac,0xb1,0x59,0x35,0x1f,0x34,0x74,0x9, 0xac,0xb1,0x59,0x35,0x1f,0x36, +0xb, 0x10,0xbc,0xf1,0x38,0xdb,0xe4,0x6c,0x77,0x7c,0x6d,0x12,0x97,0xb6,0x7c,0x7d, +0x7c,0x6f,0x12,0x97,0xb6,0x6c,0x0, 0x80,0x39,0x6c,0xee,0x80,0x16,0x74,0x9, 0xac, +0xbe,0x9, 0x65,0x1f,0x38,0x74,0x9, 0xac,0xb0,0x9, 0x75,0x28,0xb2,0xbc,0x76,0x68, +0x6, 0xb, 0xe0,0xbc,0x1e,0x38,0xe6,0xbc,0x1e,0x78,0x15,0x7e,0x70,0x9, 0xac,0x70, +0x12,0x97,0xae,0xac,0x31,0x2e,0x14,0x1f,0x34,0x74,0x9, 0x12,0x1f,0x8c,0xb, 0x10, +0xb, 0x0, 0xbc,0xf0,0x38,0xc3,0x74,0x9, 0xac,0xbf,0xca,0x59,0x7e,0x18,0x1f,0x34, +0x7e,0x8, 0x29,0x62,0x12,0x20,0xb9,0x1b,0xfd,0xda,0x79,0xda,0xd8,0x22,0x2e,0x34, +0x28,0xae,0x7e,0x30,0x9, 0x22,0x7e,0x8, 0x1f,0x34,0x12,0x9e,0x37,0x7c,0x1b,0x22, +0x7e,0x73,0x2a,0x3, 0xbe,0x73,0x2a,0x2, 0x78,0x17,0x7e,0x73,0x2a,0x2, 0xbe,0x70, +0x1, 0x40,0xe, 0x7e,0x37,0x34,0x9f,0xbe,0x34,0x0, 0x14,0x38,0xe, 0xb, 0x34,0x80, +0x6, 0x7e,0x37,0x34,0x9f,0x1e,0x34,0x7a,0x37,0x34,0x9f,0x7e,0xb3,0x2a,0x2, 0x70, +0x6, 0x6d,0x33,0x7a,0x37,0x34,0x9f,0x7e,0x37,0x34,0x9f,0x22,0xca,0xf8,0x7c,0xfb, +0x6d,0xdd,0x7c,0xbf,0x12,0x98,0xea,0x7d,0xe3,0x7c,0xbf,0x12,0x37,0x6f,0x7d,0xf3, +0x74,0x2, 0xac,0xbf,0x9, 0x95,0x26,0xfb,0x7c,0xbf,0x12,0x9a,0xed,0x40,0x2, 0x1, +0xd4,0x74,0x2, 0xac,0xbf,0x9, 0xa5,0x26,0xfa,0xbe,0xa0,0x0, 0x28,0x9, 0xa, 0x3a, +0x1b,0x34,0x12,0x98,0xd8,0x7d,0xd3,0x12,0x98,0xdf,0xbd,0xc3,0x58,0xb, 0xa, 0xca, +0xb, 0xc4,0x7d,0x3c,0x12,0x98,0xd8,0x2d,0xd3,0x12,0x9b,0xf, 0x7d,0xd3,0xbe,0xa0, +0x0, 0x28,0x56,0x12,0x98,0xdf,0xbd,0xc3,0x58,0x4f,0xbe,0x90,0x0, 0x28,0x4a,0xbe, +0x90,0x0, 0x28,0x45,0xbe,0xf4,0x0, 0xc8,0x8, 0x3f,0x7d,0x3d,0x3e,0x34,0x3e,0x34, +0xbd,0x3f,0x8, 0x35,0x7e,0x70,0x2, 0xac,0x79,0x49,0x33,0x4, 0xfc,0xbe,0x34,0x1, +0x2c,0x8, 0x26,0xa, 0x2a,0x7e,0xb3,0x2a,0x74,0x12,0x9b,0x18,0xbe,0x34,0x1, 0x90, +0x8, 0x17,0xbe,0xf4,0x1, 0x5e,0x58,0xd, 0x7e,0x34,0x0, 0x3, 0xad,0x3e,0xbd,0x3f, +0x8, 0x3, 0xe4,0x80,0x30,0x74,0x1, 0x80,0x2c,0x90,0x60,0xab,0xe4,0x93,0xbc,0xb9, +0x78,0x22,0x7c,0xba,0x7c,0x79,0x12,0x2c,0x40,0xbe,0x34,0x0, 0x96,0x8, 0x12,0x74, +0x2, 0xac,0xb9,0x49,0x35,0x4, 0xfc,0xbe,0x34,0x0, 0x32,0x8, 0x4, 0x74,0x1, 0x80, +0x4, 0xe4,0x80,0x1, 0xe4,0xda,0xf8,0x22,0x7c,0xb7,0x7c,0x79,0x2, 0x2c,0x40,0x7e, +0xb3,0x2a,0x6f,0xa, 0x3b,0x1b,0x34,0xa, 0xca,0x22,0xca,0x79,0x7c,0x8b,0x6c,0xaa, +0x9f,0x77,0x12,0x9a,0x2a,0x1a,0x79,0x1b,0x74,0x80,0x4c,0x1a,0x38,0x1b,0x34,0x7c, +0xe7,0x80,0x38,0xbc,0x9f,0x78,0x4, 0xbc,0x8e,0x68,0x2e,0xbe,0xf0,0x0, 0x48,0x29, +0x7e,0xb3,0x2a,0x6f,0xa, 0x2b,0x1a,0x3f,0xbd,0x32,0x58,0x1d,0xbe,0xe0,0x0, 0x48, +0x18,0x7e,0xb3,0x2a,0x70,0xa, 0x2b,0x1a,0x3e,0xbd,0x32,0x58,0xc, 0x7c,0xbf,0x7c, +0x7e,0x12,0x2c,0x40,0x12,0x99,0x65,0xb, 0xa0,0xb, 0xe0,0x1a,0x28,0xb, 0x24,0x1a, +0x3e,0xbd,0x32,0x8, 0xbe,0xb, 0xf0,0x1a,0x29,0xb, 0x24,0x1a,0x3f,0xbd,0x32,0x8, +0xaa,0x4c,0xaa,0x78,0x4, 0x6d,0x33,0x80,0x9, 0xa, 0x1a,0x6d,0x0, 0x7f,0x17,0x12, +0x1f,0x58,0xda,0x79,0x22,0x1a,0x26,0x1a,0x24,0x2f,0x71,0x22,0xca,0x79,0x7c,0xa7, +0x7c,0x8b,0x7e,0xb3,0x2a,0x6f,0x7a,0xb3,0x1f,0x34,0x7e,0xb3,0x2a,0x70,0x7a,0xb3, +0x1f,0x35,0x12,0x9a,0x2a,0x9f,0x77,0x1a,0x3a,0x1a,0x79,0x9d,0x73,0x41,0x17,0x7a, +0xf1,0x2d,0xbe,0xf0,0x0, 0x58,0xe, 0x1a,0x3f,0x1a,0x29,0x9d,0x23,0x1a,0x39,0x2d, +0x32,0x7c,0xb7,0xf5,0x2d,0x7e,0xb3,0x1f,0x34,0xbc,0xbf,0x18,0xe, 0x1a,0x39,0x1a, +0x2f,0x9d,0x23,0x1a,0x39,0x9d,0x32,0x7c,0xb7,0xf5,0x2d,0x1a,0x2a,0x1a,0x38,0x9d, +0x32,0x7c,0xb7,0xf5,0x2c,0x80,0x40,0x85,0x2c,0x2e,0xe5,0x2c,0xbe,0xb0,0x0, 0x58, +0x10,0xe5,0x2c,0x1a,0x3b,0x1a,0x28,0x9d,0x23,0x1a,0x38,0x2d,0x32,0x7c,0xb7,0xf5, +0x2e,0x7e,0xb3,0x1f,0x35,0xbe,0xb1,0x2c,0x18,0x10,0x1a,0x38,0xe5,0x2c,0x1a,0x2b, +0x9d,0x23,0x1a,0x38,0x9d,0x32,0x7c,0xb7,0xf5,0x2e,0xe5,0x2d,0x7e,0x71,0x2e,0x12, +0x2c,0x40,0x12,0x99,0x65,0x5, 0x2c,0x1a,0x3a,0x1a,0x28,0x2d,0x23,0xe5,0x2c,0x1a, +0x3b,0xbd,0x32,0x8, 0xb2,0xb, 0xf0,0x1a,0x3a,0x1a,0x29,0x2d,0x23,0x1a,0x3f,0xbd, +0x32,0x18,0x2, 0x21,0x8f,0x7f,0x17,0xda,0x79,0x22,0x7e,0x70,0x2, 0xac,0x78,0x9, +0x93,0x26,0xfa,0x9, 0x83,0x26,0xfb,0x22,0xca,0xd8,0xca,0x79,0x7e,0x34,0x62,0x27, +0x12,0x9a,0xe5,0x12,0x9b,0x23,0x50,0x2, 0x41,0xe0,0x7e,0x34,0x62,0x2b,0x12,0x23, +0x9e,0x7a,0x35,0x2a,0x90,0x62,0x26,0xe4,0x93,0x70,0x2, 0x41,0xe0,0x7e,0xb3,0x28, +0xa8,0xb4,0x1, 0x7, 0x7e,0x34,0x62,0x29,0x12,0x9a,0xe5,0x7e,0x37,0x28,0x8a,0xbe, +0x34,0x4, 0x4c,0x8, 0x6b,0x6c,0xdd,0x80,0x5f,0xc2,0x3, 0x7c,0xbd,0x12,0x37,0x6f, +0x7a,0x35,0x26,0x7c,0xbd,0x7e,0x70,0x1, 0x12,0x99,0x6c,0x7a,0x35,0x24,0x9e,0x35, +0x26,0x7a,0x35,0x24,0x7e,0x35,0x26,0x3e,0x34,0x3e,0x34,0x12,0x8f,0xdc,0x7a,0x35, +0x28,0xbe,0x75,0x28,0x58,0x3, 0x7a,0x75,0x28,0x7e,0x35,0x28,0xbe,0x35,0x24,0x8, +0xa, 0x7e,0x35,0x2a,0xbe,0x35,0x26,0x8, 0x2, 0xd2,0x3, 0x7c,0xbd,0x12,0x9a,0xed, +0x50,0x2, 0xc2,0x3, 0x30,0x3, 0xf, 0x7c,0xbd,0x6c,0x77,0x12,0x51,0x5f,0x7e,0x70, +0x2, 0xac,0x7d,0x12,0x37,0x9f,0xb, 0xd0,0x7e,0x73,0x28,0x84,0xbc,0x7d,0x38,0x99, +0xda,0x79,0xda,0xd8,0x22,0x7e,0x24,0x0, 0xff,0xb, 0x1a,0x70,0x22,0x7c,0x4b,0x74, +0x2, 0xac,0xb4,0x9, 0x55,0x26,0xfa,0x9, 0x65,0x26,0xfb,0x7e,0x73,0x28,0x8c,0xbc, +0x75,0x78,0xa, 0x7e,0x73,0x28,0x8d,0xbc,0x76,0x78,0x2, 0xd3,0x22,0xc3,0x22,0x7e, +0x24,0x0, 0x2, 0x7d,0x3d,0x2, 0x1e,0xb9,0xa, 0x3b,0x2d,0x32,0x3e,0x34,0x49,0x33, +0x4, 0xfc,0x22,0x6c,0x99,0x6c,0x88,0x80,0xf, 0x7c,0xb8,0x12,0x37,0x6f,0xbe,0x34, +0x1, 0xf4,0x8, 0x2, 0xb, 0x90,0xb, 0x80,0x7e,0x73,0x28,0x84,0xbc,0x78,0x38,0xe9, +0xbe,0x90,0x1, 0x38,0x2, 0xc3,0x22,0xd3,0x22,0xca,0x3b,0x7e,0x77,0x2a,0x5c,0x12, +0x9d,0xa1,0x7d,0x63,0x3e,0x34,0x3e,0x34,0x7e,0xe4,0x0, 0xa, 0x12,0x9b,0xd7,0x7e, +0xb3,0x28,0xa8,0x60,0xf, 0x7e,0x37,0x35,0xe5,0xbd,0x36,0x48,0x7, 0x3e,0x34,0x3e, +0x34,0x12,0x9b,0xd7,0xbe,0x64,0x4, 0x4c,0x8, 0xf, 0x12,0x9b,0x23,0x50,0x6, 0x7e, +0xb3,0x28,0xa8,0x60,0x4, 0x74,0xa, 0x80,0x13,0x7e,0xb3,0x28,0xa8,0x60,0xc, 0x7e, +0xb3,0x35,0xe3,0xbe,0xb0,0x0, 0x28,0x8, 0x14,0x80,0x1, 0xe4,0x7a,0xb3,0x35,0xe3, +0x7e,0xe7,0x2a,0x5c,0x7d,0x3e,0x12,0x45,0xe, 0x7e,0x53,0x35,0xe3,0xbe,0x50,0x0, +0x28,0x12,0xbd,0x3f,0x58,0x4, 0x7d,0xf3,0x80,0x6, 0xbd,0xef,0x8, 0x2, 0x7d,0xfe, +0x7a,0xf7,0x2a,0x5c,0x12,0x9b,0xdf,0x28,0x3, 0x12,0x37,0xc2,0x7a,0x67,0x35,0xe5, +0x7a,0x77,0x2a,0x5c,0xda,0x3b,0x22,0x7d,0x2e,0x12,0x1e,0xb9,0x7d,0xf3,0x22,0x7e, +0x73,0x28,0x84,0xbe,0x70,0x1, 0x22,0xca,0x79,0xc2,0x3, 0x7e,0xf0,0x3, 0x7e,0xe3, +0x2a,0x3, 0x12,0x9b,0xdf,0x28,0x72,0x7c,0xbf,0x12,0x2c,0x47,0x4c,0xee,0x68,0xe, +0x7e,0x63,0x33,0xc0,0xa5,0xbe,0x0, 0xa, 0x7e,0xb3,0x33,0xc1,0x70,0x4, 0xd2,0x3, +0x80,0x2e,0xbe,0xe0,0x1, 0x28,0xb, 0xe5,0x4d,0xbe,0xb0,0x8, 0x28,0x4, 0xd2,0x3, +0x80,0x1e,0xd2,0x3, 0x12,0x9c,0xf6,0x78,0xa, 0xa5,0xbe,0x0, 0x6, 0x6c,0xff,0xc2, +0x3, 0x80,0xd, 0x9e,0x73,0x33,0xc0,0xbc,0x7e,0x78,0x5, 0x7e,0xf0,0x2, 0xc2,0x3, +0x20,0x3, 0x5, 0x7c,0xbf,0x12,0x2c,0x47,0x7e,0xa3,0x33,0xc2,0x7a,0xa3,0x28,0x84, +0x74,0x2, 0xa4,0xca,0x59,0x7e,0x18,0x33,0xc3,0x7e,0x8, 0x26,0xfa,0x12,0x20,0xb9, +0x1b,0xfd,0x12,0x9c,0x6f,0xf5,0x4d,0x80,0x3, 0x75,0x4d,0x64,0xda,0x79,0x22,0x7e, +0x30,0x64,0x7e,0x20,0x64,0x6c,0x11,0x80,0x54,0xa, 0x31,0xb, 0x34,0x7c,0x7, 0x80, +0x42,0x7e,0x70,0x2, 0xac,0x70,0x9, 0xb3,0x26,0xfa,0x12,0x9c,0xee,0x9, 0xb3,0x26, +0xfa,0x12,0x2f,0xd6,0x7c,0x97,0x7e,0x70,0x2, 0xac,0x70,0x9, 0xb3,0x26,0xfb,0x12, +0x9c,0xee,0x9, 0xb3,0x26,0xfb,0x12,0x2f,0xd6,0x7c,0x87,0xbe,0x90,0x0, 0x28,0x6, +0xbc,0x39,0x28,0x2, 0x7c,0x39,0xbe,0x80,0x0, 0x28,0x6, 0xbc,0x28,0x28,0x2, 0x7c, +0x28,0xb, 0x0, 0x7e,0xb3,0x28,0x84,0xbc,0xb0,0x38,0xb6,0xb, 0x10,0x7e,0xb3,0x28, +0x84,0xbc,0xb1,0x38,0xa4,0xa5,0xbb,0x64,0x2, 0x6c,0x33,0xa5,0xba,0x64,0x2, 0x6c, +0x22,0xbc,0x23,0x28,0x4, 0x7c,0xa2,0x80,0x2, 0x7c,0xa3,0x7c,0xba,0x22,0xa, 0x2b, +0x7e,0x70,0x2, 0xac,0x71,0x22,0x7e,0x73,0x28,0x84,0xbc,0x7e,0x22,0xca,0x79,0x6c, +0x88,0x80,0x72,0x74,0x2, 0xac,0xb8,0x9, 0xf5,0x26,0xfa,0x9, 0x75,0x26,0xfb,0x7a, +0x71,0x24,0x7c,0xbf,0x12,0x9d,0x8b,0x50,0x5a,0x6c,0xee,0x80,0x51,0xbc,0xe8,0x68, +0x4b,0x7e,0x70,0x2, 0xac,0x7e,0x12,0x9d,0x80,0xf5,0x26,0x6c,0x99,0x90,0x60,0xaa, +0xe4,0x93,0x70,0x18,0x7e,0xb3,0x2a,0x70,0x14,0xbe,0xb1,0x26,0x78,0xe, 0xa, 0x2f, +0xe5,0x25,0xa, 0x3b,0x12,0x35,0x67,0x18,0x3, 0x7e,0x90,0x1, 0xbe,0x90,0x1, 0x78, +0x1b,0x7c,0xbe,0x12,0x37,0x6f,0x7d,0xf3,0x7c,0xb8,0x12,0x37,0x6f,0xbd,0x3f,0x8, +0x4, 0x7c,0xbe,0x80,0x2, 0x7c,0xb8,0x6c,0x77,0x12,0x51,0x5f,0xb, 0xe0,0x12,0x9c, +0xf6,0x38,0xaa,0xb, 0x80,0x7e,0x73,0x28,0x84,0xbc,0x78,0x38,0x86,0xda,0x79,0x22, +0x9, 0xb3,0x26,0xfa,0xf5,0x25,0x9, 0xb3,0x26,0xfb,0x22,0x7c,0xab,0x90,0x60,0xab, +0xe4,0x93,0xbc,0xb7,0x78,0x9, 0x7c,0xba,0x12,0x31,0x5a,0x50,0x2, 0xd3,0x22,0xc3, +0x22,0xca,0x3b,0x6d,0x44,0x7e,0xf3,0x28,0x84,0x6c,0xee,0x80,0x24,0x7c,0xbe,0x12, +0x2f,0xb7,0x60,0x1b,0x74,0x2, 0xac,0xbe,0x9, 0xd5,0x26,0xfa,0x9, 0xc5,0x26,0xfb, +0x7c,0xbd,0x7c,0x7c,0x12,0x2c,0x40,0x7d,0xf3,0xbd,0x4f,0x58,0x2, 0x7d,0x4f,0xb, +0xe0,0xbc,0xfe,0x38,0xd8,0x7d,0x34,0xda,0x3b,0x22,0x7e,0xb3,0x2a,0x2, 0x70,0x2d, +0x7e,0x73,0x2a,0x3, 0xbe,0x70,0x0, 0x28,0x24,0x7e,0xb3,0x34,0xc5,0x70,0x18,0x12, +0x9e,0x17,0x7e,0x73,0x2a,0x3, 0x7a,0x73,0x2a,0x2, 0x74,0x1, 0x7a,0xb3,0x2a,0x9, +0x7e,0xb3,0x34,0xc5,0x4, 0x80,0x1, 0xe4,0x7a,0xb3,0x34,0xc5,0x22,0xe4,0x7a,0xb3, +0x34,0xc5,0x7a,0xb3,0x2a,0x9, 0x22,0x7e,0x34,0x0, 0x3c,0xca,0x39,0x7e,0x18,0x35, +0xe9,0x7e,0x8, 0x36,0x25,0x12,0x20,0xb9,0x1b,0xfd,0x7e,0x73,0x28,0x94,0x7a,0x73, +0x35,0xe8,0x7a,0x73,0x28,0x93,0x22,0xca,0x3b,0x7c,0x46,0x7c,0xab,0x6c,0x66,0xc1, +0xd2,0x7c,0x57,0xc1,0xca,0x7e,0xf0,0x9, 0xac,0xf6,0x9, 0x87,0x29,0x66,0x7c,0x98, +0x7e,0xd0,0x9, 0xac,0xd5,0x9, 0xb6,0x28,0xb2,0xbc,0xb9,0x78,0x6b,0xbe,0x90,0xff, +0x68,0x66,0x12,0x9e,0xe2,0x39,0x87,0x0, 0x4, 0xa, 0xf9,0x9, 0xbf,0x29,0xbc,0x7e, +0xf0,0x9, 0x70,0xc, 0xac,0xf5,0x7d,0x97,0x2e,0x94,0x28,0xae,0x6d,0x88,0x80,0xa, +0xac,0xf6,0x7d,0x97,0x2e,0x94,0x29,0x62,0x6d,0x88,0xb, 0x4a,0xd0,0x12,0x9e,0xe2, +0x1b,0x7a,0xd0,0x69,0xf4,0x0, 0x2, 0x7e,0xf0,0x9, 0xac,0xfa,0x7f,0x60,0x2d,0xd7, +0x79,0xf6,0x0, 0x2, 0x7e,0xf0,0x9, 0xac,0xf5,0x9, 0x87,0x28,0xb3,0x12,0x9e,0xe2, +0x39,0x87,0x0, 0x5, 0x7e,0xf0,0x9, 0xac,0xf5,0x9, 0x87,0x28,0xb4,0x12,0x9e,0xe2, +0x39,0x87,0x0, 0x6, 0xb, 0xa0,0x80,0x8, 0xb, 0x50,0xbc,0x45,0x28,0x2, 0xc1,0x45, +0xb, 0x60,0x90,0x60,0x99,0xe4,0x93,0xbc,0xb6,0x28,0x2, 0xc1,0x41,0x7c,0xba,0xda, +0x3b,0x22,0x7e,0xf0,0x9, 0xac,0xfa,0x7f,0x70,0x2d,0xf7,0x22,0x7c,0xab,0x7e,0xb, +0xb0,0x60,0x3, 0xb4,0x2, 0x31,0xa, 0x4a,0x9, 0x74,0x34,0xa3,0xbe,0x73,0x34,0xad, +0x50,0xe, 0x7d,0x24,0x2e,0x24,0x34,0xa3,0x7c,0xb7,0x4, 0x7a,0x29,0xb0,0xd3,0x22, +0xbe,0x73,0x34,0xad,0x40,0x9, 0xbe,0x70,0xff,0x68,0x4, 0xe4,0x7a,0xb, 0xb0,0x74, +0xff,0x19,0xb4,0x34,0xa3,0x80,0x17,0xa, 0x3a,0x9, 0xb3,0x34,0xa3,0xbe,0xb0,0xff, +0x68,0x7, 0xe4,0x19,0xb3,0x34,0xa3,0xd3,0x22,0xe4,0x19,0xb3,0x34,0xa3,0xc3,0x22, +0xca,0xf8,0x7c,0xfb,0x7d,0xf3,0x7e,0x17,0x2a,0x62,0xbd,0x13,0x38,0x6, 0x7e,0x34, +0x1, 0x0, 0x80,0x15,0x6d,0x22,0x7c,0x56,0x7c,0x67,0x6c,0x77,0x12,0x1f,0x5, 0xbe, +0x34,0x0, 0x10,0x50,0x4, 0x7e,0x34,0x0, 0x10,0x74,0x2, 0xac,0xbf,0x49,0x25,0x34, +0xb0,0xbd,0x2f,0x28,0x6, 0x49,0x35,0x34,0x8b,0x80,0x4, 0x59,0x35,0x34,0x8b,0x59, +0xf5,0x34,0xb0,0xbe,0x34,0x1, 0x0, 0x28,0x4, 0x7e,0x34,0x1, 0x0, 0xda,0xf8,0x22, +0x6c,0xaa,0x80,0x49,0x7e,0x50,0x9, 0xac,0x5a,0x49,0x32,0x29,0x62,0x12,0x25,0x3c, +0x59,0x32,0x28,0xae,0x7e,0x50,0x9, 0xac,0x5a,0x49,0x32,0x29,0x64,0x12,0x25,0x3c, +0x59,0x32,0x28,0xb0,0x7e,0x90,0x9, 0xac,0x9a,0x9, 0xb4,0x29,0x66,0x19,0xb4,0x28, +0xb2,0x7e,0x90,0x9, 0xac,0x9a,0x9, 0xb4,0x29,0x67,0x19,0xb4,0x28,0xb3,0x7e,0x90, +0x9, 0xac,0x9a,0x9, 0xb4,0x29,0x68,0x19,0xb4,0x28,0xb4,0xb, 0xa0,0x12,0x5e,0x25, +0x38,0xb2,0x22,0x7e,0x8, 0x34,0xa2,0x7e,0x34,0x0, 0xd, 0xe4,0x2, 0x20,0xde,0x6c, +0x0, 0x6c,0x11,0x80,0x13,0x7c,0xb1,0x12,0x2f,0xb7,0x60,0xa, 0x12,0xa0,0x84,0x40, +0x5, 0x7e,0x0, 0x1, 0x80,0xa, 0xb, 0x10,0x7e,0x73,0x28,0x84,0xbc,0x71,0x38,0xe5, +0x7c,0xb0,0x6c,0x77,0x12,0xa0,0x49,0xbe,0x0, 0x1, 0x68,0xb, 0x7c,0xb0,0x7e,0x70, +0x1, 0x12,0xa0,0x49,0xb4,0x1, 0x21,0x6c,0x11,0x80,0x15,0x7c,0xb1,0x12,0x2f,0xb7, +0x60,0xc, 0x12,0xa0,0x84,0x50,0x7, 0x7c,0xb1,0x6c,0x77,0x12,0x51,0x5f,0xb, 0x10, +0x7e,0x3, 0x28,0x84,0xbc,0x1, 0x38,0xe3,0x22,0x7c,0xab,0xa5,0xbf,0x0, 0xc, 0x7e, +0xb3,0x36,0x61,0x7a,0xb3,0x36,0x62,0x7a,0xa3,0x36,0x61,0x7e,0xb3,0x36,0x62,0x60, +0x4, 0x74,0x8, 0x80,0xd, 0x7e,0xb3,0x28,0x84,0x70,0xb, 0x7e,0xb3,0x36,0x63,0x60, +0x5, 0x14,0x7a,0xb3,0x36,0x63,0x7e,0x73,0x36,0x63,0xbe,0x70,0x0, 0x28,0x3, 0x74, +0x1, 0x22,0xe4,0x22,0x74,0x2, 0xac,0xb1,0x9, 0x25,0x26,0xfa,0x9, 0x35,0x26,0xfb, +0x7c,0xb2,0x7c,0x73,0x7c,0xa7,0x7c,0x7b,0x90,0x60,0xaa,0xe4,0x93,0x60,0x2, 0x7c, +0xa7,0x90,0x60,0xab,0xe4,0x93,0xbc,0xba,0x78,0x2, 0xd3,0x22,0xc3,0x22,0xca,0xf8, +0x7e,0xd4,0x0, 0x9, 0x7e,0xb3,0x28,0x84,0x70,0x8, 0xf5,0x1e,0xc2,0x8, 0xc2,0x9, +0x80,0x71,0xbe,0xb0,0x2, 0x38,0x66,0xb4,0x2, 0x28,0x7e,0x73,0x26,0xfc,0xa, 0x27, +0x7e,0x73,0x26,0xfa,0x12,0xa1,0x4b,0xbe,0x34,0x0, 0x5, 0x58,0x15,0x7e,0x73,0x26, +0xfd,0xa, 0x27,0x7e,0x73,0x26,0xfb,0x12,0xa1,0x4b,0xbe,0x34,0x0, 0x5, 0x58,0x2, +0x80,0x4e,0x6c,0xff,0x80,0x30,0x7c,0xbf,0x12,0x37,0x81,0x1a,0x4b,0x7c,0xbf,0x12, +0x37,0x6f,0x7d,0x5d,0x3e,0x54,0xbd,0x54,0x58,0x4, 0xd2,0x9, 0x80,0xa, 0x7d,0x5d, +0xe, 0x54,0xbd,0x54,0x48,0x2, 0xc2,0x9, 0x20,0x9, 0x4, 0xbd,0xd4,0x58,0x5, 0x75, +0x1e,0x28,0x80,0xf, 0xb, 0xf0,0x12,0x52,0x66,0x38,0xcb,0x80,0x6, 0xe5,0x1e,0x24, +0xfb,0xf5,0x1e,0xe5,0x1e,0xbe,0xb0,0x0, 0x8, 0x6, 0xd2,0x8, 0x15,0x1e,0x80,0x5, +0x75,0x1e,0x0, 0xc2,0x8, 0xda,0xf8,0x22,0x7e,0x39,0x70,0xa, 0x37,0x9d,0x32,0x2, +0x21,0x0, 0xca,0x3b,0xf5,0x2a,0x7f,0x31,0x7a,0xd, 0x26,0xe4,0x7a,0xb3,0x22,0xf6, +0x7a,0xb3,0x22,0xf7,0x7a,0xb3,0x22,0xf8,0x7e,0x34,0x3, 0xe8,0x7a,0x37,0x22,0xfd, +0x74,0x3c,0x7a,0xb3,0x22,0xf5,0x75,0x2f,0x46,0x75,0x2b,0x0, 0x61,0x43,0x12,0xa4, +0xde,0x28,0x1e,0x7e,0x34,0x0, 0x44,0xca,0x39,0x7e,0x71,0x2b,0x74,0x44,0xac,0x7b, +0x2e,0x34,0x14,0x6, 0x7e,0x24,0x0, 0xff,0x7e,0x8, 0x22,0xff,0x12,0x20,0xb9,0x1b, +0xfd,0x6d,0x33,0x7a,0x37,0x22,0xf9,0x7a,0x35,0x30,0x7a,0x37,0x22,0xfb,0x7a,0x35, +0x32,0x7a,0x35,0x34,0x7e,0x34,0x22,0xff,0x7a,0x35,0x36,0x7e,0x34,0x23,0x1f,0x7a, +0x35,0x38,0x75,0x2c,0x0, 0x80,0x59,0xe5,0x2c,0xa, 0x3b,0x7e,0xd, 0x26,0x12,0xa4, +0xe6,0x2e,0x35,0x36,0x12,0xa1,0x48,0x7d,0xd3,0x7e,0xc7,0x22,0xfb,0xbd,0xcd,0x58, +0x4, 0x7a,0xd7,0x22,0xfb,0xe5,0x2c,0xa, 0x3b,0x7f,0x3, 0x12,0xa4,0xe6,0x2e,0x35, +0x38,0x12,0xa1,0x48,0x7d,0xc3,0x7e,0x35,0x32,0xbd,0x3c,0x58,0x3, 0x7a,0xc5,0x32, +0x7e,0x37,0x22,0xf9,0x2d,0x3d,0x7a,0x37,0x22,0xf9,0x7d,0x3c,0x2e,0x35,0x30,0x7a, +0x35,0x30,0x2d,0xcd,0x7e,0x35,0x34,0xbd,0x3c,0x58,0x3, 0x7a,0xc5,0x34,0x5, 0x2c, +0xe5,0x2a,0xbe,0xb1,0x2c,0x38,0xa0,0xe5,0x2a,0xb4,0xa, 0x2a,0x7e,0x37,0x22,0xfb, +0xbe,0x34,0x0, 0x40,0x48,0xb, 0x7e,0x25,0x32,0xbe,0x24,0x0, 0x40,0x48,0x2, 0x61, +0x41,0xbe,0x34,0x0, 0x60,0x8, 0x2, 0x61,0x41,0x7e,0x35,0x32,0xbe,0x34,0x0, 0x60, +0x8, 0x2, 0x61,0x41,0x80,0x28,0x7e,0x37,0x22,0xfb,0xbe,0x34,0x0, 0x20,0x8, 0xb, +0x7e,0x25,0x32,0xbe,0x24,0x0, 0x20,0x8, 0x2, 0x61,0x41,0xbe,0x34,0x0, 0x30,0x8, +0x2, 0x61,0x41,0x7e,0x35,0x32,0xbe,0x34,0x0, 0x30,0x8, 0x2, 0x61,0x41,0x7e,0xa3, +0x38,0x41,0x74,0xc, 0xa4,0xbe,0x57,0x22,0xf9,0x58,0x2, 0x61,0x41,0x7e,0xa3,0x38, +0x42,0x74,0xc, 0xa4,0xbe,0x55,0x30,0x58,0x2, 0x61,0x41,0x7e,0x15,0x36,0x6d,0x0, +0x7e,0x1d,0x26,0xe5,0x2a,0x12,0xa3,0x7e,0x7a,0xb3,0x22,0xf4,0x7e,0x15,0x38,0x6d, +0x0, 0x7f,0x13,0xe5,0x2a,0x12,0xa3,0x7e,0xf5,0x2d,0x7e,0x73,0x22,0xf5,0xbe,0x73, +0x22,0xf4,0x38,0x7d,0xbe,0x71,0x2d,0x38,0x78,0xe5,0x2d,0x7e,0x31,0x2d,0xac,0x3b, +0x1a,0x2, 0x1a,0x0, 0x7e,0x73,0x22,0xf4,0xac,0x77,0x1a,0x26,0x1a,0x24,0x2f,0x10, +0xe5,0x2d,0xa, 0x5b,0x6d,0x44,0x7e,0x33,0x22,0xf4,0xa, 0x13,0x6d,0x0, 0x2f,0x2, +0x12,0x1f,0x7, 0x7c,0xb7,0xf5,0x2e,0xe5,0x2f,0xbe,0xb1,0x2e,0x38,0x43,0x7e,0x37, +0x22,0xfb,0x2e,0x35,0x32,0x2e,0x35,0x34,0x7a,0x35,0x3a,0xe5,0x2e,0xa, 0x2b,0x7e, +0x34,0x0, 0x64,0x9d,0x32,0x3e,0x34,0x2e,0x35,0x3a,0x7a,0x35,0x3a,0x7e,0x37,0x22, +0xfd,0xbe,0x35,0x3a,0x8, 0x1b,0x7e,0x35,0x3a,0x7a,0x37,0x22,0xfd,0xe5,0x2e,0x7a, +0xb3,0x22,0xf7,0x7e,0x73,0x23,0x41,0x7a,0x73,0x22,0xf8,0xe5,0x2b,0x7a,0xb3,0x22, +0xf6,0x5, 0x2b,0x12,0xa4,0xde,0x28,0x2, 0x21,0x7e,0x7e,0xa3,0x22,0xf7,0xbe,0xa1, +0x2f,0x40,0x20,0x7e,0xb3,0x22,0xf8,0xbe,0xb0,0x0, 0x28,0x17,0xbe,0xb0,0xff,0x50, +0x12,0x7e,0x73,0x22,0xf6,0xa, 0x37,0xb, 0x34,0x7a,0x73,0x38,0x3e,0x7a,0xb3,0x38, +0x40,0x80,0x6, 0x74,0x7c,0x7a,0xb3,0x38,0x3e,0x7c,0xba,0xda,0x3b,0x22,0xca,0x3b, +0x7c,0xfb,0x7f,0x61,0x7f,0x40,0x9f,0x11,0x7f,0x51,0x7f,0x71,0x7a,0x1d,0x3c,0x7a, +0x1d,0x40,0x7a,0x1d,0x44,0xbe,0xf0,0xa, 0x78,0x6, 0x7e,0x54,0x1, 0x3c,0x80,0x4, +0x7e,0x54,0x2, 0x35,0x7a,0x57,0x23,0x43,0x6c,0xee,0x80,0x60,0xa, 0x5e,0x7f,0x14, +0x12,0xa4,0xd6,0x7a,0x55,0x4a,0xa, 0x5e,0x7f,0x16,0x12,0xa4,0xd6,0x7a,0x55,0x48, +0x7e,0x35,0x48,0x12,0xa4,0xcf,0x2f,0x50,0x7e,0x65,0x4a,0x7d,0x16,0x1a,0x2, 0x1a, +0x0, 0x2f,0x70,0x12,0xa4,0xcf,0x12,0xa4,0xc5,0x7e,0x1d,0x3c,0x2f,0x10,0x7a,0x1d, +0x3c,0x7d,0x16,0x1a,0x2, 0x1a,0x0, 0x7e,0x35,0x4a,0x12,0xa4,0xc5,0x7e,0x1d,0x40, +0x2f,0x10,0x7a,0x1d,0x40,0x7e,0x15,0x4a,0x1a,0x2, 0x1a,0x0, 0x7e,0x35,0x48,0x12, +0xa4,0xc5,0x7e,0x1d,0x44,0x2f,0x10,0x7a,0x1d,0x44,0xb, 0xe0,0xbc,0xfe,0x38,0x9c, +0xa, 0xdf,0x6d,0xcc,0x7f,0x15,0x7f,0x6, 0x12,0x1f,0x58,0x7f,0x51,0x7f,0x17,0x7f, +0x6, 0x12,0x1f,0x58,0x7f,0x71,0x7e,0x94,0x0, 0x64,0x7e,0x1d,0x3c,0x7d,0x19,0x12, +0x1e,0xfc,0x7e,0x87,0x23,0x43,0x7d,0x18,0x7d,0xd8,0x1a,0x12,0x1a,0xc2,0x7f,0x6, +0x12,0x1f,0x58,0x7a,0x1d,0x3c,0x7e,0x1d,0x40,0x7d,0x19,0x12,0x1e,0xfc,0x7f,0x6, +0x12,0x1f,0x58,0x7a,0x1d,0x40,0x7e,0x1d,0x44,0x7d,0x19,0x12,0x1e,0xfc,0x7d,0x18, +0x1a,0x2, 0x1a,0x0, 0x12,0x1f,0x58,0x7a,0x1d,0x44,0x7f,0x15,0x7f,0x7, 0x12,0x1e, +0xeb,0x7e,0x6d,0x44,0x9f,0x61,0x7f,0x15,0x7f,0x5, 0x12,0x1e,0xeb,0x7e,0x5d,0x3c, +0x9f,0x51,0x7f,0x17,0x7f,0x7, 0x12,0x1e,0xeb,0x7e,0x7d,0x40,0x9f,0x71,0xbe,0x58, +0x0, 0x0, 0x68,0x6, 0xbe,0x78,0x0, 0x0, 0x78,0x6, 0x7e,0x44,0x0, 0x64,0x80,0x18, +0x7f,0x16,0x7d,0x19,0x12,0x1e,0xfc,0x7f,0x5, 0x12,0x1f,0x58,0x7f,0x6, 0x12,0x1e, +0xeb,0x7f,0x7, 0x12,0x1f,0x58,0x7d,0x43,0xbe,0x44,0x0, 0x0, 0x18,0x2, 0x6d,0x44, +0x7c,0xb9,0xda,0x3b,0x22,0x1a,0x26,0x1a,0x24,0x12,0x1e,0xeb,0x7f,0x1, 0x22,0x7d, +0x13,0x1a,0x2, 0x1a,0x0, 0x22,0x2d,0x35,0x7e,0x1b,0x70,0xa, 0x57,0x22,0x7e,0x73, +0x39,0x1, 0xbe,0x71,0x2b,0x22,0x2d,0x13,0x7e,0xb, 0x50,0xa, 0x25,0x22,0xca,0x79, +0x6c,0xaa,0x12,0xa5,0xe4,0xb, 0x7a,0xf0,0x7d,0x7f,0x7c,0xbf,0xa, 0xfa,0x19,0xbf, +0x38,0x43,0x7f,0x71,0x2d,0xf4,0xb, 0x7a,0x40,0x7c,0xb9,0xa, 0x4a,0x19,0xb4,0x38, +0x63,0xb, 0xa0,0xbe,0xa0,0x20,0x40,0xda,0x7e,0x8, 0x38,0x43,0x7e,0x18,0x38,0x63, +0x74,0x20,0x12,0xa1,0x52,0xda,0x79,0x22,0xca,0x3b,0x7f,0x61,0x7f,0x50,0x7e,0x73, +0x38,0x3f,0xbe,0x70,0x20,0x40,0x52,0x7e,0xf0,0x2, 0x80,0x3c,0xa, 0x3f,0x6d,0x22, +0x74,0x5, 0x2f,0x11,0x14,0x78,0xfb,0x7e,0x33,0x38,0x3f,0xa, 0x13,0x6d,0x0, 0x12, +0x1f,0x7, 0x7c,0xe7,0xbe,0xe0,0x2, 0x50,0x3, 0x7e,0xe0,0x2, 0xa, 0x6f,0x1b,0x64, +0xa, 0x3e,0x1b,0x34,0x7c,0xc7,0x7f,0x5, 0x7c,0xbd,0x12,0xa5,0x92,0x7f,0x6, 0x7c, +0xbd,0x7c,0x7c,0x12,0xa5,0x92,0xb, 0xf0,0x7e,0x73,0x38,0x3f,0xbc,0x7f,0x50,0xbc, +0x7f,0x5, 0x7f,0x16,0x12,0xa4,0xee,0x80,0x6, 0x74,0x7e,0x7a,0xb3,0x38,0x3e,0xda, +0x3b,0x22,0x7c,0x97,0x7c,0xab,0x7f,0x10,0x7e,0x30,0x2, 0xac,0x3a,0x2d,0x13,0x7d, +0x2, 0xb, 0xa, 0x10,0x7e,0x10,0x2, 0xac,0x19,0x7f,0x71,0x2d,0xf0,0xb, 0x7a,0x0, +0x7c,0x21,0xa5,0xba,0x0, 0x14,0x1a,0x3, 0x1b,0x7a,0x0, 0xbc,0x9a,0x68,0x24,0x6d, +0x44,0x74,0x2, 0xa4,0x2d,0x35,0x1b,0x1a,0x40,0x22,0xbc,0x9a,0x68,0x15,0x1a,0x2, +0x1a,0x13,0x2d,0x10,0xe, 0x14,0x1b,0x7a,0x10,0x6d,0x11,0x74,0x2, 0xa4,0x2d,0x35, +0x1b,0x1a,0x10,0x22,0x7e,0x90,0x2, 0xac,0x9a,0x7f,0x70,0x2d,0xf4,0x22,0xe4,0x7a, +0xb3,0x35,0x69,0x7e,0xb3,0x28,0x84,0x60,0x6, 0x7e,0xb3,0x35,0xe2,0x60,0x5, 0xe4, +0x7a,0xb3,0x35,0xe4,0x22,0x7e,0xa0,0x1, 0x7e,0x37,0x2a,0x4f,0x12,0xa6,0x4e,0x28, +0x35,0x6d,0x22,0x9d,0x23,0xbe,0x27,0x7, 0xf8,0x58,0x2b,0x12,0x8f,0xdc,0xbe,0x37, +0x7, 0xfa,0x8, 0x22,0xe4,0x7a,0xb3,0x28,0x84,0x7e,0xb3,0x2a,0x3, 0x70,0x17,0x7e, +0xb3,0x37,0x8, 0xb4,0x1, 0x10,0x6c,0xaa,0x5, 0x1f,0xe5,0x1f,0xbe,0xb0,0x10,0x28, +0x5, 0xd2,0x11,0x75,0x1f,0x0, 0x4c,0xaa,0x68,0x3, 0x75,0x1f,0x0, 0x22,0x7e,0xb3, +0x28,0x84,0xbe,0xb0,0x0, 0x22,0xca,0x3b,0x7f,0x61,0x7f,0x50,0x7e,0x73,0x2a,0x6e, +0xa, 0x37,0x3e,0x34,0xca,0x39,0x7f,0x16,0x7f,0x5, 0x12,0x20,0xb9,0x1b,0xfd,0x6c, +0xdd,0x12,0xa7,0x10,0x7a,0xb3,0x1f,0x6c,0x6c,0xcc,0x80,0x4a,0x12,0xa6,0xff,0x78, +0x43,0x74,0x2, 0xac,0xbc,0x7f,0x16,0x2d,0x35,0xb, 0x1a,0xe0,0x7d,0x3f,0x12,0x21, +0x0, 0x7d,0x13,0x7d,0x3e,0x12,0x21,0x0, 0xbd,0x31,0x58,0x2, 0x7d,0xfe,0xbe,0xe5, +0x2e,0x8, 0x5, 0x7e,0xe5,0x2e,0x80,0xb, 0x6d,0x33,0x9e,0x35,0x2e,0xbd,0x3e,0x8, +0x2, 0x7d,0xe3,0x7d,0x3e,0x1a,0x26,0x1a,0x24,0x2f,0x41,0x7e,0xb3,0x1f,0x6c,0x4, +0x7a,0xb3,0x1f,0x6c,0xb, 0xc0,0x7e,0x73,0x2a,0x70,0xbc,0x7c,0x38,0xae,0x7e,0x73, +0x1f,0x6c,0x4c,0x77,0x68,0x1d,0x12,0xa7,0x2d,0x8, 0x2, 0x7d,0x7f,0x6c,0xcc,0x80, +0xa, 0x12,0xa6,0xff,0x78,0x3, 0x12,0xa7,0x18,0xb, 0xc0,0x7e,0x73,0x2a,0x70,0xbc, +0x7c,0x38,0xee,0xb, 0xd0,0xbe,0xd0,0x2, 0x50,0x2, 0xc1,0x71,0xda,0x3b,0x22,0xa, +0xec,0x9, 0x7e,0x2a,0xdc,0xa, 0x37,0x5e,0x34,0x0, 0x1, 0xa, 0xed,0xbd,0x3e,0x22, +0x7e,0xf4,0x7f,0xff,0x9f,0x44,0xe4,0x22,0x74,0x2, 0xac,0xbc,0x7f,0x16,0x2d,0x35, +0xb, 0x1a,0xe0,0x9d,0xe7,0x7f,0x15,0x2d,0x35,0x1b,0x1a,0xe0,0x22,0xa, 0x17,0x6d, +0x0, 0x7f,0x14,0x12,0x1f,0x58,0x7d,0x73,0x12,0x21,0x0, 0x7d,0xe3,0x7d,0x3f,0x12, +0x21,0x0, 0xbd,0x3e,0x22,0x7e,0x63,0x2a,0x6e,0x90,0x60,0xa7,0xe4,0x93,0x60,0x6c, +0xc2,0x12,0x6c,0x33,0x80,0x56,0x90,0x60,0xaa,0xe4,0x93,0x70,0x13,0x7c,0x96,0xac, +0x93,0x90,0x60,0xab,0xe4,0x93,0xa, 0x5b,0x1b,0x54,0x2d,0x45,0x7d,0xd4,0xb, 0xd4, +0x7d,0x54,0x3e,0x54,0x7e,0x7f,0x13,0x8a,0x2d,0xf5,0xb, 0x7a,0x50,0xbe,0x57,0x2a, +0x5a,0x8, 0x27,0x7c,0xb3,0x12,0x31,0x5a,0x50,0x20,0x7d,0x5d,0x3e,0x54,0x7e,0x7f, +0x13,0x8a,0x7f,0x57,0x2d,0xb5,0xb, 0x5a,0xc0,0x7d,0x54,0x3e,0x54,0x2d,0xf5,0xb, +0x7a,0x50,0xbd,0x5c,0x8, 0x4, 0xd2,0x12,0x80,0xa, 0xb, 0x30,0x7e,0x73,0x2a,0x75, +0xbc,0x73,0x38,0xa2,0x30,0x12,0x5, 0xd2,0x3, 0x2, 0x32,0xe7,0x22,0x90,0x60,0xa7, +0xe4,0x93,0x60,0x8, 0x30,0x12,0x5, 0x12,0x31,0x7d,0xc2,0x12,0x22,0xca,0xd8,0xca, +0x79,0x7c,0xfb,0x7f,0x70,0xc2,0x3, 0x6c,0xdd,0x6d,0xdd,0x7e,0x34,0x22,0xe6,0x7e, +0x24,0x0, 0xff,0x7e,0x14,0x1f,0x34,0x74,0xc, 0x12,0x1f,0xad,0x6d,0x11,0x7e,0x4, +0x7f,0xff,0x6c,0xee,0x80,0x13,0x12,0xa8,0xe1,0x7d,0xc3,0xbd,0xdc,0x50,0x2, 0x7d, +0xdc,0xbd,0xc, 0x28,0x2, 0x7d,0xc, 0xb, 0xe0,0xbc,0xfe,0x38,0xe9,0xbe,0xd4,0x0, +0x1e,0x58,0xa, 0x7e,0xb3,0x28,0x94,0x70,0x4, 0x6d,0x33,0x1, 0xd2,0xbe,0xd4,0x4, +0xb0,0x8, 0x2, 0xd2,0x3, 0x6c,0xee,0x74,0x4, 0xac,0xbe,0x49,0x45,0x1f,0x34,0xbd, +0x4d,0x58,0x6, 0x49,0xd5,0x1f,0x36,0x80,0x7, 0xb, 0xe0,0xbe,0xe0,0x3, 0x40,0xe7, +0xbe,0xe0,0x3, 0x78,0x4, 0x6d,0x33,0x1, 0xd2,0xbd,0xd, 0x8, 0x5, 0x30,0x3, 0x2, +0x7d,0xd0,0x9f,0x55,0x6c,0xee,0x80,0xb, 0x12,0xa8,0xe1,0x1a,0x26,0x1a,0x24,0x2f, +0x51,0xb, 0xe0,0xbc,0xfe,0x38,0xf1,0xa, 0x1f,0x12,0xa8,0xd7,0x9f,0x55,0x6c,0xee, +0x80,0x22,0x74,0x2, 0xac,0xbe,0x7f,0x17,0x2d,0x35,0xb, 0x1a,0x90,0x7d,0x39,0x12, +0x21,0x0, 0x7d,0xc3,0xbd,0x1c,0x28,0xa, 0x7d,0x39,0x1a,0x26,0x1a,0x24,0x2f,0x51, +0xb, 0xd0,0xb, 0xe0,0xbc,0xfe,0x38,0xda,0x6d,0x11,0xbe,0xd0,0x0, 0x28,0x5, 0xa, +0x1d,0x12,0xa8,0xd7,0xbd,0x1d,0x8, 0x4, 0x7d,0x1d,0x80,0xa, 0x6d,0x0, 0x9d,0xd, +0xbd,0x1, 0x8, 0x2, 0x7d,0x10,0x6c,0xee,0x80,0x12,0x74,0x2, 0xac,0xbe,0x7f,0x17, +0x2d,0x35,0xb, 0x1a,0x0, 0x9d,0x1, 0x1b,0x1a,0x0, 0xb, 0xe0,0xbc,0xfe,0x38,0xea, +0x7d,0x31,0xda,0x79,0xda,0xd8,0x22,0x6d,0x0, 0x7f,0x15,0x12,0x1f,0x58,0x7d,0x13, +0x22,0x74,0x2, 0xac,0xbe,0x7f,0x17,0x2d,0x35,0xb, 0x1a,0x30,0x2, 0x21,0x0, 0xca, +0xf8,0x7f,0x71,0x6d,0xdd,0x6c,0xaa,0x7e,0xf0,0x80,0xc2,0x3, 0x6d,0x44,0x80,0x32, +0x12,0xa9,0x90,0x12,0xa8,0xe9,0xbd,0x3d,0x48,0x26,0x12,0xa9,0x90,0xb, 0x1a,0x30, +0xbe,0x34,0x0, 0x0, 0x8, 0x4, 0xd2,0x3, 0x80,0x9, 0x12,0x21,0x0, 0xbd,0x3d,0x68, +0x2, 0xc2,0x3, 0x7d,0x34,0x3e,0x34,0x2d,0x3f,0x7d,0x2e,0x12,0xa8,0xe9,0x7d,0xd3, +0xb, 0x44,0x7e,0xc5,0x35,0xbd,0xc4,0x38,0xc7,0x30,0x3, 0xc, 0x7e,0xf0,0x7f,0x80, +0x7, 0xb, 0xa0,0xbe,0xa0,0x8, 0x50,0x11,0x7c,0xba,0x7d,0x3d,0x60,0x5, 0xe, 0x34, +0x14,0x78,0xfb,0xa, 0xcf,0xbd,0x3c,0x18,0xe8,0x7f,0x10,0x2e,0x35,0x35,0x7a,0x1b, +0xa0,0x6d,0x44,0x80,0x21,0x7d,0x54,0x3e,0x54,0x7f,0x17,0x2d,0x35,0xb, 0x1a,0x30, +0x7f,0x60,0x2e,0xd5,0x35,0x7e,0x6b,0xb0,0x60,0x5, 0xe, 0x34,0x14,0x78,0xfb,0x7c, +0xb7,0x12,0xa9,0x9b,0xb, 0x44,0x7e,0x55,0x35,0xbd,0x54,0x38,0xd8,0xda,0xf8,0x22, +0x7d,0xc4,0x3e,0xc4,0x7f,0x17,0x2d,0x3c,0x22,0xa, 0x4a,0x7f,0x10,0x2d,0x34,0x7a, +0x1b,0xb0,0x22,0xd2,0xc9,0x75,0xf2,0x30,0x75,0xf3,0x80,0x75,0xf4,0xc, 0x75,0xf5, +0x1, 0x6c,0xaa,0xe5,0xf5,0x54,0x80,0xb4,0x80,0xf9,0xe5,0xf6,0x12,0xa9,0x99,0xb, +0xa0,0xbe,0xa0,0xd, 0x40,0xed,0xc2,0xc9,0x22,0x90,0x60,0x93,0xe4,0x93,0xa, 0xb, +0x7e,0x73,0x2a,0x71,0xa, 0x17,0x2d,0x10,0x7e,0xa3,0x2a,0x6e,0xa, 0x3a,0xad,0x13, +0x7d,0x21,0x6c,0x33,0x80,0x20,0xa, 0x3, 0x2d,0x2, 0x3e,0x4, 0x7e,0x7f,0x38,0xd9, +0x2d,0xf0,0xb, 0x7a,0x0, 0x7e,0x90,0x2, 0xac,0x93,0x49,0xf4,0x13,0x8e,0x9d,0xf, +0x59,0x4, 0x25,0xb6,0xb, 0x30,0xbc,0xa3,0x38,0xdc,0x7a,0x35,0x35,0x7e,0xf, 0x37, +0x40,0x7e,0x18,0x25,0xb6,0x2, 0xa8,0xef,0x7e,0xb3,0x2b,0x1d,0xb4,0x1, 0x31,0x12, +0xaa,0x51,0x7e,0x1f,0x38,0xd9,0x7a,0x37,0x24,0xfa,0x7e,0x34,0xd, 0xc8,0x7a,0x37, +0x24,0xf6,0x12,0xaa,0x58,0x12,0xaa,0x61,0xe4,0x7a,0xb3,0x24,0xf5,0x7e,0x34,0x0, +0x20,0x7a,0x37,0x24,0xfc,0x7a,0xb3,0x24,0xf4,0x7e,0x8, 0x24,0xf2,0x2, 0xd, 0x7, +0x22,0xa9,0xd1,0xcb,0xe4,0x2, 0x0, 0xe, 0x7e,0x73,0x2a,0x6d,0x7a,0x73,0x24,0xf2, +0x22,0x7e,0x73,0x2a,0x6e,0x7a,0x73,0x24,0xf3,0x22,0x7e,0x43,0x2a,0x6e,0x7e,0x53, +0x2a,0x6d,0xac,0x54,0x7e,0x17,0x28,0xa1,0x12,0xaa,0x51,0x6d,0x0, 0x80,0x37,0x7d, +0x40,0x3e,0x44,0x7e,0x7f,0x38,0xd9,0x2d,0xf4,0xb, 0x7a,0x30,0xbd,0x13,0x58,0x10, +0x7d,0xf4,0x2e,0xf4,0x8, 0xa, 0xb, 0xf8,0x50,0x9d,0x51,0x1b,0xf8,0x50,0x80,0x14, +0x6d,0x55,0x9d,0x51,0xbd,0x53,0x8, 0xc, 0x2e,0x44,0x8, 0xa, 0xb, 0x48,0x50,0x2d, +0x51,0x1b,0x48,0x50,0xb, 0x4, 0xbd,0x20,0x38,0xc5,0x22,0x7c,0xab,0x7e,0x8, 0x29, +0xbc,0x12,0x5e,0x25,0x28,0x1f,0xa, 0x3a,0x7f,0x70,0x2d,0xf3,0x7e,0x7b,0xb0,0xb4, +0x2, 0x4, 0x74,0x1, 0x80,0x2, 0x74,0x3, 0x7a,0x7b,0xb0,0x74,0x3, 0x2d,0x31,0x7d, +0x20,0x39,0xb1,0x0, 0xa, 0x22,0xca,0xd8,0xca,0x79,0x7e,0x34,0x61,0x43,0x7e,0x24, +0x0, 0xff,0xb, 0x1a,0x40,0x90,0x61,0x35,0xe4,0x93,0x70,0x2, 0x61,0x96,0x90,0x60, +0xa7,0xe4,0x93,0x70,0x2, 0x61,0x96,0x6c,0xff,0x61,0x8f,0x7e,0x70,0x9, 0xac,0x7f, +0x9, 0xe3,0x29,0xc, 0x5e,0xe0,0xf, 0x49,0xc3,0x29,0xa, 0x7e,0x14,0x60,0xd1,0x7e, +0x4, 0x0, 0xff,0xb, 0xa, 0x20,0x2d,0x24,0xbd,0xc2,0x40,0x42,0x49,0xd3,0x29,0x8, +0x7d,0x3d,0x12,0xab,0xa4,0x7c,0xdb,0x90,0x60,0xa7,0xe4,0x93,0xbc,0xbd,0x38,0xe, +0x7d,0x34,0x1b,0x34,0x12,0xab,0x9b,0x7c,0xbe,0x12,0xaa,0xbb,0x80,0x3f,0x7e,0x70, +0x2, 0xac,0x7d,0x2e,0x34,0x60,0xc5,0x12,0x87,0xbc,0x74,0x9, 0xac,0xbf,0x59,0xd5, +0x29,0x8, 0x7e,0x34,0x60,0xcf,0x12,0x23,0x9e,0x12,0xab,0x9b,0x80,0x1f,0xbd,0xc4, +0x40,0x1b,0x7d,0x54,0x2e,0x54,0x0, 0xa, 0xbd,0xc5,0x40,0x5, 0x7c,0xbe,0x12,0xaa, +0xbb,0x7d,0xc4,0x1b,0xc4,0x74,0x9, 0xac,0xbf,0x59,0xc5,0x29,0xa, 0xb, 0xf0,0x12, +0x5e,0x2d,0x28,0x2, 0x61,0xb, 0xda,0x79,0xda,0xd8,0x22,0x74,0x9, 0xac,0xbf,0x59, +0x35,0x29,0xa, 0x22,0x6c,0xaa,0x80,0x27,0x7e,0x30,0x4, 0xac,0x3a,0x7d,0xf1,0x2e, +0xf4,0x60,0xb1,0x7e,0xe4,0x0, 0xff,0xb, 0x7a,0x20,0xbd,0x23,0x38,0xf, 0x2e,0x14, +0x60,0xb3,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0x20,0xbd,0x23,0x50,0xb, 0xb, 0xa0,0x90, +0x60,0xa7,0xe4,0x93,0xbc,0xba,0x38,0xd0,0x7c,0xba,0x22,0x90,0x60,0xa7,0xe4,0x93, +0x60,0x2b,0x6c,0x33,0x80,0x1f,0x7c,0xb3,0x12,0x31,0x5a,0x40,0x16,0x7c,0xb3,0x12, +0x31,0x27,0x7d,0x43,0x6d,0x55,0x7d,0x4, 0x3e,0x4, 0x7e,0x1f,0x13,0x8a,0x2d,0x30, +0x1b,0x1a,0x50,0xb, 0x30,0x7e,0x23,0x2a,0x75,0xbc,0x23,0x38,0xd9,0x22,0x12,0xac, +0x20,0x7e,0x14,0x62,0x7, 0x12,0x87,0xee,0x28,0x3, 0xd2,0x13,0x22,0xc2,0x13,0x22, +0x6d,0x11,0xe4,0x12,0x0, 0x1e,0x6c,0xaa,0x80,0x5b,0x7e,0x10,0x2, 0xac,0x1a,0x7e, +0x7f,0x38,0xf3,0x2d,0xf0,0x69,0x27,0x1, 0x0, 0x69,0x37,0x0, 0x80,0x9d,0x32,0x12, +0x21,0x0, 0xbd,0x31,0x28,0x16,0x7e,0x70,0x2, 0xac,0x7a,0x7e,0xf, 0x38,0xf3,0x2d, +0x13,0x69,0x20,0x1, 0x0, 0x69,0x30,0x0, 0x80,0x12,0x81,0xbf,0x7e,0x10,0x2, 0xac, +0x1a,0x7e,0x1f,0x38,0xf3,0x2d,0x30,0x69,0x1, 0x0, 0x80,0xbe,0x4, 0x7f,0xff,0x78, +0x4, 0x7e,0x14,0x7f,0xff,0x69,0x1, 0x1, 0x0, 0xbe,0x4, 0x7f,0xff,0x78,0x4, 0x7e, +0x14,0x7f,0xff,0xb, 0xa0,0x7e,0xb3,0x2a,0x74,0xbc,0xba,0x38,0x9d,0x7d,0x31,0x22, +0x6c,0x66,0x7e,0x27,0x39,0x4, 0xbe,0x24,0x3, 0xe8,0x28,0x3, 0x7e,0x60,0x8, 0x7e, +0xb3,0x28,0xac,0xb4,0x1, 0x1a,0x7e,0x73,0x2f,0xab,0xbc,0x76,0x50,0xf, 0xe4,0x7a, +0xb3,0x28,0xad,0x12,0x8a,0x87,0x7e,0xb3,0x2f,0xab,0x4, 0x80,0x4, 0xe4,0x80,0x1, +0xe4,0x7a,0xb3,0x2f,0xab,0x7e,0xb3,0x28,0xad,0xb4,0x1, 0x17,0x7e,0xa3,0x2f,0xac, +0xbe,0xa0,0x5, 0x50,0xa, 0xe4,0x7a,0xb3,0x28,0xad,0x7c,0xba,0x4, 0x80,0x5, 0x74, +0x5, 0x80,0x1, 0xe4,0x7a,0xb3,0x2f,0xac,0x22,0x6c,0xaa,0x80,0x26,0x7e,0x50,0x2, +0xac,0x5a,0x49,0x12,0x5, 0xf8,0x49,0x32,0x4, 0x0, 0x2d,0x31,0x59,0x32,0x5, 0xf8, +0x30,0x1, 0xe, 0x49,0x12,0x4, 0x7e,0x49,0x32,0x6, 0x76,0x2d,0x31,0x59,0x32,0x6, +0x76,0xb, 0xa0,0x7e,0xb3,0x2a,0x74,0xa, 0x3b,0x7e,0xb3,0x2a,0x73,0xa, 0x2b,0x2d, +0x23,0xa, 0x3a,0xbd,0x32,0x48,0xc6,0x22,0xd2,0x3, 0x6c,0xaa,0x6c,0x77,0x80,0x1f, +0x7e,0x63,0x2a,0x6e,0xa, 0x16,0xa, 0x27,0x2d,0x21,0x7c,0x65,0x7e,0x50,0x2, 0xac, +0x56,0x49,0x22,0x5, 0x7a,0xbe,0x24,0xfe,0xc, 0x58,0x2, 0xb, 0xa0,0xb, 0x70,0x7e, +0xb3,0x2a,0x6d,0xbc,0xb7,0x38,0xd9,0xa, 0x2b,0x1e,0x24,0xa, 0x3a,0xbd,0x32,0x8, +0x2, 0xc2,0x3, 0xa2,0x3, 0x22,0xc2,0x3, 0x7e,0xa3,0x2a,0x70,0x7e,0xb3,0x26,0xf1, +0x60,0x4, 0xd2,0x3, 0x80,0x33,0x7e,0x70,0x2, 0x80,0x22,0x7e,0x50,0x2, 0xac,0x57, +0x49,0x12,0x4, 0xfc,0x7e,0xf4,0x61,0x59,0x7e,0xe4,0x0, 0xff,0xb, 0x7a,0x0, 0x6d, +0x22,0x9d,0x20,0xbd,0x12,0x58,0x4, 0xd2,0x3, 0x80,0xe, 0xb, 0x70,0xa, 0x1a,0x9e, +0x14,0x0, 0x3, 0xa, 0x27,0xbd,0x21,0x48,0xd2,0xa2,0x3, 0x22,0x7d,0x23,0x7e,0x14, +0x61,0xc8,0x12,0x64,0xd3,0x7e,0x14,0x0, 0x5, 0xad,0x13,0x1e,0x14,0xbd,0x12,0x50, +0xd, 0x7e,0x33,0x36,0xdc,0xbe,0x30,0x8, 0x50,0x45,0x74,0x8, 0x80,0x3d,0x7d,0x13, +0x3e,0x14,0xbd,0x12,0x50,0xd, 0x7e,0x33,0x36,0xdc,0xbe,0x30,0x6, 0x50,0x30,0x74, +0x6, 0x80,0x28,0x7e,0x14,0x0, 0x3, 0xad,0x13,0x1e,0x14,0xbd,0x12,0x50,0xd, 0x7e, +0x33,0x36,0xdc,0xbe,0x30,0x4, 0x50,0x17,0x74,0x4, 0x80,0xf, 0xbd,0x32,0x50,0xf, +0x7e,0x73,0x36,0xdc,0xbe,0x70,0x2, 0x50,0x6, 0x74,0x2, 0x7a,0xb3,0x36,0xdc,0x7e, +0xb3,0x36,0xdc,0xbe,0xb0,0x0, 0x28,0x1b,0x14,0x7a,0xb3,0x36,0xdc,0x74,0x1, 0x7a, +0xb3,0x16,0x92,0x90,0x61,0xfd,0xe4,0x93,0xbe,0xb3,0x36,0xdc,0x50,0x5, 0xe4,0x7a, +0xb3,0x16,0x91,0x22,0x7c,0x3b,0x7e,0x44,0xff,0xff,0x6c,0x22,0x80,0x2a,0x12,0xae, +0xad,0x68,0x23,0x7e,0x70,0xc, 0xac,0x72,0x12,0xae,0xc5,0x7d,0x23,0x7e,0x70,0xc, +0xac,0x72,0x59,0x23,0x36,0x82,0x49,0x3, 0x36,0x82,0x49,0x23,0x36,0x7e,0xbd,0x20, +0x50,0x4, 0x59,0x3, 0x36,0x7e,0xb, 0x20,0xbc,0x32,0x50,0xd2,0x6c,0xaa,0x6c,0x22, +0x80,0x18,0x12,0xae,0xad,0x68,0x11,0x7e,0x70,0xc, 0xac,0x72,0x49,0x3, 0x36,0x7e, +0xbd,0x4, 0x50,0x4, 0x7d,0x40,0x7c,0xa2,0xb, 0x20,0xbc,0x32,0x50,0xe4,0x7e,0x37, +0x36,0x64,0xbe,0x37,0x36,0xdd,0x50,0x8, 0x7e,0x37,0x36,0xdd,0x7a,0x37,0x36,0x64, +0x12,0xae,0xbb,0x4d,0x33,0x78,0x3, 0x7e,0xa0,0xff,0x7c,0xba,0x22,0x7e,0x10,0x5, +0xac,0x12,0x9, 0xb0,0x26,0x33,0xbe,0xb3,0x2b,0xf, 0x22,0x7e,0x70,0xc, 0xac,0x7a, +0x49,0x33,0x36,0x7e,0x22,0x49,0x23,0x36,0x84,0x49,0x33,0x36,0x80,0x9d,0x32,0x2, +0x21,0x0, 0x7e,0x8, 0x36,0x7a,0x7e,0x34,0x0, 0x60,0xe4,0x12,0x20,0xde,0x6c,0xaa, +0x7e,0x44,0xff,0xff,0x7e,0x70,0xc, 0xac,0x7a,0x59,0x43,0x36,0x7c,0x59,0x43,0x36, +0x84,0xb, 0xa0,0xbe,0xa0,0x8, 0x40,0xe8,0x7e,0x8, 0x36,0x68,0x7e,0x34,0x0, 0xd, +0xe4,0x2, 0x20,0xde,0x7e,0xa3,0x2b,0x62,0xbc,0xab,0x68,0x6, 0x7a,0xb3,0x2b,0x62, +0xd2,0xc, 0x30,0xc, 0x7, 0x12,0xaf,0x1d,0xe4,0x2, 0xa, 0x66,0x22,0xc2,0xc, 0x7e, +0x8, 0x2a,0x6d,0x12,0x3, 0x8b,0x7e,0x8, 0x2a,0x6d,0x74,0x3, 0x2, 0x11,0x7a,0xe4, +0x7a,0xb3,0x36,0x67,0x6c,0xaa,0x80,0xd, 0x6d,0x44,0x7e,0x70,0xc, 0xac,0x7a,0x59, +0x43,0x36,0x7e,0xb, 0xa0,0x12,0x8d,0x8, 0x38,0xee,0xe4,0x7a,0xb3,0x36,0x68,0x6d, +0x33,0x7a,0x37,0x36,0x6f,0x7a,0x37,0x36,0x64,0x22,0x7e,0xb3,0x36,0x6a,0xb4,0x1, +0x27,0x7e,0xb3,0x36,0xe0,0x4, 0x7a,0xb3,0x36,0xe0,0x7e,0x73,0x36,0xe0,0xbe,0x70, +0x3, 0x40,0x15,0x12,0x8c,0x90,0x7e,0x73,0x36,0xe0,0xbe,0x70,0x6, 0x40,0x9, 0xe4, +0x7a,0xb3,0x36,0xe0,0x7a,0xb3,0x36,0x6a,0x22,0x12,0x24,0x14,0xe4,0x7a,0xb3,0x3, +0xfe,0x2, 0x76,0x52,0xca,0xd8,0xca,0x79,0x7f,0x70,0x7e,0x93,0x28,0x84,0x6c,0x88, +0x7e,0xf0,0x1, 0x80,0x1a,0xa, 0x58,0x7f,0x17,0x2d,0x35,0x7e,0x1b,0x60,0xa, 0x5f, +0x7f,0x7, 0x2d,0x15,0x7e,0xb, 0x70,0xbc,0x76,0x40,0x2, 0x7c,0x8f,0xb, 0xf0,0xbc, +0x9f,0x38,0xe2,0xa, 0x38,0x2d,0x3f,0x7d,0x2e,0x7e,0x1b,0x80,0x6c,0xaa,0x7e,0xf0, +0x1, 0x2, 0xb0,0x54,0x75,0x45,0x0, 0x6d,0xdd,0x6d,0xbb,0x7d,0xcb,0x75,0x44,0x0, +0x80,0x36,0x7e,0x71,0x44,0x74,0x2, 0xac,0x7b,0x9, 0xe3,0x26,0xfa,0x9, 0xd3,0x26, +0xfb,0xe5,0x44,0xa, 0xab,0x7f,0x17,0x2d,0x3a,0x7e,0x1b,0xb0,0xbc,0xbf,0x78,0x16, +0x5, 0x45,0xa, 0xae,0x2d,0xca,0xa, 0xad,0x2d,0xba,0x12,0xb0,0x62,0xbd,0x3d,0x8, +0x5, 0x12,0xb0,0x62,0x7d,0xd3,0x5, 0x44,0xbe,0x91,0x44,0x38,0xc5,0xe5,0x45,0xbe, +0xb0,0x0, 0x28,0x2e,0xe5,0x45,0xa, 0xab,0x7d,0x3c,0x8d,0x3a,0x7d,0xc3,0x8d,0xba, +0x7e,0x50,0x2, 0xac,0x5a,0x19,0x72,0x33,0xc3,0x7d,0x3b,0x7e,0x50,0x2, 0xac,0x5a, +0x19,0x72,0x33,0xc4,0x7d,0x3c,0x7c,0xb7,0x7d,0x3b,0x12,0x30,0x3, 0x1b,0x1a,0xd0, +0xb, 0xa0,0xb, 0xf0,0xbc,0x8f,0x40,0x3, 0x2, 0xaf,0xd4,0x7c,0xba,0xda,0x79,0xda, +0xd8,0x22,0x7c,0xbe,0x7c,0x7d,0x2, 0x2c,0x40,0x7c,0x9b,0x7f,0x71,0x7f,0x60,0x7e, +0x34,0x22,0xb8,0x7e,0x24,0x0, 0xff,0x7e,0x14,0x1f,0x52,0x74,0x2a,0x12,0x1f,0xad, +0x7e,0x58,0x1f,0x52,0x7c,0xb9,0x7e,0x71,0x44,0x12,0x2c,0x40,0x7d,0x43,0xe5,0x45, +0x7e,0x71,0x46,0x12,0x2c,0x40,0x2d,0x34,0xe, 0x34,0x7f,0x5, 0x7e,0x50,0x7, 0xb, +0xa, 0x50,0xbd,0x53,0x58,0xf, 0x69,0x30,0x0, 0x2, 0x1b,0x6a,0x30,0x69,0x30,0x0, +0x4, 0x1b,0x7a,0x30,0x22,0x2e,0x14,0x0, 0x6, 0x1b,0x50,0x78,0xe2,0x22,0x6d,0x33, +0x7d,0x23,0x7d,0x3, 0x6c,0x33,0x80,0x45,0x6c,0x22,0x80,0x37,0x7e,0xb3,0x2a,0x6e, +0xac,0xb3,0xa, 0x42,0x2d,0x54,0x7d,0x45,0x3e,0x44,0x7e,0x7f,0x13,0x8a,0x2d,0xf4, +0xb, 0x7a,0x40,0xbe,0x44,0x0, 0x32,0x8, 0x8, 0xbe,0x44,0x2, 0x58,0x58,0x2, 0xb, +0x24,0xbe,0x44,0xff,0xce,0x58,0x8, 0xbe,0x44,0xfd,0xa8,0x8, 0x2, 0xb, 0x4, 0xb, +0x34,0xb, 0x21,0x7e,0x93,0x2a,0x6e,0xbc,0x92,0x38,0xc1,0xb, 0x31,0x7e,0xb3,0x2a, +0x6d,0xbc,0xb3,0x38,0xb3,0x7e,0x54,0x0, 0x6, 0xad,0x53,0x7d,0x15,0x1e,0x14,0x1e, +0x14,0x1e,0x14,0x12,0x25,0x3e,0xbd,0x12,0x50,0x22,0xbd,0x30,0x28,0x1e,0xe4,0x7a, +0xb3,0x39,0x8, 0x7e,0xb3,0x39,0x9, 0xbe,0xb0,0x5, 0x50,0x7, 0x4, 0x7a,0xb3,0x39, +0x9, 0x80,0x3c,0xe4,0x7a,0xb3,0x39,0x9, 0x74,0x1, 0x80,0x2f,0xbd,0x10,0x50,0x22, +0xbd,0x32,0x28,0x1e,0xe4,0x7a,0xb3,0x39,0x9, 0x7e,0xb3,0x39,0x8, 0xbe,0xb0,0x5, +0x50,0x7, 0x4, 0x7a,0xb3,0x39,0x8, 0x80,0x16,0xe4,0x7a,0xb3,0x39,0x8, 0x74,0x2, +0x80,0x9, 0xe4,0x7a,0xb3,0x39,0x8, 0x7a,0xb3,0x39,0x9, 0x7a,0xb3,0x39,0xa, 0x7e, +0xb3,0x39,0xa, 0x22,0xe4,0x7a,0xb3,0x28,0xa8,0x7a,0xb3,0x39,0xb, 0x22,0xca,0xd8, +0xca,0x79,0xc2,0x3, 0x6c,0xdd,0x7e,0x57,0x28,0x99,0x7d,0xf5,0x7e,0xe7,0x28,0x97, +0x7e,0x37,0x37,0xfb,0x4d,0x33,0x68,0x4, 0x7d,0xf5,0xe, 0xf4,0x6c,0xff,0x7e,0xa3, +0x2a,0x6e,0x7c,0x8a,0x7e,0xb3,0x28,0xa5,0x14,0x68,0x21,0x14,0x68,0x14,0x24,0xc2, +0x68,0x8, 0x24,0xfb,0x68,0x16,0x24,0x45,0x78,0x10,0x7c,0xfa,0x7e,0x83,0x2a,0x6d, +0x80,0xa, 0x7e,0x73,0x2a,0x6d,0x2c,0x87,0x80,0x2, 0x6c,0x88,0x6c,0x99,0x80,0xf, +0x7c,0xb9,0x12,0x37,0x6f,0xbe,0x34,0x2, 0x58,0x8, 0x2, 0xb, 0xd0,0xb, 0x90,0x7e, +0x33,0x28,0x84,0xbc,0x39,0x38,0xe9,0xbe,0xd0,0x3, 0x40,0x2, 0x61,0x4f,0x7e,0xa3, +0x28,0x85,0xbe,0xa0,0x0, 0x38,0xb, 0xbe,0x30,0x0, 0x28,0x37,0x7e,0xb3,0x26,0x83, +0x70,0x31,0x6c,0x99,0x80,0x29,0xa, 0x29,0xa, 0x3f,0x2d,0x32,0x3e,0x34,0x49,0x23, +0x5, 0x7a,0xbd,0x2f,0x8, 0x17,0x49,0x3, 0x4, 0xfc,0xbd,0xe, 0x58,0xf, 0x6d,0x33, +0x9d,0x3e,0x12,0x8f,0xdc,0xbd,0x3, 0x8, 0x4, 0xd2,0x3, 0x80,0x6, 0xb, 0x90,0xbc, +0x89,0x38,0xd3,0x6d,0xee,0x9e,0xe7,0x2a,0x4f,0xbe,0xe7,0x7, 0xf8,0x8, 0x2, 0xc2, +0x3, 0x30,0x3, 0x20,0x7e,0xb3,0x39,0xb, 0x4, 0x7a,0xb3,0x39,0xb, 0x7e,0x23,0x39, +0xb, 0xbe,0x20,0xa, 0x28,0x1d,0x74,0xa, 0x7a,0xb3,0x39,0xb, 0x74,0x1, 0x7a,0xb3, +0x28,0xa8,0x80,0xf, 0x7e,0x23,0x39,0xb, 0xbe,0x20,0x0, 0x28,0x6, 0x1e,0x20,0x7a, +0x23,0x39,0xb, 0x6c,0xee,0xbe,0x30,0x0, 0x38,0x5, 0xbe,0xa0,0x0, 0x28,0x69,0x7e, +0xb3,0x28,0xa7,0xb4,0x1, 0x9, 0x7e,0xb3,0x28,0xaa,0xbe,0xb0,0x1, 0x68,0x59,0x7e, +0xb3,0x28,0xa8,0xb4,0x1, 0x52,0x6c,0x99,0x80,0x1d,0x7e,0x70,0x2, 0xac,0x79,0x9, +0xa3,0x26,0xfa,0x9, 0xd3,0x26,0xfb,0x12,0x2c,0x3c,0xbe,0x34,0x0, 0x96,0x8, 0x5, +0x7e,0xe0,0x1, 0x80,0xa, 0xb, 0x90,0x7e,0xb3,0x28,0x84,0xbc,0xb9,0x38,0xdb,0x6c, +0x99,0x80,0x1d,0x7e,0x70,0x2, 0xac,0x79,0x9, 0xa3,0x27,0x36,0x9, 0xd3,0x27,0x37, +0x12,0x2c,0x3c,0xbe,0x34,0xff,0x6a,0x58,0x5, 0x7e,0xe0,0x1, 0x80,0xa, 0xb, 0x90, +0x7e,0xb3,0x28,0x85,0xbc,0xb9,0x38,0xdb,0x6c,0x99,0x80,0x17,0xa, 0xe9,0xa, 0x5f, +0x2d,0x5e,0x3e,0x54,0x49,0x55,0x5, 0x7a,0xbd,0x5f,0x8, 0x5, 0x7e,0xe0,0x1, 0x80, +0x6, 0xb, 0x90,0xbc,0x89,0x38,0xe5,0x4c,0xee,0x78,0x25,0x7e,0xb3,0x39,0xc, 0x4, +0x7a,0xb3,0x39,0xc, 0x7e,0x73,0x39,0xc, 0xbe,0x70,0x5, 0x28,0x22,0x74,0x5, 0x7a, +0xb3,0x39,0xc, 0x7e,0xb3,0x28,0xa8,0x60,0x2, 0xd2,0x15,0x12,0xb1,0x84,0x80,0xf, +0x7e,0x73,0x39,0xc, 0xbe,0x70,0x0, 0x28,0x6, 0x1e,0x70,0x7a,0x73,0x39,0xc, 0xda, +0x79,0xda,0xd8,0x22,0xca,0xf8,0x7c,0xfb,0x7e,0x34,0x0, 0x38,0xca,0x39,0xac,0x7f, +0x2e,0x34,0x0, 0x50,0x6d,0x22,0x7e,0x8, 0x34,0x0, 0x12,0x20,0xb9,0x1b,0xfd,0x7e, +0x34,0x0, 0x8c,0xca,0x39,0xac,0x7f,0x2e,0x34,0x1, 0x30,0x6d,0x22,0x7e,0x8, 0x3, +0x60,0x12,0x20,0xb9,0x1b,0xfd,0xda,0xf8,0x22,0x7e,0xa3,0x2a,0x6e,0xa, 0x3a,0x3e, +0x34,0x7e,0x8, 0x13,0x8e,0xe4,0x12,0x20,0xde,0x90,0x60,0x93,0x93,0xa, 0x3b,0x7e, +0xb3,0x2a,0x71,0xa, 0x2b,0x2d,0x23,0xa, 0x3a,0xad,0x32,0x7d,0x43,0x6c,0x77,0x80, +0x1d,0xa, 0x27,0x2d,0x24,0x12,0x87,0xdc,0xb, 0xa, 0x0, 0x7e,0x30,0x2, 0xac,0x37, +0x2e,0x14,0x13,0x8e,0xb, 0x18,0x20,0x2d,0x20,0x1b,0x18,0x20,0xb, 0x70,0xbc,0xa7, +0x38,0xdf,0x22,0x6c,0xaa,0x80,0x1c,0x7e,0x50,0x2, 0xac,0x5a,0x49,0x12,0x13,0xc6, +0x49,0x32,0x13,0x8e,0xbd,0x31,0x28,0x9, 0x2e,0x24,0x13,0x8e,0x9d,0x31,0x1b,0x28, +0x30,0xb, 0xa0,0x7e,0xb3,0x2a,0x6e,0xbc,0xba,0x38,0xdc,0x22,0x7c,0xab,0x12,0xb4, +0xb, 0xd2,0x16,0x7c,0xba,0x12,0x86,0xf8,0xc2,0x16,0x22,0xa9,0xd1,0xcb,0x74,0x1, +0x2, 0x0, 0xe, 0x12,0xb4,0xb, 0x7e,0x34,0xd, 0xc8,0x7e,0xb3,0x2a,0x6d,0x12,0xb4, +0x4c,0x12,0xb4,0x2f,0x7a,0x37,0x38,0xd6,0x74,0x1, 0x7a,0xb3,0x16,0x91,0x22,0x6d, +0x33,0x90,0x60,0x91,0xe4,0x93,0xbe,0xb0,0x0, 0x28,0x3, 0x2, 0xb5,0x19,0x90,0x60, +0x92,0xe4,0x93,0xbe,0xb0,0x0, 0x28,0x3, 0x2, 0xb4,0x80,0x22,0x7a,0xb3,0x24,0xf2, +0x7e,0x53,0x2a,0x6e,0x7a,0x53,0x24,0xf3,0x7a,0x37,0x24,0xfa,0xe4,0x7a,0xb3,0x24, +0xf4,0x7a,0xb3,0x24,0xf5,0x7e,0x34,0x40,0x0, 0x7a,0x37,0x24,0xf6,0x7e,0x34,0x0, +0x20,0x12,0xb4,0x77,0x2, 0xd, 0x7, 0x7a,0x37,0x24,0xfc,0x7e,0x8, 0x24,0xf2,0x22, +0xca,0xf8,0x6d,0xee,0x7d,0xfe,0x7e,0x83,0x2a,0x6e,0xa, 0xd8,0x90,0x60,0x94,0xe4, +0x93,0xb4,0xff,0x2f,0x7e,0x8, 0x13,0x8e,0x6c,0xaa,0x80,0x18,0x7e,0x70,0x2, 0xac, +0x7a,0x49,0x23,0x13,0xfe,0x7f,0x50,0x2d,0xb3,0xb, 0x5a,0xc0,0x9d,0xc2,0x59,0xc3, +0x13,0xc6,0xb, 0xa0,0xbc,0x8a,0x38,0xe4,0x90,0x60,0x92,0xe4,0x93,0x7c,0x9b,0x6d, +0xdd,0x80,0x11,0x7e,0x8, 0x13,0xfe,0x90,0x60,0x92,0xe4,0x93,0xa, 0xcb,0x1b,0xc4, +0x7d,0x3c,0x7c,0x97,0x6c,0xff,0x80,0x38,0x6c,0xaa,0x80,0x28,0xa, 0x3a,0x7d,0x23, +0x2d,0x2e,0x3e,0x24,0x49,0xc2,0x13,0xfe,0x2d,0x3d,0x3e,0x34,0x2d,0x31,0x7d,0x20, +0xb, 0x1a,0xb0,0x7d,0x3c,0x9d,0x3b,0x12,0x21,0x0, 0x7d,0xa3,0xbd,0xfa,0x58,0x2, +0x7d,0xfa,0xb, 0xa0,0xbc,0x8a,0x38,0xd4,0xa, 0xc8,0x2d,0xec,0x2d,0xdc,0xb, 0xf0, +0xbc,0x9f,0x38,0xc4,0x7d,0x3f,0xda,0xf8,0x22,0xca,0xf8,0x6d,0x44,0x7e,0xf3,0x2a, +0x6e,0x90,0x60,0x93,0xe4,0x93,0xa, 0xfb,0x7e,0xb3,0x2a,0x6d,0xa, 0xeb,0x2d,0xef, +0xa, 0xff,0xad,0xfe,0xa, 0xef,0x2d,0xef,0x90,0x60,0x94,0xe4,0x93,0xb4,0xff,0x31, +0x7e,0x8, 0x13,0x8e,0x6c,0xaa,0x80,0x23,0xa, 0xda,0x2d,0xdf,0x3e,0xd4,0x7e,0x1f, +0x38,0xd9,0x2d,0x3d,0xb, 0x1a,0xd0,0x7e,0x50,0x2, 0xac,0x5a,0x7f,0x50,0x2d,0xb2, +0xb, 0x5a,0x30,0x9d,0x3d,0x59,0x32,0x13,0xc6,0xb, 0xa0,0xbc,0xfa,0x38,0xd9,0x80, +0xa, 0x7d,0x5e,0x3e,0x54,0x7e,0xf, 0x38,0xd9,0x2d,0x15,0x6c,0xaa,0x80,0x2c,0xa, +0xea,0x2d,0xef,0x3e,0xe4,0x7e,0x1f,0x38,0xd9,0x2d,0x3e,0xb, 0x1a,0xe0,0x7e,0x70, +0x2, 0xac,0x7a,0x2d,0x31,0x7d,0x20,0xb, 0x1a,0xd0,0x7d,0x3e,0x9d,0x3d,0x12,0x21, +0x0, 0x7d,0xc3,0xbd,0x4c,0x58,0x2, 0x7d,0x4c,0xb, 0xa0,0xbc,0xfa,0x38,0xd0,0x7d, +0x34,0xda,0xf8,0x22,0xca,0x78,0xa9,0x31,0xe5,0x6, 0xa9,0xd5,0xea,0xa9,0xc5,0xea, +0xa9,0x30,0xe5,0x19,0xa9,0xd0,0x9e,0xa9,0xd4,0x9e,0x5, 0x4e,0x7e,0x73,0x39,0x6, +0xbe,0x71,0x4e,0x38,0x2, 0xd2,0x17,0xa9,0xd0,0x9e,0xa9,0xd7,0x9e,0xa9,0x34,0xe5, +0x5, 0xa9,0xc4,0xcd,0xc2,0x95,0xa9,0x32,0xe5,0x3, 0xa9,0xc2,0xcd,0xa9,0x33,0xe5, +0x3, 0xa9,0xc3,0xcd,0xa9,0x37,0xe5,0x3, 0xa9,0xc7,0xcd,0xa9,0x36,0xe5,0x3, 0xa9, +0xc6,0xcd,0xda,0x78,0x32,0xc2,0x9a,0xa9,0xd4,0xa6,0xc2,0x88,0xd2,0xa8,0x22,0x7e, +0x14,0xd7,0xe8,0x7e,0x4, 0x0, 0xff,0x7e,0x34,0x47,0x52,0x7e,0x24,0x55,0x50,0x79, +0x30,0x0, 0x2, 0x1b,0xa, 0x20,0x7e,0x34,0x45,0x20,0x7e,0x24,0x41,0x44,0x79,0x30, +0x0, 0x6, 0x79,0x20,0x0, 0x4, 0x7e,0x34,0x99,0x33,0x7e,0x24,0x66,0xcc,0x79,0x30, +0x0, 0xa, 0x79,0x20,0x0, 0x8, 0x7e,0x34,0x41,0x47,0x7e,0x24,0x46,0x4c,0x79,0x30, +0x0, 0xe, 0x79,0x20,0x0, 0xc, 0x22,0xa9,0xd0,0xce,0xa2,0x3, 0xa9,0x95,0xc9,0x22, +0xa9,0xc6,0xeb,0xa9,0xd6,0xac,0xa9,0xd6,0xec,0xd2,0x86,0xa9,0xc2,0xeb,0xa9,0xd2, +0xac,0xa9,0xd2,0xec,0xd2,0x82,0x22,0x75,0x9a,0x2f,0xa9,0xd1,0x99,0xd2,0x9c,0xa9, +0xd6,0xdf,0x22,0xc2,0x8e,0x43,0x89,0x20,0x75,0x8d,0x1, 0x75,0x8b,0x0, 0xd2,0x8e, +0xd2,0xab,0x22,0x75,0xb7,0x0, 0x75,0xb8,0x0, 0x75,0xf7,0x0, 0x75,0xf8,0x0, 0xa9, +0xd0,0xb7,0xd2,0xb8,0xa9,0xd5,0xb7,0xd2,0xbd,0xa9,0xd0,0xf7,0xd2,0xf8,0xa9,0xc1, +0xb7,0xc2,0xb9,0xa9,0xc3,0xb7,0xc2,0xbb,0xa9,0xc6,0xb7,0xc2,0xbe,0x22,0x75,0xe7, +0x6b,0x2, 0xb6,0xc4,0xe4,0x7e,0x34,0xd7,0xfc,0x7e,0x24,0x0, 0xff,0x7a,0x1b,0xb0, +0x7e,0x34,0xd7,0xfd,0x7a,0x1b,0xb0,0x75,0xe9,0xff,0x22,0xa9,0xd0,0x99,0xa9,0xc6, +0xdf,0x22,0x7e,0x37,0x39,0x4, 0xb, 0x34,0x7a,0x37,0x39,0x4, 0xbe,0x34,0xff,0x0, +0x40,0x8, 0x7e,0x34,0xff,0x0, 0x7a,0x37,0x39,0x4, 0x22,0x7c,0x6b,0x6c,0x77,0x6c, +0xaa,0x7e,0xb3,0x39,0x13,0xb4,0xa5,0x46,0x12,0xb7,0xb9,0x75,0xb5,0x5, 0xa9,0x36, +0xb3,0xfc,0x12,0xb7,0x57,0xa9,0x36,0xb3,0xfc,0x12,0xb7,0x57,0xa9,0x36,0xb3,0xfc, +0xa9,0xc6,0xb3,0x7a,0x61,0xb5,0xa9,0x36,0xb3,0xfc,0x12,0xb7,0x57,0xa9,0x36,0xb3, +0xfc,0x12,0xb7,0x57,0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0x7e,0x71,0xb5,0x75,0xb5, +0x0, 0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0x7e,0xa1,0xb5,0xa9,0xd2,0xb4,0x7c,0x47, +0x6c,0x55,0xa, 0x3a,0x4d,0x32,0x22,0xa9,0xc6,0xb3,0x75,0xb5,0x0, 0x22,0x74,0x6, +0x7d,0x30,0x7d,0x23,0x7c,0x6b,0xa, 0x14,0x7c,0x73,0x7d,0x52,0x7c,0xab,0x7e,0xb3, +0x39,0x13,0xb4,0xa5,0x3c,0x12,0xb7,0xb9,0x75,0xb5,0x1, 0xa9,0x36,0xb3,0xfc,0x12, +0xb7,0x57,0xa9,0x36,0xb3,0xfc,0x12,0xb7,0x57,0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3, +0x7a,0x61,0xb5,0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0x7a,0x71,0xb5,0xa9,0x36,0xb3, +0xfc,0xa9,0xc6,0xb3,0x7a,0xa1,0xb5,0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0xa9,0xd2, +0xb4,0x22,0x74,0x4, 0x7d,0x30,0x2, 0xb7,0x62,0xa9,0xc2,0xb4,0xa9,0xc6,0xb3,0x22, +0x74,0x2, 0x7d,0x3f,0x2, 0xb7,0x62,0x7d,0x42,0x7f,0x60,0x7d,0x3, 0x12,0xb8,0x38, +0x74,0x2, 0x12,0xb6,0xfb,0x7d,0xf3,0x4e,0xf4,0x0, 0x1, 0x4e,0xf4,0x0, 0xa, 0x12, +0xb7,0xc0,0x7a,0x45,0x36,0x7d,0x30,0x6d,0x22,0x7f,0x6, 0x12,0xb8,0x64,0x5e,0xf4, +0xff,0xfd,0x12,0xb7,0xc0,0x2, 0xb7,0xf8,0xa9,0xc5,0xca,0xe4,0x7a,0xb3,0x39,0x13, +0x22,0xca,0xf8,0x7c,0xfb,0x74,0x2, 0x12,0xb6,0xfb,0x4c,0xff,0x78,0x5, 0x5e,0x70, +0xdf,0x80,0x3, 0x4e,0x70,0x20,0x74,0x2, 0x12,0xb7,0x62,0xda,0xf8,0x22,0xd2,0xc8, +0x43,0xed,0xf, 0xc2,0xea,0x75,0xb3,0x13,0xa9,0xd1,0xb4,0xa9,0xc0,0xb4,0x12,0xb8, +0x38,0xe4,0x12,0xb8,0x1, 0x2, 0xb7,0xf8,0xa9,0xd5,0xca,0xa9,0xd1,0xea,0xa9,0xc1, +0xea,0x74,0xa5,0x7a,0xb3,0x39,0x13,0x22,0x6d,0x22,0x80,0x13,0x75,0xb5,0x0, 0xa9, +0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0xe5,0xb5,0x7a,0xb, 0xb0,0xb, 0x14,0xb, 0x24,0xbd, +0x32,0x38,0xe9,0x22,0x12,0xb8,0x72,0x7e,0x35,0x36,0x12,0xb8,0x48,0xa9,0xd2,0xb4, +0xd3,0x22,0x7d,0x52,0xf5,0x3a,0x7c,0xb6,0x7c,0xa5,0xa, 0x44,0xf5,0x39,0x7f,0x21, +0xf5,0x38,0xa9,0xc2,0xb4,0x74,0xb, 0x12,0xb8,0x9d,0xe5,0x3a,0x12,0xb8,0x9d,0xe5, +0x39,0x12,0xb8,0x9d,0xe5,0x38,0x12,0xb8,0x9d,0xe4,0x2, 0xb8,0x9d,0xf5,0xb5,0xa9, +0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0xd3,0x22,0x7c,0xa6,0x7c,0x37,0x7c,0x2b,0xe4,0x6c, +0x11,0x80,0x46,0xbc,0xa1,0x68,0x40,0x1a,0x41,0x3e,0x44,0x9, 0x4, 0x26,0xfb,0xa, +0x20,0xa, 0x33,0x9d,0x32,0x12,0x21,0x0, 0x7c,0x7, 0x1a,0x41,0x3e,0x44,0x9, 0x74, +0x26,0xfa,0xa, 0x27,0xa, 0x32,0x9d,0x32,0x12,0x21,0x0, 0x7c,0x97,0xbe,0x90,0x1, +0x18,0x8, 0xbe,0x0, 0x1, 0x18,0x3, 0x74,0x1, 0x22,0xbe,0x90,0x2, 0x18,0x8, 0xbe, +0x0, 0x2, 0x18,0x3, 0x74,0x2, 0x22,0xb, 0x10,0x7e,0x83,0x28,0x84,0xbc,0x81,0x18, +0xb2,0x22,0x7f,0x71,0x69,0x37,0x0, 0x2, 0x7d,0x53,0x12,0xb9,0x5c,0xb, 0x7a,0x20, +0x2d,0x25,0x1b,0xa, 0x20,0x69,0x27,0x0, 0x4, 0x7d,0x52,0xc4,0x54,0xf0,0x7c,0xab, +0xe4,0x1e,0x34,0x1e,0x34,0x2d,0x35,0x79,0x30,0x0, 0x2, 0x69,0x37,0x0, 0x6, 0x7d, +0x53,0x7c,0xab,0xe4,0x3e,0x54,0x3e,0x54,0x1e,0x24,0x1e,0x24,0x1e,0x24,0x1e,0x24, +0x2d,0x25,0x79,0x20,0x0, 0x4, 0x69,0x27,0x0, 0x8, 0x7c,0x45,0x6c,0x55,0x12,0x25, +0x3c,0x1e,0x34,0x1e,0x34,0x2d,0x32,0x79,0x30,0x0, 0x6, 0x22,0x3, 0x3, 0x54,0xc0, +0x7c,0xab,0xe4,0x22,0x7c,0xab,0x9f,0x11,0x30,0x3, 0x22,0x6c,0x99,0x80,0x1a,0xa, +0xf9,0x2d,0xf1,0x7d,0xe0,0x7e,0x7b,0xb0,0x7e,0x78,0x0, 0x1, 0x60,0x5, 0x2f,0x77, +0x14,0x78,0xfb,0x4d,0x3f,0x4d,0x2e,0xb, 0x90,0xbc,0xa9,0x38,0xe2,0x22,0xca,0xf8, +0x90,0x60,0x51,0xe4,0x93,0x7c,0xfb,0x7e,0x8, 0x1f,0x34,0x12,0x3f,0xd9,0x7e,0x8, +0x1f,0x3c,0x12,0xba,0x1a,0xd2,0x3, 0x7e,0x8, 0x2a,0xdc,0x7c,0xbf,0x12,0xb9,0x64, +0x7e,0x8, 0x1f,0x34,0x7a,0xf, 0x1f,0x58,0x7f,0x1, 0x7a,0x17,0x1f,0x5c,0x7d,0x32, +0x7a,0x37,0x1f,0x5e,0x7e,0x18,0x1f,0x3c,0x7a,0x1f,0x1f,0x64,0x6c,0x77,0x80,0xe, +0x12,0xba,0x62,0x50,0x7, 0x12,0xba,0x59,0x19,0x51,0x1f,0x3c,0xb, 0x70,0xbc,0xf7, +0x38,0xee,0x12,0xba,0x7, 0xe4,0x12,0xba,0xf, 0xe4,0x12,0xc, 0x9b,0x6d,0x33,0x7a, +0x37,0x1f,0x5c,0x7a,0x37,0x1f,0x5e,0x12,0xba,0x7, 0x74,0x1, 0x12,0xba,0xf, 0x74, +0x1, 0x12,0xc, 0x9b,0xda,0xf8,0x22,0xa9,0xc6,0xea,0x7e,0x8, 0x1f,0x58,0x22,0x12, +0xc, 0x9b,0xa9,0xd6,0xea,0x7e,0x8, 0x1f,0x58,0x22,0x7e,0x34,0x0, 0x1c,0x74,0x3f, +0x2, 0x20,0xde,0x7e,0x8, 0x1f,0x34,0x12,0xba,0x1a,0x6c,0x77,0x80,0xe, 0x12,0xba, +0x62,0x50,0x7, 0x12,0xba,0x59,0x19,0x51,0x1f,0x34,0xb, 0x70,0x7e,0x53,0x2a,0x6e, +0xbc,0x57,0x38,0xea,0xa9,0xc6,0xea,0x7e,0x8, 0x1f,0x34,0xe4,0x12,0x11,0x38,0xa9, +0xd6,0xea,0x7e,0x8, 0x1f,0x34,0x2, 0x11,0x38,0xa, 0x27,0x9, 0x52,0x2b,0x44,0xa, +0x16,0x22,0xa, 0x27,0x9, 0x62,0x2a,0xdc,0xbe,0x60,0x1c,0x22,0x7c,0x57,0x7c,0xab, +0x6c,0x77,0x80,0x50,0xa, 0x47,0x7e,0x7d,0x24,0x2d,0xf4,0x7e,0x7b,0x60,0xa, 0x46, +0x2e,0x44,0x20,0x73,0x7a,0x91,0x82,0x7a,0x81,0x83,0xe4,0x93,0x7c,0x6b,0xbe,0x60, +0xd, 0x38,0x12,0x7e,0xd4,0x0, 0x1, 0x7c,0xb6,0x60,0x5, 0x3e,0xd4,0x14,0x78,0xfb, +0x7e,0x7d,0x28,0x80,0x15,0x9e,0x60,0xe, 0x7e,0xd4,0x0, 0x1, 0x7c,0xb6,0x60,0x5, +0x3e,0xd4,0x14,0x78,0xfb,0x7e,0x7d,0x28,0xb, 0xf5,0xb, 0x7a,0x40,0x4d,0x4d,0x1b, +0x7a,0x40,0xb, 0x70,0xbc,0x57,0x38,0xac,0x6c,0x77,0x80,0x58,0xa, 0x27,0x7f,0x70, +0x2d,0xf2,0x7e,0x7b,0x60,0xbe,0x60,0xd, 0x38,0x11,0x12,0xbb,0x29,0x60,0x5, 0x3e, +0x44,0x14,0x78,0xfb,0x7e,0x7d,0x28,0xb, 0xf6,0x80,0x2f,0xbe,0x60,0x1b,0x38,0x16, +0x9e,0x60,0xe, 0x12,0xbb,0x29,0x60,0x5, 0x3e,0x44,0x14,0x78,0xfb,0x7e,0x7d,0x28, +0x2e,0xf4,0x0, 0x6, 0x80,0x14,0x9e,0x60,0x1c,0x12,0xbb,0x29,0x60,0x5, 0x3e,0x44, +0x14,0x78,0xfb,0x7e,0x7d,0x28,0x2e,0xf4,0x0, 0x8, 0xb, 0x7a,0x20,0x4d,0x24,0x1b, +0x7a,0x20,0xb, 0x70,0xbc,0xa7,0x38,0xa4,0x22,0x7e,0x44,0x0, 0x1, 0x7c,0xb6,0x22, +0x7e,0x27,0x28,0xa3,0x6d,0x11,0x9d,0x12,0x6c,0xaa,0x80,0x64,0x30,0x0, 0x2e,0x7e, +0x90,0x2, 0xac,0x9a,0x49,0x34,0x5, 0xf8,0x49,0x4, 0x4, 0x0, 0xbd,0x2, 0x8, 0x11, +0x7e,0xb3,0x25,0xf6,0xb4,0x1, 0x16,0x7d,0xf2,0x2d,0xf3,0x59,0xf4,0x5, 0xf8,0x80, +0xc, 0xbd,0x1, 0x58,0x8, 0x7d,0x3, 0x9d,0x2, 0x59,0x4, 0x5, 0xf8,0x30,0x2, 0x2e, +0x7e,0x90,0x2, 0xac,0x9a,0x49,0x34,0x6, 0x76,0x49,0x4, 0x4, 0x7e,0xbd,0x2, 0x8, +0x11,0x7e,0xb3,0x25,0xf6,0xb4,0x1, 0x16,0x7d,0xf2,0x2d,0xf3,0x59,0xf4,0x6, 0x76, +0x80,0xc, 0xbd,0x1, 0x58,0x8, 0x7d,0x3, 0x9d,0x2, 0x59,0x4, 0x6, 0x76,0xb, 0xa0, +0x7e,0xb3,0x2a,0x74,0xa, 0xb, 0x7e,0xb3,0x2a,0x73,0xa, 0x4b,0x2d,0x40,0xa, 0xa, +0xbd,0x4, 0x48,0x88,0x22,0x6c,0x33,0x80,0x9, 0xe4,0xa, 0x33,0x19,0xb3,0x27,0x72, +0xb, 0x30,0x90,0x60,0x9a,0xe4,0x93,0x12,0x77,0xf6,0xb, 0x24,0xa, 0x33,0xbd,0x32, +0x48,0xe7,0xe4,0x7a,0xb3,0x28,0x84,0x7a,0xb3,0x28,0x85,0x6d,0x33,0x7a,0x37,0x28, +0x86,0x7a,0x37,0x28,0x88,0x7a,0x37,0x28,0x8a,0x7a,0x37,0x28,0x8e,0x7e,0xd4,0x1f, +0x36,0x5e,0xd4,0xff,0xfe,0x6d,0xcc,0x7e,0x1f,0x13,0x8a,0x7a,0x37,0x1f,0x76,0x7d, +0x3d,0x7a,0x37,0x1f,0x7a,0x7e,0x34,0x15,0x9e,0x7a,0x37,0x1f,0x78,0x7e,0x73,0x2a, +0x6d,0x7a,0x73,0x1f,0x73,0x7e,0x73,0x2a,0x6e,0x7a,0x73,0x1f,0x72,0x7e,0x37,0x2a, +0x5c,0x7a,0x37,0x1f,0x7c,0x7e,0x37,0x2a,0x5e,0x7a,0x37,0x1f,0x7e,0x7e,0x37,0x2a, +0x60,0x7a,0x37,0x1f,0x80,0x90,0x60,0x9a,0x93,0x7a,0xb3,0x1f,0x74,0x7e,0x73,0x3, +0xff,0x7a,0x73,0x1f,0x75,0x7e,0x8, 0x1f,0x72,0x7e,0x18,0x1f,0x82,0x12,0x8, 0x0, +0x7e,0x73,0x1f,0x82,0x7a,0x73,0x28,0x84,0x7e,0x73,0x1f,0x83,0x7a,0x73,0x28,0x85, +0x7e,0x37,0x1f,0x84,0x7a,0x37,0x28,0x86,0x7e,0x37,0x1f,0x86,0x7a,0x37,0x28,0x88, +0x7e,0x37,0x1f,0x8c,0x7a,0x37,0x28,0x8a,0x7e,0x37,0x1f,0x8e,0x7d,0x23,0x7a,0x53, +0x28,0x8c,0xa, 0x36,0x7a,0x73,0x28,0x8d,0x7e,0x37,0x1f,0x88,0x7a,0x37,0x28,0x8e, +0x7e,0x37,0x1f,0x8a,0x7d,0x23,0x7a,0x53,0x28,0x90,0xa, 0x36,0x7a,0x73,0x28,0x91, +0x6c,0x33,0x80,0x1d,0x7c,0xb3,0x12,0x2f,0xd0,0x74,0x2, 0xac,0xb3,0x49,0x45,0x15, +0x9e,0xa, 0x38,0x7c,0x27,0x19,0x25,0x26,0xfa,0x7c,0x29,0x19,0x25,0x26,0xfb,0xb, +0x30,0x7e,0x23,0x28,0x84,0xbc,0x23,0x38,0xdb,0x6c,0x33,0x80,0x1b,0x74,0x2, 0xac, +0xb3,0x7f,0x16,0x2d,0x35,0xb, 0x1a,0x40,0xa, 0x38,0x7c,0x27,0x19,0x25,0x27,0x36, +0x7c,0x29,0x19,0x25,0x27,0x37,0xb, 0x30,0x7e,0x23,0x28,0x85,0xbc,0x23,0x38,0xdd, +0x22,0x7c,0x7b,0xa, 0x57,0x9e,0x54,0x0, 0x20,0xe, 0x54,0xe, 0x54,0xe, 0x54,0xe, +0x54,0x7c,0xab,0x7c,0x67,0x5e,0x60,0xf0,0xa5,0xbe,0x20,0x1d,0x7c,0xb7,0x54,0xf, +0x7e,0x24,0x0, 0x1, 0x60,0x5, 0x3e,0x24,0x14,0x78,0xfb,0x7e,0x73,0x38,0xfb,0xa, +0x47,0x5d,0x42,0x7e,0x73,0x37,0x32,0x80,0x36,0xa5,0xbe,0x30,0x18,0x12,0xbd,0x64, +0x60,0x5, 0x3e,0x34,0x14,0x78,0xfb,0x7e,0x53,0x38,0xfc,0xa, 0x45,0x5d,0x43,0x7e, +0x73,0x37,0x33,0x80,0x1a,0x12,0xbd,0x64,0x60,0x5, 0x3e,0x34,0x14,0x78,0xfb,0xa, +0x2a,0x9, 0xb2,0x38,0xfb,0xa, 0x4b,0x5d,0x43,0xa, 0x5a,0x9, 0x75,0x37,0x34,0xa, +0x57,0x5d,0x54,0x22,0x7c,0xb7,0x54,0xf, 0x7e,0x34,0x0, 0x1, 0x22,0x7e,0xb3,0x2f, +0x80,0xb4,0x4, 0x2, 0xd3,0x22,0xc3,0x22,0x7d,0xf2,0x7d,0xe3,0x7e,0x8, 0x2f,0x80, +0x7e,0x34,0x0, 0x28,0xe4,0x12,0x20,0xde,0x7e,0x8, 0x2b,0xbf,0x7e,0x34,0x3, 0xc0, +0x12,0x20,0xde,0x7a,0xb3,0x37,0x34,0x7e,0x34,0x62,0x8e,0x12,0x23,0x9e,0x7a,0x37, +0x2b,0xb7,0x7a,0xe7,0x2f,0x84,0x7a,0xf7,0x2f,0x86,0x7a,0xe7,0x2f,0x88,0x7a,0xe7, +0x2f,0x8c,0x7a,0xe7,0x2f,0x90,0x7a,0xe7,0x2f,0x94,0x7a,0xf7,0x2f,0x8a,0x7a,0xf7, +0x2f,0x8e,0x7a,0xf7,0x2f,0x92,0x7a,0xf7,0x2f,0x96,0x7a,0xe7,0x2b,0xbb,0x7a,0xf7, +0x2b,0xbd,0x7a,0xb3,0x2f,0xa8,0x74,0x2, 0x7a,0xb3,0x2f,0x7f,0x22,0x74,0xfe,0x7a, +0xb3,0x37,0x34,0xe4,0x7a,0xb3,0x2f,0x80,0x22,0x7d,0x13,0x3e,0x14,0x3e,0x14,0x3e, +0x14,0x7e,0x37,0x38,0xe2,0x9e,0x37,0x38,0xde,0x12,0x21,0x0, 0xbd,0x31,0x38,0x12, +0x7e,0x37,0x38,0xe4,0x9e,0x37,0x38,0xe0,0x12,0x21,0x0, 0xbd,0x31,0x38,0x3, 0x74, +0x1, 0x22,0xe4,0x22,0xca,0xd8,0xca,0x79,0x6c,0xff,0x6d,0xdd,0x7d,0xed,0x7d,0xfd, +0x7e,0xd3,0x2a,0x2, 0x7e,0xe3,0x2a,0x3, 0x7e,0xb3,0x38,0xdd,0x60,0x11,0x7e,0xc7, +0x38,0xe6,0x4d,0xcc,0x78,0x2, 0xe1,0x8, 0xbe,0xd0,0x1, 0x28,0x2, 0xe1,0x8, 0xbe, +0xd0,0x1, 0x78,0x1d,0xbe,0xb0,0x4, 0x78,0x2, 0xe1,0x8, 0x7e,0xe7,0x29,0x8, 0x7e, +0xf7,0x29,0xa, 0x7d,0x3e,0x7d,0x2f,0x12,0x66,0xe6,0xbe,0xb0,0x1, 0x78,0x2, 0xe1, +0x8, 0x7e,0xa3,0x38,0xdd,0x7c,0xba,0x14,0x68,0x29,0x14,0x68,0x54,0x14,0x68,0x23, +0x14,0x78,0x2, 0xe1,0x5, 0xb, 0xb2,0x68,0x2, 0xe1,0x8, 0xbe,0xd0,0x1, 0x68,0x2, +0xe1,0x17,0x4c,0xee,0x68,0x2, 0xe1,0x17,0x74,0x1, 0x7a,0xb3,0x38,0xdd,0x12,0xbf, +0x2a,0x80,0x65,0x4c,0xdd,0x78,0x1d,0xbe,0xa0,0x1, 0x78,0xc, 0x74,0x2, 0x7a,0xb3, +0x38,0xdd,0x7e,0x34,0x62,0x64,0x80,0x54,0x74,0x4, 0x7a,0xb3,0x38,0xdd,0x7e,0x34, +0x62,0x68,0x80,0x48,0x12,0xbf,0x33,0x90,0x62,0x57,0x12,0xbf,0x1e,0x68,0x49,0x80, +0x56,0xbe,0xd0,0x1, 0x78,0x51,0x4c,0xee,0x78,0x4d,0x12,0xbf,0x33,0x7e,0x34,0x62, +0x60,0x12,0x23,0x9e,0x7e,0x14,0x62,0x64,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0xc0,0x9d, +0xc3,0xbe,0xc7,0x38,0xe6,0x40,0x21,0x90,0x62,0x56,0x12,0xbf,0x1e,0x68,0x19,0x12, +0xbf,0x2a,0x74,0x3, 0x7a,0xb3,0x38,0xdd,0x7e,0x34,0x62,0x64,0x12,0x23,0x9e,0x7a, +0x37,0x38,0xe6,0x80,0x12,0x7e,0xf0,0x24,0xe4,0x7a,0xb3,0x38,0xdd,0x6d,0x33,0x7a, +0x37,0x38,0xe6,0x7c,0xbf,0x80,0x2, 0x7c,0xbf,0xda,0x79,0xda,0xd8,0x22,0xe4,0x93, +0xa, 0x3b,0x12,0xbd,0xe9,0xa, 0xdb,0x4d,0xdd,0x22,0x7a,0xe7,0x38,0xde,0x7a,0xf7, +0x38,0xe0,0x22,0x7a,0xe7,0x38,0xe2,0x7a,0xf7,0x38,0xe4,0x22,0xca,0xf8,0x7f,0x51, +0x7f,0x40,0x7e,0x37,0x2f,0x90,0x7a,0x35,0x2a,0x7e,0x37,0x2f,0x8e,0x7a,0x35,0x2c, +0x7e,0x37,0x2f,0x9c,0x7a,0x35,0x26,0x7e,0x37,0x2f,0x9e,0x7a,0x35,0x28,0x6c,0xff, +0x80,0x1e,0x7e,0x34,0x0, 0x26,0x7e,0x14,0x0, 0x2f,0x74,0x9, 0x12,0x1f,0x8c,0x74, +0x2, 0xac,0xbf,0x7f,0x4, 0x2d,0x15,0x7f,0x15,0x2d,0x35,0x12,0xbf,0x8b,0xb, 0xf0, +0x7e,0x73,0x38,0x3f,0xbc,0x7f,0x38,0xda,0xda,0xf8,0x22,0x7f,0x71,0x7f,0x60,0x7e, +0x35,0x2f,0xbe,0x34,0x0, 0x0, 0x38,0x7, 0x7e,0x34,0x0, 0x1, 0x7a,0x35,0x2f,0x7e, +0x35,0x31,0xbe,0x34,0x0, 0x0, 0x38,0x7, 0x7e,0x34,0x0, 0x1, 0x7a,0x35,0x31,0xb, +0x6a,0x30,0x9e,0x35,0x33,0x6d,0x22,0x7e,0x33,0x38,0x41,0x12,0xbf,0xe0,0x7e,0x15, +0x2f,0x12,0x1f,0x5, 0x1b,0x6a,0x30,0xb, 0x7a,0x30,0x9e,0x35,0x35,0x6d,0x22,0x7e, +0x33,0x38,0x42,0x12,0xbf,0xe0,0x7e,0x15,0x31,0x12,0x1f,0x5, 0x1b,0x7a,0x30,0x22, +0xa, 0x13,0x6d,0x0, 0x2, 0x1e,0xeb,0x7a,0x1d,0x24,0x7e,0xa3,0x2a,0x6e,0x74,0x2, +0xa4,0x7e,0xf, 0x6, 0xf8,0x2d,0x15,0x7e,0xb3,0x2a,0x6d,0x7e,0x37,0x2a,0x51,0x22, +0x74,0x1, 0x7a,0xb3,0x37,0xa0,0x7e,0x34,0x60,0xa3,0x22,0x7a,0x1d,0x24,0x7e,0xf, +0x6, 0xf8,0x7e,0xb3,0x2a,0x6e,0x7e,0x37,0x2a,0x53,0x22,0x7e,0xa3,0x2a,0x6e,0x7e, +0xb3,0x2a,0x6d,0xa4,0x22,0x74,0x1, 0x7a,0xb3,0x2b,0x1, 0x7a,0xb3,0x2b,0x1d,0x22, +0x9, 0x75,0x26,0x36,0x7a,0x73,0x2b,0x20,0x22,0x9, 0x75,0x26,0x34,0x7a,0x73,0x2b, +0x14,0x22,0x7e,0x8, 0x2a,0x6d,0x2, 0xd, 0x72,0xa, 0x47,0x7f,0x70,0x2d,0xf4,0x7e, +0x7b,0x60,0xbc,0x6b,0x22,0x6e,0x34,0xff,0xff,0xb, 0x34,0x7a,0x37,0x2a,0x5e,0x22, +0x7e,0x29,0x60,0x4c,0x6a,0x7a,0x29,0x60,0xb, 0x70,0x22,0x2e,0x14,0x1, 0x30,0x6d, +0x0, 0x7e,0x18,0x3, 0x60,0x22,0x2e,0x14,0x0, 0x50,0x6d,0x0, 0x7e,0x18,0x34,0x0, +0x22,0x74,0x6, 0x12,0xb6,0xfb,0x7d,0x3, 0x6c,0x11,0x22,0x7e,0x70,0x2, 0xac,0x7c, +0x9, 0xb3,0x26,0xfa,0x22,0xe4,0x7a,0xb3,0x36,0x69,0x7a,0xb3,0x36,0x71,0x22,0x74, +0x1, 0x12,0x13,0xde,0xe4,0x2, 0x0, 0x1e,0x7a,0x37,0x2a,0x4f,0x7e,0x34,0x61,0x57, +0x22,0x7a,0x37,0x28,0xa1,0x7e,0x34,0x61,0xc2,0x22,0x90,0x60,0xaa,0xe4,0x93,0xbe, +0xb0,0x1, 0x22,0x9, 0x75,0x26,0x33,0x7a,0x73,0x2b,0xf, 0x22,0x74,0x5, 0xac,0xbc, +0x9, 0xb5,0x26,0x33,0x22,0x7e,0x8, 0x0, 0x25,0x7e,0x18,0x0, 0x24,0x22,0x7e,0xe3, +0x2a,0x6f,0x7e,0xd3,0x2a,0x70,0x22,0x6d,0x33,0xe4,0x6c,0x55,0x2, 0x13,0x1, 0x7e, +0x37,0x25,0xf4,0x7a,0x37,0x31,0xcc,0x22,0x7e,0x34,0xd, 0xc8,0x7a,0x37,0x31,0xce, +0x22,0x7e,0x73,0x37,0xbd,0x7a,0x73,0x2b,0x20,0x22,0x12,0x0, 0x1e,0x7e,0xb3,0x2a, +0xfc,0x22,0x7e,0x73,0x28,0x92,0xbe,0x70,0x0, 0x22,0x7e,0xb3,0x28,0xa8,0xbe,0xb0, +0x1, 0x22,0x12,0x0, 0xe, 0x7e,0x1f,0x13,0x86,0x22,0x7e,0xb3,0x37,0x31,0xbe,0xb0, +0x1, 0x22,0x7e,0x73,0x2a,0x2, 0xbe,0x70,0x0, 0x22,0x90,0x60,0xa7,0xe4,0x93,0x7c, +0xab,0x22,0xc1,0x42,0x3e,0xbd,0x40,0xbf,0x18,0x53, \ No newline at end of file diff --git a/drivers/input/touchscreen/FT5346/ft_app_ic_ds_ebbg_ili.txt b/drivers/input/touchscreen/FT5346/ft_app_ic_ds_ebbg_ili.txt new file mode 100644 index 0000000000000..a95fee0f439bf --- /dev/null +++ b/drivers/input/touchscreen/FT5346/ft_app_ic_ds_ebbg_ili.txt @@ -0,0 +1,3093 @@ +0x2, 0x1f,0xd2,0x2, 0xb5,0xb4,0xeb,0xaa,0x8, 0x22,0x22,0x2, 0x0, 0x42,0xb4,0x2, +0x4, 0xa9,0xb7,0xea,0x22,0x24,0xff,0xa9,0x97,0xea,0x22,0x2, 0x70,0x2d,0xb4,0x2, +0x4, 0xa9,0xb6,0xea,0x22,0x24,0xff,0xa9,0x96,0xea,0x22,0x2, 0x7d,0x45,0x7f,0x60, +0xa9,0xc2,0xea,0x74,0x1, 0x12,0x13,0x96,0x7f,0x6, 0x12,0x5, 0xb4,0x7f,0x6, 0x2, +0x9, 0xa1,0x32,0x2, 0x7d,0xa4,0xe4,0x2, 0x29,0xfa,0x22,0x2, 0x0, 0x5a,0x12,0x10, +0xa2,0x2, 0x13,0x79,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x32,0x2, 0x0, 0x76,0x1, 0x2, +0x4, 0x8, 0x10,0x20,0x40,0x80,0xa2,0x13,0x22,0x32,0xff,0x2, 0x0, 0x69,0x2, 0x31, +0xb3,0xff,0xff,0x2, 0x10,0x52,0xca,0x7b,0xca,0x6b,0xca,0x5b,0xca,0x4b,0xca,0x2b, +0xca,0x1b,0xca,0xb, 0xc0,0xd0,0xc0,0x83,0xc0,0x82,0xd2,0xb, 0x7e,0xf, 0x38,0xc8, +0x69,0x30,0x0, 0x4, 0x7a,0x73,0x38,0xd8,0x7e,0x73,0x38,0xd8,0xa, 0x37,0x5e,0x34, +0x0, 0x4, 0x68,0x4, 0xd2,0xa, 0x80,0x2, 0xc2,0xa, 0x7e,0x34,0x0, 0x1f,0x79,0x30, +0x0, 0x4, 0xc2,0xc3,0x12,0x12,0x9e,0x12,0x7f,0x5, 0x7e,0x1f,0x38,0xc8,0x69,0x31, +0x0, 0x2, 0x5e,0x34,0x0, 0x40,0x68,0x2e,0x6c,0xaa,0x7e,0x10,0x2, 0xac,0x1a,0x7e, +0x1f,0x38,0xc8,0x7f,0x71,0x2d,0xf0,0x69,0x17,0x0, 0x9c,0x59,0x10,0x38,0xcc,0xb, +0xa0,0xbe,0xa0,0x3, 0x78,0xe4,0x69,0x11,0x0, 0xa4,0x7a,0x17,0x38,0xd4,0x69,0x31, +0x0, 0xa2,0x7a,0x37,0x38,0xd2,0xa9,0xc1,0xc4,0xd0,0x82,0xd0,0x83,0xd0,0xd0,0xda, +0xb, 0xda,0x1b,0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda,0x7b,0x32,0x7d,0x13, +0x7e,0x1f,0x38,0xf7,0x1b,0x1a,0x10,0xc2,0xc6,0xd2,0xee,0x22,0xff,0xff,0x54,0x2c, +0xca,0x79,0x7f,0x50,0x7c,0xeb,0x7e,0x34,0x0, 0x24,0x7e,0x8, 0x0, 0x2c,0x7e,0x24, +0x0, 0x2, 0x12,0xb7,0xc7,0xe5,0x2c,0xbe,0xb0,0x0, 0x38,0x2, 0x21,0x4a,0xe5,0x2c, +0xbe,0xb0,0x76,0x28,0x2, 0x21,0x4a,0x7e,0xe1,0x2c,0xbe,0xe0,0x76,0x38,0x2, 0x21, +0x78,0x7e,0x34,0x1e,0x45,0x79,0x35,0x0, 0x2, 0x7e,0x34,0x1e,0x29,0x79,0x35,0x0, +0x4, 0xbe,0xe0,0x81,0x68,0x2, 0x21,0x71,0x74,0x23,0x7a,0x5b,0xb0,0x74,0x1c,0x61, +0x84,0x74,0x1, 0x7a,0x5b,0xb0,0x61,0x84,0x7c,0xbe,0x14,0xbe,0xb0,0x75,0x40,0x2, +0x61,0x33,0x7e,0xa0,0x3, 0xa4,0x2e,0x54,0x1, 0x8c,0x89,0x54,0x2, 0x2, 0xfb,0x2, +0x2, 0xfb,0x2, 0x3, 0x33,0x2, 0x2, 0xfb,0x2, 0x3, 0x33,0x2, 0x2, 0xed,0x2, 0x2, +0xfb,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x2, 0xfb,0x2, 0x3, 0x33,0x2, 0x2, 0xfb, +0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x25,0x2, 0x3, 0x33,0x2, 0x3, 0x9, 0x2, +0x2, 0xfb,0x2, 0x3, 0x17,0x2, 0x3, 0x17,0x2, 0x2, 0xfb,0x2, 0x3, 0x33,0x2, 0x3, +0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33, +0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, +0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, +0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33, +0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, +0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, +0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33, +0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, +0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, +0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33, +0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, +0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, +0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33, +0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, +0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, +0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33, +0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, +0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x2, 0xfb,0x41,0xfb,0x7e,0x34,0x1e, +0x45,0x79,0x35,0x0, 0x2, 0x7e,0x34,0x1d,0xe2,0x61,0x3f,0x7e,0x34,0x1e,0x19,0x79, +0x35,0x0, 0x2, 0x7e,0x34,0x1e,0x29,0x61,0x3f,0x7e,0x34,0x1e,0x19,0x79,0x35,0x0, +0x2, 0x7e,0x34,0x1d,0xb2,0x61,0x3f,0x7e,0x34,0x1d,0x96,0x79,0x35,0x0, 0x2, 0x7e, +0x34,0x1d,0xc6,0x61,0x3f,0x7e,0x34,0x1e,0xa, 0x79,0x35,0x0, 0x2, 0x7e,0x34,0x1d, +0xf1,0x61,0x3f,0x7e,0x34,0x1e,0x45,0x79,0x35,0x0, 0x2, 0x7e,0x34,0x1e,0x29,0x79, +0x35,0x0, 0x4, 0xbe,0xe0,0x16,0x28,0x2, 0x61,0x4e,0x7c,0xfe,0x61,0x62,0x7e,0xf0, +0x16,0xbe,0xe0,0x72,0x50,0x2, 0x61,0x62,0xa, 0x3e,0x9e,0x34,0x0, 0x72,0xb, 0x34, +0x2c,0xf7,0x7e,0x70,0x3, 0xac,0x7f,0x7d,0x23,0x2e,0x24,0x1e,0x69,0x7a,0x51,0x82, +0x7a,0x41,0x83,0xe4,0x93,0x7a,0x5b,0xb0,0x2e,0x34,0x1e,0x6a,0x7a,0x71,0x82,0x7a, +0x61,0x83,0xe4,0x93,0x39,0xb5,0x0, 0x1, 0xda,0x79,0x22,0xca,0x3b,0x7f,0x30,0x74, +0x1, 0x12,0x13,0xde,0x29,0x73,0x0, 0xf3,0x2e,0x70,0xff,0x92,0x4, 0x29,0xb3,0x0, +0xf4,0x12,0x13,0xaf,0x7f,0x3, 0x12,0xd, 0x72,0x7f,0x3, 0x12,0x6, 0xba,0x29,0x73, +0x0, 0xa, 0xa, 0x37,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x24,0x29,0x73,0x0, 0xa3, +0xa, 0x27,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24, +0x69,0x33,0x0, 0xff,0x4d,0x32,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x2, 0x29,0x73, +0x0, 0xa, 0xa, 0x47,0x29,0x73,0x0, 0x5, 0xa, 0x57,0x9d,0x54,0xf5,0x35,0x29,0xb3, +0x0, 0xa5,0x70,0xb, 0x29,0xb3,0x0, 0xf8,0x29,0x73,0x0, 0xf7,0x12,0xb, 0xad,0x29, +0x73,0x0, 0xa5,0x2e,0x70,0xff,0x92,0x4, 0xe5,0x35,0x12,0xb, 0x1e,0x69,0x33,0x0, +0xfd,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x28,0x69,0x23,0x0, 0xfb,0x3e,0x24,0x3e, +0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x29,0x73,0x0, 0xfa,0xa, 0x37,0x2d, +0x32,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x2a,0x29,0x73,0x0, 0xf9,0xa, 0x37,0x7e, +0xf, 0x38,0xc8,0x79,0x30,0x0, 0x2c,0x7e,0x34,0x0, 0x1, 0x7e,0xf, 0x38,0xc8,0x79, +0x30,0x0, 0x34,0x7e,0x34,0x1, 0xb, 0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x2e,0x29, +0x73,0x0, 0x5, 0xa, 0x37,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x10,0x69,0x33,0x0, +0xa8,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x1c,0x69,0x33,0x0, 0xaa,0x7e,0xf, 0x38, +0xc8,0x79,0x30,0x0, 0x1e,0x6c,0xaa,0x7e,0x50,0x2, 0xac,0x5a,0x69,0x13,0x1, 0x1, +0x2d,0x12,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0x30,0x7e,0xf, 0x38,0xc8,0x2d,0x12,0x79, +0x30,0x0, 0x44,0xb, 0xa0,0xbe,0xa0,0xc, 0x40,0xdd,0xda,0x3b,0x22,0xca,0xf8,0x7f, +0x70,0x7e,0x7b,0xf0,0x29,0x77,0x0, 0x1, 0xbc,0x7f,0x28,0x2, 0x7c,0xf7,0x69,0x17, +0x0, 0x6, 0x6d,0x0, 0x7e,0x34,0x0, 0xf2,0x74,0xff,0x12,0x20,0xde,0x7f,0x7, 0x12, +0xe, 0xed,0xa9,0xd6,0xcb,0x6c,0xaa,0x80,0x2d,0x6c,0x77,0x80,0x1f,0x7e,0x10,0xb, +0xac,0x1a,0xa, 0x17,0x2d,0x1, 0x3e,0x4, 0x69,0x17,0x0, 0x6, 0x2d,0x10,0x6d,0x0, +0xb, 0xa, 0x20,0x6e,0x24,0xff,0xff,0x1b,0xa, 0x20,0xb, 0x70,0x29,0x67,0x0, 0x1, +0xbc,0x67,0x38,0xd9,0xb, 0xa0,0x7e,0x7b,0x60,0xbc,0x6a,0x38,0xcc,0x69,0x37,0x0, +0x6, 0x7e,0xf, 0x39,0xd, 0x79,0x30,0x0, 0x4, 0x7c,0x4f,0x6c,0x55,0xa, 0x3f,0x2d, +0x32,0x7e,0xf, 0x39,0xd, 0x79,0x30,0x0, 0xc, 0x6d,0x11,0x7e,0x1f,0x39,0xd, 0x1b, +0x1a,0x10,0x7e,0x34,0x0, 0xd0,0x12,0xf, 0x45,0x6c,0xaa,0xbe,0xa0,0x4, 0x50,0x18, +0x7e,0x70,0x4, 0xac,0x7a,0x7c,0xb7,0x7e,0x1f,0x39,0xd, 0x69,0x41,0x0, 0x26,0x60, +0x42,0x1e,0x44,0x14,0x78,0xfb,0x80,0x3b,0xbe,0xa0,0x8, 0x50,0x1b,0xa, 0x3a,0x1b, +0x36,0x3e,0x34,0x3e,0x34,0x7c,0xb7,0x7e,0x1f,0x39,0xd, 0x69,0x41,0x0, 0x28,0x60, +0x22,0x1e,0x44,0x14,0x78,0xfb,0x80,0x1b,0xa, 0x3a,0x9e,0x34,0x0, 0x8, 0x3e,0x34, +0x3e,0x34,0x7c,0xb7,0x7e,0x1f,0x39,0xd, 0x69,0x41,0x0, 0x2a,0x60,0x5, 0x1e,0x44, +0x14,0x78,0xfb,0x5e,0x44,0x0, 0xf, 0x7e,0x50,0x2, 0xac,0x5a,0x69,0x37,0x0, 0x6, +0x2d,0x32,0x6d,0x22,0x1b,0x1a,0x40,0xb, 0xa0,0xbe,0xa0,0xb, 0x40,0x8d,0xa9,0xc6, +0xcb,0xda,0xf8,0x22,0x29,0x70,0x0, 0x96,0x29,0x90,0x0, 0x98,0x29,0x60,0x0, 0x97, +0x29,0x80,0x0, 0x8d,0xbe,0x80,0x4, 0x38,0x4, 0x6c,0xaa,0x80,0x21,0xbe,0x80,0x8, +0x38,0x5, 0x7e,0xa0,0x1, 0x80,0x17,0xbe,0x80,0x10,0x38,0x5, 0x7e,0xa0,0x2, 0x80, +0xd, 0xbe,0x80,0x20,0x38,0x5, 0x7e,0xa0,0x3, 0x80,0x3, 0x7e,0xa0,0x4, 0xbe,0x90, +0x3, 0x28,0x3, 0x7e,0x90,0x3, 0xbe,0x80,0x3f,0x28,0x3, 0x7e,0x80,0x3f,0xbe,0x60, +0x1, 0x28,0x3, 0x7e,0x60,0x1, 0xbe,0x70,0x2, 0x28,0x2, 0x6c,0x77,0xa, 0x28,0x3e, +0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x7c,0x89,0x6c,0x99,0x3e,0x44,0x3e, +0x44,0x3e,0x44,0x2d,0x42,0xa, 0x26,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x2d, +0x24,0xa, 0x37,0x3e,0x34,0x3e,0x34,0x2d,0x32,0x7e,0x7f,0x38,0xf7,0x79,0x37,0x0, +0x2, 0x29,0xb0,0x0, 0x8c,0x7c,0x4b,0x6c,0x55,0x29,0xb0,0x0, 0x8b,0xa, 0x3b,0x2d, +0x32,0x7e,0x7f,0x38,0xc0,0x79,0x37,0x0, 0x80,0x69,0x30,0x0, 0xa0,0x7e,0x7f,0x38, +0xf7,0x79,0x37,0x0, 0xc, 0x69,0x30,0x0, 0x9e,0x5e,0x34,0xe0,0xf, 0x29,0xb0,0x0, +0x8c,0xa, 0x2b,0x1b,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x2d,0x32,0x7e, +0x7f,0x38,0xc0,0x79,0x37,0x0, 0x82,0xa, 0x2a,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e, +0x24,0x29,0xb0,0x0, 0x99,0xa, 0x3b,0x2d,0x32,0x7e,0x7f,0x38,0xf7,0x79,0x37,0x0, +0x6, 0x69,0x30,0x0, 0x9c,0x7e,0x7f,0x38,0xf7,0x79,0x37,0x0, 0x8, 0x69,0x30,0x0, +0x9a,0x7e,0xf, 0x38,0xf7,0x79,0x30,0x0, 0xa, 0x22,0x7f,0x60,0x74,0x1, 0x12,0x13, +0xde,0x29,0x36,0x0, 0xf5,0x29,0x26,0x0, 0xa3,0x29,0x16,0x0, 0xa4,0xbe,0x20,0x2, +0x28,0x3, 0x7e,0x20,0x2, 0xbe,0x10,0x40,0x28,0x3, 0x7e,0x10,0x40,0x7e,0x34,0x0, +0x4, 0x7c,0xb2,0x60,0x5, 0x3e,0x34,0x14,0x78,0xfb,0x7c,0x7, 0xa, 0x31,0x7e,0x2f, +0x38,0xc8,0x79,0x32,0x0, 0x12,0x7c,0x73,0xac,0x70,0xa, 0x21,0x12,0x1e,0xb9,0x7c, +0x27,0xa, 0x32,0x7e,0x2f,0x38,0xc8,0x79,0x32,0x0, 0x14,0x7c,0x73,0xac,0x70,0x29, +0x26,0x0, 0xf6,0xa, 0x22,0xad,0x32,0xa, 0x21,0x8d,0x32,0x7d,0x43,0x7c,0x73,0xac, +0x70,0xa, 0x21,0x12,0x1e,0xb9,0x7c,0xa7,0x7c,0x2a,0x7c,0xb9,0x2c,0xab,0xbe,0xa0, +0xc, 0x50,0x3, 0x7e,0xa0,0xc, 0xbe,0x20,0xc, 0x50,0x3, 0x7e,0x20,0xc, 0xa, 0x20, +0xa, 0x31,0x12,0x1e,0xb9,0x7d,0xe3,0xa, 0x3a,0xb, 0x34,0xad,0x3e,0xb, 0x34,0xbe, +0x34,0x2, 0x0, 0x40,0x4, 0x7e,0x34,0x1, 0xff,0x29,0x46,0x0, 0xf7,0x7e,0x50,0x2, +0xac,0x45,0xa, 0xf2,0xad,0xfe,0x2d,0x2f,0xb, 0x24,0xbe,0x24,0x2, 0x0, 0x40,0x4, +0x7e,0x24,0x1, 0xff,0xa, 0x13,0x7e,0x7f,0x38,0xc8,0x79,0x17,0x0, 0xa, 0x1e,0x24, +0x7c,0x45,0x6c,0x55,0x1e,0x34,0x2d,0x32,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0xc, +0xa, 0x3a,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x22,0x22,0xa9,0xd6,0xcb,0x69,0x30, +0x0, 0x4, 0x7e,0x2f,0x39,0xd, 0x79,0x32,0x0, 0x4, 0x69,0x30,0x0, 0x6, 0x7e,0x2f, +0x39,0xd, 0x79,0x32,0x0, 0x6, 0x69,0x30,0x0, 0x8, 0x7e,0x2f,0x39,0xd, 0x79,0x32, +0x0, 0x8, 0x7e,0xb, 0x70,0x7c,0x47,0x6c,0x55,0x29,0x70,0x0, 0x1, 0xa, 0x37,0x2d, +0x32,0x7e,0x2f,0x39,0xd, 0x79,0x32,0x0, 0xc, 0x29,0x70,0x0, 0x2, 0xa, 0x37,0x7e, +0xf, 0x39,0xd, 0x79,0x30,0x0, 0xe, 0x6d,0x11,0x7e,0x1f,0x39,0xd, 0x1b,0x1a,0x10, +0x7e,0x34,0x0, 0xe0,0x12,0xf, 0x45,0xa9,0xc6,0xcb,0x22,0xb2,0x86,0x22,0xff,0xff, +0x7f,0x21,0xa9,0xd6,0xcb,0x69,0x30,0x0, 0x4, 0x7e,0x7f,0x39,0xd, 0x79,0x37,0x0, +0x4, 0x69,0x30,0x0, 0x8, 0x7e,0x7f,0x39,0xd, 0x79,0x37,0x0, 0x6, 0x69,0x30,0x0, +0x6, 0x7e,0x7f,0x39,0xd, 0x79,0x37,0x0, 0x8, 0x29,0x70,0x0, 0x1, 0x7c,0x47,0x6c, +0x55,0x7e,0xb, 0x70,0xa, 0x37,0x2d,0x32,0x7e,0x7f,0x39,0xd, 0x79,0x37,0x0, 0xc, +0x29,0x70,0x0, 0x2, 0xa, 0x37,0x1b,0x34,0x7e,0x7f,0x39,0xd, 0x79,0x37,0x0, 0xa, +0x69,0x30,0x0, 0xa, 0x7e,0x7f,0x39,0xd, 0x79,0x37,0x0, 0xe, 0x69,0x30,0x0, 0xc, +0x7e,0x7f,0x39,0xd, 0x79,0x37,0x0, 0x10,0x69,0x30,0x0, 0xe, 0x7e,0x7f,0x39,0xd, +0x79,0x37,0x0, 0x12,0x29,0x70,0x0, 0x3, 0x7c,0x27,0x6c,0x33,0x7e,0x1f,0x39,0xd, +0x1b,0x1a,0x10,0x7e,0x34,0x0, 0xa0,0x12,0xf, 0x45,0x7e,0x1f,0x39,0xd, 0x69,0x11, +0x0, 0x1a,0x7a,0x2b,0x30,0x69,0x11,0x0, 0x1c,0x39,0x32,0x0, 0x1, 0x69,0x11,0x0, +0x16,0x79,0x12,0x0, 0x2, 0x69,0x11,0x0, 0x18,0x79,0x12,0x0, 0x4, 0x69,0x11,0x0, +0x22,0x79,0x12,0x0, 0x6, 0x69,0x11,0x0, 0x24,0x79,0x12,0x0, 0x8, 0x69,0x11,0x0, +0x1e,0x79,0x12,0x0, 0xa, 0x69,0x31,0x0, 0x20,0x79,0x32,0x0, 0xc, 0xa9,0xc6,0xcb, +0x22,0xca,0x3b,0x7c,0x57,0x7c,0x4b,0x5e,0x40,0x3, 0x69,0x30,0x0, 0x4, 0x5e,0x60, +0x3f,0x6c,0xaa,0xa, 0x4a,0x69,0xf0,0x0, 0xa, 0x69,0xe0,0x0, 0x8, 0x2d,0xf4,0x7e, +0x7b,0xb0,0xa, 0xfb,0x7d,0x4f,0x7c,0x89,0x6c,0x99,0x7d,0xf4,0xa, 0xea,0x69,0xd0, +0x0, 0xe, 0x69,0xc0,0x0, 0xc, 0x2d,0xde,0x7e,0x6b,0xb0,0xa, 0x4b,0x2d,0x4f,0x7e, +0xd0,0x28,0xac,0xd5,0x7e,0xf0,0x2, 0xac,0xfa,0x7d,0xd7,0x2d,0xd6,0x7e,0xf0,0xf0, +0xac,0xf4,0x2d,0xd7,0x7e,0x7f,0x38,0xf3,0x2d,0xfd,0x79,0x47,0x1, 0x8c,0xb, 0xa0, +0xbe,0xa0,0xe, 0x78,0xae,0x6c,0xaa,0x7e,0x90,0x2, 0xac,0x9a,0x69,0xf0,0x0, 0x2, +0xb, 0xa, 0xe0,0x2d,0xf4,0xb, 0x7a,0x40,0x7e,0xd0,0x28,0xac,0xd5,0x7e,0xf0,0x2, +0xac,0xfa,0x7d,0xd7,0x2d,0xd6,0x7e,0xf0,0xf0,0xac,0xf4,0x2d,0xd7,0x7e,0x7f,0x38, +0xf3,0x2d,0xfd,0x79,0x47,0x1, 0x80,0xb, 0xa0,0xbe,0xa0,0x4, 0x40,0xc9,0x7e,0x90, +0xf0,0xac,0x94,0x74,0x28,0xac,0xb5,0x7d,0xf5,0x2d,0xf4,0x7e,0x2f,0x38,0xf3,0x2d, +0x5f,0x79,0x32,0x1, 0x88,0x69,0x30,0x0, 0x6, 0x7e,0x30,0xf0,0xac,0x34,0x74,0x28, +0xac,0x5b,0x2d,0x21,0x7e,0xf, 0x38,0xf3,0x2d,0x12,0x79,0x30,0x1, 0x8a,0xda,0x3b, +0x22,0x29,0x60,0x0, 0xb, 0xa, 0x46,0x29,0x60,0x0, 0x4, 0xa, 0x26,0x2d,0x24,0x7c, +0x65,0x29,0xb0,0x0, 0x6, 0xbc,0xb6,0x28,0x2, 0x7c,0x6b,0x29,0x70,0x0, 0x5, 0x29, +0xb0,0x0, 0x7, 0xbc,0xb7,0x28,0x2, 0x7c,0x7b,0x6c,0xaa,0x6d,0x22,0x7e,0x90,0x2, +0xac,0x9a,0x7e,0x7f,0x38,0xc0,0x2d,0xf4,0x79,0x27,0x0, 0x2, 0xb, 0xa0,0xbe,0xa0, +0x23,0x78,0xea,0x6c,0xaa,0x80,0x55,0xa, 0x2a,0x7f,0x70,0x2d,0xf2,0x29,0x57,0x0, +0x4c,0xbe,0x50,0x23,0x50,0x23,0x29,0x47,0x0, 0xb4,0xa, 0xd4,0x7d,0x4d,0x7c,0x89, +0x6c,0x99,0x7d,0xd4,0x7e,0x90,0x2, 0xac,0x95,0x7e,0x7f,0x38,0xc0,0x2d,0xf4,0xb, +0xf5,0xb, 0x7a,0x40,0x4d,0x4d,0x1b,0x7a,0x40,0xa, 0x4a,0x7f,0x70,0x2d,0xf4,0x29, +0x47,0x0, 0x4c,0xa, 0xd4,0x7e,0x90,0x2, 0xac,0x9a,0x7e,0x7f,0x38,0xc0,0x2d,0xf4, +0xb, 0xf5,0xb, 0x7a,0x40,0x4d,0x4d,0x1b,0x7a,0x40,0xb, 0xa0,0xbc,0x6a,0x38,0xa7, +0x6c,0xaa,0x80,0x1d,0xa, 0x2a,0x7f,0x70,0x2d,0xf2,0x29,0x67,0x0, 0x6f,0xa, 0x46, +0x7e,0x50,0x2, 0xac,0x5a,0x7e,0x7f,0x38,0xc0,0x2d,0xf2,0x79,0x47,0x0, 0x48,0xb, +0xa0,0xbc,0x7a,0x38,0xdf,0x22,0x7c,0x7b,0x7e,0x7f,0x38,0xc8,0x69,0x47,0x0, 0xc, +0x6c,0x88,0x3e,0x44,0x69,0x7, 0x0, 0xa, 0x69,0x57,0x0, 0x2, 0x1e,0x54,0x1e,0x54, +0x1e,0x54,0x1e,0x54,0x1e,0x54,0x1e,0x54,0x1e,0x54,0x5e,0x54,0x0, 0x3, 0x7e,0x14, +0x0, 0x4, 0x70,0x2, 0x41,0x9b,0x3e,0x14,0x14,0x78,0xfb,0x7c,0xa3,0xa, 0xda,0xad, +0xd0,0x7d,0xcd,0x6d,0x11,0x79,0x17,0x0, 0x8c,0x7c,0xb7,0x70,0x2, 0x41,0xb4,0x1e, +0xd4,0x14,0x78,0xfb,0xbe,0xd4,0x1, 0x0, 0x38,0x2, 0x41,0xc2,0x7e,0xd4,0x1, 0x0, +0x41,0xce,0xbe,0xd4,0x0, 0x10,0x40,0x2, 0x41,0xce,0x7e,0xd4,0x0, 0x10,0x7d,0x3d, +0x12,0x12,0x6a,0xa, 0x1b,0x7e,0x1f,0x38,0xc8,0x79,0x11,0x0, 0x90,0x7e,0x1f,0x38, +0xc8,0x79,0xd1,0x0, 0x8e,0x7e,0x7f,0x38,0xc8,0x69,0x37,0x0, 0x8, 0xad,0x3c,0x8d, +0x3d,0x79,0x37,0x0, 0x92,0x7e,0x14,0x0, 0x6, 0x7e,0x1f,0x38,0xc8,0x79,0x11,0x0, +0x94,0x7d,0x24,0x9d,0x20,0xa, 0x3a,0xad,0x32,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, +0x96,0x7e,0x34,0x0, 0x10,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x98,0x22,0x7c,0x5b, +0x7e,0xf, 0x38,0xc8,0x69,0x40,0x0, 0x22,0x30,0x4, 0x6b,0x6d,0xff,0x7d,0x3f,0xbe, +0x50,0x10,0x28,0x2e,0x7e,0x54,0xff,0xff,0x79,0x50,0x0, 0x42,0x9e,0x50,0x10,0x6c, +0xaa,0x80,0x11,0x7e,0xe4,0x0, 0x1, 0x7c,0xba,0x60,0x5, 0x3e,0xe4,0x14,0x78,0xfb, +0x2d,0x3e,0xb, 0xa0,0xbc,0x5a,0x38,0xeb,0x7e,0x6f,0x38,0xc8,0x79,0x36,0x0, 0x40, +0x80,0x25,0x79,0xf0,0x0, 0x40,0x6c,0xaa,0x80,0x11,0x7e,0xf4,0x0, 0x1, 0x7c,0xba, +0x60,0x5, 0x3e,0xf4,0x14,0x78,0xfb,0x2d,0x3f,0xb, 0xa0,0xbc,0x5a,0x38,0xeb,0x7e, +0x7f,0x38,0xc8,0x79,0x37,0x0, 0x42,0x7d,0x34,0x2e,0x34,0x0, 0xc, 0x7e,0x7f,0x38, +0xc8,0x79,0x37,0x0, 0x16,0x22,0x6d,0x33,0x79,0x30,0x0, 0x40,0x7e,0xf, 0x38,0xc8, +0x79,0x30,0x0, 0x42,0x7e,0x1f,0x38,0xc8,0x79,0x41,0x0, 0x16,0x22,0x7c,0x17,0x7c, +0x3b,0x6d,0x33,0x7e,0x2f,0x38,0xc8,0x79,0x32,0x0, 0x40,0x7e,0x2f,0x38,0xc8,0x79, +0x32,0x0, 0x42,0x7e,0x7f,0x38,0xc8,0x69,0x57,0x0, 0x12,0x7c,0xab,0x69,0x37,0x0, +0x2, 0x1e,0x34,0x1e,0x34,0x1e,0x34,0x1e,0x34,0x1e,0x34,0x1e,0x34,0x1e,0x34,0x5e, +0x34,0x0, 0x3, 0x7c,0xb7,0x7e,0x44,0x0, 0x4, 0x60,0x5, 0x3e,0x44,0x14,0x78,0xfb, +0x7c,0x29,0xa, 0x22,0xa, 0x3a,0x12,0x1e,0xb9,0xa, 0x23,0x2d,0x32,0x7c,0xb7,0x7c, +0x61,0x6c,0x77,0xa, 0xb, 0x1e,0x4, 0x2d,0x3, 0x79,0x7, 0x0, 0xc, 0x7c,0x73,0xac, +0x72,0xa, 0x2a,0x12,0x1e,0xb9,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x16,0x6d,0x33, +0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x22,0x22,0xa9,0xd6,0xcb,0x69,0x30,0x0, 0x6, +0x7e,0x2f,0x39,0xd, 0x79,0x32,0x0, 0x4, 0x69,0x30,0x0, 0x8, 0x7e,0x2f,0x39,0xd, +0x79,0x32,0x0, 0x8, 0x29,0x70,0x0, 0x2, 0x7c,0x47,0x6c,0x55,0x29,0x70,0x0, 0x3, +0xa, 0x37,0x2d,0x32,0x7e,0x2f,0x39,0xd, 0x79,0x32,0x0, 0xc, 0x7e,0xb, 0x70,0x7c, +0x47,0x29,0x70,0x0, 0x1, 0xa, 0x37,0x2d,0x32,0x7e,0x2f,0x39,0xd, 0x79,0x32,0x0, +0xa, 0x29,0x70,0x0, 0x4, 0xa, 0x37,0x7e,0x2f,0x39,0xd, 0x79,0x32,0x0, 0xe, 0x29, +0xb0,0x0, 0x5, 0x54,0x1, 0x7c,0x2b,0x6c,0x33,0x7e,0x1f,0x39,0xd, 0x1b,0x1a,0x10, +0x7e,0x34,0x0, 0xc0,0x12,0xf, 0x45,0xa9,0xc6,0xcb,0x22,0xca,0x79,0x7c,0xab,0x5e, +0xa0,0x3, 0x6c,0x77,0x7e,0x50,0x2, 0xac,0x57,0x69,0xd0,0x0, 0xe, 0x69,0xc0,0x0, +0xc, 0x2d,0xd2,0x29,0x66,0x0, 0x1, 0xa, 0xf6,0x7d,0x4f,0x7c,0x89,0x6c,0x99,0x7d, +0xf4,0x7e,0x6b,0x60,0xa, 0x46,0x2d,0x4f,0x7e,0xf0,0xf0,0xac,0xfa,0x2d,0x27,0x7e, +0x7f,0x38,0xf3,0x2d,0xf2,0x79,0x47,0x2, 0x54,0xb, 0x70,0xbe,0x70,0xe, 0x40,0xc4, +0x69,0x40,0x0, 0x4, 0x7e,0xf0,0xf0,0xac,0xfa,0x7e,0x1f,0x38,0xf3,0x2d,0x37,0x79, +0x41,0x2, 0x50,0x69,0x30,0x0, 0x6, 0x74,0xf0,0xa4,0x7e,0xf, 0x38,0xf3,0x2d,0x15, +0x79,0x30,0x2, 0x52,0xda,0x79,0x22,0xa9,0xd6,0xcb,0xc2,0x19,0x69,0x30,0x0, 0x4, +0x7e,0x2f,0x39,0xd, 0x79,0x32,0x0, 0x4, 0x69,0x30,0x0, 0x6, 0x7e,0x2f,0x39,0xd, +0x79,0x32,0x0, 0x6, 0x69,0x30,0x0, 0x8, 0x7e,0x2f,0x39,0xd, 0x79,0x32,0x0, 0x8, +0x7e,0xb, 0x70,0x7c,0x47,0x6c,0x55,0x29,0x70,0x0, 0x1, 0xa, 0x37,0x2d,0x32,0x7e, +0x2f,0x39,0xd, 0x79,0x32,0x0, 0xc, 0x29,0x70,0x0, 0x2, 0xa, 0x37,0x7e,0x2f,0x39, +0xd, 0x79,0x32,0x0, 0xe, 0x29,0xb0,0x0, 0x3, 0x54,0x1, 0xa, 0x5b,0x7c,0xab,0xe4, +0x7e,0x1f,0x39,0xd, 0x1b,0x1a,0x50,0x69,0x30,0x0, 0xa, 0x12,0xf, 0x45,0xa9,0xc6, +0xcb,0x22,0x69,0x30,0x0, 0xae,0x7e,0x2f,0x38,0xc8,0x79,0x32,0x0, 0x6, 0x29,0x50, +0x0, 0xa6,0xa, 0x55,0x7d,0x23,0x1e,0x24,0x9d,0x25,0x7e,0x2f,0x38,0xc8,0x79,0x22, +0x0, 0x18,0x7d,0x23,0x1e,0x24,0x1b,0x25,0x7e,0x2f,0x38,0xc8,0x79,0x22,0x0, 0x38, +0x69,0x20,0x0, 0xfd,0x1e,0x34,0x9d,0x32,0x9e,0x34,0x0, 0xa, 0x7e,0x2f,0x38,0xc8, +0x79,0x32,0x0, 0x26,0x29,0x70,0x0, 0xa7,0xa, 0x37,0x7e,0x2f,0x38,0xc8,0x79,0x32, +0x0, 0x1a,0x29,0x70,0x0, 0xb, 0xa, 0x27,0x29,0x70,0x0, 0x4, 0x2d,0x32,0x7e,0x2f, +0x38,0xc8,0x79,0x32,0x0, 0x8, 0x2, 0x9, 0xa1,0xca,0x3b,0xf5,0x24,0x7f,0x41,0x7f, +0x30,0xe5,0x25,0x7e,0x8, 0x0, 0x26,0x12,0x1, 0x20,0xe5,0x24,0xbe,0xb0,0x23,0x28, +0x3, 0x75,0x24,0x23,0x6c,0xaa,0x80,0x36,0xa, 0x3a,0x2d,0x39,0x7d,0x28,0x7e,0x1b, +0xb0,0xbe,0xb1,0x26,0x40,0xd, 0x74,0x23,0xa, 0x4a,0x7f,0x3, 0x2d,0x14,0x7a,0xb, +0xb0,0x80,0x19,0x7e,0x1b,0xb0,0xa, 0x3b,0x2e,0x35,0x28,0x7a,0x71,0x82,0x7a,0x61, +0x83,0xe4,0x93,0xa, 0x4a,0x7f,0x13,0x2d,0x34,0x7a,0x1b,0xb0,0xb, 0xa0,0xe5,0x24, +0xbc,0xba,0x38,0xc4,0xda,0x3b,0x22,0xa9,0xd6,0xcb,0x69,0x20,0x0, 0x4, 0x7e,0x2f, +0x39,0xd, 0x79,0x22,0x0, 0x4, 0x69,0x20,0x0, 0x8, 0x7e,0x2f,0x39,0xd, 0x79,0x22, +0x0, 0x8, 0x7e,0xb, 0x50,0xa, 0x55,0x7c,0xab,0xe4,0x29,0x50,0x0, 0x1, 0xa, 0x25, +0x2d,0x25,0x7e,0x2f,0x39,0xd, 0x79,0x22,0x0, 0xc, 0x29,0x50,0x0, 0x2, 0xa, 0x25, +0x7e,0xf, 0x39,0xd, 0x79,0x20,0x0, 0xe, 0x7e,0xf, 0x39,0xd, 0x79,0x30,0x0, 0xa, +0x6d,0x11,0x7e,0x1f,0x39,0xd, 0x1b,0x1a,0x10,0x7e,0x34,0x0, 0x40,0x12,0xf, 0x45, +0xa9,0xc6,0xcb,0x22,0x7c,0xab,0x7e,0x34,0x0, 0x1, 0x7e,0xf, 0x38,0xf7,0x79,0x30, +0x0, 0xe, 0xc2,0x18,0xe4,0x7a,0xb3,0x38,0xf2,0x5e,0xa0,0x3, 0xa, 0x1a,0x3e,0x14, +0x7e,0x1f,0x38,0xc0,0x1b,0x1a,0x10,0x7e,0xf, 0x38,0xc0,0x2e,0x14,0x0, 0x84,0xb, +0xa, 0x30,0x4e,0x70,0x20,0x1b,0xa, 0x30,0x74,0x1, 0x12,0x13,0x56,0x7e,0xf, 0x38, +0xf7,0xb, 0xa, 0x30,0x4e,0x70,0xc, 0x1b,0xa, 0x30,0xa9,0xd3,0xcd,0x7e,0xf, 0x38, +0xf7,0xb, 0x15,0xb, 0xa, 0x30,0x4e,0x70,0x1, 0x1b,0xa, 0x30,0x22,0x7f,0x10,0xa9, +0xd6,0xcb,0x69,0x11,0x0, 0x2, 0x7e,0x2f,0x39,0xd, 0x79,0x12,0x0, 0x4, 0x69,0x11, +0x0, 0x4, 0x7e,0x2f,0x39,0xd, 0x79,0x12,0x0, 0x6, 0x69,0x11,0x0, 0x6, 0x7e,0x2f, +0x39,0xd, 0x79,0x12,0x0, 0x8, 0x7e,0x1b,0x30,0xa, 0x3, 0x7e,0x14,0x1, 0x0, 0xad, +0x10,0x29,0x71,0x0, 0x1, 0xa, 0x37,0x2d,0x31,0x7e,0xf, 0x39,0xd, 0x79,0x30,0x0, +0xc, 0x6d,0x11,0x7e,0x1f,0x39,0xd, 0x1b,0x1a,0x10,0x7e,0x34,0x0, 0x60,0x12,0xf, +0x45,0xa9,0xc6,0xcb,0x22,0xa9,0xd7,0xcb,0x7d,0x23,0x4e,0x50,0x1, 0x7e,0xf, 0x39, +0xd, 0xb, 0xa, 0x30,0x4d,0x32,0x1b,0xa, 0x30,0x80,0x1e,0x7e,0xf, 0x39,0xd, 0xb, +0xa, 0x30,0x7d,0x23,0x5e,0x24,0x0, 0x8, 0xbe,0x24,0x0, 0x8, 0x78,0xb, 0xa9,0xd7, +0xcb,0x4e,0x70,0x4, 0x1b,0xa, 0x30,0xd2,0x19,0x7e,0xf, 0x39,0xd, 0xb, 0xa, 0x30, +0x7d,0x23,0x5e,0x24,0x80,0x0, 0xbe,0x24,0x80,0x0, 0x78,0xcf,0x4e,0x60,0x40,0x1b, +0xa, 0x30,0x6d,0x11,0x7e,0x1f,0x39,0xd, 0x1b,0x1a,0x10,0x22,0xca,0x3b,0xf5,0x24, +0x7f,0x41,0x7f,0x30,0xe5,0x25,0x7e,0x8, 0x0, 0x26,0x12,0x1, 0x20,0x6c,0xaa,0x80, +0x36,0xa, 0x3a,0x2d,0x39,0x7d,0x28,0x7e,0x1b,0xb0,0xbe,0xb1,0x27,0x40,0xd, 0x74, +0x1c,0xa, 0x4a,0x7f,0x3, 0x2d,0x14,0x7a,0xb, 0xb0,0x80,0x19,0x7e,0x1b,0xb0,0xa, +0x3b,0x2e,0x35,0x2a,0x7a,0x71,0x82,0x7a,0x61,0x83,0xe4,0x93,0xa, 0x4a,0x7f,0x13, +0x2d,0x34,0x7a,0x1b,0xb0,0xb, 0xa0,0xe5,0x24,0xbc,0xba,0x38,0xc4,0xda,0x3b,0x22, +0x5, 0x63,0x31,0x20,0x18,0x13,0xf, 0xd, 0xc, 0xa, 0x9, 0x8, 0x7, 0x6, 0x5, 0x4, +0xca,0xf8,0x7d,0xe2,0x7d,0xd3,0x7c,0xfb,0xbe,0x30,0x1, 0x28,0x6, 0x7e,0xf4,0x0, +0x10,0x80,0xf, 0xbe,0x30,0x0, 0x28,0x6, 0x7e,0xf4,0x0, 0x8, 0x80,0x4, 0x7e,0xf4, +0x0, 0x4, 0x7d,0x1f,0x6d,0x0, 0x6d,0x33,0x7e,0x24,0x0, 0x10,0x12,0x1f,0x58,0x7f, +0x1, 0x7d,0x3d,0x6d,0x22,0x12,0x1e,0xeb,0x7d,0x1e,0x12,0x1f,0x5, 0x74,0x4, 0xac, +0xbf,0x7e,0xf, 0x38,0xc8,0x2d,0x15,0x79,0x30,0x0, 0x82,0x79,0x20,0x0, 0x80,0xda, +0xf8,0x22,0xca,0x7b,0xca,0x6b,0xca,0x5b,0xca,0x4b,0xca,0x2b,0xca,0x1b,0xca,0xb, +0xc0,0xd0,0xc0,0x83,0xc0,0x82,0xd2,0x18,0x7e,0xf, 0x38,0xf7,0xb, 0xa, 0x30,0x7c, +0x57,0x7a,0x53,0x38,0xf2,0x4e,0x70,0xc, 0x1b,0xa, 0x30,0xc2,0xc6,0x6d,0x33,0x7e, +0xf, 0x38,0xf7,0x79,0x30,0x0, 0xe, 0x12,0x12,0x9e,0x12,0x7f,0x5, 0xd0,0x82,0xd0, +0x83,0xd0,0xd0,0xda,0xb, 0xda,0x1b,0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda, +0x7b,0x32,0x74,0x3, 0x12,0x13,0x56,0xa9,0xd1,0xc4,0x7e,0xf, 0x38,0xc0,0x2e,0x14, +0x0, 0x84,0xb, 0xa, 0x30,0x4e,0x70,0x20,0x1b,0xa, 0x30,0x7e,0x14,0x0, 0x1, 0x7e, +0x1f,0x38,0xc0,0x1b,0x1a,0x10,0x7e,0xf, 0x38,0xc8,0xb, 0x16,0xb, 0xa, 0x30,0x4e, +0x70,0x1, 0x1b,0xa, 0x30,0xc2,0xb, 0xe4,0x7a,0xb3,0x38,0xd8,0x7e,0x1f,0x38,0xc0, +0xb, 0x1a,0x30,0x5e,0x34,0x0, 0x1, 0x78,0xf3,0x74,0x2, 0x2, 0x13,0x56,0x7c,0x6b, +0x6c,0xaa,0x80,0x17,0x7e,0x90,0x2, 0xac,0x9a,0x7e,0x7f,0x38,0xf3,0x2d,0xf4,0xb, +0x7a,0x20,0x7f,0x70,0x2d,0xf4,0x1b,0x7a,0x20,0xb, 0xa0,0xbc,0x7a,0x38,0xe5,0x6c, +0xaa,0x80,0x20,0x7e,0x50,0x2, 0xac,0x5a,0x7e,0x7f,0x38,0xf3,0x2d,0xf2,0x69,0x27, +0x0, 0x38,0xa, 0xf7,0xa, 0x4a,0x2d,0x4f,0x3e,0x44,0x7f,0x70,0x2d,0xf4,0x1b,0x7a, +0x20,0xb, 0xa0,0xbc,0x6a,0x38,0xdc,0x22,0xca,0x79,0x7c,0xab,0x5e,0xa0,0x3, 0x6c, +0x77,0x7e,0x50,0x2, 0xac,0x57,0x7f,0x60,0x2d,0xd2,0x29,0x66,0x0, 0x1, 0xa, 0xf6, +0x7d,0x4f,0x7c,0x89,0x6c,0x99,0x7d,0xf4,0x7e,0x6b,0x60,0xa, 0x46,0x2d,0x4f,0x7e, +0xf0,0xf0,0xac,0xfa,0x2d,0x27,0x7e,0x7f,0x38,0xf3,0x2d,0xf2,0x79,0x47,0x2, 0x54, +0xb, 0x70,0xbe,0x70,0xe, 0x40,0xca,0xda,0x79,0x22,0x29,0x50,0x0, 0xf5,0xac,0x5b, +0x7e,0xf, 0x38,0xc8,0x69,0x30,0x0, 0xc, 0xa, 0x56,0x3e,0x54,0xbe,0x24,0x2, 0x0, +0x40,0x4, 0x7e,0x24,0x1, 0xff,0xbd,0x25,0x28,0x1f,0x2e,0x14,0x0, 0xc, 0x6c,0x66, +0x1b,0xa, 0x30,0x1e,0x24,0x7c,0x45,0x6c,0x55,0x7e,0xf, 0x38,0xc8,0x2e,0x14,0x0, +0xc, 0xb, 0xa, 0x30,0x4d,0x32,0x1b,0xa, 0x30,0x22,0x7c,0x6b,0x6c,0xaa,0x7e,0x50, +0x28,0xac,0x57,0x7e,0x90,0x2, 0xac,0x9a,0x2d,0x42,0x7e,0x50,0xf0,0xac,0x56,0x2d, +0x24,0x7e,0x7f,0x38,0xf3,0x2d,0xf2,0x69,0x27,0x1, 0x8c,0x6c,0x44,0xa, 0x4a,0x7f, +0x60,0x2d,0xd4,0x7e,0x6b,0xb0,0x7c,0x8b,0x6c,0x99,0x4d,0x24,0x79,0x27,0x1, 0x8c, +0xb, 0xa0,0xbe,0xa0,0xe, 0x40,0xc7,0x22,0x7c,0x6b,0x6c,0xaa,0x7e,0x50,0x28,0xac, +0x57,0x7e,0x90,0x2, 0xac,0x9a,0x2d,0x42,0x7e,0x50,0xf0,0xac,0x56,0x2d,0x24,0x7e, +0x7f,0x38,0xf3,0x2d,0xf2,0x69,0x27,0x1, 0x8c,0x6c,0x55,0xa, 0x4a,0x7f,0x60,0x2d, +0xd4,0x7e,0x6b,0xb0,0xa, 0x4b,0x4d,0x24,0x79,0x27,0x1, 0x8c,0xb, 0xa0,0xbe,0xa0, +0xe, 0x40,0xc9,0x22,0xa9,0xd6,0xcb,0x54,0x3f,0x5e,0x70,0x1f,0x7c,0x2b,0x6c,0x33, +0x3e,0x14,0x3e,0x14,0x2e,0x14,0x0, 0x5, 0xa, 0x37,0x3e,0x34,0x3e,0x34,0x3e,0x34, +0x3e,0x34,0x3e,0x34,0x2d,0x31,0x7e,0xf, 0x39,0xd, 0x79,0x30,0x0, 0x2, 0x7e,0xf, +0x39,0xd, 0x79,0x20,0x0, 0x14,0xa9,0xc6,0xcb,0x22,0x7d,0x23,0x6c,0x66,0x7e,0x30, +0x2, 0xac,0x36,0x2e,0x14,0x20,0x8f,0x7a,0x31,0x82,0x7a,0x21,0x83,0xe4,0x93,0xa, +0x1b,0xbd,0x12,0x28,0x7, 0xb, 0x60,0xbe,0x60,0x14,0x40,0xe2,0x7e,0x70,0x2, 0xac, +0x67,0x2e,0x34,0x20,0x90,0x7a,0x71,0x82,0x7a,0x61,0x83,0xe4,0x93,0x22,0x7e,0xf, +0x38,0xc0,0x2e,0x14,0x0, 0x84,0xb, 0xa, 0x30,0x5e,0x70,0xdf,0x1b,0xa, 0x30,0x74, +0x3, 0x12,0x13,0x56,0x7e,0x14,0x0, 0x3, 0x7e,0x1f,0x38,0xc0,0x1b,0x1a,0x10,0x7e, +0x1f,0x38,0xc0,0xb, 0x1a,0x30,0x5e,0x34,0x0, 0x1, 0x78,0xf3,0xe4,0x2, 0x13,0x56, +0x2e,0x34,0x4, 0x0, 0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x60,0x7e,0x34,0x4, 0x0, +0x9d,0x32,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x62,0x7e,0x34,0x0, 0x1, 0x7e,0xf, +0x38,0xc8,0x79,0x30,0x0, 0x64,0xa, 0x3b,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x66, +0x22,0x7c,0xa5,0xbe,0x34,0x0, 0x0, 0x28,0x10,0xa, 0x1b,0x3e,0x14,0x7d,0x23,0x7c, +0x45,0x6c,0x55,0x2d,0x21,0xa, 0x3a,0x80,0x8, 0xa, 0x2b,0x3e,0x24,0x7c,0x67,0x6c, +0x77,0x2d,0x32,0x7e,0xf, 0x38,0xf7,0x79,0x30,0x0, 0x4, 0x22,0x7c,0xa7,0x7e,0x1f, +0x38,0xc0,0x69,0x41,0x0, 0x8a,0x5e,0x44,0x10,0xf, 0xa, 0x1a,0x3e,0x14,0x3e,0x14, +0x3e,0x14,0x3e,0x14,0xa, 0x5b,0xc4,0x23,0x54,0xe0,0x7c,0xab,0xe4,0x2d,0x51,0x4d, +0x45,0x79,0x41,0x0, 0x8a,0x22,0x7e,0xf, 0x38,0xc0,0x69,0x30,0x0, 0x84,0x5e,0x70, +0xe7,0x1b,0xb1,0x68,0xc, 0x14,0x68,0xc, 0xb, 0xb1,0x78,0x5, 0x4e,0x70,0x10,0x80, +0x3, 0x4e,0x70,0x8, 0x79,0x30,0x0, 0x84,0x22,0x7e,0x34,0x0, 0x1f,0x7e,0xf, 0x38, +0xc8,0x79,0x30,0x0, 0x4, 0xa9,0xd2,0xcd,0x7e,0xf, 0x38,0xc8,0xb, 0xa, 0x30,0x4e, +0x70,0x1, 0x1b,0xa, 0x30,0x22,0xbe,0xb0,0x0, 0x28,0xa, 0xa9,0xd7,0xca,0xa9,0xd3, +0xcb,0xa9,0xd2,0xcb,0x22,0xa9,0xc7,0xca,0xa9,0xc3,0xcb,0xa9,0xc2,0xcb,0x22,0x30, +0x4, 0xa, 0x54,0x3, 0xa, 0x3b,0x2e,0x34,0x2, 0x0, 0x80,0x2, 0x6d,0x33,0x7e,0xf, +0x38,0xc8,0x79,0x30,0x0, 0x3a,0x22,0x7e,0xf, 0x38,0xc0,0x69,0x30,0x0, 0x8a,0x60, +0x5, 0x4e,0x60,0x10,0x80,0x3, 0x5e,0x60,0xef,0x79,0x30,0x0, 0x8a,0x22,0xbe,0xb0, +0x0, 0x28,0x9, 0xa9,0xd6,0xca,0xd2,0xcd,0xa9,0xd1,0xcb,0x22,0xa9,0xc6,0xca,0xc2, +0xcd,0xa9,0xc1,0xcb,0x22,0x7e,0x34,0x0, 0xf, 0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, +0x4, 0xc2,0xc3,0xd2,0xeb,0x22,0x6, 0xe, 0x15,0x1a,0x1f,0x26,0x2b,0x2d,0x2e,0x2f, +0x2c,0x2a,0x24,0x1f,0x1a,0x14,0xf, 0x8, 0x3, 0x3, 0x6, 0xb, 0x10,0x15,0x1c,0x22, +0x28,0x2d,0x34,0x39,0x3d,0x40,0xe, 0x3, 0x0, 0x0, 0x0, 0x3, 0x8, 0xc, 0x11,0x16, +0x1c,0x23,0x2b,0x32,0x37,0x3c,0x40,0x45,0x4a,0x4d,0x4c,0x4b,0x4a,0x48,0x46,0x46, +0x45,0x45,0x44,0x44,0x43,0x44,0x45,0x78,0x65,0x55,0x2, 0xd, 0x14,0x1b,0x21,0x25, +0x2b,0x31,0x37,0x36,0x33,0x2d,0x28,0x20,0x19,0x14,0xd, 0x8, 0x1, 0x2, 0x5, 0xb, +0x10,0x18,0x1e,0x23,0x2a,0x30,0x35,0x3a,0x3e,0x3f,0x0, 0x1, 0x1, 0x0, 0x0, 0x0, +0x0, 0x0, 0x1, 0x4, 0x9, 0xf, 0x15,0x1d,0x24,0x2a,0x30,0x35,0x3b,0x3e,0x3f,0x40, +0x3f,0x3e,0x3d,0x3d,0x3c,0x3c,0x3b,0x3b,0x39,0x37,0x1a,0x2d,0x65,0x55,0x1b,0x29, +0x27,0x1e,0x14,0x11,0x1a,0x26,0x2e,0x37,0x3d,0x3f,0x3d,0x37,0x2e,0x21,0x16,0xc, +0x5, 0x1, 0x0, 0x0, 0x1, 0x3, 0xa, 0x13,0x1d,0x26,0x2e,0x33,0x38,0x3a,0x16,0x21, +0x2b,0x32,0x30,0x2a,0x27,0x2a,0x2f,0x2d,0x24,0x1a,0x10,0x7, 0x1, 0x0, 0x2, 0x7, +0x10,0x19,0x23,0x2d,0x36,0x41,0x49,0x4c,0x4a,0x45,0x3c,0x34,0x2a,0x27,0x51,0x71, +0x50,0x55,0x28,0x12,0x11,0x18,0x23,0x29,0x2b,0x2a,0x2e,0x35,0x3c,0x3e,0x3f,0x39, +0x31,0x28,0x1e,0x15,0xe, 0x6, 0x3, 0x1, 0x0, 0x0, 0x3, 0xc, 0x16,0x20,0x2b,0x32, +0x37,0x39,0x20,0x29,0x32,0x37,0x31,0x28,0x21,0x2a,0x31,0x2d,0x23,0x1b,0x13,0x8, +0x1, 0x0, 0x1, 0x5, 0xc, 0x18,0x20,0x29,0x34,0x3e,0x47,0x4f,0x50,0x4d,0x45,0x3c, +0x34,0x31,0x26,0xcb,0x50,0x55,0x1d,0x2f,0x2c,0x25,0x1a,0x1b,0x20,0x29,0x31,0x31, +0x2e,0x2d,0x35,0x3d,0x3f,0x3d,0x38,0x2c,0x22,0x15,0xd, 0x6, 0x1, 0x0, 0x1, 0x6, +0x10,0x1b,0x24,0x2f,0x38,0x3d,0xd, 0x1b,0x27,0x31,0x32,0x28,0x1e,0x14,0x15,0x1d, +0x28,0x31,0x34,0x2a,0x1f,0x14,0x9, 0x1, 0x0, 0x4, 0xd, 0x17,0x21,0x2c,0x35,0x40, +0x47,0x47,0x44,0x3c,0x34,0x30,0x1b,0x82,0x50,0x55,0x19,0x2e,0x2a,0x1f,0x18,0x1b, +0x22,0x2d,0x30,0x2e,0x2e,0x35,0x3d,0x3f,0x3d,0x3a,0x2f,0x24,0x18,0xf, 0x7, 0x1, +0x0, 0x0, 0x3, 0xb, 0x16,0x1e,0x29,0x32,0x3a,0x3d,0x11,0x1f,0x28,0x32,0x30,0x26, +0x1b,0x14,0x1c,0x25,0x2e,0x35,0x2e,0x23,0x19,0x11,0x4, 0x0, 0x1, 0x8, 0x10,0x1c, +0x25,0x30,0x38,0x40,0x42,0x3f,0x39,0x32,0x2c,0x27,0xc0,0xd1,0x50,0x55,0x18,0x2c, +0x29,0x1e,0x14,0x13,0x16,0x1e,0x29,0x30,0x2e,0x2c,0x2b,0x37,0x3d,0x3f,0x3e,0x39, +0x30,0x25,0x1b,0x10,0x8, 0x1, 0x0, 0x2, 0x9, 0x13,0x1f,0x2d,0x38,0x3c,0x11,0x1a, +0x23,0x2f,0x33,0x29,0x20,0x16,0xe, 0x13,0x1d,0x28,0x32,0x31,0x28,0x1e,0x16,0xb, +0x2, 0x0, 0x1, 0x8, 0x12,0x1e,0x29,0x33,0x3b,0x3f,0x3c,0x32,0x29,0x26,0x30,0x6e, +0x50,0x55,0x16,0x2b,0x24,0x17,0xd, 0xa, 0xe, 0x15,0x24,0x28,0x25,0x23,0x2b,0x36, +0x3b,0x3d,0x3b,0x37,0x2b,0x20,0x15,0xb, 0x4, 0x0, 0x0, 0x3, 0xe, 0x19,0x27,0x33, +0x3d,0x3f,0x13,0x21,0x2e,0x37,0x3a,0x31,0x27,0x1c,0x13,0x1c,0x28,0x34,0x3e,0x37, +0x2d,0x22,0x18,0xc, 0x1, 0x0, 0x3, 0xd, 0x18,0x25,0x31,0x3c,0x47,0x48,0x42,0x38, +0x2e,0x2a,0x31,0x62,0x50,0x55,0x35,0x2e,0x27,0x22,0x1f,0x1b,0x16,0x10,0xc, 0x8, +0x6, 0x4, 0x2, 0x0, 0x0, 0x0, 0x1, 0x3, 0x6, 0xb, 0xe, 0x12,0x17,0x1d,0x22,0x26, +0x2a,0x30,0x35,0x39,0x3d,0x3f,0x0, 0x0, 0x1, 0x4, 0x6, 0x8, 0xb, 0x10,0x16,0x1b, +0x1f,0x23,0x28,0x2d,0x32,0x36,0x3b,0x40,0x44,0x48,0x4a,0x4b,0x4c,0x4b,0x4a,0x48, +0x46,0x43,0x40,0x3e,0x3c,0x3a,0x3c,0x9c,0x34,0x55,0x9, 0x17,0x1d,0x26,0x2e,0x37, +0x3c,0x3f,0x3b,0x33,0x2b,0x22,0x1a,0x11,0xb, 0x5, 0x3, 0x1, 0x1, 0x0, 0x0, 0x0, +0x1, 0x6, 0xa, 0x11,0x19,0x22,0x2a,0x32,0x39,0x3d,0x30,0x30,0x2f,0x2c,0x26,0x1e, +0x17,0xd, 0x5, 0x0, 0x0, 0x1, 0x6, 0xe, 0x15,0x1e,0x26,0x2c,0x32,0x3a,0x41,0x48, +0x50,0x5b,0x61,0x64,0x64,0x60,0x5b,0x56,0x51,0x4f,0xd8,0x2c,0x33,0x55,0x26,0x1c, +0x19,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x17,0x17,0x15,0xf, 0x9, 0x4, 0x1, 0x0, +0x0, 0x0, 0x0, 0x1, 0x4, 0xb, 0x12,0x18,0x1f,0x28,0x31,0x37,0x3c,0x40,0x1, 0x7, +0xe, 0x14,0x1c,0x23,0x2c,0x34,0x3e,0x44,0x4c,0x54,0x5b,0x60,0x5d,0x55,0x4f,0x49, +0x43,0x3d,0x38,0x32,0x2b,0x26,0x22,0x1f,0x1e,0x1c,0x1c,0x1c,0x1c,0x1d,0x66,0x54, +0x74,0x55,0x3e,0x2c,0x21,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d, +0x1e,0x1e,0x1d,0x1a,0x11,0xc, 0x7, 0x2, 0x0, 0x0, 0x3, 0xa, 0x12,0x1c,0x23,0x2c, +0x38,0x40,0xc, 0x0, 0x6, 0xf, 0x17,0x22,0x29,0x32,0x3b,0x41,0x47,0x4f,0x55,0x5c, +0x66,0x71,0x79,0x3e,0x76,0x6d,0x64,0x5a,0x52,0x4b,0x42,0x39,0x35,0x33,0x32,0x32, +0x31,0x31,0xf3,0xdb,0x74,0x55,0x9, 0x7, 0x6, 0x6, 0x5, 0x5, 0x4, 0x4, 0x4, 0x4, +0x3, 0x2, 0x2, 0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xa, 0x10,0x14,0x1b,0x22, +0x28,0x2e,0x34,0x39,0x3d,0x40,0x0, 0xb, 0x11,0x16,0x1b,0x22,0x28,0x2c,0x33,0x39, +0x40,0x46,0x4d,0x52,0x56,0x5c,0x61,0x68,0x6d,0x73,0x73,0x71,0x71,0x71,0x70,0x70, +0x6f,0x6f,0x6f,0x6f,0x6d,0x6e,0x79,0x80,0x44,0x55,0x17,0x13,0x12,0x12,0x11,0x10, +0xf, 0xd, 0xc, 0xb, 0x9, 0x8, 0x7, 0x4, 0x3, 0x2, 0x1, 0x0, 0x0, 0x0, 0x1, 0x4, +0xb, 0x10,0x16,0x1d,0x24,0x29,0x31,0x39,0x3d,0x40,0x0, 0xe, 0x16,0x1a,0x1f,0x24, +0x29,0x2e,0x33,0x38,0x3e,0x43,0x47,0x50,0x55,0x59,0x62,0x69,0x6e,0x75,0x7c,0xff, +0x7d,0x7c,0x79,0x73,0x6d,0x68,0x60,0x5a,0x57,0x56,0x5d,0x8, 0x44,0x55,0x0, 0x7, +0xb, 0xd, 0x10,0x12,0x16,0x17,0x17,0x18,0x18,0x19,0x19,0x19,0x1c,0x1e,0x20,0x22, +0x23,0x25,0x27,0x29,0x2b,0x30,0x32,0x33,0x35,0x38,0x39,0x3b,0x3d,0x3f,0x3e,0x29, +0x1f,0x18,0xf, 0x7, 0x6, 0xc, 0x12,0x1d,0x25,0x2d,0x36,0x3e,0x3b,0x35,0x2c,0x26, +0x20,0x19,0x11,0xa, 0x3, 0x3, 0x9, 0x10,0x18,0x24,0x2c,0x33,0x3a,0x3e,0x60,0x9b, +0x32,0x55,0x0, 0x5, 0x5, 0x5, 0x4, 0x3, 0x2, 0x3, 0x5, 0x7, 0xa, 0xe, 0x11,0x19, +0x1b,0x1c,0x1d,0x1c,0x1c,0x1d,0x1f,0x22,0x25,0x2a,0x31,0x33,0x35,0x37,0x38,0x39, +0x3c,0x40,0x0, 0x12,0x1c,0x24,0x2b,0x34,0x3c,0x39,0x2f,0x29,0x21,0x16,0xf, 0xd, +0x14,0x1e,0x2a,0x33,0x31,0x27,0x20,0x18,0x10,0x7, 0xa, 0x10,0x1a,0x26,0x2f,0x37, +0x3d,0x3f,0xfb,0x8f,0x32,0x55,0x2c,0x23,0x1f,0x19,0x13,0xc, 0x7, 0x3, 0x0, 0x0, +0x0, 0x1, 0x5, 0xa, 0xf, 0x16,0x1d,0x23,0x2a,0x30,0x36,0x3b,0x3e,0x40,0x3f,0x3e, +0x3b,0x38,0x33,0x2f,0x2b,0x28,0x9, 0x1, 0x0, 0x1, 0x3, 0x9, 0xe, 0x14,0x1b,0x21, +0x27,0x2e,0x36,0x3b,0x3e,0x41,0x41,0x40,0x3d,0x3a,0x36,0x2f,0x2b,0x26,0x20,0x1c, +0x16,0x10,0xc, 0xa, 0x9, 0xb, 0x36,0xdc,0x30,0x55,0x1a,0x9, 0x5, 0x1, 0x0, 0x0, +0x0, 0x2, 0x5, 0x9, 0xf, 0x16,0x1c,0x22,0x2a,0x31,0x36,0x39,0x3c,0x3e,0x3f,0x3f, +0x3d,0x38,0x30,0x27,0x1f,0x18,0x12,0xb, 0x6, 0x5, 0x7, 0x12,0x19,0x22,0x2c,0x36, +0x3f,0x49,0x53,0x5c,0x63,0x66,0x64,0x5f,0x58,0x4c,0x43,0x3d,0x34,0x2b,0x22,0x1b, +0x15,0xb, 0x4, 0x0, 0x0, 0x1, 0x4, 0xb, 0x13,0x18,0xf1,0xc, 0x30,0x55,0x18,0x2c, +0x34,0x39,0x3c,0x3d,0x3f,0x3f,0x3f,0x3d,0x3b,0x36,0x30,0x2a,0x24,0x1c,0x16,0xd, +0x6, 0x1, 0x0, 0x0, 0x0, 0x1, 0x1, 0x3, 0x5, 0x9, 0xf, 0x17,0x1e,0x24,0x1, 0x2, +0x8, 0xe, 0x14,0x1a,0x21,0x28,0x30,0x37,0x40,0x49,0x50,0x55,0x59,0x5c,0x5c,0x58, +0x51,0x48,0x3f,0x38,0x31,0x2b,0x25,0x1d,0x17,0x11,0xa, 0x4, 0x1, 0x1, 0x9d,0xbf, +0x30,0x55,0x16,0x7, 0x2, 0x0, 0x0, 0x0, 0x0, 0x1, 0x4, 0x8, 0xe, 0x16,0x1f,0x28, +0x30,0x38,0x3c,0x3e,0x3f,0x40,0x3f,0x3f,0x3d,0x3b,0x37,0x32,0x2c,0x25,0x1d,0x16, +0xf, 0xc, 0x53,0x46,0x3e,0x35,0x2e,0x27,0x20,0x1a,0x14,0xd, 0x6, 0x1, 0x0, 0x0, +0x3, 0xa, 0x13,0x1a,0x20,0x27,0x2d,0x33,0x3a,0x40,0x48,0x4f,0x54,0x58,0x5a,0x5a, +0x58,0x57,0xc6,0x55,0x30,0x55,0x7, 0x1, 0x4, 0xa, 0x10,0x18,0x20,0x2a,0x32,0x38, +0x3c,0x3e,0x3f,0x3e,0x3d,0x3b,0x39,0x35,0x30,0x27,0x21,0x19,0x12,0xb, 0x6, 0x3, +0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x32,0x1d,0x12,0x9, 0x5, 0x1, 0x0, 0x0, 0x1, 0x5, +0xd, 0x17,0x20,0x2a,0x32,0x3b,0x45,0x4e,0x58,0x63,0x69,0x6b,0x6a,0x64,0x5d,0x57, +0x4f,0x47,0x40,0x38,0x32,0x2f,0x1a,0xb5,0x30,0x55,0x21,0x13,0xc, 0x8, 0x5, 0x2, +0x1, 0x0, 0x0, 0x1, 0x3, 0x8, 0xf, 0x17,0x1e,0x24,0x2b,0x32,0x39,0x3d,0x3e,0x3f, +0x3f,0x3d,0x3a,0x36,0x30,0x29,0x21,0x1a,0x16,0x13,0x5, 0x9, 0xe, 0x14,0x1a,0x22, +0x29,0x30,0x38,0x3f,0x47,0x4d,0x51,0x51,0x4f,0x4d,0x49,0x42,0x39,0x31,0x2b,0x25, +0x1e,0x17,0x10,0x8, 0x3, 0x0, 0x0, 0x1, 0x3, 0x5, 0xaf,0x13,0x30,0x55,0x38,0x3f, +0x3d,0x3a,0x36,0x2e,0x26,0x1f,0x14,0xb, 0x6, 0x2, 0x0, 0x0, 0x0, 0x1, 0x2, 0x5, +0x9, 0xe, 0x14,0x1c,0x23,0x2a,0x34,0x38,0x3a,0x3b,0x3d,0x3d,0x3d,0x3d,0x29,0x1a, +0x10,0x9, 0x4, 0x0, 0x0, 0x1, 0x4, 0xc, 0x14,0x1c,0x22,0x28,0x2f,0x37,0x3f,0x47, +0x4f,0x56,0x5a,0x5b,0x59,0x56,0x4e,0x47,0x40,0x37,0x30,0x28,0x22,0x1f,0x2a,0xa9, +0x30,0x55,0x3e,0x3b,0x38,0x33,0x2b,0x24,0x1d,0x16,0x10,0x7, 0x3, 0x1, 0x0, 0x0, +0x0, 0x1, 0x1, 0x3, 0x6, 0xc, 0x15,0x1c,0x23,0x29,0x2f,0x35,0x38,0x3b,0x3c,0x3e, +0x3f,0x3f,0x1f,0x10,0xa, 0x6, 0x0, 0x0, 0x0, 0x2, 0x4, 0xc, 0x12,0x18,0x1e,0x25, +0x2c,0x35,0x3c,0x42,0x4a,0x51,0x56,0x56,0x53,0x4e,0x49,0x40,0x3a,0x33,0x2c,0x25, +0x1f,0x1c,0xf9,0xa2,0x30,0x55,0x1f,0x2b,0x31,0x35,0x38,0x3b,0x3e,0x3f,0x3f,0x3d, +0x3a,0x34,0x2d,0x27,0x23,0x1d,0x17,0x10,0x9, 0x4, 0x1, 0x0, 0x0, 0x1, 0x3, 0x6, +0xa, 0xf, 0x15,0x1b,0x20,0x23,0x45,0x42,0x3e,0x38,0x34,0x2d,0x24,0x1c,0x15,0x11, +0xb, 0x6, 0x2, 0x0, 0x0, 0x0, 0x1, 0x3, 0x7, 0xd, 0x12,0x18,0x20,0x28,0x30,0x36, +0x3c,0x42,0x47,0x48,0x49,0x4a,0x65,0x9d,0x30,0x55,0x1c,0x2a,0x33,0x39,0x3c,0x3e, +0x3f,0x3f,0x3e,0x3d,0x3a,0x35,0x2e,0x28,0x23,0x1c,0x15,0xf, 0x9, 0x4, 0x1, 0x0, +0x0, 0x1, 0x1, 0x4, 0x8, 0xd, 0x13,0x19,0x1e,0x22,0x40,0x3e,0x3a,0x33,0x2f,0x29, +0x22,0x1b,0x15,0x10,0xa, 0x5, 0x1, 0x0, 0x0, 0x1, 0x2, 0x5, 0xa, 0x11,0x17,0x1c, +0x24,0x2a,0x30,0x35,0x3b,0x40,0x43,0x44,0x45,0x45,0xcb,0xc6,0x30,0x55,0x5, 0x3, +0x4, 0x7, 0xa, 0x10,0x17,0x21,0x28,0x2e,0x33,0x38,0x3c,0x3e,0x3f,0x3f,0x3e,0x3b, +0x38,0x31,0x29,0x21,0x18,0xf, 0x9, 0x4, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x26,0x35, +0x3d,0x45,0x4b,0x51,0x53,0x52,0x4f,0x4c,0x46,0x41,0x3b,0x34,0x2e,0x25,0x1e,0x17, +0x11,0x9, 0x3, 0x0, 0x0, 0x2, 0x6, 0xc, 0x12,0x18,0x1e,0x24,0x2c,0x31,0xf4,0xb6, +0x30,0x55,0xa, 0x5, 0x5, 0x5, 0x8, 0xf, 0x16,0x20,0x29,0x31,0x36,0x3a,0x3c,0x3e, +0x3f,0x3f,0x3e,0x3c,0x3a,0x33,0x2d,0x24,0x1c,0x14,0xf, 0x8, 0x4, 0x0, 0x0, 0x0, +0x1, 0x2, 0x35,0x46,0x4e,0x56,0x5d,0x65,0x68,0x66,0x60,0x57,0x4f,0x47,0x3f,0x37, +0x2e,0x25,0x1e,0x16,0x10,0x6, 0x2, 0x0, 0x1, 0x5, 0xb, 0x15,0x1d,0x28,0x2f,0x39, +0x41,0x45,0xf0,0xbc,0x30,0x55,0x7, 0x3, 0x3, 0x3, 0x4, 0x7, 0xf, 0x17,0x20,0x28, +0x30,0x36,0x3b,0x3d,0x3f,0x3f,0x3d,0x39,0x36,0x2d,0x25,0x1d,0x16,0xd, 0x8, 0x2, +0x0, 0x0, 0x1, 0x2, 0x3, 0x5, 0x2e,0x3f,0x48,0x50,0x59,0x5f,0x67,0x68,0x63,0x5d, +0x52,0x4a,0x3e,0x35,0x2b,0x20,0x18,0x10,0xa, 0x3, 0x0, 0x0, 0x1, 0x7, 0xe, 0x19, +0x22,0x2b,0x31,0x3a,0x42,0x47,0xef,0xc9,0x30,0x55,0x3b,0x3c,0x3c,0x3b,0x39,0x36, +0x2f,0x27,0x21,0x19,0x11,0xb, 0x5, 0x1, 0x0, 0x0, 0x1, 0x2, 0x4, 0x6, 0xa, 0x10, +0x16,0x1f,0x26,0x2d,0x33,0x39,0x3c,0x3e,0x3f,0x3f,0x22,0x31,0x3b,0x41,0x47,0x4d, +0x56,0x59,0x5a,0x58,0x55,0x51,0x4b,0x43,0x3d,0x35,0x29,0x20,0x18,0x11,0x9, 0x3, +0x0, 0x0, 0x1, 0x3, 0x7, 0xf, 0x15,0x1b,0x21,0x26,0x2b,0xa0,0x30,0x55,0x37,0x38, +0x37,0x34,0x2d,0x26,0x1c,0x16,0xe, 0x9, 0x4, 0x2, 0x0, 0x0, 0x0, 0x1, 0x2, 0x5, +0xa, 0x10,0x17,0x20,0x26,0x2e,0x35,0x3a,0x3c,0x3e,0x3f,0x3f,0x3e,0x3e,0x30,0x40, +0x49,0x50,0x59,0x5e,0x60,0x5d,0x56,0x50,0x47,0x41,0x39,0x33,0x2a,0x20,0x1a,0x10, +0xa, 0x5, 0x1, 0x0, 0x0, 0x3, 0x8, 0x10,0x17,0x1f,0x25,0x2f,0x38,0x3c,0x37,0xc3, +0x30,0x55,0x3b,0x3d,0x3d,0x3b,0x38,0x32,0x27,0x1c,0x13,0xe, 0x8, 0x3, 0x0, 0x0, +0x0, 0x1, 0x3, 0x7, 0xb, 0x12,0x18,0x20,0x28,0x31,0x39,0x3d,0x3f,0x40,0x3f,0x3f, +0x3e,0x3e,0x33,0x45,0x4e,0x57,0x5d,0x65,0x6c,0x6a,0x66,0x63,0x5c,0x53,0x4a,0x40, +0x38,0x2e,0x25,0x1a,0x11,0x8, 0x4, 0x0, 0x0, 0x2, 0x9, 0x10,0x19,0x21,0x2a,0x32, +0x39,0x3e,0x7, 0x90,0x30,0x55,0x39,0x2b,0x24,0x1c,0x15,0xe, 0x9, 0x6, 0x5, 0x6, +0x9, 0x10,0x19,0x22,0x27,0x2e,0x35,0x3b,0x3e,0x3f,0x3d,0x38,0x32,0x2c,0x26,0x1f, +0x19,0x13,0xb, 0x5, 0x1, 0x0, 0x6, 0x0, 0x1, 0x2, 0x6, 0xb, 0x11,0x17,0x1d,0x24, +0x2a,0x2f,0x32,0x34,0x35,0x36,0x37,0x3b,0x41,0x47,0x4e,0x56,0x5d,0x61,0x64,0x65, +0x65,0x63,0x60,0x5c,0x57,0x54,0xd1,0x4a,0x46,0x55,0x0, 0x1, 0x3, 0x5, 0x7, 0x8, +0xa, 0xb, 0xc, 0xe, 0xf, 0x11,0x12,0x14,0x16,0x1a,0x1e,0x22,0x24,0x27,0x2a,0x2c, +0x2e,0x31,0x33,0x36,0x38,0x3a,0x3c,0x3e,0x3f,0x3f,0x1, 0xe, 0x14,0x1b,0x23,0x28, +0x2e,0x35,0x3a,0x40,0x48,0x4f,0x56,0x5d,0x62,0x61,0x5a,0x53,0x4e,0x47,0x40,0x3b, +0x35,0x2d,0x29,0x22,0x1b,0x17,0x10,0x9, 0x5, 0x1, 0x6d,0x7d,0x54,0x55,0x0, 0x2, +0x3, 0x5, 0x6, 0x8, 0xb, 0x10,0x13,0x16,0x17,0x19,0x1b,0x1d,0x1f,0x21,0x22,0x22, +0x22,0x22,0x23,0x25,0x28,0x2e,0x31,0x34,0x36,0x38,0x3a,0x3c,0x3e,0x3f,0x6, 0x17, +0x20,0x27,0x30,0x38,0x3e,0x39,0x32,0x2b,0x25,0x1e,0x18,0x10,0x9, 0x9, 0x10,0x18, +0x1f,0x26,0x2f,0x36,0x3c,0x38,0x2f,0x27,0x1f,0x18,0xf, 0x8, 0x1, 0x2, 0xc7,0x75, +0x31,0x55,0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x3, 0x8, 0xd, 0x12,0x15,0x17,0x18,0x1a, +0x1b,0x1c,0x1d,0x1d,0x1e,0x1f,0x22,0x27,0x2e,0x35,0x38,0x3b,0x3d,0x3e,0x3f,0x40, +0x3f,0x3e,0x6, 0x15,0x1b,0x23,0x29,0x2f,0x37,0x3c,0x37,0x2e,0x27,0x20,0x1a,0x13, +0xe, 0x14,0x1a,0x21,0x27,0x2f,0x38,0x3f,0x3d,0x35,0x2e,0x26,0x20,0x18,0x11,0xb, +0x3, 0x0, 0x67,0x3f,0x31,0x55,0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, +0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0x10,0x11,0x12,0x13,0x14,0x1c,0x1d,0x1e,0x1f,0x20, +0x21,0x22,0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0x10,0x11, +0x12,0x13,0x14,0x15,0x16,0x17,0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0xe, +0xf, 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x0, 0x1, 0x2, 0x3, 0x4, 0x1c,0x1d,0x1e, +0x1f,0x20,0x0, 0x1, 0x2, 0x3, 0xe, 0xf, 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, +0x18,0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0x10,0x11, +0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x6, 0x5, 0x4, 0x3, 0x2, 0x1, +0x0, 0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x0, 0x0, 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, +0x7, 0x8, 0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, +0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0x10,0x11,0x12,0x13,0x14,0x15,0x16, +0x17,0x18,0x19,0x1a,0x1b,0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, +0xb, 0xc, 0xd, 0xe, 0xf, 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a, +0x1b,0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,0x0, 0x1, 0x1, 0x1, 0x10,0x1c,0x2, 0x10, +0x1c,0x0, 0x1, 0x1, 0x4, 0xf, 0x1c,0x0, 0x1, 0x1, 0x6, 0x1b,0xf, 0x7, 0xe, 0x1c, +0x8, 0x23,0x15,0x0, 0x1, 0x1, 0xa, 0x10,0x19,0xb, 0x14,0x1c,0xc, 0xf, 0x18,0x0, +0x1, 0x1, 0xe, 0x23,0x15,0xf, 0xd, 0x19,0x0, 0x1, 0x1, 0x11,0xd, 0x14,0x12,0x10, +0x19,0x13,0x1c,0x10,0x14,0x1a,0x10,0x15,0x10,0x19,0x16,0x23,0x1c,0x72,0x23,0x15, +0x73,0x23,0x1c,0x74,0x23,0x1c,0x75,0xe, 0x1c,0xc2,0xd5,0x7c,0xb4,0x30,0xe7,0x8, +0xb2,0xd5,0x6e,0x24,0xff,0xff,0xb, 0x24,0x7c,0xb6,0x30,0xe7,0x12,0xb2,0xd5,0x6e, +0x34,0xff,0xff,0xb, 0x34,0x8d,0x32,0x6e,0x24,0xff,0xff,0xb, 0x24,0x80,0x2, 0x8d, +0x32,0x30,0xd5,0x6, 0x6e,0x34,0xff,0xff,0xb, 0x34,0x22,0x7d,0x51,0xad,0x3, 0x7d, +0x2, 0x7d,0x21,0xad,0x5, 0x2d,0x12,0xad,0x35,0x2d,0x21,0x22,0x7d,0x2, 0xad,0x31, +0xad,0x10,0x2d,0x21,0x22,0x6d,0x0, 0x74,0x10,0x4d,0x0, 0x78,0xb, 0x4d,0x22,0x78, +0x27,0x8d,0x31,0x7d,0x12,0x6d,0x22,0x22,0x7d,0x43,0x7d,0x32,0x6d,0x22,0x2f,0x11, +0x2d,0x44,0x50,0x2, 0xa5,0xf, 0xbf,0x10,0x40,0x4, 0x9f,0x10,0xb, 0x90,0x14,0x78, +0xed,0x7f,0x1, 0x6d,0x22,0x7d,0x34,0x22,0x7d,0x41,0x7d,0x13,0x8d,0x24,0x7d,0x2, +0x2f,0x0, 0x40,0x4, 0xbd,0x4, 0x40,0x4, 0x9d,0x4, 0xb, 0x14,0x14,0x78,0xf1,0x7d, +0x23,0x7d,0x31,0x7d,0x10,0x6d,0x0, 0x22,0xc2,0xd5,0x7c,0xb0,0x30,0xe7,0x8, 0xb2, +0xd5,0x9f,0x22,0x9f,0x20,0x7f,0x2, 0x7c,0xb4,0x30,0xe7,0x13,0xb2,0xd5,0x9f,0x22, +0x9f,0x21,0x7f,0x12,0x12,0x1f,0x7, 0x9f,0x22,0x9f,0x20,0x7f,0x2, 0x80,0x3, 0x12, +0x1f,0x7, 0x30,0xd5,0x6, 0x9f,0x22,0x9f,0x21,0x7f,0x12,0x22,0x6c,0xaa,0x4d,0x11, +0x68,0x1a,0x1e,0x54,0x68,0xe, 0xb, 0x38,0x20,0x1b,0x18,0x20,0xb, 0x35,0xb, 0x15, +0x1b,0x54,0x78,0xf2,0x50,0x6, 0x7e,0x39,0x40,0x7a,0x19,0x40,0x22,0x6c,0xaa,0x4d, +0x11,0x68,0x1e,0x1e,0x54,0x50,0xc, 0x7e,0x1b,0x0, 0x7a,0x19,0x0, 0x68,0x12,0xb, +0x1c,0xb, 0x14,0xb, 0x1a,0x0, 0x1b,0x18,0x0, 0xb, 0x1d,0xb, 0x15,0x1b,0x54,0x78, +0xf2,0x22,0x75,0x84,0x1, 0x7e,0x44,0x3f,0xff,0xe4,0x7a,0x49,0xb0,0x1b,0x44,0x78, +0xf9,0x7e,0xf8,0x39,0x13,0x75,0xc, 0x0, 0x75,0xd, 0x0, 0x75,0xe, 0x2, 0x75,0xf, +0x0, 0xc2,0x6, 0xc2,0x7, 0x75,0x1b,0x0, 0xc2,0xc, 0xc2,0xd, 0xc2,0xf, 0x75,0x1c, +0x0, 0x75,0x1d,0x0, 0xc2,0x8, 0xc2,0x9, 0x75,0x1e,0x0, 0xc2,0x11,0x75,0x1f,0x0, +0xc2,0x13,0x75,0x4c,0x0, 0xc2,0x14,0x75,0x4d,0x64,0xc2,0x15,0xc2,0x16,0xc2,0x17, +0x75,0x4e,0x0, 0xd2,0x0, 0xd2,0x1, 0xd2,0x2, 0xd2,0x18,0xc2,0xa, 0xd2,0xb, 0x7e, +0x4, 0x0, 0xff,0x7e,0x14,0x21,0x10,0xb, 0xa, 0x40,0x5d,0x44,0x68,0x1a,0x69,0x20, +0x0, 0x2, 0xb, 0xe, 0xb, 0x44,0x80,0xa, 0x7e,0xb, 0xb0,0x7a,0x29,0xb0,0xb, 0x24, +0xb, 0xc, 0x1b,0x44,0x78,0xf2,0x80,0xdf,0x2, 0x36,0x72,0x0, 0x0, 0x0, 0x47,0x0, +0xcb,0x1, 0x0, 0x0, 0x10,0xfd,0xc7,0xfb,0x7e,0xfb,0xfb,0x1, 0xbb,0xc, 0x9e,0x19, +0x0, 0x21,0x45,0x0, 0xe, 0x1, 0xf, 0x2, 0x10,0x3, 0x11,0x4, 0x12,0x5, 0x13,0x6, +0x14,0x7, 0x15,0x8, 0x16,0x9, 0x17,0xa, 0x18,0xb, 0x19,0xc, 0x1a,0xd, 0x1b,0xdf, +0x22,0xc3,0x21,0xa9,0x20,0x94,0x1f,0x81,0x1e,0x70,0x1d,0x62,0x1c,0x55,0x1b,0x4a, +0x1a,0x41,0x19,0x38,0x18,0x31,0x17,0x2b,0x16,0x25,0x15,0x21,0x14,0x1c,0x13,0x19, +0x12,0x16,0x11,0x13,0x10,0x11,0xf, 0x10,0xe, 0xca,0xf8,0x7f,0x20,0x80,0xa, 0x7e, +0x1b,0xf0,0x7a,0x2b,0xf0,0xb, 0x34,0xb, 0x54,0x69,0xff,0xff,0xfc,0x7d,0xef,0x1b, +0xe4,0x79,0xef,0xff,0xfc,0x4d,0xff,0x78,0xe6,0x7f,0x10,0xda,0xf8,0x22,0x7d,0x43, +0x7f,0x10,0x80,0x7, 0x1b,0x44,0x7a,0xb, 0xb0,0xb, 0x14,0x4d,0x44,0x78,0xf5,0x22, +0xff,0x0, 0x1, 0x2, 0x0, 0xff,0x1, 0x2, 0x0, 0x1, 0xff,0x2, 0x0, 0x1, 0x2, 0xff, +0x7d,0x23,0xbe,0x24,0x0, 0x0, 0x48,0x3, 0x7d,0x32,0x22,0x6d,0x33,0x9d,0x32,0x22, +0x0, 0x4, 0x31,0xd0,0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x33,0xff,0x1, 0x0, 0x1, 0x25, +0xf6,0x1, 0x0, 0x1, 0x37,0x9b,0x0, 0x0, 0x2, 0x37,0xed,0x0, 0x0, 0x0, 0x2, 0x37, +0xef,0x0, 0x0, 0x0, 0x1, 0x37,0xf1,0x0, 0x0, 0x1, 0x34,0x4f,0x0, 0x0, 0x1, 0x39, +0x11,0x0, 0x0, 0x1, 0x34,0x8a,0x0, 0x0, 0x2, 0x34,0x9f,0x0, 0x0, 0x0, 0x1, 0x34, +0xa1,0x0, 0x0, 0x1, 0x34,0xaf,0x0, 0x0, 0x1, 0x34,0xc4,0x0, 0x0, 0x1, 0x34,0xc5, +0x0, 0x0, 0x1, 0x35,0x3e,0x0, 0x0, 0x1, 0x35,0x3f,0x1, 0x0, 0x1, 0x35,0x40,0x0, +0x0, 0x3c,0x35,0xe9,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x1, 0x36,0x61,0x0, 0x0, 0x1, 0x36,0x62,0x0, 0x0, 0x1, 0x36,0x63,0x0, 0x0, +0x1, 0x35,0xe2,0x1, 0x0, 0x2, 0x35,0xe5,0x0, 0x0, 0x0, 0x1, 0x2f,0xa9,0x0, 0x0, +0x1, 0x2f,0xaa,0x0, 0x0, 0x1, 0x2f,0xab,0x0, 0x0, 0x1, 0x2f,0xac,0x0, 0x0, 0x1, +0x36,0x66,0x1, 0x0, 0x1, 0x36,0xe0,0x0, 0x0, 0x1, 0x39,0x12,0x0, 0x0, 0x6, 0x38, +0xfb,0x3f,0x1f,0x50,0x11,0x20,0x10,0x0, 0x1, 0x39,0x1, 0x24,0x0, 0x1, 0x39,0x8, +0x0, 0x0, 0x1, 0x39,0x9, 0x0, 0x0, 0x1, 0x39,0xa, 0x0, 0x0, 0x1, 0x39,0xb, 0x0, +0x0, 0x1, 0x39,0xc, 0x0, 0x0, 0x1, 0x0, 0x4f,0x0, 0x0, 0x1, 0x3, 0xec,0x0, 0x0, +0x4, 0x37,0x40,0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x39,0x2, 0x0, 0x0, 0x1, 0x39,0x3, +0x0, 0x0, 0x2, 0x39,0x4, 0x0, 0x0, 0x0, 0x1, 0x39,0x6, 0x64,0x0, 0x1, 0x39,0x7, +0x0, 0x0, 0x1, 0x39,0x13,0x0, 0x0, 0x1, 0x3, 0xfe,0x0, 0x0, 0x1, 0x3, 0xff,0x0, +0x0, 0x2, 0x2b,0xb9,0x2b,0xbf,0x0, 0x1, 0x2f,0x7f,0x2, 0x0, 0x1, 0x2f,0xa8,0x0, +0x0, 0x1, 0x38,0xdd,0x0, 0x0, 0x1, 0x38,0x3e,0xff,0x0, 0x1, 0x38,0x3f,0x0, 0x0, +0x1, 0x38,0x40,0x0, 0x0, 0x1, 0x38,0x41,0x40,0x0, 0x1, 0x38,0x42,0x40,0x0, 0x4, +0x38,0xf3,0x0, 0x0, 0x50,0x0, 0x0, 0x4, 0x38,0xf7,0x0, 0x0, 0x64,0x0, 0x0, 0x4, +0x38,0xc0,0x0, 0x0, 0x6c,0x0, 0x0, 0x4, 0x38,0xc4,0x0, 0x0, 0x68,0xc0,0x0, 0x4, +0x38,0xc8,0x0, 0x0, 0x68,0x0, 0x0, 0x4, 0x38,0xd9,0x0, 0x0, 0x40,0x0, 0x0, 0x4, +0x39,0xd, 0x0, 0x0, 0x60,0x0, 0x0, 0x0, 0x3, 0x20,0x0, 0xc, 0x1, 0xf4,0x2, 0x58, +0x0, 0xc, 0x0, 0xfa,0x1, 0xc2,0x0, 0xa, 0x0, 0xc8,0x1, 0x40,0x0, 0x5, 0x0, 0x78, +0x0, 0xc8,0x0, 0x4, 0x0, 0x3c,0x0, 0x78,0x0, 0x3, 0x0, 0xa, 0x0, 0x3c,0x0, 0x2, +0x0, 0x0, 0x0, 0xe, 0x1c,0x23,0x5, 0xdc,0x0, 0x32,0x3, 0xe8,0x0, 0x28,0x0, 0x0, +0x0, 0x1e,0x12,0x3f,0x13,0x12,0x69,0x8e,0x12,0x23,0xb, 0x12,0x28,0x48,0x12,0x8d, +0xec,0x2, 0x23,0x4, 0x74,0x1, 0x7a,0xb3,0x36,0x6a,0x22,0x12,0x73,0x71,0x12,0x23, +0x40,0x2, 0x23,0x14,0x7e,0x34,0x0, 0x3, 0x6d,0x22,0x2, 0x23,0x1d,0x7d,0x43,0x7e, +0xa3,0x34,0x38,0xbe,0xa0,0x5, 0x50,0x16,0x7e,0x70,0x4, 0xac,0x7a,0x59,0x43,0x34, +0x3b,0x59,0x23,0x34,0x3d,0x7c,0xba,0x4, 0x7a,0xb3,0x34,0x38,0xc3,0x22,0xd3,0x22, +0x6d,0x33,0x7e,0x24,0x6, 0xfc,0x12,0x23,0x1d,0x7e,0x34,0x0, 0x1, 0x7e,0x24,0x7, +0x7a,0x2, 0x23,0x1d,0x7e,0x34,0x60,0xa3,0x12,0x23,0x9e,0x12,0x26,0x5b,0x12,0x46, +0xa2,0x12,0x73,0x28,0x12,0x3f,0x13,0x12,0x69,0x87,0x12,0xc0,0x25,0x12,0x23,0xb, +0x12,0x28,0x48,0x12,0x68,0x23,0x12,0x8d,0xec,0x2, 0x23,0x4, 0x7e,0x34,0x61,0x4f, +0x7e,0x24,0x0, 0xff,0xb, 0x1a,0x30,0x7a,0x37,0x2a,0x5a,0x7e,0x34,0x61,0x51,0x7e, +0x24,0x0, 0xff,0xb, 0x1a,0x30,0x7a,0x37,0x2a,0x5c,0x7e,0x34,0x61,0x53,0x7e,0x24, +0x0, 0xff,0xb, 0x1a,0x30,0x22,0x7e,0x34,0x61,0x55,0x12,0x23,0x9e,0x7a,0x37,0x28, +0x95,0x7e,0x34,0x61,0xba,0x12,0x23,0x9e,0x7a,0x37,0x28,0x99,0x7e,0x34,0x61,0xb8, +0x12,0x23,0x9e,0x7a,0x37,0x28,0x97,0x7e,0x34,0x62,0x12,0x12,0x23,0x9e,0x7a,0x37, +0x28,0x9b,0x7e,0x34,0x61,0xbc,0x12,0x23,0x9e,0x7a,0x37,0x28,0x9d,0x7e,0x34,0x61, +0xbe,0x12,0x23,0x9e,0x7a,0x37,0x28,0x9f,0x7e,0x34,0x61,0xc0,0x12,0x23,0x9e,0x12, +0xc0,0xb1,0x12,0x23,0x9e,0x7a,0x37,0x28,0xa3,0x90,0x61,0xc4,0xe4,0x93,0x7a,0xb3, +0x28,0xa5,0xe4,0x7a,0xb3,0x28,0xa8,0x12,0x2f,0xdd,0x3e,0x34,0x7e,0x8, 0x25,0xf7, +0xe4,0x2, 0x20,0xde,0x12,0x25,0xc3,0x7e,0xb3,0x36,0x71,0xb4,0x1, 0x16,0x7e,0x34, +0x62,0x34,0x12,0x23,0x9e,0x7a,0x37,0x2a,0x5a,0x7e,0x34,0x62,0x36,0x12,0x23,0x9e, +0x7a,0x37,0x2a,0x5c,0x7e,0xb3,0x28,0xa8,0xb4,0x1, 0x37,0x7e,0x34,0x62,0x3e,0x12, +0x23,0x9e,0x7a,0x37,0x2a,0x5a,0x7e,0x34,0x62,0x40,0x12,0x23,0x9e,0x7a,0x37,0x2a, +0x5c,0x7e,0x34,0x62,0x42,0x12,0x23,0x9e,0x7a,0x37,0x2a,0x4f,0x7e,0x34,0x62,0x44, +0x12,0x23,0x9e,0x7a,0x37,0x2a,0x51,0x7e,0x34,0x62,0x46,0x12,0x23,0x9e,0x7a,0x37, +0x2a,0x53,0x7e,0xb3,0x2a,0x2, 0x70,0x21,0x7e,0x27,0x2a,0x5a,0x7d,0x32,0x7e,0x14, +0x0, 0x4, 0xad,0x13,0x7d,0x31,0x12,0x25,0x3c,0xbe,0x34,0x0, 0x50,0x28,0x4, 0x7e, +0x34,0x0, 0x50,0x2d,0x32,0x7a,0x37,0x2a,0x5a,0x22,0x7e,0x54,0x0, 0x54,0x7e,0x44, +0x0, 0xff,0x69,0x32,0x0, 0x4, 0x69,0x22,0x0, 0x2, 0xb, 0x2a,0x10,0x7a,0x1d,0x26, +0x7a,0x15,0x24,0x7e,0x34,0x0, 0x20,0x7e,0x8, 0x0, 0x24,0x7e,0x24,0x0, 0x6, 0x12, +0xb7,0xc7,0x7e,0x34,0x61,0x4f,0x12,0x23,0x9e,0x1e,0x34,0x1e,0x34,0x7a,0x73,0x36, +0xe1,0x7e,0x34,0x61,0x51,0x12,0x23,0x9e,0xe, 0x34,0xe, 0x34,0x7a,0x73,0x36,0xe2, +0x7e,0x34,0x61,0x55,0x12,0x23,0x9e,0x12,0x25,0x3c,0x7a,0x73,0x36,0xe3,0x7e,0x34, +0x61,0x57,0x12,0x23,0x9e,0x12,0x25,0x3c,0x7a,0x73,0x36,0xe4,0x7e,0x34,0x61,0x59, +0x12,0x23,0x9e,0x12,0x25,0x3c,0x7a,0x73,0x36,0xe5,0x7e,0x34,0x61,0x5b,0x12,0x23, +0x9e,0x12,0x25,0x3c,0x7a,0x73,0x36,0xe6,0x7e,0x34,0x0, 0x59,0xca,0x39,0x7e,0x34, +0x61,0x5f,0x7e,0x24,0x0, 0xff,0x7e,0x8, 0x36,0xe7,0x12,0x20,0xb9,0x1b,0xfd,0xe5, +0x25,0x7a,0xb3,0x37,0x12,0xe5,0x28,0x7a,0xb3,0x37,0x1, 0x22,0x1e,0x34,0x1e,0x34, +0x1e,0x34,0x1e,0x34,0x22,0x90,0x60,0x99,0xe4,0x93,0x7a,0xb3,0x2a,0x4d,0x90,0x60, +0x9e,0xe4,0x93,0x7a,0xb3,0x2a,0x4e,0x7e,0x34,0x61,0x55,0x12,0x23,0x9e,0x12,0xc0, +0xa8,0x12,0x23,0x9e,0x7a,0x37,0x2a,0x51,0x7e,0x14,0x61,0x59,0x7e,0x4, 0x0, 0xff, +0xb, 0xa, 0x20,0x7a,0x27,0x2a,0x53,0x7a,0x37,0x2a,0x55,0x90,0x60,0x9d,0xe4,0x93, +0x7a,0xb3,0x2a,0x59,0x12,0x23,0x7c,0x12,0xc0,0x55,0x7e,0x34,0x62,0x12,0x12,0x23, +0x9e,0x7a,0x37,0x2a,0x60,0x90,0x60,0x9f,0xe4,0x93,0x7a,0xb3,0x2a,0x64,0x90,0x60, +0xa0,0xe4,0x93,0x7a,0xb3,0x2a,0x65,0x7e,0x34,0x60,0xa1,0x12,0x23,0x9e,0x7a,0x37, +0x2a,0x66,0x7e,0x34,0x61,0x5b,0x12,0x23,0x9e,0x7a,0x37,0x2a,0x62,0xe4,0x7a,0xb3, +0x16,0x92,0x22,0x12,0x23,0x7c,0x12,0xc0,0x55,0x7e,0x34,0x61,0x55,0x12,0x23,0x9e, +0x12,0xc0,0xa8,0x12,0x23,0x9e,0x7a,0x37,0x2a,0x51,0x7e,0x34,0x61,0x59,0x12,0x23, +0x9e,0x7a,0x37,0x2a,0x53,0x22,0xca,0xf8,0x7e,0xf3,0x37,0xa0,0xbe,0xf0,0x5, 0x78, +0xb, 0x74,0x1, 0x7a,0xb3,0x37,0xa0,0x12,0x0, 0x9, 0x80,0x52,0xbe,0xf0,0x4, 0x78, +0x13,0x12,0xc0,0x0, 0x12,0x23,0x9e,0x12,0x26,0x5b,0xe4,0x7a,0xb3,0x2b,0x2, 0x12, +0x7a,0x2d,0x80,0x3a,0xbe,0xf0,0x6, 0x78,0x19,0x12,0xc0,0x0, 0x12,0x23,0x9e,0x12, +0x26,0x5b,0x12,0x49,0xd, 0xe4,0x7a,0xb3,0x2b,0x1e,0x12,0x69,0xab,0x12,0xc1,0x1, +0x80,0x1c,0xbe,0xf0,0x7, 0x78,0x1d,0x12,0xc0,0x0, 0x12,0x23,0x9e,0x12,0x26,0x5b, +0x12,0x2f,0xf4,0x50,0xfb,0x12,0x88,0x17,0x12,0x69,0x97,0x12,0x28,0x48,0x74,0x2, +0x7a,0xb3,0x37,0xa0,0xda,0xf8,0x22,0x7e,0x34,0x3, 0xe8,0x6d,0x22,0x7a,0x27,0x3, +0xed,0x7a,0x37,0x3, 0xef,0x22,0x7e,0xb3,0x37,0x6, 0x14,0x68,0x60,0x14,0x78,0x2, +0xe1,0x10,0x14,0x68,0x73,0x24,0x3, 0x68,0x2, 0xe1,0x5, 0x12,0xc1,0x32,0x38,0x8, +0x30,0x10,0xf, 0x12,0xc1,0x2a,0x68,0xa, 0x12,0x63,0x2, 0xe4,0x7a,0xb3,0x38,0x85, +0x80,0x7e,0x7e,0xb3,0x36,0xe7,0x30,0xe0,0x77,0x7e,0x73,0x36,0xe8,0xa, 0x27,0x7e, +0x34,0x4, 0x0, 0xad,0x32,0x7e,0xb3,0x37,0x31,0xb4,0x1, 0xb, 0x7e,0x34,0x62,0x64, +0x12,0x23,0x9e,0x2e,0x34,0x4, 0x0, 0xbe,0x37,0x38,0x83,0x50,0x53,0x12,0x63,0x2, +0x74,0x1, 0x7a,0xb3,0x37,0x6, 0xe4,0x7a,0xb3,0x38,0x87,0x80,0x43,0x12,0xc1,0x32, +0x28,0x39,0xe4,0x7a,0xb3,0x37,0x6, 0x7e,0xb3,0x38,0x85,0xb4,0x1, 0x6, 0x74,0x1, +0x7a,0xb3,0x37,0x6, 0xd2,0x17,0x80,0x23,0x7e,0x34,0x60,0xa5,0x12,0x23,0x9e,0x12, +0x26,0x5b,0x12,0x45,0x73,0x12,0x23,0x54,0xe4,0x7a,0xb3,0x37,0x6, 0x7a,0xb3,0x39, +0x7, 0xd2,0x17,0x80,0xb, 0x74,0x1, 0x7a,0xb3,0x37,0x6, 0xe4,0x7a,0xb3,0x39,0x7, +0x12,0x90,0xd2,0x2, 0x27,0x16,0xca,0xd8,0xca,0x79,0x7e,0xb3,0x37,0x6, 0xb4,0x1, +0x2, 0x80,0x3, 0x2, 0x28,0x38,0x6c,0xdd,0x6c,0xff,0x12,0x91,0x11,0x7d,0xf3,0x12, +0x2f,0xf4,0x50,0xfb,0x74,0x1, 0x7a,0xb3,0x38,0x86,0x12,0x3d,0xac,0x12,0x13,0xc7, +0x12,0x0, 0x1e,0x74,0xa, 0x12,0x45,0x15,0x12,0xc0,0xe7,0x7e,0xe7,0x2b,0xd, 0x7a, +0xe5,0x24,0x7e,0xe3,0x2a,0xfa,0x74,0x4, 0x7a,0xb3,0x2a,0xfa,0x7e,0xe7,0x2b,0xd, +0x5e,0xe4,0x0, 0x3f,0x7a,0xe7,0x2b,0xd, 0x7e,0xb3,0x2a,0xfa,0x12,0x7b,0xd0,0x7c, +0x7b,0x74,0x6, 0xac,0x7b,0x7e,0x24,0x0, 0x4, 0x12,0x1e,0xb9,0x7d,0x23,0x7d,0x3f, +0x12,0x25,0x3c,0xad,0x32,0x7a,0x37,0x2b,0x7, 0x12,0x4e,0xe0,0x12,0x26,0x57,0x7e, +0xb3,0x37,0x31,0xb4,0x1, 0x4, 0x74,0x10,0x80,0x2, 0x74,0xa, 0x12,0x91,0x5d,0x12, +0x4f,0xaf,0x80,0xf, 0x80,0x7, 0x12,0x45,0xcf,0xe4,0x12,0x46,0x7, 0x20,0x93,0xf6, +0x12,0x45,0x9f,0x30,0x18,0xf7,0x30,0x17,0xf4,0xd2,0x4, 0x12,0x45,0x5a,0xe4,0x12, +0x13,0xde,0xb, 0xd0,0x12,0x4c,0x83,0x12,0x91,0x76,0x7e,0xa3,0x38,0x85,0x4c,0xaa, +0x78,0x6, 0x74,0x1, 0x7a,0xb3,0x38,0x86,0x4c,0xaa,0x68,0xb, 0x7e,0xb3,0x37,0x31, +0x70,0x5, 0xe4,0x7a,0xb3,0x38,0x85,0x12,0x28,0x3d,0x78,0x18,0x7e,0xb3,0x38,0x85, +0x60,0x12,0xe4,0x7a,0xb3,0x38,0x85,0x7a,0xb3,0x2a,0x2, 0x7a,0xb3,0x2a,0x3, 0x7e, +0xf0,0x1, 0x80,0x1d,0x12,0x28,0x3d,0x68,0x10,0x7e,0xb3,0x38,0x85,0x70,0xa, 0x7e, +0xf0,0x1, 0xe4,0x7a,0xb3,0x37,0x6, 0x80,0x8, 0xbe,0xd0,0x32,0x50,0x3, 0x2, 0x27, +0x8c,0xe4,0x7a,0xb3,0x2b,0x4, 0x7e,0x35,0x24,0x7a,0x37,0x2b,0xd, 0x7a,0xe3,0x2a, +0xfa,0x4c,0xff,0x68,0x3, 0x12,0x28,0x48,0xda,0x79,0xda,0xd8,0x22,0x7e,0x73,0x38, +0xf2,0xa, 0x37,0x5e,0x34,0x0, 0x2, 0x22,0xe4,0x7a,0xb3,0x34,0x3a,0x7a,0xb3,0x34, +0x39,0x12,0x4e,0x9b,0xb4,0x1, 0x4, 0x74,0x1, 0x80,0x2, 0x74,0x3, 0x7a,0xb3,0x34, +0x3a,0x22,0xca,0x3b,0x12,0x2f,0xf4,0x50,0xfb,0x7e,0xf3,0x2b,0xf, 0x7c,0xbf,0x12, +0xb3,0xfc,0x12,0xb4,0x13,0x7e,0xb3,0x2b,0x1f,0xf5,0x28,0x7e,0xb3,0x2b,0x20,0xf5, +0x29,0x7e,0xb3,0x37,0x8, 0xb4,0x1, 0xf, 0x12,0x8d,0x6c,0x7e,0xb3,0x16,0x91,0x70, +0x6, 0x12,0x28,0x48,0xc3,0x21,0x6c,0x12,0x29,0x6f,0x3e,0x34,0xca,0x39,0x7e,0x18, +0x6, 0xfc,0x7e,0x8, 0x4, 0x7e,0x12,0x20,0xb9,0x1b,0xfd,0x12,0x29,0x6f,0x3e,0x34, +0xca,0x39,0x7e,0x18,0x7, 0x7a,0x7e,0x8, 0x4, 0x0, 0x12,0x20,0xb9,0x1b,0xfd,0x7e, +0xb3,0x37,0x8, 0xb4,0x3, 0x7, 0x12,0xac,0x20,0x7a,0x37,0x37,0xe3,0x74,0x1, 0x7a, +0xb3,0x16,0x90,0x12,0x69,0x8e,0x12,0xac,0xe, 0x7e,0xc3,0x3, 0xec,0x12,0x6e,0x31, +0xe4,0x12,0x13,0xde,0x12,0x28,0x48,0x7e,0x8, 0x4, 0x7e,0x7a,0xd, 0x2a,0x7e,0x18, +0x6, 0x76,0x7e,0xb3,0x2b,0x72,0x12,0x7a,0xc8,0x7e,0x8, 0x4, 0x0, 0x7a,0xd, 0x2a, +0x7e,0x18,0x5, 0xf8,0x7e,0xb3,0x25,0xf0,0x12,0x7a,0xc8,0x7e,0xd3,0x2b,0x1f,0x7e, +0xe3,0x2b,0x20,0xe5,0x28,0x7a,0xb3,0x2b,0x1f,0xe5,0x29,0x12,0x6e,0x8b,0x50,0x5, +0x7c,0xbc,0x12,0xb3,0x54,0x7e,0x34,0x8, 0xa, 0x7e,0x4, 0xd, 0xc8,0x7d,0x20,0x7d, +0x10,0x12,0x6a,0xd4,0x7a,0xd3,0x2b,0x1f,0x7a,0xe3,0x2b,0x20,0x7c,0xbf,0x12,0x86, +0xf8,0x12,0xaa,0x18,0x7e,0xb3,0x39,0x7, 0x4, 0x7a,0xb3,0x39,0x7, 0x7e,0x73,0x39, +0x7, 0xbe,0x70,0xfa,0x28,0x6, 0x74,0x64,0x7a,0xb3,0x39,0x7, 0x7e,0xb3,0x16,0x90, +0x60,0x9, 0x7e,0xb3,0x16,0x91,0x60,0x3, 0xd3,0x80,0x1, 0xc3,0xda,0x3b,0x22,0x7e, +0x73,0x2a,0x74,0xa, 0x27,0x7e,0x73,0x2a,0x73,0xa, 0x37,0x2d,0x32,0x22,0x12,0x48, +0x7, 0x7e,0xb3,0x37,0x8, 0xb4,0x3, 0x6c,0x12,0xb6,0xe2,0x12,0x26,0x57,0x12,0x3f, +0xfb,0x7e,0xb3,0x37,0x9c,0x30,0xe7,0xe9,0x12,0x28,0x62,0x12,0x29,0x6f,0x3e,0x34, +0xca,0x39,0x7e,0x18,0x4, 0x0, 0x7e,0x8, 0x4, 0xfc,0x12,0x20,0xb9,0x1b,0xfd,0x12, +0x29,0x6f,0x3e,0x34,0xca,0x39,0x7e,0x18,0x4, 0x7e,0x7e,0x8, 0x5, 0x7a,0x12,0x20, +0xb9,0x1b,0xfd,0x7e,0xb3,0x2b,0x1d,0xb4,0x1, 0x18,0x12,0xab,0xdb,0x12,0x75,0xe9, +0x12,0xaf,0x89,0x12,0xa7,0xbd,0x12,0x88,0x5f,0x12,0x56,0xde,0x12,0x2a,0x3, 0x12, +0x58,0x52,0x12,0x48,0x39,0x12,0x3a,0x9f,0x7e,0xb3,0x37,0x9c,0x54,0x7f,0x7a,0xb3, +0x37,0x9c,0x80,0x8d,0x12,0x2f,0xee,0x2, 0x0, 0x46,0x7a,0xb3,0x2b,0x2, 0x7a,0xb3, +0x2b,0x1e,0x22,0x12,0x52,0x6d,0x12,0x2b,0xfa,0x12,0x2b,0xfa,0x12,0x36,0xac,0x12, +0x9c,0xfd,0x12,0x9f,0xef,0x12,0x2b,0xfa,0x12,0x9b,0xe7,0x12,0x2b,0xfa,0x12,0xa0, +0xae,0x12,0x2b,0xfa,0x2, 0x2a,0x27,0xca,0x3b,0x75,0x24,0x0, 0x6c,0xcc,0x6c,0xdd, +0x7e,0xc4,0x0, 0x3c,0xca,0xc9,0x7e,0x18,0x36,0x25,0x7e,0x8, 0x35,0xe9,0x12,0x20, +0xb9,0x1b,0xfd,0x7e,0xf3,0x28,0x84,0xa, 0xcf,0x3e,0xc4,0xca,0xc9,0x7e,0x18,0x26, +0xfa,0x7e,0x8, 0x1f,0x34,0x12,0x20,0xb9,0x1b,0xfd,0x6c,0x88,0x6c,0xee,0x41,0xfb, +0x7e,0xc4,0x3, 0xff,0x7e,0xc0,0xff,0x6c,0x99,0x80,0x4c,0x74,0x2, 0xac,0xb9,0x9, +0xb5,0x1f,0x34,0xbe,0xb0,0xff,0x68,0x3d,0x7c,0xb9,0x12,0x2f,0xb7,0x60,0x36,0x74, +0x2, 0xac,0xb9,0x9, 0x75,0x1f,0x35,0xa, 0x27,0x74,0x2, 0xac,0xbe,0x9, 0x75,0x36, +0x26,0xa, 0x37,0x12,0x81,0xbf,0x74,0x2, 0xac,0xb9,0x9, 0x75,0x1f,0x34,0xa, 0x27, +0x74,0x2, 0xac,0xbe,0x9, 0x75,0x36,0x25,0x12,0xa1,0x4b,0x2d,0x13,0xbd,0xc1,0x28, +0x4, 0x7d,0xc1,0x7c,0xc9,0xb, 0x90,0xbc,0xf9,0x38,0xb0,0xbe,0xc0,0xff,0x68,0x39, +0x7e,0x70,0x2, 0xac,0x7c,0x9, 0xb3,0x1f,0x34,0x9, 0x73,0x1f,0x35,0x12,0x2c,0x40, +0xbe,0x37,0x2a,0x5a,0x48,0x23,0x7e,0x70,0x2, 0xac,0x7c,0x9, 0x53,0x1f,0x34,0x74, +0x2, 0xac,0xbd,0x19,0x55,0x1f,0x70,0x9, 0x53,0x1f,0x35,0x19,0x55,0x1f,0x71,0x74, +0xff,0x19,0xb3,0x1f,0x34,0xb, 0x80,0xb, 0xd0,0xb, 0xe0,0x7e,0x73,0x35,0xe8,0xbc, +0x7e,0x28,0x2, 0x41,0x60,0x7c,0xe8,0x80,0x6d,0x6d,0xdd,0x7e,0x80,0xff,0x6c,0x99, +0x80,0x3c,0x7c,0xb9,0x12,0x2f,0xb7,0x60,0x33,0x12,0x2f,0xe4,0xbe,0xb0,0xff,0x68, +0x2b,0x9, 0x73,0x1f,0x35,0x12,0x30,0x3, 0x7f,0x71,0xb, 0x7a,0x50,0xbe,0x54,0x0, +0x0, 0x58,0x5, 0x6d,0x55,0x1b,0x7a,0x50,0xb, 0x7a,0xc0,0xbd,0xcd,0x8, 0xd, 0x12, +0x2f,0xe4,0xf5,0x24,0x9, 0xc3,0x1f,0x35,0x7d,0xdc,0x7c,0x89,0xb, 0x90,0xbc,0xf9, +0x38,0xc0,0xbe,0x80,0xff,0x68,0x1d,0x7e,0x71,0x24,0x74,0x2, 0xac,0xbd,0x19,0x75, +0x1f,0x70,0x19,0xc5,0x1f,0x71,0x7e,0xa0,0xff,0x7e,0x70,0x2, 0xac,0x78,0x19,0xa3, +0x1f,0x34,0xb, 0xd0,0xb, 0xe0,0x90,0x60,0x99,0xe4,0x93,0xbc,0xbe,0x38,0x8a,0x90, +0x60,0x9a,0xe4,0x93,0x7c,0xab,0x74,0x2, 0xa4,0xca,0x59,0x7e,0x18,0x1f,0x70,0x7e, +0x8, 0x1f,0x34,0x12,0x20,0xb9,0x1b,0xfd,0x7c,0xfd,0x12,0x97,0x4, 0x7e,0x8, 0x36, +0x25,0x74,0xff,0x12,0x20,0xde,0xbe,0xf0,0x0, 0x28,0x35,0xa, 0x3f,0x3e,0x34,0xca, +0x39,0x7e,0x18,0x1f,0x34,0x7e,0x8, 0x26,0xfa,0x12,0x20,0xb9,0x1b,0xfd,0xa, 0x3f, +0x3e,0x34,0xca,0x39,0x7e,0x18,0x1f,0x34,0x7e,0x8, 0x36,0x25,0x12,0x20,0xb9,0x1b, +0xfd,0x6c,0xee,0x80,0x7, 0x7c,0xbe,0x12,0x2f,0xd0,0xb, 0xe0,0xbc,0xfe,0x38,0xf5, +0x7a,0xf3,0x35,0xe8,0x7a,0xf3,0x28,0x84,0x90,0x60,0x99,0xe4,0x93,0xbe,0xb3,0x28, +0x84,0x50,0x4, 0x7a,0xb3,0x28,0x84,0xda,0x3b,0x22,0xca,0x79,0x6c,0xff,0x6c,0xee, +0x80,0x2e,0x7c,0xbe,0x12,0x2f,0xb7,0x60,0x25,0x7e,0x34,0x0, 0x2, 0xca,0x39,0xac, +0x7e,0x2e,0x34,0x26,0xfa,0x6d,0x22,0x7e,0x30,0x2, 0xac,0x3f,0x2e,0x14,0x26,0xfa, +0x6d,0x0, 0x12,0x20,0xb9,0x1b,0xfd,0x7c,0xbf,0x12,0x2f,0xd0,0xb, 0xf0,0xb, 0xe0, +0x12,0x9c,0xf6,0x38,0xcd,0x7a,0xf3,0x28,0x84,0xda,0x79,0x22,0x7c,0xba,0x7c,0x7d, +0x12,0x30,0x3, 0xb, 0x1a,0x30,0x22,0xca,0x3b,0x7c,0xfb,0x75,0x3b,0x0, 0x7e,0xb3, +0x2a,0x6f,0xf5,0x40,0x7e,0xb3,0x2a,0x70,0xf5,0x41,0x7e,0xd3,0x28,0x84,0xe4,0x7a, +0xb3,0x33,0xc2,0x7a,0xb3,0x33,0xc0,0x7a,0xb3,0x33,0xc1,0x7e,0x8, 0x1f,0x34,0x12, +0x2f,0xdd,0xe4,0x12,0x20,0xde,0x12,0x2f,0xdd,0x3e,0x34,0x7e,0x8, 0x33,0xc3,0xe4, +0x12,0x20,0xde,0xbe,0xd0,0x2, 0x50,0x2, 0xe1,0xa2,0x6c,0xcc,0xe1,0x91,0x12,0xc0, +0x8b,0xf5,0x24,0x9, 0xb3,0x26,0xfb,0xf5,0x25,0x4c,0xcc,0x68,0x8, 0xa, 0x3c,0x9, +0xb3,0x1f,0x34,0x70,0xa, 0xa, 0x3c,0xb, 0x34,0xa, 0x2c,0x19,0x72,0x1f,0x34,0x7c, +0xbd,0x14,0xbc,0xbc,0x78,0x2, 0xe1,0x97,0xa, 0x5c,0xb, 0x54,0xf5,0x2e,0xe1,0x88, +0x7e,0x71,0x2e,0x74,0x2, 0xac,0x7b,0x9, 0xa3,0x26,0xfa,0x7a,0xa1,0x26,0x9, 0xb3, +0x26,0xfb,0xf5,0x27,0xa, 0x2a,0xe5,0x24,0x12,0x2f,0xd6,0x7c,0xb7,0xf5,0x28,0xe5, +0x27,0xa, 0x2b,0xe5,0x25,0x12,0x2f,0xd6,0x7c,0xb7,0xf5,0x29,0xe5,0x28,0xbe,0xb0, +0x4, 0x40,0x2, 0xe1,0x86,0xe5,0x29,0xbe,0xb0,0x4, 0x40,0x2, 0xe1,0x86,0x85,0x25, +0x44,0x85,0x26,0x45,0x85,0x27,0x46,0x7e,0x8, 0x0, 0x31,0x7e,0x18,0x0, 0x33,0xe5, +0x24,0x12,0xb0,0x69,0x75,0x3b,0x0, 0x6c,0xee,0x75,0x30,0x0, 0xe5,0x24,0x7e,0x71, +0x25,0x12,0x2c,0x40,0x7a,0x35,0x35,0xe5,0x26,0x7e,0x71,0x27,0x12,0x2c,0x40,0x7a, +0x35,0x37,0x7e,0x35,0x35,0xbe,0x35,0x37,0x8, 0x7, 0x7e,0x35,0x37,0x7d,0x83,0x80, +0x3, 0x7e,0x85,0x35,0x7a,0x85,0x39,0xe, 0x84,0xe5,0x28,0xbe,0xb0,0x1, 0x38,0x2b, +0xe5,0x29,0xbe,0xb0,0x1, 0x38,0x24,0x7c,0xbf,0x30,0xe1,0x1f,0xe5,0x26,0x7e,0x71, +0x25,0x12,0x2c,0x40,0x7d,0x43,0xe5,0x24,0x7e,0x71,0x27,0x12,0x2c,0x40,0x2d,0x34, +0xbd,0x38,0x18,0x2, 0xe1,0x1d,0x75,0x30,0x1, 0xe1,0x1d,0xe5,0x28,0xbe,0xb0,0x1, +0x38,0x9, 0xe5,0x29,0xbe,0xb0,0x1, 0x38,0x2, 0xe1,0x1d,0xe5,0x28,0xbe,0xb0,0x4, +0x40,0x2, 0xe1,0x1d,0xe5,0x29,0xbe,0xb0,0x4, 0x40,0x2, 0xe1,0x1d,0x7c,0xbf,0x20, +0xe0,0x2, 0xe1,0x1d,0x6d,0x99,0x75,0x42,0x0, 0xc2,0x4, 0xc2,0x5, 0xe5,0x26,0xbe, +0xb1,0x24,0x28,0x4, 0xe5,0x24,0x80,0x2, 0xe5,0x26,0xf5,0x2a,0xe5,0x26,0xbe,0xb1, +0x24,0x50,0x4, 0xe5,0x24,0x80,0x2, 0xe5,0x26,0xf5,0x2c,0xe5,0x27,0xbe,0xb1,0x25, +0x28,0x4, 0xe5,0x25,0x80,0x2, 0xe5,0x27,0xf5,0x2b,0xe5,0x27,0xbe,0xb1,0x25,0x50, +0x4, 0xe5,0x25,0x80,0x2, 0xe5,0x27,0xf5,0x2d,0xe5,0x2c,0xbe,0xb1,0x2a,0x78,0x29, +0xd2,0x4, 0xe5,0x2a,0x60,0x8, 0xe5,0x40,0x14,0xbe,0xb1,0x2a,0x78,0x2, 0xd2,0x5, +0xe5,0x2a,0xbe,0xb0,0x0, 0x28,0x2, 0x15,0x2a,0xe5,0x40,0xa, 0x2b,0x1b,0x24,0xe5, +0x2c,0xa, 0x3b,0xbd,0x32,0x58,0x2, 0x5, 0x2c,0xe5,0x2d,0xbe,0xb1,0x2b,0x78,0x29, +0xd2,0x4, 0xe5,0x2b,0x60,0x8, 0xe5,0x41,0x14,0xbe,0xb1,0x2b,0x78,0x2, 0xd2,0x5, +0xe5,0x2b,0xbe,0xb0,0x0, 0x28,0x2, 0x15,0x2b,0xe5,0x41,0xa, 0x2b,0x1b,0x24,0xe5, +0x2d,0xa, 0x3b,0xbd,0x32,0x58,0x2, 0x5, 0x2d,0x85,0x2a,0x3c,0x80,0x4c,0x85,0x2b, +0x3d,0x80,0x3e,0xe5,0x3c,0x7e,0x71,0x3d,0x12,0x2c,0x40,0x7a,0x35,0x3e,0xe5,0x2a, +0xbe,0xb1,0x3c,0x68,0x15,0xe5,0x2c,0xbe,0xb1,0x3c,0x68,0xe, 0xe5,0x2b,0xbe,0xb1, +0x3d,0x68,0x7, 0xe5,0x2d,0xbe,0xb1,0x3d,0x78,0x9, 0x7e,0x35,0x3e,0x2d,0x93,0x5, +0x42,0x80,0xc, 0x7e,0x35,0x33,0xbe,0x35,0x3e,0x58,0x2, 0x5, 0x3b,0xb, 0xe0,0x5, +0x3d,0xe5,0x2d,0xbe,0xb1,0x3d,0x50,0xbb,0x5, 0x3c,0xe5,0x2c,0xbe,0xb1,0x3c,0x50, +0xad,0xe5,0x2c,0x12,0x2f,0xae,0xe5,0x2a,0x12,0x2f,0xa5,0xe5,0x2a,0x12,0x2f,0xae, +0xe5,0x2c,0x12,0x2f,0xa5,0x7e,0x85,0x37,0x2e,0x85,0x35,0x30,0x4, 0x9, 0x20,0x5, +0x6, 0x9d,0x98,0x15,0x42,0x15,0x42,0xe5,0x42,0xbe,0xb0,0x4, 0x28,0x6, 0xe5,0x42, +0x24,0xfc,0xf5,0x42,0xbe,0x94,0x0, 0x0, 0x58,0x2, 0x6d,0x99,0x7d,0x18,0x1a,0x2, +0x1a,0x0, 0x7e,0x35,0x31,0x1a,0x26,0x1a,0x24,0x12,0x1e,0xeb,0xe5,0x42,0xa, 0x1b, +0x6d,0x0, 0x12,0x1e,0xeb,0x7f,0x21,0x7d,0x39,0x1a,0x26,0x1a,0x24,0x7e,0x14,0x0, +0x28,0x12,0x1e,0xfc,0xbf,0x12,0x8, 0x15,0xe5,0x3b,0xa, 0x3b,0xa, 0x2e,0x9d,0x23, +0x3e,0x24,0x3e,0x24,0xa, 0x3e,0xbd,0x23,0x18,0x3, 0x75,0x30,0x2, 0xe5,0x30,0xbe, +0xb0,0x0, 0x28,0x62,0xe5,0x30,0xa, 0x3b,0x2e,0x34,0x33,0xbf,0x7e,0x39,0xb0,0x4, +0x7a,0x39,0xb0,0xe5,0x2e,0xa, 0x3b,0x9, 0xa3,0x1f,0x34,0x4c,0xaa,0x78,0xc, 0xa, +0x2c,0x9, 0xb2,0x1f,0x34,0x19,0xb3,0x1f,0x34,0x80,0x3b,0xa, 0x2c,0x9, 0xb2,0x1f, +0x34,0xf5,0x43,0xbc,0xba,0x28,0x3, 0x7a,0xa1,0x43,0x75,0x2f,0x0, 0x80,0x22,0x9, +0x33,0x1f,0x34,0xe5,0x2f,0xa, 0x2b,0x9, 0x22,0x1f,0x34,0xbc,0x23,0x68,0xa, 0xa, +0xc, 0x9, 0x30,0x1f,0x34,0xbc,0x23,0x78,0x6, 0xe5,0x43,0x19,0xb2,0x1f,0x34,0x5, +0x2f,0xbe,0xd1,0x2f,0x38,0xd9,0x5, 0x2e,0xbe,0xd1,0x2e,0x28,0x2, 0x81,0xc0,0xb, +0xc0,0xbc,0xdc,0x28,0x2, 0x81,0x8e,0x7e,0x8, 0x1f,0x34,0x12,0xaf,0x94,0x7a,0xb3, +0x33,0xc2,0xda,0x3b,0x22,0x7e,0x71,0x2d,0x12,0x2c,0x40,0x9d,0x93,0x22,0x7e,0x71, +0x2b,0x12,0x2c,0x40,0x9d,0x93,0x22,0x7c,0x7b,0x12,0x77,0xf6,0x9, 0xa2,0x27,0x72, +0x7c,0xb7,0x54,0x7, 0xa, 0x3b,0x2e,0x34,0x0, 0x5e,0x12,0x91,0x6d,0x5c,0xba,0x22, +0x7e,0x70,0x1, 0x2, 0x51,0x5f,0xa, 0x3b,0x9d,0x32,0x2, 0x21,0x0, 0x90,0x60,0x9a, +0x93,0xa, 0x3b,0x22,0x7e,0x70,0x2, 0xac,0x79,0x9, 0xb3,0x1f,0x34,0x22,0x12,0x2f, +0xf4,0x50,0xfb,0x22,0x7e,0xb3,0x34,0x3a,0xb4,0x1, 0x2, 0xc3,0x22,0xd3,0x22,0x7c, +0xbd,0x7c,0x7e,0x7e,0x13,0x2a,0x6e,0xac,0x1b,0x3e,0x4, 0x7e,0x30,0x2, 0xac,0x37, +0x2d,0x10,0x7e,0x1f,0x13,0x8a,0x2d,0x31,0x22,0xca,0x3b,0x7c,0x5b,0x7e,0x43,0x28, +0x84,0xbe,0x40,0x1, 0x28,0x2, 0x21,0x14,0x7e,0xa3,0x2a,0x6e,0x7e,0x70,0x2, 0xac, +0x75,0x9, 0xd3,0x26,0xfa,0x9, 0xc3,0x26,0xfb,0x7c,0xbd,0x7c,0x7c,0x12,0x30,0x3, +0x7f,0x1, 0x90,0x60,0xaa,0xe4,0x93,0x70,0x12,0x7c,0xfc,0x7c,0x9d,0x7e,0x83,0x2a, +0x70,0x7e,0xe3,0x2a,0x6f,0xa, 0xca,0x6d,0xbb,0x9d,0xbc,0xa, 0xa8,0x1b,0xa5,0xa, +0x5f,0xbd,0x5a,0x58,0x2, 0x21,0x14,0xa, 0x59,0x1b,0x54,0xbe,0x54,0x0, 0x0, 0x48, +0x4e,0x7c,0xb9,0x14,0x12,0x31,0x5a,0x50,0x46,0x7c,0xb9,0x14,0x12,0x31,0x17,0xb, +0x1a,0xe0,0x7d,0x3b,0x12,0x31,0x4c,0x8, 0x11,0x9d,0xae,0xbe,0xa4,0x0, 0x0, 0x58, +0x4, 0x6d,0x55,0x80,0x2, 0x7d,0x5a,0x12,0x31,0x44,0x7c,0xb8,0x24,0xfe,0xbc,0xbf, +0x78,0x1d,0x90,0x60,0xaa,0xe4,0x93,0x70,0x4, 0x7d,0xfd,0x1b,0xf4,0x7d,0x5f,0x12, +0x31,0x1e,0xb, 0x1a,0x30,0xbd,0x3a,0x8, 0x6, 0x12,0x31,0x20,0x1b,0x1a,0xa0,0xa, +0xa9,0xb, 0xa4,0xa, 0x5e,0xbd,0xa5,0x58,0x4b,0x7c,0xb9,0x4, 0x12,0x31,0x5a,0x50, +0x43,0x7c,0xb9,0x4, 0x12,0x31,0x17,0xb, 0x1a,0xe0,0x7d,0x3c,0x12,0x31,0x4c,0x8, +0x11,0x9d,0xae,0xbe,0xa4,0x0, 0x0, 0x58,0x4, 0x6d,0x55,0x80,0x2, 0x7d,0x5a,0x12, +0x31,0x44,0x7c,0xb8,0x24,0xfe,0xbc,0xbf,0x78,0x1a,0x90,0x60,0xaa,0xe4,0x93,0x70, +0x4, 0x7d,0xfd,0x1b,0xf4,0x7d,0x5f,0x12,0x31,0x1e,0xb, 0x1a,0x50,0xbd,0x5a,0x8, +0x3, 0x1b,0x1a,0xa0,0xda,0x3b,0x22,0x12,0x31,0x27,0x7d,0xd3,0x7d,0x5d,0x3e,0x54, +0x7e,0x1f,0x13,0x8a,0x2d,0x35,0x22,0x7c,0x5b,0x7e,0x43,0x2a,0x6e,0x90,0x60,0xab, +0xe4,0x93,0x7c,0xab,0x90,0x60,0xaa,0xe4,0x93,0x70,0x8, 0x7c,0x75,0xac,0x74,0xa, +0x2a,0x2d,0x32,0x22,0x2d,0x31,0x7d,0x20,0x1b,0x1a,0x50,0x22,0x3e,0x34,0x7f,0x40, +0x2d,0x93,0xb, 0x4a,0xa0,0xbe,0xe4,0x0, 0x0, 0x22,0x7c,0xab,0x6c,0x77,0x80,0x12, +0xa, 0x27,0x2e,0x24,0x60,0xac,0x12,0x51,0x4f,0x93,0xbc,0xba,0x78,0x2, 0xd3,0x22, +0xb, 0x70,0x90,0x60,0xa7,0xe4,0x93,0xbc,0xb7,0x38,0xe5,0xc3,0x22,0x12,0x36,0x9c, +0x60,0x30,0x6c,0x22,0x80,0x24,0x7c,0xb2,0x12,0x31,0x5a,0x50,0x1b,0x7c,0xb2,0x12, +0x31,0x27,0x7d,0x3, 0x12,0x36,0x94,0x49,0x55,0x38,0xe8,0x7d,0x40,0x3e,0x44,0x7e, +0x1f,0x13,0x8a,0x2d,0x34,0x1b,0x1a,0x50,0xb, 0x20,0x7e,0x73,0x2a,0x75,0xbc,0x72, +0x38,0xd4,0x22,0xca,0x3b,0x6c,0xff,0x12,0xc0,0xde,0x7e,0xb3,0x16,0x91,0xb4,0x1, +0x2, 0x80,0x2, 0x41,0xdd,0x6c,0xcc,0x41,0xcf,0x12,0xc0,0x8b,0xf5,0x27,0x9, 0xb3, +0x26,0xfb,0xf5,0x28,0x7e,0xb3,0x28,0x84,0xb4,0x1, 0xb, 0x7e,0xb3,0x36,0x71,0x70, +0x5, 0x12,0x32,0xe0,0x80,0x6, 0x75,0x25,0x2, 0x75,0x26,0x2, 0x7c,0xbc,0x12,0x30, +0x19,0xd2,0x3, 0x12,0x32,0xe7,0x7e,0xb3,0x36,0xec,0xb4,0x1, 0x1b,0x7e,0xb3,0x2a, +0x3, 0xb4,0x1, 0x14,0x7e,0xb3,0x28,0x84,0xb4,0x1, 0xd, 0x7e,0x37,0x28,0x86,0xbe, +0x34,0x0, 0xa, 0x40,0x3, 0x12,0x32,0xe0,0xe5,0x27,0x60,0xc, 0xa, 0x2e,0x1b,0x24, +0xe5,0x27,0xa, 0x3b,0xbd,0x32,0x48,0x3, 0x75,0x25,0x1, 0xe5,0x28,0x60,0xc, 0xa, +0x2d,0x1b,0x24,0xe5,0x28,0xa, 0x3b,0xbd,0x32,0x48,0x3, 0x75,0x26,0x1, 0x75,0x24, +0x0, 0x80,0x3c,0xe5,0x24,0xbc,0xbc,0x68,0x34,0x12,0x35,0xda,0x9, 0xa3,0x26,0xfa, +0x7a,0xa1,0x29,0x9, 0xb3,0x26,0xfb,0xf5,0x2a,0xa, 0x2a,0xe5,0x27,0x12,0x2f,0xd6, +0xbe,0x34,0x0, 0x3, 0x18,0x17,0xe5,0x2a,0xa, 0x2b,0xe5,0x28,0x12,0x2f,0xd6,0xbe, +0x34,0x0, 0x3, 0x18,0x8, 0x75,0x25,0x1, 0x75,0x26,0x1, 0x80,0x7, 0x5, 0x24,0x12, +0x36,0xa4,0x38,0xbf,0xe5,0x27,0x7e,0x71,0x28,0x12,0xa0,0x94,0x50,0x8, 0x12,0x31, +0x7d,0x12,0x35,0xd3,0x80,0x8, 0x12,0x69,0x84,0x50,0x3, 0x12,0x32,0xe0,0xe5,0x25, +0x7e,0x71,0x26,0x7c,0x6c,0x7c,0x5f,0x12,0x33,0x21,0x90,0x61,0x36,0xe4,0x93,0xb4, +0x1, 0x16,0x7e,0x70,0x9, 0xac,0x7c,0x7d,0x13,0x2e,0x14,0x27,0x76,0x6d,0x0, 0x2e, +0x34,0x27,0x78,0x6d,0x22,0x12,0x7f,0xc5,0x12,0x31,0x7d,0xb, 0xf0,0xb, 0xc0,0x7e, +0x73,0x28,0x84,0xbc,0x7c,0x28,0x2, 0x21,0xc9,0x7a,0xf3,0x28,0x84,0xda,0x3b,0x22, +0x75,0x25,0x3, 0x75,0x26,0x3, 0x22,0x12,0x36,0x9c,0x60,0x34,0x6c,0x22,0x80,0x28, +0x7c,0xb2,0x12,0x31,0x5a,0x50,0x1f,0x7c,0xb2,0x12,0x31,0x27,0x3e,0x34,0x7e,0x7f, +0x13,0x8a,0x2d,0xf3,0xb, 0x7a,0x30,0x12,0x36,0x94,0x59,0x35,0x38,0xe8,0x30,0x3, +0x5, 0x6d,0x33,0x1b,0x7a,0x30,0xb, 0x20,0x7e,0x73,0x2a,0x75,0xbc,0x72,0x38,0xd0, +0x22,0xca,0x3b,0x7c,0xf5,0x7c,0xe6,0x7c,0xd7,0x7c,0xcb,0x74,0x9, 0xac,0xbf,0x7d, +0xd5,0x2e,0xd4,0x27,0x76,0x6d,0xcc,0x7e,0x37,0x2a,0x66,0x7a,0x35,0x43,0xe4,0x39, +0xb6,0x0, 0x6, 0x7e,0x70,0x2, 0xac,0x7e,0x9, 0xb3,0x26,0xfa,0xf5,0x31,0x9, 0xb3, +0x26,0xfb,0xf5,0x32,0x7e,0x73,0x2a,0x6e,0x7c,0x6d,0x7e,0x8, 0x0, 0x35,0x12,0x35, +0x80,0xf5,0x33,0xe5,0x31,0x7e,0x73,0x2a,0x6d,0x7c,0x6c,0x7e,0x8, 0x0, 0x34,0x12, +0x35,0x80,0x7c,0xab,0xe5,0x34,0x7e,0x71,0x35,0x12,0x30,0x3, 0x7a,0x35,0x3f,0x7e, +0x34,0x15,0x9e,0x7a,0x35,0x41,0x85,0x34,0x39,0x85,0x35,0x3a,0x7a,0xa1,0x3b,0x85, +0x33,0x3c,0x7e,0xb3,0x2a,0x59,0xf5,0x3d,0x75,0x3e,0x0, 0x7e,0x8, 0x0, 0x39,0x12, +0x90,0x50,0x7d,0x23,0x6d,0x33,0x7e,0x97,0x15,0xa0,0x6d,0x88,0x2f,0x41,0x7e,0x37, +0x15,0xa2,0x6d,0x22,0x7d,0x3, 0x6d,0x11,0x7e,0x37,0x15,0xa4,0x2f,0x10,0x7a,0x1d, +0x2b,0x7e,0x37,0x15,0xa6,0x7d,0x23,0x6d,0x33,0x7e,0xb7,0x15,0xa8,0x6d,0xaa,0x2f, +0x51,0x7f,0x74,0xa, 0x4c,0xe5,0x31,0xa, 0x5b,0x9d,0x54,0xf5,0x2f,0x81,0xc7,0xa, +0x4d,0xe5,0x32,0xa, 0x5b,0x9d,0x54,0xf5,0x30,0x81,0xb1,0xe5,0x2f,0xbe,0xb0,0x0, +0x58,0x2, 0x81,0xaf,0x7e,0x73,0x2a,0x6d,0xbe,0x71,0x2f,0x18,0x2, 0x81,0xaf,0xe5, +0x30,0xbe,0xb0,0x0, 0x58,0x2, 0x81,0xaf,0x7e,0x73,0x2a,0x6e,0xbe,0x71,0x30,0x18, +0x2, 0x81,0xaf,0xe5,0x2f,0x7e,0x71,0x30,0x12,0x2c,0x40,0x7e,0x53,0x2a,0x59,0xa, +0x25,0x9d,0x32,0x7a,0x35,0x37,0xbe,0x34,0x0, 0x0, 0x18,0x2, 0x81,0xaf,0x7e,0x35, +0x43,0xbe,0x35,0x37,0x18,0xd, 0x7f,0x16,0x2e,0x34,0x0, 0x6, 0x7e,0x1b,0xb0,0x4, +0x7a,0x1b,0xb0,0xe5,0x31,0xa, 0x2b,0xe5,0x2f,0x12,0x35,0x65,0x18,0xb, 0xe5,0x32, +0xa, 0x2b,0xe5,0x30,0x12,0x35,0x65,0x8, 0x56,0xe5,0x2f,0x7e,0x71,0x30,0x7c,0x6e, +0x12,0xb8,0xa8,0xf5,0x36,0xb4,0x2, 0xc, 0x7e,0x35,0x37,0x7d,0x23,0xe, 0x24,0x9d, +0x32,0x7a,0x35,0x37,0xe5,0x36,0xbe,0xb0,0x2, 0x68,0x5, 0xe5,0x36,0xb4,0x1, 0x2f, +0x7e,0x45,0x37,0x7d,0x34,0x1a,0x26,0x1a,0x24,0xe5,0x2f,0x12,0x35,0x56,0x7f,0x1, +0x7e,0x1d,0x2b,0x9f,0x10,0x7a,0x1d,0x2b,0x7d,0x34,0x1a,0x26,0x1a,0x24,0xe5,0x30, +0x12,0x35,0x56,0x9f,0x51,0x12,0x35,0x5d,0x9f,0x41,0x12,0x35,0x5d,0x9f,0x71,0x5, +0x30,0xa, 0x2d,0xe5,0x32,0xa, 0x3b,0x2d,0x32,0x1a,0x27,0xe5,0x30,0x1a,0x3b,0xbd, +0x32,0x18,0x2, 0x61,0xeb,0x5, 0x2f,0xa, 0x2c,0xe5,0x31,0xa, 0x3b,0x2d,0x32,0x1a, +0x27,0xe5,0x2f,0x1a,0x3b,0xbd,0x32,0x18,0x2, 0x61,0xdf,0xbe,0x48,0x0, 0x0, 0x78, +0x2, 0xb, 0x4c,0xbe,0x78,0x0, 0x0, 0x78,0x2, 0xb, 0x7c,0x7e,0x1d,0x2b,0x7f,0x4, +0x12,0x35,0x71,0x1b,0x6a,0x30,0x7f,0x15,0x7f,0x7, 0x12,0x35,0x71,0x79,0x36,0x0, +0x2, 0x7e,0xb3,0x2a,0x65,0x60,0xd, 0x1e,0xf4,0x1e,0xe4,0x50,0x4, 0x4e,0xf4,0x80, +0x0, 0x14,0x78,0xf3,0xbe,0x78,0x0, 0x7f,0x28,0x4, 0x7e,0x78,0x0, 0x7f,0x7d,0x3f, +0x39,0x76,0x0, 0x5, 0x74,0x9, 0xac,0xbe,0x9, 0x75,0x27,0x7c,0x39,0x76,0x0, 0x6, +0xbe,0x70,0xf, 0x28,0x6, 0x74,0xf, 0x39,0xb6,0x0, 0x6, 0x7e,0xa1,0x31,0x7e,0x70, +0x9, 0xac,0x7f,0x19,0xa3,0x27,0x7d,0x7e,0xa1,0x32,0x7e,0x70,0x9, 0xac,0x7f,0x19, +0xa3,0x27,0x7e,0xda,0x3b,0x22,0x1a,0x1b,0x1a,0x2, 0x2, 0x1e,0xeb,0x7e,0x35,0x37, +0x1a,0x26,0x1a,0x24,0x22,0x1a,0x3b,0x9d,0x32,0x12,0x21,0x0, 0xbe,0x34,0x0, 0x1, +0x22,0x74,0x6, 0x2f,0x11,0x14,0x78,0xfb,0x12,0x1f,0x7, 0x2e,0x18,0x0, 0x20,0x22, +0xca,0xf8,0x7c,0xf6,0x7c,0x87,0x7c,0x9b,0xa, 0x2f,0x7d,0x32,0x3e,0x34,0xb, 0x34, +0x7c,0xb7,0xbc,0xf9,0x38,0x14,0xa, 0xf8,0x1b,0xf4,0xa, 0x3f,0x9d,0xf3,0xa, 0x39, +0xbd,0x3f,0x18,0x6, 0x7c,0xab,0xa, 0x39,0x80,0x1d,0xbc,0xf9,0x28,0xd, 0xa, 0x39, +0xa, 0x5f,0x2d,0x53,0xb, 0x54,0x7c,0xab,0xe4,0x80,0x10,0xa, 0x3f,0xa, 0x58,0x2d, +0x53,0xa, 0x39,0x9d,0x53,0x7c,0xab,0x9d,0x32,0x7c,0xb7,0x7a,0xb, 0xb0,0x7c,0xba, +0xda,0xf8,0x22,0x75,0x25,0x0, 0x75,0x26,0x0, 0x22,0x7e,0x71,0x24,0x74,0x2, 0xac, +0x7b,0x22,0xca,0x3b,0x7e,0xb3,0x2a,0x74,0xf5,0x27,0x12,0x0, 0x66,0x50,0x2, 0xc1, +0x6f,0x6d,0x33,0x9e,0x37,0x2a,0x4f,0x3e,0x34,0xbe,0x37,0x7, 0xf8,0x18,0x70,0x7e, +0xb3,0x16,0x92,0x70,0x6a,0x7e,0xb3,0x28,0xa8,0xb4,0x1, 0x60,0x7e,0x77,0x2a,0x51, +0x7e,0x67,0x2a,0x53,0x75,0x24,0x0, 0x80,0x4e,0xe5,0x24,0x12,0x2f,0xb7,0x60,0x45, +0x12,0x35,0xda,0x12,0x9d,0x80,0xf5,0x26,0x7e,0xb3,0x2a,0x3, 0xb4,0x1, 0xe, 0x90, +0x60,0xab,0xe4,0x93,0xbe,0xb1,0x26,0x78,0x4, 0xe, 0x64,0xe, 0x74,0x7e,0xa1,0x26, +0x74,0x2, 0xa4,0x49,0x35,0x4, 0xfc,0xbd,0x36,0x48,0xd, 0xe5,0x25,0xa, 0x2b,0xe5, +0x27,0x12,0x9b,0x18,0xbd,0x37,0x58,0xd, 0xe5,0x24,0x6c,0x77,0x12,0x51,0x5f,0x12, +0x35,0xda,0x12,0x37,0x9f,0x5, 0x24,0x12,0x36,0xa4,0x38,0xad,0x12,0xa6,0x5, 0xda, +0x3b,0x22,0x12,0x46,0xa2,0x12,0x24,0x9a,0x12,0x73,0x28,0x12,0x22,0xf2,0x7e,0xb3, +0x37,0x8, 0x24,0xfd,0x68,0x9, 0xb, 0xb1,0x78,0xf4,0x12,0x58,0xf0,0x80,0xef,0x12, +0x29,0x7e,0x80,0xea,0x7c,0xa3,0xb, 0x30,0x74,0x2, 0xa4,0x22,0x6c,0x33,0x90,0x60, +0xa7,0xe4,0x93,0x22,0x7e,0x73,0x28,0x84,0xbe,0x71,0x24,0x22,0x12,0xa5,0xee,0x12, +0x9b,0x49,0x12,0x35,0xe2,0x12,0x9a,0x38,0x2, 0x36,0xbb,0xca,0x3b,0x12,0x2b,0xfa, +0x7e,0xb3,0x28,0x84,0x60,0x6, 0x7e,0xb3,0x35,0xe2,0x60,0x9, 0xe4,0x7a,0xb3,0x35, +0xe4,0x7a,0xb3,0x35,0x69,0x7e,0xb3,0x35,0xe2,0x70,0x69,0x6c,0x99,0x80,0x5d,0x74, +0x2, 0xac,0xb9,0x9, 0x85,0x26,0xfa,0x9, 0xf5,0x26,0xfb,0x7c,0xb9,0x12,0x9a,0xed, +0x40,0x48,0x6c,0xee,0x80,0x3c,0x74,0x2, 0xac,0xbe,0x9, 0xd5,0x35,0x6a,0x9, 0xc5, +0x35,0x6b,0xa, 0x28,0xa, 0x3d,0x12,0x37,0x67,0x78,0x25,0xa, 0x2f,0xa, 0x3c,0x12, +0x37,0x67,0x78,0x1c,0x7c,0xb9,0x12,0x37,0x6f,0x7e,0x14,0x62,0x2b,0x12,0x87,0xee, +0x58,0xe, 0x7c,0xb9,0x6c,0x77,0x12,0x51,0x5f,0x7c,0xb8,0x7c,0x7f,0x12,0x37,0xa7, +0xb, 0xe0,0x7e,0x73,0x35,0xe4,0xbc,0x7e,0x38,0xbc,0xb, 0x90,0x7e,0x73,0x28,0x84, +0xbc,0x79,0x38,0x9b,0x7e,0x73,0x35,0x69,0x7a,0x73,0x35,0xe4,0xa, 0x37,0x3e,0x34, +0xca,0x39,0x7e,0x18,0x35,0xa6,0x7e,0x8, 0x35,0x6a,0x12,0x20,0xb9,0x1b,0xfd,0xe4, +0x7a,0xb3,0x35,0xe2,0xda,0x3b,0x22,0x9d,0x32,0x12,0x21,0x0, 0x4d,0x33,0x22,0x7c, +0xab,0x7e,0x70,0x2, 0xac,0x7a,0x9, 0xb3,0x26,0xfa,0x9, 0x73,0x26,0xfb,0x2, 0x2c, +0x40,0xca,0xf8,0x7c,0xfb,0x7e,0x70,0x2, 0x12,0x99,0x6c,0x7f,0x71,0x7c,0xbf,0x12, +0x37,0x6f,0x12,0xa4,0xcf,0x7f,0x17,0x12,0x1f,0x58,0x7c,0xb7,0xda,0xf8,0x22,0x9, +0xb3,0x26,0xfa,0x9, 0x73,0x26,0xfb,0x7c,0x6b,0x7e,0xa3,0x35,0x69,0x7e,0x50,0x2, +0xac,0x5a,0x19,0x62,0x35,0xa6,0x19,0x72,0x35,0xa7,0x7c,0xba,0x4, 0x7a,0xb3,0x35, +0x69,0x22,0xca,0xf8,0x6c,0xff,0x80,0x18,0x7c,0xbf,0x12,0x37,0x6f,0xbe,0x37,0x2a, +0x5c,0x58,0xb, 0x12,0x51,0x5b,0x7e,0x70,0x2, 0xac,0x7f,0x12,0x37,0x9f,0xb, 0xf0, +0x12,0x52,0x66,0x38,0xe3,0x12,0x2b,0xfa,0xda,0xf8,0x22,0xca,0xf8,0x7c,0xab,0xbe, +0xa0,0x34,0x38,0x3, 0x2, 0x38,0xfd,0xbe,0xa0,0x35,0x78,0x6, 0x7e,0xb3,0x2b,0x10, +0x41,0x1c,0xbe,0xa0,0x36,0x68,0x5, 0xbe,0xa0,0x37,0x78,0x1d,0x7e,0x35,0x8, 0x7d, +0x23,0xb, 0x24,0x7a,0x25,0x8, 0x2e,0x37,0x31,0xce,0x7e,0x39,0xb0,0xbe,0xa0,0x37, +0x68,0x2, 0x41,0x1c,0x75,0x1a,0x36,0x41,0x1c,0xbe,0xa0,0x38,0x68,0x5, 0xbe,0xa0, +0x39,0x78,0x1b,0x7e,0xf3,0x37,0xc0,0x7c,0xbf,0x4, 0x7a,0xb3,0x37,0xc0,0xbe,0xa0, +0x39,0x78,0x3, 0x75,0x1a,0x38,0xa, 0x3f,0x9, 0xb3,0x2b,0x21,0x41,0x1c,0xbe,0xa0, +0x3a,0x68,0x5, 0xbe,0xa0,0x3b,0x78,0x1b,0x7e,0xf3,0x37,0xc2,0x7c,0xbf,0x4, 0x7a, +0xb3,0x37,0xc2,0xbe,0xa0,0x3b,0x78,0x3, 0x75,0x1a,0x3a,0xa, 0x3f,0x9, 0xb3,0x2b, +0x44,0x41,0x1c,0xbe,0xa0,0xfb,0x78,0x6, 0x7e,0xb3,0x2b,0x12,0x41,0x1c,0xbe,0xa0, +0x5e,0x78,0x26,0x7e,0xf, 0x38,0xc0,0x69,0x30,0x0, 0x8e,0xa, 0x56,0x1e,0x54,0x1e, +0x54,0x1e,0x54,0x5e,0x54,0x0, 0x1, 0x3, 0x3, 0x54,0xc0,0xa, 0x36,0x5e,0x34,0x0, +0x3, 0x7c,0xa7,0x4c,0xba,0x44,0x80,0x41,0x1c,0xbe,0xa0,0x3c,0x68,0x5, 0xbe,0xa0, +0x3d,0x78,0x1b,0x7e,0xf3,0x37,0xc4,0x7c,0xbf,0x4, 0x7a,0xb3,0x37,0xc4,0xbe,0xa0, +0x3d,0x78,0x3, 0x75,0x1a,0x3c,0xa, 0x3f,0x9, 0xb3,0x2a,0x7a,0x41,0x1c,0xbe,0xa0, +0x3e,0x68,0x5, 0xbe,0xa0,0x3f,0x78,0x1b,0x7e,0xf3,0x37,0xc6,0x7c,0xbf,0x4, 0x7a, +0xb3,0x37,0xc6,0xbe,0xa0,0x3f,0x78,0x3, 0x75,0x1a,0x3e,0xa, 0x3f,0x9, 0xb3,0x2a, +0x9d,0x41,0x1c,0xbe,0xa0,0x40,0x40,0xd, 0xbe,0xa0,0x4d,0x38,0x8, 0xa, 0x3a,0x9, +0xb3,0x37,0x9c,0x41,0x1c,0xbe,0xa0,0x4e,0x68,0x5, 0xbe,0xa0,0x4f,0x78,0x1e,0x7e, +0xf3,0x37,0xe1,0x7c,0xbf,0x4, 0x7a,0xb3,0x37,0xe1,0xbe,0xa0,0x4f,0x78,0x3, 0x75, +0x1a,0x4e,0xa, 0x3f,0x2e,0x37,0x31,0xcc,0x7e,0x39,0xb0,0x41,0x1c,0xbe,0xa0,0x51, +0x68,0x5, 0xbe,0xa0,0x52,0x78,0x28,0x7e,0x14,0x60,0x0, 0x6d,0x0, 0x2e,0x4, 0x0, +0xff,0x7e,0xb3,0x37,0xec,0xa, 0x3b,0x6d,0x22,0x2f,0x10,0x7e,0x1b,0x70,0x4, 0x7a, +0xb3,0x37,0xec,0xbe,0xa0,0x52,0x78,0x3, 0x75,0x1a,0x51,0x7c,0xb7,0x41,0x1c,0xbe, +0xa0,0x5c,0x68,0x5, 0xbe,0xa0,0x5d,0x78,0x1a,0x7e,0xf3,0x37,0xb5,0x7c,0xbf,0x4, +0x7a,0xb3,0x37,0xb5,0xbe,0xa0,0x5d,0x78,0x3, 0x75,0x1a,0x5c,0x7c,0xbf,0x12,0x3a, +0x1f,0x41,0x1c,0xbe,0xa0,0x60,0x40,0xd, 0xbe,0xa0,0x6c,0x38,0x8, 0xa, 0x3a,0x9, +0xb3,0x3, 0x91,0x41,0x1c,0xbe,0xa0,0x6d,0x78,0x4, 0xe5,0xe, 0x80,0x7e,0xbe,0xa0, +0xf4,0x68,0x5, 0xbe,0xa0,0xf5,0x78,0x18,0x7e,0x35,0xa, 0x7d,0x23,0xb, 0x24,0x7a, +0x25,0xa, 0x9, 0xb3,0x31,0xd4,0xbe,0xa0,0xf5,0x78,0x61,0x75,0x1a,0xf4,0x80,0x5c, +0xbe,0xa0,0xf0,0x68,0x5, 0xbe,0xa0,0xf1,0x78,0x9, 0x7c,0x1a,0x2e,0x10,0x20,0xa5, +0xe7,0x80,0x49,0xbe,0xa0,0xf2,0x68,0x5, 0xbe,0xa0,0xf3,0x78,0x1b,0x7e,0x15,0x10, +0x3e,0x14,0x7e,0x1f,0x31,0xd0,0x2d,0x31,0xb, 0x1a,0x30,0xbe,0xa0,0xf2,0x78,0x4, +0xa, 0x56,0x80,0x28,0x7d,0x53,0x80,0x24,0xbe,0xa0,0xf6,0x78,0x4, 0xe5,0xf, 0x80, +0x1b,0xbe,0xa0,0xf7,0x78,0xd, 0x7e,0x34,0x62,0x48,0x7e,0x24,0x0, 0xff,0xb, 0x1a, +0x50,0x80,0x9, 0xbe,0xa0,0xfd,0x78,0x3, 0xe4,0x80,0x1, 0xe4,0xda,0xf8,0x22,0x7c, +0xab,0xbe,0xa0,0x0, 0x40,0x11,0x7e,0xb3,0x2a,0x6e,0xbc,0xba,0x28,0x9, 0x74,0x2, +0xa4,0x49,0x25,0x34,0x0, 0x80,0x51,0x7e,0x13,0x2a,0x6e,0xbc,0x1a,0x38,0x1c,0x7e, +0x3, 0x2a,0x6d,0xa, 0x10,0xa, 0x21,0x2d,0x12,0xa, 0x3a,0xbd,0x31,0x58,0xc, 0x9d, +0x32,0x3e,0x34,0x3e,0x34,0x49,0x23,0x3, 0x60,0x80,0x2d,0x7e,0x3, 0x2a,0x6d,0xa, +0x20,0xa, 0x11,0x7d,0x41,0x2d,0x42,0xa, 0x3a,0xbd,0x34,0x48,0x19,0x7e,0x10,0x2, +0xac,0x1, 0x2d,0x1, 0xbd,0x30,0x58,0xe, 0x9d,0x31,0x9d,0x32,0x3e,0x34,0x3e,0x34, +0x49,0x23,0x3, 0x62,0x80,0x2, 0xe4,0x22,0x7e,0x34,0x0, 0x64,0xad,0x23,0x74,0xc, +0x1e,0x34,0x1e,0x24,0x50,0x3, 0x4e,0x60,0x80,0x14,0x78,0xf4,0x7c,0xb7,0x22,0xca, +0xf8,0x80,0x38,0x7c,0xbf,0x12,0x3a,0x1f,0xa, 0x1b,0x7e,0x63,0x2a,0x6e,0x7e,0x70, +0x2, 0xac,0x67,0x7e,0x10,0x2, 0xac,0x1f,0x2d,0x3, 0x7e,0x1f,0x13,0x8a,0x2d,0x30, +0x12,0x3a,0xde,0x9d,0x35,0x1b,0x1a,0x10,0xb, 0xf0,0x12,0x3a,0xde,0x7e,0x73,0x2a, +0x6e,0xa, 0x27,0x2d,0x25,0xa, 0x3f,0xbd,0x32,0x48,0xc8,0xda,0xf8,0x22,0x7e,0xa3, +0x2a,0x6d,0x74,0x2, 0xa4,0x22,0x12,0x3f,0xaa,0xb4,0x1, 0x14,0xca,0x39,0x7e,0x18, +0x37,0xdc,0x7e,0x8, 0x25,0xee,0x12,0x20,0xb9,0x1b,0xfd,0x12,0x3f,0x49,0x80,0x12, +0xca,0x39,0x7e,0x18,0x37,0xdc,0x7e,0x8, 0x2b,0x70,0x12,0x20,0xb9,0x1b,0xfd,0x12, +0x3f,0x67,0x2, 0x3b,0x15,0x7a,0x1f,0x2a,0xfc,0x7a,0xf, 0x2a,0xf8,0x22,0xca,0xf8, +0x7c,0x6b,0xa5,0xbe,0x0, 0x9, 0x7c,0xb7,0x12,0x7d,0xab,0xd2,0x6, 0xa1,0xa0,0xa5, +0xbe,0x1, 0x3d,0x7a,0x73,0x37,0x9d,0xa5,0xbf,0xad,0x2, 0x80,0x2f,0xa5,0xbf,0xae, +0x4, 0xd2,0x7, 0xa1,0xa0,0xa5,0xbf,0xaa,0x5, 0x12,0xc0,0xf8,0x80,0x1e,0xa5,0xbf, +0xab,0xa, 0x7e,0x34,0x5, 0x7a,0x7a,0x37,0x31,0xce,0x80,0x10,0xa5,0xbf,0xac,0x2, +0x80,0x2, 0xa1,0xa0,0x7e,0x34,0x4, 0xfc,0x7a,0x37,0x31,0xce,0x6d,0x33,0x81,0x1c, +0xbe,0x60,0x4, 0x40,0x20,0xbe,0x60,0x8, 0x38,0x1b,0x12,0x3d,0xa3,0xa5,0xbe,0x7, +0x7, 0x6d,0x33,0x7a,0x35,0xa, 0xa1,0xa0,0xa5,0xbe,0x8, 0x2, 0x80,0x2, 0xa1,0xa0, +0x12,0x7, 0xfb,0xa1,0xa0,0xa5,0xbe,0xa, 0x9, 0x43,0xc, 0x20,0x7a,0x73,0x37,0xa6, +0xa1,0xa0,0xa5,0xbe,0xb, 0x8, 0x12,0x3d,0xa3,0x12,0x3f,0xc8,0xa1,0xa0,0xbe,0x60, +0x1b,0x40,0x7, 0xbe,0x60,0x1c,0x38,0x2, 0xa1,0x38,0xbe,0x60,0x1e,0x40,0xd, 0xbe, +0x60,0x23,0x38,0x8, 0x12,0x3d,0xa5,0x43,0xc, 0x40,0xa1,0xa0,0xbe,0x60,0x15,0x40, +0x1a,0xbe,0x60,0x18,0x38,0x15,0x12,0x3d,0xa5,0xd2,0x6, 0xa5,0xbe,0x15,0x2, 0x80, +0x2, 0xa1,0xa0,0x74,0x7, 0x7a,0xb3,0x37,0xa0,0xa1,0xa0,0xa5,0xbe,0x19,0x7, 0xe4, +0x7a,0xb3,0x37,0xb5,0xa1,0xa0,0xbe,0x60,0x24,0x40,0x7, 0xbe,0x60,0x2c,0x38,0x2, +0xa1,0x38,0xa5,0xbe,0x2d,0x1b,0x12,0x3d,0xa5,0x20,0x7, 0x2, 0xa1,0xa0,0x7e,0x63, +0x37,0xc8,0x7c,0x46,0x6c,0x55,0xa, 0x37,0x2d,0x32,0x3e,0x34,0x7a,0x35,0x8, 0xa1, +0xa0,0xbe,0x60,0x2f,0x40,0xa, 0xbe,0x60,0x33,0x38,0x5, 0x43,0xc, 0x8, 0xa1,0x38, +0xa5,0xbe,0x34,0xf, 0x43,0xc, 0x10,0xbe,0x70,0x64,0x38,0x2, 0xa1,0x38,0x7e,0x70, +0x64,0xa1,0x38,0xbe,0x60,0x38,0x68,0x4, 0xa5,0xbe,0x39,0x21,0x43,0xc, 0x1, 0x7e, +0xf3,0x37,0xc1,0x7c,0xbf,0x4, 0x7a,0xb3,0x37,0xc1,0xa, 0x2f,0x19,0x72,0x2b,0x21, +0xa5,0xbe,0x39,0x2, 0x80,0x2, 0xa1,0xa0,0x75,0x1a,0x38,0xa1,0xa0,0xbe,0x60,0x3a, +0x68,0x4, 0xa5,0xbe,0x3b,0x21,0x43,0xc, 0x2, 0x7e,0xf3,0x37,0xc3,0x7c,0xbf,0x4, +0x7a,0xb3,0x37,0xc3,0xa, 0x2f,0x19,0x72,0x2b,0x44,0xa5,0xbe,0x3b,0x2, 0x80,0x2, +0xa1,0xa0,0x75,0x1a,0x3a,0xa1,0xa0,0xa5,0xbe,0xfb,0x9, 0x43,0xc, 0x4, 0x7a,0x73, +0x2b,0x12,0xa1,0xa0,0xa5,0xbe,0x50,0x6, 0x7a,0x73,0x37,0xec,0xa1,0xa0,0xbe,0x60, +0x3c,0x68,0x4, 0xa5,0xbe,0x3d,0x21,0x43,0xc, 0x1, 0x7e,0xf3,0x37,0xc5,0x7c,0xbf, +0x4, 0x7a,0xb3,0x37,0xc5,0xa, 0x2f,0x19,0x72,0x2a,0x7a,0xa5,0xbe,0x3d,0x2, 0x80, +0x2, 0xa1,0xa0,0x75,0x1a,0x3c,0xa1,0xa0,0xbe,0x60,0x3e,0x68,0x4, 0xa5,0xbe,0x3f, +0x21,0x43,0xc, 0x1, 0x7e,0xf3,0x37,0xc7,0x7c,0xbf,0x4, 0x7a,0xb3,0x37,0xc7,0xa, +0x2f,0x19,0x72,0x2a,0x9d,0xa5,0xbe,0x3f,0x2, 0x80,0x2, 0xa1,0xa0,0x75,0x1a,0x3e, +0xa1,0xa0,0xbe,0x60,0x40,0x40,0xd, 0xbe,0x60,0x42,0x38,0x8, 0x12,0x3d,0xa5,0x75, +0xd, 0x1, 0x80,0xa, 0xa5,0xbe,0x43,0xb, 0x12,0x3d,0xa5,0x75,0xd, 0x2, 0x12,0x3a, +0xe6,0x80,0x7d,0xa5,0xbe,0x44,0x8, 0x12,0x3d,0xa5,0x12,0x3f,0x70,0x80,0x71,0xbe, +0x60,0x45,0x68,0x4, 0xa5,0xbe,0x46,0x5, 0x12,0x3d,0xa5,0x80,0x63,0xbe,0x60,0x4e, +0x68,0x4, 0xa5,0xbe,0x4f,0x20,0x43,0xd, 0x4, 0x7e,0xf3,0x37,0xe2,0x7c,0xbf,0x4, +0x7a,0xb3,0x37,0xe2,0xa, 0x2f,0x2e,0x27,0x31,0xcc,0x7a,0x29,0x70,0xa5,0xbe,0x4f, +0x3f,0x75,0x1a,0x4e,0x80,0x3a,0xa5,0xbe,0x6d,0x5, 0x7a,0x71,0xe, 0x80,0x31,0xbe, +0x60,0xf0,0x40,0x25,0xbe,0x60,0xf3,0x38,0x20,0x7c,0x16,0x2e,0x10,0x20,0x7c,0xb7, +0xa5,0xf7,0xa5,0xbe,0xf3,0x1a,0x7e,0x15,0x12,0x7e,0x5, 0x10,0x3e,0x4, 0x7e,0x1f, +0x31,0xd0,0x2d,0x30,0x1b,0x1a,0x10,0x80,0x7, 0xa5,0xbe,0xf6,0x3, 0x7a,0x71,0xf, +0xda,0xf8,0x22,0xd2,0x6, 0xa, 0x26,0x19,0x72,0x37,0x9c,0x22,0x7a,0xb3,0x2b,0x0, +0x70,0x14,0x12,0x3f,0x67,0x12,0x3b,0x15,0x7e,0x18,0x6, 0x76,0x7a,0x1f,0x6, 0xf4, +0x7e,0x18,0x4, 0x7e,0x80,0x10,0xb4,0x1, 0x11,0x12,0x3f,0x49,0x12,0x3b,0x15,0x12, +0x3f,0xf2,0x7e,0x18,0x4, 0x0, 0x7a,0x1f,0x6, 0xf8,0x22,0x74,0x1, 0x12,0x0, 0x1e, +0xe4,0x12,0x3d,0xac,0x12,0x3d,0xf3,0xe4,0x12,0x0, 0x1e,0x74,0x1, 0x12,0x3d,0xac, +0x2, 0x3d,0xf3,0xca,0x3b,0x7e,0xd3,0x2a,0x73,0x7e,0xc3,0x2a,0x74,0x7e,0x8, 0x1f, +0x44,0x12,0x3f,0xe9,0x7e,0x8, 0x1f,0x8a,0x7e,0x34,0x0, 0x46,0x12,0x20,0xde,0x7e, +0x8, 0x1f,0xd0,0x7e,0x34,0x0, 0xa, 0xe4,0x12,0x20,0xde,0x7e,0x8, 0x1f,0xda,0x7e, +0x34,0x0, 0xa, 0x12,0x20,0xde,0x7e,0xf3,0x2a,0xfc,0x7e,0x18,0x2a,0xdc,0x7a,0x1d, +0x24,0x7e,0x18,0x1f,0xd0,0x7a,0x1d,0x28,0x7c,0xbd,0x7c,0x7c,0x7e,0x8, 0x2a,0xb9, +0x12,0xba,0x6c,0x6c,0xee,0x80,0x2b,0xa, 0x3e,0x9, 0xa3,0x2a,0xdc,0xa, 0x3a,0x2e, +0x34,0x20,0x73,0x12,0x91,0x6d,0x7c,0xab,0xbe,0xa0,0x1c,0x50,0x13,0xa, 0x3e,0x12, +0x3f,0xb, 0xa, 0x4a,0x19,0xb4,0x1f,0x44,0x7e,0xb3,0x2a,0xfb,0x19,0xb4,0x1f,0x8a, +0xb, 0xe0,0xbc,0xce,0x38,0xd1,0x6c,0xee,0x80,0x24,0xa, 0x3e,0x9, 0xa3,0x2a,0xb9, +0xbe,0xa0,0x23,0x50,0x17,0xa, 0x2e,0xa, 0x3c,0x2d,0x32,0x12,0x3f,0xb, 0xa, 0x4a, +0x19,0xb4,0x1f,0x60,0x7e,0xb3,0x2a,0xfb,0x19,0xb4,0x1f,0xa6,0xb, 0xe0,0xbc,0xde, +0x38,0xd8,0x7e,0xb3,0x2a,0xfd,0x7e,0x8, 0x1f,0xe4,0x60,0x9, 0x7e,0x18,0x1f,0xd0, +0x12,0xb9,0x2, 0x80,0x3, 0x12,0x3f,0xd9,0x6c,0xee,0x7e,0x18,0x1f,0xe4,0x7a,0x1f, +0x1f,0x34,0x74,0x2, 0xac,0xbe,0x49,0x35,0x1f,0xd0,0x7a,0x37,0x1f,0x38,0x74,0x2, +0xac,0xbe,0x49,0x35,0x1f,0xda,0x7a,0x37,0x1f,0x3a,0x7e,0x70,0xe, 0xac,0x7e,0x2e, +0x34,0x1f,0x44,0x6d,0x22,0x7a,0x1f,0x1f,0x3c,0x7e,0x70,0xe, 0xac,0x7e,0x2e,0x34, +0x1f,0x8a,0x7a,0x1f,0x1f,0x40,0x7e,0x8, 0x1f,0x34,0x7c,0xbf,0x7c,0x7e,0x12,0x8, +0xd1,0xb, 0xe0,0xbe,0xe0,0x5, 0x40,0xb2,0xda,0x3b,0x22,0x2e,0x37,0x2a,0xfe,0x7e, +0x39,0xb0,0x22,0x74,0x1, 0x7a,0xb3,0x37,0x8, 0x12,0xaf,0x1f,0x12,0x13,0xf5,0x12, +0xb9,0x8e,0xe4,0x12,0xa, 0x66,0x7e,0x24,0x3, 0xd4,0x12,0x3f,0xcb,0x74,0x1, 0x12, +0x3d,0xac,0x12,0x3f,0xd2,0x7e,0x34,0xd0,0xc, 0x12,0x1, 0xe, 0x12,0x3d,0xdb,0x7e, +0x34,0x0, 0x1, 0xe4,0x6c,0x55,0x2, 0x13,0x1, 0x7e,0x1f,0x25,0xf2,0x7e,0xf, 0x25, +0xee,0x22,0x7a,0xb3,0x2b,0x0, 0x70,0x5, 0x12,0x3f,0x67,0x80,0x6, 0xb4,0x1, 0x6, +0x12,0x3f,0x49,0x12,0x3b,0x15,0x22,0x7e,0x1f,0x2b,0x74,0x7e,0xf, 0x2b,0x70,0x22, +0x12,0x3f,0xaa,0xb4,0x1, 0x17,0xca,0x39,0x7e,0x18,0x25,0xee,0x7e,0x8, 0x37,0xdc, +0x12,0x20,0xb9,0x1b,0xfd,0x12,0xc0,0xef,0x12,0x3f,0x49,0x80,0x1a,0xca,0x39,0x7e, +0x18,0x2b,0x70,0x7e,0x8, 0x37,0xdc,0x12,0x20,0xb9,0x1b,0xfd,0x7e,0x37,0x2b,0x76, +0x7a,0x37,0x31,0xcc,0x12,0x3f,0x67,0x2, 0x3b,0x15,0x7e,0xb3,0x37,0xe0,0x7e,0x34, +0x0, 0x4, 0x22,0x7c,0x6b,0x12,0x3f,0xe1,0x78,0x5, 0x7c,0xb6,0x2, 0x7d,0xd6,0xb4, +0x4, 0x5, 0x7c,0xb6,0x2, 0x3b,0x1e,0x22,0xb2,0x82,0x22,0x7d,0x32,0x74,0xfa,0x2, +0x12,0xd0,0x7e,0x8, 0x2a,0x6d,0x2, 0x0, 0x2e,0x7e,0x34,0x0, 0x8, 0xe4,0x2, 0x20, +0xde,0x7e,0xb3,0x37,0x9c,0xc4,0x54,0x7, 0x22,0x7e,0x34,0x0, 0x46,0x74,0x3f,0x2, +0x20,0xde,0x7e,0x18,0x5, 0xf8,0x7a,0x1f,0x6, 0xf4,0x22,0x30,0x6, 0x3b,0xc2,0x6, +0x12,0x25,0xe6,0x7e,0x73,0x37,0xa1,0x7a,0x73,0x2a,0x4d,0x7e,0x73,0x37,0xa2,0x7a, +0x73,0x2b,0x1d,0x7e,0x73,0x37,0xa2,0x7a,0x73,0x2b,0x1, 0x7e,0xb3,0x37,0xa3,0x60, +0x18,0x7e,0x34,0x0, 0x2, 0x12,0x41,0x5d,0x7e,0x34,0x0, 0x1, 0x12,0x41,0x5d,0x6d, +0x33,0x12,0x41,0x5d,0xe4,0x7a,0xb3,0x37,0xa3,0x12,0x4f,0xfa,0x2, 0x40,0x3f,0xe5, +0xc, 0x70,0x2, 0x21,0x5c,0xe5,0xc, 0x30,0xe0,0x10,0x53,0xc, 0xfe,0x12,0x72,0x92, +0x12,0x79,0x31,0x7e,0x8, 0x2a,0x6d,0x12,0x9, 0xa1,0xe5,0xc, 0x30,0xe1,0x6, 0x53, +0xc, 0xfd,0x12,0xba,0x23,0xe5,0xc, 0x30,0xe2,0x32,0x53,0xc, 0xfb,0x7e,0xb3,0x2b, +0x12,0x60,0x9, 0x7e,0x8, 0x2a,0x6d,0x12,0x6, 0xba,0x80,0xb, 0x7e,0xb3,0x2b,0x65, +0x7e,0x73,0x2b,0x64,0x12,0xb, 0xad,0x7e,0x73,0x2b,0x12,0x2e,0x70,0xff,0x92,0x4, +0x90,0x60,0x51,0xe4,0x93,0x9e,0xb3,0x2a,0x77,0x12,0xb, 0x1e,0xe5,0xc, 0x30,0xe3, +0x45,0x53,0xc, 0xf7,0x7e,0x73,0x37,0xce,0x7a,0x73,0x2b,0xf, 0x12,0x87,0x52,0x7a, +0xb3,0x0, 0x4f,0xbe,0xb0,0xff,0x68,0xb, 0x43,0xc, 0x20,0x7e,0x73,0x0, 0x4f,0x7a, +0x73,0x37,0xa6,0x12,0x6e,0x29,0x12,0xc0,0x42,0x7e,0x73,0x37,0xcf,0xbe,0x73,0x2b, +0x62,0x68,0x6, 0x7a,0x73,0x2b,0x62,0xd2,0xc, 0x30,0xc, 0x7, 0x12,0xaf,0x1d,0xe4, +0x12,0xa, 0x66,0x12,0x8d,0xec,0xe5,0xc, 0x30,0xe4,0xf, 0x53,0xc, 0xef,0x7e,0x43, +0x37,0xd0,0x7e,0x50,0xa, 0xac,0x45,0x12,0x3f,0xcb,0xe5,0xc, 0x30,0xe6,0x4e,0x53, +0xc, 0xbf,0x7e,0x73,0x37,0xbc,0xbe,0x70,0x7, 0x28,0x6, 0x74,0x7, 0x7a,0xb3,0x37, +0xbc,0xa9,0xd5,0xcb,0x74,0xe, 0x12,0x43,0xeb,0x7c,0x7b,0x5e,0x70,0xf, 0x7e,0x63, +0x37,0xbc,0xa, 0x26,0x2e,0x24,0x0, 0x3, 0x12,0x47,0x81,0x7c,0x65,0x4c,0x76,0x74, +0xe, 0x12,0x43,0x5f,0x12,0x43,0xeb,0x12,0x43,0xf3,0x7e,0x73,0x37,0xbf,0x7a,0x73, +0x2b,0x14,0x7e,0x73,0x37,0xbe,0x7a,0x73,0x2b,0x1f,0x12,0xc1,0x1, 0xe5,0xc, 0x30, +0xe5,0xa, 0x53,0xc, 0xdf,0x7e,0xb3,0x37,0xa6,0x2, 0x48,0x77,0x22,0xca,0xd8,0xca, +0x79,0x7d,0xd3,0x90,0x60,0x50,0xe4,0x93,0x7c,0xfb,0x90,0x60,0x51,0xe4,0x93,0x7c, +0x8b,0xa, 0x38,0xa, 0xcf,0x2d,0xc3,0xb, 0xc4,0x7d,0x3c,0x7c,0xe7,0x12,0x26,0x57, +0xa9,0xd0,0xc4,0xa9,0xd5,0xcb,0x74,0x7, 0x12,0x43,0xeb,0x7c,0x8b,0x74,0x7, 0x7e, +0x70,0xf, 0x12,0x43,0xf0,0x7e,0x54,0x0, 0x78,0x7e,0x1f,0x38,0xc4,0x79,0x51,0x0, +0x6, 0x7e,0x54,0x0, 0x80,0x7e,0x1f,0x38,0xc4,0x79,0x51,0x0, 0x8, 0x7e,0x54,0x0, +0xc, 0x7e,0x1f,0x38,0xc4,0x79,0x51,0x0, 0x10,0xbe,0xd4,0x0, 0x2, 0x78,0xb, 0x7e, +0x1f,0x38,0xc4,0x12,0x43,0x48,0x44,0x1, 0x80,0x20,0x7e,0x1f,0x38,0xc4,0x12,0x43, +0x48,0x44,0x8, 0x1b,0x1a,0x50,0x4d,0xdd,0x7e,0x1f,0x38,0xc4,0x78,0x7, 0x12,0x43, +0x48,0x54,0xfb,0x80,0x5, 0x12,0x43,0x48,0x44,0x4, 0x1b,0x1a,0x50,0x7e,0x1f,0x38, +0xc0,0x69,0xe1,0x0, 0x84,0x69,0x51,0x0, 0x90,0x7d,0xf5,0x2e,0x34,0x0, 0x90,0x5e, +0xa0,0xf6,0x1b,0x1a,0x50,0x7e,0xb3,0x37,0x12,0xbe,0xb0,0x6, 0x40,0x3, 0xb4,0xff, +0xe, 0x12,0x43,0x53,0x54,0xe6,0x12,0x43,0x50,0x4e,0x54,0x1, 0xa4,0x80,0xc, 0x12, +0x43,0x53,0x5e,0x54,0xfe,0xe6,0x12,0x43,0x50,0x44,0xa4,0x1b,0x1a,0x50,0xbe,0xd4, +0x0, 0x2, 0x78,0x2d,0x7e,0x1f,0x38,0xc4,0x12,0x43,0x48,0x5e,0x54,0x0, 0xf, 0x1b, +0x1a,0x50,0x7e,0x1f,0x38,0xc4,0x12,0x43,0x48,0x44,0x50,0x1b,0x1a,0x50,0x7e,0x34, +0x0, 0x2, 0x12,0x44,0x72,0x12,0x44,0x4b,0x12,0x44,0x28,0x7a,0x37,0x31,0xd4,0x61, +0x4, 0x6c,0xdd,0x41,0xfe,0x4c,0xdd,0x78,0x4, 0x6c,0x99,0x80,0x2b,0xbc,0xfd,0x40, +0x12,0xa, 0xcd,0x9, 0x9c,0x2a,0xb8,0xbe,0x90,0x23,0x40,0x3, 0x7e,0x90,0x22,0xb, +0x90,0x80,0x15,0xa, 0x3f,0xa, 0xcd,0x9d,0xc3,0x9, 0x9c,0x2a,0xdb,0xbe,0x90,0x1c, +0x40,0x3, 0x7e,0x90,0x1b,0x2e,0x90,0x24,0x7e,0x1f,0x38,0xc4,0x12,0x43,0x48,0x5e, +0x54,0x0, 0xf, 0x1b,0x1a,0x50,0xa, 0xc9,0x3e,0xc4,0x3e,0xc4,0x3e,0xc4,0x3e,0xc4, +0x7e,0x1f,0x38,0xc4,0x12,0x43,0x48,0x4d,0x5c,0x1b,0x1a,0x50,0xe5,0xe, 0x60,0x7, +0xe5,0xe, 0xbe,0xb0,0x64,0x28,0x6, 0x7e,0x34,0x0, 0x2, 0x80,0x4, 0xe5,0xe, 0xa, +0x3b,0x12,0x44,0x72,0x12,0x44,0x4b,0xbe,0xd4,0x0, 0x1, 0x78,0x10,0x12,0x44,0x4b, +0x12,0x44,0x28,0x74,0x2, 0xac,0xbd,0x59,0x35,0x31,0xd6,0x80,0xf, 0x12,0x44,0x28, +0xa, 0x5e,0xa, 0x2d,0x2d,0x25,0x3e,0x24,0x59,0x32,0x31,0xd6,0xb, 0xd0,0xbc,0xed, +0x28,0x2, 0x41,0x65,0xa9,0xd5,0xcb,0x74,0x7, 0x7c,0x78,0x12,0x43,0xf0,0xa9,0xc0, +0xc4,0x7e,0x1f,0x38,0xc0,0x79,0xe1,0x0, 0x84,0x7e,0x1f,0x38,0xc0,0x79,0xf1,0x0, +0x90,0x6d,0x33,0x7e,0xf, 0x38,0xc4,0x79,0x30,0x0, 0x6, 0x7e,0xf, 0x38,0xc4,0x79, +0x30,0x0, 0x8, 0x7e,0xf, 0x38,0xc4,0x79,0x30,0x0, 0x10,0x7e,0xf, 0x38,0xc4,0x79, +0x30,0x0, 0xe, 0xda,0x79,0xda,0xd8,0x22,0x2e,0x34,0x0, 0xe, 0xb, 0x1a,0x50,0x22, +0x1b,0x1a,0x50,0x7e,0x1f,0x38,0xc0,0x2e,0x34,0x0, 0x84,0xb, 0x1a,0x50,0x22,0xf5, +0xfd,0x7a,0x71,0xfe,0x22,0xca,0x79,0xa9,0xd5,0xcb,0x74,0x2, 0x7e,0x70,0x3f,0x12, +0x43,0x5f,0x74,0xf, 0x12,0x43,0xeb,0x7c,0xfb,0x74,0xf, 0x7c,0x7f,0x5e,0x70,0xfe, +0x12,0x43,0x5f,0x74,0xc, 0x12,0x43,0xeb,0x7c,0xfb,0x54,0x7f,0x68,0x8, 0x74,0xc, +0x7e,0x70,0xf8,0x12,0x43,0x5f,0x90,0x61,0x18,0xe4,0x93,0x7c,0xab,0xbe,0xa0,0x7, +0x38,0xb, 0x12,0x45,0x6, 0x7c,0xb7,0xa, 0x7b,0xb, 0x75,0x80,0x16,0x90,0x61,0x17, +0xe4,0x93,0xb4,0x1, 0xe, 0xbe,0xa0,0x7, 0x28,0x9, 0x12,0x45,0x6, 0xa, 0x77,0x2e, +0x74,0x0, 0x7, 0x74,0xe, 0x7c,0x7f,0x12,0x43,0x5f,0x74,0x7, 0x12,0x43,0xeb,0x7c, +0xfb,0x5e,0xf0,0xfb,0x90,0x60,0x2, 0xe4,0x93,0xa, 0x3b,0x3e,0x34,0x3e,0x34,0x4c, +0xf7,0x74,0x7, 0x7c,0x7f,0x12,0x43,0xf0,0xda,0x79,0x22,0xf5,0xfd,0xe5,0xfe,0x22, +0x12,0x43,0x5f,0x75,0xfd,0xff,0xa9,0xc5,0xcb,0x22,0x6d,0x33,0x7e,0x8, 0x0, 0x24, +0x7e,0x24,0x0, 0x12,0x12,0xb7,0xc7,0xe5,0x34,0x20,0xe7,0x1b,0xa9,0xd5,0xcb,0x74, +0x3, 0x7e,0x71,0x27,0x12,0x43,0x5f,0x74,0xb, 0x7e,0x71,0x2f,0x12,0x43,0x5f,0x74, +0xc, 0x7e,0x71,0x30,0x12,0x43,0xf0,0x22,0x7e,0xf, 0x38,0xc4,0x69,0x30,0x0, 0xa, +0x7d,0x23,0x6d,0x33,0x69,0x10,0x0, 0xc, 0x6d,0x0, 0x2f,0x10,0x74,0x7, 0x1e,0x34, +0x1e,0x24,0x50,0x3, 0x4e,0x60,0x80,0x14,0x78,0xf4,0x22,0x7e,0x34,0x0, 0x1, 0x7e, +0xf, 0x38,0xc4,0x79,0x30,0x0, 0x4, 0x7e,0xf, 0x38,0xc4,0x69,0x30,0x0, 0x12,0x5e, +0x34,0x0, 0x1, 0x68,0xf2,0x7e,0x34,0x0, 0x1, 0x79,0x30,0x0, 0x12,0x22,0x7e,0x34, +0x0, 0x1, 0x7d,0x23,0x80,0x12,0x7e,0x30,0x4, 0x80,0x5, 0x74,0xfa,0x12,0x45,0x15, +0x7c,0x23,0x1b,0x30,0xa5,0xba,0x0, 0xf3,0x7d,0x32,0x1b,0x24,0x4d,0x33,0x78,0xe6, +0x22,0x12,0x47,0xf8,0xc2,0x3, 0x12,0xb6,0x57,0xc2,0x5, 0x12,0x45,0x51,0xc2,0x3, +0x12,0x47,0x21,0xa9,0xd5,0xcb,0x74,0xf, 0x12,0x43,0xeb,0x7a,0x1b,0xb0,0x74,0xf, +0x6c,0x77,0x12,0x43,0x5f,0xe5,0xfc,0x7a,0xb, 0xb0,0x43,0xfc,0x10,0x2, 0x43,0xf3, +0x24,0xab,0x68,0x10,0x24,0xef,0x68,0x1c,0x24,0xde,0x68,0x26,0x24,0xde,0x78,0x2f, +0x74,0x5, 0x80,0x2d,0x7e,0xb3,0x33,0xff,0xb4,0x5, 0x2a,0x12,0x44,0x6e,0x12,0xb6, +0xf, 0x2, 0xb6,0xc4,0x7e,0xb3,0x33,0xff,0xb4,0x5, 0x1a,0x12,0x44,0x6e,0x75,0xe9, +0xff,0x22,0x7e,0xb3,0x33,0xff,0xb4,0x5, 0xc, 0x12,0x44,0x6e,0x2, 0xb6,0xbe,0x74, +0x1, 0x7a,0xb3,0x33,0xff,0x22,0xa, 0x3a,0x2e,0x34,0x0, 0x3, 0x3e,0x34,0x3e,0x34, +0x3e,0x34,0x3e,0x34,0x22,0x7c,0xab,0x80,0xe, 0x7e,0x70,0x3, 0x80,0x1, 0x0, 0x7c, +0x67,0x1b,0x70,0xa5,0xbe,0x0, 0xf7,0x7c,0x6a,0x1b,0xa0,0xa5,0xbe,0x0, 0xea,0x22, +0x7c,0x6b,0xa9,0xd5,0xcb,0x74,0xf, 0x12,0x43,0x5f,0x7a,0x61,0xfc,0x12,0x43,0xf3, +0x12,0x46,0x68,0xd2,0x3, 0x12,0x47,0x21,0x12,0x45,0x6b,0x12,0x13,0xde,0x2, 0x13, +0x96,0xa9,0xd0,0xce,0xa2,0x5, 0xa9,0x91,0xc9,0x22,0x30,0x4, 0x6, 0x12,0x45,0x6b, +0x2, 0x13,0x96,0x12,0x47,0xf8,0xc2,0x5, 0x2, 0x45,0x51,0xd2,0x5, 0x12,0x45,0x51, +0x74,0x1, 0x22,0x12,0x45,0xcf,0x12,0x91,0x8, 0x75,0xcd,0x0, 0xa9,0xd6,0xeb,0xa9, +0xd7,0xcd,0xc2,0xce,0x12,0xc0,0xd5,0x12,0x44,0x91,0x74,0x1, 0x12,0x46,0x7, 0xa9, +0xc6,0xeb,0xa9,0xc7,0xcd,0xd2,0xce,0xe5,0x25,0x7e,0x71,0x24,0x2, 0x45,0x30,0x30, +0x18,0x5, 0xc2,0x4, 0x12,0x45,0x5a,0xa9,0xd1,0xcd,0xa9,0xc5,0xea,0x30,0x17,0x3, +0x20,0x18,0x14,0x12,0x45,0xcf,0xa9,0xd0,0xce,0xa9,0xc4,0xc9,0x74,0x2, 0x12,0x46, +0x7, 0xa9,0xd0,0xce,0xa9,0xd4,0xc9,0xa9,0xc1,0xcd,0xd2,0x4, 0x2, 0x45,0x5a,0x74, +0x81,0x7a,0xb3,0x39,0x2, 0x22,0x80,0x1d,0x12,0x45,0xcf,0x12,0x47,0xff,0x68,0x5, +0xc2,0x4, 0x12,0x45,0x5a,0x7e,0xb3,0x34,0x3a,0xbe,0xb0,0x2, 0x68,0x18,0x20,0x17, +0x15,0xe4,0x12,0x46,0x7, 0x20,0x93,0xe0,0x12,0x45,0xcf,0xa9,0xd1,0xcd,0xa9,0xc5, +0xea,0x74,0x2, 0x2, 0x46,0x7, 0x22,0x7c,0xab,0x7e,0xb3,0x39,0x2, 0xb4,0x81,0x38, +0x4c,0xaa,0x78,0x5, 0xa9,0xd0,0x87,0x80,0x29,0xbe,0xa0,0x1, 0x78,0xf, 0xc2,0xaf, +0xa9,0xd0,0xce,0xa9,0xc7,0xc9,0xa9,0xd1,0x87,0xd2,0xaf,0x80,0x15,0xbe,0xa0,0x2, +0x78,0x16,0xc2,0xaf,0x20,0x93,0x9, 0xa9,0xd0,0xce,0xa9,0xd7,0xc9,0xa9,0xd1,0x87, +0xd2,0xaf,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe4,0x7a,0xb3,0x39,0x2, 0x22,0xd2,0x3, +0x80,0x12,0x30,0x3, 0xc, 0x12,0x47,0xff,0x68,0x7, 0xc2,0x3, 0xc2,0x4, 0x12,0x45, +0x5a,0x12,0x45,0xd6,0x30,0x17,0xeb,0x22,0xca,0xf8,0xa2,0xaf,0xe4,0x33,0x7c,0xfb, +0xd2,0x3, 0x12,0xb6,0x57,0xa9,0xd0,0xcb,0xc2,0xaf,0xa9,0xd0,0x9e,0x75,0x9d,0x0, +0xa9,0xd0,0x9e,0x75,0x9c,0x20,0xa9,0xd0,0x9e,0xa9,0xd4,0x9e,0xa9,0xd0,0xcd,0x74, +0x41,0x12,0x45,0x15,0xa9,0xd0,0x9e,0xa9,0xd7,0x9e,0x2e,0xf0,0xff,0x92,0xaf,0xda, +0xf8,0x22,0xe4,0x12,0x46,0xf0,0x12,0xb6,0x60,0x12,0x26,0x57,0x12,0xb6,0xdb,0x12, +0x43,0x65,0x12,0xb6,0x5, 0x12,0xb6,0x77,0x12,0x0, 0x4a,0x12,0xb6,0x83,0x12,0x7e, +0xa0,0x12,0xb6,0x93,0xd2,0xaf,0x12,0x47,0x8a,0x12,0xb8,0x1e,0x12,0x43,0xfa,0x12, +0x46,0x68,0x7e,0x8, 0x3, 0xf1,0x12,0xa9,0xa3,0x90,0x60,0x50,0xe4,0x93,0xca,0xb8, +0x90,0x60,0x51,0xe4,0x93,0x7c,0x7b,0x7e,0x24,0xff,0xff,0xda,0xb8,0x2, 0x12,0x34, +0xa9,0xc4,0xca,0xa9,0xc5,0xca,0xbe,0xb0,0x8, 0x50,0x3, 0x12,0x90,0xff,0xa9,0xd0, +0xce,0xa9,0xc0,0xc9,0xd2,0x5, 0x12,0x45,0x51,0xa9,0xc2,0xea,0x75,0xc1,0x6, 0x75, +0xc2,0xc, 0xd2,0x3, 0x12,0x47,0x21,0xa9,0xc1,0xc4,0xa9,0xd2,0xc4,0xa9,0xc2,0xe1, +0x22,0xa2,0x3, 0xa9,0x97,0xc1,0xa2,0x3, 0xa9,0x97,0xc2,0x22,0x7e,0x34,0x36,0xe1, +0x30,0xd, 0x4b,0xc2,0xd, 0x9, 0x53,0x0, 0x2, 0x12,0x47,0x7f,0x7a,0x27,0x2a,0x4f, +0x9, 0x53,0x0, 0x3, 0x12,0x47,0x7f,0x7a,0x27,0x2a,0x51,0x9, 0x53,0x0, 0x4, 0x12, +0x47,0x7f,0x7a,0x27,0x2a,0x53,0x7e,0x39,0x50,0xa, 0x25,0x3e,0x24,0x3e,0x24,0x7a, +0x27,0x2a,0x5a,0x9, 0x53,0x0, 0x1, 0xa, 0x25,0x3e,0x24,0x3e,0x24,0x7a,0x27,0x2a, +0x5c,0x9, 0x73,0x0, 0x5, 0xa, 0x37,0x12,0x45,0xc, 0x7a,0x37,0x2a,0x62,0x22,0xa, +0x25,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x22,0xa9,0xd5,0xcb,0x74,0x10,0x12, +0x43,0xeb,0x7c,0x7b,0x12,0x43,0xf3,0x30,0xe7,0x3, 0x7e,0x70,0x2, 0xd2,0xcd,0x7e, +0x24,0x0, 0xef,0x7e,0xf, 0x38,0xc0,0x79,0x20,0x0, 0x84,0x7e,0x24,0x20,0x5f,0x7e, +0xf, 0x38,0xc0,0x79,0x20,0x0, 0x82,0x7e,0x24,0x41,0x0, 0x7e,0xf, 0x38,0xc0,0x79, +0x20,0x0, 0x90,0x7c,0x67,0x6c,0x77,0x2e,0x34,0x0, 0xc1,0x7e,0xf, 0x38,0xc0,0x79, +0x30,0x0, 0x86,0x7e,0x34,0x29,0x90,0x7e,0xf, 0x38,0xc0,0x79,0x30,0x0, 0x8a,0x7e, +0x34,0x6a,0xd1,0x7e,0xf, 0x38,0xc0,0x79,0x30,0x0, 0x8c,0x7e,0x34,0x3, 0x61,0x7e, +0xf, 0x38,0xc0,0x79,0x30,0x0, 0x8e,0x22,0xe4,0x12,0x13,0xde,0x2, 0x13,0x96,0x7e, +0xb3,0x34,0x3a,0xbe,0xb0,0x1, 0x22,0x12,0xc0,0xf8,0x12,0xc0,0xef,0x6d,0x33,0x7a, +0x35,0xa, 0x12,0x48,0x56,0x12,0x48,0x30,0x74,0x50,0x7a,0xb3,0x37,0xd0,0x7e,0x24, +0x3, 0x20,0x12,0x3f,0xcb,0xe4,0x12,0xc0,0x27,0x6d,0x33,0x7a,0x37,0x39,0x4, 0x22, +0x7e,0x73,0x2b,0x62,0x7a,0x73,0x37,0xcf,0x22,0xa2,0xa, 0xe4,0x33,0x7a,0xb3,0x37, +0xca,0x7e,0x73,0x37,0xce,0xbe,0x73,0x2b,0xf, 0x68,0xa, 0xe5,0xc, 0x70,0x6, 0x12, +0x48,0x56,0x12,0x48,0x30,0x22,0x7e,0x73,0x2b,0xf, 0x7a,0x73,0x37,0xce,0x7e,0x73, +0x2b,0x1f,0x7a,0x73,0x37,0xbe,0x7e,0x73,0x2b,0x20,0x7a,0x73,0x37,0xbd,0x7e,0x73, +0x2b,0x14,0x7a,0x73,0x37,0xbf,0x22,0xca,0xd8,0xca,0x79,0x7c,0xdb,0x90,0x61,0xc5, +0xe4,0x93,0x7c,0xab,0xbe,0xd0,0x80,0x78,0x18,0x7e,0xe0,0xff,0x6c,0xff,0x80,0xb, +0x12,0x48,0xe8,0x38,0x4, 0x7c,0xeb,0x7c,0xdf,0xb, 0xf0,0xbc,0xaf,0x38,0xf1,0x80, +0x1a,0xbe,0xd0,0x81,0x78,0x15,0x6c,0xee,0x6c,0xff,0x80,0xb, 0x12,0x48,0xe8,0x40, +0x4, 0x7c,0xeb,0x7c,0xdf,0xb, 0xf0,0xbc,0xaf,0x38,0xf1,0xbc,0xad,0x38,0x2, 0x6c, +0xdd,0x7c,0xbd,0x12,0x8d,0xb3,0x12,0x48,0x6e,0x7e,0x73,0x2b,0x1f,0x7a,0x73,0x37, +0xbe,0x12,0x49,0x4, 0x7e,0x73,0x2b,0xf, 0x7a,0x73,0x37,0xce,0x12,0x48,0x30,0x7a, +0xd3,0x37,0xa6,0xda,0x79,0xda,0xd8,0x22,0x7e,0x90,0x5, 0xac,0x9f,0x9, 0xb4,0x26, +0x33,0xbc,0xbe,0x22,0x30,0x3, 0x3, 0x12,0x48,0x6e,0xa2,0x4, 0x92,0x5, 0x12,0x49, +0xc3,0x2, 0x49,0x4, 0x7e,0x73,0x2b,0x20,0x7a,0x73,0x37,0xbd,0x22,0x74,0x40,0x12, +0x6e,0x8b,0x50,0x9, 0xd2,0x3, 0xd2,0x4, 0x12,0x48,0xf4,0x80,0x1c,0x74,0x1, 0x12, +0x49,0x47,0x7e,0x43,0x37,0xbb,0x7e,0x50,0x64,0xac,0x45,0x12,0x87,0xf8,0x7a,0xb3, +0x2b,0x1f,0x7e,0xf, 0x38,0xd9,0x12,0x4d,0x9b,0x12,0x49,0x4, 0x7e,0x73,0x2b,0x1f, +0x7a,0x73,0x37,0xbe,0x2, 0x48,0x6e,0xca,0x3b,0x7c,0xdb,0xe4,0x7a,0xb3,0x2b,0x14, +0x12,0xc0,0x42,0x7e,0xc0,0xa, 0x12,0x4e,0x6e,0x30,0xb, 0xfd,0x74,0x1, 0x12,0x0, +0xe, 0x7e,0x1f,0x38,0xd9,0x12,0x90,0x58,0x7d,0x73,0xbe,0x74,0xff,0xff,0x78,0x9, +0x12,0x49,0xb7,0x2e,0x34,0x0, 0x3, 0x80,0x18,0xbe,0x74,0x80,0x0, 0x28,0x7, 0x12, +0x49,0xb7,0xb, 0x35,0x80,0xb, 0xbe,0x74,0x40,0x0, 0x28,0xc, 0x12,0x49,0xb7,0xb, +0x34,0x1b,0xa, 0x30,0x1b,0xc0,0x78,0xbe,0xbe,0xd0,0x1, 0x78,0x9, 0x7e,0x1f,0x38, +0xd9,0x12,0x8f,0xfb,0x7d,0x73,0x7e,0x1f,0x38,0xc8,0x69,0x31,0x0, 0x1a,0x7a,0x73, +0x2b,0x14,0x7d,0x37,0xda,0x3b,0x22,0x7e,0xf, 0x38,0xc8,0x2e,0x14,0x0, 0x1a,0xb, +0xa, 0x30,0x22,0xca,0x3b,0x7e,0x34,0xff,0xff,0x7a,0x35,0x35,0x7e,0xb3,0x37,0xb1, +0xf5,0x2a,0x7e,0xb3,0x2a,0x6d,0xf5,0x2b,0x7e,0xb3,0x2a,0x6e,0xf5,0x2c,0x7e,0xb3, +0x2a,0x70,0xf5,0x2d,0x7e,0xb3,0x2a,0x6f,0xf5,0x2e,0x7e,0x34,0x27,0x10,0x7a,0x35, +0x2f,0x7e,0x18,0x40,0x0, 0x7a,0x1d,0x31,0x12,0x4e,0x67,0x30,0xb, 0xfd,0x74,0x1, +0x12,0x0, 0xe, 0x7e,0x8, 0x34,0x0, 0x12,0x4e,0x5f,0x6c,0xff,0x80,0x35,0x12,0x4c, +0x40,0x6c,0xee,0x80,0x19,0x7e,0x11,0x2c,0xac,0x1e,0x3e,0x4, 0x7e,0x30,0x2, 0xac, +0x3f,0x2d,0x10,0x7e,0x1d,0x31,0x2d,0x31,0xb, 0x1a,0x10,0x12,0x4c,0x47,0xe5,0x2e, +0xbc,0xbe,0x38,0xe1,0xe5,0x2e,0x12,0x4c,0x56,0x74,0x2, 0xac,0xbf,0x59,0x35,0x34, +0x0, 0xb, 0xf0,0xe5,0x2d,0xbc,0xbf,0x38,0xc5,0x12,0xc0,0xba,0x68,0xb, 0x7e,0x34, +0x10,0x0, 0x12,0x4c,0x7c,0x59,0x35,0x33,0xfe,0x6c,0xff,0x80,0x78,0x12,0x4c,0x40, +0x6c,0xee,0x80,0x14,0x12,0x4e,0x38,0x1e,0x34,0x1e,0x24,0x50,0x3, 0x4e,0x60,0x80, +0x14,0x78,0xf4,0x7d,0x13,0x12,0x4c,0x47,0xe5,0x2a,0xbc,0xbe,0x38,0xe6,0xe5,0x2a, +0x12,0x4c,0x56,0x74,0x4, 0xac,0xbf,0x59,0x35,0x3, 0x60,0xe5,0x2a,0xbe,0xb1,0x2d, +0x50,0x35,0x12,0x4c,0x40,0x7e,0xe1,0x2a,0x80,0x14,0x12,0x4e,0x38,0x1e,0x34,0x1e, +0x24,0x50,0x3, 0x4e,0x60,0x80,0x14,0x78,0xf4,0x7d,0x13,0x12,0x4c,0x47,0xe5,0x2d, +0xbc,0xbe,0x38,0xe6,0xe5,0x2a,0xa, 0x3b,0x6d,0x22,0xe5,0x2d,0xa, 0x1b,0x6d,0x0, +0x9f,0x1, 0x12,0x4c,0x5a,0x80,0x4, 0x7e,0x34,0x10,0x0, 0x74,0x4, 0xac,0xbf,0x59, +0x35,0x3, 0x62,0xb, 0xf0,0xe5,0x2e,0xbc,0xbf,0x38,0x82,0xe5,0x2d,0xa, 0x1b,0x6d, +0x0, 0x7e,0x18,0x0, 0x7a,0x12,0x1f,0x7, 0x6c,0xff,0x80,0x2e,0x74,0x2, 0xac,0xbf, +0x49,0x25,0x34,0x0, 0xa, 0x5f,0xad,0x53,0x7e,0x14,0x10,0x0, 0x9d,0x15,0xad,0x12, +0x74,0xc, 0x1e,0x14,0x1e,0x4, 0x50,0x3, 0x4e,0x20,0x80,0x14,0x78,0xf4,0x7d,0x21, +0x74,0x2, 0xac,0xbf,0x59,0x25,0x34,0x0, 0xb, 0xf0,0xe5,0x2d,0xbc,0xbf,0x38,0xcc, +0xe5,0x2b,0xa, 0x1b,0x6d,0x0, 0x7e,0x18,0x0, 0x28,0x12,0x1f,0x7, 0x6c,0xff,0x80, +0x5c,0x74,0x4, 0xac,0xbf,0x49,0x25,0x3, 0x60,0xa, 0x1f,0xad,0x13,0x7e,0xf4,0x10, +0x0, 0x9d,0xf1,0xad,0xf2,0x74,0xc, 0x1e,0xf4,0x1e,0xe4,0x50,0x4, 0x4e,0xf4,0x80, +0x0, 0x14,0x78,0xf3,0x7d,0x2f,0x74,0x4, 0xac,0xbf,0x59,0x25,0x3, 0x60,0xe5,0x2a, +0xbe,0xb1,0x2d,0x50,0x26,0x74,0x4, 0xac,0xbf,0x49,0x25,0x3, 0x62,0x2e,0x14,0x10, +0x0, 0xad,0x12,0x74,0xc, 0x1e,0x14,0x1e,0x4, 0x50,0x3, 0x4e,0x20,0x80,0x14,0x78, +0xf4,0x7d,0x21,0x74,0x4, 0xac,0xbf,0x59,0x25,0x3, 0x62,0xb, 0xf0,0xe5,0x2b,0xbc, +0xbf,0x38,0x9e,0x7e,0x73,0x37,0xb3,0xa, 0x37,0x6d,0x22,0x74,0xc, 0x2f,0x11,0x14, +0x78,0xfb,0x7e,0xf4,0x0, 0x64,0x7d,0x1f,0x12,0x1f,0x5, 0x7d,0xe3,0x7a,0xe5,0x35, +0x7e,0x73,0x37,0xb4,0xa, 0x37,0x6d,0x22,0x74,0xc, 0x2f,0x11,0x14,0x78,0xfb,0x7d, +0x1f,0x12,0x1f,0x5, 0x7d,0x63,0x6c,0xff,0x80,0x20,0x74,0x2, 0xac,0xbf,0x49,0x45, +0x34,0x0, 0xbe,0x45,0x35,0x28,0x9, 0x7e,0x35,0x35,0x59,0x35,0x34,0x0, 0x80,0x8, +0xbd,0x46,0x50,0x4, 0x59,0x65,0x34,0x0, 0xb, 0xf0,0xe5,0x2d,0xbc,0xbf,0x38,0xda, +0x6c,0xff,0x80,0x3a,0x74,0x4, 0xac,0xbf,0x49,0x45,0x3, 0x60,0xbe,0x45,0x35,0x28, +0x9, 0x7e,0x35,0x35,0x59,0x35,0x3, 0x60,0x80,0x8, 0xbd,0x46,0x50,0x4, 0x59,0x65, +0x3, 0x60,0x49,0x45,0x3, 0x62,0xbe,0x45,0x35,0x28,0x9, 0x7e,0x35,0x35,0x59,0x35, +0x3, 0x62,0x80,0x8, 0xbd,0x46,0x50,0x4, 0x59,0x65,0x3, 0x62,0xb, 0xf0,0xe5,0x2b, +0xbc,0xbf,0x38,0xc0,0x30,0x5, 0x6, 0x7e,0xd, 0x31,0x12,0x4d,0x9b,0xda,0x3b,0x22, +0x9f,0x11,0x7a,0x1f,0x24,0xf4,0x22,0x6d,0x0, 0x7e,0x1f,0x24,0xf4,0x2f,0x10,0x7a, +0x1f,0x24,0xf4,0xb, 0xe0,0x22,0xa, 0x1b,0x6d,0x0, 0x7e,0x1f,0x24,0xf4,0x12,0x1f, +0x7, 0x7a,0x1f,0x24,0xf4,0x7e,0x25,0x2f,0x74,0xc, 0x7d,0x13,0x7d,0x32,0x6d,0x22, +0x60,0x5, 0x2f,0x11,0x14,0x78,0xfb,0xb, 0x14,0x2, 0x1f,0x5, 0x7e,0xa1,0x2c,0x74, +0x2, 0xa4,0x22,0xca,0x3b,0x7e,0x8, 0x1f,0x34,0x12,0x4e,0x5f,0x7e,0x1f,0x38,0xf3, +0x7a,0x1d,0x26,0x7e,0xb3,0x2a,0x74,0xf5,0x2d,0x7e,0xb3,0x38,0x86,0xb4,0x1, 0x6, +0x7e,0x38,0x38,0x88,0x80,0x4, 0x7e,0x38,0x5, 0xf8,0x6d,0x33,0x7a,0x35,0x2a,0x74, +0x2, 0x12,0x0, 0x1e,0x7e,0xb3,0x38,0x87,0x70,0xe, 0x7e,0xb3,0x38,0x85,0x70,0x8, +0x74,0x1, 0x7a,0xb3,0x38,0x87,0xa1,0x57,0x7e,0xb3,0x38,0x87,0x70,0x6, 0x74,0x1, +0x7a,0xb3,0x38,0x87,0x7e,0xb3,0x38,0x86,0xb4,0x1, 0x17,0x75,0x2c,0x0, 0x80,0x9, +0x12,0x4c,0x7c,0x12,0x4d,0x8b,0x12,0x4e,0x27,0xe5,0x2d,0xbe,0xb1,0x2c,0x38,0xf0, +0x80,0x1b,0x75,0x2c,0x0, 0x80,0xf, 0x12,0x4c,0x7c,0x12,0x4d,0x8b,0x3e,0x24,0x3e, +0x24,0x1e,0x24,0x12,0x4e,0x27,0xe5,0x2d,0xbe,0xb1,0x2c,0x38,0xea,0x7e,0x34,0x61, +0x59,0x12,0x23,0x9e,0x7a,0x35,0x2e,0x7e,0x18,0x1f,0x34,0x7f,0x1, 0x12,0xa6,0x56, +0x75,0x2c,0x0, 0x80,0x16,0x12,0x4c,0x7c,0x12,0x4d,0x84,0xbe,0x35,0x2a,0x8, 0x9, +0x12,0x4c,0x7c,0x12,0x4d,0x84,0x7a,0x35,0x2a,0x5, 0x2c,0xe5,0x2d,0xbe,0xb1,0x2c, +0x38,0xe3,0x12,0x4d,0x93,0x40,0x25,0x7e,0xb3,0x38,0x86,0xb4,0x1, 0x1e,0x5, 0x1c, +0xe5,0x1c,0xbe,0xb0,0xa, 0x40,0x15,0x75,0x1c,0x0, 0xe5,0x2d,0xa, 0x3b,0x3e,0x34, +0xca,0x39,0x7e,0x1d,0x26,0x7f,0x3, 0x12,0x20,0xb9,0x1b,0xfd,0x74,0x2, 0x12,0x0, +0x1e,0x12,0x4d,0x93,0x50,0xb, 0x74,0x2, 0x7a,0xb3,0x38,0xf2,0xe4,0x7a,0xb3,0x38, +0x87,0xda,0x3b,0x22,0x49,0x35,0x1f,0x34,0x2, 0x21,0x0, 0x7f,0x13,0x2d,0x35,0xb, +0x1a,0x20,0x22,0x7e,0x37,0x2b,0x7, 0xbe,0x35,0x2a,0x22,0x12,0x4d,0xa5,0xb, 0x34, +0x7a,0x73,0x2b,0x20,0x22,0xca,0x79,0x7f,0x10,0x9f,0x0, 0x12,0xc1,0x3a,0x4c,0xaa, +0x78,0x6, 0x7e,0x34,0x0, 0x40,0x80,0x6c,0x6c,0x99,0x80,0x38,0xa, 0xe9,0x2e,0xe4, +0x60,0xac,0x7d,0x7e,0x7a,0xf1,0x82,0x7a,0xe1,0x83,0xe4,0x93,0x7c,0x8b,0x90,0x60, +0xaa,0xe4,0x93,0x70,0xe, 0x7e,0xf3,0x2a,0x6e,0xac,0xf8,0x7e,0xb3,0x2a,0x70,0xa, +0xfb,0x2d,0xf7,0x7d,0xef,0x3e,0xe4,0x7f,0x61,0x2d,0xde,0xb, 0x6a,0xd0,0x6d,0xcc, +0x2f,0x6, 0xb, 0x90,0xbc,0xa9,0x38,0xc4,0xbe,0x8, 0x0, 0x0, 0x78,0x2, 0xb, 0xc, +0xa, 0x5a,0x6d,0x44,0x7f,0x10,0x7f,0x2, 0x12,0x1f,0x7, 0x7f,0x1, 0xb, 0xc, 0x7e, +0x34,0xc4,0x0, 0x7e,0x24,0x0, 0x9, 0x12,0x1f,0x7, 0xbe,0x34,0x0, 0xfa,0x28,0x4, +0x7e,0x34,0x0, 0xfa,0xda,0x79,0x22,0x7e,0xd, 0x26,0x2d,0x15,0xb, 0xa, 0x30,0x9d, +0x32,0x59,0x35,0x1f,0x34,0x5, 0x2c,0x22,0x7e,0x11,0x2c,0xac,0x1f,0x3e,0x4, 0x7e, +0x30,0x2, 0xac,0x3e,0x2d,0x10,0x7e,0x1d,0x31,0x2d,0x31,0xb, 0x1a,0x20,0x7a,0x27, +0x24,0xf2,0x74,0x2, 0xac,0xbe,0x49,0x35,0x34,0x0, 0xad,0x23,0x74,0xc, 0x22,0x7e, +0x34,0x0, 0x38,0xe4,0x2, 0x20,0xde,0x7e,0x8, 0x2a,0x6d,0x12,0xd, 0x72,0xe4,0x12, +0x0, 0xe, 0x74,0x1, 0x7e,0x70,0x99,0x12,0x13,0x2c,0x2, 0x0, 0x4e,0xb4,0x3, 0x5, +0x12,0x4e,0x8d,0x80,0x2, 0xe4,0x22,0x12,0x4e,0x72,0x74,0x1, 0x22,0x12,0xc0,0x9f, +0xe4,0x12,0x0, 0xe, 0x7e,0x8, 0x2a,0x6d,0x2, 0xd, 0x72,0x12,0x7f,0x6f,0x38,0x2, +0xe4,0x22,0x12,0x7f,0x67,0x49,0x55,0x34,0x3b,0xbe,0xb0,0x2, 0x38,0x3, 0x2, 0x4e, +0xb4,0x2, 0x4e,0x7d,0x7e,0xd7,0x2b,0xd, 0xbe,0xb0,0x1, 0x28,0x2, 0xe4,0x22,0x12, +0x7e,0xf8,0x12,0x4e,0xe0,0x7a,0xd7,0x2b,0xd, 0x7e,0x73,0x2a,0xfa,0xa, 0x37,0x3e, +0x34,0x3e,0x34,0xe4,0x7e,0x50,0x1, 0x12,0x13,0x1, 0x12,0x4f,0xaf,0x74,0x1, 0x22, +0x7e,0x8, 0x2a,0x6d,0x2, 0x5, 0xb4,0xca,0x3b,0x7e,0xe3,0x2a,0x74,0x7e,0xf3,0x2a, +0xfa,0x74,0x1, 0x7a,0xb3,0x2a,0xfa,0x12,0x4e,0xe0,0x12,0xc0,0xe7,0x12,0x29,0x6f, +0x7e,0x17,0x2a,0xfe,0x6d,0x0, 0x12,0x20,0xde,0x7e,0xd0,0x7, 0x12,0x26,0x57,0x6c, +0xcc,0x80,0x19,0x7e,0x34,0x0, 0x1, 0x7c,0xbd,0x60,0x5, 0x3e,0x34,0x14,0x78,0xfb, +0x7c,0x67,0x12,0x4f,0xf0,0x4c,0x76,0x7a,0x29,0x70,0xb, 0xc0,0x12,0x7b,0xb7,0xa, +0x3c,0xbd,0x32,0x48,0xde,0x12,0x4f,0x9e,0x30,0x18,0xfd,0x12,0x7b,0xc6,0x7e,0xb3, +0x2a,0x73,0x7c,0x7e,0x12,0x7b,0x31,0x6c,0xcc,0x80,0x29,0x74,0x2, 0xac,0xbc,0x49, +0x35,0x6, 0xfc,0xbe,0x34,0x15,0x40,0x50,0x19,0x7e,0x34,0x0, 0x1, 0x7c,0xbd,0x60, +0x5, 0x3e,0x34,0x14,0x78,0xfb,0x7c,0xb7,0x64,0xff,0x12,0x4f,0xf0,0x5c,0x7b,0x7a, +0x29,0x70,0xb, 0xc0,0x12,0x7b,0xb7,0xa, 0x3c,0xbd,0x32,0x48,0xce,0x1b,0xd0,0xbe, +0xd0,0x0, 0x58,0x88,0x12,0x7b,0x39,0x74,0x2, 0x12,0xc1,0xa, 0x12,0x50,0x51,0x74, +0x2, 0x12,0x0, 0x1e,0x7a,0xf3,0x2a,0xfa,0x12,0x4e,0xe0,0xda,0x3b,0x22,0x74,0x2, +0x12,0x0, 0x1e,0x7e,0xb3,0x2a,0xfc,0x12,0x50,0x51,0x74,0x2, 0x12,0x0, 0x1e,0x74, +0x5, 0x7e,0x70,0x9b,0x12,0x13,0x2c,0x12,0x4f,0xc1,0x7e,0xb3,0x2a,0xfc,0x2, 0xe, +0x94,0x6c,0xaa,0x80,0x22,0xa, 0x3a,0x9, 0x73,0x2a,0xdc,0x2e,0x34,0x20,0x73,0x12, +0x91,0x6d,0x7c,0x7b,0xa, 0x47,0x7e,0x50,0x2, 0xac,0x5a,0x7e,0xf, 0x38,0xc0,0x2d, +0x12,0x79,0x40,0x0, 0x48,0xb, 0xa0,0x7e,0x63,0x2a,0x74,0xbc,0x6a,0x38,0xd6,0x22, +0xa, 0x2c,0x2e,0x27,0x2a,0xfe,0x7e,0x29,0x70,0x22,0xe5,0xd, 0x60,0x52,0xe5,0xd, +0x30,0xe0,0x6, 0x53,0xd, 0xfe,0x12,0x4e,0xe0,0xe5,0xd, 0x30,0xe1,0x14,0x53,0xd, +0xfd,0x7e,0xb3,0x37,0xe0,0x70,0x4, 0x74,0x1, 0x80,0x1, 0xe4,0x12,0xc1,0xa, 0x12, +0x50,0xd4,0xe5,0xd, 0x30,0xe2,0x29,0x53,0xd, 0xfb,0xe4,0x7a,0xb3,0x37,0xe1,0x7e, +0xb3,0x37,0xe0,0x70,0xa, 0x74,0x1, 0x12,0x0, 0x1e,0x12,0x3f,0x67,0x80,0x7, 0xe4, +0x12,0x0, 0x1e,0x12,0x3f,0x49,0x12,0x3b,0x15,0x7e,0xb3,0x2a,0xfc,0x2, 0x50,0x51, +0x22,0xca,0x79,0x7c,0xfb,0x7e,0x8, 0x24,0xf2,0x12,0x3f,0xe9,0x7e,0xa3,0x2a,0x73, +0x7e,0x73,0x2a,0x74,0x6c,0xee,0x80,0x1e,0xa, 0x2e,0x9, 0x62,0x2a,0xdc,0xa, 0x26, +0x12,0x51,0x4b,0x93,0x7c,0x6b,0xbe,0x60,0x1c,0x50,0x9, 0xa, 0x2e,0x12,0x50,0xca, +0x19,0xb2,0x24,0xf2,0xb, 0xe0,0xbc,0x7e,0x38,0xde,0x6c,0xee,0x80,0x1a,0xa, 0x2e, +0x9, 0x62,0x2a,0xb9,0xbe,0x60,0x23,0x50,0xd, 0xa, 0x1e,0xa, 0x27,0x2d,0x21,0x12, +0x50,0xca,0x19,0xb2,0x25,0xe, 0xb, 0xe0,0xbc,0xae,0x38,0xe2,0x6c,0xee,0x7e,0x30, +0xe, 0xac,0x3e,0x2e,0x14,0x24,0xf2,0x6d,0x0, 0x7c,0xbf,0x7c,0x7e,0x12,0x11,0xba, +0xb, 0xe0,0xbe,0xe0,0x5, 0x40,0xe7,0xda,0x79,0x22,0x2e,0x27,0x2a,0xfe,0x7e,0x29, +0xb0,0xa, 0x26,0x22,0xca,0x79,0x7c,0xfb,0x7e,0x8, 0x1f,0x34,0x12,0x3f,0xe9,0x7e, +0xa3,0x2a,0x73,0x7e,0x63,0x2a,0x74,0x6c,0xee,0x80,0x1f,0xa, 0x2e,0x9, 0x72,0x2a, +0xdc,0xbe,0x70,0x1c,0x50,0x12,0xa, 0x27,0x12,0x51,0x4b,0x93,0x7c,0x7b,0x7e,0xb3, +0x2a,0xfb,0xa, 0x27,0x19,0xb2,0x1f,0x34,0xb, 0xe0,0xbc,0x6e,0x38,0xdd,0x6c,0xee, +0x80,0x17,0xa, 0x3e,0x9, 0x73,0x2a,0xb9,0xbe,0x70,0x23,0x50,0xa, 0x7e,0x63,0x2a, +0xfb,0xa, 0x27,0x19,0x62,0x1f,0x50,0xb, 0xe0,0xbc,0xae,0x38,0xe5,0x6c,0xee,0x7e, +0x30,0xe, 0xac,0x3e,0x2e,0x14,0x1f,0x34,0x6d,0x0, 0x7c,0xbf,0x7c,0x7e,0x12,0x11, +0xf8,0xb, 0xe0,0xbe,0xe0,0x5, 0x40,0xe7,0xda,0x79,0x22,0x2e,0x24,0x20,0x73,0x7a, +0x51,0x82,0x7a,0x41,0x83,0xe4,0x22,0x7a,0xb3,0x34,0xc4,0x7c,0xbf,0x6c,0x77,0x7c, +0x67,0x7c,0x7b,0xc4,0x23,0x54,0x1f,0x7c,0xab,0x7c,0xb7,0x54,0x7, 0xa, 0x2b,0x2e, +0x24,0x0, 0x5e,0x12,0x51,0x4f,0x93,0x7c,0x7b,0x4c,0x66,0x68,0xf, 0xa, 0x2a,0x2e, +0x24,0x27,0x72,0x7e,0x29,0xb0,0x4c,0xb7,0x7a,0x29,0xb0,0x22,0x7c,0xb7,0x64,0xff, +0xa, 0x2a,0x2e,0x24,0x27,0x72,0x7e,0x29,0x70,0x5c,0x7b,0x7a,0x29,0x70,0x22,0xca, +0xf8,0x6c,0xaa,0x6d,0x33,0x7e,0x24,0x7f,0xff,0x7e,0xf0,0x1, 0x80,0x32,0xa, 0x1f, +0x7e,0xb3,0x2a,0x6e,0xa, 0xb, 0x2d,0x1, 0x3e,0x4, 0x49,0x10,0x4, 0xfc,0xbe,0x14, +0x3, 0xe8,0x8, 0x1a,0xb, 0xa0,0xbd,0x13,0x8, 0x4, 0x7d,0x31,0x80,0x10,0xbd,0x12, +0x58,0xc, 0x7d,0x21,0xbe,0x24,0x0, 0x0, 0x18,0x4, 0x7e,0x24,0x0, 0x1, 0xb, 0xf0, +0x7e,0xb3,0x2a,0x6f,0xa, 0xb, 0x1b,0x4, 0xa, 0x1f,0xbd,0x10,0x48,0xc0,0x7e,0xb3, +0x34,0xa1,0x7a,0xb3,0x36,0xf3,0x7a,0xa3,0x36,0xf7,0xe4,0x7a,0xb3,0x36,0xf5,0xbe, +0xa0,0xb, 0x78,0x18,0x9d,0x32,0xbe,0x34,0x5, 0xdc,0x58,0x10,0x7e,0x37,0x28,0x8a, +0xbe,0x34,0x1, 0x5e,0x58,0x6, 0x74,0x1, 0x7a,0xb3,0x34,0xa1,0x7e,0x73,0x34,0xa1, +0xbe,0x70,0x0, 0x28,0x3e,0x6c,0xff,0x80,0x35,0x7c,0xbf,0x12,0x97,0xfc,0x60,0x22, +0x74,0x22,0x7a,0xb3,0x36,0xf4,0x7e,0xb3,0x34,0xc4,0x4, 0x12,0x51,0x57,0x7e,0x73, +0x34,0xc4,0xbe,0x70,0x5, 0x40,0x15,0xe4,0x7a,0xb3,0x34,0xc4,0x7a,0xb3,0x34,0xa1, +0x80,0xa, 0xe4,0x12,0x51,0x57,0x74,0x33,0x7a,0xb3,0x36,0xf5,0xb, 0xf0,0x12,0x52, +0x66,0x38,0xc6,0xda,0xf8,0x22,0x7e,0x73,0x28,0x84,0xbc,0x7f,0x22,0xca,0xd8,0xca, +0x79,0xc2,0x3, 0x6d,0x88,0x7a,0x87,0x38,0x3c,0xe4,0x7a,0xb3,0x1f,0x58,0xe5,0x1d, +0xbe,0xb0,0xff,0x50,0x2, 0x5, 0x1d,0x7e,0xb3,0x28,0x84,0x60,0xc, 0x12,0x8c,0x87, +0xb, 0x1a,0x80,0xbe,0x87,0x7, 0xfa,0x28,0xa, 0xc2,0x10,0x6d,0x88,0x7a,0x87,0x37, +0xfd,0x61,0xa0,0x12,0x93,0x91,0x60,0x12,0x7e,0x34,0x62,0xe, 0x12,0x87,0xc4,0x7a, +0x87,0x37,0xf3,0x12,0x54,0x2b,0x7a,0x87,0x37,0xfd,0x7e,0x87,0x37,0xf3,0x4d,0x88, +0x68,0x6, 0x74,0x1, 0x7a,0xb3,0x28,0xa9,0x6c,0xff,0x80,0x7b,0xe4,0xa, 0x3f,0x19, +0xb3,0x1f,0x34,0x12,0x54,0x3c,0x9, 0xe5,0x26,0xfb,0x7e,0x8, 0x1f,0x52,0x7c,0xbd, +0x7c,0x7e,0x12,0x55,0xb9,0x7d,0x93,0x7e,0x87,0x37,0xfd,0xbd,0x89,0x50,0x4, 0x7a, +0x97,0x37,0xfd,0x7e,0x87,0x38,0x3c,0xbd,0x89,0x50,0x4, 0x7a,0x97,0x38,0x3c,0xe5, +0x1d,0xbe,0xb0,0x5, 0x38,0x1f,0x7e,0x8, 0x37,0xff,0x12,0x54,0x4e,0x50,0x7, 0x12, +0x54,0x45,0xd2,0x3, 0x80,0x2f,0x7e,0x8, 0x37,0xff,0x7e,0x18,0x1f,0x52,0x12,0x57, +0x0, 0x50,0x22,0x80,0x10,0x12,0x54,0x2b,0xbd,0x89,0x38,0x19,0x7e,0x8, 0x1f,0x52, +0x12,0x91,0x86,0x50,0x10,0x12,0x54,0x45,0x7e,0x8, 0x1f,0x58,0x7e,0x18,0x1f,0x52, +0x12,0x93,0x6b,0xd2,0x3, 0xb, 0xf0,0x12,0x52,0x66,0x38,0x80,0x30,0x3, 0x37,0x6c, +0xff,0x80,0x20,0x12,0x54,0x3c,0x9, 0xe5,0x26,0xfb,0x7e,0x8, 0x1f,0x58,0x12,0x54, +0x4e,0x40,0x9, 0xa, 0x3f,0x9, 0xb3,0x1f,0x34,0xb4,0x1, 0x5, 0x7c,0xbf,0x12,0x54, +0x7, 0xb, 0xf0,0x12,0x52,0x66,0x38,0xdb,0x75,0x1d,0x0, 0x7e,0x34,0x62,0xe, 0x12, +0x23,0x9e,0x7a,0x37,0x37,0xf3,0x7e,0x63,0x1f,0x58,0x7e,0x70,0x6, 0xac,0x67,0xb, +0x34,0xca,0x39,0x7e,0x18,0x1f,0x58,0x7e,0x8, 0x37,0xff,0x12,0x20,0xb9,0x1b,0xfd, +0x7e,0x37,0x37,0xf3,0x4d,0x33,0x78,0x39,0x90,0x62,0x9, 0xe4,0x93,0xa, 0x3b,0xbe, +0x37,0x37,0xfd,0x38,0x40,0x7c,0x7b,0x1e,0x70,0xa, 0x37,0xbe,0x37,0x38,0x3c,0x38, +0x34,0x90,0x60,0x51,0x12,0x54,0x33,0x7e,0x73,0x26,0xf7,0xa, 0x37,0xbd,0x32,0x8, +0x24,0x90,0x60,0x50,0x12,0x54,0x33,0x7e,0x73,0x26,0xf6,0xa, 0x37,0xbd,0x32,0x8, +0x14,0x6c,0xff,0x80,0x7, 0x7c,0xbf,0x12,0x54,0x7, 0xb, 0xf0,0x12,0x52,0x66,0x38, +0xf4,0xd2,0x3, 0x80,0x6, 0x6d,0x33,0x7a,0x37,0x37,0xfd,0xa2,0x3, 0x92,0x10,0x12, +0x56,0xe9,0xda,0x79,0xda,0xd8,0x22,0x7c,0xab,0x7e,0xb3,0x39,0xb, 0x70,0x1b,0x7e, +0xb3,0x28,0xa8,0x70,0x15,0x12,0xc1,0x2a,0x68,0x10,0x7e,0xb3,0x2a,0x6b,0xbe,0xb0, +0x1, 0x68,0x7, 0x7c,0xba,0x6c,0x77,0x2, 0x51,0x5f,0x22,0x90,0x62,0x9, 0xe4,0x93, +0xa, 0x8b,0x22,0xe4,0x93,0x7c,0x7b,0x1e,0x70,0xa, 0x27,0x22,0x74,0x2, 0xac,0xbf, +0x9, 0xd5,0x26,0xfa,0x22,0x74,0x1, 0xa, 0x8f,0x19,0xb8,0x1f,0x34,0x22,0x7c,0xbd, +0x7c,0x7e,0x7c,0x6b,0xc2,0x4, 0x6c,0xaa,0x80,0x30,0x7e,0x50,0x6, 0xac,0x5a,0x7f, +0x70,0x2d,0xf2,0xb, 0xf4,0x29,0xb7,0x0, 0x2, 0xbc,0xb6,0x40,0x1b,0x7e,0x7b,0xb0, +0xbc,0xb6,0x38,0x14,0x29,0xb7,0x0, 0x3, 0xbc,0xb7,0x40,0xc, 0x29,0xb7,0x0, 0x1, +0xbc,0xb7,0x38,0x4, 0xd2,0x4, 0x80,0x9, 0xb, 0xa0,0x7e,0xb, 0xb0,0xbc,0xba,0x38, +0xc9,0xa2,0x4, 0x22,0xca,0xd8,0xca,0x79,0x7e,0xa3,0x2a,0x6e,0x7e,0x47,0x28,0x99, +0xe4,0x7a,0xb3,0x28,0xa6,0x7e,0xb3,0x26,0xf0,0xbe,0xb0,0x0, 0x28,0x4c,0x7e,0x73, +0x28,0x85,0xbe,0x70,0x0, 0x28,0x43,0x6c,0xff,0x80,0x3b,0x7e,0x50,0x2, 0xac,0x5f, +0x9, 0xd2,0x27,0x36,0x9, 0xe2,0x27,0x37,0x7e,0x50,0x2, 0xac,0x5e,0x49,0x12,0x4, +0xfc,0x6d,0x22,0x9e,0x27,0x2a,0x53,0xbd,0x12,0x58,0x19,0x12,0x55,0xa6,0x49,0x12, +0x4, 0xfc,0x6d,0x22,0x9e,0x27,0x2a,0x51,0xbd,0x12,0x58,0x8, 0x74,0x1, 0x7a,0xb3, +0x28,0xa6,0x80,0x6, 0xb, 0xf0,0xbc,0x7f,0x38,0xc1,0xe4,0x7a,0xb3,0x28,0xa7,0x7e, +0xb3,0x26,0x83,0x70,0x40,0x12,0x8f,0xe3,0x28,0x3b,0x6c,0xff,0x80,0x33,0x7e,0x50, +0x2, 0xac,0x5f,0x9, 0xd2,0x26,0xfa,0x9, 0xe2,0x26,0xfb,0x12,0x55,0xa6,0x49,0x2, +0x5, 0x7a,0x6d,0x11,0x9d,0x14,0xbd,0x1, 0x48,0xd, 0x7e,0x10,0x2, 0xac,0x1e,0x49, +0x20,0x5, 0x7a,0xbd,0x21,0x58,0x8, 0x74,0x1, 0x7a,0xb3,0x28,0xa7,0x80,0x6, 0xb, +0xf0,0xbc,0x7f,0x38,0xc9,0x12,0xb1,0x8e,0xe4,0x7a,0xb3,0x28,0xa9,0x7e,0x37,0x28, +0x88,0x2e,0x37,0x28,0x86,0xbe,0x37,0x28,0x9f,0x28,0x6, 0x74,0x1, 0x7a,0xb3,0x28, +0xa9,0x74,0x1, 0x7a,0xb3,0x28,0xaa,0x6c,0xff,0x80,0x1f,0x12,0x55,0xaf,0x49,0x25, +0x25,0xf7,0x7d,0x43,0x9d,0x42,0x7d,0x34,0x12,0x21,0x0, 0xbe,0x37,0x28,0x9d,0x8, +0x7, 0xe4,0x7a,0xb3,0x28,0xaa,0x80,0x7, 0xb, 0xf0,0x12,0x52,0x66,0x38,0xdc,0x6c, +0xff,0x80,0x9, 0x12,0x55,0xaf,0x59,0x35,0x25,0xf7,0xb, 0xf0,0x12,0x52,0x66,0x38, +0xf2,0xda,0x79,0xda,0xd8,0x22,0xa, 0x1d,0xa, 0x2a,0x2d,0x21,0x3e,0x24,0x22,0x7c, +0xbf,0x12,0x37,0x6f,0x74,0x2, 0xac,0xbf,0x22,0xca,0x3b,0x7c,0xc7,0x7c,0xfb,0x7f, +0x40,0x6d,0x33,0x7a,0x35,0x24,0x7e,0xa3,0x2a,0x6d,0x7e,0x73,0x2a,0x6e,0x4c,0xcc, +0x78,0x5, 0x7e,0xc0,0x1, 0x80,0xd, 0x7c,0xb7,0x14,0xbc,0xbc,0x78,0x6, 0xa, 0x6c, +0x1b,0x65,0x7c,0xcd,0x4c,0xff,0x78,0x5, 0x7e,0xf0,0x1, 0x80,0xb, 0x7c,0xba,0x14, +0xbc,0xbf,0x78,0x4, 0xa, 0x7f,0x1b,0x75,0x7f,0x4, 0x7e,0x34,0x0, 0x6, 0xe4,0x12, +0x20,0xde,0x7e,0x73,0x2a,0x6d,0xa, 0x37,0x1b,0x34,0x7a,0x4b,0x70,0x7e,0x73,0x2a, +0x6e,0xa, 0x37,0x1b,0x34,0x39,0x74,0x0, 0x1, 0x7c,0xec,0x80,0x1c,0x75,0x26,0x0, +0x7c,0xdf,0x80,0xa, 0x12,0x91,0xd5,0x70,0xa, 0x12,0x56,0xd3,0x1b,0xd0,0xbe,0xd0, +0x0, 0x58,0xf1,0xe5,0x26,0x60,0x7, 0x1b,0xe0,0xbe,0xe0,0x0, 0x58,0xdf,0x7c,0xec, +0x80,0x23,0x75,0x26,0x0, 0x1a,0x3f,0xb, 0x34,0x7c,0xd7,0x80,0xa, 0x12,0x91,0xd5, +0x70,0xd, 0x12,0x56,0xd3,0xb, 0xd0,0x7e,0x73,0x2a,0x6d,0xbc,0x7d,0x18,0xee,0xe5, +0x26,0x60,0x7, 0x1b,0xe0,0xbe,0xe0,0x0, 0x58,0xd8,0x1a,0x3c,0xb, 0x34,0x7c,0xe7, +0x80,0x1c,0x75,0x26,0x0, 0x7c,0xdf,0x80,0xa, 0x12,0x91,0xd5,0x70,0xa, 0x12,0x56, +0xd3,0x1b,0xd0,0xbe,0xd0,0x0, 0x58,0xf1,0xe5,0x26,0x60,0xa, 0xb, 0xe0,0x7e,0x73, +0x2a,0x6e,0xbc,0x7e,0x18,0xdc,0x1a,0x3c,0xb, 0x34,0x7c,0xe7,0x80,0x21,0x75,0x26, +0x0, 0x1a,0x6f,0xb, 0x64,0x80,0xa, 0x12,0x91,0xd5,0x70,0xd, 0x12,0x56,0xd3,0xb, +0xd0,0x7e,0x73,0x2a,0x6d,0xbc,0x7d,0x18,0xee,0xe5,0x26,0x60,0xa, 0xb, 0xe0,0x7e, +0x73,0x2a,0x6e,0xbc,0x7e,0x18,0xd7,0x7e,0x35,0x24,0x7d,0x23,0x39,0x54,0x0, 0x5, +0xda,0x3b,0x22,0x5, 0x26,0x7e,0x35,0x24,0xb, 0x34,0x7a,0x35,0x24,0x22,0x12,0x57, +0x32,0x12,0x51,0x9f,0x7a,0xb3,0x2a,0xc, 0x22,0x30,0x10,0x13,0x12,0xc1,0x1a,0x68, +0x6, 0x7e,0xb3,0x39,0xb, 0x60,0x8, 0x7e,0x34,0xb, 0xb8,0x7a,0x37,0x37,0xfb,0x22, +0x7f,0x61,0x7f,0x50,0x7e,0x6b,0x90,0x80,0x1f,0x29,0x86,0x0, 0x1, 0x80,0xf, 0x7f, +0x5, 0x7c,0xb9,0x7c,0x78,0x12,0x54,0x52,0x50,0x2, 0xd3,0x22,0xb, 0x80,0x29,0x76, +0x0, 0x3, 0xbc,0x78,0x50,0xe9,0xb, 0x90,0x29,0x76,0x0, 0x2, 0xbc,0x79,0x50,0xd9, +0xc3,0x22,0x7e,0xa3,0x28,0x84,0xe4,0x7a,0xb3,0x34,0xa2,0x6c,0x33,0x80,0x3d,0x7e, +0x70,0x2, 0xac,0x73,0x9, 0x23,0x26,0xfb,0x7e,0x10,0x1, 0x6c,0x0, 0x80,0x27,0xbc, +0x3, 0x68,0x21,0x7e,0x70,0x2, 0xac,0x70,0x9, 0x93,0x26,0xfb,0xa, 0x29,0xa, 0x32, +0x12,0x35,0x67,0x18,0x2, 0xb, 0x10,0xbe,0x10,0x2, 0x40,0x8, 0x74,0x2, 0x7a,0xb3, +0x34,0xa2,0x80,0x6, 0xb, 0x0, 0xbc,0xa0,0x38,0xd5,0xb, 0x30,0xbc,0xa3,0x38,0xbf, +0x2, 0x57,0x83,0xca,0xf8,0x7e,0x33,0x28,0x84,0x6c,0x22,0x80,0x45,0x74,0x2, 0xac, +0xb2,0x9, 0x15,0x26,0xfa,0x9, 0x5, 0x26,0xfb,0x7e,0xa0,0x1, 0x6c,0x99,0x80,0x2c, +0xbc,0x92,0x68,0x26,0x7e,0x70,0x2, 0xac,0x79,0x9, 0x83,0x26,0xfa,0x9, 0xf3,0x26, +0xfb,0xa, 0x28,0xa, 0x31,0x12,0x35,0x67,0x18,0xb, 0xa, 0x2f,0xa, 0x30,0x12,0x35, +0x67,0x8, 0x2, 0xb, 0xa0,0xbe,0xa0,0x3, 0x50,0x6, 0xb, 0x90,0xbc,0x39,0x38,0xd0, +0xb, 0x20,0xbc,0x32,0x38,0xb7,0x7e,0xb3,0x35,0x3e,0xbe,0xb0,0x0, 0x28,0x12,0x14, +0x7a,0xb3,0x35,0x3e,0xbe,0xb0,0x14,0x28,0x8, 0x7e,0x34,0x0, 0x78,0x7a,0x37,0x2a, +0x5a,0x7e,0xb3,0x36,0xec,0x70,0x58,0x7e,0xb3,0x39,0xb, 0x70,0x52,0x7e,0xb3,0x36, +0x71,0x70,0x4c,0x7e,0x37,0x37,0xfd,0xbe,0x34,0x0, 0x14,0x50,0x42,0x7e,0x37,0x28, +0x8a,0xbe,0x34,0x3, 0x20,0x58,0x38,0x7e,0xb3,0x28,0x84,0xbe,0xb0,0x3, 0x40,0x2f, +0xbe,0xa0,0x3, 0x40,0x2a,0x7e,0xb3,0x26,0x85,0xbe,0xb0,0x3, 0x50,0x9, 0x7e,0xb3, +0x26,0x84,0xbe,0xb0,0x3, 0x40,0x18,0x7e,0xb3,0x26,0xf6,0xbe,0xb0,0x8, 0x50,0x9, +0x7e,0xb3,0x26,0xf7,0xbe,0xb0,0x8, 0x40,0x6, 0x74,0x1e,0x7a,0xb3,0x35,0x3e,0xda, +0xf8,0x22,0xca,0xd8,0xca,0x79,0x7e,0x73,0x2a,0x6e,0x7e,0xf3,0x2a,0x6d,0xac,0xf7, +0x7d,0x37,0x3e,0x34,0x7e,0x8, 0x1f,0x34,0xe4,0x12,0x20,0xde,0x7e,0xb3,0x37,0xb7, +0xb4,0x1, 0x64,0x7e,0x73,0x37,0xb8,0xbe,0x70,0x0, 0x28,0x5b,0x6c,0xdd,0x80,0x3c, +0x12,0x26,0x57,0x12,0x28,0x62,0x6d,0x33,0x80,0x28,0x7e,0x35,0x24,0x3e,0x34,0x49, +0x33,0xd, 0xc8,0x12,0x21,0x0, 0x7a,0x35,0x26,0x7e,0x35,0x24,0x7d,0x13,0x3e,0x14, +0x49,0x21,0x1f,0x34,0xbe,0x25,0x26,0x58,0x7, 0x7e,0x25,0x26,0x59,0x21,0x1f,0x34, +0xb, 0x34,0x7a,0x35,0x24,0xbe,0x75,0x24,0x38,0xd0,0xb, 0xd0,0x7e,0x73,0x37,0xb8, +0xbc,0x7d,0x38,0xbc,0x7d,0x37,0x3e,0x34,0xca,0x39,0x7e,0x18,0x1f,0x34,0x7e,0x8, +0xd, 0xc8,0x12,0x20,0xb9,0x1b,0xfd,0xda,0x79,0xda,0xd8,0x22,0x7e,0xb3,0x37,0x5, +0xb4,0x1, 0x4, 0xe4,0x2, 0x58,0xe8,0x22,0x70,0x3, 0xd2,0x86,0x22,0xc2,0x86,0x22, +0x12,0x68,0x10,0x12,0x7d,0x94,0x7e,0xb3,0x37,0x8, 0xb4,0x1, 0x74,0x12,0xb6,0xe2, +0x7e,0x34,0x60,0xa5,0x12,0x23,0x9e,0x12,0x26,0x5b,0x12,0x91,0x18,0x12,0x47,0x2c, +0x12,0x28,0x62,0x50,0xde,0x12,0xab,0xdb,0x12,0x75,0xe9,0x7e,0xb3,0x37,0x5, 0xb4, +0x1, 0x4, 0xe4,0x12,0x58,0xe8,0x12,0xaf,0x89,0x12,0xa7,0xbd,0x12,0x5e,0xaa,0x40, +0xc2,0x12,0x88,0x5f,0x12,0x5e,0xaa,0x40,0xba,0x12,0x56,0xde,0x12,0x2a,0x3, 0x12, +0x0, 0x6e,0x12,0x5f,0x2f,0x12,0x5f,0x83,0x12,0x5b,0x94,0x12,0x96,0x24,0x12,0x5e, +0xc2,0x12,0x5f,0xcd,0x12,0xaa,0xe6,0x12,0x87,0x74,0x7e,0xb3,0x36,0xf1,0xbe,0xb0, +0x88,0x68,0x3, 0x12,0x59,0x77,0x12,0x67,0xfa,0x12,0x26,0x66,0x12,0x62,0xa5,0x80, +0x82,0x12,0x2f,0xee,0x2, 0x58,0xdc,0xca,0x3b,0x75,0x24,0x0, 0x6c,0xff,0x12,0x35, +0xd3,0x75,0x28,0x3, 0x6c,0xee,0x7e,0x48,0x29,0xbc,0x7e,0xb3,0x2a,0xb, 0x70,0xe, +0x7e,0xb3,0x2a,0x7, 0x70,0x8, 0x7e,0xb3,0x2a,0x8, 0x70,0x2, 0x61,0x6b,0x30,0xe, +0x6, 0x7e,0x68,0x33,0x28,0x80,0x4, 0x7e,0x68,0x32,0xea,0x7f,0x6, 0x12,0x7e,0xef, +0x7e,0x73,0x2a,0x4, 0x7a,0x6b,0x70,0x6c,0xdd,0x61,0x1c,0x74,0x9, 0xac,0xbd,0x9, +0xc5,0x29,0xc, 0x7c,0xbc,0x54,0xf, 0xa, 0x3b,0x12,0x5e,0x3d,0xf5,0x28,0x7c,0xbc, +0x54,0xf0,0xbe,0xb0,0x0, 0x28,0x2, 0x61,0x1a,0xe5,0x28,0xbe,0xb0,0x3, 0x78,0x2, +0x61,0x1a,0x7e,0x8, 0x0, 0x28,0x7c,0xbc,0x12,0x9e,0xec,0x50,0x2, 0x61,0x1a,0x74, +0x9, 0xac,0xbd,0x9, 0xb5,0x29,0xd, 0xf5,0x25,0x74,0x9, 0xac,0xbd,0x9, 0xb5,0x29, +0xe, 0xc4,0x54,0xf0,0xf5,0x26,0x7e,0x73,0x2a,0x4d,0xbc,0x7c,0x28,0x54,0x7e,0xb3, +0x2a,0x9, 0x70,0x2a,0x75,0x29,0xf, 0x7e,0x8, 0x0, 0x25,0xa, 0x3c,0x2e,0x34,0x32, +0xd6,0x6d,0x22,0x74,0x1, 0x12,0x7f,0xd4,0x75,0x29,0x20,0x7e,0x8, 0x0, 0x26,0xa, +0x3c,0x2e,0x34,0x32,0xe0,0x6d,0x22,0x74,0x10,0x12,0x7f,0xd4,0x80,0xe, 0xa, 0x3c, +0x9, 0xb3,0x32,0xd6,0xf5,0x25,0x9, 0xb3,0x32,0xe0,0xf5,0x26,0xa, 0x3c,0x12,0x5e, +0x3d,0xb4,0x1, 0xe, 0xe4,0xa, 0x3c,0x19,0xb3,0x32,0xd6,0x19,0xb3,0x32,0xe0,0x12, +0x35,0xd3,0x7e,0xb3,0x2a,0x64,0xb4,0xff,0x13,0x75,0x25,0x0, 0x74,0x9, 0xac,0xbd, +0x9, 0xb5,0x29,0xc, 0xbe,0xb0,0xff,0x68,0x3, 0x75,0x25,0x1, 0x7e,0x90,0x9, 0xac, +0x9d,0x49,0xb4,0x29,0x8, 0x49,0xa4,0x29,0xa, 0xe5,0x28,0xb4,0x1, 0x2c,0x75,0x27, +0x0, 0x80,0x1d,0x7e,0x71,0x27,0x74,0x9, 0xac,0x7b,0x9, 0xb3,0x33,0x6a,0x54,0xf, +0xbc,0xbc,0x78,0xa, 0x49,0xb3,0x33,0x66,0x49,0xa3,0x33,0x68,0x80,0xc, 0x5, 0x27, +0x90,0x60,0x99,0xe4,0x93,0xbe,0xb1,0x27,0x38,0xd9,0x5e,0xb4,0xf, 0xff,0x5e,0xa4, +0xf, 0xff,0x9, 0x74,0x29,0xc, 0xa, 0x57,0xc4,0x54,0xf0,0x7c,0xab,0xe4,0x2d,0xa5, +0xbe,0x70,0xff,0x68,0x16,0xe5,0x28,0xbe,0xb0,0x1, 0x68,0x2, 0x5, 0x24,0xb, 0xf0, +0xe5,0x28,0xa, 0x5b,0x12,0xb9,0x5c,0x2d,0xb5,0x80,0x4, 0x2e,0xb4,0xc0,0x0, 0x7e, +0x70,0x6, 0xac,0x7e,0x7f,0x6, 0x2d,0x13,0x79,0xb0,0x0, 0x2, 0x7f,0x6, 0x2d,0x13, +0x79,0xa0,0x0, 0x4, 0xe5,0x25,0x7f,0x6, 0x2d,0x13,0x39,0xb0,0x0, 0x6, 0xe5,0x26, +0x2d,0x3d,0x7d,0x2c,0x39,0xb1,0x0, 0x7, 0xb, 0xe0,0xb, 0xd0,0x7e,0x73,0x2a,0x4d, +0xbc,0x7d,0x28,0x2, 0x21,0xbb,0xe5,0x24,0x39,0xb6,0x0, 0x1, 0x7e,0xb3,0x37,0x31, +0xb4,0x1, 0x9, 0x7e,0xb3,0x2a,0x8, 0xb4,0x1, 0x17,0x80,0xd, 0xbe,0xf0,0x0, 0x38, +0x6, 0x7e,0xb3,0x2a,0x8, 0x60,0xa, 0xb2,0xe, 0x12,0x7e,0x81,0x74,0x1, 0x12,0x58, +0xe8,0x7e,0xb3,0x2a,0x7, 0x60,0x5, 0x7f,0x4, 0x12,0x5e,0x61,0xe4,0x7a,0xb3,0x2a, +0xb, 0x7a,0xb3,0x2a,0x7, 0x7a,0xb3,0x2a,0x8, 0x80,0x4, 0xe4,0x12,0x58,0xe8,0x12, +0x5f,0xc2,0xca,0x59,0x7e,0x18,0x29,0x8, 0x7e,0x8, 0x33,0x66,0x12,0x20,0xb9,0x1b, +0xfd,0x4c,0xff,0x78,0xc, 0x12,0x73,0xe5,0x7e,0x8, 0x33,0x66,0x74,0xff,0x12,0x20, +0xde,0xda,0x3b,0x22,0xca,0xf8,0x7e,0x68,0x29,0xbc,0x6c,0xaa,0x80,0x19,0x7e,0x70, +0xff,0x12,0x5e,0x8b,0xe4,0xa, 0x4a,0x19,0xb4,0x1f,0x34,0x74,0xff,0x19,0xb4,0x1f, +0x46,0x19,0xb4,0x1f,0x50,0xb, 0xa0,0x12,0x5e,0x25,0x38,0xe2,0x7e,0x73,0x2a,0x2, +0xa5,0xbf,0x0, 0x23,0x7e,0xb3,0x34,0x4f,0x70,0x2, 0xa1,0xab,0x6c,0xaa,0x80,0x10, +0x7e,0x44,0x7f,0xff,0x12,0x5e,0x95,0x79,0x40,0x0, 0x14,0x12,0x5e,0x45,0xb, 0xa0, +0x12,0x5e,0x25,0x38,0xeb,0xa1,0xab,0x7e,0xb3,0x34,0x4f,0x70,0x3d,0xbe,0x70,0x0, +0x28,0x38,0x6c,0xaa,0x80,0x2a,0x7e,0x90,0x9, 0xac,0x9a,0x49,0x34,0x28,0xae,0x12, +0x5e,0x95,0x79,0x30,0x0, 0x14,0x49,0x34,0x28,0xb0,0x7f,0x6, 0x2d,0x12,0x79,0x30, +0x0, 0x28,0x74,0x1, 0xa, 0x3a,0x19,0xb3,0x1f,0x34,0x19,0xa4,0x28,0xb2,0xb, 0xa0, +0x7e,0xb3,0x2a,0x2, 0xbc,0xba,0x38,0xce,0xa1,0xab,0x6c,0xaa,0x80,0x17,0x12,0x5e, +0x57,0x3e,0x34,0x59,0x43,0x15,0x4e,0x59,0x43,0x15,0x50,0x59,0x43,0x15,0x76,0x59, +0x43,0x15,0x78,0xb, 0xa0,0x12,0x5e,0x25,0x38,0xe4,0x6c,0xaa,0x80,0x41,0x6c,0xff, +0x80,0x36,0x7e,0x70,0x2, 0xac,0x7f,0x7f,0x6, 0x2d,0x13,0x69,0x30,0x0, 0x14,0xbe, +0x34,0x7f,0xff,0x68,0x21,0xa, 0x4f,0x9, 0xb4,0x1f,0x50,0xb4,0xff,0x18,0x12,0x5e, +0x35,0x59,0x32,0x15,0x4e,0x69,0x30,0x0, 0x28,0x59,0x32,0x15,0x50,0x12,0x5e,0x4e, +0x19,0xb4,0x1f,0x50,0x80,0x7, 0xb, 0xf0,0x12,0x5e,0x2d,0x38,0xc5,0xb, 0xa0,0x7e, +0xb3,0x34,0x4f,0xbc,0xba,0x38,0xb7,0x6c,0xaa,0x80,0x28,0xa, 0x3a,0x9, 0xb3,0x1f, +0x46,0xb4,0xff,0x1d,0x6c,0xff,0x80,0x14,0xa, 0x4f,0x9, 0xb4,0x1f,0x50,0xb4,0xff, +0x9, 0x12,0x5e,0x4e,0x19,0xb4,0x1f,0x50,0x80,0x7, 0xb, 0xf0,0x12,0x5e,0x2d,0x38, +0xe7,0xb, 0xa0,0x12,0x5e,0x25,0x38,0xd3,0x6c,0xaa,0x80,0x1a,0x7e,0x70,0x9, 0xac, +0x7a,0x49,0x43,0x28,0xae,0x12,0x5e,0x35,0x59,0x42,0x15,0x76,0x49,0x33,0x28,0xb0, +0x59,0x32,0x15,0x78,0xb, 0xa0,0x7e,0xb3,0x2a,0x2, 0xbc,0xba,0x38,0xde,0x7e,0x34, +0x15,0x4e,0x7a,0x37,0x1f,0x40,0x7e,0x34,0x15,0x76,0x7a,0x37,0x1f,0x42,0x7e,0x34, +0x15,0x9e,0x7a,0x37,0x1f,0x44,0x7e,0x73,0x34,0x4f,0x7a,0x73,0x1f,0x3e,0x7e,0x73, +0x2a,0x2, 0x7a,0x73,0x1f,0x3f,0x7e,0x8, 0x1f,0x3e,0x12,0x4, 0xad,0x6c,0xaa,0x80, +0x59,0x7e,0x70,0xff,0x6c,0xff,0x80,0x19,0x7e,0x50,0x2, 0xac,0x5f,0x49,0x12,0x15, +0x9e,0xa, 0x2a,0xbd,0x21,0x78,0x8, 0xa, 0x3f,0x9, 0x73,0x1f,0x46,0x80,0x7, 0xb, +0xf0,0x12,0x5e,0x2d,0x38,0xe2,0xbe,0x70,0xff,0x68,0x2d,0x12,0x5e,0x8b,0x74,0x1, +0xa, 0x47,0x19,0xb4,0x1f,0x34,0x7e,0x90,0x9, 0xac,0x9a,0x49,0x24,0x28,0xae,0x7e, +0x30,0x2, 0xac,0x37,0x2d,0x1d,0x7d,0xc, 0x79,0x20,0x0, 0x14,0x49,0x44,0x28,0xb0, +0x7e,0x50,0x2, 0xac,0x57,0x12,0x5e,0x45,0xb, 0xa0,0x7e,0x63,0x2a,0x2, 0xbc,0x6a, +0x38,0x9f,0x6c,0xaa,0x80,0x20,0xa, 0x3a,0x9, 0xb3,0x1f,0x34,0xbe,0xb0,0x1, 0x68, +0x13,0x12,0x5e,0x57,0x7f,0x6, 0x2d,0x13,0x79,0x40,0x0, 0x14,0x2d,0x3d,0x7d,0x2c, +0x79,0x41,0x0, 0x28,0xb, 0xa0,0x12,0x5e,0x25,0x38,0xdb,0x7e,0xf3,0x2a,0x2, 0x7a, +0xf3,0x34,0x4f,0x6c,0xaa,0x80,0x66,0xa, 0x3a,0x9, 0xb3,0x1f,0x34,0xb4,0x1, 0x2b, +0x12,0x5e,0x9f,0xb4,0x1, 0x6, 0x74,0x3, 0x39,0xb1,0x0, 0xa, 0xa, 0x3a,0x2d,0x3d, +0x7d,0x2c,0x29,0x31,0x0, 0xa, 0xa5,0xbb,0x3, 0x6, 0xe4,0x7a,0x1b,0xb0,0x80,0x2e, +0xa5,0xbb,0x0, 0x2a,0x74,0x2, 0x7a,0x1b,0xb0,0x80,0x23,0x12,0x5e,0x9f,0xbe,0xb0, +0x2, 0x68,0x2, 0x70,0x14,0x74,0x1, 0x7a,0x1b,0xb0,0x7c,0x2f,0xb, 0xf0,0x7e,0x30, +0x9, 0xac,0x23,0x19,0xa1,0x28,0xb2,0x80,0x5, 0x74,0x3, 0x7a,0x1b,0xb0,0xa, 0x3a, +0x2d,0x3d,0x7d,0x2c,0x7e,0x1b,0xb0,0x39,0xb1,0x0, 0xa, 0xb, 0xa0,0x12,0x5e,0x25, +0x38,0x95,0xda,0xf8,0x22,0x90,0x60,0x99,0xe4,0x93,0xbc,0xba,0x22,0x90,0x60,0x99, +0xe4,0x93,0xbc,0xbf,0x22,0x7e,0x50,0x2, 0xac,0x5a,0x3e,0x24,0x22,0x2d,0x39,0x7d, +0x28,0x7e,0x1b,0xb0,0x22,0x7f,0x6, 0x2d,0x12,0x79,0x40,0x0, 0x28,0x22,0xa, 0x3a, +0x19,0xf3,0x1f,0x46,0x74,0x1, 0x22,0x7e,0x44,0x7f,0xff,0x7e,0x70,0x2, 0xac,0x7a, +0x22,0x6c,0xaa,0x80,0x20,0x74,0x3, 0x12,0xa9,0x99,0x7f,0x10,0x2d,0x34,0x39,0xb1, +0x0, 0xa, 0x12,0x5e,0x57,0x7f,0x70,0x2d,0xf3,0x79,0x47,0x0, 0x14,0x2d,0x31,0x79, +0x41,0x0, 0x28,0xb, 0xa0,0x12,0x5e,0x25,0x38,0xdb,0x22,0x7e,0x50,0x9, 0xac,0x5a, +0x19,0x72,0x28,0xb2,0x22,0x7e,0x50,0x2, 0xac,0x5a,0x7f,0x6, 0x2d,0x12,0x22,0xa, +0x3a,0x2d,0x3d,0x7d,0x2c,0x29,0xb1,0x0, 0xa, 0x22,0xc2,0x3, 0x7e,0xb3,0x16,0x91, +0x60,0x6, 0x7e,0xb3,0x16,0x90,0x70,0x7, 0x12,0x9b,0xdf,0x28,0x2, 0xd2,0x3, 0xa2, +0x3, 0x22,0xca,0xf8,0x7e,0xa3,0x2a,0x2, 0x4c,0xaa,0x78,0x11,0x7e,0xb3,0x2a,0x3, +0xbe,0xb0,0x0, 0x28,0x13,0x74,0x1, 0x7a,0xb3,0x2a,0x7, 0x80,0xb, 0xbe,0xa0,0x0, +0x28,0x6, 0x74,0x1, 0x7a,0xb3,0x2a,0xb, 0x12,0x5f,0xc2,0xca,0x59,0x7e,0x18,0x28, +0xae,0x7e,0x8, 0x29,0x8, 0x12,0x20,0xb9,0x1b,0xfd,0x90,0x61,0x35,0xe4,0x93,0xbe, +0xb0,0x0, 0x28,0x28,0x6c,0xff,0x80,0x1f,0x74,0x9, 0xac,0xbf,0x49,0x35,0x28,0xae, +0x12,0x80,0x16,0x74,0x9, 0xac,0xbf,0x59,0x35,0x29,0x8, 0x49,0x35,0x28,0xb0,0x12, +0x64,0xdb,0x12,0xab,0x9b,0xb, 0xf0,0x12,0x5e,0x2d,0x38,0xdc,0xda,0xf8,0x22,0x2, +0x5f,0x32,0xca,0x79,0x6c,0xff,0x7e,0xd7,0x2a,0x5a,0x6c,0xee,0x80,0x35,0x7c,0xbe, +0x12,0x37,0x6f,0xbd,0x3d,0x48,0x2a,0x7c,0xbe,0x12,0x2f,0xb7,0x60,0x23,0x7e,0xc4, +0x0, 0x9, 0xca,0xc9,0x7e,0x70,0x9, 0xac,0x7e,0x2e,0x34,0x27,0x76,0x6d,0x22,0x7e, +0x30,0x9, 0xac,0x3f,0x2e,0x14,0x28,0xae,0x6d,0x0, 0x12,0x20,0xb9,0x1b,0xfd,0xb, +0xf0,0xb, 0xe0,0x12,0x9c,0xf6,0x38,0xc6,0x7a,0x73,0x28,0x93,0x7a,0xf3,0x2a,0x2, +0xda,0x79,0x22,0x12,0x9d,0xda,0x2, 0x5f,0x89,0x7e,0xa3,0x2a,0x3, 0xbe,0xa0,0x0, +0x38,0x2f,0xbe,0xa3,0x2a,0x2, 0x50,0x19,0x7e,0xb3,0x2a,0xc, 0xbe,0xb3,0x35,0x40, +0x28,0x14,0x7e,0xb3,0x35,0x40,0x4, 0x7a,0xb3,0x35,0x40,0x7a,0xa3,0x2a,0x2, 0x80, +0x5, 0xe4,0x7a,0xb3,0x35,0x40,0x7e,0xb3,0x2a,0x2, 0x70,0x5, 0xe4,0x7a,0xb3,0x2a, +0xb, 0x22,0x90,0x60,0x99,0xe4,0x93,0x7c,0xab,0x74,0x9, 0xa4,0x22,0x12,0x68,0x38, +0x2, 0x5f,0xd3,0x7e,0xb3,0x2a,0x9, 0x70,0x24,0x7e,0xa3,0x34,0xa2,0x4c,0xaa,0x78, +0x3, 0xe4,0x80,0x7, 0xbe,0xa0,0x2, 0x78,0x6, 0x74,0x3, 0x7a,0xb3,0x34,0xad,0x7e, +0x73,0x34,0xae,0xbe,0x73,0x34,0xad,0x28,0x4, 0x7a,0x73,0x34,0xad,0x22,0xff,0xff, +0x70,0x8f,0x0, 0xff,0x53,0xac,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x45,0x37,0x31,0x1, 0xc3,0x1, 0x45,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x19,0xe6,0x30,0x30,0x31,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0xd, 0x18,0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0xc, 0xb, 0xa, 0x9, 0x8, 0x7, 0x6, 0x5, 0x4, 0x3, +0x2, 0x1, 0xe, 0xf, 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x0, 0x0, 0x0, +0x0, 0x5, 0x0, 0x4, 0xff,0x23,0x1c,0x2, 0xdf,0xa, 0x1e,0xa, 0x64,0x1e,0x10,0x0, +0x4, 0x0, 0x64,0xd, 0xac,0x0, 0xc8,0x3, 0x1, 0x0, 0x0, 0x17,0x2, 0x6, 0xa, 0x0, +0x0, 0x0, 0x46,0x0, 0xe6,0x1, 0x18,0x1, 0xb8,0x1, 0xf4,0x2, 0x94,0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c,0x1, 0x68,0x2, 0x44,0x0, 0x0, 0x0, 0x0, 0x7, +0xd0,0x0, 0x14,0x1, 0x19,0x37,0x1, 0xf4,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e, +0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e, +0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e, +0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e, +0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x0, 0x4, 0x5a,0x20,0x1, 0x20,0x2, 0x0, 0x0, +0x0, 0x0, 0x1, 0xf4,0x65,0x40,0xd, 0x18,0x25,0x19,0x2e,0x6, 0x80,0x19,0x2e,0x6, +0x80,0x8, 0x10,0x4, 0x20,0x1, 0x0, 0x2, 0xd0,0x33,0x33,0x1, 0x98,0x1, 0x98,0x0, +0xde,0x0, 0xe0,0x5, 0x0, 0x38,0x34,0x1, 0xa0,0x1, 0xa0,0x0, 0xde,0x0, 0xe2,0x0, +0xb4,0x0, 0xa0,0x0, 0x96,0x1, 0x18,0x1, 0x18,0x1, 0x18,0xa, 0x0, 0x1, 0x68,0x1, +0x5, 0xb, 0x1e,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22,0x15,0x0, 0x1, 0x54,0x1, 0x0, 0x19, +0x1, 0x53,0x1, 0x14,0x0, 0x0, 0x1, 0x1, 0x10,0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x55,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x96,0x2, 0x26,0x0, 0x50,0x0, 0x27, +0x0, 0x4, 0x0, 0x4, 0x1, 0x4, 0x1, 0x90,0x0, 0xc8,0x0, 0x50,0x1, 0xf4,0x0, 0x96, +0x1, 0x2c,0x1, 0x2c,0x4, 0x37,0x2, 0x5a,0x65,0x20,0x28,0x2, 0x2c,0x2e,0x20,0x3c, +0x2, 0x5b,0x66,0x20,0x46,0x2, 0x42,0x49,0x30,0x37,0x2, 0x5a,0x65,0x20,0x37,0x2, +0x5a,0x65,0x20,0x37,0x2, 0x5a,0x65,0x20,0x37,0x2, 0x5a,0x65,0x20,0x4, 0x5, 0x2e, +0x2f,0x30,0x31,0x32,0x4, 0x0, 0xd2,0x2, 0x30,0x64,0x0, 0xc8,0x1, 0x5e,0x0, 0x64, +0x0, 0x64,0x0, 0x96,0x0, 0x64,0xb, 0xb8,0x8, 0x5, 0x6, 0x80,0x1, 0x90,0x1, 0x2c, +0x1, 0xc2,0x3, 0x20,0xf, 0xa0,0x1, 0x3, 0x20,0x4, 0xb0,0x3, 0x20,0x1, 0x2, 0x2, +0x4, 0x4, 0x6, 0x40,0x1, 0x2c,0x1, 0x18,0x1, 0x90,0x1, 0x90,0x1, 0x90,0x1, 0x90, +0x1, 0x2c,0x1, 0x90,0x1, 0x7c,0x1, 0x7c,0x0, 0x50,0x0, 0x46,0x0, 0x78,0x0, 0x78, +0x0, 0x78,0x0, 0x78,0x0, 0x78,0x14,0x8, 0x0, 0x50,0x2, 0x80,0x0, 0x50,0x4, 0xb0, +0x0, 0x32,0x1, 0xf4,0x1, 0xf4,0x3, 0x20,0x0, 0x14,0x0, 0x37,0x0, 0x1e,0x0, 0x80, +0x0, 0xb4,0x0, 0xa0,0x0, 0x3c,0x3, 0xe8,0x1, 0x40,0x0, 0x5a,0x0, 0x3c,0x3, 0xe8, +0x0, 0x20,0x2, 0xb0,0x0, 0x0, 0x5, 0x0, 0x0, 0x64,0x0, 0xa0,0x0, 0xa0,0x13,0x88, +0x1, 0x2c,0x0, 0xa0,0x0, 0xa0,0x10,0x0, 0xc, 0x0, 0xa, 0xb, 0x5, 0x5, 0x7, 0x8, +0x6, 0x6, 0xc, 0x64,0xc8,0x7e,0x8, 0x37,0xf3,0x12,0x62,0xdf,0x7e,0x8, 0x37,0xfb, +0x12,0x62,0xdf,0x12,0x62,0xf4,0x12,0x62,0xfb,0x2, 0x62,0xbc,0x7e,0x37,0x37,0xf3, +0xbe,0x34,0x0, 0x0, 0x28,0x18,0x7e,0x73,0x39,0x7, 0xbe,0x70,0x5, 0x50,0xf, 0x7e, +0xb3,0x37,0x31,0x70,0x9, 0x12,0x63,0x2, 0x74,0x1, 0x7a,0xb3,0x37,0x6, 0x22,0xb, +0xa, 0x30,0xe5,0x4e,0xa, 0x2b,0xbd,0x32,0x28,0x4, 0x9d,0x32,0x80,0x2, 0x6d,0x33, +0x1b,0xa, 0x30,0x22,0x7e,0x8, 0x2b,0xb7,0x2, 0x62,0xdf,0x7e,0x8, 0x38,0xe6,0x2, +0x62,0xdf,0x6d,0x33,0x7a,0x37,0x38,0x83,0x22,0xca,0xf8,0x7e,0xa3,0x2a,0x2, 0x7e, +0xb3,0x2a,0x3, 0xbe,0xa0,0x1, 0x38,0x21,0xbe,0xb0,0x1, 0x38,0x1c,0x7e,0x47,0x28, +0x86,0xbe,0x44,0x0, 0x1e,0x28,0x2, 0x80,0x10,0x7e,0xf3,0x2f,0x80,0x4c,0xff,0x68, +0x17,0x7e,0x47,0x2b,0xb7,0x4d,0x44,0x78,0xf, 0x12,0x63,0x2, 0x74,0x1, 0x7a,0xb3, +0x38,0x85,0x7a,0xb3,0x37,0x6, 0x80,0x35,0x4c,0xaa,0x78,0x36,0xb4,0x1, 0x33,0x7e, +0x37,0x2b,0xb7,0x7a,0x37,0x2f,0x82,0x7e,0xb3,0x2f,0x80,0xb4,0x3, 0x1f,0x7e,0x37, +0x2b,0xb7,0xbe,0x34,0x0, 0x0, 0x28,0x15,0x74,0x4, 0x7a,0xb3,0x2f,0x80,0x7e,0x37, +0x2f,0x98,0x7e,0x27,0x2f,0x9a,0x12,0x64,0x1a,0x81,0x13,0x80,0x0, 0x12,0xbd,0xdd, +0x81,0x13,0x7e,0xc7,0x29,0x8, 0x7e,0xd7,0x29,0xa, 0x4c,0xff,0x78,0x19,0x70,0x57, +0xbe,0xa0,0x1, 0x78,0x52,0x7d,0x3c,0x7d,0x2d,0x12,0xbd,0x78,0x12,0x64,0x16,0x74, +0x1, 0x7a,0xb3,0x2f,0x80,0x80,0x40,0xbe,0xf0,0x1, 0x78,0x2e,0x7e,0x27,0x2f,0x88, +0x9e,0x27,0x2f,0x90,0x7e,0x14,0x62,0x8a,0x12,0x64,0xd3,0xbd,0x23,0x38,0x13,0x7e, +0x27,0x2f,0x96,0x9e,0x27,0x2f,0x8e,0x7e,0x14,0x62,0x8c,0x12,0x64,0xd3,0xbd,0x23, +0x28,0x15,0x74,0x3, 0x7a,0xb3,0x2f,0x80,0x80,0x5, 0xbe,0xf0,0x3, 0x78,0x8, 0x7a, +0xc7,0x2f,0x98,0x7a,0xd7,0x2f,0x9a,0x7e,0xb3,0x2f,0x80,0x60,0x26,0x7d,0x3c,0x7d, +0x2d,0x7e,0x17,0x2b,0xbb,0x7e,0x7, 0x2b,0xbd,0x12,0x66,0xce,0xa, 0x2b,0x7e,0x73, +0x2f,0x7f,0xa, 0x37,0xbd,0x32,0x58,0xb, 0x12,0x64,0x16,0x7a,0xc7,0x2b,0xbb,0x7a, +0xd7,0x2b,0xbd,0xda,0xf8,0x22,0x7d,0x3c,0x7d,0x2d,0x7d,0x42,0x7d,0x13,0x7d,0x24, +0x12,0x67,0xca,0x7d,0x31,0x12,0x85,0xfd,0x2, 0x64,0x2b,0x7e,0x3, 0x2f,0xa8,0xbe, +0x0, 0xf0,0x50,0x2, 0x81,0xc4,0x81,0xb9,0x6c,0x99,0x7e,0xb3,0x2f,0x7f,0xbe,0xb0, +0x20,0x50,0x5, 0x4, 0x7a,0xb3,0x2f,0x7f,0x7e,0x1f,0x2b,0xbf,0x7a,0x1f,0x1f,0x34, +0x7e,0x80,0x1, 0x80,0x49,0x74,0x4, 0xac,0xb8,0x49,0x35,0x2b,0xbf,0x49,0x25,0x2b, +0xc1,0x7e,0x17,0x1f,0x34,0x7e,0x7, 0x1f,0x36,0x12,0x66,0xce,0x7c,0x1b,0x7e,0x3, +0x2f,0x7f,0xbc,0x1, 0x38,0x26,0xb, 0x90,0x7e,0x70,0x4, 0xac,0x78,0x2e,0x34,0x2b, +0xbf,0x7e,0x14,0x1f,0x34,0x74,0x4, 0x12,0x1f,0x8c,0x7e,0x34,0x1f,0x34,0x7e,0x30, +0x4, 0xac,0x39,0x2e,0x14,0x2b,0xbf,0x74,0x4, 0x12,0x1f,0x8c,0xb, 0x80,0x7e,0x3, +0x2f,0xa8,0xbc,0x8, 0x38,0xaf,0xa, 0x59,0xb, 0x54,0x7c,0xb, 0x7a,0x3, 0x2f,0xa8, +0x7e,0x3, 0x2f,0x7f,0xbe,0x0, 0x20,0x50,0xb, 0x7e,0x3, 0x2f,0xa8,0xbe,0x0, 0xec, +0x40,0x2, 0x81,0x38,0x22,0x7d,0x34,0x9e,0x34,0x0, 0x40,0x7d,0x2e,0x9d,0x23,0x7e, +0x14,0x61,0x49,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0x30,0x22,0x7d,0xe3,0x9f,0x11,0x7e, +0x14,0x61,0x43,0x12,0x83,0x62,0x90,0x61,0x35,0xe4,0x93,0x70,0x3, 0x7d,0x3e,0x22, +0x90,0x61,0x36,0xe4,0x93,0xb4,0x1, 0x6, 0x7e,0x83,0x2a,0x6f,0x80,0x4, 0x7e,0x83, +0x2a,0x70,0x12,0x87,0xd4,0xbe,0xe4,0x0, 0x3f,0x38,0x1e,0x7e,0x24,0x0, 0x3f,0x9d, +0x2e,0x7e,0x14,0x61,0x47,0x12,0x64,0xd3,0x12,0x66,0x10,0x90,0x61,0x45,0x12,0x66, +0x7, 0x48,0x2, 0x7f,0x10,0x9f,0x1, 0x7f,0x10,0x12,0xc1,0x3a,0xbe,0xa0,0x0, 0x28, +0x32,0x7d,0x14,0x9e,0x14,0x0, 0x3f,0xbd,0x1e,0x38,0x13,0x12,0x66,0xb8,0x40,0xe, +0x12,0x64,0xc5,0x12,0x65,0xfa,0x48,0x32,0x7f,0x10,0x1b,0x1c,0x80,0x2c,0x12,0x66, +0xb8,0x50,0x31,0x7d,0x34,0x9e,0x34,0x0, 0x20,0x12,0x64,0xcb,0x12,0x66,0x10,0x7d, +0x1f,0x80,0x1d,0x4c,0xaa,0x78,0x1d,0x12,0x66,0xb1,0xbd,0x5e,0x38,0x16,0x12,0x64, +0xc5,0x12,0x65,0xfa,0x48,0x4, 0x7f,0x10,0x1b,0x1c,0xa, 0xb, 0x7d,0x1f,0x9d,0x10, +0x6d,0x0, 0x2f,0x10,0xbe,0xe4,0x0, 0x3f,0x28,0x6f,0x12,0x66,0xb1,0xbd,0x5e,0x28, +0x68,0x7d,0xd4,0xb, 0xd4,0x1e,0xd4,0x7d,0x5d,0x1b,0x54,0xbd,0x5e,0x40,0xc, 0x7d, +0x35,0x9d,0x3e,0x6d,0x22,0x7e,0x14,0x61,0x4b,0x80,0xa, 0x7d,0x3e,0x9d,0x3d,0x6d, +0x22,0x7e,0x14,0x61,0x4d,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0x10,0x12,0x1e,0xfc,0x12, +0x66,0x14,0xbd,0x5e,0x7d,0x1f,0x40,0xc, 0x1e,0x14,0x1b,0x14,0x6d,0x0, 0x9f,0x1, +0x7f,0x10,0x80,0x6, 0x1e,0x14,0x6d,0x0, 0x2f,0x10,0x90,0x61,0x45,0x12,0x66,0x7, +0x58,0x4, 0x7f,0x10,0x80,0x13,0x90,0x61,0x46,0xe4,0x93,0xa, 0xb, 0x7d,0x1f,0x9d, +0x10,0x6d,0x0, 0xbf,0x10,0x8, 0x2, 0x7f,0x10,0x22,0xad,0x32,0x6d,0x22,0x7c,0x76, +0x7c,0x65,0x1a,0x24,0x90,0x61,0x46,0xe4,0x93,0xa, 0x1b,0x6d,0x0, 0xbf,0x10,0x22, +0xad,0x32,0x6d,0x22,0x7c,0x76,0x7c,0x65,0x1a,0x24,0x22,0x7e,0x73,0x36,0x69,0x7a, +0x73,0x36,0xdf,0x7e,0x27,0x38,0xd6,0x7e,0x14,0x61,0xc8,0x12,0x64,0xd3,0x1e,0x34, +0xbd,0x32,0x50,0x6, 0x74,0x1, 0x7a,0xb3,0x36,0x69,0x7e,0x14,0x61,0xc8,0x12,0x64, +0xd3,0xbd,0x32,0x50,0x8, 0xe4,0x7a,0xb3,0x36,0x67,0x12,0x67,0x62,0x7e,0x37,0x36, +0x6f,0xbd,0x32,0x50,0x4, 0x7a,0x27,0x36,0x6f,0x12,0xc1,0x12,0x38,0xa, 0x12,0x8f, +0xf3,0x38,0x5, 0x12,0x8f,0xeb,0x28,0x3d,0x12,0x67,0x69,0x7e,0x14,0x61,0xc8,0x12, +0x64,0xd3,0x1e,0x34,0x1e,0x34,0xbd,0x32,0x28,0x21,0x7e,0xb3,0x36,0x67,0x4, 0x7a, +0xb3,0x36,0x67,0x7e,0x73,0x36,0x67,0xbe,0x70,0x32,0x28,0x14,0x74,0x32,0x7a,0xb3, +0x36,0x67,0x12,0xc0,0x95,0x7a,0xb3,0x36,0xdc,0x80,0x5, 0xe4,0x7a,0xb3,0x36,0x67, +0x7d,0x32,0x2, 0xad,0xac,0x2, 0x66,0xa8,0x12,0x67,0xc0,0xe4,0x7a,0xb3,0x36,0x75, +0x22,0x7d,0x54,0x9e,0x54,0x0, 0x3f,0x22,0x7d,0x4, 0x9e,0x4, 0x0, 0x1f,0x7e,0xd4, +0x60,0xd1,0x7e,0xc4,0x0, 0xff,0xb, 0x6a,0x10,0x2d,0x10,0xbd,0x1e,0x22,0x7d,0x51, +0x7d,0x12,0x9d,0x35,0x12,0x21,0x0, 0x7c,0xa7,0x12,0x67,0xeb,0x7c,0xb7,0xbc,0xba, +0x50,0x3, 0x7c,0xba,0x22,0x22,0x7d,0x13,0x7e,0x54,0x62,0x58,0x12,0x67,0x15,0x50, +0x21,0x7e,0x54,0x62,0x5a,0x12,0x67,0x15,0x28,0x18,0x7e,0x14,0x62,0x5c,0x12,0x64, +0xd3,0xbd,0x32,0x50,0xd, 0x7e,0x14,0x62,0x5e,0x12,0x64,0xd3,0xbd,0x32,0x28,0x2, +0xe4,0x22,0x74,0x1, 0x22,0x7e,0x44,0x0, 0xff,0xb, 0x2a,0x30,0xbd,0x31,0x22,0x12, +0x66,0x1b,0x2, 0x67,0x25,0x7e,0xb3,0x36,0x69,0x60,0xf, 0x74,0x1, 0x7a,0xb3,0x36, +0x71,0x7e,0xb3,0x36,0xdf,0x70,0x3, 0x12,0xaf,0x2f,0x7e,0xb3,0x36,0x71,0xb4,0x1, +0xc, 0x74,0x3, 0x12,0x67,0x59,0x12,0x23,0x9e,0x3e,0x34,0x80,0x7, 0xe4,0x12,0x67, +0x59,0x12,0x23,0x9e,0x7a,0x37,0x2a,0x62,0x22,0x7a,0xb3,0x34,0xae,0x7e,0x34,0x61, +0x5b,0x22,0x74,0x2, 0x7a,0xb3,0x36,0x69,0x22,0x7e,0xb3,0x36,0x75,0xb4,0x1, 0x3, +0x2, 0x67,0x62,0x7e,0xb3,0x36,0xdb,0x4, 0x7a,0xb3,0x36,0xdb,0x7e,0xb3,0x36,0x69, +0xb4,0x2, 0x18,0x7e,0xb3,0x36,0xda,0x4, 0x7a,0xb3,0x36,0xda,0xb4,0x1, 0x6, 0x74, +0x1, 0x7a,0xb3,0x36,0xdb,0x74,0x1, 0x7a,0xb3,0x36,0x69,0x7e,0x73,0x36,0xda,0xbe, +0x70,0x3, 0x40,0xf, 0x74,0x1, 0x7a,0xb3,0x36,0x75,0x12,0x67,0x62,0x12,0xaf,0x2f, +0x12,0x67,0xc0,0x7e,0x73,0x36,0xdb,0xbe,0x70,0xa, 0x28,0x3, 0x2, 0x67,0xc0,0x22, +0xe4,0x7a,0xb3,0x36,0xdb,0x7a,0xb3,0x36,0xda,0x22,0x7e,0xa3,0x2f,0xa8,0xbe,0xa0, +0xf0,0x50,0x17,0x74,0x4, 0xa4,0x59,0x35,0x2b,0xbf,0x12,0x67,0xf2,0x59,0x25,0x2b, +0xc1,0x7e,0xb3,0x2f,0xa8,0x4, 0x7a,0xb3,0x2f,0xa8,0x22,0x7d,0x31,0x9d,0x30,0x2, +0x21,0x0, 0x7e,0xa3,0x2f,0xa8,0x74,0x4, 0xa4,0x22,0x7e,0x73,0x28,0x93,0x7a,0x73, +0x28,0x94,0x7e,0x73,0x2a,0x2, 0x7a,0x73,0x2a,0x3, 0xe4,0x7a,0xb3,0x2a,0x6, 0x22, +0x12,0xc0,0x25,0x12,0x63,0x2, 0x7a,0x37,0x39,0x4, 0x12,0x69,0x87,0x12,0x28,0x48, +0x2, 0x68,0x23,0x12,0x69,0x84,0x50,0x4, 0x74,0x19,0x80,0x2, 0x74,0x3, 0x7a,0xb3, +0x34,0x88,0xe4,0x7a,0xb3,0x34,0x89,0x22,0xca,0x79,0x7e,0x13,0x2a,0x2, 0x7e,0x78, +0x29,0xbc,0x12,0x69,0x84,0xe4,0x33,0x7c,0xb, 0x4c,0x0, 0x68,0x8, 0x7e,0x30,0x19, +0x7e,0xa0,0x5, 0x80,0x6, 0x7e,0x30,0x3, 0x7e,0xa0,0x1, 0xa5,0xb9,0x0, 0x5, 0x12, +0x68,0x23,0x21,0x6d,0xbc,0x20,0x50,0x3, 0x12,0x68,0x23,0x6c,0x0, 0x21,0x62,0x7e, +0x70,0x9, 0xac,0x70,0x9, 0x93,0x29,0xc, 0xbe,0x90,0xff,0x78,0x2, 0x21,0x60,0xa, +0x29,0x7f,0x67,0x2d,0xd2,0x7e,0x6b,0x80,0xbe,0x80,0x2, 0x68,0x2, 0x21,0x43,0x12, +0x69,0x7a,0x49,0x33,0x29,0x8, 0x9d,0x32,0x12,0x21,0x0, 0x7d,0xd3,0x7e,0x70,0x4, +0xac,0x79,0x49,0x23,0x35,0x43,0x12,0x69,0x70,0x9d,0x32,0x12,0x21,0x0, 0x7d,0xc3, +0x7e,0x73,0x34,0x88,0xa, 0x27,0xbd,0x2d,0x28,0x53,0xbd,0x2c,0x28,0x4f,0x12,0x69, +0x7a,0x7e,0xf0,0x9, 0xac,0xf0,0x59,0x27,0x29,0x8, 0x7e,0x50,0x4, 0xac,0x59,0x49, +0x22,0x35,0x43,0x7e,0xf0,0x9, 0xac,0xf0,0x59,0x27,0x29,0xa, 0xbe,0x10,0x0, 0x28, +0x2, 0x1b,0x10,0xa5,0xb9,0x0, 0x79,0x7e,0xb3,0x34,0x89,0x4, 0x7a,0xb3,0x34,0x89, +0x7e,0x63,0x34,0x89,0xbe,0x60,0x32,0x40,0x67,0xe4,0x7a,0xb3,0x34,0x89,0x7e,0xb3, +0x34,0x88,0xbc,0xb3,0x50,0x5a,0x4, 0x7a,0xb3,0x34,0x88,0x80,0x53,0x7e,0x50,0x9, +0xac,0x50,0x49,0xb2,0x29,0x8, 0x7e,0xf0,0x4, 0xac,0xf9,0x59,0xb7,0x35,0x41,0x49, +0x22,0x29,0xa, 0x59,0x27,0x35,0x43,0xbc,0x73,0x28,0x6, 0x7a,0xa3,0x34,0x88,0x80, +0xb, 0xbc,0x7a,0x28,0x7, 0x7c,0xb7,0x14,0x7a,0xb3,0x34,0x88,0xe4,0x7a,0xb3,0x34, +0x89,0x80,0x1d,0x4c,0x88,0x78,0x19,0x7e,0x70,0x9, 0xac,0x70,0x49,0x33,0x29,0x8, +0x7e,0x50,0x4, 0xac,0x59,0x59,0x32,0x35,0x41,0x12,0x69,0x70,0x59,0x32,0x35,0x43, +0xb, 0x0, 0x90,0x60,0x99,0xe4,0x93,0xbc,0xb0,0x28,0x2, 0x1, 0x6f,0xda,0x79,0x22, +0x7e,0x70,0x9, 0xac,0x70,0x49,0x33,0x29,0xa, 0x22,0x7e,0x50,0x4, 0xac,0x59,0x49, +0x22,0x35,0x41,0x22,0xa2,0x8, 0x22,0x7e,0x34,0xd, 0xac,0x12,0x26,0x5b,0x12,0x7a, +0x2d,0x12,0x69,0xab,0x2, 0x69,0x97,0x30,0xf, 0x10,0x12,0x6e,0x8f,0x50,0x3, 0x12, +0x6f,0x6e,0x12,0x6a,0x50,0x12,0x69,0xd1,0xc2,0xf, 0x22,0x7e,0xb3,0x2b,0x1e,0x70, +0x1f,0x12,0x26,0x57,0x12,0x2f,0xf4,0x50,0xfb,0x12,0x6a,0x50,0x12,0x88,0x17,0x20, +0xf, 0x3, 0x12,0x69,0xd1,0x74,0x2, 0x7a,0xb3,0x2b,0x1e,0xe4,0x7a,0xb3,0x16,0x91, +0x22,0xca,0x3b,0x7e,0xb3,0x2b,0xf, 0x7a,0xb3,0x1f,0x33,0x7e,0xf3,0x2b,0x62,0x12, +0x87,0x56,0x7c,0xdb,0xbe,0xd0,0xff,0x68,0x64,0x6c,0xcc,0x12,0xc0,0xcc,0xf5,0x2a, +0x7e,0x73,0x2b,0xf, 0xbe,0x71,0x2a,0x68,0x36,0x7e,0x70,0x4, 0xac,0x7d,0xa, 0x2c, +0x12,0x91,0x67,0x7c,0xeb,0xbe,0xe0,0x2, 0x38,0x43,0xa, 0xe, 0x7e,0x14,0x2, 0xe0, +0xad,0x10,0x2e,0x14,0x16,0x93,0x6d,0x0, 0x7a,0xd, 0x2b,0x7e,0x70,0x1d,0xac,0x7e, +0x2e,0x34,0x37,0x44,0x6d,0x22,0x7a,0x1f,0x37,0x40,0x7c,0xbc,0x12,0x6c,0x20,0xb, +0xc0,0xbe,0xc0,0x4, 0x40,0xb5,0x7e,0x73,0x2b,0x62,0xbc,0x7f,0x68,0x6, 0x7a,0xf3, +0x2b,0x62,0xd2,0xc, 0xd2,0x3, 0x7e,0xb3,0x1f,0x33,0x12,0x6d,0x13,0xda,0x3b,0x22, +0x7e,0xf, 0x13,0x8a,0x7e,0x18,0x8, 0xa, 0xca,0x3b,0x7a,0x1d,0x2a,0x7f,0x30,0x12, +0xc0,0x1b,0x7a,0x55,0x32,0x7e,0xb3,0x2b,0x1d,0xf5,0x2f,0xe4,0x7a,0xb3,0x2b,0x1d, +0x7f,0x3, 0x7e,0x1d,0x2a,0x12,0x79,0x7a,0x12,0xc0,0x9f,0x12,0xc0,0x42,0x75,0x2e, +0x0, 0x12,0x4e,0x6e,0x30,0xb, 0xfd,0x74,0x1, 0x12,0xc1,0x22,0x7e,0x14,0x40,0x0, +0x7d,0x21,0x7d,0x7, 0x12,0x6a,0xd4,0x12,0xb3,0x89,0x6d,0x33,0x80,0x19,0x7e,0x35, +0x30,0x3e,0x34,0x7f,0x3, 0x2d,0x13,0xb, 0xa, 0x20,0x7e,0xd, 0x2a,0x2d,0x13,0x12, +0x7b,0x20,0x7e,0x35,0x30,0xb, 0x34,0x7a,0x35,0x30,0x7e,0x35,0x32,0xbe,0x35,0x30, +0x38,0xdc,0x5, 0x2e,0xe5,0x2e,0xbe,0xb0,0x1, 0x40,0xb6,0xe5,0x2f,0x7a,0xb3,0x2b, +0x1d,0xda,0x3b,0x22,0x7e,0xb3,0x2a,0x6d,0xca,0x3b,0x7c,0xdb,0x7a,0x5, 0x39,0x7d, +0x71,0x7a,0x25,0x37,0x7a,0x35,0x35,0x12,0x6e,0x8f,0x50,0x7c,0x6c,0xcc,0x80,0x11, +0x7e,0x73,0x2a,0x6e,0x12,0x6b,0xff,0x12,0x6b,0xe5,0x7e,0x34,0x34,0x0, 0x12,0x6c, +0x8, 0x12,0x6d,0x34,0x38,0xea,0x6c,0xcc,0x80,0x58,0x7e,0xa3,0x2a,0x6e,0x7c,0x7a, +0x12,0x6b,0xff,0x75,0x3b,0x0, 0x80,0x27,0x7e,0xb3,0x37,0xb1,0xbe,0xb1,0x3b,0x7e, +0x70,0x4, 0x28,0x8, 0xac,0x7c,0x49,0x43,0x3, 0x60,0x80,0x6, 0xac,0x7c,0x49,0x43, +0x3, 0x62,0x7e,0x71,0x3b,0x74,0x2, 0xac,0x7b,0x59,0x43,0x34,0x50,0x5, 0x3b,0x7e, +0xb3,0x2a,0x70,0xbe,0xb1,0x3b,0x38,0xd0,0x12,0xc0,0xba,0x68,0xb, 0x7e,0x34,0x10, +0x0, 0x74,0x2, 0xa4,0x59,0x35,0x34,0x4e,0x12,0x6b,0xe5,0x7e,0x34,0x34,0x50,0x12, +0x6c,0x8, 0xbc,0xdc,0x38,0xa4,0x80,0x2c,0x7a,0xd3,0x25,0xb6,0x7e,0x73,0x2a,0x70, +0x7a,0x73,0x25,0xb7,0xe4,0x7a,0xb3,0x25,0xb9,0x74,0x6, 0x7a,0xb3,0x25,0xb8,0x7a, +0x77,0x25,0xba,0x7a,0x77,0x25,0xbe,0x7e,0x8, 0x25,0xb6,0x7e,0x73,0x2b,0x1f,0xa, +0x37,0x12,0xe, 0x37,0x7d,0x37,0x12,0x7f,0x78,0x7e,0x35,0x39,0x7a,0x37,0x25,0xbe, +0xe4,0x7a,0xb3,0x25,0xb8,0x12,0x6b,0xf6,0x7a,0xd3,0x25,0xb6,0x7e,0xb3,0x2b,0x1d, +0x70,0xf, 0xe4,0x7a,0xb3,0x25,0xb9,0x7a,0x77,0x25,0xba,0x7e,0x34,0x0, 0x20,0x80, +0x16,0x74,0x1, 0x7a,0xb3,0x25,0xb9,0x7e,0x35,0x35,0x7a,0x37,0x25,0xba,0x7e,0x35, +0x37,0x7a,0x37,0x25,0xbc,0x6d,0x33,0x7a,0x37,0x25,0xc0,0x7e,0x8, 0x25,0xb6,0x12, +0xd, 0x7, 0xda,0x3b,0x22,0x74,0xc, 0x7a,0xb3,0x25,0xb8,0x74,0x1, 0x7a,0xb3,0x25, +0xb6,0xe4,0x7a,0xb3,0x25,0xb9,0x7e,0x73,0x2a,0x6e,0x7a,0x73,0x25,0xb7,0x22,0xac, +0x7c,0x3e,0x34,0x7d,0xf7,0x2d,0xf3,0x22,0x7a,0x37,0x25,0xba,0x7d,0x3f,0x7a,0x37, +0x25,0xbc,0x7a,0x37,0x25,0xbe,0x7e,0x8, 0x25,0xb6,0x12,0x7, 0x9b,0xb, 0xc0,0x22, +0xca,0x3b,0x7a,0xd, 0x2f,0x7c,0xcb,0x7e,0xb3,0x2b,0x1d,0xf5,0x33,0x7e,0xb3,0x2b, +0xf, 0xf5,0x34,0x7e,0xd3,0x2b,0x14,0x7e,0xe3,0x2b,0x1f,0x7e,0xf3,0x2b,0x20,0x7e, +0x34,0x0, 0x38,0xca,0x39,0x7e,0x18,0x34,0x0, 0x7e,0x8, 0x24,0xf2,0x12,0x20,0xb9, +0x1b,0xfd,0x7e,0x34,0x0, 0x8c,0xca,0x39,0x7e,0x18,0x3, 0x60,0x7e,0x8, 0x25,0x2a, +0x12,0x20,0xb9,0x1b,0xfd,0x7c,0xbc,0x12,0xb3,0x54,0x74,0x1, 0x7a,0xb3,0x2b,0x1d, +0x74,0x5, 0xac,0xbc,0x12,0xc0,0x39,0x74,0x5, 0xac,0xbc,0x12,0x6f,0xff,0x74,0x5, +0xac,0xbc,0x12,0xc0,0x30,0x74,0x5, 0xac,0xbc,0x9, 0x75,0x26,0x37,0xbe,0x73,0x2b, +0x62,0x68,0x6, 0x7a,0x73,0x2b,0x62,0xd2,0xc, 0xc2,0x3, 0x12,0xc0,0xcc,0x12,0x6d, +0x13,0x12,0x4e,0x67,0x30,0xb, 0xfd,0x74,0x1, 0x12,0x0, 0xe, 0x7e,0x14,0x40,0x0, +0x7d,0x31,0x7e,0x2f,0x13,0x86,0x7d,0x25,0x7e,0x4, 0xd, 0xc8,0x12,0x6a,0xd4,0x12, +0xc0,0x1b,0x7a,0x55,0x35,0x7e,0xd, 0x2f,0x7e,0x18,0xd, 0xc8,0x12,0xa8,0xef,0x12, +0xa9,0xc9,0xe5,0x33,0x7a,0xb3,0x2b,0x1d,0xe5,0x34,0x7a,0xb3,0x2b,0xf, 0x7a,0xd3, +0x2b,0x14,0x7a,0xe3,0x2b,0x1f,0x7a,0xf3,0x2b,0x20,0x7e,0x34,0x0, 0x38,0xca,0x39, +0x7e,0x18,0x24,0xf2,0x7e,0x8, 0x34,0x0, 0x12,0x20,0xb9,0x1b,0xfd,0x7e,0x34,0x0, +0x8c,0xca,0x39,0x7e,0x18,0x25,0x2a,0x7e,0x8, 0x3, 0x60,0x12,0x20,0xb9,0x1b,0xfd, +0xda,0x3b,0x22,0x7a,0xb3,0x2b,0xf, 0x12,0x6e,0x29,0x30,0xc, 0xa, 0x12,0xaf,0x1d, +0x30,0x3, 0x4, 0xe4,0x12,0xa, 0x66,0x30,0x3, 0x9, 0x12,0xae,0xd2,0x12,0x8d,0xef, +0x2, 0x8c,0x90,0x22,0x7e,0x73,0x2a,0x6f,0xbc,0x7c,0x22,0xca,0x3b,0x7f,0x61,0x7f, +0x50,0x7e,0x14,0x22,0xe2,0x7e,0x4, 0x0, 0xff,0x69,0x30,0x0, 0x2, 0xb, 0xa, 0x20, +0x7a,0x1d,0x2c,0x7e,0x73,0x2a,0x6d,0xa, 0x37,0x3e,0x34,0xca,0x39,0x7f,0x16,0x7f, +0x5, 0x12,0x20,0xb9,0x1b,0xfd,0x6c,0xdd,0x12,0xa7,0x10,0x7a,0xb3,0x1f,0x34,0x6c, +0xcc,0x80,0x4f,0x12,0x6e,0x19,0x40,0x48,0x12,0x6e,0xf, 0x50,0x43,0x74,0x2, 0xac, +0xbc,0x7f,0x16,0x2d,0x35,0xb, 0x1a,0x10,0x7d,0x3f,0x12,0x21,0x0, 0x7d,0x3, 0x7d, +0x31,0x12,0x21,0x0, 0xbd,0x30,0x58,0x2, 0x7d,0xf1,0xbe,0x15,0x2a,0x8, 0x5, 0x7e, +0x15,0x2a,0x80,0xb, 0x6d,0x0, 0x9e,0x5, 0x2a,0xbd,0x1, 0x8, 0x2, 0x7d,0x10,0x7d, +0x31,0x1a,0x26,0x1a,0x24,0x2f,0x41,0x7e,0xb3,0x1f,0x34,0x4, 0x7a,0xb3,0x1f,0x34, +0xb, 0xc0,0x12,0x6d,0x34,0x38,0xac,0x7e,0x73,0x1f,0x34,0x4c,0x77,0x68,0x34,0x12, +0xa7,0x2d,0x8, 0x2, 0x7d,0x7f,0xbe,0x75,0x2a,0x8, 0x5, 0x7e,0x75,0x2a,0x80,0xb, +0x6d,0xee,0x9e,0xe5,0x2a,0xbd,0xe7,0x8, 0x2, 0x7d,0x7e,0x6c,0xcc,0x80,0xf, 0x12, +0x6e,0x19,0x40,0x8, 0x12,0x6e,0xf, 0x50,0x3, 0x12,0xa7,0x18,0xb, 0xc0,0x12,0x6d, +0x34,0x38,0xec,0xb, 0xd0,0xbe,0xd0,0x3, 0x50,0x2, 0xa1,0x68,0xda,0x3b,0x22,0x7c, +0x1d,0x2e,0x10,0x2d,0xa5,0xe7,0xbc,0xab,0x22,0xa, 0xec,0x9, 0xae,0x2a,0xb9,0x7c, +0x1d,0x2e,0x10,0x2c,0xa5,0xe7,0xbc,0xab,0x22,0x12,0x6e,0xa0,0x7a,0x37,0x2b,0x1b, +0x22,0x7e,0xa3,0x0, 0x4f,0xbe,0xa0,0xff,0x68,0x48,0xbe,0xa3,0x3, 0xec,0x68,0x42, +0x74,0x5, 0xa4,0x12,0xc0,0xc3,0x12,0x6e,0x83,0x12,0xc0,0x39,0x12,0x6e,0x83,0x12, +0xc0,0x30,0x12,0x6e,0x8f,0x50,0x9, 0x7e,0xb3,0x0, 0x4f,0x12,0xb3,0x54,0x80,0x6, +0x12,0x6e,0x83,0x12,0x6f,0xff,0x12,0x6e,0x29,0x12,0x6f,0xf8,0x7e,0x73,0x2b,0x14, +0xa, 0x37,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x1a,0x7e,0x73,0x0, 0x4f,0x7a,0x73, +0x3, 0xec,0x22,0x7e,0xa3,0x0, 0x4f,0x74,0x5, 0xa4,0x22,0x7a,0xb3,0x2b,0x20,0x7e, +0xb3,0x37,0x8, 0xb4,0x3, 0x8, 0x7e,0xb3,0x37,0xb2,0x70,0x2, 0xc3,0x22,0xd3,0x22, +0x7e,0x23,0x2b,0xf, 0x7e,0x33,0x37,0xcd,0x7e,0x34,0x60,0xd6,0x7e,0x24,0x0, 0xff, +0xb, 0x1a,0x0, 0xac,0x23,0x2d,0x10,0xbe,0x14,0x0, 0xa, 0x50,0x4, 0x7e,0x14,0x0, +0xa, 0x7e,0x63,0x2b,0x10,0xbe,0x14,0xf, 0x3c,0x40,0x4, 0x7e,0x14,0xf, 0x3c,0xbe, +0x14,0x7, 0x8, 0x40,0x3, 0xe4,0x80,0x21,0xbe,0x14,0x3, 0x84,0x40,0x16,0x90,0x61, +0x1b,0xe4,0x93,0x7c,0x7b,0xbe,0x70,0x1, 0x28,0x4, 0x74,0x1, 0x80,0xb, 0x7a,0x73, +0x2b,0x10,0x80,0x9, 0x90,0x61,0x1b,0xe4,0x93,0x7a,0xb3,0x2b,0x10,0x7e,0x73,0x2b, +0x10,0xbc,0x76,0x68,0x2, 0xd2,0xc, 0x7e,0x24,0x1, 0xf4,0x7d,0x31,0x8d,0x32,0x7c, +0x17,0xbe,0x10,0x7, 0x28,0x3, 0x7e,0x10,0x7, 0x7e,0x1f,0x38,0xc0,0x69,0x51,0x0, +0x86,0x54,0x1f,0xa, 0x1, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x2d, +0x5, 0x79,0x1, 0x0, 0x86,0x6d,0x0, 0x7e,0x34,0xb8,0x0, 0x7e,0x24,0x0, 0xb, 0x2, +0x1f,0x58,0x7e,0xb, 0x70,0x7a,0x73,0x2b,0xf, 0x29,0x70,0x0, 0x4, 0x7a,0x73,0x2b, +0x62,0x29,0x70,0x0, 0x1, 0x7a,0x73,0x2b,0x14,0x29,0x70,0x0, 0x3, 0x7a,0x73,0x2b, +0x20,0x12,0x6e,0x29,0x12,0x6f,0xf8,0xd2,0x3, 0xc2,0x4, 0x2, 0x48,0xf4,0xca,0xf8, +0x6c,0xff,0x80,0x34,0x7e,0x73,0x0, 0x4f,0xbc,0x7f,0x68,0x2a,0x7e,0x30,0x5, 0xac, +0x3f,0x12,0x6f,0xea,0xca,0x39,0x7e,0x30,0x38,0xac,0x3f,0x12,0xc0,0x76,0x12,0x20, +0xb9,0x1b,0xfd,0x7e,0x34,0x0, 0x8c,0xca,0x39,0x7e,0x30,0x8c,0xac,0x3f,0x12,0xc0, +0x6b,0x12,0x20,0xb9,0x1b,0xfd,0xb, 0xf0,0x90,0x61,0xc5,0xe4,0x93,0xbc,0xbf,0x38, +0xc3,0x7e,0x23,0x0, 0x4f,0x7e,0x30,0x5, 0xac,0x23,0x12,0x6f,0xea,0xca,0x39,0x7e, +0x23,0x0, 0x4f,0x7e,0x30,0x38,0xac,0x23,0x12,0xc0,0x76,0x12,0x20,0xb9,0x1b,0xfd, +0x7e,0x34,0x0, 0x8c,0xca,0x39,0x7e,0x23,0x0, 0x4f,0x7e,0x30,0x8c,0xac,0x23,0x12, +0xc0,0x6b,0x12,0x20,0xb9,0x1b,0xfd,0xda,0xf8,0x22,0x2e,0x14,0x26,0x33,0x6d,0x0, +0x12,0x6f,0x42,0x7e,0x34,0x0, 0x38,0x22,0x7e,0x8, 0x2a,0x6d,0x2, 0x3, 0x8b,0x9, +0x75,0x26,0x35,0x7a,0x73,0x2b,0x1f,0x22,0x7e,0x37,0x3, 0xed,0xb, 0x34,0x7a,0x37, +0x3, 0xed,0x7e,0x37,0x3, 0xef,0xbe,0x37,0x3, 0xed,0x28,0x3, 0x2, 0x70,0x23,0x22, +0x2, 0x70,0x8, 0xe5,0x9a,0x60,0x5, 0xd2,0x9c,0xa9,0xd6,0xdf,0x22,0xca,0x7b,0xca, +0x6b,0xca,0x5b,0xca,0x4b,0xca,0x2b,0xca,0x1b,0xca,0xb, 0xc0,0xd0,0xc0,0x83,0xc0, +0x82,0x12,0x70,0x20,0xd0,0x82,0xd0,0x83,0xd0,0xd0,0xda,0xb, 0xda,0x1b,0xda,0x2b, +0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda,0x7b,0x32,0x7e,0x34,0x0, 0x4, 0xca,0x39,0x7e, +0x34,0x61,0x2d,0x7e,0x24,0x0, 0xff,0x7e,0x8, 0x2b,0x70,0x12,0x20,0xb9,0x1b,0xfd, +0x7e,0x34,0x2a,0xe, 0x7a,0x37,0x2b,0x76,0xe4,0x7a,0xb3,0x2b,0x74,0x7a,0xb3,0x2b, +0x75,0x7e,0x34,0x0, 0x4, 0xca,0x39,0x12,0x79,0x25,0x7e,0x8, 0x25,0xee,0x12,0x20, +0xb9,0x1b,0xfd,0x7e,0x34,0x2b,0x78,0x7a,0x37,0x25,0xf4,0xe4,0x7a,0xb3,0x25,0xf2, +0x74,0x1, 0x7a,0xb3,0x25,0xf3,0x22,0xca,0xd8,0xca,0x79,0x90,0x60,0x50,0xe4,0x93, +0x7c,0xdb,0x90,0x60,0x51,0xe4,0x93,0x7c,0xeb,0x7e,0x73,0x2a,0x74,0xbc,0x7e,0x28, +0x4, 0x7c,0xf7,0x80,0x2, 0x7c,0xfe,0x7a,0xd3,0x2a,0x6d,0x7a,0xe3,0x2a,0x6e,0x7a, +0xd3,0x2a,0x71,0x7a,0xe3,0x2a,0x72,0x7a,0xd3,0x2a,0x73,0x7a,0xe3,0x2a,0x74,0x90, +0x60,0xa8,0xe4,0x93,0x7c,0xab,0x7a,0xa3,0x2a,0x77,0x90,0x60,0xa9,0xe4,0x93,0xa, +0x2b,0xa, 0x3d,0x9d,0x32,0x7c,0xb7,0x7a,0xb3,0x2a,0x6f,0xa, 0x2a,0xa, 0x3e,0x9d, +0x32,0x7a,0x73,0x2a,0x70,0x90,0x60,0x91,0xe4,0x93,0x7a,0xb3,0x2a,0x78,0x90,0x60, +0x94,0xe4,0x93,0x7a,0xb3,0x2a,0x79,0xa, 0x3d,0xca,0x39,0x7e,0x34,0x60,0x52,0x7e, +0x24,0x0, 0xff,0x7e,0x8, 0x2a,0x7a,0x12,0x20,0xb9,0x1b,0xfd,0xa, 0x3f,0xca,0x39, +0x7e,0x34,0x60,0x75,0x7e,0x24,0x0, 0xff,0x7e,0x8, 0x2a,0x9d,0x12,0x20,0xb9,0x1b, +0xfd,0x7e,0x34,0x0, 0x23,0xca,0x39,0x7e,0x34,0x60,0xd8,0x7e,0x24,0x0, 0xff,0x7e, +0x8, 0x2b,0x21,0x12,0x20,0xb9,0x1b,0xfd,0x12,0x72,0x92,0x12,0x79,0x31,0x90,0x60, +0xaa,0xe4,0x93,0x70,0x8, 0x7a,0xd3,0x2a,0x75,0x7a,0xe3,0x2a,0x76,0x12,0x70,0x59, +0x74,0x1, 0x12,0x3d,0xac,0xe4,0x7a,0xb3,0x2b,0x1, 0x7a,0xb3,0x2b,0x2, 0x12,0x73, +0xf1,0x7a,0x37,0x2b,0xd, 0x74,0x3, 0x7a,0xb3,0x2b,0x3, 0xe4,0x7a,0xb3,0x2b,0x4, +0x74,0x2, 0x7a,0xb3,0x2b,0x5, 0x7e,0x34,0x61,0x59,0x12,0x23,0x9e,0x7a,0x37,0x2b, +0x7, 0x74,0x4, 0x7a,0xb3,0x2b,0x6, 0x7e,0x34,0x0, 0xf, 0x7a,0x37,0x2b,0x9, 0x7e, +0x34,0x20,0x5f,0x7a,0x37,0x2b,0xb, 0x90,0x61,0x1a,0xe4,0x93,0x7a,0xb3,0x2b,0x62, +0x90,0x61,0x1b,0xe4,0x93,0x7a,0xb3,0x2b,0x10,0x90,0x61,0x1c,0xe4,0x93,0x7a,0xb3, +0x2b,0x11,0x74,0x4, 0x7a,0xb3,0x2b,0x13,0x90,0x60,0xd5,0xe4,0x93,0x7a,0xb3,0x2b, +0xf, 0x12,0x6e,0x29,0xe4,0x7a,0xb3,0x2b,0x1d,0x7a,0xb3,0x2b,0x1e,0x7e,0x34,0x61, +0x22,0x12,0x23,0x9e,0x7a,0x37,0x2b,0x19,0x90,0x60,0xd3,0x93,0x7a,0xb3,0x2b,0x12, +0x90,0x61,0x24,0xe4,0x93,0x7a,0xb3,0x2b,0x20,0x90,0x61,0x19,0xe4,0x93,0x7a,0xb3, +0x2b,0x1f,0x7e,0x34,0x61,0x1e,0x12,0x23,0x9e,0x7a,0x37,0x2b,0x15,0x7e,0x34,0x61, +0x20,0x12,0x23,0x9e,0x7a,0x37,0x2b,0x17,0x90,0x61,0x1d,0xe4,0x93,0x7a,0xb3,0x2b, +0x14,0x7e,0x34,0x0, 0x30,0x7a,0x37,0x2b,0x6a,0x74,0x5, 0x7a,0xb3,0x2b,0x67,0x7e, +0x34,0x0, 0x5, 0x7a,0x37,0x2b,0x68,0xe4,0x7a,0xb3,0x2b,0x66,0x7e,0x34,0x4, 0x6d, +0x7a,0x37,0x2b,0x6c,0x74,0x1, 0x7a,0xb3,0x2b,0x63,0x74,0x6, 0x7a,0xb3,0x2b,0x64, +0xe4,0x7a,0xb3,0x2b,0x65,0x74,0x1, 0x7a,0xb3,0x2b,0x60,0xe4,0x7a,0xb3,0x2b,0x61, +0x7e,0x34,0x20,0x5b,0x7a,0x37,0x2b,0x6e,0xa, 0x3e,0xca,0x39,0x7e,0x34,0x60,0xfb, +0x7e,0x24,0x0, 0xff,0x7e,0x8, 0x2b,0x44,0x12,0x20,0xb9,0x1b,0xfd,0xda,0x79,0xda, +0xd8,0x22,0x12,0xc0,0xd5,0x12,0x72,0xf4,0x90,0x60,0x50,0xe4,0x93,0xa, 0x3b,0x7d, +0x13,0x2e,0x14,0x2a,0x7a,0x6d,0x0, 0x9, 0xb3,0x2a,0x79,0x12,0x72,0xdb,0xa, 0x3b, +0x7d,0x13,0x2e,0x14,0x2b,0x21,0x6d,0x0, 0x9, 0xb3,0x2b,0x20,0x12,0x72,0xdb,0xa, +0x1b,0x2e,0x14,0x2a,0x7c,0x12,0x72,0xe8,0xe5,0x25,0x12,0x72,0xdf,0xa, 0x1b,0x2e, +0x14,0x2b,0x23,0x12,0x72,0xe8,0xe5,0x24,0x2, 0x20,0xde,0x7e,0x34,0x0, 0x2, 0x12, +0x20,0xde,0x90,0x60,0x50,0xe4,0x93,0x22,0x6d,0x0, 0x90,0x60,0x91,0xe4,0x93,0xa, +0x3b,0x1b,0x35,0x22,0x6c,0xaa,0x6c,0x99,0x80,0xc, 0xa, 0xf9,0x9, 0xbf,0x2a,0x7a, +0xbc,0xba,0x68,0x7, 0xb, 0x90,0x12,0x73,0x20,0x38,0xef,0x12,0x73,0x20,0x68,0x7, +0xb, 0xa0,0xbe,0xa0,0x23,0x40,0xdf,0x7a,0xb, 0xa0,0x74,0x6e,0x7a,0x1b,0xb0,0x22, +0x90,0x60,0x50,0xe4,0x93,0xbc,0xb9,0x22,0x12,0x77,0xfd,0x12,0x70,0xa7,0x12,0x0, +0xa, 0x12,0x3f,0xf2,0x7e,0x18,0x4, 0x0, 0x7a,0x1f,0x6, 0xf8,0x7e,0xf, 0x6, 0xf8, +0x7e,0x1f,0x6, 0xf4,0x12,0x79,0x9d,0x7e,0x18,0x8, 0xa, 0x7a,0x1f,0x13,0x86,0x7e, +0x18,0xd, 0xc8,0x7a,0x1f,0x13,0x8a,0x7e,0xf, 0x13,0x8a,0x7e,0x1f,0x13,0x86,0x12, +0x79,0x7a,0x12,0x79,0x2e,0x12,0x25,0x45,0x12,0x73,0xa7,0x12,0x73,0x7f,0x2, 0x73, +0x71,0xe4,0x7a,0xb3,0x34,0x38,0x7a,0xb3,0x34,0x39,0x7a,0xb3,0x34,0x3a,0x22,0x12, +0x73,0xe5,0x7e,0x24,0x0, 0x3, 0xad,0x32,0x7e,0x8, 0x28,0xae,0x74,0xff,0x12,0x20, +0xde,0x12,0x9f,0xe3,0x7e,0x8, 0x29,0xbc,0x12,0x5e,0x61,0x7e,0x8, 0x2a,0x2, 0x7e, +0x34,0x0, 0xb, 0xe4,0x2, 0x20,0xde,0x7e,0x8, 0x26,0x5b,0x7e,0x34,0x2, 0x3a,0xe4, +0x12,0x20,0xde,0x90,0x60,0x9c,0x93,0xa, 0x3b,0x3e,0x34,0x7e,0x8, 0x26,0x8c,0x74, +0xff,0x12,0x20,0xde,0x90,0x60,0x9c,0xe4,0x93,0xa, 0x3b,0x3e,0x34,0x7e,0x8, 0x26, +0xb4,0x74,0xff,0x12,0x20,0xde,0x90,0x60,0x9a,0x12,0x73,0xe8,0x7e,0x8, 0x27,0x76, +0x74,0xff,0x2, 0x20,0xde,0x90,0x60,0x99,0xe4,0x93,0x7c,0x7b,0x74,0x9, 0xac,0x7b, +0x22,0x6d,0x33,0x6c,0xaa,0x80,0x14,0xa, 0x2a,0x9, 0xb2,0x2a,0xdc,0x54,0x1, 0x78, +0x5, 0x4e,0x70,0x1, 0x80,0x3, 0x4e,0x70,0x10,0xb, 0xa0,0x7e,0x53,0x2a,0x74,0xbc, +0x5a,0x38,0xe4,0x6c,0xaa,0x80,0x1f,0xa, 0x2a,0x9, 0xb2,0x2a,0xb9,0xbe,0xb0,0xd, +0x38,0x5, 0x4e,0x70,0xc0,0x80,0xd, 0xbe,0xb0,0x1b,0x38,0x5, 0x4e,0x60,0x8, 0x80, +0x3, 0x4e,0x60,0x50,0xb, 0xa0,0x12,0x74,0x3c,0x38,0xdc,0x22,0x7e,0xb3,0x2a,0x73, +0xbc,0xba,0x22,0xca,0x3b,0x7e,0xb4,0x7f,0xff,0x7d,0xab,0x7d,0x8b,0x6d,0x22,0x7d, +0x32,0x7d,0x9b,0x75,0x24,0x0, 0x6c,0x99,0x7e,0x78,0x4, 0xfc,0x7e,0x8, 0x5, 0x7a, +0xe4,0x7a,0xb3,0x8, 0x8, 0x7a,0xb3,0x8, 0x9, 0x7a,0xb3,0x26,0xf6,0x7a,0xb3,0x26, +0xf8,0x7a,0xb3,0x26,0xf7,0x7a,0xb3,0x26,0xf9,0x6c,0xaa,0x80,0x5f,0x12,0x75,0xb2, +0xb, 0x6a,0xc0,0xbd,0xca,0x58,0x2, 0x7d,0xac,0xbd,0xc3,0x8, 0x2, 0x7d,0x3c,0x2d, +0x71,0x7d,0x60,0xb, 0x3a,0xd0,0xbd,0xd9,0x58,0x2, 0x7d,0x9d,0x7e,0x67,0x2a,0x53, +0x7e,0x74,0x0, 0x3, 0xad,0x76,0xbd,0xc7,0x8, 0x2, 0x5, 0x24,0x12,0x75,0x9f,0xb, +0x3a,0xd0,0xbd,0xcd,0x8, 0xb, 0x7e,0xb3,0x26,0xf7,0x4, 0x7a,0xb3,0x26,0xf7,0x80, +0x19,0x12,0x75,0xa8,0xb, 0x3a,0xc0,0x6e,0xd4,0xff,0xff,0xb, 0xd4,0xbd,0xcd,0x58, +0x9, 0x7e,0xb3,0x26,0xf9,0x4, 0x7a,0xb3,0x26,0xf9,0xb, 0xa0,0x7e,0xb3,0x2a,0x74, +0xbc,0xba,0x38,0x99,0x7a,0xa7,0x7, 0xfe,0x7a,0x37,0x8, 0x2, 0xe5,0x24,0x7a,0xb3, +0x8, 0x9, 0x7a,0x97,0x8, 0x6, 0x12,0x75,0x97,0x2d,0xf5,0x6c,0xaa,0x80,0x50,0x12, +0x75,0xb2,0xb, 0x6a,0xd0,0xbd,0xd8,0x58,0x2, 0x7d,0x8d,0xbd,0xd2,0x8, 0x2, 0x7d, +0x2d,0x7e,0x67,0x2a,0x51,0x7e,0x74,0x0, 0x3, 0xad,0x76,0xbd,0xd7,0x8, 0x2, 0xb, +0x90,0x12,0x75,0x9f,0xb, 0x3a,0xc0,0xbd,0xdc,0x8, 0xb, 0x7e,0xb3,0x26,0xf6,0x4, +0x7a,0xb3,0x26,0xf6,0x80,0x17,0x12,0x75,0xa8,0xb, 0x3a,0xd0,0x6d,0x99,0x9d,0x9c, +0xbd,0xd9,0x58,0x9, 0x7e,0xb3,0x26,0xf8,0x4, 0x7a,0xb3,0x26,0xf8,0xb, 0xa0,0x12, +0x74,0x3c,0x38,0xab,0x7a,0x87,0x7, 0xfc,0x7a,0x27,0x8, 0x0, 0x7a,0x93,0x8, 0x8, +0x12,0x75,0x97,0x2d,0x15,0x6c,0xaa,0x80,0xe, 0x12,0xa5,0xe4,0xb, 0x7a,0x90,0xbd, +0x9b,0x58,0x2, 0x7d,0xb9,0xb, 0xa0,0x12,0x74,0x3c,0x38,0xed,0x7a,0xb7,0x8, 0x4, +0xbd,0x8a,0x58,0x2, 0x7d,0xa8,0x7a,0xa7,0x7, 0xf8,0xbd,0x32,0x58,0x2, 0x7d,0x32, +0x7a,0x37,0x7, 0xfa,0xda,0x3b,0x22,0x7e,0xa3,0x2a,0x74,0x74,0x2, 0xa4,0x22,0x7e, +0x74,0x62,0x10,0x7e,0x64,0x0, 0xff,0x22,0x7e,0xf0,0x2, 0xac,0xfa,0x2d,0x7f,0x7d, +0x6e,0x22,0x7e,0xf0,0x2, 0xac,0xfa,0x7f,0x67,0x2d,0xd7,0x22,0xca,0x3b,0x7f,0x31, +0x7a,0xd, 0x24,0x7e,0x35,0x28,0x7a,0x35,0x2e,0x7e,0xd, 0x24,0x7f,0x13,0x12,0xa6, +0x56,0x7e,0x35,0x28,0x7a,0x35,0x2a,0x12,0x75,0x97,0x7e,0xd, 0x24,0x2d,0x15,0x7f, +0x13,0x2d,0x35,0x12,0x6d,0x3b,0xda,0x3b,0x22,0x7e,0x37,0x2a,0x4f,0x1e,0x34,0x7a, +0x35,0x28,0x7e,0x8, 0x4, 0xfc,0x7e,0x18,0x4, 0x0, 0x12,0x75,0xbc,0x7e,0x37,0x28, +0x99,0xe, 0x34,0x7a,0x35,0x28,0x7e,0x8, 0x5, 0x7a,0x7e,0x18,0x4, 0x7e,0x12,0x75, +0xbc,0x12,0x76,0x2b,0x12,0xa7,0x45,0x2, 0x76,0x1a,0xe4,0x7a,0xb3,0x3, 0xff,0x7e, +0xb3,0x28,0xa8,0x60,0x5, 0xe4,0x7a,0xb3,0x3, 0xff,0x22,0xca,0x3b,0x7e,0xf3,0x2a, +0x6e,0x12,0xc0,0xde,0x6c,0xcc,0x80,0x13,0x7c,0x7c,0xac,0x7f,0x3e,0x34,0x7e,0xf, +0x13,0x8a,0x2d,0x13,0x7c,0xbd,0x12,0xa7,0xcd,0xb, 0xc0,0xbc,0xec,0x38,0xe9,0xda, +0x3b,0x22,0xe4,0x7a,0xb3,0x28,0x93,0x12,0xbb,0xb5,0x7e,0xb3,0x16,0x91,0xb4,0x1, +0x8, 0x7e,0x73,0x28,0x84,0x7a,0x73,0x28,0x92,0x7e,0x18,0x4, 0xfc,0x7a,0x1f,0x6, +0xf8,0x12,0x3f,0xf2,0x12,0x76,0x9a,0x12,0x74,0x43,0x7e,0xb3,0x16,0x90,0xb4,0x1, +0x18,0x7e,0x73,0x26,0x83,0x7a,0x73,0x26,0xf3,0x7e,0x73,0x26,0x85,0x7a,0x73,0x26, +0xf5,0x7e,0x73,0x26,0x84,0x7a,0x73,0x26,0xf4,0x22,0x7e,0x8, 0x26,0x86,0x7e,0x34, +0x0, 0x3, 0xe4,0x12,0x20,0xde,0x7e,0x8, 0x26,0x89,0x7e,0x34,0x0, 0x3, 0x12,0x20, +0xde,0x7a,0xb3,0x26,0x83,0x7a,0xb3,0x26,0x84,0x7a,0xb3,0x26,0x85,0x7a,0xb3,0x26, +0xf0,0x7a,0xb3,0x26,0xf1,0x7a,0xb3,0x26,0xf2,0x7e,0x18,0x26,0x6f,0x12,0xc0,0xb, +0x6c,0x55,0x12,0x77,0x60,0x7a,0xb3,0x26,0x85,0x7e,0x18,0x26,0x5b,0x12,0xbf,0xe7, +0x6c,0x55,0x12,0x77,0x60,0x7a,0xb3,0x26,0x84,0x6c,0x77,0x80,0x14,0x12,0x77,0xe9, +0x60,0x5, 0x3e,0x24,0x14,0x78,0xfb,0x12,0x77,0xf2,0x2e,0x24,0x26,0x86,0x12,0xc0, +0x60,0x7e,0x63,0x26,0x84,0xbc,0x67,0x38,0xe4,0x6c,0x77,0x80,0x14,0x12,0x77,0xe9, +0x60,0x5, 0x3e,0x24,0x14,0x78,0xfb,0x12,0x77,0xf2,0x2e,0x24,0x26,0x89,0x12,0xc0, +0x60,0x7e,0xa3,0x26,0x85,0xbc,0xa7,0x38,0xe4,0x7e,0xb3,0x26,0x84,0xa4,0x7a,0xb3, +0x26,0x83,0x7e,0x18,0x26,0xe6,0x12,0xc0,0xb, 0x7e,0x50,0x1, 0x12,0x77,0x60,0x7a, +0xb3,0x26,0xf2,0x7e,0x18,0x26,0xdc,0x12,0xbf,0xe7,0x7e,0x50,0x1, 0x12,0x77,0x60, +0x7c,0xab,0x7a,0xa3,0x26,0xf1,0x7e,0xb3,0x26,0xf2,0xa4,0x7a,0xb3,0x26,0xf0,0x22, +0xca,0x69,0xca,0xf8,0x7c,0x4b,0x6c,0xaa,0x6d,0xff,0x6c,0xff,0x80,0x70,0x7e,0xd0, +0x2, 0xac,0xdf,0x7f,0x60,0x2d,0xd6,0xb, 0x6a,0xe0,0x4c,0x55,0x68,0x6, 0x6e,0xe4, +0xff,0xff,0xb, 0xe4,0xbd,0x3e,0x58,0x54,0x4c,0xff,0x78,0x8, 0x6d,0x44,0x69,0xf0, +0x0, 0x2, 0x80,0x1b,0x7c,0xb4,0x14,0xbc,0xbf,0x7f,0x56,0x78,0x9, 0x1b,0xb5,0xb, +0x5a,0x40,0x6d,0xff,0x80,0x9, 0x1b,0xb5,0xb, 0x5a,0x40,0x69,0xf6,0x0, 0x2, 0x4c, +0x55,0x68,0xc, 0x6e,0x44,0xff,0xff,0xb, 0x44,0x6e,0xf4,0xff,0xff,0xb, 0xf4,0xbd, +0x4e,0x58,0x19,0xbd,0xfe,0x18,0x15,0xa, 0xba,0x7e,0x6d,0x24,0x2d,0xdb,0x7a,0x6b, +0xf0,0xb, 0xa0,0x90,0x60,0x9b,0xe4,0x93,0xbc,0xba,0x28,0x6, 0xb, 0xf0,0xbc,0x4f, +0x38,0x8c,0x7c,0xba,0xda,0xf8,0xda,0x69,0x22,0x7c,0xb7,0x54,0x7, 0x7e,0x24,0x0, +0x1, 0x22,0x7c,0xa5,0x7c,0xb7,0xc4,0x23,0x54,0x1f,0xa, 0x2b,0x22,0xe4,0x7a,0xb3, +0x37,0x9c,0x7a,0xb3,0x37,0x9d,0x90,0x60,0x50,0x93,0x7a,0xb3,0x37,0x9e,0x90,0x60, +0x51,0xe4,0x93,0x7a,0xb3,0x37,0x9f,0xe4,0x7a,0xb3,0x37,0xa0,0x90,0x60,0x99,0x93, +0x7a,0xb3,0x37,0xa1,0xe4,0x7a,0xb3,0x37,0xa2,0x7a,0xb3,0x37,0xa3,0x90,0x61,0xc4, +0x93,0x7a,0xb3,0x37,0xa5,0x7e,0x34,0x61,0x4f,0x12,0x23,0x9e,0x1e,0x34,0x1e,0x34, +0x7a,0x73,0x37,0xa9,0x7e,0x34,0x61,0x55,0x12,0x23,0x9e,0x1e,0x34,0x1e,0x34,0x7a, +0x73,0x37,0xaa,0x74,0x64,0x7a,0xb3,0x37,0xbb,0x90,0x61,0x18,0xe4,0x93,0x7a,0xb3, +0x37,0xbc,0x90,0x61,0x17,0xe4,0x93,0x7a,0xb3,0x37,0xa8,0x90,0x61,0x19,0xe4,0x93, +0x7a,0xb3,0x37,0xbe,0x90,0x61,0x24,0xe4,0x93,0x7a,0xb3,0x37,0xbd,0x90,0x61,0x1d, +0xe4,0x93,0x7a,0xb3,0x37,0xbf,0x90,0x61,0x25,0xe4,0x93,0x7a,0xb3,0x37,0xba,0xe4, +0x7a,0xb3,0x37,0xb5,0x74,0xfa,0x7a,0xb3,0x37,0xb3,0x74,0x1e,0x7a,0xb3,0x37,0xb4, +0x74,0x1, 0x7a,0xb3,0x37,0xb2,0x74,0xd, 0x7a,0xb3,0x37,0xb1,0x74,0x1, 0x7a,0xb3, +0x37,0xb6,0xe4,0x7a,0xb3,0x37,0xb7,0x7a,0xb3,0x37,0xb8,0x7e,0x8, 0x37,0xc0,0x7e, +0x34,0x0, 0x2c,0x12,0x20,0xde,0x7e,0x34,0x60,0xd6,0x12,0x23,0x9e,0xa, 0x36,0x7a, +0x73,0x37,0xcb,0x7e,0x34,0x60,0xd6,0x12,0x23,0x9e,0x7a,0x73,0x37,0xcc,0x90,0x60, +0xd4,0x93,0x7a,0xb3,0x37,0xcd,0x90,0x60,0xd5,0xe4,0x93,0x7a,0xb3,0x37,0xce,0x7e, +0x34,0x0, 0x4, 0xca,0x39,0x12,0x79,0x25,0x7e,0x8, 0x37,0xdc,0x12,0x20,0xb9,0x1b, +0xfd,0x74,0x5, 0x7a,0xb3,0x37,0xe9,0x74,0x1, 0x7a,0xb3,0x37,0xe0,0x7e,0x34,0x0, +0x28,0xca,0x39,0x7e,0x34,0x61,0xd5,0x7e,0x24,0x0, 0xff,0x7e,0x8, 0x26,0x33,0x12, +0x20,0xb9,0x1b,0xfd,0x22,0x7e,0x34,0x61,0x29,0x7e,0x24,0x0, 0xff,0x22,0x2, 0x23, +0xa6,0xca,0xf8,0x7e,0x73,0x2a,0x78,0xa, 0x47,0x7e,0x73,0x2a,0x71,0xa, 0x57,0x2d, +0x54,0x7e,0xa3,0x2a,0x73,0xbc,0xab,0x28,0x2, 0x7c,0xba,0x7e,0xf3,0x2a,0x72,0x7e, +0xa3,0x2a,0x74,0xbc,0xaf,0x28,0x2, 0x7c,0xfa,0x75,0x25,0x15,0x7e,0x8, 0x2a,0xb9, +0x7e,0x18,0x2a,0x7a,0x12,0xd, 0xd9,0x75,0x25,0x15,0x7e,0x8, 0x2a,0xdc,0x7e,0x18, +0x2a,0x9d,0x7c,0xbf,0x12,0xf, 0x9c,0xda,0xf8,0x22,0x7f,0x60,0x7e,0xa3,0x2a,0x6d, +0x7e,0xb3,0x2a,0x6e,0xa4,0x7d,0xf5,0x3e,0xf4,0x7f,0x1, 0x7d,0x3f,0xe4,0x12,0x20, +0xde,0x7f,0x6, 0x7d,0x3f,0x12,0x20,0xde,0x7a,0xb3,0x16,0x91,0x22,0x7f,0x70,0x7e, +0x33,0x2a,0x74,0xa, 0x43,0x7e,0x33,0x2a,0x73,0xa, 0x53,0x2d,0x54,0x3e,0x54,0x7c, +0xab,0xe4,0x7a,0xb3,0x16,0x90,0x7f,0x1, 0xa, 0x3a,0x12,0x20,0xde,0x7f,0x7, 0xa, +0x3a,0x2, 0x20,0xde,0xca,0xd8,0xca,0x79,0x7c,0xfb,0x7f,0x51,0x7f,0x40,0x7f,0x15, +0x12,0x79,0x9d,0x12,0x3f,0xd2,0x7e,0xe0,0x1, 0x12,0x4f,0xaf,0x30,0x18,0xfd,0x74, +0x2, 0x12,0x0, 0x1e,0x7f,0x4, 0x12,0x7b,0x29,0x6c,0xdd,0x80,0x18,0x74,0x2, 0xac, +0xbd,0x7f,0x14,0x2d,0x35,0xb, 0x1a,0x20,0x74,0x2, 0xac,0xbd,0x7f,0x5, 0x2d,0x15, +0x12,0x7b,0x20,0xb, 0xd0,0x7e,0x73,0x2a,0x74,0xa, 0x7, 0x7e,0x63,0x2a,0x73,0xa, +0x16,0x2d,0x10,0xa, 0x2d,0xbd,0x21,0x48,0xd4,0x1b,0xe0,0x78,0xbc,0x7f,0x5, 0x7c, +0xbf,0x2e,0x73,0x2a,0x73,0x12,0x7a,0x8e,0xda,0x79,0xda,0xd8,0x22,0x7e,0xb3,0x2b, +0x2, 0x70,0x41,0x12,0x2f,0xf4,0x50,0xfb,0xe4,0x6c,0x77,0x6c,0x66,0x12,0x7a,0x75, +0x7e,0x8, 0x6, 0xfc,0x7e,0x1f,0x6, 0xf4,0x7e,0xb3,0x2b,0x72,0x12,0x79,0xc4,0x74, +0x1, 0x7e,0x70,0x1, 0x7e,0x60,0x1, 0x12,0x7a,0x75,0x7e,0x8, 0x7, 0x7a,0x7e,0x1f, +0x6, 0xf4,0x7e,0xb3,0x25,0xf0,0x12,0x79,0xc4,0x74,0x2, 0x7a,0xb3,0x2b,0x2, 0xe4, +0x7a,0xb3,0x16,0x90,0x22,0x7c,0x96,0x7c,0xa7,0x12,0x3d,0xac,0x7c,0xba,0x12,0x13, +0xc7,0x74,0xa, 0x12,0x45,0x15,0x7c,0xb9,0x12,0x0, 0x1e,0x2, 0x4e,0xe7,0xca,0xd8, +0xca,0x79,0x7c,0xf7,0x7f,0x70,0x12,0x7b,0xd0,0x7c,0xeb,0x6c,0xdd,0x80,0x20,0x74, +0x2, 0xac,0xbd,0x7f,0x67,0x2d,0xd5,0xb, 0x6a,0x30,0x6d,0x22,0x74,0x4, 0x2f,0x11, +0x14,0x78,0xfb,0xa, 0x1e,0x6d,0x0, 0x12,0x1f,0x7, 0x1b,0x6a,0x30,0xb, 0xd0,0xbc, +0xfd,0x38,0xdc,0xda,0x79,0xda,0xd8,0x22,0xca,0x79,0x7f,0x51,0x7f,0x40,0x7e,0xa3, +0x2a,0x74,0xa, 0x3a,0x7e,0xa3,0x2a,0x73,0xa, 0x7a,0x2d,0x73,0x7e,0xd, 0x2a,0x7c, +0x7f,0x12,0x7a,0x8e,0xa, 0x3f,0x3e,0x34,0xca,0x39,0x7e,0x1d,0x2a,0x7f,0x4, 0x12, +0x20,0xb9,0x1b,0xfd,0x7e,0xb3,0x2b,0x1, 0xb4,0x1, 0x22,0x6c,0xaa,0x80,0x1a,0x7e, +0x70,0x2, 0xac,0x7a,0x7f,0x5, 0x2d,0x13,0xb, 0xa, 0x20,0x7f,0x4, 0x2d,0x13,0xb, +0xa, 0x30,0x9d,0x32,0x1b,0xa, 0x30,0xb, 0xa0,0xbc,0xfa,0x38,0xe2,0xda,0x79,0x22, +0xb, 0xa, 0x30,0x2d,0x32,0x1b,0xa, 0x30,0x22,0x7e,0xb3,0x2a,0x73,0x7e,0x73,0x2a, +0x74,0x12,0x10,0xee,0x74,0x2, 0x2, 0x0, 0x1e,0xca,0xd8,0xca,0x79,0x7e,0xf0,0xa, +0x74,0x1, 0x7a,0xb3,0x2a,0xfa,0x12,0x29,0x6f,0x7c,0xe7,0x80,0x5d,0x12,0x26,0x57, +0x12,0x4f,0x9e,0x30,0x18,0xfd,0x12,0x7b,0xc6,0x12,0x7b,0x29,0x6c,0xdd,0x80,0x3d, +0x7e,0x50,0x2, 0xac,0x5d,0x49,0x32,0x6, 0xfc,0xbe,0x34,0x14,0x78,0x50,0x14,0xa, +0x1d,0x2e,0x17,0x2a,0xfe,0x7e,0x19,0xb0,0xbe,0xb0,0x0, 0x28,0x1e,0x14,0x7a,0x19, +0xb0,0x80,0x18,0xbe,0x34,0x19,0x28,0x28,0x10,0xa, 0x3d,0x12,0x3f,0xb, 0xbe,0xb0, +0xff,0x68,0x8, 0x4, 0x7a,0x39,0xb0,0x80,0x2, 0x1b,0xe0,0xb, 0xd0,0x12,0x7b,0xb7, +0xa, 0x3d,0xbd,0x32,0x48,0xba,0x4c,0xee,0x68,0x8, 0x7c,0xaf,0x1b,0xf0,0x4c,0xaa, +0x78,0x9b,0xda,0x79,0xda,0xd8,0x22,0x7e,0x73,0x2a,0x74,0xa, 0x37,0x7e,0x53,0x2a, +0x73,0xa, 0x25,0x2d,0x23,0x22,0x74,0x2, 0x12,0x0, 0x1e,0x7e,0x8, 0x6, 0xfc,0x22, +0x7c,0x7b,0xa5,0xbf,0x0, 0x3, 0x74,0x10,0x22,0xbe,0x70,0x4, 0x38,0x4, 0x6c,0xaa, +0x80,0x21,0xbe,0x70,0x8, 0x38,0x5, 0x7e,0xa0,0x1, 0x80,0x17,0xbe,0x70,0x10,0x38, +0x5, 0x7e,0xa0,0x2, 0x80,0xd, 0xbe,0x70,0x20,0x38,0x5, 0x7e,0xa0,0x3, 0x80,0x3, +0x7e,0xa0,0x4, 0xa, 0x47,0x3e,0x44,0x3e,0x44,0x3e,0x44,0x7c,0xba,0x60,0x5, 0x1e, +0x44,0x14,0x78,0xfb,0x7c,0xb9,0x22,0x7e,0xa3,0x2f,0xa8,0x7e,0x70,0x4, 0xac,0x7a, +0xb, 0x34,0xbe,0x37,0x37,0xed,0x40,0x39,0x7e,0x37,0x37,0xed,0xb, 0x34,0x7a,0x37, +0x37,0xed,0xbe,0x34,0x0, 0x1, 0x78,0x5, 0x7e,0xb3,0x37,0x34,0x22,0xbe,0x34,0x0, +0x2, 0x78,0x3, 0x7c,0xba,0x22,0xbe,0x34,0x0, 0x2, 0x50,0x9, 0x7d,0x23,0x1b,0x25, +0x9, 0xb2,0x38,0xfb,0x22,0x9e,0x34,0x0, 0x3, 0x2e,0x37,0x2b,0xb9,0x7e,0x39,0xb0, +0x22,0x74,0xff,0x22,0x70,0x5, 0x7e,0xb3,0x37,0x9c,0x22,0xbe,0xb0,0x3, 0x38,0x15, +0x75,0x1b,0x0, 0x30,0xe, 0x6, 0x7e,0x18,0x32,0xea,0x80,0x4, 0x7e,0x18,0x33,0x28, +0x7a,0x1d,0x14,0x80,0x8, 0xbe,0xb0,0x5e,0x38,0x10,0x75,0x1b,0x0, 0xa, 0x1b,0x7e, +0x1d,0x14,0x2d,0x31,0x1b,0x34,0x7e,0x1b,0xb0,0x22,0xbe,0xb0,0xd3,0x68,0x3, 0xb4, +0xd4,0x10,0xb4,0xd3,0x8, 0x6d,0x33,0x7a,0x37,0x37,0xed,0x80,0x2, 0x15,0x1a,0x2, +0x7c,0x17,0xbe,0xb0,0xeb,0x68,0x3, 0xb4,0xec,0x3, 0x2, 0x7d,0x61,0xbe,0xb0,0x80, +0x40,0xc, 0xbe,0xb0,0xdf,0x38,0x7, 0xa, 0x3b,0x9, 0xb3,0x36,0x61,0x22,0xb4,0xfc, +0x5, 0x7e,0xb3,0x37,0x8, 0x22,0xb4,0xfd,0x17,0x6c,0xaa,0x7e,0xb3,0x28,0xa8,0x60, +0x3, 0x4e,0xa0,0x1, 0x7e,0xb3,0x36,0x71,0x60,0x3, 0x4e,0xa0,0x2, 0x7c,0xba,0x22, +0xb4,0xfe,0x5, 0x7e,0xb3,0x2b,0xf, 0x22,0x74,0xff,0x22,0x7c,0x7b,0x6c,0xaa,0x12, +0x3f,0xe1,0x78,0x9, 0x7c,0xb7,0x12,0x7c,0x64,0x7c,0xab,0x80,0xa, 0xb4,0x4, 0x7, +0x7c,0xb7,0x12,0x37,0xeb,0x7c,0xab,0x7c,0xba,0x22,0x30,0x90,0x19,0xc2,0x90,0xe5, +0x18,0x70,0x9, 0x75,0x18,0x1, 0xe5,0x91,0xf5,0x1a,0x80,0x11,0x7e,0x71,0x91,0xe5, +0x1a,0x12,0x3f,0xb3,0x5, 0x1a,0x30,0x91,0xb, 0xc2,0x91,0x5, 0x1a,0xe5,0x1a,0x12, +0x7c,0xfb,0xf5,0x91,0x22,0xca,0x7b,0xca,0x2b,0xca,0x1b,0xca,0xb, 0xc0,0x83,0xc0, +0x82,0x12,0x7d,0x1a,0xd0,0x82,0xd0,0x83,0xda,0xb, 0xda,0x1b,0xda,0x2b,0xda,0x7b, +0x32,0xb4,0xeb,0x5, 0xe4,0x7a,0xb3,0x37,0xf2,0x7e,0x73,0x37,0xf2,0xa, 0x27,0x2e, +0x24,0x0, 0x6, 0x12,0x51,0x4f,0x93,0x7c,0xab,0x7c,0xb7,0x4, 0x7a,0xb3,0x37,0xf2, +0xb4,0x3, 0xb, 0xe4,0x7a,0xb3,0x37,0xf2,0x6d,0x33,0x7a,0x37,0x37,0xef,0x75,0x1a, +0xeb,0x7c,0xba,0x22,0x7e,0xa3,0x37,0x9b,0x7c,0xba,0x4, 0x7a,0xb3,0x37,0x9b,0x7a, +0xa3,0x36,0xf2,0x22,0xa9,0xc0,0x93,0x75,0x18,0x0, 0x32,0x7a,0xb3,0x37,0x9c,0xc4, +0x54,0x7, 0xbe,0xb0,0x4, 0x68,0x3, 0xb4,0x2, 0x4, 0x74,0x3, 0x80,0x7, 0x60,0x3, +0xb4,0x1, 0x7, 0x74,0x1, 0x7a,0xb3,0x37,0x8, 0x22,0x74,0x1, 0x7a,0xb3,0x37,0x8, +0xe4,0x7a,0xb3,0x37,0x9c,0x22,0x7c,0xa7,0x7c,0x3b,0xa5,0xbb,0x0, 0x7, 0x7c,0xba, +0x12,0x7d,0xab,0x80,0x2c,0xbe,0x30,0xeb,0x68,0x4, 0xa5,0xbb,0xec,0x9, 0x7c,0xb3, +0x7c,0x7a,0x12,0x7e,0x45,0x80,0x1a,0xbe,0x30,0x80,0x40,0x15,0xbe,0x30,0xdf,0x38, +0x10,0x7c,0xb3,0x24,0x80,0x7c,0x7a,0x12,0x7e,0x21,0xa5,0xbb,0x8f,0x3, 0x75,0x19, +0x1, 0xa5,0xbb,0xfc,0x5, 0x7c,0xba,0x2, 0x44,0xc0,0x74,0x1, 0x7a,0xb3,0x33,0xff, +0x22,0x7c,0x6b,0x2e,0x60,0xdd,0x68,0x1c,0x2e,0x60,0xfd,0x68,0x17,0x1b,0x61,0x68, +0x13,0x2e,0x60,0xfa,0x68,0xe, 0x1b,0x60,0x68,0xa, 0x80,0x0, 0xa, 0x2b,0x19,0x72, +0x36,0xe1,0xd2,0xd, 0x22,0xbe,0xb0,0xeb,0x68,0x3, 0xb4,0xec,0x33,0x7e,0x27,0x37, +0xef,0x4d,0x22,0x78,0xe, 0xa5,0xbf,0xaa,0xa, 0x7e,0x24,0x0, 0x1, 0x7a,0x27,0x37, +0xef,0x15,0x1a,0x7e,0x27,0x37,0xef,0xbe,0x24,0x0, 0x1, 0x78,0x10,0xa5,0xbf,0x9, +0x6, 0x7e,0x34,0x0, 0x2, 0x80,0x2, 0x6d,0x33,0x7a,0x37,0x37,0xef,0x75,0x1a,0xea, +0x22,0x7e,0xb3,0x37,0xf1,0x4, 0x7a,0xb3,0x37,0xf1,0xe5,0x19,0xb4,0x1, 0x8, 0xe4, +0x7a,0xb3,0x37,0xf1,0x75,0x19,0x0, 0x7e,0x73,0x37,0xf1,0x7a,0x73,0x36,0xf0,0x22, +0xe4,0x7a,0xb3,0x37,0x9c,0x7e,0x8, 0x32,0xea,0x12,0x7e,0xef,0x7e,0x8, 0x33,0x28, +0x7e,0x34,0x0, 0x3e,0x12,0x20,0xde,0x7e,0x18,0x32,0xea,0x7a,0x1d,0x14,0x12,0x7e, +0xd1,0x2, 0x7e,0xc4,0x75,0x18,0x0, 0x75,0x1a,0x0, 0x7e,0xb3,0x37,0x9c,0xf5,0x91, +0x22,0x2, 0x7e,0xd4,0x90,0x60,0x0, 0xe4,0x93,0x54,0xfe,0x75,0x91,0x0, 0xc2,0x90, +0xc2,0x91,0xc2,0xc9,0x54,0xfe,0xf5,0x92,0xd2,0xe8,0xc2,0xc0,0xd2,0xad,0x22,0x7e, +0x34,0x0, 0x3e,0x74,0xff,0x2, 0x20,0xde,0x7c,0xab,0x12,0x3f,0x52,0x7c,0xba,0x12, +0x13,0xc7,0x2, 0x0, 0x1e,0x30,0x18,0x8, 0x74,0x5, 0x7e,0x70,0x99,0x12,0x13,0x2c, +0x7e,0xb3,0x34,0x3a,0xb4,0x1, 0x4f,0x12,0x7f,0x67,0x49,0x35,0x34,0x3b,0x49,0x15, +0x34,0x3d,0x6d,0x0, 0xbe,0x8, 0x0, 0x0, 0x68,0x1a,0xbe,0x70,0x0, 0x40,0x15,0xbe, +0x70,0x2, 0x38,0x10,0x74,0x2, 0x12,0x0, 0x1e,0x7e,0xb3,0x2a,0x73,0x7e,0x73,0x2a, +0x74,0x12,0x10,0xee,0x7e,0xb3,0x34,0x39,0x4, 0x7a,0xb3,0x34,0x39,0x12,0x7f,0x6f, +0x28,0xe, 0x12,0x4e,0x9b,0xb4,0x1, 0x4, 0x74,0x1, 0x80,0x6, 0x74,0x3, 0x80,0x2, +0x74,0x2, 0x7a,0xb3,0x34,0x3a,0x22,0x7e,0xa3,0x34,0x39,0x74,0x4, 0xa4,0x22,0x7e, +0x73,0x34,0x38,0xbe,0x73,0x34,0x39,0x22,0x7d,0xf3,0x6d,0xee,0x6c,0x99,0x80,0x3c, +0x7c,0xb9,0x12,0x31,0x27,0x7d,0xd3,0x7d,0xcd,0x3e,0xc4,0x7f,0x57,0x2d,0xbc,0xb, +0x5a,0x10,0x1a,0x2, 0x1a,0x0, 0x7e,0x83,0x2b,0x20,0xa, 0x98,0x6d,0x88,0x7f,0x10, +0x7f,0x4, 0x12,0x1e,0xeb,0x74,0x6, 0x7f,0x1, 0x1e,0x14,0x1e,0x4, 0x50,0x3, 0x4e, +0x20,0x80,0x14,0x78,0xf4,0x7d,0xc1,0x1b,0x5a,0xc0,0xb, 0x90,0x7e,0x83,0x2a,0x75, +0xbc,0x89,0x38,0xbc,0x22,0x7f,0x20,0xb, 0x2a,0x10,0xb, 0x1a,0x0, 0x1b,0x2a,0x0, +0x1b,0x1a,0x10,0x22,0x7c,0x9b,0x7f,0x71,0x7e,0x7b,0x80,0x4c,0x88,0x78,0x7, 0x7e, +0xb, 0x90,0x7a,0x7b,0x90,0x22,0xa, 0x28,0x7e,0xb, 0x80,0xa, 0x38,0x9d,0x32,0x12, +0x21,0x0, 0xe5,0x29,0xa, 0x2b,0xbd,0x32,0x8, 0x15,0x7e,0x7b,0xa0,0x7e,0xb, 0xb0, +0xbc,0xba,0x7c,0xba,0x28,0x4, 0x2c,0xb9,0x80,0x2, 0x9c,0xb9,0x7a,0x7b,0xb0,0x7e, +0x7b,0x70,0x7a,0xb, 0x70,0x22,0x7d,0xc3,0x7e,0x34,0x61,0x37,0x12,0x87,0xbc,0x90, +0x61,0x35,0xe4,0x93,0x70,0x3, 0x7d,0x3c,0x22,0x90,0x61,0x36,0xe4,0x93,0xb4,0x1, +0x6, 0x7e,0x83,0x2a,0x70,0x80,0x4, 0x7e,0x83,0x2a,0x6f,0x12,0x87,0xd4,0xbe,0xc4, +0x0, 0x3f,0x38,0x1c,0x7e,0xe4,0x0, 0x3f,0x9d,0xec,0x7e,0x34,0x61,0x3b,0x12,0x81, +0x2, 0x12,0x80,0xf1,0xbf,0x71,0x40,0x2, 0x7f,0x71,0x9f,0x17,0x7f,0x71,0x1, 0xee, +0x12,0x66,0xb1,0xbd,0x5c,0x38,0x21,0x7d,0xec,0x9d,0xe5,0x7e,0x34,0x61,0x3d,0x12, +0x81,0x2, 0x90,0x61,0x3a,0xe4,0x93,0xa, 0x3b,0xbf,0x71,0x40,0x4, 0x7f,0x71,0x1b, +0x7c,0x12,0x80,0xf9,0x2f,0x71,0x80,0x66,0x7d,0xb4,0xb, 0xb4,0x1e,0xb4,0x7d,0x5b, +0x1b,0x54,0xbd,0x5c,0x40,0xc, 0x7d,0xf5,0x9d,0xfc,0x6d,0xee,0x7e,0x34,0x61,0x3f, +0x80,0xa, 0x7d,0xfc,0x9d,0xfb,0x6d,0xee,0x7e,0x34,0x61,0x41,0x12,0x87,0xcc,0x7f, +0x17,0x12,0x1e,0xfc,0x7f,0x71,0x12,0x81,0x1c,0x7f,0x71,0xbd,0x5c,0x7d,0x3d,0x40, +0xc, 0x1e,0x34,0x1b,0x34,0x6d,0x22,0x9f,0x17,0x7f,0x71,0x80,0x6, 0x1e,0x34,0x6d, +0x22,0x2f,0x71,0x12,0x80,0xf1,0x6d,0x22,0xbf,0x71,0x50,0x4, 0x7f,0x71,0x80,0xe, +0x90,0x61,0x3a,0xe4,0x93,0x12,0x80,0xf9,0xbf,0x71,0x28,0x2, 0x7f,0x71,0x7d,0x3f, +0x22,0x90,0x61,0x39,0xe4,0x93,0xa, 0x3b,0x22,0xa, 0x2b,0x7d,0x3d,0x9d,0x32,0x6d, +0x22,0x22,0x7e,0x24,0x0, 0xff,0xb, 0x1a,0xf0,0xad,0xfe,0x6d,0xee,0x7d,0x3f,0x7d, +0x2e,0x7c,0x76,0x7c,0x65,0x7f,0x71,0x22,0x7d,0x30,0xad,0x31,0x7c,0x76,0x7c,0x65, +0xa, 0x24,0x22,0xca,0x79,0x7c,0xe5,0x7c,0xfb,0x7e,0xe4,0xff,0xfc,0x7c,0xb4,0x12, +0x9f,0x40,0x7d,0x3, 0x74,0x9, 0xac,0xbf,0x12,0x87,0xe5,0x49,0x35,0x28,0xae,0x12, +0x81,0xbf,0x12,0x81,0x18,0x7d,0x13,0x5e,0x30,0xfc,0x7e,0x70,0x9, 0xac,0x7f,0x49, +0xf3,0x29,0x62,0x74,0x9, 0xac,0xbe,0x49,0x25,0x28,0xae,0xbd,0x2f,0x28,0xf, 0x7d, +0x53,0x2e,0x54,0x29,0x62,0x7d,0x2f,0x2d,0x21,0x1b,0x58,0x20,0x80,0x9, 0x2e,0x34, +0x29,0x62,0x9d,0xf1,0x1b,0x38,0xf0,0x74,0x9, 0xac,0xbf,0x12,0x81,0xb3,0x12,0x81, +0x18,0x7d,0x13,0x5d,0x1e,0x7e,0x50,0x9, 0xac,0x5f,0x49,0x32,0x29,0x64,0x74,0x9, +0xac,0xbe,0x49,0x5, 0x28,0xb0,0xbd,0x3, 0x28,0xd, 0x7d,0x2, 0x2e,0x4, 0x29,0x64, +0x2d,0x13,0x1b,0x8, 0x10,0x80,0x9, 0x2e,0x24,0x29,0x64,0x9d,0x31,0x1b,0x28,0x30, +0xda,0x79,0x22,0x49,0x25,0x29,0x64,0x74,0x9, 0xac,0xbe,0x49,0x35,0x28,0xb0,0x9d, +0x32,0x12,0x21,0x0, 0x7d,0x13,0x22,0x7d,0x41,0x7d,0x2, 0x7c,0x37,0x7c,0x2b,0x74, +0x4, 0xac,0xb2,0x49,0x35,0x2b,0xbf,0x49,0xf5,0x2b,0xc1,0x74,0x4, 0xac,0xb3,0x49, +0x25,0x2b,0xbf,0x49,0x55,0x2b,0xc1,0x12,0x81,0xbf,0x7d,0x3f,0x9d,0x35,0x12,0x21, +0x0, 0x9d,0x34,0x12,0x21,0x0, 0x7e,0x54,0x62,0x6a,0x7e,0x44,0x0, 0xff,0xb, 0x2a, +0x20,0xbd,0x32,0x50,0xf, 0x12,0x67,0xeb,0x7e,0x14,0x62,0x6a,0x12,0x87,0xee,0x50, +0x3, 0x74,0x1, 0x22,0xe4,0x22,0xca,0xf8,0x6c,0xff,0x7e,0xb7,0x2f,0x9c,0x7e,0xc7, +0x2f,0x9e,0x7e,0x97,0x2f,0x84,0x7e,0xd7,0x2f,0x86,0x7e,0xa7,0x2f,0x98,0x7e,0xe7, +0x2f,0x9a,0xe4,0x7e,0x73,0x2f,0xa8,0x1b,0x70,0x7d,0x2b,0x7d,0x1c,0x12,0x81,0xc7, +0x70,0x2, 0x61,0x45,0x7e,0x73,0x2f,0xa8,0xbe,0x70,0xa, 0x28,0x13,0xe4,0x7e,0x70, +0x9, 0x7e,0x27,0x2f,0xa0,0x7e,0x17,0x2f,0xa2,0x12,0x81,0xc7,0x70,0x2, 0x61,0x45, +0x7e,0x73,0x2f,0xa8,0xbe,0x70,0x14,0x28,0x13,0xe4,0x7e,0x70,0x13,0x7e,0x27,0x2f, +0xa4,0x7e,0x17,0x2f,0xa6,0x12,0x81,0xc7,0x70,0x2, 0x61,0x45,0x7e,0x34,0x62,0x72, +0x12,0x83,0x4a,0x28,0x4a,0x7e,0x34,0x62,0x70,0x12,0x83,0x54,0x50,0x41,0x7e,0xb3, +0x2f,0x81,0x70,0x3b,0x7e,0x34,0x62,0x76,0x12,0x23,0x9e,0x12,0x83,0x5e,0x7d,0x8f, +0x9d,0x83,0xbe,0x87,0x2f,0x82,0x50,0x27,0x7e,0x34,0x62,0x74,0x12,0x87,0xc4,0x9d, +0xf8,0xbe,0xf7,0x2f,0x82,0x28,0x18,0x7d,0xfc,0x3e,0xf4,0xbd,0xfb,0x40,0x2, 0x61, +0x45,0xbd,0xa9,0x50,0x5, 0x7e,0xf0,0x20,0x80,0x7b,0x7e,0xf0,0x21,0x80,0x76,0x7e, +0x34,0x62,0x7a,0x12,0x83,0x54,0x28,0x6d,0x7e,0x34,0x62,0x78,0x12,0x83,0x4a,0x50, +0x64,0x7e,0xb3,0x2f,0x81,0x70,0x5e,0x7e,0x34,0x62,0x7e,0x12,0x23,0x9e,0x12,0x83, +0x5e,0x7d,0xaf,0x9d,0xa3,0xbe,0xa7,0x2f,0x82,0x50,0x4a,0x7e,0x34,0x62,0x7c,0x7e, +0x24,0x0, 0xff,0xb, 0x1a,0xa0,0x9d,0xfa,0xbe,0xf7,0x2f,0x82,0x28,0x37,0x7d,0xfb, +0x3e,0xf4,0xbd,0xfc,0x50,0x2f,0xbd,0xed,0x50,0x5, 0x7e,0xf0,0x22,0x80,0x26,0x12, +0x67,0xf2,0x49,0x35,0x2b,0xbb,0x49,0x15,0x2b,0xbd,0x49,0x25,0x2b,0xab,0x49,0x5, +0x2b,0xad,0x9d,0x10,0xbe,0x14,0x0, 0x20,0x18,0x8, 0x9d,0x32,0xbe,0x34,0x0, 0x10, +0x58,0x3, 0x7e,0xf0,0x23,0x7c,0xbf,0xda,0xf8,0x22,0x7e,0x24,0x0, 0xff,0xb, 0x1a, +0xf0,0xbd,0xfc,0x22,0x7e,0x24,0x0, 0xff,0xb, 0x1a,0xf0,0xbd,0xfb,0x22,0x7e,0x14, +0x62,0x8e,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0xf0,0x22,0x12,0x86,0x69,0x7a,0x37,0x2f, +0x9c,0x12,0x85,0xf4,0x7a,0x37,0x2f,0x9e,0x12,0x82,0x16,0x60,0x1, 0x22,0x7e,0x73, +0x2f,0xa8,0xa, 0x37,0x7a,0x35,0x24,0x7e,0x8, 0x2b,0xbf,0x7e,0x18,0x2f,0x80,0x2, +0x83,0x92,0xca,0xf8,0x7e,0x45,0x24,0x7c,0xb9,0x7a,0xb3,0x38,0x3f,0x74,0xff,0x7a, +0xb3,0x38,0x3e,0x6d,0x55,0x80,0x19,0x7d,0xf5,0x3e,0xf4,0x12,0x86,0x74,0x7d,0xe5, +0x3e,0xe4,0x59,0xfe,0x1f,0x34,0x69,0xf6,0x0, 0x2, 0x59,0xfe,0x21,0x14,0xb, 0x54, +0xbd,0x45,0x38,0xe3,0x7e,0x33,0x38,0x3f,0xbe,0x30,0x4, 0x38,0x2, 0x81,0x54,0x69, +0xf1,0x0, 0x1c,0x69,0x11,0x0, 0x1e,0xbd,0x1f,0x18,0x19,0x4d,0x11,0x78,0x4, 0x7e, +0x14,0x0, 0x1, 0x7d,0x3f,0x7d,0x21,0x12,0x1e,0xb9,0x7c,0xf7,0x74,0x40,0x7a,0xb3, +0x38,0x42,0x80,0x43,0x4d,0xff,0x78,0x4, 0x7e,0xf4,0x0, 0x1, 0x7d,0x31,0x7d,0x2f, +0x12,0x1e,0xb9,0x7c,0xf7,0x74,0x80,0x7a,0xb3,0x38,0x42,0x7d,0xf, 0x2d,0xf, 0xbd, +0x1, 0x8, 0x24,0x1a,0x2, 0x1a,0x0, 0x7e,0x73,0x38,0x42,0xa, 0x37,0x6d,0x22,0x12, +0x1e,0xeb,0x7d,0x5f,0x1a,0x4a,0x1a,0x48,0x7d,0x1f,0x1a,0x2, 0x1a,0x0, 0x2f,0x2, +0x12,0x1f,0x7, 0x7a,0x73,0x38,0x42,0xbe,0xf0,0x5, 0x58,0x14,0x12,0x84,0x73,0x12, +0xbf,0x3c,0x12,0x84,0x73,0x12,0x84,0x7c,0x12,0x84,0x73,0x12,0xa5,0x28,0x80,0xa, +0x74,0x7d,0x80,0x2, 0x74,0x7f,0x7a,0xb3,0x38,0x3e,0xe4,0x7a,0xb3,0x38,0x3f,0x7e, +0x73,0x39,0x1, 0xbe,0x73,0x38,0x3e,0x48,0x6, 0x7e,0xb3,0x38,0x40,0x80,0x1, 0xe4, +0xda,0xf8,0x22,0x7e,0x8, 0x1f,0x34,0x7e,0x18,0x21,0x14,0x22,0xca,0x3b,0x7f,0x71, +0x7e,0x60,0x1, 0xb, 0xa, 0x20,0xb, 0x7a,0x50,0x7c,0x4b,0x7a,0x53,0x22,0xf4,0x7a, +0x43,0x23,0xe4,0x7e,0x70,0x1, 0x7e,0xa0,0x1, 0xa1,0x9d,0x7e,0x90,0x2, 0xac,0x9a, +0x7f,0x60,0x2d,0xd4,0xb, 0x6a,0xd0,0x7d,0x7d,0x7c,0xbf,0xf5,0x26,0x7f,0x67,0x2d, +0xd4,0xb, 0x6a,0x40,0xa, 0xd5,0xa, 0xbb,0x7d,0xab,0x9d,0xad,0x7d,0x7a,0x7c,0x8f, +0xbe,0x80,0x0, 0x58,0x5, 0x6e,0x80,0xff,0xb, 0x80,0xa, 0xa4,0xa, 0x79,0x9d,0x7a, +0xbe,0xf0,0x0, 0x58,0x5, 0x6e,0xf0,0xff,0xb, 0xf0,0xbe,0x80,0x2, 0x58,0x7, 0xbe, +0xf0,0x2, 0x58,0x2, 0xa1,0x9b,0xbe,0x60,0x0, 0x18,0x2, 0xa1,0x83,0xbe,0x70,0xec, +0x28,0x2, 0xa1,0xa7,0xbe,0x80,0x8, 0x58,0x5, 0xbe,0xf0,0x8, 0x48,0x61,0xa, 0xa7, +0xb, 0xa4,0x7d,0x6a,0x7c,0x7d,0xa, 0xa5,0x2d,0xab,0x12,0x85,0xeb,0x19,0xba,0x22, +0xf4,0xa, 0xd9,0xa, 0xa4,0x2d,0xad,0x12,0x85,0xeb,0x19,0xba,0x23,0xe4,0x9, 0xba, +0x22,0xf4,0xa, 0xdb,0xa, 0xc5,0x2d,0xcd,0xe, 0xc4,0x7d,0x6c,0x7c,0xbd,0xa, 0xc7, +0x19,0xbc,0x22,0xf3,0x9, 0xbc,0x23,0xe4,0xa, 0xcb,0xa, 0xa4,0x2d,0xac,0x12,0x85, +0xeb,0x19,0xba,0x23,0xe3,0x2d,0xdb,0x12,0x85,0xe2,0x19,0xbd,0x22,0xf5,0xa, 0xd9, +0x12,0x85,0xe0,0x19,0xbd,0x23,0xe5,0xb, 0xd5,0x7d,0x6d,0x7c,0x7d,0x80,0x24,0xbe, +0x80,0x4, 0x58,0x5, 0xbe,0xf0,0x4, 0x48,0x1a,0xe5,0x26,0xa, 0xcb,0xa, 0xd5,0x12, +0x85,0xe0,0x19,0xbd,0x22,0xf4,0xa, 0xc9,0xa, 0xd4,0x12,0x85,0xe0,0x19,0xbd,0x23, +0xe4,0xb, 0x70,0xbe,0x70,0xf0,0x50,0x1f,0x7e,0x51,0x26,0x7c,0x49,0xe5,0x26,0xa, +0xd7,0x19,0xbd,0x22,0xf4,0x19,0x9d,0x23,0xe4,0xb, 0x70,0xb, 0xa0,0x7e,0xb3,0x38, +0x3f,0xbc,0xba,0x28,0x2, 0x81,0x9b,0x7a,0x73,0x38,0x3f,0x7e,0xa0,0x1, 0x80,0x25, +0xa, 0x3a,0x9, 0xb3,0x22,0xf4,0xa, 0x2b,0x7e,0x70,0x2, 0xac,0x7a,0x7f,0x60,0x2d, +0xd3,0x1b,0x6a,0x20,0xa, 0x2a,0x9, 0xb2,0x23,0xe4,0xa, 0x4b,0x2d,0x3f,0x7d,0x2e, +0x1b,0x1a,0x40,0xb, 0xa0,0x7e,0xb3,0x38,0x3f,0xbc,0xba,0x38,0xd3,0xda,0x3b,0x22, +0x2d,0xdc,0xe, 0xd4,0x7d,0x6d,0x7c,0xbd,0xa, 0xd7,0x22,0xe, 0xa4,0x7d,0x6a,0x7c, +0xbd,0xa, 0xa7,0x22,0x7e,0x37,0x2f,0x96,0x9e,0x37,0x2f,0x8e,0x22,0x7e,0x17,0x2f, +0x90,0xbd,0x13,0x28,0xa, 0x7a,0x37,0x2f,0x90,0x7a,0x27,0x2f,0x92,0x80,0x10,0x7e, +0x17,0x2f,0x88,0xbd,0x13,0x50,0x8, 0x7a,0x37,0x2f,0x88,0x7a,0x27,0x2f,0x8a,0x7e, +0x17,0x2f,0x8e,0xbd,0x12,0x28,0xa, 0x7a,0x27,0x2f,0x8e,0x7a,0x37,0x2f,0x8c,0x80, +0x10,0x7e,0x17,0x2f,0x96,0xbd,0x12,0x50,0x8, 0x7a,0x27,0x2f,0x96,0x7a,0x37,0x2f, +0x94,0x7e,0xb3,0x2f,0xa8,0xb4,0xa, 0xf, 0x12,0x86,0x69,0x7a,0x37,0x2f,0xa0,0x12, +0x85,0xf4,0x7a,0x37,0x2f,0xa2,0x22,0xb4,0x14,0xe, 0x12,0x86,0x69,0x7a,0x37,0x2f, +0xa4,0x12,0x85,0xf4,0x7a,0x37,0x2f,0xa6,0x22,0x7e,0x37,0x2f,0x88,0x9e,0x37,0x2f, +0x90,0x22,0x7d,0xf4,0x3e,0xf4,0x7f,0x60,0x2d,0xdf,0xb, 0x6a,0xf0,0x22,0x7c,0xab, +0x6d,0x44,0x80,0x29,0x4c,0xaa,0x68,0x11,0x12,0x86,0xb5,0x60,0x5, 0x3e,0xe4,0x14, +0x78,0xfb,0x12,0x86,0x72,0x2d,0xfe,0x80,0xf, 0x12,0x86,0xb5,0x60,0x5, 0x3e,0xe4, +0x14,0x78,0xfb,0x12,0x86,0x72,0x9d,0xfe,0x1b,0x6a,0xf0,0xb, 0x44,0x7e,0xf5,0x2a, +0xbd,0xf4,0x38,0xd0,0x22,0x7f,0x71,0x2d,0xf4,0x7e,0x7b,0xb0,0x1a,0xeb,0x7f,0x61, +0x2e,0xd5,0x2a,0x7e,0x6b,0xb0,0x22,0x7c,0x7b,0x90,0x60,0x93,0xe4,0x93,0xa, 0x1b, +0x7e,0x63,0x2a,0x71,0xa, 0x6, 0x2d,0x1, 0x7e,0x63,0x2a,0x6e,0xa, 0x16,0xad,0x10, +0x7d,0x21,0x12,0x87,0xdc,0xa, 0x26,0x7a,0x25,0x2a,0x74,0x1d,0xac,0x7b,0x2e,0x34, +0x37,0x44,0x6d,0x22,0xe4,0x2, 0x86,0x7e,0x7c,0x2b,0x7e,0xb3,0x1f,0x33,0xbc,0x2b, +0x68,0x4f,0x12,0x87,0x56,0x7c,0x3b,0x7c,0xb2,0x12,0x87,0x56,0x7c,0xab,0xbe,0x30, +0xff,0x68,0x3e,0xbe,0xa0,0xff,0x68,0x39,0x7e,0x70,0x4, 0xac,0x73,0xa, 0x2a,0x12, +0x91,0x67,0xbe,0xb0,0x2, 0x38,0x2a,0xa, 0x2b,0x7e,0x34,0x2, 0xe0,0xad,0x32,0x2e, +0x34,0x16,0x93,0x6d,0x22,0x30,0x16,0x3, 0x2, 0x86,0xc7,0x7e,0xb3,0x2b,0x1d,0xb4, +0x1, 0xf, 0x12,0xc0,0x1b,0x7a,0x55,0x2a,0x7e,0x8, 0xd, 0xc8,0x74,0x1, 0x2, 0x86, +0x7e,0x22,0x7e,0xb3,0x2b,0xf, 0x7c,0xab,0x6c,0x77,0x7e,0x50,0x5, 0xac,0x57,0x9, +0x62,0x26,0x33,0xbc,0x6a,0x78,0x3, 0x7c,0xb7,0x22,0xb, 0x70,0xbe,0x70,0x4, 0x40, +0xe9,0x74,0xff,0x22,0x7e,0xb3,0x37,0x31,0x70,0x6, 0x12,0x87,0xad,0x2, 0x87,0xb6, +0x12,0x63,0x9, 0x12,0xbd,0x6d,0x50,0xa, 0x12,0x83,0x6a,0x7c,0x3b,0x12,0x87,0xad, +0x80,0x5, 0x12,0xbe,0x14,0x7c,0x3b,0x4c,0x33,0x68,0x11,0x7c,0xb3,0x12,0xbc,0xf1, +0x60,0xa, 0x7a,0x33,0x37,0x34,0x74,0x1, 0x7a,0xb3,0x2a,0x8, 0x22,0xe4,0x7a,0xb3, +0x2f,0x80,0x22,0x2, 0x81,0x23,0xe4,0x7a,0xb3,0x38,0xdd,0x22,0x7e,0x24,0x0, 0xff, +0xb, 0x1a,0xd0,0x22,0x7e,0x24,0x0, 0xff,0xb, 0x1a,0x80,0x22,0x7e,0x24,0x0, 0xff, +0xb, 0x1a,0x10,0x22,0x7e,0x90,0x40,0xac,0x89,0x1b,0x44,0x22,0x3e,0x24,0x7e,0xf, +0x38,0xd9,0x2d,0x12,0x22,0x49,0x25,0x29,0x62,0x74,0x9, 0xac,0xbe,0x22,0x7e,0x4, +0x0, 0xff,0xb, 0xa, 0x20,0xbd,0x32,0x22,0x7d,0x13,0x7d,0x32,0x6d,0x22,0x74,0x6, +0x2f,0x11,0x14,0x78,0xfb,0xb, 0x14,0x12,0x1f,0x5, 0x7d,0x53,0xbe,0x54,0x0, 0xff, +0x28,0x4, 0x7e,0x54,0x0, 0x40,0x22,0x12,0x6e,0x8f,0x50,0x3, 0xd2,0xf, 0x22,0xc2, +0xf, 0x22,0x12,0xac,0xe9,0x12,0x88,0x2b,0x2, 0x88,0x17,0x7e,0x8, 0x24,0xf2,0x7e, +0x34,0x0, 0xc, 0xe4,0x12,0x20,0xde,0x12,0xaa,0x61,0x12,0xaa,0x58,0xa9,0xd1,0xcb, +0x12,0xc1,0x22,0x7a,0x37,0x24,0xf6,0x7e,0x1f,0x38,0xd9,0x7a,0x37,0x24,0xf8,0x7e, +0x1f,0x13,0x86,0x7a,0x37,0x24,0xfa,0x6d,0x33,0x12,0xb4,0x77,0x2, 0xd, 0x7, 0x12, +0x54,0x94,0x12,0x88,0xb9,0x12,0x8c,0xad,0x7e,0xb3,0x37,0x6, 0xb4,0x1, 0x1e,0x7e, +0x34,0x61,0xc0,0x12,0x87,0xcc,0x7e,0x24,0x0, 0x5, 0xad,0x12,0x7a,0x17,0x28,0xa1, +0x7e,0x14,0x61,0xc2,0x12,0x64,0xd3,0xad,0x32,0x7a,0x37,0x28,0xa3,0x7e,0xb3,0x39, +0x11,0x60,0x7, 0x14,0x7a,0xb3,0x39,0x11,0x80,0x6, 0x7e,0xb3,0x28,0xac,0x60,0x9, +0x12,0x88,0x22,0x12,0x8c,0x90,0x12,0xb3,0xd3,0x7e,0xb3,0x28,0xad,0x60,0x9, 0x12, +0xbb,0x30,0x12,0xaa,0x6a,0x2, 0x8d,0x10,0x22,0x7e,0x90,0x1, 0x7e,0xb3,0x2f,0xa9, +0xbe,0xb0,0xff,0x50,0x5, 0x4, 0x7a,0xb3,0x2f,0xa9,0x7e,0x34,0x61,0xc0,0x12,0x23, +0x9e,0x12,0xc0,0xb1,0x12,0x23,0x9e,0x7a,0x37,0x28,0xa3,0x12,0x8c,0x87,0xb, 0x1a, +0xf0,0x7e,0x34,0x61,0x4f,0x12,0x87,0xbc,0xe4,0x7a,0xb3,0x28,0xac,0x74,0x1, 0x7a, +0xb3,0x28,0xad,0x7e,0x34,0xff,0xfa,0xad,0x3f,0x12,0x8f,0xdc,0x7d,0xc3,0xe, 0xc4, +0x7e,0xe7,0x7, 0xfe,0xbd,0xe3,0x58,0x15,0x7e,0xe7,0x7, 0xfc,0xbd,0xec,0x58,0xd, +0x12,0x8a,0x7c,0x8, 0x8, 0x12,0x8b,0xe, 0x60,0x3, 0x12,0x8a,0x95,0x12,0x8b,0xe, +0xa, 0xeb,0x4d,0xee,0x68,0x3b,0x6d,0xee,0x9d,0xef,0xbe,0xe7,0x7, 0xfe,0x18,0x6, +0xbe,0xe7,0x7, 0xfc,0x8, 0x2b,0x12,0x8a,0x7c,0x8, 0x26,0x7e,0x37,0x28,0x8e,0x12, +0x21,0x0, 0xbe,0x37,0x28,0x8a,0x8, 0x19,0x12,0x8a,0x74,0x28,0x14,0x7e,0x83,0x28, +0x85,0xbe,0x80,0x1, 0x28,0xb, 0x7e,0xc7,0x7, 0xfa,0xbd,0xcf,0x58,0x3, 0x12,0x8a, +0x95,0x12,0xad,0x28,0x40,0x5, 0xe4,0x7a,0xb3,0x28,0xa8,0x12,0xc1,0x1a,0x68,0x6, +0x7e,0xb3,0x39,0xb, 0x60,0x7, 0xe4,0x7a,0xb3,0x28,0xad,0x80,0x7d,0x12,0x8a,0x74, +0x28,0x5, 0xe4,0x7a,0xb3,0x28,0xad,0x30,0x10,0x5, 0xe4,0x7a,0xb3,0x28,0xad,0x12, +0xad,0x66,0x50,0xd, 0x74,0x1, 0x7a,0xb3,0x28,0xad,0x12,0x8a,0xa6,0x7c,0x9b,0x80, +0x1a,0x7e,0xb3,0x26,0x84,0x70,0x14,0x7e,0xb3,0x26,0x85,0x70,0xe, 0x12,0x8a,0x74, +0x28,0x9, 0x7e,0x90,0x3, 0x74,0x1, 0x7a,0xb3,0x28,0xad,0x7e,0xc7,0x7, 0xfa,0xbe, +0xc4,0x5, 0xdc,0x8, 0x17,0x12,0x8a,0x74,0x28,0x12,0x6d,0xcc,0x9d,0xcd,0xbe,0xc7, +0x28,0x8e,0x58,0x8, 0x12,0x8a,0x87,0xe4,0x7a,0xb3,0x28,0xad,0xa, 0x29,0x7e,0x14, +0x61,0xc0,0x12,0x64,0xd3,0xad,0x32,0x7a,0x37,0x28,0xa1,0xa, 0x29,0x7e,0x14,0x61, +0xc2,0x12,0x64,0xd3,0xad,0x32,0x7a,0x37,0x28,0xa3,0x12,0x0, 0x66,0x50,0xd, 0xe4, +0x7a,0xb3,0x28,0xad,0x12,0x8f,0xe3,0x28,0x3, 0x12,0x8a,0x87,0x7e,0xc7,0x28,0x8a, +0xbd,0xcd,0x8, 0x19,0x12,0x9b,0xf, 0x6e,0x34,0xff,0xff,0xb, 0x34,0xbe,0x37,0x28, +0x8e,0x58,0xa, 0x12,0x0, 0x66,0x50,0x5, 0xe4,0x7a,0xb3,0x28,0xad,0x12,0x8b,0x8e, +0xb4,0x1, 0x5, 0xe4,0x7a,0xb3,0x28,0xad,0x7e,0xb3,0x28,0xac,0xb4,0x1, 0x9, 0xe4, +0x7a,0xb3,0x28,0x84,0x7a,0xb3,0x2a,0x2, 0x12,0xac,0x90,0x7e,0xb3,0x2f,0xaa,0xbe, +0xb0,0x0, 0x28,0x1f,0x14,0x7a,0xb3,0x2f,0xaa,0x70,0x18,0xe4,0x7a,0xb3,0x28,0xad, +0x12,0x8c,0x7f,0x7a,0xb3,0x16,0x91,0x7a,0xb3,0x16,0x90,0x7a,0xb3,0x28,0x84,0x7a, +0xb3,0x26,0x83,0x22,0x7e,0x83,0x28,0x84,0xbe,0x80,0x0, 0x22,0x6d,0xee,0x9e,0xe7, +0x2a,0x5a,0xbe,0xe7,0x28,0x8e,0x22,0xe4,0x7a,0xb3,0x2f,0xaa,0x7a,0xb3,0x28,0xac, +0x74,0x2, 0x2, 0x29,0xfa,0x74,0x2, 0x7a,0xb3,0x2f,0xaa,0xe4,0x7a,0xb3,0x2f,0xa9, +0x12,0x8c,0x7f,0x2, 0x29,0xfa,0x7e,0xa0,0x1, 0x7e,0x47,0x7, 0xf8,0x12,0x8c,0x87, +0xb, 0x1a,0x0, 0x7e,0x34,0xff,0xfa,0xad,0x30,0x7e,0x14,0x0, 0x2, 0x12,0x8b,0x6, +0x8, 0x12,0x7e,0xb3,0x28,0xac,0x60,0x7, 0xe4,0x7a,0xb3,0x28,0xad,0x80,0x32,0x7e, +0xa0,0x5, 0x80,0x2d,0x7e,0x34,0xff,0xfb,0x12,0x8b,0x4, 0x8, 0x5, 0x7e,0xa0,0x4, +0x80,0x1f,0x7e,0x34,0xff,0xfc,0x12,0x8b,0x4, 0x8, 0x5, 0x7e,0xa0,0x3, 0x80,0x11, +0x7e,0x34,0xff,0xfd,0x12,0x8b,0x4, 0x8, 0x5, 0x7e,0xa0,0x2, 0x80,0x3, 0x7e,0xa0, +0x1, 0x7c,0xba,0x22,0xad,0x30,0x7d,0x21,0x12,0x1e,0xb9,0xbd,0x34,0x22,0x6c,0x66, +0x90,0x60,0xa7,0xe4,0x93,0xbe,0xb0,0x0, 0x28,0x71,0x90,0x60,0xaa,0xe4,0x93,0x70, +0x6a,0x7e,0xb3,0x28,0xa8,0xb4,0x1, 0x63,0x7e,0x73,0x26,0xf2,0xbe,0x70,0x0, 0x28, +0x5a,0x6c,0x33,0x80,0x4e,0xa, 0x23,0x9, 0x72,0x26,0xe6,0x7e,0xb3,0x2a,0x6e,0x14, +0xbc,0x7b,0x78,0x3d,0x6c,0x22,0x80,0x27,0x7c,0xb2,0x7c,0x73,0x12,0x9d,0x8b,0x50, +0x1c,0xa, 0x22,0x7e,0x73,0x2a,0x6e,0xa, 0x7, 0x2d,0x2, 0x3e,0x4, 0x49,0x20,0x4, +0xfc,0x6d,0x0, 0x9e,0x7, 0x2a,0x4f,0xbd,0x20,0x58,0x2, 0xb, 0x60,0xb, 0x20,0x7e, +0x73,0x2a,0x6d,0xbc,0x72,0x38,0xd1,0xbe,0x60,0x0, 0x28,0x3, 0x74,0x1, 0x22,0xe4, +0x22,0xb, 0x30,0x7e,0x73,0x26,0xf2,0xbc,0x73,0x38,0xaa,0x74,0x1, 0x22,0xca,0x3b, +0x12,0xa6,0x4e,0x38,0x2, 0x81,0x55,0x7e,0xc3,0x2f,0xad,0x4c,0xcc,0x78,0x3d,0x7a, +0xb3,0x2f,0xad,0xe4,0x7a,0xb3,0x2f,0xaf,0x6c,0xaa,0x80,0x26,0x12,0x8c,0x60,0x7e, +0x70,0x2, 0xac,0x7a,0x9, 0xd3,0x26,0xfa,0x9, 0xe3,0x26,0xfb,0x7a,0x49,0xd0,0x19, +0xe4,0x0, 0x1, 0x74,0x1, 0x19,0xb4,0x0, 0x8, 0x12,0x8c,0x6a,0x59,0x34,0x0, 0x2, +0xb, 0xa0,0x7e,0xb3,0x28,0x84,0xbc,0xba,0x38,0xd2,0x80,0x7f,0x7c,0xfc,0x6c,0xaa, +0x80,0x35,0x12,0x8c,0x60,0x7e,0x49,0xd0,0x9, 0xe4,0x0, 0x1, 0x9, 0xb4,0x0, 0x8, +0x70,0x4, 0x1b,0xf0,0x80,0x1f,0x12,0x8c,0x6a,0x7d,0x23,0x49,0x34,0x0, 0x2, 0x9d, +0x32,0x12,0x21,0x0, 0x7d,0xf3,0xbe,0xf4,0x0, 0x23,0x8, 0x9, 0x74,0x5, 0x19,0xb4, +0x0, 0x8, 0x75,0x4c,0x1, 0xb, 0xa0,0xbc,0xfa,0x38,0xc7,0x4c,0xff,0x78,0x2, 0x80, +0x26,0x7e,0x73,0x2f,0xaf,0xbe,0x70,0x4, 0x40,0x22,0x6c,0xaa,0x80,0xe, 0x12,0x8c, +0x60,0x9, 0xb4,0x0, 0x8, 0xbe,0xb0,0x5, 0x68,0x6, 0xb, 0xa0,0xbc,0xfa,0x38,0xee, +0xbc,0xfa,0x78,0x3, 0x75,0x4c,0x0, 0x12,0x8c,0x71,0x80,0xf, 0x7c,0xb7,0x4, 0x7a, +0xb3,0x2f,0xaf,0x80,0x6, 0x12,0x8c,0x71,0x75,0x4c,0x0, 0xe5,0x4c,0xda,0x3b,0x22, +0x7e,0x90,0x9, 0xac,0x9a,0x2e,0x44,0x2f,0xb0,0x22,0x7c,0xbd,0x7c,0x7e,0x2, 0x2c, +0x40,0xe4,0x7a,0xb3,0x2f,0xae,0x7a,0xb3,0x2f,0xad,0x7a,0xb3,0x2f,0xaf,0x22,0x74, +0x1, 0x7a,0xb3,0x28,0xac,0xe4,0x22,0x7e,0x34,0x61,0x55,0x7e,0x24,0x0, 0xff,0x22, +0x12,0x8c,0xcd,0x6d,0x33,0x7a,0x37,0x36,0xdd,0x6c,0xaa,0x80,0x5, 0x12,0x8d,0x5e, +0xb, 0xa0,0x12,0x8d,0x8, 0x38,0xf6,0xe4,0x7a,0xb3,0x36,0x72,0x22,0x12,0xb0,0xbe, +0x60,0x1a,0x74,0x1, 0x7a,0xb3,0x28,0xad,0x7e,0x37,0x28,0xa1,0x3e,0x34,0x7a,0x37, +0x28,0xa1,0x7e,0x37,0x28,0xa3,0x3e,0x34,0x7a,0x37,0x28,0xa3,0x22,0x7e,0x37,0x38, +0xd2,0x12,0x25,0x3c,0x7a,0x37,0x36,0xdd,0x6c,0xaa,0x80,0x23,0x12,0x8d,0x8, 0x28, +0x26,0xa, 0x4a,0x9, 0x64,0x36,0x76,0xbc,0x6b,0x50,0x12,0x7e,0x50,0x2, 0xac,0x5a, +0x49,0x42,0x38,0xcc,0x7e,0x70,0xc, 0xac,0x67,0x59,0x43,0x36,0x80,0xb, 0xa0,0x7e, +0xb3,0x36,0x73,0xbc,0xba,0x38,0xd5,0x22,0x90,0x61,0xc5,0xe4,0x93,0xbc,0xba,0x22, +0x6c,0xaa,0x80,0x44,0x7e,0x70,0xc, 0xac,0x7a,0x12,0xae,0xc5,0xbe,0x34,0x3, 0xe8, +0x8, 0x5, 0x12,0x8d,0x5e,0x80,0x2f,0x7e,0x50,0xc, 0xac,0x5a,0x49,0x32,0x36,0x84, +0x49,0x12,0x36,0x80,0xbd,0x13,0x28,0xf, 0x7d,0x2, 0x2e,0x4, 0x36,0x84,0x7d,0x13, +0xb, 0x15,0x1b,0x8, 0x10,0x80,0xf, 0xbe,0x34,0x0, 0x2, 0x28,0x9, 0x2e,0x24,0x36, +0x84,0x1b,0x35,0x1b,0x28,0x30,0xb, 0xa0,0x12,0x8d,0x8, 0x38,0xb7,0x22,0x7e,0x50, +0xc, 0xac,0x5a,0x49,0x32,0x36,0x80,0x59,0x32,0x36,0x84,0x22,0x7e,0xb3,0x36,0x66, +0x60,0x6, 0x14,0x7a,0xb3,0x36,0x66,0x22,0x12,0x8c,0xcd,0x90,0x61,0xc5,0xe4,0x93, +0xbe,0xb0,0x4, 0x28,0x3, 0x12,0x8d,0xef,0x7e,0xb3,0x36,0xec,0x70,0xe, 0x7e,0xb3, +0x39,0x12,0xb4,0x1, 0x7, 0xe4,0x12,0x8d,0xb3,0x12,0xc0,0x95,0x12,0x67,0x1f,0x12, +0x8e,0xa2,0x7e,0xa3,0x36,0xec,0x7a,0xa3,0x39,0x12,0xbe,0xb0,0xff,0x68,0x3, 0x2, +0x8d,0xb3,0x22,0xca,0xf8,0x7c,0xfb,0x74,0x5, 0xac,0xbf,0x12,0xc0,0xc3,0x12,0xc0, +0x39,0x12,0x6f,0xff,0x12,0xc0,0x30,0x7a,0xf3,0x0, 0x4f,0x7c,0xbf,0x12,0xb3,0x54, +0x12,0x6e,0x29,0x74,0x5, 0xac,0xbf,0x9, 0xb5,0x26,0x37,0x12,0xaf,0x4, 0x12,0x8d, +0xef,0x12,0x23,0x4, 0xe4,0x7a,0xb3,0x16,0x91,0xda,0xf8,0x22,0x12,0x8f,0xd2,0x7e, +0xb3,0x2b,0xf, 0xca,0x3b,0x7c,0xeb,0x6c,0xff,0x7e,0x34,0x60,0xd6,0x7e,0x24,0x0, +0xff,0xb, 0x1a,0xc0,0x7e,0x73,0x37,0xcd,0xa, 0xb7,0x7e,0xb3,0x2b,0x10,0xf5,0x36, +0x12,0x8f,0xca,0xbe,0xd0,0x4, 0x38,0x5, 0xe4,0x7a,0xb3,0x36,0x72,0xa, 0x3e,0xad, +0x3b,0x7d,0xa3,0x2d,0xac,0x75,0x35,0x0, 0x7e,0xa3,0x36,0x72,0xbc,0xad,0x40,0x2, +0x80,0x19,0xbe,0xa0,0x0, 0x28,0x19,0x74,0x5, 0xa4,0x9, 0x75,0x26,0x33,0xbc,0x7e, +0x78,0xe, 0x7c,0xbd,0x14,0xbe,0xb3,0x36,0x72,0x78,0x5, 0xe4,0x7a,0xb3,0x36,0x72, +0x7e,0xc3,0x36,0x72,0x80,0x41,0x7e,0xb3,0x36,0x72,0x4, 0x7a,0xb3,0x36,0x72,0x7e, +0x90,0x5, 0xac,0x9c,0x9, 0xa4,0x26,0x33,0xbc,0xae,0x68,0x29,0xe5,0x35,0xa, 0xdb, +0x19,0xcd,0x36,0x76,0xa, 0x9a,0xad,0x9b,0x2d,0x9c,0x7e,0xa1,0x35,0x7c,0xba,0x4, +0xf5,0x35,0x7c,0xba,0x7d,0x39,0x7d,0x2a,0x7e,0x31,0x36,0x12,0x10,0x0, 0xb, 0xf0, +0xbe,0xf0,0x3, 0x50,0x6, 0xb, 0xc0,0xbc,0xdc,0x38,0xbb,0x7a,0xf3,0x36,0x73,0xda, +0x3b,0x22,0xca,0xd8,0xca,0x79,0x7e,0xe0,0xff,0x12,0xaf,0x5a,0x7e,0xb3,0x36,0x6b, +0xb4,0x1, 0x8, 0x12,0x88,0x22,0xe4,0x7a,0xb3,0x36,0x6b,0x7e,0xb3,0x36,0x6a,0x60, +0x4, 0x74,0xff,0xe1,0xc5,0x7e,0xb3,0x36,0x69,0xb4,0x2, 0x2, 0x80,0x2, 0xe1,0xb9, +0x12,0xc1,0x12,0x38,0xc, 0x12,0x8f,0xf3,0x38,0x7, 0x12,0x8f,0xeb,0x38,0x2, 0xe1, +0xb9,0x12,0x8f,0xca,0xa, 0x3d,0x1b,0x34,0xbe,0x34,0x0, 0x3, 0x48,0x4, 0x74,0x3, +0x80,0x3, 0x7c,0xbd,0x14,0x12,0xae,0x34,0x7c,0xfb,0x7e,0xb3,0x36,0x68,0x4, 0x7a, +0xb3,0x36,0x68,0x90,0x61,0xc5,0xe4,0x93,0x14,0x12,0xae,0x34,0x7c,0xab,0xbe,0xa0, +0xff,0x68,0x2c,0xbe,0xf0,0xff,0x68,0x25,0x7e,0x30,0xc, 0xac,0x3f,0x49,0x21,0x36, +0x7e,0x7e,0xf4,0x61,0xcc,0x7e,0xe4,0x0, 0xff,0xb, 0x7a,0x30,0xbd,0x23,0x28,0xf, +0x12,0xae,0xbb,0x3e,0x34,0xbd,0x23,0x28,0x6, 0x7c,0xfa,0x80,0x2, 0x7c,0xfa,0xbe, +0xf0,0xff,0x78,0x11,0xe4,0x7a,0xb3,0x36,0x68,0x7a,0xb3,0x36,0x69,0x7a,0xb3,0x36, +0x75,0x74,0xff,0x80,0x70,0x90,0x61,0xd4,0xe4,0x93,0xbe,0xb3,0x36,0x68,0x50,0x59, +0x74,0xc, 0xac,0xbf,0x49,0x25,0x36,0x7e,0x7e,0x14,0x61,0xcc,0x12,0x64,0xd3,0xbd, +0x23,0x50,0x3d,0x7e,0x34,0x61,0xd0,0x12,0x23,0x9e,0xbe,0x37,0x36,0x64,0x40,0xd, +0x7e,0x34,0x61,0xd2,0x12,0x23,0x9e,0xbe,0x37,0x36,0x6f,0x50,0x23,0x74,0x5, 0xac, +0xbf,0x9, 0x75,0x26,0x33,0xbe,0x73,0x2b,0xf, 0x68,0x15,0x7c,0xef,0xbe,0xe0,0x4, +0x50,0x8, 0x12,0x87,0x52,0xbe,0xb0,0x4, 0x40,0x6, 0x74,0x1, 0x7a,0xb3,0x36,0x6b, +0xe4,0x7a,0xb3,0x36,0x75,0x7a,0xb3,0x36,0x69,0xbe,0xe0,0xff,0x68,0x5, 0xe4,0x7a, +0xb3,0x36,0x68,0x7c,0xbe,0xda,0x79,0xda,0xd8,0x22,0x90,0x61,0xc5,0xe4,0x93,0x7c, +0xdb,0x22,0x12,0xae,0xd2,0x74,0x1, 0x7a,0xb3,0x36,0x66,0x22,0x7e,0x24,0x0, 0x2, +0x2, 0x1e,0xb9,0x7e,0x73,0x28,0x84,0xbe,0x70,0x0, 0x22,0x7e,0x73,0x26,0xf5,0xbe, +0x70,0x0, 0x22,0x7e,0x73,0x26,0xf4,0xbe,0x70,0x0, 0x22,0xca,0xf8,0x7e,0xf3,0x2a, +0x70,0x7a,0x37,0x1f,0x3a,0x7e,0x34,0x15,0x9e,0x7a,0x37,0x1f,0x3c,0xe4,0x7a,0xb3, +0x1f,0x34,0x7a,0xb3,0x1f,0x35,0x7e,0x73,0x2a,0x6f,0x7a,0x73,0x1f,0x36,0x7a,0xf3, +0x1f,0x37,0x7a,0xb3,0x1f,0x38,0x7a,0xb3,0x1f,0x39,0x7e,0x8, 0x1f,0x34,0x12,0x90, +0x50,0x6d,0x22,0x7d,0x3, 0x6d,0x11,0x7e,0x37,0x15,0xa0,0x2f,0x10,0x7e,0x33,0x1f, +0x36,0x6d,0x0, 0x12,0x1f,0x7, 0xa, 0x1f,0x6d,0x0, 0x12,0x1f,0x7, 0xda,0xf8,0x22, +0x12,0xc, 0x29,0x7e,0x37,0x15,0x9e,0x22,0x7a,0x37,0x1f,0x38,0x7e,0x34,0x15,0xa8, +0x7a,0x37,0x1f,0x3c,0x7e,0x34,0x15,0x9e,0x7a,0x37,0x1f,0x3a,0x7e,0x73,0x2a,0x6f, +0x7a,0x73,0x1f,0x35,0x7e,0x73,0x2a,0x70,0x7a,0x73,0x1f,0x34,0x7e,0x37,0x2a,0x5c, +0x7a,0x37,0x1f,0x3e,0x7e,0x37,0x2a,0x5e,0x7a,0x37,0x1f,0x40,0x7e,0x37,0x2a,0x60, +0x7a,0x37,0x1f,0x42,0x74,0x1, 0x7a,0xb3,0x1f,0x36,0x7a,0xb3,0x1f,0x37,0x7e,0x8, +0x1f,0x34,0x7e,0x18,0x1f,0x44,0x12,0x8, 0x0, 0x7e,0x37,0x1f,0x4e,0x7e,0x27,0x1f, +0x4a,0xbd,0x23,0x28,0x2, 0x7d,0x32,0x22,0x74,0xc8,0x7a,0xb3,0x39,0x6, 0xc2,0x17, +0x80,0xa, 0x12,0x45,0xd6,0x30,0x17,0x4, 0x75,0xe9,0xff,0x22,0x12,0x47,0xff,0x68, +0xf1,0x22,0x74,0x1, 0x12,0x90,0xf1,0x20,0x17,0x6, 0x12,0x46,0x4e,0x12,0x90,0xfa, +0x7e,0xb3,0x34,0x3a,0xb4,0x1, 0x6, 0x12,0x90,0xb8,0x12,0x90,0xfa,0xe4,0x2, 0x90, +0xf1,0xbe,0xb0,0x8, 0x50,0x3, 0x12,0x90,0xff,0x22,0xd2,0x4, 0x2, 0x45,0x5a,0xa, +0x5b,0x2e,0x54,0x0, 0x8, 0xf5,0xcc,0x22,0x12,0x47,0xff,0x68,0xfb,0x20,0x93,0xfd, +0x22,0x7e,0x34,0x61,0x59,0x2, 0x23,0x9e,0x7e,0xb3,0x37,0x6, 0x70,0x2e,0x7e,0x73, +0x36,0xe9,0xbe,0x70,0x10,0x40,0x2, 0x6c,0x77,0x7e,0xb3,0x37,0x31,0xb4,0x1, 0x3, +0x7e,0x70,0x6, 0xa, 0x37,0x2e,0x34,0xf, 0xf0,0x12,0x91,0x6d,0x7c,0xab,0xe5,0x4e, +0xa, 0x3b,0x2e,0x37,0x38,0x83,0x7a,0x37,0x38,0x83,0x80,0xc, 0x7e,0xa3,0x36,0xea, +0xbe,0xa0,0x7f,0x28,0x3, 0x7e,0xa0,0x7f,0x7c,0xba,0x2, 0x91,0x5d,0x75,0x4e,0x0, +0x7a,0xb3,0x39,0x6, 0xc2,0x17,0x22,0x2d,0x32,0x2e,0x34,0x20,0xf0,0x7a,0x71,0x82, +0x7a,0x61,0x83,0xe4,0x93,0x22,0x7e,0xb3,0x38,0x86,0x70,0x4, 0x74,0x1, 0x80,0x1, +0xe4,0x7a,0xb3,0x38,0x86,0x22,0x7f,0x20,0xc2,0x4, 0x7e,0x2b,0x60,0x29,0x72,0x0, +0x2, 0x9c,0x76,0x1a,0x37,0x12,0x21,0x0, 0x7c,0x27,0x29,0x72,0x0, 0x1, 0x29,0x32, +0x0, 0x3, 0x9c,0x37,0x1a,0x33,0x12,0x21,0x0, 0x7c,0x37,0x1a,0x23,0x1a,0x32,0x9d, +0x32,0x12,0x21,0x0, 0x7c,0x67,0x7c,0x72,0xbc,0x32,0x58,0x2, 0x7c,0x73,0xbe,0x60, +0x5, 0x18,0x5, 0xbe,0x70,0x6, 0x58,0x8, 0x7e,0x37,0x37,0xf3,0x4d,0x33,0x68,0x2, +0xd2,0x4, 0xa2,0x4, 0x22,0x7c,0xbd,0x7c,0x7e,0x7f,0x4, 0xca,0x3b,0x7f,0x70,0x7c, +0xe7,0x7c,0xdb,0x7e,0xc0,0x4, 0x7e,0xb3,0x2a,0x6d,0xf5,0x28,0x7e,0xb3,0x2a,0x6e, +0xf5,0x27,0x7e,0x34,0x62,0xa, 0x12,0x87,0xbc,0x6c,0xff,0x12,0x2f,0xff,0x7f,0x51, +0xe5,0x28,0xa, 0x3b,0x1b,0x34,0xa, 0xcd,0xbd,0xc3,0x58,0x14,0xe5,0x27,0xa, 0x3b, +0x1b,0x34,0xa, 0xce,0xbd,0xc3,0x58,0x8, 0x4c,0xee,0x68,0x4, 0x4c,0xdd,0x78,0x3, +0x4e,0xf0,0x10,0xb, 0x5a,0x30,0x7e,0x14,0x62,0xa, 0x12,0x87,0xee,0x8, 0xc, 0x7e, +0x27,0x28,0x8a,0xbe,0x24,0x3, 0x20,0x8, 0x2, 0x61,0x2a,0xb, 0xa, 0xc0,0x1e,0xc4, +0xbd,0x3c,0x8, 0xc, 0x7e,0xc7,0x28,0x8a,0xbe,0xc4,0x3, 0x20,0x58,0x2, 0x61,0x2a, +0x6c,0xaa,0x7c,0x8d,0x80,0x1c,0x7c,0x9e,0xbe,0x80,0x0, 0x48,0x11,0x7e,0xb3,0x2a, +0x6d,0xbc,0xb8,0x8, 0x9, 0x12,0x93,0x61,0x58,0x14,0xb, 0xa0,0x80,0x2, 0xb, 0xa0, +0x1b,0x80,0x1a,0x2c,0x1a,0x3d,0x9d,0x32,0x1a,0xc8,0xbd,0xc3,0x18,0xd8,0xbc,0xca, +0x18,0x5, 0x4e,0xf0,0x1, 0x61,0x2a,0x6c,0xaa,0x7c,0x8d,0x80,0x1c,0x7c,0x9e,0xbe, +0x80,0x0, 0x48,0x11,0x7e,0xb3,0x2a,0x6d,0xbc,0xb8,0x8, 0x9, 0x12,0x93,0x61,0x58, +0x14,0xb, 0xa0,0x80,0x2, 0xb, 0xa0,0xb, 0x80,0x1a,0x2c,0x1a,0x3d,0x2d,0x32,0x1a, +0xc8,0xbd,0xc3,0x48,0xd8,0xbc,0xca,0x18,0x5, 0x4e,0xf0,0x2, 0x80,0x6c,0x6c,0xaa, +0x7c,0x9e,0x80,0x1c,0x7c,0x8d,0xbe,0x90,0x0, 0x48,0x11,0x7e,0xb3,0x2a,0x6e,0xbc, +0xb9,0x8, 0x9, 0x12,0x93,0x61,0x58,0x14,0xb, 0xa0,0x80,0x2, 0xb, 0xa0,0x1b,0x90, +0x1a,0x2c,0x1a,0x3e,0x9d,0x32,0x1a,0xc9,0xbd,0xc3,0x18,0xd8,0xbc,0xca,0x18,0x5, +0x4e,0xf0,0x4, 0x80,0x35,0x6c,0xaa,0x7c,0x9e,0x80,0x1c,0x7c,0x8d,0xbe,0x90,0x0, +0x48,0x11,0x7e,0xb3,0x2a,0x6e,0xbc,0xb9,0x8, 0x9, 0x12,0x93,0x61,0x58,0x14,0xb, +0xa0,0x80,0x2, 0xb, 0xa0,0xb, 0x90,0x1a,0x2c,0x1a,0x3e,0x2d,0x32,0x1a,0xc9,0xbd, +0xc3,0x48,0xd8,0xbc,0xca,0x18,0x3, 0x4e,0xf0,0x8, 0x4c,0xff,0x68,0x2e,0x7e,0x7b, +0xb0,0xbc,0xbd,0x40,0x3, 0x7a,0x7b,0xd0,0x29,0xb7,0x0, 0x2, 0xbc,0xbd,0x38,0x4, +0x39,0xd7,0x0, 0x2, 0x29,0xb7,0x0, 0x1, 0xbc,0xbe,0x40,0x4, 0x39,0xe7,0x0, 0x1, +0x29,0xb7,0x0, 0x3, 0xbc,0xbe,0x38,0x4, 0x39,0xe7,0x0, 0x3, 0x7c,0xbf,0xda,0x3b, +0x22,0x7c,0xb8,0x7c,0x79,0x12,0x2c,0x40,0xbd,0x3d,0x22,0x7f,0x60,0x7e,0x6b,0xa0, +0xbe,0xa0,0xa, 0x50,0x1b,0x7e,0x14,0x0, 0x6, 0xca,0x19,0x74,0x6, 0xa4,0x7f,0x6, +0x2d,0x15,0xb, 0x14,0x12,0x20,0xb9,0x1b,0xfd,0x7e,0x6b,0xb0,0x4, 0x7a,0x6b,0xb0, +0x22,0x6c,0xaa,0x7e,0x63,0x2a,0x6e,0x7e,0x73,0x2a,0x6d,0xac,0x76,0x7d,0x13,0x1e, +0x14,0x7e,0x27,0x28,0x88,0x2e,0x27,0x28,0x86,0xbd,0x21,0x38,0xa, 0x1e,0x34,0x1e, +0x34,0xbe,0x37,0x28,0x86,0x50,0x29,0x90,0x60,0x51,0xe4,0x93,0x1e,0xb0,0xa, 0x2b, +0x7e,0xb3,0x26,0xf7,0xa, 0x3b,0xbd,0x32,0x8, 0x16,0x90,0x60,0x50,0xe4,0x93,0x1e, +0xb0,0xa, 0x2b,0x7e,0xb3,0x26,0xf6,0xa, 0x3b,0xbd,0x32,0x8, 0x3, 0x7e,0xa0,0x1, +0x7c,0xba,0x22,0xca,0x3b,0x6d,0x11,0x7e,0xe3,0x2a,0x2, 0x4c,0xee,0x78,0x23,0x6c, +0xff,0x80,0x1a,0x74,0x2, 0xac,0xbf,0x12,0x95,0x90,0x7e,0x70,0x9, 0xac,0x7f,0x19, +0xa3,0x34,0xca,0x74,0x2, 0xa, 0x3f,0x19,0xb3,0x35,0x34,0xb, 0xf0,0x12,0x5e,0x2d, +0x38,0xe1,0x12,0x97,0xc0,0x7e,0x24,0x0, 0x14,0xad,0x32,0x7d,0x43,0x2e,0x44,0x3, +0x20,0x6c,0xff,0xa1,0x69,0x74,0x9, 0xac,0xbf,0x9, 0xd5,0x28,0xb2,0x5e,0xd0,0xf, +0x12,0x95,0xa1,0x38,0x2, 0xa1,0x67,0xa, 0x1d,0x9, 0xb1,0x29,0xbc,0xbe,0xb0,0x1, +0x78,0x2, 0xa1,0x4d,0x75,0x24,0x0, 0xa1,0x3f,0x7e,0xa1,0x24,0x74,0x9, 0xa4,0x9, +0xc5,0x34,0xca,0xbc,0xcd,0x68,0x2, 0xa1,0x3d,0x49,0x25,0x34,0xc8,0x74,0x9, 0xac, +0xbf,0x49,0x35,0x28,0xb0,0x9d,0x32,0x12,0x21,0x0, 0x7d,0x3, 0x7e,0xa1,0x24,0x74, +0x9, 0xa4,0x49,0x25,0x34,0xc6,0x74,0x9, 0xac,0xbf,0x12,0x96,0x1b,0x2d,0x3, 0xa, +0x1c,0x9, 0xa1,0x35,0x34,0xbe,0xa0,0x0, 0x28,0x17,0x7e,0x30,0x2, 0xac,0x3c,0x59, +0x1, 0x35,0x20,0xa, 0x1c,0x2e,0x14,0x35,0x34,0x7c,0xba,0x14,0x7a,0x19,0xb0,0xa1, +0x67,0x74,0x2, 0xac,0xbc,0x49,0x15,0x35,0x20,0xbe,0x14,0x0, 0x32,0x28,0x8, 0x7d, +0x31,0x2d,0x34,0xbd,0x30,0x40,0x20,0xbe,0x14,0x0, 0x32,0x28,0x8, 0xbe,0x4, 0x0, +0x32,0x28,0x2, 0x80,0x72,0x7d,0x31,0x2e,0x34,0x0, 0x32,0xbd,0x30,0x50,0x8, 0xbe, +0x14,0x0, 0x32,0x28,0x2, 0x80,0x60,0xbe,0x4, 0x0, 0xa0,0x28,0x56,0xa, 0x1d,0x9, +0xb1,0x29,0xbc,0x70,0x4, 0x74,0x3, 0x80,0x2, 0x74,0x1, 0xa, 0x1d,0x19,0xb1,0x29, +0xbc,0x74,0x3, 0xa, 0x1c,0x19,0xb1,0x29,0xc6,0xbe,0xe0,0x0, 0x28,0x69,0x1b,0xe0, +0x7e,0x70,0x9, 0xac,0x7f,0x2e,0x34,0x28,0xae,0x7e,0x14,0x1f,0x34,0x74,0x9, 0x12, +0x1f,0x8c,0x7e,0x70,0x9, 0xac,0x7e,0x12,0x97,0xae,0xac,0x3f,0x12,0x95,0x98,0x7e, +0x34,0x1f,0x34,0x7e,0x30,0x9, 0xac,0x3e,0x12,0x95,0x98,0x1b,0xf0,0x74,0x2, 0xac, +0xbc,0x80,0x4, 0x74,0x2, 0xac,0xbc,0x59,0x5, 0x35,0x20,0x80,0x2a,0x5, 0x24,0x90, +0x60,0x99,0xe4,0x93,0xbe,0xb1,0x24,0x28,0x2, 0x81,0x49,0x80,0x1a,0x6d,0x11,0x74, +0x2, 0xac,0xbd,0x12,0x95,0x90,0x7e,0x30,0x9, 0xac,0x3d,0x19,0xa1,0x34,0xca,0x74, +0x2, 0xa, 0x1d,0x19,0xb1,0x35,0x34,0xb, 0xf0,0xbc,0xef,0x28,0x2, 0x81,0x25,0xe4, +0x7a,0xb3,0x16,0x92,0x90,0x60,0x99,0x12,0x5f,0xc6,0xca,0x59,0x7e,0x18,0x28,0xae, +0x7e,0x8, 0x34,0xc6,0x12,0x20,0xb9,0x1b,0xfd,0x7a,0xe3,0x2a,0x2, 0xda,0x3b,0x22, +0x59,0x15,0x35,0x20,0x7e,0xa0,0xff,0x22,0x2e,0x14,0x28,0xae,0x74,0x9, 0x2, 0x1f, +0x8c,0x90,0x60,0x99,0xe4,0x93,0xbc,0xbd,0x22,0xca,0x3b,0x7c,0xfb,0x6c,0xee,0x80, +0x63,0x6c,0xdd,0x80,0x16,0x74,0x9, 0xac,0xbd,0x9, 0x65,0x29,0x66,0x74,0x9, 0xac, +0xbe,0x9, 0x75,0x28,0xb2,0xbc,0x67,0x68,0x7, 0xb, 0xd0,0x12,0x95,0xa1,0x38,0xe5, +0x12,0x95,0xa1,0x28,0x43,0x74,0x9, 0xac,0xbd,0x9, 0xc5,0x29,0x66,0x12,0x81,0xb3, +0x74,0x9, 0xac,0xbd,0x12,0x87,0xe5,0x12,0x96,0x1b,0x2d,0x31,0x7a,0x35,0x24,0xa, +0x3c,0x9, 0xb3,0x29,0xbc,0xb4,0x1, 0xe, 0x6d,0x33,0x74,0x2, 0xac,0xbc,0x59,0x35, +0x34,0x8b,0x59,0x35,0x34,0xb0,0x7e,0x35,0x24,0x7c,0xbd,0x7c,0x5e,0x7c,0x4c,0x12, +0x87,0xb3,0xb, 0xe0,0xbc,0xfe,0x38,0x99,0xda,0x3b,0x22,0x49,0x35,0x28,0xae,0x9d, +0x32,0x2, 0x21,0x0, 0x7e,0xb3,0x37,0x31,0x70,0x3, 0x12,0x93,0xe3,0x2, 0x96,0x30, +0xca,0x79,0x7e,0xf3,0x2a,0x2, 0x7e,0xe3,0x2a,0x3, 0x7c,0xbf,0x7c,0x7e,0x12,0x96, +0x7c,0x7c,0xbf,0x12,0x97,0x10,0x4c,0xee,0x78,0x14,0x12,0x5f,0xc2,0xca,0x59,0x7e, +0x18,0x28,0xae,0x7e,0x8, 0x29,0x62,0x12,0x20,0xb9,0x1b,0xfd,0x80,0xb, 0x7e,0xb3, +0x2a,0x9, 0x70,0x5, 0x7c,0xbf,0x12,0x95,0xa9,0x7c,0xbf,0x12,0x9f,0x90,0xbe,0xf0, +0x0, 0x28,0x6, 0x74,0x1, 0x7a,0xb3,0x2a,0xb, 0xda,0x79,0x22,0x7c,0x67,0x7c,0x7b, +0xa5,0xbf,0x0, 0x17,0xbe,0x60,0x0, 0x28,0xf, 0x74,0x1, 0x7a,0xb3,0x2a,0x7, 0xe4, +0x7a,0xb3,0x2a,0x9, 0x7a,0xb3,0x2a,0xa, 0x2, 0x96,0xeb,0xa5,0xbe,0x0, 0x1d,0x6c, +0xaa,0x80,0xe, 0x7e,0x60,0xff,0x7e,0x50,0x9, 0xac,0x5a,0x19,0x62,0x29,0x66,0xb, +0xa0,0x12,0x5e,0x25,0x38,0xed,0x74,0x1, 0x7a,0xb3,0x2a,0x6, 0x6c,0xaa,0x80,0x26, +0x7e,0x30,0x9, 0xac,0x3a,0x2e,0x14,0x28,0xae,0xb, 0x18,0x20,0x12,0x47,0x81,0x1b, +0x18,0x20,0x7e,0x30,0x9, 0xac,0x3a,0x2e,0x14,0x28,0xb0,0xb, 0x18,0x20,0x12,0x47, +0x81,0x1b,0x18,0x20,0xb, 0xa0,0xbc,0x7a,0x38,0xd6,0x22,0x12,0x97,0x4, 0x7e,0x8, +0x34,0xb0,0xe4,0x12,0x20,0xde,0x90,0x60,0x99,0x12,0x97,0x8, 0x7e,0x8, 0x34,0x8b, +0xe4,0x2, 0x20,0xde,0x90,0x60,0x99,0xe4,0x93,0x7c,0x7b,0x74,0x2, 0xac,0x7b,0x22, +0xca,0xd8,0xca,0x79,0x7c,0xdb,0x90,0x60,0x99,0xe4,0x93,0x7c,0xfb,0x6c,0x11,0x80, +0x21,0x7e,0x0, 0xff,0x74,0x9, 0xac,0xb1,0x19,0x5, 0x1f,0x38,0x7e,0x34,0x7f,0xff, +0x74,0x9, 0xac,0xb1,0x59,0x35,0x1f,0x34,0x74,0x9, 0xac,0xb1,0x59,0x35,0x1f,0x36, +0xb, 0x10,0xbc,0xf1,0x38,0xdb,0xe4,0x6c,0x77,0x7c,0x6d,0x12,0x97,0xb6,0x7c,0x7d, +0x7c,0x6f,0x12,0x97,0xb6,0x6c,0x0, 0x80,0x39,0x6c,0xee,0x80,0x16,0x74,0x9, 0xac, +0xbe,0x9, 0x65,0x1f,0x38,0x74,0x9, 0xac,0xb0,0x9, 0x75,0x28,0xb2,0xbc,0x76,0x68, +0x6, 0xb, 0xe0,0xbc,0x1e,0x38,0xe6,0xbc,0x1e,0x78,0x15,0x7e,0x70,0x9, 0xac,0x70, +0x12,0x97,0xae,0xac,0x31,0x2e,0x14,0x1f,0x34,0x74,0x9, 0x12,0x1f,0x8c,0xb, 0x10, +0xb, 0x0, 0xbc,0xf0,0x38,0xc3,0x74,0x9, 0xac,0xbf,0xca,0x59,0x7e,0x18,0x1f,0x34, +0x7e,0x8, 0x29,0x62,0x12,0x20,0xb9,0x1b,0xfd,0xda,0x79,0xda,0xd8,0x22,0x2e,0x34, +0x28,0xae,0x7e,0x30,0x9, 0x22,0x7e,0x8, 0x1f,0x34,0x12,0x9e,0x37,0x7c,0x1b,0x22, +0x7e,0x73,0x2a,0x3, 0xbe,0x73,0x2a,0x2, 0x78,0x17,0x7e,0x73,0x2a,0x2, 0xbe,0x70, +0x1, 0x40,0xe, 0x7e,0x37,0x34,0x9f,0xbe,0x34,0x0, 0x14,0x38,0xe, 0xb, 0x34,0x80, +0x6, 0x7e,0x37,0x34,0x9f,0x1e,0x34,0x7a,0x37,0x34,0x9f,0x7e,0xb3,0x2a,0x2, 0x70, +0x6, 0x6d,0x33,0x7a,0x37,0x34,0x9f,0x7e,0x37,0x34,0x9f,0x22,0xca,0xf8,0x7c,0xfb, +0x6d,0xdd,0x7c,0xbf,0x12,0x98,0xea,0x7d,0xe3,0x7c,0xbf,0x12,0x37,0x6f,0x7d,0xf3, +0x74,0x2, 0xac,0xbf,0x9, 0x95,0x26,0xfb,0x7c,0xbf,0x12,0x9a,0xed,0x40,0x2, 0x1, +0xd4,0x74,0x2, 0xac,0xbf,0x9, 0xa5,0x26,0xfa,0xbe,0xa0,0x0, 0x28,0x9, 0xa, 0x3a, +0x1b,0x34,0x12,0x98,0xd8,0x7d,0xd3,0x12,0x98,0xdf,0xbd,0xc3,0x58,0xb, 0xa, 0xca, +0xb, 0xc4,0x7d,0x3c,0x12,0x98,0xd8,0x2d,0xd3,0x12,0x9b,0xf, 0x7d,0xd3,0xbe,0xa0, +0x0, 0x28,0x56,0x12,0x98,0xdf,0xbd,0xc3,0x58,0x4f,0xbe,0x90,0x0, 0x28,0x4a,0xbe, +0x90,0x0, 0x28,0x45,0xbe,0xf4,0x0, 0xc8,0x8, 0x3f,0x7d,0x3d,0x3e,0x34,0x3e,0x34, +0xbd,0x3f,0x8, 0x35,0x7e,0x70,0x2, 0xac,0x79,0x49,0x33,0x4, 0xfc,0xbe,0x34,0x1, +0x2c,0x8, 0x26,0xa, 0x2a,0x7e,0xb3,0x2a,0x74,0x12,0x9b,0x18,0xbe,0x34,0x1, 0x90, +0x8, 0x17,0xbe,0xf4,0x1, 0x5e,0x58,0xd, 0x7e,0x34,0x0, 0x3, 0xad,0x3e,0xbd,0x3f, +0x8, 0x3, 0xe4,0x80,0x30,0x74,0x1, 0x80,0x2c,0x90,0x60,0xab,0xe4,0x93,0xbc,0xb9, +0x78,0x22,0x7c,0xba,0x7c,0x79,0x12,0x2c,0x40,0xbe,0x34,0x0, 0x96,0x8, 0x12,0x74, +0x2, 0xac,0xb9,0x49,0x35,0x4, 0xfc,0xbe,0x34,0x0, 0x32,0x8, 0x4, 0x74,0x1, 0x80, +0x4, 0xe4,0x80,0x1, 0xe4,0xda,0xf8,0x22,0x7c,0xb7,0x7c,0x79,0x2, 0x2c,0x40,0x7e, +0xb3,0x2a,0x6f,0xa, 0x3b,0x1b,0x34,0xa, 0xca,0x22,0xca,0x79,0x7c,0x8b,0x6c,0xaa, +0x9f,0x77,0x12,0x9a,0x2a,0x1a,0x79,0x1b,0x74,0x80,0x4c,0x1a,0x38,0x1b,0x34,0x7c, +0xe7,0x80,0x38,0xbc,0x9f,0x78,0x4, 0xbc,0x8e,0x68,0x2e,0xbe,0xf0,0x0, 0x48,0x29, +0x7e,0xb3,0x2a,0x6f,0xa, 0x2b,0x1a,0x3f,0xbd,0x32,0x58,0x1d,0xbe,0xe0,0x0, 0x48, +0x18,0x7e,0xb3,0x2a,0x70,0xa, 0x2b,0x1a,0x3e,0xbd,0x32,0x58,0xc, 0x7c,0xbf,0x7c, +0x7e,0x12,0x2c,0x40,0x12,0x99,0x65,0xb, 0xa0,0xb, 0xe0,0x1a,0x28,0xb, 0x24,0x1a, +0x3e,0xbd,0x32,0x8, 0xbe,0xb, 0xf0,0x1a,0x29,0xb, 0x24,0x1a,0x3f,0xbd,0x32,0x8, +0xaa,0x4c,0xaa,0x78,0x4, 0x6d,0x33,0x80,0x9, 0xa, 0x1a,0x6d,0x0, 0x7f,0x17,0x12, +0x1f,0x58,0xda,0x79,0x22,0x1a,0x26,0x1a,0x24,0x2f,0x71,0x22,0xca,0x79,0x7c,0xa7, +0x7c,0x8b,0x7e,0xb3,0x2a,0x6f,0x7a,0xb3,0x1f,0x34,0x7e,0xb3,0x2a,0x70,0x7a,0xb3, +0x1f,0x35,0x12,0x9a,0x2a,0x9f,0x77,0x1a,0x3a,0x1a,0x79,0x9d,0x73,0x41,0x17,0x7a, +0xf1,0x2d,0xbe,0xf0,0x0, 0x58,0xe, 0x1a,0x3f,0x1a,0x29,0x9d,0x23,0x1a,0x39,0x2d, +0x32,0x7c,0xb7,0xf5,0x2d,0x7e,0xb3,0x1f,0x34,0xbc,0xbf,0x18,0xe, 0x1a,0x39,0x1a, +0x2f,0x9d,0x23,0x1a,0x39,0x9d,0x32,0x7c,0xb7,0xf5,0x2d,0x1a,0x2a,0x1a,0x38,0x9d, +0x32,0x7c,0xb7,0xf5,0x2c,0x80,0x40,0x85,0x2c,0x2e,0xe5,0x2c,0xbe,0xb0,0x0, 0x58, +0x10,0xe5,0x2c,0x1a,0x3b,0x1a,0x28,0x9d,0x23,0x1a,0x38,0x2d,0x32,0x7c,0xb7,0xf5, +0x2e,0x7e,0xb3,0x1f,0x35,0xbe,0xb1,0x2c,0x18,0x10,0x1a,0x38,0xe5,0x2c,0x1a,0x2b, +0x9d,0x23,0x1a,0x38,0x9d,0x32,0x7c,0xb7,0xf5,0x2e,0xe5,0x2d,0x7e,0x71,0x2e,0x12, +0x2c,0x40,0x12,0x99,0x65,0x5, 0x2c,0x1a,0x3a,0x1a,0x28,0x2d,0x23,0xe5,0x2c,0x1a, +0x3b,0xbd,0x32,0x8, 0xb2,0xb, 0xf0,0x1a,0x3a,0x1a,0x29,0x2d,0x23,0x1a,0x3f,0xbd, +0x32,0x18,0x2, 0x21,0x8f,0x7f,0x17,0xda,0x79,0x22,0x7e,0x70,0x2, 0xac,0x78,0x9, +0x93,0x26,0xfa,0x9, 0x83,0x26,0xfb,0x22,0xca,0xd8,0xca,0x79,0x7e,0x34,0x62,0x27, +0x12,0x9a,0xe5,0x12,0x9b,0x23,0x50,0x2, 0x41,0xe0,0x7e,0x34,0x62,0x2b,0x12,0x23, +0x9e,0x7a,0x35,0x2a,0x90,0x62,0x26,0xe4,0x93,0x70,0x2, 0x41,0xe0,0x7e,0xb3,0x28, +0xa8,0xb4,0x1, 0x7, 0x7e,0x34,0x62,0x29,0x12,0x9a,0xe5,0x7e,0x37,0x28,0x8a,0xbe, +0x34,0x4, 0x4c,0x8, 0x6b,0x6c,0xdd,0x80,0x5f,0xc2,0x3, 0x7c,0xbd,0x12,0x37,0x6f, +0x7a,0x35,0x26,0x7c,0xbd,0x7e,0x70,0x1, 0x12,0x99,0x6c,0x7a,0x35,0x24,0x9e,0x35, +0x26,0x7a,0x35,0x24,0x7e,0x35,0x26,0x3e,0x34,0x3e,0x34,0x12,0x8f,0xdc,0x7a,0x35, +0x28,0xbe,0x75,0x28,0x58,0x3, 0x7a,0x75,0x28,0x7e,0x35,0x28,0xbe,0x35,0x24,0x8, +0xa, 0x7e,0x35,0x2a,0xbe,0x35,0x26,0x8, 0x2, 0xd2,0x3, 0x7c,0xbd,0x12,0x9a,0xed, +0x50,0x2, 0xc2,0x3, 0x30,0x3, 0xf, 0x7c,0xbd,0x6c,0x77,0x12,0x51,0x5f,0x7e,0x70, +0x2, 0xac,0x7d,0x12,0x37,0x9f,0xb, 0xd0,0x7e,0x73,0x28,0x84,0xbc,0x7d,0x38,0x99, +0xda,0x79,0xda,0xd8,0x22,0x7e,0x24,0x0, 0xff,0xb, 0x1a,0x70,0x22,0x7c,0x4b,0x74, +0x2, 0xac,0xb4,0x9, 0x55,0x26,0xfa,0x9, 0x65,0x26,0xfb,0x7e,0x73,0x28,0x8c,0xbc, +0x75,0x78,0xa, 0x7e,0x73,0x28,0x8d,0xbc,0x76,0x78,0x2, 0xd3,0x22,0xc3,0x22,0x7e, +0x24,0x0, 0x2, 0x7d,0x3d,0x2, 0x1e,0xb9,0xa, 0x3b,0x2d,0x32,0x3e,0x34,0x49,0x33, +0x4, 0xfc,0x22,0x6c,0x99,0x6c,0x88,0x80,0xf, 0x7c,0xb8,0x12,0x37,0x6f,0xbe,0x34, +0x1, 0xf4,0x8, 0x2, 0xb, 0x90,0xb, 0x80,0x7e,0x73,0x28,0x84,0xbc,0x78,0x38,0xe9, +0xbe,0x90,0x1, 0x38,0x2, 0xc3,0x22,0xd3,0x22,0xca,0x3b,0x7e,0x77,0x2a,0x5c,0x12, +0x9d,0xa1,0x7d,0x63,0x3e,0x34,0x3e,0x34,0x7e,0xe4,0x0, 0xa, 0x12,0x9b,0xd7,0x7e, +0xb3,0x28,0xa8,0x60,0xf, 0x7e,0x37,0x35,0xe5,0xbd,0x36,0x48,0x7, 0x3e,0x34,0x3e, +0x34,0x12,0x9b,0xd7,0xbe,0x64,0x4, 0x4c,0x8, 0xf, 0x12,0x9b,0x23,0x50,0x6, 0x7e, +0xb3,0x28,0xa8,0x60,0x4, 0x74,0xa, 0x80,0x13,0x7e,0xb3,0x28,0xa8,0x60,0xc, 0x7e, +0xb3,0x35,0xe3,0xbe,0xb0,0x0, 0x28,0x8, 0x14,0x80,0x1, 0xe4,0x7a,0xb3,0x35,0xe3, +0x7e,0xe7,0x2a,0x5c,0x7d,0x3e,0x12,0x45,0xe, 0x7e,0x53,0x35,0xe3,0xbe,0x50,0x0, +0x28,0x12,0xbd,0x3f,0x58,0x4, 0x7d,0xf3,0x80,0x6, 0xbd,0xef,0x8, 0x2, 0x7d,0xfe, +0x7a,0xf7,0x2a,0x5c,0x12,0x9b,0xdf,0x28,0x3, 0x12,0x37,0xc2,0x7a,0x67,0x35,0xe5, +0x7a,0x77,0x2a,0x5c,0xda,0x3b,0x22,0x7d,0x2e,0x12,0x1e,0xb9,0x7d,0xf3,0x22,0x7e, +0x73,0x28,0x84,0xbe,0x70,0x1, 0x22,0xca,0x79,0xc2,0x3, 0x7e,0xf0,0x3, 0x7e,0xe3, +0x2a,0x3, 0x12,0x9b,0xdf,0x28,0x72,0x7c,0xbf,0x12,0x2c,0x47,0x4c,0xee,0x68,0xe, +0x7e,0x63,0x33,0xc0,0xa5,0xbe,0x0, 0xa, 0x7e,0xb3,0x33,0xc1,0x70,0x4, 0xd2,0x3, +0x80,0x2e,0xbe,0xe0,0x1, 0x28,0xb, 0xe5,0x4d,0xbe,0xb0,0x8, 0x28,0x4, 0xd2,0x3, +0x80,0x1e,0xd2,0x3, 0x12,0x9c,0xf6,0x78,0xa, 0xa5,0xbe,0x0, 0x6, 0x6c,0xff,0xc2, +0x3, 0x80,0xd, 0x9e,0x73,0x33,0xc0,0xbc,0x7e,0x78,0x5, 0x7e,0xf0,0x2, 0xc2,0x3, +0x20,0x3, 0x5, 0x7c,0xbf,0x12,0x2c,0x47,0x7e,0xa3,0x33,0xc2,0x7a,0xa3,0x28,0x84, +0x74,0x2, 0xa4,0xca,0x59,0x7e,0x18,0x33,0xc3,0x7e,0x8, 0x26,0xfa,0x12,0x20,0xb9, +0x1b,0xfd,0x12,0x9c,0x6f,0xf5,0x4d,0x80,0x3, 0x75,0x4d,0x64,0xda,0x79,0x22,0x7e, +0x30,0x64,0x7e,0x20,0x64,0x6c,0x11,0x80,0x54,0xa, 0x31,0xb, 0x34,0x7c,0x7, 0x80, +0x42,0x7e,0x70,0x2, 0xac,0x70,0x9, 0xb3,0x26,0xfa,0x12,0x9c,0xee,0x9, 0xb3,0x26, +0xfa,0x12,0x2f,0xd6,0x7c,0x97,0x7e,0x70,0x2, 0xac,0x70,0x9, 0xb3,0x26,0xfb,0x12, +0x9c,0xee,0x9, 0xb3,0x26,0xfb,0x12,0x2f,0xd6,0x7c,0x87,0xbe,0x90,0x0, 0x28,0x6, +0xbc,0x39,0x28,0x2, 0x7c,0x39,0xbe,0x80,0x0, 0x28,0x6, 0xbc,0x28,0x28,0x2, 0x7c, +0x28,0xb, 0x0, 0x7e,0xb3,0x28,0x84,0xbc,0xb0,0x38,0xb6,0xb, 0x10,0x7e,0xb3,0x28, +0x84,0xbc,0xb1,0x38,0xa4,0xa5,0xbb,0x64,0x2, 0x6c,0x33,0xa5,0xba,0x64,0x2, 0x6c, +0x22,0xbc,0x23,0x28,0x4, 0x7c,0xa2,0x80,0x2, 0x7c,0xa3,0x7c,0xba,0x22,0xa, 0x2b, +0x7e,0x70,0x2, 0xac,0x71,0x22,0x7e,0x73,0x28,0x84,0xbc,0x7e,0x22,0xca,0x79,0x6c, +0x88,0x80,0x72,0x74,0x2, 0xac,0xb8,0x9, 0xf5,0x26,0xfa,0x9, 0x75,0x26,0xfb,0x7a, +0x71,0x24,0x7c,0xbf,0x12,0x9d,0x8b,0x50,0x5a,0x6c,0xee,0x80,0x51,0xbc,0xe8,0x68, +0x4b,0x7e,0x70,0x2, 0xac,0x7e,0x12,0x9d,0x80,0xf5,0x26,0x6c,0x99,0x90,0x60,0xaa, +0xe4,0x93,0x70,0x18,0x7e,0xb3,0x2a,0x70,0x14,0xbe,0xb1,0x26,0x78,0xe, 0xa, 0x2f, +0xe5,0x25,0xa, 0x3b,0x12,0x35,0x67,0x18,0x3, 0x7e,0x90,0x1, 0xbe,0x90,0x1, 0x78, +0x1b,0x7c,0xbe,0x12,0x37,0x6f,0x7d,0xf3,0x7c,0xb8,0x12,0x37,0x6f,0xbd,0x3f,0x8, +0x4, 0x7c,0xbe,0x80,0x2, 0x7c,0xb8,0x6c,0x77,0x12,0x51,0x5f,0xb, 0xe0,0x12,0x9c, +0xf6,0x38,0xaa,0xb, 0x80,0x7e,0x73,0x28,0x84,0xbc,0x78,0x38,0x86,0xda,0x79,0x22, +0x9, 0xb3,0x26,0xfa,0xf5,0x25,0x9, 0xb3,0x26,0xfb,0x22,0x7c,0xab,0x90,0x60,0xab, +0xe4,0x93,0xbc,0xb7,0x78,0x9, 0x7c,0xba,0x12,0x31,0x5a,0x50,0x2, 0xd3,0x22,0xc3, +0x22,0xca,0x3b,0x6d,0x44,0x7e,0xf3,0x28,0x84,0x6c,0xee,0x80,0x24,0x7c,0xbe,0x12, +0x2f,0xb7,0x60,0x1b,0x74,0x2, 0xac,0xbe,0x9, 0xd5,0x26,0xfa,0x9, 0xc5,0x26,0xfb, +0x7c,0xbd,0x7c,0x7c,0x12,0x2c,0x40,0x7d,0xf3,0xbd,0x4f,0x58,0x2, 0x7d,0x4f,0xb, +0xe0,0xbc,0xfe,0x38,0xd8,0x7d,0x34,0xda,0x3b,0x22,0x7e,0xb3,0x2a,0x2, 0x70,0x2d, +0x7e,0x73,0x2a,0x3, 0xbe,0x70,0x0, 0x28,0x24,0x7e,0xb3,0x34,0xc5,0x70,0x18,0x12, +0x9e,0x17,0x7e,0x73,0x2a,0x3, 0x7a,0x73,0x2a,0x2, 0x74,0x1, 0x7a,0xb3,0x2a,0x9, +0x7e,0xb3,0x34,0xc5,0x4, 0x80,0x1, 0xe4,0x7a,0xb3,0x34,0xc5,0x22,0xe4,0x7a,0xb3, +0x34,0xc5,0x7a,0xb3,0x2a,0x9, 0x22,0x7e,0x34,0x0, 0x3c,0xca,0x39,0x7e,0x18,0x35, +0xe9,0x7e,0x8, 0x36,0x25,0x12,0x20,0xb9,0x1b,0xfd,0x7e,0x73,0x28,0x94,0x7a,0x73, +0x35,0xe8,0x7a,0x73,0x28,0x93,0x22,0xca,0x3b,0x7c,0x46,0x7c,0xab,0x6c,0x66,0xc1, +0xd2,0x7c,0x57,0xc1,0xca,0x7e,0xf0,0x9, 0xac,0xf6,0x9, 0x87,0x29,0x66,0x7c,0x98, +0x7e,0xd0,0x9, 0xac,0xd5,0x9, 0xb6,0x28,0xb2,0xbc,0xb9,0x78,0x6b,0xbe,0x90,0xff, +0x68,0x66,0x12,0x9e,0xe2,0x39,0x87,0x0, 0x4, 0xa, 0xf9,0x9, 0xbf,0x29,0xbc,0x7e, +0xf0,0x9, 0x70,0xc, 0xac,0xf5,0x7d,0x97,0x2e,0x94,0x28,0xae,0x6d,0x88,0x80,0xa, +0xac,0xf6,0x7d,0x97,0x2e,0x94,0x29,0x62,0x6d,0x88,0xb, 0x4a,0xd0,0x12,0x9e,0xe2, +0x1b,0x7a,0xd0,0x69,0xf4,0x0, 0x2, 0x7e,0xf0,0x9, 0xac,0xfa,0x7f,0x60,0x2d,0xd7, +0x79,0xf6,0x0, 0x2, 0x7e,0xf0,0x9, 0xac,0xf5,0x9, 0x87,0x28,0xb3,0x12,0x9e,0xe2, +0x39,0x87,0x0, 0x5, 0x7e,0xf0,0x9, 0xac,0xf5,0x9, 0x87,0x28,0xb4,0x12,0x9e,0xe2, +0x39,0x87,0x0, 0x6, 0xb, 0xa0,0x80,0x8, 0xb, 0x50,0xbc,0x45,0x28,0x2, 0xc1,0x45, +0xb, 0x60,0x90,0x60,0x99,0xe4,0x93,0xbc,0xb6,0x28,0x2, 0xc1,0x41,0x7c,0xba,0xda, +0x3b,0x22,0x7e,0xf0,0x9, 0xac,0xfa,0x7f,0x70,0x2d,0xf7,0x22,0x7c,0xab,0x7e,0xb, +0xb0,0x60,0x3, 0xb4,0x2, 0x31,0xa, 0x4a,0x9, 0x74,0x34,0xa3,0xbe,0x73,0x34,0xad, +0x50,0xe, 0x7d,0x24,0x2e,0x24,0x34,0xa3,0x7c,0xb7,0x4, 0x7a,0x29,0xb0,0xd3,0x22, +0xbe,0x73,0x34,0xad,0x40,0x9, 0xbe,0x70,0xff,0x68,0x4, 0xe4,0x7a,0xb, 0xb0,0x74, +0xff,0x19,0xb4,0x34,0xa3,0x80,0x17,0xa, 0x3a,0x9, 0xb3,0x34,0xa3,0xbe,0xb0,0xff, +0x68,0x7, 0xe4,0x19,0xb3,0x34,0xa3,0xd3,0x22,0xe4,0x19,0xb3,0x34,0xa3,0xc3,0x22, +0xca,0xf8,0x7c,0xfb,0x7d,0xf3,0x7e,0x17,0x2a,0x62,0xbd,0x13,0x38,0x6, 0x7e,0x34, +0x1, 0x0, 0x80,0x15,0x6d,0x22,0x7c,0x56,0x7c,0x67,0x6c,0x77,0x12,0x1f,0x5, 0xbe, +0x34,0x0, 0x10,0x50,0x4, 0x7e,0x34,0x0, 0x10,0x74,0x2, 0xac,0xbf,0x49,0x25,0x34, +0xb0,0xbd,0x2f,0x28,0x6, 0x49,0x35,0x34,0x8b,0x80,0x4, 0x59,0x35,0x34,0x8b,0x59, +0xf5,0x34,0xb0,0xbe,0x34,0x1, 0x0, 0x28,0x4, 0x7e,0x34,0x1, 0x0, 0xda,0xf8,0x22, +0x6c,0xaa,0x80,0x49,0x7e,0x50,0x9, 0xac,0x5a,0x49,0x32,0x29,0x62,0x12,0x25,0x3c, +0x59,0x32,0x28,0xae,0x7e,0x50,0x9, 0xac,0x5a,0x49,0x32,0x29,0x64,0x12,0x25,0x3c, +0x59,0x32,0x28,0xb0,0x7e,0x90,0x9, 0xac,0x9a,0x9, 0xb4,0x29,0x66,0x19,0xb4,0x28, +0xb2,0x7e,0x90,0x9, 0xac,0x9a,0x9, 0xb4,0x29,0x67,0x19,0xb4,0x28,0xb3,0x7e,0x90, +0x9, 0xac,0x9a,0x9, 0xb4,0x29,0x68,0x19,0xb4,0x28,0xb4,0xb, 0xa0,0x12,0x5e,0x25, +0x38,0xb2,0x22,0x7e,0x8, 0x34,0xa2,0x7e,0x34,0x0, 0xd, 0xe4,0x2, 0x20,0xde,0x6c, +0x0, 0x6c,0x11,0x80,0x13,0x7c,0xb1,0x12,0x2f,0xb7,0x60,0xa, 0x12,0xa0,0x84,0x40, +0x5, 0x7e,0x0, 0x1, 0x80,0xa, 0xb, 0x10,0x7e,0x73,0x28,0x84,0xbc,0x71,0x38,0xe5, +0x7c,0xb0,0x6c,0x77,0x12,0xa0,0x49,0xbe,0x0, 0x1, 0x68,0xb, 0x7c,0xb0,0x7e,0x70, +0x1, 0x12,0xa0,0x49,0xb4,0x1, 0x21,0x6c,0x11,0x80,0x15,0x7c,0xb1,0x12,0x2f,0xb7, +0x60,0xc, 0x12,0xa0,0x84,0x50,0x7, 0x7c,0xb1,0x6c,0x77,0x12,0x51,0x5f,0xb, 0x10, +0x7e,0x3, 0x28,0x84,0xbc,0x1, 0x38,0xe3,0x22,0x7c,0xab,0xa5,0xbf,0x0, 0xc, 0x7e, +0xb3,0x36,0x61,0x7a,0xb3,0x36,0x62,0x7a,0xa3,0x36,0x61,0x7e,0xb3,0x36,0x62,0x60, +0x4, 0x74,0x8, 0x80,0xd, 0x7e,0xb3,0x28,0x84,0x70,0xb, 0x7e,0xb3,0x36,0x63,0x60, +0x5, 0x14,0x7a,0xb3,0x36,0x63,0x7e,0x73,0x36,0x63,0xbe,0x70,0x0, 0x28,0x3, 0x74, +0x1, 0x22,0xe4,0x22,0x74,0x2, 0xac,0xb1,0x9, 0x25,0x26,0xfa,0x9, 0x35,0x26,0xfb, +0x7c,0xb2,0x7c,0x73,0x7c,0xa7,0x7c,0x7b,0x90,0x60,0xaa,0xe4,0x93,0x60,0x2, 0x7c, +0xa7,0x90,0x60,0xab,0xe4,0x93,0xbc,0xba,0x78,0x2, 0xd3,0x22,0xc3,0x22,0xca,0xf8, +0x7e,0xd4,0x0, 0x9, 0x7e,0xb3,0x28,0x84,0x70,0x8, 0xf5,0x1e,0xc2,0x8, 0xc2,0x9, +0x80,0x71,0xbe,0xb0,0x2, 0x38,0x66,0xb4,0x2, 0x28,0x7e,0x73,0x26,0xfc,0xa, 0x27, +0x7e,0x73,0x26,0xfa,0x12,0xa1,0x4b,0xbe,0x34,0x0, 0x5, 0x58,0x15,0x7e,0x73,0x26, +0xfd,0xa, 0x27,0x7e,0x73,0x26,0xfb,0x12,0xa1,0x4b,0xbe,0x34,0x0, 0x5, 0x58,0x2, +0x80,0x4e,0x6c,0xff,0x80,0x30,0x7c,0xbf,0x12,0x37,0x81,0x1a,0x4b,0x7c,0xbf,0x12, +0x37,0x6f,0x7d,0x5d,0x3e,0x54,0xbd,0x54,0x58,0x4, 0xd2,0x9, 0x80,0xa, 0x7d,0x5d, +0xe, 0x54,0xbd,0x54,0x48,0x2, 0xc2,0x9, 0x20,0x9, 0x4, 0xbd,0xd4,0x58,0x5, 0x75, +0x1e,0x28,0x80,0xf, 0xb, 0xf0,0x12,0x52,0x66,0x38,0xcb,0x80,0x6, 0xe5,0x1e,0x24, +0xfb,0xf5,0x1e,0xe5,0x1e,0xbe,0xb0,0x0, 0x8, 0x6, 0xd2,0x8, 0x15,0x1e,0x80,0x5, +0x75,0x1e,0x0, 0xc2,0x8, 0xda,0xf8,0x22,0x7e,0x39,0x70,0xa, 0x37,0x9d,0x32,0x2, +0x21,0x0, 0xca,0x3b,0xf5,0x2a,0x7f,0x31,0x7a,0xd, 0x26,0xe4,0x7a,0xb3,0x22,0xf6, +0x7a,0xb3,0x22,0xf7,0x7a,0xb3,0x22,0xf8,0x7e,0x34,0x3, 0xe8,0x7a,0x37,0x22,0xfd, +0x74,0x3c,0x7a,0xb3,0x22,0xf5,0x75,0x2f,0x46,0x75,0x2b,0x0, 0x61,0x43,0x12,0xa4, +0xde,0x28,0x1e,0x7e,0x34,0x0, 0x44,0xca,0x39,0x7e,0x71,0x2b,0x74,0x44,0xac,0x7b, +0x2e,0x34,0x14,0x6, 0x7e,0x24,0x0, 0xff,0x7e,0x8, 0x22,0xff,0x12,0x20,0xb9,0x1b, +0xfd,0x6d,0x33,0x7a,0x37,0x22,0xf9,0x7a,0x35,0x30,0x7a,0x37,0x22,0xfb,0x7a,0x35, +0x32,0x7a,0x35,0x34,0x7e,0x34,0x22,0xff,0x7a,0x35,0x36,0x7e,0x34,0x23,0x1f,0x7a, +0x35,0x38,0x75,0x2c,0x0, 0x80,0x59,0xe5,0x2c,0xa, 0x3b,0x7e,0xd, 0x26,0x12,0xa4, +0xe6,0x2e,0x35,0x36,0x12,0xa1,0x48,0x7d,0xd3,0x7e,0xc7,0x22,0xfb,0xbd,0xcd,0x58, +0x4, 0x7a,0xd7,0x22,0xfb,0xe5,0x2c,0xa, 0x3b,0x7f,0x3, 0x12,0xa4,0xe6,0x2e,0x35, +0x38,0x12,0xa1,0x48,0x7d,0xc3,0x7e,0x35,0x32,0xbd,0x3c,0x58,0x3, 0x7a,0xc5,0x32, +0x7e,0x37,0x22,0xf9,0x2d,0x3d,0x7a,0x37,0x22,0xf9,0x7d,0x3c,0x2e,0x35,0x30,0x7a, +0x35,0x30,0x2d,0xcd,0x7e,0x35,0x34,0xbd,0x3c,0x58,0x3, 0x7a,0xc5,0x34,0x5, 0x2c, +0xe5,0x2a,0xbe,0xb1,0x2c,0x38,0xa0,0xe5,0x2a,0xb4,0xa, 0x2a,0x7e,0x37,0x22,0xfb, +0xbe,0x34,0x0, 0x40,0x48,0xb, 0x7e,0x25,0x32,0xbe,0x24,0x0, 0x40,0x48,0x2, 0x61, +0x41,0xbe,0x34,0x0, 0x60,0x8, 0x2, 0x61,0x41,0x7e,0x35,0x32,0xbe,0x34,0x0, 0x60, +0x8, 0x2, 0x61,0x41,0x80,0x28,0x7e,0x37,0x22,0xfb,0xbe,0x34,0x0, 0x20,0x8, 0xb, +0x7e,0x25,0x32,0xbe,0x24,0x0, 0x20,0x8, 0x2, 0x61,0x41,0xbe,0x34,0x0, 0x30,0x8, +0x2, 0x61,0x41,0x7e,0x35,0x32,0xbe,0x34,0x0, 0x30,0x8, 0x2, 0x61,0x41,0x7e,0xa3, +0x38,0x41,0x74,0xc, 0xa4,0xbe,0x57,0x22,0xf9,0x58,0x2, 0x61,0x41,0x7e,0xa3,0x38, +0x42,0x74,0xc, 0xa4,0xbe,0x55,0x30,0x58,0x2, 0x61,0x41,0x7e,0x15,0x36,0x6d,0x0, +0x7e,0x1d,0x26,0xe5,0x2a,0x12,0xa3,0x7e,0x7a,0xb3,0x22,0xf4,0x7e,0x15,0x38,0x6d, +0x0, 0x7f,0x13,0xe5,0x2a,0x12,0xa3,0x7e,0xf5,0x2d,0x7e,0x73,0x22,0xf5,0xbe,0x73, +0x22,0xf4,0x38,0x7d,0xbe,0x71,0x2d,0x38,0x78,0xe5,0x2d,0x7e,0x31,0x2d,0xac,0x3b, +0x1a,0x2, 0x1a,0x0, 0x7e,0x73,0x22,0xf4,0xac,0x77,0x1a,0x26,0x1a,0x24,0x2f,0x10, +0xe5,0x2d,0xa, 0x5b,0x6d,0x44,0x7e,0x33,0x22,0xf4,0xa, 0x13,0x6d,0x0, 0x2f,0x2, +0x12,0x1f,0x7, 0x7c,0xb7,0xf5,0x2e,0xe5,0x2f,0xbe,0xb1,0x2e,0x38,0x43,0x7e,0x37, +0x22,0xfb,0x2e,0x35,0x32,0x2e,0x35,0x34,0x7a,0x35,0x3a,0xe5,0x2e,0xa, 0x2b,0x7e, +0x34,0x0, 0x64,0x9d,0x32,0x3e,0x34,0x2e,0x35,0x3a,0x7a,0x35,0x3a,0x7e,0x37,0x22, +0xfd,0xbe,0x35,0x3a,0x8, 0x1b,0x7e,0x35,0x3a,0x7a,0x37,0x22,0xfd,0xe5,0x2e,0x7a, +0xb3,0x22,0xf7,0x7e,0x73,0x23,0x41,0x7a,0x73,0x22,0xf8,0xe5,0x2b,0x7a,0xb3,0x22, +0xf6,0x5, 0x2b,0x12,0xa4,0xde,0x28,0x2, 0x21,0x7e,0x7e,0xa3,0x22,0xf7,0xbe,0xa1, +0x2f,0x40,0x20,0x7e,0xb3,0x22,0xf8,0xbe,0xb0,0x0, 0x28,0x17,0xbe,0xb0,0xff,0x50, +0x12,0x7e,0x73,0x22,0xf6,0xa, 0x37,0xb, 0x34,0x7a,0x73,0x38,0x3e,0x7a,0xb3,0x38, +0x40,0x80,0x6, 0x74,0x7c,0x7a,0xb3,0x38,0x3e,0x7c,0xba,0xda,0x3b,0x22,0xca,0x3b, +0x7c,0xfb,0x7f,0x61,0x7f,0x40,0x9f,0x11,0x7f,0x51,0x7f,0x71,0x7a,0x1d,0x3c,0x7a, +0x1d,0x40,0x7a,0x1d,0x44,0xbe,0xf0,0xa, 0x78,0x6, 0x7e,0x54,0x1, 0x3c,0x80,0x4, +0x7e,0x54,0x2, 0x35,0x7a,0x57,0x23,0x43,0x6c,0xee,0x80,0x60,0xa, 0x5e,0x7f,0x14, +0x12,0xa4,0xd6,0x7a,0x55,0x4a,0xa, 0x5e,0x7f,0x16,0x12,0xa4,0xd6,0x7a,0x55,0x48, +0x7e,0x35,0x48,0x12,0xa4,0xcf,0x2f,0x50,0x7e,0x65,0x4a,0x7d,0x16,0x1a,0x2, 0x1a, +0x0, 0x2f,0x70,0x12,0xa4,0xcf,0x12,0xa4,0xc5,0x7e,0x1d,0x3c,0x2f,0x10,0x7a,0x1d, +0x3c,0x7d,0x16,0x1a,0x2, 0x1a,0x0, 0x7e,0x35,0x4a,0x12,0xa4,0xc5,0x7e,0x1d,0x40, +0x2f,0x10,0x7a,0x1d,0x40,0x7e,0x15,0x4a,0x1a,0x2, 0x1a,0x0, 0x7e,0x35,0x48,0x12, +0xa4,0xc5,0x7e,0x1d,0x44,0x2f,0x10,0x7a,0x1d,0x44,0xb, 0xe0,0xbc,0xfe,0x38,0x9c, +0xa, 0xdf,0x6d,0xcc,0x7f,0x15,0x7f,0x6, 0x12,0x1f,0x58,0x7f,0x51,0x7f,0x17,0x7f, +0x6, 0x12,0x1f,0x58,0x7f,0x71,0x7e,0x94,0x0, 0x64,0x7e,0x1d,0x3c,0x7d,0x19,0x12, +0x1e,0xfc,0x7e,0x87,0x23,0x43,0x7d,0x18,0x7d,0xd8,0x1a,0x12,0x1a,0xc2,0x7f,0x6, +0x12,0x1f,0x58,0x7a,0x1d,0x3c,0x7e,0x1d,0x40,0x7d,0x19,0x12,0x1e,0xfc,0x7f,0x6, +0x12,0x1f,0x58,0x7a,0x1d,0x40,0x7e,0x1d,0x44,0x7d,0x19,0x12,0x1e,0xfc,0x7d,0x18, +0x1a,0x2, 0x1a,0x0, 0x12,0x1f,0x58,0x7a,0x1d,0x44,0x7f,0x15,0x7f,0x7, 0x12,0x1e, +0xeb,0x7e,0x6d,0x44,0x9f,0x61,0x7f,0x15,0x7f,0x5, 0x12,0x1e,0xeb,0x7e,0x5d,0x3c, +0x9f,0x51,0x7f,0x17,0x7f,0x7, 0x12,0x1e,0xeb,0x7e,0x7d,0x40,0x9f,0x71,0xbe,0x58, +0x0, 0x0, 0x68,0x6, 0xbe,0x78,0x0, 0x0, 0x78,0x6, 0x7e,0x44,0x0, 0x64,0x80,0x18, +0x7f,0x16,0x7d,0x19,0x12,0x1e,0xfc,0x7f,0x5, 0x12,0x1f,0x58,0x7f,0x6, 0x12,0x1e, +0xeb,0x7f,0x7, 0x12,0x1f,0x58,0x7d,0x43,0xbe,0x44,0x0, 0x0, 0x18,0x2, 0x6d,0x44, +0x7c,0xb9,0xda,0x3b,0x22,0x1a,0x26,0x1a,0x24,0x12,0x1e,0xeb,0x7f,0x1, 0x22,0x7d, +0x13,0x1a,0x2, 0x1a,0x0, 0x22,0x2d,0x35,0x7e,0x1b,0x70,0xa, 0x57,0x22,0x7e,0x73, +0x39,0x1, 0xbe,0x71,0x2b,0x22,0x2d,0x13,0x7e,0xb, 0x50,0xa, 0x25,0x22,0xca,0x79, +0x6c,0xaa,0x12,0xa5,0xe4,0xb, 0x7a,0xf0,0x7d,0x7f,0x7c,0xbf,0xa, 0xfa,0x19,0xbf, +0x38,0x43,0x7f,0x71,0x2d,0xf4,0xb, 0x7a,0x40,0x7c,0xb9,0xa, 0x4a,0x19,0xb4,0x38, +0x63,0xb, 0xa0,0xbe,0xa0,0x20,0x40,0xda,0x7e,0x8, 0x38,0x43,0x7e,0x18,0x38,0x63, +0x74,0x20,0x12,0xa1,0x52,0xda,0x79,0x22,0xca,0x3b,0x7f,0x61,0x7f,0x50,0x7e,0x73, +0x38,0x3f,0xbe,0x70,0x20,0x40,0x52,0x7e,0xf0,0x2, 0x80,0x3c,0xa, 0x3f,0x6d,0x22, +0x74,0x5, 0x2f,0x11,0x14,0x78,0xfb,0x7e,0x33,0x38,0x3f,0xa, 0x13,0x6d,0x0, 0x12, +0x1f,0x7, 0x7c,0xe7,0xbe,0xe0,0x2, 0x50,0x3, 0x7e,0xe0,0x2, 0xa, 0x6f,0x1b,0x64, +0xa, 0x3e,0x1b,0x34,0x7c,0xc7,0x7f,0x5, 0x7c,0xbd,0x12,0xa5,0x92,0x7f,0x6, 0x7c, +0xbd,0x7c,0x7c,0x12,0xa5,0x92,0xb, 0xf0,0x7e,0x73,0x38,0x3f,0xbc,0x7f,0x50,0xbc, +0x7f,0x5, 0x7f,0x16,0x12,0xa4,0xee,0x80,0x6, 0x74,0x7e,0x7a,0xb3,0x38,0x3e,0xda, +0x3b,0x22,0x7c,0x97,0x7c,0xab,0x7f,0x10,0x7e,0x30,0x2, 0xac,0x3a,0x2d,0x13,0x7d, +0x2, 0xb, 0xa, 0x10,0x7e,0x10,0x2, 0xac,0x19,0x7f,0x71,0x2d,0xf0,0xb, 0x7a,0x0, +0x7c,0x21,0xa5,0xba,0x0, 0x14,0x1a,0x3, 0x1b,0x7a,0x0, 0xbc,0x9a,0x68,0x24,0x6d, +0x44,0x74,0x2, 0xa4,0x2d,0x35,0x1b,0x1a,0x40,0x22,0xbc,0x9a,0x68,0x15,0x1a,0x2, +0x1a,0x13,0x2d,0x10,0xe, 0x14,0x1b,0x7a,0x10,0x6d,0x11,0x74,0x2, 0xa4,0x2d,0x35, +0x1b,0x1a,0x10,0x22,0x7e,0x90,0x2, 0xac,0x9a,0x7f,0x70,0x2d,0xf4,0x22,0xe4,0x7a, +0xb3,0x35,0x69,0x7e,0xb3,0x28,0x84,0x60,0x6, 0x7e,0xb3,0x35,0xe2,0x60,0x5, 0xe4, +0x7a,0xb3,0x35,0xe4,0x22,0x7e,0xa0,0x1, 0x7e,0x37,0x2a,0x4f,0x12,0xa6,0x4e,0x28, +0x35,0x6d,0x22,0x9d,0x23,0xbe,0x27,0x7, 0xf8,0x58,0x2b,0x12,0x8f,0xdc,0xbe,0x37, +0x7, 0xfa,0x8, 0x22,0xe4,0x7a,0xb3,0x28,0x84,0x7e,0xb3,0x2a,0x3, 0x70,0x17,0x7e, +0xb3,0x37,0x8, 0xb4,0x1, 0x10,0x6c,0xaa,0x5, 0x1f,0xe5,0x1f,0xbe,0xb0,0x10,0x28, +0x5, 0xd2,0x11,0x75,0x1f,0x0, 0x4c,0xaa,0x68,0x3, 0x75,0x1f,0x0, 0x22,0x7e,0xb3, +0x28,0x84,0xbe,0xb0,0x0, 0x22,0xca,0x3b,0x7f,0x61,0x7f,0x50,0x7e,0x73,0x2a,0x6e, +0xa, 0x37,0x3e,0x34,0xca,0x39,0x7f,0x16,0x7f,0x5, 0x12,0x20,0xb9,0x1b,0xfd,0x6c, +0xdd,0x12,0xa7,0x10,0x7a,0xb3,0x1f,0x6c,0x6c,0xcc,0x80,0x4a,0x12,0xa6,0xff,0x78, +0x43,0x74,0x2, 0xac,0xbc,0x7f,0x16,0x2d,0x35,0xb, 0x1a,0xe0,0x7d,0x3f,0x12,0x21, +0x0, 0x7d,0x13,0x7d,0x3e,0x12,0x21,0x0, 0xbd,0x31,0x58,0x2, 0x7d,0xfe,0xbe,0xe5, +0x2e,0x8, 0x5, 0x7e,0xe5,0x2e,0x80,0xb, 0x6d,0x33,0x9e,0x35,0x2e,0xbd,0x3e,0x8, +0x2, 0x7d,0xe3,0x7d,0x3e,0x1a,0x26,0x1a,0x24,0x2f,0x41,0x7e,0xb3,0x1f,0x6c,0x4, +0x7a,0xb3,0x1f,0x6c,0xb, 0xc0,0x7e,0x73,0x2a,0x70,0xbc,0x7c,0x38,0xae,0x7e,0x73, +0x1f,0x6c,0x4c,0x77,0x68,0x1d,0x12,0xa7,0x2d,0x8, 0x2, 0x7d,0x7f,0x6c,0xcc,0x80, +0xa, 0x12,0xa6,0xff,0x78,0x3, 0x12,0xa7,0x18,0xb, 0xc0,0x7e,0x73,0x2a,0x70,0xbc, +0x7c,0x38,0xee,0xb, 0xd0,0xbe,0xd0,0x2, 0x50,0x2, 0xc1,0x71,0xda,0x3b,0x22,0xa, +0xec,0x9, 0x7e,0x2a,0xdc,0xa, 0x37,0x5e,0x34,0x0, 0x1, 0xa, 0xed,0xbd,0x3e,0x22, +0x7e,0xf4,0x7f,0xff,0x9f,0x44,0xe4,0x22,0x74,0x2, 0xac,0xbc,0x7f,0x16,0x2d,0x35, +0xb, 0x1a,0xe0,0x9d,0xe7,0x7f,0x15,0x2d,0x35,0x1b,0x1a,0xe0,0x22,0xa, 0x17,0x6d, +0x0, 0x7f,0x14,0x12,0x1f,0x58,0x7d,0x73,0x12,0x21,0x0, 0x7d,0xe3,0x7d,0x3f,0x12, +0x21,0x0, 0xbd,0x3e,0x22,0x7e,0x63,0x2a,0x6e,0x90,0x60,0xa7,0xe4,0x93,0x60,0x6c, +0xc2,0x12,0x6c,0x33,0x80,0x56,0x90,0x60,0xaa,0xe4,0x93,0x70,0x13,0x7c,0x96,0xac, +0x93,0x90,0x60,0xab,0xe4,0x93,0xa, 0x5b,0x1b,0x54,0x2d,0x45,0x7d,0xd4,0xb, 0xd4, +0x7d,0x54,0x3e,0x54,0x7e,0x7f,0x13,0x8a,0x2d,0xf5,0xb, 0x7a,0x50,0xbe,0x57,0x2a, +0x5a,0x8, 0x27,0x7c,0xb3,0x12,0x31,0x5a,0x50,0x20,0x7d,0x5d,0x3e,0x54,0x7e,0x7f, +0x13,0x8a,0x7f,0x57,0x2d,0xb5,0xb, 0x5a,0xc0,0x7d,0x54,0x3e,0x54,0x2d,0xf5,0xb, +0x7a,0x50,0xbd,0x5c,0x8, 0x4, 0xd2,0x12,0x80,0xa, 0xb, 0x30,0x7e,0x73,0x2a,0x75, +0xbc,0x73,0x38,0xa2,0x30,0x12,0x5, 0xd2,0x3, 0x2, 0x32,0xe7,0x22,0x90,0x60,0xa7, +0xe4,0x93,0x60,0x8, 0x30,0x12,0x5, 0x12,0x31,0x7d,0xc2,0x12,0x22,0xca,0xd8,0xca, +0x79,0x7c,0xfb,0x7f,0x70,0xc2,0x3, 0x6c,0xdd,0x6d,0xdd,0x7e,0x34,0x22,0xe6,0x7e, +0x24,0x0, 0xff,0x7e,0x14,0x1f,0x34,0x74,0xc, 0x12,0x1f,0xad,0x6d,0x11,0x7e,0x4, +0x7f,0xff,0x6c,0xee,0x80,0x13,0x12,0xa8,0xe1,0x7d,0xc3,0xbd,0xdc,0x50,0x2, 0x7d, +0xdc,0xbd,0xc, 0x28,0x2, 0x7d,0xc, 0xb, 0xe0,0xbc,0xfe,0x38,0xe9,0xbe,0xd4,0x0, +0x1e,0x58,0xa, 0x7e,0xb3,0x28,0x94,0x70,0x4, 0x6d,0x33,0x1, 0xd2,0xbe,0xd4,0x4, +0xb0,0x8, 0x2, 0xd2,0x3, 0x6c,0xee,0x74,0x4, 0xac,0xbe,0x49,0x45,0x1f,0x34,0xbd, +0x4d,0x58,0x6, 0x49,0xd5,0x1f,0x36,0x80,0x7, 0xb, 0xe0,0xbe,0xe0,0x3, 0x40,0xe7, +0xbe,0xe0,0x3, 0x78,0x4, 0x6d,0x33,0x1, 0xd2,0xbd,0xd, 0x8, 0x5, 0x30,0x3, 0x2, +0x7d,0xd0,0x9f,0x55,0x6c,0xee,0x80,0xb, 0x12,0xa8,0xe1,0x1a,0x26,0x1a,0x24,0x2f, +0x51,0xb, 0xe0,0xbc,0xfe,0x38,0xf1,0xa, 0x1f,0x12,0xa8,0xd7,0x9f,0x55,0x6c,0xee, +0x80,0x22,0x74,0x2, 0xac,0xbe,0x7f,0x17,0x2d,0x35,0xb, 0x1a,0x90,0x7d,0x39,0x12, +0x21,0x0, 0x7d,0xc3,0xbd,0x1c,0x28,0xa, 0x7d,0x39,0x1a,0x26,0x1a,0x24,0x2f,0x51, +0xb, 0xd0,0xb, 0xe0,0xbc,0xfe,0x38,0xda,0x6d,0x11,0xbe,0xd0,0x0, 0x28,0x5, 0xa, +0x1d,0x12,0xa8,0xd7,0xbd,0x1d,0x8, 0x4, 0x7d,0x1d,0x80,0xa, 0x6d,0x0, 0x9d,0xd, +0xbd,0x1, 0x8, 0x2, 0x7d,0x10,0x6c,0xee,0x80,0x12,0x74,0x2, 0xac,0xbe,0x7f,0x17, +0x2d,0x35,0xb, 0x1a,0x0, 0x9d,0x1, 0x1b,0x1a,0x0, 0xb, 0xe0,0xbc,0xfe,0x38,0xea, +0x7d,0x31,0xda,0x79,0xda,0xd8,0x22,0x6d,0x0, 0x7f,0x15,0x12,0x1f,0x58,0x7d,0x13, +0x22,0x74,0x2, 0xac,0xbe,0x7f,0x17,0x2d,0x35,0xb, 0x1a,0x30,0x2, 0x21,0x0, 0xca, +0xf8,0x7f,0x71,0x6d,0xdd,0x6c,0xaa,0x7e,0xf0,0x80,0xc2,0x3, 0x6d,0x44,0x80,0x32, +0x12,0xa9,0x90,0x12,0xa8,0xe9,0xbd,0x3d,0x48,0x26,0x12,0xa9,0x90,0xb, 0x1a,0x30, +0xbe,0x34,0x0, 0x0, 0x8, 0x4, 0xd2,0x3, 0x80,0x9, 0x12,0x21,0x0, 0xbd,0x3d,0x68, +0x2, 0xc2,0x3, 0x7d,0x34,0x3e,0x34,0x2d,0x3f,0x7d,0x2e,0x12,0xa8,0xe9,0x7d,0xd3, +0xb, 0x44,0x7e,0xc5,0x35,0xbd,0xc4,0x38,0xc7,0x30,0x3, 0xc, 0x7e,0xf0,0x7f,0x80, +0x7, 0xb, 0xa0,0xbe,0xa0,0x8, 0x50,0x11,0x7c,0xba,0x7d,0x3d,0x60,0x5, 0xe, 0x34, +0x14,0x78,0xfb,0xa, 0xcf,0xbd,0x3c,0x18,0xe8,0x7f,0x10,0x2e,0x35,0x35,0x7a,0x1b, +0xa0,0x6d,0x44,0x80,0x21,0x7d,0x54,0x3e,0x54,0x7f,0x17,0x2d,0x35,0xb, 0x1a,0x30, +0x7f,0x60,0x2e,0xd5,0x35,0x7e,0x6b,0xb0,0x60,0x5, 0xe, 0x34,0x14,0x78,0xfb,0x7c, +0xb7,0x12,0xa9,0x9b,0xb, 0x44,0x7e,0x55,0x35,0xbd,0x54,0x38,0xd8,0xda,0xf8,0x22, +0x7d,0xc4,0x3e,0xc4,0x7f,0x17,0x2d,0x3c,0x22,0xa, 0x4a,0x7f,0x10,0x2d,0x34,0x7a, +0x1b,0xb0,0x22,0xd2,0xc9,0x75,0xf2,0x30,0x75,0xf3,0x80,0x75,0xf4,0xc, 0x75,0xf5, +0x1, 0x6c,0xaa,0xe5,0xf5,0x54,0x80,0xb4,0x80,0xf9,0xe5,0xf6,0x12,0xa9,0x99,0xb, +0xa0,0xbe,0xa0,0xd, 0x40,0xed,0xc2,0xc9,0x22,0x90,0x60,0x93,0xe4,0x93,0xa, 0xb, +0x7e,0x73,0x2a,0x71,0xa, 0x17,0x2d,0x10,0x7e,0xa3,0x2a,0x6e,0xa, 0x3a,0xad,0x13, +0x7d,0x21,0x6c,0x33,0x80,0x20,0xa, 0x3, 0x2d,0x2, 0x3e,0x4, 0x7e,0x7f,0x38,0xd9, +0x2d,0xf0,0xb, 0x7a,0x0, 0x7e,0x90,0x2, 0xac,0x93,0x49,0xf4,0x13,0x8e,0x9d,0xf, +0x59,0x4, 0x25,0xb6,0xb, 0x30,0xbc,0xa3,0x38,0xdc,0x7a,0x35,0x35,0x7e,0xf, 0x37, +0x40,0x7e,0x18,0x25,0xb6,0x2, 0xa8,0xef,0x7e,0xb3,0x2b,0x1d,0xb4,0x1, 0x31,0x12, +0xaa,0x51,0x7e,0x1f,0x38,0xd9,0x7a,0x37,0x24,0xfa,0x7e,0x34,0xd, 0xc8,0x7a,0x37, +0x24,0xf6,0x12,0xaa,0x58,0x12,0xaa,0x61,0xe4,0x7a,0xb3,0x24,0xf5,0x7e,0x34,0x0, +0x20,0x7a,0x37,0x24,0xfc,0x7a,0xb3,0x24,0xf4,0x7e,0x8, 0x24,0xf2,0x2, 0xd, 0x7, +0x22,0xa9,0xd1,0xcb,0xe4,0x2, 0x0, 0xe, 0x7e,0x73,0x2a,0x6d,0x7a,0x73,0x24,0xf2, +0x22,0x7e,0x73,0x2a,0x6e,0x7a,0x73,0x24,0xf3,0x22,0x7e,0x43,0x2a,0x6e,0x7e,0x53, +0x2a,0x6d,0xac,0x54,0x7e,0x17,0x28,0xa1,0x12,0xaa,0x51,0x6d,0x0, 0x80,0x37,0x7d, +0x40,0x3e,0x44,0x7e,0x7f,0x38,0xd9,0x2d,0xf4,0xb, 0x7a,0x30,0xbd,0x13,0x58,0x10, +0x7d,0xf4,0x2e,0xf4,0x8, 0xa, 0xb, 0xf8,0x50,0x9d,0x51,0x1b,0xf8,0x50,0x80,0x14, +0x6d,0x55,0x9d,0x51,0xbd,0x53,0x8, 0xc, 0x2e,0x44,0x8, 0xa, 0xb, 0x48,0x50,0x2d, +0x51,0x1b,0x48,0x50,0xb, 0x4, 0xbd,0x20,0x38,0xc5,0x22,0x7c,0xab,0x7e,0x8, 0x29, +0xbc,0x12,0x5e,0x25,0x28,0x1f,0xa, 0x3a,0x7f,0x70,0x2d,0xf3,0x7e,0x7b,0xb0,0xb4, +0x2, 0x4, 0x74,0x1, 0x80,0x2, 0x74,0x3, 0x7a,0x7b,0xb0,0x74,0x3, 0x2d,0x31,0x7d, +0x20,0x39,0xb1,0x0, 0xa, 0x22,0xca,0xd8,0xca,0x79,0x7e,0x34,0x61,0x43,0x7e,0x24, +0x0, 0xff,0xb, 0x1a,0x40,0x90,0x61,0x35,0xe4,0x93,0x70,0x2, 0x61,0x96,0x90,0x60, +0xa7,0xe4,0x93,0x70,0x2, 0x61,0x96,0x6c,0xff,0x61,0x8f,0x7e,0x70,0x9, 0xac,0x7f, +0x9, 0xe3,0x29,0xc, 0x5e,0xe0,0xf, 0x49,0xc3,0x29,0xa, 0x7e,0x14,0x60,0xd1,0x7e, +0x4, 0x0, 0xff,0xb, 0xa, 0x20,0x2d,0x24,0xbd,0xc2,0x40,0x42,0x49,0xd3,0x29,0x8, +0x7d,0x3d,0x12,0xab,0xa4,0x7c,0xdb,0x90,0x60,0xa7,0xe4,0x93,0xbc,0xbd,0x38,0xe, +0x7d,0x34,0x1b,0x34,0x12,0xab,0x9b,0x7c,0xbe,0x12,0xaa,0xbb,0x80,0x3f,0x7e,0x70, +0x2, 0xac,0x7d,0x2e,0x34,0x60,0xc5,0x12,0x87,0xbc,0x74,0x9, 0xac,0xbf,0x59,0xd5, +0x29,0x8, 0x7e,0x34,0x60,0xcf,0x12,0x23,0x9e,0x12,0xab,0x9b,0x80,0x1f,0xbd,0xc4, +0x40,0x1b,0x7d,0x54,0x2e,0x54,0x0, 0xa, 0xbd,0xc5,0x40,0x5, 0x7c,0xbe,0x12,0xaa, +0xbb,0x7d,0xc4,0x1b,0xc4,0x74,0x9, 0xac,0xbf,0x59,0xc5,0x29,0xa, 0xb, 0xf0,0x12, +0x5e,0x2d,0x28,0x2, 0x61,0xb, 0xda,0x79,0xda,0xd8,0x22,0x74,0x9, 0xac,0xbf,0x59, +0x35,0x29,0xa, 0x22,0x6c,0xaa,0x80,0x27,0x7e,0x30,0x4, 0xac,0x3a,0x7d,0xf1,0x2e, +0xf4,0x60,0xb1,0x7e,0xe4,0x0, 0xff,0xb, 0x7a,0x20,0xbd,0x23,0x38,0xf, 0x2e,0x14, +0x60,0xb3,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0x20,0xbd,0x23,0x50,0xb, 0xb, 0xa0,0x90, +0x60,0xa7,0xe4,0x93,0xbc,0xba,0x38,0xd0,0x7c,0xba,0x22,0x90,0x60,0xa7,0xe4,0x93, +0x60,0x2b,0x6c,0x33,0x80,0x1f,0x7c,0xb3,0x12,0x31,0x5a,0x40,0x16,0x7c,0xb3,0x12, +0x31,0x27,0x7d,0x43,0x6d,0x55,0x7d,0x4, 0x3e,0x4, 0x7e,0x1f,0x13,0x8a,0x2d,0x30, +0x1b,0x1a,0x50,0xb, 0x30,0x7e,0x23,0x2a,0x75,0xbc,0x23,0x38,0xd9,0x22,0x12,0xac, +0x20,0x7e,0x14,0x62,0x7, 0x12,0x87,0xee,0x28,0x3, 0xd2,0x13,0x22,0xc2,0x13,0x22, +0x6d,0x11,0xe4,0x12,0x0, 0x1e,0x6c,0xaa,0x80,0x5b,0x7e,0x10,0x2, 0xac,0x1a,0x7e, +0x7f,0x38,0xf3,0x2d,0xf0,0x69,0x27,0x1, 0x0, 0x69,0x37,0x0, 0x80,0x9d,0x32,0x12, +0x21,0x0, 0xbd,0x31,0x28,0x16,0x7e,0x70,0x2, 0xac,0x7a,0x7e,0xf, 0x38,0xf3,0x2d, +0x13,0x69,0x20,0x1, 0x0, 0x69,0x30,0x0, 0x80,0x12,0x81,0xbf,0x7e,0x10,0x2, 0xac, +0x1a,0x7e,0x1f,0x38,0xf3,0x2d,0x30,0x69,0x1, 0x0, 0x80,0xbe,0x4, 0x7f,0xff,0x78, +0x4, 0x7e,0x14,0x7f,0xff,0x69,0x1, 0x1, 0x0, 0xbe,0x4, 0x7f,0xff,0x78,0x4, 0x7e, +0x14,0x7f,0xff,0xb, 0xa0,0x7e,0xb3,0x2a,0x74,0xbc,0xba,0x38,0x9d,0x7d,0x31,0x22, +0x6c,0x66,0x7e,0x27,0x39,0x4, 0xbe,0x24,0x3, 0xe8,0x28,0x3, 0x7e,0x60,0x8, 0x7e, +0xb3,0x28,0xac,0xb4,0x1, 0x1a,0x7e,0x73,0x2f,0xab,0xbc,0x76,0x50,0xf, 0xe4,0x7a, +0xb3,0x28,0xad,0x12,0x8a,0x87,0x7e,0xb3,0x2f,0xab,0x4, 0x80,0x4, 0xe4,0x80,0x1, +0xe4,0x7a,0xb3,0x2f,0xab,0x7e,0xb3,0x28,0xad,0xb4,0x1, 0x17,0x7e,0xa3,0x2f,0xac, +0xbe,0xa0,0x5, 0x50,0xa, 0xe4,0x7a,0xb3,0x28,0xad,0x7c,0xba,0x4, 0x80,0x5, 0x74, +0x5, 0x80,0x1, 0xe4,0x7a,0xb3,0x2f,0xac,0x22,0x6c,0xaa,0x80,0x26,0x7e,0x50,0x2, +0xac,0x5a,0x49,0x12,0x5, 0xf8,0x49,0x32,0x4, 0x0, 0x2d,0x31,0x59,0x32,0x5, 0xf8, +0x30,0x1, 0xe, 0x49,0x12,0x4, 0x7e,0x49,0x32,0x6, 0x76,0x2d,0x31,0x59,0x32,0x6, +0x76,0xb, 0xa0,0x7e,0xb3,0x2a,0x74,0xa, 0x3b,0x7e,0xb3,0x2a,0x73,0xa, 0x2b,0x2d, +0x23,0xa, 0x3a,0xbd,0x32,0x48,0xc6,0x22,0xd2,0x3, 0x6c,0xaa,0x6c,0x77,0x80,0x1f, +0x7e,0x63,0x2a,0x6e,0xa, 0x16,0xa, 0x27,0x2d,0x21,0x7c,0x65,0x7e,0x50,0x2, 0xac, +0x56,0x49,0x22,0x5, 0x7a,0xbe,0x24,0xfe,0xc, 0x58,0x2, 0xb, 0xa0,0xb, 0x70,0x7e, +0xb3,0x2a,0x6d,0xbc,0xb7,0x38,0xd9,0xa, 0x2b,0x1e,0x24,0xa, 0x3a,0xbd,0x32,0x8, +0x2, 0xc2,0x3, 0xa2,0x3, 0x22,0xc2,0x3, 0x7e,0xa3,0x2a,0x70,0x7e,0xb3,0x26,0xf1, +0x60,0x4, 0xd2,0x3, 0x80,0x33,0x7e,0x70,0x2, 0x80,0x22,0x7e,0x50,0x2, 0xac,0x57, +0x49,0x12,0x4, 0xfc,0x7e,0xf4,0x61,0x59,0x7e,0xe4,0x0, 0xff,0xb, 0x7a,0x0, 0x6d, +0x22,0x9d,0x20,0xbd,0x12,0x58,0x4, 0xd2,0x3, 0x80,0xe, 0xb, 0x70,0xa, 0x1a,0x9e, +0x14,0x0, 0x3, 0xa, 0x27,0xbd,0x21,0x48,0xd2,0xa2,0x3, 0x22,0x7d,0x23,0x7e,0x14, +0x61,0xc8,0x12,0x64,0xd3,0x7e,0x14,0x0, 0x5, 0xad,0x13,0x1e,0x14,0xbd,0x12,0x50, +0xd, 0x7e,0x33,0x36,0xdc,0xbe,0x30,0x8, 0x50,0x45,0x74,0x8, 0x80,0x3d,0x7d,0x13, +0x3e,0x14,0xbd,0x12,0x50,0xd, 0x7e,0x33,0x36,0xdc,0xbe,0x30,0x6, 0x50,0x30,0x74, +0x6, 0x80,0x28,0x7e,0x14,0x0, 0x3, 0xad,0x13,0x1e,0x14,0xbd,0x12,0x50,0xd, 0x7e, +0x33,0x36,0xdc,0xbe,0x30,0x4, 0x50,0x17,0x74,0x4, 0x80,0xf, 0xbd,0x32,0x50,0xf, +0x7e,0x73,0x36,0xdc,0xbe,0x70,0x2, 0x50,0x6, 0x74,0x2, 0x7a,0xb3,0x36,0xdc,0x7e, +0xb3,0x36,0xdc,0xbe,0xb0,0x0, 0x28,0x1b,0x14,0x7a,0xb3,0x36,0xdc,0x74,0x1, 0x7a, +0xb3,0x16,0x92,0x90,0x61,0xfd,0xe4,0x93,0xbe,0xb3,0x36,0xdc,0x50,0x5, 0xe4,0x7a, +0xb3,0x16,0x91,0x22,0x7c,0x3b,0x7e,0x44,0xff,0xff,0x6c,0x22,0x80,0x2a,0x12,0xae, +0xad,0x68,0x23,0x7e,0x70,0xc, 0xac,0x72,0x12,0xae,0xc5,0x7d,0x23,0x7e,0x70,0xc, +0xac,0x72,0x59,0x23,0x36,0x82,0x49,0x3, 0x36,0x82,0x49,0x23,0x36,0x7e,0xbd,0x20, +0x50,0x4, 0x59,0x3, 0x36,0x7e,0xb, 0x20,0xbc,0x32,0x50,0xd2,0x6c,0xaa,0x6c,0x22, +0x80,0x18,0x12,0xae,0xad,0x68,0x11,0x7e,0x70,0xc, 0xac,0x72,0x49,0x3, 0x36,0x7e, +0xbd,0x4, 0x50,0x4, 0x7d,0x40,0x7c,0xa2,0xb, 0x20,0xbc,0x32,0x50,0xe4,0x7e,0x37, +0x36,0x64,0xbe,0x37,0x36,0xdd,0x50,0x8, 0x7e,0x37,0x36,0xdd,0x7a,0x37,0x36,0x64, +0x12,0xae,0xbb,0x4d,0x33,0x78,0x3, 0x7e,0xa0,0xff,0x7c,0xba,0x22,0x7e,0x10,0x5, +0xac,0x12,0x9, 0xb0,0x26,0x33,0xbe,0xb3,0x2b,0xf, 0x22,0x7e,0x70,0xc, 0xac,0x7a, +0x49,0x33,0x36,0x7e,0x22,0x49,0x23,0x36,0x84,0x49,0x33,0x36,0x80,0x9d,0x32,0x2, +0x21,0x0, 0x7e,0x8, 0x36,0x7a,0x7e,0x34,0x0, 0x60,0xe4,0x12,0x20,0xde,0x6c,0xaa, +0x7e,0x44,0xff,0xff,0x7e,0x70,0xc, 0xac,0x7a,0x59,0x43,0x36,0x7c,0x59,0x43,0x36, +0x84,0xb, 0xa0,0xbe,0xa0,0x8, 0x40,0xe8,0x7e,0x8, 0x36,0x68,0x7e,0x34,0x0, 0xd, +0xe4,0x2, 0x20,0xde,0x7e,0xa3,0x2b,0x62,0xbc,0xab,0x68,0x6, 0x7a,0xb3,0x2b,0x62, +0xd2,0xc, 0x30,0xc, 0x7, 0x12,0xaf,0x1d,0xe4,0x2, 0xa, 0x66,0x22,0xc2,0xc, 0x7e, +0x8, 0x2a,0x6d,0x12,0x3, 0x8b,0x7e,0x8, 0x2a,0x6d,0x74,0x3, 0x2, 0x11,0x7a,0xe4, +0x7a,0xb3,0x36,0x67,0x6c,0xaa,0x80,0xd, 0x6d,0x44,0x7e,0x70,0xc, 0xac,0x7a,0x59, +0x43,0x36,0x7e,0xb, 0xa0,0x12,0x8d,0x8, 0x38,0xee,0xe4,0x7a,0xb3,0x36,0x68,0x6d, +0x33,0x7a,0x37,0x36,0x6f,0x7a,0x37,0x36,0x64,0x22,0x7e,0xb3,0x36,0x6a,0xb4,0x1, +0x27,0x7e,0xb3,0x36,0xe0,0x4, 0x7a,0xb3,0x36,0xe0,0x7e,0x73,0x36,0xe0,0xbe,0x70, +0x3, 0x40,0x15,0x12,0x8c,0x90,0x7e,0x73,0x36,0xe0,0xbe,0x70,0x6, 0x40,0x9, 0xe4, +0x7a,0xb3,0x36,0xe0,0x7a,0xb3,0x36,0x6a,0x22,0x12,0x24,0x14,0xe4,0x7a,0xb3,0x3, +0xfe,0x2, 0x76,0x52,0xca,0xd8,0xca,0x79,0x7f,0x70,0x7e,0x93,0x28,0x84,0x6c,0x88, +0x7e,0xf0,0x1, 0x80,0x1a,0xa, 0x58,0x7f,0x17,0x2d,0x35,0x7e,0x1b,0x60,0xa, 0x5f, +0x7f,0x7, 0x2d,0x15,0x7e,0xb, 0x70,0xbc,0x76,0x40,0x2, 0x7c,0x8f,0xb, 0xf0,0xbc, +0x9f,0x38,0xe2,0xa, 0x38,0x2d,0x3f,0x7d,0x2e,0x7e,0x1b,0x80,0x6c,0xaa,0x7e,0xf0, +0x1, 0x2, 0xb0,0x54,0x75,0x45,0x0, 0x6d,0xdd,0x6d,0xbb,0x7d,0xcb,0x75,0x44,0x0, +0x80,0x36,0x7e,0x71,0x44,0x74,0x2, 0xac,0x7b,0x9, 0xe3,0x26,0xfa,0x9, 0xd3,0x26, +0xfb,0xe5,0x44,0xa, 0xab,0x7f,0x17,0x2d,0x3a,0x7e,0x1b,0xb0,0xbc,0xbf,0x78,0x16, +0x5, 0x45,0xa, 0xae,0x2d,0xca,0xa, 0xad,0x2d,0xba,0x12,0xb0,0x62,0xbd,0x3d,0x8, +0x5, 0x12,0xb0,0x62,0x7d,0xd3,0x5, 0x44,0xbe,0x91,0x44,0x38,0xc5,0xe5,0x45,0xbe, +0xb0,0x0, 0x28,0x2e,0xe5,0x45,0xa, 0xab,0x7d,0x3c,0x8d,0x3a,0x7d,0xc3,0x8d,0xba, +0x7e,0x50,0x2, 0xac,0x5a,0x19,0x72,0x33,0xc3,0x7d,0x3b,0x7e,0x50,0x2, 0xac,0x5a, +0x19,0x72,0x33,0xc4,0x7d,0x3c,0x7c,0xb7,0x7d,0x3b,0x12,0x30,0x3, 0x1b,0x1a,0xd0, +0xb, 0xa0,0xb, 0xf0,0xbc,0x8f,0x40,0x3, 0x2, 0xaf,0xd4,0x7c,0xba,0xda,0x79,0xda, +0xd8,0x22,0x7c,0xbe,0x7c,0x7d,0x2, 0x2c,0x40,0x7c,0x9b,0x7f,0x71,0x7f,0x60,0x7e, +0x34,0x22,0xb8,0x7e,0x24,0x0, 0xff,0x7e,0x14,0x1f,0x52,0x74,0x2a,0x12,0x1f,0xad, +0x7e,0x58,0x1f,0x52,0x7c,0xb9,0x7e,0x71,0x44,0x12,0x2c,0x40,0x7d,0x43,0xe5,0x45, +0x7e,0x71,0x46,0x12,0x2c,0x40,0x2d,0x34,0xe, 0x34,0x7f,0x5, 0x7e,0x50,0x7, 0xb, +0xa, 0x50,0xbd,0x53,0x58,0xf, 0x69,0x30,0x0, 0x2, 0x1b,0x6a,0x30,0x69,0x30,0x0, +0x4, 0x1b,0x7a,0x30,0x22,0x2e,0x14,0x0, 0x6, 0x1b,0x50,0x78,0xe2,0x22,0x6d,0x33, +0x7d,0x23,0x7d,0x3, 0x6c,0x33,0x80,0x45,0x6c,0x22,0x80,0x37,0x7e,0xb3,0x2a,0x6e, +0xac,0xb3,0xa, 0x42,0x2d,0x54,0x7d,0x45,0x3e,0x44,0x7e,0x7f,0x13,0x8a,0x2d,0xf4, +0xb, 0x7a,0x40,0xbe,0x44,0x0, 0x32,0x8, 0x8, 0xbe,0x44,0x2, 0x58,0x58,0x2, 0xb, +0x24,0xbe,0x44,0xff,0xce,0x58,0x8, 0xbe,0x44,0xfd,0xa8,0x8, 0x2, 0xb, 0x4, 0xb, +0x34,0xb, 0x21,0x7e,0x93,0x2a,0x6e,0xbc,0x92,0x38,0xc1,0xb, 0x31,0x7e,0xb3,0x2a, +0x6d,0xbc,0xb3,0x38,0xb3,0x7e,0x54,0x0, 0x6, 0xad,0x53,0x7d,0x15,0x1e,0x14,0x1e, +0x14,0x1e,0x14,0x12,0x25,0x3e,0xbd,0x12,0x50,0x22,0xbd,0x30,0x28,0x1e,0xe4,0x7a, +0xb3,0x39,0x8, 0x7e,0xb3,0x39,0x9, 0xbe,0xb0,0x5, 0x50,0x7, 0x4, 0x7a,0xb3,0x39, +0x9, 0x80,0x3c,0xe4,0x7a,0xb3,0x39,0x9, 0x74,0x1, 0x80,0x2f,0xbd,0x10,0x50,0x22, +0xbd,0x32,0x28,0x1e,0xe4,0x7a,0xb3,0x39,0x9, 0x7e,0xb3,0x39,0x8, 0xbe,0xb0,0x5, +0x50,0x7, 0x4, 0x7a,0xb3,0x39,0x8, 0x80,0x16,0xe4,0x7a,0xb3,0x39,0x8, 0x74,0x2, +0x80,0x9, 0xe4,0x7a,0xb3,0x39,0x8, 0x7a,0xb3,0x39,0x9, 0x7a,0xb3,0x39,0xa, 0x7e, +0xb3,0x39,0xa, 0x22,0xe4,0x7a,0xb3,0x28,0xa8,0x7a,0xb3,0x39,0xb, 0x22,0xca,0xd8, +0xca,0x79,0xc2,0x3, 0x6c,0xdd,0x7e,0x57,0x28,0x99,0x7d,0xf5,0x7e,0xe7,0x28,0x97, +0x7e,0x37,0x37,0xfb,0x4d,0x33,0x68,0x4, 0x7d,0xf5,0xe, 0xf4,0x6c,0xff,0x7e,0xa3, +0x2a,0x6e,0x7c,0x8a,0x7e,0xb3,0x28,0xa5,0x14,0x68,0x21,0x14,0x68,0x14,0x24,0xc2, +0x68,0x8, 0x24,0xfb,0x68,0x16,0x24,0x45,0x78,0x10,0x7c,0xfa,0x7e,0x83,0x2a,0x6d, +0x80,0xa, 0x7e,0x73,0x2a,0x6d,0x2c,0x87,0x80,0x2, 0x6c,0x88,0x6c,0x99,0x80,0xf, +0x7c,0xb9,0x12,0x37,0x6f,0xbe,0x34,0x2, 0x58,0x8, 0x2, 0xb, 0xd0,0xb, 0x90,0x7e, +0x33,0x28,0x84,0xbc,0x39,0x38,0xe9,0xbe,0xd0,0x3, 0x40,0x2, 0x61,0x4f,0x7e,0xa3, +0x28,0x85,0xbe,0xa0,0x0, 0x38,0xb, 0xbe,0x30,0x0, 0x28,0x37,0x7e,0xb3,0x26,0x83, +0x70,0x31,0x6c,0x99,0x80,0x29,0xa, 0x29,0xa, 0x3f,0x2d,0x32,0x3e,0x34,0x49,0x23, +0x5, 0x7a,0xbd,0x2f,0x8, 0x17,0x49,0x3, 0x4, 0xfc,0xbd,0xe, 0x58,0xf, 0x6d,0x33, +0x9d,0x3e,0x12,0x8f,0xdc,0xbd,0x3, 0x8, 0x4, 0xd2,0x3, 0x80,0x6, 0xb, 0x90,0xbc, +0x89,0x38,0xd3,0x6d,0xee,0x9e,0xe7,0x2a,0x4f,0xbe,0xe7,0x7, 0xf8,0x8, 0x2, 0xc2, +0x3, 0x30,0x3, 0x20,0x7e,0xb3,0x39,0xb, 0x4, 0x7a,0xb3,0x39,0xb, 0x7e,0x23,0x39, +0xb, 0xbe,0x20,0xa, 0x28,0x1d,0x74,0xa, 0x7a,0xb3,0x39,0xb, 0x74,0x1, 0x7a,0xb3, +0x28,0xa8,0x80,0xf, 0x7e,0x23,0x39,0xb, 0xbe,0x20,0x0, 0x28,0x6, 0x1e,0x20,0x7a, +0x23,0x39,0xb, 0x6c,0xee,0xbe,0x30,0x0, 0x38,0x5, 0xbe,0xa0,0x0, 0x28,0x69,0x7e, +0xb3,0x28,0xa7,0xb4,0x1, 0x9, 0x7e,0xb3,0x28,0xaa,0xbe,0xb0,0x1, 0x68,0x59,0x7e, +0xb3,0x28,0xa8,0xb4,0x1, 0x52,0x6c,0x99,0x80,0x1d,0x7e,0x70,0x2, 0xac,0x79,0x9, +0xa3,0x26,0xfa,0x9, 0xd3,0x26,0xfb,0x12,0x2c,0x3c,0xbe,0x34,0x0, 0x96,0x8, 0x5, +0x7e,0xe0,0x1, 0x80,0xa, 0xb, 0x90,0x7e,0xb3,0x28,0x84,0xbc,0xb9,0x38,0xdb,0x6c, +0x99,0x80,0x1d,0x7e,0x70,0x2, 0xac,0x79,0x9, 0xa3,0x27,0x36,0x9, 0xd3,0x27,0x37, +0x12,0x2c,0x3c,0xbe,0x34,0xff,0x6a,0x58,0x5, 0x7e,0xe0,0x1, 0x80,0xa, 0xb, 0x90, +0x7e,0xb3,0x28,0x85,0xbc,0xb9,0x38,0xdb,0x6c,0x99,0x80,0x17,0xa, 0xe9,0xa, 0x5f, +0x2d,0x5e,0x3e,0x54,0x49,0x55,0x5, 0x7a,0xbd,0x5f,0x8, 0x5, 0x7e,0xe0,0x1, 0x80, +0x6, 0xb, 0x90,0xbc,0x89,0x38,0xe5,0x4c,0xee,0x78,0x25,0x7e,0xb3,0x39,0xc, 0x4, +0x7a,0xb3,0x39,0xc, 0x7e,0x73,0x39,0xc, 0xbe,0x70,0x5, 0x28,0x22,0x74,0x5, 0x7a, +0xb3,0x39,0xc, 0x7e,0xb3,0x28,0xa8,0x60,0x2, 0xd2,0x15,0x12,0xb1,0x84,0x80,0xf, +0x7e,0x73,0x39,0xc, 0xbe,0x70,0x0, 0x28,0x6, 0x1e,0x70,0x7a,0x73,0x39,0xc, 0xda, +0x79,0xda,0xd8,0x22,0xca,0xf8,0x7c,0xfb,0x7e,0x34,0x0, 0x38,0xca,0x39,0xac,0x7f, +0x2e,0x34,0x0, 0x50,0x6d,0x22,0x7e,0x8, 0x34,0x0, 0x12,0x20,0xb9,0x1b,0xfd,0x7e, +0x34,0x0, 0x8c,0xca,0x39,0xac,0x7f,0x2e,0x34,0x1, 0x30,0x6d,0x22,0x7e,0x8, 0x3, +0x60,0x12,0x20,0xb9,0x1b,0xfd,0xda,0xf8,0x22,0x7e,0xa3,0x2a,0x6e,0xa, 0x3a,0x3e, +0x34,0x7e,0x8, 0x13,0x8e,0xe4,0x12,0x20,0xde,0x90,0x60,0x93,0x93,0xa, 0x3b,0x7e, +0xb3,0x2a,0x71,0xa, 0x2b,0x2d,0x23,0xa, 0x3a,0xad,0x32,0x7d,0x43,0x6c,0x77,0x80, +0x1d,0xa, 0x27,0x2d,0x24,0x12,0x87,0xdc,0xb, 0xa, 0x0, 0x7e,0x30,0x2, 0xac,0x37, +0x2e,0x14,0x13,0x8e,0xb, 0x18,0x20,0x2d,0x20,0x1b,0x18,0x20,0xb, 0x70,0xbc,0xa7, +0x38,0xdf,0x22,0x6c,0xaa,0x80,0x1c,0x7e,0x50,0x2, 0xac,0x5a,0x49,0x12,0x13,0xc6, +0x49,0x32,0x13,0x8e,0xbd,0x31,0x28,0x9, 0x2e,0x24,0x13,0x8e,0x9d,0x31,0x1b,0x28, +0x30,0xb, 0xa0,0x7e,0xb3,0x2a,0x6e,0xbc,0xba,0x38,0xdc,0x22,0x7c,0xab,0x12,0xb4, +0xb, 0xd2,0x16,0x7c,0xba,0x12,0x86,0xf8,0xc2,0x16,0x22,0xa9,0xd1,0xcb,0x74,0x1, +0x2, 0x0, 0xe, 0x12,0xb4,0xb, 0x7e,0x34,0xd, 0xc8,0x7e,0xb3,0x2a,0x6d,0x12,0xb4, +0x4c,0x12,0xb4,0x2f,0x7a,0x37,0x38,0xd6,0x74,0x1, 0x7a,0xb3,0x16,0x91,0x22,0x6d, +0x33,0x90,0x60,0x91,0xe4,0x93,0xbe,0xb0,0x0, 0x28,0x3, 0x2, 0xb5,0x19,0x90,0x60, +0x92,0xe4,0x93,0xbe,0xb0,0x0, 0x28,0x3, 0x2, 0xb4,0x80,0x22,0x7a,0xb3,0x24,0xf2, +0x7e,0x53,0x2a,0x6e,0x7a,0x53,0x24,0xf3,0x7a,0x37,0x24,0xfa,0xe4,0x7a,0xb3,0x24, +0xf4,0x7a,0xb3,0x24,0xf5,0x7e,0x34,0x40,0x0, 0x7a,0x37,0x24,0xf6,0x7e,0x34,0x0, +0x20,0x12,0xb4,0x77,0x2, 0xd, 0x7, 0x7a,0x37,0x24,0xfc,0x7e,0x8, 0x24,0xf2,0x22, +0xca,0xf8,0x6d,0xee,0x7d,0xfe,0x7e,0x83,0x2a,0x6e,0xa, 0xd8,0x90,0x60,0x94,0xe4, +0x93,0xb4,0xff,0x2f,0x7e,0x8, 0x13,0x8e,0x6c,0xaa,0x80,0x18,0x7e,0x70,0x2, 0xac, +0x7a,0x49,0x23,0x13,0xfe,0x7f,0x50,0x2d,0xb3,0xb, 0x5a,0xc0,0x9d,0xc2,0x59,0xc3, +0x13,0xc6,0xb, 0xa0,0xbc,0x8a,0x38,0xe4,0x90,0x60,0x92,0xe4,0x93,0x7c,0x9b,0x6d, +0xdd,0x80,0x11,0x7e,0x8, 0x13,0xfe,0x90,0x60,0x92,0xe4,0x93,0xa, 0xcb,0x1b,0xc4, +0x7d,0x3c,0x7c,0x97,0x6c,0xff,0x80,0x38,0x6c,0xaa,0x80,0x28,0xa, 0x3a,0x7d,0x23, +0x2d,0x2e,0x3e,0x24,0x49,0xc2,0x13,0xfe,0x2d,0x3d,0x3e,0x34,0x2d,0x31,0x7d,0x20, +0xb, 0x1a,0xb0,0x7d,0x3c,0x9d,0x3b,0x12,0x21,0x0, 0x7d,0xa3,0xbd,0xfa,0x58,0x2, +0x7d,0xfa,0xb, 0xa0,0xbc,0x8a,0x38,0xd4,0xa, 0xc8,0x2d,0xec,0x2d,0xdc,0xb, 0xf0, +0xbc,0x9f,0x38,0xc4,0x7d,0x3f,0xda,0xf8,0x22,0xca,0xf8,0x6d,0x44,0x7e,0xf3,0x2a, +0x6e,0x90,0x60,0x93,0xe4,0x93,0xa, 0xfb,0x7e,0xb3,0x2a,0x6d,0xa, 0xeb,0x2d,0xef, +0xa, 0xff,0xad,0xfe,0xa, 0xef,0x2d,0xef,0x90,0x60,0x94,0xe4,0x93,0xb4,0xff,0x31, +0x7e,0x8, 0x13,0x8e,0x6c,0xaa,0x80,0x23,0xa, 0xda,0x2d,0xdf,0x3e,0xd4,0x7e,0x1f, +0x38,0xd9,0x2d,0x3d,0xb, 0x1a,0xd0,0x7e,0x50,0x2, 0xac,0x5a,0x7f,0x50,0x2d,0xb2, +0xb, 0x5a,0x30,0x9d,0x3d,0x59,0x32,0x13,0xc6,0xb, 0xa0,0xbc,0xfa,0x38,0xd9,0x80, +0xa, 0x7d,0x5e,0x3e,0x54,0x7e,0xf, 0x38,0xd9,0x2d,0x15,0x6c,0xaa,0x80,0x2c,0xa, +0xea,0x2d,0xef,0x3e,0xe4,0x7e,0x1f,0x38,0xd9,0x2d,0x3e,0xb, 0x1a,0xe0,0x7e,0x70, +0x2, 0xac,0x7a,0x2d,0x31,0x7d,0x20,0xb, 0x1a,0xd0,0x7d,0x3e,0x9d,0x3d,0x12,0x21, +0x0, 0x7d,0xc3,0xbd,0x4c,0x58,0x2, 0x7d,0x4c,0xb, 0xa0,0xbc,0xfa,0x38,0xd0,0x7d, +0x34,0xda,0xf8,0x22,0xca,0x78,0xa9,0x31,0xe5,0x6, 0xa9,0xd5,0xea,0xa9,0xc5,0xea, +0xa9,0x30,0xe5,0x19,0xa9,0xd0,0x9e,0xa9,0xd4,0x9e,0x5, 0x4e,0x7e,0x73,0x39,0x6, +0xbe,0x71,0x4e,0x38,0x2, 0xd2,0x17,0xa9,0xd0,0x9e,0xa9,0xd7,0x9e,0xa9,0x34,0xe5, +0x5, 0xa9,0xc4,0xcd,0xc2,0x95,0xa9,0x32,0xe5,0x3, 0xa9,0xc2,0xcd,0xa9,0x33,0xe5, +0x3, 0xa9,0xc3,0xcd,0xa9,0x37,0xe5,0x3, 0xa9,0xc7,0xcd,0xa9,0x36,0xe5,0x3, 0xa9, +0xc6,0xcd,0xda,0x78,0x32,0xc2,0x9a,0xa9,0xd4,0xa6,0xc2,0x88,0xd2,0xa8,0x22,0x7e, +0x14,0xd7,0xe8,0x7e,0x4, 0x0, 0xff,0x7e,0x34,0x47,0x52,0x7e,0x24,0x55,0x50,0x79, +0x30,0x0, 0x2, 0x1b,0xa, 0x20,0x7e,0x34,0x45,0x20,0x7e,0x24,0x41,0x44,0x79,0x30, +0x0, 0x6, 0x79,0x20,0x0, 0x4, 0x7e,0x34,0x99,0x33,0x7e,0x24,0x66,0xcc,0x79,0x30, +0x0, 0xa, 0x79,0x20,0x0, 0x8, 0x7e,0x34,0x41,0x47,0x7e,0x24,0x46,0x4c,0x79,0x30, +0x0, 0xe, 0x79,0x20,0x0, 0xc, 0x22,0xa9,0xd0,0xce,0xa2,0x3, 0xa9,0x95,0xc9,0x22, +0xa9,0xc6,0xeb,0xa9,0xd6,0xac,0xa9,0xd6,0xec,0xd2,0x86,0xa9,0xc2,0xeb,0xa9,0xd2, +0xac,0xa9,0xd2,0xec,0xd2,0x82,0x22,0x75,0x9a,0x2f,0xa9,0xd1,0x99,0xd2,0x9c,0xa9, +0xd6,0xdf,0x22,0xc2,0x8e,0x43,0x89,0x20,0x75,0x8d,0x1, 0x75,0x8b,0x0, 0xd2,0x8e, +0xd2,0xab,0x22,0x75,0xb7,0x0, 0x75,0xb8,0x0, 0x75,0xf7,0x0, 0x75,0xf8,0x0, 0xa9, +0xd0,0xb7,0xd2,0xb8,0xa9,0xd5,0xb7,0xd2,0xbd,0xa9,0xd0,0xf7,0xd2,0xf8,0xa9,0xc1, +0xb7,0xc2,0xb9,0xa9,0xc3,0xb7,0xc2,0xbb,0xa9,0xc6,0xb7,0xc2,0xbe,0x22,0x75,0xe7, +0x6b,0x2, 0xb6,0xc4,0xe4,0x7e,0x34,0xd7,0xfc,0x7e,0x24,0x0, 0xff,0x7a,0x1b,0xb0, +0x7e,0x34,0xd7,0xfd,0x7a,0x1b,0xb0,0x75,0xe9,0xff,0x22,0xa9,0xd0,0x99,0xa9,0xc6, +0xdf,0x22,0x7e,0x37,0x39,0x4, 0xb, 0x34,0x7a,0x37,0x39,0x4, 0xbe,0x34,0xff,0x0, +0x40,0x8, 0x7e,0x34,0xff,0x0, 0x7a,0x37,0x39,0x4, 0x22,0x7c,0x6b,0x6c,0x77,0x6c, +0xaa,0x7e,0xb3,0x39,0x13,0xb4,0xa5,0x46,0x12,0xb7,0xb9,0x75,0xb5,0x5, 0xa9,0x36, +0xb3,0xfc,0x12,0xb7,0x57,0xa9,0x36,0xb3,0xfc,0x12,0xb7,0x57,0xa9,0x36,0xb3,0xfc, +0xa9,0xc6,0xb3,0x7a,0x61,0xb5,0xa9,0x36,0xb3,0xfc,0x12,0xb7,0x57,0xa9,0x36,0xb3, +0xfc,0x12,0xb7,0x57,0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0x7e,0x71,0xb5,0x75,0xb5, +0x0, 0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0x7e,0xa1,0xb5,0xa9,0xd2,0xb4,0x7c,0x47, +0x6c,0x55,0xa, 0x3a,0x4d,0x32,0x22,0xa9,0xc6,0xb3,0x75,0xb5,0x0, 0x22,0x74,0x6, +0x7d,0x30,0x7d,0x23,0x7c,0x6b,0xa, 0x14,0x7c,0x73,0x7d,0x52,0x7c,0xab,0x7e,0xb3, +0x39,0x13,0xb4,0xa5,0x3c,0x12,0xb7,0xb9,0x75,0xb5,0x1, 0xa9,0x36,0xb3,0xfc,0x12, +0xb7,0x57,0xa9,0x36,0xb3,0xfc,0x12,0xb7,0x57,0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3, +0x7a,0x61,0xb5,0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0x7a,0x71,0xb5,0xa9,0x36,0xb3, +0xfc,0xa9,0xc6,0xb3,0x7a,0xa1,0xb5,0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0xa9,0xd2, +0xb4,0x22,0x74,0x4, 0x7d,0x30,0x2, 0xb7,0x62,0xa9,0xc2,0xb4,0xa9,0xc6,0xb3,0x22, +0x74,0x2, 0x7d,0x3f,0x2, 0xb7,0x62,0x7d,0x42,0x7f,0x60,0x7d,0x3, 0x12,0xb8,0x38, +0x74,0x2, 0x12,0xb6,0xfb,0x7d,0xf3,0x4e,0xf4,0x0, 0x1, 0x4e,0xf4,0x0, 0xa, 0x12, +0xb7,0xc0,0x7a,0x45,0x36,0x7d,0x30,0x6d,0x22,0x7f,0x6, 0x12,0xb8,0x64,0x5e,0xf4, +0xff,0xfd,0x12,0xb7,0xc0,0x2, 0xb7,0xf8,0xa9,0xc5,0xca,0xe4,0x7a,0xb3,0x39,0x13, +0x22,0xca,0xf8,0x7c,0xfb,0x74,0x2, 0x12,0xb6,0xfb,0x4c,0xff,0x78,0x5, 0x5e,0x70, +0xdf,0x80,0x3, 0x4e,0x70,0x20,0x74,0x2, 0x12,0xb7,0x62,0xda,0xf8,0x22,0xd2,0xc8, +0x43,0xed,0xf, 0xc2,0xea,0x75,0xb3,0x13,0xa9,0xd1,0xb4,0xa9,0xc0,0xb4,0x12,0xb8, +0x38,0xe4,0x12,0xb8,0x1, 0x2, 0xb7,0xf8,0xa9,0xd5,0xca,0xa9,0xd1,0xea,0xa9,0xc1, +0xea,0x74,0xa5,0x7a,0xb3,0x39,0x13,0x22,0x6d,0x22,0x80,0x13,0x75,0xb5,0x0, 0xa9, +0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0xe5,0xb5,0x7a,0xb, 0xb0,0xb, 0x14,0xb, 0x24,0xbd, +0x32,0x38,0xe9,0x22,0x12,0xb8,0x72,0x7e,0x35,0x36,0x12,0xb8,0x48,0xa9,0xd2,0xb4, +0xd3,0x22,0x7d,0x52,0xf5,0x3a,0x7c,0xb6,0x7c,0xa5,0xa, 0x44,0xf5,0x39,0x7f,0x21, +0xf5,0x38,0xa9,0xc2,0xb4,0x74,0xb, 0x12,0xb8,0x9d,0xe5,0x3a,0x12,0xb8,0x9d,0xe5, +0x39,0x12,0xb8,0x9d,0xe5,0x38,0x12,0xb8,0x9d,0xe4,0x2, 0xb8,0x9d,0xf5,0xb5,0xa9, +0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0xd3,0x22,0x7c,0xa6,0x7c,0x37,0x7c,0x2b,0xe4,0x6c, +0x11,0x80,0x46,0xbc,0xa1,0x68,0x40,0x1a,0x41,0x3e,0x44,0x9, 0x4, 0x26,0xfb,0xa, +0x20,0xa, 0x33,0x9d,0x32,0x12,0x21,0x0, 0x7c,0x7, 0x1a,0x41,0x3e,0x44,0x9, 0x74, +0x26,0xfa,0xa, 0x27,0xa, 0x32,0x9d,0x32,0x12,0x21,0x0, 0x7c,0x97,0xbe,0x90,0x1, +0x18,0x8, 0xbe,0x0, 0x1, 0x18,0x3, 0x74,0x1, 0x22,0xbe,0x90,0x2, 0x18,0x8, 0xbe, +0x0, 0x2, 0x18,0x3, 0x74,0x2, 0x22,0xb, 0x10,0x7e,0x83,0x28,0x84,0xbc,0x81,0x18, +0xb2,0x22,0x7f,0x71,0x69,0x37,0x0, 0x2, 0x7d,0x53,0x12,0xb9,0x5c,0xb, 0x7a,0x20, +0x2d,0x25,0x1b,0xa, 0x20,0x69,0x27,0x0, 0x4, 0x7d,0x52,0xc4,0x54,0xf0,0x7c,0xab, +0xe4,0x1e,0x34,0x1e,0x34,0x2d,0x35,0x79,0x30,0x0, 0x2, 0x69,0x37,0x0, 0x6, 0x7d, +0x53,0x7c,0xab,0xe4,0x3e,0x54,0x3e,0x54,0x1e,0x24,0x1e,0x24,0x1e,0x24,0x1e,0x24, +0x2d,0x25,0x79,0x20,0x0, 0x4, 0x69,0x27,0x0, 0x8, 0x7c,0x45,0x6c,0x55,0x12,0x25, +0x3c,0x1e,0x34,0x1e,0x34,0x2d,0x32,0x79,0x30,0x0, 0x6, 0x22,0x3, 0x3, 0x54,0xc0, +0x7c,0xab,0xe4,0x22,0x7c,0xab,0x9f,0x11,0x30,0x3, 0x22,0x6c,0x99,0x80,0x1a,0xa, +0xf9,0x2d,0xf1,0x7d,0xe0,0x7e,0x7b,0xb0,0x7e,0x78,0x0, 0x1, 0x60,0x5, 0x2f,0x77, +0x14,0x78,0xfb,0x4d,0x3f,0x4d,0x2e,0xb, 0x90,0xbc,0xa9,0x38,0xe2,0x22,0xca,0xf8, +0x90,0x60,0x51,0xe4,0x93,0x7c,0xfb,0x7e,0x8, 0x1f,0x34,0x12,0x3f,0xd9,0x7e,0x8, +0x1f,0x3c,0x12,0xba,0x1a,0xd2,0x3, 0x7e,0x8, 0x2a,0xdc,0x7c,0xbf,0x12,0xb9,0x64, +0x7e,0x8, 0x1f,0x34,0x7a,0xf, 0x1f,0x58,0x7f,0x1, 0x7a,0x17,0x1f,0x5c,0x7d,0x32, +0x7a,0x37,0x1f,0x5e,0x7e,0x18,0x1f,0x3c,0x7a,0x1f,0x1f,0x64,0x6c,0x77,0x80,0xe, +0x12,0xba,0x62,0x50,0x7, 0x12,0xba,0x59,0x19,0x51,0x1f,0x3c,0xb, 0x70,0xbc,0xf7, +0x38,0xee,0x12,0xba,0x7, 0xe4,0x12,0xba,0xf, 0xe4,0x12,0xc, 0x9b,0x6d,0x33,0x7a, +0x37,0x1f,0x5c,0x7a,0x37,0x1f,0x5e,0x12,0xba,0x7, 0x74,0x1, 0x12,0xba,0xf, 0x74, +0x1, 0x12,0xc, 0x9b,0xda,0xf8,0x22,0xa9,0xc6,0xea,0x7e,0x8, 0x1f,0x58,0x22,0x12, +0xc, 0x9b,0xa9,0xd6,0xea,0x7e,0x8, 0x1f,0x58,0x22,0x7e,0x34,0x0, 0x1c,0x74,0x3f, +0x2, 0x20,0xde,0x7e,0x8, 0x1f,0x34,0x12,0xba,0x1a,0x6c,0x77,0x80,0xe, 0x12,0xba, +0x62,0x50,0x7, 0x12,0xba,0x59,0x19,0x51,0x1f,0x34,0xb, 0x70,0x7e,0x53,0x2a,0x6e, +0xbc,0x57,0x38,0xea,0xa9,0xc6,0xea,0x7e,0x8, 0x1f,0x34,0xe4,0x12,0x11,0x38,0xa9, +0xd6,0xea,0x7e,0x8, 0x1f,0x34,0x2, 0x11,0x38,0xa, 0x27,0x9, 0x52,0x2b,0x44,0xa, +0x16,0x22,0xa, 0x27,0x9, 0x62,0x2a,0xdc,0xbe,0x60,0x1c,0x22,0x7c,0x57,0x7c,0xab, +0x6c,0x77,0x80,0x50,0xa, 0x47,0x7e,0x7d,0x24,0x2d,0xf4,0x7e,0x7b,0x60,0xa, 0x46, +0x2e,0x44,0x20,0x73,0x7a,0x91,0x82,0x7a,0x81,0x83,0xe4,0x93,0x7c,0x6b,0xbe,0x60, +0xd, 0x38,0x12,0x7e,0xd4,0x0, 0x1, 0x7c,0xb6,0x60,0x5, 0x3e,0xd4,0x14,0x78,0xfb, +0x7e,0x7d,0x28,0x80,0x15,0x9e,0x60,0xe, 0x7e,0xd4,0x0, 0x1, 0x7c,0xb6,0x60,0x5, +0x3e,0xd4,0x14,0x78,0xfb,0x7e,0x7d,0x28,0xb, 0xf5,0xb, 0x7a,0x40,0x4d,0x4d,0x1b, +0x7a,0x40,0xb, 0x70,0xbc,0x57,0x38,0xac,0x6c,0x77,0x80,0x58,0xa, 0x27,0x7f,0x70, +0x2d,0xf2,0x7e,0x7b,0x60,0xbe,0x60,0xd, 0x38,0x11,0x12,0xbb,0x29,0x60,0x5, 0x3e, +0x44,0x14,0x78,0xfb,0x7e,0x7d,0x28,0xb, 0xf6,0x80,0x2f,0xbe,0x60,0x1b,0x38,0x16, +0x9e,0x60,0xe, 0x12,0xbb,0x29,0x60,0x5, 0x3e,0x44,0x14,0x78,0xfb,0x7e,0x7d,0x28, +0x2e,0xf4,0x0, 0x6, 0x80,0x14,0x9e,0x60,0x1c,0x12,0xbb,0x29,0x60,0x5, 0x3e,0x44, +0x14,0x78,0xfb,0x7e,0x7d,0x28,0x2e,0xf4,0x0, 0x8, 0xb, 0x7a,0x20,0x4d,0x24,0x1b, +0x7a,0x20,0xb, 0x70,0xbc,0xa7,0x38,0xa4,0x22,0x7e,0x44,0x0, 0x1, 0x7c,0xb6,0x22, +0x7e,0x27,0x28,0xa3,0x6d,0x11,0x9d,0x12,0x6c,0xaa,0x80,0x64,0x30,0x0, 0x2e,0x7e, +0x90,0x2, 0xac,0x9a,0x49,0x34,0x5, 0xf8,0x49,0x4, 0x4, 0x0, 0xbd,0x2, 0x8, 0x11, +0x7e,0xb3,0x25,0xf6,0xb4,0x1, 0x16,0x7d,0xf2,0x2d,0xf3,0x59,0xf4,0x5, 0xf8,0x80, +0xc, 0xbd,0x1, 0x58,0x8, 0x7d,0x3, 0x9d,0x2, 0x59,0x4, 0x5, 0xf8,0x30,0x2, 0x2e, +0x7e,0x90,0x2, 0xac,0x9a,0x49,0x34,0x6, 0x76,0x49,0x4, 0x4, 0x7e,0xbd,0x2, 0x8, +0x11,0x7e,0xb3,0x25,0xf6,0xb4,0x1, 0x16,0x7d,0xf2,0x2d,0xf3,0x59,0xf4,0x6, 0x76, +0x80,0xc, 0xbd,0x1, 0x58,0x8, 0x7d,0x3, 0x9d,0x2, 0x59,0x4, 0x6, 0x76,0xb, 0xa0, +0x7e,0xb3,0x2a,0x74,0xa, 0xb, 0x7e,0xb3,0x2a,0x73,0xa, 0x4b,0x2d,0x40,0xa, 0xa, +0xbd,0x4, 0x48,0x88,0x22,0x6c,0x33,0x80,0x9, 0xe4,0xa, 0x33,0x19,0xb3,0x27,0x72, +0xb, 0x30,0x90,0x60,0x9a,0xe4,0x93,0x12,0x77,0xf6,0xb, 0x24,0xa, 0x33,0xbd,0x32, +0x48,0xe7,0xe4,0x7a,0xb3,0x28,0x84,0x7a,0xb3,0x28,0x85,0x6d,0x33,0x7a,0x37,0x28, +0x86,0x7a,0x37,0x28,0x88,0x7a,0x37,0x28,0x8a,0x7a,0x37,0x28,0x8e,0x7e,0xd4,0x1f, +0x36,0x5e,0xd4,0xff,0xfe,0x6d,0xcc,0x7e,0x1f,0x13,0x8a,0x7a,0x37,0x1f,0x76,0x7d, +0x3d,0x7a,0x37,0x1f,0x7a,0x7e,0x34,0x15,0x9e,0x7a,0x37,0x1f,0x78,0x7e,0x73,0x2a, +0x6d,0x7a,0x73,0x1f,0x73,0x7e,0x73,0x2a,0x6e,0x7a,0x73,0x1f,0x72,0x7e,0x37,0x2a, +0x5c,0x7a,0x37,0x1f,0x7c,0x7e,0x37,0x2a,0x5e,0x7a,0x37,0x1f,0x7e,0x7e,0x37,0x2a, +0x60,0x7a,0x37,0x1f,0x80,0x90,0x60,0x9a,0x93,0x7a,0xb3,0x1f,0x74,0x7e,0x73,0x3, +0xff,0x7a,0x73,0x1f,0x75,0x7e,0x8, 0x1f,0x72,0x7e,0x18,0x1f,0x82,0x12,0x8, 0x0, +0x7e,0x73,0x1f,0x82,0x7a,0x73,0x28,0x84,0x7e,0x73,0x1f,0x83,0x7a,0x73,0x28,0x85, +0x7e,0x37,0x1f,0x84,0x7a,0x37,0x28,0x86,0x7e,0x37,0x1f,0x86,0x7a,0x37,0x28,0x88, +0x7e,0x37,0x1f,0x8c,0x7a,0x37,0x28,0x8a,0x7e,0x37,0x1f,0x8e,0x7d,0x23,0x7a,0x53, +0x28,0x8c,0xa, 0x36,0x7a,0x73,0x28,0x8d,0x7e,0x37,0x1f,0x88,0x7a,0x37,0x28,0x8e, +0x7e,0x37,0x1f,0x8a,0x7d,0x23,0x7a,0x53,0x28,0x90,0xa, 0x36,0x7a,0x73,0x28,0x91, +0x6c,0x33,0x80,0x1d,0x7c,0xb3,0x12,0x2f,0xd0,0x74,0x2, 0xac,0xb3,0x49,0x45,0x15, +0x9e,0xa, 0x38,0x7c,0x27,0x19,0x25,0x26,0xfa,0x7c,0x29,0x19,0x25,0x26,0xfb,0xb, +0x30,0x7e,0x23,0x28,0x84,0xbc,0x23,0x38,0xdb,0x6c,0x33,0x80,0x1b,0x74,0x2, 0xac, +0xb3,0x7f,0x16,0x2d,0x35,0xb, 0x1a,0x40,0xa, 0x38,0x7c,0x27,0x19,0x25,0x27,0x36, +0x7c,0x29,0x19,0x25,0x27,0x37,0xb, 0x30,0x7e,0x23,0x28,0x85,0xbc,0x23,0x38,0xdd, +0x22,0x7c,0x7b,0xa, 0x57,0x9e,0x54,0x0, 0x20,0xe, 0x54,0xe, 0x54,0xe, 0x54,0xe, +0x54,0x7c,0xab,0x7c,0x67,0x5e,0x60,0xf0,0xa5,0xbe,0x20,0x1d,0x7c,0xb7,0x54,0xf, +0x7e,0x24,0x0, 0x1, 0x60,0x5, 0x3e,0x24,0x14,0x78,0xfb,0x7e,0x73,0x38,0xfb,0xa, +0x47,0x5d,0x42,0x7e,0x73,0x37,0x32,0x80,0x36,0xa5,0xbe,0x30,0x18,0x12,0xbd,0x64, +0x60,0x5, 0x3e,0x34,0x14,0x78,0xfb,0x7e,0x53,0x38,0xfc,0xa, 0x45,0x5d,0x43,0x7e, +0x73,0x37,0x33,0x80,0x1a,0x12,0xbd,0x64,0x60,0x5, 0x3e,0x34,0x14,0x78,0xfb,0xa, +0x2a,0x9, 0xb2,0x38,0xfb,0xa, 0x4b,0x5d,0x43,0xa, 0x5a,0x9, 0x75,0x37,0x34,0xa, +0x57,0x5d,0x54,0x22,0x7c,0xb7,0x54,0xf, 0x7e,0x34,0x0, 0x1, 0x22,0x7e,0xb3,0x2f, +0x80,0xb4,0x4, 0x2, 0xd3,0x22,0xc3,0x22,0x7d,0xf2,0x7d,0xe3,0x7e,0x8, 0x2f,0x80, +0x7e,0x34,0x0, 0x28,0xe4,0x12,0x20,0xde,0x7e,0x8, 0x2b,0xbf,0x7e,0x34,0x3, 0xc0, +0x12,0x20,0xde,0x7a,0xb3,0x37,0x34,0x7e,0x34,0x62,0x8e,0x12,0x23,0x9e,0x7a,0x37, +0x2b,0xb7,0x7a,0xe7,0x2f,0x84,0x7a,0xf7,0x2f,0x86,0x7a,0xe7,0x2f,0x88,0x7a,0xe7, +0x2f,0x8c,0x7a,0xe7,0x2f,0x90,0x7a,0xe7,0x2f,0x94,0x7a,0xf7,0x2f,0x8a,0x7a,0xf7, +0x2f,0x8e,0x7a,0xf7,0x2f,0x92,0x7a,0xf7,0x2f,0x96,0x7a,0xe7,0x2b,0xbb,0x7a,0xf7, +0x2b,0xbd,0x7a,0xb3,0x2f,0xa8,0x74,0x2, 0x7a,0xb3,0x2f,0x7f,0x22,0x74,0xfe,0x7a, +0xb3,0x37,0x34,0xe4,0x7a,0xb3,0x2f,0x80,0x22,0x7d,0x13,0x3e,0x14,0x3e,0x14,0x3e, +0x14,0x7e,0x37,0x38,0xe2,0x9e,0x37,0x38,0xde,0x12,0x21,0x0, 0xbd,0x31,0x38,0x12, +0x7e,0x37,0x38,0xe4,0x9e,0x37,0x38,0xe0,0x12,0x21,0x0, 0xbd,0x31,0x38,0x3, 0x74, +0x1, 0x22,0xe4,0x22,0xca,0xd8,0xca,0x79,0x6c,0xff,0x6d,0xdd,0x7d,0xed,0x7d,0xfd, +0x7e,0xd3,0x2a,0x2, 0x7e,0xe3,0x2a,0x3, 0x7e,0xb3,0x38,0xdd,0x60,0x11,0x7e,0xc7, +0x38,0xe6,0x4d,0xcc,0x78,0x2, 0xe1,0x8, 0xbe,0xd0,0x1, 0x28,0x2, 0xe1,0x8, 0xbe, +0xd0,0x1, 0x78,0x1d,0xbe,0xb0,0x4, 0x78,0x2, 0xe1,0x8, 0x7e,0xe7,0x29,0x8, 0x7e, +0xf7,0x29,0xa, 0x7d,0x3e,0x7d,0x2f,0x12,0x66,0xe6,0xbe,0xb0,0x1, 0x78,0x2, 0xe1, +0x8, 0x7e,0xa3,0x38,0xdd,0x7c,0xba,0x14,0x68,0x29,0x14,0x68,0x54,0x14,0x68,0x23, +0x14,0x78,0x2, 0xe1,0x5, 0xb, 0xb2,0x68,0x2, 0xe1,0x8, 0xbe,0xd0,0x1, 0x68,0x2, +0xe1,0x17,0x4c,0xee,0x68,0x2, 0xe1,0x17,0x74,0x1, 0x7a,0xb3,0x38,0xdd,0x12,0xbf, +0x2a,0x80,0x65,0x4c,0xdd,0x78,0x1d,0xbe,0xa0,0x1, 0x78,0xc, 0x74,0x2, 0x7a,0xb3, +0x38,0xdd,0x7e,0x34,0x62,0x64,0x80,0x54,0x74,0x4, 0x7a,0xb3,0x38,0xdd,0x7e,0x34, +0x62,0x68,0x80,0x48,0x12,0xbf,0x33,0x90,0x62,0x57,0x12,0xbf,0x1e,0x68,0x49,0x80, +0x56,0xbe,0xd0,0x1, 0x78,0x51,0x4c,0xee,0x78,0x4d,0x12,0xbf,0x33,0x7e,0x34,0x62, +0x60,0x12,0x23,0x9e,0x7e,0x14,0x62,0x64,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0xc0,0x9d, +0xc3,0xbe,0xc7,0x38,0xe6,0x40,0x21,0x90,0x62,0x56,0x12,0xbf,0x1e,0x68,0x19,0x12, +0xbf,0x2a,0x74,0x3, 0x7a,0xb3,0x38,0xdd,0x7e,0x34,0x62,0x64,0x12,0x23,0x9e,0x7a, +0x37,0x38,0xe6,0x80,0x12,0x7e,0xf0,0x24,0xe4,0x7a,0xb3,0x38,0xdd,0x6d,0x33,0x7a, +0x37,0x38,0xe6,0x7c,0xbf,0x80,0x2, 0x7c,0xbf,0xda,0x79,0xda,0xd8,0x22,0xe4,0x93, +0xa, 0x3b,0x12,0xbd,0xe9,0xa, 0xdb,0x4d,0xdd,0x22,0x7a,0xe7,0x38,0xde,0x7a,0xf7, +0x38,0xe0,0x22,0x7a,0xe7,0x38,0xe2,0x7a,0xf7,0x38,0xe4,0x22,0xca,0xf8,0x7f,0x51, +0x7f,0x40,0x7e,0x37,0x2f,0x90,0x7a,0x35,0x2a,0x7e,0x37,0x2f,0x8e,0x7a,0x35,0x2c, +0x7e,0x37,0x2f,0x9c,0x7a,0x35,0x26,0x7e,0x37,0x2f,0x9e,0x7a,0x35,0x28,0x6c,0xff, +0x80,0x1e,0x7e,0x34,0x0, 0x26,0x7e,0x14,0x0, 0x2f,0x74,0x9, 0x12,0x1f,0x8c,0x74, +0x2, 0xac,0xbf,0x7f,0x4, 0x2d,0x15,0x7f,0x15,0x2d,0x35,0x12,0xbf,0x8b,0xb, 0xf0, +0x7e,0x73,0x38,0x3f,0xbc,0x7f,0x38,0xda,0xda,0xf8,0x22,0x7f,0x71,0x7f,0x60,0x7e, +0x35,0x2f,0xbe,0x34,0x0, 0x0, 0x38,0x7, 0x7e,0x34,0x0, 0x1, 0x7a,0x35,0x2f,0x7e, +0x35,0x31,0xbe,0x34,0x0, 0x0, 0x38,0x7, 0x7e,0x34,0x0, 0x1, 0x7a,0x35,0x31,0xb, +0x6a,0x30,0x9e,0x35,0x33,0x6d,0x22,0x7e,0x33,0x38,0x41,0x12,0xbf,0xe0,0x7e,0x15, +0x2f,0x12,0x1f,0x5, 0x1b,0x6a,0x30,0xb, 0x7a,0x30,0x9e,0x35,0x35,0x6d,0x22,0x7e, +0x33,0x38,0x42,0x12,0xbf,0xe0,0x7e,0x15,0x31,0x12,0x1f,0x5, 0x1b,0x7a,0x30,0x22, +0xa, 0x13,0x6d,0x0, 0x2, 0x1e,0xeb,0x7a,0x1d,0x24,0x7e,0xa3,0x2a,0x6e,0x74,0x2, +0xa4,0x7e,0xf, 0x6, 0xf8,0x2d,0x15,0x7e,0xb3,0x2a,0x6d,0x7e,0x37,0x2a,0x51,0x22, +0x74,0x1, 0x7a,0xb3,0x37,0xa0,0x7e,0x34,0x60,0xa3,0x22,0x7a,0x1d,0x24,0x7e,0xf, +0x6, 0xf8,0x7e,0xb3,0x2a,0x6e,0x7e,0x37,0x2a,0x53,0x22,0x7e,0xa3,0x2a,0x6e,0x7e, +0xb3,0x2a,0x6d,0xa4,0x22,0x74,0x1, 0x7a,0xb3,0x2b,0x1, 0x7a,0xb3,0x2b,0x1d,0x22, +0x9, 0x75,0x26,0x36,0x7a,0x73,0x2b,0x20,0x22,0x9, 0x75,0x26,0x34,0x7a,0x73,0x2b, +0x14,0x22,0x7e,0x8, 0x2a,0x6d,0x2, 0xd, 0x72,0xa, 0x47,0x7f,0x70,0x2d,0xf4,0x7e, +0x7b,0x60,0xbc,0x6b,0x22,0x6e,0x34,0xff,0xff,0xb, 0x34,0x7a,0x37,0x2a,0x5e,0x22, +0x7e,0x29,0x60,0x4c,0x6a,0x7a,0x29,0x60,0xb, 0x70,0x22,0x2e,0x14,0x1, 0x30,0x6d, +0x0, 0x7e,0x18,0x3, 0x60,0x22,0x2e,0x14,0x0, 0x50,0x6d,0x0, 0x7e,0x18,0x34,0x0, +0x22,0x74,0x6, 0x12,0xb6,0xfb,0x7d,0x3, 0x6c,0x11,0x22,0x7e,0x70,0x2, 0xac,0x7c, +0x9, 0xb3,0x26,0xfa,0x22,0xe4,0x7a,0xb3,0x36,0x69,0x7a,0xb3,0x36,0x71,0x22,0x74, +0x1, 0x12,0x13,0xde,0xe4,0x2, 0x0, 0x1e,0x7a,0x37,0x2a,0x4f,0x7e,0x34,0x61,0x57, +0x22,0x7a,0x37,0x28,0xa1,0x7e,0x34,0x61,0xc2,0x22,0x90,0x60,0xaa,0xe4,0x93,0xbe, +0xb0,0x1, 0x22,0x9, 0x75,0x26,0x33,0x7a,0x73,0x2b,0xf, 0x22,0x74,0x5, 0xac,0xbc, +0x9, 0xb5,0x26,0x33,0x22,0x7e,0x8, 0x0, 0x25,0x7e,0x18,0x0, 0x24,0x22,0x7e,0xe3, +0x2a,0x6f,0x7e,0xd3,0x2a,0x70,0x22,0x6d,0x33,0xe4,0x6c,0x55,0x2, 0x13,0x1, 0x7e, +0x37,0x25,0xf4,0x7a,0x37,0x31,0xcc,0x22,0x7e,0x34,0xd, 0xc8,0x7a,0x37,0x31,0xce, +0x22,0x7e,0x73,0x37,0xbd,0x7a,0x73,0x2b,0x20,0x22,0x12,0x0, 0x1e,0x7e,0xb3,0x2a, +0xfc,0x22,0x7e,0x73,0x28,0x92,0xbe,0x70,0x0, 0x22,0x7e,0xb3,0x28,0xa8,0xbe,0xb0, +0x1, 0x22,0x12,0x0, 0xe, 0x7e,0x1f,0x13,0x86,0x22,0x7e,0xb3,0x37,0x31,0xbe,0xb0, +0x1, 0x22,0x7e,0x73,0x2a,0x2, 0xbe,0x70,0x0, 0x22,0x90,0x60,0xa7,0xe4,0x93,0x7c, +0xab,0x22,0xc1,0x42,0x3e,0xbd,0x2d,0xd2,0x19,0x53, \ No newline at end of file diff --git a/drivers/input/touchscreen/FT5346/ft_app_ic_lens_tianma.txt b/drivers/input/touchscreen/FT5346/ft_app_ic_lens_tianma.txt new file mode 100644 index 0000000000000..4e2af6643b38b --- /dev/null +++ b/drivers/input/touchscreen/FT5346/ft_app_ic_lens_tianma.txt @@ -0,0 +1,2713 @@ +0x2, 0x16,0x42,0x2, 0x9d,0xa4,0xeb,0xaa,0x8, 0x22,0x22,0x2, 0x0, 0x49,0xb4,0x2, +0x4, 0xa9,0xb7,0xea,0x22,0x24,0xff,0xa9,0x97,0xea,0x22,0x2, 0x49,0xeb,0xb4,0x2, +0x4, 0xa9,0xb6,0xea,0x22,0x24,0xff,0xa9,0x96,0xea,0x22,0x2, 0x65,0x9a,0x7f,0x60, +0xa9,0xc2,0xea,0x74,0x1, 0x12,0x13,0x96,0x7f,0x6, 0x12,0x5, 0xb4,0x7f,0x6, 0x2, +0x9, 0xa1,0x22,0x2, 0x65,0xb6,0x2, 0x20,0x74,0x32,0x32,0x2, 0x0, 0x4a,0x12,0x10, +0xa2,0x2, 0x13,0x79,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x32,0x2, 0x0, 0x76,0x1, 0x2, +0x4, 0x8, 0x10,0x20,0x40,0x80,0x2, 0x27,0x69,0xff,0xff,0x2, 0x0, 0x5a,0xb2,0x86, +0x22,0xff,0xff,0x2, 0x10,0x52,0xca,0x7b,0xca,0x6b,0xca,0x5b,0xca,0x4b,0xca,0x2b, +0xca,0x1b,0xca,0xb, 0xc0,0xd0,0xc0,0x83,0xc0,0x82,0xd2,0xb, 0x7e,0xf, 0x33,0xe7, +0x69,0x30,0x0, 0x4, 0x7a,0x73,0x33,0xf7,0x7e,0x73,0x33,0xf7,0xa, 0x37,0x5e,0x34, +0x0, 0x4, 0x68,0x4, 0xd2,0xa, 0x80,0x2, 0xc2,0xa, 0x7e,0x34,0x0, 0x1f,0x79,0x30, +0x0, 0x4, 0xc2,0xc3,0x12,0x12,0x9e,0x12,0x66,0xc9,0x7e,0x1f,0x33,0xe7,0x69,0x31, +0x0, 0x2, 0x5e,0x34,0x0, 0x40,0x68,0x2e,0x6c,0xaa,0x7e,0x10,0x2, 0xac,0x1a,0x7e, +0x1f,0x33,0xe7,0x7f,0x71,0x2d,0xf0,0x69,0x17,0x0, 0x9c,0x59,0x10,0x33,0xeb,0xb, +0xa0,0xbe,0xa0,0x3, 0x78,0xe4,0x69,0x11,0x0, 0xa4,0x7a,0x17,0x33,0xf3,0x69,0x31, +0x0, 0xa2,0x7a,0x37,0x33,0xf1,0xa9,0xc1,0xc4,0xd0,0x82,0xd0,0x83,0xd0,0xd0,0xda, +0xb, 0xda,0x1b,0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda,0x7b,0x32,0x7d,0x13, +0x7e,0x1f,0x38,0xf3,0x1b,0x1a,0x10,0xc2,0xc6,0xd2,0xee,0x22,0xff,0xff,0x54,0x2c, +0xca,0x79,0x7f,0x50,0x7c,0xeb,0x7e,0x34,0x0, 0x24,0x7e,0x8, 0x0, 0x2c,0x7e,0x24, +0x0, 0x2, 0x12,0x4b,0x63,0xe5,0x2c,0xbe,0xb0,0x0, 0x38,0x2, 0x21,0x4a,0xe5,0x2c, +0xbe,0xb0,0x76,0x28,0x2, 0x21,0x4a,0x7e,0xe1,0x2c,0xbe,0xe0,0x76,0x38,0x2, 0x21, +0x78,0x7e,0x34,0x14,0xb5,0x79,0x35,0x0, 0x2, 0x7e,0x34,0x14,0x99,0x79,0x35,0x0, +0x4, 0xbe,0xe0,0x81,0x68,0x2, 0x21,0x71,0x74,0x23,0x7a,0x5b,0xb0,0x74,0x1c,0x61, +0x84,0x74,0x1, 0x7a,0x5b,0xb0,0x61,0x84,0x7c,0xbe,0x14,0xbe,0xb0,0x75,0x40,0x2, +0x61,0x33,0x7e,0xa0,0x3, 0xa4,0x2e,0x54,0x1, 0x8c,0x89,0x54,0x2, 0x2, 0xfb,0x2, +0x2, 0xfb,0x2, 0x3, 0x33,0x2, 0x2, 0xfb,0x2, 0x3, 0x33,0x2, 0x2, 0xed,0x2, 0x2, +0xfb,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x2, 0xfb,0x2, 0x3, 0x33,0x2, 0x2, 0xfb, +0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x25,0x2, 0x3, 0x33,0x2, 0x3, 0x9, 0x2, +0x2, 0xfb,0x2, 0x3, 0x17,0x2, 0x3, 0x17,0x2, 0x2, 0xfb,0x2, 0x3, 0x33,0x2, 0x3, +0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33, +0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, +0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, +0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33, +0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, +0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, +0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33, +0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, +0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, +0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33, +0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, +0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, +0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33, +0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, +0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, +0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33, +0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, +0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x2, 0xfb,0x41,0xfb,0x7e,0x34,0x14, +0xb5,0x79,0x35,0x0, 0x2, 0x7e,0x34,0x14,0x52,0x61,0x3f,0x7e,0x34,0x14,0x89,0x79, +0x35,0x0, 0x2, 0x7e,0x34,0x14,0x99,0x61,0x3f,0x7e,0x34,0x14,0x89,0x79,0x35,0x0, +0x2, 0x7e,0x34,0x14,0x22,0x61,0x3f,0x7e,0x34,0x14,0x6, 0x79,0x35,0x0, 0x2, 0x7e, +0x34,0x14,0x36,0x61,0x3f,0x7e,0x34,0x14,0x7a,0x79,0x35,0x0, 0x2, 0x7e,0x34,0x14, +0x61,0x61,0x3f,0x7e,0x34,0x14,0xb5,0x79,0x35,0x0, 0x2, 0x7e,0x34,0x14,0x99,0x79, +0x35,0x0, 0x4, 0xbe,0xe0,0x16,0x28,0x2, 0x61,0x4e,0x7c,0xfe,0x61,0x62,0x7e,0xf0, +0x16,0xbe,0xe0,0x72,0x50,0x2, 0x61,0x62,0xa, 0x3e,0x9e,0x34,0x0, 0x72,0xb, 0x34, +0x2c,0xf7,0x7e,0x70,0x3, 0xac,0x7f,0x7d,0x23,0x2e,0x24,0x14,0xd9,0x7a,0x51,0x82, +0x7a,0x41,0x83,0xe4,0x93,0x7a,0x5b,0xb0,0x2e,0x34,0x14,0xda,0x7a,0x71,0x82,0x7a, +0x61,0x83,0xe4,0x93,0x39,0xb5,0x0, 0x1, 0xda,0x79,0x22,0xca,0x3b,0x7f,0x30,0x74, +0x1, 0x12,0x13,0xde,0x29,0x73,0x0, 0xf3,0x2e,0x70,0xff,0x92,0x4, 0x29,0xb3,0x0, +0xf4,0x12,0x13,0xaf,0x7f,0x3, 0x12,0xd, 0x72,0x7f,0x3, 0x12,0x6, 0xba,0x29,0x73, +0x0, 0xa, 0xa, 0x37,0x7e,0xf, 0x33,0xe7,0x79,0x30,0x0, 0x24,0x29,0x73,0x0, 0xa3, +0xa, 0x27,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24, +0x69,0x33,0x0, 0xff,0x4d,0x32,0x7e,0xf, 0x33,0xe7,0x79,0x30,0x0, 0x2, 0x29,0x73, +0x0, 0xa, 0xa, 0x47,0x29,0x73,0x0, 0x5, 0xa, 0x57,0x9d,0x54,0xf5,0x34,0x29,0xb3, +0x0, 0xa5,0x70,0xb, 0x29,0xb3,0x0, 0xf8,0x29,0x73,0x0, 0xf7,0x12,0xb, 0xad,0x29, +0x73,0x0, 0xa5,0x2e,0x70,0xff,0x92,0x4, 0xe5,0x34,0x12,0xb, 0x1e,0x69,0x33,0x0, +0xfd,0x7e,0xf, 0x33,0xe7,0x79,0x30,0x0, 0x28,0x69,0x23,0x0, 0xfb,0x3e,0x24,0x3e, +0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x29,0x73,0x0, 0xfa,0xa, 0x37,0x2d, +0x32,0x7e,0xf, 0x33,0xe7,0x79,0x30,0x0, 0x2a,0x29,0x73,0x0, 0xf9,0xa, 0x37,0x7e, +0xf, 0x33,0xe7,0x79,0x30,0x0, 0x2c,0x7e,0x34,0x0, 0x1, 0x7e,0xf, 0x33,0xe7,0x79, +0x30,0x0, 0x34,0x7e,0x34,0x1, 0xb, 0x7e,0xf, 0x33,0xe7,0x79,0x30,0x0, 0x2e,0x29, +0x73,0x0, 0x5, 0xa, 0x37,0x7e,0xf, 0x33,0xe7,0x79,0x30,0x0, 0x10,0x69,0x33,0x0, +0xa8,0x7e,0xf, 0x33,0xe7,0x79,0x30,0x0, 0x1c,0x69,0x33,0x0, 0xaa,0x7e,0xf, 0x33, +0xe7,0x79,0x30,0x0, 0x1e,0x6c,0xaa,0x7e,0x50,0x2, 0xac,0x5a,0x69,0x13,0x1, 0x1, +0x2d,0x12,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0x30,0x7e,0xf, 0x33,0xe7,0x2d,0x12,0x79, +0x30,0x0, 0x44,0xb, 0xa0,0xbe,0xa0,0xc, 0x40,0xdd,0xda,0x3b,0x22,0xca,0xf8,0x7f, +0x70,0x7e,0x7b,0xf0,0x29,0x77,0x0, 0x1, 0xbc,0x7f,0x28,0x2, 0x7c,0xf7,0x69,0x17, +0x0, 0x6, 0x6d,0x0, 0x7e,0x34,0x0, 0xf2,0x74,0xff,0x12,0x17,0x4e,0x7f,0x7, 0x12, +0xe, 0xed,0xa9,0xd6,0xcb,0x6c,0xaa,0x80,0x2d,0x6c,0x77,0x80,0x1f,0x7e,0x10,0xb, +0xac,0x1a,0xa, 0x17,0x2d,0x1, 0x3e,0x4, 0x69,0x17,0x0, 0x6, 0x2d,0x10,0x6d,0x0, +0xb, 0xa, 0x20,0x6e,0x24,0xff,0xff,0x1b,0xa, 0x20,0xb, 0x70,0x29,0x67,0x0, 0x1, +0xbc,0x67,0x38,0xd9,0xb, 0xa0,0x7e,0x7b,0x60,0xbc,0x6a,0x38,0xcc,0x69,0x37,0x0, +0x6, 0x7e,0xf, 0x33,0xfc,0x79,0x30,0x0, 0x4, 0x7c,0x4f,0x6c,0x55,0xa, 0x3f,0x2d, +0x32,0x7e,0xf, 0x33,0xfc,0x79,0x30,0x0, 0xc, 0x6d,0x11,0x7e,0x1f,0x33,0xfc,0x1b, +0x1a,0x10,0x7e,0x34,0x0, 0xd0,0x12,0xf, 0x45,0x6c,0xaa,0xbe,0xa0,0x4, 0x50,0x18, +0x7e,0x70,0x4, 0xac,0x7a,0x7c,0xb7,0x7e,0x1f,0x33,0xfc,0x69,0x41,0x0, 0x26,0x60, +0x42,0x1e,0x44,0x14,0x78,0xfb,0x80,0x3b,0xbe,0xa0,0x8, 0x50,0x1b,0xa, 0x3a,0x1b, +0x36,0x3e,0x34,0x3e,0x34,0x7c,0xb7,0x7e,0x1f,0x33,0xfc,0x69,0x41,0x0, 0x28,0x60, +0x22,0x1e,0x44,0x14,0x78,0xfb,0x80,0x1b,0xa, 0x3a,0x9e,0x34,0x0, 0x8, 0x3e,0x34, +0x3e,0x34,0x7c,0xb7,0x7e,0x1f,0x33,0xfc,0x69,0x41,0x0, 0x2a,0x60,0x5, 0x1e,0x44, +0x14,0x78,0xfb,0x5e,0x44,0x0, 0xf, 0x7e,0x50,0x2, 0xac,0x5a,0x69,0x37,0x0, 0x6, +0x2d,0x32,0x6d,0x22,0x1b,0x1a,0x40,0xb, 0xa0,0xbe,0xa0,0xb, 0x40,0x8d,0xa9,0xc6, +0xcb,0xda,0xf8,0x22,0x29,0x70,0x0, 0x96,0x29,0x90,0x0, 0x98,0x29,0x60,0x0, 0x97, +0x29,0x80,0x0, 0x8d,0xbe,0x80,0x4, 0x38,0x4, 0x6c,0xaa,0x80,0x21,0xbe,0x80,0x8, +0x38,0x5, 0x7e,0xa0,0x1, 0x80,0x17,0xbe,0x80,0x10,0x38,0x5, 0x7e,0xa0,0x2, 0x80, +0xd, 0xbe,0x80,0x20,0x38,0x5, 0x7e,0xa0,0x3, 0x80,0x3, 0x7e,0xa0,0x4, 0xbe,0x90, +0x3, 0x28,0x3, 0x7e,0x90,0x3, 0xbe,0x80,0x3f,0x28,0x3, 0x7e,0x80,0x3f,0xbe,0x60, +0x1, 0x28,0x3, 0x7e,0x60,0x1, 0xbe,0x70,0x2, 0x28,0x2, 0x6c,0x77,0xa, 0x28,0x3e, +0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x7c,0x89,0x6c,0x99,0x3e,0x44,0x3e, +0x44,0x3e,0x44,0x2d,0x42,0xa, 0x26,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x2d, +0x24,0xa, 0x37,0x3e,0x34,0x3e,0x34,0x2d,0x32,0x7e,0x7f,0x38,0xf3,0x79,0x37,0x0, +0x2, 0x29,0xb0,0x0, 0x8c,0x7c,0x4b,0x6c,0x55,0x29,0xb0,0x0, 0x8b,0xa, 0x3b,0x2d, +0x32,0x7e,0x7f,0x33,0xdf,0x79,0x37,0x0, 0x80,0x69,0x30,0x0, 0xa0,0x7e,0x7f,0x38, +0xf3,0x79,0x37,0x0, 0xc, 0x69,0x30,0x0, 0x9e,0x5e,0x34,0xe0,0xf, 0x29,0xb0,0x0, +0x8c,0xa, 0x2b,0x1b,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x2d,0x32,0x7e, +0x7f,0x33,0xdf,0x79,0x37,0x0, 0x82,0xa, 0x2a,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e, +0x24,0x29,0xb0,0x0, 0x99,0xa, 0x3b,0x2d,0x32,0x7e,0x7f,0x38,0xf3,0x79,0x37,0x0, +0x6, 0x69,0x30,0x0, 0x9c,0x7e,0x7f,0x38,0xf3,0x79,0x37,0x0, 0x8, 0x69,0x30,0x0, +0x9a,0x7e,0xf, 0x38,0xf3,0x79,0x30,0x0, 0xa, 0x22,0x7f,0x60,0x74,0x1, 0x12,0x13, +0xde,0x29,0x36,0x0, 0xf5,0x29,0x26,0x0, 0xa3,0x29,0x16,0x0, 0xa4,0xbe,0x20,0x2, +0x28,0x3, 0x7e,0x20,0x2, 0xbe,0x10,0x40,0x28,0x3, 0x7e,0x10,0x40,0x7e,0x34,0x0, +0x4, 0x7c,0xb2,0x60,0x5, 0x3e,0x34,0x14,0x78,0xfb,0x7c,0x7, 0xa, 0x31,0x7e,0x2f, +0x33,0xe7,0x79,0x32,0x0, 0x12,0x7c,0x73,0xac,0x70,0xa, 0x21,0x12,0x15,0x29,0x7c, +0x27,0xa, 0x32,0x7e,0x2f,0x33,0xe7,0x79,0x32,0x0, 0x14,0x7c,0x73,0xac,0x70,0x29, +0x26,0x0, 0xf6,0xa, 0x22,0xad,0x32,0xa, 0x21,0x8d,0x32,0x7d,0x43,0x7c,0x73,0xac, +0x70,0xa, 0x21,0x12,0x15,0x29,0x7c,0xa7,0x7c,0x2a,0x7c,0xb9,0x2c,0xab,0xbe,0xa0, +0xc, 0x50,0x3, 0x7e,0xa0,0xc, 0xbe,0x20,0xc, 0x50,0x3, 0x7e,0x20,0xc, 0xa, 0x20, +0xa, 0x31,0x12,0x15,0x29,0x7d,0xe3,0xa, 0x3a,0xb, 0x34,0xad,0x3e,0xb, 0x34,0xbe, +0x34,0x2, 0x0, 0x40,0x4, 0x7e,0x34,0x1, 0xff,0x29,0x46,0x0, 0xf7,0x7e,0x50,0x2, +0xac,0x45,0xa, 0xf2,0xad,0xfe,0x2d,0x2f,0xb, 0x24,0xbe,0x24,0x2, 0x0, 0x40,0x4, +0x7e,0x24,0x1, 0xff,0xa, 0x13,0x7e,0x7f,0x33,0xe7,0x79,0x17,0x0, 0xa, 0x1e,0x24, +0x7c,0x45,0x6c,0x55,0x1e,0x34,0x2d,0x32,0x7e,0xf, 0x33,0xe7,0x79,0x30,0x0, 0xc, +0xa, 0x3a,0x7e,0xf, 0x33,0xe7,0x79,0x30,0x0, 0x22,0x22,0xa9,0xd6,0xcb,0x69,0x30, +0x0, 0x4, 0x7e,0x2f,0x33,0xfc,0x79,0x32,0x0, 0x4, 0x69,0x30,0x0, 0x6, 0x7e,0x2f, +0x33,0xfc,0x79,0x32,0x0, 0x6, 0x69,0x30,0x0, 0x8, 0x7e,0x2f,0x33,0xfc,0x79,0x32, +0x0, 0x8, 0x7e,0xb, 0x70,0x7c,0x47,0x6c,0x55,0x29,0x70,0x0, 0x1, 0xa, 0x37,0x2d, +0x32,0x7e,0x2f,0x33,0xfc,0x79,0x32,0x0, 0xc, 0x29,0x70,0x0, 0x2, 0xa, 0x37,0x7e, +0xf, 0x33,0xfc,0x79,0x30,0x0, 0xe, 0x6d,0x11,0x7e,0x1f,0x33,0xfc,0x1b,0x1a,0x10, +0x7e,0x34,0x0, 0xe0,0x12,0xf, 0x45,0xa9,0xc6,0xcb,0x22,0xb2,0x82,0x22,0xff,0xff, +0x7f,0x21,0xa9,0xd6,0xcb,0x69,0x30,0x0, 0x4, 0x7e,0x7f,0x33,0xfc,0x79,0x37,0x0, +0x4, 0x69,0x30,0x0, 0x8, 0x7e,0x7f,0x33,0xfc,0x79,0x37,0x0, 0x6, 0x69,0x30,0x0, +0x6, 0x7e,0x7f,0x33,0xfc,0x79,0x37,0x0, 0x8, 0x29,0x70,0x0, 0x1, 0x7c,0x47,0x6c, +0x55,0x7e,0xb, 0x70,0xa, 0x37,0x2d,0x32,0x7e,0x7f,0x33,0xfc,0x79,0x37,0x0, 0xc, +0x29,0x70,0x0, 0x2, 0xa, 0x37,0x1b,0x34,0x7e,0x7f,0x33,0xfc,0x79,0x37,0x0, 0xa, +0x69,0x30,0x0, 0xa, 0x7e,0x7f,0x33,0xfc,0x79,0x37,0x0, 0xe, 0x69,0x30,0x0, 0xc, +0x7e,0x7f,0x33,0xfc,0x79,0x37,0x0, 0x10,0x69,0x30,0x0, 0xe, 0x7e,0x7f,0x33,0xfc, +0x79,0x37,0x0, 0x12,0x29,0x70,0x0, 0x3, 0x7c,0x27,0x6c,0x33,0x7e,0x1f,0x33,0xfc, +0x1b,0x1a,0x10,0x7e,0x34,0x0, 0xa0,0x12,0xf, 0x45,0x7e,0x1f,0x33,0xfc,0x69,0x11, +0x0, 0x1a,0x7a,0x2b,0x30,0x69,0x11,0x0, 0x1c,0x39,0x32,0x0, 0x1, 0x69,0x11,0x0, +0x16,0x79,0x12,0x0, 0x2, 0x69,0x11,0x0, 0x18,0x79,0x12,0x0, 0x4, 0x69,0x11,0x0, +0x22,0x79,0x12,0x0, 0x6, 0x69,0x11,0x0, 0x24,0x79,0x12,0x0, 0x8, 0x69,0x11,0x0, +0x1e,0x79,0x12,0x0, 0xa, 0x69,0x31,0x0, 0x20,0x79,0x32,0x0, 0xc, 0xa9,0xc6,0xcb, +0x22,0xca,0x3b,0x7c,0x57,0x7c,0x4b,0x5e,0x40,0x3, 0x69,0x30,0x0, 0x4, 0x5e,0x60, +0x3f,0x6c,0xaa,0xa, 0x4a,0x69,0xf0,0x0, 0xa, 0x69,0xe0,0x0, 0x8, 0x2d,0xf4,0x7e, +0x7b,0xb0,0xa, 0xfb,0x7d,0x4f,0x7c,0x89,0x6c,0x99,0x7d,0xf4,0xa, 0xea,0x69,0xd0, +0x0, 0xe, 0x69,0xc0,0x0, 0xc, 0x2d,0xde,0x7e,0x6b,0xb0,0xa, 0x4b,0x2d,0x4f,0x7e, +0xd0,0x28,0xac,0xd5,0x7e,0xf0,0x2, 0xac,0xfa,0x7d,0xd7,0x2d,0xd6,0x7e,0xf0,0xf0, +0xac,0xf4,0x2d,0xd7,0x7e,0x7f,0x38,0xef,0x2d,0xfd,0x79,0x47,0x1, 0x8c,0xb, 0xa0, +0xbe,0xa0,0xe, 0x78,0xae,0x6c,0xaa,0x7e,0x90,0x2, 0xac,0x9a,0x69,0xf0,0x0, 0x2, +0xb, 0xa, 0xe0,0x2d,0xf4,0xb, 0x7a,0x40,0x7e,0xd0,0x28,0xac,0xd5,0x7e,0xf0,0x2, +0xac,0xfa,0x7d,0xd7,0x2d,0xd6,0x7e,0xf0,0xf0,0xac,0xf4,0x2d,0xd7,0x7e,0x7f,0x38, +0xef,0x2d,0xfd,0x79,0x47,0x1, 0x80,0xb, 0xa0,0xbe,0xa0,0x4, 0x40,0xc9,0x7e,0x90, +0xf0,0xac,0x94,0x74,0x28,0xac,0xb5,0x7d,0xf5,0x2d,0xf4,0x7e,0x2f,0x38,0xef,0x2d, +0x5f,0x79,0x32,0x1, 0x88,0x69,0x30,0x0, 0x6, 0x7e,0x30,0xf0,0xac,0x34,0x74,0x28, +0xac,0x5b,0x2d,0x21,0x7e,0xf, 0x38,0xef,0x2d,0x12,0x79,0x30,0x1, 0x8a,0xda,0x3b, +0x22,0x29,0x60,0x0, 0xb, 0xa, 0x46,0x29,0x60,0x0, 0x4, 0xa, 0x26,0x2d,0x24,0x7c, +0x65,0x29,0xb0,0x0, 0x6, 0xbc,0xb6,0x28,0x2, 0x7c,0x6b,0x29,0x70,0x0, 0x5, 0x29, +0xb0,0x0, 0x7, 0xbc,0xb7,0x28,0x2, 0x7c,0x7b,0x6c,0xaa,0x6d,0x22,0x7e,0x90,0x2, +0xac,0x9a,0x7e,0x7f,0x33,0xdf,0x2d,0xf4,0x79,0x27,0x0, 0x2, 0xb, 0xa0,0xbe,0xa0, +0x23,0x78,0xea,0x6c,0xaa,0x80,0x55,0xa, 0x2a,0x7f,0x70,0x2d,0xf2,0x29,0x57,0x0, +0x4c,0xbe,0x50,0x23,0x50,0x23,0x29,0x47,0x0, 0xb4,0xa, 0xd4,0x7d,0x4d,0x7c,0x89, +0x6c,0x99,0x7d,0xd4,0x7e,0x90,0x2, 0xac,0x95,0x7e,0x7f,0x33,0xdf,0x2d,0xf4,0xb, +0xf5,0xb, 0x7a,0x40,0x4d,0x4d,0x1b,0x7a,0x40,0xa, 0x4a,0x7f,0x70,0x2d,0xf4,0x29, +0x47,0x0, 0x4c,0xa, 0xd4,0x7e,0x90,0x2, 0xac,0x9a,0x7e,0x7f,0x33,0xdf,0x2d,0xf4, +0xb, 0xf5,0xb, 0x7a,0x40,0x4d,0x4d,0x1b,0x7a,0x40,0xb, 0xa0,0xbc,0x6a,0x38,0xa7, +0x6c,0xaa,0x80,0x1d,0xa, 0x2a,0x7f,0x70,0x2d,0xf2,0x29,0x67,0x0, 0x6f,0xa, 0x46, +0x7e,0x50,0x2, 0xac,0x5a,0x7e,0x7f,0x33,0xdf,0x2d,0xf2,0x79,0x47,0x0, 0x48,0xb, +0xa0,0xbc,0x7a,0x38,0xdf,0x22,0x7c,0x7b,0x7e,0x7f,0x33,0xe7,0x69,0x47,0x0, 0xc, +0x6c,0x88,0x3e,0x44,0x69,0x7, 0x0, 0xa, 0x69,0x57,0x0, 0x2, 0x1e,0x54,0x1e,0x54, +0x1e,0x54,0x1e,0x54,0x1e,0x54,0x1e,0x54,0x1e,0x54,0x5e,0x54,0x0, 0x3, 0x7e,0x14, +0x0, 0x4, 0x70,0x2, 0x41,0x9b,0x3e,0x14,0x14,0x78,0xfb,0x7c,0xa3,0xa, 0xda,0xad, +0xd0,0x7d,0xcd,0x6d,0x11,0x79,0x17,0x0, 0x8c,0x7c,0xb7,0x70,0x2, 0x41,0xb4,0x1e, +0xd4,0x14,0x78,0xfb,0xbe,0xd4,0x1, 0x0, 0x38,0x2, 0x41,0xc2,0x7e,0xd4,0x1, 0x0, +0x41,0xce,0xbe,0xd4,0x0, 0x10,0x40,0x2, 0x41,0xce,0x7e,0xd4,0x0, 0x10,0x7d,0x3d, +0x12,0x12,0x6a,0xa, 0x1b,0x7e,0x1f,0x33,0xe7,0x79,0x11,0x0, 0x90,0x7e,0x1f,0x33, +0xe7,0x79,0xd1,0x0, 0x8e,0x7e,0x7f,0x33,0xe7,0x69,0x37,0x0, 0x8, 0xad,0x3c,0x8d, +0x3d,0x79,0x37,0x0, 0x92,0x7e,0x14,0x0, 0x6, 0x7e,0x1f,0x33,0xe7,0x79,0x11,0x0, +0x94,0x7d,0x24,0x9d,0x20,0xa, 0x3a,0xad,0x32,0x7e,0xf, 0x33,0xe7,0x79,0x30,0x0, +0x96,0x7e,0x34,0x0, 0x10,0x7e,0xf, 0x33,0xe7,0x79,0x30,0x0, 0x98,0x22,0x7c,0x5b, +0x7e,0xf, 0x33,0xe7,0x69,0x40,0x0, 0x22,0x30,0x4, 0x6b,0x6d,0xff,0x7d,0x3f,0xbe, +0x50,0x10,0x28,0x2e,0x7e,0x54,0xff,0xff,0x79,0x50,0x0, 0x42,0x9e,0x50,0x10,0x6c, +0xaa,0x80,0x11,0x7e,0xe4,0x0, 0x1, 0x7c,0xba,0x60,0x5, 0x3e,0xe4,0x14,0x78,0xfb, +0x2d,0x3e,0xb, 0xa0,0xbc,0x5a,0x38,0xeb,0x7e,0x6f,0x33,0xe7,0x79,0x36,0x0, 0x40, +0x80,0x25,0x79,0xf0,0x0, 0x40,0x6c,0xaa,0x80,0x11,0x7e,0xf4,0x0, 0x1, 0x7c,0xba, +0x60,0x5, 0x3e,0xf4,0x14,0x78,0xfb,0x2d,0x3f,0xb, 0xa0,0xbc,0x5a,0x38,0xeb,0x7e, +0x7f,0x33,0xe7,0x79,0x37,0x0, 0x42,0x7d,0x34,0x2e,0x34,0x0, 0xc, 0x7e,0x7f,0x33, +0xe7,0x79,0x37,0x0, 0x16,0x22,0x6d,0x33,0x79,0x30,0x0, 0x40,0x7e,0xf, 0x33,0xe7, +0x79,0x30,0x0, 0x42,0x7e,0x1f,0x33,0xe7,0x79,0x41,0x0, 0x16,0x22,0x7c,0x17,0x7c, +0x3b,0x6d,0x33,0x7e,0x2f,0x33,0xe7,0x79,0x32,0x0, 0x40,0x7e,0x2f,0x33,0xe7,0x79, +0x32,0x0, 0x42,0x7e,0x7f,0x33,0xe7,0x69,0x57,0x0, 0x12,0x7c,0xab,0x69,0x37,0x0, +0x2, 0x1e,0x34,0x1e,0x34,0x1e,0x34,0x1e,0x34,0x1e,0x34,0x1e,0x34,0x1e,0x34,0x5e, +0x34,0x0, 0x3, 0x7c,0xb7,0x7e,0x44,0x0, 0x4, 0x60,0x5, 0x3e,0x44,0x14,0x78,0xfb, +0x7c,0x29,0xa, 0x22,0xa, 0x3a,0x12,0x15,0x29,0xa, 0x23,0x2d,0x32,0x7c,0xb7,0x7c, +0x61,0x6c,0x77,0xa, 0xb, 0x1e,0x4, 0x2d,0x3, 0x79,0x7, 0x0, 0xc, 0x7c,0x73,0xac, +0x72,0xa, 0x2a,0x12,0x15,0x29,0x7e,0xf, 0x33,0xe7,0x79,0x30,0x0, 0x16,0x6d,0x33, +0x7e,0xf, 0x33,0xe7,0x79,0x30,0x0, 0x22,0x22,0xa9,0xd6,0xcb,0x69,0x30,0x0, 0x6, +0x7e,0x2f,0x33,0xfc,0x79,0x32,0x0, 0x4, 0x69,0x30,0x0, 0x8, 0x7e,0x2f,0x33,0xfc, +0x79,0x32,0x0, 0x8, 0x29,0x70,0x0, 0x2, 0x7c,0x47,0x6c,0x55,0x29,0x70,0x0, 0x3, +0xa, 0x37,0x2d,0x32,0x7e,0x2f,0x33,0xfc,0x79,0x32,0x0, 0xc, 0x7e,0xb, 0x70,0x7c, +0x47,0x29,0x70,0x0, 0x1, 0xa, 0x37,0x2d,0x32,0x7e,0x2f,0x33,0xfc,0x79,0x32,0x0, +0xa, 0x29,0x70,0x0, 0x4, 0xa, 0x37,0x7e,0x2f,0x33,0xfc,0x79,0x32,0x0, 0xe, 0x29, +0xb0,0x0, 0x5, 0x54,0x1, 0x7c,0x2b,0x6c,0x33,0x7e,0x1f,0x33,0xfc,0x1b,0x1a,0x10, +0x7e,0x34,0x0, 0xc0,0x12,0xf, 0x45,0xa9,0xc6,0xcb,0x22,0xca,0x79,0x7c,0xab,0x5e, +0xa0,0x3, 0x6c,0x77,0x7e,0x50,0x2, 0xac,0x57,0x69,0xd0,0x0, 0xe, 0x69,0xc0,0x0, +0xc, 0x2d,0xd2,0x29,0x66,0x0, 0x1, 0xa, 0xf6,0x7d,0x4f,0x7c,0x89,0x6c,0x99,0x7d, +0xf4,0x7e,0x6b,0x60,0xa, 0x46,0x2d,0x4f,0x7e,0xf0,0xf0,0xac,0xfa,0x2d,0x27,0x7e, +0x7f,0x38,0xef,0x2d,0xf2,0x79,0x47,0x2, 0x54,0xb, 0x70,0xbe,0x70,0xe, 0x40,0xc4, +0x69,0x40,0x0, 0x4, 0x7e,0xf0,0xf0,0xac,0xfa,0x7e,0x1f,0x38,0xef,0x2d,0x37,0x79, +0x41,0x2, 0x50,0x69,0x30,0x0, 0x6, 0x74,0xf0,0xa4,0x7e,0xf, 0x38,0xef,0x2d,0x15, +0x79,0x30,0x2, 0x52,0xda,0x79,0x22,0xa9,0xd6,0xcb,0xc2,0x19,0x69,0x30,0x0, 0x4, +0x7e,0x2f,0x33,0xfc,0x79,0x32,0x0, 0x4, 0x69,0x30,0x0, 0x6, 0x7e,0x2f,0x33,0xfc, +0x79,0x32,0x0, 0x6, 0x69,0x30,0x0, 0x8, 0x7e,0x2f,0x33,0xfc,0x79,0x32,0x0, 0x8, +0x7e,0xb, 0x70,0x7c,0x47,0x6c,0x55,0x29,0x70,0x0, 0x1, 0xa, 0x37,0x2d,0x32,0x7e, +0x2f,0x33,0xfc,0x79,0x32,0x0, 0xc, 0x29,0x70,0x0, 0x2, 0xa, 0x37,0x7e,0x2f,0x33, +0xfc,0x79,0x32,0x0, 0xe, 0x29,0xb0,0x0, 0x3, 0x54,0x1, 0xa, 0x5b,0x7c,0xab,0xe4, +0x7e,0x1f,0x33,0xfc,0x1b,0x1a,0x50,0x69,0x30,0x0, 0xa, 0x12,0xf, 0x45,0xa9,0xc6, +0xcb,0x22,0x69,0x30,0x0, 0xae,0x7e,0x2f,0x33,0xe7,0x79,0x32,0x0, 0x6, 0x29,0x50, +0x0, 0xa6,0xa, 0x55,0x7d,0x23,0x1e,0x24,0x9d,0x25,0x7e,0x2f,0x33,0xe7,0x79,0x22, +0x0, 0x18,0x7d,0x23,0x1e,0x24,0x1b,0x25,0x7e,0x2f,0x33,0xe7,0x79,0x22,0x0, 0x38, +0x69,0x20,0x0, 0xfd,0x1e,0x34,0x9d,0x32,0x9e,0x34,0x0, 0xa, 0x7e,0x2f,0x33,0xe7, +0x79,0x32,0x0, 0x26,0x29,0x70,0x0, 0xa7,0xa, 0x37,0x7e,0x2f,0x33,0xe7,0x79,0x32, +0x0, 0x1a,0x29,0x70,0x0, 0xb, 0xa, 0x27,0x29,0x70,0x0, 0x4, 0x2d,0x32,0x7e,0x2f, +0x33,0xe7,0x79,0x32,0x0, 0x8, 0x2, 0x9, 0xa1,0xca,0x3b,0xf5,0x24,0x7f,0x41,0x7f, +0x30,0xe5,0x25,0x7e,0x8, 0x0, 0x26,0x12,0x1, 0x20,0xe5,0x24,0xbe,0xb0,0x23,0x28, +0x3, 0x75,0x24,0x23,0x6c,0xaa,0x80,0x36,0xa, 0x3a,0x2d,0x39,0x7d,0x28,0x7e,0x1b, +0xb0,0xbe,0xb1,0x26,0x40,0xd, 0x74,0x23,0xa, 0x4a,0x7f,0x3, 0x2d,0x14,0x7a,0xb, +0xb0,0x80,0x19,0x7e,0x1b,0xb0,0xa, 0x3b,0x2e,0x35,0x28,0x7a,0x71,0x82,0x7a,0x61, +0x83,0xe4,0x93,0xa, 0x4a,0x7f,0x13,0x2d,0x34,0x7a,0x1b,0xb0,0xb, 0xa0,0xe5,0x24, +0xbc,0xba,0x38,0xc4,0xda,0x3b,0x22,0xa9,0xd6,0xcb,0x69,0x20,0x0, 0x4, 0x7e,0x2f, +0x33,0xfc,0x79,0x22,0x0, 0x4, 0x69,0x20,0x0, 0x8, 0x7e,0x2f,0x33,0xfc,0x79,0x22, +0x0, 0x8, 0x7e,0xb, 0x50,0xa, 0x55,0x7c,0xab,0xe4,0x29,0x50,0x0, 0x1, 0xa, 0x25, +0x2d,0x25,0x7e,0x2f,0x33,0xfc,0x79,0x22,0x0, 0xc, 0x29,0x50,0x0, 0x2, 0xa, 0x25, +0x7e,0xf, 0x33,0xfc,0x79,0x20,0x0, 0xe, 0x7e,0xf, 0x33,0xfc,0x79,0x30,0x0, 0xa, +0x6d,0x11,0x7e,0x1f,0x33,0xfc,0x1b,0x1a,0x10,0x7e,0x34,0x0, 0x40,0x12,0xf, 0x45, +0xa9,0xc6,0xcb,0x22,0x7c,0xab,0x7e,0x34,0x0, 0x1, 0x7e,0xf, 0x38,0xf3,0x79,0x30, +0x0, 0xe, 0xc2,0x18,0xe4,0x7a,0xb3,0x38,0xee,0x5e,0xa0,0x3, 0xa, 0x1a,0x3e,0x14, +0x7e,0x1f,0x33,0xdf,0x1b,0x1a,0x10,0x7e,0xf, 0x33,0xdf,0x2e,0x14,0x0, 0x84,0xb, +0xa, 0x30,0x4e,0x70,0x20,0x1b,0xa, 0x30,0x74,0x1, 0x12,0x13,0x56,0x7e,0xf, 0x38, +0xf3,0xb, 0xa, 0x30,0x4e,0x70,0xc, 0x1b,0xa, 0x30,0xa9,0xd3,0xcd,0x7e,0xf, 0x38, +0xf3,0xb, 0x15,0xb, 0xa, 0x30,0x4e,0x70,0x1, 0x1b,0xa, 0x30,0x22,0x7f,0x10,0xa9, +0xd6,0xcb,0x69,0x11,0x0, 0x2, 0x7e,0x2f,0x33,0xfc,0x79,0x12,0x0, 0x4, 0x69,0x11, +0x0, 0x4, 0x7e,0x2f,0x33,0xfc,0x79,0x12,0x0, 0x6, 0x69,0x11,0x0, 0x6, 0x7e,0x2f, +0x33,0xfc,0x79,0x12,0x0, 0x8, 0x7e,0x1b,0x30,0xa, 0x3, 0x7e,0x14,0x1, 0x0, 0xad, +0x10,0x29,0x71,0x0, 0x1, 0xa, 0x37,0x2d,0x31,0x7e,0xf, 0x33,0xfc,0x79,0x30,0x0, +0xc, 0x6d,0x11,0x7e,0x1f,0x33,0xfc,0x1b,0x1a,0x10,0x7e,0x34,0x0, 0x60,0x12,0xf, +0x45,0xa9,0xc6,0xcb,0x22,0xa9,0xd7,0xcb,0x7d,0x23,0x4e,0x50,0x1, 0x7e,0xf, 0x33, +0xfc,0xb, 0xa, 0x30,0x4d,0x32,0x1b,0xa, 0x30,0x80,0x1e,0x7e,0xf, 0x33,0xfc,0xb, +0xa, 0x30,0x7d,0x23,0x5e,0x24,0x0, 0x8, 0xbe,0x24,0x0, 0x8, 0x78,0xb, 0xa9,0xd7, +0xcb,0x4e,0x70,0x4, 0x1b,0xa, 0x30,0xd2,0x19,0x7e,0xf, 0x33,0xfc,0xb, 0xa, 0x30, +0x7d,0x23,0x5e,0x24,0x80,0x0, 0xbe,0x24,0x80,0x0, 0x78,0xcf,0x4e,0x60,0x40,0x1b, +0xa, 0x30,0x6d,0x11,0x7e,0x1f,0x33,0xfc,0x1b,0x1a,0x10,0x22,0xca,0x3b,0xf5,0x24, +0x7f,0x41,0x7f,0x30,0xe5,0x25,0x7e,0x8, 0x0, 0x26,0x12,0x1, 0x20,0x6c,0xaa,0x80, +0x36,0xa, 0x3a,0x2d,0x39,0x7d,0x28,0x7e,0x1b,0xb0,0xbe,0xb1,0x27,0x40,0xd, 0x74, +0x1c,0xa, 0x4a,0x7f,0x3, 0x2d,0x14,0x7a,0xb, 0xb0,0x80,0x19,0x7e,0x1b,0xb0,0xa, +0x3b,0x2e,0x35,0x2a,0x7a,0x71,0x82,0x7a,0x61,0x83,0xe4,0x93,0xa, 0x4a,0x7f,0x13, +0x2d,0x34,0x7a,0x1b,0xb0,0xb, 0xa0,0xe5,0x24,0xbc,0xba,0x38,0xc4,0xda,0x3b,0x22, +0x5, 0x63,0x31,0x20,0x18,0x13,0xf, 0xd, 0xc, 0xa, 0x9, 0x8, 0x7, 0x6, 0x5, 0x4, +0xca,0xf8,0x7d,0xe2,0x7d,0xd3,0x7c,0xfb,0xbe,0x30,0x1, 0x28,0x6, 0x7e,0xf4,0x0, +0x10,0x80,0xf, 0xbe,0x30,0x0, 0x28,0x6, 0x7e,0xf4,0x0, 0x8, 0x80,0x4, 0x7e,0xf4, +0x0, 0x4, 0x7d,0x1f,0x6d,0x0, 0x6d,0x33,0x7e,0x24,0x0, 0x10,0x12,0x15,0xc8,0x7f, +0x1, 0x7d,0x3d,0x6d,0x22,0x12,0x15,0x5b,0x7d,0x1e,0x12,0x15,0x75,0x74,0x4, 0xac, +0xbf,0x7e,0xf, 0x33,0xe7,0x2d,0x15,0x79,0x30,0x0, 0x82,0x79,0x20,0x0, 0x80,0xda, +0xf8,0x22,0xca,0x7b,0xca,0x6b,0xca,0x5b,0xca,0x4b,0xca,0x2b,0xca,0x1b,0xca,0xb, +0xc0,0xd0,0xc0,0x83,0xc0,0x82,0xd2,0x18,0x7e,0xf, 0x38,0xf3,0xb, 0xa, 0x30,0x7c, +0x57,0x7a,0x53,0x38,0xee,0x4e,0x70,0xc, 0x1b,0xa, 0x30,0xc2,0xc6,0x6d,0x33,0x7e, +0xf, 0x38,0xf3,0x79,0x30,0x0, 0xe, 0x12,0x12,0x9e,0x12,0x66,0xc9,0xd0,0x82,0xd0, +0x83,0xd0,0xd0,0xda,0xb, 0xda,0x1b,0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda, +0x7b,0x32,0x74,0x3, 0x12,0x13,0x56,0xa9,0xd1,0xc4,0x7e,0xf, 0x33,0xdf,0x2e,0x14, +0x0, 0x84,0xb, 0xa, 0x30,0x4e,0x70,0x20,0x1b,0xa, 0x30,0x7e,0x14,0x0, 0x1, 0x7e, +0x1f,0x33,0xdf,0x1b,0x1a,0x10,0x7e,0xf, 0x33,0xe7,0xb, 0x16,0xb, 0xa, 0x30,0x4e, +0x70,0x1, 0x1b,0xa, 0x30,0xc2,0xb, 0xe4,0x7a,0xb3,0x33,0xf7,0x7e,0x1f,0x33,0xdf, +0xb, 0x1a,0x30,0x5e,0x34,0x0, 0x1, 0x78,0xf3,0x74,0x2, 0x2, 0x13,0x56,0x7c,0x6b, +0x6c,0xaa,0x80,0x17,0x7e,0x90,0x2, 0xac,0x9a,0x7e,0x7f,0x38,0xef,0x2d,0xf4,0xb, +0x7a,0x20,0x7f,0x70,0x2d,0xf4,0x1b,0x7a,0x20,0xb, 0xa0,0xbc,0x7a,0x38,0xe5,0x6c, +0xaa,0x80,0x20,0x7e,0x50,0x2, 0xac,0x5a,0x7e,0x7f,0x38,0xef,0x2d,0xf2,0x69,0x27, +0x0, 0x38,0xa, 0xf7,0xa, 0x4a,0x2d,0x4f,0x3e,0x44,0x7f,0x70,0x2d,0xf4,0x1b,0x7a, +0x20,0xb, 0xa0,0xbc,0x6a,0x38,0xdc,0x22,0xca,0x79,0x7c,0xab,0x5e,0xa0,0x3, 0x6c, +0x77,0x7e,0x50,0x2, 0xac,0x57,0x7f,0x60,0x2d,0xd2,0x29,0x66,0x0, 0x1, 0xa, 0xf6, +0x7d,0x4f,0x7c,0x89,0x6c,0x99,0x7d,0xf4,0x7e,0x6b,0x60,0xa, 0x46,0x2d,0x4f,0x7e, +0xf0,0xf0,0xac,0xfa,0x2d,0x27,0x7e,0x7f,0x38,0xef,0x2d,0xf2,0x79,0x47,0x2, 0x54, +0xb, 0x70,0xbe,0x70,0xe, 0x40,0xca,0xda,0x79,0x22,0x29,0x50,0x0, 0xf5,0xac,0x5b, +0x7e,0xf, 0x33,0xe7,0x69,0x30,0x0, 0xc, 0xa, 0x56,0x3e,0x54,0xbe,0x24,0x2, 0x0, +0x40,0x4, 0x7e,0x24,0x1, 0xff,0xbd,0x25,0x28,0x1f,0x2e,0x14,0x0, 0xc, 0x6c,0x66, +0x1b,0xa, 0x30,0x1e,0x24,0x7c,0x45,0x6c,0x55,0x7e,0xf, 0x33,0xe7,0x2e,0x14,0x0, +0xc, 0xb, 0xa, 0x30,0x4d,0x32,0x1b,0xa, 0x30,0x22,0x7c,0x6b,0x6c,0xaa,0x7e,0x50, +0x28,0xac,0x57,0x7e,0x90,0x2, 0xac,0x9a,0x2d,0x42,0x7e,0x50,0xf0,0xac,0x56,0x2d, +0x24,0x7e,0x7f,0x38,0xef,0x2d,0xf2,0x69,0x27,0x1, 0x8c,0x6c,0x44,0xa, 0x4a,0x7f, +0x60,0x2d,0xd4,0x7e,0x6b,0xb0,0x7c,0x8b,0x6c,0x99,0x4d,0x24,0x79,0x27,0x1, 0x8c, +0xb, 0xa0,0xbe,0xa0,0xe, 0x40,0xc7,0x22,0x7c,0x6b,0x6c,0xaa,0x7e,0x50,0x28,0xac, +0x57,0x7e,0x90,0x2, 0xac,0x9a,0x2d,0x42,0x7e,0x50,0xf0,0xac,0x56,0x2d,0x24,0x7e, +0x7f,0x38,0xef,0x2d,0xf2,0x69,0x27,0x1, 0x8c,0x6c,0x55,0xa, 0x4a,0x7f,0x60,0x2d, +0xd4,0x7e,0x6b,0xb0,0xa, 0x4b,0x4d,0x24,0x79,0x27,0x1, 0x8c,0xb, 0xa0,0xbe,0xa0, +0xe, 0x40,0xc9,0x22,0xa9,0xd6,0xcb,0x54,0x3f,0x5e,0x70,0x1f,0x7c,0x2b,0x6c,0x33, +0x3e,0x14,0x3e,0x14,0x2e,0x14,0x0, 0x5, 0xa, 0x37,0x3e,0x34,0x3e,0x34,0x3e,0x34, +0x3e,0x34,0x3e,0x34,0x2d,0x31,0x7e,0xf, 0x33,0xfc,0x79,0x30,0x0, 0x2, 0x7e,0xf, +0x33,0xfc,0x79,0x20,0x0, 0x14,0xa9,0xc6,0xcb,0x22,0x7d,0x23,0x6c,0x66,0x7e,0x30, +0x2, 0xac,0x36,0x2e,0x14,0x16,0xff,0x7a,0x31,0x82,0x7a,0x21,0x83,0xe4,0x93,0xa, +0x1b,0xbd,0x12,0x28,0x7, 0xb, 0x60,0xbe,0x60,0x14,0x40,0xe2,0x7e,0x70,0x2, 0xac, +0x67,0x2e,0x34,0x17,0x0, 0x7a,0x71,0x82,0x7a,0x61,0x83,0xe4,0x93,0x22,0x7e,0xf, +0x33,0xdf,0x2e,0x14,0x0, 0x84,0xb, 0xa, 0x30,0x5e,0x70,0xdf,0x1b,0xa, 0x30,0x74, +0x3, 0x12,0x13,0x56,0x7e,0x14,0x0, 0x3, 0x7e,0x1f,0x33,0xdf,0x1b,0x1a,0x10,0x7e, +0x1f,0x33,0xdf,0xb, 0x1a,0x30,0x5e,0x34,0x0, 0x1, 0x78,0xf3,0xe4,0x2, 0x13,0x56, +0x2e,0x34,0x4, 0x0, 0x7e,0xf, 0x33,0xe7,0x79,0x30,0x0, 0x60,0x7e,0x34,0x4, 0x0, +0x9d,0x32,0x7e,0xf, 0x33,0xe7,0x79,0x30,0x0, 0x62,0x7e,0x34,0x0, 0x1, 0x7e,0xf, +0x33,0xe7,0x79,0x30,0x0, 0x64,0xa, 0x3b,0x7e,0xf, 0x33,0xe7,0x79,0x30,0x0, 0x66, +0x22,0x7c,0xa5,0xbe,0x34,0x0, 0x0, 0x28,0x10,0xa, 0x1b,0x3e,0x14,0x7d,0x23,0x7c, +0x45,0x6c,0x55,0x2d,0x21,0xa, 0x3a,0x80,0x8, 0xa, 0x2b,0x3e,0x24,0x7c,0x67,0x6c, +0x77,0x2d,0x32,0x7e,0xf, 0x38,0xf3,0x79,0x30,0x0, 0x4, 0x22,0x7c,0xa7,0x7e,0x1f, +0x33,0xdf,0x69,0x41,0x0, 0x8a,0x5e,0x44,0x10,0xf, 0xa, 0x1a,0x3e,0x14,0x3e,0x14, +0x3e,0x14,0x3e,0x14,0xa, 0x5b,0xc4,0x23,0x54,0xe0,0x7c,0xab,0xe4,0x2d,0x51,0x4d, +0x45,0x79,0x41,0x0, 0x8a,0x22,0x7e,0xf, 0x33,0xdf,0x69,0x30,0x0, 0x84,0x5e,0x70, +0xe7,0x1b,0xb1,0x68,0xc, 0x14,0x68,0xc, 0xb, 0xb1,0x78,0x5, 0x4e,0x70,0x10,0x80, +0x3, 0x4e,0x70,0x8, 0x79,0x30,0x0, 0x84,0x22,0x7e,0x34,0x0, 0x1f,0x7e,0xf, 0x33, +0xe7,0x79,0x30,0x0, 0x4, 0xa9,0xd2,0xcd,0x7e,0xf, 0x33,0xe7,0xb, 0xa, 0x30,0x4e, +0x70,0x1, 0x1b,0xa, 0x30,0x22,0xbe,0xb0,0x0, 0x28,0xa, 0xa9,0xd7,0xca,0xa9,0xd3, +0xcb,0xa9,0xd2,0xcb,0x22,0xa9,0xc7,0xca,0xa9,0xc3,0xcb,0xa9,0xc2,0xcb,0x22,0x30, +0x4, 0xa, 0x54,0x3, 0xa, 0x3b,0x2e,0x34,0x2, 0x0, 0x80,0x2, 0x6d,0x33,0x7e,0xf, +0x33,0xe7,0x79,0x30,0x0, 0x3a,0x22,0x7e,0xf, 0x33,0xdf,0x69,0x30,0x0, 0x8a,0x60, +0x5, 0x4e,0x60,0x10,0x80,0x3, 0x5e,0x60,0xef,0x79,0x30,0x0, 0x8a,0x22,0xbe,0xb0, +0x0, 0x28,0x9, 0xa9,0xd6,0xca,0xd2,0xcd,0xa9,0xd1,0xcb,0x22,0xa9,0xc6,0xca,0xc2, +0xcd,0xa9,0xc1,0xcb,0x22,0x7e,0x34,0x0, 0xf, 0x7e,0xf, 0x33,0xe7,0x79,0x30,0x0, +0x4, 0xc2,0xc3,0xd2,0xeb,0x22,0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, +0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0x10,0x11,0x12,0x13,0x14,0x1c,0x1d,0x1e,0x1f,0x20, +0x21,0x22,0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0x10,0x11, +0x12,0x13,0x14,0x15,0x16,0x17,0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0xe, +0xf, 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x0, 0x1, 0x2, 0x3, 0x4, 0x1c,0x1d,0x1e, +0x1f,0x20,0x0, 0x1, 0x2, 0x3, 0xe, 0xf, 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, +0x18,0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0x10,0x11, +0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x6, 0x5, 0x4, 0x3, 0x2, 0x1, +0x0, 0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x0, 0x0, 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, +0x7, 0x8, 0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, +0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0x10,0x11,0x12,0x13,0x14,0x15,0x16, +0x17,0x18,0x19,0x1a,0x1b,0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, +0xb, 0xc, 0xd, 0xe, 0xf, 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a, +0x1b,0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,0x0, 0x1, 0x1, 0x1, 0x10,0x1c,0x2, 0x10, +0x1c,0x0, 0x1, 0x1, 0x4, 0xf, 0x1c,0x0, 0x1, 0x1, 0x6, 0x1b,0xf, 0x7, 0xe, 0x1c, +0x8, 0x23,0x15,0x0, 0x1, 0x1, 0xa, 0x10,0x19,0xb, 0x14,0x1c,0xc, 0xf, 0x18,0x0, +0x1, 0x1, 0xe, 0x23,0x15,0xf, 0xd, 0x19,0x0, 0x1, 0x1, 0x11,0xd, 0x14,0x12,0x10, +0x19,0x13,0x1c,0x10,0x14,0x1a,0x10,0x15,0x10,0x19,0x16,0x23,0x1c,0x72,0x23,0x15, +0x73,0x23,0x1c,0x74,0x23,0x1c,0x75,0xe, 0x1c,0xc2,0xd5,0x7c,0xb4,0x30,0xe7,0x8, +0xb2,0xd5,0x6e,0x24,0xff,0xff,0xb, 0x24,0x7c,0xb6,0x30,0xe7,0x12,0xb2,0xd5,0x6e, +0x34,0xff,0xff,0xb, 0x34,0x8d,0x32,0x6e,0x24,0xff,0xff,0xb, 0x24,0x80,0x2, 0x8d, +0x32,0x30,0xd5,0x6, 0x6e,0x34,0xff,0xff,0xb, 0x34,0x22,0x7d,0x51,0xad,0x3, 0x7d, +0x2, 0x7d,0x21,0xad,0x5, 0x2d,0x12,0xad,0x35,0x2d,0x21,0x22,0x7d,0x2, 0xad,0x31, +0xad,0x10,0x2d,0x21,0x22,0x6d,0x0, 0x74,0x10,0x4d,0x0, 0x78,0xb, 0x4d,0x22,0x78, +0x27,0x8d,0x31,0x7d,0x12,0x6d,0x22,0x22,0x7d,0x43,0x7d,0x32,0x6d,0x22,0x2f,0x11, +0x2d,0x44,0x50,0x2, 0xa5,0xf, 0xbf,0x10,0x40,0x4, 0x9f,0x10,0xb, 0x90,0x14,0x78, +0xed,0x7f,0x1, 0x6d,0x22,0x7d,0x34,0x22,0x7d,0x41,0x7d,0x13,0x8d,0x24,0x7d,0x2, +0x2f,0x0, 0x40,0x4, 0xbd,0x4, 0x40,0x4, 0x9d,0x4, 0xb, 0x14,0x14,0x78,0xf1,0x7d, +0x23,0x7d,0x31,0x7d,0x10,0x6d,0x0, 0x22,0xc2,0xd5,0x7c,0xb0,0x30,0xe7,0x8, 0xb2, +0xd5,0x9f,0x22,0x9f,0x20,0x7f,0x2, 0x7c,0xb4,0x30,0xe7,0x13,0xb2,0xd5,0x9f,0x22, +0x9f,0x21,0x7f,0x12,0x12,0x15,0x77,0x9f,0x22,0x9f,0x20,0x7f,0x2, 0x80,0x3, 0x12, +0x15,0x77,0x30,0xd5,0x6, 0x9f,0x22,0x9f,0x21,0x7f,0x12,0x22,0x6c,0xaa,0x4d,0x11, +0x68,0x1a,0x1e,0x54,0x68,0xe, 0xb, 0x38,0x20,0x1b,0x18,0x20,0xb, 0x35,0xb, 0x15, +0x1b,0x54,0x78,0xf2,0x50,0x6, 0x7e,0x39,0x40,0x7a,0x19,0x40,0x22,0x6c,0xaa,0x4d, +0x11,0x68,0x1e,0x1e,0x54,0x50,0xc, 0x7e,0x1b,0x0, 0x7a,0x19,0x0, 0x68,0x12,0xb, +0x1c,0xb, 0x14,0xb, 0x1a,0x0, 0x1b,0x18,0x0, 0xb, 0x1d,0xb, 0x15,0x1b,0x54,0x78, +0xf2,0x22,0x75,0x84,0x1, 0x7e,0x44,0x3f,0xff,0xe4,0x7a,0x49,0xb0,0x1b,0x44,0x78, +0xf9,0x7e,0xf8,0x39,0xc, 0x75,0xc, 0x0, 0x75,0xd, 0x0, 0x75,0xe, 0x2, 0x75,0xf, +0x0, 0xc2,0x6, 0xc2,0x7, 0x75,0x1b,0x0, 0xc2,0xc, 0xc2,0xd, 0xc2,0xf, 0x75,0x1c, +0x0, 0x75,0x1d,0x0, 0xc2,0x8, 0xc2,0x9, 0x75,0x1e,0x0, 0xc2,0x11,0x75,0x1f,0x0, +0xc2,0x13,0x75,0x5e,0x0, 0xc2,0x14,0x75,0x5f,0x64,0xc2,0x15,0xc2,0x16,0xc2,0x17, +0x75,0x60,0x0, 0xd2,0x0, 0xd2,0x1, 0xd2,0x2, 0xd2,0x18,0xc2,0xa, 0xd2,0xb, 0x7e, +0x4, 0x0, 0xff,0x7e,0x14,0x17,0x90,0xb, 0xa, 0x40,0x5d,0x44,0x68,0x1a,0x69,0x20, +0x0, 0x2, 0xb, 0xe, 0xb, 0x44,0x80,0xa, 0x7e,0xb, 0xb0,0x7a,0x29,0xb0,0xb, 0x24, +0xb, 0xc, 0x1b,0x44,0x78,0xf2,0x80,0xdf,0x2, 0x1f,0xfb,0x0, 0x0, 0x0, 0x47,0x0, +0xcb,0x1, 0x0, 0x0, 0x10,0xfd,0xc7,0xfb,0x7e,0xfb,0xfb,0x1, 0xbb,0xc, 0x9e,0x19, +0x0, 0x21,0x45,0x0, 0xe, 0x1, 0xf, 0x2, 0x10,0x3, 0x11,0x4, 0x12,0x5, 0x13,0x6, +0x14,0x7, 0x15,0x8, 0x16,0x9, 0x17,0xa, 0x18,0xb, 0x19,0xc, 0x1a,0xd, 0x1b,0xdf, +0x22,0xc3,0x21,0xa9,0x20,0x94,0x1f,0x81,0x1e,0x70,0x1d,0x62,0x1c,0x55,0x1b,0x4a, +0x1a,0x41,0x19,0x38,0x18,0x31,0x17,0x2b,0x16,0x25,0x15,0x21,0x14,0x1c,0x13,0x19, +0x12,0x16,0x11,0x13,0x10,0x11,0xf, 0x10,0xe, 0xca,0xf8,0x7f,0x20,0x80,0xa, 0x7e, +0x1b,0xf0,0x7a,0x2b,0xf0,0xb, 0x34,0xb, 0x54,0x69,0xff,0xff,0xfc,0x7d,0xef,0x1b, +0xe4,0x79,0xef,0xff,0xfc,0x4d,0xff,0x78,0xe6,0x7f,0x10,0xda,0xf8,0x22,0x7d,0x43, +0x7f,0x10,0x80,0x7, 0x1b,0x44,0x7a,0xb, 0xb0,0xb, 0x14,0x4d,0x44,0x78,0xf5,0x22, +0x32,0x1, 0x19,0x1, 0x0, 0x2, 0xf8,0x4, 0xe7,0x5, 0xce,0x6, 0xc2,0x7, 0xb5,0x8, +0xff,0x0, 0x1, 0x2, 0x0, 0xff,0x1, 0x2, 0x0, 0x1, 0xff,0x2, 0x0, 0x1, 0x2, 0xff, +0x7d,0x23,0xbe,0x24,0x0, 0x0, 0x48,0x3, 0x7d,0x32,0x22,0x6d,0x33,0x9d,0x32,0x22, +0x0, 0x4, 0x31,0xef,0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x3, 0xff,0x1, 0x0, 0x1, 0x25, +0xf6,0x1, 0x0, 0x1, 0x37,0xa9,0x0, 0x0, 0x2, 0x37,0xfb,0x0, 0x0, 0x0, 0x2, 0x37, +0xfd,0x0, 0x0, 0x0, 0x1, 0x37,0xff,0x0, 0x0, 0x1, 0x36,0xdd,0xff,0x0, 0x1, 0x34, +0x4f,0x0, 0x0, 0x1, 0x39,0xa, 0x0, 0x0, 0x2, 0x34,0x9e,0x0, 0x0, 0x0, 0x1, 0x34, +0xc1,0x0, 0x0, 0x1, 0x35,0x3a,0x0, 0x0, 0x1, 0x35,0x3b,0x0, 0x0, 0x1, 0x35,0x3c, +0x0, 0x0, 0x3c,0x35,0xe5,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x1, 0x36,0x5d,0x0, 0x0, 0x1, 0x36,0x5e,0x0, 0x0, 0x1, 0x36,0x5f,0x0, +0x0, 0x1, 0x35,0xde,0x1, 0x0, 0x2, 0x35,0xe1,0x0, 0x0, 0x0, 0x1, 0x2f,0xc8,0x0, +0x0, 0x1, 0x2f,0xc9,0x0, 0x0, 0x1, 0x2f,0xca,0x0, 0x0, 0x1, 0x2f,0xcb,0x0, 0x0, +0x1, 0x36,0x62,0x1, 0x0, 0x1, 0x36,0xdc,0x0, 0x0, 0x1, 0x39,0xb, 0x0, 0x0, 0x6, +0x38,0xf7,0x30,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x39,0x3, 0x0, 0x0, 0x1, 0x39, +0x4, 0x0, 0x0, 0x1, 0x39,0x5, 0x0, 0x0, 0x1, 0x39,0x6, 0x0, 0x0, 0x1, 0x39,0x7, +0x0, 0x0, 0x1, 0x0, 0x61,0x0, 0x0, 0x1, 0x3, 0xfe,0x0, 0x0, 0x4, 0x37,0x4e,0x0, +0x0, 0x0, 0x0, 0x0, 0x1, 0x38,0xfd,0x0, 0x0, 0x1, 0x38,0xfe,0x0, 0x0, 0x2, 0x38, +0xff,0x0, 0x0, 0x0, 0x1, 0x39,0x1, 0x64,0x0, 0x1, 0x39,0x2, 0x0, 0x0, 0x1, 0x39, +0xc, 0x0, 0x0, 0x1, 0x39,0x8, 0x0, 0x0, 0x1, 0x39,0x9, 0x0, 0x0, 0x1, 0x38,0xd9, +0x0, 0x0, 0x2, 0x2b,0xd8,0x2b,0xde,0x0, 0x1, 0x2f,0x9e,0x2, 0x0, 0x1, 0x2f,0xc7, +0x0, 0x0, 0x4, 0x38,0xef,0x0, 0x0, 0x50,0x0, 0x0, 0x4, 0x38,0xf3,0x0, 0x0, 0x64, +0x0, 0x0, 0x4, 0x33,0xdf,0x0, 0x0, 0x6c,0x0, 0x0, 0x4, 0x33,0xe3,0x0, 0x0, 0x68, +0xc0,0x0, 0x4, 0x33,0xe7,0x0, 0x0, 0x68,0x0, 0x0, 0x4, 0x33,0xf8,0x0, 0x0, 0x40, +0x0, 0x0, 0x4, 0x33,0xfc,0x0, 0x0, 0x60,0x0, 0x0, 0x0, 0x3, 0x20,0x0, 0xc, 0x1, +0xf4,0x2, 0x58,0x0, 0xc, 0x1, 0x5e,0x1, 0xc2,0x0, 0xa, 0x0, 0xc8,0x1, 0x40,0x0, +0x5, 0x0, 0x78,0x0, 0xc8,0x0, 0x4, 0x0, 0x3c,0x0, 0x78,0x0, 0x3, 0x0, 0xa, 0x0, +0x3c,0x0, 0x2, 0x0, 0x0, 0x0, 0xe, 0x1c,0x23,0x5, 0xdc,0x0, 0x32,0x3, 0xe8,0x0, +0x28,0x0, 0x0, 0x0, 0x1e,0x12,0x37,0x6e,0x12,0x19,0xc5,0x12,0x19,0x90,0x12,0x1a, +0x6a,0x2, 0x19,0x54,0x12,0x19,0x65,0x7e,0xb3,0x2b,0x2e,0x12,0x97,0xf7,0x74,0x1, +0x7a,0xb3,0x36,0x66,0x22,0x12,0x98,0x95,0x74,0x1, 0x7a,0xb3,0x36,0x62,0x22,0x12, +0x19,0xfc,0x12,0x4a,0x17,0x12,0x20,0x1d,0x12,0x37,0x6e,0x12,0x19,0xfc,0x12,0x19, +0xc5,0x12,0xa8,0xc5,0x12,0x19,0x90,0x12,0x1a,0x6a,0x12,0x1a,0x9a,0x2, 0x19,0x54, +0x12,0x20,0x66,0x12,0x19,0xe2,0x2, 0x19,0x99,0x7e,0x34,0x0, 0x3, 0x6d,0x22,0x2, +0x19,0xa2,0x7d,0x43,0x7e,0xa3,0x34,0x38,0xbe,0xa0,0x5, 0x50,0x16,0x7e,0x70,0x4, +0xac,0x7a,0x59,0x43,0x34,0x3b,0x59,0x23,0x34,0x3d,0x7c,0xba,0x4, 0x7a,0xb3,0x34, +0x38,0xc3,0x22,0xd3,0x22,0x12,0x63,0x86,0x12,0x5d,0xb3,0x2, 0x19,0xce,0x30,0xf, +0x10,0x12,0x5d,0xed,0x50,0x3, 0x12,0x4e,0x83,0x12,0x5a,0xf8,0x12,0x7c,0x51,0xc2, +0xf, 0x22,0x6d,0x33,0x7e,0x24,0x6, 0xfc,0x12,0x19,0xa2,0x7e,0x34,0x0, 0x1, 0x7e, +0x24,0x7, 0x7a,0x2, 0x19,0xa2,0x74,0x1, 0x7a,0xb3,0x37,0xae,0x7e,0x34,0xd, 0xac, +0x6d,0x22,0x7a,0x27,0x38,0xc8,0x7a,0x37,0x38,0xca,0x22,0xca,0xf8,0x7e,0xf3,0x37, +0xae,0xbe,0xf0,0x5, 0x78,0xb, 0x74,0x1, 0x7a,0xb3,0x37,0xae,0x12,0x0, 0x9, 0x80, +0x40,0xbe,0xf0,0x4, 0x78,0xd, 0x12,0x19,0xf6,0xe4,0x7a,0xb3,0x2b,0x21,0x12,0x63, +0x86,0x80,0x2e,0xbe,0xf0,0x6, 0x78,0x13,0x12,0x19,0xf6,0x12,0x41,0xb, 0xe4,0x7a, +0xb3,0x2b,0x3d,0x12,0x5d,0xb3,0x12,0xa9,0x52,0x80,0x16,0xbe,0xf0,0x7, 0x78,0x17, +0x12,0x19,0xf6,0x12,0x5f,0xe9,0x50,0xfb,0x12,0x5d,0xd9,0x12,0x19,0xce,0x12,0x1a, +0x6a,0x74,0x2, 0x7a,0xb3,0x37,0xae,0xda,0xf8,0x22,0xe4,0x7a,0xb3,0x34,0x3a,0x7a, +0xb3,0x34,0x39,0x12,0x45,0x31,0xb4,0x1, 0x4, 0x74,0x1, 0x80,0x2, 0x74,0x3, 0x7a, +0xb3,0x34,0x3a,0x22,0x12,0xa8,0xc5,0x12,0xa9,0xb, 0x7a,0x37,0x38,0xff,0x12,0x19, +0xfc,0x12,0x19,0xc5,0x12,0x1a,0x6a,0x2, 0x1a,0x9a,0x12,0x8a,0x65,0x50,0x4, 0x74, +0x19,0x80,0x2, 0x74,0x3, 0x7a,0xb3,0x34,0x88,0xe4,0x7a,0xb3,0x34,0x89,0x22,0xca, +0x3b,0x12,0x5f,0xe9,0x50,0xfb,0x7e,0xf3,0x2b,0x2e,0x7c,0xbf,0x12,0x7c,0xd0,0x12, +0x7f,0x4d,0x7e,0xb3,0x2b,0x3e,0xf5,0x28,0x7e,0xc3,0x2b,0x3f,0x7e,0xb3,0x37,0x5, +0xb4,0x1, 0xf, 0x12,0x4e,0x49,0x7e,0xb3,0x16,0x91,0x70,0x6, 0x12,0x1a,0x6a,0xc3, +0x61,0xab,0x12,0x1b,0xae,0x3e,0x34,0xca,0x39,0x7e,0x18,0x6, 0xfc,0x7e,0x8, 0x4, +0x7e,0x12,0x17,0x29,0x1b,0xfd,0x12,0x1b,0xae,0x3e,0x34,0xca,0x39,0x7e,0x18,0x7, +0x7a,0x7e,0x8, 0x4, 0x0, 0x12,0x17,0x29,0x1b,0xfd,0x7e,0xb3,0x37,0x5, 0xb4,0x3, +0x7, 0x12,0x92,0x7a,0x7a,0x37,0x37,0xf1,0x74,0x1, 0x7a,0xb3,0x16,0x90,0x12,0x19, +0xc5,0x12,0x92,0x6b,0x12,0x4d,0x5a,0xe4,0x12,0x13,0xde,0x12,0x1a,0x6a,0x7e,0x8, +0x4, 0x7e,0x7a,0xd, 0x29,0x7e,0x18,0x6, 0x76,0x7e,0xb3,0x2b,0x91,0x12,0x63,0xce, +0x7e,0x8, 0x4, 0x0, 0x7a,0xd, 0x29,0x7e,0x18,0x5, 0xf8,0x7e,0xb3,0x25,0xf0,0x12, +0x63,0xce,0x7e,0xd3,0x2b,0x3e,0x7e,0xe3,0x2b,0x3f,0xe5,0x28,0x7a,0xb3,0x2b,0x3e, +0x7a,0xc3,0x2b,0x3f,0x7e,0x34,0x8, 0xa, 0x7e,0x4, 0xd, 0xc8,0x7d,0x20,0x7d,0x10, +0x12,0x5b,0x7c,0x7a,0xd3,0x2b,0x3e,0x7a,0xe3,0x2b,0x3f,0x7c,0xbf,0x12,0x7b,0xd5, +0x12,0x91,0x80,0x7e,0xb3,0x39,0x2, 0x4, 0x7a,0xb3,0x39,0x2, 0x7e,0x73,0x39,0x2, +0xbe,0x70,0xfa,0x28,0x6, 0x74,0x64,0x7a,0xb3,0x39,0x2, 0x7e,0xb3,0x16,0x90,0x60, +0x9, 0x7e,0xb3,0x16,0x91,0x60,0x3, 0xd3,0x80,0x1, 0xc3,0xda,0x3b,0x22,0x7e,0x73, +0x2a,0x93,0xa, 0x27,0x7e,0x73,0x2a,0x92,0xa, 0x37,0x2d,0x32,0x22,0x12,0x40,0x7, +0x7e,0xb3,0x37,0x5, 0xb4,0x3, 0x6c,0x12,0x9f,0x30,0x12,0x1f,0xed,0x12,0x38,0xd, +0x7e,0xb3,0x37,0xaa,0x30,0xe7,0xe9,0x12,0x1a,0xaf,0x12,0x1b,0xae,0x3e,0x34,0xca, +0x39,0x7e,0x18,0x4, 0x0, 0x7e,0x8, 0x4, 0xfc,0x12,0x17,0x29,0x1b,0xfd,0x12,0x1b, +0xae,0x3e,0x34,0xca,0x39,0x7e,0x18,0x4, 0x7e,0x7e,0x8, 0x5, 0x7a,0x12,0x17,0x29, +0x1b,0xfd,0x7e,0xb3,0x2b,0x3c,0xb4,0x1, 0x18,0x12,0x2e,0xde,0x12,0x54,0xb7,0x12, +0x57,0x4, 0x12,0x90,0x60,0x12,0x5e,0x84,0x12,0x87,0xc0,0x12,0x1c,0x44,0x12,0x48, +0xcf,0x12,0x40,0x40,0x12,0x9d,0x34,0x7e,0xb3,0x37,0xaa,0x54,0x7f,0x7a,0xb3,0x37, +0xaa,0x80,0x8d,0x12,0x5f,0xf4,0x2, 0x1c,0x39,0x7e,0xb3,0x37,0x4c,0x70,0x4, 0xe4, +0x12,0x76,0x96,0x22,0x12,0x73,0x21,0x12,0x1e,0x38,0x12,0x1e,0x38,0x12,0x8a,0x8b, +0x12,0x71,0x8b,0x12,0x2a,0x57,0x12,0x1e,0x38,0x12,0x24,0xbb,0x12,0x1e,0x38,0x12, +0x77,0x1a,0x12,0x1e,0x38,0x2, 0x1c,0x68,0xca,0x3b,0x75,0x24,0x0, 0x6c,0xcc,0x6c, +0xdd,0x7e,0xc4,0x0, 0x3c,0xca,0xc9,0x7e,0x18,0x36,0x21,0x7e,0x8, 0x35,0xe5,0x12, +0x17,0x29,0x1b,0xfd,0x7e,0xf3,0x28,0x84,0xa, 0xcf,0x3e,0xc4,0xca,0xc9,0x7e,0x18, +0x26,0xfa,0x7e,0x8, 0x1f,0x34,0x12,0x17,0x29,0x1b,0xfd,0x6c,0x88,0x6c,0xee,0xa1, +0x3c,0x7e,0xc4,0x3, 0xff,0x7e,0xc0,0xff,0x6c,0x99,0x80,0x4c,0x74,0x2, 0xac,0xb9, +0x9, 0xb5,0x1f,0x34,0xbe,0xb0,0xff,0x68,0x3d,0x7c,0xb9,0x12,0x1f,0xd4,0x60,0x36, +0x74,0x2, 0xac,0xb9,0x9, 0x75,0x1f,0x35,0xa, 0x27,0x74,0x2, 0xac,0xbe,0x9, 0x75, +0x36,0x22,0x12,0x1f,0xf4,0x7d,0x13,0x74,0x2, 0xac,0xb9,0x9, 0x75,0x1f,0x34,0xa, +0x27,0x74,0x2, 0xac,0xbe,0x9, 0x75,0x36,0x21,0x12,0x1f,0xf4,0x2d,0x13,0xbd,0xc1, +0x28,0x4, 0x7d,0xc1,0x7c,0xc9,0xb, 0x90,0xbc,0xf9,0x38,0xb0,0xbe,0xc0,0xff,0x68, +0x39,0x7e,0x70,0x2, 0xac,0x7c,0x9, 0xb3,0x1f,0x34,0x9, 0x73,0x1f,0x35,0x12,0x1e, +0x80,0xbe,0x37,0x2a,0x79,0x48,0x23,0x7e,0x70,0x2, 0xac,0x7c,0x9, 0x53,0x1f,0x34, +0x74,0x2, 0xac,0xbd,0x19,0x55,0x1f,0x70,0x9, 0x53,0x1f,0x35,0x19,0x55,0x1f,0x71, +0x74,0xff,0x19,0xb3,0x1f,0x34,0xb, 0x80,0xb, 0xd0,0xb, 0xe0,0x7e,0x73,0x35,0xe4, +0xbc,0x7e,0x28,0x2, 0x81,0xa1,0x7c,0xe8,0x80,0x6d,0x6d,0xdd,0x7e,0x80,0xff,0x6c, +0x99,0x80,0x3c,0x7c,0xb9,0x12,0x1f,0xd4,0x60,0x33,0x12,0xa9,0x23,0xbe,0xb0,0xff, +0x68,0x2b,0x9, 0x73,0x1f,0x35,0x12,0x2e,0xc8,0x7f,0x71,0xb, 0x7a,0x50,0xbe,0x54, +0x0, 0x0, 0x58,0x5, 0x6d,0x55,0x1b,0x7a,0x50,0xb, 0x7a,0xc0,0xbd,0xcd,0x8, 0xd, +0x12,0xa9,0x23,0xf5,0x24,0x9, 0xc3,0x1f,0x35,0x7d,0xdc,0x7c,0x89,0xb, 0x90,0xbc, +0xf9,0x38,0xc0,0xbe,0x80,0xff,0x68,0x1d,0x7e,0x71,0x24,0x74,0x2, 0xac,0xbd,0x19, +0x75,0x1f,0x70,0x19,0xc5,0x1f,0x71,0x7e,0xa0,0xff,0x7e,0x70,0x2, 0xac,0x78,0x19, +0xa3,0x1f,0x34,0xb, 0xd0,0xb, 0xe0,0xbe,0xe0,0xa, 0x40,0x8e,0x90,0x60,0x9a,0xe4, +0x93,0x7c,0xab,0x74,0x2, 0xa4,0xca,0x59,0x7e,0x18,0x1f,0x70,0x7e,0x8, 0x1f,0x34, +0x12,0x17,0x29,0x1b,0xfd,0x7c,0xfd,0x7e,0x8, 0x36,0x21,0x7e,0x34,0x0, 0x14,0x74, +0xff,0x12,0x17,0x4e,0xbe,0xf0,0x0, 0x28,0x35,0xa, 0x3f,0x3e,0x34,0xca,0x39,0x7e, +0x18,0x1f,0x34,0x7e,0x8, 0x26,0xfa,0x12,0x17,0x29,0x1b,0xfd,0xa, 0x3f,0x3e,0x34, +0xca,0x39,0x7e,0x18,0x1f,0x34,0x7e,0x8, 0x36,0x21,0x12,0x17,0x29,0x1b,0xfd,0x6c, +0xee,0x80,0x7, 0x7c,0xbe,0x12,0x2f,0x49,0xb, 0xe0,0xbc,0xfe,0x38,0xf5,0x7a,0xf3, +0x35,0xe4,0x7a,0xf3,0x28,0x84,0x7e,0x73,0x28,0x84,0xbe,0x70,0xa, 0x28,0x6, 0x74, +0xa, 0x7a,0xb3,0x28,0x84,0xda,0x3b,0x22,0xca,0x79,0x6c,0xff,0x6c,0xee,0x80,0x31, +0x7c,0xbe,0x12,0x1f,0xd4,0x60,0x28,0x7e,0x34,0x0, 0x2, 0xca,0x39,0xac,0x7e,0x2e, +0x34,0x26,0xfa,0x6d,0x22,0x7e,0x30,0x2, 0xac,0x3f,0x2e,0x14,0x26,0xfa,0x6d,0x0, +0x12,0x17,0x29,0x1b,0xfd,0x7c,0xbf,0x7e,0x70,0x1, 0x12,0x2f,0x4c,0xb, 0xf0,0xb, +0xe0,0x12,0x77,0xc0,0x38,0xca,0x7a,0xf3,0x28,0x84,0xda,0x79,0x22,0x7e,0x71,0x24, +0x12,0x2e,0xc8,0xb, 0x1a,0x30,0x22,0xca,0x3b,0x6d,0xee,0x7e,0xc3,0x2a,0x8d,0x7e, +0xd3,0x2a,0x8c,0x7e,0xb3,0x37,0x2e,0xb4,0x1, 0x3, 0xe4,0xe1,0xb8,0x7e,0xb3,0x28, +0x84,0x70,0x2, 0xe1,0x24,0x7e,0xb3,0x2a,0x21,0x60,0x2, 0x80,0x77,0x7e,0xa3,0x26, +0xfa,0x7e,0x73,0x26,0xfb,0x7a,0x71,0x24,0x6c,0xee,0x6d,0xff,0x6c,0xff,0xa, 0x47, +0x80,0x1c,0x12,0x1f,0xc8,0x8, 0x1d,0xb, 0xe0,0xbe,0xa0,0x0, 0x28,0x6, 0x7c,0xba, +0x14,0x12,0x1f,0xbe,0x12,0xa9,0x37,0x58,0x3, 0x12,0x1f,0xbb,0x1b,0x44,0xbe,0x44, +0x0, 0x0, 0x58,0xde,0xe5,0x24,0xa, 0x4b,0x80,0x1a,0x12,0x1f,0xc8,0x8, 0x21,0xb, +0xe0,0xbe,0xa0,0x0, 0x28,0x6, 0x7c,0xba,0x14,0x12,0x1f,0xbe,0x12,0xa9,0x37,0x58, +0x3, 0x12,0x1f,0xbb,0x7d,0x24,0xb, 0x24,0x7d,0x42,0xa, 0x3c,0xbd,0x23,0x48,0xda, +0xbe,0xe0,0x3, 0x50,0x2, 0x80,0xd, 0xa, 0x2f,0x7d,0x3f,0x12,0x15,0x29,0xbe,0x34, +0x0, 0x28,0x8, 0x7, 0xe4,0x7a,0xb3,0x35,0x3b,0xe1,0xb8,0x6d,0xdd,0xbe,0xa0,0x0, +0x28,0x8, 0x7c,0xba,0x14,0x12,0x1e,0x7d,0x2d,0xd3,0xa, 0x3d,0x1b,0x34,0xa, 0xca, +0xbd,0xc3,0x58,0xb, 0x7c,0xba,0x4, 0x7e,0x71,0x24,0x12,0x1e,0x80,0x2d,0xd3,0x7e, +0x70,0x8, 0x80,0x2a,0x7e,0x50,0x2, 0xac,0x57,0x7d,0xc2,0x2e,0xc4,0x17,0x60,0x7d, +0x1c,0x7a,0x31,0x82,0x7a,0x21,0x83,0xe4,0x93,0x1a,0xcb,0xbd,0xcd,0x8, 0xf, 0x7d, +0xc2,0x2e,0xc4,0x17,0x61,0x7d,0x2c,0x12,0x2f,0x8f,0x1a,0xcb,0x2d,0xec,0x7c,0x67, +0x1b,0x70,0xa5,0xbe,0x0, 0xce,0x7c,0xba,0x12,0x1e,0x7d,0x12,0x17,0x80,0xbe,0x34, +0xa, 0xf0,0x8, 0x4, 0x2e,0xe4,0x0, 0x28,0xbe,0xe4,0x0, 0xfa,0x28,0x4, 0x7e,0xe4, +0x0, 0xfa,0x7e,0xb3,0x35,0x3b,0xa, 0x3b,0xbd,0x3e,0x50,0x8, 0x7d,0x3e,0x7c,0xb7, +0x7a,0xb3,0x35,0x3b,0x7e,0xb3,0x35,0x3b,0xda,0x3b,0x22,0x7c,0xba,0x4, 0x7c,0x79, +0x12,0x1e,0x80,0x2d,0xf3,0xb, 0xf0,0x22,0x7c,0xba,0x7c,0x79,0x12,0x1e,0x80,0xbe, +0x34,0x0, 0x96,0x22,0x7c,0x7b,0x12,0x56,0xc9,0x9, 0xa2,0x27,0x72,0x7c,0xb7,0x54, +0x7, 0xa, 0x3b,0x2e,0x34,0x0, 0x5e,0x12,0x7b,0xcc,0x5c,0xba,0x22,0x7e,0x34,0x3, +0xe8,0x2, 0x1a,0x0, 0xa, 0x37,0x9d,0x32,0x2, 0x17,0x80,0x12,0x4a,0x17,0x12,0x59, +0xe8,0x12,0x20,0x1d,0x12,0x19,0x45,0x7e,0xb3,0x37,0x5, 0x24,0xfd,0x68,0x9, 0xb, +0xb1,0x78,0xf4,0x12,0x25,0xf8,0x80,0xef,0x12,0x1b,0xbd,0x80,0xea,0x12,0x58,0xfa, +0x12,0x50,0x80,0x12,0x0, 0x42,0x12,0x57,0x8a,0x7e,0x18,0x4, 0x0, 0x7a,0x1f,0x6, +0xf8,0x7e,0xf, 0x6, 0xf8,0x7e,0x1f,0x6, 0xf4,0x12,0x62,0xbc,0x7e,0x18,0x8, 0xa, +0x7a,0x1f,0x13,0x86,0x7e,0x18,0xd, 0xc8,0x7a,0x1f,0x13,0x8a,0x7e,0xf, 0x13,0x8a, +0x7e,0x1f,0x13,0x86,0x12,0x5a,0xd5,0x12,0x0, 0x46,0x12,0x25,0xb3,0x12,0x5a,0x54, +0x12,0x25,0x4b,0x2, 0x20,0x66,0xe4,0x7a,0xb3,0x34,0x38,0x7a,0xb3,0x34,0x39,0x7a, +0xb3,0x34,0x3a,0x22,0x7e,0x34,0x1, 0x18,0x7a,0x37,0x28,0x95,0x7e,0x34,0x2, 0x26, +0x7a,0x37,0x28,0x99,0x7e,0x34,0x0, 0x96,0x7a,0x37,0x28,0x97,0x7a,0x37,0x28,0x9b, +0x7e,0x34,0x0, 0x50,0x7a,0x37,0x28,0x9d,0x7e,0x34,0x0, 0x27,0x7a,0x37,0x28,0x9f, +0x12,0xa8,0xb4,0x74,0x1, 0x7a,0xb3,0x28,0xa5,0xe4,0x7a,0xb3,0x28,0xa8,0x12,0x20, +0xbb,0x3e,0x34,0x7e,0x8, 0x25,0xf7,0xe4,0x2, 0x17,0x4e,0x90,0x60,0x9a,0x93,0xa, +0x3b,0x22,0xca,0x3b,0x7c,0xfb,0x75,0x3b,0x0, 0x7e,0xb3,0x2a,0x8e,0xf5,0x40,0x7e, +0xb3,0x2a,0x8f,0xf5,0x41,0x7e,0xd3,0x28,0x84,0xe4,0x7a,0xb3,0x38,0x4e,0x7a,0xb3, +0x38,0x4c,0x7a,0xb3,0x38,0x4d,0x7e,0x8, 0x1f,0x34,0x12,0x20,0xbb,0xe4,0x12,0x17, +0x4e,0x12,0x20,0xbb,0x3e,0x34,0x7e,0x8, 0x38,0x4f,0xe4,0x12,0x17,0x4e,0xbe,0xd0, +0x2, 0x50,0x2, 0x81,0x20,0x6c,0xcc,0x81,0xf, 0x7e,0x70,0x2, 0xac,0x7c,0x9, 0xb3, +0x26,0xfa,0xf5,0x24,0x9, 0xb3,0x26,0xfb,0xf5,0x25,0x4c,0xcc,0x68,0x8, 0xa, 0x3c, +0x9, 0xb3,0x1f,0x34,0x70,0xa, 0xa, 0x3c,0xb, 0x34,0xa, 0x2c,0x19,0x72,0x1f,0x34, +0x7c,0xbd,0x14,0xbc,0xbc,0x78,0x2, 0x81,0x15,0xa, 0x5c,0xb, 0x54,0xf5,0x2e,0x81, +0x6, 0x7e,0x71,0x2e,0x74,0x2, 0xac,0x7b,0x9, 0xa3,0x26,0xfa,0x7a,0xa1,0x26,0x9, +0xb3,0x26,0xfb,0xf5,0x27,0xa, 0x2a,0xe5,0x24,0x12,0x24,0x23,0x7c,0xb7,0xf5,0x28, +0xe5,0x27,0xa, 0x2b,0xe5,0x25,0x12,0x24,0x23,0x7c,0xb7,0xf5,0x29,0xe5,0x28,0xbe, +0xb0,0x5, 0x40,0x2, 0x81,0x4, 0xe5,0x29,0xbe,0xb0,0x5, 0x40,0x2, 0x81,0x4, 0x85, +0x25,0x44,0x85,0x26,0x45,0x85,0x27,0x46,0x7e,0x8, 0x0, 0x31,0x7e,0x18,0x0, 0x33, +0xe5,0x24,0x12,0x99,0xc5,0x75,0x3b,0x0, 0x6c,0xee,0x75,0x30,0x0, 0xe5,0x24,0x7e, +0x71,0x25,0x12,0x1e,0x80,0x7a,0x35,0x35,0xe5,0x26,0x7e,0x71,0x27,0x12,0x1e,0x80, +0x7a,0x35,0x37,0x7e,0x35,0x35,0xbe,0x35,0x37,0x8, 0x7, 0x7e,0x35,0x37,0x7d,0x83, +0x80,0x3, 0x7e,0x85,0x35,0x7a,0x85,0x39,0xe, 0x84,0xe5,0x28,0xbe,0xb0,0x1, 0x38, +0x2b,0xe5,0x29,0xbe,0xb0,0x1, 0x38,0x24,0x7c,0xbf,0x30,0xe1,0x1f,0xe5,0x26,0x7e, +0x71,0x25,0x12,0x1e,0x80,0x7d,0x43,0xe5,0x24,0x7e,0x71,0x27,0x12,0x1e,0x80,0x2d, +0x34,0xbd,0x38,0x18,0x2, 0x61,0x9b,0x75,0x30,0x1, 0x61,0x9b,0xe5,0x28,0xbe,0xb0, +0x1, 0x38,0x9, 0xe5,0x29,0xbe,0xb0,0x1, 0x38,0x2, 0x61,0x9b,0xe5,0x28,0xbe,0xb0, +0x5, 0x40,0x2, 0x61,0x9b,0xe5,0x29,0xbe,0xb0,0x5, 0x40,0x2, 0x61,0x9b,0x7c,0xbf, +0x20,0xe0,0x2, 0x61,0x9b,0x6d,0x99,0x75,0x42,0x0, 0xc2,0x4, 0xc2,0x5, 0xe5,0x26, +0xbe,0xb1,0x24,0x28,0x4, 0xe5,0x24,0x80,0x2, 0xe5,0x26,0xf5,0x2a,0xe5,0x26,0xbe, +0xb1,0x24,0x50,0x4, 0xe5,0x24,0x80,0x2, 0xe5,0x26,0xf5,0x2c,0xe5,0x27,0xbe,0xb1, +0x25,0x28,0x4, 0xe5,0x25,0x80,0x2, 0xe5,0x27,0xf5,0x2b,0xe5,0x27,0xbe,0xb1,0x25, +0x50,0x4, 0xe5,0x25,0x80,0x2, 0xe5,0x27,0xf5,0x2d,0xe5,0x2c,0xbe,0xb1,0x2a,0x78, +0x29,0xd2,0x4, 0xe5,0x2a,0x60,0x8, 0xe5,0x40,0x14,0xbe,0xb1,0x2a,0x78,0x2, 0xd2, +0x5, 0xe5,0x2a,0xbe,0xb0,0x0, 0x28,0x2, 0x15,0x2a,0xe5,0x40,0xa, 0x2b,0x1b,0x24, +0xe5,0x2c,0xa, 0x3b,0xbd,0x32,0x58,0x2, 0x5, 0x2c,0xe5,0x2d,0xbe,0xb1,0x2b,0x78, +0x29,0xd2,0x4, 0xe5,0x2b,0x60,0x8, 0xe5,0x41,0x14,0xbe,0xb1,0x2b,0x78,0x2, 0xd2, +0x5, 0xe5,0x2b,0xbe,0xb0,0x0, 0x28,0x2, 0x15,0x2b,0xe5,0x41,0xa, 0x2b,0x1b,0x24, +0xe5,0x2d,0xa, 0x3b,0xbd,0x32,0x58,0x2, 0x5, 0x2d,0x85,0x2a,0x3c,0x80,0x4c,0x85, +0x2b,0x3d,0x80,0x3e,0xe5,0x3c,0x7e,0x71,0x3d,0x12,0x1e,0x80,0x7a,0x35,0x3e,0xe5, +0x2a,0xbe,0xb1,0x3c,0x68,0x15,0xe5,0x2c,0xbe,0xb1,0x3c,0x68,0xe, 0xe5,0x2b,0xbe, +0xb1,0x3d,0x68,0x7, 0xe5,0x2d,0xbe,0xb1,0x3d,0x78,0x9, 0x7e,0x35,0x3e,0x2d,0x93, +0x5, 0x42,0x80,0xc, 0x7e,0x35,0x33,0xbe,0x35,0x3e,0x58,0x2, 0x5, 0x3b,0xb, 0xe0, +0x5, 0x3d,0xe5,0x2d,0xbe,0xb1,0x3d,0x50,0xbb,0x5, 0x3c,0xe5,0x2c,0xbe,0xb1,0x3c, +0x50,0xad,0xe5,0x2c,0x12,0x24,0x33,0xe5,0x2a,0x12,0x24,0x2a,0xe5,0x2a,0x12,0x24, +0x33,0xe5,0x2c,0x12,0x24,0x2a,0x7e,0x85,0x37,0x2e,0x85,0x35,0x30,0x4, 0x9, 0x20, +0x5, 0x6, 0x9d,0x98,0x15,0x42,0x15,0x42,0xe5,0x42,0xbe,0xb0,0x4, 0x28,0x6, 0xe5, +0x42,0x24,0xfc,0xf5,0x42,0xbe,0x94,0x0, 0x0, 0x58,0x2, 0x6d,0x99,0x7d,0x18,0x1a, +0x2, 0x1a,0x0, 0x7e,0x35,0x31,0x1a,0x26,0x1a,0x24,0x12,0x15,0x5b,0xe5,0x42,0xa, +0x1b,0x6d,0x0, 0x12,0x15,0x5b,0x7f,0x21,0x12,0x91,0x79,0x7e,0x14,0x0, 0x28,0x12, +0x15,0x6c,0xbf,0x12,0x8, 0x15,0xe5,0x3b,0xa, 0x3b,0xa, 0x2e,0x9d,0x23,0x3e,0x24, +0x3e,0x24,0xa, 0x3e,0xbd,0x23,0x18,0x3, 0x75,0x30,0x2, 0xe5,0x30,0xbe,0xb0,0x0, +0x28,0x62,0xe5,0x30,0xa, 0x3b,0x2e,0x34,0x38,0x4b,0x7e,0x39,0xb0,0x4, 0x7a,0x39, +0xb0,0xe5,0x2e,0xa, 0x3b,0x9, 0xa3,0x1f,0x34,0x4c,0xaa,0x78,0xc, 0xa, 0x2c,0x9, +0xb2,0x1f,0x34,0x19,0xb3,0x1f,0x34,0x80,0x3b,0xa, 0x2c,0x9, 0xb2,0x1f,0x34,0xf5, +0x43,0xbc,0xba,0x28,0x3, 0x7a,0xa1,0x43,0x75,0x2f,0x0, 0x80,0x22,0x9, 0x33,0x1f, +0x34,0xe5,0x2f,0xa, 0x2b,0x9, 0x22,0x1f,0x34,0xbc,0x23,0x68,0xa, 0xa, 0xc, 0x9, +0x30,0x1f,0x34,0xbc,0x23,0x78,0x6, 0xe5,0x43,0x19,0xb2,0x1f,0x34,0x5, 0x2f,0xbe, +0xd1,0x2f,0x38,0xd9,0x5, 0x2e,0xbe,0xd1,0x2e,0x28,0x2, 0x21,0x41,0xb, 0xc0,0xbc, +0xdc,0x28,0x2, 0x21,0x9, 0x7e,0x8, 0x1f,0x34,0x12,0x98,0xf2,0x7a,0xb3,0x38,0x4e, +0xda,0x3b,0x22,0xa, 0x3b,0x9d,0x32,0x2, 0x17,0x80,0x7e,0x71,0x2d,0x12,0x1e,0x80, +0x9d,0x93,0x22,0x7e,0x71,0x2b,0x12,0x1e,0x80,0x9d,0x93,0x22,0x7e,0x30,0x64,0x7e, +0x20,0x64,0x6c,0x11,0x80,0x54,0xa, 0x31,0xb, 0x34,0x7c,0x7, 0x80,0x42,0x7e,0x70, +0x2, 0xac,0x70,0x9, 0xb3,0x26,0xfa,0x12,0x25,0x43,0x9, 0xb3,0x26,0xfa,0x12,0x24, +0x23,0x7c,0x97,0x7e,0x70,0x2, 0xac,0x70,0x9, 0xb3,0x26,0xfb,0x12,0x25,0x43,0x9, +0xb3,0x26,0xfb,0x12,0x24,0x23,0x7c,0x87,0xbe,0x90,0x0, 0x28,0x6, 0xbc,0x39,0x28, +0x2, 0x7c,0x39,0xbe,0x80,0x0, 0x28,0x6, 0xbc,0x28,0x28,0x2, 0x7c,0x28,0xb, 0x0, +0x7e,0xb3,0x28,0x84,0xbc,0xb0,0x38,0xb6,0xb, 0x10,0x7e,0xb3,0x28,0x84,0xbc,0xb1, +0x38,0xa4,0xa5,0xbb,0x64,0x2, 0x6c,0x33,0xa5,0xba,0x64,0x2, 0x6c,0x22,0xbc,0x23, +0x28,0x4, 0x7c,0xa2,0x80,0x2, 0x7c,0xa3,0x7c,0xba,0x22,0xca,0x79,0xc2,0x3, 0x7e, +0xf0,0x3, 0x7e,0xe3,0x2a,0x21,0x12,0xa8,0xf8,0x28,0x72,0x7c,0xbf,0x12,0x20,0xc2, +0x4c,0xee,0x68,0xe, 0x7e,0x63,0x38,0x4c,0xa5,0xbe,0x0, 0xa, 0x7e,0xb3,0x38,0x4d, +0x70,0x4, 0xd2,0x3, 0x80,0x2e,0xbe,0xe0,0x1, 0x28,0xb, 0xe5,0x5f,0xbe,0xb0,0x8, +0x28,0x4, 0xd2,0x3, 0x80,0x1e,0xd2,0x3, 0x12,0x77,0xc0,0x78,0xa, 0xa5,0xbe,0x0, +0x6, 0x6c,0xff,0xc2,0x3, 0x80,0xd, 0x9e,0x73,0x38,0x4c,0xbc,0x7e,0x78,0x5, 0x7e, +0xf0,0x2, 0xc2,0x3, 0x20,0x3, 0x5, 0x7c,0xbf,0x12,0x20,0xc2,0x7e,0xa3,0x38,0x4e, +0x7a,0xa3,0x28,0x84,0x74,0x2, 0xa4,0xca,0x59,0x7e,0x18,0x38,0x4f,0x7e,0x8, 0x26, +0xfa,0x12,0x17,0x29,0x1b,0xfd,0x12,0x24,0x3c,0xf5,0x5f,0x80,0x3, 0x75,0x5f,0x64, +0xda,0x79,0x22,0xa, 0x2b,0x7e,0x70,0x2, 0xac,0x71,0x22,0x7e,0x8, 0x28,0xae,0x7e, +0x34,0x1, 0xe, 0x74,0xff,0x12,0x17,0x4e,0x12,0x8a,0x68,0x7e,0x8, 0x29,0xbc,0x12, +0x25,0x6e,0x7e,0x8, 0x2a,0x20,0x7e,0x34,0x0, 0xb, 0xe4,0x2, 0x17,0x4e,0x6c,0xaa, +0x74,0x3, 0x12,0x7f,0x86,0x7f,0x10,0x2d,0x34,0x39,0xb1,0x0, 0xa, 0x12,0x25,0xa9, +0x7f,0x70,0x2d,0xf3,0x79,0x47,0x0, 0x14,0x2d,0x31,0x79,0x41,0x0, 0x28,0xe4,0xa, +0x4a,0x7f,0x10,0x2d,0x34,0x39,0xb1,0x0, 0x46,0x7f,0x10,0x2d,0x34,0x39,0xb1,0x0, +0x50,0xb, 0xa0,0xbe,0xa0,0xa, 0x40,0xc8,0x22,0x7e,0x44,0x7f,0xff,0x7e,0x70,0x2, +0xac,0x7a,0x22,0x74,0xa, 0x7a,0xb3,0x2a,0x6c,0x74,0x10,0x7a,0xb3,0x2a,0x6d,0x12, +0x57,0x79,0x7a,0x37,0x2a,0x74,0x74,0x1e,0x7a,0xb3,0x2a,0x78,0x12,0x57,0xa5,0x7e, +0x34,0x0, 0x96,0x7a,0x37,0x2a,0x7f,0xe4,0x7a,0xb3,0x2a,0x83,0x74,0x4, 0x7a,0xb3, +0x2a,0x84,0x7e,0x34,0x0, 0x64,0x7a,0x37,0x2a,0x85,0x7e,0x34,0xa, 0x0, 0x7a,0x37, +0x2a,0x81,0xe4,0x7a,0xb3,0x16,0x92,0x22,0x12,0x1a,0x84,0x12,0x65,0x8a,0x7e,0xb3, +0x37,0x5, 0xb4,0x1, 0x64,0x12,0x9f,0x30,0x12,0xa9,0x6c,0x12,0x7b,0x77,0x12,0x26, +0x9b,0x12,0x1a,0xaf,0x50,0xe5,0x12,0x2e,0xde,0x12,0x54,0xb7,0x7e,0xb3,0x37,0x2, +0xb4,0x1, 0x4, 0xe4,0x12,0x26,0x7b,0x12,0x57,0x4, 0x12,0x90,0x60,0x12,0x26,0x83, +0x40,0xc9,0x12,0x5e,0x84,0x12,0x26,0x83,0x40,0xc1,0x12,0x87,0xc0,0x12,0x1c,0x44, +0x12,0x0, 0x66,0x12,0x5f,0xfd,0x12,0x83,0xa7,0x12,0x6e,0x97,0x12,0x85,0xbc,0x12, +0x6a,0xa2,0x12,0x87,0xba,0x12,0x6d,0xde,0x12,0xa3,0x56,0x12,0x67,0xc3,0x12,0x49, +0xb0,0x12,0x7b,0x57,0x12,0x49,0x59,0x80,0x92,0x12,0x5f,0xf4,0x2, 0x26,0x6f,0x7e, +0xb3,0x37,0x2, 0xb4,0x1, 0x4, 0xe4,0x2, 0x26,0x7b,0x22,0x70,0x3, 0xd2,0x86,0x22, +0xc2,0x86,0x22,0xc2,0x3, 0x7e,0xb3,0x16,0x91,0x60,0x6, 0x7e,0xb3,0x16,0x90,0x70, +0x7, 0x12,0xa8,0xf8,0x28,0x2, 0xd2,0x3, 0xa2,0x3, 0x22,0x7e,0x34,0x36,0xde,0x30, +0xd, 0x47,0xc2,0xd, 0x9, 0x53,0x0, 0x2, 0x12,0x26,0xea,0x7a,0x27,0x2a,0x6e,0x9, +0x53,0x0, 0x3, 0x12,0x26,0xea,0x7a,0x27,0x2a,0x70,0x9, 0x53,0x0, 0x4, 0x12,0x26, +0xea,0x7a,0x27,0x2a,0x72,0x7e,0x39,0x50,0x12,0x26,0xf5,0x7a,0x27,0x2a,0x79,0x9, +0x53,0x0, 0x1, 0x12,0x26,0xf5,0x7a,0x27,0x2a,0x7b,0x9, 0x73,0x0, 0x5, 0xa, 0x37, +0x12,0xa9,0x1c,0x3e,0x34,0x7a,0x37,0x2a,0x81,0x22,0xa, 0x25,0x3e,0x24,0x3e,0x24, +0x3e,0x24,0x3e,0x24,0x22,0xa, 0x25,0x3e,0x24,0x3e,0x24,0x22,0x7c,0x67,0x7c,0x7b, +0xa5,0xbf,0x0, 0x17,0xbe,0x60,0x0, 0x28,0xf, 0x74,0x1, 0x7a,0xb3,0x2a,0x25,0xe4, +0x7a,0xb3,0x2a,0x27,0x7a,0xb3,0x2a,0x28,0x2, 0x8a,0x74,0xa5,0xbe,0x0, 0x1b,0x6c, +0xaa,0x7e,0x60,0xff,0x7e,0x50,0x9, 0xac,0x5a,0x19,0x62,0x29,0x66,0xb, 0xa0,0xbe, +0xa0,0xa, 0x78,0xf0,0x74,0x1, 0x7a,0xb3,0x2a,0x24,0x6c,0xaa,0x80,0x26,0x7e,0x30, +0x9, 0xac,0x3a,0x2e,0x14,0x28,0xae,0xb, 0x18,0x20,0x12,0x26,0xec,0x1b,0x18,0x20, +0x7e,0x30,0x9, 0xac,0x3a,0x2e,0x14,0x28,0xb0,0xb, 0x18,0x20,0x12,0x26,0xec,0x1b, +0x18,0x20,0xb, 0xa0,0xbc,0x7a,0x38,0xd6,0x22,0xca,0x3b,0x75,0x28,0x0, 0x7e,0xb3, +0x2a,0x8e,0xf5,0x2a,0x7e,0xb3,0x2a,0x8f,0xf5,0x2b,0x75,0x25,0x0, 0x7e,0xb3,0x16, +0x91,0xb4,0x1, 0x2, 0x80,0x3, 0x2, 0x29,0xba,0x6c,0xdd,0x2, 0x29,0xa9,0x7e,0x70, +0x2, 0xac,0x7d,0x9, 0xb3,0x26,0xfa,0xf5,0x29,0x9, 0xc3,0x26,0xfb,0x75,0x26,0x2, +0x75,0x27,0x2, 0x7c,0xbd,0x12,0x2d,0x8d,0xd2,0x3, 0x12,0x2f,0xa, 0x7e,0xb3,0x36, +0xe9,0xb4,0x1, 0x1e,0x7e,0xb3,0x2a,0x21,0xb4,0x1, 0x17,0x7e,0xb3,0x28,0x84,0xb4, +0x1, 0x10,0x7e,0x37,0x28,0x86,0xbe,0x34,0x0, 0xa, 0x40,0x6, 0x75,0x26,0x3, 0x75, +0x27,0x3, 0xe5,0x29,0x60,0x5, 0x12,0xa8,0xeb,0x48,0x3, 0x75,0x26,0x1, 0x4c,0xcc, +0x68,0xc, 0xe5,0x2b,0xa, 0x2b,0x1b,0x24,0xa, 0x3c,0xbd,0x32,0x48,0x3, 0x75,0x27, +0x1, 0x75,0x25,0x0, 0x75,0x24,0x0, 0x80,0x55,0xe5,0x24,0xbc,0xbd,0x68,0x4d,0x12, +0x8c,0x91,0x9, 0xa3,0x26,0xfa,0x7a,0xa1,0x2c,0x9, 0xb3,0x26,0xfb,0xf5,0x2d,0xa, +0x2a,0xe5,0x29,0x12,0x24,0x23,0xbe,0x34,0x0, 0x4, 0x18,0x30,0xe5,0x2d,0xa, 0x2b, +0xa, 0x3c,0x9d,0x32,0x12,0x17,0x80,0xbe,0x34,0x0, 0x4, 0x18,0x1f,0x12,0x29,0xbd, +0x40,0xa, 0xe5,0x2c,0x7e,0x71,0x2d,0x12,0x29,0xf6,0x50,0x5, 0x75,0x25,0x0, 0x80, +0x3, 0x75,0x25,0x1, 0x75,0x26,0x1, 0x75,0x27,0x1, 0x80,0x7, 0x5, 0x24,0x12,0x8e, +0xc2,0x38,0xa6,0x12,0x29,0xbd,0x50,0xb, 0x12,0x2a,0x24,0x75,0x26,0x0, 0x75,0x27, +0x0, 0x80,0xb, 0x12,0x8a,0x65,0x50,0x6, 0x75,0x26,0x3, 0x75,0x27,0x3, 0xe5,0x25, +0x70,0x2, 0x21,0x62,0x6c,0xff,0x6c,0xee,0x12,0x29,0xd9,0x18,0x15,0xe5,0x2a,0xa, +0x5b,0xbd,0x35,0x48,0xd, 0x12,0x29,0xce,0x18,0x8, 0xe5,0x2b,0xa, 0x5b,0xbd,0x35, +0x58,0x3, 0x12,0x29,0xff,0xb, 0xe0,0xbe,0xe0,0x3, 0x78,0xdc,0xb, 0xf0,0xbe,0xf0, +0x3, 0x78,0xd3,0x7e,0xa1,0x2b,0x1b,0xa0,0xbc,0xac,0x68,0x6, 0x4c,0xcc,0x68,0x2, +0x21,0x62,0xe5,0x29,0xbe,0xb0,0x0, 0x38,0x2, 0x21,0x62,0x12,0xa8,0xeb,0x48,0x2, +0x21,0x62,0x7e,0x18,0x0, 0x64,0x7a,0x1d,0x41,0x4c,0xcc,0x78,0x5, 0x75,0x40,0x2, +0x80,0x7, 0xbc,0xac,0x78,0x3, 0x75,0x40,0x0, 0x6c,0xff,0x7e,0xa1,0x40,0x3e,0xa0, +0x7e,0x90,0x6, 0xac,0x9f,0x7c,0xb9,0x2c,0xba,0x24,0x2e,0x12,0x29,0xc4,0x7e,0x14, +0x0, 0x64,0x12,0x15,0x6c,0x7c,0xb9,0x24,0x30,0xa, 0x1b,0xb, 0x18,0x10,0x1a,0x2, +0x1a,0x0, 0x12,0x15,0xc8,0x7e,0xd, 0x41,0xbf,0x10,0x58,0x3, 0x7a,0x1d,0x41,0xb, +0xf0,0xbe,0xf0,0x3, 0x78,0xc5,0x7e,0x1d,0x41,0xbe,0x18,0x0, 0x0, 0x58,0x7, 0x7e, +0x18,0x0, 0x1, 0x7a,0x1d,0x41,0x6c,0xff,0x74,0x6, 0xac,0xbf,0x24,0x30,0x12,0x29, +0xc4,0x7e,0xd, 0x41,0x12,0x15,0x5b,0x7e,0x8, 0x0, 0x64,0x12,0x15,0xc8,0x7d,0x43, +0xe5,0x29,0xa, 0x3b,0x1b,0x34,0xa, 0x5f,0x2d,0x53,0xa, 0x2c,0x1b,0x24,0x7e,0xa1, +0x40,0xa, 0x3a,0x2d,0x32,0x12,0x2e,0xc8,0x1b,0x1a,0x40,0xb, 0xf0,0xbe,0xf0,0x3, +0x78,0xc6,0xe5,0x26,0x7e,0x71,0x27,0x7c,0x6d,0x7e,0x51,0x28,0x12,0x2a,0xec,0xe5, +0x25,0x60,0x2f,0x6c,0xff,0x6c,0xee,0x12,0x29,0xd9,0x18,0x15,0xe5,0x2a,0xa, 0x5b, +0xbd,0x35,0x48,0xd, 0x12,0x29,0xce,0x18,0x8, 0xe5,0x2b,0xa, 0x5b,0xbd,0x35,0x58, +0x3, 0x12,0x29,0xff,0xb, 0xe0,0xbe,0xe0,0x3, 0x78,0xdc,0xb, 0xf0,0xbe,0xf0,0x3, +0x78,0xd3,0x12,0x2a,0x24,0x5, 0x28,0xb, 0xd0,0x7e,0x73,0x28,0x84,0xbc,0x7d,0x28, +0x3, 0x2, 0x27,0x8e,0xe5,0x28,0x7a,0xb3,0x28,0x84,0xda,0x3b,0x22,0xe5,0x29,0x7c, +0x7c,0x2, 0x29,0xf6,0xa, 0x3b,0xb, 0x38,0x30,0x1a,0x26,0x1a,0x24,0x22,0xa, 0x2e, +0xa, 0x3c,0x2d,0x32,0xbe,0x34,0x0, 0x1, 0x22,0xa, 0x3f,0xe5,0x29,0xa, 0x4b,0x2d, +0x34,0xbe,0x34,0x0, 0x1, 0x22,0x74,0x2, 0xac,0xb1,0x9, 0x25,0x26,0xfa,0x9, 0x35, +0x26,0xfb,0x7c,0xb2,0x7c,0x73,0x7c,0xb7,0xb4,0x17,0x2, 0xd3,0x22,0xc3,0x22,0x1b, +0x44,0xa, 0x5f,0x2d,0x54,0xa, 0x2c,0x1b,0x24,0xa, 0x3e,0x2d,0x32,0x12,0x1e,0x80, +0x7d,0x23,0x7c,0x7e,0x3e,0x70,0x74,0x6, 0xac,0xbf,0x2c,0xb7,0x24,0x2e,0xa, 0x3b, +0x1b,0x38,0x20,0x22,0x6c,0x33,0x6c,0x22,0x80,0x24,0x7c,0xb2,0x12,0x2e,0x9f,0x50, +0x1b,0x7c,0xb2,0x12,0x2d,0x82,0x7d,0x3, 0x12,0x2f,0x41,0x49,0x55,0x38,0xe4,0x7d, +0x40,0x3e,0x44,0x7e,0x1f,0x13,0x8a,0x2d,0x34,0x1b,0x1a,0x50,0xb, 0x20,0x7e,0x73, +0x2a,0x94,0xbc,0x72,0x38,0xd4,0x22,0x6c,0x0, 0x6c,0x11,0x80,0x13,0x7c,0xb1,0x12, +0x1f,0xd4,0x60,0xa, 0x12,0x29,0xe6,0x40,0x5, 0x7e,0x0, 0x1, 0x80,0xa, 0xb, 0x10, +0x7e,0x73,0x28,0x84,0xbc,0x71,0x38,0xe5,0x7c,0xb0,0x6c,0x77,0x12,0x2a,0xb1,0xbe, +0x0, 0x1, 0x68,0xb, 0x7c,0xb0,0x7e,0x70,0x1, 0x12,0x2a,0xb1,0xb4,0x1, 0x21,0x6c, +0x11,0x80,0x15,0x7c,0xb1,0x12,0x1f,0xd4,0x60,0xc, 0x12,0x29,0xe6,0x50,0x7, 0x7c, +0xb1,0x6c,0x77,0x12,0x2f,0x4c,0xb, 0x10,0x7e,0x3, 0x28,0x84,0xbc,0x1, 0x38,0xe3, +0x22,0x7c,0xab,0xa5,0xbf,0x0, 0xc, 0x7e,0xb3,0x36,0x5d,0x7a,0xb3,0x36,0x5e,0x7a, +0xa3,0x36,0x5d,0x7e,0xb3,0x36,0x5e,0x60,0x4, 0x74,0x8, 0x80,0xd, 0x7e,0xb3,0x28, +0x84,0x70,0xb, 0x7e,0xb3,0x36,0x5f,0x60,0x5, 0x14,0x7a,0xb3,0x36,0x5f,0x7e,0x73, +0x36,0x5f,0xbe,0x70,0x0, 0x28,0x3, 0x74,0x1, 0x22,0xe4,0x22,0xca,0x3b,0x7c,0xc4, +0x7c,0xf6,0x7c,0xe7,0x7c,0xdb,0x74,0x9, 0xac,0xb5,0x7d,0x95,0x2e,0x94,0x27,0x76, +0x6d,0x88,0x7e,0xe7,0x2a,0x85,0xe4,0x39,0xb4,0x0, 0x6, 0x7e,0x70,0x2, 0xac,0x7f, +0x9, 0xb3,0x26,0xfa,0xf5,0x4e,0x9, 0xb3,0x26,0xfb,0xf5,0x4f,0x7e,0x73,0x2a,0x8d, +0x7c,0x6e,0x7e,0x8, 0x0, 0x52,0x12,0x2d,0x2f,0xf5,0x50,0xe5,0x4e,0x7e,0x73,0x2a, +0x8c,0x7c,0x6d,0x7e,0x8, 0x0, 0x51,0x12,0x2d,0x2f,0x7c,0xab,0xe5,0x51,0x7e,0x71, +0x52,0x12,0x2e,0xc8,0x7d,0xf3,0x7a,0xf5,0x5a,0x7e,0xf4,0x15,0x9e,0x7a,0xf5,0x5c, +0x85,0x51,0x54,0x85,0x52,0x55,0x7a,0xa1,0x56,0x85,0x50,0x57,0x7e,0xb3,0x2a,0x78, +0xf5,0x58,0x75,0x59,0x0, 0xbe,0xc0,0x1, 0x78,0x8, 0xe5,0x58,0x1e,0xb0,0x1e,0xb0, +0xf5,0x58,0x7e,0x8, 0x0, 0x54,0x12,0x78,0x71,0x7d,0x23,0x6d,0x33,0x7e,0xb7,0x15, +0xa0,0x6d,0xaa,0x2f,0x51,0x7e,0x37,0x15,0xa2,0x6d,0x22,0x7d,0x3, 0x6d,0x11,0x7e, +0x37,0x15,0xa4,0x2f,0x10,0x7a,0x1d,0x45,0x7e,0x37,0x15,0xa6,0x6d,0x22,0x7d,0x3, +0x7e,0x37,0x15,0xa8,0x2f,0x10,0x7a,0x1d,0x49,0x7f,0x65,0xa, 0x3d,0xe5,0x4e,0xa, +0xfb,0x9d,0xf3,0x7d,0x3f,0x7c,0xc7,0x81,0x91,0xa, 0x4e,0xe5,0x4f,0xa, 0x5b,0x9d, +0x54,0xf5,0x4d,0x81,0x7b,0xbe,0xc0,0x0, 0x58,0x2, 0x81,0x79,0x7e,0x73,0x2a,0x8c, +0xbc,0x7c,0x18,0x2, 0x81,0x79,0xe5,0x4d,0xbe,0xb0,0x0, 0x58,0x2, 0x81,0x79,0x7e, +0x73,0x2a,0x8d,0xbe,0x71,0x4d,0x18,0x2, 0x81,0x79,0x7c,0xbc,0x7e,0x71,0x4d,0x12, +0x1e,0x80,0x7e,0x53,0x2a,0x78,0xa, 0x25,0x7d,0xf3,0x9d,0xf2,0xbe,0xf4,0x0, 0x0, +0x8, 0x77,0xbd,0xef,0x18,0xd, 0x7f,0x14,0x2e,0x34,0x0, 0x6, 0x7e,0x1b,0xb0,0x4, +0x7a,0x1b,0xb0,0xe5,0x4e,0xa, 0x2b,0x1a,0x3c,0x12,0x2d,0x16,0x18,0xd, 0xe5,0x4f, +0xa, 0x2b,0xe5,0x4d,0x1a,0x3b,0x12,0x2d,0x16,0x8, 0x4e,0x7c,0xbc,0x7e,0x71,0x4d, +0x7c,0x6f,0x12,0x9f,0x65,0xf5,0x53,0xb4,0x2, 0x6, 0x7d,0x3f,0xe, 0x34,0x9d,0xf3, +0xe5,0x53,0xbe,0xb0,0x2, 0x68,0x5, 0xe5,0x53,0xb4,0x1, 0x2d,0x12,0x2d,0x7, 0x1a, +0x1c,0x12,0x2d,0xe, 0x7e,0x1d,0x45,0x9f,0x10,0x7a,0x1d,0x45,0x12,0x2d,0x7, 0xe5, +0x4d,0x1a,0x1b,0x12,0x2d,0xe, 0x7e,0x1d,0x49,0x9f,0x10,0x7a,0x1d,0x49,0x12,0x2d, +0x7, 0x9f,0x51,0x1a,0x26,0x1a,0x24,0x9f,0x61,0x5, 0x4d,0xa, 0x2e,0xe5,0x4f,0xa, +0x3b,0x2d,0x32,0x1a,0x27,0xe5,0x4d,0x1a,0x3b,0xbd,0x32,0x18,0x2, 0x61,0xc5,0xb, +0xc0,0xa, 0x2d,0xe5,0x4e,0xa, 0x3b,0x2d,0x32,0x1a,0x37,0x1a,0xfc,0xbd,0xf3,0x18, +0x2, 0x61,0xb9,0xbe,0x58,0x0, 0x0, 0x78,0x2, 0xb, 0x5c,0xbe,0x68,0x0, 0x0, 0x78, +0x2, 0xb, 0x6c,0x7e,0x1d,0x45,0x7f,0x5, 0x12,0x2d,0x20,0x1b,0x4a,0x30,0x7e,0x1d, +0x49,0x7f,0x6, 0x12,0x2d,0x20,0x79,0x34,0x0, 0x2, 0x7e,0xb3,0x2a,0x84,0x60,0xd, +0x1e,0xd4,0x1e,0xc4,0x50,0x4, 0x4e,0xd4,0x80,0x0, 0x14,0x78,0xf3,0xbe,0x68,0x0, +0x7f,0x28,0x4, 0x7e,0x68,0x0, 0x7f,0x7d,0x3d,0x39,0x74,0x0, 0x5, 0x74,0x9, 0xac, +0xbf,0x9, 0x75,0x27,0x7c,0x39,0x74,0x0, 0x6, 0xbe,0x70,0xf, 0x28,0x6, 0x74,0xf, +0x39,0xb4,0x0, 0x6, 0xda,0x3b,0x22,0x7d,0x3f,0x1a,0x26,0x1a,0x24,0x22,0x1a,0x2, +0x12,0x15,0x5b,0x7f,0x1, 0x22,0x9d,0x32,0x12,0x17,0x80,0xbe,0x34,0x0, 0x1, 0x22, +0x74,0x6, 0x2f,0x11,0x14,0x78,0xfb,0x12,0x15,0x77,0x2e,0x18,0x0, 0x20,0x22,0xca, +0xf8,0x7c,0xf6,0x7c,0x87,0x7c,0x9b,0xa, 0x2f,0x7d,0x32,0x3e,0x34,0xb, 0x34,0x7c, +0xb7,0xbc,0xf9,0x38,0x14,0xa, 0xf8,0x1b,0xf4,0xa, 0x3f,0x9d,0xf3,0xa, 0x39,0xbd, +0x3f,0x18,0x6, 0x7c,0xab,0xa, 0x39,0x80,0x1d,0xbc,0xf9,0x28,0xd, 0xa, 0x39,0xa, +0x5f,0x2d,0x53,0xb, 0x54,0x7c,0xab,0xe4,0x80,0x10,0xa, 0x3f,0xa, 0x58,0x2d,0x53, +0xa, 0x39,0x9d,0x53,0x7c,0xab,0x9d,0x32,0x7c,0xb7,0x7a,0xb, 0xb0,0x7c,0xba,0xda, +0xf8,0x22,0x7e,0x73,0x2a,0x8d,0xac,0x7b,0x2e,0x34,0x0, 0x17,0x22,0xca,0x79,0x7c, +0x5b,0x7e,0x43,0x28,0x84,0xbe,0x40,0x1, 0x28,0x2, 0xc1,0x9c,0x7e,0xa3,0x2a,0x8d, +0x7e,0x70,0x2, 0xac,0x75,0x9, 0xf3,0x26,0xfa,0x9, 0xe3,0x26,0xfb,0x7c,0xbf,0x7c, +0x7e,0x12,0x2e,0xc8,0x7f,0x51,0x7c,0x1e,0x7c,0x3f,0x7e,0x3, 0x2a,0x8f,0x7e,0x23, +0x2a,0x8e,0xa, 0x3a,0x6d,0xdd,0x9d,0xd3,0xa, 0x9a,0xa, 0xc0,0x1b,0xc5,0xa, 0x51, +0xbd,0x5c,0x58,0x2, 0xc1,0x9c,0xa, 0x53,0x1b,0x54,0xbe,0x54,0x0, 0x0, 0x48,0x55, +0x7c,0xb3,0x14,0x12,0x2e,0x9f,0x50,0x4d,0x7c,0xb3,0x14,0x12,0x2d,0x82,0x7d,0xe3, +0x7d,0x5e,0x12,0x2e,0xbb,0xb, 0x1a,0xf0,0x7d,0x5d,0x3e,0x54,0x7f,0x15,0x2d,0x35, +0xb, 0x1a,0x80,0xbe,0xf4,0x0, 0x0, 0x8, 0x11,0x9d,0x8f,0xbe,0x84,0x0, 0x0, 0x58, +0x4, 0x6d,0x55,0x80,0x2, 0x7d,0x58,0x1b,0x1a,0x50,0x7c,0xb0,0x24,0xfe,0xbc,0xb1, +0x78,0x13,0x7d,0x4e,0x1b,0x44,0x7d,0x54,0x12,0x2e,0xbb,0xb, 0x1a,0x50,0xbd,0x58, +0x8, 0x3, 0x1b,0x1a,0x80,0xa, 0x83,0xb, 0x84,0xa, 0x52,0xbd,0x85,0x58,0x5d,0x7c, +0xb3,0x4, 0x12,0x2e,0x9f,0x50,0x55,0x7c,0xb3,0x4, 0x12,0x2d,0x82,0x7d,0xe3,0x7d, +0x1e,0x3e,0x14,0x7e,0x1f,0x13,0x8a,0x7f,0x61,0x2d,0xd1,0xb, 0x6a,0xf0,0x7d,0x19, +0x3e,0x14,0x7f,0x65,0x2d,0xd1,0xb, 0x6a,0x10,0xbe,0xf4,0x0, 0x0, 0x8, 0x11,0x9d, +0x1f,0xbe,0x14,0x0, 0x0, 0x58,0x4, 0x6d,0x55,0x80,0x2, 0x7d,0x51,0x1b,0x6a,0x50, +0x7c,0xb0,0x24,0xfe,0xbc,0xb1,0x78,0x14,0x7d,0x4e,0x1b,0x44,0x7d,0x4, 0x3e,0x4, +0x2d,0x30,0xb, 0x1a,0x0, 0xbd,0x1, 0x8, 0x3, 0x1b,0x1a,0x10,0xda,0x79,0x22,0x7c, +0xab,0x6c,0x77,0xa, 0x27,0x2e,0x24,0x60,0xac,0x12,0x2f,0x8f,0xbc,0xba,0x78,0x2, +0xd3,0x22,0xb, 0x70,0xbe,0x70,0x3, 0x40,0xea,0xc3,0x22,0x3e,0x54,0x7e,0x1f,0x13, +0x8a,0x2d,0x35,0x22,0x7c,0xbd,0x7c,0x7e,0x7e,0x13,0x2a,0x8d,0xac,0x1b,0x3e,0x4, +0x7e,0x30,0x2, 0xac,0x37,0x2d,0x10,0x7e,0x1f,0x13,0x8a,0x2d,0x31,0x22,0x6c,0x33, +0x80,0x1f,0x7c,0xb3,0x12,0x2e,0x9f,0x40,0x16,0x7c,0xb3,0x12,0x2d,0x82,0x7d,0x43, +0x6d,0x55,0x7d,0x4, 0x3e,0x4, 0x7e,0x1f,0x13,0x8a,0x2d,0x30,0x1b,0x1a,0x50,0xb, +0x30,0x7e,0x23,0x2a,0x94,0xbc,0x23,0x38,0xd9,0x22,0x6c,0x33,0x6c,0x22,0x80,0x28, +0x7c,0xb2,0x12,0x2e,0x9f,0x50,0x1f,0x7c,0xb2,0x12,0x2d,0x82,0x3e,0x34,0x7e,0x7f, +0x13,0x8a,0x2d,0xf3,0xb, 0x7a,0x30,0x12,0x2f,0x41,0x59,0x35,0x38,0xe4,0x30,0x3, +0x5, 0x6d,0x33,0x1b,0x7a,0x30,0xb, 0x20,0x7e,0x73,0x2a,0x94,0xbc,0x72,0x38,0xd0, +0x22,0x7c,0xa3,0xb, 0x30,0x74,0x2, 0xa4,0x22,0x7e,0x70,0x1, 0x7c,0x67,0x7c,0x7b, +0xc4,0x23,0x54,0x1f,0x7c,0xab,0x7c,0xb7,0x54,0x7, 0xa, 0x2b,0x2e,0x24,0x0, 0x5e, +0x12,0x2f,0x8f,0x7c,0x7b,0x4c,0x66,0x68,0xf, 0xa, 0x2a,0x2e,0x24,0x27,0x72,0x7e, +0x29,0xb0,0x4c,0xb7,0x7a,0x29,0xb0,0x22,0x7c,0xb7,0x64,0xff,0xa, 0x2a,0x2e,0x24, +0x27,0x72,0x7e,0x29,0x70,0x5c,0x7b,0x7a,0x29,0x70,0x22,0x2e,0x24,0x16,0xe3,0x7a, +0x51,0x82,0x7a,0x41,0x83,0xe4,0x93,0x22,0x7e,0xa3,0x28,0x84,0xe4,0x7a,0xb3,0x34, +0xa0,0x6c,0x33,0x80,0x3d,0x7e,0x70,0x2, 0xac,0x73,0x9, 0x23,0x26,0xfb,0x7e,0x10, +0x1, 0x6c,0x0, 0x80,0x27,0xbc,0x3, 0x68,0x21,0x7e,0x70,0x2, 0xac,0x70,0x9, 0x93, +0x26,0xfb,0xa, 0x29,0xa, 0x32,0x12,0x2d,0x16,0x18,0x2, 0xb, 0x10,0xbe,0x10,0x2, +0x40,0x8, 0x74,0x2, 0x7a,0xb3,0x34,0xa0,0x80,0x6, 0xb, 0x0, 0xbc,0xa0,0x38,0xd5, +0xb, 0x30,0xbc,0xa3,0x38,0xbf,0x2, 0x2f,0xe9,0xca,0xf8,0x7e,0x33,0x28,0x84,0x6c, +0x22,0x80,0x45,0x74,0x2, 0xac,0xb2,0x9, 0x15,0x26,0xfa,0x9, 0x5, 0x26,0xfb,0x7e, +0xa0,0x1, 0x6c,0x99,0x80,0x2c,0xbc,0x92,0x68,0x26,0x7e,0x70,0x2, 0xac,0x79,0x9, +0x83,0x26,0xfa,0x9, 0xf3,0x26,0xfb,0xa, 0x28,0xa, 0x31,0x12,0x2d,0x16,0x18,0xb, +0xa, 0x2f,0xa, 0x30,0x12,0x2d,0x16,0x8, 0x2, 0xb, 0xa0,0xbe,0xa0,0x3, 0x50,0x6, +0xb, 0x90,0xbc,0x39,0x38,0xd0,0xb, 0x20,0xbc,0x32,0x38,0xb7,0x7e,0xb3,0x35,0x3a, +0xbe,0xb0,0x0, 0x28,0x12,0x14,0x7a,0xb3,0x35,0x3a,0xbe,0xb0,0x14,0x28,0x8, 0x7e, +0x34,0x0, 0x8c,0x7a,0x37,0x2a,0x79,0x7e,0xb3,0x36,0xe9,0x70,0x58,0x7e,0xb3,0x39, +0x6, 0x70,0x52,0x7e,0xb3,0x36,0x6d,0x70,0x4c,0x7e,0x37,0x38,0xb, 0xbe,0x34,0x0, +0x14,0x50,0x42,0x7e,0x37,0x28,0x8a,0xbe,0x34,0x3, 0x20,0x58,0x38,0x7e,0xb3,0x28, +0x84,0xbe,0xb0,0x3, 0x40,0x2f,0xbe,0xa0,0x3, 0x40,0x2a,0x7e,0xb3,0x26,0x85,0xbe, +0xb0,0x3, 0x50,0x9, 0x7e,0xb3,0x26,0x84,0xbe,0xb0,0x3, 0x40,0x18,0x7e,0xb3,0x26, +0xf6,0xbe,0xb0,0x8, 0x50,0x9, 0x7e,0xb3,0x26,0xf7,0xbe,0xb0,0x8, 0x40,0x6, 0x74, +0x1e,0x7a,0xb3,0x35,0x3a,0xda,0xf8,0x22,0xca,0xf8,0x7c,0xab,0xbe,0xa0,0x34,0x38, +0x2, 0x21,0xc9,0xbe,0xa0,0x35,0x78,0x6, 0x7e,0xb3,0x2b,0x2f,0x41,0xdf,0xbe,0xa0, +0x36,0x68,0x5, 0xbe,0xa0,0x37,0x78,0x1d,0x7e,0x35,0x8, 0x7d,0x23,0xb, 0x24,0x7a, +0x25,0x8, 0x2e,0x37,0x31,0xed,0x7e,0x39,0xb0,0xbe,0xa0,0x37,0x68,0x2, 0x41,0xdf, +0x75,0x1a,0x36,0x41,0xdf,0xbe,0xa0,0x38,0x68,0x5, 0xbe,0xa0,0x39,0x78,0x1b,0x7e, +0xf3,0x37,0xce,0x7c,0xbf,0x4, 0x7a,0xb3,0x37,0xce,0xbe,0xa0,0x39,0x78,0x3, 0x75, +0x1a,0x38,0xa, 0x3f,0x9, 0xb3,0x2b,0x40,0x41,0xdf,0xbe,0xa0,0x3a,0x68,0x5, 0xbe, +0xa0,0x3b,0x78,0x1b,0x7e,0xf3,0x37,0xd0,0x7c,0xbf,0x4, 0x7a,0xb3,0x37,0xd0,0xbe, +0xa0,0x3b,0x78,0x3, 0x75,0x1a,0x3a,0xa, 0x3f,0x9, 0xb3,0x2b,0x63,0x41,0xdf,0xbe, +0xa0,0xfb,0x78,0x6, 0x7e,0xb3,0x2b,0x31,0x41,0xdf,0xbe,0xa0,0x5e,0x78,0x26,0x7e, +0xf, 0x33,0xdf,0x69,0x30,0x0, 0x8e,0xa, 0x56,0x1e,0x54,0x1e,0x54,0x1e,0x54,0x5e, +0x54,0x0, 0x1, 0x3, 0x3, 0x54,0xc0,0xa, 0x36,0x5e,0x34,0x0, 0x3, 0x7c,0xa7,0x4c, +0xba,0x44,0x80,0x41,0xdf,0xbe,0xa0,0x3c,0x68,0x5, 0xbe,0xa0,0x3d,0x78,0x1b,0x7e, +0xf3,0x37,0xd2,0x7c,0xbf,0x4, 0x7a,0xb3,0x37,0xd2,0xbe,0xa0,0x3d,0x78,0x3, 0x75, +0x1a,0x3c,0xa, 0x3f,0x9, 0xb3,0x2a,0x99,0x41,0xdf,0xbe,0xa0,0x3e,0x68,0x5, 0xbe, +0xa0,0x3f,0x78,0x1b,0x7e,0xf3,0x37,0xd4,0x7c,0xbf,0x4, 0x7a,0xb3,0x37,0xd4,0xbe, +0xa0,0x3f,0x78,0x3, 0x75,0x1a,0x3e,0xa, 0x3f,0x9, 0xb3,0x2a,0xbc,0x41,0xdf,0xbe, +0xa0,0x40,0x40,0xd, 0xbe,0xa0,0x4d,0x38,0x8, 0xa, 0x3a,0x9, 0xb3,0x37,0xaa,0x41, +0xdf,0xbe,0xa0,0x4e,0x68,0x5, 0xbe,0xa0,0x4f,0x78,0x1e,0x7e,0xf3,0x37,0xef,0x7c, +0xbf,0x4, 0x7a,0xb3,0x37,0xef,0xbe,0xa0,0x4f,0x78,0x3, 0x75,0x1a,0x4e,0xa, 0x3f, +0x2e,0x37,0x31,0xeb,0x7e,0x39,0xb0,0x41,0xdf,0xbe,0xa0,0x51,0x68,0x5, 0xbe,0xa0, +0x52,0x78,0x28,0x7e,0x14,0x60,0x0, 0x6d,0x0, 0x2e,0x4, 0x0, 0xff,0x7e,0xb3,0x37, +0xfa,0xa, 0x3b,0x6d,0x22,0x2f,0x10,0x7e,0x1b,0x70,0x4, 0x7a,0xb3,0x37,0xfa,0xbe, +0xa0,0x52,0x78,0x3, 0x75,0x1a,0x51,0x7c,0xb7,0x41,0xdf,0xbe,0xa0,0x5c,0x68,0x5, +0xbe,0xa0,0x5d,0x78,0x1a,0x7e,0xf3,0x37,0xc3,0x7c,0xbf,0x4, 0x7a,0xb3,0x37,0xc3, +0xbe,0xa0,0x5d,0x78,0x3, 0x75,0x1a,0x5c,0x7c,0xbf,0x12,0x9c,0xb4,0x41,0xdf,0xbe, +0xa0,0x60,0x40,0xd, 0xbe,0xa0,0x6c,0x38,0x8, 0xa, 0x3a,0x9, 0xb3,0x38,0x6c,0x80, +0x7e,0xbe,0xa0,0x6d,0x78,0x4, 0xe5,0xe, 0x80,0x75,0xbe,0xa0,0xf4,0x68,0x5, 0xbe, +0xa0,0xf5,0x78,0x18,0x7e,0x35,0xa, 0x7d,0x23,0xb, 0x24,0x7a,0x25,0xa, 0x9, 0xb3, +0x31,0xf3,0xbe,0xa0,0xf5,0x78,0x58,0x75,0x1a,0xf4,0x80,0x53,0xbe,0xa0,0xf0,0x68, +0x5, 0xbe,0xa0,0xf1,0x78,0x9, 0x7c,0x1a,0x2e,0x10,0x20,0xa5,0xe7,0x80,0x40,0xbe, +0xa0,0xf2,0x68,0x5, 0xbe,0xa0,0xf3,0x78,0x1b,0x7e,0x15,0x10,0x3e,0x14,0x7e,0x1f, +0x31,0xef,0x2d,0x31,0xb, 0x1a,0x30,0xbe,0xa0,0xf2,0x78,0x4, 0xa, 0x56,0x80,0x1f, +0x7d,0x53,0x80,0x1b,0xbe,0xa0,0xf6,0x78,0x4, 0xe5,0xf, 0x80,0x12,0xbe,0xa0,0xf7, +0x78,0x4, 0x74,0x64,0x80,0x9, 0xbe,0xa0,0xfd,0x78,0x3, 0xe4,0x80,0x1, 0xe4,0xda, +0xf8,0x22,0x7c,0x7b,0x6c,0xaa,0x12,0x35,0xcf,0x78,0x9, 0x7c,0xb7,0x12,0x64,0xc1, +0x7c,0xab,0x80,0xa, 0xb4,0x4, 0x7, 0x7c,0xb7,0x12,0x30,0xb8,0x7c,0xab,0x7c,0xba, +0x22,0x30,0x90,0x19,0xc2,0x90,0xe5,0x18,0x70,0x9, 0x75,0x18,0x1, 0xe5,0x91,0xf5, +0x1a,0x80,0x11,0x7e,0x71,0x91,0xe5,0x1a,0x12,0x33,0x2c,0x5, 0x1a,0x30,0x91,0xb, +0xc2,0x91,0x5, 0x1a,0xe5,0x1a,0x12,0x32,0xe2,0xf5,0x91,0x22,0x7c,0x6b,0x12,0x35, +0xcf,0x78,0x5, 0x7c,0xb6,0x2, 0x65,0xe8,0xb4,0x4, 0x5, 0x7c,0xb6,0x2, 0x33,0x41, +0x22,0xca,0xf8,0x7c,0x6b,0xa5,0xbe,0x0, 0x9, 0x7c,0xb7,0x12,0x65,0xbd,0xd2,0x6, +0xa1,0xc3,0xa5,0xbe,0x1, 0x3d,0x7a,0x73,0x37,0xab,0xa5,0xbf,0xad,0x2, 0x80,0x2f, +0xa5,0xbf,0xae,0x4, 0xd2,0x7, 0xa1,0xc3,0xa5,0xbf,0xaa,0x5, 0x12,0xa9,0x49,0x80, +0x1e,0xa5,0xbf,0xab,0xa, 0x7e,0x34,0x5, 0x7a,0x7a,0x37,0x31,0xed,0x80,0x10,0xa5, +0xbf,0xac,0x2, 0x80,0x2, 0xa1,0xc3,0x7e,0x34,0x4, 0xfc,0x7a,0x37,0x31,0xed,0x6d, +0x33,0x81,0x3f,0xbe,0x60,0x4, 0x40,0x20,0xbe,0x60,0x8, 0x38,0x1b,0x12,0x35,0xc6, +0xa5,0xbe,0x7, 0x7, 0x6d,0x33,0x7a,0x35,0xa, 0xa1,0xc3,0xa5,0xbe,0x8, 0x2, 0x80, +0x2, 0xa1,0xc3,0x12,0x0, 0x6e,0xa1,0xc3,0xa5,0xbe,0xa, 0x9, 0x43,0xc, 0x20,0x7a, +0x73,0x37,0xb4,0xa1,0xc3,0xa5,0xbe,0xb, 0x8, 0x12,0x35,0xc6,0x12,0x7, 0xfb,0xa1, +0xc3,0xbe,0x60,0x1b,0x40,0x7, 0xbe,0x60,0x1c,0x38,0x2, 0xa1,0x5b,0xbe,0x60,0x1e, +0x40,0xd, 0xbe,0x60,0x23,0x38,0x8, 0x12,0x35,0xc8,0x43,0xc, 0x40,0xa1,0xc3,0xbe, +0x60,0x15,0x40,0x1a,0xbe,0x60,0x18,0x38,0x15,0x12,0x35,0xc8,0xd2,0x6, 0xa5,0xbe, +0x15,0x2, 0x80,0x2, 0xa1,0xc3,0x74,0x7, 0x7a,0xb3,0x37,0xae,0xa1,0xc3,0xa5,0xbe, +0x19,0x7, 0xe4,0x7a,0xb3,0x37,0xc3,0xa1,0xc3,0xbe,0x60,0x24,0x40,0x7, 0xbe,0x60, +0x2c,0x38,0x2, 0xa1,0x5b,0xa5,0xbe,0x2d,0x1b,0x12,0x35,0xc8,0x20,0x7, 0x2, 0xa1, +0xc3,0x7e,0x63,0x37,0xd6,0x7c,0x46,0x6c,0x55,0xa, 0x37,0x2d,0x32,0x3e,0x34,0x7a, +0x35,0x8, 0xa1,0xc3,0xbe,0x60,0x2f,0x40,0xa, 0xbe,0x60,0x33,0x38,0x5, 0x43,0xc, +0x8, 0xa1,0x5b,0xa5,0xbe,0x34,0xf, 0x43,0xc, 0x10,0xbe,0x70,0x64,0x38,0x2, 0xa1, +0x5b,0x7e,0x70,0x64,0xa1,0x5b,0xbe,0x60,0x38,0x68,0x4, 0xa5,0xbe,0x39,0x21,0x43, +0xc, 0x1, 0x7e,0xf3,0x37,0xcf,0x7c,0xbf,0x4, 0x7a,0xb3,0x37,0xcf,0xa, 0x2f,0x19, +0x72,0x2b,0x40,0xa5,0xbe,0x39,0x2, 0x80,0x2, 0xa1,0xc3,0x75,0x1a,0x38,0xa1,0xc3, +0xbe,0x60,0x3a,0x68,0x4, 0xa5,0xbe,0x3b,0x21,0x43,0xc, 0x2, 0x7e,0xf3,0x37,0xd1, +0x7c,0xbf,0x4, 0x7a,0xb3,0x37,0xd1,0xa, 0x2f,0x19,0x72,0x2b,0x63,0xa5,0xbe,0x3b, +0x2, 0x80,0x2, 0xa1,0xc3,0x75,0x1a,0x3a,0xa1,0xc3,0xa5,0xbe,0xfb,0x9, 0x43,0xc, +0x4, 0x7a,0x73,0x2b,0x31,0xa1,0xc3,0xa5,0xbe,0x50,0x6, 0x7a,0x73,0x37,0xfa,0xa1, +0xc3,0xbe,0x60,0x3c,0x68,0x4, 0xa5,0xbe,0x3d,0x21,0x43,0xc, 0x1, 0x7e,0xf3,0x37, +0xd3,0x7c,0xbf,0x4, 0x7a,0xb3,0x37,0xd3,0xa, 0x2f,0x19,0x72,0x2a,0x99,0xa5,0xbe, +0x3d,0x2, 0x80,0x2, 0xa1,0xc3,0x75,0x1a,0x3c,0xa1,0xc3,0xbe,0x60,0x3e,0x68,0x4, +0xa5,0xbe,0x3f,0x21,0x43,0xc, 0x1, 0x7e,0xf3,0x37,0xd5,0x7c,0xbf,0x4, 0x7a,0xb3, +0x37,0xd5,0xa, 0x2f,0x19,0x72,0x2a,0xbc,0xa5,0xbe,0x3f,0x2, 0x80,0x2, 0xa1,0xc3, +0x75,0x1a,0x3e,0xa1,0xc3,0xbe,0x60,0x40,0x40,0xd, 0xbe,0x60,0x42,0x38,0x8, 0x12, +0x35,0xc8,0x75,0xd, 0x1, 0x80,0xa, 0xa5,0xbe,0x43,0xb, 0x12,0x35,0xc8,0x75,0xd, +0x2, 0x12,0x35,0xd7,0x80,0x7d,0xa5,0xbe,0x44,0x8, 0x12,0x35,0xc8,0x12,0x37,0xd3, +0x80,0x71,0xbe,0x60,0x45,0x68,0x4, 0xa5,0xbe,0x46,0x5, 0x12,0x35,0xc8,0x80,0x63, +0xbe,0x60,0x4e,0x68,0x4, 0xa5,0xbe,0x4f,0x20,0x43,0xd, 0x4, 0x7e,0xf3,0x37,0xf0, +0x7c,0xbf,0x4, 0x7a,0xb3,0x37,0xf0,0xa, 0x2f,0x2e,0x27,0x31,0xeb,0x7a,0x29,0x70, +0xa5,0xbe,0x4f,0x3f,0x75,0x1a,0x4e,0x80,0x3a,0xa5,0xbe,0x6d,0x5, 0x7a,0x71,0xe, +0x80,0x31,0xbe,0x60,0xf0,0x40,0x25,0xbe,0x60,0xf3,0x38,0x20,0x7c,0x16,0x2e,0x10, +0x20,0x7c,0xb7,0xa5,0xf7,0xa5,0xbe,0xf3,0x1a,0x7e,0x15,0x12,0x7e,0x5, 0x10,0x3e, +0x4, 0x7e,0x1f,0x31,0xef,0x2d,0x30,0x1b,0x1a,0x10,0x80,0x7, 0xa5,0xbe,0xf6,0x3, +0x7a,0x71,0xf, 0xda,0xf8,0x22,0xd2,0x6, 0xa, 0x26,0x19,0x72,0x37,0xaa,0x22,0x7e, +0xb3,0x37,0xaa,0xc4,0x54,0x7, 0x22,0x12,0xa9,0x5b,0xb4,0x1, 0x14,0xca,0x39,0x7e, +0x18,0x37,0xea,0x7e,0x8, 0x25,0xee,0x12,0x17,0x29,0x1b,0xfd,0x12,0x37,0xac,0x80, +0x12,0xca,0x39,0x7e,0x18,0x37,0xea,0x7e,0x8, 0x2b,0x8f,0x12,0x17,0x29,0x1b,0xfd, +0x12,0x37,0xca,0x2, 0x36,0x6, 0x7a,0x1f,0x2b,0x1b,0x7a,0xf, 0x2b,0x17,0x22,0x7a, +0xb3,0x2b,0x1f,0x70,0x14,0x12,0x37,0xca,0x12,0x36,0x6, 0x7e,0x18,0x6, 0x76,0x7a, +0x1f,0x6, 0xf4,0x7e,0x18,0x4, 0x7e,0x80,0x10,0xb4,0x1, 0x11,0x12,0x37,0xac,0x12, +0x36,0x6, 0x12,0x57,0x8a,0x7e,0x18,0x4, 0x0, 0x7a,0x1f,0x6, 0xf8,0x22,0x74,0x1, +0x12,0x0, 0x1e,0xe4,0x12,0x36,0xf, 0x12,0x36,0x56,0xe4,0x12,0x0, 0x1e,0x74,0x1, +0x12,0x36,0xf, 0x2, 0x36,0x56,0xca,0x3b,0x7e,0xd3,0x2a,0x92,0x7e,0xc3,0x2a,0x93, +0x7e,0x8, 0x1f,0x44,0x12,0x48,0xc6,0x7e,0x8, 0x1f,0x8a,0x7e,0x34,0x0, 0x46,0x12, +0x17,0x4e,0x7e,0x8, 0x1f,0xd0,0x7e,0x34,0x0, 0xa, 0xe4,0x12,0x17,0x4e,0x7e,0x8, +0x1f,0xda,0x7e,0x34,0x0, 0xa, 0x12,0x17,0x4e,0x7e,0xf3,0x2b,0x1b,0x7e,0x18,0x2a, +0xfb,0x7a,0x1d,0x24,0x7e,0x18,0x1f,0xd0,0x7a,0x1d,0x28,0x7c,0xbd,0x7c,0x7c,0x7e, +0x8, 0x2a,0xd8,0x12,0x9f,0xe9,0x6c,0xee,0x80,0x2b,0xa, 0x3e,0x9, 0xa3,0x2a,0xfb, +0xa, 0x3a,0x2e,0x34,0x16,0xe3,0x12,0x7b,0xcc,0x7c,0xab,0xbe,0xa0,0x1c,0x50,0x13, +0xa, 0x3e,0x12,0x37,0xa4,0xa, 0x4a,0x19,0xb4,0x1f,0x44,0x7e,0xb3,0x2b,0x1a,0x19, +0xb4,0x1f,0x8a,0xb, 0xe0,0xbc,0xce,0x38,0xd1,0x6c,0xee,0x80,0x24,0xa, 0x3e,0x9, +0xa3,0x2a,0xd8,0xbe,0xa0,0x23,0x50,0x17,0xa, 0x2e,0xa, 0x3c,0x2d,0x32,0x12,0x37, +0xa4,0xa, 0x4a,0x19,0xb4,0x1f,0x60,0x7e,0xb3,0x2b,0x1a,0x19,0xb4,0x1f,0xa6,0xb, +0xe0,0xbc,0xde,0x38,0xd8,0x7e,0xb3,0x2b,0x1c,0x7e,0x8, 0x1f,0xe4,0x60,0x9, 0x7e, +0x18,0x1f,0xd0,0x12,0x6a,0x48,0x80,0x3, 0x12,0xa1,0x3d,0x6c,0xee,0x7e,0x18,0x1f, +0xe4,0x7a,0x1f,0x1f,0x34,0x74,0x2, 0xac,0xbe,0x49,0x35,0x1f,0xd0,0x7a,0x37,0x1f, +0x38,0x74,0x2, 0xac,0xbe,0x49,0x35,0x1f,0xda,0x7a,0x37,0x1f,0x3a,0x7e,0x70,0xe, +0xac,0x7e,0x2e,0x34,0x1f,0x44,0x6d,0x22,0x7a,0x1f,0x1f,0x3c,0x7e,0x70,0xe, 0xac, +0x7e,0x2e,0x34,0x1f,0x8a,0x7a,0x1f,0x1f,0x40,0x7e,0x8, 0x1f,0x34,0x7c,0xbf,0x7c, +0x7e,0x12,0x8, 0xd1,0xb, 0xe0,0xbe,0xe0,0x5, 0x40,0xb2,0xda,0x3b,0x22,0x74,0x1, +0x7a,0xb3,0x37,0x5, 0x12,0x98,0xe2,0x12,0x13,0xf5,0x12,0xa0,0xb1,0xe4,0x12,0xa, +0x66,0x7e,0x24,0x3, 0xd4,0x12,0x40,0x30,0x74,0x1, 0x12,0x36,0xf, 0x12,0x64,0x26, +0x7e,0x34,0xd0,0xc, 0x12,0x1, 0xe, 0x12,0x36,0x3e,0x7e,0x34,0x0, 0x1, 0xe4,0x6c, +0x55,0x2, 0x13,0x1, 0x2e,0x37,0x2b,0x1d,0x7e,0x39,0xb0,0x22,0x7e,0x1f,0x25,0xf2, +0x7e,0xf, 0x25,0xee,0x22,0x7a,0xb3,0x2b,0x1f,0x70,0x5, 0x12,0x37,0xca,0x80,0x6, +0xb4,0x1, 0x6, 0x12,0x37,0xac,0x12,0x36,0x6, 0x22,0x7e,0x1f,0x2b,0x93,0x7e,0xf, +0x2b,0x8f,0x22,0x12,0xa9,0x5b,0xb4,0x1, 0x17,0xca,0x39,0x7e,0x18,0x25,0xee,0x7e, +0x8, 0x37,0xea,0x12,0x17,0x29,0x1b,0xfd,0x12,0xa9,0x40,0x12,0x37,0xac,0x80,0x1a, +0xca,0x39,0x7e,0x18,0x2b,0x8f,0x7e,0x8, 0x37,0xea,0x12,0x17,0x29,0x1b,0xfd,0x7e, +0x37,0x2b,0x95,0x7a,0x37,0x31,0xeb,0x12,0x37,0xca,0x2, 0x36,0x6, 0x30,0x6, 0x3b, +0xc2,0x6, 0x12,0x1a,0xb, 0x7e,0x73,0x37,0xaf,0x7a,0x73,0x2a,0x6c,0x7e,0x73,0x37, +0xb0,0x7a,0x73,0x2b,0x3c,0x7e,0x73,0x37,0xb0,0x7a,0x73,0x2b,0x20,0x7e,0xb3,0x37, +0xb1,0x60,0x18,0x7e,0x34,0x0, 0x2, 0x12,0x39,0x74,0x7e,0x34,0x0, 0x1, 0x12,0x39, +0x74,0x6d,0x33,0x12,0x39,0x74,0xe4,0x7a,0xb3,0x37,0xb1,0x12,0x47,0xf9,0x2, 0x38, +0x51,0xe5,0xc, 0x70,0x2, 0x21,0x73,0xe5,0xc, 0x30,0xe0,0x10,0x53,0xc, 0xfe,0x12, +0x52,0x23,0x12,0x5a,0x8c,0x7e,0x8, 0x2a,0x8c,0x12,0x9, 0xa1,0xe5,0xc, 0x30,0xe1, +0x6, 0x53,0xc, 0xfd,0x12,0xa1,0x4e,0xe5,0xc, 0x30,0xe2,0x32,0x53,0xc, 0xfb,0x7e, +0xb3,0x2b,0x31,0x60,0x9, 0x7e,0x8, 0x2a,0x8c,0x12,0x6, 0xba,0x80,0xb, 0x7e,0xb3, +0x2b,0x84,0x7e,0x73,0x2b,0x83,0x12,0xb, 0xad,0x7e,0x73,0x2b,0x31,0x2e,0x70,0xff, +0x92,0x4, 0x90,0x60,0x51,0xe4,0x93,0x9e,0xb3,0x2a,0x96,0x12,0xb, 0x1e,0xe5,0xc, +0x30,0xe3,0x4a,0x53,0xc, 0xf7,0x7e,0x73,0x37,0xdc,0x7a,0x73,0x2b,0x2e,0x12,0x7c, +0x2f,0x7a,0xb3,0x0, 0x61,0xbe,0xb0,0xff,0x68,0xb, 0x43,0xc, 0x20,0x7e,0x73,0x0, +0x61,0x7a,0x73,0x37,0xb4,0x12,0x4d,0xb8,0x12,0x47,0xd2,0x7e,0x73,0x37,0xdd,0xbe, +0x73,0x2b,0x81,0x68,0x6, 0x7a,0x73,0x2b,0x81,0xd2,0xc, 0x30,0xc, 0x9, 0xc2,0xc, +0x12,0x98,0xe2,0xe4,0x12,0xa, 0x66,0x12,0x19,0x65,0x12,0x97,0xf3,0xe5,0xc, 0x30, +0xe4,0xf, 0x53,0xc, 0xef,0x7e,0x43,0x37,0xde,0x7e,0x50,0xa, 0xac,0x45,0x12,0x40, +0x30,0xe5,0xc, 0x30,0xe6,0x4e,0x53,0xc, 0xbf,0x7e,0x73,0x37,0xca,0xbe,0x70,0x7, +0x28,0x6, 0x74,0x7, 0x7a,0xb3,0x37,0xca,0xa9,0xd5,0xcb,0x74,0xe, 0x12,0x3b,0xac, +0x7c,0x7b,0x5e,0x70,0xf, 0x7e,0x63,0x37,0xca,0xa, 0x26,0x2e,0x24,0x0, 0x3, 0x12, +0x26,0xec,0x7c,0x65,0x4c,0x76,0x74,0xe, 0x12,0x3b,0x5a,0x12,0x3b,0xac,0x12,0x3b, +0xa5,0x7e,0x73,0x37,0xcd,0x7a,0x73,0x2b,0x33,0x7e,0x73,0x37,0xcc,0x7a,0x73,0x2b, +0x3e,0x12,0xa9,0x52,0xe5,0xc, 0x30,0xe5,0xa, 0x53,0xc, 0xdf,0x7e,0xb3,0x37,0xb4, +0x2, 0x40,0x7e,0x22,0xca,0xd8,0xca,0x79,0x7d,0xd3,0x90,0x60,0x50,0xe4,0x93,0x7c, +0xfb,0x90,0x60,0x51,0xe4,0x93,0x7c,0x8b,0xa, 0x38,0xa, 0xcf,0x2d,0xc3,0xb, 0xc4, +0x7d,0x3c,0x7c,0xe7,0x12,0x1f,0xed,0xa9,0xd0,0xc4,0xa9,0xd5,0xcb,0x74,0x7, 0x12, +0x3b,0xac,0x7c,0x8b,0x74,0x7, 0x7e,0x70,0xf, 0x12,0x3b,0xa2,0x7e,0x54,0x0, 0x78, +0x7e,0x1f,0x33,0xe3,0x79,0x51,0x0, 0x6, 0x7e,0x54,0x0, 0x80,0x7e,0x1f,0x33,0xe3, +0x79,0x51,0x0, 0x8, 0x7e,0x54,0x0, 0xc, 0x7e,0x1f,0x33,0xe3,0x79,0x51,0x0, 0x10, +0xbe,0xd4,0x0, 0x2, 0x78,0x7, 0x12,0x3b,0x3f,0x44,0x1, 0x80,0x1c,0x12,0x3b,0x3f, +0x44,0x8, 0x1b,0x1a,0x50,0x4d,0xdd,0x7e,0x1f,0x33,0xe3,0x78,0x7, 0x12,0x3b,0x43, +0x54,0xfb,0x80,0x5, 0x12,0x3b,0x43,0x44,0x4, 0x1b,0x1a,0x50,0x7e,0x1f,0x33,0xdf, +0x69,0xe1,0x0, 0x84,0x69,0x51,0x0, 0x90,0x7d,0xf5,0x2e,0x34,0x0, 0x90,0x5e,0xa0, +0xf6,0x1b,0x1a,0x50,0x7e,0xb3,0x37,0xf, 0xbe,0xb0,0x6, 0x40,0x3, 0xb4,0xff,0xe, +0x12,0x3b,0x4e,0x54,0xe6,0x12,0x3b,0x4b,0x4e,0x54,0x1, 0xa4,0x80,0xc, 0x12,0x3b, +0x4e,0x5e,0x54,0xfe,0xe6,0x12,0x3b,0x4b,0x44,0xa4,0x1b,0x1a,0x50,0xbe,0xd4,0x0, +0x2, 0x78,0x21,0x12,0x3b,0x3f,0x12,0x3c,0xbd,0x12,0x3b,0x3f,0x44,0x50,0x1b,0x1a, +0x50,0x7e,0x34,0x0, 0x2, 0x12,0x3c,0x29,0x12,0x3c,0x2, 0x12,0x3b,0xdf,0x7a,0x37, +0x31,0xf3,0x41,0xfb,0x6c,0xdd,0x41,0xf5,0x4c,0xdd,0x78,0x4, 0x6c,0x99,0x80,0x2b, +0xbc,0xfd,0x40,0x12,0xa, 0xcd,0x9, 0x9c,0x2a,0xd7,0xbe,0x90,0x23,0x40,0x3, 0x7e, +0x90,0x22,0xb, 0x90,0x80,0x15,0xa, 0x3f,0xa, 0xcd,0x9d,0xc3,0x9, 0x9c,0x2a,0xfa, +0xbe,0x90,0x1c,0x40,0x3, 0x7e,0x90,0x1b,0x2e,0x90,0x24,0x12,0x3b,0x3f,0x12,0x3c, +0xbd,0xa, 0xc9,0x3e,0xc4,0x3e,0xc4,0x3e,0xc4,0x3e,0xc4,0x12,0x3b,0x3f,0x4d,0x5c, +0x1b,0x1a,0x50,0xe5,0xe, 0x60,0x7, 0xe5,0xe, 0xbe,0xb0,0x64,0x28,0x6, 0x7e,0x34, +0x0, 0x2, 0x80,0x4, 0xe5,0xe, 0xa, 0x3b,0x12,0x3c,0x29,0x12,0x3c,0x2, 0xbe,0xd4, +0x0, 0x1, 0x78,0x10,0x12,0x3c,0x2, 0x12,0x3b,0xdf,0x74,0x2, 0xac,0xbd,0x59,0x35, +0x31,0xf5,0x80,0xf, 0x12,0x3b,0xdf,0xa, 0x5e,0xa, 0x2d,0x2d,0x25,0x3e,0x24,0x59, +0x32,0x31,0xf5,0xb, 0xd0,0xbc,0xed,0x28,0x2, 0x41,0x68,0xa9,0xd5,0xcb,0x74,0x7, +0x7c,0x78,0x12,0x3b,0xa2,0xa9,0xc0,0xc4,0x7e,0x1f,0x33,0xdf,0x79,0xe1,0x0, 0x84, +0x7e,0x1f,0x33,0xdf,0x79,0xf1,0x0, 0x90,0x6d,0x33,0x7e,0xf, 0x33,0xe3,0x79,0x30, +0x0, 0x6, 0x7e,0xf, 0x33,0xe3,0x79,0x30,0x0, 0x8, 0x7e,0xf, 0x33,0xe3,0x79,0x30, +0x0, 0x10,0x7e,0xf, 0x33,0xe3,0x79,0x30,0x0, 0xe, 0xda,0x79,0xda,0xd8,0x22,0x7e, +0x1f,0x33,0xe3,0x2e,0x34,0x0, 0xe, 0xb, 0x1a,0x50,0x22,0x1b,0x1a,0x50,0x7e,0x1f, +0x33,0xdf,0x2e,0x34,0x0, 0x84,0xb, 0x1a,0x50,0x22,0xf5,0xfd,0x7a,0x71,0xfe,0x22, +0xa9,0xd5,0xcb,0x74,0x2, 0x7e,0x70,0x3f,0x12,0x3b,0x5a,0x74,0xf, 0x12,0x3b,0xac, +0x7c,0x7b,0x74,0xf, 0x5e,0x70,0xfe,0x12,0x3b,0x5a,0x74,0xc, 0x12,0x3b,0xac,0x54, +0x7f,0x68,0x8, 0x74,0xc, 0x7e,0x70,0xf8,0x12,0x3b,0x5a,0x7e,0x70,0x72,0x74,0xe, +0x12,0x3b,0x5a,0x74,0x7, 0x12,0x3b,0xac,0x7c,0x7b,0x5e,0x70,0xfb,0x74,0x7, 0x2, +0x3b,0xa2,0x12,0x3b,0x5a,0x75,0xfd,0xff,0xa9,0xc5,0xcb,0x22,0xf5,0xfd,0xe5,0xfe, +0x22,0x6d,0x33,0x7e,0x8, 0x0, 0x24,0x7e,0x24,0x0, 0x12,0x12,0x4b,0x63,0xe5,0x34, +0x20,0xe7,0x1b,0xa9,0xd5,0xcb,0x74,0x3, 0x7e,0x71,0x27,0x12,0x3b,0x5a,0x74,0xb, +0x7e,0x71,0x2f,0x12,0x3b,0x5a,0x74,0xc, 0x7e,0x71,0x30,0x12,0x3b,0xa2,0x22,0x7e, +0xf, 0x33,0xe3,0x69,0x30,0x0, 0xa, 0x7d,0x23,0x6d,0x33,0x69,0x10,0x0, 0xc, 0x6d, +0x0, 0x2f,0x10,0x74,0x7, 0x1e,0x34,0x1e,0x24,0x50,0x3, 0x4e,0x60,0x80,0x14,0x78, +0xf4,0x22,0x7e,0x34,0x0, 0x1, 0x7e,0xf, 0x33,0xe3,0x79,0x30,0x0, 0x4, 0x7e,0xf, +0x33,0xe3,0x69,0x30,0x0, 0x12,0x5e,0x34,0x0, 0x1, 0x68,0xf2,0x7e,0x34,0x0, 0x1, +0x79,0x30,0x0, 0x12,0x22,0x7e,0x34,0x0, 0x1, 0x7d,0x23,0x80,0x12,0x7e,0x30,0x4, +0x80,0x5, 0x74,0xfa,0x12,0x3c,0xc5,0x7c,0x23,0x1b,0x30,0xa5,0xba,0x0, 0xf3,0x7d, +0x32,0x1b,0x24,0x4d,0x33,0x78,0xe6,0x22,0x12,0x3f,0xe8,0xc2,0x3, 0x12,0x4f,0xe2, +0xc2,0x5, 0x12,0x3d,0x1, 0xc2,0x3, 0x12,0x3f,0xfc,0xa9,0xd5,0xcb,0x74,0xf, 0x12, +0x3b,0xac,0x7a,0x1b,0xb0,0x74,0xf, 0x6c,0x77,0x12,0x3b,0x5a,0xe5,0xfc,0x7a,0xb, +0xb0,0x43,0xfc,0x10,0x2, 0x3b,0xa5,0x24,0xab,0x68,0x10,0x24,0xef,0x68,0x1c,0x24, +0xde,0x68,0x26,0x24,0xde,0x78,0x2f,0x74,0x5, 0x80,0x2d,0x7e,0xb3,0x3, 0xff,0xb4, +0x5, 0x2a,0x12,0x3c,0x25,0x12,0x9d,0xff,0x2, 0x9f,0x19,0x7e,0xb3,0x3, 0xff,0xb4, +0x5, 0x1a,0x12,0x3c,0x25,0x75,0xe9,0xff,0x22,0x7e,0xb3,0x3, 0xff,0xb4,0x5, 0xc, +0x12,0x3c,0x25,0x2, 0x9f,0x13,0x74,0x1, 0x7a,0xb3,0x3, 0xff,0x22,0x5e,0x54,0x0, +0xf, 0x1b,0x1a,0x50,0x22,0x7c,0xab,0x80,0xe, 0x7e,0x70,0x3, 0x80,0x1, 0x0, 0x7c, +0x67,0x1b,0x70,0xa5,0xbe,0x0, 0xf7,0x7c,0x6a,0x1b,0xa0,0xa5,0xbe,0x0, 0xea,0x22, +0x7c,0x6b,0xa9,0xd5,0xcb,0x74,0xf, 0x12,0x3b,0x5a,0x7a,0x61,0xfc,0x12,0x3b,0xa5, +0x12,0x4c,0xa6,0xd2,0x3, 0x12,0x3f,0xfc,0x12,0x3d,0x1b,0x12,0x13,0xde,0x2, 0x13, +0x96,0xa9,0xd0,0xce,0xa2,0x5, 0xa9,0x91,0xc9,0x22,0x30,0x4, 0x6, 0x12,0x3d,0x1b, +0x2, 0x13,0x96,0x12,0x3f,0xe8,0xc2,0x5, 0x2, 0x3d,0x1, 0xd2,0x5, 0x12,0x3d,0x1, +0x74,0x1, 0x22,0x12,0x3e,0xb4,0x12,0x7b,0x45,0x75,0xcd,0x0, 0xa9,0xd6,0xeb,0xa9, +0xd7,0xcd,0xc2,0xce,0x12,0x57,0x93,0x12,0x3c,0x48,0x74,0x1, 0x12,0x3e,0xec,0xa9, +0xc6,0xeb,0xa9,0xc7,0xcd,0xd2,0xce,0xe5,0x25,0x7e,0x71,0x24,0x2, 0x3c,0xe0,0x30, +0x18,0x5, 0xc2,0x4, 0x12,0x3d,0xa, 0xa9,0xd1,0xcd,0xa9,0xc5,0xea,0x30,0x17,0x3, +0x20,0x18,0x14,0x12,0x3e,0xb4,0xa9,0xd0,0xce,0xa9,0xc4,0xc9,0x74,0x2, 0x12,0x3e, +0xec,0xa9,0xd0,0xce,0xa9,0xd4,0xc9,0xa9,0xc1,0xcd,0xd2,0x4, 0x2, 0x3d,0xa, 0xca, +0x3b,0x7e,0xb3,0x37,0x3, 0xb4,0x1, 0x2, 0x80,0x2, 0xc1,0xb1,0x6c,0xcc,0x6c,0xdd, +0x7e,0xb3,0x37,0x2e,0xb4,0x1, 0x8, 0x7e,0xe0,0x10,0x7e,0xf0,0x32,0x80,0x6, 0x7e, +0xe0,0x6, 0x7e,0xf0,0x14,0x12,0x3f,0xf7,0x7d,0xf3,0x12,0x5f,0xe9,0x50,0xfb,0x74, +0x1, 0x7a,0xb3,0x38,0x8e,0x12,0x36,0xf, 0x12,0x13,0xc7,0x12,0x0, 0x1e,0x74,0xa, +0x12,0x3c,0xc5,0x12,0x47,0xe1,0x7e,0xe7,0x2b,0x2c,0x7a,0xe5,0x25,0x7e,0xb3,0x2b, +0x19,0xf5,0x24,0x74,0x4, 0x7a,0xb3,0x2b,0x19,0x7e,0xe7,0x2b,0x2c,0x5e,0xe4,0x0, +0x3f,0x7a,0xe7,0x2b,0x2c,0x7e,0xb3,0x2b,0x19,0x12,0x64,0x2d,0x7c,0x7b,0x74,0x6, +0xac,0x7b,0x7e,0x24,0x0, 0x4, 0x12,0x15,0x29,0x7d,0x23,0x7d,0x3f,0x12,0x4f,0xeb, +0xad,0x32,0x7a,0x37,0x2b,0x26,0x12,0x45,0x76,0xc1,0x92,0x12,0x1f,0xed,0x30,0xd, +0x2, 0xc1,0x98,0x7c,0xbe,0x12,0x7b,0xbc,0x12,0x46,0xbd,0x80,0xf, 0x80,0x7, 0x12, +0x3e,0xb4,0xe4,0x12,0x3e,0xec,0x20,0x93,0xf6,0x12,0x3d,0x4f,0x30,0x18,0xf7,0x30, +0x17,0xf4,0xd2,0x4, 0x12,0x3d,0xa, 0xe4,0x12,0x13,0xde,0xb, 0xc0,0x12,0x78,0xd9, +0x12,0x7f,0xbb,0x7e,0xa3,0x38,0x8d,0x4c,0xaa,0x78,0x6, 0x74,0x1, 0x7a,0xb3,0x38, +0x8e,0x4c,0xaa,0x68,0xb, 0x7e,0xb3,0x37,0x2e,0x70,0x5, 0xe4,0x7a,0xb3,0x38,0x8d, +0x12,0xa9,0x0, 0x78,0x18,0x7e,0xb3,0x38,0x8d,0x60,0x12,0xe4,0x7a,0xb3,0x38,0x8d, +0x7a,0xb3,0x2a,0x20,0x7a,0xb3,0x2a,0x21,0x7e,0xd0,0x1, 0x80,0x1b,0x12,0xa9,0x0, +0x68,0x10,0x7e,0xb3,0x38,0x8d,0x70,0xa, 0x7e,0xd0,0x1, 0xe4,0x7a,0xb3,0x37,0x3, +0x80,0x6, 0xbc,0xfc,0x28,0x2, 0xc1,0xb, 0xe4,0x7a,0xb3,0x2b,0x23,0x7e,0x35,0x25, +0x7a,0x37,0x2b,0x2c,0xe5,0x24,0x7a,0xb3,0x2b,0x19,0x4c,0xdd,0x68,0x3, 0x12,0x1a, +0x6a,0xda,0x3b,0x22,0x74,0x81,0x7a,0xb3,0x38,0xfd,0x22,0x80,0x1d,0x12,0x3e,0xb4, +0x12,0x7b,0x3d,0x68,0x5, 0xc2,0x4, 0x12,0x3d,0xa, 0x7e,0xb3,0x34,0x3a,0xbe,0xb0, +0x2, 0x68,0x18,0x20,0x17,0x15,0xe4,0x12,0x3e,0xec,0x20,0x93,0xe0,0x12,0x3e,0xb4, +0xa9,0xd1,0xcd,0xa9,0xc5,0xea,0x74,0x2, 0x2, 0x3e,0xec,0x22,0x7c,0xab,0x7e,0xb3, +0x38,0xfd,0xb4,0x81,0x38,0x4c,0xaa,0x78,0x5, 0xa9,0xd0,0x87,0x80,0x29,0xbe,0xa0, +0x1, 0x78,0xf, 0xc2,0xaf,0xa9,0xd0,0xce,0xa9,0xc7,0xc9,0xa9,0xd1,0x87,0xd2,0xaf, +0x80,0x15,0xbe,0xa0,0x2, 0x78,0x16,0xc2,0xaf,0x20,0x93,0x9, 0xa9,0xd0,0xce,0xa9, +0xd7,0xc9,0xa9,0xd1,0x87,0xd2,0xaf,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe4,0x7a,0xb3, +0x38,0xfd,0x22,0x7e,0xb3,0x37,0x3, 0x14,0x68,0x5a,0x14,0x78,0x2, 0xe1,0xd0,0x14, +0x68,0x6a,0x24,0x3, 0x68,0x2, 0xe1,0xc8,0x12,0x3f,0xef,0x38,0x8, 0x30,0x10,0xf, +0x12,0x77,0xf5,0x68,0xa, 0x12,0xa9,0xb, 0xe4,0x7a,0xb3,0x38,0x8d,0x80,0x71,0x7e, +0xb3,0x36,0xe4,0x30,0xe0,0x6a,0x7e,0x73,0x36,0xe5,0xa, 0x27,0x7e,0x34,0x4, 0x0, +0xad,0x32,0x7e,0xb3,0x37,0x2e,0xb4,0x1, 0xb, 0x7e,0x34,0x62,0x7b,0x12,0xa6,0x9c, +0x2e,0x34,0x4, 0x0, 0xbe,0x37,0x38,0x8b,0x50,0x46,0x12,0x3f,0xd6,0xe4,0x7a,0xb3, +0x38,0x8f,0x80,0x3c,0x12,0x3f,0xef,0x28,0x32,0xe4,0x7a,0xb3,0x37,0x3, 0x7e,0xb3, +0x38,0x8d,0xb4,0x1, 0x3, 0x12,0x3f,0xdc,0xd2,0x17,0x80,0x1f,0x74,0xff,0x7a,0xb3, +0x36,0xdd,0x12,0xa9,0x6c,0x12,0x3d,0x23,0x12,0x19,0x6f,0xe4,0x7a,0xb3,0x37,0x3, +0x7a,0xb3,0x39,0x2, 0xd2,0x17,0x80,0x8, 0x12,0x3f,0xdc,0xe4,0x7a,0xb3,0x39,0x2, +0x12,0x7a,0xfb,0x2, 0x3d,0x7f,0x6d,0x33,0x7a,0x37,0x38,0x8b,0x74,0x1, 0x7a,0xb3, +0x37,0x3, 0x22,0xd2,0x4, 0x2, 0x3d,0xa, 0xe4,0x12,0x13,0xde,0x2, 0x13,0x96,0x7e, +0x73,0x2a,0x20,0xbe,0x70,0x0, 0x22,0x7e,0x34,0x0, 0x46,0x22,0xa2,0x3, 0xa9,0x97, +0xc1,0xa2,0x3, 0xa9,0x97,0xc2,0x22,0x12,0xa9,0x49,0x12,0xa9,0x40,0x6d,0x33,0x7a, +0x35,0xa, 0x12,0x40,0x5d,0x12,0x40,0x37,0x74,0x50,0x7a,0xb3,0x37,0xde,0x7e,0x24, +0x3, 0x20,0x12,0x40,0x30,0xe4,0x12,0xa8,0xc7,0x6d,0x33,0x7a,0x37,0x38,0xff,0x22, +0x7d,0x32,0x74,0xfa,0x2, 0x12,0xd0,0x7e,0x73,0x2b,0x81,0x7a,0x73,0x37,0xdd,0x22, +0xa2,0xa, 0xe4,0x33,0x7a,0xb3,0x37,0xd8,0x7e,0x73,0x37,0xdc,0xbe,0x73,0x2b,0x2e, +0x68,0xa, 0xe5,0xc, 0x70,0x6, 0x12,0x40,0x5d,0x12,0x40,0x37,0x22,0x7e,0x73,0x2b, +0x2e,0x7a,0x73,0x37,0xdc,0x7e,0x73,0x2b,0x3e,0x7a,0x73,0x37,0xcc,0x7e,0x73,0x2b, +0x3f,0x7a,0x73,0x37,0xcb,0x7e,0x73,0x2b,0x33,0x7a,0x73,0x37,0xcd,0x22,0xca,0xd8, +0xca,0x79,0x7c,0xdb,0x7e,0xa0,0x4, 0xbe,0xd0,0x80,0x78,0x18,0x7e,0xe0,0xff,0x6c, +0xff,0x80,0xb, 0x12,0x40,0xe6,0x38,0x4, 0x7c,0xeb,0x7c,0xdf,0xb, 0xf0,0xbc,0xaf, +0x38,0xf1,0x80,0x1a,0xbe,0xd0,0x81,0x78,0x15,0x6c,0xee,0x6c,0xff,0x80,0xb, 0x12, +0x40,0xe6,0x40,0x4, 0x7c,0xeb,0x7c,0xdf,0xb, 0xf0,0xbc,0xaf,0x38,0xf1,0xbc,0xad, +0x38,0x2, 0x6c,0xdd,0x7c,0xbd,0x12,0x4e,0xb, 0x12,0x40,0x75,0x12,0x44,0xf4,0x12, +0x41,0x2, 0x7e,0x73,0x2b,0x2e,0x7a,0x73,0x37,0xdc,0x12,0x40,0x37,0x7a,0xd3,0x37, +0xb4,0xda,0x79,0xda,0xd8,0x22,0x7e,0x90,0x5, 0xac,0x9f,0x9, 0xb4,0x26,0x33,0xbc, +0xbe,0x22,0x30,0x3, 0x3, 0x12,0x40,0x75,0xa2,0x4, 0x92,0x5, 0x12,0x41,0xc0,0x2, +0x41,0x2, 0x7e,0x73,0x2b,0x3f,0x7a,0x73,0x37,0xcb,0x22,0x74,0x40,0x7a,0xb3,0x2b, +0x3f,0x12,0x5d,0xed,0x50,0x9, 0xd2,0x3, 0xd2,0x4, 0x12,0x40,0xf2,0x80,0x1c,0x74, +0x1, 0x12,0x41,0x44,0x7e,0x43,0x37,0xc9,0x7e,0x50,0x64,0xac,0x45,0x12,0x77,0xfd, +0x7a,0xb3,0x2b,0x3e,0x7e,0xf, 0x33,0xf8,0x12,0x44,0x5d,0x12,0x41,0x2, 0x12,0x44, +0xf4,0x2, 0x40,0x75,0xca,0x3b,0x7c,0xdb,0xe4,0x7a,0xb3,0x2b,0x33,0x12,0x47,0xd2, +0x7e,0xc0,0xa, 0x12,0x45,0x4, 0x30,0xb, 0xfd,0x74,0x1, 0x12,0x0, 0xe, 0x7e,0x1f, +0x33,0xf8,0x12,0x78,0x79,0x7d,0x73,0xbe,0x74,0xff,0xff,0x78,0x9, 0x12,0x41,0xb4, +0x2e,0x34,0x0, 0x3, 0x80,0x18,0xbe,0x74,0x80,0x0, 0x28,0x7, 0x12,0x41,0xb4,0xb, +0x35,0x80,0xb, 0xbe,0x74,0x40,0x0, 0x28,0xc, 0x12,0x41,0xb4,0xb, 0x34,0x1b,0xa, +0x30,0x1b,0xc0,0x78,0xbe,0xbe,0xd0,0x1, 0x78,0x9, 0x7e,0x1f,0x33,0xf8,0x12,0x78, +0x1c,0x7d,0x73,0x7e,0x1f,0x33,0xe7,0x69,0x31,0x0, 0x1a,0x7a,0x73,0x2b,0x33,0x7d, +0x37,0xda,0x3b,0x22,0x7e,0xf, 0x33,0xe7,0x2e,0x14,0x0, 0x1a,0xb, 0xa, 0x30,0x22, +0xca,0x3b,0x7e,0x34,0xff,0xff,0x7a,0x35,0x34,0x7e,0xb3,0x37,0xbf,0xf5,0x29,0x7e, +0xb3,0x2a,0x8c,0xf5,0x2a,0x7e,0xb3,0x2a,0x8d,0xf5,0x2b,0x7e,0xb3,0x2a,0x8f,0xf5, +0x2c,0x7e,0xb3,0x2a,0x8e,0xf5,0x2d,0x7e,0x34,0x2e,0xe0,0x7a,0x35,0x2e,0x7e,0x18, +0x40,0x0, 0x7a,0x1d,0x30,0x12,0x44,0xfd,0x30,0xb, 0xfd,0x74,0x1, 0x12,0x0, 0xe, +0x7e,0x8, 0x34,0x0, 0x12,0x47,0xd9,0x6c,0xff,0x80,0x34,0x9f,0x77,0x6c,0xee,0x80, +0x19,0x7e,0x11,0x2b,0xac,0x1e,0x3e,0x4, 0x7e,0x30,0x2, 0xac,0x3f,0x2d,0x10,0x7e, +0x1d,0x30,0x2d,0x31,0xb, 0x1a,0x30,0x12,0x44,0x34,0xe5,0x2d,0xbc,0xbe,0x38,0xe1, +0xe5,0x2d,0x12,0x44,0x3b,0x74,0x2, 0xac,0xbf,0x59,0x35,0x34,0x0, 0xb, 0xf0,0xe5, +0x2c,0xbc,0xbf,0x38,0xc6,0x7e,0x34,0x10,0x0, 0x7e,0xa1,0x2b,0x74,0x2, 0xa4,0x59, +0x35,0x33,0xfe,0x6c,0xff,0x80,0x72,0x9f,0x77,0x6c,0xee,0x80,0x12,0x12,0x44,0xcd, +0x1e,0x34,0x1e,0x24,0x50,0x3, 0x4e,0x60,0x80,0x14,0x78,0xf4,0x12,0x44,0x34,0xe5, +0x29,0xbc,0xbe,0x38,0xe8,0xe5,0x29,0x12,0x44,0x3b,0x74,0x4, 0xac,0xbf,0x59,0x35, +0x3, 0x72,0xe5,0x29,0xbe,0xb1,0x2c,0x50,0x32,0x9f,0x77,0x7e,0xe1,0x29,0x80,0x12, +0x12,0x44,0xcd,0x1e,0x34,0x1e,0x24,0x50,0x3, 0x4e,0x60,0x80,0x14,0x78,0xf4,0x12, +0x44,0x34,0xe5,0x2c,0xbc,0xbe,0x38,0xe8,0xe5,0x29,0xa, 0x3b,0x6d,0x22,0xe5,0x2c, +0xa, 0x1b,0x6d,0x0, 0x9f,0x1, 0x12,0x44,0x3f,0x80,0x4, 0x7e,0x34,0x10,0x0, 0x74, +0x4, 0xac,0xbf,0x59,0x35,0x3, 0x74,0xb, 0xf0,0xe5,0x2d,0xbc,0xbf,0x38,0x88,0xe5, +0x2c,0xa, 0x1b,0x6d,0x0, 0x7e,0x18,0x0, 0x7a,0x12,0x15,0x77,0x6c,0xff,0x80,0x2e, +0x74,0x2, 0xac,0xbf,0x49,0x25,0x34,0x0, 0xa, 0x5f,0xad,0x53,0x7e,0x14,0x10,0x0, +0x9d,0x15,0xad,0x12,0x74,0xc, 0x1e,0x14,0x1e,0x4, 0x50,0x3, 0x4e,0x20,0x80,0x14, +0x78,0xf4,0x7d,0x21,0x74,0x2, 0xac,0xbf,0x59,0x25,0x34,0x0, 0xb, 0xf0,0xe5,0x2c, +0xbc,0xbf,0x38,0xcc,0xe5,0x2a,0xa, 0x1b,0x6d,0x0, 0x7e,0x18,0x0, 0x28,0x12,0x15, +0x77,0x6c,0xff,0x80,0x5c,0x74,0x4, 0xac,0xbf,0x49,0x25,0x3, 0x72,0xa, 0x1f,0xad, +0x13,0x7e,0xf4,0x10,0x0, 0x9d,0xf1,0xad,0xf2,0x74,0xc, 0x1e,0xf4,0x1e,0xe4,0x50, +0x4, 0x4e,0xf4,0x80,0x0, 0x14,0x78,0xf3,0x7d,0x2f,0x74,0x4, 0xac,0xbf,0x59,0x25, +0x3, 0x72,0xe5,0x29,0xbe,0xb1,0x2c,0x50,0x26,0x74,0x4, 0xac,0xbf,0x49,0x25,0x3, +0x74,0x2e,0x14,0x10,0x0, 0xad,0x12,0x74,0xc, 0x1e,0x14,0x1e,0x4, 0x50,0x3, 0x4e, +0x20,0x80,0x14,0x78,0xf4,0x7d,0x21,0x74,0x4, 0xac,0xbf,0x59,0x25,0x3, 0x74,0xb, +0xf0,0xe5,0x2a,0xbc,0xbf,0x38,0x9e,0x7e,0x73,0x37,0xc1,0xa, 0x37,0x6d,0x22,0x74, +0xc, 0x2f,0x11,0x14,0x78,0xfb,0x7e,0xf4,0x0, 0x64,0x7d,0x1f,0x12,0x15,0x75,0x7d, +0xe3,0x7a,0xe5,0x34,0x7e,0x73,0x37,0xc2,0xa, 0x37,0x6d,0x22,0x74,0xc, 0x2f,0x11, +0x14,0x78,0xfb,0x7d,0x1f,0x12,0x15,0x75,0x7d,0x63,0x6c,0xff,0x80,0x20,0x74,0x2, +0xac,0xbf,0x49,0x45,0x34,0x0, 0xbe,0x45,0x34,0x28,0x9, 0x7e,0x35,0x34,0x59,0x35, +0x34,0x0, 0x80,0x8, 0xbd,0x46,0x50,0x4, 0x59,0x65,0x34,0x0, 0xb, 0xf0,0xe5,0x2c, +0xbc,0xbf,0x38,0xda,0x6c,0xff,0x80,0x3a,0x74,0x4, 0xac,0xbf,0x49,0x45,0x3, 0x72, +0xbe,0x45,0x34,0x28,0x9, 0x7e,0x35,0x34,0x59,0x35,0x3, 0x72,0x80,0x8, 0xbd,0x46, +0x50,0x4, 0x59,0x65,0x3, 0x72,0x49,0x45,0x3, 0x74,0xbe,0x45,0x34,0x28,0x9, 0x7e, +0x35,0x34,0x59,0x35,0x3, 0x74,0x80,0x8, 0xbd,0x46,0x50,0x4, 0x59,0x65,0x3, 0x74, +0xb, 0xf0,0xe5,0x2a,0xbc,0xbf,0x38,0xc0,0x30,0x5, 0x6, 0x7e,0xd, 0x30,0x12,0x44, +0x5d,0xda,0x3b,0x22,0x6d,0x22,0x2f,0x71,0xb, 0xe0,0x22,0xa, 0x1b,0x6d,0x0, 0x7f, +0x17,0x12,0x15,0x77,0x7f,0x71,0x7e,0x25,0x2e,0x74,0xc, 0x7d,0x13,0x7d,0x32,0x6d, +0x22,0x60,0x5, 0x2f,0x11,0x14,0x78,0xfb,0xb, 0x14,0x2, 0x15,0x75,0x12,0x44,0x67, +0xb, 0x34,0x7a,0x73,0x2b,0x3f,0x22,0xca,0x79,0x7f,0x10,0x9f,0x0, 0x6c,0xaa,0xa, +0x4a,0x2e,0x44,0x60,0xac,0x12,0xa0,0xa8,0x7c,0x9b,0x7e,0xf3,0x2a,0x8d,0xac,0xf9, +0x7e,0xb3,0x2a,0x8f,0xa, 0xfb,0x2d,0xf7,0x7d,0xef,0x3e,0xe4,0x7f,0x61,0x2d,0xde, +0xb, 0x6a,0xd0,0x6d,0xcc,0x2f,0x6, 0xb, 0xa0,0xbe,0xa0,0x3, 0x78,0xd1,0xbe,0x8, +0x0, 0x0, 0x78,0x2, 0xb, 0xc, 0x7e,0x54,0x0, 0x3, 0x7f,0x10,0x7d,0x15,0x12,0x15, +0x75,0x7f,0x1, 0xb, 0xc, 0x7e,0x34,0xc4,0x0, 0x7e,0x24,0x0, 0x9, 0x12,0x15,0x77, +0xbe,0x34,0x0, 0xfa,0x28,0x4, 0x7e,0x34,0x0, 0xfa,0xda,0x79,0x22,0x7e,0x11,0x2b, +0xac,0x1f,0x3e,0x4, 0x7e,0x30,0x2, 0xac,0x3e,0x2d,0x10,0x7e,0x1d,0x30,0x2d,0x31, +0xb, 0x1a,0x20,0x7a,0x27,0x24,0xf2,0x74,0x2, 0xac,0xbe,0x49,0x35,0x34,0x0, 0xad, +0x23,0x74,0xc, 0x22,0x7e,0x73,0x2b,0x3e,0x7a,0x73,0x37,0xcc,0x22,0x7e,0x8, 0x2a, +0x8c,0x12,0xd, 0x72,0xe4,0x12,0x0, 0xe, 0x74,0x1, 0x7e,0x70,0x99,0x12,0x13,0x2c, +0x2, 0x0, 0x4e,0xb4,0x3, 0x5, 0x12,0x45,0x23,0x80,0x2, 0xe4,0x22,0x12,0x45,0x8, +0x74,0x1, 0x22,0x12,0x5f,0xa0,0xe4,0x12,0x0, 0xe, 0x7e,0x8, 0x2a,0x8c,0x2, 0xd, +0x72,0x12,0x67,0x2b,0x38,0x2, 0xe4,0x22,0x12,0x47,0xf1,0x49,0x55,0x34,0x3b,0xbe, +0xb0,0x2, 0x38,0x3, 0x2, 0x45,0x4a,0x2, 0x45,0x13,0x7e,0xd7,0x2b,0x2c,0xbe,0xb0, +0x1, 0x28,0x2, 0xe4,0x22,0x12,0x66,0xbc,0x12,0x45,0x76,0x7a,0xd7,0x2b,0x2c,0x7e, +0x73,0x2b,0x19,0xa, 0x37,0x3e,0x34,0x3e,0x34,0xe4,0x7e,0x50,0x1, 0x12,0x13,0x1, +0x12,0x46,0xbd,0x74,0x1, 0x22,0x7e,0x8, 0x2a,0x8c,0x2, 0x5, 0xb4,0xca,0x3b,0x7e, +0xe3,0x2a,0x93,0x7e,0xf3,0x2b,0x19,0x74,0x1, 0x7a,0xb3,0x2b,0x19,0x12,0x45,0x76, +0x12,0x47,0xe1,0x12,0x1b,0xae,0x7e,0x17,0x2b,0x1d,0x6d,0x0, 0x12,0x17,0x4e,0x7e, +0xd0,0x7, 0x12,0x1f,0xed,0x6c,0xcc,0x80,0x19,0x7e,0x34,0x0, 0x1, 0x7c,0xbd,0x60, +0x5, 0x3e,0x34,0x14,0x78,0xfb,0x7c,0x67,0x12,0x47,0x95,0x4c,0x76,0x7a,0x29,0x70, +0xb, 0xc0,0x12,0x47,0x7c,0xa, 0x3c,0xbd,0x32,0x48,0xde,0x12,0x46,0xac,0x30,0x18, +0xfd,0x12,0x47,0x9f,0x7e,0xb3,0x2a,0x92,0x7c,0x7e,0x12,0x47,0xb1,0x6c,0xcc,0x80, +0x29,0x74,0x2, 0xac,0xbc,0x49,0x35,0x6, 0xfc,0xbe,0x34,0x15,0x40,0x50,0x19,0x7e, +0x34,0x0, 0x1, 0x7c,0xbd,0x60,0x5, 0x3e,0x34,0x14,0x78,0xfb,0x7c,0xb7,0x64,0xff, +0x12,0x47,0x95,0x5c,0x7b,0x7a,0x29,0x70,0xb, 0xc0,0x12,0x47,0x7c,0xa, 0x3c,0xbd, +0x32,0x48,0xce,0x1b,0xd0,0xbe,0xd0,0x0, 0x58,0x88,0x12,0x46,0xfe,0x74,0x2, 0x12, +0x47,0xe9,0x12,0x46,0x34,0x74,0x2, 0x12,0x0, 0x1e,0x7a,0xf3,0x2b,0x19,0x12,0x45, +0x76,0xda,0x3b,0x22,0xca,0x79,0x7c,0xfb,0x7e,0x8, 0x24,0xf2,0x12,0x48,0xc6,0x7e, +0xa3,0x2a,0x92,0x7e,0x73,0x2a,0x93,0x6c,0xee,0x80,0x1d,0xa, 0x2e,0x9, 0x62,0x2a, +0xfb,0xa, 0x26,0x12,0x2f,0x8b,0x7c,0x6b,0xbe,0x60,0x1c,0x50,0x9, 0xa, 0x2e,0x12, +0x47,0x8b,0x19,0xb2,0x24,0xf2,0xb, 0xe0,0xbc,0x7e,0x38,0xdf,0x6c,0xee,0x80,0x1a, +0xa, 0x2e,0x9, 0x62,0x2a,0xd8,0xbe,0x60,0x23,0x50,0xd, 0xa, 0x1e,0xa, 0x27,0x2d, +0x21,0x12,0x47,0x8b,0x19,0xb2,0x25,0xe, 0xb, 0xe0,0xbc,0xae,0x38,0xe2,0x6c,0xee, +0x7e,0x30,0xe, 0xac,0x3e,0x2e,0x14,0x24,0xf2,0x6d,0x0, 0x7c,0xbf,0x7c,0x7e,0x12, +0x11,0xba,0xb, 0xe0,0xbe,0xe0,0x5, 0x40,0xe7,0xda,0x79,0x22,0x74,0x2, 0x12,0x0, +0x1e,0x7e,0xb3,0x2b,0x1b,0x12,0x46,0x34,0x74,0x2, 0x12,0x0, 0x1e,0x74,0x5, 0x7e, +0x70,0x9b,0x12,0x13,0x2c,0x12,0x46,0xcf,0x7e,0xb3,0x2b,0x1b,0x2, 0xe, 0x94,0x6c, +0xaa,0x80,0x22,0xa, 0x3a,0x9, 0x73,0x2a,0xfb,0x2e,0x34,0x16,0xe3,0x12,0x7b,0xcc, +0x7c,0x7b,0xa, 0x47,0x7e,0x50,0x2, 0xac,0x5a,0x7e,0xf, 0x33,0xdf,0x2d,0x12,0x79, +0x40,0x0, 0x48,0xb, 0xa0,0x7e,0x63,0x2a,0x93,0xbc,0x6a,0x38,0xd6,0x22,0xca,0xd8, +0xca,0x79,0x7e,0xf0,0xa, 0x74,0x1, 0x7a,0xb3,0x2b,0x19,0x12,0x1b,0xae,0x7c,0xe7, +0x80,0x5d,0x12,0x1f,0xed,0x12,0x46,0xac,0x30,0x18,0xfd,0x12,0x47,0x9f,0x12,0x47, +0xa9,0x6c,0xdd,0x80,0x3d,0x7e,0x50,0x2, 0xac,0x5d,0x49,0x32,0x6, 0xfc,0xbe,0x34, +0x14,0x78,0x50,0x14,0xa, 0x1d,0x2e,0x17,0x2b,0x1d,0x7e,0x19,0xb0,0xbe,0xb0,0x0, +0x28,0x1e,0x14,0x7a,0x19,0xb0,0x80,0x18,0xbe,0x34,0x19,0x28,0x28,0x10,0xa, 0x3d, +0x12,0x37,0xa4,0xbe,0xb0,0xff,0x68,0x8, 0x4, 0x7a,0x39,0xb0,0x80,0x2, 0x1b,0xe0, +0xb, 0xd0,0x12,0x47,0x7c,0xa, 0x3d,0xbd,0x32,0x48,0xba,0x4c,0xee,0x68,0x8, 0x7c, +0xaf,0x1b,0xf0,0x4c,0xaa,0x78,0x9b,0xda,0x79,0xda,0xd8,0x22,0x7e,0x73,0x2a,0x93, +0xa, 0x37,0x7e,0x53,0x2a,0x92,0xa, 0x25,0x2d,0x23,0x22,0x2e,0x27,0x2b,0x1d,0x7e, +0x29,0xb0,0xa, 0x26,0x22,0xa, 0x2c,0x2e,0x27,0x2b,0x1d,0x7e,0x29,0x70,0x22,0x74, +0x2, 0x12,0x0, 0x1e,0x7e,0x8, 0x6, 0xfc,0x22,0x7e,0xb3,0x2a,0x92,0x7e,0x73,0x2a, +0x93,0x12,0x10,0xee,0x74,0x2, 0x2, 0x0, 0x1e,0x7c,0x96,0x7c,0xa7,0x12,0x36,0xf, +0x7c,0xba,0x12,0x13,0xc7,0x74,0xa, 0x12,0x3c,0xc5,0x7c,0xb9,0x12,0x0, 0x1e,0x2, +0x45,0x7d,0x7e,0x8, 0x2a,0x8c,0x2, 0xd, 0x72,0x7e,0x34,0x0, 0x38,0xe4,0x2, 0x17, +0x4e,0x6d,0x33,0xe4,0x6c,0x55,0x2, 0x13,0x1, 0x12,0x0, 0x1e,0x7e,0xb3,0x2b,0x1b, +0x22,0x7e,0xa3,0x34,0x39,0x74,0x4, 0xa4,0x22,0xe5,0xd, 0x60,0x52,0xe5,0xd, 0x30, +0xe0,0x6, 0x53,0xd, 0xfe,0x12,0x45,0x76,0xe5,0xd, 0x30,0xe1,0x14,0x53,0xd, 0xfd, +0x7e,0xb3,0x37,0xee,0x70,0x4, 0x74,0x1, 0x80,0x1, 0xe4,0x12,0x47,0xe9,0x12,0x48, +0x50,0xe5,0xd, 0x30,0xe2,0x29,0x53,0xd, 0xfb,0xe4,0x7a,0xb3,0x37,0xef,0x7e,0xb3, +0x37,0xee,0x70,0xa, 0x74,0x1, 0x12,0x0, 0x1e,0x12,0x37,0xca,0x80,0x7, 0xe4,0x12, +0x0, 0x1e,0x12,0x37,0xac,0x12,0x36,0x6, 0x7e,0xb3,0x2b,0x1b,0x2, 0x46,0x34,0x22, +0xca,0x79,0x7c,0xfb,0x7e,0x8, 0x1f,0x34,0x12,0x48,0xc6,0x7e,0xa3,0x2a,0x92,0x7e, +0x63,0x2a,0x93,0x6c,0xee,0x80,0x1e,0xa, 0x2e,0x9, 0x72,0x2a,0xfb,0xbe,0x70,0x1c, +0x50,0x11,0xa, 0x27,0x12,0x2f,0x8b,0x7c,0x7b,0x7e,0xb3,0x2b,0x1a,0xa, 0x27,0x19, +0xb2,0x1f,0x34,0xb, 0xe0,0xbc,0x6e,0x38,0xde,0x6c,0xee,0x80,0x17,0xa, 0x3e,0x9, +0x73,0x2a,0xd8,0xbe,0x70,0x23,0x50,0xa, 0x7e,0x63,0x2b,0x1a,0xa, 0x27,0x19,0x62, +0x1f,0x50,0xb, 0xe0,0xbc,0xae,0x38,0xe5,0x6c,0xee,0x7e,0x30,0xe, 0xac,0x3e,0x2e, +0x14,0x1f,0x34,0x6d,0x0, 0x7c,0xbf,0x7c,0x7e,0x12,0x11,0xf8,0xb, 0xe0,0xbe,0xe0, +0x5, 0x40,0xe7,0xda,0x79,0x22,0x7e,0x34,0x0, 0x46,0x74,0x3f,0x2, 0x17,0x4e,0xca, +0xd8,0xca,0x79,0x7e,0x73,0x2a,0x8d,0x7e,0xf3,0x2a,0x8c,0xac,0xf7,0x7d,0x37,0x3e, +0x34,0x7e,0x8, 0x1f,0x34,0xe4,0x12,0x17,0x4e,0x7e,0xb3,0x37,0xc5,0xb4,0x1, 0x64, +0x7e,0x73,0x37,0xc6,0xbe,0x70,0x0, 0x28,0x5b,0x6c,0xdd,0x80,0x3c,0x12,0x1f,0xed, +0x12,0x1a,0xaf,0x6d,0x33,0x80,0x28,0x7e,0x35,0x24,0x3e,0x34,0x49,0x33,0xd, 0xc8, +0x12,0x17,0x80,0x7a,0x35,0x26,0x7e,0x35,0x24,0x7d,0x13,0x3e,0x14,0x49,0x21,0x1f, +0x34,0xbe,0x25,0x26,0x58,0x7, 0x7e,0x25,0x26,0x59,0x21,0x1f,0x34,0xb, 0x34,0x7a, +0x35,0x24,0xbe,0x75,0x24,0x38,0xd0,0xb, 0xd0,0x7e,0x73,0x37,0xc6,0xbc,0x7d,0x38, +0xbc,0x7d,0x37,0x3e,0x34,0xca,0x39,0x7e,0x18,0x1f,0x34,0x7e,0x8, 0xd, 0xc8,0x12, +0x17,0x29,0x1b,0xfd,0xda,0x79,0xda,0xd8,0x22,0x7e,0x8, 0x38,0x1, 0x12,0x49,0x8d, +0x7e,0x8, 0x38,0x9, 0x12,0x49,0x8d,0x12,0x49,0xa9,0x12,0x49,0xa2,0x2, 0x49,0x70, +0x7e,0x37,0x38,0x1, 0xbe,0x34,0x0, 0x0, 0x28,0x12,0x7e,0x73,0x39,0x2, 0xbe,0x70, +0x5, 0x50,0x9, 0x7e,0xb3,0x37,0x2e,0x70,0x3, 0x12,0x3f,0xd6,0x22,0xb, 0xa, 0x30, +0xe5,0x60,0xa, 0x2b,0xbd,0x32,0x28,0x4, 0x9d,0x32,0x80,0x2, 0x6d,0x33,0x1b,0xa, +0x30,0x22,0x7e,0x8, 0x38,0xe2,0x2, 0x49,0x8d,0x7e,0x8, 0x2b,0xd6,0x2, 0x49,0x8d, +0x7e,0x73,0x28,0x93,0x7a,0x73,0x28,0x94,0x7e,0x73,0x2a,0x20,0x7a,0x73,0x2a,0x21, +0xe4,0x7a,0xb3,0x2a,0x24,0x22,0x7e,0x37,0x38,0xc8,0xb, 0x34,0x7a,0x37,0x38,0xc8, +0x7e,0x37,0x38,0xca,0xbe,0x37,0x38,0xc8,0x28,0x3, 0x2, 0x49,0xe1,0x22,0x2, 0x49, +0xc6,0xe5,0x9a,0x60,0x5, 0xd2,0x9c,0xa9,0xd6,0xdf,0x22,0xca,0x7b,0xca,0x6b,0xca, +0x5b,0xca,0x4b,0xca,0x2b,0xca,0x1b,0xca,0xb, 0xc0,0xd0,0xc0,0x83,0xc0,0x82,0x12, +0x49,0xde,0xd0,0x82,0xd0,0x83,0xd0,0xd0,0xda,0xb, 0xda,0x1b,0xda,0x2b,0xda,0x4b, +0xda,0x5b,0xda,0x6b,0xda,0x7b,0x32,0xe4,0x12,0x4c,0x75,0x12,0x9e,0xb5,0x12,0x1f, +0xed,0x12,0x4f,0xdb,0x12,0x3b,0x60,0x12,0x9d,0xf5,0x12,0x9e,0xcc,0x12,0x0, 0xa, +0x12,0x9e,0xd8,0x12,0x4c,0x0, 0x12,0x9e,0xe8,0xd2,0xaf,0x12,0x9e,0x47,0x12,0x4a, +0x65,0x12,0x3b,0xb1,0x12,0x4c,0xa6,0x7e,0x8, 0x38,0xcc,0x12,0x4c,0x4f,0x90,0x60, +0x50,0xe4,0x93,0xca,0xb8,0x90,0x60,0x51,0xe4,0x93,0x7c,0x7b,0x7e,0x24,0xff,0xff, +0xda,0xb8,0x2, 0x12,0x34,0xd2,0xc8,0x43,0xed,0xf, 0xc2,0xea,0x75,0xb3,0x13,0xa9, +0xd1,0xb4,0xa9,0xc0,0xb4,0x12,0x4b,0xf0,0xe4,0x12,0x4a,0x88,0x2, 0x4a,0x7f,0xa9, +0xc5,0xca,0xe4,0x7a,0xb3,0x39,0xc, 0x22,0xca,0xf8,0x7c,0xfb,0x74,0x2, 0x12,0x4b, +0x7, 0x4c,0xff,0x78,0x5, 0x5e,0x70,0xdf,0x80,0x3, 0x4e,0x70,0x20,0x74,0x2, 0x12, +0x4a,0xa9,0xda,0xf8,0x22,0x74,0x6, 0x7d,0x30,0x7d,0x23,0x7c,0x6b,0xa, 0x14,0x7c, +0x73,0x7d,0x52,0x7c,0xab,0x7e,0xb3,0x39,0xc, 0xb4,0xa5,0x3c,0x12,0x4b,0x9b,0x75, +0xb5,0x1, 0xa9,0x36,0xb3,0xfc,0x12,0x4b,0x0, 0xa9,0x36,0xb3,0xfc,0x12,0x4b,0x0, +0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0x7a,0x61,0xb5,0xa9,0x36,0xb3,0xfc,0xa9,0xc6, +0xb3,0x7a,0x71,0xb5,0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0x7a,0xa1,0xb5,0xa9,0x36, +0xb3,0xfc,0xa9,0xc6,0xb3,0xa9,0xd2,0xb4,0x22,0x74,0x4, 0x7d,0x30,0x2, 0x4a,0xa9, +0xa9,0xc6,0xb3,0x75,0xb5,0x0, 0x22,0x7c,0x6b,0x6c,0x77,0x6c,0xaa,0x7e,0xb3,0x39, +0xc, 0xb4,0xa5,0x46,0x12,0x4b,0x9b,0x75,0xb5,0x5, 0xa9,0x36,0xb3,0xfc,0x12,0x4b, +0x0, 0xa9,0x36,0xb3,0xfc,0x12,0x4b,0x0, 0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0x7a, +0x61,0xb5,0xa9,0x36,0xb3,0xfc,0x12,0x4b,0x0, 0xa9,0x36,0xb3,0xfc,0x12,0x4b,0x0, +0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0x7e,0x71,0xb5,0x75,0xb5,0x0, 0xa9,0x36,0xb3, +0xfc,0xa9,0xc6,0xb3,0x7e,0xa1,0xb5,0xa9,0xd2,0xb4,0x7c,0x47,0x6c,0x55,0xa, 0x3a, +0x4d,0x32,0x22,0x7d,0x42,0x7f,0x60,0x7d,0x3, 0x12,0x4b,0xf0,0x74,0x2, 0x12,0x4b, +0x7, 0x7d,0xf3,0x4e,0xf4,0x0, 0x1, 0x4e,0xf4,0x0, 0xa, 0x12,0x4b,0x94,0x7a,0x45, +0x36,0x7d,0x30,0x6d,0x22,0x7f,0x6, 0x12,0x4b,0xac,0x5e,0xf4,0xff,0xfd,0x12,0x4b, +0x94,0x2, 0x4a,0x7f,0x74,0x2, 0x7d,0x3f,0x2, 0x4a,0xa9,0xa9,0xc2,0xb4,0xa9,0xc6, +0xb3,0x22,0x74,0x6, 0x12,0x4b,0x7, 0x7d,0x3, 0x6c,0x11,0x22,0x12,0x4b,0xba,0x7e, +0x35,0x36,0x12,0x9f,0x49,0xa9,0xd2,0xb4,0xd3,0x22,0x7d,0x52,0xf5,0x3a,0x7c,0xb6, +0x7c,0xa5,0xa, 0x44,0xf5,0x39,0x7f,0x21,0xf5,0x38,0xa9,0xc2,0xb4,0x74,0xb, 0x12, +0x4b,0xe5,0xe5,0x3a,0x12,0x4b,0xe5,0xe5,0x39,0x12,0x4b,0xe5,0xe5,0x38,0x12,0x4b, +0xe5,0xe4,0x2, 0x4b,0xe5,0xf5,0xb5,0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0xd3,0x22, +0xa9,0xd5,0xca,0xa9,0xd1,0xea,0xa9,0xc1,0xea,0x74,0xa5,0x7a,0xb3,0x39,0xc, 0x22, +0xe4,0x7a,0xb3,0x37,0xaa,0x7e,0x8, 0x33,0x9, 0x12,0x4f,0xf4,0x7e,0x8, 0x33,0x47, +0x7e,0x34,0x0, 0x3e,0x12,0x17,0x4e,0x7e,0x18,0x33,0x9, 0x7a,0x1d,0x14,0x12,0x4c, +0x31,0x2, 0x4c,0x24,0x75,0x18,0x0, 0x75,0x1a,0x0, 0x7e,0xb3,0x37,0xaa,0xf5,0x91, +0x22,0x2, 0x4c,0x34,0x90,0x60,0x0, 0xe4,0x93,0x54,0xfe,0x75,0x91,0x0, 0xc2,0x90, +0xc2,0x91,0xc2,0xc9,0x54,0xfe,0xf5,0x92,0xd2,0xe8,0xc2,0xc0,0xd2,0xad,0x22,0xd2, +0xc9,0x75,0xf2,0x30,0x75,0xf3,0x80,0x75,0xf4,0xc, 0x75,0xf5,0x1, 0x6c,0xaa,0xe5, +0xf5,0x54,0x80,0xb4,0x80,0xf9,0xe5,0xf6,0x12,0x7f,0x86,0xb, 0xa0,0xbe,0xa0,0xd, +0x40,0xed,0xc2,0xc9,0x22,0xa9,0xc4,0xca,0xa9,0xc5,0xca,0xbe,0xb0,0x8, 0x50,0x3, +0x12,0x7b,0x4e,0xa9,0xd0,0xce,0xa9,0xc0,0xc9,0xd2,0x5, 0x12,0x3d,0x1, 0xa9,0xc2, +0xea,0x75,0xc1,0x6, 0x75,0xc2,0xc, 0xd2,0x3, 0x12,0x3f,0xfc,0xa9,0xc1,0xc4,0xa9, +0xd2,0xc4,0xa9,0xc2,0xe1,0x22,0xca,0xf8,0xa2,0xaf,0xe4,0x33,0x7c,0xfb,0xd2,0x3, +0x12,0x4f,0xe2,0xa9,0xd0,0xcb,0xc2,0xaf,0xa9,0xd0,0x9e,0x75,0x9d,0x0, 0xa9,0xd0, +0x9e,0x75,0x9c,0x20,0xa9,0xd0,0x9e,0xa9,0xd4,0x9e,0xa9,0xd0,0xcd,0x74,0x41,0x12, +0x3c,0xc5,0xa9,0xd0,0x9e,0xa9,0xd7,0x9e,0x2e,0xf0,0xff,0x92,0xaf,0xda,0xf8,0x22, +0x7e,0x23,0x2b,0x2e,0x7e,0x33,0x37,0xdb,0xac,0x23,0x2e,0x14,0x1, 0xf4,0xbe,0x14, +0x0, 0xa, 0x50,0x4, 0x7e,0x14,0x0, 0xa, 0x7e,0x63,0x2b,0x2f,0xbe,0x14,0xf, 0x3c, +0x40,0x4, 0x7e,0x14,0xf, 0x3c,0xbe,0x14,0x7, 0x8, 0x40,0x3, 0xe4,0x80,0x2, 0x74, +0x1, 0x7a,0xb3,0x2b,0x2f,0x7e,0x73,0x2b,0x2f,0xbc,0x76,0x68,0x2, 0xd2,0xc, 0x7e, +0x24,0x1, 0xf4,0x7d,0x31,0x8d,0x32,0x7c,0x17,0xbe,0x10,0x7, 0x28,0x3, 0x7e,0x10, +0x7, 0x7e,0x1f,0x33,0xdf,0x69,0x51,0x0, 0x86,0x54,0x1f,0xa, 0x1, 0x3e,0x4, 0x3e, +0x4, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x2d,0x5, 0x79,0x1, 0x0, 0x86,0x6d,0x0, 0x7e, +0x34,0xb8,0x0, 0x7e,0x24,0x0, 0xb, 0x2, 0x15,0xc8,0x7e,0xa3,0x0, 0x61,0xbe,0xa0, +0xff,0x68,0x48,0xbe,0xa3,0x3, 0xfe,0x68,0x42,0x74,0x5, 0xa4,0x12,0x4f,0x7b,0x12, +0x4d,0xac,0x12,0x4f,0x72,0x12,0x4d,0xac,0x12,0x4f,0x69,0x12,0x5d,0xed,0x50,0x9, +0x7e,0xb3,0x0, 0x61,0x12,0x4f,0xfd,0x80,0x6, 0x12,0x4d,0xac,0x12,0x4f,0x60,0x12, +0x4d,0xb8,0x12,0x4f,0x59,0x7e,0x73,0x2b,0x33,0xa, 0x37,0x7e,0xf, 0x33,0xe7,0x79, +0x30,0x0, 0x1a,0x7e,0x73,0x0, 0x61,0x7a,0x73,0x3, 0xfe,0x22,0x7e,0xa3,0x0, 0x61, +0x74,0x5, 0xa4,0x22,0x7a,0xb3,0x2b,0x2e,0x12,0x4c,0xe0,0x7a,0x37,0x2b,0x3a,0x22, +0x12,0x4d,0xb4,0x30,0xc, 0xc, 0xc2,0xc, 0x12,0x98,0xe2,0x30,0x3, 0x4, 0xe4,0x12, +0xa, 0x66,0x30,0x3, 0x9, 0x12,0x98,0x95,0x12,0x97,0xf3,0x2, 0x4f,0x84,0x22,0x7e, +0xb, 0x70,0x7a,0x73,0x2b,0x2e,0x29,0x70,0x0, 0x4, 0x7a,0x73,0x2b,0x81,0x29,0x70, +0x0, 0x1, 0x7a,0x73,0x2b,0x33,0x29,0x70,0x0, 0x3, 0x7a,0x73,0x2b,0x3f,0x12,0x4d, +0xb8,0x12,0x4f,0x59,0xd2,0x3, 0xc2,0x4, 0x2, 0x40,0xf2,0xca,0xf8,0x7c,0xfb,0x74, +0x5, 0xac,0xbf,0x12,0x4f,0x7b,0x12,0x4f,0x72,0x12,0x4f,0x60,0x12,0x4f,0x69,0x7a, +0xf3,0x0, 0x61,0x7c,0xbf,0x12,0x4f,0xfd,0x12,0x4d,0xb8,0x74,0x5, 0xac,0xbf,0x9, +0xb5,0x26,0x37,0x12,0x98,0xc7,0x12,0x19,0x57,0xe4,0x7a,0xb3,0x16,0x91,0x7a,0xb3, +0x36,0xd8,0x7a,0xb3,0x16,0x92,0xda,0xf8,0x22,0x7e,0xb3,0x36,0x62,0x60,0x6, 0x14, +0x7a,0xb3,0x36,0x62,0x22,0x12,0x4f,0x9f,0x7e,0xb3,0x36,0xe9,0x70,0xe, 0x7e,0xb3, +0x39,0xb, 0xb4,0x1, 0x7, 0xe4,0x12,0x4e,0xb, 0x12,0x97,0x13,0x12,0x4f,0x1d,0x12, +0x95,0x6e,0x7e,0xa3,0x36,0xe9,0x7a,0xa3,0x39,0xb, 0xbe,0xb0,0xff,0x68,0x3, 0x2, +0x4e,0xb, 0x22,0xca,0xf8,0x6c,0xff,0x7e,0x73,0x0, 0x61,0xbc,0x7f,0x68,0x2a,0x7e, +0x30,0x5, 0xac,0x3f,0x12,0x4e,0xf9,0xca,0x39,0x7e,0x30,0x38,0xac,0x3f,0x12,0x4f, +0x12,0x12,0x17,0x29,0x1b,0xfd,0x7e,0x34,0x0, 0x8c,0xca,0x39,0x7e,0x30,0x8c,0xac, +0x3f,0x12,0x4f,0x7, 0x12,0x17,0x29,0x1b,0xfd,0xb, 0xf0,0xbe,0xf0,0x4, 0x40,0xc7, +0x7e,0x23,0x0, 0x61,0x7e,0x30,0x5, 0xac,0x23,0x12,0x4e,0xf9,0xca,0x39,0x7e,0x23, +0x0, 0x61,0x7e,0x30,0x38,0xac,0x23,0x12,0x4f,0x12,0x12,0x17,0x29,0x1b,0xfd,0x7e, +0x34,0x0, 0x8c,0xca,0x39,0x7e,0x23,0x0, 0x61,0x7e,0x30,0x8c,0xac,0x23,0x12,0x4f, +0x7, 0x12,0x17,0x29,0x1b,0xfd,0xda,0xf8,0x22,0x2e,0x14,0x26,0x33,0x6d,0x0, 0x12, +0x4d,0xdf,0x7e,0x34,0x0, 0x38,0x22,0x2e,0x14,0x1, 0x42,0x6d,0x0, 0x7e,0x18,0x3, +0x72,0x22,0x2e,0x14,0x0, 0x62,0x6d,0x0, 0x7e,0x18,0x34,0x0, 0x22,0x12,0x94,0xdf, +0x2, 0x4f,0x23,0x7e,0xb3,0x36,0x65,0x60,0xf, 0x74,0x1, 0x7a,0xb3,0x36,0x6d,0x7e, +0xb3,0x36,0xdb,0x70,0x3, 0x12,0x97,0x2a,0x7e,0xb3,0x36,0x6d,0xb4,0x1, 0xc, 0x74, +0x3, 0x7a,0xb3,0x34,0xac,0x7e,0x34,0x14,0x0, 0x80,0x9, 0xe4,0x7a,0xb3,0x34,0xac, +0x7e,0x34,0xa, 0x0, 0x7a,0x37,0x2a,0x81,0x22,0x7e,0x8, 0x2a,0x8c,0x2, 0x3, 0x8b, +0x9, 0x75,0x26,0x35,0x7a,0x73,0x2b,0x3e,0x22,0x9, 0x75,0x26,0x36,0x7a,0x73,0x2b, +0x3f,0x22,0x9, 0x75,0x26,0x34,0x7a,0x73,0x2b,0x33,0x22,0x9, 0x75,0x26,0x33,0x7a, +0x73,0x2b,0x2e,0x22,0x12,0x4f,0x9f,0x6d,0x33,0x7a,0x37,0x36,0xd9,0x6c,0xaa,0x12, +0xa8,0xd0,0xb, 0xa0,0xbe,0xa0,0x4, 0x40,0xf6,0xe4,0x7a,0xb3,0x36,0x6e,0x22,0x7e, +0x37,0x33,0xf1,0x12,0x4f,0xeb,0x7a,0x37,0x36,0xd9,0x6c,0xaa,0x80,0x24,0xbe,0xa0, +0x4, 0x50,0x27,0xa, 0x3a,0x9, 0x63,0x36,0x72,0xbe,0x60,0x4, 0x50,0x12,0x7e,0x50, +0x2, 0xac,0x5a,0x49,0x42,0x33,0xeb,0x7e,0x70,0xc, 0xac,0x67,0x59,0x43,0x36,0x7c, +0xb, 0xa0,0x7e,0xb3,0x36,0x6f,0xbc,0xba,0x38,0xd4,0x22,0xa9,0xd0,0x99,0xa9,0xc6, +0xdf,0x22,0xa9,0xd0,0xce,0xa2,0x3, 0xa9,0x95,0xc9,0x22,0x1e,0x34,0x1e,0x34,0x1e, +0x34,0x1e,0x34,0x22,0x7e,0x34,0x0, 0x3e,0x74,0xff,0x2, 0x17,0x4e,0xca,0xf8,0x7c, +0xfb,0x7e,0x34,0x0, 0x38,0xca,0x39,0xac,0x7f,0x2e,0x34,0x0, 0x62,0x6d,0x22,0x7e, +0x8, 0x34,0x0, 0x12,0x17,0x29,0x1b,0xfd,0x7e,0x34,0x0, 0x8c,0xca,0x39,0xac,0x7f, +0x2e,0x34,0x1, 0x42,0x6d,0x22,0x7e,0x8, 0x3, 0x72,0x12,0x17,0x29,0x1b,0xfd,0xda, +0xf8,0x22,0x7e,0x34,0x0, 0x4, 0xca,0x39,0x7e,0x34,0x61,0x2d,0x7e,0x24,0x0, 0xff, +0x7e,0x8, 0x2b,0x8f,0x12,0x17,0x29,0x1b,0xfd,0x7e,0x34,0x2a,0x2d,0x7a,0x37,0x2b, +0x95,0xe4,0x7a,0xb3,0x2b,0x93,0x7a,0xb3,0x2b,0x94,0x7e,0x34,0x0, 0x4, 0xca,0x39, +0x12,0x57,0x9c,0x7e,0x8, 0x25,0xee,0x12,0x17,0x29,0x1b,0xfd,0x7e,0x34,0x2b,0x97, +0x7a,0x37,0x25,0xf4,0xe4,0x7a,0xb3,0x25,0xf2,0x74,0x1, 0x7a,0xb3,0x25,0xf3,0x22, +0xca,0xd8,0xca,0x79,0x90,0x60,0x50,0xe4,0x93,0x7c,0xdb,0x90,0x60,0x51,0xe4,0x93, +0x7c,0xeb,0x7e,0x73,0x2a,0x93,0xbc,0x7e,0x28,0x4, 0x7c,0xf7,0x80,0x2, 0x7c,0xfe, +0x7a,0xd3,0x2a,0x8c,0x7a,0xe3,0x2a,0x8d,0x7a,0xd3,0x2a,0x90,0x7a,0xe3,0x2a,0x91, +0x7a,0xd3,0x2a,0x92,0x7a,0xe3,0x2a,0x93,0x74,0x1, 0x7a,0xb3,0x2a,0x96,0x7a,0xd3, +0x2a,0x8e,0xa, 0x3e,0x1b,0x34,0x7a,0x73,0x2a,0x8f,0x90,0x60,0x91,0xe4,0x93,0x7a, +0xb3,0x2a,0x97,0x90,0x60,0x94,0xe4,0x93,0x7a,0xb3,0x2a,0x98,0xa, 0x3d,0xca,0x39, +0x7e,0x34,0x60,0x52,0x7e,0x24,0x0, 0xff,0x7e,0x8, 0x2a,0x99,0x12,0x17,0x29,0x1b, +0xfd,0xa, 0x3f,0xca,0x39,0x7e,0x34,0x60,0x75,0x7e,0x24,0x0, 0xff,0x7e,0x8, 0x2a, +0xbc,0x12,0x17,0x29,0x1b,0xfd,0x7e,0x34,0x0, 0x23,0xca,0x39,0x7e,0x34,0x60,0xd8, +0x7e,0x24,0x0, 0xff,0x7e,0x8, 0x2b,0x40,0x12,0x17,0x29,0x1b,0xfd,0x12,0x52,0x23, +0x12,0x5a,0x8c,0x7a,0xd3,0x2a,0x94,0x7a,0xe3,0x2a,0x95,0x12,0x50,0x32,0x74,0x1, +0x12,0x36,0xf, 0xe4,0x7a,0xb3,0x2b,0x20,0x7a,0xb3,0x2b,0x21,0x12,0x52,0xb9,0x7a, +0x37,0x2b,0x2c,0x74,0x3, 0x7a,0xb3,0x2b,0x22,0xe4,0x7a,0xb3,0x2b,0x23,0x74,0x2, +0x7a,0xb3,0x2b,0x24,0x7e,0x34,0x1, 0x18,0x7a,0x37,0x2b,0x26,0x74,0x4, 0x7a,0xb3, +0x2b,0x25,0x7e,0x34,0x0, 0xf, 0x7a,0x37,0x2b,0x28,0x7e,0x34,0x20,0x5f,0x7a,0x37, +0x2b,0x2a,0x74,0x20,0x7a,0xb3,0x2b,0x81,0x74,0x1, 0x7a,0xb3,0x2b,0x2f,0x74,0x20, +0x7a,0xb3,0x2b,0x30,0x74,0x4, 0x7a,0xb3,0x2b,0x32,0x74,0x38,0x12,0x4d,0xb4,0xe4, +0x7a,0xb3,0x2b,0x3c,0x7a,0xb3,0x2b,0x3d,0x7e,0x34,0x1, 0xf4,0x7a,0x37,0x2b,0x38, +0x74,0x1, 0x7a,0xb3,0x2b,0x31,0x74,0x60,0x7a,0xb3,0x2b,0x3f,0x74,0x66,0x7a,0xb3, +0x2b,0x3e,0x6d,0x33,0x7a,0x37,0x2b,0x34,0x7a,0x37,0x2b,0x36,0x74,0x2, 0x7a,0xb3, +0x2b,0x33,0x7e,0x34,0x0, 0x30,0x7a,0x37,0x2b,0x89,0x74,0x4, 0x7a,0xb3,0x2b,0x86, +0x7e,0x34,0x0, 0x5, 0x7a,0x37,0x2b,0x87,0xe4,0x7a,0xb3,0x2b,0x85,0x7e,0x34,0x4, +0x6d,0x7a,0x37,0x2b,0x8b,0x74,0x1, 0x7a,0xb3,0x2b,0x82,0x74,0x5, 0x7a,0xb3,0x2b, +0x83,0xe4,0x7a,0xb3,0x2b,0x84,0x74,0x1, 0x7a,0xb3,0x2b,0x7f,0xe4,0x7a,0xb3,0x2b, +0x80,0x7e,0x34,0x16,0xcb,0x7a,0x37,0x2b,0x8d,0xa, 0x3e,0xca,0x39,0x7e,0x34,0x60, +0xfb,0x7e,0x24,0x0, 0xff,0x7e,0x8, 0x2b,0x63,0x12,0x17,0x29,0x1b,0xfd,0xda,0x79, +0xda,0xd8,0x22,0x12,0x57,0x93,0x12,0x52,0x85,0x90,0x60,0x50,0xe4,0x93,0xa, 0x3b, +0x7d,0x13,0x2e,0x14,0x2a,0x99,0x6d,0x0, 0x9, 0xb3,0x2a,0x98,0x12,0x52,0x6c,0xa, +0x3b,0x7d,0x13,0x2e,0x14,0x2b,0x40,0x6d,0x0, 0x9, 0xb3,0x2b,0x3f,0x12,0x52,0x6c, +0xa, 0x1b,0x2e,0x14,0x2a,0x9b,0x12,0x52,0x79,0xe5,0x25,0x12,0x52,0x70,0xa, 0x1b, +0x2e,0x14,0x2b,0x42,0x12,0x52,0x79,0xe5,0x24,0x2, 0x17,0x4e,0x7e,0x34,0x0, 0x2, +0x12,0x17,0x4e,0x90,0x60,0x50,0xe4,0x93,0x22,0x6d,0x0, 0x90,0x60,0x91,0xe4,0x93, +0xa, 0x3b,0x1b,0x35,0x22,0x6c,0xaa,0x6c,0x99,0x80,0xc, 0xa, 0xf9,0x9, 0xbf,0x2a, +0x99,0xbc,0xba,0x68,0x7, 0xb, 0x90,0x12,0x52,0xb1,0x38,0xef,0x12,0x52,0xb1,0x68, +0x7, 0xb, 0xa0,0xbe,0xa0,0x23,0x40,0xdf,0x7a,0xb, 0xa0,0x74,0x6e,0x7a,0x1b,0xb0, +0x22,0x90,0x60,0x50,0xe4,0x93,0xbc,0xb9,0x22,0x6d,0x33,0x6c,0xaa,0x80,0x14,0xa, +0x2a,0x9, 0xb2,0x2a,0xfb,0x54,0x1, 0x78,0x5, 0x4e,0x70,0x1, 0x80,0x3, 0x4e,0x70, +0x10,0xb, 0xa0,0x7e,0x53,0x2a,0x93,0xbc,0x5a,0x38,0xe4,0x6c,0xaa,0x80,0x1f,0xa, +0x2a,0x9, 0xb2,0x2a,0xd8,0xbe,0xb0,0xd, 0x38,0x5, 0x4e,0x70,0xc0,0x80,0xd, 0xbe, +0xb0,0x1b,0x38,0x5, 0x4e,0x60,0x8, 0x80,0x3, 0x4e,0x60,0x50,0xb, 0xa0,0x12,0x53, +0x4, 0x38,0xdc,0x22,0x7e,0xb3,0x2a,0x92,0xbc,0xba,0x22,0xca,0x3b,0x7e,0xb4,0x7f, +0xff,0x7d,0xab,0x7d,0x8b,0x6d,0x22,0x7d,0x32,0x7d,0x9b,0x75,0x24,0x0, 0x6c,0x99, +0x7e,0x78,0x4, 0xfc,0x7e,0x8, 0x5, 0x7a,0xe4,0x7a,0xb3,0x8, 0x8, 0x7a,0xb3,0x8, +0x9, 0x7a,0xb3,0x26,0xf6,0x7a,0xb3,0x26,0xf8,0x7a,0xb3,0x26,0xf7,0x7a,0xb3,0x26, +0xf9,0x6c,0xaa,0x80,0x5f,0x12,0x54,0x80,0xb, 0x6a,0xc0,0xbd,0xca,0x58,0x2, 0x7d, +0xac,0xbd,0xc3,0x8, 0x2, 0x7d,0x3c,0x2d,0x71,0x7d,0x60,0xb, 0x3a,0xd0,0xbd,0xd9, +0x58,0x2, 0x7d,0x9d,0x7e,0x67,0x2a,0x72,0x7e,0x74,0x0, 0x3, 0xad,0x76,0xbd,0xc7, +0x8, 0x2, 0x5, 0x24,0x12,0x54,0x6d,0xb, 0x3a,0xd0,0xbd,0xcd,0x8, 0xb, 0x7e,0xb3, +0x26,0xf7,0x4, 0x7a,0xb3,0x26,0xf7,0x80,0x19,0x12,0x54,0x76,0xb, 0x3a,0xc0,0x6e, +0xd4,0xff,0xff,0xb, 0xd4,0xbd,0xcd,0x58,0x9, 0x7e,0xb3,0x26,0xf9,0x4, 0x7a,0xb3, +0x26,0xf9,0xb, 0xa0,0x7e,0xb3,0x2a,0x93,0xbc,0xba,0x38,0x99,0x7a,0xa7,0x7, 0xfe, +0x7a,0x37,0x8, 0x2, 0xe5,0x24,0x7a,0xb3,0x8, 0x9, 0x7a,0x97,0x8, 0x6, 0x12,0x54, +0x65,0x2d,0xf5,0x6c,0xaa,0x80,0x50,0x12,0x54,0x80,0xb, 0x6a,0xd0,0xbd,0xd8,0x58, +0x2, 0x7d,0x8d,0xbd,0xd2,0x8, 0x2, 0x7d,0x2d,0x7e,0x67,0x2a,0x70,0x7e,0x74,0x0, +0x3, 0xad,0x76,0xbd,0xd7,0x8, 0x2, 0xb, 0x90,0x12,0x54,0x6d,0xb, 0x3a,0xc0,0xbd, +0xdc,0x8, 0xb, 0x7e,0xb3,0x26,0xf6,0x4, 0x7a,0xb3,0x26,0xf6,0x80,0x17,0x12,0x54, +0x76,0xb, 0x3a,0xd0,0x6d,0x99,0x9d,0x9c,0xbd,0xd9,0x58,0x9, 0x7e,0xb3,0x26,0xf8, +0x4, 0x7a,0xb3,0x26,0xf8,0xb, 0xa0,0x12,0x53,0x4, 0x38,0xab,0x7a,0x87,0x7, 0xfc, +0x7a,0x27,0x8, 0x0, 0x7a,0x93,0x8, 0x8, 0x12,0x54,0x65,0x2d,0x15,0x6c,0xaa,0x80, +0x14,0x7e,0x90,0x2, 0xac,0x9a,0x7f,0x70,0x2d,0xf4,0xb, 0x7a,0x90,0xbd,0x9b,0x58, +0x2, 0x7d,0xb9,0xb, 0xa0,0x12,0x53,0x4, 0x38,0xe7,0x7a,0xb7,0x8, 0x4, 0xbd,0x8a, +0x58,0x2, 0x7d,0xa8,0x7a,0xa7,0x7, 0xf8,0xbd,0x32,0x58,0x2, 0x7d,0x32,0x7a,0x37, +0x7, 0xfa,0xda,0x3b,0x22,0x7e,0xa3,0x2a,0x93,0x74,0x2, 0xa4,0x22,0x7e,0x74,0x62, +0x27,0x7e,0x64,0x0, 0xff,0x22,0x7e,0xf0,0x2, 0xac,0xfa,0x2d,0x7f,0x7d,0x6e,0x22, +0x7e,0xf0,0x2, 0xac,0xfa,0x7f,0x67,0x2d,0xd7,0x22,0xca,0x3b,0x7f,0x31,0x7a,0xd, +0x24,0x7e,0x35,0x28,0x7a,0x35,0x2f,0x7e,0xd, 0x24,0x7f,0x13,0x12,0x79,0xff,0x7e, +0x35,0x28,0x7a,0x35,0x2a,0x12,0x54,0x65,0x7e,0xd, 0x24,0x2d,0x15,0x7f,0x13,0x2d, +0x35,0x12,0x5c,0xca,0xda,0x3b,0x22,0x7e,0x37,0x2a,0x6e,0x1e,0x34,0x7a,0x35,0x28, +0x7e,0x8, 0x4, 0xfc,0x7e,0x18,0x4, 0x0, 0x12,0x54,0x8a,0x7e,0x37,0x28,0x99,0xe, +0x34,0x7a,0x35,0x28,0x7e,0x8, 0x5, 0x7a,0x7e,0x18,0x4, 0x7e,0x12,0x54,0x8a,0x12, +0x54,0xf9,0x12,0x8f,0xfd,0x2, 0x54,0xe8,0xe4,0x7a,0xb3,0x39,0x9, 0x7e,0xb3,0x28, +0xa8,0x60,0x5, 0xe4,0x7a,0xb3,0x39,0x9, 0x22,0xca,0x3b,0x7e,0xf3,0x2a,0x8d,0x7e, +0xe3,0x2a,0x8e,0x7e,0xd3,0x2a,0x8f,0x6c,0xcc,0x80,0x13,0x7c,0x7c,0xac,0x7f,0x3e, +0x34,0x7e,0xf, 0x13,0x8a,0x2d,0x13,0x7c,0xbd,0x12,0x90,0x69,0xb, 0xc0,0xbc,0xec, +0x38,0xe9,0xda,0x3b,0x22,0xe4,0x7a,0xb3,0x28,0x93,0x12,0x57,0xbe,0x7e,0xb3,0x16, +0x91,0xb4,0x1, 0x8, 0x7e,0x73,0x28,0x84,0x7a,0x73,0x28,0x92,0x7e,0x18,0x4, 0xfc, +0x7a,0x1f,0x6, 0xf8,0x12,0x57,0x8a,0x12,0x55,0x6d,0x12,0x53,0xb, 0x7e,0xb3,0x16, +0x90,0xb4,0x1, 0x18,0x7e,0x73,0x26,0x83,0x7a,0x73,0x26,0xf3,0x7e,0x73,0x26,0x85, +0x7a,0x73,0x26,0xf5,0x7e,0x73,0x26,0x84,0x7a,0x73,0x26,0xf4,0x22,0x7e,0x8, 0x26, +0x86,0x7e,0x34,0x0, 0x3, 0xe4,0x12,0x17,0x4e,0x7e,0x8, 0x26,0x89,0x7e,0x34,0x0, +0x3, 0x12,0x17,0x4e,0x7a,0xb3,0x26,0x83,0x7a,0xb3,0x26,0x84,0x7a,0xb3,0x26,0x85, +0x7a,0xb3,0x26,0xf0,0x7a,0xb3,0x26,0xf1,0x7a,0xb3,0x26,0xf2,0x7e,0x18,0x26,0x6f, +0x12,0x56,0xdb,0x6c,0x55,0x12,0x56,0x33,0x7a,0xb3,0x26,0x85,0x7e,0x18,0x26,0x5b, +0x12,0x56,0xeb,0x6c,0x55,0x12,0x56,0x33,0x7a,0xb3,0x26,0x84,0x6c,0x77,0x80,0x14, +0x12,0x56,0xbc,0x60,0x5, 0x3e,0x24,0x14,0x78,0xfb,0x12,0x56,0xc5,0x2e,0x24,0x26, +0x86,0x12,0x56,0xd0,0x7e,0x63,0x26,0x84,0xbc,0x67,0x38,0xe4,0x6c,0x77,0x80,0x14, +0x12,0x56,0xbc,0x60,0x5, 0x3e,0x24,0x14,0x78,0xfb,0x12,0x56,0xc5,0x2e,0x24,0x26, +0x89,0x12,0x56,0xd0,0x7e,0xa3,0x26,0x85,0xbc,0xa7,0x38,0xe4,0x7e,0xb3,0x26,0x84, +0xa4,0x7a,0xb3,0x26,0x83,0x7e,0x18,0x26,0xe6,0x12,0x56,0xdb,0x7e,0x50,0x1, 0x12, +0x56,0x33,0x7a,0xb3,0x26,0xf2,0x7e,0x18,0x26,0xdc,0x12,0x56,0xeb,0x7e,0x50,0x1, +0x12,0x56,0x33,0x7c,0xab,0x7a,0xa3,0x26,0xf1,0x7e,0xb3,0x26,0xf2,0xa4,0x7a,0xb3, +0x26,0xf0,0x22,0xca,0x69,0xca,0xf8,0x7c,0x4b,0x6c,0xaa,0x6d,0xff,0x6c,0xff,0x80, +0x70,0x7e,0xd0,0x2, 0xac,0xdf,0x7f,0x60,0x2d,0xd6,0xb, 0x6a,0xe0,0x4c,0x55,0x68, +0x6, 0x6e,0xe4,0xff,0xff,0xb, 0xe4,0xbd,0x3e,0x58,0x54,0x4c,0xff,0x78,0x8, 0x6d, +0x44,0x69,0xf0,0x0, 0x2, 0x80,0x1b,0x7c,0xb4,0x14,0xbc,0xbf,0x7f,0x56,0x78,0x9, +0x1b,0xb5,0xb, 0x5a,0x40,0x6d,0xff,0x80,0x9, 0x1b,0xb5,0xb, 0x5a,0x40,0x69,0xf6, +0x0, 0x2, 0x4c,0x55,0x68,0xc, 0x6e,0x44,0xff,0xff,0xb, 0x44,0x6e,0xf4,0xff,0xff, +0xb, 0xf4,0xbd,0x4e,0x58,0x19,0xbd,0xfe,0x18,0x15,0xa, 0xba,0x7e,0x6d,0x24,0x2d, +0xdb,0x7a,0x6b,0xf0,0xb, 0xa0,0x90,0x60,0x9b,0xe4,0x93,0xbc,0xba,0x28,0x6, 0xb, +0xf0,0xbc,0x4f,0x38,0x8c,0x7c,0xba,0xda,0xf8,0xda,0x69,0x22,0x7c,0xb7,0x54,0x7, +0x7e,0x24,0x0, 0x1, 0x22,0x7c,0xa5,0x7c,0xb7,0xc4,0x23,0x54,0x1f,0xa, 0x2b,0x22, +0x7e,0x29,0x60,0x4c,0x6a,0x7a,0x29,0x60,0xb, 0x70,0x22,0x7a,0x1d,0x24,0x7e,0xf, +0x6, 0xf8,0x7e,0xb3,0x2a,0x8d,0x7e,0x37,0x2a,0x72,0x22,0x7a,0x1d,0x24,0x7e,0xa3, +0x2a,0x8d,0x74,0x2, 0xa4,0x7e,0xf, 0x6, 0xf8,0x2d,0x15,0x7e,0xb3,0x2a,0x8c,0x7e, +0x37,0x2a,0x70,0x22,0x12,0x57,0xf, 0xe4,0x7a,0xb3,0x39,0x8, 0x2, 0x55,0x25,0x12, +0x57,0x73,0x7e,0xb3,0x36,0x6d,0xb4,0x1, 0xc, 0x7e,0x34,0x1, 0x18,0x7a,0x37,0x2a, +0x79,0x7a,0x37,0x2a,0x7b,0x7e,0xb3,0x28,0xa8,0xb4,0x1, 0x1f,0x7e,0x34,0x1, 0x5e, +0x7a,0x37,0x2a,0x79,0x7e,0x34,0x1, 0x2c,0x7a,0x37,0x2a,0x7b,0x7e,0x34,0x1, 0x90, +0x7a,0x37,0x2a,0x6e,0x7e,0x34,0x1, 0x7c,0x12,0x57,0x81,0x7e,0xb3,0x2a,0x20,0x70, +0x21,0x7e,0x27,0x2a,0x79,0x7d,0x32,0x7e,0x14,0x0, 0x4, 0xad,0x13,0x7d,0x31,0x12, +0x4f,0xeb,0xbe,0x34,0x0, 0x50,0x28,0x4, 0x7e,0x34,0x0, 0x50,0x2d,0x32,0x7a,0x37, +0x2a,0x79,0x22,0x12,0x57,0xa5,0x2, 0x57,0x79,0x7e,0x34,0x1, 0x18,0x7a,0x37,0x2a, +0x6e,0x7a,0x37,0x2a,0x70,0x7a,0x37,0x2a,0x72,0x22,0x7e,0x18,0x5, 0xf8,0x7a,0x1f, +0x6, 0xf4,0x22,0x7e,0x8, 0x0, 0x25,0x7e,0x18,0x0, 0x24,0x22,0x7e,0x34,0x61,0x29, +0x7e,0x24,0x0, 0xff,0x22,0x7e,0x34,0x0, 0xb4,0x7a,0x37,0x2a,0x79,0x7e,0x34,0x0, +0xa0,0x7a,0x37,0x2a,0x7b,0x7e,0x34,0xff,0x60,0x7a,0x37,0x2a,0x7d,0x22,0x6c,0x33, +0x80,0x9, 0xe4,0xa, 0x33,0x19,0xb3,0x27,0x72,0xb, 0x30,0x90,0x60,0x9a,0xe4,0x93, +0x12,0x56,0xc9,0xb, 0x24,0xa, 0x33,0xbd,0x32,0x48,0xe7,0xe4,0x7a,0xb3,0x28,0x84, +0x7a,0xb3,0x28,0x85,0x6d,0x33,0x7a,0x37,0x28,0x86,0x7a,0x37,0x28,0x88,0x7a,0x37, +0x28,0x8a,0x7a,0x37,0x28,0x8e,0x7e,0xd4,0x1f,0x36,0x5e,0xd4,0xff,0xfe,0x6d,0xcc, +0x7e,0x1f,0x13,0x8a,0x7a,0x37,0x1f,0x76,0x7d,0x3d,0x7a,0x37,0x1f,0x7a,0x7e,0x34, +0x15,0x9e,0x7a,0x37,0x1f,0x78,0x7e,0x73,0x2a,0x8c,0x7a,0x73,0x1f,0x73,0x7e,0x73, +0x2a,0x8d,0x7a,0x73,0x1f,0x72,0x7e,0x37,0x2a,0x7b,0x7a,0x37,0x1f,0x7c,0x7e,0x37, +0x2a,0x7d,0x7a,0x37,0x1f,0x7e,0x7e,0x37,0x2a,0x7f,0x7a,0x37,0x1f,0x80,0x90,0x60, +0x9a,0x93,0x7a,0xb3,0x1f,0x74,0x7e,0x73,0x39,0x9, 0x7a,0x73,0x1f,0x75,0x7e,0x8, +0x1f,0x72,0x7e,0x18,0x1f,0x82,0x12,0x8, 0x0, 0x7e,0x73,0x1f,0x82,0x7a,0x73,0x28, +0x84,0x7e,0x73,0x1f,0x83,0x7a,0x73,0x28,0x85,0x7e,0x37,0x1f,0x84,0x7a,0x37,0x28, +0x86,0x7e,0x37,0x1f,0x86,0x7a,0x37,0x28,0x88,0x7e,0x37,0x1f,0x8c,0x7a,0x37,0x28, +0x8a,0x7e,0x37,0x1f,0x8e,0x7d,0x23,0x7a,0x53,0x28,0x8c,0xa, 0x36,0x7a,0x73,0x28, +0x8d,0x7e,0x37,0x1f,0x88,0x7a,0x37,0x28,0x8e,0x7e,0x37,0x1f,0x8a,0x7d,0x23,0x7a, +0x53,0x28,0x90,0xa, 0x36,0x7a,0x73,0x28,0x91,0x6c,0x33,0x80,0x1d,0x7c,0xb3,0x12, +0x2f,0x49,0x74,0x2, 0xac,0xb3,0x49,0x45,0x15,0x9e,0xa, 0x38,0x7c,0x27,0x19,0x25, +0x26,0xfa,0x7c,0x29,0x19,0x25,0x26,0xfb,0xb, 0x30,0x7e,0x23,0x28,0x84,0xbc,0x23, +0x38,0xdb,0x6c,0x33,0x80,0x1b,0x74,0x2, 0xac,0xb3,0x7f,0x16,0x2d,0x35,0xb, 0x1a, +0x40,0xa, 0x38,0x7c,0x27,0x19,0x25,0x27,0x36,0x7c,0x29,0x19,0x25,0x27,0x37,0xb, +0x30,0x7e,0x23,0x28,0x85,0xbc,0x23,0x38,0xdd,0x22,0xe4,0x7a,0xb3,0x37,0xaa,0x7a, +0xb3,0x37,0xab,0x90,0x60,0x50,0x93,0x7a,0xb3,0x37,0xac,0x90,0x60,0x51,0xe4,0x93, +0x7a,0xb3,0x37,0xad,0xe4,0x7a,0xb3,0x37,0xae,0x74,0xa, 0x7a,0xb3,0x37,0xaf,0xe4, +0x7a,0xb3,0x37,0xb0,0x7a,0xb3,0x37,0xb1,0x74,0x1, 0x7a,0xb3,0x37,0xb3,0x74,0x2d, +0x7a,0xb3,0x37,0xb7,0x74,0x46,0x7a,0xb3,0x37,0xb8,0x74,0x78,0x7a,0xb3,0x37,0xc9, +0x74,0x4, 0x7a,0xb3,0x37,0xca,0xe4,0x7a,0xb3,0x37,0xb6,0x74,0x66,0x7a,0xb3,0x37, +0xcc,0x74,0x60,0x7a,0xb3,0x37,0xcb,0x74,0x2, 0x7a,0xb3,0x37,0xcd,0x74,0x40,0x7a, +0xb3,0x37,0xc8,0xe4,0x7a,0xb3,0x37,0xc3,0x74,0xfa,0x7a,0xb3,0x37,0xc1,0x74,0x1e, +0x7a,0xb3,0x37,0xc2,0x74,0x1, 0x7a,0xb3,0x37,0xc0,0x74,0xc, 0x7a,0xb3,0x37,0xbf, +0x74,0x1, 0x7a,0xb3,0x37,0xc4,0xe4,0x7a,0xb3,0x37,0xc5,0x7a,0xb3,0x37,0xc6,0x7e, +0x8, 0x37,0xce,0x7e,0x34,0x0, 0x2c,0x12,0x17,0x4e,0x74,0x1, 0x7a,0xb3,0x37,0xd9, +0x74,0xf4,0x7a,0xb3,0x37,0xda,0x74,0x19,0x7a,0xb3,0x37,0xdb,0x74,0x38,0x7a,0xb3, +0x37,0xdc,0x7e,0x34,0x0, 0x4, 0xca,0x39,0x12,0x57,0x9c,0x7e,0x8, 0x37,0xea,0x12, +0x17,0x29,0x1b,0xfd,0x74,0x5, 0x7a,0xb3,0x37,0xf7,0x74,0x1, 0x7a,0xb3,0x37,0xee, +0x7e,0x34,0x0, 0x28,0xca,0x39,0x7e,0x34,0x61,0xec,0x7e,0x24,0x0, 0xff,0x7e,0x8, +0x26,0x33,0x12,0x17,0x29,0x1b,0xfd,0x22,0x7e,0x54,0x0, 0x54,0x7e,0x44,0x0, 0xff, +0x69,0x32,0x0, 0x4, 0x69,0x22,0x0, 0x2, 0xb, 0x2a,0x10,0x7a,0x1d,0x26,0x7a,0x15, +0x24,0x7e,0x34,0x0, 0x20,0x7e,0x8, 0x0, 0x24,0x7e,0x24,0x0, 0x6, 0x12,0x4b,0x63, +0x74,0x2d,0x7a,0xb3,0x36,0xde,0x74,0x28,0x7a,0xb3,0x36,0xdf,0x74,0x11,0x7a,0xb3, +0x36,0xe0,0x7a,0xb3,0x36,0xe1,0x7a,0xb3,0x36,0xe2,0x74,0xa0,0x7a,0xb3,0x36,0xe3, +0x7e,0x34,0x0, 0x6a,0xca,0x39,0x7e,0x34,0x61,0x65,0x7e,0x24,0x0, 0xff,0x7e,0x8, +0x36,0xe4,0x12,0x17,0x29,0x1b,0xfd,0xe5,0x25,0x7a,0xb3,0x37,0xf, 0xe5,0x28,0x7a, +0xb3,0x36,0xfe,0x22,0x7e,0x8, 0x26,0x5b,0x7e,0x34,0x2, 0x3a,0xe4,0x12,0x17,0x4e, +0x7e,0x8, 0x26,0x8c,0x7e,0x34,0x0, 0xc8,0x74,0xff,0x12,0x17,0x4e,0x7e,0x8, 0x26, +0xb4,0x7e,0x34,0x0, 0xc8,0x12,0x17,0x4e,0x90,0x60,0x9a,0xe4,0x93,0x7c,0x7b,0x74, +0x9, 0xac,0x7b,0x7e,0x8, 0x27,0x76,0x74,0xff,0x2, 0x17,0x4e,0xca,0xf8,0x7e,0x73, +0x2a,0x97,0xa, 0x47,0x7e,0x73,0x2a,0x90,0xa, 0x57,0x2d,0x54,0x7e,0xa3,0x2a,0x92, +0xbc,0xab,0x28,0x2, 0x7c,0xba,0x7e,0xf3,0x2a,0x91,0x7e,0xa3,0x2a,0x93,0xbc,0xaf, +0x28,0x2, 0x7c,0xfa,0x75,0x25,0x15,0x7e,0x8, 0x2a,0xd8,0x7e,0x18,0x2a,0x99,0x12, +0xd, 0xd9,0x75,0x25,0x15,0x7e,0x8, 0x2a,0xfb,0x7e,0x18,0x2a,0xbc,0x7c,0xbf,0x12, +0xf, 0x9c,0xda,0xf8,0x22,0x7f,0x60,0x7e,0xa3,0x2a,0x8c,0x7e,0xb3,0x2a,0x8d,0xa4, +0x7d,0xf5,0x3e,0xf4,0x7f,0x1, 0x7d,0x3f,0xe4,0x12,0x17,0x4e,0x7f,0x6, 0x7d,0x3f, +0x12,0x17,0x4e,0x7a,0xb3,0x16,0x91,0x22,0x7e,0xf, 0x13,0x8a,0x7e,0x18,0x8, 0xa, +0xca,0x3b,0x7a,0x1d,0x29,0x7f,0x30,0x12,0x5f,0xdf,0x7a,0x55,0x31,0x7e,0xb3,0x2b, +0x3c,0xf5,0x2e,0xe4,0x7a,0xb3,0x2b,0x3c,0x7f,0x3, 0x7e,0x1d,0x29,0x12,0x5a,0xd5, +0x12,0x5f,0xa0,0x12,0x47,0xd2,0x75,0x2d,0x0, 0x12,0x45,0x4, 0x30,0xb, 0xfd,0x74, +0x1, 0x12,0x5e,0x32,0x7e,0x14,0x40,0x0, 0x7d,0x21,0x7d,0x7, 0x12,0x5b,0x7c,0x12, +0x5e,0x3a,0x6d,0x33,0x80,0x19,0x7e,0x35,0x2f,0x3e,0x34,0x7f,0x3, 0x2d,0x13,0xb, +0xa, 0x20,0x7e,0xd, 0x29,0x2d,0x13,0x12,0x5f,0xd6,0x7e,0x35,0x2f,0xb, 0x34,0x7a, +0x35,0x2f,0x7e,0x35,0x31,0xbe,0x35,0x2f,0x38,0xdc,0x5, 0x2d,0xe5,0x2d,0xbe,0xb0, +0x1, 0x40,0xb6,0xe5,0x2e,0x7a,0xb3,0x2b,0x3c,0xda,0x3b,0x22,0x7e,0xb3,0x2a,0x8c, +0xca,0x3b,0x7c,0xdb,0x7a,0x5, 0x38,0x7d,0x71,0x7a,0x25,0x36,0x7a,0x35,0x34,0x12, +0x5d,0xed,0x50,0x77,0x6c,0xcc,0x80,0x11,0x7e,0x73,0x2a,0x8d,0x12,0x5c,0xa2,0x12, +0x5c,0x88,0x7e,0x34,0x34,0x0, 0x12,0x5c,0xab,0x12,0x5c,0xc3,0x38,0xea,0x6c,0xcc, +0x80,0x53,0x7e,0xa3,0x2a,0x8d,0x7c,0x7a,0x12,0x5c,0xa2,0x75,0x3a,0x0, 0x80,0x27, +0x7e,0xb3,0x37,0xbf,0xbe,0xb1,0x3a,0x7e,0x70,0x4, 0x28,0x8, 0xac,0x7c,0x49,0x43, +0x3, 0x72,0x80,0x6, 0xac,0x7c,0x49,0x43,0x3, 0x74,0x7e,0x71,0x3a,0x74,0x2, 0xac, +0x7b,0x59,0x43,0x34,0x50,0x5, 0x3a,0x7e,0xb3,0x2a,0x8f,0xbe,0xb1,0x3a,0x38,0xd0, +0x7e,0x34,0x10,0x0, 0x74,0x2, 0xa4,0x59,0x35,0x34,0x4e,0x12,0x5c,0x88,0x7e,0x34, +0x34,0x50,0x12,0x5c,0xab,0xbc,0xdc,0x38,0xa9,0x80,0x2c,0x7a,0xd3,0x25,0xb6,0x7e, +0x73,0x2a,0x8f,0x7a,0x73,0x25,0xb7,0xe4,0x7a,0xb3,0x25,0xb9,0x74,0x6, 0x7a,0xb3, +0x25,0xb8,0x7a,0x77,0x25,0xba,0x7a,0x77,0x25,0xbe,0x7e,0x8, 0x25,0xb6,0x7e,0x73, +0x2b,0x3e,0xa, 0x37,0x12,0xe, 0x37,0x7d,0x37,0x12,0x67,0x34,0x7e,0x35,0x38,0x7a, +0x37,0x25,0xbe,0xe4,0x7a,0xb3,0x25,0xb8,0x12,0x5c,0x99,0x7a,0xd3,0x25,0xb6,0x7e, +0xb3,0x2b,0x3c,0x70,0xf, 0xe4,0x7a,0xb3,0x25,0xb9,0x7a,0x77,0x25,0xba,0x7e,0x34, +0x0, 0x20,0x80,0x16,0x74,0x1, 0x7a,0xb3,0x25,0xb9,0x7e,0x35,0x34,0x7a,0x37,0x25, +0xba,0x7e,0x35,0x36,0x7a,0x37,0x25,0xbc,0x6d,0x33,0x7a,0x37,0x25,0xc0,0x7e,0x8, +0x25,0xb6,0x12,0xd, 0x7, 0xda,0x3b,0x22,0x74,0xc, 0x7a,0xb3,0x25,0xb8,0x74,0x1, +0x7a,0xb3,0x25,0xb6,0xe4,0x7a,0xb3,0x25,0xb9,0x7e,0x73,0x2a,0x8d,0x7a,0x73,0x25, +0xb7,0x22,0xac,0x7c,0x3e,0x34,0x7d,0xf7,0x2d,0xf3,0x22,0x7a,0x37,0x25,0xba,0x7d, +0x3f,0x7a,0x37,0x25,0xbc,0x7a,0x37,0x25,0xbe,0x7e,0x8, 0x25,0xb6,0x12,0x7, 0x9b, +0xb, 0xc0,0x22,0x7e,0x73,0x2a,0x8e,0xbc,0x7c,0x22,0xca,0x3b,0x7f,0x61,0x7f,0x50, +0x7e,0x14,0x19,0x35,0x7e,0x4, 0x0, 0xff,0x69,0x30,0x0, 0x2, 0xb, 0xa, 0x20,0x7a, +0x1d,0x2c,0x7e,0x73,0x2a,0x8c,0xa, 0x37,0x3e,0x34,0xca,0x39,0x7f,0x16,0x7f,0x5, +0x12,0x17,0x29,0x1b,0xfd,0x6c,0xdd,0x12,0x5f,0x98,0x7a,0xb3,0x1f,0x34,0x6c,0xcc, +0x80,0x4a,0x12,0x5d,0xa3,0x40,0x43,0x12,0x5d,0x99,0x50,0x3e,0x12,0x5f,0xa9,0xb, +0x1a,0x10,0x7d,0x3f,0x12,0x17,0x80,0x7d,0x3, 0x7d,0x31,0x12,0x17,0x80,0xbd,0x30, +0x58,0x2, 0x7d,0xf1,0xbe,0x15,0x2a,0x8, 0x5, 0x7e,0x15,0x2a,0x80,0xb, 0x6d,0x0, +0x9e,0x5, 0x2a,0xbd,0x1, 0x8, 0x2, 0x7d,0x10,0x7d,0x31,0x1a,0x26,0x1a,0x24,0x2f, +0x41,0x7e,0xb3,0x1f,0x34,0x4, 0x7a,0xb3,0x1f,0x34,0xb, 0xc0,0x12,0x5c,0xc3,0x38, +0xb1,0x7e,0x73,0x1f,0x34,0x4c,0x77,0x68,0x34,0x12,0x7a,0xc9,0x8, 0x2, 0x7d,0x7f, +0xbe,0x75,0x2a,0x8, 0x5, 0x7e,0x75,0x2a,0x80,0xb, 0x6d,0xee,0x9e,0xe5,0x2a,0xbd, +0xe7,0x8, 0x2, 0x7d,0x7e,0x6c,0xcc,0x80,0xf, 0x12,0x5d,0xa3,0x40,0x8, 0x12,0x5d, +0x99,0x50,0x3, 0x12,0x7a,0xb4,0xb, 0xc0,0x12,0x5c,0xc3,0x38,0xec,0xb, 0xd0,0xbe, +0xd0,0x3, 0x50,0x2, 0x81,0xf7,0xda,0x3b,0x22,0x7c,0x1d,0x2e,0x10,0x2d,0xa5,0xe7, +0xbc,0xab,0x22,0xa, 0xec,0x9, 0xae,0x2a,0xd8,0x7c,0x1d,0x2e,0x10,0x2c,0xa5,0xe7, +0xbc,0xab,0x22,0x7e,0xb3,0x2b,0x3d,0x70,0x1f,0x12,0x1f,0xed,0x12,0x5f,0xe9,0x50, +0xfb,0x12,0x5a,0xf8,0x12,0x5d,0xd9,0x20,0xf, 0x3, 0x12,0x7c,0x51,0x74,0x2, 0x7a, +0xb3,0x2b,0x3d,0xe4,0x7a,0xb3,0x16,0x91,0x22,0x12,0x5d,0xed,0x50,0x3, 0xd2,0xf, +0x22,0xc2,0xf, 0x22,0x12,0x93,0xa6,0x12,0x5d,0xfe,0x2, 0x5d,0xd9,0x7e,0xb3,0x37, +0x5, 0xb4,0x3, 0x8, 0x7e,0xb3,0x37,0xc0,0x70,0x2, 0xc3,0x22,0xd3,0x22,0x7e,0x8, +0x24,0xf2,0x7e,0x34,0x0, 0xc, 0xe4,0x12,0x17,0x4e,0x12,0x5f,0xcd,0x12,0x5f,0xc4, +0xa9,0xd1,0xcb,0x12,0x5e,0x32,0x7a,0x37,0x24,0xf6,0x7e,0x1f,0x33,0xf8,0x7a,0x37, +0x24,0xf8,0x7e,0x1f,0x13,0x86,0x7a,0x37,0x24,0xfa,0x6d,0x33,0x12,0x5f,0xb2,0x2, +0xd, 0x7, 0x12,0x0, 0xe, 0x7e,0x1f,0x13,0x86,0x22,0x7e,0xa3,0x2a,0x8d,0xa, 0x3a, +0x3e,0x34,0x7e,0x8, 0x13,0x8e,0xe4,0x12,0x17,0x4e,0x90,0x60,0x93,0x93,0xa, 0x3b, +0x7e,0xb3,0x2a,0x90,0xa, 0x2b,0x2d,0x23,0xa, 0x3a,0xad,0x32,0x7d,0x43,0x6c,0x77, +0x80,0x1d,0xa, 0x27,0x2d,0x24,0x12,0x5f,0xbb,0xb, 0xa, 0x0, 0x7e,0x30,0x2, 0xac, +0x37,0x2e,0x14,0x13,0x8e,0xb, 0x18,0x20,0x2d,0x20,0x1b,0x18,0x20,0xb, 0x70,0xbc, +0xa7,0x38,0xdf,0x22,0x12,0x71,0xfe,0x12,0x74,0xae,0x12,0x5e,0xd0,0x7e,0xb3,0x37, +0x3, 0xb4,0x1, 0x10,0x7e,0x34,0x0, 0x5, 0x7a,0x37,0x28,0xa1,0x7e,0x34,0x0, 0xa, +0x7a,0x37,0x28,0xa3,0x7e,0xb3,0x39,0xa, 0x60,0x7, 0x14,0x7a,0xb3,0x39,0xa, 0x80, +0x6, 0x7e,0xb3,0x28,0xac,0x60,0x9, 0x12,0x5d,0xe4,0x12,0x4f,0x84,0x12,0x9d,0x7b, +0x7e,0xb3,0x28,0xad,0x60,0x9, 0x12,0xa2,0xcb,0x12,0x5f,0x40,0x2, 0x5e,0xf4,0x22, +0x12,0x9a,0x1a,0x60,0x17,0x12,0x5e,0xed,0x7e,0x37,0x28,0xa1,0x3e,0x34,0x7a,0x37, +0x28,0xa1,0x7e,0x37,0x28,0xa3,0x3e,0x34,0x7a,0x37,0x28,0xa3,0x22,0x74,0x1, 0x7a, +0xb3,0x28,0xad,0x22,0x6c,0xaa,0x7e,0x70,0xc, 0xac,0x7a,0x12,0x97,0x1d,0xbe,0x34, +0x3, 0xe8,0x8, 0x5, 0x12,0xa8,0xd0,0x80,0x2f,0x7e,0x50,0xc, 0xac,0x5a,0x49,0x32, +0x36,0x80,0x49,0x12,0x36,0x7c,0xbd,0x13,0x28,0xf, 0x7d,0x2, 0x2e,0x4, 0x36,0x80, +0x7d,0x13,0xb, 0x15,0x1b,0x8, 0x10,0x80,0xf, 0xbe,0x34,0x0, 0x2, 0x28,0x9, 0x2e, +0x24,0x36,0x80,0x1b,0x35,0x1b,0x28,0x30,0xb, 0xa0,0xbe,0xa0,0x4, 0x40,0xb7,0x22, +0x7e,0x43,0x2a,0x8d,0x7e,0x53,0x2a,0x8c,0xac,0x54,0x7e,0x17,0x28,0xa1,0x12,0x5f, +0x91,0x6d,0x0, 0x80,0x37,0x7d,0x40,0x3e,0x44,0x7e,0x7f,0x33,0xf8,0x2d,0xf4,0xb, +0x7a,0x30,0xbd,0x13,0x58,0x10,0x7d,0xf4,0x2e,0xf4,0x8, 0xa, 0xb, 0xf8,0x50,0x9d, +0x51,0x1b,0xf8,0x50,0x80,0x14,0x6d,0x55,0x9d,0x51,0xbd,0x53,0x8, 0xc, 0x2e,0x44, +0x8, 0xa, 0xb, 0x48,0x50,0x2d,0x51,0x1b,0x48,0x50,0xb, 0x4, 0xbd,0x20,0x38,0xc5, +0x22,0xa9,0xd1,0xcb,0xe4,0x2, 0x0, 0xe, 0x7e,0xf4,0x7f,0xff,0x9f,0x44,0xe4,0x22, +0x74,0x1, 0x12,0x13,0xde,0xe4,0x2, 0x0, 0x1e,0x74,0x2, 0xac,0xbc,0x7f,0x16,0x2d, +0x35,0x22,0x7a,0x37,0x24,0xfc,0x7e,0x8, 0x24,0xf2,0x22,0x3e,0x24,0x7e,0xf, 0x33, +0xf8,0x2d,0x12,0x22,0x7e,0x73,0x2a,0x8c,0x7a,0x73,0x24,0xf2,0x22,0x7e,0x73,0x2a, +0x8d,0x7a,0x73,0x24,0xf3,0x22,0xb, 0xa, 0x30,0x2d,0x32,0x1b,0xa, 0x30,0x22,0x7e, +0xa3,0x2a,0x8d,0x7e,0xb3,0x2a,0x8c,0xa4,0x22,0x7e,0xb3,0x34,0x3a,0xb4,0x1, 0x2, +0xc3,0x22,0xd3,0x22,0x12,0x5f,0xe9,0x50,0xfb,0x22,0x2, 0x6b,0xe8,0x2, 0x71,0x2d, +0x70,0x8f,0x0, 0xff,0x6d,0x92,0x5a,0xa5,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x32,0x36,0x31,0x1, 0xc, 0x3b,0x32,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x4, 0xfb,0x43,0x33,0x42,0x5f,0x57,0x68,0x69,0x74,0x65,0x5f,0x4c,0x45,0x4e,0x53, +0xd, 0x18,0x7, 0x6, 0x5, 0x4, 0x3, 0x2, 0x1, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 0xb, 0xa, 0x9, 0x8, 0x7, 0x6, 0x5, 0x4, 0x3, 0x2, +0x1, 0xd, 0xe, 0xf, 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x0, 0x0, 0x0, +0x0, 0x5, 0x0, 0x4, 0xff,0x23,0x1c,0x2, 0xdf,0xa, 0x1e,0xa, 0x64,0x1e,0x10,0x0, +0x4, 0x0, 0x64,0xd, 0xac,0x0, 0xc8,0x3, 0x1, 0x0, 0x0, 0x17,0x2, 0x6, 0xa, 0x0, +0x0, 0x0, 0x46,0x0, 0xe6,0x1, 0x18,0x1, 0xb8,0x1, 0xf4,0x2, 0x94,0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c,0x1, 0x68,0x2, 0x44,0x0, 0x0, 0x0, 0x0, 0x7, +0xd0,0x0, 0x14,0x1, 0x19,0x38,0x1, 0xf4,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e, +0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e, +0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x64,0x64,0x64,0x64,0x64, +0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64, +0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x0, 0x4, 0x66,0x20,0x1, 0x20,0x2, 0x0, 0x0, +0x0, 0x0, 0x1, 0xf4,0x60,0x40,0xd, 0x18,0x25,0x18,0x10,0x6, 0x80,0x18,0x10,0x6, +0x78,0x8, 0x10,0x4, 0x20,0x1, 0x0, 0x2, 0xd0,0x34,0x32,0x1, 0xfb,0x2, 0x28,0x0, +0xdf,0x0, 0xe3,0x5, 0x0, 0x37,0x37,0x1, 0xb8,0x1, 0xba,0x0, 0xe0,0x0, 0xe0,0x0, +0xb4,0x0, 0xa0,0x0, 0xa0,0x1, 0x18,0x0, 0x8c,0x1, 0x18,0x1, 0x18,0xa, 0x0, 0x1, +0x68,0x6, 0x10,0x14,0x32,0x1, 0xf, 0xb, 0x1e,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x4, 0xf7,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22,0x15, +0x0, 0x3, 0x54,0x1, 0x0, 0x4, 0x1, 0x6d,0x1, 0x14,0x0, 0x5a,0x1, 0x1, 0x12,0x0, +0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x55,0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x96,0x2, 0x26,0x0, 0x50,0x0, 0x27,0x0, 0x1, 0x0, 0x2, 0x1, 0x4, 0x1, 0x90,0x0, +0xc8,0x0, 0x50,0x1, 0xf4,0x0, 0x96,0x1, 0x2c,0x1, 0x2c,0x4, 0x38,0x2, 0x66,0x60, +0x20,0x20,0x3, 0x5f,0x50,0x20,0x34,0x2, 0x62,0x5d,0x20,0x46,0x2, 0x4b,0x44,0x30, +0x38,0x2, 0x66,0x60,0x20,0x38,0x2, 0x66,0x60,0x20,0x38,0x2, 0x66,0x60,0x20,0x38, +0x2, 0x66,0x60,0x20,0x4, 0x5, 0x10,0x11,0x12,0x13,0x14,0x4, 0x0, 0xd2,0x2, 0x30, +0x32,0x0, 0xc8,0x1, 0x5e,0x0, 0x64,0x0, 0x64,0x0, 0x96,0x0, 0x64,0xb, 0xb8,0x8, +0x5, 0x6, 0x80,0x1, 0x90,0x1, 0x2c,0x1, 0xc2,0x3, 0x20,0xf, 0xa0,0x1, 0x3, 0x20, +0x4, 0xb0,0x3, 0x20,0x1, 0x2, 0x2, 0x4, 0x4, 0x6, 0x40,0x1, 0x18,0x1, 0x18,0x1, +0x90,0x1, 0x90,0x1, 0x90,0x1, 0x5e,0x1, 0x2c,0x1, 0x90,0x1, 0x7c,0x1, 0x7c,0x0, +0x64,0x0, 0x46,0x0, 0x78,0x0, 0x78,0x0, 0x64,0x1, 0x18,0x1, 0x18,0x14,0x8, 0x0, +0x50,0x2, 0x80,0x0, 0x50,0x4, 0xb0,0x0, 0x32,0x1, 0xf4,0x1, 0xf4,0x3, 0x20,0x0, +0x14,0x0, 0x37,0x0, 0x1e,0x0, 0x80,0x0, 0xb4,0x0, 0xa0,0x0, 0x3c,0x3, 0xe8,0x1, +0x40,0x0, 0x5a,0x0, 0x3c,0x3, 0xe8,0x0, 0x20,0x2, 0xb0,0x0, 0x0, 0x5, 0x0, 0x0, +0x64,0x0, 0xa0,0x0, 0xa0,0x13,0x88,0x1, 0x2c,0x0, 0xa0,0x0, 0xa0,0x10,0x0, 0xc, +0x0, 0xa, 0xb, 0x5, 0x5, 0x7, 0x8, 0x6, 0x6, 0xc, 0x64,0xc8,0x7f,0x70,0x7e,0x33, +0x2a,0x93,0xa, 0x43,0x7e,0x33,0x2a,0x92,0xa, 0x53,0x2d,0x54,0x3e,0x54,0x7c,0xab, +0xe4,0x7a,0xb3,0x16,0x90,0x7f,0x1, 0xa, 0x3a,0x12,0x17,0x4e,0x7f,0x7, 0xa, 0x3a, +0x2, 0x17,0x4e,0xca,0xd8,0xca,0x79,0x7c,0xfb,0x7f,0x51,0x7f,0x40,0x7f,0x15,0x12, +0x62,0xbc,0x12,0x64,0x26,0x7e,0xe0,0x1, 0x12,0x46,0xbd,0x30,0x18,0xfd,0x74,0x2, +0x12,0x0, 0x1e,0x7f,0x4, 0x12,0x47,0xa9,0x6c,0xdd,0x80,0x18,0x74,0x2, 0xac,0xbd, +0x7f,0x14,0x2d,0x35,0xb, 0x1a,0x20,0x74,0x2, 0xac,0xbd,0x7f,0x5, 0x2d,0x15,0x12, +0x5f,0xd6,0xb, 0xd0,0x7e,0x73,0x2a,0x93,0xa, 0x7, 0x7e,0x63,0x2a,0x92,0xa, 0x16, +0x2d,0x10,0xa, 0x2d,0xbd,0x21,0x48,0xd4,0x1b,0xe0,0x78,0xbc,0x7f,0x5, 0x7c,0xbf, +0x2e,0x73,0x2a,0x92,0x12,0x63,0x4c,0xda,0x79,0xda,0xd8,0x22,0xca,0xd8,0xca,0x79, +0x7c,0xf7,0x7f,0x70,0x12,0x64,0x2d,0x7c,0xeb,0x6c,0xdd,0x80,0x20,0x74,0x2, 0xac, +0xbd,0x7f,0x67,0x2d,0xd5,0xb, 0x6a,0x30,0x6d,0x22,0x74,0x4, 0x2f,0x11,0x14,0x78, +0xfb,0xa, 0x1e,0x6d,0x0, 0x12,0x15,0x77,0x1b,0x6a,0x30,0xb, 0xd0,0xbc,0xfd,0x38, +0xdc,0xda,0x79,0xda,0xd8,0x22,0x7e,0xb3,0x2b,0x21,0x70,0x41,0x12,0x5f,0xe9,0x50, +0xfb,0xe4,0x6c,0x77,0x6c,0x66,0x12,0x47,0xb9,0x7e,0x8, 0x6, 0xfc,0x7e,0x1f,0x6, +0xf4,0x7e,0xb3,0x2b,0x91,0x12,0x62,0xe3,0x74,0x1, 0x7e,0x70,0x1, 0x7e,0x60,0x1, +0x12,0x47,0xb9,0x7e,0x8, 0x7, 0x7a,0x7e,0x1f,0x6, 0xf4,0x7e,0xb3,0x25,0xf0,0x12, +0x62,0xe3,0x74,0x2, 0x7a,0xb3,0x2b,0x21,0xe4,0x7a,0xb3,0x16,0x90,0x22,0xca,0x79, +0x7f,0x51,0x7f,0x40,0x7e,0xa3,0x2a,0x93,0xa, 0x3a,0x7e,0xa3,0x2a,0x92,0xa, 0x7a, +0x2d,0x73,0x7e,0xd, 0x29,0x7c,0x7f,0x12,0x63,0x4c,0xa, 0x3f,0x3e,0x34,0xca,0x39, +0x7e,0x1d,0x29,0x7f,0x4, 0x12,0x17,0x29,0x1b,0xfd,0x7e,0xb3,0x2b,0x20,0xb4,0x1, +0x22,0x6c,0xaa,0x80,0x1a,0x7e,0x70,0x2, 0xac,0x7a,0x7f,0x5, 0x2d,0x13,0xb, 0xa, +0x20,0x7f,0x4, 0x2d,0x13,0xb, 0xa, 0x30,0x9d,0x32,0x1b,0xa, 0x30,0xb, 0xa0,0xbc, +0xfa,0x38,0xe2,0xda,0x79,0x22,0x7e,0x8, 0x2a,0x8c,0x2, 0x0, 0x2e,0x7c,0x7b,0xa5, +0xbf,0x0, 0x3, 0x74,0x10,0x22,0xbe,0x70,0x4, 0x38,0x4, 0x6c,0xaa,0x80,0x21,0xbe, +0x70,0x8, 0x38,0x5, 0x7e,0xa0,0x1, 0x80,0x17,0xbe,0x70,0x10,0x38,0x5, 0x7e,0xa0, +0x2, 0x80,0xd, 0xbe,0x70,0x20,0x38,0x5, 0x7e,0xa0,0x3, 0x80,0x3, 0x7e,0xa0,0x4, +0xa, 0x47,0x3e,0x44,0x3e,0x44,0x3e,0x44,0x7c,0xba,0x60,0x5, 0x1e,0x44,0x14,0x78, +0xfb,0x7c,0xb9,0x22,0x7e,0xa3,0x2f,0xc7,0x7e,0x70,0x4, 0xac,0x7a,0xb, 0x34,0xbe, +0x37,0x37,0xfb,0x40,0x39,0x7e,0x37,0x37,0xfb,0xb, 0x34,0x7a,0x37,0x37,0xfb,0xbe, +0x34,0x0, 0x1, 0x78,0x5, 0x7e,0xb3,0x37,0x31,0x22,0xbe,0x34,0x0, 0x2, 0x78,0x3, +0x7c,0xba,0x22,0xbe,0x34,0x0, 0x2, 0x50,0x9, 0x7d,0x23,0x1b,0x25,0x9, 0xb2,0x38, +0xf7,0x22,0x9e,0x34,0x0, 0x3, 0x2e,0x37,0x2b,0xd8,0x7e,0x39,0xb0,0x22,0x74,0xff, +0x22,0x70,0x5, 0x7e,0xb3,0x37,0xaa,0x22,0xbe,0xb0,0x3, 0x38,0x15,0x75,0x1b,0x0, +0x30,0xe, 0x6, 0x7e,0x18,0x33,0x9, 0x80,0x4, 0x7e,0x18,0x33,0x47,0x7a,0x1d,0x14, +0x80,0x8, 0xbe,0xb0,0x5e,0x38,0x10,0x75,0x1b,0x0, 0xa, 0x1b,0x7e,0x1d,0x14,0x2d, +0x31,0x1b,0x34,0x7e,0x1b,0xb0,0x22,0xbe,0xb0,0xd3,0x68,0x3, 0xb4,0xd4,0x10,0xb4, +0xd3,0x8, 0x6d,0x33,0x7a,0x37,0x37,0xfb,0x80,0x2, 0x15,0x1a,0x2, 0x64,0x74,0xbe, +0xb0,0xeb,0x68,0x3, 0xb4,0xec,0x3, 0x2, 0x65,0x58,0xbe,0xb0,0x80,0x40,0xc, 0xbe, +0xb0,0xef,0x38,0x7, 0xa, 0x3b,0x9, 0xb3,0x36,0x5e,0x22,0xb4,0xfc,0x5, 0x7e,0xb3, +0x37,0x5, 0x22,0xb4,0xfd,0x17,0x6c,0xaa,0x7e,0xb3,0x28,0xa8,0x60,0x3, 0x4e,0xa0, +0x1, 0x7e,0xb3,0x36,0x6d,0x60,0x3, 0x4e,0xa0,0x2, 0x7c,0xba,0x22,0xb4,0xfe,0x5, +0x7e,0xb3,0x2b,0x2e,0x22,0x74,0xff,0x22,0xb4,0xeb,0x5, 0xe4,0x7a,0xb3,0x38,0x0, +0x7e,0x73,0x38,0x0, 0xa, 0x27,0x2e,0x24,0x0, 0x6, 0x12,0x2f,0x8f,0x7c,0xab,0x7c, +0xb7,0x4, 0x7a,0xb3,0x38,0x0, 0xb4,0x3, 0xb, 0xe4,0x7a,0xb3,0x38,0x0, 0x6d,0x33, +0x7a,0x37,0x37,0xfd,0x75,0x1a,0xeb,0x7c,0xba,0x22,0x7e,0xa3,0x37,0xa9,0x7c,0xba, +0x4, 0x7a,0xb3,0x37,0xa9,0x7a,0xa3,0x36,0xef,0x22,0xca,0x7b,0xca,0x2b,0xca,0x1b, +0xca,0xb, 0xc0,0x83,0xc0,0x82,0x12,0x33,0x1, 0xd0,0x82,0xd0,0x83,0xda,0xb, 0xda, +0x1b,0xda,0x2b,0xda,0x7b,0x32,0xa9,0xc0,0x93,0x75,0x18,0x0, 0x32,0x7a,0xb3,0x37, +0xaa,0xc4,0x54,0x7, 0xbe,0xb0,0x4, 0x68,0x3, 0xb4,0x2, 0x4, 0x74,0x3, 0x80,0x7, +0x60,0x3, 0xb4,0x1, 0x7, 0x74,0x1, 0x7a,0xb3,0x37,0x5, 0x22,0x74,0x1, 0x7a,0xb3, +0x37,0x5, 0xe4,0x7a,0xb3,0x37,0xaa,0x22,0x7c,0xa7,0x7c,0x3b,0xa5,0xbb,0x0, 0x7, +0x7c,0xba,0x12,0x65,0xbd,0x80,0x2c,0xbe,0x30,0xeb,0x68,0x4, 0xa5,0xbb,0xec,0x9, +0x7c,0xb3,0x7c,0x7a,0x12,0x66,0x61,0x80,0x1a,0xbe,0x30,0x80,0x40,0x15,0xbe,0x30, +0xef,0x38,0x10,0x7c,0xb3,0x24,0x80,0x7c,0x7a,0x12,0x66,0x33,0xa5,0xbb,0x8f,0x3, +0x75,0x19,0x1, 0xa5,0xbb,0xfc,0x5, 0x7c,0xba,0x2, 0x3c,0x77,0x74,0x1, 0x7a,0xb3, +0x3, 0xff,0x22,0x7c,0x6b,0x2e,0x60,0xdd,0x68,0x26,0x2e,0x60,0xfd,0x68,0x21,0x1b, +0x61,0x68,0x1d,0x1b,0x62,0x68,0x19,0x1b,0x61,0x68,0x15,0x1b,0x60,0x68,0x11,0x2e, +0x60,0xa, 0x78,0x4, 0x7a,0x73,0x36,0xdd,0xa, 0x2b,0x19,0x72,0x36,0xde,0xd2,0xd, +0x22,0xbe,0xb0,0xeb,0x68,0x3, 0xb4,0xec,0x33,0x7e,0x27,0x37,0xfd,0x4d,0x22,0x78, +0xe, 0xa5,0xbf,0xaa,0xa, 0x7e,0x24,0x0, 0x1, 0x7a,0x27,0x37,0xfd,0x15,0x1a,0x7e, +0x27,0x37,0xfd,0xbe,0x24,0x0, 0x1, 0x78,0x10,0xa5,0xbf,0x9, 0x6, 0x7e,0x34,0x0, +0x2, 0x80,0x2, 0x6d,0x33,0x7a,0x37,0x37,0xfd,0x75,0x1a,0xea,0x22,0x7e,0xb3,0x37, +0xff,0x4, 0x7a,0xb3,0x37,0xff,0xe5,0x19,0xb4,0x1, 0x8, 0xe4,0x7a,0xb3,0x37,0xff, +0x75,0x19,0x0, 0x7e,0x73,0x37,0xff,0x7a,0x73,0x36,0xed,0x22,0x7c,0xab,0x12,0x37, +0xb5,0x7c,0xba,0x12,0x13,0xc7,0x2, 0x0, 0x1e,0x30,0x18,0x8, 0x74,0x5, 0x7e,0x70, +0x99,0x12,0x13,0x2c,0x7e,0xb3,0x34,0x3a,0xb4,0x1, 0x4f,0x12,0x47,0xf1,0x49,0x35, +0x34,0x3b,0x49,0x15,0x34,0x3d,0x6d,0x0, 0xbe,0x8, 0x0, 0x0, 0x68,0x1a,0xbe,0x70, +0x0, 0x40,0x15,0xbe,0x70,0x2, 0x38,0x10,0x74,0x2, 0x12,0x0, 0x1e,0x7e,0xb3,0x2a, +0x92,0x7e,0x73,0x2a,0x93,0x12,0x10,0xee,0x7e,0xb3,0x34,0x39,0x4, 0x7a,0xb3,0x34, +0x39,0x12,0x67,0x2b,0x28,0xe, 0x12,0x45,0x31,0xb4,0x1, 0x4, 0x74,0x1, 0x80,0x6, +0x74,0x3, 0x80,0x2, 0x74,0x2, 0x7a,0xb3,0x34,0x3a,0x22,0x7e,0x73,0x34,0x38,0xbe, +0x73,0x34,0x39,0x22,0x7d,0xf3,0x6d,0xee,0x6c,0x99,0x80,0x3c,0x7c,0xb9,0x12,0x2d, +0x82,0x7d,0xd3,0x7d,0xcd,0x3e,0xc4,0x7f,0x57,0x2d,0xbc,0xb, 0x5a,0x10,0x1a,0x2, +0x1a,0x0, 0x7e,0x83,0x2b,0x3f,0xa, 0x98,0x6d,0x88,0x7f,0x10,0x7f,0x4, 0x12,0x15, +0x5b,0x74,0x6, 0x7f,0x1, 0x1e,0x14,0x1e,0x4, 0x50,0x3, 0x4e,0x20,0x80,0x14,0x78, +0xf4,0x7d,0xc1,0x1b,0x5a,0xc0,0xb, 0x90,0x7e,0x83,0x2a,0x94,0xbc,0x89,0x38,0xbc, +0x22,0x7c,0x9b,0x7f,0x71,0x7e,0x7b,0x80,0x4c,0x88,0x78,0x7, 0x7e,0xb, 0x90,0x7a, +0x7b,0x90,0x22,0xa, 0x28,0x7e,0xb, 0x80,0xa, 0x38,0x9d,0x32,0x12,0x17,0x80,0xe5, +0x29,0xa, 0x2b,0xbd,0x32,0x8, 0x15,0x7e,0x7b,0xa0,0x7e,0xb, 0xb0,0xbc,0xba,0x7c, +0xba,0x28,0x4, 0x2c,0xb9,0x80,0x2, 0x9c,0xb9,0x7a,0x7b,0xb0,0x7e,0x7b,0x70,0x7a, +0xb, 0x70,0x22,0xca,0x3b,0x75,0x24,0x0, 0x6c,0xff,0x75,0x25,0x0, 0x75,0x26,0x0, +0x75,0x28,0x3, 0x6c,0xee,0x7e,0x48,0x29,0xbc,0x7e,0xb3,0x2a,0x29,0x70,0xf, 0x7e, +0xb3,0x2a,0x25,0x70,0x9, 0x7e,0xb3,0x2a,0x26,0x70,0x3, 0x2, 0x69,0xb9,0x30,0xe, +0x6, 0x7e,0x68,0x33,0x47,0x80,0x4, 0x7e,0x68,0x33,0x9, 0x7f,0x6, 0x12,0x4f,0xf4, +0x7e,0x73,0x2a,0x22,0x7a,0x6b,0x70,0x6c,0xdd,0x21,0x6a,0x74,0x9, 0xac,0xbd,0x9, +0xc5,0x29,0xc, 0x7c,0xbc,0x54,0xf, 0xa, 0x3b,0x12,0x69,0xe4,0xf5,0x28,0x7c,0xbc, +0x54,0xf0,0xbe,0xb0,0x0, 0x28,0x2, 0x21,0x68,0xe5,0x28,0xbe,0xb0,0x3, 0x78,0x2, +0x21,0x68,0x7e,0x8, 0x0, 0x28,0x7c,0xbc,0x12,0x69,0xf4,0x50,0x2, 0x21,0x68,0x74, +0x9, 0xac,0xbd,0x9, 0xb5,0x29,0xd, 0xf5,0x25,0x74,0x9, 0xac,0xbd,0x9, 0xb5,0x29, +0xe, 0xc4,0x54,0xf0,0xf5,0x26,0x7e,0x73,0x2a,0x6c,0xbc,0x7c,0x28,0x57,0x7e,0xb3, +0x2a,0x27,0x70,0x2a,0x75,0x29,0xf, 0x7e,0x8, 0x0, 0x25,0xa, 0x3c,0x2e,0x34,0x32, +0xf5,0x6d,0x22,0x74,0x1, 0x12,0x67,0x81,0x75,0x29,0x20,0x7e,0x8, 0x0, 0x26,0xa, +0x3c,0x2e,0x34,0x32,0xff,0x6d,0x22,0x74,0x10,0x12,0x67,0x81,0x80,0xe, 0xa, 0x3c, +0x9, 0xb3,0x32,0xf5,0xf5,0x25,0x9, 0xb3,0x32,0xff,0xf5,0x26,0xa, 0x3c,0x12,0x69, +0xe4,0xb4,0x1, 0x11,0xe4,0xa, 0x3c,0x19,0xb3,0x32,0xf5,0x19,0xb3,0x32,0xff,0x75, +0x25,0x0, 0x75,0x26,0x0, 0x7e,0xb3,0x2a,0x83,0xb4,0xff,0x13,0x75,0x25,0x0, 0x74, +0x9, 0xac,0xbd,0x9, 0xb5,0x29,0xc, 0xbe,0xb0,0xff,0x68,0x3, 0x75,0x25,0x1, 0x7e, +0x90,0x9, 0xac,0x9d,0x49,0xb4,0x29,0x8, 0x49,0xa4,0x29,0xa, 0xe5,0x28,0xb4,0x1, +0x27,0x75,0x27,0x0, 0x7e,0x71,0x27,0x74,0x9, 0xac,0x7b,0x9, 0xb3,0x33,0x89,0x54, +0xf, 0xbc,0xbc,0x78,0xa, 0x49,0xb3,0x33,0x85,0x49,0xa3,0x33,0x87,0x80,0x9, 0x5, +0x27,0xe5,0x27,0xbe,0xb0,0xa, 0x40,0xdc,0x5e,0xb4,0xf, 0xff,0x5e,0xa4,0xf, 0xff, +0x9, 0x74,0x29,0xc, 0xa, 0x57,0xc4,0x54,0xf0,0x7c,0xab,0xe4,0x2d,0xa5,0xbe,0x70, +0xff,0x68,0x16,0xe5,0x28,0xbe,0xb0,0x1, 0x68,0x2, 0x5, 0x24,0xb, 0xf0,0xe5,0x28, +0xa, 0x5b,0x12,0x69,0xec,0x2d,0xb5,0x80,0x4, 0x2e,0xb4,0xc0,0x0, 0x7e,0x70,0x6, +0xac,0x7e,0x7f,0x6, 0x2d,0x13,0x79,0xb0,0x0, 0x2, 0x7f,0x6, 0x2d,0x13,0x79,0xa0, +0x0, 0x4, 0xe5,0x25,0x7f,0x6, 0x2d,0x13,0x39,0xb0,0x0, 0x6, 0xe5,0x26,0x2d,0x3d, +0x7d,0x2c,0x39,0xb1,0x0, 0x7, 0xb, 0xe0,0xb, 0xd0,0x7e,0x73,0x2a,0x6c,0xbc,0x7d, +0x28,0x2, 0x1, 0xb, 0xe5,0x24,0x39,0xb6,0x0, 0x1, 0x7e,0xb3,0x37,0x2e,0xb4,0x1, +0x9, 0x7e,0xb3,0x2a,0x26,0xb4,0x1, 0x17,0x80,0xd, 0xbe,0xf0,0x0, 0x38,0x6, 0x7e, +0xb3,0x2a,0x26,0x60,0xa, 0xb2,0xe, 0x12,0x66,0x9d,0x74,0x1, 0x12,0x26,0x7b,0x7e, +0xb3,0x2a,0x25,0x60,0x5, 0x7f,0x4, 0x12,0x25,0x6e,0xe4,0x7a,0xb3,0x2a,0x29,0x7a, +0xb3,0x2a,0x25,0x7a,0xb3,0x2a,0x26,0x80,0x4, 0xe4,0x12,0x26,0x7b,0x7e,0x34,0x0, +0x5a,0xca,0x39,0x7e,0x18,0x29,0x8, 0x7e,0x8, 0x33,0x85,0x12,0x17,0x29,0x1b,0xfd, +0x4c,0xff,0x78,0xd, 0x7e,0x8, 0x33,0x85,0x7e,0x34,0x0, 0x5a,0x74,0xff,0x12,0x17, +0x4e,0xda,0x3b,0x22,0x2d,0x39,0x7d,0x28,0x7e,0x1b,0xb0,0x22,0x3, 0x3, 0x54,0xc0, +0x7c,0xab,0xe4,0x22,0x7c,0xab,0x7e,0xb, 0xb0,0x60,0x3, 0xb4,0x2, 0x31,0xa, 0x4a, +0x9, 0x74,0x34,0xa1,0xbe,0x73,0x34,0xab,0x50,0xe, 0x7d,0x24,0x2e,0x24,0x34,0xa1, +0x7c,0xb7,0x4, 0x7a,0x29,0xb0,0xd3,0x22,0xbe,0x73,0x34,0xab,0x40,0x9, 0xbe,0x70, +0xff,0x68,0x4, 0xe4,0x7a,0xb, 0xb0,0x74,0xff,0x19,0xb4,0x34,0xa1,0x80,0x17,0xa, +0x3a,0x9, 0xb3,0x34,0xa1,0xbe,0xb0,0xff,0x68,0x7, 0xe4,0x19,0xb3,0x34,0xa1,0xd3, +0x22,0xe4,0x19,0xb3,0x34,0xa1,0xc3,0x22,0x7f,0x71,0x69,0x37,0x0, 0x2, 0x7d,0x53, +0x12,0x69,0xec,0xb, 0x7a,0x20,0x2d,0x25,0x1b,0xa, 0x20,0x69,0x27,0x0, 0x4, 0x7d, +0x52,0xc4,0x54,0xf0,0x7c,0xab,0xe4,0x1e,0x34,0x1e,0x34,0x2d,0x35,0x79,0x30,0x0, +0x2, 0x69,0x37,0x0, 0x6, 0x7d,0x53,0x7c,0xab,0xe4,0x3e,0x54,0x3e,0x54,0x1e,0x24, +0x1e,0x24,0x1e,0x24,0x1e,0x24,0x2d,0x25,0x79,0x20,0x0, 0x4, 0x69,0x27,0x0, 0x8, +0x7c,0x45,0x6c,0x55,0x12,0x4f,0xeb,0x1e,0x34,0x1e,0x34,0x2d,0x32,0x79,0x30,0x0, +0x6, 0x22,0xca,0xf8,0x7e,0xa3,0x2a,0x20,0x4c,0xaa,0x78,0x11,0x7e,0xb3,0x2a,0x21, +0xbe,0xb0,0x0, 0x28,0x13,0x74,0x1, 0x7a,0xb3,0x2a,0x25,0x80,0xb, 0xbe,0xa0,0x0, +0x28,0x6, 0x74,0x1, 0x7a,0xb3,0x2a,0x29,0x7e,0x34,0x0, 0x5a,0xca,0x39,0x7e,0x18, +0x28,0xae,0x7e,0x8, 0x29,0x8, 0x12,0x17,0x29,0x1b,0xfd,0x6c,0xff,0x74,0x9, 0xac, +0xbf,0x49,0x35,0x28,0xae,0x12,0x6b,0x4, 0x74,0x9, 0xac,0xbf,0x59,0x35,0x29,0x8, +0x49,0x35,0x28,0xb0,0x12,0x6c,0xe2,0x12,0x6d,0xd5,0xb, 0xf0,0xbe,0xf0,0xa, 0x40, +0xdc,0xda,0xf8,0x22,0x7d,0xd3,0x7e,0x44,0x2, 0xd0,0x7e,0xa3,0x2a,0x8e,0x74,0x40, +0xa4,0x7d,0xb5,0x1b,0xb4,0xbe,0xd4,0x0, 0x3f,0x38,0x29,0x7e,0xe4,0x0, 0x3f,0x9d, +0xed,0x7e,0xf4,0x1, 0xfb,0xad,0xef,0x7d,0x3f,0x7d,0x2e,0x12,0x6b,0xe1,0x7f,0x71, +0xbe,0x78,0x0, 0x34,0x40,0x4, 0x7e,0x78,0x0, 0x34,0x7e,0x18,0x0, 0x34,0x9f,0x17, +0x7f,0x71,0x61,0xd3,0x7d,0xcb,0x9e,0xc4,0x0, 0x3f,0xbd,0xcd,0x38,0x24,0x7d,0x5d, +0x9d,0x5c,0x7e,0xf4,0x2, 0x28,0xad,0xf5,0x7d,0x3f,0x7d,0x2e,0x12,0x6b,0xe1,0x7f, +0x71,0xbe,0x78,0x0, 0x32,0x40,0x4, 0x7e,0x78,0x0, 0x31,0x12,0x6c,0xd9,0x2f,0x71, +0x80,0x61,0x7d,0xcb,0xb, 0xc4,0x1e,0xc4,0x7d,0x5c,0x1b,0x54,0xbd,0x5d,0x40,0xc, +0x7d,0xf5,0x9d,0xfd,0x6d,0xee,0x7e,0x14,0x0, 0xdf,0x80,0xa, 0x7d,0xfd,0x9d,0xfc, +0x6d,0xee,0x7e,0x14,0x0, 0xe3,0x7f,0x17,0x12,0x15,0x6c,0x7f,0x71,0x12,0x6b,0xe1, +0x7f,0x71,0xbd,0x5d,0x7d,0x34,0x40,0xc, 0x1e,0x34,0x1b,0x34,0x6d,0x22,0x9f,0x17, +0x7f,0x71,0x80,0x6, 0x1e,0x34,0x6d,0x22,0x2f,0x71,0xbe,0x78,0x0, 0x34,0x50,0x6, +0x7e,0x78,0x0, 0x34,0x80,0xd, 0x12,0x6c,0xd9,0x7d,0x13,0x6d,0x0, 0xbf,0x70,0x28, +0x2, 0x7f,0x71,0x7d,0x3f,0x22,0x9d,0x32,0x12,0x17,0x80,0x7d,0x13,0x7d,0x30,0xad, +0x31,0x7c,0x76,0x7c,0x65,0xa, 0x24,0x22,0xca,0x79,0x7c,0xe5,0x7c,0xfb,0x7e,0xe4, +0xff,0xfc,0x7c,0xb4,0x12,0x88,0x7d,0x7d,0x3, 0x7e,0x70,0x9, 0xac,0x7e,0x49,0x13, +0x28,0xb0,0xbe,0x14,0x2, 0x60,0x50,0x5, 0x12,0x6c,0xce,0x40,0xb, 0xbe,0x14,0x69, +0xb0,0x28,0x1f,0x12,0x6c,0xce,0x28,0x1a,0x3e,0x4, 0xbe,0x14,0x2, 0x30,0x50,0x5, +0x12,0x6c,0xce,0x40,0xb, 0xbe,0x14,0x69,0xe0,0x28,0x7, 0x12,0x6c,0xce,0x28,0x2, +0x3e,0x4, 0xbe,0x4, 0x1, 0x0, 0x28,0x4, 0x7e,0x4, 0x1, 0x0, 0x74,0x9, 0xac,0xbf, +0x49,0x25,0x29,0x62,0x49,0x33,0x28,0xae,0x12,0x6b,0xd6,0x7d,0x13,0x5d,0x1e,0x7e, +0x70,0x9, 0xac,0x7f,0x49,0xf3,0x29,0x62,0x74,0x9, 0xac,0xbe,0x49,0x25,0x28,0xae, +0xbd,0x2f,0x28,0xf, 0x7d,0x53,0x2e,0x54,0x29,0x62,0x7d,0x2f,0x2d,0x21,0x1b,0x58, +0x20,0x80,0xd, 0xbd,0xf1,0x40,0x9, 0x2e,0x34,0x29,0x62,0x9d,0xf1,0x1b,0x38,0xf0, +0x74,0x9, 0xac,0xbf,0x49,0x25,0x29,0x64,0x74,0x9, 0xac,0xbe,0x49,0x35,0x28,0xb0, +0x12,0x6b,0xd6,0x7d,0x13,0x5d,0x1e,0x7e,0x50,0x9, 0xac,0x5f,0x49,0x32,0x29,0x64, +0x74,0x9, 0xac,0xbe,0x49,0x5, 0x28,0xb0,0xbd,0x3, 0x28,0xd, 0x7d,0x2, 0x2e,0x4, +0x29,0x64,0x2d,0x13,0x1b,0x8, 0x10,0x80,0x12,0xbd,0x31,0x40,0xe, 0x7e,0x50,0x9, +0xac,0x5f,0x2e,0x24,0x29,0x64,0x9d,0x31,0x1b,0x28,0x30,0xda,0x79,0x22,0x74,0x9, +0xac,0xbf,0x49,0x25,0x29,0x64,0xbd,0x12,0x22,0x7d,0x34,0x6d,0x22,0x9e,0x18,0x0, +0x32,0x22,0x7d,0xf3,0x9f,0x11,0x7e,0x44,0x5, 0x0, 0x7e,0xa3,0x2a,0x8f,0x74,0x40, +0xa4,0x7d,0xd5,0x1b,0xd4,0xbe,0xf4,0x0, 0x3f,0x38,0x1f,0x7e,0x24,0x0, 0x3f,0x9d, +0x2f,0x7e,0x34,0x1, 0xb8,0x12,0x6d,0xba,0xbe,0x18,0x0, 0x37,0x40,0x4, 0x7e,0x18, +0x0, 0x37,0x7e,0x8, 0x0, 0x37,0x9f,0x1, 0x7f,0x10,0x7d,0x5d,0x9e,0x54,0x0, 0x3f, +0xbd,0x5f,0x38,0x1f,0x12,0x6d,0xcc,0x40,0x1a,0x7d,0x3d,0x9e,0x34,0x0, 0x40,0x12, +0x6d,0xb2,0xbe,0x18,0x0, 0x37,0x40,0x4, 0x7e,0x18,0x0, 0x36,0x12,0x6d,0xc3,0x2f, +0x10,0x80,0x14,0x12,0x6d,0xcc,0x50,0xf, 0x7d,0x3d,0x9e,0x34,0x0, 0x20,0x12,0x6d, +0xb2,0x7d,0x14,0x6d,0x0, 0x2f,0x10,0xbe,0xf4,0x0, 0x3f,0x28,0x54,0xbd,0x5f,0x28, +0x50,0x7d,0xed,0xb, 0xe4,0x1e,0xe4,0x7d,0x5e,0x1b,0x54,0xbd,0x5f,0x40,0x6, 0x7d, +0x35,0x9d,0x3f,0x80,0x4, 0x7d,0x3f,0x9d,0x3e,0x6d,0x22,0x7e,0x14,0x0, 0xe0,0x12, +0x15,0x6c,0x12,0x6d,0xbc,0xbd,0x5f,0x7d,0x14,0x40,0xc, 0x1e,0x14,0x1b,0x14,0x6d, +0x0, 0x9f,0x1, 0x7f,0x10,0x80,0x6, 0x1e,0x14,0x6d,0x0, 0x2f,0x10,0xbe,0x18,0x0, +0x37,0x50,0x5, 0x7e,0x18,0x0, 0x37,0x22,0x12,0x6d,0xc3,0xbf,0x10,0x28,0x2, 0x7f, +0x10,0x22,0x7d,0x2f,0x9d,0x23,0x7e,0x34,0x1, 0xba,0xad,0x23,0x7c,0x76,0x7c,0x65, +0x1a,0x24,0x22,0x7d,0x14,0x6d,0x0, 0x9e,0x8, 0x0, 0x37,0x22,0x7d,0xed,0x9e,0xe4, +0x0, 0xb, 0xbd,0xef,0x22,0x74,0x9, 0xac,0xbf,0x59,0x35,0x29,0xa, 0x22,0xca,0xd8, +0xca,0x79,0x7e,0x44,0x5, 0x0, 0x6c,0xff,0x7e,0x70,0x9, 0xac,0x7f,0x9, 0xe3,0x29, +0xc, 0x5e,0xe0,0xf, 0x49,0xc3,0x29,0xa, 0x7d,0x24,0x2e,0x24,0x0, 0x14,0xbd,0xc2, +0x40,0x3f,0x49,0xd3,0x29,0x8, 0x7d,0x3d,0x12,0x92,0x3a,0x7c,0xdb,0xbe,0xd0,0x3, +0x40,0xe, 0x7d,0x34,0x1b,0x34,0x12,0x6d,0xd5,0x7c,0xbe,0x12,0x6e,0x6c,0x80,0x40, +0x7e,0x70,0x2, 0xac,0x7d,0x2e,0x34,0x60,0xc5,0x7e,0x24,0x0, 0xff,0xb, 0x1a,0xd0, +0x74,0x9, 0xac,0xbf,0x59,0xd5,0x29,0x8, 0x7e,0x34,0x7, 0xd0,0x12,0x6d,0xd5,0x80, +0x1f,0xbd,0xc4,0x40,0x1b,0x7d,0x54,0x2e,0x54,0x0, 0xa, 0xbd,0xc5,0x40,0x5, 0x7c, +0xbe,0x12,0x6e,0x6c,0x7d,0xc4,0x1b,0xc4,0x74,0x9, 0xac,0xbf,0x59,0xc5,0x29,0xa, +0xb, 0xf0,0xbe,0xf0,0xa, 0x40,0x81,0xda,0x79,0xda,0xd8,0x22,0x7c,0xab,0x7e,0x8, +0x29,0xbc,0xbe,0xa0,0xa, 0x50,0x1f,0xa, 0x3a,0x7f,0x70,0x2d,0xf3,0x7e,0x7b,0xb0, +0xb4,0x2, 0x4, 0x74,0x1, 0x80,0x2, 0x74,0x3, 0x7a,0x7b,0xb0,0x74,0x3, 0x2d,0x31, +0x7d,0x20,0x39,0xb1,0x0, 0xa, 0x22,0xca,0xf8,0x7e,0x68,0x29,0xbc,0x6c,0xaa,0x7e, +0x70,0xff,0x12,0x71,0x23,0xe4,0xa, 0x4a,0x19,0xb4,0x1f,0x34,0x74,0xff,0x19,0xb4, +0x1f,0x46,0x19,0xb4,0x1f,0x50,0xb, 0xa0,0xbe,0xa0,0xa, 0x78,0xe2,0x7e,0x73,0x2a, +0x20,0xa5,0xbf,0x0, 0x23,0x7e,0xb3,0x34,0x4f,0x70,0x3, 0x2, 0x70,0x99,0x6c,0xaa, +0x7e,0x44,0x7f,0xff,0x12,0xa9,0x2d,0x79,0x40,0x0, 0x14,0x12,0x71,0x1a,0xb, 0xa0, +0xbe,0xa0,0xa, 0x78,0xeb,0x2, 0x70,0x99,0x7e,0xb3,0x34,0x4f,0x70,0x3e,0xbe,0x70, +0x0, 0x28,0x39,0x6c,0xaa,0x80,0x2a,0x7e,0x90,0x9, 0xac,0x9a,0x49,0x34,0x28,0xae, +0x12,0xa9,0x2d,0x79,0x30,0x0, 0x14,0x49,0x34,0x28,0xb0,0x7f,0x6, 0x2d,0x12,0x79, +0x30,0x0, 0x28,0x74,0x1, 0xa, 0x3a,0x19,0xb3,0x1f,0x34,0x19,0xa4,0x28,0xb2,0xb, +0xa0,0x7e,0xb3,0x2a,0x20,0xbc,0xba,0x38,0xce,0x2, 0x70,0x99,0x6c,0xaa,0x12,0x25, +0xa9,0x3e,0x34,0x59,0x43,0x15,0x4e,0x59,0x43,0x15,0x50,0x59,0x43,0x15,0x76,0x59, +0x43,0x15,0x78,0xb, 0xa0,0xbe,0xa0,0xa, 0x78,0xe4,0x6c,0xaa,0x80,0x3b,0x6c,0xff, +0x7e,0x70,0x2, 0xac,0x7f,0x7f,0x6, 0x2d,0x13,0x69,0x30,0x0, 0x14,0xbe,0x34,0x7f, +0xff,0x68,0x1d,0xa, 0x4f,0x9, 0xb4,0x1f,0x50,0xb4,0xff,0x14,0x12,0xa9,0x73,0x59, +0x32,0x15,0x4e,0x69,0x30,0x0, 0x28,0x59,0x32,0x15,0x50,0x12,0xa8,0xde,0x80,0x7, +0xb, 0xf0,0xbe,0xf0,0xa, 0x40,0xc9,0xb, 0xa0,0x7e,0xb3,0x34,0x4f,0xbc,0xba,0x38, +0xbd,0x6c,0xaa,0xa, 0x3a,0x9, 0xb3,0x1f,0x46,0xb4,0xff,0x17,0x6c,0xff,0xa, 0x4f, +0x9, 0xb4,0x1f,0x50,0xb4,0xff,0x5, 0x12,0xa8,0xde,0x80,0x7, 0xb, 0xf0,0xbe,0xf0, +0xa, 0x40,0xeb,0xb, 0xa0,0xbe,0xa0,0xa, 0x78,0xd9,0x6c,0xaa,0x80,0x1a,0x7e,0x70, +0x9, 0xac,0x7a,0x49,0x43,0x28,0xae,0x12,0xa9,0x73,0x59,0x42,0x15,0x76,0x49,0x33, +0x28,0xb0,0x59,0x32,0x15,0x78,0xb, 0xa0,0x7e,0xb3,0x2a,0x20,0xbc,0xba,0x38,0xde, +0x7e,0x34,0x15,0x4e,0x7a,0x37,0x1f,0x40,0x7e,0x34,0x15,0x76,0x7a,0x37,0x1f,0x42, +0x7e,0x34,0x15,0x9e,0x7a,0x37,0x1f,0x44,0x7e,0x73,0x34,0x4f,0x7a,0x73,0x1f,0x3e, +0x7e,0x73,0x2a,0x20,0x7a,0x73,0x1f,0x3f,0x7e,0x8, 0x1f,0x3e,0x12,0x4, 0xad,0x6c, +0xaa,0x80,0x57,0x7e,0x70,0xff,0x6c,0xff,0x7e,0x50,0x2, 0xac,0x5f,0x49,0x12,0x15, +0x9e,0xa, 0x2a,0xbd,0x21,0x78,0x8, 0xa, 0x3f,0x9, 0x73,0x1f,0x46,0x80,0x7, 0xb, +0xf0,0xbe,0xf0,0xa, 0x40,0xe2,0xbe,0x70,0xff,0x68,0x2d,0x12,0x71,0x23,0x74,0x1, +0xa, 0x47,0x19,0xb4,0x1f,0x34,0x7e,0x90,0x9, 0xac,0x9a,0x49,0x24,0x28,0xae,0x7e, +0x30,0x2, 0xac,0x37,0x2d,0x1d,0x7d,0xc, 0x79,0x20,0x0, 0x14,0x49,0x44,0x28,0xb0, +0x7e,0x50,0x2, 0xac,0x57,0x12,0x71,0x1a,0xb, 0xa0,0x7e,0x63,0x2a,0x20,0xbc,0x6a, +0x38,0xa1,0x6c,0xaa,0xa, 0x3a,0x9, 0xb3,0x1f,0x34,0xbe,0xb0,0x1, 0x68,0x13,0x12, +0x25,0xa9,0x7f,0x6, 0x2d,0x13,0x79,0x40,0x0, 0x14,0x2d,0x3d,0x7d,0x2c,0x79,0x41, +0x0, 0x28,0xb, 0xa0,0xbe,0xa0,0xa, 0x78,0xdb,0x7e,0xf3,0x2a,0x20,0x7a,0xf3,0x34, +0x4f,0x6c,0xaa,0xa, 0x3a,0x9, 0xb3,0x1f,0x34,0xb4,0x1, 0x2c,0x12,0x71,0x13,0x29, +0xb1,0x0, 0xa, 0xb4,0x1, 0x6, 0x74,0x3, 0x39,0xb1,0x0, 0xa, 0x12,0x71,0x13,0x29, +0x31,0x0, 0xa, 0xa5,0xbb,0x3, 0x6, 0xe4,0x7a,0x1b,0xb0,0x80,0x32,0xa5,0xbb,0x0, +0x2e,0x74,0x2, 0x7a,0x1b,0xb0,0x80,0x27,0x12,0x71,0x13,0x29,0xb1,0x0, 0xa, 0xbe, +0xb0,0x2, 0x68,0x2, 0x70,0x14,0x74,0x1, 0x7a,0x1b,0xb0,0x7c,0x2f,0xb, 0xf0,0x7e, +0x30,0x9, 0xac,0x23,0x19,0xa1,0x28,0xb2,0x80,0x5, 0x74,0x3, 0x7a,0x1b,0xb0,0x12, +0x71,0x13,0x7e,0x1b,0xb0,0x39,0xb1,0x0, 0xa, 0xb, 0xa0,0xbe,0xa0,0xa, 0x40,0x93, +0xda,0xf8,0x22,0xa, 0x3a,0x2d,0x3d,0x7d,0x2c,0x22,0x7f,0x6, 0x2d,0x12,0x79,0x40, +0x0, 0x28,0x22,0x7e,0x50,0x9, 0xac,0x5a,0x19,0x72,0x28,0xb2,0x22,0xca,0x79,0x6c, +0xff,0x7e,0xd7,0x2a,0x79,0x6c,0xee,0x80,0x35,0x7c,0xbe,0x12,0x71,0x7e,0xbd,0x3d, +0x48,0x2a,0x7c,0xbe,0x12,0x1f,0xd4,0x60,0x23,0x7e,0xc4,0x0, 0x9, 0xca,0xc9,0x7e, +0x70,0x9, 0xac,0x7e,0x2e,0x34,0x27,0x76,0x6d,0x22,0x7e,0x30,0x9, 0xac,0x3f,0x2e, +0x14,0x28,0xae,0x6d,0x0, 0x12,0x17,0x29,0x1b,0xfd,0xb, 0xf0,0xb, 0xe0,0x12,0x77, +0xc0,0x38,0xc6,0x7a,0x73,0x28,0x93,0x7a,0xf3,0x2a,0x20,0xda,0x79,0x22,0x7c,0xab, +0x7e,0x70,0x2, 0xac,0x7a,0x12,0x8c,0x99,0x2, 0x1e,0x80,0xca,0x79,0x6c,0x88,0x80, +0x65,0x74,0x2, 0xac,0xb8,0x9, 0xf5,0x26,0xfa,0x12,0x77,0xed,0x7c,0xbf,0x12,0x91, +0xb9,0x50,0x51,0x6c,0xee,0x80,0x48,0xbc,0xe8,0x68,0x42,0x7e,0x70,0x2, 0xac,0x7e, +0x12,0x8e,0xca,0x6c,0x99,0x7e,0xb3,0x2a,0x8f,0x14,0xbe,0xb1,0x26,0x78,0xe, 0xa, +0x2f,0xe5,0x25,0xa, 0x3b,0x12,0x2d,0x16,0x18,0x3, 0x7e,0x90,0x1, 0xbe,0x90,0x1, +0x78,0x1b,0x7c,0xbe,0x12,0x71,0x7e,0x7d,0xf3,0x7c,0xb8,0x12,0x71,0x7e,0xbd,0x3f, +0x8, 0x4, 0x7c,0xbe,0x80,0x2, 0x7c,0xb8,0x6c,0x77,0x12,0x2f,0x4c,0xb, 0xe0,0x12, +0x77,0xc0,0x38,0xb3,0xb, 0x80,0x12,0x77,0xe6,0x38,0x96,0xda,0x79,0x22,0xca,0xd8, +0xca,0x79,0x7e,0xa3,0x2a,0x8d,0x7e,0x47,0x28,0x99,0xe4,0x7a,0xb3,0x28,0xa6,0x7e, +0xb3,0x26,0xf0,0xbe,0xb0,0x0, 0x28,0x4c,0x7e,0x73,0x28,0x85,0xbe,0x70,0x0, 0x28, +0x43,0x6c,0xff,0x80,0x3b,0x7e,0x50,0x2, 0xac,0x5f,0x9, 0xd2,0x27,0x36,0x9, 0xe2, +0x27,0x37,0x7e,0x50,0x2, 0xac,0x5e,0x49,0x12,0x4, 0xfc,0x6d,0x22,0x9e,0x27,0x2a, +0x72,0xbd,0x12,0x58,0x19,0x12,0x76,0x55,0x49,0x12,0x4, 0xfc,0x6d,0x22,0x9e,0x27, +0x2a,0x70,0xbd,0x12,0x58,0x8, 0x74,0x1, 0x7a,0xb3,0x28,0xa6,0x80,0x6, 0xb, 0xf0, +0xbc,0x7f,0x38,0xc1,0xe4,0x7a,0xb3,0x28,0xa7,0x7e,0xb3,0x26,0x83,0x70,0x40,0x12, +0x74,0xa6,0x28,0x3b,0x6c,0xff,0x80,0x33,0x7e,0x50,0x2, 0xac,0x5f,0x9, 0xd2,0x26, +0xfa,0x9, 0xe2,0x26,0xfb,0x12,0x76,0x55,0x49,0x2, 0x5, 0x7a,0x6d,0x11,0x9d,0x14, +0xbd,0x1, 0x48,0xd, 0x7e,0x10,0x2, 0xac,0x1e,0x49,0x20,0x5, 0x7a,0xbd,0x21,0x58, +0x8, 0x74,0x1, 0x7a,0xb3,0x28,0xa7,0x80,0x6, 0xb, 0xf0,0xbc,0x7f,0x38,0xc9,0x12, +0x9a,0xea,0xe4,0x7a,0xb3,0x28,0xa9,0x7e,0x37,0x28,0x88,0x2e,0x37,0x28,0x86,0xbe, +0x37,0x28,0x9f,0x28,0x6, 0x74,0x1, 0x7a,0xb3,0x28,0xa9,0x74,0x1, 0x7a,0xb3,0x28, +0xaa,0x6c,0xff,0x80,0x1f,0x12,0x73,0x10,0x49,0x25,0x25,0xf7,0x7d,0x43,0x9d,0x42, +0x7d,0x34,0x12,0x17,0x80,0xbe,0x37,0x28,0x9d,0x8, 0x7, 0xe4,0x7a,0xb3,0x28,0xaa, +0x80,0x7, 0xb, 0xf0,0x12,0x73,0x1a,0x38,0xdc,0x6c,0xff,0x80,0x9, 0x12,0x73,0x10, +0x59,0x35,0x25,0xf7,0xb, 0xf0,0x12,0x73,0x1a,0x38,0xf2,0xda,0x79,0xda,0xd8,0x22, +0x7c,0xbf,0x12,0x71,0x7e,0x74,0x2, 0xac,0xbf,0x22,0x7e,0x73,0x28,0x84,0xbc,0x7f, +0x22,0xca,0xd8,0xca,0x79,0xc2,0x3, 0x6d,0x88,0x7a,0x87,0x38,0x4a,0xe4,0x7a,0xb3, +0x1f,0x58,0xe5,0x1d,0xbe,0xb0,0xff,0x50,0x2, 0x5, 0x1d,0x7e,0xb3,0x28,0x84,0x60, +0xa, 0x7e,0x87,0x7, 0xfa,0xbe,0x84,0x1, 0x18,0x58,0xa, 0xc2,0x10,0x6d,0x88,0x7a, +0x87,0x38,0xb, 0x81,0x44,0x12,0x82,0xea,0x60,0x10,0x7e,0x84,0x0, 0x64,0x7a,0x87, +0x38,0x1, 0x7e,0x84,0x0, 0x32,0x7a,0x87,0x38,0xb, 0x7e,0x87,0x38,0x1, 0x4d,0x88, +0x68,0x6, 0x74,0x1, 0x7a,0xb3,0x28,0xa9,0x6c,0xff,0x80,0x76,0xe4,0xa, 0x3f,0x19, +0xb3,0x1f,0x34,0x12,0x76,0x7b,0x7e,0x8, 0x1f,0x52,0x7c,0xbd,0x7c,0x7e,0x12,0x81, +0xa5,0x7d,0x93,0x7e,0x87,0x38,0xb, 0xbd,0x89,0x50,0x4, 0x7a,0x97,0x38,0xb, 0x7e, +0x87,0x38,0x4a,0xbd,0x89,0x50,0x4, 0x7a,0x97,0x38,0x4a,0xe5,0x1d,0xbe,0xb0,0x5, +0x38,0x1f,0x7e,0x8, 0x38,0xd, 0x12,0x76,0xd4,0x50,0x7, 0x12,0x76,0x67,0xd2,0x3, +0x80,0x2e,0x7e,0x8, 0x38,0xd, 0x7e,0x18,0x1f,0x52,0x12,0x83,0x3c,0x50,0x21,0x80, +0xf, 0xbe,0x94,0x0, 0x32,0x40,0x19,0x7e,0x8, 0x1f,0x52,0x12,0x7f,0xcb,0x50,0x10, +0x12,0x76,0x67,0x7e,0x8, 0x1f,0x58,0x7e,0x18,0x1f,0x52,0x12,0x82,0xc4,0xd2,0x3, +0xb, 0xf0,0x12,0x73,0x1a,0x38,0x85,0x30,0x3, 0x30,0x6c,0xff,0x80,0x1c,0x12,0x76, +0x7b,0x7e,0x8, 0x1f,0x58,0x12,0x76,0xd4,0x40,0x9, 0xa, 0x3f,0x9, 0xb3,0x1f,0x34, +0xb4,0x1, 0x5, 0x7c,0xbf,0x12,0x76,0xb0,0xb, 0xf0,0x12,0x73,0x1a,0x38,0xdf,0x75, +0x1d,0x0, 0x7e,0x34,0x0, 0x64,0x7a,0x37,0x38,0x1, 0x7e,0x63,0x1f,0x58,0x7e,0x70, +0x6, 0xac,0x67,0xb, 0x34,0xca,0x39,0x7e,0x18,0x1f,0x58,0x7e,0x8, 0x38,0xd, 0x12, +0x17,0x29,0x1b,0xfd,0x7e,0x37,0x38,0x1, 0x4d,0x33,0x78,0x34,0x7e,0x37,0x38,0xb, +0xbe,0x34,0x0, 0x32,0x40,0x3e,0x7e,0x37,0x38,0x4a,0xbe,0x34,0x0, 0x19,0x40,0x34, +0x90,0x60,0x51,0x12,0x76,0x5e,0x7e,0x73,0x26,0xf7,0xa, 0x37,0xbd,0x32,0x8, 0x24, +0x90,0x60,0x50,0x12,0x76,0x5e,0x7e,0x73,0x26,0xf6,0xa, 0x37,0xbd,0x32,0x8, 0x14, +0x6c,0xff,0x80,0x7, 0x7c,0xbf,0x12,0x76,0xb0,0xb, 0xf0,0x12,0x73,0x1a,0x38,0xf4, +0xd2,0x3, 0x80,0x6, 0x6d,0x33,0x7a,0x37,0x38,0xb, 0xa2,0x3, 0x92,0x10,0x12,0x77, +0xcf,0xda,0x79,0xda,0xd8,0x22,0x7e,0x73,0x28,0x84,0xbe,0x70,0x0, 0x22,0xca,0xf8, +0x7e,0xf0,0x1, 0x7e,0xb3,0x2f,0xc8,0xbe,0xb0,0xff,0x50,0x5, 0x4, 0x7a,0xb3,0x2f, +0xc8,0x12,0xa8,0xb4,0x7e,0x44,0x1, 0x18,0x7e,0xd4,0x0, 0xb4,0xe4,0x7a,0xb3,0x28, +0xac,0x12,0x5e,0xed,0x7e,0xc4,0xfe,0x5c,0x7e,0x57,0x7, 0xfe,0xbe,0x54,0xfc,0xb8, +0x58,0x15,0x7e,0x57,0x7, 0xfc,0xbd,0x5c,0x58,0xd, 0x12,0x76,0x70,0x8, 0x8, 0x12, +0x91,0xcb,0x60,0x3, 0x12,0x76,0x9f,0x12,0x91,0xcb,0xa, 0x5b,0x4d,0x55,0x68,0x3b, +0x6d,0x55,0x9d,0x54,0xbe,0x57,0x7, 0xfe,0x18,0x6, 0xbe,0x57,0x7, 0xfc,0x8, 0x2b, +0x12,0x76,0x70,0x8, 0x26,0x7e,0x37,0x28,0x8e,0x12,0x17,0x80,0xbe,0x37,0x28,0x8a, +0x8, 0x19,0x12,0x74,0xa6,0x28,0x14,0x7e,0x73,0x28,0x85,0xbe,0x70,0x1, 0x28,0xb, +0x7e,0xc7,0x7, 0xfa,0xbd,0xc4,0x58,0x3, 0x12,0x76,0x9f,0x12,0x93,0xe5,0x40,0x5, +0xe4,0x7a,0xb3,0x28,0xa8,0x12,0x76,0x4d,0x68,0x6, 0x7e,0xb3,0x39,0x6, 0x60,0x7, +0xe4,0x7a,0xb3,0x28,0xad,0x80,0x71,0x12,0x74,0xa6,0x28,0x5, 0xe4,0x7a,0xb3,0x28, +0xad,0x30,0x10,0x5, 0xe4,0x7a,0xb3,0x28,0xad,0x12,0x94,0x23,0x50,0xa, 0x12,0x5e, +0xed,0x12,0x92,0xea,0x7c,0xfb,0x80,0x21,0x7e,0xb3,0x26,0x84,0x70,0x1b,0x7e,0xb3, +0x26,0x85,0x70,0x15,0x12,0x74,0xa6,0x28,0x10,0x12,0x76,0x4d,0x68,0x5, 0x12,0x9a, +0x1a,0x60,0x6, 0x7e,0xf0,0x3, 0x12,0x5e,0xed,0x7e,0xc7,0x7, 0xfa,0xbe,0xc4,0x5, +0xdc,0x8, 0x17,0x12,0x74,0xa6,0x28,0x12,0x6d,0xcc,0x9d,0xcd,0xbe,0xc7,0x28,0x8e, +0x58,0x8, 0x12,0x76,0x88,0xe4,0x7a,0xb3,0x28,0xad,0xa, 0xcf,0x7a,0xc7,0x28,0xa1, +0x74,0x2, 0xac,0xbf,0x7a,0x57,0x28,0xa3,0x12,0x76,0x4a,0x50,0xd, 0xe4,0x7a,0xb3, +0x28,0xad,0x12,0x74,0xa6,0x28,0x3, 0x12,0x76,0x88,0x7e,0xc7,0x28,0x8a,0xbd,0xcd, +0x8, 0x1f,0x7e,0x24,0x0, 0x2, 0x7d,0x3d,0x12,0x15,0x29,0x6e,0x34,0xff,0xff,0xb, +0x34,0xbe,0x37,0x28,0x8e,0x58,0xa, 0x12,0x76,0x4a,0x50,0x5, 0xe4,0x7a,0xb3,0x28, +0xad,0x12,0x8d,0xd1,0xb4,0x1, 0x5, 0xe4,0x7a,0xb3,0x28,0xad,0x7e,0xb3,0x28,0xac, +0xb4,0x1, 0x9, 0xe4,0x7a,0xb3,0x28,0x84,0x7a,0xb3,0x2a,0x20,0x12,0x93,0x4d,0x7e, +0xb3,0x2f,0xc9,0xbe,0xb0,0x0, 0x28,0x1f,0x14,0x7a,0xb3,0x2f,0xc9,0x70,0x18,0xe4, +0x7a,0xb3,0x28,0xad,0x12,0x77,0xc7,0x7a,0xb3,0x16,0x91,0x7a,0xb3,0x16,0x90,0x7a, +0xb3,0x28,0x84,0x7a,0xb3,0x26,0x83,0xda,0xf8,0x22,0xa2,0x13,0x22,0x7e,0xb3,0x28, +0xa8,0xbe,0xb0,0x1, 0x22,0xa, 0x1d,0xa, 0x2a,0x2d,0x21,0x3e,0x24,0x22,0xe4,0x93, +0x7c,0x7b,0x1e,0x70,0xa, 0x27,0x22,0x74,0x1, 0xa, 0x8f,0x19,0xb8,0x1f,0x34,0x22, +0x6d,0x55,0x9e,0x57,0x2a,0x79,0xbe,0x57,0x28,0x8e,0x22,0x74,0x2, 0xac,0xbf,0x9, +0xd5,0x26,0xfa,0x9, 0xe5,0x26,0xfb,0x22,0xe4,0x7a,0xb3,0x2f,0xc9,0x7a,0xb3,0x28, +0xac,0x74,0x2, 0x2, 0x76,0x96,0x7a,0xb3,0x2b,0x21,0x7a,0xb3,0x2b,0x3d,0x22,0x74, +0x2, 0x7a,0xb3,0x2f,0xc9,0xe4,0x7a,0xb3,0x2f,0xc8,0x12,0x77,0xc7,0x2, 0x76,0x96, +0x7c,0xab,0x7e,0xb3,0x39,0x6, 0x70,0x1b,0x7e,0xb3,0x28,0xa8,0x70,0x15,0x12,0x77, +0xf5,0x68,0x10,0x7e,0xb3,0x2a,0x8a,0xbe,0xb0,0x1, 0x68,0x7, 0x7c,0xba,0x6c,0x77, +0x2, 0x2f,0x4c,0x22,0x7c,0xbd,0x7c,0x7e,0x7c,0x6b,0xc2,0x4, 0x6c,0xaa,0x80,0x30, +0x7e,0x50,0x6, 0xac,0x5a,0x7f,0x70,0x2d,0xf2,0xb, 0xf4,0x29,0xb7,0x0, 0x2, 0xbc, +0xb6,0x40,0x1b,0x7e,0x7b,0xb0,0xbc,0xb6,0x38,0x14,0x29,0xb7,0x0, 0x3, 0xbc,0xb7, +0x40,0xc, 0x29,0xb7,0x0, 0x1, 0xbc,0xb7,0x38,0x4, 0xd2,0x4, 0x80,0x9, 0xb, 0xa0, +0x7e,0xb, 0xb0,0xbc,0xba,0x38,0xc9,0xa2,0x4, 0x22,0xca,0xf8,0x7e,0xd4,0x0, 0x9, +0x7e,0xb3,0x28,0x84,0x70,0x8, 0xf5,0x1e,0xc2,0x8, 0xc2,0x9, 0x80,0x7d,0xbe,0xb0, +0x2, 0x38,0x72,0xb4,0x2, 0x28,0x7e,0x73,0x26,0xfc,0xa, 0x27,0x7e,0x73,0x26,0xfa, +0x12,0x1f,0xf4,0xbe,0x34,0x0, 0x5, 0x58,0x15,0x7e,0x73,0x26,0xfd,0xa, 0x27,0x7e, +0x73,0x26,0xfb,0x12,0x1f,0xf4,0xbe,0x34,0x0, 0x5, 0x58,0x2, 0x80,0x5a,0x6c,0xff, +0x80,0x3c,0x7c,0xbf,0x12,0x8f,0xdc,0x1a,0x4b,0x7c,0xbf,0x12,0x71,0x7e,0x7d,0xc3, +0xbe,0xc4,0x3, 0xe8,0x58,0x4, 0x7e,0xd4,0x0, 0x8, 0x7d,0x5d,0x3e,0x54,0xbd,0x54, +0x58,0x4, 0xd2,0x9, 0x80,0xa, 0x7d,0x5d,0xe, 0x54,0xbd,0x54,0x48,0x2, 0xc2,0x9, +0x20,0x9, 0x4, 0xbd,0xd4,0x58,0x5, 0x75,0x1e,0x28,0x80,0xf, 0xb, 0xf0,0x12,0x73, +0x1a,0x38,0xbf,0x80,0x6, 0xe5,0x1e,0x24,0xfb,0xf5,0x1e,0xe5,0x1e,0xbe,0xb0,0x0, +0x8, 0x6, 0xd2,0x8, 0x15,0x1e,0x80,0x5, 0x75,0x1e,0x0, 0xc2,0x8, 0xda,0xf8,0x22, +0x7e,0x73,0x28,0x84,0xbc,0x7e,0x22,0x74,0x1, 0x7a,0xb3,0x28,0xac,0xe4,0x22,0x30, +0x10,0x13,0x12,0x76,0x4d,0x68,0x6, 0x7e,0xb3,0x39,0x6, 0x60,0x8, 0x7e,0x34,0xb, +0xb8,0x7a,0x37,0x38,0x9, 0x22,0x7e,0x73,0x28,0x84,0xbc,0x78,0x22,0x9, 0x75,0x26, +0xfb,0x7a,0x71,0x24,0x22,0x7e,0xb3,0x37,0x2e,0xbe,0xb0,0x1, 0x22,0x7d,0x13,0x7d, +0x32,0x6d,0x22,0x74,0x6, 0x2f,0x11,0x14,0x78,0xfb,0xb, 0x14,0x12,0x15,0x75,0x7d, +0x53,0xbe,0x54,0x0, 0xff,0x28,0x4, 0x7e,0x54,0x0, 0x40,0x22,0xca,0xf8,0x7e,0xf3, +0x2a,0x8f,0x7a,0x37,0x1f,0x3a,0x7e,0x34,0x15,0x9e,0x7a,0x37,0x1f,0x3c,0xe4,0x7a, +0xb3,0x1f,0x34,0x7a,0xb3,0x1f,0x35,0x7e,0x73,0x2a,0x8e,0x7a,0x73,0x1f,0x36,0x7a, +0xf3,0x1f,0x37,0x7a,0xb3,0x1f,0x38,0x7a,0xb3,0x1f,0x39,0x7e,0x8, 0x1f,0x34,0x12, +0x78,0x71,0x6d,0x22,0x7d,0x3, 0x6d,0x11,0x7e,0x37,0x15,0xa0,0x2f,0x10,0x7e,0x33, +0x1f,0x36,0x6d,0x0, 0x12,0x15,0x77,0xa, 0x1f,0x6d,0x0, 0x12,0x15,0x77,0xda,0xf8, +0x22,0x12,0xc, 0x29,0x7e,0x37,0x15,0x9e,0x22,0x7a,0x37,0x1f,0x38,0x7e,0x34,0x15, +0xa8,0x7a,0x37,0x1f,0x3c,0x7e,0x34,0x15,0x9e,0x7a,0x37,0x1f,0x3a,0x7e,0x73,0x2a, +0x8e,0x7a,0x73,0x1f,0x35,0x7e,0x73,0x2a,0x8f,0x7a,0x73,0x1f,0x34,0x7e,0x37,0x2a, +0x7b,0x7a,0x37,0x1f,0x3e,0x7e,0x37,0x2a,0x7d,0x7a,0x37,0x1f,0x40,0x7e,0x37,0x2a, +0x7f,0x7a,0x37,0x1f,0x42,0x74,0x1, 0x7a,0xb3,0x1f,0x36,0x7a,0xb3,0x1f,0x37,0x7e, +0x8, 0x1f,0x34,0x7e,0x18,0x1f,0x44,0x12,0x8, 0x0, 0x7e,0x37,0x1f,0x4e,0x7e,0x27, +0x1f,0x4a,0xbd,0x23,0x28,0x2, 0x7d,0x32,0x22,0xca,0x3b,0x7e,0x8, 0x1f,0x34,0x12, +0x47,0xd9,0x7e,0x1f,0x38,0xef,0x7a,0x1d,0x27,0x7e,0xb3,0x2a,0x93,0xf5,0x2e,0x7e, +0xb3,0x38,0x8e,0xb4,0x1, 0x6, 0x7e,0x38,0x38,0x90,0x80,0x4, 0x7e,0x38,0x5, 0xf8, +0x6d,0x33,0x7a,0x35,0x2b,0x74,0x2, 0x12,0x0, 0x1e,0x7e,0xb3,0x38,0x8f,0x70,0xe, +0x7e,0xb3,0x38,0x8d,0x70,0x8, 0x74,0x1, 0x7a,0xb3,0x38,0x8f,0x21,0x9e,0x7e,0xb3, +0x38,0x8f,0x70,0x6, 0x74,0x1, 0x7a,0xb3,0x38,0x8f,0x7e,0xb3,0x38,0x8e,0xb4,0x1, +0x14,0x75,0x2d,0x0, 0x80,0x6, 0x12,0x79,0xe0,0x12,0x79,0xee,0xe5,0x2e,0xbe,0xb1, +0x2d,0x38,0xf3,0x80,0x18,0x75,0x2d,0x0, 0x80,0xc, 0x12,0x79,0xe0,0x3e,0x24,0x3e, +0x24,0x1e,0x24,0x12,0x79,0xee,0xe5,0x2e,0xbe,0xb1,0x2d,0x38,0xed,0x7e,0x34,0x1, +0x18,0x7a,0x35,0x2f,0x7e,0x18,0x1f,0x34,0x7f,0x1, 0x12,0x79,0xff,0x75,0x2d,0x0, +0x80,0x10,0x12,0x79,0xd3,0xbe,0x35,0x2b,0x8, 0x6, 0x12,0x79,0xd3,0x7a,0x35,0x2b, +0x5, 0x2d,0xe5,0x2e,0xbe,0xb1,0x2d,0x38,0xe9,0x12,0x79,0xcb,0x40,0x25,0x7e,0xb3, +0x38,0x8e,0xb4,0x1, 0x1e,0x5, 0x1c,0xe5,0x1c,0xbe,0xb0,0xa, 0x40,0x15,0x75,0x1c, +0x0, 0xe5,0x2e,0xa, 0x3b,0x3e,0x34,0xca,0x39,0x7e,0x1d,0x27,0x7f,0x3, 0x12,0x17, +0x29,0x1b,0xfd,0x74,0x2, 0x12,0x0, 0x1e,0x12,0x79,0xcb,0x50,0xb, 0x74,0x2, 0x7a, +0xb3,0x38,0xee,0xe4,0x7a,0xb3,0x38,0x8f,0xda,0x3b,0x22,0x7e,0x37,0x2b,0x26,0xbe, +0x35,0x2b,0x22,0x7e,0xa1,0x2d,0x74,0x2, 0xa4,0x49,0x35,0x1f,0x34,0x2, 0x17,0x80, +0x7e,0xa1,0x2d,0x74,0x2, 0xa4,0x7f,0x13,0x2d,0x35,0xb, 0x1a,0x20,0x22,0x7e,0xd, +0x27,0x2d,0x15,0xb, 0xa, 0x30,0x9d,0x32,0x59,0x35,0x1f,0x34,0x5, 0x2d,0x22,0xca, +0x3b,0x7f,0x61,0x7f,0x50,0x7e,0x73,0x2a,0x8d,0xa, 0x37,0x3e,0x34,0xca,0x39,0x7f, +0x16,0x7f,0x5, 0x12,0x17,0x29,0x1b,0xfd,0x6c,0xdd,0x12,0x5f,0x98,0x7a,0xb3,0x1f, +0x6c,0x6c,0xcc,0x80,0x45,0x12,0x7a,0xa3,0x78,0x3e,0x12,0x5f,0xa9,0xb, 0x1a,0xe0, +0x7d,0x3f,0x12,0x17,0x80,0x7d,0x13,0x7d,0x3e,0x12,0x17,0x80,0xbd,0x31,0x58,0x2, +0x7d,0xfe,0xbe,0xe5,0x2f,0x8, 0x5, 0x7e,0xe5,0x2f,0x80,0xb, 0x6d,0x33,0x9e,0x35, +0x2f,0xbd,0x3e,0x8, 0x2, 0x7d,0xe3,0x7d,0x3e,0x1a,0x26,0x1a,0x24,0x2f,0x41,0x7e, +0xb3,0x1f,0x6c,0x4, 0x7a,0xb3,0x1f,0x6c,0xb, 0xc0,0x7e,0x73,0x2a,0x8f,0xbc,0x7c, +0x38,0xb3,0x7e,0x73,0x1f,0x6c,0x4c,0x77,0x68,0x1d,0x12,0x7a,0xc9,0x8, 0x2, 0x7d, +0x7f,0x6c,0xcc,0x80,0xa, 0x12,0x7a,0xa3,0x78,0x3, 0x12,0x7a,0xb4,0xb, 0xc0,0x7e, +0x73,0x2a,0x8f,0xbc,0x7c,0x38,0xee,0xb, 0xd0,0xbe,0xd0,0x2, 0x50,0x2, 0x41,0x1a, +0xda,0x3b,0x22,0xa, 0xec,0x9, 0x7e,0x2a,0xfb,0xa, 0x37,0x5e,0x34,0x0, 0x1, 0xa, +0xed,0xbd,0x3e,0x22,0x74,0x2, 0xac,0xbc,0x7f,0x16,0x2d,0x35,0xb, 0x1a,0xe0,0x9d, +0xe7,0x7f,0x15,0x2d,0x35,0x1b,0x1a,0xe0,0x22,0xa, 0x17,0x6d,0x0, 0x7f,0x14,0x12, +0x15,0xc8,0x7d,0x73,0x12,0x17,0x80,0x7d,0xe3,0x7d,0x3f,0x12,0x17,0x80,0xbd,0x3e, +0x22,0x74,0xc8,0x7a,0xb3,0x39,0x1, 0xc2,0x17,0x80,0xa, 0x12,0x3e,0xbb,0x30,0x17, +0x4, 0x75,0xe9,0xff,0x22,0x12,0x7b,0x3d,0x68,0xf1,0x22,0x74,0x1, 0x12,0x7b,0x1a, +0x20,0x17,0x6, 0x12,0x7b,0x23,0x12,0x3f,0xe3,0x7e,0xb3,0x34,0x3a,0xb4,0x1, 0x6, +0x12,0x7a,0xe1,0x12,0x3f,0xe3,0xe4,0x2, 0x7b,0x1a,0xbe,0xb0,0x8, 0x50,0x3, 0x12, +0x7b,0x4e,0x22,0xd2,0x3, 0x80,0x12,0x30,0x3, 0xc, 0x12,0x7b,0x3d,0x68,0x7, 0xc2, +0x3, 0xc2,0x4, 0x12,0x3d,0xa, 0x12,0x3e,0xbb,0x30,0x17,0xeb,0x22,0x7e,0xb3,0x34, +0x3a,0xbe,0xb0,0x1, 0x22,0x12,0x7b,0x3d,0x68,0xfb,0x20,0x93,0xfd,0x22,0xa, 0x5b, +0x2e,0x54,0x0, 0x8, 0xf5,0xcc,0x22,0x12,0x3f,0x33,0x7e,0x73,0x36,0xdd,0xbe,0x70, +0xff,0x68,0x13,0xbe,0x73,0x37,0x3, 0x68,0xd, 0x7a,0x73,0x37,0x3, 0x74,0xff,0x7a, +0xb3,0x36,0xdd,0x2, 0x3f,0x33,0x22,0x7e,0xb3,0x37,0x3, 0x70,0x2e,0x7e,0x73,0x36, +0xe6,0xbe,0x70,0x10,0x40,0x2, 0x6c,0x77,0x7e,0xb3,0x37,0x2e,0xb4,0x1, 0x3, 0x7e, +0x70,0x6, 0xa, 0x37,0x2e,0x34,0xf, 0xf0,0x12,0x7b,0xcc,0x7c,0xab,0xe5,0x60,0xa, +0x3b,0x2e,0x37,0x38,0x8b,0x7a,0x37,0x38,0x8b,0x80,0xc, 0x7e,0xa3,0x36,0xe7,0xbe, +0xa0,0x7f,0x28,0x3, 0x7e,0xa0,0x7f,0x7c,0xba,0x2, 0x7b,0xbc,0x75,0x60,0x0, 0x7a, +0xb3,0x39,0x1, 0xc2,0x17,0x22,0x2d,0x32,0x2e,0x34,0x17,0x70,0x7a,0x71,0x82,0x7a, +0x61,0x83,0xe4,0x93,0x22,0x7c,0x2b,0x7e,0xb3,0x1f,0x33,0xbc,0x2b,0x68,0x4f,0x12, +0x7c,0x33,0x7c,0x3b,0x7c,0xb2,0x12,0x7c,0x33,0x7c,0xab,0xbe,0x30,0xff,0x68,0x3e, +0xbe,0xa0,0xff,0x68,0x39,0x7e,0x70,0x4, 0xac,0x73,0xa, 0x2a,0x12,0x7b,0xc6,0xbe, +0xb0,0x2, 0x38,0x2a,0xa, 0x2b,0x7e,0x34,0x2, 0xe0,0xad,0x32,0x2e,0x34,0x16,0x93, +0x6d,0x22,0x30,0x16,0x3, 0x2, 0x7c,0xdf,0x7e,0xb3,0x2b,0x3c,0xb4,0x1, 0xf, 0x12, +0x5f,0xdf,0x7a,0x55,0x29,0x7e,0x8, 0xd, 0xc8,0x74,0x1, 0x2, 0x7d,0x10,0x22,0x7e, +0xb3,0x2b,0x2e,0x7c,0xab,0x6c,0x77,0x7e,0x50,0x5, 0xac,0x57,0x9, 0x62,0x26,0x33, +0xbc,0x6a,0x78,0x3, 0x7c,0xb7,0x22,0xb, 0x70,0xbe,0x70,0x4, 0x40,0xe9,0x74,0xff, +0x22,0xca,0x3b,0x7e,0xb3,0x2b,0x2e,0x7a,0xb3,0x1f,0x33,0x7e,0xf3,0x2b,0x81,0x12, +0x7c,0x33,0x7c,0xdb,0xbe,0xd0,0xff,0x68,0x64,0x6c,0xcc,0x12,0x7e,0x58,0xf5,0x29, +0x7e,0x73,0x2b,0x2e,0xbe,0x71,0x29,0x68,0x36,0x7e,0x70,0x4, 0xac,0x7d,0xa, 0x2c, +0x12,0x7b,0xc6,0x7c,0xeb,0xbe,0xe0,0x2, 0x38,0x43,0xa, 0xe, 0x7e,0x14,0x2, 0xe0, +0xad,0x10,0x2e,0x14,0x16,0x93,0x6d,0x0, 0x7a,0xd, 0x2a,0x7e,0x70,0x1d,0xac,0x7e, +0x2e,0x34,0x37,0x52,0x6d,0x22,0x7a,0x1f,0x37,0x4e,0x7c,0xbc,0x12,0x7d,0x65,0xb, +0xc0,0xbe,0xc0,0x4, 0x40,0xb5,0x7e,0x73,0x2b,0x81,0xbc,0x7f,0x68,0x6, 0x7a,0xf3, +0x2b,0x81,0xd2,0xc, 0xd2,0x3, 0x7e,0xb3,0x1f,0x33,0x12,0x4d,0xc0,0xda,0x3b,0x22, +0x7c,0xab,0x12,0x7f,0x45,0xd2,0x16,0x7c,0xba,0x12,0x7b,0xd5,0xc2,0x16,0x22,0x7c, +0x7b,0x90,0x60,0x93,0xe4,0x93,0xa, 0x1b,0x7e,0x63,0x2a,0x90,0xa, 0x6, 0x2d,0x1, +0x7e,0x63,0x2a,0x8d,0xa, 0x16,0xad,0x10,0x7d,0x21,0x12,0x5f,0xbb,0xa, 0x26,0x7a, +0x25,0x29,0x74,0x1d,0xac,0x7b,0x2e,0x34,0x37,0x52,0x6d,0x22,0xe4,0x2, 0x7d,0x10, +0x7c,0xab,0x6d,0x44,0x80,0x29,0x4c,0xaa,0x68,0x11,0x12,0x7d,0x53,0x60,0x5, 0x3e, +0xe4,0x14,0x78,0xfb,0x12,0x7d,0x47,0x2d,0xfe,0x80,0xf, 0x12,0x7d,0x53,0x60,0x5, +0x3e,0xe4,0x14,0x78,0xfb,0x12,0x7d,0x47,0x9d,0xfe,0x1b,0x6a,0xf0,0xb, 0x44,0x7e, +0xf5,0x29,0xbd,0xf4,0x38,0xd0,0x22,0x7d,0xf4,0x3e,0xf4,0x7f,0x60,0x2d,0xdf,0xb, +0x6a,0xf0,0x22,0x7f,0x71,0x2d,0xf4,0x7e,0x7b,0xb0,0x1a,0xeb,0x7f,0x61,0x2e,0xd5, +0x29,0x7e,0x6b,0xb0,0x22,0xca,0x3b,0x7a,0xd, 0x2e,0x7c,0xcb,0x7e,0xb3,0x2b,0x3c, +0xf5,0x32,0x7e,0xb3,0x2b,0x2e,0xf5,0x33,0x7e,0xd3,0x2b,0x33,0x7e,0xe3,0x2b,0x3e, +0x7e,0xf3,0x2b,0x3f,0x7e,0x34,0x0, 0x38,0xca,0x39,0x7e,0x18,0x34,0x0, 0x7e,0x8, +0x24,0xf2,0x12,0x17,0x29,0x1b,0xfd,0x7e,0x34,0x0, 0x8c,0xca,0x39,0x7e,0x18,0x3, +0x72,0x7e,0x8, 0x25,0x2a,0x12,0x17,0x29,0x1b,0xfd,0x7c,0xbc,0x12,0x4f,0xfd,0x74, +0x1, 0x7a,0xb3,0x2b,0x3c,0x74,0x5, 0xac,0xbc,0x12,0x4f,0x72,0x74,0x5, 0xac,0xbc, +0x12,0x4f,0x60,0x74,0x5, 0xac,0xbc,0x12,0x4f,0x69,0x74,0x5, 0xac,0xbc,0x9, 0x75, +0x26,0x37,0xbe,0x73,0x2b,0x81,0x68,0x6, 0x7a,0x73,0x2b,0x81,0xd2,0xc, 0xc2,0x3, +0x12,0x7e,0x58,0x12,0x4d,0xc0,0x12,0x44,0xfd,0x30,0xb, 0xfd,0x74,0x1, 0x12,0x0, +0xe, 0x7e,0x14,0x40,0x0, 0x7d,0x31,0x7e,0x2f,0x13,0x86,0x7d,0x25,0x7e,0x4, 0xd, +0xc8,0x12,0x5b,0x7c,0x12,0x5f,0xdf,0x7a,0x55,0x34,0x7e,0xd, 0x2e,0x7e,0x18,0xd, +0xc8,0x12,0x7e,0xb0,0x12,0x7e,0x61,0xe5,0x32,0x7a,0xb3,0x2b,0x3c,0xe5,0x33,0x7a, +0xb3,0x2b,0x2e,0x7a,0xd3,0x2b,0x33,0x7a,0xe3,0x2b,0x3e,0x7a,0xf3,0x2b,0x3f,0x7e, +0x34,0x0, 0x38,0xca,0x39,0x7e,0x18,0x24,0xf2,0x7e,0x8, 0x34,0x0, 0x12,0x17,0x29, +0x1b,0xfd,0x7e,0x34,0x0, 0x8c,0xca,0x39,0x7e,0x18,0x25,0x2a,0x7e,0x8, 0x3, 0x72, +0x12,0x17,0x29,0x1b,0xfd,0xda,0x3b,0x22,0x74,0x5, 0xac,0xbc,0x9, 0xb5,0x26,0x33, +0x22,0x90,0x60,0x93,0xe4,0x93,0xa, 0xb, 0x7e,0x73,0x2a,0x90,0xa, 0x17,0x2d,0x10, +0x7e,0xa3,0x2a,0x8d,0xa, 0x3a,0xad,0x13,0x7d,0x21,0x6c,0x33,0x80,0x20,0xa, 0x3, +0x2d,0x2, 0x3e,0x4, 0x7e,0x7f,0x33,0xf8,0x2d,0xf0,0xb, 0x7a,0x0, 0x7e,0x90,0x2, +0xac,0x93,0x49,0xf4,0x13,0x8e,0x9d,0xf, 0x59,0x4, 0x25,0xb6,0xb, 0x30,0xbc,0xa3, +0x38,0xdc,0x7a,0x35,0x34,0x7e,0xf, 0x37,0x4e,0x7e,0x18,0x25,0xb6,0x2, 0x7e,0xb0, +0xca,0xf8,0x7f,0x71,0x6d,0xdd,0x6c,0xaa,0x7e,0xf0,0x7f,0xc2,0x3, 0x6d,0x44,0x80, +0x1e,0x7d,0xc4,0x3e,0xc4,0x7f,0x17,0x2d,0x3c,0x12,0x7f,0x3f,0xbd,0x3d,0x48,0xd, +0x7d,0x34,0x3e,0x34,0x2d,0x3f,0x7d,0x2e,0x12,0x7f,0x3f,0x7d,0xd3,0xb, 0x44,0x7e, +0xc5,0x34,0xbd,0xc4,0x38,0xdb,0x80,0x7, 0xb, 0xa0,0xbe,0xa0,0x8, 0x50,0x11,0x7c, +0xba,0x7d,0x3d,0x60,0x5, 0xe, 0x34,0x14,0x78,0xfb,0xa, 0xcf,0xbd,0x3c,0x18,0xe8, +0x7f,0x10,0x2e,0x35,0x34,0x7a,0x1b,0xa0,0x6d,0x44,0x80,0x21,0x7d,0x54,0x3e,0x54, +0x7f,0x17,0x2d,0x35,0xb, 0x1a,0x30,0x7f,0x60,0x2e,0xd5,0x34,0x7e,0x6b,0xb0,0x60, +0x5, 0xe, 0x34,0x14,0x78,0xfb,0x7c,0xb7,0x12,0x7f,0x88,0xb, 0x44,0x7e,0x55,0x34, +0xbd,0x54,0x38,0xd8,0xda,0xf8,0x22,0x74,0x2, 0xac,0xbe,0x7f,0x17,0x2d,0x35,0xb, +0x1a,0x30,0x2, 0x17,0x80,0xa9,0xd1,0xcb,0x74,0x1, 0x2, 0x0, 0xe, 0x12,0x7f,0x45, +0x7e,0x34,0xd, 0xc8,0x7e,0xb3,0x2a,0x8c,0x12,0x7f,0x90,0x12,0x7f,0x69,0x7a,0x37, +0x33,0xf5,0x74,0x1, 0x7a,0xb3,0x16,0x91,0x22,0x6d,0x33,0x90,0x60,0x91,0xe4,0x93, +0xbe,0xb0,0x0, 0x28,0x3, 0x2, 0xa2,0x30,0x90,0x60,0x92,0xe4,0x93,0xbe,0xb0,0x0, +0x28,0x3, 0x2, 0xa1,0x97,0x22,0xa, 0x4a,0x7f,0x10,0x2d,0x34,0x7a,0x1b,0xb0,0x22, +0x7a,0xb3,0x24,0xf2,0x7e,0x53,0x2a,0x8d,0x7a,0x53,0x24,0xf3,0x7a,0x37,0x24,0xfa, +0xe4,0x7a,0xb3,0x24,0xf4,0x7a,0xb3,0x24,0xf5,0x7e,0x34,0x40,0x0, 0x7a,0x37,0x24, +0xf6,0x7e,0x34,0x0, 0x20,0x12,0x5f,0xb2,0x2, 0xd, 0x7, 0x7e,0xb3,0x38,0x8e,0x70, +0x4, 0x74,0x1, 0x80,0x1, 0xe4,0x7a,0xb3,0x38,0x8e,0x22,0x7f,0x20,0xc2,0x4, 0x7e, +0x2b,0x60,0x29,0x72,0x0, 0x2, 0x9c,0x76,0x1a,0x37,0x12,0x17,0x80,0x7c,0x27,0x29, +0x72,0x0, 0x1, 0x29,0x32,0x0, 0x3, 0x9c,0x37,0x1a,0x33,0x12,0x17,0x80,0x7c,0x37, +0x1a,0x23,0x1a,0x32,0x9d,0x32,0x12,0x17,0x80,0x7c,0x67,0x7c,0x72,0xbc,0x32,0x58, +0x2, 0x7c,0x73,0xbe,0x60,0x5, 0x18,0x5, 0xbe,0x70,0x6, 0x58,0x8, 0x7e,0x37,0x38, +0x1, 0x4d,0x33,0x68,0x2, 0xd2,0x4, 0xa2,0x4, 0x22,0x7c,0xbd,0x7c,0x7e,0x7f,0x4, +0xca,0x3b,0x7f,0x70,0x7c,0xe7,0x7c,0xdb,0x7e,0xc0,0x4, 0x7e,0xb3,0x2a,0x8c,0xf5, +0x26,0x7e,0xb3,0x2a,0x8d,0xf5,0x25,0x7e,0xd4,0x0, 0xc8,0x6c,0xff,0x12,0x2e,0xc4, +0xe5,0x26,0xa, 0x1b,0x1b,0x14,0xa, 0xcd,0xbd,0xc1,0x58,0x14,0xe5,0x25,0xa, 0x1b, +0x1b,0x14,0xa, 0xce,0xbd,0xc1,0x58,0x8, 0x4c,0xee,0x68,0x4, 0x4c,0xdd,0x78,0x3, +0x4e,0xf0,0x10,0xb, 0x1a,0xc0,0xbe,0xc4,0x0, 0xc8,0x8, 0xc, 0x7e,0x17,0x28,0x8a, +0xbe,0x14,0x3, 0x20,0x8, 0x2, 0x21,0x64,0xbe,0xc4,0x0, 0x64,0x8, 0xc, 0x7e,0xc7, +0x28,0x8a,0xbe,0xc4,0x3, 0x20,0x58,0x2, 0x21,0x64,0x6c,0xaa,0x7c,0x8d,0x80,0x1c, +0x7c,0x9e,0xbe,0x80,0x0, 0x48,0x11,0x7e,0xb3,0x2a,0x8c,0xbc,0xb8,0x8, 0x9, 0x12, +0x81,0x9b,0x58,0x14,0xb, 0xa0,0x80,0x2, 0xb, 0xa0,0x1b,0x80,0x1a,0x2c,0x1a,0x3d, +0x9d,0x32,0x1a,0xc8,0xbd,0xc3,0x18,0xd8,0xbc,0xca,0x18,0x5, 0x4e,0xf0,0x1, 0x21, +0x64,0x6c,0xaa,0x7c,0x8d,0x80,0x1c,0x7c,0x9e,0xbe,0x80,0x0, 0x48,0x11,0x7e,0xb3, +0x2a,0x8c,0xbc,0xb8,0x8, 0x9, 0x12,0x81,0x9b,0x58,0x14,0xb, 0xa0,0x80,0x2, 0xb, +0xa0,0xb, 0x80,0x1a,0x2c,0x1a,0x3d,0x2d,0x32,0x1a,0xc8,0xbd,0xc3,0x48,0xd8,0xbc, +0xca,0x18,0x5, 0x4e,0xf0,0x2, 0x80,0x6c,0x6c,0xaa,0x7c,0x9e,0x80,0x1c,0x7c,0x8d, +0xbe,0x90,0x0, 0x48,0x11,0x7e,0xb3,0x2a,0x8d,0xbc,0xb9,0x8, 0x9, 0x12,0x81,0x9b, +0x58,0x14,0xb, 0xa0,0x80,0x2, 0xb, 0xa0,0x1b,0x90,0x1a,0x2c,0x1a,0x3e,0x9d,0x32, +0x1a,0xc9,0xbd,0xc3,0x18,0xd8,0xbc,0xca,0x18,0x5, 0x4e,0xf0,0x4, 0x80,0x35,0x6c, +0xaa,0x7c,0x9e,0x80,0x1c,0x7c,0x8d,0xbe,0x90,0x0, 0x48,0x11,0x7e,0xb3,0x2a,0x8d, +0xbc,0xb9,0x8, 0x9, 0x12,0x81,0x9b,0x58,0x14,0xb, 0xa0,0x80,0x2, 0xb, 0xa0,0xb, +0x90,0x1a,0x2c,0x1a,0x3e,0x2d,0x32,0x1a,0xc9,0xbd,0xc3,0x48,0xd8,0xbc,0xca,0x18, +0x3, 0x4e,0xf0,0x8, 0x4c,0xff,0x68,0x2e,0x7e,0x7b,0xb0,0xbc,0xbd,0x40,0x3, 0x7a, +0x7b,0xd0,0x29,0xb7,0x0, 0x2, 0xbc,0xbd,0x38,0x4, 0x39,0xd7,0x0, 0x2, 0x29,0xb7, +0x0, 0x1, 0xbc,0xbe,0x40,0x4, 0x39,0xe7,0x0, 0x1, 0x29,0xb7,0x0, 0x3, 0xbc,0xbe, +0x38,0x4, 0x39,0xe7,0x0, 0x3, 0x7c,0xbf,0xda,0x3b,0x22,0x7c,0xb8,0x7c,0x79,0x12, +0x1e,0x80,0xbd,0x3d,0x22,0xca,0x3b,0x7c,0xc7,0x7c,0xfb,0x7f,0x40,0x6d,0xbb,0x7e, +0xa3,0x2a,0x8c,0x7e,0x73,0x2a,0x8d,0x4c,0xcc,0x78,0x5, 0x7e,0xc0,0x1, 0x80,0xd, +0x7c,0xb7,0x14,0xbc,0xbc,0x78,0x6, 0xa, 0x6c,0x1b,0x65,0x7c,0xcd,0x4c,0xff,0x78, +0x5, 0x7e,0xf0,0x1, 0x80,0xb, 0x7c,0xba,0x14,0xbc,0xbf,0x78,0x4, 0xa, 0x7f,0x1b, +0x75,0x7f,0x4, 0x7e,0x34,0x0, 0x6, 0xe4,0x12,0x17,0x4e,0x7e,0x73,0x2a,0x8c,0xa, +0x37,0x1b,0x34,0x7a,0x4b,0x70,0x7e,0x73,0x2a,0x8d,0xa, 0x37,0x1b,0x34,0x39,0x74, +0x0, 0x1, 0x7c,0xec,0x80,0x1d,0x75,0x24,0x0, 0x7c,0xdf,0x80,0xb, 0x12,0x80,0x1a, +0x70,0xb, 0x5, 0x24,0xb, 0xb4,0x1b,0xd0,0xbe,0xd0,0x0, 0x58,0xf0,0xe5,0x24,0x60, +0x7, 0x1b,0xe0,0xbe,0xe0,0x0, 0x58,0xde,0x7c,0xec,0x80,0x26,0x75,0x24,0x0, 0x1a, +0xaf,0xb, 0xa4,0x7d,0x3a,0x7c,0xd7,0x80,0xb, 0x12,0x80,0x1a,0x70,0xe, 0x5, 0x24, +0xb, 0xb4,0xb, 0xd0,0x7e,0x73,0x2a,0x8c,0xbc,0x7d,0x18,0xed,0xe5,0x24,0x60,0x7, +0x1b,0xe0,0xbe,0xe0,0x0, 0x58,0xd5,0x12,0x82,0xbb,0x80,0x1d,0x75,0x24,0x0, 0x7c, +0xdf,0x80,0xb, 0x12,0x80,0x1a,0x70,0xb, 0x5, 0x24,0xb, 0xb4,0x1b,0xd0,0xbe,0xd0, +0x0, 0x58,0xf0,0xe5,0x24,0x60,0xa, 0xb, 0xe0,0x7e,0x73,0x2a,0x8d,0xbc,0x7e,0x18, +0xdb,0x12,0x82,0xbb,0x80,0x22,0x75,0x24,0x0, 0x1a,0x6f,0xb, 0x64,0x80,0xb, 0x12, +0x80,0x1a,0x70,0xe, 0x5, 0x24,0xb, 0xb4,0xb, 0xd0,0x7e,0x73,0x2a,0x8c,0xbc,0x7d, +0x18,0xed,0xe5,0x24,0x60,0xa, 0xb, 0xe0,0x7e,0x73,0x2a,0x8d,0xbc,0x7e,0x18,0xd6, +0x7d,0x3b,0x39,0x74,0x0, 0x5, 0x7d,0x3b,0xda,0x3b,0x22,0x1a,0xac,0xb, 0xa4,0x7d, +0x3a,0x7c,0xe7,0x22,0x7f,0x60,0x7e,0x6b,0xa0,0xbe,0xa0,0xa, 0x50,0x1b,0x7e,0x14, +0x0, 0x6, 0xca,0x19,0x74,0x6, 0xa4,0x7f,0x6, 0x2d,0x15,0xb, 0x14,0x12,0x17,0x29, +0x1b,0xfd,0x7e,0x6b,0xb0,0x4, 0x7a,0x6b,0xb0,0x22,0x6c,0xaa,0x7e,0x63,0x2a,0x8d, +0x7e,0x73,0x2a,0x8c,0xac,0x76,0x7d,0x13,0x1e,0x14,0x7e,0x27,0x28,0x88,0x2e,0x27, +0x28,0x86,0xbd,0x21,0x38,0xa, 0x1e,0x34,0x1e,0x34,0xbe,0x37,0x28,0x86,0x50,0x29, +0x90,0x60,0x51,0xe4,0x93,0x1e,0xb0,0xa, 0x2b,0x7e,0xb3,0x26,0xf7,0xa, 0x3b,0xbd, +0x32,0x8, 0x16,0x90,0x60,0x50,0xe4,0x93,0x1e,0xb0,0xa, 0x2b,0x7e,0xb3,0x26,0xf6, +0xa, 0x3b,0xbd,0x32,0x8, 0x3, 0x7e,0xa0,0x1, 0x7c,0xba,0x22,0x7f,0x61,0x7f,0x50, +0x7e,0x6b,0x90,0x80,0x1f,0x29,0x86,0x0, 0x1, 0x80,0xf, 0x7f,0x5, 0x7c,0xb9,0x7c, +0x78,0x12,0x76,0xd8,0x50,0x2, 0xd3,0x22,0xb, 0x80,0x29,0x76,0x0, 0x3, 0xbc,0x78, +0x50,0xe9,0xb, 0x90,0x29,0x76,0x0, 0x2, 0xbc,0x79,0x50,0xd9,0xc3,0x22,0x7e,0xa3, +0x2a,0x21,0xbe,0xa0,0x0, 0x38,0x2f,0xbe,0xa3,0x2a,0x20,0x50,0x19,0x7e,0xb3,0x2a, +0x2a,0xbe,0xb3,0x35,0x3c,0x28,0x14,0x7e,0xb3,0x35,0x3c,0x4, 0x7a,0xb3,0x35,0x3c, +0x7a,0xa3,0x2a,0x20,0x80,0x5, 0xe4,0x7a,0xb3,0x35,0x3c,0x7e,0xb3,0x2a,0x20,0x70, +0x5, 0xe4,0x7a,0xb3,0x2a,0x29,0x22,0x12,0x83,0xad,0x2, 0x83,0x6e,0x7e,0xb3,0x2a, +0x20,0x70,0x2d,0x7e,0x73,0x2a,0x21,0xbe,0x70,0x0, 0x28,0x24,0x7e,0xb3,0x34,0xc1, +0x70,0x18,0x12,0x83,0xea,0x7e,0x73,0x2a,0x21,0x7a,0x73,0x2a,0x20,0x74,0x1, 0x7a, +0xb3,0x2a,0x27,0x7e,0xb3,0x34,0xc1,0x4, 0x80,0x1, 0xe4,0x7a,0xb3,0x34,0xc1,0x22, +0xe4,0x7a,0xb3,0x34,0xc1,0x7a,0xb3,0x2a,0x27,0x22,0x7e,0x34,0x0, 0x3c,0xca,0x39, +0x7e,0x18,0x35,0xe5,0x7e,0x8, 0x36,0x21,0x12,0x17,0x29,0x1b,0xfd,0x7e,0x73,0x28, +0x94,0x7a,0x73,0x35,0xe4,0x7a,0x73,0x28,0x93,0x22,0xca,0x3b,0x7e,0xe3,0x2a,0x20, +0x4c,0xee,0x78,0x20,0x6c,0xff,0x6d,0x11,0x74,0x2, 0xac,0xbf,0x12,0x85,0xb1,0xac, +0x3f,0x19,0xa1,0x34,0xc6,0x74,0x2, 0xa, 0x1f,0x19,0xb1,0x35,0x30,0xb, 0xf0,0xbe, +0xf0,0xa, 0x78,0xe2,0x12,0x86,0x15,0x7e,0x24,0x0, 0x14,0xad,0x32,0x7d,0x43,0x2e, +0x44,0x3, 0x20,0x6c,0xff,0xa1,0x83,0x74,0x9, 0xac,0xbf,0x9, 0xd5,0x28,0xb2,0x5e, +0xd0,0xf, 0xbe,0xd0,0xa, 0x40,0x2, 0xa1,0x81,0xa, 0x1d,0x9, 0xb1,0x29,0xbc,0xbe, +0xb0,0x1, 0x78,0x2, 0xa1,0x6a,0x75,0x24,0x0, 0x7e,0xa1,0x24,0x74,0x9, 0xa4,0x9, +0xc5,0x34,0xc6,0xbc,0xcd,0x68,0x2, 0xa1,0x5d,0x49,0x25,0x34,0xc4,0x74,0x9, 0xac, +0xbf,0x49,0x35,0x28,0xb0,0x9d,0x32,0x12,0x17,0x80,0x7d,0x3, 0x7e,0xa1,0x24,0x74, +0x9, 0xa4,0x49,0x25,0x34,0xc2,0x74,0x9, 0xac,0xbf,0x12,0x86,0xcb,0x2d,0x3, 0xa, +0x1c,0x9, 0xa1,0x35,0x30,0xbe,0xa0,0x0, 0x28,0x17,0x7e,0x30,0x2, 0xac,0x3c,0x59, +0x1, 0x35,0x1c,0xa, 0x1c,0x2e,0x14,0x35,0x30,0x7c,0xba,0x14,0x7a,0x19,0xb0,0xa1, +0x81,0x74,0x2, 0xac,0xbc,0x49,0x15,0x35,0x1c,0xbe,0x14,0x0, 0x32,0x28,0x8, 0x7d, +0x31,0x2d,0x34,0xbd,0x30,0x40,0x20,0xbe,0x14,0x0, 0x32,0x28,0x8, 0xbe,0x4, 0x0, +0x32,0x28,0x2, 0x80,0x72,0x7d,0x31,0x2e,0x34,0x0, 0x32,0xbd,0x30,0x50,0x8, 0xbe, +0x14,0x0, 0x32,0x28,0x2, 0x80,0x60,0xbe,0x4, 0x0, 0xa0,0x28,0x56,0xa, 0x1d,0x9, +0xb1,0x29,0xbc,0x70,0x4, 0x74,0x3, 0x80,0x2, 0x74,0x1, 0xa, 0x1d,0x19,0xb1,0x29, +0xbc,0x74,0x3, 0xa, 0x1c,0x19,0xb1,0x29,0xc6,0xbe,0xe0,0x0, 0x28,0x63,0x1b,0xe0, +0x7e,0x70,0x9, 0xac,0x7f,0x2e,0x34,0x28,0xae,0x7e,0x14,0x1f,0x34,0x74,0x9, 0x12, +0x15,0xfc,0x7e,0x70,0x9, 0xac,0x7e,0x12,0x87,0x78,0xac,0x3f,0x12,0x85,0xa8,0x7e, +0x34,0x1f,0x34,0x7e,0x30,0x9, 0xac,0x3e,0x12,0x85,0xa8,0x1b,0xf0,0x74,0x2, 0xac, +0xbc,0x80,0x4, 0x74,0x2, 0xac,0xbc,0x59,0x5, 0x35,0x1c,0x80,0x24,0x5, 0x24,0xe5, +0x24,0xbe,0xb0,0xa, 0x50,0x2, 0x81,0x69,0x80,0x17,0x6d,0x11,0x74,0x2, 0xac,0xbd, +0x12,0x85,0xb1,0xac,0x3d,0x19,0xa1,0x34,0xc6,0x74,0x2, 0xa, 0x1d,0x19,0xb1,0x35, +0x30,0xb, 0xf0,0xbc,0xef,0x28,0x2, 0x81,0x47,0xe4,0x7a,0xb3,0x16,0x92,0x7e,0x34, +0x0, 0x5a,0xca,0x39,0x7e,0x18,0x28,0xae,0x7e,0x8, 0x34,0xc2,0x12,0x17,0x29,0x1b, +0xfd,0x7a,0xe3,0x2a,0x20,0xda,0x3b,0x22,0x2e,0x14,0x28,0xae,0x74,0x9, 0x2, 0x15, +0xfc,0x59,0x15,0x35,0x1c,0x7e,0xa0,0xff,0x7e,0x30,0x9, 0x22,0x7e,0xb3,0x37,0x2e, +0x70,0x3, 0x12,0x84,0xa, 0x2, 0x85,0xc8,0xca,0x79,0x7e,0xf3,0x2a,0x20,0x7e,0xe3, +0x2a,0x21,0x7c,0xbf,0x7c,0x7e,0x12,0x26,0xfc,0x7c,0xbf,0x12,0x86,0xd4,0x4c,0xee, +0x78,0x15,0x7e,0x34,0x0, 0x5a,0xca,0x39,0x7e,0x18,0x28,0xae,0x7e,0x8, 0x29,0x62, +0x12,0x17,0x29,0x1b,0xfd,0x80,0xb, 0x7e,0xb3,0x2a,0x27,0x70,0x5, 0x7c,0xbf,0x12, +0x86,0x4d,0x7c,0xbf,0x12,0x88,0xcd,0xbe,0xf0,0x0, 0x28,0x6, 0x74,0x1, 0x7a,0xb3, +0x2a,0x29,0xda,0x79,0x22,0x7e,0x73,0x2a,0x21,0xbe,0x73,0x2a,0x20,0x78,0x13,0x12, +0x87,0x88,0x40,0xe, 0x7e,0x37,0x34,0x9e,0xbe,0x34,0x0, 0x14,0x38,0xe, 0xb, 0x34, +0x80,0x6, 0x7e,0x37,0x34,0x9e,0x1e,0x34,0x7a,0x37,0x34,0x9e,0x7e,0xb3,0x2a,0x20, +0x70,0x6, 0x6d,0x33,0x7a,0x37,0x34,0x9e,0x7e,0x37,0x34,0x9e,0x22,0xca,0x3b,0x7c, +0xfb,0x6c,0xee,0x80,0x6f,0x6c,0xdd,0x74,0x9, 0xac,0xbd,0x9, 0x45,0x29,0x66,0x7e, +0x70,0x9, 0xac,0x7e,0x9, 0x53,0x28,0xb2,0xbc,0x45,0x68,0x7, 0xb, 0xd0,0xbe,0xd0, +0xa, 0x40,0xe4,0xbe,0xd0,0xa, 0x50,0x50,0x74,0x9, 0xac,0xbd,0x9, 0xc5,0x29,0x66, +0x49,0x25,0x29,0x64,0x49,0x33,0x28,0xb0,0x12,0x87,0x80,0x74,0x9, 0xac,0xbd,0x49, +0x25,0x29,0x62,0x74,0x9, 0xac,0xbe,0x12,0x86,0xcb,0x2d,0x31,0x7a,0x35,0x24,0xa, +0x3c,0x9, 0xb3,0x29,0xbc,0xb4,0x1, 0xe, 0x6d,0x33,0x74,0x2, 0xac,0xbc,0x59,0x35, +0x34,0x8a,0x59,0x35,0x34,0xad,0x7e,0x35,0x24,0x7c,0xbd,0x7c,0x5e,0x7c,0x4c,0x12, +0x5f,0xfa,0xb, 0xe0,0xbc,0xfe,0x38,0x8d,0xda,0x3b,0x22,0x49,0x35,0x28,0xae,0x9d, +0x32,0x2, 0x17,0x80,0xca,0xd8,0xca,0x79,0x7c,0xdb,0x7e,0xf0,0xa, 0x6c,0x11,0x80, +0x21,0x7e,0x0, 0xff,0x74,0x9, 0xac,0xb1,0x19,0x5, 0x1f,0x38,0x7e,0x34,0x7f,0xff, +0x74,0x9, 0xac,0xb1,0x59,0x35,0x1f,0x34,0x74,0x9, 0xac,0xb1,0x59,0x35,0x1f,0x36, +0xb, 0x10,0xbc,0xf1,0x38,0xdb,0xe4,0x6c,0x77,0x7c,0x6d,0x12,0x87,0x6e,0x7c,0x7d, +0x7c,0x6f,0x12,0x87,0x6e,0x6c,0x0, 0x80,0x39,0x6c,0xee,0x80,0x16,0x74,0x9, 0xac, +0xbe,0x9, 0x65,0x1f,0x38,0x74,0x9, 0xac,0xb0,0x9, 0x75,0x28,0xb2,0xbc,0x76,0x68, +0x6, 0xb, 0xe0,0xbc,0x1e,0x38,0xe6,0xbc,0x1e,0x78,0x15,0x7e,0x70,0x9, 0xac,0x70, +0x12,0x87,0x78,0xac,0x31,0x2e,0x14,0x1f,0x34,0x74,0x9, 0x12,0x15,0xfc,0xb, 0x10, +0xb, 0x0, 0xbc,0xf0,0x38,0xc3,0x74,0x9, 0xac,0xbf,0xca,0x59,0x7e,0x18,0x1f,0x34, +0x7e,0x8, 0x29,0x62,0x12,0x17,0x29,0x1b,0xfd,0xda,0x79,0xda,0xd8,0x22,0x7e,0x8, +0x1f,0x34,0x12,0x87,0xcb,0x7c,0x1b,0x22,0x2e,0x34,0x28,0xae,0x7e,0x30,0x9, 0x22, +0x9d,0x32,0x12,0x17,0x80,0x7d,0x13,0x22,0x7e,0x73,0x2a,0x20,0xbe,0x70,0x1, 0x22, +0x7e,0xb3,0x2a,0x27,0x70,0x23,0x7e,0xb3,0x34,0xa0,0xb4,0x2, 0x9, 0x12,0x87,0x88, +0x28,0x4, 0x74,0x3, 0x80,0x1, 0xe4,0x7a,0xb3,0x34,0xab,0x7e,0x73,0x34,0xac,0xbe, +0x73,0x34,0xab,0x28,0x4, 0x7a,0x73,0x34,0xab,0x22,0x12,0x89,0x1e,0x2, 0x87,0x90, +0x12,0x2f,0x98,0x12,0x1e,0x87,0x7a,0xb3,0x2a,0x2a,0x22,0xca,0x3b,0x7c,0x46,0x7c, +0xab,0x6c,0x66,0x7c,0x57,0x2, 0x88,0x5d,0x7e,0xf0,0x9, 0xac,0xf6,0x9, 0x87,0x29, +0x66,0x7c,0x98,0x7e,0xd0,0x9, 0xac,0xd5,0x9, 0xb6,0x28,0xb2,0xbc,0xb9,0x78,0x6b, +0xbe,0x90,0xff,0x68,0x66,0x12,0x88,0x73,0x39,0x87,0x0, 0x4, 0xa, 0xf9,0x9, 0xbf, +0x29,0xbc,0x7e,0xf0,0x9, 0x70,0xc, 0xac,0xf5,0x7d,0x97,0x2e,0x94,0x28,0xae,0x6d, +0x88,0x80,0xa, 0xac,0xf6,0x7d,0x97,0x2e,0x94,0x29,0x62,0x6d,0x88,0xb, 0x4a,0xd0, +0x12,0x88,0x73,0x1b,0x7a,0xd0,0x69,0xf4,0x0, 0x2, 0x7e,0xf0,0x9, 0xac,0xfa,0x7f, +0x60,0x2d,0xd7,0x79,0xf6,0x0, 0x2, 0x7e,0xf0,0x9, 0xac,0xf5,0x9, 0x87,0x28,0xb3, +0x12,0x88,0x73,0x39,0x87,0x0, 0x5, 0x7e,0xf0,0x9, 0xac,0xf5,0x9, 0x87,0x28,0xb4, +0x12,0x88,0x73,0x39,0x87,0x0, 0x6, 0xb, 0xa0,0x80,0x9, 0xb, 0x50,0xbc,0x45,0x28, +0x3, 0x2, 0x87,0xd8,0xb, 0x60,0xbe,0x60,0xa, 0x50,0x3, 0x2, 0x87,0xd3,0x7c,0xba, +0xda,0x3b,0x22,0x7e,0xf0,0x9, 0xac,0xfa,0x7f,0x70,0x2d,0xf7,0x22,0xca,0xf8,0x7c, +0xfb,0x7d,0xf3,0x7e,0x17,0x2a,0x81,0xbd,0x13,0x38,0x6, 0x7e,0x34,0x1, 0x0, 0x80, +0x15,0x6d,0x22,0x7c,0x56,0x7c,0x67,0x6c,0x77,0x12,0x15,0x75,0xbe,0x34,0x0, 0x10, +0x50,0x4, 0x7e,0x34,0x0, 0x10,0x74,0x2, 0xac,0xbf,0x49,0x25,0x34,0xad,0xbd,0x2f, +0x28,0x6, 0x49,0x35,0x34,0x8a,0x80,0x4, 0x59,0x35,0x34,0x8a,0x59,0xf5,0x34,0xad, +0xbe,0x34,0x1, 0x0, 0x28,0x4, 0x7e,0x34,0x1, 0x0, 0xda,0xf8,0x22,0x6c,0xaa,0x7e, +0x50,0x9, 0xac,0x5a,0x49,0x32,0x29,0x62,0x12,0x4f,0xeb,0x59,0x32,0x28,0xae,0x7e, +0x50,0x9, 0xac,0x5a,0x49,0x32,0x29,0x64,0x12,0x4f,0xeb,0x59,0x32,0x28,0xb0,0x7e, +0x90,0x9, 0xac,0x9a,0x9, 0xb4,0x29,0x66,0x19,0xb4,0x28,0xb2,0x7e,0x90,0x9, 0xac, +0x9a,0x9, 0xb4,0x29,0x67,0x19,0xb4,0x28,0xb3,0x7e,0x90,0x9, 0xac,0x9a,0x9, 0xb4, +0x29,0x68,0x19,0xb4,0x28,0xb4,0xb, 0xa0,0xbe,0xa0,0xa, 0x40,0xb2,0x22,0xca,0x79, +0x7e,0x13,0x2a,0x20,0x7e,0x78,0x29,0xbc,0x12,0x8a,0x65,0xe4,0x33,0x7c,0xb, 0x4c, +0x0, 0x68,0x8, 0x7e,0x30,0xf, 0x7e,0xa0,0x2, 0x80,0x6, 0x7e,0x30,0x3, 0x7e,0xa0, +0x1, 0xa5,0xb9,0x0, 0x5, 0x12,0x1a,0x9a,0x41,0x4e,0xbc,0x20,0x50,0x3, 0x12,0x1a, +0x9a,0x6c,0x0, 0x7e,0x70,0x9, 0xac,0x70,0x9, 0x93,0x29,0xc, 0xbe,0x90,0xff,0x78, +0x2, 0x41,0x44,0xa, 0x29,0x7f,0x67,0x2d,0xd2,0x7e,0x6b,0x80,0xbe,0x80,0x2, 0x68, +0x2, 0x41,0x27,0x12,0x8a,0x5b,0x49,0x33,0x29,0x8, 0x9d,0x32,0x12,0x17,0x80,0x7d, +0xd3,0x7e,0x70,0x4, 0xac,0x79,0x49,0x23,0x35,0x3f,0x12,0x8a,0x51,0x9d,0x32,0x12, +0x17,0x80,0x7d,0xc3,0x7e,0x73,0x34,0x88,0xa, 0x27,0xbd,0x2d,0x28,0x53,0xbd,0x2c, +0x28,0x4f,0x12,0x8a,0x5b,0x7e,0xf0,0x9, 0xac,0xf0,0x59,0x27,0x29,0x8, 0x7e,0x50, +0x4, 0xac,0x59,0x49,0x22,0x35,0x3f,0x7e,0xf0,0x9, 0xac,0xf0,0x59,0x27,0x29,0xa, +0xbe,0x10,0x0, 0x28,0x2, 0x1b,0x10,0xa5,0xb9,0x0, 0x79,0x7e,0xb3,0x34,0x89,0x4, +0x7a,0xb3,0x34,0x89,0x7e,0x63,0x34,0x89,0xbe,0x60,0x32,0x40,0x67,0xe4,0x7a,0xb3, +0x34,0x89,0x7e,0xb3,0x34,0x88,0xbc,0xb3,0x50,0x5a,0x4, 0x7a,0xb3,0x34,0x88,0x80, +0x53,0x7e,0x50,0x9, 0xac,0x50,0x49,0xb2,0x29,0x8, 0x7e,0xf0,0x4, 0xac,0xf9,0x59, +0xb7,0x35,0x3d,0x49,0x22,0x29,0xa, 0x59,0x27,0x35,0x3f,0xbc,0x73,0x28,0x6, 0x7a, +0xa3,0x34,0x88,0x80,0xb, 0xbc,0x7a,0x28,0x7, 0x7c,0xb7,0x14,0x7a,0xb3,0x34,0x88, +0xe4,0x7a,0xb3,0x34,0x89,0x80,0x1d,0x4c,0x88,0x78,0x19,0x7e,0x70,0x9, 0xac,0x70, +0x49,0x33,0x29,0x8, 0x7e,0x50,0x4, 0xac,0x59,0x59,0x32,0x35,0x3d,0x12,0x8a,0x51, +0x59,0x32,0x35,0x3f,0xb, 0x0, 0xa5,0xb8,0xa, 0x2, 0x80,0x2, 0x21,0x53,0xda,0x79, +0x22,0x7e,0x70,0x9, 0xac,0x70,0x49,0x33,0x29,0xa, 0x22,0x7e,0x50,0x4, 0xac,0x59, +0x49,0x22,0x35,0x3d,0x22,0xa2,0x8, 0x22,0x7e,0x8, 0x34,0xa0,0x7e,0x34,0x0, 0xd, +0xe4,0x2, 0x17,0x4e,0x7e,0x8, 0x34,0xad,0x7e,0x34,0x0, 0x14,0xe4,0x12,0x17,0x4e, +0x7e,0x8, 0x34,0x8a,0x7e,0x34,0x0, 0x14,0x2, 0x17,0x4e,0x12,0x8e,0xd7,0x12,0x8d, +0x14,0x12,0x8b,0xfe,0x12,0x8b,0x47,0x2, 0x8a,0x9a,0xca,0x3b,0x12,0x1e,0x38,0x7e, +0xb3,0x28,0x84,0x60,0x6, 0x7e,0xb3,0x35,0xde,0x60,0x9, 0xe4,0x7a,0xb3,0x35,0xe0, +0x7a,0xb3,0x35,0x65,0x7e,0xb3,0x35,0xde,0x70,0x62,0x6c,0x99,0x80,0x56,0x74,0x2, +0xac,0xb9,0x9, 0x85,0x26,0xfa,0x9, 0xf5,0x26,0xfb,0x7c,0xb9,0x12,0x8c,0xa2,0x40, +0x41,0x6c,0xee,0x80,0x35,0x74,0x2, 0xac,0xbe,0x9, 0xd5,0x35,0x66,0x9, 0xc5,0x35, +0x67,0xa, 0x28,0xa, 0x3d,0x12,0x8b,0x3f,0x78,0x1e,0xa, 0x2f,0xa, 0x3c,0x12,0x8b, +0x3f,0x78,0x15,0x7c,0xb9,0x12,0x71,0x7e,0xbe,0x34,0x3, 0x20,0x58,0xa, 0x12,0x8d, +0xc2,0x7c,0xb8,0x7c,0x7f,0x12,0x8b,0xe3,0xb, 0xe0,0x7e,0x73,0x35,0xe0,0xbc,0x7e, +0x38,0xc3,0xb, 0x90,0x7e,0x73,0x28,0x84,0xbc,0x79,0x38,0xa2,0x7e,0x73,0x35,0x65, +0x7a,0x73,0x35,0xe0,0xa, 0x37,0x3e,0x34,0xca,0x39,0x7e,0x18,0x35,0xa2,0x7e,0x8, +0x35,0x66,0x12,0x17,0x29,0x1b,0xfd,0xe4,0x7a,0xb3,0x35,0xde,0xda,0x3b,0x22,0x9d, +0x32,0x12,0x17,0x80,0x4d,0x33,0x22,0xca,0xd8,0xca,0x79,0x7e,0xf4,0x3, 0x20,0x7d, +0x7f,0x12,0x8e,0xee,0x50,0x2, 0x61,0xde,0x7a,0xf5,0x2a,0x7e,0xb3,0x28,0xa8,0xb4, +0x1, 0x4, 0x7e,0x74,0x4, 0xb0,0x7e,0x37,0x28,0x8a,0xbe,0x34,0x4, 0x4c,0x8, 0x6e, +0x6c,0xdd,0x80,0x62,0xc2,0x3, 0x7c,0xbd,0x12,0x71,0x7e,0x7a,0x35,0x26,0x7c,0xbd, +0x7e,0x70,0x1, 0x12,0x8f,0x11,0x7a,0x35,0x24,0x9e,0x35,0x26,0x7a,0x35,0x24,0x7e, +0x35,0x26,0x3e,0x34,0x3e,0x34,0x12,0x8d,0xd, 0x7a,0x35,0x28,0xbe,0x75,0x28,0x58, +0x3, 0x7a,0x75,0x28,0x7e,0x35,0x28,0xbe,0x35,0x24,0x8, 0xa, 0x7e,0x35,0x2a,0xbe, +0x35,0x26,0x8, 0x2, 0xd2,0x3, 0x7c,0xbd,0x12,0x8c,0xa2,0x50,0x2, 0xc2,0x3, 0x30, +0x3, 0x12,0x7c,0xbd,0x6c,0x77,0x12,0x2f,0x4c,0x7e,0x70,0x2, 0xac,0x7d,0x12,0x8c, +0x99,0x12,0x8b,0xe3,0xb, 0xd0,0x7e,0x73,0x28,0x84,0xbc,0x7d,0x38,0x96,0xda,0x79, +0xda,0xd8,0x22,0x7c,0x6b,0x7e,0xa3,0x35,0x65,0x7e,0x50,0x2, 0xac,0x5a,0x19,0x62, +0x35,0xa2,0x19,0x72,0x35,0xa3,0x7c,0xba,0x4, 0x7a,0xb3,0x35,0x65,0x22,0xca,0x3b, +0x7e,0xb3,0x2a,0x93,0xf5,0x27,0x12,0x76,0x4a,0x50,0x2, 0x81,0x8e,0x6d,0x33,0x9e, +0x37,0x2a,0x6e,0x3e,0x34,0xbe,0x37,0x7, 0xf8,0x18,0x73,0x7e,0xb3,0x16,0x92,0x70, +0x6d,0x7e,0xb3,0x28,0xa8,0xb4,0x1, 0x63,0x7e,0x77,0x2a,0x70,0x7e,0x67,0x2a,0x72, +0x75,0x24,0x0, 0x80,0x51,0xe5,0x24,0x12,0x1f,0xd4,0x60,0x48,0x12,0x8c,0x91,0x12, +0x8e,0xca,0x7e,0xb3,0x2a,0x21,0xb4,0x1, 0x9, 0xe5,0x26,0xb4,0x17,0x4, 0xe, 0x64, +0xe, 0x74,0x7e,0xa1,0x26,0x74,0x2, 0xa4,0x49,0x35,0x4, 0xfc,0xbd,0x36,0x48,0x14, +0xe5,0x25,0xa, 0x2b,0xe5,0x27,0xa, 0x3b,0x2d,0x32,0x3e,0x34,0x49,0x33,0x4, 0xfc, +0xbd,0x37,0x58,0x10,0xe5,0x24,0x6c,0x77,0x12,0x2f,0x4c,0x12,0x8c,0x91,0x12,0x8c, +0x99,0x12,0x8b,0xe3,0x5, 0x24,0x12,0x8e,0xc2,0x38,0xaa,0x12,0x8c,0xc4,0xda,0x3b, +0x22,0x7e,0x71,0x24,0x74,0x2, 0xac,0x7b,0x22,0x9, 0xb3,0x26,0xfa,0x9, 0x73,0x26, +0xfb,0x22,0x7c,0x4b,0x74,0x2, 0xac,0xb4,0x9, 0x55,0x26,0xfa,0x9, 0x65,0x26,0xfb, +0x7e,0x73,0x28,0x8c,0xbc,0x75,0x78,0xa, 0x7e,0x73,0x28,0x8d,0xbc,0x76,0x78,0x2, +0xd3,0x22,0xc3,0x22,0x7e,0xa0,0x1, 0x7e,0x37,0x2a,0x6e,0x12,0x8d,0xc9,0x28,0x35, +0x6d,0x22,0x9d,0x23,0xbe,0x27,0x7, 0xf8,0x58,0x2b,0x12,0x8d,0xd, 0xbe,0x37,0x7, +0xfa,0x8, 0x22,0xe4,0x7a,0xb3,0x28,0x84,0x7e,0xb3,0x2a,0x21,0x70,0x17,0x7e,0xb3, +0x37,0x5, 0xb4,0x1, 0x10,0x6c,0xaa,0x5, 0x1f,0xe5,0x1f,0xbe,0xb0,0x10,0x28,0x5, +0xd2,0x11,0x75,0x1f,0x0, 0x4c,0xaa,0x68,0x3, 0x75,0x1f,0x0, 0x22,0x7e,0x24,0x0, +0x2, 0x2, 0x15,0x29,0xca,0x3b,0x7e,0x93,0x2a,0x93,0x7e,0x37,0x28,0x8a,0xbe,0x34, +0x2, 0xbc,0x58,0x2, 0xa1,0xb8,0x6c,0x88,0xa1,0xb1,0x6c,0xff,0x6c,0xee,0x74,0x2, +0xac,0xb8,0x9, 0xd5,0x26,0xfa,0x12,0x77,0xed,0x7c,0xbd,0x12,0x1e,0x80,0xbe,0x34, +0x0, 0xfa,0x18,0x6b,0x7e,0xa1,0x24,0x74,0x2, 0xa4,0x49,0x55,0x4, 0xfc,0xbe,0x54, +0x1, 0xc2,0x18,0x5b,0xbe,0xd0,0x3, 0x38,0x5f,0x6c,0xcc,0x80,0xd, 0x12,0x8d,0xbb, +0xbe,0x34,0x2, 0xbc,0x8, 0x2, 0xb, 0xf0,0xb, 0xc0,0xbc,0x9c,0x38,0xef,0x6c,0xcc, +0x80,0x24,0xbc,0x8c,0x68,0x1e,0x74,0x2, 0xac,0xbc,0x9, 0x75,0x26,0xfa,0xa, 0x37, +0x7d,0x13,0xb, 0x14,0xa, 0x2d,0xbd,0x12,0x48,0xa, 0xa, 0x5d,0xb, 0x54,0xbd,0x35, +0x18,0x2, 0xb, 0xe0,0xb, 0xc0,0x7e,0x73,0x28,0x84,0xbc,0x7c,0x38,0xd4,0xbe,0xf0, +0x5, 0x50,0x5, 0xbe,0xe0,0x2, 0x40,0x7, 0x7c,0xb8,0x6c,0x77,0x12,0x2f,0x4c,0xb, +0x80,0x12,0x77,0xe6,0x28,0x2, 0xa1,0x2a,0xda,0x3b,0x22,0x7c,0xbd,0x7c,0x7c,0x2, +0x1e,0x80,0x7c,0xb9,0x6c,0x77,0x2, 0x2f,0x4c,0x7e,0xb3,0x28,0x84,0xbe,0xb0,0x0, +0x22,0xca,0x3b,0x12,0x8d,0xc9,0x38,0x2, 0xc1,0x98,0x7e,0xc3,0x2f,0xcc,0x4c,0xcc, +0x78,0x3d,0x7a,0xb3,0x2f,0xcc,0xe4,0x7a,0xb3,0x2f,0xce,0x6c,0xaa,0x80,0x26,0x12, +0x8e,0xa3,0x7e,0x70,0x2, 0xac,0x7a,0x9, 0xd3,0x26,0xfa,0x9, 0xe3,0x26,0xfb,0x7a, +0x49,0xd0,0x19,0xe4,0x0, 0x1, 0x74,0x1, 0x19,0xb4,0x0, 0x8, 0x12,0x8e,0xad,0x59, +0x34,0x0, 0x2, 0xb, 0xa0,0x7e,0xb3,0x28,0x84,0xbc,0xba,0x38,0xd2,0x80,0x7f,0x7c, +0xfc,0x6c,0xaa,0x80,0x35,0x12,0x8e,0xa3,0x7e,0x49,0xd0,0x9, 0xe4,0x0, 0x1, 0x9, +0xb4,0x0, 0x8, 0x70,0x4, 0x1b,0xf0,0x80,0x1f,0x12,0x8e,0xad,0x7d,0x23,0x49,0x34, +0x0, 0x2, 0x9d,0x32,0x12,0x17,0x80,0x7d,0xf3,0xbe,0xf4,0x0, 0x23,0x8, 0x9, 0x74, +0x5, 0x19,0xb4,0x0, 0x8, 0x75,0x5e,0x1, 0xb, 0xa0,0xbc,0xfa,0x38,0xc7,0x4c,0xff, +0x78,0x2, 0x80,0x26,0x7e,0x73,0x2f,0xce,0xbe,0x70,0x4, 0x40,0x22,0x6c,0xaa,0x80, +0xe, 0x12,0x8e,0xa3,0x9, 0xb4,0x0, 0x8, 0xbe,0xb0,0x5, 0x68,0x6, 0xb, 0xa0,0xbc, +0xfa,0x38,0xee,0xbc,0xfa,0x78,0x3, 0x75,0x5e,0x0, 0x12,0x8e,0xb4,0x80,0xf, 0x7c, +0xb7,0x4, 0x7a,0xb3,0x2f,0xce,0x80,0x6, 0x12,0x8e,0xb4,0x75,0x5e,0x0, 0xe5,0x5e, +0xda,0x3b,0x22,0x7e,0x90,0x9, 0xac,0x9a,0x2e,0x44,0x2f,0xcf,0x22,0x7c,0xbd,0x7c, +0x7e,0x2, 0x1e,0x80,0xe4,0x7a,0xb3,0x2f,0xcd,0x7a,0xb3,0x2f,0xcc,0x7a,0xb3,0x2f, +0xce,0x22,0x7e,0x73,0x28,0x84,0xbe,0x71,0x24,0x22,0x9, 0xb3,0x26,0xfa,0xf5,0x25, +0x9, 0xb3,0x26,0xfb,0xf5,0x26,0x22,0xe4,0x7a,0xb3,0x35,0x65,0x7e,0xb3,0x28,0x84, +0x60,0x6, 0x7e,0xb3,0x35,0xde,0x60,0x5, 0xe4,0x7a,0xb3,0x35,0xe0,0x22,0x6c,0x99, +0x6c,0x88,0x80,0xf, 0x7c,0xb8,0x12,0x71,0x7e,0xbe,0x34,0x1, 0xf4,0x8, 0x2, 0xb, +0x90,0xb, 0x80,0x12,0x77,0xe6,0x38,0xec,0xbe,0x90,0x1, 0x38,0x2, 0xc3,0x22,0xd3, +0x22,0xca,0x79,0x7c,0xa7,0x7c,0x8b,0x7e,0xb3,0x2a,0x8e,0x7a,0xb3,0x1f,0x34,0x7e, +0xb3,0x2a,0x8f,0x7a,0xb3,0x1f,0x35,0x7e,0x70,0x2, 0xac,0x78,0x9, 0x93,0x26,0xfa, +0x9, 0x83,0x26,0xfb,0x9f,0x77,0x1a,0x3a,0x1a,0x79,0x9d,0x73,0xe1,0xc9,0x7a,0xf1, +0x2d,0xbe,0xf0,0x0, 0x58,0xe, 0x1a,0x3f,0x1a,0x29,0x9d,0x23,0x1a,0x39,0x2d,0x32, +0x7c,0xb7,0xf5,0x2d,0x7e,0xb3,0x1f,0x34,0xbc,0xbf,0x18,0xe, 0x1a,0x39,0x1a,0x2f, +0x9d,0x23,0x1a,0x39,0x9d,0x32,0x7c,0xb7,0xf5,0x2d,0x1a,0x2a,0x1a,0x38,0x9d,0x32, +0x7c,0xb7,0xf5,0x2c,0x80,0x43,0x85,0x2c,0x2e,0xe5,0x2c,0xbe,0xb0,0x0, 0x58,0x10, +0xe5,0x2c,0x1a,0x3b,0x1a,0x28,0x9d,0x23,0x1a,0x38,0x2d,0x32,0x7c,0xb7,0xf5,0x2e, +0x7e,0xb3,0x1f,0x35,0xbe,0xb1,0x2c,0x18,0x10,0x1a,0x38,0xe5,0x2c,0x1a,0x2b,0x9d, +0x23,0x1a,0x38,0x9d,0x32,0x7c,0xb7,0xf5,0x2e,0xe5,0x2d,0x7e,0x71,0x2e,0x12,0x1e, +0x80,0x1a,0x26,0x1a,0x24,0x2f,0x71,0x5, 0x2c,0x1a,0x3a,0x1a,0x28,0x2d,0x23,0xe5, +0x2c,0x1a,0x3b,0xbd,0x32,0x8, 0xaf,0xb, 0xf0,0x1a,0x3a,0x1a,0x29,0x2d,0x23,0x1a, +0x3f,0xbd,0x32,0x18,0x2, 0xe1,0x3e,0x7f,0x17,0xda,0x79,0x22,0xca,0xf8,0x7c,0xfb, +0x7e,0x70,0x2, 0x12,0x8f,0x11,0x7f,0x71,0x7c,0xbf,0x12,0x71,0x7e,0x7d,0x13,0x1a, +0x2, 0x1a,0x0, 0x7f,0x17,0x12,0x15,0xc8,0x7c,0xb7,0xda,0xf8,0x22,0x7e,0x63,0x2a, +0x8d,0xc2,0x12,0x6c,0x33,0x80,0x48,0x7c,0x96,0xac,0x93,0x2e,0x44,0x0, 0x16,0x7d, +0x4, 0xb, 0x4, 0x7d,0x54,0x3e,0x54,0x7e,0x7f,0x13,0x8a,0x2d,0xf5,0xb, 0x7a,0x50, +0xbe,0x57,0x2a,0x79,0x8, 0x27,0x7c,0xb3,0x12,0x2e,0x9f,0x50,0x20,0x7d,0x50,0x3e, +0x54,0x7e,0x7f,0x13,0x8a,0x7f,0x67,0x2d,0xd5,0xb, 0x6a,0x20,0x7d,0x54,0x3e,0x54, +0x2d,0xf5,0xb, 0x7a,0x50,0xbd,0x52,0x8, 0x4, 0xd2,0x12,0x80,0xa, 0xb, 0x30,0x7e, +0x73,0x2a,0x94,0xbc,0x73,0x38,0xb0,0x30,0x12,0x5, 0xd2,0x3, 0x2, 0x2f,0xa, 0x22, +0x30,0x12,0x5, 0x12,0x2a,0x24,0xc2,0x12,0x22,0xca,0xd8,0xca,0x79,0x7c,0xfb,0x7f, +0x70,0xc2,0x3, 0x6c,0xdd,0x6d,0xdd,0x7e,0x34,0x19,0x39,0x7e,0x24,0x0, 0xff,0x7e, +0x14,0x1f,0x34,0x74,0xc, 0x12,0x16,0x1d,0x6d,0x11,0x7e,0x4, 0x7f,0xff,0x6c,0xee, +0x80,0x13,0x12,0x7f,0x37,0x7d,0xc3,0xbd,0xdc,0x50,0x2, 0x7d,0xdc,0xbd,0xc, 0x28, +0x2, 0x7d,0xc, 0xb, 0xe0,0xbc,0xfe,0x38,0xe9,0xbe,0xd4,0x0, 0x1e,0x58,0xa, 0x7e, +0xb3,0x28,0x94,0x70,0x4, 0x6d,0x33,0x21,0x61,0xbe,0xd4,0x4, 0xb0,0x8, 0x2, 0xd2, +0x3, 0x6c,0xee,0x74,0x4, 0xac,0xbe,0x49,0x45,0x1f,0x34,0xbd,0x4d,0x58,0x6, 0x49, +0xd5,0x1f,0x36,0x80,0x7, 0xb, 0xe0,0xbe,0xe0,0x3, 0x40,0xe7,0xbe,0xe0,0x3, 0x78, +0x4, 0x6d,0x33,0x80,0x7c,0xbd,0xd, 0x8, 0x5, 0x30,0x3, 0x2, 0x7d,0xd0,0x9f,0x55, +0x6c,0xee,0x80,0xb, 0x12,0x7f,0x37,0x1a,0x26,0x1a,0x24,0x2f,0x51,0xb, 0xe0,0xbc, +0xfe,0x38,0xf1,0xa, 0x1f,0x12,0x91,0x6f,0x9f,0x55,0x6c,0xee,0x80,0x1a,0x12,0x91, +0x66,0xb, 0x1a,0x90,0x7d,0x39,0x12,0x17,0x80,0x7d,0xc3,0xbd,0x1c,0x28,0x7, 0x12, +0x91,0x79,0x2f,0x51,0xb, 0xd0,0xb, 0xe0,0xbc,0xfe,0x38,0xe2,0x6d,0x11,0xbe,0xd0, +0x0, 0x28,0x5, 0xa, 0x1d,0x12,0x91,0x6f,0xbd,0x1d,0x8, 0x4, 0x7d,0x1d,0x80,0xa, +0x6d,0x0, 0x9d,0xd, 0xbd,0x1, 0x8, 0x2, 0x7d,0x10,0x6c,0xee,0x80,0xd, 0x12,0x91, +0x66,0xb, 0x1a,0x0, 0x9d,0x1, 0x1b,0x1a,0x0, 0xb, 0xe0,0xbc,0xfe,0x38,0xef,0x7d, +0x31,0xda,0x79,0xda,0xd8,0x22,0x74,0x2, 0xac,0xbe,0x7f,0x17,0x2d,0x35,0x22,0x6d, +0x0, 0x7f,0x15,0x12,0x15,0xc8,0x7d,0x13,0x22,0x7d,0x39,0x1a,0x26,0x1a,0x24,0x22, +0x7e,0xb3,0x2b,0x3c,0xb4,0x1, 0x31,0x12,0x5f,0x91,0x7e,0x1f,0x33,0xf8,0x7a,0x37, +0x24,0xfa,0x7e,0x34,0xd, 0xc8,0x7a,0x37,0x24,0xf6,0x12,0x5f,0xc4,0x12,0x5f,0xcd, +0xe4,0x7a,0xb3,0x24,0xf5,0x7e,0x34,0x0, 0x20,0x7a,0x37,0x24,0xfc,0x7a,0xb3,0x24, +0xf4,0x7e,0x8, 0x24,0xf2,0x2, 0xd, 0x7, 0x22,0x7c,0xab,0x7c,0xb7,0xb4,0x17,0x9, +0x7c,0xba,0x12,0x2e,0x9f,0x50,0x2, 0xd3,0x22,0xc3,0x22,0x6c,0x66,0x7e,0xb3,0x28, +0xa8,0xb4,0x1, 0x63,0x7e,0x73,0x26,0xf2,0xbe,0x70,0x0, 0x28,0x5a,0x6c,0x33,0x80, +0x4e,0xa, 0x23,0x9, 0x72,0x26,0xe6,0x7e,0xb3,0x2a,0x8d,0x14,0xbc,0x7b,0x78,0x3d, +0x6c,0x22,0x80,0x27,0x7c,0xb2,0x7c,0x73,0x12,0x91,0xb9,0x50,0x1c,0xa, 0x22,0x7e, +0x73,0x2a,0x8d,0xa, 0x7, 0x2d,0x2, 0x3e,0x4, 0x49,0x20,0x4, 0xfc,0x6d,0x0, 0x9e, +0x7, 0x2a,0x6e,0xbd,0x20,0x58,0x2, 0xb, 0x60,0xb, 0x20,0x7e,0x73,0x2a,0x8c,0xbc, +0x72,0x38,0xd1,0xbe,0x60,0x0, 0x28,0x3, 0x74,0x1, 0x22,0xe4,0x22,0xb, 0x30,0x7e, +0x73,0x26,0xf2,0xbc,0x73,0x38,0xaa,0x74,0x1, 0x22,0x6c,0xaa,0x7e,0x30,0x4, 0xac, +0x3a,0x7d,0xf1,0x2e,0xf4,0x60,0xb1,0x7e,0xe4,0x0, 0xff,0xb, 0x7a,0x20,0xbd,0x23, +0x38,0xf, 0x2e,0x14,0x60,0xb3,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0x20,0xbd,0x23,0x50, +0x7, 0xb, 0xa0,0xbe,0xa0,0x3, 0x40,0xd4,0x7c,0xba,0x22,0x12,0x92,0x7a,0xbe,0x34, +0x2, 0x30,0x28,0x3, 0xd2,0x13,0x22,0xc2,0x13,0x22,0x6d,0x11,0xe4,0x12,0x0, 0x1e, +0x6c,0xaa,0x80,0x5b,0x7e,0x10,0x2, 0xac,0x1a,0x7e,0x7f,0x38,0xef,0x2d,0xf0,0x69, +0x27,0x1, 0x0, 0x69,0x37,0x0, 0x80,0x9d,0x32,0x12,0x17,0x80,0xbd,0x31,0x28,0x16, +0x7e,0x70,0x2, 0xac,0x7a,0x7e,0xf, 0x38,0xef,0x2d,0x13,0x69,0x20,0x1, 0x0, 0x69, +0x30,0x0, 0x80,0x12,0x87,0x80,0x7e,0x10,0x2, 0xac,0x1a,0x7e,0x1f,0x38,0xef,0x2d, +0x30,0x69,0x1, 0x0, 0x80,0xbe,0x4, 0x7f,0xff,0x78,0x4, 0x7e,0x14,0x7f,0xff,0x69, +0x1, 0x1, 0x0, 0xbe,0x4, 0x7f,0xff,0x78,0x4, 0x7e,0x14,0x7f,0xff,0xb, 0xa0,0x7e, +0xb3,0x2a,0x93,0xbc,0xba,0x38,0x9d,0x7d,0x31,0x22,0x7e,0xa0,0x1, 0x7e,0x47,0x7, +0xf8,0x7e,0x4, 0x1, 0x18,0xbe,0x44,0xfc,0xb8,0x58,0x12,0x7e,0xb3,0x28,0xac,0x60, +0x7, 0xe4,0x7a,0xb3,0x28,0xad,0x80,0x38,0x7e,0xa0,0x5, 0x80,0x33,0x7e,0x34,0xff, +0xfb,0xad,0x30,0x7e,0x14,0x0, 0x2, 0x12,0x93,0x45,0x8, 0x5, 0x7e,0xa0,0x4, 0x80, +0x1f,0x7e,0x34,0xff,0xfc,0x12,0x93,0x43,0x8, 0x5, 0x7e,0xa0,0x3, 0x80,0x11,0x7e, +0x34,0xff,0xfd,0x12,0x93,0x43,0x8, 0x5, 0x7e,0xa0,0x2, 0x80,0x3, 0x7e,0xa0,0x1, +0x7c,0xba,0x22,0xad,0x30,0x7d,0x21,0x12,0x15,0x29,0xbd,0x34,0x22,0x6c,0x66,0x7e, +0x27,0x38,0xff,0xbe,0x24,0x3, 0xe8,0x28,0x3, 0x7e,0x60,0x8, 0x7e,0xb3,0x28,0xac, +0xb4,0x1, 0x1a,0x7e,0x73,0x2f,0xca,0xbc,0x76,0x50,0xf, 0xe4,0x7a,0xb3,0x28,0xad, +0x12,0x76,0x88,0x7e,0xb3,0x2f,0xca,0x4, 0x80,0x4, 0xe4,0x80,0x1, 0xe4,0x7a,0xb3, +0x2f,0xca,0x7e,0xb3,0x28,0xad,0xb4,0x1, 0x17,0x7e,0xa3,0x2f,0xcb,0xbe,0xa0,0x5, +0x50,0xa, 0xe4,0x7a,0xb3,0x28,0xad,0x7c,0xba,0x4, 0x80,0x5, 0x74,0x5, 0x80,0x1, +0xe4,0x7a,0xb3,0x2f,0xcb,0x22,0x6c,0xaa,0x80,0x26,0x7e,0x50,0x2, 0xac,0x5a,0x49, +0x12,0x5, 0xf8,0x49,0x32,0x4, 0x0, 0x2d,0x31,0x59,0x32,0x5, 0xf8,0x30,0x1, 0xe, +0x49,0x12,0x4, 0x7e,0x49,0x32,0x6, 0x76,0x2d,0x31,0x59,0x32,0x6, 0x76,0xb, 0xa0, +0x7e,0xb3,0x2a,0x93,0xa, 0x3b,0x7e,0xb3,0x2a,0x92,0xa, 0x2b,0x2d,0x23,0xa, 0x3a, +0xbd,0x32,0x48,0xc6,0x22,0xd2,0x3, 0x6c,0xaa,0x6c,0x77,0x80,0x1f,0x7e,0x63,0x2a, +0x8d,0xa, 0x16,0xa, 0x27,0x2d,0x21,0x7c,0x65,0x7e,0x50,0x2, 0xac,0x56,0x49,0x22, +0x5, 0x7a,0xbe,0x24,0xfe,0xc, 0x58,0x2, 0xb, 0xa0,0xb, 0x70,0x7e,0xb3,0x2a,0x8c, +0xbc,0xb7,0x38,0xd9,0xa, 0x2b,0x1e,0x24,0xa, 0x3a,0xbd,0x32,0x8, 0x2, 0xc2,0x3, +0xa2,0x3, 0x22,0x7e,0x63,0x2a,0x8e,0x7e,0xa3,0x2a,0x8f,0x7e,0x70,0x1, 0x80,0x15, +0xa, 0x17,0x7e,0xb3,0x2a,0x8d,0xa, 0x2b,0x2d,0x21,0x3e,0x24,0x12,0x94,0x6e,0x58, +0x2, 0xd3,0x22,0xb, 0x70,0xa, 0x16,0x1b,0x14,0xa, 0x27,0xbd,0x21,0x48,0xe1,0x7e, +0x70,0x2, 0x80,0xe, 0x7e,0x50,0x2, 0xac,0x57,0x12,0x94,0x6e,0x58,0x2, 0xd3,0x22, +0xb, 0x70,0xa, 0x1a,0x1b,0x15,0xa, 0x27,0xbd,0x21,0x48,0xe8,0xc3,0x22,0x49,0x22, +0x4, 0xfc,0xbe,0x24,0xfe,0xe8,0x22,0x7e,0xb3,0x36,0x71,0xb4,0x1, 0x3, 0x2, 0x94, +0xce,0x7e,0xb3,0x36,0xd7,0x4, 0x7a,0xb3,0x36,0xd7,0x7e,0xb3,0x36,0x65,0xb4,0x2, +0x18,0x7e,0xb3,0x36,0xd6,0x4, 0x7a,0xb3,0x36,0xd6,0xb4,0x1, 0x6, 0x74,0x1, 0x7a, +0xb3,0x36,0xd7,0x74,0x1, 0x7a,0xb3,0x36,0x65,0x7e,0x73,0x36,0xd6,0xbe,0x70,0x3, +0x40,0xf, 0x74,0x1, 0x7a,0xb3,0x36,0x71,0x12,0x94,0xce,0x12,0x97,0x2a,0x12,0x94, +0xd5,0x7e,0x73,0x36,0xd7,0xbe,0x70,0xa, 0x28,0x3, 0x2, 0x94,0xd5,0x22,0x74,0x2, +0x7a,0xb3,0x36,0x65,0x22,0xe4,0x7a,0xb3,0x36,0xd7,0x7a,0xb3,0x36,0xd6,0x22,0x7e, +0x73,0x36,0x65,0x7a,0x73,0x36,0xdb,0x7e,0x47,0x33,0xf5,0xbe,0x44,0x0, 0x64,0x28, +0x6, 0x74,0x1, 0x7a,0xb3,0x36,0x65,0xbe,0x44,0x0, 0xc8,0x28,0x8, 0xe4,0x7a,0xb3, +0x36,0x63,0x12,0x94,0xce,0x7e,0x57,0x36,0x6b,0xbd,0x54,0x50,0x4, 0x7a,0x47,0x36, +0x6b,0x12,0x97,0x1, 0x38,0x10,0x12,0x96,0xf9,0x38,0xb, 0x12,0x95,0x66,0x38,0x6, +0x7e,0xb3,0x16,0x91,0x70,0x34,0x12,0x94,0x77,0xbe,0x44,0x0, 0x32,0x50,0x21,0x7e, +0xb3,0x36,0x63,0x4, 0x7a,0xb3,0x36,0x63,0x7e,0x73,0x36,0x63,0xbe,0x70,0x32,0x28, +0x14,0x74,0x32,0x7a,0xb3,0x36,0x63,0x12,0x97,0x13,0x7a,0xb3,0x36,0xd8,0x80,0x5, +0xe4,0x7a,0xb3,0x36,0x63,0x7d,0x34,0x2, 0x97,0x82,0x2, 0x95,0x5d,0x12,0x94,0xd5, +0xe4,0x7a,0xb3,0x36,0x71,0x22,0x7e,0x73,0x26,0xf5,0xbe,0x70,0x0, 0x22,0xca,0x79, +0x7e,0xf0,0xff,0x12,0x97,0x53,0x7e,0xb3,0x36,0x67,0xb4,0x1, 0x8, 0x12,0x5d,0xe4, +0xe4,0x7a,0xb3,0x36,0x67,0x7e,0xb3,0x36,0x66,0x60,0x4, 0x74,0xff,0xc1,0x6f,0x7e, +0xb3,0x36,0x65,0xb4,0x2, 0x2, 0x80,0x2, 0xc1,0x63,0x12,0x97,0x1, 0x38,0x12,0x12, +0x96,0xf9,0x38,0xd, 0x12,0x95,0x66,0x38,0x8, 0x7e,0xb3,0x16,0x91,0x60,0x2, 0xc1, +0x63,0x74,0x3, 0x12,0x96,0x72,0x7c,0xeb,0x7e,0xb3,0x36,0x64,0x4, 0x7a,0xb3,0x36, +0x64,0x74,0x3, 0x12,0x96,0x72,0x7c,0xab,0xbe,0xa0,0xff,0x68,0x23,0xbe,0xe0,0xff, +0x68,0x1c,0x7e,0x30,0xc, 0xac,0x3e,0x49,0x21,0x36,0x7a,0xbe,0x24,0x1, 0xf4,0x28, +0xf, 0x12,0x97,0x9, 0x3e,0x34,0xbd,0x23,0x28,0x6, 0x7c,0xea,0x80,0x2, 0x7c,0xea, +0xbe,0xe0,0xff,0x78,0x11,0xe4,0x7a,0xb3,0x36,0x64,0x7a,0xb3,0x36,0x65,0x7a,0xb3, +0x36,0x71,0x74,0xff,0x80,0x69,0x7e,0x73,0x36,0x64,0xbe,0x70,0x4, 0x28,0x54,0x74, +0xc, 0xac,0xbe,0x49,0x35,0x36,0x7a,0xbe,0x34,0x1, 0xf4,0x40,0x6, 0x7e,0xb3,0x16, +0x91,0x70,0x37,0x7e,0x37,0x36,0x60,0xbe,0x34,0x1, 0x2c,0x38,0xa, 0x7e,0x37,0x36, +0x6b,0xbe,0x34,0x1, 0x2c,0x28,0x23,0x74,0x5, 0xac,0xbe,0x9, 0x75,0x26,0x33,0xbe, +0x73,0x2b,0x2e,0x68,0x15,0x7c,0xfe,0xbe,0xf0,0x4, 0x50,0x8, 0x12,0x7c,0x2f,0xbe, +0xb0,0x4, 0x40,0x6, 0x74,0x1, 0x7a,0xb3,0x36,0x67,0xe4,0x7a,0xb3,0x36,0x71,0x7a, +0xb3,0x36,0x65,0xbe,0xf0,0xff,0x68,0x5, 0xe4,0x7a,0xb3,0x36,0x64,0x7c,0xbf,0xda, +0x79,0x22,0x7c,0x3b,0x7e,0x44,0xff,0xff,0x6c,0x22,0x80,0x2a,0x12,0x96,0xeb,0x68, +0x23,0x7e,0x70,0xc, 0xac,0x72,0x12,0x97,0x1d,0x7d,0x23,0x7e,0x70,0xc, 0xac,0x72, +0x59,0x23,0x36,0x7e,0x49,0x3, 0x36,0x7e,0x49,0x23,0x36,0x7a,0xbd,0x20,0x50,0x4, +0x59,0x3, 0x36,0x7a,0xb, 0x20,0xbc,0x32,0x50,0xd2,0x6c,0xaa,0x6c,0x22,0x80,0x18, +0x12,0x96,0xeb,0x68,0x11,0x7e,0x70,0xc, 0xac,0x72,0x49,0x3, 0x36,0x7a,0xbd,0x4, +0x50,0x4, 0x7d,0x40,0x7c,0xa2,0xb, 0x20,0xbc,0x32,0x50,0xe4,0x7e,0x37,0x36,0x60, +0xbe,0x37,0x36,0xd9,0x50,0x8, 0x7e,0x37,0x36,0xd9,0x7a,0x37,0x36,0x60,0x12,0x97, +0x9, 0x4d,0x33,0x78,0x3, 0x7e,0xa0,0xff,0x7c,0xba,0x22,0x7e,0x10,0x5, 0xac,0x12, +0x9, 0xb0,0x26,0x33,0xbe,0xb3,0x2b,0x2e,0x22,0x7e,0x73,0x26,0xf4,0xbe,0x70,0x0, +0x22,0x7e,0x73,0x28,0x92,0xbe,0x70,0x0, 0x22,0x7e,0x70,0xc, 0xac,0x7a,0x49,0x33, +0x36,0x7a,0x22,0xe4,0x7a,0xb3,0x36,0x65,0x7a,0xb3,0x36,0x6d,0x22,0x49,0x23,0x36, +0x80,0x49,0x33,0x36,0x7c,0x9d,0x32,0x2, 0x17,0x80,0xe4,0x7a,0xb3,0x36,0x63,0x6d, +0x33,0x6c,0xaa,0x7e,0x50,0xc, 0xac,0x5a,0x59,0x32,0x36,0x7a,0xb, 0xa0,0xbe,0xa0, +0x4, 0x40,0xf0,0xe4,0x7a,0xb3,0x36,0x64,0x6d,0x33,0x7a,0x37,0x36,0x6b,0x7a,0x37, +0x36,0x60,0x22,0x7e,0xb3,0x36,0x66,0xb4,0x1, 0x27,0x7e,0xb3,0x36,0xdc,0x4, 0x7a, +0xb3,0x36,0xdc,0x7e,0x73,0x36,0xdc,0xbe,0x70,0x3, 0x40,0x15,0x12,0x4f,0x84,0x7e, +0x73,0x36,0xdc,0xbe,0x70,0x6, 0x40,0x9, 0xe4,0x7a,0xb3,0x36,0xdc,0x7a,0xb3,0x36, +0x66,0x22,0xbe,0x34,0x1, 0xf4,0x28,0xd, 0x7e,0x53,0x36,0xd8,0xbe,0x50,0x8, 0x50, +0x3f,0x74,0x8, 0x80,0x37,0xbe,0x34,0x1, 0x90,0x28,0xd, 0x7e,0x53,0x36,0xd8,0xbe, +0x50,0x6, 0x50,0x2c,0x74,0x6, 0x80,0x24,0xbe,0x34,0x1, 0x2c,0x28,0xd, 0x7e,0x53, +0x36,0xd8,0xbe,0x50,0x4, 0x50,0x19,0x74,0x4, 0x80,0x11,0xbe,0x34,0x0, 0xc8,0x28, +0xf, 0x7e,0x73,0x36,0xd8,0xbe,0x70,0x2, 0x50,0x6, 0x74,0x2, 0x7a,0xb3,0x36,0xd8, +0x7e,0xb3,0x36,0xd8,0xbe,0xb0,0x0, 0x28,0x19,0x14,0x7a,0xb3,0x36,0xd8,0x74,0x1, +0x7a,0xb3,0x16,0x92,0x7e,0x73,0x36,0xd8,0xbe,0x70,0x4, 0x28,0x5, 0xe4,0x7a,0xb3, +0x16,0x91,0x22,0x7e,0xb3,0x2b,0x2e,0xca,0x3b,0x7c,0xeb,0x6c,0xff,0x7e,0xc4,0x1, +0xf4,0x7e,0x73,0x37,0xdb,0xa, 0xb7,0x7e,0xb3,0x2b,0x2f,0xf5,0x34,0x75,0x35,0x4, +0xe4,0x7a,0xb3,0x36,0x6e,0xa, 0x3e,0xad,0x3b,0x7d,0xa3,0x2d,0xac,0x6c,0xdd,0x7e, +0xa3,0x36,0x6e,0xbe,0xa1,0x35,0x40,0x2, 0x80,0x19,0xbe,0xa0,0x0, 0x28,0x19,0x74, +0x5, 0xa4,0x9, 0x75,0x26,0x33,0xbc,0x7e,0x78,0xe, 0xe5,0x35,0x14,0xbe,0xb3,0x36, +0x6e,0x78,0x5, 0xe4,0x7a,0xb3,0x36,0x6e,0x7e,0xc3,0x36,0x6e,0x80,0x3a,0x7e,0xb3, +0x36,0x6e,0x4, 0x7a,0xb3,0x36,0x6e,0x74,0x5, 0xac,0xbc,0x9, 0x75,0x26,0x33,0xbc, +0x7e,0x68,0x23,0xa, 0xdd,0x19,0xcd,0x36,0x72,0xa, 0x97,0xad,0x9b,0x2d,0x9c,0x7c, +0xad,0xb, 0xd0,0x7c,0xba,0x7d,0x39,0x7d,0x2a,0x7e,0x31,0x34,0x12,0x10,0x0, 0xb, +0xf0,0xbe,0xf0,0x3, 0x50,0x8, 0xb, 0xc0,0xe5,0x35,0xbc,0xbc,0x38,0xc0,0x7a,0xf3, +0x36,0x6f,0xda,0x3b,0x22,0x7e,0x8, 0x36,0x76,0x7e,0x34,0x0, 0x60,0xe4,0x12,0x17, +0x4e,0x6c,0xaa,0x7e,0x44,0xff,0xff,0x7e,0x70,0xc, 0xac,0x7a,0x59,0x43,0x36,0x78, +0x59,0x43,0x36,0x80,0xb, 0xa0,0xbe,0xa0,0x8, 0x40,0xe8,0x7e,0x8, 0x36,0x64,0x7e, +0x34,0x0, 0xd, 0xe4,0x2, 0x17,0x4e,0x7e,0xa3,0x2b,0x81,0xbc,0xab,0x68,0x6, 0x7a, +0xb3,0x2b,0x81,0xd2,0xc, 0x30,0xc, 0x9, 0xc2,0xc, 0x12,0x98,0xe2,0xe4,0x2, 0xa, +0x66,0x22,0x7e,0x8, 0x2a,0x8c,0x12,0x3, 0x8b,0x7e,0x8, 0x2a,0x8c,0x74,0x3, 0x2, +0x11,0x7a,0xca,0xd8,0xca,0x79,0x7f,0x70,0x7e,0x93,0x28,0x84,0x6c,0x88,0x7e,0xf0, +0x1, 0x80,0x1a,0xa, 0x58,0x7f,0x17,0x2d,0x35,0x7e,0x1b,0x60,0xa, 0x5f,0x7f,0x7, +0x2d,0x15,0x7e,0xb, 0x70,0xbc,0x76,0x40,0x2, 0x7c,0x8f,0xb, 0xf0,0xbc,0x9f,0x38, +0xe2,0xa, 0x38,0x2d,0x3f,0x7d,0x2e,0x7e,0x1b,0x80,0x6c,0xaa,0x7e,0xf0,0x1, 0x21, +0xb1,0x75,0x45,0x0, 0x6d,0xdd,0x6d,0xbb,0x7d,0xcb,0x75,0x44,0x0, 0x80,0x36,0x7e, +0x71,0x44,0x74,0x2, 0xac,0x7b,0x9, 0xe3,0x26,0xfa,0x9, 0xd3,0x26,0xfb,0xe5,0x44, +0xa, 0xab,0x7f,0x17,0x2d,0x3a,0x7e,0x1b,0xb0,0xbc,0xbf,0x78,0x16,0x5, 0x45,0xa, +0xae,0x2d,0xca,0xa, 0xad,0x2d,0xba,0x12,0x99,0xbe,0xbd,0x3d,0x8, 0x5, 0x12,0x99, +0xbe,0x7d,0xd3,0x5, 0x44,0xbe,0x91,0x44,0x38,0xc5,0xe5,0x45,0xbe,0xb0,0x0, 0x28, +0x2e,0xe5,0x45,0xa, 0xab,0x7d,0x3c,0x8d,0x3a,0x7d,0xc3,0x8d,0xba,0x7e,0x50,0x2, +0xac,0x5a,0x19,0x72,0x38,0x4f,0x7d,0x3b,0x7e,0x50,0x2, 0xac,0x5a,0x19,0x72,0x38, +0x50,0x7d,0x3c,0x7c,0xb7,0x7d,0x3b,0x12,0x2e,0xc8,0x1b,0x1a,0xd0,0xb, 0xa0,0xb, +0xf0,0xbc,0x8f,0x40,0x2, 0x21,0x31,0x7c,0xba,0xda,0x79,0xda,0xd8,0x22,0x7c,0xbe, +0x7c,0x7d,0x2, 0x1e,0x80,0x7c,0x9b,0x7f,0x71,0x7f,0x60,0x7e,0x34,0x19,0xb, 0x7e, +0x24,0x0, 0xff,0x7e,0x14,0x1f,0x52,0x74,0x2a,0x12,0x16,0x1d,0x7e,0x58,0x1f,0x52, +0x7c,0xb9,0x7e,0x71,0x44,0x12,0x1e,0x80,0x7d,0x43,0xe5,0x45,0x7e,0x71,0x46,0x12, +0x1e,0x80,0x2d,0x34,0xe, 0x34,0x7f,0x5, 0x7e,0x50,0x7, 0xb, 0xa, 0x50,0xbd,0x53, +0x58,0xf, 0x69,0x30,0x0, 0x2, 0x1b,0x6a,0x30,0x69,0x30,0x0, 0x4, 0x1b,0x7a,0x30, +0x22,0x2e,0x14,0x0, 0x6, 0x1b,0x50,0x78,0xe2,0x22,0x6d,0x33,0x7d,0x23,0x7d,0x3, +0x6c,0x33,0x80,0x45,0x6c,0x22,0x80,0x37,0x7e,0xb3,0x2a,0x8d,0xac,0xb3,0xa, 0x42, +0x2d,0x54,0x7d,0x45,0x3e,0x44,0x7e,0x7f,0x13,0x8a,0x2d,0xf4,0xb, 0x7a,0x40,0xbe, +0x44,0x0, 0x32,0x8, 0x8, 0xbe,0x44,0x2, 0x58,0x58,0x2, 0xb, 0x24,0xbe,0x44,0xff, +0xce,0x58,0x8, 0xbe,0x44,0xfd,0xa8,0x8, 0x2, 0xb, 0x4, 0xb, 0x34,0xb, 0x21,0x7e, +0x93,0x2a,0x8d,0xbc,0x92,0x38,0xc1,0xb, 0x31,0x7e,0xb3,0x2a,0x8c,0xbc,0xb3,0x38, +0xb3,0x7e,0x54,0x0, 0x6, 0xad,0x53,0x7d,0x15,0x1e,0x14,0x1e,0x14,0x1e,0x14,0x12, +0x4f,0xed,0xbd,0x12,0x50,0x22,0xbd,0x30,0x28,0x1e,0xe4,0x7a,0xb3,0x39,0x3, 0x7e, +0xb3,0x39,0x4, 0xbe,0xb0,0x5, 0x50,0x7, 0x4, 0x7a,0xb3,0x39,0x4, 0x80,0x3c,0xe4, +0x7a,0xb3,0x39,0x4, 0x74,0x1, 0x80,0x2f,0xbd,0x10,0x50,0x22,0xbd,0x32,0x28,0x1e, +0xe4,0x7a,0xb3,0x39,0x4, 0x7e,0xb3,0x39,0x3, 0xbe,0xb0,0x5, 0x50,0x7, 0x4, 0x7a, +0xb3,0x39,0x3, 0x80,0x16,0xe4,0x7a,0xb3,0x39,0x3, 0x74,0x2, 0x80,0x9, 0xe4,0x7a, +0xb3,0x39,0x3, 0x7a,0xb3,0x39,0x4, 0x7a,0xb3,0x39,0x5, 0x7e,0xb3,0x39,0x5, 0x22, +0xe4,0x7a,0xb3,0x28,0xa8,0x7a,0xb3,0x39,0x6, 0x22,0xca,0xd8,0xca,0x79,0xc2,0x3, +0x6c,0xdd,0x7e,0x57,0x28,0x99,0x7d,0xf5,0x7e,0xe7,0x28,0x97,0x7e,0x37,0x38,0x9, +0x4d,0x33,0x68,0x4, 0x7d,0xf5,0xe, 0xf4,0x6c,0xff,0x7e,0xa3,0x2a,0x8d,0x7c,0x8a, +0x7e,0xb3,0x28,0xa5,0x14,0x68,0x21,0x14,0x68,0x14,0x24,0xc2,0x68,0x8, 0x24,0xfb, +0x68,0x16,0x24,0x45,0x78,0x10,0x7c,0xfa,0x7e,0x83,0x2a,0x8c,0x80,0xa, 0x7e,0x73, +0x2a,0x8c,0x2c,0x87,0x80,0x2, 0x6c,0x88,0x6c,0x99,0x80,0xf, 0x7c,0xb9,0x12,0x71, +0x7e,0xbe,0x34,0x2, 0x58,0x8, 0x2, 0xb, 0xd0,0xb, 0x90,0x7e,0x33,0x28,0x84,0xbc, +0x39,0x38,0xe9,0xbe,0xd0,0x3, 0x40,0x2, 0x81,0xaf,0x7e,0xa3,0x28,0x85,0xbe,0xa0, +0x0, 0x38,0xb, 0xbe,0x30,0x0, 0x28,0x37,0x7e,0xb3,0x26,0x83,0x70,0x31,0x6c,0x99, +0x80,0x29,0xa, 0x29,0xa, 0x3f,0x2d,0x32,0x3e,0x34,0x49,0x23,0x5, 0x7a,0xbd,0x2f, +0x8, 0x17,0x49,0x3, 0x4, 0xfc,0xbd,0xe, 0x58,0xf, 0x6d,0x33,0x9d,0x3e,0x12,0x8d, +0xd, 0xbd,0x3, 0x8, 0x4, 0xd2,0x3, 0x80,0x6, 0xb, 0x90,0xbc,0x89,0x38,0xd3,0x6d, +0xee,0x9e,0xe7,0x2a,0x6e,0xbe,0xe7,0x7, 0xf8,0x8, 0x2, 0xc2,0x3, 0x30,0x3, 0x20, +0x7e,0xb3,0x39,0x6, 0x4, 0x7a,0xb3,0x39,0x6, 0x7e,0x23,0x39,0x6, 0xbe,0x20,0xa, +0x28,0x1d,0x74,0xa, 0x7a,0xb3,0x39,0x6, 0x74,0x1, 0x7a,0xb3,0x28,0xa8,0x80,0xf, +0x7e,0x23,0x39,0x6, 0xbe,0x20,0x0, 0x28,0x6, 0x1e,0x20,0x7a,0x23,0x39,0x6, 0x6c, +0xee,0xbe,0x30,0x0, 0x38,0x5, 0xbe,0xa0,0x0, 0x28,0x6d,0x7e,0xb3,0x28,0xa7,0xb4, +0x1, 0x9, 0x7e,0xb3,0x28,0xaa,0xbe,0xb0,0x1, 0x68,0x5d,0x7e,0xb3,0x28,0xa8,0xb4, +0x1, 0x56,0x6c,0x99,0x80,0x1d,0x7e,0x70,0x2, 0xac,0x79,0x9, 0xa3,0x26,0xfa,0x9, +0xd3,0x26,0xfb,0x7c,0xba,0x7c,0x7d,0x12,0x1f,0xcc,0x8, 0x5, 0x7e,0xe0,0x1, 0x80, +0xa, 0xb, 0x90,0x7e,0xb3,0x28,0x84,0xbc,0xb9,0x38,0xdb,0x6c,0x99,0x80,0x21,0x7e, +0x70,0x2, 0xac,0x79,0x9, 0xa3,0x27,0x36,0x9, 0xd3,0x27,0x37,0x7c,0xba,0x7c,0x7d, +0x12,0x1e,0x80,0xbe,0x34,0xff,0x6a,0x58,0x5, 0x7e,0xe0,0x1, 0x80,0xa, 0xb, 0x90, +0x7e,0xb3,0x28,0x85,0xbc,0xb9,0x38,0xd7,0x6c,0x99,0x80,0x17,0xa, 0xe9,0xa, 0x5f, +0x2d,0x5e,0x3e,0x54,0x49,0x55,0x5, 0x7a,0xbd,0x5f,0x8, 0x5, 0x7e,0xe0,0x1, 0x80, +0x6, 0xb, 0x90,0xbc,0x89,0x38,0xe5,0x4c,0xee,0x78,0x25,0x7e,0xb3,0x39,0x7, 0x4, +0x7a,0xb3,0x39,0x7, 0x7e,0x73,0x39,0x7, 0xbe,0x70,0x5, 0x28,0x22,0x74,0x5, 0x7a, +0xb3,0x39,0x7, 0x7e,0xb3,0x28,0xa8,0x60,0x2, 0xd2,0x15,0x12,0x9a,0xe0,0x80,0xf, +0x7e,0x73,0x39,0x7, 0xbe,0x70,0x0, 0x28,0x6, 0x1e,0x70,0x7a,0x73,0x39,0x7, 0xda, +0x79,0xda,0xd8,0x22,0x7c,0xab,0xbe,0xa0,0x0, 0x40,0x11,0x7e,0xb3,0x2a,0x8d,0xbc, +0xba,0x28,0x9, 0x74,0x2, 0xa4,0x49,0x25,0x34,0x0, 0x80,0x51,0x7e,0x13,0x2a,0x8d, +0xbc,0x1a,0x38,0x1c,0x7e,0x3, 0x2a,0x8c,0xa, 0x10,0xa, 0x21,0x2d,0x12,0xa, 0x3a, +0xbd,0x31,0x58,0xc, 0x9d,0x32,0x3e,0x34,0x3e,0x34,0x49,0x23,0x3, 0x72,0x80,0x2d, +0x7e,0x3, 0x2a,0x8c,0xa, 0x20,0xa, 0x11,0x7d,0x41,0x2d,0x42,0xa, 0x3a,0xbd,0x34, +0x48,0x19,0x7e,0x10,0x2, 0xac,0x1, 0x2d,0x1, 0xbd,0x30,0x58,0xe, 0x9d,0x31,0x9d, +0x32,0x3e,0x34,0x3e,0x34,0x49,0x23,0x3, 0x74,0x80,0x2, 0xe4,0x22,0x7e,0x34,0x0, +0x64,0xad,0x23,0x74,0xc, 0x1e,0x34,0x1e,0x24,0x50,0x3, 0x4e,0x60,0x80,0x14,0x78, +0xf4,0x7c,0xb7,0x22,0xca,0xf8,0x80,0x38,0x7c,0xbf,0x12,0x9c,0xb4,0xa, 0x1b,0x7e, +0x63,0x2a,0x8d,0x7e,0x70,0x2, 0xac,0x67,0x7e,0x10,0x2, 0xac,0x1f,0x2d,0x3, 0x7e, +0x1f,0x13,0x8a,0x2d,0x30,0x12,0x9d,0x73,0x9d,0x35,0x1b,0x1a,0x10,0xb, 0xf0,0x12, +0x9d,0x73,0x7e,0x73,0x2a,0x8d,0xa, 0x27,0x2d,0x25,0xa, 0x3f,0xbd,0x32,0x48,0xc8, +0xda,0xf8,0x22,0x7e,0xa3,0x2a,0x8c,0x74,0x2, 0xa4,0x22,0x6c,0xaa,0x80,0x1c,0x7e, +0x50,0x2, 0xac,0x5a,0x49,0x12,0x13,0xc6,0x49,0x32,0x13,0x8e,0xbd,0x31,0x28,0x9, +0x2e,0x24,0x13,0x8e,0x9d,0x31,0x1b,0x28,0x30,0xb, 0xa0,0x7e,0xb3,0x2a,0x8d,0xbc, +0xba,0x38,0xdc,0x22,0xca,0x78,0xa9,0x31,0xe5,0x6, 0xa9,0xd5,0xea,0xa9,0xc5,0xea, +0xa9,0x30,0xe5,0x19,0xa9,0xd0,0x9e,0xa9,0xd4,0x9e,0x5, 0x60,0x7e,0x73,0x39,0x1, +0xbe,0x71,0x60,0x38,0x2, 0xd2,0x17,0xa9,0xd0,0x9e,0xa9,0xd7,0x9e,0xa9,0x34,0xe5, +0x5, 0xa9,0xc4,0xcd,0xc2,0x95,0xa9,0x32,0xe5,0x3, 0xa9,0xc2,0xcd,0xa9,0x33,0xe5, +0x3, 0xa9,0xc3,0xcd,0xa9,0x37,0xe5,0x3, 0xa9,0xc7,0xcd,0xa9,0x36,0xe5,0x3, 0xa9, +0xc6,0xcd,0xda,0x78,0x32,0xc2,0x9a,0xa9,0xd4,0xa6,0xc2,0x88,0xd2,0xa8,0x22,0x7e, +0x14,0xd7,0xe8,0x7e,0x4, 0x0, 0xff,0x7e,0x34,0x47,0x52,0x7e,0x24,0x55,0x50,0x79, +0x30,0x0, 0x2, 0x1b,0xa, 0x20,0x7e,0x34,0x45,0x20,0x7e,0x24,0x41,0x44,0x79,0x30, +0x0, 0x6, 0x79,0x20,0x0, 0x4, 0x7e,0x34,0x99,0x33,0x7e,0x24,0x66,0xcc,0x79,0x30, +0x0, 0xa, 0x79,0x20,0x0, 0x8, 0x7e,0x34,0x41,0x47,0x7e,0x24,0x46,0x4c,0x79,0x30, +0x0, 0xe, 0x79,0x20,0x0, 0xc, 0x22,0xa9,0xd5,0xcb,0x74,0x10,0x12,0x3b,0xac,0x7c, +0x7b,0x12,0x3b,0xa5,0x30,0xe7,0x3, 0x7e,0x70,0x2, 0xd2,0xcd,0x7e,0x24,0x0, 0xef, +0x7e,0xf, 0x33,0xdf,0x79,0x20,0x0, 0x84,0x7e,0x24,0x20,0x5f,0x7e,0xf, 0x33,0xdf, +0x79,0x20,0x0, 0x82,0x7e,0x24,0x41,0x0, 0x7e,0xf, 0x33,0xdf,0x79,0x20,0x0, 0x90, +0x7c,0x67,0x6c,0x77,0x2e,0x34,0x0, 0xc1,0x7e,0xf, 0x33,0xdf,0x79,0x30,0x0, 0x86, +0x7e,0x34,0x29,0x90,0x7e,0xf, 0x33,0xdf,0x79,0x30,0x0, 0x8a,0x7e,0x34,0x6a,0xd1, +0x7e,0xf, 0x33,0xdf,0x79,0x30,0x0, 0x8c,0x7e,0x34,0x3, 0x61,0x7e,0xf, 0x33,0xdf, +0x79,0x30,0x0, 0x8e,0x22,0xa9,0xc6,0xeb,0xa9,0xd6,0xac,0xa9,0xd6,0xec,0xd2,0x86, +0xa9,0xc2,0xeb,0xa9,0xd2,0xac,0xa9,0xd2,0xec,0xd2,0x82,0x22,0x75,0x9a,0x2f,0xa9, +0xd1,0x99,0xd2,0x9c,0xa9,0xd6,0xdf,0x22,0xc2,0x8e,0x43,0x89,0x20,0x75,0x8d,0x1, +0x75,0x8b,0x0, 0xd2,0x8e,0xd2,0xab,0x22,0x75,0xb7,0x0, 0x75,0xb8,0x0, 0x75,0xf7, +0x0, 0x75,0xf8,0x0, 0xa9,0xd0,0xb7,0xd2,0xb8,0xa9,0xd5,0xb7,0xd2,0xbd,0xa9,0xd0, +0xf7,0xd2,0xf8,0xa9,0xc1,0xb7,0xc2,0xb9,0xa9,0xc3,0xb7,0xc2,0xbb,0xa9,0xc6,0xb7, +0xc2,0xbe,0x22,0x75,0xe7,0x6b,0x2, 0x9f,0x19,0xe4,0x7e,0x34,0xd7,0xfc,0x7e,0x24, +0x0, 0xff,0x7a,0x1b,0xb0,0x7e,0x34,0xd7,0xfd,0x7a,0x1b,0xb0,0x75,0xe9,0xff,0x22, +0x7e,0x37,0x38,0xff,0xb, 0x34,0x7a,0x37,0x38,0xff,0xbe,0x34,0xff,0x0, 0x40,0x8, +0x7e,0x34,0xff,0x0, 0x7a,0x37,0x38,0xff,0x22,0x6d,0x22,0x80,0x13,0x75,0xb5,0x0, +0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0xe5,0xb5,0x7a,0xb, 0xb0,0xb, 0x14,0xb, 0x24, +0xbd,0x32,0x38,0xe9,0x22,0x7c,0xa6,0x7c,0x37,0x7c,0x2b,0xe4,0x6c,0x11,0x80,0x46, +0xbc,0xa1,0x68,0x40,0x1a,0x41,0x3e,0x44,0x9, 0x4, 0x26,0xfb,0xa, 0x20,0xa, 0x33, +0x9d,0x32,0x12,0x17,0x80,0x7c,0x7, 0x1a,0x41,0x3e,0x44,0x9, 0x74,0x26,0xfa,0xa, +0x27,0xa, 0x32,0x9d,0x32,0x12,0x17,0x80,0x7c,0x97,0xbe,0x90,0x1, 0x18,0x8, 0xbe, +0x0, 0x1, 0x18,0x3, 0x74,0x1, 0x22,0xbe,0x90,0x2, 0x18,0x8, 0xbe,0x0, 0x2, 0x18, +0x3, 0x74,0x2, 0x22,0xb, 0x10,0x7e,0x83,0x28,0x84,0xbc,0x81,0x18,0xb2,0x22,0x7c, +0xab,0x9f,0x11,0x30,0x3, 0x22,0x6c,0x99,0x80,0x1a,0xa, 0xf9,0x2d,0xf1,0x7d,0xe0, +0x7e,0x7b,0xb0,0x7e,0x78,0x0, 0x1, 0x60,0x5, 0x2f,0x77,0x14,0x78,0xfb,0x4d,0x3f, +0x4d,0x2e,0xb, 0x90,0xbc,0xa9,0x38,0xe2,0x22,0x7c,0x57,0x7c,0xab,0x6c,0x77,0x80, +0x4b,0xa, 0x47,0x7e,0x7d,0x24,0x2d,0xf4,0x7e,0x7b,0x60,0xa, 0x46,0x2e,0x44,0x16, +0xe3,0x12,0xa0,0xa8,0x7c,0x6b,0xbe,0x60,0xd, 0x38,0x12,0x7e,0xd4,0x0, 0x1, 0x7c, +0xb6,0x60,0x5, 0x3e,0xd4,0x14,0x78,0xfb,0x7e,0x7d,0x28,0x80,0x15,0x9e,0x60,0xe, +0x7e,0xd4,0x0, 0x1, 0x7c,0xb6,0x60,0x5, 0x3e,0xd4,0x14,0x78,0xfb,0x7e,0x7d,0x28, +0xb, 0xf5,0xb, 0x7a,0x40,0x4d,0x4d,0x1b,0x7a,0x40,0xb, 0x70,0xbc,0x57,0x38,0xb1, +0x6c,0x77,0x80,0x58,0xa, 0x27,0x7f,0x70,0x2d,0xf2,0x7e,0x7b,0x60,0xbe,0x60,0xd, +0x38,0x11,0x12,0xa0,0xa1,0x60,0x5, 0x3e,0x44,0x14,0x78,0xfb,0x7e,0x7d,0x28,0xb, +0xf6,0x80,0x2f,0xbe,0x60,0x1b,0x38,0x16,0x9e,0x60,0xe, 0x12,0xa0,0xa1,0x60,0x5, +0x3e,0x44,0x14,0x78,0xfb,0x7e,0x7d,0x28,0x2e,0xf4,0x0, 0x6, 0x80,0x14,0x9e,0x60, +0x1c,0x12,0xa0,0xa1,0x60,0x5, 0x3e,0x44,0x14,0x78,0xfb,0x7e,0x7d,0x28,0x2e,0xf4, +0x0, 0x8, 0xb, 0x7a,0x20,0x4d,0x24,0x1b,0x7a,0x20,0xb, 0x70,0xbc,0xa7,0x38,0xa4, +0x22,0x7e,0x44,0x0, 0x1, 0x7c,0xb6,0x22,0x7a,0x91,0x82,0x7a,0x81,0x83,0xe4,0x93, +0x22,0xca,0xf8,0x90,0x60,0x51,0xe4,0x93,0x7c,0xfb,0x7e,0x8, 0x1f,0x34,0x12,0xa1, +0x3d,0x7e,0x8, 0x1f,0x3c,0x12,0xa1,0x45,0xd2,0x3, 0x7e,0x8, 0x2a,0xfb,0x7c,0xbf, +0x12,0x9f,0xbf,0x7e,0x8, 0x1f,0x34,0x7a,0xf, 0x1f,0x58,0x7f,0x1, 0x7a,0x17,0x1f, +0x5c,0x7d,0x32,0x7a,0x37,0x1f,0x5e,0x7e,0x18,0x1f,0x3c,0x7a,0x1f,0x1f,0x64,0x6c, +0x77,0x80,0xe, 0x12,0xa1,0x8d,0x50,0x7, 0x12,0xa1,0x84,0x19,0x51,0x1f,0x3c,0xb, +0x70,0xbc,0xf7,0x38,0xee,0x12,0xa1,0x2a,0xe4,0x12,0xa1,0x32,0xe4,0x12,0xc, 0x9b, +0x6d,0x33,0x7a,0x37,0x1f,0x5c,0x7a,0x37,0x1f,0x5e,0x12,0xa1,0x2a,0x74,0x1, 0x12, +0xa1,0x32,0x74,0x1, 0x12,0xc, 0x9b,0xda,0xf8,0x22,0xa9,0xc6,0xea,0x7e,0x8, 0x1f, +0x58,0x22,0x12,0xc, 0x9b,0xa9,0xd6,0xea,0x7e,0x8, 0x1f,0x58,0x22,0x7e,0x34,0x0, +0x8, 0xe4,0x2, 0x17,0x4e,0x7e,0x34,0x0, 0x1c,0x74,0x3f,0x2, 0x17,0x4e,0x7e,0x8, +0x1f,0x34,0x12,0xa1,0x45,0x6c,0x77,0x80,0xe, 0x12,0xa1,0x8d,0x50,0x7, 0x12,0xa1, +0x84,0x19,0x51,0x1f,0x34,0xb, 0x70,0x7e,0x53,0x2a,0x8d,0xbc,0x57,0x38,0xea,0xa9, +0xc6,0xea,0x7e,0x8, 0x1f,0x34,0xe4,0x12,0x11,0x38,0xa9,0xd6,0xea,0x7e,0x8, 0x1f, +0x34,0x2, 0x11,0x38,0xa, 0x27,0x9, 0x52,0x2b,0x63,0xa, 0x16,0x22,0xa, 0x27,0x9, +0x62,0x2a,0xfb,0xbe,0x60,0x1c,0x22,0xca,0xf8,0x6d,0xee,0x7d,0xfe,0x7e,0x83,0x2a, +0x8d,0xa, 0xd8,0x90,0x60,0x94,0xe4,0x93,0xb4,0xff,0x2f,0x7e,0x8, 0x13,0x8e,0x6c, +0xaa,0x80,0x18,0x7e,0x70,0x2, 0xac,0x7a,0x49,0x23,0x13,0xfe,0x7f,0x50,0x2d,0xb3, +0xb, 0x5a,0xc0,0x9d,0xc2,0x59,0xc3,0x13,0xc6,0xb, 0xa0,0xbc,0x8a,0x38,0xe4,0x90, +0x60,0x92,0xe4,0x93,0x7c,0x9b,0x6d,0xdd,0x80,0x11,0x7e,0x8, 0x13,0xfe,0x90,0x60, +0x92,0xe4,0x93,0xa, 0xcb,0x1b,0xc4,0x7d,0x3c,0x7c,0x97,0x6c,0xff,0x80,0x38,0x6c, +0xaa,0x80,0x28,0xa, 0x3a,0x7d,0x23,0x2d,0x2e,0x3e,0x24,0x49,0xc2,0x13,0xfe,0x2d, +0x3d,0x3e,0x34,0x2d,0x31,0x7d,0x20,0xb, 0x1a,0xb0,0x7d,0x3c,0x9d,0x3b,0x12,0x17, +0x80,0x7d,0xa3,0xbd,0xfa,0x58,0x2, 0x7d,0xfa,0xb, 0xa0,0xbc,0x8a,0x38,0xd4,0xa, +0xc8,0x2d,0xec,0x2d,0xdc,0xb, 0xf0,0xbc,0x9f,0x38,0xc4,0x7d,0x3f,0xda,0xf8,0x22, +0xca,0xf8,0x6d,0x44,0x7e,0xf3,0x2a,0x8d,0x90,0x60,0x93,0xe4,0x93,0xa, 0xfb,0x7e, +0xb3,0x2a,0x8c,0xa, 0xeb,0x2d,0xef,0xa, 0xff,0xad,0xfe,0xa, 0xef,0x2d,0xef,0x90, +0x60,0x94,0xe4,0x93,0xb4,0xff,0x31,0x7e,0x8, 0x13,0x8e,0x6c,0xaa,0x80,0x23,0xa, +0xda,0x2d,0xdf,0x3e,0xd4,0x7e,0x1f,0x33,0xf8,0x2d,0x3d,0xb, 0x1a,0xd0,0x7e,0x50, +0x2, 0xac,0x5a,0x7f,0x50,0x2d,0xb2,0xb, 0x5a,0x30,0x9d,0x3d,0x59,0x32,0x13,0xc6, +0xb, 0xa0,0xbc,0xfa,0x38,0xd9,0x80,0xa, 0x7d,0x5e,0x3e,0x54,0x7e,0xf, 0x33,0xf8, +0x2d,0x15,0x6c,0xaa,0x80,0x2c,0xa, 0xea,0x2d,0xef,0x3e,0xe4,0x7e,0x1f,0x33,0xf8, +0x2d,0x3e,0xb, 0x1a,0xe0,0x7e,0x70,0x2, 0xac,0x7a,0x2d,0x31,0x7d,0x20,0xb, 0x1a, +0xd0,0x7d,0x3e,0x9d,0x3d,0x12,0x17,0x80,0x7d,0xc3,0xbd,0x4c,0x58,0x2, 0x7d,0x4c, +0xb, 0xa0,0xbc,0xfa,0x38,0xd0,0x7d,0x34,0xda,0xf8,0x22,0x7e,0x27,0x28,0xa3,0x6d, +0x11,0x9d,0x12,0x6c,0xaa,0x80,0x64,0x30,0x0, 0x2e,0x7e,0x90,0x2, 0xac,0x9a,0x49, +0x34,0x5, 0xf8,0x49,0x4, 0x4, 0x0, 0xbd,0x2, 0x8, 0x11,0x7e,0xb3,0x25,0xf6,0xb4, +0x1, 0x16,0x7d,0xf2,0x2d,0xf3,0x59,0xf4,0x5, 0xf8,0x80,0xc, 0xbd,0x1, 0x58,0x8, +0x7d,0x3, 0x9d,0x2, 0x59,0x4, 0x5, 0xf8,0x30,0x2, 0x2e,0x7e,0x90,0x2, 0xac,0x9a, +0x49,0x34,0x6, 0x76,0x49,0x4, 0x4, 0x7e,0xbd,0x2, 0x8, 0x11,0x7e,0xb3,0x25,0xf6, +0xb4,0x1, 0x16,0x7d,0xf2,0x2d,0xf3,0x59,0xf4,0x6, 0x76,0x80,0xc, 0xbd,0x1, 0x58, +0x8, 0x7d,0x3, 0x9d,0x2, 0x59,0x4, 0x6, 0x76,0xb, 0xa0,0x7e,0xb3,0x2a,0x93,0xa, +0xb, 0x7e,0xb3,0x2a,0x92,0xa, 0x4b,0x2d,0x40,0xa, 0xa, 0xbd,0x4, 0x48,0x88,0x22, +0xe4,0x7a,0xb3,0x38,0xd9,0x22,0x7e,0xb3,0x37,0x2e,0x70,0x6, 0x12,0xa3,0x8f,0x2, +0xa3,0x50,0x12,0xa3,0x95,0x12,0xa8,0x78,0x50,0xa, 0x12,0xa6,0xed,0x7c,0x3b,0x12, +0xa3,0x8f,0x80,0x5, 0x12,0xa5,0x92,0x7c,0x3b,0x4c,0x33,0x68,0x11,0x7c,0xb3,0x12, +0xa7,0xfc,0x60,0xa, 0x7a,0x33,0x37,0x31,0x74,0x1, 0x7a,0xb3,0x2a,0x26,0x22,0xe4, +0x7a,0xb3,0x2f,0x9f,0x22,0xca,0xf8,0x7e,0xa3,0x2a,0x20,0x7e,0xb3,0x2a,0x21,0xbe, +0xa0,0x1, 0x38,0x21,0xbe,0xb0,0x1, 0x38,0x1c,0x7e,0x47,0x28,0x86,0xbe,0x44,0x0, +0x1e,0x28,0x2, 0x80,0x10,0x7e,0xf3,0x2f,0x9f,0x4c,0xff,0x68,0x17,0x7e,0x47,0x2b, +0xd6,0x4d,0x44,0x78,0xf, 0x12,0xa9,0xb, 0x74,0x1, 0x7a,0xb3,0x38,0x8d,0x7a,0xb3, +0x37,0x3, 0x80,0x35,0x4c,0xaa,0x78,0x36,0xb4,0x1, 0x33,0x7e,0x37,0x2b,0xd6,0x7a, +0x37,0x2f,0xa1,0x7e,0xb3,0x2f,0x9f,0xb4,0x3, 0x1f,0x7e,0x37,0x2b,0xd6,0xbe,0x34, +0x0, 0x0, 0x28,0x15,0x74,0x4, 0x7a,0xb3,0x2f,0x9f,0x7e,0x37,0x2f,0xb7,0x7e,0x27, +0x2f,0xb9,0x12,0xa4,0xa6,0x81,0x9f,0x80,0x0, 0x12,0xa8,0xa8,0x81,0x9f,0x7e,0xc7, +0x29,0x8, 0x7e,0xd7,0x29,0xa, 0x4c,0xff,0x78,0x19,0x70,0x57,0xbe,0xa0,0x1, 0x78, +0x52,0x7d,0x3c,0x7d,0x2d,0x12,0xa7,0x97,0x12,0xa4,0xa2,0x74,0x1, 0x7a,0xb3,0x2f, +0x9f,0x80,0x40,0xbe,0xf0,0x1, 0x78,0x2e,0x7e,0x27,0x2f,0xa7,0x9e,0x27,0x2f,0xaf, +0x7e,0x14,0x62,0xa1,0x12,0xa5,0x51,0xbd,0x23,0x38,0x13,0x7e,0x27,0x2f,0xb5,0x9e, +0x27,0x2f,0xad,0x7e,0x14,0x62,0xa3,0x12,0xa5,0x51,0xbd,0x23,0x28,0x15,0x74,0x3, +0x7a,0xb3,0x2f,0x9f,0x80,0x5, 0xbe,0xf0,0x3, 0x78,0x8, 0x7a,0xc7,0x2f,0xb7,0x7a, +0xd7,0x2f,0xb9,0x7e,0xb3,0x2f,0x9f,0x60,0x26,0x7d,0x3c,0x7d,0x2d,0x7e,0x17,0x2b, +0xda,0x7e,0x7, 0x2b,0xdc,0x12,0xa7,0x7b,0xa, 0x2b,0x7e,0x73,0x2f,0x9e,0xa, 0x37, +0xbd,0x32,0x58,0xb, 0x12,0xa4,0xa2,0x7a,0xc7,0x2b,0xda,0x7a,0xd7,0x2b,0xdc,0xda, +0xf8,0x22,0x7d,0x3c,0x7d,0x2d,0x7d,0x42,0x7d,0x13,0x7d,0x24,0x12,0xa8,0x83,0x7d, +0x31,0x12,0xa7,0x6, 0x2, 0xa4,0xb7,0x7e,0x3, 0x2f,0xc7,0xbe,0x0, 0xf0,0x50,0x2, +0xa1,0x50,0xa1,0x45,0x6c,0x99,0x7e,0xb3,0x2f,0x9e,0xbe,0xb0,0x20,0x50,0x5, 0x4, +0x7a,0xb3,0x2f,0x9e,0x7e,0x1f,0x2b,0xde,0x7a,0x1f,0x1f,0x34,0x7e,0x80,0x1, 0x80, +0x49,0x74,0x4, 0xac,0xb8,0x49,0x35,0x2b,0xde,0x49,0x25,0x2b,0xe0,0x7e,0x17,0x1f, +0x34,0x7e,0x7, 0x1f,0x36,0x12,0xa7,0x7b,0x7c,0x1b,0x7e,0x3, 0x2f,0x9e,0xbc,0x1, +0x38,0x26,0xb, 0x90,0x7e,0x70,0x4, 0xac,0x78,0x2e,0x34,0x2b,0xde,0x7e,0x14,0x1f, +0x34,0x74,0x4, 0x12,0x15,0xfc,0x7e,0x34,0x1f,0x34,0x7e,0x30,0x4, 0xac,0x39,0x2e, +0x14,0x2b,0xde,0x74,0x4, 0x12,0x15,0xfc,0xb, 0x80,0x7e,0x3, 0x2f,0xc7,0xbc,0x8, +0x38,0xaf,0xa, 0x59,0xb, 0x54,0x7c,0xb, 0x7a,0x3, 0x2f,0xc7,0x7e,0x3, 0x2f,0x9e, +0xbe,0x0, 0x20,0x50,0xb, 0x7e,0x3, 0x2f,0xc7,0xbe,0x0, 0xec,0x40,0x2, 0x81,0xc4, +0x22,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0x30,0x22,0x7d,0x13,0x7e,0x54,0x62,0x6f,0x12, +0xa5,0x88,0x50,0x21,0x7e,0x54,0x62,0x71,0x12,0xa5,0x88,0x28,0x18,0x7e,0x14,0x62, +0x73,0x12,0xa5,0x51,0xbd,0x32,0x50,0xd, 0x7e,0x14,0x62,0x75,0x12,0xa5,0x51,0xbd, +0x32,0x28,0x2, 0xe4,0x22,0x74,0x1, 0x22,0x7e,0x44,0x0, 0xff,0xb, 0x2a,0x30,0xbd, +0x31,0x22,0xca,0xd8,0xca,0x79,0x6c,0xff,0x6d,0xdd,0x7d,0xed,0x7d,0xfd,0x7e,0xd3, +0x2a,0x20,0x7e,0xe3,0x2a,0x21,0x7e,0xb3,0x38,0xd9,0x60,0x11,0x7e,0xc7,0x38,0xe2, +0x4d,0xcc,0x78,0x2, 0xc1,0x86,0xbe,0xd0,0x1, 0x28,0x2, 0xc1,0x86,0xbe,0xd0,0x1, +0x78,0x1d,0xbe,0xb0,0x4, 0x78,0x2, 0xc1,0x86,0x7e,0xe7,0x29,0x8, 0x7e,0xf7,0x29, +0xa, 0x7d,0x3e,0x7d,0x2f,0x12,0xa5,0x59,0xbe,0xb0,0x1, 0x78,0x2, 0xc1,0x86,0x7e, +0xa3,0x38,0xd9,0x7c,0xba,0x14,0x68,0x29,0x14,0x68,0x54,0x14,0x68,0x23,0x14,0x78, +0x2, 0xc1,0x83,0xb, 0xb2,0x68,0x2, 0xc1,0x86,0xbe,0xd0,0x1, 0x68,0x2, 0xc1,0x95, +0x4c,0xee,0x68,0x2, 0xc1,0x95,0x74,0x1, 0x7a,0xb3,0x38,0xd9,0x12,0xa6,0xa4,0x80, +0x65,0x4c,0xdd,0x78,0x1d,0xbe,0xa0,0x1, 0x78,0xc, 0x74,0x2, 0x7a,0xb3,0x38,0xd9, +0x7e,0x34,0x62,0x7b,0x80,0x54,0x74,0x4, 0x7a,0xb3,0x38,0xd9,0x7e,0x34,0x62,0x7f, +0x80,0x48,0x12,0xa6,0xad,0x90,0x62,0x6e,0x12,0xa6,0xb6,0x68,0x49,0x80,0x56,0xbe, +0xd0,0x1, 0x78,0x51,0x4c,0xee,0x78,0x4d,0x12,0xa6,0xad,0x7e,0x34,0x62,0x77,0x12, +0xa6,0x9c,0x7e,0x14,0x62,0x7b,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0xc0,0x9d,0xc3,0xbe, +0xc7,0x38,0xe2,0x40,0x21,0x90,0x62,0x6d,0x12,0xa6,0xb6,0x68,0x19,0x12,0xa6,0xa4, +0x74,0x3, 0x7a,0xb3,0x38,0xd9,0x7e,0x34,0x62,0x7b,0x12,0xa6,0x9c,0x7a,0x37,0x38, +0xe2,0x80,0x12,0x7e,0xf0,0x24,0xe4,0x7a,0xb3,0x38,0xd9,0x6d,0x33,0x7a,0x37,0x38, +0xe2,0x7c,0xbf,0x80,0x2, 0x7c,0xbf,0xda,0x79,0xda,0xd8,0x22,0x7e,0x24,0x0, 0xff, +0xb, 0x1a,0x30,0x22,0x7a,0xe7,0x38,0xda,0x7a,0xf7,0x38,0xdc,0x22,0x7a,0xe7,0x38, +0xde,0x7a,0xf7,0x38,0xe0,0x22,0xe4,0x93,0xa, 0x3b,0x12,0xa6,0xc2,0xa, 0xdb,0x4d, +0xdd,0x22,0x7d,0x13,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x7e,0x37,0x38,0xde,0x9e,0x37, +0x38,0xda,0x12,0x17,0x80,0xbd,0x31,0x38,0x12,0x7e,0x37,0x38,0xe0,0x9e,0x37,0x38, +0xdc,0x12,0x17,0x80,0xbd,0x31,0x38,0x3, 0x74,0x1, 0x22,0xe4,0x22,0x12,0xa7,0x72, +0x7a,0x37,0x2f,0xbb,0x12,0xa6,0xfd,0x7a,0x37,0x2f,0xbd,0xe4,0x22,0x7e,0x37,0x2f, +0xb5,0x9e,0x37,0x2f,0xad,0x22,0x7e,0x17,0x2f,0xaf,0xbd,0x13,0x28,0xa, 0x7a,0x37, +0x2f,0xaf,0x7a,0x27,0x2f,0xb1,0x80,0x10,0x7e,0x17,0x2f,0xa7,0xbd,0x13,0x50,0x8, +0x7a,0x37,0x2f,0xa7,0x7a,0x27,0x2f,0xa9,0x7e,0x17,0x2f,0xad,0xbd,0x12,0x28,0xa, +0x7a,0x27,0x2f,0xad,0x7a,0x37,0x2f,0xab,0x80,0x10,0x7e,0x17,0x2f,0xb5,0xbd,0x12, +0x50,0x8, 0x7a,0x27,0x2f,0xb5,0x7a,0x37,0x2f,0xb3,0x7e,0xb3,0x2f,0xc7,0xb4,0xa, +0xf, 0x12,0xa7,0x72,0x7a,0x37,0x2f,0xbf,0x12,0xa6,0xfd,0x7a,0x37,0x2f,0xc1,0x22, +0xb4,0x14,0xe, 0x12,0xa7,0x72,0x7a,0x37,0x2f,0xc3,0x12,0xa6,0xfd,0x7a,0x37,0x2f, +0xc5,0x22,0x7e,0x37,0x2f,0xa7,0x9e,0x37,0x2f,0xaf,0x22,0x7d,0x51,0x7d,0x12,0x9d, +0x35,0x12,0x17,0x80,0x7c,0xa7,0x7d,0x31,0x9d,0x30,0x12,0x17,0x80,0x7c,0xb7,0xbc, +0xba,0x50,0x3, 0x7c,0xba,0x22,0x22,0x7d,0xf2,0x7d,0xe3,0x7e,0x8, 0x2f,0x9f,0x7e, +0x34,0x0, 0x28,0xe4,0x12,0x17,0x4e,0x7e,0x8, 0x2b,0xde,0x7e,0x34,0x3, 0xc0,0x12, +0x17,0x4e,0x7a,0xb3,0x37,0x31,0x7e,0x34,0x62,0xa5,0x12,0xa6,0x9c,0x7a,0x37,0x2b, +0xd6,0x7a,0xe7,0x2f,0xa3,0x7a,0xf7,0x2f,0xa5,0x7a,0xe7,0x2f,0xa7,0x7a,0xe7,0x2f, +0xab,0x7a,0xe7,0x2f,0xaf,0x7a,0xe7,0x2f,0xb3,0x7a,0xf7,0x2f,0xa9,0x7a,0xf7,0x2f, +0xad,0x7a,0xf7,0x2f,0xb1,0x7a,0xf7,0x2f,0xb5,0x7a,0xe7,0x2b,0xda,0x7a,0xf7,0x2b, +0xdc,0x7a,0xb3,0x2f,0xc7,0x74,0x2, 0x7a,0xb3,0x2f,0x9e,0x22,0x7c,0x7b,0xa, 0x57, +0x9e,0x54,0x0, 0x20,0xe, 0x54,0xe, 0x54,0xe, 0x54,0xe, 0x54,0x7c,0xab,0x7c,0x67, +0x5e,0x60,0xf0,0xa5,0xbe,0x20,0x1d,0x7c,0xb7,0x54,0xf, 0x7e,0x24,0x0, 0x1, 0x60, +0x5, 0x3e,0x24,0x14,0x78,0xfb,0x7e,0x73,0x38,0xf7,0xa, 0x47,0x5d,0x42,0x7e,0x73, +0x37,0x2f,0x80,0x36,0xa5,0xbe,0x30,0x18,0x12,0xa8,0x6f,0x60,0x5, 0x3e,0x34,0x14, +0x78,0xfb,0x7e,0x53,0x38,0xf8,0xa, 0x45,0x5d,0x43,0x7e,0x73,0x37,0x30,0x80,0x1a, +0x12,0xa8,0x6f,0x60,0x5, 0x3e,0x34,0x14,0x78,0xfb,0xa, 0x2a,0x9, 0xb2,0x38,0xf7, +0xa, 0x4b,0x5d,0x43,0xa, 0x5a,0x9, 0x75,0x37,0x31,0xa, 0x57,0x5d,0x54,0x22,0x7c, +0xb7,0x54,0xf, 0x7e,0x34,0x0, 0x1, 0x22,0x7e,0xb3,0x2f,0x9f,0xb4,0x4, 0x2, 0xd3, +0x22,0xc3,0x22,0x7e,0xa3,0x2f,0xc7,0xbe,0xa0,0xf0,0x50,0x1b,0x74,0x4, 0xa4,0x59, +0x35,0x2b,0xde,0x7e,0xa3,0x2f,0xc7,0x74,0x4, 0xa4,0x59,0x25,0x2b,0xe0,0x7e,0xb3, +0x2f,0xc7,0x4, 0x7a,0xb3,0x2f,0xc7,0x22,0x74,0xfe,0x7a,0xb3,0x37,0x31,0xe4,0x7a, +0xb3,0x2f,0x9f,0x22,0x7e,0x34,0x0, 0x1, 0x7a,0x37,0x28,0xa1,0x7e,0x34,0x0, 0x2, +0x7a,0x37,0x28,0xa3,0x22,0x74,0x1, 0x7a,0xb3,0x2b,0x20,0x7a,0xb3,0x2b,0x3c,0x22, +0x7e,0x50,0xc, 0xac,0x5a,0x49,0x32,0x36,0x7c,0x59,0x32,0x36,0x80,0x22,0xa, 0x3a, +0x19,0xf3,0x1f,0x46,0x74,0x1, 0x19,0xb4,0x1f,0x50,0x22,0xe5,0x2a,0xa, 0x2b,0x1b, +0x24,0xe5,0x29,0xa, 0x3b,0xbd,0x32,0x22,0x7e,0x73,0x28,0x84,0xbe,0x70,0x1, 0x22, +0x7e,0x73,0x38,0xee,0xa, 0x37,0x5e,0x34,0x0, 0x2, 0x22,0x6d,0x33,0x7a,0x37,0x38, +0x8b,0x22,0xa, 0x47,0x7f,0x70,0x2d,0xf4,0x7e,0x7b,0x60,0x22,0x3e,0x34,0x3e,0x34, +0x3e,0x34,0x22,0x7e,0x70,0x2, 0xac,0x79,0x9, 0xb3,0x1f,0x34,0x22,0x7e,0x50,0x2, +0xac,0x5a,0x7f,0x6, 0x2d,0x12,0x22,0xa, 0x2d,0x1b,0x24,0xa, 0x3a,0xbd,0x32,0x22, +0x7e,0x37,0x25,0xf4,0x7a,0x37,0x31,0xeb,0x22,0x7e,0x34,0xd, 0xc8,0x7a,0x37,0x31, +0xed,0x22,0x7e,0x73,0x37,0xcb,0x7a,0x73,0x2b,0x3f,0x22,0x7e,0xb3,0x37,0xee,0x7e, +0x34,0x0, 0x4, 0x22,0x7d,0x2e,0x12,0x15,0x29,0x7d,0xf3,0x22,0x7e,0x34,0x0, 0xc8, +0x2, 0x1a,0x0, 0x7e,0x50,0x2, 0xac,0x5a,0x3e,0x24,0x22,0xff,0xa9,0x7c,0x56,0x83, +0x32,0xcd,0x4, 0x6d, \ No newline at end of file diff --git a/drivers/input/touchscreen/FT5346/ft_app_ic_oufei_ebbg.txt b/drivers/input/touchscreen/FT5346/ft_app_ic_oufei_ebbg.txt new file mode 100644 index 0000000000000..95f25982efc49 --- /dev/null +++ b/drivers/input/touchscreen/FT5346/ft_app_ic_oufei_ebbg.txt @@ -0,0 +1,2820 @@ +0x2, 0x16,0x42,0x2, 0xa3,0xd6,0xeb,0xaa,0x8, 0x22,0x22,0x2, 0x0, 0x49,0xb4,0x2, +0x4, 0xa9,0xb7,0xea,0x22,0x24,0xff,0xa9,0x97,0xea,0x22,0x2, 0x50,0x93,0xb4,0x2, +0x4, 0xa9,0xb6,0xea,0x22,0x24,0xff,0xa9,0x96,0xea,0x22,0x2, 0x70,0x54,0x7f,0x60, +0xa9,0xc2,0xea,0x74,0x1, 0x12,0x13,0x96,0x7f,0x6, 0x12,0x5, 0xb4,0x7f,0x6, 0x2, +0x9, 0xa1,0x22,0x2, 0x70,0x70,0x2, 0x28,0x88,0x32,0x32,0x2, 0x0, 0x4a,0x12,0x10, +0xa2,0x2, 0x13,0x79,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x32,0x2, 0x0, 0x76,0x1, 0x2, +0x4, 0x8, 0x10,0x20,0x40,0x80,0xb2,0x86,0x22,0xff,0xff,0x2, 0x0, 0x5a,0xb2,0x82, +0x22,0xff,0xff,0x2, 0x10,0x52,0xca,0x7b,0xca,0x6b,0xca,0x5b,0xca,0x4b,0xca,0x2b, +0xca,0x1b,0xca,0xb, 0xc0,0xd0,0xc0,0x83,0xc0,0x82,0xd2,0xf, 0x7e,0xf, 0x39,0x9b, +0x69,0x30,0x0, 0x4, 0x7a,0x73,0x39,0xab,0x7e,0x73,0x39,0xab,0xa, 0x37,0x5e,0x34, +0x0, 0x4, 0x68,0x4, 0xd2,0xe, 0x80,0x2, 0xc2,0xe, 0x7e,0x34,0x0, 0x1f,0x79,0x30, +0x0, 0x4, 0xc2,0xc3,0x12,0x12,0x9e,0x12,0x72,0x97,0x7e,0x1f,0x39,0x9b,0x69,0x31, +0x0, 0x2, 0x5e,0x34,0x0, 0x40,0x68,0x2e,0x6c,0xaa,0x7e,0x10,0x2, 0xac,0x1a,0x7e, +0x1f,0x39,0x9b,0x7f,0x71,0x2d,0xf0,0x69,0x17,0x0, 0x9c,0x59,0x10,0x39,0x9f,0xb, +0xa0,0xbe,0xa0,0x3, 0x78,0xe4,0x69,0x11,0x0, 0xa4,0x7a,0x17,0x39,0xa7,0x69,0x31, +0x0, 0xa2,0x7a,0x37,0x39,0xa5,0xa9,0xc1,0xc4,0xd0,0x82,0xd0,0x83,0xd0,0xd0,0xda, +0xb, 0xda,0x1b,0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda,0x7b,0x32,0x7d,0x13, +0x7e,0x1f,0x39,0xca,0x1b,0x1a,0x10,0xc2,0xc6,0xd2,0xee,0x22,0xff,0xff,0x54,0x2c, +0xca,0x79,0x7f,0x50,0x7c,0xeb,0x7e,0x34,0x0, 0x24,0x7e,0x8, 0x0, 0x2c,0x7e,0x24, +0x0, 0x2, 0x12,0x63,0x28,0xe5,0x2c,0xbe,0xb0,0x0, 0x38,0x2, 0x21,0x4a,0xe5,0x2c, +0xbe,0xb0,0x76,0x28,0x2, 0x21,0x4a,0x7e,0xe1,0x2c,0xbe,0xe0,0x76,0x38,0x2, 0x21, +0x78,0x7e,0x34,0x14,0xb5,0x79,0x35,0x0, 0x2, 0x7e,0x34,0x14,0x99,0x79,0x35,0x0, +0x4, 0xbe,0xe0,0x81,0x68,0x2, 0x21,0x71,0x74,0x23,0x7a,0x5b,0xb0,0x74,0x1c,0x61, +0x84,0x74,0x1, 0x7a,0x5b,0xb0,0x61,0x84,0x7c,0xbe,0x14,0xbe,0xb0,0x75,0x40,0x2, +0x61,0x33,0x7e,0xa0,0x3, 0xa4,0x2e,0x54,0x1, 0x8c,0x89,0x54,0x2, 0x2, 0xfb,0x2, +0x2, 0xfb,0x2, 0x3, 0x33,0x2, 0x2, 0xfb,0x2, 0x3, 0x33,0x2, 0x2, 0xed,0x2, 0x2, +0xfb,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x2, 0xfb,0x2, 0x3, 0x33,0x2, 0x2, 0xfb, +0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x25,0x2, 0x3, 0x33,0x2, 0x3, 0x9, 0x2, +0x2, 0xfb,0x2, 0x3, 0x17,0x2, 0x3, 0x17,0x2, 0x2, 0xfb,0x2, 0x3, 0x33,0x2, 0x3, +0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33, +0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, +0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, +0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33, +0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, +0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, +0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33, +0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, +0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, +0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33, +0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, +0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, +0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33, +0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, +0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, +0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33, +0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, +0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x2, 0xfb,0x41,0xfb,0x7e,0x34,0x14, +0xb5,0x79,0x35,0x0, 0x2, 0x7e,0x34,0x14,0x52,0x61,0x3f,0x7e,0x34,0x14,0x89,0x79, +0x35,0x0, 0x2, 0x7e,0x34,0x14,0x99,0x61,0x3f,0x7e,0x34,0x14,0x89,0x79,0x35,0x0, +0x2, 0x7e,0x34,0x14,0x22,0x61,0x3f,0x7e,0x34,0x14,0x6, 0x79,0x35,0x0, 0x2, 0x7e, +0x34,0x14,0x36,0x61,0x3f,0x7e,0x34,0x14,0x7a,0x79,0x35,0x0, 0x2, 0x7e,0x34,0x14, +0x61,0x61,0x3f,0x7e,0x34,0x14,0xb5,0x79,0x35,0x0, 0x2, 0x7e,0x34,0x14,0x99,0x79, +0x35,0x0, 0x4, 0xbe,0xe0,0x16,0x28,0x2, 0x61,0x4e,0x7c,0xfe,0x61,0x62,0x7e,0xf0, +0x16,0xbe,0xe0,0x72,0x50,0x2, 0x61,0x62,0xa, 0x3e,0x9e,0x34,0x0, 0x72,0xb, 0x34, +0x2c,0xf7,0x7e,0x70,0x3, 0xac,0x7f,0x7d,0x23,0x2e,0x24,0x14,0xd9,0x7a,0x51,0x82, +0x7a,0x41,0x83,0xe4,0x93,0x7a,0x5b,0xb0,0x2e,0x34,0x14,0xda,0x7a,0x71,0x82,0x7a, +0x61,0x83,0xe4,0x93,0x39,0xb5,0x0, 0x1, 0xda,0x79,0x22,0xca,0x3b,0x7f,0x30,0x74, +0x1, 0x12,0x13,0xde,0x29,0x73,0x0, 0xf3,0x2e,0x70,0xff,0x92,0x1, 0x29,0xb3,0x0, +0xf4,0x12,0x13,0xaf,0x7f,0x3, 0x12,0xd, 0x72,0x7f,0x3, 0x12,0x6, 0xba,0x29,0x73, +0x0, 0xa, 0xa, 0x37,0x7e,0xf, 0x39,0x9b,0x79,0x30,0x0, 0x24,0x29,0x73,0x0, 0xa3, +0xa, 0x27,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24, +0x69,0x33,0x0, 0xff,0x4d,0x32,0x7e,0xf, 0x39,0x9b,0x79,0x30,0x0, 0x2, 0x29,0x73, +0x0, 0xa, 0xa, 0x47,0x29,0x73,0x0, 0x5, 0xa, 0x57,0x9d,0x54,0xf5,0x34,0x29,0xb3, +0x0, 0xa5,0x70,0xb, 0x29,0xb3,0x0, 0xf8,0x29,0x73,0x0, 0xf7,0x12,0xb, 0xad,0x29, +0x73,0x0, 0xa5,0x2e,0x70,0xff,0x92,0x1, 0xe5,0x34,0x12,0xb, 0x1e,0x69,0x33,0x0, +0xfd,0x7e,0xf, 0x39,0x9b,0x79,0x30,0x0, 0x28,0x69,0x23,0x0, 0xfb,0x3e,0x24,0x3e, +0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x29,0x73,0x0, 0xfa,0xa, 0x37,0x2d, +0x32,0x7e,0xf, 0x39,0x9b,0x79,0x30,0x0, 0x2a,0x29,0x73,0x0, 0xf9,0xa, 0x37,0x7e, +0xf, 0x39,0x9b,0x79,0x30,0x0, 0x2c,0x7e,0x34,0x0, 0x1, 0x7e,0xf, 0x39,0x9b,0x79, +0x30,0x0, 0x34,0x7e,0x34,0x1, 0xb, 0x7e,0xf, 0x39,0x9b,0x79,0x30,0x0, 0x2e,0x29, +0x73,0x0, 0x5, 0xa, 0x37,0x7e,0xf, 0x39,0x9b,0x79,0x30,0x0, 0x10,0x69,0x33,0x0, +0xa8,0x7e,0xf, 0x39,0x9b,0x79,0x30,0x0, 0x1c,0x69,0x33,0x0, 0xaa,0x7e,0xf, 0x39, +0x9b,0x79,0x30,0x0, 0x1e,0x6c,0xaa,0x7e,0x50,0x2, 0xac,0x5a,0x69,0x13,0x1, 0x1, +0x2d,0x12,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0x30,0x7e,0xf, 0x39,0x9b,0x2d,0x12,0x79, +0x30,0x0, 0x44,0xb, 0xa0,0xbe,0xa0,0xc, 0x40,0xdd,0xda,0x3b,0x22,0xca,0xf8,0x7f, +0x70,0x7e,0x7b,0xf0,0x29,0x77,0x0, 0x1, 0xbc,0x7f,0x28,0x2, 0x7c,0xf7,0x69,0x17, +0x0, 0x6, 0x6d,0x0, 0x7e,0x34,0x0, 0xf2,0x74,0xff,0x12,0x17,0x53,0x7f,0x7, 0x12, +0xe, 0xed,0xa9,0xd6,0xcb,0x6c,0xaa,0x80,0x2d,0x6c,0x77,0x80,0x1f,0x7e,0x10,0xb, +0xac,0x1a,0xa, 0x17,0x2d,0x1, 0x3e,0x4, 0x69,0x17,0x0, 0x6, 0x2d,0x10,0x6d,0x0, +0xb, 0xa, 0x20,0x6e,0x24,0xff,0xff,0x1b,0xa, 0x20,0xb, 0x70,0x29,0x67,0x0, 0x1, +0xbc,0x67,0x38,0xd9,0xb, 0xa0,0x7e,0x7b,0x60,0xbc,0x6a,0x38,0xcc,0x69,0x37,0x0, +0x6, 0x7e,0xf, 0x33,0xfc,0x79,0x30,0x0, 0x4, 0x7c,0x4f,0x6c,0x55,0xa, 0x3f,0x2d, +0x32,0x7e,0xf, 0x33,0xfc,0x79,0x30,0x0, 0xc, 0x6d,0x11,0x7e,0x1f,0x33,0xfc,0x1b, +0x1a,0x10,0x7e,0x34,0x0, 0xd0,0x12,0xf, 0x45,0x6c,0xaa,0xbe,0xa0,0x4, 0x50,0x18, +0x7e,0x70,0x4, 0xac,0x7a,0x7c,0xb7,0x7e,0x1f,0x33,0xfc,0x69,0x41,0x0, 0x26,0x60, +0x42,0x1e,0x44,0x14,0x78,0xfb,0x80,0x3b,0xbe,0xa0,0x8, 0x50,0x1b,0xa, 0x3a,0x1b, +0x36,0x3e,0x34,0x3e,0x34,0x7c,0xb7,0x7e,0x1f,0x33,0xfc,0x69,0x41,0x0, 0x28,0x60, +0x22,0x1e,0x44,0x14,0x78,0xfb,0x80,0x1b,0xa, 0x3a,0x9e,0x34,0x0, 0x8, 0x3e,0x34, +0x3e,0x34,0x7c,0xb7,0x7e,0x1f,0x33,0xfc,0x69,0x41,0x0, 0x2a,0x60,0x5, 0x1e,0x44, +0x14,0x78,0xfb,0x5e,0x44,0x0, 0xf, 0x7e,0x50,0x2, 0xac,0x5a,0x69,0x37,0x0, 0x6, +0x2d,0x32,0x6d,0x22,0x1b,0x1a,0x40,0xb, 0xa0,0xbe,0xa0,0xb, 0x40,0x8d,0xa9,0xc6, +0xcb,0xda,0xf8,0x22,0x29,0x70,0x0, 0x96,0x29,0x90,0x0, 0x98,0x29,0x60,0x0, 0x97, +0x29,0x80,0x0, 0x8d,0xbe,0x80,0x4, 0x38,0x4, 0x6c,0xaa,0x80,0x21,0xbe,0x80,0x8, +0x38,0x5, 0x7e,0xa0,0x1, 0x80,0x17,0xbe,0x80,0x10,0x38,0x5, 0x7e,0xa0,0x2, 0x80, +0xd, 0xbe,0x80,0x20,0x38,0x5, 0x7e,0xa0,0x3, 0x80,0x3, 0x7e,0xa0,0x4, 0xbe,0x90, +0x3, 0x28,0x3, 0x7e,0x90,0x3, 0xbe,0x80,0x3f,0x28,0x3, 0x7e,0x80,0x3f,0xbe,0x60, +0x1, 0x28,0x3, 0x7e,0x60,0x1, 0xbe,0x70,0x2, 0x28,0x2, 0x6c,0x77,0xa, 0x28,0x3e, +0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x7c,0x89,0x6c,0x99,0x3e,0x44,0x3e, +0x44,0x3e,0x44,0x2d,0x42,0xa, 0x26,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x2d, +0x24,0xa, 0x37,0x3e,0x34,0x3e,0x34,0x2d,0x32,0x7e,0x7f,0x39,0xca,0x79,0x37,0x0, +0x2, 0x29,0xb0,0x0, 0x8c,0x7c,0x4b,0x6c,0x55,0x29,0xb0,0x0, 0x8b,0xa, 0x3b,0x2d, +0x32,0x7e,0x7f,0x39,0x93,0x79,0x37,0x0, 0x80,0x69,0x30,0x0, 0xa0,0x7e,0x7f,0x39, +0xca,0x79,0x37,0x0, 0xc, 0x69,0x30,0x0, 0x9e,0x5e,0x34,0xe0,0xf, 0x29,0xb0,0x0, +0x8c,0xa, 0x2b,0x1b,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x2d,0x32,0x7e, +0x7f,0x39,0x93,0x79,0x37,0x0, 0x82,0xa, 0x2a,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e, +0x24,0x29,0xb0,0x0, 0x99,0xa, 0x3b,0x2d,0x32,0x7e,0x7f,0x39,0xca,0x79,0x37,0x0, +0x6, 0x69,0x30,0x0, 0x9c,0x7e,0x7f,0x39,0xca,0x79,0x37,0x0, 0x8, 0x69,0x30,0x0, +0x9a,0x7e,0xf, 0x39,0xca,0x79,0x30,0x0, 0xa, 0x22,0x7f,0x60,0x74,0x1, 0x12,0x13, +0xde,0x29,0x36,0x0, 0xf5,0x29,0x26,0x0, 0xa3,0x29,0x16,0x0, 0xa4,0xbe,0x20,0x2, +0x28,0x3, 0x7e,0x20,0x2, 0xbe,0x10,0x40,0x28,0x3, 0x7e,0x10,0x40,0x7e,0x34,0x0, +0x4, 0x7c,0xb2,0x60,0x5, 0x3e,0x34,0x14,0x78,0xfb,0x7c,0x7, 0xa, 0x31,0x7e,0x2f, +0x39,0x9b,0x79,0x32,0x0, 0x12,0x7c,0x73,0xac,0x70,0xa, 0x21,0x12,0x15,0x29,0x7c, +0x27,0xa, 0x32,0x7e,0x2f,0x39,0x9b,0x79,0x32,0x0, 0x14,0x7c,0x73,0xac,0x70,0x29, +0x26,0x0, 0xf6,0xa, 0x22,0xad,0x32,0xa, 0x21,0x8d,0x32,0x7d,0x43,0x7c,0x73,0xac, +0x70,0xa, 0x21,0x12,0x15,0x29,0x7c,0xa7,0x7c,0x2a,0x7c,0xb9,0x2c,0xab,0xbe,0xa0, +0xc, 0x50,0x3, 0x7e,0xa0,0xc, 0xbe,0x20,0xc, 0x50,0x3, 0x7e,0x20,0xc, 0xa, 0x20, +0xa, 0x31,0x12,0x15,0x29,0x7d,0xe3,0xa, 0x3a,0xb, 0x34,0xad,0x3e,0xb, 0x34,0xbe, +0x34,0x2, 0x0, 0x40,0x4, 0x7e,0x34,0x1, 0xff,0x29,0x46,0x0, 0xf7,0x7e,0x50,0x2, +0xac,0x45,0xa, 0xf2,0xad,0xfe,0x2d,0x2f,0xb, 0x24,0xbe,0x24,0x2, 0x0, 0x40,0x4, +0x7e,0x24,0x1, 0xff,0xa, 0x13,0x7e,0x7f,0x39,0x9b,0x79,0x17,0x0, 0xa, 0x1e,0x24, +0x7c,0x45,0x6c,0x55,0x1e,0x34,0x2d,0x32,0x7e,0xf, 0x39,0x9b,0x79,0x30,0x0, 0xc, +0xa, 0x3a,0x7e,0xf, 0x39,0x9b,0x79,0x30,0x0, 0x22,0x22,0xa9,0xd6,0xcb,0x69,0x30, +0x0, 0x4, 0x7e,0x2f,0x33,0xfc,0x79,0x32,0x0, 0x4, 0x69,0x30,0x0, 0x6, 0x7e,0x2f, +0x33,0xfc,0x79,0x32,0x0, 0x6, 0x69,0x30,0x0, 0x8, 0x7e,0x2f,0x33,0xfc,0x79,0x32, +0x0, 0x8, 0x7e,0xb, 0x70,0x7c,0x47,0x6c,0x55,0x29,0x70,0x0, 0x1, 0xa, 0x37,0x2d, +0x32,0x7e,0x2f,0x33,0xfc,0x79,0x32,0x0, 0xc, 0x29,0x70,0x0, 0x2, 0xa, 0x37,0x7e, +0xf, 0x33,0xfc,0x79,0x30,0x0, 0xe, 0x6d,0x11,0x7e,0x1f,0x33,0xfc,0x1b,0x1a,0x10, +0x7e,0x34,0x0, 0xe0,0x12,0xf, 0x45,0xa9,0xc6,0xcb,0x22,0xf5,0xfd,0xe5,0xfe,0x22, +0x7f,0x21,0xa9,0xd6,0xcb,0x69,0x30,0x0, 0x4, 0x7e,0x7f,0x33,0xfc,0x79,0x37,0x0, +0x4, 0x69,0x30,0x0, 0x8, 0x7e,0x7f,0x33,0xfc,0x79,0x37,0x0, 0x6, 0x69,0x30,0x0, +0x6, 0x7e,0x7f,0x33,0xfc,0x79,0x37,0x0, 0x8, 0x29,0x70,0x0, 0x1, 0x7c,0x47,0x6c, +0x55,0x7e,0xb, 0x70,0xa, 0x37,0x2d,0x32,0x7e,0x7f,0x33,0xfc,0x79,0x37,0x0, 0xc, +0x29,0x70,0x0, 0x2, 0xa, 0x37,0x1b,0x34,0x7e,0x7f,0x33,0xfc,0x79,0x37,0x0, 0xa, +0x69,0x30,0x0, 0xa, 0x7e,0x7f,0x33,0xfc,0x79,0x37,0x0, 0xe, 0x69,0x30,0x0, 0xc, +0x7e,0x7f,0x33,0xfc,0x79,0x37,0x0, 0x10,0x69,0x30,0x0, 0xe, 0x7e,0x7f,0x33,0xfc, +0x79,0x37,0x0, 0x12,0x29,0x70,0x0, 0x3, 0x7c,0x27,0x6c,0x33,0x7e,0x1f,0x33,0xfc, +0x1b,0x1a,0x10,0x7e,0x34,0x0, 0xa0,0x12,0xf, 0x45,0x7e,0x1f,0x33,0xfc,0x69,0x11, +0x0, 0x1a,0x7a,0x2b,0x30,0x69,0x11,0x0, 0x1c,0x39,0x32,0x0, 0x1, 0x69,0x11,0x0, +0x16,0x79,0x12,0x0, 0x2, 0x69,0x11,0x0, 0x18,0x79,0x12,0x0, 0x4, 0x69,0x11,0x0, +0x22,0x79,0x12,0x0, 0x6, 0x69,0x11,0x0, 0x24,0x79,0x12,0x0, 0x8, 0x69,0x11,0x0, +0x1e,0x79,0x12,0x0, 0xa, 0x69,0x31,0x0, 0x20,0x79,0x32,0x0, 0xc, 0xa9,0xc6,0xcb, +0x22,0xca,0x3b,0x7c,0x57,0x7c,0x4b,0x5e,0x40,0x3, 0x69,0x30,0x0, 0x4, 0x5e,0x60, +0x3f,0x6c,0xaa,0xa, 0x4a,0x69,0xf0,0x0, 0xa, 0x69,0xe0,0x0, 0x8, 0x2d,0xf4,0x7e, +0x7b,0xb0,0xa, 0xfb,0x7d,0x4f,0x7c,0x89,0x6c,0x99,0x7d,0xf4,0xa, 0xea,0x69,0xd0, +0x0, 0xe, 0x69,0xc0,0x0, 0xc, 0x2d,0xde,0x7e,0x6b,0xb0,0xa, 0x4b,0x2d,0x4f,0x7e, +0xd0,0x28,0xac,0xd5,0x7e,0xf0,0x2, 0xac,0xfa,0x7d,0xd7,0x2d,0xd6,0x7e,0xf0,0xf0, +0xac,0xf4,0x2d,0xd7,0x7e,0x7f,0x39,0xc6,0x2d,0xfd,0x79,0x47,0x1, 0x8c,0xb, 0xa0, +0xbe,0xa0,0xe, 0x78,0xae,0x6c,0xaa,0x7e,0x90,0x2, 0xac,0x9a,0x69,0xf0,0x0, 0x2, +0xb, 0xa, 0xe0,0x2d,0xf4,0xb, 0x7a,0x40,0x7e,0xd0,0x28,0xac,0xd5,0x7e,0xf0,0x2, +0xac,0xfa,0x7d,0xd7,0x2d,0xd6,0x7e,0xf0,0xf0,0xac,0xf4,0x2d,0xd7,0x7e,0x7f,0x39, +0xc6,0x2d,0xfd,0x79,0x47,0x1, 0x80,0xb, 0xa0,0xbe,0xa0,0x4, 0x40,0xc9,0x7e,0x90, +0xf0,0xac,0x94,0x74,0x28,0xac,0xb5,0x7d,0xf5,0x2d,0xf4,0x7e,0x2f,0x39,0xc6,0x2d, +0x5f,0x79,0x32,0x1, 0x88,0x69,0x30,0x0, 0x6, 0x7e,0x30,0xf0,0xac,0x34,0x74,0x28, +0xac,0x5b,0x2d,0x21,0x7e,0xf, 0x39,0xc6,0x2d,0x12,0x79,0x30,0x1, 0x8a,0xda,0x3b, +0x22,0x29,0x60,0x0, 0xb, 0xa, 0x46,0x29,0x60,0x0, 0x4, 0xa, 0x26,0x2d,0x24,0x7c, +0x65,0x29,0xb0,0x0, 0x6, 0xbc,0xb6,0x28,0x2, 0x7c,0x6b,0x29,0x70,0x0, 0x5, 0x29, +0xb0,0x0, 0x7, 0xbc,0xb7,0x28,0x2, 0x7c,0x7b,0x6c,0xaa,0x6d,0x22,0x7e,0x90,0x2, +0xac,0x9a,0x7e,0x7f,0x39,0x93,0x2d,0xf4,0x79,0x27,0x0, 0x2, 0xb, 0xa0,0xbe,0xa0, +0x23,0x78,0xea,0x6c,0xaa,0x80,0x55,0xa, 0x2a,0x7f,0x70,0x2d,0xf2,0x29,0x57,0x0, +0x4c,0xbe,0x50,0x23,0x50,0x23,0x29,0x47,0x0, 0xb4,0xa, 0xd4,0x7d,0x4d,0x7c,0x89, +0x6c,0x99,0x7d,0xd4,0x7e,0x90,0x2, 0xac,0x95,0x7e,0x7f,0x39,0x93,0x2d,0xf4,0xb, +0xf5,0xb, 0x7a,0x40,0x4d,0x4d,0x1b,0x7a,0x40,0xa, 0x4a,0x7f,0x70,0x2d,0xf4,0x29, +0x47,0x0, 0x4c,0xa, 0xd4,0x7e,0x90,0x2, 0xac,0x9a,0x7e,0x7f,0x39,0x93,0x2d,0xf4, +0xb, 0xf5,0xb, 0x7a,0x40,0x4d,0x4d,0x1b,0x7a,0x40,0xb, 0xa0,0xbc,0x6a,0x38,0xa7, +0x6c,0xaa,0x80,0x1d,0xa, 0x2a,0x7f,0x70,0x2d,0xf2,0x29,0x67,0x0, 0x6f,0xa, 0x46, +0x7e,0x50,0x2, 0xac,0x5a,0x7e,0x7f,0x39,0x93,0x2d,0xf2,0x79,0x47,0x0, 0x48,0xb, +0xa0,0xbc,0x7a,0x38,0xdf,0x22,0x7c,0x7b,0x7e,0x7f,0x39,0x9b,0x69,0x47,0x0, 0xc, +0x6c,0x88,0x3e,0x44,0x69,0x7, 0x0, 0xa, 0x69,0x57,0x0, 0x2, 0x1e,0x54,0x1e,0x54, +0x1e,0x54,0x1e,0x54,0x1e,0x54,0x1e,0x54,0x1e,0x54,0x5e,0x54,0x0, 0x3, 0x7e,0x14, +0x0, 0x4, 0x70,0x2, 0x41,0x9b,0x3e,0x14,0x14,0x78,0xfb,0x7c,0xa3,0xa, 0xda,0xad, +0xd0,0x7d,0xcd,0x6d,0x11,0x79,0x17,0x0, 0x8c,0x7c,0xb7,0x70,0x2, 0x41,0xb4,0x1e, +0xd4,0x14,0x78,0xfb,0xbe,0xd4,0x1, 0x0, 0x38,0x2, 0x41,0xc2,0x7e,0xd4,0x1, 0x0, +0x41,0xce,0xbe,0xd4,0x0, 0x10,0x40,0x2, 0x41,0xce,0x7e,0xd4,0x0, 0x10,0x7d,0x3d, +0x12,0x12,0x6a,0xa, 0x1b,0x7e,0x1f,0x39,0x9b,0x79,0x11,0x0, 0x90,0x7e,0x1f,0x39, +0x9b,0x79,0xd1,0x0, 0x8e,0x7e,0x7f,0x39,0x9b,0x69,0x37,0x0, 0x8, 0xad,0x3c,0x8d, +0x3d,0x79,0x37,0x0, 0x92,0x7e,0x14,0x0, 0x6, 0x7e,0x1f,0x39,0x9b,0x79,0x11,0x0, +0x94,0x7d,0x24,0x9d,0x20,0xa, 0x3a,0xad,0x32,0x7e,0xf, 0x39,0x9b,0x79,0x30,0x0, +0x96,0x7e,0x34,0x0, 0x10,0x7e,0xf, 0x39,0x9b,0x79,0x30,0x0, 0x98,0x22,0x7c,0x5b, +0x7e,0xf, 0x39,0x9b,0x69,0x40,0x0, 0x22,0x30,0x1, 0x6b,0x6d,0xff,0x7d,0x3f,0xbe, +0x50,0x10,0x28,0x2e,0x7e,0x54,0xff,0xff,0x79,0x50,0x0, 0x42,0x9e,0x50,0x10,0x6c, +0xaa,0x80,0x11,0x7e,0xe4,0x0, 0x1, 0x7c,0xba,0x60,0x5, 0x3e,0xe4,0x14,0x78,0xfb, +0x2d,0x3e,0xb, 0xa0,0xbc,0x5a,0x38,0xeb,0x7e,0x6f,0x39,0x9b,0x79,0x36,0x0, 0x40, +0x80,0x25,0x79,0xf0,0x0, 0x40,0x6c,0xaa,0x80,0x11,0x7e,0xf4,0x0, 0x1, 0x7c,0xba, +0x60,0x5, 0x3e,0xf4,0x14,0x78,0xfb,0x2d,0x3f,0xb, 0xa0,0xbc,0x5a,0x38,0xeb,0x7e, +0x7f,0x39,0x9b,0x79,0x37,0x0, 0x42,0x7d,0x34,0x2e,0x34,0x0, 0xc, 0x7e,0x7f,0x39, +0x9b,0x79,0x37,0x0, 0x16,0x22,0x6d,0x33,0x79,0x30,0x0, 0x40,0x7e,0xf, 0x39,0x9b, +0x79,0x30,0x0, 0x42,0x7e,0x1f,0x39,0x9b,0x79,0x41,0x0, 0x16,0x22,0x7c,0x17,0x7c, +0x3b,0x6d,0x33,0x7e,0x2f,0x39,0x9b,0x79,0x32,0x0, 0x40,0x7e,0x2f,0x39,0x9b,0x79, +0x32,0x0, 0x42,0x7e,0x7f,0x39,0x9b,0x69,0x57,0x0, 0x12,0x7c,0xab,0x69,0x37,0x0, +0x2, 0x1e,0x34,0x1e,0x34,0x1e,0x34,0x1e,0x34,0x1e,0x34,0x1e,0x34,0x1e,0x34,0x5e, +0x34,0x0, 0x3, 0x7c,0xb7,0x7e,0x44,0x0, 0x4, 0x60,0x5, 0x3e,0x44,0x14,0x78,0xfb, +0x7c,0x29,0xa, 0x22,0xa, 0x3a,0x12,0x15,0x29,0xa, 0x23,0x2d,0x32,0x7c,0xb7,0x7c, +0x61,0x6c,0x77,0xa, 0xb, 0x1e,0x4, 0x2d,0x3, 0x79,0x7, 0x0, 0xc, 0x7c,0x73,0xac, +0x72,0xa, 0x2a,0x12,0x15,0x29,0x7e,0xf, 0x39,0x9b,0x79,0x30,0x0, 0x16,0x6d,0x33, +0x7e,0xf, 0x39,0x9b,0x79,0x30,0x0, 0x22,0x22,0xa9,0xd6,0xcb,0x69,0x30,0x0, 0x6, +0x7e,0x2f,0x33,0xfc,0x79,0x32,0x0, 0x4, 0x69,0x30,0x0, 0x8, 0x7e,0x2f,0x33,0xfc, +0x79,0x32,0x0, 0x8, 0x29,0x70,0x0, 0x2, 0x7c,0x47,0x6c,0x55,0x29,0x70,0x0, 0x3, +0xa, 0x37,0x2d,0x32,0x7e,0x2f,0x33,0xfc,0x79,0x32,0x0, 0xc, 0x7e,0xb, 0x70,0x7c, +0x47,0x29,0x70,0x0, 0x1, 0xa, 0x37,0x2d,0x32,0x7e,0x2f,0x33,0xfc,0x79,0x32,0x0, +0xa, 0x29,0x70,0x0, 0x4, 0xa, 0x37,0x7e,0x2f,0x33,0xfc,0x79,0x32,0x0, 0xe, 0x29, +0xb0,0x0, 0x5, 0x54,0x1, 0x7c,0x2b,0x6c,0x33,0x7e,0x1f,0x33,0xfc,0x1b,0x1a,0x10, +0x7e,0x34,0x0, 0xc0,0x12,0xf, 0x45,0xa9,0xc6,0xcb,0x22,0xca,0x79,0x7c,0xab,0x5e, +0xa0,0x3, 0x6c,0x77,0x7e,0x50,0x2, 0xac,0x57,0x69,0xd0,0x0, 0xe, 0x69,0xc0,0x0, +0xc, 0x2d,0xd2,0x29,0x66,0x0, 0x1, 0xa, 0xf6,0x7d,0x4f,0x7c,0x89,0x6c,0x99,0x7d, +0xf4,0x7e,0x6b,0x60,0xa, 0x46,0x2d,0x4f,0x7e,0xf0,0xf0,0xac,0xfa,0x2d,0x27,0x7e, +0x7f,0x39,0xc6,0x2d,0xf2,0x79,0x47,0x2, 0x54,0xb, 0x70,0xbe,0x70,0xe, 0x40,0xc4, +0x69,0x40,0x0, 0x4, 0x7e,0xf0,0xf0,0xac,0xfa,0x7e,0x1f,0x39,0xc6,0x2d,0x37,0x79, +0x41,0x2, 0x50,0x69,0x30,0x0, 0x6, 0x74,0xf0,0xa4,0x7e,0xf, 0x39,0xc6,0x2d,0x15, +0x79,0x30,0x2, 0x52,0xda,0x79,0x22,0xa9,0xd6,0xcb,0xc2,0x1d,0x69,0x30,0x0, 0x4, +0x7e,0x2f,0x33,0xfc,0x79,0x32,0x0, 0x4, 0x69,0x30,0x0, 0x6, 0x7e,0x2f,0x33,0xfc, +0x79,0x32,0x0, 0x6, 0x69,0x30,0x0, 0x8, 0x7e,0x2f,0x33,0xfc,0x79,0x32,0x0, 0x8, +0x7e,0xb, 0x70,0x7c,0x47,0x6c,0x55,0x29,0x70,0x0, 0x1, 0xa, 0x37,0x2d,0x32,0x7e, +0x2f,0x33,0xfc,0x79,0x32,0x0, 0xc, 0x29,0x70,0x0, 0x2, 0xa, 0x37,0x7e,0x2f,0x33, +0xfc,0x79,0x32,0x0, 0xe, 0x29,0xb0,0x0, 0x3, 0x54,0x1, 0xa, 0x5b,0x7c,0xab,0xe4, +0x7e,0x1f,0x33,0xfc,0x1b,0x1a,0x50,0x69,0x30,0x0, 0xa, 0x12,0xf, 0x45,0xa9,0xc6, +0xcb,0x22,0x69,0x30,0x0, 0xae,0x7e,0x2f,0x39,0x9b,0x79,0x32,0x0, 0x6, 0x29,0x50, +0x0, 0xa6,0xa, 0x55,0x7d,0x23,0x1e,0x24,0x9d,0x25,0x7e,0x2f,0x39,0x9b,0x79,0x22, +0x0, 0x18,0x7d,0x23,0x1e,0x24,0x1b,0x25,0x7e,0x2f,0x39,0x9b,0x79,0x22,0x0, 0x38, +0x69,0x20,0x0, 0xfd,0x1e,0x34,0x9d,0x32,0x9e,0x34,0x0, 0xa, 0x7e,0x2f,0x39,0x9b, +0x79,0x32,0x0, 0x26,0x29,0x70,0x0, 0xa7,0xa, 0x37,0x7e,0x2f,0x39,0x9b,0x79,0x32, +0x0, 0x1a,0x29,0x70,0x0, 0xb, 0xa, 0x27,0x29,0x70,0x0, 0x4, 0x2d,0x32,0x7e,0x2f, +0x39,0x9b,0x79,0x32,0x0, 0x8, 0x2, 0x9, 0xa1,0xca,0x3b,0xf5,0x24,0x7f,0x41,0x7f, +0x30,0xe5,0x25,0x7e,0x8, 0x0, 0x26,0x12,0x1, 0x20,0xe5,0x24,0xbe,0xb0,0x23,0x28, +0x3, 0x75,0x24,0x23,0x6c,0xaa,0x80,0x36,0xa, 0x3a,0x2d,0x39,0x7d,0x28,0x7e,0x1b, +0xb0,0xbe,0xb1,0x26,0x40,0xd, 0x74,0x23,0xa, 0x4a,0x7f,0x3, 0x2d,0x14,0x7a,0xb, +0xb0,0x80,0x19,0x7e,0x1b,0xb0,0xa, 0x3b,0x2e,0x35,0x28,0x7a,0x71,0x82,0x7a,0x61, +0x83,0xe4,0x93,0xa, 0x4a,0x7f,0x13,0x2d,0x34,0x7a,0x1b,0xb0,0xb, 0xa0,0xe5,0x24, +0xbc,0xba,0x38,0xc4,0xda,0x3b,0x22,0xa9,0xd6,0xcb,0x69,0x20,0x0, 0x4, 0x7e,0x2f, +0x33,0xfc,0x79,0x22,0x0, 0x4, 0x69,0x20,0x0, 0x8, 0x7e,0x2f,0x33,0xfc,0x79,0x22, +0x0, 0x8, 0x7e,0xb, 0x50,0xa, 0x55,0x7c,0xab,0xe4,0x29,0x50,0x0, 0x1, 0xa, 0x25, +0x2d,0x25,0x7e,0x2f,0x33,0xfc,0x79,0x22,0x0, 0xc, 0x29,0x50,0x0, 0x2, 0xa, 0x25, +0x7e,0xf, 0x33,0xfc,0x79,0x20,0x0, 0xe, 0x7e,0xf, 0x33,0xfc,0x79,0x30,0x0, 0xa, +0x6d,0x11,0x7e,0x1f,0x33,0xfc,0x1b,0x1a,0x10,0x7e,0x34,0x0, 0x40,0x12,0xf, 0x45, +0xa9,0xc6,0xcb,0x22,0x7c,0xab,0x7e,0x34,0x0, 0x1, 0x7e,0xf, 0x39,0xca,0x79,0x30, +0x0, 0xe, 0xc2,0x1c,0xe4,0x7a,0xb3,0x39,0xc5,0x5e,0xa0,0x3, 0xa, 0x1a,0x3e,0x14, +0x7e,0x1f,0x39,0x93,0x1b,0x1a,0x10,0x7e,0xf, 0x39,0x93,0x2e,0x14,0x0, 0x84,0xb, +0xa, 0x30,0x4e,0x70,0x20,0x1b,0xa, 0x30,0x74,0x1, 0x12,0x13,0x56,0x7e,0xf, 0x39, +0xca,0xb, 0xa, 0x30,0x4e,0x70,0xc, 0x1b,0xa, 0x30,0xa9,0xd3,0xcd,0x7e,0xf, 0x39, +0xca,0xb, 0x15,0xb, 0xa, 0x30,0x4e,0x70,0x1, 0x1b,0xa, 0x30,0x22,0x7f,0x10,0xa9, +0xd6,0xcb,0x69,0x11,0x0, 0x2, 0x7e,0x2f,0x33,0xfc,0x79,0x12,0x0, 0x4, 0x69,0x11, +0x0, 0x4, 0x7e,0x2f,0x33,0xfc,0x79,0x12,0x0, 0x6, 0x69,0x11,0x0, 0x6, 0x7e,0x2f, +0x33,0xfc,0x79,0x12,0x0, 0x8, 0x7e,0x1b,0x30,0xa, 0x3, 0x7e,0x14,0x1, 0x0, 0xad, +0x10,0x29,0x71,0x0, 0x1, 0xa, 0x37,0x2d,0x31,0x7e,0xf, 0x33,0xfc,0x79,0x30,0x0, +0xc, 0x6d,0x11,0x7e,0x1f,0x33,0xfc,0x1b,0x1a,0x10,0x7e,0x34,0x0, 0x60,0x12,0xf, +0x45,0xa9,0xc6,0xcb,0x22,0xa9,0xd7,0xcb,0x7d,0x23,0x4e,0x50,0x1, 0x7e,0xf, 0x33, +0xfc,0xb, 0xa, 0x30,0x4d,0x32,0x1b,0xa, 0x30,0x80,0x1e,0x7e,0xf, 0x33,0xfc,0xb, +0xa, 0x30,0x7d,0x23,0x5e,0x24,0x0, 0x8, 0xbe,0x24,0x0, 0x8, 0x78,0xb, 0xa9,0xd7, +0xcb,0x4e,0x70,0x4, 0x1b,0xa, 0x30,0xd2,0x1d,0x7e,0xf, 0x33,0xfc,0xb, 0xa, 0x30, +0x7d,0x23,0x5e,0x24,0x80,0x0, 0xbe,0x24,0x80,0x0, 0x78,0xcf,0x4e,0x60,0x40,0x1b, +0xa, 0x30,0x6d,0x11,0x7e,0x1f,0x33,0xfc,0x1b,0x1a,0x10,0x22,0xca,0x3b,0xf5,0x24, +0x7f,0x41,0x7f,0x30,0xe5,0x25,0x7e,0x8, 0x0, 0x26,0x12,0x1, 0x20,0x6c,0xaa,0x80, +0x36,0xa, 0x3a,0x2d,0x39,0x7d,0x28,0x7e,0x1b,0xb0,0xbe,0xb1,0x27,0x40,0xd, 0x74, +0x1c,0xa, 0x4a,0x7f,0x3, 0x2d,0x14,0x7a,0xb, 0xb0,0x80,0x19,0x7e,0x1b,0xb0,0xa, +0x3b,0x2e,0x35,0x2a,0x7a,0x71,0x82,0x7a,0x61,0x83,0xe4,0x93,0xa, 0x4a,0x7f,0x13, +0x2d,0x34,0x7a,0x1b,0xb0,0xb, 0xa0,0xe5,0x24,0xbc,0xba,0x38,0xc4,0xda,0x3b,0x22, +0x5, 0x63,0x31,0x20,0x18,0x13,0xf, 0xd, 0xc, 0xa, 0x9, 0x8, 0x7, 0x6, 0x5, 0x4, +0xca,0xf8,0x7d,0xe2,0x7d,0xd3,0x7c,0xfb,0xbe,0x30,0x1, 0x28,0x6, 0x7e,0xf4,0x0, +0x10,0x80,0xf, 0xbe,0x30,0x0, 0x28,0x6, 0x7e,0xf4,0x0, 0x8, 0x80,0x4, 0x7e,0xf4, +0x0, 0x4, 0x7d,0x1f,0x6d,0x0, 0x6d,0x33,0x7e,0x24,0x0, 0x10,0x12,0x15,0xc8,0x7f, +0x1, 0x7d,0x3d,0x6d,0x22,0x12,0x15,0x5b,0x7d,0x1e,0x12,0x15,0x75,0x74,0x4, 0xac, +0xbf,0x7e,0xf, 0x39,0x9b,0x2d,0x15,0x79,0x30,0x0, 0x82,0x79,0x20,0x0, 0x80,0xda, +0xf8,0x22,0xca,0x7b,0xca,0x6b,0xca,0x5b,0xca,0x4b,0xca,0x2b,0xca,0x1b,0xca,0xb, +0xc0,0xd0,0xc0,0x83,0xc0,0x82,0xd2,0x1c,0x7e,0xf, 0x39,0xca,0xb, 0xa, 0x30,0x7c, +0x57,0x7a,0x53,0x39,0xc5,0x4e,0x70,0xc, 0x1b,0xa, 0x30,0xc2,0xc6,0x6d,0x33,0x7e, +0xf, 0x39,0xca,0x79,0x30,0x0, 0xe, 0x12,0x12,0x9e,0x12,0x72,0x97,0xd0,0x82,0xd0, +0x83,0xd0,0xd0,0xda,0xb, 0xda,0x1b,0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda, +0x7b,0x32,0x74,0x3, 0x12,0x13,0x56,0xa9,0xd1,0xc4,0x7e,0xf, 0x39,0x93,0x2e,0x14, +0x0, 0x84,0xb, 0xa, 0x30,0x4e,0x70,0x20,0x1b,0xa, 0x30,0x7e,0x14,0x0, 0x1, 0x7e, +0x1f,0x39,0x93,0x1b,0x1a,0x10,0x7e,0xf, 0x39,0x9b,0xb, 0x16,0xb, 0xa, 0x30,0x4e, +0x70,0x1, 0x1b,0xa, 0x30,0xc2,0xf, 0xe4,0x7a,0xb3,0x39,0xab,0x7e,0x1f,0x39,0x93, +0xb, 0x1a,0x30,0x5e,0x34,0x0, 0x1, 0x78,0xf3,0x74,0x2, 0x2, 0x13,0x56,0x7c,0x6b, +0x6c,0xaa,0x80,0x17,0x7e,0x90,0x2, 0xac,0x9a,0x7e,0x7f,0x39,0xc6,0x2d,0xf4,0xb, +0x7a,0x20,0x7f,0x70,0x2d,0xf4,0x1b,0x7a,0x20,0xb, 0xa0,0xbc,0x7a,0x38,0xe5,0x6c, +0xaa,0x80,0x20,0x7e,0x50,0x2, 0xac,0x5a,0x7e,0x7f,0x39,0xc6,0x2d,0xf2,0x69,0x27, +0x0, 0x38,0xa, 0xf7,0xa, 0x4a,0x2d,0x4f,0x3e,0x44,0x7f,0x70,0x2d,0xf4,0x1b,0x7a, +0x20,0xb, 0xa0,0xbc,0x6a,0x38,0xdc,0x22,0xca,0x79,0x7c,0xab,0x5e,0xa0,0x3, 0x6c, +0x77,0x7e,0x50,0x2, 0xac,0x57,0x7f,0x60,0x2d,0xd2,0x29,0x66,0x0, 0x1, 0xa, 0xf6, +0x7d,0x4f,0x7c,0x89,0x6c,0x99,0x7d,0xf4,0x7e,0x6b,0x60,0xa, 0x46,0x2d,0x4f,0x7e, +0xf0,0xf0,0xac,0xfa,0x2d,0x27,0x7e,0x7f,0x39,0xc6,0x2d,0xf2,0x79,0x47,0x2, 0x54, +0xb, 0x70,0xbe,0x70,0xe, 0x40,0xca,0xda,0x79,0x22,0x29,0x50,0x0, 0xf5,0xac,0x5b, +0x7e,0xf, 0x39,0x9b,0x69,0x30,0x0, 0xc, 0xa, 0x56,0x3e,0x54,0xbe,0x24,0x2, 0x0, +0x40,0x4, 0x7e,0x24,0x1, 0xff,0xbd,0x25,0x28,0x1f,0x2e,0x14,0x0, 0xc, 0x6c,0x66, +0x1b,0xa, 0x30,0x1e,0x24,0x7c,0x45,0x6c,0x55,0x7e,0xf, 0x39,0x9b,0x2e,0x14,0x0, +0xc, 0xb, 0xa, 0x30,0x4d,0x32,0x1b,0xa, 0x30,0x22,0x7c,0x6b,0x6c,0xaa,0x7e,0x50, +0x28,0xac,0x57,0x7e,0x90,0x2, 0xac,0x9a,0x2d,0x42,0x7e,0x50,0xf0,0xac,0x56,0x2d, +0x24,0x7e,0x7f,0x39,0xc6,0x2d,0xf2,0x69,0x27,0x1, 0x8c,0x6c,0x44,0xa, 0x4a,0x7f, +0x60,0x2d,0xd4,0x7e,0x6b,0xb0,0x7c,0x8b,0x6c,0x99,0x4d,0x24,0x79,0x27,0x1, 0x8c, +0xb, 0xa0,0xbe,0xa0,0xe, 0x40,0xc7,0x22,0x7c,0x6b,0x6c,0xaa,0x7e,0x50,0x28,0xac, +0x57,0x7e,0x90,0x2, 0xac,0x9a,0x2d,0x42,0x7e,0x50,0xf0,0xac,0x56,0x2d,0x24,0x7e, +0x7f,0x39,0xc6,0x2d,0xf2,0x69,0x27,0x1, 0x8c,0x6c,0x55,0xa, 0x4a,0x7f,0x60,0x2d, +0xd4,0x7e,0x6b,0xb0,0xa, 0x4b,0x4d,0x24,0x79,0x27,0x1, 0x8c,0xb, 0xa0,0xbe,0xa0, +0xe, 0x40,0xc9,0x22,0xa9,0xd6,0xcb,0x54,0x3f,0x5e,0x70,0x1f,0x7c,0x2b,0x6c,0x33, +0x3e,0x14,0x3e,0x14,0x2e,0x14,0x0, 0x5, 0xa, 0x37,0x3e,0x34,0x3e,0x34,0x3e,0x34, +0x3e,0x34,0x3e,0x34,0x2d,0x31,0x7e,0xf, 0x33,0xfc,0x79,0x30,0x0, 0x2, 0x7e,0xf, +0x33,0xfc,0x79,0x20,0x0, 0x14,0xa9,0xc6,0xcb,0x22,0x7d,0x23,0x6c,0x66,0x7e,0x30, +0x2, 0xac,0x36,0x2e,0x14,0x17,0x4, 0x7a,0x31,0x82,0x7a,0x21,0x83,0xe4,0x93,0xa, +0x1b,0xbd,0x12,0x28,0x7, 0xb, 0x60,0xbe,0x60,0x14,0x40,0xe2,0x7e,0x70,0x2, 0xac, +0x67,0x2e,0x34,0x17,0x5, 0x7a,0x71,0x82,0x7a,0x61,0x83,0xe4,0x93,0x22,0x7e,0xf, +0x39,0x93,0x2e,0x14,0x0, 0x84,0xb, 0xa, 0x30,0x5e,0x70,0xdf,0x1b,0xa, 0x30,0x74, +0x3, 0x12,0x13,0x56,0x7e,0x14,0x0, 0x3, 0x7e,0x1f,0x39,0x93,0x1b,0x1a,0x10,0x7e, +0x1f,0x39,0x93,0xb, 0x1a,0x30,0x5e,0x34,0x0, 0x1, 0x78,0xf3,0xe4,0x2, 0x13,0x56, +0x2e,0x34,0x4, 0x0, 0x7e,0xf, 0x39,0x9b,0x79,0x30,0x0, 0x60,0x7e,0x34,0x4, 0x0, +0x9d,0x32,0x7e,0xf, 0x39,0x9b,0x79,0x30,0x0, 0x62,0x7e,0x34,0x0, 0x1, 0x7e,0xf, +0x39,0x9b,0x79,0x30,0x0, 0x64,0xa, 0x3b,0x7e,0xf, 0x39,0x9b,0x79,0x30,0x0, 0x66, +0x22,0x7c,0xa5,0xbe,0x34,0x0, 0x0, 0x28,0x10,0xa, 0x1b,0x3e,0x14,0x7d,0x23,0x7c, +0x45,0x6c,0x55,0x2d,0x21,0xa, 0x3a,0x80,0x8, 0xa, 0x2b,0x3e,0x24,0x7c,0x67,0x6c, +0x77,0x2d,0x32,0x7e,0xf, 0x39,0xca,0x79,0x30,0x0, 0x4, 0x22,0x7c,0xa7,0x7e,0x1f, +0x39,0x93,0x69,0x41,0x0, 0x8a,0x5e,0x44,0x10,0xf, 0xa, 0x1a,0x3e,0x14,0x3e,0x14, +0x3e,0x14,0x3e,0x14,0xa, 0x5b,0xc4,0x23,0x54,0xe0,0x7c,0xab,0xe4,0x2d,0x51,0x4d, +0x45,0x79,0x41,0x0, 0x8a,0x22,0x7e,0xf, 0x39,0x93,0x69,0x30,0x0, 0x84,0x5e,0x70, +0xe7,0x1b,0xb1,0x68,0xc, 0x14,0x68,0xc, 0xb, 0xb1,0x78,0x5, 0x4e,0x70,0x10,0x80, +0x3, 0x4e,0x70,0x8, 0x79,0x30,0x0, 0x84,0x22,0x7e,0x34,0x0, 0x1f,0x7e,0xf, 0x39, +0x9b,0x79,0x30,0x0, 0x4, 0xa9,0xd2,0xcd,0x7e,0xf, 0x39,0x9b,0xb, 0xa, 0x30,0x4e, +0x70,0x1, 0x1b,0xa, 0x30,0x22,0xbe,0xb0,0x0, 0x28,0xa, 0xa9,0xd7,0xca,0xa9,0xd3, +0xcb,0xa9,0xd2,0xcb,0x22,0xa9,0xc7,0xca,0xa9,0xc3,0xcb,0xa9,0xc2,0xcb,0x22,0x30, +0x1, 0xa, 0x54,0x3, 0xa, 0x3b,0x2e,0x34,0x2, 0x0, 0x80,0x2, 0x6d,0x33,0x7e,0xf, +0x39,0x9b,0x79,0x30,0x0, 0x3a,0x22,0x7e,0xf, 0x39,0x93,0x69,0x30,0x0, 0x8a,0x60, +0x5, 0x4e,0x60,0x10,0x80,0x3, 0x5e,0x60,0xef,0x79,0x30,0x0, 0x8a,0x22,0xbe,0xb0, +0x0, 0x28,0x9, 0xa9,0xd6,0xca,0xd2,0xcd,0xa9,0xd1,0xcb,0x22,0xa9,0xc6,0xca,0xc2, +0xcd,0xa9,0xc1,0xcb,0x22,0x7e,0x34,0x0, 0xf, 0x7e,0xf, 0x39,0x9b,0x79,0x30,0x0, +0x4, 0xc2,0xc3,0xd2,0xeb,0x22,0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, +0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0x10,0x11,0x12,0x13,0x14,0x1c,0x1d,0x1e,0x1f,0x20, +0x21,0x22,0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0x10,0x11, +0x12,0x13,0x14,0x15,0x16,0x17,0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0xe, +0xf, 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x0, 0x1, 0x2, 0x3, 0x4, 0x1c,0x1d,0x1e, +0x1f,0x20,0x0, 0x1, 0x2, 0x3, 0xe, 0xf, 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, +0x18,0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0x10,0x11, +0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x6, 0x5, 0x4, 0x3, 0x2, 0x1, +0x0, 0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x0, 0x0, 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, +0x7, 0x8, 0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, +0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0x10,0x11,0x12,0x13,0x14,0x15,0x16, +0x17,0x18,0x19,0x1a,0x1b,0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, +0xb, 0xc, 0xd, 0xe, 0xf, 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a, +0x1b,0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,0x0, 0x1, 0x1, 0x1, 0x10,0x1c,0x2, 0x10, +0x1c,0x0, 0x1, 0x1, 0x4, 0xf, 0x1c,0x0, 0x1, 0x1, 0x6, 0x1b,0xf, 0x7, 0xe, 0x1c, +0x8, 0x23,0x15,0x0, 0x1, 0x1, 0xa, 0x10,0x19,0xb, 0x14,0x1c,0xc, 0xf, 0x18,0x0, +0x1, 0x1, 0xe, 0x23,0x15,0xf, 0xd, 0x19,0x0, 0x1, 0x1, 0x11,0xd, 0x14,0x12,0x10, +0x19,0x13,0x1c,0x10,0x14,0x1a,0x10,0x15,0x10,0x19,0x16,0x23,0x1c,0x72,0x23,0x15, +0x73,0x23,0x1c,0x74,0x23,0x1c,0x75,0xe, 0x1c,0xc2,0xd5,0x7c,0xb4,0x30,0xe7,0x8, +0xb2,0xd5,0x6e,0x24,0xff,0xff,0xb, 0x24,0x7c,0xb6,0x30,0xe7,0x12,0xb2,0xd5,0x6e, +0x34,0xff,0xff,0xb, 0x34,0x8d,0x32,0x6e,0x24,0xff,0xff,0xb, 0x24,0x80,0x2, 0x8d, +0x32,0x30,0xd5,0x6, 0x6e,0x34,0xff,0xff,0xb, 0x34,0x22,0x7d,0x51,0xad,0x3, 0x7d, +0x2, 0x7d,0x21,0xad,0x5, 0x2d,0x12,0xad,0x35,0x2d,0x21,0x22,0x7d,0x2, 0xad,0x31, +0xad,0x10,0x2d,0x21,0x22,0x6d,0x0, 0x74,0x10,0x4d,0x0, 0x78,0xb, 0x4d,0x22,0x78, +0x27,0x8d,0x31,0x7d,0x12,0x6d,0x22,0x22,0x7d,0x43,0x7d,0x32,0x6d,0x22,0x2f,0x11, +0x2d,0x44,0x50,0x2, 0xa5,0xf, 0xbf,0x10,0x40,0x4, 0x9f,0x10,0xb, 0x90,0x14,0x78, +0xed,0x7f,0x1, 0x6d,0x22,0x7d,0x34,0x22,0x7d,0x41,0x7d,0x13,0x8d,0x24,0x7d,0x2, +0x2f,0x0, 0x40,0x4, 0xbd,0x4, 0x40,0x4, 0x9d,0x4, 0xb, 0x14,0x14,0x78,0xf1,0x7d, +0x23,0x7d,0x31,0x7d,0x10,0x6d,0x0, 0x22,0xc2,0xd5,0x7c,0xb0,0x30,0xe7,0x8, 0xb2, +0xd5,0x9f,0x22,0x9f,0x20,0x7f,0x2, 0x7c,0xb4,0x30,0xe7,0x13,0xb2,0xd5,0x9f,0x22, +0x9f,0x21,0x7f,0x12,0x12,0x15,0x77,0x9f,0x22,0x9f,0x20,0x7f,0x2, 0x80,0x3, 0x12, +0x15,0x77,0x30,0xd5,0x6, 0x9f,0x22,0x9f,0x21,0x7f,0x12,0x22,0x6c,0xaa,0x4d,0x11, +0x68,0x1a,0x1e,0x54,0x68,0xe, 0xb, 0x38,0x20,0x1b,0x18,0x20,0xb, 0x35,0xb, 0x15, +0x1b,0x54,0x78,0xf2,0x50,0x6, 0x7e,0x39,0x40,0x7a,0x19,0x40,0x22,0x6c,0xaa,0x4d, +0x11,0x68,0x1e,0x1e,0x54,0x50,0xc, 0x7e,0x1b,0x0, 0x7a,0x19,0x0, 0x68,0x12,0xb, +0x1c,0xb, 0x14,0xb, 0x1a,0x0, 0x1b,0x18,0x0, 0xb, 0x1d,0xb, 0x15,0x1b,0x54,0x78, +0xf2,0x22,0x75,0x84,0x1, 0x7e,0x44,0x3f,0xff,0xe4,0x7a,0x49,0xb0,0x1b,0x44,0x78, +0xf9,0x7e,0xf8,0x39,0xe4,0x75,0xc, 0x0, 0x75,0xd, 0x0, 0x75,0xe, 0x2, 0x75,0xf, +0x0, 0xc2,0x8, 0xc2,0x9, 0x75,0x1d,0x0, 0xc2,0x10,0xc2,0x11,0xc2,0x13,0x75,0x1e, +0x0, 0x75,0x1f,0x0, 0xc2,0xa, 0xc2,0xb, 0x75,0x5e,0x0, 0xc2,0x15,0x75,0x5f,0x0, +0xc2,0x17,0x75,0x60,0x0, 0xc2,0x18,0xc2,0x19,0xc2,0xc, 0x75,0x1b,0x0, 0x75,0x1c, +0x64,0xc2,0x1a,0xc2,0x1b,0x75,0x61,0x0, 0xd2,0x5, 0xd2,0x6, 0xd2,0x7, 0xd2,0x1c, +0xc2,0xe, 0xd2,0xf, 0x7e,0x4, 0x0, 0xff,0x7e,0x14,0x17,0x95,0xb, 0xa, 0x40,0x5d, +0x44,0x68,0x1a,0x69,0x20,0x0, 0x2, 0xb, 0xe, 0xb, 0x44,0x80,0xa, 0x7e,0xb, 0xb0, +0x7a,0x29,0xb0,0xb, 0x24,0xb, 0xc, 0x1b,0x44,0x78,0xf2,0x80,0xdf,0x2, 0x28,0xf, +0x0, 0x0, 0x0, 0x47,0x0, 0xcb,0x1, 0x0, 0x0, 0x10,0xfd,0xc7,0xfb,0x7e,0xfb,0xfb, +0x1, 0xbb,0xc, 0x9e,0x19,0x0, 0x21,0x45,0x0, 0xe, 0x1, 0xf, 0x2, 0x10,0x3, 0x11, +0x4, 0x12,0x5, 0x13,0x6, 0x14,0x7, 0x15,0x8, 0x16,0x9, 0x17,0xa, 0x18,0xb, 0x19, +0xc, 0x1a,0xd, 0x1b,0xdf,0x22,0xc3,0x21,0xa9,0x20,0x94,0x1f,0x81,0x1e,0x70,0x1d, +0x62,0x1c,0x55,0x1b,0x4a,0x1a,0x41,0x19,0x38,0x18,0x31,0x17,0x2b,0x16,0x25,0x15, +0x21,0x14,0x1c,0x13,0x19,0x12,0x16,0x11,0x13,0x10,0x11,0xf, 0x10,0xe, 0xca,0xf8, +0x7f,0x20,0x80,0xa, 0x7e,0x1b,0xf0,0x7a,0x2b,0xf0,0xb, 0x34,0xb, 0x54,0x69,0xff, +0xff,0xfc,0x7d,0xef,0x1b,0xe4,0x79,0xef,0xff,0xfc,0x4d,0xff,0x78,0xe6,0x7f,0x10, +0xda,0xf8,0x22,0x7d,0x43,0x7f,0x10,0x80,0x7, 0x1b,0x44,0x7a,0xb, 0xb0,0xb, 0x14, +0x4d,0x44,0x78,0xf5,0x22,0x32,0x1, 0x19,0x1, 0x0, 0x2, 0xf8,0x4, 0xe7,0x5, 0xce, +0x6, 0xc2,0x7, 0xb5,0x8, 0xff,0x0, 0x1, 0x2, 0x0, 0xff,0x1, 0x2, 0x0, 0x1, 0xff, +0x2, 0x0, 0x1, 0x2, 0xff,0x7d,0x23,0xbe,0x24,0x0, 0x0, 0x48,0x3, 0x7d,0x32,0x22, +0x6d,0x33,0x9d,0x32,0x22,0x0, 0x4, 0x34,0x8c,0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x34, +0x4f,0x1, 0x0, 0x1, 0x25,0xf6,0x1, 0x0, 0x1, 0x38,0xb3,0x0, 0x0, 0x2, 0x39,0x5, +0x0, 0x0, 0x0, 0x2, 0x39,0x7, 0x0, 0x0, 0x0, 0x1, 0x39,0x9, 0x0, 0x0, 0x1, 0x37, +0xe7,0xff,0x0, 0x1, 0x39,0xe1,0x0, 0x0, 0x1, 0x39,0xe2,0x0, 0x0, 0x2, 0x35,0xa8, +0x0, 0x0, 0x0, 0x1, 0x35,0xcb,0x0, 0x0, 0x1, 0x36,0x44,0x0, 0x0, 0x1, 0x36,0x45, +0x0, 0x0, 0x1, 0x36,0x46,0x0, 0x0, 0x3c,0x36,0xef,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x37,0x67,0x0, 0x0, 0x1, 0x37,0x68,0x0, +0x0, 0x1, 0x37,0x69,0x0, 0x0, 0x1, 0x36,0xe8,0x1, 0x0, 0x2, 0x36,0xeb,0x0, 0x0, +0x0, 0x1, 0x2f,0xc8,0x0, 0x0, 0x1, 0x2f,0xc9,0x0, 0x0, 0x1, 0x2f,0xca,0x0, 0x0, +0x1, 0x2f,0xcb,0x0, 0x0, 0x1, 0x37,0x6c,0x1, 0x0, 0x1, 0x37,0xe6,0x0, 0x0, 0x1, +0x39,0xe3,0x0, 0x0, 0x6, 0x39,0xce,0x30,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x39, +0xda,0x0, 0x0, 0x1, 0x39,0xdb,0x0, 0x0, 0x1, 0x39,0xdc,0x0, 0x0, 0x1, 0x39,0xdd, +0x0, 0x0, 0x1, 0x39,0xde,0x0, 0x0, 0x1, 0x0, 0x62,0x0, 0x0, 0x1, 0x3, 0xff,0x0, +0x0, 0x1, 0x31,0xed,0x0, 0x0, 0x2, 0x32,0xe, 0x0, 0x0, 0x0, 0x1, 0x32,0x4c,0x0, +0x0, 0x4, 0x38,0x58,0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x39,0xd4,0x0, 0x0, 0x1, 0x39, +0xd5,0x0, 0x0, 0x2, 0x39,0xd6,0x0, 0x0, 0x0, 0x1, 0x39,0xd8,0x64,0x0, 0x1, 0x39, +0xd9,0x0, 0x0, 0x1, 0x39,0xe4,0x0, 0x0, 0x1, 0x39,0xdf,0x0, 0x0, 0x1, 0x39,0xe0, +0x0, 0x0, 0x1, 0x39,0xb0,0x0, 0x0, 0x2, 0x2b,0xd8,0x2b,0xde,0x0, 0x1, 0x2f,0x9e, +0x2, 0x0, 0x1, 0x2f,0xc7,0x0, 0x0, 0x4, 0x39,0xc6,0x0, 0x0, 0x50,0x0, 0x0, 0x4, +0x39,0xca,0x0, 0x0, 0x64,0x0, 0x0, 0x4, 0x39,0x93,0x0, 0x0, 0x6c,0x0, 0x0, 0x4, +0x39,0x97,0x0, 0x0, 0x68,0xc0,0x0, 0x4, 0x39,0x9b,0x0, 0x0, 0x68,0x0, 0x0, 0x4, +0x39,0xac,0x0, 0x0, 0x40,0x0, 0x0, 0x4, 0x33,0xfc,0x0, 0x0, 0x60,0x0, 0x0, 0x0, +0x3, 0x20,0x0, 0xc, 0x1, 0xf4,0x2, 0x58,0x0, 0xc, 0x1, 0x5e,0x1, 0xc2,0x0, 0xa, +0x0, 0xc8,0x1, 0x40,0x0, 0x5, 0x0, 0x78,0x0, 0xc8,0x0, 0x4, 0x0, 0x3c,0x0, 0x78, +0x0, 0x3, 0x0, 0xa, 0x0, 0x3c,0x0, 0x2, 0x0, 0x0, 0x0, 0xe, 0x1c,0x23,0x5, 0xdc, +0x0, 0x32,0x3, 0xe8,0x0, 0x28,0x0, 0x0, 0x0, 0x1e,0x12,0x27,0x6, 0x12,0x19,0xda, +0x12,0x19,0xa5,0x12,0x1a,0x7f,0x2, 0x19,0x69,0x12,0x19,0x7a,0x7e,0xb3,0x2b,0x2e, +0x12,0x97,0x34,0x74,0x1, 0x7a,0xb3,0x37,0x70,0x22,0x12,0x98,0xad,0x74,0x1, 0x7a, +0xb3,0x37,0x6c,0x22,0x12,0x1a,0x11,0x12,0x3f,0x81,0x12,0x28,0x31,0x12,0x27,0x6, +0x12,0x1a,0x11,0x12,0x19,0xda,0x12,0x38,0x39,0x12,0x19,0xa5,0x12,0x1a,0x7f,0x12, +0x1a,0xaf,0x2, 0x19,0x69,0x12,0x28,0x7a,0x12,0x19,0xf7,0x2, 0x19,0xae,0x7e,0x34, +0x0, 0x3, 0x6d,0x22,0x2, 0x19,0xb7,0x7d,0x43,0x7e,0xa3,0x34,0x38,0xbe,0xa0,0x5, +0x50,0x16,0x7e,0x70,0x4, 0xac,0x7a,0x59,0x43,0x34,0x3b,0x59,0x23,0x34,0x3d,0x7c, +0xba,0x4, 0x7a,0xb3,0x34,0x38,0xc3,0x22,0xd3,0x22,0x12,0x68,0xb1,0x12,0x6c,0x4b, +0x2, 0x19,0xe3,0x30,0x13,0x10,0x12,0x27,0xfe,0x50,0x3, 0x12,0x23,0x59,0x12,0x6a, +0x80,0x12,0x6c,0xc6,0xc2,0x13,0x22,0x6d,0x33,0x7e,0x24,0x6, 0xfc,0x12,0x19,0xb7, +0x7e,0x34,0x0, 0x1, 0x7e,0x24,0x7, 0x7a,0x2, 0x19,0xb7,0x74,0x1, 0x7a,0xb3,0x38, +0xb8,0x7e,0x34,0xd, 0xac,0x6d,0x22,0x7a,0x27,0x33,0xeb,0x7a,0x37,0x33,0xed,0x22, +0xca,0xf8,0x7e,0xf3,0x38,0xb8,0xbe,0xf0,0x5, 0x78,0xb, 0x74,0x1, 0x7a,0xb3,0x38, +0xb8,0x12,0x0, 0xa, 0x80,0x40,0xbe,0xf0,0x4, 0x78,0xd, 0x12,0x1a,0xb, 0xe4,0x7a, +0xb3,0x2b,0x21,0x12,0x68,0xb1,0x80,0x2e,0xbe,0xf0,0x6, 0x78,0x13,0x12,0x1a,0xb, +0x12,0x22,0x83,0xe4,0x7a,0xb3,0x2b,0x3d,0x12,0x6c,0x4b,0x12,0xb0,0xe, 0x80,0x16, +0xbe,0xf0,0x7, 0x78,0x17,0x12,0x1a,0xb, 0x12,0x6c,0x71,0x50,0xfb,0x12,0x6f,0xe3, +0x12,0x19,0xe3,0x12,0x1a,0x7f,0x74,0x2, 0x7a,0xb3,0x38,0xb8,0xda,0xf8,0x22,0xe4, +0x7a,0xb3,0x34,0x3a,0x7a,0xb3,0x34,0x39,0x12,0x67,0x97,0xb4,0x1, 0x4, 0x74,0x1, +0x80,0x2, 0x74,0x3, 0x7a,0xb3,0x34,0x3a,0x22,0x12,0x38,0x39,0x12,0xaf,0x4d,0x7a, +0x37,0x39,0xd6,0x12,0x1a,0x11,0x12,0x19,0xda,0x12,0x1a,0x7f,0x2, 0x1a,0xaf,0x12, +0x8c,0x4c,0x50,0x4, 0x74,0x19,0x80,0x2, 0x74,0x3, 0x7a,0xb3,0x35,0x92,0xe4,0x7a, +0xb3,0x35,0x93,0x22,0xca,0x3b,0x12,0x6c,0x71,0x50,0xfb,0x7e,0xf3,0x2b,0x2e,0x7c, +0xbf,0x12,0x6e,0xd6,0x12,0x90,0xc3,0x7e,0xb3,0x2b,0x3e,0xf5,0x28,0x7e,0xc3,0x2b, +0x3f,0x7e,0xb3,0x38,0xf, 0xb4,0x1, 0xf, 0x12,0x20,0xc9,0x7e,0xb3,0x16,0x91,0x70, +0x6, 0x12,0x1a,0x7f,0xc3,0x61,0xc0,0x12,0x1b,0xc3,0x3e,0x34,0xca,0x39,0x7e,0x18, +0x6, 0xfc,0x7e,0x8, 0x4, 0x7e,0x12,0x17,0x2e,0x1b,0xfd,0x12,0x1b,0xc3,0x3e,0x34, +0xca,0x39,0x7e,0x18,0x7, 0x7a,0x7e,0x8, 0x4, 0x0, 0x12,0x17,0x2e,0x1b,0xfd,0x7e, +0xb3,0x38,0xf, 0xb4,0x3, 0x7, 0x12,0x8f,0xeb,0x7a,0x37,0x38,0xfb,0x74,0x1, 0x7a, +0xb3,0x16,0x90,0x12,0x19,0xda,0x12,0x8f,0xdc,0x12,0x21,0x4b,0xe4,0x12,0x13,0xde, +0x12,0x1a,0x7f,0x7e,0x8, 0x4, 0x7e,0x7a,0xd, 0x29,0x7e,0x18,0x6, 0x76,0x7e,0xb3, +0x2b,0x91,0x12,0x69,0x7b,0x7e,0x8, 0x4, 0x0, 0x7a,0xd, 0x29,0x7e,0x18,0x5, 0xf8, +0x7e,0xb3,0x25,0xf0,0x12,0x69,0x7b,0x7e,0xd3,0x2b,0x3e,0x7e,0xe3,0x2b,0x3f,0xe5, +0x28,0x7a,0xb3,0x2b,0x3e,0x7a,0xc3,0x2b,0x3f,0x7e,0x34,0x8, 0xa, 0x7e,0x4, 0xd, +0xc8,0x7d,0x20,0x7d,0x10,0x12,0x6b,0x4, 0x7a,0xd3,0x2b,0x3e,0x7a,0xe3,0x2b,0x3f, +0x7c,0xbf,0x12,0x6e,0x5a,0x12,0x8f,0x8a,0x7e,0xb3,0x39,0xd9,0x4, 0x7a,0xb3,0x39, +0xd9,0x7e,0x73,0x39,0xd9,0xbe,0x70,0xfa,0x28,0x6, 0x74,0x64,0x7a,0xb3,0x39,0xd9, +0x7e,0xb3,0x16,0x90,0x60,0x9, 0x7e,0xb3,0x16,0x91,0x60,0x3, 0xd3,0x80,0x1, 0xc3, +0xda,0x3b,0x22,0x7e,0x73,0x2a,0x93,0xa, 0x27,0x7e,0x73,0x2a,0x92,0xa, 0x37,0x2d, +0x32,0x22,0x12,0x37,0xfe,0x7e,0xb3,0x38,0xf, 0xb4,0x3, 0x6c,0x12,0xa5,0x9a,0x12, +0x3f,0xcf,0x12,0x1e,0xaf,0x7e,0xb3,0x38,0xb4,0x30,0xe7,0xe9,0x12,0x1a,0xc4,0x12, +0x1b,0xc3,0x3e,0x34,0xca,0x39,0x7e,0x18,0x4, 0x0, 0x7e,0x8, 0x4, 0xfc,0x12,0x17, +0x2e,0x1b,0xfd,0x12,0x1b,0xc3,0x3e,0x34,0xca,0x39,0x7e,0x18,0x4, 0x7e,0x7e,0x8, +0x5, 0x7a,0x12,0x17,0x2e,0x1b,0xfd,0x7e,0xb3,0x2b,0x3c,0xb4,0x1, 0x18,0x12,0x5d, +0xa8,0x12,0x5b,0x2b,0x12,0x51,0x88,0x12,0x5f,0xb7,0x12,0x7b,0xd8,0x12,0x2f,0x9e, +0x12,0x1c,0x59,0x12,0x3f,0xfa,0x12,0x38,0x44,0x12,0x32,0x6e,0x7e,0xb3,0x38,0xb4, +0x54,0x7f,0x7a,0xb3,0x38,0xb4,0x80,0x8d,0x12,0x6f,0xc3,0x2, 0x1c,0x4e,0x7e,0xb3, +0x38,0x56,0x70,0x4, 0xe4,0x12,0x7b,0xbe,0x22,0x12,0x55,0x30,0x12,0x1e,0x4d,0x12, +0x1e,0x4d,0x12,0x7f,0xb2,0x12,0x78,0x5f,0x12,0x8d,0xa, 0x12,0x1e,0x4d,0x12,0x9c, +0x48,0x12,0x1e,0x4d,0x12,0x8d,0xbf,0x12,0x1e,0x4d,0x2, 0x1c,0x7d,0xca,0x3b,0x75, +0x24,0x0, 0x6c,0xcc,0x6c,0xdd,0x7e,0xc4,0x0, 0x3c,0xca,0xc9,0x7e,0x18,0x37,0x2b, +0x7e,0x8, 0x36,0xef,0x12,0x17,0x2e,0x1b,0xfd,0x7e,0xf3,0x28,0x84,0xa, 0xcf,0x3e, +0xc4,0xca,0xc9,0x7e,0x18,0x26,0xfa,0x7e,0x8, 0x1f,0x34,0x12,0x17,0x2e,0x1b,0xfd, +0x6c,0x88,0x6c,0xee,0xa1,0x51,0x7e,0xc4,0x3, 0xff,0x7e,0xc0,0xff,0x6c,0x99,0x80, +0x4c,0x74,0x2, 0xac,0xb9,0x9, 0xb5,0x1f,0x34,0xbe,0xb0,0xff,0x68,0x3d,0x7c,0xb9, +0x12,0x1e,0x96,0x60,0x36,0x74,0x2, 0xac,0xb9,0x9, 0x75,0x1f,0x35,0xa, 0x27,0x74, +0x2, 0xac,0xbe,0x9, 0x75,0x37,0x2c,0x12,0x1e,0x8f,0x7d,0x13,0x74,0x2, 0xac,0xb9, +0x9, 0x75,0x1f,0x34,0xa, 0x27,0x74,0x2, 0xac,0xbe,0x9, 0x75,0x37,0x2b,0x12,0x1e, +0x8f,0x2d,0x13,0xbd,0xc1,0x28,0x4, 0x7d,0xc1,0x7c,0xc9,0xb, 0x90,0xbc,0xf9,0x38, +0xb0,0xbe,0xc0,0xff,0x68,0x39,0x7e,0x70,0x2, 0xac,0x7c,0x9, 0xb3,0x1f,0x34,0x9, +0x73,0x1f,0x35,0x12,0x2c,0xb9,0xbe,0x37,0x2a,0x79,0x48,0x23,0x7e,0x70,0x2, 0xac, +0x7c,0x9, 0x53,0x1f,0x34,0x74,0x2, 0xac,0xbd,0x19,0x55,0x1f,0x70,0x9, 0x53,0x1f, +0x35,0x19,0x55,0x1f,0x71,0x74,0xff,0x19,0xb3,0x1f,0x34,0xb, 0x80,0xb, 0xd0,0xb, +0xe0,0x7e,0x73,0x36,0xee,0xbc,0x7e,0x28,0x2, 0x81,0xb6,0x7c,0xe8,0x80,0x6d,0x6d, +0xdd,0x7e,0x80,0xff,0x6c,0x99,0x80,0x3c,0x7c,0xb9,0x12,0x1e,0x96,0x60,0x33,0x12, +0xaf,0xd6,0xbe,0xb0,0xff,0x68,0x2b,0x9, 0x73,0x1f,0x35,0x12,0x4c,0x21,0x7f,0x71, +0xb, 0x7a,0x50,0xbe,0x54,0x0, 0x0, 0x58,0x5, 0x6d,0x55,0x1b,0x7a,0x50,0xb, 0x7a, +0xc0,0xbd,0xcd,0x8, 0xd, 0x12,0xaf,0xd6,0xf5,0x24,0x9, 0xc3,0x1f,0x35,0x7d,0xdc, +0x7c,0x89,0xb, 0x90,0xbc,0xf9,0x38,0xc0,0xbe,0x80,0xff,0x68,0x1d,0x7e,0x71,0x24, +0x74,0x2, 0xac,0xbd,0x19,0x75,0x1f,0x70,0x19,0xc5,0x1f,0x71,0x7e,0xa0,0xff,0x7e, +0x70,0x2, 0xac,0x78,0x19,0xa3,0x1f,0x34,0xb, 0xd0,0xb, 0xe0,0xbe,0xe0,0xa, 0x40, +0x8e,0x90,0x60,0x9a,0xe4,0x93,0x7c,0xab,0x74,0x2, 0xa4,0xca,0x59,0x7e,0x18,0x1f, +0x70,0x7e,0x8, 0x1f,0x34,0x12,0x17,0x2e,0x1b,0xfd,0x7c,0xfd,0x7e,0x8, 0x37,0x2b, +0x7e,0x34,0x0, 0x14,0x74,0xff,0x12,0x17,0x53,0xbe,0xf0,0x0, 0x28,0x35,0xa, 0x3f, +0x3e,0x34,0xca,0x39,0x7e,0x18,0x1f,0x34,0x7e,0x8, 0x26,0xfa,0x12,0x17,0x2e,0x1b, +0xfd,0xa, 0x3f,0x3e,0x34,0xca,0x39,0x7e,0x18,0x1f,0x34,0x7e,0x8, 0x37,0x2b,0x12, +0x17,0x2e,0x1b,0xfd,0x6c,0xee,0x80,0x7, 0x7c,0xbe,0x12,0x54,0xca,0xb, 0xe0,0xbc, +0xfe,0x38,0xf5,0x7a,0xf3,0x36,0xee,0x7a,0xf3,0x28,0x84,0x7e,0x73,0x28,0x84,0xbe, +0x70,0xa, 0x28,0x6, 0x74,0xa, 0x7a,0xb3,0x28,0x84,0xda,0x3b,0x22,0xca,0x79,0x6c, +0xff,0x6c,0xee,0x80,0x2e,0x7c,0xbe,0x12,0x1e,0x96,0x60,0x25,0x7e,0x34,0x0, 0x2, +0xca,0x39,0xac,0x7e,0x2e,0x34,0x26,0xfa,0x6d,0x22,0x7e,0x30,0x2, 0xac,0x3f,0x2e, +0x14,0x26,0xfa,0x6d,0x0, 0x12,0x17,0x2e,0x1b,0xfd,0x7c,0xbf,0x12,0x54,0xca,0xb, +0xf0,0xb, 0xe0,0x12,0x7d,0xfd,0x38,0xcd,0x7a,0xf3,0x28,0x84,0xda,0x79,0x22,0xa, +0x37,0x9d,0x32,0x2, 0x17,0x85,0x7c,0x7b,0x12,0x53,0x37,0x9, 0xa2,0x27,0x72,0x7c, +0xb7,0x54,0x7, 0xa, 0x3b,0x2e,0x34,0x0, 0x5e,0x12,0x6e,0x51,0x5c,0xba,0x22,0x30, +0x8, 0x3b,0xc2,0x8, 0x12,0x1a,0x20,0x7e,0x73,0x38,0xb9,0x7a,0x73,0x2a,0x6c,0x7e, +0x73,0x38,0xba,0x7a,0x73,0x2b,0x3c,0x7e,0x73,0x38,0xba,0x7a,0x73,0x2b,0x20,0x7e, +0xb3,0x38,0xbb,0x60,0x18,0x7e,0x34,0x0, 0x2, 0x12,0x38,0x84,0x7e,0x34,0x0, 0x1, +0x12,0x38,0x84,0x6d,0x33,0x12,0x38,0x84,0xe4,0x7a,0xb3,0x38,0xbb,0x12,0x36,0x25, +0x2, 0x1e,0xf3,0xe5,0xc, 0x70,0x3, 0x2, 0x20,0x16,0xe5,0xc, 0x30,0xe0,0x10,0x53, +0xc, 0xfe,0x12,0x98,0xe, 0x12,0x64,0x10,0x7e,0x8, 0x2a,0x8c,0x12,0x9, 0xa1,0xe5, +0xc, 0x30,0xe1,0x6, 0x53,0xc, 0xfd,0x12,0xa9,0x6, 0xe5,0xc, 0x30,0xe2,0x32,0x53, +0xc, 0xfb,0x7e,0xb3,0x2b,0x31,0x60,0x9, 0x7e,0x8, 0x2a,0x8c,0x12,0x6, 0xba,0x80, +0xb, 0x7e,0xb3,0x2b,0x84,0x7e,0x73,0x2b,0x83,0x12,0xb, 0xad,0x7e,0x73,0x2b,0x31, +0x2e,0x70,0xff,0x92,0x1, 0x90,0x60,0x51,0xe4,0x93,0x9e,0xb3,0x2a,0x96,0x12,0xb, +0x1e,0xe5,0xc, 0x30,0xe3,0x4a,0x53,0xc, 0xf7,0x7e,0x73,0x38,0xe6,0x7a,0x73,0x2b, +0x2e,0x12,0x6e,0xb4,0x7a,0xb3,0x0, 0x62,0xbe,0xb0,0xff,0x68,0xb, 0x43,0xc, 0x20, +0x7e,0x73,0x0, 0x62,0x7a,0x73,0x38,0xbe,0x12,0x21,0x43,0x12,0x27,0xf0,0x7e,0x73, +0x38,0xe7,0xbe,0x73,0x2b,0x81,0x68,0x6, 0x7a,0x73,0x2b,0x81,0xd2,0x10,0x30,0x10, +0x9, 0xc2,0x10,0x12,0x27,0xe0,0xe4,0x12,0xa, 0x66,0x12,0x19,0x7a,0x12,0x97,0x30, +0xe5,0xc, 0x30,0xe4,0xf, 0x53,0xc, 0xef,0x7e,0x43,0x38,0xe8,0x7e,0x50,0xa, 0xac, +0x45,0x12,0x27,0xf7,0xe5,0xc, 0x30,0xe6,0x4e,0x53,0xc, 0xbf,0x7e,0x73,0x38,0xd4, +0xbe,0x70,0x7, 0x28,0x6, 0x74,0x7, 0x7a,0xb3,0x38,0xd4,0xa9,0xd5,0xcb,0x74,0xe, +0x12,0x7, 0xfb,0x7c,0x7b,0x5e,0x70,0xf, 0x7e,0x63,0x38,0xd4,0xa, 0x26,0x2e,0x24, +0x0, 0x3, 0x12,0x43,0xe2,0x7c,0x65,0x4c,0x76,0x74,0xe, 0x12,0x3a,0x6a,0x12,0x7, +0xfb,0x12,0x3a,0xb5,0x7e,0x73,0x38,0xd7,0x7a,0x73,0x2b,0x33,0x7e,0x73,0x38,0xd6, +0x7a,0x73,0x2b,0x3e,0x12,0xb0,0xe, 0xe5,0xc, 0x30,0xe5,0xa, 0x53,0xc, 0xdf,0x7e, +0xb3,0x38,0xbe,0x2, 0x20,0x17,0x22,0xca,0xd8,0xca,0x79,0x7c,0xdb,0x7e,0xa0,0x4, +0xbe,0xd0,0x80,0x78,0x18,0x7e,0xe0,0xff,0x6c,0xff,0x80,0xb, 0x12,0x20,0x7f,0x38, +0x4, 0x7c,0xeb,0x7c,0xdf,0xb, 0xf0,0xbc,0xaf,0x38,0xf1,0x80,0x1a,0xbe,0xd0,0x81, +0x78,0x15,0x6c,0xee,0x6c,0xff,0x80,0xb, 0x12,0x20,0x7f,0x40,0x4, 0x7c,0xeb,0x7c, +0xdf,0xb, 0xf0,0xbc,0xaf,0x38,0xf1,0xbc,0xad,0x38,0x2, 0x6c,0xdd,0x7c,0xbd,0x12, +0x20,0x8b,0x12,0x22,0xd4,0x12,0x27,0x5e,0x12,0x22,0x7a,0x7e,0x73,0x2b,0x2e,0x7a, +0x73,0x38,0xe6,0x12,0x38,0x27,0x7a,0xd3,0x38,0xbe,0xda,0x79,0xda,0xd8,0x22,0x7e, +0x90,0x5, 0xac,0x9f,0x9, 0xb4,0x26,0x33,0xbc,0xbe,0x22,0xca,0xf8,0x7c,0xfb,0x74, +0x5, 0xac,0xbf,0x12,0x27,0x67,0x12,0x27,0x55,0x12,0x27,0x43,0x12,0x27,0x4c,0x7a, +0xf3,0x0, 0x62,0x7c,0xbf,0x12,0x9b,0x97,0x12,0x21,0x43,0x74,0x5, 0xac,0xbf,0x9, +0xb5,0x26,0x37,0x12,0x98,0xdf,0x12,0x19,0x6c,0xe4,0x7a,0xb3,0x16,0x91,0x7a,0xb3, +0x37,0xe2,0x7a,0xb3,0x16,0x92,0xda,0xf8,0x22,0x7e,0xb3,0x37,0x6c,0x60,0x6, 0x14, +0x7a,0xb3,0x37,0x6c,0x22,0x12,0x97,0xd2,0x7e,0xb3,0x37,0xf3,0x70,0xe, 0x7e,0xb3, +0x39,0xe3,0xb4,0x1, 0x7, 0xe4,0x12,0x20,0x8b,0x12,0x95,0xf6,0x12,0x21,0x3, 0x12, +0x94,0x51,0x7e,0xa3,0x37,0xf3,0x7a,0xa3,0x39,0xe3,0xbe,0xb0,0xff,0x68,0x3, 0x2, +0x20,0x8b,0x22,0x12,0x93,0xc2,0x2, 0x21,0x9, 0x7e,0xb3,0x37,0x6f,0x60,0xf, 0x74, +0x1, 0x7a,0xb3,0x37,0x77,0x7e,0xb3,0x37,0xe5,0x70,0x3, 0x12,0x96,0x67,0x7e,0xb3, +0x37,0x77,0xb4,0x1, 0xc, 0x74,0x3, 0x7a,0xb3,0x35,0xb6,0x7e,0x34,0x14,0x0, 0x80, +0x9, 0xe4,0x7a,0xb3,0x35,0xb6,0x7e,0x34,0xa, 0x0, 0x7a,0x37,0x2a,0x81,0x22,0x7a, +0xb3,0x2b,0x2e,0x12,0x21,0xa5,0x7a,0x37,0x2b,0x3a,0x22,0x7e,0xa3,0x0, 0x62,0xbe, +0xa0,0xff,0x68,0x48,0xbe,0xa3,0x3, 0xff,0x68,0x42,0x74,0x5, 0xa4,0x12,0x27,0x67, +0x12,0x21,0x9d,0x12,0x27,0x55,0x12,0x21,0x9d,0x12,0x27,0x4c,0x12,0x27,0xfe,0x50, +0x9, 0x7e,0xb3,0x0, 0x62,0x12,0x9b,0x97,0x80,0x6, 0x12,0x21,0x9d,0x12,0x27,0x43, +0x12,0x21,0x43,0x12,0x27,0x3c,0x7e,0x73,0x2b,0x33,0xa, 0x37,0x7e,0xf, 0x39,0x9b, +0x79,0x30,0x0, 0x1a,0x7e,0x73,0x0, 0x62,0x7a,0x73,0x3, 0xff,0x22,0x7e,0xa3,0x0, +0x62,0x74,0x5, 0xa4,0x22,0x7e,0x23,0x2b,0x2e,0x7e,0x33,0x38,0xe5,0xac,0x23,0x2e, +0x14,0x1, 0xf4,0xbe,0x14,0x0, 0xa, 0x50,0x4, 0x7e,0x14,0x0, 0xa, 0x7e,0x63,0x2b, +0x2f,0xbe,0x14,0xf, 0x3c,0x40,0x4, 0x7e,0x14,0xf, 0x3c,0xbe,0x14,0x7, 0x8, 0x40, +0x3, 0xe4,0x80,0x2, 0x74,0x1, 0x7a,0xb3,0x2b,0x2f,0x7e,0x73,0x2b,0x2f,0xbc,0x76, +0x68,0x2, 0xd2,0x10,0x7e,0x24,0x1, 0xf4,0x7d,0x31,0x8d,0x32,0x7c,0x17,0xbe,0x10, +0x7, 0x28,0x3, 0x7e,0x10,0x7, 0x7e,0x1f,0x39,0x93,0x69,0x51,0x0, 0x86,0x54,0x1f, +0xa, 0x1, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x2d,0x5, 0x79,0x1, +0x0, 0x86,0x6d,0x0, 0x7e,0x34,0xb8,0x0, 0x7e,0x24,0x0, 0xb, 0x2, 0x15,0xc8,0x12, +0x21,0x3f,0x30,0x10,0xc, 0xc2,0x10,0x12,0x27,0xe0,0x30,0x0, 0x4, 0xe4,0x12,0xa, +0x66,0x30,0x0, 0x9, 0x12,0x98,0xad,0x12,0x97,0x30,0x2, 0x7e,0xc, 0x22,0x7e,0xb, +0x70,0x7a,0x73,0x2b,0x2e,0x29,0x70,0x0, 0x4, 0x7a,0x73,0x2b,0x81,0x29,0x70,0x0, +0x1, 0x7a,0x73,0x2b,0x33,0x29,0x70,0x0, 0x3, 0x7a,0x73,0x2b,0x3f,0x12,0x21,0x43, +0x12,0x27,0x3c,0xd2,0x0, 0xc2,0x1, 0x2, 0x22,0x6a,0x30,0x0, 0x3, 0x12,0x22,0xd4, +0xa2,0x1, 0x92,0x2, 0x12,0x82,0x93,0x2, 0x22,0x7a,0x7e,0x73,0x2b,0x3f,0x7a,0x73, +0x38,0xd5,0x22,0x74,0x40,0x7a,0xb3,0x2b,0x3f,0x12,0x27,0xfe,0x50,0x9, 0xd2,0x0, +0xd2,0x1, 0x12,0x22,0x6a,0x80,0x1c,0x74,0x1, 0x12,0x22,0xdd,0x7e,0x43,0x38,0xd3, +0x7e,0x50,0x64,0xac,0x45,0x12,0x80,0x89,0x7a,0xb3,0x2b,0x3e,0x7e,0xf, 0x39,0xac, +0x12,0x27,0x70,0x12,0x22,0x7a,0x12,0x27,0x5e,0x2, 0x22,0xd4,0x7e,0x73,0x2b,0x2e, +0x7a,0x73,0x38,0xe6,0x7e,0x73,0x2b,0x3e,0x7a,0x73,0x38,0xd6,0x7e,0x73,0x2b,0x3f, +0x7a,0x73,0x38,0xd5,0x7e,0x73,0x2b,0x33,0x7a,0x73,0x38,0xd7,0x22,0xca,0x3b,0x7c, +0xdb,0xe4,0x7a,0xb3,0x2b,0x33,0x12,0x27,0xf0,0x7e,0xc0,0xa, 0x12,0x67,0xef,0x30, +0xf, 0xfd,0x74,0x1, 0x12,0x0, 0xe, 0x7e,0x1f,0x39,0xac,0x12,0x81,0x5, 0x7d,0x73, +0xbe,0x74,0xff,0xff,0x78,0x9, 0x12,0x23,0x4d,0x2e,0x34,0x0, 0x3, 0x80,0x18,0xbe, +0x74,0x80,0x0, 0x28,0x7, 0x12,0x23,0x4d,0xb, 0x35,0x80,0xb, 0xbe,0x74,0x40,0x0, +0x28,0xc, 0x12,0x23,0x4d,0xb, 0x34,0x1b,0xa, 0x30,0x1b,0xc0,0x78,0xbe,0xbe,0xd0, +0x1, 0x78,0x9, 0x7e,0x1f,0x39,0xac,0x12,0x80,0xa8,0x7d,0x73,0x7e,0x1f,0x39,0x9b, +0x69,0x31,0x0, 0x1a,0x7a,0x73,0x2b,0x33,0x7d,0x37,0xda,0x3b,0x22,0x7e,0xf, 0x39, +0x9b,0x2e,0x14,0x0, 0x1a,0xb, 0xa, 0x30,0x22,0xca,0xf8,0x6c,0xff,0x7e,0x73,0x0, +0x62,0xbc,0x7f,0x68,0x2a,0x7e,0x30,0x5, 0xac,0x3f,0x12,0x23,0xcf,0xca,0x39,0x7e, +0x30,0x38,0xac,0x3f,0x12,0x23,0xe8,0x12,0x17,0x2e,0x1b,0xfd,0x7e,0x34,0x0, 0x8c, +0xca,0x39,0x7e,0x30,0x8c,0xac,0x3f,0x12,0x23,0xdd,0x12,0x17,0x2e,0x1b,0xfd,0xb, +0xf0,0xbe,0xf0,0x4, 0x40,0xc7,0x7e,0x23,0x0, 0x62,0x7e,0x30,0x5, 0xac,0x23,0x12, +0x23,0xcf,0xca,0x39,0x7e,0x23,0x0, 0x62,0x7e,0x30,0x38,0xac,0x23,0x12,0x23,0xe8, +0x12,0x17,0x2e,0x1b,0xfd,0x7e,0x34,0x0, 0x8c,0xca,0x39,0x7e,0x23,0x0, 0x62,0x7e, +0x30,0x8c,0xac,0x23,0x12,0x23,0xdd,0x12,0x17,0x2e,0x1b,0xfd,0xda,0xf8,0x22,0x2e, +0x14,0x26,0x33,0x6d,0x0, 0x12,0x22,0x3e,0x7e,0x34,0x0, 0x38,0x22,0x2e,0x14,0x1, +0x43,0x6d,0x0, 0x7e,0x18,0x3, 0x73,0x22,0x2e,0x14,0x0, 0x63,0x6d,0x0, 0x7e,0x18, +0x34,0x0, 0x22,0xca,0xd8,0xca,0x79,0x90,0x60,0x50,0xe4,0x93,0x7c,0xdb,0x90,0x60, +0x51,0xe4,0x93,0x7c,0xeb,0x7e,0x73,0x2a,0x93,0xbc,0x7e,0x28,0x4, 0x7c,0xf7,0x80, +0x2, 0x7c,0xfe,0x7a,0xd3,0x2a,0x8c,0x7a,0xe3,0x2a,0x8d,0x7a,0xd3,0x2a,0x90,0x7a, +0xe3,0x2a,0x91,0x7a,0xd3,0x2a,0x92,0x7a,0xe3,0x2a,0x93,0x74,0x1, 0x7a,0xb3,0x2a, +0x96,0x7a,0xd3,0x2a,0x8e,0xa, 0x3e,0x1b,0x34,0x7a,0x73,0x2a,0x8f,0x90,0x60,0x91, +0xe4,0x93,0x7a,0xb3,0x2a,0x97,0x90,0x60,0x94,0xe4,0x93,0x7a,0xb3,0x2a,0x98,0xa, +0x3d,0xca,0x39,0x7e,0x34,0x60,0x52,0x7e,0x24,0x0, 0xff,0x7e,0x8, 0x2a,0x99,0x12, +0x17,0x2e,0x1b,0xfd,0xa, 0x3f,0xca,0x39,0x7e,0x34,0x60,0x75,0x7e,0x24,0x0, 0xff, +0x7e,0x8, 0x2a,0xbc,0x12,0x17,0x2e,0x1b,0xfd,0x7e,0x34,0x0, 0x23,0xca,0x39,0x7e, +0x34,0x60,0xd8,0x7e,0x24,0x0, 0xff,0x7e,0x8, 0x2b,0x40,0x12,0x17,0x2e,0x1b,0xfd, +0x12,0x98,0xe, 0x12,0x64,0x10,0x7a,0xd3,0x2a,0x94,0x7a,0xe3,0x2a,0x95,0x12,0x57, +0xe8,0x74,0x1, 0x12,0x25,0x96,0xe4,0x7a,0xb3,0x2b,0x20,0x7a,0xb3,0x2b,0x21,0x12, +0x59,0x2d,0x7a,0x37,0x2b,0x2c,0x74,0x3, 0x7a,0xb3,0x2b,0x22,0xe4,0x7a,0xb3,0x2b, +0x23,0x74,0x2, 0x7a,0xb3,0x2b,0x24,0x7e,0x34,0x1, 0x18,0x7a,0x37,0x2b,0x26,0x74, +0x4, 0x7a,0xb3,0x2b,0x25,0x7e,0x34,0x0, 0xf, 0x7a,0x37,0x2b,0x28,0x7e,0x34,0x20, +0x5f,0x7a,0x37,0x2b,0x2a,0x74,0x20,0x7a,0xb3,0x2b,0x81,0x74,0x1, 0x7a,0xb3,0x2b, +0x2f,0x74,0x20,0x7a,0xb3,0x2b,0x30,0x74,0x4, 0x7a,0xb3,0x2b,0x32,0x74,0x38,0x12, +0x21,0x3f,0xe4,0x7a,0xb3,0x2b,0x3c,0x7a,0xb3,0x2b,0x3d,0x7e,0x34,0x1, 0xf4,0x7a, +0x37,0x2b,0x38,0x74,0x1, 0x7a,0xb3,0x2b,0x31,0x74,0x7f,0x7a,0xb3,0x2b,0x3f,0x74, +0x64,0x7a,0xb3,0x2b,0x3e,0x6d,0x33,0x7a,0x37,0x2b,0x34,0x7a,0x37,0x2b,0x36,0x74, +0x2, 0x7a,0xb3,0x2b,0x33,0x7e,0x34,0x0, 0x30,0x7a,0x37,0x2b,0x89,0x74,0x4, 0x7a, +0xb3,0x2b,0x86,0x7e,0x34,0x0, 0x5, 0x7a,0x37,0x2b,0x87,0xe4,0x7a,0xb3,0x2b,0x85, +0x7e,0x34,0x4, 0x6d,0x7a,0x37,0x2b,0x8b,0x74,0x1, 0x7a,0xb3,0x2b,0x82,0x74,0x5, +0x7a,0xb3,0x2b,0x83,0xe4,0x7a,0xb3,0x2b,0x84,0x74,0x1, 0x7a,0xb3,0x2b,0x7f,0xe4, +0x7a,0xb3,0x2b,0x80,0x7e,0x34,0x16,0xd0,0x7a,0x37,0x2b,0x8d,0xa, 0x3e,0xca,0x39, +0x7e,0x34,0x60,0xfb,0x7e,0x24,0x0, 0xff,0x7e,0x8, 0x2b,0x63,0x12,0x17,0x2e,0x1b, +0xfd,0xda,0x79,0xda,0xd8,0x22,0x7a,0xb3,0x2b,0x1f,0x70,0x14,0x12,0x36,0x1c,0x12, +0x25,0xc5,0x7e,0x18,0x6, 0x76,0x7a,0x1f,0x6, 0xf4,0x7e,0x18,0x4, 0x7e,0x80,0x10, +0xb4,0x1, 0x11,0x12,0x36,0x13,0x12,0x25,0xc5,0x12,0x57,0xd2,0x7e,0x18,0x4, 0x0, +0x7a,0x1f,0x6, 0xf8,0x22,0x7a,0x1f,0x2b,0x1b,0x7a,0xf, 0x2b,0x17,0x22,0x74,0x1, +0x12,0x0, 0x1e,0xe4,0x12,0x25,0x96,0x12,0x25,0xe6,0xe4,0x12,0x0, 0x1e,0x74,0x1, +0x12,0x25,0x96,0x2, 0x25,0xe6,0xca,0x3b,0x7e,0xd3,0x2a,0x92,0x7e,0xc3,0x2a,0x93, +0x7e,0x8, 0x1f,0x44,0x12,0xa7,0x27,0x7e,0x8, 0x1f,0x8a,0x7e,0x34,0x0, 0x46,0x12, +0x17,0x53,0x7e,0x8, 0x1f,0xd0,0x7e,0x34,0x0, 0xa, 0xe4,0x12,0x17,0x53,0x7e,0x8, +0x1f,0xda,0x7e,0x34,0x0, 0xa, 0x12,0x17,0x53,0x7e,0xf3,0x2b,0x1b,0x7e,0x18,0x2a, +0xfb,0x7a,0x1d,0x24,0x7e,0x18,0x1f,0xd0,0x7a,0x1d,0x28,0x7c,0xbd,0x7c,0x7c,0x7e, +0x8, 0x2a,0xd8,0x12,0xa7,0xf7,0x6c,0xee,0x80,0x2b,0xa, 0x3e,0x9, 0xa3,0x2a,0xfb, +0xa, 0x3a,0x2e,0x34,0x16,0xe8,0x12,0x6e,0x51,0x7c,0xab,0xbe,0xa0,0x1c,0x50,0x13, +0xa, 0x3e,0x12,0x26,0xfe,0xa, 0x4a,0x19,0xb4,0x1f,0x44,0x7e,0xb3,0x2b,0x1a,0x19, +0xb4,0x1f,0x8a,0xb, 0xe0,0xbc,0xce,0x38,0xd1,0x6c,0xee,0x80,0x24,0xa, 0x3e,0x9, +0xa3,0x2a,0xd8,0xbe,0xa0,0x23,0x50,0x17,0xa, 0x2e,0xa, 0x3c,0x2d,0x32,0x12,0x26, +0xfe,0xa, 0x4a,0x19,0xb4,0x1f,0x60,0x7e,0xb3,0x2b,0x1a,0x19,0xb4,0x1f,0xa6,0xb, +0xe0,0xbc,0xde,0x38,0xd8,0x7e,0xb3,0x2b,0x1c,0x7e,0x8, 0x1f,0xe4,0x60,0x9, 0x7e, +0x18,0x1f,0xd0,0x12,0xa6,0x4f,0x80,0x3, 0x12,0xa7,0xe6,0x6c,0xee,0x7e,0x18,0x1f, +0xe4,0x7a,0x1f,0x1f,0x34,0x74,0x2, 0xac,0xbe,0x49,0x35,0x1f,0xd0,0x7a,0x37,0x1f, +0x38,0x74,0x2, 0xac,0xbe,0x49,0x35,0x1f,0xda,0x7a,0x37,0x1f,0x3a,0x7e,0x70,0xe, +0xac,0x7e,0x2e,0x34,0x1f,0x44,0x6d,0x22,0x7a,0x1f,0x1f,0x3c,0x7e,0x70,0xe, 0xac, +0x7e,0x2e,0x34,0x1f,0x8a,0x7a,0x1f,0x1f,0x40,0x7e,0x8, 0x1f,0x34,0x7c,0xbf,0x7c, +0x7e,0x12,0x8, 0xd1,0xb, 0xe0,0xbe,0xe0,0x5, 0x40,0xb2,0xda,0x3b,0x22,0x2e,0x37, +0x2b,0x1d,0x7e,0x39,0xb0,0x22,0x74,0x1, 0x7a,0xb3,0x38,0xf, 0x12,0x27,0xe0,0x12, +0x13,0xf5,0x12,0xa7,0x5a,0xe4,0x12,0xa, 0x66,0x7e,0x24,0x3, 0xd4,0x12,0x27,0xf7, +0x74,0x1, 0x12,0x25,0x96,0x12,0x6a,0x70,0x7e,0x34,0xd0,0xc, 0x12,0x1, 0xe, 0x12, +0x25,0xce,0x7e,0x34,0x0, 0x1, 0xe4,0x6c,0x55,0x2, 0x13,0x1, 0x7e,0x8, 0x2a,0x8c, +0x2, 0x3, 0x8b,0x9, 0x75,0x26,0x35,0x7a,0x73,0x2b,0x3e,0x22,0x9, 0x75,0x26,0x36, +0x7a,0x73,0x2b,0x3f,0x22,0x9, 0x75,0x26,0x34,0x7a,0x73,0x2b,0x33,0x22,0x7e,0x73, +0x2b,0x3e,0x7a,0x73,0x38,0xd6,0x22,0x9, 0x75,0x26,0x33,0x7a,0x73,0x2b,0x2e,0x22, +0x12,0x27,0x7a,0xb, 0x34,0x7a,0x73,0x2b,0x3f,0x22,0xca,0x79,0x7f,0x10,0x9f,0x0, +0x6c,0xaa,0xa, 0x4a,0x2e,0x44,0x60,0xac,0x12,0xa8,0xb6,0x7c,0x9b,0x7e,0xf3,0x2a, +0x8d,0xac,0xf9,0x7e,0xb3,0x2a,0x8f,0xa, 0xfb,0x2d,0xf7,0x7d,0xef,0x3e,0xe4,0x7f, +0x61,0x2d,0xde,0xb, 0x6a,0xd0,0x6d,0xcc,0x2f,0x6, 0xb, 0xa0,0xbe,0xa0,0x3, 0x78, +0xd1,0xbe,0x8, 0x0, 0x0, 0x78,0x2, 0xb, 0xc, 0x7e,0x54,0x0, 0x3, 0x7f,0x10,0x7d, +0x15,0x12,0x15,0x75,0x7f,0x1, 0xb, 0xc, 0x7e,0x34,0xc4,0x0, 0x7e,0x24,0x0, 0x9, +0x12,0x15,0x77,0xbe,0x34,0x0, 0xfa,0x28,0x4, 0x7e,0x34,0x0, 0xfa,0xda,0x79,0x22, +0x7e,0x8, 0x2a,0x8c,0x12,0x3, 0x8b,0x7e,0x8, 0x2a,0x8c,0x74,0x3, 0x2, 0x11,0x7a, +0x7e,0x8, 0x2a,0x8c,0x2, 0xd, 0x72,0x7d,0x32,0x74,0xfa,0x2, 0x12,0xd0,0x7e,0xb3, +0x38,0xf, 0xb4,0x3, 0x8, 0x7e,0xb3,0x38,0xca,0x70,0x2, 0xc3,0x22,0xd3,0x22,0x12, +0x3f,0x81,0x12,0x62,0xbc,0x12,0x28,0x31,0x12,0x19,0x5a,0x7e,0xb3,0x38,0xf, 0x24, +0xfd,0x68,0x9, 0xb, 0xb1,0x78,0xf4,0x12,0x40,0x98,0x80,0xef,0x12,0x1b,0xd2,0x80, +0xea,0x12,0x58,0x3f,0x12,0x23,0xf3,0x12,0x0, 0x9, 0x12,0x57,0xd2,0x7e,0x18,0x4, +0x0, 0x7a,0x1f,0x6, 0xf8,0x7e,0xf, 0x6, 0xf8,0x7e,0x1f,0x6, 0xf4,0x12,0x68,0x21, +0x7e,0x18,0x8, 0xa, 0x7a,0x1f,0x13,0x86,0x7e,0x18,0xd, 0xc8,0x7a,0x1f,0x13,0x8a, +0x7e,0xf, 0x13,0x8a,0x7e,0x1f,0x13,0x86,0x12,0x67,0xfe,0x12,0x0, 0x46,0x12,0x50, +0xbf,0x12,0x63,0x59,0x12,0x63,0xed,0x2, 0x28,0x7a,0xe4,0x7a,0xb3,0x34,0x38,0x7a, +0xb3,0x34,0x39,0x7a,0xb3,0x34,0x3a,0x22,0x7e,0x34,0x1, 0x18,0x7a,0x37,0x28,0x95, +0x7e,0x34,0x2, 0x26,0x7a,0x37,0x28,0x99,0x7e,0x34,0x0, 0x96,0x7a,0x37,0x28,0x97, +0x7a,0x37,0x28,0x9b,0x7e,0x34,0x0, 0x50,0x7a,0x37,0x28,0x9d,0x7e,0x34,0x0, 0x27, +0x7a,0x37,0x28,0x9f,0x12,0xaf,0x90,0x74,0x1, 0x7a,0xb3,0x28,0xa5,0xe4,0x7a,0xb3, +0x28,0xa8,0x12,0x28,0xcf,0x3e,0x34,0x7e,0x8, 0x25,0xf7,0xe4,0x2, 0x17,0x53,0x90, +0x60,0x9a,0x93,0xa, 0x3b,0x22,0xca,0x3b,0x7c,0xfb,0x75,0x3d,0x0, 0x7e,0xb3,0x2a, +0x8e,0xf5,0x42,0x7e,0xb3,0x2a,0x8f,0xf5,0x43,0x75,0x44,0x28,0x7e,0xd3,0x28,0x84, +0xe4,0x7a,0xb3,0x31,0xef,0x7a,0xb3,0x31,0xeb,0x7a,0xb3,0x31,0xec,0x7e,0x8, 0x31, +0xf0,0x12,0x28,0xcf,0xe4,0x12,0x17,0x53,0x12,0x28,0xcf,0x3e,0x34,0x7e,0x8, 0x32, +0x10,0xe4,0x12,0x17,0x53,0xbe,0xd0,0x2, 0x50,0x2, 0x81,0xb2,0x6c,0xcc,0x81,0xac, +0x12,0xaf,0xc5,0xf5,0x24,0x9, 0xb3,0x26,0xfb,0xf5,0x25,0x4c,0xcc,0x68,0x8, 0xa, +0x3c,0x9, 0xb3,0x31,0xf0,0x70,0xa, 0xa, 0x3c,0xb, 0x34,0xa, 0x2c,0x19,0x72,0x31, +0xf0,0x7c,0xbd,0x14,0xbc,0xbc,0x78,0x2, 0x81,0xb2,0xa, 0x5c,0xb, 0x54,0xf5,0x2e, +0x81,0xa3,0x7e,0x71,0x2e,0x12,0x2f,0xac,0x7a,0xa1,0x26,0x9, 0xb3,0x26,0xfb,0xf5, +0x27,0xa, 0x2a,0xe5,0x24,0x12,0x2f,0x7f,0x7c,0xb7,0xf5,0x28,0xe5,0x27,0xa, 0x2b, +0xe5,0x25,0x12,0x2f,0x7f,0x7c,0xb7,0xf5,0x29,0xe5,0x28,0xbe,0xb0,0x5, 0x40,0x2, +0x81,0xa1,0xe5,0x29,0xbe,0xb0,0x5, 0x40,0x2, 0x81,0xa1,0x12,0x2f,0xb5,0x12,0x9d, +0xbb,0x7a,0xb3,0x31,0xee,0x85,0x25,0x54,0x85,0x26,0x55,0x85,0x27,0x56,0x7e,0x8, +0x0, 0x31,0x7e,0x18,0x0, 0x33,0xe5,0x24,0x12,0xa0,0x9e,0x75,0x3d,0x0, 0x6c,0xee, +0x75,0x30,0x0, 0xe5,0x24,0x7e,0x71,0x25,0x12,0x2c,0xb9,0x7a,0x35,0x35,0xe5,0x26, +0x7e,0x71,0x27,0x12,0x2c,0xb9,0x7a,0x35,0x37,0x7e,0x35,0x35,0xbe,0x35,0x37,0x8, +0x5, 0x7e,0x35,0x37,0x80,0x3, 0x7e,0x35,0x35,0x7a,0x35,0x3b,0xe, 0x34,0x7a,0x35, +0x39,0xe5,0x28,0xbe,0xb0,0x1, 0x38,0x2c,0xe5,0x29,0xbe,0xb0,0x1, 0x38,0x25,0x7c, +0xbf,0x30,0xe1,0x20,0xe5,0x26,0x7e,0x71,0x25,0x12,0x2c,0xb9,0x7d,0x43,0xe5,0x24, +0x7e,0x71,0x27,0x12,0x2c,0xb9,0x2d,0x34,0xbe,0x35,0x39,0x18,0x2, 0x81,0x38,0x75, +0x30,0x1, 0x81,0x38,0xe5,0x28,0xbe,0xb0,0x1, 0x38,0x9, 0xe5,0x29,0xbe,0xb0,0x1, +0x38,0x2, 0x81,0x38,0xe5,0x28,0xbe,0xb0,0x5, 0x40,0x2, 0x81,0x38,0xe5,0x29,0xbe, +0xb0,0x5, 0x40,0x2, 0x81,0x38,0x7c,0xbf,0x20,0xe0,0x2, 0x81,0x38,0x6d,0x33,0x7a, +0x35,0x4d,0x75,0x4f,0x0, 0x7a,0x35,0x50,0x75,0x52,0x0, 0xc2,0x2, 0xc2,0x3, 0xe5, +0x26,0xbe,0xb1,0x24,0x28,0x4, 0xe5,0x24,0x80,0x2, 0xe5,0x26,0xf5,0x2a,0xe5,0x26, +0xbe,0xb1,0x24,0x50,0x4, 0xe5,0x24,0x80,0x2, 0xe5,0x26,0xf5,0x2c,0xe5,0x27,0xbe, +0xb1,0x25,0x28,0x4, 0xe5,0x25,0x80,0x2, 0xe5,0x27,0xf5,0x2b,0xe5,0x27,0xbe,0xb1, +0x25,0x50,0x4, 0xe5,0x25,0x80,0x2, 0xe5,0x27,0xf5,0x2d,0xe5,0x2c,0xbe,0xb1,0x2a, +0x78,0x29,0xd2,0x2, 0xe5,0x2a,0x60,0x8, 0xe5,0x42,0x14,0xbe,0xb1,0x2a,0x78,0x2, +0xd2,0x3, 0xe5,0x2a,0xbe,0xb0,0x0, 0x28,0x2, 0x15,0x2a,0xe5,0x42,0xa, 0x2b,0x1b, +0x24,0xe5,0x2c,0xa, 0x3b,0xbd,0x32,0x58,0x2, 0x5, 0x2c,0xe5,0x2d,0xbe,0xb1,0x2b, +0x78,0x29,0xd2,0x2, 0xe5,0x2b,0x60,0x8, 0xe5,0x43,0x14,0xbe,0xb1,0x2b,0x78,0x2, +0xd2,0x3, 0xe5,0x2b,0xbe,0xb0,0x0, 0x28,0x2, 0x15,0x2b,0xe5,0x43,0xa, 0x2b,0x1b, +0x24,0xe5,0x2d,0xa, 0x3b,0xbd,0x32,0x58,0x2, 0x5, 0x2d,0x85,0x2a,0x3e,0x80,0x5b, +0x85,0x2b,0x3f,0x80,0x4d,0xe5,0x3e,0x7e,0x71,0x3f,0x12,0x2c,0xb9,0x7a,0x35,0x40, +0xe5,0x2a,0xbe,0xb1,0x3e,0x68,0x15,0xe5,0x2c,0xbe,0xb1,0x3e,0x68,0xe, 0xe5,0x2b, +0xbe,0xb1,0x3f,0x68,0x7, 0xe5,0x2d,0xbe,0xb1,0x3f,0x78,0xd, 0x7e,0x35,0x40,0x2e, +0x35,0x4d,0x7a,0x35,0x4d,0x5, 0x4f,0x80,0x17,0x5, 0x52,0x7e,0x35,0x40,0x2e,0x35, +0x50,0x7a,0x35,0x50,0x7e,0x35,0x33,0xbe,0x35,0x40,0x58,0x2, 0x5, 0x3d,0xb, 0xe0, +0x5, 0x3f,0xe5,0x2d,0xbe,0xb1,0x3f,0x50,0xac,0x5, 0x3e,0xe5,0x2c,0xbe,0xb1,0x3e, +0x50,0x9e,0xe5,0x2c,0x7e,0x71,0x2b,0x12,0x2c,0xb9,0x7e,0x45,0x4d,0x9d,0x43,0xe5, +0x2a,0x7e,0x71,0x2d,0x12,0x2c,0xb9,0x9d,0x43,0xe5,0x2a,0x7e,0x71,0x2b,0x12,0x2c, +0xb9,0x9d,0x43,0xe5,0x2c,0x7e,0x71,0x2d,0x12,0x2c,0xb9,0x7d,0x23,0x7d,0x34,0x9d, +0x32,0x7a,0x35,0x4d,0x7e,0x35,0x37,0x2e,0x35,0x35,0x7a,0x35,0x39,0x30,0x2, 0x10, +0x20,0x3, 0xd, 0x7e,0x35,0x4d,0x9e,0x35,0x39,0x7a,0x35,0x4d,0x15,0x4f,0x15,0x4f, +0xe5,0x4f,0xbe,0xb0,0x4, 0x28,0x6, 0xe5,0x4f,0x24,0xfc,0xf5,0x4f,0x7e,0x35,0x4d, +0xbe,0x34,0x0, 0x0, 0x58,0x5, 0x6d,0x33,0x7a,0x35,0x4d,0x75,0x44,0x22,0xe5,0x42, +0x14,0xbe,0xb1,0x24,0x68,0xd, 0xbe,0xb1,0x26,0x68,0x8, 0xe5,0x24,0x60,0x4, 0xe5, +0x26,0x70,0x8, 0x12,0xa1,0x2d,0x28,0x3, 0x75,0x44,0x2c,0x7e,0x15,0x50,0x1a,0x2, +0x1a,0x0, 0x7e,0x35,0x4d,0x1a,0x26,0x1a,0x24,0x2f,0x10,0xe5,0x44,0xa, 0x1b,0x6d, +0x0, 0x12,0x15,0x5b,0x7f,0x71,0x7a,0x7d,0x45,0x7e,0x15,0x39,0x1a,0x2, 0x1a,0x0, +0x7e,0x35,0x31,0x1a,0x26,0x1a,0x24,0x12,0x15,0x5b,0xe5,0x52,0xa, 0xdb,0x6d,0xcc, +0xe5,0x4f,0xa, 0x1b,0x6d,0x0, 0x2f,0x6, 0x12,0x15,0x5b,0x7a,0x1d,0x49,0xbf,0x71, +0x8, 0x3, 0x75,0x30,0x2, 0xc2,0x1, 0x20,0xc, 0xe, 0x12,0x2f,0xb5,0x12,0xa2,0x39, +0x92,0x1, 0x20,0x1, 0x3, 0x75,0x30,0x0, 0xe5,0x30,0xbe,0xb0,0x0, 0x28,0x62,0xe5, +0x30,0xa, 0x3b,0x2e,0x34,0x31,0xea,0x7e,0x39,0xb0,0x4, 0x7a,0x39,0xb0,0xe5,0x2e, +0xa, 0x3b,0x9, 0xa3,0x31,0xf0,0x4c,0xaa,0x78,0xc, 0xa, 0x2c,0x9, 0xb2,0x31,0xf0, +0x19,0xb3,0x31,0xf0,0x80,0x3b,0xa, 0x2c,0x9, 0xb2,0x31,0xf0,0xf5,0x53,0xbc,0xba, +0x28,0x3, 0x7a,0xa1,0x53,0x75,0x2f,0x0, 0x80,0x22,0x9, 0x33,0x31,0xf0,0xe5,0x2f, +0xa, 0x2b,0x9, 0x22,0x31,0xf0,0xbc,0x23,0x68,0xa, 0xa, 0xc, 0x9, 0x30,0x31,0xf0, +0xbc,0x23,0x78,0x6, 0xe5,0x53,0x19,0xb2,0x31,0xf0,0x5, 0x2f,0xbe,0xd1,0x2f,0x38, +0xd9,0x5, 0x2e,0xbe,0xd1,0x2e,0x28,0x2, 0x21,0x52,0xb, 0xc0,0xbc,0xdc,0x28,0x2, +0x21,0x20,0xda,0x3b,0x22,0x7c,0xba,0x7c,0x79,0x12,0x4c,0x21,0xb, 0x1a,0x30,0x22, +0xca,0x3b,0x6d,0xee,0x7e,0xc3,0x2a,0x8d,0x7e,0xd3,0x2a,0x8c,0x7e,0xb3,0x38,0x38, +0xb4,0x1, 0x3, 0xe4,0xa1,0xf6,0x7e,0xb3,0x28,0x84,0x70,0x2, 0xa1,0x65,0x7e,0xb3, +0x2a,0x21,0x60,0x2, 0x80,0x7f,0x7e,0xa3,0x26,0xfa,0x7e,0x73,0x26,0xfb,0x7a,0x71, +0x24,0x6c,0xee,0x6d,0xff,0x6c,0xff,0xa, 0x47,0x80,0x20,0x12,0x2c,0xb5,0xbe,0x34, +0x0, 0x96,0x8, 0x1d,0xb, 0xe0,0xbe,0xa0,0x0, 0x28,0x6, 0x7c,0xba,0x14,0x12,0x2d, +0xfc,0x12,0x2f,0x95,0x58,0x3, 0x12,0x2d,0xf9,0x1b,0x44,0xbe,0x44,0x0, 0x0, 0x58, +0xda,0xe5,0x24,0xa, 0x4b,0x80,0x1e,0x12,0x2c,0xb5,0xbe,0x34,0x0, 0x96,0x8, 0x21, +0xb, 0xe0,0xbe,0xa0,0x0, 0x28,0x6, 0x7c,0xba,0x14,0x12,0x2d,0xfc,0x12,0x2f,0x95, +0x58,0x3, 0x12,0x2d,0xf9,0x7d,0x24,0xb, 0x24,0x7d,0x42,0xa, 0x3c,0xbd,0x23,0x48, +0xd6,0xbe,0xe0,0x3, 0x50,0x2, 0x80,0xd, 0xa, 0x2f,0x7d,0x3f,0x12,0x15,0x29,0xbe, +0x34,0x0, 0x28,0x8, 0x7, 0xe4,0x7a,0xb3,0x36,0x45,0xa1,0xf6,0x6d,0xdd,0xbe,0xa0, +0x0, 0x28,0x8, 0x7c,0xba,0x14,0x12,0x2e,0x6, 0x2d,0xd3,0xa, 0x3d,0x1b,0x34,0xa, +0xca,0xbd,0xc3,0x58,0x8, 0x7c,0xba,0x4, 0x12,0x2e,0x6, 0x2d,0xd3,0x7e,0x70,0x8, +0x80,0x2a,0x7e,0x50,0x2, 0xac,0x57,0x7d,0xc2,0x2e,0xc4,0x17,0x65,0x7d,0x1c,0x7a, +0x31,0x82,0x7a,0x21,0x83,0xe4,0x93,0x1a,0xcb,0xbd,0xcd,0x8, 0xf, 0x7d,0xc2,0x2e, +0xc4,0x17,0x66,0x7d,0x2c,0x12,0x57,0xdf,0x1a,0xcb,0x2d,0xec,0x7c,0x67,0x1b,0x70, +0xa5,0xbe,0x0, 0xce,0x7c,0xba,0x12,0x2e,0x6, 0x12,0x17,0x85,0xbe,0x34,0xa, 0xf0, +0x8, 0x4, 0x2e,0xe4,0x0, 0x28,0xbe,0xe4,0x0, 0xfa,0x28,0x4, 0x7e,0xe4,0x0, 0xfa, +0x7e,0xb3,0x36,0x45,0xa, 0x3b,0xbd,0x3e,0x50,0x8, 0x7d,0x3e,0x7c,0xb7,0x7a,0xb3, +0x36,0x45,0x7e,0xb3,0x36,0x45,0xda,0x3b,0x22,0x7c,0xba,0x4, 0x7c,0x79,0x12,0x2c, +0xb9,0x2d,0xf3,0xb, 0xf0,0x22,0x7e,0x71,0x24,0x2, 0x2c,0xb9,0xca,0x3b,0x7f,0x40, +0x7e,0xe3,0x28,0x84,0x6c,0xdd,0x7e,0xc0,0x1, 0x80,0x1a,0xa, 0x3d,0x2d,0x39,0x7d, +0x28,0x7e,0x1b,0x60,0xa, 0x2c,0x7f,0x4, 0x2d,0x12,0x7e,0xb, 0x70,0xbc,0x76,0x40, +0x2, 0x7c,0xdc,0xb, 0xc0,0xbc,0xec,0x38,0xe2,0xa, 0x3d,0x2d,0x39,0x7d,0x28,0x7e, +0x1b,0xd0,0x6c,0xff,0x7e,0xc0,0x1, 0xe1,0x71,0x75,0x2d,0x0, 0x6d,0x33,0x7a,0x35, +0x2e,0x7a,0x35,0x25,0x7a,0x35,0x27,0x7e,0x18,0x1f,0x70,0x7a,0x1d,0x29,0x74,0xff, +0x7e,0x34,0x1f,0x71,0x7e,0x24,0x0, 0x0, 0x7a,0x1b,0xb0,0x7e,0x1d,0x29,0x7a,0x1b, +0xb0,0xe4,0x7e,0x1d,0x29,0x39,0xb1,0x0, 0x3, 0x7e,0x1d,0x29,0x39,0xb1,0x0, 0x2, +0x7e,0x1d,0x29,0x12,0x9f,0xe1,0x44,0x1, 0x7a,0x1b,0xb0,0x75,0x24,0x0, 0x80,0x6c, +0x12,0x2f,0xa9,0x9, 0x93,0x26,0xfb,0xe5,0x24,0x12,0x43,0x2d,0xbc,0xbc,0x78,0x5a, +0x5, 0x2d,0xa, 0x3a,0x2e,0x35,0x25,0x7a,0x35,0x25,0xa, 0x39,0x2e,0x35,0x27,0x7a, +0x35,0x27,0x12,0x2c,0xb5,0xbe,0x35,0x2e,0x8, 0x6, 0x12,0x2c,0xb5,0x7a,0x35,0x2e, +0x7e,0x1d,0x29,0x7e,0x1b,0xb0,0xbc,0xba,0x28,0x3, 0x7a,0x1b,0xa0,0x7e,0x1d,0x29, +0x29,0xb1,0x0, 0x2, 0xbc,0xba,0x50,0x4, 0x39,0xa1,0x0, 0x2, 0x7e,0x1d,0x29,0x29, +0xb1,0x0, 0x1, 0xbc,0xb9,0x28,0x4, 0x39,0x91,0x0, 0x1, 0x7e,0x1d,0x29,0x29,0xb1, +0x0, 0x3, 0xbc,0xb9,0x50,0x4, 0x39,0x91,0x0, 0x3, 0x5, 0x24,0xbe,0xe1,0x24,0x38, +0x8f,0xe5,0x2d,0xbe,0xb0,0x0, 0x28,0x67,0x7e,0xd, 0x29,0x12,0x9e,0x15,0xe5,0x2d, +0xa, 0x2b,0x7e,0x15,0x25,0x8d,0x12,0x7a,0x15,0x25,0x7e,0x35,0x27,0x8d,0x32,0x7a, +0x35,0x27,0x7e,0x55,0x25,0x12,0x2f,0x8d,0x19,0xa3,0x32,0x10,0x7e,0x55,0x27,0x12, +0x2f,0x8d,0x19,0xa3,0x32,0x11,0x7e,0x37,0x28,0x8a,0xbe,0x35,0x2e,0x78,0xe, 0x7e, +0x35,0x25,0x7a,0x73,0x28,0x8c,0x7e,0x35,0x27,0x7a,0x73,0x28,0x8d,0x7e,0x37,0x32, +0xe, 0x4d,0x33,0x68,0x18,0x7e,0x55,0x25,0x7e,0x35,0x27,0x12,0x2c,0xb9,0x7e,0x25, +0x2e,0x7e,0x70,0x2, 0xac,0x7f,0x2e,0x37,0x32,0xe, 0x1b,0x38,0x20,0xb, 0xf0,0xb, +0xc0,0xbc,0xdc,0x40,0x2, 0xc1,0x49,0x12,0x9b,0xcc,0x7c,0xbf,0xda,0x3b,0x22,0xa, +0x3b,0x9d,0x32,0x2, 0x17,0x85,0x7c,0xbd,0x7c,0x7e,0x2, 0x2c,0xb9,0x7c,0xab,0x7e, +0x70,0x2, 0xac,0x7f,0x22,0xa, 0x2d,0x1b,0x24,0xa, 0x3a,0xbd,0x32,0x22,0x12,0x4e, +0xe1,0x12,0x2c,0xc0,0x7a,0xb3,0x2a,0x2a,0x22,0x7e,0x71,0x24,0x74,0x2, 0xac,0x7b, +0x9, 0xa3,0x26,0xfa,0x22,0xe5,0x24,0x7e,0x71,0x25,0x7e,0x61,0x26,0x7e,0x51,0x27, +0x22,0xca,0xf8,0x7c,0xab,0xbe,0xa0,0x34,0x38,0x3, 0x2, 0x30,0xd5,0xbe,0xa0,0x35, +0x78,0x7, 0x7e,0xb3,0x2b,0x2f,0x2, 0x31,0xeb,0xbe,0xa0,0x36,0x68,0x5, 0xbe,0xa0, +0x37,0x78,0x1e,0x7e,0x35,0x8, 0x7d,0x23,0xb, 0x24,0x7a,0x25,0x8, 0x2e,0x37,0x34, +0x8a,0x7e,0x39,0xb0,0xbe,0xa0,0x37,0x68,0x3, 0x2, 0x31,0xeb,0x75,0x1a,0x36,0x21, +0xeb,0xbe,0xa0,0x38,0x68,0x5, 0xbe,0xa0,0x39,0x78,0x1b,0x7e,0xf3,0x38,0xd8,0x7c, +0xbf,0x4, 0x7a,0xb3,0x38,0xd8,0xbe,0xa0,0x39,0x78,0x3, 0x75,0x1a,0x38,0xa, 0x3f, +0x9, 0xb3,0x2b,0x40,0x21,0xeb,0xbe,0xa0,0x3a,0x68,0x5, 0xbe,0xa0,0x3b,0x78,0x1b, +0x7e,0xf3,0x38,0xda,0x7c,0xbf,0x4, 0x7a,0xb3,0x38,0xda,0xbe,0xa0,0x3b,0x78,0x3, +0x75,0x1a,0x3a,0xa, 0x3f,0x9, 0xb3,0x2b,0x63,0x21,0xeb,0xbe,0xa0,0xfb,0x78,0x6, +0x7e,0xb3,0x2b,0x31,0x21,0xeb,0xbe,0xa0,0x5e,0x78,0x26,0x7e,0xf, 0x39,0x93,0x69, +0x30,0x0, 0x8e,0xa, 0x56,0x1e,0x54,0x1e,0x54,0x1e,0x54,0x5e,0x54,0x0, 0x1, 0x3, +0x3, 0x54,0xc0,0xa, 0x36,0x5e,0x34,0x0, 0x3, 0x7c,0xa7,0x4c,0xba,0x44,0x80,0x21, +0xeb,0xbe,0xa0,0x3c,0x68,0x5, 0xbe,0xa0,0x3d,0x78,0x1b,0x7e,0xf3,0x38,0xdc,0x7c, +0xbf,0x4, 0x7a,0xb3,0x38,0xdc,0xbe,0xa0,0x3d,0x78,0x3, 0x75,0x1a,0x3c,0xa, 0x3f, +0x9, 0xb3,0x2a,0x99,0x21,0xeb,0xbe,0xa0,0x3e,0x68,0x5, 0xbe,0xa0,0x3f,0x78,0x1b, +0x7e,0xf3,0x38,0xde,0x7c,0xbf,0x4, 0x7a,0xb3,0x38,0xde,0xbe,0xa0,0x3f,0x78,0x3, +0x75,0x1a,0x3e,0xa, 0x3f,0x9, 0xb3,0x2a,0xbc,0x21,0xeb,0xbe,0xa0,0x40,0x40,0xd, +0xbe,0xa0,0x4d,0x38,0x8, 0xa, 0x3a,0x9, 0xb3,0x38,0xb4,0x21,0xeb,0xbe,0xa0,0x4e, +0x68,0x5, 0xbe,0xa0,0x4f,0x78,0x1e,0x7e,0xf3,0x38,0xf9,0x7c,0xbf,0x4, 0x7a,0xb3, +0x38,0xf9,0xbe,0xa0,0x4f,0x78,0x3, 0x75,0x1a,0x4e,0xa, 0x3f,0x2e,0x37,0x34,0x88, +0x7e,0x39,0xb0,0x21,0xeb,0xbe,0xa0,0x51,0x68,0x5, 0xbe,0xa0,0x52,0x78,0x28,0x7e, +0x14,0x60,0x0, 0x6d,0x0, 0x2e,0x4, 0x0, 0xff,0x7e,0xb3,0x39,0x4, 0xa, 0x3b,0x6d, +0x22,0x2f,0x10,0x7e,0x1b,0x70,0x4, 0x7a,0xb3,0x39,0x4, 0xbe,0xa0,0x52,0x78,0x3, +0x75,0x1a,0x51,0x7c,0xb7,0x21,0xeb,0xbe,0xa0,0x5c,0x68,0x5, 0xbe,0xa0,0x5d,0x78, +0x1a,0x7e,0xf3,0x38,0xcd,0x7c,0xbf,0x4, 0x7a,0xb3,0x38,0xcd,0xbe,0xa0,0x5d,0x78, +0x3, 0x75,0x1a,0x5c,0x7c,0xbf,0x12,0x31,0xee,0x21,0xeb,0xbe,0xa0,0x60,0x40,0xd, +0xbe,0xa0,0x6c,0x38,0x8, 0xa, 0x3a,0x9, 0xb3,0x33,0x8f,0x80,0x7e,0xbe,0xa0,0x6d, +0x78,0x4, 0xe5,0xe, 0x80,0x75,0xbe,0xa0,0xf4,0x68,0x5, 0xbe,0xa0,0xf5,0x78,0x18, +0x7e,0x35,0xa, 0x7d,0x23,0xb, 0x24,0x7a,0x25,0xa, 0x9, 0xb3,0x34,0x90,0xbe,0xa0, +0xf5,0x78,0x58,0x75,0x1a,0xf4,0x80,0x53,0xbe,0xa0,0xf0,0x68,0x5, 0xbe,0xa0,0xf1, +0x78,0x9, 0x7c,0x1a,0x2e,0x10,0x20,0xa5,0xe7,0x80,0x40,0xbe,0xa0,0xf2,0x68,0x5, +0xbe,0xa0,0xf3,0x78,0x1b,0x7e,0x15,0x10,0x3e,0x14,0x7e,0x1f,0x34,0x8c,0x2d,0x31, +0xb, 0x1a,0x30,0xbe,0xa0,0xf2,0x78,0x4, 0xa, 0x56,0x80,0x1f,0x7d,0x53,0x80,0x1b, +0xbe,0xa0,0xf6,0x78,0x4, 0xe5,0xf, 0x80,0x12,0xbe,0xa0,0xf7,0x78,0x4, 0x74,0x64, +0x80,0x9, 0xbe,0xa0,0xfd,0x78,0x3, 0xe4,0x80,0x1, 0xe4,0xda,0xf8,0x22,0x7c,0xab, +0xbe,0xa0,0x0, 0x40,0x11,0x7e,0xb3,0x2a,0x8d,0xbc,0xba,0x28,0x9, 0x74,0x2, 0xa4, +0x49,0x25,0x34,0x0, 0x80,0x51,0x7e,0x13,0x2a,0x8d,0xbc,0x1a,0x38,0x1c,0x7e,0x3, +0x2a,0x8c,0xa, 0x10,0xa, 0x21,0x2d,0x12,0xa, 0x3a,0xbd,0x31,0x58,0xc, 0x9d,0x32, +0x3e,0x34,0x3e,0x34,0x49,0x23,0x3, 0x73,0x80,0x2d,0x7e,0x3, 0x2a,0x8c,0xa, 0x20, +0xa, 0x11,0x7d,0x41,0x2d,0x42,0xa, 0x3a,0xbd,0x34,0x48,0x19,0x7e,0x10,0x2, 0xac, +0x1, 0x2d,0x1, 0xbd,0x30,0x58,0xe, 0x9d,0x31,0x9d,0x32,0x3e,0x34,0x3e,0x34,0x49, +0x23,0x3, 0x75,0x80,0x2, 0xe4,0x22,0x7e,0x34,0x0, 0x64,0xad,0x23,0x74,0xc, 0x1e, +0x34,0x1e,0x24,0x50,0x3, 0x4e,0x60,0x80,0x14,0x78,0xf4,0x7c,0xb7,0x22,0xca,0xf8, +0x80,0x38,0x7c,0xbf,0x12,0x31,0xee,0xa, 0x1b,0x7e,0x63,0x2a,0x8d,0x7e,0x70,0x2, +0xac,0x67,0x7e,0x10,0x2, 0xac,0x1f,0x2d,0x3, 0x7e,0x1f,0x13,0x8a,0x2d,0x30,0x12, +0x32,0xad,0x9d,0x35,0x1b,0x1a,0x10,0xb, 0xf0,0x12,0x32,0xad,0x7e,0x73,0x2a,0x8d, +0xa, 0x27,0x2d,0x25,0xa, 0x3f,0xbd,0x32,0x48,0xc8,0xda,0xf8,0x22,0x7e,0xa3,0x2a, +0x8c,0x74,0x2, 0xa4,0x22,0x12,0x37,0xeb,0xb4,0x1, 0x14,0xca,0x39,0x7e,0x18,0x38, +0xf4,0x7e,0x8, 0x25,0xee,0x12,0x17,0x2e,0x1b,0xfd,0x12,0x36,0x13,0x80,0x12,0xca, +0x39,0x7e,0x18,0x38,0xf4,0x7e,0x8, 0x2b,0x8f,0x12,0x17,0x2e,0x1b,0xfd,0x12,0x36, +0x1c,0x2, 0x25,0xc5,0xca,0xf8,0x7c,0x6b,0xa5,0xbe,0x0, 0x9, 0x7c,0xb7,0x12,0x70, +0x77,0xd2,0x8, 0xa1,0x66,0xa5,0xbe,0x1, 0x3d,0x7a,0x73,0x38,0xb5,0xa5,0xbf,0xad, +0x2, 0x80,0x2f,0xa5,0xbf,0xae,0x4, 0xd2,0x9, 0xa1,0x66,0xa5,0xbf,0xaa,0x5, 0x12, +0xb0,0x5, 0x80,0x1e,0xa5,0xbf,0xab,0xa, 0x7e,0x34,0x5, 0x7a,0x7a,0x37,0x34,0x8a, +0x80,0x10,0xa5,0xbf,0xac,0x2, 0x80,0x2, 0xa1,0x66,0x7e,0x34,0x4, 0xfc,0x7a,0x37, +0x34,0x8a,0x6d,0x33,0x61,0xe2,0xbe,0x60,0x4, 0x40,0x20,0xbe,0x60,0x8, 0x38,0x1b, +0x12,0x35,0x69,0xa5,0xbe,0x7, 0x7, 0x6d,0x33,0x7a,0x35,0xa, 0xa1,0x66,0xa5,0xbe, +0x8, 0x2, 0x80,0x2, 0xa1,0x66,0x12,0x0, 0x66,0xa1,0x66,0xa5,0xbe,0xa, 0x9, 0x43, +0xc, 0x20,0x7a,0x73,0x38,0xbe,0xa1,0x66,0xa5,0xbe,0xb, 0x8, 0x12,0x35,0x69,0x12, +0x0, 0x6e,0xa1,0x66,0xbe,0x60,0x1b,0x40,0x7, 0xbe,0x60,0x1c,0x38,0x2, 0x81,0xfe, +0xbe,0x60,0x1e,0x40,0xd, 0xbe,0x60,0x23,0x38,0x8, 0x12,0x35,0x6b,0x43,0xc, 0x40, +0xa1,0x66,0xbe,0x60,0x15,0x40,0x1a,0xbe,0x60,0x18,0x38,0x15,0x12,0x35,0x6b,0xd2, +0x8, 0xa5,0xbe,0x15,0x2, 0x80,0x2, 0xa1,0x66,0x74,0x7, 0x7a,0xb3,0x38,0xb8,0xa1, +0x66,0xa5,0xbe,0x19,0x7, 0xe4,0x7a,0xb3,0x38,0xcd,0xa1,0x66,0xbe,0x60,0x24,0x40, +0x7, 0xbe,0x60,0x2c,0x38,0x2, 0x81,0xfe,0xa5,0xbe,0x2d,0x1b,0x12,0x35,0x6b,0x20, +0x9, 0x2, 0xa1,0x66,0x7e,0x63,0x38,0xe0,0x7c,0x46,0x6c,0x55,0xa, 0x37,0x2d,0x32, +0x3e,0x34,0x7a,0x35,0x8, 0xa1,0x66,0xbe,0x60,0x2f,0x40,0xa, 0xbe,0x60,0x33,0x38, +0x5, 0x43,0xc, 0x8, 0x81,0xfe,0xa5,0xbe,0x34,0xf, 0x43,0xc, 0x10,0xbe,0x70,0x64, +0x38,0x2, 0x81,0xfe,0x7e,0x70,0x64,0x81,0xfe,0xbe,0x60,0x38,0x68,0x4, 0xa5,0xbe, +0x39,0x21,0x43,0xc, 0x1, 0x7e,0xf3,0x38,0xd9,0x7c,0xbf,0x4, 0x7a,0xb3,0x38,0xd9, +0xa, 0x2f,0x19,0x72,0x2b,0x40,0xa5,0xbe,0x39,0x2, 0x80,0x2, 0xa1,0x66,0x75,0x1a, +0x38,0xa1,0x66,0xbe,0x60,0x3a,0x68,0x4, 0xa5,0xbe,0x3b,0x21,0x43,0xc, 0x2, 0x7e, +0xf3,0x38,0xdb,0x7c,0xbf,0x4, 0x7a,0xb3,0x38,0xdb,0xa, 0x2f,0x19,0x72,0x2b,0x63, +0xa5,0xbe,0x3b,0x2, 0x80,0x2, 0xa1,0x66,0x75,0x1a,0x3a,0xa1,0x66,0xa5,0xbe,0xfb, +0x9, 0x43,0xc, 0x4, 0x7a,0x73,0x2b,0x31,0xa1,0x66,0xa5,0xbe,0x50,0x6, 0x7a,0x73, +0x39,0x4, 0xa1,0x66,0xbe,0x60,0x3c,0x68,0x4, 0xa5,0xbe,0x3d,0x21,0x43,0xc, 0x1, +0x7e,0xf3,0x38,0xdd,0x7c,0xbf,0x4, 0x7a,0xb3,0x38,0xdd,0xa, 0x2f,0x19,0x72,0x2a, +0x99,0xa5,0xbe,0x3d,0x2, 0x80,0x2, 0xa1,0x66,0x75,0x1a,0x3c,0xa1,0x66,0xbe,0x60, +0x3e,0x68,0x4, 0xa5,0xbe,0x3f,0x21,0x43,0xc, 0x1, 0x7e,0xf3,0x38,0xdf,0x7c,0xbf, +0x4, 0x7a,0xb3,0x38,0xdf,0xa, 0x2f,0x19,0x72,0x2a,0xbc,0xa5,0xbe,0x3f,0x2, 0x80, +0x2, 0xa1,0x66,0x75,0x1a,0x3e,0xa1,0x66,0xbe,0x60,0x40,0x40,0xd, 0xbe,0x60,0x42, +0x38,0x8, 0x12,0x35,0x6b,0x75,0xd, 0x1, 0x80,0xa, 0xa5,0xbe,0x43,0xb, 0x12,0x35, +0x6b,0x75,0xd, 0x2, 0x12,0x32,0xb5,0x80,0x7d,0xa5,0xbe,0x44,0x8, 0x12,0x35,0x6b, +0x12,0x35,0xd9,0x80,0x71,0xbe,0x60,0x45,0x68,0x4, 0xa5,0xbe,0x46,0x5, 0x12,0x35, +0x6b,0x80,0x63,0xbe,0x60,0x4e,0x68,0x4, 0xa5,0xbe,0x4f,0x20,0x43,0xd, 0x4, 0x7e, +0xf3,0x38,0xfa,0x7c,0xbf,0x4, 0x7a,0xb3,0x38,0xfa,0xa, 0x2f,0x2e,0x27,0x34,0x88, +0x7a,0x29,0x70,0xa5,0xbe,0x4f,0x3f,0x75,0x1a,0x4e,0x80,0x3a,0xa5,0xbe,0x6d,0x5, +0x7a,0x71,0xe, 0x80,0x31,0xbe,0x60,0xf0,0x40,0x25,0xbe,0x60,0xf3,0x38,0x20,0x7c, +0x16,0x2e,0x10,0x20,0x7c,0xb7,0xa5,0xf7,0xa5,0xbe,0xf3,0x1a,0x7e,0x15,0x12,0x7e, +0x5, 0x10,0x3e,0x4, 0x7e,0x1f,0x34,0x8c,0x2d,0x30,0x1b,0x1a,0x10,0x80,0x7, 0xa5, +0xbe,0xf6,0x3, 0x7a,0x71,0xf, 0xda,0xf8,0x22,0xd2,0x8, 0xa, 0x26,0x19,0x72,0x38, +0xb4,0x22,0x7c,0x6b,0x12,0x35,0xd1,0x78,0x5, 0x7c,0xb6,0x2, 0x70,0xa2,0xb4,0x4, +0x5, 0x7c,0xb6,0x2, 0x32,0xe4,0x22,0x30,0x90,0x19,0xc2,0x90,0xe5,0x18,0x70,0x9, +0x75,0x18,0x1, 0xe5,0x91,0xf5,0x1a,0x80,0x11,0x7e,0x71,0x91,0xe5,0x1a,0x12,0x35, +0x72,0x5, 0x1a,0x30,0x91,0xb, 0xc2,0x91,0x5, 0x1a,0xe5,0x1a,0x12,0x35,0xb2,0xf5, +0x91,0x22,0x7c,0x7b,0x6c,0xaa,0x12,0x35,0xd1,0x78,0x9, 0x7c,0xb7,0x12,0x71,0x76, +0x7c,0xab,0x80,0xa, 0xb4,0x4, 0x7, 0x7c,0xb7,0x12,0x2f,0xc1,0x7c,0xab,0x7c,0xba, +0x22,0x7e,0xb3,0x38,0xb4,0xc4,0x54,0x7, 0x22,0x12,0x37,0xeb,0xb4,0x1, 0x17,0xca, +0x39,0x7e,0x18,0x25,0xee,0x7e,0x8, 0x38,0xf4,0x12,0x17,0x2e,0x1b,0xfd,0x12,0x38, +0x30,0x12,0x36,0x13,0x80,0x1a,0xca,0x39,0x7e,0x18,0x2b,0x8f,0x7e,0x8, 0x38,0xf4, +0x12,0x17,0x2e,0x1b,0xfd,0x7e,0x37,0x2b,0x95,0x7a,0x37,0x34,0x88,0x12,0x36,0x1c, +0x2, 0x25,0xc5,0x7e,0x1f,0x25,0xf2,0x7e,0xf, 0x25,0xee,0x22,0x7e,0x1f,0x2b,0x93, +0x7e,0xf, 0x2b,0x8f,0x22,0xe5,0xd, 0x60,0x52,0xe5,0xd, 0x30,0xe0,0x6, 0x53,0xd, +0xfe,0x12,0x37,0xb9,0xe5,0xd, 0x30,0xe1,0x14,0x53,0xd, 0xfd,0x7e,0xb3,0x38,0xf8, +0x70,0x4, 0x74,0x1, 0x80,0x1, 0xe4,0x12,0x37,0xe3,0x12,0xa6,0xb1,0xe5,0xd, 0x30, +0xe2,0x29,0x53,0xd, 0xfb,0xe4,0x7a,0xb3,0x38,0xf9,0x7e,0xb3,0x38,0xf8,0x70,0xa, +0x74,0x1, 0x12,0x0, 0x1e,0x12,0x36,0x1c,0x80,0x7, 0xe4,0x12,0x0, 0x1e,0x12,0x36, +0x13,0x12,0x25,0xc5,0x7e,0xb3,0x2b,0x1b,0x2, 0x36,0x7c,0x22,0xca,0x79,0x7c,0xfb, +0x7e,0x8, 0x24,0xf2,0x12,0xa7,0x27,0x7e,0xa3,0x2a,0x92,0x7e,0x73,0x2a,0x93,0x6c, +0xee,0x80,0x1d,0xa, 0x2e,0x9, 0x62,0x2a,0xfb,0xa, 0x26,0x12,0x57,0xdb,0x7c,0x6b, +0xbe,0x60,0x1c,0x50,0x9, 0xa, 0x2e,0x12,0x36,0xf4,0x19,0xb2,0x24,0xf2,0xb, 0xe0, +0xbc,0x7e,0x38,0xdf,0x6c,0xee,0x80,0x1a,0xa, 0x2e,0x9, 0x62,0x2a,0xd8,0xbe,0x60, +0x23,0x50,0xd, 0xa, 0x1e,0xa, 0x27,0x2d,0x21,0x12,0x36,0xf4,0x19,0xb2,0x25,0xe, +0xb, 0xe0,0xbc,0xae,0x38,0xe2,0x6c,0xee,0x7e,0x30,0xe, 0xac,0x3e,0x2e,0x14,0x24, +0xf2,0x6d,0x0, 0x7c,0xbf,0x7c,0x7e,0x12,0x11,0xba,0xb, 0xe0,0xbe,0xe0,0x5, 0x40, +0xe7,0xda,0x79,0x22,0x2e,0x27,0x2b,0x1d,0x7e,0x29,0xb0,0xa, 0x26,0x22,0xca,0x3b, +0x7e,0xe3,0x2a,0x93,0x7e,0xf3,0x2b,0x19,0x74,0x1, 0x7a,0xb3,0x2b,0x19,0x12,0x37, +0xb9,0x12,0xaf,0xf4,0x12,0x1b,0xc3,0x7e,0x17,0x2b,0x1d,0x6d,0x0, 0x12,0x17,0x53, +0x7e,0xd0,0x7, 0x12,0x3f,0xcf,0x6c,0xcc,0x80,0x19,0x7e,0x34,0x0, 0x1, 0x7c,0xbd, +0x60,0x5, 0x3e,0x34,0x14,0x78,0xfb,0x7c,0x67,0x12,0x37,0xf4,0x4c,0x76,0x7a,0x29, +0x70,0xb, 0xc0,0x12,0x6a,0x53,0x2d,0x23,0xa, 0x3c,0xbd,0x32,0x48,0xdc,0x12,0x37, +0xc0,0x30,0x1c,0xfd,0x12,0x6f,0xd9,0x7e,0xb3,0x2a,0x92,0x7c,0x7e,0x12,0x6a,0x68, +0x6c,0xcc,0x80,0x29,0x74,0x2, 0xac,0xbc,0x49,0x35,0x6, 0xfc,0xbe,0x34,0x15,0x40, +0x50,0x19,0x7e,0x34,0x0, 0x1, 0x7c,0xbd,0x60,0x5, 0x3e,0x34,0x14,0x78,0xfb,0x7c, +0xb7,0x64,0xff,0x12,0x37,0xf4,0x5c,0x7b,0x7a,0x29,0x70,0xb, 0xc0,0x12,0x6a,0x53, +0x2d,0x23,0xa, 0x3c,0xbd,0x32,0x48,0xcc,0x1b,0xd0,0xbe,0xd0,0x0, 0x58,0x84,0x12, +0x69,0xd3,0x74,0x2, 0x12,0x37,0xe3,0x12,0x36,0x7c,0x74,0x2, 0x12,0x0, 0x1e,0x7a, +0xf3,0x2b,0x19,0x12,0x37,0xb9,0xda,0x3b,0x22,0x7e,0x8, 0x2a,0x8c,0x2, 0x5, 0xb4, +0x74,0x2, 0x12,0x0, 0x1e,0x7e,0xb3,0x2b,0x1b,0x12,0x36,0x7c,0x74,0x2, 0x12,0x0, +0x1e,0x74,0x5, 0x7e,0x70,0x9b,0x12,0x13,0x2c,0x12,0x69,0x12,0x7e,0xb3,0x2b,0x1b, +0x2, 0xe, 0x94,0x12,0x0, 0x1e,0x7e,0xb3,0x2b,0x1b,0x22,0x7e,0xb3,0x38,0xf8,0x7e, +0x34,0x0, 0x4, 0x22,0xa, 0x2c,0x2e,0x27,0x2b,0x1d,0x7e,0x29,0x70,0x22,0x12,0xb0, +0x5, 0x12,0x38,0x30,0x6d,0x33,0x7a,0x35,0xa, 0x12,0x22,0xbc,0x12,0x38,0x27,0x74, +0x50,0x7a,0xb3,0x38,0xe8,0x7e,0x24,0x3, 0x20,0x12,0x27,0xf7,0xe4,0x12,0x38,0x3b, +0x6d,0x33,0x7a,0x37,0x39,0xd6,0x22,0x7e,0x73,0x2b,0x81,0x7a,0x73,0x38,0xe7,0x22, +0x7e,0x37,0x25,0xf4,0x7a,0x37,0x34,0x88,0x22,0x74,0x1, 0x7a,0xb3,0x2b,0x20,0x7a, +0xb3,0x2b,0x3c,0x22,0xa2,0xe, 0xe4,0x33,0x7a,0xb3,0x38,0xe2,0x7e,0x73,0x38,0xe6, +0xbe,0x73,0x2b,0x2e,0x68,0xa, 0xe5,0xc, 0x70,0x6, 0x12,0x22,0xbc,0x12,0x38,0x27, +0x22,0x7e,0xf, 0x39,0x97,0x69,0x30,0x0, 0xa, 0x7d,0x23,0x6d,0x33,0x69,0x10,0x0, +0xc, 0x6d,0x0, 0x2f,0x10,0x74,0x7, 0x1e,0x34,0x1e,0x24,0x50,0x3, 0x4e,0x60,0x80, +0x14,0x78,0xf4,0x22,0xca,0xd8,0xca,0x79,0x7d,0xd3,0x90,0x60,0x50,0xe4,0x93,0x7c, +0xfb,0x90,0x60,0x51,0xe4,0x93,0x7c,0x8b,0xa, 0x38,0xa, 0xcf,0x2d,0xc3,0xb, 0xc4, +0x7d,0x3c,0x7c,0xe7,0x12,0x3f,0xcf,0xa9,0xd0,0xc4,0xa9,0xd5,0xcb,0x74,0x7, 0x12, +0x7, 0xfb,0x7c,0x8b,0x74,0x7, 0x7e,0x70,0xf, 0x12,0x3a,0xb2,0x7e,0x54,0x0, 0x78, +0x7e,0x1f,0x39,0x97,0x79,0x51,0x0, 0x6, 0x7e,0x54,0x0, 0x80,0x7e,0x1f,0x39,0x97, +0x79,0x51,0x0, 0x8, 0x7e,0x54,0x0, 0xc, 0x7e,0x1f,0x39,0x97,0x79,0x51,0x0, 0x10, +0xbe,0xd4,0x0, 0x2, 0x78,0x7, 0x12,0x3a,0x4f,0x44,0x1, 0x80,0x1c,0x12,0x3a,0x4f, +0x44,0x8, 0x1b,0x1a,0x50,0x4d,0xdd,0x7e,0x1f,0x39,0x97,0x78,0x7, 0x12,0x3a,0x53, +0x54,0xfb,0x80,0x5, 0x12,0x3a,0x53,0x44,0x4, 0x1b,0x1a,0x50,0x7e,0x1f,0x39,0x93, +0x69,0xe1,0x0, 0x84,0x69,0x51,0x0, 0x90,0x7d,0xf5,0x2e,0x34,0x0, 0x90,0x5e,0xa0, +0xf6,0x1b,0x1a,0x50,0x7e,0xb3,0x38,0x19,0xbe,0xb0,0x6, 0x40,0x3, 0xb4,0xff,0xe, +0x12,0x3a,0x5e,0x54,0xe6,0x12,0x3a,0x5b,0x4e,0x54,0x1, 0xa4,0x80,0xc, 0x12,0x3a, +0x5e,0x5e,0x54,0xfe,0xe6,0x12,0x3a,0x5b,0x44,0xa4,0x1b,0x1a,0x50,0xbe,0xd4,0x0, +0x2, 0x78,0x21,0x12,0x3a,0x4f,0x12,0x3b,0x76,0x12,0x3a,0x4f,0x44,0x50,0x1b,0x1a, +0x50,0x7e,0x34,0x0, 0x2, 0x12,0x3b,0x11,0x12,0x3a,0xbc,0x12,0x38,0x61,0x7a,0x37, +0x34,0x90,0x41,0xb, 0x6c,0xdd,0x41,0x5, 0x4c,0xdd,0x78,0x4, 0x6c,0x99,0x80,0x2b, +0xbc,0xfd,0x40,0x12,0xa, 0xcd,0x9, 0x9c,0x2a,0xd7,0xbe,0x90,0x23,0x40,0x3, 0x7e, +0x90,0x22,0xb, 0x90,0x80,0x15,0xa, 0x3f,0xa, 0xcd,0x9d,0xc3,0x9, 0x9c,0x2a,0xfa, +0xbe,0x90,0x1c,0x40,0x3, 0x7e,0x90,0x1b,0x2e,0x90,0x24,0x12,0x3a,0x4f,0x12,0x3b, +0x76,0xa, 0xc9,0x3e,0xc4,0x3e,0xc4,0x3e,0xc4,0x3e,0xc4,0x12,0x3a,0x4f,0x4d,0x5c, +0x1b,0x1a,0x50,0xe5,0xe, 0x60,0x7, 0xe5,0xe, 0xbe,0xb0,0x64,0x28,0x6, 0x7e,0x34, +0x0, 0x2, 0x80,0x4, 0xe5,0xe, 0xa, 0x3b,0x12,0x3b,0x11,0x12,0x3a,0xbc,0xbe,0xd4, +0x0, 0x1, 0x78,0x10,0x12,0x3a,0xbc,0x12,0x38,0x61,0x74,0x2, 0xac,0xbd,0x59,0x35, +0x34,0x92,0x80,0xf, 0x12,0x38,0x61,0xa, 0x5e,0xa, 0x2d,0x2d,0x25,0x3e,0x24,0x59, +0x32,0x34,0x92,0xb, 0xd0,0xbc,0xed,0x28,0x2, 0x21,0x78,0xa9,0xd5,0xcb,0x74,0x7, +0x7c,0x78,0x12,0x3a,0xb2,0xa9,0xc0,0xc4,0x7e,0x1f,0x39,0x93,0x79,0xe1,0x0, 0x84, +0x7e,0x1f,0x39,0x93,0x79,0xf1,0x0, 0x90,0x6d,0x33,0x7e,0xf, 0x39,0x97,0x79,0x30, +0x0, 0x6, 0x7e,0xf, 0x39,0x97,0x79,0x30,0x0, 0x8, 0x7e,0xf, 0x39,0x97,0x79,0x30, +0x0, 0x10,0x7e,0xf, 0x39,0x97,0x79,0x30,0x0, 0xe, 0xda,0x79,0xda,0xd8,0x22,0x7e, +0x1f,0x39,0x97,0x2e,0x34,0x0, 0xe, 0xb, 0x1a,0x50,0x22,0x1b,0x1a,0x50,0x7e,0x1f, +0x39,0x93,0x2e,0x34,0x0, 0x84,0xb, 0x1a,0x50,0x22,0xf5,0xfd,0x7a,0x71,0xfe,0x22, +0xa9,0xd5,0xcb,0x74,0x2, 0x7e,0x70,0x3f,0x12,0x3a,0x6a,0x74,0xf, 0x12,0x7, 0xfb, +0x7c,0x7b,0x74,0xf, 0x5e,0x70,0xfe,0x12,0x3a,0x6a,0x74,0xc, 0x12,0x7, 0xfb,0x54, +0x7f,0x68,0x8, 0x74,0xc, 0x7e,0x70,0xf8,0x12,0x3a,0x6a,0x7e,0x70,0x72,0x74,0xe, +0x12,0x3a,0x6a,0x74,0x7, 0x12,0x7, 0xfb,0x7c,0x7b,0x5e,0x70,0xfb,0x74,0x7, 0x2, +0x3a,0xb2,0x12,0x3a,0x6a,0x75,0xfd,0xff,0xa9,0xc5,0xcb,0x22,0x7e,0x34,0x0, 0x1, +0x7e,0xf, 0x39,0x97,0x79,0x30,0x0, 0x4, 0x7e,0xf, 0x39,0x97,0x69,0x30,0x0, 0x12, +0x5e,0x34,0x0, 0x1, 0x68,0xf2,0x7e,0x34,0x0, 0x1, 0x79,0x30,0x0, 0x12,0x22,0x6d, +0x33,0x7e,0x8, 0x0, 0x24,0x7e,0x24,0x0, 0x12,0x12,0x63,0x28,0xe5,0x34,0x20,0xe7, +0x1b,0xa9,0xd5,0xcb,0x74,0x3, 0x7e,0x71,0x27,0x12,0x3a,0x6a,0x74,0xb, 0x7e,0x71, +0x2f,0x12,0x3a,0x6a,0x74,0xc, 0x7e,0x71,0x30,0x12,0x3a,0xb2,0x22,0x7e,0x34,0x0, +0x1, 0x7d,0x23,0x80,0x12,0x7e,0x30,0x4, 0x80,0x5, 0x74,0xfa,0x12,0x3b,0x7e,0x7c, +0x23,0x1b,0x30,0xa5,0xba,0x0, 0xf3,0x7d,0x32,0x1b,0x24,0x4d,0x33,0x78,0xe6,0x22, +0x24,0xab,0x68,0x10,0x24,0xef,0x68,0x1c,0x24,0xde,0x68,0x26,0x24,0xde,0x78,0x2f, +0x74,0x5, 0x80,0x2d,0x7e,0xb3,0x34,0x4f,0xb4,0x5, 0x2a,0x12,0x3b,0xd, 0x12,0xa4, +0x31,0x2, 0x3f,0xdc,0x7e,0xb3,0x34,0x4f,0xb4,0x5, 0x1a,0x12,0x3b,0xd, 0x75,0xe9, +0xff,0x22,0x7e,0xb3,0x34,0x4f,0xb4,0x5, 0xc, 0x12,0x3b,0xd, 0x2, 0x3f,0xd6,0x74, +0x1, 0x7a,0xb3,0x34,0x4f,0x22,0x5e,0x54,0x0, 0xf, 0x1b,0x1a,0x50,0x22,0x7c,0xab, +0x80,0xe, 0x7e,0x70,0x3, 0x80,0x1, 0x0, 0x7c,0x67,0x1b,0x70,0xa5,0xbe,0x0, 0xf7, +0x7c,0x6a,0x1b,0xa0,0xa5,0xbe,0x0, 0xea,0x22,0x7c,0x6b,0xa9,0xd5,0xcb,0x74,0xf, +0x12,0x3a,0x6a,0x7a,0x61,0xfc,0x12,0x3a,0xb5,0x12,0x3f,0x47,0xd2,0x0, 0x12,0xa4, +0xb3,0x12,0x3c,0x3, 0x12,0x13,0xde,0x2, 0x13,0x96,0x12,0x3f,0xf3,0xc2,0x0, 0x12, +0xa4,0xbe,0xc2,0x2, 0x12,0x3b,0xe9,0xc2,0x0, 0x12,0xa4,0xb3,0xa9,0xd5,0xcb,0x74, +0xf, 0x12,0x7, 0xfb,0x7a,0x1b,0xb0,0x74,0xf, 0x6c,0x77,0x12,0x3a,0x6a,0xe5,0xfc, +0x7a,0xb, 0xb0,0x43,0xfc,0x10,0x2, 0x3a,0xb5,0xa9,0xd0,0xce,0xa2,0x2, 0xa9,0x91, +0xc9,0x22,0x30,0x1, 0x6, 0x12,0x3c,0x3, 0x2, 0x13,0x96,0x12,0x3f,0xf3,0xc2,0x2, +0x2, 0x3b,0xe9,0xd2,0x2, 0x12,0x3b,0xe9,0x74,0x1, 0x22,0x12,0x3d,0x9c,0x12,0x85, +0x77,0x75,0xcd,0x0, 0xa9,0xd6,0xeb,0xa9,0xd7,0xcd,0xc2,0xce,0x12,0x98,0xa4,0x12, +0x3b,0xba,0x74,0x1, 0x12,0x3d,0xd4,0xa9,0xc6,0xeb,0xa9,0xc7,0xcd,0xd2,0xce,0xe5, +0x25,0x7e,0x71,0x24,0x2, 0x3b,0x99,0x30,0x1c,0x5, 0xc2,0x1, 0x12,0x3b,0xf2,0xa9, +0xd1,0xcd,0xa9,0xc5,0xea,0x30,0x1b,0x3, 0x20,0x1c,0x14,0x12,0x3d,0x9c,0xa9,0xd0, +0xce,0xa9,0xc4,0xc9,0x74,0x2, 0x12,0x3d,0xd4,0xa9,0xd0,0xce,0xa9,0xd4,0xc9,0xa9, +0xc1,0xcd,0xd2,0x1, 0x2, 0x3b,0xf2,0xca,0x3b,0x7e,0xb3,0x38,0xd, 0xb4,0x1, 0x2, +0x80,0x2, 0xa1,0x99,0x6c,0xcc,0x6c,0xdd,0x7e,0xb3,0x38,0x38,0xb4,0x1, 0x8, 0x7e, +0xe0,0x10,0x7e,0xf0,0x32,0x80,0x6, 0x7e,0xe0,0x6, 0x7e,0xf0,0x14,0x12,0x85,0x80, +0x7d,0xf3,0x12,0x6c,0x71,0x50,0xfb,0x74,0x1, 0x7a,0xb3,0x39,0x59,0x12,0x25,0x96, +0x12,0x13,0xc7,0x12,0x0, 0x1e,0x74,0xa, 0x12,0x3b,0x7e,0x12,0xaf,0xf4,0x7e,0xe7, +0x2b,0x2c,0x7a,0xe5,0x25,0x7e,0xb3,0x2b,0x19,0xf5,0x24,0x74,0x4, 0x7a,0xb3,0x2b, +0x19,0x7e,0xe7,0x2b,0x2c,0x5e,0xe4,0x0, 0x3f,0x7a,0xe7,0x2b,0x2c,0x7e,0xb3,0x2b, +0x19,0x12,0xa8,0xbf,0x7c,0x7b,0x74,0x8, 0xac,0x7b,0x7e,0x24,0x0, 0x4, 0x12,0x15, +0x29,0x7d,0x23,0x7d,0x3f,0x12,0x51,0x7f,0xad,0x32,0x7a,0x37,0x2b,0x26,0x12,0x37, +0xb9,0xa1,0x7a,0x12,0x3f,0xcf,0x30,0x11,0x2, 0xa1,0x80,0x7c,0xbe,0x12,0x6f,0xb9, +0x12,0x37,0xd1,0x80,0xf, 0x80,0x7, 0x12,0x3d,0x9c,0xe4,0x12,0x3d,0xd4,0x20,0x93, +0xf6,0x12,0x3c,0x37,0x30,0x1c,0xf7,0x30,0x1b,0xf4,0xd2,0x1, 0x12,0x3b,0xf2,0xe4, +0x12,0x13,0xde,0xb, 0xc0,0x12,0x81,0x65,0x12,0x85,0x85,0x7e,0xa3,0x39,0x58,0x4c, +0xaa,0x78,0x6, 0x74,0x1, 0x7a,0xb3,0x39,0x59,0x4c,0xaa,0x68,0xb, 0x7e,0xb3,0x38, +0x38,0x70,0x5, 0xe4,0x7a,0xb3,0x39,0x58,0x12,0x3e,0xd3,0x78,0x18,0x7e,0xb3,0x39, +0x58,0x60,0x12,0xe4,0x7a,0xb3,0x39,0x58,0x7a,0xb3,0x2a,0x20,0x7a,0xb3,0x2a,0x21, +0x7e,0xd0,0x1, 0x80,0x1b,0x12,0x3e,0xd3,0x68,0x10,0x7e,0xb3,0x39,0x58,0x70,0xa, +0x7e,0xd0,0x1, 0xe4,0x7a,0xb3,0x38,0xd, 0x80,0x6, 0xbc,0xfc,0x28,0x2, 0x81,0xf3, +0xe4,0x7a,0xb3,0x2b,0x23,0x7e,0x35,0x25,0x7a,0x37,0x2b,0x2c,0xe5,0x24,0x7a,0xb3, +0x2b,0x19,0x4c,0xdd,0x68,0x3, 0x12,0x1a,0x7f,0xda,0x3b,0x22,0x74,0x81,0x7a,0xb3, +0x39,0xd4,0x22,0x80,0x1d,0x12,0x3d,0x9c,0x12,0x3f,0x3f,0x68,0x5, 0xc2,0x1, 0x12, +0x3b,0xf2,0x7e,0xb3,0x34,0x3a,0xbe,0xb0,0x2, 0x68,0x18,0x20,0x1b,0x15,0xe4,0x12, +0x3d,0xd4,0x20,0x93,0xe0,0x12,0x3d,0x9c,0xa9,0xd1,0xcd,0xa9,0xc5,0xea,0x74,0x2, +0x2, 0x3d,0xd4,0x22,0x7c,0xab,0x7e,0xb3,0x39,0xd4,0xb4,0x81,0x38,0x4c,0xaa,0x78, +0x5, 0xa9,0xd0,0x87,0x80,0x29,0xbe,0xa0,0x1, 0x78,0xf, 0xc2,0xaf,0xa9,0xd0,0xce, +0xa9,0xc7,0xc9,0xa9,0xd1,0x87,0xd2,0xaf,0x80,0x15,0xbe,0xa0,0x2, 0x78,0x16,0xc2, +0xaf,0x20,0x93,0x9, 0xa9,0xd0,0xce,0xa9,0xd7,0xc9,0xa9,0xd1,0x87,0xd2,0xaf,0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0xe4,0x7a,0xb3,0x39,0xd4,0x22,0x7e,0xb3,0x38,0xd, 0x14, +0x68,0x5a,0x14,0x78,0x2, 0xc1,0xb8,0x14,0x68,0x6a,0x24,0x3, 0x68,0x2, 0xc1,0xb0, +0x12,0x3e,0xcb,0x38,0x8, 0x30,0x14,0xf, 0x12,0x57,0xca,0x68,0xa, 0x12,0xaf,0x4d, +0xe4,0x7a,0xb3,0x39,0x58,0x80,0x71,0x7e,0xb3,0x37,0xee,0x30,0xe0,0x6a,0x7e,0x73, +0x37,0xef,0xa, 0x27,0x7e,0x34,0x4, 0x0, 0xad,0x32,0x7e,0xb3,0x38,0x38,0xb4,0x1, +0xb, 0x7e,0x34,0x62,0x7b,0x12,0xad,0x71,0x2e,0x34,0x4, 0x0, 0xbe,0x37,0x39,0x56, +0x50,0x46,0x12,0x3e,0xbe,0xe4,0x7a,0xb3,0x39,0x5a,0x80,0x3c,0x12,0x3e,0xcb,0x28, +0x32,0xe4,0x7a,0xb3,0x38,0xd, 0x7e,0xb3,0x39,0x58,0xb4,0x1, 0x3, 0x12,0x3e,0xc4, +0xd2,0x1b,0x80,0x1f,0x74,0xff,0x7a,0xb3,0x37,0xe7,0x12,0xb0,0x27,0x12,0x3c,0xb, +0x12,0x19,0x84,0xe4,0x7a,0xb3,0x38,0xd, 0x7a,0xb3,0x39,0xd9,0xd2,0x1b,0x80,0x8, +0x12,0x3e,0xc4,0xe4,0x7a,0xb3,0x39,0xd9,0x12,0x3e,0xf8,0x2, 0x3c,0x67,0x6d,0x33, +0x7a,0x37,0x39,0x56,0x74,0x1, 0x7a,0xb3,0x38,0xd, 0x22,0x7e,0x73,0x2a,0x20,0xbe, +0x70,0x0, 0x22,0x7e,0x73,0x39,0xc5,0xa, 0x37,0x5e,0x34,0x0, 0x2, 0x22,0xd2,0x0, +0x80,0x12,0x30,0x0, 0xc, 0x12,0x3f,0x3f,0x68,0x7, 0xc2,0x0, 0xc2,0x1, 0x12,0x3b, +0xf2,0x12,0x3d,0xa3,0x30,0x1b,0xeb,0x22,0x74,0x1, 0x12,0x3f,0x17,0x20,0x1b,0x6, +0x12,0x3e,0xde,0x12,0x3f,0x20,0x7e,0xb3,0x34,0x3a,0xb4,0x1, 0x6, 0x12,0x3f,0x25, +0x12,0x3f,0x20,0xe4,0x2, 0x3f,0x17,0xbe,0xb0,0x8, 0x50,0x3, 0x12,0xa4,0xaa,0x22, +0xd2,0x1, 0x2, 0x3b,0xf2,0x74,0xc8,0x7a,0xb3,0x39,0xd8,0xc2,0x1b,0x80,0xa, 0x12, +0x3d,0xa3,0x30,0x1b,0x4, 0x75,0xe9,0xff,0x22,0x12,0x3f,0x3f,0x68,0xf1,0x22,0x7e, +0xb3,0x34,0x3a,0xbe,0xb0,0x1, 0x22,0xca,0xf8,0xa2,0xaf,0xe4,0x33,0x7c,0xfb,0xd2, +0x0, 0x12,0xa4,0xbe,0xa9,0xd0,0xcb,0xc2,0xaf,0xa9,0xd0,0x9e,0x75,0x9d,0x0, 0xa9, +0xd0,0x9e,0x75,0x9c,0x20,0xa9,0xd0,0x9e,0xa9,0xd4,0x9e,0xa9,0xd0,0xcd,0x74,0x41, +0x12,0x3b,0x7e,0xa9,0xd0,0x9e,0xa9,0xd7,0x9e,0x2e,0xf0,0xff,0x92,0xaf,0xda,0xf8, +0x22,0xe4,0x12,0xa4,0x79,0x12,0xa5,0x35,0x12,0x3f,0xcf,0x12,0xa5,0x93,0x12,0x3a, +0x70,0x12,0xa4,0x27,0x12,0xa5,0x4c,0x12,0x0, 0x42,0x12,0xa5,0x58,0x12,0x72,0x3f, +0x12,0xa5,0x68,0xd2,0xaf,0x12,0xa4,0xc7,0x12,0x65,0x31,0x12,0x3a,0xdf,0x12,0x3f, +0x47,0x7e,0x8, 0x33,0xef,0x12,0xa5,0xb3,0x90,0x60,0x50,0xe4,0x93,0xca,0xb8,0x90, +0x60,0x51,0xe4,0x93,0x7c,0x7b,0x7e,0x24,0xff,0xff,0xda,0xb8,0x2, 0x12,0x34,0x7e, +0x34,0x3, 0xe8,0x2, 0x1a,0x15,0x75,0xe7,0x6b,0x2, 0x3f,0xdc,0xe4,0x7e,0x34,0xd7, +0xfc,0x7e,0x24,0x0, 0xff,0x7a,0x1b,0xb0,0x7e,0x34,0xd7,0xfd,0x7a,0x1b,0xb0,0x75, +0xe9,0xff,0x22,0xe4,0x12,0x13,0xde,0x2, 0x13,0x96,0xca,0xd8,0xca,0x79,0x7e,0x73, +0x2a,0x8d,0x7e,0xf3,0x2a,0x8c,0xac,0xf7,0x7d,0x37,0x3e,0x34,0x7e,0x8, 0x1f,0x34, +0xe4,0x12,0x17,0x53,0x7e,0xb3,0x38,0xcf,0xb4,0x1, 0x64,0x7e,0x73,0x38,0xd0,0xbe, +0x70,0x0, 0x28,0x5b,0x6c,0xdd,0x80,0x3c,0x12,0x3f,0xcf,0x12,0x1a,0xc4,0x6d,0x33, +0x80,0x28,0x7e,0x35,0x24,0x3e,0x34,0x49,0x33,0xd, 0xc8,0x12,0x17,0x85,0x7a,0x35, +0x26,0x7e,0x35,0x24,0x7d,0x13,0x3e,0x14,0x49,0x21,0x1f,0x34,0xbe,0x25,0x26,0x58, +0x7, 0x7e,0x25,0x26,0x59,0x21,0x1f,0x34,0xb, 0x34,0x7a,0x35,0x24,0xbe,0x75,0x24, +0x38,0xd0,0xb, 0xd0,0x7e,0x73,0x38,0xd0,0xbc,0x7d,0x38,0xbc,0x7d,0x37,0x3e,0x34, +0xca,0x39,0x7e,0x18,0x1f,0x34,0x7e,0x8, 0xd, 0xc8,0x12,0x17,0x2e,0x1b,0xfd,0xda, +0x79,0xda,0xd8,0x22,0x7e,0xb3,0x38,0xc, 0xb4,0x1, 0x4, 0xe4,0x2, 0x40,0x90,0x22, +0x70,0x3, 0xd2,0x86,0x22,0xc2,0x86,0x22,0x12,0x1a,0x99,0x12,0x70,0x44,0x7e,0xb3, +0x38,0xf, 0xb4,0x1, 0x64,0x12,0xa5,0x9a,0x12,0xb0,0x27,0x12,0x6f,0x74,0x12,0x43, +0x91,0x12,0x1a,0xc4,0x50,0xe5,0x12,0x5d,0xa8,0x12,0x5b,0x2b,0x7e,0xb3,0x38,0xc, +0xb4,0x1, 0x4, 0xe4,0x12,0x40,0x90,0x12,0x51,0x88,0x12,0x5f,0xb7,0x12,0x43,0x37, +0x40,0xc9,0x12,0x7b,0xd8,0x12,0x43,0x37,0x40,0xc1,0x12,0x2f,0x9e,0x12,0x1c,0x59, +0x12,0x46,0xdf,0x12,0x77,0xfe,0x12,0x86,0x95,0x12,0x44,0x5f,0x12,0x8a,0x89,0x12, +0x73,0x46,0x12,0x8a,0xff,0x12,0x76,0x82,0x12,0xaa,0x2b,0x12,0x41,0xf, 0x12,0x50, +0x58,0x12,0x85,0x57,0x12,0x50,0x1, 0x80,0x92,0x12,0x6f,0xc3,0x2, 0x40,0x84,0xca, +0x3b,0x75,0x24,0x0, 0x6c,0xff,0x75,0x25,0x0, 0x75,0x26,0x0, 0x75,0x28,0x3, 0x6c, +0xee,0x7e,0x48,0x29,0xbc,0x7e,0xb3,0x2a,0x29,0x70,0xe, 0x7e,0xb3,0x2a,0x25,0x70, +0x8, 0x7e,0xb3,0x2a,0x26,0x70,0x2, 0x61,0x2, 0x30,0x12,0x6, 0x7e,0x68,0x33,0x53, +0x80,0x4, 0x7e,0x68,0x33,0x15,0x7f,0x6, 0x12,0x72,0x8e,0x7e,0x73,0x2a,0x22,0x7a, +0x6b,0x70,0x6c,0xdd,0x41,0xb3,0x74,0x9, 0xac,0xbd,0x9, 0xc5,0x29,0xc, 0x7c,0xbc, +0x54,0xf, 0x12,0x43,0x2d,0xf5,0x28,0x7c,0xbc,0x54,0xf0,0xbe,0xb0,0x0, 0x28,0x2, +0x41,0xb1,0xe5,0x28,0xbe,0xb0,0x3, 0x78,0x2, 0x41,0xb1,0x7e,0x8, 0x0, 0x28,0x7c, +0xbc,0x12,0x8c,0x4f,0x50,0x2, 0x41,0xb1,0x74,0x9, 0xac,0xbd,0x9, 0xb5,0x29,0xd, +0xf5,0x25,0x74,0x9, 0xac,0xbd,0x9, 0xb5,0x29,0xe, 0xc4,0x54,0xf0,0xf5,0x26,0x7e, +0x73,0x2a,0x6c,0xbc,0x7c,0x28,0x57,0x7e,0xb3,0x2a,0x27,0x70,0x2a,0x75,0x29,0xf, +0x7e,0x8, 0x0, 0x25,0xa, 0x3c,0x2e,0x34,0x33,0x1, 0x6d,0x22,0x74,0x1, 0x12,0x43, +0x4f,0x75,0x29,0x20,0x7e,0x8, 0x0, 0x26,0xa, 0x3c,0x2e,0x34,0x33,0xb, 0x6d,0x22, +0x74,0x10,0x12,0x43,0x4f,0x80,0xe, 0xa, 0x3c,0x9, 0xb3,0x33,0x1, 0xf5,0x25,0x9, +0xb3,0x33,0xb, 0xf5,0x26,0xa, 0x3c,0x12,0x43,0x2f,0xb4,0x1, 0x11,0xe4,0xa, 0x3c, +0x19,0xb3,0x33,0x1, 0x19,0xb3,0x33,0xb, 0x75,0x25,0x0, 0x75,0x26,0x0, 0x7e,0xb3, +0x2a,0x83,0xb4,0xff,0x13,0x75,0x25,0x0, 0x74,0x9, 0xac,0xbd,0x9, 0xb5,0x29,0xc, +0xbe,0xb0,0xff,0x68,0x3, 0x75,0x25,0x1, 0x7e,0x90,0x9, 0xac,0x9d,0x49,0xb4,0x29, +0x8, 0x49,0xa4,0x29,0xa, 0xe5,0x28,0xb4,0x1, 0x27,0x75,0x27,0x0, 0x7e,0x71,0x27, +0x74,0x9, 0xac,0x7b,0x9, 0xb3,0x33,0x95,0x54,0xf, 0xbc,0xbc,0x78,0xa, 0x49,0xb3, +0x33,0x91,0x49,0xa3,0x33,0x93,0x80,0x9, 0x5, 0x27,0xe5,0x27,0xbe,0xb0,0xa, 0x40, +0xdc,0x5e,0xb4,0xf, 0xff,0x5e,0xa4,0xf, 0xff,0x9, 0x74,0x29,0xc, 0xa, 0x57,0xc4, +0x54,0xf0,0x7c,0xab,0xe4,0x2d,0xa5,0xbe,0x70,0xff,0x68,0x16,0xe5,0x28,0xbe,0xb0, +0x1, 0x68,0x2, 0x5, 0x24,0xb, 0xf0,0xe5,0x28,0xa, 0x5b,0x12,0xa6,0xa9,0x2d,0xb5, +0x80,0x4, 0x2e,0xb4,0xc0,0x0, 0x7e,0x70,0x6, 0xac,0x7e,0x7f,0x6, 0x2d,0x13,0x79, +0xb0,0x0, 0x2, 0x7f,0x6, 0x2d,0x13,0x79,0xa0,0x0, 0x4, 0xe5,0x25,0x7f,0x6, 0x2d, +0x13,0x39,0xb0,0x0, 0x6, 0xe5,0x26,0x2d,0x3d,0x7d,0x2c,0x39,0xb1,0x0, 0x7, 0xb, +0xe0,0xb, 0xd0,0x7e,0x73,0x2a,0x6c,0xbc,0x7d,0x28,0x2, 0x21,0x56,0xe5,0x24,0x39, +0xb6,0x0, 0x1, 0x7e,0xb3,0x38,0x38,0xb4,0x1, 0x9, 0x7e,0xb3,0x2a,0x26,0xb4,0x1, +0x17,0x80,0xd, 0xbe,0xf0,0x0, 0x38,0x6, 0x7e,0xb3,0x2a,0x26,0x60,0xa, 0xb2,0x12, +0x12,0x71,0x57,0x74,0x1, 0x12,0x40,0x90,0x7e,0xb3,0x2a,0x25,0x60,0x5, 0x7f,0x4, +0x12,0x65,0x5b,0xe4,0x7a,0xb3,0x2a,0x29,0x7a,0xb3,0x2a,0x25,0x7a,0xb3,0x2a,0x26, +0x80,0x4, 0xe4,0x12,0x40,0x90,0x7e,0x34,0x0, 0x5a,0xca,0x39,0x7e,0x18,0x29,0x8, +0x7e,0x8, 0x33,0x91,0x12,0x17,0x2e,0x1b,0xfd,0x4c,0xff,0x78,0xd, 0x7e,0x8, 0x33, +0x91,0x7e,0x34,0x0, 0x5a,0x74,0xff,0x12,0x17,0x53,0xda,0x3b,0x22,0xa, 0x3b,0x2d, +0x39,0x7d,0x28,0x7e,0x1b,0xb0,0x22,0xc2,0x0, 0x7e,0xb3,0x16,0x91,0x60,0x6, 0x7e, +0xb3,0x16,0x90,0x70,0x7, 0x12,0x9f,0xf6,0x28,0x2, 0xd2,0x0, 0xa2,0x0, 0x22,0x7c, +0x9b,0x7f,0x71,0x7e,0x7b,0x80,0x4c,0x88,0x78,0x7, 0x7e,0xb, 0x90,0x7a,0x7b,0x90, +0x22,0xa, 0x28,0x7e,0xb, 0x80,0xa, 0x38,0x9d,0x32,0x12,0x17,0x85,0xe5,0x29,0xa, +0x2b,0xbd,0x32,0x8, 0x15,0x7e,0x7b,0xa0,0x7e,0xb, 0xb0,0xbc,0xba,0x7c,0xba,0x28, +0x4, 0x2c,0xb9,0x80,0x2, 0x9c,0xb9,0x7a,0x7b,0xb0,0x7e,0x7b,0x70,0x7a,0xb, 0x70, +0x22,0x7e,0x34,0x37,0xe8,0x30,0x11,0x47,0xc2,0x11,0x9, 0x53,0x0, 0x2, 0x12,0x43, +0xe0,0x7a,0x27,0x2a,0x6e,0x9, 0x53,0x0, 0x3, 0x12,0x43,0xe0,0x7a,0x27,0x2a,0x70, +0x9, 0x53,0x0, 0x4, 0x12,0x43,0xe0,0x7a,0x27,0x2a,0x72,0x7e,0x39,0x50,0x12,0x43, +0xeb,0x7a,0x27,0x2a,0x79,0x9, 0x53,0x0, 0x1, 0x12,0x43,0xeb,0x7a,0x27,0x2a,0x7b, +0x9, 0x73,0x0, 0x5, 0xa, 0x37,0x12,0xaf,0xcf,0x3e,0x34,0x7a,0x37,0x2a,0x81,0x22, +0xa, 0x25,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x22,0xa, 0x25,0x3e,0x24,0x3e, +0x24,0x22,0x7c,0x67,0x7c,0x7b,0xa5,0xbf,0x0, 0x17,0xbe,0x60,0x0, 0x28,0xf, 0x74, +0x1, 0x7a,0xb3,0x2a,0x25,0xe4,0x7a,0xb3,0x2a,0x27,0x7a,0xb3,0x2a,0x28,0x2, 0x8c, +0xf3,0xa5,0xbe,0x0, 0x1b,0x6c,0xaa,0x7e,0x60,0xff,0x7e,0x50,0x9, 0xac,0x5a,0x19, +0x62,0x29,0x66,0xb, 0xa0,0xbe,0xa0,0xa, 0x78,0xf0,0x74,0x1, 0x7a,0xb3,0x2a,0x24, +0x6c,0xaa,0x80,0x26,0x7e,0x30,0x9, 0xac,0x3a,0x2e,0x14,0x28,0xae,0xb, 0x18,0x20, +0x12,0x43,0xe2,0x1b,0x18,0x20,0x7e,0x30,0x9, 0xac,0x3a,0x2e,0x14,0x28,0xb0,0xb, +0x18,0x20,0x12,0x43,0xe2,0x1b,0x18,0x20,0xb, 0xa0,0xbc,0x7a,0x38,0xd6,0x22,0xca, +0xf8,0x7e,0x68,0x29,0xbc,0x6c,0xaa,0x7e,0x70,0xff,0x12,0xaf,0xe0,0xe4,0xa, 0x4a, +0x19,0xb4,0x1f,0x34,0x74,0xff,0x19,0xb4,0x1f,0x46,0x19,0xb4,0x1f,0x50,0xb, 0xa0, +0xbe,0xa0,0xa, 0x78,0xe2,0x7e,0x73,0x2a,0x20,0xa5,0xbf,0x0, 0x21,0x7e,0xb3,0x39, +0xe1,0x70,0x2, 0xc1,0x5e,0x6c,0xaa,0x7e,0x44,0x7f,0xff,0x12,0xaf,0xea,0x79,0x40, +0x0, 0x14,0x12,0xaf,0xfc,0xb, 0xa0,0xbe,0xa0,0xa, 0x78,0xeb,0xc1,0x5e,0x7e,0xb3, +0x39,0xe1,0x70,0x3d,0xbe,0x70,0x0, 0x28,0x38,0x6c,0xaa,0x80,0x2a,0x7e,0x90,0x9, +0xac,0x9a,0x49,0x34,0x28,0xae,0x12,0xaf,0xea,0x79,0x30,0x0, 0x14,0x49,0x34,0x28, +0xb0,0x7f,0x6, 0x2d,0x12,0x79,0x30,0x0, 0x28,0x74,0x1, 0xa, 0x3a,0x19,0xb3,0x1f, +0x34,0x19,0xa4,0x28,0xb2,0xb, 0xa0,0x7e,0xb3,0x2a,0x20,0xbc,0xba,0x38,0xce,0xc1, +0x5e,0x6c,0xaa,0x12,0x65,0x96,0x3e,0x34,0x59,0x43,0x15,0x4e,0x59,0x43,0x15,0x50, +0x59,0x43,0x15,0x76,0x59,0x43,0x15,0x78,0xb, 0xa0,0xbe,0xa0,0xa, 0x78,0xe4,0x6c, +0xaa,0x80,0x3b,0x6c,0xff,0x7e,0x70,0x2, 0xac,0x7f,0x7f,0x6, 0x2d,0x13,0x69,0x30, +0x0, 0x14,0xbe,0x34,0x7f,0xff,0x68,0x1d,0xa, 0x4f,0x9, 0xb4,0x1f,0x50,0xb4,0xff, +0x14,0x12,0xb0,0x2e,0x59,0x32,0x15,0x4e,0x69,0x30,0x0, 0x28,0x59,0x32,0x15,0x50, +0x12,0xaf,0xae,0x80,0x7, 0xb, 0xf0,0xbe,0xf0,0xa, 0x40,0xc9,0xb, 0xa0,0x7e,0xb3, +0x39,0xe1,0xbc,0xba,0x38,0xbd,0x6c,0xaa,0xa, 0x3a,0x9, 0xb3,0x1f,0x46,0xb4,0xff, +0x17,0x6c,0xff,0xa, 0x4f,0x9, 0xb4,0x1f,0x50,0xb4,0xff,0x5, 0x12,0xaf,0xae,0x80, +0x7, 0xb, 0xf0,0xbe,0xf0,0xa, 0x40,0xeb,0xb, 0xa0,0xbe,0xa0,0xa, 0x78,0xd9,0x6c, +0xaa,0x80,0x1a,0x7e,0x70,0x9, 0xac,0x7a,0x49,0x43,0x28,0xae,0x12,0xb0,0x2e,0x59, +0x42,0x15,0x76,0x49,0x33,0x28,0xb0,0x59,0x32,0x15,0x78,0xb, 0xa0,0x7e,0xb3,0x2a, +0x20,0xbc,0xba,0x38,0xde,0x7e,0x34,0x15,0x4e,0x7a,0x37,0x1f,0x40,0x7e,0x34,0x15, +0x76,0x7a,0x37,0x1f,0x42,0x7e,0x34,0x15,0x9e,0x7a,0x37,0x1f,0x44,0x7e,0x73,0x39, +0xe1,0x7a,0x73,0x1f,0x3e,0x7e,0x73,0x2a,0x20,0x7a,0x73,0x1f,0x3f,0x7e,0x8, 0x1f, +0x3e,0x12,0x4, 0xad,0x6c,0xaa,0x80,0x57,0x7e,0x70,0xff,0x6c,0xff,0x7e,0x50,0x2, +0xac,0x5f,0x49,0x12,0x15,0x9e,0xa, 0x2a,0xbd,0x21,0x78,0x8, 0xa, 0x3f,0x9, 0x73, +0x1f,0x46,0x80,0x7, 0xb, 0xf0,0xbe,0xf0,0xa, 0x40,0xe2,0xbe,0x70,0xff,0x68,0x2d, +0x12,0xaf,0xe0,0x74,0x1, 0xa, 0x47,0x19,0xb4,0x1f,0x34,0x7e,0x90,0x9, 0xac,0x9a, +0x49,0x24,0x28,0xae,0x7e,0x30,0x2, 0xac,0x37,0x2d,0x1d,0x7d,0xc, 0x79,0x20,0x0, +0x14,0x49,0x44,0x28,0xb0,0x7e,0x50,0x2, 0xac,0x57,0x12,0xaf,0xfc,0xb, 0xa0,0x7e, +0x63,0x2a,0x20,0xbc,0x6a,0x38,0xa1,0x6c,0xaa,0xa, 0x3a,0x9, 0xb3,0x1f,0x34,0xbe, +0xb0,0x1, 0x68,0x13,0x12,0x65,0x96,0x7f,0x6, 0x2d,0x13,0x79,0x40,0x0, 0x14,0x2d, +0x3d,0x7d,0x2c,0x79,0x41,0x0, 0x28,0xb, 0xa0,0xbe,0xa0,0xa, 0x78,0xdb,0x7e,0xf3, +0x2a,0x20,0x7a,0xf3,0x39,0xe1,0x6c,0xaa,0xa, 0x3a,0x9, 0xb3,0x1f,0x34,0xb4,0x1, +0x2c,0x12,0x46,0xd8,0x29,0xb1,0x0, 0xa, 0xb4,0x1, 0x6, 0x74,0x3, 0x39,0xb1,0x0, +0xa, 0x12,0x46,0xd8,0x29,0x31,0x0, 0xa, 0xa5,0xbb,0x3, 0x6, 0xe4,0x7a,0x1b,0xb0, +0x80,0x32,0xa5,0xbb,0x0, 0x2e,0x74,0x2, 0x7a,0x1b,0xb0,0x80,0x27,0x12,0x46,0xd8, +0x29,0xb1,0x0, 0xa, 0xbe,0xb0,0x2, 0x68,0x2, 0x70,0x14,0x74,0x1, 0x7a,0x1b,0xb0, +0x7c,0x2f,0xb, 0xf0,0x7e,0x30,0x9, 0xac,0x23,0x19,0xa1,0x28,0xb2,0x80,0x5, 0x74, +0x3, 0x7a,0x1b,0xb0,0x12,0x46,0xd8,0x7e,0x1b,0xb0,0x39,0xb1,0x0, 0xa, 0xb, 0xa0, +0xbe,0xa0,0xa, 0x40,0x93,0xda,0xf8,0x22,0xa, 0x3a,0x2d,0x3d,0x7d,0x2c,0x22,0x2, +0x46,0xe2,0xca,0x3b,0x75,0x28,0x0, 0x7e,0xb3,0x2a,0x8e,0xf5,0x2a,0x7e,0xb3,0x2a, +0x8f,0xf5,0x2b,0x75,0x25,0x0, 0x7e,0xb3,0x16,0x91,0xb4,0x1, 0x2, 0x80,0x3, 0x2, +0x49,0x30,0x6c,0xdd,0x2, 0x49,0x1f,0x7e,0x70,0x2, 0xac,0x7d,0x9, 0xb3,0x26,0xfa, +0xf5,0x29,0x9, 0xc3,0x26,0xfb,0x75,0x26,0x2, 0x75,0x27,0x2, 0x7c,0xbd,0x12,0x5c, +0x4f,0xd2,0x0, 0x12,0x5c,0x18,0x7e,0xb3,0x37,0xf3,0xb4,0x1, 0x1e,0x7e,0xb3,0x2a, +0x21,0xb4,0x1, 0x17,0x7e,0xb3,0x28,0x84,0xb4,0x1, 0x10,0x7e,0x37,0x28,0x86,0xbe, +0x34,0x0, 0xa, 0x40,0x6, 0x75,0x26,0x3, 0x75,0x27,0x3, 0xe5,0x29,0x60,0x5, 0x12, +0x4c,0x10,0x48,0x3, 0x75,0x26,0x1, 0x4c,0xcc,0x68,0xc, 0xe5,0x2b,0xa, 0x2b,0x1b, +0x24,0xa, 0x3c,0xbd,0x32,0x48,0x3, 0x75,0x27,0x1, 0x75,0x25,0x0, 0x75,0x24,0x0, +0x80,0x51,0xe5,0x24,0xbc,0xbd,0x68,0x49,0x12,0x2f,0xa9,0x7a,0xa1,0x2c,0x9, 0xb3, +0x26,0xfb,0xf5,0x2d,0xa, 0x2a,0xe5,0x29,0x12,0x2f,0x7f,0xbe,0x34,0x0, 0x4, 0x18, +0x30,0xe5,0x2d,0xa, 0x2b,0xa, 0x3c,0x9d,0x32,0x12,0x17,0x85,0xbe,0x34,0x0, 0x4, +0x18,0x1f,0x12,0x8d,0xb8,0x40,0xa, 0xe5,0x2c,0x7e,0x71,0x2d,0x12,0x8d,0x74,0x50, +0x5, 0x75,0x25,0x0, 0x80,0x3, 0x75,0x25,0x1, 0x75,0x26,0x1, 0x75,0x27,0x1, 0x80, +0x7, 0x5, 0x24,0x12,0xb0,0x1f,0x38,0xaa,0x12,0x8d,0xb8,0x50,0xb, 0x12,0x5d,0x75, +0x75,0x26,0x0, 0x75,0x27,0x0, 0x80,0xb, 0x12,0x8c,0x4c,0x50,0x6, 0x75,0x26,0x3, +0x75,0x27,0x3, 0xe5,0x25,0x70,0x3, 0x2, 0x48,0xd8,0x6c,0xff,0x6c,0xee,0x12,0x4c, +0x3, 0x18,0x15,0xe5,0x2a,0xa, 0x5b,0xbd,0x35,0x48,0xd, 0x12,0x4b,0xf8,0x18,0x8, +0xe5,0x2b,0xa, 0x5b,0xbd,0x35,0x58,0x3, 0x12,0x49,0x3d,0xb, 0xe0,0xbe,0xe0,0x3, +0x78,0xdc,0xb, 0xf0,0xbe,0xf0,0x3, 0x78,0xd3,0x7e,0xa1,0x2b,0x1b,0xa0,0xbc,0xac, +0x68,0x6, 0x4c,0xcc,0x68,0x2, 0x1, 0xd8,0xe5,0x29,0xbe,0xb0,0x0, 0x38,0x2, 0x1, +0xd8,0x12,0x4c,0x10,0x48,0x2, 0x1, 0xd8,0x7e,0x18,0x0, 0x64,0x7a,0x1d,0x41,0x4c, +0xcc,0x78,0x5, 0x75,0x40,0x2, 0x80,0x7, 0xbc,0xac,0x78,0x3, 0x75,0x40,0x0, 0x6c, +0xff,0x7e,0xa1,0x40,0x3e,0xa0,0x7e,0x90,0x6, 0xac,0x9f,0x7c,0xb9,0x2c,0xba,0x24, +0x2e,0x12,0x49,0x33,0x7e,0x14,0x0, 0x64,0x12,0x15,0x6c,0x7c,0xb9,0x24,0x30,0xa, +0x1b,0xb, 0x18,0x10,0x1a,0x2, 0x1a,0x0, 0x12,0x15,0xc8,0x7e,0xd, 0x41,0xbf,0x10, +0x58,0x3, 0x7a,0x1d,0x41,0xb, 0xf0,0xbe,0xf0,0x3, 0x78,0xc5,0x7e,0x1d,0x41,0xbe, +0x18,0x0, 0x0, 0x58,0x7, 0x7e,0x18,0x0, 0x1, 0x7a,0x1d,0x41,0x6c,0xff,0x74,0x6, +0xac,0xbf,0x24,0x30,0x12,0x49,0x33,0x7e,0xd, 0x41,0x12,0x15,0x5b,0x7e,0x8, 0x0, +0x64,0x12,0x15,0xc8,0x7d,0x43,0xe5,0x29,0xa, 0x3b,0x1b,0x34,0xa, 0x5f,0x2d,0x53, +0xa, 0x2c,0x1b,0x24,0x7e,0xa1,0x40,0xa, 0x3a,0x2d,0x32,0x12,0x4c,0x21,0x1b,0x1a, +0x40,0xb, 0xf0,0xbe,0xf0,0x3, 0x78,0xc6,0xe5,0x26,0x7e,0x71,0x27,0x7c,0x6d,0x7e, +0x51,0x28,0x12,0x49,0x62,0xe5,0x25,0x60,0x2f,0x6c,0xff,0x6c,0xee,0x12,0x4c,0x3, +0x18,0x15,0xe5,0x2a,0xa, 0x5b,0xbd,0x35,0x48,0xd, 0x12,0x4b,0xf8,0x18,0x8, 0xe5, +0x2b,0xa, 0x5b,0xbd,0x35,0x58,0x3, 0x12,0x49,0x3d,0xb, 0xe0,0xbe,0xe0,0x3, 0x78, +0xdc,0xb, 0xf0,0xbe,0xf0,0x3, 0x78,0xd3,0x12,0x5d,0x75,0x5, 0x28,0xb, 0xd0,0x7e, +0x73,0x28,0x84,0xbc,0x7d,0x28,0x3, 0x2, 0x47,0x7, 0xe5,0x28,0x7a,0xb3,0x28,0x84, +0xda,0x3b,0x22,0xa, 0x3b,0xb, 0x38,0x30,0x1a,0x26,0x1a,0x24,0x22,0x1b,0x44,0xa, +0x5f,0x2d,0x54,0xa, 0x2c,0x1b,0x24,0xa, 0x3e,0x2d,0x32,0x12,0x2c,0xb9,0x7d,0x23, +0x7c,0x7e,0x3e,0x70,0x74,0x6, 0xac,0xbf,0x2c,0xb7,0x24,0x2e,0xa, 0x3b,0x1b,0x38, +0x20,0x22,0xca,0x3b,0x7c,0xc4,0x7c,0xf6,0x7c,0xe7,0x7c,0xdb,0x74,0x9, 0xac,0xb5, +0x7d,0x95,0x2e,0x94,0x27,0x76,0x6d,0x88,0x7e,0xe7,0x2a,0x85,0xe4,0x39,0xb4,0x0, +0x6, 0x7e,0x70,0x2, 0xac,0x7f,0x9, 0xb3,0x26,0xfa,0xf5,0x4e,0x9, 0xb3,0x26,0xfb, +0xf5,0x4f,0x7e,0x73,0x2a,0x8d,0x7c,0x6e,0x7e,0x8, 0x0, 0x52,0x12,0x4b,0xa5,0xf5, +0x50,0xe5,0x4e,0x7e,0x73,0x2a,0x8c,0x7c,0x6d,0x7e,0x8, 0x0, 0x51,0x12,0x4b,0xa5, +0x7c,0xab,0xe5,0x51,0x7e,0x71,0x52,0x12,0x4c,0x21,0x7d,0xf3,0x7a,0xf5,0x5a,0x7e, +0xf4,0x15,0x9e,0x7a,0xf5,0x5c,0x85,0x51,0x54,0x85,0x52,0x55,0x7a,0xa1,0x56,0x85, +0x50,0x57,0x7e,0xb3,0x2a,0x78,0xf5,0x58,0x75,0x59,0x0, 0xbe,0xc0,0x1, 0x78,0x8, +0xe5,0x58,0x1e,0xb0,0x1e,0xb0,0xf5,0x58,0x7e,0x8, 0x0, 0x54,0x12,0x80,0xfd,0x7d, +0x23,0x6d,0x33,0x7e,0xb7,0x15,0xa0,0x6d,0xaa,0x2f,0x51,0x7e,0x37,0x15,0xa2,0x6d, +0x22,0x7d,0x3, 0x6d,0x11,0x7e,0x37,0x15,0xa4,0x2f,0x10,0x7a,0x1d,0x45,0x7e,0x37, +0x15,0xa6,0x6d,0x22,0x7d,0x3, 0x7e,0x37,0x15,0xa8,0x2f,0x10,0x7a,0x1d,0x49,0x7f, +0x65,0xa, 0x3d,0xe5,0x4e,0xa, 0xfb,0x9d,0xf3,0x7d,0x3f,0x7c,0xc7,0x61,0x7, 0xa, +0x4e,0xe5,0x4f,0xa, 0x5b,0x9d,0x54,0xf5,0x4d,0x41,0xf1,0xbe,0xc0,0x0, 0x58,0x2, +0x41,0xef,0x7e,0x73,0x2a,0x8c,0xbc,0x7c,0x18,0x2, 0x41,0xef,0xe5,0x4d,0xbe,0xb0, +0x0, 0x58,0x2, 0x41,0xef,0x7e,0x73,0x2a,0x8d,0xbe,0x71,0x4d,0x18,0x2, 0x41,0xef, +0x7c,0xbc,0x7e,0x71,0x4d,0x12,0x2c,0xb9,0x7e,0x53,0x2a,0x78,0xa, 0x25,0x7d,0xf3, +0x9d,0xf2,0xbe,0xf4,0x0, 0x0, 0x8, 0x77,0xbd,0xef,0x18,0xd, 0x7f,0x14,0x2e,0x34, +0x0, 0x6, 0x7e,0x1b,0xb0,0x4, 0x7a,0x1b,0xb0,0xe5,0x4e,0xa, 0x2b,0x1a,0x3c,0x12, +0x4b,0x8c,0x18,0xd, 0xe5,0x4f,0xa, 0x2b,0xe5,0x4d,0x1a,0x3b,0x12,0x4b,0x8c,0x8, +0x4e,0x7c,0xbc,0x7e,0x71,0x4d,0x7c,0x6f,0x12,0xa5,0xf5,0xf5,0x53,0xb4,0x2, 0x6, +0x7d,0x3f,0xe, 0x34,0x9d,0xf3,0xe5,0x53,0xbe,0xb0,0x2, 0x68,0x5, 0xe5,0x53,0xb4, +0x1, 0x2d,0x12,0x4b,0x7d,0x1a,0x1c,0x12,0x4b,0x84,0x7e,0x1d,0x45,0x9f,0x10,0x7a, +0x1d,0x45,0x12,0x4b,0x7d,0xe5,0x4d,0x1a,0x1b,0x12,0x4b,0x84,0x7e,0x1d,0x49,0x9f, +0x10,0x7a,0x1d,0x49,0x12,0x4b,0x7d,0x9f,0x51,0x1a,0x26,0x1a,0x24,0x9f,0x61,0x5, +0x4d,0xa, 0x2e,0xe5,0x4f,0xa, 0x3b,0x2d,0x32,0x1a,0x27,0xe5,0x4d,0x1a,0x3b,0xbd, +0x32,0x18,0x2, 0x41,0x3b,0xb, 0xc0,0xa, 0x2d,0xe5,0x4e,0xa, 0x3b,0x2d,0x32,0x1a, +0x37,0x1a,0xfc,0xbd,0xf3,0x18,0x2, 0x41,0x2f,0xbe,0x58,0x0, 0x0, 0x78,0x2, 0xb, +0x5c,0xbe,0x68,0x0, 0x0, 0x78,0x2, 0xb, 0x6c,0x7e,0x1d,0x45,0x7f,0x5, 0x12,0x4b, +0x96,0x1b,0x4a,0x30,0x7e,0x1d,0x49,0x7f,0x6, 0x12,0x4b,0x96,0x79,0x34,0x0, 0x2, +0x7e,0xb3,0x2a,0x84,0x60,0xd, 0x1e,0xd4,0x1e,0xc4,0x50,0x4, 0x4e,0xd4,0x80,0x0, +0x14,0x78,0xf3,0xbe,0x68,0x0, 0x7f,0x28,0x4, 0x7e,0x68,0x0, 0x7f,0x7d,0x3d,0x39, +0x74,0x0, 0x5, 0x74,0x9, 0xac,0xbf,0x9, 0x75,0x27,0x7c,0x39,0x74,0x0, 0x6, 0xbe, +0x70,0xf, 0x28,0x6, 0x74,0xf, 0x39,0xb4,0x0, 0x6, 0xda,0x3b,0x22,0x7d,0x3f,0x1a, +0x26,0x1a,0x24,0x22,0x1a,0x2, 0x12,0x15,0x5b,0x7f,0x1, 0x22,0x9d,0x32,0x12,0x17, +0x85,0xbe,0x34,0x0, 0x1, 0x22,0x74,0x6, 0x2f,0x11,0x14,0x78,0xfb,0x12,0x15,0x77, +0x2e,0x18,0x0, 0x20,0x22,0xca,0xf8,0x7c,0xf6,0x7c,0x87,0x7c,0x9b,0xa, 0x2f,0x7d, +0x32,0x3e,0x34,0xb, 0x34,0x7c,0xb7,0xbc,0xf9,0x38,0x14,0xa, 0xf8,0x1b,0xf4,0xa, +0x3f,0x9d,0xf3,0xa, 0x39,0xbd,0x3f,0x18,0x6, 0x7c,0xab,0xa, 0x39,0x80,0x1d,0xbc, +0xf9,0x28,0xd, 0xa, 0x39,0xa, 0x5f,0x2d,0x53,0xb, 0x54,0x7c,0xab,0xe4,0x80,0x10, +0xa, 0x3f,0xa, 0x58,0x2d,0x53,0xa, 0x39,0x9d,0x53,0x7c,0xab,0x9d,0x32,0x7c,0xb7, +0x7a,0xb, 0xb0,0x7c,0xba,0xda,0xf8,0x22,0xa, 0x2e,0xa, 0x3c,0x2d,0x32,0xbe,0x34, +0x0, 0x1, 0x22,0xa, 0x3f,0xe5,0x29,0xa, 0x4b,0x2d,0x34,0xbe,0x34,0x0, 0x1, 0x22, +0xe5,0x2a,0xa, 0x2b,0x1b,0x24,0xe5,0x29,0xa, 0x3b,0xbd,0x32,0x22,0x7c,0xbd,0x7c, +0x7e,0x7e,0x13,0x2a,0x8d,0xac,0x1b,0x3e,0x4, 0x7e,0x30,0x2, 0xac,0x37,0x2d,0x10, +0x7e,0x1f,0x13,0x8a,0x2d,0x31,0x22,0x7c,0xbd,0x7c,0x7e,0x7f,0x4, 0xca,0x3b,0x7f, +0x70,0x7c,0xe7,0x7c,0xdb,0x7e,0xc0,0x4, 0x7e,0xb3,0x2a,0x8c,0xf5,0x26,0x7e,0xb3, +0x2a,0x8d,0xf5,0x25,0x7e,0xd4,0x0, 0xc8,0x6c,0xff,0x12,0x4c,0x1d,0xe5,0x26,0xa, +0x1b,0x1b,0x14,0xa, 0xcd,0xbd,0xc1,0x58,0x14,0xe5,0x25,0xa, 0x1b,0x1b,0x14,0xa, +0xce,0xbd,0xc1,0x58,0x8, 0x4c,0xee,0x68,0x4, 0x4c,0xdd,0x78,0x3, 0x4e,0xf0,0x10, +0xb, 0x1a,0xc0,0xbe,0xc4,0x0, 0xc8,0x8, 0xc, 0x7e,0x17,0x28,0x8a,0xbe,0x14,0x3, +0x20,0x8, 0x2, 0xa1,0x81,0xbe,0xc4,0x0, 0x64,0x8, 0xc, 0x7e,0xc7,0x28,0x8a,0xbe, +0xc4,0x3, 0x20,0x58,0x2, 0xa1,0x81,0x6c,0xaa,0x7c,0x8d,0x80,0x1c,0x7c,0x9e,0xbe, +0x80,0x0, 0x48,0x11,0x7e,0xb3,0x2a,0x8c,0xbc,0xb8,0x8, 0x9, 0x12,0x4d,0xb8,0x58, +0x14,0xb, 0xa0,0x80,0x2, 0xb, 0xa0,0x1b,0x80,0x1a,0x2c,0x1a,0x3d,0x9d,0x32,0x1a, +0xc8,0xbd,0xc3,0x18,0xd8,0xbc,0xca,0x18,0x5, 0x4e,0xf0,0x1, 0xa1,0x81,0x6c,0xaa, +0x7c,0x8d,0x80,0x1c,0x7c,0x9e,0xbe,0x80,0x0, 0x48,0x11,0x7e,0xb3,0x2a,0x8c,0xbc, +0xb8,0x8, 0x9, 0x12,0x4d,0xb8,0x58,0x14,0xb, 0xa0,0x80,0x2, 0xb, 0xa0,0xb, 0x80, +0x1a,0x2c,0x1a,0x3d,0x2d,0x32,0x1a,0xc8,0xbd,0xc3,0x48,0xd8,0xbc,0xca,0x18,0x5, +0x4e,0xf0,0x2, 0x80,0x6c,0x6c,0xaa,0x7c,0x9e,0x80,0x1c,0x7c,0x8d,0xbe,0x90,0x0, +0x48,0x11,0x7e,0xb3,0x2a,0x8d,0xbc,0xb9,0x8, 0x9, 0x12,0x4d,0xb8,0x58,0x14,0xb, +0xa0,0x80,0x2, 0xb, 0xa0,0x1b,0x90,0x1a,0x2c,0x1a,0x3e,0x9d,0x32,0x1a,0xc9,0xbd, +0xc3,0x18,0xd8,0xbc,0xca,0x18,0x5, 0x4e,0xf0,0x4, 0x80,0x35,0x6c,0xaa,0x7c,0x9e, +0x80,0x1c,0x7c,0x8d,0xbe,0x90,0x0, 0x48,0x11,0x7e,0xb3,0x2a,0x8d,0xbc,0xb9,0x8, +0x9, 0x12,0x4d,0xb8,0x58,0x14,0xb, 0xa0,0x80,0x2, 0xb, 0xa0,0xb, 0x90,0x1a,0x2c, +0x1a,0x3e,0x2d,0x32,0x1a,0xc9,0xbd,0xc3,0x48,0xd8,0xbc,0xca,0x18,0x3, 0x4e,0xf0, +0x8, 0x4c,0xff,0x68,0x2e,0x7e,0x7b,0xb0,0xbc,0xbd,0x40,0x3, 0x7a,0x7b,0xd0,0x29, +0xb7,0x0, 0x2, 0xbc,0xbd,0x38,0x4, 0x39,0xd7,0x0, 0x2, 0x29,0xb7,0x0, 0x1, 0xbc, +0xbe,0x40,0x4, 0x39,0xe7,0x0, 0x1, 0x29,0xb7,0x0, 0x3, 0xbc,0xbe,0x38,0x4, 0x39, +0xe7,0x0, 0x3, 0x7c,0xbf,0xda,0x3b,0x22,0x7c,0xb8,0x7c,0x79,0x12,0x2c,0xb9,0xbd, +0x3d,0x22,0xca,0x3b,0x7c,0xc7,0x7c,0xfb,0x7f,0x40,0x6d,0xbb,0x7e,0xa3,0x2a,0x8c, +0x7e,0x73,0x2a,0x8d,0x4c,0xcc,0x78,0x5, 0x7e,0xc0,0x1, 0x80,0xd, 0x7c,0xb7,0x14, +0xbc,0xbc,0x78,0x6, 0xa, 0x6c,0x1b,0x65,0x7c,0xcd,0x4c,0xff,0x78,0x5, 0x7e,0xf0, +0x1, 0x80,0xb, 0x7c,0xba,0x14,0xbc,0xbf,0x78,0x4, 0xa, 0x7f,0x1b,0x75,0x7f,0x4, +0x7e,0x34,0x0, 0x6, 0xe4,0x12,0x17,0x53,0x7e,0x73,0x2a,0x8c,0xa, 0x37,0x1b,0x34, +0x7a,0x4b,0x70,0x7e,0x73,0x2a,0x8d,0xa, 0x37,0x1b,0x34,0x39,0x74,0x0, 0x1, 0x7c, +0xec,0x80,0x1d,0x75,0x24,0x0, 0x7c,0xdf,0x80,0xb, 0x12,0x4c,0x37,0x70,0xb, 0x5, +0x24,0xb, 0xb4,0x1b,0xd0,0xbe,0xd0,0x0, 0x58,0xf0,0xe5,0x24,0x60,0x7, 0x1b,0xe0, +0xbe,0xe0,0x0, 0x58,0xde,0x7c,0xec,0x80,0x26,0x75,0x24,0x0, 0x1a,0xaf,0xb, 0xa4, +0x7d,0x3a,0x7c,0xd7,0x80,0xb, 0x12,0x4c,0x37,0x70,0xe, 0x5, 0x24,0xb, 0xb4,0xb, +0xd0,0x7e,0x73,0x2a,0x8c,0xbc,0x7d,0x18,0xed,0xe5,0x24,0x60,0x7, 0x1b,0xe0,0xbe, +0xe0,0x0, 0x58,0xd5,0x12,0x4e,0xd8,0x80,0x1d,0x75,0x24,0x0, 0x7c,0xdf,0x80,0xb, +0x12,0x4c,0x37,0x70,0xb, 0x5, 0x24,0xb, 0xb4,0x1b,0xd0,0xbe,0xd0,0x0, 0x58,0xf0, +0xe5,0x24,0x60,0xa, 0xb, 0xe0,0x7e,0x73,0x2a,0x8d,0xbc,0x7e,0x18,0xdb,0x12,0x4e, +0xd8,0x80,0x22,0x75,0x24,0x0, 0x1a,0x6f,0xb, 0x64,0x80,0xb, 0x12,0x4c,0x37,0x70, +0xe, 0x5, 0x24,0xb, 0xb4,0xb, 0xd0,0x7e,0x73,0x2a,0x8c,0xbc,0x7d,0x18,0xed,0xe5, +0x24,0x60,0xa, 0xb, 0xe0,0x7e,0x73,0x2a,0x8d,0xbc,0x7e,0x18,0xd6,0x7d,0x3b,0x39, +0x74,0x0, 0x5, 0x7d,0x3b,0xda,0x3b,0x22,0x1a,0xac,0xb, 0xa4,0x7d,0x3a,0x7c,0xe7, +0x22,0x7e,0xa3,0x28,0x84,0xe4,0x7a,0xb3,0x35,0xaa,0x6c,0x33,0x80,0x3d,0x7e,0x70, +0x2, 0xac,0x73,0x9, 0x23,0x26,0xfb,0x7e,0x10,0x1, 0x6c,0x0, 0x80,0x27,0xbc,0x3, +0x68,0x21,0x7e,0x70,0x2, 0xac,0x70,0x9, 0x93,0x26,0xfb,0xa, 0x29,0xa, 0x32,0x12, +0x4b,0x8c,0x18,0x2, 0xb, 0x10,0xbe,0x10,0x2, 0x40,0x8, 0x74,0x2, 0x7a,0xb3,0x35, +0xaa,0x80,0x6, 0xb, 0x0, 0xbc,0xa0,0x38,0xd5,0xb, 0x30,0xbc,0xa3,0x38,0xbf,0x2, +0x4f,0x32,0xca,0xf8,0x7e,0x33,0x28,0x84,0x6c,0x22,0x80,0x45,0x74,0x2, 0xac,0xb2, +0x9, 0x15,0x26,0xfa,0x9, 0x5, 0x26,0xfb,0x7e,0xa0,0x1, 0x6c,0x99,0x80,0x2c,0xbc, +0x92,0x68,0x26,0x7e,0x70,0x2, 0xac,0x79,0x9, 0x83,0x26,0xfa,0x9, 0xf3,0x26,0xfb, +0xa, 0x28,0xa, 0x31,0x12,0x4b,0x8c,0x18,0xb, 0xa, 0x2f,0xa, 0x30,0x12,0x4b,0x8c, +0x8, 0x2, 0xb, 0xa0,0xbe,0xa0,0x3, 0x50,0x6, 0xb, 0x90,0xbc,0x39,0x38,0xd0,0xb, +0x20,0xbc,0x32,0x38,0xb7,0x7e,0xb3,0x36,0x44,0xbe,0xb0,0x0, 0x28,0x12,0x14,0x7a, +0xb3,0x36,0x44,0xbe,0xb0,0x14,0x28,0x8, 0x7e,0x34,0x0, 0x8c,0x7a,0x37,0x2a,0x79, +0x7e,0xb3,0x37,0xf3,0x70,0x58,0x7e,0xb3,0x39,0xdd,0x70,0x52,0x7e,0xb3,0x37,0x77, +0x70,0x4c,0x7e,0x37,0x39,0x15,0xbe,0x34,0x0, 0x14,0x50,0x42,0x7e,0x37,0x28,0x8a, +0xbe,0x34,0x3, 0x20,0x58,0x38,0x7e,0xb3,0x28,0x84,0xbe,0xb0,0x3, 0x40,0x2f,0xbe, +0xa0,0x3, 0x40,0x2a,0x7e,0xb3,0x26,0x85,0xbe,0xb0,0x3, 0x50,0x9, 0x7e,0xb3,0x26, +0x84,0xbe,0xb0,0x3, 0x40,0x18,0x7e,0xb3,0x26,0xf6,0xbe,0xb0,0x8, 0x50,0x9, 0x7e, +0xb3,0x26,0xf7,0xbe,0xb0,0x8, 0x40,0x6, 0x74,0x1e,0x7a,0xb3,0x36,0x44,0xda,0xf8, +0x22,0x7e,0x8, 0x39,0xb, 0x12,0x50,0x35,0x7e,0x8, 0x39,0x13,0x12,0x50,0x35,0x12, +0x50,0x51,0x12,0x50,0x4a,0x2, 0x50,0x18,0x7e,0x37,0x39,0xb, 0xbe,0x34,0x0, 0x0, +0x28,0x12,0x7e,0x73,0x39,0xd9,0xbe,0x70,0x5, 0x50,0x9, 0x7e,0xb3,0x38,0x38,0x70, +0x3, 0x12,0x3e,0xbe,0x22,0xb, 0xa, 0x30,0xe5,0x61,0xa, 0x2b,0xbd,0x32,0x28,0x4, +0x9d,0x32,0x80,0x2, 0x6d,0x33,0x1b,0xa, 0x30,0x22,0x7e,0x8, 0x39,0xb9,0x2, 0x50, +0x35,0x7e,0x8, 0x2b,0xd6,0x2, 0x50,0x35,0x7e,0x73,0x28,0x93,0x7a,0x73,0x28,0x94, +0x7e,0x73,0x2a,0x20,0x7a,0x73,0x2a,0x21,0xe4,0x7a,0xb3,0x2a,0x24,0x22,0x7e,0x37, +0x33,0xeb,0xb, 0x34,0x7a,0x37,0x33,0xeb,0x7e,0x37,0x33,0xed,0xbe,0x37,0x33,0xeb, +0x28,0x3, 0x2, 0x50,0x89,0x22,0x2, 0x50,0x6e,0xe5,0x9a,0x60,0x5, 0xd2,0x9c,0xa9, +0xd6,0xdf,0x22,0xca,0x7b,0xca,0x6b,0xca,0x5b,0xca,0x4b,0xca,0x2b,0xca,0x1b,0xca, +0xb, 0xc0,0xd0,0xc0,0x83,0xc0,0x82,0x12,0x50,0x86,0xd0,0x82,0xd0,0x83,0xd0,0xd0, +0xda,0xb, 0xda,0x1b,0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda,0x7b,0x32,0x74, +0xa, 0x7a,0xb3,0x2a,0x6c,0x74,0x10,0x7a,0xb3,0x2a,0x6d,0x12,0x51,0x4, 0x7a,0x37, +0x2a,0x74,0x74,0x1e,0x7a,0xb3,0x2a,0x78,0x12,0x54,0xb1,0x7e,0x34,0x0, 0x96,0x7a, +0x37,0x2a,0x7f,0xe4,0x7a,0xb3,0x2a,0x83,0x74,0x4, 0x7a,0xb3,0x2a,0x84,0x7e,0x34, +0x0, 0x64,0x7a,0x37,0x2a,0x85,0x7e,0x34,0xa, 0x0, 0x7a,0x37,0x2a,0x81,0xe4,0x7a, +0xb3,0x16,0x92,0x22,0x7e,0x34,0x1, 0x18,0x7a,0x37,0x2a,0x6e,0x7a,0x37,0x2a,0x70, +0x7a,0x37,0x2a,0x72,0x22,0x12,0x54,0xb1,0x2, 0x51,0x4, 0x12,0x51,0x15,0x7e,0xb3, +0x37,0x77,0xb4,0x1, 0xc, 0x7e,0x34,0x1, 0x18,0x7a,0x37,0x2a,0x79,0x7a,0x37,0x2a, +0x7b,0x7e,0xb3,0x28,0xa8,0xb4,0x1, 0x1f,0x7e,0x34,0x1, 0x5e,0x7a,0x37,0x2a,0x79, +0x7e,0x34,0x1, 0x2c,0x7a,0x37,0x2a,0x7b,0x7e,0x34,0x1, 0x90,0x7a,0x37,0x2a,0x6e, +0x7e,0x34,0x1, 0x7c,0x12,0x51,0xc, 0x7e,0xb3,0x2a,0x20,0x70,0x21,0x7e,0x27,0x2a, +0x79,0x7d,0x32,0x7e,0x14,0x0, 0x4, 0xad,0x13,0x7d,0x31,0x12,0x51,0x7f,0xbe,0x34, +0x0, 0x50,0x28,0x4, 0x7e,0x34,0x0, 0x50,0x2d,0x32,0x7a,0x37,0x2a,0x79,0x22,0x1e, +0x34,0x1e,0x34,0x1e,0x34,0x1e,0x34,0x22,0x12,0x51,0x1b,0xe4,0x7a,0xb3,0x39,0xdf, +0x2, 0x51,0x93,0xe4,0x7a,0xb3,0x28,0x93,0x12,0x53,0x72,0x7e,0xb3,0x16,0x91,0xb4, +0x1, 0x8, 0x7e,0x73,0x28,0x84,0x7a,0x73,0x28,0x92,0x7e,0x18,0x4, 0xfc,0x7a,0x1f, +0x6, 0xf8,0x12,0x57,0xd2,0x12,0x51,0xdb,0x12,0x59,0x7f,0x7e,0xb3,0x16,0x90,0xb4, +0x1, 0x18,0x7e,0x73,0x26,0x83,0x7a,0x73,0x26,0xf3,0x7e,0x73,0x26,0x85,0x7a,0x73, +0x26,0xf5,0x7e,0x73,0x26,0x84,0x7a,0x73,0x26,0xf4,0x22,0x7e,0x8, 0x26,0x86,0x7e, +0x34,0x0, 0x3, 0xe4,0x12,0x17,0x53,0x7e,0x8, 0x26,0x89,0x7e,0x34,0x0, 0x3, 0x12, +0x17,0x53,0x7a,0xb3,0x26,0x83,0x7a,0xb3,0x26,0x84,0x7a,0xb3,0x26,0x85,0x7a,0xb3, +0x26,0xf0,0x7a,0xb3,0x26,0xf1,0x7a,0xb3,0x26,0xf2,0x7e,0x18,0x26,0x6f,0x12,0x53, +0x49,0x6c,0x55,0x12,0x52,0xa1,0x7a,0xb3,0x26,0x85,0x7e,0x18,0x26,0x5b,0x12,0x53, +0x59,0x6c,0x55,0x12,0x52,0xa1,0x7a,0xb3,0x26,0x84,0x6c,0x77,0x80,0x14,0x12,0x53, +0x2a,0x60,0x5, 0x3e,0x24,0x14,0x78,0xfb,0x12,0x53,0x33,0x2e,0x24,0x26,0x86,0x12, +0x53,0x3e,0x7e,0x63,0x26,0x84,0xbc,0x67,0x38,0xe4,0x6c,0x77,0x80,0x14,0x12,0x53, +0x2a,0x60,0x5, 0x3e,0x24,0x14,0x78,0xfb,0x12,0x53,0x33,0x2e,0x24,0x26,0x89,0x12, +0x53,0x3e,0x7e,0xa3,0x26,0x85,0xbc,0xa7,0x38,0xe4,0x7e,0xb3,0x26,0x84,0xa4,0x7a, +0xb3,0x26,0x83,0x7e,0x18,0x26,0xe6,0x12,0x53,0x49,0x7e,0x50,0x1, 0x12,0x52,0xa1, +0x7a,0xb3,0x26,0xf2,0x7e,0x18,0x26,0xdc,0x12,0x53,0x59,0x7e,0x50,0x1, 0x12,0x52, +0xa1,0x7c,0xab,0x7a,0xa3,0x26,0xf1,0x7e,0xb3,0x26,0xf2,0xa4,0x7a,0xb3,0x26,0xf0, +0x22,0xca,0x69,0xca,0xf8,0x7c,0x4b,0x6c,0xaa,0x6d,0xff,0x6c,0xff,0x80,0x70,0x7e, +0xd0,0x2, 0xac,0xdf,0x7f,0x60,0x2d,0xd6,0xb, 0x6a,0xe0,0x4c,0x55,0x68,0x6, 0x6e, +0xe4,0xff,0xff,0xb, 0xe4,0xbd,0x3e,0x58,0x54,0x4c,0xff,0x78,0x8, 0x6d,0x44,0x69, +0xf0,0x0, 0x2, 0x80,0x1b,0x7c,0xb4,0x14,0xbc,0xbf,0x7f,0x56,0x78,0x9, 0x1b,0xb5, +0xb, 0x5a,0x40,0x6d,0xff,0x80,0x9, 0x1b,0xb5,0xb, 0x5a,0x40,0x69,0xf6,0x0, 0x2, +0x4c,0x55,0x68,0xc, 0x6e,0x44,0xff,0xff,0xb, 0x44,0x6e,0xf4,0xff,0xff,0xb, 0xf4, +0xbd,0x4e,0x58,0x19,0xbd,0xfe,0x18,0x15,0xa, 0xba,0x7e,0x6d,0x24,0x2d,0xdb,0x7a, +0x6b,0xf0,0xb, 0xa0,0x90,0x60,0x9b,0xe4,0x93,0xbc,0xba,0x28,0x6, 0xb, 0xf0,0xbc, +0x4f,0x38,0x8c,0x7c,0xba,0xda,0xf8,0xda,0x69,0x22,0x7c,0xb7,0x54,0x7, 0x7e,0x24, +0x0, 0x1, 0x22,0x7c,0xa5,0x7c,0xb7,0xc4,0x23,0x54,0x1f,0xa, 0x2b,0x22,0x7e,0x29, +0x60,0x4c,0x6a,0x7a,0x29,0x60,0xb, 0x70,0x22,0x7a,0x1d,0x24,0x7e,0xf, 0x6, 0xf8, +0x7e,0xb3,0x2a,0x8d,0x7e,0x37,0x2a,0x72,0x22,0x7a,0x1d,0x24,0x7e,0xa3,0x2a,0x8d, +0x74,0x2, 0xa4,0x7e,0xf, 0x6, 0xf8,0x2d,0x15,0x7e,0xb3,0x2a,0x8c,0x7e,0x37,0x2a, +0x70,0x22,0x6c,0x33,0x80,0x9, 0xe4,0xa, 0x33,0x19,0xb3,0x27,0x72,0xb, 0x30,0x90, +0x60,0x9a,0xe4,0x93,0x12,0x53,0x37,0xb, 0x24,0xa, 0x33,0xbd,0x32,0x48,0xe7,0xe4, +0x7a,0xb3,0x28,0x84,0x7a,0xb3,0x28,0x85,0x6d,0x33,0x7a,0x37,0x28,0x86,0x7a,0x37, +0x28,0x88,0x7a,0x37,0x28,0x8a,0x7a,0x37,0x28,0x8e,0x7e,0xd4,0x1f,0x36,0x5e,0xd4, +0xff,0xfe,0x6d,0xcc,0x7e,0x1f,0x13,0x8a,0x7a,0x37,0x1f,0x76,0x7d,0x3d,0x7a,0x37, +0x1f,0x7a,0x7e,0x34,0x15,0x9e,0x7a,0x37,0x1f,0x78,0x7e,0x73,0x2a,0x8c,0x7a,0x73, +0x1f,0x73,0x7e,0x73,0x2a,0x8d,0x7a,0x73,0x1f,0x72,0x7e,0x37,0x2a,0x7b,0x7a,0x37, +0x1f,0x7c,0x7e,0x37,0x2a,0x7d,0x7a,0x37,0x1f,0x7e,0x7e,0x37,0x2a,0x7f,0x7a,0x37, +0x1f,0x80,0x90,0x60,0x9a,0x93,0x7a,0xb3,0x1f,0x74,0x7e,0x73,0x39,0xe0,0x7a,0x73, +0x1f,0x75,0x7e,0x8, 0x1f,0x72,0x7e,0x18,0x1f,0x82,0x12,0x8, 0x0, 0x7e,0x73,0x1f, +0x82,0x7a,0x73,0x28,0x84,0x7e,0x73,0x1f,0x83,0x7a,0x73,0x28,0x85,0x7e,0x37,0x1f, +0x84,0x7a,0x37,0x28,0x86,0x7e,0x37,0x1f,0x86,0x7a,0x37,0x28,0x88,0x7e,0x37,0x1f, +0x8c,0x7a,0x37,0x28,0x8a,0x7e,0x37,0x1f,0x8e,0x7d,0x23,0x7a,0x53,0x28,0x8c,0xa, +0x36,0x7a,0x73,0x28,0x8d,0x7e,0x37,0x1f,0x88,0x7a,0x37,0x28,0x8e,0x7e,0x37,0x1f, +0x8a,0x7d,0x23,0x7a,0x53,0x28,0x90,0xa, 0x36,0x7a,0x73,0x28,0x91,0x6c,0x33,0x80, +0x20,0x7c,0xb3,0x7e,0x70,0x1, 0x12,0x54,0xcd,0x74,0x2, 0xac,0xb3,0x49,0x45,0x15, +0x9e,0xa, 0x38,0x7c,0x27,0x19,0x25,0x26,0xfa,0x7c,0x29,0x19,0x25,0x26,0xfb,0xb, +0x30,0x7e,0x23,0x28,0x84,0xbc,0x23,0x38,0xd8,0x6c,0x33,0x80,0x1b,0x74,0x2, 0xac, +0xb3,0x7f,0x16,0x2d,0x35,0xb, 0x1a,0x40,0xa, 0x38,0x7c,0x27,0x19,0x25,0x27,0x36, +0x7c,0x29,0x19,0x25,0x27,0x37,0xb, 0x30,0x7e,0x23,0x28,0x85,0xbc,0x23,0x38,0xdd, +0x22,0x7e,0x34,0x0, 0xb4,0x7a,0x37,0x2a,0x79,0x7e,0x34,0x0, 0xa0,0x7a,0x37,0x2a, +0x7b,0x7e,0x34,0xff,0x60,0x7a,0x37,0x2a,0x7d,0x22,0x7e,0x70,0x1, 0x7c,0x67,0x7c, +0x7b,0xc4,0x23,0x54,0x1f,0x7c,0xab,0x7c,0xb7,0x54,0x7, 0xa, 0x2b,0x2e,0x24,0x0, +0x5e,0x12,0x57,0xdf,0x7c,0x7b,0x4c,0x66,0x68,0xf, 0xa, 0x2a,0x2e,0x24,0x27,0x72, +0x7e,0x29,0xb0,0x4c,0xb7,0x7a,0x29,0xb0,0x22,0x7c,0xb7,0x64,0xff,0xa, 0x2a,0x2e, +0x24,0x27,0x72,0x7e,0x29,0x70,0x5c,0x7b,0x7a,0x29,0x70,0x22,0x7c,0xab,0x7e,0xb3, +0x39,0xdd,0x70,0x1b,0x7e,0xb3,0x28,0xa8,0x70,0x15,0x12,0x57,0xca,0x68,0x10,0x7e, +0xb3,0x2a,0x8a,0xbe,0xb0,0x1, 0x68,0x7, 0x7c,0xba,0x6c,0x77,0x2, 0x54,0xcd,0x22, +0xca,0xd8,0xca,0x79,0xc2,0x0, 0x6d,0x88,0x7a,0x87,0x39,0x54,0xe4,0x7a,0xb3,0x1f, +0x58,0xe5,0x1f,0xbe,0xb0,0xff,0x50,0x2, 0x5, 0x1f,0x7e,0xb3,0x28,0x84,0x60,0xa, +0x7e,0x87,0x7, 0xfa,0xbe,0x84,0x1, 0x18,0x58,0xa, 0xc2,0x14,0x6d,0x88,0x7a,0x87, +0x39,0x15,0xc1,0x53,0x12,0x86,0xa, 0x60,0x10,0x7e,0x84,0x0, 0x64,0x7a,0x87,0x39, +0xb, 0x7e,0x84,0x0, 0x32,0x7a,0x87,0x39,0x15,0x7e,0x87,0x39,0xb, 0x4d,0x88,0x68, +0x6, 0x74,0x1, 0x7a,0xb3,0x28,0xa9,0x6c,0xff,0x80,0x76,0xe4,0xa, 0x3f,0x19,0xb3, +0x1f,0x34,0x12,0x56,0xce,0x7e,0x8, 0x1f,0x52,0x7c,0xbd,0x7c,0x7e,0x12,0x4d,0xc2, +0x7d,0x93,0x7e,0x87,0x39,0x15,0xbd,0x89,0x50,0x4, 0x7a,0x97,0x39,0x15,0x7e,0x87, +0x39,0x54,0xbd,0x89,0x50,0x4, 0x7a,0x97,0x39,0x54,0xe5,0x1f,0xbe,0xb0,0x5, 0x38, +0x1f,0x7e,0x8, 0x39,0x17,0x12,0x56,0xdb,0x50,0x7, 0x12,0x56,0xc5,0xd2,0x0, 0x80, +0x2e,0x7e,0x8, 0x39,0x17,0x7e,0x18,0x1f,0x52,0x12,0x57,0x38,0x50,0x21,0x80,0xf, +0xbe,0x94,0x0, 0x32,0x40,0x19,0x7e,0x8, 0x1f,0x52,0x12,0x85,0x95,0x50,0x10,0x12, +0x56,0xc5,0x7e,0x8, 0x1f,0x58,0x7e,0x18,0x1f,0x52,0x12,0x85,0xe4,0xd2,0x0, 0xb, +0xf0,0x12,0x56,0xb5,0x38,0x85,0x30,0x0, 0x30,0x6c,0xff,0x80,0x1c,0x12,0x56,0xce, +0x7e,0x8, 0x1f,0x58,0x12,0x56,0xdb,0x40,0x9, 0xa, 0x3f,0x9, 0xb3,0x1f,0x34,0xb4, +0x1, 0x5, 0x7c,0xbf,0x12,0x55,0xc, 0xb, 0xf0,0x12,0x56,0xb5,0x38,0xdf,0x75,0x1f, +0x0, 0x7e,0x34,0x0, 0x64,0x7a,0x37,0x39,0xb, 0x7e,0x63,0x1f,0x58,0x7e,0x70,0x6, +0xac,0x67,0xb, 0x34,0xca,0x39,0x7e,0x18,0x1f,0x58,0x7e,0x8, 0x39,0x17,0x12,0x17, +0x2e,0x1b,0xfd,0x7e,0x37,0x39,0xb, 0x4d,0x33,0x78,0x34,0x7e,0x37,0x39,0x15,0xbe, +0x34,0x0, 0x32,0x40,0x3e,0x7e,0x37,0x39,0x54,0xbe,0x34,0x0, 0x19,0x40,0x34,0x90, +0x60,0x51,0x12,0x56,0xbc,0x7e,0x73,0x26,0xf7,0xa, 0x37,0xbd,0x32,0x8, 0x24,0x90, +0x60,0x50,0x12,0x56,0xbc,0x7e,0x73,0x26,0xf6,0xa, 0x37,0xbd,0x32,0x8, 0x14,0x6c, +0xff,0x80,0x7, 0x7c,0xbf,0x12,0x55,0xc, 0xb, 0xf0,0x12,0x56,0xb5,0x38,0xf4,0xd2, +0x0, 0x80,0x6, 0x6d,0x33,0x7a,0x37,0x39,0x15,0xa2,0x0, 0x92,0x14,0x12,0x57,0x21, +0xda,0x79,0xda,0xd8,0x22,0x7e,0x73,0x28,0x84,0xbc,0x7f,0x22,0xe4,0x93,0x7c,0x7b, +0x1e,0x70,0xa, 0x27,0x22,0x74,0x1, 0xa, 0x8f,0x19,0xb8,0x1f,0x34,0x22,0x74,0x2, +0xac,0xbf,0x9, 0xd5,0x26,0xfa,0x9, 0xe5,0x26,0xfb,0x22,0x7c,0xbd,0x7c,0x7e,0x7c, +0x6b,0xc2,0x1, 0x6c,0xaa,0x80,0x30,0x7e,0x50,0x6, 0xac,0x5a,0x7f,0x70,0x2d,0xf2, +0xb, 0xf4,0x29,0xb7,0x0, 0x2, 0xbc,0xb6,0x40,0x1b,0x7e,0x7b,0xb0,0xbc,0xb6,0x38, +0x14,0x29,0xb7,0x0, 0x3, 0xbc,0xb7,0x40,0xc, 0x29,0xb7,0x0, 0x1, 0xbc,0xb7,0x38, +0x4, 0xd2,0x1, 0x80,0x9, 0xb, 0xa0,0x7e,0xb, 0xb0,0xbc,0xba,0x38,0xc9,0xa2,0x1, +0x22,0x30,0x14,0x13,0x12,0x57,0xc2,0x68,0x6, 0x7e,0xb3,0x39,0xdd,0x60,0x8, 0x7e, +0x34,0xb, 0xb8,0x7a,0x37,0x39,0x13,0x22,0x7f,0x61,0x7f,0x50,0x7e,0x6b,0x90,0x80, +0x1f,0x29,0x86,0x0, 0x1, 0x80,0xf, 0x7f,0x5, 0x7c,0xb9,0x7c,0x78,0x12,0x56,0xdf, +0x50,0x2, 0xd3,0x22,0xb, 0x80,0x29,0x76,0x0, 0x3, 0xbc,0x78,0x50,0xe9,0xb, 0x90, +0x29,0x76,0x0, 0x2, 0xbc,0x79,0x50,0xd9,0xc3,0x22,0x6c,0xaa,0x7e,0x50,0x9, 0xac, +0x5a,0x49,0x32,0x29,0x62,0x12,0x51,0x7f,0x59,0x32,0x28,0xae,0x7e,0x50,0x9, 0xac, +0x5a,0x49,0x32,0x29,0x64,0x12,0x51,0x7f,0x59,0x32,0x28,0xb0,0x7e,0x90,0x9, 0xac, +0x9a,0x9, 0xb4,0x29,0x66,0x19,0xb4,0x28,0xb2,0x7e,0x90,0x9, 0xac,0x9a,0x9, 0xb4, +0x29,0x67,0x19,0xb4,0x28,0xb3,0x7e,0x90,0x9, 0xac,0x9a,0x9, 0xb4,0x29,0x68,0x19, +0xb4,0x28,0xb4,0xb, 0xa0,0xbe,0xa0,0xa, 0x40,0xb2,0x22,0x7c,0xb9,0x6c,0x77,0x2, +0x54,0xcd,0x7e,0xb3,0x28,0xa8,0xbe,0xb0,0x1, 0x22,0x7e,0xb3,0x38,0x38,0xbe,0xb0, +0x1, 0x22,0x7e,0x18,0x5, 0xf8,0x7a,0x1f,0x6, 0xf4,0x22,0x2e,0x24,0x16,0xe8,0x7a, +0x51,0x82,0x7a,0x41,0x83,0xe4,0x93,0x22,0x7e,0x34,0x0, 0x4, 0xca,0x39,0x7e,0x34, +0x61,0x2d,0x7e,0x24,0x0, 0xff,0x7e,0x8, 0x2b,0x8f,0x12,0x17,0x2e,0x1b,0xfd,0x7e, +0x34,0x2a,0x2d,0x7a,0x37,0x2b,0x95,0xe4,0x7a,0xb3,0x2b,0x93,0x7a,0xb3,0x2b,0x94, +0x7e,0x34,0x0, 0x4, 0xca,0x39,0x12,0x58,0x36,0x7e,0x8, 0x25,0xee,0x12,0x17,0x2e, +0x1b,0xfd,0x7e,0x34,0x2b,0x97,0x7a,0x37,0x25,0xf4,0xe4,0x7a,0xb3,0x25,0xf2,0x74, +0x1, 0x7a,0xb3,0x25,0xf3,0x22,0x7e,0x34,0x61,0x29,0x7e,0x24,0x0, 0xff,0x22,0xe4, +0x7a,0xb3,0x38,0xb4,0x7a,0xb3,0x38,0xb5,0x90,0x60,0x50,0x93,0x7a,0xb3,0x38,0xb6, +0x90,0x60,0x51,0xe4,0x93,0x7a,0xb3,0x38,0xb7,0xe4,0x7a,0xb3,0x38,0xb8,0x74,0xa, +0x7a,0xb3,0x38,0xb9,0xe4,0x7a,0xb3,0x38,0xba,0x7a,0xb3,0x38,0xbb,0x74,0x1, 0x7a, +0xb3,0x38,0xbd,0x74,0x2d,0x7a,0xb3,0x38,0xc1,0x74,0x46,0x7a,0xb3,0x38,0xc2,0x74, +0x6e,0x7a,0xb3,0x38,0xd3,0x74,0x4, 0x7a,0xb3,0x38,0xd4,0xe4,0x7a,0xb3,0x38,0xc0, +0x74,0x64,0x7a,0xb3,0x38,0xd6,0x74,0x7f,0x7a,0xb3,0x38,0xd5,0x74,0x2, 0x7a,0xb3, +0x38,0xd7,0x74,0x40,0x7a,0xb3,0x38,0xd2,0xe4,0x7a,0xb3,0x38,0xcd,0x74,0xfa,0x7a, +0xb3,0x38,0xcb,0x74,0x1e,0x7a,0xb3,0x38,0xcc,0x74,0x1, 0x7a,0xb3,0x38,0xca,0x74, +0xc, 0x7a,0xb3,0x38,0xc9,0x74,0x1, 0x7a,0xb3,0x38,0xce,0xe4,0x7a,0xb3,0x38,0xcf, +0x7a,0xb3,0x38,0xd0,0x7e,0x8, 0x38,0xd8,0x7e,0x34,0x0, 0x2c,0x12,0x17,0x53,0x74, +0x1, 0x7a,0xb3,0x38,0xe3,0x74,0xf4,0x7a,0xb3,0x38,0xe4,0x74,0x19,0x7a,0xb3,0x38, +0xe5,0x74,0x38,0x7a,0xb3,0x38,0xe6,0x7e,0x34,0x0, 0x4, 0xca,0x39,0x12,0x58,0x36, +0x7e,0x8, 0x38,0xf4,0x12,0x17,0x2e,0x1b,0xfd,0x74,0x5, 0x7a,0xb3,0x39,0x1, 0x74, +0x1, 0x7a,0xb3,0x38,0xf8,0x7e,0x34,0x0, 0x28,0xca,0x39,0x7e,0x34,0x61,0xec,0x7e, +0x24,0x0, 0xff,0x7e,0x8, 0x26,0x33,0x12,0x17,0x2e,0x1b,0xfd,0x22,0x6d,0x33,0x6c, +0xaa,0x80,0x14,0xa, 0x2a,0x9, 0xb2,0x2a,0xfb,0x54,0x1, 0x78,0x5, 0x4e,0x70,0x1, +0x80,0x3, 0x4e,0x70,0x10,0xb, 0xa0,0x7e,0x53,0x2a,0x93,0xbc,0x5a,0x38,0xe4,0x6c, +0xaa,0x80,0x1f,0xa, 0x2a,0x9, 0xb2,0x2a,0xd8,0xbe,0xb0,0xd, 0x38,0x5, 0x4e,0x70, +0xc0,0x80,0xd, 0xbe,0xb0,0x1b,0x38,0x5, 0x4e,0x60,0x8, 0x80,0x3, 0x4e,0x60,0x50, +0xb, 0xa0,0x12,0x59,0x78,0x38,0xdc,0x22,0x7e,0xb3,0x2a,0x92,0xbc,0xba,0x22,0xca, +0x3b,0x7e,0xb4,0x7f,0xff,0x7d,0xab,0x7d,0x8b,0x6d,0x22,0x7d,0x32,0x7d,0x9b,0x75, +0x24,0x0, 0x6c,0x99,0x7e,0x78,0x4, 0xfc,0x7e,0x8, 0x5, 0x7a,0xe4,0x7a,0xb3,0x8, +0x8, 0x7a,0xb3,0x8, 0x9, 0x7a,0xb3,0x26,0xf6,0x7a,0xb3,0x26,0xf8,0x7a,0xb3,0x26, +0xf7,0x7a,0xb3,0x26,0xf9,0x6c,0xaa,0x80,0x5f,0x12,0x5a,0xf4,0xb, 0x6a,0xc0,0xbd, +0xca,0x58,0x2, 0x7d,0xac,0xbd,0xc3,0x8, 0x2, 0x7d,0x3c,0x2d,0x71,0x7d,0x60,0xb, +0x3a,0xd0,0xbd,0xd9,0x58,0x2, 0x7d,0x9d,0x7e,0x67,0x2a,0x72,0x7e,0x74,0x0, 0x3, +0xad,0x76,0xbd,0xc7,0x8, 0x2, 0x5, 0x24,0x12,0x5a,0xe1,0xb, 0x3a,0xd0,0xbd,0xcd, +0x8, 0xb, 0x7e,0xb3,0x26,0xf7,0x4, 0x7a,0xb3,0x26,0xf7,0x80,0x19,0x12,0x5a,0xea, +0xb, 0x3a,0xc0,0x6e,0xd4,0xff,0xff,0xb, 0xd4,0xbd,0xcd,0x58,0x9, 0x7e,0xb3,0x26, +0xf9,0x4, 0x7a,0xb3,0x26,0xf9,0xb, 0xa0,0x7e,0xb3,0x2a,0x93,0xbc,0xba,0x38,0x99, +0x7a,0xa7,0x7, 0xfe,0x7a,0x37,0x8, 0x2, 0xe5,0x24,0x7a,0xb3,0x8, 0x9, 0x7a,0x97, +0x8, 0x6, 0x12,0x5a,0xd9,0x2d,0xf5,0x6c,0xaa,0x80,0x50,0x12,0x5a,0xf4,0xb, 0x6a, +0xd0,0xbd,0xd8,0x58,0x2, 0x7d,0x8d,0xbd,0xd2,0x8, 0x2, 0x7d,0x2d,0x7e,0x67,0x2a, +0x70,0x7e,0x74,0x0, 0x3, 0xad,0x76,0xbd,0xd7,0x8, 0x2, 0xb, 0x90,0x12,0x5a,0xe1, +0xb, 0x3a,0xc0,0xbd,0xdc,0x8, 0xb, 0x7e,0xb3,0x26,0xf6,0x4, 0x7a,0xb3,0x26,0xf6, +0x80,0x17,0x12,0x5a,0xea,0xb, 0x3a,0xd0,0x6d,0x99,0x9d,0x9c,0xbd,0xd9,0x58,0x9, +0x7e,0xb3,0x26,0xf8,0x4, 0x7a,0xb3,0x26,0xf8,0xb, 0xa0,0x12,0x59,0x78,0x38,0xab, +0x7a,0x87,0x7, 0xfc,0x7a,0x27,0x8, 0x0, 0x7a,0x93,0x8, 0x8, 0x12,0x5a,0xd9,0x2d, +0x15,0x6c,0xaa,0x80,0x14,0x7e,0x90,0x2, 0xac,0x9a,0x7f,0x70,0x2d,0xf4,0xb, 0x7a, +0x90,0xbd,0x9b,0x58,0x2, 0x7d,0xb9,0xb, 0xa0,0x12,0x59,0x78,0x38,0xe7,0x7a,0xb7, +0x8, 0x4, 0xbd,0x8a,0x58,0x2, 0x7d,0xa8,0x7a,0xa7,0x7, 0xf8,0xbd,0x32,0x58,0x2, +0x7d,0x32,0x7a,0x37,0x7, 0xfa,0xda,0x3b,0x22,0x7e,0xa3,0x2a,0x93,0x74,0x2, 0xa4, +0x22,0x7e,0x74,0x62,0x27,0x7e,0x64,0x0, 0xff,0x22,0x7e,0xf0,0x2, 0xac,0xfa,0x2d, +0x7f,0x7d,0x6e,0x22,0x7e,0xf0,0x2, 0xac,0xfa,0x7f,0x67,0x2d,0xd7,0x22,0xca,0x3b, +0x7f,0x31,0x7a,0xd, 0x24,0x7e,0x35,0x28,0x7a,0x35,0x2f,0x7e,0xd, 0x24,0x7f,0x13, +0x12,0x5d,0xd4,0x7e,0x35,0x28,0x7a,0x35,0x2a,0x12,0x5a,0xd9,0x7e,0xd, 0x24,0x2d, +0x15,0x7f,0x13,0x2d,0x35,0x12,0x5e,0x89,0xda,0x3b,0x22,0x7e,0x37,0x2a,0x6e,0x1e, +0x34,0x7a,0x35,0x28,0x7e,0x8, 0x4, 0xfc,0x7e,0x18,0x4, 0x0, 0x12,0x5a,0xfe,0x7e, +0x37,0x28,0x99,0xe, 0x34,0x7a,0x35,0x28,0x7e,0x8, 0x5, 0x7a,0x7e,0x18,0x4, 0x7e, +0x12,0x5a,0xfe,0x12,0x5b,0x6d,0x12,0x5b,0x99,0x2, 0x5b,0x5c,0xe4,0x7a,0xb3,0x39, +0xe0,0x7e,0xb3,0x28,0xa8,0x60,0x5, 0xe4,0x7a,0xb3,0x39,0xe0,0x22,0xca,0x3b,0x7e, +0xf3,0x2a,0x8d,0x7e,0xe3,0x2a,0x8e,0x7e,0xd3,0x2a,0x8f,0x6c,0xcc,0x80,0x13,0x7c, +0x7c,0xac,0x7f,0x3e,0x34,0x7e,0xf, 0x13,0x8a,0x2d,0x13,0x7c,0xbd,0x12,0x66,0x3f, +0xb, 0xc0,0xbc,0xec,0x38,0xe9,0xda,0x3b,0x22,0x7e,0x63,0x2a,0x8d,0xc2,0x16,0x6c, +0x33,0x80,0x48,0x7c,0x96,0xac,0x93,0x2e,0x44,0x0, 0x16,0x7d,0x4, 0xb, 0x4, 0x7d, +0x54,0x3e,0x54,0x7e,0x7f,0x13,0x8a,0x2d,0xf5,0xb, 0x7a,0x50,0xbe,0x57,0x2a,0x79, +0x8, 0x27,0x7c,0xb3,0x12,0x5b,0xfc,0x50,0x20,0x7d,0x50,0x3e,0x54,0x7e,0x7f,0x13, +0x8a,0x7f,0x67,0x2d,0xd5,0xb, 0x6a,0x20,0x7d,0x54,0x3e,0x54,0x2d,0xf5,0xb, 0x7a, +0x50,0xbd,0x52,0x8, 0x4, 0xd2,0x16,0x80,0xa, 0xb, 0x30,0x7e,0x73,0x2a,0x94,0xbc, +0x73,0x38,0xb0,0x30,0x16,0x5, 0xd2,0x0, 0x2, 0x5c,0x18,0x22,0x7c,0xab,0x6c,0x77, +0xa, 0x27,0x2e,0x24,0x60,0xac,0x12,0x57,0xdf,0xbc,0xba,0x78,0x2, 0xd3,0x22,0xb, +0x70,0xbe,0x70,0x3, 0x40,0xea,0xc3,0x22,0x6c,0x33,0x6c,0x22,0x80,0x28,0x7c,0xb2, +0x12,0x5b,0xfc,0x50,0x1f,0x7c,0xb2,0x12,0x5d,0x61,0x3e,0x34,0x7e,0x7f,0x13,0x8a, +0x2d,0xf3,0xb, 0x7a,0x30,0x12,0x5d,0xa0,0x59,0x35,0x39,0xbb,0x30,0x0, 0x5, 0x6d, +0x33,0x1b,0x7a,0x30,0xb, 0x20,0x7e,0x73,0x2a,0x94,0xbc,0x72,0x38,0xd0,0x22,0xca, +0x79,0x7c,0x5b,0x7e,0x43,0x28,0x84,0xbe,0x40,0x1, 0x28,0x2, 0xa1,0x5e,0x7e,0xa3, +0x2a,0x8d,0x7e,0x70,0x2, 0xac,0x75,0x9, 0xf3,0x26,0xfa,0x9, 0xe3,0x26,0xfb,0x7c, +0xbf,0x7c,0x7e,0x12,0x4c,0x21,0x7f,0x51,0x7c,0x1e,0x7c,0x3f,0x7e,0x3, 0x2a,0x8f, +0x7e,0x23,0x2a,0x8e,0xa, 0x3a,0x6d,0xdd,0x9d,0xd3,0xa, 0x9a,0xa, 0xc0,0x1b,0xc5, +0xa, 0x51,0xbd,0x5c,0x58,0x2, 0xa1,0x5e,0xa, 0x53,0x1b,0x54,0xbe,0x54,0x0, 0x0, +0x48,0x55,0x7c,0xb3,0x14,0x12,0x5b,0xfc,0x50,0x4d,0x7c,0xb3,0x14,0x12,0x5d,0x61, +0x7d,0xe3,0x7d,0x5e,0x12,0x5d,0x6c,0xb, 0x1a,0xf0,0x7d,0x5d,0x3e,0x54,0x7f,0x15, +0x2d,0x35,0xb, 0x1a,0x80,0xbe,0xf4,0x0, 0x0, 0x8, 0x11,0x9d,0x8f,0xbe,0x84,0x0, +0x0, 0x58,0x4, 0x6d,0x55,0x80,0x2, 0x7d,0x58,0x1b,0x1a,0x50,0x7c,0xb0,0x24,0xfe, +0xbc,0xb1,0x78,0x13,0x7d,0x4e,0x1b,0x44,0x7d,0x54,0x12,0x5d,0x6c,0xb, 0x1a,0x50, +0xbd,0x58,0x8, 0x3, 0x1b,0x1a,0x80,0xa, 0x83,0xb, 0x84,0xa, 0x52,0xbd,0x85,0x58, +0x5d,0x7c,0xb3,0x4, 0x12,0x5b,0xfc,0x50,0x55,0x7c,0xb3,0x4, 0x12,0x5d,0x61,0x7d, +0xe3,0x7d,0x1e,0x3e,0x14,0x7e,0x1f,0x13,0x8a,0x7f,0x61,0x2d,0xd1,0xb, 0x6a,0xf0, +0x7d,0x19,0x3e,0x14,0x7f,0x65,0x2d,0xd1,0xb, 0x6a,0x10,0xbe,0xf4,0x0, 0x0, 0x8, +0x11,0x9d,0x1f,0xbe,0x14,0x0, 0x0, 0x58,0x4, 0x6d,0x55,0x80,0x2, 0x7d,0x51,0x1b, +0x6a,0x50,0x7c,0xb0,0x24,0xfe,0xbc,0xb1,0x78,0x14,0x7d,0x4e,0x1b,0x44,0x7d,0x4, +0x3e,0x4, 0x2d,0x30,0xb, 0x1a,0x0, 0xbd,0x1, 0x8, 0x3, 0x1b,0x1a,0x10,0xda,0x79, +0x22,0x7e,0x73,0x2a,0x8d,0xac,0x7b,0x2e,0x34,0x0, 0x17,0x22,0x3e,0x54,0x7e,0x1f, +0x13,0x8a,0x2d,0x35,0x22,0x6c,0x33,0x6c,0x22,0x80,0x1c,0x7c,0xb2,0x12,0x5b,0xfc, +0x50,0x13,0x7c,0xb2,0x12,0x5d,0x61,0x7d,0x3, 0x12,0x5d,0xa0,0x49,0x55,0x39,0xbb, +0x7d,0x40,0x12,0x5f,0xc0,0xb, 0x20,0x7e,0x73,0x2a,0x94,0xbc,0x72,0x38,0xdc,0x22, +0x7c,0xa3,0xb, 0x30,0x74,0x2, 0xa4,0x22,0x6c,0x33,0x80,0x1f,0x7c,0xb3,0x12,0x5b, +0xfc,0x40,0x16,0x7c,0xb3,0x12,0x5d,0x61,0x7d,0x43,0x6d,0x55,0x7d,0x4, 0x3e,0x4, +0x7e,0x1f,0x13,0x8a,0x2d,0x30,0x1b,0x1a,0x50,0xb, 0x30,0x7e,0x23,0x2a,0x94,0xbc, +0x23,0x38,0xd9,0x22,0xca,0x3b,0x7f,0x61,0x7f,0x50,0x7e,0x73,0x2a,0x8d,0xa, 0x37, +0x3e,0x34,0xca,0x39,0x7f,0x16,0x7f,0x5, 0x12,0x17,0x2e,0x1b,0xfd,0x6c,0xdd,0x12, +0x5f,0x79,0x7a,0xb3,0x1f,0x6c,0x6c,0xcc,0x80,0x45,0x12,0x5e,0x78,0x78,0x3e,0x12, +0x5f,0x81,0xb, 0x1a,0xe0,0x7d,0x3f,0x12,0x17,0x85,0x7d,0x13,0x7d,0x3e,0x12,0x17, +0x85,0xbd,0x31,0x58,0x2, 0x7d,0xfe,0xbe,0xe5,0x2f,0x8, 0x5, 0x7e,0xe5,0x2f,0x80, +0xb, 0x6d,0x33,0x9e,0x35,0x2f,0xbd,0x3e,0x8, 0x2, 0x7d,0xe3,0x7d,0x3e,0x1a,0x26, +0x1a,0x24,0x2f,0x41,0x7e,0xb3,0x1f,0x6c,0x4, 0x7a,0xb3,0x1f,0x6c,0xb, 0xc0,0x7e, +0x73,0x2a,0x8f,0xbc,0x7c,0x38,0xb3,0x7e,0x73,0x1f,0x6c,0x4c,0x77,0x68,0x1d,0x12, +0x5f,0x9f,0x8, 0x2, 0x7d,0x7f,0x6c,0xcc,0x80,0xa, 0x12,0x5e,0x78,0x78,0x3, 0x12, +0x5f,0x8a,0xb, 0xc0,0x7e,0x73,0x2a,0x8f,0xbc,0x7c,0x38,0xee,0xb, 0xd0,0xbe,0xd0, +0x2, 0x50,0x2, 0xa1,0xef,0xda,0x3b,0x22,0xa, 0xec,0x9, 0x7e,0x2a,0xfb,0xa, 0x37, +0x5e,0x34,0x0, 0x1, 0xa, 0xed,0xbd,0x3e,0x22,0xca,0x3b,0x7f,0x61,0x7f,0x50,0x7e, +0x14,0x19,0x4a,0x7e,0x4, 0x0, 0xff,0x69,0x30,0x0, 0x2, 0xb, 0xa, 0x20,0x7a,0x1d, +0x2c,0x7e,0x73,0x2a,0x8c,0xa, 0x37,0x3e,0x34,0xca,0x39,0x7f,0x16,0x7f,0x5, 0x12, +0x17,0x2e,0x1b,0xfd,0x6c,0xdd,0x12,0x5f,0x79,0x7a,0xb3,0x1f,0x34,0x6c,0xcc,0x80, +0x4a,0x12,0x5f,0x69,0x40,0x43,0x12,0x5f,0x5f,0x50,0x3e,0x12,0x5f,0x81,0xb, 0x1a, +0x10,0x7d,0x3f,0x12,0x17,0x85,0x7d,0x3, 0x7d,0x31,0x12,0x17,0x85,0xbd,0x30,0x58, +0x2, 0x7d,0xf1,0xbe,0x15,0x2a,0x8, 0x5, 0x7e,0x15,0x2a,0x80,0xb, 0x6d,0x0, 0x9e, +0x5, 0x2a,0xbd,0x1, 0x8, 0x2, 0x7d,0x10,0x7d,0x31,0x1a,0x26,0x1a,0x24,0x2f,0x41, +0x7e,0xb3,0x1f,0x34,0x4, 0x7a,0xb3,0x1f,0x34,0xb, 0xc0,0x12,0x5f,0x58,0x38,0xb1, +0x7e,0x73,0x1f,0x34,0x4c,0x77,0x68,0x34,0x12,0x5f,0x9f,0x8, 0x2, 0x7d,0x7f,0xbe, +0x75,0x2a,0x8, 0x5, 0x7e,0x75,0x2a,0x80,0xb, 0x6d,0xee,0x9e,0xe5,0x2a,0xbd,0xe7, +0x8, 0x2, 0x7d,0x7e,0x6c,0xcc,0x80,0xf, 0x12,0x5f,0x69,0x40,0x8, 0x12,0x5f,0x5f, +0x50,0x3, 0x12,0x5f,0x8a,0xb, 0xc0,0x12,0x5f,0x58,0x38,0xec,0xb, 0xd0,0xbe,0xd0, +0x3, 0x50,0x2, 0xc1,0xb6,0xda,0x3b,0x22,0x7e,0x73,0x2a,0x8e,0xbc,0x7c,0x22,0x7c, +0x1d,0x2e,0x10,0x2d,0xa5,0xe7,0xbc,0xab,0x22,0xa, 0xec,0x9, 0xae,0x2a,0xd8,0x7c, +0x1d,0x2e,0x10,0x2c,0xa5,0xe7,0xbc,0xab,0x22,0x7e,0xf4,0x7f,0xff,0x9f,0x44,0xe4, +0x22,0x74,0x2, 0xac,0xbc,0x7f,0x16,0x2d,0x35,0x22,0x74,0x2, 0xac,0xbc,0x7f,0x16, +0x2d,0x35,0xb, 0x1a,0xe0,0x9d,0xe7,0x7f,0x15,0x2d,0x35,0x1b,0x1a,0xe0,0x22,0xa, +0x17,0x6d,0x0, 0x7f,0x14,0x12,0x15,0xc8,0x7d,0x73,0x12,0x17,0x85,0x7d,0xe3,0x7d, +0x3f,0x12,0x17,0x85,0xbd,0x3e,0x22,0x30,0x16,0x5, 0x12,0x5d,0x75,0xc2,0x16,0x22, +0x3e,0x44,0x7e,0x1f,0x13,0x8a,0x2d,0x34,0x1b,0x1a,0x50,0x22,0x7c,0xab,0x7c,0xb7, +0xb4,0x17,0x9, 0x7c,0xba,0x12,0x5b,0xfc,0x50,0x2, 0xd3,0x22,0xc3,0x22,0xa9,0xc5, +0xca,0xe4,0x7a,0xb3,0x39,0xe4,0x22,0xa9,0xc6,0xb3,0x75,0xb5,0x0, 0x22,0x74,0x2, +0x7d,0x3f,0x2, 0x64,0xd3,0x74,0x6, 0x12,0x63,0x91,0x7d,0x3, 0x6c,0x11,0x22,0xff, +0x70,0x8f,0x0, 0xff,0x51,0xae,0x5a,0xa5,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x34,0x37,0x31,0x1, 0xc, 0x3b,0x34,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0xb, 0xf4,0x43,0x33,0x42,0x5f,0x57,0x68,0x69,0x74,0x65,0x5f,0x45,0x42,0x42,0x47, +0xd, 0x18,0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0xf, 0xe, 0xd, 0xc, 0xb, 0xa, 0x9, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x14,0x13,0x12,0x11,0x10,0xf, 0x9, 0xa, 0xb, 0xc, 0xd, +0xe, 0x15,0x16,0x17,0x8, 0x7, 0x6, 0x5, 0x4, 0x3, 0x2, 0x1, 0x0, 0x0, 0x0, 0x0, +0x0, 0x5, 0x0, 0x4, 0xff,0x23,0x1c,0x2, 0xdf,0xa, 0x1e,0xa, 0x64,0x1e,0x10,0x0, +0x4, 0x0, 0x64,0xd, 0xac,0x0, 0xc8,0x3, 0x1, 0x0, 0x0, 0x17,0x2, 0x6, 0xa, 0x0, +0x0, 0x0, 0x46,0x0, 0xe6,0x1, 0x18,0x1, 0xb8,0x1, 0xf4,0x2, 0x94,0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c,0x1, 0x68,0x2, 0x44,0x0, 0x0, 0x0, 0x0, 0x7, +0xd0,0x0, 0x14,0x1, 0x19,0x38,0x1, 0xf4,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e, +0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e, +0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x64,0x64,0x64,0x64,0x64, +0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64, +0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x0, 0x4, 0x64,0x20,0x1, 0x20,0x2, 0x0, 0x0, +0x0, 0x0, 0x1, 0xf4,0x7f,0x40,0xd, 0x18,0x25,0x18,0x10,0x6, 0x80,0x18,0x10,0x6, +0x78,0x8, 0x10,0x4, 0x20,0x1, 0x0, 0x2, 0xd0,0x34,0x32,0x1, 0xfb,0x2, 0x28,0x0, +0xdf,0x0, 0xe3,0x5, 0x0, 0x37,0x37,0x1, 0xb8,0x1, 0xba,0x0, 0xe0,0x0, 0xe0,0x0, +0xb4,0x0, 0xa0,0x0, 0xa0,0x1, 0x18,0x0, 0x8c,0x1, 0x18,0x1, 0x18,0xa, 0x0, 0x1, +0x68,0x6, 0x10,0x14,0x32,0x1, 0xf, 0xb, 0x1e,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0xb, 0xf7,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22,0x15, +0x0, 0x3, 0x54,0x1, 0x0, 0xb, 0x1, 0x51,0x1, 0x14,0x0, 0x5a,0x1, 0x1, 0x12,0x0, +0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x55,0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x96,0x2, 0x26,0x0, 0x50,0x0, 0x27,0x0, 0x1, 0x0, 0x2, 0x1, 0x4, 0x1, 0x90,0x0, +0xc8,0x0, 0x50,0x1, 0xf4,0x0, 0x96,0x1, 0x2c,0x1, 0x2c,0x4, 0x38,0x2, 0x64,0x7f, +0x20,0x26,0x2, 0x31,0x47,0x20,0x34,0x2, 0x61,0x97,0x20,0x46,0x2, 0x49,0x70,0x30, +0x38,0x2, 0x64,0x7f,0x20,0x38,0x2, 0x64,0x7f,0x20,0x38,0x2, 0x64,0x7f,0x20,0x38, +0x2, 0x64,0x7f,0x20,0x4, 0x5, 0x10,0x11,0x12,0x13,0x14,0x4, 0x0, 0xd2,0x2, 0x30, +0x32,0x0, 0xc8,0x1, 0x5e,0x0, 0x64,0x0, 0x64,0x0, 0x96,0x0, 0x64,0xb, 0xb8,0x8, +0x5, 0x6, 0x80,0x1, 0x90,0x1, 0x2c,0x1, 0xc2,0x3, 0x20,0xf, 0xa0,0x1, 0x3, 0x20, +0x4, 0xb0,0x3, 0x20,0x1, 0x2, 0x2, 0x4, 0x4, 0x6, 0x40,0x1, 0x18,0x1, 0x18,0x1, +0x90,0x1, 0x90,0x1, 0x90,0x1, 0x5e,0x1, 0x2c,0x1, 0x90,0x1, 0x7c,0x1, 0x7c,0x0, +0x64,0x0, 0x46,0x0, 0x78,0x0, 0x78,0x0, 0x64,0x1, 0x18,0x1, 0x18,0x14,0x8, 0x0, +0x50,0x2, 0x80,0x0, 0x50,0x4, 0xb0,0x0, 0x32,0x1, 0xf4,0x1, 0xf4,0x3, 0x20,0x0, +0x14,0x0, 0x37,0x0, 0x1e,0x0, 0x80,0x0, 0xb4,0x0, 0xa0,0x0, 0x3c,0x3, 0xe8,0x1, +0x40,0x0, 0x5a,0x0, 0x3c,0x3, 0xe8,0x0, 0x20,0x2, 0xb0,0x0, 0x0, 0x5, 0x0, 0x0, +0x64,0x0, 0xa0,0x0, 0xa0,0x13,0x88,0x1, 0x2c,0x0, 0xa0,0x0, 0xa0,0x10,0x0, 0xc, +0x0, 0xa, 0xb, 0x5, 0x5, 0x7, 0x8, 0x6, 0x6, 0xc, 0x64,0xc8,0x7e,0x54,0x0, 0x54, +0x7e,0x44,0x0, 0xff,0x69,0x32,0x0, 0x4, 0x69,0x22,0x0, 0x2, 0xb, 0x2a,0x10,0x7a, +0x1d,0x26,0x7a,0x15,0x24,0x7e,0x34,0x0, 0x20,0x7e,0x8, 0x0, 0x24,0x7e,0x24,0x0, +0x6, 0x12,0x63,0x28,0x74,0x2d,0x7a,0xb3,0x37,0xe8,0x74,0x28,0x7a,0xb3,0x37,0xe9, +0x74,0x11,0x7a,0xb3,0x37,0xea,0x7a,0xb3,0x37,0xeb,0x7a,0xb3,0x37,0xec,0x74,0xa0, +0x7a,0xb3,0x37,0xed,0x7e,0x34,0x0, 0x6a,0xca,0x39,0x7e,0x34,0x61,0x65,0x7e,0x24, +0x0, 0xff,0x7e,0x8, 0x37,0xee,0x12,0x17,0x2e,0x1b,0xfd,0xe5,0x25,0x7a,0xb3,0x38, +0x19,0xe5,0x28,0x7a,0xb3,0x38,0x8, 0x22,0x7d,0x42,0x7f,0x60,0x7d,0x3, 0x12,0x65, +0x4b,0x74,0x2, 0x12,0x63,0x91,0x7d,0xf3,0x4e,0xf4,0x0, 0x1, 0x4e,0xf4,0x0, 0xa, +0x12,0x5f,0xee,0x7a,0x45,0x36,0x7d,0x30,0x6d,0x22,0x7f,0x6, 0x12,0x64,0x6e,0x5e, +0xf4,0xff,0xfd,0x12,0x5f,0xee,0x2, 0x5f,0xde,0x7e,0x8, 0x26,0x5b,0x7e,0x34,0x2, +0x3a,0xe4,0x12,0x17,0x53,0x7e,0x8, 0x26,0x8c,0x7e,0x34,0x0, 0xc8,0x74,0xff,0x12, +0x17,0x53,0x7e,0x8, 0x26,0xb4,0x7e,0x34,0x0, 0xc8,0x12,0x17,0x53,0x90,0x60,0x9a, +0xe4,0x93,0x7c,0x7b,0x74,0x9, 0xac,0x7b,0x7e,0x8, 0x27,0x76,0x74,0xff,0x2, 0x17, +0x53,0x7c,0x6b,0x6c,0x77,0x6c,0xaa,0x7e,0xb3,0x39,0xe4,0xb4,0xa5,0x46,0x12,0x65, +0x2a,0x75,0xb5,0x5, 0xa9,0x36,0xb3,0xfc,0x12,0x5f,0xe7,0xa9,0x36,0xb3,0xfc,0x12, +0x5f,0xe7,0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0x7a,0x61,0xb5,0xa9,0x36,0xb3,0xfc, +0x12,0x5f,0xe7,0xa9,0x36,0xb3,0xfc,0x12,0x5f,0xe7,0xa9,0x36,0xb3,0xfc,0xa9,0xc6, +0xb3,0x7e,0x71,0xb5,0x75,0xb5,0x0, 0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0x7e,0xa1, +0xb5,0xa9,0xd2,0xb4,0x7c,0x47,0x6c,0x55,0xa, 0x3a,0x4d,0x32,0x22,0x7e,0x8, 0x28, +0xae,0x7e,0x34,0x1, 0xe, 0x74,0xff,0x12,0x17,0x53,0x12,0x67,0x52,0x7e,0x8, 0x29, +0xbc,0x12,0x65,0x5b,0x7e,0x8, 0x2a,0x20,0x7e,0x34,0x0, 0xb, 0xe4,0x2, 0x17,0x53, +0xca,0xf8,0x7e,0x73,0x2a,0x97,0xa, 0x47,0x7e,0x73,0x2a,0x90,0xa, 0x57,0x2d,0x54, +0x7e,0xa3,0x2a,0x92,0xbc,0xab,0x28,0x2, 0x7c,0xba,0x7e,0xf3,0x2a,0x91,0x7e,0xa3, +0x2a,0x93,0xbc,0xaf,0x28,0x2, 0x7c,0xfa,0x75,0x25,0x15,0x7e,0x8, 0x2a,0xd8,0x7e, +0x18,0x2a,0x99,0x12,0xd, 0xd9,0x75,0x25,0x15,0x7e,0x8, 0x2a,0xfb,0x7e,0x18,0x2a, +0xbc,0x7c,0xbf,0x12,0xf, 0x9c,0xda,0xf8,0x22,0x7a,0xb3,0x2b,0x1f,0x70,0x5, 0x12, +0x36,0x1c,0x80,0x6, 0xb4,0x1, 0x6, 0x12,0x36,0x13,0x12,0x25,0xc5,0x22,0x12,0x64, +0x7c,0x7e,0x35,0x36,0x12,0xa5,0xd9,0xa9,0xd2,0xb4,0xd3,0x22,0x7d,0x52,0xf5,0x3a, +0x7c,0xb6,0x7c,0xa5,0xa, 0x44,0xf5,0x39,0x7f,0x21,0xf5,0x38,0xa9,0xc2,0xb4,0x74, +0xb, 0x12,0x64,0xa7,0xe5,0x3a,0x12,0x64,0xa7,0xe5,0x39,0x12,0x64,0xa7,0xe5,0x38, +0x12,0x64,0xa7,0xe4,0x2, 0x64,0xa7,0xf5,0xb5,0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3, +0xd3,0x22,0xca,0xf8,0x7c,0xfb,0x74,0x2, 0x12,0x63,0x91,0x4c,0xff,0x78,0x5, 0x5e, +0x70,0xdf,0x80,0x3, 0x4e,0x70,0x20,0x74,0x2, 0x12,0x64,0xd3,0xda,0xf8,0x22,0x74, +0x6, 0x7d,0x30,0x7d,0x23,0x7c,0x6b,0xa, 0x14,0x7c,0x73,0x7d,0x52,0x7c,0xab,0x7e, +0xb3,0x39,0xe4,0xb4,0xa5,0x3c,0x12,0x65,0x2a,0x75,0xb5,0x1, 0xa9,0x36,0xb3,0xfc, +0x12,0x5f,0xe7,0xa9,0x36,0xb3,0xfc,0x12,0x5f,0xe7,0xa9,0x36,0xb3,0xfc,0xa9,0xc6, +0xb3,0x7a,0x61,0xb5,0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0x7a,0x71,0xb5,0xa9,0x36, +0xb3,0xfc,0xa9,0xc6,0xb3,0x7a,0xa1,0xb5,0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0xa9, +0xd2,0xb4,0x22,0x74,0x4, 0x7d,0x30,0x2, 0x64,0xd3,0xa9,0xc2,0xb4,0xa9,0xc6,0xb3, +0x22,0xd2,0xc8,0x43,0xed,0xf, 0xc2,0xea,0x75,0xb3,0x13,0xa9,0xd1,0xb4,0xa9,0xc0, +0xb4,0x12,0x65,0x4b,0xe4,0x12,0x64,0xb2,0x2, 0x5f,0xde,0xa9,0xd5,0xca,0xa9,0xd1, +0xea,0xa9,0xc1,0xea,0x74,0xa5,0x7a,0xb3,0x39,0xe4,0x22,0x6c,0xaa,0x74,0x3, 0x12, +0x65,0xa0,0x7f,0x10,0x2d,0x34,0x39,0xb1,0x0, 0xa, 0x12,0x65,0x96,0x7f,0x70,0x2d, +0xf3,0x79,0x47,0x0, 0x14,0x2d,0x31,0x79,0x41,0x0, 0x28,0xe4,0xa, 0x4a,0x7f,0x10, +0x2d,0x34,0x39,0xb1,0x0, 0x46,0x7f,0x10,0x2d,0x34,0x39,0xb1,0x0, 0x50,0xb, 0xa0, +0xbe,0xa0,0xa, 0x40,0xc8,0x22,0x7e,0x44,0x7f,0xff,0x7e,0x70,0x2, 0xac,0x7a,0x22, +0xa, 0x4a,0x7f,0x10,0x2d,0x34,0x7a,0x1b,0xb0,0x22,0xca,0xf8,0x7f,0x71,0x6d,0xdd, +0x6c,0xaa,0x7e,0xf0,0x7f,0xc2,0x0, 0x6d,0x44,0x80,0x1e,0x7d,0xc4,0x3e,0xc4,0x7f, +0x17,0x2d,0x3c,0x12,0x66,0x39,0xbd,0x3d,0x48,0xd, 0x7d,0x34,0x3e,0x34,0x2d,0x3f, +0x7d,0x2e,0x12,0x66,0x39,0x7d,0xd3,0xb, 0x44,0x7e,0xc5,0x34,0xbd,0xc4,0x38,0xdb, +0x80,0x7, 0xb, 0xa0,0xbe,0xa0,0x8, 0x50,0x11,0x7c,0xba,0x7d,0x3d,0x60,0x5, 0xe, +0x34,0x14,0x78,0xfb,0xa, 0xcf,0xbd,0x3c,0x18,0xe8,0x7f,0x10,0x2e,0x35,0x34,0x7a, +0x1b,0xa0,0x6d,0x44,0x80,0x21,0x7d,0x54,0x3e,0x54,0x7f,0x17,0x2d,0x35,0xb, 0x1a, +0x30,0x7f,0x60,0x2e,0xd5,0x34,0x7e,0x6b,0xb0,0x60,0x5, 0xe, 0x34,0x14,0x78,0xfb, +0x7c,0xb7,0x12,0x65,0xa2,0xb, 0x44,0x7e,0x55,0x34,0xbd,0x54,0x38,0xd8,0xda,0xf8, +0x22,0x74,0x2, 0xac,0xbe,0x7f,0x17,0x2d,0x35,0xb, 0x1a,0x30,0x2, 0x17,0x85,0xca, +0xd8,0xca,0x79,0x7c,0xfb,0x7f,0x70,0xc2,0x0, 0x6c,0xdd,0x6d,0xdd,0x7e,0x34,0x19, +0x4e,0x7e,0x24,0x0, 0xff,0x7e,0x14,0x1f,0x34,0x74,0xc, 0x12,0x16,0x1d,0x6d,0x11, +0x7e,0x4, 0x7f,0xff,0x6c,0xee,0x80,0x13,0x12,0x66,0x31,0x7d,0xc3,0xbd,0xdc,0x50, +0x2, 0x7d,0xdc,0xbd,0xc, 0x28,0x2, 0x7d,0xc, 0xb, 0xe0,0xbc,0xfe,0x38,0xe9,0xbe, +0xd4,0x0, 0x1e,0x58,0xa, 0x7e,0xb3,0x28,0x94,0x70,0x4, 0x6d,0x33,0xe1,0x3a,0xbe, +0xd4,0x4, 0xb0,0x8, 0x2, 0xd2,0x0, 0x6c,0xee,0x74,0x4, 0xac,0xbe,0x49,0x45,0x1f, +0x34,0xbd,0x4d,0x58,0x6, 0x49,0xd5,0x1f,0x36,0x80,0x7, 0xb, 0xe0,0xbe,0xe0,0x3, +0x40,0xe7,0xbe,0xe0,0x3, 0x78,0x4, 0x6d,0x33,0x80,0x7f,0xbd,0xd, 0x8, 0x5, 0x30, +0x0, 0x2, 0x7d,0xd0,0x9f,0x55,0x6c,0xee,0x80,0xb, 0x12,0x66,0x31,0x1a,0x26,0x1a, +0x24,0x2f,0x51,0xb, 0xe0,0xbc,0xfe,0x38,0xf1,0xa, 0x1f,0x12,0x67,0x48,0x9f,0x55, +0x6c,0xee,0x80,0x1d,0x12,0x67,0x3f,0xb, 0x1a,0x90,0x7d,0x39,0x12,0x17,0x85,0x7d, +0xc3,0xbd,0x1c,0x28,0xa, 0x7d,0x39,0x1a,0x26,0x1a,0x24,0x2f,0x51,0xb, 0xd0,0xb, +0xe0,0xbc,0xfe,0x38,0xdf,0x6d,0x11,0xbe,0xd0,0x0, 0x28,0x5, 0xa, 0x1d,0x12,0x67, +0x48,0xbd,0x1d,0x8, 0x4, 0x7d,0x1d,0x80,0xa, 0x6d,0x0, 0x9d,0xd, 0xbd,0x1, 0x8, +0x2, 0x7d,0x10,0x6c,0xee,0x80,0xd, 0x12,0x67,0x3f,0xb, 0x1a,0x0, 0x9d,0x1, 0x1b, +0x1a,0x0, 0xb, 0xe0,0xbc,0xfe,0x38,0xef,0x7d,0x31,0xda,0x79,0xda,0xd8,0x22,0x74, +0x2, 0xac,0xbe,0x7f,0x17,0x2d,0x35,0x22,0x6d,0x0, 0x7f,0x15,0x12,0x15,0xc8,0x7d, +0x13,0x22,0x7e,0x8, 0x35,0xaa,0x7e,0x34,0x0, 0xd, 0xe4,0x2, 0x17,0x53,0x7c,0xab, +0x12,0x64,0x59,0x7c,0xba,0x12,0x13,0xc7,0x2, 0x0, 0x1e,0x7e,0xd7,0x2b,0x2c,0xbe, +0xb0,0x1, 0x28,0x2, 0xe4,0x22,0x12,0x67,0x5e,0x12,0x37,0xb9,0x7a,0xd7,0x2b,0x2c, +0x7e,0x73,0x2b,0x19,0xa, 0x37,0x3e,0x34,0x3e,0x34,0xe4,0x7e,0x50,0x1, 0x12,0x13, +0x1, 0x12,0x37,0xd1,0x74,0x1, 0x22,0x12,0x67,0xdf,0x38,0x2, 0xe4,0x22,0x12,0x67, +0xce,0x49,0x55,0x34,0x3b,0xbe,0xb0,0x2, 0x38,0x3, 0x2, 0x67,0x6b,0x2, 0x67,0xb0, +0xb4,0x3, 0x5, 0x12,0x67,0xc0,0x80,0x2, 0xe4,0x22,0x12,0x67,0xf3,0x74,0x1, 0x22, +0x12,0x67,0xd6,0xe4,0x12,0x0, 0xe, 0x7e,0x8, 0x2a,0x8c,0x2, 0xd, 0x72,0x7e,0xa3, +0x34,0x39,0x74,0x4, 0xa4,0x22,0x74,0x1, 0x12,0x13,0xde,0xe4,0x2, 0x0, 0x1e,0x7e, +0x73,0x34,0x38,0xbe,0x73,0x34,0x39,0x22,0x7e,0x8, 0x2a,0x8c,0x12,0xd, 0x72,0xe4, +0x12,0x0, 0xe, 0x74,0x1, 0x7e,0x70,0x99,0x12,0x13,0x2c,0x2, 0x0, 0x4e,0x7f,0x60, +0x7e,0xa3,0x2a,0x8c,0x7e,0xb3,0x2a,0x8d,0xa4,0x7d,0xf5,0x3e,0xf4,0x7f,0x1, 0x7d, +0x3f,0xe4,0x12,0x17,0x53,0x7f,0x6, 0x7d,0x3f,0x12,0x17,0x53,0x7a,0xb3,0x16,0x91, +0x22,0x7f,0x70,0x7e,0x33,0x2a,0x93,0xa, 0x43,0x7e,0x33,0x2a,0x92,0xa, 0x53,0x2d, +0x54,0x3e,0x54,0x7c,0xab,0xe4,0x7a,0xb3,0x16,0x90,0x7f,0x1, 0xa, 0x3a,0x12,0x17, +0x53,0x7f,0x7, 0xa, 0x3a,0x2, 0x17,0x53,0xca,0xd8,0xca,0x79,0x7c,0xfb,0x7f,0x51, +0x7f,0x40,0x7f,0x15,0x12,0x68,0x21,0x12,0x6a,0x70,0x7e,0xe0,0x1, 0x12,0x37,0xd1, +0x30,0x1c,0xfd,0x74,0x2, 0x12,0x0, 0x1e,0x7f,0x4, 0x12,0x6a,0x60,0x6c,0xdd,0x80, +0x18,0x74,0x2, 0xac,0xbd,0x7f,0x14,0x2d,0x35,0xb, 0x1a,0x20,0x74,0x2, 0xac,0xbd, +0x7f,0x5, 0x2d,0x15,0x12,0x6a,0x77,0xb, 0xd0,0x7e,0x73,0x2a,0x93,0xa, 0x7, 0x7e, +0x63,0x2a,0x92,0xa, 0x16,0x2d,0x10,0xa, 0x2d,0xbd,0x21,0x48,0xd4,0x1b,0xe0,0x78, +0xbc,0x7f,0x5, 0x7c,0xbf,0x2e,0x73,0x2a,0x92,0x12,0x69,0x41,0xda,0x79,0xda,0xd8, +0x22,0x7e,0xb3,0x2b,0x21,0x70,0x41,0x12,0x6c,0x71,0x50,0xfb,0xe4,0x6c,0x77,0x6c, +0x66,0x12,0x68,0xf9,0x7e,0x8, 0x6, 0xfc,0x7e,0x1f,0x6, 0xf4,0x7e,0xb3,0x2b,0x91, +0x12,0x68,0x48,0x74,0x1, 0x7e,0x70,0x1, 0x7e,0x60,0x1, 0x12,0x68,0xf9,0x7e,0x8, +0x7, 0x7a,0x7e,0x1f,0x6, 0xf4,0x7e,0xb3,0x25,0xf0,0x12,0x68,0x48,0x74,0x2, 0x7a, +0xb3,0x2b,0x21,0xe4,0x7a,0xb3,0x16,0x90,0x22,0x7c,0x96,0x7c,0xa7,0x12,0x25,0x96, +0x7c,0xba,0x12,0x13,0xc7,0x74,0xa, 0x12,0x3b,0x7e,0x7c,0xb9,0x12,0x0, 0x1e,0x2, +0x36,0xfe,0x6c,0xaa,0x80,0x22,0xa, 0x3a,0x9, 0x73,0x2a,0xfb,0x2e,0x34,0x16,0xe8, +0x12,0x6e,0x51,0x7c,0x7b,0xa, 0x47,0x7e,0x50,0x2, 0xac,0x5a,0x7e,0xf, 0x39,0x93, +0x2d,0x12,0x79,0x40,0x0, 0x48,0xb, 0xa0,0x7e,0x63,0x2a,0x93,0xbc,0x6a,0x38,0xd6, +0x22,0xca,0xd8,0xca,0x79,0x7c,0xf7,0x7f,0x70,0x12,0xa8,0xbf,0x7c,0xeb,0x6c,0xdd, +0x80,0x20,0x74,0x2, 0xac,0xbd,0x7f,0x67,0x2d,0xd5,0xb, 0x6a,0x30,0x6d,0x22,0x74, +0x4, 0x2f,0x11,0x14,0x78,0xfb,0xa, 0x1e,0x6d,0x0, 0x12,0x15,0x77,0x1b,0x6a,0x30, +0xb, 0xd0,0xbc,0xfd,0x38,0xdc,0xda,0x79,0xda,0xd8,0x22,0xca,0x79,0x7f,0x51,0x7f, +0x40,0x7e,0xa3,0x2a,0x93,0xa, 0x3a,0x7e,0xa3,0x2a,0x92,0xa, 0x7a,0x2d,0x73,0x7e, +0xd, 0x29,0x7c,0x7f,0x12,0x69,0x41,0xa, 0x3f,0x3e,0x34,0xca,0x39,0x7e,0x1d,0x29, +0x7f,0x4, 0x12,0x17,0x2e,0x1b,0xfd,0x7e,0xb3,0x2b,0x20,0xb4,0x1, 0x22,0x6c,0xaa, +0x80,0x1a,0x7e,0x70,0x2, 0xac,0x7a,0x7f,0x5, 0x2d,0x13,0xb, 0xa, 0x20,0x7f,0x4, +0x2d,0x13,0xb, 0xa, 0x30,0x9d,0x32,0x1b,0xa, 0x30,0xb, 0xa0,0xbc,0xfa,0x38,0xe2, +0xda,0x79,0x22,0xca,0xd8,0xca,0x79,0x7e,0xf0,0xa, 0x74,0x1, 0x7a,0xb3,0x2b,0x19, +0x12,0x1b,0xc3,0x7c,0xe7,0x80,0x5f,0x12,0x3f,0xcf,0x12,0x37,0xc0,0x30,0x1c,0xfd, +0x12,0x6f,0xd9,0x12,0x6a,0x60,0x6c,0xdd,0x80,0x3d,0x7e,0x50,0x2, 0xac,0x5d,0x49, +0x32,0x6, 0xfc,0xbe,0x34,0x14,0x78,0x50,0x14,0xa, 0x1d,0x2e,0x17,0x2b,0x1d,0x7e, +0x19,0xb0,0xbe,0xb0,0x0, 0x28,0x1e,0x14,0x7a,0x19,0xb0,0x80,0x18,0xbe,0x34,0x19, +0x28,0x28,0x10,0xa, 0x3d,0x12,0x26,0xfe,0xbe,0xb0,0xff,0x68,0x8, 0x4, 0x7a,0x39, +0xb0,0x80,0x2, 0x1b,0xe0,0xb, 0xd0,0x12,0x6a,0x53,0x2d,0x23,0xa, 0x3d,0xbd,0x32, +0x48,0xb8,0x4c,0xee,0x68,0x8, 0x7c,0xaf,0x1b,0xf0,0x4c,0xaa,0x78,0x99,0xda,0x79, +0xda,0xd8,0x22,0x7e,0x73,0x2a,0x93,0xa, 0x37,0x7e,0x53,0x2a,0x92,0xa, 0x25,0x22, +0x7e,0xb3,0x2a,0x92,0x7e,0x73,0x2a,0x93,0x12,0x10,0xee,0x74,0x2, 0x2, 0x0, 0x1e, +0x7e,0x8, 0x2a,0x8c,0x2, 0x0, 0x2e,0xb, 0xa, 0x30,0x2d,0x32,0x1b,0xa, 0x30,0x22, +0x7e,0xf, 0x13,0x8a,0x7e,0x18,0x8, 0xa, 0xca,0x3b,0x7a,0x1d,0x29,0x7f,0x30,0x12, +0x6e,0x41,0x7a,0x55,0x31,0x7e,0xb3,0x2b,0x3c,0xf5,0x2e,0xe4,0x7a,0xb3,0x2b,0x3c, +0x7f,0x3, 0x7e,0x1d,0x29,0x12,0x67,0xfe,0x12,0x67,0xd6,0x12,0x27,0xf0,0x75,0x2d, +0x0, 0x12,0x67,0xef,0x30,0xf, 0xfd,0x74,0x1, 0x12,0x6f,0xd1,0x7e,0x14,0x40,0x0, +0x7d,0x21,0x7d,0x7, 0x12,0x6b,0x4, 0x12,0x6c,0x7c,0x6d,0x33,0x80,0x19,0x7e,0x35, +0x2f,0x3e,0x34,0x7f,0x3, 0x2d,0x13,0xb, 0xa, 0x20,0x7e,0xd, 0x29,0x2d,0x13,0x12, +0x6a,0x77,0x7e,0x35,0x2f,0xb, 0x34,0x7a,0x35,0x2f,0x7e,0x35,0x31,0xbe,0x35,0x2f, +0x38,0xdc,0x5, 0x2d,0xe5,0x2d,0xbe,0xb0,0x1, 0x40,0xb6,0xe5,0x2e,0x7a,0xb3,0x2b, +0x3c,0xda,0x3b,0x22,0x7e,0xb3,0x2a,0x8c,0xca,0x3b,0x7c,0xdb,0x7a,0x5, 0x38,0x7d, +0x71,0x7a,0x25,0x36,0x7a,0x35,0x34,0x12,0x27,0xfe,0x50,0x77,0x6c,0xcc,0x80,0x11, +0x7e,0x73,0x2a,0x8d,0x12,0x6c,0x2a,0x12,0x6c,0x10,0x7e,0x34,0x34,0x0, 0x12,0x6c, +0x33,0x12,0x5f,0x58,0x38,0xea,0x6c,0xcc,0x80,0x53,0x7e,0xa3,0x2a,0x8d,0x7c,0x7a, +0x12,0x6c,0x2a,0x75,0x3a,0x0, 0x80,0x27,0x7e,0xb3,0x38,0xc9,0xbe,0xb1,0x3a,0x7e, +0x70,0x4, 0x28,0x8, 0xac,0x7c,0x49,0x43,0x3, 0x73,0x80,0x6, 0xac,0x7c,0x49,0x43, +0x3, 0x75,0x7e,0x71,0x3a,0x74,0x2, 0xac,0x7b,0x59,0x43,0x34,0x50,0x5, 0x3a,0x7e, +0xb3,0x2a,0x8f,0xbe,0xb1,0x3a,0x38,0xd0,0x7e,0x34,0x10,0x0, 0x74,0x2, 0xa4,0x59, +0x35,0x34,0x4e,0x12,0x6c,0x10,0x7e,0x34,0x34,0x50,0x12,0x6c,0x33,0xbc,0xdc,0x38, +0xa9,0x80,0x2c,0x7a,0xd3,0x25,0xb6,0x7e,0x73,0x2a,0x8f,0x7a,0x73,0x25,0xb7,0xe4, +0x7a,0xb3,0x25,0xb9,0x74,0x6, 0x7a,0xb3,0x25,0xb8,0x7a,0x77,0x25,0xba,0x7a,0x77, +0x25,0xbe,0x7e,0x8, 0x25,0xb6,0x7e,0x73,0x2b,0x3e,0xa, 0x37,0x12,0xe, 0x37,0x7d, +0x37,0x12,0x72,0xf9,0x7e,0x35,0x38,0x7a,0x37,0x25,0xbe,0xe4,0x7a,0xb3,0x25,0xb8, +0x12,0x6c,0x21,0x7a,0xd3,0x25,0xb6,0x7e,0xb3,0x2b,0x3c,0x70,0xf, 0xe4,0x7a,0xb3, +0x25,0xb9,0x7a,0x77,0x25,0xba,0x7e,0x34,0x0, 0x20,0x80,0x16,0x74,0x1, 0x7a,0xb3, +0x25,0xb9,0x7e,0x35,0x34,0x7a,0x37,0x25,0xba,0x7e,0x35,0x36,0x7a,0x37,0x25,0xbc, +0x6d,0x33,0x7a,0x37,0x25,0xc0,0x7e,0x8, 0x25,0xb6,0x12,0xd, 0x7, 0xda,0x3b,0x22, +0x74,0xc, 0x7a,0xb3,0x25,0xb8,0x74,0x1, 0x7a,0xb3,0x25,0xb6,0xe4,0x7a,0xb3,0x25, +0xb9,0x7e,0x73,0x2a,0x8d,0x7a,0x73,0x25,0xb7,0x22,0xac,0x7c,0x3e,0x34,0x7d,0xf7, +0x2d,0xf3,0x22,0x7a,0x37,0x25,0xba,0x7d,0x3f,0x7a,0x37,0x25,0xbc,0x7a,0x37,0x25, +0xbe,0x7e,0x8, 0x25,0xb6,0x12,0x7, 0x9b,0xb, 0xc0,0x22,0x7e,0xb3,0x2b,0x3d,0x70, +0x1f,0x12,0x3f,0xcf,0x12,0x6c,0x71,0x50,0xfb,0x12,0x6a,0x80,0x12,0x6f,0xe3,0x20, +0x13,0x3, 0x12,0x6c,0xc6,0x74,0x2, 0x7a,0xb3,0x2b,0x3d,0xe4,0x7a,0xb3,0x16,0x91, +0x22,0x7e,0xb3,0x34,0x3a,0xb4,0x1, 0x2, 0xc3,0x22,0xd3,0x22,0x7e,0xa3,0x2a,0x8d, +0xa, 0x3a,0x3e,0x34,0x7e,0x8, 0x13,0x8e,0xe4,0x12,0x17,0x53,0x90,0x60,0x93,0x93, +0xa, 0x3b,0x7e,0xb3,0x2a,0x90,0xa, 0x2b,0x2d,0x23,0xa, 0x3a,0xad,0x32,0x7d,0x43, +0x6c,0x77,0x80,0x1d,0xa, 0x27,0x2d,0x24,0x12,0x6f,0x6b,0xb, 0xa, 0x0, 0x7e,0x30, +0x2, 0xac,0x37,0x2e,0x14,0x13,0x8e,0xb, 0x18,0x20,0x2d,0x20,0x1b,0x18,0x20,0xb, +0x70,0xbc,0xa7,0x38,0xdf,0x22,0xca,0x3b,0x7e,0xb3,0x2b,0x2e,0x7a,0xb3,0x1f,0x33, +0x7e,0xf3,0x2b,0x81,0x12,0x6e,0xb8,0x7c,0xdb,0xbe,0xd0,0xff,0x68,0x64,0x6c,0xcc, +0x12,0x6e,0x38,0xf5,0x29,0x7e,0x73,0x2b,0x2e,0xbe,0x71,0x29,0x68,0x36,0x7e,0x70, +0x4, 0xac,0x7d,0xa, 0x2c,0x12,0x6e,0x4b,0x7c,0xeb,0xbe,0xe0,0x2, 0x38,0x43,0xa, +0xe, 0x7e,0x14,0x2, 0xe0,0xad,0x10,0x2e,0x14,0x16,0x93,0x6d,0x0, 0x7a,0xd, 0x2a, +0x7e,0x70,0x1d,0xac,0x7e,0x2e,0x34,0x38,0x5c,0x6d,0x22,0x7a,0x1f,0x38,0x58,0x7c, +0xbc,0x12,0x6d,0x45,0xb, 0xc0,0xbe,0xc0,0x4, 0x40,0xb5,0x7e,0x73,0x2b,0x81,0xbc, +0x7f,0x68,0x6, 0x7a,0xf3,0x2b,0x81,0xd2,0x10,0xd2,0x0, 0x7e,0xb3,0x1f,0x33,0x12, +0x22,0x1f,0xda,0x3b,0x22,0xca,0x3b,0x7a,0xd, 0x2e,0x7c,0xcb,0x7e,0xb3,0x2b,0x3c, +0xf5,0x32,0x7e,0xb3,0x2b,0x2e,0xf5,0x33,0x7e,0xd3,0x2b,0x33,0x7e,0xe3,0x2b,0x3e, +0x7e,0xf3,0x2b,0x3f,0x7e,0x34,0x0, 0x38,0xca,0x39,0x7e,0x18,0x34,0x0, 0x7e,0x8, +0x24,0xf2,0x12,0x17,0x2e,0x1b,0xfd,0x7e,0x34,0x0, 0x8c,0xca,0x39,0x7e,0x18,0x3, +0x73,0x7e,0x8, 0x25,0x2a,0x12,0x17,0x2e,0x1b,0xfd,0x7c,0xbc,0x12,0x9b,0x97,0x74, +0x1, 0x7a,0xb3,0x2b,0x3c,0x74,0x5, 0xac,0xbc,0x12,0x27,0x55,0x74,0x5, 0xac,0xbc, +0x12,0x27,0x43,0x74,0x5, 0xac,0xbc,0x12,0x27,0x4c,0x74,0x5, 0xac,0xbc,0x9, 0x75, +0x26,0x37,0xbe,0x73,0x2b,0x81,0x68,0x6, 0x7a,0x73,0x2b,0x81,0xd2,0x10,0xc2,0x0, +0x12,0x6e,0x38,0x12,0x22,0x1f,0x12,0x67,0xe8,0x30,0xf, 0xfd,0x74,0x1, 0x12,0x0, +0xe, 0x7e,0x14,0x40,0x0, 0x7d,0x31,0x7e,0x2f,0x13,0x86,0x7d,0x25,0x7e,0x4, 0xd, +0xc8,0x12,0x6b,0x4, 0x12,0x6e,0x41,0x7a,0x55,0x34,0x7e,0xd, 0x2e,0x7e,0x18,0xd, +0xc8,0x12,0x65,0xaa,0x12,0xa3,0x5e,0xe5,0x32,0x7a,0xb3,0x2b,0x3c,0xe5,0x33,0x7a, +0xb3,0x2b,0x2e,0x7a,0xd3,0x2b,0x33,0x7a,0xe3,0x2b,0x3e,0x7a,0xf3,0x2b,0x3f,0x7e, +0x34,0x0, 0x38,0xca,0x39,0x7e,0x18,0x24,0xf2,0x7e,0x8, 0x34,0x0, 0x12,0x17,0x2e, +0x1b,0xfd,0x7e,0x34,0x0, 0x8c,0xca,0x39,0x7e,0x18,0x25,0x2a,0x7e,0x8, 0x3, 0x73, +0x12,0x17,0x2e,0x1b,0xfd,0xda,0x3b,0x22,0x74,0x5, 0xac,0xbc,0x9, 0xb5,0x26,0x33, +0x22,0x7e,0xa3,0x2a,0x8d,0x7e,0xb3,0x2a,0x8c,0xa4,0x22,0x2d,0x32,0x2e,0x34,0x17, +0x75,0x7a,0x71,0x82,0x7a,0x61,0x83,0xe4,0x93,0x22,0x7c,0x2b,0x7e,0xb3,0x1f,0x33, +0xbc,0x2b,0x68,0x4f,0x12,0x6e,0xb8,0x7c,0x3b,0x7c,0xb2,0x12,0x6e,0xb8,0x7c,0xab, +0xbe,0x30,0xff,0x68,0x3e,0xbe,0xa0,0xff,0x68,0x39,0x7e,0x70,0x4, 0xac,0x73,0xa, +0x2a,0x12,0x6e,0x4b,0xbe,0xb0,0x2, 0x38,0x2a,0xa, 0x2b,0x7e,0x34,0x2, 0xe0,0xad, +0x32,0x2e,0x34,0x16,0x93,0x6d,0x22,0x30,0x1a,0x3, 0x2, 0x6e,0xe5,0x7e,0xb3,0x2b, +0x3c,0xb4,0x1, 0xf, 0x12,0x6e,0x41,0x7a,0x55,0x29,0x7e,0x8, 0xd, 0xc8,0x74,0x1, +0x2, 0x6f,0x16,0x22,0x7e,0xb3,0x2b,0x2e,0x7c,0xab,0x6c,0x77,0x7e,0x50,0x5, 0xac, +0x57,0x9, 0x62,0x26,0x33,0xbc,0x6a,0x78,0x3, 0x7c,0xb7,0x22,0xb, 0x70,0xbe,0x70, +0x4, 0x40,0xe9,0x74,0xff,0x22,0x7c,0xab,0x12,0x6f,0xc9,0xd2,0x1a,0x7c,0xba,0x12, +0x6e,0x5a,0xc2,0x1a,0x22,0x7c,0x7b,0x90,0x60,0x93,0xe4,0x93,0xa, 0x1b,0x7e,0x63, +0x2a,0x90,0xa, 0x6, 0x2d,0x1, 0x7e,0x63,0x2a,0x8d,0xa, 0x16,0xad,0x10,0x7d,0x21, +0x12,0x6f,0x6b,0xa, 0x26,0x7a,0x25,0x29,0x74,0x1d,0xac,0x7b,0x2e,0x34,0x38,0x5c, +0x6d,0x22,0xe4,0x2, 0x6f,0x16,0x7c,0xab,0x6d,0x44,0x80,0x29,0x4c,0xaa,0x68,0x11, +0x12,0x6f,0x59,0x60,0x5, 0x3e,0xe4,0x14,0x78,0xfb,0x12,0x6f,0x4d,0x2d,0xfe,0x80, +0xf, 0x12,0x6f,0x59,0x60,0x5, 0x3e,0xe4,0x14,0x78,0xfb,0x12,0x6f,0x4d,0x9d,0xfe, +0x1b,0x6a,0xf0,0xb, 0x44,0x7e,0xf5,0x29,0xbd,0xf4,0x38,0xd0,0x22,0x7d,0xf4,0x3e, +0xf4,0x7f,0x60,0x2d,0xdf,0xb, 0x6a,0xf0,0x22,0x7f,0x71,0x2d,0xf4,0x7e,0x7b,0xb0, +0x1a,0xeb,0x7f,0x61,0x2e,0xd5,0x29,0x7e,0x6b,0xb0,0x22,0x3e,0x24,0x7e,0xf, 0x39, +0xac,0x2d,0x12,0x22,0x7e,0xb3,0x38,0xd, 0x70,0x2e,0x7e,0x73,0x37,0xf0,0xbe,0x70, +0x10,0x40,0x2, 0x6c,0x77,0x7e,0xb3,0x38,0x38,0xb4,0x1, 0x3, 0x7e,0x70,0x6, 0xa, +0x37,0x2e,0x34,0xf, 0xf0,0x12,0x6e,0x51,0x7c,0xab,0xe5,0x61,0xa, 0x3b,0x2e,0x37, +0x39,0x56,0x7a,0x37,0x39,0x56,0x80,0xc, 0x7e,0xa3,0x37,0xf1,0xbe,0xa0,0x7f,0x28, +0x3, 0x7e,0xa0,0x7f,0x7c,0xba,0x2, 0x6f,0xb9,0x75,0x61,0x0, 0x7a,0xb3,0x39,0xd8, +0xc2,0x1b,0x22,0x12,0x6c,0x71,0x50,0xfb,0x22,0xa9,0xd1,0xcb,0x74,0x1, 0x2, 0x0, +0xe, 0x12,0x0, 0xe, 0x7e,0x1f,0x13,0x86,0x22,0x74,0x2, 0x12,0x0, 0x1e,0x7e,0x8, +0x6, 0xfc,0x22,0x12,0x27,0xfe,0x50,0x3, 0xd2,0x13,0x22,0xc2,0x13,0x22,0x12,0x92, +0x89,0x12,0x90,0x5b,0x2, 0x6f,0xe3,0x7e,0xa3,0x2f,0xc7,0x7e,0x70,0x4, 0xac,0x7a, +0xb, 0x34,0xbe,0x37,0x39,0x5, 0x40,0x39,0x7e,0x37,0x39,0x5, 0xb, 0x34,0x7a,0x37, +0x39,0x5, 0xbe,0x34,0x0, 0x1, 0x78,0x5, 0x7e,0xb3,0x38,0x3b,0x22,0xbe,0x34,0x0, +0x2, 0x78,0x3, 0x7c,0xba,0x22,0xbe,0x34,0x0, 0x2, 0x50,0x9, 0x7d,0x23,0x1b,0x25, +0x9, 0xb2,0x39,0xce,0x22,0x9e,0x34,0x0, 0x3, 0x2e,0x37,0x2b,0xd8,0x7e,0x39,0xb0, +0x22,0x74,0xff,0x22,0x7e,0xa3,0x38,0xb3,0x7c,0xba,0x4, 0x7a,0xb3,0x38,0xb3,0x7a, +0xa3,0x37,0xf9,0x22,0xca,0x7b,0xca,0x2b,0xca,0x1b,0xca,0xb, 0xc0,0x83,0xc0,0x82, +0x12,0x35,0x87,0xd0,0x82,0xd0,0x83,0xda,0xb, 0xda,0x1b,0xda,0x2b,0xda,0x7b,0x32, +0xa9,0xc0,0x93,0x75,0x18,0x0, 0x32,0x7a,0xb3,0x38,0xb4,0xc4,0x54,0x7, 0xbe,0xb0, +0x4, 0x68,0x3, 0xb4,0x2, 0x4, 0x74,0x3, 0x80,0x7, 0x60,0x3, 0xb4,0x1, 0x7, 0x74, +0x1, 0x7a,0xb3,0x38,0xf, 0x22,0x74,0x1, 0x7a,0xb3,0x38,0xf, 0xe4,0x7a,0xb3,0x38, +0xb4,0x22,0x7c,0xa7,0x7c,0x3b,0xa5,0xbb,0x0, 0x7, 0x7c,0xba,0x12,0x70,0x77,0x80, +0x2c,0xbe,0x30,0xeb,0x68,0x4, 0xa5,0xbb,0xec,0x9, 0x7c,0xb3,0x7c,0x7a,0x12,0x71, +0x1b,0x80,0x1a,0xbe,0x30,0x80,0x40,0x15,0xbe,0x30,0xef,0x38,0x10,0x7c,0xb3,0x24, +0x80,0x7c,0x7a,0x12,0x70,0xed,0xa5,0xbb,0x8f,0x3, 0x75,0x19,0x1, 0xa5,0xbb,0xfc, +0x5, 0x7c,0xba,0x2, 0x3b,0x30,0x74,0x1, 0x7a,0xb3,0x34,0x4f,0x22,0x7c,0x6b,0x2e, +0x60,0xdd,0x68,0x26,0x2e,0x60,0xfd,0x68,0x21,0x1b,0x61,0x68,0x1d,0x1b,0x62,0x68, +0x19,0x1b,0x61,0x68,0x15,0x1b,0x60,0x68,0x11,0x2e,0x60,0xa, 0x78,0x4, 0x7a,0x73, +0x37,0xe7,0xa, 0x2b,0x19,0x72,0x37,0xe8,0xd2,0x11,0x22,0xbe,0xb0,0xeb,0x68,0x3, +0xb4,0xec,0x33,0x7e,0x27,0x39,0x7, 0x4d,0x22,0x78,0xe, 0xa5,0xbf,0xaa,0xa, 0x7e, +0x24,0x0, 0x1, 0x7a,0x27,0x39,0x7, 0x15,0x1a,0x7e,0x27,0x39,0x7, 0xbe,0x24,0x0, +0x1, 0x78,0x10,0xa5,0xbf,0x9, 0x6, 0x7e,0x34,0x0, 0x2, 0x80,0x2, 0x6d,0x33,0x7a, +0x37,0x39,0x7, 0x75,0x1a,0xea,0x22,0x7e,0xb3,0x39,0x9, 0x4, 0x7a,0xb3,0x39,0x9, +0xe5,0x19,0xb4,0x1, 0x8, 0xe4,0x7a,0xb3,0x39,0x9, 0x75,0x19,0x0, 0x7e,0x73,0x39, +0x9, 0x7a,0x73,0x37,0xf7,0x22,0x70,0x5, 0x7e,0xb3,0x38,0xb4,0x22,0xbe,0xb0,0x3, +0x38,0x15,0x75,0x1d,0x0, 0x30,0x12,0x6, 0x7e,0x18,0x33,0x15,0x80,0x4, 0x7e,0x18, +0x33,0x53,0x7a,0x1d,0x14,0x80,0x8, 0xbe,0xb0,0x5e,0x38,0x10,0x75,0x1d,0x0, 0xa, +0x1b,0x7e,0x1d,0x14,0x2d,0x31,0x1b,0x34,0x7e,0x1b,0xb0,0x22,0xbe,0xb0,0xd3,0x68, +0x3, 0xb4,0xd4,0x10,0xb4,0xd3,0x8, 0x6d,0x33,0x7a,0x37,0x39,0x5, 0x80,0x2, 0x15, +0x1a,0x2, 0x6f,0xf7,0xbe,0xb0,0xeb,0x68,0x3, 0xb4,0xec,0x3, 0x2, 0x72,0xd, 0xbe, +0xb0,0x80,0x40,0xc, 0xbe,0xb0,0xef,0x38,0x7, 0xa, 0x3b,0x9, 0xb3,0x37,0x68,0x22, +0xb4,0xfc,0x5, 0x7e,0xb3,0x38,0xf, 0x22,0xb4,0xfd,0x17,0x6c,0xaa,0x7e,0xb3,0x28, +0xa8,0x60,0x3, 0x4e,0xa0,0x1, 0x7e,0xb3,0x37,0x77,0x60,0x3, 0x4e,0xa0,0x2, 0x7c, +0xba,0x22,0xb4,0xfe,0x5, 0x7e,0xb3,0x2b,0x2e,0x22,0x74,0xff,0x22,0xb4,0xeb,0x5, +0xe4,0x7a,0xb3,0x39,0xa, 0x7e,0x73,0x39,0xa, 0xa, 0x27,0x2e,0x24,0x0, 0x6, 0x12, +0x57,0xdf,0x7c,0xab,0x7c,0xb7,0x4, 0x7a,0xb3,0x39,0xa, 0xb4,0x3, 0xb, 0xe4,0x7a, +0xb3,0x39,0xa, 0x6d,0x33,0x7a,0x37,0x39,0x7, 0x75,0x1a,0xeb,0x7c,0xba,0x22,0xe4, +0x7a,0xb3,0x38,0xb4,0x7e,0x8, 0x33,0x15,0x12,0x72,0x8e,0x7e,0x8, 0x33,0x53,0x7e, +0x34,0x0, 0x3e,0x12,0x17,0x53,0x7e,0x18,0x33,0x15,0x7a,0x1d,0x14,0x12,0x72,0x70, +0x2, 0x72,0x63,0x75,0x18,0x0, 0x75,0x1a,0x0, 0x7e,0xb3,0x38,0xb4,0xf5,0x91,0x22, +0x2, 0x72,0x73,0x90,0x60,0x0, 0xe4,0x93,0x54,0xfe,0x75,0x91,0x0, 0xc2,0x90,0xc2, +0x91,0xc2,0xc9,0x54,0xfe,0xf5,0x92,0xd2,0xe8,0xc2,0xc0,0xd2,0xad,0x22,0x7e,0x34, +0x0, 0x3e,0x74,0xff,0x2, 0x17,0x53,0x30,0x1c,0x8, 0x74,0x5, 0x7e,0x70,0x99,0x12, +0x13,0x2c,0x7e,0xb3,0x34,0x3a,0xb4,0x1, 0x4f,0x12,0x67,0xce,0x49,0x35,0x34,0x3b, +0x49,0x15,0x34,0x3d,0x6d,0x0, 0xbe,0x8, 0x0, 0x0, 0x68,0x1a,0xbe,0x70,0x0, 0x40, +0x15,0xbe,0x70,0x2, 0x38,0x10,0x74,0x2, 0x12,0x0, 0x1e,0x7e,0xb3,0x2a,0x92,0x7e, +0x73,0x2a,0x93,0x12,0x10,0xee,0x7e,0xb3,0x34,0x39,0x4, 0x7a,0xb3,0x34,0x39,0x12, +0x67,0xdf,0x28,0xe, 0x12,0x67,0x97,0xb4,0x1, 0x4, 0x74,0x1, 0x80,0x6, 0x74,0x3, +0x80,0x2, 0x74,0x2, 0x7a,0xb3,0x34,0x3a,0x22,0x7d,0xf3,0x6d,0xee,0x6c,0x99,0x80, +0x3c,0x7c,0xb9,0x12,0x5d,0x61,0x7d,0xd3,0x7d,0xcd,0x3e,0xc4,0x7f,0x57,0x2d,0xbc, +0xb, 0x5a,0x10,0x1a,0x2, 0x1a,0x0, 0x7e,0x83,0x2b,0x3f,0xa, 0x98,0x6d,0x88,0x7f, +0x10,0x7f,0x4, 0x12,0x15,0x5b,0x74,0x6, 0x7f,0x1, 0x1e,0x14,0x1e,0x4, 0x50,0x3, +0x4e,0x20,0x80,0x14,0x78,0xf4,0x7d,0xc1,0x1b,0x5a,0xc0,0xb, 0x90,0x7e,0x83,0x2a, +0x94,0xbc,0x89,0x38,0xbc,0x22,0xca,0xf8,0x7e,0xa3,0x2a,0x20,0x4c,0xaa,0x78,0x11, +0x7e,0xb3,0x2a,0x21,0xbe,0xb0,0x0, 0x28,0x13,0x74,0x1, 0x7a,0xb3,0x2a,0x25,0x80, +0xb, 0xbe,0xa0,0x0, 0x28,0x6, 0x74,0x1, 0x7a,0xb3,0x2a,0x29,0x7e,0x34,0x0, 0x5a, +0xca,0x39,0x7e,0x18,0x28,0xae,0x7e,0x8, 0x29,0x8, 0x12,0x17,0x2e,0x1b,0xfd,0x6c, +0xff,0x74,0x9, 0xac,0xbf,0x49,0x35,0x28,0xae,0x12,0x73,0xa8,0x74,0x9, 0xac,0xbf, +0x59,0x35,0x29,0x8, 0x49,0x35,0x28,0xb0,0x12,0x75,0x86,0x12,0x76,0x79,0xb, 0xf0, +0xbe,0xf0,0xa, 0x40,0xdc,0xda,0xf8,0x22,0x7d,0xd3,0x7e,0x44,0x2, 0xd0,0x7e,0xa3, +0x2a,0x8e,0x74,0x40,0xa4,0x7d,0xb5,0x1b,0xb4,0xbe,0xd4,0x0, 0x3f,0x38,0x29,0x7e, +0xe4,0x0, 0x3f,0x9d,0xed,0x7e,0xf4,0x1, 0xfb,0xad,0xef,0x7d,0x3f,0x7d,0x2e,0x12, +0x74,0x85,0x7f,0x71,0xbe,0x78,0x0, 0x34,0x40,0x4, 0x7e,0x78,0x0, 0x34,0x7e,0x18, +0x0, 0x34,0x9f,0x17,0x7f,0x71,0x81,0x77,0x7d,0xcb,0x9e,0xc4,0x0, 0x3f,0xbd,0xcd, +0x38,0x24,0x7d,0x5d,0x9d,0x5c,0x7e,0xf4,0x2, 0x28,0xad,0xf5,0x7d,0x3f,0x7d,0x2e, +0x12,0x74,0x85,0x7f,0x71,0xbe,0x78,0x0, 0x32,0x40,0x4, 0x7e,0x78,0x0, 0x31,0x12, +0x75,0x7d,0x2f,0x71,0x80,0x61,0x7d,0xcb,0xb, 0xc4,0x1e,0xc4,0x7d,0x5c,0x1b,0x54, +0xbd,0x5d,0x40,0xc, 0x7d,0xf5,0x9d,0xfd,0x6d,0xee,0x7e,0x14,0x0, 0xdf,0x80,0xa, +0x7d,0xfd,0x9d,0xfc,0x6d,0xee,0x7e,0x14,0x0, 0xe3,0x7f,0x17,0x12,0x15,0x6c,0x7f, +0x71,0x12,0x74,0x85,0x7f,0x71,0xbd,0x5d,0x7d,0x34,0x40,0xc, 0x1e,0x34,0x1b,0x34, +0x6d,0x22,0x9f,0x17,0x7f,0x71,0x80,0x6, 0x1e,0x34,0x6d,0x22,0x2f,0x71,0xbe,0x78, +0x0, 0x34,0x50,0x6, 0x7e,0x78,0x0, 0x34,0x80,0xd, 0x12,0x75,0x7d,0x7d,0x13,0x6d, +0x0, 0xbf,0x70,0x28,0x2, 0x7f,0x71,0x7d,0x3f,0x22,0x9d,0x32,0x12,0x17,0x85,0x7d, +0x13,0x7d,0x30,0xad,0x31,0x7c,0x76,0x7c,0x65,0xa, 0x24,0x22,0xca,0x79,0x7c,0xe5, +0x7c,0xfb,0x7e,0xe4,0xff,0xfc,0x7c,0xb4,0x12,0x8c,0xa3,0x7d,0x3, 0x7e,0x70,0x9, +0xac,0x7e,0x49,0x13,0x28,0xb0,0xbe,0x14,0x2, 0x60,0x50,0x5, 0x12,0x75,0x72,0x40, +0xb, 0xbe,0x14,0x69,0xb0,0x28,0x1f,0x12,0x75,0x72,0x28,0x1a,0x3e,0x4, 0xbe,0x14, +0x2, 0x30,0x50,0x5, 0x12,0x75,0x72,0x40,0xb, 0xbe,0x14,0x69,0xe0,0x28,0x7, 0x12, +0x75,0x72,0x28,0x2, 0x3e,0x4, 0xbe,0x4, 0x1, 0x0, 0x28,0x4, 0x7e,0x4, 0x1, 0x0, +0x74,0x9, 0xac,0xbf,0x49,0x25,0x29,0x62,0x49,0x33,0x28,0xae,0x12,0x74,0x7a,0x7d, +0x13,0x5d,0x1e,0x7e,0x70,0x9, 0xac,0x7f,0x49,0xf3,0x29,0x62,0x74,0x9, 0xac,0xbe, +0x49,0x25,0x28,0xae,0xbd,0x2f,0x28,0xf, 0x7d,0x53,0x2e,0x54,0x29,0x62,0x7d,0x2f, +0x2d,0x21,0x1b,0x58,0x20,0x80,0xd, 0xbd,0xf1,0x40,0x9, 0x2e,0x34,0x29,0x62,0x9d, +0xf1,0x1b,0x38,0xf0,0x74,0x9, 0xac,0xbf,0x49,0x25,0x29,0x64,0x74,0x9, 0xac,0xbe, +0x49,0x35,0x28,0xb0,0x12,0x74,0x7a,0x7d,0x13,0x5d,0x1e,0x7e,0x50,0x9, 0xac,0x5f, +0x49,0x32,0x29,0x64,0x74,0x9, 0xac,0xbe,0x49,0x5, 0x28,0xb0,0xbd,0x3, 0x28,0xd, +0x7d,0x2, 0x2e,0x4, 0x29,0x64,0x2d,0x13,0x1b,0x8, 0x10,0x80,0x12,0xbd,0x31,0x40, +0xe, 0x7e,0x50,0x9, 0xac,0x5f,0x2e,0x24,0x29,0x64,0x9d,0x31,0x1b,0x28,0x30,0xda, +0x79,0x22,0x74,0x9, 0xac,0xbf,0x49,0x25,0x29,0x64,0xbd,0x12,0x22,0x7d,0x34,0x6d, +0x22,0x9e,0x18,0x0, 0x32,0x22,0x7d,0xf3,0x9f,0x11,0x7e,0x44,0x5, 0x0, 0x7e,0xa3, +0x2a,0x8f,0x74,0x40,0xa4,0x7d,0xd5,0x1b,0xd4,0xbe,0xf4,0x0, 0x3f,0x38,0x1f,0x7e, +0x24,0x0, 0x3f,0x9d,0x2f,0x7e,0x34,0x1, 0xb8,0x12,0x76,0x5e,0xbe,0x18,0x0, 0x37, +0x40,0x4, 0x7e,0x18,0x0, 0x37,0x7e,0x8, 0x0, 0x37,0x9f,0x1, 0x7f,0x10,0x7d,0x5d, +0x9e,0x54,0x0, 0x3f,0xbd,0x5f,0x38,0x1f,0x12,0x76,0x70,0x40,0x1a,0x7d,0x3d,0x9e, +0x34,0x0, 0x40,0x12,0x76,0x56,0xbe,0x18,0x0, 0x37,0x40,0x4, 0x7e,0x18,0x0, 0x36, +0x12,0x76,0x67,0x2f,0x10,0x80,0x14,0x12,0x76,0x70,0x50,0xf, 0x7d,0x3d,0x9e,0x34, +0x0, 0x20,0x12,0x76,0x56,0x7d,0x14,0x6d,0x0, 0x2f,0x10,0xbe,0xf4,0x0, 0x3f,0x28, +0x54,0xbd,0x5f,0x28,0x50,0x7d,0xed,0xb, 0xe4,0x1e,0xe4,0x7d,0x5e,0x1b,0x54,0xbd, +0x5f,0x40,0x6, 0x7d,0x35,0x9d,0x3f,0x80,0x4, 0x7d,0x3f,0x9d,0x3e,0x6d,0x22,0x7e, +0x14,0x0, 0xe0,0x12,0x15,0x6c,0x12,0x76,0x60,0xbd,0x5f,0x7d,0x14,0x40,0xc, 0x1e, +0x14,0x1b,0x14,0x6d,0x0, 0x9f,0x1, 0x7f,0x10,0x80,0x6, 0x1e,0x14,0x6d,0x0, 0x2f, +0x10,0xbe,0x18,0x0, 0x37,0x50,0x5, 0x7e,0x18,0x0, 0x37,0x22,0x12,0x76,0x67,0xbf, +0x10,0x28,0x2, 0x7f,0x10,0x22,0x7d,0x2f,0x9d,0x23,0x7e,0x34,0x1, 0xba,0xad,0x23, +0x7c,0x76,0x7c,0x65,0x1a,0x24,0x22,0x7d,0x14,0x6d,0x0, 0x9e,0x8, 0x0, 0x37,0x22, +0x7d,0xed,0x9e,0xe4,0x0, 0xb, 0xbd,0xef,0x22,0x74,0x9, 0xac,0xbf,0x59,0x35,0x29, +0xa, 0x22,0xca,0xd8,0xca,0x79,0x7e,0x44,0x5, 0x0, 0x6c,0xff,0x7e,0x70,0x9, 0xac, +0x7f,0x9, 0xe3,0x29,0xc, 0x5e,0xe0,0xf, 0x49,0xc3,0x29,0xa, 0x7d,0x24,0x2e,0x24, +0x0, 0x14,0xbd,0xc2,0x40,0x3f,0x49,0xd3,0x29,0x8, 0x7d,0x3d,0x12,0x77,0xcd,0x7c, +0xdb,0xbe,0xd0,0x3, 0x40,0xe, 0x7d,0x34,0x1b,0x34,0x12,0x76,0x79,0x7c,0xbe,0x12, +0x77,0x10,0x80,0x40,0x7e,0x70,0x2, 0xac,0x7d,0x2e,0x34,0x60,0xc5,0x7e,0x24,0x0, +0xff,0xb, 0x1a,0xd0,0x74,0x9, 0xac,0xbf,0x59,0xd5,0x29,0x8, 0x7e,0x34,0x7, 0xd0, +0x12,0x76,0x79,0x80,0x1f,0xbd,0xc4,0x40,0x1b,0x7d,0x54,0x2e,0x54,0x0, 0xa, 0xbd, +0xc5,0x40,0x5, 0x7c,0xbe,0x12,0x77,0x10,0x7d,0xc4,0x1b,0xc4,0x74,0x9, 0xac,0xbf, +0x59,0xc5,0x29,0xa, 0xb, 0xf0,0xbe,0xf0,0xa, 0x40,0x81,0xda,0x79,0xda,0xd8,0x22, +0x7c,0xab,0x7e,0x8, 0x29,0xbc,0xbe,0xa0,0xa, 0x50,0x1f,0xa, 0x3a,0x7f,0x70,0x2d, +0xf3,0x7e,0x7b,0xb0,0xb4,0x2, 0x4, 0x74,0x1, 0x80,0x2, 0x74,0x3, 0x7a,0x7b,0xb0, +0x74,0x3, 0x2d,0x31,0x7d,0x20,0x39,0xb1,0x0, 0xa, 0x22,0x2, 0x74,0x8c,0xca,0x3b, +0x7c,0xfb,0x6c,0xee,0x80,0x6f,0x6c,0xdd,0x74,0x9, 0xac,0xbd,0x9, 0x45,0x29,0x66, +0x7e,0x70,0x9, 0xac,0x7e,0x9, 0x53,0x28,0xb2,0xbc,0x45,0x68,0x7, 0xb, 0xd0,0xbe, +0xd0,0xa, 0x40,0xe4,0xbe,0xd0,0xa, 0x50,0x50,0x74,0x9, 0xac,0xbd,0x9, 0xc5,0x29, +0x66,0x49,0x25,0x29,0x64,0x49,0x33,0x28,0xb0,0x12,0x77,0xbc,0x74,0x9, 0xac,0xbd, +0x49,0x25,0x29,0x62,0x74,0x9, 0xac,0xbe,0x12,0x77,0xc4,0x2d,0x31,0x7a,0x35,0x24, +0xa, 0x3c,0x9, 0xb3,0x29,0xbc,0xb4,0x1, 0xe, 0x6d,0x33,0x74,0x2, 0xac,0xbc,0x59, +0x35,0x35,0x94,0x59,0x35,0x35,0xb7,0x7e,0x35,0x24,0x7c,0xbd,0x7c,0x5e,0x7c,0x4c, +0x12,0x77,0x3b,0xb, 0xe0,0xbc,0xfe,0x38,0x8d,0xda,0x3b,0x22,0x9d,0x32,0x12,0x17, +0x85,0x7d,0x13,0x22,0x49,0x35,0x28,0xae,0x9d,0x32,0x2, 0x17,0x85,0x6c,0xaa,0x7e, +0x30,0x4, 0xac,0x3a,0x7d,0xf1,0x2e,0xf4,0x60,0xb1,0x7e,0xe4,0x0, 0xff,0xb, 0x7a, +0x20,0xbd,0x23,0x38,0xf, 0x2e,0x14,0x60,0xb3,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0x20, +0xbd,0x23,0x50,0x7, 0xb, 0xa0,0xbe,0xa0,0x3, 0x40,0xd4,0x7c,0xba,0x22,0x2, 0x78, +0x1, 0xca,0x79,0x6c,0xff,0x7e,0xd7,0x2a,0x79,0x6c,0xee,0x80,0x35,0x7c,0xbe,0x12, +0x78,0x52,0xbd,0x3d,0x48,0x2a,0x7c,0xbe,0x12,0x1e,0x96,0x60,0x23,0x7e,0xc4,0x0, +0x9, 0xca,0xc9,0x7e,0x70,0x9, 0xac,0x7e,0x2e,0x34,0x27,0x76,0x6d,0x22,0x7e,0x30, +0x9, 0xac,0x3f,0x2e,0x14,0x28,0xae,0x6d,0x0, 0x12,0x17,0x2e,0x1b,0xfd,0xb, 0xf0, +0xb, 0xe0,0x12,0x7d,0xfd,0x38,0xc6,0x7a,0x73,0x28,0x93,0x7a,0xf3,0x2a,0x20,0xda, +0x79,0x22,0x7c,0xab,0x7e,0x70,0x2, 0xac,0x7a,0x12,0x7f,0xe, 0x2, 0x2c,0xb9,0xca, +0x79,0x6c,0x88,0x80,0x65,0x74,0x2, 0xac,0xb8,0x9, 0xf5,0x26,0xfa,0x12,0x8f,0x13, +0x7c,0xbf,0x12,0x5f,0xcc,0x50,0x51,0x6c,0xee,0x80,0x48,0xbc,0xe8,0x68,0x42,0x7e, +0x70,0x2, 0xac,0x7e,0x12,0xaf,0xa1,0x6c,0x99,0x7e,0xb3,0x2a,0x8f,0x14,0xbe,0xb1, +0x26,0x78,0xe, 0xa, 0x2f,0xe5,0x25,0xa, 0x3b,0x12,0x4b,0x8c,0x18,0x3, 0x7e,0x90, +0x1, 0xbe,0x90,0x1, 0x78,0x1b,0x7c,0xbe,0x12,0x78,0x52,0x7d,0xf3,0x7c,0xb8,0x12, +0x78,0x52,0xbd,0x3f,0x8, 0x4, 0x7c,0xbe,0x80,0x2, 0x7c,0xb8,0x6c,0x77,0x12,0x54, +0xcd,0xb, 0xe0,0x12,0x7d,0xfd,0x38,0xb3,0xb, 0x80,0x12,0x7f,0x7, 0x38,0x96,0xda, +0x79,0x22,0xca,0xd8,0xca,0x79,0x7e,0xa3,0x2a,0x8d,0x7e,0x47,0x28,0x99,0xe4,0x7a, +0xb3,0x28,0xa6,0x7e,0xb3,0x26,0xf0,0xbe,0xb0,0x0, 0x28,0x4c,0x7e,0x73,0x28,0x85, +0xbe,0x70,0x0, 0x28,0x43,0x6c,0xff,0x80,0x3b,0x7e,0x50,0x2, 0xac,0x5f,0x9, 0xd2, +0x27,0x36,0x9, 0xe2,0x27,0x37,0x7e,0x50,0x2, 0xac,0x5e,0x49,0x12,0x4, 0xfc,0x6d, +0x22,0x9e,0x27,0x2a,0x72,0xbd,0x12,0x58,0x19,0x12,0x7b,0x9c,0x49,0x12,0x4, 0xfc, +0x6d,0x22,0x9e,0x27,0x2a,0x70,0xbd,0x12,0x58,0x8, 0x74,0x1, 0x7a,0xb3,0x28,0xa6, +0x80,0x6, 0xb, 0xf0,0xbc,0x7f,0x38,0xc1,0xe4,0x7a,0xb3,0x28,0xa7,0x7e,0xb3,0x26, +0x83,0x70,0x40,0x12,0x79,0xee,0x28,0x3b,0x6c,0xff,0x80,0x33,0x7e,0x50,0x2, 0xac, +0x5f,0x9, 0xd2,0x26,0xfa,0x9, 0xe2,0x26,0xfb,0x12,0x7b,0x9c,0x49,0x2, 0x5, 0x7a, +0x6d,0x11,0x9d,0x14,0xbd,0x1, 0x48,0xd, 0x7e,0x10,0x2, 0xac,0x1e,0x49,0x20,0x5, +0x7a,0xbd,0x21,0x58,0x8, 0x74,0x1, 0x7a,0xb3,0x28,0xa7,0x80,0x6, 0xb, 0xf0,0xbc, +0x7f,0x38,0xc9,0x12,0x99,0xca,0xe4,0x7a,0xb3,0x28,0xa9,0x7e,0x37,0x28,0x88,0x2e, +0x37,0x28,0x86,0xbe,0x37,0x28,0x9f,0x28,0x6, 0x74,0x1, 0x7a,0xb3,0x28,0xa9,0x74, +0x1, 0x7a,0xb3,0x28,0xaa,0x6c,0xff,0x80,0x1f,0x12,0x79,0xe4,0x49,0x25,0x25,0xf7, +0x7d,0x43,0x9d,0x42,0x7d,0x34,0x12,0x17,0x85,0xbe,0x37,0x28,0x9d,0x8, 0x7, 0xe4, +0x7a,0xb3,0x28,0xaa,0x80,0x7, 0xb, 0xf0,0x12,0x56,0xb5,0x38,0xdc,0x6c,0xff,0x80, +0x9, 0x12,0x79,0xe4,0x59,0x35,0x25,0xf7,0xb, 0xf0,0x12,0x56,0xb5,0x38,0xf2,0xda, +0x79,0xda,0xd8,0x22,0x7c,0xbf,0x12,0x78,0x52,0x74,0x2, 0xac,0xbf,0x22,0x7e,0x73, +0x28,0x84,0xbe,0x70,0x0, 0x22,0xca,0xf8,0x7e,0xf0,0x1, 0x7e,0xb3,0x2f,0xc8,0xbe, +0xb0,0xff,0x50,0x5, 0x4, 0x7a,0xb3,0x2f,0xc8,0x12,0xaf,0x90,0x7e,0x44,0x1, 0x18, +0x7e,0xd4,0x0, 0xb4,0xe4,0x7a,0xb3,0x28,0xac,0x12,0x7b,0x92,0x7e,0xc4,0xfe,0x5c, +0x7e,0x57,0x7, 0xfe,0xbe,0x54,0xfc,0xb8,0x58,0x15,0x7e,0x57,0x7, 0xfc,0xbd,0x5c, +0x58,0xd, 0x12,0x7b,0xa5,0x8, 0x8, 0x12,0x7c,0xa4,0x60,0x3, 0x12,0x7b,0xc7,0x12, +0x7c,0xa4,0xa, 0x5b,0x4d,0x55,0x68,0x3b,0x6d,0x55,0x9d,0x54,0xbe,0x57,0x7, 0xfe, +0x18,0x6, 0xbe,0x57,0x7, 0xfc,0x8, 0x2b,0x12,0x7b,0xa5,0x8, 0x26,0x7e,0x37,0x28, +0x8e,0x12,0x17,0x85,0xbe,0x37,0x28,0x8a,0x8, 0x19,0x12,0x79,0xee,0x28,0x14,0x7e, +0x73,0x28,0x85,0xbe,0x70,0x1, 0x28,0xb, 0x7e,0xc7,0x7, 0xfa,0xbd,0xc4,0x58,0x3, +0x12,0x7b,0xc7,0x12,0x92,0xc8,0x40,0x5, 0xe4,0x7a,0xb3,0x28,0xa8,0x12,0x57,0xc2, +0x68,0x6, 0x7e,0xb3,0x39,0xdd,0x60,0x7, 0xe4,0x7a,0xb3,0x28,0xad,0x80,0x71,0x12, +0x79,0xee,0x28,0x5, 0xe4,0x7a,0xb3,0x28,0xad,0x30,0x14,0x5, 0xe4,0x7a,0xb3,0x28, +0xad,0x12,0x93,0x6, 0x50,0xa, 0x12,0x7b,0x92,0x12,0x7c,0x41,0x7c,0xfb,0x80,0x21, +0x7e,0xb3,0x26,0x84,0x70,0x1b,0x7e,0xb3,0x26,0x85,0x70,0x15,0x12,0x79,0xee,0x28, +0x10,0x12,0x57,0xc2,0x68,0x5, 0x12,0x98,0xfa,0x60,0x6, 0x7e,0xf0,0x3, 0x12,0x7b, +0x92,0x7e,0xc7,0x7, 0xfa,0xbe,0xc4,0x5, 0xdc,0x8, 0x17,0x12,0x79,0xee,0x28,0x12, +0x6d,0xcc,0x9d,0xcd,0xbe,0xc7,0x28,0x8e,0x58,0x8, 0x12,0x7b,0xb0,0xe4,0x7a,0xb3, +0x28,0xad,0xa, 0xcf,0x7a,0xc7,0x28,0xa1,0x74,0x2, 0xac,0xbf,0x7a,0x57,0x28,0xa3, +0x12,0x7b,0x99,0x50,0xd, 0xe4,0x7a,0xb3,0x28,0xad,0x12,0x79,0xee,0x28,0x3, 0x12, +0x7b,0xb0,0x7e,0xc7,0x28,0x8a,0xbd,0xcd,0x8, 0x1f,0x7e,0x24,0x0, 0x2, 0x7d,0x3d, +0x12,0x15,0x29,0x6e,0x34,0xff,0xff,0xb, 0x34,0xbe,0x37,0x28,0x8e,0x58,0xa, 0x12, +0x7b,0x99,0x50,0x5, 0xe4,0x7a,0xb3,0x28,0xad,0x12,0x7d,0x13,0xb4,0x1, 0x5, 0xe4, +0x7a,0xb3,0x28,0xad,0x7e,0xb3,0x28,0xac,0xb4,0x1, 0x9, 0xe4,0x7a,0xb3,0x28,0x84, +0x7a,0xb3,0x2a,0x20,0x12,0x92,0x30,0x7e,0xb3,0x2f,0xc9,0xbe,0xb0,0x0, 0x28,0x1f, +0x14,0x7a,0xb3,0x2f,0xc9,0x70,0x18,0xe4,0x7a,0xb3,0x28,0xad,0x12,0x7e,0x4, 0x7a, +0xb3,0x16,0x91,0x7a,0xb3,0x16,0x90,0x7a,0xb3,0x28,0x84,0x7a,0xb3,0x26,0x83,0xda, +0xf8,0x22,0x74,0x1, 0x7a,0xb3,0x28,0xad,0x22,0xa2,0x17,0x22,0xa, 0x1d,0xa, 0x2a, +0x2d,0x21,0x3e,0x24,0x22,0x6d,0x55,0x9e,0x57,0x2a,0x79,0xbe,0x57,0x28,0x8e,0x22, +0xe4,0x7a,0xb3,0x2f,0xc9,0x7a,0xb3,0x28,0xac,0x74,0x2, 0x2, 0x7b,0xbe,0x7a,0xb3, +0x2b,0x21,0x7a,0xb3,0x2b,0x3d,0x22,0x74,0x2, 0x7a,0xb3,0x2f,0xc9,0xe4,0x7a,0xb3, +0x2f,0xc8,0x12,0x7e,0x4, 0x2, 0x7b,0xbe,0x12,0x78,0xd2,0x12,0x79,0xf6,0x12,0x7c, +0x24,0x7e,0xb3,0x38,0xd, 0xb4,0x1, 0x10,0x7e,0x34,0x0, 0x5, 0x7a,0x37,0x28,0xa1, +0x7e,0x34,0x0, 0xa, 0x7a,0x37,0x28,0xa3,0x7e,0xb3,0x39,0xe2,0x60,0x7, 0x14,0x7a, +0xb3,0x39,0xe2,0x80,0x6, 0x7e,0xb3,0x28,0xac,0x60,0x9, 0x12,0x6f,0xee,0x12,0x7e, +0xc, 0x12,0xa3,0xad,0x7e,0xb3,0x28,0xad,0x60,0x9, 0x12,0xa9,0xa0,0x12,0xa9,0x4f, +0x2, 0x96,0xd, 0x22,0x12,0x98,0xfa,0x60,0x17,0x12,0x7b,0x92,0x7e,0x37,0x28,0xa1, +0x3e,0x34,0x7a,0x37,0x28,0xa1,0x7e,0x37,0x28,0xa3,0x3e,0x34,0x7a,0x37,0x28,0xa3, +0x22,0x7e,0xa0,0x1, 0x7e,0x47,0x7, 0xf8,0x7e,0x4, 0x1, 0x18,0xbe,0x44,0xfc,0xb8, +0x58,0x12,0x7e,0xb3,0x28,0xac,0x60,0x7, 0xe4,0x7a,0xb3,0x28,0xad,0x80,0x38,0x7e, +0xa0,0x5, 0x80,0x33,0x7e,0x34,0xff,0xfb,0xad,0x30,0x7e,0x14,0x0, 0x2, 0x12,0x7c, +0x9c,0x8, 0x5, 0x7e,0xa0,0x4, 0x80,0x1f,0x7e,0x34,0xff,0xfc,0x12,0x7c,0x9a,0x8, +0x5, 0x7e,0xa0,0x3, 0x80,0x11,0x7e,0x34,0xff,0xfd,0x12,0x7c,0x9a,0x8, 0x5, 0x7e, +0xa0,0x2, 0x80,0x3, 0x7e,0xa0,0x1, 0x7c,0xba,0x22,0xad,0x30,0x7d,0x21,0x12,0x15, +0x29,0xbd,0x34,0x22,0x6c,0x66,0x7e,0xb3,0x28,0xa8,0xb4,0x1, 0x63,0x7e,0x73,0x26, +0xf2,0xbe,0x70,0x0, 0x28,0x5a,0x6c,0x33,0x80,0x4e,0xa, 0x23,0x9, 0x72,0x26,0xe6, +0x7e,0xb3,0x2a,0x8d,0x14,0xbc,0x7b,0x78,0x3d,0x6c,0x22,0x80,0x27,0x7c,0xb2,0x7c, +0x73,0x12,0x5f,0xcc,0x50,0x1c,0xa, 0x22,0x7e,0x73,0x2a,0x8d,0xa, 0x7, 0x2d,0x2, +0x3e,0x4, 0x49,0x20,0x4, 0xfc,0x6d,0x0, 0x9e,0x7, 0x2a,0x6e,0xbd,0x20,0x58,0x2, +0xb, 0x60,0xb, 0x20,0x7e,0x73,0x2a,0x8c,0xbc,0x72,0x38,0xd1,0xbe,0x60,0x0, 0x28, +0x3, 0x74,0x1, 0x22,0xe4,0x22,0xb, 0x30,0x7e,0x73,0x26,0xf2,0xbc,0x73,0x38,0xaa, +0x74,0x1, 0x22,0xca,0x3b,0x12,0x8f,0x82,0x38,0x2, 0xa1,0xda,0x7e,0xc3,0x2f,0xcc, +0x4c,0xcc,0x78,0x3d,0x7a,0xb3,0x2f,0xcc,0xe4,0x7a,0xb3,0x2f,0xce,0x6c,0xaa,0x80, +0x26,0x12,0x7d,0xe5,0x7e,0x70,0x2, 0xac,0x7a,0x9, 0xd3,0x26,0xfa,0x9, 0xe3,0x26, +0xfb,0x7a,0x49,0xd0,0x19,0xe4,0x0, 0x1, 0x74,0x1, 0x19,0xb4,0x0, 0x8, 0x12,0x2f, +0x86,0x59,0x34,0x0, 0x2, 0xb, 0xa0,0x7e,0xb3,0x28,0x84,0xbc,0xba,0x38,0xd2,0x80, +0x7f,0x7c,0xfc,0x6c,0xaa,0x80,0x35,0x12,0x7d,0xe5,0x7e,0x49,0xd0,0x9, 0xe4,0x0, +0x1, 0x9, 0xb4,0x0, 0x8, 0x70,0x4, 0x1b,0xf0,0x80,0x1f,0x12,0x2f,0x86,0x7d,0x23, +0x49,0x34,0x0, 0x2, 0x9d,0x32,0x12,0x17,0x85,0x7d,0xf3,0xbe,0xf4,0x0, 0x23,0x8, +0x9, 0x74,0x5, 0x19,0xb4,0x0, 0x8, 0x75,0x60,0x1, 0xb, 0xa0,0xbc,0xfa,0x38,0xc7, +0x4c,0xff,0x78,0x2, 0x80,0x26,0x7e,0x73,0x2f,0xce,0xbe,0x70,0x4, 0x40,0x22,0x6c, +0xaa,0x80,0xe, 0x12,0x7d,0xe5,0x9, 0xb4,0x0, 0x8, 0xbe,0xb0,0x5, 0x68,0x6, 0xb, +0xa0,0xbc,0xfa,0x38,0xee,0xbc,0xfa,0x78,0x3, 0x75,0x60,0x0, 0x12,0x7d,0xef,0x80, +0xf, 0x7c,0xb7,0x4, 0x7a,0xb3,0x2f,0xce,0x80,0x6, 0x12,0x7d,0xef,0x75,0x60,0x0, +0xe5,0x60,0xda,0x3b,0x22,0x7e,0x90,0x9, 0xac,0x9a,0x2e,0x44,0x2f,0xcf,0x22,0xe4, +0x7a,0xb3,0x2f,0xcd,0x7a,0xb3,0x2f,0xcc,0x7a,0xb3,0x2f,0xce,0x22,0x7e,0x73,0x28, +0x84,0xbc,0x7e,0x22,0x74,0x1, 0x7a,0xb3,0x28,0xac,0xe4,0x22,0x12,0x97,0xd2,0x6d, +0x33,0x7a,0x37,0x37,0xe3,0x6c,0xaa,0x12,0x96,0x59,0xb, 0xa0,0xbe,0xa0,0x4, 0x40, +0xf6,0xe4,0x7a,0xb3,0x37,0x78,0x22,0xca,0xf8,0x7c,0xfb,0x7e,0x70,0x2, 0x12,0xa2, +0x71,0x7f,0x71,0x7c,0xbf,0x12,0x78,0x52,0x7d,0x13,0x1a,0x2, 0x1a,0x0, 0x7f,0x17, +0x12,0x15,0xc8,0x7c,0xb7,0xda,0xf8,0x22,0x6c,0x99,0x6c,0x88,0x80,0xf, 0x7c,0xb8, +0x12,0x78,0x52,0xbe,0x34,0x1, 0xf4,0x8, 0x2, 0xb, 0x90,0xb, 0x80,0x12,0x7f,0x7, +0x38,0xec,0xbe,0x90,0x1, 0x38,0x2, 0xc3,0x22,0xd3,0x22,0xca,0xd8,0xca,0x79,0x7e, +0xf4,0x3, 0x20,0x7d,0x7f,0x12,0x7e,0x48,0x50,0x2, 0xe1,0x2, 0x7a,0xf5,0x2a,0x7e, +0xb3,0x28,0xa8,0xb4,0x1, 0x4, 0x7e,0x74,0x4, 0xb0,0x7e,0x37,0x28,0x8a,0xbe,0x34, +0x4, 0x4c,0x8, 0x6e,0x6c,0xdd,0x80,0x62,0xc2,0x0, 0x7c,0xbd,0x12,0x78,0x52,0x7a, +0x35,0x26,0x7c,0xbd,0x7e,0x70,0x1, 0x12,0xa2,0x71,0x7a,0x35,0x24,0x9e,0x35,0x26, +0x7a,0x35,0x24,0x7e,0x35,0x26,0x3e,0x34,0x3e,0x34,0x12,0x8f,0x7b,0x7a,0x35,0x28, +0xbe,0x75,0x28,0x58,0x3, 0x7a,0x75,0x28,0x7e,0x35,0x28,0xbe,0x35,0x24,0x8, 0xa, +0x7e,0x35,0x2a,0xbe,0x35,0x26,0x8, 0x2, 0xd2,0x0, 0x7c,0xbd,0x12,0xa3,0x3c,0x50, +0x2, 0xc2,0x0, 0x30,0x0, 0x12,0x7c,0xbd,0x6c,0x77,0x12,0x54,0xcd,0x7e,0x70,0x2, +0xac,0x7d,0x12,0x7f,0xe, 0x12,0x80,0x6e,0xb, 0xd0,0x7e,0x73,0x28,0x84,0xbc,0x7d, +0x38,0x96,0xda,0x79,0xda,0xd8,0x22,0x7e,0x73,0x28,0x84,0xbc,0x78,0x22,0x9, 0xb3, +0x26,0xfa,0x9, 0x73,0x26,0xfb,0x22,0xca,0x3b,0x7e,0xb3,0x2a,0x93,0xf5,0x27,0x12, +0x7b,0x99,0x50,0x2, 0xe1,0xa7,0x6d,0x33,0x9e,0x37,0x2a,0x6e,0x3e,0x34,0xbe,0x37, +0x7, 0xf8,0x18,0x73,0x7e,0xb3,0x16,0x92,0x70,0x6d,0x7e,0xb3,0x28,0xa8,0xb4,0x1, +0x63,0x7e,0x77,0x2a,0x70,0x7e,0x67,0x2a,0x72,0x75,0x24,0x0, 0x80,0x51,0xe5,0x24, +0x12,0x1e,0x96,0x60,0x48,0x12,0x7f,0xaa,0x12,0xaf,0xa1,0x7e,0xb3,0x2a,0x21,0xb4, +0x1, 0x9, 0xe5,0x26,0xb4,0x17,0x4, 0xe, 0x64,0xe, 0x74,0x7e,0xa1,0x26,0x74,0x2, +0xa4,0x49,0x35,0x4, 0xfc,0xbd,0x36,0x48,0x14,0xe5,0x25,0xa, 0x2b,0xe5,0x27,0xa, +0x3b,0x2d,0x32,0x3e,0x34,0x49,0x33,0x4, 0xfc,0xbd,0x37,0x58,0x10,0xe5,0x24,0x6c, +0x77,0x12,0x54,0xcd,0x12,0x7f,0xaa,0x12,0x7f,0xe, 0x12,0x80,0x6e,0x5, 0x24,0x12, +0xb0,0x1f,0x38,0xaa,0x12,0x8f,0x32,0xda,0x3b,0x22,0x7e,0x71,0x24,0x74,0x2, 0xac, +0x7b,0x22,0x12,0x8f,0x1b,0x12,0x8e,0x65,0x12,0x7f,0x17,0x12,0x7e,0x6b,0x2, 0x7f, +0xc1,0xca,0x3b,0x12,0x1e,0x4d,0x7e,0xb3,0x28,0x84,0x60,0x6, 0x7e,0xb3,0x36,0xe8, +0x60,0x9, 0xe4,0x7a,0xb3,0x36,0xea,0x7a,0xb3,0x36,0x6f,0x7e,0xb3,0x36,0xe8,0x70, +0x62,0x6c,0x99,0x80,0x56,0x74,0x2, 0xac,0xb9,0x9, 0x85,0x26,0xfa,0x9, 0xf5,0x26, +0xfb,0x7c,0xb9,0x12,0xa3,0x3c,0x40,0x41,0x6c,0xee,0x80,0x35,0x74,0x2, 0xac,0xbe, +0x9, 0xd5,0x36,0x70,0x9, 0xc5,0x36,0x71,0xa, 0x28,0xa, 0x3d,0x12,0x80,0x66,0x78, +0x1e,0xa, 0x2f,0xa, 0x3c,0x12,0x80,0x66,0x78,0x15,0x7c,0xb9,0x12,0x78,0x52,0xbe, +0x34,0x3, 0x20,0x58,0xa, 0x12,0x57,0xbb,0x7c,0xb8,0x7c,0x7f,0x12,0x80,0x6e,0xb, +0xe0,0x7e,0x73,0x36,0xea,0xbc,0x7e,0x38,0xc3,0xb, 0x90,0x7e,0x73,0x28,0x84,0xbc, +0x79,0x38,0xa2,0x7e,0x73,0x36,0x6f,0x7a,0x73,0x36,0xea,0xa, 0x37,0x3e,0x34,0xca, +0x39,0x7e,0x18,0x36,0xac,0x7e,0x8, 0x36,0x70,0x12,0x17,0x2e,0x1b,0xfd,0xe4,0x7a, +0xb3,0x36,0xe8,0xda,0x3b,0x22,0x9d,0x32,0x12,0x17,0x85,0x4d,0x33,0x22,0x7c,0x6b, +0x7e,0xa3,0x36,0x6f,0x7e,0x50,0x2, 0xac,0x5a,0x19,0x62,0x36,0xac,0x19,0x72,0x36, +0xad,0x7c,0xba,0x4, 0x7a,0xb3,0x36,0x6f,0x22,0x7d,0x13,0x7d,0x32,0x6d,0x22,0x74, +0x6, 0x2f,0x11,0x14,0x78,0xfb,0xb, 0x14,0x12,0x15,0x75,0x7d,0x53,0xbe,0x54,0x0, +0xff,0x28,0x4, 0x7e,0x54,0x0, 0x40,0x22,0xca,0xf8,0x7e,0xf3,0x2a,0x8f,0x7a,0x37, +0x1f,0x3a,0x7e,0x34,0x15,0x9e,0x7a,0x37,0x1f,0x3c,0xe4,0x7a,0xb3,0x1f,0x34,0x7a, +0xb3,0x1f,0x35,0x7e,0x73,0x2a,0x8e,0x7a,0x73,0x1f,0x36,0x7a,0xf3,0x1f,0x37,0x7a, +0xb3,0x1f,0x38,0x7a,0xb3,0x1f,0x39,0x7e,0x8, 0x1f,0x34,0x12,0x80,0xfd,0x6d,0x22, +0x7d,0x3, 0x6d,0x11,0x7e,0x37,0x15,0xa0,0x2f,0x10,0x7e,0x33,0x1f,0x36,0x6d,0x0, +0x12,0x15,0x77,0xa, 0x1f,0x6d,0x0, 0x12,0x15,0x77,0xda,0xf8,0x22,0x12,0xc, 0x29, +0x7e,0x37,0x15,0x9e,0x22,0x7a,0x37,0x1f,0x38,0x7e,0x34,0x15,0xa8,0x7a,0x37,0x1f, +0x3c,0x7e,0x34,0x15,0x9e,0x7a,0x37,0x1f,0x3a,0x7e,0x73,0x2a,0x8e,0x7a,0x73,0x1f, +0x35,0x7e,0x73,0x2a,0x8f,0x7a,0x73,0x1f,0x34,0x7e,0x37,0x2a,0x7b,0x7a,0x37,0x1f, +0x3e,0x7e,0x37,0x2a,0x7d,0x7a,0x37,0x1f,0x40,0x7e,0x37,0x2a,0x7f,0x7a,0x37,0x1f, +0x42,0x74,0x1, 0x7a,0xb3,0x1f,0x36,0x7a,0xb3,0x1f,0x37,0x7e,0x8, 0x1f,0x34,0x7e, +0x18,0x1f,0x44,0x12,0x8, 0x0, 0x7e,0x37,0x1f,0x4e,0x7e,0x27,0x1f,0x4a,0xbd,0x23, +0x28,0x2, 0x7d,0x32,0x22,0xca,0x3b,0x7e,0x8, 0x1f,0x34,0x12,0x82,0x8b,0x7e,0x1f, +0x39,0xc6,0x7a,0x1d,0x27,0x7e,0xb3,0x2a,0x93,0xf5,0x2e,0x7e,0xb3,0x39,0x59,0xb4, +0x1, 0x6, 0x7e,0x38,0x39,0x5b,0x80,0x4, 0x7e,0x38,0x5, 0xf8,0x6d,0x33,0x7a,0x35, +0x2b,0x74,0x2, 0x12,0x0, 0x1e,0x7e,0xb3,0x39,0x5a,0x70,0xe, 0x7e,0xb3,0x39,0x58, +0x70,0x8, 0x74,0x1, 0x7a,0xb3,0x39,0x5a,0x41,0x2a,0x7e,0xb3,0x39,0x5a,0x70,0x6, +0x74,0x1, 0x7a,0xb3,0x39,0x5a,0x7e,0xb3,0x39,0x59,0xb4,0x1, 0x14,0x75,0x2d,0x0, +0x80,0x6, 0x12,0x82,0x6c,0x12,0x82,0x7a,0xe5,0x2e,0xbe,0xb1,0x2d,0x38,0xf3,0x80, +0x18,0x75,0x2d,0x0, 0x80,0xc, 0x12,0x82,0x6c,0x3e,0x24,0x3e,0x24,0x1e,0x24,0x12, +0x82,0x7a,0xe5,0x2e,0xbe,0xb1,0x2d,0x38,0xed,0x7e,0x34,0x1, 0x18,0x7a,0x35,0x2f, +0x7e,0x18,0x1f,0x34,0x7f,0x1, 0x12,0x5d,0xd4,0x75,0x2d,0x0, 0x80,0x10,0x12,0x82, +0x5f,0xbe,0x35,0x2b,0x8, 0x6, 0x12,0x82,0x5f,0x7a,0x35,0x2b,0x5, 0x2d,0xe5,0x2e, +0xbe,0xb1,0x2d,0x38,0xe9,0x12,0x82,0x57,0x40,0x25,0x7e,0xb3,0x39,0x59,0xb4,0x1, +0x1e,0x5, 0x1e,0xe5,0x1e,0xbe,0xb0,0xa, 0x40,0x15,0x75,0x1e,0x0, 0xe5,0x2e,0xa, +0x3b,0x3e,0x34,0xca,0x39,0x7e,0x1d,0x27,0x7f,0x3, 0x12,0x17,0x2e,0x1b,0xfd,0x74, +0x2, 0x12,0x0, 0x1e,0x12,0x82,0x57,0x50,0xb, 0x74,0x2, 0x7a,0xb3,0x39,0xc5,0xe4, +0x7a,0xb3,0x39,0x5a,0xda,0x3b,0x22,0x7e,0x37,0x2b,0x26,0xbe,0x35,0x2b,0x22,0x7e, +0xa1,0x2d,0x74,0x2, 0xa4,0x49,0x35,0x1f,0x34,0x2, 0x17,0x85,0x7e,0xa1,0x2d,0x74, +0x2, 0xa4,0x7f,0x13,0x2d,0x35,0xb, 0x1a,0x20,0x22,0x7e,0xd, 0x27,0x2d,0x15,0xb, +0xa, 0x30,0x9d,0x32,0x59,0x35,0x1f,0x34,0x5, 0x2d,0x22,0x7e,0x34,0x0, 0x38,0xe4, +0x2, 0x17,0x53,0xca,0x3b,0x7e,0x34,0xff,0xff,0x7a,0x35,0x34,0x7e,0xb3,0x38,0xc9, +0xf5,0x29,0x7e,0xb3,0x2a,0x8c,0xf5,0x2a,0x7e,0xb3,0x2a,0x8d,0xf5,0x2b,0x7e,0xb3, +0x2a,0x8f,0xf5,0x2c,0x7e,0xb3,0x2a,0x8e,0xf5,0x2d,0x7e,0x34,0x2a,0xf8,0x7a,0x35, +0x2e,0x7e,0x18,0x40,0x0, 0x7a,0x1d,0x30,0x12,0x67,0xe8,0x30,0xf, 0xfd,0x74,0x1, +0x12,0x0, 0xe, 0x7e,0x8, 0x34,0x0, 0x12,0x82,0x8b,0x6c,0xff,0x80,0x34,0x9f,0x77, +0x6c,0xee,0x80,0x19,0x7e,0x11,0x2b,0xac,0x1e,0x3e,0x4, 0x7e,0x30,0x2, 0xac,0x3f, +0x2d,0x10,0x7e,0x1d,0x30,0x2d,0x31,0xb, 0x1a,0x30,0x12,0x85,0x7, 0xe5,0x2d,0xbc, +0xbe,0x38,0xe1,0xe5,0x2d,0x12,0x85,0xe, 0x74,0x2, 0xac,0xbf,0x59,0x35,0x34,0x0, +0xb, 0xf0,0xe5,0x2c,0xbc,0xbf,0x38,0xc6,0x7e,0x34,0x10,0x0, 0x7e,0xa1,0x2b,0x74, +0x2, 0xa4,0x59,0x35,0x33,0xfe,0x6c,0xff,0x80,0x72,0x9f,0x77,0x6c,0xee,0x80,0x12, +0x12,0x85,0x30,0x1e,0x34,0x1e,0x24,0x50,0x3, 0x4e,0x60,0x80,0x14,0x78,0xf4,0x12, +0x85,0x7, 0xe5,0x29,0xbc,0xbe,0x38,0xe8,0xe5,0x29,0x12,0x85,0xe, 0x74,0x4, 0xac, +0xbf,0x59,0x35,0x3, 0x73,0xe5,0x29,0xbe,0xb1,0x2c,0x50,0x32,0x9f,0x77,0x7e,0xe1, +0x29,0x80,0x12,0x12,0x85,0x30,0x1e,0x34,0x1e,0x24,0x50,0x3, 0x4e,0x60,0x80,0x14, +0x78,0xf4,0x12,0x85,0x7, 0xe5,0x2c,0xbc,0xbe,0x38,0xe8,0xe5,0x29,0xa, 0x3b,0x6d, +0x22,0xe5,0x2c,0xa, 0x1b,0x6d,0x0, 0x9f,0x1, 0x12,0x85,0x12,0x80,0x4, 0x7e,0x34, +0x10,0x0, 0x74,0x4, 0xac,0xbf,0x59,0x35,0x3, 0x75,0xb, 0xf0,0xe5,0x2d,0xbc,0xbf, +0x38,0x88,0xe5,0x2c,0xa, 0x1b,0x6d,0x0, 0x7e,0x18,0x0, 0x7a,0x12,0x15,0x77,0x6c, +0xff,0x80,0x2e,0x74,0x2, 0xac,0xbf,0x49,0x25,0x34,0x0, 0xa, 0x5f,0xad,0x53,0x7e, +0x14,0x10,0x0, 0x9d,0x15,0xad,0x12,0x74,0xc, 0x1e,0x14,0x1e,0x4, 0x50,0x3, 0x4e, +0x20,0x80,0x14,0x78,0xf4,0x7d,0x21,0x74,0x2, 0xac,0xbf,0x59,0x25,0x34,0x0, 0xb, +0xf0,0xe5,0x2c,0xbc,0xbf,0x38,0xcc,0xe5,0x2a,0xa, 0x1b,0x6d,0x0, 0x7e,0x18,0x0, +0x28,0x12,0x15,0x77,0x6c,0xff,0x80,0x5c,0x74,0x4, 0xac,0xbf,0x49,0x25,0x3, 0x73, +0xa, 0x1f,0xad,0x13,0x7e,0xf4,0x10,0x0, 0x9d,0xf1,0xad,0xf2,0x74,0xc, 0x1e,0xf4, +0x1e,0xe4,0x50,0x4, 0x4e,0xf4,0x80,0x0, 0x14,0x78,0xf3,0x7d,0x2f,0x74,0x4, 0xac, +0xbf,0x59,0x25,0x3, 0x73,0xe5,0x29,0xbe,0xb1,0x2c,0x50,0x26,0x74,0x4, 0xac,0xbf, +0x49,0x25,0x3, 0x75,0x2e,0x14,0x10,0x0, 0xad,0x12,0x74,0xc, 0x1e,0x14,0x1e,0x4, +0x50,0x3, 0x4e,0x20,0x80,0x14,0x78,0xf4,0x7d,0x21,0x74,0x4, 0xac,0xbf,0x59,0x25, +0x3, 0x75,0xb, 0xf0,0xe5,0x2a,0xbc,0xbf,0x38,0x9e,0x7e,0x73,0x38,0xcb,0xa, 0x37, +0x6d,0x22,0x74,0xc, 0x2f,0x11,0x14,0x78,0xfb,0x7e,0xf4,0x0, 0x64,0x7d,0x1f,0x12, +0x15,0x75,0x7d,0xe3,0x7a,0xe5,0x34,0x7e,0x73,0x38,0xcc,0xa, 0x37,0x6d,0x22,0x74, +0xc, 0x2f,0x11,0x14,0x78,0xfb,0x7d,0x1f,0x12,0x15,0x75,0x7d,0x63,0x6c,0xff,0x80, +0x20,0x74,0x2, 0xac,0xbf,0x49,0x45,0x34,0x0, 0xbe,0x45,0x34,0x28,0x9, 0x7e,0x35, +0x34,0x59,0x35,0x34,0x0, 0x80,0x8, 0xbd,0x46,0x50,0x4, 0x59,0x65,0x34,0x0, 0xb, +0xf0,0xe5,0x2c,0xbc,0xbf,0x38,0xda,0x6c,0xff,0x80,0x3a,0x74,0x4, 0xac,0xbf,0x49, +0x45,0x3, 0x73,0xbe,0x45,0x34,0x28,0x9, 0x7e,0x35,0x34,0x59,0x35,0x3, 0x73,0x80, +0x8, 0xbd,0x46,0x50,0x4, 0x59,0x65,0x3, 0x73,0x49,0x45,0x3, 0x75,0xbe,0x45,0x34, +0x28,0x9, 0x7e,0x35,0x34,0x59,0x35,0x3, 0x75,0x80,0x8, 0xbd,0x46,0x50,0x4, 0x59, +0x65,0x3, 0x75,0xb, 0xf0,0xe5,0x2a,0xbc,0xbf,0x38,0xc0,0x30,0x2, 0x6, 0x7e,0xd, +0x30,0x12,0x27,0x70,0xda,0x3b,0x22,0x6d,0x22,0x2f,0x71,0xb, 0xe0,0x22,0xa, 0x1b, +0x6d,0x0, 0x7f,0x17,0x12,0x15,0x77,0x7f,0x71,0x7e,0x25,0x2e,0x74,0xc, 0x7d,0x13, +0x7d,0x32,0x6d,0x22,0x60,0x5, 0x2f,0x11,0x14,0x78,0xfb,0xb, 0x14,0x2, 0x15,0x75, +0x7e,0x11,0x2b,0xac,0x1f,0x3e,0x4, 0x7e,0x30,0x2, 0xac,0x3e,0x2d,0x10,0x7e,0x1d, +0x30,0x2d,0x31,0xb, 0x1a,0x20,0x7a,0x27,0x24,0xf2,0x74,0x2, 0xac,0xbe,0x49,0x35, +0x34,0x0, 0xad,0x23,0x74,0xc, 0x22,0x12,0x3e,0x1b,0x7e,0x73,0x37,0xe7,0xbe,0x70, +0xff,0x68,0x13,0xbe,0x73,0x38,0xd, 0x68,0xd, 0x7a,0x73,0x38,0xd, 0x74,0xff,0x7a, +0xb3,0x37,0xe7,0x2, 0x3e,0x1b,0x22,0x12,0x3f,0x3f,0x68,0xfb,0x20,0x93,0xfd,0x22, +0x7e,0x34,0x0, 0x46,0x22,0x7e,0xb3,0x39,0x59,0x70,0x4, 0x74,0x1, 0x80,0x1, 0xe4, +0x7a,0xb3,0x39,0x59,0x22,0x7f,0x20,0xc2,0x1, 0x7e,0x2b,0x60,0x29,0x72,0x0, 0x2, +0x9c,0x76,0x1a,0x37,0x12,0x17,0x85,0x7c,0x27,0x29,0x72,0x0, 0x1, 0x29,0x32,0x0, +0x3, 0x9c,0x37,0x1a,0x33,0x12,0x17,0x85,0x7c,0x37,0x1a,0x23,0x1a,0x32,0x9d,0x32, +0x12,0x17,0x85,0x7c,0x67,0x7c,0x72,0xbc,0x32,0x58,0x2, 0x7c,0x73,0xbe,0x60,0x5, +0x18,0x5, 0xbe,0x70,0x6, 0x58,0x8, 0x7e,0x37,0x39,0xb, 0x4d,0x33,0x68,0x2, 0xd2, +0x1, 0xa2,0x1, 0x22,0x7f,0x60,0x7e,0x6b,0xa0,0xbe,0xa0,0xa, 0x50,0x1b,0x7e,0x14, +0x0, 0x6, 0xca,0x19,0x74,0x6, 0xa4,0x7f,0x6, 0x2d,0x15,0xb, 0x14,0x12,0x17,0x2e, +0x1b,0xfd,0x7e,0x6b,0xb0,0x4, 0x7a,0x6b,0xb0,0x22,0x6c,0xaa,0x7e,0x63,0x2a,0x8d, +0x7e,0x73,0x2a,0x8c,0xac,0x76,0x7d,0x13,0x1e,0x14,0x7e,0x27,0x28,0x88,0x2e,0x27, +0x28,0x86,0xbd,0x21,0x38,0xa, 0x1e,0x34,0x1e,0x34,0xbe,0x37,0x28,0x86,0x50,0x29, +0x90,0x60,0x51,0xe4,0x93,0x1e,0xb0,0xa, 0x2b,0x7e,0xb3,0x26,0xf7,0xa, 0x3b,0xbd, +0x32,0x8, 0x16,0x90,0x60,0x50,0xe4,0x93,0x1e,0xb0,0xa, 0x2b,0x7e,0xb3,0x26,0xf6, +0xa, 0x3b,0xbd,0x32,0x8, 0x3, 0x7e,0xa0,0x1, 0x7c,0xba,0x22,0x7e,0xa3,0x2a,0x21, +0xbe,0xa0,0x0, 0x38,0x2f,0xbe,0xa3,0x2a,0x20,0x50,0x19,0x7e,0xb3,0x2a,0x2a,0xbe, +0xb3,0x36,0x46,0x28,0x14,0x7e,0xb3,0x36,0x46,0x4, 0x7a,0xb3,0x36,0x46,0x7a,0xa3, +0x2a,0x20,0x80,0x5, 0xe4,0x7a,0xb3,0x36,0x46,0x7e,0xb3,0x2a,0x20,0x70,0x5, 0xe4, +0x7a,0xb3,0x2a,0x29,0x22,0x12,0x86,0x9b,0x2, 0x86,0x5c,0x7e,0xb3,0x2a,0x20,0x70, +0x29,0x12,0x86,0xd4,0x28,0x24,0x7e,0xb3,0x35,0xcb,0x70,0x18,0x12,0x86,0xdc,0x7e, +0x73,0x2a,0x21,0x7a,0x73,0x2a,0x20,0x74,0x1, 0x7a,0xb3,0x2a,0x27,0x7e,0xb3,0x35, +0xcb,0x4, 0x80,0x1, 0xe4,0x7a,0xb3,0x35,0xcb,0x22,0xe4,0x7a,0xb3,0x35,0xcb,0x7a, +0xb3,0x2a,0x27,0x22,0x7e,0x73,0x2a,0x21,0xbe,0x70,0x0, 0x22,0x7e,0x34,0x0, 0x3c, +0xca,0x39,0x7e,0x18,0x36,0xef,0x7e,0x8, 0x37,0x2b,0x12,0x17,0x2e,0x1b,0xfd,0x7e, +0x73,0x28,0x94,0x7a,0x73,0x36,0xee,0x7a,0x73,0x28,0x93,0x22,0x12,0x86,0xd4,0x28, +0x8, 0x7e,0xb3,0x28,0x84,0x70,0x2, 0xf5,0x1b,0x7e,0xb3,0x28,0x84,0x70,0x18,0xe5, +0x1b,0xbe,0xb0,0xfa,0x50,0x2, 0x5, 0x1b,0xe5,0x1b,0xbe,0xb0,0x5, 0x40,0x8, 0xe4, +0x7a,0xb3,0x32,0x4c,0x75,0x1b,0xfa,0x22,0xca,0x3b,0x7e,0xe3,0x2a,0x20,0x4c,0xee, +0x78,0x20,0x6c,0xff,0x6d,0x11,0x74,0x2, 0xac,0xbf,0x12,0x88,0xd6,0xac,0x3f,0x19, +0xa1,0x35,0xd0,0x74,0x2, 0xa, 0x1f,0x19,0xb1,0x36,0x3a,0xb, 0xf0,0xbe,0xf0,0xa, +0x78,0xe2,0x12,0x8a,0x95,0x7e,0x24,0x0, 0x14,0xad,0x32,0x7d,0x43,0x2e,0x44,0x3, +0x20,0x6c,0xff,0x2, 0x88,0xa7,0x74,0x9, 0xac,0xbf,0x9, 0xd5,0x28,0xb2,0x5e,0xd0, +0xf, 0xbe,0xd0,0xa, 0x40,0x3, 0x2, 0x88,0xa5,0xa, 0x1d,0x9, 0xb1,0x29,0xbc,0xbe, +0xb0,0x1, 0x78,0x3, 0x2, 0x88,0x8e,0x75,0x24,0x0, 0x7e,0xa1,0x24,0x74,0x9, 0xa4, +0x9, 0xc5,0x35,0xd0,0xbc,0xcd,0x68,0x3, 0x2, 0x88,0x80,0x49,0x25,0x35,0xce,0x74, +0x9, 0xac,0xbf,0x49,0x35,0x28,0xb0,0x9d,0x32,0x12,0x17,0x85,0x7d,0x3, 0x7e,0xa1, +0x24,0x74,0x9, 0xa4,0x49,0x25,0x35,0xcc,0x74,0x9, 0xac,0xbf,0x12,0x77,0xc4,0x2d, +0x3, 0xa, 0x1c,0x9, 0xa1,0x36,0x3a,0xbe,0xa0,0x0, 0x28,0x18,0x7e,0x30,0x2, 0xac, +0x3c,0x59,0x1, 0x36,0x26,0xa, 0x1c,0x2e,0x14,0x36,0x3a,0x7c,0xba,0x14,0x7a,0x19, +0xb0,0x2, 0x88,0xa5,0x74,0x2, 0xac,0xbc,0x49,0x15,0x36,0x26,0xbe,0x14,0x0, 0x32, +0x28,0x8, 0x7d,0x31,0x2d,0x34,0xbd,0x30,0x40,0x20,0xbe,0x14,0x0, 0x32,0x28,0x8, +0xbe,0x4, 0x0, 0x32,0x28,0x2, 0x80,0x72,0x7d,0x31,0x2e,0x34,0x0, 0x32,0xbd,0x30, +0x50,0x8, 0xbe,0x14,0x0, 0x32,0x28,0x2, 0x80,0x60,0xbe,0x4, 0x0, 0xa0,0x28,0x56, +0xa, 0x1d,0x9, 0xb1,0x29,0xbc,0x70,0x4, 0x74,0x3, 0x80,0x2, 0x74,0x1, 0xa, 0x1d, +0x19,0xb1,0x29,0xbc,0x74,0x3, 0xa, 0x1c,0x19,0xb1,0x29,0xc6,0xbe,0xe0,0x0, 0x28, +0x64,0x1b,0xe0,0x7e,0x70,0x9, 0xac,0x7f,0x2e,0x34,0x28,0xae,0x7e,0x14,0x1f,0x34, +0x74,0x9, 0x12,0x15,0xfc,0x7e,0x70,0x9, 0xac,0x7e,0x12,0x88,0xe1,0xac,0x3f,0x12, +0x88,0xcd,0x7e,0x34,0x1f,0x34,0x7e,0x30,0x9, 0xac,0x3e,0x12,0x88,0xcd,0x1b,0xf0, +0x74,0x2, 0xac,0xbc,0x80,0x4, 0x74,0x2, 0xac,0xbc,0x59,0x5, 0x36,0x26,0x80,0x25, +0x5, 0x24,0xe5,0x24,0xbe,0xb0,0xa, 0x50,0x3, 0x2, 0x87,0x8a,0x80,0x17,0x6d,0x11, +0x74,0x2, 0xac,0xbd,0x12,0x88,0xd6,0xac,0x3d,0x19,0xa1,0x35,0xd0,0x74,0x2, 0xa, +0x1d,0x19,0xb1,0x36,0x3a,0xb, 0xf0,0xbc,0xef,0x28,0x3, 0x2, 0x87,0x66,0xe4,0x7a, +0xb3,0x16,0x92,0x7e,0x34,0x0, 0x5a,0xca,0x39,0x7e,0x18,0x28,0xae,0x7e,0x8, 0x35, +0xcc,0x12,0x17,0x2e,0x1b,0xfd,0x7a,0xe3,0x2a,0x20,0xda,0x3b,0x22,0x2e,0x14,0x28, +0xae,0x74,0x9, 0x2, 0x15,0xfc,0x59,0x15,0x36,0x26,0x7e,0xa0,0xff,0x7e,0x30,0x9, +0x22,0x2e,0x34,0x28,0xae,0x7e,0x30,0x9, 0x22,0xca,0xd8,0xca,0x79,0x7c,0xdb,0x7e, +0xf0,0xa, 0x6c,0x11,0x80,0x21,0x7e,0x0, 0xff,0x74,0x9, 0xac,0xb1,0x19,0x5, 0x1f, +0x38,0x7e,0x34,0x7f,0xff,0x74,0x9, 0xac,0xb1,0x59,0x35,0x1f,0x34,0x74,0x9, 0xac, +0xb1,0x59,0x35,0x1f,0x36,0xb, 0x10,0xbc,0xf1,0x38,0xdb,0xe4,0x6c,0x77,0x7c,0x6d, +0x12,0x8a,0x32,0x7c,0x7d,0x7c,0x6f,0x12,0x8a,0x32,0x6c,0x0, 0x80,0x39,0x6c,0xee, +0x80,0x16,0x74,0x9, 0xac,0xbe,0x9, 0x65,0x1f,0x38,0x74,0x9, 0xac,0xb0,0x9, 0x75, +0x28,0xb2,0xbc,0x76,0x68,0x6, 0xb, 0xe0,0xbc,0x1e,0x38,0xe6,0xbc,0x1e,0x78,0x15, +0x7e,0x70,0x9, 0xac,0x70,0x12,0x88,0xe1,0xac,0x31,0x2e,0x14,0x1f,0x34,0x74,0x9, +0x12,0x15,0xfc,0xb, 0x10,0xb, 0x0, 0xbc,0xf0,0x38,0xc3,0x74,0x9, 0xac,0xbf,0xca, +0x59,0x7e,0x18,0x1f,0x34,0x7e,0x8, 0x29,0x62,0x12,0x17,0x2e,0x1b,0xfd,0xda,0x79, +0xda,0xd8,0x22,0xca,0x3b,0x7c,0x46,0x7c,0xab,0x6c,0x66,0x7c,0x57,0x41,0x14,0x7e, +0xf0,0x9, 0xac,0xf6,0x9, 0x87,0x29,0x66,0x7c,0x98,0x7e,0xd0,0x9, 0xac,0xd5,0x9, +0xb6,0x28,0xb2,0xbc,0xb9,0x78,0x6b,0xbe,0x90,0xff,0x68,0x66,0x12,0x8a,0x28,0x39, +0x87,0x0, 0x4, 0xa, 0xf9,0x9, 0xbf,0x29,0xbc,0x7e,0xf0,0x9, 0x70,0xc, 0xac,0xf5, +0x7d,0x97,0x2e,0x94,0x28,0xae,0x6d,0x88,0x80,0xa, 0xac,0xf6,0x7d,0x97,0x2e,0x94, +0x29,0x62,0x6d,0x88,0xb, 0x4a,0xd0,0x12,0x8a,0x28,0x1b,0x7a,0xd0,0x69,0xf4,0x0, +0x2, 0x7e,0xf0,0x9, 0xac,0xfa,0x7f,0x60,0x2d,0xd7,0x79,0xf6,0x0, 0x2, 0x7e,0xf0, +0x9, 0xac,0xf5,0x9, 0x87,0x28,0xb3,0x12,0x8a,0x28,0x39,0x87,0x0, 0x5, 0x7e,0xf0, +0x9, 0xac,0xf5,0x9, 0x87,0x28,0xb4,0x12,0x8a,0x28,0x39,0x87,0x0, 0x6, 0xb, 0xa0, +0x80,0x8, 0xb, 0x50,0xbc,0x45,0x28,0x2, 0x21,0x8f,0xb, 0x60,0xbe,0x60,0xa, 0x50, +0x2, 0x21,0x8b,0x7c,0xba,0xda,0x3b,0x22,0x7e,0xf0,0x9, 0xac,0xfa,0x7f,0x70,0x2d, +0xf7,0x22,0x7e,0x8, 0x1f,0x34,0x12,0x89,0x83,0x7c,0x1b,0x22,0xca,0x79,0x7e,0xf3, +0x2a,0x20,0x7e,0xe3,0x2a,0x21,0x7c,0xbf,0x7c,0x7e,0x12,0x43,0xf2,0x7c,0xbf,0x12, +0x88,0xe9,0x4c,0xee,0x78,0x15,0x7e,0x34,0x0, 0x5a,0xca,0x39,0x7e,0x18,0x28,0xae, +0x7e,0x8, 0x29,0x62,0x12,0x17,0x2e,0x1b,0xfd,0x80,0xb, 0x7e,0xb3,0x2a,0x27,0x70, +0x5, 0x7c,0xbf,0x12,0x77,0x3e,0x7c,0xbf,0x12,0x57,0x6a,0xbe,0xf0,0x0, 0x28,0x6, +0x74,0x1, 0x7a,0xb3,0x2a,0x29,0xda,0x79,0x22,0x7e,0xb3,0x38,0x38,0x70,0x3, 0x12, +0x87,0x28,0x2, 0x8a,0x3c,0x7e,0x73,0x2a,0x21,0xbe,0x73,0x2a,0x20,0x78,0x13,0x12, +0x8a,0xcd,0x40,0xe, 0x7e,0x37,0x35,0xa8,0xbe,0x34,0x0, 0x14,0x38,0xe, 0xb, 0x34, +0x80,0x6, 0x7e,0x37,0x35,0xa8,0x1e,0x34,0x7a,0x37,0x35,0xa8,0x7e,0xb3,0x2a,0x20, +0x70,0x6, 0x6d,0x33,0x7a,0x37,0x35,0xa8,0x7e,0x37,0x35,0xa8,0x22,0x7e,0x73,0x2a, +0x20,0xbe,0x70,0x1, 0x22,0x7e,0xb3,0x2a,0x27,0x70,0x23,0x7e,0xb3,0x35,0xaa,0xb4, +0x2, 0x9, 0x12,0x8a,0xcd,0x28,0x4, 0x74,0x3, 0x80,0x1, 0xe4,0x7a,0xb3,0x35,0xb5, +0x7e,0x73,0x35,0xb6,0xbe,0x73,0x35,0xb5,0x28,0x4, 0x7a,0x73,0x35,0xb5,0x22,0x12, +0x8b,0x5, 0x2, 0x8a,0xd5,0xca,0x79,0x7e,0x13,0x2a,0x20,0x7e,0x78,0x29,0xbc,0x12, +0x8c,0x4c,0xe4,0x33,0x7c,0xb, 0x4c,0x0, 0x68,0x8, 0x7e,0x30,0xf, 0x7e,0xa0,0x2, +0x80,0x6, 0x7e,0x30,0x3, 0x7e,0xa0,0x1, 0xa5,0xb9,0x0, 0x5, 0x12,0x1a,0xaf,0x81, +0x35,0xbc,0x20,0x50,0x3, 0x12,0x1a,0xaf,0x6c,0x0, 0x7e,0x70,0x9, 0xac,0x70,0x9, +0x93,0x29,0xc, 0xbe,0x90,0xff,0x78,0x2, 0x81,0x2b,0xa, 0x29,0x7f,0x67,0x2d,0xd2, +0x7e,0x6b,0x80,0xbe,0x80,0x2, 0x68,0x2, 0x81,0xe, 0x12,0x8c,0x42,0x49,0x33,0x29, +0x8, 0x9d,0x32,0x12,0x17,0x85,0x7d,0xd3,0x7e,0x70,0x4, 0xac,0x79,0x49,0x23,0x36, +0x49,0x12,0x8c,0x38,0x9d,0x32,0x12,0x17,0x85,0x7d,0xc3,0x7e,0x73,0x35,0x92,0xa, +0x27,0xbd,0x2d,0x28,0x53,0xbd,0x2c,0x28,0x4f,0x12,0x8c,0x42,0x7e,0xf0,0x9, 0xac, +0xf0,0x59,0x27,0x29,0x8, 0x7e,0x50,0x4, 0xac,0x59,0x49,0x22,0x36,0x49,0x7e,0xf0, +0x9, 0xac,0xf0,0x59,0x27,0x29,0xa, 0xbe,0x10,0x0, 0x28,0x2, 0x1b,0x10,0xa5,0xb9, +0x0, 0x79,0x7e,0xb3,0x35,0x93,0x4, 0x7a,0xb3,0x35,0x93,0x7e,0x63,0x35,0x93,0xbe, +0x60,0x32,0x40,0x67,0xe4,0x7a,0xb3,0x35,0x93,0x7e,0xb3,0x35,0x92,0xbc,0xb3,0x50, +0x5a,0x4, 0x7a,0xb3,0x35,0x92,0x80,0x53,0x7e,0x50,0x9, 0xac,0x50,0x49,0xb2,0x29, +0x8, 0x7e,0xf0,0x4, 0xac,0xf9,0x59,0xb7,0x36,0x47,0x49,0x22,0x29,0xa, 0x59,0x27, +0x36,0x49,0xbc,0x73,0x28,0x6, 0x7a,0xa3,0x35,0x92,0x80,0xb, 0xbc,0x7a,0x28,0x7, +0x7c,0xb7,0x14,0x7a,0xb3,0x35,0x92,0xe4,0x7a,0xb3,0x35,0x93,0x80,0x1d,0x4c,0x88, +0x78,0x19,0x7e,0x70,0x9, 0xac,0x70,0x49,0x33,0x29,0x8, 0x7e,0x50,0x4, 0xac,0x59, +0x59,0x32,0x36,0x47,0x12,0x8c,0x38,0x59,0x32,0x36,0x49,0xb, 0x0, 0xa5,0xb8,0xa, +0x2, 0x80,0x2, 0x61,0x3a,0xda,0x79,0x22,0x7e,0x70,0x9, 0xac,0x70,0x49,0x33,0x29, +0xa, 0x22,0x7e,0x50,0x4, 0xac,0x59,0x49,0x22,0x36,0x47,0x22,0xa2,0xa, 0x22,0x7c, +0xab,0x7e,0xb, 0xb0,0x60,0x3, 0xb4,0x2, 0x31,0xa, 0x4a,0x9, 0x74,0x35,0xab,0xbe, +0x73,0x35,0xb5,0x50,0xe, 0x7d,0x24,0x2e,0x24,0x35,0xab,0x7c,0xb7,0x4, 0x7a,0x29, +0xb0,0xd3,0x22,0xbe,0x73,0x35,0xb5,0x40,0x9, 0xbe,0x70,0xff,0x68,0x4, 0xe4,0x7a, +0xb, 0xb0,0x74,0xff,0x19,0xb4,0x35,0xab,0x80,0x17,0xa, 0x3a,0x9, 0xb3,0x35,0xab, +0xbe,0xb0,0xff,0x68,0x7, 0xe4,0x19,0xb3,0x35,0xab,0xd3,0x22,0xe4,0x19,0xb3,0x35, +0xab,0xc3,0x22,0xca,0xf8,0x7c,0xfb,0x7d,0xf3,0x7e,0x17,0x2a,0x81,0xbd,0x13,0x38, +0x6, 0x7e,0x34,0x1, 0x0, 0x80,0x15,0x6d,0x22,0x7c,0x56,0x7c,0x67,0x6c,0x77,0x12, +0x15,0x75,0xbe,0x34,0x0, 0x10,0x50,0x4, 0x7e,0x34,0x0, 0x10,0x74,0x2, 0xac,0xbf, +0x49,0x25,0x35,0xb7,0xbd,0x2f,0x28,0x6, 0x49,0x35,0x35,0x94,0x80,0x4, 0x59,0x35, +0x35,0x94,0x59,0xf5,0x35,0xb7,0xbe,0x34,0x1, 0x0, 0x28,0x4, 0x7e,0x34,0x1, 0x0, +0xda,0xf8,0x22,0x7e,0x8, 0x35,0xb7,0x7e,0x34,0x0, 0x14,0xe4,0x12,0x17,0x53,0x7e, +0x8, 0x35,0x94,0x7e,0x34,0x0, 0x14,0x2, 0x17,0x53,0x6c,0x0, 0x6c,0x11,0x80,0x13, +0x7c,0xb1,0x12,0x1e,0x96,0x60,0xa, 0x12,0x8d,0x64,0x40,0x5, 0x7e,0x0, 0x1, 0x80, +0xa, 0xb, 0x10,0x7e,0x73,0x28,0x84,0xbc,0x71,0x38,0xe5,0x7c,0xb0,0x6c,0x77,0x12, +0x8d,0x7d,0xbe,0x0, 0x1, 0x68,0xb, 0x7c,0xb0,0x7e,0x70,0x1, 0x12,0x8d,0x7d,0xb4, +0x1, 0x21,0x6c,0x11,0x80,0x15,0x7c,0xb1,0x12,0x1e,0x96,0x60,0xc, 0x12,0x8d,0x64, +0x50,0x7, 0x7c,0xb1,0x6c,0x77,0x12,0x54,0xcd,0xb, 0x10,0x7e,0x3, 0x28,0x84,0xbc, +0x1, 0x38,0xe3,0x22,0x74,0x2, 0xac,0xb1,0x9, 0x25,0x26,0xfa,0x9, 0x35,0x26,0xfb, +0x7c,0xb2,0x7c,0x73,0x7c,0xb7,0xb4,0x17,0x2, 0xd3,0x22,0xc3,0x22,0x7c,0xab,0xa5, +0xbf,0x0, 0xc, 0x7e,0xb3,0x37,0x67,0x7a,0xb3,0x37,0x68,0x7a,0xa3,0x37,0x67,0x7e, +0xb3,0x37,0x68,0x60,0x4, 0x74,0x8, 0x80,0xd, 0x7e,0xb3,0x28,0x84,0x70,0xb, 0x7e, +0xb3,0x37,0x69,0x60,0x5, 0x14,0x7a,0xb3,0x37,0x69,0x7e,0x73,0x37,0x69,0xbe,0x70, +0x0, 0x28,0x3, 0x74,0x1, 0x22,0xe4,0x22,0xe5,0x29,0x7c,0x7c,0x2, 0x8d,0x74,0xca, +0xf8,0x7e,0xd4,0x0, 0x9, 0x7e,0xb3,0x28,0x84,0x70,0x8, 0xf5,0x5e,0xc2,0xa, 0xc2, +0xb, 0x80,0x7d,0xbe,0xb0,0x2, 0x38,0x72,0xb4,0x2, 0x28,0x7e,0x73,0x26,0xfc,0xa, +0x27,0x7e,0x73,0x26,0xfa,0x12,0x1e,0x8f,0xbe,0x34,0x0, 0x5, 0x58,0x15,0x7e,0x73, +0x26,0xfd,0xa, 0x27,0x7e,0x73,0x26,0xfb,0x12,0x1e,0x8f,0xbe,0x34,0x0, 0x5, 0x58, +0x2, 0x80,0x5a,0x6c,0xff,0x80,0x3c,0x7c,0xbf,0x12,0x7e,0x27,0x1a,0x4b,0x7c,0xbf, +0x12,0x78,0x52,0x7d,0xc3,0xbe,0xc4,0x3, 0xe8,0x58,0x4, 0x7e,0xd4,0x0, 0x8, 0x7d, +0x5d,0x3e,0x54,0xbd,0x54,0x58,0x4, 0xd2,0xb, 0x80,0xa, 0x7d,0x5d,0xe, 0x54,0xbd, +0x54,0x48,0x2, 0xc2,0xb, 0x20,0xb, 0x4, 0xbd,0xd4,0x58,0x5, 0x75,0x5e,0x28,0x80, +0xf, 0xb, 0xf0,0x12,0x56,0xb5,0x38,0xbf,0x80,0x6, 0xe5,0x5e,0x24,0xfb,0xf5,0x5e, +0xe5,0x5e,0xbe,0xb0,0x0, 0x8, 0x6, 0xd2,0xa, 0x15,0x5e,0x80,0x5, 0x75,0x5e,0x0, +0xc2,0xa, 0xda,0xf8,0x22,0xca,0x3b,0x7e,0x93,0x2a,0x93,0x7e,0x37,0x28,0x8a,0xbe, +0x34,0x2, 0xbc,0x58,0x2, 0xe1,0x9, 0x6c,0x88,0xe1,0x2, 0x6c,0xff,0x6c,0xee,0x74, +0x2, 0xac,0xb8,0x9, 0xd5,0x26,0xfa,0x12,0x8f,0x13,0x7c,0xbd,0x12,0x2c,0xb9,0xbe, +0x34,0x0, 0xfa,0x18,0x6b,0x7e,0xa1,0x24,0x74,0x2, 0xa4,0x49,0x55,0x4, 0xfc,0xbe, +0x54,0x1, 0xc2,0x18,0x5b,0xbe,0xd0,0x3, 0x38,0x5f,0x6c,0xcc,0x80,0xd, 0x12,0x8f, +0xc, 0xbe,0x34,0x2, 0xbc,0x8, 0x2, 0xb, 0xf0,0xb, 0xc0,0xbc,0x9c,0x38,0xef,0x6c, +0xcc,0x80,0x24,0xbc,0x8c,0x68,0x1e,0x74,0x2, 0xac,0xbc,0x9, 0x75,0x26,0xfa,0xa, +0x37,0x7d,0x13,0xb, 0x14,0xa, 0x2d,0xbd,0x12,0x48,0xa, 0xa, 0x5d,0xb, 0x54,0xbd, +0x35,0x18,0x2, 0xb, 0xe0,0xb, 0xc0,0x7e,0x73,0x28,0x84,0xbc,0x7c,0x38,0xd4,0xbe, +0xf0,0x5, 0x50,0x5, 0xbe,0xe0,0x2, 0x40,0x7, 0x7c,0xb8,0x6c,0x77,0x12,0x54,0xcd, +0xb, 0x80,0x12,0x7f,0x7, 0x28,0x2, 0xc1,0x7b,0xda,0x3b,0x22,0x7c,0xbd,0x7c,0x7c, +0x2, 0x2c,0xb9,0x9, 0x75,0x26,0xfb,0x7a,0x71,0x24,0x22,0xe4,0x7a,0xb3,0x36,0x6f, +0x7e,0xb3,0x28,0x84,0x60,0x6, 0x7e,0xb3,0x36,0xe8,0x60,0x5, 0xe4,0x7a,0xb3,0x36, +0xea,0x22,0x7e,0xa0,0x1, 0x7e,0x37,0x2a,0x6e,0x12,0x8f,0x82,0x28,0x35,0x6d,0x22, +0x9d,0x23,0xbe,0x27,0x7, 0xf8,0x58,0x2b,0x12,0x8f,0x7b,0xbe,0x37,0x7, 0xfa,0x8, +0x22,0xe4,0x7a,0xb3,0x28,0x84,0x7e,0xb3,0x2a,0x21,0x70,0x17,0x7e,0xb3,0x38,0xf, +0xb4,0x1, 0x10,0x6c,0xaa,0x5, 0x5f,0xe5,0x5f,0xbe,0xb0,0x10,0x28,0x5, 0xd2,0x15, +0x75,0x5f,0x0, 0x4c,0xaa,0x68,0x3, 0x75,0x5f,0x0, 0x22,0x7e,0x24,0x0, 0x2, 0x2, +0x15,0x29,0x7e,0xb3,0x28,0x84,0xbe,0xb0,0x0, 0x22,0x7e,0xb3,0x2b,0x3c,0xb4,0x1, +0x31,0x12,0x8f,0xc3,0x7e,0x1f,0x39,0xac,0x7a,0x37,0x24,0xfa,0x7e,0x34,0xd, 0xc8, +0x7a,0x37,0x24,0xf6,0x12,0x8f,0xca,0x12,0x8f,0xd3,0xe4,0x7a,0xb3,0x24,0xf5,0x7e, +0x34,0x0, 0x20,0x7a,0x37,0x24,0xfc,0x7a,0xb3,0x24,0xf4,0x7e,0x8, 0x24,0xf2,0x2, +0xd, 0x7, 0x22,0xa9,0xd1,0xcb,0xe4,0x2, 0x0, 0xe, 0x7e,0x73,0x2a,0x8c,0x7a,0x73, +0x24,0xf2,0x22,0x7e,0x73,0x2a,0x8d,0x7a,0x73,0x24,0xf3,0x22,0x12,0x8f,0xeb,0xbe, +0x34,0x2, 0x30,0x28,0x3, 0xd2,0x17,0x22,0xc2,0x17,0x22,0x6d,0x11,0xe4,0x12,0x0, +0x1e,0x6c,0xaa,0x80,0x5b,0x7e,0x10,0x2, 0xac,0x1a,0x7e,0x7f,0x39,0xc6,0x2d,0xf0, +0x69,0x27,0x1, 0x0, 0x69,0x37,0x0, 0x80,0x9d,0x32,0x12,0x17,0x85,0xbd,0x31,0x28, +0x16,0x7e,0x70,0x2, 0xac,0x7a,0x7e,0xf, 0x39,0xc6,0x2d,0x13,0x69,0x20,0x1, 0x0, +0x69,0x30,0x0, 0x80,0x12,0x77,0xbc,0x7e,0x10,0x2, 0xac,0x1a,0x7e,0x1f,0x39,0xc6, +0x2d,0x30,0x69,0x1, 0x0, 0x80,0xbe,0x4, 0x7f,0xff,0x78,0x4, 0x7e,0x14,0x7f,0xff, +0x69,0x1, 0x1, 0x0, 0xbe,0x4, 0x7f,0xff,0x78,0x4, 0x7e,0x14,0x7f,0xff,0xb, 0xa0, +0x7e,0xb3,0x2a,0x93,0xbc,0xba,0x38,0x9d,0x7d,0x31,0x22,0x7e,0x8, 0x24,0xf2,0x7e, +0x34,0x0, 0xc, 0xe4,0x12,0x17,0x53,0x12,0x8f,0xd3,0x12,0x8f,0xca,0xa9,0xd1,0xcb, +0x12,0x6f,0xd1,0x7a,0x37,0x24,0xf6,0x7e,0x1f,0x39,0xac,0x7a,0x37,0x24,0xf8,0x7e, +0x1f,0x13,0x86,0x7a,0x37,0x24,0xfa,0x6d,0x33,0x12,0x90,0x8f,0x2, 0xd, 0x7, 0x7a, +0x37,0x24,0xfc,0x7e,0x8, 0x24,0xf2,0x22,0x7a,0xb3,0x24,0xf2,0x7e,0x53,0x2a,0x8d, +0x7a,0x53,0x24,0xf3,0x7a,0x37,0x24,0xfa,0xe4,0x7a,0xb3,0x24,0xf4,0x7a,0xb3,0x24, +0xf5,0x7e,0x34,0x40,0x0, 0x7a,0x37,0x24,0xf6,0x7e,0x34,0x0, 0x20,0x12,0x90,0x8f, +0x2, 0xd, 0x7, 0x12,0x6f,0xc9,0x7e,0x34,0xd, 0xc8,0x7e,0xb3,0x2a,0x8c,0x12,0x90, +0x98,0x12,0x90,0xdf,0x7a,0x37,0x39,0xa9,0x74,0x1, 0x7a,0xb3,0x16,0x91,0x22,0x6d, +0x33,0x90,0x60,0x91,0xe4,0x93,0xbe,0xb0,0x0, 0x28,0x3, 0x2, 0x91,0x95,0x90,0x60, +0x92,0xe4,0x93,0xbe,0xb0,0x0, 0x28,0x3, 0x2, 0x90,0xfc,0x22,0xca,0xf8,0x6d,0xee, +0x7d,0xfe,0x7e,0x83,0x2a,0x8d,0xa, 0xd8,0x90,0x60,0x94,0xe4,0x93,0xb4,0xff,0x2f, +0x7e,0x8, 0x13,0x8e,0x6c,0xaa,0x80,0x18,0x7e,0x70,0x2, 0xac,0x7a,0x49,0x23,0x13, +0xfe,0x7f,0x50,0x2d,0xb3,0xb, 0x5a,0xc0,0x9d,0xc2,0x59,0xc3,0x13,0xc6,0xb, 0xa0, +0xbc,0x8a,0x38,0xe4,0x90,0x60,0x92,0xe4,0x93,0x7c,0x9b,0x6d,0xdd,0x80,0x11,0x7e, +0x8, 0x13,0xfe,0x90,0x60,0x92,0xe4,0x93,0xa, 0xcb,0x1b,0xc4,0x7d,0x3c,0x7c,0x97, +0x6c,0xff,0x80,0x38,0x6c,0xaa,0x80,0x28,0xa, 0x3a,0x7d,0x23,0x2d,0x2e,0x3e,0x24, +0x49,0xc2,0x13,0xfe,0x2d,0x3d,0x3e,0x34,0x2d,0x31,0x7d,0x20,0xb, 0x1a,0xb0,0x7d, +0x3c,0x9d,0x3b,0x12,0x17,0x85,0x7d,0xa3,0xbd,0xfa,0x58,0x2, 0x7d,0xfa,0xb, 0xa0, +0xbc,0x8a,0x38,0xd4,0xa, 0xc8,0x2d,0xec,0x2d,0xdc,0xb, 0xf0,0xbc,0x9f,0x38,0xc4, +0x7d,0x3f,0xda,0xf8,0x22,0xca,0xf8,0x6d,0x44,0x7e,0xf3,0x2a,0x8d,0x90,0x60,0x93, +0xe4,0x93,0xa, 0xfb,0x7e,0xb3,0x2a,0x8c,0xa, 0xeb,0x2d,0xef,0xa, 0xff,0xad,0xfe, +0xa, 0xef,0x2d,0xef,0x90,0x60,0x94,0xe4,0x93,0xb4,0xff,0x31,0x7e,0x8, 0x13,0x8e, +0x6c,0xaa,0x80,0x23,0xa, 0xda,0x2d,0xdf,0x3e,0xd4,0x7e,0x1f,0x39,0xac,0x2d,0x3d, +0xb, 0x1a,0xd0,0x7e,0x50,0x2, 0xac,0x5a,0x7f,0x50,0x2d,0xb2,0xb, 0x5a,0x30,0x9d, +0x3d,0x59,0x32,0x13,0xc6,0xb, 0xa0,0xbc,0xfa,0x38,0xd9,0x80,0xa, 0x7d,0x5e,0x3e, +0x54,0x7e,0xf, 0x39,0xac,0x2d,0x15,0x6c,0xaa,0x80,0x2c,0xa, 0xea,0x2d,0xef,0x3e, +0xe4,0x7e,0x1f,0x39,0xac,0x2d,0x3e,0xb, 0x1a,0xe0,0x7e,0x70,0x2, 0xac,0x7a,0x2d, +0x31,0x7d,0x20,0xb, 0x1a,0xd0,0x7d,0x3e,0x9d,0x3d,0x12,0x17,0x85,0x7d,0xc3,0xbd, +0x4c,0x58,0x2, 0x7d,0x4c,0xb, 0xa0,0xbc,0xfa,0x38,0xd0,0x7d,0x34,0xda,0xf8,0x22, +0x6c,0x66,0x7e,0x27,0x39,0xd6,0xbe,0x24,0x3, 0xe8,0x28,0x3, 0x7e,0x60,0x8, 0x7e, +0xb3,0x28,0xac,0xb4,0x1, 0x1a,0x7e,0x73,0x2f,0xca,0xbc,0x76,0x50,0xf, 0xe4,0x7a, +0xb3,0x28,0xad,0x12,0x7b,0xb0,0x7e,0xb3,0x2f,0xca,0x4, 0x80,0x4, 0xe4,0x80,0x1, +0xe4,0x7a,0xb3,0x2f,0xca,0x7e,0xb3,0x28,0xad,0xb4,0x1, 0x17,0x7e,0xa3,0x2f,0xcb, +0xbe,0xa0,0x5, 0x50,0xa, 0xe4,0x7a,0xb3,0x28,0xad,0x7c,0xba,0x4, 0x80,0x5, 0x74, +0x5, 0x80,0x1, 0xe4,0x7a,0xb3,0x2f,0xcb,0x22,0x6c,0xaa,0x80,0x26,0x7e,0x50,0x2, +0xac,0x5a,0x49,0x12,0x5, 0xf8,0x49,0x32,0x4, 0x0, 0x2d,0x31,0x59,0x32,0x5, 0xf8, +0x30,0x6, 0xe, 0x49,0x12,0x4, 0x7e,0x49,0x32,0x6, 0x76,0x2d,0x31,0x59,0x32,0x6, +0x76,0xb, 0xa0,0x7e,0xb3,0x2a,0x93,0xa, 0x3b,0x7e,0xb3,0x2a,0x92,0xa, 0x2b,0x2d, +0x23,0xa, 0x3a,0xbd,0x32,0x48,0xc6,0x22,0xd2,0x0, 0x6c,0xaa,0x6c,0x77,0x80,0x1f, +0x7e,0x63,0x2a,0x8d,0xa, 0x16,0xa, 0x27,0x2d,0x21,0x7c,0x65,0x7e,0x50,0x2, 0xac, +0x56,0x49,0x22,0x5, 0x7a,0xbe,0x24,0xfe,0xc, 0x58,0x2, 0xb, 0xa0,0xb, 0x70,0x7e, +0xb3,0x2a,0x8c,0xbc,0xb7,0x38,0xd9,0xa, 0x2b,0x1e,0x24,0xa, 0x3a,0xbd,0x32,0x8, +0x2, 0xc2,0x0, 0xa2,0x0, 0x22,0x7e,0x63,0x2a,0x8e,0x7e,0xa3,0x2a,0x8f,0x7e,0x70, +0x1, 0x80,0x15,0xa, 0x17,0x7e,0xb3,0x2a,0x8d,0xa, 0x2b,0x2d,0x21,0x3e,0x24,0x12, +0x93,0x51,0x58,0x2, 0xd3,0x22,0xb, 0x70,0xa, 0x16,0x1b,0x14,0xa, 0x27,0xbd,0x21, +0x48,0xe1,0x7e,0x70,0x2, 0x80,0xe, 0x7e,0x50,0x2, 0xac,0x57,0x12,0x93,0x51,0x58, +0x2, 0xd3,0x22,0xb, 0x70,0xa, 0x1a,0x1b,0x15,0xa, 0x27,0xbd,0x21,0x48,0xe8,0xc3, +0x22,0x49,0x22,0x4, 0xfc,0xbe,0x24,0xfe,0xe8,0x22,0x7e,0xb3,0x37,0x7b,0xb4,0x1, +0x3, 0x2, 0x93,0xb1,0x7e,0xb3,0x37,0xe1,0x4, 0x7a,0xb3,0x37,0xe1,0x7e,0xb3,0x37, +0x6f,0xb4,0x2, 0x18,0x7e,0xb3,0x37,0xe0,0x4, 0x7a,0xb3,0x37,0xe0,0xb4,0x1, 0x6, +0x74,0x1, 0x7a,0xb3,0x37,0xe1,0x74,0x1, 0x7a,0xb3,0x37,0x6f,0x7e,0x73,0x37,0xe0, +0xbe,0x70,0x3, 0x40,0xf, 0x74,0x1, 0x7a,0xb3,0x37,0x7b,0x12,0x93,0xb1,0x12,0x96, +0x67,0x12,0x93,0xb8,0x7e,0x73,0x37,0xe1,0xbe,0x70,0xa, 0x28,0x3, 0x2, 0x93,0xb8, +0x22,0x74,0x2, 0x7a,0xb3,0x37,0x6f,0x22,0xe4,0x7a,0xb3,0x37,0xe1,0x7a,0xb3,0x37, +0xe0,0x22,0x7e,0x73,0x37,0x6f,0x7a,0x73,0x37,0xe5,0x7e,0x47,0x39,0xa9,0xbe,0x44, +0x0, 0x64,0x28,0x6, 0x74,0x1, 0x7a,0xb3,0x37,0x6f,0xbe,0x44,0x0, 0xc8,0x28,0x8, +0xe4,0x7a,0xb3,0x37,0x6d,0x12,0x93,0xb1,0x7e,0x57,0x37,0x75,0xbd,0x54,0x50,0x4, +0x7a,0x47,0x37,0x75,0x12,0x95,0xe4,0x38,0x10,0x12,0x95,0xdc,0x38,0xb, 0x12,0x94, +0x49,0x38,0x6, 0x7e,0xb3,0x16,0x91,0x70,0x34,0x12,0x93,0x5a,0xbe,0x44,0x0, 0x32, +0x50,0x21,0x7e,0xb3,0x37,0x6d,0x4, 0x7a,0xb3,0x37,0x6d,0x7e,0x73,0x37,0x6d,0xbe, +0x70,0x32,0x28,0x14,0x74,0x32,0x7a,0xb3,0x37,0x6d,0x12,0x95,0xf6,0x7a,0xb3,0x37, +0xe2,0x80,0x5, 0xe4,0x7a,0xb3,0x37,0x6d,0x7d,0x34,0x2, 0x96,0xbf,0x2, 0x94,0x40, +0x12,0x93,0xb8,0xe4,0x7a,0xb3,0x37,0x7b,0x22,0x7e,0x73,0x26,0xf5,0xbe,0x70,0x0, +0x22,0xca,0x79,0x7e,0xf0,0xff,0x12,0x96,0x90,0x7e,0xb3,0x37,0x71,0xb4,0x1, 0x8, +0x12,0x6f,0xee,0xe4,0x7a,0xb3,0x37,0x71,0x7e,0xb3,0x37,0x70,0x60,0x4, 0x74,0xff, +0xa1,0x52,0x7e,0xb3,0x37,0x6f,0xb4,0x2, 0x2, 0x80,0x2, 0xa1,0x46,0x12,0x95,0xe4, +0x38,0x12,0x12,0x95,0xdc,0x38,0xd, 0x12,0x94,0x49,0x38,0x8, 0x7e,0xb3,0x16,0x91, +0x60,0x2, 0xa1,0x46,0x74,0x3, 0x12,0x95,0x55,0x7c,0xeb,0x7e,0xb3,0x37,0x6e,0x4, +0x7a,0xb3,0x37,0x6e,0x74,0x3, 0x12,0x95,0x55,0x7c,0xab,0xbe,0xa0,0xff,0x68,0x23, +0xbe,0xe0,0xff,0x68,0x1c,0x7e,0x30,0xc, 0xac,0x3e,0x49,0x21,0x37,0x84,0xbe,0x24, +0x1, 0xf4,0x28,0xf, 0x12,0x95,0xec,0x3e,0x34,0xbd,0x23,0x28,0x6, 0x7c,0xea,0x80, +0x2, 0x7c,0xea,0xbe,0xe0,0xff,0x78,0x11,0xe4,0x7a,0xb3,0x37,0x6e,0x7a,0xb3,0x37, +0x6f,0x7a,0xb3,0x37,0x7b,0x74,0xff,0x80,0x69,0x7e,0x73,0x37,0x6e,0xbe,0x70,0x4, +0x28,0x54,0x74,0xc, 0xac,0xbe,0x49,0x35,0x37,0x84,0xbe,0x34,0x1, 0xf4,0x40,0x6, +0x7e,0xb3,0x16,0x91,0x70,0x37,0x7e,0x37,0x37,0x6a,0xbe,0x34,0x1, 0x2c,0x38,0xa, +0x7e,0x37,0x37,0x75,0xbe,0x34,0x1, 0x2c,0x28,0x23,0x74,0x5, 0xac,0xbe,0x9, 0x75, +0x26,0x33,0xbe,0x73,0x2b,0x2e,0x68,0x15,0x7c,0xfe,0xbe,0xf0,0x4, 0x50,0x8, 0x12, +0x6e,0xb4,0xbe,0xb0,0x4, 0x40,0x6, 0x74,0x1, 0x7a,0xb3,0x37,0x71,0xe4,0x7a,0xb3, +0x37,0x7b,0x7a,0xb3,0x37,0x6f,0xbe,0xf0,0xff,0x68,0x5, 0xe4,0x7a,0xb3,0x37,0x6e, +0x7c,0xbf,0xda,0x79,0x22,0x7c,0x3b,0x7e,0x44,0xff,0xff,0x6c,0x22,0x80,0x2a,0x12, +0x95,0xce,0x68,0x23,0x7e,0x70,0xc, 0xac,0x72,0x12,0x96,0x0, 0x7d,0x23,0x7e,0x70, +0xc, 0xac,0x72,0x59,0x23,0x37,0x88,0x49,0x3, 0x37,0x88,0x49,0x23,0x37,0x84,0xbd, +0x20,0x50,0x4, 0x59,0x3, 0x37,0x84,0xb, 0x20,0xbc,0x32,0x50,0xd2,0x6c,0xaa,0x6c, +0x22,0x80,0x18,0x12,0x95,0xce,0x68,0x11,0x7e,0x70,0xc, 0xac,0x72,0x49,0x3, 0x37, +0x84,0xbd,0x4, 0x50,0x4, 0x7d,0x40,0x7c,0xa2,0xb, 0x20,0xbc,0x32,0x50,0xe4,0x7e, +0x37,0x37,0x6a,0xbe,0x37,0x37,0xe3,0x50,0x8, 0x7e,0x37,0x37,0xe3,0x7a,0x37,0x37, +0x6a,0x12,0x95,0xec,0x4d,0x33,0x78,0x3, 0x7e,0xa0,0xff,0x7c,0xba,0x22,0x7e,0x10, +0x5, 0xac,0x12,0x9, 0xb0,0x26,0x33,0xbe,0xb3,0x2b,0x2e,0x22,0x7e,0x73,0x26,0xf4, +0xbe,0x70,0x0, 0x22,0x7e,0x73,0x28,0x92,0xbe,0x70,0x0, 0x22,0x7e,0x70,0xc, 0xac, +0x7a,0x49,0x33,0x37,0x84,0x22,0xe4,0x7a,0xb3,0x37,0x6f,0x7a,0xb3,0x37,0x77,0x22, +0x49,0x23,0x37,0x8a,0x49,0x33,0x37,0x86,0x9d,0x32,0x2, 0x17,0x85,0x6c,0xaa,0x7e, +0x70,0xc, 0xac,0x7a,0x12,0x96,0x0, 0xbe,0x34,0x3, 0xe8,0x8, 0x5, 0x12,0x96,0x59, +0x80,0x2f,0x7e,0x50,0xc, 0xac,0x5a,0x49,0x32,0x37,0x8a,0x49,0x12,0x37,0x86,0xbd, +0x13,0x28,0xf, 0x7d,0x2, 0x2e,0x4, 0x37,0x8a,0x7d,0x13,0xb, 0x15,0x1b,0x8, 0x10, +0x80,0xf, 0xbe,0x34,0x0, 0x2, 0x28,0x9, 0x2e,0x24,0x37,0x8a,0x1b,0x35,0x1b,0x28, +0x30,0xb, 0xa0,0xbe,0xa0,0x4, 0x40,0xb7,0x22,0x7e,0x50,0xc, 0xac,0x5a,0x49,0x32, +0x37,0x86,0x59,0x32,0x37,0x8a,0x22,0xe4,0x7a,0xb3,0x37,0x6d,0x6d,0x33,0x6c,0xaa, +0x7e,0x50,0xc, 0xac,0x5a,0x59,0x32,0x37,0x84,0xb, 0xa0,0xbe,0xa0,0x4, 0x40,0xf0, +0xe4,0x7a,0xb3,0x37,0x6e,0x6d,0x33,0x7a,0x37,0x37,0x75,0x7a,0x37,0x37,0x6a,0x22, +0x7e,0xb3,0x37,0x70,0xb4,0x1, 0x27,0x7e,0xb3,0x37,0xe6,0x4, 0x7a,0xb3,0x37,0xe6, +0x7e,0x73,0x37,0xe6,0xbe,0x70,0x3, 0x40,0x15,0x12,0x7e,0xc, 0x7e,0x73,0x37,0xe6, +0xbe,0x70,0x6, 0x40,0x9, 0xe4,0x7a,0xb3,0x37,0xe6,0x7a,0xb3,0x37,0x70,0x22,0xbe, +0x34,0x1, 0xf4,0x28,0xd, 0x7e,0x53,0x37,0xe2,0xbe,0x50,0x8, 0x50,0x3f,0x74,0x8, +0x80,0x37,0xbe,0x34,0x1, 0x90,0x28,0xd, 0x7e,0x53,0x37,0xe2,0xbe,0x50,0x6, 0x50, +0x2c,0x74,0x6, 0x80,0x24,0xbe,0x34,0x1, 0x2c,0x28,0xd, 0x7e,0x53,0x37,0xe2,0xbe, +0x50,0x4, 0x50,0x19,0x74,0x4, 0x80,0x11,0xbe,0x34,0x0, 0xc8,0x28,0xf, 0x7e,0x73, +0x37,0xe2,0xbe,0x70,0x2, 0x50,0x6, 0x74,0x2, 0x7a,0xb3,0x37,0xe2,0x7e,0xb3,0x37, +0xe2,0xbe,0xb0,0x0, 0x28,0x19,0x14,0x7a,0xb3,0x37,0xe2,0x74,0x1, 0x7a,0xb3,0x16, +0x92,0x7e,0x73,0x37,0xe2,0xbe,0x70,0x4, 0x28,0x5, 0xe4,0x7a,0xb3,0x16,0x91,0x22, +0x7e,0xb3,0x2b,0x2e,0xca,0x3b,0x7c,0xeb,0x6c,0xff,0x7e,0xc4,0x1, 0xf4,0x7e,0x73, +0x38,0xe5,0xa, 0xb7,0x7e,0xb3,0x2b,0x2f,0xf5,0x34,0x75,0x35,0x4, 0xe4,0x7a,0xb3, +0x37,0x78,0xa, 0x3e,0xad,0x3b,0x7d,0xa3,0x2d,0xac,0x6c,0xdd,0x7e,0xa3,0x37,0x78, +0xbe,0xa1,0x35,0x40,0x2, 0x80,0x19,0xbe,0xa0,0x0, 0x28,0x19,0x74,0x5, 0xa4,0x9, +0x75,0x26,0x33,0xbc,0x7e,0x78,0xe, 0xe5,0x35,0x14,0xbe,0xb3,0x37,0x78,0x78,0x5, +0xe4,0x7a,0xb3,0x37,0x78,0x7e,0xc3,0x37,0x78,0x80,0x3a,0x7e,0xb3,0x37,0x78,0x4, +0x7a,0xb3,0x37,0x78,0x74,0x5, 0xac,0xbc,0x9, 0x75,0x26,0x33,0xbc,0x7e,0x68,0x23, +0xa, 0xdd,0x19,0xcd,0x37,0x7c,0xa, 0x97,0xad,0x9b,0x2d,0x9c,0x7c,0xad,0xb, 0xd0, +0x7c,0xba,0x7d,0x39,0x7d,0x2a,0x7e,0x31,0x34,0x12,0x10,0x0, 0xb, 0xf0,0xbe,0xf0, +0x3, 0x50,0x8, 0xb, 0xc0,0xe5,0x35,0xbc,0xbc,0x38,0xc0,0x7a,0xf3,0x37,0x79,0xda, +0x3b,0x22,0x7e,0x37,0x39,0xa5,0x12,0x51,0x7f,0x7a,0x37,0x37,0xe3,0x6c,0xaa,0x80, +0x24,0xbe,0xa0,0x4, 0x50,0x27,0xa, 0x3a,0x9, 0x63,0x37,0x7c,0xbe,0x60,0x4, 0x50, +0x12,0x7e,0x50,0x2, 0xac,0x5a,0x49,0x42,0x39,0x9f,0x7e,0x70,0xc, 0xac,0x67,0x59, +0x43,0x37,0x86,0xb, 0xa0,0x7e,0xb3,0x37,0x79,0xbc,0xba,0x38,0xd4,0x22,0x12,0x98, +0xa4,0x12,0x98,0x70,0x90,0x60,0x50,0xe4,0x93,0xa, 0x3b,0x7d,0x13,0x2e,0x14,0x2a, +0x99,0x6d,0x0, 0x9, 0xb3,0x2a,0x98,0x12,0x98,0x57,0xa, 0x3b,0x7d,0x13,0x2e,0x14, +0x2b,0x40,0x6d,0x0, 0x9, 0xb3,0x2b,0x3f,0x12,0x98,0x57,0xa, 0x1b,0x2e,0x14,0x2a, +0x9b,0x12,0x98,0x64,0xe5,0x25,0x12,0x98,0x5b,0xa, 0x1b,0x2e,0x14,0x2b,0x42,0x12, +0x98,0x64,0xe5,0x24,0x2, 0x17,0x53,0x7e,0x34,0x0, 0x2, 0x12,0x17,0x53,0x90,0x60, +0x50,0xe4,0x93,0x22,0x6d,0x0, 0x90,0x60,0x91,0xe4,0x93,0xa, 0x3b,0x1b,0x35,0x22, +0x6c,0xaa,0x6c,0x99,0x80,0xc, 0xa, 0xf9,0x9, 0xbf,0x2a,0x99,0xbc,0xba,0x68,0x7, +0xb, 0x90,0x12,0x98,0x9c,0x38,0xef,0x12,0x98,0x9c,0x68,0x7, 0xb, 0xa0,0xbe,0xa0, +0x23,0x40,0xdf,0x7a,0xb, 0xa0,0x74,0x6e,0x7a,0x1b,0xb0,0x22,0x90,0x60,0x50,0xe4, +0x93,0xbc,0xb9,0x22,0x7e,0x8, 0x0, 0x25,0x7e,0x18,0x0, 0x24,0x22,0x7e,0x8, 0x37, +0x80,0x7e,0x34,0x0, 0x60,0xe4,0x12,0x17,0x53,0x6c,0xaa,0x7e,0x44,0xff,0xff,0x7e, +0x70,0xc, 0xac,0x7a,0x59,0x43,0x37,0x82,0x59,0x43,0x37,0x8a,0xb, 0xa0,0xbe,0xa0, +0x8, 0x40,0xe8,0x7e,0x8, 0x37,0x6e,0x7e,0x34,0x0, 0xd, 0xe4,0x2, 0x17,0x53,0x7e, +0xa3,0x2b,0x81,0xbc,0xab,0x68,0x6, 0x7a,0xb3,0x2b,0x81,0xd2,0x10,0x30,0x10,0x9, +0xc2,0x10,0x12,0x27,0xe0,0xe4,0x2, 0xa, 0x66,0x22,0x6d,0x33,0x7d,0x23,0x7d,0x3, +0x6c,0x33,0x80,0x45,0x6c,0x22,0x80,0x37,0x7e,0xb3,0x2a,0x8d,0xac,0xb3,0xa, 0x42, +0x2d,0x54,0x7d,0x45,0x3e,0x44,0x7e,0x7f,0x13,0x8a,0x2d,0xf4,0xb, 0x7a,0x40,0xbe, +0x44,0x0, 0x32,0x8, 0x8, 0xbe,0x44,0x2, 0x58,0x58,0x2, 0xb, 0x24,0xbe,0x44,0xff, +0xce,0x58,0x8, 0xbe,0x44,0xfd,0xa8,0x8, 0x2, 0xb, 0x4, 0xb, 0x34,0xb, 0x21,0x7e, +0x93,0x2a,0x8d,0xbc,0x92,0x38,0xc1,0xb, 0x31,0x7e,0xb3,0x2a,0x8c,0xbc,0xb3,0x38, +0xb3,0x7e,0x54,0x0, 0x6, 0xad,0x53,0x7d,0x15,0x1e,0x14,0x1e,0x14,0x1e,0x14,0x12, +0x51,0x81,0xbd,0x12,0x50,0x22,0xbd,0x30,0x28,0x1e,0xe4,0x7a,0xb3,0x39,0xda,0x7e, +0xb3,0x39,0xdb,0xbe,0xb0,0x5, 0x50,0x7, 0x4, 0x7a,0xb3,0x39,0xdb,0x80,0x3c,0xe4, +0x7a,0xb3,0x39,0xdb,0x74,0x1, 0x80,0x2f,0xbd,0x10,0x50,0x22,0xbd,0x32,0x28,0x1e, +0xe4,0x7a,0xb3,0x39,0xdb,0x7e,0xb3,0x39,0xda,0xbe,0xb0,0x5, 0x50,0x7, 0x4, 0x7a, +0xb3,0x39,0xda,0x80,0x16,0xe4,0x7a,0xb3,0x39,0xda,0x74,0x2, 0x80,0x9, 0xe4,0x7a, +0xb3,0x39,0xda,0x7a,0xb3,0x39,0xdb,0x7a,0xb3,0x39,0xdc,0x7e,0xb3,0x39,0xdc,0x22, +0xe4,0x7a,0xb3,0x28,0xa8,0x7a,0xb3,0x39,0xdd,0x22,0xca,0xd8,0xca,0x79,0xc2,0x0, +0x6c,0xdd,0x7e,0x57,0x28,0x99,0x7d,0xf5,0x7e,0xe7,0x28,0x97,0x7e,0x37,0x39,0x13, +0x4d,0x33,0x68,0x4, 0x7d,0xf5,0xe, 0xf4,0x6c,0xff,0x7e,0xa3,0x2a,0x8d,0x7c,0x8a, +0x7e,0xb3,0x28,0xa5,0x14,0x68,0x21,0x14,0x68,0x14,0x24,0xc2,0x68,0x8, 0x24,0xfb, +0x68,0x16,0x24,0x45,0x78,0x10,0x7c,0xfa,0x7e,0x83,0x2a,0x8c,0x80,0xa, 0x7e,0x73, +0x2a,0x8c,0x2c,0x87,0x80,0x2, 0x6c,0x88,0x6c,0x99,0x80,0xf, 0x7c,0xb9,0x12,0x78, +0x52,0xbe,0x34,0x2, 0x58,0x8, 0x2, 0xb, 0xd0,0xb, 0x90,0x7e,0x33,0x28,0x84,0xbc, +0x39,0x38,0xe9,0xbe,0xd0,0x3, 0x40,0x2, 0x61,0x8b,0x7e,0xa3,0x28,0x85,0xbe,0xa0, +0x0, 0x38,0xb, 0xbe,0x30,0x0, 0x28,0x37,0x7e,0xb3,0x26,0x83,0x70,0x31,0x6c,0x99, +0x80,0x29,0xa, 0x29,0xa, 0x3f,0x2d,0x32,0x3e,0x34,0x49,0x23,0x5, 0x7a,0xbd,0x2f, +0x8, 0x17,0x49,0x3, 0x4, 0xfc,0xbd,0xe, 0x58,0xf, 0x6d,0x33,0x9d,0x3e,0x12,0x8f, +0x7b,0xbd,0x3, 0x8, 0x4, 0xd2,0x0, 0x80,0x6, 0xb, 0x90,0xbc,0x89,0x38,0xd3,0x6d, +0xee,0x9e,0xe7,0x2a,0x6e,0xbe,0xe7,0x7, 0xf8,0x8, 0x2, 0xc2,0x0, 0x30,0x0, 0x20, +0x7e,0xb3,0x39,0xdd,0x4, 0x7a,0xb3,0x39,0xdd,0x7e,0x23,0x39,0xdd,0xbe,0x20,0xa, +0x28,0x1d,0x74,0xa, 0x7a,0xb3,0x39,0xdd,0x74,0x1, 0x7a,0xb3,0x28,0xa8,0x80,0xf, +0x7e,0x23,0x39,0xdd,0xbe,0x20,0x0, 0x28,0x6, 0x1e,0x20,0x7a,0x23,0x39,0xdd,0x6c, +0xee,0xbe,0x30,0x0, 0x38,0x5, 0xbe,0xa0,0x0, 0x28,0x69,0x7e,0xb3,0x28,0xa7,0xb4, +0x1, 0x9, 0x7e,0xb3,0x28,0xaa,0xbe,0xb0,0x1, 0x68,0x59,0x7e,0xb3,0x28,0xa8,0xb4, +0x1, 0x52,0x6c,0x99,0x80,0x1d,0x7e,0x70,0x2, 0xac,0x79,0x9, 0xa3,0x26,0xfa,0x9, +0xd3,0x26,0xfb,0x12,0x9b,0x90,0xbe,0x34,0x0, 0x96,0x8, 0x5, 0x7e,0xe0,0x1, 0x80, +0xa, 0xb, 0x90,0x7e,0xb3,0x28,0x84,0xbc,0xb9,0x38,0xdb,0x6c,0x99,0x80,0x1d,0x7e, +0x70,0x2, 0xac,0x79,0x9, 0xa3,0x27,0x36,0x9, 0xd3,0x27,0x37,0x12,0x9b,0x90,0xbe, +0x34,0xff,0x6a,0x58,0x5, 0x7e,0xe0,0x1, 0x80,0xa, 0xb, 0x90,0x7e,0xb3,0x28,0x85, +0xbc,0xb9,0x38,0xdb,0x6c,0x99,0x80,0x17,0xa, 0xe9,0xa, 0x5f,0x2d,0x5e,0x3e,0x54, +0x49,0x55,0x5, 0x7a,0xbd,0x5f,0x8, 0x5, 0x7e,0xe0,0x1, 0x80,0x6, 0xb, 0x90,0xbc, +0x89,0x38,0xe5,0x4c,0xee,0x78,0x25,0x7e,0xb3,0x39,0xde,0x4, 0x7a,0xb3,0x39,0xde, +0x7e,0x73,0x39,0xde,0xbe,0x70,0x5, 0x28,0x22,0x74,0x5, 0x7a,0xb3,0x39,0xde,0x7e, +0xb3,0x28,0xa8,0x60,0x2, 0xd2,0x19,0x12,0x99,0xc0,0x80,0xf, 0x7e,0x73,0x39,0xde, +0xbe,0x70,0x0, 0x28,0x6, 0x1e,0x70,0x7a,0x73,0x39,0xde,0xda,0x79,0xda,0xd8,0x22, +0x7c,0xba,0x7c,0x7d,0x2, 0x2c,0xb9,0xca,0xf8,0x7c,0xfb,0x7e,0x34,0x0, 0x38,0xca, +0x39,0xac,0x7f,0x2e,0x34,0x0, 0x63,0x6d,0x22,0x7e,0x8, 0x34,0x0, 0x12,0x17,0x2e, +0x1b,0xfd,0x7e,0x34,0x0, 0x8c,0xca,0x39,0xac,0x7f,0x2e,0x34,0x1, 0x43,0x6d,0x22, +0x7e,0x8, 0x3, 0x73,0x12,0x17,0x2e,0x1b,0xfd,0xda,0xf8,0x22,0x6c,0xaa,0x12,0x9c, +0x10,0x29,0x81,0x0, 0x5, 0x7c,0x98,0x5e,0x90,0x1, 0x3e,0x90,0x7f,0x1, 0x2e,0x14, +0x0, 0x5, 0x7c,0xb8,0x54,0xfd,0x4c,0xb9,0x7a,0xb, 0xb0,0x29,0xb1,0x0, 0x5, 0x30, +0xe0,0x16,0x30,0xe2,0x13,0xc4,0x23,0x54,0x1f,0xb4,0x1, 0xc, 0x7f,0x1, 0xb, 0x16, +0x7e,0xb, 0xb0,0x1e,0xb0,0x7a,0xb, 0xb0,0xb, 0xa0,0xbe,0xa0,0x1e,0x40,0xbf,0x22, +0x7e,0x70,0x6, 0xac,0x7a,0x2e,0x34,0x32,0x4d,0x6d,0x22,0x22,0x6c,0xaa,0x12,0x9c, +0x10,0x12,0x9c,0x3e,0x54,0xfe,0x12,0x9c,0x3b,0x54,0x7, 0x12,0x9c,0x3b,0x54,0xfb, +0x7a,0xb, 0xb0,0xb, 0xa0,0xbe,0xa0,0x1e,0x40,0xe4,0x22,0x7a,0xb, 0xb0,0x7f,0x1, +0x2e,0x14,0x0, 0x5, 0x7e,0xb, 0xb0,0x22,0xca,0x79,0xc2,0x0, 0x7e,0xf0,0x3, 0x12, +0x86,0xfc,0x7e,0xe3,0x2a,0x21,0x7e,0x34,0x1f,0x34,0x7a,0x37,0x32,0xe, 0x12,0x9f, +0xf6,0x38,0x2, 0xa1,0x24,0x12,0x9d,0x2d,0x92,0xd, 0x12,0x9c,0x1c,0x7c,0xbf,0x12, +0x28,0xd6,0x4c,0xee,0x68,0xe, 0x7e,0xa3,0x31,0xeb,0x4c,0xaa,0x78,0xa, 0x7e,0xb3, +0x31,0xec,0x70,0x4, 0xd2,0x0, 0x80,0x25,0xbe,0xe0,0x1, 0x28,0xb, 0xe5,0x1c,0xbe, +0xb0,0x8, 0x28,0x4, 0xd2,0x0, 0x80,0x15,0xd2,0x0, 0x7e,0xb3,0x28,0x84,0xbc,0xbe, +0x78,0xb, 0x20,0xd, 0x8, 0x4c,0xaa,0x78,0x4, 0x6c,0xff,0xc2,0x0, 0x20,0x0, 0x5, +0x7c,0xbf,0x12,0x28,0xd6,0x7e,0x8, 0x31,0xf0,0x12,0x2e,0xc, 0x7a,0xb3,0x31,0xef, +0xbe,0xb3,0x28,0x84,0x50,0x3d,0x7e,0x33,0x31,0xef,0x80,0x29,0x7e,0x70,0x2, 0xac, +0x73,0x9, 0x23,0x32,0x10,0x9, 0x13,0x32,0x11,0x2e,0x37,0x32,0xe, 0xb, 0x38,0x50, +0x7e,0x93,0x2a,0x8d,0xac,0x92,0xa, 0x31,0x2d,0x43,0x12,0x5f,0xc0,0x7c,0xb3,0x7e, +0x70,0x1, 0x12,0x54,0xcd,0x7c,0x3, 0x1b,0x30,0xa5,0xb8,0x0, 0xcf,0x74,0x1, 0x7a, +0xb3,0x31,0xed,0x7e,0xa3,0x31,0xef,0x7a,0xa3,0x28,0x84,0x74,0x2, 0xa4,0xca,0x59, +0x7e,0x18,0x32,0x10,0x7e,0x8, 0x26,0xfa,0x12,0x17,0x2e,0x1b,0xfd,0x12,0xa0,0xb, +0xf5,0x1c,0x80,0x6, 0x75,0x1c,0x64,0x12,0xa2,0x65,0xda,0x79,0x22,0xca,0x3b,0x7e, +0xe3,0x28,0x84,0x6c,0xdd,0x6c,0xff,0x74,0x6, 0xac,0xbd,0x12,0x9f,0xfe,0x30,0xe0, +0x37,0x6c,0xcc,0x80,0x27,0x12,0xaf,0xc5,0x7a,0xb3,0x1f,0x70,0x9, 0xa3,0x26,0xfb, +0x7a,0xa3,0x1f,0x71,0x7f,0x7, 0x12,0x9d,0x83,0x50,0xf, 0x7f,0x7, 0x7e,0xb3,0x1f, +0x71,0x6c,0x77,0x12,0x9d,0x86,0x50,0x2, 0xb, 0xf0,0xb, 0xc0,0xbc,0xec,0x38,0xd5, +0xbe,0xf0,0x2, 0x40,0x3, 0xd3,0x80,0x8, 0xb, 0xd0,0xbe,0xd0,0x1e,0x40,0xb6,0xc3, +0xda,0x3b,0x22,0x7e,0x70,0x1, 0x7c,0x87,0x7c,0x9b,0x29,0xa0,0x0, 0x3, 0x29,0x60, +0x0, 0x1, 0x7e,0x70,0x1, 0xbe,0x80,0x1, 0x78,0x7, 0x29,0xa0,0x0, 0x2, 0x7e,0xb, +0x60,0xa, 0x7, 0xa, 0x29,0x2d,0x2, 0xa, 0x16,0xbd,0x1, 0x48,0xc, 0xa, 0x17,0xa, +0x3a,0x2d,0x31,0xbd,0x23,0x18,0x2, 0xd3,0x22,0xc3,0x22,0xca,0x3b,0x7c,0xf5,0x7c, +0xe6,0x7c,0xd7,0x7c,0xcb,0x75,0x54,0x0, 0x7e,0xa1,0x54,0x74,0x6, 0xa4,0x12,0x9f, +0xfe,0x30,0xe1,0x2e,0x7f,0x7, 0x7c,0xbc,0x12,0x9e,0xf, 0x50,0x25,0x7f,0x7, 0x7c, +0xbe,0x12,0x9d,0x83,0x50,0x1c,0x7f,0x7, 0x7c,0xbd,0x6c,0x77,0x12,0x9d,0x86,0x50, +0x11,0x7f,0x7, 0x7c,0xbf,0x6c,0x77,0x12,0x9d,0x86,0x50,0x6, 0x29,0xb7,0x0, 0x4, +0x80,0xa, 0x5, 0x54,0xe5,0x54,0xbe,0xb0,0x1e,0x40,0xbd,0xe4,0xda,0x3b,0x22,0x7e, +0x70,0x1, 0x2, 0x9d,0x86,0xca,0x79,0x7f,0x70,0x7e,0xb4,0xff,0xff,0x6c,0xee,0xc2, +0x1, 0xc2,0x2, 0x29,0x67,0x0, 0x2, 0x7e,0x7b,0x70,0xbc,0x76,0x78,0xe, 0x29,0x67, +0x0, 0x3, 0x29,0x77,0x0, 0x1, 0xbc,0x76,0x78,0x2, 0xd2,0x2, 0x6c,0xff,0x12,0x9f, +0xe9,0x6d,0xaa,0x29,0xb6,0x0, 0x5, 0x20,0xe1,0x2, 0xc1,0xcf,0x7f,0x6, 0x7e,0x7b, +0xb0,0x12,0x9e,0xf, 0x50,0x2d,0x7f,0x6, 0x29,0xb7,0x0, 0x2, 0x12,0x9e,0xf, 0x50, +0x22,0x7f,0x6, 0x29,0xb7,0x0, 0x1, 0x6c,0x77,0x12,0x9d,0x86,0x50,0x15,0x7f,0x6, +0x29,0xb7,0x0, 0x3, 0x6c,0x77,0x12,0x9d,0x86,0x50,0x8, 0x7c,0xef,0xd2,0x1, 0x6d, +0xbb,0x80,0x55,0x7e,0x6b,0x70,0xa, 0x27,0x7e,0x7b,0x70,0x12,0x1e,0x8f,0x2d,0xa3, +0x29,0x76,0x0, 0x2, 0xa, 0x27,0x29,0x77,0x0, 0x2, 0x12,0x1e,0x8f,0x2d,0xa3,0x29, +0x76,0x0, 0x1, 0xa, 0x27,0x29,0x77,0x0, 0x1, 0x12,0x1e,0x8f,0x2d,0xa3,0x29,0x76, +0x0, 0x3, 0xa, 0x27,0x29,0x77,0x0, 0x3, 0x12,0x1e,0x8f,0x2d,0xa3,0xbd,0xab,0x50, +0x4, 0x7d,0xba,0x7c,0xef,0xbe,0xa4,0x0, 0x4, 0x38,0x4, 0xd2,0x1, 0x80,0x9, 0xb, +0xf0,0xbe,0xf0,0x1e,0x50,0x2, 0xc1,0x3e,0x20,0x1, 0xb, 0x20,0x2, 0x8, 0xbe,0xb4, +0x0, 0x8, 0x50,0x2, 0xd2,0x1, 0x20,0x1, 0x2, 0xe1,0x90,0x74,0x6, 0xac,0xbe,0x12, +0x9f,0xed,0x29,0x76,0x0, 0x5, 0x7c,0xb7,0xc4,0x23,0x54,0x1f,0xbe,0xb0,0x1f,0x50, +0x16,0x7f,0x6, 0x2e,0x14,0x0, 0x5, 0x7c,0x67,0x2e,0x60,0x8, 0x5e,0x60,0xf8,0x5e, +0x70,0x7, 0x4c,0x76,0x7a,0xb, 0x70,0x20,0x2, 0x11,0x29,0xb6,0x0, 0x4, 0xbe,0xb0, +0xfa,0x50,0x8, 0x7f,0x16,0xb, 0x36,0x4, 0x7a,0x1b,0xb0,0x29,0x67,0x0, 0x3, 0x29, +0x76,0x0, 0x3, 0xbc,0x76,0x28,0x6, 0x29,0x76,0x0, 0x3, 0x80,0x4, 0x29,0x77,0x0, +0x3, 0x39,0x76,0x0, 0x3, 0x29,0x67,0x0, 0x2, 0x29,0x76,0x0, 0x2, 0xbc,0x76,0x28, +0x6, 0x29,0x76,0x0, 0x2, 0x80,0x4, 0x29,0x77,0x0, 0x2, 0x39,0x76,0x0, 0x2, 0x29, +0x67,0x0, 0x1, 0x29,0x76,0x0, 0x1, 0xbc,0x76,0x50,0x6, 0x29,0x76,0x0, 0x1, 0x80, +0x4, 0x29,0x77,0x0, 0x1, 0x39,0x76,0x0, 0x1, 0x7e,0x7b,0x60,0x7e,0x6b,0x70,0xbc, +0x76,0x50,0x5, 0x7e,0x6b,0x70,0x80,0x3, 0x7e,0x7b,0x70,0x7a,0x6b,0x70,0x80,0x31, +0x6c,0xff,0x74,0x6, 0xac,0xbf,0x9, 0xb5,0x32,0x52,0x30,0xe1,0x7, 0xb, 0xf0,0xbe, +0xf0,0x1e,0x40,0xee,0xbe,0xf0,0x1e,0x50,0x33,0x74,0x1, 0x39,0xb7,0x0, 0x4, 0x12, +0x9f,0xe9,0x7e,0x34,0x0, 0x6, 0xca,0x39,0x7f,0x17,0x7f,0x6, 0x12,0x17,0x2e,0x1b, +0xfd,0x12,0x9f,0xdf,0x44,0x1, 0x7a,0x1b,0xb0,0x12,0x9f,0xdf,0x44,0x2, 0x7a,0x1b, +0xb0,0x30,0x2, 0x8, 0x12,0x9f,0xdf,0x44,0x4, 0x7a,0x1b,0xb0,0xda,0x79,0x22,0x7f, +0x16,0x2e,0x34,0x0, 0x5, 0x7e,0x1b,0xb0,0x22,0x74,0x6, 0xac,0xbf,0x7d,0xd5,0x2e, +0xd4,0x32,0x4d,0x6d,0xcc,0x22,0x7e,0x73,0x28,0x84,0xbe,0x70,0x1, 0x22,0x7d,0xf5, +0x2e,0xf4,0x32,0x4d,0x6d,0xee,0x29,0xb7,0x0, 0x5, 0x22,0x7e,0x30,0x64,0x7e,0x20, +0x64,0x6c,0x11,0x80,0x4a,0xa, 0x31,0xb, 0x34,0x7c,0x7, 0x80,0x38,0x7e,0x70,0x2, +0xac,0x70,0x9, 0xb3,0x26,0xfa,0x12,0xa0,0x80,0x9, 0xb3,0x26,0xfa,0x12,0x2f,0x7f, +0x7c,0x97,0x7e,0x70,0x2, 0xac,0x70,0x9, 0xb3,0x26,0xfb,0x12,0xa0,0x80,0x9, 0xb3, +0x26,0xfb,0x12,0x2f,0x7f,0x7c,0x87,0xbc,0x39,0x28,0x2, 0x7c,0x39,0xbc,0x28,0x28, +0x2, 0x7c,0x28,0xb, 0x0, 0x7e,0xb3,0x28,0x84,0xbc,0xb0,0x38,0xc0,0xb, 0x10,0x7e, +0xb3,0x28,0x84,0xbc,0xb1,0x38,0xae,0xa5,0xbb,0x64,0x2, 0x6c,0x33,0xa5,0xba,0x64, +0x2, 0x6c,0x22,0xbc,0x23,0x28,0x4, 0x7c,0xa2,0x80,0x2, 0x7c,0xa3,0x7c,0xba,0x22, +0xa, 0x2b,0x7e,0x70,0x2, 0xac,0x71,0x22,0x7e,0x37,0x28,0x8a,0xbe,0x34,0x3, 0xe8, +0x8, 0xa, 0x12,0xa1,0x35,0xbe,0xb0,0x8, 0x48,0x2, 0xd3,0x22,0xc3,0x22,0xca,0xf8, +0x7c,0xfb,0x7f,0x61,0x7f,0x50,0x7e,0x34,0x19,0x20,0x7e,0x24,0x0, 0xff,0x7e,0x14, +0x1f,0x70,0x74,0x2a,0x12,0x16,0x1d,0x7e,0x48,0x1f,0x70,0x12,0xa0,0x88,0x92,0xc, +0x7c,0xbf,0x7e,0x71,0x54,0x12,0x2c,0xb9,0x7d,0x43,0xe5,0x55,0x7e,0x71,0x56,0x12, +0x2c,0xb9,0x2d,0x34,0xe, 0x34,0x7f,0x4, 0x7e,0x50,0x7, 0xb, 0xa, 0x50,0xbd,0x53, +0x58,0x10,0x69,0x30,0x0, 0x2, 0x1b,0x5a,0x30,0x69,0x30,0x0, 0x4, 0x1b,0x6a,0x30, +0x80,0x8, 0x2e,0x14,0x0, 0x6, 0x1b,0x50,0x78,0xe1,0x12,0xa1,0x2d,0x28,0x2b,0xb, +0x5a,0x20,0x7e,0x34,0x0, 0xd, 0xad,0x32,0x7e,0x24,0x0, 0x10,0x12,0x15,0x29,0x1b, +0x5a,0x30,0xb, 0x6a,0x30,0x1a,0x26,0x1a,0x24,0x7e,0x14,0x0, 0xd, 0x12,0x15,0x6c, +0x7e,0x8, 0x0, 0x10,0x12,0x15,0xc8,0x1b,0x6a,0x30,0xda,0xf8,0x22,0x7e,0x73,0x31, +0xee,0xbe,0x70,0x5, 0x22,0xca,0xd8,0xca,0x79,0x6c,0xff,0x6c,0xee,0x80,0xf, 0x7c, +0xbe,0x12,0x7e,0x27,0x7c,0xdb,0xbc,0xfd,0x58,0x2, 0x7c,0xfd,0xb, 0xe0,0x12,0x7d, +0xfd,0x38,0xec,0x7c,0xbf,0xda,0x79,0xda,0xd8,0x22,0xca,0x3b,0x7c,0x45,0x7c,0x6, +0x7c,0x57,0x7c,0x1b,0x7e,0x34,0x4, 0xfc,0x7e,0xb3,0x26,0x83,0x7e,0xf3,0x2a,0x8d, +0x7c,0x31,0x7c,0xe0,0x7c,0x25,0x7c,0xa4,0xbc,0x1, 0x50,0x4, 0x7c,0x30,0x7c,0xe1, +0xbc,0x45,0x50,0x4, 0x7c,0x24,0x7c,0xa5,0xbe,0xb0,0x1, 0x50,0x2, 0x41,0x1f,0x7e, +0x90,0x2, 0xac,0x9f,0x7e,0x50,0x2, 0xac,0x53,0x2d,0x24,0x2d,0x23,0xb, 0x28,0x20, +0x7e,0x10,0x2, 0xac,0x1e,0x2d,0x4, 0x2d,0x3, 0xb, 0x8, 0x40,0xa, 0x3, 0xb, 0x4, +0x7c,0x31,0x80,0x28,0x7e,0xd0,0x2, 0xac,0xdf,0x7e,0x10,0x2, 0xac,0x13,0x2d,0x6, +0x12,0xa2,0x23,0x58,0x15,0xad,0xf4,0xbd,0xdf,0x58,0xf, 0xbe,0x24,0x0, 0x0, 0x8, +0x9, 0xbe,0x44,0x0, 0x0, 0x8, 0x3, 0xc3,0x80,0x46,0xb, 0x30,0xbc,0xe3,0x38,0xd4, +0x7e,0x50,0x2, 0xac,0x52,0x2d,0x23,0xb, 0x28,0x20,0x7e,0x90,0x2, 0xac,0x9a,0x2d, +0x43,0xb, 0x48,0x40,0xa, 0x12,0xb, 0x14,0x80,0x21,0x7e,0x10,0x2, 0xac,0x13,0x12, +0xa2,0x23,0x58,0x15,0xad,0xf4,0xbd,0xdf,0x58,0xf, 0xbe,0x24,0x0, 0x0, 0x8, 0x9, +0xbe,0x44,0x0, 0x0, 0x8, 0x3, 0xc3,0x80,0x7, 0xb, 0x30,0xbc,0xa3,0x38,0xdb,0xd3, +0xda,0x3b,0x22,0x2d,0x3, 0xb, 0x8, 0x0, 0x7e,0xf4,0x0, 0x9, 0x7d,0xb2,0xad,0xbf, +0x7e,0xd4,0x0, 0xa, 0xad,0xd0,0xbd,0xdb,0x22,0x12,0xa1,0x5a,0x92,0x4, 0x30,0x4, +0xc, 0x7e,0xb3,0x32,0x4c,0xbe,0xb0,0xfa,0x50,0x11,0x4, 0x80,0xa, 0x7e,0xb3,0x32, +0x4c,0xbe,0xb0,0x0, 0x28,0x5, 0x14,0x7a,0xb3,0x32,0x4c,0x7e,0xb3,0x32,0x4c,0x70, +0x2, 0xc3,0x22,0xd3,0x22,0x7e,0x8, 0x32,0x4d,0x7e,0x34,0x0, 0xb4,0xe4,0x2, 0x17, +0x53,0xca,0x79,0x7c,0xa7,0x7c,0x8b,0x7e,0xb3,0x2a,0x8e,0x7a,0xb3,0x1f,0x9a,0x7e, +0xb3,0x2a,0x8f,0x7a,0xb3,0x1f,0x9b,0x7e,0x70,0x2, 0xac,0x78,0x9, 0x93,0x26,0xfa, +0x9, 0x83,0x26,0xfb,0x9f,0x77,0x1a,0x3a,0x1a,0x79,0x9d,0x73,0x61,0x29,0x7a,0xf1, +0x58,0xbe,0xf0,0x0, 0x58,0xe, 0x1a,0x3f,0x1a,0x29,0x9d,0x23,0x1a,0x39,0x2d,0x32, +0x7c,0xb7,0xf5,0x58,0x7e,0xb3,0x1f,0x9a,0xbc,0xbf,0x18,0xe, 0x1a,0x39,0x1a,0x2f, +0x9d,0x23,0x1a,0x39,0x9d,0x32,0x7c,0xb7,0xf5,0x58,0x1a,0x2a,0x1a,0x38,0x9d,0x32, +0x7c,0xb7,0xf5,0x57,0x80,0x43,0x85,0x57,0x59,0xe5,0x57,0xbe,0xb0,0x0, 0x58,0x10, +0xe5,0x57,0x1a,0x3b,0x1a,0x28,0x9d,0x23,0x1a,0x38,0x2d,0x32,0x7c,0xb7,0xf5,0x59, +0x7e,0xb3,0x1f,0x9b,0xbe,0xb1,0x57,0x18,0x10,0x1a,0x38,0xe5,0x57,0x1a,0x2b,0x9d, +0x23,0x1a,0x38,0x9d,0x32,0x7c,0xb7,0xf5,0x59,0xe5,0x58,0x7e,0x71,0x59,0x12,0x2c, +0xb9,0x1a,0x26,0x1a,0x24,0x2f,0x71,0x5, 0x57,0x1a,0x3a,0x1a,0x28,0x2d,0x23,0xe5, +0x57,0x1a,0x3b,0xbd,0x32,0x8, 0xaf,0xb, 0xf0,0x1a,0x3a,0x1a,0x29,0x2d,0x23,0x1a, +0x3f,0xbd,0x32,0x18,0x2, 0x41,0x9e,0x7f,0x17,0xda,0x79,0x22,0x7c,0x4b,0x74,0x2, +0xac,0xb4,0x9, 0x55,0x26,0xfa,0x9, 0x65,0x26,0xfb,0x7e,0x73,0x28,0x8c,0xbc,0x75, +0x78,0xa, 0x7e,0x73,0x28,0x8d,0xbc,0x76,0x78,0x2, 0xd3,0x22,0xc3,0x22,0x90,0x60, +0x93,0xe4,0x93,0xa, 0xb, 0x7e,0x73,0x2a,0x90,0xa, 0x17,0x2d,0x10,0x7e,0xa3,0x2a, +0x8d,0xa, 0x3a,0xad,0x13,0x7d,0x21,0x6c,0x33,0x80,0x20,0xa, 0x3, 0x2d,0x2, 0x3e, +0x4, 0x7e,0x7f,0x39,0xac,0x2d,0xf0,0xb, 0x7a,0x0, 0x7e,0x90,0x2, 0xac,0x93,0x49, +0xf4,0x13,0x8e,0x9d,0xf, 0x59,0x4, 0x25,0xb6,0xb, 0x30,0xbc,0xa3,0x38,0xdc,0x7a, +0x35,0x34,0x7e,0xf, 0x38,0x58,0x7e,0x18,0x25,0xb6,0x2, 0x65,0xaa,0x6c,0xaa,0x80, +0x1c,0x7e,0x50,0x2, 0xac,0x5a,0x49,0x12,0x13,0xc6,0x49,0x32,0x13,0x8e,0xbd,0x31, +0x28,0x9, 0x2e,0x24,0x13,0x8e,0x9d,0x31,0x1b,0x28,0x30,0xb, 0xa0,0x7e,0xb3,0x2a, +0x8d,0xbc,0xba,0x38,0xdc,0x22,0xca,0x78,0xa9,0x31,0xe5,0x6, 0xa9,0xd5,0xea,0xa9, +0xc5,0xea,0xa9,0x30,0xe5,0x19,0xa9,0xd0,0x9e,0xa9,0xd4,0x9e,0x5, 0x61,0x7e,0x73, +0x39,0xd8,0xbe,0x71,0x61,0x38,0x2, 0xd2,0x1b,0xa9,0xd0,0x9e,0xa9,0xd7,0x9e,0xa9, +0x34,0xe5,0x5, 0xa9,0xc4,0xcd,0xc2,0x95,0xa9,0x32,0xe5,0x3, 0xa9,0xc2,0xcd,0xa9, +0x33,0xe5,0x3, 0xa9,0xc3,0xcd,0xa9,0x37,0xe5,0x3, 0xa9,0xc7,0xcd,0xa9,0x36,0xe5, +0x3, 0xa9,0xc6,0xcd,0xda,0x78,0x32,0xc2,0x9a,0xa9,0xd4,0xa6,0xc2,0x88,0xd2,0xa8, +0x22,0x7e,0x14,0xd7,0xe8,0x7e,0x4, 0x0, 0xff,0x7e,0x34,0x47,0x52,0x7e,0x24,0x55, +0x50,0x79,0x30,0x0, 0x2, 0x1b,0xa, 0x20,0x7e,0x34,0x45,0x20,0x7e,0x24,0x41,0x44, +0x79,0x30,0x0, 0x6, 0x79,0x20,0x0, 0x4, 0x7e,0x34,0x99,0x33,0x7e,0x24,0x66,0xcc, +0x79,0x30,0x0, 0xa, 0x79,0x20,0x0, 0x8, 0x7e,0x34,0x41,0x47,0x7e,0x24,0x46,0x4c, +0x79,0x30,0x0, 0xe, 0x79,0x20,0x0, 0xc, 0x22,0xa9,0xc4,0xca,0xa9,0xc5,0xca,0xbe, +0xb0,0x8, 0x50,0x3, 0x12,0xa4,0xaa,0xa9,0xd0,0xce,0xa9,0xc0,0xc9,0xd2,0x2, 0x12, +0x3b,0xe9,0xa9,0xc2,0xea,0x75,0xc1,0x6, 0x75,0xc2,0xc, 0xd2,0x0, 0x12,0xa4,0xb3, +0xa9,0xc1,0xc4,0xa9,0xd2,0xc4,0xa9,0xc2,0xe1,0x22,0xa, 0x5b,0x2e,0x54,0x0, 0x8, +0xf5,0xcc,0x22,0xa2,0x0, 0xa9,0x97,0xc1,0xa2,0x0, 0xa9,0x97,0xc2,0x22,0xa9,0xd0, +0xce,0xa2,0x0, 0xa9,0x95,0xc9,0x22,0xa9,0xd5,0xcb,0x74,0x10,0x12,0x7, 0xfb,0x7c, +0x7b,0x12,0x3a,0xb5,0x30,0xe7,0x3, 0x7e,0x70,0x2, 0xd2,0xcd,0x7e,0x24,0x0, 0xef, +0x7e,0xf, 0x39,0x93,0x79,0x20,0x0, 0x84,0x7e,0x24,0x20,0x5f,0x7e,0xf, 0x39,0x93, +0x79,0x20,0x0, 0x82,0x7e,0x24,0x41,0x0, 0x7e,0xf, 0x39,0x93,0x79,0x20,0x0, 0x90, +0x7c,0x67,0x6c,0x77,0x2e,0x34,0x0, 0xc1,0x7e,0xf, 0x39,0x93,0x79,0x30,0x0, 0x86, +0x7e,0x34,0x29,0x90,0x7e,0xf, 0x39,0x93,0x79,0x30,0x0, 0x8a,0x7e,0x34,0x6a,0xd1, +0x7e,0xf, 0x39,0x93,0x79,0x30,0x0, 0x8c,0x7e,0x34,0x3, 0x61,0x7e,0xf, 0x39,0x93, +0x79,0x30,0x0, 0x8e,0x22,0xa9,0xc6,0xeb,0xa9,0xd6,0xac,0xa9,0xd6,0xec,0xd2,0x86, +0xa9,0xc2,0xeb,0xa9,0xd2,0xac,0xa9,0xd2,0xec,0xd2,0x82,0x22,0x75,0x9a,0x2f,0xa9, +0xd1,0x99,0xd2,0x9c,0xa9,0xd6,0xdf,0x22,0xc2,0x8e,0x43,0x89,0x20,0x75,0x8d,0x1, +0x75,0x8b,0x0, 0xd2,0x8e,0xd2,0xab,0x22,0x75,0xb7,0x0, 0x75,0xb8,0x0, 0x75,0xf7, +0x0, 0x75,0xf8,0x0, 0xa9,0xd0,0xb7,0xd2,0xb8,0xa9,0xd5,0xb7,0xd2,0xbd,0xa9,0xd0, +0xf7,0xd2,0xf8,0xa9,0xc1,0xb7,0xc2,0xb9,0xa9,0xc3,0xb7,0xc2,0xbb,0xa9,0xc6,0xb7, +0xc2,0xbe,0x22,0xa9,0xd0,0x99,0xa9,0xc6,0xdf,0x22,0x7e,0x37,0x39,0xd6,0xb, 0x34, +0x7a,0x37,0x39,0xd6,0xbe,0x34,0xff,0x0, 0x40,0x8, 0x7e,0x34,0xff,0x0, 0x7a,0x37, +0x39,0xd6,0x22,0xd2,0xc9,0x75,0xf2,0x30,0x75,0xf3,0x80,0x75,0xf4,0xc, 0x75,0xf5, +0x1, 0x6c,0xaa,0xe5,0xf5,0x54,0x80,0xb4,0x80,0xf9,0xe5,0xf6,0x12,0x65,0xa0,0xb, +0xa0,0xbe,0xa0,0xd, 0x40,0xed,0xc2,0xc9,0x22,0x6d,0x22,0x80,0x13,0x75,0xb5,0x0, +0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0xe5,0xb5,0x7a,0xb, 0xb0,0xb, 0x14,0xb, 0x24, +0xbd,0x32,0x38,0xe9,0x22,0x7c,0xa6,0x7c,0x37,0x7c,0x2b,0xe4,0x6c,0x11,0x80,0x46, +0xbc,0xa1,0x68,0x40,0x1a,0x41,0x3e,0x44,0x9, 0x4, 0x26,0xfb,0xa, 0x20,0xa, 0x33, +0x9d,0x32,0x12,0x17,0x85,0x7c,0x7, 0x1a,0x41,0x3e,0x44,0x9, 0x74,0x26,0xfa,0xa, +0x27,0xa, 0x32,0x9d,0x32,0x12,0x17,0x85,0x7c,0x97,0xbe,0x90,0x1, 0x18,0x8, 0xbe, +0x0, 0x1, 0x18,0x3, 0x74,0x1, 0x22,0xbe,0x90,0x2, 0x18,0x8, 0xbe,0x0, 0x2, 0x18, +0x3, 0x74,0x2, 0x22,0xb, 0x10,0x7e,0x83,0x28,0x84,0xbc,0x81,0x18,0xb2,0x22,0x7f, +0x71,0x69,0x37,0x0, 0x2, 0x7d,0x53,0x12,0xa6,0xa9,0xb, 0x7a,0x20,0x2d,0x25,0x1b, +0xa, 0x20,0x69,0x27,0x0, 0x4, 0x7d,0x52,0xc4,0x54,0xf0,0x7c,0xab,0xe4,0x1e,0x34, +0x1e,0x34,0x2d,0x35,0x79,0x30,0x0, 0x2, 0x69,0x37,0x0, 0x6, 0x7d,0x53,0x7c,0xab, +0xe4,0x3e,0x54,0x3e,0x54,0x1e,0x24,0x1e,0x24,0x1e,0x24,0x1e,0x24,0x2d,0x25,0x79, +0x20,0x0, 0x4, 0x69,0x27,0x0, 0x8, 0x7c,0x45,0x6c,0x55,0x12,0x51,0x7f,0x1e,0x34, +0x1e,0x34,0x2d,0x32,0x79,0x30,0x0, 0x6, 0x22,0x3, 0x3, 0x54,0xc0,0x7c,0xab,0xe4, +0x22,0xca,0x79,0x7c,0xfb,0x7e,0x8, 0x1f,0x34,0x12,0xa7,0x27,0x7e,0xa3,0x2a,0x92, +0x7e,0x63,0x2a,0x93,0x6c,0xee,0x80,0x1e,0xa, 0x2e,0x9, 0x72,0x2a,0xfb,0xbe,0x70, +0x1c,0x50,0x11,0xa, 0x27,0x12,0x57,0xdb,0x7c,0x7b,0x7e,0xb3,0x2b,0x1a,0xa, 0x27, +0x19,0xb2,0x1f,0x34,0xb, 0xe0,0xbc,0x6e,0x38,0xde,0x6c,0xee,0x80,0x17,0xa, 0x3e, +0x9, 0x73,0x2a,0xd8,0xbe,0x70,0x23,0x50,0xa, 0x7e,0x63,0x2b,0x1a,0xa, 0x27,0x19, +0x62,0x1f,0x50,0xb, 0xe0,0xbc,0xae,0x38,0xe5,0x6c,0xee,0x7e,0x30,0xe, 0xac,0x3e, +0x2e,0x14,0x1f,0x34,0x6d,0x0, 0x7c,0xbf,0x7c,0x7e,0x12,0x11,0xf8,0xb, 0xe0,0xbe, +0xe0,0x5, 0x40,0xe7,0xda,0x79,0x22,0x7e,0x34,0x0, 0x46,0x74,0x3f,0x2, 0x17,0x53, +0x7c,0xab,0x9f,0x11,0x30,0x0, 0x22,0x6c,0x99,0x80,0x1a,0xa, 0xf9,0x2d,0xf1,0x7d, +0xe0,0x7e,0x7b,0xb0,0x7e,0x78,0x0, 0x1, 0x60,0x5, 0x2f,0x77,0x14,0x78,0xfb,0x4d, +0x3f,0x4d,0x2e,0xb, 0x90,0xbc,0xa9,0x38,0xe2,0x22,0xca,0xf8,0x90,0x60,0x51,0xe4, +0x93,0x7c,0xfb,0x7e,0x8, 0x1f,0x34,0x12,0xa7,0xe6,0x7e,0x8, 0x1f,0x3c,0x12,0xa7, +0xee,0xd2,0x0, 0x7e,0x8, 0x2a,0xfb,0x7c,0xbf,0x12,0xa7,0x30,0x7e,0x8, 0x1f,0x34, +0x7a,0xf, 0x1f,0x58,0x7f,0x1, 0x7a,0x17,0x1f,0x5c,0x7d,0x32,0x7a,0x37,0x1f,0x5e, +0x7e,0x18,0x1f,0x3c,0x7a,0x1f,0x1f,0x64,0x6c,0x77,0x80,0xe, 0x12,0xa9,0x45,0x50, +0x7, 0x12,0xa9,0x3c,0x19,0x51,0x1f,0x3c,0xb, 0x70,0xbc,0xf7,0x38,0xee,0x12,0xa7, +0xd3,0xe4,0x12,0xa7,0xdb,0xe4,0x12,0xc, 0x9b,0x6d,0x33,0x7a,0x37,0x1f,0x5c,0x7a, +0x37,0x1f,0x5e,0x12,0xa7,0xd3,0x74,0x1, 0x12,0xa7,0xdb,0x74,0x1, 0x12,0xc, 0x9b, +0xda,0xf8,0x22,0xa9,0xc6,0xea,0x7e,0x8, 0x1f,0x58,0x22,0x12,0xc, 0x9b,0xa9,0xd6, +0xea,0x7e,0x8, 0x1f,0x58,0x22,0x7e,0x34,0x0, 0x8, 0xe4,0x2, 0x17,0x53,0x7e,0x34, +0x0, 0x1c,0x74,0x3f,0x2, 0x17,0x53,0x7c,0x57,0x7c,0xab,0x6c,0x77,0x80,0x4b,0xa, +0x47,0x7e,0x7d,0x24,0x2d,0xf4,0x7e,0x7b,0x60,0xa, 0x46,0x2e,0x44,0x16,0xe8,0x12, +0xa8,0xb6,0x7c,0x6b,0xbe,0x60,0xd, 0x38,0x12,0x7e,0xd4,0x0, 0x1, 0x7c,0xb6,0x60, +0x5, 0x3e,0xd4,0x14,0x78,0xfb,0x7e,0x7d,0x28,0x80,0x15,0x9e,0x60,0xe, 0x7e,0xd4, +0x0, 0x1, 0x7c,0xb6,0x60,0x5, 0x3e,0xd4,0x14,0x78,0xfb,0x7e,0x7d,0x28,0xb, 0xf5, +0xb, 0x7a,0x40,0x4d,0x4d,0x1b,0x7a,0x40,0xb, 0x70,0xbc,0x57,0x38,0xb1,0x6c,0x77, +0x80,0x58,0xa, 0x27,0x7f,0x70,0x2d,0xf2,0x7e,0x7b,0x60,0xbe,0x60,0xd, 0x38,0x11, +0x12,0xa8,0xaf,0x60,0x5, 0x3e,0x44,0x14,0x78,0xfb,0x7e,0x7d,0x28,0xb, 0xf6,0x80, +0x2f,0xbe,0x60,0x1b,0x38,0x16,0x9e,0x60,0xe, 0x12,0xa8,0xaf,0x60,0x5, 0x3e,0x44, +0x14,0x78,0xfb,0x7e,0x7d,0x28,0x2e,0xf4,0x0, 0x6, 0x80,0x14,0x9e,0x60,0x1c,0x12, +0xa8,0xaf,0x60,0x5, 0x3e,0x44,0x14,0x78,0xfb,0x7e,0x7d,0x28,0x2e,0xf4,0x0, 0x8, +0xb, 0x7a,0x20,0x4d,0x24,0x1b,0x7a,0x20,0xb, 0x70,0xbc,0xa7,0x38,0xa4,0x22,0x7e, +0x44,0x0, 0x1, 0x7c,0xb6,0x22,0x7a,0x91,0x82,0x7a,0x81,0x83,0xe4,0x93,0x22,0x7c, +0x7b,0xa5,0xbf,0x0, 0x3, 0x74,0x10,0x22,0xbe,0x70,0x4, 0x38,0x4, 0x6c,0xaa,0x80, +0x21,0xbe,0x70,0x8, 0x38,0x5, 0x7e,0xa0,0x1, 0x80,0x17,0xbe,0x70,0x10,0x38,0x5, +0x7e,0xa0,0x2, 0x80,0xd, 0xbe,0x70,0x20,0x38,0x5, 0x7e,0xa0,0x3, 0x80,0x3, 0x7e, +0xa0,0x4, 0xa, 0x47,0x3e,0x44,0x3e,0x44,0x3e,0x44,0x7c,0xba,0x60,0x5, 0x1e,0x44, +0x14,0x78,0xfb,0x7c,0xb9,0x22,0x7e,0x8, 0x1f,0x34,0x12,0xa7,0xee,0x6c,0x77,0x80, +0xe, 0x12,0xa9,0x45,0x50,0x7, 0x12,0xa9,0x3c,0x19,0x51,0x1f,0x34,0xb, 0x70,0x7e, +0x53,0x2a,0x8d,0xbc,0x57,0x38,0xea,0xa9,0xc6,0xea,0x7e,0x8, 0x1f,0x34,0xe4,0x12, +0x11,0x38,0xa9,0xd6,0xea,0x7e,0x8, 0x1f,0x34,0x2, 0x11,0x38,0xa, 0x27,0x9, 0x52, +0x2b,0x63,0xa, 0x16,0x22,0xa, 0x27,0x9, 0x62,0x2a,0xfb,0xbe,0x60,0x1c,0x22,0x7e, +0x43,0x2a,0x8d,0x7e,0x53,0x2a,0x8c,0xac,0x54,0x7e,0x17,0x28,0xa1,0x12,0x8f,0xc3, +0x6d,0x0, 0x80,0x37,0x7d,0x40,0x3e,0x44,0x7e,0x7f,0x39,0xac,0x2d,0xf4,0xb, 0x7a, +0x30,0xbd,0x13,0x58,0x10,0x7d,0xf4,0x2e,0xf4,0x8, 0xa, 0xb, 0xf8,0x50,0x9d,0x51, +0x1b,0xf8,0x50,0x80,0x14,0x6d,0x55,0x9d,0x51,0xbd,0x53,0x8, 0xc, 0x2e,0x44,0x8, +0xa, 0xb, 0x48,0x50,0x2d,0x51,0x1b,0x48,0x50,0xb, 0x4, 0xbd,0x20,0x38,0xc5,0x22, +0x7e,0x27,0x28,0xa3,0x6d,0x11,0x9d,0x12,0x6c,0xaa,0x80,0x64,0x30,0x5, 0x2e,0x7e, +0x90,0x2, 0xac,0x9a,0x49,0x34,0x5, 0xf8,0x49,0x4, 0x4, 0x0, 0xbd,0x2, 0x8, 0x11, +0x7e,0xb3,0x25,0xf6,0xb4,0x1, 0x16,0x7d,0xf2,0x2d,0xf3,0x59,0xf4,0x5, 0xf8,0x80, +0xc, 0xbd,0x1, 0x58,0x8, 0x7d,0x3, 0x9d,0x2, 0x59,0x4, 0x5, 0xf8,0x30,0x7, 0x2e, +0x7e,0x90,0x2, 0xac,0x9a,0x49,0x34,0x6, 0x76,0x49,0x4, 0x4, 0x7e,0xbd,0x2, 0x8, +0x11,0x7e,0xb3,0x25,0xf6,0xb4,0x1, 0x16,0x7d,0xf2,0x2d,0xf3,0x59,0xf4,0x6, 0x76, +0x80,0xc, 0xbd,0x1, 0x58,0x8, 0x7d,0x3, 0x9d,0x2, 0x59,0x4, 0x6, 0x76,0xb, 0xa0, +0x7e,0xb3,0x2a,0x93,0xa, 0xb, 0x7e,0xb3,0x2a,0x92,0xa, 0x4b,0x2d,0x40,0xa, 0xa, +0xbd,0x4, 0x48,0x88,0x22,0xe4,0x7a,0xb3,0x39,0xb0,0x22,0x7e,0xb3,0x38,0x38,0x70, +0x6, 0x12,0xaa,0x64,0x2, 0xaa,0x25,0x12,0xaa,0x6a,0x12,0xaf,0x54,0x50,0xa, 0x12, +0xad,0xc2,0x7c,0x3b,0x12,0xaa,0x64,0x80,0x5, 0x12,0xac,0x67,0x7c,0x3b,0x4c,0x33, +0x68,0x11,0x7c,0xb3,0x12,0xae,0xd1,0x60,0xa, 0x7a,0x33,0x38,0x3b,0x74,0x1, 0x7a, +0xb3,0x2a,0x26,0x22,0xe4,0x7a,0xb3,0x2f,0x9f,0x22,0xca,0xf8,0x7e,0xa3,0x2a,0x20, +0x7e,0xb3,0x2a,0x21,0xbe,0xa0,0x1, 0x38,0x21,0xbe,0xb0,0x1, 0x38,0x1c,0x7e,0x47, +0x28,0x86,0xbe,0x44,0x0, 0x1e,0x28,0x2, 0x80,0x10,0x7e,0xf3,0x2f,0x9f,0x4c,0xff, +0x68,0x17,0x7e,0x47,0x2b,0xd6,0x4d,0x44,0x78,0xf, 0x12,0xaf,0x4d,0x74,0x1, 0x7a, +0xb3,0x39,0x58,0x7a,0xb3,0x38,0xd, 0x80,0x35,0x4c,0xaa,0x78,0x36,0xb4,0x1, 0x33, +0x7e,0x37,0x2b,0xd6,0x7a,0x37,0x2f,0xa1,0x7e,0xb3,0x2f,0x9f,0xb4,0x3, 0x1f,0x7e, +0x37,0x2b,0xd6,0xbe,0x34,0x0, 0x0, 0x28,0x15,0x74,0x4, 0x7a,0xb3,0x2f,0x9f,0x7e, +0x37,0x2f,0xb7,0x7e,0x27,0x2f,0xb9,0x12,0xab,0x7b,0x61,0x74,0x80,0x0, 0x12,0xaf, +0x5f,0x61,0x74,0x7e,0xc7,0x29,0x8, 0x7e,0xd7,0x29,0xa, 0x4c,0xff,0x78,0x19,0x70, +0x57,0xbe,0xa0,0x1, 0x78,0x52,0x7d,0x3c,0x7d,0x2d,0x12,0xae,0x6c,0x12,0xab,0x77, +0x74,0x1, 0x7a,0xb3,0x2f,0x9f,0x80,0x40,0xbe,0xf0,0x1, 0x78,0x2e,0x7e,0x27,0x2f, +0xa7,0x9e,0x27,0x2f,0xaf,0x7e,0x14,0x62,0xa1,0x12,0xac,0x26,0xbd,0x23,0x38,0x13, +0x7e,0x27,0x2f,0xb5,0x9e,0x27,0x2f,0xad,0x7e,0x14,0x62,0xa3,0x12,0xac,0x26,0xbd, +0x23,0x28,0x15,0x74,0x3, 0x7a,0xb3,0x2f,0x9f,0x80,0x5, 0xbe,0xf0,0x3, 0x78,0x8, +0x7a,0xc7,0x2f,0xb7,0x7a,0xd7,0x2f,0xb9,0x7e,0xb3,0x2f,0x9f,0x60,0x26,0x7d,0x3c, +0x7d,0x2d,0x7e,0x17,0x2b,0xda,0x7e,0x7, 0x2b,0xdc,0x12,0xae,0x50,0xa, 0x2b,0x7e, +0x73,0x2f,0x9e,0xa, 0x37,0xbd,0x32,0x58,0xb, 0x12,0xab,0x77,0x7a,0xc7,0x2b,0xda, +0x7a,0xd7,0x2b,0xdc,0xda,0xf8,0x22,0x7d,0x3c,0x7d,0x2d,0x7d,0x42,0x7d,0x13,0x7d, +0x24,0x12,0xaf,0x6b,0x7d,0x31,0x12,0xad,0xdb,0x2, 0xab,0x8c,0x7e,0x3, 0x2f,0xc7, +0xbe,0x0, 0xf0,0x50,0x2, 0x81,0x25,0x81,0x1a,0x6c,0x99,0x7e,0xb3,0x2f,0x9e,0xbe, +0xb0,0x20,0x50,0x5, 0x4, 0x7a,0xb3,0x2f,0x9e,0x7e,0x1f,0x2b,0xde,0x7a,0x1f,0x1f, +0x34,0x7e,0x80,0x1, 0x80,0x49,0x74,0x4, 0xac,0xb8,0x49,0x35,0x2b,0xde,0x49,0x25, +0x2b,0xe0,0x7e,0x17,0x1f,0x34,0x7e,0x7, 0x1f,0x36,0x12,0xae,0x50,0x7c,0x1b,0x7e, +0x3, 0x2f,0x9e,0xbc,0x1, 0x38,0x26,0xb, 0x90,0x7e,0x70,0x4, 0xac,0x78,0x2e,0x34, +0x2b,0xde,0x7e,0x14,0x1f,0x34,0x74,0x4, 0x12,0x15,0xfc,0x7e,0x34,0x1f,0x34,0x7e, +0x30,0x4, 0xac,0x39,0x2e,0x14,0x2b,0xde,0x74,0x4, 0x12,0x15,0xfc,0xb, 0x80,0x7e, +0x3, 0x2f,0xc7,0xbc,0x8, 0x38,0xaf,0xa, 0x59,0xb, 0x54,0x7c,0xb, 0x7a,0x3, 0x2f, +0xc7,0x7e,0x3, 0x2f,0x9e,0xbe,0x0, 0x20,0x50,0xb, 0x7e,0x3, 0x2f,0xc7,0xbe,0x0, +0xec,0x40,0x2, 0x61,0x99,0x22,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0x30,0x22,0x7d,0x13, +0x7e,0x54,0x62,0x6f,0x12,0xac,0x5d,0x50,0x21,0x7e,0x54,0x62,0x71,0x12,0xac,0x5d, +0x28,0x18,0x7e,0x14,0x62,0x73,0x12,0xac,0x26,0xbd,0x32,0x50,0xd, 0x7e,0x14,0x62, +0x75,0x12,0xac,0x26,0xbd,0x32,0x28,0x2, 0xe4,0x22,0x74,0x1, 0x22,0x7e,0x44,0x0, +0xff,0xb, 0x2a,0x30,0xbd,0x31,0x22,0xca,0xd8,0xca,0x79,0x6c,0xff,0x6d,0xdd,0x7d, +0xed,0x7d,0xfd,0x7e,0xd3,0x2a,0x20,0x7e,0xe3,0x2a,0x21,0x7e,0xb3,0x39,0xb0,0x60, +0x11,0x7e,0xc7,0x39,0xb9,0x4d,0xcc,0x78,0x2, 0xa1,0x5b,0xbe,0xd0,0x1, 0x28,0x2, +0xa1,0x5b,0xbe,0xd0,0x1, 0x78,0x1d,0xbe,0xb0,0x4, 0x78,0x2, 0xa1,0x5b,0x7e,0xe7, +0x29,0x8, 0x7e,0xf7,0x29,0xa, 0x7d,0x3e,0x7d,0x2f,0x12,0xac,0x2e,0xbe,0xb0,0x1, +0x78,0x2, 0xa1,0x5b,0x7e,0xa3,0x39,0xb0,0x7c,0xba,0x14,0x68,0x29,0x14,0x68,0x54, +0x14,0x68,0x23,0x14,0x78,0x2, 0xa1,0x58,0xb, 0xb2,0x68,0x2, 0xa1,0x5b,0xbe,0xd0, +0x1, 0x68,0x2, 0xa1,0x6a,0x4c,0xee,0x68,0x2, 0xa1,0x6a,0x74,0x1, 0x7a,0xb3,0x39, +0xb0,0x12,0xad,0x79,0x80,0x65,0x4c,0xdd,0x78,0x1d,0xbe,0xa0,0x1, 0x78,0xc, 0x74, +0x2, 0x7a,0xb3,0x39,0xb0,0x7e,0x34,0x62,0x7b,0x80,0x54,0x74,0x4, 0x7a,0xb3,0x39, +0xb0,0x7e,0x34,0x62,0x7f,0x80,0x48,0x12,0xad,0x82,0x90,0x62,0x6e,0x12,0xad,0x8b, +0x68,0x49,0x80,0x56,0xbe,0xd0,0x1, 0x78,0x51,0x4c,0xee,0x78,0x4d,0x12,0xad,0x82, +0x7e,0x34,0x62,0x77,0x12,0xad,0x71,0x7e,0x14,0x62,0x7b,0x7e,0x4, 0x0, 0xff,0xb, +0xa, 0xc0,0x9d,0xc3,0xbe,0xc7,0x39,0xb9,0x40,0x21,0x90,0x62,0x6d,0x12,0xad,0x8b, +0x68,0x19,0x12,0xad,0x79,0x74,0x3, 0x7a,0xb3,0x39,0xb0,0x7e,0x34,0x62,0x7b,0x12, +0xad,0x71,0x7a,0x37,0x39,0xb9,0x80,0x12,0x7e,0xf0,0x24,0xe4,0x7a,0xb3,0x39,0xb0, +0x6d,0x33,0x7a,0x37,0x39,0xb9,0x7c,0xbf,0x80,0x2, 0x7c,0xbf,0xda,0x79,0xda,0xd8, +0x22,0x7e,0x24,0x0, 0xff,0xb, 0x1a,0x30,0x22,0x7a,0xe7,0x39,0xb1,0x7a,0xf7,0x39, +0xb3,0x22,0x7a,0xe7,0x39,0xb5,0x7a,0xf7,0x39,0xb7,0x22,0xe4,0x93,0xa, 0x3b,0x12, +0xad,0x97,0xa, 0xdb,0x4d,0xdd,0x22,0x7d,0x13,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x7e, +0x37,0x39,0xb5,0x9e,0x37,0x39,0xb1,0x12,0x17,0x85,0xbd,0x31,0x38,0x12,0x7e,0x37, +0x39,0xb7,0x9e,0x37,0x39,0xb3,0x12,0x17,0x85,0xbd,0x31,0x38,0x3, 0x74,0x1, 0x22, +0xe4,0x22,0x12,0xae,0x47,0x7a,0x37,0x2f,0xbb,0x12,0xad,0xd2,0x7a,0x37,0x2f,0xbd, +0xe4,0x22,0x7e,0x37,0x2f,0xb5,0x9e,0x37,0x2f,0xad,0x22,0x7e,0x17,0x2f,0xaf,0xbd, +0x13,0x28,0xa, 0x7a,0x37,0x2f,0xaf,0x7a,0x27,0x2f,0xb1,0x80,0x10,0x7e,0x17,0x2f, +0xa7,0xbd,0x13,0x50,0x8, 0x7a,0x37,0x2f,0xa7,0x7a,0x27,0x2f,0xa9,0x7e,0x17,0x2f, +0xad,0xbd,0x12,0x28,0xa, 0x7a,0x27,0x2f,0xad,0x7a,0x37,0x2f,0xab,0x80,0x10,0x7e, +0x17,0x2f,0xb5,0xbd,0x12,0x50,0x8, 0x7a,0x27,0x2f,0xb5,0x7a,0x37,0x2f,0xb3,0x7e, +0xb3,0x2f,0xc7,0xb4,0xa, 0xf, 0x12,0xae,0x47,0x7a,0x37,0x2f,0xbf,0x12,0xad,0xd2, +0x7a,0x37,0x2f,0xc1,0x22,0xb4,0x14,0xe, 0x12,0xae,0x47,0x7a,0x37,0x2f,0xc3,0x12, +0xad,0xd2,0x7a,0x37,0x2f,0xc5,0x22,0x7e,0x37,0x2f,0xa7,0x9e,0x37,0x2f,0xaf,0x22, +0x7d,0x51,0x7d,0x12,0x9d,0x35,0x12,0x17,0x85,0x7c,0xa7,0x7d,0x31,0x9d,0x30,0x12, +0x17,0x85,0x7c,0xb7,0xbc,0xba,0x50,0x3, 0x7c,0xba,0x22,0x22,0x7d,0xf2,0x7d,0xe3, +0x7e,0x8, 0x2f,0x9f,0x7e,0x34,0x0, 0x28,0xe4,0x12,0x17,0x53,0x7e,0x8, 0x2b,0xde, +0x7e,0x34,0x3, 0xc0,0x12,0x17,0x53,0x7a,0xb3,0x38,0x3b,0x7e,0x34,0x62,0xa5,0x12, +0xad,0x71,0x7a,0x37,0x2b,0xd6,0x7a,0xe7,0x2f,0xa3,0x7a,0xf7,0x2f,0xa5,0x7a,0xe7, +0x2f,0xa7,0x7a,0xe7,0x2f,0xab,0x7a,0xe7,0x2f,0xaf,0x7a,0xe7,0x2f,0xb3,0x7a,0xf7, +0x2f,0xa9,0x7a,0xf7,0x2f,0xad,0x7a,0xf7,0x2f,0xb1,0x7a,0xf7,0x2f,0xb5,0x7a,0xe7, +0x2b,0xda,0x7a,0xf7,0x2b,0xdc,0x7a,0xb3,0x2f,0xc7,0x74,0x2, 0x7a,0xb3,0x2f,0x9e, +0x22,0x7c,0x7b,0xa, 0x57,0x9e,0x54,0x0, 0x20,0xe, 0x54,0xe, 0x54,0xe, 0x54,0xe, +0x54,0x7c,0xab,0x7c,0x67,0x5e,0x60,0xf0,0xa5,0xbe,0x20,0x1d,0x7c,0xb7,0x54,0xf, +0x7e,0x24,0x0, 0x1, 0x60,0x5, 0x3e,0x24,0x14,0x78,0xfb,0x7e,0x73,0x39,0xce,0xa, +0x47,0x5d,0x42,0x7e,0x73,0x38,0x39,0x80,0x36,0xa5,0xbe,0x30,0x18,0x12,0xaf,0x44, +0x60,0x5, 0x3e,0x34,0x14,0x78,0xfb,0x7e,0x53,0x39,0xcf,0xa, 0x45,0x5d,0x43,0x7e, +0x73,0x38,0x3a,0x80,0x1a,0x12,0xaf,0x44,0x60,0x5, 0x3e,0x34,0x14,0x78,0xfb,0xa, +0x2a,0x9, 0xb2,0x39,0xce,0xa, 0x4b,0x5d,0x43,0xa, 0x5a,0x9, 0x75,0x38,0x3b,0xa, +0x57,0x5d,0x54,0x22,0x7c,0xb7,0x54,0xf, 0x7e,0x34,0x0, 0x1, 0x22,0x6d,0x33,0x7a, +0x37,0x39,0x56,0x22,0x7e,0xb3,0x2f,0x9f,0xb4,0x4, 0x2, 0xd3,0x22,0xc3,0x22,0x74, +0xfe,0x7a,0xb3,0x38,0x3b,0xe4,0x7a,0xb3,0x2f,0x9f,0x22,0x7e,0xa3,0x2f,0xc7,0xbe, +0xa0,0xf0,0x50,0x1b,0x74,0x4, 0xa4,0x59,0x35,0x2b,0xde,0x7e,0xa3,0x2f,0xc7,0x74, +0x4, 0xa4,0x59,0x25,0x2b,0xe0,0x7e,0xb3,0x2f,0xc7,0x4, 0x7a,0xb3,0x2f,0xc7,0x22, +0x7e,0x34,0x0, 0x1, 0x7a,0x37,0x28,0xa1,0x7e,0x34,0x0, 0x2, 0x7a,0x37,0x28,0xa3, +0x22,0x9, 0xb3,0x26,0xfa,0xf5,0x25,0x9, 0xb3,0x26,0xfb,0xf5,0x26,0x22,0xa, 0x3a, +0x19,0xf3,0x1f,0x46,0x74,0x1, 0x19,0xb4,0x1f,0x50,0x22,0xa, 0x47,0x7f,0x70,0x2d, +0xf4,0x7e,0x7b,0x60,0x22,0x7e,0x70,0x2, 0xac,0x7c,0x9, 0xb3,0x26,0xfa,0x22,0x3e, +0x34,0x3e,0x34,0x3e,0x34,0x22,0x7e,0x70,0x2, 0xac,0x79,0x9, 0xb3,0x1f,0x34,0x22, +0x7e,0x50,0x9, 0xac,0x5a,0x19,0x72,0x28,0xb2,0x22,0x7e,0x50,0x2, 0xac,0x5a,0x7f, +0x6, 0x2d,0x12,0x22,0x6d,0x33,0xe4,0x6c,0x55,0x2, 0x13,0x1, 0x7f,0x6, 0x2d,0x12, +0x79,0x40,0x0, 0x28,0x22,0x7e,0x34,0xd, 0xc8,0x7a,0x37,0x34,0x8a,0x22,0x7e,0x73, +0x38,0xd5,0x7a,0x73,0x2b,0x3f,0x22,0x7d,0x2e,0x12,0x15,0x29,0x7d,0xf3,0x22,0x7e, +0x73,0x28,0x84,0xbe,0x71,0x24,0x22,0x7e,0x34,0x0, 0xc8,0x2, 0x1a,0x15,0x7e,0x50, +0x2, 0xac,0x5a,0x3e,0x24,0x22,0xb0,0x36,0x4f,0xc9,0xa0,0x5f,0xb, 0x51, \ No newline at end of file diff --git a/drivers/input/touchscreen/FT5346/ft_app_ic_oufei_ebbg_ili.txt b/drivers/input/touchscreen/FT5346/ft_app_ic_oufei_ebbg_ili.txt new file mode 100644 index 0000000000000..e9262ef468551 --- /dev/null +++ b/drivers/input/touchscreen/FT5346/ft_app_ic_oufei_ebbg_ili.txt @@ -0,0 +1,3091 @@ +0x2, 0x1f,0xd2,0x2, 0xb5,0x8a,0xeb,0xaa,0x8, 0x22,0x22,0x2, 0x0, 0x42,0xb4,0x2, +0x4, 0xa9,0xb7,0xea,0x22,0x24,0xff,0xa9,0x97,0xea,0x22,0x2, 0x70,0x2d,0xb4,0x2, +0x4, 0xa9,0xb6,0xea,0x22,0x24,0xff,0xa9,0x96,0xea,0x22,0x2, 0x7d,0x45,0x7f,0x60, +0xa9,0xc2,0xea,0x74,0x1, 0x12,0x13,0x96,0x7f,0x6, 0x12,0x5, 0xb4,0x7f,0x6, 0x2, +0x9, 0xa1,0x32,0x2, 0x7d,0xa4,0xe4,0x2, 0x29,0xfa,0x22,0x2, 0x0, 0x5a,0x12,0x10, +0xa2,0x2, 0x13,0x79,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x32,0x2, 0x0, 0x76,0x1, 0x2, +0x4, 0x8, 0x10,0x20,0x40,0x80,0xa2,0x13,0x22,0x32,0xff,0x2, 0x0, 0x69,0x2, 0x31, +0xb3,0xff,0xff,0x2, 0x10,0x52,0xca,0x7b,0xca,0x6b,0xca,0x5b,0xca,0x4b,0xca,0x2b, +0xca,0x1b,0xca,0xb, 0xc0,0xd0,0xc0,0x83,0xc0,0x82,0xd2,0xb, 0x7e,0xf, 0x38,0xc8, +0x69,0x30,0x0, 0x4, 0x7a,0x73,0x38,0xd8,0x7e,0x73,0x38,0xd8,0xa, 0x37,0x5e,0x34, +0x0, 0x4, 0x68,0x4, 0xd2,0xa, 0x80,0x2, 0xc2,0xa, 0x7e,0x34,0x0, 0x1f,0x79,0x30, +0x0, 0x4, 0xc2,0xc3,0x12,0x12,0x9e,0x12,0x7f,0x5, 0x7e,0x1f,0x38,0xc8,0x69,0x31, +0x0, 0x2, 0x5e,0x34,0x0, 0x40,0x68,0x2e,0x6c,0xaa,0x7e,0x10,0x2, 0xac,0x1a,0x7e, +0x1f,0x38,0xc8,0x7f,0x71,0x2d,0xf0,0x69,0x17,0x0, 0x9c,0x59,0x10,0x38,0xcc,0xb, +0xa0,0xbe,0xa0,0x3, 0x78,0xe4,0x69,0x11,0x0, 0xa4,0x7a,0x17,0x38,0xd4,0x69,0x31, +0x0, 0xa2,0x7a,0x37,0x38,0xd2,0xa9,0xc1,0xc4,0xd0,0x82,0xd0,0x83,0xd0,0xd0,0xda, +0xb, 0xda,0x1b,0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda,0x7b,0x32,0x7d,0x13, +0x7e,0x1f,0x38,0xf7,0x1b,0x1a,0x10,0xc2,0xc6,0xd2,0xee,0x22,0xff,0xff,0x54,0x2c, +0xca,0x79,0x7f,0x50,0x7c,0xeb,0x7e,0x34,0x0, 0x24,0x7e,0x8, 0x0, 0x2c,0x7e,0x24, +0x0, 0x2, 0x12,0xb7,0x9d,0xe5,0x2c,0xbe,0xb0,0x0, 0x38,0x2, 0x21,0x4a,0xe5,0x2c, +0xbe,0xb0,0x76,0x28,0x2, 0x21,0x4a,0x7e,0xe1,0x2c,0xbe,0xe0,0x76,0x38,0x2, 0x21, +0x78,0x7e,0x34,0x1e,0x45,0x79,0x35,0x0, 0x2, 0x7e,0x34,0x1e,0x29,0x79,0x35,0x0, +0x4, 0xbe,0xe0,0x81,0x68,0x2, 0x21,0x71,0x74,0x23,0x7a,0x5b,0xb0,0x74,0x1c,0x61, +0x84,0x74,0x1, 0x7a,0x5b,0xb0,0x61,0x84,0x7c,0xbe,0x14,0xbe,0xb0,0x75,0x40,0x2, +0x61,0x33,0x7e,0xa0,0x3, 0xa4,0x2e,0x54,0x1, 0x8c,0x89,0x54,0x2, 0x2, 0xfb,0x2, +0x2, 0xfb,0x2, 0x3, 0x33,0x2, 0x2, 0xfb,0x2, 0x3, 0x33,0x2, 0x2, 0xed,0x2, 0x2, +0xfb,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x2, 0xfb,0x2, 0x3, 0x33,0x2, 0x2, 0xfb, +0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x25,0x2, 0x3, 0x33,0x2, 0x3, 0x9, 0x2, +0x2, 0xfb,0x2, 0x3, 0x17,0x2, 0x3, 0x17,0x2, 0x2, 0xfb,0x2, 0x3, 0x33,0x2, 0x3, +0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33, +0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, +0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, +0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33, +0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, +0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, +0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33, +0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, +0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, +0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33, +0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, +0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, +0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33, +0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, +0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, +0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33, +0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, +0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x2, 0xfb,0x41,0xfb,0x7e,0x34,0x1e, +0x45,0x79,0x35,0x0, 0x2, 0x7e,0x34,0x1d,0xe2,0x61,0x3f,0x7e,0x34,0x1e,0x19,0x79, +0x35,0x0, 0x2, 0x7e,0x34,0x1e,0x29,0x61,0x3f,0x7e,0x34,0x1e,0x19,0x79,0x35,0x0, +0x2, 0x7e,0x34,0x1d,0xb2,0x61,0x3f,0x7e,0x34,0x1d,0x96,0x79,0x35,0x0, 0x2, 0x7e, +0x34,0x1d,0xc6,0x61,0x3f,0x7e,0x34,0x1e,0xa, 0x79,0x35,0x0, 0x2, 0x7e,0x34,0x1d, +0xf1,0x61,0x3f,0x7e,0x34,0x1e,0x45,0x79,0x35,0x0, 0x2, 0x7e,0x34,0x1e,0x29,0x79, +0x35,0x0, 0x4, 0xbe,0xe0,0x16,0x28,0x2, 0x61,0x4e,0x7c,0xfe,0x61,0x62,0x7e,0xf0, +0x16,0xbe,0xe0,0x72,0x50,0x2, 0x61,0x62,0xa, 0x3e,0x9e,0x34,0x0, 0x72,0xb, 0x34, +0x2c,0xf7,0x7e,0x70,0x3, 0xac,0x7f,0x7d,0x23,0x2e,0x24,0x1e,0x69,0x7a,0x51,0x82, +0x7a,0x41,0x83,0xe4,0x93,0x7a,0x5b,0xb0,0x2e,0x34,0x1e,0x6a,0x7a,0x71,0x82,0x7a, +0x61,0x83,0xe4,0x93,0x39,0xb5,0x0, 0x1, 0xda,0x79,0x22,0xca,0x3b,0x7f,0x30,0x74, +0x1, 0x12,0x13,0xde,0x29,0x73,0x0, 0xf3,0x2e,0x70,0xff,0x92,0x4, 0x29,0xb3,0x0, +0xf4,0x12,0x13,0xaf,0x7f,0x3, 0x12,0xd, 0x72,0x7f,0x3, 0x12,0x6, 0xba,0x29,0x73, +0x0, 0xa, 0xa, 0x37,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x24,0x29,0x73,0x0, 0xa3, +0xa, 0x27,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24, +0x69,0x33,0x0, 0xff,0x4d,0x32,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x2, 0x29,0x73, +0x0, 0xa, 0xa, 0x47,0x29,0x73,0x0, 0x5, 0xa, 0x57,0x9d,0x54,0xf5,0x35,0x29,0xb3, +0x0, 0xa5,0x70,0xb, 0x29,0xb3,0x0, 0xf8,0x29,0x73,0x0, 0xf7,0x12,0xb, 0xad,0x29, +0x73,0x0, 0xa5,0x2e,0x70,0xff,0x92,0x4, 0xe5,0x35,0x12,0xb, 0x1e,0x69,0x33,0x0, +0xfd,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x28,0x69,0x23,0x0, 0xfb,0x3e,0x24,0x3e, +0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x29,0x73,0x0, 0xfa,0xa, 0x37,0x2d, +0x32,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x2a,0x29,0x73,0x0, 0xf9,0xa, 0x37,0x7e, +0xf, 0x38,0xc8,0x79,0x30,0x0, 0x2c,0x7e,0x34,0x0, 0x1, 0x7e,0xf, 0x38,0xc8,0x79, +0x30,0x0, 0x34,0x7e,0x34,0x1, 0xb, 0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x2e,0x29, +0x73,0x0, 0x5, 0xa, 0x37,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x10,0x69,0x33,0x0, +0xa8,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x1c,0x69,0x33,0x0, 0xaa,0x7e,0xf, 0x38, +0xc8,0x79,0x30,0x0, 0x1e,0x6c,0xaa,0x7e,0x50,0x2, 0xac,0x5a,0x69,0x13,0x1, 0x1, +0x2d,0x12,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0x30,0x7e,0xf, 0x38,0xc8,0x2d,0x12,0x79, +0x30,0x0, 0x44,0xb, 0xa0,0xbe,0xa0,0xc, 0x40,0xdd,0xda,0x3b,0x22,0xca,0xf8,0x7f, +0x70,0x7e,0x7b,0xf0,0x29,0x77,0x0, 0x1, 0xbc,0x7f,0x28,0x2, 0x7c,0xf7,0x69,0x17, +0x0, 0x6, 0x6d,0x0, 0x7e,0x34,0x0, 0xf2,0x74,0xff,0x12,0x20,0xde,0x7f,0x7, 0x12, +0xe, 0xed,0xa9,0xd6,0xcb,0x6c,0xaa,0x80,0x2d,0x6c,0x77,0x80,0x1f,0x7e,0x10,0xb, +0xac,0x1a,0xa, 0x17,0x2d,0x1, 0x3e,0x4, 0x69,0x17,0x0, 0x6, 0x2d,0x10,0x6d,0x0, +0xb, 0xa, 0x20,0x6e,0x24,0xff,0xff,0x1b,0xa, 0x20,0xb, 0x70,0x29,0x67,0x0, 0x1, +0xbc,0x67,0x38,0xd9,0xb, 0xa0,0x7e,0x7b,0x60,0xbc,0x6a,0x38,0xcc,0x69,0x37,0x0, +0x6, 0x7e,0xf, 0x39,0xd, 0x79,0x30,0x0, 0x4, 0x7c,0x4f,0x6c,0x55,0xa, 0x3f,0x2d, +0x32,0x7e,0xf, 0x39,0xd, 0x79,0x30,0x0, 0xc, 0x6d,0x11,0x7e,0x1f,0x39,0xd, 0x1b, +0x1a,0x10,0x7e,0x34,0x0, 0xd0,0x12,0xf, 0x45,0x6c,0xaa,0xbe,0xa0,0x4, 0x50,0x18, +0x7e,0x70,0x4, 0xac,0x7a,0x7c,0xb7,0x7e,0x1f,0x39,0xd, 0x69,0x41,0x0, 0x26,0x60, +0x42,0x1e,0x44,0x14,0x78,0xfb,0x80,0x3b,0xbe,0xa0,0x8, 0x50,0x1b,0xa, 0x3a,0x1b, +0x36,0x3e,0x34,0x3e,0x34,0x7c,0xb7,0x7e,0x1f,0x39,0xd, 0x69,0x41,0x0, 0x28,0x60, +0x22,0x1e,0x44,0x14,0x78,0xfb,0x80,0x1b,0xa, 0x3a,0x9e,0x34,0x0, 0x8, 0x3e,0x34, +0x3e,0x34,0x7c,0xb7,0x7e,0x1f,0x39,0xd, 0x69,0x41,0x0, 0x2a,0x60,0x5, 0x1e,0x44, +0x14,0x78,0xfb,0x5e,0x44,0x0, 0xf, 0x7e,0x50,0x2, 0xac,0x5a,0x69,0x37,0x0, 0x6, +0x2d,0x32,0x6d,0x22,0x1b,0x1a,0x40,0xb, 0xa0,0xbe,0xa0,0xb, 0x40,0x8d,0xa9,0xc6, +0xcb,0xda,0xf8,0x22,0x29,0x70,0x0, 0x96,0x29,0x90,0x0, 0x98,0x29,0x60,0x0, 0x97, +0x29,0x80,0x0, 0x8d,0xbe,0x80,0x4, 0x38,0x4, 0x6c,0xaa,0x80,0x21,0xbe,0x80,0x8, +0x38,0x5, 0x7e,0xa0,0x1, 0x80,0x17,0xbe,0x80,0x10,0x38,0x5, 0x7e,0xa0,0x2, 0x80, +0xd, 0xbe,0x80,0x20,0x38,0x5, 0x7e,0xa0,0x3, 0x80,0x3, 0x7e,0xa0,0x4, 0xbe,0x90, +0x3, 0x28,0x3, 0x7e,0x90,0x3, 0xbe,0x80,0x3f,0x28,0x3, 0x7e,0x80,0x3f,0xbe,0x60, +0x1, 0x28,0x3, 0x7e,0x60,0x1, 0xbe,0x70,0x2, 0x28,0x2, 0x6c,0x77,0xa, 0x28,0x3e, +0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x7c,0x89,0x6c,0x99,0x3e,0x44,0x3e, +0x44,0x3e,0x44,0x2d,0x42,0xa, 0x26,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x2d, +0x24,0xa, 0x37,0x3e,0x34,0x3e,0x34,0x2d,0x32,0x7e,0x7f,0x38,0xf7,0x79,0x37,0x0, +0x2, 0x29,0xb0,0x0, 0x8c,0x7c,0x4b,0x6c,0x55,0x29,0xb0,0x0, 0x8b,0xa, 0x3b,0x2d, +0x32,0x7e,0x7f,0x38,0xc0,0x79,0x37,0x0, 0x80,0x69,0x30,0x0, 0xa0,0x7e,0x7f,0x38, +0xf7,0x79,0x37,0x0, 0xc, 0x69,0x30,0x0, 0x9e,0x5e,0x34,0xe0,0xf, 0x29,0xb0,0x0, +0x8c,0xa, 0x2b,0x1b,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x2d,0x32,0x7e, +0x7f,0x38,0xc0,0x79,0x37,0x0, 0x82,0xa, 0x2a,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e, +0x24,0x29,0xb0,0x0, 0x99,0xa, 0x3b,0x2d,0x32,0x7e,0x7f,0x38,0xf7,0x79,0x37,0x0, +0x6, 0x69,0x30,0x0, 0x9c,0x7e,0x7f,0x38,0xf7,0x79,0x37,0x0, 0x8, 0x69,0x30,0x0, +0x9a,0x7e,0xf, 0x38,0xf7,0x79,0x30,0x0, 0xa, 0x22,0x7f,0x60,0x74,0x1, 0x12,0x13, +0xde,0x29,0x36,0x0, 0xf5,0x29,0x26,0x0, 0xa3,0x29,0x16,0x0, 0xa4,0xbe,0x20,0x2, +0x28,0x3, 0x7e,0x20,0x2, 0xbe,0x10,0x40,0x28,0x3, 0x7e,0x10,0x40,0x7e,0x34,0x0, +0x4, 0x7c,0xb2,0x60,0x5, 0x3e,0x34,0x14,0x78,0xfb,0x7c,0x7, 0xa, 0x31,0x7e,0x2f, +0x38,0xc8,0x79,0x32,0x0, 0x12,0x7c,0x73,0xac,0x70,0xa, 0x21,0x12,0x1e,0xb9,0x7c, +0x27,0xa, 0x32,0x7e,0x2f,0x38,0xc8,0x79,0x32,0x0, 0x14,0x7c,0x73,0xac,0x70,0x29, +0x26,0x0, 0xf6,0xa, 0x22,0xad,0x32,0xa, 0x21,0x8d,0x32,0x7d,0x43,0x7c,0x73,0xac, +0x70,0xa, 0x21,0x12,0x1e,0xb9,0x7c,0xa7,0x7c,0x2a,0x7c,0xb9,0x2c,0xab,0xbe,0xa0, +0xc, 0x50,0x3, 0x7e,0xa0,0xc, 0xbe,0x20,0xc, 0x50,0x3, 0x7e,0x20,0xc, 0xa, 0x20, +0xa, 0x31,0x12,0x1e,0xb9,0x7d,0xe3,0xa, 0x3a,0xb, 0x34,0xad,0x3e,0xb, 0x34,0xbe, +0x34,0x2, 0x0, 0x40,0x4, 0x7e,0x34,0x1, 0xff,0x29,0x46,0x0, 0xf7,0x7e,0x50,0x2, +0xac,0x45,0xa, 0xf2,0xad,0xfe,0x2d,0x2f,0xb, 0x24,0xbe,0x24,0x2, 0x0, 0x40,0x4, +0x7e,0x24,0x1, 0xff,0xa, 0x13,0x7e,0x7f,0x38,0xc8,0x79,0x17,0x0, 0xa, 0x1e,0x24, +0x7c,0x45,0x6c,0x55,0x1e,0x34,0x2d,0x32,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0xc, +0xa, 0x3a,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x22,0x22,0xa9,0xd6,0xcb,0x69,0x30, +0x0, 0x4, 0x7e,0x2f,0x39,0xd, 0x79,0x32,0x0, 0x4, 0x69,0x30,0x0, 0x6, 0x7e,0x2f, +0x39,0xd, 0x79,0x32,0x0, 0x6, 0x69,0x30,0x0, 0x8, 0x7e,0x2f,0x39,0xd, 0x79,0x32, +0x0, 0x8, 0x7e,0xb, 0x70,0x7c,0x47,0x6c,0x55,0x29,0x70,0x0, 0x1, 0xa, 0x37,0x2d, +0x32,0x7e,0x2f,0x39,0xd, 0x79,0x32,0x0, 0xc, 0x29,0x70,0x0, 0x2, 0xa, 0x37,0x7e, +0xf, 0x39,0xd, 0x79,0x30,0x0, 0xe, 0x6d,0x11,0x7e,0x1f,0x39,0xd, 0x1b,0x1a,0x10, +0x7e,0x34,0x0, 0xe0,0x12,0xf, 0x45,0xa9,0xc6,0xcb,0x22,0xb2,0x86,0x22,0xff,0xff, +0x7f,0x21,0xa9,0xd6,0xcb,0x69,0x30,0x0, 0x4, 0x7e,0x7f,0x39,0xd, 0x79,0x37,0x0, +0x4, 0x69,0x30,0x0, 0x8, 0x7e,0x7f,0x39,0xd, 0x79,0x37,0x0, 0x6, 0x69,0x30,0x0, +0x6, 0x7e,0x7f,0x39,0xd, 0x79,0x37,0x0, 0x8, 0x29,0x70,0x0, 0x1, 0x7c,0x47,0x6c, +0x55,0x7e,0xb, 0x70,0xa, 0x37,0x2d,0x32,0x7e,0x7f,0x39,0xd, 0x79,0x37,0x0, 0xc, +0x29,0x70,0x0, 0x2, 0xa, 0x37,0x1b,0x34,0x7e,0x7f,0x39,0xd, 0x79,0x37,0x0, 0xa, +0x69,0x30,0x0, 0xa, 0x7e,0x7f,0x39,0xd, 0x79,0x37,0x0, 0xe, 0x69,0x30,0x0, 0xc, +0x7e,0x7f,0x39,0xd, 0x79,0x37,0x0, 0x10,0x69,0x30,0x0, 0xe, 0x7e,0x7f,0x39,0xd, +0x79,0x37,0x0, 0x12,0x29,0x70,0x0, 0x3, 0x7c,0x27,0x6c,0x33,0x7e,0x1f,0x39,0xd, +0x1b,0x1a,0x10,0x7e,0x34,0x0, 0xa0,0x12,0xf, 0x45,0x7e,0x1f,0x39,0xd, 0x69,0x11, +0x0, 0x1a,0x7a,0x2b,0x30,0x69,0x11,0x0, 0x1c,0x39,0x32,0x0, 0x1, 0x69,0x11,0x0, +0x16,0x79,0x12,0x0, 0x2, 0x69,0x11,0x0, 0x18,0x79,0x12,0x0, 0x4, 0x69,0x11,0x0, +0x22,0x79,0x12,0x0, 0x6, 0x69,0x11,0x0, 0x24,0x79,0x12,0x0, 0x8, 0x69,0x11,0x0, +0x1e,0x79,0x12,0x0, 0xa, 0x69,0x31,0x0, 0x20,0x79,0x32,0x0, 0xc, 0xa9,0xc6,0xcb, +0x22,0xca,0x3b,0x7c,0x57,0x7c,0x4b,0x5e,0x40,0x3, 0x69,0x30,0x0, 0x4, 0x5e,0x60, +0x3f,0x6c,0xaa,0xa, 0x4a,0x69,0xf0,0x0, 0xa, 0x69,0xe0,0x0, 0x8, 0x2d,0xf4,0x7e, +0x7b,0xb0,0xa, 0xfb,0x7d,0x4f,0x7c,0x89,0x6c,0x99,0x7d,0xf4,0xa, 0xea,0x69,0xd0, +0x0, 0xe, 0x69,0xc0,0x0, 0xc, 0x2d,0xde,0x7e,0x6b,0xb0,0xa, 0x4b,0x2d,0x4f,0x7e, +0xd0,0x28,0xac,0xd5,0x7e,0xf0,0x2, 0xac,0xfa,0x7d,0xd7,0x2d,0xd6,0x7e,0xf0,0xf0, +0xac,0xf4,0x2d,0xd7,0x7e,0x7f,0x38,0xf3,0x2d,0xfd,0x79,0x47,0x1, 0x8c,0xb, 0xa0, +0xbe,0xa0,0xe, 0x78,0xae,0x6c,0xaa,0x7e,0x90,0x2, 0xac,0x9a,0x69,0xf0,0x0, 0x2, +0xb, 0xa, 0xe0,0x2d,0xf4,0xb, 0x7a,0x40,0x7e,0xd0,0x28,0xac,0xd5,0x7e,0xf0,0x2, +0xac,0xfa,0x7d,0xd7,0x2d,0xd6,0x7e,0xf0,0xf0,0xac,0xf4,0x2d,0xd7,0x7e,0x7f,0x38, +0xf3,0x2d,0xfd,0x79,0x47,0x1, 0x80,0xb, 0xa0,0xbe,0xa0,0x4, 0x40,0xc9,0x7e,0x90, +0xf0,0xac,0x94,0x74,0x28,0xac,0xb5,0x7d,0xf5,0x2d,0xf4,0x7e,0x2f,0x38,0xf3,0x2d, +0x5f,0x79,0x32,0x1, 0x88,0x69,0x30,0x0, 0x6, 0x7e,0x30,0xf0,0xac,0x34,0x74,0x28, +0xac,0x5b,0x2d,0x21,0x7e,0xf, 0x38,0xf3,0x2d,0x12,0x79,0x30,0x1, 0x8a,0xda,0x3b, +0x22,0x29,0x60,0x0, 0xb, 0xa, 0x46,0x29,0x60,0x0, 0x4, 0xa, 0x26,0x2d,0x24,0x7c, +0x65,0x29,0xb0,0x0, 0x6, 0xbc,0xb6,0x28,0x2, 0x7c,0x6b,0x29,0x70,0x0, 0x5, 0x29, +0xb0,0x0, 0x7, 0xbc,0xb7,0x28,0x2, 0x7c,0x7b,0x6c,0xaa,0x6d,0x22,0x7e,0x90,0x2, +0xac,0x9a,0x7e,0x7f,0x38,0xc0,0x2d,0xf4,0x79,0x27,0x0, 0x2, 0xb, 0xa0,0xbe,0xa0, +0x23,0x78,0xea,0x6c,0xaa,0x80,0x55,0xa, 0x2a,0x7f,0x70,0x2d,0xf2,0x29,0x57,0x0, +0x4c,0xbe,0x50,0x23,0x50,0x23,0x29,0x47,0x0, 0xb4,0xa, 0xd4,0x7d,0x4d,0x7c,0x89, +0x6c,0x99,0x7d,0xd4,0x7e,0x90,0x2, 0xac,0x95,0x7e,0x7f,0x38,0xc0,0x2d,0xf4,0xb, +0xf5,0xb, 0x7a,0x40,0x4d,0x4d,0x1b,0x7a,0x40,0xa, 0x4a,0x7f,0x70,0x2d,0xf4,0x29, +0x47,0x0, 0x4c,0xa, 0xd4,0x7e,0x90,0x2, 0xac,0x9a,0x7e,0x7f,0x38,0xc0,0x2d,0xf4, +0xb, 0xf5,0xb, 0x7a,0x40,0x4d,0x4d,0x1b,0x7a,0x40,0xb, 0xa0,0xbc,0x6a,0x38,0xa7, +0x6c,0xaa,0x80,0x1d,0xa, 0x2a,0x7f,0x70,0x2d,0xf2,0x29,0x67,0x0, 0x6f,0xa, 0x46, +0x7e,0x50,0x2, 0xac,0x5a,0x7e,0x7f,0x38,0xc0,0x2d,0xf2,0x79,0x47,0x0, 0x48,0xb, +0xa0,0xbc,0x7a,0x38,0xdf,0x22,0x7c,0x7b,0x7e,0x7f,0x38,0xc8,0x69,0x47,0x0, 0xc, +0x6c,0x88,0x3e,0x44,0x69,0x7, 0x0, 0xa, 0x69,0x57,0x0, 0x2, 0x1e,0x54,0x1e,0x54, +0x1e,0x54,0x1e,0x54,0x1e,0x54,0x1e,0x54,0x1e,0x54,0x5e,0x54,0x0, 0x3, 0x7e,0x14, +0x0, 0x4, 0x70,0x2, 0x41,0x9b,0x3e,0x14,0x14,0x78,0xfb,0x7c,0xa3,0xa, 0xda,0xad, +0xd0,0x7d,0xcd,0x6d,0x11,0x79,0x17,0x0, 0x8c,0x7c,0xb7,0x70,0x2, 0x41,0xb4,0x1e, +0xd4,0x14,0x78,0xfb,0xbe,0xd4,0x1, 0x0, 0x38,0x2, 0x41,0xc2,0x7e,0xd4,0x1, 0x0, +0x41,0xce,0xbe,0xd4,0x0, 0x10,0x40,0x2, 0x41,0xce,0x7e,0xd4,0x0, 0x10,0x7d,0x3d, +0x12,0x12,0x6a,0xa, 0x1b,0x7e,0x1f,0x38,0xc8,0x79,0x11,0x0, 0x90,0x7e,0x1f,0x38, +0xc8,0x79,0xd1,0x0, 0x8e,0x7e,0x7f,0x38,0xc8,0x69,0x37,0x0, 0x8, 0xad,0x3c,0x8d, +0x3d,0x79,0x37,0x0, 0x92,0x7e,0x14,0x0, 0x6, 0x7e,0x1f,0x38,0xc8,0x79,0x11,0x0, +0x94,0x7d,0x24,0x9d,0x20,0xa, 0x3a,0xad,0x32,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, +0x96,0x7e,0x34,0x0, 0x10,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x98,0x22,0x7c,0x5b, +0x7e,0xf, 0x38,0xc8,0x69,0x40,0x0, 0x22,0x30,0x4, 0x6b,0x6d,0xff,0x7d,0x3f,0xbe, +0x50,0x10,0x28,0x2e,0x7e,0x54,0xff,0xff,0x79,0x50,0x0, 0x42,0x9e,0x50,0x10,0x6c, +0xaa,0x80,0x11,0x7e,0xe4,0x0, 0x1, 0x7c,0xba,0x60,0x5, 0x3e,0xe4,0x14,0x78,0xfb, +0x2d,0x3e,0xb, 0xa0,0xbc,0x5a,0x38,0xeb,0x7e,0x6f,0x38,0xc8,0x79,0x36,0x0, 0x40, +0x80,0x25,0x79,0xf0,0x0, 0x40,0x6c,0xaa,0x80,0x11,0x7e,0xf4,0x0, 0x1, 0x7c,0xba, +0x60,0x5, 0x3e,0xf4,0x14,0x78,0xfb,0x2d,0x3f,0xb, 0xa0,0xbc,0x5a,0x38,0xeb,0x7e, +0x7f,0x38,0xc8,0x79,0x37,0x0, 0x42,0x7d,0x34,0x2e,0x34,0x0, 0xc, 0x7e,0x7f,0x38, +0xc8,0x79,0x37,0x0, 0x16,0x22,0x6d,0x33,0x79,0x30,0x0, 0x40,0x7e,0xf, 0x38,0xc8, +0x79,0x30,0x0, 0x42,0x7e,0x1f,0x38,0xc8,0x79,0x41,0x0, 0x16,0x22,0x7c,0x17,0x7c, +0x3b,0x6d,0x33,0x7e,0x2f,0x38,0xc8,0x79,0x32,0x0, 0x40,0x7e,0x2f,0x38,0xc8,0x79, +0x32,0x0, 0x42,0x7e,0x7f,0x38,0xc8,0x69,0x57,0x0, 0x12,0x7c,0xab,0x69,0x37,0x0, +0x2, 0x1e,0x34,0x1e,0x34,0x1e,0x34,0x1e,0x34,0x1e,0x34,0x1e,0x34,0x1e,0x34,0x5e, +0x34,0x0, 0x3, 0x7c,0xb7,0x7e,0x44,0x0, 0x4, 0x60,0x5, 0x3e,0x44,0x14,0x78,0xfb, +0x7c,0x29,0xa, 0x22,0xa, 0x3a,0x12,0x1e,0xb9,0xa, 0x23,0x2d,0x32,0x7c,0xb7,0x7c, +0x61,0x6c,0x77,0xa, 0xb, 0x1e,0x4, 0x2d,0x3, 0x79,0x7, 0x0, 0xc, 0x7c,0x73,0xac, +0x72,0xa, 0x2a,0x12,0x1e,0xb9,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x16,0x6d,0x33, +0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x22,0x22,0xa9,0xd6,0xcb,0x69,0x30,0x0, 0x6, +0x7e,0x2f,0x39,0xd, 0x79,0x32,0x0, 0x4, 0x69,0x30,0x0, 0x8, 0x7e,0x2f,0x39,0xd, +0x79,0x32,0x0, 0x8, 0x29,0x70,0x0, 0x2, 0x7c,0x47,0x6c,0x55,0x29,0x70,0x0, 0x3, +0xa, 0x37,0x2d,0x32,0x7e,0x2f,0x39,0xd, 0x79,0x32,0x0, 0xc, 0x7e,0xb, 0x70,0x7c, +0x47,0x29,0x70,0x0, 0x1, 0xa, 0x37,0x2d,0x32,0x7e,0x2f,0x39,0xd, 0x79,0x32,0x0, +0xa, 0x29,0x70,0x0, 0x4, 0xa, 0x37,0x7e,0x2f,0x39,0xd, 0x79,0x32,0x0, 0xe, 0x29, +0xb0,0x0, 0x5, 0x54,0x1, 0x7c,0x2b,0x6c,0x33,0x7e,0x1f,0x39,0xd, 0x1b,0x1a,0x10, +0x7e,0x34,0x0, 0xc0,0x12,0xf, 0x45,0xa9,0xc6,0xcb,0x22,0xca,0x79,0x7c,0xab,0x5e, +0xa0,0x3, 0x6c,0x77,0x7e,0x50,0x2, 0xac,0x57,0x69,0xd0,0x0, 0xe, 0x69,0xc0,0x0, +0xc, 0x2d,0xd2,0x29,0x66,0x0, 0x1, 0xa, 0xf6,0x7d,0x4f,0x7c,0x89,0x6c,0x99,0x7d, +0xf4,0x7e,0x6b,0x60,0xa, 0x46,0x2d,0x4f,0x7e,0xf0,0xf0,0xac,0xfa,0x2d,0x27,0x7e, +0x7f,0x38,0xf3,0x2d,0xf2,0x79,0x47,0x2, 0x54,0xb, 0x70,0xbe,0x70,0xe, 0x40,0xc4, +0x69,0x40,0x0, 0x4, 0x7e,0xf0,0xf0,0xac,0xfa,0x7e,0x1f,0x38,0xf3,0x2d,0x37,0x79, +0x41,0x2, 0x50,0x69,0x30,0x0, 0x6, 0x74,0xf0,0xa4,0x7e,0xf, 0x38,0xf3,0x2d,0x15, +0x79,0x30,0x2, 0x52,0xda,0x79,0x22,0xa9,0xd6,0xcb,0xc2,0x19,0x69,0x30,0x0, 0x4, +0x7e,0x2f,0x39,0xd, 0x79,0x32,0x0, 0x4, 0x69,0x30,0x0, 0x6, 0x7e,0x2f,0x39,0xd, +0x79,0x32,0x0, 0x6, 0x69,0x30,0x0, 0x8, 0x7e,0x2f,0x39,0xd, 0x79,0x32,0x0, 0x8, +0x7e,0xb, 0x70,0x7c,0x47,0x6c,0x55,0x29,0x70,0x0, 0x1, 0xa, 0x37,0x2d,0x32,0x7e, +0x2f,0x39,0xd, 0x79,0x32,0x0, 0xc, 0x29,0x70,0x0, 0x2, 0xa, 0x37,0x7e,0x2f,0x39, +0xd, 0x79,0x32,0x0, 0xe, 0x29,0xb0,0x0, 0x3, 0x54,0x1, 0xa, 0x5b,0x7c,0xab,0xe4, +0x7e,0x1f,0x39,0xd, 0x1b,0x1a,0x50,0x69,0x30,0x0, 0xa, 0x12,0xf, 0x45,0xa9,0xc6, +0xcb,0x22,0x69,0x30,0x0, 0xae,0x7e,0x2f,0x38,0xc8,0x79,0x32,0x0, 0x6, 0x29,0x50, +0x0, 0xa6,0xa, 0x55,0x7d,0x23,0x1e,0x24,0x9d,0x25,0x7e,0x2f,0x38,0xc8,0x79,0x22, +0x0, 0x18,0x7d,0x23,0x1e,0x24,0x1b,0x25,0x7e,0x2f,0x38,0xc8,0x79,0x22,0x0, 0x38, +0x69,0x20,0x0, 0xfd,0x1e,0x34,0x9d,0x32,0x9e,0x34,0x0, 0xa, 0x7e,0x2f,0x38,0xc8, +0x79,0x32,0x0, 0x26,0x29,0x70,0x0, 0xa7,0xa, 0x37,0x7e,0x2f,0x38,0xc8,0x79,0x32, +0x0, 0x1a,0x29,0x70,0x0, 0xb, 0xa, 0x27,0x29,0x70,0x0, 0x4, 0x2d,0x32,0x7e,0x2f, +0x38,0xc8,0x79,0x32,0x0, 0x8, 0x2, 0x9, 0xa1,0xca,0x3b,0xf5,0x24,0x7f,0x41,0x7f, +0x30,0xe5,0x25,0x7e,0x8, 0x0, 0x26,0x12,0x1, 0x20,0xe5,0x24,0xbe,0xb0,0x23,0x28, +0x3, 0x75,0x24,0x23,0x6c,0xaa,0x80,0x36,0xa, 0x3a,0x2d,0x39,0x7d,0x28,0x7e,0x1b, +0xb0,0xbe,0xb1,0x26,0x40,0xd, 0x74,0x23,0xa, 0x4a,0x7f,0x3, 0x2d,0x14,0x7a,0xb, +0xb0,0x80,0x19,0x7e,0x1b,0xb0,0xa, 0x3b,0x2e,0x35,0x28,0x7a,0x71,0x82,0x7a,0x61, +0x83,0xe4,0x93,0xa, 0x4a,0x7f,0x13,0x2d,0x34,0x7a,0x1b,0xb0,0xb, 0xa0,0xe5,0x24, +0xbc,0xba,0x38,0xc4,0xda,0x3b,0x22,0xa9,0xd6,0xcb,0x69,0x20,0x0, 0x4, 0x7e,0x2f, +0x39,0xd, 0x79,0x22,0x0, 0x4, 0x69,0x20,0x0, 0x8, 0x7e,0x2f,0x39,0xd, 0x79,0x22, +0x0, 0x8, 0x7e,0xb, 0x50,0xa, 0x55,0x7c,0xab,0xe4,0x29,0x50,0x0, 0x1, 0xa, 0x25, +0x2d,0x25,0x7e,0x2f,0x39,0xd, 0x79,0x22,0x0, 0xc, 0x29,0x50,0x0, 0x2, 0xa, 0x25, +0x7e,0xf, 0x39,0xd, 0x79,0x20,0x0, 0xe, 0x7e,0xf, 0x39,0xd, 0x79,0x30,0x0, 0xa, +0x6d,0x11,0x7e,0x1f,0x39,0xd, 0x1b,0x1a,0x10,0x7e,0x34,0x0, 0x40,0x12,0xf, 0x45, +0xa9,0xc6,0xcb,0x22,0x7c,0xab,0x7e,0x34,0x0, 0x1, 0x7e,0xf, 0x38,0xf7,0x79,0x30, +0x0, 0xe, 0xc2,0x18,0xe4,0x7a,0xb3,0x38,0xf2,0x5e,0xa0,0x3, 0xa, 0x1a,0x3e,0x14, +0x7e,0x1f,0x38,0xc0,0x1b,0x1a,0x10,0x7e,0xf, 0x38,0xc0,0x2e,0x14,0x0, 0x84,0xb, +0xa, 0x30,0x4e,0x70,0x20,0x1b,0xa, 0x30,0x74,0x1, 0x12,0x13,0x56,0x7e,0xf, 0x38, +0xf7,0xb, 0xa, 0x30,0x4e,0x70,0xc, 0x1b,0xa, 0x30,0xa9,0xd3,0xcd,0x7e,0xf, 0x38, +0xf7,0xb, 0x15,0xb, 0xa, 0x30,0x4e,0x70,0x1, 0x1b,0xa, 0x30,0x22,0x7f,0x10,0xa9, +0xd6,0xcb,0x69,0x11,0x0, 0x2, 0x7e,0x2f,0x39,0xd, 0x79,0x12,0x0, 0x4, 0x69,0x11, +0x0, 0x4, 0x7e,0x2f,0x39,0xd, 0x79,0x12,0x0, 0x6, 0x69,0x11,0x0, 0x6, 0x7e,0x2f, +0x39,0xd, 0x79,0x12,0x0, 0x8, 0x7e,0x1b,0x30,0xa, 0x3, 0x7e,0x14,0x1, 0x0, 0xad, +0x10,0x29,0x71,0x0, 0x1, 0xa, 0x37,0x2d,0x31,0x7e,0xf, 0x39,0xd, 0x79,0x30,0x0, +0xc, 0x6d,0x11,0x7e,0x1f,0x39,0xd, 0x1b,0x1a,0x10,0x7e,0x34,0x0, 0x60,0x12,0xf, +0x45,0xa9,0xc6,0xcb,0x22,0xa9,0xd7,0xcb,0x7d,0x23,0x4e,0x50,0x1, 0x7e,0xf, 0x39, +0xd, 0xb, 0xa, 0x30,0x4d,0x32,0x1b,0xa, 0x30,0x80,0x1e,0x7e,0xf, 0x39,0xd, 0xb, +0xa, 0x30,0x7d,0x23,0x5e,0x24,0x0, 0x8, 0xbe,0x24,0x0, 0x8, 0x78,0xb, 0xa9,0xd7, +0xcb,0x4e,0x70,0x4, 0x1b,0xa, 0x30,0xd2,0x19,0x7e,0xf, 0x39,0xd, 0xb, 0xa, 0x30, +0x7d,0x23,0x5e,0x24,0x80,0x0, 0xbe,0x24,0x80,0x0, 0x78,0xcf,0x4e,0x60,0x40,0x1b, +0xa, 0x30,0x6d,0x11,0x7e,0x1f,0x39,0xd, 0x1b,0x1a,0x10,0x22,0xca,0x3b,0xf5,0x24, +0x7f,0x41,0x7f,0x30,0xe5,0x25,0x7e,0x8, 0x0, 0x26,0x12,0x1, 0x20,0x6c,0xaa,0x80, +0x36,0xa, 0x3a,0x2d,0x39,0x7d,0x28,0x7e,0x1b,0xb0,0xbe,0xb1,0x27,0x40,0xd, 0x74, +0x1c,0xa, 0x4a,0x7f,0x3, 0x2d,0x14,0x7a,0xb, 0xb0,0x80,0x19,0x7e,0x1b,0xb0,0xa, +0x3b,0x2e,0x35,0x2a,0x7a,0x71,0x82,0x7a,0x61,0x83,0xe4,0x93,0xa, 0x4a,0x7f,0x13, +0x2d,0x34,0x7a,0x1b,0xb0,0xb, 0xa0,0xe5,0x24,0xbc,0xba,0x38,0xc4,0xda,0x3b,0x22, +0x5, 0x63,0x31,0x20,0x18,0x13,0xf, 0xd, 0xc, 0xa, 0x9, 0x8, 0x7, 0x6, 0x5, 0x4, +0xca,0xf8,0x7d,0xe2,0x7d,0xd3,0x7c,0xfb,0xbe,0x30,0x1, 0x28,0x6, 0x7e,0xf4,0x0, +0x10,0x80,0xf, 0xbe,0x30,0x0, 0x28,0x6, 0x7e,0xf4,0x0, 0x8, 0x80,0x4, 0x7e,0xf4, +0x0, 0x4, 0x7d,0x1f,0x6d,0x0, 0x6d,0x33,0x7e,0x24,0x0, 0x10,0x12,0x1f,0x58,0x7f, +0x1, 0x7d,0x3d,0x6d,0x22,0x12,0x1e,0xeb,0x7d,0x1e,0x12,0x1f,0x5, 0x74,0x4, 0xac, +0xbf,0x7e,0xf, 0x38,0xc8,0x2d,0x15,0x79,0x30,0x0, 0x82,0x79,0x20,0x0, 0x80,0xda, +0xf8,0x22,0xca,0x7b,0xca,0x6b,0xca,0x5b,0xca,0x4b,0xca,0x2b,0xca,0x1b,0xca,0xb, +0xc0,0xd0,0xc0,0x83,0xc0,0x82,0xd2,0x18,0x7e,0xf, 0x38,0xf7,0xb, 0xa, 0x30,0x7c, +0x57,0x7a,0x53,0x38,0xf2,0x4e,0x70,0xc, 0x1b,0xa, 0x30,0xc2,0xc6,0x6d,0x33,0x7e, +0xf, 0x38,0xf7,0x79,0x30,0x0, 0xe, 0x12,0x12,0x9e,0x12,0x7f,0x5, 0xd0,0x82,0xd0, +0x83,0xd0,0xd0,0xda,0xb, 0xda,0x1b,0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda, +0x7b,0x32,0x74,0x3, 0x12,0x13,0x56,0xa9,0xd1,0xc4,0x7e,0xf, 0x38,0xc0,0x2e,0x14, +0x0, 0x84,0xb, 0xa, 0x30,0x4e,0x70,0x20,0x1b,0xa, 0x30,0x7e,0x14,0x0, 0x1, 0x7e, +0x1f,0x38,0xc0,0x1b,0x1a,0x10,0x7e,0xf, 0x38,0xc8,0xb, 0x16,0xb, 0xa, 0x30,0x4e, +0x70,0x1, 0x1b,0xa, 0x30,0xc2,0xb, 0xe4,0x7a,0xb3,0x38,0xd8,0x7e,0x1f,0x38,0xc0, +0xb, 0x1a,0x30,0x5e,0x34,0x0, 0x1, 0x78,0xf3,0x74,0x2, 0x2, 0x13,0x56,0x7c,0x6b, +0x6c,0xaa,0x80,0x17,0x7e,0x90,0x2, 0xac,0x9a,0x7e,0x7f,0x38,0xf3,0x2d,0xf4,0xb, +0x7a,0x20,0x7f,0x70,0x2d,0xf4,0x1b,0x7a,0x20,0xb, 0xa0,0xbc,0x7a,0x38,0xe5,0x6c, +0xaa,0x80,0x20,0x7e,0x50,0x2, 0xac,0x5a,0x7e,0x7f,0x38,0xf3,0x2d,0xf2,0x69,0x27, +0x0, 0x38,0xa, 0xf7,0xa, 0x4a,0x2d,0x4f,0x3e,0x44,0x7f,0x70,0x2d,0xf4,0x1b,0x7a, +0x20,0xb, 0xa0,0xbc,0x6a,0x38,0xdc,0x22,0xca,0x79,0x7c,0xab,0x5e,0xa0,0x3, 0x6c, +0x77,0x7e,0x50,0x2, 0xac,0x57,0x7f,0x60,0x2d,0xd2,0x29,0x66,0x0, 0x1, 0xa, 0xf6, +0x7d,0x4f,0x7c,0x89,0x6c,0x99,0x7d,0xf4,0x7e,0x6b,0x60,0xa, 0x46,0x2d,0x4f,0x7e, +0xf0,0xf0,0xac,0xfa,0x2d,0x27,0x7e,0x7f,0x38,0xf3,0x2d,0xf2,0x79,0x47,0x2, 0x54, +0xb, 0x70,0xbe,0x70,0xe, 0x40,0xca,0xda,0x79,0x22,0x29,0x50,0x0, 0xf5,0xac,0x5b, +0x7e,0xf, 0x38,0xc8,0x69,0x30,0x0, 0xc, 0xa, 0x56,0x3e,0x54,0xbe,0x24,0x2, 0x0, +0x40,0x4, 0x7e,0x24,0x1, 0xff,0xbd,0x25,0x28,0x1f,0x2e,0x14,0x0, 0xc, 0x6c,0x66, +0x1b,0xa, 0x30,0x1e,0x24,0x7c,0x45,0x6c,0x55,0x7e,0xf, 0x38,0xc8,0x2e,0x14,0x0, +0xc, 0xb, 0xa, 0x30,0x4d,0x32,0x1b,0xa, 0x30,0x22,0x7c,0x6b,0x6c,0xaa,0x7e,0x50, +0x28,0xac,0x57,0x7e,0x90,0x2, 0xac,0x9a,0x2d,0x42,0x7e,0x50,0xf0,0xac,0x56,0x2d, +0x24,0x7e,0x7f,0x38,0xf3,0x2d,0xf2,0x69,0x27,0x1, 0x8c,0x6c,0x44,0xa, 0x4a,0x7f, +0x60,0x2d,0xd4,0x7e,0x6b,0xb0,0x7c,0x8b,0x6c,0x99,0x4d,0x24,0x79,0x27,0x1, 0x8c, +0xb, 0xa0,0xbe,0xa0,0xe, 0x40,0xc7,0x22,0x7c,0x6b,0x6c,0xaa,0x7e,0x50,0x28,0xac, +0x57,0x7e,0x90,0x2, 0xac,0x9a,0x2d,0x42,0x7e,0x50,0xf0,0xac,0x56,0x2d,0x24,0x7e, +0x7f,0x38,0xf3,0x2d,0xf2,0x69,0x27,0x1, 0x8c,0x6c,0x55,0xa, 0x4a,0x7f,0x60,0x2d, +0xd4,0x7e,0x6b,0xb0,0xa, 0x4b,0x4d,0x24,0x79,0x27,0x1, 0x8c,0xb, 0xa0,0xbe,0xa0, +0xe, 0x40,0xc9,0x22,0xa9,0xd6,0xcb,0x54,0x3f,0x5e,0x70,0x1f,0x7c,0x2b,0x6c,0x33, +0x3e,0x14,0x3e,0x14,0x2e,0x14,0x0, 0x5, 0xa, 0x37,0x3e,0x34,0x3e,0x34,0x3e,0x34, +0x3e,0x34,0x3e,0x34,0x2d,0x31,0x7e,0xf, 0x39,0xd, 0x79,0x30,0x0, 0x2, 0x7e,0xf, +0x39,0xd, 0x79,0x20,0x0, 0x14,0xa9,0xc6,0xcb,0x22,0x7d,0x23,0x6c,0x66,0x7e,0x30, +0x2, 0xac,0x36,0x2e,0x14,0x20,0x8f,0x7a,0x31,0x82,0x7a,0x21,0x83,0xe4,0x93,0xa, +0x1b,0xbd,0x12,0x28,0x7, 0xb, 0x60,0xbe,0x60,0x14,0x40,0xe2,0x7e,0x70,0x2, 0xac, +0x67,0x2e,0x34,0x20,0x90,0x7a,0x71,0x82,0x7a,0x61,0x83,0xe4,0x93,0x22,0x7e,0xf, +0x38,0xc0,0x2e,0x14,0x0, 0x84,0xb, 0xa, 0x30,0x5e,0x70,0xdf,0x1b,0xa, 0x30,0x74, +0x3, 0x12,0x13,0x56,0x7e,0x14,0x0, 0x3, 0x7e,0x1f,0x38,0xc0,0x1b,0x1a,0x10,0x7e, +0x1f,0x38,0xc0,0xb, 0x1a,0x30,0x5e,0x34,0x0, 0x1, 0x78,0xf3,0xe4,0x2, 0x13,0x56, +0x2e,0x34,0x4, 0x0, 0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x60,0x7e,0x34,0x4, 0x0, +0x9d,0x32,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x62,0x7e,0x34,0x0, 0x1, 0x7e,0xf, +0x38,0xc8,0x79,0x30,0x0, 0x64,0xa, 0x3b,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x66, +0x22,0x7c,0xa5,0xbe,0x34,0x0, 0x0, 0x28,0x10,0xa, 0x1b,0x3e,0x14,0x7d,0x23,0x7c, +0x45,0x6c,0x55,0x2d,0x21,0xa, 0x3a,0x80,0x8, 0xa, 0x2b,0x3e,0x24,0x7c,0x67,0x6c, +0x77,0x2d,0x32,0x7e,0xf, 0x38,0xf7,0x79,0x30,0x0, 0x4, 0x22,0x7c,0xa7,0x7e,0x1f, +0x38,0xc0,0x69,0x41,0x0, 0x8a,0x5e,0x44,0x10,0xf, 0xa, 0x1a,0x3e,0x14,0x3e,0x14, +0x3e,0x14,0x3e,0x14,0xa, 0x5b,0xc4,0x23,0x54,0xe0,0x7c,0xab,0xe4,0x2d,0x51,0x4d, +0x45,0x79,0x41,0x0, 0x8a,0x22,0x7e,0xf, 0x38,0xc0,0x69,0x30,0x0, 0x84,0x5e,0x70, +0xe7,0x1b,0xb1,0x68,0xc, 0x14,0x68,0xc, 0xb, 0xb1,0x78,0x5, 0x4e,0x70,0x10,0x80, +0x3, 0x4e,0x70,0x8, 0x79,0x30,0x0, 0x84,0x22,0x7e,0x34,0x0, 0x1f,0x7e,0xf, 0x38, +0xc8,0x79,0x30,0x0, 0x4, 0xa9,0xd2,0xcd,0x7e,0xf, 0x38,0xc8,0xb, 0xa, 0x30,0x4e, +0x70,0x1, 0x1b,0xa, 0x30,0x22,0xbe,0xb0,0x0, 0x28,0xa, 0xa9,0xd7,0xca,0xa9,0xd3, +0xcb,0xa9,0xd2,0xcb,0x22,0xa9,0xc7,0xca,0xa9,0xc3,0xcb,0xa9,0xc2,0xcb,0x22,0x30, +0x4, 0xa, 0x54,0x3, 0xa, 0x3b,0x2e,0x34,0x2, 0x0, 0x80,0x2, 0x6d,0x33,0x7e,0xf, +0x38,0xc8,0x79,0x30,0x0, 0x3a,0x22,0x7e,0xf, 0x38,0xc0,0x69,0x30,0x0, 0x8a,0x60, +0x5, 0x4e,0x60,0x10,0x80,0x3, 0x5e,0x60,0xef,0x79,0x30,0x0, 0x8a,0x22,0xbe,0xb0, +0x0, 0x28,0x9, 0xa9,0xd6,0xca,0xd2,0xcd,0xa9,0xd1,0xcb,0x22,0xa9,0xc6,0xca,0xc2, +0xcd,0xa9,0xc1,0xcb,0x22,0x7e,0x34,0x0, 0xf, 0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, +0x4, 0xc2,0xc3,0xd2,0xeb,0x22,0x6, 0xe, 0x15,0x1a,0x1f,0x26,0x2b,0x2d,0x2e,0x2f, +0x2c,0x2a,0x24,0x1f,0x1a,0x14,0xf, 0x8, 0x3, 0x3, 0x6, 0xb, 0x10,0x15,0x1c,0x22, +0x28,0x2d,0x34,0x39,0x3d,0x40,0xe, 0x3, 0x0, 0x0, 0x0, 0x3, 0x8, 0xc, 0x11,0x16, +0x1c,0x23,0x2b,0x32,0x37,0x3c,0x40,0x45,0x4a,0x4d,0x4c,0x4b,0x4a,0x48,0x46,0x46, +0x45,0x45,0x44,0x44,0x43,0x44,0x45,0x78,0x65,0x55,0x2, 0xd, 0x14,0x1b,0x21,0x25, +0x2b,0x31,0x37,0x36,0x33,0x2d,0x28,0x20,0x19,0x14,0xd, 0x8, 0x1, 0x2, 0x5, 0xb, +0x10,0x18,0x1e,0x23,0x2a,0x30,0x35,0x3a,0x3e,0x3f,0x0, 0x1, 0x1, 0x0, 0x0, 0x0, +0x0, 0x0, 0x1, 0x4, 0x9, 0xf, 0x15,0x1d,0x24,0x2a,0x30,0x35,0x3b,0x3e,0x3f,0x40, +0x3f,0x3e,0x3d,0x3d,0x3c,0x3c,0x3b,0x3b,0x39,0x37,0x1a,0x2d,0x65,0x55,0x1b,0x29, +0x27,0x1e,0x14,0x11,0x1a,0x26,0x2e,0x37,0x3d,0x3f,0x3d,0x37,0x2e,0x21,0x16,0xc, +0x5, 0x1, 0x0, 0x0, 0x1, 0x3, 0xa, 0x13,0x1d,0x26,0x2e,0x33,0x38,0x3a,0x16,0x21, +0x2b,0x32,0x30,0x2a,0x27,0x2a,0x2f,0x2d,0x24,0x1a,0x10,0x7, 0x1, 0x0, 0x2, 0x7, +0x10,0x19,0x23,0x2d,0x36,0x41,0x49,0x4c,0x4a,0x45,0x3c,0x34,0x2a,0x27,0x51,0x71, +0x50,0x55,0x28,0x12,0x11,0x18,0x23,0x29,0x2b,0x2a,0x2e,0x35,0x3c,0x3e,0x3f,0x39, +0x31,0x28,0x1e,0x15,0xe, 0x6, 0x3, 0x1, 0x0, 0x0, 0x3, 0xc, 0x16,0x20,0x2b,0x32, +0x37,0x39,0x20,0x29,0x32,0x37,0x31,0x28,0x21,0x2a,0x31,0x2d,0x23,0x1b,0x13,0x8, +0x1, 0x0, 0x1, 0x5, 0xc, 0x18,0x20,0x29,0x34,0x3e,0x47,0x4f,0x50,0x4d,0x45,0x3c, +0x34,0x31,0x26,0xcb,0x50,0x55,0x1d,0x2f,0x2c,0x25,0x1a,0x1b,0x20,0x29,0x31,0x31, +0x2e,0x2d,0x35,0x3d,0x3f,0x3d,0x38,0x2c,0x22,0x15,0xd, 0x6, 0x1, 0x0, 0x1, 0x6, +0x10,0x1b,0x24,0x2f,0x38,0x3d,0xd, 0x1b,0x27,0x31,0x32,0x28,0x1e,0x14,0x15,0x1d, +0x28,0x31,0x34,0x2a,0x1f,0x14,0x9, 0x1, 0x0, 0x4, 0xd, 0x17,0x21,0x2c,0x35,0x40, +0x47,0x47,0x44,0x3c,0x34,0x30,0x1b,0x82,0x50,0x55,0x19,0x2e,0x2a,0x1f,0x18,0x1b, +0x22,0x2d,0x30,0x2e,0x2e,0x35,0x3d,0x3f,0x3d,0x3a,0x2f,0x24,0x18,0xf, 0x7, 0x1, +0x0, 0x0, 0x3, 0xb, 0x16,0x1e,0x29,0x32,0x3a,0x3d,0x11,0x1f,0x28,0x32,0x30,0x26, +0x1b,0x14,0x1c,0x25,0x2e,0x35,0x2e,0x23,0x19,0x11,0x4, 0x0, 0x1, 0x8, 0x10,0x1c, +0x25,0x30,0x38,0x40,0x42,0x3f,0x39,0x32,0x2c,0x27,0xc0,0xd1,0x50,0x55,0x18,0x2c, +0x29,0x1e,0x14,0x13,0x16,0x1e,0x29,0x30,0x2e,0x2c,0x2b,0x37,0x3d,0x3f,0x3e,0x39, +0x30,0x25,0x1b,0x10,0x8, 0x1, 0x0, 0x2, 0x9, 0x13,0x1f,0x2d,0x38,0x3c,0x11,0x1a, +0x23,0x2f,0x33,0x29,0x20,0x16,0xe, 0x13,0x1d,0x28,0x32,0x31,0x28,0x1e,0x16,0xb, +0x2, 0x0, 0x1, 0x8, 0x12,0x1e,0x29,0x33,0x3b,0x3f,0x3c,0x32,0x29,0x26,0x30,0x6e, +0x50,0x55,0x16,0x2b,0x24,0x17,0xd, 0xa, 0xe, 0x15,0x24,0x28,0x25,0x23,0x2b,0x36, +0x3b,0x3d,0x3b,0x37,0x2b,0x20,0x15,0xb, 0x4, 0x0, 0x0, 0x3, 0xe, 0x19,0x27,0x33, +0x3d,0x3f,0x13,0x21,0x2e,0x37,0x3a,0x31,0x27,0x1c,0x13,0x1c,0x28,0x34,0x3e,0x37, +0x2d,0x22,0x18,0xc, 0x1, 0x0, 0x3, 0xd, 0x18,0x25,0x31,0x3c,0x47,0x48,0x42,0x38, +0x2e,0x2a,0x31,0x62,0x50,0x55,0x35,0x2e,0x27,0x22,0x1f,0x1b,0x16,0x10,0xc, 0x8, +0x6, 0x4, 0x2, 0x0, 0x0, 0x0, 0x1, 0x3, 0x6, 0xb, 0xe, 0x12,0x17,0x1d,0x22,0x26, +0x2a,0x30,0x35,0x39,0x3d,0x3f,0x0, 0x0, 0x1, 0x4, 0x6, 0x8, 0xb, 0x10,0x16,0x1b, +0x1f,0x23,0x28,0x2d,0x32,0x36,0x3b,0x40,0x44,0x48,0x4a,0x4b,0x4c,0x4b,0x4a,0x48, +0x46,0x43,0x40,0x3e,0x3c,0x3a,0x3c,0x9c,0x34,0x55,0x9, 0x17,0x1d,0x26,0x2e,0x37, +0x3c,0x3f,0x3b,0x33,0x2b,0x22,0x1a,0x11,0xb, 0x5, 0x3, 0x1, 0x1, 0x0, 0x0, 0x0, +0x1, 0x6, 0xa, 0x11,0x19,0x22,0x2a,0x32,0x39,0x3d,0x30,0x30,0x2f,0x2c,0x26,0x1e, +0x17,0xd, 0x5, 0x0, 0x0, 0x1, 0x6, 0xe, 0x15,0x1e,0x26,0x2c,0x32,0x3a,0x41,0x48, +0x50,0x5b,0x61,0x64,0x64,0x60,0x5b,0x56,0x51,0x4f,0xd8,0x2c,0x33,0x55,0x26,0x1c, +0x19,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x17,0x17,0x15,0xf, 0x9, 0x4, 0x1, 0x0, +0x0, 0x0, 0x0, 0x1, 0x4, 0xb, 0x12,0x18,0x1f,0x28,0x31,0x37,0x3c,0x40,0x1, 0x7, +0xe, 0x14,0x1c,0x23,0x2c,0x34,0x3e,0x44,0x4c,0x54,0x5b,0x60,0x5d,0x55,0x4f,0x49, +0x43,0x3d,0x38,0x32,0x2b,0x26,0x22,0x1f,0x1e,0x1c,0x1c,0x1c,0x1c,0x1d,0x66,0x54, +0x74,0x55,0x3e,0x2c,0x21,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d, +0x1e,0x1e,0x1d,0x1a,0x11,0xc, 0x7, 0x2, 0x0, 0x0, 0x3, 0xa, 0x12,0x1c,0x23,0x2c, +0x38,0x40,0xc, 0x0, 0x6, 0xf, 0x17,0x22,0x29,0x32,0x3b,0x41,0x47,0x4f,0x55,0x5c, +0x66,0x71,0x79,0x3e,0x76,0x6d,0x64,0x5a,0x52,0x4b,0x42,0x39,0x35,0x33,0x32,0x32, +0x31,0x31,0xf3,0xdb,0x74,0x55,0x9, 0x7, 0x6, 0x6, 0x5, 0x5, 0x4, 0x4, 0x4, 0x4, +0x3, 0x2, 0x2, 0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xa, 0x10,0x14,0x1b,0x22, +0x28,0x2e,0x34,0x39,0x3d,0x40,0x0, 0xb, 0x11,0x16,0x1b,0x22,0x28,0x2c,0x33,0x39, +0x40,0x46,0x4d,0x52,0x56,0x5c,0x61,0x68,0x6d,0x73,0x73,0x71,0x71,0x71,0x70,0x70, +0x6f,0x6f,0x6f,0x6f,0x6d,0x6e,0x79,0x80,0x44,0x55,0x17,0x13,0x12,0x12,0x11,0x10, +0xf, 0xd, 0xc, 0xb, 0x9, 0x8, 0x7, 0x4, 0x3, 0x2, 0x1, 0x0, 0x0, 0x0, 0x1, 0x4, +0xb, 0x10,0x16,0x1d,0x24,0x29,0x31,0x39,0x3d,0x40,0x0, 0xe, 0x16,0x1a,0x1f,0x24, +0x29,0x2e,0x33,0x38,0x3e,0x43,0x47,0x50,0x55,0x59,0x62,0x69,0x6e,0x75,0x7c,0xff, +0x7d,0x7c,0x79,0x73,0x6d,0x68,0x60,0x5a,0x57,0x56,0x5d,0x8, 0x44,0x55,0x0, 0x7, +0xb, 0xd, 0x10,0x12,0x16,0x17,0x17,0x18,0x18,0x19,0x19,0x19,0x1c,0x1e,0x20,0x22, +0x23,0x25,0x27,0x29,0x2b,0x30,0x32,0x33,0x35,0x38,0x39,0x3b,0x3d,0x3f,0x3e,0x29, +0x1f,0x18,0xf, 0x7, 0x6, 0xc, 0x12,0x1d,0x25,0x2d,0x36,0x3e,0x3b,0x35,0x2c,0x26, +0x20,0x19,0x11,0xa, 0x3, 0x3, 0x9, 0x10,0x18,0x24,0x2c,0x33,0x3a,0x3e,0x60,0x9b, +0x32,0x55,0x0, 0x5, 0x5, 0x5, 0x4, 0x3, 0x2, 0x3, 0x5, 0x7, 0xa, 0xe, 0x11,0x19, +0x1b,0x1c,0x1d,0x1c,0x1c,0x1d,0x1f,0x22,0x25,0x2a,0x31,0x33,0x35,0x37,0x38,0x39, +0x3c,0x40,0x0, 0x12,0x1c,0x24,0x2b,0x34,0x3c,0x39,0x2f,0x29,0x21,0x16,0xf, 0xd, +0x14,0x1e,0x2a,0x33,0x31,0x27,0x20,0x18,0x10,0x7, 0xa, 0x10,0x1a,0x26,0x2f,0x37, +0x3d,0x3f,0xfb,0x8f,0x32,0x55,0x2c,0x23,0x1f,0x19,0x13,0xc, 0x7, 0x3, 0x0, 0x0, +0x0, 0x1, 0x5, 0xa, 0xf, 0x16,0x1d,0x23,0x2a,0x30,0x36,0x3b,0x3e,0x40,0x3f,0x3e, +0x3b,0x38,0x33,0x2f,0x2b,0x28,0x9, 0x1, 0x0, 0x1, 0x3, 0x9, 0xe, 0x14,0x1b,0x21, +0x27,0x2e,0x36,0x3b,0x3e,0x41,0x41,0x40,0x3d,0x3a,0x36,0x2f,0x2b,0x26,0x20,0x1c, +0x16,0x10,0xc, 0xa, 0x9, 0xb, 0x36,0xdc,0x30,0x55,0x1a,0x9, 0x5, 0x1, 0x0, 0x0, +0x0, 0x2, 0x5, 0x9, 0xf, 0x16,0x1c,0x22,0x2a,0x31,0x36,0x39,0x3c,0x3e,0x3f,0x3f, +0x3d,0x38,0x30,0x27,0x1f,0x18,0x12,0xb, 0x6, 0x5, 0x7, 0x12,0x19,0x22,0x2c,0x36, +0x3f,0x49,0x53,0x5c,0x63,0x66,0x64,0x5f,0x58,0x4c,0x43,0x3d,0x34,0x2b,0x22,0x1b, +0x15,0xb, 0x4, 0x0, 0x0, 0x1, 0x4, 0xb, 0x13,0x18,0xf1,0xc, 0x30,0x55,0x18,0x2c, +0x34,0x39,0x3c,0x3d,0x3f,0x3f,0x3f,0x3d,0x3b,0x36,0x30,0x2a,0x24,0x1c,0x16,0xd, +0x6, 0x1, 0x0, 0x0, 0x0, 0x1, 0x1, 0x3, 0x5, 0x9, 0xf, 0x17,0x1e,0x24,0x1, 0x2, +0x8, 0xe, 0x14,0x1a,0x21,0x28,0x30,0x37,0x40,0x49,0x50,0x55,0x59,0x5c,0x5c,0x58, +0x51,0x48,0x3f,0x38,0x31,0x2b,0x25,0x1d,0x17,0x11,0xa, 0x4, 0x1, 0x1, 0x9d,0xbf, +0x30,0x55,0x16,0x7, 0x2, 0x0, 0x0, 0x0, 0x0, 0x1, 0x4, 0x8, 0xe, 0x16,0x1f,0x28, +0x30,0x38,0x3c,0x3e,0x3f,0x40,0x3f,0x3f,0x3d,0x3b,0x37,0x32,0x2c,0x25,0x1d,0x16, +0xf, 0xc, 0x53,0x46,0x3e,0x35,0x2e,0x27,0x20,0x1a,0x14,0xd, 0x6, 0x1, 0x0, 0x0, +0x3, 0xa, 0x13,0x1a,0x20,0x27,0x2d,0x33,0x3a,0x40,0x48,0x4f,0x54,0x58,0x5a,0x5a, +0x58,0x57,0xc6,0x55,0x30,0x55,0x7, 0x1, 0x4, 0xa, 0x10,0x18,0x20,0x2a,0x32,0x38, +0x3c,0x3e,0x3f,0x3e,0x3d,0x3b,0x39,0x35,0x30,0x27,0x21,0x19,0x12,0xb, 0x6, 0x3, +0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x32,0x1d,0x12,0x9, 0x5, 0x1, 0x0, 0x0, 0x1, 0x5, +0xd, 0x17,0x20,0x2a,0x32,0x3b,0x45,0x4e,0x58,0x63,0x69,0x6b,0x6a,0x64,0x5d,0x57, +0x4f,0x47,0x40,0x38,0x32,0x2f,0x1a,0xb5,0x30,0x55,0x21,0x13,0xc, 0x8, 0x5, 0x2, +0x1, 0x0, 0x0, 0x1, 0x3, 0x8, 0xf, 0x17,0x1e,0x24,0x2b,0x32,0x39,0x3d,0x3e,0x3f, +0x3f,0x3d,0x3a,0x36,0x30,0x29,0x21,0x1a,0x16,0x13,0x5, 0x9, 0xe, 0x14,0x1a,0x22, +0x29,0x30,0x38,0x3f,0x47,0x4d,0x51,0x51,0x4f,0x4d,0x49,0x42,0x39,0x31,0x2b,0x25, +0x1e,0x17,0x10,0x8, 0x3, 0x0, 0x0, 0x1, 0x3, 0x5, 0xaf,0x13,0x30,0x55,0x38,0x3f, +0x3d,0x3a,0x36,0x2e,0x26,0x1f,0x14,0xb, 0x6, 0x2, 0x0, 0x0, 0x0, 0x1, 0x2, 0x5, +0x9, 0xe, 0x14,0x1c,0x23,0x2a,0x34,0x38,0x3a,0x3b,0x3d,0x3d,0x3d,0x3d,0x29,0x1a, +0x10,0x9, 0x4, 0x0, 0x0, 0x1, 0x4, 0xc, 0x14,0x1c,0x22,0x28,0x2f,0x37,0x3f,0x47, +0x4f,0x56,0x5a,0x5b,0x59,0x56,0x4e,0x47,0x40,0x37,0x30,0x28,0x22,0x1f,0x2a,0xa9, +0x30,0x55,0x3e,0x3b,0x38,0x33,0x2b,0x24,0x1d,0x16,0x10,0x7, 0x3, 0x1, 0x0, 0x0, +0x0, 0x1, 0x1, 0x3, 0x6, 0xc, 0x15,0x1c,0x23,0x29,0x2f,0x35,0x38,0x3b,0x3c,0x3e, +0x3f,0x3f,0x1f,0x10,0xa, 0x6, 0x0, 0x0, 0x0, 0x2, 0x4, 0xc, 0x12,0x18,0x1e,0x25, +0x2c,0x35,0x3c,0x42,0x4a,0x51,0x56,0x56,0x53,0x4e,0x49,0x40,0x3a,0x33,0x2c,0x25, +0x1f,0x1c,0xf9,0xa2,0x30,0x55,0x1f,0x2b,0x31,0x35,0x38,0x3b,0x3e,0x3f,0x3f,0x3d, +0x3a,0x34,0x2d,0x27,0x23,0x1d,0x17,0x10,0x9, 0x4, 0x1, 0x0, 0x0, 0x1, 0x3, 0x6, +0xa, 0xf, 0x15,0x1b,0x20,0x23,0x45,0x42,0x3e,0x38,0x34,0x2d,0x24,0x1c,0x15,0x11, +0xb, 0x6, 0x2, 0x0, 0x0, 0x0, 0x1, 0x3, 0x7, 0xd, 0x12,0x18,0x20,0x28,0x30,0x36, +0x3c,0x42,0x47,0x48,0x49,0x4a,0x65,0x9d,0x30,0x55,0x1c,0x2a,0x33,0x39,0x3c,0x3e, +0x3f,0x3f,0x3e,0x3d,0x3a,0x35,0x2e,0x28,0x23,0x1c,0x15,0xf, 0x9, 0x4, 0x1, 0x0, +0x0, 0x1, 0x1, 0x4, 0x8, 0xd, 0x13,0x19,0x1e,0x22,0x40,0x3e,0x3a,0x33,0x2f,0x29, +0x22,0x1b,0x15,0x10,0xa, 0x5, 0x1, 0x0, 0x0, 0x1, 0x2, 0x5, 0xa, 0x11,0x17,0x1c, +0x24,0x2a,0x30,0x35,0x3b,0x40,0x43,0x44,0x45,0x45,0xcb,0xc6,0x30,0x55,0x5, 0x3, +0x4, 0x7, 0xa, 0x10,0x17,0x21,0x28,0x2e,0x33,0x38,0x3c,0x3e,0x3f,0x3f,0x3e,0x3b, +0x38,0x31,0x29,0x21,0x18,0xf, 0x9, 0x4, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x26,0x35, +0x3d,0x45,0x4b,0x51,0x53,0x52,0x4f,0x4c,0x46,0x41,0x3b,0x34,0x2e,0x25,0x1e,0x17, +0x11,0x9, 0x3, 0x0, 0x0, 0x2, 0x6, 0xc, 0x12,0x18,0x1e,0x24,0x2c,0x31,0xf4,0xb6, +0x30,0x55,0xa, 0x5, 0x5, 0x5, 0x8, 0xf, 0x16,0x20,0x29,0x31,0x36,0x3a,0x3c,0x3e, +0x3f,0x3f,0x3e,0x3c,0x3a,0x33,0x2d,0x24,0x1c,0x14,0xf, 0x8, 0x4, 0x0, 0x0, 0x0, +0x1, 0x2, 0x35,0x46,0x4e,0x56,0x5d,0x65,0x68,0x66,0x60,0x57,0x4f,0x47,0x3f,0x37, +0x2e,0x25,0x1e,0x16,0x10,0x6, 0x2, 0x0, 0x1, 0x5, 0xb, 0x15,0x1d,0x28,0x2f,0x39, +0x41,0x45,0xf0,0xbc,0x30,0x55,0x7, 0x3, 0x3, 0x3, 0x4, 0x7, 0xf, 0x17,0x20,0x28, +0x30,0x36,0x3b,0x3d,0x3f,0x3f,0x3d,0x39,0x36,0x2d,0x25,0x1d,0x16,0xd, 0x8, 0x2, +0x0, 0x0, 0x1, 0x2, 0x3, 0x5, 0x2e,0x3f,0x48,0x50,0x59,0x5f,0x67,0x68,0x63,0x5d, +0x52,0x4a,0x3e,0x35,0x2b,0x20,0x18,0x10,0xa, 0x3, 0x0, 0x0, 0x1, 0x7, 0xe, 0x19, +0x22,0x2b,0x31,0x3a,0x42,0x47,0xef,0xc9,0x30,0x55,0x3b,0x3c,0x3c,0x3b,0x39,0x36, +0x2f,0x27,0x21,0x19,0x11,0xb, 0x5, 0x1, 0x0, 0x0, 0x1, 0x2, 0x4, 0x6, 0xa, 0x10, +0x16,0x1f,0x26,0x2d,0x33,0x39,0x3c,0x3e,0x3f,0x3f,0x22,0x31,0x3b,0x41,0x47,0x4d, +0x56,0x59,0x5a,0x58,0x55,0x51,0x4b,0x43,0x3d,0x35,0x29,0x20,0x18,0x11,0x9, 0x3, +0x0, 0x0, 0x1, 0x3, 0x7, 0xf, 0x15,0x1b,0x21,0x26,0x2b,0xa0,0x30,0x55,0x37,0x38, +0x37,0x34,0x2d,0x26,0x1c,0x16,0xe, 0x9, 0x4, 0x2, 0x0, 0x0, 0x0, 0x1, 0x2, 0x5, +0xa, 0x10,0x17,0x20,0x26,0x2e,0x35,0x3a,0x3c,0x3e,0x3f,0x3f,0x3e,0x3e,0x30,0x40, +0x49,0x50,0x59,0x5e,0x60,0x5d,0x56,0x50,0x47,0x41,0x39,0x33,0x2a,0x20,0x1a,0x10, +0xa, 0x5, 0x1, 0x0, 0x0, 0x3, 0x8, 0x10,0x17,0x1f,0x25,0x2f,0x38,0x3c,0x37,0xc3, +0x30,0x55,0x3b,0x3d,0x3d,0x3b,0x38,0x32,0x27,0x1c,0x13,0xe, 0x8, 0x3, 0x0, 0x0, +0x0, 0x1, 0x3, 0x7, 0xb, 0x12,0x18,0x20,0x28,0x31,0x39,0x3d,0x3f,0x40,0x3f,0x3f, +0x3e,0x3e,0x33,0x45,0x4e,0x57,0x5d,0x65,0x6c,0x6a,0x66,0x63,0x5c,0x53,0x4a,0x40, +0x38,0x2e,0x25,0x1a,0x11,0x8, 0x4, 0x0, 0x0, 0x2, 0x9, 0x10,0x19,0x21,0x2a,0x32, +0x39,0x3e,0x7, 0x90,0x30,0x55,0x39,0x2b,0x24,0x1c,0x15,0xe, 0x9, 0x6, 0x5, 0x6, +0x9, 0x10,0x19,0x22,0x27,0x2e,0x35,0x3b,0x3e,0x3f,0x3d,0x38,0x32,0x2c,0x26,0x1f, +0x19,0x13,0xb, 0x5, 0x1, 0x0, 0x6, 0x0, 0x1, 0x2, 0x6, 0xb, 0x11,0x17,0x1d,0x24, +0x2a,0x2f,0x32,0x34,0x35,0x36,0x37,0x3b,0x41,0x47,0x4e,0x56,0x5d,0x61,0x64,0x65, +0x65,0x63,0x60,0x5c,0x57,0x54,0xd1,0x4a,0x46,0x55,0x0, 0x1, 0x3, 0x5, 0x7, 0x8, +0xa, 0xb, 0xc, 0xe, 0xf, 0x11,0x12,0x14,0x16,0x1a,0x1e,0x22,0x24,0x27,0x2a,0x2c, +0x2e,0x31,0x33,0x36,0x38,0x3a,0x3c,0x3e,0x3f,0x3f,0x1, 0xe, 0x14,0x1b,0x23,0x28, +0x2e,0x35,0x3a,0x40,0x48,0x4f,0x56,0x5d,0x62,0x61,0x5a,0x53,0x4e,0x47,0x40,0x3b, +0x35,0x2d,0x29,0x22,0x1b,0x17,0x10,0x9, 0x5, 0x1, 0x6d,0x7d,0x54,0x55,0x0, 0x2, +0x3, 0x5, 0x6, 0x8, 0xb, 0x10,0x13,0x16,0x17,0x19,0x1b,0x1d,0x1f,0x21,0x22,0x22, +0x22,0x22,0x23,0x25,0x28,0x2e,0x31,0x34,0x36,0x38,0x3a,0x3c,0x3e,0x3f,0x6, 0x17, +0x20,0x27,0x30,0x38,0x3e,0x39,0x32,0x2b,0x25,0x1e,0x18,0x10,0x9, 0x9, 0x10,0x18, +0x1f,0x26,0x2f,0x36,0x3c,0x38,0x2f,0x27,0x1f,0x18,0xf, 0x8, 0x1, 0x2, 0xc7,0x75, +0x31,0x55,0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x3, 0x8, 0xd, 0x12,0x15,0x17,0x18,0x1a, +0x1b,0x1c,0x1d,0x1d,0x1e,0x1f,0x22,0x27,0x2e,0x35,0x38,0x3b,0x3d,0x3e,0x3f,0x40, +0x3f,0x3e,0x6, 0x15,0x1b,0x23,0x29,0x2f,0x37,0x3c,0x37,0x2e,0x27,0x20,0x1a,0x13, +0xe, 0x14,0x1a,0x21,0x27,0x2f,0x38,0x3f,0x3d,0x35,0x2e,0x26,0x20,0x18,0x11,0xb, +0x3, 0x0, 0x67,0x3f,0x31,0x55,0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, +0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0x10,0x11,0x12,0x13,0x14,0x1c,0x1d,0x1e,0x1f,0x20, +0x21,0x22,0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0x10,0x11, +0x12,0x13,0x14,0x15,0x16,0x17,0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0xe, +0xf, 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x0, 0x1, 0x2, 0x3, 0x4, 0x1c,0x1d,0x1e, +0x1f,0x20,0x0, 0x1, 0x2, 0x3, 0xe, 0xf, 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, +0x18,0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0x10,0x11, +0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x6, 0x5, 0x4, 0x3, 0x2, 0x1, +0x0, 0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x0, 0x0, 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, +0x7, 0x8, 0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, +0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0x10,0x11,0x12,0x13,0x14,0x15,0x16, +0x17,0x18,0x19,0x1a,0x1b,0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, +0xb, 0xc, 0xd, 0xe, 0xf, 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a, +0x1b,0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,0x0, 0x1, 0x1, 0x1, 0x10,0x1c,0x2, 0x10, +0x1c,0x0, 0x1, 0x1, 0x4, 0xf, 0x1c,0x0, 0x1, 0x1, 0x6, 0x1b,0xf, 0x7, 0xe, 0x1c, +0x8, 0x23,0x15,0x0, 0x1, 0x1, 0xa, 0x10,0x19,0xb, 0x14,0x1c,0xc, 0xf, 0x18,0x0, +0x1, 0x1, 0xe, 0x23,0x15,0xf, 0xd, 0x19,0x0, 0x1, 0x1, 0x11,0xd, 0x14,0x12,0x10, +0x19,0x13,0x1c,0x10,0x14,0x1a,0x10,0x15,0x10,0x19,0x16,0x23,0x1c,0x72,0x23,0x15, +0x73,0x23,0x1c,0x74,0x23,0x1c,0x75,0xe, 0x1c,0xc2,0xd5,0x7c,0xb4,0x30,0xe7,0x8, +0xb2,0xd5,0x6e,0x24,0xff,0xff,0xb, 0x24,0x7c,0xb6,0x30,0xe7,0x12,0xb2,0xd5,0x6e, +0x34,0xff,0xff,0xb, 0x34,0x8d,0x32,0x6e,0x24,0xff,0xff,0xb, 0x24,0x80,0x2, 0x8d, +0x32,0x30,0xd5,0x6, 0x6e,0x34,0xff,0xff,0xb, 0x34,0x22,0x7d,0x51,0xad,0x3, 0x7d, +0x2, 0x7d,0x21,0xad,0x5, 0x2d,0x12,0xad,0x35,0x2d,0x21,0x22,0x7d,0x2, 0xad,0x31, +0xad,0x10,0x2d,0x21,0x22,0x6d,0x0, 0x74,0x10,0x4d,0x0, 0x78,0xb, 0x4d,0x22,0x78, +0x27,0x8d,0x31,0x7d,0x12,0x6d,0x22,0x22,0x7d,0x43,0x7d,0x32,0x6d,0x22,0x2f,0x11, +0x2d,0x44,0x50,0x2, 0xa5,0xf, 0xbf,0x10,0x40,0x4, 0x9f,0x10,0xb, 0x90,0x14,0x78, +0xed,0x7f,0x1, 0x6d,0x22,0x7d,0x34,0x22,0x7d,0x41,0x7d,0x13,0x8d,0x24,0x7d,0x2, +0x2f,0x0, 0x40,0x4, 0xbd,0x4, 0x40,0x4, 0x9d,0x4, 0xb, 0x14,0x14,0x78,0xf1,0x7d, +0x23,0x7d,0x31,0x7d,0x10,0x6d,0x0, 0x22,0xc2,0xd5,0x7c,0xb0,0x30,0xe7,0x8, 0xb2, +0xd5,0x9f,0x22,0x9f,0x20,0x7f,0x2, 0x7c,0xb4,0x30,0xe7,0x13,0xb2,0xd5,0x9f,0x22, +0x9f,0x21,0x7f,0x12,0x12,0x1f,0x7, 0x9f,0x22,0x9f,0x20,0x7f,0x2, 0x80,0x3, 0x12, +0x1f,0x7, 0x30,0xd5,0x6, 0x9f,0x22,0x9f,0x21,0x7f,0x12,0x22,0x6c,0xaa,0x4d,0x11, +0x68,0x1a,0x1e,0x54,0x68,0xe, 0xb, 0x38,0x20,0x1b,0x18,0x20,0xb, 0x35,0xb, 0x15, +0x1b,0x54,0x78,0xf2,0x50,0x6, 0x7e,0x39,0x40,0x7a,0x19,0x40,0x22,0x6c,0xaa,0x4d, +0x11,0x68,0x1e,0x1e,0x54,0x50,0xc, 0x7e,0x1b,0x0, 0x7a,0x19,0x0, 0x68,0x12,0xb, +0x1c,0xb, 0x14,0xb, 0x1a,0x0, 0x1b,0x18,0x0, 0xb, 0x1d,0xb, 0x15,0x1b,0x54,0x78, +0xf2,0x22,0x75,0x84,0x1, 0x7e,0x44,0x3f,0xff,0xe4,0x7a,0x49,0xb0,0x1b,0x44,0x78, +0xf9,0x7e,0xf8,0x39,0x13,0x75,0xc, 0x0, 0x75,0xd, 0x0, 0x75,0xe, 0x2, 0x75,0xf, +0x0, 0xc2,0x6, 0xc2,0x7, 0x75,0x1b,0x0, 0xc2,0xc, 0xc2,0xd, 0xc2,0xf, 0x75,0x1c, +0x0, 0x75,0x1d,0x0, 0xc2,0x8, 0xc2,0x9, 0x75,0x1e,0x0, 0xc2,0x11,0x75,0x1f,0x0, +0xc2,0x13,0x75,0x4c,0x0, 0xc2,0x14,0x75,0x4d,0x64,0xc2,0x15,0xc2,0x16,0xc2,0x17, +0x75,0x4e,0x0, 0xd2,0x0, 0xd2,0x1, 0xd2,0x2, 0xd2,0x18,0xc2,0xa, 0xd2,0xb, 0x7e, +0x4, 0x0, 0xff,0x7e,0x14,0x21,0x10,0xb, 0xa, 0x40,0x5d,0x44,0x68,0x1a,0x69,0x20, +0x0, 0x2, 0xb, 0xe, 0xb, 0x44,0x80,0xa, 0x7e,0xb, 0xb0,0x7a,0x29,0xb0,0xb, 0x24, +0xb, 0xc, 0x1b,0x44,0x78,0xf2,0x80,0xdf,0x2, 0x36,0x72,0x0, 0x0, 0x0, 0x47,0x0, +0xcb,0x1, 0x0, 0x0, 0x10,0xfd,0xc7,0xfb,0x7e,0xfb,0xfb,0x1, 0xbb,0xc, 0x9e,0x19, +0x0, 0x21,0x45,0x0, 0xe, 0x1, 0xf, 0x2, 0x10,0x3, 0x11,0x4, 0x12,0x5, 0x13,0x6, +0x14,0x7, 0x15,0x8, 0x16,0x9, 0x17,0xa, 0x18,0xb, 0x19,0xc, 0x1a,0xd, 0x1b,0xdf, +0x22,0xc3,0x21,0xa9,0x20,0x94,0x1f,0x81,0x1e,0x70,0x1d,0x62,0x1c,0x55,0x1b,0x4a, +0x1a,0x41,0x19,0x38,0x18,0x31,0x17,0x2b,0x16,0x25,0x15,0x21,0x14,0x1c,0x13,0x19, +0x12,0x16,0x11,0x13,0x10,0x11,0xf, 0x10,0xe, 0xca,0xf8,0x7f,0x20,0x80,0xa, 0x7e, +0x1b,0xf0,0x7a,0x2b,0xf0,0xb, 0x34,0xb, 0x54,0x69,0xff,0xff,0xfc,0x7d,0xef,0x1b, +0xe4,0x79,0xef,0xff,0xfc,0x4d,0xff,0x78,0xe6,0x7f,0x10,0xda,0xf8,0x22,0x7d,0x43, +0x7f,0x10,0x80,0x7, 0x1b,0x44,0x7a,0xb, 0xb0,0xb, 0x14,0x4d,0x44,0x78,0xf5,0x22, +0xff,0x0, 0x1, 0x2, 0x0, 0xff,0x1, 0x2, 0x0, 0x1, 0xff,0x2, 0x0, 0x1, 0x2, 0xff, +0x7d,0x23,0xbe,0x24,0x0, 0x0, 0x48,0x3, 0x7d,0x32,0x22,0x6d,0x33,0x9d,0x32,0x22, +0x0, 0x4, 0x31,0xd0,0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x33,0xff,0x1, 0x0, 0x1, 0x25, +0xf6,0x1, 0x0, 0x1, 0x37,0x9b,0x0, 0x0, 0x2, 0x37,0xed,0x0, 0x0, 0x0, 0x2, 0x37, +0xef,0x0, 0x0, 0x0, 0x1, 0x37,0xf1,0x0, 0x0, 0x1, 0x34,0x4f,0x0, 0x0, 0x1, 0x39, +0x11,0x0, 0x0, 0x1, 0x34,0x8a,0x0, 0x0, 0x2, 0x34,0x9f,0x0, 0x0, 0x0, 0x1, 0x34, +0xa1,0x0, 0x0, 0x1, 0x34,0xaf,0x0, 0x0, 0x1, 0x34,0xc4,0x0, 0x0, 0x1, 0x34,0xc5, +0x0, 0x0, 0x1, 0x35,0x3e,0x0, 0x0, 0x1, 0x35,0x3f,0x1, 0x0, 0x1, 0x35,0x40,0x0, +0x0, 0x3c,0x35,0xe9,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x1, 0x36,0x61,0x0, 0x0, 0x1, 0x36,0x62,0x0, 0x0, 0x1, 0x36,0x63,0x0, 0x0, +0x1, 0x35,0xe2,0x1, 0x0, 0x2, 0x35,0xe5,0x0, 0x0, 0x0, 0x1, 0x2f,0xa9,0x0, 0x0, +0x1, 0x2f,0xaa,0x0, 0x0, 0x1, 0x2f,0xab,0x0, 0x0, 0x1, 0x2f,0xac,0x0, 0x0, 0x1, +0x36,0x66,0x1, 0x0, 0x1, 0x36,0xe0,0x0, 0x0, 0x1, 0x39,0x12,0x0, 0x0, 0x6, 0x38, +0xfb,0x3f,0x1f,0x50,0x11,0x20,0x10,0x0, 0x1, 0x39,0x1, 0x24,0x0, 0x1, 0x39,0x8, +0x0, 0x0, 0x1, 0x39,0x9, 0x0, 0x0, 0x1, 0x39,0xa, 0x0, 0x0, 0x1, 0x39,0xb, 0x0, +0x0, 0x1, 0x39,0xc, 0x0, 0x0, 0x1, 0x0, 0x4f,0x0, 0x0, 0x1, 0x3, 0xec,0x0, 0x0, +0x4, 0x37,0x40,0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x39,0x2, 0x0, 0x0, 0x1, 0x39,0x3, +0x0, 0x0, 0x2, 0x39,0x4, 0x0, 0x0, 0x0, 0x1, 0x39,0x6, 0x64,0x0, 0x1, 0x39,0x7, +0x0, 0x0, 0x1, 0x39,0x13,0x0, 0x0, 0x1, 0x3, 0xfe,0x0, 0x0, 0x1, 0x3, 0xff,0x0, +0x0, 0x2, 0x2b,0xb9,0x2b,0xbf,0x0, 0x1, 0x2f,0x7f,0x2, 0x0, 0x1, 0x2f,0xa8,0x0, +0x0, 0x1, 0x38,0xdd,0x0, 0x0, 0x1, 0x38,0x3e,0xff,0x0, 0x1, 0x38,0x3f,0x0, 0x0, +0x1, 0x38,0x40,0x0, 0x0, 0x1, 0x38,0x41,0x40,0x0, 0x1, 0x38,0x42,0x40,0x0, 0x4, +0x38,0xf3,0x0, 0x0, 0x50,0x0, 0x0, 0x4, 0x38,0xf7,0x0, 0x0, 0x64,0x0, 0x0, 0x4, +0x38,0xc0,0x0, 0x0, 0x6c,0x0, 0x0, 0x4, 0x38,0xc4,0x0, 0x0, 0x68,0xc0,0x0, 0x4, +0x38,0xc8,0x0, 0x0, 0x68,0x0, 0x0, 0x4, 0x38,0xd9,0x0, 0x0, 0x40,0x0, 0x0, 0x4, +0x39,0xd, 0x0, 0x0, 0x60,0x0, 0x0, 0x0, 0x3, 0x20,0x0, 0xc, 0x1, 0xf4,0x2, 0x58, +0x0, 0xc, 0x1, 0x5e,0x1, 0xc2,0x0, 0xa, 0x0, 0xc8,0x1, 0x40,0x0, 0x5, 0x0, 0x78, +0x0, 0xc8,0x0, 0x4, 0x0, 0x3c,0x0, 0x78,0x0, 0x3, 0x0, 0xa, 0x0, 0x3c,0x0, 0x2, +0x0, 0x0, 0x0, 0xe, 0x1c,0x23,0x5, 0xdc,0x0, 0x32,0x3, 0xe8,0x0, 0x28,0x0, 0x0, +0x0, 0x1e,0x12,0x3f,0x13,0x12,0x69,0x8e,0x12,0x23,0xb, 0x12,0x28,0x48,0x12,0x8d, +0xec,0x2, 0x23,0x4, 0x74,0x1, 0x7a,0xb3,0x36,0x6a,0x22,0x12,0x73,0x71,0x12,0x23, +0x40,0x2, 0x23,0x14,0x7e,0x34,0x0, 0x3, 0x6d,0x22,0x2, 0x23,0x1d,0x7d,0x43,0x7e, +0xa3,0x34,0x38,0xbe,0xa0,0x5, 0x50,0x16,0x7e,0x70,0x4, 0xac,0x7a,0x59,0x43,0x34, +0x3b,0x59,0x23,0x34,0x3d,0x7c,0xba,0x4, 0x7a,0xb3,0x34,0x38,0xc3,0x22,0xd3,0x22, +0x6d,0x33,0x7e,0x24,0x6, 0xfc,0x12,0x23,0x1d,0x7e,0x34,0x0, 0x1, 0x7e,0x24,0x7, +0x7a,0x2, 0x23,0x1d,0x7e,0x34,0x60,0xa3,0x12,0x23,0x9e,0x12,0x26,0x5b,0x12,0x46, +0xa2,0x12,0x73,0x28,0x12,0x3f,0x13,0x12,0x69,0x87,0x12,0xc0,0x5, 0x12,0x23,0xb, +0x12,0x28,0x48,0x12,0x68,0x23,0x12,0x8d,0xec,0x2, 0x23,0x4, 0x7e,0x34,0x61,0x4f, +0x7e,0x24,0x0, 0xff,0xb, 0x1a,0x30,0x7a,0x37,0x2a,0x5a,0x7e,0x34,0x61,0x51,0x7e, +0x24,0x0, 0xff,0xb, 0x1a,0x30,0x7a,0x37,0x2a,0x5c,0x7e,0x34,0x61,0x53,0x7e,0x24, +0x0, 0xff,0xb, 0x1a,0x30,0x22,0x7e,0x34,0x61,0x55,0x12,0x23,0x9e,0x7a,0x37,0x28, +0x95,0x7e,0x34,0x61,0xba,0x12,0x23,0x9e,0x7a,0x37,0x28,0x99,0x7e,0x34,0x61,0xb8, +0x12,0x23,0x9e,0x7a,0x37,0x28,0x97,0x7e,0x34,0x62,0x12,0x12,0x23,0x9e,0x7a,0x37, +0x28,0x9b,0x7e,0x34,0x61,0xbc,0x12,0x23,0x9e,0x7a,0x37,0x28,0x9d,0x7e,0x34,0x61, +0xbe,0x12,0x23,0x9e,0x7a,0x37,0x28,0x9f,0x7e,0x34,0x61,0xc0,0x12,0x23,0x9e,0x12, +0xc0,0x87,0x12,0x23,0x9e,0x7a,0x37,0x28,0xa3,0x90,0x61,0xc4,0xe4,0x93,0x7a,0xb3, +0x28,0xa5,0xe4,0x7a,0xb3,0x28,0xa8,0x12,0x2f,0xdd,0x3e,0x34,0x7e,0x8, 0x25,0xf7, +0xe4,0x2, 0x20,0xde,0x12,0x25,0xc3,0x7e,0xb3,0x36,0x71,0xb4,0x1, 0x16,0x7e,0x34, +0x62,0x34,0x12,0x23,0x9e,0x7a,0x37,0x2a,0x5a,0x7e,0x34,0x62,0x36,0x12,0x23,0x9e, +0x7a,0x37,0x2a,0x5c,0x7e,0xb3,0x28,0xa8,0xb4,0x1, 0x37,0x7e,0x34,0x62,0x3e,0x12, +0x23,0x9e,0x7a,0x37,0x2a,0x5a,0x7e,0x34,0x62,0x40,0x12,0x23,0x9e,0x7a,0x37,0x2a, +0x5c,0x7e,0x34,0x62,0x42,0x12,0x23,0x9e,0x7a,0x37,0x2a,0x4f,0x7e,0x34,0x62,0x44, +0x12,0x23,0x9e,0x7a,0x37,0x2a,0x51,0x7e,0x34,0x62,0x46,0x12,0x23,0x9e,0x7a,0x37, +0x2a,0x53,0x7e,0xb3,0x2a,0x2, 0x70,0x21,0x7e,0x27,0x2a,0x5a,0x7d,0x32,0x7e,0x14, +0x0, 0x4, 0xad,0x13,0x7d,0x31,0x12,0x25,0x3c,0xbe,0x34,0x0, 0x50,0x28,0x4, 0x7e, +0x34,0x0, 0x50,0x2d,0x32,0x7a,0x37,0x2a,0x5a,0x22,0x7e,0x54,0x0, 0x54,0x7e,0x44, +0x0, 0xff,0x69,0x32,0x0, 0x4, 0x69,0x22,0x0, 0x2, 0xb, 0x2a,0x10,0x7a,0x1d,0x26, +0x7a,0x15,0x24,0x7e,0x34,0x0, 0x20,0x7e,0x8, 0x0, 0x24,0x7e,0x24,0x0, 0x6, 0x12, +0xb7,0x9d,0x7e,0x34,0x61,0x4f,0x12,0x23,0x9e,0x1e,0x34,0x1e,0x34,0x7a,0x73,0x36, +0xe1,0x7e,0x34,0x61,0x51,0x12,0x23,0x9e,0xe, 0x34,0xe, 0x34,0x7a,0x73,0x36,0xe2, +0x7e,0x34,0x61,0x55,0x12,0x23,0x9e,0x12,0x25,0x3c,0x7a,0x73,0x36,0xe3,0x7e,0x34, +0x61,0x57,0x12,0x23,0x9e,0x12,0x25,0x3c,0x7a,0x73,0x36,0xe4,0x7e,0x34,0x61,0x59, +0x12,0x23,0x9e,0x12,0x25,0x3c,0x7a,0x73,0x36,0xe5,0x7e,0x34,0x61,0x5b,0x12,0x23, +0x9e,0x12,0x25,0x3c,0x7a,0x73,0x36,0xe6,0x7e,0x34,0x0, 0x59,0xca,0x39,0x7e,0x34, +0x61,0x5f,0x7e,0x24,0x0, 0xff,0x7e,0x8, 0x36,0xe7,0x12,0x20,0xb9,0x1b,0xfd,0xe5, +0x25,0x7a,0xb3,0x37,0x12,0xe5,0x28,0x7a,0xb3,0x37,0x1, 0x22,0x1e,0x34,0x1e,0x34, +0x1e,0x34,0x1e,0x34,0x22,0x90,0x60,0x99,0xe4,0x93,0x7a,0xb3,0x2a,0x4d,0x90,0x60, +0x9e,0xe4,0x93,0x7a,0xb3,0x2a,0x4e,0x7e,0x34,0x61,0x55,0x12,0x23,0x9e,0x12,0xc0, +0x7e,0x12,0x23,0x9e,0x7a,0x37,0x2a,0x51,0x7e,0x14,0x61,0x59,0x7e,0x4, 0x0, 0xff, +0xb, 0xa, 0x20,0x7a,0x27,0x2a,0x53,0x7a,0x37,0x2a,0x55,0x90,0x60,0x9d,0xe4,0x93, +0x7a,0xb3,0x2a,0x59,0x12,0x23,0x7c,0x12,0xc0,0x35,0x7e,0x34,0x62,0x12,0x12,0x23, +0x9e,0x7a,0x37,0x2a,0x60,0x90,0x60,0x9f,0xe4,0x93,0x7a,0xb3,0x2a,0x64,0x90,0x60, +0xa0,0xe4,0x93,0x7a,0xb3,0x2a,0x65,0x7e,0x34,0x60,0xa1,0x12,0x23,0x9e,0x7a,0x37, +0x2a,0x66,0x7e,0x34,0x61,0x5b,0x12,0x23,0x9e,0x7a,0x37,0x2a,0x62,0xe4,0x7a,0xb3, +0x16,0x92,0x22,0x12,0x23,0x7c,0x12,0xc0,0x35,0x7e,0x34,0x61,0x55,0x12,0x23,0x9e, +0x12,0xc0,0x7e,0x12,0x23,0x9e,0x7a,0x37,0x2a,0x51,0x7e,0x34,0x61,0x59,0x12,0x23, +0x9e,0x7a,0x37,0x2a,0x53,0x22,0xca,0xf8,0x7e,0xf3,0x37,0xa0,0xbe,0xf0,0x5, 0x78, +0xb, 0x74,0x1, 0x7a,0xb3,0x37,0xa0,0x12,0x0, 0x9, 0x80,0x52,0xbe,0xf0,0x4, 0x78, +0x13,0x12,0xbf,0xe0,0x12,0x23,0x9e,0x12,0x26,0x5b,0xe4,0x7a,0xb3,0x2b,0x2, 0x12, +0x7a,0x2d,0x80,0x3a,0xbe,0xf0,0x6, 0x78,0x19,0x12,0xbf,0xe0,0x12,0x23,0x9e,0x12, +0x26,0x5b,0x12,0x49,0xd, 0xe4,0x7a,0xb3,0x2b,0x1e,0x12,0x69,0xab,0x12,0xc0,0xd7, +0x80,0x1c,0xbe,0xf0,0x7, 0x78,0x1d,0x12,0xbf,0xe0,0x12,0x23,0x9e,0x12,0x26,0x5b, +0x12,0x2f,0xf4,0x50,0xfb,0x12,0x88,0x17,0x12,0x69,0x97,0x12,0x28,0x48,0x74,0x2, +0x7a,0xb3,0x37,0xa0,0xda,0xf8,0x22,0x7e,0x34,0x3, 0xe8,0x6d,0x22,0x7a,0x27,0x3, +0xed,0x7a,0x37,0x3, 0xef,0x22,0x7e,0xb3,0x37,0x6, 0x14,0x68,0x60,0x14,0x78,0x2, +0xe1,0x10,0x14,0x68,0x73,0x24,0x3, 0x68,0x2, 0xe1,0x5, 0x12,0xc1,0xf, 0x38,0x8, +0x30,0x10,0xf, 0x12,0xc1,0x7, 0x68,0xa, 0x12,0x63,0x2, 0xe4,0x7a,0xb3,0x38,0x85, +0x80,0x7e,0x7e,0xb3,0x36,0xe7,0x30,0xe0,0x77,0x7e,0x73,0x36,0xe8,0xa, 0x27,0x7e, +0x34,0x4, 0x0, 0xad,0x32,0x7e,0xb3,0x37,0x31,0xb4,0x1, 0xb, 0x7e,0x34,0x62,0x64, +0x12,0x23,0x9e,0x2e,0x34,0x4, 0x0, 0xbe,0x37,0x38,0x83,0x50,0x53,0x12,0x63,0x2, +0x74,0x1, 0x7a,0xb3,0x37,0x6, 0xe4,0x7a,0xb3,0x38,0x87,0x80,0x43,0x12,0xc1,0xf, +0x28,0x39,0xe4,0x7a,0xb3,0x37,0x6, 0x7e,0xb3,0x38,0x85,0xb4,0x1, 0x6, 0x74,0x1, +0x7a,0xb3,0x37,0x6, 0xd2,0x17,0x80,0x23,0x7e,0x34,0x60,0xa5,0x12,0x23,0x9e,0x12, +0x26,0x5b,0x12,0x45,0x73,0x12,0x23,0x54,0xe4,0x7a,0xb3,0x37,0x6, 0x7a,0xb3,0x39, +0x7, 0xd2,0x17,0x80,0xb, 0x74,0x1, 0x7a,0xb3,0x37,0x6, 0xe4,0x7a,0xb3,0x39,0x7, +0x12,0x90,0xd2,0x2, 0x27,0x16,0xca,0xd8,0xca,0x79,0x7e,0xb3,0x37,0x6, 0xb4,0x1, +0x2, 0x80,0x3, 0x2, 0x28,0x38,0x6c,0xdd,0x6c,0xff,0x12,0x91,0x11,0x7d,0xf3,0x12, +0x2f,0xf4,0x50,0xfb,0x74,0x1, 0x7a,0xb3,0x38,0x86,0x12,0x3d,0xac,0x12,0x13,0xc7, +0x12,0x0, 0x1e,0x74,0xa, 0x12,0x45,0x15,0x12,0xc0,0xbd,0x7e,0xe7,0x2b,0xd, 0x7a, +0xe5,0x24,0x7e,0xe3,0x2a,0xfa,0x74,0x4, 0x7a,0xb3,0x2a,0xfa,0x7e,0xe7,0x2b,0xd, +0x5e,0xe4,0x0, 0x3f,0x7a,0xe7,0x2b,0xd, 0x7e,0xb3,0x2a,0xfa,0x12,0x7b,0xd0,0x7c, +0x7b,0x74,0x6, 0xac,0x7b,0x7e,0x24,0x0, 0x4, 0x12,0x1e,0xb9,0x7d,0x23,0x7d,0x3f, +0x12,0x25,0x3c,0xad,0x32,0x7a,0x37,0x2b,0x7, 0x12,0x4e,0xe0,0x12,0x26,0x57,0x7e, +0xb3,0x37,0x31,0xb4,0x1, 0x4, 0x74,0x10,0x80,0x2, 0x74,0xa, 0x12,0x91,0x5d,0x12, +0x4f,0xaf,0x80,0xf, 0x80,0x7, 0x12,0x45,0xcf,0xe4,0x12,0x46,0x7, 0x20,0x93,0xf6, +0x12,0x45,0x9f,0x30,0x18,0xf7,0x30,0x17,0xf4,0xd2,0x4, 0x12,0x45,0x5a,0xe4,0x12, +0x13,0xde,0xb, 0xd0,0x12,0x4c,0x83,0x12,0x91,0x76,0x7e,0xa3,0x38,0x85,0x4c,0xaa, +0x78,0x6, 0x74,0x1, 0x7a,0xb3,0x38,0x86,0x4c,0xaa,0x68,0xb, 0x7e,0xb3,0x37,0x31, +0x70,0x5, 0xe4,0x7a,0xb3,0x38,0x85,0x12,0x28,0x3d,0x78,0x18,0x7e,0xb3,0x38,0x85, +0x60,0x12,0xe4,0x7a,0xb3,0x38,0x85,0x7a,0xb3,0x2a,0x2, 0x7a,0xb3,0x2a,0x3, 0x7e, +0xf0,0x1, 0x80,0x1d,0x12,0x28,0x3d,0x68,0x10,0x7e,0xb3,0x38,0x85,0x70,0xa, 0x7e, +0xf0,0x1, 0xe4,0x7a,0xb3,0x37,0x6, 0x80,0x8, 0xbe,0xd0,0x32,0x50,0x3, 0x2, 0x27, +0x8c,0xe4,0x7a,0xb3,0x2b,0x4, 0x7e,0x35,0x24,0x7a,0x37,0x2b,0xd, 0x7a,0xe3,0x2a, +0xfa,0x4c,0xff,0x68,0x3, 0x12,0x28,0x48,0xda,0x79,0xda,0xd8,0x22,0x7e,0x73,0x38, +0xf2,0xa, 0x37,0x5e,0x34,0x0, 0x2, 0x22,0xe4,0x7a,0xb3,0x34,0x3a,0x7a,0xb3,0x34, +0x39,0x12,0x4e,0x9b,0xb4,0x1, 0x4, 0x74,0x1, 0x80,0x2, 0x74,0x3, 0x7a,0xb3,0x34, +0x3a,0x22,0xca,0x3b,0x12,0x2f,0xf4,0x50,0xfb,0x7e,0xf3,0x2b,0xf, 0x7c,0xbf,0x12, +0xb3,0xd2,0x12,0xb3,0xe9,0x7e,0xb3,0x2b,0x1f,0xf5,0x28,0x7e,0xb3,0x2b,0x20,0xf5, +0x29,0x7e,0xb3,0x37,0x8, 0xb4,0x1, 0xf, 0x12,0x8d,0x6c,0x7e,0xb3,0x16,0x91,0x70, +0x6, 0x12,0x28,0x48,0xc3,0x21,0x6c,0x12,0x29,0x6f,0x3e,0x34,0xca,0x39,0x7e,0x18, +0x6, 0xfc,0x7e,0x8, 0x4, 0x7e,0x12,0x20,0xb9,0x1b,0xfd,0x12,0x29,0x6f,0x3e,0x34, +0xca,0x39,0x7e,0x18,0x7, 0x7a,0x7e,0x8, 0x4, 0x0, 0x12,0x20,0xb9,0x1b,0xfd,0x7e, +0xb3,0x37,0x8, 0xb4,0x3, 0x7, 0x12,0xab,0xfd,0x7a,0x37,0x37,0xe3,0x74,0x1, 0x7a, +0xb3,0x16,0x90,0x12,0x69,0x8e,0x12,0xab,0xeb,0x7e,0xc3,0x3, 0xec,0x12,0x6e,0x31, +0xe4,0x12,0x13,0xde,0x12,0x28,0x48,0x7e,0x8, 0x4, 0x7e,0x7a,0xd, 0x2a,0x7e,0x18, +0x6, 0x76,0x7e,0xb3,0x2b,0x72,0x12,0x7a,0xc8,0x7e,0x8, 0x4, 0x0, 0x7a,0xd, 0x2a, +0x7e,0x18,0x5, 0xf8,0x7e,0xb3,0x25,0xf0,0x12,0x7a,0xc8,0x7e,0xd3,0x2b,0x1f,0x7e, +0xe3,0x2b,0x20,0xe5,0x28,0x7a,0xb3,0x2b,0x1f,0xe5,0x29,0x12,0x6e,0x8b,0x50,0x5, +0x7c,0xbc,0x12,0xb3,0x2a,0x7e,0x34,0x8, 0xa, 0x7e,0x4, 0xd, 0xc8,0x7d,0x20,0x7d, +0x10,0x12,0x6a,0xd4,0x7a,0xd3,0x2b,0x1f,0x7a,0xe3,0x2b,0x20,0x7c,0xbf,0x12,0x86, +0xf8,0x12,0xa9,0xf5,0x7e,0xb3,0x39,0x7, 0x4, 0x7a,0xb3,0x39,0x7, 0x7e,0x73,0x39, +0x7, 0xbe,0x70,0xfa,0x28,0x6, 0x74,0x64,0x7a,0xb3,0x39,0x7, 0x7e,0xb3,0x16,0x90, +0x60,0x9, 0x7e,0xb3,0x16,0x91,0x60,0x3, 0xd3,0x80,0x1, 0xc3,0xda,0x3b,0x22,0x7e, +0x73,0x2a,0x74,0xa, 0x27,0x7e,0x73,0x2a,0x73,0xa, 0x37,0x2d,0x32,0x22,0x12,0x48, +0x7, 0x7e,0xb3,0x37,0x8, 0xb4,0x3, 0x6c,0x12,0xb6,0xb8,0x12,0x26,0x57,0x12,0x3f, +0xfb,0x7e,0xb3,0x37,0x9c,0x30,0xe7,0xe9,0x12,0x28,0x62,0x12,0x29,0x6f,0x3e,0x34, +0xca,0x39,0x7e,0x18,0x4, 0x0, 0x7e,0x8, 0x4, 0xfc,0x12,0x20,0xb9,0x1b,0xfd,0x12, +0x29,0x6f,0x3e,0x34,0xca,0x39,0x7e,0x18,0x4, 0x7e,0x7e,0x8, 0x5, 0x7a,0x12,0x20, +0xb9,0x1b,0xfd,0x7e,0xb3,0x2b,0x1d,0xb4,0x1, 0x18,0x12,0xab,0xb8,0x12,0x75,0xe9, +0x12,0xaf,0x66,0x12,0xa7,0xbd,0x12,0x88,0x5f,0x12,0x56,0xde,0x12,0x2a,0x3, 0x12, +0x58,0x52,0x12,0x48,0x39,0x12,0x3a,0x9f,0x7e,0xb3,0x37,0x9c,0x54,0x7f,0x7a,0xb3, +0x37,0x9c,0x80,0x8d,0x12,0x2f,0xee,0x2, 0x0, 0x46,0x7a,0xb3,0x2b,0x2, 0x7a,0xb3, +0x2b,0x1e,0x22,0x12,0x52,0x6d,0x12,0x2b,0xfa,0x12,0x2b,0xfa,0x12,0x36,0xac,0x12, +0x9c,0xfd,0x12,0x9f,0xef,0x12,0x2b,0xfa,0x12,0x9b,0xe7,0x12,0x2b,0xfa,0x12,0xa0, +0xae,0x12,0x2b,0xfa,0x2, 0x2a,0x27,0xca,0x3b,0x75,0x24,0x0, 0x6c,0xcc,0x6c,0xdd, +0x7e,0xc4,0x0, 0x3c,0xca,0xc9,0x7e,0x18,0x36,0x25,0x7e,0x8, 0x35,0xe9,0x12,0x20, +0xb9,0x1b,0xfd,0x7e,0xf3,0x28,0x84,0xa, 0xcf,0x3e,0xc4,0xca,0xc9,0x7e,0x18,0x26, +0xfa,0x7e,0x8, 0x1f,0x34,0x12,0x20,0xb9,0x1b,0xfd,0x6c,0x88,0x6c,0xee,0x41,0xfb, +0x7e,0xc4,0x3, 0xff,0x7e,0xc0,0xff,0x6c,0x99,0x80,0x4c,0x74,0x2, 0xac,0xb9,0x9, +0xb5,0x1f,0x34,0xbe,0xb0,0xff,0x68,0x3d,0x7c,0xb9,0x12,0x2f,0xb7,0x60,0x36,0x74, +0x2, 0xac,0xb9,0x9, 0x75,0x1f,0x35,0xa, 0x27,0x74,0x2, 0xac,0xbe,0x9, 0x75,0x36, +0x26,0xa, 0x37,0x12,0x81,0xbf,0x74,0x2, 0xac,0xb9,0x9, 0x75,0x1f,0x34,0xa, 0x27, +0x74,0x2, 0xac,0xbe,0x9, 0x75,0x36,0x25,0x12,0xa1,0x4b,0x2d,0x13,0xbd,0xc1,0x28, +0x4, 0x7d,0xc1,0x7c,0xc9,0xb, 0x90,0xbc,0xf9,0x38,0xb0,0xbe,0xc0,0xff,0x68,0x39, +0x7e,0x70,0x2, 0xac,0x7c,0x9, 0xb3,0x1f,0x34,0x9, 0x73,0x1f,0x35,0x12,0x2c,0x40, +0xbe,0x37,0x2a,0x5a,0x48,0x23,0x7e,0x70,0x2, 0xac,0x7c,0x9, 0x53,0x1f,0x34,0x74, +0x2, 0xac,0xbd,0x19,0x55,0x1f,0x70,0x9, 0x53,0x1f,0x35,0x19,0x55,0x1f,0x71,0x74, +0xff,0x19,0xb3,0x1f,0x34,0xb, 0x80,0xb, 0xd0,0xb, 0xe0,0x7e,0x73,0x35,0xe8,0xbc, +0x7e,0x28,0x2, 0x41,0x60,0x7c,0xe8,0x80,0x6d,0x6d,0xdd,0x7e,0x80,0xff,0x6c,0x99, +0x80,0x3c,0x7c,0xb9,0x12,0x2f,0xb7,0x60,0x33,0x12,0x2f,0xe4,0xbe,0xb0,0xff,0x68, +0x2b,0x9, 0x73,0x1f,0x35,0x12,0x30,0x3, 0x7f,0x71,0xb, 0x7a,0x50,0xbe,0x54,0x0, +0x0, 0x58,0x5, 0x6d,0x55,0x1b,0x7a,0x50,0xb, 0x7a,0xc0,0xbd,0xcd,0x8, 0xd, 0x12, +0x2f,0xe4,0xf5,0x24,0x9, 0xc3,0x1f,0x35,0x7d,0xdc,0x7c,0x89,0xb, 0x90,0xbc,0xf9, +0x38,0xc0,0xbe,0x80,0xff,0x68,0x1d,0x7e,0x71,0x24,0x74,0x2, 0xac,0xbd,0x19,0x75, +0x1f,0x70,0x19,0xc5,0x1f,0x71,0x7e,0xa0,0xff,0x7e,0x70,0x2, 0xac,0x78,0x19,0xa3, +0x1f,0x34,0xb, 0xd0,0xb, 0xe0,0x90,0x60,0x99,0xe4,0x93,0xbc,0xbe,0x38,0x8a,0x90, +0x60,0x9a,0xe4,0x93,0x7c,0xab,0x74,0x2, 0xa4,0xca,0x59,0x7e,0x18,0x1f,0x70,0x7e, +0x8, 0x1f,0x34,0x12,0x20,0xb9,0x1b,0xfd,0x7c,0xfd,0x12,0x97,0x4, 0x7e,0x8, 0x36, +0x25,0x74,0xff,0x12,0x20,0xde,0xbe,0xf0,0x0, 0x28,0x35,0xa, 0x3f,0x3e,0x34,0xca, +0x39,0x7e,0x18,0x1f,0x34,0x7e,0x8, 0x26,0xfa,0x12,0x20,0xb9,0x1b,0xfd,0xa, 0x3f, +0x3e,0x34,0xca,0x39,0x7e,0x18,0x1f,0x34,0x7e,0x8, 0x36,0x25,0x12,0x20,0xb9,0x1b, +0xfd,0x6c,0xee,0x80,0x7, 0x7c,0xbe,0x12,0x2f,0xd0,0xb, 0xe0,0xbc,0xfe,0x38,0xf5, +0x7a,0xf3,0x35,0xe8,0x7a,0xf3,0x28,0x84,0x90,0x60,0x99,0xe4,0x93,0xbe,0xb3,0x28, +0x84,0x50,0x4, 0x7a,0xb3,0x28,0x84,0xda,0x3b,0x22,0xca,0x79,0x6c,0xff,0x6c,0xee, +0x80,0x2e,0x7c,0xbe,0x12,0x2f,0xb7,0x60,0x25,0x7e,0x34,0x0, 0x2, 0xca,0x39,0xac, +0x7e,0x2e,0x34,0x26,0xfa,0x6d,0x22,0x7e,0x30,0x2, 0xac,0x3f,0x2e,0x14,0x26,0xfa, +0x6d,0x0, 0x12,0x20,0xb9,0x1b,0xfd,0x7c,0xbf,0x12,0x2f,0xd0,0xb, 0xf0,0xb, 0xe0, +0x12,0x9c,0xf6,0x38,0xcd,0x7a,0xf3,0x28,0x84,0xda,0x79,0x22,0x7c,0xba,0x7c,0x7d, +0x12,0x30,0x3, 0xb, 0x1a,0x30,0x22,0xca,0x3b,0x7c,0xfb,0x75,0x3b,0x0, 0x7e,0xb3, +0x2a,0x6f,0xf5,0x40,0x7e,0xb3,0x2a,0x70,0xf5,0x41,0x7e,0xd3,0x28,0x84,0xe4,0x7a, +0xb3,0x33,0xc2,0x7a,0xb3,0x33,0xc0,0x7a,0xb3,0x33,0xc1,0x7e,0x8, 0x1f,0x34,0x12, +0x2f,0xdd,0xe4,0x12,0x20,0xde,0x12,0x2f,0xdd,0x3e,0x34,0x7e,0x8, 0x33,0xc3,0xe4, +0x12,0x20,0xde,0xbe,0xd0,0x2, 0x50,0x2, 0xe1,0xa2,0x6c,0xcc,0xe1,0x91,0x12,0xc0, +0x61,0xf5,0x24,0x9, 0xb3,0x26,0xfb,0xf5,0x25,0x4c,0xcc,0x68,0x8, 0xa, 0x3c,0x9, +0xb3,0x1f,0x34,0x70,0xa, 0xa, 0x3c,0xb, 0x34,0xa, 0x2c,0x19,0x72,0x1f,0x34,0x7c, +0xbd,0x14,0xbc,0xbc,0x78,0x2, 0xe1,0x97,0xa, 0x5c,0xb, 0x54,0xf5,0x2e,0xe1,0x88, +0x7e,0x71,0x2e,0x74,0x2, 0xac,0x7b,0x9, 0xa3,0x26,0xfa,0x7a,0xa1,0x26,0x9, 0xb3, +0x26,0xfb,0xf5,0x27,0xa, 0x2a,0xe5,0x24,0x12,0x2f,0xd6,0x7c,0xb7,0xf5,0x28,0xe5, +0x27,0xa, 0x2b,0xe5,0x25,0x12,0x2f,0xd6,0x7c,0xb7,0xf5,0x29,0xe5,0x28,0xbe,0xb0, +0x4, 0x40,0x2, 0xe1,0x86,0xe5,0x29,0xbe,0xb0,0x4, 0x40,0x2, 0xe1,0x86,0x85,0x25, +0x44,0x85,0x26,0x45,0x85,0x27,0x46,0x7e,0x8, 0x0, 0x31,0x7e,0x18,0x0, 0x33,0xe5, +0x24,0x12,0xb0,0x3f,0x75,0x3b,0x0, 0x6c,0xee,0x75,0x30,0x0, 0xe5,0x24,0x7e,0x71, +0x25,0x12,0x2c,0x40,0x7a,0x35,0x35,0xe5,0x26,0x7e,0x71,0x27,0x12,0x2c,0x40,0x7a, +0x35,0x37,0x7e,0x35,0x35,0xbe,0x35,0x37,0x8, 0x7, 0x7e,0x35,0x37,0x7d,0x83,0x80, +0x3, 0x7e,0x85,0x35,0x7a,0x85,0x39,0xe, 0x84,0xe5,0x28,0xbe,0xb0,0x1, 0x38,0x2b, +0xe5,0x29,0xbe,0xb0,0x1, 0x38,0x24,0x7c,0xbf,0x30,0xe1,0x1f,0xe5,0x26,0x7e,0x71, +0x25,0x12,0x2c,0x40,0x7d,0x43,0xe5,0x24,0x7e,0x71,0x27,0x12,0x2c,0x40,0x2d,0x34, +0xbd,0x38,0x18,0x2, 0xe1,0x1d,0x75,0x30,0x1, 0xe1,0x1d,0xe5,0x28,0xbe,0xb0,0x1, +0x38,0x9, 0xe5,0x29,0xbe,0xb0,0x1, 0x38,0x2, 0xe1,0x1d,0xe5,0x28,0xbe,0xb0,0x4, +0x40,0x2, 0xe1,0x1d,0xe5,0x29,0xbe,0xb0,0x4, 0x40,0x2, 0xe1,0x1d,0x7c,0xbf,0x20, +0xe0,0x2, 0xe1,0x1d,0x6d,0x99,0x75,0x42,0x0, 0xc2,0x4, 0xc2,0x5, 0xe5,0x26,0xbe, +0xb1,0x24,0x28,0x4, 0xe5,0x24,0x80,0x2, 0xe5,0x26,0xf5,0x2a,0xe5,0x26,0xbe,0xb1, +0x24,0x50,0x4, 0xe5,0x24,0x80,0x2, 0xe5,0x26,0xf5,0x2c,0xe5,0x27,0xbe,0xb1,0x25, +0x28,0x4, 0xe5,0x25,0x80,0x2, 0xe5,0x27,0xf5,0x2b,0xe5,0x27,0xbe,0xb1,0x25,0x50, +0x4, 0xe5,0x25,0x80,0x2, 0xe5,0x27,0xf5,0x2d,0xe5,0x2c,0xbe,0xb1,0x2a,0x78,0x29, +0xd2,0x4, 0xe5,0x2a,0x60,0x8, 0xe5,0x40,0x14,0xbe,0xb1,0x2a,0x78,0x2, 0xd2,0x5, +0xe5,0x2a,0xbe,0xb0,0x0, 0x28,0x2, 0x15,0x2a,0xe5,0x40,0xa, 0x2b,0x1b,0x24,0xe5, +0x2c,0xa, 0x3b,0xbd,0x32,0x58,0x2, 0x5, 0x2c,0xe5,0x2d,0xbe,0xb1,0x2b,0x78,0x29, +0xd2,0x4, 0xe5,0x2b,0x60,0x8, 0xe5,0x41,0x14,0xbe,0xb1,0x2b,0x78,0x2, 0xd2,0x5, +0xe5,0x2b,0xbe,0xb0,0x0, 0x28,0x2, 0x15,0x2b,0xe5,0x41,0xa, 0x2b,0x1b,0x24,0xe5, +0x2d,0xa, 0x3b,0xbd,0x32,0x58,0x2, 0x5, 0x2d,0x85,0x2a,0x3c,0x80,0x4c,0x85,0x2b, +0x3d,0x80,0x3e,0xe5,0x3c,0x7e,0x71,0x3d,0x12,0x2c,0x40,0x7a,0x35,0x3e,0xe5,0x2a, +0xbe,0xb1,0x3c,0x68,0x15,0xe5,0x2c,0xbe,0xb1,0x3c,0x68,0xe, 0xe5,0x2b,0xbe,0xb1, +0x3d,0x68,0x7, 0xe5,0x2d,0xbe,0xb1,0x3d,0x78,0x9, 0x7e,0x35,0x3e,0x2d,0x93,0x5, +0x42,0x80,0xc, 0x7e,0x35,0x33,0xbe,0x35,0x3e,0x58,0x2, 0x5, 0x3b,0xb, 0xe0,0x5, +0x3d,0xe5,0x2d,0xbe,0xb1,0x3d,0x50,0xbb,0x5, 0x3c,0xe5,0x2c,0xbe,0xb1,0x3c,0x50, +0xad,0xe5,0x2c,0x12,0x2f,0xae,0xe5,0x2a,0x12,0x2f,0xa5,0xe5,0x2a,0x12,0x2f,0xae, +0xe5,0x2c,0x12,0x2f,0xa5,0x7e,0x85,0x37,0x2e,0x85,0x35,0x30,0x4, 0x9, 0x20,0x5, +0x6, 0x9d,0x98,0x15,0x42,0x15,0x42,0xe5,0x42,0xbe,0xb0,0x4, 0x28,0x6, 0xe5,0x42, +0x24,0xfc,0xf5,0x42,0xbe,0x94,0x0, 0x0, 0x58,0x2, 0x6d,0x99,0x7d,0x18,0x1a,0x2, +0x1a,0x0, 0x7e,0x35,0x31,0x1a,0x26,0x1a,0x24,0x12,0x1e,0xeb,0xe5,0x42,0xa, 0x1b, +0x6d,0x0, 0x12,0x1e,0xeb,0x7f,0x21,0x7d,0x39,0x1a,0x26,0x1a,0x24,0x7e,0x14,0x0, +0x28,0x12,0x1e,0xfc,0xbf,0x12,0x8, 0x15,0xe5,0x3b,0xa, 0x3b,0xa, 0x2e,0x9d,0x23, +0x3e,0x24,0x3e,0x24,0xa, 0x3e,0xbd,0x23,0x18,0x3, 0x75,0x30,0x2, 0xe5,0x30,0xbe, +0xb0,0x0, 0x28,0x62,0xe5,0x30,0xa, 0x3b,0x2e,0x34,0x33,0xbf,0x7e,0x39,0xb0,0x4, +0x7a,0x39,0xb0,0xe5,0x2e,0xa, 0x3b,0x9, 0xa3,0x1f,0x34,0x4c,0xaa,0x78,0xc, 0xa, +0x2c,0x9, 0xb2,0x1f,0x34,0x19,0xb3,0x1f,0x34,0x80,0x3b,0xa, 0x2c,0x9, 0xb2,0x1f, +0x34,0xf5,0x43,0xbc,0xba,0x28,0x3, 0x7a,0xa1,0x43,0x75,0x2f,0x0, 0x80,0x22,0x9, +0x33,0x1f,0x34,0xe5,0x2f,0xa, 0x2b,0x9, 0x22,0x1f,0x34,0xbc,0x23,0x68,0xa, 0xa, +0xc, 0x9, 0x30,0x1f,0x34,0xbc,0x23,0x78,0x6, 0xe5,0x43,0x19,0xb2,0x1f,0x34,0x5, +0x2f,0xbe,0xd1,0x2f,0x38,0xd9,0x5, 0x2e,0xbe,0xd1,0x2e,0x28,0x2, 0x81,0xc0,0xb, +0xc0,0xbc,0xdc,0x28,0x2, 0x81,0x8e,0x7e,0x8, 0x1f,0x34,0x12,0xaf,0x71,0x7a,0xb3, +0x33,0xc2,0xda,0x3b,0x22,0x7e,0x71,0x2d,0x12,0x2c,0x40,0x9d,0x93,0x22,0x7e,0x71, +0x2b,0x12,0x2c,0x40,0x9d,0x93,0x22,0x7c,0x7b,0x12,0x77,0xf6,0x9, 0xa2,0x27,0x72, +0x7c,0xb7,0x54,0x7, 0xa, 0x3b,0x2e,0x34,0x0, 0x5e,0x12,0x91,0x6d,0x5c,0xba,0x22, +0x7e,0x70,0x1, 0x2, 0x51,0x5f,0xa, 0x3b,0x9d,0x32,0x2, 0x21,0x0, 0x90,0x60,0x9a, +0x93,0xa, 0x3b,0x22,0x7e,0x70,0x2, 0xac,0x79,0x9, 0xb3,0x1f,0x34,0x22,0x12,0x2f, +0xf4,0x50,0xfb,0x22,0x7e,0xb3,0x34,0x3a,0xb4,0x1, 0x2, 0xc3,0x22,0xd3,0x22,0x7c, +0xbd,0x7c,0x7e,0x7e,0x13,0x2a,0x6e,0xac,0x1b,0x3e,0x4, 0x7e,0x30,0x2, 0xac,0x37, +0x2d,0x10,0x7e,0x1f,0x13,0x8a,0x2d,0x31,0x22,0xca,0x3b,0x7c,0x5b,0x7e,0x43,0x28, +0x84,0xbe,0x40,0x1, 0x28,0x2, 0x21,0x14,0x7e,0xa3,0x2a,0x6e,0x7e,0x70,0x2, 0xac, +0x75,0x9, 0xd3,0x26,0xfa,0x9, 0xc3,0x26,0xfb,0x7c,0xbd,0x7c,0x7c,0x12,0x30,0x3, +0x7f,0x1, 0x90,0x60,0xaa,0xe4,0x93,0x70,0x12,0x7c,0xfc,0x7c,0x9d,0x7e,0x83,0x2a, +0x70,0x7e,0xe3,0x2a,0x6f,0xa, 0xca,0x6d,0xbb,0x9d,0xbc,0xa, 0xa8,0x1b,0xa5,0xa, +0x5f,0xbd,0x5a,0x58,0x2, 0x21,0x14,0xa, 0x59,0x1b,0x54,0xbe,0x54,0x0, 0x0, 0x48, +0x4e,0x7c,0xb9,0x14,0x12,0x31,0x5a,0x50,0x46,0x7c,0xb9,0x14,0x12,0x31,0x17,0xb, +0x1a,0xe0,0x7d,0x3b,0x12,0x31,0x4c,0x8, 0x11,0x9d,0xae,0xbe,0xa4,0x0, 0x0, 0x58, +0x4, 0x6d,0x55,0x80,0x2, 0x7d,0x5a,0x12,0x31,0x44,0x7c,0xb8,0x24,0xfe,0xbc,0xbf, +0x78,0x1d,0x90,0x60,0xaa,0xe4,0x93,0x70,0x4, 0x7d,0xfd,0x1b,0xf4,0x7d,0x5f,0x12, +0x31,0x1e,0xb, 0x1a,0x30,0xbd,0x3a,0x8, 0x6, 0x12,0x31,0x20,0x1b,0x1a,0xa0,0xa, +0xa9,0xb, 0xa4,0xa, 0x5e,0xbd,0xa5,0x58,0x4b,0x7c,0xb9,0x4, 0x12,0x31,0x5a,0x50, +0x43,0x7c,0xb9,0x4, 0x12,0x31,0x17,0xb, 0x1a,0xe0,0x7d,0x3c,0x12,0x31,0x4c,0x8, +0x11,0x9d,0xae,0xbe,0xa4,0x0, 0x0, 0x58,0x4, 0x6d,0x55,0x80,0x2, 0x7d,0x5a,0x12, +0x31,0x44,0x7c,0xb8,0x24,0xfe,0xbc,0xbf,0x78,0x1a,0x90,0x60,0xaa,0xe4,0x93,0x70, +0x4, 0x7d,0xfd,0x1b,0xf4,0x7d,0x5f,0x12,0x31,0x1e,0xb, 0x1a,0x50,0xbd,0x5a,0x8, +0x3, 0x1b,0x1a,0xa0,0xda,0x3b,0x22,0x12,0x31,0x27,0x7d,0xd3,0x7d,0x5d,0x3e,0x54, +0x7e,0x1f,0x13,0x8a,0x2d,0x35,0x22,0x7c,0x5b,0x7e,0x43,0x2a,0x6e,0x90,0x60,0xab, +0xe4,0x93,0x7c,0xab,0x90,0x60,0xaa,0xe4,0x93,0x70,0x8, 0x7c,0x75,0xac,0x74,0xa, +0x2a,0x2d,0x32,0x22,0x2d,0x31,0x7d,0x20,0x1b,0x1a,0x50,0x22,0x3e,0x34,0x7f,0x40, +0x2d,0x93,0xb, 0x4a,0xa0,0xbe,0xe4,0x0, 0x0, 0x22,0x7c,0xab,0x6c,0x77,0x80,0x12, +0xa, 0x27,0x2e,0x24,0x60,0xac,0x12,0x51,0x4f,0x93,0xbc,0xba,0x78,0x2, 0xd3,0x22, +0xb, 0x70,0x90,0x60,0xa7,0xe4,0x93,0xbc,0xb7,0x38,0xe5,0xc3,0x22,0x12,0x36,0x9c, +0x60,0x30,0x6c,0x22,0x80,0x24,0x7c,0xb2,0x12,0x31,0x5a,0x50,0x1b,0x7c,0xb2,0x12, +0x31,0x27,0x7d,0x3, 0x12,0x36,0x94,0x49,0x55,0x38,0xe8,0x7d,0x40,0x3e,0x44,0x7e, +0x1f,0x13,0x8a,0x2d,0x34,0x1b,0x1a,0x50,0xb, 0x20,0x7e,0x73,0x2a,0x75,0xbc,0x72, +0x38,0xd4,0x22,0xca,0x3b,0x6c,0xff,0x12,0xc0,0xb4,0x7e,0xb3,0x16,0x91,0xb4,0x1, +0x2, 0x80,0x2, 0x41,0xdd,0x6c,0xcc,0x41,0xcf,0x12,0xc0,0x61,0xf5,0x27,0x9, 0xb3, +0x26,0xfb,0xf5,0x28,0x7e,0xb3,0x28,0x84,0xb4,0x1, 0xb, 0x7e,0xb3,0x36,0x71,0x70, +0x5, 0x12,0x32,0xe0,0x80,0x6, 0x75,0x25,0x2, 0x75,0x26,0x2, 0x7c,0xbc,0x12,0x30, +0x19,0xd2,0x3, 0x12,0x32,0xe7,0x7e,0xb3,0x36,0xec,0xb4,0x1, 0x1b,0x7e,0xb3,0x2a, +0x3, 0xb4,0x1, 0x14,0x7e,0xb3,0x28,0x84,0xb4,0x1, 0xd, 0x7e,0x37,0x28,0x86,0xbe, +0x34,0x0, 0xa, 0x40,0x3, 0x12,0x32,0xe0,0xe5,0x27,0x60,0xc, 0xa, 0x2e,0x1b,0x24, +0xe5,0x27,0xa, 0x3b,0xbd,0x32,0x48,0x3, 0x75,0x25,0x1, 0xe5,0x28,0x60,0xc, 0xa, +0x2d,0x1b,0x24,0xe5,0x28,0xa, 0x3b,0xbd,0x32,0x48,0x3, 0x75,0x26,0x1, 0x75,0x24, +0x0, 0x80,0x3c,0xe5,0x24,0xbc,0xbc,0x68,0x34,0x12,0x35,0xda,0x9, 0xa3,0x26,0xfa, +0x7a,0xa1,0x29,0x9, 0xb3,0x26,0xfb,0xf5,0x2a,0xa, 0x2a,0xe5,0x27,0x12,0x2f,0xd6, +0xbe,0x34,0x0, 0x3, 0x18,0x17,0xe5,0x2a,0xa, 0x2b,0xe5,0x28,0x12,0x2f,0xd6,0xbe, +0x34,0x0, 0x3, 0x18,0x8, 0x75,0x25,0x1, 0x75,0x26,0x1, 0x80,0x7, 0x5, 0x24,0x12, +0x36,0xa4,0x38,0xbf,0xe5,0x27,0x7e,0x71,0x28,0x12,0xa0,0x94,0x50,0x8, 0x12,0x31, +0x7d,0x12,0x35,0xd3,0x80,0x8, 0x12,0x69,0x84,0x50,0x3, 0x12,0x32,0xe0,0xe5,0x25, +0x7e,0x71,0x26,0x7c,0x6c,0x7c,0x5f,0x12,0x33,0x21,0x90,0x61,0x36,0xe4,0x93,0xb4, +0x1, 0x16,0x7e,0x70,0x9, 0xac,0x7c,0x7d,0x13,0x2e,0x14,0x27,0x76,0x6d,0x0, 0x2e, +0x34,0x27,0x78,0x6d,0x22,0x12,0x7f,0xc5,0x12,0x31,0x7d,0xb, 0xf0,0xb, 0xc0,0x7e, +0x73,0x28,0x84,0xbc,0x7c,0x28,0x2, 0x21,0xc9,0x7a,0xf3,0x28,0x84,0xda,0x3b,0x22, +0x75,0x25,0x3, 0x75,0x26,0x3, 0x22,0x12,0x36,0x9c,0x60,0x34,0x6c,0x22,0x80,0x28, +0x7c,0xb2,0x12,0x31,0x5a,0x50,0x1f,0x7c,0xb2,0x12,0x31,0x27,0x3e,0x34,0x7e,0x7f, +0x13,0x8a,0x2d,0xf3,0xb, 0x7a,0x30,0x12,0x36,0x94,0x59,0x35,0x38,0xe8,0x30,0x3, +0x5, 0x6d,0x33,0x1b,0x7a,0x30,0xb, 0x20,0x7e,0x73,0x2a,0x75,0xbc,0x72,0x38,0xd0, +0x22,0xca,0x3b,0x7c,0xf5,0x7c,0xe6,0x7c,0xd7,0x7c,0xcb,0x74,0x9, 0xac,0xbf,0x7d, +0xd5,0x2e,0xd4,0x27,0x76,0x6d,0xcc,0x7e,0x37,0x2a,0x66,0x7a,0x35,0x43,0xe4,0x39, +0xb6,0x0, 0x6, 0x7e,0x70,0x2, 0xac,0x7e,0x9, 0xb3,0x26,0xfa,0xf5,0x31,0x9, 0xb3, +0x26,0xfb,0xf5,0x32,0x7e,0x73,0x2a,0x6e,0x7c,0x6d,0x7e,0x8, 0x0, 0x35,0x12,0x35, +0x80,0xf5,0x33,0xe5,0x31,0x7e,0x73,0x2a,0x6d,0x7c,0x6c,0x7e,0x8, 0x0, 0x34,0x12, +0x35,0x80,0x7c,0xab,0xe5,0x34,0x7e,0x71,0x35,0x12,0x30,0x3, 0x7a,0x35,0x3f,0x7e, +0x34,0x15,0x9e,0x7a,0x35,0x41,0x85,0x34,0x39,0x85,0x35,0x3a,0x7a,0xa1,0x3b,0x85, +0x33,0x3c,0x7e,0xb3,0x2a,0x59,0xf5,0x3d,0x75,0x3e,0x0, 0x7e,0x8, 0x0, 0x39,0x12, +0x90,0x50,0x7d,0x23,0x6d,0x33,0x7e,0x97,0x15,0xa0,0x6d,0x88,0x2f,0x41,0x7e,0x37, +0x15,0xa2,0x6d,0x22,0x7d,0x3, 0x6d,0x11,0x7e,0x37,0x15,0xa4,0x2f,0x10,0x7a,0x1d, +0x2b,0x7e,0x37,0x15,0xa6,0x7d,0x23,0x6d,0x33,0x7e,0xb7,0x15,0xa8,0x6d,0xaa,0x2f, +0x51,0x7f,0x74,0xa, 0x4c,0xe5,0x31,0xa, 0x5b,0x9d,0x54,0xf5,0x2f,0x81,0xc7,0xa, +0x4d,0xe5,0x32,0xa, 0x5b,0x9d,0x54,0xf5,0x30,0x81,0xb1,0xe5,0x2f,0xbe,0xb0,0x0, +0x58,0x2, 0x81,0xaf,0x7e,0x73,0x2a,0x6d,0xbe,0x71,0x2f,0x18,0x2, 0x81,0xaf,0xe5, +0x30,0xbe,0xb0,0x0, 0x58,0x2, 0x81,0xaf,0x7e,0x73,0x2a,0x6e,0xbe,0x71,0x30,0x18, +0x2, 0x81,0xaf,0xe5,0x2f,0x7e,0x71,0x30,0x12,0x2c,0x40,0x7e,0x53,0x2a,0x59,0xa, +0x25,0x9d,0x32,0x7a,0x35,0x37,0xbe,0x34,0x0, 0x0, 0x18,0x2, 0x81,0xaf,0x7e,0x35, +0x43,0xbe,0x35,0x37,0x18,0xd, 0x7f,0x16,0x2e,0x34,0x0, 0x6, 0x7e,0x1b,0xb0,0x4, +0x7a,0x1b,0xb0,0xe5,0x31,0xa, 0x2b,0xe5,0x2f,0x12,0x35,0x65,0x18,0xb, 0xe5,0x32, +0xa, 0x2b,0xe5,0x30,0x12,0x35,0x65,0x8, 0x56,0xe5,0x2f,0x7e,0x71,0x30,0x7c,0x6e, +0x12,0xb8,0x88,0xf5,0x36,0xb4,0x2, 0xc, 0x7e,0x35,0x37,0x7d,0x23,0xe, 0x24,0x9d, +0x32,0x7a,0x35,0x37,0xe5,0x36,0xbe,0xb0,0x2, 0x68,0x5, 0xe5,0x36,0xb4,0x1, 0x2f, +0x7e,0x45,0x37,0x7d,0x34,0x1a,0x26,0x1a,0x24,0xe5,0x2f,0x12,0x35,0x56,0x7f,0x1, +0x7e,0x1d,0x2b,0x9f,0x10,0x7a,0x1d,0x2b,0x7d,0x34,0x1a,0x26,0x1a,0x24,0xe5,0x30, +0x12,0x35,0x56,0x9f,0x51,0x12,0x35,0x5d,0x9f,0x41,0x12,0x35,0x5d,0x9f,0x71,0x5, +0x30,0xa, 0x2d,0xe5,0x32,0xa, 0x3b,0x2d,0x32,0x1a,0x27,0xe5,0x30,0x1a,0x3b,0xbd, +0x32,0x18,0x2, 0x61,0xeb,0x5, 0x2f,0xa, 0x2c,0xe5,0x31,0xa, 0x3b,0x2d,0x32,0x1a, +0x27,0xe5,0x2f,0x1a,0x3b,0xbd,0x32,0x18,0x2, 0x61,0xdf,0xbe,0x48,0x0, 0x0, 0x78, +0x2, 0xb, 0x4c,0xbe,0x78,0x0, 0x0, 0x78,0x2, 0xb, 0x7c,0x7e,0x1d,0x2b,0x7f,0x4, +0x12,0x35,0x71,0x1b,0x6a,0x30,0x7f,0x15,0x7f,0x7, 0x12,0x35,0x71,0x79,0x36,0x0, +0x2, 0x7e,0xb3,0x2a,0x65,0x60,0xd, 0x1e,0xf4,0x1e,0xe4,0x50,0x4, 0x4e,0xf4,0x80, +0x0, 0x14,0x78,0xf3,0xbe,0x78,0x0, 0x7f,0x28,0x4, 0x7e,0x78,0x0, 0x7f,0x7d,0x3f, +0x39,0x76,0x0, 0x5, 0x74,0x9, 0xac,0xbe,0x9, 0x75,0x27,0x7c,0x39,0x76,0x0, 0x6, +0xbe,0x70,0xf, 0x28,0x6, 0x74,0xf, 0x39,0xb6,0x0, 0x6, 0x7e,0xa1,0x31,0x7e,0x70, +0x9, 0xac,0x7f,0x19,0xa3,0x27,0x7d,0x7e,0xa1,0x32,0x7e,0x70,0x9, 0xac,0x7f,0x19, +0xa3,0x27,0x7e,0xda,0x3b,0x22,0x1a,0x1b,0x1a,0x2, 0x2, 0x1e,0xeb,0x7e,0x35,0x37, +0x1a,0x26,0x1a,0x24,0x22,0x1a,0x3b,0x9d,0x32,0x12,0x21,0x0, 0xbe,0x34,0x0, 0x1, +0x22,0x74,0x6, 0x2f,0x11,0x14,0x78,0xfb,0x12,0x1f,0x7, 0x2e,0x18,0x0, 0x20,0x22, +0xca,0xf8,0x7c,0xf6,0x7c,0x87,0x7c,0x9b,0xa, 0x2f,0x7d,0x32,0x3e,0x34,0xb, 0x34, +0x7c,0xb7,0xbc,0xf9,0x38,0x14,0xa, 0xf8,0x1b,0xf4,0xa, 0x3f,0x9d,0xf3,0xa, 0x39, +0xbd,0x3f,0x18,0x6, 0x7c,0xab,0xa, 0x39,0x80,0x1d,0xbc,0xf9,0x28,0xd, 0xa, 0x39, +0xa, 0x5f,0x2d,0x53,0xb, 0x54,0x7c,0xab,0xe4,0x80,0x10,0xa, 0x3f,0xa, 0x58,0x2d, +0x53,0xa, 0x39,0x9d,0x53,0x7c,0xab,0x9d,0x32,0x7c,0xb7,0x7a,0xb, 0xb0,0x7c,0xba, +0xda,0xf8,0x22,0x75,0x25,0x0, 0x75,0x26,0x0, 0x22,0x7e,0x71,0x24,0x74,0x2, 0xac, +0x7b,0x22,0xca,0x3b,0x7e,0xb3,0x2a,0x74,0xf5,0x27,0x12,0x0, 0x66,0x50,0x2, 0xc1, +0x6f,0x6d,0x33,0x9e,0x37,0x2a,0x4f,0x3e,0x34,0xbe,0x37,0x7, 0xf8,0x18,0x70,0x7e, +0xb3,0x16,0x92,0x70,0x6a,0x7e,0xb3,0x28,0xa8,0xb4,0x1, 0x60,0x7e,0x77,0x2a,0x51, +0x7e,0x67,0x2a,0x53,0x75,0x24,0x0, 0x80,0x4e,0xe5,0x24,0x12,0x2f,0xb7,0x60,0x45, +0x12,0x35,0xda,0x12,0x9d,0x80,0xf5,0x26,0x7e,0xb3,0x2a,0x3, 0xb4,0x1, 0xe, 0x90, +0x60,0xab,0xe4,0x93,0xbe,0xb1,0x26,0x78,0x4, 0xe, 0x64,0xe, 0x74,0x7e,0xa1,0x26, +0x74,0x2, 0xa4,0x49,0x35,0x4, 0xfc,0xbd,0x36,0x48,0xd, 0xe5,0x25,0xa, 0x2b,0xe5, +0x27,0x12,0x9b,0x18,0xbd,0x37,0x58,0xd, 0xe5,0x24,0x6c,0x77,0x12,0x51,0x5f,0x12, +0x35,0xda,0x12,0x37,0x9f,0x5, 0x24,0x12,0x36,0xa4,0x38,0xad,0x12,0xa6,0x5, 0xda, +0x3b,0x22,0x12,0x46,0xa2,0x12,0x24,0x9a,0x12,0x73,0x28,0x12,0x22,0xf2,0x7e,0xb3, +0x37,0x8, 0x24,0xfd,0x68,0x9, 0xb, 0xb1,0x78,0xf4,0x12,0x58,0xf0,0x80,0xef,0x12, +0x29,0x7e,0x80,0xea,0x7c,0xa3,0xb, 0x30,0x74,0x2, 0xa4,0x22,0x6c,0x33,0x90,0x60, +0xa7,0xe4,0x93,0x22,0x7e,0x73,0x28,0x84,0xbe,0x71,0x24,0x22,0x12,0xa5,0xee,0x12, +0x9b,0x49,0x12,0x35,0xe2,0x12,0x9a,0x38,0x2, 0x36,0xbb,0xca,0x3b,0x12,0x2b,0xfa, +0x7e,0xb3,0x28,0x84,0x60,0x6, 0x7e,0xb3,0x35,0xe2,0x60,0x9, 0xe4,0x7a,0xb3,0x35, +0xe4,0x7a,0xb3,0x35,0x69,0x7e,0xb3,0x35,0xe2,0x70,0x69,0x6c,0x99,0x80,0x5d,0x74, +0x2, 0xac,0xb9,0x9, 0x85,0x26,0xfa,0x9, 0xf5,0x26,0xfb,0x7c,0xb9,0x12,0x9a,0xed, +0x40,0x48,0x6c,0xee,0x80,0x3c,0x74,0x2, 0xac,0xbe,0x9, 0xd5,0x35,0x6a,0x9, 0xc5, +0x35,0x6b,0xa, 0x28,0xa, 0x3d,0x12,0x37,0x67,0x78,0x25,0xa, 0x2f,0xa, 0x3c,0x12, +0x37,0x67,0x78,0x1c,0x7c,0xb9,0x12,0x37,0x6f,0x7e,0x14,0x62,0x2b,0x12,0x87,0xee, +0x58,0xe, 0x7c,0xb9,0x6c,0x77,0x12,0x51,0x5f,0x7c,0xb8,0x7c,0x7f,0x12,0x37,0xa7, +0xb, 0xe0,0x7e,0x73,0x35,0xe4,0xbc,0x7e,0x38,0xbc,0xb, 0x90,0x7e,0x73,0x28,0x84, +0xbc,0x79,0x38,0x9b,0x7e,0x73,0x35,0x69,0x7a,0x73,0x35,0xe4,0xa, 0x37,0x3e,0x34, +0xca,0x39,0x7e,0x18,0x35,0xa6,0x7e,0x8, 0x35,0x6a,0x12,0x20,0xb9,0x1b,0xfd,0xe4, +0x7a,0xb3,0x35,0xe2,0xda,0x3b,0x22,0x9d,0x32,0x12,0x21,0x0, 0x4d,0x33,0x22,0x7c, +0xab,0x7e,0x70,0x2, 0xac,0x7a,0x9, 0xb3,0x26,0xfa,0x9, 0x73,0x26,0xfb,0x2, 0x2c, +0x40,0xca,0xf8,0x7c,0xfb,0x7e,0x70,0x2, 0x12,0x99,0x6c,0x7f,0x71,0x7c,0xbf,0x12, +0x37,0x6f,0x12,0xa4,0xcf,0x7f,0x17,0x12,0x1f,0x58,0x7c,0xb7,0xda,0xf8,0x22,0x9, +0xb3,0x26,0xfa,0x9, 0x73,0x26,0xfb,0x7c,0x6b,0x7e,0xa3,0x35,0x69,0x7e,0x50,0x2, +0xac,0x5a,0x19,0x62,0x35,0xa6,0x19,0x72,0x35,0xa7,0x7c,0xba,0x4, 0x7a,0xb3,0x35, +0x69,0x22,0xca,0xf8,0x6c,0xff,0x80,0x18,0x7c,0xbf,0x12,0x37,0x6f,0xbe,0x37,0x2a, +0x5c,0x58,0xb, 0x12,0x51,0x5b,0x7e,0x70,0x2, 0xac,0x7f,0x12,0x37,0x9f,0xb, 0xf0, +0x12,0x52,0x66,0x38,0xe3,0x12,0x2b,0xfa,0xda,0xf8,0x22,0xca,0xf8,0x7c,0xab,0xbe, +0xa0,0x34,0x38,0x3, 0x2, 0x38,0xfd,0xbe,0xa0,0x35,0x78,0x6, 0x7e,0xb3,0x2b,0x10, +0x41,0x1c,0xbe,0xa0,0x36,0x68,0x5, 0xbe,0xa0,0x37,0x78,0x1d,0x7e,0x35,0x8, 0x7d, +0x23,0xb, 0x24,0x7a,0x25,0x8, 0x2e,0x37,0x31,0xce,0x7e,0x39,0xb0,0xbe,0xa0,0x37, +0x68,0x2, 0x41,0x1c,0x75,0x1a,0x36,0x41,0x1c,0xbe,0xa0,0x38,0x68,0x5, 0xbe,0xa0, +0x39,0x78,0x1b,0x7e,0xf3,0x37,0xc0,0x7c,0xbf,0x4, 0x7a,0xb3,0x37,0xc0,0xbe,0xa0, +0x39,0x78,0x3, 0x75,0x1a,0x38,0xa, 0x3f,0x9, 0xb3,0x2b,0x21,0x41,0x1c,0xbe,0xa0, +0x3a,0x68,0x5, 0xbe,0xa0,0x3b,0x78,0x1b,0x7e,0xf3,0x37,0xc2,0x7c,0xbf,0x4, 0x7a, +0xb3,0x37,0xc2,0xbe,0xa0,0x3b,0x78,0x3, 0x75,0x1a,0x3a,0xa, 0x3f,0x9, 0xb3,0x2b, +0x44,0x41,0x1c,0xbe,0xa0,0xfb,0x78,0x6, 0x7e,0xb3,0x2b,0x12,0x41,0x1c,0xbe,0xa0, +0x5e,0x78,0x26,0x7e,0xf, 0x38,0xc0,0x69,0x30,0x0, 0x8e,0xa, 0x56,0x1e,0x54,0x1e, +0x54,0x1e,0x54,0x5e,0x54,0x0, 0x1, 0x3, 0x3, 0x54,0xc0,0xa, 0x36,0x5e,0x34,0x0, +0x3, 0x7c,0xa7,0x4c,0xba,0x44,0x80,0x41,0x1c,0xbe,0xa0,0x3c,0x68,0x5, 0xbe,0xa0, +0x3d,0x78,0x1b,0x7e,0xf3,0x37,0xc4,0x7c,0xbf,0x4, 0x7a,0xb3,0x37,0xc4,0xbe,0xa0, +0x3d,0x78,0x3, 0x75,0x1a,0x3c,0xa, 0x3f,0x9, 0xb3,0x2a,0x7a,0x41,0x1c,0xbe,0xa0, +0x3e,0x68,0x5, 0xbe,0xa0,0x3f,0x78,0x1b,0x7e,0xf3,0x37,0xc6,0x7c,0xbf,0x4, 0x7a, +0xb3,0x37,0xc6,0xbe,0xa0,0x3f,0x78,0x3, 0x75,0x1a,0x3e,0xa, 0x3f,0x9, 0xb3,0x2a, +0x9d,0x41,0x1c,0xbe,0xa0,0x40,0x40,0xd, 0xbe,0xa0,0x4d,0x38,0x8, 0xa, 0x3a,0x9, +0xb3,0x37,0x9c,0x41,0x1c,0xbe,0xa0,0x4e,0x68,0x5, 0xbe,0xa0,0x4f,0x78,0x1e,0x7e, +0xf3,0x37,0xe1,0x7c,0xbf,0x4, 0x7a,0xb3,0x37,0xe1,0xbe,0xa0,0x4f,0x78,0x3, 0x75, +0x1a,0x4e,0xa, 0x3f,0x2e,0x37,0x31,0xcc,0x7e,0x39,0xb0,0x41,0x1c,0xbe,0xa0,0x51, +0x68,0x5, 0xbe,0xa0,0x52,0x78,0x28,0x7e,0x14,0x60,0x0, 0x6d,0x0, 0x2e,0x4, 0x0, +0xff,0x7e,0xb3,0x37,0xec,0xa, 0x3b,0x6d,0x22,0x2f,0x10,0x7e,0x1b,0x70,0x4, 0x7a, +0xb3,0x37,0xec,0xbe,0xa0,0x52,0x78,0x3, 0x75,0x1a,0x51,0x7c,0xb7,0x41,0x1c,0xbe, +0xa0,0x5c,0x68,0x5, 0xbe,0xa0,0x5d,0x78,0x1a,0x7e,0xf3,0x37,0xb5,0x7c,0xbf,0x4, +0x7a,0xb3,0x37,0xb5,0xbe,0xa0,0x5d,0x78,0x3, 0x75,0x1a,0x5c,0x7c,0xbf,0x12,0x3a, +0x1f,0x41,0x1c,0xbe,0xa0,0x60,0x40,0xd, 0xbe,0xa0,0x6c,0x38,0x8, 0xa, 0x3a,0x9, +0xb3,0x3, 0x91,0x41,0x1c,0xbe,0xa0,0x6d,0x78,0x4, 0xe5,0xe, 0x80,0x7e,0xbe,0xa0, +0xf4,0x68,0x5, 0xbe,0xa0,0xf5,0x78,0x18,0x7e,0x35,0xa, 0x7d,0x23,0xb, 0x24,0x7a, +0x25,0xa, 0x9, 0xb3,0x31,0xd4,0xbe,0xa0,0xf5,0x78,0x61,0x75,0x1a,0xf4,0x80,0x5c, +0xbe,0xa0,0xf0,0x68,0x5, 0xbe,0xa0,0xf1,0x78,0x9, 0x7c,0x1a,0x2e,0x10,0x20,0xa5, +0xe7,0x80,0x49,0xbe,0xa0,0xf2,0x68,0x5, 0xbe,0xa0,0xf3,0x78,0x1b,0x7e,0x15,0x10, +0x3e,0x14,0x7e,0x1f,0x31,0xd0,0x2d,0x31,0xb, 0x1a,0x30,0xbe,0xa0,0xf2,0x78,0x4, +0xa, 0x56,0x80,0x28,0x7d,0x53,0x80,0x24,0xbe,0xa0,0xf6,0x78,0x4, 0xe5,0xf, 0x80, +0x1b,0xbe,0xa0,0xf7,0x78,0xd, 0x7e,0x34,0x62,0x48,0x7e,0x24,0x0, 0xff,0xb, 0x1a, +0x50,0x80,0x9, 0xbe,0xa0,0xfd,0x78,0x3, 0xe4,0x80,0x1, 0xe4,0xda,0xf8,0x22,0x7c, +0xab,0xbe,0xa0,0x0, 0x40,0x11,0x7e,0xb3,0x2a,0x6e,0xbc,0xba,0x28,0x9, 0x74,0x2, +0xa4,0x49,0x25,0x34,0x0, 0x80,0x51,0x7e,0x13,0x2a,0x6e,0xbc,0x1a,0x38,0x1c,0x7e, +0x3, 0x2a,0x6d,0xa, 0x10,0xa, 0x21,0x2d,0x12,0xa, 0x3a,0xbd,0x31,0x58,0xc, 0x9d, +0x32,0x3e,0x34,0x3e,0x34,0x49,0x23,0x3, 0x60,0x80,0x2d,0x7e,0x3, 0x2a,0x6d,0xa, +0x20,0xa, 0x11,0x7d,0x41,0x2d,0x42,0xa, 0x3a,0xbd,0x34,0x48,0x19,0x7e,0x10,0x2, +0xac,0x1, 0x2d,0x1, 0xbd,0x30,0x58,0xe, 0x9d,0x31,0x9d,0x32,0x3e,0x34,0x3e,0x34, +0x49,0x23,0x3, 0x62,0x80,0x2, 0xe4,0x22,0x7e,0x34,0x0, 0x64,0xad,0x23,0x74,0xc, +0x1e,0x34,0x1e,0x24,0x50,0x3, 0x4e,0x60,0x80,0x14,0x78,0xf4,0x7c,0xb7,0x22,0xca, +0xf8,0x80,0x38,0x7c,0xbf,0x12,0x3a,0x1f,0xa, 0x1b,0x7e,0x63,0x2a,0x6e,0x7e,0x70, +0x2, 0xac,0x67,0x7e,0x10,0x2, 0xac,0x1f,0x2d,0x3, 0x7e,0x1f,0x13,0x8a,0x2d,0x30, +0x12,0x3a,0xde,0x9d,0x35,0x1b,0x1a,0x10,0xb, 0xf0,0x12,0x3a,0xde,0x7e,0x73,0x2a, +0x6e,0xa, 0x27,0x2d,0x25,0xa, 0x3f,0xbd,0x32,0x48,0xc8,0xda,0xf8,0x22,0x7e,0xa3, +0x2a,0x6d,0x74,0x2, 0xa4,0x22,0x12,0x3f,0xaa,0xb4,0x1, 0x14,0xca,0x39,0x7e,0x18, +0x37,0xdc,0x7e,0x8, 0x25,0xee,0x12,0x20,0xb9,0x1b,0xfd,0x12,0x3f,0x49,0x80,0x12, +0xca,0x39,0x7e,0x18,0x37,0xdc,0x7e,0x8, 0x2b,0x70,0x12,0x20,0xb9,0x1b,0xfd,0x12, +0x3f,0x67,0x2, 0x3b,0x15,0x7a,0x1f,0x2a,0xfc,0x7a,0xf, 0x2a,0xf8,0x22,0xca,0xf8, +0x7c,0x6b,0xa5,0xbe,0x0, 0x9, 0x7c,0xb7,0x12,0x7d,0xab,0xd2,0x6, 0xa1,0xa0,0xa5, +0xbe,0x1, 0x3d,0x7a,0x73,0x37,0x9d,0xa5,0xbf,0xad,0x2, 0x80,0x2f,0xa5,0xbf,0xae, +0x4, 0xd2,0x7, 0xa1,0xa0,0xa5,0xbf,0xaa,0x5, 0x12,0xc0,0xce,0x80,0x1e,0xa5,0xbf, +0xab,0xa, 0x7e,0x34,0x5, 0x7a,0x7a,0x37,0x31,0xce,0x80,0x10,0xa5,0xbf,0xac,0x2, +0x80,0x2, 0xa1,0xa0,0x7e,0x34,0x4, 0xfc,0x7a,0x37,0x31,0xce,0x6d,0x33,0x81,0x1c, +0xbe,0x60,0x4, 0x40,0x20,0xbe,0x60,0x8, 0x38,0x1b,0x12,0x3d,0xa3,0xa5,0xbe,0x7, +0x7, 0x6d,0x33,0x7a,0x35,0xa, 0xa1,0xa0,0xa5,0xbe,0x8, 0x2, 0x80,0x2, 0xa1,0xa0, +0x12,0x7, 0xfb,0xa1,0xa0,0xa5,0xbe,0xa, 0x9, 0x43,0xc, 0x20,0x7a,0x73,0x37,0xa6, +0xa1,0xa0,0xa5,0xbe,0xb, 0x8, 0x12,0x3d,0xa3,0x12,0x3f,0xc8,0xa1,0xa0,0xbe,0x60, +0x1b,0x40,0x7, 0xbe,0x60,0x1c,0x38,0x2, 0xa1,0x38,0xbe,0x60,0x1e,0x40,0xd, 0xbe, +0x60,0x23,0x38,0x8, 0x12,0x3d,0xa5,0x43,0xc, 0x40,0xa1,0xa0,0xbe,0x60,0x15,0x40, +0x1a,0xbe,0x60,0x18,0x38,0x15,0x12,0x3d,0xa5,0xd2,0x6, 0xa5,0xbe,0x15,0x2, 0x80, +0x2, 0xa1,0xa0,0x74,0x7, 0x7a,0xb3,0x37,0xa0,0xa1,0xa0,0xa5,0xbe,0x19,0x7, 0xe4, +0x7a,0xb3,0x37,0xb5,0xa1,0xa0,0xbe,0x60,0x24,0x40,0x7, 0xbe,0x60,0x2c,0x38,0x2, +0xa1,0x38,0xa5,0xbe,0x2d,0x1b,0x12,0x3d,0xa5,0x20,0x7, 0x2, 0xa1,0xa0,0x7e,0x63, +0x37,0xc8,0x7c,0x46,0x6c,0x55,0xa, 0x37,0x2d,0x32,0x3e,0x34,0x7a,0x35,0x8, 0xa1, +0xa0,0xbe,0x60,0x2f,0x40,0xa, 0xbe,0x60,0x33,0x38,0x5, 0x43,0xc, 0x8, 0xa1,0x38, +0xa5,0xbe,0x34,0xf, 0x43,0xc, 0x10,0xbe,0x70,0x64,0x38,0x2, 0xa1,0x38,0x7e,0x70, +0x64,0xa1,0x38,0xbe,0x60,0x38,0x68,0x4, 0xa5,0xbe,0x39,0x21,0x43,0xc, 0x1, 0x7e, +0xf3,0x37,0xc1,0x7c,0xbf,0x4, 0x7a,0xb3,0x37,0xc1,0xa, 0x2f,0x19,0x72,0x2b,0x21, +0xa5,0xbe,0x39,0x2, 0x80,0x2, 0xa1,0xa0,0x75,0x1a,0x38,0xa1,0xa0,0xbe,0x60,0x3a, +0x68,0x4, 0xa5,0xbe,0x3b,0x21,0x43,0xc, 0x2, 0x7e,0xf3,0x37,0xc3,0x7c,0xbf,0x4, +0x7a,0xb3,0x37,0xc3,0xa, 0x2f,0x19,0x72,0x2b,0x44,0xa5,0xbe,0x3b,0x2, 0x80,0x2, +0xa1,0xa0,0x75,0x1a,0x3a,0xa1,0xa0,0xa5,0xbe,0xfb,0x9, 0x43,0xc, 0x4, 0x7a,0x73, +0x2b,0x12,0xa1,0xa0,0xa5,0xbe,0x50,0x6, 0x7a,0x73,0x37,0xec,0xa1,0xa0,0xbe,0x60, +0x3c,0x68,0x4, 0xa5,0xbe,0x3d,0x21,0x43,0xc, 0x1, 0x7e,0xf3,0x37,0xc5,0x7c,0xbf, +0x4, 0x7a,0xb3,0x37,0xc5,0xa, 0x2f,0x19,0x72,0x2a,0x7a,0xa5,0xbe,0x3d,0x2, 0x80, +0x2, 0xa1,0xa0,0x75,0x1a,0x3c,0xa1,0xa0,0xbe,0x60,0x3e,0x68,0x4, 0xa5,0xbe,0x3f, +0x21,0x43,0xc, 0x1, 0x7e,0xf3,0x37,0xc7,0x7c,0xbf,0x4, 0x7a,0xb3,0x37,0xc7,0xa, +0x2f,0x19,0x72,0x2a,0x9d,0xa5,0xbe,0x3f,0x2, 0x80,0x2, 0xa1,0xa0,0x75,0x1a,0x3e, +0xa1,0xa0,0xbe,0x60,0x40,0x40,0xd, 0xbe,0x60,0x42,0x38,0x8, 0x12,0x3d,0xa5,0x75, +0xd, 0x1, 0x80,0xa, 0xa5,0xbe,0x43,0xb, 0x12,0x3d,0xa5,0x75,0xd, 0x2, 0x12,0x3a, +0xe6,0x80,0x7d,0xa5,0xbe,0x44,0x8, 0x12,0x3d,0xa5,0x12,0x3f,0x70,0x80,0x71,0xbe, +0x60,0x45,0x68,0x4, 0xa5,0xbe,0x46,0x5, 0x12,0x3d,0xa5,0x80,0x63,0xbe,0x60,0x4e, +0x68,0x4, 0xa5,0xbe,0x4f,0x20,0x43,0xd, 0x4, 0x7e,0xf3,0x37,0xe2,0x7c,0xbf,0x4, +0x7a,0xb3,0x37,0xe2,0xa, 0x2f,0x2e,0x27,0x31,0xcc,0x7a,0x29,0x70,0xa5,0xbe,0x4f, +0x3f,0x75,0x1a,0x4e,0x80,0x3a,0xa5,0xbe,0x6d,0x5, 0x7a,0x71,0xe, 0x80,0x31,0xbe, +0x60,0xf0,0x40,0x25,0xbe,0x60,0xf3,0x38,0x20,0x7c,0x16,0x2e,0x10,0x20,0x7c,0xb7, +0xa5,0xf7,0xa5,0xbe,0xf3,0x1a,0x7e,0x15,0x12,0x7e,0x5, 0x10,0x3e,0x4, 0x7e,0x1f, +0x31,0xd0,0x2d,0x30,0x1b,0x1a,0x10,0x80,0x7, 0xa5,0xbe,0xf6,0x3, 0x7a,0x71,0xf, +0xda,0xf8,0x22,0xd2,0x6, 0xa, 0x26,0x19,0x72,0x37,0x9c,0x22,0x7a,0xb3,0x2b,0x0, +0x70,0x14,0x12,0x3f,0x67,0x12,0x3b,0x15,0x7e,0x18,0x6, 0x76,0x7a,0x1f,0x6, 0xf4, +0x7e,0x18,0x4, 0x7e,0x80,0x10,0xb4,0x1, 0x11,0x12,0x3f,0x49,0x12,0x3b,0x15,0x12, +0x3f,0xf2,0x7e,0x18,0x4, 0x0, 0x7a,0x1f,0x6, 0xf8,0x22,0x74,0x1, 0x12,0x0, 0x1e, +0xe4,0x12,0x3d,0xac,0x12,0x3d,0xf3,0xe4,0x12,0x0, 0x1e,0x74,0x1, 0x12,0x3d,0xac, +0x2, 0x3d,0xf3,0xca,0x3b,0x7e,0xd3,0x2a,0x73,0x7e,0xc3,0x2a,0x74,0x7e,0x8, 0x1f, +0x44,0x12,0x3f,0xe9,0x7e,0x8, 0x1f,0x8a,0x7e,0x34,0x0, 0x46,0x12,0x20,0xde,0x7e, +0x8, 0x1f,0xd0,0x7e,0x34,0x0, 0xa, 0xe4,0x12,0x20,0xde,0x7e,0x8, 0x1f,0xda,0x7e, +0x34,0x0, 0xa, 0x12,0x20,0xde,0x7e,0xf3,0x2a,0xfc,0x7e,0x18,0x2a,0xdc,0x7a,0x1d, +0x24,0x7e,0x18,0x1f,0xd0,0x7a,0x1d,0x28,0x7c,0xbd,0x7c,0x7c,0x7e,0x8, 0x2a,0xb9, +0x12,0xba,0x4c,0x6c,0xee,0x80,0x2b,0xa, 0x3e,0x9, 0xa3,0x2a,0xdc,0xa, 0x3a,0x2e, +0x34,0x20,0x73,0x12,0x91,0x6d,0x7c,0xab,0xbe,0xa0,0x1c,0x50,0x13,0xa, 0x3e,0x12, +0x3f,0xb, 0xa, 0x4a,0x19,0xb4,0x1f,0x44,0x7e,0xb3,0x2a,0xfb,0x19,0xb4,0x1f,0x8a, +0xb, 0xe0,0xbc,0xce,0x38,0xd1,0x6c,0xee,0x80,0x24,0xa, 0x3e,0x9, 0xa3,0x2a,0xb9, +0xbe,0xa0,0x23,0x50,0x17,0xa, 0x2e,0xa, 0x3c,0x2d,0x32,0x12,0x3f,0xb, 0xa, 0x4a, +0x19,0xb4,0x1f,0x60,0x7e,0xb3,0x2a,0xfb,0x19,0xb4,0x1f,0xa6,0xb, 0xe0,0xbc,0xde, +0x38,0xd8,0x7e,0xb3,0x2a,0xfd,0x7e,0x8, 0x1f,0xe4,0x60,0x9, 0x7e,0x18,0x1f,0xd0, +0x12,0xb8,0xe2,0x80,0x3, 0x12,0x3f,0xd9,0x6c,0xee,0x7e,0x18,0x1f,0xe4,0x7a,0x1f, +0x1f,0x34,0x74,0x2, 0xac,0xbe,0x49,0x35,0x1f,0xd0,0x7a,0x37,0x1f,0x38,0x74,0x2, +0xac,0xbe,0x49,0x35,0x1f,0xda,0x7a,0x37,0x1f,0x3a,0x7e,0x70,0xe, 0xac,0x7e,0x2e, +0x34,0x1f,0x44,0x6d,0x22,0x7a,0x1f,0x1f,0x3c,0x7e,0x70,0xe, 0xac,0x7e,0x2e,0x34, +0x1f,0x8a,0x7a,0x1f,0x1f,0x40,0x7e,0x8, 0x1f,0x34,0x7c,0xbf,0x7c,0x7e,0x12,0x8, +0xd1,0xb, 0xe0,0xbe,0xe0,0x5, 0x40,0xb2,0xda,0x3b,0x22,0x2e,0x37,0x2a,0xfe,0x7e, +0x39,0xb0,0x22,0x74,0x1, 0x7a,0xb3,0x37,0x8, 0x12,0xae,0xfc,0x12,0x13,0xf5,0x12, +0xb9,0x6e,0xe4,0x12,0xa, 0x66,0x7e,0x24,0x3, 0xd4,0x12,0x3f,0xcb,0x74,0x1, 0x12, +0x3d,0xac,0x12,0x3f,0xd2,0x7e,0x34,0xd0,0xc, 0x12,0x1, 0xe, 0x12,0x3d,0xdb,0x7e, +0x34,0x0, 0x1, 0xe4,0x6c,0x55,0x2, 0x13,0x1, 0x7e,0x1f,0x25,0xf2,0x7e,0xf, 0x25, +0xee,0x22,0x7a,0xb3,0x2b,0x0, 0x70,0x5, 0x12,0x3f,0x67,0x80,0x6, 0xb4,0x1, 0x6, +0x12,0x3f,0x49,0x12,0x3b,0x15,0x22,0x7e,0x1f,0x2b,0x74,0x7e,0xf, 0x2b,0x70,0x22, +0x12,0x3f,0xaa,0xb4,0x1, 0x17,0xca,0x39,0x7e,0x18,0x25,0xee,0x7e,0x8, 0x37,0xdc, +0x12,0x20,0xb9,0x1b,0xfd,0x12,0xc0,0xc5,0x12,0x3f,0x49,0x80,0x1a,0xca,0x39,0x7e, +0x18,0x2b,0x70,0x7e,0x8, 0x37,0xdc,0x12,0x20,0xb9,0x1b,0xfd,0x7e,0x37,0x2b,0x76, +0x7a,0x37,0x31,0xcc,0x12,0x3f,0x67,0x2, 0x3b,0x15,0x7e,0xb3,0x37,0xe0,0x7e,0x34, +0x0, 0x4, 0x22,0x7c,0x6b,0x12,0x3f,0xe1,0x78,0x5, 0x7c,0xb6,0x2, 0x7d,0xd6,0xb4, +0x4, 0x5, 0x7c,0xb6,0x2, 0x3b,0x1e,0x22,0xb2,0x82,0x22,0x7d,0x32,0x74,0xfa,0x2, +0x12,0xd0,0x7e,0x8, 0x2a,0x6d,0x2, 0x0, 0x2e,0x7e,0x34,0x0, 0x8, 0xe4,0x2, 0x20, +0xde,0x7e,0xb3,0x37,0x9c,0xc4,0x54,0x7, 0x22,0x7e,0x34,0x0, 0x46,0x74,0x3f,0x2, +0x20,0xde,0x7e,0x18,0x5, 0xf8,0x7a,0x1f,0x6, 0xf4,0x22,0x30,0x6, 0x3b,0xc2,0x6, +0x12,0x25,0xe6,0x7e,0x73,0x37,0xa1,0x7a,0x73,0x2a,0x4d,0x7e,0x73,0x37,0xa2,0x7a, +0x73,0x2b,0x1d,0x7e,0x73,0x37,0xa2,0x7a,0x73,0x2b,0x1, 0x7e,0xb3,0x37,0xa3,0x60, +0x18,0x7e,0x34,0x0, 0x2, 0x12,0x41,0x5d,0x7e,0x34,0x0, 0x1, 0x12,0x41,0x5d,0x6d, +0x33,0x12,0x41,0x5d,0xe4,0x7a,0xb3,0x37,0xa3,0x12,0x4f,0xfa,0x2, 0x40,0x3f,0xe5, +0xc, 0x70,0x2, 0x21,0x5c,0xe5,0xc, 0x30,0xe0,0x10,0x53,0xc, 0xfe,0x12,0x72,0x92, +0x12,0x79,0x31,0x7e,0x8, 0x2a,0x6d,0x12,0x9, 0xa1,0xe5,0xc, 0x30,0xe1,0x6, 0x53, +0xc, 0xfd,0x12,0xba,0x3, 0xe5,0xc, 0x30,0xe2,0x32,0x53,0xc, 0xfb,0x7e,0xb3,0x2b, +0x12,0x60,0x9, 0x7e,0x8, 0x2a,0x6d,0x12,0x6, 0xba,0x80,0xb, 0x7e,0xb3,0x2b,0x65, +0x7e,0x73,0x2b,0x64,0x12,0xb, 0xad,0x7e,0x73,0x2b,0x12,0x2e,0x70,0xff,0x92,0x4, +0x90,0x60,0x51,0xe4,0x93,0x9e,0xb3,0x2a,0x77,0x12,0xb, 0x1e,0xe5,0xc, 0x30,0xe3, +0x45,0x53,0xc, 0xf7,0x7e,0x73,0x37,0xce,0x7a,0x73,0x2b,0xf, 0x12,0x87,0x52,0x7a, +0xb3,0x0, 0x4f,0xbe,0xb0,0xff,0x68,0xb, 0x43,0xc, 0x20,0x7e,0x73,0x0, 0x4f,0x7a, +0x73,0x37,0xa6,0x12,0x6e,0x29,0x12,0xc0,0x22,0x7e,0x73,0x37,0xcf,0xbe,0x73,0x2b, +0x62,0x68,0x6, 0x7a,0x73,0x2b,0x62,0xd2,0xc, 0x30,0xc, 0x7, 0x12,0xae,0xfa,0xe4, +0x12,0xa, 0x66,0x12,0x8d,0xec,0xe5,0xc, 0x30,0xe4,0xf, 0x53,0xc, 0xef,0x7e,0x43, +0x37,0xd0,0x7e,0x50,0xa, 0xac,0x45,0x12,0x3f,0xcb,0xe5,0xc, 0x30,0xe6,0x4e,0x53, +0xc, 0xbf,0x7e,0x73,0x37,0xbc,0xbe,0x70,0x7, 0x28,0x6, 0x74,0x7, 0x7a,0xb3,0x37, +0xbc,0xa9,0xd5,0xcb,0x74,0xe, 0x12,0x43,0xeb,0x7c,0x7b,0x5e,0x70,0xf, 0x7e,0x63, +0x37,0xbc,0xa, 0x26,0x2e,0x24,0x0, 0x3, 0x12,0x47,0x81,0x7c,0x65,0x4c,0x76,0x74, +0xe, 0x12,0x43,0x5f,0x12,0x43,0xeb,0x12,0x43,0xf3,0x7e,0x73,0x37,0xbf,0x7a,0x73, +0x2b,0x14,0x7e,0x73,0x37,0xbe,0x7a,0x73,0x2b,0x1f,0x12,0xc0,0xd7,0xe5,0xc, 0x30, +0xe5,0xa, 0x53,0xc, 0xdf,0x7e,0xb3,0x37,0xa6,0x2, 0x48,0x77,0x22,0xca,0xd8,0xca, +0x79,0x7d,0xd3,0x90,0x60,0x50,0xe4,0x93,0x7c,0xfb,0x90,0x60,0x51,0xe4,0x93,0x7c, +0x8b,0xa, 0x38,0xa, 0xcf,0x2d,0xc3,0xb, 0xc4,0x7d,0x3c,0x7c,0xe7,0x12,0x26,0x57, +0xa9,0xd0,0xc4,0xa9,0xd5,0xcb,0x74,0x7, 0x12,0x43,0xeb,0x7c,0x8b,0x74,0x7, 0x7e, +0x70,0xf, 0x12,0x43,0xf0,0x7e,0x54,0x0, 0x78,0x7e,0x1f,0x38,0xc4,0x79,0x51,0x0, +0x6, 0x7e,0x54,0x0, 0x80,0x7e,0x1f,0x38,0xc4,0x79,0x51,0x0, 0x8, 0x7e,0x54,0x0, +0xc, 0x7e,0x1f,0x38,0xc4,0x79,0x51,0x0, 0x10,0xbe,0xd4,0x0, 0x2, 0x78,0xb, 0x7e, +0x1f,0x38,0xc4,0x12,0x43,0x48,0x44,0x1, 0x80,0x20,0x7e,0x1f,0x38,0xc4,0x12,0x43, +0x48,0x44,0x8, 0x1b,0x1a,0x50,0x4d,0xdd,0x7e,0x1f,0x38,0xc4,0x78,0x7, 0x12,0x43, +0x48,0x54,0xfb,0x80,0x5, 0x12,0x43,0x48,0x44,0x4, 0x1b,0x1a,0x50,0x7e,0x1f,0x38, +0xc0,0x69,0xe1,0x0, 0x84,0x69,0x51,0x0, 0x90,0x7d,0xf5,0x2e,0x34,0x0, 0x90,0x5e, +0xa0,0xf6,0x1b,0x1a,0x50,0x7e,0xb3,0x37,0x12,0xbe,0xb0,0x6, 0x40,0x3, 0xb4,0xff, +0xe, 0x12,0x43,0x53,0x54,0xe6,0x12,0x43,0x50,0x4e,0x54,0x1, 0xa4,0x80,0xc, 0x12, +0x43,0x53,0x5e,0x54,0xfe,0xe6,0x12,0x43,0x50,0x44,0xa4,0x1b,0x1a,0x50,0xbe,0xd4, +0x0, 0x2, 0x78,0x2d,0x7e,0x1f,0x38,0xc4,0x12,0x43,0x48,0x5e,0x54,0x0, 0xf, 0x1b, +0x1a,0x50,0x7e,0x1f,0x38,0xc4,0x12,0x43,0x48,0x44,0x50,0x1b,0x1a,0x50,0x7e,0x34, +0x0, 0x2, 0x12,0x44,0x72,0x12,0x44,0x4b,0x12,0x44,0x28,0x7a,0x37,0x31,0xd4,0x61, +0x4, 0x6c,0xdd,0x41,0xfe,0x4c,0xdd,0x78,0x4, 0x6c,0x99,0x80,0x2b,0xbc,0xfd,0x40, +0x12,0xa, 0xcd,0x9, 0x9c,0x2a,0xb8,0xbe,0x90,0x23,0x40,0x3, 0x7e,0x90,0x22,0xb, +0x90,0x80,0x15,0xa, 0x3f,0xa, 0xcd,0x9d,0xc3,0x9, 0x9c,0x2a,0xdb,0xbe,0x90,0x1c, +0x40,0x3, 0x7e,0x90,0x1b,0x2e,0x90,0x24,0x7e,0x1f,0x38,0xc4,0x12,0x43,0x48,0x5e, +0x54,0x0, 0xf, 0x1b,0x1a,0x50,0xa, 0xc9,0x3e,0xc4,0x3e,0xc4,0x3e,0xc4,0x3e,0xc4, +0x7e,0x1f,0x38,0xc4,0x12,0x43,0x48,0x4d,0x5c,0x1b,0x1a,0x50,0xe5,0xe, 0x60,0x7, +0xe5,0xe, 0xbe,0xb0,0x64,0x28,0x6, 0x7e,0x34,0x0, 0x2, 0x80,0x4, 0xe5,0xe, 0xa, +0x3b,0x12,0x44,0x72,0x12,0x44,0x4b,0xbe,0xd4,0x0, 0x1, 0x78,0x10,0x12,0x44,0x4b, +0x12,0x44,0x28,0x74,0x2, 0xac,0xbd,0x59,0x35,0x31,0xd6,0x80,0xf, 0x12,0x44,0x28, +0xa, 0x5e,0xa, 0x2d,0x2d,0x25,0x3e,0x24,0x59,0x32,0x31,0xd6,0xb, 0xd0,0xbc,0xed, +0x28,0x2, 0x41,0x65,0xa9,0xd5,0xcb,0x74,0x7, 0x7c,0x78,0x12,0x43,0xf0,0xa9,0xc0, +0xc4,0x7e,0x1f,0x38,0xc0,0x79,0xe1,0x0, 0x84,0x7e,0x1f,0x38,0xc0,0x79,0xf1,0x0, +0x90,0x6d,0x33,0x7e,0xf, 0x38,0xc4,0x79,0x30,0x0, 0x6, 0x7e,0xf, 0x38,0xc4,0x79, +0x30,0x0, 0x8, 0x7e,0xf, 0x38,0xc4,0x79,0x30,0x0, 0x10,0x7e,0xf, 0x38,0xc4,0x79, +0x30,0x0, 0xe, 0xda,0x79,0xda,0xd8,0x22,0x2e,0x34,0x0, 0xe, 0xb, 0x1a,0x50,0x22, +0x1b,0x1a,0x50,0x7e,0x1f,0x38,0xc0,0x2e,0x34,0x0, 0x84,0xb, 0x1a,0x50,0x22,0xf5, +0xfd,0x7a,0x71,0xfe,0x22,0xca,0x79,0xa9,0xd5,0xcb,0x74,0x2, 0x7e,0x70,0x3f,0x12, +0x43,0x5f,0x74,0xf, 0x12,0x43,0xeb,0x7c,0xfb,0x74,0xf, 0x7c,0x7f,0x5e,0x70,0xfe, +0x12,0x43,0x5f,0x74,0xc, 0x12,0x43,0xeb,0x7c,0xfb,0x54,0x7f,0x68,0x8, 0x74,0xc, +0x7e,0x70,0xf8,0x12,0x43,0x5f,0x90,0x61,0x18,0xe4,0x93,0x7c,0xab,0xbe,0xa0,0x7, +0x38,0xb, 0x12,0x45,0x6, 0x7c,0xb7,0xa, 0x7b,0xb, 0x75,0x80,0x16,0x90,0x61,0x17, +0xe4,0x93,0xb4,0x1, 0xe, 0xbe,0xa0,0x7, 0x28,0x9, 0x12,0x45,0x6, 0xa, 0x77,0x2e, +0x74,0x0, 0x7, 0x74,0xe, 0x7c,0x7f,0x12,0x43,0x5f,0x74,0x7, 0x12,0x43,0xeb,0x7c, +0xfb,0x5e,0xf0,0xfb,0x90,0x60,0x2, 0xe4,0x93,0xa, 0x3b,0x3e,0x34,0x3e,0x34,0x4c, +0xf7,0x74,0x7, 0x7c,0x7f,0x12,0x43,0xf0,0xda,0x79,0x22,0xf5,0xfd,0xe5,0xfe,0x22, +0x12,0x43,0x5f,0x75,0xfd,0xff,0xa9,0xc5,0xcb,0x22,0x6d,0x33,0x7e,0x8, 0x0, 0x24, +0x7e,0x24,0x0, 0x12,0x12,0xb7,0x9d,0xe5,0x34,0x20,0xe7,0x1b,0xa9,0xd5,0xcb,0x74, +0x3, 0x7e,0x71,0x27,0x12,0x43,0x5f,0x74,0xb, 0x7e,0x71,0x2f,0x12,0x43,0x5f,0x74, +0xc, 0x7e,0x71,0x30,0x12,0x43,0xf0,0x22,0x7e,0xf, 0x38,0xc4,0x69,0x30,0x0, 0xa, +0x7d,0x23,0x6d,0x33,0x69,0x10,0x0, 0xc, 0x6d,0x0, 0x2f,0x10,0x74,0x7, 0x1e,0x34, +0x1e,0x24,0x50,0x3, 0x4e,0x60,0x80,0x14,0x78,0xf4,0x22,0x7e,0x34,0x0, 0x1, 0x7e, +0xf, 0x38,0xc4,0x79,0x30,0x0, 0x4, 0x7e,0xf, 0x38,0xc4,0x69,0x30,0x0, 0x12,0x5e, +0x34,0x0, 0x1, 0x68,0xf2,0x7e,0x34,0x0, 0x1, 0x79,0x30,0x0, 0x12,0x22,0x7e,0x34, +0x0, 0x1, 0x7d,0x23,0x80,0x12,0x7e,0x30,0x4, 0x80,0x5, 0x74,0xfa,0x12,0x45,0x15, +0x7c,0x23,0x1b,0x30,0xa5,0xba,0x0, 0xf3,0x7d,0x32,0x1b,0x24,0x4d,0x33,0x78,0xe6, +0x22,0x12,0x47,0xf8,0xc2,0x3, 0x12,0xb6,0x2d,0xc2,0x5, 0x12,0x45,0x51,0xc2,0x3, +0x12,0x47,0x21,0xa9,0xd5,0xcb,0x74,0xf, 0x12,0x43,0xeb,0x7a,0x1b,0xb0,0x74,0xf, +0x6c,0x77,0x12,0x43,0x5f,0xe5,0xfc,0x7a,0xb, 0xb0,0x43,0xfc,0x10,0x2, 0x43,0xf3, +0x24,0xab,0x68,0x10,0x24,0xef,0x68,0x1c,0x24,0xde,0x68,0x26,0x24,0xde,0x78,0x2f, +0x74,0x5, 0x80,0x2d,0x7e,0xb3,0x33,0xff,0xb4,0x5, 0x2a,0x12,0x44,0x6e,0x12,0xb5, +0xe5,0x2, 0xb6,0x9a,0x7e,0xb3,0x33,0xff,0xb4,0x5, 0x1a,0x12,0x44,0x6e,0x75,0xe9, +0xff,0x22,0x7e,0xb3,0x33,0xff,0xb4,0x5, 0xc, 0x12,0x44,0x6e,0x2, 0xb6,0x94,0x74, +0x1, 0x7a,0xb3,0x33,0xff,0x22,0xa, 0x3a,0x2e,0x34,0x0, 0x3, 0x3e,0x34,0x3e,0x34, +0x3e,0x34,0x3e,0x34,0x22,0x7c,0xab,0x80,0xe, 0x7e,0x70,0x3, 0x80,0x1, 0x0, 0x7c, +0x67,0x1b,0x70,0xa5,0xbe,0x0, 0xf7,0x7c,0x6a,0x1b,0xa0,0xa5,0xbe,0x0, 0xea,0x22, +0x7c,0x6b,0xa9,0xd5,0xcb,0x74,0xf, 0x12,0x43,0x5f,0x7a,0x61,0xfc,0x12,0x43,0xf3, +0x12,0x46,0x68,0xd2,0x3, 0x12,0x47,0x21,0x12,0x45,0x6b,0x12,0x13,0xde,0x2, 0x13, +0x96,0xa9,0xd0,0xce,0xa2,0x5, 0xa9,0x91,0xc9,0x22,0x30,0x4, 0x6, 0x12,0x45,0x6b, +0x2, 0x13,0x96,0x12,0x47,0xf8,0xc2,0x5, 0x2, 0x45,0x51,0xd2,0x5, 0x12,0x45,0x51, +0x74,0x1, 0x22,0x12,0x45,0xcf,0x12,0x91,0x8, 0x75,0xcd,0x0, 0xa9,0xd6,0xeb,0xa9, +0xd7,0xcd,0xc2,0xce,0x12,0xc0,0xab,0x12,0x44,0x91,0x74,0x1, 0x12,0x46,0x7, 0xa9, +0xc6,0xeb,0xa9,0xc7,0xcd,0xd2,0xce,0xe5,0x25,0x7e,0x71,0x24,0x2, 0x45,0x30,0x30, +0x18,0x5, 0xc2,0x4, 0x12,0x45,0x5a,0xa9,0xd1,0xcd,0xa9,0xc5,0xea,0x30,0x17,0x3, +0x20,0x18,0x14,0x12,0x45,0xcf,0xa9,0xd0,0xce,0xa9,0xc4,0xc9,0x74,0x2, 0x12,0x46, +0x7, 0xa9,0xd0,0xce,0xa9,0xd4,0xc9,0xa9,0xc1,0xcd,0xd2,0x4, 0x2, 0x45,0x5a,0x74, +0x81,0x7a,0xb3,0x39,0x2, 0x22,0x80,0x1d,0x12,0x45,0xcf,0x12,0x47,0xff,0x68,0x5, +0xc2,0x4, 0x12,0x45,0x5a,0x7e,0xb3,0x34,0x3a,0xbe,0xb0,0x2, 0x68,0x18,0x20,0x17, +0x15,0xe4,0x12,0x46,0x7, 0x20,0x93,0xe0,0x12,0x45,0xcf,0xa9,0xd1,0xcd,0xa9,0xc5, +0xea,0x74,0x2, 0x2, 0x46,0x7, 0x22,0x7c,0xab,0x7e,0xb3,0x39,0x2, 0xb4,0x81,0x38, +0x4c,0xaa,0x78,0x5, 0xa9,0xd0,0x87,0x80,0x29,0xbe,0xa0,0x1, 0x78,0xf, 0xc2,0xaf, +0xa9,0xd0,0xce,0xa9,0xc7,0xc9,0xa9,0xd1,0x87,0xd2,0xaf,0x80,0x15,0xbe,0xa0,0x2, +0x78,0x16,0xc2,0xaf,0x20,0x93,0x9, 0xa9,0xd0,0xce,0xa9,0xd7,0xc9,0xa9,0xd1,0x87, +0xd2,0xaf,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe4,0x7a,0xb3,0x39,0x2, 0x22,0xd2,0x3, +0x80,0x12,0x30,0x3, 0xc, 0x12,0x47,0xff,0x68,0x7, 0xc2,0x3, 0xc2,0x4, 0x12,0x45, +0x5a,0x12,0x45,0xd6,0x30,0x17,0xeb,0x22,0xca,0xf8,0xa2,0xaf,0xe4,0x33,0x7c,0xfb, +0xd2,0x3, 0x12,0xb6,0x2d,0xa9,0xd0,0xcb,0xc2,0xaf,0xa9,0xd0,0x9e,0x75,0x9d,0x0, +0xa9,0xd0,0x9e,0x75,0x9c,0x20,0xa9,0xd0,0x9e,0xa9,0xd4,0x9e,0xa9,0xd0,0xcd,0x74, +0x41,0x12,0x45,0x15,0xa9,0xd0,0x9e,0xa9,0xd7,0x9e,0x2e,0xf0,0xff,0x92,0xaf,0xda, +0xf8,0x22,0xe4,0x12,0x46,0xf0,0x12,0xb6,0x36,0x12,0x26,0x57,0x12,0xb6,0xb1,0x12, +0x43,0x65,0x12,0xb5,0xdb,0x12,0xb6,0x4d,0x12,0x0, 0x4a,0x12,0xb6,0x59,0x12,0x7e, +0xa0,0x12,0xb6,0x69,0xd2,0xaf,0x12,0x47,0x8a,0x12,0xb8,0x6e,0x12,0x43,0xfa,0x12, +0x46,0x68,0x7e,0x8, 0x3, 0xf1,0x12,0xa9,0x80,0x90,0x60,0x50,0xe4,0x93,0xca,0xb8, +0x90,0x60,0x51,0xe4,0x93,0x7c,0x7b,0x7e,0x24,0xff,0xff,0xda,0xb8,0x2, 0x12,0x34, +0xa9,0xc4,0xca,0xa9,0xc5,0xca,0xbe,0xb0,0x8, 0x50,0x3, 0x12,0x90,0xff,0xa9,0xd0, +0xce,0xa9,0xc0,0xc9,0xd2,0x5, 0x12,0x45,0x51,0xa9,0xc2,0xea,0x75,0xc1,0x6, 0x75, +0xc2,0xc, 0xd2,0x3, 0x12,0x47,0x21,0xa9,0xc1,0xc4,0xa9,0xd2,0xc4,0xa9,0xc2,0xe1, +0x22,0xa2,0x3, 0xa9,0x97,0xc1,0xa2,0x3, 0xa9,0x97,0xc2,0x22,0x7e,0x34,0x36,0xe1, +0x30,0xd, 0x4b,0xc2,0xd, 0x9, 0x53,0x0, 0x2, 0x12,0x47,0x7f,0x7a,0x27,0x2a,0x4f, +0x9, 0x53,0x0, 0x3, 0x12,0x47,0x7f,0x7a,0x27,0x2a,0x51,0x9, 0x53,0x0, 0x4, 0x12, +0x47,0x7f,0x7a,0x27,0x2a,0x53,0x7e,0x39,0x50,0xa, 0x25,0x3e,0x24,0x3e,0x24,0x7a, +0x27,0x2a,0x5a,0x9, 0x53,0x0, 0x1, 0xa, 0x25,0x3e,0x24,0x3e,0x24,0x7a,0x27,0x2a, +0x5c,0x9, 0x73,0x0, 0x5, 0xa, 0x37,0x12,0x45,0xc, 0x7a,0x37,0x2a,0x62,0x22,0xa, +0x25,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x22,0xa9,0xd5,0xcb,0x74,0x10,0x12, +0x43,0xeb,0x7c,0x7b,0x12,0x43,0xf3,0x30,0xe7,0x3, 0x7e,0x70,0x2, 0xd2,0xcd,0x7e, +0x24,0x0, 0xef,0x7e,0xf, 0x38,0xc0,0x79,0x20,0x0, 0x84,0x7e,0x24,0x20,0x5f,0x7e, +0xf, 0x38,0xc0,0x79,0x20,0x0, 0x82,0x7e,0x24,0x41,0x0, 0x7e,0xf, 0x38,0xc0,0x79, +0x20,0x0, 0x90,0x7c,0x67,0x6c,0x77,0x2e,0x34,0x0, 0xc1,0x7e,0xf, 0x38,0xc0,0x79, +0x30,0x0, 0x86,0x7e,0x34,0x29,0x90,0x7e,0xf, 0x38,0xc0,0x79,0x30,0x0, 0x8a,0x7e, +0x34,0x6a,0xd1,0x7e,0xf, 0x38,0xc0,0x79,0x30,0x0, 0x8c,0x7e,0x34,0x3, 0x61,0x7e, +0xf, 0x38,0xc0,0x79,0x30,0x0, 0x8e,0x22,0xe4,0x12,0x13,0xde,0x2, 0x13,0x96,0x7e, +0xb3,0x34,0x3a,0xbe,0xb0,0x1, 0x22,0x12,0xc0,0xce,0x12,0xc0,0xc5,0x6d,0x33,0x7a, +0x35,0xa, 0x12,0x48,0x56,0x12,0x48,0x30,0x74,0x50,0x7a,0xb3,0x37,0xd0,0x7e,0x24, +0x3, 0x20,0x12,0x3f,0xcb,0xe4,0x12,0xc0,0x7, 0x6d,0x33,0x7a,0x37,0x39,0x4, 0x22, +0x7e,0x73,0x2b,0x62,0x7a,0x73,0x37,0xcf,0x22,0xa2,0xa, 0xe4,0x33,0x7a,0xb3,0x37, +0xca,0x7e,0x73,0x37,0xce,0xbe,0x73,0x2b,0xf, 0x68,0xa, 0xe5,0xc, 0x70,0x6, 0x12, +0x48,0x56,0x12,0x48,0x30,0x22,0x7e,0x73,0x2b,0xf, 0x7a,0x73,0x37,0xce,0x7e,0x73, +0x2b,0x1f,0x7a,0x73,0x37,0xbe,0x7e,0x73,0x2b,0x20,0x7a,0x73,0x37,0xbd,0x7e,0x73, +0x2b,0x14,0x7a,0x73,0x37,0xbf,0x22,0xca,0xd8,0xca,0x79,0x7c,0xdb,0x90,0x61,0xc5, +0xe4,0x93,0x7c,0xab,0xbe,0xd0,0x80,0x78,0x18,0x7e,0xe0,0xff,0x6c,0xff,0x80,0xb, +0x12,0x48,0xe8,0x38,0x4, 0x7c,0xeb,0x7c,0xdf,0xb, 0xf0,0xbc,0xaf,0x38,0xf1,0x80, +0x1a,0xbe,0xd0,0x81,0x78,0x15,0x6c,0xee,0x6c,0xff,0x80,0xb, 0x12,0x48,0xe8,0x40, +0x4, 0x7c,0xeb,0x7c,0xdf,0xb, 0xf0,0xbc,0xaf,0x38,0xf1,0xbc,0xad,0x38,0x2, 0x6c, +0xdd,0x7c,0xbd,0x12,0x8d,0xb3,0x12,0x48,0x6e,0x7e,0x73,0x2b,0x1f,0x7a,0x73,0x37, +0xbe,0x12,0x49,0x4, 0x7e,0x73,0x2b,0xf, 0x7a,0x73,0x37,0xce,0x12,0x48,0x30,0x7a, +0xd3,0x37,0xa6,0xda,0x79,0xda,0xd8,0x22,0x7e,0x90,0x5, 0xac,0x9f,0x9, 0xb4,0x26, +0x33,0xbc,0xbe,0x22,0x30,0x3, 0x3, 0x12,0x48,0x6e,0xa2,0x4, 0x92,0x5, 0x12,0x49, +0xc3,0x2, 0x49,0x4, 0x7e,0x73,0x2b,0x20,0x7a,0x73,0x37,0xbd,0x22,0x74,0x40,0x12, +0x6e,0x8b,0x50,0x9, 0xd2,0x3, 0xd2,0x4, 0x12,0x48,0xf4,0x80,0x1c,0x74,0x1, 0x12, +0x49,0x47,0x7e,0x43,0x37,0xbb,0x7e,0x50,0x64,0xac,0x45,0x12,0x87,0xf8,0x7a,0xb3, +0x2b,0x1f,0x7e,0xf, 0x38,0xd9,0x12,0x4d,0x9b,0x12,0x49,0x4, 0x7e,0x73,0x2b,0x1f, +0x7a,0x73,0x37,0xbe,0x2, 0x48,0x6e,0xca,0x3b,0x7c,0xdb,0xe4,0x7a,0xb3,0x2b,0x14, +0x12,0xc0,0x22,0x7e,0xc0,0xa, 0x12,0x4e,0x6e,0x30,0xb, 0xfd,0x74,0x1, 0x12,0x0, +0xe, 0x7e,0x1f,0x38,0xd9,0x12,0x90,0x58,0x7d,0x73,0xbe,0x74,0xff,0xff,0x78,0x9, +0x12,0x49,0xb7,0x2e,0x34,0x0, 0x3, 0x80,0x18,0xbe,0x74,0x80,0x0, 0x28,0x7, 0x12, +0x49,0xb7,0xb, 0x35,0x80,0xb, 0xbe,0x74,0x40,0x0, 0x28,0xc, 0x12,0x49,0xb7,0xb, +0x34,0x1b,0xa, 0x30,0x1b,0xc0,0x78,0xbe,0xbe,0xd0,0x1, 0x78,0x9, 0x7e,0x1f,0x38, +0xd9,0x12,0x8f,0xfb,0x7d,0x73,0x7e,0x1f,0x38,0xc8,0x69,0x31,0x0, 0x1a,0x7a,0x73, +0x2b,0x14,0x7d,0x37,0xda,0x3b,0x22,0x7e,0xf, 0x38,0xc8,0x2e,0x14,0x0, 0x1a,0xb, +0xa, 0x30,0x22,0xca,0x3b,0x7e,0x34,0xff,0xff,0x7a,0x35,0x35,0x7e,0xb3,0x37,0xb1, +0xf5,0x2a,0x7e,0xb3,0x2a,0x6d,0xf5,0x2b,0x7e,0xb3,0x2a,0x6e,0xf5,0x2c,0x7e,0xb3, +0x2a,0x70,0xf5,0x2d,0x7e,0xb3,0x2a,0x6f,0xf5,0x2e,0x7e,0x34,0x27,0x10,0x7a,0x35, +0x2f,0x7e,0x18,0x40,0x0, 0x7a,0x1d,0x31,0x12,0x4e,0x67,0x30,0xb, 0xfd,0x74,0x1, +0x12,0x0, 0xe, 0x7e,0x8, 0x34,0x0, 0x12,0x4e,0x5f,0x6c,0xff,0x80,0x35,0x12,0x4c, +0x40,0x6c,0xee,0x80,0x19,0x7e,0x11,0x2c,0xac,0x1e,0x3e,0x4, 0x7e,0x30,0x2, 0xac, +0x3f,0x2d,0x10,0x7e,0x1d,0x31,0x2d,0x31,0xb, 0x1a,0x10,0x12,0x4c,0x47,0xe5,0x2e, +0xbc,0xbe,0x38,0xe1,0xe5,0x2e,0x12,0x4c,0x56,0x74,0x2, 0xac,0xbf,0x59,0x35,0x34, +0x0, 0xb, 0xf0,0xe5,0x2d,0xbc,0xbf,0x38,0xc5,0x12,0xc0,0x90,0x68,0xb, 0x7e,0x34, +0x10,0x0, 0x12,0x4c,0x7c,0x59,0x35,0x33,0xfe,0x6c,0xff,0x80,0x78,0x12,0x4c,0x40, +0x6c,0xee,0x80,0x14,0x12,0x4e,0x38,0x1e,0x34,0x1e,0x24,0x50,0x3, 0x4e,0x60,0x80, +0x14,0x78,0xf4,0x7d,0x13,0x12,0x4c,0x47,0xe5,0x2a,0xbc,0xbe,0x38,0xe6,0xe5,0x2a, +0x12,0x4c,0x56,0x74,0x4, 0xac,0xbf,0x59,0x35,0x3, 0x60,0xe5,0x2a,0xbe,0xb1,0x2d, +0x50,0x35,0x12,0x4c,0x40,0x7e,0xe1,0x2a,0x80,0x14,0x12,0x4e,0x38,0x1e,0x34,0x1e, +0x24,0x50,0x3, 0x4e,0x60,0x80,0x14,0x78,0xf4,0x7d,0x13,0x12,0x4c,0x47,0xe5,0x2d, +0xbc,0xbe,0x38,0xe6,0xe5,0x2a,0xa, 0x3b,0x6d,0x22,0xe5,0x2d,0xa, 0x1b,0x6d,0x0, +0x9f,0x1, 0x12,0x4c,0x5a,0x80,0x4, 0x7e,0x34,0x10,0x0, 0x74,0x4, 0xac,0xbf,0x59, +0x35,0x3, 0x62,0xb, 0xf0,0xe5,0x2e,0xbc,0xbf,0x38,0x82,0xe5,0x2d,0xa, 0x1b,0x6d, +0x0, 0x7e,0x18,0x0, 0x7a,0x12,0x1f,0x7, 0x6c,0xff,0x80,0x2e,0x74,0x2, 0xac,0xbf, +0x49,0x25,0x34,0x0, 0xa, 0x5f,0xad,0x53,0x7e,0x14,0x10,0x0, 0x9d,0x15,0xad,0x12, +0x74,0xc, 0x1e,0x14,0x1e,0x4, 0x50,0x3, 0x4e,0x20,0x80,0x14,0x78,0xf4,0x7d,0x21, +0x74,0x2, 0xac,0xbf,0x59,0x25,0x34,0x0, 0xb, 0xf0,0xe5,0x2d,0xbc,0xbf,0x38,0xcc, +0xe5,0x2b,0xa, 0x1b,0x6d,0x0, 0x7e,0x18,0x0, 0x28,0x12,0x1f,0x7, 0x6c,0xff,0x80, +0x5c,0x74,0x4, 0xac,0xbf,0x49,0x25,0x3, 0x60,0xa, 0x1f,0xad,0x13,0x7e,0xf4,0x10, +0x0, 0x9d,0xf1,0xad,0xf2,0x74,0xc, 0x1e,0xf4,0x1e,0xe4,0x50,0x4, 0x4e,0xf4,0x80, +0x0, 0x14,0x78,0xf3,0x7d,0x2f,0x74,0x4, 0xac,0xbf,0x59,0x25,0x3, 0x60,0xe5,0x2a, +0xbe,0xb1,0x2d,0x50,0x26,0x74,0x4, 0xac,0xbf,0x49,0x25,0x3, 0x62,0x2e,0x14,0x10, +0x0, 0xad,0x12,0x74,0xc, 0x1e,0x14,0x1e,0x4, 0x50,0x3, 0x4e,0x20,0x80,0x14,0x78, +0xf4,0x7d,0x21,0x74,0x4, 0xac,0xbf,0x59,0x25,0x3, 0x62,0xb, 0xf0,0xe5,0x2b,0xbc, +0xbf,0x38,0x9e,0x7e,0x73,0x37,0xb3,0xa, 0x37,0x6d,0x22,0x74,0xc, 0x2f,0x11,0x14, +0x78,0xfb,0x7e,0xf4,0x0, 0x64,0x7d,0x1f,0x12,0x1f,0x5, 0x7d,0xe3,0x7a,0xe5,0x35, +0x7e,0x73,0x37,0xb4,0xa, 0x37,0x6d,0x22,0x74,0xc, 0x2f,0x11,0x14,0x78,0xfb,0x7d, +0x1f,0x12,0x1f,0x5, 0x7d,0x63,0x6c,0xff,0x80,0x20,0x74,0x2, 0xac,0xbf,0x49,0x45, +0x34,0x0, 0xbe,0x45,0x35,0x28,0x9, 0x7e,0x35,0x35,0x59,0x35,0x34,0x0, 0x80,0x8, +0xbd,0x46,0x50,0x4, 0x59,0x65,0x34,0x0, 0xb, 0xf0,0xe5,0x2d,0xbc,0xbf,0x38,0xda, +0x6c,0xff,0x80,0x3a,0x74,0x4, 0xac,0xbf,0x49,0x45,0x3, 0x60,0xbe,0x45,0x35,0x28, +0x9, 0x7e,0x35,0x35,0x59,0x35,0x3, 0x60,0x80,0x8, 0xbd,0x46,0x50,0x4, 0x59,0x65, +0x3, 0x60,0x49,0x45,0x3, 0x62,0xbe,0x45,0x35,0x28,0x9, 0x7e,0x35,0x35,0x59,0x35, +0x3, 0x62,0x80,0x8, 0xbd,0x46,0x50,0x4, 0x59,0x65,0x3, 0x62,0xb, 0xf0,0xe5,0x2b, +0xbc,0xbf,0x38,0xc0,0x30,0x5, 0x6, 0x7e,0xd, 0x31,0x12,0x4d,0x9b,0xda,0x3b,0x22, +0x9f,0x11,0x7a,0x1f,0x24,0xf4,0x22,0x6d,0x0, 0x7e,0x1f,0x24,0xf4,0x2f,0x10,0x7a, +0x1f,0x24,0xf4,0xb, 0xe0,0x22,0xa, 0x1b,0x6d,0x0, 0x7e,0x1f,0x24,0xf4,0x12,0x1f, +0x7, 0x7a,0x1f,0x24,0xf4,0x7e,0x25,0x2f,0x74,0xc, 0x7d,0x13,0x7d,0x32,0x6d,0x22, +0x60,0x5, 0x2f,0x11,0x14,0x78,0xfb,0xb, 0x14,0x2, 0x1f,0x5, 0x7e,0xa1,0x2c,0x74, +0x2, 0xa4,0x22,0xca,0x3b,0x7e,0x8, 0x1f,0x34,0x12,0x4e,0x5f,0x7e,0x1f,0x38,0xf3, +0x7a,0x1d,0x26,0x7e,0xb3,0x2a,0x74,0xf5,0x2d,0x7e,0xb3,0x38,0x86,0xb4,0x1, 0x6, +0x7e,0x38,0x38,0x88,0x80,0x4, 0x7e,0x38,0x5, 0xf8,0x6d,0x33,0x7a,0x35,0x2a,0x74, +0x2, 0x12,0x0, 0x1e,0x7e,0xb3,0x38,0x87,0x70,0xe, 0x7e,0xb3,0x38,0x85,0x70,0x8, +0x74,0x1, 0x7a,0xb3,0x38,0x87,0xa1,0x57,0x7e,0xb3,0x38,0x87,0x70,0x6, 0x74,0x1, +0x7a,0xb3,0x38,0x87,0x7e,0xb3,0x38,0x86,0xb4,0x1, 0x17,0x75,0x2c,0x0, 0x80,0x9, +0x12,0x4c,0x7c,0x12,0x4d,0x8b,0x12,0x4e,0x27,0xe5,0x2d,0xbe,0xb1,0x2c,0x38,0xf0, +0x80,0x1b,0x75,0x2c,0x0, 0x80,0xf, 0x12,0x4c,0x7c,0x12,0x4d,0x8b,0x3e,0x24,0x3e, +0x24,0x1e,0x24,0x12,0x4e,0x27,0xe5,0x2d,0xbe,0xb1,0x2c,0x38,0xea,0x7e,0x34,0x61, +0x59,0x12,0x23,0x9e,0x7a,0x35,0x2e,0x7e,0x18,0x1f,0x34,0x7f,0x1, 0x12,0xa6,0x56, +0x75,0x2c,0x0, 0x80,0x16,0x12,0x4c,0x7c,0x12,0x4d,0x84,0xbe,0x35,0x2a,0x8, 0x9, +0x12,0x4c,0x7c,0x12,0x4d,0x84,0x7a,0x35,0x2a,0x5, 0x2c,0xe5,0x2d,0xbe,0xb1,0x2c, +0x38,0xe3,0x12,0x4d,0x93,0x40,0x25,0x7e,0xb3,0x38,0x86,0xb4,0x1, 0x1e,0x5, 0x1c, +0xe5,0x1c,0xbe,0xb0,0xa, 0x40,0x15,0x75,0x1c,0x0, 0xe5,0x2d,0xa, 0x3b,0x3e,0x34, +0xca,0x39,0x7e,0x1d,0x26,0x7f,0x3, 0x12,0x20,0xb9,0x1b,0xfd,0x74,0x2, 0x12,0x0, +0x1e,0x12,0x4d,0x93,0x50,0xb, 0x74,0x2, 0x7a,0xb3,0x38,0xf2,0xe4,0x7a,0xb3,0x38, +0x87,0xda,0x3b,0x22,0x49,0x35,0x1f,0x34,0x2, 0x21,0x0, 0x7f,0x13,0x2d,0x35,0xb, +0x1a,0x20,0x22,0x7e,0x37,0x2b,0x7, 0xbe,0x35,0x2a,0x22,0x12,0x4d,0xa5,0xb, 0x34, +0x7a,0x73,0x2b,0x20,0x22,0xca,0x79,0x7f,0x10,0x9f,0x0, 0x12,0xc1,0x17,0x4c,0xaa, +0x78,0x6, 0x7e,0x34,0x0, 0x40,0x80,0x6c,0x6c,0x99,0x80,0x38,0xa, 0xe9,0x2e,0xe4, +0x60,0xac,0x7d,0x7e,0x7a,0xf1,0x82,0x7a,0xe1,0x83,0xe4,0x93,0x7c,0x8b,0x90,0x60, +0xaa,0xe4,0x93,0x70,0xe, 0x7e,0xf3,0x2a,0x6e,0xac,0xf8,0x7e,0xb3,0x2a,0x70,0xa, +0xfb,0x2d,0xf7,0x7d,0xef,0x3e,0xe4,0x7f,0x61,0x2d,0xde,0xb, 0x6a,0xd0,0x6d,0xcc, +0x2f,0x6, 0xb, 0x90,0xbc,0xa9,0x38,0xc4,0xbe,0x8, 0x0, 0x0, 0x78,0x2, 0xb, 0xc, +0xa, 0x5a,0x6d,0x44,0x7f,0x10,0x7f,0x2, 0x12,0x1f,0x7, 0x7f,0x1, 0xb, 0xc, 0x7e, +0x34,0xc4,0x0, 0x7e,0x24,0x0, 0x9, 0x12,0x1f,0x7, 0xbe,0x34,0x0, 0xfa,0x28,0x4, +0x7e,0x34,0x0, 0xfa,0xda,0x79,0x22,0x7e,0xd, 0x26,0x2d,0x15,0xb, 0xa, 0x30,0x9d, +0x32,0x59,0x35,0x1f,0x34,0x5, 0x2c,0x22,0x7e,0x11,0x2c,0xac,0x1f,0x3e,0x4, 0x7e, +0x30,0x2, 0xac,0x3e,0x2d,0x10,0x7e,0x1d,0x31,0x2d,0x31,0xb, 0x1a,0x20,0x7a,0x27, +0x24,0xf2,0x74,0x2, 0xac,0xbe,0x49,0x35,0x34,0x0, 0xad,0x23,0x74,0xc, 0x22,0x7e, +0x34,0x0, 0x38,0xe4,0x2, 0x20,0xde,0x7e,0x8, 0x2a,0x6d,0x12,0xd, 0x72,0xe4,0x12, +0x0, 0xe, 0x74,0x1, 0x7e,0x70,0x99,0x12,0x13,0x2c,0x2, 0x0, 0x4e,0xb4,0x3, 0x5, +0x12,0x4e,0x8d,0x80,0x2, 0xe4,0x22,0x12,0x4e,0x72,0x74,0x1, 0x22,0x12,0xc0,0x75, +0xe4,0x12,0x0, 0xe, 0x7e,0x8, 0x2a,0x6d,0x2, 0xd, 0x72,0x12,0x7f,0x6f,0x38,0x2, +0xe4,0x22,0x12,0x7f,0x67,0x49,0x55,0x34,0x3b,0xbe,0xb0,0x2, 0x38,0x3, 0x2, 0x4e, +0xb4,0x2, 0x4e,0x7d,0x7e,0xd7,0x2b,0xd, 0xbe,0xb0,0x1, 0x28,0x2, 0xe4,0x22,0x12, +0x7e,0xf8,0x12,0x4e,0xe0,0x7a,0xd7,0x2b,0xd, 0x7e,0x73,0x2a,0xfa,0xa, 0x37,0x3e, +0x34,0x3e,0x34,0xe4,0x7e,0x50,0x1, 0x12,0x13,0x1, 0x12,0x4f,0xaf,0x74,0x1, 0x22, +0x7e,0x8, 0x2a,0x6d,0x2, 0x5, 0xb4,0xca,0x3b,0x7e,0xe3,0x2a,0x74,0x7e,0xf3,0x2a, +0xfa,0x74,0x1, 0x7a,0xb3,0x2a,0xfa,0x12,0x4e,0xe0,0x12,0xc0,0xbd,0x12,0x29,0x6f, +0x7e,0x17,0x2a,0xfe,0x6d,0x0, 0x12,0x20,0xde,0x7e,0xd0,0x7, 0x12,0x26,0x57,0x6c, +0xcc,0x80,0x19,0x7e,0x34,0x0, 0x1, 0x7c,0xbd,0x60,0x5, 0x3e,0x34,0x14,0x78,0xfb, +0x7c,0x67,0x12,0x4f,0xf0,0x4c,0x76,0x7a,0x29,0x70,0xb, 0xc0,0x12,0x7b,0xb7,0xa, +0x3c,0xbd,0x32,0x48,0xde,0x12,0x4f,0x9e,0x30,0x18,0xfd,0x12,0x7b,0xc6,0x7e,0xb3, +0x2a,0x73,0x7c,0x7e,0x12,0x7b,0x31,0x6c,0xcc,0x80,0x29,0x74,0x2, 0xac,0xbc,0x49, +0x35,0x6, 0xfc,0xbe,0x34,0x15,0x40,0x50,0x19,0x7e,0x34,0x0, 0x1, 0x7c,0xbd,0x60, +0x5, 0x3e,0x34,0x14,0x78,0xfb,0x7c,0xb7,0x64,0xff,0x12,0x4f,0xf0,0x5c,0x7b,0x7a, +0x29,0x70,0xb, 0xc0,0x12,0x7b,0xb7,0xa, 0x3c,0xbd,0x32,0x48,0xce,0x1b,0xd0,0xbe, +0xd0,0x0, 0x58,0x88,0x12,0x7b,0x39,0x74,0x2, 0x12,0xc0,0xe0,0x12,0x50,0x51,0x74, +0x2, 0x12,0x0, 0x1e,0x7a,0xf3,0x2a,0xfa,0x12,0x4e,0xe0,0xda,0x3b,0x22,0x74,0x2, +0x12,0x0, 0x1e,0x7e,0xb3,0x2a,0xfc,0x12,0x50,0x51,0x74,0x2, 0x12,0x0, 0x1e,0x74, +0x5, 0x7e,0x70,0x9b,0x12,0x13,0x2c,0x12,0x4f,0xc1,0x7e,0xb3,0x2a,0xfc,0x2, 0xe, +0x94,0x6c,0xaa,0x80,0x22,0xa, 0x3a,0x9, 0x73,0x2a,0xdc,0x2e,0x34,0x20,0x73,0x12, +0x91,0x6d,0x7c,0x7b,0xa, 0x47,0x7e,0x50,0x2, 0xac,0x5a,0x7e,0xf, 0x38,0xc0,0x2d, +0x12,0x79,0x40,0x0, 0x48,0xb, 0xa0,0x7e,0x63,0x2a,0x74,0xbc,0x6a,0x38,0xd6,0x22, +0xa, 0x2c,0x2e,0x27,0x2a,0xfe,0x7e,0x29,0x70,0x22,0xe5,0xd, 0x60,0x52,0xe5,0xd, +0x30,0xe0,0x6, 0x53,0xd, 0xfe,0x12,0x4e,0xe0,0xe5,0xd, 0x30,0xe1,0x14,0x53,0xd, +0xfd,0x7e,0xb3,0x37,0xe0,0x70,0x4, 0x74,0x1, 0x80,0x1, 0xe4,0x12,0xc0,0xe0,0x12, +0x50,0xd4,0xe5,0xd, 0x30,0xe2,0x29,0x53,0xd, 0xfb,0xe4,0x7a,0xb3,0x37,0xe1,0x7e, +0xb3,0x37,0xe0,0x70,0xa, 0x74,0x1, 0x12,0x0, 0x1e,0x12,0x3f,0x67,0x80,0x7, 0xe4, +0x12,0x0, 0x1e,0x12,0x3f,0x49,0x12,0x3b,0x15,0x7e,0xb3,0x2a,0xfc,0x2, 0x50,0x51, +0x22,0xca,0x79,0x7c,0xfb,0x7e,0x8, 0x24,0xf2,0x12,0x3f,0xe9,0x7e,0xa3,0x2a,0x73, +0x7e,0x73,0x2a,0x74,0x6c,0xee,0x80,0x1e,0xa, 0x2e,0x9, 0x62,0x2a,0xdc,0xa, 0x26, +0x12,0x51,0x4b,0x93,0x7c,0x6b,0xbe,0x60,0x1c,0x50,0x9, 0xa, 0x2e,0x12,0x50,0xca, +0x19,0xb2,0x24,0xf2,0xb, 0xe0,0xbc,0x7e,0x38,0xde,0x6c,0xee,0x80,0x1a,0xa, 0x2e, +0x9, 0x62,0x2a,0xb9,0xbe,0x60,0x23,0x50,0xd, 0xa, 0x1e,0xa, 0x27,0x2d,0x21,0x12, +0x50,0xca,0x19,0xb2,0x25,0xe, 0xb, 0xe0,0xbc,0xae,0x38,0xe2,0x6c,0xee,0x7e,0x30, +0xe, 0xac,0x3e,0x2e,0x14,0x24,0xf2,0x6d,0x0, 0x7c,0xbf,0x7c,0x7e,0x12,0x11,0xba, +0xb, 0xe0,0xbe,0xe0,0x5, 0x40,0xe7,0xda,0x79,0x22,0x2e,0x27,0x2a,0xfe,0x7e,0x29, +0xb0,0xa, 0x26,0x22,0xca,0x79,0x7c,0xfb,0x7e,0x8, 0x1f,0x34,0x12,0x3f,0xe9,0x7e, +0xa3,0x2a,0x73,0x7e,0x63,0x2a,0x74,0x6c,0xee,0x80,0x1f,0xa, 0x2e,0x9, 0x72,0x2a, +0xdc,0xbe,0x70,0x1c,0x50,0x12,0xa, 0x27,0x12,0x51,0x4b,0x93,0x7c,0x7b,0x7e,0xb3, +0x2a,0xfb,0xa, 0x27,0x19,0xb2,0x1f,0x34,0xb, 0xe0,0xbc,0x6e,0x38,0xdd,0x6c,0xee, +0x80,0x17,0xa, 0x3e,0x9, 0x73,0x2a,0xb9,0xbe,0x70,0x23,0x50,0xa, 0x7e,0x63,0x2a, +0xfb,0xa, 0x27,0x19,0x62,0x1f,0x50,0xb, 0xe0,0xbc,0xae,0x38,0xe5,0x6c,0xee,0x7e, +0x30,0xe, 0xac,0x3e,0x2e,0x14,0x1f,0x34,0x6d,0x0, 0x7c,0xbf,0x7c,0x7e,0x12,0x11, +0xf8,0xb, 0xe0,0xbe,0xe0,0x5, 0x40,0xe7,0xda,0x79,0x22,0x2e,0x24,0x20,0x73,0x7a, +0x51,0x82,0x7a,0x41,0x83,0xe4,0x22,0x7a,0xb3,0x34,0xc4,0x7c,0xbf,0x6c,0x77,0x7c, +0x67,0x7c,0x7b,0xc4,0x23,0x54,0x1f,0x7c,0xab,0x7c,0xb7,0x54,0x7, 0xa, 0x2b,0x2e, +0x24,0x0, 0x5e,0x12,0x51,0x4f,0x93,0x7c,0x7b,0x4c,0x66,0x68,0xf, 0xa, 0x2a,0x2e, +0x24,0x27,0x72,0x7e,0x29,0xb0,0x4c,0xb7,0x7a,0x29,0xb0,0x22,0x7c,0xb7,0x64,0xff, +0xa, 0x2a,0x2e,0x24,0x27,0x72,0x7e,0x29,0x70,0x5c,0x7b,0x7a,0x29,0x70,0x22,0xca, +0xf8,0x6c,0xaa,0x6d,0x33,0x7e,0x24,0x7f,0xff,0x7e,0xf0,0x1, 0x80,0x32,0xa, 0x1f, +0x7e,0xb3,0x2a,0x6e,0xa, 0xb, 0x2d,0x1, 0x3e,0x4, 0x49,0x10,0x4, 0xfc,0xbe,0x14, +0x3, 0xe8,0x8, 0x1a,0xb, 0xa0,0xbd,0x13,0x8, 0x4, 0x7d,0x31,0x80,0x10,0xbd,0x12, +0x58,0xc, 0x7d,0x21,0xbe,0x24,0x0, 0x0, 0x18,0x4, 0x7e,0x24,0x0, 0x1, 0xb, 0xf0, +0x7e,0xb3,0x2a,0x6f,0xa, 0xb, 0x1b,0x4, 0xa, 0x1f,0xbd,0x10,0x48,0xc0,0x7e,0xb3, +0x34,0xa1,0x7a,0xb3,0x36,0xf3,0x7a,0xa3,0x36,0xf7,0xe4,0x7a,0xb3,0x36,0xf5,0xbe, +0xa0,0xb, 0x78,0x18,0x9d,0x32,0xbe,0x34,0x4, 0xb0,0x58,0x10,0x7e,0x37,0x28,0x8a, +0xbe,0x34,0x1, 0x5e,0x58,0x6, 0x74,0x1, 0x7a,0xb3,0x34,0xa1,0x7e,0x73,0x34,0xa1, +0xbe,0x70,0x0, 0x28,0x3e,0x6c,0xff,0x80,0x35,0x7c,0xbf,0x12,0x97,0xfc,0x60,0x22, +0x74,0x22,0x7a,0xb3,0x36,0xf4,0x7e,0xb3,0x34,0xc4,0x4, 0x12,0x51,0x57,0x7e,0x73, +0x34,0xc4,0xbe,0x70,0x5, 0x40,0x15,0xe4,0x7a,0xb3,0x34,0xc4,0x7a,0xb3,0x34,0xa1, +0x80,0xa, 0xe4,0x12,0x51,0x57,0x74,0x33,0x7a,0xb3,0x36,0xf5,0xb, 0xf0,0x12,0x52, +0x66,0x38,0xc6,0xda,0xf8,0x22,0x7e,0x73,0x28,0x84,0xbc,0x7f,0x22,0xca,0xd8,0xca, +0x79,0xc2,0x3, 0x6d,0x88,0x7a,0x87,0x38,0x3c,0xe4,0x7a,0xb3,0x1f,0x58,0xe5,0x1d, +0xbe,0xb0,0xff,0x50,0x2, 0x5, 0x1d,0x7e,0xb3,0x28,0x84,0x60,0xc, 0x12,0x8c,0x87, +0xb, 0x1a,0x80,0xbe,0x87,0x7, 0xfa,0x28,0xa, 0xc2,0x10,0x6d,0x88,0x7a,0x87,0x37, +0xfd,0x61,0xa0,0x12,0x93,0x91,0x60,0x12,0x7e,0x34,0x62,0xe, 0x12,0x87,0xc4,0x7a, +0x87,0x37,0xf3,0x12,0x54,0x2b,0x7a,0x87,0x37,0xfd,0x7e,0x87,0x37,0xf3,0x4d,0x88, +0x68,0x6, 0x74,0x1, 0x7a,0xb3,0x28,0xa9,0x6c,0xff,0x80,0x7b,0xe4,0xa, 0x3f,0x19, +0xb3,0x1f,0x34,0x12,0x54,0x3c,0x9, 0xe5,0x26,0xfb,0x7e,0x8, 0x1f,0x52,0x7c,0xbd, +0x7c,0x7e,0x12,0x55,0xb9,0x7d,0x93,0x7e,0x87,0x37,0xfd,0xbd,0x89,0x50,0x4, 0x7a, +0x97,0x37,0xfd,0x7e,0x87,0x38,0x3c,0xbd,0x89,0x50,0x4, 0x7a,0x97,0x38,0x3c,0xe5, +0x1d,0xbe,0xb0,0x5, 0x38,0x1f,0x7e,0x8, 0x37,0xff,0x12,0x54,0x4e,0x50,0x7, 0x12, +0x54,0x45,0xd2,0x3, 0x80,0x2f,0x7e,0x8, 0x37,0xff,0x7e,0x18,0x1f,0x52,0x12,0x57, +0x0, 0x50,0x22,0x80,0x10,0x12,0x54,0x2b,0xbd,0x89,0x38,0x19,0x7e,0x8, 0x1f,0x52, +0x12,0x91,0x86,0x50,0x10,0x12,0x54,0x45,0x7e,0x8, 0x1f,0x58,0x7e,0x18,0x1f,0x52, +0x12,0x93,0x6b,0xd2,0x3, 0xb, 0xf0,0x12,0x52,0x66,0x38,0x80,0x30,0x3, 0x37,0x6c, +0xff,0x80,0x20,0x12,0x54,0x3c,0x9, 0xe5,0x26,0xfb,0x7e,0x8, 0x1f,0x58,0x12,0x54, +0x4e,0x40,0x9, 0xa, 0x3f,0x9, 0xb3,0x1f,0x34,0xb4,0x1, 0x5, 0x7c,0xbf,0x12,0x54, +0x7, 0xb, 0xf0,0x12,0x52,0x66,0x38,0xdb,0x75,0x1d,0x0, 0x7e,0x34,0x62,0xe, 0x12, +0x23,0x9e,0x7a,0x37,0x37,0xf3,0x7e,0x63,0x1f,0x58,0x7e,0x70,0x6, 0xac,0x67,0xb, +0x34,0xca,0x39,0x7e,0x18,0x1f,0x58,0x7e,0x8, 0x37,0xff,0x12,0x20,0xb9,0x1b,0xfd, +0x7e,0x37,0x37,0xf3,0x4d,0x33,0x78,0x39,0x90,0x62,0x9, 0xe4,0x93,0xa, 0x3b,0xbe, +0x37,0x37,0xfd,0x38,0x40,0x7c,0x7b,0x1e,0x70,0xa, 0x37,0xbe,0x37,0x38,0x3c,0x38, +0x34,0x90,0x60,0x51,0x12,0x54,0x33,0x7e,0x73,0x26,0xf7,0xa, 0x37,0xbd,0x32,0x8, +0x24,0x90,0x60,0x50,0x12,0x54,0x33,0x7e,0x73,0x26,0xf6,0xa, 0x37,0xbd,0x32,0x8, +0x14,0x6c,0xff,0x80,0x7, 0x7c,0xbf,0x12,0x54,0x7, 0xb, 0xf0,0x12,0x52,0x66,0x38, +0xf4,0xd2,0x3, 0x80,0x6, 0x6d,0x33,0x7a,0x37,0x37,0xfd,0xa2,0x3, 0x92,0x10,0x12, +0x56,0xe9,0xda,0x79,0xda,0xd8,0x22,0x7c,0xab,0x7e,0xb3,0x39,0xb, 0x70,0x1b,0x7e, +0xb3,0x28,0xa8,0x70,0x15,0x12,0xc1,0x7, 0x68,0x10,0x7e,0xb3,0x2a,0x6b,0xbe,0xb0, +0x1, 0x68,0x7, 0x7c,0xba,0x6c,0x77,0x2, 0x51,0x5f,0x22,0x90,0x62,0x9, 0xe4,0x93, +0xa, 0x8b,0x22,0xe4,0x93,0x7c,0x7b,0x1e,0x70,0xa, 0x27,0x22,0x74,0x2, 0xac,0xbf, +0x9, 0xd5,0x26,0xfa,0x22,0x74,0x1, 0xa, 0x8f,0x19,0xb8,0x1f,0x34,0x22,0x7c,0xbd, +0x7c,0x7e,0x7c,0x6b,0xc2,0x4, 0x6c,0xaa,0x80,0x30,0x7e,0x50,0x6, 0xac,0x5a,0x7f, +0x70,0x2d,0xf2,0xb, 0xf4,0x29,0xb7,0x0, 0x2, 0xbc,0xb6,0x40,0x1b,0x7e,0x7b,0xb0, +0xbc,0xb6,0x38,0x14,0x29,0xb7,0x0, 0x3, 0xbc,0xb7,0x40,0xc, 0x29,0xb7,0x0, 0x1, +0xbc,0xb7,0x38,0x4, 0xd2,0x4, 0x80,0x9, 0xb, 0xa0,0x7e,0xb, 0xb0,0xbc,0xba,0x38, +0xc9,0xa2,0x4, 0x22,0xca,0xd8,0xca,0x79,0x7e,0xa3,0x2a,0x6e,0x7e,0x47,0x28,0x99, +0xe4,0x7a,0xb3,0x28,0xa6,0x7e,0xb3,0x26,0xf0,0xbe,0xb0,0x0, 0x28,0x4c,0x7e,0x73, +0x28,0x85,0xbe,0x70,0x0, 0x28,0x43,0x6c,0xff,0x80,0x3b,0x7e,0x50,0x2, 0xac,0x5f, +0x9, 0xd2,0x27,0x36,0x9, 0xe2,0x27,0x37,0x7e,0x50,0x2, 0xac,0x5e,0x49,0x12,0x4, +0xfc,0x6d,0x22,0x9e,0x27,0x2a,0x53,0xbd,0x12,0x58,0x19,0x12,0x55,0xa6,0x49,0x12, +0x4, 0xfc,0x6d,0x22,0x9e,0x27,0x2a,0x51,0xbd,0x12,0x58,0x8, 0x74,0x1, 0x7a,0xb3, +0x28,0xa6,0x80,0x6, 0xb, 0xf0,0xbc,0x7f,0x38,0xc1,0xe4,0x7a,0xb3,0x28,0xa7,0x7e, +0xb3,0x26,0x83,0x70,0x40,0x12,0x8f,0xe3,0x28,0x3b,0x6c,0xff,0x80,0x33,0x7e,0x50, +0x2, 0xac,0x5f,0x9, 0xd2,0x26,0xfa,0x9, 0xe2,0x26,0xfb,0x12,0x55,0xa6,0x49,0x2, +0x5, 0x7a,0x6d,0x11,0x9d,0x14,0xbd,0x1, 0x48,0xd, 0x7e,0x10,0x2, 0xac,0x1e,0x49, +0x20,0x5, 0x7a,0xbd,0x21,0x58,0x8, 0x74,0x1, 0x7a,0xb3,0x28,0xa7,0x80,0x6, 0xb, +0xf0,0xbc,0x7f,0x38,0xc9,0x12,0xb1,0x64,0xe4,0x7a,0xb3,0x28,0xa9,0x7e,0x37,0x28, +0x88,0x2e,0x37,0x28,0x86,0xbe,0x37,0x28,0x9f,0x28,0x6, 0x74,0x1, 0x7a,0xb3,0x28, +0xa9,0x74,0x1, 0x7a,0xb3,0x28,0xaa,0x6c,0xff,0x80,0x1f,0x12,0x55,0xaf,0x49,0x25, +0x25,0xf7,0x7d,0x43,0x9d,0x42,0x7d,0x34,0x12,0x21,0x0, 0xbe,0x37,0x28,0x9d,0x8, +0x7, 0xe4,0x7a,0xb3,0x28,0xaa,0x80,0x7, 0xb, 0xf0,0x12,0x52,0x66,0x38,0xdc,0x6c, +0xff,0x80,0x9, 0x12,0x55,0xaf,0x59,0x35,0x25,0xf7,0xb, 0xf0,0x12,0x52,0x66,0x38, +0xf2,0xda,0x79,0xda,0xd8,0x22,0xa, 0x1d,0xa, 0x2a,0x2d,0x21,0x3e,0x24,0x22,0x7c, +0xbf,0x12,0x37,0x6f,0x74,0x2, 0xac,0xbf,0x22,0xca,0x3b,0x7c,0xc7,0x7c,0xfb,0x7f, +0x40,0x6d,0x33,0x7a,0x35,0x24,0x7e,0xa3,0x2a,0x6d,0x7e,0x73,0x2a,0x6e,0x4c,0xcc, +0x78,0x5, 0x7e,0xc0,0x1, 0x80,0xd, 0x7c,0xb7,0x14,0xbc,0xbc,0x78,0x6, 0xa, 0x6c, +0x1b,0x65,0x7c,0xcd,0x4c,0xff,0x78,0x5, 0x7e,0xf0,0x1, 0x80,0xb, 0x7c,0xba,0x14, +0xbc,0xbf,0x78,0x4, 0xa, 0x7f,0x1b,0x75,0x7f,0x4, 0x7e,0x34,0x0, 0x6, 0xe4,0x12, +0x20,0xde,0x7e,0x73,0x2a,0x6d,0xa, 0x37,0x1b,0x34,0x7a,0x4b,0x70,0x7e,0x73,0x2a, +0x6e,0xa, 0x37,0x1b,0x34,0x39,0x74,0x0, 0x1, 0x7c,0xec,0x80,0x1c,0x75,0x26,0x0, +0x7c,0xdf,0x80,0xa, 0x12,0x91,0xd5,0x70,0xa, 0x12,0x56,0xd3,0x1b,0xd0,0xbe,0xd0, +0x0, 0x58,0xf1,0xe5,0x26,0x60,0x7, 0x1b,0xe0,0xbe,0xe0,0x0, 0x58,0xdf,0x7c,0xec, +0x80,0x23,0x75,0x26,0x0, 0x1a,0x3f,0xb, 0x34,0x7c,0xd7,0x80,0xa, 0x12,0x91,0xd5, +0x70,0xd, 0x12,0x56,0xd3,0xb, 0xd0,0x7e,0x73,0x2a,0x6d,0xbc,0x7d,0x18,0xee,0xe5, +0x26,0x60,0x7, 0x1b,0xe0,0xbe,0xe0,0x0, 0x58,0xd8,0x1a,0x3c,0xb, 0x34,0x7c,0xe7, +0x80,0x1c,0x75,0x26,0x0, 0x7c,0xdf,0x80,0xa, 0x12,0x91,0xd5,0x70,0xa, 0x12,0x56, +0xd3,0x1b,0xd0,0xbe,0xd0,0x0, 0x58,0xf1,0xe5,0x26,0x60,0xa, 0xb, 0xe0,0x7e,0x73, +0x2a,0x6e,0xbc,0x7e,0x18,0xdc,0x1a,0x3c,0xb, 0x34,0x7c,0xe7,0x80,0x21,0x75,0x26, +0x0, 0x1a,0x6f,0xb, 0x64,0x80,0xa, 0x12,0x91,0xd5,0x70,0xd, 0x12,0x56,0xd3,0xb, +0xd0,0x7e,0x73,0x2a,0x6d,0xbc,0x7d,0x18,0xee,0xe5,0x26,0x60,0xa, 0xb, 0xe0,0x7e, +0x73,0x2a,0x6e,0xbc,0x7e,0x18,0xd7,0x7e,0x35,0x24,0x7d,0x23,0x39,0x54,0x0, 0x5, +0xda,0x3b,0x22,0x5, 0x26,0x7e,0x35,0x24,0xb, 0x34,0x7a,0x35,0x24,0x22,0x12,0x57, +0x32,0x12,0x51,0x9f,0x7a,0xb3,0x2a,0xc, 0x22,0x30,0x10,0x13,0x12,0xc0,0xf7,0x68, +0x6, 0x7e,0xb3,0x39,0xb, 0x60,0x8, 0x7e,0x34,0xb, 0xb8,0x7a,0x37,0x37,0xfb,0x22, +0x7f,0x61,0x7f,0x50,0x7e,0x6b,0x90,0x80,0x1f,0x29,0x86,0x0, 0x1, 0x80,0xf, 0x7f, +0x5, 0x7c,0xb9,0x7c,0x78,0x12,0x54,0x52,0x50,0x2, 0xd3,0x22,0xb, 0x80,0x29,0x76, +0x0, 0x3, 0xbc,0x78,0x50,0xe9,0xb, 0x90,0x29,0x76,0x0, 0x2, 0xbc,0x79,0x50,0xd9, +0xc3,0x22,0x7e,0xa3,0x28,0x84,0xe4,0x7a,0xb3,0x34,0xa2,0x6c,0x33,0x80,0x3d,0x7e, +0x70,0x2, 0xac,0x73,0x9, 0x23,0x26,0xfb,0x7e,0x10,0x1, 0x6c,0x0, 0x80,0x27,0xbc, +0x3, 0x68,0x21,0x7e,0x70,0x2, 0xac,0x70,0x9, 0x93,0x26,0xfb,0xa, 0x29,0xa, 0x32, +0x12,0x35,0x67,0x18,0x2, 0xb, 0x10,0xbe,0x10,0x2, 0x40,0x8, 0x74,0x2, 0x7a,0xb3, +0x34,0xa2,0x80,0x6, 0xb, 0x0, 0xbc,0xa0,0x38,0xd5,0xb, 0x30,0xbc,0xa3,0x38,0xbf, +0x2, 0x57,0x83,0xca,0xf8,0x7e,0x33,0x28,0x84,0x6c,0x22,0x80,0x45,0x74,0x2, 0xac, +0xb2,0x9, 0x15,0x26,0xfa,0x9, 0x5, 0x26,0xfb,0x7e,0xa0,0x1, 0x6c,0x99,0x80,0x2c, +0xbc,0x92,0x68,0x26,0x7e,0x70,0x2, 0xac,0x79,0x9, 0x83,0x26,0xfa,0x9, 0xf3,0x26, +0xfb,0xa, 0x28,0xa, 0x31,0x12,0x35,0x67,0x18,0xb, 0xa, 0x2f,0xa, 0x30,0x12,0x35, +0x67,0x8, 0x2, 0xb, 0xa0,0xbe,0xa0,0x3, 0x50,0x6, 0xb, 0x90,0xbc,0x39,0x38,0xd0, +0xb, 0x20,0xbc,0x32,0x38,0xb7,0x7e,0xb3,0x35,0x3e,0xbe,0xb0,0x0, 0x28,0x12,0x14, +0x7a,0xb3,0x35,0x3e,0xbe,0xb0,0x14,0x28,0x8, 0x7e,0x34,0x0, 0x78,0x7a,0x37,0x2a, +0x5a,0x7e,0xb3,0x36,0xec,0x70,0x58,0x7e,0xb3,0x39,0xb, 0x70,0x52,0x7e,0xb3,0x36, +0x71,0x70,0x4c,0x7e,0x37,0x37,0xfd,0xbe,0x34,0x0, 0x14,0x50,0x42,0x7e,0x37,0x28, +0x8a,0xbe,0x34,0x3, 0x20,0x58,0x38,0x7e,0xb3,0x28,0x84,0xbe,0xb0,0x3, 0x40,0x2f, +0xbe,0xa0,0x3, 0x40,0x2a,0x7e,0xb3,0x26,0x85,0xbe,0xb0,0x3, 0x50,0x9, 0x7e,0xb3, +0x26,0x84,0xbe,0xb0,0x3, 0x40,0x18,0x7e,0xb3,0x26,0xf6,0xbe,0xb0,0x8, 0x50,0x9, +0x7e,0xb3,0x26,0xf7,0xbe,0xb0,0x8, 0x40,0x6, 0x74,0x1e,0x7a,0xb3,0x35,0x3e,0xda, +0xf8,0x22,0xca,0xd8,0xca,0x79,0x7e,0x73,0x2a,0x6e,0x7e,0xf3,0x2a,0x6d,0xac,0xf7, +0x7d,0x37,0x3e,0x34,0x7e,0x8, 0x1f,0x34,0xe4,0x12,0x20,0xde,0x7e,0xb3,0x37,0xb7, +0xb4,0x1, 0x64,0x7e,0x73,0x37,0xb8,0xbe,0x70,0x0, 0x28,0x5b,0x6c,0xdd,0x80,0x3c, +0x12,0x26,0x57,0x12,0x28,0x62,0x6d,0x33,0x80,0x28,0x7e,0x35,0x24,0x3e,0x34,0x49, +0x33,0xd, 0xc8,0x12,0x21,0x0, 0x7a,0x35,0x26,0x7e,0x35,0x24,0x7d,0x13,0x3e,0x14, +0x49,0x21,0x1f,0x34,0xbe,0x25,0x26,0x58,0x7, 0x7e,0x25,0x26,0x59,0x21,0x1f,0x34, +0xb, 0x34,0x7a,0x35,0x24,0xbe,0x75,0x24,0x38,0xd0,0xb, 0xd0,0x7e,0x73,0x37,0xb8, +0xbc,0x7d,0x38,0xbc,0x7d,0x37,0x3e,0x34,0xca,0x39,0x7e,0x18,0x1f,0x34,0x7e,0x8, +0xd, 0xc8,0x12,0x20,0xb9,0x1b,0xfd,0xda,0x79,0xda,0xd8,0x22,0x7e,0xb3,0x37,0x5, +0xb4,0x1, 0x4, 0xe4,0x2, 0x58,0xe8,0x22,0x70,0x3, 0xd2,0x86,0x22,0xc2,0x86,0x22, +0x12,0x68,0x10,0x12,0x7d,0x94,0x7e,0xb3,0x37,0x8, 0xb4,0x1, 0x74,0x12,0xb6,0xb8, +0x7e,0x34,0x60,0xa5,0x12,0x23,0x9e,0x12,0x26,0x5b,0x12,0x91,0x18,0x12,0x47,0x2c, +0x12,0x28,0x62,0x50,0xde,0x12,0xab,0xb8,0x12,0x75,0xe9,0x7e,0xb3,0x37,0x5, 0xb4, +0x1, 0x4, 0xe4,0x12,0x58,0xe8,0x12,0xaf,0x66,0x12,0xa7,0xbd,0x12,0x5e,0xaa,0x40, +0xc2,0x12,0x88,0x5f,0x12,0x5e,0xaa,0x40,0xba,0x12,0x56,0xde,0x12,0x2a,0x3, 0x12, +0x0, 0x6e,0x12,0x5f,0x2f,0x12,0x5f,0x83,0x12,0x5b,0x94,0x12,0x96,0x24,0x12,0x5e, +0xc2,0x12,0x5f,0xcd,0x12,0xaa,0xc3,0x12,0x87,0x74,0x7e,0xb3,0x36,0xf1,0xbe,0xb0, +0x88,0x68,0x3, 0x12,0x59,0x77,0x12,0x67,0xfa,0x12,0x26,0x66,0x12,0x62,0xa5,0x80, +0x82,0x12,0x2f,0xee,0x2, 0x58,0xdc,0xca,0x3b,0x75,0x24,0x0, 0x6c,0xff,0x12,0x35, +0xd3,0x75,0x28,0x3, 0x6c,0xee,0x7e,0x48,0x29,0xbc,0x7e,0xb3,0x2a,0xb, 0x70,0xe, +0x7e,0xb3,0x2a,0x7, 0x70,0x8, 0x7e,0xb3,0x2a,0x8, 0x70,0x2, 0x61,0x6b,0x30,0xe, +0x6, 0x7e,0x68,0x33,0x28,0x80,0x4, 0x7e,0x68,0x32,0xea,0x7f,0x6, 0x12,0x7e,0xef, +0x7e,0x73,0x2a,0x4, 0x7a,0x6b,0x70,0x6c,0xdd,0x61,0x1c,0x74,0x9, 0xac,0xbd,0x9, +0xc5,0x29,0xc, 0x7c,0xbc,0x54,0xf, 0xa, 0x3b,0x12,0x5e,0x3d,0xf5,0x28,0x7c,0xbc, +0x54,0xf0,0xbe,0xb0,0x0, 0x28,0x2, 0x61,0x1a,0xe5,0x28,0xbe,0xb0,0x3, 0x78,0x2, +0x61,0x1a,0x7e,0x8, 0x0, 0x28,0x7c,0xbc,0x12,0x9e,0xec,0x50,0x2, 0x61,0x1a,0x74, +0x9, 0xac,0xbd,0x9, 0xb5,0x29,0xd, 0xf5,0x25,0x74,0x9, 0xac,0xbd,0x9, 0xb5,0x29, +0xe, 0xc4,0x54,0xf0,0xf5,0x26,0x7e,0x73,0x2a,0x4d,0xbc,0x7c,0x28,0x54,0x7e,0xb3, +0x2a,0x9, 0x70,0x2a,0x75,0x29,0xf, 0x7e,0x8, 0x0, 0x25,0xa, 0x3c,0x2e,0x34,0x32, +0xd6,0x6d,0x22,0x74,0x1, 0x12,0x7f,0xd4,0x75,0x29,0x20,0x7e,0x8, 0x0, 0x26,0xa, +0x3c,0x2e,0x34,0x32,0xe0,0x6d,0x22,0x74,0x10,0x12,0x7f,0xd4,0x80,0xe, 0xa, 0x3c, +0x9, 0xb3,0x32,0xd6,0xf5,0x25,0x9, 0xb3,0x32,0xe0,0xf5,0x26,0xa, 0x3c,0x12,0x5e, +0x3d,0xb4,0x1, 0xe, 0xe4,0xa, 0x3c,0x19,0xb3,0x32,0xd6,0x19,0xb3,0x32,0xe0,0x12, +0x35,0xd3,0x7e,0xb3,0x2a,0x64,0xb4,0xff,0x13,0x75,0x25,0x0, 0x74,0x9, 0xac,0xbd, +0x9, 0xb5,0x29,0xc, 0xbe,0xb0,0xff,0x68,0x3, 0x75,0x25,0x1, 0x7e,0x90,0x9, 0xac, +0x9d,0x49,0xb4,0x29,0x8, 0x49,0xa4,0x29,0xa, 0xe5,0x28,0xb4,0x1, 0x2c,0x75,0x27, +0x0, 0x80,0x1d,0x7e,0x71,0x27,0x74,0x9, 0xac,0x7b,0x9, 0xb3,0x33,0x6a,0x54,0xf, +0xbc,0xbc,0x78,0xa, 0x49,0xb3,0x33,0x66,0x49,0xa3,0x33,0x68,0x80,0xc, 0x5, 0x27, +0x90,0x60,0x99,0xe4,0x93,0xbe,0xb1,0x27,0x38,0xd9,0x5e,0xb4,0xf, 0xff,0x5e,0xa4, +0xf, 0xff,0x9, 0x74,0x29,0xc, 0xa, 0x57,0xc4,0x54,0xf0,0x7c,0xab,0xe4,0x2d,0xa5, +0xbe,0x70,0xff,0x68,0x16,0xe5,0x28,0xbe,0xb0,0x1, 0x68,0x2, 0x5, 0x24,0xb, 0xf0, +0xe5,0x28,0xa, 0x5b,0x12,0xb9,0x3c,0x2d,0xb5,0x80,0x4, 0x2e,0xb4,0xc0,0x0, 0x7e, +0x70,0x6, 0xac,0x7e,0x7f,0x6, 0x2d,0x13,0x79,0xb0,0x0, 0x2, 0x7f,0x6, 0x2d,0x13, +0x79,0xa0,0x0, 0x4, 0xe5,0x25,0x7f,0x6, 0x2d,0x13,0x39,0xb0,0x0, 0x6, 0xe5,0x26, +0x2d,0x3d,0x7d,0x2c,0x39,0xb1,0x0, 0x7, 0xb, 0xe0,0xb, 0xd0,0x7e,0x73,0x2a,0x4d, +0xbc,0x7d,0x28,0x2, 0x21,0xbb,0xe5,0x24,0x39,0xb6,0x0, 0x1, 0x7e,0xb3,0x37,0x31, +0xb4,0x1, 0x9, 0x7e,0xb3,0x2a,0x8, 0xb4,0x1, 0x17,0x80,0xd, 0xbe,0xf0,0x0, 0x38, +0x6, 0x7e,0xb3,0x2a,0x8, 0x60,0xa, 0xb2,0xe, 0x12,0x7e,0x81,0x74,0x1, 0x12,0x58, +0xe8,0x7e,0xb3,0x2a,0x7, 0x60,0x5, 0x7f,0x4, 0x12,0x5e,0x61,0xe4,0x7a,0xb3,0x2a, +0xb, 0x7a,0xb3,0x2a,0x7, 0x7a,0xb3,0x2a,0x8, 0x80,0x4, 0xe4,0x12,0x58,0xe8,0x12, +0x5f,0xc2,0xca,0x59,0x7e,0x18,0x29,0x8, 0x7e,0x8, 0x33,0x66,0x12,0x20,0xb9,0x1b, +0xfd,0x4c,0xff,0x78,0xc, 0x12,0x73,0xe5,0x7e,0x8, 0x33,0x66,0x74,0xff,0x12,0x20, +0xde,0xda,0x3b,0x22,0xca,0xf8,0x7e,0x68,0x29,0xbc,0x6c,0xaa,0x80,0x19,0x7e,0x70, +0xff,0x12,0x5e,0x8b,0xe4,0xa, 0x4a,0x19,0xb4,0x1f,0x34,0x74,0xff,0x19,0xb4,0x1f, +0x46,0x19,0xb4,0x1f,0x50,0xb, 0xa0,0x12,0x5e,0x25,0x38,0xe2,0x7e,0x73,0x2a,0x2, +0xa5,0xbf,0x0, 0x23,0x7e,0xb3,0x34,0x4f,0x70,0x2, 0xa1,0xab,0x6c,0xaa,0x80,0x10, +0x7e,0x44,0x7f,0xff,0x12,0x5e,0x95,0x79,0x40,0x0, 0x14,0x12,0x5e,0x45,0xb, 0xa0, +0x12,0x5e,0x25,0x38,0xeb,0xa1,0xab,0x7e,0xb3,0x34,0x4f,0x70,0x3d,0xbe,0x70,0x0, +0x28,0x38,0x6c,0xaa,0x80,0x2a,0x7e,0x90,0x9, 0xac,0x9a,0x49,0x34,0x28,0xae,0x12, +0x5e,0x95,0x79,0x30,0x0, 0x14,0x49,0x34,0x28,0xb0,0x7f,0x6, 0x2d,0x12,0x79,0x30, +0x0, 0x28,0x74,0x1, 0xa, 0x3a,0x19,0xb3,0x1f,0x34,0x19,0xa4,0x28,0xb2,0xb, 0xa0, +0x7e,0xb3,0x2a,0x2, 0xbc,0xba,0x38,0xce,0xa1,0xab,0x6c,0xaa,0x80,0x17,0x12,0x5e, +0x57,0x3e,0x34,0x59,0x43,0x15,0x4e,0x59,0x43,0x15,0x50,0x59,0x43,0x15,0x76,0x59, +0x43,0x15,0x78,0xb, 0xa0,0x12,0x5e,0x25,0x38,0xe4,0x6c,0xaa,0x80,0x41,0x6c,0xff, +0x80,0x36,0x7e,0x70,0x2, 0xac,0x7f,0x7f,0x6, 0x2d,0x13,0x69,0x30,0x0, 0x14,0xbe, +0x34,0x7f,0xff,0x68,0x21,0xa, 0x4f,0x9, 0xb4,0x1f,0x50,0xb4,0xff,0x18,0x12,0x5e, +0x35,0x59,0x32,0x15,0x4e,0x69,0x30,0x0, 0x28,0x59,0x32,0x15,0x50,0x12,0x5e,0x4e, +0x19,0xb4,0x1f,0x50,0x80,0x7, 0xb, 0xf0,0x12,0x5e,0x2d,0x38,0xc5,0xb, 0xa0,0x7e, +0xb3,0x34,0x4f,0xbc,0xba,0x38,0xb7,0x6c,0xaa,0x80,0x28,0xa, 0x3a,0x9, 0xb3,0x1f, +0x46,0xb4,0xff,0x1d,0x6c,0xff,0x80,0x14,0xa, 0x4f,0x9, 0xb4,0x1f,0x50,0xb4,0xff, +0x9, 0x12,0x5e,0x4e,0x19,0xb4,0x1f,0x50,0x80,0x7, 0xb, 0xf0,0x12,0x5e,0x2d,0x38, +0xe7,0xb, 0xa0,0x12,0x5e,0x25,0x38,0xd3,0x6c,0xaa,0x80,0x1a,0x7e,0x70,0x9, 0xac, +0x7a,0x49,0x43,0x28,0xae,0x12,0x5e,0x35,0x59,0x42,0x15,0x76,0x49,0x33,0x28,0xb0, +0x59,0x32,0x15,0x78,0xb, 0xa0,0x7e,0xb3,0x2a,0x2, 0xbc,0xba,0x38,0xde,0x7e,0x34, +0x15,0x4e,0x7a,0x37,0x1f,0x40,0x7e,0x34,0x15,0x76,0x7a,0x37,0x1f,0x42,0x7e,0x34, +0x15,0x9e,0x7a,0x37,0x1f,0x44,0x7e,0x73,0x34,0x4f,0x7a,0x73,0x1f,0x3e,0x7e,0x73, +0x2a,0x2, 0x7a,0x73,0x1f,0x3f,0x7e,0x8, 0x1f,0x3e,0x12,0x4, 0xad,0x6c,0xaa,0x80, +0x59,0x7e,0x70,0xff,0x6c,0xff,0x80,0x19,0x7e,0x50,0x2, 0xac,0x5f,0x49,0x12,0x15, +0x9e,0xa, 0x2a,0xbd,0x21,0x78,0x8, 0xa, 0x3f,0x9, 0x73,0x1f,0x46,0x80,0x7, 0xb, +0xf0,0x12,0x5e,0x2d,0x38,0xe2,0xbe,0x70,0xff,0x68,0x2d,0x12,0x5e,0x8b,0x74,0x1, +0xa, 0x47,0x19,0xb4,0x1f,0x34,0x7e,0x90,0x9, 0xac,0x9a,0x49,0x24,0x28,0xae,0x7e, +0x30,0x2, 0xac,0x37,0x2d,0x1d,0x7d,0xc, 0x79,0x20,0x0, 0x14,0x49,0x44,0x28,0xb0, +0x7e,0x50,0x2, 0xac,0x57,0x12,0x5e,0x45,0xb, 0xa0,0x7e,0x63,0x2a,0x2, 0xbc,0x6a, +0x38,0x9f,0x6c,0xaa,0x80,0x20,0xa, 0x3a,0x9, 0xb3,0x1f,0x34,0xbe,0xb0,0x1, 0x68, +0x13,0x12,0x5e,0x57,0x7f,0x6, 0x2d,0x13,0x79,0x40,0x0, 0x14,0x2d,0x3d,0x7d,0x2c, +0x79,0x41,0x0, 0x28,0xb, 0xa0,0x12,0x5e,0x25,0x38,0xdb,0x7e,0xf3,0x2a,0x2, 0x7a, +0xf3,0x34,0x4f,0x6c,0xaa,0x80,0x66,0xa, 0x3a,0x9, 0xb3,0x1f,0x34,0xb4,0x1, 0x2b, +0x12,0x5e,0x9f,0xb4,0x1, 0x6, 0x74,0x3, 0x39,0xb1,0x0, 0xa, 0xa, 0x3a,0x2d,0x3d, +0x7d,0x2c,0x29,0x31,0x0, 0xa, 0xa5,0xbb,0x3, 0x6, 0xe4,0x7a,0x1b,0xb0,0x80,0x2e, +0xa5,0xbb,0x0, 0x2a,0x74,0x2, 0x7a,0x1b,0xb0,0x80,0x23,0x12,0x5e,0x9f,0xbe,0xb0, +0x2, 0x68,0x2, 0x70,0x14,0x74,0x1, 0x7a,0x1b,0xb0,0x7c,0x2f,0xb, 0xf0,0x7e,0x30, +0x9, 0xac,0x23,0x19,0xa1,0x28,0xb2,0x80,0x5, 0x74,0x3, 0x7a,0x1b,0xb0,0xa, 0x3a, +0x2d,0x3d,0x7d,0x2c,0x7e,0x1b,0xb0,0x39,0xb1,0x0, 0xa, 0xb, 0xa0,0x12,0x5e,0x25, +0x38,0x95,0xda,0xf8,0x22,0x90,0x60,0x99,0xe4,0x93,0xbc,0xba,0x22,0x90,0x60,0x99, +0xe4,0x93,0xbc,0xbf,0x22,0x7e,0x50,0x2, 0xac,0x5a,0x3e,0x24,0x22,0x2d,0x39,0x7d, +0x28,0x7e,0x1b,0xb0,0x22,0x7f,0x6, 0x2d,0x12,0x79,0x40,0x0, 0x28,0x22,0xa, 0x3a, +0x19,0xf3,0x1f,0x46,0x74,0x1, 0x22,0x7e,0x44,0x7f,0xff,0x7e,0x70,0x2, 0xac,0x7a, +0x22,0x6c,0xaa,0x80,0x20,0x74,0x3, 0x12,0xa9,0x76,0x7f,0x10,0x2d,0x34,0x39,0xb1, +0x0, 0xa, 0x12,0x5e,0x57,0x7f,0x70,0x2d,0xf3,0x79,0x47,0x0, 0x14,0x2d,0x31,0x79, +0x41,0x0, 0x28,0xb, 0xa0,0x12,0x5e,0x25,0x38,0xdb,0x22,0x7e,0x50,0x9, 0xac,0x5a, +0x19,0x72,0x28,0xb2,0x22,0x7e,0x50,0x2, 0xac,0x5a,0x7f,0x6, 0x2d,0x12,0x22,0xa, +0x3a,0x2d,0x3d,0x7d,0x2c,0x29,0xb1,0x0, 0xa, 0x22,0xc2,0x3, 0x7e,0xb3,0x16,0x91, +0x60,0x6, 0x7e,0xb3,0x16,0x90,0x70,0x7, 0x12,0x9b,0xdf,0x28,0x2, 0xd2,0x3, 0xa2, +0x3, 0x22,0xca,0xf8,0x7e,0xa3,0x2a,0x2, 0x4c,0xaa,0x78,0x11,0x7e,0xb3,0x2a,0x3, +0xbe,0xb0,0x0, 0x28,0x13,0x74,0x1, 0x7a,0xb3,0x2a,0x7, 0x80,0xb, 0xbe,0xa0,0x0, +0x28,0x6, 0x74,0x1, 0x7a,0xb3,0x2a,0xb, 0x12,0x5f,0xc2,0xca,0x59,0x7e,0x18,0x28, +0xae,0x7e,0x8, 0x29,0x8, 0x12,0x20,0xb9,0x1b,0xfd,0x90,0x61,0x35,0xe4,0x93,0xbe, +0xb0,0x0, 0x28,0x28,0x6c,0xff,0x80,0x1f,0x74,0x9, 0xac,0xbf,0x49,0x35,0x28,0xae, +0x12,0x80,0x16,0x74,0x9, 0xac,0xbf,0x59,0x35,0x29,0x8, 0x49,0x35,0x28,0xb0,0x12, +0x64,0xdb,0x12,0xab,0x78,0xb, 0xf0,0x12,0x5e,0x2d,0x38,0xdc,0xda,0xf8,0x22,0x2, +0x5f,0x32,0xca,0x79,0x6c,0xff,0x7e,0xd7,0x2a,0x5a,0x6c,0xee,0x80,0x35,0x7c,0xbe, +0x12,0x37,0x6f,0xbd,0x3d,0x48,0x2a,0x7c,0xbe,0x12,0x2f,0xb7,0x60,0x23,0x7e,0xc4, +0x0, 0x9, 0xca,0xc9,0x7e,0x70,0x9, 0xac,0x7e,0x2e,0x34,0x27,0x76,0x6d,0x22,0x7e, +0x30,0x9, 0xac,0x3f,0x2e,0x14,0x28,0xae,0x6d,0x0, 0x12,0x20,0xb9,0x1b,0xfd,0xb, +0xf0,0xb, 0xe0,0x12,0x9c,0xf6,0x38,0xc6,0x7a,0x73,0x28,0x93,0x7a,0xf3,0x2a,0x2, +0xda,0x79,0x22,0x12,0x9d,0xda,0x2, 0x5f,0x89,0x7e,0xa3,0x2a,0x3, 0xbe,0xa0,0x0, +0x38,0x2f,0xbe,0xa3,0x2a,0x2, 0x50,0x19,0x7e,0xb3,0x2a,0xc, 0xbe,0xb3,0x35,0x40, +0x28,0x14,0x7e,0xb3,0x35,0x40,0x4, 0x7a,0xb3,0x35,0x40,0x7a,0xa3,0x2a,0x2, 0x80, +0x5, 0xe4,0x7a,0xb3,0x35,0x40,0x7e,0xb3,0x2a,0x2, 0x70,0x5, 0xe4,0x7a,0xb3,0x2a, +0xb, 0x22,0x90,0x60,0x99,0xe4,0x93,0x7c,0xab,0x74,0x9, 0xa4,0x22,0x12,0x68,0x38, +0x2, 0x5f,0xd3,0x7e,0xb3,0x2a,0x9, 0x70,0x24,0x7e,0xa3,0x34,0xa2,0x4c,0xaa,0x78, +0x3, 0xe4,0x80,0x7, 0xbe,0xa0,0x2, 0x78,0x6, 0x74,0x3, 0x7a,0xb3,0x34,0xad,0x7e, +0x73,0x34,0xae,0xbe,0x73,0x34,0xad,0x28,0x4, 0x7a,0x73,0x34,0xad,0x22,0xff,0xff, +0x70,0x8f,0x0, 0xff,0x51,0xae,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x34,0x37,0x31,0x1, 0xc3,0x1, 0x34,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x10,0xef,0x30,0x30,0x31,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0xd, 0x18,0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0xd, 0xc, 0xb, 0xa, 0x9, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x11,0x12,0x13,0x14,0x18,0x17,0xc, 0xd, 0xe, 0xf, 0x15, +0x16,0x10,0xb, 0xa, 0x9, 0x8, 0x7, 0x6, 0x5, 0x4, 0x3, 0x2, 0x1, 0x0, 0x0, 0x0, +0x0, 0x5, 0x0, 0x4, 0xff,0x23,0x1c,0x2, 0xdf,0xa, 0x1e,0xa, 0x64,0x1e,0x10,0x0, +0x4, 0x0, 0x64,0xd, 0xac,0x0, 0xc8,0x3, 0x1, 0x0, 0x0, 0x17,0x2, 0x6, 0xa, 0x0, +0x0, 0x0, 0x46,0x0, 0xe6,0x1, 0x18,0x1, 0xb8,0x1, 0xf4,0x2, 0x94,0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c,0x1, 0x68,0x2, 0x44,0x0, 0x0, 0x0, 0x0, 0x7, +0xd0,0x0, 0x14,0x1, 0x19,0x3d,0x1, 0xf4,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e, +0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e, +0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x64,0x64,0x64,0x64,0x64, +0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64, +0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x0, 0x4, 0x5d,0x20,0x1, 0x20,0x2, 0x0, 0x0, +0x0, 0x0, 0x1, 0xf4,0x69,0x40,0xd, 0x18,0x25,0x17,0x25,0x6, 0x80,0x17,0x25,0x6, +0x80,0x8, 0x10,0x4, 0x20,0x1, 0x0, 0x2, 0xd0,0x32,0x32,0x1, 0xd8,0x1, 0xec,0x0, +0xe1,0x0, 0xe1,0x5, 0x0, 0x37,0x37,0x1, 0xae,0x1, 0xba,0x0, 0xe0,0x0, 0xe0,0x0, +0xb4,0x0, 0xa0,0x0, 0x96,0x1, 0x18,0x1, 0x18,0x1, 0x18,0xa, 0x0, 0x1, 0x68,0x1, +0x5, 0xb, 0x1e,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22,0x15,0x0, 0x1, 0x54,0x1, 0x0, 0x10, +0x1, 0x51,0x1, 0x14,0x0, 0x0, 0x1, 0x1, 0x10,0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x55,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x96,0x2, 0x26,0x0, 0x50,0x0, 0x27, +0x0, 0x4, 0x0, 0x4, 0x1, 0x4, 0x1, 0x90,0x0, 0xc8,0x0, 0x50,0x1, 0xf4,0x0, 0x96, +0x1, 0x2c,0x1, 0x2c,0x4, 0x3d,0x2, 0x5d,0x69,0x20,0x26,0x3, 0x52,0x59,0x20,0x34, +0x2, 0x5a,0x64,0x20,0x46,0x2, 0x47,0x49,0x30,0x3d,0x2, 0x5d,0x69,0x20,0x3d,0x2, +0x5d,0x69,0x20,0x3d,0x2, 0x5d,0x69,0x20,0x3d,0x2, 0x5d,0x69,0x20,0x4, 0x5, 0x25, +0x26,0x27,0x28,0x29,0x4, 0x0, 0xd2,0x2, 0x30,0x64,0x0, 0xc8,0x1, 0x5e,0x0, 0x64, +0x0, 0x64,0x0, 0x96,0x0, 0x64,0xb, 0xb8,0x8, 0x5, 0x6, 0x80,0x1, 0x90,0x1, 0x2c, +0x1, 0xc2,0x3, 0x20,0xf, 0xa0,0x1, 0x3, 0x20,0x4, 0xb0,0x3, 0x20,0x1, 0x2, 0x2, +0x4, 0x4, 0x6, 0x40,0x1, 0x2c,0x1, 0x18,0x1, 0x90,0x1, 0x90,0x1, 0x90,0x1, 0x90, +0x1, 0x2c,0x1, 0x90,0x1, 0x7c,0x1, 0x7c,0x0, 0x50,0x0, 0x46,0x0, 0x78,0x0, 0x78, +0x0, 0x78,0x0, 0x78,0x0, 0x78,0x14,0x8, 0x0, 0x50,0x2, 0x80,0x0, 0x50,0x4, 0xb0, +0x0, 0x32,0x1, 0xf4,0x1, 0xf4,0x3, 0x20,0x0, 0x14,0x0, 0x37,0x0, 0x1e,0x0, 0x80, +0x0, 0xb4,0x0, 0xa0,0x0, 0x3c,0x3, 0xe8,0x1, 0x40,0x0, 0x5a,0x0, 0x3c,0x3, 0xe8, +0x0, 0x20,0x2, 0xb0,0x0, 0x0, 0x5, 0x0, 0x0, 0x64,0x0, 0xa0,0x0, 0xa0,0x13,0x88, +0x1, 0x2c,0x0, 0xa0,0x0, 0xa0,0x10,0x0, 0xc, 0x0, 0xa, 0xb, 0x5, 0x5, 0x7, 0x8, +0x6, 0x6, 0xc, 0x64,0xc8,0x7e,0x8, 0x37,0xf3,0x12,0x62,0xdf,0x7e,0x8, 0x37,0xfb, +0x12,0x62,0xdf,0x12,0x62,0xf4,0x12,0x62,0xfb,0x2, 0x62,0xbc,0x7e,0x37,0x37,0xf3, +0xbe,0x34,0x0, 0x0, 0x28,0x18,0x7e,0x73,0x39,0x7, 0xbe,0x70,0x5, 0x50,0xf, 0x7e, +0xb3,0x37,0x31,0x70,0x9, 0x12,0x63,0x2, 0x74,0x1, 0x7a,0xb3,0x37,0x6, 0x22,0xb, +0xa, 0x30,0xe5,0x4e,0xa, 0x2b,0xbd,0x32,0x28,0x4, 0x9d,0x32,0x80,0x2, 0x6d,0x33, +0x1b,0xa, 0x30,0x22,0x7e,0x8, 0x2b,0xb7,0x2, 0x62,0xdf,0x7e,0x8, 0x38,0xe6,0x2, +0x62,0xdf,0x6d,0x33,0x7a,0x37,0x38,0x83,0x22,0xca,0xf8,0x7e,0xa3,0x2a,0x2, 0x7e, +0xb3,0x2a,0x3, 0xbe,0xa0,0x1, 0x38,0x21,0xbe,0xb0,0x1, 0x38,0x1c,0x7e,0x47,0x28, +0x86,0xbe,0x44,0x0, 0x1e,0x28,0x2, 0x80,0x10,0x7e,0xf3,0x2f,0x80,0x4c,0xff,0x68, +0x17,0x7e,0x47,0x2b,0xb7,0x4d,0x44,0x78,0xf, 0x12,0x63,0x2, 0x74,0x1, 0x7a,0xb3, +0x38,0x85,0x7a,0xb3,0x37,0x6, 0x80,0x35,0x4c,0xaa,0x78,0x36,0xb4,0x1, 0x33,0x7e, +0x37,0x2b,0xb7,0x7a,0x37,0x2f,0x82,0x7e,0xb3,0x2f,0x80,0xb4,0x3, 0x1f,0x7e,0x37, +0x2b,0xb7,0xbe,0x34,0x0, 0x0, 0x28,0x15,0x74,0x4, 0x7a,0xb3,0x2f,0x80,0x7e,0x37, +0x2f,0x98,0x7e,0x27,0x2f,0x9a,0x12,0x64,0x1a,0x81,0x13,0x80,0x0, 0x12,0xbd,0xbd, +0x81,0x13,0x7e,0xc7,0x29,0x8, 0x7e,0xd7,0x29,0xa, 0x4c,0xff,0x78,0x19,0x70,0x57, +0xbe,0xa0,0x1, 0x78,0x52,0x7d,0x3c,0x7d,0x2d,0x12,0xbd,0x58,0x12,0x64,0x16,0x74, +0x1, 0x7a,0xb3,0x2f,0x80,0x80,0x40,0xbe,0xf0,0x1, 0x78,0x2e,0x7e,0x27,0x2f,0x88, +0x9e,0x27,0x2f,0x90,0x7e,0x14,0x62,0x8a,0x12,0x64,0xd3,0xbd,0x23,0x38,0x13,0x7e, +0x27,0x2f,0x96,0x9e,0x27,0x2f,0x8e,0x7e,0x14,0x62,0x8c,0x12,0x64,0xd3,0xbd,0x23, +0x28,0x15,0x74,0x3, 0x7a,0xb3,0x2f,0x80,0x80,0x5, 0xbe,0xf0,0x3, 0x78,0x8, 0x7a, +0xc7,0x2f,0x98,0x7a,0xd7,0x2f,0x9a,0x7e,0xb3,0x2f,0x80,0x60,0x26,0x7d,0x3c,0x7d, +0x2d,0x7e,0x17,0x2b,0xbb,0x7e,0x7, 0x2b,0xbd,0x12,0x66,0xce,0xa, 0x2b,0x7e,0x73, +0x2f,0x7f,0xa, 0x37,0xbd,0x32,0x58,0xb, 0x12,0x64,0x16,0x7a,0xc7,0x2b,0xbb,0x7a, +0xd7,0x2b,0xbd,0xda,0xf8,0x22,0x7d,0x3c,0x7d,0x2d,0x7d,0x42,0x7d,0x13,0x7d,0x24, +0x12,0x67,0xca,0x7d,0x31,0x12,0x85,0xfd,0x2, 0x64,0x2b,0x7e,0x3, 0x2f,0xa8,0xbe, +0x0, 0xf0,0x50,0x2, 0x81,0xc4,0x81,0xb9,0x6c,0x99,0x7e,0xb3,0x2f,0x7f,0xbe,0xb0, +0x20,0x50,0x5, 0x4, 0x7a,0xb3,0x2f,0x7f,0x7e,0x1f,0x2b,0xbf,0x7a,0x1f,0x1f,0x34, +0x7e,0x80,0x1, 0x80,0x49,0x74,0x4, 0xac,0xb8,0x49,0x35,0x2b,0xbf,0x49,0x25,0x2b, +0xc1,0x7e,0x17,0x1f,0x34,0x7e,0x7, 0x1f,0x36,0x12,0x66,0xce,0x7c,0x1b,0x7e,0x3, +0x2f,0x7f,0xbc,0x1, 0x38,0x26,0xb, 0x90,0x7e,0x70,0x4, 0xac,0x78,0x2e,0x34,0x2b, +0xbf,0x7e,0x14,0x1f,0x34,0x74,0x4, 0x12,0x1f,0x8c,0x7e,0x34,0x1f,0x34,0x7e,0x30, +0x4, 0xac,0x39,0x2e,0x14,0x2b,0xbf,0x74,0x4, 0x12,0x1f,0x8c,0xb, 0x80,0x7e,0x3, +0x2f,0xa8,0xbc,0x8, 0x38,0xaf,0xa, 0x59,0xb, 0x54,0x7c,0xb, 0x7a,0x3, 0x2f,0xa8, +0x7e,0x3, 0x2f,0x7f,0xbe,0x0, 0x20,0x50,0xb, 0x7e,0x3, 0x2f,0xa8,0xbe,0x0, 0xec, +0x40,0x2, 0x81,0x38,0x22,0x7d,0x34,0x9e,0x34,0x0, 0x40,0x7d,0x2e,0x9d,0x23,0x7e, +0x14,0x61,0x49,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0x30,0x22,0x7d,0xe3,0x9f,0x11,0x7e, +0x14,0x61,0x43,0x12,0x83,0x62,0x90,0x61,0x35,0xe4,0x93,0x70,0x3, 0x7d,0x3e,0x22, +0x90,0x61,0x36,0xe4,0x93,0xb4,0x1, 0x6, 0x7e,0x83,0x2a,0x6f,0x80,0x4, 0x7e,0x83, +0x2a,0x70,0x12,0x87,0xd4,0xbe,0xe4,0x0, 0x3f,0x38,0x1e,0x7e,0x24,0x0, 0x3f,0x9d, +0x2e,0x7e,0x14,0x61,0x47,0x12,0x64,0xd3,0x12,0x66,0x10,0x90,0x61,0x45,0x12,0x66, +0x7, 0x48,0x2, 0x7f,0x10,0x9f,0x1, 0x7f,0x10,0x12,0xc1,0x17,0xbe,0xa0,0x0, 0x28, +0x32,0x7d,0x14,0x9e,0x14,0x0, 0x3f,0xbd,0x1e,0x38,0x13,0x12,0x66,0xb8,0x40,0xe, +0x12,0x64,0xc5,0x12,0x65,0xfa,0x48,0x32,0x7f,0x10,0x1b,0x1c,0x80,0x2c,0x12,0x66, +0xb8,0x50,0x31,0x7d,0x34,0x9e,0x34,0x0, 0x20,0x12,0x64,0xcb,0x12,0x66,0x10,0x7d, +0x1f,0x80,0x1d,0x4c,0xaa,0x78,0x1d,0x12,0x66,0xb1,0xbd,0x5e,0x38,0x16,0x12,0x64, +0xc5,0x12,0x65,0xfa,0x48,0x4, 0x7f,0x10,0x1b,0x1c,0xa, 0xb, 0x7d,0x1f,0x9d,0x10, +0x6d,0x0, 0x2f,0x10,0xbe,0xe4,0x0, 0x3f,0x28,0x6f,0x12,0x66,0xb1,0xbd,0x5e,0x28, +0x68,0x7d,0xd4,0xb, 0xd4,0x1e,0xd4,0x7d,0x5d,0x1b,0x54,0xbd,0x5e,0x40,0xc, 0x7d, +0x35,0x9d,0x3e,0x6d,0x22,0x7e,0x14,0x61,0x4b,0x80,0xa, 0x7d,0x3e,0x9d,0x3d,0x6d, +0x22,0x7e,0x14,0x61,0x4d,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0x10,0x12,0x1e,0xfc,0x12, +0x66,0x14,0xbd,0x5e,0x7d,0x1f,0x40,0xc, 0x1e,0x14,0x1b,0x14,0x6d,0x0, 0x9f,0x1, +0x7f,0x10,0x80,0x6, 0x1e,0x14,0x6d,0x0, 0x2f,0x10,0x90,0x61,0x45,0x12,0x66,0x7, +0x58,0x4, 0x7f,0x10,0x80,0x13,0x90,0x61,0x46,0xe4,0x93,0xa, 0xb, 0x7d,0x1f,0x9d, +0x10,0x6d,0x0, 0xbf,0x10,0x8, 0x2, 0x7f,0x10,0x22,0xad,0x32,0x6d,0x22,0x7c,0x76, +0x7c,0x65,0x1a,0x24,0x90,0x61,0x46,0xe4,0x93,0xa, 0x1b,0x6d,0x0, 0xbf,0x10,0x22, +0xad,0x32,0x6d,0x22,0x7c,0x76,0x7c,0x65,0x1a,0x24,0x22,0x7e,0x73,0x36,0x69,0x7a, +0x73,0x36,0xdf,0x7e,0x27,0x38,0xd6,0x7e,0x14,0x61,0xc8,0x12,0x64,0xd3,0x1e,0x34, +0xbd,0x32,0x50,0x6, 0x74,0x1, 0x7a,0xb3,0x36,0x69,0x7e,0x14,0x61,0xc8,0x12,0x64, +0xd3,0xbd,0x32,0x50,0x8, 0xe4,0x7a,0xb3,0x36,0x67,0x12,0x67,0x62,0x7e,0x37,0x36, +0x6f,0xbd,0x32,0x50,0x4, 0x7a,0x27,0x36,0x6f,0x12,0xc0,0xef,0x38,0xa, 0x12,0x8f, +0xf3,0x38,0x5, 0x12,0x8f,0xeb,0x28,0x3d,0x12,0x67,0x69,0x7e,0x14,0x61,0xc8,0x12, +0x64,0xd3,0x1e,0x34,0x1e,0x34,0xbd,0x32,0x28,0x21,0x7e,0xb3,0x36,0x67,0x4, 0x7a, +0xb3,0x36,0x67,0x7e,0x73,0x36,0x67,0xbe,0x70,0x32,0x28,0x14,0x74,0x32,0x7a,0xb3, +0x36,0x67,0x12,0xc0,0x6b,0x7a,0xb3,0x36,0xdc,0x80,0x5, 0xe4,0x7a,0xb3,0x36,0x67, +0x7d,0x32,0x2, 0xad,0x89,0x2, 0x66,0xa8,0x12,0x67,0xc0,0xe4,0x7a,0xb3,0x36,0x75, +0x22,0x7d,0x54,0x9e,0x54,0x0, 0x3f,0x22,0x7d,0x4, 0x9e,0x4, 0x0, 0x1f,0x7e,0xd4, +0x60,0xd1,0x7e,0xc4,0x0, 0xff,0xb, 0x6a,0x10,0x2d,0x10,0xbd,0x1e,0x22,0x7d,0x51, +0x7d,0x12,0x9d,0x35,0x12,0x21,0x0, 0x7c,0xa7,0x12,0x67,0xeb,0x7c,0xb7,0xbc,0xba, +0x50,0x3, 0x7c,0xba,0x22,0x22,0x7d,0x13,0x7e,0x54,0x62,0x58,0x12,0x67,0x15,0x50, +0x21,0x7e,0x54,0x62,0x5a,0x12,0x67,0x15,0x28,0x18,0x7e,0x14,0x62,0x5c,0x12,0x64, +0xd3,0xbd,0x32,0x50,0xd, 0x7e,0x14,0x62,0x5e,0x12,0x64,0xd3,0xbd,0x32,0x28,0x2, +0xe4,0x22,0x74,0x1, 0x22,0x7e,0x44,0x0, 0xff,0xb, 0x2a,0x30,0xbd,0x31,0x22,0x12, +0x66,0x1b,0x2, 0x67,0x25,0x7e,0xb3,0x36,0x69,0x60,0xf, 0x74,0x1, 0x7a,0xb3,0x36, +0x71,0x7e,0xb3,0x36,0xdf,0x70,0x3, 0x12,0xaf,0xc, 0x7e,0xb3,0x36,0x71,0xb4,0x1, +0xc, 0x74,0x3, 0x12,0x67,0x59,0x12,0x23,0x9e,0x3e,0x34,0x80,0x7, 0xe4,0x12,0x67, +0x59,0x12,0x23,0x9e,0x7a,0x37,0x2a,0x62,0x22,0x7a,0xb3,0x34,0xae,0x7e,0x34,0x61, +0x5b,0x22,0x74,0x2, 0x7a,0xb3,0x36,0x69,0x22,0x7e,0xb3,0x36,0x75,0xb4,0x1, 0x3, +0x2, 0x67,0x62,0x7e,0xb3,0x36,0xdb,0x4, 0x7a,0xb3,0x36,0xdb,0x7e,0xb3,0x36,0x69, +0xb4,0x2, 0x18,0x7e,0xb3,0x36,0xda,0x4, 0x7a,0xb3,0x36,0xda,0xb4,0x1, 0x6, 0x74, +0x1, 0x7a,0xb3,0x36,0xdb,0x74,0x1, 0x7a,0xb3,0x36,0x69,0x7e,0x73,0x36,0xda,0xbe, +0x70,0x3, 0x40,0xf, 0x74,0x1, 0x7a,0xb3,0x36,0x75,0x12,0x67,0x62,0x12,0xaf,0xc, +0x12,0x67,0xc0,0x7e,0x73,0x36,0xdb,0xbe,0x70,0xa, 0x28,0x3, 0x2, 0x67,0xc0,0x22, +0xe4,0x7a,0xb3,0x36,0xdb,0x7a,0xb3,0x36,0xda,0x22,0x7e,0xa3,0x2f,0xa8,0xbe,0xa0, +0xf0,0x50,0x17,0x74,0x4, 0xa4,0x59,0x35,0x2b,0xbf,0x12,0x67,0xf2,0x59,0x25,0x2b, +0xc1,0x7e,0xb3,0x2f,0xa8,0x4, 0x7a,0xb3,0x2f,0xa8,0x22,0x7d,0x31,0x9d,0x30,0x2, +0x21,0x0, 0x7e,0xa3,0x2f,0xa8,0x74,0x4, 0xa4,0x22,0x7e,0x73,0x28,0x93,0x7a,0x73, +0x28,0x94,0x7e,0x73,0x2a,0x2, 0x7a,0x73,0x2a,0x3, 0xe4,0x7a,0xb3,0x2a,0x6, 0x22, +0x12,0xc0,0x5, 0x12,0x63,0x2, 0x7a,0x37,0x39,0x4, 0x12,0x69,0x87,0x12,0x28,0x48, +0x2, 0x68,0x23,0x12,0x69,0x84,0x50,0x4, 0x74,0x19,0x80,0x2, 0x74,0x3, 0x7a,0xb3, +0x34,0x88,0xe4,0x7a,0xb3,0x34,0x89,0x22,0xca,0x79,0x7e,0x13,0x2a,0x2, 0x7e,0x78, +0x29,0xbc,0x12,0x69,0x84,0xe4,0x33,0x7c,0xb, 0x4c,0x0, 0x68,0x8, 0x7e,0x30,0x19, +0x7e,0xa0,0x5, 0x80,0x6, 0x7e,0x30,0x3, 0x7e,0xa0,0x1, 0xa5,0xb9,0x0, 0x5, 0x12, +0x68,0x23,0x21,0x6d,0xbc,0x20,0x50,0x3, 0x12,0x68,0x23,0x6c,0x0, 0x21,0x62,0x7e, +0x70,0x9, 0xac,0x70,0x9, 0x93,0x29,0xc, 0xbe,0x90,0xff,0x78,0x2, 0x21,0x60,0xa, +0x29,0x7f,0x67,0x2d,0xd2,0x7e,0x6b,0x80,0xbe,0x80,0x2, 0x68,0x2, 0x21,0x43,0x12, +0x69,0x7a,0x49,0x33,0x29,0x8, 0x9d,0x32,0x12,0x21,0x0, 0x7d,0xd3,0x7e,0x70,0x4, +0xac,0x79,0x49,0x23,0x35,0x43,0x12,0x69,0x70,0x9d,0x32,0x12,0x21,0x0, 0x7d,0xc3, +0x7e,0x73,0x34,0x88,0xa, 0x27,0xbd,0x2d,0x28,0x53,0xbd,0x2c,0x28,0x4f,0x12,0x69, +0x7a,0x7e,0xf0,0x9, 0xac,0xf0,0x59,0x27,0x29,0x8, 0x7e,0x50,0x4, 0xac,0x59,0x49, +0x22,0x35,0x43,0x7e,0xf0,0x9, 0xac,0xf0,0x59,0x27,0x29,0xa, 0xbe,0x10,0x0, 0x28, +0x2, 0x1b,0x10,0xa5,0xb9,0x0, 0x79,0x7e,0xb3,0x34,0x89,0x4, 0x7a,0xb3,0x34,0x89, +0x7e,0x63,0x34,0x89,0xbe,0x60,0x32,0x40,0x67,0xe4,0x7a,0xb3,0x34,0x89,0x7e,0xb3, +0x34,0x88,0xbc,0xb3,0x50,0x5a,0x4, 0x7a,0xb3,0x34,0x88,0x80,0x53,0x7e,0x50,0x9, +0xac,0x50,0x49,0xb2,0x29,0x8, 0x7e,0xf0,0x4, 0xac,0xf9,0x59,0xb7,0x35,0x41,0x49, +0x22,0x29,0xa, 0x59,0x27,0x35,0x43,0xbc,0x73,0x28,0x6, 0x7a,0xa3,0x34,0x88,0x80, +0xb, 0xbc,0x7a,0x28,0x7, 0x7c,0xb7,0x14,0x7a,0xb3,0x34,0x88,0xe4,0x7a,0xb3,0x34, +0x89,0x80,0x1d,0x4c,0x88,0x78,0x19,0x7e,0x70,0x9, 0xac,0x70,0x49,0x33,0x29,0x8, +0x7e,0x50,0x4, 0xac,0x59,0x59,0x32,0x35,0x41,0x12,0x69,0x70,0x59,0x32,0x35,0x43, +0xb, 0x0, 0x90,0x60,0x99,0xe4,0x93,0xbc,0xb0,0x28,0x2, 0x1, 0x6f,0xda,0x79,0x22, +0x7e,0x70,0x9, 0xac,0x70,0x49,0x33,0x29,0xa, 0x22,0x7e,0x50,0x4, 0xac,0x59,0x49, +0x22,0x35,0x41,0x22,0xa2,0x8, 0x22,0x7e,0x34,0xd, 0xac,0x12,0x26,0x5b,0x12,0x7a, +0x2d,0x12,0x69,0xab,0x2, 0x69,0x97,0x30,0xf, 0x10,0x12,0x6e,0x8f,0x50,0x3, 0x12, +0x6f,0x6e,0x12,0x6a,0x50,0x12,0x69,0xd1,0xc2,0xf, 0x22,0x7e,0xb3,0x2b,0x1e,0x70, +0x1f,0x12,0x26,0x57,0x12,0x2f,0xf4,0x50,0xfb,0x12,0x6a,0x50,0x12,0x88,0x17,0x20, +0xf, 0x3, 0x12,0x69,0xd1,0x74,0x2, 0x7a,0xb3,0x2b,0x1e,0xe4,0x7a,0xb3,0x16,0x91, +0x22,0xca,0x3b,0x7e,0xb3,0x2b,0xf, 0x7a,0xb3,0x1f,0x33,0x7e,0xf3,0x2b,0x62,0x12, +0x87,0x56,0x7c,0xdb,0xbe,0xd0,0xff,0x68,0x64,0x6c,0xcc,0x12,0xc0,0xa2,0xf5,0x2a, +0x7e,0x73,0x2b,0xf, 0xbe,0x71,0x2a,0x68,0x36,0x7e,0x70,0x4, 0xac,0x7d,0xa, 0x2c, +0x12,0x91,0x67,0x7c,0xeb,0xbe,0xe0,0x2, 0x38,0x43,0xa, 0xe, 0x7e,0x14,0x2, 0xe0, +0xad,0x10,0x2e,0x14,0x16,0x93,0x6d,0x0, 0x7a,0xd, 0x2b,0x7e,0x70,0x1d,0xac,0x7e, +0x2e,0x34,0x37,0x44,0x6d,0x22,0x7a,0x1f,0x37,0x40,0x7c,0xbc,0x12,0x6c,0x20,0xb, +0xc0,0xbe,0xc0,0x4, 0x40,0xb5,0x7e,0x73,0x2b,0x62,0xbc,0x7f,0x68,0x6, 0x7a,0xf3, +0x2b,0x62,0xd2,0xc, 0xd2,0x3, 0x7e,0xb3,0x1f,0x33,0x12,0x6d,0x13,0xda,0x3b,0x22, +0x7e,0xf, 0x13,0x8a,0x7e,0x18,0x8, 0xa, 0xca,0x3b,0x7a,0x1d,0x2a,0x7f,0x30,0x12, +0xbf,0xfb,0x7a,0x55,0x32,0x7e,0xb3,0x2b,0x1d,0xf5,0x2f,0xe4,0x7a,0xb3,0x2b,0x1d, +0x7f,0x3, 0x7e,0x1d,0x2a,0x12,0x79,0x7a,0x12,0xc0,0x75,0x12,0xc0,0x22,0x75,0x2e, +0x0, 0x12,0x4e,0x6e,0x30,0xb, 0xfd,0x74,0x1, 0x12,0xc0,0xff,0x7e,0x14,0x40,0x0, +0x7d,0x21,0x7d,0x7, 0x12,0x6a,0xd4,0x12,0xb3,0x5f,0x6d,0x33,0x80,0x19,0x7e,0x35, +0x30,0x3e,0x34,0x7f,0x3, 0x2d,0x13,0xb, 0xa, 0x20,0x7e,0xd, 0x2a,0x2d,0x13,0x12, +0x7b,0x20,0x7e,0x35,0x30,0xb, 0x34,0x7a,0x35,0x30,0x7e,0x35,0x32,0xbe,0x35,0x30, +0x38,0xdc,0x5, 0x2e,0xe5,0x2e,0xbe,0xb0,0x1, 0x40,0xb6,0xe5,0x2f,0x7a,0xb3,0x2b, +0x1d,0xda,0x3b,0x22,0x7e,0xb3,0x2a,0x6d,0xca,0x3b,0x7c,0xdb,0x7a,0x5, 0x39,0x7d, +0x71,0x7a,0x25,0x37,0x7a,0x35,0x35,0x12,0x6e,0x8f,0x50,0x7c,0x6c,0xcc,0x80,0x11, +0x7e,0x73,0x2a,0x6e,0x12,0x6b,0xff,0x12,0x6b,0xe5,0x7e,0x34,0x34,0x0, 0x12,0x6c, +0x8, 0x12,0x6d,0x34,0x38,0xea,0x6c,0xcc,0x80,0x58,0x7e,0xa3,0x2a,0x6e,0x7c,0x7a, +0x12,0x6b,0xff,0x75,0x3b,0x0, 0x80,0x27,0x7e,0xb3,0x37,0xb1,0xbe,0xb1,0x3b,0x7e, +0x70,0x4, 0x28,0x8, 0xac,0x7c,0x49,0x43,0x3, 0x60,0x80,0x6, 0xac,0x7c,0x49,0x43, +0x3, 0x62,0x7e,0x71,0x3b,0x74,0x2, 0xac,0x7b,0x59,0x43,0x34,0x50,0x5, 0x3b,0x7e, +0xb3,0x2a,0x70,0xbe,0xb1,0x3b,0x38,0xd0,0x12,0xc0,0x90,0x68,0xb, 0x7e,0x34,0x10, +0x0, 0x74,0x2, 0xa4,0x59,0x35,0x34,0x4e,0x12,0x6b,0xe5,0x7e,0x34,0x34,0x50,0x12, +0x6c,0x8, 0xbc,0xdc,0x38,0xa4,0x80,0x2c,0x7a,0xd3,0x25,0xb6,0x7e,0x73,0x2a,0x70, +0x7a,0x73,0x25,0xb7,0xe4,0x7a,0xb3,0x25,0xb9,0x74,0x6, 0x7a,0xb3,0x25,0xb8,0x7a, +0x77,0x25,0xba,0x7a,0x77,0x25,0xbe,0x7e,0x8, 0x25,0xb6,0x7e,0x73,0x2b,0x1f,0xa, +0x37,0x12,0xe, 0x37,0x7d,0x37,0x12,0x7f,0x78,0x7e,0x35,0x39,0x7a,0x37,0x25,0xbe, +0xe4,0x7a,0xb3,0x25,0xb8,0x12,0x6b,0xf6,0x7a,0xd3,0x25,0xb6,0x7e,0xb3,0x2b,0x1d, +0x70,0xf, 0xe4,0x7a,0xb3,0x25,0xb9,0x7a,0x77,0x25,0xba,0x7e,0x34,0x0, 0x20,0x80, +0x16,0x74,0x1, 0x7a,0xb3,0x25,0xb9,0x7e,0x35,0x35,0x7a,0x37,0x25,0xba,0x7e,0x35, +0x37,0x7a,0x37,0x25,0xbc,0x6d,0x33,0x7a,0x37,0x25,0xc0,0x7e,0x8, 0x25,0xb6,0x12, +0xd, 0x7, 0xda,0x3b,0x22,0x74,0xc, 0x7a,0xb3,0x25,0xb8,0x74,0x1, 0x7a,0xb3,0x25, +0xb6,0xe4,0x7a,0xb3,0x25,0xb9,0x7e,0x73,0x2a,0x6e,0x7a,0x73,0x25,0xb7,0x22,0xac, +0x7c,0x3e,0x34,0x7d,0xf7,0x2d,0xf3,0x22,0x7a,0x37,0x25,0xba,0x7d,0x3f,0x7a,0x37, +0x25,0xbc,0x7a,0x37,0x25,0xbe,0x7e,0x8, 0x25,0xb6,0x12,0x7, 0x9b,0xb, 0xc0,0x22, +0xca,0x3b,0x7a,0xd, 0x2f,0x7c,0xcb,0x7e,0xb3,0x2b,0x1d,0xf5,0x33,0x7e,0xb3,0x2b, +0xf, 0xf5,0x34,0x7e,0xd3,0x2b,0x14,0x7e,0xe3,0x2b,0x1f,0x7e,0xf3,0x2b,0x20,0x7e, +0x34,0x0, 0x38,0xca,0x39,0x7e,0x18,0x34,0x0, 0x7e,0x8, 0x24,0xf2,0x12,0x20,0xb9, +0x1b,0xfd,0x7e,0x34,0x0, 0x8c,0xca,0x39,0x7e,0x18,0x3, 0x60,0x7e,0x8, 0x25,0x2a, +0x12,0x20,0xb9,0x1b,0xfd,0x7c,0xbc,0x12,0xb3,0x2a,0x74,0x1, 0x7a,0xb3,0x2b,0x1d, +0x74,0x5, 0xac,0xbc,0x12,0xc0,0x19,0x74,0x5, 0xac,0xbc,0x12,0x6f,0xff,0x74,0x5, +0xac,0xbc,0x12,0xc0,0x10,0x74,0x5, 0xac,0xbc,0x9, 0x75,0x26,0x37,0xbe,0x73,0x2b, +0x62,0x68,0x6, 0x7a,0x73,0x2b,0x62,0xd2,0xc, 0xc2,0x3, 0x12,0xc0,0xa2,0x12,0x6d, +0x13,0x12,0x4e,0x67,0x30,0xb, 0xfd,0x74,0x1, 0x12,0x0, 0xe, 0x7e,0x14,0x40,0x0, +0x7d,0x31,0x7e,0x2f,0x13,0x86,0x7d,0x25,0x7e,0x4, 0xd, 0xc8,0x12,0x6a,0xd4,0x12, +0xbf,0xfb,0x7a,0x55,0x35,0x7e,0xd, 0x2f,0x7e,0x18,0xd, 0xc8,0x12,0xa8,0xef,0x12, +0xa9,0xa6,0xe5,0x33,0x7a,0xb3,0x2b,0x1d,0xe5,0x34,0x7a,0xb3,0x2b,0xf, 0x7a,0xd3, +0x2b,0x14,0x7a,0xe3,0x2b,0x1f,0x7a,0xf3,0x2b,0x20,0x7e,0x34,0x0, 0x38,0xca,0x39, +0x7e,0x18,0x24,0xf2,0x7e,0x8, 0x34,0x0, 0x12,0x20,0xb9,0x1b,0xfd,0x7e,0x34,0x0, +0x8c,0xca,0x39,0x7e,0x18,0x25,0x2a,0x7e,0x8, 0x3, 0x60,0x12,0x20,0xb9,0x1b,0xfd, +0xda,0x3b,0x22,0x7a,0xb3,0x2b,0xf, 0x12,0x6e,0x29,0x30,0xc, 0xa, 0x12,0xae,0xfa, +0x30,0x3, 0x4, 0xe4,0x12,0xa, 0x66,0x30,0x3, 0x9, 0x12,0xae,0xaf,0x12,0x8d,0xef, +0x2, 0x8c,0x90,0x22,0x7e,0x73,0x2a,0x6f,0xbc,0x7c,0x22,0xca,0x3b,0x7f,0x61,0x7f, +0x50,0x7e,0x14,0x22,0xe2,0x7e,0x4, 0x0, 0xff,0x69,0x30,0x0, 0x2, 0xb, 0xa, 0x20, +0x7a,0x1d,0x2c,0x7e,0x73,0x2a,0x6d,0xa, 0x37,0x3e,0x34,0xca,0x39,0x7f,0x16,0x7f, +0x5, 0x12,0x20,0xb9,0x1b,0xfd,0x6c,0xdd,0x12,0xa7,0x10,0x7a,0xb3,0x1f,0x34,0x6c, +0xcc,0x80,0x4f,0x12,0x6e,0x19,0x40,0x48,0x12,0x6e,0xf, 0x50,0x43,0x74,0x2, 0xac, +0xbc,0x7f,0x16,0x2d,0x35,0xb, 0x1a,0x10,0x7d,0x3f,0x12,0x21,0x0, 0x7d,0x3, 0x7d, +0x31,0x12,0x21,0x0, 0xbd,0x30,0x58,0x2, 0x7d,0xf1,0xbe,0x15,0x2a,0x8, 0x5, 0x7e, +0x15,0x2a,0x80,0xb, 0x6d,0x0, 0x9e,0x5, 0x2a,0xbd,0x1, 0x8, 0x2, 0x7d,0x10,0x7d, +0x31,0x1a,0x26,0x1a,0x24,0x2f,0x41,0x7e,0xb3,0x1f,0x34,0x4, 0x7a,0xb3,0x1f,0x34, +0xb, 0xc0,0x12,0x6d,0x34,0x38,0xac,0x7e,0x73,0x1f,0x34,0x4c,0x77,0x68,0x34,0x12, +0xa7,0x2d,0x8, 0x2, 0x7d,0x7f,0xbe,0x75,0x2a,0x8, 0x5, 0x7e,0x75,0x2a,0x80,0xb, +0x6d,0xee,0x9e,0xe5,0x2a,0xbd,0xe7,0x8, 0x2, 0x7d,0x7e,0x6c,0xcc,0x80,0xf, 0x12, +0x6e,0x19,0x40,0x8, 0x12,0x6e,0xf, 0x50,0x3, 0x12,0xa7,0x18,0xb, 0xc0,0x12,0x6d, +0x34,0x38,0xec,0xb, 0xd0,0xbe,0xd0,0x3, 0x50,0x2, 0xa1,0x68,0xda,0x3b,0x22,0x7c, +0x1d,0x2e,0x10,0x2d,0xa5,0xe7,0xbc,0xab,0x22,0xa, 0xec,0x9, 0xae,0x2a,0xb9,0x7c, +0x1d,0x2e,0x10,0x2c,0xa5,0xe7,0xbc,0xab,0x22,0x12,0x6e,0xa0,0x7a,0x37,0x2b,0x1b, +0x22,0x7e,0xa3,0x0, 0x4f,0xbe,0xa0,0xff,0x68,0x48,0xbe,0xa3,0x3, 0xec,0x68,0x42, +0x74,0x5, 0xa4,0x12,0xc0,0x99,0x12,0x6e,0x83,0x12,0xc0,0x19,0x12,0x6e,0x83,0x12, +0xc0,0x10,0x12,0x6e,0x8f,0x50,0x9, 0x7e,0xb3,0x0, 0x4f,0x12,0xb3,0x2a,0x80,0x6, +0x12,0x6e,0x83,0x12,0x6f,0xff,0x12,0x6e,0x29,0x12,0x6f,0xf8,0x7e,0x73,0x2b,0x14, +0xa, 0x37,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x1a,0x7e,0x73,0x0, 0x4f,0x7a,0x73, +0x3, 0xec,0x22,0x7e,0xa3,0x0, 0x4f,0x74,0x5, 0xa4,0x22,0x7a,0xb3,0x2b,0x20,0x7e, +0xb3,0x37,0x8, 0xb4,0x3, 0x8, 0x7e,0xb3,0x37,0xb2,0x70,0x2, 0xc3,0x22,0xd3,0x22, +0x7e,0x23,0x2b,0xf, 0x7e,0x33,0x37,0xcd,0x7e,0x34,0x60,0xd6,0x7e,0x24,0x0, 0xff, +0xb, 0x1a,0x0, 0xac,0x23,0x2d,0x10,0xbe,0x14,0x0, 0xa, 0x50,0x4, 0x7e,0x14,0x0, +0xa, 0x7e,0x63,0x2b,0x10,0xbe,0x14,0xf, 0x3c,0x40,0x4, 0x7e,0x14,0xf, 0x3c,0xbe, +0x14,0x7, 0x8, 0x40,0x3, 0xe4,0x80,0x21,0xbe,0x14,0x3, 0x84,0x40,0x16,0x90,0x61, +0x1b,0xe4,0x93,0x7c,0x7b,0xbe,0x70,0x1, 0x28,0x4, 0x74,0x1, 0x80,0xb, 0x7a,0x73, +0x2b,0x10,0x80,0x9, 0x90,0x61,0x1b,0xe4,0x93,0x7a,0xb3,0x2b,0x10,0x7e,0x73,0x2b, +0x10,0xbc,0x76,0x68,0x2, 0xd2,0xc, 0x7e,0x24,0x1, 0xf4,0x7d,0x31,0x8d,0x32,0x7c, +0x17,0xbe,0x10,0x7, 0x28,0x3, 0x7e,0x10,0x7, 0x7e,0x1f,0x38,0xc0,0x69,0x51,0x0, +0x86,0x54,0x1f,0xa, 0x1, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x2d, +0x5, 0x79,0x1, 0x0, 0x86,0x6d,0x0, 0x7e,0x34,0xb8,0x0, 0x7e,0x24,0x0, 0xb, 0x2, +0x1f,0x58,0x7e,0xb, 0x70,0x7a,0x73,0x2b,0xf, 0x29,0x70,0x0, 0x4, 0x7a,0x73,0x2b, +0x62,0x29,0x70,0x0, 0x1, 0x7a,0x73,0x2b,0x14,0x29,0x70,0x0, 0x3, 0x7a,0x73,0x2b, +0x20,0x12,0x6e,0x29,0x12,0x6f,0xf8,0xd2,0x3, 0xc2,0x4, 0x2, 0x48,0xf4,0xca,0xf8, +0x6c,0xff,0x80,0x34,0x7e,0x73,0x0, 0x4f,0xbc,0x7f,0x68,0x2a,0x7e,0x30,0x5, 0xac, +0x3f,0x12,0x6f,0xea,0xca,0x39,0x7e,0x30,0x38,0xac,0x3f,0x12,0xc0,0x56,0x12,0x20, +0xb9,0x1b,0xfd,0x7e,0x34,0x0, 0x8c,0xca,0x39,0x7e,0x30,0x8c,0xac,0x3f,0x12,0xc0, +0x4b,0x12,0x20,0xb9,0x1b,0xfd,0xb, 0xf0,0x90,0x61,0xc5,0xe4,0x93,0xbc,0xbf,0x38, +0xc3,0x7e,0x23,0x0, 0x4f,0x7e,0x30,0x5, 0xac,0x23,0x12,0x6f,0xea,0xca,0x39,0x7e, +0x23,0x0, 0x4f,0x7e,0x30,0x38,0xac,0x23,0x12,0xc0,0x56,0x12,0x20,0xb9,0x1b,0xfd, +0x7e,0x34,0x0, 0x8c,0xca,0x39,0x7e,0x23,0x0, 0x4f,0x7e,0x30,0x8c,0xac,0x23,0x12, +0xc0,0x4b,0x12,0x20,0xb9,0x1b,0xfd,0xda,0xf8,0x22,0x2e,0x14,0x26,0x33,0x6d,0x0, +0x12,0x6f,0x42,0x7e,0x34,0x0, 0x38,0x22,0x7e,0x8, 0x2a,0x6d,0x2, 0x3, 0x8b,0x9, +0x75,0x26,0x35,0x7a,0x73,0x2b,0x1f,0x22,0x7e,0x37,0x3, 0xed,0xb, 0x34,0x7a,0x37, +0x3, 0xed,0x7e,0x37,0x3, 0xef,0xbe,0x37,0x3, 0xed,0x28,0x3, 0x2, 0x70,0x23,0x22, +0x2, 0x70,0x8, 0xe5,0x9a,0x60,0x5, 0xd2,0x9c,0xa9,0xd6,0xdf,0x22,0xca,0x7b,0xca, +0x6b,0xca,0x5b,0xca,0x4b,0xca,0x2b,0xca,0x1b,0xca,0xb, 0xc0,0xd0,0xc0,0x83,0xc0, +0x82,0x12,0x70,0x20,0xd0,0x82,0xd0,0x83,0xd0,0xd0,0xda,0xb, 0xda,0x1b,0xda,0x2b, +0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda,0x7b,0x32,0x7e,0x34,0x0, 0x4, 0xca,0x39,0x7e, +0x34,0x61,0x2d,0x7e,0x24,0x0, 0xff,0x7e,0x8, 0x2b,0x70,0x12,0x20,0xb9,0x1b,0xfd, +0x7e,0x34,0x2a,0xe, 0x7a,0x37,0x2b,0x76,0xe4,0x7a,0xb3,0x2b,0x74,0x7a,0xb3,0x2b, +0x75,0x7e,0x34,0x0, 0x4, 0xca,0x39,0x12,0x79,0x25,0x7e,0x8, 0x25,0xee,0x12,0x20, +0xb9,0x1b,0xfd,0x7e,0x34,0x2b,0x78,0x7a,0x37,0x25,0xf4,0xe4,0x7a,0xb3,0x25,0xf2, +0x74,0x1, 0x7a,0xb3,0x25,0xf3,0x22,0xca,0xd8,0xca,0x79,0x90,0x60,0x50,0xe4,0x93, +0x7c,0xdb,0x90,0x60,0x51,0xe4,0x93,0x7c,0xeb,0x7e,0x73,0x2a,0x74,0xbc,0x7e,0x28, +0x4, 0x7c,0xf7,0x80,0x2, 0x7c,0xfe,0x7a,0xd3,0x2a,0x6d,0x7a,0xe3,0x2a,0x6e,0x7a, +0xd3,0x2a,0x71,0x7a,0xe3,0x2a,0x72,0x7a,0xd3,0x2a,0x73,0x7a,0xe3,0x2a,0x74,0x90, +0x60,0xa8,0xe4,0x93,0x7c,0xab,0x7a,0xa3,0x2a,0x77,0x90,0x60,0xa9,0xe4,0x93,0xa, +0x2b,0xa, 0x3d,0x9d,0x32,0x7c,0xb7,0x7a,0xb3,0x2a,0x6f,0xa, 0x2a,0xa, 0x3e,0x9d, +0x32,0x7a,0x73,0x2a,0x70,0x90,0x60,0x91,0xe4,0x93,0x7a,0xb3,0x2a,0x78,0x90,0x60, +0x94,0xe4,0x93,0x7a,0xb3,0x2a,0x79,0xa, 0x3d,0xca,0x39,0x7e,0x34,0x60,0x52,0x7e, +0x24,0x0, 0xff,0x7e,0x8, 0x2a,0x7a,0x12,0x20,0xb9,0x1b,0xfd,0xa, 0x3f,0xca,0x39, +0x7e,0x34,0x60,0x75,0x7e,0x24,0x0, 0xff,0x7e,0x8, 0x2a,0x9d,0x12,0x20,0xb9,0x1b, +0xfd,0x7e,0x34,0x0, 0x23,0xca,0x39,0x7e,0x34,0x60,0xd8,0x7e,0x24,0x0, 0xff,0x7e, +0x8, 0x2b,0x21,0x12,0x20,0xb9,0x1b,0xfd,0x12,0x72,0x92,0x12,0x79,0x31,0x90,0x60, +0xaa,0xe4,0x93,0x70,0x8, 0x7a,0xd3,0x2a,0x75,0x7a,0xe3,0x2a,0x76,0x12,0x70,0x59, +0x74,0x1, 0x12,0x3d,0xac,0xe4,0x7a,0xb3,0x2b,0x1, 0x7a,0xb3,0x2b,0x2, 0x12,0x73, +0xf1,0x7a,0x37,0x2b,0xd, 0x74,0x3, 0x7a,0xb3,0x2b,0x3, 0xe4,0x7a,0xb3,0x2b,0x4, +0x74,0x2, 0x7a,0xb3,0x2b,0x5, 0x7e,0x34,0x61,0x59,0x12,0x23,0x9e,0x7a,0x37,0x2b, +0x7, 0x74,0x4, 0x7a,0xb3,0x2b,0x6, 0x7e,0x34,0x0, 0xf, 0x7a,0x37,0x2b,0x9, 0x7e, +0x34,0x20,0x5f,0x7a,0x37,0x2b,0xb, 0x90,0x61,0x1a,0xe4,0x93,0x7a,0xb3,0x2b,0x62, +0x90,0x61,0x1b,0xe4,0x93,0x7a,0xb3,0x2b,0x10,0x90,0x61,0x1c,0xe4,0x93,0x7a,0xb3, +0x2b,0x11,0x74,0x4, 0x7a,0xb3,0x2b,0x13,0x90,0x60,0xd5,0xe4,0x93,0x7a,0xb3,0x2b, +0xf, 0x12,0x6e,0x29,0xe4,0x7a,0xb3,0x2b,0x1d,0x7a,0xb3,0x2b,0x1e,0x7e,0x34,0x61, +0x22,0x12,0x23,0x9e,0x7a,0x37,0x2b,0x19,0x90,0x60,0xd3,0x93,0x7a,0xb3,0x2b,0x12, +0x90,0x61,0x24,0xe4,0x93,0x7a,0xb3,0x2b,0x20,0x90,0x61,0x19,0xe4,0x93,0x7a,0xb3, +0x2b,0x1f,0x7e,0x34,0x61,0x1e,0x12,0x23,0x9e,0x7a,0x37,0x2b,0x15,0x7e,0x34,0x61, +0x20,0x12,0x23,0x9e,0x7a,0x37,0x2b,0x17,0x90,0x61,0x1d,0xe4,0x93,0x7a,0xb3,0x2b, +0x14,0x7e,0x34,0x0, 0x30,0x7a,0x37,0x2b,0x6a,0x74,0x5, 0x7a,0xb3,0x2b,0x67,0x7e, +0x34,0x0, 0x5, 0x7a,0x37,0x2b,0x68,0xe4,0x7a,0xb3,0x2b,0x66,0x7e,0x34,0x4, 0x6d, +0x7a,0x37,0x2b,0x6c,0x74,0x1, 0x7a,0xb3,0x2b,0x63,0x74,0x6, 0x7a,0xb3,0x2b,0x64, +0xe4,0x7a,0xb3,0x2b,0x65,0x74,0x1, 0x7a,0xb3,0x2b,0x60,0xe4,0x7a,0xb3,0x2b,0x61, +0x7e,0x34,0x20,0x5b,0x7a,0x37,0x2b,0x6e,0xa, 0x3e,0xca,0x39,0x7e,0x34,0x60,0xfb, +0x7e,0x24,0x0, 0xff,0x7e,0x8, 0x2b,0x44,0x12,0x20,0xb9,0x1b,0xfd,0xda,0x79,0xda, +0xd8,0x22,0x12,0xc0,0xab,0x12,0x72,0xf4,0x90,0x60,0x50,0xe4,0x93,0xa, 0x3b,0x7d, +0x13,0x2e,0x14,0x2a,0x7a,0x6d,0x0, 0x9, 0xb3,0x2a,0x79,0x12,0x72,0xdb,0xa, 0x3b, +0x7d,0x13,0x2e,0x14,0x2b,0x21,0x6d,0x0, 0x9, 0xb3,0x2b,0x20,0x12,0x72,0xdb,0xa, +0x1b,0x2e,0x14,0x2a,0x7c,0x12,0x72,0xe8,0xe5,0x25,0x12,0x72,0xdf,0xa, 0x1b,0x2e, +0x14,0x2b,0x23,0x12,0x72,0xe8,0xe5,0x24,0x2, 0x20,0xde,0x7e,0x34,0x0, 0x2, 0x12, +0x20,0xde,0x90,0x60,0x50,0xe4,0x93,0x22,0x6d,0x0, 0x90,0x60,0x91,0xe4,0x93,0xa, +0x3b,0x1b,0x35,0x22,0x6c,0xaa,0x6c,0x99,0x80,0xc, 0xa, 0xf9,0x9, 0xbf,0x2a,0x7a, +0xbc,0xba,0x68,0x7, 0xb, 0x90,0x12,0x73,0x20,0x38,0xef,0x12,0x73,0x20,0x68,0x7, +0xb, 0xa0,0xbe,0xa0,0x23,0x40,0xdf,0x7a,0xb, 0xa0,0x74,0x6e,0x7a,0x1b,0xb0,0x22, +0x90,0x60,0x50,0xe4,0x93,0xbc,0xb9,0x22,0x12,0x77,0xfd,0x12,0x70,0xa7,0x12,0x0, +0xa, 0x12,0x3f,0xf2,0x7e,0x18,0x4, 0x0, 0x7a,0x1f,0x6, 0xf8,0x7e,0xf, 0x6, 0xf8, +0x7e,0x1f,0x6, 0xf4,0x12,0x79,0x9d,0x7e,0x18,0x8, 0xa, 0x7a,0x1f,0x13,0x86,0x7e, +0x18,0xd, 0xc8,0x7a,0x1f,0x13,0x8a,0x7e,0xf, 0x13,0x8a,0x7e,0x1f,0x13,0x86,0x12, +0x79,0x7a,0x12,0x79,0x2e,0x12,0x25,0x45,0x12,0x73,0xa7,0x12,0x73,0x7f,0x2, 0x73, +0x71,0xe4,0x7a,0xb3,0x34,0x38,0x7a,0xb3,0x34,0x39,0x7a,0xb3,0x34,0x3a,0x22,0x12, +0x73,0xe5,0x7e,0x24,0x0, 0x3, 0xad,0x32,0x7e,0x8, 0x28,0xae,0x74,0xff,0x12,0x20, +0xde,0x12,0x9f,0xe3,0x7e,0x8, 0x29,0xbc,0x12,0x5e,0x61,0x7e,0x8, 0x2a,0x2, 0x7e, +0x34,0x0, 0xb, 0xe4,0x2, 0x20,0xde,0x7e,0x8, 0x26,0x5b,0x7e,0x34,0x2, 0x3a,0xe4, +0x12,0x20,0xde,0x90,0x60,0x9c,0x93,0xa, 0x3b,0x3e,0x34,0x7e,0x8, 0x26,0x8c,0x74, +0xff,0x12,0x20,0xde,0x90,0x60,0x9c,0xe4,0x93,0xa, 0x3b,0x3e,0x34,0x7e,0x8, 0x26, +0xb4,0x74,0xff,0x12,0x20,0xde,0x90,0x60,0x9a,0x12,0x73,0xe8,0x7e,0x8, 0x27,0x76, +0x74,0xff,0x2, 0x20,0xde,0x90,0x60,0x99,0xe4,0x93,0x7c,0x7b,0x74,0x9, 0xac,0x7b, +0x22,0x6d,0x33,0x6c,0xaa,0x80,0x14,0xa, 0x2a,0x9, 0xb2,0x2a,0xdc,0x54,0x1, 0x78, +0x5, 0x4e,0x70,0x1, 0x80,0x3, 0x4e,0x70,0x10,0xb, 0xa0,0x7e,0x53,0x2a,0x74,0xbc, +0x5a,0x38,0xe4,0x6c,0xaa,0x80,0x1f,0xa, 0x2a,0x9, 0xb2,0x2a,0xb9,0xbe,0xb0,0xd, +0x38,0x5, 0x4e,0x70,0xc0,0x80,0xd, 0xbe,0xb0,0x1b,0x38,0x5, 0x4e,0x60,0x8, 0x80, +0x3, 0x4e,0x60,0x50,0xb, 0xa0,0x12,0x74,0x3c,0x38,0xdc,0x22,0x7e,0xb3,0x2a,0x73, +0xbc,0xba,0x22,0xca,0x3b,0x7e,0xb4,0x7f,0xff,0x7d,0xab,0x7d,0x8b,0x6d,0x22,0x7d, +0x32,0x7d,0x9b,0x75,0x24,0x0, 0x6c,0x99,0x7e,0x78,0x4, 0xfc,0x7e,0x8, 0x5, 0x7a, +0xe4,0x7a,0xb3,0x8, 0x8, 0x7a,0xb3,0x8, 0x9, 0x7a,0xb3,0x26,0xf6,0x7a,0xb3,0x26, +0xf8,0x7a,0xb3,0x26,0xf7,0x7a,0xb3,0x26,0xf9,0x6c,0xaa,0x80,0x5f,0x12,0x75,0xb2, +0xb, 0x6a,0xc0,0xbd,0xca,0x58,0x2, 0x7d,0xac,0xbd,0xc3,0x8, 0x2, 0x7d,0x3c,0x2d, +0x71,0x7d,0x60,0xb, 0x3a,0xd0,0xbd,0xd9,0x58,0x2, 0x7d,0x9d,0x7e,0x67,0x2a,0x53, +0x7e,0x74,0x0, 0x3, 0xad,0x76,0xbd,0xc7,0x8, 0x2, 0x5, 0x24,0x12,0x75,0x9f,0xb, +0x3a,0xd0,0xbd,0xcd,0x8, 0xb, 0x7e,0xb3,0x26,0xf7,0x4, 0x7a,0xb3,0x26,0xf7,0x80, +0x19,0x12,0x75,0xa8,0xb, 0x3a,0xc0,0x6e,0xd4,0xff,0xff,0xb, 0xd4,0xbd,0xcd,0x58, +0x9, 0x7e,0xb3,0x26,0xf9,0x4, 0x7a,0xb3,0x26,0xf9,0xb, 0xa0,0x7e,0xb3,0x2a,0x74, +0xbc,0xba,0x38,0x99,0x7a,0xa7,0x7, 0xfe,0x7a,0x37,0x8, 0x2, 0xe5,0x24,0x7a,0xb3, +0x8, 0x9, 0x7a,0x97,0x8, 0x6, 0x12,0x75,0x97,0x2d,0xf5,0x6c,0xaa,0x80,0x50,0x12, +0x75,0xb2,0xb, 0x6a,0xd0,0xbd,0xd8,0x58,0x2, 0x7d,0x8d,0xbd,0xd2,0x8, 0x2, 0x7d, +0x2d,0x7e,0x67,0x2a,0x51,0x7e,0x74,0x0, 0x3, 0xad,0x76,0xbd,0xd7,0x8, 0x2, 0xb, +0x90,0x12,0x75,0x9f,0xb, 0x3a,0xc0,0xbd,0xdc,0x8, 0xb, 0x7e,0xb3,0x26,0xf6,0x4, +0x7a,0xb3,0x26,0xf6,0x80,0x17,0x12,0x75,0xa8,0xb, 0x3a,0xd0,0x6d,0x99,0x9d,0x9c, +0xbd,0xd9,0x58,0x9, 0x7e,0xb3,0x26,0xf8,0x4, 0x7a,0xb3,0x26,0xf8,0xb, 0xa0,0x12, +0x74,0x3c,0x38,0xab,0x7a,0x87,0x7, 0xfc,0x7a,0x27,0x8, 0x0, 0x7a,0x93,0x8, 0x8, +0x12,0x75,0x97,0x2d,0x15,0x6c,0xaa,0x80,0xe, 0x12,0xa5,0xe4,0xb, 0x7a,0x90,0xbd, +0x9b,0x58,0x2, 0x7d,0xb9,0xb, 0xa0,0x12,0x74,0x3c,0x38,0xed,0x7a,0xb7,0x8, 0x4, +0xbd,0x8a,0x58,0x2, 0x7d,0xa8,0x7a,0xa7,0x7, 0xf8,0xbd,0x32,0x58,0x2, 0x7d,0x32, +0x7a,0x37,0x7, 0xfa,0xda,0x3b,0x22,0x7e,0xa3,0x2a,0x74,0x74,0x2, 0xa4,0x22,0x7e, +0x74,0x62,0x10,0x7e,0x64,0x0, 0xff,0x22,0x7e,0xf0,0x2, 0xac,0xfa,0x2d,0x7f,0x7d, +0x6e,0x22,0x7e,0xf0,0x2, 0xac,0xfa,0x7f,0x67,0x2d,0xd7,0x22,0xca,0x3b,0x7f,0x31, +0x7a,0xd, 0x24,0x7e,0x35,0x28,0x7a,0x35,0x2e,0x7e,0xd, 0x24,0x7f,0x13,0x12,0xa6, +0x56,0x7e,0x35,0x28,0x7a,0x35,0x2a,0x12,0x75,0x97,0x7e,0xd, 0x24,0x2d,0x15,0x7f, +0x13,0x2d,0x35,0x12,0x6d,0x3b,0xda,0x3b,0x22,0x7e,0x37,0x2a,0x4f,0x1e,0x34,0x7a, +0x35,0x28,0x7e,0x8, 0x4, 0xfc,0x7e,0x18,0x4, 0x0, 0x12,0x75,0xbc,0x7e,0x37,0x28, +0x99,0xe, 0x34,0x7a,0x35,0x28,0x7e,0x8, 0x5, 0x7a,0x7e,0x18,0x4, 0x7e,0x12,0x75, +0xbc,0x12,0x76,0x2b,0x12,0xa7,0x45,0x2, 0x76,0x1a,0xe4,0x7a,0xb3,0x3, 0xff,0x7e, +0xb3,0x28,0xa8,0x60,0x5, 0xe4,0x7a,0xb3,0x3, 0xff,0x22,0xca,0x3b,0x7e,0xf3,0x2a, +0x6e,0x12,0xc0,0xb4,0x6c,0xcc,0x80,0x13,0x7c,0x7c,0xac,0x7f,0x3e,0x34,0x7e,0xf, +0x13,0x8a,0x2d,0x13,0x7c,0xbd,0x12,0xa7,0xcd,0xb, 0xc0,0xbc,0xec,0x38,0xe9,0xda, +0x3b,0x22,0xe4,0x7a,0xb3,0x28,0x93,0x12,0xbb,0x95,0x7e,0xb3,0x16,0x91,0xb4,0x1, +0x8, 0x7e,0x73,0x28,0x84,0x7a,0x73,0x28,0x92,0x7e,0x18,0x4, 0xfc,0x7a,0x1f,0x6, +0xf8,0x12,0x3f,0xf2,0x12,0x76,0x9a,0x12,0x74,0x43,0x7e,0xb3,0x16,0x90,0xb4,0x1, +0x18,0x7e,0x73,0x26,0x83,0x7a,0x73,0x26,0xf3,0x7e,0x73,0x26,0x85,0x7a,0x73,0x26, +0xf5,0x7e,0x73,0x26,0x84,0x7a,0x73,0x26,0xf4,0x22,0x7e,0x8, 0x26,0x86,0x7e,0x34, +0x0, 0x3, 0xe4,0x12,0x20,0xde,0x7e,0x8, 0x26,0x89,0x7e,0x34,0x0, 0x3, 0x12,0x20, +0xde,0x7a,0xb3,0x26,0x83,0x7a,0xb3,0x26,0x84,0x7a,0xb3,0x26,0x85,0x7a,0xb3,0x26, +0xf0,0x7a,0xb3,0x26,0xf1,0x7a,0xb3,0x26,0xf2,0x7e,0x18,0x26,0x6f,0x12,0xbf,0xeb, +0x6c,0x55,0x12,0x77,0x60,0x7a,0xb3,0x26,0x85,0x7e,0x18,0x26,0x5b,0x12,0xbf,0xc7, +0x6c,0x55,0x12,0x77,0x60,0x7a,0xb3,0x26,0x84,0x6c,0x77,0x80,0x14,0x12,0x77,0xe9, +0x60,0x5, 0x3e,0x24,0x14,0x78,0xfb,0x12,0x77,0xf2,0x2e,0x24,0x26,0x86,0x12,0xc0, +0x40,0x7e,0x63,0x26,0x84,0xbc,0x67,0x38,0xe4,0x6c,0x77,0x80,0x14,0x12,0x77,0xe9, +0x60,0x5, 0x3e,0x24,0x14,0x78,0xfb,0x12,0x77,0xf2,0x2e,0x24,0x26,0x89,0x12,0xc0, +0x40,0x7e,0xa3,0x26,0x85,0xbc,0xa7,0x38,0xe4,0x7e,0xb3,0x26,0x84,0xa4,0x7a,0xb3, +0x26,0x83,0x7e,0x18,0x26,0xe6,0x12,0xbf,0xeb,0x7e,0x50,0x1, 0x12,0x77,0x60,0x7a, +0xb3,0x26,0xf2,0x7e,0x18,0x26,0xdc,0x12,0xbf,0xc7,0x7e,0x50,0x1, 0x12,0x77,0x60, +0x7c,0xab,0x7a,0xa3,0x26,0xf1,0x7e,0xb3,0x26,0xf2,0xa4,0x7a,0xb3,0x26,0xf0,0x22, +0xca,0x69,0xca,0xf8,0x7c,0x4b,0x6c,0xaa,0x6d,0xff,0x6c,0xff,0x80,0x70,0x7e,0xd0, +0x2, 0xac,0xdf,0x7f,0x60,0x2d,0xd6,0xb, 0x6a,0xe0,0x4c,0x55,0x68,0x6, 0x6e,0xe4, +0xff,0xff,0xb, 0xe4,0xbd,0x3e,0x58,0x54,0x4c,0xff,0x78,0x8, 0x6d,0x44,0x69,0xf0, +0x0, 0x2, 0x80,0x1b,0x7c,0xb4,0x14,0xbc,0xbf,0x7f,0x56,0x78,0x9, 0x1b,0xb5,0xb, +0x5a,0x40,0x6d,0xff,0x80,0x9, 0x1b,0xb5,0xb, 0x5a,0x40,0x69,0xf6,0x0, 0x2, 0x4c, +0x55,0x68,0xc, 0x6e,0x44,0xff,0xff,0xb, 0x44,0x6e,0xf4,0xff,0xff,0xb, 0xf4,0xbd, +0x4e,0x58,0x19,0xbd,0xfe,0x18,0x15,0xa, 0xba,0x7e,0x6d,0x24,0x2d,0xdb,0x7a,0x6b, +0xf0,0xb, 0xa0,0x90,0x60,0x9b,0xe4,0x93,0xbc,0xba,0x28,0x6, 0xb, 0xf0,0xbc,0x4f, +0x38,0x8c,0x7c,0xba,0xda,0xf8,0xda,0x69,0x22,0x7c,0xb7,0x54,0x7, 0x7e,0x24,0x0, +0x1, 0x22,0x7c,0xa5,0x7c,0xb7,0xc4,0x23,0x54,0x1f,0xa, 0x2b,0x22,0xe4,0x7a,0xb3, +0x37,0x9c,0x7a,0xb3,0x37,0x9d,0x90,0x60,0x50,0x93,0x7a,0xb3,0x37,0x9e,0x90,0x60, +0x51,0xe4,0x93,0x7a,0xb3,0x37,0x9f,0xe4,0x7a,0xb3,0x37,0xa0,0x90,0x60,0x99,0x93, +0x7a,0xb3,0x37,0xa1,0xe4,0x7a,0xb3,0x37,0xa2,0x7a,0xb3,0x37,0xa3,0x90,0x61,0xc4, +0x93,0x7a,0xb3,0x37,0xa5,0x7e,0x34,0x61,0x4f,0x12,0x23,0x9e,0x1e,0x34,0x1e,0x34, +0x7a,0x73,0x37,0xa9,0x7e,0x34,0x61,0x55,0x12,0x23,0x9e,0x1e,0x34,0x1e,0x34,0x7a, +0x73,0x37,0xaa,0x74,0x64,0x7a,0xb3,0x37,0xbb,0x90,0x61,0x18,0xe4,0x93,0x7a,0xb3, +0x37,0xbc,0x90,0x61,0x17,0xe4,0x93,0x7a,0xb3,0x37,0xa8,0x90,0x61,0x19,0xe4,0x93, +0x7a,0xb3,0x37,0xbe,0x90,0x61,0x24,0xe4,0x93,0x7a,0xb3,0x37,0xbd,0x90,0x61,0x1d, +0xe4,0x93,0x7a,0xb3,0x37,0xbf,0x90,0x61,0x25,0xe4,0x93,0x7a,0xb3,0x37,0xba,0xe4, +0x7a,0xb3,0x37,0xb5,0x74,0xfa,0x7a,0xb3,0x37,0xb3,0x74,0x1e,0x7a,0xb3,0x37,0xb4, +0x74,0x1, 0x7a,0xb3,0x37,0xb2,0x74,0xc, 0x7a,0xb3,0x37,0xb1,0x74,0x1, 0x7a,0xb3, +0x37,0xb6,0xe4,0x7a,0xb3,0x37,0xb7,0x7a,0xb3,0x37,0xb8,0x7e,0x8, 0x37,0xc0,0x7e, +0x34,0x0, 0x2c,0x12,0x20,0xde,0x7e,0x34,0x60,0xd6,0x12,0x23,0x9e,0xa, 0x36,0x7a, +0x73,0x37,0xcb,0x7e,0x34,0x60,0xd6,0x12,0x23,0x9e,0x7a,0x73,0x37,0xcc,0x90,0x60, +0xd4,0x93,0x7a,0xb3,0x37,0xcd,0x90,0x60,0xd5,0xe4,0x93,0x7a,0xb3,0x37,0xce,0x7e, +0x34,0x0, 0x4, 0xca,0x39,0x12,0x79,0x25,0x7e,0x8, 0x37,0xdc,0x12,0x20,0xb9,0x1b, +0xfd,0x74,0x5, 0x7a,0xb3,0x37,0xe9,0x74,0x1, 0x7a,0xb3,0x37,0xe0,0x7e,0x34,0x0, +0x28,0xca,0x39,0x7e,0x34,0x61,0xd5,0x7e,0x24,0x0, 0xff,0x7e,0x8, 0x26,0x33,0x12, +0x20,0xb9,0x1b,0xfd,0x22,0x7e,0x34,0x61,0x29,0x7e,0x24,0x0, 0xff,0x22,0x2, 0x23, +0xa6,0xca,0xf8,0x7e,0x73,0x2a,0x78,0xa, 0x47,0x7e,0x73,0x2a,0x71,0xa, 0x57,0x2d, +0x54,0x7e,0xa3,0x2a,0x73,0xbc,0xab,0x28,0x2, 0x7c,0xba,0x7e,0xf3,0x2a,0x72,0x7e, +0xa3,0x2a,0x74,0xbc,0xaf,0x28,0x2, 0x7c,0xfa,0x75,0x25,0x15,0x7e,0x8, 0x2a,0xb9, +0x7e,0x18,0x2a,0x7a,0x12,0xd, 0xd9,0x75,0x25,0x15,0x7e,0x8, 0x2a,0xdc,0x7e,0x18, +0x2a,0x9d,0x7c,0xbf,0x12,0xf, 0x9c,0xda,0xf8,0x22,0x7f,0x60,0x7e,0xa3,0x2a,0x6d, +0x7e,0xb3,0x2a,0x6e,0xa4,0x7d,0xf5,0x3e,0xf4,0x7f,0x1, 0x7d,0x3f,0xe4,0x12,0x20, +0xde,0x7f,0x6, 0x7d,0x3f,0x12,0x20,0xde,0x7a,0xb3,0x16,0x91,0x22,0x7f,0x70,0x7e, +0x33,0x2a,0x74,0xa, 0x43,0x7e,0x33,0x2a,0x73,0xa, 0x53,0x2d,0x54,0x3e,0x54,0x7c, +0xab,0xe4,0x7a,0xb3,0x16,0x90,0x7f,0x1, 0xa, 0x3a,0x12,0x20,0xde,0x7f,0x7, 0xa, +0x3a,0x2, 0x20,0xde,0xca,0xd8,0xca,0x79,0x7c,0xfb,0x7f,0x51,0x7f,0x40,0x7f,0x15, +0x12,0x79,0x9d,0x12,0x3f,0xd2,0x7e,0xe0,0x1, 0x12,0x4f,0xaf,0x30,0x18,0xfd,0x74, +0x2, 0x12,0x0, 0x1e,0x7f,0x4, 0x12,0x7b,0x29,0x6c,0xdd,0x80,0x18,0x74,0x2, 0xac, +0xbd,0x7f,0x14,0x2d,0x35,0xb, 0x1a,0x20,0x74,0x2, 0xac,0xbd,0x7f,0x5, 0x2d,0x15, +0x12,0x7b,0x20,0xb, 0xd0,0x7e,0x73,0x2a,0x74,0xa, 0x7, 0x7e,0x63,0x2a,0x73,0xa, +0x16,0x2d,0x10,0xa, 0x2d,0xbd,0x21,0x48,0xd4,0x1b,0xe0,0x78,0xbc,0x7f,0x5, 0x7c, +0xbf,0x2e,0x73,0x2a,0x73,0x12,0x7a,0x8e,0xda,0x79,0xda,0xd8,0x22,0x7e,0xb3,0x2b, +0x2, 0x70,0x41,0x12,0x2f,0xf4,0x50,0xfb,0xe4,0x6c,0x77,0x6c,0x66,0x12,0x7a,0x75, +0x7e,0x8, 0x6, 0xfc,0x7e,0x1f,0x6, 0xf4,0x7e,0xb3,0x2b,0x72,0x12,0x79,0xc4,0x74, +0x1, 0x7e,0x70,0x1, 0x7e,0x60,0x1, 0x12,0x7a,0x75,0x7e,0x8, 0x7, 0x7a,0x7e,0x1f, +0x6, 0xf4,0x7e,0xb3,0x25,0xf0,0x12,0x79,0xc4,0x74,0x2, 0x7a,0xb3,0x2b,0x2, 0xe4, +0x7a,0xb3,0x16,0x90,0x22,0x7c,0x96,0x7c,0xa7,0x12,0x3d,0xac,0x7c,0xba,0x12,0x13, +0xc7,0x74,0xa, 0x12,0x45,0x15,0x7c,0xb9,0x12,0x0, 0x1e,0x2, 0x4e,0xe7,0xca,0xd8, +0xca,0x79,0x7c,0xf7,0x7f,0x70,0x12,0x7b,0xd0,0x7c,0xeb,0x6c,0xdd,0x80,0x20,0x74, +0x2, 0xac,0xbd,0x7f,0x67,0x2d,0xd5,0xb, 0x6a,0x30,0x6d,0x22,0x74,0x4, 0x2f,0x11, +0x14,0x78,0xfb,0xa, 0x1e,0x6d,0x0, 0x12,0x1f,0x7, 0x1b,0x6a,0x30,0xb, 0xd0,0xbc, +0xfd,0x38,0xdc,0xda,0x79,0xda,0xd8,0x22,0xca,0x79,0x7f,0x51,0x7f,0x40,0x7e,0xa3, +0x2a,0x74,0xa, 0x3a,0x7e,0xa3,0x2a,0x73,0xa, 0x7a,0x2d,0x73,0x7e,0xd, 0x2a,0x7c, +0x7f,0x12,0x7a,0x8e,0xa, 0x3f,0x3e,0x34,0xca,0x39,0x7e,0x1d,0x2a,0x7f,0x4, 0x12, +0x20,0xb9,0x1b,0xfd,0x7e,0xb3,0x2b,0x1, 0xb4,0x1, 0x22,0x6c,0xaa,0x80,0x1a,0x7e, +0x70,0x2, 0xac,0x7a,0x7f,0x5, 0x2d,0x13,0xb, 0xa, 0x20,0x7f,0x4, 0x2d,0x13,0xb, +0xa, 0x30,0x9d,0x32,0x1b,0xa, 0x30,0xb, 0xa0,0xbc,0xfa,0x38,0xe2,0xda,0x79,0x22, +0xb, 0xa, 0x30,0x2d,0x32,0x1b,0xa, 0x30,0x22,0x7e,0xb3,0x2a,0x73,0x7e,0x73,0x2a, +0x74,0x12,0x10,0xee,0x74,0x2, 0x2, 0x0, 0x1e,0xca,0xd8,0xca,0x79,0x7e,0xf0,0xa, +0x74,0x1, 0x7a,0xb3,0x2a,0xfa,0x12,0x29,0x6f,0x7c,0xe7,0x80,0x5d,0x12,0x26,0x57, +0x12,0x4f,0x9e,0x30,0x18,0xfd,0x12,0x7b,0xc6,0x12,0x7b,0x29,0x6c,0xdd,0x80,0x3d, +0x7e,0x50,0x2, 0xac,0x5d,0x49,0x32,0x6, 0xfc,0xbe,0x34,0x14,0x78,0x50,0x14,0xa, +0x1d,0x2e,0x17,0x2a,0xfe,0x7e,0x19,0xb0,0xbe,0xb0,0x0, 0x28,0x1e,0x14,0x7a,0x19, +0xb0,0x80,0x18,0xbe,0x34,0x19,0x28,0x28,0x10,0xa, 0x3d,0x12,0x3f,0xb, 0xbe,0xb0, +0xff,0x68,0x8, 0x4, 0x7a,0x39,0xb0,0x80,0x2, 0x1b,0xe0,0xb, 0xd0,0x12,0x7b,0xb7, +0xa, 0x3d,0xbd,0x32,0x48,0xba,0x4c,0xee,0x68,0x8, 0x7c,0xaf,0x1b,0xf0,0x4c,0xaa, +0x78,0x9b,0xda,0x79,0xda,0xd8,0x22,0x7e,0x73,0x2a,0x74,0xa, 0x37,0x7e,0x53,0x2a, +0x73,0xa, 0x25,0x2d,0x23,0x22,0x74,0x2, 0x12,0x0, 0x1e,0x7e,0x8, 0x6, 0xfc,0x22, +0x7c,0x7b,0xa5,0xbf,0x0, 0x3, 0x74,0x10,0x22,0xbe,0x70,0x4, 0x38,0x4, 0x6c,0xaa, +0x80,0x21,0xbe,0x70,0x8, 0x38,0x5, 0x7e,0xa0,0x1, 0x80,0x17,0xbe,0x70,0x10,0x38, +0x5, 0x7e,0xa0,0x2, 0x80,0xd, 0xbe,0x70,0x20,0x38,0x5, 0x7e,0xa0,0x3, 0x80,0x3, +0x7e,0xa0,0x4, 0xa, 0x47,0x3e,0x44,0x3e,0x44,0x3e,0x44,0x7c,0xba,0x60,0x5, 0x1e, +0x44,0x14,0x78,0xfb,0x7c,0xb9,0x22,0x7e,0xa3,0x2f,0xa8,0x7e,0x70,0x4, 0xac,0x7a, +0xb, 0x34,0xbe,0x37,0x37,0xed,0x40,0x39,0x7e,0x37,0x37,0xed,0xb, 0x34,0x7a,0x37, +0x37,0xed,0xbe,0x34,0x0, 0x1, 0x78,0x5, 0x7e,0xb3,0x37,0x34,0x22,0xbe,0x34,0x0, +0x2, 0x78,0x3, 0x7c,0xba,0x22,0xbe,0x34,0x0, 0x2, 0x50,0x9, 0x7d,0x23,0x1b,0x25, +0x9, 0xb2,0x38,0xfb,0x22,0x9e,0x34,0x0, 0x3, 0x2e,0x37,0x2b,0xb9,0x7e,0x39,0xb0, +0x22,0x74,0xff,0x22,0x70,0x5, 0x7e,0xb3,0x37,0x9c,0x22,0xbe,0xb0,0x3, 0x38,0x15, +0x75,0x1b,0x0, 0x30,0xe, 0x6, 0x7e,0x18,0x32,0xea,0x80,0x4, 0x7e,0x18,0x33,0x28, +0x7a,0x1d,0x14,0x80,0x8, 0xbe,0xb0,0x5e,0x38,0x10,0x75,0x1b,0x0, 0xa, 0x1b,0x7e, +0x1d,0x14,0x2d,0x31,0x1b,0x34,0x7e,0x1b,0xb0,0x22,0xbe,0xb0,0xd3,0x68,0x3, 0xb4, +0xd4,0x10,0xb4,0xd3,0x8, 0x6d,0x33,0x7a,0x37,0x37,0xed,0x80,0x2, 0x15,0x1a,0x2, +0x7c,0x17,0xbe,0xb0,0xeb,0x68,0x3, 0xb4,0xec,0x3, 0x2, 0x7d,0x61,0xbe,0xb0,0x80, +0x40,0xc, 0xbe,0xb0,0xdf,0x38,0x7, 0xa, 0x3b,0x9, 0xb3,0x36,0x61,0x22,0xb4,0xfc, +0x5, 0x7e,0xb3,0x37,0x8, 0x22,0xb4,0xfd,0x17,0x6c,0xaa,0x7e,0xb3,0x28,0xa8,0x60, +0x3, 0x4e,0xa0,0x1, 0x7e,0xb3,0x36,0x71,0x60,0x3, 0x4e,0xa0,0x2, 0x7c,0xba,0x22, +0xb4,0xfe,0x5, 0x7e,0xb3,0x2b,0xf, 0x22,0x74,0xff,0x22,0x7c,0x7b,0x6c,0xaa,0x12, +0x3f,0xe1,0x78,0x9, 0x7c,0xb7,0x12,0x7c,0x64,0x7c,0xab,0x80,0xa, 0xb4,0x4, 0x7, +0x7c,0xb7,0x12,0x37,0xeb,0x7c,0xab,0x7c,0xba,0x22,0x30,0x90,0x19,0xc2,0x90,0xe5, +0x18,0x70,0x9, 0x75,0x18,0x1, 0xe5,0x91,0xf5,0x1a,0x80,0x11,0x7e,0x71,0x91,0xe5, +0x1a,0x12,0x3f,0xb3,0x5, 0x1a,0x30,0x91,0xb, 0xc2,0x91,0x5, 0x1a,0xe5,0x1a,0x12, +0x7c,0xfb,0xf5,0x91,0x22,0xca,0x7b,0xca,0x2b,0xca,0x1b,0xca,0xb, 0xc0,0x83,0xc0, +0x82,0x12,0x7d,0x1a,0xd0,0x82,0xd0,0x83,0xda,0xb, 0xda,0x1b,0xda,0x2b,0xda,0x7b, +0x32,0xb4,0xeb,0x5, 0xe4,0x7a,0xb3,0x37,0xf2,0x7e,0x73,0x37,0xf2,0xa, 0x27,0x2e, +0x24,0x0, 0x6, 0x12,0x51,0x4f,0x93,0x7c,0xab,0x7c,0xb7,0x4, 0x7a,0xb3,0x37,0xf2, +0xb4,0x3, 0xb, 0xe4,0x7a,0xb3,0x37,0xf2,0x6d,0x33,0x7a,0x37,0x37,0xef,0x75,0x1a, +0xeb,0x7c,0xba,0x22,0x7e,0xa3,0x37,0x9b,0x7c,0xba,0x4, 0x7a,0xb3,0x37,0x9b,0x7a, +0xa3,0x36,0xf2,0x22,0xa9,0xc0,0x93,0x75,0x18,0x0, 0x32,0x7a,0xb3,0x37,0x9c,0xc4, +0x54,0x7, 0xbe,0xb0,0x4, 0x68,0x3, 0xb4,0x2, 0x4, 0x74,0x3, 0x80,0x7, 0x60,0x3, +0xb4,0x1, 0x7, 0x74,0x1, 0x7a,0xb3,0x37,0x8, 0x22,0x74,0x1, 0x7a,0xb3,0x37,0x8, +0xe4,0x7a,0xb3,0x37,0x9c,0x22,0x7c,0xa7,0x7c,0x3b,0xa5,0xbb,0x0, 0x7, 0x7c,0xba, +0x12,0x7d,0xab,0x80,0x2c,0xbe,0x30,0xeb,0x68,0x4, 0xa5,0xbb,0xec,0x9, 0x7c,0xb3, +0x7c,0x7a,0x12,0x7e,0x45,0x80,0x1a,0xbe,0x30,0x80,0x40,0x15,0xbe,0x30,0xdf,0x38, +0x10,0x7c,0xb3,0x24,0x80,0x7c,0x7a,0x12,0x7e,0x21,0xa5,0xbb,0x8f,0x3, 0x75,0x19, +0x1, 0xa5,0xbb,0xfc,0x5, 0x7c,0xba,0x2, 0x44,0xc0,0x74,0x1, 0x7a,0xb3,0x33,0xff, +0x22,0x7c,0x6b,0x2e,0x60,0xdd,0x68,0x1c,0x2e,0x60,0xfd,0x68,0x17,0x1b,0x61,0x68, +0x13,0x2e,0x60,0xfa,0x68,0xe, 0x1b,0x60,0x68,0xa, 0x80,0x0, 0xa, 0x2b,0x19,0x72, +0x36,0xe1,0xd2,0xd, 0x22,0xbe,0xb0,0xeb,0x68,0x3, 0xb4,0xec,0x33,0x7e,0x27,0x37, +0xef,0x4d,0x22,0x78,0xe, 0xa5,0xbf,0xaa,0xa, 0x7e,0x24,0x0, 0x1, 0x7a,0x27,0x37, +0xef,0x15,0x1a,0x7e,0x27,0x37,0xef,0xbe,0x24,0x0, 0x1, 0x78,0x10,0xa5,0xbf,0x9, +0x6, 0x7e,0x34,0x0, 0x2, 0x80,0x2, 0x6d,0x33,0x7a,0x37,0x37,0xef,0x75,0x1a,0xea, +0x22,0x7e,0xb3,0x37,0xf1,0x4, 0x7a,0xb3,0x37,0xf1,0xe5,0x19,0xb4,0x1, 0x8, 0xe4, +0x7a,0xb3,0x37,0xf1,0x75,0x19,0x0, 0x7e,0x73,0x37,0xf1,0x7a,0x73,0x36,0xf0,0x22, +0xe4,0x7a,0xb3,0x37,0x9c,0x7e,0x8, 0x32,0xea,0x12,0x7e,0xef,0x7e,0x8, 0x33,0x28, +0x7e,0x34,0x0, 0x3e,0x12,0x20,0xde,0x7e,0x18,0x32,0xea,0x7a,0x1d,0x14,0x12,0x7e, +0xd1,0x2, 0x7e,0xc4,0x75,0x18,0x0, 0x75,0x1a,0x0, 0x7e,0xb3,0x37,0x9c,0xf5,0x91, +0x22,0x2, 0x7e,0xd4,0x90,0x60,0x0, 0xe4,0x93,0x54,0xfe,0x75,0x91,0x0, 0xc2,0x90, +0xc2,0x91,0xc2,0xc9,0x54,0xfe,0xf5,0x92,0xd2,0xe8,0xc2,0xc0,0xd2,0xad,0x22,0x7e, +0x34,0x0, 0x3e,0x74,0xff,0x2, 0x20,0xde,0x7c,0xab,0x12,0x3f,0x52,0x7c,0xba,0x12, +0x13,0xc7,0x2, 0x0, 0x1e,0x30,0x18,0x8, 0x74,0x5, 0x7e,0x70,0x99,0x12,0x13,0x2c, +0x7e,0xb3,0x34,0x3a,0xb4,0x1, 0x4f,0x12,0x7f,0x67,0x49,0x35,0x34,0x3b,0x49,0x15, +0x34,0x3d,0x6d,0x0, 0xbe,0x8, 0x0, 0x0, 0x68,0x1a,0xbe,0x70,0x0, 0x40,0x15,0xbe, +0x70,0x2, 0x38,0x10,0x74,0x2, 0x12,0x0, 0x1e,0x7e,0xb3,0x2a,0x73,0x7e,0x73,0x2a, +0x74,0x12,0x10,0xee,0x7e,0xb3,0x34,0x39,0x4, 0x7a,0xb3,0x34,0x39,0x12,0x7f,0x6f, +0x28,0xe, 0x12,0x4e,0x9b,0xb4,0x1, 0x4, 0x74,0x1, 0x80,0x6, 0x74,0x3, 0x80,0x2, +0x74,0x2, 0x7a,0xb3,0x34,0x3a,0x22,0x7e,0xa3,0x34,0x39,0x74,0x4, 0xa4,0x22,0x7e, +0x73,0x34,0x38,0xbe,0x73,0x34,0x39,0x22,0x7d,0xf3,0x6d,0xee,0x6c,0x99,0x80,0x3c, +0x7c,0xb9,0x12,0x31,0x27,0x7d,0xd3,0x7d,0xcd,0x3e,0xc4,0x7f,0x57,0x2d,0xbc,0xb, +0x5a,0x10,0x1a,0x2, 0x1a,0x0, 0x7e,0x83,0x2b,0x20,0xa, 0x98,0x6d,0x88,0x7f,0x10, +0x7f,0x4, 0x12,0x1e,0xeb,0x74,0x6, 0x7f,0x1, 0x1e,0x14,0x1e,0x4, 0x50,0x3, 0x4e, +0x20,0x80,0x14,0x78,0xf4,0x7d,0xc1,0x1b,0x5a,0xc0,0xb, 0x90,0x7e,0x83,0x2a,0x75, +0xbc,0x89,0x38,0xbc,0x22,0x7f,0x20,0xb, 0x2a,0x10,0xb, 0x1a,0x0, 0x1b,0x2a,0x0, +0x1b,0x1a,0x10,0x22,0x7c,0x9b,0x7f,0x71,0x7e,0x7b,0x80,0x4c,0x88,0x78,0x7, 0x7e, +0xb, 0x90,0x7a,0x7b,0x90,0x22,0xa, 0x28,0x7e,0xb, 0x80,0xa, 0x38,0x9d,0x32,0x12, +0x21,0x0, 0xe5,0x29,0xa, 0x2b,0xbd,0x32,0x8, 0x15,0x7e,0x7b,0xa0,0x7e,0xb, 0xb0, +0xbc,0xba,0x7c,0xba,0x28,0x4, 0x2c,0xb9,0x80,0x2, 0x9c,0xb9,0x7a,0x7b,0xb0,0x7e, +0x7b,0x70,0x7a,0xb, 0x70,0x22,0x7d,0xc3,0x7e,0x34,0x61,0x37,0x12,0x87,0xbc,0x90, +0x61,0x35,0xe4,0x93,0x70,0x3, 0x7d,0x3c,0x22,0x90,0x61,0x36,0xe4,0x93,0xb4,0x1, +0x6, 0x7e,0x83,0x2a,0x70,0x80,0x4, 0x7e,0x83,0x2a,0x6f,0x12,0x87,0xd4,0xbe,0xc4, +0x0, 0x3f,0x38,0x1c,0x7e,0xe4,0x0, 0x3f,0x9d,0xec,0x7e,0x34,0x61,0x3b,0x12,0x81, +0x2, 0x12,0x80,0xf1,0xbf,0x71,0x40,0x2, 0x7f,0x71,0x9f,0x17,0x7f,0x71,0x1, 0xee, +0x12,0x66,0xb1,0xbd,0x5c,0x38,0x21,0x7d,0xec,0x9d,0xe5,0x7e,0x34,0x61,0x3d,0x12, +0x81,0x2, 0x90,0x61,0x3a,0xe4,0x93,0xa, 0x3b,0xbf,0x71,0x40,0x4, 0x7f,0x71,0x1b, +0x7c,0x12,0x80,0xf9,0x2f,0x71,0x80,0x66,0x7d,0xb4,0xb, 0xb4,0x1e,0xb4,0x7d,0x5b, +0x1b,0x54,0xbd,0x5c,0x40,0xc, 0x7d,0xf5,0x9d,0xfc,0x6d,0xee,0x7e,0x34,0x61,0x3f, +0x80,0xa, 0x7d,0xfc,0x9d,0xfb,0x6d,0xee,0x7e,0x34,0x61,0x41,0x12,0x87,0xcc,0x7f, +0x17,0x12,0x1e,0xfc,0x7f,0x71,0x12,0x81,0x1c,0x7f,0x71,0xbd,0x5c,0x7d,0x3d,0x40, +0xc, 0x1e,0x34,0x1b,0x34,0x6d,0x22,0x9f,0x17,0x7f,0x71,0x80,0x6, 0x1e,0x34,0x6d, +0x22,0x2f,0x71,0x12,0x80,0xf1,0x6d,0x22,0xbf,0x71,0x50,0x4, 0x7f,0x71,0x80,0xe, +0x90,0x61,0x3a,0xe4,0x93,0x12,0x80,0xf9,0xbf,0x71,0x28,0x2, 0x7f,0x71,0x7d,0x3f, +0x22,0x90,0x61,0x39,0xe4,0x93,0xa, 0x3b,0x22,0xa, 0x2b,0x7d,0x3d,0x9d,0x32,0x6d, +0x22,0x22,0x7e,0x24,0x0, 0xff,0xb, 0x1a,0xf0,0xad,0xfe,0x6d,0xee,0x7d,0x3f,0x7d, +0x2e,0x7c,0x76,0x7c,0x65,0x7f,0x71,0x22,0x7d,0x30,0xad,0x31,0x7c,0x76,0x7c,0x65, +0xa, 0x24,0x22,0xca,0x79,0x7c,0xe5,0x7c,0xfb,0x7e,0xe4,0xff,0xfc,0x7c,0xb4,0x12, +0x9f,0x40,0x7d,0x3, 0x74,0x9, 0xac,0xbf,0x12,0x87,0xe5,0x49,0x35,0x28,0xae,0x12, +0x81,0xbf,0x12,0x81,0x18,0x7d,0x13,0x5e,0x30,0xfc,0x7e,0x70,0x9, 0xac,0x7f,0x49, +0xf3,0x29,0x62,0x74,0x9, 0xac,0xbe,0x49,0x25,0x28,0xae,0xbd,0x2f,0x28,0xf, 0x7d, +0x53,0x2e,0x54,0x29,0x62,0x7d,0x2f,0x2d,0x21,0x1b,0x58,0x20,0x80,0x9, 0x2e,0x34, +0x29,0x62,0x9d,0xf1,0x1b,0x38,0xf0,0x74,0x9, 0xac,0xbf,0x12,0x81,0xb3,0x12,0x81, +0x18,0x7d,0x13,0x5d,0x1e,0x7e,0x50,0x9, 0xac,0x5f,0x49,0x32,0x29,0x64,0x74,0x9, +0xac,0xbe,0x49,0x5, 0x28,0xb0,0xbd,0x3, 0x28,0xd, 0x7d,0x2, 0x2e,0x4, 0x29,0x64, +0x2d,0x13,0x1b,0x8, 0x10,0x80,0x9, 0x2e,0x24,0x29,0x64,0x9d,0x31,0x1b,0x28,0x30, +0xda,0x79,0x22,0x49,0x25,0x29,0x64,0x74,0x9, 0xac,0xbe,0x49,0x35,0x28,0xb0,0x9d, +0x32,0x12,0x21,0x0, 0x7d,0x13,0x22,0x7d,0x41,0x7d,0x2, 0x7c,0x37,0x7c,0x2b,0x74, +0x4, 0xac,0xb2,0x49,0x35,0x2b,0xbf,0x49,0xf5,0x2b,0xc1,0x74,0x4, 0xac,0xb3,0x49, +0x25,0x2b,0xbf,0x49,0x55,0x2b,0xc1,0x12,0x81,0xbf,0x7d,0x3f,0x9d,0x35,0x12,0x21, +0x0, 0x9d,0x34,0x12,0x21,0x0, 0x7e,0x54,0x62,0x6a,0x7e,0x44,0x0, 0xff,0xb, 0x2a, +0x20,0xbd,0x32,0x50,0xf, 0x12,0x67,0xeb,0x7e,0x14,0x62,0x6a,0x12,0x87,0xee,0x50, +0x3, 0x74,0x1, 0x22,0xe4,0x22,0xca,0xf8,0x6c,0xff,0x7e,0xb7,0x2f,0x9c,0x7e,0xc7, +0x2f,0x9e,0x7e,0x97,0x2f,0x84,0x7e,0xd7,0x2f,0x86,0x7e,0xa7,0x2f,0x98,0x7e,0xe7, +0x2f,0x9a,0xe4,0x7e,0x73,0x2f,0xa8,0x1b,0x70,0x7d,0x2b,0x7d,0x1c,0x12,0x81,0xc7, +0x70,0x2, 0x61,0x45,0x7e,0x73,0x2f,0xa8,0xbe,0x70,0xa, 0x28,0x13,0xe4,0x7e,0x70, +0x9, 0x7e,0x27,0x2f,0xa0,0x7e,0x17,0x2f,0xa2,0x12,0x81,0xc7,0x70,0x2, 0x61,0x45, +0x7e,0x73,0x2f,0xa8,0xbe,0x70,0x14,0x28,0x13,0xe4,0x7e,0x70,0x13,0x7e,0x27,0x2f, +0xa4,0x7e,0x17,0x2f,0xa6,0x12,0x81,0xc7,0x70,0x2, 0x61,0x45,0x7e,0x34,0x62,0x72, +0x12,0x83,0x4a,0x28,0x4a,0x7e,0x34,0x62,0x70,0x12,0x83,0x54,0x50,0x41,0x7e,0xb3, +0x2f,0x81,0x70,0x3b,0x7e,0x34,0x62,0x76,0x12,0x23,0x9e,0x12,0x83,0x5e,0x7d,0x8f, +0x9d,0x83,0xbe,0x87,0x2f,0x82,0x50,0x27,0x7e,0x34,0x62,0x74,0x12,0x87,0xc4,0x9d, +0xf8,0xbe,0xf7,0x2f,0x82,0x28,0x18,0x7d,0xfc,0x3e,0xf4,0xbd,0xfb,0x40,0x2, 0x61, +0x45,0xbd,0xa9,0x50,0x5, 0x7e,0xf0,0x20,0x80,0x7b,0x7e,0xf0,0x21,0x80,0x76,0x7e, +0x34,0x62,0x7a,0x12,0x83,0x54,0x28,0x6d,0x7e,0x34,0x62,0x78,0x12,0x83,0x4a,0x50, +0x64,0x7e,0xb3,0x2f,0x81,0x70,0x5e,0x7e,0x34,0x62,0x7e,0x12,0x23,0x9e,0x12,0x83, +0x5e,0x7d,0xaf,0x9d,0xa3,0xbe,0xa7,0x2f,0x82,0x50,0x4a,0x7e,0x34,0x62,0x7c,0x7e, +0x24,0x0, 0xff,0xb, 0x1a,0xa0,0x9d,0xfa,0xbe,0xf7,0x2f,0x82,0x28,0x37,0x7d,0xfb, +0x3e,0xf4,0xbd,0xfc,0x50,0x2f,0xbd,0xed,0x50,0x5, 0x7e,0xf0,0x22,0x80,0x26,0x12, +0x67,0xf2,0x49,0x35,0x2b,0xbb,0x49,0x15,0x2b,0xbd,0x49,0x25,0x2b,0xab,0x49,0x5, +0x2b,0xad,0x9d,0x10,0xbe,0x14,0x0, 0x20,0x18,0x8, 0x9d,0x32,0xbe,0x34,0x0, 0x10, +0x58,0x3, 0x7e,0xf0,0x23,0x7c,0xbf,0xda,0xf8,0x22,0x7e,0x24,0x0, 0xff,0xb, 0x1a, +0xf0,0xbd,0xfc,0x22,0x7e,0x24,0x0, 0xff,0xb, 0x1a,0xf0,0xbd,0xfb,0x22,0x7e,0x14, +0x62,0x8e,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0xf0,0x22,0x12,0x86,0x69,0x7a,0x37,0x2f, +0x9c,0x12,0x85,0xf4,0x7a,0x37,0x2f,0x9e,0x12,0x82,0x16,0x60,0x1, 0x22,0x7e,0x73, +0x2f,0xa8,0xa, 0x37,0x7a,0x35,0x24,0x7e,0x8, 0x2b,0xbf,0x7e,0x18,0x2f,0x80,0x2, +0x83,0x92,0xca,0xf8,0x7e,0x45,0x24,0x7c,0xb9,0x7a,0xb3,0x38,0x3f,0x74,0xff,0x7a, +0xb3,0x38,0x3e,0x6d,0x55,0x80,0x19,0x7d,0xf5,0x3e,0xf4,0x12,0x86,0x74,0x7d,0xe5, +0x3e,0xe4,0x59,0xfe,0x1f,0x34,0x69,0xf6,0x0, 0x2, 0x59,0xfe,0x21,0x14,0xb, 0x54, +0xbd,0x45,0x38,0xe3,0x7e,0x33,0x38,0x3f,0xbe,0x30,0x4, 0x38,0x2, 0x81,0x54,0x69, +0xf1,0x0, 0x1c,0x69,0x11,0x0, 0x1e,0xbd,0x1f,0x18,0x19,0x4d,0x11,0x78,0x4, 0x7e, +0x14,0x0, 0x1, 0x7d,0x3f,0x7d,0x21,0x12,0x1e,0xb9,0x7c,0xf7,0x74,0x40,0x7a,0xb3, +0x38,0x42,0x80,0x43,0x4d,0xff,0x78,0x4, 0x7e,0xf4,0x0, 0x1, 0x7d,0x31,0x7d,0x2f, +0x12,0x1e,0xb9,0x7c,0xf7,0x74,0x80,0x7a,0xb3,0x38,0x42,0x7d,0xf, 0x2d,0xf, 0xbd, +0x1, 0x8, 0x24,0x1a,0x2, 0x1a,0x0, 0x7e,0x73,0x38,0x42,0xa, 0x37,0x6d,0x22,0x12, +0x1e,0xeb,0x7d,0x5f,0x1a,0x4a,0x1a,0x48,0x7d,0x1f,0x1a,0x2, 0x1a,0x0, 0x2f,0x2, +0x12,0x1f,0x7, 0x7a,0x73,0x38,0x42,0xbe,0xf0,0x5, 0x58,0x14,0x12,0x84,0x73,0x12, +0xbf,0x1c,0x12,0x84,0x73,0x12,0x84,0x7c,0x12,0x84,0x73,0x12,0xa5,0x28,0x80,0xa, +0x74,0x7d,0x80,0x2, 0x74,0x7f,0x7a,0xb3,0x38,0x3e,0xe4,0x7a,0xb3,0x38,0x3f,0x7e, +0x73,0x39,0x1, 0xbe,0x73,0x38,0x3e,0x48,0x6, 0x7e,0xb3,0x38,0x40,0x80,0x1, 0xe4, +0xda,0xf8,0x22,0x7e,0x8, 0x1f,0x34,0x7e,0x18,0x21,0x14,0x22,0xca,0x3b,0x7f,0x71, +0x7e,0x60,0x1, 0xb, 0xa, 0x20,0xb, 0x7a,0x50,0x7c,0x4b,0x7a,0x53,0x22,0xf4,0x7a, +0x43,0x23,0xe4,0x7e,0x70,0x1, 0x7e,0xa0,0x1, 0xa1,0x9d,0x7e,0x90,0x2, 0xac,0x9a, +0x7f,0x60,0x2d,0xd4,0xb, 0x6a,0xd0,0x7d,0x7d,0x7c,0xbf,0xf5,0x26,0x7f,0x67,0x2d, +0xd4,0xb, 0x6a,0x40,0xa, 0xd5,0xa, 0xbb,0x7d,0xab,0x9d,0xad,0x7d,0x7a,0x7c,0x8f, +0xbe,0x80,0x0, 0x58,0x5, 0x6e,0x80,0xff,0xb, 0x80,0xa, 0xa4,0xa, 0x79,0x9d,0x7a, +0xbe,0xf0,0x0, 0x58,0x5, 0x6e,0xf0,0xff,0xb, 0xf0,0xbe,0x80,0x2, 0x58,0x7, 0xbe, +0xf0,0x2, 0x58,0x2, 0xa1,0x9b,0xbe,0x60,0x0, 0x18,0x2, 0xa1,0x83,0xbe,0x70,0xec, +0x28,0x2, 0xa1,0xa7,0xbe,0x80,0x8, 0x58,0x5, 0xbe,0xf0,0x8, 0x48,0x61,0xa, 0xa7, +0xb, 0xa4,0x7d,0x6a,0x7c,0x7d,0xa, 0xa5,0x2d,0xab,0x12,0x85,0xeb,0x19,0xba,0x22, +0xf4,0xa, 0xd9,0xa, 0xa4,0x2d,0xad,0x12,0x85,0xeb,0x19,0xba,0x23,0xe4,0x9, 0xba, +0x22,0xf4,0xa, 0xdb,0xa, 0xc5,0x2d,0xcd,0xe, 0xc4,0x7d,0x6c,0x7c,0xbd,0xa, 0xc7, +0x19,0xbc,0x22,0xf3,0x9, 0xbc,0x23,0xe4,0xa, 0xcb,0xa, 0xa4,0x2d,0xac,0x12,0x85, +0xeb,0x19,0xba,0x23,0xe3,0x2d,0xdb,0x12,0x85,0xe2,0x19,0xbd,0x22,0xf5,0xa, 0xd9, +0x12,0x85,0xe0,0x19,0xbd,0x23,0xe5,0xb, 0xd5,0x7d,0x6d,0x7c,0x7d,0x80,0x24,0xbe, +0x80,0x4, 0x58,0x5, 0xbe,0xf0,0x4, 0x48,0x1a,0xe5,0x26,0xa, 0xcb,0xa, 0xd5,0x12, +0x85,0xe0,0x19,0xbd,0x22,0xf4,0xa, 0xc9,0xa, 0xd4,0x12,0x85,0xe0,0x19,0xbd,0x23, +0xe4,0xb, 0x70,0xbe,0x70,0xf0,0x50,0x1f,0x7e,0x51,0x26,0x7c,0x49,0xe5,0x26,0xa, +0xd7,0x19,0xbd,0x22,0xf4,0x19,0x9d,0x23,0xe4,0xb, 0x70,0xb, 0xa0,0x7e,0xb3,0x38, +0x3f,0xbc,0xba,0x28,0x2, 0x81,0x9b,0x7a,0x73,0x38,0x3f,0x7e,0xa0,0x1, 0x80,0x25, +0xa, 0x3a,0x9, 0xb3,0x22,0xf4,0xa, 0x2b,0x7e,0x70,0x2, 0xac,0x7a,0x7f,0x60,0x2d, +0xd3,0x1b,0x6a,0x20,0xa, 0x2a,0x9, 0xb2,0x23,0xe4,0xa, 0x4b,0x2d,0x3f,0x7d,0x2e, +0x1b,0x1a,0x40,0xb, 0xa0,0x7e,0xb3,0x38,0x3f,0xbc,0xba,0x38,0xd3,0xda,0x3b,0x22, +0x2d,0xdc,0xe, 0xd4,0x7d,0x6d,0x7c,0xbd,0xa, 0xd7,0x22,0xe, 0xa4,0x7d,0x6a,0x7c, +0xbd,0xa, 0xa7,0x22,0x7e,0x37,0x2f,0x96,0x9e,0x37,0x2f,0x8e,0x22,0x7e,0x17,0x2f, +0x90,0xbd,0x13,0x28,0xa, 0x7a,0x37,0x2f,0x90,0x7a,0x27,0x2f,0x92,0x80,0x10,0x7e, +0x17,0x2f,0x88,0xbd,0x13,0x50,0x8, 0x7a,0x37,0x2f,0x88,0x7a,0x27,0x2f,0x8a,0x7e, +0x17,0x2f,0x8e,0xbd,0x12,0x28,0xa, 0x7a,0x27,0x2f,0x8e,0x7a,0x37,0x2f,0x8c,0x80, +0x10,0x7e,0x17,0x2f,0x96,0xbd,0x12,0x50,0x8, 0x7a,0x27,0x2f,0x96,0x7a,0x37,0x2f, +0x94,0x7e,0xb3,0x2f,0xa8,0xb4,0xa, 0xf, 0x12,0x86,0x69,0x7a,0x37,0x2f,0xa0,0x12, +0x85,0xf4,0x7a,0x37,0x2f,0xa2,0x22,0xb4,0x14,0xe, 0x12,0x86,0x69,0x7a,0x37,0x2f, +0xa4,0x12,0x85,0xf4,0x7a,0x37,0x2f,0xa6,0x22,0x7e,0x37,0x2f,0x88,0x9e,0x37,0x2f, +0x90,0x22,0x7d,0xf4,0x3e,0xf4,0x7f,0x60,0x2d,0xdf,0xb, 0x6a,0xf0,0x22,0x7c,0xab, +0x6d,0x44,0x80,0x29,0x4c,0xaa,0x68,0x11,0x12,0x86,0xb5,0x60,0x5, 0x3e,0xe4,0x14, +0x78,0xfb,0x12,0x86,0x72,0x2d,0xfe,0x80,0xf, 0x12,0x86,0xb5,0x60,0x5, 0x3e,0xe4, +0x14,0x78,0xfb,0x12,0x86,0x72,0x9d,0xfe,0x1b,0x6a,0xf0,0xb, 0x44,0x7e,0xf5,0x2a, +0xbd,0xf4,0x38,0xd0,0x22,0x7f,0x71,0x2d,0xf4,0x7e,0x7b,0xb0,0x1a,0xeb,0x7f,0x61, +0x2e,0xd5,0x2a,0x7e,0x6b,0xb0,0x22,0x7c,0x7b,0x90,0x60,0x93,0xe4,0x93,0xa, 0x1b, +0x7e,0x63,0x2a,0x71,0xa, 0x6, 0x2d,0x1, 0x7e,0x63,0x2a,0x6e,0xa, 0x16,0xad,0x10, +0x7d,0x21,0x12,0x87,0xdc,0xa, 0x26,0x7a,0x25,0x2a,0x74,0x1d,0xac,0x7b,0x2e,0x34, +0x37,0x44,0x6d,0x22,0xe4,0x2, 0x86,0x7e,0x7c,0x2b,0x7e,0xb3,0x1f,0x33,0xbc,0x2b, +0x68,0x4f,0x12,0x87,0x56,0x7c,0x3b,0x7c,0xb2,0x12,0x87,0x56,0x7c,0xab,0xbe,0x30, +0xff,0x68,0x3e,0xbe,0xa0,0xff,0x68,0x39,0x7e,0x70,0x4, 0xac,0x73,0xa, 0x2a,0x12, +0x91,0x67,0xbe,0xb0,0x2, 0x38,0x2a,0xa, 0x2b,0x7e,0x34,0x2, 0xe0,0xad,0x32,0x2e, +0x34,0x16,0x93,0x6d,0x22,0x30,0x16,0x3, 0x2, 0x86,0xc7,0x7e,0xb3,0x2b,0x1d,0xb4, +0x1, 0xf, 0x12,0xbf,0xfb,0x7a,0x55,0x2a,0x7e,0x8, 0xd, 0xc8,0x74,0x1, 0x2, 0x86, +0x7e,0x22,0x7e,0xb3,0x2b,0xf, 0x7c,0xab,0x6c,0x77,0x7e,0x50,0x5, 0xac,0x57,0x9, +0x62,0x26,0x33,0xbc,0x6a,0x78,0x3, 0x7c,0xb7,0x22,0xb, 0x70,0xbe,0x70,0x4, 0x40, +0xe9,0x74,0xff,0x22,0x7e,0xb3,0x37,0x31,0x70,0x6, 0x12,0x87,0xad,0x2, 0x87,0xb6, +0x12,0x63,0x9, 0x12,0xbd,0x4d,0x50,0xa, 0x12,0x83,0x6a,0x7c,0x3b,0x12,0x87,0xad, +0x80,0x5, 0x12,0xbd,0xf4,0x7c,0x3b,0x4c,0x33,0x68,0x11,0x7c,0xb3,0x12,0xbc,0xd1, +0x60,0xa, 0x7a,0x33,0x37,0x34,0x74,0x1, 0x7a,0xb3,0x2a,0x8, 0x22,0xe4,0x7a,0xb3, +0x2f,0x80,0x22,0x2, 0x81,0x23,0xe4,0x7a,0xb3,0x38,0xdd,0x22,0x7e,0x24,0x0, 0xff, +0xb, 0x1a,0xd0,0x22,0x7e,0x24,0x0, 0xff,0xb, 0x1a,0x80,0x22,0x7e,0x24,0x0, 0xff, +0xb, 0x1a,0x10,0x22,0x7e,0x90,0x40,0xac,0x89,0x1b,0x44,0x22,0x3e,0x24,0x7e,0xf, +0x38,0xd9,0x2d,0x12,0x22,0x49,0x25,0x29,0x62,0x74,0x9, 0xac,0xbe,0x22,0x7e,0x4, +0x0, 0xff,0xb, 0xa, 0x20,0xbd,0x32,0x22,0x7d,0x13,0x7d,0x32,0x6d,0x22,0x74,0x6, +0x2f,0x11,0x14,0x78,0xfb,0xb, 0x14,0x12,0x1f,0x5, 0x7d,0x53,0xbe,0x54,0x0, 0xff, +0x28,0x4, 0x7e,0x54,0x0, 0x40,0x22,0x12,0x6e,0x8f,0x50,0x3, 0xd2,0xf, 0x22,0xc2, +0xf, 0x22,0x12,0xac,0xc6,0x12,0x88,0x2b,0x2, 0x88,0x17,0x7e,0x8, 0x24,0xf2,0x7e, +0x34,0x0, 0xc, 0xe4,0x12,0x20,0xde,0x12,0xaa,0x3e,0x12,0xaa,0x35,0xa9,0xd1,0xcb, +0x12,0xc0,0xff,0x7a,0x37,0x24,0xf6,0x7e,0x1f,0x38,0xd9,0x7a,0x37,0x24,0xf8,0x7e, +0x1f,0x13,0x86,0x7a,0x37,0x24,0xfa,0x6d,0x33,0x12,0xb4,0x4d,0x2, 0xd, 0x7, 0x12, +0x54,0x94,0x12,0x88,0xb9,0x12,0x8c,0xad,0x7e,0xb3,0x37,0x6, 0xb4,0x1, 0x1e,0x7e, +0x34,0x61,0xc0,0x12,0x87,0xcc,0x7e,0x24,0x0, 0x5, 0xad,0x12,0x7a,0x17,0x28,0xa1, +0x7e,0x14,0x61,0xc2,0x12,0x64,0xd3,0xad,0x32,0x7a,0x37,0x28,0xa3,0x7e,0xb3,0x39, +0x11,0x60,0x7, 0x14,0x7a,0xb3,0x39,0x11,0x80,0x6, 0x7e,0xb3,0x28,0xac,0x60,0x9, +0x12,0x88,0x22,0x12,0x8c,0x90,0x12,0xb3,0xa9,0x7e,0xb3,0x28,0xad,0x60,0x9, 0x12, +0xbb,0x10,0x12,0xaa,0x47,0x2, 0x8d,0x10,0x22,0x7e,0x90,0x1, 0x7e,0xb3,0x2f,0xa9, +0xbe,0xb0,0xff,0x50,0x5, 0x4, 0x7a,0xb3,0x2f,0xa9,0x7e,0x34,0x61,0xc0,0x12,0x23, +0x9e,0x12,0xc0,0x87,0x12,0x23,0x9e,0x7a,0x37,0x28,0xa3,0x12,0x8c,0x87,0xb, 0x1a, +0xf0,0x7e,0x34,0x61,0x4f,0x12,0x87,0xbc,0xe4,0x7a,0xb3,0x28,0xac,0x74,0x1, 0x7a, +0xb3,0x28,0xad,0x7e,0x34,0xff,0xfa,0xad,0x3f,0x12,0x8f,0xdc,0x7d,0xc3,0xe, 0xc4, +0x7e,0xe7,0x7, 0xfe,0xbd,0xe3,0x58,0x15,0x7e,0xe7,0x7, 0xfc,0xbd,0xec,0x58,0xd, +0x12,0x8a,0x7c,0x8, 0x8, 0x12,0x8b,0xe, 0x60,0x3, 0x12,0x8a,0x95,0x12,0x8b,0xe, +0xa, 0xeb,0x4d,0xee,0x68,0x3b,0x6d,0xee,0x9d,0xef,0xbe,0xe7,0x7, 0xfe,0x18,0x6, +0xbe,0xe7,0x7, 0xfc,0x8, 0x2b,0x12,0x8a,0x7c,0x8, 0x26,0x7e,0x37,0x28,0x8e,0x12, +0x21,0x0, 0xbe,0x37,0x28,0x8a,0x8, 0x19,0x12,0x8a,0x74,0x28,0x14,0x7e,0x83,0x28, +0x85,0xbe,0x80,0x1, 0x28,0xb, 0x7e,0xc7,0x7, 0xfa,0xbd,0xcf,0x58,0x3, 0x12,0x8a, +0x95,0x12,0xad,0x5, 0x40,0x5, 0xe4,0x7a,0xb3,0x28,0xa8,0x12,0xc0,0xf7,0x68,0x6, +0x7e,0xb3,0x39,0xb, 0x60,0x7, 0xe4,0x7a,0xb3,0x28,0xad,0x80,0x7d,0x12,0x8a,0x74, +0x28,0x5, 0xe4,0x7a,0xb3,0x28,0xad,0x30,0x10,0x5, 0xe4,0x7a,0xb3,0x28,0xad,0x12, +0xad,0x43,0x50,0xd, 0x74,0x1, 0x7a,0xb3,0x28,0xad,0x12,0x8a,0xa6,0x7c,0x9b,0x80, +0x1a,0x7e,0xb3,0x26,0x84,0x70,0x14,0x7e,0xb3,0x26,0x85,0x70,0xe, 0x12,0x8a,0x74, +0x28,0x9, 0x7e,0x90,0x3, 0x74,0x1, 0x7a,0xb3,0x28,0xad,0x7e,0xc7,0x7, 0xfa,0xbe, +0xc4,0x5, 0xdc,0x8, 0x17,0x12,0x8a,0x74,0x28,0x12,0x6d,0xcc,0x9d,0xcd,0xbe,0xc7, +0x28,0x8e,0x58,0x8, 0x12,0x8a,0x87,0xe4,0x7a,0xb3,0x28,0xad,0xa, 0x29,0x7e,0x14, +0x61,0xc0,0x12,0x64,0xd3,0xad,0x32,0x7a,0x37,0x28,0xa1,0xa, 0x29,0x7e,0x14,0x61, +0xc2,0x12,0x64,0xd3,0xad,0x32,0x7a,0x37,0x28,0xa3,0x12,0x0, 0x66,0x50,0xd, 0xe4, +0x7a,0xb3,0x28,0xad,0x12,0x8f,0xe3,0x28,0x3, 0x12,0x8a,0x87,0x7e,0xc7,0x28,0x8a, +0xbd,0xcd,0x8, 0x19,0x12,0x9b,0xf, 0x6e,0x34,0xff,0xff,0xb, 0x34,0xbe,0x37,0x28, +0x8e,0x58,0xa, 0x12,0x0, 0x66,0x50,0x5, 0xe4,0x7a,0xb3,0x28,0xad,0x12,0x8b,0x8e, +0xb4,0x1, 0x5, 0xe4,0x7a,0xb3,0x28,0xad,0x7e,0xb3,0x28,0xac,0xb4,0x1, 0x9, 0xe4, +0x7a,0xb3,0x28,0x84,0x7a,0xb3,0x2a,0x2, 0x12,0xac,0x6d,0x7e,0xb3,0x2f,0xaa,0xbe, +0xb0,0x0, 0x28,0x1f,0x14,0x7a,0xb3,0x2f,0xaa,0x70,0x18,0xe4,0x7a,0xb3,0x28,0xad, +0x12,0x8c,0x7f,0x7a,0xb3,0x16,0x91,0x7a,0xb3,0x16,0x90,0x7a,0xb3,0x28,0x84,0x7a, +0xb3,0x26,0x83,0x22,0x7e,0x83,0x28,0x84,0xbe,0x80,0x0, 0x22,0x6d,0xee,0x9e,0xe7, +0x2a,0x5a,0xbe,0xe7,0x28,0x8e,0x22,0xe4,0x7a,0xb3,0x2f,0xaa,0x7a,0xb3,0x28,0xac, +0x74,0x2, 0x2, 0x29,0xfa,0x74,0x2, 0x7a,0xb3,0x2f,0xaa,0xe4,0x7a,0xb3,0x2f,0xa9, +0x12,0x8c,0x7f,0x2, 0x29,0xfa,0x7e,0xa0,0x1, 0x7e,0x47,0x7, 0xf8,0x12,0x8c,0x87, +0xb, 0x1a,0x0, 0x7e,0x34,0xff,0xfa,0xad,0x30,0x7e,0x14,0x0, 0x2, 0x12,0x8b,0x6, +0x8, 0x12,0x7e,0xb3,0x28,0xac,0x60,0x7, 0xe4,0x7a,0xb3,0x28,0xad,0x80,0x32,0x7e, +0xa0,0x5, 0x80,0x2d,0x7e,0x34,0xff,0xfb,0x12,0x8b,0x4, 0x8, 0x5, 0x7e,0xa0,0x4, +0x80,0x1f,0x7e,0x34,0xff,0xfc,0x12,0x8b,0x4, 0x8, 0x5, 0x7e,0xa0,0x3, 0x80,0x11, +0x7e,0x34,0xff,0xfd,0x12,0x8b,0x4, 0x8, 0x5, 0x7e,0xa0,0x2, 0x80,0x3, 0x7e,0xa0, +0x1, 0x7c,0xba,0x22,0xad,0x30,0x7d,0x21,0x12,0x1e,0xb9,0xbd,0x34,0x22,0x6c,0x66, +0x90,0x60,0xa7,0xe4,0x93,0xbe,0xb0,0x0, 0x28,0x71,0x90,0x60,0xaa,0xe4,0x93,0x70, +0x6a,0x7e,0xb3,0x28,0xa8,0xb4,0x1, 0x63,0x7e,0x73,0x26,0xf2,0xbe,0x70,0x0, 0x28, +0x5a,0x6c,0x33,0x80,0x4e,0xa, 0x23,0x9, 0x72,0x26,0xe6,0x7e,0xb3,0x2a,0x6e,0x14, +0xbc,0x7b,0x78,0x3d,0x6c,0x22,0x80,0x27,0x7c,0xb2,0x7c,0x73,0x12,0x9d,0x8b,0x50, +0x1c,0xa, 0x22,0x7e,0x73,0x2a,0x6e,0xa, 0x7, 0x2d,0x2, 0x3e,0x4, 0x49,0x20,0x4, +0xfc,0x6d,0x0, 0x9e,0x7, 0x2a,0x4f,0xbd,0x20,0x58,0x2, 0xb, 0x60,0xb, 0x20,0x7e, +0x73,0x2a,0x6d,0xbc,0x72,0x38,0xd1,0xbe,0x60,0x0, 0x28,0x3, 0x74,0x1, 0x22,0xe4, +0x22,0xb, 0x30,0x7e,0x73,0x26,0xf2,0xbc,0x73,0x38,0xaa,0x74,0x1, 0x22,0xca,0x3b, +0x12,0xa6,0x4e,0x38,0x2, 0x81,0x55,0x7e,0xc3,0x2f,0xad,0x4c,0xcc,0x78,0x3d,0x7a, +0xb3,0x2f,0xad,0xe4,0x7a,0xb3,0x2f,0xaf,0x6c,0xaa,0x80,0x26,0x12,0x8c,0x60,0x7e, +0x70,0x2, 0xac,0x7a,0x9, 0xd3,0x26,0xfa,0x9, 0xe3,0x26,0xfb,0x7a,0x49,0xd0,0x19, +0xe4,0x0, 0x1, 0x74,0x1, 0x19,0xb4,0x0, 0x8, 0x12,0x8c,0x6a,0x59,0x34,0x0, 0x2, +0xb, 0xa0,0x7e,0xb3,0x28,0x84,0xbc,0xba,0x38,0xd2,0x80,0x7f,0x7c,0xfc,0x6c,0xaa, +0x80,0x35,0x12,0x8c,0x60,0x7e,0x49,0xd0,0x9, 0xe4,0x0, 0x1, 0x9, 0xb4,0x0, 0x8, +0x70,0x4, 0x1b,0xf0,0x80,0x1f,0x12,0x8c,0x6a,0x7d,0x23,0x49,0x34,0x0, 0x2, 0x9d, +0x32,0x12,0x21,0x0, 0x7d,0xf3,0xbe,0xf4,0x0, 0x23,0x8, 0x9, 0x74,0x5, 0x19,0xb4, +0x0, 0x8, 0x75,0x4c,0x1, 0xb, 0xa0,0xbc,0xfa,0x38,0xc7,0x4c,0xff,0x78,0x2, 0x80, +0x26,0x7e,0x73,0x2f,0xaf,0xbe,0x70,0x4, 0x40,0x22,0x6c,0xaa,0x80,0xe, 0x12,0x8c, +0x60,0x9, 0xb4,0x0, 0x8, 0xbe,0xb0,0x5, 0x68,0x6, 0xb, 0xa0,0xbc,0xfa,0x38,0xee, +0xbc,0xfa,0x78,0x3, 0x75,0x4c,0x0, 0x12,0x8c,0x71,0x80,0xf, 0x7c,0xb7,0x4, 0x7a, +0xb3,0x2f,0xaf,0x80,0x6, 0x12,0x8c,0x71,0x75,0x4c,0x0, 0xe5,0x4c,0xda,0x3b,0x22, +0x7e,0x90,0x9, 0xac,0x9a,0x2e,0x44,0x2f,0xb0,0x22,0x7c,0xbd,0x7c,0x7e,0x2, 0x2c, +0x40,0xe4,0x7a,0xb3,0x2f,0xae,0x7a,0xb3,0x2f,0xad,0x7a,0xb3,0x2f,0xaf,0x22,0x74, +0x1, 0x7a,0xb3,0x28,0xac,0xe4,0x22,0x7e,0x34,0x61,0x55,0x7e,0x24,0x0, 0xff,0x22, +0x12,0x8c,0xcd,0x6d,0x33,0x7a,0x37,0x36,0xdd,0x6c,0xaa,0x80,0x5, 0x12,0x8d,0x5e, +0xb, 0xa0,0x12,0x8d,0x8, 0x38,0xf6,0xe4,0x7a,0xb3,0x36,0x72,0x22,0x12,0xb0,0x94, +0x60,0x1a,0x74,0x1, 0x7a,0xb3,0x28,0xad,0x7e,0x37,0x28,0xa1,0x3e,0x34,0x7a,0x37, +0x28,0xa1,0x7e,0x37,0x28,0xa3,0x3e,0x34,0x7a,0x37,0x28,0xa3,0x22,0x7e,0x37,0x38, +0xd2,0x12,0x25,0x3c,0x7a,0x37,0x36,0xdd,0x6c,0xaa,0x80,0x23,0x12,0x8d,0x8, 0x28, +0x26,0xa, 0x4a,0x9, 0x64,0x36,0x76,0xbc,0x6b,0x50,0x12,0x7e,0x50,0x2, 0xac,0x5a, +0x49,0x42,0x38,0xcc,0x7e,0x70,0xc, 0xac,0x67,0x59,0x43,0x36,0x80,0xb, 0xa0,0x7e, +0xb3,0x36,0x73,0xbc,0xba,0x38,0xd5,0x22,0x90,0x61,0xc5,0xe4,0x93,0xbc,0xba,0x22, +0x6c,0xaa,0x80,0x44,0x7e,0x70,0xc, 0xac,0x7a,0x12,0xae,0xa2,0xbe,0x34,0x3, 0xe8, +0x8, 0x5, 0x12,0x8d,0x5e,0x80,0x2f,0x7e,0x50,0xc, 0xac,0x5a,0x49,0x32,0x36,0x84, +0x49,0x12,0x36,0x80,0xbd,0x13,0x28,0xf, 0x7d,0x2, 0x2e,0x4, 0x36,0x84,0x7d,0x13, +0xb, 0x15,0x1b,0x8, 0x10,0x80,0xf, 0xbe,0x34,0x0, 0x2, 0x28,0x9, 0x2e,0x24,0x36, +0x84,0x1b,0x35,0x1b,0x28,0x30,0xb, 0xa0,0x12,0x8d,0x8, 0x38,0xb7,0x22,0x7e,0x50, +0xc, 0xac,0x5a,0x49,0x32,0x36,0x80,0x59,0x32,0x36,0x84,0x22,0x7e,0xb3,0x36,0x66, +0x60,0x6, 0x14,0x7a,0xb3,0x36,0x66,0x22,0x12,0x8c,0xcd,0x90,0x61,0xc5,0xe4,0x93, +0xbe,0xb0,0x4, 0x28,0x3, 0x12,0x8d,0xef,0x7e,0xb3,0x36,0xec,0x70,0xe, 0x7e,0xb3, +0x39,0x12,0xb4,0x1, 0x7, 0xe4,0x12,0x8d,0xb3,0x12,0xc0,0x6b,0x12,0x67,0x1f,0x12, +0x8e,0xa2,0x7e,0xa3,0x36,0xec,0x7a,0xa3,0x39,0x12,0xbe,0xb0,0xff,0x68,0x3, 0x2, +0x8d,0xb3,0x22,0xca,0xf8,0x7c,0xfb,0x74,0x5, 0xac,0xbf,0x12,0xc0,0x99,0x12,0xc0, +0x19,0x12,0x6f,0xff,0x12,0xc0,0x10,0x7a,0xf3,0x0, 0x4f,0x7c,0xbf,0x12,0xb3,0x2a, +0x12,0x6e,0x29,0x74,0x5, 0xac,0xbf,0x9, 0xb5,0x26,0x37,0x12,0xae,0xe1,0x12,0x8d, +0xef,0x12,0x23,0x4, 0xe4,0x7a,0xb3,0x16,0x91,0xda,0xf8,0x22,0x12,0x8f,0xd2,0x7e, +0xb3,0x2b,0xf, 0xca,0x3b,0x7c,0xeb,0x6c,0xff,0x7e,0x34,0x60,0xd6,0x7e,0x24,0x0, +0xff,0xb, 0x1a,0xc0,0x7e,0x73,0x37,0xcd,0xa, 0xb7,0x7e,0xb3,0x2b,0x10,0xf5,0x36, +0x12,0x8f,0xca,0xbe,0xd0,0x4, 0x38,0x5, 0xe4,0x7a,0xb3,0x36,0x72,0xa, 0x3e,0xad, +0x3b,0x7d,0xa3,0x2d,0xac,0x75,0x35,0x0, 0x7e,0xa3,0x36,0x72,0xbc,0xad,0x40,0x2, +0x80,0x19,0xbe,0xa0,0x0, 0x28,0x19,0x74,0x5, 0xa4,0x9, 0x75,0x26,0x33,0xbc,0x7e, +0x78,0xe, 0x7c,0xbd,0x14,0xbe,0xb3,0x36,0x72,0x78,0x5, 0xe4,0x7a,0xb3,0x36,0x72, +0x7e,0xc3,0x36,0x72,0x80,0x41,0x7e,0xb3,0x36,0x72,0x4, 0x7a,0xb3,0x36,0x72,0x7e, +0x90,0x5, 0xac,0x9c,0x9, 0xa4,0x26,0x33,0xbc,0xae,0x68,0x29,0xe5,0x35,0xa, 0xdb, +0x19,0xcd,0x36,0x76,0xa, 0x9a,0xad,0x9b,0x2d,0x9c,0x7e,0xa1,0x35,0x7c,0xba,0x4, +0xf5,0x35,0x7c,0xba,0x7d,0x39,0x7d,0x2a,0x7e,0x31,0x36,0x12,0x10,0x0, 0xb, 0xf0, +0xbe,0xf0,0x3, 0x50,0x6, 0xb, 0xc0,0xbc,0xdc,0x38,0xbb,0x7a,0xf3,0x36,0x73,0xda, +0x3b,0x22,0xca,0xd8,0xca,0x79,0x7e,0xe0,0xff,0x12,0xaf,0x37,0x7e,0xb3,0x36,0x6b, +0xb4,0x1, 0x8, 0x12,0x88,0x22,0xe4,0x7a,0xb3,0x36,0x6b,0x7e,0xb3,0x36,0x6a,0x60, +0x4, 0x74,0xff,0xe1,0xc5,0x7e,0xb3,0x36,0x69,0xb4,0x2, 0x2, 0x80,0x2, 0xe1,0xb9, +0x12,0xc0,0xef,0x38,0xc, 0x12,0x8f,0xf3,0x38,0x7, 0x12,0x8f,0xeb,0x38,0x2, 0xe1, +0xb9,0x12,0x8f,0xca,0xa, 0x3d,0x1b,0x34,0xbe,0x34,0x0, 0x3, 0x48,0x4, 0x74,0x3, +0x80,0x3, 0x7c,0xbd,0x14,0x12,0xae,0x11,0x7c,0xfb,0x7e,0xb3,0x36,0x68,0x4, 0x7a, +0xb3,0x36,0x68,0x90,0x61,0xc5,0xe4,0x93,0x14,0x12,0xae,0x11,0x7c,0xab,0xbe,0xa0, +0xff,0x68,0x2c,0xbe,0xf0,0xff,0x68,0x25,0x7e,0x30,0xc, 0xac,0x3f,0x49,0x21,0x36, +0x7e,0x7e,0xf4,0x61,0xcc,0x7e,0xe4,0x0, 0xff,0xb, 0x7a,0x30,0xbd,0x23,0x28,0xf, +0x12,0xae,0x98,0x3e,0x34,0xbd,0x23,0x28,0x6, 0x7c,0xfa,0x80,0x2, 0x7c,0xfa,0xbe, +0xf0,0xff,0x78,0x11,0xe4,0x7a,0xb3,0x36,0x68,0x7a,0xb3,0x36,0x69,0x7a,0xb3,0x36, +0x75,0x74,0xff,0x80,0x70,0x90,0x61,0xd4,0xe4,0x93,0xbe,0xb3,0x36,0x68,0x50,0x59, +0x74,0xc, 0xac,0xbf,0x49,0x25,0x36,0x7e,0x7e,0x14,0x61,0xcc,0x12,0x64,0xd3,0xbd, +0x23,0x50,0x3d,0x7e,0x34,0x61,0xd0,0x12,0x23,0x9e,0xbe,0x37,0x36,0x64,0x40,0xd, +0x7e,0x34,0x61,0xd2,0x12,0x23,0x9e,0xbe,0x37,0x36,0x6f,0x50,0x23,0x74,0x5, 0xac, +0xbf,0x9, 0x75,0x26,0x33,0xbe,0x73,0x2b,0xf, 0x68,0x15,0x7c,0xef,0xbe,0xe0,0x4, +0x50,0x8, 0x12,0x87,0x52,0xbe,0xb0,0x4, 0x40,0x6, 0x74,0x1, 0x7a,0xb3,0x36,0x6b, +0xe4,0x7a,0xb3,0x36,0x75,0x7a,0xb3,0x36,0x69,0xbe,0xe0,0xff,0x68,0x5, 0xe4,0x7a, +0xb3,0x36,0x68,0x7c,0xbe,0xda,0x79,0xda,0xd8,0x22,0x90,0x61,0xc5,0xe4,0x93,0x7c, +0xdb,0x22,0x12,0xae,0xaf,0x74,0x1, 0x7a,0xb3,0x36,0x66,0x22,0x7e,0x24,0x0, 0x2, +0x2, 0x1e,0xb9,0x7e,0x73,0x28,0x84,0xbe,0x70,0x0, 0x22,0x7e,0x73,0x26,0xf5,0xbe, +0x70,0x0, 0x22,0x7e,0x73,0x26,0xf4,0xbe,0x70,0x0, 0x22,0xca,0xf8,0x7e,0xf3,0x2a, +0x70,0x7a,0x37,0x1f,0x3a,0x7e,0x34,0x15,0x9e,0x7a,0x37,0x1f,0x3c,0xe4,0x7a,0xb3, +0x1f,0x34,0x7a,0xb3,0x1f,0x35,0x7e,0x73,0x2a,0x6f,0x7a,0x73,0x1f,0x36,0x7a,0xf3, +0x1f,0x37,0x7a,0xb3,0x1f,0x38,0x7a,0xb3,0x1f,0x39,0x7e,0x8, 0x1f,0x34,0x12,0x90, +0x50,0x6d,0x22,0x7d,0x3, 0x6d,0x11,0x7e,0x37,0x15,0xa0,0x2f,0x10,0x7e,0x33,0x1f, +0x36,0x6d,0x0, 0x12,0x1f,0x7, 0xa, 0x1f,0x6d,0x0, 0x12,0x1f,0x7, 0xda,0xf8,0x22, +0x12,0xc, 0x29,0x7e,0x37,0x15,0x9e,0x22,0x7a,0x37,0x1f,0x38,0x7e,0x34,0x15,0xa8, +0x7a,0x37,0x1f,0x3c,0x7e,0x34,0x15,0x9e,0x7a,0x37,0x1f,0x3a,0x7e,0x73,0x2a,0x6f, +0x7a,0x73,0x1f,0x35,0x7e,0x73,0x2a,0x70,0x7a,0x73,0x1f,0x34,0x7e,0x37,0x2a,0x5c, +0x7a,0x37,0x1f,0x3e,0x7e,0x37,0x2a,0x5e,0x7a,0x37,0x1f,0x40,0x7e,0x37,0x2a,0x60, +0x7a,0x37,0x1f,0x42,0x74,0x1, 0x7a,0xb3,0x1f,0x36,0x7a,0xb3,0x1f,0x37,0x7e,0x8, +0x1f,0x34,0x7e,0x18,0x1f,0x44,0x12,0x8, 0x0, 0x7e,0x37,0x1f,0x4e,0x7e,0x27,0x1f, +0x4a,0xbd,0x23,0x28,0x2, 0x7d,0x32,0x22,0x74,0xc8,0x7a,0xb3,0x39,0x6, 0xc2,0x17, +0x80,0xa, 0x12,0x45,0xd6,0x30,0x17,0x4, 0x75,0xe9,0xff,0x22,0x12,0x47,0xff,0x68, +0xf1,0x22,0x74,0x1, 0x12,0x90,0xf1,0x20,0x17,0x6, 0x12,0x46,0x4e,0x12,0x90,0xfa, +0x7e,0xb3,0x34,0x3a,0xb4,0x1, 0x6, 0x12,0x90,0xb8,0x12,0x90,0xfa,0xe4,0x2, 0x90, +0xf1,0xbe,0xb0,0x8, 0x50,0x3, 0x12,0x90,0xff,0x22,0xd2,0x4, 0x2, 0x45,0x5a,0xa, +0x5b,0x2e,0x54,0x0, 0x8, 0xf5,0xcc,0x22,0x12,0x47,0xff,0x68,0xfb,0x20,0x93,0xfd, +0x22,0x7e,0x34,0x61,0x59,0x2, 0x23,0x9e,0x7e,0xb3,0x37,0x6, 0x70,0x2e,0x7e,0x73, +0x36,0xe9,0xbe,0x70,0x10,0x40,0x2, 0x6c,0x77,0x7e,0xb3,0x37,0x31,0xb4,0x1, 0x3, +0x7e,0x70,0x6, 0xa, 0x37,0x2e,0x34,0xf, 0xf0,0x12,0x91,0x6d,0x7c,0xab,0xe5,0x4e, +0xa, 0x3b,0x2e,0x37,0x38,0x83,0x7a,0x37,0x38,0x83,0x80,0xc, 0x7e,0xa3,0x36,0xea, +0xbe,0xa0,0x7f,0x28,0x3, 0x7e,0xa0,0x7f,0x7c,0xba,0x2, 0x91,0x5d,0x75,0x4e,0x0, +0x7a,0xb3,0x39,0x6, 0xc2,0x17,0x22,0x2d,0x32,0x2e,0x34,0x20,0xf0,0x7a,0x71,0x82, +0x7a,0x61,0x83,0xe4,0x93,0x22,0x7e,0xb3,0x38,0x86,0x70,0x4, 0x74,0x1, 0x80,0x1, +0xe4,0x7a,0xb3,0x38,0x86,0x22,0x7f,0x20,0xc2,0x4, 0x7e,0x2b,0x60,0x29,0x72,0x0, +0x2, 0x9c,0x76,0x1a,0x37,0x12,0x21,0x0, 0x7c,0x27,0x29,0x72,0x0, 0x1, 0x29,0x32, +0x0, 0x3, 0x9c,0x37,0x1a,0x33,0x12,0x21,0x0, 0x7c,0x37,0x1a,0x23,0x1a,0x32,0x9d, +0x32,0x12,0x21,0x0, 0x7c,0x67,0x7c,0x72,0xbc,0x32,0x58,0x2, 0x7c,0x73,0xbe,0x60, +0x5, 0x18,0x5, 0xbe,0x70,0x6, 0x58,0x8, 0x7e,0x37,0x37,0xf3,0x4d,0x33,0x68,0x2, +0xd2,0x4, 0xa2,0x4, 0x22,0x7c,0xbd,0x7c,0x7e,0x7f,0x4, 0xca,0x3b,0x7f,0x70,0x7c, +0xe7,0x7c,0xdb,0x7e,0xc0,0x4, 0x7e,0xb3,0x2a,0x6d,0xf5,0x28,0x7e,0xb3,0x2a,0x6e, +0xf5,0x27,0x7e,0x34,0x62,0xa, 0x12,0x87,0xbc,0x6c,0xff,0x12,0x2f,0xff,0x7f,0x51, +0xe5,0x28,0xa, 0x3b,0x1b,0x34,0xa, 0xcd,0xbd,0xc3,0x58,0x14,0xe5,0x27,0xa, 0x3b, +0x1b,0x34,0xa, 0xce,0xbd,0xc3,0x58,0x8, 0x4c,0xee,0x68,0x4, 0x4c,0xdd,0x78,0x3, +0x4e,0xf0,0x10,0xb, 0x5a,0x30,0x7e,0x14,0x62,0xa, 0x12,0x87,0xee,0x8, 0xc, 0x7e, +0x27,0x28,0x8a,0xbe,0x24,0x3, 0x20,0x8, 0x2, 0x61,0x2a,0xb, 0xa, 0xc0,0x1e,0xc4, +0xbd,0x3c,0x8, 0xc, 0x7e,0xc7,0x28,0x8a,0xbe,0xc4,0x3, 0x20,0x58,0x2, 0x61,0x2a, +0x6c,0xaa,0x7c,0x8d,0x80,0x1c,0x7c,0x9e,0xbe,0x80,0x0, 0x48,0x11,0x7e,0xb3,0x2a, +0x6d,0xbc,0xb8,0x8, 0x9, 0x12,0x93,0x61,0x58,0x14,0xb, 0xa0,0x80,0x2, 0xb, 0xa0, +0x1b,0x80,0x1a,0x2c,0x1a,0x3d,0x9d,0x32,0x1a,0xc8,0xbd,0xc3,0x18,0xd8,0xbc,0xca, +0x18,0x5, 0x4e,0xf0,0x1, 0x61,0x2a,0x6c,0xaa,0x7c,0x8d,0x80,0x1c,0x7c,0x9e,0xbe, +0x80,0x0, 0x48,0x11,0x7e,0xb3,0x2a,0x6d,0xbc,0xb8,0x8, 0x9, 0x12,0x93,0x61,0x58, +0x14,0xb, 0xa0,0x80,0x2, 0xb, 0xa0,0xb, 0x80,0x1a,0x2c,0x1a,0x3d,0x2d,0x32,0x1a, +0xc8,0xbd,0xc3,0x48,0xd8,0xbc,0xca,0x18,0x5, 0x4e,0xf0,0x2, 0x80,0x6c,0x6c,0xaa, +0x7c,0x9e,0x80,0x1c,0x7c,0x8d,0xbe,0x90,0x0, 0x48,0x11,0x7e,0xb3,0x2a,0x6e,0xbc, +0xb9,0x8, 0x9, 0x12,0x93,0x61,0x58,0x14,0xb, 0xa0,0x80,0x2, 0xb, 0xa0,0x1b,0x90, +0x1a,0x2c,0x1a,0x3e,0x9d,0x32,0x1a,0xc9,0xbd,0xc3,0x18,0xd8,0xbc,0xca,0x18,0x5, +0x4e,0xf0,0x4, 0x80,0x35,0x6c,0xaa,0x7c,0x9e,0x80,0x1c,0x7c,0x8d,0xbe,0x90,0x0, +0x48,0x11,0x7e,0xb3,0x2a,0x6e,0xbc,0xb9,0x8, 0x9, 0x12,0x93,0x61,0x58,0x14,0xb, +0xa0,0x80,0x2, 0xb, 0xa0,0xb, 0x90,0x1a,0x2c,0x1a,0x3e,0x2d,0x32,0x1a,0xc9,0xbd, +0xc3,0x48,0xd8,0xbc,0xca,0x18,0x3, 0x4e,0xf0,0x8, 0x4c,0xff,0x68,0x2e,0x7e,0x7b, +0xb0,0xbc,0xbd,0x40,0x3, 0x7a,0x7b,0xd0,0x29,0xb7,0x0, 0x2, 0xbc,0xbd,0x38,0x4, +0x39,0xd7,0x0, 0x2, 0x29,0xb7,0x0, 0x1, 0xbc,0xbe,0x40,0x4, 0x39,0xe7,0x0, 0x1, +0x29,0xb7,0x0, 0x3, 0xbc,0xbe,0x38,0x4, 0x39,0xe7,0x0, 0x3, 0x7c,0xbf,0xda,0x3b, +0x22,0x7c,0xb8,0x7c,0x79,0x12,0x2c,0x40,0xbd,0x3d,0x22,0x7f,0x60,0x7e,0x6b,0xa0, +0xbe,0xa0,0xa, 0x50,0x1b,0x7e,0x14,0x0, 0x6, 0xca,0x19,0x74,0x6, 0xa4,0x7f,0x6, +0x2d,0x15,0xb, 0x14,0x12,0x20,0xb9,0x1b,0xfd,0x7e,0x6b,0xb0,0x4, 0x7a,0x6b,0xb0, +0x22,0x6c,0xaa,0x7e,0x63,0x2a,0x6e,0x7e,0x73,0x2a,0x6d,0xac,0x76,0x7d,0x13,0x1e, +0x14,0x7e,0x27,0x28,0x88,0x2e,0x27,0x28,0x86,0xbd,0x21,0x38,0xa, 0x1e,0x34,0x1e, +0x34,0xbe,0x37,0x28,0x86,0x50,0x29,0x90,0x60,0x51,0xe4,0x93,0x1e,0xb0,0xa, 0x2b, +0x7e,0xb3,0x26,0xf7,0xa, 0x3b,0xbd,0x32,0x8, 0x16,0x90,0x60,0x50,0xe4,0x93,0x1e, +0xb0,0xa, 0x2b,0x7e,0xb3,0x26,0xf6,0xa, 0x3b,0xbd,0x32,0x8, 0x3, 0x7e,0xa0,0x1, +0x7c,0xba,0x22,0xca,0x3b,0x6d,0x11,0x7e,0xe3,0x2a,0x2, 0x4c,0xee,0x78,0x23,0x6c, +0xff,0x80,0x1a,0x74,0x2, 0xac,0xbf,0x12,0x95,0x90,0x7e,0x70,0x9, 0xac,0x7f,0x19, +0xa3,0x34,0xca,0x74,0x2, 0xa, 0x3f,0x19,0xb3,0x35,0x34,0xb, 0xf0,0x12,0x5e,0x2d, +0x38,0xe1,0x12,0x97,0xc0,0x7e,0x24,0x0, 0x14,0xad,0x32,0x7d,0x43,0x2e,0x44,0x3, +0x20,0x6c,0xff,0xa1,0x69,0x74,0x9, 0xac,0xbf,0x9, 0xd5,0x28,0xb2,0x5e,0xd0,0xf, +0x12,0x95,0xa1,0x38,0x2, 0xa1,0x67,0xa, 0x1d,0x9, 0xb1,0x29,0xbc,0xbe,0xb0,0x1, +0x78,0x2, 0xa1,0x4d,0x75,0x24,0x0, 0xa1,0x3f,0x7e,0xa1,0x24,0x74,0x9, 0xa4,0x9, +0xc5,0x34,0xca,0xbc,0xcd,0x68,0x2, 0xa1,0x3d,0x49,0x25,0x34,0xc8,0x74,0x9, 0xac, +0xbf,0x49,0x35,0x28,0xb0,0x9d,0x32,0x12,0x21,0x0, 0x7d,0x3, 0x7e,0xa1,0x24,0x74, +0x9, 0xa4,0x49,0x25,0x34,0xc6,0x74,0x9, 0xac,0xbf,0x12,0x96,0x1b,0x2d,0x3, 0xa, +0x1c,0x9, 0xa1,0x35,0x34,0xbe,0xa0,0x0, 0x28,0x17,0x7e,0x30,0x2, 0xac,0x3c,0x59, +0x1, 0x35,0x20,0xa, 0x1c,0x2e,0x14,0x35,0x34,0x7c,0xba,0x14,0x7a,0x19,0xb0,0xa1, +0x67,0x74,0x2, 0xac,0xbc,0x49,0x15,0x35,0x20,0xbe,0x14,0x0, 0x32,0x28,0x8, 0x7d, +0x31,0x2d,0x34,0xbd,0x30,0x40,0x20,0xbe,0x14,0x0, 0x32,0x28,0x8, 0xbe,0x4, 0x0, +0x32,0x28,0x2, 0x80,0x72,0x7d,0x31,0x2e,0x34,0x0, 0x32,0xbd,0x30,0x50,0x8, 0xbe, +0x14,0x0, 0x32,0x28,0x2, 0x80,0x60,0xbe,0x4, 0x0, 0xa0,0x28,0x56,0xa, 0x1d,0x9, +0xb1,0x29,0xbc,0x70,0x4, 0x74,0x3, 0x80,0x2, 0x74,0x1, 0xa, 0x1d,0x19,0xb1,0x29, +0xbc,0x74,0x3, 0xa, 0x1c,0x19,0xb1,0x29,0xc6,0xbe,0xe0,0x0, 0x28,0x69,0x1b,0xe0, +0x7e,0x70,0x9, 0xac,0x7f,0x2e,0x34,0x28,0xae,0x7e,0x14,0x1f,0x34,0x74,0x9, 0x12, +0x1f,0x8c,0x7e,0x70,0x9, 0xac,0x7e,0x12,0x97,0xae,0xac,0x3f,0x12,0x95,0x98,0x7e, +0x34,0x1f,0x34,0x7e,0x30,0x9, 0xac,0x3e,0x12,0x95,0x98,0x1b,0xf0,0x74,0x2, 0xac, +0xbc,0x80,0x4, 0x74,0x2, 0xac,0xbc,0x59,0x5, 0x35,0x20,0x80,0x2a,0x5, 0x24,0x90, +0x60,0x99,0xe4,0x93,0xbe,0xb1,0x24,0x28,0x2, 0x81,0x49,0x80,0x1a,0x6d,0x11,0x74, +0x2, 0xac,0xbd,0x12,0x95,0x90,0x7e,0x30,0x9, 0xac,0x3d,0x19,0xa1,0x34,0xca,0x74, +0x2, 0xa, 0x1d,0x19,0xb1,0x35,0x34,0xb, 0xf0,0xbc,0xef,0x28,0x2, 0x81,0x25,0xe4, +0x7a,0xb3,0x16,0x92,0x90,0x60,0x99,0x12,0x5f,0xc6,0xca,0x59,0x7e,0x18,0x28,0xae, +0x7e,0x8, 0x34,0xc6,0x12,0x20,0xb9,0x1b,0xfd,0x7a,0xe3,0x2a,0x2, 0xda,0x3b,0x22, +0x59,0x15,0x35,0x20,0x7e,0xa0,0xff,0x22,0x2e,0x14,0x28,0xae,0x74,0x9, 0x2, 0x1f, +0x8c,0x90,0x60,0x99,0xe4,0x93,0xbc,0xbd,0x22,0xca,0x3b,0x7c,0xfb,0x6c,0xee,0x80, +0x63,0x6c,0xdd,0x80,0x16,0x74,0x9, 0xac,0xbd,0x9, 0x65,0x29,0x66,0x74,0x9, 0xac, +0xbe,0x9, 0x75,0x28,0xb2,0xbc,0x67,0x68,0x7, 0xb, 0xd0,0x12,0x95,0xa1,0x38,0xe5, +0x12,0x95,0xa1,0x28,0x43,0x74,0x9, 0xac,0xbd,0x9, 0xc5,0x29,0x66,0x12,0x81,0xb3, +0x74,0x9, 0xac,0xbd,0x12,0x87,0xe5,0x12,0x96,0x1b,0x2d,0x31,0x7a,0x35,0x24,0xa, +0x3c,0x9, 0xb3,0x29,0xbc,0xb4,0x1, 0xe, 0x6d,0x33,0x74,0x2, 0xac,0xbc,0x59,0x35, +0x34,0x8b,0x59,0x35,0x34,0xb0,0x7e,0x35,0x24,0x7c,0xbd,0x7c,0x5e,0x7c,0x4c,0x12, +0x87,0xb3,0xb, 0xe0,0xbc,0xfe,0x38,0x99,0xda,0x3b,0x22,0x49,0x35,0x28,0xae,0x9d, +0x32,0x2, 0x21,0x0, 0x7e,0xb3,0x37,0x31,0x70,0x3, 0x12,0x93,0xe3,0x2, 0x96,0x30, +0xca,0x79,0x7e,0xf3,0x2a,0x2, 0x7e,0xe3,0x2a,0x3, 0x7c,0xbf,0x7c,0x7e,0x12,0x96, +0x7c,0x7c,0xbf,0x12,0x97,0x10,0x4c,0xee,0x78,0x14,0x12,0x5f,0xc2,0xca,0x59,0x7e, +0x18,0x28,0xae,0x7e,0x8, 0x29,0x62,0x12,0x20,0xb9,0x1b,0xfd,0x80,0xb, 0x7e,0xb3, +0x2a,0x9, 0x70,0x5, 0x7c,0xbf,0x12,0x95,0xa9,0x7c,0xbf,0x12,0x9f,0x90,0xbe,0xf0, +0x0, 0x28,0x6, 0x74,0x1, 0x7a,0xb3,0x2a,0xb, 0xda,0x79,0x22,0x7c,0x67,0x7c,0x7b, +0xa5,0xbf,0x0, 0x17,0xbe,0x60,0x0, 0x28,0xf, 0x74,0x1, 0x7a,0xb3,0x2a,0x7, 0xe4, +0x7a,0xb3,0x2a,0x9, 0x7a,0xb3,0x2a,0xa, 0x2, 0x96,0xeb,0xa5,0xbe,0x0, 0x1d,0x6c, +0xaa,0x80,0xe, 0x7e,0x60,0xff,0x7e,0x50,0x9, 0xac,0x5a,0x19,0x62,0x29,0x66,0xb, +0xa0,0x12,0x5e,0x25,0x38,0xed,0x74,0x1, 0x7a,0xb3,0x2a,0x6, 0x6c,0xaa,0x80,0x26, +0x7e,0x30,0x9, 0xac,0x3a,0x2e,0x14,0x28,0xae,0xb, 0x18,0x20,0x12,0x47,0x81,0x1b, +0x18,0x20,0x7e,0x30,0x9, 0xac,0x3a,0x2e,0x14,0x28,0xb0,0xb, 0x18,0x20,0x12,0x47, +0x81,0x1b,0x18,0x20,0xb, 0xa0,0xbc,0x7a,0x38,0xd6,0x22,0x12,0x97,0x4, 0x7e,0x8, +0x34,0xb0,0xe4,0x12,0x20,0xde,0x90,0x60,0x99,0x12,0x97,0x8, 0x7e,0x8, 0x34,0x8b, +0xe4,0x2, 0x20,0xde,0x90,0x60,0x99,0xe4,0x93,0x7c,0x7b,0x74,0x2, 0xac,0x7b,0x22, +0xca,0xd8,0xca,0x79,0x7c,0xdb,0x90,0x60,0x99,0xe4,0x93,0x7c,0xfb,0x6c,0x11,0x80, +0x21,0x7e,0x0, 0xff,0x74,0x9, 0xac,0xb1,0x19,0x5, 0x1f,0x38,0x7e,0x34,0x7f,0xff, +0x74,0x9, 0xac,0xb1,0x59,0x35,0x1f,0x34,0x74,0x9, 0xac,0xb1,0x59,0x35,0x1f,0x36, +0xb, 0x10,0xbc,0xf1,0x38,0xdb,0xe4,0x6c,0x77,0x7c,0x6d,0x12,0x97,0xb6,0x7c,0x7d, +0x7c,0x6f,0x12,0x97,0xb6,0x6c,0x0, 0x80,0x39,0x6c,0xee,0x80,0x16,0x74,0x9, 0xac, +0xbe,0x9, 0x65,0x1f,0x38,0x74,0x9, 0xac,0xb0,0x9, 0x75,0x28,0xb2,0xbc,0x76,0x68, +0x6, 0xb, 0xe0,0xbc,0x1e,0x38,0xe6,0xbc,0x1e,0x78,0x15,0x7e,0x70,0x9, 0xac,0x70, +0x12,0x97,0xae,0xac,0x31,0x2e,0x14,0x1f,0x34,0x74,0x9, 0x12,0x1f,0x8c,0xb, 0x10, +0xb, 0x0, 0xbc,0xf0,0x38,0xc3,0x74,0x9, 0xac,0xbf,0xca,0x59,0x7e,0x18,0x1f,0x34, +0x7e,0x8, 0x29,0x62,0x12,0x20,0xb9,0x1b,0xfd,0xda,0x79,0xda,0xd8,0x22,0x2e,0x34, +0x28,0xae,0x7e,0x30,0x9, 0x22,0x7e,0x8, 0x1f,0x34,0x12,0x9e,0x37,0x7c,0x1b,0x22, +0x7e,0x73,0x2a,0x3, 0xbe,0x73,0x2a,0x2, 0x78,0x17,0x7e,0x73,0x2a,0x2, 0xbe,0x70, +0x1, 0x40,0xe, 0x7e,0x37,0x34,0x9f,0xbe,0x34,0x0, 0x14,0x38,0xe, 0xb, 0x34,0x80, +0x6, 0x7e,0x37,0x34,0x9f,0x1e,0x34,0x7a,0x37,0x34,0x9f,0x7e,0xb3,0x2a,0x2, 0x70, +0x6, 0x6d,0x33,0x7a,0x37,0x34,0x9f,0x7e,0x37,0x34,0x9f,0x22,0xca,0xf8,0x7c,0xfb, +0x6d,0xdd,0x7c,0xbf,0x12,0x98,0xea,0x7d,0xe3,0x7c,0xbf,0x12,0x37,0x6f,0x7d,0xf3, +0x74,0x2, 0xac,0xbf,0x9, 0x95,0x26,0xfb,0x7c,0xbf,0x12,0x9a,0xed,0x40,0x2, 0x1, +0xd4,0x74,0x2, 0xac,0xbf,0x9, 0xa5,0x26,0xfa,0xbe,0xa0,0x0, 0x28,0x9, 0xa, 0x3a, +0x1b,0x34,0x12,0x98,0xd8,0x7d,0xd3,0x12,0x98,0xdf,0xbd,0xc3,0x58,0xb, 0xa, 0xca, +0xb, 0xc4,0x7d,0x3c,0x12,0x98,0xd8,0x2d,0xd3,0x12,0x9b,0xf, 0x7d,0xd3,0xbe,0xa0, +0x0, 0x28,0x56,0x12,0x98,0xdf,0xbd,0xc3,0x58,0x4f,0xbe,0x90,0x0, 0x28,0x4a,0xbe, +0x90,0x0, 0x28,0x45,0xbe,0xf4,0x0, 0xc8,0x8, 0x3f,0x7d,0x3d,0x3e,0x34,0x3e,0x34, +0xbd,0x3f,0x8, 0x35,0x7e,0x70,0x2, 0xac,0x79,0x49,0x33,0x4, 0xfc,0xbe,0x34,0x1, +0x2c,0x8, 0x26,0xa, 0x2a,0x7e,0xb3,0x2a,0x74,0x12,0x9b,0x18,0xbe,0x34,0x1, 0x90, +0x8, 0x17,0xbe,0xf4,0x1, 0x5e,0x58,0xd, 0x7e,0x34,0x0, 0x3, 0xad,0x3e,0xbd,0x3f, +0x8, 0x3, 0xe4,0x80,0x30,0x74,0x1, 0x80,0x2c,0x90,0x60,0xab,0xe4,0x93,0xbc,0xb9, +0x78,0x22,0x7c,0xba,0x7c,0x79,0x12,0x2c,0x40,0xbe,0x34,0x0, 0x96,0x8, 0x12,0x74, +0x2, 0xac,0xb9,0x49,0x35,0x4, 0xfc,0xbe,0x34,0x0, 0x32,0x8, 0x4, 0x74,0x1, 0x80, +0x4, 0xe4,0x80,0x1, 0xe4,0xda,0xf8,0x22,0x7c,0xb7,0x7c,0x79,0x2, 0x2c,0x40,0x7e, +0xb3,0x2a,0x6f,0xa, 0x3b,0x1b,0x34,0xa, 0xca,0x22,0xca,0x79,0x7c,0x8b,0x6c,0xaa, +0x9f,0x77,0x12,0x9a,0x2a,0x1a,0x79,0x1b,0x74,0x80,0x4c,0x1a,0x38,0x1b,0x34,0x7c, +0xe7,0x80,0x38,0xbc,0x9f,0x78,0x4, 0xbc,0x8e,0x68,0x2e,0xbe,0xf0,0x0, 0x48,0x29, +0x7e,0xb3,0x2a,0x6f,0xa, 0x2b,0x1a,0x3f,0xbd,0x32,0x58,0x1d,0xbe,0xe0,0x0, 0x48, +0x18,0x7e,0xb3,0x2a,0x70,0xa, 0x2b,0x1a,0x3e,0xbd,0x32,0x58,0xc, 0x7c,0xbf,0x7c, +0x7e,0x12,0x2c,0x40,0x12,0x99,0x65,0xb, 0xa0,0xb, 0xe0,0x1a,0x28,0xb, 0x24,0x1a, +0x3e,0xbd,0x32,0x8, 0xbe,0xb, 0xf0,0x1a,0x29,0xb, 0x24,0x1a,0x3f,0xbd,0x32,0x8, +0xaa,0x4c,0xaa,0x78,0x4, 0x6d,0x33,0x80,0x9, 0xa, 0x1a,0x6d,0x0, 0x7f,0x17,0x12, +0x1f,0x58,0xda,0x79,0x22,0x1a,0x26,0x1a,0x24,0x2f,0x71,0x22,0xca,0x79,0x7c,0xa7, +0x7c,0x8b,0x7e,0xb3,0x2a,0x6f,0x7a,0xb3,0x1f,0x34,0x7e,0xb3,0x2a,0x70,0x7a,0xb3, +0x1f,0x35,0x12,0x9a,0x2a,0x9f,0x77,0x1a,0x3a,0x1a,0x79,0x9d,0x73,0x41,0x17,0x7a, +0xf1,0x2d,0xbe,0xf0,0x0, 0x58,0xe, 0x1a,0x3f,0x1a,0x29,0x9d,0x23,0x1a,0x39,0x2d, +0x32,0x7c,0xb7,0xf5,0x2d,0x7e,0xb3,0x1f,0x34,0xbc,0xbf,0x18,0xe, 0x1a,0x39,0x1a, +0x2f,0x9d,0x23,0x1a,0x39,0x9d,0x32,0x7c,0xb7,0xf5,0x2d,0x1a,0x2a,0x1a,0x38,0x9d, +0x32,0x7c,0xb7,0xf5,0x2c,0x80,0x40,0x85,0x2c,0x2e,0xe5,0x2c,0xbe,0xb0,0x0, 0x58, +0x10,0xe5,0x2c,0x1a,0x3b,0x1a,0x28,0x9d,0x23,0x1a,0x38,0x2d,0x32,0x7c,0xb7,0xf5, +0x2e,0x7e,0xb3,0x1f,0x35,0xbe,0xb1,0x2c,0x18,0x10,0x1a,0x38,0xe5,0x2c,0x1a,0x2b, +0x9d,0x23,0x1a,0x38,0x9d,0x32,0x7c,0xb7,0xf5,0x2e,0xe5,0x2d,0x7e,0x71,0x2e,0x12, +0x2c,0x40,0x12,0x99,0x65,0x5, 0x2c,0x1a,0x3a,0x1a,0x28,0x2d,0x23,0xe5,0x2c,0x1a, +0x3b,0xbd,0x32,0x8, 0xb2,0xb, 0xf0,0x1a,0x3a,0x1a,0x29,0x2d,0x23,0x1a,0x3f,0xbd, +0x32,0x18,0x2, 0x21,0x8f,0x7f,0x17,0xda,0x79,0x22,0x7e,0x70,0x2, 0xac,0x78,0x9, +0x93,0x26,0xfa,0x9, 0x83,0x26,0xfb,0x22,0xca,0xd8,0xca,0x79,0x7e,0x34,0x62,0x27, +0x12,0x9a,0xe5,0x12,0x9b,0x23,0x50,0x2, 0x41,0xe0,0x7e,0x34,0x62,0x2b,0x12,0x23, +0x9e,0x7a,0x35,0x2a,0x90,0x62,0x26,0xe4,0x93,0x70,0x2, 0x41,0xe0,0x7e,0xb3,0x28, +0xa8,0xb4,0x1, 0x7, 0x7e,0x34,0x62,0x29,0x12,0x9a,0xe5,0x7e,0x37,0x28,0x8a,0xbe, +0x34,0x4, 0x4c,0x8, 0x6b,0x6c,0xdd,0x80,0x5f,0xc2,0x3, 0x7c,0xbd,0x12,0x37,0x6f, +0x7a,0x35,0x26,0x7c,0xbd,0x7e,0x70,0x1, 0x12,0x99,0x6c,0x7a,0x35,0x24,0x9e,0x35, +0x26,0x7a,0x35,0x24,0x7e,0x35,0x26,0x3e,0x34,0x3e,0x34,0x12,0x8f,0xdc,0x7a,0x35, +0x28,0xbe,0x75,0x28,0x58,0x3, 0x7a,0x75,0x28,0x7e,0x35,0x28,0xbe,0x35,0x24,0x8, +0xa, 0x7e,0x35,0x2a,0xbe,0x35,0x26,0x8, 0x2, 0xd2,0x3, 0x7c,0xbd,0x12,0x9a,0xed, +0x50,0x2, 0xc2,0x3, 0x30,0x3, 0xf, 0x7c,0xbd,0x6c,0x77,0x12,0x51,0x5f,0x7e,0x70, +0x2, 0xac,0x7d,0x12,0x37,0x9f,0xb, 0xd0,0x7e,0x73,0x28,0x84,0xbc,0x7d,0x38,0x99, +0xda,0x79,0xda,0xd8,0x22,0x7e,0x24,0x0, 0xff,0xb, 0x1a,0x70,0x22,0x7c,0x4b,0x74, +0x2, 0xac,0xb4,0x9, 0x55,0x26,0xfa,0x9, 0x65,0x26,0xfb,0x7e,0x73,0x28,0x8c,0xbc, +0x75,0x78,0xa, 0x7e,0x73,0x28,0x8d,0xbc,0x76,0x78,0x2, 0xd3,0x22,0xc3,0x22,0x7e, +0x24,0x0, 0x2, 0x7d,0x3d,0x2, 0x1e,0xb9,0xa, 0x3b,0x2d,0x32,0x3e,0x34,0x49,0x33, +0x4, 0xfc,0x22,0x6c,0x99,0x6c,0x88,0x80,0xf, 0x7c,0xb8,0x12,0x37,0x6f,0xbe,0x34, +0x1, 0xf4,0x8, 0x2, 0xb, 0x90,0xb, 0x80,0x7e,0x73,0x28,0x84,0xbc,0x78,0x38,0xe9, +0xbe,0x90,0x1, 0x38,0x2, 0xc3,0x22,0xd3,0x22,0xca,0x3b,0x7e,0x77,0x2a,0x5c,0x12, +0x9d,0xa1,0x7d,0x63,0x3e,0x34,0x3e,0x34,0x7e,0xe4,0x0, 0xa, 0x12,0x9b,0xd7,0x7e, +0xb3,0x28,0xa8,0x60,0xf, 0x7e,0x37,0x35,0xe5,0xbd,0x36,0x48,0x7, 0x3e,0x34,0x3e, +0x34,0x12,0x9b,0xd7,0xbe,0x64,0x4, 0x4c,0x8, 0xf, 0x12,0x9b,0x23,0x50,0x6, 0x7e, +0xb3,0x28,0xa8,0x60,0x4, 0x74,0xa, 0x80,0x13,0x7e,0xb3,0x28,0xa8,0x60,0xc, 0x7e, +0xb3,0x35,0xe3,0xbe,0xb0,0x0, 0x28,0x8, 0x14,0x80,0x1, 0xe4,0x7a,0xb3,0x35,0xe3, +0x7e,0xe7,0x2a,0x5c,0x7d,0x3e,0x12,0x45,0xe, 0x7e,0x53,0x35,0xe3,0xbe,0x50,0x0, +0x28,0x12,0xbd,0x3f,0x58,0x4, 0x7d,0xf3,0x80,0x6, 0xbd,0xef,0x8, 0x2, 0x7d,0xfe, +0x7a,0xf7,0x2a,0x5c,0x12,0x9b,0xdf,0x28,0x3, 0x12,0x37,0xc2,0x7a,0x67,0x35,0xe5, +0x7a,0x77,0x2a,0x5c,0xda,0x3b,0x22,0x7d,0x2e,0x12,0x1e,0xb9,0x7d,0xf3,0x22,0x7e, +0x73,0x28,0x84,0xbe,0x70,0x1, 0x22,0xca,0x79,0xc2,0x3, 0x7e,0xf0,0x3, 0x7e,0xe3, +0x2a,0x3, 0x12,0x9b,0xdf,0x28,0x72,0x7c,0xbf,0x12,0x2c,0x47,0x4c,0xee,0x68,0xe, +0x7e,0x63,0x33,0xc0,0xa5,0xbe,0x0, 0xa, 0x7e,0xb3,0x33,0xc1,0x70,0x4, 0xd2,0x3, +0x80,0x2e,0xbe,0xe0,0x1, 0x28,0xb, 0xe5,0x4d,0xbe,0xb0,0x8, 0x28,0x4, 0xd2,0x3, +0x80,0x1e,0xd2,0x3, 0x12,0x9c,0xf6,0x78,0xa, 0xa5,0xbe,0x0, 0x6, 0x6c,0xff,0xc2, +0x3, 0x80,0xd, 0x9e,0x73,0x33,0xc0,0xbc,0x7e,0x78,0x5, 0x7e,0xf0,0x2, 0xc2,0x3, +0x20,0x3, 0x5, 0x7c,0xbf,0x12,0x2c,0x47,0x7e,0xa3,0x33,0xc2,0x7a,0xa3,0x28,0x84, +0x74,0x2, 0xa4,0xca,0x59,0x7e,0x18,0x33,0xc3,0x7e,0x8, 0x26,0xfa,0x12,0x20,0xb9, +0x1b,0xfd,0x12,0x9c,0x6f,0xf5,0x4d,0x80,0x3, 0x75,0x4d,0x64,0xda,0x79,0x22,0x7e, +0x30,0x64,0x7e,0x20,0x64,0x6c,0x11,0x80,0x54,0xa, 0x31,0xb, 0x34,0x7c,0x7, 0x80, +0x42,0x7e,0x70,0x2, 0xac,0x70,0x9, 0xb3,0x26,0xfa,0x12,0x9c,0xee,0x9, 0xb3,0x26, +0xfa,0x12,0x2f,0xd6,0x7c,0x97,0x7e,0x70,0x2, 0xac,0x70,0x9, 0xb3,0x26,0xfb,0x12, +0x9c,0xee,0x9, 0xb3,0x26,0xfb,0x12,0x2f,0xd6,0x7c,0x87,0xbe,0x90,0x0, 0x28,0x6, +0xbc,0x39,0x28,0x2, 0x7c,0x39,0xbe,0x80,0x0, 0x28,0x6, 0xbc,0x28,0x28,0x2, 0x7c, +0x28,0xb, 0x0, 0x7e,0xb3,0x28,0x84,0xbc,0xb0,0x38,0xb6,0xb, 0x10,0x7e,0xb3,0x28, +0x84,0xbc,0xb1,0x38,0xa4,0xa5,0xbb,0x64,0x2, 0x6c,0x33,0xa5,0xba,0x64,0x2, 0x6c, +0x22,0xbc,0x23,0x28,0x4, 0x7c,0xa2,0x80,0x2, 0x7c,0xa3,0x7c,0xba,0x22,0xa, 0x2b, +0x7e,0x70,0x2, 0xac,0x71,0x22,0x7e,0x73,0x28,0x84,0xbc,0x7e,0x22,0xca,0x79,0x6c, +0x88,0x80,0x72,0x74,0x2, 0xac,0xb8,0x9, 0xf5,0x26,0xfa,0x9, 0x75,0x26,0xfb,0x7a, +0x71,0x24,0x7c,0xbf,0x12,0x9d,0x8b,0x50,0x5a,0x6c,0xee,0x80,0x51,0xbc,0xe8,0x68, +0x4b,0x7e,0x70,0x2, 0xac,0x7e,0x12,0x9d,0x80,0xf5,0x26,0x6c,0x99,0x90,0x60,0xaa, +0xe4,0x93,0x70,0x18,0x7e,0xb3,0x2a,0x70,0x14,0xbe,0xb1,0x26,0x78,0xe, 0xa, 0x2f, +0xe5,0x25,0xa, 0x3b,0x12,0x35,0x67,0x18,0x3, 0x7e,0x90,0x1, 0xbe,0x90,0x1, 0x78, +0x1b,0x7c,0xbe,0x12,0x37,0x6f,0x7d,0xf3,0x7c,0xb8,0x12,0x37,0x6f,0xbd,0x3f,0x8, +0x4, 0x7c,0xbe,0x80,0x2, 0x7c,0xb8,0x6c,0x77,0x12,0x51,0x5f,0xb, 0xe0,0x12,0x9c, +0xf6,0x38,0xaa,0xb, 0x80,0x7e,0x73,0x28,0x84,0xbc,0x78,0x38,0x86,0xda,0x79,0x22, +0x9, 0xb3,0x26,0xfa,0xf5,0x25,0x9, 0xb3,0x26,0xfb,0x22,0x7c,0xab,0x90,0x60,0xab, +0xe4,0x93,0xbc,0xb7,0x78,0x9, 0x7c,0xba,0x12,0x31,0x5a,0x50,0x2, 0xd3,0x22,0xc3, +0x22,0xca,0x3b,0x6d,0x44,0x7e,0xf3,0x28,0x84,0x6c,0xee,0x80,0x24,0x7c,0xbe,0x12, +0x2f,0xb7,0x60,0x1b,0x74,0x2, 0xac,0xbe,0x9, 0xd5,0x26,0xfa,0x9, 0xc5,0x26,0xfb, +0x7c,0xbd,0x7c,0x7c,0x12,0x2c,0x40,0x7d,0xf3,0xbd,0x4f,0x58,0x2, 0x7d,0x4f,0xb, +0xe0,0xbc,0xfe,0x38,0xd8,0x7d,0x34,0xda,0x3b,0x22,0x7e,0xb3,0x2a,0x2, 0x70,0x2d, +0x7e,0x73,0x2a,0x3, 0xbe,0x70,0x0, 0x28,0x24,0x7e,0xb3,0x34,0xc5,0x70,0x18,0x12, +0x9e,0x17,0x7e,0x73,0x2a,0x3, 0x7a,0x73,0x2a,0x2, 0x74,0x1, 0x7a,0xb3,0x2a,0x9, +0x7e,0xb3,0x34,0xc5,0x4, 0x80,0x1, 0xe4,0x7a,0xb3,0x34,0xc5,0x22,0xe4,0x7a,0xb3, +0x34,0xc5,0x7a,0xb3,0x2a,0x9, 0x22,0x7e,0x34,0x0, 0x3c,0xca,0x39,0x7e,0x18,0x35, +0xe9,0x7e,0x8, 0x36,0x25,0x12,0x20,0xb9,0x1b,0xfd,0x7e,0x73,0x28,0x94,0x7a,0x73, +0x35,0xe8,0x7a,0x73,0x28,0x93,0x22,0xca,0x3b,0x7c,0x46,0x7c,0xab,0x6c,0x66,0xc1, +0xd2,0x7c,0x57,0xc1,0xca,0x7e,0xf0,0x9, 0xac,0xf6,0x9, 0x87,0x29,0x66,0x7c,0x98, +0x7e,0xd0,0x9, 0xac,0xd5,0x9, 0xb6,0x28,0xb2,0xbc,0xb9,0x78,0x6b,0xbe,0x90,0xff, +0x68,0x66,0x12,0x9e,0xe2,0x39,0x87,0x0, 0x4, 0xa, 0xf9,0x9, 0xbf,0x29,0xbc,0x7e, +0xf0,0x9, 0x70,0xc, 0xac,0xf5,0x7d,0x97,0x2e,0x94,0x28,0xae,0x6d,0x88,0x80,0xa, +0xac,0xf6,0x7d,0x97,0x2e,0x94,0x29,0x62,0x6d,0x88,0xb, 0x4a,0xd0,0x12,0x9e,0xe2, +0x1b,0x7a,0xd0,0x69,0xf4,0x0, 0x2, 0x7e,0xf0,0x9, 0xac,0xfa,0x7f,0x60,0x2d,0xd7, +0x79,0xf6,0x0, 0x2, 0x7e,0xf0,0x9, 0xac,0xf5,0x9, 0x87,0x28,0xb3,0x12,0x9e,0xe2, +0x39,0x87,0x0, 0x5, 0x7e,0xf0,0x9, 0xac,0xf5,0x9, 0x87,0x28,0xb4,0x12,0x9e,0xe2, +0x39,0x87,0x0, 0x6, 0xb, 0xa0,0x80,0x8, 0xb, 0x50,0xbc,0x45,0x28,0x2, 0xc1,0x45, +0xb, 0x60,0x90,0x60,0x99,0xe4,0x93,0xbc,0xb6,0x28,0x2, 0xc1,0x41,0x7c,0xba,0xda, +0x3b,0x22,0x7e,0xf0,0x9, 0xac,0xfa,0x7f,0x70,0x2d,0xf7,0x22,0x7c,0xab,0x7e,0xb, +0xb0,0x60,0x3, 0xb4,0x2, 0x31,0xa, 0x4a,0x9, 0x74,0x34,0xa3,0xbe,0x73,0x34,0xad, +0x50,0xe, 0x7d,0x24,0x2e,0x24,0x34,0xa3,0x7c,0xb7,0x4, 0x7a,0x29,0xb0,0xd3,0x22, +0xbe,0x73,0x34,0xad,0x40,0x9, 0xbe,0x70,0xff,0x68,0x4, 0xe4,0x7a,0xb, 0xb0,0x74, +0xff,0x19,0xb4,0x34,0xa3,0x80,0x17,0xa, 0x3a,0x9, 0xb3,0x34,0xa3,0xbe,0xb0,0xff, +0x68,0x7, 0xe4,0x19,0xb3,0x34,0xa3,0xd3,0x22,0xe4,0x19,0xb3,0x34,0xa3,0xc3,0x22, +0xca,0xf8,0x7c,0xfb,0x7d,0xf3,0x7e,0x17,0x2a,0x62,0xbd,0x13,0x38,0x6, 0x7e,0x34, +0x1, 0x0, 0x80,0x15,0x6d,0x22,0x7c,0x56,0x7c,0x67,0x6c,0x77,0x12,0x1f,0x5, 0xbe, +0x34,0x0, 0x10,0x50,0x4, 0x7e,0x34,0x0, 0x10,0x74,0x2, 0xac,0xbf,0x49,0x25,0x34, +0xb0,0xbd,0x2f,0x28,0x6, 0x49,0x35,0x34,0x8b,0x80,0x4, 0x59,0x35,0x34,0x8b,0x59, +0xf5,0x34,0xb0,0xbe,0x34,0x1, 0x0, 0x28,0x4, 0x7e,0x34,0x1, 0x0, 0xda,0xf8,0x22, +0x6c,0xaa,0x80,0x49,0x7e,0x50,0x9, 0xac,0x5a,0x49,0x32,0x29,0x62,0x12,0x25,0x3c, +0x59,0x32,0x28,0xae,0x7e,0x50,0x9, 0xac,0x5a,0x49,0x32,0x29,0x64,0x12,0x25,0x3c, +0x59,0x32,0x28,0xb0,0x7e,0x90,0x9, 0xac,0x9a,0x9, 0xb4,0x29,0x66,0x19,0xb4,0x28, +0xb2,0x7e,0x90,0x9, 0xac,0x9a,0x9, 0xb4,0x29,0x67,0x19,0xb4,0x28,0xb3,0x7e,0x90, +0x9, 0xac,0x9a,0x9, 0xb4,0x29,0x68,0x19,0xb4,0x28,0xb4,0xb, 0xa0,0x12,0x5e,0x25, +0x38,0xb2,0x22,0x7e,0x8, 0x34,0xa2,0x7e,0x34,0x0, 0xd, 0xe4,0x2, 0x20,0xde,0x6c, +0x0, 0x6c,0x11,0x80,0x13,0x7c,0xb1,0x12,0x2f,0xb7,0x60,0xa, 0x12,0xa0,0x84,0x40, +0x5, 0x7e,0x0, 0x1, 0x80,0xa, 0xb, 0x10,0x7e,0x73,0x28,0x84,0xbc,0x71,0x38,0xe5, +0x7c,0xb0,0x6c,0x77,0x12,0xa0,0x49,0xbe,0x0, 0x1, 0x68,0xb, 0x7c,0xb0,0x7e,0x70, +0x1, 0x12,0xa0,0x49,0xb4,0x1, 0x21,0x6c,0x11,0x80,0x15,0x7c,0xb1,0x12,0x2f,0xb7, +0x60,0xc, 0x12,0xa0,0x84,0x50,0x7, 0x7c,0xb1,0x6c,0x77,0x12,0x51,0x5f,0xb, 0x10, +0x7e,0x3, 0x28,0x84,0xbc,0x1, 0x38,0xe3,0x22,0x7c,0xab,0xa5,0xbf,0x0, 0xc, 0x7e, +0xb3,0x36,0x61,0x7a,0xb3,0x36,0x62,0x7a,0xa3,0x36,0x61,0x7e,0xb3,0x36,0x62,0x60, +0x4, 0x74,0x8, 0x80,0xd, 0x7e,0xb3,0x28,0x84,0x70,0xb, 0x7e,0xb3,0x36,0x63,0x60, +0x5, 0x14,0x7a,0xb3,0x36,0x63,0x7e,0x73,0x36,0x63,0xbe,0x70,0x0, 0x28,0x3, 0x74, +0x1, 0x22,0xe4,0x22,0x74,0x2, 0xac,0xb1,0x9, 0x25,0x26,0xfa,0x9, 0x35,0x26,0xfb, +0x7c,0xb2,0x7c,0x73,0x7c,0xa7,0x7c,0x7b,0x90,0x60,0xaa,0xe4,0x93,0x60,0x2, 0x7c, +0xa7,0x90,0x60,0xab,0xe4,0x93,0xbc,0xba,0x78,0x2, 0xd3,0x22,0xc3,0x22,0xca,0xf8, +0x7e,0xd4,0x0, 0x9, 0x7e,0xb3,0x28,0x84,0x70,0x8, 0xf5,0x1e,0xc2,0x8, 0xc2,0x9, +0x80,0x71,0xbe,0xb0,0x2, 0x38,0x66,0xb4,0x2, 0x28,0x7e,0x73,0x26,0xfc,0xa, 0x27, +0x7e,0x73,0x26,0xfa,0x12,0xa1,0x4b,0xbe,0x34,0x0, 0x5, 0x58,0x15,0x7e,0x73,0x26, +0xfd,0xa, 0x27,0x7e,0x73,0x26,0xfb,0x12,0xa1,0x4b,0xbe,0x34,0x0, 0x5, 0x58,0x2, +0x80,0x4e,0x6c,0xff,0x80,0x30,0x7c,0xbf,0x12,0x37,0x81,0x1a,0x4b,0x7c,0xbf,0x12, +0x37,0x6f,0x7d,0x5d,0x3e,0x54,0xbd,0x54,0x58,0x4, 0xd2,0x9, 0x80,0xa, 0x7d,0x5d, +0xe, 0x54,0xbd,0x54,0x48,0x2, 0xc2,0x9, 0x20,0x9, 0x4, 0xbd,0xd4,0x58,0x5, 0x75, +0x1e,0x28,0x80,0xf, 0xb, 0xf0,0x12,0x52,0x66,0x38,0xcb,0x80,0x6, 0xe5,0x1e,0x24, +0xfb,0xf5,0x1e,0xe5,0x1e,0xbe,0xb0,0x0, 0x8, 0x6, 0xd2,0x8, 0x15,0x1e,0x80,0x5, +0x75,0x1e,0x0, 0xc2,0x8, 0xda,0xf8,0x22,0x7e,0x39,0x70,0xa, 0x37,0x9d,0x32,0x2, +0x21,0x0, 0xca,0x3b,0xf5,0x2a,0x7f,0x31,0x7a,0xd, 0x26,0xe4,0x7a,0xb3,0x22,0xf6, +0x7a,0xb3,0x22,0xf7,0x7a,0xb3,0x22,0xf8,0x7e,0x34,0x3, 0xe8,0x7a,0x37,0x22,0xfd, +0x74,0x3c,0x7a,0xb3,0x22,0xf5,0x75,0x2f,0x46,0x75,0x2b,0x0, 0x61,0x43,0x12,0xa4, +0xde,0x28,0x1e,0x7e,0x34,0x0, 0x44,0xca,0x39,0x7e,0x71,0x2b,0x74,0x44,0xac,0x7b, +0x2e,0x34,0x14,0x6, 0x7e,0x24,0x0, 0xff,0x7e,0x8, 0x22,0xff,0x12,0x20,0xb9,0x1b, +0xfd,0x6d,0x33,0x7a,0x37,0x22,0xf9,0x7a,0x35,0x30,0x7a,0x37,0x22,0xfb,0x7a,0x35, +0x32,0x7a,0x35,0x34,0x7e,0x34,0x22,0xff,0x7a,0x35,0x36,0x7e,0x34,0x23,0x1f,0x7a, +0x35,0x38,0x75,0x2c,0x0, 0x80,0x59,0xe5,0x2c,0xa, 0x3b,0x7e,0xd, 0x26,0x12,0xa4, +0xe6,0x2e,0x35,0x36,0x12,0xa1,0x48,0x7d,0xd3,0x7e,0xc7,0x22,0xfb,0xbd,0xcd,0x58, +0x4, 0x7a,0xd7,0x22,0xfb,0xe5,0x2c,0xa, 0x3b,0x7f,0x3, 0x12,0xa4,0xe6,0x2e,0x35, +0x38,0x12,0xa1,0x48,0x7d,0xc3,0x7e,0x35,0x32,0xbd,0x3c,0x58,0x3, 0x7a,0xc5,0x32, +0x7e,0x37,0x22,0xf9,0x2d,0x3d,0x7a,0x37,0x22,0xf9,0x7d,0x3c,0x2e,0x35,0x30,0x7a, +0x35,0x30,0x2d,0xcd,0x7e,0x35,0x34,0xbd,0x3c,0x58,0x3, 0x7a,0xc5,0x34,0x5, 0x2c, +0xe5,0x2a,0xbe,0xb1,0x2c,0x38,0xa0,0xe5,0x2a,0xb4,0xa, 0x2a,0x7e,0x37,0x22,0xfb, +0xbe,0x34,0x0, 0x40,0x48,0xb, 0x7e,0x25,0x32,0xbe,0x24,0x0, 0x40,0x48,0x2, 0x61, +0x41,0xbe,0x34,0x0, 0x60,0x8, 0x2, 0x61,0x41,0x7e,0x35,0x32,0xbe,0x34,0x0, 0x60, +0x8, 0x2, 0x61,0x41,0x80,0x28,0x7e,0x37,0x22,0xfb,0xbe,0x34,0x0, 0x20,0x8, 0xb, +0x7e,0x25,0x32,0xbe,0x24,0x0, 0x20,0x8, 0x2, 0x61,0x41,0xbe,0x34,0x0, 0x30,0x8, +0x2, 0x61,0x41,0x7e,0x35,0x32,0xbe,0x34,0x0, 0x30,0x8, 0x2, 0x61,0x41,0x7e,0xa3, +0x38,0x41,0x74,0xc, 0xa4,0xbe,0x57,0x22,0xf9,0x58,0x2, 0x61,0x41,0x7e,0xa3,0x38, +0x42,0x74,0xc, 0xa4,0xbe,0x55,0x30,0x58,0x2, 0x61,0x41,0x7e,0x15,0x36,0x6d,0x0, +0x7e,0x1d,0x26,0xe5,0x2a,0x12,0xa3,0x7e,0x7a,0xb3,0x22,0xf4,0x7e,0x15,0x38,0x6d, +0x0, 0x7f,0x13,0xe5,0x2a,0x12,0xa3,0x7e,0xf5,0x2d,0x7e,0x73,0x22,0xf5,0xbe,0x73, +0x22,0xf4,0x38,0x7d,0xbe,0x71,0x2d,0x38,0x78,0xe5,0x2d,0x7e,0x31,0x2d,0xac,0x3b, +0x1a,0x2, 0x1a,0x0, 0x7e,0x73,0x22,0xf4,0xac,0x77,0x1a,0x26,0x1a,0x24,0x2f,0x10, +0xe5,0x2d,0xa, 0x5b,0x6d,0x44,0x7e,0x33,0x22,0xf4,0xa, 0x13,0x6d,0x0, 0x2f,0x2, +0x12,0x1f,0x7, 0x7c,0xb7,0xf5,0x2e,0xe5,0x2f,0xbe,0xb1,0x2e,0x38,0x43,0x7e,0x37, +0x22,0xfb,0x2e,0x35,0x32,0x2e,0x35,0x34,0x7a,0x35,0x3a,0xe5,0x2e,0xa, 0x2b,0x7e, +0x34,0x0, 0x64,0x9d,0x32,0x3e,0x34,0x2e,0x35,0x3a,0x7a,0x35,0x3a,0x7e,0x37,0x22, +0xfd,0xbe,0x35,0x3a,0x8, 0x1b,0x7e,0x35,0x3a,0x7a,0x37,0x22,0xfd,0xe5,0x2e,0x7a, +0xb3,0x22,0xf7,0x7e,0x73,0x23,0x41,0x7a,0x73,0x22,0xf8,0xe5,0x2b,0x7a,0xb3,0x22, +0xf6,0x5, 0x2b,0x12,0xa4,0xde,0x28,0x2, 0x21,0x7e,0x7e,0xa3,0x22,0xf7,0xbe,0xa1, +0x2f,0x40,0x20,0x7e,0xb3,0x22,0xf8,0xbe,0xb0,0x0, 0x28,0x17,0xbe,0xb0,0xff,0x50, +0x12,0x7e,0x73,0x22,0xf6,0xa, 0x37,0xb, 0x34,0x7a,0x73,0x38,0x3e,0x7a,0xb3,0x38, +0x40,0x80,0x6, 0x74,0x7c,0x7a,0xb3,0x38,0x3e,0x7c,0xba,0xda,0x3b,0x22,0xca,0x3b, +0x7c,0xfb,0x7f,0x61,0x7f,0x40,0x9f,0x11,0x7f,0x51,0x7f,0x71,0x7a,0x1d,0x3c,0x7a, +0x1d,0x40,0x7a,0x1d,0x44,0xbe,0xf0,0xa, 0x78,0x6, 0x7e,0x54,0x1, 0x3c,0x80,0x4, +0x7e,0x54,0x2, 0x35,0x7a,0x57,0x23,0x43,0x6c,0xee,0x80,0x60,0xa, 0x5e,0x7f,0x14, +0x12,0xa4,0xd6,0x7a,0x55,0x4a,0xa, 0x5e,0x7f,0x16,0x12,0xa4,0xd6,0x7a,0x55,0x48, +0x7e,0x35,0x48,0x12,0xa4,0xcf,0x2f,0x50,0x7e,0x65,0x4a,0x7d,0x16,0x1a,0x2, 0x1a, +0x0, 0x2f,0x70,0x12,0xa4,0xcf,0x12,0xa4,0xc5,0x7e,0x1d,0x3c,0x2f,0x10,0x7a,0x1d, +0x3c,0x7d,0x16,0x1a,0x2, 0x1a,0x0, 0x7e,0x35,0x4a,0x12,0xa4,0xc5,0x7e,0x1d,0x40, +0x2f,0x10,0x7a,0x1d,0x40,0x7e,0x15,0x4a,0x1a,0x2, 0x1a,0x0, 0x7e,0x35,0x48,0x12, +0xa4,0xc5,0x7e,0x1d,0x44,0x2f,0x10,0x7a,0x1d,0x44,0xb, 0xe0,0xbc,0xfe,0x38,0x9c, +0xa, 0xdf,0x6d,0xcc,0x7f,0x15,0x7f,0x6, 0x12,0x1f,0x58,0x7f,0x51,0x7f,0x17,0x7f, +0x6, 0x12,0x1f,0x58,0x7f,0x71,0x7e,0x94,0x0, 0x64,0x7e,0x1d,0x3c,0x7d,0x19,0x12, +0x1e,0xfc,0x7e,0x87,0x23,0x43,0x7d,0x18,0x7d,0xd8,0x1a,0x12,0x1a,0xc2,0x7f,0x6, +0x12,0x1f,0x58,0x7a,0x1d,0x3c,0x7e,0x1d,0x40,0x7d,0x19,0x12,0x1e,0xfc,0x7f,0x6, +0x12,0x1f,0x58,0x7a,0x1d,0x40,0x7e,0x1d,0x44,0x7d,0x19,0x12,0x1e,0xfc,0x7d,0x18, +0x1a,0x2, 0x1a,0x0, 0x12,0x1f,0x58,0x7a,0x1d,0x44,0x7f,0x15,0x7f,0x7, 0x12,0x1e, +0xeb,0x7e,0x6d,0x44,0x9f,0x61,0x7f,0x15,0x7f,0x5, 0x12,0x1e,0xeb,0x7e,0x5d,0x3c, +0x9f,0x51,0x7f,0x17,0x7f,0x7, 0x12,0x1e,0xeb,0x7e,0x7d,0x40,0x9f,0x71,0xbe,0x58, +0x0, 0x0, 0x68,0x6, 0xbe,0x78,0x0, 0x0, 0x78,0x6, 0x7e,0x44,0x0, 0x64,0x80,0x18, +0x7f,0x16,0x7d,0x19,0x12,0x1e,0xfc,0x7f,0x5, 0x12,0x1f,0x58,0x7f,0x6, 0x12,0x1e, +0xeb,0x7f,0x7, 0x12,0x1f,0x58,0x7d,0x43,0xbe,0x44,0x0, 0x0, 0x18,0x2, 0x6d,0x44, +0x7c,0xb9,0xda,0x3b,0x22,0x1a,0x26,0x1a,0x24,0x12,0x1e,0xeb,0x7f,0x1, 0x22,0x7d, +0x13,0x1a,0x2, 0x1a,0x0, 0x22,0x2d,0x35,0x7e,0x1b,0x70,0xa, 0x57,0x22,0x7e,0x73, +0x39,0x1, 0xbe,0x71,0x2b,0x22,0x2d,0x13,0x7e,0xb, 0x50,0xa, 0x25,0x22,0xca,0x79, +0x6c,0xaa,0x12,0xa5,0xe4,0xb, 0x7a,0xf0,0x7d,0x7f,0x7c,0xbf,0xa, 0xfa,0x19,0xbf, +0x38,0x43,0x7f,0x71,0x2d,0xf4,0xb, 0x7a,0x40,0x7c,0xb9,0xa, 0x4a,0x19,0xb4,0x38, +0x63,0xb, 0xa0,0xbe,0xa0,0x20,0x40,0xda,0x7e,0x8, 0x38,0x43,0x7e,0x18,0x38,0x63, +0x74,0x20,0x12,0xa1,0x52,0xda,0x79,0x22,0xca,0x3b,0x7f,0x61,0x7f,0x50,0x7e,0x73, +0x38,0x3f,0xbe,0x70,0x20,0x40,0x52,0x7e,0xf0,0x2, 0x80,0x3c,0xa, 0x3f,0x6d,0x22, +0x74,0x5, 0x2f,0x11,0x14,0x78,0xfb,0x7e,0x33,0x38,0x3f,0xa, 0x13,0x6d,0x0, 0x12, +0x1f,0x7, 0x7c,0xe7,0xbe,0xe0,0x2, 0x50,0x3, 0x7e,0xe0,0x2, 0xa, 0x6f,0x1b,0x64, +0xa, 0x3e,0x1b,0x34,0x7c,0xc7,0x7f,0x5, 0x7c,0xbd,0x12,0xa5,0x92,0x7f,0x6, 0x7c, +0xbd,0x7c,0x7c,0x12,0xa5,0x92,0xb, 0xf0,0x7e,0x73,0x38,0x3f,0xbc,0x7f,0x50,0xbc, +0x7f,0x5, 0x7f,0x16,0x12,0xa4,0xee,0x80,0x6, 0x74,0x7e,0x7a,0xb3,0x38,0x3e,0xda, +0x3b,0x22,0x7c,0x97,0x7c,0xab,0x7f,0x10,0x7e,0x30,0x2, 0xac,0x3a,0x2d,0x13,0x7d, +0x2, 0xb, 0xa, 0x10,0x7e,0x10,0x2, 0xac,0x19,0x7f,0x71,0x2d,0xf0,0xb, 0x7a,0x0, +0x7c,0x21,0xa5,0xba,0x0, 0x14,0x1a,0x3, 0x1b,0x7a,0x0, 0xbc,0x9a,0x68,0x24,0x6d, +0x44,0x74,0x2, 0xa4,0x2d,0x35,0x1b,0x1a,0x40,0x22,0xbc,0x9a,0x68,0x15,0x1a,0x2, +0x1a,0x13,0x2d,0x10,0xe, 0x14,0x1b,0x7a,0x10,0x6d,0x11,0x74,0x2, 0xa4,0x2d,0x35, +0x1b,0x1a,0x10,0x22,0x7e,0x90,0x2, 0xac,0x9a,0x7f,0x70,0x2d,0xf4,0x22,0xe4,0x7a, +0xb3,0x35,0x69,0x7e,0xb3,0x28,0x84,0x60,0x6, 0x7e,0xb3,0x35,0xe2,0x60,0x5, 0xe4, +0x7a,0xb3,0x35,0xe4,0x22,0x7e,0xa0,0x1, 0x7e,0x37,0x2a,0x4f,0x12,0xa6,0x4e,0x28, +0x35,0x6d,0x22,0x9d,0x23,0xbe,0x27,0x7, 0xf8,0x58,0x2b,0x12,0x8f,0xdc,0xbe,0x37, +0x7, 0xfa,0x8, 0x22,0xe4,0x7a,0xb3,0x28,0x84,0x7e,0xb3,0x2a,0x3, 0x70,0x17,0x7e, +0xb3,0x37,0x8, 0xb4,0x1, 0x10,0x6c,0xaa,0x5, 0x1f,0xe5,0x1f,0xbe,0xb0,0x10,0x28, +0x5, 0xd2,0x11,0x75,0x1f,0x0, 0x4c,0xaa,0x68,0x3, 0x75,0x1f,0x0, 0x22,0x7e,0xb3, +0x28,0x84,0xbe,0xb0,0x0, 0x22,0xca,0x3b,0x7f,0x61,0x7f,0x50,0x7e,0x73,0x2a,0x6e, +0xa, 0x37,0x3e,0x34,0xca,0x39,0x7f,0x16,0x7f,0x5, 0x12,0x20,0xb9,0x1b,0xfd,0x6c, +0xdd,0x12,0xa7,0x10,0x7a,0xb3,0x1f,0x6c,0x6c,0xcc,0x80,0x4a,0x12,0xa6,0xff,0x78, +0x43,0x74,0x2, 0xac,0xbc,0x7f,0x16,0x2d,0x35,0xb, 0x1a,0xe0,0x7d,0x3f,0x12,0x21, +0x0, 0x7d,0x13,0x7d,0x3e,0x12,0x21,0x0, 0xbd,0x31,0x58,0x2, 0x7d,0xfe,0xbe,0xe5, +0x2e,0x8, 0x5, 0x7e,0xe5,0x2e,0x80,0xb, 0x6d,0x33,0x9e,0x35,0x2e,0xbd,0x3e,0x8, +0x2, 0x7d,0xe3,0x7d,0x3e,0x1a,0x26,0x1a,0x24,0x2f,0x41,0x7e,0xb3,0x1f,0x6c,0x4, +0x7a,0xb3,0x1f,0x6c,0xb, 0xc0,0x7e,0x73,0x2a,0x70,0xbc,0x7c,0x38,0xae,0x7e,0x73, +0x1f,0x6c,0x4c,0x77,0x68,0x1d,0x12,0xa7,0x2d,0x8, 0x2, 0x7d,0x7f,0x6c,0xcc,0x80, +0xa, 0x12,0xa6,0xff,0x78,0x3, 0x12,0xa7,0x18,0xb, 0xc0,0x7e,0x73,0x2a,0x70,0xbc, +0x7c,0x38,0xee,0xb, 0xd0,0xbe,0xd0,0x2, 0x50,0x2, 0xc1,0x71,0xda,0x3b,0x22,0xa, +0xec,0x9, 0x7e,0x2a,0xdc,0xa, 0x37,0x5e,0x34,0x0, 0x1, 0xa, 0xed,0xbd,0x3e,0x22, +0x7e,0xf4,0x7f,0xff,0x9f,0x44,0xe4,0x22,0x74,0x2, 0xac,0xbc,0x7f,0x16,0x2d,0x35, +0xb, 0x1a,0xe0,0x9d,0xe7,0x7f,0x15,0x2d,0x35,0x1b,0x1a,0xe0,0x22,0xa, 0x17,0x6d, +0x0, 0x7f,0x14,0x12,0x1f,0x58,0x7d,0x73,0x12,0x21,0x0, 0x7d,0xe3,0x7d,0x3f,0x12, +0x21,0x0, 0xbd,0x3e,0x22,0x7e,0x63,0x2a,0x6e,0x90,0x60,0xa7,0xe4,0x93,0x60,0x6c, +0xc2,0x12,0x6c,0x33,0x80,0x56,0x90,0x60,0xaa,0xe4,0x93,0x70,0x13,0x7c,0x96,0xac, +0x93,0x90,0x60,0xab,0xe4,0x93,0xa, 0x5b,0x1b,0x54,0x2d,0x45,0x7d,0xd4,0xb, 0xd4, +0x7d,0x54,0x3e,0x54,0x7e,0x7f,0x13,0x8a,0x2d,0xf5,0xb, 0x7a,0x50,0xbe,0x57,0x2a, +0x5a,0x8, 0x27,0x7c,0xb3,0x12,0x31,0x5a,0x50,0x20,0x7d,0x5d,0x3e,0x54,0x7e,0x7f, +0x13,0x8a,0x7f,0x57,0x2d,0xb5,0xb, 0x5a,0xc0,0x7d,0x54,0x3e,0x54,0x2d,0xf5,0xb, +0x7a,0x50,0xbd,0x5c,0x8, 0x4, 0xd2,0x12,0x80,0xa, 0xb, 0x30,0x7e,0x73,0x2a,0x75, +0xbc,0x73,0x38,0xa2,0x30,0x12,0x5, 0xd2,0x3, 0x2, 0x32,0xe7,0x22,0x90,0x60,0xa7, +0xe4,0x93,0x60,0x8, 0x30,0x12,0x5, 0x12,0x31,0x7d,0xc2,0x12,0x22,0xca,0xd8,0xca, +0x79,0x7c,0xfb,0x7f,0x70,0xc2,0x3, 0x6c,0xdd,0x6d,0xdd,0x7e,0x34,0x22,0xe6,0x7e, +0x24,0x0, 0xff,0x7e,0x14,0x1f,0x34,0x74,0xc, 0x12,0x1f,0xad,0x6d,0x11,0x7e,0x4, +0x7f,0xff,0x6c,0xee,0x80,0x13,0x12,0xa8,0xe1,0x7d,0xc3,0xbd,0xdc,0x50,0x2, 0x7d, +0xdc,0xbd,0xc, 0x28,0x2, 0x7d,0xc, 0xb, 0xe0,0xbc,0xfe,0x38,0xe9,0xbe,0xd4,0x0, +0x1e,0x58,0xa, 0x7e,0xb3,0x28,0x94,0x70,0x4, 0x6d,0x33,0x1, 0xd2,0xbe,0xd4,0x4, +0xb0,0x8, 0x2, 0xd2,0x3, 0x6c,0xee,0x74,0x4, 0xac,0xbe,0x49,0x45,0x1f,0x34,0xbd, +0x4d,0x58,0x6, 0x49,0xd5,0x1f,0x36,0x80,0x7, 0xb, 0xe0,0xbe,0xe0,0x3, 0x40,0xe7, +0xbe,0xe0,0x3, 0x78,0x4, 0x6d,0x33,0x1, 0xd2,0xbd,0xd, 0x8, 0x5, 0x30,0x3, 0x2, +0x7d,0xd0,0x9f,0x55,0x6c,0xee,0x80,0xb, 0x12,0xa8,0xe1,0x1a,0x26,0x1a,0x24,0x2f, +0x51,0xb, 0xe0,0xbc,0xfe,0x38,0xf1,0xa, 0x1f,0x12,0xa8,0xd7,0x9f,0x55,0x6c,0xee, +0x80,0x22,0x74,0x2, 0xac,0xbe,0x7f,0x17,0x2d,0x35,0xb, 0x1a,0x90,0x7d,0x39,0x12, +0x21,0x0, 0x7d,0xc3,0xbd,0x1c,0x28,0xa, 0x7d,0x39,0x1a,0x26,0x1a,0x24,0x2f,0x51, +0xb, 0xd0,0xb, 0xe0,0xbc,0xfe,0x38,0xda,0x6d,0x11,0xbe,0xd0,0x0, 0x28,0x5, 0xa, +0x1d,0x12,0xa8,0xd7,0xbd,0x1d,0x8, 0x4, 0x7d,0x1d,0x80,0xa, 0x6d,0x0, 0x9d,0xd, +0xbd,0x1, 0x8, 0x2, 0x7d,0x10,0x6c,0xee,0x80,0x12,0x74,0x2, 0xac,0xbe,0x7f,0x17, +0x2d,0x35,0xb, 0x1a,0x0, 0x9d,0x1, 0x1b,0x1a,0x0, 0xb, 0xe0,0xbc,0xfe,0x38,0xea, +0x7d,0x31,0xda,0x79,0xda,0xd8,0x22,0x6d,0x0, 0x7f,0x15,0x12,0x1f,0x58,0x7d,0x13, +0x22,0x74,0x2, 0xac,0xbe,0x7f,0x17,0x2d,0x35,0xb, 0x1a,0x30,0x2, 0x21,0x0, 0xca, +0xf8,0x7f,0x71,0x6d,0xdd,0x6c,0xaa,0x7e,0xf0,0x7f,0xc2,0x3, 0x6d,0x44,0x80,0x1e, +0x7d,0xc4,0x3e,0xc4,0x7f,0x17,0x2d,0x3c,0x12,0xa8,0xe9,0xbd,0x3d,0x48,0xd, 0x7d, +0x34,0x3e,0x34,0x2d,0x3f,0x7d,0x2e,0x12,0xa8,0xe9,0x7d,0xd3,0xb, 0x44,0x7e,0xc5, +0x35,0xbd,0xc4,0x38,0xdb,0x80,0x7, 0xb, 0xa0,0xbe,0xa0,0x8, 0x50,0x11,0x7c,0xba, +0x7d,0x3d,0x60,0x5, 0xe, 0x34,0x14,0x78,0xfb,0xa, 0xcf,0xbd,0x3c,0x18,0xe8,0x7f, +0x10,0x2e,0x35,0x35,0x7a,0x1b,0xa0,0x6d,0x44,0x80,0x21,0x7d,0x54,0x3e,0x54,0x7f, +0x17,0x2d,0x35,0xb, 0x1a,0x30,0x7f,0x60,0x2e,0xd5,0x35,0x7e,0x6b,0xb0,0x60,0x5, +0xe, 0x34,0x14,0x78,0xfb,0x7c,0xb7,0x12,0xa9,0x78,0xb, 0x44,0x7e,0x55,0x35,0xbd, +0x54,0x38,0xd8,0xda,0xf8,0x22,0xa, 0x4a,0x7f,0x10,0x2d,0x34,0x7a,0x1b,0xb0,0x22, +0xd2,0xc9,0x75,0xf2,0x30,0x75,0xf3,0x80,0x75,0xf4,0xc, 0x75,0xf5,0x1, 0x6c,0xaa, +0xe5,0xf5,0x54,0x80,0xb4,0x80,0xf9,0xe5,0xf6,0x12,0xa9,0x76,0xb, 0xa0,0xbe,0xa0, +0xd, 0x40,0xed,0xc2,0xc9,0x22,0x90,0x60,0x93,0xe4,0x93,0xa, 0xb, 0x7e,0x73,0x2a, +0x71,0xa, 0x17,0x2d,0x10,0x7e,0xa3,0x2a,0x6e,0xa, 0x3a,0xad,0x13,0x7d,0x21,0x6c, +0x33,0x80,0x20,0xa, 0x3, 0x2d,0x2, 0x3e,0x4, 0x7e,0x7f,0x38,0xd9,0x2d,0xf0,0xb, +0x7a,0x0, 0x7e,0x90,0x2, 0xac,0x93,0x49,0xf4,0x13,0x8e,0x9d,0xf, 0x59,0x4, 0x25, +0xb6,0xb, 0x30,0xbc,0xa3,0x38,0xdc,0x7a,0x35,0x35,0x7e,0xf, 0x37,0x40,0x7e,0x18, +0x25,0xb6,0x2, 0xa8,0xef,0x7e,0xb3,0x2b,0x1d,0xb4,0x1, 0x31,0x12,0xaa,0x2e,0x7e, +0x1f,0x38,0xd9,0x7a,0x37,0x24,0xfa,0x7e,0x34,0xd, 0xc8,0x7a,0x37,0x24,0xf6,0x12, +0xaa,0x35,0x12,0xaa,0x3e,0xe4,0x7a,0xb3,0x24,0xf5,0x7e,0x34,0x0, 0x20,0x7a,0x37, +0x24,0xfc,0x7a,0xb3,0x24,0xf4,0x7e,0x8, 0x24,0xf2,0x2, 0xd, 0x7, 0x22,0xa9,0xd1, +0xcb,0xe4,0x2, 0x0, 0xe, 0x7e,0x73,0x2a,0x6d,0x7a,0x73,0x24,0xf2,0x22,0x7e,0x73, +0x2a,0x6e,0x7a,0x73,0x24,0xf3,0x22,0x7e,0x43,0x2a,0x6e,0x7e,0x53,0x2a,0x6d,0xac, +0x54,0x7e,0x17,0x28,0xa1,0x12,0xaa,0x2e,0x6d,0x0, 0x80,0x37,0x7d,0x40,0x3e,0x44, +0x7e,0x7f,0x38,0xd9,0x2d,0xf4,0xb, 0x7a,0x30,0xbd,0x13,0x58,0x10,0x7d,0xf4,0x2e, +0xf4,0x8, 0xa, 0xb, 0xf8,0x50,0x9d,0x51,0x1b,0xf8,0x50,0x80,0x14,0x6d,0x55,0x9d, +0x51,0xbd,0x53,0x8, 0xc, 0x2e,0x44,0x8, 0xa, 0xb, 0x48,0x50,0x2d,0x51,0x1b,0x48, +0x50,0xb, 0x4, 0xbd,0x20,0x38,0xc5,0x22,0x7c,0xab,0x7e,0x8, 0x29,0xbc,0x12,0x5e, +0x25,0x28,0x1f,0xa, 0x3a,0x7f,0x70,0x2d,0xf3,0x7e,0x7b,0xb0,0xb4,0x2, 0x4, 0x74, +0x1, 0x80,0x2, 0x74,0x3, 0x7a,0x7b,0xb0,0x74,0x3, 0x2d,0x31,0x7d,0x20,0x39,0xb1, +0x0, 0xa, 0x22,0xca,0xd8,0xca,0x79,0x7e,0x34,0x61,0x43,0x7e,0x24,0x0, 0xff,0xb, +0x1a,0x40,0x90,0x61,0x35,0xe4,0x93,0x70,0x2, 0x61,0x73,0x90,0x60,0xa7,0xe4,0x93, +0x70,0x2, 0x61,0x73,0x6c,0xff,0x61,0x6c,0x7e,0x70,0x9, 0xac,0x7f,0x9, 0xe3,0x29, +0xc, 0x5e,0xe0,0xf, 0x49,0xc3,0x29,0xa, 0x7e,0x14,0x60,0xd1,0x7e,0x4, 0x0, 0xff, +0xb, 0xa, 0x20,0x2d,0x24,0xbd,0xc2,0x40,0x42,0x49,0xd3,0x29,0x8, 0x7d,0x3d,0x12, +0xab,0x81,0x7c,0xdb,0x90,0x60,0xa7,0xe4,0x93,0xbc,0xbd,0x38,0xe, 0x7d,0x34,0x1b, +0x34,0x12,0xab,0x78,0x7c,0xbe,0x12,0xaa,0x98,0x80,0x3f,0x7e,0x70,0x2, 0xac,0x7d, +0x2e,0x34,0x60,0xc5,0x12,0x87,0xbc,0x74,0x9, 0xac,0xbf,0x59,0xd5,0x29,0x8, 0x7e, +0x34,0x60,0xcf,0x12,0x23,0x9e,0x12,0xab,0x78,0x80,0x1f,0xbd,0xc4,0x40,0x1b,0x7d, +0x54,0x2e,0x54,0x0, 0xa, 0xbd,0xc5,0x40,0x5, 0x7c,0xbe,0x12,0xaa,0x98,0x7d,0xc4, +0x1b,0xc4,0x74,0x9, 0xac,0xbf,0x59,0xc5,0x29,0xa, 0xb, 0xf0,0x12,0x5e,0x2d,0x28, +0x2, 0x41,0xe8,0xda,0x79,0xda,0xd8,0x22,0x74,0x9, 0xac,0xbf,0x59,0x35,0x29,0xa, +0x22,0x6c,0xaa,0x80,0x27,0x7e,0x30,0x4, 0xac,0x3a,0x7d,0xf1,0x2e,0xf4,0x60,0xb1, +0x7e,0xe4,0x0, 0xff,0xb, 0x7a,0x20,0xbd,0x23,0x38,0xf, 0x2e,0x14,0x60,0xb3,0x7e, +0x4, 0x0, 0xff,0xb, 0xa, 0x20,0xbd,0x23,0x50,0xb, 0xb, 0xa0,0x90,0x60,0xa7,0xe4, +0x93,0xbc,0xba,0x38,0xd0,0x7c,0xba,0x22,0x90,0x60,0xa7,0xe4,0x93,0x60,0x2b,0x6c, +0x33,0x80,0x1f,0x7c,0xb3,0x12,0x31,0x5a,0x40,0x16,0x7c,0xb3,0x12,0x31,0x27,0x7d, +0x43,0x6d,0x55,0x7d,0x4, 0x3e,0x4, 0x7e,0x1f,0x13,0x8a,0x2d,0x30,0x1b,0x1a,0x50, +0xb, 0x30,0x7e,0x23,0x2a,0x75,0xbc,0x23,0x38,0xd9,0x22,0x12,0xab,0xfd,0x7e,0x14, +0x62,0x7, 0x12,0x87,0xee,0x28,0x3, 0xd2,0x13,0x22,0xc2,0x13,0x22,0x6d,0x11,0xe4, +0x12,0x0, 0x1e,0x6c,0xaa,0x80,0x5b,0x7e,0x10,0x2, 0xac,0x1a,0x7e,0x7f,0x38,0xf3, +0x2d,0xf0,0x69,0x27,0x1, 0x0, 0x69,0x37,0x0, 0x80,0x9d,0x32,0x12,0x21,0x0, 0xbd, +0x31,0x28,0x16,0x7e,0x70,0x2, 0xac,0x7a,0x7e,0xf, 0x38,0xf3,0x2d,0x13,0x69,0x20, +0x1, 0x0, 0x69,0x30,0x0, 0x80,0x12,0x81,0xbf,0x7e,0x10,0x2, 0xac,0x1a,0x7e,0x1f, +0x38,0xf3,0x2d,0x30,0x69,0x1, 0x0, 0x80,0xbe,0x4, 0x7f,0xff,0x78,0x4, 0x7e,0x14, +0x7f,0xff,0x69,0x1, 0x1, 0x0, 0xbe,0x4, 0x7f,0xff,0x78,0x4, 0x7e,0x14,0x7f,0xff, +0xb, 0xa0,0x7e,0xb3,0x2a,0x74,0xbc,0xba,0x38,0x9d,0x7d,0x31,0x22,0x6c,0x66,0x7e, +0x27,0x39,0x4, 0xbe,0x24,0x3, 0xe8,0x28,0x3, 0x7e,0x60,0x8, 0x7e,0xb3,0x28,0xac, +0xb4,0x1, 0x1a,0x7e,0x73,0x2f,0xab,0xbc,0x76,0x50,0xf, 0xe4,0x7a,0xb3,0x28,0xad, +0x12,0x8a,0x87,0x7e,0xb3,0x2f,0xab,0x4, 0x80,0x4, 0xe4,0x80,0x1, 0xe4,0x7a,0xb3, +0x2f,0xab,0x7e,0xb3,0x28,0xad,0xb4,0x1, 0x17,0x7e,0xa3,0x2f,0xac,0xbe,0xa0,0x5, +0x50,0xa, 0xe4,0x7a,0xb3,0x28,0xad,0x7c,0xba,0x4, 0x80,0x5, 0x74,0x5, 0x80,0x1, +0xe4,0x7a,0xb3,0x2f,0xac,0x22,0x6c,0xaa,0x80,0x26,0x7e,0x50,0x2, 0xac,0x5a,0x49, +0x12,0x5, 0xf8,0x49,0x32,0x4, 0x0, 0x2d,0x31,0x59,0x32,0x5, 0xf8,0x30,0x1, 0xe, +0x49,0x12,0x4, 0x7e,0x49,0x32,0x6, 0x76,0x2d,0x31,0x59,0x32,0x6, 0x76,0xb, 0xa0, +0x7e,0xb3,0x2a,0x74,0xa, 0x3b,0x7e,0xb3,0x2a,0x73,0xa, 0x2b,0x2d,0x23,0xa, 0x3a, +0xbd,0x32,0x48,0xc6,0x22,0xd2,0x3, 0x6c,0xaa,0x6c,0x77,0x80,0x1f,0x7e,0x63,0x2a, +0x6e,0xa, 0x16,0xa, 0x27,0x2d,0x21,0x7c,0x65,0x7e,0x50,0x2, 0xac,0x56,0x49,0x22, +0x5, 0x7a,0xbe,0x24,0xfe,0xc, 0x58,0x2, 0xb, 0xa0,0xb, 0x70,0x7e,0xb3,0x2a,0x6d, +0xbc,0xb7,0x38,0xd9,0xa, 0x2b,0x1e,0x24,0xa, 0x3a,0xbd,0x32,0x8, 0x2, 0xc2,0x3, +0xa2,0x3, 0x22,0xc2,0x3, 0x7e,0xa3,0x2a,0x70,0x7e,0xb3,0x26,0xf1,0x60,0x4, 0xd2, +0x3, 0x80,0x33,0x7e,0x70,0x2, 0x80,0x22,0x7e,0x50,0x2, 0xac,0x57,0x49,0x12,0x4, +0xfc,0x7e,0xf4,0x61,0x59,0x7e,0xe4,0x0, 0xff,0xb, 0x7a,0x0, 0x6d,0x22,0x9d,0x20, +0xbd,0x12,0x58,0x4, 0xd2,0x3, 0x80,0xe, 0xb, 0x70,0xa, 0x1a,0x9e,0x14,0x0, 0x3, +0xa, 0x27,0xbd,0x21,0x48,0xd2,0xa2,0x3, 0x22,0x7d,0x23,0x7e,0x14,0x61,0xc8,0x12, +0x64,0xd3,0x7e,0x14,0x0, 0x5, 0xad,0x13,0x1e,0x14,0xbd,0x12,0x50,0xd, 0x7e,0x33, +0x36,0xdc,0xbe,0x30,0x8, 0x50,0x45,0x74,0x8, 0x80,0x3d,0x7d,0x13,0x3e,0x14,0xbd, +0x12,0x50,0xd, 0x7e,0x33,0x36,0xdc,0xbe,0x30,0x6, 0x50,0x30,0x74,0x6, 0x80,0x28, +0x7e,0x14,0x0, 0x3, 0xad,0x13,0x1e,0x14,0xbd,0x12,0x50,0xd, 0x7e,0x33,0x36,0xdc, +0xbe,0x30,0x4, 0x50,0x17,0x74,0x4, 0x80,0xf, 0xbd,0x32,0x50,0xf, 0x7e,0x73,0x36, +0xdc,0xbe,0x70,0x2, 0x50,0x6, 0x74,0x2, 0x7a,0xb3,0x36,0xdc,0x7e,0xb3,0x36,0xdc, +0xbe,0xb0,0x0, 0x28,0x1b,0x14,0x7a,0xb3,0x36,0xdc,0x74,0x1, 0x7a,0xb3,0x16,0x92, +0x90,0x61,0xfd,0xe4,0x93,0xbe,0xb3,0x36,0xdc,0x50,0x5, 0xe4,0x7a,0xb3,0x16,0x91, +0x22,0x7c,0x3b,0x7e,0x44,0xff,0xff,0x6c,0x22,0x80,0x2a,0x12,0xae,0x8a,0x68,0x23, +0x7e,0x70,0xc, 0xac,0x72,0x12,0xae,0xa2,0x7d,0x23,0x7e,0x70,0xc, 0xac,0x72,0x59, +0x23,0x36,0x82,0x49,0x3, 0x36,0x82,0x49,0x23,0x36,0x7e,0xbd,0x20,0x50,0x4, 0x59, +0x3, 0x36,0x7e,0xb, 0x20,0xbc,0x32,0x50,0xd2,0x6c,0xaa,0x6c,0x22,0x80,0x18,0x12, +0xae,0x8a,0x68,0x11,0x7e,0x70,0xc, 0xac,0x72,0x49,0x3, 0x36,0x7e,0xbd,0x4, 0x50, +0x4, 0x7d,0x40,0x7c,0xa2,0xb, 0x20,0xbc,0x32,0x50,0xe4,0x7e,0x37,0x36,0x64,0xbe, +0x37,0x36,0xdd,0x50,0x8, 0x7e,0x37,0x36,0xdd,0x7a,0x37,0x36,0x64,0x12,0xae,0x98, +0x4d,0x33,0x78,0x3, 0x7e,0xa0,0xff,0x7c,0xba,0x22,0x7e,0x10,0x5, 0xac,0x12,0x9, +0xb0,0x26,0x33,0xbe,0xb3,0x2b,0xf, 0x22,0x7e,0x70,0xc, 0xac,0x7a,0x49,0x33,0x36, +0x7e,0x22,0x49,0x23,0x36,0x84,0x49,0x33,0x36,0x80,0x9d,0x32,0x2, 0x21,0x0, 0x7e, +0x8, 0x36,0x7a,0x7e,0x34,0x0, 0x60,0xe4,0x12,0x20,0xde,0x6c,0xaa,0x7e,0x44,0xff, +0xff,0x7e,0x70,0xc, 0xac,0x7a,0x59,0x43,0x36,0x7c,0x59,0x43,0x36,0x84,0xb, 0xa0, +0xbe,0xa0,0x8, 0x40,0xe8,0x7e,0x8, 0x36,0x68,0x7e,0x34,0x0, 0xd, 0xe4,0x2, 0x20, +0xde,0x7e,0xa3,0x2b,0x62,0xbc,0xab,0x68,0x6, 0x7a,0xb3,0x2b,0x62,0xd2,0xc, 0x30, +0xc, 0x7, 0x12,0xae,0xfa,0xe4,0x2, 0xa, 0x66,0x22,0xc2,0xc, 0x7e,0x8, 0x2a,0x6d, +0x12,0x3, 0x8b,0x7e,0x8, 0x2a,0x6d,0x74,0x3, 0x2, 0x11,0x7a,0xe4,0x7a,0xb3,0x36, +0x67,0x6c,0xaa,0x80,0xd, 0x6d,0x44,0x7e,0x70,0xc, 0xac,0x7a,0x59,0x43,0x36,0x7e, +0xb, 0xa0,0x12,0x8d,0x8, 0x38,0xee,0xe4,0x7a,0xb3,0x36,0x68,0x6d,0x33,0x7a,0x37, +0x36,0x6f,0x7a,0x37,0x36,0x64,0x22,0x7e,0xb3,0x36,0x6a,0xb4,0x1, 0x27,0x7e,0xb3, +0x36,0xe0,0x4, 0x7a,0xb3,0x36,0xe0,0x7e,0x73,0x36,0xe0,0xbe,0x70,0x3, 0x40,0x15, +0x12,0x8c,0x90,0x7e,0x73,0x36,0xe0,0xbe,0x70,0x6, 0x40,0x9, 0xe4,0x7a,0xb3,0x36, +0xe0,0x7a,0xb3,0x36,0x6a,0x22,0x12,0x24,0x14,0xe4,0x7a,0xb3,0x3, 0xfe,0x2, 0x76, +0x52,0xca,0xd8,0xca,0x79,0x7f,0x70,0x7e,0x93,0x28,0x84,0x6c,0x88,0x7e,0xf0,0x1, +0x80,0x1a,0xa, 0x58,0x7f,0x17,0x2d,0x35,0x7e,0x1b,0x60,0xa, 0x5f,0x7f,0x7, 0x2d, +0x15,0x7e,0xb, 0x70,0xbc,0x76,0x40,0x2, 0x7c,0x8f,0xb, 0xf0,0xbc,0x9f,0x38,0xe2, +0xa, 0x38,0x2d,0x3f,0x7d,0x2e,0x7e,0x1b,0x80,0x6c,0xaa,0x7e,0xf0,0x1, 0x2, 0xb0, +0x31,0x75,0x45,0x0, 0x6d,0xdd,0x6d,0xbb,0x7d,0xcb,0x75,0x44,0x0, 0x80,0x36,0x7e, +0x71,0x44,0x74,0x2, 0xac,0x7b,0x9, 0xe3,0x26,0xfa,0x9, 0xd3,0x26,0xfb,0xe5,0x44, +0xa, 0xab,0x7f,0x17,0x2d,0x3a,0x7e,0x1b,0xb0,0xbc,0xbf,0x78,0x16,0x5, 0x45,0xa, +0xae,0x2d,0xca,0xa, 0xad,0x2d,0xba,0x12,0xc0,0xe8,0xbd,0x3d,0x8, 0x5, 0x12,0xc0, +0xe8,0x7d,0xd3,0x5, 0x44,0xbe,0x91,0x44,0x38,0xc5,0xe5,0x45,0xbe,0xb0,0x0, 0x28, +0x2e,0xe5,0x45,0xa, 0xab,0x7d,0x3c,0x8d,0x3a,0x7d,0xc3,0x8d,0xba,0x7e,0x50,0x2, +0xac,0x5a,0x19,0x72,0x33,0xc3,0x7d,0x3b,0x7e,0x50,0x2, 0xac,0x5a,0x19,0x72,0x33, +0xc4,0x7d,0x3c,0x7c,0xb7,0x7d,0x3b,0x12,0x30,0x3, 0x1b,0x1a,0xd0,0xb, 0xa0,0xb, +0xf0,0xbc,0x8f,0x40,0x3, 0x2, 0xaf,0xb1,0x7c,0xba,0xda,0x79,0xda,0xd8,0x22,0x7c, +0x9b,0x7f,0x71,0x7f,0x60,0x7e,0x34,0x22,0xb8,0x7e,0x24,0x0, 0xff,0x7e,0x14,0x1f, +0x52,0x74,0x2a,0x12,0x1f,0xad,0x7e,0x58,0x1f,0x52,0x7c,0xb9,0x7e,0x71,0x44,0x12, +0x2c,0x40,0x7d,0x43,0xe5,0x45,0x7e,0x71,0x46,0x12,0x2c,0x40,0x2d,0x34,0xe, 0x34, +0x7f,0x5, 0x7e,0x50,0x7, 0xb, 0xa, 0x50,0xbd,0x53,0x58,0xf, 0x69,0x30,0x0, 0x2, +0x1b,0x6a,0x30,0x69,0x30,0x0, 0x4, 0x1b,0x7a,0x30,0x22,0x2e,0x14,0x0, 0x6, 0x1b, +0x50,0x78,0xe2,0x22,0x6d,0x33,0x7d,0x23,0x7d,0x3, 0x6c,0x33,0x80,0x45,0x6c,0x22, +0x80,0x37,0x7e,0xb3,0x2a,0x6e,0xac,0xb3,0xa, 0x42,0x2d,0x54,0x7d,0x45,0x3e,0x44, +0x7e,0x7f,0x13,0x8a,0x2d,0xf4,0xb, 0x7a,0x40,0xbe,0x44,0x0, 0x32,0x8, 0x8, 0xbe, +0x44,0x2, 0x58,0x58,0x2, 0xb, 0x24,0xbe,0x44,0xff,0xce,0x58,0x8, 0xbe,0x44,0xfd, +0xa8,0x8, 0x2, 0xb, 0x4, 0xb, 0x34,0xb, 0x21,0x7e,0x93,0x2a,0x6e,0xbc,0x92,0x38, +0xc1,0xb, 0x31,0x7e,0xb3,0x2a,0x6d,0xbc,0xb3,0x38,0xb3,0x7e,0x54,0x0, 0x6, 0xad, +0x53,0x7d,0x15,0x1e,0x14,0x1e,0x14,0x1e,0x14,0x12,0x25,0x3e,0xbd,0x12,0x50,0x22, +0xbd,0x30,0x28,0x1e,0xe4,0x7a,0xb3,0x39,0x8, 0x7e,0xb3,0x39,0x9, 0xbe,0xb0,0x5, +0x50,0x7, 0x4, 0x7a,0xb3,0x39,0x9, 0x80,0x3c,0xe4,0x7a,0xb3,0x39,0x9, 0x74,0x1, +0x80,0x2f,0xbd,0x10,0x50,0x22,0xbd,0x32,0x28,0x1e,0xe4,0x7a,0xb3,0x39,0x9, 0x7e, +0xb3,0x39,0x8, 0xbe,0xb0,0x5, 0x50,0x7, 0x4, 0x7a,0xb3,0x39,0x8, 0x80,0x16,0xe4, +0x7a,0xb3,0x39,0x8, 0x74,0x2, 0x80,0x9, 0xe4,0x7a,0xb3,0x39,0x8, 0x7a,0xb3,0x39, +0x9, 0x7a,0xb3,0x39,0xa, 0x7e,0xb3,0x39,0xa, 0x22,0xe4,0x7a,0xb3,0x28,0xa8,0x7a, +0xb3,0x39,0xb, 0x22,0xca,0xd8,0xca,0x79,0xc2,0x3, 0x6c,0xdd,0x7e,0x57,0x28,0x99, +0x7d,0xf5,0x7e,0xe7,0x28,0x97,0x7e,0x37,0x37,0xfb,0x4d,0x33,0x68,0x4, 0x7d,0xf5, +0xe, 0xf4,0x6c,0xff,0x7e,0xa3,0x2a,0x6e,0x7c,0x8a,0x7e,0xb3,0x28,0xa5,0x14,0x68, +0x21,0x14,0x68,0x14,0x24,0xc2,0x68,0x8, 0x24,0xfb,0x68,0x16,0x24,0x45,0x78,0x10, +0x7c,0xfa,0x7e,0x83,0x2a,0x6d,0x80,0xa, 0x7e,0x73,0x2a,0x6d,0x2c,0x87,0x80,0x2, +0x6c,0x88,0x6c,0x99,0x80,0xf, 0x7c,0xb9,0x12,0x37,0x6f,0xbe,0x34,0x2, 0x58,0x8, +0x2, 0xb, 0xd0,0xb, 0x90,0x7e,0x33,0x28,0x84,0xbc,0x39,0x38,0xe9,0xbe,0xd0,0x3, +0x40,0x2, 0x61,0x25,0x7e,0xa3,0x28,0x85,0xbe,0xa0,0x0, 0x38,0xb, 0xbe,0x30,0x0, +0x28,0x37,0x7e,0xb3,0x26,0x83,0x70,0x31,0x6c,0x99,0x80,0x29,0xa, 0x29,0xa, 0x3f, +0x2d,0x32,0x3e,0x34,0x49,0x23,0x5, 0x7a,0xbd,0x2f,0x8, 0x17,0x49,0x3, 0x4, 0xfc, +0xbd,0xe, 0x58,0xf, 0x6d,0x33,0x9d,0x3e,0x12,0x8f,0xdc,0xbd,0x3, 0x8, 0x4, 0xd2, +0x3, 0x80,0x6, 0xb, 0x90,0xbc,0x89,0x38,0xd3,0x6d,0xee,0x9e,0xe7,0x2a,0x4f,0xbe, +0xe7,0x7, 0xf8,0x8, 0x2, 0xc2,0x3, 0x30,0x3, 0x20,0x7e,0xb3,0x39,0xb, 0x4, 0x7a, +0xb3,0x39,0xb, 0x7e,0x23,0x39,0xb, 0xbe,0x20,0xa, 0x28,0x1d,0x74,0xa, 0x7a,0xb3, +0x39,0xb, 0x74,0x1, 0x7a,0xb3,0x28,0xa8,0x80,0xf, 0x7e,0x23,0x39,0xb, 0xbe,0x20, +0x0, 0x28,0x6, 0x1e,0x20,0x7a,0x23,0x39,0xb, 0x6c,0xee,0xbe,0x30,0x0, 0x38,0x5, +0xbe,0xa0,0x0, 0x28,0x69,0x7e,0xb3,0x28,0xa7,0xb4,0x1, 0x9, 0x7e,0xb3,0x28,0xaa, +0xbe,0xb0,0x1, 0x68,0x59,0x7e,0xb3,0x28,0xa8,0xb4,0x1, 0x52,0x6c,0x99,0x80,0x1d, +0x7e,0x70,0x2, 0xac,0x79,0x9, 0xa3,0x26,0xfa,0x9, 0xd3,0x26,0xfb,0x12,0x2c,0x3c, +0xbe,0x34,0x0, 0x96,0x8, 0x5, 0x7e,0xe0,0x1, 0x80,0xa, 0xb, 0x90,0x7e,0xb3,0x28, +0x84,0xbc,0xb9,0x38,0xdb,0x6c,0x99,0x80,0x1d,0x7e,0x70,0x2, 0xac,0x79,0x9, 0xa3, +0x27,0x36,0x9, 0xd3,0x27,0x37,0x12,0x2c,0x3c,0xbe,0x34,0xff,0x6a,0x58,0x5, 0x7e, +0xe0,0x1, 0x80,0xa, 0xb, 0x90,0x7e,0xb3,0x28,0x85,0xbc,0xb9,0x38,0xdb,0x6c,0x99, +0x80,0x17,0xa, 0xe9,0xa, 0x5f,0x2d,0x5e,0x3e,0x54,0x49,0x55,0x5, 0x7a,0xbd,0x5f, +0x8, 0x5, 0x7e,0xe0,0x1, 0x80,0x6, 0xb, 0x90,0xbc,0x89,0x38,0xe5,0x4c,0xee,0x78, +0x25,0x7e,0xb3,0x39,0xc, 0x4, 0x7a,0xb3,0x39,0xc, 0x7e,0x73,0x39,0xc, 0xbe,0x70, +0x5, 0x28,0x22,0x74,0x5, 0x7a,0xb3,0x39,0xc, 0x7e,0xb3,0x28,0xa8,0x60,0x2, 0xd2, +0x15,0x12,0xb1,0x5a,0x80,0xf, 0x7e,0x73,0x39,0xc, 0xbe,0x70,0x0, 0x28,0x6, 0x1e, +0x70,0x7a,0x73,0x39,0xc, 0xda,0x79,0xda,0xd8,0x22,0xca,0xf8,0x7c,0xfb,0x7e,0x34, +0x0, 0x38,0xca,0x39,0xac,0x7f,0x2e,0x34,0x0, 0x50,0x6d,0x22,0x7e,0x8, 0x34,0x0, +0x12,0x20,0xb9,0x1b,0xfd,0x7e,0x34,0x0, 0x8c,0xca,0x39,0xac,0x7f,0x2e,0x34,0x1, +0x30,0x6d,0x22,0x7e,0x8, 0x3, 0x60,0x12,0x20,0xb9,0x1b,0xfd,0xda,0xf8,0x22,0x7e, +0xa3,0x2a,0x6e,0xa, 0x3a,0x3e,0x34,0x7e,0x8, 0x13,0x8e,0xe4,0x12,0x20,0xde,0x90, +0x60,0x93,0x93,0xa, 0x3b,0x7e,0xb3,0x2a,0x71,0xa, 0x2b,0x2d,0x23,0xa, 0x3a,0xad, +0x32,0x7d,0x43,0x6c,0x77,0x80,0x1d,0xa, 0x27,0x2d,0x24,0x12,0x87,0xdc,0xb, 0xa, +0x0, 0x7e,0x30,0x2, 0xac,0x37,0x2e,0x14,0x13,0x8e,0xb, 0x18,0x20,0x2d,0x20,0x1b, +0x18,0x20,0xb, 0x70,0xbc,0xa7,0x38,0xdf,0x22,0x6c,0xaa,0x80,0x1c,0x7e,0x50,0x2, +0xac,0x5a,0x49,0x12,0x13,0xc6,0x49,0x32,0x13,0x8e,0xbd,0x31,0x28,0x9, 0x2e,0x24, +0x13,0x8e,0x9d,0x31,0x1b,0x28,0x30,0xb, 0xa0,0x7e,0xb3,0x2a,0x6e,0xbc,0xba,0x38, +0xdc,0x22,0x7c,0xab,0x12,0xb3,0xe1,0xd2,0x16,0x7c,0xba,0x12,0x86,0xf8,0xc2,0x16, +0x22,0xa9,0xd1,0xcb,0x74,0x1, 0x2, 0x0, 0xe, 0x12,0xb3,0xe1,0x7e,0x34,0xd, 0xc8, +0x7e,0xb3,0x2a,0x6d,0x12,0xb4,0x22,0x12,0xb4,0x5, 0x7a,0x37,0x38,0xd6,0x74,0x1, +0x7a,0xb3,0x16,0x91,0x22,0x6d,0x33,0x90,0x60,0x91,0xe4,0x93,0xbe,0xb0,0x0, 0x28, +0x3, 0x2, 0xb4,0xef,0x90,0x60,0x92,0xe4,0x93,0xbe,0xb0,0x0, 0x28,0x3, 0x2, 0xb4, +0x56,0x22,0x7a,0xb3,0x24,0xf2,0x7e,0x53,0x2a,0x6e,0x7a,0x53,0x24,0xf3,0x7a,0x37, +0x24,0xfa,0xe4,0x7a,0xb3,0x24,0xf4,0x7a,0xb3,0x24,0xf5,0x7e,0x34,0x40,0x0, 0x7a, +0x37,0x24,0xf6,0x7e,0x34,0x0, 0x20,0x12,0xb4,0x4d,0x2, 0xd, 0x7, 0x7a,0x37,0x24, +0xfc,0x7e,0x8, 0x24,0xf2,0x22,0xca,0xf8,0x6d,0xee,0x7d,0xfe,0x7e,0x83,0x2a,0x6e, +0xa, 0xd8,0x90,0x60,0x94,0xe4,0x93,0xb4,0xff,0x2f,0x7e,0x8, 0x13,0x8e,0x6c,0xaa, +0x80,0x18,0x7e,0x70,0x2, 0xac,0x7a,0x49,0x23,0x13,0xfe,0x7f,0x50,0x2d,0xb3,0xb, +0x5a,0xc0,0x9d,0xc2,0x59,0xc3,0x13,0xc6,0xb, 0xa0,0xbc,0x8a,0x38,0xe4,0x90,0x60, +0x92,0xe4,0x93,0x7c,0x9b,0x6d,0xdd,0x80,0x11,0x7e,0x8, 0x13,0xfe,0x90,0x60,0x92, +0xe4,0x93,0xa, 0xcb,0x1b,0xc4,0x7d,0x3c,0x7c,0x97,0x6c,0xff,0x80,0x38,0x6c,0xaa, +0x80,0x28,0xa, 0x3a,0x7d,0x23,0x2d,0x2e,0x3e,0x24,0x49,0xc2,0x13,0xfe,0x2d,0x3d, +0x3e,0x34,0x2d,0x31,0x7d,0x20,0xb, 0x1a,0xb0,0x7d,0x3c,0x9d,0x3b,0x12,0x21,0x0, +0x7d,0xa3,0xbd,0xfa,0x58,0x2, 0x7d,0xfa,0xb, 0xa0,0xbc,0x8a,0x38,0xd4,0xa, 0xc8, +0x2d,0xec,0x2d,0xdc,0xb, 0xf0,0xbc,0x9f,0x38,0xc4,0x7d,0x3f,0xda,0xf8,0x22,0xca, +0xf8,0x6d,0x44,0x7e,0xf3,0x2a,0x6e,0x90,0x60,0x93,0xe4,0x93,0xa, 0xfb,0x7e,0xb3, +0x2a,0x6d,0xa, 0xeb,0x2d,0xef,0xa, 0xff,0xad,0xfe,0xa, 0xef,0x2d,0xef,0x90,0x60, +0x94,0xe4,0x93,0xb4,0xff,0x31,0x7e,0x8, 0x13,0x8e,0x6c,0xaa,0x80,0x23,0xa, 0xda, +0x2d,0xdf,0x3e,0xd4,0x7e,0x1f,0x38,0xd9,0x2d,0x3d,0xb, 0x1a,0xd0,0x7e,0x50,0x2, +0xac,0x5a,0x7f,0x50,0x2d,0xb2,0xb, 0x5a,0x30,0x9d,0x3d,0x59,0x32,0x13,0xc6,0xb, +0xa0,0xbc,0xfa,0x38,0xd9,0x80,0xa, 0x7d,0x5e,0x3e,0x54,0x7e,0xf, 0x38,0xd9,0x2d, +0x15,0x6c,0xaa,0x80,0x2c,0xa, 0xea,0x2d,0xef,0x3e,0xe4,0x7e,0x1f,0x38,0xd9,0x2d, +0x3e,0xb, 0x1a,0xe0,0x7e,0x70,0x2, 0xac,0x7a,0x2d,0x31,0x7d,0x20,0xb, 0x1a,0xd0, +0x7d,0x3e,0x9d,0x3d,0x12,0x21,0x0, 0x7d,0xc3,0xbd,0x4c,0x58,0x2, 0x7d,0x4c,0xb, +0xa0,0xbc,0xfa,0x38,0xd0,0x7d,0x34,0xda,0xf8,0x22,0xca,0x78,0xa9,0x31,0xe5,0x6, +0xa9,0xd5,0xea,0xa9,0xc5,0xea,0xa9,0x30,0xe5,0x19,0xa9,0xd0,0x9e,0xa9,0xd4,0x9e, +0x5, 0x4e,0x7e,0x73,0x39,0x6, 0xbe,0x71,0x4e,0x38,0x2, 0xd2,0x17,0xa9,0xd0,0x9e, +0xa9,0xd7,0x9e,0xa9,0x34,0xe5,0x5, 0xa9,0xc4,0xcd,0xc2,0x95,0xa9,0x32,0xe5,0x3, +0xa9,0xc2,0xcd,0xa9,0x33,0xe5,0x3, 0xa9,0xc3,0xcd,0xa9,0x37,0xe5,0x3, 0xa9,0xc7, +0xcd,0xa9,0x36,0xe5,0x3, 0xa9,0xc6,0xcd,0xda,0x78,0x32,0xc2,0x9a,0xa9,0xd4,0xa6, +0xc2,0x88,0xd2,0xa8,0x22,0x7e,0x14,0xd7,0xe8,0x7e,0x4, 0x0, 0xff,0x7e,0x34,0x47, +0x52,0x7e,0x24,0x55,0x50,0x79,0x30,0x0, 0x2, 0x1b,0xa, 0x20,0x7e,0x34,0x45,0x20, +0x7e,0x24,0x41,0x44,0x79,0x30,0x0, 0x6, 0x79,0x20,0x0, 0x4, 0x7e,0x34,0x99,0x33, +0x7e,0x24,0x66,0xcc,0x79,0x30,0x0, 0xa, 0x79,0x20,0x0, 0x8, 0x7e,0x34,0x41,0x47, +0x7e,0x24,0x46,0x4c,0x79,0x30,0x0, 0xe, 0x79,0x20,0x0, 0xc, 0x22,0xa9,0xd0,0xce, +0xa2,0x3, 0xa9,0x95,0xc9,0x22,0xa9,0xc6,0xeb,0xa9,0xd6,0xac,0xa9,0xd6,0xec,0xd2, +0x86,0xa9,0xc2,0xeb,0xa9,0xd2,0xac,0xa9,0xd2,0xec,0xd2,0x82,0x22,0x75,0x9a,0x2f, +0xa9,0xd1,0x99,0xd2,0x9c,0xa9,0xd6,0xdf,0x22,0xc2,0x8e,0x43,0x89,0x20,0x75,0x8d, +0x1, 0x75,0x8b,0x0, 0xd2,0x8e,0xd2,0xab,0x22,0x75,0xb7,0x0, 0x75,0xb8,0x0, 0x75, +0xf7,0x0, 0x75,0xf8,0x0, 0xa9,0xd0,0xb7,0xd2,0xb8,0xa9,0xd5,0xb7,0xd2,0xbd,0xa9, +0xd0,0xf7,0xd2,0xf8,0xa9,0xc1,0xb7,0xc2,0xb9,0xa9,0xc3,0xb7,0xc2,0xbb,0xa9,0xc6, +0xb7,0xc2,0xbe,0x22,0x75,0xe7,0x6b,0x2, 0xb6,0x9a,0xe4,0x7e,0x34,0xd7,0xfc,0x7e, +0x24,0x0, 0xff,0x7a,0x1b,0xb0,0x7e,0x34,0xd7,0xfd,0x7a,0x1b,0xb0,0x75,0xe9,0xff, +0x22,0xa9,0xd0,0x99,0xa9,0xc6,0xdf,0x22,0x7e,0x37,0x39,0x4, 0xb, 0x34,0x7a,0x37, +0x39,0x4, 0xbe,0x34,0xff,0x0, 0x40,0x8, 0x7e,0x34,0xff,0x0, 0x7a,0x37,0x39,0x4, +0x22,0x7c,0x6b,0x6c,0x77,0x6c,0xaa,0x7e,0xb3,0x39,0x13,0xb4,0xa5,0x46,0x12,0xb7, +0x8f,0x75,0xb5,0x5, 0xa9,0x36,0xb3,0xfc,0x12,0xb7,0x2d,0xa9,0x36,0xb3,0xfc,0x12, +0xb7,0x2d,0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0x7a,0x61,0xb5,0xa9,0x36,0xb3,0xfc, +0x12,0xb7,0x2d,0xa9,0x36,0xb3,0xfc,0x12,0xb7,0x2d,0xa9,0x36,0xb3,0xfc,0xa9,0xc6, +0xb3,0x7e,0x71,0xb5,0x75,0xb5,0x0, 0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0x7e,0xa1, +0xb5,0xa9,0xd2,0xb4,0x7c,0x47,0x6c,0x55,0xa, 0x3a,0x4d,0x32,0x22,0xa9,0xc6,0xb3, +0x75,0xb5,0x0, 0x22,0x74,0x6, 0x7d,0x30,0x7d,0x23,0x7c,0x6b,0xa, 0x14,0x7c,0x73, +0x7d,0x52,0x7c,0xab,0x7e,0xb3,0x39,0x13,0xb4,0xa5,0x3c,0x12,0xb7,0x8f,0x75,0xb5, +0x1, 0xa9,0x36,0xb3,0xfc,0x12,0xb7,0x2d,0xa9,0x36,0xb3,0xfc,0x12,0xb7,0x2d,0xa9, +0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0x7a,0x61,0xb5,0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3, +0x7a,0x71,0xb5,0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0x7a,0xa1,0xb5,0xa9,0x36,0xb3, +0xfc,0xa9,0xc6,0xb3,0xa9,0xd2,0xb4,0x22,0x74,0x4, 0x7d,0x30,0x2, 0xb7,0x38,0xa9, +0xc2,0xb4,0xa9,0xc6,0xb3,0x22,0x74,0x2, 0x7d,0x3f,0x2, 0xb7,0x38,0x7d,0x42,0x7f, +0x60,0x7d,0x3, 0x12,0xb7,0xef,0x74,0x2, 0x12,0xb6,0xd1,0x7d,0xf3,0x4e,0xf4,0x0, +0x1, 0x4e,0xf4,0x0, 0xa, 0x12,0xb7,0x96,0x7a,0x45,0x36,0x7d,0x30,0x6d,0x22,0x7f, +0x6, 0x12,0xb7,0xd7,0x5e,0xf4,0xff,0xfd,0x12,0xb7,0x96,0x2, 0xb7,0xce,0xa9,0xc5, +0xca,0xe4,0x7a,0xb3,0x39,0x13,0x22,0x12,0xb8,0x38,0x7e,0x35,0x36,0x12,0xb8,0x1c, +0xa9,0xd2,0xb4,0xd3,0x22,0x74,0x6, 0x12,0xb6,0xd1,0x7d,0x3, 0x6c,0x11,0x22,0xa9, +0xd5,0xca,0xa9,0xd1,0xea,0xa9,0xc1,0xea,0x74,0xa5,0x7a,0xb3,0x39,0x13,0x22,0xca, +0xf8,0x7c,0xfb,0x74,0x2, 0x12,0xb6,0xd1,0x4c,0xff,0x78,0x5, 0x5e,0x70,0xdf,0x80, +0x3, 0x4e,0x70,0x20,0x74,0x2, 0x12,0xb7,0x38,0xda,0xf8,0x22,0x6d,0x22,0x80,0x13, +0x75,0xb5,0x0, 0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0xe5,0xb5,0x7a,0xb, 0xb0,0xb, +0x14,0xb, 0x24,0xbd,0x32,0x38,0xe9,0x22,0x7d,0x52,0xf5,0x3a,0x7c,0xb6,0x7c,0xa5, +0xa, 0x44,0xf5,0x39,0x7f,0x21,0xf5,0x38,0xa9,0xc2,0xb4,0x74,0xb, 0x12,0xb8,0x63, +0xe5,0x3a,0x12,0xb8,0x63,0xe5,0x39,0x12,0xb8,0x63,0xe5,0x38,0x12,0xb8,0x63,0xe4, +0x2, 0xb8,0x63,0xf5,0xb5,0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0xd3,0x22,0xd2,0xc8, +0x43,0xed,0xf, 0xc2,0xea,0x75,0xb3,0x13,0xa9,0xd1,0xb4,0xa9,0xc0,0xb4,0x12,0xb7, +0xef,0xe4,0x12,0xb7,0xff,0x2, 0xb7,0xce,0x7c,0xa6,0x7c,0x37,0x7c,0x2b,0xe4,0x6c, +0x11,0x80,0x46,0xbc,0xa1,0x68,0x40,0x1a,0x41,0x3e,0x44,0x9, 0x4, 0x26,0xfb,0xa, +0x20,0xa, 0x33,0x9d,0x32,0x12,0x21,0x0, 0x7c,0x7, 0x1a,0x41,0x3e,0x44,0x9, 0x74, +0x26,0xfa,0xa, 0x27,0xa, 0x32,0x9d,0x32,0x12,0x21,0x0, 0x7c,0x97,0xbe,0x90,0x1, +0x18,0x8, 0xbe,0x0, 0x1, 0x18,0x3, 0x74,0x1, 0x22,0xbe,0x90,0x2, 0x18,0x8, 0xbe, +0x0, 0x2, 0x18,0x3, 0x74,0x2, 0x22,0xb, 0x10,0x7e,0x83,0x28,0x84,0xbc,0x81,0x18, +0xb2,0x22,0x7f,0x71,0x69,0x37,0x0, 0x2, 0x7d,0x53,0x12,0xb9,0x3c,0xb, 0x7a,0x20, +0x2d,0x25,0x1b,0xa, 0x20,0x69,0x27,0x0, 0x4, 0x7d,0x52,0xc4,0x54,0xf0,0x7c,0xab, +0xe4,0x1e,0x34,0x1e,0x34,0x2d,0x35,0x79,0x30,0x0, 0x2, 0x69,0x37,0x0, 0x6, 0x7d, +0x53,0x7c,0xab,0xe4,0x3e,0x54,0x3e,0x54,0x1e,0x24,0x1e,0x24,0x1e,0x24,0x1e,0x24, +0x2d,0x25,0x79,0x20,0x0, 0x4, 0x69,0x27,0x0, 0x8, 0x7c,0x45,0x6c,0x55,0x12,0x25, +0x3c,0x1e,0x34,0x1e,0x34,0x2d,0x32,0x79,0x30,0x0, 0x6, 0x22,0x3, 0x3, 0x54,0xc0, +0x7c,0xab,0xe4,0x22,0x7c,0xab,0x9f,0x11,0x30,0x3, 0x22,0x6c,0x99,0x80,0x1a,0xa, +0xf9,0x2d,0xf1,0x7d,0xe0,0x7e,0x7b,0xb0,0x7e,0x78,0x0, 0x1, 0x60,0x5, 0x2f,0x77, +0x14,0x78,0xfb,0x4d,0x3f,0x4d,0x2e,0xb, 0x90,0xbc,0xa9,0x38,0xe2,0x22,0xca,0xf8, +0x90,0x60,0x51,0xe4,0x93,0x7c,0xfb,0x7e,0x8, 0x1f,0x34,0x12,0x3f,0xd9,0x7e,0x8, +0x1f,0x3c,0x12,0xb9,0xfa,0xd2,0x3, 0x7e,0x8, 0x2a,0xdc,0x7c,0xbf,0x12,0xb9,0x44, +0x7e,0x8, 0x1f,0x34,0x7a,0xf, 0x1f,0x58,0x7f,0x1, 0x7a,0x17,0x1f,0x5c,0x7d,0x32, +0x7a,0x37,0x1f,0x5e,0x7e,0x18,0x1f,0x3c,0x7a,0x1f,0x1f,0x64,0x6c,0x77,0x80,0xe, +0x12,0xba,0x42,0x50,0x7, 0x12,0xba,0x39,0x19,0x51,0x1f,0x3c,0xb, 0x70,0xbc,0xf7, +0x38,0xee,0x12,0xb9,0xe7,0xe4,0x12,0xb9,0xef,0xe4,0x12,0xc, 0x9b,0x6d,0x33,0x7a, +0x37,0x1f,0x5c,0x7a,0x37,0x1f,0x5e,0x12,0xb9,0xe7,0x74,0x1, 0x12,0xb9,0xef,0x74, +0x1, 0x12,0xc, 0x9b,0xda,0xf8,0x22,0xa9,0xc6,0xea,0x7e,0x8, 0x1f,0x58,0x22,0x12, +0xc, 0x9b,0xa9,0xd6,0xea,0x7e,0x8, 0x1f,0x58,0x22,0x7e,0x34,0x0, 0x1c,0x74,0x3f, +0x2, 0x20,0xde,0x7e,0x8, 0x1f,0x34,0x12,0xb9,0xfa,0x6c,0x77,0x80,0xe, 0x12,0xba, +0x42,0x50,0x7, 0x12,0xba,0x39,0x19,0x51,0x1f,0x34,0xb, 0x70,0x7e,0x53,0x2a,0x6e, +0xbc,0x57,0x38,0xea,0xa9,0xc6,0xea,0x7e,0x8, 0x1f,0x34,0xe4,0x12,0x11,0x38,0xa9, +0xd6,0xea,0x7e,0x8, 0x1f,0x34,0x2, 0x11,0x38,0xa, 0x27,0x9, 0x52,0x2b,0x44,0xa, +0x16,0x22,0xa, 0x27,0x9, 0x62,0x2a,0xdc,0xbe,0x60,0x1c,0x22,0x7c,0x57,0x7c,0xab, +0x6c,0x77,0x80,0x50,0xa, 0x47,0x7e,0x7d,0x24,0x2d,0xf4,0x7e,0x7b,0x60,0xa, 0x46, +0x2e,0x44,0x20,0x73,0x7a,0x91,0x82,0x7a,0x81,0x83,0xe4,0x93,0x7c,0x6b,0xbe,0x60, +0xd, 0x38,0x12,0x7e,0xd4,0x0, 0x1, 0x7c,0xb6,0x60,0x5, 0x3e,0xd4,0x14,0x78,0xfb, +0x7e,0x7d,0x28,0x80,0x15,0x9e,0x60,0xe, 0x7e,0xd4,0x0, 0x1, 0x7c,0xb6,0x60,0x5, +0x3e,0xd4,0x14,0x78,0xfb,0x7e,0x7d,0x28,0xb, 0xf5,0xb, 0x7a,0x40,0x4d,0x4d,0x1b, +0x7a,0x40,0xb, 0x70,0xbc,0x57,0x38,0xac,0x6c,0x77,0x80,0x58,0xa, 0x27,0x7f,0x70, +0x2d,0xf2,0x7e,0x7b,0x60,0xbe,0x60,0xd, 0x38,0x11,0x12,0xbb,0x9, 0x60,0x5, 0x3e, +0x44,0x14,0x78,0xfb,0x7e,0x7d,0x28,0xb, 0xf6,0x80,0x2f,0xbe,0x60,0x1b,0x38,0x16, +0x9e,0x60,0xe, 0x12,0xbb,0x9, 0x60,0x5, 0x3e,0x44,0x14,0x78,0xfb,0x7e,0x7d,0x28, +0x2e,0xf4,0x0, 0x6, 0x80,0x14,0x9e,0x60,0x1c,0x12,0xbb,0x9, 0x60,0x5, 0x3e,0x44, +0x14,0x78,0xfb,0x7e,0x7d,0x28,0x2e,0xf4,0x0, 0x8, 0xb, 0x7a,0x20,0x4d,0x24,0x1b, +0x7a,0x20,0xb, 0x70,0xbc,0xa7,0x38,0xa4,0x22,0x7e,0x44,0x0, 0x1, 0x7c,0xb6,0x22, +0x7e,0x27,0x28,0xa3,0x6d,0x11,0x9d,0x12,0x6c,0xaa,0x80,0x64,0x30,0x0, 0x2e,0x7e, +0x90,0x2, 0xac,0x9a,0x49,0x34,0x5, 0xf8,0x49,0x4, 0x4, 0x0, 0xbd,0x2, 0x8, 0x11, +0x7e,0xb3,0x25,0xf6,0xb4,0x1, 0x16,0x7d,0xf2,0x2d,0xf3,0x59,0xf4,0x5, 0xf8,0x80, +0xc, 0xbd,0x1, 0x58,0x8, 0x7d,0x3, 0x9d,0x2, 0x59,0x4, 0x5, 0xf8,0x30,0x2, 0x2e, +0x7e,0x90,0x2, 0xac,0x9a,0x49,0x34,0x6, 0x76,0x49,0x4, 0x4, 0x7e,0xbd,0x2, 0x8, +0x11,0x7e,0xb3,0x25,0xf6,0xb4,0x1, 0x16,0x7d,0xf2,0x2d,0xf3,0x59,0xf4,0x6, 0x76, +0x80,0xc, 0xbd,0x1, 0x58,0x8, 0x7d,0x3, 0x9d,0x2, 0x59,0x4, 0x6, 0x76,0xb, 0xa0, +0x7e,0xb3,0x2a,0x74,0xa, 0xb, 0x7e,0xb3,0x2a,0x73,0xa, 0x4b,0x2d,0x40,0xa, 0xa, +0xbd,0x4, 0x48,0x88,0x22,0x6c,0x33,0x80,0x9, 0xe4,0xa, 0x33,0x19,0xb3,0x27,0x72, +0xb, 0x30,0x90,0x60,0x9a,0xe4,0x93,0x12,0x77,0xf6,0xb, 0x24,0xa, 0x33,0xbd,0x32, +0x48,0xe7,0xe4,0x7a,0xb3,0x28,0x84,0x7a,0xb3,0x28,0x85,0x6d,0x33,0x7a,0x37,0x28, +0x86,0x7a,0x37,0x28,0x88,0x7a,0x37,0x28,0x8a,0x7a,0x37,0x28,0x8e,0x7e,0xd4,0x1f, +0x36,0x5e,0xd4,0xff,0xfe,0x6d,0xcc,0x7e,0x1f,0x13,0x8a,0x7a,0x37,0x1f,0x76,0x7d, +0x3d,0x7a,0x37,0x1f,0x7a,0x7e,0x34,0x15,0x9e,0x7a,0x37,0x1f,0x78,0x7e,0x73,0x2a, +0x6d,0x7a,0x73,0x1f,0x73,0x7e,0x73,0x2a,0x6e,0x7a,0x73,0x1f,0x72,0x7e,0x37,0x2a, +0x5c,0x7a,0x37,0x1f,0x7c,0x7e,0x37,0x2a,0x5e,0x7a,0x37,0x1f,0x7e,0x7e,0x37,0x2a, +0x60,0x7a,0x37,0x1f,0x80,0x90,0x60,0x9a,0x93,0x7a,0xb3,0x1f,0x74,0x7e,0x73,0x3, +0xff,0x7a,0x73,0x1f,0x75,0x7e,0x8, 0x1f,0x72,0x7e,0x18,0x1f,0x82,0x12,0x8, 0x0, +0x7e,0x73,0x1f,0x82,0x7a,0x73,0x28,0x84,0x7e,0x73,0x1f,0x83,0x7a,0x73,0x28,0x85, +0x7e,0x37,0x1f,0x84,0x7a,0x37,0x28,0x86,0x7e,0x37,0x1f,0x86,0x7a,0x37,0x28,0x88, +0x7e,0x37,0x1f,0x8c,0x7a,0x37,0x28,0x8a,0x7e,0x37,0x1f,0x8e,0x7d,0x23,0x7a,0x53, +0x28,0x8c,0xa, 0x36,0x7a,0x73,0x28,0x8d,0x7e,0x37,0x1f,0x88,0x7a,0x37,0x28,0x8e, +0x7e,0x37,0x1f,0x8a,0x7d,0x23,0x7a,0x53,0x28,0x90,0xa, 0x36,0x7a,0x73,0x28,0x91, +0x6c,0x33,0x80,0x1d,0x7c,0xb3,0x12,0x2f,0xd0,0x74,0x2, 0xac,0xb3,0x49,0x45,0x15, +0x9e,0xa, 0x38,0x7c,0x27,0x19,0x25,0x26,0xfa,0x7c,0x29,0x19,0x25,0x26,0xfb,0xb, +0x30,0x7e,0x23,0x28,0x84,0xbc,0x23,0x38,0xdb,0x6c,0x33,0x80,0x1b,0x74,0x2, 0xac, +0xb3,0x7f,0x16,0x2d,0x35,0xb, 0x1a,0x40,0xa, 0x38,0x7c,0x27,0x19,0x25,0x27,0x36, +0x7c,0x29,0x19,0x25,0x27,0x37,0xb, 0x30,0x7e,0x23,0x28,0x85,0xbc,0x23,0x38,0xdd, +0x22,0x7c,0x7b,0xa, 0x57,0x9e,0x54,0x0, 0x20,0xe, 0x54,0xe, 0x54,0xe, 0x54,0xe, +0x54,0x7c,0xab,0x7c,0x67,0x5e,0x60,0xf0,0xa5,0xbe,0x20,0x1d,0x7c,0xb7,0x54,0xf, +0x7e,0x24,0x0, 0x1, 0x60,0x5, 0x3e,0x24,0x14,0x78,0xfb,0x7e,0x73,0x38,0xfb,0xa, +0x47,0x5d,0x42,0x7e,0x73,0x37,0x32,0x80,0x36,0xa5,0xbe,0x30,0x18,0x12,0xbd,0x44, +0x60,0x5, 0x3e,0x34,0x14,0x78,0xfb,0x7e,0x53,0x38,0xfc,0xa, 0x45,0x5d,0x43,0x7e, +0x73,0x37,0x33,0x80,0x1a,0x12,0xbd,0x44,0x60,0x5, 0x3e,0x34,0x14,0x78,0xfb,0xa, +0x2a,0x9, 0xb2,0x38,0xfb,0xa, 0x4b,0x5d,0x43,0xa, 0x5a,0x9, 0x75,0x37,0x34,0xa, +0x57,0x5d,0x54,0x22,0x7c,0xb7,0x54,0xf, 0x7e,0x34,0x0, 0x1, 0x22,0x7e,0xb3,0x2f, +0x80,0xb4,0x4, 0x2, 0xd3,0x22,0xc3,0x22,0x7d,0xf2,0x7d,0xe3,0x7e,0x8, 0x2f,0x80, +0x7e,0x34,0x0, 0x28,0xe4,0x12,0x20,0xde,0x7e,0x8, 0x2b,0xbf,0x7e,0x34,0x3, 0xc0, +0x12,0x20,0xde,0x7a,0xb3,0x37,0x34,0x7e,0x34,0x62,0x8e,0x12,0x23,0x9e,0x7a,0x37, +0x2b,0xb7,0x7a,0xe7,0x2f,0x84,0x7a,0xf7,0x2f,0x86,0x7a,0xe7,0x2f,0x88,0x7a,0xe7, +0x2f,0x8c,0x7a,0xe7,0x2f,0x90,0x7a,0xe7,0x2f,0x94,0x7a,0xf7,0x2f,0x8a,0x7a,0xf7, +0x2f,0x8e,0x7a,0xf7,0x2f,0x92,0x7a,0xf7,0x2f,0x96,0x7a,0xe7,0x2b,0xbb,0x7a,0xf7, +0x2b,0xbd,0x7a,0xb3,0x2f,0xa8,0x74,0x2, 0x7a,0xb3,0x2f,0x7f,0x22,0x74,0xfe,0x7a, +0xb3,0x37,0x34,0xe4,0x7a,0xb3,0x2f,0x80,0x22,0x7d,0x13,0x3e,0x14,0x3e,0x14,0x3e, +0x14,0x7e,0x37,0x38,0xe2,0x9e,0x37,0x38,0xde,0x12,0x21,0x0, 0xbd,0x31,0x38,0x12, +0x7e,0x37,0x38,0xe4,0x9e,0x37,0x38,0xe0,0x12,0x21,0x0, 0xbd,0x31,0x38,0x3, 0x74, +0x1, 0x22,0xe4,0x22,0xca,0xd8,0xca,0x79,0x6c,0xff,0x6d,0xdd,0x7d,0xed,0x7d,0xfd, +0x7e,0xd3,0x2a,0x2, 0x7e,0xe3,0x2a,0x3, 0x7e,0xb3,0x38,0xdd,0x60,0x11,0x7e,0xc7, +0x38,0xe6,0x4d,0xcc,0x78,0x2, 0xc1,0xe8,0xbe,0xd0,0x1, 0x28,0x2, 0xc1,0xe8,0xbe, +0xd0,0x1, 0x78,0x1d,0xbe,0xb0,0x4, 0x78,0x2, 0xc1,0xe8,0x7e,0xe7,0x29,0x8, 0x7e, +0xf7,0x29,0xa, 0x7d,0x3e,0x7d,0x2f,0x12,0x66,0xe6,0xbe,0xb0,0x1, 0x78,0x2, 0xc1, +0xe8,0x7e,0xa3,0x38,0xdd,0x7c,0xba,0x14,0x68,0x29,0x14,0x68,0x54,0x14,0x68,0x23, +0x14,0x78,0x2, 0xc1,0xe5,0xb, 0xb2,0x68,0x2, 0xc1,0xe8,0xbe,0xd0,0x1, 0x68,0x2, +0xc1,0xf7,0x4c,0xee,0x68,0x2, 0xc1,0xf7,0x74,0x1, 0x7a,0xb3,0x38,0xdd,0x12,0xbf, +0xa, 0x80,0x65,0x4c,0xdd,0x78,0x1d,0xbe,0xa0,0x1, 0x78,0xc, 0x74,0x2, 0x7a,0xb3, +0x38,0xdd,0x7e,0x34,0x62,0x64,0x80,0x54,0x74,0x4, 0x7a,0xb3,0x38,0xdd,0x7e,0x34, +0x62,0x68,0x80,0x48,0x12,0xbf,0x13,0x90,0x62,0x57,0x12,0xbe,0xfe,0x68,0x49,0x80, +0x56,0xbe,0xd0,0x1, 0x78,0x51,0x4c,0xee,0x78,0x4d,0x12,0xbf,0x13,0x7e,0x34,0x62, +0x60,0x12,0x23,0x9e,0x7e,0x14,0x62,0x64,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0xc0,0x9d, +0xc3,0xbe,0xc7,0x38,0xe6,0x40,0x21,0x90,0x62,0x56,0x12,0xbe,0xfe,0x68,0x19,0x12, +0xbf,0xa, 0x74,0x3, 0x7a,0xb3,0x38,0xdd,0x7e,0x34,0x62,0x64,0x12,0x23,0x9e,0x7a, +0x37,0x38,0xe6,0x80,0x12,0x7e,0xf0,0x24,0xe4,0x7a,0xb3,0x38,0xdd,0x6d,0x33,0x7a, +0x37,0x38,0xe6,0x7c,0xbf,0x80,0x2, 0x7c,0xbf,0xda,0x79,0xda,0xd8,0x22,0xe4,0x93, +0xa, 0x3b,0x12,0xbd,0xc9,0xa, 0xdb,0x4d,0xdd,0x22,0x7a,0xe7,0x38,0xde,0x7a,0xf7, +0x38,0xe0,0x22,0x7a,0xe7,0x38,0xe2,0x7a,0xf7,0x38,0xe4,0x22,0xca,0xf8,0x7f,0x51, +0x7f,0x40,0x7e,0x37,0x2f,0x90,0x7a,0x35,0x2a,0x7e,0x37,0x2f,0x8e,0x7a,0x35,0x2c, +0x7e,0x37,0x2f,0x9c,0x7a,0x35,0x26,0x7e,0x37,0x2f,0x9e,0x7a,0x35,0x28,0x6c,0xff, +0x80,0x1e,0x7e,0x34,0x0, 0x26,0x7e,0x14,0x0, 0x2f,0x74,0x9, 0x12,0x1f,0x8c,0x74, +0x2, 0xac,0xbf,0x7f,0x4, 0x2d,0x15,0x7f,0x15,0x2d,0x35,0x12,0xbf,0x6b,0xb, 0xf0, +0x7e,0x73,0x38,0x3f,0xbc,0x7f,0x38,0xda,0xda,0xf8,0x22,0x7f,0x71,0x7f,0x60,0x7e, +0x35,0x2f,0xbe,0x34,0x0, 0x0, 0x38,0x7, 0x7e,0x34,0x0, 0x1, 0x7a,0x35,0x2f,0x7e, +0x35,0x31,0xbe,0x34,0x0, 0x0, 0x38,0x7, 0x7e,0x34,0x0, 0x1, 0x7a,0x35,0x31,0xb, +0x6a,0x30,0x9e,0x35,0x33,0x6d,0x22,0x7e,0x33,0x38,0x41,0x12,0xbf,0xc0,0x7e,0x15, +0x2f,0x12,0x1f,0x5, 0x1b,0x6a,0x30,0xb, 0x7a,0x30,0x9e,0x35,0x35,0x6d,0x22,0x7e, +0x33,0x38,0x42,0x12,0xbf,0xc0,0x7e,0x15,0x31,0x12,0x1f,0x5, 0x1b,0x7a,0x30,0x22, +0xa, 0x13,0x6d,0x0, 0x2, 0x1e,0xeb,0x7a,0x1d,0x24,0x7e,0xa3,0x2a,0x6e,0x74,0x2, +0xa4,0x7e,0xf, 0x6, 0xf8,0x2d,0x15,0x7e,0xb3,0x2a,0x6d,0x7e,0x37,0x2a,0x51,0x22, +0x74,0x1, 0x7a,0xb3,0x37,0xa0,0x7e,0x34,0x60,0xa3,0x22,0x7a,0x1d,0x24,0x7e,0xf, +0x6, 0xf8,0x7e,0xb3,0x2a,0x6e,0x7e,0x37,0x2a,0x53,0x22,0x7e,0xa3,0x2a,0x6e,0x7e, +0xb3,0x2a,0x6d,0xa4,0x22,0x74,0x1, 0x7a,0xb3,0x2b,0x1, 0x7a,0xb3,0x2b,0x1d,0x22, +0x9, 0x75,0x26,0x36,0x7a,0x73,0x2b,0x20,0x22,0x9, 0x75,0x26,0x34,0x7a,0x73,0x2b, +0x14,0x22,0x7e,0x8, 0x2a,0x6d,0x2, 0xd, 0x72,0xa, 0x47,0x7f,0x70,0x2d,0xf4,0x7e, +0x7b,0x60,0xbc,0x6b,0x22,0x6e,0x34,0xff,0xff,0xb, 0x34,0x7a,0x37,0x2a,0x5e,0x22, +0x7e,0x29,0x60,0x4c,0x6a,0x7a,0x29,0x60,0xb, 0x70,0x22,0x2e,0x14,0x1, 0x30,0x6d, +0x0, 0x7e,0x18,0x3, 0x60,0x22,0x2e,0x14,0x0, 0x50,0x6d,0x0, 0x7e,0x18,0x34,0x0, +0x22,0x7e,0x70,0x2, 0xac,0x7c,0x9, 0xb3,0x26,0xfa,0x22,0xe4,0x7a,0xb3,0x36,0x69, +0x7a,0xb3,0x36,0x71,0x22,0x74,0x1, 0x12,0x13,0xde,0xe4,0x2, 0x0, 0x1e,0x7a,0x37, +0x2a,0x4f,0x7e,0x34,0x61,0x57,0x22,0x7a,0x37,0x28,0xa1,0x7e,0x34,0x61,0xc2,0x22, +0x90,0x60,0xaa,0xe4,0x93,0xbe,0xb0,0x1, 0x22,0x9, 0x75,0x26,0x33,0x7a,0x73,0x2b, +0xf, 0x22,0x74,0x5, 0xac,0xbc,0x9, 0xb5,0x26,0x33,0x22,0x7e,0x8, 0x0, 0x25,0x7e, +0x18,0x0, 0x24,0x22,0x7e,0xe3,0x2a,0x6f,0x7e,0xd3,0x2a,0x70,0x22,0x6d,0x33,0xe4, +0x6c,0x55,0x2, 0x13,0x1, 0x7e,0x37,0x25,0xf4,0x7a,0x37,0x31,0xcc,0x22,0x7e,0x34, +0xd, 0xc8,0x7a,0x37,0x31,0xce,0x22,0x7e,0x73,0x37,0xbd,0x7a,0x73,0x2b,0x20,0x22, +0x12,0x0, 0x1e,0x7e,0xb3,0x2a,0xfc,0x22,0x7c,0xbe,0x7c,0x7d,0x2, 0x2c,0x40,0x7e, +0x73,0x28,0x92,0xbe,0x70,0x0, 0x22,0x7e,0xb3,0x28,0xa8,0xbe,0xb0,0x1, 0x22,0x12, +0x0, 0xe, 0x7e,0x1f,0x13,0x86,0x22,0x7e,0xb3,0x37,0x31,0xbe,0xb0,0x1, 0x22,0x7e, +0x73,0x2a,0x2, 0xbe,0x70,0x0, 0x22,0x90,0x60,0xa7,0xe4,0x93,0x7c,0xab,0x22,0xff, +0xc1,0x20,0x3e,0xdf,0x94,0x6b,0x10,0x51, \ No newline at end of file diff --git a/drivers/input/touchscreen/FT5346/ft_app_ic_oufei_ebbg_nt.txt b/drivers/input/touchscreen/FT5346/ft_app_ic_oufei_ebbg_nt.txt new file mode 100644 index 0000000000000..e9262ef468551 --- /dev/null +++ b/drivers/input/touchscreen/FT5346/ft_app_ic_oufei_ebbg_nt.txt @@ -0,0 +1,3091 @@ +0x2, 0x1f,0xd2,0x2, 0xb5,0x8a,0xeb,0xaa,0x8, 0x22,0x22,0x2, 0x0, 0x42,0xb4,0x2, +0x4, 0xa9,0xb7,0xea,0x22,0x24,0xff,0xa9,0x97,0xea,0x22,0x2, 0x70,0x2d,0xb4,0x2, +0x4, 0xa9,0xb6,0xea,0x22,0x24,0xff,0xa9,0x96,0xea,0x22,0x2, 0x7d,0x45,0x7f,0x60, +0xa9,0xc2,0xea,0x74,0x1, 0x12,0x13,0x96,0x7f,0x6, 0x12,0x5, 0xb4,0x7f,0x6, 0x2, +0x9, 0xa1,0x32,0x2, 0x7d,0xa4,0xe4,0x2, 0x29,0xfa,0x22,0x2, 0x0, 0x5a,0x12,0x10, +0xa2,0x2, 0x13,0x79,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x32,0x2, 0x0, 0x76,0x1, 0x2, +0x4, 0x8, 0x10,0x20,0x40,0x80,0xa2,0x13,0x22,0x32,0xff,0x2, 0x0, 0x69,0x2, 0x31, +0xb3,0xff,0xff,0x2, 0x10,0x52,0xca,0x7b,0xca,0x6b,0xca,0x5b,0xca,0x4b,0xca,0x2b, +0xca,0x1b,0xca,0xb, 0xc0,0xd0,0xc0,0x83,0xc0,0x82,0xd2,0xb, 0x7e,0xf, 0x38,0xc8, +0x69,0x30,0x0, 0x4, 0x7a,0x73,0x38,0xd8,0x7e,0x73,0x38,0xd8,0xa, 0x37,0x5e,0x34, +0x0, 0x4, 0x68,0x4, 0xd2,0xa, 0x80,0x2, 0xc2,0xa, 0x7e,0x34,0x0, 0x1f,0x79,0x30, +0x0, 0x4, 0xc2,0xc3,0x12,0x12,0x9e,0x12,0x7f,0x5, 0x7e,0x1f,0x38,0xc8,0x69,0x31, +0x0, 0x2, 0x5e,0x34,0x0, 0x40,0x68,0x2e,0x6c,0xaa,0x7e,0x10,0x2, 0xac,0x1a,0x7e, +0x1f,0x38,0xc8,0x7f,0x71,0x2d,0xf0,0x69,0x17,0x0, 0x9c,0x59,0x10,0x38,0xcc,0xb, +0xa0,0xbe,0xa0,0x3, 0x78,0xe4,0x69,0x11,0x0, 0xa4,0x7a,0x17,0x38,0xd4,0x69,0x31, +0x0, 0xa2,0x7a,0x37,0x38,0xd2,0xa9,0xc1,0xc4,0xd0,0x82,0xd0,0x83,0xd0,0xd0,0xda, +0xb, 0xda,0x1b,0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda,0x7b,0x32,0x7d,0x13, +0x7e,0x1f,0x38,0xf7,0x1b,0x1a,0x10,0xc2,0xc6,0xd2,0xee,0x22,0xff,0xff,0x54,0x2c, +0xca,0x79,0x7f,0x50,0x7c,0xeb,0x7e,0x34,0x0, 0x24,0x7e,0x8, 0x0, 0x2c,0x7e,0x24, +0x0, 0x2, 0x12,0xb7,0x9d,0xe5,0x2c,0xbe,0xb0,0x0, 0x38,0x2, 0x21,0x4a,0xe5,0x2c, +0xbe,0xb0,0x76,0x28,0x2, 0x21,0x4a,0x7e,0xe1,0x2c,0xbe,0xe0,0x76,0x38,0x2, 0x21, +0x78,0x7e,0x34,0x1e,0x45,0x79,0x35,0x0, 0x2, 0x7e,0x34,0x1e,0x29,0x79,0x35,0x0, +0x4, 0xbe,0xe0,0x81,0x68,0x2, 0x21,0x71,0x74,0x23,0x7a,0x5b,0xb0,0x74,0x1c,0x61, +0x84,0x74,0x1, 0x7a,0x5b,0xb0,0x61,0x84,0x7c,0xbe,0x14,0xbe,0xb0,0x75,0x40,0x2, +0x61,0x33,0x7e,0xa0,0x3, 0xa4,0x2e,0x54,0x1, 0x8c,0x89,0x54,0x2, 0x2, 0xfb,0x2, +0x2, 0xfb,0x2, 0x3, 0x33,0x2, 0x2, 0xfb,0x2, 0x3, 0x33,0x2, 0x2, 0xed,0x2, 0x2, +0xfb,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x2, 0xfb,0x2, 0x3, 0x33,0x2, 0x2, 0xfb, +0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x25,0x2, 0x3, 0x33,0x2, 0x3, 0x9, 0x2, +0x2, 0xfb,0x2, 0x3, 0x17,0x2, 0x3, 0x17,0x2, 0x2, 0xfb,0x2, 0x3, 0x33,0x2, 0x3, +0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33, +0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, +0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, +0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33, +0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, +0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, +0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33, +0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, +0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, +0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33, +0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, +0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, +0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33, +0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, +0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, +0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33, +0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, +0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x2, 0xfb,0x41,0xfb,0x7e,0x34,0x1e, +0x45,0x79,0x35,0x0, 0x2, 0x7e,0x34,0x1d,0xe2,0x61,0x3f,0x7e,0x34,0x1e,0x19,0x79, +0x35,0x0, 0x2, 0x7e,0x34,0x1e,0x29,0x61,0x3f,0x7e,0x34,0x1e,0x19,0x79,0x35,0x0, +0x2, 0x7e,0x34,0x1d,0xb2,0x61,0x3f,0x7e,0x34,0x1d,0x96,0x79,0x35,0x0, 0x2, 0x7e, +0x34,0x1d,0xc6,0x61,0x3f,0x7e,0x34,0x1e,0xa, 0x79,0x35,0x0, 0x2, 0x7e,0x34,0x1d, +0xf1,0x61,0x3f,0x7e,0x34,0x1e,0x45,0x79,0x35,0x0, 0x2, 0x7e,0x34,0x1e,0x29,0x79, +0x35,0x0, 0x4, 0xbe,0xe0,0x16,0x28,0x2, 0x61,0x4e,0x7c,0xfe,0x61,0x62,0x7e,0xf0, +0x16,0xbe,0xe0,0x72,0x50,0x2, 0x61,0x62,0xa, 0x3e,0x9e,0x34,0x0, 0x72,0xb, 0x34, +0x2c,0xf7,0x7e,0x70,0x3, 0xac,0x7f,0x7d,0x23,0x2e,0x24,0x1e,0x69,0x7a,0x51,0x82, +0x7a,0x41,0x83,0xe4,0x93,0x7a,0x5b,0xb0,0x2e,0x34,0x1e,0x6a,0x7a,0x71,0x82,0x7a, +0x61,0x83,0xe4,0x93,0x39,0xb5,0x0, 0x1, 0xda,0x79,0x22,0xca,0x3b,0x7f,0x30,0x74, +0x1, 0x12,0x13,0xde,0x29,0x73,0x0, 0xf3,0x2e,0x70,0xff,0x92,0x4, 0x29,0xb3,0x0, +0xf4,0x12,0x13,0xaf,0x7f,0x3, 0x12,0xd, 0x72,0x7f,0x3, 0x12,0x6, 0xba,0x29,0x73, +0x0, 0xa, 0xa, 0x37,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x24,0x29,0x73,0x0, 0xa3, +0xa, 0x27,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24, +0x69,0x33,0x0, 0xff,0x4d,0x32,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x2, 0x29,0x73, +0x0, 0xa, 0xa, 0x47,0x29,0x73,0x0, 0x5, 0xa, 0x57,0x9d,0x54,0xf5,0x35,0x29,0xb3, +0x0, 0xa5,0x70,0xb, 0x29,0xb3,0x0, 0xf8,0x29,0x73,0x0, 0xf7,0x12,0xb, 0xad,0x29, +0x73,0x0, 0xa5,0x2e,0x70,0xff,0x92,0x4, 0xe5,0x35,0x12,0xb, 0x1e,0x69,0x33,0x0, +0xfd,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x28,0x69,0x23,0x0, 0xfb,0x3e,0x24,0x3e, +0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x29,0x73,0x0, 0xfa,0xa, 0x37,0x2d, +0x32,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x2a,0x29,0x73,0x0, 0xf9,0xa, 0x37,0x7e, +0xf, 0x38,0xc8,0x79,0x30,0x0, 0x2c,0x7e,0x34,0x0, 0x1, 0x7e,0xf, 0x38,0xc8,0x79, +0x30,0x0, 0x34,0x7e,0x34,0x1, 0xb, 0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x2e,0x29, +0x73,0x0, 0x5, 0xa, 0x37,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x10,0x69,0x33,0x0, +0xa8,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x1c,0x69,0x33,0x0, 0xaa,0x7e,0xf, 0x38, +0xc8,0x79,0x30,0x0, 0x1e,0x6c,0xaa,0x7e,0x50,0x2, 0xac,0x5a,0x69,0x13,0x1, 0x1, +0x2d,0x12,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0x30,0x7e,0xf, 0x38,0xc8,0x2d,0x12,0x79, +0x30,0x0, 0x44,0xb, 0xa0,0xbe,0xa0,0xc, 0x40,0xdd,0xda,0x3b,0x22,0xca,0xf8,0x7f, +0x70,0x7e,0x7b,0xf0,0x29,0x77,0x0, 0x1, 0xbc,0x7f,0x28,0x2, 0x7c,0xf7,0x69,0x17, +0x0, 0x6, 0x6d,0x0, 0x7e,0x34,0x0, 0xf2,0x74,0xff,0x12,0x20,0xde,0x7f,0x7, 0x12, +0xe, 0xed,0xa9,0xd6,0xcb,0x6c,0xaa,0x80,0x2d,0x6c,0x77,0x80,0x1f,0x7e,0x10,0xb, +0xac,0x1a,0xa, 0x17,0x2d,0x1, 0x3e,0x4, 0x69,0x17,0x0, 0x6, 0x2d,0x10,0x6d,0x0, +0xb, 0xa, 0x20,0x6e,0x24,0xff,0xff,0x1b,0xa, 0x20,0xb, 0x70,0x29,0x67,0x0, 0x1, +0xbc,0x67,0x38,0xd9,0xb, 0xa0,0x7e,0x7b,0x60,0xbc,0x6a,0x38,0xcc,0x69,0x37,0x0, +0x6, 0x7e,0xf, 0x39,0xd, 0x79,0x30,0x0, 0x4, 0x7c,0x4f,0x6c,0x55,0xa, 0x3f,0x2d, +0x32,0x7e,0xf, 0x39,0xd, 0x79,0x30,0x0, 0xc, 0x6d,0x11,0x7e,0x1f,0x39,0xd, 0x1b, +0x1a,0x10,0x7e,0x34,0x0, 0xd0,0x12,0xf, 0x45,0x6c,0xaa,0xbe,0xa0,0x4, 0x50,0x18, +0x7e,0x70,0x4, 0xac,0x7a,0x7c,0xb7,0x7e,0x1f,0x39,0xd, 0x69,0x41,0x0, 0x26,0x60, +0x42,0x1e,0x44,0x14,0x78,0xfb,0x80,0x3b,0xbe,0xa0,0x8, 0x50,0x1b,0xa, 0x3a,0x1b, +0x36,0x3e,0x34,0x3e,0x34,0x7c,0xb7,0x7e,0x1f,0x39,0xd, 0x69,0x41,0x0, 0x28,0x60, +0x22,0x1e,0x44,0x14,0x78,0xfb,0x80,0x1b,0xa, 0x3a,0x9e,0x34,0x0, 0x8, 0x3e,0x34, +0x3e,0x34,0x7c,0xb7,0x7e,0x1f,0x39,0xd, 0x69,0x41,0x0, 0x2a,0x60,0x5, 0x1e,0x44, +0x14,0x78,0xfb,0x5e,0x44,0x0, 0xf, 0x7e,0x50,0x2, 0xac,0x5a,0x69,0x37,0x0, 0x6, +0x2d,0x32,0x6d,0x22,0x1b,0x1a,0x40,0xb, 0xa0,0xbe,0xa0,0xb, 0x40,0x8d,0xa9,0xc6, +0xcb,0xda,0xf8,0x22,0x29,0x70,0x0, 0x96,0x29,0x90,0x0, 0x98,0x29,0x60,0x0, 0x97, +0x29,0x80,0x0, 0x8d,0xbe,0x80,0x4, 0x38,0x4, 0x6c,0xaa,0x80,0x21,0xbe,0x80,0x8, +0x38,0x5, 0x7e,0xa0,0x1, 0x80,0x17,0xbe,0x80,0x10,0x38,0x5, 0x7e,0xa0,0x2, 0x80, +0xd, 0xbe,0x80,0x20,0x38,0x5, 0x7e,0xa0,0x3, 0x80,0x3, 0x7e,0xa0,0x4, 0xbe,0x90, +0x3, 0x28,0x3, 0x7e,0x90,0x3, 0xbe,0x80,0x3f,0x28,0x3, 0x7e,0x80,0x3f,0xbe,0x60, +0x1, 0x28,0x3, 0x7e,0x60,0x1, 0xbe,0x70,0x2, 0x28,0x2, 0x6c,0x77,0xa, 0x28,0x3e, +0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x7c,0x89,0x6c,0x99,0x3e,0x44,0x3e, +0x44,0x3e,0x44,0x2d,0x42,0xa, 0x26,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x2d, +0x24,0xa, 0x37,0x3e,0x34,0x3e,0x34,0x2d,0x32,0x7e,0x7f,0x38,0xf7,0x79,0x37,0x0, +0x2, 0x29,0xb0,0x0, 0x8c,0x7c,0x4b,0x6c,0x55,0x29,0xb0,0x0, 0x8b,0xa, 0x3b,0x2d, +0x32,0x7e,0x7f,0x38,0xc0,0x79,0x37,0x0, 0x80,0x69,0x30,0x0, 0xa0,0x7e,0x7f,0x38, +0xf7,0x79,0x37,0x0, 0xc, 0x69,0x30,0x0, 0x9e,0x5e,0x34,0xe0,0xf, 0x29,0xb0,0x0, +0x8c,0xa, 0x2b,0x1b,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x2d,0x32,0x7e, +0x7f,0x38,0xc0,0x79,0x37,0x0, 0x82,0xa, 0x2a,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e, +0x24,0x29,0xb0,0x0, 0x99,0xa, 0x3b,0x2d,0x32,0x7e,0x7f,0x38,0xf7,0x79,0x37,0x0, +0x6, 0x69,0x30,0x0, 0x9c,0x7e,0x7f,0x38,0xf7,0x79,0x37,0x0, 0x8, 0x69,0x30,0x0, +0x9a,0x7e,0xf, 0x38,0xf7,0x79,0x30,0x0, 0xa, 0x22,0x7f,0x60,0x74,0x1, 0x12,0x13, +0xde,0x29,0x36,0x0, 0xf5,0x29,0x26,0x0, 0xa3,0x29,0x16,0x0, 0xa4,0xbe,0x20,0x2, +0x28,0x3, 0x7e,0x20,0x2, 0xbe,0x10,0x40,0x28,0x3, 0x7e,0x10,0x40,0x7e,0x34,0x0, +0x4, 0x7c,0xb2,0x60,0x5, 0x3e,0x34,0x14,0x78,0xfb,0x7c,0x7, 0xa, 0x31,0x7e,0x2f, +0x38,0xc8,0x79,0x32,0x0, 0x12,0x7c,0x73,0xac,0x70,0xa, 0x21,0x12,0x1e,0xb9,0x7c, +0x27,0xa, 0x32,0x7e,0x2f,0x38,0xc8,0x79,0x32,0x0, 0x14,0x7c,0x73,0xac,0x70,0x29, +0x26,0x0, 0xf6,0xa, 0x22,0xad,0x32,0xa, 0x21,0x8d,0x32,0x7d,0x43,0x7c,0x73,0xac, +0x70,0xa, 0x21,0x12,0x1e,0xb9,0x7c,0xa7,0x7c,0x2a,0x7c,0xb9,0x2c,0xab,0xbe,0xa0, +0xc, 0x50,0x3, 0x7e,0xa0,0xc, 0xbe,0x20,0xc, 0x50,0x3, 0x7e,0x20,0xc, 0xa, 0x20, +0xa, 0x31,0x12,0x1e,0xb9,0x7d,0xe3,0xa, 0x3a,0xb, 0x34,0xad,0x3e,0xb, 0x34,0xbe, +0x34,0x2, 0x0, 0x40,0x4, 0x7e,0x34,0x1, 0xff,0x29,0x46,0x0, 0xf7,0x7e,0x50,0x2, +0xac,0x45,0xa, 0xf2,0xad,0xfe,0x2d,0x2f,0xb, 0x24,0xbe,0x24,0x2, 0x0, 0x40,0x4, +0x7e,0x24,0x1, 0xff,0xa, 0x13,0x7e,0x7f,0x38,0xc8,0x79,0x17,0x0, 0xa, 0x1e,0x24, +0x7c,0x45,0x6c,0x55,0x1e,0x34,0x2d,0x32,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0xc, +0xa, 0x3a,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x22,0x22,0xa9,0xd6,0xcb,0x69,0x30, +0x0, 0x4, 0x7e,0x2f,0x39,0xd, 0x79,0x32,0x0, 0x4, 0x69,0x30,0x0, 0x6, 0x7e,0x2f, +0x39,0xd, 0x79,0x32,0x0, 0x6, 0x69,0x30,0x0, 0x8, 0x7e,0x2f,0x39,0xd, 0x79,0x32, +0x0, 0x8, 0x7e,0xb, 0x70,0x7c,0x47,0x6c,0x55,0x29,0x70,0x0, 0x1, 0xa, 0x37,0x2d, +0x32,0x7e,0x2f,0x39,0xd, 0x79,0x32,0x0, 0xc, 0x29,0x70,0x0, 0x2, 0xa, 0x37,0x7e, +0xf, 0x39,0xd, 0x79,0x30,0x0, 0xe, 0x6d,0x11,0x7e,0x1f,0x39,0xd, 0x1b,0x1a,0x10, +0x7e,0x34,0x0, 0xe0,0x12,0xf, 0x45,0xa9,0xc6,0xcb,0x22,0xb2,0x86,0x22,0xff,0xff, +0x7f,0x21,0xa9,0xd6,0xcb,0x69,0x30,0x0, 0x4, 0x7e,0x7f,0x39,0xd, 0x79,0x37,0x0, +0x4, 0x69,0x30,0x0, 0x8, 0x7e,0x7f,0x39,0xd, 0x79,0x37,0x0, 0x6, 0x69,0x30,0x0, +0x6, 0x7e,0x7f,0x39,0xd, 0x79,0x37,0x0, 0x8, 0x29,0x70,0x0, 0x1, 0x7c,0x47,0x6c, +0x55,0x7e,0xb, 0x70,0xa, 0x37,0x2d,0x32,0x7e,0x7f,0x39,0xd, 0x79,0x37,0x0, 0xc, +0x29,0x70,0x0, 0x2, 0xa, 0x37,0x1b,0x34,0x7e,0x7f,0x39,0xd, 0x79,0x37,0x0, 0xa, +0x69,0x30,0x0, 0xa, 0x7e,0x7f,0x39,0xd, 0x79,0x37,0x0, 0xe, 0x69,0x30,0x0, 0xc, +0x7e,0x7f,0x39,0xd, 0x79,0x37,0x0, 0x10,0x69,0x30,0x0, 0xe, 0x7e,0x7f,0x39,0xd, +0x79,0x37,0x0, 0x12,0x29,0x70,0x0, 0x3, 0x7c,0x27,0x6c,0x33,0x7e,0x1f,0x39,0xd, +0x1b,0x1a,0x10,0x7e,0x34,0x0, 0xa0,0x12,0xf, 0x45,0x7e,0x1f,0x39,0xd, 0x69,0x11, +0x0, 0x1a,0x7a,0x2b,0x30,0x69,0x11,0x0, 0x1c,0x39,0x32,0x0, 0x1, 0x69,0x11,0x0, +0x16,0x79,0x12,0x0, 0x2, 0x69,0x11,0x0, 0x18,0x79,0x12,0x0, 0x4, 0x69,0x11,0x0, +0x22,0x79,0x12,0x0, 0x6, 0x69,0x11,0x0, 0x24,0x79,0x12,0x0, 0x8, 0x69,0x11,0x0, +0x1e,0x79,0x12,0x0, 0xa, 0x69,0x31,0x0, 0x20,0x79,0x32,0x0, 0xc, 0xa9,0xc6,0xcb, +0x22,0xca,0x3b,0x7c,0x57,0x7c,0x4b,0x5e,0x40,0x3, 0x69,0x30,0x0, 0x4, 0x5e,0x60, +0x3f,0x6c,0xaa,0xa, 0x4a,0x69,0xf0,0x0, 0xa, 0x69,0xe0,0x0, 0x8, 0x2d,0xf4,0x7e, +0x7b,0xb0,0xa, 0xfb,0x7d,0x4f,0x7c,0x89,0x6c,0x99,0x7d,0xf4,0xa, 0xea,0x69,0xd0, +0x0, 0xe, 0x69,0xc0,0x0, 0xc, 0x2d,0xde,0x7e,0x6b,0xb0,0xa, 0x4b,0x2d,0x4f,0x7e, +0xd0,0x28,0xac,0xd5,0x7e,0xf0,0x2, 0xac,0xfa,0x7d,0xd7,0x2d,0xd6,0x7e,0xf0,0xf0, +0xac,0xf4,0x2d,0xd7,0x7e,0x7f,0x38,0xf3,0x2d,0xfd,0x79,0x47,0x1, 0x8c,0xb, 0xa0, +0xbe,0xa0,0xe, 0x78,0xae,0x6c,0xaa,0x7e,0x90,0x2, 0xac,0x9a,0x69,0xf0,0x0, 0x2, +0xb, 0xa, 0xe0,0x2d,0xf4,0xb, 0x7a,0x40,0x7e,0xd0,0x28,0xac,0xd5,0x7e,0xf0,0x2, +0xac,0xfa,0x7d,0xd7,0x2d,0xd6,0x7e,0xf0,0xf0,0xac,0xf4,0x2d,0xd7,0x7e,0x7f,0x38, +0xf3,0x2d,0xfd,0x79,0x47,0x1, 0x80,0xb, 0xa0,0xbe,0xa0,0x4, 0x40,0xc9,0x7e,0x90, +0xf0,0xac,0x94,0x74,0x28,0xac,0xb5,0x7d,0xf5,0x2d,0xf4,0x7e,0x2f,0x38,0xf3,0x2d, +0x5f,0x79,0x32,0x1, 0x88,0x69,0x30,0x0, 0x6, 0x7e,0x30,0xf0,0xac,0x34,0x74,0x28, +0xac,0x5b,0x2d,0x21,0x7e,0xf, 0x38,0xf3,0x2d,0x12,0x79,0x30,0x1, 0x8a,0xda,0x3b, +0x22,0x29,0x60,0x0, 0xb, 0xa, 0x46,0x29,0x60,0x0, 0x4, 0xa, 0x26,0x2d,0x24,0x7c, +0x65,0x29,0xb0,0x0, 0x6, 0xbc,0xb6,0x28,0x2, 0x7c,0x6b,0x29,0x70,0x0, 0x5, 0x29, +0xb0,0x0, 0x7, 0xbc,0xb7,0x28,0x2, 0x7c,0x7b,0x6c,0xaa,0x6d,0x22,0x7e,0x90,0x2, +0xac,0x9a,0x7e,0x7f,0x38,0xc0,0x2d,0xf4,0x79,0x27,0x0, 0x2, 0xb, 0xa0,0xbe,0xa0, +0x23,0x78,0xea,0x6c,0xaa,0x80,0x55,0xa, 0x2a,0x7f,0x70,0x2d,0xf2,0x29,0x57,0x0, +0x4c,0xbe,0x50,0x23,0x50,0x23,0x29,0x47,0x0, 0xb4,0xa, 0xd4,0x7d,0x4d,0x7c,0x89, +0x6c,0x99,0x7d,0xd4,0x7e,0x90,0x2, 0xac,0x95,0x7e,0x7f,0x38,0xc0,0x2d,0xf4,0xb, +0xf5,0xb, 0x7a,0x40,0x4d,0x4d,0x1b,0x7a,0x40,0xa, 0x4a,0x7f,0x70,0x2d,0xf4,0x29, +0x47,0x0, 0x4c,0xa, 0xd4,0x7e,0x90,0x2, 0xac,0x9a,0x7e,0x7f,0x38,0xc0,0x2d,0xf4, +0xb, 0xf5,0xb, 0x7a,0x40,0x4d,0x4d,0x1b,0x7a,0x40,0xb, 0xa0,0xbc,0x6a,0x38,0xa7, +0x6c,0xaa,0x80,0x1d,0xa, 0x2a,0x7f,0x70,0x2d,0xf2,0x29,0x67,0x0, 0x6f,0xa, 0x46, +0x7e,0x50,0x2, 0xac,0x5a,0x7e,0x7f,0x38,0xc0,0x2d,0xf2,0x79,0x47,0x0, 0x48,0xb, +0xa0,0xbc,0x7a,0x38,0xdf,0x22,0x7c,0x7b,0x7e,0x7f,0x38,0xc8,0x69,0x47,0x0, 0xc, +0x6c,0x88,0x3e,0x44,0x69,0x7, 0x0, 0xa, 0x69,0x57,0x0, 0x2, 0x1e,0x54,0x1e,0x54, +0x1e,0x54,0x1e,0x54,0x1e,0x54,0x1e,0x54,0x1e,0x54,0x5e,0x54,0x0, 0x3, 0x7e,0x14, +0x0, 0x4, 0x70,0x2, 0x41,0x9b,0x3e,0x14,0x14,0x78,0xfb,0x7c,0xa3,0xa, 0xda,0xad, +0xd0,0x7d,0xcd,0x6d,0x11,0x79,0x17,0x0, 0x8c,0x7c,0xb7,0x70,0x2, 0x41,0xb4,0x1e, +0xd4,0x14,0x78,0xfb,0xbe,0xd4,0x1, 0x0, 0x38,0x2, 0x41,0xc2,0x7e,0xd4,0x1, 0x0, +0x41,0xce,0xbe,0xd4,0x0, 0x10,0x40,0x2, 0x41,0xce,0x7e,0xd4,0x0, 0x10,0x7d,0x3d, +0x12,0x12,0x6a,0xa, 0x1b,0x7e,0x1f,0x38,0xc8,0x79,0x11,0x0, 0x90,0x7e,0x1f,0x38, +0xc8,0x79,0xd1,0x0, 0x8e,0x7e,0x7f,0x38,0xc8,0x69,0x37,0x0, 0x8, 0xad,0x3c,0x8d, +0x3d,0x79,0x37,0x0, 0x92,0x7e,0x14,0x0, 0x6, 0x7e,0x1f,0x38,0xc8,0x79,0x11,0x0, +0x94,0x7d,0x24,0x9d,0x20,0xa, 0x3a,0xad,0x32,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, +0x96,0x7e,0x34,0x0, 0x10,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x98,0x22,0x7c,0x5b, +0x7e,0xf, 0x38,0xc8,0x69,0x40,0x0, 0x22,0x30,0x4, 0x6b,0x6d,0xff,0x7d,0x3f,0xbe, +0x50,0x10,0x28,0x2e,0x7e,0x54,0xff,0xff,0x79,0x50,0x0, 0x42,0x9e,0x50,0x10,0x6c, +0xaa,0x80,0x11,0x7e,0xe4,0x0, 0x1, 0x7c,0xba,0x60,0x5, 0x3e,0xe4,0x14,0x78,0xfb, +0x2d,0x3e,0xb, 0xa0,0xbc,0x5a,0x38,0xeb,0x7e,0x6f,0x38,0xc8,0x79,0x36,0x0, 0x40, +0x80,0x25,0x79,0xf0,0x0, 0x40,0x6c,0xaa,0x80,0x11,0x7e,0xf4,0x0, 0x1, 0x7c,0xba, +0x60,0x5, 0x3e,0xf4,0x14,0x78,0xfb,0x2d,0x3f,0xb, 0xa0,0xbc,0x5a,0x38,0xeb,0x7e, +0x7f,0x38,0xc8,0x79,0x37,0x0, 0x42,0x7d,0x34,0x2e,0x34,0x0, 0xc, 0x7e,0x7f,0x38, +0xc8,0x79,0x37,0x0, 0x16,0x22,0x6d,0x33,0x79,0x30,0x0, 0x40,0x7e,0xf, 0x38,0xc8, +0x79,0x30,0x0, 0x42,0x7e,0x1f,0x38,0xc8,0x79,0x41,0x0, 0x16,0x22,0x7c,0x17,0x7c, +0x3b,0x6d,0x33,0x7e,0x2f,0x38,0xc8,0x79,0x32,0x0, 0x40,0x7e,0x2f,0x38,0xc8,0x79, +0x32,0x0, 0x42,0x7e,0x7f,0x38,0xc8,0x69,0x57,0x0, 0x12,0x7c,0xab,0x69,0x37,0x0, +0x2, 0x1e,0x34,0x1e,0x34,0x1e,0x34,0x1e,0x34,0x1e,0x34,0x1e,0x34,0x1e,0x34,0x5e, +0x34,0x0, 0x3, 0x7c,0xb7,0x7e,0x44,0x0, 0x4, 0x60,0x5, 0x3e,0x44,0x14,0x78,0xfb, +0x7c,0x29,0xa, 0x22,0xa, 0x3a,0x12,0x1e,0xb9,0xa, 0x23,0x2d,0x32,0x7c,0xb7,0x7c, +0x61,0x6c,0x77,0xa, 0xb, 0x1e,0x4, 0x2d,0x3, 0x79,0x7, 0x0, 0xc, 0x7c,0x73,0xac, +0x72,0xa, 0x2a,0x12,0x1e,0xb9,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x16,0x6d,0x33, +0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x22,0x22,0xa9,0xd6,0xcb,0x69,0x30,0x0, 0x6, +0x7e,0x2f,0x39,0xd, 0x79,0x32,0x0, 0x4, 0x69,0x30,0x0, 0x8, 0x7e,0x2f,0x39,0xd, +0x79,0x32,0x0, 0x8, 0x29,0x70,0x0, 0x2, 0x7c,0x47,0x6c,0x55,0x29,0x70,0x0, 0x3, +0xa, 0x37,0x2d,0x32,0x7e,0x2f,0x39,0xd, 0x79,0x32,0x0, 0xc, 0x7e,0xb, 0x70,0x7c, +0x47,0x29,0x70,0x0, 0x1, 0xa, 0x37,0x2d,0x32,0x7e,0x2f,0x39,0xd, 0x79,0x32,0x0, +0xa, 0x29,0x70,0x0, 0x4, 0xa, 0x37,0x7e,0x2f,0x39,0xd, 0x79,0x32,0x0, 0xe, 0x29, +0xb0,0x0, 0x5, 0x54,0x1, 0x7c,0x2b,0x6c,0x33,0x7e,0x1f,0x39,0xd, 0x1b,0x1a,0x10, +0x7e,0x34,0x0, 0xc0,0x12,0xf, 0x45,0xa9,0xc6,0xcb,0x22,0xca,0x79,0x7c,0xab,0x5e, +0xa0,0x3, 0x6c,0x77,0x7e,0x50,0x2, 0xac,0x57,0x69,0xd0,0x0, 0xe, 0x69,0xc0,0x0, +0xc, 0x2d,0xd2,0x29,0x66,0x0, 0x1, 0xa, 0xf6,0x7d,0x4f,0x7c,0x89,0x6c,0x99,0x7d, +0xf4,0x7e,0x6b,0x60,0xa, 0x46,0x2d,0x4f,0x7e,0xf0,0xf0,0xac,0xfa,0x2d,0x27,0x7e, +0x7f,0x38,0xf3,0x2d,0xf2,0x79,0x47,0x2, 0x54,0xb, 0x70,0xbe,0x70,0xe, 0x40,0xc4, +0x69,0x40,0x0, 0x4, 0x7e,0xf0,0xf0,0xac,0xfa,0x7e,0x1f,0x38,0xf3,0x2d,0x37,0x79, +0x41,0x2, 0x50,0x69,0x30,0x0, 0x6, 0x74,0xf0,0xa4,0x7e,0xf, 0x38,0xf3,0x2d,0x15, +0x79,0x30,0x2, 0x52,0xda,0x79,0x22,0xa9,0xd6,0xcb,0xc2,0x19,0x69,0x30,0x0, 0x4, +0x7e,0x2f,0x39,0xd, 0x79,0x32,0x0, 0x4, 0x69,0x30,0x0, 0x6, 0x7e,0x2f,0x39,0xd, +0x79,0x32,0x0, 0x6, 0x69,0x30,0x0, 0x8, 0x7e,0x2f,0x39,0xd, 0x79,0x32,0x0, 0x8, +0x7e,0xb, 0x70,0x7c,0x47,0x6c,0x55,0x29,0x70,0x0, 0x1, 0xa, 0x37,0x2d,0x32,0x7e, +0x2f,0x39,0xd, 0x79,0x32,0x0, 0xc, 0x29,0x70,0x0, 0x2, 0xa, 0x37,0x7e,0x2f,0x39, +0xd, 0x79,0x32,0x0, 0xe, 0x29,0xb0,0x0, 0x3, 0x54,0x1, 0xa, 0x5b,0x7c,0xab,0xe4, +0x7e,0x1f,0x39,0xd, 0x1b,0x1a,0x50,0x69,0x30,0x0, 0xa, 0x12,0xf, 0x45,0xa9,0xc6, +0xcb,0x22,0x69,0x30,0x0, 0xae,0x7e,0x2f,0x38,0xc8,0x79,0x32,0x0, 0x6, 0x29,0x50, +0x0, 0xa6,0xa, 0x55,0x7d,0x23,0x1e,0x24,0x9d,0x25,0x7e,0x2f,0x38,0xc8,0x79,0x22, +0x0, 0x18,0x7d,0x23,0x1e,0x24,0x1b,0x25,0x7e,0x2f,0x38,0xc8,0x79,0x22,0x0, 0x38, +0x69,0x20,0x0, 0xfd,0x1e,0x34,0x9d,0x32,0x9e,0x34,0x0, 0xa, 0x7e,0x2f,0x38,0xc8, +0x79,0x32,0x0, 0x26,0x29,0x70,0x0, 0xa7,0xa, 0x37,0x7e,0x2f,0x38,0xc8,0x79,0x32, +0x0, 0x1a,0x29,0x70,0x0, 0xb, 0xa, 0x27,0x29,0x70,0x0, 0x4, 0x2d,0x32,0x7e,0x2f, +0x38,0xc8,0x79,0x32,0x0, 0x8, 0x2, 0x9, 0xa1,0xca,0x3b,0xf5,0x24,0x7f,0x41,0x7f, +0x30,0xe5,0x25,0x7e,0x8, 0x0, 0x26,0x12,0x1, 0x20,0xe5,0x24,0xbe,0xb0,0x23,0x28, +0x3, 0x75,0x24,0x23,0x6c,0xaa,0x80,0x36,0xa, 0x3a,0x2d,0x39,0x7d,0x28,0x7e,0x1b, +0xb0,0xbe,0xb1,0x26,0x40,0xd, 0x74,0x23,0xa, 0x4a,0x7f,0x3, 0x2d,0x14,0x7a,0xb, +0xb0,0x80,0x19,0x7e,0x1b,0xb0,0xa, 0x3b,0x2e,0x35,0x28,0x7a,0x71,0x82,0x7a,0x61, +0x83,0xe4,0x93,0xa, 0x4a,0x7f,0x13,0x2d,0x34,0x7a,0x1b,0xb0,0xb, 0xa0,0xe5,0x24, +0xbc,0xba,0x38,0xc4,0xda,0x3b,0x22,0xa9,0xd6,0xcb,0x69,0x20,0x0, 0x4, 0x7e,0x2f, +0x39,0xd, 0x79,0x22,0x0, 0x4, 0x69,0x20,0x0, 0x8, 0x7e,0x2f,0x39,0xd, 0x79,0x22, +0x0, 0x8, 0x7e,0xb, 0x50,0xa, 0x55,0x7c,0xab,0xe4,0x29,0x50,0x0, 0x1, 0xa, 0x25, +0x2d,0x25,0x7e,0x2f,0x39,0xd, 0x79,0x22,0x0, 0xc, 0x29,0x50,0x0, 0x2, 0xa, 0x25, +0x7e,0xf, 0x39,0xd, 0x79,0x20,0x0, 0xe, 0x7e,0xf, 0x39,0xd, 0x79,0x30,0x0, 0xa, +0x6d,0x11,0x7e,0x1f,0x39,0xd, 0x1b,0x1a,0x10,0x7e,0x34,0x0, 0x40,0x12,0xf, 0x45, +0xa9,0xc6,0xcb,0x22,0x7c,0xab,0x7e,0x34,0x0, 0x1, 0x7e,0xf, 0x38,0xf7,0x79,0x30, +0x0, 0xe, 0xc2,0x18,0xe4,0x7a,0xb3,0x38,0xf2,0x5e,0xa0,0x3, 0xa, 0x1a,0x3e,0x14, +0x7e,0x1f,0x38,0xc0,0x1b,0x1a,0x10,0x7e,0xf, 0x38,0xc0,0x2e,0x14,0x0, 0x84,0xb, +0xa, 0x30,0x4e,0x70,0x20,0x1b,0xa, 0x30,0x74,0x1, 0x12,0x13,0x56,0x7e,0xf, 0x38, +0xf7,0xb, 0xa, 0x30,0x4e,0x70,0xc, 0x1b,0xa, 0x30,0xa9,0xd3,0xcd,0x7e,0xf, 0x38, +0xf7,0xb, 0x15,0xb, 0xa, 0x30,0x4e,0x70,0x1, 0x1b,0xa, 0x30,0x22,0x7f,0x10,0xa9, +0xd6,0xcb,0x69,0x11,0x0, 0x2, 0x7e,0x2f,0x39,0xd, 0x79,0x12,0x0, 0x4, 0x69,0x11, +0x0, 0x4, 0x7e,0x2f,0x39,0xd, 0x79,0x12,0x0, 0x6, 0x69,0x11,0x0, 0x6, 0x7e,0x2f, +0x39,0xd, 0x79,0x12,0x0, 0x8, 0x7e,0x1b,0x30,0xa, 0x3, 0x7e,0x14,0x1, 0x0, 0xad, +0x10,0x29,0x71,0x0, 0x1, 0xa, 0x37,0x2d,0x31,0x7e,0xf, 0x39,0xd, 0x79,0x30,0x0, +0xc, 0x6d,0x11,0x7e,0x1f,0x39,0xd, 0x1b,0x1a,0x10,0x7e,0x34,0x0, 0x60,0x12,0xf, +0x45,0xa9,0xc6,0xcb,0x22,0xa9,0xd7,0xcb,0x7d,0x23,0x4e,0x50,0x1, 0x7e,0xf, 0x39, +0xd, 0xb, 0xa, 0x30,0x4d,0x32,0x1b,0xa, 0x30,0x80,0x1e,0x7e,0xf, 0x39,0xd, 0xb, +0xa, 0x30,0x7d,0x23,0x5e,0x24,0x0, 0x8, 0xbe,0x24,0x0, 0x8, 0x78,0xb, 0xa9,0xd7, +0xcb,0x4e,0x70,0x4, 0x1b,0xa, 0x30,0xd2,0x19,0x7e,0xf, 0x39,0xd, 0xb, 0xa, 0x30, +0x7d,0x23,0x5e,0x24,0x80,0x0, 0xbe,0x24,0x80,0x0, 0x78,0xcf,0x4e,0x60,0x40,0x1b, +0xa, 0x30,0x6d,0x11,0x7e,0x1f,0x39,0xd, 0x1b,0x1a,0x10,0x22,0xca,0x3b,0xf5,0x24, +0x7f,0x41,0x7f,0x30,0xe5,0x25,0x7e,0x8, 0x0, 0x26,0x12,0x1, 0x20,0x6c,0xaa,0x80, +0x36,0xa, 0x3a,0x2d,0x39,0x7d,0x28,0x7e,0x1b,0xb0,0xbe,0xb1,0x27,0x40,0xd, 0x74, +0x1c,0xa, 0x4a,0x7f,0x3, 0x2d,0x14,0x7a,0xb, 0xb0,0x80,0x19,0x7e,0x1b,0xb0,0xa, +0x3b,0x2e,0x35,0x2a,0x7a,0x71,0x82,0x7a,0x61,0x83,0xe4,0x93,0xa, 0x4a,0x7f,0x13, +0x2d,0x34,0x7a,0x1b,0xb0,0xb, 0xa0,0xe5,0x24,0xbc,0xba,0x38,0xc4,0xda,0x3b,0x22, +0x5, 0x63,0x31,0x20,0x18,0x13,0xf, 0xd, 0xc, 0xa, 0x9, 0x8, 0x7, 0x6, 0x5, 0x4, +0xca,0xf8,0x7d,0xe2,0x7d,0xd3,0x7c,0xfb,0xbe,0x30,0x1, 0x28,0x6, 0x7e,0xf4,0x0, +0x10,0x80,0xf, 0xbe,0x30,0x0, 0x28,0x6, 0x7e,0xf4,0x0, 0x8, 0x80,0x4, 0x7e,0xf4, +0x0, 0x4, 0x7d,0x1f,0x6d,0x0, 0x6d,0x33,0x7e,0x24,0x0, 0x10,0x12,0x1f,0x58,0x7f, +0x1, 0x7d,0x3d,0x6d,0x22,0x12,0x1e,0xeb,0x7d,0x1e,0x12,0x1f,0x5, 0x74,0x4, 0xac, +0xbf,0x7e,0xf, 0x38,0xc8,0x2d,0x15,0x79,0x30,0x0, 0x82,0x79,0x20,0x0, 0x80,0xda, +0xf8,0x22,0xca,0x7b,0xca,0x6b,0xca,0x5b,0xca,0x4b,0xca,0x2b,0xca,0x1b,0xca,0xb, +0xc0,0xd0,0xc0,0x83,0xc0,0x82,0xd2,0x18,0x7e,0xf, 0x38,0xf7,0xb, 0xa, 0x30,0x7c, +0x57,0x7a,0x53,0x38,0xf2,0x4e,0x70,0xc, 0x1b,0xa, 0x30,0xc2,0xc6,0x6d,0x33,0x7e, +0xf, 0x38,0xf7,0x79,0x30,0x0, 0xe, 0x12,0x12,0x9e,0x12,0x7f,0x5, 0xd0,0x82,0xd0, +0x83,0xd0,0xd0,0xda,0xb, 0xda,0x1b,0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda, +0x7b,0x32,0x74,0x3, 0x12,0x13,0x56,0xa9,0xd1,0xc4,0x7e,0xf, 0x38,0xc0,0x2e,0x14, +0x0, 0x84,0xb, 0xa, 0x30,0x4e,0x70,0x20,0x1b,0xa, 0x30,0x7e,0x14,0x0, 0x1, 0x7e, +0x1f,0x38,0xc0,0x1b,0x1a,0x10,0x7e,0xf, 0x38,0xc8,0xb, 0x16,0xb, 0xa, 0x30,0x4e, +0x70,0x1, 0x1b,0xa, 0x30,0xc2,0xb, 0xe4,0x7a,0xb3,0x38,0xd8,0x7e,0x1f,0x38,0xc0, +0xb, 0x1a,0x30,0x5e,0x34,0x0, 0x1, 0x78,0xf3,0x74,0x2, 0x2, 0x13,0x56,0x7c,0x6b, +0x6c,0xaa,0x80,0x17,0x7e,0x90,0x2, 0xac,0x9a,0x7e,0x7f,0x38,0xf3,0x2d,0xf4,0xb, +0x7a,0x20,0x7f,0x70,0x2d,0xf4,0x1b,0x7a,0x20,0xb, 0xa0,0xbc,0x7a,0x38,0xe5,0x6c, +0xaa,0x80,0x20,0x7e,0x50,0x2, 0xac,0x5a,0x7e,0x7f,0x38,0xf3,0x2d,0xf2,0x69,0x27, +0x0, 0x38,0xa, 0xf7,0xa, 0x4a,0x2d,0x4f,0x3e,0x44,0x7f,0x70,0x2d,0xf4,0x1b,0x7a, +0x20,0xb, 0xa0,0xbc,0x6a,0x38,0xdc,0x22,0xca,0x79,0x7c,0xab,0x5e,0xa0,0x3, 0x6c, +0x77,0x7e,0x50,0x2, 0xac,0x57,0x7f,0x60,0x2d,0xd2,0x29,0x66,0x0, 0x1, 0xa, 0xf6, +0x7d,0x4f,0x7c,0x89,0x6c,0x99,0x7d,0xf4,0x7e,0x6b,0x60,0xa, 0x46,0x2d,0x4f,0x7e, +0xf0,0xf0,0xac,0xfa,0x2d,0x27,0x7e,0x7f,0x38,0xf3,0x2d,0xf2,0x79,0x47,0x2, 0x54, +0xb, 0x70,0xbe,0x70,0xe, 0x40,0xca,0xda,0x79,0x22,0x29,0x50,0x0, 0xf5,0xac,0x5b, +0x7e,0xf, 0x38,0xc8,0x69,0x30,0x0, 0xc, 0xa, 0x56,0x3e,0x54,0xbe,0x24,0x2, 0x0, +0x40,0x4, 0x7e,0x24,0x1, 0xff,0xbd,0x25,0x28,0x1f,0x2e,0x14,0x0, 0xc, 0x6c,0x66, +0x1b,0xa, 0x30,0x1e,0x24,0x7c,0x45,0x6c,0x55,0x7e,0xf, 0x38,0xc8,0x2e,0x14,0x0, +0xc, 0xb, 0xa, 0x30,0x4d,0x32,0x1b,0xa, 0x30,0x22,0x7c,0x6b,0x6c,0xaa,0x7e,0x50, +0x28,0xac,0x57,0x7e,0x90,0x2, 0xac,0x9a,0x2d,0x42,0x7e,0x50,0xf0,0xac,0x56,0x2d, +0x24,0x7e,0x7f,0x38,0xf3,0x2d,0xf2,0x69,0x27,0x1, 0x8c,0x6c,0x44,0xa, 0x4a,0x7f, +0x60,0x2d,0xd4,0x7e,0x6b,0xb0,0x7c,0x8b,0x6c,0x99,0x4d,0x24,0x79,0x27,0x1, 0x8c, +0xb, 0xa0,0xbe,0xa0,0xe, 0x40,0xc7,0x22,0x7c,0x6b,0x6c,0xaa,0x7e,0x50,0x28,0xac, +0x57,0x7e,0x90,0x2, 0xac,0x9a,0x2d,0x42,0x7e,0x50,0xf0,0xac,0x56,0x2d,0x24,0x7e, +0x7f,0x38,0xf3,0x2d,0xf2,0x69,0x27,0x1, 0x8c,0x6c,0x55,0xa, 0x4a,0x7f,0x60,0x2d, +0xd4,0x7e,0x6b,0xb0,0xa, 0x4b,0x4d,0x24,0x79,0x27,0x1, 0x8c,0xb, 0xa0,0xbe,0xa0, +0xe, 0x40,0xc9,0x22,0xa9,0xd6,0xcb,0x54,0x3f,0x5e,0x70,0x1f,0x7c,0x2b,0x6c,0x33, +0x3e,0x14,0x3e,0x14,0x2e,0x14,0x0, 0x5, 0xa, 0x37,0x3e,0x34,0x3e,0x34,0x3e,0x34, +0x3e,0x34,0x3e,0x34,0x2d,0x31,0x7e,0xf, 0x39,0xd, 0x79,0x30,0x0, 0x2, 0x7e,0xf, +0x39,0xd, 0x79,0x20,0x0, 0x14,0xa9,0xc6,0xcb,0x22,0x7d,0x23,0x6c,0x66,0x7e,0x30, +0x2, 0xac,0x36,0x2e,0x14,0x20,0x8f,0x7a,0x31,0x82,0x7a,0x21,0x83,0xe4,0x93,0xa, +0x1b,0xbd,0x12,0x28,0x7, 0xb, 0x60,0xbe,0x60,0x14,0x40,0xe2,0x7e,0x70,0x2, 0xac, +0x67,0x2e,0x34,0x20,0x90,0x7a,0x71,0x82,0x7a,0x61,0x83,0xe4,0x93,0x22,0x7e,0xf, +0x38,0xc0,0x2e,0x14,0x0, 0x84,0xb, 0xa, 0x30,0x5e,0x70,0xdf,0x1b,0xa, 0x30,0x74, +0x3, 0x12,0x13,0x56,0x7e,0x14,0x0, 0x3, 0x7e,0x1f,0x38,0xc0,0x1b,0x1a,0x10,0x7e, +0x1f,0x38,0xc0,0xb, 0x1a,0x30,0x5e,0x34,0x0, 0x1, 0x78,0xf3,0xe4,0x2, 0x13,0x56, +0x2e,0x34,0x4, 0x0, 0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x60,0x7e,0x34,0x4, 0x0, +0x9d,0x32,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x62,0x7e,0x34,0x0, 0x1, 0x7e,0xf, +0x38,0xc8,0x79,0x30,0x0, 0x64,0xa, 0x3b,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x66, +0x22,0x7c,0xa5,0xbe,0x34,0x0, 0x0, 0x28,0x10,0xa, 0x1b,0x3e,0x14,0x7d,0x23,0x7c, +0x45,0x6c,0x55,0x2d,0x21,0xa, 0x3a,0x80,0x8, 0xa, 0x2b,0x3e,0x24,0x7c,0x67,0x6c, +0x77,0x2d,0x32,0x7e,0xf, 0x38,0xf7,0x79,0x30,0x0, 0x4, 0x22,0x7c,0xa7,0x7e,0x1f, +0x38,0xc0,0x69,0x41,0x0, 0x8a,0x5e,0x44,0x10,0xf, 0xa, 0x1a,0x3e,0x14,0x3e,0x14, +0x3e,0x14,0x3e,0x14,0xa, 0x5b,0xc4,0x23,0x54,0xe0,0x7c,0xab,0xe4,0x2d,0x51,0x4d, +0x45,0x79,0x41,0x0, 0x8a,0x22,0x7e,0xf, 0x38,0xc0,0x69,0x30,0x0, 0x84,0x5e,0x70, +0xe7,0x1b,0xb1,0x68,0xc, 0x14,0x68,0xc, 0xb, 0xb1,0x78,0x5, 0x4e,0x70,0x10,0x80, +0x3, 0x4e,0x70,0x8, 0x79,0x30,0x0, 0x84,0x22,0x7e,0x34,0x0, 0x1f,0x7e,0xf, 0x38, +0xc8,0x79,0x30,0x0, 0x4, 0xa9,0xd2,0xcd,0x7e,0xf, 0x38,0xc8,0xb, 0xa, 0x30,0x4e, +0x70,0x1, 0x1b,0xa, 0x30,0x22,0xbe,0xb0,0x0, 0x28,0xa, 0xa9,0xd7,0xca,0xa9,0xd3, +0xcb,0xa9,0xd2,0xcb,0x22,0xa9,0xc7,0xca,0xa9,0xc3,0xcb,0xa9,0xc2,0xcb,0x22,0x30, +0x4, 0xa, 0x54,0x3, 0xa, 0x3b,0x2e,0x34,0x2, 0x0, 0x80,0x2, 0x6d,0x33,0x7e,0xf, +0x38,0xc8,0x79,0x30,0x0, 0x3a,0x22,0x7e,0xf, 0x38,0xc0,0x69,0x30,0x0, 0x8a,0x60, +0x5, 0x4e,0x60,0x10,0x80,0x3, 0x5e,0x60,0xef,0x79,0x30,0x0, 0x8a,0x22,0xbe,0xb0, +0x0, 0x28,0x9, 0xa9,0xd6,0xca,0xd2,0xcd,0xa9,0xd1,0xcb,0x22,0xa9,0xc6,0xca,0xc2, +0xcd,0xa9,0xc1,0xcb,0x22,0x7e,0x34,0x0, 0xf, 0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, +0x4, 0xc2,0xc3,0xd2,0xeb,0x22,0x6, 0xe, 0x15,0x1a,0x1f,0x26,0x2b,0x2d,0x2e,0x2f, +0x2c,0x2a,0x24,0x1f,0x1a,0x14,0xf, 0x8, 0x3, 0x3, 0x6, 0xb, 0x10,0x15,0x1c,0x22, +0x28,0x2d,0x34,0x39,0x3d,0x40,0xe, 0x3, 0x0, 0x0, 0x0, 0x3, 0x8, 0xc, 0x11,0x16, +0x1c,0x23,0x2b,0x32,0x37,0x3c,0x40,0x45,0x4a,0x4d,0x4c,0x4b,0x4a,0x48,0x46,0x46, +0x45,0x45,0x44,0x44,0x43,0x44,0x45,0x78,0x65,0x55,0x2, 0xd, 0x14,0x1b,0x21,0x25, +0x2b,0x31,0x37,0x36,0x33,0x2d,0x28,0x20,0x19,0x14,0xd, 0x8, 0x1, 0x2, 0x5, 0xb, +0x10,0x18,0x1e,0x23,0x2a,0x30,0x35,0x3a,0x3e,0x3f,0x0, 0x1, 0x1, 0x0, 0x0, 0x0, +0x0, 0x0, 0x1, 0x4, 0x9, 0xf, 0x15,0x1d,0x24,0x2a,0x30,0x35,0x3b,0x3e,0x3f,0x40, +0x3f,0x3e,0x3d,0x3d,0x3c,0x3c,0x3b,0x3b,0x39,0x37,0x1a,0x2d,0x65,0x55,0x1b,0x29, +0x27,0x1e,0x14,0x11,0x1a,0x26,0x2e,0x37,0x3d,0x3f,0x3d,0x37,0x2e,0x21,0x16,0xc, +0x5, 0x1, 0x0, 0x0, 0x1, 0x3, 0xa, 0x13,0x1d,0x26,0x2e,0x33,0x38,0x3a,0x16,0x21, +0x2b,0x32,0x30,0x2a,0x27,0x2a,0x2f,0x2d,0x24,0x1a,0x10,0x7, 0x1, 0x0, 0x2, 0x7, +0x10,0x19,0x23,0x2d,0x36,0x41,0x49,0x4c,0x4a,0x45,0x3c,0x34,0x2a,0x27,0x51,0x71, +0x50,0x55,0x28,0x12,0x11,0x18,0x23,0x29,0x2b,0x2a,0x2e,0x35,0x3c,0x3e,0x3f,0x39, +0x31,0x28,0x1e,0x15,0xe, 0x6, 0x3, 0x1, 0x0, 0x0, 0x3, 0xc, 0x16,0x20,0x2b,0x32, +0x37,0x39,0x20,0x29,0x32,0x37,0x31,0x28,0x21,0x2a,0x31,0x2d,0x23,0x1b,0x13,0x8, +0x1, 0x0, 0x1, 0x5, 0xc, 0x18,0x20,0x29,0x34,0x3e,0x47,0x4f,0x50,0x4d,0x45,0x3c, +0x34,0x31,0x26,0xcb,0x50,0x55,0x1d,0x2f,0x2c,0x25,0x1a,0x1b,0x20,0x29,0x31,0x31, +0x2e,0x2d,0x35,0x3d,0x3f,0x3d,0x38,0x2c,0x22,0x15,0xd, 0x6, 0x1, 0x0, 0x1, 0x6, +0x10,0x1b,0x24,0x2f,0x38,0x3d,0xd, 0x1b,0x27,0x31,0x32,0x28,0x1e,0x14,0x15,0x1d, +0x28,0x31,0x34,0x2a,0x1f,0x14,0x9, 0x1, 0x0, 0x4, 0xd, 0x17,0x21,0x2c,0x35,0x40, +0x47,0x47,0x44,0x3c,0x34,0x30,0x1b,0x82,0x50,0x55,0x19,0x2e,0x2a,0x1f,0x18,0x1b, +0x22,0x2d,0x30,0x2e,0x2e,0x35,0x3d,0x3f,0x3d,0x3a,0x2f,0x24,0x18,0xf, 0x7, 0x1, +0x0, 0x0, 0x3, 0xb, 0x16,0x1e,0x29,0x32,0x3a,0x3d,0x11,0x1f,0x28,0x32,0x30,0x26, +0x1b,0x14,0x1c,0x25,0x2e,0x35,0x2e,0x23,0x19,0x11,0x4, 0x0, 0x1, 0x8, 0x10,0x1c, +0x25,0x30,0x38,0x40,0x42,0x3f,0x39,0x32,0x2c,0x27,0xc0,0xd1,0x50,0x55,0x18,0x2c, +0x29,0x1e,0x14,0x13,0x16,0x1e,0x29,0x30,0x2e,0x2c,0x2b,0x37,0x3d,0x3f,0x3e,0x39, +0x30,0x25,0x1b,0x10,0x8, 0x1, 0x0, 0x2, 0x9, 0x13,0x1f,0x2d,0x38,0x3c,0x11,0x1a, +0x23,0x2f,0x33,0x29,0x20,0x16,0xe, 0x13,0x1d,0x28,0x32,0x31,0x28,0x1e,0x16,0xb, +0x2, 0x0, 0x1, 0x8, 0x12,0x1e,0x29,0x33,0x3b,0x3f,0x3c,0x32,0x29,0x26,0x30,0x6e, +0x50,0x55,0x16,0x2b,0x24,0x17,0xd, 0xa, 0xe, 0x15,0x24,0x28,0x25,0x23,0x2b,0x36, +0x3b,0x3d,0x3b,0x37,0x2b,0x20,0x15,0xb, 0x4, 0x0, 0x0, 0x3, 0xe, 0x19,0x27,0x33, +0x3d,0x3f,0x13,0x21,0x2e,0x37,0x3a,0x31,0x27,0x1c,0x13,0x1c,0x28,0x34,0x3e,0x37, +0x2d,0x22,0x18,0xc, 0x1, 0x0, 0x3, 0xd, 0x18,0x25,0x31,0x3c,0x47,0x48,0x42,0x38, +0x2e,0x2a,0x31,0x62,0x50,0x55,0x35,0x2e,0x27,0x22,0x1f,0x1b,0x16,0x10,0xc, 0x8, +0x6, 0x4, 0x2, 0x0, 0x0, 0x0, 0x1, 0x3, 0x6, 0xb, 0xe, 0x12,0x17,0x1d,0x22,0x26, +0x2a,0x30,0x35,0x39,0x3d,0x3f,0x0, 0x0, 0x1, 0x4, 0x6, 0x8, 0xb, 0x10,0x16,0x1b, +0x1f,0x23,0x28,0x2d,0x32,0x36,0x3b,0x40,0x44,0x48,0x4a,0x4b,0x4c,0x4b,0x4a,0x48, +0x46,0x43,0x40,0x3e,0x3c,0x3a,0x3c,0x9c,0x34,0x55,0x9, 0x17,0x1d,0x26,0x2e,0x37, +0x3c,0x3f,0x3b,0x33,0x2b,0x22,0x1a,0x11,0xb, 0x5, 0x3, 0x1, 0x1, 0x0, 0x0, 0x0, +0x1, 0x6, 0xa, 0x11,0x19,0x22,0x2a,0x32,0x39,0x3d,0x30,0x30,0x2f,0x2c,0x26,0x1e, +0x17,0xd, 0x5, 0x0, 0x0, 0x1, 0x6, 0xe, 0x15,0x1e,0x26,0x2c,0x32,0x3a,0x41,0x48, +0x50,0x5b,0x61,0x64,0x64,0x60,0x5b,0x56,0x51,0x4f,0xd8,0x2c,0x33,0x55,0x26,0x1c, +0x19,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x17,0x17,0x15,0xf, 0x9, 0x4, 0x1, 0x0, +0x0, 0x0, 0x0, 0x1, 0x4, 0xb, 0x12,0x18,0x1f,0x28,0x31,0x37,0x3c,0x40,0x1, 0x7, +0xe, 0x14,0x1c,0x23,0x2c,0x34,0x3e,0x44,0x4c,0x54,0x5b,0x60,0x5d,0x55,0x4f,0x49, +0x43,0x3d,0x38,0x32,0x2b,0x26,0x22,0x1f,0x1e,0x1c,0x1c,0x1c,0x1c,0x1d,0x66,0x54, +0x74,0x55,0x3e,0x2c,0x21,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d, +0x1e,0x1e,0x1d,0x1a,0x11,0xc, 0x7, 0x2, 0x0, 0x0, 0x3, 0xa, 0x12,0x1c,0x23,0x2c, +0x38,0x40,0xc, 0x0, 0x6, 0xf, 0x17,0x22,0x29,0x32,0x3b,0x41,0x47,0x4f,0x55,0x5c, +0x66,0x71,0x79,0x3e,0x76,0x6d,0x64,0x5a,0x52,0x4b,0x42,0x39,0x35,0x33,0x32,0x32, +0x31,0x31,0xf3,0xdb,0x74,0x55,0x9, 0x7, 0x6, 0x6, 0x5, 0x5, 0x4, 0x4, 0x4, 0x4, +0x3, 0x2, 0x2, 0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xa, 0x10,0x14,0x1b,0x22, +0x28,0x2e,0x34,0x39,0x3d,0x40,0x0, 0xb, 0x11,0x16,0x1b,0x22,0x28,0x2c,0x33,0x39, +0x40,0x46,0x4d,0x52,0x56,0x5c,0x61,0x68,0x6d,0x73,0x73,0x71,0x71,0x71,0x70,0x70, +0x6f,0x6f,0x6f,0x6f,0x6d,0x6e,0x79,0x80,0x44,0x55,0x17,0x13,0x12,0x12,0x11,0x10, +0xf, 0xd, 0xc, 0xb, 0x9, 0x8, 0x7, 0x4, 0x3, 0x2, 0x1, 0x0, 0x0, 0x0, 0x1, 0x4, +0xb, 0x10,0x16,0x1d,0x24,0x29,0x31,0x39,0x3d,0x40,0x0, 0xe, 0x16,0x1a,0x1f,0x24, +0x29,0x2e,0x33,0x38,0x3e,0x43,0x47,0x50,0x55,0x59,0x62,0x69,0x6e,0x75,0x7c,0xff, +0x7d,0x7c,0x79,0x73,0x6d,0x68,0x60,0x5a,0x57,0x56,0x5d,0x8, 0x44,0x55,0x0, 0x7, +0xb, 0xd, 0x10,0x12,0x16,0x17,0x17,0x18,0x18,0x19,0x19,0x19,0x1c,0x1e,0x20,0x22, +0x23,0x25,0x27,0x29,0x2b,0x30,0x32,0x33,0x35,0x38,0x39,0x3b,0x3d,0x3f,0x3e,0x29, +0x1f,0x18,0xf, 0x7, 0x6, 0xc, 0x12,0x1d,0x25,0x2d,0x36,0x3e,0x3b,0x35,0x2c,0x26, +0x20,0x19,0x11,0xa, 0x3, 0x3, 0x9, 0x10,0x18,0x24,0x2c,0x33,0x3a,0x3e,0x60,0x9b, +0x32,0x55,0x0, 0x5, 0x5, 0x5, 0x4, 0x3, 0x2, 0x3, 0x5, 0x7, 0xa, 0xe, 0x11,0x19, +0x1b,0x1c,0x1d,0x1c,0x1c,0x1d,0x1f,0x22,0x25,0x2a,0x31,0x33,0x35,0x37,0x38,0x39, +0x3c,0x40,0x0, 0x12,0x1c,0x24,0x2b,0x34,0x3c,0x39,0x2f,0x29,0x21,0x16,0xf, 0xd, +0x14,0x1e,0x2a,0x33,0x31,0x27,0x20,0x18,0x10,0x7, 0xa, 0x10,0x1a,0x26,0x2f,0x37, +0x3d,0x3f,0xfb,0x8f,0x32,0x55,0x2c,0x23,0x1f,0x19,0x13,0xc, 0x7, 0x3, 0x0, 0x0, +0x0, 0x1, 0x5, 0xa, 0xf, 0x16,0x1d,0x23,0x2a,0x30,0x36,0x3b,0x3e,0x40,0x3f,0x3e, +0x3b,0x38,0x33,0x2f,0x2b,0x28,0x9, 0x1, 0x0, 0x1, 0x3, 0x9, 0xe, 0x14,0x1b,0x21, +0x27,0x2e,0x36,0x3b,0x3e,0x41,0x41,0x40,0x3d,0x3a,0x36,0x2f,0x2b,0x26,0x20,0x1c, +0x16,0x10,0xc, 0xa, 0x9, 0xb, 0x36,0xdc,0x30,0x55,0x1a,0x9, 0x5, 0x1, 0x0, 0x0, +0x0, 0x2, 0x5, 0x9, 0xf, 0x16,0x1c,0x22,0x2a,0x31,0x36,0x39,0x3c,0x3e,0x3f,0x3f, +0x3d,0x38,0x30,0x27,0x1f,0x18,0x12,0xb, 0x6, 0x5, 0x7, 0x12,0x19,0x22,0x2c,0x36, +0x3f,0x49,0x53,0x5c,0x63,0x66,0x64,0x5f,0x58,0x4c,0x43,0x3d,0x34,0x2b,0x22,0x1b, +0x15,0xb, 0x4, 0x0, 0x0, 0x1, 0x4, 0xb, 0x13,0x18,0xf1,0xc, 0x30,0x55,0x18,0x2c, +0x34,0x39,0x3c,0x3d,0x3f,0x3f,0x3f,0x3d,0x3b,0x36,0x30,0x2a,0x24,0x1c,0x16,0xd, +0x6, 0x1, 0x0, 0x0, 0x0, 0x1, 0x1, 0x3, 0x5, 0x9, 0xf, 0x17,0x1e,0x24,0x1, 0x2, +0x8, 0xe, 0x14,0x1a,0x21,0x28,0x30,0x37,0x40,0x49,0x50,0x55,0x59,0x5c,0x5c,0x58, +0x51,0x48,0x3f,0x38,0x31,0x2b,0x25,0x1d,0x17,0x11,0xa, 0x4, 0x1, 0x1, 0x9d,0xbf, +0x30,0x55,0x16,0x7, 0x2, 0x0, 0x0, 0x0, 0x0, 0x1, 0x4, 0x8, 0xe, 0x16,0x1f,0x28, +0x30,0x38,0x3c,0x3e,0x3f,0x40,0x3f,0x3f,0x3d,0x3b,0x37,0x32,0x2c,0x25,0x1d,0x16, +0xf, 0xc, 0x53,0x46,0x3e,0x35,0x2e,0x27,0x20,0x1a,0x14,0xd, 0x6, 0x1, 0x0, 0x0, +0x3, 0xa, 0x13,0x1a,0x20,0x27,0x2d,0x33,0x3a,0x40,0x48,0x4f,0x54,0x58,0x5a,0x5a, +0x58,0x57,0xc6,0x55,0x30,0x55,0x7, 0x1, 0x4, 0xa, 0x10,0x18,0x20,0x2a,0x32,0x38, +0x3c,0x3e,0x3f,0x3e,0x3d,0x3b,0x39,0x35,0x30,0x27,0x21,0x19,0x12,0xb, 0x6, 0x3, +0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x32,0x1d,0x12,0x9, 0x5, 0x1, 0x0, 0x0, 0x1, 0x5, +0xd, 0x17,0x20,0x2a,0x32,0x3b,0x45,0x4e,0x58,0x63,0x69,0x6b,0x6a,0x64,0x5d,0x57, +0x4f,0x47,0x40,0x38,0x32,0x2f,0x1a,0xb5,0x30,0x55,0x21,0x13,0xc, 0x8, 0x5, 0x2, +0x1, 0x0, 0x0, 0x1, 0x3, 0x8, 0xf, 0x17,0x1e,0x24,0x2b,0x32,0x39,0x3d,0x3e,0x3f, +0x3f,0x3d,0x3a,0x36,0x30,0x29,0x21,0x1a,0x16,0x13,0x5, 0x9, 0xe, 0x14,0x1a,0x22, +0x29,0x30,0x38,0x3f,0x47,0x4d,0x51,0x51,0x4f,0x4d,0x49,0x42,0x39,0x31,0x2b,0x25, +0x1e,0x17,0x10,0x8, 0x3, 0x0, 0x0, 0x1, 0x3, 0x5, 0xaf,0x13,0x30,0x55,0x38,0x3f, +0x3d,0x3a,0x36,0x2e,0x26,0x1f,0x14,0xb, 0x6, 0x2, 0x0, 0x0, 0x0, 0x1, 0x2, 0x5, +0x9, 0xe, 0x14,0x1c,0x23,0x2a,0x34,0x38,0x3a,0x3b,0x3d,0x3d,0x3d,0x3d,0x29,0x1a, +0x10,0x9, 0x4, 0x0, 0x0, 0x1, 0x4, 0xc, 0x14,0x1c,0x22,0x28,0x2f,0x37,0x3f,0x47, +0x4f,0x56,0x5a,0x5b,0x59,0x56,0x4e,0x47,0x40,0x37,0x30,0x28,0x22,0x1f,0x2a,0xa9, +0x30,0x55,0x3e,0x3b,0x38,0x33,0x2b,0x24,0x1d,0x16,0x10,0x7, 0x3, 0x1, 0x0, 0x0, +0x0, 0x1, 0x1, 0x3, 0x6, 0xc, 0x15,0x1c,0x23,0x29,0x2f,0x35,0x38,0x3b,0x3c,0x3e, +0x3f,0x3f,0x1f,0x10,0xa, 0x6, 0x0, 0x0, 0x0, 0x2, 0x4, 0xc, 0x12,0x18,0x1e,0x25, +0x2c,0x35,0x3c,0x42,0x4a,0x51,0x56,0x56,0x53,0x4e,0x49,0x40,0x3a,0x33,0x2c,0x25, +0x1f,0x1c,0xf9,0xa2,0x30,0x55,0x1f,0x2b,0x31,0x35,0x38,0x3b,0x3e,0x3f,0x3f,0x3d, +0x3a,0x34,0x2d,0x27,0x23,0x1d,0x17,0x10,0x9, 0x4, 0x1, 0x0, 0x0, 0x1, 0x3, 0x6, +0xa, 0xf, 0x15,0x1b,0x20,0x23,0x45,0x42,0x3e,0x38,0x34,0x2d,0x24,0x1c,0x15,0x11, +0xb, 0x6, 0x2, 0x0, 0x0, 0x0, 0x1, 0x3, 0x7, 0xd, 0x12,0x18,0x20,0x28,0x30,0x36, +0x3c,0x42,0x47,0x48,0x49,0x4a,0x65,0x9d,0x30,0x55,0x1c,0x2a,0x33,0x39,0x3c,0x3e, +0x3f,0x3f,0x3e,0x3d,0x3a,0x35,0x2e,0x28,0x23,0x1c,0x15,0xf, 0x9, 0x4, 0x1, 0x0, +0x0, 0x1, 0x1, 0x4, 0x8, 0xd, 0x13,0x19,0x1e,0x22,0x40,0x3e,0x3a,0x33,0x2f,0x29, +0x22,0x1b,0x15,0x10,0xa, 0x5, 0x1, 0x0, 0x0, 0x1, 0x2, 0x5, 0xa, 0x11,0x17,0x1c, +0x24,0x2a,0x30,0x35,0x3b,0x40,0x43,0x44,0x45,0x45,0xcb,0xc6,0x30,0x55,0x5, 0x3, +0x4, 0x7, 0xa, 0x10,0x17,0x21,0x28,0x2e,0x33,0x38,0x3c,0x3e,0x3f,0x3f,0x3e,0x3b, +0x38,0x31,0x29,0x21,0x18,0xf, 0x9, 0x4, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x26,0x35, +0x3d,0x45,0x4b,0x51,0x53,0x52,0x4f,0x4c,0x46,0x41,0x3b,0x34,0x2e,0x25,0x1e,0x17, +0x11,0x9, 0x3, 0x0, 0x0, 0x2, 0x6, 0xc, 0x12,0x18,0x1e,0x24,0x2c,0x31,0xf4,0xb6, +0x30,0x55,0xa, 0x5, 0x5, 0x5, 0x8, 0xf, 0x16,0x20,0x29,0x31,0x36,0x3a,0x3c,0x3e, +0x3f,0x3f,0x3e,0x3c,0x3a,0x33,0x2d,0x24,0x1c,0x14,0xf, 0x8, 0x4, 0x0, 0x0, 0x0, +0x1, 0x2, 0x35,0x46,0x4e,0x56,0x5d,0x65,0x68,0x66,0x60,0x57,0x4f,0x47,0x3f,0x37, +0x2e,0x25,0x1e,0x16,0x10,0x6, 0x2, 0x0, 0x1, 0x5, 0xb, 0x15,0x1d,0x28,0x2f,0x39, +0x41,0x45,0xf0,0xbc,0x30,0x55,0x7, 0x3, 0x3, 0x3, 0x4, 0x7, 0xf, 0x17,0x20,0x28, +0x30,0x36,0x3b,0x3d,0x3f,0x3f,0x3d,0x39,0x36,0x2d,0x25,0x1d,0x16,0xd, 0x8, 0x2, +0x0, 0x0, 0x1, 0x2, 0x3, 0x5, 0x2e,0x3f,0x48,0x50,0x59,0x5f,0x67,0x68,0x63,0x5d, +0x52,0x4a,0x3e,0x35,0x2b,0x20,0x18,0x10,0xa, 0x3, 0x0, 0x0, 0x1, 0x7, 0xe, 0x19, +0x22,0x2b,0x31,0x3a,0x42,0x47,0xef,0xc9,0x30,0x55,0x3b,0x3c,0x3c,0x3b,0x39,0x36, +0x2f,0x27,0x21,0x19,0x11,0xb, 0x5, 0x1, 0x0, 0x0, 0x1, 0x2, 0x4, 0x6, 0xa, 0x10, +0x16,0x1f,0x26,0x2d,0x33,0x39,0x3c,0x3e,0x3f,0x3f,0x22,0x31,0x3b,0x41,0x47,0x4d, +0x56,0x59,0x5a,0x58,0x55,0x51,0x4b,0x43,0x3d,0x35,0x29,0x20,0x18,0x11,0x9, 0x3, +0x0, 0x0, 0x1, 0x3, 0x7, 0xf, 0x15,0x1b,0x21,0x26,0x2b,0xa0,0x30,0x55,0x37,0x38, +0x37,0x34,0x2d,0x26,0x1c,0x16,0xe, 0x9, 0x4, 0x2, 0x0, 0x0, 0x0, 0x1, 0x2, 0x5, +0xa, 0x10,0x17,0x20,0x26,0x2e,0x35,0x3a,0x3c,0x3e,0x3f,0x3f,0x3e,0x3e,0x30,0x40, +0x49,0x50,0x59,0x5e,0x60,0x5d,0x56,0x50,0x47,0x41,0x39,0x33,0x2a,0x20,0x1a,0x10, +0xa, 0x5, 0x1, 0x0, 0x0, 0x3, 0x8, 0x10,0x17,0x1f,0x25,0x2f,0x38,0x3c,0x37,0xc3, +0x30,0x55,0x3b,0x3d,0x3d,0x3b,0x38,0x32,0x27,0x1c,0x13,0xe, 0x8, 0x3, 0x0, 0x0, +0x0, 0x1, 0x3, 0x7, 0xb, 0x12,0x18,0x20,0x28,0x31,0x39,0x3d,0x3f,0x40,0x3f,0x3f, +0x3e,0x3e,0x33,0x45,0x4e,0x57,0x5d,0x65,0x6c,0x6a,0x66,0x63,0x5c,0x53,0x4a,0x40, +0x38,0x2e,0x25,0x1a,0x11,0x8, 0x4, 0x0, 0x0, 0x2, 0x9, 0x10,0x19,0x21,0x2a,0x32, +0x39,0x3e,0x7, 0x90,0x30,0x55,0x39,0x2b,0x24,0x1c,0x15,0xe, 0x9, 0x6, 0x5, 0x6, +0x9, 0x10,0x19,0x22,0x27,0x2e,0x35,0x3b,0x3e,0x3f,0x3d,0x38,0x32,0x2c,0x26,0x1f, +0x19,0x13,0xb, 0x5, 0x1, 0x0, 0x6, 0x0, 0x1, 0x2, 0x6, 0xb, 0x11,0x17,0x1d,0x24, +0x2a,0x2f,0x32,0x34,0x35,0x36,0x37,0x3b,0x41,0x47,0x4e,0x56,0x5d,0x61,0x64,0x65, +0x65,0x63,0x60,0x5c,0x57,0x54,0xd1,0x4a,0x46,0x55,0x0, 0x1, 0x3, 0x5, 0x7, 0x8, +0xa, 0xb, 0xc, 0xe, 0xf, 0x11,0x12,0x14,0x16,0x1a,0x1e,0x22,0x24,0x27,0x2a,0x2c, +0x2e,0x31,0x33,0x36,0x38,0x3a,0x3c,0x3e,0x3f,0x3f,0x1, 0xe, 0x14,0x1b,0x23,0x28, +0x2e,0x35,0x3a,0x40,0x48,0x4f,0x56,0x5d,0x62,0x61,0x5a,0x53,0x4e,0x47,0x40,0x3b, +0x35,0x2d,0x29,0x22,0x1b,0x17,0x10,0x9, 0x5, 0x1, 0x6d,0x7d,0x54,0x55,0x0, 0x2, +0x3, 0x5, 0x6, 0x8, 0xb, 0x10,0x13,0x16,0x17,0x19,0x1b,0x1d,0x1f,0x21,0x22,0x22, +0x22,0x22,0x23,0x25,0x28,0x2e,0x31,0x34,0x36,0x38,0x3a,0x3c,0x3e,0x3f,0x6, 0x17, +0x20,0x27,0x30,0x38,0x3e,0x39,0x32,0x2b,0x25,0x1e,0x18,0x10,0x9, 0x9, 0x10,0x18, +0x1f,0x26,0x2f,0x36,0x3c,0x38,0x2f,0x27,0x1f,0x18,0xf, 0x8, 0x1, 0x2, 0xc7,0x75, +0x31,0x55,0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x3, 0x8, 0xd, 0x12,0x15,0x17,0x18,0x1a, +0x1b,0x1c,0x1d,0x1d,0x1e,0x1f,0x22,0x27,0x2e,0x35,0x38,0x3b,0x3d,0x3e,0x3f,0x40, +0x3f,0x3e,0x6, 0x15,0x1b,0x23,0x29,0x2f,0x37,0x3c,0x37,0x2e,0x27,0x20,0x1a,0x13, +0xe, 0x14,0x1a,0x21,0x27,0x2f,0x38,0x3f,0x3d,0x35,0x2e,0x26,0x20,0x18,0x11,0xb, +0x3, 0x0, 0x67,0x3f,0x31,0x55,0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, +0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0x10,0x11,0x12,0x13,0x14,0x1c,0x1d,0x1e,0x1f,0x20, +0x21,0x22,0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0x10,0x11, +0x12,0x13,0x14,0x15,0x16,0x17,0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0xe, +0xf, 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x0, 0x1, 0x2, 0x3, 0x4, 0x1c,0x1d,0x1e, +0x1f,0x20,0x0, 0x1, 0x2, 0x3, 0xe, 0xf, 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, +0x18,0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0x10,0x11, +0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x6, 0x5, 0x4, 0x3, 0x2, 0x1, +0x0, 0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x0, 0x0, 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, +0x7, 0x8, 0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, +0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0x10,0x11,0x12,0x13,0x14,0x15,0x16, +0x17,0x18,0x19,0x1a,0x1b,0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, +0xb, 0xc, 0xd, 0xe, 0xf, 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a, +0x1b,0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,0x0, 0x1, 0x1, 0x1, 0x10,0x1c,0x2, 0x10, +0x1c,0x0, 0x1, 0x1, 0x4, 0xf, 0x1c,0x0, 0x1, 0x1, 0x6, 0x1b,0xf, 0x7, 0xe, 0x1c, +0x8, 0x23,0x15,0x0, 0x1, 0x1, 0xa, 0x10,0x19,0xb, 0x14,0x1c,0xc, 0xf, 0x18,0x0, +0x1, 0x1, 0xe, 0x23,0x15,0xf, 0xd, 0x19,0x0, 0x1, 0x1, 0x11,0xd, 0x14,0x12,0x10, +0x19,0x13,0x1c,0x10,0x14,0x1a,0x10,0x15,0x10,0x19,0x16,0x23,0x1c,0x72,0x23,0x15, +0x73,0x23,0x1c,0x74,0x23,0x1c,0x75,0xe, 0x1c,0xc2,0xd5,0x7c,0xb4,0x30,0xe7,0x8, +0xb2,0xd5,0x6e,0x24,0xff,0xff,0xb, 0x24,0x7c,0xb6,0x30,0xe7,0x12,0xb2,0xd5,0x6e, +0x34,0xff,0xff,0xb, 0x34,0x8d,0x32,0x6e,0x24,0xff,0xff,0xb, 0x24,0x80,0x2, 0x8d, +0x32,0x30,0xd5,0x6, 0x6e,0x34,0xff,0xff,0xb, 0x34,0x22,0x7d,0x51,0xad,0x3, 0x7d, +0x2, 0x7d,0x21,0xad,0x5, 0x2d,0x12,0xad,0x35,0x2d,0x21,0x22,0x7d,0x2, 0xad,0x31, +0xad,0x10,0x2d,0x21,0x22,0x6d,0x0, 0x74,0x10,0x4d,0x0, 0x78,0xb, 0x4d,0x22,0x78, +0x27,0x8d,0x31,0x7d,0x12,0x6d,0x22,0x22,0x7d,0x43,0x7d,0x32,0x6d,0x22,0x2f,0x11, +0x2d,0x44,0x50,0x2, 0xa5,0xf, 0xbf,0x10,0x40,0x4, 0x9f,0x10,0xb, 0x90,0x14,0x78, +0xed,0x7f,0x1, 0x6d,0x22,0x7d,0x34,0x22,0x7d,0x41,0x7d,0x13,0x8d,0x24,0x7d,0x2, +0x2f,0x0, 0x40,0x4, 0xbd,0x4, 0x40,0x4, 0x9d,0x4, 0xb, 0x14,0x14,0x78,0xf1,0x7d, +0x23,0x7d,0x31,0x7d,0x10,0x6d,0x0, 0x22,0xc2,0xd5,0x7c,0xb0,0x30,0xe7,0x8, 0xb2, +0xd5,0x9f,0x22,0x9f,0x20,0x7f,0x2, 0x7c,0xb4,0x30,0xe7,0x13,0xb2,0xd5,0x9f,0x22, +0x9f,0x21,0x7f,0x12,0x12,0x1f,0x7, 0x9f,0x22,0x9f,0x20,0x7f,0x2, 0x80,0x3, 0x12, +0x1f,0x7, 0x30,0xd5,0x6, 0x9f,0x22,0x9f,0x21,0x7f,0x12,0x22,0x6c,0xaa,0x4d,0x11, +0x68,0x1a,0x1e,0x54,0x68,0xe, 0xb, 0x38,0x20,0x1b,0x18,0x20,0xb, 0x35,0xb, 0x15, +0x1b,0x54,0x78,0xf2,0x50,0x6, 0x7e,0x39,0x40,0x7a,0x19,0x40,0x22,0x6c,0xaa,0x4d, +0x11,0x68,0x1e,0x1e,0x54,0x50,0xc, 0x7e,0x1b,0x0, 0x7a,0x19,0x0, 0x68,0x12,0xb, +0x1c,0xb, 0x14,0xb, 0x1a,0x0, 0x1b,0x18,0x0, 0xb, 0x1d,0xb, 0x15,0x1b,0x54,0x78, +0xf2,0x22,0x75,0x84,0x1, 0x7e,0x44,0x3f,0xff,0xe4,0x7a,0x49,0xb0,0x1b,0x44,0x78, +0xf9,0x7e,0xf8,0x39,0x13,0x75,0xc, 0x0, 0x75,0xd, 0x0, 0x75,0xe, 0x2, 0x75,0xf, +0x0, 0xc2,0x6, 0xc2,0x7, 0x75,0x1b,0x0, 0xc2,0xc, 0xc2,0xd, 0xc2,0xf, 0x75,0x1c, +0x0, 0x75,0x1d,0x0, 0xc2,0x8, 0xc2,0x9, 0x75,0x1e,0x0, 0xc2,0x11,0x75,0x1f,0x0, +0xc2,0x13,0x75,0x4c,0x0, 0xc2,0x14,0x75,0x4d,0x64,0xc2,0x15,0xc2,0x16,0xc2,0x17, +0x75,0x4e,0x0, 0xd2,0x0, 0xd2,0x1, 0xd2,0x2, 0xd2,0x18,0xc2,0xa, 0xd2,0xb, 0x7e, +0x4, 0x0, 0xff,0x7e,0x14,0x21,0x10,0xb, 0xa, 0x40,0x5d,0x44,0x68,0x1a,0x69,0x20, +0x0, 0x2, 0xb, 0xe, 0xb, 0x44,0x80,0xa, 0x7e,0xb, 0xb0,0x7a,0x29,0xb0,0xb, 0x24, +0xb, 0xc, 0x1b,0x44,0x78,0xf2,0x80,0xdf,0x2, 0x36,0x72,0x0, 0x0, 0x0, 0x47,0x0, +0xcb,0x1, 0x0, 0x0, 0x10,0xfd,0xc7,0xfb,0x7e,0xfb,0xfb,0x1, 0xbb,0xc, 0x9e,0x19, +0x0, 0x21,0x45,0x0, 0xe, 0x1, 0xf, 0x2, 0x10,0x3, 0x11,0x4, 0x12,0x5, 0x13,0x6, +0x14,0x7, 0x15,0x8, 0x16,0x9, 0x17,0xa, 0x18,0xb, 0x19,0xc, 0x1a,0xd, 0x1b,0xdf, +0x22,0xc3,0x21,0xa9,0x20,0x94,0x1f,0x81,0x1e,0x70,0x1d,0x62,0x1c,0x55,0x1b,0x4a, +0x1a,0x41,0x19,0x38,0x18,0x31,0x17,0x2b,0x16,0x25,0x15,0x21,0x14,0x1c,0x13,0x19, +0x12,0x16,0x11,0x13,0x10,0x11,0xf, 0x10,0xe, 0xca,0xf8,0x7f,0x20,0x80,0xa, 0x7e, +0x1b,0xf0,0x7a,0x2b,0xf0,0xb, 0x34,0xb, 0x54,0x69,0xff,0xff,0xfc,0x7d,0xef,0x1b, +0xe4,0x79,0xef,0xff,0xfc,0x4d,0xff,0x78,0xe6,0x7f,0x10,0xda,0xf8,0x22,0x7d,0x43, +0x7f,0x10,0x80,0x7, 0x1b,0x44,0x7a,0xb, 0xb0,0xb, 0x14,0x4d,0x44,0x78,0xf5,0x22, +0xff,0x0, 0x1, 0x2, 0x0, 0xff,0x1, 0x2, 0x0, 0x1, 0xff,0x2, 0x0, 0x1, 0x2, 0xff, +0x7d,0x23,0xbe,0x24,0x0, 0x0, 0x48,0x3, 0x7d,0x32,0x22,0x6d,0x33,0x9d,0x32,0x22, +0x0, 0x4, 0x31,0xd0,0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x33,0xff,0x1, 0x0, 0x1, 0x25, +0xf6,0x1, 0x0, 0x1, 0x37,0x9b,0x0, 0x0, 0x2, 0x37,0xed,0x0, 0x0, 0x0, 0x2, 0x37, +0xef,0x0, 0x0, 0x0, 0x1, 0x37,0xf1,0x0, 0x0, 0x1, 0x34,0x4f,0x0, 0x0, 0x1, 0x39, +0x11,0x0, 0x0, 0x1, 0x34,0x8a,0x0, 0x0, 0x2, 0x34,0x9f,0x0, 0x0, 0x0, 0x1, 0x34, +0xa1,0x0, 0x0, 0x1, 0x34,0xaf,0x0, 0x0, 0x1, 0x34,0xc4,0x0, 0x0, 0x1, 0x34,0xc5, +0x0, 0x0, 0x1, 0x35,0x3e,0x0, 0x0, 0x1, 0x35,0x3f,0x1, 0x0, 0x1, 0x35,0x40,0x0, +0x0, 0x3c,0x35,0xe9,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x1, 0x36,0x61,0x0, 0x0, 0x1, 0x36,0x62,0x0, 0x0, 0x1, 0x36,0x63,0x0, 0x0, +0x1, 0x35,0xe2,0x1, 0x0, 0x2, 0x35,0xe5,0x0, 0x0, 0x0, 0x1, 0x2f,0xa9,0x0, 0x0, +0x1, 0x2f,0xaa,0x0, 0x0, 0x1, 0x2f,0xab,0x0, 0x0, 0x1, 0x2f,0xac,0x0, 0x0, 0x1, +0x36,0x66,0x1, 0x0, 0x1, 0x36,0xe0,0x0, 0x0, 0x1, 0x39,0x12,0x0, 0x0, 0x6, 0x38, +0xfb,0x3f,0x1f,0x50,0x11,0x20,0x10,0x0, 0x1, 0x39,0x1, 0x24,0x0, 0x1, 0x39,0x8, +0x0, 0x0, 0x1, 0x39,0x9, 0x0, 0x0, 0x1, 0x39,0xa, 0x0, 0x0, 0x1, 0x39,0xb, 0x0, +0x0, 0x1, 0x39,0xc, 0x0, 0x0, 0x1, 0x0, 0x4f,0x0, 0x0, 0x1, 0x3, 0xec,0x0, 0x0, +0x4, 0x37,0x40,0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x39,0x2, 0x0, 0x0, 0x1, 0x39,0x3, +0x0, 0x0, 0x2, 0x39,0x4, 0x0, 0x0, 0x0, 0x1, 0x39,0x6, 0x64,0x0, 0x1, 0x39,0x7, +0x0, 0x0, 0x1, 0x39,0x13,0x0, 0x0, 0x1, 0x3, 0xfe,0x0, 0x0, 0x1, 0x3, 0xff,0x0, +0x0, 0x2, 0x2b,0xb9,0x2b,0xbf,0x0, 0x1, 0x2f,0x7f,0x2, 0x0, 0x1, 0x2f,0xa8,0x0, +0x0, 0x1, 0x38,0xdd,0x0, 0x0, 0x1, 0x38,0x3e,0xff,0x0, 0x1, 0x38,0x3f,0x0, 0x0, +0x1, 0x38,0x40,0x0, 0x0, 0x1, 0x38,0x41,0x40,0x0, 0x1, 0x38,0x42,0x40,0x0, 0x4, +0x38,0xf3,0x0, 0x0, 0x50,0x0, 0x0, 0x4, 0x38,0xf7,0x0, 0x0, 0x64,0x0, 0x0, 0x4, +0x38,0xc0,0x0, 0x0, 0x6c,0x0, 0x0, 0x4, 0x38,0xc4,0x0, 0x0, 0x68,0xc0,0x0, 0x4, +0x38,0xc8,0x0, 0x0, 0x68,0x0, 0x0, 0x4, 0x38,0xd9,0x0, 0x0, 0x40,0x0, 0x0, 0x4, +0x39,0xd, 0x0, 0x0, 0x60,0x0, 0x0, 0x0, 0x3, 0x20,0x0, 0xc, 0x1, 0xf4,0x2, 0x58, +0x0, 0xc, 0x1, 0x5e,0x1, 0xc2,0x0, 0xa, 0x0, 0xc8,0x1, 0x40,0x0, 0x5, 0x0, 0x78, +0x0, 0xc8,0x0, 0x4, 0x0, 0x3c,0x0, 0x78,0x0, 0x3, 0x0, 0xa, 0x0, 0x3c,0x0, 0x2, +0x0, 0x0, 0x0, 0xe, 0x1c,0x23,0x5, 0xdc,0x0, 0x32,0x3, 0xe8,0x0, 0x28,0x0, 0x0, +0x0, 0x1e,0x12,0x3f,0x13,0x12,0x69,0x8e,0x12,0x23,0xb, 0x12,0x28,0x48,0x12,0x8d, +0xec,0x2, 0x23,0x4, 0x74,0x1, 0x7a,0xb3,0x36,0x6a,0x22,0x12,0x73,0x71,0x12,0x23, +0x40,0x2, 0x23,0x14,0x7e,0x34,0x0, 0x3, 0x6d,0x22,0x2, 0x23,0x1d,0x7d,0x43,0x7e, +0xa3,0x34,0x38,0xbe,0xa0,0x5, 0x50,0x16,0x7e,0x70,0x4, 0xac,0x7a,0x59,0x43,0x34, +0x3b,0x59,0x23,0x34,0x3d,0x7c,0xba,0x4, 0x7a,0xb3,0x34,0x38,0xc3,0x22,0xd3,0x22, +0x6d,0x33,0x7e,0x24,0x6, 0xfc,0x12,0x23,0x1d,0x7e,0x34,0x0, 0x1, 0x7e,0x24,0x7, +0x7a,0x2, 0x23,0x1d,0x7e,0x34,0x60,0xa3,0x12,0x23,0x9e,0x12,0x26,0x5b,0x12,0x46, +0xa2,0x12,0x73,0x28,0x12,0x3f,0x13,0x12,0x69,0x87,0x12,0xc0,0x5, 0x12,0x23,0xb, +0x12,0x28,0x48,0x12,0x68,0x23,0x12,0x8d,0xec,0x2, 0x23,0x4, 0x7e,0x34,0x61,0x4f, +0x7e,0x24,0x0, 0xff,0xb, 0x1a,0x30,0x7a,0x37,0x2a,0x5a,0x7e,0x34,0x61,0x51,0x7e, +0x24,0x0, 0xff,0xb, 0x1a,0x30,0x7a,0x37,0x2a,0x5c,0x7e,0x34,0x61,0x53,0x7e,0x24, +0x0, 0xff,0xb, 0x1a,0x30,0x22,0x7e,0x34,0x61,0x55,0x12,0x23,0x9e,0x7a,0x37,0x28, +0x95,0x7e,0x34,0x61,0xba,0x12,0x23,0x9e,0x7a,0x37,0x28,0x99,0x7e,0x34,0x61,0xb8, +0x12,0x23,0x9e,0x7a,0x37,0x28,0x97,0x7e,0x34,0x62,0x12,0x12,0x23,0x9e,0x7a,0x37, +0x28,0x9b,0x7e,0x34,0x61,0xbc,0x12,0x23,0x9e,0x7a,0x37,0x28,0x9d,0x7e,0x34,0x61, +0xbe,0x12,0x23,0x9e,0x7a,0x37,0x28,0x9f,0x7e,0x34,0x61,0xc0,0x12,0x23,0x9e,0x12, +0xc0,0x87,0x12,0x23,0x9e,0x7a,0x37,0x28,0xa3,0x90,0x61,0xc4,0xe4,0x93,0x7a,0xb3, +0x28,0xa5,0xe4,0x7a,0xb3,0x28,0xa8,0x12,0x2f,0xdd,0x3e,0x34,0x7e,0x8, 0x25,0xf7, +0xe4,0x2, 0x20,0xde,0x12,0x25,0xc3,0x7e,0xb3,0x36,0x71,0xb4,0x1, 0x16,0x7e,0x34, +0x62,0x34,0x12,0x23,0x9e,0x7a,0x37,0x2a,0x5a,0x7e,0x34,0x62,0x36,0x12,0x23,0x9e, +0x7a,0x37,0x2a,0x5c,0x7e,0xb3,0x28,0xa8,0xb4,0x1, 0x37,0x7e,0x34,0x62,0x3e,0x12, +0x23,0x9e,0x7a,0x37,0x2a,0x5a,0x7e,0x34,0x62,0x40,0x12,0x23,0x9e,0x7a,0x37,0x2a, +0x5c,0x7e,0x34,0x62,0x42,0x12,0x23,0x9e,0x7a,0x37,0x2a,0x4f,0x7e,0x34,0x62,0x44, +0x12,0x23,0x9e,0x7a,0x37,0x2a,0x51,0x7e,0x34,0x62,0x46,0x12,0x23,0x9e,0x7a,0x37, +0x2a,0x53,0x7e,0xb3,0x2a,0x2, 0x70,0x21,0x7e,0x27,0x2a,0x5a,0x7d,0x32,0x7e,0x14, +0x0, 0x4, 0xad,0x13,0x7d,0x31,0x12,0x25,0x3c,0xbe,0x34,0x0, 0x50,0x28,0x4, 0x7e, +0x34,0x0, 0x50,0x2d,0x32,0x7a,0x37,0x2a,0x5a,0x22,0x7e,0x54,0x0, 0x54,0x7e,0x44, +0x0, 0xff,0x69,0x32,0x0, 0x4, 0x69,0x22,0x0, 0x2, 0xb, 0x2a,0x10,0x7a,0x1d,0x26, +0x7a,0x15,0x24,0x7e,0x34,0x0, 0x20,0x7e,0x8, 0x0, 0x24,0x7e,0x24,0x0, 0x6, 0x12, +0xb7,0x9d,0x7e,0x34,0x61,0x4f,0x12,0x23,0x9e,0x1e,0x34,0x1e,0x34,0x7a,0x73,0x36, +0xe1,0x7e,0x34,0x61,0x51,0x12,0x23,0x9e,0xe, 0x34,0xe, 0x34,0x7a,0x73,0x36,0xe2, +0x7e,0x34,0x61,0x55,0x12,0x23,0x9e,0x12,0x25,0x3c,0x7a,0x73,0x36,0xe3,0x7e,0x34, +0x61,0x57,0x12,0x23,0x9e,0x12,0x25,0x3c,0x7a,0x73,0x36,0xe4,0x7e,0x34,0x61,0x59, +0x12,0x23,0x9e,0x12,0x25,0x3c,0x7a,0x73,0x36,0xe5,0x7e,0x34,0x61,0x5b,0x12,0x23, +0x9e,0x12,0x25,0x3c,0x7a,0x73,0x36,0xe6,0x7e,0x34,0x0, 0x59,0xca,0x39,0x7e,0x34, +0x61,0x5f,0x7e,0x24,0x0, 0xff,0x7e,0x8, 0x36,0xe7,0x12,0x20,0xb9,0x1b,0xfd,0xe5, +0x25,0x7a,0xb3,0x37,0x12,0xe5,0x28,0x7a,0xb3,0x37,0x1, 0x22,0x1e,0x34,0x1e,0x34, +0x1e,0x34,0x1e,0x34,0x22,0x90,0x60,0x99,0xe4,0x93,0x7a,0xb3,0x2a,0x4d,0x90,0x60, +0x9e,0xe4,0x93,0x7a,0xb3,0x2a,0x4e,0x7e,0x34,0x61,0x55,0x12,0x23,0x9e,0x12,0xc0, +0x7e,0x12,0x23,0x9e,0x7a,0x37,0x2a,0x51,0x7e,0x14,0x61,0x59,0x7e,0x4, 0x0, 0xff, +0xb, 0xa, 0x20,0x7a,0x27,0x2a,0x53,0x7a,0x37,0x2a,0x55,0x90,0x60,0x9d,0xe4,0x93, +0x7a,0xb3,0x2a,0x59,0x12,0x23,0x7c,0x12,0xc0,0x35,0x7e,0x34,0x62,0x12,0x12,0x23, +0x9e,0x7a,0x37,0x2a,0x60,0x90,0x60,0x9f,0xe4,0x93,0x7a,0xb3,0x2a,0x64,0x90,0x60, +0xa0,0xe4,0x93,0x7a,0xb3,0x2a,0x65,0x7e,0x34,0x60,0xa1,0x12,0x23,0x9e,0x7a,0x37, +0x2a,0x66,0x7e,0x34,0x61,0x5b,0x12,0x23,0x9e,0x7a,0x37,0x2a,0x62,0xe4,0x7a,0xb3, +0x16,0x92,0x22,0x12,0x23,0x7c,0x12,0xc0,0x35,0x7e,0x34,0x61,0x55,0x12,0x23,0x9e, +0x12,0xc0,0x7e,0x12,0x23,0x9e,0x7a,0x37,0x2a,0x51,0x7e,0x34,0x61,0x59,0x12,0x23, +0x9e,0x7a,0x37,0x2a,0x53,0x22,0xca,0xf8,0x7e,0xf3,0x37,0xa0,0xbe,0xf0,0x5, 0x78, +0xb, 0x74,0x1, 0x7a,0xb3,0x37,0xa0,0x12,0x0, 0x9, 0x80,0x52,0xbe,0xf0,0x4, 0x78, +0x13,0x12,0xbf,0xe0,0x12,0x23,0x9e,0x12,0x26,0x5b,0xe4,0x7a,0xb3,0x2b,0x2, 0x12, +0x7a,0x2d,0x80,0x3a,0xbe,0xf0,0x6, 0x78,0x19,0x12,0xbf,0xe0,0x12,0x23,0x9e,0x12, +0x26,0x5b,0x12,0x49,0xd, 0xe4,0x7a,0xb3,0x2b,0x1e,0x12,0x69,0xab,0x12,0xc0,0xd7, +0x80,0x1c,0xbe,0xf0,0x7, 0x78,0x1d,0x12,0xbf,0xe0,0x12,0x23,0x9e,0x12,0x26,0x5b, +0x12,0x2f,0xf4,0x50,0xfb,0x12,0x88,0x17,0x12,0x69,0x97,0x12,0x28,0x48,0x74,0x2, +0x7a,0xb3,0x37,0xa0,0xda,0xf8,0x22,0x7e,0x34,0x3, 0xe8,0x6d,0x22,0x7a,0x27,0x3, +0xed,0x7a,0x37,0x3, 0xef,0x22,0x7e,0xb3,0x37,0x6, 0x14,0x68,0x60,0x14,0x78,0x2, +0xe1,0x10,0x14,0x68,0x73,0x24,0x3, 0x68,0x2, 0xe1,0x5, 0x12,0xc1,0xf, 0x38,0x8, +0x30,0x10,0xf, 0x12,0xc1,0x7, 0x68,0xa, 0x12,0x63,0x2, 0xe4,0x7a,0xb3,0x38,0x85, +0x80,0x7e,0x7e,0xb3,0x36,0xe7,0x30,0xe0,0x77,0x7e,0x73,0x36,0xe8,0xa, 0x27,0x7e, +0x34,0x4, 0x0, 0xad,0x32,0x7e,0xb3,0x37,0x31,0xb4,0x1, 0xb, 0x7e,0x34,0x62,0x64, +0x12,0x23,0x9e,0x2e,0x34,0x4, 0x0, 0xbe,0x37,0x38,0x83,0x50,0x53,0x12,0x63,0x2, +0x74,0x1, 0x7a,0xb3,0x37,0x6, 0xe4,0x7a,0xb3,0x38,0x87,0x80,0x43,0x12,0xc1,0xf, +0x28,0x39,0xe4,0x7a,0xb3,0x37,0x6, 0x7e,0xb3,0x38,0x85,0xb4,0x1, 0x6, 0x74,0x1, +0x7a,0xb3,0x37,0x6, 0xd2,0x17,0x80,0x23,0x7e,0x34,0x60,0xa5,0x12,0x23,0x9e,0x12, +0x26,0x5b,0x12,0x45,0x73,0x12,0x23,0x54,0xe4,0x7a,0xb3,0x37,0x6, 0x7a,0xb3,0x39, +0x7, 0xd2,0x17,0x80,0xb, 0x74,0x1, 0x7a,0xb3,0x37,0x6, 0xe4,0x7a,0xb3,0x39,0x7, +0x12,0x90,0xd2,0x2, 0x27,0x16,0xca,0xd8,0xca,0x79,0x7e,0xb3,0x37,0x6, 0xb4,0x1, +0x2, 0x80,0x3, 0x2, 0x28,0x38,0x6c,0xdd,0x6c,0xff,0x12,0x91,0x11,0x7d,0xf3,0x12, +0x2f,0xf4,0x50,0xfb,0x74,0x1, 0x7a,0xb3,0x38,0x86,0x12,0x3d,0xac,0x12,0x13,0xc7, +0x12,0x0, 0x1e,0x74,0xa, 0x12,0x45,0x15,0x12,0xc0,0xbd,0x7e,0xe7,0x2b,0xd, 0x7a, +0xe5,0x24,0x7e,0xe3,0x2a,0xfa,0x74,0x4, 0x7a,0xb3,0x2a,0xfa,0x7e,0xe7,0x2b,0xd, +0x5e,0xe4,0x0, 0x3f,0x7a,0xe7,0x2b,0xd, 0x7e,0xb3,0x2a,0xfa,0x12,0x7b,0xd0,0x7c, +0x7b,0x74,0x6, 0xac,0x7b,0x7e,0x24,0x0, 0x4, 0x12,0x1e,0xb9,0x7d,0x23,0x7d,0x3f, +0x12,0x25,0x3c,0xad,0x32,0x7a,0x37,0x2b,0x7, 0x12,0x4e,0xe0,0x12,0x26,0x57,0x7e, +0xb3,0x37,0x31,0xb4,0x1, 0x4, 0x74,0x10,0x80,0x2, 0x74,0xa, 0x12,0x91,0x5d,0x12, +0x4f,0xaf,0x80,0xf, 0x80,0x7, 0x12,0x45,0xcf,0xe4,0x12,0x46,0x7, 0x20,0x93,0xf6, +0x12,0x45,0x9f,0x30,0x18,0xf7,0x30,0x17,0xf4,0xd2,0x4, 0x12,0x45,0x5a,0xe4,0x12, +0x13,0xde,0xb, 0xd0,0x12,0x4c,0x83,0x12,0x91,0x76,0x7e,0xa3,0x38,0x85,0x4c,0xaa, +0x78,0x6, 0x74,0x1, 0x7a,0xb3,0x38,0x86,0x4c,0xaa,0x68,0xb, 0x7e,0xb3,0x37,0x31, +0x70,0x5, 0xe4,0x7a,0xb3,0x38,0x85,0x12,0x28,0x3d,0x78,0x18,0x7e,0xb3,0x38,0x85, +0x60,0x12,0xe4,0x7a,0xb3,0x38,0x85,0x7a,0xb3,0x2a,0x2, 0x7a,0xb3,0x2a,0x3, 0x7e, +0xf0,0x1, 0x80,0x1d,0x12,0x28,0x3d,0x68,0x10,0x7e,0xb3,0x38,0x85,0x70,0xa, 0x7e, +0xf0,0x1, 0xe4,0x7a,0xb3,0x37,0x6, 0x80,0x8, 0xbe,0xd0,0x32,0x50,0x3, 0x2, 0x27, +0x8c,0xe4,0x7a,0xb3,0x2b,0x4, 0x7e,0x35,0x24,0x7a,0x37,0x2b,0xd, 0x7a,0xe3,0x2a, +0xfa,0x4c,0xff,0x68,0x3, 0x12,0x28,0x48,0xda,0x79,0xda,0xd8,0x22,0x7e,0x73,0x38, +0xf2,0xa, 0x37,0x5e,0x34,0x0, 0x2, 0x22,0xe4,0x7a,0xb3,0x34,0x3a,0x7a,0xb3,0x34, +0x39,0x12,0x4e,0x9b,0xb4,0x1, 0x4, 0x74,0x1, 0x80,0x2, 0x74,0x3, 0x7a,0xb3,0x34, +0x3a,0x22,0xca,0x3b,0x12,0x2f,0xf4,0x50,0xfb,0x7e,0xf3,0x2b,0xf, 0x7c,0xbf,0x12, +0xb3,0xd2,0x12,0xb3,0xe9,0x7e,0xb3,0x2b,0x1f,0xf5,0x28,0x7e,0xb3,0x2b,0x20,0xf5, +0x29,0x7e,0xb3,0x37,0x8, 0xb4,0x1, 0xf, 0x12,0x8d,0x6c,0x7e,0xb3,0x16,0x91,0x70, +0x6, 0x12,0x28,0x48,0xc3,0x21,0x6c,0x12,0x29,0x6f,0x3e,0x34,0xca,0x39,0x7e,0x18, +0x6, 0xfc,0x7e,0x8, 0x4, 0x7e,0x12,0x20,0xb9,0x1b,0xfd,0x12,0x29,0x6f,0x3e,0x34, +0xca,0x39,0x7e,0x18,0x7, 0x7a,0x7e,0x8, 0x4, 0x0, 0x12,0x20,0xb9,0x1b,0xfd,0x7e, +0xb3,0x37,0x8, 0xb4,0x3, 0x7, 0x12,0xab,0xfd,0x7a,0x37,0x37,0xe3,0x74,0x1, 0x7a, +0xb3,0x16,0x90,0x12,0x69,0x8e,0x12,0xab,0xeb,0x7e,0xc3,0x3, 0xec,0x12,0x6e,0x31, +0xe4,0x12,0x13,0xde,0x12,0x28,0x48,0x7e,0x8, 0x4, 0x7e,0x7a,0xd, 0x2a,0x7e,0x18, +0x6, 0x76,0x7e,0xb3,0x2b,0x72,0x12,0x7a,0xc8,0x7e,0x8, 0x4, 0x0, 0x7a,0xd, 0x2a, +0x7e,0x18,0x5, 0xf8,0x7e,0xb3,0x25,0xf0,0x12,0x7a,0xc8,0x7e,0xd3,0x2b,0x1f,0x7e, +0xe3,0x2b,0x20,0xe5,0x28,0x7a,0xb3,0x2b,0x1f,0xe5,0x29,0x12,0x6e,0x8b,0x50,0x5, +0x7c,0xbc,0x12,0xb3,0x2a,0x7e,0x34,0x8, 0xa, 0x7e,0x4, 0xd, 0xc8,0x7d,0x20,0x7d, +0x10,0x12,0x6a,0xd4,0x7a,0xd3,0x2b,0x1f,0x7a,0xe3,0x2b,0x20,0x7c,0xbf,0x12,0x86, +0xf8,0x12,0xa9,0xf5,0x7e,0xb3,0x39,0x7, 0x4, 0x7a,0xb3,0x39,0x7, 0x7e,0x73,0x39, +0x7, 0xbe,0x70,0xfa,0x28,0x6, 0x74,0x64,0x7a,0xb3,0x39,0x7, 0x7e,0xb3,0x16,0x90, +0x60,0x9, 0x7e,0xb3,0x16,0x91,0x60,0x3, 0xd3,0x80,0x1, 0xc3,0xda,0x3b,0x22,0x7e, +0x73,0x2a,0x74,0xa, 0x27,0x7e,0x73,0x2a,0x73,0xa, 0x37,0x2d,0x32,0x22,0x12,0x48, +0x7, 0x7e,0xb3,0x37,0x8, 0xb4,0x3, 0x6c,0x12,0xb6,0xb8,0x12,0x26,0x57,0x12,0x3f, +0xfb,0x7e,0xb3,0x37,0x9c,0x30,0xe7,0xe9,0x12,0x28,0x62,0x12,0x29,0x6f,0x3e,0x34, +0xca,0x39,0x7e,0x18,0x4, 0x0, 0x7e,0x8, 0x4, 0xfc,0x12,0x20,0xb9,0x1b,0xfd,0x12, +0x29,0x6f,0x3e,0x34,0xca,0x39,0x7e,0x18,0x4, 0x7e,0x7e,0x8, 0x5, 0x7a,0x12,0x20, +0xb9,0x1b,0xfd,0x7e,0xb3,0x2b,0x1d,0xb4,0x1, 0x18,0x12,0xab,0xb8,0x12,0x75,0xe9, +0x12,0xaf,0x66,0x12,0xa7,0xbd,0x12,0x88,0x5f,0x12,0x56,0xde,0x12,0x2a,0x3, 0x12, +0x58,0x52,0x12,0x48,0x39,0x12,0x3a,0x9f,0x7e,0xb3,0x37,0x9c,0x54,0x7f,0x7a,0xb3, +0x37,0x9c,0x80,0x8d,0x12,0x2f,0xee,0x2, 0x0, 0x46,0x7a,0xb3,0x2b,0x2, 0x7a,0xb3, +0x2b,0x1e,0x22,0x12,0x52,0x6d,0x12,0x2b,0xfa,0x12,0x2b,0xfa,0x12,0x36,0xac,0x12, +0x9c,0xfd,0x12,0x9f,0xef,0x12,0x2b,0xfa,0x12,0x9b,0xe7,0x12,0x2b,0xfa,0x12,0xa0, +0xae,0x12,0x2b,0xfa,0x2, 0x2a,0x27,0xca,0x3b,0x75,0x24,0x0, 0x6c,0xcc,0x6c,0xdd, +0x7e,0xc4,0x0, 0x3c,0xca,0xc9,0x7e,0x18,0x36,0x25,0x7e,0x8, 0x35,0xe9,0x12,0x20, +0xb9,0x1b,0xfd,0x7e,0xf3,0x28,0x84,0xa, 0xcf,0x3e,0xc4,0xca,0xc9,0x7e,0x18,0x26, +0xfa,0x7e,0x8, 0x1f,0x34,0x12,0x20,0xb9,0x1b,0xfd,0x6c,0x88,0x6c,0xee,0x41,0xfb, +0x7e,0xc4,0x3, 0xff,0x7e,0xc0,0xff,0x6c,0x99,0x80,0x4c,0x74,0x2, 0xac,0xb9,0x9, +0xb5,0x1f,0x34,0xbe,0xb0,0xff,0x68,0x3d,0x7c,0xb9,0x12,0x2f,0xb7,0x60,0x36,0x74, +0x2, 0xac,0xb9,0x9, 0x75,0x1f,0x35,0xa, 0x27,0x74,0x2, 0xac,0xbe,0x9, 0x75,0x36, +0x26,0xa, 0x37,0x12,0x81,0xbf,0x74,0x2, 0xac,0xb9,0x9, 0x75,0x1f,0x34,0xa, 0x27, +0x74,0x2, 0xac,0xbe,0x9, 0x75,0x36,0x25,0x12,0xa1,0x4b,0x2d,0x13,0xbd,0xc1,0x28, +0x4, 0x7d,0xc1,0x7c,0xc9,0xb, 0x90,0xbc,0xf9,0x38,0xb0,0xbe,0xc0,0xff,0x68,0x39, +0x7e,0x70,0x2, 0xac,0x7c,0x9, 0xb3,0x1f,0x34,0x9, 0x73,0x1f,0x35,0x12,0x2c,0x40, +0xbe,0x37,0x2a,0x5a,0x48,0x23,0x7e,0x70,0x2, 0xac,0x7c,0x9, 0x53,0x1f,0x34,0x74, +0x2, 0xac,0xbd,0x19,0x55,0x1f,0x70,0x9, 0x53,0x1f,0x35,0x19,0x55,0x1f,0x71,0x74, +0xff,0x19,0xb3,0x1f,0x34,0xb, 0x80,0xb, 0xd0,0xb, 0xe0,0x7e,0x73,0x35,0xe8,0xbc, +0x7e,0x28,0x2, 0x41,0x60,0x7c,0xe8,0x80,0x6d,0x6d,0xdd,0x7e,0x80,0xff,0x6c,0x99, +0x80,0x3c,0x7c,0xb9,0x12,0x2f,0xb7,0x60,0x33,0x12,0x2f,0xe4,0xbe,0xb0,0xff,0x68, +0x2b,0x9, 0x73,0x1f,0x35,0x12,0x30,0x3, 0x7f,0x71,0xb, 0x7a,0x50,0xbe,0x54,0x0, +0x0, 0x58,0x5, 0x6d,0x55,0x1b,0x7a,0x50,0xb, 0x7a,0xc0,0xbd,0xcd,0x8, 0xd, 0x12, +0x2f,0xe4,0xf5,0x24,0x9, 0xc3,0x1f,0x35,0x7d,0xdc,0x7c,0x89,0xb, 0x90,0xbc,0xf9, +0x38,0xc0,0xbe,0x80,0xff,0x68,0x1d,0x7e,0x71,0x24,0x74,0x2, 0xac,0xbd,0x19,0x75, +0x1f,0x70,0x19,0xc5,0x1f,0x71,0x7e,0xa0,0xff,0x7e,0x70,0x2, 0xac,0x78,0x19,0xa3, +0x1f,0x34,0xb, 0xd0,0xb, 0xe0,0x90,0x60,0x99,0xe4,0x93,0xbc,0xbe,0x38,0x8a,0x90, +0x60,0x9a,0xe4,0x93,0x7c,0xab,0x74,0x2, 0xa4,0xca,0x59,0x7e,0x18,0x1f,0x70,0x7e, +0x8, 0x1f,0x34,0x12,0x20,0xb9,0x1b,0xfd,0x7c,0xfd,0x12,0x97,0x4, 0x7e,0x8, 0x36, +0x25,0x74,0xff,0x12,0x20,0xde,0xbe,0xf0,0x0, 0x28,0x35,0xa, 0x3f,0x3e,0x34,0xca, +0x39,0x7e,0x18,0x1f,0x34,0x7e,0x8, 0x26,0xfa,0x12,0x20,0xb9,0x1b,0xfd,0xa, 0x3f, +0x3e,0x34,0xca,0x39,0x7e,0x18,0x1f,0x34,0x7e,0x8, 0x36,0x25,0x12,0x20,0xb9,0x1b, +0xfd,0x6c,0xee,0x80,0x7, 0x7c,0xbe,0x12,0x2f,0xd0,0xb, 0xe0,0xbc,0xfe,0x38,0xf5, +0x7a,0xf3,0x35,0xe8,0x7a,0xf3,0x28,0x84,0x90,0x60,0x99,0xe4,0x93,0xbe,0xb3,0x28, +0x84,0x50,0x4, 0x7a,0xb3,0x28,0x84,0xda,0x3b,0x22,0xca,0x79,0x6c,0xff,0x6c,0xee, +0x80,0x2e,0x7c,0xbe,0x12,0x2f,0xb7,0x60,0x25,0x7e,0x34,0x0, 0x2, 0xca,0x39,0xac, +0x7e,0x2e,0x34,0x26,0xfa,0x6d,0x22,0x7e,0x30,0x2, 0xac,0x3f,0x2e,0x14,0x26,0xfa, +0x6d,0x0, 0x12,0x20,0xb9,0x1b,0xfd,0x7c,0xbf,0x12,0x2f,0xd0,0xb, 0xf0,0xb, 0xe0, +0x12,0x9c,0xf6,0x38,0xcd,0x7a,0xf3,0x28,0x84,0xda,0x79,0x22,0x7c,0xba,0x7c,0x7d, +0x12,0x30,0x3, 0xb, 0x1a,0x30,0x22,0xca,0x3b,0x7c,0xfb,0x75,0x3b,0x0, 0x7e,0xb3, +0x2a,0x6f,0xf5,0x40,0x7e,0xb3,0x2a,0x70,0xf5,0x41,0x7e,0xd3,0x28,0x84,0xe4,0x7a, +0xb3,0x33,0xc2,0x7a,0xb3,0x33,0xc0,0x7a,0xb3,0x33,0xc1,0x7e,0x8, 0x1f,0x34,0x12, +0x2f,0xdd,0xe4,0x12,0x20,0xde,0x12,0x2f,0xdd,0x3e,0x34,0x7e,0x8, 0x33,0xc3,0xe4, +0x12,0x20,0xde,0xbe,0xd0,0x2, 0x50,0x2, 0xe1,0xa2,0x6c,0xcc,0xe1,0x91,0x12,0xc0, +0x61,0xf5,0x24,0x9, 0xb3,0x26,0xfb,0xf5,0x25,0x4c,0xcc,0x68,0x8, 0xa, 0x3c,0x9, +0xb3,0x1f,0x34,0x70,0xa, 0xa, 0x3c,0xb, 0x34,0xa, 0x2c,0x19,0x72,0x1f,0x34,0x7c, +0xbd,0x14,0xbc,0xbc,0x78,0x2, 0xe1,0x97,0xa, 0x5c,0xb, 0x54,0xf5,0x2e,0xe1,0x88, +0x7e,0x71,0x2e,0x74,0x2, 0xac,0x7b,0x9, 0xa3,0x26,0xfa,0x7a,0xa1,0x26,0x9, 0xb3, +0x26,0xfb,0xf5,0x27,0xa, 0x2a,0xe5,0x24,0x12,0x2f,0xd6,0x7c,0xb7,0xf5,0x28,0xe5, +0x27,0xa, 0x2b,0xe5,0x25,0x12,0x2f,0xd6,0x7c,0xb7,0xf5,0x29,0xe5,0x28,0xbe,0xb0, +0x4, 0x40,0x2, 0xe1,0x86,0xe5,0x29,0xbe,0xb0,0x4, 0x40,0x2, 0xe1,0x86,0x85,0x25, +0x44,0x85,0x26,0x45,0x85,0x27,0x46,0x7e,0x8, 0x0, 0x31,0x7e,0x18,0x0, 0x33,0xe5, +0x24,0x12,0xb0,0x3f,0x75,0x3b,0x0, 0x6c,0xee,0x75,0x30,0x0, 0xe5,0x24,0x7e,0x71, +0x25,0x12,0x2c,0x40,0x7a,0x35,0x35,0xe5,0x26,0x7e,0x71,0x27,0x12,0x2c,0x40,0x7a, +0x35,0x37,0x7e,0x35,0x35,0xbe,0x35,0x37,0x8, 0x7, 0x7e,0x35,0x37,0x7d,0x83,0x80, +0x3, 0x7e,0x85,0x35,0x7a,0x85,0x39,0xe, 0x84,0xe5,0x28,0xbe,0xb0,0x1, 0x38,0x2b, +0xe5,0x29,0xbe,0xb0,0x1, 0x38,0x24,0x7c,0xbf,0x30,0xe1,0x1f,0xe5,0x26,0x7e,0x71, +0x25,0x12,0x2c,0x40,0x7d,0x43,0xe5,0x24,0x7e,0x71,0x27,0x12,0x2c,0x40,0x2d,0x34, +0xbd,0x38,0x18,0x2, 0xe1,0x1d,0x75,0x30,0x1, 0xe1,0x1d,0xe5,0x28,0xbe,0xb0,0x1, +0x38,0x9, 0xe5,0x29,0xbe,0xb0,0x1, 0x38,0x2, 0xe1,0x1d,0xe5,0x28,0xbe,0xb0,0x4, +0x40,0x2, 0xe1,0x1d,0xe5,0x29,0xbe,0xb0,0x4, 0x40,0x2, 0xe1,0x1d,0x7c,0xbf,0x20, +0xe0,0x2, 0xe1,0x1d,0x6d,0x99,0x75,0x42,0x0, 0xc2,0x4, 0xc2,0x5, 0xe5,0x26,0xbe, +0xb1,0x24,0x28,0x4, 0xe5,0x24,0x80,0x2, 0xe5,0x26,0xf5,0x2a,0xe5,0x26,0xbe,0xb1, +0x24,0x50,0x4, 0xe5,0x24,0x80,0x2, 0xe5,0x26,0xf5,0x2c,0xe5,0x27,0xbe,0xb1,0x25, +0x28,0x4, 0xe5,0x25,0x80,0x2, 0xe5,0x27,0xf5,0x2b,0xe5,0x27,0xbe,0xb1,0x25,0x50, +0x4, 0xe5,0x25,0x80,0x2, 0xe5,0x27,0xf5,0x2d,0xe5,0x2c,0xbe,0xb1,0x2a,0x78,0x29, +0xd2,0x4, 0xe5,0x2a,0x60,0x8, 0xe5,0x40,0x14,0xbe,0xb1,0x2a,0x78,0x2, 0xd2,0x5, +0xe5,0x2a,0xbe,0xb0,0x0, 0x28,0x2, 0x15,0x2a,0xe5,0x40,0xa, 0x2b,0x1b,0x24,0xe5, +0x2c,0xa, 0x3b,0xbd,0x32,0x58,0x2, 0x5, 0x2c,0xe5,0x2d,0xbe,0xb1,0x2b,0x78,0x29, +0xd2,0x4, 0xe5,0x2b,0x60,0x8, 0xe5,0x41,0x14,0xbe,0xb1,0x2b,0x78,0x2, 0xd2,0x5, +0xe5,0x2b,0xbe,0xb0,0x0, 0x28,0x2, 0x15,0x2b,0xe5,0x41,0xa, 0x2b,0x1b,0x24,0xe5, +0x2d,0xa, 0x3b,0xbd,0x32,0x58,0x2, 0x5, 0x2d,0x85,0x2a,0x3c,0x80,0x4c,0x85,0x2b, +0x3d,0x80,0x3e,0xe5,0x3c,0x7e,0x71,0x3d,0x12,0x2c,0x40,0x7a,0x35,0x3e,0xe5,0x2a, +0xbe,0xb1,0x3c,0x68,0x15,0xe5,0x2c,0xbe,0xb1,0x3c,0x68,0xe, 0xe5,0x2b,0xbe,0xb1, +0x3d,0x68,0x7, 0xe5,0x2d,0xbe,0xb1,0x3d,0x78,0x9, 0x7e,0x35,0x3e,0x2d,0x93,0x5, +0x42,0x80,0xc, 0x7e,0x35,0x33,0xbe,0x35,0x3e,0x58,0x2, 0x5, 0x3b,0xb, 0xe0,0x5, +0x3d,0xe5,0x2d,0xbe,0xb1,0x3d,0x50,0xbb,0x5, 0x3c,0xe5,0x2c,0xbe,0xb1,0x3c,0x50, +0xad,0xe5,0x2c,0x12,0x2f,0xae,0xe5,0x2a,0x12,0x2f,0xa5,0xe5,0x2a,0x12,0x2f,0xae, +0xe5,0x2c,0x12,0x2f,0xa5,0x7e,0x85,0x37,0x2e,0x85,0x35,0x30,0x4, 0x9, 0x20,0x5, +0x6, 0x9d,0x98,0x15,0x42,0x15,0x42,0xe5,0x42,0xbe,0xb0,0x4, 0x28,0x6, 0xe5,0x42, +0x24,0xfc,0xf5,0x42,0xbe,0x94,0x0, 0x0, 0x58,0x2, 0x6d,0x99,0x7d,0x18,0x1a,0x2, +0x1a,0x0, 0x7e,0x35,0x31,0x1a,0x26,0x1a,0x24,0x12,0x1e,0xeb,0xe5,0x42,0xa, 0x1b, +0x6d,0x0, 0x12,0x1e,0xeb,0x7f,0x21,0x7d,0x39,0x1a,0x26,0x1a,0x24,0x7e,0x14,0x0, +0x28,0x12,0x1e,0xfc,0xbf,0x12,0x8, 0x15,0xe5,0x3b,0xa, 0x3b,0xa, 0x2e,0x9d,0x23, +0x3e,0x24,0x3e,0x24,0xa, 0x3e,0xbd,0x23,0x18,0x3, 0x75,0x30,0x2, 0xe5,0x30,0xbe, +0xb0,0x0, 0x28,0x62,0xe5,0x30,0xa, 0x3b,0x2e,0x34,0x33,0xbf,0x7e,0x39,0xb0,0x4, +0x7a,0x39,0xb0,0xe5,0x2e,0xa, 0x3b,0x9, 0xa3,0x1f,0x34,0x4c,0xaa,0x78,0xc, 0xa, +0x2c,0x9, 0xb2,0x1f,0x34,0x19,0xb3,0x1f,0x34,0x80,0x3b,0xa, 0x2c,0x9, 0xb2,0x1f, +0x34,0xf5,0x43,0xbc,0xba,0x28,0x3, 0x7a,0xa1,0x43,0x75,0x2f,0x0, 0x80,0x22,0x9, +0x33,0x1f,0x34,0xe5,0x2f,0xa, 0x2b,0x9, 0x22,0x1f,0x34,0xbc,0x23,0x68,0xa, 0xa, +0xc, 0x9, 0x30,0x1f,0x34,0xbc,0x23,0x78,0x6, 0xe5,0x43,0x19,0xb2,0x1f,0x34,0x5, +0x2f,0xbe,0xd1,0x2f,0x38,0xd9,0x5, 0x2e,0xbe,0xd1,0x2e,0x28,0x2, 0x81,0xc0,0xb, +0xc0,0xbc,0xdc,0x28,0x2, 0x81,0x8e,0x7e,0x8, 0x1f,0x34,0x12,0xaf,0x71,0x7a,0xb3, +0x33,0xc2,0xda,0x3b,0x22,0x7e,0x71,0x2d,0x12,0x2c,0x40,0x9d,0x93,0x22,0x7e,0x71, +0x2b,0x12,0x2c,0x40,0x9d,0x93,0x22,0x7c,0x7b,0x12,0x77,0xf6,0x9, 0xa2,0x27,0x72, +0x7c,0xb7,0x54,0x7, 0xa, 0x3b,0x2e,0x34,0x0, 0x5e,0x12,0x91,0x6d,0x5c,0xba,0x22, +0x7e,0x70,0x1, 0x2, 0x51,0x5f,0xa, 0x3b,0x9d,0x32,0x2, 0x21,0x0, 0x90,0x60,0x9a, +0x93,0xa, 0x3b,0x22,0x7e,0x70,0x2, 0xac,0x79,0x9, 0xb3,0x1f,0x34,0x22,0x12,0x2f, +0xf4,0x50,0xfb,0x22,0x7e,0xb3,0x34,0x3a,0xb4,0x1, 0x2, 0xc3,0x22,0xd3,0x22,0x7c, +0xbd,0x7c,0x7e,0x7e,0x13,0x2a,0x6e,0xac,0x1b,0x3e,0x4, 0x7e,0x30,0x2, 0xac,0x37, +0x2d,0x10,0x7e,0x1f,0x13,0x8a,0x2d,0x31,0x22,0xca,0x3b,0x7c,0x5b,0x7e,0x43,0x28, +0x84,0xbe,0x40,0x1, 0x28,0x2, 0x21,0x14,0x7e,0xa3,0x2a,0x6e,0x7e,0x70,0x2, 0xac, +0x75,0x9, 0xd3,0x26,0xfa,0x9, 0xc3,0x26,0xfb,0x7c,0xbd,0x7c,0x7c,0x12,0x30,0x3, +0x7f,0x1, 0x90,0x60,0xaa,0xe4,0x93,0x70,0x12,0x7c,0xfc,0x7c,0x9d,0x7e,0x83,0x2a, +0x70,0x7e,0xe3,0x2a,0x6f,0xa, 0xca,0x6d,0xbb,0x9d,0xbc,0xa, 0xa8,0x1b,0xa5,0xa, +0x5f,0xbd,0x5a,0x58,0x2, 0x21,0x14,0xa, 0x59,0x1b,0x54,0xbe,0x54,0x0, 0x0, 0x48, +0x4e,0x7c,0xb9,0x14,0x12,0x31,0x5a,0x50,0x46,0x7c,0xb9,0x14,0x12,0x31,0x17,0xb, +0x1a,0xe0,0x7d,0x3b,0x12,0x31,0x4c,0x8, 0x11,0x9d,0xae,0xbe,0xa4,0x0, 0x0, 0x58, +0x4, 0x6d,0x55,0x80,0x2, 0x7d,0x5a,0x12,0x31,0x44,0x7c,0xb8,0x24,0xfe,0xbc,0xbf, +0x78,0x1d,0x90,0x60,0xaa,0xe4,0x93,0x70,0x4, 0x7d,0xfd,0x1b,0xf4,0x7d,0x5f,0x12, +0x31,0x1e,0xb, 0x1a,0x30,0xbd,0x3a,0x8, 0x6, 0x12,0x31,0x20,0x1b,0x1a,0xa0,0xa, +0xa9,0xb, 0xa4,0xa, 0x5e,0xbd,0xa5,0x58,0x4b,0x7c,0xb9,0x4, 0x12,0x31,0x5a,0x50, +0x43,0x7c,0xb9,0x4, 0x12,0x31,0x17,0xb, 0x1a,0xe0,0x7d,0x3c,0x12,0x31,0x4c,0x8, +0x11,0x9d,0xae,0xbe,0xa4,0x0, 0x0, 0x58,0x4, 0x6d,0x55,0x80,0x2, 0x7d,0x5a,0x12, +0x31,0x44,0x7c,0xb8,0x24,0xfe,0xbc,0xbf,0x78,0x1a,0x90,0x60,0xaa,0xe4,0x93,0x70, +0x4, 0x7d,0xfd,0x1b,0xf4,0x7d,0x5f,0x12,0x31,0x1e,0xb, 0x1a,0x50,0xbd,0x5a,0x8, +0x3, 0x1b,0x1a,0xa0,0xda,0x3b,0x22,0x12,0x31,0x27,0x7d,0xd3,0x7d,0x5d,0x3e,0x54, +0x7e,0x1f,0x13,0x8a,0x2d,0x35,0x22,0x7c,0x5b,0x7e,0x43,0x2a,0x6e,0x90,0x60,0xab, +0xe4,0x93,0x7c,0xab,0x90,0x60,0xaa,0xe4,0x93,0x70,0x8, 0x7c,0x75,0xac,0x74,0xa, +0x2a,0x2d,0x32,0x22,0x2d,0x31,0x7d,0x20,0x1b,0x1a,0x50,0x22,0x3e,0x34,0x7f,0x40, +0x2d,0x93,0xb, 0x4a,0xa0,0xbe,0xe4,0x0, 0x0, 0x22,0x7c,0xab,0x6c,0x77,0x80,0x12, +0xa, 0x27,0x2e,0x24,0x60,0xac,0x12,0x51,0x4f,0x93,0xbc,0xba,0x78,0x2, 0xd3,0x22, +0xb, 0x70,0x90,0x60,0xa7,0xe4,0x93,0xbc,0xb7,0x38,0xe5,0xc3,0x22,0x12,0x36,0x9c, +0x60,0x30,0x6c,0x22,0x80,0x24,0x7c,0xb2,0x12,0x31,0x5a,0x50,0x1b,0x7c,0xb2,0x12, +0x31,0x27,0x7d,0x3, 0x12,0x36,0x94,0x49,0x55,0x38,0xe8,0x7d,0x40,0x3e,0x44,0x7e, +0x1f,0x13,0x8a,0x2d,0x34,0x1b,0x1a,0x50,0xb, 0x20,0x7e,0x73,0x2a,0x75,0xbc,0x72, +0x38,0xd4,0x22,0xca,0x3b,0x6c,0xff,0x12,0xc0,0xb4,0x7e,0xb3,0x16,0x91,0xb4,0x1, +0x2, 0x80,0x2, 0x41,0xdd,0x6c,0xcc,0x41,0xcf,0x12,0xc0,0x61,0xf5,0x27,0x9, 0xb3, +0x26,0xfb,0xf5,0x28,0x7e,0xb3,0x28,0x84,0xb4,0x1, 0xb, 0x7e,0xb3,0x36,0x71,0x70, +0x5, 0x12,0x32,0xe0,0x80,0x6, 0x75,0x25,0x2, 0x75,0x26,0x2, 0x7c,0xbc,0x12,0x30, +0x19,0xd2,0x3, 0x12,0x32,0xe7,0x7e,0xb3,0x36,0xec,0xb4,0x1, 0x1b,0x7e,0xb3,0x2a, +0x3, 0xb4,0x1, 0x14,0x7e,0xb3,0x28,0x84,0xb4,0x1, 0xd, 0x7e,0x37,0x28,0x86,0xbe, +0x34,0x0, 0xa, 0x40,0x3, 0x12,0x32,0xe0,0xe5,0x27,0x60,0xc, 0xa, 0x2e,0x1b,0x24, +0xe5,0x27,0xa, 0x3b,0xbd,0x32,0x48,0x3, 0x75,0x25,0x1, 0xe5,0x28,0x60,0xc, 0xa, +0x2d,0x1b,0x24,0xe5,0x28,0xa, 0x3b,0xbd,0x32,0x48,0x3, 0x75,0x26,0x1, 0x75,0x24, +0x0, 0x80,0x3c,0xe5,0x24,0xbc,0xbc,0x68,0x34,0x12,0x35,0xda,0x9, 0xa3,0x26,0xfa, +0x7a,0xa1,0x29,0x9, 0xb3,0x26,0xfb,0xf5,0x2a,0xa, 0x2a,0xe5,0x27,0x12,0x2f,0xd6, +0xbe,0x34,0x0, 0x3, 0x18,0x17,0xe5,0x2a,0xa, 0x2b,0xe5,0x28,0x12,0x2f,0xd6,0xbe, +0x34,0x0, 0x3, 0x18,0x8, 0x75,0x25,0x1, 0x75,0x26,0x1, 0x80,0x7, 0x5, 0x24,0x12, +0x36,0xa4,0x38,0xbf,0xe5,0x27,0x7e,0x71,0x28,0x12,0xa0,0x94,0x50,0x8, 0x12,0x31, +0x7d,0x12,0x35,0xd3,0x80,0x8, 0x12,0x69,0x84,0x50,0x3, 0x12,0x32,0xe0,0xe5,0x25, +0x7e,0x71,0x26,0x7c,0x6c,0x7c,0x5f,0x12,0x33,0x21,0x90,0x61,0x36,0xe4,0x93,0xb4, +0x1, 0x16,0x7e,0x70,0x9, 0xac,0x7c,0x7d,0x13,0x2e,0x14,0x27,0x76,0x6d,0x0, 0x2e, +0x34,0x27,0x78,0x6d,0x22,0x12,0x7f,0xc5,0x12,0x31,0x7d,0xb, 0xf0,0xb, 0xc0,0x7e, +0x73,0x28,0x84,0xbc,0x7c,0x28,0x2, 0x21,0xc9,0x7a,0xf3,0x28,0x84,0xda,0x3b,0x22, +0x75,0x25,0x3, 0x75,0x26,0x3, 0x22,0x12,0x36,0x9c,0x60,0x34,0x6c,0x22,0x80,0x28, +0x7c,0xb2,0x12,0x31,0x5a,0x50,0x1f,0x7c,0xb2,0x12,0x31,0x27,0x3e,0x34,0x7e,0x7f, +0x13,0x8a,0x2d,0xf3,0xb, 0x7a,0x30,0x12,0x36,0x94,0x59,0x35,0x38,0xe8,0x30,0x3, +0x5, 0x6d,0x33,0x1b,0x7a,0x30,0xb, 0x20,0x7e,0x73,0x2a,0x75,0xbc,0x72,0x38,0xd0, +0x22,0xca,0x3b,0x7c,0xf5,0x7c,0xe6,0x7c,0xd7,0x7c,0xcb,0x74,0x9, 0xac,0xbf,0x7d, +0xd5,0x2e,0xd4,0x27,0x76,0x6d,0xcc,0x7e,0x37,0x2a,0x66,0x7a,0x35,0x43,0xe4,0x39, +0xb6,0x0, 0x6, 0x7e,0x70,0x2, 0xac,0x7e,0x9, 0xb3,0x26,0xfa,0xf5,0x31,0x9, 0xb3, +0x26,0xfb,0xf5,0x32,0x7e,0x73,0x2a,0x6e,0x7c,0x6d,0x7e,0x8, 0x0, 0x35,0x12,0x35, +0x80,0xf5,0x33,0xe5,0x31,0x7e,0x73,0x2a,0x6d,0x7c,0x6c,0x7e,0x8, 0x0, 0x34,0x12, +0x35,0x80,0x7c,0xab,0xe5,0x34,0x7e,0x71,0x35,0x12,0x30,0x3, 0x7a,0x35,0x3f,0x7e, +0x34,0x15,0x9e,0x7a,0x35,0x41,0x85,0x34,0x39,0x85,0x35,0x3a,0x7a,0xa1,0x3b,0x85, +0x33,0x3c,0x7e,0xb3,0x2a,0x59,0xf5,0x3d,0x75,0x3e,0x0, 0x7e,0x8, 0x0, 0x39,0x12, +0x90,0x50,0x7d,0x23,0x6d,0x33,0x7e,0x97,0x15,0xa0,0x6d,0x88,0x2f,0x41,0x7e,0x37, +0x15,0xa2,0x6d,0x22,0x7d,0x3, 0x6d,0x11,0x7e,0x37,0x15,0xa4,0x2f,0x10,0x7a,0x1d, +0x2b,0x7e,0x37,0x15,0xa6,0x7d,0x23,0x6d,0x33,0x7e,0xb7,0x15,0xa8,0x6d,0xaa,0x2f, +0x51,0x7f,0x74,0xa, 0x4c,0xe5,0x31,0xa, 0x5b,0x9d,0x54,0xf5,0x2f,0x81,0xc7,0xa, +0x4d,0xe5,0x32,0xa, 0x5b,0x9d,0x54,0xf5,0x30,0x81,0xb1,0xe5,0x2f,0xbe,0xb0,0x0, +0x58,0x2, 0x81,0xaf,0x7e,0x73,0x2a,0x6d,0xbe,0x71,0x2f,0x18,0x2, 0x81,0xaf,0xe5, +0x30,0xbe,0xb0,0x0, 0x58,0x2, 0x81,0xaf,0x7e,0x73,0x2a,0x6e,0xbe,0x71,0x30,0x18, +0x2, 0x81,0xaf,0xe5,0x2f,0x7e,0x71,0x30,0x12,0x2c,0x40,0x7e,0x53,0x2a,0x59,0xa, +0x25,0x9d,0x32,0x7a,0x35,0x37,0xbe,0x34,0x0, 0x0, 0x18,0x2, 0x81,0xaf,0x7e,0x35, +0x43,0xbe,0x35,0x37,0x18,0xd, 0x7f,0x16,0x2e,0x34,0x0, 0x6, 0x7e,0x1b,0xb0,0x4, +0x7a,0x1b,0xb0,0xe5,0x31,0xa, 0x2b,0xe5,0x2f,0x12,0x35,0x65,0x18,0xb, 0xe5,0x32, +0xa, 0x2b,0xe5,0x30,0x12,0x35,0x65,0x8, 0x56,0xe5,0x2f,0x7e,0x71,0x30,0x7c,0x6e, +0x12,0xb8,0x88,0xf5,0x36,0xb4,0x2, 0xc, 0x7e,0x35,0x37,0x7d,0x23,0xe, 0x24,0x9d, +0x32,0x7a,0x35,0x37,0xe5,0x36,0xbe,0xb0,0x2, 0x68,0x5, 0xe5,0x36,0xb4,0x1, 0x2f, +0x7e,0x45,0x37,0x7d,0x34,0x1a,0x26,0x1a,0x24,0xe5,0x2f,0x12,0x35,0x56,0x7f,0x1, +0x7e,0x1d,0x2b,0x9f,0x10,0x7a,0x1d,0x2b,0x7d,0x34,0x1a,0x26,0x1a,0x24,0xe5,0x30, +0x12,0x35,0x56,0x9f,0x51,0x12,0x35,0x5d,0x9f,0x41,0x12,0x35,0x5d,0x9f,0x71,0x5, +0x30,0xa, 0x2d,0xe5,0x32,0xa, 0x3b,0x2d,0x32,0x1a,0x27,0xe5,0x30,0x1a,0x3b,0xbd, +0x32,0x18,0x2, 0x61,0xeb,0x5, 0x2f,0xa, 0x2c,0xe5,0x31,0xa, 0x3b,0x2d,0x32,0x1a, +0x27,0xe5,0x2f,0x1a,0x3b,0xbd,0x32,0x18,0x2, 0x61,0xdf,0xbe,0x48,0x0, 0x0, 0x78, +0x2, 0xb, 0x4c,0xbe,0x78,0x0, 0x0, 0x78,0x2, 0xb, 0x7c,0x7e,0x1d,0x2b,0x7f,0x4, +0x12,0x35,0x71,0x1b,0x6a,0x30,0x7f,0x15,0x7f,0x7, 0x12,0x35,0x71,0x79,0x36,0x0, +0x2, 0x7e,0xb3,0x2a,0x65,0x60,0xd, 0x1e,0xf4,0x1e,0xe4,0x50,0x4, 0x4e,0xf4,0x80, +0x0, 0x14,0x78,0xf3,0xbe,0x78,0x0, 0x7f,0x28,0x4, 0x7e,0x78,0x0, 0x7f,0x7d,0x3f, +0x39,0x76,0x0, 0x5, 0x74,0x9, 0xac,0xbe,0x9, 0x75,0x27,0x7c,0x39,0x76,0x0, 0x6, +0xbe,0x70,0xf, 0x28,0x6, 0x74,0xf, 0x39,0xb6,0x0, 0x6, 0x7e,0xa1,0x31,0x7e,0x70, +0x9, 0xac,0x7f,0x19,0xa3,0x27,0x7d,0x7e,0xa1,0x32,0x7e,0x70,0x9, 0xac,0x7f,0x19, +0xa3,0x27,0x7e,0xda,0x3b,0x22,0x1a,0x1b,0x1a,0x2, 0x2, 0x1e,0xeb,0x7e,0x35,0x37, +0x1a,0x26,0x1a,0x24,0x22,0x1a,0x3b,0x9d,0x32,0x12,0x21,0x0, 0xbe,0x34,0x0, 0x1, +0x22,0x74,0x6, 0x2f,0x11,0x14,0x78,0xfb,0x12,0x1f,0x7, 0x2e,0x18,0x0, 0x20,0x22, +0xca,0xf8,0x7c,0xf6,0x7c,0x87,0x7c,0x9b,0xa, 0x2f,0x7d,0x32,0x3e,0x34,0xb, 0x34, +0x7c,0xb7,0xbc,0xf9,0x38,0x14,0xa, 0xf8,0x1b,0xf4,0xa, 0x3f,0x9d,0xf3,0xa, 0x39, +0xbd,0x3f,0x18,0x6, 0x7c,0xab,0xa, 0x39,0x80,0x1d,0xbc,0xf9,0x28,0xd, 0xa, 0x39, +0xa, 0x5f,0x2d,0x53,0xb, 0x54,0x7c,0xab,0xe4,0x80,0x10,0xa, 0x3f,0xa, 0x58,0x2d, +0x53,0xa, 0x39,0x9d,0x53,0x7c,0xab,0x9d,0x32,0x7c,0xb7,0x7a,0xb, 0xb0,0x7c,0xba, +0xda,0xf8,0x22,0x75,0x25,0x0, 0x75,0x26,0x0, 0x22,0x7e,0x71,0x24,0x74,0x2, 0xac, +0x7b,0x22,0xca,0x3b,0x7e,0xb3,0x2a,0x74,0xf5,0x27,0x12,0x0, 0x66,0x50,0x2, 0xc1, +0x6f,0x6d,0x33,0x9e,0x37,0x2a,0x4f,0x3e,0x34,0xbe,0x37,0x7, 0xf8,0x18,0x70,0x7e, +0xb3,0x16,0x92,0x70,0x6a,0x7e,0xb3,0x28,0xa8,0xb4,0x1, 0x60,0x7e,0x77,0x2a,0x51, +0x7e,0x67,0x2a,0x53,0x75,0x24,0x0, 0x80,0x4e,0xe5,0x24,0x12,0x2f,0xb7,0x60,0x45, +0x12,0x35,0xda,0x12,0x9d,0x80,0xf5,0x26,0x7e,0xb3,0x2a,0x3, 0xb4,0x1, 0xe, 0x90, +0x60,0xab,0xe4,0x93,0xbe,0xb1,0x26,0x78,0x4, 0xe, 0x64,0xe, 0x74,0x7e,0xa1,0x26, +0x74,0x2, 0xa4,0x49,0x35,0x4, 0xfc,0xbd,0x36,0x48,0xd, 0xe5,0x25,0xa, 0x2b,0xe5, +0x27,0x12,0x9b,0x18,0xbd,0x37,0x58,0xd, 0xe5,0x24,0x6c,0x77,0x12,0x51,0x5f,0x12, +0x35,0xda,0x12,0x37,0x9f,0x5, 0x24,0x12,0x36,0xa4,0x38,0xad,0x12,0xa6,0x5, 0xda, +0x3b,0x22,0x12,0x46,0xa2,0x12,0x24,0x9a,0x12,0x73,0x28,0x12,0x22,0xf2,0x7e,0xb3, +0x37,0x8, 0x24,0xfd,0x68,0x9, 0xb, 0xb1,0x78,0xf4,0x12,0x58,0xf0,0x80,0xef,0x12, +0x29,0x7e,0x80,0xea,0x7c,0xa3,0xb, 0x30,0x74,0x2, 0xa4,0x22,0x6c,0x33,0x90,0x60, +0xa7,0xe4,0x93,0x22,0x7e,0x73,0x28,0x84,0xbe,0x71,0x24,0x22,0x12,0xa5,0xee,0x12, +0x9b,0x49,0x12,0x35,0xe2,0x12,0x9a,0x38,0x2, 0x36,0xbb,0xca,0x3b,0x12,0x2b,0xfa, +0x7e,0xb3,0x28,0x84,0x60,0x6, 0x7e,0xb3,0x35,0xe2,0x60,0x9, 0xe4,0x7a,0xb3,0x35, +0xe4,0x7a,0xb3,0x35,0x69,0x7e,0xb3,0x35,0xe2,0x70,0x69,0x6c,0x99,0x80,0x5d,0x74, +0x2, 0xac,0xb9,0x9, 0x85,0x26,0xfa,0x9, 0xf5,0x26,0xfb,0x7c,0xb9,0x12,0x9a,0xed, +0x40,0x48,0x6c,0xee,0x80,0x3c,0x74,0x2, 0xac,0xbe,0x9, 0xd5,0x35,0x6a,0x9, 0xc5, +0x35,0x6b,0xa, 0x28,0xa, 0x3d,0x12,0x37,0x67,0x78,0x25,0xa, 0x2f,0xa, 0x3c,0x12, +0x37,0x67,0x78,0x1c,0x7c,0xb9,0x12,0x37,0x6f,0x7e,0x14,0x62,0x2b,0x12,0x87,0xee, +0x58,0xe, 0x7c,0xb9,0x6c,0x77,0x12,0x51,0x5f,0x7c,0xb8,0x7c,0x7f,0x12,0x37,0xa7, +0xb, 0xe0,0x7e,0x73,0x35,0xe4,0xbc,0x7e,0x38,0xbc,0xb, 0x90,0x7e,0x73,0x28,0x84, +0xbc,0x79,0x38,0x9b,0x7e,0x73,0x35,0x69,0x7a,0x73,0x35,0xe4,0xa, 0x37,0x3e,0x34, +0xca,0x39,0x7e,0x18,0x35,0xa6,0x7e,0x8, 0x35,0x6a,0x12,0x20,0xb9,0x1b,0xfd,0xe4, +0x7a,0xb3,0x35,0xe2,0xda,0x3b,0x22,0x9d,0x32,0x12,0x21,0x0, 0x4d,0x33,0x22,0x7c, +0xab,0x7e,0x70,0x2, 0xac,0x7a,0x9, 0xb3,0x26,0xfa,0x9, 0x73,0x26,0xfb,0x2, 0x2c, +0x40,0xca,0xf8,0x7c,0xfb,0x7e,0x70,0x2, 0x12,0x99,0x6c,0x7f,0x71,0x7c,0xbf,0x12, +0x37,0x6f,0x12,0xa4,0xcf,0x7f,0x17,0x12,0x1f,0x58,0x7c,0xb7,0xda,0xf8,0x22,0x9, +0xb3,0x26,0xfa,0x9, 0x73,0x26,0xfb,0x7c,0x6b,0x7e,0xa3,0x35,0x69,0x7e,0x50,0x2, +0xac,0x5a,0x19,0x62,0x35,0xa6,0x19,0x72,0x35,0xa7,0x7c,0xba,0x4, 0x7a,0xb3,0x35, +0x69,0x22,0xca,0xf8,0x6c,0xff,0x80,0x18,0x7c,0xbf,0x12,0x37,0x6f,0xbe,0x37,0x2a, +0x5c,0x58,0xb, 0x12,0x51,0x5b,0x7e,0x70,0x2, 0xac,0x7f,0x12,0x37,0x9f,0xb, 0xf0, +0x12,0x52,0x66,0x38,0xe3,0x12,0x2b,0xfa,0xda,0xf8,0x22,0xca,0xf8,0x7c,0xab,0xbe, +0xa0,0x34,0x38,0x3, 0x2, 0x38,0xfd,0xbe,0xa0,0x35,0x78,0x6, 0x7e,0xb3,0x2b,0x10, +0x41,0x1c,0xbe,0xa0,0x36,0x68,0x5, 0xbe,0xa0,0x37,0x78,0x1d,0x7e,0x35,0x8, 0x7d, +0x23,0xb, 0x24,0x7a,0x25,0x8, 0x2e,0x37,0x31,0xce,0x7e,0x39,0xb0,0xbe,0xa0,0x37, +0x68,0x2, 0x41,0x1c,0x75,0x1a,0x36,0x41,0x1c,0xbe,0xa0,0x38,0x68,0x5, 0xbe,0xa0, +0x39,0x78,0x1b,0x7e,0xf3,0x37,0xc0,0x7c,0xbf,0x4, 0x7a,0xb3,0x37,0xc0,0xbe,0xa0, +0x39,0x78,0x3, 0x75,0x1a,0x38,0xa, 0x3f,0x9, 0xb3,0x2b,0x21,0x41,0x1c,0xbe,0xa0, +0x3a,0x68,0x5, 0xbe,0xa0,0x3b,0x78,0x1b,0x7e,0xf3,0x37,0xc2,0x7c,0xbf,0x4, 0x7a, +0xb3,0x37,0xc2,0xbe,0xa0,0x3b,0x78,0x3, 0x75,0x1a,0x3a,0xa, 0x3f,0x9, 0xb3,0x2b, +0x44,0x41,0x1c,0xbe,0xa0,0xfb,0x78,0x6, 0x7e,0xb3,0x2b,0x12,0x41,0x1c,0xbe,0xa0, +0x5e,0x78,0x26,0x7e,0xf, 0x38,0xc0,0x69,0x30,0x0, 0x8e,0xa, 0x56,0x1e,0x54,0x1e, +0x54,0x1e,0x54,0x5e,0x54,0x0, 0x1, 0x3, 0x3, 0x54,0xc0,0xa, 0x36,0x5e,0x34,0x0, +0x3, 0x7c,0xa7,0x4c,0xba,0x44,0x80,0x41,0x1c,0xbe,0xa0,0x3c,0x68,0x5, 0xbe,0xa0, +0x3d,0x78,0x1b,0x7e,0xf3,0x37,0xc4,0x7c,0xbf,0x4, 0x7a,0xb3,0x37,0xc4,0xbe,0xa0, +0x3d,0x78,0x3, 0x75,0x1a,0x3c,0xa, 0x3f,0x9, 0xb3,0x2a,0x7a,0x41,0x1c,0xbe,0xa0, +0x3e,0x68,0x5, 0xbe,0xa0,0x3f,0x78,0x1b,0x7e,0xf3,0x37,0xc6,0x7c,0xbf,0x4, 0x7a, +0xb3,0x37,0xc6,0xbe,0xa0,0x3f,0x78,0x3, 0x75,0x1a,0x3e,0xa, 0x3f,0x9, 0xb3,0x2a, +0x9d,0x41,0x1c,0xbe,0xa0,0x40,0x40,0xd, 0xbe,0xa0,0x4d,0x38,0x8, 0xa, 0x3a,0x9, +0xb3,0x37,0x9c,0x41,0x1c,0xbe,0xa0,0x4e,0x68,0x5, 0xbe,0xa0,0x4f,0x78,0x1e,0x7e, +0xf3,0x37,0xe1,0x7c,0xbf,0x4, 0x7a,0xb3,0x37,0xe1,0xbe,0xa0,0x4f,0x78,0x3, 0x75, +0x1a,0x4e,0xa, 0x3f,0x2e,0x37,0x31,0xcc,0x7e,0x39,0xb0,0x41,0x1c,0xbe,0xa0,0x51, +0x68,0x5, 0xbe,0xa0,0x52,0x78,0x28,0x7e,0x14,0x60,0x0, 0x6d,0x0, 0x2e,0x4, 0x0, +0xff,0x7e,0xb3,0x37,0xec,0xa, 0x3b,0x6d,0x22,0x2f,0x10,0x7e,0x1b,0x70,0x4, 0x7a, +0xb3,0x37,0xec,0xbe,0xa0,0x52,0x78,0x3, 0x75,0x1a,0x51,0x7c,0xb7,0x41,0x1c,0xbe, +0xa0,0x5c,0x68,0x5, 0xbe,0xa0,0x5d,0x78,0x1a,0x7e,0xf3,0x37,0xb5,0x7c,0xbf,0x4, +0x7a,0xb3,0x37,0xb5,0xbe,0xa0,0x5d,0x78,0x3, 0x75,0x1a,0x5c,0x7c,0xbf,0x12,0x3a, +0x1f,0x41,0x1c,0xbe,0xa0,0x60,0x40,0xd, 0xbe,0xa0,0x6c,0x38,0x8, 0xa, 0x3a,0x9, +0xb3,0x3, 0x91,0x41,0x1c,0xbe,0xa0,0x6d,0x78,0x4, 0xe5,0xe, 0x80,0x7e,0xbe,0xa0, +0xf4,0x68,0x5, 0xbe,0xa0,0xf5,0x78,0x18,0x7e,0x35,0xa, 0x7d,0x23,0xb, 0x24,0x7a, +0x25,0xa, 0x9, 0xb3,0x31,0xd4,0xbe,0xa0,0xf5,0x78,0x61,0x75,0x1a,0xf4,0x80,0x5c, +0xbe,0xa0,0xf0,0x68,0x5, 0xbe,0xa0,0xf1,0x78,0x9, 0x7c,0x1a,0x2e,0x10,0x20,0xa5, +0xe7,0x80,0x49,0xbe,0xa0,0xf2,0x68,0x5, 0xbe,0xa0,0xf3,0x78,0x1b,0x7e,0x15,0x10, +0x3e,0x14,0x7e,0x1f,0x31,0xd0,0x2d,0x31,0xb, 0x1a,0x30,0xbe,0xa0,0xf2,0x78,0x4, +0xa, 0x56,0x80,0x28,0x7d,0x53,0x80,0x24,0xbe,0xa0,0xf6,0x78,0x4, 0xe5,0xf, 0x80, +0x1b,0xbe,0xa0,0xf7,0x78,0xd, 0x7e,0x34,0x62,0x48,0x7e,0x24,0x0, 0xff,0xb, 0x1a, +0x50,0x80,0x9, 0xbe,0xa0,0xfd,0x78,0x3, 0xe4,0x80,0x1, 0xe4,0xda,0xf8,0x22,0x7c, +0xab,0xbe,0xa0,0x0, 0x40,0x11,0x7e,0xb3,0x2a,0x6e,0xbc,0xba,0x28,0x9, 0x74,0x2, +0xa4,0x49,0x25,0x34,0x0, 0x80,0x51,0x7e,0x13,0x2a,0x6e,0xbc,0x1a,0x38,0x1c,0x7e, +0x3, 0x2a,0x6d,0xa, 0x10,0xa, 0x21,0x2d,0x12,0xa, 0x3a,0xbd,0x31,0x58,0xc, 0x9d, +0x32,0x3e,0x34,0x3e,0x34,0x49,0x23,0x3, 0x60,0x80,0x2d,0x7e,0x3, 0x2a,0x6d,0xa, +0x20,0xa, 0x11,0x7d,0x41,0x2d,0x42,0xa, 0x3a,0xbd,0x34,0x48,0x19,0x7e,0x10,0x2, +0xac,0x1, 0x2d,0x1, 0xbd,0x30,0x58,0xe, 0x9d,0x31,0x9d,0x32,0x3e,0x34,0x3e,0x34, +0x49,0x23,0x3, 0x62,0x80,0x2, 0xe4,0x22,0x7e,0x34,0x0, 0x64,0xad,0x23,0x74,0xc, +0x1e,0x34,0x1e,0x24,0x50,0x3, 0x4e,0x60,0x80,0x14,0x78,0xf4,0x7c,0xb7,0x22,0xca, +0xf8,0x80,0x38,0x7c,0xbf,0x12,0x3a,0x1f,0xa, 0x1b,0x7e,0x63,0x2a,0x6e,0x7e,0x70, +0x2, 0xac,0x67,0x7e,0x10,0x2, 0xac,0x1f,0x2d,0x3, 0x7e,0x1f,0x13,0x8a,0x2d,0x30, +0x12,0x3a,0xde,0x9d,0x35,0x1b,0x1a,0x10,0xb, 0xf0,0x12,0x3a,0xde,0x7e,0x73,0x2a, +0x6e,0xa, 0x27,0x2d,0x25,0xa, 0x3f,0xbd,0x32,0x48,0xc8,0xda,0xf8,0x22,0x7e,0xa3, +0x2a,0x6d,0x74,0x2, 0xa4,0x22,0x12,0x3f,0xaa,0xb4,0x1, 0x14,0xca,0x39,0x7e,0x18, +0x37,0xdc,0x7e,0x8, 0x25,0xee,0x12,0x20,0xb9,0x1b,0xfd,0x12,0x3f,0x49,0x80,0x12, +0xca,0x39,0x7e,0x18,0x37,0xdc,0x7e,0x8, 0x2b,0x70,0x12,0x20,0xb9,0x1b,0xfd,0x12, +0x3f,0x67,0x2, 0x3b,0x15,0x7a,0x1f,0x2a,0xfc,0x7a,0xf, 0x2a,0xf8,0x22,0xca,0xf8, +0x7c,0x6b,0xa5,0xbe,0x0, 0x9, 0x7c,0xb7,0x12,0x7d,0xab,0xd2,0x6, 0xa1,0xa0,0xa5, +0xbe,0x1, 0x3d,0x7a,0x73,0x37,0x9d,0xa5,0xbf,0xad,0x2, 0x80,0x2f,0xa5,0xbf,0xae, +0x4, 0xd2,0x7, 0xa1,0xa0,0xa5,0xbf,0xaa,0x5, 0x12,0xc0,0xce,0x80,0x1e,0xa5,0xbf, +0xab,0xa, 0x7e,0x34,0x5, 0x7a,0x7a,0x37,0x31,0xce,0x80,0x10,0xa5,0xbf,0xac,0x2, +0x80,0x2, 0xa1,0xa0,0x7e,0x34,0x4, 0xfc,0x7a,0x37,0x31,0xce,0x6d,0x33,0x81,0x1c, +0xbe,0x60,0x4, 0x40,0x20,0xbe,0x60,0x8, 0x38,0x1b,0x12,0x3d,0xa3,0xa5,0xbe,0x7, +0x7, 0x6d,0x33,0x7a,0x35,0xa, 0xa1,0xa0,0xa5,0xbe,0x8, 0x2, 0x80,0x2, 0xa1,0xa0, +0x12,0x7, 0xfb,0xa1,0xa0,0xa5,0xbe,0xa, 0x9, 0x43,0xc, 0x20,0x7a,0x73,0x37,0xa6, +0xa1,0xa0,0xa5,0xbe,0xb, 0x8, 0x12,0x3d,0xa3,0x12,0x3f,0xc8,0xa1,0xa0,0xbe,0x60, +0x1b,0x40,0x7, 0xbe,0x60,0x1c,0x38,0x2, 0xa1,0x38,0xbe,0x60,0x1e,0x40,0xd, 0xbe, +0x60,0x23,0x38,0x8, 0x12,0x3d,0xa5,0x43,0xc, 0x40,0xa1,0xa0,0xbe,0x60,0x15,0x40, +0x1a,0xbe,0x60,0x18,0x38,0x15,0x12,0x3d,0xa5,0xd2,0x6, 0xa5,0xbe,0x15,0x2, 0x80, +0x2, 0xa1,0xa0,0x74,0x7, 0x7a,0xb3,0x37,0xa0,0xa1,0xa0,0xa5,0xbe,0x19,0x7, 0xe4, +0x7a,0xb3,0x37,0xb5,0xa1,0xa0,0xbe,0x60,0x24,0x40,0x7, 0xbe,0x60,0x2c,0x38,0x2, +0xa1,0x38,0xa5,0xbe,0x2d,0x1b,0x12,0x3d,0xa5,0x20,0x7, 0x2, 0xa1,0xa0,0x7e,0x63, +0x37,0xc8,0x7c,0x46,0x6c,0x55,0xa, 0x37,0x2d,0x32,0x3e,0x34,0x7a,0x35,0x8, 0xa1, +0xa0,0xbe,0x60,0x2f,0x40,0xa, 0xbe,0x60,0x33,0x38,0x5, 0x43,0xc, 0x8, 0xa1,0x38, +0xa5,0xbe,0x34,0xf, 0x43,0xc, 0x10,0xbe,0x70,0x64,0x38,0x2, 0xa1,0x38,0x7e,0x70, +0x64,0xa1,0x38,0xbe,0x60,0x38,0x68,0x4, 0xa5,0xbe,0x39,0x21,0x43,0xc, 0x1, 0x7e, +0xf3,0x37,0xc1,0x7c,0xbf,0x4, 0x7a,0xb3,0x37,0xc1,0xa, 0x2f,0x19,0x72,0x2b,0x21, +0xa5,0xbe,0x39,0x2, 0x80,0x2, 0xa1,0xa0,0x75,0x1a,0x38,0xa1,0xa0,0xbe,0x60,0x3a, +0x68,0x4, 0xa5,0xbe,0x3b,0x21,0x43,0xc, 0x2, 0x7e,0xf3,0x37,0xc3,0x7c,0xbf,0x4, +0x7a,0xb3,0x37,0xc3,0xa, 0x2f,0x19,0x72,0x2b,0x44,0xa5,0xbe,0x3b,0x2, 0x80,0x2, +0xa1,0xa0,0x75,0x1a,0x3a,0xa1,0xa0,0xa5,0xbe,0xfb,0x9, 0x43,0xc, 0x4, 0x7a,0x73, +0x2b,0x12,0xa1,0xa0,0xa5,0xbe,0x50,0x6, 0x7a,0x73,0x37,0xec,0xa1,0xa0,0xbe,0x60, +0x3c,0x68,0x4, 0xa5,0xbe,0x3d,0x21,0x43,0xc, 0x1, 0x7e,0xf3,0x37,0xc5,0x7c,0xbf, +0x4, 0x7a,0xb3,0x37,0xc5,0xa, 0x2f,0x19,0x72,0x2a,0x7a,0xa5,0xbe,0x3d,0x2, 0x80, +0x2, 0xa1,0xa0,0x75,0x1a,0x3c,0xa1,0xa0,0xbe,0x60,0x3e,0x68,0x4, 0xa5,0xbe,0x3f, +0x21,0x43,0xc, 0x1, 0x7e,0xf3,0x37,0xc7,0x7c,0xbf,0x4, 0x7a,0xb3,0x37,0xc7,0xa, +0x2f,0x19,0x72,0x2a,0x9d,0xa5,0xbe,0x3f,0x2, 0x80,0x2, 0xa1,0xa0,0x75,0x1a,0x3e, +0xa1,0xa0,0xbe,0x60,0x40,0x40,0xd, 0xbe,0x60,0x42,0x38,0x8, 0x12,0x3d,0xa5,0x75, +0xd, 0x1, 0x80,0xa, 0xa5,0xbe,0x43,0xb, 0x12,0x3d,0xa5,0x75,0xd, 0x2, 0x12,0x3a, +0xe6,0x80,0x7d,0xa5,0xbe,0x44,0x8, 0x12,0x3d,0xa5,0x12,0x3f,0x70,0x80,0x71,0xbe, +0x60,0x45,0x68,0x4, 0xa5,0xbe,0x46,0x5, 0x12,0x3d,0xa5,0x80,0x63,0xbe,0x60,0x4e, +0x68,0x4, 0xa5,0xbe,0x4f,0x20,0x43,0xd, 0x4, 0x7e,0xf3,0x37,0xe2,0x7c,0xbf,0x4, +0x7a,0xb3,0x37,0xe2,0xa, 0x2f,0x2e,0x27,0x31,0xcc,0x7a,0x29,0x70,0xa5,0xbe,0x4f, +0x3f,0x75,0x1a,0x4e,0x80,0x3a,0xa5,0xbe,0x6d,0x5, 0x7a,0x71,0xe, 0x80,0x31,0xbe, +0x60,0xf0,0x40,0x25,0xbe,0x60,0xf3,0x38,0x20,0x7c,0x16,0x2e,0x10,0x20,0x7c,0xb7, +0xa5,0xf7,0xa5,0xbe,0xf3,0x1a,0x7e,0x15,0x12,0x7e,0x5, 0x10,0x3e,0x4, 0x7e,0x1f, +0x31,0xd0,0x2d,0x30,0x1b,0x1a,0x10,0x80,0x7, 0xa5,0xbe,0xf6,0x3, 0x7a,0x71,0xf, +0xda,0xf8,0x22,0xd2,0x6, 0xa, 0x26,0x19,0x72,0x37,0x9c,0x22,0x7a,0xb3,0x2b,0x0, +0x70,0x14,0x12,0x3f,0x67,0x12,0x3b,0x15,0x7e,0x18,0x6, 0x76,0x7a,0x1f,0x6, 0xf4, +0x7e,0x18,0x4, 0x7e,0x80,0x10,0xb4,0x1, 0x11,0x12,0x3f,0x49,0x12,0x3b,0x15,0x12, +0x3f,0xf2,0x7e,0x18,0x4, 0x0, 0x7a,0x1f,0x6, 0xf8,0x22,0x74,0x1, 0x12,0x0, 0x1e, +0xe4,0x12,0x3d,0xac,0x12,0x3d,0xf3,0xe4,0x12,0x0, 0x1e,0x74,0x1, 0x12,0x3d,0xac, +0x2, 0x3d,0xf3,0xca,0x3b,0x7e,0xd3,0x2a,0x73,0x7e,0xc3,0x2a,0x74,0x7e,0x8, 0x1f, +0x44,0x12,0x3f,0xe9,0x7e,0x8, 0x1f,0x8a,0x7e,0x34,0x0, 0x46,0x12,0x20,0xde,0x7e, +0x8, 0x1f,0xd0,0x7e,0x34,0x0, 0xa, 0xe4,0x12,0x20,0xde,0x7e,0x8, 0x1f,0xda,0x7e, +0x34,0x0, 0xa, 0x12,0x20,0xde,0x7e,0xf3,0x2a,0xfc,0x7e,0x18,0x2a,0xdc,0x7a,0x1d, +0x24,0x7e,0x18,0x1f,0xd0,0x7a,0x1d,0x28,0x7c,0xbd,0x7c,0x7c,0x7e,0x8, 0x2a,0xb9, +0x12,0xba,0x4c,0x6c,0xee,0x80,0x2b,0xa, 0x3e,0x9, 0xa3,0x2a,0xdc,0xa, 0x3a,0x2e, +0x34,0x20,0x73,0x12,0x91,0x6d,0x7c,0xab,0xbe,0xa0,0x1c,0x50,0x13,0xa, 0x3e,0x12, +0x3f,0xb, 0xa, 0x4a,0x19,0xb4,0x1f,0x44,0x7e,0xb3,0x2a,0xfb,0x19,0xb4,0x1f,0x8a, +0xb, 0xe0,0xbc,0xce,0x38,0xd1,0x6c,0xee,0x80,0x24,0xa, 0x3e,0x9, 0xa3,0x2a,0xb9, +0xbe,0xa0,0x23,0x50,0x17,0xa, 0x2e,0xa, 0x3c,0x2d,0x32,0x12,0x3f,0xb, 0xa, 0x4a, +0x19,0xb4,0x1f,0x60,0x7e,0xb3,0x2a,0xfb,0x19,0xb4,0x1f,0xa6,0xb, 0xe0,0xbc,0xde, +0x38,0xd8,0x7e,0xb3,0x2a,0xfd,0x7e,0x8, 0x1f,0xe4,0x60,0x9, 0x7e,0x18,0x1f,0xd0, +0x12,0xb8,0xe2,0x80,0x3, 0x12,0x3f,0xd9,0x6c,0xee,0x7e,0x18,0x1f,0xe4,0x7a,0x1f, +0x1f,0x34,0x74,0x2, 0xac,0xbe,0x49,0x35,0x1f,0xd0,0x7a,0x37,0x1f,0x38,0x74,0x2, +0xac,0xbe,0x49,0x35,0x1f,0xda,0x7a,0x37,0x1f,0x3a,0x7e,0x70,0xe, 0xac,0x7e,0x2e, +0x34,0x1f,0x44,0x6d,0x22,0x7a,0x1f,0x1f,0x3c,0x7e,0x70,0xe, 0xac,0x7e,0x2e,0x34, +0x1f,0x8a,0x7a,0x1f,0x1f,0x40,0x7e,0x8, 0x1f,0x34,0x7c,0xbf,0x7c,0x7e,0x12,0x8, +0xd1,0xb, 0xe0,0xbe,0xe0,0x5, 0x40,0xb2,0xda,0x3b,0x22,0x2e,0x37,0x2a,0xfe,0x7e, +0x39,0xb0,0x22,0x74,0x1, 0x7a,0xb3,0x37,0x8, 0x12,0xae,0xfc,0x12,0x13,0xf5,0x12, +0xb9,0x6e,0xe4,0x12,0xa, 0x66,0x7e,0x24,0x3, 0xd4,0x12,0x3f,0xcb,0x74,0x1, 0x12, +0x3d,0xac,0x12,0x3f,0xd2,0x7e,0x34,0xd0,0xc, 0x12,0x1, 0xe, 0x12,0x3d,0xdb,0x7e, +0x34,0x0, 0x1, 0xe4,0x6c,0x55,0x2, 0x13,0x1, 0x7e,0x1f,0x25,0xf2,0x7e,0xf, 0x25, +0xee,0x22,0x7a,0xb3,0x2b,0x0, 0x70,0x5, 0x12,0x3f,0x67,0x80,0x6, 0xb4,0x1, 0x6, +0x12,0x3f,0x49,0x12,0x3b,0x15,0x22,0x7e,0x1f,0x2b,0x74,0x7e,0xf, 0x2b,0x70,0x22, +0x12,0x3f,0xaa,0xb4,0x1, 0x17,0xca,0x39,0x7e,0x18,0x25,0xee,0x7e,0x8, 0x37,0xdc, +0x12,0x20,0xb9,0x1b,0xfd,0x12,0xc0,0xc5,0x12,0x3f,0x49,0x80,0x1a,0xca,0x39,0x7e, +0x18,0x2b,0x70,0x7e,0x8, 0x37,0xdc,0x12,0x20,0xb9,0x1b,0xfd,0x7e,0x37,0x2b,0x76, +0x7a,0x37,0x31,0xcc,0x12,0x3f,0x67,0x2, 0x3b,0x15,0x7e,0xb3,0x37,0xe0,0x7e,0x34, +0x0, 0x4, 0x22,0x7c,0x6b,0x12,0x3f,0xe1,0x78,0x5, 0x7c,0xb6,0x2, 0x7d,0xd6,0xb4, +0x4, 0x5, 0x7c,0xb6,0x2, 0x3b,0x1e,0x22,0xb2,0x82,0x22,0x7d,0x32,0x74,0xfa,0x2, +0x12,0xd0,0x7e,0x8, 0x2a,0x6d,0x2, 0x0, 0x2e,0x7e,0x34,0x0, 0x8, 0xe4,0x2, 0x20, +0xde,0x7e,0xb3,0x37,0x9c,0xc4,0x54,0x7, 0x22,0x7e,0x34,0x0, 0x46,0x74,0x3f,0x2, +0x20,0xde,0x7e,0x18,0x5, 0xf8,0x7a,0x1f,0x6, 0xf4,0x22,0x30,0x6, 0x3b,0xc2,0x6, +0x12,0x25,0xe6,0x7e,0x73,0x37,0xa1,0x7a,0x73,0x2a,0x4d,0x7e,0x73,0x37,0xa2,0x7a, +0x73,0x2b,0x1d,0x7e,0x73,0x37,0xa2,0x7a,0x73,0x2b,0x1, 0x7e,0xb3,0x37,0xa3,0x60, +0x18,0x7e,0x34,0x0, 0x2, 0x12,0x41,0x5d,0x7e,0x34,0x0, 0x1, 0x12,0x41,0x5d,0x6d, +0x33,0x12,0x41,0x5d,0xe4,0x7a,0xb3,0x37,0xa3,0x12,0x4f,0xfa,0x2, 0x40,0x3f,0xe5, +0xc, 0x70,0x2, 0x21,0x5c,0xe5,0xc, 0x30,0xe0,0x10,0x53,0xc, 0xfe,0x12,0x72,0x92, +0x12,0x79,0x31,0x7e,0x8, 0x2a,0x6d,0x12,0x9, 0xa1,0xe5,0xc, 0x30,0xe1,0x6, 0x53, +0xc, 0xfd,0x12,0xba,0x3, 0xe5,0xc, 0x30,0xe2,0x32,0x53,0xc, 0xfb,0x7e,0xb3,0x2b, +0x12,0x60,0x9, 0x7e,0x8, 0x2a,0x6d,0x12,0x6, 0xba,0x80,0xb, 0x7e,0xb3,0x2b,0x65, +0x7e,0x73,0x2b,0x64,0x12,0xb, 0xad,0x7e,0x73,0x2b,0x12,0x2e,0x70,0xff,0x92,0x4, +0x90,0x60,0x51,0xe4,0x93,0x9e,0xb3,0x2a,0x77,0x12,0xb, 0x1e,0xe5,0xc, 0x30,0xe3, +0x45,0x53,0xc, 0xf7,0x7e,0x73,0x37,0xce,0x7a,0x73,0x2b,0xf, 0x12,0x87,0x52,0x7a, +0xb3,0x0, 0x4f,0xbe,0xb0,0xff,0x68,0xb, 0x43,0xc, 0x20,0x7e,0x73,0x0, 0x4f,0x7a, +0x73,0x37,0xa6,0x12,0x6e,0x29,0x12,0xc0,0x22,0x7e,0x73,0x37,0xcf,0xbe,0x73,0x2b, +0x62,0x68,0x6, 0x7a,0x73,0x2b,0x62,0xd2,0xc, 0x30,0xc, 0x7, 0x12,0xae,0xfa,0xe4, +0x12,0xa, 0x66,0x12,0x8d,0xec,0xe5,0xc, 0x30,0xe4,0xf, 0x53,0xc, 0xef,0x7e,0x43, +0x37,0xd0,0x7e,0x50,0xa, 0xac,0x45,0x12,0x3f,0xcb,0xe5,0xc, 0x30,0xe6,0x4e,0x53, +0xc, 0xbf,0x7e,0x73,0x37,0xbc,0xbe,0x70,0x7, 0x28,0x6, 0x74,0x7, 0x7a,0xb3,0x37, +0xbc,0xa9,0xd5,0xcb,0x74,0xe, 0x12,0x43,0xeb,0x7c,0x7b,0x5e,0x70,0xf, 0x7e,0x63, +0x37,0xbc,0xa, 0x26,0x2e,0x24,0x0, 0x3, 0x12,0x47,0x81,0x7c,0x65,0x4c,0x76,0x74, +0xe, 0x12,0x43,0x5f,0x12,0x43,0xeb,0x12,0x43,0xf3,0x7e,0x73,0x37,0xbf,0x7a,0x73, +0x2b,0x14,0x7e,0x73,0x37,0xbe,0x7a,0x73,0x2b,0x1f,0x12,0xc0,0xd7,0xe5,0xc, 0x30, +0xe5,0xa, 0x53,0xc, 0xdf,0x7e,0xb3,0x37,0xa6,0x2, 0x48,0x77,0x22,0xca,0xd8,0xca, +0x79,0x7d,0xd3,0x90,0x60,0x50,0xe4,0x93,0x7c,0xfb,0x90,0x60,0x51,0xe4,0x93,0x7c, +0x8b,0xa, 0x38,0xa, 0xcf,0x2d,0xc3,0xb, 0xc4,0x7d,0x3c,0x7c,0xe7,0x12,0x26,0x57, +0xa9,0xd0,0xc4,0xa9,0xd5,0xcb,0x74,0x7, 0x12,0x43,0xeb,0x7c,0x8b,0x74,0x7, 0x7e, +0x70,0xf, 0x12,0x43,0xf0,0x7e,0x54,0x0, 0x78,0x7e,0x1f,0x38,0xc4,0x79,0x51,0x0, +0x6, 0x7e,0x54,0x0, 0x80,0x7e,0x1f,0x38,0xc4,0x79,0x51,0x0, 0x8, 0x7e,0x54,0x0, +0xc, 0x7e,0x1f,0x38,0xc4,0x79,0x51,0x0, 0x10,0xbe,0xd4,0x0, 0x2, 0x78,0xb, 0x7e, +0x1f,0x38,0xc4,0x12,0x43,0x48,0x44,0x1, 0x80,0x20,0x7e,0x1f,0x38,0xc4,0x12,0x43, +0x48,0x44,0x8, 0x1b,0x1a,0x50,0x4d,0xdd,0x7e,0x1f,0x38,0xc4,0x78,0x7, 0x12,0x43, +0x48,0x54,0xfb,0x80,0x5, 0x12,0x43,0x48,0x44,0x4, 0x1b,0x1a,0x50,0x7e,0x1f,0x38, +0xc0,0x69,0xe1,0x0, 0x84,0x69,0x51,0x0, 0x90,0x7d,0xf5,0x2e,0x34,0x0, 0x90,0x5e, +0xa0,0xf6,0x1b,0x1a,0x50,0x7e,0xb3,0x37,0x12,0xbe,0xb0,0x6, 0x40,0x3, 0xb4,0xff, +0xe, 0x12,0x43,0x53,0x54,0xe6,0x12,0x43,0x50,0x4e,0x54,0x1, 0xa4,0x80,0xc, 0x12, +0x43,0x53,0x5e,0x54,0xfe,0xe6,0x12,0x43,0x50,0x44,0xa4,0x1b,0x1a,0x50,0xbe,0xd4, +0x0, 0x2, 0x78,0x2d,0x7e,0x1f,0x38,0xc4,0x12,0x43,0x48,0x5e,0x54,0x0, 0xf, 0x1b, +0x1a,0x50,0x7e,0x1f,0x38,0xc4,0x12,0x43,0x48,0x44,0x50,0x1b,0x1a,0x50,0x7e,0x34, +0x0, 0x2, 0x12,0x44,0x72,0x12,0x44,0x4b,0x12,0x44,0x28,0x7a,0x37,0x31,0xd4,0x61, +0x4, 0x6c,0xdd,0x41,0xfe,0x4c,0xdd,0x78,0x4, 0x6c,0x99,0x80,0x2b,0xbc,0xfd,0x40, +0x12,0xa, 0xcd,0x9, 0x9c,0x2a,0xb8,0xbe,0x90,0x23,0x40,0x3, 0x7e,0x90,0x22,0xb, +0x90,0x80,0x15,0xa, 0x3f,0xa, 0xcd,0x9d,0xc3,0x9, 0x9c,0x2a,0xdb,0xbe,0x90,0x1c, +0x40,0x3, 0x7e,0x90,0x1b,0x2e,0x90,0x24,0x7e,0x1f,0x38,0xc4,0x12,0x43,0x48,0x5e, +0x54,0x0, 0xf, 0x1b,0x1a,0x50,0xa, 0xc9,0x3e,0xc4,0x3e,0xc4,0x3e,0xc4,0x3e,0xc4, +0x7e,0x1f,0x38,0xc4,0x12,0x43,0x48,0x4d,0x5c,0x1b,0x1a,0x50,0xe5,0xe, 0x60,0x7, +0xe5,0xe, 0xbe,0xb0,0x64,0x28,0x6, 0x7e,0x34,0x0, 0x2, 0x80,0x4, 0xe5,0xe, 0xa, +0x3b,0x12,0x44,0x72,0x12,0x44,0x4b,0xbe,0xd4,0x0, 0x1, 0x78,0x10,0x12,0x44,0x4b, +0x12,0x44,0x28,0x74,0x2, 0xac,0xbd,0x59,0x35,0x31,0xd6,0x80,0xf, 0x12,0x44,0x28, +0xa, 0x5e,0xa, 0x2d,0x2d,0x25,0x3e,0x24,0x59,0x32,0x31,0xd6,0xb, 0xd0,0xbc,0xed, +0x28,0x2, 0x41,0x65,0xa9,0xd5,0xcb,0x74,0x7, 0x7c,0x78,0x12,0x43,0xf0,0xa9,0xc0, +0xc4,0x7e,0x1f,0x38,0xc0,0x79,0xe1,0x0, 0x84,0x7e,0x1f,0x38,0xc0,0x79,0xf1,0x0, +0x90,0x6d,0x33,0x7e,0xf, 0x38,0xc4,0x79,0x30,0x0, 0x6, 0x7e,0xf, 0x38,0xc4,0x79, +0x30,0x0, 0x8, 0x7e,0xf, 0x38,0xc4,0x79,0x30,0x0, 0x10,0x7e,0xf, 0x38,0xc4,0x79, +0x30,0x0, 0xe, 0xda,0x79,0xda,0xd8,0x22,0x2e,0x34,0x0, 0xe, 0xb, 0x1a,0x50,0x22, +0x1b,0x1a,0x50,0x7e,0x1f,0x38,0xc0,0x2e,0x34,0x0, 0x84,0xb, 0x1a,0x50,0x22,0xf5, +0xfd,0x7a,0x71,0xfe,0x22,0xca,0x79,0xa9,0xd5,0xcb,0x74,0x2, 0x7e,0x70,0x3f,0x12, +0x43,0x5f,0x74,0xf, 0x12,0x43,0xeb,0x7c,0xfb,0x74,0xf, 0x7c,0x7f,0x5e,0x70,0xfe, +0x12,0x43,0x5f,0x74,0xc, 0x12,0x43,0xeb,0x7c,0xfb,0x54,0x7f,0x68,0x8, 0x74,0xc, +0x7e,0x70,0xf8,0x12,0x43,0x5f,0x90,0x61,0x18,0xe4,0x93,0x7c,0xab,0xbe,0xa0,0x7, +0x38,0xb, 0x12,0x45,0x6, 0x7c,0xb7,0xa, 0x7b,0xb, 0x75,0x80,0x16,0x90,0x61,0x17, +0xe4,0x93,0xb4,0x1, 0xe, 0xbe,0xa0,0x7, 0x28,0x9, 0x12,0x45,0x6, 0xa, 0x77,0x2e, +0x74,0x0, 0x7, 0x74,0xe, 0x7c,0x7f,0x12,0x43,0x5f,0x74,0x7, 0x12,0x43,0xeb,0x7c, +0xfb,0x5e,0xf0,0xfb,0x90,0x60,0x2, 0xe4,0x93,0xa, 0x3b,0x3e,0x34,0x3e,0x34,0x4c, +0xf7,0x74,0x7, 0x7c,0x7f,0x12,0x43,0xf0,0xda,0x79,0x22,0xf5,0xfd,0xe5,0xfe,0x22, +0x12,0x43,0x5f,0x75,0xfd,0xff,0xa9,0xc5,0xcb,0x22,0x6d,0x33,0x7e,0x8, 0x0, 0x24, +0x7e,0x24,0x0, 0x12,0x12,0xb7,0x9d,0xe5,0x34,0x20,0xe7,0x1b,0xa9,0xd5,0xcb,0x74, +0x3, 0x7e,0x71,0x27,0x12,0x43,0x5f,0x74,0xb, 0x7e,0x71,0x2f,0x12,0x43,0x5f,0x74, +0xc, 0x7e,0x71,0x30,0x12,0x43,0xf0,0x22,0x7e,0xf, 0x38,0xc4,0x69,0x30,0x0, 0xa, +0x7d,0x23,0x6d,0x33,0x69,0x10,0x0, 0xc, 0x6d,0x0, 0x2f,0x10,0x74,0x7, 0x1e,0x34, +0x1e,0x24,0x50,0x3, 0x4e,0x60,0x80,0x14,0x78,0xf4,0x22,0x7e,0x34,0x0, 0x1, 0x7e, +0xf, 0x38,0xc4,0x79,0x30,0x0, 0x4, 0x7e,0xf, 0x38,0xc4,0x69,0x30,0x0, 0x12,0x5e, +0x34,0x0, 0x1, 0x68,0xf2,0x7e,0x34,0x0, 0x1, 0x79,0x30,0x0, 0x12,0x22,0x7e,0x34, +0x0, 0x1, 0x7d,0x23,0x80,0x12,0x7e,0x30,0x4, 0x80,0x5, 0x74,0xfa,0x12,0x45,0x15, +0x7c,0x23,0x1b,0x30,0xa5,0xba,0x0, 0xf3,0x7d,0x32,0x1b,0x24,0x4d,0x33,0x78,0xe6, +0x22,0x12,0x47,0xf8,0xc2,0x3, 0x12,0xb6,0x2d,0xc2,0x5, 0x12,0x45,0x51,0xc2,0x3, +0x12,0x47,0x21,0xa9,0xd5,0xcb,0x74,0xf, 0x12,0x43,0xeb,0x7a,0x1b,0xb0,0x74,0xf, +0x6c,0x77,0x12,0x43,0x5f,0xe5,0xfc,0x7a,0xb, 0xb0,0x43,0xfc,0x10,0x2, 0x43,0xf3, +0x24,0xab,0x68,0x10,0x24,0xef,0x68,0x1c,0x24,0xde,0x68,0x26,0x24,0xde,0x78,0x2f, +0x74,0x5, 0x80,0x2d,0x7e,0xb3,0x33,0xff,0xb4,0x5, 0x2a,0x12,0x44,0x6e,0x12,0xb5, +0xe5,0x2, 0xb6,0x9a,0x7e,0xb3,0x33,0xff,0xb4,0x5, 0x1a,0x12,0x44,0x6e,0x75,0xe9, +0xff,0x22,0x7e,0xb3,0x33,0xff,0xb4,0x5, 0xc, 0x12,0x44,0x6e,0x2, 0xb6,0x94,0x74, +0x1, 0x7a,0xb3,0x33,0xff,0x22,0xa, 0x3a,0x2e,0x34,0x0, 0x3, 0x3e,0x34,0x3e,0x34, +0x3e,0x34,0x3e,0x34,0x22,0x7c,0xab,0x80,0xe, 0x7e,0x70,0x3, 0x80,0x1, 0x0, 0x7c, +0x67,0x1b,0x70,0xa5,0xbe,0x0, 0xf7,0x7c,0x6a,0x1b,0xa0,0xa5,0xbe,0x0, 0xea,0x22, +0x7c,0x6b,0xa9,0xd5,0xcb,0x74,0xf, 0x12,0x43,0x5f,0x7a,0x61,0xfc,0x12,0x43,0xf3, +0x12,0x46,0x68,0xd2,0x3, 0x12,0x47,0x21,0x12,0x45,0x6b,0x12,0x13,0xde,0x2, 0x13, +0x96,0xa9,0xd0,0xce,0xa2,0x5, 0xa9,0x91,0xc9,0x22,0x30,0x4, 0x6, 0x12,0x45,0x6b, +0x2, 0x13,0x96,0x12,0x47,0xf8,0xc2,0x5, 0x2, 0x45,0x51,0xd2,0x5, 0x12,0x45,0x51, +0x74,0x1, 0x22,0x12,0x45,0xcf,0x12,0x91,0x8, 0x75,0xcd,0x0, 0xa9,0xd6,0xeb,0xa9, +0xd7,0xcd,0xc2,0xce,0x12,0xc0,0xab,0x12,0x44,0x91,0x74,0x1, 0x12,0x46,0x7, 0xa9, +0xc6,0xeb,0xa9,0xc7,0xcd,0xd2,0xce,0xe5,0x25,0x7e,0x71,0x24,0x2, 0x45,0x30,0x30, +0x18,0x5, 0xc2,0x4, 0x12,0x45,0x5a,0xa9,0xd1,0xcd,0xa9,0xc5,0xea,0x30,0x17,0x3, +0x20,0x18,0x14,0x12,0x45,0xcf,0xa9,0xd0,0xce,0xa9,0xc4,0xc9,0x74,0x2, 0x12,0x46, +0x7, 0xa9,0xd0,0xce,0xa9,0xd4,0xc9,0xa9,0xc1,0xcd,0xd2,0x4, 0x2, 0x45,0x5a,0x74, +0x81,0x7a,0xb3,0x39,0x2, 0x22,0x80,0x1d,0x12,0x45,0xcf,0x12,0x47,0xff,0x68,0x5, +0xc2,0x4, 0x12,0x45,0x5a,0x7e,0xb3,0x34,0x3a,0xbe,0xb0,0x2, 0x68,0x18,0x20,0x17, +0x15,0xe4,0x12,0x46,0x7, 0x20,0x93,0xe0,0x12,0x45,0xcf,0xa9,0xd1,0xcd,0xa9,0xc5, +0xea,0x74,0x2, 0x2, 0x46,0x7, 0x22,0x7c,0xab,0x7e,0xb3,0x39,0x2, 0xb4,0x81,0x38, +0x4c,0xaa,0x78,0x5, 0xa9,0xd0,0x87,0x80,0x29,0xbe,0xa0,0x1, 0x78,0xf, 0xc2,0xaf, +0xa9,0xd0,0xce,0xa9,0xc7,0xc9,0xa9,0xd1,0x87,0xd2,0xaf,0x80,0x15,0xbe,0xa0,0x2, +0x78,0x16,0xc2,0xaf,0x20,0x93,0x9, 0xa9,0xd0,0xce,0xa9,0xd7,0xc9,0xa9,0xd1,0x87, +0xd2,0xaf,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe4,0x7a,0xb3,0x39,0x2, 0x22,0xd2,0x3, +0x80,0x12,0x30,0x3, 0xc, 0x12,0x47,0xff,0x68,0x7, 0xc2,0x3, 0xc2,0x4, 0x12,0x45, +0x5a,0x12,0x45,0xd6,0x30,0x17,0xeb,0x22,0xca,0xf8,0xa2,0xaf,0xe4,0x33,0x7c,0xfb, +0xd2,0x3, 0x12,0xb6,0x2d,0xa9,0xd0,0xcb,0xc2,0xaf,0xa9,0xd0,0x9e,0x75,0x9d,0x0, +0xa9,0xd0,0x9e,0x75,0x9c,0x20,0xa9,0xd0,0x9e,0xa9,0xd4,0x9e,0xa9,0xd0,0xcd,0x74, +0x41,0x12,0x45,0x15,0xa9,0xd0,0x9e,0xa9,0xd7,0x9e,0x2e,0xf0,0xff,0x92,0xaf,0xda, +0xf8,0x22,0xe4,0x12,0x46,0xf0,0x12,0xb6,0x36,0x12,0x26,0x57,0x12,0xb6,0xb1,0x12, +0x43,0x65,0x12,0xb5,0xdb,0x12,0xb6,0x4d,0x12,0x0, 0x4a,0x12,0xb6,0x59,0x12,0x7e, +0xa0,0x12,0xb6,0x69,0xd2,0xaf,0x12,0x47,0x8a,0x12,0xb8,0x6e,0x12,0x43,0xfa,0x12, +0x46,0x68,0x7e,0x8, 0x3, 0xf1,0x12,0xa9,0x80,0x90,0x60,0x50,0xe4,0x93,0xca,0xb8, +0x90,0x60,0x51,0xe4,0x93,0x7c,0x7b,0x7e,0x24,0xff,0xff,0xda,0xb8,0x2, 0x12,0x34, +0xa9,0xc4,0xca,0xa9,0xc5,0xca,0xbe,0xb0,0x8, 0x50,0x3, 0x12,0x90,0xff,0xa9,0xd0, +0xce,0xa9,0xc0,0xc9,0xd2,0x5, 0x12,0x45,0x51,0xa9,0xc2,0xea,0x75,0xc1,0x6, 0x75, +0xc2,0xc, 0xd2,0x3, 0x12,0x47,0x21,0xa9,0xc1,0xc4,0xa9,0xd2,0xc4,0xa9,0xc2,0xe1, +0x22,0xa2,0x3, 0xa9,0x97,0xc1,0xa2,0x3, 0xa9,0x97,0xc2,0x22,0x7e,0x34,0x36,0xe1, +0x30,0xd, 0x4b,0xc2,0xd, 0x9, 0x53,0x0, 0x2, 0x12,0x47,0x7f,0x7a,0x27,0x2a,0x4f, +0x9, 0x53,0x0, 0x3, 0x12,0x47,0x7f,0x7a,0x27,0x2a,0x51,0x9, 0x53,0x0, 0x4, 0x12, +0x47,0x7f,0x7a,0x27,0x2a,0x53,0x7e,0x39,0x50,0xa, 0x25,0x3e,0x24,0x3e,0x24,0x7a, +0x27,0x2a,0x5a,0x9, 0x53,0x0, 0x1, 0xa, 0x25,0x3e,0x24,0x3e,0x24,0x7a,0x27,0x2a, +0x5c,0x9, 0x73,0x0, 0x5, 0xa, 0x37,0x12,0x45,0xc, 0x7a,0x37,0x2a,0x62,0x22,0xa, +0x25,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x22,0xa9,0xd5,0xcb,0x74,0x10,0x12, +0x43,0xeb,0x7c,0x7b,0x12,0x43,0xf3,0x30,0xe7,0x3, 0x7e,0x70,0x2, 0xd2,0xcd,0x7e, +0x24,0x0, 0xef,0x7e,0xf, 0x38,0xc0,0x79,0x20,0x0, 0x84,0x7e,0x24,0x20,0x5f,0x7e, +0xf, 0x38,0xc0,0x79,0x20,0x0, 0x82,0x7e,0x24,0x41,0x0, 0x7e,0xf, 0x38,0xc0,0x79, +0x20,0x0, 0x90,0x7c,0x67,0x6c,0x77,0x2e,0x34,0x0, 0xc1,0x7e,0xf, 0x38,0xc0,0x79, +0x30,0x0, 0x86,0x7e,0x34,0x29,0x90,0x7e,0xf, 0x38,0xc0,0x79,0x30,0x0, 0x8a,0x7e, +0x34,0x6a,0xd1,0x7e,0xf, 0x38,0xc0,0x79,0x30,0x0, 0x8c,0x7e,0x34,0x3, 0x61,0x7e, +0xf, 0x38,0xc0,0x79,0x30,0x0, 0x8e,0x22,0xe4,0x12,0x13,0xde,0x2, 0x13,0x96,0x7e, +0xb3,0x34,0x3a,0xbe,0xb0,0x1, 0x22,0x12,0xc0,0xce,0x12,0xc0,0xc5,0x6d,0x33,0x7a, +0x35,0xa, 0x12,0x48,0x56,0x12,0x48,0x30,0x74,0x50,0x7a,0xb3,0x37,0xd0,0x7e,0x24, +0x3, 0x20,0x12,0x3f,0xcb,0xe4,0x12,0xc0,0x7, 0x6d,0x33,0x7a,0x37,0x39,0x4, 0x22, +0x7e,0x73,0x2b,0x62,0x7a,0x73,0x37,0xcf,0x22,0xa2,0xa, 0xe4,0x33,0x7a,0xb3,0x37, +0xca,0x7e,0x73,0x37,0xce,0xbe,0x73,0x2b,0xf, 0x68,0xa, 0xe5,0xc, 0x70,0x6, 0x12, +0x48,0x56,0x12,0x48,0x30,0x22,0x7e,0x73,0x2b,0xf, 0x7a,0x73,0x37,0xce,0x7e,0x73, +0x2b,0x1f,0x7a,0x73,0x37,0xbe,0x7e,0x73,0x2b,0x20,0x7a,0x73,0x37,0xbd,0x7e,0x73, +0x2b,0x14,0x7a,0x73,0x37,0xbf,0x22,0xca,0xd8,0xca,0x79,0x7c,0xdb,0x90,0x61,0xc5, +0xe4,0x93,0x7c,0xab,0xbe,0xd0,0x80,0x78,0x18,0x7e,0xe0,0xff,0x6c,0xff,0x80,0xb, +0x12,0x48,0xe8,0x38,0x4, 0x7c,0xeb,0x7c,0xdf,0xb, 0xf0,0xbc,0xaf,0x38,0xf1,0x80, +0x1a,0xbe,0xd0,0x81,0x78,0x15,0x6c,0xee,0x6c,0xff,0x80,0xb, 0x12,0x48,0xe8,0x40, +0x4, 0x7c,0xeb,0x7c,0xdf,0xb, 0xf0,0xbc,0xaf,0x38,0xf1,0xbc,0xad,0x38,0x2, 0x6c, +0xdd,0x7c,0xbd,0x12,0x8d,0xb3,0x12,0x48,0x6e,0x7e,0x73,0x2b,0x1f,0x7a,0x73,0x37, +0xbe,0x12,0x49,0x4, 0x7e,0x73,0x2b,0xf, 0x7a,0x73,0x37,0xce,0x12,0x48,0x30,0x7a, +0xd3,0x37,0xa6,0xda,0x79,0xda,0xd8,0x22,0x7e,0x90,0x5, 0xac,0x9f,0x9, 0xb4,0x26, +0x33,0xbc,0xbe,0x22,0x30,0x3, 0x3, 0x12,0x48,0x6e,0xa2,0x4, 0x92,0x5, 0x12,0x49, +0xc3,0x2, 0x49,0x4, 0x7e,0x73,0x2b,0x20,0x7a,0x73,0x37,0xbd,0x22,0x74,0x40,0x12, +0x6e,0x8b,0x50,0x9, 0xd2,0x3, 0xd2,0x4, 0x12,0x48,0xf4,0x80,0x1c,0x74,0x1, 0x12, +0x49,0x47,0x7e,0x43,0x37,0xbb,0x7e,0x50,0x64,0xac,0x45,0x12,0x87,0xf8,0x7a,0xb3, +0x2b,0x1f,0x7e,0xf, 0x38,0xd9,0x12,0x4d,0x9b,0x12,0x49,0x4, 0x7e,0x73,0x2b,0x1f, +0x7a,0x73,0x37,0xbe,0x2, 0x48,0x6e,0xca,0x3b,0x7c,0xdb,0xe4,0x7a,0xb3,0x2b,0x14, +0x12,0xc0,0x22,0x7e,0xc0,0xa, 0x12,0x4e,0x6e,0x30,0xb, 0xfd,0x74,0x1, 0x12,0x0, +0xe, 0x7e,0x1f,0x38,0xd9,0x12,0x90,0x58,0x7d,0x73,0xbe,0x74,0xff,0xff,0x78,0x9, +0x12,0x49,0xb7,0x2e,0x34,0x0, 0x3, 0x80,0x18,0xbe,0x74,0x80,0x0, 0x28,0x7, 0x12, +0x49,0xb7,0xb, 0x35,0x80,0xb, 0xbe,0x74,0x40,0x0, 0x28,0xc, 0x12,0x49,0xb7,0xb, +0x34,0x1b,0xa, 0x30,0x1b,0xc0,0x78,0xbe,0xbe,0xd0,0x1, 0x78,0x9, 0x7e,0x1f,0x38, +0xd9,0x12,0x8f,0xfb,0x7d,0x73,0x7e,0x1f,0x38,0xc8,0x69,0x31,0x0, 0x1a,0x7a,0x73, +0x2b,0x14,0x7d,0x37,0xda,0x3b,0x22,0x7e,0xf, 0x38,0xc8,0x2e,0x14,0x0, 0x1a,0xb, +0xa, 0x30,0x22,0xca,0x3b,0x7e,0x34,0xff,0xff,0x7a,0x35,0x35,0x7e,0xb3,0x37,0xb1, +0xf5,0x2a,0x7e,0xb3,0x2a,0x6d,0xf5,0x2b,0x7e,0xb3,0x2a,0x6e,0xf5,0x2c,0x7e,0xb3, +0x2a,0x70,0xf5,0x2d,0x7e,0xb3,0x2a,0x6f,0xf5,0x2e,0x7e,0x34,0x27,0x10,0x7a,0x35, +0x2f,0x7e,0x18,0x40,0x0, 0x7a,0x1d,0x31,0x12,0x4e,0x67,0x30,0xb, 0xfd,0x74,0x1, +0x12,0x0, 0xe, 0x7e,0x8, 0x34,0x0, 0x12,0x4e,0x5f,0x6c,0xff,0x80,0x35,0x12,0x4c, +0x40,0x6c,0xee,0x80,0x19,0x7e,0x11,0x2c,0xac,0x1e,0x3e,0x4, 0x7e,0x30,0x2, 0xac, +0x3f,0x2d,0x10,0x7e,0x1d,0x31,0x2d,0x31,0xb, 0x1a,0x10,0x12,0x4c,0x47,0xe5,0x2e, +0xbc,0xbe,0x38,0xe1,0xe5,0x2e,0x12,0x4c,0x56,0x74,0x2, 0xac,0xbf,0x59,0x35,0x34, +0x0, 0xb, 0xf0,0xe5,0x2d,0xbc,0xbf,0x38,0xc5,0x12,0xc0,0x90,0x68,0xb, 0x7e,0x34, +0x10,0x0, 0x12,0x4c,0x7c,0x59,0x35,0x33,0xfe,0x6c,0xff,0x80,0x78,0x12,0x4c,0x40, +0x6c,0xee,0x80,0x14,0x12,0x4e,0x38,0x1e,0x34,0x1e,0x24,0x50,0x3, 0x4e,0x60,0x80, +0x14,0x78,0xf4,0x7d,0x13,0x12,0x4c,0x47,0xe5,0x2a,0xbc,0xbe,0x38,0xe6,0xe5,0x2a, +0x12,0x4c,0x56,0x74,0x4, 0xac,0xbf,0x59,0x35,0x3, 0x60,0xe5,0x2a,0xbe,0xb1,0x2d, +0x50,0x35,0x12,0x4c,0x40,0x7e,0xe1,0x2a,0x80,0x14,0x12,0x4e,0x38,0x1e,0x34,0x1e, +0x24,0x50,0x3, 0x4e,0x60,0x80,0x14,0x78,0xf4,0x7d,0x13,0x12,0x4c,0x47,0xe5,0x2d, +0xbc,0xbe,0x38,0xe6,0xe5,0x2a,0xa, 0x3b,0x6d,0x22,0xe5,0x2d,0xa, 0x1b,0x6d,0x0, +0x9f,0x1, 0x12,0x4c,0x5a,0x80,0x4, 0x7e,0x34,0x10,0x0, 0x74,0x4, 0xac,0xbf,0x59, +0x35,0x3, 0x62,0xb, 0xf0,0xe5,0x2e,0xbc,0xbf,0x38,0x82,0xe5,0x2d,0xa, 0x1b,0x6d, +0x0, 0x7e,0x18,0x0, 0x7a,0x12,0x1f,0x7, 0x6c,0xff,0x80,0x2e,0x74,0x2, 0xac,0xbf, +0x49,0x25,0x34,0x0, 0xa, 0x5f,0xad,0x53,0x7e,0x14,0x10,0x0, 0x9d,0x15,0xad,0x12, +0x74,0xc, 0x1e,0x14,0x1e,0x4, 0x50,0x3, 0x4e,0x20,0x80,0x14,0x78,0xf4,0x7d,0x21, +0x74,0x2, 0xac,0xbf,0x59,0x25,0x34,0x0, 0xb, 0xf0,0xe5,0x2d,0xbc,0xbf,0x38,0xcc, +0xe5,0x2b,0xa, 0x1b,0x6d,0x0, 0x7e,0x18,0x0, 0x28,0x12,0x1f,0x7, 0x6c,0xff,0x80, +0x5c,0x74,0x4, 0xac,0xbf,0x49,0x25,0x3, 0x60,0xa, 0x1f,0xad,0x13,0x7e,0xf4,0x10, +0x0, 0x9d,0xf1,0xad,0xf2,0x74,0xc, 0x1e,0xf4,0x1e,0xe4,0x50,0x4, 0x4e,0xf4,0x80, +0x0, 0x14,0x78,0xf3,0x7d,0x2f,0x74,0x4, 0xac,0xbf,0x59,0x25,0x3, 0x60,0xe5,0x2a, +0xbe,0xb1,0x2d,0x50,0x26,0x74,0x4, 0xac,0xbf,0x49,0x25,0x3, 0x62,0x2e,0x14,0x10, +0x0, 0xad,0x12,0x74,0xc, 0x1e,0x14,0x1e,0x4, 0x50,0x3, 0x4e,0x20,0x80,0x14,0x78, +0xf4,0x7d,0x21,0x74,0x4, 0xac,0xbf,0x59,0x25,0x3, 0x62,0xb, 0xf0,0xe5,0x2b,0xbc, +0xbf,0x38,0x9e,0x7e,0x73,0x37,0xb3,0xa, 0x37,0x6d,0x22,0x74,0xc, 0x2f,0x11,0x14, +0x78,0xfb,0x7e,0xf4,0x0, 0x64,0x7d,0x1f,0x12,0x1f,0x5, 0x7d,0xe3,0x7a,0xe5,0x35, +0x7e,0x73,0x37,0xb4,0xa, 0x37,0x6d,0x22,0x74,0xc, 0x2f,0x11,0x14,0x78,0xfb,0x7d, +0x1f,0x12,0x1f,0x5, 0x7d,0x63,0x6c,0xff,0x80,0x20,0x74,0x2, 0xac,0xbf,0x49,0x45, +0x34,0x0, 0xbe,0x45,0x35,0x28,0x9, 0x7e,0x35,0x35,0x59,0x35,0x34,0x0, 0x80,0x8, +0xbd,0x46,0x50,0x4, 0x59,0x65,0x34,0x0, 0xb, 0xf0,0xe5,0x2d,0xbc,0xbf,0x38,0xda, +0x6c,0xff,0x80,0x3a,0x74,0x4, 0xac,0xbf,0x49,0x45,0x3, 0x60,0xbe,0x45,0x35,0x28, +0x9, 0x7e,0x35,0x35,0x59,0x35,0x3, 0x60,0x80,0x8, 0xbd,0x46,0x50,0x4, 0x59,0x65, +0x3, 0x60,0x49,0x45,0x3, 0x62,0xbe,0x45,0x35,0x28,0x9, 0x7e,0x35,0x35,0x59,0x35, +0x3, 0x62,0x80,0x8, 0xbd,0x46,0x50,0x4, 0x59,0x65,0x3, 0x62,0xb, 0xf0,0xe5,0x2b, +0xbc,0xbf,0x38,0xc0,0x30,0x5, 0x6, 0x7e,0xd, 0x31,0x12,0x4d,0x9b,0xda,0x3b,0x22, +0x9f,0x11,0x7a,0x1f,0x24,0xf4,0x22,0x6d,0x0, 0x7e,0x1f,0x24,0xf4,0x2f,0x10,0x7a, +0x1f,0x24,0xf4,0xb, 0xe0,0x22,0xa, 0x1b,0x6d,0x0, 0x7e,0x1f,0x24,0xf4,0x12,0x1f, +0x7, 0x7a,0x1f,0x24,0xf4,0x7e,0x25,0x2f,0x74,0xc, 0x7d,0x13,0x7d,0x32,0x6d,0x22, +0x60,0x5, 0x2f,0x11,0x14,0x78,0xfb,0xb, 0x14,0x2, 0x1f,0x5, 0x7e,0xa1,0x2c,0x74, +0x2, 0xa4,0x22,0xca,0x3b,0x7e,0x8, 0x1f,0x34,0x12,0x4e,0x5f,0x7e,0x1f,0x38,0xf3, +0x7a,0x1d,0x26,0x7e,0xb3,0x2a,0x74,0xf5,0x2d,0x7e,0xb3,0x38,0x86,0xb4,0x1, 0x6, +0x7e,0x38,0x38,0x88,0x80,0x4, 0x7e,0x38,0x5, 0xf8,0x6d,0x33,0x7a,0x35,0x2a,0x74, +0x2, 0x12,0x0, 0x1e,0x7e,0xb3,0x38,0x87,0x70,0xe, 0x7e,0xb3,0x38,0x85,0x70,0x8, +0x74,0x1, 0x7a,0xb3,0x38,0x87,0xa1,0x57,0x7e,0xb3,0x38,0x87,0x70,0x6, 0x74,0x1, +0x7a,0xb3,0x38,0x87,0x7e,0xb3,0x38,0x86,0xb4,0x1, 0x17,0x75,0x2c,0x0, 0x80,0x9, +0x12,0x4c,0x7c,0x12,0x4d,0x8b,0x12,0x4e,0x27,0xe5,0x2d,0xbe,0xb1,0x2c,0x38,0xf0, +0x80,0x1b,0x75,0x2c,0x0, 0x80,0xf, 0x12,0x4c,0x7c,0x12,0x4d,0x8b,0x3e,0x24,0x3e, +0x24,0x1e,0x24,0x12,0x4e,0x27,0xe5,0x2d,0xbe,0xb1,0x2c,0x38,0xea,0x7e,0x34,0x61, +0x59,0x12,0x23,0x9e,0x7a,0x35,0x2e,0x7e,0x18,0x1f,0x34,0x7f,0x1, 0x12,0xa6,0x56, +0x75,0x2c,0x0, 0x80,0x16,0x12,0x4c,0x7c,0x12,0x4d,0x84,0xbe,0x35,0x2a,0x8, 0x9, +0x12,0x4c,0x7c,0x12,0x4d,0x84,0x7a,0x35,0x2a,0x5, 0x2c,0xe5,0x2d,0xbe,0xb1,0x2c, +0x38,0xe3,0x12,0x4d,0x93,0x40,0x25,0x7e,0xb3,0x38,0x86,0xb4,0x1, 0x1e,0x5, 0x1c, +0xe5,0x1c,0xbe,0xb0,0xa, 0x40,0x15,0x75,0x1c,0x0, 0xe5,0x2d,0xa, 0x3b,0x3e,0x34, +0xca,0x39,0x7e,0x1d,0x26,0x7f,0x3, 0x12,0x20,0xb9,0x1b,0xfd,0x74,0x2, 0x12,0x0, +0x1e,0x12,0x4d,0x93,0x50,0xb, 0x74,0x2, 0x7a,0xb3,0x38,0xf2,0xe4,0x7a,0xb3,0x38, +0x87,0xda,0x3b,0x22,0x49,0x35,0x1f,0x34,0x2, 0x21,0x0, 0x7f,0x13,0x2d,0x35,0xb, +0x1a,0x20,0x22,0x7e,0x37,0x2b,0x7, 0xbe,0x35,0x2a,0x22,0x12,0x4d,0xa5,0xb, 0x34, +0x7a,0x73,0x2b,0x20,0x22,0xca,0x79,0x7f,0x10,0x9f,0x0, 0x12,0xc1,0x17,0x4c,0xaa, +0x78,0x6, 0x7e,0x34,0x0, 0x40,0x80,0x6c,0x6c,0x99,0x80,0x38,0xa, 0xe9,0x2e,0xe4, +0x60,0xac,0x7d,0x7e,0x7a,0xf1,0x82,0x7a,0xe1,0x83,0xe4,0x93,0x7c,0x8b,0x90,0x60, +0xaa,0xe4,0x93,0x70,0xe, 0x7e,0xf3,0x2a,0x6e,0xac,0xf8,0x7e,0xb3,0x2a,0x70,0xa, +0xfb,0x2d,0xf7,0x7d,0xef,0x3e,0xe4,0x7f,0x61,0x2d,0xde,0xb, 0x6a,0xd0,0x6d,0xcc, +0x2f,0x6, 0xb, 0x90,0xbc,0xa9,0x38,0xc4,0xbe,0x8, 0x0, 0x0, 0x78,0x2, 0xb, 0xc, +0xa, 0x5a,0x6d,0x44,0x7f,0x10,0x7f,0x2, 0x12,0x1f,0x7, 0x7f,0x1, 0xb, 0xc, 0x7e, +0x34,0xc4,0x0, 0x7e,0x24,0x0, 0x9, 0x12,0x1f,0x7, 0xbe,0x34,0x0, 0xfa,0x28,0x4, +0x7e,0x34,0x0, 0xfa,0xda,0x79,0x22,0x7e,0xd, 0x26,0x2d,0x15,0xb, 0xa, 0x30,0x9d, +0x32,0x59,0x35,0x1f,0x34,0x5, 0x2c,0x22,0x7e,0x11,0x2c,0xac,0x1f,0x3e,0x4, 0x7e, +0x30,0x2, 0xac,0x3e,0x2d,0x10,0x7e,0x1d,0x31,0x2d,0x31,0xb, 0x1a,0x20,0x7a,0x27, +0x24,0xf2,0x74,0x2, 0xac,0xbe,0x49,0x35,0x34,0x0, 0xad,0x23,0x74,0xc, 0x22,0x7e, +0x34,0x0, 0x38,0xe4,0x2, 0x20,0xde,0x7e,0x8, 0x2a,0x6d,0x12,0xd, 0x72,0xe4,0x12, +0x0, 0xe, 0x74,0x1, 0x7e,0x70,0x99,0x12,0x13,0x2c,0x2, 0x0, 0x4e,0xb4,0x3, 0x5, +0x12,0x4e,0x8d,0x80,0x2, 0xe4,0x22,0x12,0x4e,0x72,0x74,0x1, 0x22,0x12,0xc0,0x75, +0xe4,0x12,0x0, 0xe, 0x7e,0x8, 0x2a,0x6d,0x2, 0xd, 0x72,0x12,0x7f,0x6f,0x38,0x2, +0xe4,0x22,0x12,0x7f,0x67,0x49,0x55,0x34,0x3b,0xbe,0xb0,0x2, 0x38,0x3, 0x2, 0x4e, +0xb4,0x2, 0x4e,0x7d,0x7e,0xd7,0x2b,0xd, 0xbe,0xb0,0x1, 0x28,0x2, 0xe4,0x22,0x12, +0x7e,0xf8,0x12,0x4e,0xe0,0x7a,0xd7,0x2b,0xd, 0x7e,0x73,0x2a,0xfa,0xa, 0x37,0x3e, +0x34,0x3e,0x34,0xe4,0x7e,0x50,0x1, 0x12,0x13,0x1, 0x12,0x4f,0xaf,0x74,0x1, 0x22, +0x7e,0x8, 0x2a,0x6d,0x2, 0x5, 0xb4,0xca,0x3b,0x7e,0xe3,0x2a,0x74,0x7e,0xf3,0x2a, +0xfa,0x74,0x1, 0x7a,0xb3,0x2a,0xfa,0x12,0x4e,0xe0,0x12,0xc0,0xbd,0x12,0x29,0x6f, +0x7e,0x17,0x2a,0xfe,0x6d,0x0, 0x12,0x20,0xde,0x7e,0xd0,0x7, 0x12,0x26,0x57,0x6c, +0xcc,0x80,0x19,0x7e,0x34,0x0, 0x1, 0x7c,0xbd,0x60,0x5, 0x3e,0x34,0x14,0x78,0xfb, +0x7c,0x67,0x12,0x4f,0xf0,0x4c,0x76,0x7a,0x29,0x70,0xb, 0xc0,0x12,0x7b,0xb7,0xa, +0x3c,0xbd,0x32,0x48,0xde,0x12,0x4f,0x9e,0x30,0x18,0xfd,0x12,0x7b,0xc6,0x7e,0xb3, +0x2a,0x73,0x7c,0x7e,0x12,0x7b,0x31,0x6c,0xcc,0x80,0x29,0x74,0x2, 0xac,0xbc,0x49, +0x35,0x6, 0xfc,0xbe,0x34,0x15,0x40,0x50,0x19,0x7e,0x34,0x0, 0x1, 0x7c,0xbd,0x60, +0x5, 0x3e,0x34,0x14,0x78,0xfb,0x7c,0xb7,0x64,0xff,0x12,0x4f,0xf0,0x5c,0x7b,0x7a, +0x29,0x70,0xb, 0xc0,0x12,0x7b,0xb7,0xa, 0x3c,0xbd,0x32,0x48,0xce,0x1b,0xd0,0xbe, +0xd0,0x0, 0x58,0x88,0x12,0x7b,0x39,0x74,0x2, 0x12,0xc0,0xe0,0x12,0x50,0x51,0x74, +0x2, 0x12,0x0, 0x1e,0x7a,0xf3,0x2a,0xfa,0x12,0x4e,0xe0,0xda,0x3b,0x22,0x74,0x2, +0x12,0x0, 0x1e,0x7e,0xb3,0x2a,0xfc,0x12,0x50,0x51,0x74,0x2, 0x12,0x0, 0x1e,0x74, +0x5, 0x7e,0x70,0x9b,0x12,0x13,0x2c,0x12,0x4f,0xc1,0x7e,0xb3,0x2a,0xfc,0x2, 0xe, +0x94,0x6c,0xaa,0x80,0x22,0xa, 0x3a,0x9, 0x73,0x2a,0xdc,0x2e,0x34,0x20,0x73,0x12, +0x91,0x6d,0x7c,0x7b,0xa, 0x47,0x7e,0x50,0x2, 0xac,0x5a,0x7e,0xf, 0x38,0xc0,0x2d, +0x12,0x79,0x40,0x0, 0x48,0xb, 0xa0,0x7e,0x63,0x2a,0x74,0xbc,0x6a,0x38,0xd6,0x22, +0xa, 0x2c,0x2e,0x27,0x2a,0xfe,0x7e,0x29,0x70,0x22,0xe5,0xd, 0x60,0x52,0xe5,0xd, +0x30,0xe0,0x6, 0x53,0xd, 0xfe,0x12,0x4e,0xe0,0xe5,0xd, 0x30,0xe1,0x14,0x53,0xd, +0xfd,0x7e,0xb3,0x37,0xe0,0x70,0x4, 0x74,0x1, 0x80,0x1, 0xe4,0x12,0xc0,0xe0,0x12, +0x50,0xd4,0xe5,0xd, 0x30,0xe2,0x29,0x53,0xd, 0xfb,0xe4,0x7a,0xb3,0x37,0xe1,0x7e, +0xb3,0x37,0xe0,0x70,0xa, 0x74,0x1, 0x12,0x0, 0x1e,0x12,0x3f,0x67,0x80,0x7, 0xe4, +0x12,0x0, 0x1e,0x12,0x3f,0x49,0x12,0x3b,0x15,0x7e,0xb3,0x2a,0xfc,0x2, 0x50,0x51, +0x22,0xca,0x79,0x7c,0xfb,0x7e,0x8, 0x24,0xf2,0x12,0x3f,0xe9,0x7e,0xa3,0x2a,0x73, +0x7e,0x73,0x2a,0x74,0x6c,0xee,0x80,0x1e,0xa, 0x2e,0x9, 0x62,0x2a,0xdc,0xa, 0x26, +0x12,0x51,0x4b,0x93,0x7c,0x6b,0xbe,0x60,0x1c,0x50,0x9, 0xa, 0x2e,0x12,0x50,0xca, +0x19,0xb2,0x24,0xf2,0xb, 0xe0,0xbc,0x7e,0x38,0xde,0x6c,0xee,0x80,0x1a,0xa, 0x2e, +0x9, 0x62,0x2a,0xb9,0xbe,0x60,0x23,0x50,0xd, 0xa, 0x1e,0xa, 0x27,0x2d,0x21,0x12, +0x50,0xca,0x19,0xb2,0x25,0xe, 0xb, 0xe0,0xbc,0xae,0x38,0xe2,0x6c,0xee,0x7e,0x30, +0xe, 0xac,0x3e,0x2e,0x14,0x24,0xf2,0x6d,0x0, 0x7c,0xbf,0x7c,0x7e,0x12,0x11,0xba, +0xb, 0xe0,0xbe,0xe0,0x5, 0x40,0xe7,0xda,0x79,0x22,0x2e,0x27,0x2a,0xfe,0x7e,0x29, +0xb0,0xa, 0x26,0x22,0xca,0x79,0x7c,0xfb,0x7e,0x8, 0x1f,0x34,0x12,0x3f,0xe9,0x7e, +0xa3,0x2a,0x73,0x7e,0x63,0x2a,0x74,0x6c,0xee,0x80,0x1f,0xa, 0x2e,0x9, 0x72,0x2a, +0xdc,0xbe,0x70,0x1c,0x50,0x12,0xa, 0x27,0x12,0x51,0x4b,0x93,0x7c,0x7b,0x7e,0xb3, +0x2a,0xfb,0xa, 0x27,0x19,0xb2,0x1f,0x34,0xb, 0xe0,0xbc,0x6e,0x38,0xdd,0x6c,0xee, +0x80,0x17,0xa, 0x3e,0x9, 0x73,0x2a,0xb9,0xbe,0x70,0x23,0x50,0xa, 0x7e,0x63,0x2a, +0xfb,0xa, 0x27,0x19,0x62,0x1f,0x50,0xb, 0xe0,0xbc,0xae,0x38,0xe5,0x6c,0xee,0x7e, +0x30,0xe, 0xac,0x3e,0x2e,0x14,0x1f,0x34,0x6d,0x0, 0x7c,0xbf,0x7c,0x7e,0x12,0x11, +0xf8,0xb, 0xe0,0xbe,0xe0,0x5, 0x40,0xe7,0xda,0x79,0x22,0x2e,0x24,0x20,0x73,0x7a, +0x51,0x82,0x7a,0x41,0x83,0xe4,0x22,0x7a,0xb3,0x34,0xc4,0x7c,0xbf,0x6c,0x77,0x7c, +0x67,0x7c,0x7b,0xc4,0x23,0x54,0x1f,0x7c,0xab,0x7c,0xb7,0x54,0x7, 0xa, 0x2b,0x2e, +0x24,0x0, 0x5e,0x12,0x51,0x4f,0x93,0x7c,0x7b,0x4c,0x66,0x68,0xf, 0xa, 0x2a,0x2e, +0x24,0x27,0x72,0x7e,0x29,0xb0,0x4c,0xb7,0x7a,0x29,0xb0,0x22,0x7c,0xb7,0x64,0xff, +0xa, 0x2a,0x2e,0x24,0x27,0x72,0x7e,0x29,0x70,0x5c,0x7b,0x7a,0x29,0x70,0x22,0xca, +0xf8,0x6c,0xaa,0x6d,0x33,0x7e,0x24,0x7f,0xff,0x7e,0xf0,0x1, 0x80,0x32,0xa, 0x1f, +0x7e,0xb3,0x2a,0x6e,0xa, 0xb, 0x2d,0x1, 0x3e,0x4, 0x49,0x10,0x4, 0xfc,0xbe,0x14, +0x3, 0xe8,0x8, 0x1a,0xb, 0xa0,0xbd,0x13,0x8, 0x4, 0x7d,0x31,0x80,0x10,0xbd,0x12, +0x58,0xc, 0x7d,0x21,0xbe,0x24,0x0, 0x0, 0x18,0x4, 0x7e,0x24,0x0, 0x1, 0xb, 0xf0, +0x7e,0xb3,0x2a,0x6f,0xa, 0xb, 0x1b,0x4, 0xa, 0x1f,0xbd,0x10,0x48,0xc0,0x7e,0xb3, +0x34,0xa1,0x7a,0xb3,0x36,0xf3,0x7a,0xa3,0x36,0xf7,0xe4,0x7a,0xb3,0x36,0xf5,0xbe, +0xa0,0xb, 0x78,0x18,0x9d,0x32,0xbe,0x34,0x4, 0xb0,0x58,0x10,0x7e,0x37,0x28,0x8a, +0xbe,0x34,0x1, 0x5e,0x58,0x6, 0x74,0x1, 0x7a,0xb3,0x34,0xa1,0x7e,0x73,0x34,0xa1, +0xbe,0x70,0x0, 0x28,0x3e,0x6c,0xff,0x80,0x35,0x7c,0xbf,0x12,0x97,0xfc,0x60,0x22, +0x74,0x22,0x7a,0xb3,0x36,0xf4,0x7e,0xb3,0x34,0xc4,0x4, 0x12,0x51,0x57,0x7e,0x73, +0x34,0xc4,0xbe,0x70,0x5, 0x40,0x15,0xe4,0x7a,0xb3,0x34,0xc4,0x7a,0xb3,0x34,0xa1, +0x80,0xa, 0xe4,0x12,0x51,0x57,0x74,0x33,0x7a,0xb3,0x36,0xf5,0xb, 0xf0,0x12,0x52, +0x66,0x38,0xc6,0xda,0xf8,0x22,0x7e,0x73,0x28,0x84,0xbc,0x7f,0x22,0xca,0xd8,0xca, +0x79,0xc2,0x3, 0x6d,0x88,0x7a,0x87,0x38,0x3c,0xe4,0x7a,0xb3,0x1f,0x58,0xe5,0x1d, +0xbe,0xb0,0xff,0x50,0x2, 0x5, 0x1d,0x7e,0xb3,0x28,0x84,0x60,0xc, 0x12,0x8c,0x87, +0xb, 0x1a,0x80,0xbe,0x87,0x7, 0xfa,0x28,0xa, 0xc2,0x10,0x6d,0x88,0x7a,0x87,0x37, +0xfd,0x61,0xa0,0x12,0x93,0x91,0x60,0x12,0x7e,0x34,0x62,0xe, 0x12,0x87,0xc4,0x7a, +0x87,0x37,0xf3,0x12,0x54,0x2b,0x7a,0x87,0x37,0xfd,0x7e,0x87,0x37,0xf3,0x4d,0x88, +0x68,0x6, 0x74,0x1, 0x7a,0xb3,0x28,0xa9,0x6c,0xff,0x80,0x7b,0xe4,0xa, 0x3f,0x19, +0xb3,0x1f,0x34,0x12,0x54,0x3c,0x9, 0xe5,0x26,0xfb,0x7e,0x8, 0x1f,0x52,0x7c,0xbd, +0x7c,0x7e,0x12,0x55,0xb9,0x7d,0x93,0x7e,0x87,0x37,0xfd,0xbd,0x89,0x50,0x4, 0x7a, +0x97,0x37,0xfd,0x7e,0x87,0x38,0x3c,0xbd,0x89,0x50,0x4, 0x7a,0x97,0x38,0x3c,0xe5, +0x1d,0xbe,0xb0,0x5, 0x38,0x1f,0x7e,0x8, 0x37,0xff,0x12,0x54,0x4e,0x50,0x7, 0x12, +0x54,0x45,0xd2,0x3, 0x80,0x2f,0x7e,0x8, 0x37,0xff,0x7e,0x18,0x1f,0x52,0x12,0x57, +0x0, 0x50,0x22,0x80,0x10,0x12,0x54,0x2b,0xbd,0x89,0x38,0x19,0x7e,0x8, 0x1f,0x52, +0x12,0x91,0x86,0x50,0x10,0x12,0x54,0x45,0x7e,0x8, 0x1f,0x58,0x7e,0x18,0x1f,0x52, +0x12,0x93,0x6b,0xd2,0x3, 0xb, 0xf0,0x12,0x52,0x66,0x38,0x80,0x30,0x3, 0x37,0x6c, +0xff,0x80,0x20,0x12,0x54,0x3c,0x9, 0xe5,0x26,0xfb,0x7e,0x8, 0x1f,0x58,0x12,0x54, +0x4e,0x40,0x9, 0xa, 0x3f,0x9, 0xb3,0x1f,0x34,0xb4,0x1, 0x5, 0x7c,0xbf,0x12,0x54, +0x7, 0xb, 0xf0,0x12,0x52,0x66,0x38,0xdb,0x75,0x1d,0x0, 0x7e,0x34,0x62,0xe, 0x12, +0x23,0x9e,0x7a,0x37,0x37,0xf3,0x7e,0x63,0x1f,0x58,0x7e,0x70,0x6, 0xac,0x67,0xb, +0x34,0xca,0x39,0x7e,0x18,0x1f,0x58,0x7e,0x8, 0x37,0xff,0x12,0x20,0xb9,0x1b,0xfd, +0x7e,0x37,0x37,0xf3,0x4d,0x33,0x78,0x39,0x90,0x62,0x9, 0xe4,0x93,0xa, 0x3b,0xbe, +0x37,0x37,0xfd,0x38,0x40,0x7c,0x7b,0x1e,0x70,0xa, 0x37,0xbe,0x37,0x38,0x3c,0x38, +0x34,0x90,0x60,0x51,0x12,0x54,0x33,0x7e,0x73,0x26,0xf7,0xa, 0x37,0xbd,0x32,0x8, +0x24,0x90,0x60,0x50,0x12,0x54,0x33,0x7e,0x73,0x26,0xf6,0xa, 0x37,0xbd,0x32,0x8, +0x14,0x6c,0xff,0x80,0x7, 0x7c,0xbf,0x12,0x54,0x7, 0xb, 0xf0,0x12,0x52,0x66,0x38, +0xf4,0xd2,0x3, 0x80,0x6, 0x6d,0x33,0x7a,0x37,0x37,0xfd,0xa2,0x3, 0x92,0x10,0x12, +0x56,0xe9,0xda,0x79,0xda,0xd8,0x22,0x7c,0xab,0x7e,0xb3,0x39,0xb, 0x70,0x1b,0x7e, +0xb3,0x28,0xa8,0x70,0x15,0x12,0xc1,0x7, 0x68,0x10,0x7e,0xb3,0x2a,0x6b,0xbe,0xb0, +0x1, 0x68,0x7, 0x7c,0xba,0x6c,0x77,0x2, 0x51,0x5f,0x22,0x90,0x62,0x9, 0xe4,0x93, +0xa, 0x8b,0x22,0xe4,0x93,0x7c,0x7b,0x1e,0x70,0xa, 0x27,0x22,0x74,0x2, 0xac,0xbf, +0x9, 0xd5,0x26,0xfa,0x22,0x74,0x1, 0xa, 0x8f,0x19,0xb8,0x1f,0x34,0x22,0x7c,0xbd, +0x7c,0x7e,0x7c,0x6b,0xc2,0x4, 0x6c,0xaa,0x80,0x30,0x7e,0x50,0x6, 0xac,0x5a,0x7f, +0x70,0x2d,0xf2,0xb, 0xf4,0x29,0xb7,0x0, 0x2, 0xbc,0xb6,0x40,0x1b,0x7e,0x7b,0xb0, +0xbc,0xb6,0x38,0x14,0x29,0xb7,0x0, 0x3, 0xbc,0xb7,0x40,0xc, 0x29,0xb7,0x0, 0x1, +0xbc,0xb7,0x38,0x4, 0xd2,0x4, 0x80,0x9, 0xb, 0xa0,0x7e,0xb, 0xb0,0xbc,0xba,0x38, +0xc9,0xa2,0x4, 0x22,0xca,0xd8,0xca,0x79,0x7e,0xa3,0x2a,0x6e,0x7e,0x47,0x28,0x99, +0xe4,0x7a,0xb3,0x28,0xa6,0x7e,0xb3,0x26,0xf0,0xbe,0xb0,0x0, 0x28,0x4c,0x7e,0x73, +0x28,0x85,0xbe,0x70,0x0, 0x28,0x43,0x6c,0xff,0x80,0x3b,0x7e,0x50,0x2, 0xac,0x5f, +0x9, 0xd2,0x27,0x36,0x9, 0xe2,0x27,0x37,0x7e,0x50,0x2, 0xac,0x5e,0x49,0x12,0x4, +0xfc,0x6d,0x22,0x9e,0x27,0x2a,0x53,0xbd,0x12,0x58,0x19,0x12,0x55,0xa6,0x49,0x12, +0x4, 0xfc,0x6d,0x22,0x9e,0x27,0x2a,0x51,0xbd,0x12,0x58,0x8, 0x74,0x1, 0x7a,0xb3, +0x28,0xa6,0x80,0x6, 0xb, 0xf0,0xbc,0x7f,0x38,0xc1,0xe4,0x7a,0xb3,0x28,0xa7,0x7e, +0xb3,0x26,0x83,0x70,0x40,0x12,0x8f,0xe3,0x28,0x3b,0x6c,0xff,0x80,0x33,0x7e,0x50, +0x2, 0xac,0x5f,0x9, 0xd2,0x26,0xfa,0x9, 0xe2,0x26,0xfb,0x12,0x55,0xa6,0x49,0x2, +0x5, 0x7a,0x6d,0x11,0x9d,0x14,0xbd,0x1, 0x48,0xd, 0x7e,0x10,0x2, 0xac,0x1e,0x49, +0x20,0x5, 0x7a,0xbd,0x21,0x58,0x8, 0x74,0x1, 0x7a,0xb3,0x28,0xa7,0x80,0x6, 0xb, +0xf0,0xbc,0x7f,0x38,0xc9,0x12,0xb1,0x64,0xe4,0x7a,0xb3,0x28,0xa9,0x7e,0x37,0x28, +0x88,0x2e,0x37,0x28,0x86,0xbe,0x37,0x28,0x9f,0x28,0x6, 0x74,0x1, 0x7a,0xb3,0x28, +0xa9,0x74,0x1, 0x7a,0xb3,0x28,0xaa,0x6c,0xff,0x80,0x1f,0x12,0x55,0xaf,0x49,0x25, +0x25,0xf7,0x7d,0x43,0x9d,0x42,0x7d,0x34,0x12,0x21,0x0, 0xbe,0x37,0x28,0x9d,0x8, +0x7, 0xe4,0x7a,0xb3,0x28,0xaa,0x80,0x7, 0xb, 0xf0,0x12,0x52,0x66,0x38,0xdc,0x6c, +0xff,0x80,0x9, 0x12,0x55,0xaf,0x59,0x35,0x25,0xf7,0xb, 0xf0,0x12,0x52,0x66,0x38, +0xf2,0xda,0x79,0xda,0xd8,0x22,0xa, 0x1d,0xa, 0x2a,0x2d,0x21,0x3e,0x24,0x22,0x7c, +0xbf,0x12,0x37,0x6f,0x74,0x2, 0xac,0xbf,0x22,0xca,0x3b,0x7c,0xc7,0x7c,0xfb,0x7f, +0x40,0x6d,0x33,0x7a,0x35,0x24,0x7e,0xa3,0x2a,0x6d,0x7e,0x73,0x2a,0x6e,0x4c,0xcc, +0x78,0x5, 0x7e,0xc0,0x1, 0x80,0xd, 0x7c,0xb7,0x14,0xbc,0xbc,0x78,0x6, 0xa, 0x6c, +0x1b,0x65,0x7c,0xcd,0x4c,0xff,0x78,0x5, 0x7e,0xf0,0x1, 0x80,0xb, 0x7c,0xba,0x14, +0xbc,0xbf,0x78,0x4, 0xa, 0x7f,0x1b,0x75,0x7f,0x4, 0x7e,0x34,0x0, 0x6, 0xe4,0x12, +0x20,0xde,0x7e,0x73,0x2a,0x6d,0xa, 0x37,0x1b,0x34,0x7a,0x4b,0x70,0x7e,0x73,0x2a, +0x6e,0xa, 0x37,0x1b,0x34,0x39,0x74,0x0, 0x1, 0x7c,0xec,0x80,0x1c,0x75,0x26,0x0, +0x7c,0xdf,0x80,0xa, 0x12,0x91,0xd5,0x70,0xa, 0x12,0x56,0xd3,0x1b,0xd0,0xbe,0xd0, +0x0, 0x58,0xf1,0xe5,0x26,0x60,0x7, 0x1b,0xe0,0xbe,0xe0,0x0, 0x58,0xdf,0x7c,0xec, +0x80,0x23,0x75,0x26,0x0, 0x1a,0x3f,0xb, 0x34,0x7c,0xd7,0x80,0xa, 0x12,0x91,0xd5, +0x70,0xd, 0x12,0x56,0xd3,0xb, 0xd0,0x7e,0x73,0x2a,0x6d,0xbc,0x7d,0x18,0xee,0xe5, +0x26,0x60,0x7, 0x1b,0xe0,0xbe,0xe0,0x0, 0x58,0xd8,0x1a,0x3c,0xb, 0x34,0x7c,0xe7, +0x80,0x1c,0x75,0x26,0x0, 0x7c,0xdf,0x80,0xa, 0x12,0x91,0xd5,0x70,0xa, 0x12,0x56, +0xd3,0x1b,0xd0,0xbe,0xd0,0x0, 0x58,0xf1,0xe5,0x26,0x60,0xa, 0xb, 0xe0,0x7e,0x73, +0x2a,0x6e,0xbc,0x7e,0x18,0xdc,0x1a,0x3c,0xb, 0x34,0x7c,0xe7,0x80,0x21,0x75,0x26, +0x0, 0x1a,0x6f,0xb, 0x64,0x80,0xa, 0x12,0x91,0xd5,0x70,0xd, 0x12,0x56,0xd3,0xb, +0xd0,0x7e,0x73,0x2a,0x6d,0xbc,0x7d,0x18,0xee,0xe5,0x26,0x60,0xa, 0xb, 0xe0,0x7e, +0x73,0x2a,0x6e,0xbc,0x7e,0x18,0xd7,0x7e,0x35,0x24,0x7d,0x23,0x39,0x54,0x0, 0x5, +0xda,0x3b,0x22,0x5, 0x26,0x7e,0x35,0x24,0xb, 0x34,0x7a,0x35,0x24,0x22,0x12,0x57, +0x32,0x12,0x51,0x9f,0x7a,0xb3,0x2a,0xc, 0x22,0x30,0x10,0x13,0x12,0xc0,0xf7,0x68, +0x6, 0x7e,0xb3,0x39,0xb, 0x60,0x8, 0x7e,0x34,0xb, 0xb8,0x7a,0x37,0x37,0xfb,0x22, +0x7f,0x61,0x7f,0x50,0x7e,0x6b,0x90,0x80,0x1f,0x29,0x86,0x0, 0x1, 0x80,0xf, 0x7f, +0x5, 0x7c,0xb9,0x7c,0x78,0x12,0x54,0x52,0x50,0x2, 0xd3,0x22,0xb, 0x80,0x29,0x76, +0x0, 0x3, 0xbc,0x78,0x50,0xe9,0xb, 0x90,0x29,0x76,0x0, 0x2, 0xbc,0x79,0x50,0xd9, +0xc3,0x22,0x7e,0xa3,0x28,0x84,0xe4,0x7a,0xb3,0x34,0xa2,0x6c,0x33,0x80,0x3d,0x7e, +0x70,0x2, 0xac,0x73,0x9, 0x23,0x26,0xfb,0x7e,0x10,0x1, 0x6c,0x0, 0x80,0x27,0xbc, +0x3, 0x68,0x21,0x7e,0x70,0x2, 0xac,0x70,0x9, 0x93,0x26,0xfb,0xa, 0x29,0xa, 0x32, +0x12,0x35,0x67,0x18,0x2, 0xb, 0x10,0xbe,0x10,0x2, 0x40,0x8, 0x74,0x2, 0x7a,0xb3, +0x34,0xa2,0x80,0x6, 0xb, 0x0, 0xbc,0xa0,0x38,0xd5,0xb, 0x30,0xbc,0xa3,0x38,0xbf, +0x2, 0x57,0x83,0xca,0xf8,0x7e,0x33,0x28,0x84,0x6c,0x22,0x80,0x45,0x74,0x2, 0xac, +0xb2,0x9, 0x15,0x26,0xfa,0x9, 0x5, 0x26,0xfb,0x7e,0xa0,0x1, 0x6c,0x99,0x80,0x2c, +0xbc,0x92,0x68,0x26,0x7e,0x70,0x2, 0xac,0x79,0x9, 0x83,0x26,0xfa,0x9, 0xf3,0x26, +0xfb,0xa, 0x28,0xa, 0x31,0x12,0x35,0x67,0x18,0xb, 0xa, 0x2f,0xa, 0x30,0x12,0x35, +0x67,0x8, 0x2, 0xb, 0xa0,0xbe,0xa0,0x3, 0x50,0x6, 0xb, 0x90,0xbc,0x39,0x38,0xd0, +0xb, 0x20,0xbc,0x32,0x38,0xb7,0x7e,0xb3,0x35,0x3e,0xbe,0xb0,0x0, 0x28,0x12,0x14, +0x7a,0xb3,0x35,0x3e,0xbe,0xb0,0x14,0x28,0x8, 0x7e,0x34,0x0, 0x78,0x7a,0x37,0x2a, +0x5a,0x7e,0xb3,0x36,0xec,0x70,0x58,0x7e,0xb3,0x39,0xb, 0x70,0x52,0x7e,0xb3,0x36, +0x71,0x70,0x4c,0x7e,0x37,0x37,0xfd,0xbe,0x34,0x0, 0x14,0x50,0x42,0x7e,0x37,0x28, +0x8a,0xbe,0x34,0x3, 0x20,0x58,0x38,0x7e,0xb3,0x28,0x84,0xbe,0xb0,0x3, 0x40,0x2f, +0xbe,0xa0,0x3, 0x40,0x2a,0x7e,0xb3,0x26,0x85,0xbe,0xb0,0x3, 0x50,0x9, 0x7e,0xb3, +0x26,0x84,0xbe,0xb0,0x3, 0x40,0x18,0x7e,0xb3,0x26,0xf6,0xbe,0xb0,0x8, 0x50,0x9, +0x7e,0xb3,0x26,0xf7,0xbe,0xb0,0x8, 0x40,0x6, 0x74,0x1e,0x7a,0xb3,0x35,0x3e,0xda, +0xf8,0x22,0xca,0xd8,0xca,0x79,0x7e,0x73,0x2a,0x6e,0x7e,0xf3,0x2a,0x6d,0xac,0xf7, +0x7d,0x37,0x3e,0x34,0x7e,0x8, 0x1f,0x34,0xe4,0x12,0x20,0xde,0x7e,0xb3,0x37,0xb7, +0xb4,0x1, 0x64,0x7e,0x73,0x37,0xb8,0xbe,0x70,0x0, 0x28,0x5b,0x6c,0xdd,0x80,0x3c, +0x12,0x26,0x57,0x12,0x28,0x62,0x6d,0x33,0x80,0x28,0x7e,0x35,0x24,0x3e,0x34,0x49, +0x33,0xd, 0xc8,0x12,0x21,0x0, 0x7a,0x35,0x26,0x7e,0x35,0x24,0x7d,0x13,0x3e,0x14, +0x49,0x21,0x1f,0x34,0xbe,0x25,0x26,0x58,0x7, 0x7e,0x25,0x26,0x59,0x21,0x1f,0x34, +0xb, 0x34,0x7a,0x35,0x24,0xbe,0x75,0x24,0x38,0xd0,0xb, 0xd0,0x7e,0x73,0x37,0xb8, +0xbc,0x7d,0x38,0xbc,0x7d,0x37,0x3e,0x34,0xca,0x39,0x7e,0x18,0x1f,0x34,0x7e,0x8, +0xd, 0xc8,0x12,0x20,0xb9,0x1b,0xfd,0xda,0x79,0xda,0xd8,0x22,0x7e,0xb3,0x37,0x5, +0xb4,0x1, 0x4, 0xe4,0x2, 0x58,0xe8,0x22,0x70,0x3, 0xd2,0x86,0x22,0xc2,0x86,0x22, +0x12,0x68,0x10,0x12,0x7d,0x94,0x7e,0xb3,0x37,0x8, 0xb4,0x1, 0x74,0x12,0xb6,0xb8, +0x7e,0x34,0x60,0xa5,0x12,0x23,0x9e,0x12,0x26,0x5b,0x12,0x91,0x18,0x12,0x47,0x2c, +0x12,0x28,0x62,0x50,0xde,0x12,0xab,0xb8,0x12,0x75,0xe9,0x7e,0xb3,0x37,0x5, 0xb4, +0x1, 0x4, 0xe4,0x12,0x58,0xe8,0x12,0xaf,0x66,0x12,0xa7,0xbd,0x12,0x5e,0xaa,0x40, +0xc2,0x12,0x88,0x5f,0x12,0x5e,0xaa,0x40,0xba,0x12,0x56,0xde,0x12,0x2a,0x3, 0x12, +0x0, 0x6e,0x12,0x5f,0x2f,0x12,0x5f,0x83,0x12,0x5b,0x94,0x12,0x96,0x24,0x12,0x5e, +0xc2,0x12,0x5f,0xcd,0x12,0xaa,0xc3,0x12,0x87,0x74,0x7e,0xb3,0x36,0xf1,0xbe,0xb0, +0x88,0x68,0x3, 0x12,0x59,0x77,0x12,0x67,0xfa,0x12,0x26,0x66,0x12,0x62,0xa5,0x80, +0x82,0x12,0x2f,0xee,0x2, 0x58,0xdc,0xca,0x3b,0x75,0x24,0x0, 0x6c,0xff,0x12,0x35, +0xd3,0x75,0x28,0x3, 0x6c,0xee,0x7e,0x48,0x29,0xbc,0x7e,0xb3,0x2a,0xb, 0x70,0xe, +0x7e,0xb3,0x2a,0x7, 0x70,0x8, 0x7e,0xb3,0x2a,0x8, 0x70,0x2, 0x61,0x6b,0x30,0xe, +0x6, 0x7e,0x68,0x33,0x28,0x80,0x4, 0x7e,0x68,0x32,0xea,0x7f,0x6, 0x12,0x7e,0xef, +0x7e,0x73,0x2a,0x4, 0x7a,0x6b,0x70,0x6c,0xdd,0x61,0x1c,0x74,0x9, 0xac,0xbd,0x9, +0xc5,0x29,0xc, 0x7c,0xbc,0x54,0xf, 0xa, 0x3b,0x12,0x5e,0x3d,0xf5,0x28,0x7c,0xbc, +0x54,0xf0,0xbe,0xb0,0x0, 0x28,0x2, 0x61,0x1a,0xe5,0x28,0xbe,0xb0,0x3, 0x78,0x2, +0x61,0x1a,0x7e,0x8, 0x0, 0x28,0x7c,0xbc,0x12,0x9e,0xec,0x50,0x2, 0x61,0x1a,0x74, +0x9, 0xac,0xbd,0x9, 0xb5,0x29,0xd, 0xf5,0x25,0x74,0x9, 0xac,0xbd,0x9, 0xb5,0x29, +0xe, 0xc4,0x54,0xf0,0xf5,0x26,0x7e,0x73,0x2a,0x4d,0xbc,0x7c,0x28,0x54,0x7e,0xb3, +0x2a,0x9, 0x70,0x2a,0x75,0x29,0xf, 0x7e,0x8, 0x0, 0x25,0xa, 0x3c,0x2e,0x34,0x32, +0xd6,0x6d,0x22,0x74,0x1, 0x12,0x7f,0xd4,0x75,0x29,0x20,0x7e,0x8, 0x0, 0x26,0xa, +0x3c,0x2e,0x34,0x32,0xe0,0x6d,0x22,0x74,0x10,0x12,0x7f,0xd4,0x80,0xe, 0xa, 0x3c, +0x9, 0xb3,0x32,0xd6,0xf5,0x25,0x9, 0xb3,0x32,0xe0,0xf5,0x26,0xa, 0x3c,0x12,0x5e, +0x3d,0xb4,0x1, 0xe, 0xe4,0xa, 0x3c,0x19,0xb3,0x32,0xd6,0x19,0xb3,0x32,0xe0,0x12, +0x35,0xd3,0x7e,0xb3,0x2a,0x64,0xb4,0xff,0x13,0x75,0x25,0x0, 0x74,0x9, 0xac,0xbd, +0x9, 0xb5,0x29,0xc, 0xbe,0xb0,0xff,0x68,0x3, 0x75,0x25,0x1, 0x7e,0x90,0x9, 0xac, +0x9d,0x49,0xb4,0x29,0x8, 0x49,0xa4,0x29,0xa, 0xe5,0x28,0xb4,0x1, 0x2c,0x75,0x27, +0x0, 0x80,0x1d,0x7e,0x71,0x27,0x74,0x9, 0xac,0x7b,0x9, 0xb3,0x33,0x6a,0x54,0xf, +0xbc,0xbc,0x78,0xa, 0x49,0xb3,0x33,0x66,0x49,0xa3,0x33,0x68,0x80,0xc, 0x5, 0x27, +0x90,0x60,0x99,0xe4,0x93,0xbe,0xb1,0x27,0x38,0xd9,0x5e,0xb4,0xf, 0xff,0x5e,0xa4, +0xf, 0xff,0x9, 0x74,0x29,0xc, 0xa, 0x57,0xc4,0x54,0xf0,0x7c,0xab,0xe4,0x2d,0xa5, +0xbe,0x70,0xff,0x68,0x16,0xe5,0x28,0xbe,0xb0,0x1, 0x68,0x2, 0x5, 0x24,0xb, 0xf0, +0xe5,0x28,0xa, 0x5b,0x12,0xb9,0x3c,0x2d,0xb5,0x80,0x4, 0x2e,0xb4,0xc0,0x0, 0x7e, +0x70,0x6, 0xac,0x7e,0x7f,0x6, 0x2d,0x13,0x79,0xb0,0x0, 0x2, 0x7f,0x6, 0x2d,0x13, +0x79,0xa0,0x0, 0x4, 0xe5,0x25,0x7f,0x6, 0x2d,0x13,0x39,0xb0,0x0, 0x6, 0xe5,0x26, +0x2d,0x3d,0x7d,0x2c,0x39,0xb1,0x0, 0x7, 0xb, 0xe0,0xb, 0xd0,0x7e,0x73,0x2a,0x4d, +0xbc,0x7d,0x28,0x2, 0x21,0xbb,0xe5,0x24,0x39,0xb6,0x0, 0x1, 0x7e,0xb3,0x37,0x31, +0xb4,0x1, 0x9, 0x7e,0xb3,0x2a,0x8, 0xb4,0x1, 0x17,0x80,0xd, 0xbe,0xf0,0x0, 0x38, +0x6, 0x7e,0xb3,0x2a,0x8, 0x60,0xa, 0xb2,0xe, 0x12,0x7e,0x81,0x74,0x1, 0x12,0x58, +0xe8,0x7e,0xb3,0x2a,0x7, 0x60,0x5, 0x7f,0x4, 0x12,0x5e,0x61,0xe4,0x7a,0xb3,0x2a, +0xb, 0x7a,0xb3,0x2a,0x7, 0x7a,0xb3,0x2a,0x8, 0x80,0x4, 0xe4,0x12,0x58,0xe8,0x12, +0x5f,0xc2,0xca,0x59,0x7e,0x18,0x29,0x8, 0x7e,0x8, 0x33,0x66,0x12,0x20,0xb9,0x1b, +0xfd,0x4c,0xff,0x78,0xc, 0x12,0x73,0xe5,0x7e,0x8, 0x33,0x66,0x74,0xff,0x12,0x20, +0xde,0xda,0x3b,0x22,0xca,0xf8,0x7e,0x68,0x29,0xbc,0x6c,0xaa,0x80,0x19,0x7e,0x70, +0xff,0x12,0x5e,0x8b,0xe4,0xa, 0x4a,0x19,0xb4,0x1f,0x34,0x74,0xff,0x19,0xb4,0x1f, +0x46,0x19,0xb4,0x1f,0x50,0xb, 0xa0,0x12,0x5e,0x25,0x38,0xe2,0x7e,0x73,0x2a,0x2, +0xa5,0xbf,0x0, 0x23,0x7e,0xb3,0x34,0x4f,0x70,0x2, 0xa1,0xab,0x6c,0xaa,0x80,0x10, +0x7e,0x44,0x7f,0xff,0x12,0x5e,0x95,0x79,0x40,0x0, 0x14,0x12,0x5e,0x45,0xb, 0xa0, +0x12,0x5e,0x25,0x38,0xeb,0xa1,0xab,0x7e,0xb3,0x34,0x4f,0x70,0x3d,0xbe,0x70,0x0, +0x28,0x38,0x6c,0xaa,0x80,0x2a,0x7e,0x90,0x9, 0xac,0x9a,0x49,0x34,0x28,0xae,0x12, +0x5e,0x95,0x79,0x30,0x0, 0x14,0x49,0x34,0x28,0xb0,0x7f,0x6, 0x2d,0x12,0x79,0x30, +0x0, 0x28,0x74,0x1, 0xa, 0x3a,0x19,0xb3,0x1f,0x34,0x19,0xa4,0x28,0xb2,0xb, 0xa0, +0x7e,0xb3,0x2a,0x2, 0xbc,0xba,0x38,0xce,0xa1,0xab,0x6c,0xaa,0x80,0x17,0x12,0x5e, +0x57,0x3e,0x34,0x59,0x43,0x15,0x4e,0x59,0x43,0x15,0x50,0x59,0x43,0x15,0x76,0x59, +0x43,0x15,0x78,0xb, 0xa0,0x12,0x5e,0x25,0x38,0xe4,0x6c,0xaa,0x80,0x41,0x6c,0xff, +0x80,0x36,0x7e,0x70,0x2, 0xac,0x7f,0x7f,0x6, 0x2d,0x13,0x69,0x30,0x0, 0x14,0xbe, +0x34,0x7f,0xff,0x68,0x21,0xa, 0x4f,0x9, 0xb4,0x1f,0x50,0xb4,0xff,0x18,0x12,0x5e, +0x35,0x59,0x32,0x15,0x4e,0x69,0x30,0x0, 0x28,0x59,0x32,0x15,0x50,0x12,0x5e,0x4e, +0x19,0xb4,0x1f,0x50,0x80,0x7, 0xb, 0xf0,0x12,0x5e,0x2d,0x38,0xc5,0xb, 0xa0,0x7e, +0xb3,0x34,0x4f,0xbc,0xba,0x38,0xb7,0x6c,0xaa,0x80,0x28,0xa, 0x3a,0x9, 0xb3,0x1f, +0x46,0xb4,0xff,0x1d,0x6c,0xff,0x80,0x14,0xa, 0x4f,0x9, 0xb4,0x1f,0x50,0xb4,0xff, +0x9, 0x12,0x5e,0x4e,0x19,0xb4,0x1f,0x50,0x80,0x7, 0xb, 0xf0,0x12,0x5e,0x2d,0x38, +0xe7,0xb, 0xa0,0x12,0x5e,0x25,0x38,0xd3,0x6c,0xaa,0x80,0x1a,0x7e,0x70,0x9, 0xac, +0x7a,0x49,0x43,0x28,0xae,0x12,0x5e,0x35,0x59,0x42,0x15,0x76,0x49,0x33,0x28,0xb0, +0x59,0x32,0x15,0x78,0xb, 0xa0,0x7e,0xb3,0x2a,0x2, 0xbc,0xba,0x38,0xde,0x7e,0x34, +0x15,0x4e,0x7a,0x37,0x1f,0x40,0x7e,0x34,0x15,0x76,0x7a,0x37,0x1f,0x42,0x7e,0x34, +0x15,0x9e,0x7a,0x37,0x1f,0x44,0x7e,0x73,0x34,0x4f,0x7a,0x73,0x1f,0x3e,0x7e,0x73, +0x2a,0x2, 0x7a,0x73,0x1f,0x3f,0x7e,0x8, 0x1f,0x3e,0x12,0x4, 0xad,0x6c,0xaa,0x80, +0x59,0x7e,0x70,0xff,0x6c,0xff,0x80,0x19,0x7e,0x50,0x2, 0xac,0x5f,0x49,0x12,0x15, +0x9e,0xa, 0x2a,0xbd,0x21,0x78,0x8, 0xa, 0x3f,0x9, 0x73,0x1f,0x46,0x80,0x7, 0xb, +0xf0,0x12,0x5e,0x2d,0x38,0xe2,0xbe,0x70,0xff,0x68,0x2d,0x12,0x5e,0x8b,0x74,0x1, +0xa, 0x47,0x19,0xb4,0x1f,0x34,0x7e,0x90,0x9, 0xac,0x9a,0x49,0x24,0x28,0xae,0x7e, +0x30,0x2, 0xac,0x37,0x2d,0x1d,0x7d,0xc, 0x79,0x20,0x0, 0x14,0x49,0x44,0x28,0xb0, +0x7e,0x50,0x2, 0xac,0x57,0x12,0x5e,0x45,0xb, 0xa0,0x7e,0x63,0x2a,0x2, 0xbc,0x6a, +0x38,0x9f,0x6c,0xaa,0x80,0x20,0xa, 0x3a,0x9, 0xb3,0x1f,0x34,0xbe,0xb0,0x1, 0x68, +0x13,0x12,0x5e,0x57,0x7f,0x6, 0x2d,0x13,0x79,0x40,0x0, 0x14,0x2d,0x3d,0x7d,0x2c, +0x79,0x41,0x0, 0x28,0xb, 0xa0,0x12,0x5e,0x25,0x38,0xdb,0x7e,0xf3,0x2a,0x2, 0x7a, +0xf3,0x34,0x4f,0x6c,0xaa,0x80,0x66,0xa, 0x3a,0x9, 0xb3,0x1f,0x34,0xb4,0x1, 0x2b, +0x12,0x5e,0x9f,0xb4,0x1, 0x6, 0x74,0x3, 0x39,0xb1,0x0, 0xa, 0xa, 0x3a,0x2d,0x3d, +0x7d,0x2c,0x29,0x31,0x0, 0xa, 0xa5,0xbb,0x3, 0x6, 0xe4,0x7a,0x1b,0xb0,0x80,0x2e, +0xa5,0xbb,0x0, 0x2a,0x74,0x2, 0x7a,0x1b,0xb0,0x80,0x23,0x12,0x5e,0x9f,0xbe,0xb0, +0x2, 0x68,0x2, 0x70,0x14,0x74,0x1, 0x7a,0x1b,0xb0,0x7c,0x2f,0xb, 0xf0,0x7e,0x30, +0x9, 0xac,0x23,0x19,0xa1,0x28,0xb2,0x80,0x5, 0x74,0x3, 0x7a,0x1b,0xb0,0xa, 0x3a, +0x2d,0x3d,0x7d,0x2c,0x7e,0x1b,0xb0,0x39,0xb1,0x0, 0xa, 0xb, 0xa0,0x12,0x5e,0x25, +0x38,0x95,0xda,0xf8,0x22,0x90,0x60,0x99,0xe4,0x93,0xbc,0xba,0x22,0x90,0x60,0x99, +0xe4,0x93,0xbc,0xbf,0x22,0x7e,0x50,0x2, 0xac,0x5a,0x3e,0x24,0x22,0x2d,0x39,0x7d, +0x28,0x7e,0x1b,0xb0,0x22,0x7f,0x6, 0x2d,0x12,0x79,0x40,0x0, 0x28,0x22,0xa, 0x3a, +0x19,0xf3,0x1f,0x46,0x74,0x1, 0x22,0x7e,0x44,0x7f,0xff,0x7e,0x70,0x2, 0xac,0x7a, +0x22,0x6c,0xaa,0x80,0x20,0x74,0x3, 0x12,0xa9,0x76,0x7f,0x10,0x2d,0x34,0x39,0xb1, +0x0, 0xa, 0x12,0x5e,0x57,0x7f,0x70,0x2d,0xf3,0x79,0x47,0x0, 0x14,0x2d,0x31,0x79, +0x41,0x0, 0x28,0xb, 0xa0,0x12,0x5e,0x25,0x38,0xdb,0x22,0x7e,0x50,0x9, 0xac,0x5a, +0x19,0x72,0x28,0xb2,0x22,0x7e,0x50,0x2, 0xac,0x5a,0x7f,0x6, 0x2d,0x12,0x22,0xa, +0x3a,0x2d,0x3d,0x7d,0x2c,0x29,0xb1,0x0, 0xa, 0x22,0xc2,0x3, 0x7e,0xb3,0x16,0x91, +0x60,0x6, 0x7e,0xb3,0x16,0x90,0x70,0x7, 0x12,0x9b,0xdf,0x28,0x2, 0xd2,0x3, 0xa2, +0x3, 0x22,0xca,0xf8,0x7e,0xa3,0x2a,0x2, 0x4c,0xaa,0x78,0x11,0x7e,0xb3,0x2a,0x3, +0xbe,0xb0,0x0, 0x28,0x13,0x74,0x1, 0x7a,0xb3,0x2a,0x7, 0x80,0xb, 0xbe,0xa0,0x0, +0x28,0x6, 0x74,0x1, 0x7a,0xb3,0x2a,0xb, 0x12,0x5f,0xc2,0xca,0x59,0x7e,0x18,0x28, +0xae,0x7e,0x8, 0x29,0x8, 0x12,0x20,0xb9,0x1b,0xfd,0x90,0x61,0x35,0xe4,0x93,0xbe, +0xb0,0x0, 0x28,0x28,0x6c,0xff,0x80,0x1f,0x74,0x9, 0xac,0xbf,0x49,0x35,0x28,0xae, +0x12,0x80,0x16,0x74,0x9, 0xac,0xbf,0x59,0x35,0x29,0x8, 0x49,0x35,0x28,0xb0,0x12, +0x64,0xdb,0x12,0xab,0x78,0xb, 0xf0,0x12,0x5e,0x2d,0x38,0xdc,0xda,0xf8,0x22,0x2, +0x5f,0x32,0xca,0x79,0x6c,0xff,0x7e,0xd7,0x2a,0x5a,0x6c,0xee,0x80,0x35,0x7c,0xbe, +0x12,0x37,0x6f,0xbd,0x3d,0x48,0x2a,0x7c,0xbe,0x12,0x2f,0xb7,0x60,0x23,0x7e,0xc4, +0x0, 0x9, 0xca,0xc9,0x7e,0x70,0x9, 0xac,0x7e,0x2e,0x34,0x27,0x76,0x6d,0x22,0x7e, +0x30,0x9, 0xac,0x3f,0x2e,0x14,0x28,0xae,0x6d,0x0, 0x12,0x20,0xb9,0x1b,0xfd,0xb, +0xf0,0xb, 0xe0,0x12,0x9c,0xf6,0x38,0xc6,0x7a,0x73,0x28,0x93,0x7a,0xf3,0x2a,0x2, +0xda,0x79,0x22,0x12,0x9d,0xda,0x2, 0x5f,0x89,0x7e,0xa3,0x2a,0x3, 0xbe,0xa0,0x0, +0x38,0x2f,0xbe,0xa3,0x2a,0x2, 0x50,0x19,0x7e,0xb3,0x2a,0xc, 0xbe,0xb3,0x35,0x40, +0x28,0x14,0x7e,0xb3,0x35,0x40,0x4, 0x7a,0xb3,0x35,0x40,0x7a,0xa3,0x2a,0x2, 0x80, +0x5, 0xe4,0x7a,0xb3,0x35,0x40,0x7e,0xb3,0x2a,0x2, 0x70,0x5, 0xe4,0x7a,0xb3,0x2a, +0xb, 0x22,0x90,0x60,0x99,0xe4,0x93,0x7c,0xab,0x74,0x9, 0xa4,0x22,0x12,0x68,0x38, +0x2, 0x5f,0xd3,0x7e,0xb3,0x2a,0x9, 0x70,0x24,0x7e,0xa3,0x34,0xa2,0x4c,0xaa,0x78, +0x3, 0xe4,0x80,0x7, 0xbe,0xa0,0x2, 0x78,0x6, 0x74,0x3, 0x7a,0xb3,0x34,0xad,0x7e, +0x73,0x34,0xae,0xbe,0x73,0x34,0xad,0x28,0x4, 0x7a,0x73,0x34,0xad,0x22,0xff,0xff, +0x70,0x8f,0x0, 0xff,0x51,0xae,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x34,0x37,0x31,0x1, 0xc3,0x1, 0x34,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x10,0xef,0x30,0x30,0x31,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0xd, 0x18,0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0xd, 0xc, 0xb, 0xa, 0x9, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x11,0x12,0x13,0x14,0x18,0x17,0xc, 0xd, 0xe, 0xf, 0x15, +0x16,0x10,0xb, 0xa, 0x9, 0x8, 0x7, 0x6, 0x5, 0x4, 0x3, 0x2, 0x1, 0x0, 0x0, 0x0, +0x0, 0x5, 0x0, 0x4, 0xff,0x23,0x1c,0x2, 0xdf,0xa, 0x1e,0xa, 0x64,0x1e,0x10,0x0, +0x4, 0x0, 0x64,0xd, 0xac,0x0, 0xc8,0x3, 0x1, 0x0, 0x0, 0x17,0x2, 0x6, 0xa, 0x0, +0x0, 0x0, 0x46,0x0, 0xe6,0x1, 0x18,0x1, 0xb8,0x1, 0xf4,0x2, 0x94,0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c,0x1, 0x68,0x2, 0x44,0x0, 0x0, 0x0, 0x0, 0x7, +0xd0,0x0, 0x14,0x1, 0x19,0x3d,0x1, 0xf4,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e, +0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e, +0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x64,0x64,0x64,0x64,0x64, +0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64, +0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x0, 0x4, 0x5d,0x20,0x1, 0x20,0x2, 0x0, 0x0, +0x0, 0x0, 0x1, 0xf4,0x69,0x40,0xd, 0x18,0x25,0x17,0x25,0x6, 0x80,0x17,0x25,0x6, +0x80,0x8, 0x10,0x4, 0x20,0x1, 0x0, 0x2, 0xd0,0x32,0x32,0x1, 0xd8,0x1, 0xec,0x0, +0xe1,0x0, 0xe1,0x5, 0x0, 0x37,0x37,0x1, 0xae,0x1, 0xba,0x0, 0xe0,0x0, 0xe0,0x0, +0xb4,0x0, 0xa0,0x0, 0x96,0x1, 0x18,0x1, 0x18,0x1, 0x18,0xa, 0x0, 0x1, 0x68,0x1, +0x5, 0xb, 0x1e,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22,0x15,0x0, 0x1, 0x54,0x1, 0x0, 0x10, +0x1, 0x51,0x1, 0x14,0x0, 0x0, 0x1, 0x1, 0x10,0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x55,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x96,0x2, 0x26,0x0, 0x50,0x0, 0x27, +0x0, 0x4, 0x0, 0x4, 0x1, 0x4, 0x1, 0x90,0x0, 0xc8,0x0, 0x50,0x1, 0xf4,0x0, 0x96, +0x1, 0x2c,0x1, 0x2c,0x4, 0x3d,0x2, 0x5d,0x69,0x20,0x26,0x3, 0x52,0x59,0x20,0x34, +0x2, 0x5a,0x64,0x20,0x46,0x2, 0x47,0x49,0x30,0x3d,0x2, 0x5d,0x69,0x20,0x3d,0x2, +0x5d,0x69,0x20,0x3d,0x2, 0x5d,0x69,0x20,0x3d,0x2, 0x5d,0x69,0x20,0x4, 0x5, 0x25, +0x26,0x27,0x28,0x29,0x4, 0x0, 0xd2,0x2, 0x30,0x64,0x0, 0xc8,0x1, 0x5e,0x0, 0x64, +0x0, 0x64,0x0, 0x96,0x0, 0x64,0xb, 0xb8,0x8, 0x5, 0x6, 0x80,0x1, 0x90,0x1, 0x2c, +0x1, 0xc2,0x3, 0x20,0xf, 0xa0,0x1, 0x3, 0x20,0x4, 0xb0,0x3, 0x20,0x1, 0x2, 0x2, +0x4, 0x4, 0x6, 0x40,0x1, 0x2c,0x1, 0x18,0x1, 0x90,0x1, 0x90,0x1, 0x90,0x1, 0x90, +0x1, 0x2c,0x1, 0x90,0x1, 0x7c,0x1, 0x7c,0x0, 0x50,0x0, 0x46,0x0, 0x78,0x0, 0x78, +0x0, 0x78,0x0, 0x78,0x0, 0x78,0x14,0x8, 0x0, 0x50,0x2, 0x80,0x0, 0x50,0x4, 0xb0, +0x0, 0x32,0x1, 0xf4,0x1, 0xf4,0x3, 0x20,0x0, 0x14,0x0, 0x37,0x0, 0x1e,0x0, 0x80, +0x0, 0xb4,0x0, 0xa0,0x0, 0x3c,0x3, 0xe8,0x1, 0x40,0x0, 0x5a,0x0, 0x3c,0x3, 0xe8, +0x0, 0x20,0x2, 0xb0,0x0, 0x0, 0x5, 0x0, 0x0, 0x64,0x0, 0xa0,0x0, 0xa0,0x13,0x88, +0x1, 0x2c,0x0, 0xa0,0x0, 0xa0,0x10,0x0, 0xc, 0x0, 0xa, 0xb, 0x5, 0x5, 0x7, 0x8, +0x6, 0x6, 0xc, 0x64,0xc8,0x7e,0x8, 0x37,0xf3,0x12,0x62,0xdf,0x7e,0x8, 0x37,0xfb, +0x12,0x62,0xdf,0x12,0x62,0xf4,0x12,0x62,0xfb,0x2, 0x62,0xbc,0x7e,0x37,0x37,0xf3, +0xbe,0x34,0x0, 0x0, 0x28,0x18,0x7e,0x73,0x39,0x7, 0xbe,0x70,0x5, 0x50,0xf, 0x7e, +0xb3,0x37,0x31,0x70,0x9, 0x12,0x63,0x2, 0x74,0x1, 0x7a,0xb3,0x37,0x6, 0x22,0xb, +0xa, 0x30,0xe5,0x4e,0xa, 0x2b,0xbd,0x32,0x28,0x4, 0x9d,0x32,0x80,0x2, 0x6d,0x33, +0x1b,0xa, 0x30,0x22,0x7e,0x8, 0x2b,0xb7,0x2, 0x62,0xdf,0x7e,0x8, 0x38,0xe6,0x2, +0x62,0xdf,0x6d,0x33,0x7a,0x37,0x38,0x83,0x22,0xca,0xf8,0x7e,0xa3,0x2a,0x2, 0x7e, +0xb3,0x2a,0x3, 0xbe,0xa0,0x1, 0x38,0x21,0xbe,0xb0,0x1, 0x38,0x1c,0x7e,0x47,0x28, +0x86,0xbe,0x44,0x0, 0x1e,0x28,0x2, 0x80,0x10,0x7e,0xf3,0x2f,0x80,0x4c,0xff,0x68, +0x17,0x7e,0x47,0x2b,0xb7,0x4d,0x44,0x78,0xf, 0x12,0x63,0x2, 0x74,0x1, 0x7a,0xb3, +0x38,0x85,0x7a,0xb3,0x37,0x6, 0x80,0x35,0x4c,0xaa,0x78,0x36,0xb4,0x1, 0x33,0x7e, +0x37,0x2b,0xb7,0x7a,0x37,0x2f,0x82,0x7e,0xb3,0x2f,0x80,0xb4,0x3, 0x1f,0x7e,0x37, +0x2b,0xb7,0xbe,0x34,0x0, 0x0, 0x28,0x15,0x74,0x4, 0x7a,0xb3,0x2f,0x80,0x7e,0x37, +0x2f,0x98,0x7e,0x27,0x2f,0x9a,0x12,0x64,0x1a,0x81,0x13,0x80,0x0, 0x12,0xbd,0xbd, +0x81,0x13,0x7e,0xc7,0x29,0x8, 0x7e,0xd7,0x29,0xa, 0x4c,0xff,0x78,0x19,0x70,0x57, +0xbe,0xa0,0x1, 0x78,0x52,0x7d,0x3c,0x7d,0x2d,0x12,0xbd,0x58,0x12,0x64,0x16,0x74, +0x1, 0x7a,0xb3,0x2f,0x80,0x80,0x40,0xbe,0xf0,0x1, 0x78,0x2e,0x7e,0x27,0x2f,0x88, +0x9e,0x27,0x2f,0x90,0x7e,0x14,0x62,0x8a,0x12,0x64,0xd3,0xbd,0x23,0x38,0x13,0x7e, +0x27,0x2f,0x96,0x9e,0x27,0x2f,0x8e,0x7e,0x14,0x62,0x8c,0x12,0x64,0xd3,0xbd,0x23, +0x28,0x15,0x74,0x3, 0x7a,0xb3,0x2f,0x80,0x80,0x5, 0xbe,0xf0,0x3, 0x78,0x8, 0x7a, +0xc7,0x2f,0x98,0x7a,0xd7,0x2f,0x9a,0x7e,0xb3,0x2f,0x80,0x60,0x26,0x7d,0x3c,0x7d, +0x2d,0x7e,0x17,0x2b,0xbb,0x7e,0x7, 0x2b,0xbd,0x12,0x66,0xce,0xa, 0x2b,0x7e,0x73, +0x2f,0x7f,0xa, 0x37,0xbd,0x32,0x58,0xb, 0x12,0x64,0x16,0x7a,0xc7,0x2b,0xbb,0x7a, +0xd7,0x2b,0xbd,0xda,0xf8,0x22,0x7d,0x3c,0x7d,0x2d,0x7d,0x42,0x7d,0x13,0x7d,0x24, +0x12,0x67,0xca,0x7d,0x31,0x12,0x85,0xfd,0x2, 0x64,0x2b,0x7e,0x3, 0x2f,0xa8,0xbe, +0x0, 0xf0,0x50,0x2, 0x81,0xc4,0x81,0xb9,0x6c,0x99,0x7e,0xb3,0x2f,0x7f,0xbe,0xb0, +0x20,0x50,0x5, 0x4, 0x7a,0xb3,0x2f,0x7f,0x7e,0x1f,0x2b,0xbf,0x7a,0x1f,0x1f,0x34, +0x7e,0x80,0x1, 0x80,0x49,0x74,0x4, 0xac,0xb8,0x49,0x35,0x2b,0xbf,0x49,0x25,0x2b, +0xc1,0x7e,0x17,0x1f,0x34,0x7e,0x7, 0x1f,0x36,0x12,0x66,0xce,0x7c,0x1b,0x7e,0x3, +0x2f,0x7f,0xbc,0x1, 0x38,0x26,0xb, 0x90,0x7e,0x70,0x4, 0xac,0x78,0x2e,0x34,0x2b, +0xbf,0x7e,0x14,0x1f,0x34,0x74,0x4, 0x12,0x1f,0x8c,0x7e,0x34,0x1f,0x34,0x7e,0x30, +0x4, 0xac,0x39,0x2e,0x14,0x2b,0xbf,0x74,0x4, 0x12,0x1f,0x8c,0xb, 0x80,0x7e,0x3, +0x2f,0xa8,0xbc,0x8, 0x38,0xaf,0xa, 0x59,0xb, 0x54,0x7c,0xb, 0x7a,0x3, 0x2f,0xa8, +0x7e,0x3, 0x2f,0x7f,0xbe,0x0, 0x20,0x50,0xb, 0x7e,0x3, 0x2f,0xa8,0xbe,0x0, 0xec, +0x40,0x2, 0x81,0x38,0x22,0x7d,0x34,0x9e,0x34,0x0, 0x40,0x7d,0x2e,0x9d,0x23,0x7e, +0x14,0x61,0x49,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0x30,0x22,0x7d,0xe3,0x9f,0x11,0x7e, +0x14,0x61,0x43,0x12,0x83,0x62,0x90,0x61,0x35,0xe4,0x93,0x70,0x3, 0x7d,0x3e,0x22, +0x90,0x61,0x36,0xe4,0x93,0xb4,0x1, 0x6, 0x7e,0x83,0x2a,0x6f,0x80,0x4, 0x7e,0x83, +0x2a,0x70,0x12,0x87,0xd4,0xbe,0xe4,0x0, 0x3f,0x38,0x1e,0x7e,0x24,0x0, 0x3f,0x9d, +0x2e,0x7e,0x14,0x61,0x47,0x12,0x64,0xd3,0x12,0x66,0x10,0x90,0x61,0x45,0x12,0x66, +0x7, 0x48,0x2, 0x7f,0x10,0x9f,0x1, 0x7f,0x10,0x12,0xc1,0x17,0xbe,0xa0,0x0, 0x28, +0x32,0x7d,0x14,0x9e,0x14,0x0, 0x3f,0xbd,0x1e,0x38,0x13,0x12,0x66,0xb8,0x40,0xe, +0x12,0x64,0xc5,0x12,0x65,0xfa,0x48,0x32,0x7f,0x10,0x1b,0x1c,0x80,0x2c,0x12,0x66, +0xb8,0x50,0x31,0x7d,0x34,0x9e,0x34,0x0, 0x20,0x12,0x64,0xcb,0x12,0x66,0x10,0x7d, +0x1f,0x80,0x1d,0x4c,0xaa,0x78,0x1d,0x12,0x66,0xb1,0xbd,0x5e,0x38,0x16,0x12,0x64, +0xc5,0x12,0x65,0xfa,0x48,0x4, 0x7f,0x10,0x1b,0x1c,0xa, 0xb, 0x7d,0x1f,0x9d,0x10, +0x6d,0x0, 0x2f,0x10,0xbe,0xe4,0x0, 0x3f,0x28,0x6f,0x12,0x66,0xb1,0xbd,0x5e,0x28, +0x68,0x7d,0xd4,0xb, 0xd4,0x1e,0xd4,0x7d,0x5d,0x1b,0x54,0xbd,0x5e,0x40,0xc, 0x7d, +0x35,0x9d,0x3e,0x6d,0x22,0x7e,0x14,0x61,0x4b,0x80,0xa, 0x7d,0x3e,0x9d,0x3d,0x6d, +0x22,0x7e,0x14,0x61,0x4d,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0x10,0x12,0x1e,0xfc,0x12, +0x66,0x14,0xbd,0x5e,0x7d,0x1f,0x40,0xc, 0x1e,0x14,0x1b,0x14,0x6d,0x0, 0x9f,0x1, +0x7f,0x10,0x80,0x6, 0x1e,0x14,0x6d,0x0, 0x2f,0x10,0x90,0x61,0x45,0x12,0x66,0x7, +0x58,0x4, 0x7f,0x10,0x80,0x13,0x90,0x61,0x46,0xe4,0x93,0xa, 0xb, 0x7d,0x1f,0x9d, +0x10,0x6d,0x0, 0xbf,0x10,0x8, 0x2, 0x7f,0x10,0x22,0xad,0x32,0x6d,0x22,0x7c,0x76, +0x7c,0x65,0x1a,0x24,0x90,0x61,0x46,0xe4,0x93,0xa, 0x1b,0x6d,0x0, 0xbf,0x10,0x22, +0xad,0x32,0x6d,0x22,0x7c,0x76,0x7c,0x65,0x1a,0x24,0x22,0x7e,0x73,0x36,0x69,0x7a, +0x73,0x36,0xdf,0x7e,0x27,0x38,0xd6,0x7e,0x14,0x61,0xc8,0x12,0x64,0xd3,0x1e,0x34, +0xbd,0x32,0x50,0x6, 0x74,0x1, 0x7a,0xb3,0x36,0x69,0x7e,0x14,0x61,0xc8,0x12,0x64, +0xd3,0xbd,0x32,0x50,0x8, 0xe4,0x7a,0xb3,0x36,0x67,0x12,0x67,0x62,0x7e,0x37,0x36, +0x6f,0xbd,0x32,0x50,0x4, 0x7a,0x27,0x36,0x6f,0x12,0xc0,0xef,0x38,0xa, 0x12,0x8f, +0xf3,0x38,0x5, 0x12,0x8f,0xeb,0x28,0x3d,0x12,0x67,0x69,0x7e,0x14,0x61,0xc8,0x12, +0x64,0xd3,0x1e,0x34,0x1e,0x34,0xbd,0x32,0x28,0x21,0x7e,0xb3,0x36,0x67,0x4, 0x7a, +0xb3,0x36,0x67,0x7e,0x73,0x36,0x67,0xbe,0x70,0x32,0x28,0x14,0x74,0x32,0x7a,0xb3, +0x36,0x67,0x12,0xc0,0x6b,0x7a,0xb3,0x36,0xdc,0x80,0x5, 0xe4,0x7a,0xb3,0x36,0x67, +0x7d,0x32,0x2, 0xad,0x89,0x2, 0x66,0xa8,0x12,0x67,0xc0,0xe4,0x7a,0xb3,0x36,0x75, +0x22,0x7d,0x54,0x9e,0x54,0x0, 0x3f,0x22,0x7d,0x4, 0x9e,0x4, 0x0, 0x1f,0x7e,0xd4, +0x60,0xd1,0x7e,0xc4,0x0, 0xff,0xb, 0x6a,0x10,0x2d,0x10,0xbd,0x1e,0x22,0x7d,0x51, +0x7d,0x12,0x9d,0x35,0x12,0x21,0x0, 0x7c,0xa7,0x12,0x67,0xeb,0x7c,0xb7,0xbc,0xba, +0x50,0x3, 0x7c,0xba,0x22,0x22,0x7d,0x13,0x7e,0x54,0x62,0x58,0x12,0x67,0x15,0x50, +0x21,0x7e,0x54,0x62,0x5a,0x12,0x67,0x15,0x28,0x18,0x7e,0x14,0x62,0x5c,0x12,0x64, +0xd3,0xbd,0x32,0x50,0xd, 0x7e,0x14,0x62,0x5e,0x12,0x64,0xd3,0xbd,0x32,0x28,0x2, +0xe4,0x22,0x74,0x1, 0x22,0x7e,0x44,0x0, 0xff,0xb, 0x2a,0x30,0xbd,0x31,0x22,0x12, +0x66,0x1b,0x2, 0x67,0x25,0x7e,0xb3,0x36,0x69,0x60,0xf, 0x74,0x1, 0x7a,0xb3,0x36, +0x71,0x7e,0xb3,0x36,0xdf,0x70,0x3, 0x12,0xaf,0xc, 0x7e,0xb3,0x36,0x71,0xb4,0x1, +0xc, 0x74,0x3, 0x12,0x67,0x59,0x12,0x23,0x9e,0x3e,0x34,0x80,0x7, 0xe4,0x12,0x67, +0x59,0x12,0x23,0x9e,0x7a,0x37,0x2a,0x62,0x22,0x7a,0xb3,0x34,0xae,0x7e,0x34,0x61, +0x5b,0x22,0x74,0x2, 0x7a,0xb3,0x36,0x69,0x22,0x7e,0xb3,0x36,0x75,0xb4,0x1, 0x3, +0x2, 0x67,0x62,0x7e,0xb3,0x36,0xdb,0x4, 0x7a,0xb3,0x36,0xdb,0x7e,0xb3,0x36,0x69, +0xb4,0x2, 0x18,0x7e,0xb3,0x36,0xda,0x4, 0x7a,0xb3,0x36,0xda,0xb4,0x1, 0x6, 0x74, +0x1, 0x7a,0xb3,0x36,0xdb,0x74,0x1, 0x7a,0xb3,0x36,0x69,0x7e,0x73,0x36,0xda,0xbe, +0x70,0x3, 0x40,0xf, 0x74,0x1, 0x7a,0xb3,0x36,0x75,0x12,0x67,0x62,0x12,0xaf,0xc, +0x12,0x67,0xc0,0x7e,0x73,0x36,0xdb,0xbe,0x70,0xa, 0x28,0x3, 0x2, 0x67,0xc0,0x22, +0xe4,0x7a,0xb3,0x36,0xdb,0x7a,0xb3,0x36,0xda,0x22,0x7e,0xa3,0x2f,0xa8,0xbe,0xa0, +0xf0,0x50,0x17,0x74,0x4, 0xa4,0x59,0x35,0x2b,0xbf,0x12,0x67,0xf2,0x59,0x25,0x2b, +0xc1,0x7e,0xb3,0x2f,0xa8,0x4, 0x7a,0xb3,0x2f,0xa8,0x22,0x7d,0x31,0x9d,0x30,0x2, +0x21,0x0, 0x7e,0xa3,0x2f,0xa8,0x74,0x4, 0xa4,0x22,0x7e,0x73,0x28,0x93,0x7a,0x73, +0x28,0x94,0x7e,0x73,0x2a,0x2, 0x7a,0x73,0x2a,0x3, 0xe4,0x7a,0xb3,0x2a,0x6, 0x22, +0x12,0xc0,0x5, 0x12,0x63,0x2, 0x7a,0x37,0x39,0x4, 0x12,0x69,0x87,0x12,0x28,0x48, +0x2, 0x68,0x23,0x12,0x69,0x84,0x50,0x4, 0x74,0x19,0x80,0x2, 0x74,0x3, 0x7a,0xb3, +0x34,0x88,0xe4,0x7a,0xb3,0x34,0x89,0x22,0xca,0x79,0x7e,0x13,0x2a,0x2, 0x7e,0x78, +0x29,0xbc,0x12,0x69,0x84,0xe4,0x33,0x7c,0xb, 0x4c,0x0, 0x68,0x8, 0x7e,0x30,0x19, +0x7e,0xa0,0x5, 0x80,0x6, 0x7e,0x30,0x3, 0x7e,0xa0,0x1, 0xa5,0xb9,0x0, 0x5, 0x12, +0x68,0x23,0x21,0x6d,0xbc,0x20,0x50,0x3, 0x12,0x68,0x23,0x6c,0x0, 0x21,0x62,0x7e, +0x70,0x9, 0xac,0x70,0x9, 0x93,0x29,0xc, 0xbe,0x90,0xff,0x78,0x2, 0x21,0x60,0xa, +0x29,0x7f,0x67,0x2d,0xd2,0x7e,0x6b,0x80,0xbe,0x80,0x2, 0x68,0x2, 0x21,0x43,0x12, +0x69,0x7a,0x49,0x33,0x29,0x8, 0x9d,0x32,0x12,0x21,0x0, 0x7d,0xd3,0x7e,0x70,0x4, +0xac,0x79,0x49,0x23,0x35,0x43,0x12,0x69,0x70,0x9d,0x32,0x12,0x21,0x0, 0x7d,0xc3, +0x7e,0x73,0x34,0x88,0xa, 0x27,0xbd,0x2d,0x28,0x53,0xbd,0x2c,0x28,0x4f,0x12,0x69, +0x7a,0x7e,0xf0,0x9, 0xac,0xf0,0x59,0x27,0x29,0x8, 0x7e,0x50,0x4, 0xac,0x59,0x49, +0x22,0x35,0x43,0x7e,0xf0,0x9, 0xac,0xf0,0x59,0x27,0x29,0xa, 0xbe,0x10,0x0, 0x28, +0x2, 0x1b,0x10,0xa5,0xb9,0x0, 0x79,0x7e,0xb3,0x34,0x89,0x4, 0x7a,0xb3,0x34,0x89, +0x7e,0x63,0x34,0x89,0xbe,0x60,0x32,0x40,0x67,0xe4,0x7a,0xb3,0x34,0x89,0x7e,0xb3, +0x34,0x88,0xbc,0xb3,0x50,0x5a,0x4, 0x7a,0xb3,0x34,0x88,0x80,0x53,0x7e,0x50,0x9, +0xac,0x50,0x49,0xb2,0x29,0x8, 0x7e,0xf0,0x4, 0xac,0xf9,0x59,0xb7,0x35,0x41,0x49, +0x22,0x29,0xa, 0x59,0x27,0x35,0x43,0xbc,0x73,0x28,0x6, 0x7a,0xa3,0x34,0x88,0x80, +0xb, 0xbc,0x7a,0x28,0x7, 0x7c,0xb7,0x14,0x7a,0xb3,0x34,0x88,0xe4,0x7a,0xb3,0x34, +0x89,0x80,0x1d,0x4c,0x88,0x78,0x19,0x7e,0x70,0x9, 0xac,0x70,0x49,0x33,0x29,0x8, +0x7e,0x50,0x4, 0xac,0x59,0x59,0x32,0x35,0x41,0x12,0x69,0x70,0x59,0x32,0x35,0x43, +0xb, 0x0, 0x90,0x60,0x99,0xe4,0x93,0xbc,0xb0,0x28,0x2, 0x1, 0x6f,0xda,0x79,0x22, +0x7e,0x70,0x9, 0xac,0x70,0x49,0x33,0x29,0xa, 0x22,0x7e,0x50,0x4, 0xac,0x59,0x49, +0x22,0x35,0x41,0x22,0xa2,0x8, 0x22,0x7e,0x34,0xd, 0xac,0x12,0x26,0x5b,0x12,0x7a, +0x2d,0x12,0x69,0xab,0x2, 0x69,0x97,0x30,0xf, 0x10,0x12,0x6e,0x8f,0x50,0x3, 0x12, +0x6f,0x6e,0x12,0x6a,0x50,0x12,0x69,0xd1,0xc2,0xf, 0x22,0x7e,0xb3,0x2b,0x1e,0x70, +0x1f,0x12,0x26,0x57,0x12,0x2f,0xf4,0x50,0xfb,0x12,0x6a,0x50,0x12,0x88,0x17,0x20, +0xf, 0x3, 0x12,0x69,0xd1,0x74,0x2, 0x7a,0xb3,0x2b,0x1e,0xe4,0x7a,0xb3,0x16,0x91, +0x22,0xca,0x3b,0x7e,0xb3,0x2b,0xf, 0x7a,0xb3,0x1f,0x33,0x7e,0xf3,0x2b,0x62,0x12, +0x87,0x56,0x7c,0xdb,0xbe,0xd0,0xff,0x68,0x64,0x6c,0xcc,0x12,0xc0,0xa2,0xf5,0x2a, +0x7e,0x73,0x2b,0xf, 0xbe,0x71,0x2a,0x68,0x36,0x7e,0x70,0x4, 0xac,0x7d,0xa, 0x2c, +0x12,0x91,0x67,0x7c,0xeb,0xbe,0xe0,0x2, 0x38,0x43,0xa, 0xe, 0x7e,0x14,0x2, 0xe0, +0xad,0x10,0x2e,0x14,0x16,0x93,0x6d,0x0, 0x7a,0xd, 0x2b,0x7e,0x70,0x1d,0xac,0x7e, +0x2e,0x34,0x37,0x44,0x6d,0x22,0x7a,0x1f,0x37,0x40,0x7c,0xbc,0x12,0x6c,0x20,0xb, +0xc0,0xbe,0xc0,0x4, 0x40,0xb5,0x7e,0x73,0x2b,0x62,0xbc,0x7f,0x68,0x6, 0x7a,0xf3, +0x2b,0x62,0xd2,0xc, 0xd2,0x3, 0x7e,0xb3,0x1f,0x33,0x12,0x6d,0x13,0xda,0x3b,0x22, +0x7e,0xf, 0x13,0x8a,0x7e,0x18,0x8, 0xa, 0xca,0x3b,0x7a,0x1d,0x2a,0x7f,0x30,0x12, +0xbf,0xfb,0x7a,0x55,0x32,0x7e,0xb3,0x2b,0x1d,0xf5,0x2f,0xe4,0x7a,0xb3,0x2b,0x1d, +0x7f,0x3, 0x7e,0x1d,0x2a,0x12,0x79,0x7a,0x12,0xc0,0x75,0x12,0xc0,0x22,0x75,0x2e, +0x0, 0x12,0x4e,0x6e,0x30,0xb, 0xfd,0x74,0x1, 0x12,0xc0,0xff,0x7e,0x14,0x40,0x0, +0x7d,0x21,0x7d,0x7, 0x12,0x6a,0xd4,0x12,0xb3,0x5f,0x6d,0x33,0x80,0x19,0x7e,0x35, +0x30,0x3e,0x34,0x7f,0x3, 0x2d,0x13,0xb, 0xa, 0x20,0x7e,0xd, 0x2a,0x2d,0x13,0x12, +0x7b,0x20,0x7e,0x35,0x30,0xb, 0x34,0x7a,0x35,0x30,0x7e,0x35,0x32,0xbe,0x35,0x30, +0x38,0xdc,0x5, 0x2e,0xe5,0x2e,0xbe,0xb0,0x1, 0x40,0xb6,0xe5,0x2f,0x7a,0xb3,0x2b, +0x1d,0xda,0x3b,0x22,0x7e,0xb3,0x2a,0x6d,0xca,0x3b,0x7c,0xdb,0x7a,0x5, 0x39,0x7d, +0x71,0x7a,0x25,0x37,0x7a,0x35,0x35,0x12,0x6e,0x8f,0x50,0x7c,0x6c,0xcc,0x80,0x11, +0x7e,0x73,0x2a,0x6e,0x12,0x6b,0xff,0x12,0x6b,0xe5,0x7e,0x34,0x34,0x0, 0x12,0x6c, +0x8, 0x12,0x6d,0x34,0x38,0xea,0x6c,0xcc,0x80,0x58,0x7e,0xa3,0x2a,0x6e,0x7c,0x7a, +0x12,0x6b,0xff,0x75,0x3b,0x0, 0x80,0x27,0x7e,0xb3,0x37,0xb1,0xbe,0xb1,0x3b,0x7e, +0x70,0x4, 0x28,0x8, 0xac,0x7c,0x49,0x43,0x3, 0x60,0x80,0x6, 0xac,0x7c,0x49,0x43, +0x3, 0x62,0x7e,0x71,0x3b,0x74,0x2, 0xac,0x7b,0x59,0x43,0x34,0x50,0x5, 0x3b,0x7e, +0xb3,0x2a,0x70,0xbe,0xb1,0x3b,0x38,0xd0,0x12,0xc0,0x90,0x68,0xb, 0x7e,0x34,0x10, +0x0, 0x74,0x2, 0xa4,0x59,0x35,0x34,0x4e,0x12,0x6b,0xe5,0x7e,0x34,0x34,0x50,0x12, +0x6c,0x8, 0xbc,0xdc,0x38,0xa4,0x80,0x2c,0x7a,0xd3,0x25,0xb6,0x7e,0x73,0x2a,0x70, +0x7a,0x73,0x25,0xb7,0xe4,0x7a,0xb3,0x25,0xb9,0x74,0x6, 0x7a,0xb3,0x25,0xb8,0x7a, +0x77,0x25,0xba,0x7a,0x77,0x25,0xbe,0x7e,0x8, 0x25,0xb6,0x7e,0x73,0x2b,0x1f,0xa, +0x37,0x12,0xe, 0x37,0x7d,0x37,0x12,0x7f,0x78,0x7e,0x35,0x39,0x7a,0x37,0x25,0xbe, +0xe4,0x7a,0xb3,0x25,0xb8,0x12,0x6b,0xf6,0x7a,0xd3,0x25,0xb6,0x7e,0xb3,0x2b,0x1d, +0x70,0xf, 0xe4,0x7a,0xb3,0x25,0xb9,0x7a,0x77,0x25,0xba,0x7e,0x34,0x0, 0x20,0x80, +0x16,0x74,0x1, 0x7a,0xb3,0x25,0xb9,0x7e,0x35,0x35,0x7a,0x37,0x25,0xba,0x7e,0x35, +0x37,0x7a,0x37,0x25,0xbc,0x6d,0x33,0x7a,0x37,0x25,0xc0,0x7e,0x8, 0x25,0xb6,0x12, +0xd, 0x7, 0xda,0x3b,0x22,0x74,0xc, 0x7a,0xb3,0x25,0xb8,0x74,0x1, 0x7a,0xb3,0x25, +0xb6,0xe4,0x7a,0xb3,0x25,0xb9,0x7e,0x73,0x2a,0x6e,0x7a,0x73,0x25,0xb7,0x22,0xac, +0x7c,0x3e,0x34,0x7d,0xf7,0x2d,0xf3,0x22,0x7a,0x37,0x25,0xba,0x7d,0x3f,0x7a,0x37, +0x25,0xbc,0x7a,0x37,0x25,0xbe,0x7e,0x8, 0x25,0xb6,0x12,0x7, 0x9b,0xb, 0xc0,0x22, +0xca,0x3b,0x7a,0xd, 0x2f,0x7c,0xcb,0x7e,0xb3,0x2b,0x1d,0xf5,0x33,0x7e,0xb3,0x2b, +0xf, 0xf5,0x34,0x7e,0xd3,0x2b,0x14,0x7e,0xe3,0x2b,0x1f,0x7e,0xf3,0x2b,0x20,0x7e, +0x34,0x0, 0x38,0xca,0x39,0x7e,0x18,0x34,0x0, 0x7e,0x8, 0x24,0xf2,0x12,0x20,0xb9, +0x1b,0xfd,0x7e,0x34,0x0, 0x8c,0xca,0x39,0x7e,0x18,0x3, 0x60,0x7e,0x8, 0x25,0x2a, +0x12,0x20,0xb9,0x1b,0xfd,0x7c,0xbc,0x12,0xb3,0x2a,0x74,0x1, 0x7a,0xb3,0x2b,0x1d, +0x74,0x5, 0xac,0xbc,0x12,0xc0,0x19,0x74,0x5, 0xac,0xbc,0x12,0x6f,0xff,0x74,0x5, +0xac,0xbc,0x12,0xc0,0x10,0x74,0x5, 0xac,0xbc,0x9, 0x75,0x26,0x37,0xbe,0x73,0x2b, +0x62,0x68,0x6, 0x7a,0x73,0x2b,0x62,0xd2,0xc, 0xc2,0x3, 0x12,0xc0,0xa2,0x12,0x6d, +0x13,0x12,0x4e,0x67,0x30,0xb, 0xfd,0x74,0x1, 0x12,0x0, 0xe, 0x7e,0x14,0x40,0x0, +0x7d,0x31,0x7e,0x2f,0x13,0x86,0x7d,0x25,0x7e,0x4, 0xd, 0xc8,0x12,0x6a,0xd4,0x12, +0xbf,0xfb,0x7a,0x55,0x35,0x7e,0xd, 0x2f,0x7e,0x18,0xd, 0xc8,0x12,0xa8,0xef,0x12, +0xa9,0xa6,0xe5,0x33,0x7a,0xb3,0x2b,0x1d,0xe5,0x34,0x7a,0xb3,0x2b,0xf, 0x7a,0xd3, +0x2b,0x14,0x7a,0xe3,0x2b,0x1f,0x7a,0xf3,0x2b,0x20,0x7e,0x34,0x0, 0x38,0xca,0x39, +0x7e,0x18,0x24,0xf2,0x7e,0x8, 0x34,0x0, 0x12,0x20,0xb9,0x1b,0xfd,0x7e,0x34,0x0, +0x8c,0xca,0x39,0x7e,0x18,0x25,0x2a,0x7e,0x8, 0x3, 0x60,0x12,0x20,0xb9,0x1b,0xfd, +0xda,0x3b,0x22,0x7a,0xb3,0x2b,0xf, 0x12,0x6e,0x29,0x30,0xc, 0xa, 0x12,0xae,0xfa, +0x30,0x3, 0x4, 0xe4,0x12,0xa, 0x66,0x30,0x3, 0x9, 0x12,0xae,0xaf,0x12,0x8d,0xef, +0x2, 0x8c,0x90,0x22,0x7e,0x73,0x2a,0x6f,0xbc,0x7c,0x22,0xca,0x3b,0x7f,0x61,0x7f, +0x50,0x7e,0x14,0x22,0xe2,0x7e,0x4, 0x0, 0xff,0x69,0x30,0x0, 0x2, 0xb, 0xa, 0x20, +0x7a,0x1d,0x2c,0x7e,0x73,0x2a,0x6d,0xa, 0x37,0x3e,0x34,0xca,0x39,0x7f,0x16,0x7f, +0x5, 0x12,0x20,0xb9,0x1b,0xfd,0x6c,0xdd,0x12,0xa7,0x10,0x7a,0xb3,0x1f,0x34,0x6c, +0xcc,0x80,0x4f,0x12,0x6e,0x19,0x40,0x48,0x12,0x6e,0xf, 0x50,0x43,0x74,0x2, 0xac, +0xbc,0x7f,0x16,0x2d,0x35,0xb, 0x1a,0x10,0x7d,0x3f,0x12,0x21,0x0, 0x7d,0x3, 0x7d, +0x31,0x12,0x21,0x0, 0xbd,0x30,0x58,0x2, 0x7d,0xf1,0xbe,0x15,0x2a,0x8, 0x5, 0x7e, +0x15,0x2a,0x80,0xb, 0x6d,0x0, 0x9e,0x5, 0x2a,0xbd,0x1, 0x8, 0x2, 0x7d,0x10,0x7d, +0x31,0x1a,0x26,0x1a,0x24,0x2f,0x41,0x7e,0xb3,0x1f,0x34,0x4, 0x7a,0xb3,0x1f,0x34, +0xb, 0xc0,0x12,0x6d,0x34,0x38,0xac,0x7e,0x73,0x1f,0x34,0x4c,0x77,0x68,0x34,0x12, +0xa7,0x2d,0x8, 0x2, 0x7d,0x7f,0xbe,0x75,0x2a,0x8, 0x5, 0x7e,0x75,0x2a,0x80,0xb, +0x6d,0xee,0x9e,0xe5,0x2a,0xbd,0xe7,0x8, 0x2, 0x7d,0x7e,0x6c,0xcc,0x80,0xf, 0x12, +0x6e,0x19,0x40,0x8, 0x12,0x6e,0xf, 0x50,0x3, 0x12,0xa7,0x18,0xb, 0xc0,0x12,0x6d, +0x34,0x38,0xec,0xb, 0xd0,0xbe,0xd0,0x3, 0x50,0x2, 0xa1,0x68,0xda,0x3b,0x22,0x7c, +0x1d,0x2e,0x10,0x2d,0xa5,0xe7,0xbc,0xab,0x22,0xa, 0xec,0x9, 0xae,0x2a,0xb9,0x7c, +0x1d,0x2e,0x10,0x2c,0xa5,0xe7,0xbc,0xab,0x22,0x12,0x6e,0xa0,0x7a,0x37,0x2b,0x1b, +0x22,0x7e,0xa3,0x0, 0x4f,0xbe,0xa0,0xff,0x68,0x48,0xbe,0xa3,0x3, 0xec,0x68,0x42, +0x74,0x5, 0xa4,0x12,0xc0,0x99,0x12,0x6e,0x83,0x12,0xc0,0x19,0x12,0x6e,0x83,0x12, +0xc0,0x10,0x12,0x6e,0x8f,0x50,0x9, 0x7e,0xb3,0x0, 0x4f,0x12,0xb3,0x2a,0x80,0x6, +0x12,0x6e,0x83,0x12,0x6f,0xff,0x12,0x6e,0x29,0x12,0x6f,0xf8,0x7e,0x73,0x2b,0x14, +0xa, 0x37,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x1a,0x7e,0x73,0x0, 0x4f,0x7a,0x73, +0x3, 0xec,0x22,0x7e,0xa3,0x0, 0x4f,0x74,0x5, 0xa4,0x22,0x7a,0xb3,0x2b,0x20,0x7e, +0xb3,0x37,0x8, 0xb4,0x3, 0x8, 0x7e,0xb3,0x37,0xb2,0x70,0x2, 0xc3,0x22,0xd3,0x22, +0x7e,0x23,0x2b,0xf, 0x7e,0x33,0x37,0xcd,0x7e,0x34,0x60,0xd6,0x7e,0x24,0x0, 0xff, +0xb, 0x1a,0x0, 0xac,0x23,0x2d,0x10,0xbe,0x14,0x0, 0xa, 0x50,0x4, 0x7e,0x14,0x0, +0xa, 0x7e,0x63,0x2b,0x10,0xbe,0x14,0xf, 0x3c,0x40,0x4, 0x7e,0x14,0xf, 0x3c,0xbe, +0x14,0x7, 0x8, 0x40,0x3, 0xe4,0x80,0x21,0xbe,0x14,0x3, 0x84,0x40,0x16,0x90,0x61, +0x1b,0xe4,0x93,0x7c,0x7b,0xbe,0x70,0x1, 0x28,0x4, 0x74,0x1, 0x80,0xb, 0x7a,0x73, +0x2b,0x10,0x80,0x9, 0x90,0x61,0x1b,0xe4,0x93,0x7a,0xb3,0x2b,0x10,0x7e,0x73,0x2b, +0x10,0xbc,0x76,0x68,0x2, 0xd2,0xc, 0x7e,0x24,0x1, 0xf4,0x7d,0x31,0x8d,0x32,0x7c, +0x17,0xbe,0x10,0x7, 0x28,0x3, 0x7e,0x10,0x7, 0x7e,0x1f,0x38,0xc0,0x69,0x51,0x0, +0x86,0x54,0x1f,0xa, 0x1, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x2d, +0x5, 0x79,0x1, 0x0, 0x86,0x6d,0x0, 0x7e,0x34,0xb8,0x0, 0x7e,0x24,0x0, 0xb, 0x2, +0x1f,0x58,0x7e,0xb, 0x70,0x7a,0x73,0x2b,0xf, 0x29,0x70,0x0, 0x4, 0x7a,0x73,0x2b, +0x62,0x29,0x70,0x0, 0x1, 0x7a,0x73,0x2b,0x14,0x29,0x70,0x0, 0x3, 0x7a,0x73,0x2b, +0x20,0x12,0x6e,0x29,0x12,0x6f,0xf8,0xd2,0x3, 0xc2,0x4, 0x2, 0x48,0xf4,0xca,0xf8, +0x6c,0xff,0x80,0x34,0x7e,0x73,0x0, 0x4f,0xbc,0x7f,0x68,0x2a,0x7e,0x30,0x5, 0xac, +0x3f,0x12,0x6f,0xea,0xca,0x39,0x7e,0x30,0x38,0xac,0x3f,0x12,0xc0,0x56,0x12,0x20, +0xb9,0x1b,0xfd,0x7e,0x34,0x0, 0x8c,0xca,0x39,0x7e,0x30,0x8c,0xac,0x3f,0x12,0xc0, +0x4b,0x12,0x20,0xb9,0x1b,0xfd,0xb, 0xf0,0x90,0x61,0xc5,0xe4,0x93,0xbc,0xbf,0x38, +0xc3,0x7e,0x23,0x0, 0x4f,0x7e,0x30,0x5, 0xac,0x23,0x12,0x6f,0xea,0xca,0x39,0x7e, +0x23,0x0, 0x4f,0x7e,0x30,0x38,0xac,0x23,0x12,0xc0,0x56,0x12,0x20,0xb9,0x1b,0xfd, +0x7e,0x34,0x0, 0x8c,0xca,0x39,0x7e,0x23,0x0, 0x4f,0x7e,0x30,0x8c,0xac,0x23,0x12, +0xc0,0x4b,0x12,0x20,0xb9,0x1b,0xfd,0xda,0xf8,0x22,0x2e,0x14,0x26,0x33,0x6d,0x0, +0x12,0x6f,0x42,0x7e,0x34,0x0, 0x38,0x22,0x7e,0x8, 0x2a,0x6d,0x2, 0x3, 0x8b,0x9, +0x75,0x26,0x35,0x7a,0x73,0x2b,0x1f,0x22,0x7e,0x37,0x3, 0xed,0xb, 0x34,0x7a,0x37, +0x3, 0xed,0x7e,0x37,0x3, 0xef,0xbe,0x37,0x3, 0xed,0x28,0x3, 0x2, 0x70,0x23,0x22, +0x2, 0x70,0x8, 0xe5,0x9a,0x60,0x5, 0xd2,0x9c,0xa9,0xd6,0xdf,0x22,0xca,0x7b,0xca, +0x6b,0xca,0x5b,0xca,0x4b,0xca,0x2b,0xca,0x1b,0xca,0xb, 0xc0,0xd0,0xc0,0x83,0xc0, +0x82,0x12,0x70,0x20,0xd0,0x82,0xd0,0x83,0xd0,0xd0,0xda,0xb, 0xda,0x1b,0xda,0x2b, +0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda,0x7b,0x32,0x7e,0x34,0x0, 0x4, 0xca,0x39,0x7e, +0x34,0x61,0x2d,0x7e,0x24,0x0, 0xff,0x7e,0x8, 0x2b,0x70,0x12,0x20,0xb9,0x1b,0xfd, +0x7e,0x34,0x2a,0xe, 0x7a,0x37,0x2b,0x76,0xe4,0x7a,0xb3,0x2b,0x74,0x7a,0xb3,0x2b, +0x75,0x7e,0x34,0x0, 0x4, 0xca,0x39,0x12,0x79,0x25,0x7e,0x8, 0x25,0xee,0x12,0x20, +0xb9,0x1b,0xfd,0x7e,0x34,0x2b,0x78,0x7a,0x37,0x25,0xf4,0xe4,0x7a,0xb3,0x25,0xf2, +0x74,0x1, 0x7a,0xb3,0x25,0xf3,0x22,0xca,0xd8,0xca,0x79,0x90,0x60,0x50,0xe4,0x93, +0x7c,0xdb,0x90,0x60,0x51,0xe4,0x93,0x7c,0xeb,0x7e,0x73,0x2a,0x74,0xbc,0x7e,0x28, +0x4, 0x7c,0xf7,0x80,0x2, 0x7c,0xfe,0x7a,0xd3,0x2a,0x6d,0x7a,0xe3,0x2a,0x6e,0x7a, +0xd3,0x2a,0x71,0x7a,0xe3,0x2a,0x72,0x7a,0xd3,0x2a,0x73,0x7a,0xe3,0x2a,0x74,0x90, +0x60,0xa8,0xe4,0x93,0x7c,0xab,0x7a,0xa3,0x2a,0x77,0x90,0x60,0xa9,0xe4,0x93,0xa, +0x2b,0xa, 0x3d,0x9d,0x32,0x7c,0xb7,0x7a,0xb3,0x2a,0x6f,0xa, 0x2a,0xa, 0x3e,0x9d, +0x32,0x7a,0x73,0x2a,0x70,0x90,0x60,0x91,0xe4,0x93,0x7a,0xb3,0x2a,0x78,0x90,0x60, +0x94,0xe4,0x93,0x7a,0xb3,0x2a,0x79,0xa, 0x3d,0xca,0x39,0x7e,0x34,0x60,0x52,0x7e, +0x24,0x0, 0xff,0x7e,0x8, 0x2a,0x7a,0x12,0x20,0xb9,0x1b,0xfd,0xa, 0x3f,0xca,0x39, +0x7e,0x34,0x60,0x75,0x7e,0x24,0x0, 0xff,0x7e,0x8, 0x2a,0x9d,0x12,0x20,0xb9,0x1b, +0xfd,0x7e,0x34,0x0, 0x23,0xca,0x39,0x7e,0x34,0x60,0xd8,0x7e,0x24,0x0, 0xff,0x7e, +0x8, 0x2b,0x21,0x12,0x20,0xb9,0x1b,0xfd,0x12,0x72,0x92,0x12,0x79,0x31,0x90,0x60, +0xaa,0xe4,0x93,0x70,0x8, 0x7a,0xd3,0x2a,0x75,0x7a,0xe3,0x2a,0x76,0x12,0x70,0x59, +0x74,0x1, 0x12,0x3d,0xac,0xe4,0x7a,0xb3,0x2b,0x1, 0x7a,0xb3,0x2b,0x2, 0x12,0x73, +0xf1,0x7a,0x37,0x2b,0xd, 0x74,0x3, 0x7a,0xb3,0x2b,0x3, 0xe4,0x7a,0xb3,0x2b,0x4, +0x74,0x2, 0x7a,0xb3,0x2b,0x5, 0x7e,0x34,0x61,0x59,0x12,0x23,0x9e,0x7a,0x37,0x2b, +0x7, 0x74,0x4, 0x7a,0xb3,0x2b,0x6, 0x7e,0x34,0x0, 0xf, 0x7a,0x37,0x2b,0x9, 0x7e, +0x34,0x20,0x5f,0x7a,0x37,0x2b,0xb, 0x90,0x61,0x1a,0xe4,0x93,0x7a,0xb3,0x2b,0x62, +0x90,0x61,0x1b,0xe4,0x93,0x7a,0xb3,0x2b,0x10,0x90,0x61,0x1c,0xe4,0x93,0x7a,0xb3, +0x2b,0x11,0x74,0x4, 0x7a,0xb3,0x2b,0x13,0x90,0x60,0xd5,0xe4,0x93,0x7a,0xb3,0x2b, +0xf, 0x12,0x6e,0x29,0xe4,0x7a,0xb3,0x2b,0x1d,0x7a,0xb3,0x2b,0x1e,0x7e,0x34,0x61, +0x22,0x12,0x23,0x9e,0x7a,0x37,0x2b,0x19,0x90,0x60,0xd3,0x93,0x7a,0xb3,0x2b,0x12, +0x90,0x61,0x24,0xe4,0x93,0x7a,0xb3,0x2b,0x20,0x90,0x61,0x19,0xe4,0x93,0x7a,0xb3, +0x2b,0x1f,0x7e,0x34,0x61,0x1e,0x12,0x23,0x9e,0x7a,0x37,0x2b,0x15,0x7e,0x34,0x61, +0x20,0x12,0x23,0x9e,0x7a,0x37,0x2b,0x17,0x90,0x61,0x1d,0xe4,0x93,0x7a,0xb3,0x2b, +0x14,0x7e,0x34,0x0, 0x30,0x7a,0x37,0x2b,0x6a,0x74,0x5, 0x7a,0xb3,0x2b,0x67,0x7e, +0x34,0x0, 0x5, 0x7a,0x37,0x2b,0x68,0xe4,0x7a,0xb3,0x2b,0x66,0x7e,0x34,0x4, 0x6d, +0x7a,0x37,0x2b,0x6c,0x74,0x1, 0x7a,0xb3,0x2b,0x63,0x74,0x6, 0x7a,0xb3,0x2b,0x64, +0xe4,0x7a,0xb3,0x2b,0x65,0x74,0x1, 0x7a,0xb3,0x2b,0x60,0xe4,0x7a,0xb3,0x2b,0x61, +0x7e,0x34,0x20,0x5b,0x7a,0x37,0x2b,0x6e,0xa, 0x3e,0xca,0x39,0x7e,0x34,0x60,0xfb, +0x7e,0x24,0x0, 0xff,0x7e,0x8, 0x2b,0x44,0x12,0x20,0xb9,0x1b,0xfd,0xda,0x79,0xda, +0xd8,0x22,0x12,0xc0,0xab,0x12,0x72,0xf4,0x90,0x60,0x50,0xe4,0x93,0xa, 0x3b,0x7d, +0x13,0x2e,0x14,0x2a,0x7a,0x6d,0x0, 0x9, 0xb3,0x2a,0x79,0x12,0x72,0xdb,0xa, 0x3b, +0x7d,0x13,0x2e,0x14,0x2b,0x21,0x6d,0x0, 0x9, 0xb3,0x2b,0x20,0x12,0x72,0xdb,0xa, +0x1b,0x2e,0x14,0x2a,0x7c,0x12,0x72,0xe8,0xe5,0x25,0x12,0x72,0xdf,0xa, 0x1b,0x2e, +0x14,0x2b,0x23,0x12,0x72,0xe8,0xe5,0x24,0x2, 0x20,0xde,0x7e,0x34,0x0, 0x2, 0x12, +0x20,0xde,0x90,0x60,0x50,0xe4,0x93,0x22,0x6d,0x0, 0x90,0x60,0x91,0xe4,0x93,0xa, +0x3b,0x1b,0x35,0x22,0x6c,0xaa,0x6c,0x99,0x80,0xc, 0xa, 0xf9,0x9, 0xbf,0x2a,0x7a, +0xbc,0xba,0x68,0x7, 0xb, 0x90,0x12,0x73,0x20,0x38,0xef,0x12,0x73,0x20,0x68,0x7, +0xb, 0xa0,0xbe,0xa0,0x23,0x40,0xdf,0x7a,0xb, 0xa0,0x74,0x6e,0x7a,0x1b,0xb0,0x22, +0x90,0x60,0x50,0xe4,0x93,0xbc,0xb9,0x22,0x12,0x77,0xfd,0x12,0x70,0xa7,0x12,0x0, +0xa, 0x12,0x3f,0xf2,0x7e,0x18,0x4, 0x0, 0x7a,0x1f,0x6, 0xf8,0x7e,0xf, 0x6, 0xf8, +0x7e,0x1f,0x6, 0xf4,0x12,0x79,0x9d,0x7e,0x18,0x8, 0xa, 0x7a,0x1f,0x13,0x86,0x7e, +0x18,0xd, 0xc8,0x7a,0x1f,0x13,0x8a,0x7e,0xf, 0x13,0x8a,0x7e,0x1f,0x13,0x86,0x12, +0x79,0x7a,0x12,0x79,0x2e,0x12,0x25,0x45,0x12,0x73,0xa7,0x12,0x73,0x7f,0x2, 0x73, +0x71,0xe4,0x7a,0xb3,0x34,0x38,0x7a,0xb3,0x34,0x39,0x7a,0xb3,0x34,0x3a,0x22,0x12, +0x73,0xe5,0x7e,0x24,0x0, 0x3, 0xad,0x32,0x7e,0x8, 0x28,0xae,0x74,0xff,0x12,0x20, +0xde,0x12,0x9f,0xe3,0x7e,0x8, 0x29,0xbc,0x12,0x5e,0x61,0x7e,0x8, 0x2a,0x2, 0x7e, +0x34,0x0, 0xb, 0xe4,0x2, 0x20,0xde,0x7e,0x8, 0x26,0x5b,0x7e,0x34,0x2, 0x3a,0xe4, +0x12,0x20,0xde,0x90,0x60,0x9c,0x93,0xa, 0x3b,0x3e,0x34,0x7e,0x8, 0x26,0x8c,0x74, +0xff,0x12,0x20,0xde,0x90,0x60,0x9c,0xe4,0x93,0xa, 0x3b,0x3e,0x34,0x7e,0x8, 0x26, +0xb4,0x74,0xff,0x12,0x20,0xde,0x90,0x60,0x9a,0x12,0x73,0xe8,0x7e,0x8, 0x27,0x76, +0x74,0xff,0x2, 0x20,0xde,0x90,0x60,0x99,0xe4,0x93,0x7c,0x7b,0x74,0x9, 0xac,0x7b, +0x22,0x6d,0x33,0x6c,0xaa,0x80,0x14,0xa, 0x2a,0x9, 0xb2,0x2a,0xdc,0x54,0x1, 0x78, +0x5, 0x4e,0x70,0x1, 0x80,0x3, 0x4e,0x70,0x10,0xb, 0xa0,0x7e,0x53,0x2a,0x74,0xbc, +0x5a,0x38,0xe4,0x6c,0xaa,0x80,0x1f,0xa, 0x2a,0x9, 0xb2,0x2a,0xb9,0xbe,0xb0,0xd, +0x38,0x5, 0x4e,0x70,0xc0,0x80,0xd, 0xbe,0xb0,0x1b,0x38,0x5, 0x4e,0x60,0x8, 0x80, +0x3, 0x4e,0x60,0x50,0xb, 0xa0,0x12,0x74,0x3c,0x38,0xdc,0x22,0x7e,0xb3,0x2a,0x73, +0xbc,0xba,0x22,0xca,0x3b,0x7e,0xb4,0x7f,0xff,0x7d,0xab,0x7d,0x8b,0x6d,0x22,0x7d, +0x32,0x7d,0x9b,0x75,0x24,0x0, 0x6c,0x99,0x7e,0x78,0x4, 0xfc,0x7e,0x8, 0x5, 0x7a, +0xe4,0x7a,0xb3,0x8, 0x8, 0x7a,0xb3,0x8, 0x9, 0x7a,0xb3,0x26,0xf6,0x7a,0xb3,0x26, +0xf8,0x7a,0xb3,0x26,0xf7,0x7a,0xb3,0x26,0xf9,0x6c,0xaa,0x80,0x5f,0x12,0x75,0xb2, +0xb, 0x6a,0xc0,0xbd,0xca,0x58,0x2, 0x7d,0xac,0xbd,0xc3,0x8, 0x2, 0x7d,0x3c,0x2d, +0x71,0x7d,0x60,0xb, 0x3a,0xd0,0xbd,0xd9,0x58,0x2, 0x7d,0x9d,0x7e,0x67,0x2a,0x53, +0x7e,0x74,0x0, 0x3, 0xad,0x76,0xbd,0xc7,0x8, 0x2, 0x5, 0x24,0x12,0x75,0x9f,0xb, +0x3a,0xd0,0xbd,0xcd,0x8, 0xb, 0x7e,0xb3,0x26,0xf7,0x4, 0x7a,0xb3,0x26,0xf7,0x80, +0x19,0x12,0x75,0xa8,0xb, 0x3a,0xc0,0x6e,0xd4,0xff,0xff,0xb, 0xd4,0xbd,0xcd,0x58, +0x9, 0x7e,0xb3,0x26,0xf9,0x4, 0x7a,0xb3,0x26,0xf9,0xb, 0xa0,0x7e,0xb3,0x2a,0x74, +0xbc,0xba,0x38,0x99,0x7a,0xa7,0x7, 0xfe,0x7a,0x37,0x8, 0x2, 0xe5,0x24,0x7a,0xb3, +0x8, 0x9, 0x7a,0x97,0x8, 0x6, 0x12,0x75,0x97,0x2d,0xf5,0x6c,0xaa,0x80,0x50,0x12, +0x75,0xb2,0xb, 0x6a,0xd0,0xbd,0xd8,0x58,0x2, 0x7d,0x8d,0xbd,0xd2,0x8, 0x2, 0x7d, +0x2d,0x7e,0x67,0x2a,0x51,0x7e,0x74,0x0, 0x3, 0xad,0x76,0xbd,0xd7,0x8, 0x2, 0xb, +0x90,0x12,0x75,0x9f,0xb, 0x3a,0xc0,0xbd,0xdc,0x8, 0xb, 0x7e,0xb3,0x26,0xf6,0x4, +0x7a,0xb3,0x26,0xf6,0x80,0x17,0x12,0x75,0xa8,0xb, 0x3a,0xd0,0x6d,0x99,0x9d,0x9c, +0xbd,0xd9,0x58,0x9, 0x7e,0xb3,0x26,0xf8,0x4, 0x7a,0xb3,0x26,0xf8,0xb, 0xa0,0x12, +0x74,0x3c,0x38,0xab,0x7a,0x87,0x7, 0xfc,0x7a,0x27,0x8, 0x0, 0x7a,0x93,0x8, 0x8, +0x12,0x75,0x97,0x2d,0x15,0x6c,0xaa,0x80,0xe, 0x12,0xa5,0xe4,0xb, 0x7a,0x90,0xbd, +0x9b,0x58,0x2, 0x7d,0xb9,0xb, 0xa0,0x12,0x74,0x3c,0x38,0xed,0x7a,0xb7,0x8, 0x4, +0xbd,0x8a,0x58,0x2, 0x7d,0xa8,0x7a,0xa7,0x7, 0xf8,0xbd,0x32,0x58,0x2, 0x7d,0x32, +0x7a,0x37,0x7, 0xfa,0xda,0x3b,0x22,0x7e,0xa3,0x2a,0x74,0x74,0x2, 0xa4,0x22,0x7e, +0x74,0x62,0x10,0x7e,0x64,0x0, 0xff,0x22,0x7e,0xf0,0x2, 0xac,0xfa,0x2d,0x7f,0x7d, +0x6e,0x22,0x7e,0xf0,0x2, 0xac,0xfa,0x7f,0x67,0x2d,0xd7,0x22,0xca,0x3b,0x7f,0x31, +0x7a,0xd, 0x24,0x7e,0x35,0x28,0x7a,0x35,0x2e,0x7e,0xd, 0x24,0x7f,0x13,0x12,0xa6, +0x56,0x7e,0x35,0x28,0x7a,0x35,0x2a,0x12,0x75,0x97,0x7e,0xd, 0x24,0x2d,0x15,0x7f, +0x13,0x2d,0x35,0x12,0x6d,0x3b,0xda,0x3b,0x22,0x7e,0x37,0x2a,0x4f,0x1e,0x34,0x7a, +0x35,0x28,0x7e,0x8, 0x4, 0xfc,0x7e,0x18,0x4, 0x0, 0x12,0x75,0xbc,0x7e,0x37,0x28, +0x99,0xe, 0x34,0x7a,0x35,0x28,0x7e,0x8, 0x5, 0x7a,0x7e,0x18,0x4, 0x7e,0x12,0x75, +0xbc,0x12,0x76,0x2b,0x12,0xa7,0x45,0x2, 0x76,0x1a,0xe4,0x7a,0xb3,0x3, 0xff,0x7e, +0xb3,0x28,0xa8,0x60,0x5, 0xe4,0x7a,0xb3,0x3, 0xff,0x22,0xca,0x3b,0x7e,0xf3,0x2a, +0x6e,0x12,0xc0,0xb4,0x6c,0xcc,0x80,0x13,0x7c,0x7c,0xac,0x7f,0x3e,0x34,0x7e,0xf, +0x13,0x8a,0x2d,0x13,0x7c,0xbd,0x12,0xa7,0xcd,0xb, 0xc0,0xbc,0xec,0x38,0xe9,0xda, +0x3b,0x22,0xe4,0x7a,0xb3,0x28,0x93,0x12,0xbb,0x95,0x7e,0xb3,0x16,0x91,0xb4,0x1, +0x8, 0x7e,0x73,0x28,0x84,0x7a,0x73,0x28,0x92,0x7e,0x18,0x4, 0xfc,0x7a,0x1f,0x6, +0xf8,0x12,0x3f,0xf2,0x12,0x76,0x9a,0x12,0x74,0x43,0x7e,0xb3,0x16,0x90,0xb4,0x1, +0x18,0x7e,0x73,0x26,0x83,0x7a,0x73,0x26,0xf3,0x7e,0x73,0x26,0x85,0x7a,0x73,0x26, +0xf5,0x7e,0x73,0x26,0x84,0x7a,0x73,0x26,0xf4,0x22,0x7e,0x8, 0x26,0x86,0x7e,0x34, +0x0, 0x3, 0xe4,0x12,0x20,0xde,0x7e,0x8, 0x26,0x89,0x7e,0x34,0x0, 0x3, 0x12,0x20, +0xde,0x7a,0xb3,0x26,0x83,0x7a,0xb3,0x26,0x84,0x7a,0xb3,0x26,0x85,0x7a,0xb3,0x26, +0xf0,0x7a,0xb3,0x26,0xf1,0x7a,0xb3,0x26,0xf2,0x7e,0x18,0x26,0x6f,0x12,0xbf,0xeb, +0x6c,0x55,0x12,0x77,0x60,0x7a,0xb3,0x26,0x85,0x7e,0x18,0x26,0x5b,0x12,0xbf,0xc7, +0x6c,0x55,0x12,0x77,0x60,0x7a,0xb3,0x26,0x84,0x6c,0x77,0x80,0x14,0x12,0x77,0xe9, +0x60,0x5, 0x3e,0x24,0x14,0x78,0xfb,0x12,0x77,0xf2,0x2e,0x24,0x26,0x86,0x12,0xc0, +0x40,0x7e,0x63,0x26,0x84,0xbc,0x67,0x38,0xe4,0x6c,0x77,0x80,0x14,0x12,0x77,0xe9, +0x60,0x5, 0x3e,0x24,0x14,0x78,0xfb,0x12,0x77,0xf2,0x2e,0x24,0x26,0x89,0x12,0xc0, +0x40,0x7e,0xa3,0x26,0x85,0xbc,0xa7,0x38,0xe4,0x7e,0xb3,0x26,0x84,0xa4,0x7a,0xb3, +0x26,0x83,0x7e,0x18,0x26,0xe6,0x12,0xbf,0xeb,0x7e,0x50,0x1, 0x12,0x77,0x60,0x7a, +0xb3,0x26,0xf2,0x7e,0x18,0x26,0xdc,0x12,0xbf,0xc7,0x7e,0x50,0x1, 0x12,0x77,0x60, +0x7c,0xab,0x7a,0xa3,0x26,0xf1,0x7e,0xb3,0x26,0xf2,0xa4,0x7a,0xb3,0x26,0xf0,0x22, +0xca,0x69,0xca,0xf8,0x7c,0x4b,0x6c,0xaa,0x6d,0xff,0x6c,0xff,0x80,0x70,0x7e,0xd0, +0x2, 0xac,0xdf,0x7f,0x60,0x2d,0xd6,0xb, 0x6a,0xe0,0x4c,0x55,0x68,0x6, 0x6e,0xe4, +0xff,0xff,0xb, 0xe4,0xbd,0x3e,0x58,0x54,0x4c,0xff,0x78,0x8, 0x6d,0x44,0x69,0xf0, +0x0, 0x2, 0x80,0x1b,0x7c,0xb4,0x14,0xbc,0xbf,0x7f,0x56,0x78,0x9, 0x1b,0xb5,0xb, +0x5a,0x40,0x6d,0xff,0x80,0x9, 0x1b,0xb5,0xb, 0x5a,0x40,0x69,0xf6,0x0, 0x2, 0x4c, +0x55,0x68,0xc, 0x6e,0x44,0xff,0xff,0xb, 0x44,0x6e,0xf4,0xff,0xff,0xb, 0xf4,0xbd, +0x4e,0x58,0x19,0xbd,0xfe,0x18,0x15,0xa, 0xba,0x7e,0x6d,0x24,0x2d,0xdb,0x7a,0x6b, +0xf0,0xb, 0xa0,0x90,0x60,0x9b,0xe4,0x93,0xbc,0xba,0x28,0x6, 0xb, 0xf0,0xbc,0x4f, +0x38,0x8c,0x7c,0xba,0xda,0xf8,0xda,0x69,0x22,0x7c,0xb7,0x54,0x7, 0x7e,0x24,0x0, +0x1, 0x22,0x7c,0xa5,0x7c,0xb7,0xc4,0x23,0x54,0x1f,0xa, 0x2b,0x22,0xe4,0x7a,0xb3, +0x37,0x9c,0x7a,0xb3,0x37,0x9d,0x90,0x60,0x50,0x93,0x7a,0xb3,0x37,0x9e,0x90,0x60, +0x51,0xe4,0x93,0x7a,0xb3,0x37,0x9f,0xe4,0x7a,0xb3,0x37,0xa0,0x90,0x60,0x99,0x93, +0x7a,0xb3,0x37,0xa1,0xe4,0x7a,0xb3,0x37,0xa2,0x7a,0xb3,0x37,0xa3,0x90,0x61,0xc4, +0x93,0x7a,0xb3,0x37,0xa5,0x7e,0x34,0x61,0x4f,0x12,0x23,0x9e,0x1e,0x34,0x1e,0x34, +0x7a,0x73,0x37,0xa9,0x7e,0x34,0x61,0x55,0x12,0x23,0x9e,0x1e,0x34,0x1e,0x34,0x7a, +0x73,0x37,0xaa,0x74,0x64,0x7a,0xb3,0x37,0xbb,0x90,0x61,0x18,0xe4,0x93,0x7a,0xb3, +0x37,0xbc,0x90,0x61,0x17,0xe4,0x93,0x7a,0xb3,0x37,0xa8,0x90,0x61,0x19,0xe4,0x93, +0x7a,0xb3,0x37,0xbe,0x90,0x61,0x24,0xe4,0x93,0x7a,0xb3,0x37,0xbd,0x90,0x61,0x1d, +0xe4,0x93,0x7a,0xb3,0x37,0xbf,0x90,0x61,0x25,0xe4,0x93,0x7a,0xb3,0x37,0xba,0xe4, +0x7a,0xb3,0x37,0xb5,0x74,0xfa,0x7a,0xb3,0x37,0xb3,0x74,0x1e,0x7a,0xb3,0x37,0xb4, +0x74,0x1, 0x7a,0xb3,0x37,0xb2,0x74,0xc, 0x7a,0xb3,0x37,0xb1,0x74,0x1, 0x7a,0xb3, +0x37,0xb6,0xe4,0x7a,0xb3,0x37,0xb7,0x7a,0xb3,0x37,0xb8,0x7e,0x8, 0x37,0xc0,0x7e, +0x34,0x0, 0x2c,0x12,0x20,0xde,0x7e,0x34,0x60,0xd6,0x12,0x23,0x9e,0xa, 0x36,0x7a, +0x73,0x37,0xcb,0x7e,0x34,0x60,0xd6,0x12,0x23,0x9e,0x7a,0x73,0x37,0xcc,0x90,0x60, +0xd4,0x93,0x7a,0xb3,0x37,0xcd,0x90,0x60,0xd5,0xe4,0x93,0x7a,0xb3,0x37,0xce,0x7e, +0x34,0x0, 0x4, 0xca,0x39,0x12,0x79,0x25,0x7e,0x8, 0x37,0xdc,0x12,0x20,0xb9,0x1b, +0xfd,0x74,0x5, 0x7a,0xb3,0x37,0xe9,0x74,0x1, 0x7a,0xb3,0x37,0xe0,0x7e,0x34,0x0, +0x28,0xca,0x39,0x7e,0x34,0x61,0xd5,0x7e,0x24,0x0, 0xff,0x7e,0x8, 0x26,0x33,0x12, +0x20,0xb9,0x1b,0xfd,0x22,0x7e,0x34,0x61,0x29,0x7e,0x24,0x0, 0xff,0x22,0x2, 0x23, +0xa6,0xca,0xf8,0x7e,0x73,0x2a,0x78,0xa, 0x47,0x7e,0x73,0x2a,0x71,0xa, 0x57,0x2d, +0x54,0x7e,0xa3,0x2a,0x73,0xbc,0xab,0x28,0x2, 0x7c,0xba,0x7e,0xf3,0x2a,0x72,0x7e, +0xa3,0x2a,0x74,0xbc,0xaf,0x28,0x2, 0x7c,0xfa,0x75,0x25,0x15,0x7e,0x8, 0x2a,0xb9, +0x7e,0x18,0x2a,0x7a,0x12,0xd, 0xd9,0x75,0x25,0x15,0x7e,0x8, 0x2a,0xdc,0x7e,0x18, +0x2a,0x9d,0x7c,0xbf,0x12,0xf, 0x9c,0xda,0xf8,0x22,0x7f,0x60,0x7e,0xa3,0x2a,0x6d, +0x7e,0xb3,0x2a,0x6e,0xa4,0x7d,0xf5,0x3e,0xf4,0x7f,0x1, 0x7d,0x3f,0xe4,0x12,0x20, +0xde,0x7f,0x6, 0x7d,0x3f,0x12,0x20,0xde,0x7a,0xb3,0x16,0x91,0x22,0x7f,0x70,0x7e, +0x33,0x2a,0x74,0xa, 0x43,0x7e,0x33,0x2a,0x73,0xa, 0x53,0x2d,0x54,0x3e,0x54,0x7c, +0xab,0xe4,0x7a,0xb3,0x16,0x90,0x7f,0x1, 0xa, 0x3a,0x12,0x20,0xde,0x7f,0x7, 0xa, +0x3a,0x2, 0x20,0xde,0xca,0xd8,0xca,0x79,0x7c,0xfb,0x7f,0x51,0x7f,0x40,0x7f,0x15, +0x12,0x79,0x9d,0x12,0x3f,0xd2,0x7e,0xe0,0x1, 0x12,0x4f,0xaf,0x30,0x18,0xfd,0x74, +0x2, 0x12,0x0, 0x1e,0x7f,0x4, 0x12,0x7b,0x29,0x6c,0xdd,0x80,0x18,0x74,0x2, 0xac, +0xbd,0x7f,0x14,0x2d,0x35,0xb, 0x1a,0x20,0x74,0x2, 0xac,0xbd,0x7f,0x5, 0x2d,0x15, +0x12,0x7b,0x20,0xb, 0xd0,0x7e,0x73,0x2a,0x74,0xa, 0x7, 0x7e,0x63,0x2a,0x73,0xa, +0x16,0x2d,0x10,0xa, 0x2d,0xbd,0x21,0x48,0xd4,0x1b,0xe0,0x78,0xbc,0x7f,0x5, 0x7c, +0xbf,0x2e,0x73,0x2a,0x73,0x12,0x7a,0x8e,0xda,0x79,0xda,0xd8,0x22,0x7e,0xb3,0x2b, +0x2, 0x70,0x41,0x12,0x2f,0xf4,0x50,0xfb,0xe4,0x6c,0x77,0x6c,0x66,0x12,0x7a,0x75, +0x7e,0x8, 0x6, 0xfc,0x7e,0x1f,0x6, 0xf4,0x7e,0xb3,0x2b,0x72,0x12,0x79,0xc4,0x74, +0x1, 0x7e,0x70,0x1, 0x7e,0x60,0x1, 0x12,0x7a,0x75,0x7e,0x8, 0x7, 0x7a,0x7e,0x1f, +0x6, 0xf4,0x7e,0xb3,0x25,0xf0,0x12,0x79,0xc4,0x74,0x2, 0x7a,0xb3,0x2b,0x2, 0xe4, +0x7a,0xb3,0x16,0x90,0x22,0x7c,0x96,0x7c,0xa7,0x12,0x3d,0xac,0x7c,0xba,0x12,0x13, +0xc7,0x74,0xa, 0x12,0x45,0x15,0x7c,0xb9,0x12,0x0, 0x1e,0x2, 0x4e,0xe7,0xca,0xd8, +0xca,0x79,0x7c,0xf7,0x7f,0x70,0x12,0x7b,0xd0,0x7c,0xeb,0x6c,0xdd,0x80,0x20,0x74, +0x2, 0xac,0xbd,0x7f,0x67,0x2d,0xd5,0xb, 0x6a,0x30,0x6d,0x22,0x74,0x4, 0x2f,0x11, +0x14,0x78,0xfb,0xa, 0x1e,0x6d,0x0, 0x12,0x1f,0x7, 0x1b,0x6a,0x30,0xb, 0xd0,0xbc, +0xfd,0x38,0xdc,0xda,0x79,0xda,0xd8,0x22,0xca,0x79,0x7f,0x51,0x7f,0x40,0x7e,0xa3, +0x2a,0x74,0xa, 0x3a,0x7e,0xa3,0x2a,0x73,0xa, 0x7a,0x2d,0x73,0x7e,0xd, 0x2a,0x7c, +0x7f,0x12,0x7a,0x8e,0xa, 0x3f,0x3e,0x34,0xca,0x39,0x7e,0x1d,0x2a,0x7f,0x4, 0x12, +0x20,0xb9,0x1b,0xfd,0x7e,0xb3,0x2b,0x1, 0xb4,0x1, 0x22,0x6c,0xaa,0x80,0x1a,0x7e, +0x70,0x2, 0xac,0x7a,0x7f,0x5, 0x2d,0x13,0xb, 0xa, 0x20,0x7f,0x4, 0x2d,0x13,0xb, +0xa, 0x30,0x9d,0x32,0x1b,0xa, 0x30,0xb, 0xa0,0xbc,0xfa,0x38,0xe2,0xda,0x79,0x22, +0xb, 0xa, 0x30,0x2d,0x32,0x1b,0xa, 0x30,0x22,0x7e,0xb3,0x2a,0x73,0x7e,0x73,0x2a, +0x74,0x12,0x10,0xee,0x74,0x2, 0x2, 0x0, 0x1e,0xca,0xd8,0xca,0x79,0x7e,0xf0,0xa, +0x74,0x1, 0x7a,0xb3,0x2a,0xfa,0x12,0x29,0x6f,0x7c,0xe7,0x80,0x5d,0x12,0x26,0x57, +0x12,0x4f,0x9e,0x30,0x18,0xfd,0x12,0x7b,0xc6,0x12,0x7b,0x29,0x6c,0xdd,0x80,0x3d, +0x7e,0x50,0x2, 0xac,0x5d,0x49,0x32,0x6, 0xfc,0xbe,0x34,0x14,0x78,0x50,0x14,0xa, +0x1d,0x2e,0x17,0x2a,0xfe,0x7e,0x19,0xb0,0xbe,0xb0,0x0, 0x28,0x1e,0x14,0x7a,0x19, +0xb0,0x80,0x18,0xbe,0x34,0x19,0x28,0x28,0x10,0xa, 0x3d,0x12,0x3f,0xb, 0xbe,0xb0, +0xff,0x68,0x8, 0x4, 0x7a,0x39,0xb0,0x80,0x2, 0x1b,0xe0,0xb, 0xd0,0x12,0x7b,0xb7, +0xa, 0x3d,0xbd,0x32,0x48,0xba,0x4c,0xee,0x68,0x8, 0x7c,0xaf,0x1b,0xf0,0x4c,0xaa, +0x78,0x9b,0xda,0x79,0xda,0xd8,0x22,0x7e,0x73,0x2a,0x74,0xa, 0x37,0x7e,0x53,0x2a, +0x73,0xa, 0x25,0x2d,0x23,0x22,0x74,0x2, 0x12,0x0, 0x1e,0x7e,0x8, 0x6, 0xfc,0x22, +0x7c,0x7b,0xa5,0xbf,0x0, 0x3, 0x74,0x10,0x22,0xbe,0x70,0x4, 0x38,0x4, 0x6c,0xaa, +0x80,0x21,0xbe,0x70,0x8, 0x38,0x5, 0x7e,0xa0,0x1, 0x80,0x17,0xbe,0x70,0x10,0x38, +0x5, 0x7e,0xa0,0x2, 0x80,0xd, 0xbe,0x70,0x20,0x38,0x5, 0x7e,0xa0,0x3, 0x80,0x3, +0x7e,0xa0,0x4, 0xa, 0x47,0x3e,0x44,0x3e,0x44,0x3e,0x44,0x7c,0xba,0x60,0x5, 0x1e, +0x44,0x14,0x78,0xfb,0x7c,0xb9,0x22,0x7e,0xa3,0x2f,0xa8,0x7e,0x70,0x4, 0xac,0x7a, +0xb, 0x34,0xbe,0x37,0x37,0xed,0x40,0x39,0x7e,0x37,0x37,0xed,0xb, 0x34,0x7a,0x37, +0x37,0xed,0xbe,0x34,0x0, 0x1, 0x78,0x5, 0x7e,0xb3,0x37,0x34,0x22,0xbe,0x34,0x0, +0x2, 0x78,0x3, 0x7c,0xba,0x22,0xbe,0x34,0x0, 0x2, 0x50,0x9, 0x7d,0x23,0x1b,0x25, +0x9, 0xb2,0x38,0xfb,0x22,0x9e,0x34,0x0, 0x3, 0x2e,0x37,0x2b,0xb9,0x7e,0x39,0xb0, +0x22,0x74,0xff,0x22,0x70,0x5, 0x7e,0xb3,0x37,0x9c,0x22,0xbe,0xb0,0x3, 0x38,0x15, +0x75,0x1b,0x0, 0x30,0xe, 0x6, 0x7e,0x18,0x32,0xea,0x80,0x4, 0x7e,0x18,0x33,0x28, +0x7a,0x1d,0x14,0x80,0x8, 0xbe,0xb0,0x5e,0x38,0x10,0x75,0x1b,0x0, 0xa, 0x1b,0x7e, +0x1d,0x14,0x2d,0x31,0x1b,0x34,0x7e,0x1b,0xb0,0x22,0xbe,0xb0,0xd3,0x68,0x3, 0xb4, +0xd4,0x10,0xb4,0xd3,0x8, 0x6d,0x33,0x7a,0x37,0x37,0xed,0x80,0x2, 0x15,0x1a,0x2, +0x7c,0x17,0xbe,0xb0,0xeb,0x68,0x3, 0xb4,0xec,0x3, 0x2, 0x7d,0x61,0xbe,0xb0,0x80, +0x40,0xc, 0xbe,0xb0,0xdf,0x38,0x7, 0xa, 0x3b,0x9, 0xb3,0x36,0x61,0x22,0xb4,0xfc, +0x5, 0x7e,0xb3,0x37,0x8, 0x22,0xb4,0xfd,0x17,0x6c,0xaa,0x7e,0xb3,0x28,0xa8,0x60, +0x3, 0x4e,0xa0,0x1, 0x7e,0xb3,0x36,0x71,0x60,0x3, 0x4e,0xa0,0x2, 0x7c,0xba,0x22, +0xb4,0xfe,0x5, 0x7e,0xb3,0x2b,0xf, 0x22,0x74,0xff,0x22,0x7c,0x7b,0x6c,0xaa,0x12, +0x3f,0xe1,0x78,0x9, 0x7c,0xb7,0x12,0x7c,0x64,0x7c,0xab,0x80,0xa, 0xb4,0x4, 0x7, +0x7c,0xb7,0x12,0x37,0xeb,0x7c,0xab,0x7c,0xba,0x22,0x30,0x90,0x19,0xc2,0x90,0xe5, +0x18,0x70,0x9, 0x75,0x18,0x1, 0xe5,0x91,0xf5,0x1a,0x80,0x11,0x7e,0x71,0x91,0xe5, +0x1a,0x12,0x3f,0xb3,0x5, 0x1a,0x30,0x91,0xb, 0xc2,0x91,0x5, 0x1a,0xe5,0x1a,0x12, +0x7c,0xfb,0xf5,0x91,0x22,0xca,0x7b,0xca,0x2b,0xca,0x1b,0xca,0xb, 0xc0,0x83,0xc0, +0x82,0x12,0x7d,0x1a,0xd0,0x82,0xd0,0x83,0xda,0xb, 0xda,0x1b,0xda,0x2b,0xda,0x7b, +0x32,0xb4,0xeb,0x5, 0xe4,0x7a,0xb3,0x37,0xf2,0x7e,0x73,0x37,0xf2,0xa, 0x27,0x2e, +0x24,0x0, 0x6, 0x12,0x51,0x4f,0x93,0x7c,0xab,0x7c,0xb7,0x4, 0x7a,0xb3,0x37,0xf2, +0xb4,0x3, 0xb, 0xe4,0x7a,0xb3,0x37,0xf2,0x6d,0x33,0x7a,0x37,0x37,0xef,0x75,0x1a, +0xeb,0x7c,0xba,0x22,0x7e,0xa3,0x37,0x9b,0x7c,0xba,0x4, 0x7a,0xb3,0x37,0x9b,0x7a, +0xa3,0x36,0xf2,0x22,0xa9,0xc0,0x93,0x75,0x18,0x0, 0x32,0x7a,0xb3,0x37,0x9c,0xc4, +0x54,0x7, 0xbe,0xb0,0x4, 0x68,0x3, 0xb4,0x2, 0x4, 0x74,0x3, 0x80,0x7, 0x60,0x3, +0xb4,0x1, 0x7, 0x74,0x1, 0x7a,0xb3,0x37,0x8, 0x22,0x74,0x1, 0x7a,0xb3,0x37,0x8, +0xe4,0x7a,0xb3,0x37,0x9c,0x22,0x7c,0xa7,0x7c,0x3b,0xa5,0xbb,0x0, 0x7, 0x7c,0xba, +0x12,0x7d,0xab,0x80,0x2c,0xbe,0x30,0xeb,0x68,0x4, 0xa5,0xbb,0xec,0x9, 0x7c,0xb3, +0x7c,0x7a,0x12,0x7e,0x45,0x80,0x1a,0xbe,0x30,0x80,0x40,0x15,0xbe,0x30,0xdf,0x38, +0x10,0x7c,0xb3,0x24,0x80,0x7c,0x7a,0x12,0x7e,0x21,0xa5,0xbb,0x8f,0x3, 0x75,0x19, +0x1, 0xa5,0xbb,0xfc,0x5, 0x7c,0xba,0x2, 0x44,0xc0,0x74,0x1, 0x7a,0xb3,0x33,0xff, +0x22,0x7c,0x6b,0x2e,0x60,0xdd,0x68,0x1c,0x2e,0x60,0xfd,0x68,0x17,0x1b,0x61,0x68, +0x13,0x2e,0x60,0xfa,0x68,0xe, 0x1b,0x60,0x68,0xa, 0x80,0x0, 0xa, 0x2b,0x19,0x72, +0x36,0xe1,0xd2,0xd, 0x22,0xbe,0xb0,0xeb,0x68,0x3, 0xb4,0xec,0x33,0x7e,0x27,0x37, +0xef,0x4d,0x22,0x78,0xe, 0xa5,0xbf,0xaa,0xa, 0x7e,0x24,0x0, 0x1, 0x7a,0x27,0x37, +0xef,0x15,0x1a,0x7e,0x27,0x37,0xef,0xbe,0x24,0x0, 0x1, 0x78,0x10,0xa5,0xbf,0x9, +0x6, 0x7e,0x34,0x0, 0x2, 0x80,0x2, 0x6d,0x33,0x7a,0x37,0x37,0xef,0x75,0x1a,0xea, +0x22,0x7e,0xb3,0x37,0xf1,0x4, 0x7a,0xb3,0x37,0xf1,0xe5,0x19,0xb4,0x1, 0x8, 0xe4, +0x7a,0xb3,0x37,0xf1,0x75,0x19,0x0, 0x7e,0x73,0x37,0xf1,0x7a,0x73,0x36,0xf0,0x22, +0xe4,0x7a,0xb3,0x37,0x9c,0x7e,0x8, 0x32,0xea,0x12,0x7e,0xef,0x7e,0x8, 0x33,0x28, +0x7e,0x34,0x0, 0x3e,0x12,0x20,0xde,0x7e,0x18,0x32,0xea,0x7a,0x1d,0x14,0x12,0x7e, +0xd1,0x2, 0x7e,0xc4,0x75,0x18,0x0, 0x75,0x1a,0x0, 0x7e,0xb3,0x37,0x9c,0xf5,0x91, +0x22,0x2, 0x7e,0xd4,0x90,0x60,0x0, 0xe4,0x93,0x54,0xfe,0x75,0x91,0x0, 0xc2,0x90, +0xc2,0x91,0xc2,0xc9,0x54,0xfe,0xf5,0x92,0xd2,0xe8,0xc2,0xc0,0xd2,0xad,0x22,0x7e, +0x34,0x0, 0x3e,0x74,0xff,0x2, 0x20,0xde,0x7c,0xab,0x12,0x3f,0x52,0x7c,0xba,0x12, +0x13,0xc7,0x2, 0x0, 0x1e,0x30,0x18,0x8, 0x74,0x5, 0x7e,0x70,0x99,0x12,0x13,0x2c, +0x7e,0xb3,0x34,0x3a,0xb4,0x1, 0x4f,0x12,0x7f,0x67,0x49,0x35,0x34,0x3b,0x49,0x15, +0x34,0x3d,0x6d,0x0, 0xbe,0x8, 0x0, 0x0, 0x68,0x1a,0xbe,0x70,0x0, 0x40,0x15,0xbe, +0x70,0x2, 0x38,0x10,0x74,0x2, 0x12,0x0, 0x1e,0x7e,0xb3,0x2a,0x73,0x7e,0x73,0x2a, +0x74,0x12,0x10,0xee,0x7e,0xb3,0x34,0x39,0x4, 0x7a,0xb3,0x34,0x39,0x12,0x7f,0x6f, +0x28,0xe, 0x12,0x4e,0x9b,0xb4,0x1, 0x4, 0x74,0x1, 0x80,0x6, 0x74,0x3, 0x80,0x2, +0x74,0x2, 0x7a,0xb3,0x34,0x3a,0x22,0x7e,0xa3,0x34,0x39,0x74,0x4, 0xa4,0x22,0x7e, +0x73,0x34,0x38,0xbe,0x73,0x34,0x39,0x22,0x7d,0xf3,0x6d,0xee,0x6c,0x99,0x80,0x3c, +0x7c,0xb9,0x12,0x31,0x27,0x7d,0xd3,0x7d,0xcd,0x3e,0xc4,0x7f,0x57,0x2d,0xbc,0xb, +0x5a,0x10,0x1a,0x2, 0x1a,0x0, 0x7e,0x83,0x2b,0x20,0xa, 0x98,0x6d,0x88,0x7f,0x10, +0x7f,0x4, 0x12,0x1e,0xeb,0x74,0x6, 0x7f,0x1, 0x1e,0x14,0x1e,0x4, 0x50,0x3, 0x4e, +0x20,0x80,0x14,0x78,0xf4,0x7d,0xc1,0x1b,0x5a,0xc0,0xb, 0x90,0x7e,0x83,0x2a,0x75, +0xbc,0x89,0x38,0xbc,0x22,0x7f,0x20,0xb, 0x2a,0x10,0xb, 0x1a,0x0, 0x1b,0x2a,0x0, +0x1b,0x1a,0x10,0x22,0x7c,0x9b,0x7f,0x71,0x7e,0x7b,0x80,0x4c,0x88,0x78,0x7, 0x7e, +0xb, 0x90,0x7a,0x7b,0x90,0x22,0xa, 0x28,0x7e,0xb, 0x80,0xa, 0x38,0x9d,0x32,0x12, +0x21,0x0, 0xe5,0x29,0xa, 0x2b,0xbd,0x32,0x8, 0x15,0x7e,0x7b,0xa0,0x7e,0xb, 0xb0, +0xbc,0xba,0x7c,0xba,0x28,0x4, 0x2c,0xb9,0x80,0x2, 0x9c,0xb9,0x7a,0x7b,0xb0,0x7e, +0x7b,0x70,0x7a,0xb, 0x70,0x22,0x7d,0xc3,0x7e,0x34,0x61,0x37,0x12,0x87,0xbc,0x90, +0x61,0x35,0xe4,0x93,0x70,0x3, 0x7d,0x3c,0x22,0x90,0x61,0x36,0xe4,0x93,0xb4,0x1, +0x6, 0x7e,0x83,0x2a,0x70,0x80,0x4, 0x7e,0x83,0x2a,0x6f,0x12,0x87,0xd4,0xbe,0xc4, +0x0, 0x3f,0x38,0x1c,0x7e,0xe4,0x0, 0x3f,0x9d,0xec,0x7e,0x34,0x61,0x3b,0x12,0x81, +0x2, 0x12,0x80,0xf1,0xbf,0x71,0x40,0x2, 0x7f,0x71,0x9f,0x17,0x7f,0x71,0x1, 0xee, +0x12,0x66,0xb1,0xbd,0x5c,0x38,0x21,0x7d,0xec,0x9d,0xe5,0x7e,0x34,0x61,0x3d,0x12, +0x81,0x2, 0x90,0x61,0x3a,0xe4,0x93,0xa, 0x3b,0xbf,0x71,0x40,0x4, 0x7f,0x71,0x1b, +0x7c,0x12,0x80,0xf9,0x2f,0x71,0x80,0x66,0x7d,0xb4,0xb, 0xb4,0x1e,0xb4,0x7d,0x5b, +0x1b,0x54,0xbd,0x5c,0x40,0xc, 0x7d,0xf5,0x9d,0xfc,0x6d,0xee,0x7e,0x34,0x61,0x3f, +0x80,0xa, 0x7d,0xfc,0x9d,0xfb,0x6d,0xee,0x7e,0x34,0x61,0x41,0x12,0x87,0xcc,0x7f, +0x17,0x12,0x1e,0xfc,0x7f,0x71,0x12,0x81,0x1c,0x7f,0x71,0xbd,0x5c,0x7d,0x3d,0x40, +0xc, 0x1e,0x34,0x1b,0x34,0x6d,0x22,0x9f,0x17,0x7f,0x71,0x80,0x6, 0x1e,0x34,0x6d, +0x22,0x2f,0x71,0x12,0x80,0xf1,0x6d,0x22,0xbf,0x71,0x50,0x4, 0x7f,0x71,0x80,0xe, +0x90,0x61,0x3a,0xe4,0x93,0x12,0x80,0xf9,0xbf,0x71,0x28,0x2, 0x7f,0x71,0x7d,0x3f, +0x22,0x90,0x61,0x39,0xe4,0x93,0xa, 0x3b,0x22,0xa, 0x2b,0x7d,0x3d,0x9d,0x32,0x6d, +0x22,0x22,0x7e,0x24,0x0, 0xff,0xb, 0x1a,0xf0,0xad,0xfe,0x6d,0xee,0x7d,0x3f,0x7d, +0x2e,0x7c,0x76,0x7c,0x65,0x7f,0x71,0x22,0x7d,0x30,0xad,0x31,0x7c,0x76,0x7c,0x65, +0xa, 0x24,0x22,0xca,0x79,0x7c,0xe5,0x7c,0xfb,0x7e,0xe4,0xff,0xfc,0x7c,0xb4,0x12, +0x9f,0x40,0x7d,0x3, 0x74,0x9, 0xac,0xbf,0x12,0x87,0xe5,0x49,0x35,0x28,0xae,0x12, +0x81,0xbf,0x12,0x81,0x18,0x7d,0x13,0x5e,0x30,0xfc,0x7e,0x70,0x9, 0xac,0x7f,0x49, +0xf3,0x29,0x62,0x74,0x9, 0xac,0xbe,0x49,0x25,0x28,0xae,0xbd,0x2f,0x28,0xf, 0x7d, +0x53,0x2e,0x54,0x29,0x62,0x7d,0x2f,0x2d,0x21,0x1b,0x58,0x20,0x80,0x9, 0x2e,0x34, +0x29,0x62,0x9d,0xf1,0x1b,0x38,0xf0,0x74,0x9, 0xac,0xbf,0x12,0x81,0xb3,0x12,0x81, +0x18,0x7d,0x13,0x5d,0x1e,0x7e,0x50,0x9, 0xac,0x5f,0x49,0x32,0x29,0x64,0x74,0x9, +0xac,0xbe,0x49,0x5, 0x28,0xb0,0xbd,0x3, 0x28,0xd, 0x7d,0x2, 0x2e,0x4, 0x29,0x64, +0x2d,0x13,0x1b,0x8, 0x10,0x80,0x9, 0x2e,0x24,0x29,0x64,0x9d,0x31,0x1b,0x28,0x30, +0xda,0x79,0x22,0x49,0x25,0x29,0x64,0x74,0x9, 0xac,0xbe,0x49,0x35,0x28,0xb0,0x9d, +0x32,0x12,0x21,0x0, 0x7d,0x13,0x22,0x7d,0x41,0x7d,0x2, 0x7c,0x37,0x7c,0x2b,0x74, +0x4, 0xac,0xb2,0x49,0x35,0x2b,0xbf,0x49,0xf5,0x2b,0xc1,0x74,0x4, 0xac,0xb3,0x49, +0x25,0x2b,0xbf,0x49,0x55,0x2b,0xc1,0x12,0x81,0xbf,0x7d,0x3f,0x9d,0x35,0x12,0x21, +0x0, 0x9d,0x34,0x12,0x21,0x0, 0x7e,0x54,0x62,0x6a,0x7e,0x44,0x0, 0xff,0xb, 0x2a, +0x20,0xbd,0x32,0x50,0xf, 0x12,0x67,0xeb,0x7e,0x14,0x62,0x6a,0x12,0x87,0xee,0x50, +0x3, 0x74,0x1, 0x22,0xe4,0x22,0xca,0xf8,0x6c,0xff,0x7e,0xb7,0x2f,0x9c,0x7e,0xc7, +0x2f,0x9e,0x7e,0x97,0x2f,0x84,0x7e,0xd7,0x2f,0x86,0x7e,0xa7,0x2f,0x98,0x7e,0xe7, +0x2f,0x9a,0xe4,0x7e,0x73,0x2f,0xa8,0x1b,0x70,0x7d,0x2b,0x7d,0x1c,0x12,0x81,0xc7, +0x70,0x2, 0x61,0x45,0x7e,0x73,0x2f,0xa8,0xbe,0x70,0xa, 0x28,0x13,0xe4,0x7e,0x70, +0x9, 0x7e,0x27,0x2f,0xa0,0x7e,0x17,0x2f,0xa2,0x12,0x81,0xc7,0x70,0x2, 0x61,0x45, +0x7e,0x73,0x2f,0xa8,0xbe,0x70,0x14,0x28,0x13,0xe4,0x7e,0x70,0x13,0x7e,0x27,0x2f, +0xa4,0x7e,0x17,0x2f,0xa6,0x12,0x81,0xc7,0x70,0x2, 0x61,0x45,0x7e,0x34,0x62,0x72, +0x12,0x83,0x4a,0x28,0x4a,0x7e,0x34,0x62,0x70,0x12,0x83,0x54,0x50,0x41,0x7e,0xb3, +0x2f,0x81,0x70,0x3b,0x7e,0x34,0x62,0x76,0x12,0x23,0x9e,0x12,0x83,0x5e,0x7d,0x8f, +0x9d,0x83,0xbe,0x87,0x2f,0x82,0x50,0x27,0x7e,0x34,0x62,0x74,0x12,0x87,0xc4,0x9d, +0xf8,0xbe,0xf7,0x2f,0x82,0x28,0x18,0x7d,0xfc,0x3e,0xf4,0xbd,0xfb,0x40,0x2, 0x61, +0x45,0xbd,0xa9,0x50,0x5, 0x7e,0xf0,0x20,0x80,0x7b,0x7e,0xf0,0x21,0x80,0x76,0x7e, +0x34,0x62,0x7a,0x12,0x83,0x54,0x28,0x6d,0x7e,0x34,0x62,0x78,0x12,0x83,0x4a,0x50, +0x64,0x7e,0xb3,0x2f,0x81,0x70,0x5e,0x7e,0x34,0x62,0x7e,0x12,0x23,0x9e,0x12,0x83, +0x5e,0x7d,0xaf,0x9d,0xa3,0xbe,0xa7,0x2f,0x82,0x50,0x4a,0x7e,0x34,0x62,0x7c,0x7e, +0x24,0x0, 0xff,0xb, 0x1a,0xa0,0x9d,0xfa,0xbe,0xf7,0x2f,0x82,0x28,0x37,0x7d,0xfb, +0x3e,0xf4,0xbd,0xfc,0x50,0x2f,0xbd,0xed,0x50,0x5, 0x7e,0xf0,0x22,0x80,0x26,0x12, +0x67,0xf2,0x49,0x35,0x2b,0xbb,0x49,0x15,0x2b,0xbd,0x49,0x25,0x2b,0xab,0x49,0x5, +0x2b,0xad,0x9d,0x10,0xbe,0x14,0x0, 0x20,0x18,0x8, 0x9d,0x32,0xbe,0x34,0x0, 0x10, +0x58,0x3, 0x7e,0xf0,0x23,0x7c,0xbf,0xda,0xf8,0x22,0x7e,0x24,0x0, 0xff,0xb, 0x1a, +0xf0,0xbd,0xfc,0x22,0x7e,0x24,0x0, 0xff,0xb, 0x1a,0xf0,0xbd,0xfb,0x22,0x7e,0x14, +0x62,0x8e,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0xf0,0x22,0x12,0x86,0x69,0x7a,0x37,0x2f, +0x9c,0x12,0x85,0xf4,0x7a,0x37,0x2f,0x9e,0x12,0x82,0x16,0x60,0x1, 0x22,0x7e,0x73, +0x2f,0xa8,0xa, 0x37,0x7a,0x35,0x24,0x7e,0x8, 0x2b,0xbf,0x7e,0x18,0x2f,0x80,0x2, +0x83,0x92,0xca,0xf8,0x7e,0x45,0x24,0x7c,0xb9,0x7a,0xb3,0x38,0x3f,0x74,0xff,0x7a, +0xb3,0x38,0x3e,0x6d,0x55,0x80,0x19,0x7d,0xf5,0x3e,0xf4,0x12,0x86,0x74,0x7d,0xe5, +0x3e,0xe4,0x59,0xfe,0x1f,0x34,0x69,0xf6,0x0, 0x2, 0x59,0xfe,0x21,0x14,0xb, 0x54, +0xbd,0x45,0x38,0xe3,0x7e,0x33,0x38,0x3f,0xbe,0x30,0x4, 0x38,0x2, 0x81,0x54,0x69, +0xf1,0x0, 0x1c,0x69,0x11,0x0, 0x1e,0xbd,0x1f,0x18,0x19,0x4d,0x11,0x78,0x4, 0x7e, +0x14,0x0, 0x1, 0x7d,0x3f,0x7d,0x21,0x12,0x1e,0xb9,0x7c,0xf7,0x74,0x40,0x7a,0xb3, +0x38,0x42,0x80,0x43,0x4d,0xff,0x78,0x4, 0x7e,0xf4,0x0, 0x1, 0x7d,0x31,0x7d,0x2f, +0x12,0x1e,0xb9,0x7c,0xf7,0x74,0x80,0x7a,0xb3,0x38,0x42,0x7d,0xf, 0x2d,0xf, 0xbd, +0x1, 0x8, 0x24,0x1a,0x2, 0x1a,0x0, 0x7e,0x73,0x38,0x42,0xa, 0x37,0x6d,0x22,0x12, +0x1e,0xeb,0x7d,0x5f,0x1a,0x4a,0x1a,0x48,0x7d,0x1f,0x1a,0x2, 0x1a,0x0, 0x2f,0x2, +0x12,0x1f,0x7, 0x7a,0x73,0x38,0x42,0xbe,0xf0,0x5, 0x58,0x14,0x12,0x84,0x73,0x12, +0xbf,0x1c,0x12,0x84,0x73,0x12,0x84,0x7c,0x12,0x84,0x73,0x12,0xa5,0x28,0x80,0xa, +0x74,0x7d,0x80,0x2, 0x74,0x7f,0x7a,0xb3,0x38,0x3e,0xe4,0x7a,0xb3,0x38,0x3f,0x7e, +0x73,0x39,0x1, 0xbe,0x73,0x38,0x3e,0x48,0x6, 0x7e,0xb3,0x38,0x40,0x80,0x1, 0xe4, +0xda,0xf8,0x22,0x7e,0x8, 0x1f,0x34,0x7e,0x18,0x21,0x14,0x22,0xca,0x3b,0x7f,0x71, +0x7e,0x60,0x1, 0xb, 0xa, 0x20,0xb, 0x7a,0x50,0x7c,0x4b,0x7a,0x53,0x22,0xf4,0x7a, +0x43,0x23,0xe4,0x7e,0x70,0x1, 0x7e,0xa0,0x1, 0xa1,0x9d,0x7e,0x90,0x2, 0xac,0x9a, +0x7f,0x60,0x2d,0xd4,0xb, 0x6a,0xd0,0x7d,0x7d,0x7c,0xbf,0xf5,0x26,0x7f,0x67,0x2d, +0xd4,0xb, 0x6a,0x40,0xa, 0xd5,0xa, 0xbb,0x7d,0xab,0x9d,0xad,0x7d,0x7a,0x7c,0x8f, +0xbe,0x80,0x0, 0x58,0x5, 0x6e,0x80,0xff,0xb, 0x80,0xa, 0xa4,0xa, 0x79,0x9d,0x7a, +0xbe,0xf0,0x0, 0x58,0x5, 0x6e,0xf0,0xff,0xb, 0xf0,0xbe,0x80,0x2, 0x58,0x7, 0xbe, +0xf0,0x2, 0x58,0x2, 0xa1,0x9b,0xbe,0x60,0x0, 0x18,0x2, 0xa1,0x83,0xbe,0x70,0xec, +0x28,0x2, 0xa1,0xa7,0xbe,0x80,0x8, 0x58,0x5, 0xbe,0xf0,0x8, 0x48,0x61,0xa, 0xa7, +0xb, 0xa4,0x7d,0x6a,0x7c,0x7d,0xa, 0xa5,0x2d,0xab,0x12,0x85,0xeb,0x19,0xba,0x22, +0xf4,0xa, 0xd9,0xa, 0xa4,0x2d,0xad,0x12,0x85,0xeb,0x19,0xba,0x23,0xe4,0x9, 0xba, +0x22,0xf4,0xa, 0xdb,0xa, 0xc5,0x2d,0xcd,0xe, 0xc4,0x7d,0x6c,0x7c,0xbd,0xa, 0xc7, +0x19,0xbc,0x22,0xf3,0x9, 0xbc,0x23,0xe4,0xa, 0xcb,0xa, 0xa4,0x2d,0xac,0x12,0x85, +0xeb,0x19,0xba,0x23,0xe3,0x2d,0xdb,0x12,0x85,0xe2,0x19,0xbd,0x22,0xf5,0xa, 0xd9, +0x12,0x85,0xe0,0x19,0xbd,0x23,0xe5,0xb, 0xd5,0x7d,0x6d,0x7c,0x7d,0x80,0x24,0xbe, +0x80,0x4, 0x58,0x5, 0xbe,0xf0,0x4, 0x48,0x1a,0xe5,0x26,0xa, 0xcb,0xa, 0xd5,0x12, +0x85,0xe0,0x19,0xbd,0x22,0xf4,0xa, 0xc9,0xa, 0xd4,0x12,0x85,0xe0,0x19,0xbd,0x23, +0xe4,0xb, 0x70,0xbe,0x70,0xf0,0x50,0x1f,0x7e,0x51,0x26,0x7c,0x49,0xe5,0x26,0xa, +0xd7,0x19,0xbd,0x22,0xf4,0x19,0x9d,0x23,0xe4,0xb, 0x70,0xb, 0xa0,0x7e,0xb3,0x38, +0x3f,0xbc,0xba,0x28,0x2, 0x81,0x9b,0x7a,0x73,0x38,0x3f,0x7e,0xa0,0x1, 0x80,0x25, +0xa, 0x3a,0x9, 0xb3,0x22,0xf4,0xa, 0x2b,0x7e,0x70,0x2, 0xac,0x7a,0x7f,0x60,0x2d, +0xd3,0x1b,0x6a,0x20,0xa, 0x2a,0x9, 0xb2,0x23,0xe4,0xa, 0x4b,0x2d,0x3f,0x7d,0x2e, +0x1b,0x1a,0x40,0xb, 0xa0,0x7e,0xb3,0x38,0x3f,0xbc,0xba,0x38,0xd3,0xda,0x3b,0x22, +0x2d,0xdc,0xe, 0xd4,0x7d,0x6d,0x7c,0xbd,0xa, 0xd7,0x22,0xe, 0xa4,0x7d,0x6a,0x7c, +0xbd,0xa, 0xa7,0x22,0x7e,0x37,0x2f,0x96,0x9e,0x37,0x2f,0x8e,0x22,0x7e,0x17,0x2f, +0x90,0xbd,0x13,0x28,0xa, 0x7a,0x37,0x2f,0x90,0x7a,0x27,0x2f,0x92,0x80,0x10,0x7e, +0x17,0x2f,0x88,0xbd,0x13,0x50,0x8, 0x7a,0x37,0x2f,0x88,0x7a,0x27,0x2f,0x8a,0x7e, +0x17,0x2f,0x8e,0xbd,0x12,0x28,0xa, 0x7a,0x27,0x2f,0x8e,0x7a,0x37,0x2f,0x8c,0x80, +0x10,0x7e,0x17,0x2f,0x96,0xbd,0x12,0x50,0x8, 0x7a,0x27,0x2f,0x96,0x7a,0x37,0x2f, +0x94,0x7e,0xb3,0x2f,0xa8,0xb4,0xa, 0xf, 0x12,0x86,0x69,0x7a,0x37,0x2f,0xa0,0x12, +0x85,0xf4,0x7a,0x37,0x2f,0xa2,0x22,0xb4,0x14,0xe, 0x12,0x86,0x69,0x7a,0x37,0x2f, +0xa4,0x12,0x85,0xf4,0x7a,0x37,0x2f,0xa6,0x22,0x7e,0x37,0x2f,0x88,0x9e,0x37,0x2f, +0x90,0x22,0x7d,0xf4,0x3e,0xf4,0x7f,0x60,0x2d,0xdf,0xb, 0x6a,0xf0,0x22,0x7c,0xab, +0x6d,0x44,0x80,0x29,0x4c,0xaa,0x68,0x11,0x12,0x86,0xb5,0x60,0x5, 0x3e,0xe4,0x14, +0x78,0xfb,0x12,0x86,0x72,0x2d,0xfe,0x80,0xf, 0x12,0x86,0xb5,0x60,0x5, 0x3e,0xe4, +0x14,0x78,0xfb,0x12,0x86,0x72,0x9d,0xfe,0x1b,0x6a,0xf0,0xb, 0x44,0x7e,0xf5,0x2a, +0xbd,0xf4,0x38,0xd0,0x22,0x7f,0x71,0x2d,0xf4,0x7e,0x7b,0xb0,0x1a,0xeb,0x7f,0x61, +0x2e,0xd5,0x2a,0x7e,0x6b,0xb0,0x22,0x7c,0x7b,0x90,0x60,0x93,0xe4,0x93,0xa, 0x1b, +0x7e,0x63,0x2a,0x71,0xa, 0x6, 0x2d,0x1, 0x7e,0x63,0x2a,0x6e,0xa, 0x16,0xad,0x10, +0x7d,0x21,0x12,0x87,0xdc,0xa, 0x26,0x7a,0x25,0x2a,0x74,0x1d,0xac,0x7b,0x2e,0x34, +0x37,0x44,0x6d,0x22,0xe4,0x2, 0x86,0x7e,0x7c,0x2b,0x7e,0xb3,0x1f,0x33,0xbc,0x2b, +0x68,0x4f,0x12,0x87,0x56,0x7c,0x3b,0x7c,0xb2,0x12,0x87,0x56,0x7c,0xab,0xbe,0x30, +0xff,0x68,0x3e,0xbe,0xa0,0xff,0x68,0x39,0x7e,0x70,0x4, 0xac,0x73,0xa, 0x2a,0x12, +0x91,0x67,0xbe,0xb0,0x2, 0x38,0x2a,0xa, 0x2b,0x7e,0x34,0x2, 0xe0,0xad,0x32,0x2e, +0x34,0x16,0x93,0x6d,0x22,0x30,0x16,0x3, 0x2, 0x86,0xc7,0x7e,0xb3,0x2b,0x1d,0xb4, +0x1, 0xf, 0x12,0xbf,0xfb,0x7a,0x55,0x2a,0x7e,0x8, 0xd, 0xc8,0x74,0x1, 0x2, 0x86, +0x7e,0x22,0x7e,0xb3,0x2b,0xf, 0x7c,0xab,0x6c,0x77,0x7e,0x50,0x5, 0xac,0x57,0x9, +0x62,0x26,0x33,0xbc,0x6a,0x78,0x3, 0x7c,0xb7,0x22,0xb, 0x70,0xbe,0x70,0x4, 0x40, +0xe9,0x74,0xff,0x22,0x7e,0xb3,0x37,0x31,0x70,0x6, 0x12,0x87,0xad,0x2, 0x87,0xb6, +0x12,0x63,0x9, 0x12,0xbd,0x4d,0x50,0xa, 0x12,0x83,0x6a,0x7c,0x3b,0x12,0x87,0xad, +0x80,0x5, 0x12,0xbd,0xf4,0x7c,0x3b,0x4c,0x33,0x68,0x11,0x7c,0xb3,0x12,0xbc,0xd1, +0x60,0xa, 0x7a,0x33,0x37,0x34,0x74,0x1, 0x7a,0xb3,0x2a,0x8, 0x22,0xe4,0x7a,0xb3, +0x2f,0x80,0x22,0x2, 0x81,0x23,0xe4,0x7a,0xb3,0x38,0xdd,0x22,0x7e,0x24,0x0, 0xff, +0xb, 0x1a,0xd0,0x22,0x7e,0x24,0x0, 0xff,0xb, 0x1a,0x80,0x22,0x7e,0x24,0x0, 0xff, +0xb, 0x1a,0x10,0x22,0x7e,0x90,0x40,0xac,0x89,0x1b,0x44,0x22,0x3e,0x24,0x7e,0xf, +0x38,0xd9,0x2d,0x12,0x22,0x49,0x25,0x29,0x62,0x74,0x9, 0xac,0xbe,0x22,0x7e,0x4, +0x0, 0xff,0xb, 0xa, 0x20,0xbd,0x32,0x22,0x7d,0x13,0x7d,0x32,0x6d,0x22,0x74,0x6, +0x2f,0x11,0x14,0x78,0xfb,0xb, 0x14,0x12,0x1f,0x5, 0x7d,0x53,0xbe,0x54,0x0, 0xff, +0x28,0x4, 0x7e,0x54,0x0, 0x40,0x22,0x12,0x6e,0x8f,0x50,0x3, 0xd2,0xf, 0x22,0xc2, +0xf, 0x22,0x12,0xac,0xc6,0x12,0x88,0x2b,0x2, 0x88,0x17,0x7e,0x8, 0x24,0xf2,0x7e, +0x34,0x0, 0xc, 0xe4,0x12,0x20,0xde,0x12,0xaa,0x3e,0x12,0xaa,0x35,0xa9,0xd1,0xcb, +0x12,0xc0,0xff,0x7a,0x37,0x24,0xf6,0x7e,0x1f,0x38,0xd9,0x7a,0x37,0x24,0xf8,0x7e, +0x1f,0x13,0x86,0x7a,0x37,0x24,0xfa,0x6d,0x33,0x12,0xb4,0x4d,0x2, 0xd, 0x7, 0x12, +0x54,0x94,0x12,0x88,0xb9,0x12,0x8c,0xad,0x7e,0xb3,0x37,0x6, 0xb4,0x1, 0x1e,0x7e, +0x34,0x61,0xc0,0x12,0x87,0xcc,0x7e,0x24,0x0, 0x5, 0xad,0x12,0x7a,0x17,0x28,0xa1, +0x7e,0x14,0x61,0xc2,0x12,0x64,0xd3,0xad,0x32,0x7a,0x37,0x28,0xa3,0x7e,0xb3,0x39, +0x11,0x60,0x7, 0x14,0x7a,0xb3,0x39,0x11,0x80,0x6, 0x7e,0xb3,0x28,0xac,0x60,0x9, +0x12,0x88,0x22,0x12,0x8c,0x90,0x12,0xb3,0xa9,0x7e,0xb3,0x28,0xad,0x60,0x9, 0x12, +0xbb,0x10,0x12,0xaa,0x47,0x2, 0x8d,0x10,0x22,0x7e,0x90,0x1, 0x7e,0xb3,0x2f,0xa9, +0xbe,0xb0,0xff,0x50,0x5, 0x4, 0x7a,0xb3,0x2f,0xa9,0x7e,0x34,0x61,0xc0,0x12,0x23, +0x9e,0x12,0xc0,0x87,0x12,0x23,0x9e,0x7a,0x37,0x28,0xa3,0x12,0x8c,0x87,0xb, 0x1a, +0xf0,0x7e,0x34,0x61,0x4f,0x12,0x87,0xbc,0xe4,0x7a,0xb3,0x28,0xac,0x74,0x1, 0x7a, +0xb3,0x28,0xad,0x7e,0x34,0xff,0xfa,0xad,0x3f,0x12,0x8f,0xdc,0x7d,0xc3,0xe, 0xc4, +0x7e,0xe7,0x7, 0xfe,0xbd,0xe3,0x58,0x15,0x7e,0xe7,0x7, 0xfc,0xbd,0xec,0x58,0xd, +0x12,0x8a,0x7c,0x8, 0x8, 0x12,0x8b,0xe, 0x60,0x3, 0x12,0x8a,0x95,0x12,0x8b,0xe, +0xa, 0xeb,0x4d,0xee,0x68,0x3b,0x6d,0xee,0x9d,0xef,0xbe,0xe7,0x7, 0xfe,0x18,0x6, +0xbe,0xe7,0x7, 0xfc,0x8, 0x2b,0x12,0x8a,0x7c,0x8, 0x26,0x7e,0x37,0x28,0x8e,0x12, +0x21,0x0, 0xbe,0x37,0x28,0x8a,0x8, 0x19,0x12,0x8a,0x74,0x28,0x14,0x7e,0x83,0x28, +0x85,0xbe,0x80,0x1, 0x28,0xb, 0x7e,0xc7,0x7, 0xfa,0xbd,0xcf,0x58,0x3, 0x12,0x8a, +0x95,0x12,0xad,0x5, 0x40,0x5, 0xe4,0x7a,0xb3,0x28,0xa8,0x12,0xc0,0xf7,0x68,0x6, +0x7e,0xb3,0x39,0xb, 0x60,0x7, 0xe4,0x7a,0xb3,0x28,0xad,0x80,0x7d,0x12,0x8a,0x74, +0x28,0x5, 0xe4,0x7a,0xb3,0x28,0xad,0x30,0x10,0x5, 0xe4,0x7a,0xb3,0x28,0xad,0x12, +0xad,0x43,0x50,0xd, 0x74,0x1, 0x7a,0xb3,0x28,0xad,0x12,0x8a,0xa6,0x7c,0x9b,0x80, +0x1a,0x7e,0xb3,0x26,0x84,0x70,0x14,0x7e,0xb3,0x26,0x85,0x70,0xe, 0x12,0x8a,0x74, +0x28,0x9, 0x7e,0x90,0x3, 0x74,0x1, 0x7a,0xb3,0x28,0xad,0x7e,0xc7,0x7, 0xfa,0xbe, +0xc4,0x5, 0xdc,0x8, 0x17,0x12,0x8a,0x74,0x28,0x12,0x6d,0xcc,0x9d,0xcd,0xbe,0xc7, +0x28,0x8e,0x58,0x8, 0x12,0x8a,0x87,0xe4,0x7a,0xb3,0x28,0xad,0xa, 0x29,0x7e,0x14, +0x61,0xc0,0x12,0x64,0xd3,0xad,0x32,0x7a,0x37,0x28,0xa1,0xa, 0x29,0x7e,0x14,0x61, +0xc2,0x12,0x64,0xd3,0xad,0x32,0x7a,0x37,0x28,0xa3,0x12,0x0, 0x66,0x50,0xd, 0xe4, +0x7a,0xb3,0x28,0xad,0x12,0x8f,0xe3,0x28,0x3, 0x12,0x8a,0x87,0x7e,0xc7,0x28,0x8a, +0xbd,0xcd,0x8, 0x19,0x12,0x9b,0xf, 0x6e,0x34,0xff,0xff,0xb, 0x34,0xbe,0x37,0x28, +0x8e,0x58,0xa, 0x12,0x0, 0x66,0x50,0x5, 0xe4,0x7a,0xb3,0x28,0xad,0x12,0x8b,0x8e, +0xb4,0x1, 0x5, 0xe4,0x7a,0xb3,0x28,0xad,0x7e,0xb3,0x28,0xac,0xb4,0x1, 0x9, 0xe4, +0x7a,0xb3,0x28,0x84,0x7a,0xb3,0x2a,0x2, 0x12,0xac,0x6d,0x7e,0xb3,0x2f,0xaa,0xbe, +0xb0,0x0, 0x28,0x1f,0x14,0x7a,0xb3,0x2f,0xaa,0x70,0x18,0xe4,0x7a,0xb3,0x28,0xad, +0x12,0x8c,0x7f,0x7a,0xb3,0x16,0x91,0x7a,0xb3,0x16,0x90,0x7a,0xb3,0x28,0x84,0x7a, +0xb3,0x26,0x83,0x22,0x7e,0x83,0x28,0x84,0xbe,0x80,0x0, 0x22,0x6d,0xee,0x9e,0xe7, +0x2a,0x5a,0xbe,0xe7,0x28,0x8e,0x22,0xe4,0x7a,0xb3,0x2f,0xaa,0x7a,0xb3,0x28,0xac, +0x74,0x2, 0x2, 0x29,0xfa,0x74,0x2, 0x7a,0xb3,0x2f,0xaa,0xe4,0x7a,0xb3,0x2f,0xa9, +0x12,0x8c,0x7f,0x2, 0x29,0xfa,0x7e,0xa0,0x1, 0x7e,0x47,0x7, 0xf8,0x12,0x8c,0x87, +0xb, 0x1a,0x0, 0x7e,0x34,0xff,0xfa,0xad,0x30,0x7e,0x14,0x0, 0x2, 0x12,0x8b,0x6, +0x8, 0x12,0x7e,0xb3,0x28,0xac,0x60,0x7, 0xe4,0x7a,0xb3,0x28,0xad,0x80,0x32,0x7e, +0xa0,0x5, 0x80,0x2d,0x7e,0x34,0xff,0xfb,0x12,0x8b,0x4, 0x8, 0x5, 0x7e,0xa0,0x4, +0x80,0x1f,0x7e,0x34,0xff,0xfc,0x12,0x8b,0x4, 0x8, 0x5, 0x7e,0xa0,0x3, 0x80,0x11, +0x7e,0x34,0xff,0xfd,0x12,0x8b,0x4, 0x8, 0x5, 0x7e,0xa0,0x2, 0x80,0x3, 0x7e,0xa0, +0x1, 0x7c,0xba,0x22,0xad,0x30,0x7d,0x21,0x12,0x1e,0xb9,0xbd,0x34,0x22,0x6c,0x66, +0x90,0x60,0xa7,0xe4,0x93,0xbe,0xb0,0x0, 0x28,0x71,0x90,0x60,0xaa,0xe4,0x93,0x70, +0x6a,0x7e,0xb3,0x28,0xa8,0xb4,0x1, 0x63,0x7e,0x73,0x26,0xf2,0xbe,0x70,0x0, 0x28, +0x5a,0x6c,0x33,0x80,0x4e,0xa, 0x23,0x9, 0x72,0x26,0xe6,0x7e,0xb3,0x2a,0x6e,0x14, +0xbc,0x7b,0x78,0x3d,0x6c,0x22,0x80,0x27,0x7c,0xb2,0x7c,0x73,0x12,0x9d,0x8b,0x50, +0x1c,0xa, 0x22,0x7e,0x73,0x2a,0x6e,0xa, 0x7, 0x2d,0x2, 0x3e,0x4, 0x49,0x20,0x4, +0xfc,0x6d,0x0, 0x9e,0x7, 0x2a,0x4f,0xbd,0x20,0x58,0x2, 0xb, 0x60,0xb, 0x20,0x7e, +0x73,0x2a,0x6d,0xbc,0x72,0x38,0xd1,0xbe,0x60,0x0, 0x28,0x3, 0x74,0x1, 0x22,0xe4, +0x22,0xb, 0x30,0x7e,0x73,0x26,0xf2,0xbc,0x73,0x38,0xaa,0x74,0x1, 0x22,0xca,0x3b, +0x12,0xa6,0x4e,0x38,0x2, 0x81,0x55,0x7e,0xc3,0x2f,0xad,0x4c,0xcc,0x78,0x3d,0x7a, +0xb3,0x2f,0xad,0xe4,0x7a,0xb3,0x2f,0xaf,0x6c,0xaa,0x80,0x26,0x12,0x8c,0x60,0x7e, +0x70,0x2, 0xac,0x7a,0x9, 0xd3,0x26,0xfa,0x9, 0xe3,0x26,0xfb,0x7a,0x49,0xd0,0x19, +0xe4,0x0, 0x1, 0x74,0x1, 0x19,0xb4,0x0, 0x8, 0x12,0x8c,0x6a,0x59,0x34,0x0, 0x2, +0xb, 0xa0,0x7e,0xb3,0x28,0x84,0xbc,0xba,0x38,0xd2,0x80,0x7f,0x7c,0xfc,0x6c,0xaa, +0x80,0x35,0x12,0x8c,0x60,0x7e,0x49,0xd0,0x9, 0xe4,0x0, 0x1, 0x9, 0xb4,0x0, 0x8, +0x70,0x4, 0x1b,0xf0,0x80,0x1f,0x12,0x8c,0x6a,0x7d,0x23,0x49,0x34,0x0, 0x2, 0x9d, +0x32,0x12,0x21,0x0, 0x7d,0xf3,0xbe,0xf4,0x0, 0x23,0x8, 0x9, 0x74,0x5, 0x19,0xb4, +0x0, 0x8, 0x75,0x4c,0x1, 0xb, 0xa0,0xbc,0xfa,0x38,0xc7,0x4c,0xff,0x78,0x2, 0x80, +0x26,0x7e,0x73,0x2f,0xaf,0xbe,0x70,0x4, 0x40,0x22,0x6c,0xaa,0x80,0xe, 0x12,0x8c, +0x60,0x9, 0xb4,0x0, 0x8, 0xbe,0xb0,0x5, 0x68,0x6, 0xb, 0xa0,0xbc,0xfa,0x38,0xee, +0xbc,0xfa,0x78,0x3, 0x75,0x4c,0x0, 0x12,0x8c,0x71,0x80,0xf, 0x7c,0xb7,0x4, 0x7a, +0xb3,0x2f,0xaf,0x80,0x6, 0x12,0x8c,0x71,0x75,0x4c,0x0, 0xe5,0x4c,0xda,0x3b,0x22, +0x7e,0x90,0x9, 0xac,0x9a,0x2e,0x44,0x2f,0xb0,0x22,0x7c,0xbd,0x7c,0x7e,0x2, 0x2c, +0x40,0xe4,0x7a,0xb3,0x2f,0xae,0x7a,0xb3,0x2f,0xad,0x7a,0xb3,0x2f,0xaf,0x22,0x74, +0x1, 0x7a,0xb3,0x28,0xac,0xe4,0x22,0x7e,0x34,0x61,0x55,0x7e,0x24,0x0, 0xff,0x22, +0x12,0x8c,0xcd,0x6d,0x33,0x7a,0x37,0x36,0xdd,0x6c,0xaa,0x80,0x5, 0x12,0x8d,0x5e, +0xb, 0xa0,0x12,0x8d,0x8, 0x38,0xf6,0xe4,0x7a,0xb3,0x36,0x72,0x22,0x12,0xb0,0x94, +0x60,0x1a,0x74,0x1, 0x7a,0xb3,0x28,0xad,0x7e,0x37,0x28,0xa1,0x3e,0x34,0x7a,0x37, +0x28,0xa1,0x7e,0x37,0x28,0xa3,0x3e,0x34,0x7a,0x37,0x28,0xa3,0x22,0x7e,0x37,0x38, +0xd2,0x12,0x25,0x3c,0x7a,0x37,0x36,0xdd,0x6c,0xaa,0x80,0x23,0x12,0x8d,0x8, 0x28, +0x26,0xa, 0x4a,0x9, 0x64,0x36,0x76,0xbc,0x6b,0x50,0x12,0x7e,0x50,0x2, 0xac,0x5a, +0x49,0x42,0x38,0xcc,0x7e,0x70,0xc, 0xac,0x67,0x59,0x43,0x36,0x80,0xb, 0xa0,0x7e, +0xb3,0x36,0x73,0xbc,0xba,0x38,0xd5,0x22,0x90,0x61,0xc5,0xe4,0x93,0xbc,0xba,0x22, +0x6c,0xaa,0x80,0x44,0x7e,0x70,0xc, 0xac,0x7a,0x12,0xae,0xa2,0xbe,0x34,0x3, 0xe8, +0x8, 0x5, 0x12,0x8d,0x5e,0x80,0x2f,0x7e,0x50,0xc, 0xac,0x5a,0x49,0x32,0x36,0x84, +0x49,0x12,0x36,0x80,0xbd,0x13,0x28,0xf, 0x7d,0x2, 0x2e,0x4, 0x36,0x84,0x7d,0x13, +0xb, 0x15,0x1b,0x8, 0x10,0x80,0xf, 0xbe,0x34,0x0, 0x2, 0x28,0x9, 0x2e,0x24,0x36, +0x84,0x1b,0x35,0x1b,0x28,0x30,0xb, 0xa0,0x12,0x8d,0x8, 0x38,0xb7,0x22,0x7e,0x50, +0xc, 0xac,0x5a,0x49,0x32,0x36,0x80,0x59,0x32,0x36,0x84,0x22,0x7e,0xb3,0x36,0x66, +0x60,0x6, 0x14,0x7a,0xb3,0x36,0x66,0x22,0x12,0x8c,0xcd,0x90,0x61,0xc5,0xe4,0x93, +0xbe,0xb0,0x4, 0x28,0x3, 0x12,0x8d,0xef,0x7e,0xb3,0x36,0xec,0x70,0xe, 0x7e,0xb3, +0x39,0x12,0xb4,0x1, 0x7, 0xe4,0x12,0x8d,0xb3,0x12,0xc0,0x6b,0x12,0x67,0x1f,0x12, +0x8e,0xa2,0x7e,0xa3,0x36,0xec,0x7a,0xa3,0x39,0x12,0xbe,0xb0,0xff,0x68,0x3, 0x2, +0x8d,0xb3,0x22,0xca,0xf8,0x7c,0xfb,0x74,0x5, 0xac,0xbf,0x12,0xc0,0x99,0x12,0xc0, +0x19,0x12,0x6f,0xff,0x12,0xc0,0x10,0x7a,0xf3,0x0, 0x4f,0x7c,0xbf,0x12,0xb3,0x2a, +0x12,0x6e,0x29,0x74,0x5, 0xac,0xbf,0x9, 0xb5,0x26,0x37,0x12,0xae,0xe1,0x12,0x8d, +0xef,0x12,0x23,0x4, 0xe4,0x7a,0xb3,0x16,0x91,0xda,0xf8,0x22,0x12,0x8f,0xd2,0x7e, +0xb3,0x2b,0xf, 0xca,0x3b,0x7c,0xeb,0x6c,0xff,0x7e,0x34,0x60,0xd6,0x7e,0x24,0x0, +0xff,0xb, 0x1a,0xc0,0x7e,0x73,0x37,0xcd,0xa, 0xb7,0x7e,0xb3,0x2b,0x10,0xf5,0x36, +0x12,0x8f,0xca,0xbe,0xd0,0x4, 0x38,0x5, 0xe4,0x7a,0xb3,0x36,0x72,0xa, 0x3e,0xad, +0x3b,0x7d,0xa3,0x2d,0xac,0x75,0x35,0x0, 0x7e,0xa3,0x36,0x72,0xbc,0xad,0x40,0x2, +0x80,0x19,0xbe,0xa0,0x0, 0x28,0x19,0x74,0x5, 0xa4,0x9, 0x75,0x26,0x33,0xbc,0x7e, +0x78,0xe, 0x7c,0xbd,0x14,0xbe,0xb3,0x36,0x72,0x78,0x5, 0xe4,0x7a,0xb3,0x36,0x72, +0x7e,0xc3,0x36,0x72,0x80,0x41,0x7e,0xb3,0x36,0x72,0x4, 0x7a,0xb3,0x36,0x72,0x7e, +0x90,0x5, 0xac,0x9c,0x9, 0xa4,0x26,0x33,0xbc,0xae,0x68,0x29,0xe5,0x35,0xa, 0xdb, +0x19,0xcd,0x36,0x76,0xa, 0x9a,0xad,0x9b,0x2d,0x9c,0x7e,0xa1,0x35,0x7c,0xba,0x4, +0xf5,0x35,0x7c,0xba,0x7d,0x39,0x7d,0x2a,0x7e,0x31,0x36,0x12,0x10,0x0, 0xb, 0xf0, +0xbe,0xf0,0x3, 0x50,0x6, 0xb, 0xc0,0xbc,0xdc,0x38,0xbb,0x7a,0xf3,0x36,0x73,0xda, +0x3b,0x22,0xca,0xd8,0xca,0x79,0x7e,0xe0,0xff,0x12,0xaf,0x37,0x7e,0xb3,0x36,0x6b, +0xb4,0x1, 0x8, 0x12,0x88,0x22,0xe4,0x7a,0xb3,0x36,0x6b,0x7e,0xb3,0x36,0x6a,0x60, +0x4, 0x74,0xff,0xe1,0xc5,0x7e,0xb3,0x36,0x69,0xb4,0x2, 0x2, 0x80,0x2, 0xe1,0xb9, +0x12,0xc0,0xef,0x38,0xc, 0x12,0x8f,0xf3,0x38,0x7, 0x12,0x8f,0xeb,0x38,0x2, 0xe1, +0xb9,0x12,0x8f,0xca,0xa, 0x3d,0x1b,0x34,0xbe,0x34,0x0, 0x3, 0x48,0x4, 0x74,0x3, +0x80,0x3, 0x7c,0xbd,0x14,0x12,0xae,0x11,0x7c,0xfb,0x7e,0xb3,0x36,0x68,0x4, 0x7a, +0xb3,0x36,0x68,0x90,0x61,0xc5,0xe4,0x93,0x14,0x12,0xae,0x11,0x7c,0xab,0xbe,0xa0, +0xff,0x68,0x2c,0xbe,0xf0,0xff,0x68,0x25,0x7e,0x30,0xc, 0xac,0x3f,0x49,0x21,0x36, +0x7e,0x7e,0xf4,0x61,0xcc,0x7e,0xe4,0x0, 0xff,0xb, 0x7a,0x30,0xbd,0x23,0x28,0xf, +0x12,0xae,0x98,0x3e,0x34,0xbd,0x23,0x28,0x6, 0x7c,0xfa,0x80,0x2, 0x7c,0xfa,0xbe, +0xf0,0xff,0x78,0x11,0xe4,0x7a,0xb3,0x36,0x68,0x7a,0xb3,0x36,0x69,0x7a,0xb3,0x36, +0x75,0x74,0xff,0x80,0x70,0x90,0x61,0xd4,0xe4,0x93,0xbe,0xb3,0x36,0x68,0x50,0x59, +0x74,0xc, 0xac,0xbf,0x49,0x25,0x36,0x7e,0x7e,0x14,0x61,0xcc,0x12,0x64,0xd3,0xbd, +0x23,0x50,0x3d,0x7e,0x34,0x61,0xd0,0x12,0x23,0x9e,0xbe,0x37,0x36,0x64,0x40,0xd, +0x7e,0x34,0x61,0xd2,0x12,0x23,0x9e,0xbe,0x37,0x36,0x6f,0x50,0x23,0x74,0x5, 0xac, +0xbf,0x9, 0x75,0x26,0x33,0xbe,0x73,0x2b,0xf, 0x68,0x15,0x7c,0xef,0xbe,0xe0,0x4, +0x50,0x8, 0x12,0x87,0x52,0xbe,0xb0,0x4, 0x40,0x6, 0x74,0x1, 0x7a,0xb3,0x36,0x6b, +0xe4,0x7a,0xb3,0x36,0x75,0x7a,0xb3,0x36,0x69,0xbe,0xe0,0xff,0x68,0x5, 0xe4,0x7a, +0xb3,0x36,0x68,0x7c,0xbe,0xda,0x79,0xda,0xd8,0x22,0x90,0x61,0xc5,0xe4,0x93,0x7c, +0xdb,0x22,0x12,0xae,0xaf,0x74,0x1, 0x7a,0xb3,0x36,0x66,0x22,0x7e,0x24,0x0, 0x2, +0x2, 0x1e,0xb9,0x7e,0x73,0x28,0x84,0xbe,0x70,0x0, 0x22,0x7e,0x73,0x26,0xf5,0xbe, +0x70,0x0, 0x22,0x7e,0x73,0x26,0xf4,0xbe,0x70,0x0, 0x22,0xca,0xf8,0x7e,0xf3,0x2a, +0x70,0x7a,0x37,0x1f,0x3a,0x7e,0x34,0x15,0x9e,0x7a,0x37,0x1f,0x3c,0xe4,0x7a,0xb3, +0x1f,0x34,0x7a,0xb3,0x1f,0x35,0x7e,0x73,0x2a,0x6f,0x7a,0x73,0x1f,0x36,0x7a,0xf3, +0x1f,0x37,0x7a,0xb3,0x1f,0x38,0x7a,0xb3,0x1f,0x39,0x7e,0x8, 0x1f,0x34,0x12,0x90, +0x50,0x6d,0x22,0x7d,0x3, 0x6d,0x11,0x7e,0x37,0x15,0xa0,0x2f,0x10,0x7e,0x33,0x1f, +0x36,0x6d,0x0, 0x12,0x1f,0x7, 0xa, 0x1f,0x6d,0x0, 0x12,0x1f,0x7, 0xda,0xf8,0x22, +0x12,0xc, 0x29,0x7e,0x37,0x15,0x9e,0x22,0x7a,0x37,0x1f,0x38,0x7e,0x34,0x15,0xa8, +0x7a,0x37,0x1f,0x3c,0x7e,0x34,0x15,0x9e,0x7a,0x37,0x1f,0x3a,0x7e,0x73,0x2a,0x6f, +0x7a,0x73,0x1f,0x35,0x7e,0x73,0x2a,0x70,0x7a,0x73,0x1f,0x34,0x7e,0x37,0x2a,0x5c, +0x7a,0x37,0x1f,0x3e,0x7e,0x37,0x2a,0x5e,0x7a,0x37,0x1f,0x40,0x7e,0x37,0x2a,0x60, +0x7a,0x37,0x1f,0x42,0x74,0x1, 0x7a,0xb3,0x1f,0x36,0x7a,0xb3,0x1f,0x37,0x7e,0x8, +0x1f,0x34,0x7e,0x18,0x1f,0x44,0x12,0x8, 0x0, 0x7e,0x37,0x1f,0x4e,0x7e,0x27,0x1f, +0x4a,0xbd,0x23,0x28,0x2, 0x7d,0x32,0x22,0x74,0xc8,0x7a,0xb3,0x39,0x6, 0xc2,0x17, +0x80,0xa, 0x12,0x45,0xd6,0x30,0x17,0x4, 0x75,0xe9,0xff,0x22,0x12,0x47,0xff,0x68, +0xf1,0x22,0x74,0x1, 0x12,0x90,0xf1,0x20,0x17,0x6, 0x12,0x46,0x4e,0x12,0x90,0xfa, +0x7e,0xb3,0x34,0x3a,0xb4,0x1, 0x6, 0x12,0x90,0xb8,0x12,0x90,0xfa,0xe4,0x2, 0x90, +0xf1,0xbe,0xb0,0x8, 0x50,0x3, 0x12,0x90,0xff,0x22,0xd2,0x4, 0x2, 0x45,0x5a,0xa, +0x5b,0x2e,0x54,0x0, 0x8, 0xf5,0xcc,0x22,0x12,0x47,0xff,0x68,0xfb,0x20,0x93,0xfd, +0x22,0x7e,0x34,0x61,0x59,0x2, 0x23,0x9e,0x7e,0xb3,0x37,0x6, 0x70,0x2e,0x7e,0x73, +0x36,0xe9,0xbe,0x70,0x10,0x40,0x2, 0x6c,0x77,0x7e,0xb3,0x37,0x31,0xb4,0x1, 0x3, +0x7e,0x70,0x6, 0xa, 0x37,0x2e,0x34,0xf, 0xf0,0x12,0x91,0x6d,0x7c,0xab,0xe5,0x4e, +0xa, 0x3b,0x2e,0x37,0x38,0x83,0x7a,0x37,0x38,0x83,0x80,0xc, 0x7e,0xa3,0x36,0xea, +0xbe,0xa0,0x7f,0x28,0x3, 0x7e,0xa0,0x7f,0x7c,0xba,0x2, 0x91,0x5d,0x75,0x4e,0x0, +0x7a,0xb3,0x39,0x6, 0xc2,0x17,0x22,0x2d,0x32,0x2e,0x34,0x20,0xf0,0x7a,0x71,0x82, +0x7a,0x61,0x83,0xe4,0x93,0x22,0x7e,0xb3,0x38,0x86,0x70,0x4, 0x74,0x1, 0x80,0x1, +0xe4,0x7a,0xb3,0x38,0x86,0x22,0x7f,0x20,0xc2,0x4, 0x7e,0x2b,0x60,0x29,0x72,0x0, +0x2, 0x9c,0x76,0x1a,0x37,0x12,0x21,0x0, 0x7c,0x27,0x29,0x72,0x0, 0x1, 0x29,0x32, +0x0, 0x3, 0x9c,0x37,0x1a,0x33,0x12,0x21,0x0, 0x7c,0x37,0x1a,0x23,0x1a,0x32,0x9d, +0x32,0x12,0x21,0x0, 0x7c,0x67,0x7c,0x72,0xbc,0x32,0x58,0x2, 0x7c,0x73,0xbe,0x60, +0x5, 0x18,0x5, 0xbe,0x70,0x6, 0x58,0x8, 0x7e,0x37,0x37,0xf3,0x4d,0x33,0x68,0x2, +0xd2,0x4, 0xa2,0x4, 0x22,0x7c,0xbd,0x7c,0x7e,0x7f,0x4, 0xca,0x3b,0x7f,0x70,0x7c, +0xe7,0x7c,0xdb,0x7e,0xc0,0x4, 0x7e,0xb3,0x2a,0x6d,0xf5,0x28,0x7e,0xb3,0x2a,0x6e, +0xf5,0x27,0x7e,0x34,0x62,0xa, 0x12,0x87,0xbc,0x6c,0xff,0x12,0x2f,0xff,0x7f,0x51, +0xe5,0x28,0xa, 0x3b,0x1b,0x34,0xa, 0xcd,0xbd,0xc3,0x58,0x14,0xe5,0x27,0xa, 0x3b, +0x1b,0x34,0xa, 0xce,0xbd,0xc3,0x58,0x8, 0x4c,0xee,0x68,0x4, 0x4c,0xdd,0x78,0x3, +0x4e,0xf0,0x10,0xb, 0x5a,0x30,0x7e,0x14,0x62,0xa, 0x12,0x87,0xee,0x8, 0xc, 0x7e, +0x27,0x28,0x8a,0xbe,0x24,0x3, 0x20,0x8, 0x2, 0x61,0x2a,0xb, 0xa, 0xc0,0x1e,0xc4, +0xbd,0x3c,0x8, 0xc, 0x7e,0xc7,0x28,0x8a,0xbe,0xc4,0x3, 0x20,0x58,0x2, 0x61,0x2a, +0x6c,0xaa,0x7c,0x8d,0x80,0x1c,0x7c,0x9e,0xbe,0x80,0x0, 0x48,0x11,0x7e,0xb3,0x2a, +0x6d,0xbc,0xb8,0x8, 0x9, 0x12,0x93,0x61,0x58,0x14,0xb, 0xa0,0x80,0x2, 0xb, 0xa0, +0x1b,0x80,0x1a,0x2c,0x1a,0x3d,0x9d,0x32,0x1a,0xc8,0xbd,0xc3,0x18,0xd8,0xbc,0xca, +0x18,0x5, 0x4e,0xf0,0x1, 0x61,0x2a,0x6c,0xaa,0x7c,0x8d,0x80,0x1c,0x7c,0x9e,0xbe, +0x80,0x0, 0x48,0x11,0x7e,0xb3,0x2a,0x6d,0xbc,0xb8,0x8, 0x9, 0x12,0x93,0x61,0x58, +0x14,0xb, 0xa0,0x80,0x2, 0xb, 0xa0,0xb, 0x80,0x1a,0x2c,0x1a,0x3d,0x2d,0x32,0x1a, +0xc8,0xbd,0xc3,0x48,0xd8,0xbc,0xca,0x18,0x5, 0x4e,0xf0,0x2, 0x80,0x6c,0x6c,0xaa, +0x7c,0x9e,0x80,0x1c,0x7c,0x8d,0xbe,0x90,0x0, 0x48,0x11,0x7e,0xb3,0x2a,0x6e,0xbc, +0xb9,0x8, 0x9, 0x12,0x93,0x61,0x58,0x14,0xb, 0xa0,0x80,0x2, 0xb, 0xa0,0x1b,0x90, +0x1a,0x2c,0x1a,0x3e,0x9d,0x32,0x1a,0xc9,0xbd,0xc3,0x18,0xd8,0xbc,0xca,0x18,0x5, +0x4e,0xf0,0x4, 0x80,0x35,0x6c,0xaa,0x7c,0x9e,0x80,0x1c,0x7c,0x8d,0xbe,0x90,0x0, +0x48,0x11,0x7e,0xb3,0x2a,0x6e,0xbc,0xb9,0x8, 0x9, 0x12,0x93,0x61,0x58,0x14,0xb, +0xa0,0x80,0x2, 0xb, 0xa0,0xb, 0x90,0x1a,0x2c,0x1a,0x3e,0x2d,0x32,0x1a,0xc9,0xbd, +0xc3,0x48,0xd8,0xbc,0xca,0x18,0x3, 0x4e,0xf0,0x8, 0x4c,0xff,0x68,0x2e,0x7e,0x7b, +0xb0,0xbc,0xbd,0x40,0x3, 0x7a,0x7b,0xd0,0x29,0xb7,0x0, 0x2, 0xbc,0xbd,0x38,0x4, +0x39,0xd7,0x0, 0x2, 0x29,0xb7,0x0, 0x1, 0xbc,0xbe,0x40,0x4, 0x39,0xe7,0x0, 0x1, +0x29,0xb7,0x0, 0x3, 0xbc,0xbe,0x38,0x4, 0x39,0xe7,0x0, 0x3, 0x7c,0xbf,0xda,0x3b, +0x22,0x7c,0xb8,0x7c,0x79,0x12,0x2c,0x40,0xbd,0x3d,0x22,0x7f,0x60,0x7e,0x6b,0xa0, +0xbe,0xa0,0xa, 0x50,0x1b,0x7e,0x14,0x0, 0x6, 0xca,0x19,0x74,0x6, 0xa4,0x7f,0x6, +0x2d,0x15,0xb, 0x14,0x12,0x20,0xb9,0x1b,0xfd,0x7e,0x6b,0xb0,0x4, 0x7a,0x6b,0xb0, +0x22,0x6c,0xaa,0x7e,0x63,0x2a,0x6e,0x7e,0x73,0x2a,0x6d,0xac,0x76,0x7d,0x13,0x1e, +0x14,0x7e,0x27,0x28,0x88,0x2e,0x27,0x28,0x86,0xbd,0x21,0x38,0xa, 0x1e,0x34,0x1e, +0x34,0xbe,0x37,0x28,0x86,0x50,0x29,0x90,0x60,0x51,0xe4,0x93,0x1e,0xb0,0xa, 0x2b, +0x7e,0xb3,0x26,0xf7,0xa, 0x3b,0xbd,0x32,0x8, 0x16,0x90,0x60,0x50,0xe4,0x93,0x1e, +0xb0,0xa, 0x2b,0x7e,0xb3,0x26,0xf6,0xa, 0x3b,0xbd,0x32,0x8, 0x3, 0x7e,0xa0,0x1, +0x7c,0xba,0x22,0xca,0x3b,0x6d,0x11,0x7e,0xe3,0x2a,0x2, 0x4c,0xee,0x78,0x23,0x6c, +0xff,0x80,0x1a,0x74,0x2, 0xac,0xbf,0x12,0x95,0x90,0x7e,0x70,0x9, 0xac,0x7f,0x19, +0xa3,0x34,0xca,0x74,0x2, 0xa, 0x3f,0x19,0xb3,0x35,0x34,0xb, 0xf0,0x12,0x5e,0x2d, +0x38,0xe1,0x12,0x97,0xc0,0x7e,0x24,0x0, 0x14,0xad,0x32,0x7d,0x43,0x2e,0x44,0x3, +0x20,0x6c,0xff,0xa1,0x69,0x74,0x9, 0xac,0xbf,0x9, 0xd5,0x28,0xb2,0x5e,0xd0,0xf, +0x12,0x95,0xa1,0x38,0x2, 0xa1,0x67,0xa, 0x1d,0x9, 0xb1,0x29,0xbc,0xbe,0xb0,0x1, +0x78,0x2, 0xa1,0x4d,0x75,0x24,0x0, 0xa1,0x3f,0x7e,0xa1,0x24,0x74,0x9, 0xa4,0x9, +0xc5,0x34,0xca,0xbc,0xcd,0x68,0x2, 0xa1,0x3d,0x49,0x25,0x34,0xc8,0x74,0x9, 0xac, +0xbf,0x49,0x35,0x28,0xb0,0x9d,0x32,0x12,0x21,0x0, 0x7d,0x3, 0x7e,0xa1,0x24,0x74, +0x9, 0xa4,0x49,0x25,0x34,0xc6,0x74,0x9, 0xac,0xbf,0x12,0x96,0x1b,0x2d,0x3, 0xa, +0x1c,0x9, 0xa1,0x35,0x34,0xbe,0xa0,0x0, 0x28,0x17,0x7e,0x30,0x2, 0xac,0x3c,0x59, +0x1, 0x35,0x20,0xa, 0x1c,0x2e,0x14,0x35,0x34,0x7c,0xba,0x14,0x7a,0x19,0xb0,0xa1, +0x67,0x74,0x2, 0xac,0xbc,0x49,0x15,0x35,0x20,0xbe,0x14,0x0, 0x32,0x28,0x8, 0x7d, +0x31,0x2d,0x34,0xbd,0x30,0x40,0x20,0xbe,0x14,0x0, 0x32,0x28,0x8, 0xbe,0x4, 0x0, +0x32,0x28,0x2, 0x80,0x72,0x7d,0x31,0x2e,0x34,0x0, 0x32,0xbd,0x30,0x50,0x8, 0xbe, +0x14,0x0, 0x32,0x28,0x2, 0x80,0x60,0xbe,0x4, 0x0, 0xa0,0x28,0x56,0xa, 0x1d,0x9, +0xb1,0x29,0xbc,0x70,0x4, 0x74,0x3, 0x80,0x2, 0x74,0x1, 0xa, 0x1d,0x19,0xb1,0x29, +0xbc,0x74,0x3, 0xa, 0x1c,0x19,0xb1,0x29,0xc6,0xbe,0xe0,0x0, 0x28,0x69,0x1b,0xe0, +0x7e,0x70,0x9, 0xac,0x7f,0x2e,0x34,0x28,0xae,0x7e,0x14,0x1f,0x34,0x74,0x9, 0x12, +0x1f,0x8c,0x7e,0x70,0x9, 0xac,0x7e,0x12,0x97,0xae,0xac,0x3f,0x12,0x95,0x98,0x7e, +0x34,0x1f,0x34,0x7e,0x30,0x9, 0xac,0x3e,0x12,0x95,0x98,0x1b,0xf0,0x74,0x2, 0xac, +0xbc,0x80,0x4, 0x74,0x2, 0xac,0xbc,0x59,0x5, 0x35,0x20,0x80,0x2a,0x5, 0x24,0x90, +0x60,0x99,0xe4,0x93,0xbe,0xb1,0x24,0x28,0x2, 0x81,0x49,0x80,0x1a,0x6d,0x11,0x74, +0x2, 0xac,0xbd,0x12,0x95,0x90,0x7e,0x30,0x9, 0xac,0x3d,0x19,0xa1,0x34,0xca,0x74, +0x2, 0xa, 0x1d,0x19,0xb1,0x35,0x34,0xb, 0xf0,0xbc,0xef,0x28,0x2, 0x81,0x25,0xe4, +0x7a,0xb3,0x16,0x92,0x90,0x60,0x99,0x12,0x5f,0xc6,0xca,0x59,0x7e,0x18,0x28,0xae, +0x7e,0x8, 0x34,0xc6,0x12,0x20,0xb9,0x1b,0xfd,0x7a,0xe3,0x2a,0x2, 0xda,0x3b,0x22, +0x59,0x15,0x35,0x20,0x7e,0xa0,0xff,0x22,0x2e,0x14,0x28,0xae,0x74,0x9, 0x2, 0x1f, +0x8c,0x90,0x60,0x99,0xe4,0x93,0xbc,0xbd,0x22,0xca,0x3b,0x7c,0xfb,0x6c,0xee,0x80, +0x63,0x6c,0xdd,0x80,0x16,0x74,0x9, 0xac,0xbd,0x9, 0x65,0x29,0x66,0x74,0x9, 0xac, +0xbe,0x9, 0x75,0x28,0xb2,0xbc,0x67,0x68,0x7, 0xb, 0xd0,0x12,0x95,0xa1,0x38,0xe5, +0x12,0x95,0xa1,0x28,0x43,0x74,0x9, 0xac,0xbd,0x9, 0xc5,0x29,0x66,0x12,0x81,0xb3, +0x74,0x9, 0xac,0xbd,0x12,0x87,0xe5,0x12,0x96,0x1b,0x2d,0x31,0x7a,0x35,0x24,0xa, +0x3c,0x9, 0xb3,0x29,0xbc,0xb4,0x1, 0xe, 0x6d,0x33,0x74,0x2, 0xac,0xbc,0x59,0x35, +0x34,0x8b,0x59,0x35,0x34,0xb0,0x7e,0x35,0x24,0x7c,0xbd,0x7c,0x5e,0x7c,0x4c,0x12, +0x87,0xb3,0xb, 0xe0,0xbc,0xfe,0x38,0x99,0xda,0x3b,0x22,0x49,0x35,0x28,0xae,0x9d, +0x32,0x2, 0x21,0x0, 0x7e,0xb3,0x37,0x31,0x70,0x3, 0x12,0x93,0xe3,0x2, 0x96,0x30, +0xca,0x79,0x7e,0xf3,0x2a,0x2, 0x7e,0xe3,0x2a,0x3, 0x7c,0xbf,0x7c,0x7e,0x12,0x96, +0x7c,0x7c,0xbf,0x12,0x97,0x10,0x4c,0xee,0x78,0x14,0x12,0x5f,0xc2,0xca,0x59,0x7e, +0x18,0x28,0xae,0x7e,0x8, 0x29,0x62,0x12,0x20,0xb9,0x1b,0xfd,0x80,0xb, 0x7e,0xb3, +0x2a,0x9, 0x70,0x5, 0x7c,0xbf,0x12,0x95,0xa9,0x7c,0xbf,0x12,0x9f,0x90,0xbe,0xf0, +0x0, 0x28,0x6, 0x74,0x1, 0x7a,0xb3,0x2a,0xb, 0xda,0x79,0x22,0x7c,0x67,0x7c,0x7b, +0xa5,0xbf,0x0, 0x17,0xbe,0x60,0x0, 0x28,0xf, 0x74,0x1, 0x7a,0xb3,0x2a,0x7, 0xe4, +0x7a,0xb3,0x2a,0x9, 0x7a,0xb3,0x2a,0xa, 0x2, 0x96,0xeb,0xa5,0xbe,0x0, 0x1d,0x6c, +0xaa,0x80,0xe, 0x7e,0x60,0xff,0x7e,0x50,0x9, 0xac,0x5a,0x19,0x62,0x29,0x66,0xb, +0xa0,0x12,0x5e,0x25,0x38,0xed,0x74,0x1, 0x7a,0xb3,0x2a,0x6, 0x6c,0xaa,0x80,0x26, +0x7e,0x30,0x9, 0xac,0x3a,0x2e,0x14,0x28,0xae,0xb, 0x18,0x20,0x12,0x47,0x81,0x1b, +0x18,0x20,0x7e,0x30,0x9, 0xac,0x3a,0x2e,0x14,0x28,0xb0,0xb, 0x18,0x20,0x12,0x47, +0x81,0x1b,0x18,0x20,0xb, 0xa0,0xbc,0x7a,0x38,0xd6,0x22,0x12,0x97,0x4, 0x7e,0x8, +0x34,0xb0,0xe4,0x12,0x20,0xde,0x90,0x60,0x99,0x12,0x97,0x8, 0x7e,0x8, 0x34,0x8b, +0xe4,0x2, 0x20,0xde,0x90,0x60,0x99,0xe4,0x93,0x7c,0x7b,0x74,0x2, 0xac,0x7b,0x22, +0xca,0xd8,0xca,0x79,0x7c,0xdb,0x90,0x60,0x99,0xe4,0x93,0x7c,0xfb,0x6c,0x11,0x80, +0x21,0x7e,0x0, 0xff,0x74,0x9, 0xac,0xb1,0x19,0x5, 0x1f,0x38,0x7e,0x34,0x7f,0xff, +0x74,0x9, 0xac,0xb1,0x59,0x35,0x1f,0x34,0x74,0x9, 0xac,0xb1,0x59,0x35,0x1f,0x36, +0xb, 0x10,0xbc,0xf1,0x38,0xdb,0xe4,0x6c,0x77,0x7c,0x6d,0x12,0x97,0xb6,0x7c,0x7d, +0x7c,0x6f,0x12,0x97,0xb6,0x6c,0x0, 0x80,0x39,0x6c,0xee,0x80,0x16,0x74,0x9, 0xac, +0xbe,0x9, 0x65,0x1f,0x38,0x74,0x9, 0xac,0xb0,0x9, 0x75,0x28,0xb2,0xbc,0x76,0x68, +0x6, 0xb, 0xe0,0xbc,0x1e,0x38,0xe6,0xbc,0x1e,0x78,0x15,0x7e,0x70,0x9, 0xac,0x70, +0x12,0x97,0xae,0xac,0x31,0x2e,0x14,0x1f,0x34,0x74,0x9, 0x12,0x1f,0x8c,0xb, 0x10, +0xb, 0x0, 0xbc,0xf0,0x38,0xc3,0x74,0x9, 0xac,0xbf,0xca,0x59,0x7e,0x18,0x1f,0x34, +0x7e,0x8, 0x29,0x62,0x12,0x20,0xb9,0x1b,0xfd,0xda,0x79,0xda,0xd8,0x22,0x2e,0x34, +0x28,0xae,0x7e,0x30,0x9, 0x22,0x7e,0x8, 0x1f,0x34,0x12,0x9e,0x37,0x7c,0x1b,0x22, +0x7e,0x73,0x2a,0x3, 0xbe,0x73,0x2a,0x2, 0x78,0x17,0x7e,0x73,0x2a,0x2, 0xbe,0x70, +0x1, 0x40,0xe, 0x7e,0x37,0x34,0x9f,0xbe,0x34,0x0, 0x14,0x38,0xe, 0xb, 0x34,0x80, +0x6, 0x7e,0x37,0x34,0x9f,0x1e,0x34,0x7a,0x37,0x34,0x9f,0x7e,0xb3,0x2a,0x2, 0x70, +0x6, 0x6d,0x33,0x7a,0x37,0x34,0x9f,0x7e,0x37,0x34,0x9f,0x22,0xca,0xf8,0x7c,0xfb, +0x6d,0xdd,0x7c,0xbf,0x12,0x98,0xea,0x7d,0xe3,0x7c,0xbf,0x12,0x37,0x6f,0x7d,0xf3, +0x74,0x2, 0xac,0xbf,0x9, 0x95,0x26,0xfb,0x7c,0xbf,0x12,0x9a,0xed,0x40,0x2, 0x1, +0xd4,0x74,0x2, 0xac,0xbf,0x9, 0xa5,0x26,0xfa,0xbe,0xa0,0x0, 0x28,0x9, 0xa, 0x3a, +0x1b,0x34,0x12,0x98,0xd8,0x7d,0xd3,0x12,0x98,0xdf,0xbd,0xc3,0x58,0xb, 0xa, 0xca, +0xb, 0xc4,0x7d,0x3c,0x12,0x98,0xd8,0x2d,0xd3,0x12,0x9b,0xf, 0x7d,0xd3,0xbe,0xa0, +0x0, 0x28,0x56,0x12,0x98,0xdf,0xbd,0xc3,0x58,0x4f,0xbe,0x90,0x0, 0x28,0x4a,0xbe, +0x90,0x0, 0x28,0x45,0xbe,0xf4,0x0, 0xc8,0x8, 0x3f,0x7d,0x3d,0x3e,0x34,0x3e,0x34, +0xbd,0x3f,0x8, 0x35,0x7e,0x70,0x2, 0xac,0x79,0x49,0x33,0x4, 0xfc,0xbe,0x34,0x1, +0x2c,0x8, 0x26,0xa, 0x2a,0x7e,0xb3,0x2a,0x74,0x12,0x9b,0x18,0xbe,0x34,0x1, 0x90, +0x8, 0x17,0xbe,0xf4,0x1, 0x5e,0x58,0xd, 0x7e,0x34,0x0, 0x3, 0xad,0x3e,0xbd,0x3f, +0x8, 0x3, 0xe4,0x80,0x30,0x74,0x1, 0x80,0x2c,0x90,0x60,0xab,0xe4,0x93,0xbc,0xb9, +0x78,0x22,0x7c,0xba,0x7c,0x79,0x12,0x2c,0x40,0xbe,0x34,0x0, 0x96,0x8, 0x12,0x74, +0x2, 0xac,0xb9,0x49,0x35,0x4, 0xfc,0xbe,0x34,0x0, 0x32,0x8, 0x4, 0x74,0x1, 0x80, +0x4, 0xe4,0x80,0x1, 0xe4,0xda,0xf8,0x22,0x7c,0xb7,0x7c,0x79,0x2, 0x2c,0x40,0x7e, +0xb3,0x2a,0x6f,0xa, 0x3b,0x1b,0x34,0xa, 0xca,0x22,0xca,0x79,0x7c,0x8b,0x6c,0xaa, +0x9f,0x77,0x12,0x9a,0x2a,0x1a,0x79,0x1b,0x74,0x80,0x4c,0x1a,0x38,0x1b,0x34,0x7c, +0xe7,0x80,0x38,0xbc,0x9f,0x78,0x4, 0xbc,0x8e,0x68,0x2e,0xbe,0xf0,0x0, 0x48,0x29, +0x7e,0xb3,0x2a,0x6f,0xa, 0x2b,0x1a,0x3f,0xbd,0x32,0x58,0x1d,0xbe,0xe0,0x0, 0x48, +0x18,0x7e,0xb3,0x2a,0x70,0xa, 0x2b,0x1a,0x3e,0xbd,0x32,0x58,0xc, 0x7c,0xbf,0x7c, +0x7e,0x12,0x2c,0x40,0x12,0x99,0x65,0xb, 0xa0,0xb, 0xe0,0x1a,0x28,0xb, 0x24,0x1a, +0x3e,0xbd,0x32,0x8, 0xbe,0xb, 0xf0,0x1a,0x29,0xb, 0x24,0x1a,0x3f,0xbd,0x32,0x8, +0xaa,0x4c,0xaa,0x78,0x4, 0x6d,0x33,0x80,0x9, 0xa, 0x1a,0x6d,0x0, 0x7f,0x17,0x12, +0x1f,0x58,0xda,0x79,0x22,0x1a,0x26,0x1a,0x24,0x2f,0x71,0x22,0xca,0x79,0x7c,0xa7, +0x7c,0x8b,0x7e,0xb3,0x2a,0x6f,0x7a,0xb3,0x1f,0x34,0x7e,0xb3,0x2a,0x70,0x7a,0xb3, +0x1f,0x35,0x12,0x9a,0x2a,0x9f,0x77,0x1a,0x3a,0x1a,0x79,0x9d,0x73,0x41,0x17,0x7a, +0xf1,0x2d,0xbe,0xf0,0x0, 0x58,0xe, 0x1a,0x3f,0x1a,0x29,0x9d,0x23,0x1a,0x39,0x2d, +0x32,0x7c,0xb7,0xf5,0x2d,0x7e,0xb3,0x1f,0x34,0xbc,0xbf,0x18,0xe, 0x1a,0x39,0x1a, +0x2f,0x9d,0x23,0x1a,0x39,0x9d,0x32,0x7c,0xb7,0xf5,0x2d,0x1a,0x2a,0x1a,0x38,0x9d, +0x32,0x7c,0xb7,0xf5,0x2c,0x80,0x40,0x85,0x2c,0x2e,0xe5,0x2c,0xbe,0xb0,0x0, 0x58, +0x10,0xe5,0x2c,0x1a,0x3b,0x1a,0x28,0x9d,0x23,0x1a,0x38,0x2d,0x32,0x7c,0xb7,0xf5, +0x2e,0x7e,0xb3,0x1f,0x35,0xbe,0xb1,0x2c,0x18,0x10,0x1a,0x38,0xe5,0x2c,0x1a,0x2b, +0x9d,0x23,0x1a,0x38,0x9d,0x32,0x7c,0xb7,0xf5,0x2e,0xe5,0x2d,0x7e,0x71,0x2e,0x12, +0x2c,0x40,0x12,0x99,0x65,0x5, 0x2c,0x1a,0x3a,0x1a,0x28,0x2d,0x23,0xe5,0x2c,0x1a, +0x3b,0xbd,0x32,0x8, 0xb2,0xb, 0xf0,0x1a,0x3a,0x1a,0x29,0x2d,0x23,0x1a,0x3f,0xbd, +0x32,0x18,0x2, 0x21,0x8f,0x7f,0x17,0xda,0x79,0x22,0x7e,0x70,0x2, 0xac,0x78,0x9, +0x93,0x26,0xfa,0x9, 0x83,0x26,0xfb,0x22,0xca,0xd8,0xca,0x79,0x7e,0x34,0x62,0x27, +0x12,0x9a,0xe5,0x12,0x9b,0x23,0x50,0x2, 0x41,0xe0,0x7e,0x34,0x62,0x2b,0x12,0x23, +0x9e,0x7a,0x35,0x2a,0x90,0x62,0x26,0xe4,0x93,0x70,0x2, 0x41,0xe0,0x7e,0xb3,0x28, +0xa8,0xb4,0x1, 0x7, 0x7e,0x34,0x62,0x29,0x12,0x9a,0xe5,0x7e,0x37,0x28,0x8a,0xbe, +0x34,0x4, 0x4c,0x8, 0x6b,0x6c,0xdd,0x80,0x5f,0xc2,0x3, 0x7c,0xbd,0x12,0x37,0x6f, +0x7a,0x35,0x26,0x7c,0xbd,0x7e,0x70,0x1, 0x12,0x99,0x6c,0x7a,0x35,0x24,0x9e,0x35, +0x26,0x7a,0x35,0x24,0x7e,0x35,0x26,0x3e,0x34,0x3e,0x34,0x12,0x8f,0xdc,0x7a,0x35, +0x28,0xbe,0x75,0x28,0x58,0x3, 0x7a,0x75,0x28,0x7e,0x35,0x28,0xbe,0x35,0x24,0x8, +0xa, 0x7e,0x35,0x2a,0xbe,0x35,0x26,0x8, 0x2, 0xd2,0x3, 0x7c,0xbd,0x12,0x9a,0xed, +0x50,0x2, 0xc2,0x3, 0x30,0x3, 0xf, 0x7c,0xbd,0x6c,0x77,0x12,0x51,0x5f,0x7e,0x70, +0x2, 0xac,0x7d,0x12,0x37,0x9f,0xb, 0xd0,0x7e,0x73,0x28,0x84,0xbc,0x7d,0x38,0x99, +0xda,0x79,0xda,0xd8,0x22,0x7e,0x24,0x0, 0xff,0xb, 0x1a,0x70,0x22,0x7c,0x4b,0x74, +0x2, 0xac,0xb4,0x9, 0x55,0x26,0xfa,0x9, 0x65,0x26,0xfb,0x7e,0x73,0x28,0x8c,0xbc, +0x75,0x78,0xa, 0x7e,0x73,0x28,0x8d,0xbc,0x76,0x78,0x2, 0xd3,0x22,0xc3,0x22,0x7e, +0x24,0x0, 0x2, 0x7d,0x3d,0x2, 0x1e,0xb9,0xa, 0x3b,0x2d,0x32,0x3e,0x34,0x49,0x33, +0x4, 0xfc,0x22,0x6c,0x99,0x6c,0x88,0x80,0xf, 0x7c,0xb8,0x12,0x37,0x6f,0xbe,0x34, +0x1, 0xf4,0x8, 0x2, 0xb, 0x90,0xb, 0x80,0x7e,0x73,0x28,0x84,0xbc,0x78,0x38,0xe9, +0xbe,0x90,0x1, 0x38,0x2, 0xc3,0x22,0xd3,0x22,0xca,0x3b,0x7e,0x77,0x2a,0x5c,0x12, +0x9d,0xa1,0x7d,0x63,0x3e,0x34,0x3e,0x34,0x7e,0xe4,0x0, 0xa, 0x12,0x9b,0xd7,0x7e, +0xb3,0x28,0xa8,0x60,0xf, 0x7e,0x37,0x35,0xe5,0xbd,0x36,0x48,0x7, 0x3e,0x34,0x3e, +0x34,0x12,0x9b,0xd7,0xbe,0x64,0x4, 0x4c,0x8, 0xf, 0x12,0x9b,0x23,0x50,0x6, 0x7e, +0xb3,0x28,0xa8,0x60,0x4, 0x74,0xa, 0x80,0x13,0x7e,0xb3,0x28,0xa8,0x60,0xc, 0x7e, +0xb3,0x35,0xe3,0xbe,0xb0,0x0, 0x28,0x8, 0x14,0x80,0x1, 0xe4,0x7a,0xb3,0x35,0xe3, +0x7e,0xe7,0x2a,0x5c,0x7d,0x3e,0x12,0x45,0xe, 0x7e,0x53,0x35,0xe3,0xbe,0x50,0x0, +0x28,0x12,0xbd,0x3f,0x58,0x4, 0x7d,0xf3,0x80,0x6, 0xbd,0xef,0x8, 0x2, 0x7d,0xfe, +0x7a,0xf7,0x2a,0x5c,0x12,0x9b,0xdf,0x28,0x3, 0x12,0x37,0xc2,0x7a,0x67,0x35,0xe5, +0x7a,0x77,0x2a,0x5c,0xda,0x3b,0x22,0x7d,0x2e,0x12,0x1e,0xb9,0x7d,0xf3,0x22,0x7e, +0x73,0x28,0x84,0xbe,0x70,0x1, 0x22,0xca,0x79,0xc2,0x3, 0x7e,0xf0,0x3, 0x7e,0xe3, +0x2a,0x3, 0x12,0x9b,0xdf,0x28,0x72,0x7c,0xbf,0x12,0x2c,0x47,0x4c,0xee,0x68,0xe, +0x7e,0x63,0x33,0xc0,0xa5,0xbe,0x0, 0xa, 0x7e,0xb3,0x33,0xc1,0x70,0x4, 0xd2,0x3, +0x80,0x2e,0xbe,0xe0,0x1, 0x28,0xb, 0xe5,0x4d,0xbe,0xb0,0x8, 0x28,0x4, 0xd2,0x3, +0x80,0x1e,0xd2,0x3, 0x12,0x9c,0xf6,0x78,0xa, 0xa5,0xbe,0x0, 0x6, 0x6c,0xff,0xc2, +0x3, 0x80,0xd, 0x9e,0x73,0x33,0xc0,0xbc,0x7e,0x78,0x5, 0x7e,0xf0,0x2, 0xc2,0x3, +0x20,0x3, 0x5, 0x7c,0xbf,0x12,0x2c,0x47,0x7e,0xa3,0x33,0xc2,0x7a,0xa3,0x28,0x84, +0x74,0x2, 0xa4,0xca,0x59,0x7e,0x18,0x33,0xc3,0x7e,0x8, 0x26,0xfa,0x12,0x20,0xb9, +0x1b,0xfd,0x12,0x9c,0x6f,0xf5,0x4d,0x80,0x3, 0x75,0x4d,0x64,0xda,0x79,0x22,0x7e, +0x30,0x64,0x7e,0x20,0x64,0x6c,0x11,0x80,0x54,0xa, 0x31,0xb, 0x34,0x7c,0x7, 0x80, +0x42,0x7e,0x70,0x2, 0xac,0x70,0x9, 0xb3,0x26,0xfa,0x12,0x9c,0xee,0x9, 0xb3,0x26, +0xfa,0x12,0x2f,0xd6,0x7c,0x97,0x7e,0x70,0x2, 0xac,0x70,0x9, 0xb3,0x26,0xfb,0x12, +0x9c,0xee,0x9, 0xb3,0x26,0xfb,0x12,0x2f,0xd6,0x7c,0x87,0xbe,0x90,0x0, 0x28,0x6, +0xbc,0x39,0x28,0x2, 0x7c,0x39,0xbe,0x80,0x0, 0x28,0x6, 0xbc,0x28,0x28,0x2, 0x7c, +0x28,0xb, 0x0, 0x7e,0xb3,0x28,0x84,0xbc,0xb0,0x38,0xb6,0xb, 0x10,0x7e,0xb3,0x28, +0x84,0xbc,0xb1,0x38,0xa4,0xa5,0xbb,0x64,0x2, 0x6c,0x33,0xa5,0xba,0x64,0x2, 0x6c, +0x22,0xbc,0x23,0x28,0x4, 0x7c,0xa2,0x80,0x2, 0x7c,0xa3,0x7c,0xba,0x22,0xa, 0x2b, +0x7e,0x70,0x2, 0xac,0x71,0x22,0x7e,0x73,0x28,0x84,0xbc,0x7e,0x22,0xca,0x79,0x6c, +0x88,0x80,0x72,0x74,0x2, 0xac,0xb8,0x9, 0xf5,0x26,0xfa,0x9, 0x75,0x26,0xfb,0x7a, +0x71,0x24,0x7c,0xbf,0x12,0x9d,0x8b,0x50,0x5a,0x6c,0xee,0x80,0x51,0xbc,0xe8,0x68, +0x4b,0x7e,0x70,0x2, 0xac,0x7e,0x12,0x9d,0x80,0xf5,0x26,0x6c,0x99,0x90,0x60,0xaa, +0xe4,0x93,0x70,0x18,0x7e,0xb3,0x2a,0x70,0x14,0xbe,0xb1,0x26,0x78,0xe, 0xa, 0x2f, +0xe5,0x25,0xa, 0x3b,0x12,0x35,0x67,0x18,0x3, 0x7e,0x90,0x1, 0xbe,0x90,0x1, 0x78, +0x1b,0x7c,0xbe,0x12,0x37,0x6f,0x7d,0xf3,0x7c,0xb8,0x12,0x37,0x6f,0xbd,0x3f,0x8, +0x4, 0x7c,0xbe,0x80,0x2, 0x7c,0xb8,0x6c,0x77,0x12,0x51,0x5f,0xb, 0xe0,0x12,0x9c, +0xf6,0x38,0xaa,0xb, 0x80,0x7e,0x73,0x28,0x84,0xbc,0x78,0x38,0x86,0xda,0x79,0x22, +0x9, 0xb3,0x26,0xfa,0xf5,0x25,0x9, 0xb3,0x26,0xfb,0x22,0x7c,0xab,0x90,0x60,0xab, +0xe4,0x93,0xbc,0xb7,0x78,0x9, 0x7c,0xba,0x12,0x31,0x5a,0x50,0x2, 0xd3,0x22,0xc3, +0x22,0xca,0x3b,0x6d,0x44,0x7e,0xf3,0x28,0x84,0x6c,0xee,0x80,0x24,0x7c,0xbe,0x12, +0x2f,0xb7,0x60,0x1b,0x74,0x2, 0xac,0xbe,0x9, 0xd5,0x26,0xfa,0x9, 0xc5,0x26,0xfb, +0x7c,0xbd,0x7c,0x7c,0x12,0x2c,0x40,0x7d,0xf3,0xbd,0x4f,0x58,0x2, 0x7d,0x4f,0xb, +0xe0,0xbc,0xfe,0x38,0xd8,0x7d,0x34,0xda,0x3b,0x22,0x7e,0xb3,0x2a,0x2, 0x70,0x2d, +0x7e,0x73,0x2a,0x3, 0xbe,0x70,0x0, 0x28,0x24,0x7e,0xb3,0x34,0xc5,0x70,0x18,0x12, +0x9e,0x17,0x7e,0x73,0x2a,0x3, 0x7a,0x73,0x2a,0x2, 0x74,0x1, 0x7a,0xb3,0x2a,0x9, +0x7e,0xb3,0x34,0xc5,0x4, 0x80,0x1, 0xe4,0x7a,0xb3,0x34,0xc5,0x22,0xe4,0x7a,0xb3, +0x34,0xc5,0x7a,0xb3,0x2a,0x9, 0x22,0x7e,0x34,0x0, 0x3c,0xca,0x39,0x7e,0x18,0x35, +0xe9,0x7e,0x8, 0x36,0x25,0x12,0x20,0xb9,0x1b,0xfd,0x7e,0x73,0x28,0x94,0x7a,0x73, +0x35,0xe8,0x7a,0x73,0x28,0x93,0x22,0xca,0x3b,0x7c,0x46,0x7c,0xab,0x6c,0x66,0xc1, +0xd2,0x7c,0x57,0xc1,0xca,0x7e,0xf0,0x9, 0xac,0xf6,0x9, 0x87,0x29,0x66,0x7c,0x98, +0x7e,0xd0,0x9, 0xac,0xd5,0x9, 0xb6,0x28,0xb2,0xbc,0xb9,0x78,0x6b,0xbe,0x90,0xff, +0x68,0x66,0x12,0x9e,0xe2,0x39,0x87,0x0, 0x4, 0xa, 0xf9,0x9, 0xbf,0x29,0xbc,0x7e, +0xf0,0x9, 0x70,0xc, 0xac,0xf5,0x7d,0x97,0x2e,0x94,0x28,0xae,0x6d,0x88,0x80,0xa, +0xac,0xf6,0x7d,0x97,0x2e,0x94,0x29,0x62,0x6d,0x88,0xb, 0x4a,0xd0,0x12,0x9e,0xe2, +0x1b,0x7a,0xd0,0x69,0xf4,0x0, 0x2, 0x7e,0xf0,0x9, 0xac,0xfa,0x7f,0x60,0x2d,0xd7, +0x79,0xf6,0x0, 0x2, 0x7e,0xf0,0x9, 0xac,0xf5,0x9, 0x87,0x28,0xb3,0x12,0x9e,0xe2, +0x39,0x87,0x0, 0x5, 0x7e,0xf0,0x9, 0xac,0xf5,0x9, 0x87,0x28,0xb4,0x12,0x9e,0xe2, +0x39,0x87,0x0, 0x6, 0xb, 0xa0,0x80,0x8, 0xb, 0x50,0xbc,0x45,0x28,0x2, 0xc1,0x45, +0xb, 0x60,0x90,0x60,0x99,0xe4,0x93,0xbc,0xb6,0x28,0x2, 0xc1,0x41,0x7c,0xba,0xda, +0x3b,0x22,0x7e,0xf0,0x9, 0xac,0xfa,0x7f,0x70,0x2d,0xf7,0x22,0x7c,0xab,0x7e,0xb, +0xb0,0x60,0x3, 0xb4,0x2, 0x31,0xa, 0x4a,0x9, 0x74,0x34,0xa3,0xbe,0x73,0x34,0xad, +0x50,0xe, 0x7d,0x24,0x2e,0x24,0x34,0xa3,0x7c,0xb7,0x4, 0x7a,0x29,0xb0,0xd3,0x22, +0xbe,0x73,0x34,0xad,0x40,0x9, 0xbe,0x70,0xff,0x68,0x4, 0xe4,0x7a,0xb, 0xb0,0x74, +0xff,0x19,0xb4,0x34,0xa3,0x80,0x17,0xa, 0x3a,0x9, 0xb3,0x34,0xa3,0xbe,0xb0,0xff, +0x68,0x7, 0xe4,0x19,0xb3,0x34,0xa3,0xd3,0x22,0xe4,0x19,0xb3,0x34,0xa3,0xc3,0x22, +0xca,0xf8,0x7c,0xfb,0x7d,0xf3,0x7e,0x17,0x2a,0x62,0xbd,0x13,0x38,0x6, 0x7e,0x34, +0x1, 0x0, 0x80,0x15,0x6d,0x22,0x7c,0x56,0x7c,0x67,0x6c,0x77,0x12,0x1f,0x5, 0xbe, +0x34,0x0, 0x10,0x50,0x4, 0x7e,0x34,0x0, 0x10,0x74,0x2, 0xac,0xbf,0x49,0x25,0x34, +0xb0,0xbd,0x2f,0x28,0x6, 0x49,0x35,0x34,0x8b,0x80,0x4, 0x59,0x35,0x34,0x8b,0x59, +0xf5,0x34,0xb0,0xbe,0x34,0x1, 0x0, 0x28,0x4, 0x7e,0x34,0x1, 0x0, 0xda,0xf8,0x22, +0x6c,0xaa,0x80,0x49,0x7e,0x50,0x9, 0xac,0x5a,0x49,0x32,0x29,0x62,0x12,0x25,0x3c, +0x59,0x32,0x28,0xae,0x7e,0x50,0x9, 0xac,0x5a,0x49,0x32,0x29,0x64,0x12,0x25,0x3c, +0x59,0x32,0x28,0xb0,0x7e,0x90,0x9, 0xac,0x9a,0x9, 0xb4,0x29,0x66,0x19,0xb4,0x28, +0xb2,0x7e,0x90,0x9, 0xac,0x9a,0x9, 0xb4,0x29,0x67,0x19,0xb4,0x28,0xb3,0x7e,0x90, +0x9, 0xac,0x9a,0x9, 0xb4,0x29,0x68,0x19,0xb4,0x28,0xb4,0xb, 0xa0,0x12,0x5e,0x25, +0x38,0xb2,0x22,0x7e,0x8, 0x34,0xa2,0x7e,0x34,0x0, 0xd, 0xe4,0x2, 0x20,0xde,0x6c, +0x0, 0x6c,0x11,0x80,0x13,0x7c,0xb1,0x12,0x2f,0xb7,0x60,0xa, 0x12,0xa0,0x84,0x40, +0x5, 0x7e,0x0, 0x1, 0x80,0xa, 0xb, 0x10,0x7e,0x73,0x28,0x84,0xbc,0x71,0x38,0xe5, +0x7c,0xb0,0x6c,0x77,0x12,0xa0,0x49,0xbe,0x0, 0x1, 0x68,0xb, 0x7c,0xb0,0x7e,0x70, +0x1, 0x12,0xa0,0x49,0xb4,0x1, 0x21,0x6c,0x11,0x80,0x15,0x7c,0xb1,0x12,0x2f,0xb7, +0x60,0xc, 0x12,0xa0,0x84,0x50,0x7, 0x7c,0xb1,0x6c,0x77,0x12,0x51,0x5f,0xb, 0x10, +0x7e,0x3, 0x28,0x84,0xbc,0x1, 0x38,0xe3,0x22,0x7c,0xab,0xa5,0xbf,0x0, 0xc, 0x7e, +0xb3,0x36,0x61,0x7a,0xb3,0x36,0x62,0x7a,0xa3,0x36,0x61,0x7e,0xb3,0x36,0x62,0x60, +0x4, 0x74,0x8, 0x80,0xd, 0x7e,0xb3,0x28,0x84,0x70,0xb, 0x7e,0xb3,0x36,0x63,0x60, +0x5, 0x14,0x7a,0xb3,0x36,0x63,0x7e,0x73,0x36,0x63,0xbe,0x70,0x0, 0x28,0x3, 0x74, +0x1, 0x22,0xe4,0x22,0x74,0x2, 0xac,0xb1,0x9, 0x25,0x26,0xfa,0x9, 0x35,0x26,0xfb, +0x7c,0xb2,0x7c,0x73,0x7c,0xa7,0x7c,0x7b,0x90,0x60,0xaa,0xe4,0x93,0x60,0x2, 0x7c, +0xa7,0x90,0x60,0xab,0xe4,0x93,0xbc,0xba,0x78,0x2, 0xd3,0x22,0xc3,0x22,0xca,0xf8, +0x7e,0xd4,0x0, 0x9, 0x7e,0xb3,0x28,0x84,0x70,0x8, 0xf5,0x1e,0xc2,0x8, 0xc2,0x9, +0x80,0x71,0xbe,0xb0,0x2, 0x38,0x66,0xb4,0x2, 0x28,0x7e,0x73,0x26,0xfc,0xa, 0x27, +0x7e,0x73,0x26,0xfa,0x12,0xa1,0x4b,0xbe,0x34,0x0, 0x5, 0x58,0x15,0x7e,0x73,0x26, +0xfd,0xa, 0x27,0x7e,0x73,0x26,0xfb,0x12,0xa1,0x4b,0xbe,0x34,0x0, 0x5, 0x58,0x2, +0x80,0x4e,0x6c,0xff,0x80,0x30,0x7c,0xbf,0x12,0x37,0x81,0x1a,0x4b,0x7c,0xbf,0x12, +0x37,0x6f,0x7d,0x5d,0x3e,0x54,0xbd,0x54,0x58,0x4, 0xd2,0x9, 0x80,0xa, 0x7d,0x5d, +0xe, 0x54,0xbd,0x54,0x48,0x2, 0xc2,0x9, 0x20,0x9, 0x4, 0xbd,0xd4,0x58,0x5, 0x75, +0x1e,0x28,0x80,0xf, 0xb, 0xf0,0x12,0x52,0x66,0x38,0xcb,0x80,0x6, 0xe5,0x1e,0x24, +0xfb,0xf5,0x1e,0xe5,0x1e,0xbe,0xb0,0x0, 0x8, 0x6, 0xd2,0x8, 0x15,0x1e,0x80,0x5, +0x75,0x1e,0x0, 0xc2,0x8, 0xda,0xf8,0x22,0x7e,0x39,0x70,0xa, 0x37,0x9d,0x32,0x2, +0x21,0x0, 0xca,0x3b,0xf5,0x2a,0x7f,0x31,0x7a,0xd, 0x26,0xe4,0x7a,0xb3,0x22,0xf6, +0x7a,0xb3,0x22,0xf7,0x7a,0xb3,0x22,0xf8,0x7e,0x34,0x3, 0xe8,0x7a,0x37,0x22,0xfd, +0x74,0x3c,0x7a,0xb3,0x22,0xf5,0x75,0x2f,0x46,0x75,0x2b,0x0, 0x61,0x43,0x12,0xa4, +0xde,0x28,0x1e,0x7e,0x34,0x0, 0x44,0xca,0x39,0x7e,0x71,0x2b,0x74,0x44,0xac,0x7b, +0x2e,0x34,0x14,0x6, 0x7e,0x24,0x0, 0xff,0x7e,0x8, 0x22,0xff,0x12,0x20,0xb9,0x1b, +0xfd,0x6d,0x33,0x7a,0x37,0x22,0xf9,0x7a,0x35,0x30,0x7a,0x37,0x22,0xfb,0x7a,0x35, +0x32,0x7a,0x35,0x34,0x7e,0x34,0x22,0xff,0x7a,0x35,0x36,0x7e,0x34,0x23,0x1f,0x7a, +0x35,0x38,0x75,0x2c,0x0, 0x80,0x59,0xe5,0x2c,0xa, 0x3b,0x7e,0xd, 0x26,0x12,0xa4, +0xe6,0x2e,0x35,0x36,0x12,0xa1,0x48,0x7d,0xd3,0x7e,0xc7,0x22,0xfb,0xbd,0xcd,0x58, +0x4, 0x7a,0xd7,0x22,0xfb,0xe5,0x2c,0xa, 0x3b,0x7f,0x3, 0x12,0xa4,0xe6,0x2e,0x35, +0x38,0x12,0xa1,0x48,0x7d,0xc3,0x7e,0x35,0x32,0xbd,0x3c,0x58,0x3, 0x7a,0xc5,0x32, +0x7e,0x37,0x22,0xf9,0x2d,0x3d,0x7a,0x37,0x22,0xf9,0x7d,0x3c,0x2e,0x35,0x30,0x7a, +0x35,0x30,0x2d,0xcd,0x7e,0x35,0x34,0xbd,0x3c,0x58,0x3, 0x7a,0xc5,0x34,0x5, 0x2c, +0xe5,0x2a,0xbe,0xb1,0x2c,0x38,0xa0,0xe5,0x2a,0xb4,0xa, 0x2a,0x7e,0x37,0x22,0xfb, +0xbe,0x34,0x0, 0x40,0x48,0xb, 0x7e,0x25,0x32,0xbe,0x24,0x0, 0x40,0x48,0x2, 0x61, +0x41,0xbe,0x34,0x0, 0x60,0x8, 0x2, 0x61,0x41,0x7e,0x35,0x32,0xbe,0x34,0x0, 0x60, +0x8, 0x2, 0x61,0x41,0x80,0x28,0x7e,0x37,0x22,0xfb,0xbe,0x34,0x0, 0x20,0x8, 0xb, +0x7e,0x25,0x32,0xbe,0x24,0x0, 0x20,0x8, 0x2, 0x61,0x41,0xbe,0x34,0x0, 0x30,0x8, +0x2, 0x61,0x41,0x7e,0x35,0x32,0xbe,0x34,0x0, 0x30,0x8, 0x2, 0x61,0x41,0x7e,0xa3, +0x38,0x41,0x74,0xc, 0xa4,0xbe,0x57,0x22,0xf9,0x58,0x2, 0x61,0x41,0x7e,0xa3,0x38, +0x42,0x74,0xc, 0xa4,0xbe,0x55,0x30,0x58,0x2, 0x61,0x41,0x7e,0x15,0x36,0x6d,0x0, +0x7e,0x1d,0x26,0xe5,0x2a,0x12,0xa3,0x7e,0x7a,0xb3,0x22,0xf4,0x7e,0x15,0x38,0x6d, +0x0, 0x7f,0x13,0xe5,0x2a,0x12,0xa3,0x7e,0xf5,0x2d,0x7e,0x73,0x22,0xf5,0xbe,0x73, +0x22,0xf4,0x38,0x7d,0xbe,0x71,0x2d,0x38,0x78,0xe5,0x2d,0x7e,0x31,0x2d,0xac,0x3b, +0x1a,0x2, 0x1a,0x0, 0x7e,0x73,0x22,0xf4,0xac,0x77,0x1a,0x26,0x1a,0x24,0x2f,0x10, +0xe5,0x2d,0xa, 0x5b,0x6d,0x44,0x7e,0x33,0x22,0xf4,0xa, 0x13,0x6d,0x0, 0x2f,0x2, +0x12,0x1f,0x7, 0x7c,0xb7,0xf5,0x2e,0xe5,0x2f,0xbe,0xb1,0x2e,0x38,0x43,0x7e,0x37, +0x22,0xfb,0x2e,0x35,0x32,0x2e,0x35,0x34,0x7a,0x35,0x3a,0xe5,0x2e,0xa, 0x2b,0x7e, +0x34,0x0, 0x64,0x9d,0x32,0x3e,0x34,0x2e,0x35,0x3a,0x7a,0x35,0x3a,0x7e,0x37,0x22, +0xfd,0xbe,0x35,0x3a,0x8, 0x1b,0x7e,0x35,0x3a,0x7a,0x37,0x22,0xfd,0xe5,0x2e,0x7a, +0xb3,0x22,0xf7,0x7e,0x73,0x23,0x41,0x7a,0x73,0x22,0xf8,0xe5,0x2b,0x7a,0xb3,0x22, +0xf6,0x5, 0x2b,0x12,0xa4,0xde,0x28,0x2, 0x21,0x7e,0x7e,0xa3,0x22,0xf7,0xbe,0xa1, +0x2f,0x40,0x20,0x7e,0xb3,0x22,0xf8,0xbe,0xb0,0x0, 0x28,0x17,0xbe,0xb0,0xff,0x50, +0x12,0x7e,0x73,0x22,0xf6,0xa, 0x37,0xb, 0x34,0x7a,0x73,0x38,0x3e,0x7a,0xb3,0x38, +0x40,0x80,0x6, 0x74,0x7c,0x7a,0xb3,0x38,0x3e,0x7c,0xba,0xda,0x3b,0x22,0xca,0x3b, +0x7c,0xfb,0x7f,0x61,0x7f,0x40,0x9f,0x11,0x7f,0x51,0x7f,0x71,0x7a,0x1d,0x3c,0x7a, +0x1d,0x40,0x7a,0x1d,0x44,0xbe,0xf0,0xa, 0x78,0x6, 0x7e,0x54,0x1, 0x3c,0x80,0x4, +0x7e,0x54,0x2, 0x35,0x7a,0x57,0x23,0x43,0x6c,0xee,0x80,0x60,0xa, 0x5e,0x7f,0x14, +0x12,0xa4,0xd6,0x7a,0x55,0x4a,0xa, 0x5e,0x7f,0x16,0x12,0xa4,0xd6,0x7a,0x55,0x48, +0x7e,0x35,0x48,0x12,0xa4,0xcf,0x2f,0x50,0x7e,0x65,0x4a,0x7d,0x16,0x1a,0x2, 0x1a, +0x0, 0x2f,0x70,0x12,0xa4,0xcf,0x12,0xa4,0xc5,0x7e,0x1d,0x3c,0x2f,0x10,0x7a,0x1d, +0x3c,0x7d,0x16,0x1a,0x2, 0x1a,0x0, 0x7e,0x35,0x4a,0x12,0xa4,0xc5,0x7e,0x1d,0x40, +0x2f,0x10,0x7a,0x1d,0x40,0x7e,0x15,0x4a,0x1a,0x2, 0x1a,0x0, 0x7e,0x35,0x48,0x12, +0xa4,0xc5,0x7e,0x1d,0x44,0x2f,0x10,0x7a,0x1d,0x44,0xb, 0xe0,0xbc,0xfe,0x38,0x9c, +0xa, 0xdf,0x6d,0xcc,0x7f,0x15,0x7f,0x6, 0x12,0x1f,0x58,0x7f,0x51,0x7f,0x17,0x7f, +0x6, 0x12,0x1f,0x58,0x7f,0x71,0x7e,0x94,0x0, 0x64,0x7e,0x1d,0x3c,0x7d,0x19,0x12, +0x1e,0xfc,0x7e,0x87,0x23,0x43,0x7d,0x18,0x7d,0xd8,0x1a,0x12,0x1a,0xc2,0x7f,0x6, +0x12,0x1f,0x58,0x7a,0x1d,0x3c,0x7e,0x1d,0x40,0x7d,0x19,0x12,0x1e,0xfc,0x7f,0x6, +0x12,0x1f,0x58,0x7a,0x1d,0x40,0x7e,0x1d,0x44,0x7d,0x19,0x12,0x1e,0xfc,0x7d,0x18, +0x1a,0x2, 0x1a,0x0, 0x12,0x1f,0x58,0x7a,0x1d,0x44,0x7f,0x15,0x7f,0x7, 0x12,0x1e, +0xeb,0x7e,0x6d,0x44,0x9f,0x61,0x7f,0x15,0x7f,0x5, 0x12,0x1e,0xeb,0x7e,0x5d,0x3c, +0x9f,0x51,0x7f,0x17,0x7f,0x7, 0x12,0x1e,0xeb,0x7e,0x7d,0x40,0x9f,0x71,0xbe,0x58, +0x0, 0x0, 0x68,0x6, 0xbe,0x78,0x0, 0x0, 0x78,0x6, 0x7e,0x44,0x0, 0x64,0x80,0x18, +0x7f,0x16,0x7d,0x19,0x12,0x1e,0xfc,0x7f,0x5, 0x12,0x1f,0x58,0x7f,0x6, 0x12,0x1e, +0xeb,0x7f,0x7, 0x12,0x1f,0x58,0x7d,0x43,0xbe,0x44,0x0, 0x0, 0x18,0x2, 0x6d,0x44, +0x7c,0xb9,0xda,0x3b,0x22,0x1a,0x26,0x1a,0x24,0x12,0x1e,0xeb,0x7f,0x1, 0x22,0x7d, +0x13,0x1a,0x2, 0x1a,0x0, 0x22,0x2d,0x35,0x7e,0x1b,0x70,0xa, 0x57,0x22,0x7e,0x73, +0x39,0x1, 0xbe,0x71,0x2b,0x22,0x2d,0x13,0x7e,0xb, 0x50,0xa, 0x25,0x22,0xca,0x79, +0x6c,0xaa,0x12,0xa5,0xe4,0xb, 0x7a,0xf0,0x7d,0x7f,0x7c,0xbf,0xa, 0xfa,0x19,0xbf, +0x38,0x43,0x7f,0x71,0x2d,0xf4,0xb, 0x7a,0x40,0x7c,0xb9,0xa, 0x4a,0x19,0xb4,0x38, +0x63,0xb, 0xa0,0xbe,0xa0,0x20,0x40,0xda,0x7e,0x8, 0x38,0x43,0x7e,0x18,0x38,0x63, +0x74,0x20,0x12,0xa1,0x52,0xda,0x79,0x22,0xca,0x3b,0x7f,0x61,0x7f,0x50,0x7e,0x73, +0x38,0x3f,0xbe,0x70,0x20,0x40,0x52,0x7e,0xf0,0x2, 0x80,0x3c,0xa, 0x3f,0x6d,0x22, +0x74,0x5, 0x2f,0x11,0x14,0x78,0xfb,0x7e,0x33,0x38,0x3f,0xa, 0x13,0x6d,0x0, 0x12, +0x1f,0x7, 0x7c,0xe7,0xbe,0xe0,0x2, 0x50,0x3, 0x7e,0xe0,0x2, 0xa, 0x6f,0x1b,0x64, +0xa, 0x3e,0x1b,0x34,0x7c,0xc7,0x7f,0x5, 0x7c,0xbd,0x12,0xa5,0x92,0x7f,0x6, 0x7c, +0xbd,0x7c,0x7c,0x12,0xa5,0x92,0xb, 0xf0,0x7e,0x73,0x38,0x3f,0xbc,0x7f,0x50,0xbc, +0x7f,0x5, 0x7f,0x16,0x12,0xa4,0xee,0x80,0x6, 0x74,0x7e,0x7a,0xb3,0x38,0x3e,0xda, +0x3b,0x22,0x7c,0x97,0x7c,0xab,0x7f,0x10,0x7e,0x30,0x2, 0xac,0x3a,0x2d,0x13,0x7d, +0x2, 0xb, 0xa, 0x10,0x7e,0x10,0x2, 0xac,0x19,0x7f,0x71,0x2d,0xf0,0xb, 0x7a,0x0, +0x7c,0x21,0xa5,0xba,0x0, 0x14,0x1a,0x3, 0x1b,0x7a,0x0, 0xbc,0x9a,0x68,0x24,0x6d, +0x44,0x74,0x2, 0xa4,0x2d,0x35,0x1b,0x1a,0x40,0x22,0xbc,0x9a,0x68,0x15,0x1a,0x2, +0x1a,0x13,0x2d,0x10,0xe, 0x14,0x1b,0x7a,0x10,0x6d,0x11,0x74,0x2, 0xa4,0x2d,0x35, +0x1b,0x1a,0x10,0x22,0x7e,0x90,0x2, 0xac,0x9a,0x7f,0x70,0x2d,0xf4,0x22,0xe4,0x7a, +0xb3,0x35,0x69,0x7e,0xb3,0x28,0x84,0x60,0x6, 0x7e,0xb3,0x35,0xe2,0x60,0x5, 0xe4, +0x7a,0xb3,0x35,0xe4,0x22,0x7e,0xa0,0x1, 0x7e,0x37,0x2a,0x4f,0x12,0xa6,0x4e,0x28, +0x35,0x6d,0x22,0x9d,0x23,0xbe,0x27,0x7, 0xf8,0x58,0x2b,0x12,0x8f,0xdc,0xbe,0x37, +0x7, 0xfa,0x8, 0x22,0xe4,0x7a,0xb3,0x28,0x84,0x7e,0xb3,0x2a,0x3, 0x70,0x17,0x7e, +0xb3,0x37,0x8, 0xb4,0x1, 0x10,0x6c,0xaa,0x5, 0x1f,0xe5,0x1f,0xbe,0xb0,0x10,0x28, +0x5, 0xd2,0x11,0x75,0x1f,0x0, 0x4c,0xaa,0x68,0x3, 0x75,0x1f,0x0, 0x22,0x7e,0xb3, +0x28,0x84,0xbe,0xb0,0x0, 0x22,0xca,0x3b,0x7f,0x61,0x7f,0x50,0x7e,0x73,0x2a,0x6e, +0xa, 0x37,0x3e,0x34,0xca,0x39,0x7f,0x16,0x7f,0x5, 0x12,0x20,0xb9,0x1b,0xfd,0x6c, +0xdd,0x12,0xa7,0x10,0x7a,0xb3,0x1f,0x6c,0x6c,0xcc,0x80,0x4a,0x12,0xa6,0xff,0x78, +0x43,0x74,0x2, 0xac,0xbc,0x7f,0x16,0x2d,0x35,0xb, 0x1a,0xe0,0x7d,0x3f,0x12,0x21, +0x0, 0x7d,0x13,0x7d,0x3e,0x12,0x21,0x0, 0xbd,0x31,0x58,0x2, 0x7d,0xfe,0xbe,0xe5, +0x2e,0x8, 0x5, 0x7e,0xe5,0x2e,0x80,0xb, 0x6d,0x33,0x9e,0x35,0x2e,0xbd,0x3e,0x8, +0x2, 0x7d,0xe3,0x7d,0x3e,0x1a,0x26,0x1a,0x24,0x2f,0x41,0x7e,0xb3,0x1f,0x6c,0x4, +0x7a,0xb3,0x1f,0x6c,0xb, 0xc0,0x7e,0x73,0x2a,0x70,0xbc,0x7c,0x38,0xae,0x7e,0x73, +0x1f,0x6c,0x4c,0x77,0x68,0x1d,0x12,0xa7,0x2d,0x8, 0x2, 0x7d,0x7f,0x6c,0xcc,0x80, +0xa, 0x12,0xa6,0xff,0x78,0x3, 0x12,0xa7,0x18,0xb, 0xc0,0x7e,0x73,0x2a,0x70,0xbc, +0x7c,0x38,0xee,0xb, 0xd0,0xbe,0xd0,0x2, 0x50,0x2, 0xc1,0x71,0xda,0x3b,0x22,0xa, +0xec,0x9, 0x7e,0x2a,0xdc,0xa, 0x37,0x5e,0x34,0x0, 0x1, 0xa, 0xed,0xbd,0x3e,0x22, +0x7e,0xf4,0x7f,0xff,0x9f,0x44,0xe4,0x22,0x74,0x2, 0xac,0xbc,0x7f,0x16,0x2d,0x35, +0xb, 0x1a,0xe0,0x9d,0xe7,0x7f,0x15,0x2d,0x35,0x1b,0x1a,0xe0,0x22,0xa, 0x17,0x6d, +0x0, 0x7f,0x14,0x12,0x1f,0x58,0x7d,0x73,0x12,0x21,0x0, 0x7d,0xe3,0x7d,0x3f,0x12, +0x21,0x0, 0xbd,0x3e,0x22,0x7e,0x63,0x2a,0x6e,0x90,0x60,0xa7,0xe4,0x93,0x60,0x6c, +0xc2,0x12,0x6c,0x33,0x80,0x56,0x90,0x60,0xaa,0xe4,0x93,0x70,0x13,0x7c,0x96,0xac, +0x93,0x90,0x60,0xab,0xe4,0x93,0xa, 0x5b,0x1b,0x54,0x2d,0x45,0x7d,0xd4,0xb, 0xd4, +0x7d,0x54,0x3e,0x54,0x7e,0x7f,0x13,0x8a,0x2d,0xf5,0xb, 0x7a,0x50,0xbe,0x57,0x2a, +0x5a,0x8, 0x27,0x7c,0xb3,0x12,0x31,0x5a,0x50,0x20,0x7d,0x5d,0x3e,0x54,0x7e,0x7f, +0x13,0x8a,0x7f,0x57,0x2d,0xb5,0xb, 0x5a,0xc0,0x7d,0x54,0x3e,0x54,0x2d,0xf5,0xb, +0x7a,0x50,0xbd,0x5c,0x8, 0x4, 0xd2,0x12,0x80,0xa, 0xb, 0x30,0x7e,0x73,0x2a,0x75, +0xbc,0x73,0x38,0xa2,0x30,0x12,0x5, 0xd2,0x3, 0x2, 0x32,0xe7,0x22,0x90,0x60,0xa7, +0xe4,0x93,0x60,0x8, 0x30,0x12,0x5, 0x12,0x31,0x7d,0xc2,0x12,0x22,0xca,0xd8,0xca, +0x79,0x7c,0xfb,0x7f,0x70,0xc2,0x3, 0x6c,0xdd,0x6d,0xdd,0x7e,0x34,0x22,0xe6,0x7e, +0x24,0x0, 0xff,0x7e,0x14,0x1f,0x34,0x74,0xc, 0x12,0x1f,0xad,0x6d,0x11,0x7e,0x4, +0x7f,0xff,0x6c,0xee,0x80,0x13,0x12,0xa8,0xe1,0x7d,0xc3,0xbd,0xdc,0x50,0x2, 0x7d, +0xdc,0xbd,0xc, 0x28,0x2, 0x7d,0xc, 0xb, 0xe0,0xbc,0xfe,0x38,0xe9,0xbe,0xd4,0x0, +0x1e,0x58,0xa, 0x7e,0xb3,0x28,0x94,0x70,0x4, 0x6d,0x33,0x1, 0xd2,0xbe,0xd4,0x4, +0xb0,0x8, 0x2, 0xd2,0x3, 0x6c,0xee,0x74,0x4, 0xac,0xbe,0x49,0x45,0x1f,0x34,0xbd, +0x4d,0x58,0x6, 0x49,0xd5,0x1f,0x36,0x80,0x7, 0xb, 0xe0,0xbe,0xe0,0x3, 0x40,0xe7, +0xbe,0xe0,0x3, 0x78,0x4, 0x6d,0x33,0x1, 0xd2,0xbd,0xd, 0x8, 0x5, 0x30,0x3, 0x2, +0x7d,0xd0,0x9f,0x55,0x6c,0xee,0x80,0xb, 0x12,0xa8,0xe1,0x1a,0x26,0x1a,0x24,0x2f, +0x51,0xb, 0xe0,0xbc,0xfe,0x38,0xf1,0xa, 0x1f,0x12,0xa8,0xd7,0x9f,0x55,0x6c,0xee, +0x80,0x22,0x74,0x2, 0xac,0xbe,0x7f,0x17,0x2d,0x35,0xb, 0x1a,0x90,0x7d,0x39,0x12, +0x21,0x0, 0x7d,0xc3,0xbd,0x1c,0x28,0xa, 0x7d,0x39,0x1a,0x26,0x1a,0x24,0x2f,0x51, +0xb, 0xd0,0xb, 0xe0,0xbc,0xfe,0x38,0xda,0x6d,0x11,0xbe,0xd0,0x0, 0x28,0x5, 0xa, +0x1d,0x12,0xa8,0xd7,0xbd,0x1d,0x8, 0x4, 0x7d,0x1d,0x80,0xa, 0x6d,0x0, 0x9d,0xd, +0xbd,0x1, 0x8, 0x2, 0x7d,0x10,0x6c,0xee,0x80,0x12,0x74,0x2, 0xac,0xbe,0x7f,0x17, +0x2d,0x35,0xb, 0x1a,0x0, 0x9d,0x1, 0x1b,0x1a,0x0, 0xb, 0xe0,0xbc,0xfe,0x38,0xea, +0x7d,0x31,0xda,0x79,0xda,0xd8,0x22,0x6d,0x0, 0x7f,0x15,0x12,0x1f,0x58,0x7d,0x13, +0x22,0x74,0x2, 0xac,0xbe,0x7f,0x17,0x2d,0x35,0xb, 0x1a,0x30,0x2, 0x21,0x0, 0xca, +0xf8,0x7f,0x71,0x6d,0xdd,0x6c,0xaa,0x7e,0xf0,0x7f,0xc2,0x3, 0x6d,0x44,0x80,0x1e, +0x7d,0xc4,0x3e,0xc4,0x7f,0x17,0x2d,0x3c,0x12,0xa8,0xe9,0xbd,0x3d,0x48,0xd, 0x7d, +0x34,0x3e,0x34,0x2d,0x3f,0x7d,0x2e,0x12,0xa8,0xe9,0x7d,0xd3,0xb, 0x44,0x7e,0xc5, +0x35,0xbd,0xc4,0x38,0xdb,0x80,0x7, 0xb, 0xa0,0xbe,0xa0,0x8, 0x50,0x11,0x7c,0xba, +0x7d,0x3d,0x60,0x5, 0xe, 0x34,0x14,0x78,0xfb,0xa, 0xcf,0xbd,0x3c,0x18,0xe8,0x7f, +0x10,0x2e,0x35,0x35,0x7a,0x1b,0xa0,0x6d,0x44,0x80,0x21,0x7d,0x54,0x3e,0x54,0x7f, +0x17,0x2d,0x35,0xb, 0x1a,0x30,0x7f,0x60,0x2e,0xd5,0x35,0x7e,0x6b,0xb0,0x60,0x5, +0xe, 0x34,0x14,0x78,0xfb,0x7c,0xb7,0x12,0xa9,0x78,0xb, 0x44,0x7e,0x55,0x35,0xbd, +0x54,0x38,0xd8,0xda,0xf8,0x22,0xa, 0x4a,0x7f,0x10,0x2d,0x34,0x7a,0x1b,0xb0,0x22, +0xd2,0xc9,0x75,0xf2,0x30,0x75,0xf3,0x80,0x75,0xf4,0xc, 0x75,0xf5,0x1, 0x6c,0xaa, +0xe5,0xf5,0x54,0x80,0xb4,0x80,0xf9,0xe5,0xf6,0x12,0xa9,0x76,0xb, 0xa0,0xbe,0xa0, +0xd, 0x40,0xed,0xc2,0xc9,0x22,0x90,0x60,0x93,0xe4,0x93,0xa, 0xb, 0x7e,0x73,0x2a, +0x71,0xa, 0x17,0x2d,0x10,0x7e,0xa3,0x2a,0x6e,0xa, 0x3a,0xad,0x13,0x7d,0x21,0x6c, +0x33,0x80,0x20,0xa, 0x3, 0x2d,0x2, 0x3e,0x4, 0x7e,0x7f,0x38,0xd9,0x2d,0xf0,0xb, +0x7a,0x0, 0x7e,0x90,0x2, 0xac,0x93,0x49,0xf4,0x13,0x8e,0x9d,0xf, 0x59,0x4, 0x25, +0xb6,0xb, 0x30,0xbc,0xa3,0x38,0xdc,0x7a,0x35,0x35,0x7e,0xf, 0x37,0x40,0x7e,0x18, +0x25,0xb6,0x2, 0xa8,0xef,0x7e,0xb3,0x2b,0x1d,0xb4,0x1, 0x31,0x12,0xaa,0x2e,0x7e, +0x1f,0x38,0xd9,0x7a,0x37,0x24,0xfa,0x7e,0x34,0xd, 0xc8,0x7a,0x37,0x24,0xf6,0x12, +0xaa,0x35,0x12,0xaa,0x3e,0xe4,0x7a,0xb3,0x24,0xf5,0x7e,0x34,0x0, 0x20,0x7a,0x37, +0x24,0xfc,0x7a,0xb3,0x24,0xf4,0x7e,0x8, 0x24,0xf2,0x2, 0xd, 0x7, 0x22,0xa9,0xd1, +0xcb,0xe4,0x2, 0x0, 0xe, 0x7e,0x73,0x2a,0x6d,0x7a,0x73,0x24,0xf2,0x22,0x7e,0x73, +0x2a,0x6e,0x7a,0x73,0x24,0xf3,0x22,0x7e,0x43,0x2a,0x6e,0x7e,0x53,0x2a,0x6d,0xac, +0x54,0x7e,0x17,0x28,0xa1,0x12,0xaa,0x2e,0x6d,0x0, 0x80,0x37,0x7d,0x40,0x3e,0x44, +0x7e,0x7f,0x38,0xd9,0x2d,0xf4,0xb, 0x7a,0x30,0xbd,0x13,0x58,0x10,0x7d,0xf4,0x2e, +0xf4,0x8, 0xa, 0xb, 0xf8,0x50,0x9d,0x51,0x1b,0xf8,0x50,0x80,0x14,0x6d,0x55,0x9d, +0x51,0xbd,0x53,0x8, 0xc, 0x2e,0x44,0x8, 0xa, 0xb, 0x48,0x50,0x2d,0x51,0x1b,0x48, +0x50,0xb, 0x4, 0xbd,0x20,0x38,0xc5,0x22,0x7c,0xab,0x7e,0x8, 0x29,0xbc,0x12,0x5e, +0x25,0x28,0x1f,0xa, 0x3a,0x7f,0x70,0x2d,0xf3,0x7e,0x7b,0xb0,0xb4,0x2, 0x4, 0x74, +0x1, 0x80,0x2, 0x74,0x3, 0x7a,0x7b,0xb0,0x74,0x3, 0x2d,0x31,0x7d,0x20,0x39,0xb1, +0x0, 0xa, 0x22,0xca,0xd8,0xca,0x79,0x7e,0x34,0x61,0x43,0x7e,0x24,0x0, 0xff,0xb, +0x1a,0x40,0x90,0x61,0x35,0xe4,0x93,0x70,0x2, 0x61,0x73,0x90,0x60,0xa7,0xe4,0x93, +0x70,0x2, 0x61,0x73,0x6c,0xff,0x61,0x6c,0x7e,0x70,0x9, 0xac,0x7f,0x9, 0xe3,0x29, +0xc, 0x5e,0xe0,0xf, 0x49,0xc3,0x29,0xa, 0x7e,0x14,0x60,0xd1,0x7e,0x4, 0x0, 0xff, +0xb, 0xa, 0x20,0x2d,0x24,0xbd,0xc2,0x40,0x42,0x49,0xd3,0x29,0x8, 0x7d,0x3d,0x12, +0xab,0x81,0x7c,0xdb,0x90,0x60,0xa7,0xe4,0x93,0xbc,0xbd,0x38,0xe, 0x7d,0x34,0x1b, +0x34,0x12,0xab,0x78,0x7c,0xbe,0x12,0xaa,0x98,0x80,0x3f,0x7e,0x70,0x2, 0xac,0x7d, +0x2e,0x34,0x60,0xc5,0x12,0x87,0xbc,0x74,0x9, 0xac,0xbf,0x59,0xd5,0x29,0x8, 0x7e, +0x34,0x60,0xcf,0x12,0x23,0x9e,0x12,0xab,0x78,0x80,0x1f,0xbd,0xc4,0x40,0x1b,0x7d, +0x54,0x2e,0x54,0x0, 0xa, 0xbd,0xc5,0x40,0x5, 0x7c,0xbe,0x12,0xaa,0x98,0x7d,0xc4, +0x1b,0xc4,0x74,0x9, 0xac,0xbf,0x59,0xc5,0x29,0xa, 0xb, 0xf0,0x12,0x5e,0x2d,0x28, +0x2, 0x41,0xe8,0xda,0x79,0xda,0xd8,0x22,0x74,0x9, 0xac,0xbf,0x59,0x35,0x29,0xa, +0x22,0x6c,0xaa,0x80,0x27,0x7e,0x30,0x4, 0xac,0x3a,0x7d,0xf1,0x2e,0xf4,0x60,0xb1, +0x7e,0xe4,0x0, 0xff,0xb, 0x7a,0x20,0xbd,0x23,0x38,0xf, 0x2e,0x14,0x60,0xb3,0x7e, +0x4, 0x0, 0xff,0xb, 0xa, 0x20,0xbd,0x23,0x50,0xb, 0xb, 0xa0,0x90,0x60,0xa7,0xe4, +0x93,0xbc,0xba,0x38,0xd0,0x7c,0xba,0x22,0x90,0x60,0xa7,0xe4,0x93,0x60,0x2b,0x6c, +0x33,0x80,0x1f,0x7c,0xb3,0x12,0x31,0x5a,0x40,0x16,0x7c,0xb3,0x12,0x31,0x27,0x7d, +0x43,0x6d,0x55,0x7d,0x4, 0x3e,0x4, 0x7e,0x1f,0x13,0x8a,0x2d,0x30,0x1b,0x1a,0x50, +0xb, 0x30,0x7e,0x23,0x2a,0x75,0xbc,0x23,0x38,0xd9,0x22,0x12,0xab,0xfd,0x7e,0x14, +0x62,0x7, 0x12,0x87,0xee,0x28,0x3, 0xd2,0x13,0x22,0xc2,0x13,0x22,0x6d,0x11,0xe4, +0x12,0x0, 0x1e,0x6c,0xaa,0x80,0x5b,0x7e,0x10,0x2, 0xac,0x1a,0x7e,0x7f,0x38,0xf3, +0x2d,0xf0,0x69,0x27,0x1, 0x0, 0x69,0x37,0x0, 0x80,0x9d,0x32,0x12,0x21,0x0, 0xbd, +0x31,0x28,0x16,0x7e,0x70,0x2, 0xac,0x7a,0x7e,0xf, 0x38,0xf3,0x2d,0x13,0x69,0x20, +0x1, 0x0, 0x69,0x30,0x0, 0x80,0x12,0x81,0xbf,0x7e,0x10,0x2, 0xac,0x1a,0x7e,0x1f, +0x38,0xf3,0x2d,0x30,0x69,0x1, 0x0, 0x80,0xbe,0x4, 0x7f,0xff,0x78,0x4, 0x7e,0x14, +0x7f,0xff,0x69,0x1, 0x1, 0x0, 0xbe,0x4, 0x7f,0xff,0x78,0x4, 0x7e,0x14,0x7f,0xff, +0xb, 0xa0,0x7e,0xb3,0x2a,0x74,0xbc,0xba,0x38,0x9d,0x7d,0x31,0x22,0x6c,0x66,0x7e, +0x27,0x39,0x4, 0xbe,0x24,0x3, 0xe8,0x28,0x3, 0x7e,0x60,0x8, 0x7e,0xb3,0x28,0xac, +0xb4,0x1, 0x1a,0x7e,0x73,0x2f,0xab,0xbc,0x76,0x50,0xf, 0xe4,0x7a,0xb3,0x28,0xad, +0x12,0x8a,0x87,0x7e,0xb3,0x2f,0xab,0x4, 0x80,0x4, 0xe4,0x80,0x1, 0xe4,0x7a,0xb3, +0x2f,0xab,0x7e,0xb3,0x28,0xad,0xb4,0x1, 0x17,0x7e,0xa3,0x2f,0xac,0xbe,0xa0,0x5, +0x50,0xa, 0xe4,0x7a,0xb3,0x28,0xad,0x7c,0xba,0x4, 0x80,0x5, 0x74,0x5, 0x80,0x1, +0xe4,0x7a,0xb3,0x2f,0xac,0x22,0x6c,0xaa,0x80,0x26,0x7e,0x50,0x2, 0xac,0x5a,0x49, +0x12,0x5, 0xf8,0x49,0x32,0x4, 0x0, 0x2d,0x31,0x59,0x32,0x5, 0xf8,0x30,0x1, 0xe, +0x49,0x12,0x4, 0x7e,0x49,0x32,0x6, 0x76,0x2d,0x31,0x59,0x32,0x6, 0x76,0xb, 0xa0, +0x7e,0xb3,0x2a,0x74,0xa, 0x3b,0x7e,0xb3,0x2a,0x73,0xa, 0x2b,0x2d,0x23,0xa, 0x3a, +0xbd,0x32,0x48,0xc6,0x22,0xd2,0x3, 0x6c,0xaa,0x6c,0x77,0x80,0x1f,0x7e,0x63,0x2a, +0x6e,0xa, 0x16,0xa, 0x27,0x2d,0x21,0x7c,0x65,0x7e,0x50,0x2, 0xac,0x56,0x49,0x22, +0x5, 0x7a,0xbe,0x24,0xfe,0xc, 0x58,0x2, 0xb, 0xa0,0xb, 0x70,0x7e,0xb3,0x2a,0x6d, +0xbc,0xb7,0x38,0xd9,0xa, 0x2b,0x1e,0x24,0xa, 0x3a,0xbd,0x32,0x8, 0x2, 0xc2,0x3, +0xa2,0x3, 0x22,0xc2,0x3, 0x7e,0xa3,0x2a,0x70,0x7e,0xb3,0x26,0xf1,0x60,0x4, 0xd2, +0x3, 0x80,0x33,0x7e,0x70,0x2, 0x80,0x22,0x7e,0x50,0x2, 0xac,0x57,0x49,0x12,0x4, +0xfc,0x7e,0xf4,0x61,0x59,0x7e,0xe4,0x0, 0xff,0xb, 0x7a,0x0, 0x6d,0x22,0x9d,0x20, +0xbd,0x12,0x58,0x4, 0xd2,0x3, 0x80,0xe, 0xb, 0x70,0xa, 0x1a,0x9e,0x14,0x0, 0x3, +0xa, 0x27,0xbd,0x21,0x48,0xd2,0xa2,0x3, 0x22,0x7d,0x23,0x7e,0x14,0x61,0xc8,0x12, +0x64,0xd3,0x7e,0x14,0x0, 0x5, 0xad,0x13,0x1e,0x14,0xbd,0x12,0x50,0xd, 0x7e,0x33, +0x36,0xdc,0xbe,0x30,0x8, 0x50,0x45,0x74,0x8, 0x80,0x3d,0x7d,0x13,0x3e,0x14,0xbd, +0x12,0x50,0xd, 0x7e,0x33,0x36,0xdc,0xbe,0x30,0x6, 0x50,0x30,0x74,0x6, 0x80,0x28, +0x7e,0x14,0x0, 0x3, 0xad,0x13,0x1e,0x14,0xbd,0x12,0x50,0xd, 0x7e,0x33,0x36,0xdc, +0xbe,0x30,0x4, 0x50,0x17,0x74,0x4, 0x80,0xf, 0xbd,0x32,0x50,0xf, 0x7e,0x73,0x36, +0xdc,0xbe,0x70,0x2, 0x50,0x6, 0x74,0x2, 0x7a,0xb3,0x36,0xdc,0x7e,0xb3,0x36,0xdc, +0xbe,0xb0,0x0, 0x28,0x1b,0x14,0x7a,0xb3,0x36,0xdc,0x74,0x1, 0x7a,0xb3,0x16,0x92, +0x90,0x61,0xfd,0xe4,0x93,0xbe,0xb3,0x36,0xdc,0x50,0x5, 0xe4,0x7a,0xb3,0x16,0x91, +0x22,0x7c,0x3b,0x7e,0x44,0xff,0xff,0x6c,0x22,0x80,0x2a,0x12,0xae,0x8a,0x68,0x23, +0x7e,0x70,0xc, 0xac,0x72,0x12,0xae,0xa2,0x7d,0x23,0x7e,0x70,0xc, 0xac,0x72,0x59, +0x23,0x36,0x82,0x49,0x3, 0x36,0x82,0x49,0x23,0x36,0x7e,0xbd,0x20,0x50,0x4, 0x59, +0x3, 0x36,0x7e,0xb, 0x20,0xbc,0x32,0x50,0xd2,0x6c,0xaa,0x6c,0x22,0x80,0x18,0x12, +0xae,0x8a,0x68,0x11,0x7e,0x70,0xc, 0xac,0x72,0x49,0x3, 0x36,0x7e,0xbd,0x4, 0x50, +0x4, 0x7d,0x40,0x7c,0xa2,0xb, 0x20,0xbc,0x32,0x50,0xe4,0x7e,0x37,0x36,0x64,0xbe, +0x37,0x36,0xdd,0x50,0x8, 0x7e,0x37,0x36,0xdd,0x7a,0x37,0x36,0x64,0x12,0xae,0x98, +0x4d,0x33,0x78,0x3, 0x7e,0xa0,0xff,0x7c,0xba,0x22,0x7e,0x10,0x5, 0xac,0x12,0x9, +0xb0,0x26,0x33,0xbe,0xb3,0x2b,0xf, 0x22,0x7e,0x70,0xc, 0xac,0x7a,0x49,0x33,0x36, +0x7e,0x22,0x49,0x23,0x36,0x84,0x49,0x33,0x36,0x80,0x9d,0x32,0x2, 0x21,0x0, 0x7e, +0x8, 0x36,0x7a,0x7e,0x34,0x0, 0x60,0xe4,0x12,0x20,0xde,0x6c,0xaa,0x7e,0x44,0xff, +0xff,0x7e,0x70,0xc, 0xac,0x7a,0x59,0x43,0x36,0x7c,0x59,0x43,0x36,0x84,0xb, 0xa0, +0xbe,0xa0,0x8, 0x40,0xe8,0x7e,0x8, 0x36,0x68,0x7e,0x34,0x0, 0xd, 0xe4,0x2, 0x20, +0xde,0x7e,0xa3,0x2b,0x62,0xbc,0xab,0x68,0x6, 0x7a,0xb3,0x2b,0x62,0xd2,0xc, 0x30, +0xc, 0x7, 0x12,0xae,0xfa,0xe4,0x2, 0xa, 0x66,0x22,0xc2,0xc, 0x7e,0x8, 0x2a,0x6d, +0x12,0x3, 0x8b,0x7e,0x8, 0x2a,0x6d,0x74,0x3, 0x2, 0x11,0x7a,0xe4,0x7a,0xb3,0x36, +0x67,0x6c,0xaa,0x80,0xd, 0x6d,0x44,0x7e,0x70,0xc, 0xac,0x7a,0x59,0x43,0x36,0x7e, +0xb, 0xa0,0x12,0x8d,0x8, 0x38,0xee,0xe4,0x7a,0xb3,0x36,0x68,0x6d,0x33,0x7a,0x37, +0x36,0x6f,0x7a,0x37,0x36,0x64,0x22,0x7e,0xb3,0x36,0x6a,0xb4,0x1, 0x27,0x7e,0xb3, +0x36,0xe0,0x4, 0x7a,0xb3,0x36,0xe0,0x7e,0x73,0x36,0xe0,0xbe,0x70,0x3, 0x40,0x15, +0x12,0x8c,0x90,0x7e,0x73,0x36,0xe0,0xbe,0x70,0x6, 0x40,0x9, 0xe4,0x7a,0xb3,0x36, +0xe0,0x7a,0xb3,0x36,0x6a,0x22,0x12,0x24,0x14,0xe4,0x7a,0xb3,0x3, 0xfe,0x2, 0x76, +0x52,0xca,0xd8,0xca,0x79,0x7f,0x70,0x7e,0x93,0x28,0x84,0x6c,0x88,0x7e,0xf0,0x1, +0x80,0x1a,0xa, 0x58,0x7f,0x17,0x2d,0x35,0x7e,0x1b,0x60,0xa, 0x5f,0x7f,0x7, 0x2d, +0x15,0x7e,0xb, 0x70,0xbc,0x76,0x40,0x2, 0x7c,0x8f,0xb, 0xf0,0xbc,0x9f,0x38,0xe2, +0xa, 0x38,0x2d,0x3f,0x7d,0x2e,0x7e,0x1b,0x80,0x6c,0xaa,0x7e,0xf0,0x1, 0x2, 0xb0, +0x31,0x75,0x45,0x0, 0x6d,0xdd,0x6d,0xbb,0x7d,0xcb,0x75,0x44,0x0, 0x80,0x36,0x7e, +0x71,0x44,0x74,0x2, 0xac,0x7b,0x9, 0xe3,0x26,0xfa,0x9, 0xd3,0x26,0xfb,0xe5,0x44, +0xa, 0xab,0x7f,0x17,0x2d,0x3a,0x7e,0x1b,0xb0,0xbc,0xbf,0x78,0x16,0x5, 0x45,0xa, +0xae,0x2d,0xca,0xa, 0xad,0x2d,0xba,0x12,0xc0,0xe8,0xbd,0x3d,0x8, 0x5, 0x12,0xc0, +0xe8,0x7d,0xd3,0x5, 0x44,0xbe,0x91,0x44,0x38,0xc5,0xe5,0x45,0xbe,0xb0,0x0, 0x28, +0x2e,0xe5,0x45,0xa, 0xab,0x7d,0x3c,0x8d,0x3a,0x7d,0xc3,0x8d,0xba,0x7e,0x50,0x2, +0xac,0x5a,0x19,0x72,0x33,0xc3,0x7d,0x3b,0x7e,0x50,0x2, 0xac,0x5a,0x19,0x72,0x33, +0xc4,0x7d,0x3c,0x7c,0xb7,0x7d,0x3b,0x12,0x30,0x3, 0x1b,0x1a,0xd0,0xb, 0xa0,0xb, +0xf0,0xbc,0x8f,0x40,0x3, 0x2, 0xaf,0xb1,0x7c,0xba,0xda,0x79,0xda,0xd8,0x22,0x7c, +0x9b,0x7f,0x71,0x7f,0x60,0x7e,0x34,0x22,0xb8,0x7e,0x24,0x0, 0xff,0x7e,0x14,0x1f, +0x52,0x74,0x2a,0x12,0x1f,0xad,0x7e,0x58,0x1f,0x52,0x7c,0xb9,0x7e,0x71,0x44,0x12, +0x2c,0x40,0x7d,0x43,0xe5,0x45,0x7e,0x71,0x46,0x12,0x2c,0x40,0x2d,0x34,0xe, 0x34, +0x7f,0x5, 0x7e,0x50,0x7, 0xb, 0xa, 0x50,0xbd,0x53,0x58,0xf, 0x69,0x30,0x0, 0x2, +0x1b,0x6a,0x30,0x69,0x30,0x0, 0x4, 0x1b,0x7a,0x30,0x22,0x2e,0x14,0x0, 0x6, 0x1b, +0x50,0x78,0xe2,0x22,0x6d,0x33,0x7d,0x23,0x7d,0x3, 0x6c,0x33,0x80,0x45,0x6c,0x22, +0x80,0x37,0x7e,0xb3,0x2a,0x6e,0xac,0xb3,0xa, 0x42,0x2d,0x54,0x7d,0x45,0x3e,0x44, +0x7e,0x7f,0x13,0x8a,0x2d,0xf4,0xb, 0x7a,0x40,0xbe,0x44,0x0, 0x32,0x8, 0x8, 0xbe, +0x44,0x2, 0x58,0x58,0x2, 0xb, 0x24,0xbe,0x44,0xff,0xce,0x58,0x8, 0xbe,0x44,0xfd, +0xa8,0x8, 0x2, 0xb, 0x4, 0xb, 0x34,0xb, 0x21,0x7e,0x93,0x2a,0x6e,0xbc,0x92,0x38, +0xc1,0xb, 0x31,0x7e,0xb3,0x2a,0x6d,0xbc,0xb3,0x38,0xb3,0x7e,0x54,0x0, 0x6, 0xad, +0x53,0x7d,0x15,0x1e,0x14,0x1e,0x14,0x1e,0x14,0x12,0x25,0x3e,0xbd,0x12,0x50,0x22, +0xbd,0x30,0x28,0x1e,0xe4,0x7a,0xb3,0x39,0x8, 0x7e,0xb3,0x39,0x9, 0xbe,0xb0,0x5, +0x50,0x7, 0x4, 0x7a,0xb3,0x39,0x9, 0x80,0x3c,0xe4,0x7a,0xb3,0x39,0x9, 0x74,0x1, +0x80,0x2f,0xbd,0x10,0x50,0x22,0xbd,0x32,0x28,0x1e,0xe4,0x7a,0xb3,0x39,0x9, 0x7e, +0xb3,0x39,0x8, 0xbe,0xb0,0x5, 0x50,0x7, 0x4, 0x7a,0xb3,0x39,0x8, 0x80,0x16,0xe4, +0x7a,0xb3,0x39,0x8, 0x74,0x2, 0x80,0x9, 0xe4,0x7a,0xb3,0x39,0x8, 0x7a,0xb3,0x39, +0x9, 0x7a,0xb3,0x39,0xa, 0x7e,0xb3,0x39,0xa, 0x22,0xe4,0x7a,0xb3,0x28,0xa8,0x7a, +0xb3,0x39,0xb, 0x22,0xca,0xd8,0xca,0x79,0xc2,0x3, 0x6c,0xdd,0x7e,0x57,0x28,0x99, +0x7d,0xf5,0x7e,0xe7,0x28,0x97,0x7e,0x37,0x37,0xfb,0x4d,0x33,0x68,0x4, 0x7d,0xf5, +0xe, 0xf4,0x6c,0xff,0x7e,0xa3,0x2a,0x6e,0x7c,0x8a,0x7e,0xb3,0x28,0xa5,0x14,0x68, +0x21,0x14,0x68,0x14,0x24,0xc2,0x68,0x8, 0x24,0xfb,0x68,0x16,0x24,0x45,0x78,0x10, +0x7c,0xfa,0x7e,0x83,0x2a,0x6d,0x80,0xa, 0x7e,0x73,0x2a,0x6d,0x2c,0x87,0x80,0x2, +0x6c,0x88,0x6c,0x99,0x80,0xf, 0x7c,0xb9,0x12,0x37,0x6f,0xbe,0x34,0x2, 0x58,0x8, +0x2, 0xb, 0xd0,0xb, 0x90,0x7e,0x33,0x28,0x84,0xbc,0x39,0x38,0xe9,0xbe,0xd0,0x3, +0x40,0x2, 0x61,0x25,0x7e,0xa3,0x28,0x85,0xbe,0xa0,0x0, 0x38,0xb, 0xbe,0x30,0x0, +0x28,0x37,0x7e,0xb3,0x26,0x83,0x70,0x31,0x6c,0x99,0x80,0x29,0xa, 0x29,0xa, 0x3f, +0x2d,0x32,0x3e,0x34,0x49,0x23,0x5, 0x7a,0xbd,0x2f,0x8, 0x17,0x49,0x3, 0x4, 0xfc, +0xbd,0xe, 0x58,0xf, 0x6d,0x33,0x9d,0x3e,0x12,0x8f,0xdc,0xbd,0x3, 0x8, 0x4, 0xd2, +0x3, 0x80,0x6, 0xb, 0x90,0xbc,0x89,0x38,0xd3,0x6d,0xee,0x9e,0xe7,0x2a,0x4f,0xbe, +0xe7,0x7, 0xf8,0x8, 0x2, 0xc2,0x3, 0x30,0x3, 0x20,0x7e,0xb3,0x39,0xb, 0x4, 0x7a, +0xb3,0x39,0xb, 0x7e,0x23,0x39,0xb, 0xbe,0x20,0xa, 0x28,0x1d,0x74,0xa, 0x7a,0xb3, +0x39,0xb, 0x74,0x1, 0x7a,0xb3,0x28,0xa8,0x80,0xf, 0x7e,0x23,0x39,0xb, 0xbe,0x20, +0x0, 0x28,0x6, 0x1e,0x20,0x7a,0x23,0x39,0xb, 0x6c,0xee,0xbe,0x30,0x0, 0x38,0x5, +0xbe,0xa0,0x0, 0x28,0x69,0x7e,0xb3,0x28,0xa7,0xb4,0x1, 0x9, 0x7e,0xb3,0x28,0xaa, +0xbe,0xb0,0x1, 0x68,0x59,0x7e,0xb3,0x28,0xa8,0xb4,0x1, 0x52,0x6c,0x99,0x80,0x1d, +0x7e,0x70,0x2, 0xac,0x79,0x9, 0xa3,0x26,0xfa,0x9, 0xd3,0x26,0xfb,0x12,0x2c,0x3c, +0xbe,0x34,0x0, 0x96,0x8, 0x5, 0x7e,0xe0,0x1, 0x80,0xa, 0xb, 0x90,0x7e,0xb3,0x28, +0x84,0xbc,0xb9,0x38,0xdb,0x6c,0x99,0x80,0x1d,0x7e,0x70,0x2, 0xac,0x79,0x9, 0xa3, +0x27,0x36,0x9, 0xd3,0x27,0x37,0x12,0x2c,0x3c,0xbe,0x34,0xff,0x6a,0x58,0x5, 0x7e, +0xe0,0x1, 0x80,0xa, 0xb, 0x90,0x7e,0xb3,0x28,0x85,0xbc,0xb9,0x38,0xdb,0x6c,0x99, +0x80,0x17,0xa, 0xe9,0xa, 0x5f,0x2d,0x5e,0x3e,0x54,0x49,0x55,0x5, 0x7a,0xbd,0x5f, +0x8, 0x5, 0x7e,0xe0,0x1, 0x80,0x6, 0xb, 0x90,0xbc,0x89,0x38,0xe5,0x4c,0xee,0x78, +0x25,0x7e,0xb3,0x39,0xc, 0x4, 0x7a,0xb3,0x39,0xc, 0x7e,0x73,0x39,0xc, 0xbe,0x70, +0x5, 0x28,0x22,0x74,0x5, 0x7a,0xb3,0x39,0xc, 0x7e,0xb3,0x28,0xa8,0x60,0x2, 0xd2, +0x15,0x12,0xb1,0x5a,0x80,0xf, 0x7e,0x73,0x39,0xc, 0xbe,0x70,0x0, 0x28,0x6, 0x1e, +0x70,0x7a,0x73,0x39,0xc, 0xda,0x79,0xda,0xd8,0x22,0xca,0xf8,0x7c,0xfb,0x7e,0x34, +0x0, 0x38,0xca,0x39,0xac,0x7f,0x2e,0x34,0x0, 0x50,0x6d,0x22,0x7e,0x8, 0x34,0x0, +0x12,0x20,0xb9,0x1b,0xfd,0x7e,0x34,0x0, 0x8c,0xca,0x39,0xac,0x7f,0x2e,0x34,0x1, +0x30,0x6d,0x22,0x7e,0x8, 0x3, 0x60,0x12,0x20,0xb9,0x1b,0xfd,0xda,0xf8,0x22,0x7e, +0xa3,0x2a,0x6e,0xa, 0x3a,0x3e,0x34,0x7e,0x8, 0x13,0x8e,0xe4,0x12,0x20,0xde,0x90, +0x60,0x93,0x93,0xa, 0x3b,0x7e,0xb3,0x2a,0x71,0xa, 0x2b,0x2d,0x23,0xa, 0x3a,0xad, +0x32,0x7d,0x43,0x6c,0x77,0x80,0x1d,0xa, 0x27,0x2d,0x24,0x12,0x87,0xdc,0xb, 0xa, +0x0, 0x7e,0x30,0x2, 0xac,0x37,0x2e,0x14,0x13,0x8e,0xb, 0x18,0x20,0x2d,0x20,0x1b, +0x18,0x20,0xb, 0x70,0xbc,0xa7,0x38,0xdf,0x22,0x6c,0xaa,0x80,0x1c,0x7e,0x50,0x2, +0xac,0x5a,0x49,0x12,0x13,0xc6,0x49,0x32,0x13,0x8e,0xbd,0x31,0x28,0x9, 0x2e,0x24, +0x13,0x8e,0x9d,0x31,0x1b,0x28,0x30,0xb, 0xa0,0x7e,0xb3,0x2a,0x6e,0xbc,0xba,0x38, +0xdc,0x22,0x7c,0xab,0x12,0xb3,0xe1,0xd2,0x16,0x7c,0xba,0x12,0x86,0xf8,0xc2,0x16, +0x22,0xa9,0xd1,0xcb,0x74,0x1, 0x2, 0x0, 0xe, 0x12,0xb3,0xe1,0x7e,0x34,0xd, 0xc8, +0x7e,0xb3,0x2a,0x6d,0x12,0xb4,0x22,0x12,0xb4,0x5, 0x7a,0x37,0x38,0xd6,0x74,0x1, +0x7a,0xb3,0x16,0x91,0x22,0x6d,0x33,0x90,0x60,0x91,0xe4,0x93,0xbe,0xb0,0x0, 0x28, +0x3, 0x2, 0xb4,0xef,0x90,0x60,0x92,0xe4,0x93,0xbe,0xb0,0x0, 0x28,0x3, 0x2, 0xb4, +0x56,0x22,0x7a,0xb3,0x24,0xf2,0x7e,0x53,0x2a,0x6e,0x7a,0x53,0x24,0xf3,0x7a,0x37, +0x24,0xfa,0xe4,0x7a,0xb3,0x24,0xf4,0x7a,0xb3,0x24,0xf5,0x7e,0x34,0x40,0x0, 0x7a, +0x37,0x24,0xf6,0x7e,0x34,0x0, 0x20,0x12,0xb4,0x4d,0x2, 0xd, 0x7, 0x7a,0x37,0x24, +0xfc,0x7e,0x8, 0x24,0xf2,0x22,0xca,0xf8,0x6d,0xee,0x7d,0xfe,0x7e,0x83,0x2a,0x6e, +0xa, 0xd8,0x90,0x60,0x94,0xe4,0x93,0xb4,0xff,0x2f,0x7e,0x8, 0x13,0x8e,0x6c,0xaa, +0x80,0x18,0x7e,0x70,0x2, 0xac,0x7a,0x49,0x23,0x13,0xfe,0x7f,0x50,0x2d,0xb3,0xb, +0x5a,0xc0,0x9d,0xc2,0x59,0xc3,0x13,0xc6,0xb, 0xa0,0xbc,0x8a,0x38,0xe4,0x90,0x60, +0x92,0xe4,0x93,0x7c,0x9b,0x6d,0xdd,0x80,0x11,0x7e,0x8, 0x13,0xfe,0x90,0x60,0x92, +0xe4,0x93,0xa, 0xcb,0x1b,0xc4,0x7d,0x3c,0x7c,0x97,0x6c,0xff,0x80,0x38,0x6c,0xaa, +0x80,0x28,0xa, 0x3a,0x7d,0x23,0x2d,0x2e,0x3e,0x24,0x49,0xc2,0x13,0xfe,0x2d,0x3d, +0x3e,0x34,0x2d,0x31,0x7d,0x20,0xb, 0x1a,0xb0,0x7d,0x3c,0x9d,0x3b,0x12,0x21,0x0, +0x7d,0xa3,0xbd,0xfa,0x58,0x2, 0x7d,0xfa,0xb, 0xa0,0xbc,0x8a,0x38,0xd4,0xa, 0xc8, +0x2d,0xec,0x2d,0xdc,0xb, 0xf0,0xbc,0x9f,0x38,0xc4,0x7d,0x3f,0xda,0xf8,0x22,0xca, +0xf8,0x6d,0x44,0x7e,0xf3,0x2a,0x6e,0x90,0x60,0x93,0xe4,0x93,0xa, 0xfb,0x7e,0xb3, +0x2a,0x6d,0xa, 0xeb,0x2d,0xef,0xa, 0xff,0xad,0xfe,0xa, 0xef,0x2d,0xef,0x90,0x60, +0x94,0xe4,0x93,0xb4,0xff,0x31,0x7e,0x8, 0x13,0x8e,0x6c,0xaa,0x80,0x23,0xa, 0xda, +0x2d,0xdf,0x3e,0xd4,0x7e,0x1f,0x38,0xd9,0x2d,0x3d,0xb, 0x1a,0xd0,0x7e,0x50,0x2, +0xac,0x5a,0x7f,0x50,0x2d,0xb2,0xb, 0x5a,0x30,0x9d,0x3d,0x59,0x32,0x13,0xc6,0xb, +0xa0,0xbc,0xfa,0x38,0xd9,0x80,0xa, 0x7d,0x5e,0x3e,0x54,0x7e,0xf, 0x38,0xd9,0x2d, +0x15,0x6c,0xaa,0x80,0x2c,0xa, 0xea,0x2d,0xef,0x3e,0xe4,0x7e,0x1f,0x38,0xd9,0x2d, +0x3e,0xb, 0x1a,0xe0,0x7e,0x70,0x2, 0xac,0x7a,0x2d,0x31,0x7d,0x20,0xb, 0x1a,0xd0, +0x7d,0x3e,0x9d,0x3d,0x12,0x21,0x0, 0x7d,0xc3,0xbd,0x4c,0x58,0x2, 0x7d,0x4c,0xb, +0xa0,0xbc,0xfa,0x38,0xd0,0x7d,0x34,0xda,0xf8,0x22,0xca,0x78,0xa9,0x31,0xe5,0x6, +0xa9,0xd5,0xea,0xa9,0xc5,0xea,0xa9,0x30,0xe5,0x19,0xa9,0xd0,0x9e,0xa9,0xd4,0x9e, +0x5, 0x4e,0x7e,0x73,0x39,0x6, 0xbe,0x71,0x4e,0x38,0x2, 0xd2,0x17,0xa9,0xd0,0x9e, +0xa9,0xd7,0x9e,0xa9,0x34,0xe5,0x5, 0xa9,0xc4,0xcd,0xc2,0x95,0xa9,0x32,0xe5,0x3, +0xa9,0xc2,0xcd,0xa9,0x33,0xe5,0x3, 0xa9,0xc3,0xcd,0xa9,0x37,0xe5,0x3, 0xa9,0xc7, +0xcd,0xa9,0x36,0xe5,0x3, 0xa9,0xc6,0xcd,0xda,0x78,0x32,0xc2,0x9a,0xa9,0xd4,0xa6, +0xc2,0x88,0xd2,0xa8,0x22,0x7e,0x14,0xd7,0xe8,0x7e,0x4, 0x0, 0xff,0x7e,0x34,0x47, +0x52,0x7e,0x24,0x55,0x50,0x79,0x30,0x0, 0x2, 0x1b,0xa, 0x20,0x7e,0x34,0x45,0x20, +0x7e,0x24,0x41,0x44,0x79,0x30,0x0, 0x6, 0x79,0x20,0x0, 0x4, 0x7e,0x34,0x99,0x33, +0x7e,0x24,0x66,0xcc,0x79,0x30,0x0, 0xa, 0x79,0x20,0x0, 0x8, 0x7e,0x34,0x41,0x47, +0x7e,0x24,0x46,0x4c,0x79,0x30,0x0, 0xe, 0x79,0x20,0x0, 0xc, 0x22,0xa9,0xd0,0xce, +0xa2,0x3, 0xa9,0x95,0xc9,0x22,0xa9,0xc6,0xeb,0xa9,0xd6,0xac,0xa9,0xd6,0xec,0xd2, +0x86,0xa9,0xc2,0xeb,0xa9,0xd2,0xac,0xa9,0xd2,0xec,0xd2,0x82,0x22,0x75,0x9a,0x2f, +0xa9,0xd1,0x99,0xd2,0x9c,0xa9,0xd6,0xdf,0x22,0xc2,0x8e,0x43,0x89,0x20,0x75,0x8d, +0x1, 0x75,0x8b,0x0, 0xd2,0x8e,0xd2,0xab,0x22,0x75,0xb7,0x0, 0x75,0xb8,0x0, 0x75, +0xf7,0x0, 0x75,0xf8,0x0, 0xa9,0xd0,0xb7,0xd2,0xb8,0xa9,0xd5,0xb7,0xd2,0xbd,0xa9, +0xd0,0xf7,0xd2,0xf8,0xa9,0xc1,0xb7,0xc2,0xb9,0xa9,0xc3,0xb7,0xc2,0xbb,0xa9,0xc6, +0xb7,0xc2,0xbe,0x22,0x75,0xe7,0x6b,0x2, 0xb6,0x9a,0xe4,0x7e,0x34,0xd7,0xfc,0x7e, +0x24,0x0, 0xff,0x7a,0x1b,0xb0,0x7e,0x34,0xd7,0xfd,0x7a,0x1b,0xb0,0x75,0xe9,0xff, +0x22,0xa9,0xd0,0x99,0xa9,0xc6,0xdf,0x22,0x7e,0x37,0x39,0x4, 0xb, 0x34,0x7a,0x37, +0x39,0x4, 0xbe,0x34,0xff,0x0, 0x40,0x8, 0x7e,0x34,0xff,0x0, 0x7a,0x37,0x39,0x4, +0x22,0x7c,0x6b,0x6c,0x77,0x6c,0xaa,0x7e,0xb3,0x39,0x13,0xb4,0xa5,0x46,0x12,0xb7, +0x8f,0x75,0xb5,0x5, 0xa9,0x36,0xb3,0xfc,0x12,0xb7,0x2d,0xa9,0x36,0xb3,0xfc,0x12, +0xb7,0x2d,0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0x7a,0x61,0xb5,0xa9,0x36,0xb3,0xfc, +0x12,0xb7,0x2d,0xa9,0x36,0xb3,0xfc,0x12,0xb7,0x2d,0xa9,0x36,0xb3,0xfc,0xa9,0xc6, +0xb3,0x7e,0x71,0xb5,0x75,0xb5,0x0, 0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0x7e,0xa1, +0xb5,0xa9,0xd2,0xb4,0x7c,0x47,0x6c,0x55,0xa, 0x3a,0x4d,0x32,0x22,0xa9,0xc6,0xb3, +0x75,0xb5,0x0, 0x22,0x74,0x6, 0x7d,0x30,0x7d,0x23,0x7c,0x6b,0xa, 0x14,0x7c,0x73, +0x7d,0x52,0x7c,0xab,0x7e,0xb3,0x39,0x13,0xb4,0xa5,0x3c,0x12,0xb7,0x8f,0x75,0xb5, +0x1, 0xa9,0x36,0xb3,0xfc,0x12,0xb7,0x2d,0xa9,0x36,0xb3,0xfc,0x12,0xb7,0x2d,0xa9, +0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0x7a,0x61,0xb5,0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3, +0x7a,0x71,0xb5,0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0x7a,0xa1,0xb5,0xa9,0x36,0xb3, +0xfc,0xa9,0xc6,0xb3,0xa9,0xd2,0xb4,0x22,0x74,0x4, 0x7d,0x30,0x2, 0xb7,0x38,0xa9, +0xc2,0xb4,0xa9,0xc6,0xb3,0x22,0x74,0x2, 0x7d,0x3f,0x2, 0xb7,0x38,0x7d,0x42,0x7f, +0x60,0x7d,0x3, 0x12,0xb7,0xef,0x74,0x2, 0x12,0xb6,0xd1,0x7d,0xf3,0x4e,0xf4,0x0, +0x1, 0x4e,0xf4,0x0, 0xa, 0x12,0xb7,0x96,0x7a,0x45,0x36,0x7d,0x30,0x6d,0x22,0x7f, +0x6, 0x12,0xb7,0xd7,0x5e,0xf4,0xff,0xfd,0x12,0xb7,0x96,0x2, 0xb7,0xce,0xa9,0xc5, +0xca,0xe4,0x7a,0xb3,0x39,0x13,0x22,0x12,0xb8,0x38,0x7e,0x35,0x36,0x12,0xb8,0x1c, +0xa9,0xd2,0xb4,0xd3,0x22,0x74,0x6, 0x12,0xb6,0xd1,0x7d,0x3, 0x6c,0x11,0x22,0xa9, +0xd5,0xca,0xa9,0xd1,0xea,0xa9,0xc1,0xea,0x74,0xa5,0x7a,0xb3,0x39,0x13,0x22,0xca, +0xf8,0x7c,0xfb,0x74,0x2, 0x12,0xb6,0xd1,0x4c,0xff,0x78,0x5, 0x5e,0x70,0xdf,0x80, +0x3, 0x4e,0x70,0x20,0x74,0x2, 0x12,0xb7,0x38,0xda,0xf8,0x22,0x6d,0x22,0x80,0x13, +0x75,0xb5,0x0, 0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0xe5,0xb5,0x7a,0xb, 0xb0,0xb, +0x14,0xb, 0x24,0xbd,0x32,0x38,0xe9,0x22,0x7d,0x52,0xf5,0x3a,0x7c,0xb6,0x7c,0xa5, +0xa, 0x44,0xf5,0x39,0x7f,0x21,0xf5,0x38,0xa9,0xc2,0xb4,0x74,0xb, 0x12,0xb8,0x63, +0xe5,0x3a,0x12,0xb8,0x63,0xe5,0x39,0x12,0xb8,0x63,0xe5,0x38,0x12,0xb8,0x63,0xe4, +0x2, 0xb8,0x63,0xf5,0xb5,0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0xd3,0x22,0xd2,0xc8, +0x43,0xed,0xf, 0xc2,0xea,0x75,0xb3,0x13,0xa9,0xd1,0xb4,0xa9,0xc0,0xb4,0x12,0xb7, +0xef,0xe4,0x12,0xb7,0xff,0x2, 0xb7,0xce,0x7c,0xa6,0x7c,0x37,0x7c,0x2b,0xe4,0x6c, +0x11,0x80,0x46,0xbc,0xa1,0x68,0x40,0x1a,0x41,0x3e,0x44,0x9, 0x4, 0x26,0xfb,0xa, +0x20,0xa, 0x33,0x9d,0x32,0x12,0x21,0x0, 0x7c,0x7, 0x1a,0x41,0x3e,0x44,0x9, 0x74, +0x26,0xfa,0xa, 0x27,0xa, 0x32,0x9d,0x32,0x12,0x21,0x0, 0x7c,0x97,0xbe,0x90,0x1, +0x18,0x8, 0xbe,0x0, 0x1, 0x18,0x3, 0x74,0x1, 0x22,0xbe,0x90,0x2, 0x18,0x8, 0xbe, +0x0, 0x2, 0x18,0x3, 0x74,0x2, 0x22,0xb, 0x10,0x7e,0x83,0x28,0x84,0xbc,0x81,0x18, +0xb2,0x22,0x7f,0x71,0x69,0x37,0x0, 0x2, 0x7d,0x53,0x12,0xb9,0x3c,0xb, 0x7a,0x20, +0x2d,0x25,0x1b,0xa, 0x20,0x69,0x27,0x0, 0x4, 0x7d,0x52,0xc4,0x54,0xf0,0x7c,0xab, +0xe4,0x1e,0x34,0x1e,0x34,0x2d,0x35,0x79,0x30,0x0, 0x2, 0x69,0x37,0x0, 0x6, 0x7d, +0x53,0x7c,0xab,0xe4,0x3e,0x54,0x3e,0x54,0x1e,0x24,0x1e,0x24,0x1e,0x24,0x1e,0x24, +0x2d,0x25,0x79,0x20,0x0, 0x4, 0x69,0x27,0x0, 0x8, 0x7c,0x45,0x6c,0x55,0x12,0x25, +0x3c,0x1e,0x34,0x1e,0x34,0x2d,0x32,0x79,0x30,0x0, 0x6, 0x22,0x3, 0x3, 0x54,0xc0, +0x7c,0xab,0xe4,0x22,0x7c,0xab,0x9f,0x11,0x30,0x3, 0x22,0x6c,0x99,0x80,0x1a,0xa, +0xf9,0x2d,0xf1,0x7d,0xe0,0x7e,0x7b,0xb0,0x7e,0x78,0x0, 0x1, 0x60,0x5, 0x2f,0x77, +0x14,0x78,0xfb,0x4d,0x3f,0x4d,0x2e,0xb, 0x90,0xbc,0xa9,0x38,0xe2,0x22,0xca,0xf8, +0x90,0x60,0x51,0xe4,0x93,0x7c,0xfb,0x7e,0x8, 0x1f,0x34,0x12,0x3f,0xd9,0x7e,0x8, +0x1f,0x3c,0x12,0xb9,0xfa,0xd2,0x3, 0x7e,0x8, 0x2a,0xdc,0x7c,0xbf,0x12,0xb9,0x44, +0x7e,0x8, 0x1f,0x34,0x7a,0xf, 0x1f,0x58,0x7f,0x1, 0x7a,0x17,0x1f,0x5c,0x7d,0x32, +0x7a,0x37,0x1f,0x5e,0x7e,0x18,0x1f,0x3c,0x7a,0x1f,0x1f,0x64,0x6c,0x77,0x80,0xe, +0x12,0xba,0x42,0x50,0x7, 0x12,0xba,0x39,0x19,0x51,0x1f,0x3c,0xb, 0x70,0xbc,0xf7, +0x38,0xee,0x12,0xb9,0xe7,0xe4,0x12,0xb9,0xef,0xe4,0x12,0xc, 0x9b,0x6d,0x33,0x7a, +0x37,0x1f,0x5c,0x7a,0x37,0x1f,0x5e,0x12,0xb9,0xe7,0x74,0x1, 0x12,0xb9,0xef,0x74, +0x1, 0x12,0xc, 0x9b,0xda,0xf8,0x22,0xa9,0xc6,0xea,0x7e,0x8, 0x1f,0x58,0x22,0x12, +0xc, 0x9b,0xa9,0xd6,0xea,0x7e,0x8, 0x1f,0x58,0x22,0x7e,0x34,0x0, 0x1c,0x74,0x3f, +0x2, 0x20,0xde,0x7e,0x8, 0x1f,0x34,0x12,0xb9,0xfa,0x6c,0x77,0x80,0xe, 0x12,0xba, +0x42,0x50,0x7, 0x12,0xba,0x39,0x19,0x51,0x1f,0x34,0xb, 0x70,0x7e,0x53,0x2a,0x6e, +0xbc,0x57,0x38,0xea,0xa9,0xc6,0xea,0x7e,0x8, 0x1f,0x34,0xe4,0x12,0x11,0x38,0xa9, +0xd6,0xea,0x7e,0x8, 0x1f,0x34,0x2, 0x11,0x38,0xa, 0x27,0x9, 0x52,0x2b,0x44,0xa, +0x16,0x22,0xa, 0x27,0x9, 0x62,0x2a,0xdc,0xbe,0x60,0x1c,0x22,0x7c,0x57,0x7c,0xab, +0x6c,0x77,0x80,0x50,0xa, 0x47,0x7e,0x7d,0x24,0x2d,0xf4,0x7e,0x7b,0x60,0xa, 0x46, +0x2e,0x44,0x20,0x73,0x7a,0x91,0x82,0x7a,0x81,0x83,0xe4,0x93,0x7c,0x6b,0xbe,0x60, +0xd, 0x38,0x12,0x7e,0xd4,0x0, 0x1, 0x7c,0xb6,0x60,0x5, 0x3e,0xd4,0x14,0x78,0xfb, +0x7e,0x7d,0x28,0x80,0x15,0x9e,0x60,0xe, 0x7e,0xd4,0x0, 0x1, 0x7c,0xb6,0x60,0x5, +0x3e,0xd4,0x14,0x78,0xfb,0x7e,0x7d,0x28,0xb, 0xf5,0xb, 0x7a,0x40,0x4d,0x4d,0x1b, +0x7a,0x40,0xb, 0x70,0xbc,0x57,0x38,0xac,0x6c,0x77,0x80,0x58,0xa, 0x27,0x7f,0x70, +0x2d,0xf2,0x7e,0x7b,0x60,0xbe,0x60,0xd, 0x38,0x11,0x12,0xbb,0x9, 0x60,0x5, 0x3e, +0x44,0x14,0x78,0xfb,0x7e,0x7d,0x28,0xb, 0xf6,0x80,0x2f,0xbe,0x60,0x1b,0x38,0x16, +0x9e,0x60,0xe, 0x12,0xbb,0x9, 0x60,0x5, 0x3e,0x44,0x14,0x78,0xfb,0x7e,0x7d,0x28, +0x2e,0xf4,0x0, 0x6, 0x80,0x14,0x9e,0x60,0x1c,0x12,0xbb,0x9, 0x60,0x5, 0x3e,0x44, +0x14,0x78,0xfb,0x7e,0x7d,0x28,0x2e,0xf4,0x0, 0x8, 0xb, 0x7a,0x20,0x4d,0x24,0x1b, +0x7a,0x20,0xb, 0x70,0xbc,0xa7,0x38,0xa4,0x22,0x7e,0x44,0x0, 0x1, 0x7c,0xb6,0x22, +0x7e,0x27,0x28,0xa3,0x6d,0x11,0x9d,0x12,0x6c,0xaa,0x80,0x64,0x30,0x0, 0x2e,0x7e, +0x90,0x2, 0xac,0x9a,0x49,0x34,0x5, 0xf8,0x49,0x4, 0x4, 0x0, 0xbd,0x2, 0x8, 0x11, +0x7e,0xb3,0x25,0xf6,0xb4,0x1, 0x16,0x7d,0xf2,0x2d,0xf3,0x59,0xf4,0x5, 0xf8,0x80, +0xc, 0xbd,0x1, 0x58,0x8, 0x7d,0x3, 0x9d,0x2, 0x59,0x4, 0x5, 0xf8,0x30,0x2, 0x2e, +0x7e,0x90,0x2, 0xac,0x9a,0x49,0x34,0x6, 0x76,0x49,0x4, 0x4, 0x7e,0xbd,0x2, 0x8, +0x11,0x7e,0xb3,0x25,0xf6,0xb4,0x1, 0x16,0x7d,0xf2,0x2d,0xf3,0x59,0xf4,0x6, 0x76, +0x80,0xc, 0xbd,0x1, 0x58,0x8, 0x7d,0x3, 0x9d,0x2, 0x59,0x4, 0x6, 0x76,0xb, 0xa0, +0x7e,0xb3,0x2a,0x74,0xa, 0xb, 0x7e,0xb3,0x2a,0x73,0xa, 0x4b,0x2d,0x40,0xa, 0xa, +0xbd,0x4, 0x48,0x88,0x22,0x6c,0x33,0x80,0x9, 0xe4,0xa, 0x33,0x19,0xb3,0x27,0x72, +0xb, 0x30,0x90,0x60,0x9a,0xe4,0x93,0x12,0x77,0xf6,0xb, 0x24,0xa, 0x33,0xbd,0x32, +0x48,0xe7,0xe4,0x7a,0xb3,0x28,0x84,0x7a,0xb3,0x28,0x85,0x6d,0x33,0x7a,0x37,0x28, +0x86,0x7a,0x37,0x28,0x88,0x7a,0x37,0x28,0x8a,0x7a,0x37,0x28,0x8e,0x7e,0xd4,0x1f, +0x36,0x5e,0xd4,0xff,0xfe,0x6d,0xcc,0x7e,0x1f,0x13,0x8a,0x7a,0x37,0x1f,0x76,0x7d, +0x3d,0x7a,0x37,0x1f,0x7a,0x7e,0x34,0x15,0x9e,0x7a,0x37,0x1f,0x78,0x7e,0x73,0x2a, +0x6d,0x7a,0x73,0x1f,0x73,0x7e,0x73,0x2a,0x6e,0x7a,0x73,0x1f,0x72,0x7e,0x37,0x2a, +0x5c,0x7a,0x37,0x1f,0x7c,0x7e,0x37,0x2a,0x5e,0x7a,0x37,0x1f,0x7e,0x7e,0x37,0x2a, +0x60,0x7a,0x37,0x1f,0x80,0x90,0x60,0x9a,0x93,0x7a,0xb3,0x1f,0x74,0x7e,0x73,0x3, +0xff,0x7a,0x73,0x1f,0x75,0x7e,0x8, 0x1f,0x72,0x7e,0x18,0x1f,0x82,0x12,0x8, 0x0, +0x7e,0x73,0x1f,0x82,0x7a,0x73,0x28,0x84,0x7e,0x73,0x1f,0x83,0x7a,0x73,0x28,0x85, +0x7e,0x37,0x1f,0x84,0x7a,0x37,0x28,0x86,0x7e,0x37,0x1f,0x86,0x7a,0x37,0x28,0x88, +0x7e,0x37,0x1f,0x8c,0x7a,0x37,0x28,0x8a,0x7e,0x37,0x1f,0x8e,0x7d,0x23,0x7a,0x53, +0x28,0x8c,0xa, 0x36,0x7a,0x73,0x28,0x8d,0x7e,0x37,0x1f,0x88,0x7a,0x37,0x28,0x8e, +0x7e,0x37,0x1f,0x8a,0x7d,0x23,0x7a,0x53,0x28,0x90,0xa, 0x36,0x7a,0x73,0x28,0x91, +0x6c,0x33,0x80,0x1d,0x7c,0xb3,0x12,0x2f,0xd0,0x74,0x2, 0xac,0xb3,0x49,0x45,0x15, +0x9e,0xa, 0x38,0x7c,0x27,0x19,0x25,0x26,0xfa,0x7c,0x29,0x19,0x25,0x26,0xfb,0xb, +0x30,0x7e,0x23,0x28,0x84,0xbc,0x23,0x38,0xdb,0x6c,0x33,0x80,0x1b,0x74,0x2, 0xac, +0xb3,0x7f,0x16,0x2d,0x35,0xb, 0x1a,0x40,0xa, 0x38,0x7c,0x27,0x19,0x25,0x27,0x36, +0x7c,0x29,0x19,0x25,0x27,0x37,0xb, 0x30,0x7e,0x23,0x28,0x85,0xbc,0x23,0x38,0xdd, +0x22,0x7c,0x7b,0xa, 0x57,0x9e,0x54,0x0, 0x20,0xe, 0x54,0xe, 0x54,0xe, 0x54,0xe, +0x54,0x7c,0xab,0x7c,0x67,0x5e,0x60,0xf0,0xa5,0xbe,0x20,0x1d,0x7c,0xb7,0x54,0xf, +0x7e,0x24,0x0, 0x1, 0x60,0x5, 0x3e,0x24,0x14,0x78,0xfb,0x7e,0x73,0x38,0xfb,0xa, +0x47,0x5d,0x42,0x7e,0x73,0x37,0x32,0x80,0x36,0xa5,0xbe,0x30,0x18,0x12,0xbd,0x44, +0x60,0x5, 0x3e,0x34,0x14,0x78,0xfb,0x7e,0x53,0x38,0xfc,0xa, 0x45,0x5d,0x43,0x7e, +0x73,0x37,0x33,0x80,0x1a,0x12,0xbd,0x44,0x60,0x5, 0x3e,0x34,0x14,0x78,0xfb,0xa, +0x2a,0x9, 0xb2,0x38,0xfb,0xa, 0x4b,0x5d,0x43,0xa, 0x5a,0x9, 0x75,0x37,0x34,0xa, +0x57,0x5d,0x54,0x22,0x7c,0xb7,0x54,0xf, 0x7e,0x34,0x0, 0x1, 0x22,0x7e,0xb3,0x2f, +0x80,0xb4,0x4, 0x2, 0xd3,0x22,0xc3,0x22,0x7d,0xf2,0x7d,0xe3,0x7e,0x8, 0x2f,0x80, +0x7e,0x34,0x0, 0x28,0xe4,0x12,0x20,0xde,0x7e,0x8, 0x2b,0xbf,0x7e,0x34,0x3, 0xc0, +0x12,0x20,0xde,0x7a,0xb3,0x37,0x34,0x7e,0x34,0x62,0x8e,0x12,0x23,0x9e,0x7a,0x37, +0x2b,0xb7,0x7a,0xe7,0x2f,0x84,0x7a,0xf7,0x2f,0x86,0x7a,0xe7,0x2f,0x88,0x7a,0xe7, +0x2f,0x8c,0x7a,0xe7,0x2f,0x90,0x7a,0xe7,0x2f,0x94,0x7a,0xf7,0x2f,0x8a,0x7a,0xf7, +0x2f,0x8e,0x7a,0xf7,0x2f,0x92,0x7a,0xf7,0x2f,0x96,0x7a,0xe7,0x2b,0xbb,0x7a,0xf7, +0x2b,0xbd,0x7a,0xb3,0x2f,0xa8,0x74,0x2, 0x7a,0xb3,0x2f,0x7f,0x22,0x74,0xfe,0x7a, +0xb3,0x37,0x34,0xe4,0x7a,0xb3,0x2f,0x80,0x22,0x7d,0x13,0x3e,0x14,0x3e,0x14,0x3e, +0x14,0x7e,0x37,0x38,0xe2,0x9e,0x37,0x38,0xde,0x12,0x21,0x0, 0xbd,0x31,0x38,0x12, +0x7e,0x37,0x38,0xe4,0x9e,0x37,0x38,0xe0,0x12,0x21,0x0, 0xbd,0x31,0x38,0x3, 0x74, +0x1, 0x22,0xe4,0x22,0xca,0xd8,0xca,0x79,0x6c,0xff,0x6d,0xdd,0x7d,0xed,0x7d,0xfd, +0x7e,0xd3,0x2a,0x2, 0x7e,0xe3,0x2a,0x3, 0x7e,0xb3,0x38,0xdd,0x60,0x11,0x7e,0xc7, +0x38,0xe6,0x4d,0xcc,0x78,0x2, 0xc1,0xe8,0xbe,0xd0,0x1, 0x28,0x2, 0xc1,0xe8,0xbe, +0xd0,0x1, 0x78,0x1d,0xbe,0xb0,0x4, 0x78,0x2, 0xc1,0xe8,0x7e,0xe7,0x29,0x8, 0x7e, +0xf7,0x29,0xa, 0x7d,0x3e,0x7d,0x2f,0x12,0x66,0xe6,0xbe,0xb0,0x1, 0x78,0x2, 0xc1, +0xe8,0x7e,0xa3,0x38,0xdd,0x7c,0xba,0x14,0x68,0x29,0x14,0x68,0x54,0x14,0x68,0x23, +0x14,0x78,0x2, 0xc1,0xe5,0xb, 0xb2,0x68,0x2, 0xc1,0xe8,0xbe,0xd0,0x1, 0x68,0x2, +0xc1,0xf7,0x4c,0xee,0x68,0x2, 0xc1,0xf7,0x74,0x1, 0x7a,0xb3,0x38,0xdd,0x12,0xbf, +0xa, 0x80,0x65,0x4c,0xdd,0x78,0x1d,0xbe,0xa0,0x1, 0x78,0xc, 0x74,0x2, 0x7a,0xb3, +0x38,0xdd,0x7e,0x34,0x62,0x64,0x80,0x54,0x74,0x4, 0x7a,0xb3,0x38,0xdd,0x7e,0x34, +0x62,0x68,0x80,0x48,0x12,0xbf,0x13,0x90,0x62,0x57,0x12,0xbe,0xfe,0x68,0x49,0x80, +0x56,0xbe,0xd0,0x1, 0x78,0x51,0x4c,0xee,0x78,0x4d,0x12,0xbf,0x13,0x7e,0x34,0x62, +0x60,0x12,0x23,0x9e,0x7e,0x14,0x62,0x64,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0xc0,0x9d, +0xc3,0xbe,0xc7,0x38,0xe6,0x40,0x21,0x90,0x62,0x56,0x12,0xbe,0xfe,0x68,0x19,0x12, +0xbf,0xa, 0x74,0x3, 0x7a,0xb3,0x38,0xdd,0x7e,0x34,0x62,0x64,0x12,0x23,0x9e,0x7a, +0x37,0x38,0xe6,0x80,0x12,0x7e,0xf0,0x24,0xe4,0x7a,0xb3,0x38,0xdd,0x6d,0x33,0x7a, +0x37,0x38,0xe6,0x7c,0xbf,0x80,0x2, 0x7c,0xbf,0xda,0x79,0xda,0xd8,0x22,0xe4,0x93, +0xa, 0x3b,0x12,0xbd,0xc9,0xa, 0xdb,0x4d,0xdd,0x22,0x7a,0xe7,0x38,0xde,0x7a,0xf7, +0x38,0xe0,0x22,0x7a,0xe7,0x38,0xe2,0x7a,0xf7,0x38,0xe4,0x22,0xca,0xf8,0x7f,0x51, +0x7f,0x40,0x7e,0x37,0x2f,0x90,0x7a,0x35,0x2a,0x7e,0x37,0x2f,0x8e,0x7a,0x35,0x2c, +0x7e,0x37,0x2f,0x9c,0x7a,0x35,0x26,0x7e,0x37,0x2f,0x9e,0x7a,0x35,0x28,0x6c,0xff, +0x80,0x1e,0x7e,0x34,0x0, 0x26,0x7e,0x14,0x0, 0x2f,0x74,0x9, 0x12,0x1f,0x8c,0x74, +0x2, 0xac,0xbf,0x7f,0x4, 0x2d,0x15,0x7f,0x15,0x2d,0x35,0x12,0xbf,0x6b,0xb, 0xf0, +0x7e,0x73,0x38,0x3f,0xbc,0x7f,0x38,0xda,0xda,0xf8,0x22,0x7f,0x71,0x7f,0x60,0x7e, +0x35,0x2f,0xbe,0x34,0x0, 0x0, 0x38,0x7, 0x7e,0x34,0x0, 0x1, 0x7a,0x35,0x2f,0x7e, +0x35,0x31,0xbe,0x34,0x0, 0x0, 0x38,0x7, 0x7e,0x34,0x0, 0x1, 0x7a,0x35,0x31,0xb, +0x6a,0x30,0x9e,0x35,0x33,0x6d,0x22,0x7e,0x33,0x38,0x41,0x12,0xbf,0xc0,0x7e,0x15, +0x2f,0x12,0x1f,0x5, 0x1b,0x6a,0x30,0xb, 0x7a,0x30,0x9e,0x35,0x35,0x6d,0x22,0x7e, +0x33,0x38,0x42,0x12,0xbf,0xc0,0x7e,0x15,0x31,0x12,0x1f,0x5, 0x1b,0x7a,0x30,0x22, +0xa, 0x13,0x6d,0x0, 0x2, 0x1e,0xeb,0x7a,0x1d,0x24,0x7e,0xa3,0x2a,0x6e,0x74,0x2, +0xa4,0x7e,0xf, 0x6, 0xf8,0x2d,0x15,0x7e,0xb3,0x2a,0x6d,0x7e,0x37,0x2a,0x51,0x22, +0x74,0x1, 0x7a,0xb3,0x37,0xa0,0x7e,0x34,0x60,0xa3,0x22,0x7a,0x1d,0x24,0x7e,0xf, +0x6, 0xf8,0x7e,0xb3,0x2a,0x6e,0x7e,0x37,0x2a,0x53,0x22,0x7e,0xa3,0x2a,0x6e,0x7e, +0xb3,0x2a,0x6d,0xa4,0x22,0x74,0x1, 0x7a,0xb3,0x2b,0x1, 0x7a,0xb3,0x2b,0x1d,0x22, +0x9, 0x75,0x26,0x36,0x7a,0x73,0x2b,0x20,0x22,0x9, 0x75,0x26,0x34,0x7a,0x73,0x2b, +0x14,0x22,0x7e,0x8, 0x2a,0x6d,0x2, 0xd, 0x72,0xa, 0x47,0x7f,0x70,0x2d,0xf4,0x7e, +0x7b,0x60,0xbc,0x6b,0x22,0x6e,0x34,0xff,0xff,0xb, 0x34,0x7a,0x37,0x2a,0x5e,0x22, +0x7e,0x29,0x60,0x4c,0x6a,0x7a,0x29,0x60,0xb, 0x70,0x22,0x2e,0x14,0x1, 0x30,0x6d, +0x0, 0x7e,0x18,0x3, 0x60,0x22,0x2e,0x14,0x0, 0x50,0x6d,0x0, 0x7e,0x18,0x34,0x0, +0x22,0x7e,0x70,0x2, 0xac,0x7c,0x9, 0xb3,0x26,0xfa,0x22,0xe4,0x7a,0xb3,0x36,0x69, +0x7a,0xb3,0x36,0x71,0x22,0x74,0x1, 0x12,0x13,0xde,0xe4,0x2, 0x0, 0x1e,0x7a,0x37, +0x2a,0x4f,0x7e,0x34,0x61,0x57,0x22,0x7a,0x37,0x28,0xa1,0x7e,0x34,0x61,0xc2,0x22, +0x90,0x60,0xaa,0xe4,0x93,0xbe,0xb0,0x1, 0x22,0x9, 0x75,0x26,0x33,0x7a,0x73,0x2b, +0xf, 0x22,0x74,0x5, 0xac,0xbc,0x9, 0xb5,0x26,0x33,0x22,0x7e,0x8, 0x0, 0x25,0x7e, +0x18,0x0, 0x24,0x22,0x7e,0xe3,0x2a,0x6f,0x7e,0xd3,0x2a,0x70,0x22,0x6d,0x33,0xe4, +0x6c,0x55,0x2, 0x13,0x1, 0x7e,0x37,0x25,0xf4,0x7a,0x37,0x31,0xcc,0x22,0x7e,0x34, +0xd, 0xc8,0x7a,0x37,0x31,0xce,0x22,0x7e,0x73,0x37,0xbd,0x7a,0x73,0x2b,0x20,0x22, +0x12,0x0, 0x1e,0x7e,0xb3,0x2a,0xfc,0x22,0x7c,0xbe,0x7c,0x7d,0x2, 0x2c,0x40,0x7e, +0x73,0x28,0x92,0xbe,0x70,0x0, 0x22,0x7e,0xb3,0x28,0xa8,0xbe,0xb0,0x1, 0x22,0x12, +0x0, 0xe, 0x7e,0x1f,0x13,0x86,0x22,0x7e,0xb3,0x37,0x31,0xbe,0xb0,0x1, 0x22,0x7e, +0x73,0x2a,0x2, 0xbe,0x70,0x0, 0x22,0x90,0x60,0xa7,0xe4,0x93,0x7c,0xab,0x22,0xff, +0xc1,0x20,0x3e,0xdf,0x94,0x6b,0x10,0x51, \ No newline at end of file diff --git a/drivers/input/touchscreen/FT5346/ft_app_ic_oufei_tianma.txt b/drivers/input/touchscreen/FT5346/ft_app_ic_oufei_tianma.txt new file mode 100644 index 0000000000000..f65bdd64e5341 --- /dev/null +++ b/drivers/input/touchscreen/FT5346/ft_app_ic_oufei_tianma.txt @@ -0,0 +1,3093 @@ +0x2, 0x1f,0xd2,0x2, 0xb5,0xb4,0xeb,0xaa,0x8, 0x22,0x22,0x2, 0x0, 0x42,0xb4,0x2, +0x4, 0xa9,0xb7,0xea,0x22,0x24,0xff,0xa9,0x97,0xea,0x22,0x2, 0x70,0x2d,0xb4,0x2, +0x4, 0xa9,0xb6,0xea,0x22,0x24,0xff,0xa9,0x96,0xea,0x22,0x2, 0x7d,0x45,0x7f,0x60, +0xa9,0xc2,0xea,0x74,0x1, 0x12,0x13,0x96,0x7f,0x6, 0x12,0x5, 0xb4,0x7f,0x6, 0x2, +0x9, 0xa1,0x32,0x2, 0x7d,0xa4,0xe4,0x2, 0x29,0xfa,0x22,0x2, 0x0, 0x5a,0x12,0x10, +0xa2,0x2, 0x13,0x79,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x32,0x2, 0x0, 0x76,0x1, 0x2, +0x4, 0x8, 0x10,0x20,0x40,0x80,0xa2,0x13,0x22,0x32,0xff,0x2, 0x0, 0x69,0x2, 0x31, +0xb3,0xff,0xff,0x2, 0x10,0x52,0xca,0x7b,0xca,0x6b,0xca,0x5b,0xca,0x4b,0xca,0x2b, +0xca,0x1b,0xca,0xb, 0xc0,0xd0,0xc0,0x83,0xc0,0x82,0xd2,0xb, 0x7e,0xf, 0x38,0xc8, +0x69,0x30,0x0, 0x4, 0x7a,0x73,0x38,0xd8,0x7e,0x73,0x38,0xd8,0xa, 0x37,0x5e,0x34, +0x0, 0x4, 0x68,0x4, 0xd2,0xa, 0x80,0x2, 0xc2,0xa, 0x7e,0x34,0x0, 0x1f,0x79,0x30, +0x0, 0x4, 0xc2,0xc3,0x12,0x12,0x9e,0x12,0x7f,0x5, 0x7e,0x1f,0x38,0xc8,0x69,0x31, +0x0, 0x2, 0x5e,0x34,0x0, 0x40,0x68,0x2e,0x6c,0xaa,0x7e,0x10,0x2, 0xac,0x1a,0x7e, +0x1f,0x38,0xc8,0x7f,0x71,0x2d,0xf0,0x69,0x17,0x0, 0x9c,0x59,0x10,0x38,0xcc,0xb, +0xa0,0xbe,0xa0,0x3, 0x78,0xe4,0x69,0x11,0x0, 0xa4,0x7a,0x17,0x38,0xd4,0x69,0x31, +0x0, 0xa2,0x7a,0x37,0x38,0xd2,0xa9,0xc1,0xc4,0xd0,0x82,0xd0,0x83,0xd0,0xd0,0xda, +0xb, 0xda,0x1b,0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda,0x7b,0x32,0x7d,0x13, +0x7e,0x1f,0x38,0xf7,0x1b,0x1a,0x10,0xc2,0xc6,0xd2,0xee,0x22,0xff,0xff,0x54,0x2c, +0xca,0x79,0x7f,0x50,0x7c,0xeb,0x7e,0x34,0x0, 0x24,0x7e,0x8, 0x0, 0x2c,0x7e,0x24, +0x0, 0x2, 0x12,0xb7,0xc7,0xe5,0x2c,0xbe,0xb0,0x0, 0x38,0x2, 0x21,0x4a,0xe5,0x2c, +0xbe,0xb0,0x76,0x28,0x2, 0x21,0x4a,0x7e,0xe1,0x2c,0xbe,0xe0,0x76,0x38,0x2, 0x21, +0x78,0x7e,0x34,0x1e,0x45,0x79,0x35,0x0, 0x2, 0x7e,0x34,0x1e,0x29,0x79,0x35,0x0, +0x4, 0xbe,0xe0,0x81,0x68,0x2, 0x21,0x71,0x74,0x23,0x7a,0x5b,0xb0,0x74,0x1c,0x61, +0x84,0x74,0x1, 0x7a,0x5b,0xb0,0x61,0x84,0x7c,0xbe,0x14,0xbe,0xb0,0x75,0x40,0x2, +0x61,0x33,0x7e,0xa0,0x3, 0xa4,0x2e,0x54,0x1, 0x8c,0x89,0x54,0x2, 0x2, 0xfb,0x2, +0x2, 0xfb,0x2, 0x3, 0x33,0x2, 0x2, 0xfb,0x2, 0x3, 0x33,0x2, 0x2, 0xed,0x2, 0x2, +0xfb,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x2, 0xfb,0x2, 0x3, 0x33,0x2, 0x2, 0xfb, +0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x25,0x2, 0x3, 0x33,0x2, 0x3, 0x9, 0x2, +0x2, 0xfb,0x2, 0x3, 0x17,0x2, 0x3, 0x17,0x2, 0x2, 0xfb,0x2, 0x3, 0x33,0x2, 0x3, +0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33, +0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, +0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, +0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33, +0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, +0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, +0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33, +0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, +0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, +0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33, +0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, +0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, +0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33, +0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, +0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, +0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33, +0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, +0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x3, 0x33,0x2, 0x2, 0xfb,0x41,0xfb,0x7e,0x34,0x1e, +0x45,0x79,0x35,0x0, 0x2, 0x7e,0x34,0x1d,0xe2,0x61,0x3f,0x7e,0x34,0x1e,0x19,0x79, +0x35,0x0, 0x2, 0x7e,0x34,0x1e,0x29,0x61,0x3f,0x7e,0x34,0x1e,0x19,0x79,0x35,0x0, +0x2, 0x7e,0x34,0x1d,0xb2,0x61,0x3f,0x7e,0x34,0x1d,0x96,0x79,0x35,0x0, 0x2, 0x7e, +0x34,0x1d,0xc6,0x61,0x3f,0x7e,0x34,0x1e,0xa, 0x79,0x35,0x0, 0x2, 0x7e,0x34,0x1d, +0xf1,0x61,0x3f,0x7e,0x34,0x1e,0x45,0x79,0x35,0x0, 0x2, 0x7e,0x34,0x1e,0x29,0x79, +0x35,0x0, 0x4, 0xbe,0xe0,0x16,0x28,0x2, 0x61,0x4e,0x7c,0xfe,0x61,0x62,0x7e,0xf0, +0x16,0xbe,0xe0,0x72,0x50,0x2, 0x61,0x62,0xa, 0x3e,0x9e,0x34,0x0, 0x72,0xb, 0x34, +0x2c,0xf7,0x7e,0x70,0x3, 0xac,0x7f,0x7d,0x23,0x2e,0x24,0x1e,0x69,0x7a,0x51,0x82, +0x7a,0x41,0x83,0xe4,0x93,0x7a,0x5b,0xb0,0x2e,0x34,0x1e,0x6a,0x7a,0x71,0x82,0x7a, +0x61,0x83,0xe4,0x93,0x39,0xb5,0x0, 0x1, 0xda,0x79,0x22,0xca,0x3b,0x7f,0x30,0x74, +0x1, 0x12,0x13,0xde,0x29,0x73,0x0, 0xf3,0x2e,0x70,0xff,0x92,0x4, 0x29,0xb3,0x0, +0xf4,0x12,0x13,0xaf,0x7f,0x3, 0x12,0xd, 0x72,0x7f,0x3, 0x12,0x6, 0xba,0x29,0x73, +0x0, 0xa, 0xa, 0x37,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x24,0x29,0x73,0x0, 0xa3, +0xa, 0x27,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24, +0x69,0x33,0x0, 0xff,0x4d,0x32,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x2, 0x29,0x73, +0x0, 0xa, 0xa, 0x47,0x29,0x73,0x0, 0x5, 0xa, 0x57,0x9d,0x54,0xf5,0x35,0x29,0xb3, +0x0, 0xa5,0x70,0xb, 0x29,0xb3,0x0, 0xf8,0x29,0x73,0x0, 0xf7,0x12,0xb, 0xad,0x29, +0x73,0x0, 0xa5,0x2e,0x70,0xff,0x92,0x4, 0xe5,0x35,0x12,0xb, 0x1e,0x69,0x33,0x0, +0xfd,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x28,0x69,0x23,0x0, 0xfb,0x3e,0x24,0x3e, +0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x29,0x73,0x0, 0xfa,0xa, 0x37,0x2d, +0x32,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x2a,0x29,0x73,0x0, 0xf9,0xa, 0x37,0x7e, +0xf, 0x38,0xc8,0x79,0x30,0x0, 0x2c,0x7e,0x34,0x0, 0x1, 0x7e,0xf, 0x38,0xc8,0x79, +0x30,0x0, 0x34,0x7e,0x34,0x1, 0xb, 0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x2e,0x29, +0x73,0x0, 0x5, 0xa, 0x37,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x10,0x69,0x33,0x0, +0xa8,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x1c,0x69,0x33,0x0, 0xaa,0x7e,0xf, 0x38, +0xc8,0x79,0x30,0x0, 0x1e,0x6c,0xaa,0x7e,0x50,0x2, 0xac,0x5a,0x69,0x13,0x1, 0x1, +0x2d,0x12,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0x30,0x7e,0xf, 0x38,0xc8,0x2d,0x12,0x79, +0x30,0x0, 0x44,0xb, 0xa0,0xbe,0xa0,0xc, 0x40,0xdd,0xda,0x3b,0x22,0xca,0xf8,0x7f, +0x70,0x7e,0x7b,0xf0,0x29,0x77,0x0, 0x1, 0xbc,0x7f,0x28,0x2, 0x7c,0xf7,0x69,0x17, +0x0, 0x6, 0x6d,0x0, 0x7e,0x34,0x0, 0xf2,0x74,0xff,0x12,0x20,0xde,0x7f,0x7, 0x12, +0xe, 0xed,0xa9,0xd6,0xcb,0x6c,0xaa,0x80,0x2d,0x6c,0x77,0x80,0x1f,0x7e,0x10,0xb, +0xac,0x1a,0xa, 0x17,0x2d,0x1, 0x3e,0x4, 0x69,0x17,0x0, 0x6, 0x2d,0x10,0x6d,0x0, +0xb, 0xa, 0x20,0x6e,0x24,0xff,0xff,0x1b,0xa, 0x20,0xb, 0x70,0x29,0x67,0x0, 0x1, +0xbc,0x67,0x38,0xd9,0xb, 0xa0,0x7e,0x7b,0x60,0xbc,0x6a,0x38,0xcc,0x69,0x37,0x0, +0x6, 0x7e,0xf, 0x39,0xd, 0x79,0x30,0x0, 0x4, 0x7c,0x4f,0x6c,0x55,0xa, 0x3f,0x2d, +0x32,0x7e,0xf, 0x39,0xd, 0x79,0x30,0x0, 0xc, 0x6d,0x11,0x7e,0x1f,0x39,0xd, 0x1b, +0x1a,0x10,0x7e,0x34,0x0, 0xd0,0x12,0xf, 0x45,0x6c,0xaa,0xbe,0xa0,0x4, 0x50,0x18, +0x7e,0x70,0x4, 0xac,0x7a,0x7c,0xb7,0x7e,0x1f,0x39,0xd, 0x69,0x41,0x0, 0x26,0x60, +0x42,0x1e,0x44,0x14,0x78,0xfb,0x80,0x3b,0xbe,0xa0,0x8, 0x50,0x1b,0xa, 0x3a,0x1b, +0x36,0x3e,0x34,0x3e,0x34,0x7c,0xb7,0x7e,0x1f,0x39,0xd, 0x69,0x41,0x0, 0x28,0x60, +0x22,0x1e,0x44,0x14,0x78,0xfb,0x80,0x1b,0xa, 0x3a,0x9e,0x34,0x0, 0x8, 0x3e,0x34, +0x3e,0x34,0x7c,0xb7,0x7e,0x1f,0x39,0xd, 0x69,0x41,0x0, 0x2a,0x60,0x5, 0x1e,0x44, +0x14,0x78,0xfb,0x5e,0x44,0x0, 0xf, 0x7e,0x50,0x2, 0xac,0x5a,0x69,0x37,0x0, 0x6, +0x2d,0x32,0x6d,0x22,0x1b,0x1a,0x40,0xb, 0xa0,0xbe,0xa0,0xb, 0x40,0x8d,0xa9,0xc6, +0xcb,0xda,0xf8,0x22,0x29,0x70,0x0, 0x96,0x29,0x90,0x0, 0x98,0x29,0x60,0x0, 0x97, +0x29,0x80,0x0, 0x8d,0xbe,0x80,0x4, 0x38,0x4, 0x6c,0xaa,0x80,0x21,0xbe,0x80,0x8, +0x38,0x5, 0x7e,0xa0,0x1, 0x80,0x17,0xbe,0x80,0x10,0x38,0x5, 0x7e,0xa0,0x2, 0x80, +0xd, 0xbe,0x80,0x20,0x38,0x5, 0x7e,0xa0,0x3, 0x80,0x3, 0x7e,0xa0,0x4, 0xbe,0x90, +0x3, 0x28,0x3, 0x7e,0x90,0x3, 0xbe,0x80,0x3f,0x28,0x3, 0x7e,0x80,0x3f,0xbe,0x60, +0x1, 0x28,0x3, 0x7e,0x60,0x1, 0xbe,0x70,0x2, 0x28,0x2, 0x6c,0x77,0xa, 0x28,0x3e, +0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x7c,0x89,0x6c,0x99,0x3e,0x44,0x3e, +0x44,0x3e,0x44,0x2d,0x42,0xa, 0x26,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x2d, +0x24,0xa, 0x37,0x3e,0x34,0x3e,0x34,0x2d,0x32,0x7e,0x7f,0x38,0xf7,0x79,0x37,0x0, +0x2, 0x29,0xb0,0x0, 0x8c,0x7c,0x4b,0x6c,0x55,0x29,0xb0,0x0, 0x8b,0xa, 0x3b,0x2d, +0x32,0x7e,0x7f,0x38,0xc0,0x79,0x37,0x0, 0x80,0x69,0x30,0x0, 0xa0,0x7e,0x7f,0x38, +0xf7,0x79,0x37,0x0, 0xc, 0x69,0x30,0x0, 0x9e,0x5e,0x34,0xe0,0xf, 0x29,0xb0,0x0, +0x8c,0xa, 0x2b,0x1b,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x2d,0x32,0x7e, +0x7f,0x38,0xc0,0x79,0x37,0x0, 0x82,0xa, 0x2a,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e, +0x24,0x29,0xb0,0x0, 0x99,0xa, 0x3b,0x2d,0x32,0x7e,0x7f,0x38,0xf7,0x79,0x37,0x0, +0x6, 0x69,0x30,0x0, 0x9c,0x7e,0x7f,0x38,0xf7,0x79,0x37,0x0, 0x8, 0x69,0x30,0x0, +0x9a,0x7e,0xf, 0x38,0xf7,0x79,0x30,0x0, 0xa, 0x22,0x7f,0x60,0x74,0x1, 0x12,0x13, +0xde,0x29,0x36,0x0, 0xf5,0x29,0x26,0x0, 0xa3,0x29,0x16,0x0, 0xa4,0xbe,0x20,0x2, +0x28,0x3, 0x7e,0x20,0x2, 0xbe,0x10,0x40,0x28,0x3, 0x7e,0x10,0x40,0x7e,0x34,0x0, +0x4, 0x7c,0xb2,0x60,0x5, 0x3e,0x34,0x14,0x78,0xfb,0x7c,0x7, 0xa, 0x31,0x7e,0x2f, +0x38,0xc8,0x79,0x32,0x0, 0x12,0x7c,0x73,0xac,0x70,0xa, 0x21,0x12,0x1e,0xb9,0x7c, +0x27,0xa, 0x32,0x7e,0x2f,0x38,0xc8,0x79,0x32,0x0, 0x14,0x7c,0x73,0xac,0x70,0x29, +0x26,0x0, 0xf6,0xa, 0x22,0xad,0x32,0xa, 0x21,0x8d,0x32,0x7d,0x43,0x7c,0x73,0xac, +0x70,0xa, 0x21,0x12,0x1e,0xb9,0x7c,0xa7,0x7c,0x2a,0x7c,0xb9,0x2c,0xab,0xbe,0xa0, +0xc, 0x50,0x3, 0x7e,0xa0,0xc, 0xbe,0x20,0xc, 0x50,0x3, 0x7e,0x20,0xc, 0xa, 0x20, +0xa, 0x31,0x12,0x1e,0xb9,0x7d,0xe3,0xa, 0x3a,0xb, 0x34,0xad,0x3e,0xb, 0x34,0xbe, +0x34,0x2, 0x0, 0x40,0x4, 0x7e,0x34,0x1, 0xff,0x29,0x46,0x0, 0xf7,0x7e,0x50,0x2, +0xac,0x45,0xa, 0xf2,0xad,0xfe,0x2d,0x2f,0xb, 0x24,0xbe,0x24,0x2, 0x0, 0x40,0x4, +0x7e,0x24,0x1, 0xff,0xa, 0x13,0x7e,0x7f,0x38,0xc8,0x79,0x17,0x0, 0xa, 0x1e,0x24, +0x7c,0x45,0x6c,0x55,0x1e,0x34,0x2d,0x32,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0xc, +0xa, 0x3a,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x22,0x22,0xa9,0xd6,0xcb,0x69,0x30, +0x0, 0x4, 0x7e,0x2f,0x39,0xd, 0x79,0x32,0x0, 0x4, 0x69,0x30,0x0, 0x6, 0x7e,0x2f, +0x39,0xd, 0x79,0x32,0x0, 0x6, 0x69,0x30,0x0, 0x8, 0x7e,0x2f,0x39,0xd, 0x79,0x32, +0x0, 0x8, 0x7e,0xb, 0x70,0x7c,0x47,0x6c,0x55,0x29,0x70,0x0, 0x1, 0xa, 0x37,0x2d, +0x32,0x7e,0x2f,0x39,0xd, 0x79,0x32,0x0, 0xc, 0x29,0x70,0x0, 0x2, 0xa, 0x37,0x7e, +0xf, 0x39,0xd, 0x79,0x30,0x0, 0xe, 0x6d,0x11,0x7e,0x1f,0x39,0xd, 0x1b,0x1a,0x10, +0x7e,0x34,0x0, 0xe0,0x12,0xf, 0x45,0xa9,0xc6,0xcb,0x22,0xb2,0x86,0x22,0xff,0xff, +0x7f,0x21,0xa9,0xd6,0xcb,0x69,0x30,0x0, 0x4, 0x7e,0x7f,0x39,0xd, 0x79,0x37,0x0, +0x4, 0x69,0x30,0x0, 0x8, 0x7e,0x7f,0x39,0xd, 0x79,0x37,0x0, 0x6, 0x69,0x30,0x0, +0x6, 0x7e,0x7f,0x39,0xd, 0x79,0x37,0x0, 0x8, 0x29,0x70,0x0, 0x1, 0x7c,0x47,0x6c, +0x55,0x7e,0xb, 0x70,0xa, 0x37,0x2d,0x32,0x7e,0x7f,0x39,0xd, 0x79,0x37,0x0, 0xc, +0x29,0x70,0x0, 0x2, 0xa, 0x37,0x1b,0x34,0x7e,0x7f,0x39,0xd, 0x79,0x37,0x0, 0xa, +0x69,0x30,0x0, 0xa, 0x7e,0x7f,0x39,0xd, 0x79,0x37,0x0, 0xe, 0x69,0x30,0x0, 0xc, +0x7e,0x7f,0x39,0xd, 0x79,0x37,0x0, 0x10,0x69,0x30,0x0, 0xe, 0x7e,0x7f,0x39,0xd, +0x79,0x37,0x0, 0x12,0x29,0x70,0x0, 0x3, 0x7c,0x27,0x6c,0x33,0x7e,0x1f,0x39,0xd, +0x1b,0x1a,0x10,0x7e,0x34,0x0, 0xa0,0x12,0xf, 0x45,0x7e,0x1f,0x39,0xd, 0x69,0x11, +0x0, 0x1a,0x7a,0x2b,0x30,0x69,0x11,0x0, 0x1c,0x39,0x32,0x0, 0x1, 0x69,0x11,0x0, +0x16,0x79,0x12,0x0, 0x2, 0x69,0x11,0x0, 0x18,0x79,0x12,0x0, 0x4, 0x69,0x11,0x0, +0x22,0x79,0x12,0x0, 0x6, 0x69,0x11,0x0, 0x24,0x79,0x12,0x0, 0x8, 0x69,0x11,0x0, +0x1e,0x79,0x12,0x0, 0xa, 0x69,0x31,0x0, 0x20,0x79,0x32,0x0, 0xc, 0xa9,0xc6,0xcb, +0x22,0xca,0x3b,0x7c,0x57,0x7c,0x4b,0x5e,0x40,0x3, 0x69,0x30,0x0, 0x4, 0x5e,0x60, +0x3f,0x6c,0xaa,0xa, 0x4a,0x69,0xf0,0x0, 0xa, 0x69,0xe0,0x0, 0x8, 0x2d,0xf4,0x7e, +0x7b,0xb0,0xa, 0xfb,0x7d,0x4f,0x7c,0x89,0x6c,0x99,0x7d,0xf4,0xa, 0xea,0x69,0xd0, +0x0, 0xe, 0x69,0xc0,0x0, 0xc, 0x2d,0xde,0x7e,0x6b,0xb0,0xa, 0x4b,0x2d,0x4f,0x7e, +0xd0,0x28,0xac,0xd5,0x7e,0xf0,0x2, 0xac,0xfa,0x7d,0xd7,0x2d,0xd6,0x7e,0xf0,0xf0, +0xac,0xf4,0x2d,0xd7,0x7e,0x7f,0x38,0xf3,0x2d,0xfd,0x79,0x47,0x1, 0x8c,0xb, 0xa0, +0xbe,0xa0,0xe, 0x78,0xae,0x6c,0xaa,0x7e,0x90,0x2, 0xac,0x9a,0x69,0xf0,0x0, 0x2, +0xb, 0xa, 0xe0,0x2d,0xf4,0xb, 0x7a,0x40,0x7e,0xd0,0x28,0xac,0xd5,0x7e,0xf0,0x2, +0xac,0xfa,0x7d,0xd7,0x2d,0xd6,0x7e,0xf0,0xf0,0xac,0xf4,0x2d,0xd7,0x7e,0x7f,0x38, +0xf3,0x2d,0xfd,0x79,0x47,0x1, 0x80,0xb, 0xa0,0xbe,0xa0,0x4, 0x40,0xc9,0x7e,0x90, +0xf0,0xac,0x94,0x74,0x28,0xac,0xb5,0x7d,0xf5,0x2d,0xf4,0x7e,0x2f,0x38,0xf3,0x2d, +0x5f,0x79,0x32,0x1, 0x88,0x69,0x30,0x0, 0x6, 0x7e,0x30,0xf0,0xac,0x34,0x74,0x28, +0xac,0x5b,0x2d,0x21,0x7e,0xf, 0x38,0xf3,0x2d,0x12,0x79,0x30,0x1, 0x8a,0xda,0x3b, +0x22,0x29,0x60,0x0, 0xb, 0xa, 0x46,0x29,0x60,0x0, 0x4, 0xa, 0x26,0x2d,0x24,0x7c, +0x65,0x29,0xb0,0x0, 0x6, 0xbc,0xb6,0x28,0x2, 0x7c,0x6b,0x29,0x70,0x0, 0x5, 0x29, +0xb0,0x0, 0x7, 0xbc,0xb7,0x28,0x2, 0x7c,0x7b,0x6c,0xaa,0x6d,0x22,0x7e,0x90,0x2, +0xac,0x9a,0x7e,0x7f,0x38,0xc0,0x2d,0xf4,0x79,0x27,0x0, 0x2, 0xb, 0xa0,0xbe,0xa0, +0x23,0x78,0xea,0x6c,0xaa,0x80,0x55,0xa, 0x2a,0x7f,0x70,0x2d,0xf2,0x29,0x57,0x0, +0x4c,0xbe,0x50,0x23,0x50,0x23,0x29,0x47,0x0, 0xb4,0xa, 0xd4,0x7d,0x4d,0x7c,0x89, +0x6c,0x99,0x7d,0xd4,0x7e,0x90,0x2, 0xac,0x95,0x7e,0x7f,0x38,0xc0,0x2d,0xf4,0xb, +0xf5,0xb, 0x7a,0x40,0x4d,0x4d,0x1b,0x7a,0x40,0xa, 0x4a,0x7f,0x70,0x2d,0xf4,0x29, +0x47,0x0, 0x4c,0xa, 0xd4,0x7e,0x90,0x2, 0xac,0x9a,0x7e,0x7f,0x38,0xc0,0x2d,0xf4, +0xb, 0xf5,0xb, 0x7a,0x40,0x4d,0x4d,0x1b,0x7a,0x40,0xb, 0xa0,0xbc,0x6a,0x38,0xa7, +0x6c,0xaa,0x80,0x1d,0xa, 0x2a,0x7f,0x70,0x2d,0xf2,0x29,0x67,0x0, 0x6f,0xa, 0x46, +0x7e,0x50,0x2, 0xac,0x5a,0x7e,0x7f,0x38,0xc0,0x2d,0xf2,0x79,0x47,0x0, 0x48,0xb, +0xa0,0xbc,0x7a,0x38,0xdf,0x22,0x7c,0x7b,0x7e,0x7f,0x38,0xc8,0x69,0x47,0x0, 0xc, +0x6c,0x88,0x3e,0x44,0x69,0x7, 0x0, 0xa, 0x69,0x57,0x0, 0x2, 0x1e,0x54,0x1e,0x54, +0x1e,0x54,0x1e,0x54,0x1e,0x54,0x1e,0x54,0x1e,0x54,0x5e,0x54,0x0, 0x3, 0x7e,0x14, +0x0, 0x4, 0x70,0x2, 0x41,0x9b,0x3e,0x14,0x14,0x78,0xfb,0x7c,0xa3,0xa, 0xda,0xad, +0xd0,0x7d,0xcd,0x6d,0x11,0x79,0x17,0x0, 0x8c,0x7c,0xb7,0x70,0x2, 0x41,0xb4,0x1e, +0xd4,0x14,0x78,0xfb,0xbe,0xd4,0x1, 0x0, 0x38,0x2, 0x41,0xc2,0x7e,0xd4,0x1, 0x0, +0x41,0xce,0xbe,0xd4,0x0, 0x10,0x40,0x2, 0x41,0xce,0x7e,0xd4,0x0, 0x10,0x7d,0x3d, +0x12,0x12,0x6a,0xa, 0x1b,0x7e,0x1f,0x38,0xc8,0x79,0x11,0x0, 0x90,0x7e,0x1f,0x38, +0xc8,0x79,0xd1,0x0, 0x8e,0x7e,0x7f,0x38,0xc8,0x69,0x37,0x0, 0x8, 0xad,0x3c,0x8d, +0x3d,0x79,0x37,0x0, 0x92,0x7e,0x14,0x0, 0x6, 0x7e,0x1f,0x38,0xc8,0x79,0x11,0x0, +0x94,0x7d,0x24,0x9d,0x20,0xa, 0x3a,0xad,0x32,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, +0x96,0x7e,0x34,0x0, 0x10,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x98,0x22,0x7c,0x5b, +0x7e,0xf, 0x38,0xc8,0x69,0x40,0x0, 0x22,0x30,0x4, 0x6b,0x6d,0xff,0x7d,0x3f,0xbe, +0x50,0x10,0x28,0x2e,0x7e,0x54,0xff,0xff,0x79,0x50,0x0, 0x42,0x9e,0x50,0x10,0x6c, +0xaa,0x80,0x11,0x7e,0xe4,0x0, 0x1, 0x7c,0xba,0x60,0x5, 0x3e,0xe4,0x14,0x78,0xfb, +0x2d,0x3e,0xb, 0xa0,0xbc,0x5a,0x38,0xeb,0x7e,0x6f,0x38,0xc8,0x79,0x36,0x0, 0x40, +0x80,0x25,0x79,0xf0,0x0, 0x40,0x6c,0xaa,0x80,0x11,0x7e,0xf4,0x0, 0x1, 0x7c,0xba, +0x60,0x5, 0x3e,0xf4,0x14,0x78,0xfb,0x2d,0x3f,0xb, 0xa0,0xbc,0x5a,0x38,0xeb,0x7e, +0x7f,0x38,0xc8,0x79,0x37,0x0, 0x42,0x7d,0x34,0x2e,0x34,0x0, 0xc, 0x7e,0x7f,0x38, +0xc8,0x79,0x37,0x0, 0x16,0x22,0x6d,0x33,0x79,0x30,0x0, 0x40,0x7e,0xf, 0x38,0xc8, +0x79,0x30,0x0, 0x42,0x7e,0x1f,0x38,0xc8,0x79,0x41,0x0, 0x16,0x22,0x7c,0x17,0x7c, +0x3b,0x6d,0x33,0x7e,0x2f,0x38,0xc8,0x79,0x32,0x0, 0x40,0x7e,0x2f,0x38,0xc8,0x79, +0x32,0x0, 0x42,0x7e,0x7f,0x38,0xc8,0x69,0x57,0x0, 0x12,0x7c,0xab,0x69,0x37,0x0, +0x2, 0x1e,0x34,0x1e,0x34,0x1e,0x34,0x1e,0x34,0x1e,0x34,0x1e,0x34,0x1e,0x34,0x5e, +0x34,0x0, 0x3, 0x7c,0xb7,0x7e,0x44,0x0, 0x4, 0x60,0x5, 0x3e,0x44,0x14,0x78,0xfb, +0x7c,0x29,0xa, 0x22,0xa, 0x3a,0x12,0x1e,0xb9,0xa, 0x23,0x2d,0x32,0x7c,0xb7,0x7c, +0x61,0x6c,0x77,0xa, 0xb, 0x1e,0x4, 0x2d,0x3, 0x79,0x7, 0x0, 0xc, 0x7c,0x73,0xac, +0x72,0xa, 0x2a,0x12,0x1e,0xb9,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x16,0x6d,0x33, +0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x22,0x22,0xa9,0xd6,0xcb,0x69,0x30,0x0, 0x6, +0x7e,0x2f,0x39,0xd, 0x79,0x32,0x0, 0x4, 0x69,0x30,0x0, 0x8, 0x7e,0x2f,0x39,0xd, +0x79,0x32,0x0, 0x8, 0x29,0x70,0x0, 0x2, 0x7c,0x47,0x6c,0x55,0x29,0x70,0x0, 0x3, +0xa, 0x37,0x2d,0x32,0x7e,0x2f,0x39,0xd, 0x79,0x32,0x0, 0xc, 0x7e,0xb, 0x70,0x7c, +0x47,0x29,0x70,0x0, 0x1, 0xa, 0x37,0x2d,0x32,0x7e,0x2f,0x39,0xd, 0x79,0x32,0x0, +0xa, 0x29,0x70,0x0, 0x4, 0xa, 0x37,0x7e,0x2f,0x39,0xd, 0x79,0x32,0x0, 0xe, 0x29, +0xb0,0x0, 0x5, 0x54,0x1, 0x7c,0x2b,0x6c,0x33,0x7e,0x1f,0x39,0xd, 0x1b,0x1a,0x10, +0x7e,0x34,0x0, 0xc0,0x12,0xf, 0x45,0xa9,0xc6,0xcb,0x22,0xca,0x79,0x7c,0xab,0x5e, +0xa0,0x3, 0x6c,0x77,0x7e,0x50,0x2, 0xac,0x57,0x69,0xd0,0x0, 0xe, 0x69,0xc0,0x0, +0xc, 0x2d,0xd2,0x29,0x66,0x0, 0x1, 0xa, 0xf6,0x7d,0x4f,0x7c,0x89,0x6c,0x99,0x7d, +0xf4,0x7e,0x6b,0x60,0xa, 0x46,0x2d,0x4f,0x7e,0xf0,0xf0,0xac,0xfa,0x2d,0x27,0x7e, +0x7f,0x38,0xf3,0x2d,0xf2,0x79,0x47,0x2, 0x54,0xb, 0x70,0xbe,0x70,0xe, 0x40,0xc4, +0x69,0x40,0x0, 0x4, 0x7e,0xf0,0xf0,0xac,0xfa,0x7e,0x1f,0x38,0xf3,0x2d,0x37,0x79, +0x41,0x2, 0x50,0x69,0x30,0x0, 0x6, 0x74,0xf0,0xa4,0x7e,0xf, 0x38,0xf3,0x2d,0x15, +0x79,0x30,0x2, 0x52,0xda,0x79,0x22,0xa9,0xd6,0xcb,0xc2,0x19,0x69,0x30,0x0, 0x4, +0x7e,0x2f,0x39,0xd, 0x79,0x32,0x0, 0x4, 0x69,0x30,0x0, 0x6, 0x7e,0x2f,0x39,0xd, +0x79,0x32,0x0, 0x6, 0x69,0x30,0x0, 0x8, 0x7e,0x2f,0x39,0xd, 0x79,0x32,0x0, 0x8, +0x7e,0xb, 0x70,0x7c,0x47,0x6c,0x55,0x29,0x70,0x0, 0x1, 0xa, 0x37,0x2d,0x32,0x7e, +0x2f,0x39,0xd, 0x79,0x32,0x0, 0xc, 0x29,0x70,0x0, 0x2, 0xa, 0x37,0x7e,0x2f,0x39, +0xd, 0x79,0x32,0x0, 0xe, 0x29,0xb0,0x0, 0x3, 0x54,0x1, 0xa, 0x5b,0x7c,0xab,0xe4, +0x7e,0x1f,0x39,0xd, 0x1b,0x1a,0x50,0x69,0x30,0x0, 0xa, 0x12,0xf, 0x45,0xa9,0xc6, +0xcb,0x22,0x69,0x30,0x0, 0xae,0x7e,0x2f,0x38,0xc8,0x79,0x32,0x0, 0x6, 0x29,0x50, +0x0, 0xa6,0xa, 0x55,0x7d,0x23,0x1e,0x24,0x9d,0x25,0x7e,0x2f,0x38,0xc8,0x79,0x22, +0x0, 0x18,0x7d,0x23,0x1e,0x24,0x1b,0x25,0x7e,0x2f,0x38,0xc8,0x79,0x22,0x0, 0x38, +0x69,0x20,0x0, 0xfd,0x1e,0x34,0x9d,0x32,0x9e,0x34,0x0, 0xa, 0x7e,0x2f,0x38,0xc8, +0x79,0x32,0x0, 0x26,0x29,0x70,0x0, 0xa7,0xa, 0x37,0x7e,0x2f,0x38,0xc8,0x79,0x32, +0x0, 0x1a,0x29,0x70,0x0, 0xb, 0xa, 0x27,0x29,0x70,0x0, 0x4, 0x2d,0x32,0x7e,0x2f, +0x38,0xc8,0x79,0x32,0x0, 0x8, 0x2, 0x9, 0xa1,0xca,0x3b,0xf5,0x24,0x7f,0x41,0x7f, +0x30,0xe5,0x25,0x7e,0x8, 0x0, 0x26,0x12,0x1, 0x20,0xe5,0x24,0xbe,0xb0,0x23,0x28, +0x3, 0x75,0x24,0x23,0x6c,0xaa,0x80,0x36,0xa, 0x3a,0x2d,0x39,0x7d,0x28,0x7e,0x1b, +0xb0,0xbe,0xb1,0x26,0x40,0xd, 0x74,0x23,0xa, 0x4a,0x7f,0x3, 0x2d,0x14,0x7a,0xb, +0xb0,0x80,0x19,0x7e,0x1b,0xb0,0xa, 0x3b,0x2e,0x35,0x28,0x7a,0x71,0x82,0x7a,0x61, +0x83,0xe4,0x93,0xa, 0x4a,0x7f,0x13,0x2d,0x34,0x7a,0x1b,0xb0,0xb, 0xa0,0xe5,0x24, +0xbc,0xba,0x38,0xc4,0xda,0x3b,0x22,0xa9,0xd6,0xcb,0x69,0x20,0x0, 0x4, 0x7e,0x2f, +0x39,0xd, 0x79,0x22,0x0, 0x4, 0x69,0x20,0x0, 0x8, 0x7e,0x2f,0x39,0xd, 0x79,0x22, +0x0, 0x8, 0x7e,0xb, 0x50,0xa, 0x55,0x7c,0xab,0xe4,0x29,0x50,0x0, 0x1, 0xa, 0x25, +0x2d,0x25,0x7e,0x2f,0x39,0xd, 0x79,0x22,0x0, 0xc, 0x29,0x50,0x0, 0x2, 0xa, 0x25, +0x7e,0xf, 0x39,0xd, 0x79,0x20,0x0, 0xe, 0x7e,0xf, 0x39,0xd, 0x79,0x30,0x0, 0xa, +0x6d,0x11,0x7e,0x1f,0x39,0xd, 0x1b,0x1a,0x10,0x7e,0x34,0x0, 0x40,0x12,0xf, 0x45, +0xa9,0xc6,0xcb,0x22,0x7c,0xab,0x7e,0x34,0x0, 0x1, 0x7e,0xf, 0x38,0xf7,0x79,0x30, +0x0, 0xe, 0xc2,0x18,0xe4,0x7a,0xb3,0x38,0xf2,0x5e,0xa0,0x3, 0xa, 0x1a,0x3e,0x14, +0x7e,0x1f,0x38,0xc0,0x1b,0x1a,0x10,0x7e,0xf, 0x38,0xc0,0x2e,0x14,0x0, 0x84,0xb, +0xa, 0x30,0x4e,0x70,0x20,0x1b,0xa, 0x30,0x74,0x1, 0x12,0x13,0x56,0x7e,0xf, 0x38, +0xf7,0xb, 0xa, 0x30,0x4e,0x70,0xc, 0x1b,0xa, 0x30,0xa9,0xd3,0xcd,0x7e,0xf, 0x38, +0xf7,0xb, 0x15,0xb, 0xa, 0x30,0x4e,0x70,0x1, 0x1b,0xa, 0x30,0x22,0x7f,0x10,0xa9, +0xd6,0xcb,0x69,0x11,0x0, 0x2, 0x7e,0x2f,0x39,0xd, 0x79,0x12,0x0, 0x4, 0x69,0x11, +0x0, 0x4, 0x7e,0x2f,0x39,0xd, 0x79,0x12,0x0, 0x6, 0x69,0x11,0x0, 0x6, 0x7e,0x2f, +0x39,0xd, 0x79,0x12,0x0, 0x8, 0x7e,0x1b,0x30,0xa, 0x3, 0x7e,0x14,0x1, 0x0, 0xad, +0x10,0x29,0x71,0x0, 0x1, 0xa, 0x37,0x2d,0x31,0x7e,0xf, 0x39,0xd, 0x79,0x30,0x0, +0xc, 0x6d,0x11,0x7e,0x1f,0x39,0xd, 0x1b,0x1a,0x10,0x7e,0x34,0x0, 0x60,0x12,0xf, +0x45,0xa9,0xc6,0xcb,0x22,0xa9,0xd7,0xcb,0x7d,0x23,0x4e,0x50,0x1, 0x7e,0xf, 0x39, +0xd, 0xb, 0xa, 0x30,0x4d,0x32,0x1b,0xa, 0x30,0x80,0x1e,0x7e,0xf, 0x39,0xd, 0xb, +0xa, 0x30,0x7d,0x23,0x5e,0x24,0x0, 0x8, 0xbe,0x24,0x0, 0x8, 0x78,0xb, 0xa9,0xd7, +0xcb,0x4e,0x70,0x4, 0x1b,0xa, 0x30,0xd2,0x19,0x7e,0xf, 0x39,0xd, 0xb, 0xa, 0x30, +0x7d,0x23,0x5e,0x24,0x80,0x0, 0xbe,0x24,0x80,0x0, 0x78,0xcf,0x4e,0x60,0x40,0x1b, +0xa, 0x30,0x6d,0x11,0x7e,0x1f,0x39,0xd, 0x1b,0x1a,0x10,0x22,0xca,0x3b,0xf5,0x24, +0x7f,0x41,0x7f,0x30,0xe5,0x25,0x7e,0x8, 0x0, 0x26,0x12,0x1, 0x20,0x6c,0xaa,0x80, +0x36,0xa, 0x3a,0x2d,0x39,0x7d,0x28,0x7e,0x1b,0xb0,0xbe,0xb1,0x27,0x40,0xd, 0x74, +0x1c,0xa, 0x4a,0x7f,0x3, 0x2d,0x14,0x7a,0xb, 0xb0,0x80,0x19,0x7e,0x1b,0xb0,0xa, +0x3b,0x2e,0x35,0x2a,0x7a,0x71,0x82,0x7a,0x61,0x83,0xe4,0x93,0xa, 0x4a,0x7f,0x13, +0x2d,0x34,0x7a,0x1b,0xb0,0xb, 0xa0,0xe5,0x24,0xbc,0xba,0x38,0xc4,0xda,0x3b,0x22, +0x5, 0x63,0x31,0x20,0x18,0x13,0xf, 0xd, 0xc, 0xa, 0x9, 0x8, 0x7, 0x6, 0x5, 0x4, +0xca,0xf8,0x7d,0xe2,0x7d,0xd3,0x7c,0xfb,0xbe,0x30,0x1, 0x28,0x6, 0x7e,0xf4,0x0, +0x10,0x80,0xf, 0xbe,0x30,0x0, 0x28,0x6, 0x7e,0xf4,0x0, 0x8, 0x80,0x4, 0x7e,0xf4, +0x0, 0x4, 0x7d,0x1f,0x6d,0x0, 0x6d,0x33,0x7e,0x24,0x0, 0x10,0x12,0x1f,0x58,0x7f, +0x1, 0x7d,0x3d,0x6d,0x22,0x12,0x1e,0xeb,0x7d,0x1e,0x12,0x1f,0x5, 0x74,0x4, 0xac, +0xbf,0x7e,0xf, 0x38,0xc8,0x2d,0x15,0x79,0x30,0x0, 0x82,0x79,0x20,0x0, 0x80,0xda, +0xf8,0x22,0xca,0x7b,0xca,0x6b,0xca,0x5b,0xca,0x4b,0xca,0x2b,0xca,0x1b,0xca,0xb, +0xc0,0xd0,0xc0,0x83,0xc0,0x82,0xd2,0x18,0x7e,0xf, 0x38,0xf7,0xb, 0xa, 0x30,0x7c, +0x57,0x7a,0x53,0x38,0xf2,0x4e,0x70,0xc, 0x1b,0xa, 0x30,0xc2,0xc6,0x6d,0x33,0x7e, +0xf, 0x38,0xf7,0x79,0x30,0x0, 0xe, 0x12,0x12,0x9e,0x12,0x7f,0x5, 0xd0,0x82,0xd0, +0x83,0xd0,0xd0,0xda,0xb, 0xda,0x1b,0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda, +0x7b,0x32,0x74,0x3, 0x12,0x13,0x56,0xa9,0xd1,0xc4,0x7e,0xf, 0x38,0xc0,0x2e,0x14, +0x0, 0x84,0xb, 0xa, 0x30,0x4e,0x70,0x20,0x1b,0xa, 0x30,0x7e,0x14,0x0, 0x1, 0x7e, +0x1f,0x38,0xc0,0x1b,0x1a,0x10,0x7e,0xf, 0x38,0xc8,0xb, 0x16,0xb, 0xa, 0x30,0x4e, +0x70,0x1, 0x1b,0xa, 0x30,0xc2,0xb, 0xe4,0x7a,0xb3,0x38,0xd8,0x7e,0x1f,0x38,0xc0, +0xb, 0x1a,0x30,0x5e,0x34,0x0, 0x1, 0x78,0xf3,0x74,0x2, 0x2, 0x13,0x56,0x7c,0x6b, +0x6c,0xaa,0x80,0x17,0x7e,0x90,0x2, 0xac,0x9a,0x7e,0x7f,0x38,0xf3,0x2d,0xf4,0xb, +0x7a,0x20,0x7f,0x70,0x2d,0xf4,0x1b,0x7a,0x20,0xb, 0xa0,0xbc,0x7a,0x38,0xe5,0x6c, +0xaa,0x80,0x20,0x7e,0x50,0x2, 0xac,0x5a,0x7e,0x7f,0x38,0xf3,0x2d,0xf2,0x69,0x27, +0x0, 0x38,0xa, 0xf7,0xa, 0x4a,0x2d,0x4f,0x3e,0x44,0x7f,0x70,0x2d,0xf4,0x1b,0x7a, +0x20,0xb, 0xa0,0xbc,0x6a,0x38,0xdc,0x22,0xca,0x79,0x7c,0xab,0x5e,0xa0,0x3, 0x6c, +0x77,0x7e,0x50,0x2, 0xac,0x57,0x7f,0x60,0x2d,0xd2,0x29,0x66,0x0, 0x1, 0xa, 0xf6, +0x7d,0x4f,0x7c,0x89,0x6c,0x99,0x7d,0xf4,0x7e,0x6b,0x60,0xa, 0x46,0x2d,0x4f,0x7e, +0xf0,0xf0,0xac,0xfa,0x2d,0x27,0x7e,0x7f,0x38,0xf3,0x2d,0xf2,0x79,0x47,0x2, 0x54, +0xb, 0x70,0xbe,0x70,0xe, 0x40,0xca,0xda,0x79,0x22,0x29,0x50,0x0, 0xf5,0xac,0x5b, +0x7e,0xf, 0x38,0xc8,0x69,0x30,0x0, 0xc, 0xa, 0x56,0x3e,0x54,0xbe,0x24,0x2, 0x0, +0x40,0x4, 0x7e,0x24,0x1, 0xff,0xbd,0x25,0x28,0x1f,0x2e,0x14,0x0, 0xc, 0x6c,0x66, +0x1b,0xa, 0x30,0x1e,0x24,0x7c,0x45,0x6c,0x55,0x7e,0xf, 0x38,0xc8,0x2e,0x14,0x0, +0xc, 0xb, 0xa, 0x30,0x4d,0x32,0x1b,0xa, 0x30,0x22,0x7c,0x6b,0x6c,0xaa,0x7e,0x50, +0x28,0xac,0x57,0x7e,0x90,0x2, 0xac,0x9a,0x2d,0x42,0x7e,0x50,0xf0,0xac,0x56,0x2d, +0x24,0x7e,0x7f,0x38,0xf3,0x2d,0xf2,0x69,0x27,0x1, 0x8c,0x6c,0x44,0xa, 0x4a,0x7f, +0x60,0x2d,0xd4,0x7e,0x6b,0xb0,0x7c,0x8b,0x6c,0x99,0x4d,0x24,0x79,0x27,0x1, 0x8c, +0xb, 0xa0,0xbe,0xa0,0xe, 0x40,0xc7,0x22,0x7c,0x6b,0x6c,0xaa,0x7e,0x50,0x28,0xac, +0x57,0x7e,0x90,0x2, 0xac,0x9a,0x2d,0x42,0x7e,0x50,0xf0,0xac,0x56,0x2d,0x24,0x7e, +0x7f,0x38,0xf3,0x2d,0xf2,0x69,0x27,0x1, 0x8c,0x6c,0x55,0xa, 0x4a,0x7f,0x60,0x2d, +0xd4,0x7e,0x6b,0xb0,0xa, 0x4b,0x4d,0x24,0x79,0x27,0x1, 0x8c,0xb, 0xa0,0xbe,0xa0, +0xe, 0x40,0xc9,0x22,0xa9,0xd6,0xcb,0x54,0x3f,0x5e,0x70,0x1f,0x7c,0x2b,0x6c,0x33, +0x3e,0x14,0x3e,0x14,0x2e,0x14,0x0, 0x5, 0xa, 0x37,0x3e,0x34,0x3e,0x34,0x3e,0x34, +0x3e,0x34,0x3e,0x34,0x2d,0x31,0x7e,0xf, 0x39,0xd, 0x79,0x30,0x0, 0x2, 0x7e,0xf, +0x39,0xd, 0x79,0x20,0x0, 0x14,0xa9,0xc6,0xcb,0x22,0x7d,0x23,0x6c,0x66,0x7e,0x30, +0x2, 0xac,0x36,0x2e,0x14,0x20,0x8f,0x7a,0x31,0x82,0x7a,0x21,0x83,0xe4,0x93,0xa, +0x1b,0xbd,0x12,0x28,0x7, 0xb, 0x60,0xbe,0x60,0x14,0x40,0xe2,0x7e,0x70,0x2, 0xac, +0x67,0x2e,0x34,0x20,0x90,0x7a,0x71,0x82,0x7a,0x61,0x83,0xe4,0x93,0x22,0x7e,0xf, +0x38,0xc0,0x2e,0x14,0x0, 0x84,0xb, 0xa, 0x30,0x5e,0x70,0xdf,0x1b,0xa, 0x30,0x74, +0x3, 0x12,0x13,0x56,0x7e,0x14,0x0, 0x3, 0x7e,0x1f,0x38,0xc0,0x1b,0x1a,0x10,0x7e, +0x1f,0x38,0xc0,0xb, 0x1a,0x30,0x5e,0x34,0x0, 0x1, 0x78,0xf3,0xe4,0x2, 0x13,0x56, +0x2e,0x34,0x4, 0x0, 0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x60,0x7e,0x34,0x4, 0x0, +0x9d,0x32,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x62,0x7e,0x34,0x0, 0x1, 0x7e,0xf, +0x38,0xc8,0x79,0x30,0x0, 0x64,0xa, 0x3b,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x66, +0x22,0x7c,0xa5,0xbe,0x34,0x0, 0x0, 0x28,0x10,0xa, 0x1b,0x3e,0x14,0x7d,0x23,0x7c, +0x45,0x6c,0x55,0x2d,0x21,0xa, 0x3a,0x80,0x8, 0xa, 0x2b,0x3e,0x24,0x7c,0x67,0x6c, +0x77,0x2d,0x32,0x7e,0xf, 0x38,0xf7,0x79,0x30,0x0, 0x4, 0x22,0x7c,0xa7,0x7e,0x1f, +0x38,0xc0,0x69,0x41,0x0, 0x8a,0x5e,0x44,0x10,0xf, 0xa, 0x1a,0x3e,0x14,0x3e,0x14, +0x3e,0x14,0x3e,0x14,0xa, 0x5b,0xc4,0x23,0x54,0xe0,0x7c,0xab,0xe4,0x2d,0x51,0x4d, +0x45,0x79,0x41,0x0, 0x8a,0x22,0x7e,0xf, 0x38,0xc0,0x69,0x30,0x0, 0x84,0x5e,0x70, +0xe7,0x1b,0xb1,0x68,0xc, 0x14,0x68,0xc, 0xb, 0xb1,0x78,0x5, 0x4e,0x70,0x10,0x80, +0x3, 0x4e,0x70,0x8, 0x79,0x30,0x0, 0x84,0x22,0x7e,0x34,0x0, 0x1f,0x7e,0xf, 0x38, +0xc8,0x79,0x30,0x0, 0x4, 0xa9,0xd2,0xcd,0x7e,0xf, 0x38,0xc8,0xb, 0xa, 0x30,0x4e, +0x70,0x1, 0x1b,0xa, 0x30,0x22,0xbe,0xb0,0x0, 0x28,0xa, 0xa9,0xd7,0xca,0xa9,0xd3, +0xcb,0xa9,0xd2,0xcb,0x22,0xa9,0xc7,0xca,0xa9,0xc3,0xcb,0xa9,0xc2,0xcb,0x22,0x30, +0x4, 0xa, 0x54,0x3, 0xa, 0x3b,0x2e,0x34,0x2, 0x0, 0x80,0x2, 0x6d,0x33,0x7e,0xf, +0x38,0xc8,0x79,0x30,0x0, 0x3a,0x22,0x7e,0xf, 0x38,0xc0,0x69,0x30,0x0, 0x8a,0x60, +0x5, 0x4e,0x60,0x10,0x80,0x3, 0x5e,0x60,0xef,0x79,0x30,0x0, 0x8a,0x22,0xbe,0xb0, +0x0, 0x28,0x9, 0xa9,0xd6,0xca,0xd2,0xcd,0xa9,0xd1,0xcb,0x22,0xa9,0xc6,0xca,0xc2, +0xcd,0xa9,0xc1,0xcb,0x22,0x7e,0x34,0x0, 0xf, 0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, +0x4, 0xc2,0xc3,0xd2,0xeb,0x22,0x6, 0xe, 0x15,0x1a,0x1f,0x26,0x2b,0x2d,0x2e,0x2f, +0x2c,0x2a,0x24,0x1f,0x1a,0x14,0xf, 0x8, 0x3, 0x3, 0x6, 0xb, 0x10,0x15,0x1c,0x22, +0x28,0x2d,0x34,0x39,0x3d,0x40,0xe, 0x3, 0x0, 0x0, 0x0, 0x3, 0x8, 0xc, 0x11,0x16, +0x1c,0x23,0x2b,0x32,0x37,0x3c,0x40,0x45,0x4a,0x4d,0x4c,0x4b,0x4a,0x48,0x46,0x46, +0x45,0x45,0x44,0x44,0x43,0x44,0x45,0x78,0x65,0x55,0x2, 0xd, 0x14,0x1b,0x21,0x25, +0x2b,0x31,0x37,0x36,0x33,0x2d,0x28,0x20,0x19,0x14,0xd, 0x8, 0x1, 0x2, 0x5, 0xb, +0x10,0x18,0x1e,0x23,0x2a,0x30,0x35,0x3a,0x3e,0x3f,0x0, 0x1, 0x1, 0x0, 0x0, 0x0, +0x0, 0x0, 0x1, 0x4, 0x9, 0xf, 0x15,0x1d,0x24,0x2a,0x30,0x35,0x3b,0x3e,0x3f,0x40, +0x3f,0x3e,0x3d,0x3d,0x3c,0x3c,0x3b,0x3b,0x39,0x37,0x1a,0x2d,0x65,0x55,0x1b,0x29, +0x27,0x1e,0x14,0x11,0x1a,0x26,0x2e,0x37,0x3d,0x3f,0x3d,0x37,0x2e,0x21,0x16,0xc, +0x5, 0x1, 0x0, 0x0, 0x1, 0x3, 0xa, 0x13,0x1d,0x26,0x2e,0x33,0x38,0x3a,0x16,0x21, +0x2b,0x32,0x30,0x2a,0x27,0x2a,0x2f,0x2d,0x24,0x1a,0x10,0x7, 0x1, 0x0, 0x2, 0x7, +0x10,0x19,0x23,0x2d,0x36,0x41,0x49,0x4c,0x4a,0x45,0x3c,0x34,0x2a,0x27,0x51,0x71, +0x50,0x55,0x28,0x12,0x11,0x18,0x23,0x29,0x2b,0x2a,0x2e,0x35,0x3c,0x3e,0x3f,0x39, +0x31,0x28,0x1e,0x15,0xe, 0x6, 0x3, 0x1, 0x0, 0x0, 0x3, 0xc, 0x16,0x20,0x2b,0x32, +0x37,0x39,0x20,0x29,0x32,0x37,0x31,0x28,0x21,0x2a,0x31,0x2d,0x23,0x1b,0x13,0x8, +0x1, 0x0, 0x1, 0x5, 0xc, 0x18,0x20,0x29,0x34,0x3e,0x47,0x4f,0x50,0x4d,0x45,0x3c, +0x34,0x31,0x26,0xcb,0x50,0x55,0x1d,0x2f,0x2c,0x25,0x1a,0x1b,0x20,0x29,0x31,0x31, +0x2e,0x2d,0x35,0x3d,0x3f,0x3d,0x38,0x2c,0x22,0x15,0xd, 0x6, 0x1, 0x0, 0x1, 0x6, +0x10,0x1b,0x24,0x2f,0x38,0x3d,0xd, 0x1b,0x27,0x31,0x32,0x28,0x1e,0x14,0x15,0x1d, +0x28,0x31,0x34,0x2a,0x1f,0x14,0x9, 0x1, 0x0, 0x4, 0xd, 0x17,0x21,0x2c,0x35,0x40, +0x47,0x47,0x44,0x3c,0x34,0x30,0x1b,0x82,0x50,0x55,0x19,0x2e,0x2a,0x1f,0x18,0x1b, +0x22,0x2d,0x30,0x2e,0x2e,0x35,0x3d,0x3f,0x3d,0x3a,0x2f,0x24,0x18,0xf, 0x7, 0x1, +0x0, 0x0, 0x3, 0xb, 0x16,0x1e,0x29,0x32,0x3a,0x3d,0x11,0x1f,0x28,0x32,0x30,0x26, +0x1b,0x14,0x1c,0x25,0x2e,0x35,0x2e,0x23,0x19,0x11,0x4, 0x0, 0x1, 0x8, 0x10,0x1c, +0x25,0x30,0x38,0x40,0x42,0x3f,0x39,0x32,0x2c,0x27,0xc0,0xd1,0x50,0x55,0x18,0x2c, +0x29,0x1e,0x14,0x13,0x16,0x1e,0x29,0x30,0x2e,0x2c,0x2b,0x37,0x3d,0x3f,0x3e,0x39, +0x30,0x25,0x1b,0x10,0x8, 0x1, 0x0, 0x2, 0x9, 0x13,0x1f,0x2d,0x38,0x3c,0x11,0x1a, +0x23,0x2f,0x33,0x29,0x20,0x16,0xe, 0x13,0x1d,0x28,0x32,0x31,0x28,0x1e,0x16,0xb, +0x2, 0x0, 0x1, 0x8, 0x12,0x1e,0x29,0x33,0x3b,0x3f,0x3c,0x32,0x29,0x26,0x30,0x6e, +0x50,0x55,0x16,0x2b,0x24,0x17,0xd, 0xa, 0xe, 0x15,0x24,0x28,0x25,0x23,0x2b,0x36, +0x3b,0x3d,0x3b,0x37,0x2b,0x20,0x15,0xb, 0x4, 0x0, 0x0, 0x3, 0xe, 0x19,0x27,0x33, +0x3d,0x3f,0x13,0x21,0x2e,0x37,0x3a,0x31,0x27,0x1c,0x13,0x1c,0x28,0x34,0x3e,0x37, +0x2d,0x22,0x18,0xc, 0x1, 0x0, 0x3, 0xd, 0x18,0x25,0x31,0x3c,0x47,0x48,0x42,0x38, +0x2e,0x2a,0x31,0x62,0x50,0x55,0x35,0x2e,0x27,0x22,0x1f,0x1b,0x16,0x10,0xc, 0x8, +0x6, 0x4, 0x2, 0x0, 0x0, 0x0, 0x1, 0x3, 0x6, 0xb, 0xe, 0x12,0x17,0x1d,0x22,0x26, +0x2a,0x30,0x35,0x39,0x3d,0x3f,0x0, 0x0, 0x1, 0x4, 0x6, 0x8, 0xb, 0x10,0x16,0x1b, +0x1f,0x23,0x28,0x2d,0x32,0x36,0x3b,0x40,0x44,0x48,0x4a,0x4b,0x4c,0x4b,0x4a,0x48, +0x46,0x43,0x40,0x3e,0x3c,0x3a,0x3c,0x9c,0x34,0x55,0x9, 0x17,0x1d,0x26,0x2e,0x37, +0x3c,0x3f,0x3b,0x33,0x2b,0x22,0x1a,0x11,0xb, 0x5, 0x3, 0x1, 0x1, 0x0, 0x0, 0x0, +0x1, 0x6, 0xa, 0x11,0x19,0x22,0x2a,0x32,0x39,0x3d,0x30,0x30,0x2f,0x2c,0x26,0x1e, +0x17,0xd, 0x5, 0x0, 0x0, 0x1, 0x6, 0xe, 0x15,0x1e,0x26,0x2c,0x32,0x3a,0x41,0x48, +0x50,0x5b,0x61,0x64,0x64,0x60,0x5b,0x56,0x51,0x4f,0xd8,0x2c,0x33,0x55,0x26,0x1c, +0x19,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x17,0x17,0x15,0xf, 0x9, 0x4, 0x1, 0x0, +0x0, 0x0, 0x0, 0x1, 0x4, 0xb, 0x12,0x18,0x1f,0x28,0x31,0x37,0x3c,0x40,0x1, 0x7, +0xe, 0x14,0x1c,0x23,0x2c,0x34,0x3e,0x44,0x4c,0x54,0x5b,0x60,0x5d,0x55,0x4f,0x49, +0x43,0x3d,0x38,0x32,0x2b,0x26,0x22,0x1f,0x1e,0x1c,0x1c,0x1c,0x1c,0x1d,0x66,0x54, +0x74,0x55,0x3e,0x2c,0x21,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d, +0x1e,0x1e,0x1d,0x1a,0x11,0xc, 0x7, 0x2, 0x0, 0x0, 0x3, 0xa, 0x12,0x1c,0x23,0x2c, +0x38,0x40,0xc, 0x0, 0x6, 0xf, 0x17,0x22,0x29,0x32,0x3b,0x41,0x47,0x4f,0x55,0x5c, +0x66,0x71,0x79,0x3e,0x76,0x6d,0x64,0x5a,0x52,0x4b,0x42,0x39,0x35,0x33,0x32,0x32, +0x31,0x31,0xf3,0xdb,0x74,0x55,0x9, 0x7, 0x6, 0x6, 0x5, 0x5, 0x4, 0x4, 0x4, 0x4, +0x3, 0x2, 0x2, 0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xa, 0x10,0x14,0x1b,0x22, +0x28,0x2e,0x34,0x39,0x3d,0x40,0x0, 0xb, 0x11,0x16,0x1b,0x22,0x28,0x2c,0x33,0x39, +0x40,0x46,0x4d,0x52,0x56,0x5c,0x61,0x68,0x6d,0x73,0x73,0x71,0x71,0x71,0x70,0x70, +0x6f,0x6f,0x6f,0x6f,0x6d,0x6e,0x79,0x80,0x44,0x55,0x17,0x13,0x12,0x12,0x11,0x10, +0xf, 0xd, 0xc, 0xb, 0x9, 0x8, 0x7, 0x4, 0x3, 0x2, 0x1, 0x0, 0x0, 0x0, 0x1, 0x4, +0xb, 0x10,0x16,0x1d,0x24,0x29,0x31,0x39,0x3d,0x40,0x0, 0xe, 0x16,0x1a,0x1f,0x24, +0x29,0x2e,0x33,0x38,0x3e,0x43,0x47,0x50,0x55,0x59,0x62,0x69,0x6e,0x75,0x7c,0xff, +0x7d,0x7c,0x79,0x73,0x6d,0x68,0x60,0x5a,0x57,0x56,0x5d,0x8, 0x44,0x55,0x0, 0x7, +0xb, 0xd, 0x10,0x12,0x16,0x17,0x17,0x18,0x18,0x19,0x19,0x19,0x1c,0x1e,0x20,0x22, +0x23,0x25,0x27,0x29,0x2b,0x30,0x32,0x33,0x35,0x38,0x39,0x3b,0x3d,0x3f,0x3e,0x29, +0x1f,0x18,0xf, 0x7, 0x6, 0xc, 0x12,0x1d,0x25,0x2d,0x36,0x3e,0x3b,0x35,0x2c,0x26, +0x20,0x19,0x11,0xa, 0x3, 0x3, 0x9, 0x10,0x18,0x24,0x2c,0x33,0x3a,0x3e,0x60,0x9b, +0x32,0x55,0x0, 0x5, 0x5, 0x5, 0x4, 0x3, 0x2, 0x3, 0x5, 0x7, 0xa, 0xe, 0x11,0x19, +0x1b,0x1c,0x1d,0x1c,0x1c,0x1d,0x1f,0x22,0x25,0x2a,0x31,0x33,0x35,0x37,0x38,0x39, +0x3c,0x40,0x0, 0x12,0x1c,0x24,0x2b,0x34,0x3c,0x39,0x2f,0x29,0x21,0x16,0xf, 0xd, +0x14,0x1e,0x2a,0x33,0x31,0x27,0x20,0x18,0x10,0x7, 0xa, 0x10,0x1a,0x26,0x2f,0x37, +0x3d,0x3f,0xfb,0x8f,0x32,0x55,0x2c,0x23,0x1f,0x19,0x13,0xc, 0x7, 0x3, 0x0, 0x0, +0x0, 0x1, 0x5, 0xa, 0xf, 0x16,0x1d,0x23,0x2a,0x30,0x36,0x3b,0x3e,0x40,0x3f,0x3e, +0x3b,0x38,0x33,0x2f,0x2b,0x28,0x9, 0x1, 0x0, 0x1, 0x3, 0x9, 0xe, 0x14,0x1b,0x21, +0x27,0x2e,0x36,0x3b,0x3e,0x41,0x41,0x40,0x3d,0x3a,0x36,0x2f,0x2b,0x26,0x20,0x1c, +0x16,0x10,0xc, 0xa, 0x9, 0xb, 0x36,0xdc,0x30,0x55,0x1a,0x9, 0x5, 0x1, 0x0, 0x0, +0x0, 0x2, 0x5, 0x9, 0xf, 0x16,0x1c,0x22,0x2a,0x31,0x36,0x39,0x3c,0x3e,0x3f,0x3f, +0x3d,0x38,0x30,0x27,0x1f,0x18,0x12,0xb, 0x6, 0x5, 0x7, 0x12,0x19,0x22,0x2c,0x36, +0x3f,0x49,0x53,0x5c,0x63,0x66,0x64,0x5f,0x58,0x4c,0x43,0x3d,0x34,0x2b,0x22,0x1b, +0x15,0xb, 0x4, 0x0, 0x0, 0x1, 0x4, 0xb, 0x13,0x18,0xf1,0xc, 0x30,0x55,0x18,0x2c, +0x34,0x39,0x3c,0x3d,0x3f,0x3f,0x3f,0x3d,0x3b,0x36,0x30,0x2a,0x24,0x1c,0x16,0xd, +0x6, 0x1, 0x0, 0x0, 0x0, 0x1, 0x1, 0x3, 0x5, 0x9, 0xf, 0x17,0x1e,0x24,0x1, 0x2, +0x8, 0xe, 0x14,0x1a,0x21,0x28,0x30,0x37,0x40,0x49,0x50,0x55,0x59,0x5c,0x5c,0x58, +0x51,0x48,0x3f,0x38,0x31,0x2b,0x25,0x1d,0x17,0x11,0xa, 0x4, 0x1, 0x1, 0x9d,0xbf, +0x30,0x55,0x16,0x7, 0x2, 0x0, 0x0, 0x0, 0x0, 0x1, 0x4, 0x8, 0xe, 0x16,0x1f,0x28, +0x30,0x38,0x3c,0x3e,0x3f,0x40,0x3f,0x3f,0x3d,0x3b,0x37,0x32,0x2c,0x25,0x1d,0x16, +0xf, 0xc, 0x53,0x46,0x3e,0x35,0x2e,0x27,0x20,0x1a,0x14,0xd, 0x6, 0x1, 0x0, 0x0, +0x3, 0xa, 0x13,0x1a,0x20,0x27,0x2d,0x33,0x3a,0x40,0x48,0x4f,0x54,0x58,0x5a,0x5a, +0x58,0x57,0xc6,0x55,0x30,0x55,0x7, 0x1, 0x4, 0xa, 0x10,0x18,0x20,0x2a,0x32,0x38, +0x3c,0x3e,0x3f,0x3e,0x3d,0x3b,0x39,0x35,0x30,0x27,0x21,0x19,0x12,0xb, 0x6, 0x3, +0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x32,0x1d,0x12,0x9, 0x5, 0x1, 0x0, 0x0, 0x1, 0x5, +0xd, 0x17,0x20,0x2a,0x32,0x3b,0x45,0x4e,0x58,0x63,0x69,0x6b,0x6a,0x64,0x5d,0x57, +0x4f,0x47,0x40,0x38,0x32,0x2f,0x1a,0xb5,0x30,0x55,0x21,0x13,0xc, 0x8, 0x5, 0x2, +0x1, 0x0, 0x0, 0x1, 0x3, 0x8, 0xf, 0x17,0x1e,0x24,0x2b,0x32,0x39,0x3d,0x3e,0x3f, +0x3f,0x3d,0x3a,0x36,0x30,0x29,0x21,0x1a,0x16,0x13,0x5, 0x9, 0xe, 0x14,0x1a,0x22, +0x29,0x30,0x38,0x3f,0x47,0x4d,0x51,0x51,0x4f,0x4d,0x49,0x42,0x39,0x31,0x2b,0x25, +0x1e,0x17,0x10,0x8, 0x3, 0x0, 0x0, 0x1, 0x3, 0x5, 0xaf,0x13,0x30,0x55,0x38,0x3f, +0x3d,0x3a,0x36,0x2e,0x26,0x1f,0x14,0xb, 0x6, 0x2, 0x0, 0x0, 0x0, 0x1, 0x2, 0x5, +0x9, 0xe, 0x14,0x1c,0x23,0x2a,0x34,0x38,0x3a,0x3b,0x3d,0x3d,0x3d,0x3d,0x29,0x1a, +0x10,0x9, 0x4, 0x0, 0x0, 0x1, 0x4, 0xc, 0x14,0x1c,0x22,0x28,0x2f,0x37,0x3f,0x47, +0x4f,0x56,0x5a,0x5b,0x59,0x56,0x4e,0x47,0x40,0x37,0x30,0x28,0x22,0x1f,0x2a,0xa9, +0x30,0x55,0x3e,0x3b,0x38,0x33,0x2b,0x24,0x1d,0x16,0x10,0x7, 0x3, 0x1, 0x0, 0x0, +0x0, 0x1, 0x1, 0x3, 0x6, 0xc, 0x15,0x1c,0x23,0x29,0x2f,0x35,0x38,0x3b,0x3c,0x3e, +0x3f,0x3f,0x1f,0x10,0xa, 0x6, 0x0, 0x0, 0x0, 0x2, 0x4, 0xc, 0x12,0x18,0x1e,0x25, +0x2c,0x35,0x3c,0x42,0x4a,0x51,0x56,0x56,0x53,0x4e,0x49,0x40,0x3a,0x33,0x2c,0x25, +0x1f,0x1c,0xf9,0xa2,0x30,0x55,0x1f,0x2b,0x31,0x35,0x38,0x3b,0x3e,0x3f,0x3f,0x3d, +0x3a,0x34,0x2d,0x27,0x23,0x1d,0x17,0x10,0x9, 0x4, 0x1, 0x0, 0x0, 0x1, 0x3, 0x6, +0xa, 0xf, 0x15,0x1b,0x20,0x23,0x45,0x42,0x3e,0x38,0x34,0x2d,0x24,0x1c,0x15,0x11, +0xb, 0x6, 0x2, 0x0, 0x0, 0x0, 0x1, 0x3, 0x7, 0xd, 0x12,0x18,0x20,0x28,0x30,0x36, +0x3c,0x42,0x47,0x48,0x49,0x4a,0x65,0x9d,0x30,0x55,0x1c,0x2a,0x33,0x39,0x3c,0x3e, +0x3f,0x3f,0x3e,0x3d,0x3a,0x35,0x2e,0x28,0x23,0x1c,0x15,0xf, 0x9, 0x4, 0x1, 0x0, +0x0, 0x1, 0x1, 0x4, 0x8, 0xd, 0x13,0x19,0x1e,0x22,0x40,0x3e,0x3a,0x33,0x2f,0x29, +0x22,0x1b,0x15,0x10,0xa, 0x5, 0x1, 0x0, 0x0, 0x1, 0x2, 0x5, 0xa, 0x11,0x17,0x1c, +0x24,0x2a,0x30,0x35,0x3b,0x40,0x43,0x44,0x45,0x45,0xcb,0xc6,0x30,0x55,0x5, 0x3, +0x4, 0x7, 0xa, 0x10,0x17,0x21,0x28,0x2e,0x33,0x38,0x3c,0x3e,0x3f,0x3f,0x3e,0x3b, +0x38,0x31,0x29,0x21,0x18,0xf, 0x9, 0x4, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x26,0x35, +0x3d,0x45,0x4b,0x51,0x53,0x52,0x4f,0x4c,0x46,0x41,0x3b,0x34,0x2e,0x25,0x1e,0x17, +0x11,0x9, 0x3, 0x0, 0x0, 0x2, 0x6, 0xc, 0x12,0x18,0x1e,0x24,0x2c,0x31,0xf4,0xb6, +0x30,0x55,0xa, 0x5, 0x5, 0x5, 0x8, 0xf, 0x16,0x20,0x29,0x31,0x36,0x3a,0x3c,0x3e, +0x3f,0x3f,0x3e,0x3c,0x3a,0x33,0x2d,0x24,0x1c,0x14,0xf, 0x8, 0x4, 0x0, 0x0, 0x0, +0x1, 0x2, 0x35,0x46,0x4e,0x56,0x5d,0x65,0x68,0x66,0x60,0x57,0x4f,0x47,0x3f,0x37, +0x2e,0x25,0x1e,0x16,0x10,0x6, 0x2, 0x0, 0x1, 0x5, 0xb, 0x15,0x1d,0x28,0x2f,0x39, +0x41,0x45,0xf0,0xbc,0x30,0x55,0x7, 0x3, 0x3, 0x3, 0x4, 0x7, 0xf, 0x17,0x20,0x28, +0x30,0x36,0x3b,0x3d,0x3f,0x3f,0x3d,0x39,0x36,0x2d,0x25,0x1d,0x16,0xd, 0x8, 0x2, +0x0, 0x0, 0x1, 0x2, 0x3, 0x5, 0x2e,0x3f,0x48,0x50,0x59,0x5f,0x67,0x68,0x63,0x5d, +0x52,0x4a,0x3e,0x35,0x2b,0x20,0x18,0x10,0xa, 0x3, 0x0, 0x0, 0x1, 0x7, 0xe, 0x19, +0x22,0x2b,0x31,0x3a,0x42,0x47,0xef,0xc9,0x30,0x55,0x3b,0x3c,0x3c,0x3b,0x39,0x36, +0x2f,0x27,0x21,0x19,0x11,0xb, 0x5, 0x1, 0x0, 0x0, 0x1, 0x2, 0x4, 0x6, 0xa, 0x10, +0x16,0x1f,0x26,0x2d,0x33,0x39,0x3c,0x3e,0x3f,0x3f,0x22,0x31,0x3b,0x41,0x47,0x4d, +0x56,0x59,0x5a,0x58,0x55,0x51,0x4b,0x43,0x3d,0x35,0x29,0x20,0x18,0x11,0x9, 0x3, +0x0, 0x0, 0x1, 0x3, 0x7, 0xf, 0x15,0x1b,0x21,0x26,0x2b,0xa0,0x30,0x55,0x37,0x38, +0x37,0x34,0x2d,0x26,0x1c,0x16,0xe, 0x9, 0x4, 0x2, 0x0, 0x0, 0x0, 0x1, 0x2, 0x5, +0xa, 0x10,0x17,0x20,0x26,0x2e,0x35,0x3a,0x3c,0x3e,0x3f,0x3f,0x3e,0x3e,0x30,0x40, +0x49,0x50,0x59,0x5e,0x60,0x5d,0x56,0x50,0x47,0x41,0x39,0x33,0x2a,0x20,0x1a,0x10, +0xa, 0x5, 0x1, 0x0, 0x0, 0x3, 0x8, 0x10,0x17,0x1f,0x25,0x2f,0x38,0x3c,0x37,0xc3, +0x30,0x55,0x3b,0x3d,0x3d,0x3b,0x38,0x32,0x27,0x1c,0x13,0xe, 0x8, 0x3, 0x0, 0x0, +0x0, 0x1, 0x3, 0x7, 0xb, 0x12,0x18,0x20,0x28,0x31,0x39,0x3d,0x3f,0x40,0x3f,0x3f, +0x3e,0x3e,0x33,0x45,0x4e,0x57,0x5d,0x65,0x6c,0x6a,0x66,0x63,0x5c,0x53,0x4a,0x40, +0x38,0x2e,0x25,0x1a,0x11,0x8, 0x4, 0x0, 0x0, 0x2, 0x9, 0x10,0x19,0x21,0x2a,0x32, +0x39,0x3e,0x7, 0x90,0x30,0x55,0x39,0x2b,0x24,0x1c,0x15,0xe, 0x9, 0x6, 0x5, 0x6, +0x9, 0x10,0x19,0x22,0x27,0x2e,0x35,0x3b,0x3e,0x3f,0x3d,0x38,0x32,0x2c,0x26,0x1f, +0x19,0x13,0xb, 0x5, 0x1, 0x0, 0x6, 0x0, 0x1, 0x2, 0x6, 0xb, 0x11,0x17,0x1d,0x24, +0x2a,0x2f,0x32,0x34,0x35,0x36,0x37,0x3b,0x41,0x47,0x4e,0x56,0x5d,0x61,0x64,0x65, +0x65,0x63,0x60,0x5c,0x57,0x54,0xd1,0x4a,0x46,0x55,0x0, 0x1, 0x3, 0x5, 0x7, 0x8, +0xa, 0xb, 0xc, 0xe, 0xf, 0x11,0x12,0x14,0x16,0x1a,0x1e,0x22,0x24,0x27,0x2a,0x2c, +0x2e,0x31,0x33,0x36,0x38,0x3a,0x3c,0x3e,0x3f,0x3f,0x1, 0xe, 0x14,0x1b,0x23,0x28, +0x2e,0x35,0x3a,0x40,0x48,0x4f,0x56,0x5d,0x62,0x61,0x5a,0x53,0x4e,0x47,0x40,0x3b, +0x35,0x2d,0x29,0x22,0x1b,0x17,0x10,0x9, 0x5, 0x1, 0x6d,0x7d,0x54,0x55,0x0, 0x2, +0x3, 0x5, 0x6, 0x8, 0xb, 0x10,0x13,0x16,0x17,0x19,0x1b,0x1d,0x1f,0x21,0x22,0x22, +0x22,0x22,0x23,0x25,0x28,0x2e,0x31,0x34,0x36,0x38,0x3a,0x3c,0x3e,0x3f,0x6, 0x17, +0x20,0x27,0x30,0x38,0x3e,0x39,0x32,0x2b,0x25,0x1e,0x18,0x10,0x9, 0x9, 0x10,0x18, +0x1f,0x26,0x2f,0x36,0x3c,0x38,0x2f,0x27,0x1f,0x18,0xf, 0x8, 0x1, 0x2, 0xc7,0x75, +0x31,0x55,0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x3, 0x8, 0xd, 0x12,0x15,0x17,0x18,0x1a, +0x1b,0x1c,0x1d,0x1d,0x1e,0x1f,0x22,0x27,0x2e,0x35,0x38,0x3b,0x3d,0x3e,0x3f,0x40, +0x3f,0x3e,0x6, 0x15,0x1b,0x23,0x29,0x2f,0x37,0x3c,0x37,0x2e,0x27,0x20,0x1a,0x13, +0xe, 0x14,0x1a,0x21,0x27,0x2f,0x38,0x3f,0x3d,0x35,0x2e,0x26,0x20,0x18,0x11,0xb, +0x3, 0x0, 0x67,0x3f,0x31,0x55,0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, +0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0x10,0x11,0x12,0x13,0x14,0x1c,0x1d,0x1e,0x1f,0x20, +0x21,0x22,0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0x10,0x11, +0x12,0x13,0x14,0x15,0x16,0x17,0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0xe, +0xf, 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x0, 0x1, 0x2, 0x3, 0x4, 0x1c,0x1d,0x1e, +0x1f,0x20,0x0, 0x1, 0x2, 0x3, 0xe, 0xf, 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, +0x18,0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0x10,0x11, +0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x6, 0x5, 0x4, 0x3, 0x2, 0x1, +0x0, 0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x0, 0x0, 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, +0x7, 0x8, 0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, +0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0x10,0x11,0x12,0x13,0x14,0x15,0x16, +0x17,0x18,0x19,0x1a,0x1b,0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, +0xb, 0xc, 0xd, 0xe, 0xf, 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a, +0x1b,0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,0x0, 0x1, 0x1, 0x1, 0x10,0x1c,0x2, 0x10, +0x1c,0x0, 0x1, 0x1, 0x4, 0xf, 0x1c,0x0, 0x1, 0x1, 0x6, 0x1b,0xf, 0x7, 0xe, 0x1c, +0x8, 0x23,0x15,0x0, 0x1, 0x1, 0xa, 0x10,0x19,0xb, 0x14,0x1c,0xc, 0xf, 0x18,0x0, +0x1, 0x1, 0xe, 0x23,0x15,0xf, 0xd, 0x19,0x0, 0x1, 0x1, 0x11,0xd, 0x14,0x12,0x10, +0x19,0x13,0x1c,0x10,0x14,0x1a,0x10,0x15,0x10,0x19,0x16,0x23,0x1c,0x72,0x23,0x15, +0x73,0x23,0x1c,0x74,0x23,0x1c,0x75,0xe, 0x1c,0xc2,0xd5,0x7c,0xb4,0x30,0xe7,0x8, +0xb2,0xd5,0x6e,0x24,0xff,0xff,0xb, 0x24,0x7c,0xb6,0x30,0xe7,0x12,0xb2,0xd5,0x6e, +0x34,0xff,0xff,0xb, 0x34,0x8d,0x32,0x6e,0x24,0xff,0xff,0xb, 0x24,0x80,0x2, 0x8d, +0x32,0x30,0xd5,0x6, 0x6e,0x34,0xff,0xff,0xb, 0x34,0x22,0x7d,0x51,0xad,0x3, 0x7d, +0x2, 0x7d,0x21,0xad,0x5, 0x2d,0x12,0xad,0x35,0x2d,0x21,0x22,0x7d,0x2, 0xad,0x31, +0xad,0x10,0x2d,0x21,0x22,0x6d,0x0, 0x74,0x10,0x4d,0x0, 0x78,0xb, 0x4d,0x22,0x78, +0x27,0x8d,0x31,0x7d,0x12,0x6d,0x22,0x22,0x7d,0x43,0x7d,0x32,0x6d,0x22,0x2f,0x11, +0x2d,0x44,0x50,0x2, 0xa5,0xf, 0xbf,0x10,0x40,0x4, 0x9f,0x10,0xb, 0x90,0x14,0x78, +0xed,0x7f,0x1, 0x6d,0x22,0x7d,0x34,0x22,0x7d,0x41,0x7d,0x13,0x8d,0x24,0x7d,0x2, +0x2f,0x0, 0x40,0x4, 0xbd,0x4, 0x40,0x4, 0x9d,0x4, 0xb, 0x14,0x14,0x78,0xf1,0x7d, +0x23,0x7d,0x31,0x7d,0x10,0x6d,0x0, 0x22,0xc2,0xd5,0x7c,0xb0,0x30,0xe7,0x8, 0xb2, +0xd5,0x9f,0x22,0x9f,0x20,0x7f,0x2, 0x7c,0xb4,0x30,0xe7,0x13,0xb2,0xd5,0x9f,0x22, +0x9f,0x21,0x7f,0x12,0x12,0x1f,0x7, 0x9f,0x22,0x9f,0x20,0x7f,0x2, 0x80,0x3, 0x12, +0x1f,0x7, 0x30,0xd5,0x6, 0x9f,0x22,0x9f,0x21,0x7f,0x12,0x22,0x6c,0xaa,0x4d,0x11, +0x68,0x1a,0x1e,0x54,0x68,0xe, 0xb, 0x38,0x20,0x1b,0x18,0x20,0xb, 0x35,0xb, 0x15, +0x1b,0x54,0x78,0xf2,0x50,0x6, 0x7e,0x39,0x40,0x7a,0x19,0x40,0x22,0x6c,0xaa,0x4d, +0x11,0x68,0x1e,0x1e,0x54,0x50,0xc, 0x7e,0x1b,0x0, 0x7a,0x19,0x0, 0x68,0x12,0xb, +0x1c,0xb, 0x14,0xb, 0x1a,0x0, 0x1b,0x18,0x0, 0xb, 0x1d,0xb, 0x15,0x1b,0x54,0x78, +0xf2,0x22,0x75,0x84,0x1, 0x7e,0x44,0x3f,0xff,0xe4,0x7a,0x49,0xb0,0x1b,0x44,0x78, +0xf9,0x7e,0xf8,0x39,0x13,0x75,0xc, 0x0, 0x75,0xd, 0x0, 0x75,0xe, 0x2, 0x75,0xf, +0x0, 0xc2,0x6, 0xc2,0x7, 0x75,0x1b,0x0, 0xc2,0xc, 0xc2,0xd, 0xc2,0xf, 0x75,0x1c, +0x0, 0x75,0x1d,0x0, 0xc2,0x8, 0xc2,0x9, 0x75,0x1e,0x0, 0xc2,0x11,0x75,0x1f,0x0, +0xc2,0x13,0x75,0x4c,0x0, 0xc2,0x14,0x75,0x4d,0x64,0xc2,0x15,0xc2,0x16,0xc2,0x17, +0x75,0x4e,0x0, 0xd2,0x0, 0xd2,0x1, 0xd2,0x2, 0xd2,0x18,0xc2,0xa, 0xd2,0xb, 0x7e, +0x4, 0x0, 0xff,0x7e,0x14,0x21,0x10,0xb, 0xa, 0x40,0x5d,0x44,0x68,0x1a,0x69,0x20, +0x0, 0x2, 0xb, 0xe, 0xb, 0x44,0x80,0xa, 0x7e,0xb, 0xb0,0x7a,0x29,0xb0,0xb, 0x24, +0xb, 0xc, 0x1b,0x44,0x78,0xf2,0x80,0xdf,0x2, 0x36,0x72,0x0, 0x0, 0x0, 0x47,0x0, +0xcb,0x1, 0x0, 0x0, 0x10,0xfd,0xc7,0xfb,0x7e,0xfb,0xfb,0x1, 0xbb,0xc, 0x9e,0x19, +0x0, 0x21,0x45,0x0, 0xe, 0x1, 0xf, 0x2, 0x10,0x3, 0x11,0x4, 0x12,0x5, 0x13,0x6, +0x14,0x7, 0x15,0x8, 0x16,0x9, 0x17,0xa, 0x18,0xb, 0x19,0xc, 0x1a,0xd, 0x1b,0xdf, +0x22,0xc3,0x21,0xa9,0x20,0x94,0x1f,0x81,0x1e,0x70,0x1d,0x62,0x1c,0x55,0x1b,0x4a, +0x1a,0x41,0x19,0x38,0x18,0x31,0x17,0x2b,0x16,0x25,0x15,0x21,0x14,0x1c,0x13,0x19, +0x12,0x16,0x11,0x13,0x10,0x11,0xf, 0x10,0xe, 0xca,0xf8,0x7f,0x20,0x80,0xa, 0x7e, +0x1b,0xf0,0x7a,0x2b,0xf0,0xb, 0x34,0xb, 0x54,0x69,0xff,0xff,0xfc,0x7d,0xef,0x1b, +0xe4,0x79,0xef,0xff,0xfc,0x4d,0xff,0x78,0xe6,0x7f,0x10,0xda,0xf8,0x22,0x7d,0x43, +0x7f,0x10,0x80,0x7, 0x1b,0x44,0x7a,0xb, 0xb0,0xb, 0x14,0x4d,0x44,0x78,0xf5,0x22, +0xff,0x0, 0x1, 0x2, 0x0, 0xff,0x1, 0x2, 0x0, 0x1, 0xff,0x2, 0x0, 0x1, 0x2, 0xff, +0x7d,0x23,0xbe,0x24,0x0, 0x0, 0x48,0x3, 0x7d,0x32,0x22,0x6d,0x33,0x9d,0x32,0x22, +0x0, 0x4, 0x31,0xd0,0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x33,0xff,0x1, 0x0, 0x1, 0x25, +0xf6,0x1, 0x0, 0x1, 0x37,0x9b,0x0, 0x0, 0x2, 0x37,0xed,0x0, 0x0, 0x0, 0x2, 0x37, +0xef,0x0, 0x0, 0x0, 0x1, 0x37,0xf1,0x0, 0x0, 0x1, 0x34,0x4f,0x0, 0x0, 0x1, 0x39, +0x11,0x0, 0x0, 0x1, 0x34,0x8a,0x0, 0x0, 0x2, 0x34,0x9f,0x0, 0x0, 0x0, 0x1, 0x34, +0xa1,0x0, 0x0, 0x1, 0x34,0xaf,0x0, 0x0, 0x1, 0x34,0xc4,0x0, 0x0, 0x1, 0x34,0xc5, +0x0, 0x0, 0x1, 0x35,0x3e,0x0, 0x0, 0x1, 0x35,0x3f,0x1, 0x0, 0x1, 0x35,0x40,0x0, +0x0, 0x3c,0x35,0xe9,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x1, 0x36,0x61,0x0, 0x0, 0x1, 0x36,0x62,0x0, 0x0, 0x1, 0x36,0x63,0x0, 0x0, +0x1, 0x35,0xe2,0x1, 0x0, 0x2, 0x35,0xe5,0x0, 0x0, 0x0, 0x1, 0x2f,0xa9,0x0, 0x0, +0x1, 0x2f,0xaa,0x0, 0x0, 0x1, 0x2f,0xab,0x0, 0x0, 0x1, 0x2f,0xac,0x0, 0x0, 0x1, +0x36,0x66,0x1, 0x0, 0x1, 0x36,0xe0,0x0, 0x0, 0x1, 0x39,0x12,0x0, 0x0, 0x6, 0x38, +0xfb,0x3f,0x1f,0x50,0x11,0x20,0x10,0x0, 0x1, 0x39,0x1, 0x24,0x0, 0x1, 0x39,0x8, +0x0, 0x0, 0x1, 0x39,0x9, 0x0, 0x0, 0x1, 0x39,0xa, 0x0, 0x0, 0x1, 0x39,0xb, 0x0, +0x0, 0x1, 0x39,0xc, 0x0, 0x0, 0x1, 0x0, 0x4f,0x0, 0x0, 0x1, 0x3, 0xec,0x0, 0x0, +0x4, 0x37,0x40,0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x39,0x2, 0x0, 0x0, 0x1, 0x39,0x3, +0x0, 0x0, 0x2, 0x39,0x4, 0x0, 0x0, 0x0, 0x1, 0x39,0x6, 0x64,0x0, 0x1, 0x39,0x7, +0x0, 0x0, 0x1, 0x39,0x13,0x0, 0x0, 0x1, 0x3, 0xfe,0x0, 0x0, 0x1, 0x3, 0xff,0x0, +0x0, 0x2, 0x2b,0xb9,0x2b,0xbf,0x0, 0x1, 0x2f,0x7f,0x2, 0x0, 0x1, 0x2f,0xa8,0x0, +0x0, 0x1, 0x38,0xdd,0x0, 0x0, 0x1, 0x38,0x3e,0xff,0x0, 0x1, 0x38,0x3f,0x0, 0x0, +0x1, 0x38,0x40,0x0, 0x0, 0x1, 0x38,0x41,0x40,0x0, 0x1, 0x38,0x42,0x40,0x0, 0x4, +0x38,0xf3,0x0, 0x0, 0x50,0x0, 0x0, 0x4, 0x38,0xf7,0x0, 0x0, 0x64,0x0, 0x0, 0x4, +0x38,0xc0,0x0, 0x0, 0x6c,0x0, 0x0, 0x4, 0x38,0xc4,0x0, 0x0, 0x68,0xc0,0x0, 0x4, +0x38,0xc8,0x0, 0x0, 0x68,0x0, 0x0, 0x4, 0x38,0xd9,0x0, 0x0, 0x40,0x0, 0x0, 0x4, +0x39,0xd, 0x0, 0x0, 0x60,0x0, 0x0, 0x0, 0x3, 0x20,0x0, 0xc, 0x1, 0xf4,0x2, 0x58, +0x0, 0xc, 0x1, 0x5e,0x1, 0xc2,0x0, 0xa, 0x0, 0xc8,0x1, 0x40,0x0, 0x5, 0x0, 0x78, +0x0, 0xc8,0x0, 0x4, 0x0, 0x3c,0x0, 0x78,0x0, 0x3, 0x0, 0xa, 0x0, 0x3c,0x0, 0x2, +0x0, 0x0, 0x0, 0xe, 0x1c,0x23,0x5, 0xdc,0x0, 0x32,0x3, 0xe8,0x0, 0x28,0x0, 0x0, +0x0, 0x1e,0x12,0x3f,0x13,0x12,0x69,0x8e,0x12,0x23,0xb, 0x12,0x28,0x48,0x12,0x8d, +0xec,0x2, 0x23,0x4, 0x74,0x1, 0x7a,0xb3,0x36,0x6a,0x22,0x12,0x73,0x71,0x12,0x23, +0x40,0x2, 0x23,0x14,0x7e,0x34,0x0, 0x3, 0x6d,0x22,0x2, 0x23,0x1d,0x7d,0x43,0x7e, +0xa3,0x34,0x38,0xbe,0xa0,0x5, 0x50,0x16,0x7e,0x70,0x4, 0xac,0x7a,0x59,0x43,0x34, +0x3b,0x59,0x23,0x34,0x3d,0x7c,0xba,0x4, 0x7a,0xb3,0x34,0x38,0xc3,0x22,0xd3,0x22, +0x6d,0x33,0x7e,0x24,0x6, 0xfc,0x12,0x23,0x1d,0x7e,0x34,0x0, 0x1, 0x7e,0x24,0x7, +0x7a,0x2, 0x23,0x1d,0x7e,0x34,0x60,0xa3,0x12,0x23,0x9e,0x12,0x26,0x5b,0x12,0x46, +0xa2,0x12,0x73,0x28,0x12,0x3f,0x13,0x12,0x69,0x87,0x12,0xc0,0x25,0x12,0x23,0xb, +0x12,0x28,0x48,0x12,0x68,0x23,0x12,0x8d,0xec,0x2, 0x23,0x4, 0x7e,0x34,0x61,0x4f, +0x7e,0x24,0x0, 0xff,0xb, 0x1a,0x30,0x7a,0x37,0x2a,0x5a,0x7e,0x34,0x61,0x51,0x7e, +0x24,0x0, 0xff,0xb, 0x1a,0x30,0x7a,0x37,0x2a,0x5c,0x7e,0x34,0x61,0x53,0x7e,0x24, +0x0, 0xff,0xb, 0x1a,0x30,0x22,0x7e,0x34,0x61,0x55,0x12,0x23,0x9e,0x7a,0x37,0x28, +0x95,0x7e,0x34,0x61,0xba,0x12,0x23,0x9e,0x7a,0x37,0x28,0x99,0x7e,0x34,0x61,0xb8, +0x12,0x23,0x9e,0x7a,0x37,0x28,0x97,0x7e,0x34,0x62,0x12,0x12,0x23,0x9e,0x7a,0x37, +0x28,0x9b,0x7e,0x34,0x61,0xbc,0x12,0x23,0x9e,0x7a,0x37,0x28,0x9d,0x7e,0x34,0x61, +0xbe,0x12,0x23,0x9e,0x7a,0x37,0x28,0x9f,0x7e,0x34,0x61,0xc0,0x12,0x23,0x9e,0x12, +0xc0,0xb1,0x12,0x23,0x9e,0x7a,0x37,0x28,0xa3,0x90,0x61,0xc4,0xe4,0x93,0x7a,0xb3, +0x28,0xa5,0xe4,0x7a,0xb3,0x28,0xa8,0x12,0x2f,0xdd,0x3e,0x34,0x7e,0x8, 0x25,0xf7, +0xe4,0x2, 0x20,0xde,0x12,0x25,0xc3,0x7e,0xb3,0x36,0x71,0xb4,0x1, 0x16,0x7e,0x34, +0x62,0x34,0x12,0x23,0x9e,0x7a,0x37,0x2a,0x5a,0x7e,0x34,0x62,0x36,0x12,0x23,0x9e, +0x7a,0x37,0x2a,0x5c,0x7e,0xb3,0x28,0xa8,0xb4,0x1, 0x37,0x7e,0x34,0x62,0x3e,0x12, +0x23,0x9e,0x7a,0x37,0x2a,0x5a,0x7e,0x34,0x62,0x40,0x12,0x23,0x9e,0x7a,0x37,0x2a, +0x5c,0x7e,0x34,0x62,0x42,0x12,0x23,0x9e,0x7a,0x37,0x2a,0x4f,0x7e,0x34,0x62,0x44, +0x12,0x23,0x9e,0x7a,0x37,0x2a,0x51,0x7e,0x34,0x62,0x46,0x12,0x23,0x9e,0x7a,0x37, +0x2a,0x53,0x7e,0xb3,0x2a,0x2, 0x70,0x21,0x7e,0x27,0x2a,0x5a,0x7d,0x32,0x7e,0x14, +0x0, 0x4, 0xad,0x13,0x7d,0x31,0x12,0x25,0x3c,0xbe,0x34,0x0, 0x50,0x28,0x4, 0x7e, +0x34,0x0, 0x50,0x2d,0x32,0x7a,0x37,0x2a,0x5a,0x22,0x7e,0x54,0x0, 0x54,0x7e,0x44, +0x0, 0xff,0x69,0x32,0x0, 0x4, 0x69,0x22,0x0, 0x2, 0xb, 0x2a,0x10,0x7a,0x1d,0x26, +0x7a,0x15,0x24,0x7e,0x34,0x0, 0x20,0x7e,0x8, 0x0, 0x24,0x7e,0x24,0x0, 0x6, 0x12, +0xb7,0xc7,0x7e,0x34,0x61,0x4f,0x12,0x23,0x9e,0x1e,0x34,0x1e,0x34,0x7a,0x73,0x36, +0xe1,0x7e,0x34,0x61,0x51,0x12,0x23,0x9e,0xe, 0x34,0xe, 0x34,0x7a,0x73,0x36,0xe2, +0x7e,0x34,0x61,0x55,0x12,0x23,0x9e,0x12,0x25,0x3c,0x7a,0x73,0x36,0xe3,0x7e,0x34, +0x61,0x57,0x12,0x23,0x9e,0x12,0x25,0x3c,0x7a,0x73,0x36,0xe4,0x7e,0x34,0x61,0x59, +0x12,0x23,0x9e,0x12,0x25,0x3c,0x7a,0x73,0x36,0xe5,0x7e,0x34,0x61,0x5b,0x12,0x23, +0x9e,0x12,0x25,0x3c,0x7a,0x73,0x36,0xe6,0x7e,0x34,0x0, 0x59,0xca,0x39,0x7e,0x34, +0x61,0x5f,0x7e,0x24,0x0, 0xff,0x7e,0x8, 0x36,0xe7,0x12,0x20,0xb9,0x1b,0xfd,0xe5, +0x25,0x7a,0xb3,0x37,0x12,0xe5,0x28,0x7a,0xb3,0x37,0x1, 0x22,0x1e,0x34,0x1e,0x34, +0x1e,0x34,0x1e,0x34,0x22,0x90,0x60,0x99,0xe4,0x93,0x7a,0xb3,0x2a,0x4d,0x90,0x60, +0x9e,0xe4,0x93,0x7a,0xb3,0x2a,0x4e,0x7e,0x34,0x61,0x55,0x12,0x23,0x9e,0x12,0xc0, +0xa8,0x12,0x23,0x9e,0x7a,0x37,0x2a,0x51,0x7e,0x14,0x61,0x59,0x7e,0x4, 0x0, 0xff, +0xb, 0xa, 0x20,0x7a,0x27,0x2a,0x53,0x7a,0x37,0x2a,0x55,0x90,0x60,0x9d,0xe4,0x93, +0x7a,0xb3,0x2a,0x59,0x12,0x23,0x7c,0x12,0xc0,0x55,0x7e,0x34,0x62,0x12,0x12,0x23, +0x9e,0x7a,0x37,0x2a,0x60,0x90,0x60,0x9f,0xe4,0x93,0x7a,0xb3,0x2a,0x64,0x90,0x60, +0xa0,0xe4,0x93,0x7a,0xb3,0x2a,0x65,0x7e,0x34,0x60,0xa1,0x12,0x23,0x9e,0x7a,0x37, +0x2a,0x66,0x7e,0x34,0x61,0x5b,0x12,0x23,0x9e,0x7a,0x37,0x2a,0x62,0xe4,0x7a,0xb3, +0x16,0x92,0x22,0x12,0x23,0x7c,0x12,0xc0,0x55,0x7e,0x34,0x61,0x55,0x12,0x23,0x9e, +0x12,0xc0,0xa8,0x12,0x23,0x9e,0x7a,0x37,0x2a,0x51,0x7e,0x34,0x61,0x59,0x12,0x23, +0x9e,0x7a,0x37,0x2a,0x53,0x22,0xca,0xf8,0x7e,0xf3,0x37,0xa0,0xbe,0xf0,0x5, 0x78, +0xb, 0x74,0x1, 0x7a,0xb3,0x37,0xa0,0x12,0x0, 0x9, 0x80,0x52,0xbe,0xf0,0x4, 0x78, +0x13,0x12,0xc0,0x0, 0x12,0x23,0x9e,0x12,0x26,0x5b,0xe4,0x7a,0xb3,0x2b,0x2, 0x12, +0x7a,0x2d,0x80,0x3a,0xbe,0xf0,0x6, 0x78,0x19,0x12,0xc0,0x0, 0x12,0x23,0x9e,0x12, +0x26,0x5b,0x12,0x49,0xd, 0xe4,0x7a,0xb3,0x2b,0x1e,0x12,0x69,0xab,0x12,0xc1,0x1, +0x80,0x1c,0xbe,0xf0,0x7, 0x78,0x1d,0x12,0xc0,0x0, 0x12,0x23,0x9e,0x12,0x26,0x5b, +0x12,0x2f,0xf4,0x50,0xfb,0x12,0x88,0x17,0x12,0x69,0x97,0x12,0x28,0x48,0x74,0x2, +0x7a,0xb3,0x37,0xa0,0xda,0xf8,0x22,0x7e,0x34,0x3, 0xe8,0x6d,0x22,0x7a,0x27,0x3, +0xed,0x7a,0x37,0x3, 0xef,0x22,0x7e,0xb3,0x37,0x6, 0x14,0x68,0x60,0x14,0x78,0x2, +0xe1,0x10,0x14,0x68,0x73,0x24,0x3, 0x68,0x2, 0xe1,0x5, 0x12,0xc1,0x32,0x38,0x8, +0x30,0x10,0xf, 0x12,0xc1,0x2a,0x68,0xa, 0x12,0x63,0x2, 0xe4,0x7a,0xb3,0x38,0x85, +0x80,0x7e,0x7e,0xb3,0x36,0xe7,0x30,0xe0,0x77,0x7e,0x73,0x36,0xe8,0xa, 0x27,0x7e, +0x34,0x4, 0x0, 0xad,0x32,0x7e,0xb3,0x37,0x31,0xb4,0x1, 0xb, 0x7e,0x34,0x62,0x64, +0x12,0x23,0x9e,0x2e,0x34,0x4, 0x0, 0xbe,0x37,0x38,0x83,0x50,0x53,0x12,0x63,0x2, +0x74,0x1, 0x7a,0xb3,0x37,0x6, 0xe4,0x7a,0xb3,0x38,0x87,0x80,0x43,0x12,0xc1,0x32, +0x28,0x39,0xe4,0x7a,0xb3,0x37,0x6, 0x7e,0xb3,0x38,0x85,0xb4,0x1, 0x6, 0x74,0x1, +0x7a,0xb3,0x37,0x6, 0xd2,0x17,0x80,0x23,0x7e,0x34,0x60,0xa5,0x12,0x23,0x9e,0x12, +0x26,0x5b,0x12,0x45,0x73,0x12,0x23,0x54,0xe4,0x7a,0xb3,0x37,0x6, 0x7a,0xb3,0x39, +0x7, 0xd2,0x17,0x80,0xb, 0x74,0x1, 0x7a,0xb3,0x37,0x6, 0xe4,0x7a,0xb3,0x39,0x7, +0x12,0x90,0xd2,0x2, 0x27,0x16,0xca,0xd8,0xca,0x79,0x7e,0xb3,0x37,0x6, 0xb4,0x1, +0x2, 0x80,0x3, 0x2, 0x28,0x38,0x6c,0xdd,0x6c,0xff,0x12,0x91,0x11,0x7d,0xf3,0x12, +0x2f,0xf4,0x50,0xfb,0x74,0x1, 0x7a,0xb3,0x38,0x86,0x12,0x3d,0xac,0x12,0x13,0xc7, +0x12,0x0, 0x1e,0x74,0xa, 0x12,0x45,0x15,0x12,0xc0,0xe7,0x7e,0xe7,0x2b,0xd, 0x7a, +0xe5,0x24,0x7e,0xe3,0x2a,0xfa,0x74,0x4, 0x7a,0xb3,0x2a,0xfa,0x7e,0xe7,0x2b,0xd, +0x5e,0xe4,0x0, 0x3f,0x7a,0xe7,0x2b,0xd, 0x7e,0xb3,0x2a,0xfa,0x12,0x7b,0xd0,0x7c, +0x7b,0x74,0x6, 0xac,0x7b,0x7e,0x24,0x0, 0x4, 0x12,0x1e,0xb9,0x7d,0x23,0x7d,0x3f, +0x12,0x25,0x3c,0xad,0x32,0x7a,0x37,0x2b,0x7, 0x12,0x4e,0xe0,0x12,0x26,0x57,0x7e, +0xb3,0x37,0x31,0xb4,0x1, 0x4, 0x74,0x10,0x80,0x2, 0x74,0xa, 0x12,0x91,0x5d,0x12, +0x4f,0xaf,0x80,0xf, 0x80,0x7, 0x12,0x45,0xcf,0xe4,0x12,0x46,0x7, 0x20,0x93,0xf6, +0x12,0x45,0x9f,0x30,0x18,0xf7,0x30,0x17,0xf4,0xd2,0x4, 0x12,0x45,0x5a,0xe4,0x12, +0x13,0xde,0xb, 0xd0,0x12,0x4c,0x83,0x12,0x91,0x76,0x7e,0xa3,0x38,0x85,0x4c,0xaa, +0x78,0x6, 0x74,0x1, 0x7a,0xb3,0x38,0x86,0x4c,0xaa,0x68,0xb, 0x7e,0xb3,0x37,0x31, +0x70,0x5, 0xe4,0x7a,0xb3,0x38,0x85,0x12,0x28,0x3d,0x78,0x18,0x7e,0xb3,0x38,0x85, +0x60,0x12,0xe4,0x7a,0xb3,0x38,0x85,0x7a,0xb3,0x2a,0x2, 0x7a,0xb3,0x2a,0x3, 0x7e, +0xf0,0x1, 0x80,0x1d,0x12,0x28,0x3d,0x68,0x10,0x7e,0xb3,0x38,0x85,0x70,0xa, 0x7e, +0xf0,0x1, 0xe4,0x7a,0xb3,0x37,0x6, 0x80,0x8, 0xbe,0xd0,0x32,0x50,0x3, 0x2, 0x27, +0x8c,0xe4,0x7a,0xb3,0x2b,0x4, 0x7e,0x35,0x24,0x7a,0x37,0x2b,0xd, 0x7a,0xe3,0x2a, +0xfa,0x4c,0xff,0x68,0x3, 0x12,0x28,0x48,0xda,0x79,0xda,0xd8,0x22,0x7e,0x73,0x38, +0xf2,0xa, 0x37,0x5e,0x34,0x0, 0x2, 0x22,0xe4,0x7a,0xb3,0x34,0x3a,0x7a,0xb3,0x34, +0x39,0x12,0x4e,0x9b,0xb4,0x1, 0x4, 0x74,0x1, 0x80,0x2, 0x74,0x3, 0x7a,0xb3,0x34, +0x3a,0x22,0xca,0x3b,0x12,0x2f,0xf4,0x50,0xfb,0x7e,0xf3,0x2b,0xf, 0x7c,0xbf,0x12, +0xb3,0xfc,0x12,0xb4,0x13,0x7e,0xb3,0x2b,0x1f,0xf5,0x28,0x7e,0xb3,0x2b,0x20,0xf5, +0x29,0x7e,0xb3,0x37,0x8, 0xb4,0x1, 0xf, 0x12,0x8d,0x6c,0x7e,0xb3,0x16,0x91,0x70, +0x6, 0x12,0x28,0x48,0xc3,0x21,0x6c,0x12,0x29,0x6f,0x3e,0x34,0xca,0x39,0x7e,0x18, +0x6, 0xfc,0x7e,0x8, 0x4, 0x7e,0x12,0x20,0xb9,0x1b,0xfd,0x12,0x29,0x6f,0x3e,0x34, +0xca,0x39,0x7e,0x18,0x7, 0x7a,0x7e,0x8, 0x4, 0x0, 0x12,0x20,0xb9,0x1b,0xfd,0x7e, +0xb3,0x37,0x8, 0xb4,0x3, 0x7, 0x12,0xac,0x20,0x7a,0x37,0x37,0xe3,0x74,0x1, 0x7a, +0xb3,0x16,0x90,0x12,0x69,0x8e,0x12,0xac,0xe, 0x7e,0xc3,0x3, 0xec,0x12,0x6e,0x31, +0xe4,0x12,0x13,0xde,0x12,0x28,0x48,0x7e,0x8, 0x4, 0x7e,0x7a,0xd, 0x2a,0x7e,0x18, +0x6, 0x76,0x7e,0xb3,0x2b,0x72,0x12,0x7a,0xc8,0x7e,0x8, 0x4, 0x0, 0x7a,0xd, 0x2a, +0x7e,0x18,0x5, 0xf8,0x7e,0xb3,0x25,0xf0,0x12,0x7a,0xc8,0x7e,0xd3,0x2b,0x1f,0x7e, +0xe3,0x2b,0x20,0xe5,0x28,0x7a,0xb3,0x2b,0x1f,0xe5,0x29,0x12,0x6e,0x8b,0x50,0x5, +0x7c,0xbc,0x12,0xb3,0x54,0x7e,0x34,0x8, 0xa, 0x7e,0x4, 0xd, 0xc8,0x7d,0x20,0x7d, +0x10,0x12,0x6a,0xd4,0x7a,0xd3,0x2b,0x1f,0x7a,0xe3,0x2b,0x20,0x7c,0xbf,0x12,0x86, +0xf8,0x12,0xaa,0x18,0x7e,0xb3,0x39,0x7, 0x4, 0x7a,0xb3,0x39,0x7, 0x7e,0x73,0x39, +0x7, 0xbe,0x70,0xfa,0x28,0x6, 0x74,0x64,0x7a,0xb3,0x39,0x7, 0x7e,0xb3,0x16,0x90, +0x60,0x9, 0x7e,0xb3,0x16,0x91,0x60,0x3, 0xd3,0x80,0x1, 0xc3,0xda,0x3b,0x22,0x7e, +0x73,0x2a,0x74,0xa, 0x27,0x7e,0x73,0x2a,0x73,0xa, 0x37,0x2d,0x32,0x22,0x12,0x48, +0x7, 0x7e,0xb3,0x37,0x8, 0xb4,0x3, 0x6c,0x12,0xb6,0xe2,0x12,0x26,0x57,0x12,0x3f, +0xfb,0x7e,0xb3,0x37,0x9c,0x30,0xe7,0xe9,0x12,0x28,0x62,0x12,0x29,0x6f,0x3e,0x34, +0xca,0x39,0x7e,0x18,0x4, 0x0, 0x7e,0x8, 0x4, 0xfc,0x12,0x20,0xb9,0x1b,0xfd,0x12, +0x29,0x6f,0x3e,0x34,0xca,0x39,0x7e,0x18,0x4, 0x7e,0x7e,0x8, 0x5, 0x7a,0x12,0x20, +0xb9,0x1b,0xfd,0x7e,0xb3,0x2b,0x1d,0xb4,0x1, 0x18,0x12,0xab,0xdb,0x12,0x75,0xe9, +0x12,0xaf,0x89,0x12,0xa7,0xbd,0x12,0x88,0x5f,0x12,0x56,0xde,0x12,0x2a,0x3, 0x12, +0x58,0x52,0x12,0x48,0x39,0x12,0x3a,0x9f,0x7e,0xb3,0x37,0x9c,0x54,0x7f,0x7a,0xb3, +0x37,0x9c,0x80,0x8d,0x12,0x2f,0xee,0x2, 0x0, 0x46,0x7a,0xb3,0x2b,0x2, 0x7a,0xb3, +0x2b,0x1e,0x22,0x12,0x52,0x6d,0x12,0x2b,0xfa,0x12,0x2b,0xfa,0x12,0x36,0xac,0x12, +0x9c,0xfd,0x12,0x9f,0xef,0x12,0x2b,0xfa,0x12,0x9b,0xe7,0x12,0x2b,0xfa,0x12,0xa0, +0xae,0x12,0x2b,0xfa,0x2, 0x2a,0x27,0xca,0x3b,0x75,0x24,0x0, 0x6c,0xcc,0x6c,0xdd, +0x7e,0xc4,0x0, 0x3c,0xca,0xc9,0x7e,0x18,0x36,0x25,0x7e,0x8, 0x35,0xe9,0x12,0x20, +0xb9,0x1b,0xfd,0x7e,0xf3,0x28,0x84,0xa, 0xcf,0x3e,0xc4,0xca,0xc9,0x7e,0x18,0x26, +0xfa,0x7e,0x8, 0x1f,0x34,0x12,0x20,0xb9,0x1b,0xfd,0x6c,0x88,0x6c,0xee,0x41,0xfb, +0x7e,0xc4,0x3, 0xff,0x7e,0xc0,0xff,0x6c,0x99,0x80,0x4c,0x74,0x2, 0xac,0xb9,0x9, +0xb5,0x1f,0x34,0xbe,0xb0,0xff,0x68,0x3d,0x7c,0xb9,0x12,0x2f,0xb7,0x60,0x36,0x74, +0x2, 0xac,0xb9,0x9, 0x75,0x1f,0x35,0xa, 0x27,0x74,0x2, 0xac,0xbe,0x9, 0x75,0x36, +0x26,0xa, 0x37,0x12,0x81,0xbf,0x74,0x2, 0xac,0xb9,0x9, 0x75,0x1f,0x34,0xa, 0x27, +0x74,0x2, 0xac,0xbe,0x9, 0x75,0x36,0x25,0x12,0xa1,0x4b,0x2d,0x13,0xbd,0xc1,0x28, +0x4, 0x7d,0xc1,0x7c,0xc9,0xb, 0x90,0xbc,0xf9,0x38,0xb0,0xbe,0xc0,0xff,0x68,0x39, +0x7e,0x70,0x2, 0xac,0x7c,0x9, 0xb3,0x1f,0x34,0x9, 0x73,0x1f,0x35,0x12,0x2c,0x40, +0xbe,0x37,0x2a,0x5a,0x48,0x23,0x7e,0x70,0x2, 0xac,0x7c,0x9, 0x53,0x1f,0x34,0x74, +0x2, 0xac,0xbd,0x19,0x55,0x1f,0x70,0x9, 0x53,0x1f,0x35,0x19,0x55,0x1f,0x71,0x74, +0xff,0x19,0xb3,0x1f,0x34,0xb, 0x80,0xb, 0xd0,0xb, 0xe0,0x7e,0x73,0x35,0xe8,0xbc, +0x7e,0x28,0x2, 0x41,0x60,0x7c,0xe8,0x80,0x6d,0x6d,0xdd,0x7e,0x80,0xff,0x6c,0x99, +0x80,0x3c,0x7c,0xb9,0x12,0x2f,0xb7,0x60,0x33,0x12,0x2f,0xe4,0xbe,0xb0,0xff,0x68, +0x2b,0x9, 0x73,0x1f,0x35,0x12,0x30,0x3, 0x7f,0x71,0xb, 0x7a,0x50,0xbe,0x54,0x0, +0x0, 0x58,0x5, 0x6d,0x55,0x1b,0x7a,0x50,0xb, 0x7a,0xc0,0xbd,0xcd,0x8, 0xd, 0x12, +0x2f,0xe4,0xf5,0x24,0x9, 0xc3,0x1f,0x35,0x7d,0xdc,0x7c,0x89,0xb, 0x90,0xbc,0xf9, +0x38,0xc0,0xbe,0x80,0xff,0x68,0x1d,0x7e,0x71,0x24,0x74,0x2, 0xac,0xbd,0x19,0x75, +0x1f,0x70,0x19,0xc5,0x1f,0x71,0x7e,0xa0,0xff,0x7e,0x70,0x2, 0xac,0x78,0x19,0xa3, +0x1f,0x34,0xb, 0xd0,0xb, 0xe0,0x90,0x60,0x99,0xe4,0x93,0xbc,0xbe,0x38,0x8a,0x90, +0x60,0x9a,0xe4,0x93,0x7c,0xab,0x74,0x2, 0xa4,0xca,0x59,0x7e,0x18,0x1f,0x70,0x7e, +0x8, 0x1f,0x34,0x12,0x20,0xb9,0x1b,0xfd,0x7c,0xfd,0x12,0x97,0x4, 0x7e,0x8, 0x36, +0x25,0x74,0xff,0x12,0x20,0xde,0xbe,0xf0,0x0, 0x28,0x35,0xa, 0x3f,0x3e,0x34,0xca, +0x39,0x7e,0x18,0x1f,0x34,0x7e,0x8, 0x26,0xfa,0x12,0x20,0xb9,0x1b,0xfd,0xa, 0x3f, +0x3e,0x34,0xca,0x39,0x7e,0x18,0x1f,0x34,0x7e,0x8, 0x36,0x25,0x12,0x20,0xb9,0x1b, +0xfd,0x6c,0xee,0x80,0x7, 0x7c,0xbe,0x12,0x2f,0xd0,0xb, 0xe0,0xbc,0xfe,0x38,0xf5, +0x7a,0xf3,0x35,0xe8,0x7a,0xf3,0x28,0x84,0x90,0x60,0x99,0xe4,0x93,0xbe,0xb3,0x28, +0x84,0x50,0x4, 0x7a,0xb3,0x28,0x84,0xda,0x3b,0x22,0xca,0x79,0x6c,0xff,0x6c,0xee, +0x80,0x2e,0x7c,0xbe,0x12,0x2f,0xb7,0x60,0x25,0x7e,0x34,0x0, 0x2, 0xca,0x39,0xac, +0x7e,0x2e,0x34,0x26,0xfa,0x6d,0x22,0x7e,0x30,0x2, 0xac,0x3f,0x2e,0x14,0x26,0xfa, +0x6d,0x0, 0x12,0x20,0xb9,0x1b,0xfd,0x7c,0xbf,0x12,0x2f,0xd0,0xb, 0xf0,0xb, 0xe0, +0x12,0x9c,0xf6,0x38,0xcd,0x7a,0xf3,0x28,0x84,0xda,0x79,0x22,0x7c,0xba,0x7c,0x7d, +0x12,0x30,0x3, 0xb, 0x1a,0x30,0x22,0xca,0x3b,0x7c,0xfb,0x75,0x3b,0x0, 0x7e,0xb3, +0x2a,0x6f,0xf5,0x40,0x7e,0xb3,0x2a,0x70,0xf5,0x41,0x7e,0xd3,0x28,0x84,0xe4,0x7a, +0xb3,0x33,0xc2,0x7a,0xb3,0x33,0xc0,0x7a,0xb3,0x33,0xc1,0x7e,0x8, 0x1f,0x34,0x12, +0x2f,0xdd,0xe4,0x12,0x20,0xde,0x12,0x2f,0xdd,0x3e,0x34,0x7e,0x8, 0x33,0xc3,0xe4, +0x12,0x20,0xde,0xbe,0xd0,0x2, 0x50,0x2, 0xe1,0xa2,0x6c,0xcc,0xe1,0x91,0x12,0xc0, +0x8b,0xf5,0x24,0x9, 0xb3,0x26,0xfb,0xf5,0x25,0x4c,0xcc,0x68,0x8, 0xa, 0x3c,0x9, +0xb3,0x1f,0x34,0x70,0xa, 0xa, 0x3c,0xb, 0x34,0xa, 0x2c,0x19,0x72,0x1f,0x34,0x7c, +0xbd,0x14,0xbc,0xbc,0x78,0x2, 0xe1,0x97,0xa, 0x5c,0xb, 0x54,0xf5,0x2e,0xe1,0x88, +0x7e,0x71,0x2e,0x74,0x2, 0xac,0x7b,0x9, 0xa3,0x26,0xfa,0x7a,0xa1,0x26,0x9, 0xb3, +0x26,0xfb,0xf5,0x27,0xa, 0x2a,0xe5,0x24,0x12,0x2f,0xd6,0x7c,0xb7,0xf5,0x28,0xe5, +0x27,0xa, 0x2b,0xe5,0x25,0x12,0x2f,0xd6,0x7c,0xb7,0xf5,0x29,0xe5,0x28,0xbe,0xb0, +0x4, 0x40,0x2, 0xe1,0x86,0xe5,0x29,0xbe,0xb0,0x4, 0x40,0x2, 0xe1,0x86,0x85,0x25, +0x44,0x85,0x26,0x45,0x85,0x27,0x46,0x7e,0x8, 0x0, 0x31,0x7e,0x18,0x0, 0x33,0xe5, +0x24,0x12,0xb0,0x69,0x75,0x3b,0x0, 0x6c,0xee,0x75,0x30,0x0, 0xe5,0x24,0x7e,0x71, +0x25,0x12,0x2c,0x40,0x7a,0x35,0x35,0xe5,0x26,0x7e,0x71,0x27,0x12,0x2c,0x40,0x7a, +0x35,0x37,0x7e,0x35,0x35,0xbe,0x35,0x37,0x8, 0x7, 0x7e,0x35,0x37,0x7d,0x83,0x80, +0x3, 0x7e,0x85,0x35,0x7a,0x85,0x39,0xe, 0x84,0xe5,0x28,0xbe,0xb0,0x1, 0x38,0x2b, +0xe5,0x29,0xbe,0xb0,0x1, 0x38,0x24,0x7c,0xbf,0x30,0xe1,0x1f,0xe5,0x26,0x7e,0x71, +0x25,0x12,0x2c,0x40,0x7d,0x43,0xe5,0x24,0x7e,0x71,0x27,0x12,0x2c,0x40,0x2d,0x34, +0xbd,0x38,0x18,0x2, 0xe1,0x1d,0x75,0x30,0x1, 0xe1,0x1d,0xe5,0x28,0xbe,0xb0,0x1, +0x38,0x9, 0xe5,0x29,0xbe,0xb0,0x1, 0x38,0x2, 0xe1,0x1d,0xe5,0x28,0xbe,0xb0,0x4, +0x40,0x2, 0xe1,0x1d,0xe5,0x29,0xbe,0xb0,0x4, 0x40,0x2, 0xe1,0x1d,0x7c,0xbf,0x20, +0xe0,0x2, 0xe1,0x1d,0x6d,0x99,0x75,0x42,0x0, 0xc2,0x4, 0xc2,0x5, 0xe5,0x26,0xbe, +0xb1,0x24,0x28,0x4, 0xe5,0x24,0x80,0x2, 0xe5,0x26,0xf5,0x2a,0xe5,0x26,0xbe,0xb1, +0x24,0x50,0x4, 0xe5,0x24,0x80,0x2, 0xe5,0x26,0xf5,0x2c,0xe5,0x27,0xbe,0xb1,0x25, +0x28,0x4, 0xe5,0x25,0x80,0x2, 0xe5,0x27,0xf5,0x2b,0xe5,0x27,0xbe,0xb1,0x25,0x50, +0x4, 0xe5,0x25,0x80,0x2, 0xe5,0x27,0xf5,0x2d,0xe5,0x2c,0xbe,0xb1,0x2a,0x78,0x29, +0xd2,0x4, 0xe5,0x2a,0x60,0x8, 0xe5,0x40,0x14,0xbe,0xb1,0x2a,0x78,0x2, 0xd2,0x5, +0xe5,0x2a,0xbe,0xb0,0x0, 0x28,0x2, 0x15,0x2a,0xe5,0x40,0xa, 0x2b,0x1b,0x24,0xe5, +0x2c,0xa, 0x3b,0xbd,0x32,0x58,0x2, 0x5, 0x2c,0xe5,0x2d,0xbe,0xb1,0x2b,0x78,0x29, +0xd2,0x4, 0xe5,0x2b,0x60,0x8, 0xe5,0x41,0x14,0xbe,0xb1,0x2b,0x78,0x2, 0xd2,0x5, +0xe5,0x2b,0xbe,0xb0,0x0, 0x28,0x2, 0x15,0x2b,0xe5,0x41,0xa, 0x2b,0x1b,0x24,0xe5, +0x2d,0xa, 0x3b,0xbd,0x32,0x58,0x2, 0x5, 0x2d,0x85,0x2a,0x3c,0x80,0x4c,0x85,0x2b, +0x3d,0x80,0x3e,0xe5,0x3c,0x7e,0x71,0x3d,0x12,0x2c,0x40,0x7a,0x35,0x3e,0xe5,0x2a, +0xbe,0xb1,0x3c,0x68,0x15,0xe5,0x2c,0xbe,0xb1,0x3c,0x68,0xe, 0xe5,0x2b,0xbe,0xb1, +0x3d,0x68,0x7, 0xe5,0x2d,0xbe,0xb1,0x3d,0x78,0x9, 0x7e,0x35,0x3e,0x2d,0x93,0x5, +0x42,0x80,0xc, 0x7e,0x35,0x33,0xbe,0x35,0x3e,0x58,0x2, 0x5, 0x3b,0xb, 0xe0,0x5, +0x3d,0xe5,0x2d,0xbe,0xb1,0x3d,0x50,0xbb,0x5, 0x3c,0xe5,0x2c,0xbe,0xb1,0x3c,0x50, +0xad,0xe5,0x2c,0x12,0x2f,0xae,0xe5,0x2a,0x12,0x2f,0xa5,0xe5,0x2a,0x12,0x2f,0xae, +0xe5,0x2c,0x12,0x2f,0xa5,0x7e,0x85,0x37,0x2e,0x85,0x35,0x30,0x4, 0x9, 0x20,0x5, +0x6, 0x9d,0x98,0x15,0x42,0x15,0x42,0xe5,0x42,0xbe,0xb0,0x4, 0x28,0x6, 0xe5,0x42, +0x24,0xfc,0xf5,0x42,0xbe,0x94,0x0, 0x0, 0x58,0x2, 0x6d,0x99,0x7d,0x18,0x1a,0x2, +0x1a,0x0, 0x7e,0x35,0x31,0x1a,0x26,0x1a,0x24,0x12,0x1e,0xeb,0xe5,0x42,0xa, 0x1b, +0x6d,0x0, 0x12,0x1e,0xeb,0x7f,0x21,0x7d,0x39,0x1a,0x26,0x1a,0x24,0x7e,0x14,0x0, +0x28,0x12,0x1e,0xfc,0xbf,0x12,0x8, 0x15,0xe5,0x3b,0xa, 0x3b,0xa, 0x2e,0x9d,0x23, +0x3e,0x24,0x3e,0x24,0xa, 0x3e,0xbd,0x23,0x18,0x3, 0x75,0x30,0x2, 0xe5,0x30,0xbe, +0xb0,0x0, 0x28,0x62,0xe5,0x30,0xa, 0x3b,0x2e,0x34,0x33,0xbf,0x7e,0x39,0xb0,0x4, +0x7a,0x39,0xb0,0xe5,0x2e,0xa, 0x3b,0x9, 0xa3,0x1f,0x34,0x4c,0xaa,0x78,0xc, 0xa, +0x2c,0x9, 0xb2,0x1f,0x34,0x19,0xb3,0x1f,0x34,0x80,0x3b,0xa, 0x2c,0x9, 0xb2,0x1f, +0x34,0xf5,0x43,0xbc,0xba,0x28,0x3, 0x7a,0xa1,0x43,0x75,0x2f,0x0, 0x80,0x22,0x9, +0x33,0x1f,0x34,0xe5,0x2f,0xa, 0x2b,0x9, 0x22,0x1f,0x34,0xbc,0x23,0x68,0xa, 0xa, +0xc, 0x9, 0x30,0x1f,0x34,0xbc,0x23,0x78,0x6, 0xe5,0x43,0x19,0xb2,0x1f,0x34,0x5, +0x2f,0xbe,0xd1,0x2f,0x38,0xd9,0x5, 0x2e,0xbe,0xd1,0x2e,0x28,0x2, 0x81,0xc0,0xb, +0xc0,0xbc,0xdc,0x28,0x2, 0x81,0x8e,0x7e,0x8, 0x1f,0x34,0x12,0xaf,0x94,0x7a,0xb3, +0x33,0xc2,0xda,0x3b,0x22,0x7e,0x71,0x2d,0x12,0x2c,0x40,0x9d,0x93,0x22,0x7e,0x71, +0x2b,0x12,0x2c,0x40,0x9d,0x93,0x22,0x7c,0x7b,0x12,0x77,0xf6,0x9, 0xa2,0x27,0x72, +0x7c,0xb7,0x54,0x7, 0xa, 0x3b,0x2e,0x34,0x0, 0x5e,0x12,0x91,0x6d,0x5c,0xba,0x22, +0x7e,0x70,0x1, 0x2, 0x51,0x5f,0xa, 0x3b,0x9d,0x32,0x2, 0x21,0x0, 0x90,0x60,0x9a, +0x93,0xa, 0x3b,0x22,0x7e,0x70,0x2, 0xac,0x79,0x9, 0xb3,0x1f,0x34,0x22,0x12,0x2f, +0xf4,0x50,0xfb,0x22,0x7e,0xb3,0x34,0x3a,0xb4,0x1, 0x2, 0xc3,0x22,0xd3,0x22,0x7c, +0xbd,0x7c,0x7e,0x7e,0x13,0x2a,0x6e,0xac,0x1b,0x3e,0x4, 0x7e,0x30,0x2, 0xac,0x37, +0x2d,0x10,0x7e,0x1f,0x13,0x8a,0x2d,0x31,0x22,0xca,0x3b,0x7c,0x5b,0x7e,0x43,0x28, +0x84,0xbe,0x40,0x1, 0x28,0x2, 0x21,0x14,0x7e,0xa3,0x2a,0x6e,0x7e,0x70,0x2, 0xac, +0x75,0x9, 0xd3,0x26,0xfa,0x9, 0xc3,0x26,0xfb,0x7c,0xbd,0x7c,0x7c,0x12,0x30,0x3, +0x7f,0x1, 0x90,0x60,0xaa,0xe4,0x93,0x70,0x12,0x7c,0xfc,0x7c,0x9d,0x7e,0x83,0x2a, +0x70,0x7e,0xe3,0x2a,0x6f,0xa, 0xca,0x6d,0xbb,0x9d,0xbc,0xa, 0xa8,0x1b,0xa5,0xa, +0x5f,0xbd,0x5a,0x58,0x2, 0x21,0x14,0xa, 0x59,0x1b,0x54,0xbe,0x54,0x0, 0x0, 0x48, +0x4e,0x7c,0xb9,0x14,0x12,0x31,0x5a,0x50,0x46,0x7c,0xb9,0x14,0x12,0x31,0x17,0xb, +0x1a,0xe0,0x7d,0x3b,0x12,0x31,0x4c,0x8, 0x11,0x9d,0xae,0xbe,0xa4,0x0, 0x0, 0x58, +0x4, 0x6d,0x55,0x80,0x2, 0x7d,0x5a,0x12,0x31,0x44,0x7c,0xb8,0x24,0xfe,0xbc,0xbf, +0x78,0x1d,0x90,0x60,0xaa,0xe4,0x93,0x70,0x4, 0x7d,0xfd,0x1b,0xf4,0x7d,0x5f,0x12, +0x31,0x1e,0xb, 0x1a,0x30,0xbd,0x3a,0x8, 0x6, 0x12,0x31,0x20,0x1b,0x1a,0xa0,0xa, +0xa9,0xb, 0xa4,0xa, 0x5e,0xbd,0xa5,0x58,0x4b,0x7c,0xb9,0x4, 0x12,0x31,0x5a,0x50, +0x43,0x7c,0xb9,0x4, 0x12,0x31,0x17,0xb, 0x1a,0xe0,0x7d,0x3c,0x12,0x31,0x4c,0x8, +0x11,0x9d,0xae,0xbe,0xa4,0x0, 0x0, 0x58,0x4, 0x6d,0x55,0x80,0x2, 0x7d,0x5a,0x12, +0x31,0x44,0x7c,0xb8,0x24,0xfe,0xbc,0xbf,0x78,0x1a,0x90,0x60,0xaa,0xe4,0x93,0x70, +0x4, 0x7d,0xfd,0x1b,0xf4,0x7d,0x5f,0x12,0x31,0x1e,0xb, 0x1a,0x50,0xbd,0x5a,0x8, +0x3, 0x1b,0x1a,0xa0,0xda,0x3b,0x22,0x12,0x31,0x27,0x7d,0xd3,0x7d,0x5d,0x3e,0x54, +0x7e,0x1f,0x13,0x8a,0x2d,0x35,0x22,0x7c,0x5b,0x7e,0x43,0x2a,0x6e,0x90,0x60,0xab, +0xe4,0x93,0x7c,0xab,0x90,0x60,0xaa,0xe4,0x93,0x70,0x8, 0x7c,0x75,0xac,0x74,0xa, +0x2a,0x2d,0x32,0x22,0x2d,0x31,0x7d,0x20,0x1b,0x1a,0x50,0x22,0x3e,0x34,0x7f,0x40, +0x2d,0x93,0xb, 0x4a,0xa0,0xbe,0xe4,0x0, 0x0, 0x22,0x7c,0xab,0x6c,0x77,0x80,0x12, +0xa, 0x27,0x2e,0x24,0x60,0xac,0x12,0x51,0x4f,0x93,0xbc,0xba,0x78,0x2, 0xd3,0x22, +0xb, 0x70,0x90,0x60,0xa7,0xe4,0x93,0xbc,0xb7,0x38,0xe5,0xc3,0x22,0x12,0x36,0x9c, +0x60,0x30,0x6c,0x22,0x80,0x24,0x7c,0xb2,0x12,0x31,0x5a,0x50,0x1b,0x7c,0xb2,0x12, +0x31,0x27,0x7d,0x3, 0x12,0x36,0x94,0x49,0x55,0x38,0xe8,0x7d,0x40,0x3e,0x44,0x7e, +0x1f,0x13,0x8a,0x2d,0x34,0x1b,0x1a,0x50,0xb, 0x20,0x7e,0x73,0x2a,0x75,0xbc,0x72, +0x38,0xd4,0x22,0xca,0x3b,0x6c,0xff,0x12,0xc0,0xde,0x7e,0xb3,0x16,0x91,0xb4,0x1, +0x2, 0x80,0x2, 0x41,0xdd,0x6c,0xcc,0x41,0xcf,0x12,0xc0,0x8b,0xf5,0x27,0x9, 0xb3, +0x26,0xfb,0xf5,0x28,0x7e,0xb3,0x28,0x84,0xb4,0x1, 0xb, 0x7e,0xb3,0x36,0x71,0x70, +0x5, 0x12,0x32,0xe0,0x80,0x6, 0x75,0x25,0x2, 0x75,0x26,0x2, 0x7c,0xbc,0x12,0x30, +0x19,0xd2,0x3, 0x12,0x32,0xe7,0x7e,0xb3,0x36,0xec,0xb4,0x1, 0x1b,0x7e,0xb3,0x2a, +0x3, 0xb4,0x1, 0x14,0x7e,0xb3,0x28,0x84,0xb4,0x1, 0xd, 0x7e,0x37,0x28,0x86,0xbe, +0x34,0x0, 0xa, 0x40,0x3, 0x12,0x32,0xe0,0xe5,0x27,0x60,0xc, 0xa, 0x2e,0x1b,0x24, +0xe5,0x27,0xa, 0x3b,0xbd,0x32,0x48,0x3, 0x75,0x25,0x1, 0xe5,0x28,0x60,0xc, 0xa, +0x2d,0x1b,0x24,0xe5,0x28,0xa, 0x3b,0xbd,0x32,0x48,0x3, 0x75,0x26,0x1, 0x75,0x24, +0x0, 0x80,0x3c,0xe5,0x24,0xbc,0xbc,0x68,0x34,0x12,0x35,0xda,0x9, 0xa3,0x26,0xfa, +0x7a,0xa1,0x29,0x9, 0xb3,0x26,0xfb,0xf5,0x2a,0xa, 0x2a,0xe5,0x27,0x12,0x2f,0xd6, +0xbe,0x34,0x0, 0x3, 0x18,0x17,0xe5,0x2a,0xa, 0x2b,0xe5,0x28,0x12,0x2f,0xd6,0xbe, +0x34,0x0, 0x3, 0x18,0x8, 0x75,0x25,0x1, 0x75,0x26,0x1, 0x80,0x7, 0x5, 0x24,0x12, +0x36,0xa4,0x38,0xbf,0xe5,0x27,0x7e,0x71,0x28,0x12,0xa0,0x94,0x50,0x8, 0x12,0x31, +0x7d,0x12,0x35,0xd3,0x80,0x8, 0x12,0x69,0x84,0x50,0x3, 0x12,0x32,0xe0,0xe5,0x25, +0x7e,0x71,0x26,0x7c,0x6c,0x7c,0x5f,0x12,0x33,0x21,0x90,0x61,0x36,0xe4,0x93,0xb4, +0x1, 0x16,0x7e,0x70,0x9, 0xac,0x7c,0x7d,0x13,0x2e,0x14,0x27,0x76,0x6d,0x0, 0x2e, +0x34,0x27,0x78,0x6d,0x22,0x12,0x7f,0xc5,0x12,0x31,0x7d,0xb, 0xf0,0xb, 0xc0,0x7e, +0x73,0x28,0x84,0xbc,0x7c,0x28,0x2, 0x21,0xc9,0x7a,0xf3,0x28,0x84,0xda,0x3b,0x22, +0x75,0x25,0x3, 0x75,0x26,0x3, 0x22,0x12,0x36,0x9c,0x60,0x34,0x6c,0x22,0x80,0x28, +0x7c,0xb2,0x12,0x31,0x5a,0x50,0x1f,0x7c,0xb2,0x12,0x31,0x27,0x3e,0x34,0x7e,0x7f, +0x13,0x8a,0x2d,0xf3,0xb, 0x7a,0x30,0x12,0x36,0x94,0x59,0x35,0x38,0xe8,0x30,0x3, +0x5, 0x6d,0x33,0x1b,0x7a,0x30,0xb, 0x20,0x7e,0x73,0x2a,0x75,0xbc,0x72,0x38,0xd0, +0x22,0xca,0x3b,0x7c,0xf5,0x7c,0xe6,0x7c,0xd7,0x7c,0xcb,0x74,0x9, 0xac,0xbf,0x7d, +0xd5,0x2e,0xd4,0x27,0x76,0x6d,0xcc,0x7e,0x37,0x2a,0x66,0x7a,0x35,0x43,0xe4,0x39, +0xb6,0x0, 0x6, 0x7e,0x70,0x2, 0xac,0x7e,0x9, 0xb3,0x26,0xfa,0xf5,0x31,0x9, 0xb3, +0x26,0xfb,0xf5,0x32,0x7e,0x73,0x2a,0x6e,0x7c,0x6d,0x7e,0x8, 0x0, 0x35,0x12,0x35, +0x80,0xf5,0x33,0xe5,0x31,0x7e,0x73,0x2a,0x6d,0x7c,0x6c,0x7e,0x8, 0x0, 0x34,0x12, +0x35,0x80,0x7c,0xab,0xe5,0x34,0x7e,0x71,0x35,0x12,0x30,0x3, 0x7a,0x35,0x3f,0x7e, +0x34,0x15,0x9e,0x7a,0x35,0x41,0x85,0x34,0x39,0x85,0x35,0x3a,0x7a,0xa1,0x3b,0x85, +0x33,0x3c,0x7e,0xb3,0x2a,0x59,0xf5,0x3d,0x75,0x3e,0x0, 0x7e,0x8, 0x0, 0x39,0x12, +0x90,0x50,0x7d,0x23,0x6d,0x33,0x7e,0x97,0x15,0xa0,0x6d,0x88,0x2f,0x41,0x7e,0x37, +0x15,0xa2,0x6d,0x22,0x7d,0x3, 0x6d,0x11,0x7e,0x37,0x15,0xa4,0x2f,0x10,0x7a,0x1d, +0x2b,0x7e,0x37,0x15,0xa6,0x7d,0x23,0x6d,0x33,0x7e,0xb7,0x15,0xa8,0x6d,0xaa,0x2f, +0x51,0x7f,0x74,0xa, 0x4c,0xe5,0x31,0xa, 0x5b,0x9d,0x54,0xf5,0x2f,0x81,0xc7,0xa, +0x4d,0xe5,0x32,0xa, 0x5b,0x9d,0x54,0xf5,0x30,0x81,0xb1,0xe5,0x2f,0xbe,0xb0,0x0, +0x58,0x2, 0x81,0xaf,0x7e,0x73,0x2a,0x6d,0xbe,0x71,0x2f,0x18,0x2, 0x81,0xaf,0xe5, +0x30,0xbe,0xb0,0x0, 0x58,0x2, 0x81,0xaf,0x7e,0x73,0x2a,0x6e,0xbe,0x71,0x30,0x18, +0x2, 0x81,0xaf,0xe5,0x2f,0x7e,0x71,0x30,0x12,0x2c,0x40,0x7e,0x53,0x2a,0x59,0xa, +0x25,0x9d,0x32,0x7a,0x35,0x37,0xbe,0x34,0x0, 0x0, 0x18,0x2, 0x81,0xaf,0x7e,0x35, +0x43,0xbe,0x35,0x37,0x18,0xd, 0x7f,0x16,0x2e,0x34,0x0, 0x6, 0x7e,0x1b,0xb0,0x4, +0x7a,0x1b,0xb0,0xe5,0x31,0xa, 0x2b,0xe5,0x2f,0x12,0x35,0x65,0x18,0xb, 0xe5,0x32, +0xa, 0x2b,0xe5,0x30,0x12,0x35,0x65,0x8, 0x56,0xe5,0x2f,0x7e,0x71,0x30,0x7c,0x6e, +0x12,0xb8,0xa8,0xf5,0x36,0xb4,0x2, 0xc, 0x7e,0x35,0x37,0x7d,0x23,0xe, 0x24,0x9d, +0x32,0x7a,0x35,0x37,0xe5,0x36,0xbe,0xb0,0x2, 0x68,0x5, 0xe5,0x36,0xb4,0x1, 0x2f, +0x7e,0x45,0x37,0x7d,0x34,0x1a,0x26,0x1a,0x24,0xe5,0x2f,0x12,0x35,0x56,0x7f,0x1, +0x7e,0x1d,0x2b,0x9f,0x10,0x7a,0x1d,0x2b,0x7d,0x34,0x1a,0x26,0x1a,0x24,0xe5,0x30, +0x12,0x35,0x56,0x9f,0x51,0x12,0x35,0x5d,0x9f,0x41,0x12,0x35,0x5d,0x9f,0x71,0x5, +0x30,0xa, 0x2d,0xe5,0x32,0xa, 0x3b,0x2d,0x32,0x1a,0x27,0xe5,0x30,0x1a,0x3b,0xbd, +0x32,0x18,0x2, 0x61,0xeb,0x5, 0x2f,0xa, 0x2c,0xe5,0x31,0xa, 0x3b,0x2d,0x32,0x1a, +0x27,0xe5,0x2f,0x1a,0x3b,0xbd,0x32,0x18,0x2, 0x61,0xdf,0xbe,0x48,0x0, 0x0, 0x78, +0x2, 0xb, 0x4c,0xbe,0x78,0x0, 0x0, 0x78,0x2, 0xb, 0x7c,0x7e,0x1d,0x2b,0x7f,0x4, +0x12,0x35,0x71,0x1b,0x6a,0x30,0x7f,0x15,0x7f,0x7, 0x12,0x35,0x71,0x79,0x36,0x0, +0x2, 0x7e,0xb3,0x2a,0x65,0x60,0xd, 0x1e,0xf4,0x1e,0xe4,0x50,0x4, 0x4e,0xf4,0x80, +0x0, 0x14,0x78,0xf3,0xbe,0x78,0x0, 0x7f,0x28,0x4, 0x7e,0x78,0x0, 0x7f,0x7d,0x3f, +0x39,0x76,0x0, 0x5, 0x74,0x9, 0xac,0xbe,0x9, 0x75,0x27,0x7c,0x39,0x76,0x0, 0x6, +0xbe,0x70,0xf, 0x28,0x6, 0x74,0xf, 0x39,0xb6,0x0, 0x6, 0x7e,0xa1,0x31,0x7e,0x70, +0x9, 0xac,0x7f,0x19,0xa3,0x27,0x7d,0x7e,0xa1,0x32,0x7e,0x70,0x9, 0xac,0x7f,0x19, +0xa3,0x27,0x7e,0xda,0x3b,0x22,0x1a,0x1b,0x1a,0x2, 0x2, 0x1e,0xeb,0x7e,0x35,0x37, +0x1a,0x26,0x1a,0x24,0x22,0x1a,0x3b,0x9d,0x32,0x12,0x21,0x0, 0xbe,0x34,0x0, 0x1, +0x22,0x74,0x6, 0x2f,0x11,0x14,0x78,0xfb,0x12,0x1f,0x7, 0x2e,0x18,0x0, 0x20,0x22, +0xca,0xf8,0x7c,0xf6,0x7c,0x87,0x7c,0x9b,0xa, 0x2f,0x7d,0x32,0x3e,0x34,0xb, 0x34, +0x7c,0xb7,0xbc,0xf9,0x38,0x14,0xa, 0xf8,0x1b,0xf4,0xa, 0x3f,0x9d,0xf3,0xa, 0x39, +0xbd,0x3f,0x18,0x6, 0x7c,0xab,0xa, 0x39,0x80,0x1d,0xbc,0xf9,0x28,0xd, 0xa, 0x39, +0xa, 0x5f,0x2d,0x53,0xb, 0x54,0x7c,0xab,0xe4,0x80,0x10,0xa, 0x3f,0xa, 0x58,0x2d, +0x53,0xa, 0x39,0x9d,0x53,0x7c,0xab,0x9d,0x32,0x7c,0xb7,0x7a,0xb, 0xb0,0x7c,0xba, +0xda,0xf8,0x22,0x75,0x25,0x0, 0x75,0x26,0x0, 0x22,0x7e,0x71,0x24,0x74,0x2, 0xac, +0x7b,0x22,0xca,0x3b,0x7e,0xb3,0x2a,0x74,0xf5,0x27,0x12,0x0, 0x66,0x50,0x2, 0xc1, +0x6f,0x6d,0x33,0x9e,0x37,0x2a,0x4f,0x3e,0x34,0xbe,0x37,0x7, 0xf8,0x18,0x70,0x7e, +0xb3,0x16,0x92,0x70,0x6a,0x7e,0xb3,0x28,0xa8,0xb4,0x1, 0x60,0x7e,0x77,0x2a,0x51, +0x7e,0x67,0x2a,0x53,0x75,0x24,0x0, 0x80,0x4e,0xe5,0x24,0x12,0x2f,0xb7,0x60,0x45, +0x12,0x35,0xda,0x12,0x9d,0x80,0xf5,0x26,0x7e,0xb3,0x2a,0x3, 0xb4,0x1, 0xe, 0x90, +0x60,0xab,0xe4,0x93,0xbe,0xb1,0x26,0x78,0x4, 0xe, 0x64,0xe, 0x74,0x7e,0xa1,0x26, +0x74,0x2, 0xa4,0x49,0x35,0x4, 0xfc,0xbd,0x36,0x48,0xd, 0xe5,0x25,0xa, 0x2b,0xe5, +0x27,0x12,0x9b,0x18,0xbd,0x37,0x58,0xd, 0xe5,0x24,0x6c,0x77,0x12,0x51,0x5f,0x12, +0x35,0xda,0x12,0x37,0x9f,0x5, 0x24,0x12,0x36,0xa4,0x38,0xad,0x12,0xa6,0x5, 0xda, +0x3b,0x22,0x12,0x46,0xa2,0x12,0x24,0x9a,0x12,0x73,0x28,0x12,0x22,0xf2,0x7e,0xb3, +0x37,0x8, 0x24,0xfd,0x68,0x9, 0xb, 0xb1,0x78,0xf4,0x12,0x58,0xf0,0x80,0xef,0x12, +0x29,0x7e,0x80,0xea,0x7c,0xa3,0xb, 0x30,0x74,0x2, 0xa4,0x22,0x6c,0x33,0x90,0x60, +0xa7,0xe4,0x93,0x22,0x7e,0x73,0x28,0x84,0xbe,0x71,0x24,0x22,0x12,0xa5,0xee,0x12, +0x9b,0x49,0x12,0x35,0xe2,0x12,0x9a,0x38,0x2, 0x36,0xbb,0xca,0x3b,0x12,0x2b,0xfa, +0x7e,0xb3,0x28,0x84,0x60,0x6, 0x7e,0xb3,0x35,0xe2,0x60,0x9, 0xe4,0x7a,0xb3,0x35, +0xe4,0x7a,0xb3,0x35,0x69,0x7e,0xb3,0x35,0xe2,0x70,0x69,0x6c,0x99,0x80,0x5d,0x74, +0x2, 0xac,0xb9,0x9, 0x85,0x26,0xfa,0x9, 0xf5,0x26,0xfb,0x7c,0xb9,0x12,0x9a,0xed, +0x40,0x48,0x6c,0xee,0x80,0x3c,0x74,0x2, 0xac,0xbe,0x9, 0xd5,0x35,0x6a,0x9, 0xc5, +0x35,0x6b,0xa, 0x28,0xa, 0x3d,0x12,0x37,0x67,0x78,0x25,0xa, 0x2f,0xa, 0x3c,0x12, +0x37,0x67,0x78,0x1c,0x7c,0xb9,0x12,0x37,0x6f,0x7e,0x14,0x62,0x2b,0x12,0x87,0xee, +0x58,0xe, 0x7c,0xb9,0x6c,0x77,0x12,0x51,0x5f,0x7c,0xb8,0x7c,0x7f,0x12,0x37,0xa7, +0xb, 0xe0,0x7e,0x73,0x35,0xe4,0xbc,0x7e,0x38,0xbc,0xb, 0x90,0x7e,0x73,0x28,0x84, +0xbc,0x79,0x38,0x9b,0x7e,0x73,0x35,0x69,0x7a,0x73,0x35,0xe4,0xa, 0x37,0x3e,0x34, +0xca,0x39,0x7e,0x18,0x35,0xa6,0x7e,0x8, 0x35,0x6a,0x12,0x20,0xb9,0x1b,0xfd,0xe4, +0x7a,0xb3,0x35,0xe2,0xda,0x3b,0x22,0x9d,0x32,0x12,0x21,0x0, 0x4d,0x33,0x22,0x7c, +0xab,0x7e,0x70,0x2, 0xac,0x7a,0x9, 0xb3,0x26,0xfa,0x9, 0x73,0x26,0xfb,0x2, 0x2c, +0x40,0xca,0xf8,0x7c,0xfb,0x7e,0x70,0x2, 0x12,0x99,0x6c,0x7f,0x71,0x7c,0xbf,0x12, +0x37,0x6f,0x12,0xa4,0xcf,0x7f,0x17,0x12,0x1f,0x58,0x7c,0xb7,0xda,0xf8,0x22,0x9, +0xb3,0x26,0xfa,0x9, 0x73,0x26,0xfb,0x7c,0x6b,0x7e,0xa3,0x35,0x69,0x7e,0x50,0x2, +0xac,0x5a,0x19,0x62,0x35,0xa6,0x19,0x72,0x35,0xa7,0x7c,0xba,0x4, 0x7a,0xb3,0x35, +0x69,0x22,0xca,0xf8,0x6c,0xff,0x80,0x18,0x7c,0xbf,0x12,0x37,0x6f,0xbe,0x37,0x2a, +0x5c,0x58,0xb, 0x12,0x51,0x5b,0x7e,0x70,0x2, 0xac,0x7f,0x12,0x37,0x9f,0xb, 0xf0, +0x12,0x52,0x66,0x38,0xe3,0x12,0x2b,0xfa,0xda,0xf8,0x22,0xca,0xf8,0x7c,0xab,0xbe, +0xa0,0x34,0x38,0x3, 0x2, 0x38,0xfd,0xbe,0xa0,0x35,0x78,0x6, 0x7e,0xb3,0x2b,0x10, +0x41,0x1c,0xbe,0xa0,0x36,0x68,0x5, 0xbe,0xa0,0x37,0x78,0x1d,0x7e,0x35,0x8, 0x7d, +0x23,0xb, 0x24,0x7a,0x25,0x8, 0x2e,0x37,0x31,0xce,0x7e,0x39,0xb0,0xbe,0xa0,0x37, +0x68,0x2, 0x41,0x1c,0x75,0x1a,0x36,0x41,0x1c,0xbe,0xa0,0x38,0x68,0x5, 0xbe,0xa0, +0x39,0x78,0x1b,0x7e,0xf3,0x37,0xc0,0x7c,0xbf,0x4, 0x7a,0xb3,0x37,0xc0,0xbe,0xa0, +0x39,0x78,0x3, 0x75,0x1a,0x38,0xa, 0x3f,0x9, 0xb3,0x2b,0x21,0x41,0x1c,0xbe,0xa0, +0x3a,0x68,0x5, 0xbe,0xa0,0x3b,0x78,0x1b,0x7e,0xf3,0x37,0xc2,0x7c,0xbf,0x4, 0x7a, +0xb3,0x37,0xc2,0xbe,0xa0,0x3b,0x78,0x3, 0x75,0x1a,0x3a,0xa, 0x3f,0x9, 0xb3,0x2b, +0x44,0x41,0x1c,0xbe,0xa0,0xfb,0x78,0x6, 0x7e,0xb3,0x2b,0x12,0x41,0x1c,0xbe,0xa0, +0x5e,0x78,0x26,0x7e,0xf, 0x38,0xc0,0x69,0x30,0x0, 0x8e,0xa, 0x56,0x1e,0x54,0x1e, +0x54,0x1e,0x54,0x5e,0x54,0x0, 0x1, 0x3, 0x3, 0x54,0xc0,0xa, 0x36,0x5e,0x34,0x0, +0x3, 0x7c,0xa7,0x4c,0xba,0x44,0x80,0x41,0x1c,0xbe,0xa0,0x3c,0x68,0x5, 0xbe,0xa0, +0x3d,0x78,0x1b,0x7e,0xf3,0x37,0xc4,0x7c,0xbf,0x4, 0x7a,0xb3,0x37,0xc4,0xbe,0xa0, +0x3d,0x78,0x3, 0x75,0x1a,0x3c,0xa, 0x3f,0x9, 0xb3,0x2a,0x7a,0x41,0x1c,0xbe,0xa0, +0x3e,0x68,0x5, 0xbe,0xa0,0x3f,0x78,0x1b,0x7e,0xf3,0x37,0xc6,0x7c,0xbf,0x4, 0x7a, +0xb3,0x37,0xc6,0xbe,0xa0,0x3f,0x78,0x3, 0x75,0x1a,0x3e,0xa, 0x3f,0x9, 0xb3,0x2a, +0x9d,0x41,0x1c,0xbe,0xa0,0x40,0x40,0xd, 0xbe,0xa0,0x4d,0x38,0x8, 0xa, 0x3a,0x9, +0xb3,0x37,0x9c,0x41,0x1c,0xbe,0xa0,0x4e,0x68,0x5, 0xbe,0xa0,0x4f,0x78,0x1e,0x7e, +0xf3,0x37,0xe1,0x7c,0xbf,0x4, 0x7a,0xb3,0x37,0xe1,0xbe,0xa0,0x4f,0x78,0x3, 0x75, +0x1a,0x4e,0xa, 0x3f,0x2e,0x37,0x31,0xcc,0x7e,0x39,0xb0,0x41,0x1c,0xbe,0xa0,0x51, +0x68,0x5, 0xbe,0xa0,0x52,0x78,0x28,0x7e,0x14,0x60,0x0, 0x6d,0x0, 0x2e,0x4, 0x0, +0xff,0x7e,0xb3,0x37,0xec,0xa, 0x3b,0x6d,0x22,0x2f,0x10,0x7e,0x1b,0x70,0x4, 0x7a, +0xb3,0x37,0xec,0xbe,0xa0,0x52,0x78,0x3, 0x75,0x1a,0x51,0x7c,0xb7,0x41,0x1c,0xbe, +0xa0,0x5c,0x68,0x5, 0xbe,0xa0,0x5d,0x78,0x1a,0x7e,0xf3,0x37,0xb5,0x7c,0xbf,0x4, +0x7a,0xb3,0x37,0xb5,0xbe,0xa0,0x5d,0x78,0x3, 0x75,0x1a,0x5c,0x7c,0xbf,0x12,0x3a, +0x1f,0x41,0x1c,0xbe,0xa0,0x60,0x40,0xd, 0xbe,0xa0,0x6c,0x38,0x8, 0xa, 0x3a,0x9, +0xb3,0x3, 0x91,0x41,0x1c,0xbe,0xa0,0x6d,0x78,0x4, 0xe5,0xe, 0x80,0x7e,0xbe,0xa0, +0xf4,0x68,0x5, 0xbe,0xa0,0xf5,0x78,0x18,0x7e,0x35,0xa, 0x7d,0x23,0xb, 0x24,0x7a, +0x25,0xa, 0x9, 0xb3,0x31,0xd4,0xbe,0xa0,0xf5,0x78,0x61,0x75,0x1a,0xf4,0x80,0x5c, +0xbe,0xa0,0xf0,0x68,0x5, 0xbe,0xa0,0xf1,0x78,0x9, 0x7c,0x1a,0x2e,0x10,0x20,0xa5, +0xe7,0x80,0x49,0xbe,0xa0,0xf2,0x68,0x5, 0xbe,0xa0,0xf3,0x78,0x1b,0x7e,0x15,0x10, +0x3e,0x14,0x7e,0x1f,0x31,0xd0,0x2d,0x31,0xb, 0x1a,0x30,0xbe,0xa0,0xf2,0x78,0x4, +0xa, 0x56,0x80,0x28,0x7d,0x53,0x80,0x24,0xbe,0xa0,0xf6,0x78,0x4, 0xe5,0xf, 0x80, +0x1b,0xbe,0xa0,0xf7,0x78,0xd, 0x7e,0x34,0x62,0x48,0x7e,0x24,0x0, 0xff,0xb, 0x1a, +0x50,0x80,0x9, 0xbe,0xa0,0xfd,0x78,0x3, 0xe4,0x80,0x1, 0xe4,0xda,0xf8,0x22,0x7c, +0xab,0xbe,0xa0,0x0, 0x40,0x11,0x7e,0xb3,0x2a,0x6e,0xbc,0xba,0x28,0x9, 0x74,0x2, +0xa4,0x49,0x25,0x34,0x0, 0x80,0x51,0x7e,0x13,0x2a,0x6e,0xbc,0x1a,0x38,0x1c,0x7e, +0x3, 0x2a,0x6d,0xa, 0x10,0xa, 0x21,0x2d,0x12,0xa, 0x3a,0xbd,0x31,0x58,0xc, 0x9d, +0x32,0x3e,0x34,0x3e,0x34,0x49,0x23,0x3, 0x60,0x80,0x2d,0x7e,0x3, 0x2a,0x6d,0xa, +0x20,0xa, 0x11,0x7d,0x41,0x2d,0x42,0xa, 0x3a,0xbd,0x34,0x48,0x19,0x7e,0x10,0x2, +0xac,0x1, 0x2d,0x1, 0xbd,0x30,0x58,0xe, 0x9d,0x31,0x9d,0x32,0x3e,0x34,0x3e,0x34, +0x49,0x23,0x3, 0x62,0x80,0x2, 0xe4,0x22,0x7e,0x34,0x0, 0x64,0xad,0x23,0x74,0xc, +0x1e,0x34,0x1e,0x24,0x50,0x3, 0x4e,0x60,0x80,0x14,0x78,0xf4,0x7c,0xb7,0x22,0xca, +0xf8,0x80,0x38,0x7c,0xbf,0x12,0x3a,0x1f,0xa, 0x1b,0x7e,0x63,0x2a,0x6e,0x7e,0x70, +0x2, 0xac,0x67,0x7e,0x10,0x2, 0xac,0x1f,0x2d,0x3, 0x7e,0x1f,0x13,0x8a,0x2d,0x30, +0x12,0x3a,0xde,0x9d,0x35,0x1b,0x1a,0x10,0xb, 0xf0,0x12,0x3a,0xde,0x7e,0x73,0x2a, +0x6e,0xa, 0x27,0x2d,0x25,0xa, 0x3f,0xbd,0x32,0x48,0xc8,0xda,0xf8,0x22,0x7e,0xa3, +0x2a,0x6d,0x74,0x2, 0xa4,0x22,0x12,0x3f,0xaa,0xb4,0x1, 0x14,0xca,0x39,0x7e,0x18, +0x37,0xdc,0x7e,0x8, 0x25,0xee,0x12,0x20,0xb9,0x1b,0xfd,0x12,0x3f,0x49,0x80,0x12, +0xca,0x39,0x7e,0x18,0x37,0xdc,0x7e,0x8, 0x2b,0x70,0x12,0x20,0xb9,0x1b,0xfd,0x12, +0x3f,0x67,0x2, 0x3b,0x15,0x7a,0x1f,0x2a,0xfc,0x7a,0xf, 0x2a,0xf8,0x22,0xca,0xf8, +0x7c,0x6b,0xa5,0xbe,0x0, 0x9, 0x7c,0xb7,0x12,0x7d,0xab,0xd2,0x6, 0xa1,0xa0,0xa5, +0xbe,0x1, 0x3d,0x7a,0x73,0x37,0x9d,0xa5,0xbf,0xad,0x2, 0x80,0x2f,0xa5,0xbf,0xae, +0x4, 0xd2,0x7, 0xa1,0xa0,0xa5,0xbf,0xaa,0x5, 0x12,0xc0,0xf8,0x80,0x1e,0xa5,0xbf, +0xab,0xa, 0x7e,0x34,0x5, 0x7a,0x7a,0x37,0x31,0xce,0x80,0x10,0xa5,0xbf,0xac,0x2, +0x80,0x2, 0xa1,0xa0,0x7e,0x34,0x4, 0xfc,0x7a,0x37,0x31,0xce,0x6d,0x33,0x81,0x1c, +0xbe,0x60,0x4, 0x40,0x20,0xbe,0x60,0x8, 0x38,0x1b,0x12,0x3d,0xa3,0xa5,0xbe,0x7, +0x7, 0x6d,0x33,0x7a,0x35,0xa, 0xa1,0xa0,0xa5,0xbe,0x8, 0x2, 0x80,0x2, 0xa1,0xa0, +0x12,0x7, 0xfb,0xa1,0xa0,0xa5,0xbe,0xa, 0x9, 0x43,0xc, 0x20,0x7a,0x73,0x37,0xa6, +0xa1,0xa0,0xa5,0xbe,0xb, 0x8, 0x12,0x3d,0xa3,0x12,0x3f,0xc8,0xa1,0xa0,0xbe,0x60, +0x1b,0x40,0x7, 0xbe,0x60,0x1c,0x38,0x2, 0xa1,0x38,0xbe,0x60,0x1e,0x40,0xd, 0xbe, +0x60,0x23,0x38,0x8, 0x12,0x3d,0xa5,0x43,0xc, 0x40,0xa1,0xa0,0xbe,0x60,0x15,0x40, +0x1a,0xbe,0x60,0x18,0x38,0x15,0x12,0x3d,0xa5,0xd2,0x6, 0xa5,0xbe,0x15,0x2, 0x80, +0x2, 0xa1,0xa0,0x74,0x7, 0x7a,0xb3,0x37,0xa0,0xa1,0xa0,0xa5,0xbe,0x19,0x7, 0xe4, +0x7a,0xb3,0x37,0xb5,0xa1,0xa0,0xbe,0x60,0x24,0x40,0x7, 0xbe,0x60,0x2c,0x38,0x2, +0xa1,0x38,0xa5,0xbe,0x2d,0x1b,0x12,0x3d,0xa5,0x20,0x7, 0x2, 0xa1,0xa0,0x7e,0x63, +0x37,0xc8,0x7c,0x46,0x6c,0x55,0xa, 0x37,0x2d,0x32,0x3e,0x34,0x7a,0x35,0x8, 0xa1, +0xa0,0xbe,0x60,0x2f,0x40,0xa, 0xbe,0x60,0x33,0x38,0x5, 0x43,0xc, 0x8, 0xa1,0x38, +0xa5,0xbe,0x34,0xf, 0x43,0xc, 0x10,0xbe,0x70,0x64,0x38,0x2, 0xa1,0x38,0x7e,0x70, +0x64,0xa1,0x38,0xbe,0x60,0x38,0x68,0x4, 0xa5,0xbe,0x39,0x21,0x43,0xc, 0x1, 0x7e, +0xf3,0x37,0xc1,0x7c,0xbf,0x4, 0x7a,0xb3,0x37,0xc1,0xa, 0x2f,0x19,0x72,0x2b,0x21, +0xa5,0xbe,0x39,0x2, 0x80,0x2, 0xa1,0xa0,0x75,0x1a,0x38,0xa1,0xa0,0xbe,0x60,0x3a, +0x68,0x4, 0xa5,0xbe,0x3b,0x21,0x43,0xc, 0x2, 0x7e,0xf3,0x37,0xc3,0x7c,0xbf,0x4, +0x7a,0xb3,0x37,0xc3,0xa, 0x2f,0x19,0x72,0x2b,0x44,0xa5,0xbe,0x3b,0x2, 0x80,0x2, +0xa1,0xa0,0x75,0x1a,0x3a,0xa1,0xa0,0xa5,0xbe,0xfb,0x9, 0x43,0xc, 0x4, 0x7a,0x73, +0x2b,0x12,0xa1,0xa0,0xa5,0xbe,0x50,0x6, 0x7a,0x73,0x37,0xec,0xa1,0xa0,0xbe,0x60, +0x3c,0x68,0x4, 0xa5,0xbe,0x3d,0x21,0x43,0xc, 0x1, 0x7e,0xf3,0x37,0xc5,0x7c,0xbf, +0x4, 0x7a,0xb3,0x37,0xc5,0xa, 0x2f,0x19,0x72,0x2a,0x7a,0xa5,0xbe,0x3d,0x2, 0x80, +0x2, 0xa1,0xa0,0x75,0x1a,0x3c,0xa1,0xa0,0xbe,0x60,0x3e,0x68,0x4, 0xa5,0xbe,0x3f, +0x21,0x43,0xc, 0x1, 0x7e,0xf3,0x37,0xc7,0x7c,0xbf,0x4, 0x7a,0xb3,0x37,0xc7,0xa, +0x2f,0x19,0x72,0x2a,0x9d,0xa5,0xbe,0x3f,0x2, 0x80,0x2, 0xa1,0xa0,0x75,0x1a,0x3e, +0xa1,0xa0,0xbe,0x60,0x40,0x40,0xd, 0xbe,0x60,0x42,0x38,0x8, 0x12,0x3d,0xa5,0x75, +0xd, 0x1, 0x80,0xa, 0xa5,0xbe,0x43,0xb, 0x12,0x3d,0xa5,0x75,0xd, 0x2, 0x12,0x3a, +0xe6,0x80,0x7d,0xa5,0xbe,0x44,0x8, 0x12,0x3d,0xa5,0x12,0x3f,0x70,0x80,0x71,0xbe, +0x60,0x45,0x68,0x4, 0xa5,0xbe,0x46,0x5, 0x12,0x3d,0xa5,0x80,0x63,0xbe,0x60,0x4e, +0x68,0x4, 0xa5,0xbe,0x4f,0x20,0x43,0xd, 0x4, 0x7e,0xf3,0x37,0xe2,0x7c,0xbf,0x4, +0x7a,0xb3,0x37,0xe2,0xa, 0x2f,0x2e,0x27,0x31,0xcc,0x7a,0x29,0x70,0xa5,0xbe,0x4f, +0x3f,0x75,0x1a,0x4e,0x80,0x3a,0xa5,0xbe,0x6d,0x5, 0x7a,0x71,0xe, 0x80,0x31,0xbe, +0x60,0xf0,0x40,0x25,0xbe,0x60,0xf3,0x38,0x20,0x7c,0x16,0x2e,0x10,0x20,0x7c,0xb7, +0xa5,0xf7,0xa5,0xbe,0xf3,0x1a,0x7e,0x15,0x12,0x7e,0x5, 0x10,0x3e,0x4, 0x7e,0x1f, +0x31,0xd0,0x2d,0x30,0x1b,0x1a,0x10,0x80,0x7, 0xa5,0xbe,0xf6,0x3, 0x7a,0x71,0xf, +0xda,0xf8,0x22,0xd2,0x6, 0xa, 0x26,0x19,0x72,0x37,0x9c,0x22,0x7a,0xb3,0x2b,0x0, +0x70,0x14,0x12,0x3f,0x67,0x12,0x3b,0x15,0x7e,0x18,0x6, 0x76,0x7a,0x1f,0x6, 0xf4, +0x7e,0x18,0x4, 0x7e,0x80,0x10,0xb4,0x1, 0x11,0x12,0x3f,0x49,0x12,0x3b,0x15,0x12, +0x3f,0xf2,0x7e,0x18,0x4, 0x0, 0x7a,0x1f,0x6, 0xf8,0x22,0x74,0x1, 0x12,0x0, 0x1e, +0xe4,0x12,0x3d,0xac,0x12,0x3d,0xf3,0xe4,0x12,0x0, 0x1e,0x74,0x1, 0x12,0x3d,0xac, +0x2, 0x3d,0xf3,0xca,0x3b,0x7e,0xd3,0x2a,0x73,0x7e,0xc3,0x2a,0x74,0x7e,0x8, 0x1f, +0x44,0x12,0x3f,0xe9,0x7e,0x8, 0x1f,0x8a,0x7e,0x34,0x0, 0x46,0x12,0x20,0xde,0x7e, +0x8, 0x1f,0xd0,0x7e,0x34,0x0, 0xa, 0xe4,0x12,0x20,0xde,0x7e,0x8, 0x1f,0xda,0x7e, +0x34,0x0, 0xa, 0x12,0x20,0xde,0x7e,0xf3,0x2a,0xfc,0x7e,0x18,0x2a,0xdc,0x7a,0x1d, +0x24,0x7e,0x18,0x1f,0xd0,0x7a,0x1d,0x28,0x7c,0xbd,0x7c,0x7c,0x7e,0x8, 0x2a,0xb9, +0x12,0xba,0x6c,0x6c,0xee,0x80,0x2b,0xa, 0x3e,0x9, 0xa3,0x2a,0xdc,0xa, 0x3a,0x2e, +0x34,0x20,0x73,0x12,0x91,0x6d,0x7c,0xab,0xbe,0xa0,0x1c,0x50,0x13,0xa, 0x3e,0x12, +0x3f,0xb, 0xa, 0x4a,0x19,0xb4,0x1f,0x44,0x7e,0xb3,0x2a,0xfb,0x19,0xb4,0x1f,0x8a, +0xb, 0xe0,0xbc,0xce,0x38,0xd1,0x6c,0xee,0x80,0x24,0xa, 0x3e,0x9, 0xa3,0x2a,0xb9, +0xbe,0xa0,0x23,0x50,0x17,0xa, 0x2e,0xa, 0x3c,0x2d,0x32,0x12,0x3f,0xb, 0xa, 0x4a, +0x19,0xb4,0x1f,0x60,0x7e,0xb3,0x2a,0xfb,0x19,0xb4,0x1f,0xa6,0xb, 0xe0,0xbc,0xde, +0x38,0xd8,0x7e,0xb3,0x2a,0xfd,0x7e,0x8, 0x1f,0xe4,0x60,0x9, 0x7e,0x18,0x1f,0xd0, +0x12,0xb9,0x2, 0x80,0x3, 0x12,0x3f,0xd9,0x6c,0xee,0x7e,0x18,0x1f,0xe4,0x7a,0x1f, +0x1f,0x34,0x74,0x2, 0xac,0xbe,0x49,0x35,0x1f,0xd0,0x7a,0x37,0x1f,0x38,0x74,0x2, +0xac,0xbe,0x49,0x35,0x1f,0xda,0x7a,0x37,0x1f,0x3a,0x7e,0x70,0xe, 0xac,0x7e,0x2e, +0x34,0x1f,0x44,0x6d,0x22,0x7a,0x1f,0x1f,0x3c,0x7e,0x70,0xe, 0xac,0x7e,0x2e,0x34, +0x1f,0x8a,0x7a,0x1f,0x1f,0x40,0x7e,0x8, 0x1f,0x34,0x7c,0xbf,0x7c,0x7e,0x12,0x8, +0xd1,0xb, 0xe0,0xbe,0xe0,0x5, 0x40,0xb2,0xda,0x3b,0x22,0x2e,0x37,0x2a,0xfe,0x7e, +0x39,0xb0,0x22,0x74,0x1, 0x7a,0xb3,0x37,0x8, 0x12,0xaf,0x1f,0x12,0x13,0xf5,0x12, +0xb9,0x8e,0xe4,0x12,0xa, 0x66,0x7e,0x24,0x3, 0xd4,0x12,0x3f,0xcb,0x74,0x1, 0x12, +0x3d,0xac,0x12,0x3f,0xd2,0x7e,0x34,0xd0,0xc, 0x12,0x1, 0xe, 0x12,0x3d,0xdb,0x7e, +0x34,0x0, 0x1, 0xe4,0x6c,0x55,0x2, 0x13,0x1, 0x7e,0x1f,0x25,0xf2,0x7e,0xf, 0x25, +0xee,0x22,0x7a,0xb3,0x2b,0x0, 0x70,0x5, 0x12,0x3f,0x67,0x80,0x6, 0xb4,0x1, 0x6, +0x12,0x3f,0x49,0x12,0x3b,0x15,0x22,0x7e,0x1f,0x2b,0x74,0x7e,0xf, 0x2b,0x70,0x22, +0x12,0x3f,0xaa,0xb4,0x1, 0x17,0xca,0x39,0x7e,0x18,0x25,0xee,0x7e,0x8, 0x37,0xdc, +0x12,0x20,0xb9,0x1b,0xfd,0x12,0xc0,0xef,0x12,0x3f,0x49,0x80,0x1a,0xca,0x39,0x7e, +0x18,0x2b,0x70,0x7e,0x8, 0x37,0xdc,0x12,0x20,0xb9,0x1b,0xfd,0x7e,0x37,0x2b,0x76, +0x7a,0x37,0x31,0xcc,0x12,0x3f,0x67,0x2, 0x3b,0x15,0x7e,0xb3,0x37,0xe0,0x7e,0x34, +0x0, 0x4, 0x22,0x7c,0x6b,0x12,0x3f,0xe1,0x78,0x5, 0x7c,0xb6,0x2, 0x7d,0xd6,0xb4, +0x4, 0x5, 0x7c,0xb6,0x2, 0x3b,0x1e,0x22,0xb2,0x82,0x22,0x7d,0x32,0x74,0xfa,0x2, +0x12,0xd0,0x7e,0x8, 0x2a,0x6d,0x2, 0x0, 0x2e,0x7e,0x34,0x0, 0x8, 0xe4,0x2, 0x20, +0xde,0x7e,0xb3,0x37,0x9c,0xc4,0x54,0x7, 0x22,0x7e,0x34,0x0, 0x46,0x74,0x3f,0x2, +0x20,0xde,0x7e,0x18,0x5, 0xf8,0x7a,0x1f,0x6, 0xf4,0x22,0x30,0x6, 0x3b,0xc2,0x6, +0x12,0x25,0xe6,0x7e,0x73,0x37,0xa1,0x7a,0x73,0x2a,0x4d,0x7e,0x73,0x37,0xa2,0x7a, +0x73,0x2b,0x1d,0x7e,0x73,0x37,0xa2,0x7a,0x73,0x2b,0x1, 0x7e,0xb3,0x37,0xa3,0x60, +0x18,0x7e,0x34,0x0, 0x2, 0x12,0x41,0x5d,0x7e,0x34,0x0, 0x1, 0x12,0x41,0x5d,0x6d, +0x33,0x12,0x41,0x5d,0xe4,0x7a,0xb3,0x37,0xa3,0x12,0x4f,0xfa,0x2, 0x40,0x3f,0xe5, +0xc, 0x70,0x2, 0x21,0x5c,0xe5,0xc, 0x30,0xe0,0x10,0x53,0xc, 0xfe,0x12,0x72,0x92, +0x12,0x79,0x31,0x7e,0x8, 0x2a,0x6d,0x12,0x9, 0xa1,0xe5,0xc, 0x30,0xe1,0x6, 0x53, +0xc, 0xfd,0x12,0xba,0x23,0xe5,0xc, 0x30,0xe2,0x32,0x53,0xc, 0xfb,0x7e,0xb3,0x2b, +0x12,0x60,0x9, 0x7e,0x8, 0x2a,0x6d,0x12,0x6, 0xba,0x80,0xb, 0x7e,0xb3,0x2b,0x65, +0x7e,0x73,0x2b,0x64,0x12,0xb, 0xad,0x7e,0x73,0x2b,0x12,0x2e,0x70,0xff,0x92,0x4, +0x90,0x60,0x51,0xe4,0x93,0x9e,0xb3,0x2a,0x77,0x12,0xb, 0x1e,0xe5,0xc, 0x30,0xe3, +0x45,0x53,0xc, 0xf7,0x7e,0x73,0x37,0xce,0x7a,0x73,0x2b,0xf, 0x12,0x87,0x52,0x7a, +0xb3,0x0, 0x4f,0xbe,0xb0,0xff,0x68,0xb, 0x43,0xc, 0x20,0x7e,0x73,0x0, 0x4f,0x7a, +0x73,0x37,0xa6,0x12,0x6e,0x29,0x12,0xc0,0x42,0x7e,0x73,0x37,0xcf,0xbe,0x73,0x2b, +0x62,0x68,0x6, 0x7a,0x73,0x2b,0x62,0xd2,0xc, 0x30,0xc, 0x7, 0x12,0xaf,0x1d,0xe4, +0x12,0xa, 0x66,0x12,0x8d,0xec,0xe5,0xc, 0x30,0xe4,0xf, 0x53,0xc, 0xef,0x7e,0x43, +0x37,0xd0,0x7e,0x50,0xa, 0xac,0x45,0x12,0x3f,0xcb,0xe5,0xc, 0x30,0xe6,0x4e,0x53, +0xc, 0xbf,0x7e,0x73,0x37,0xbc,0xbe,0x70,0x7, 0x28,0x6, 0x74,0x7, 0x7a,0xb3,0x37, +0xbc,0xa9,0xd5,0xcb,0x74,0xe, 0x12,0x43,0xeb,0x7c,0x7b,0x5e,0x70,0xf, 0x7e,0x63, +0x37,0xbc,0xa, 0x26,0x2e,0x24,0x0, 0x3, 0x12,0x47,0x81,0x7c,0x65,0x4c,0x76,0x74, +0xe, 0x12,0x43,0x5f,0x12,0x43,0xeb,0x12,0x43,0xf3,0x7e,0x73,0x37,0xbf,0x7a,0x73, +0x2b,0x14,0x7e,0x73,0x37,0xbe,0x7a,0x73,0x2b,0x1f,0x12,0xc1,0x1, 0xe5,0xc, 0x30, +0xe5,0xa, 0x53,0xc, 0xdf,0x7e,0xb3,0x37,0xa6,0x2, 0x48,0x77,0x22,0xca,0xd8,0xca, +0x79,0x7d,0xd3,0x90,0x60,0x50,0xe4,0x93,0x7c,0xfb,0x90,0x60,0x51,0xe4,0x93,0x7c, +0x8b,0xa, 0x38,0xa, 0xcf,0x2d,0xc3,0xb, 0xc4,0x7d,0x3c,0x7c,0xe7,0x12,0x26,0x57, +0xa9,0xd0,0xc4,0xa9,0xd5,0xcb,0x74,0x7, 0x12,0x43,0xeb,0x7c,0x8b,0x74,0x7, 0x7e, +0x70,0xf, 0x12,0x43,0xf0,0x7e,0x54,0x0, 0x78,0x7e,0x1f,0x38,0xc4,0x79,0x51,0x0, +0x6, 0x7e,0x54,0x0, 0x80,0x7e,0x1f,0x38,0xc4,0x79,0x51,0x0, 0x8, 0x7e,0x54,0x0, +0xc, 0x7e,0x1f,0x38,0xc4,0x79,0x51,0x0, 0x10,0xbe,0xd4,0x0, 0x2, 0x78,0xb, 0x7e, +0x1f,0x38,0xc4,0x12,0x43,0x48,0x44,0x1, 0x80,0x20,0x7e,0x1f,0x38,0xc4,0x12,0x43, +0x48,0x44,0x8, 0x1b,0x1a,0x50,0x4d,0xdd,0x7e,0x1f,0x38,0xc4,0x78,0x7, 0x12,0x43, +0x48,0x54,0xfb,0x80,0x5, 0x12,0x43,0x48,0x44,0x4, 0x1b,0x1a,0x50,0x7e,0x1f,0x38, +0xc0,0x69,0xe1,0x0, 0x84,0x69,0x51,0x0, 0x90,0x7d,0xf5,0x2e,0x34,0x0, 0x90,0x5e, +0xa0,0xf6,0x1b,0x1a,0x50,0x7e,0xb3,0x37,0x12,0xbe,0xb0,0x6, 0x40,0x3, 0xb4,0xff, +0xe, 0x12,0x43,0x53,0x54,0xe6,0x12,0x43,0x50,0x4e,0x54,0x1, 0xa4,0x80,0xc, 0x12, +0x43,0x53,0x5e,0x54,0xfe,0xe6,0x12,0x43,0x50,0x44,0xa4,0x1b,0x1a,0x50,0xbe,0xd4, +0x0, 0x2, 0x78,0x2d,0x7e,0x1f,0x38,0xc4,0x12,0x43,0x48,0x5e,0x54,0x0, 0xf, 0x1b, +0x1a,0x50,0x7e,0x1f,0x38,0xc4,0x12,0x43,0x48,0x44,0x50,0x1b,0x1a,0x50,0x7e,0x34, +0x0, 0x2, 0x12,0x44,0x72,0x12,0x44,0x4b,0x12,0x44,0x28,0x7a,0x37,0x31,0xd4,0x61, +0x4, 0x6c,0xdd,0x41,0xfe,0x4c,0xdd,0x78,0x4, 0x6c,0x99,0x80,0x2b,0xbc,0xfd,0x40, +0x12,0xa, 0xcd,0x9, 0x9c,0x2a,0xb8,0xbe,0x90,0x23,0x40,0x3, 0x7e,0x90,0x22,0xb, +0x90,0x80,0x15,0xa, 0x3f,0xa, 0xcd,0x9d,0xc3,0x9, 0x9c,0x2a,0xdb,0xbe,0x90,0x1c, +0x40,0x3, 0x7e,0x90,0x1b,0x2e,0x90,0x24,0x7e,0x1f,0x38,0xc4,0x12,0x43,0x48,0x5e, +0x54,0x0, 0xf, 0x1b,0x1a,0x50,0xa, 0xc9,0x3e,0xc4,0x3e,0xc4,0x3e,0xc4,0x3e,0xc4, +0x7e,0x1f,0x38,0xc4,0x12,0x43,0x48,0x4d,0x5c,0x1b,0x1a,0x50,0xe5,0xe, 0x60,0x7, +0xe5,0xe, 0xbe,0xb0,0x64,0x28,0x6, 0x7e,0x34,0x0, 0x2, 0x80,0x4, 0xe5,0xe, 0xa, +0x3b,0x12,0x44,0x72,0x12,0x44,0x4b,0xbe,0xd4,0x0, 0x1, 0x78,0x10,0x12,0x44,0x4b, +0x12,0x44,0x28,0x74,0x2, 0xac,0xbd,0x59,0x35,0x31,0xd6,0x80,0xf, 0x12,0x44,0x28, +0xa, 0x5e,0xa, 0x2d,0x2d,0x25,0x3e,0x24,0x59,0x32,0x31,0xd6,0xb, 0xd0,0xbc,0xed, +0x28,0x2, 0x41,0x65,0xa9,0xd5,0xcb,0x74,0x7, 0x7c,0x78,0x12,0x43,0xf0,0xa9,0xc0, +0xc4,0x7e,0x1f,0x38,0xc0,0x79,0xe1,0x0, 0x84,0x7e,0x1f,0x38,0xc0,0x79,0xf1,0x0, +0x90,0x6d,0x33,0x7e,0xf, 0x38,0xc4,0x79,0x30,0x0, 0x6, 0x7e,0xf, 0x38,0xc4,0x79, +0x30,0x0, 0x8, 0x7e,0xf, 0x38,0xc4,0x79,0x30,0x0, 0x10,0x7e,0xf, 0x38,0xc4,0x79, +0x30,0x0, 0xe, 0xda,0x79,0xda,0xd8,0x22,0x2e,0x34,0x0, 0xe, 0xb, 0x1a,0x50,0x22, +0x1b,0x1a,0x50,0x7e,0x1f,0x38,0xc0,0x2e,0x34,0x0, 0x84,0xb, 0x1a,0x50,0x22,0xf5, +0xfd,0x7a,0x71,0xfe,0x22,0xca,0x79,0xa9,0xd5,0xcb,0x74,0x2, 0x7e,0x70,0x3f,0x12, +0x43,0x5f,0x74,0xf, 0x12,0x43,0xeb,0x7c,0xfb,0x74,0xf, 0x7c,0x7f,0x5e,0x70,0xfe, +0x12,0x43,0x5f,0x74,0xc, 0x12,0x43,0xeb,0x7c,0xfb,0x54,0x7f,0x68,0x8, 0x74,0xc, +0x7e,0x70,0xf8,0x12,0x43,0x5f,0x90,0x61,0x18,0xe4,0x93,0x7c,0xab,0xbe,0xa0,0x7, +0x38,0xb, 0x12,0x45,0x6, 0x7c,0xb7,0xa, 0x7b,0xb, 0x75,0x80,0x16,0x90,0x61,0x17, +0xe4,0x93,0xb4,0x1, 0xe, 0xbe,0xa0,0x7, 0x28,0x9, 0x12,0x45,0x6, 0xa, 0x77,0x2e, +0x74,0x0, 0x7, 0x74,0xe, 0x7c,0x7f,0x12,0x43,0x5f,0x74,0x7, 0x12,0x43,0xeb,0x7c, +0xfb,0x5e,0xf0,0xfb,0x90,0x60,0x2, 0xe4,0x93,0xa, 0x3b,0x3e,0x34,0x3e,0x34,0x4c, +0xf7,0x74,0x7, 0x7c,0x7f,0x12,0x43,0xf0,0xda,0x79,0x22,0xf5,0xfd,0xe5,0xfe,0x22, +0x12,0x43,0x5f,0x75,0xfd,0xff,0xa9,0xc5,0xcb,0x22,0x6d,0x33,0x7e,0x8, 0x0, 0x24, +0x7e,0x24,0x0, 0x12,0x12,0xb7,0xc7,0xe5,0x34,0x20,0xe7,0x1b,0xa9,0xd5,0xcb,0x74, +0x3, 0x7e,0x71,0x27,0x12,0x43,0x5f,0x74,0xb, 0x7e,0x71,0x2f,0x12,0x43,0x5f,0x74, +0xc, 0x7e,0x71,0x30,0x12,0x43,0xf0,0x22,0x7e,0xf, 0x38,0xc4,0x69,0x30,0x0, 0xa, +0x7d,0x23,0x6d,0x33,0x69,0x10,0x0, 0xc, 0x6d,0x0, 0x2f,0x10,0x74,0x7, 0x1e,0x34, +0x1e,0x24,0x50,0x3, 0x4e,0x60,0x80,0x14,0x78,0xf4,0x22,0x7e,0x34,0x0, 0x1, 0x7e, +0xf, 0x38,0xc4,0x79,0x30,0x0, 0x4, 0x7e,0xf, 0x38,0xc4,0x69,0x30,0x0, 0x12,0x5e, +0x34,0x0, 0x1, 0x68,0xf2,0x7e,0x34,0x0, 0x1, 0x79,0x30,0x0, 0x12,0x22,0x7e,0x34, +0x0, 0x1, 0x7d,0x23,0x80,0x12,0x7e,0x30,0x4, 0x80,0x5, 0x74,0xfa,0x12,0x45,0x15, +0x7c,0x23,0x1b,0x30,0xa5,0xba,0x0, 0xf3,0x7d,0x32,0x1b,0x24,0x4d,0x33,0x78,0xe6, +0x22,0x12,0x47,0xf8,0xc2,0x3, 0x12,0xb6,0x57,0xc2,0x5, 0x12,0x45,0x51,0xc2,0x3, +0x12,0x47,0x21,0xa9,0xd5,0xcb,0x74,0xf, 0x12,0x43,0xeb,0x7a,0x1b,0xb0,0x74,0xf, +0x6c,0x77,0x12,0x43,0x5f,0xe5,0xfc,0x7a,0xb, 0xb0,0x43,0xfc,0x10,0x2, 0x43,0xf3, +0x24,0xab,0x68,0x10,0x24,0xef,0x68,0x1c,0x24,0xde,0x68,0x26,0x24,0xde,0x78,0x2f, +0x74,0x5, 0x80,0x2d,0x7e,0xb3,0x33,0xff,0xb4,0x5, 0x2a,0x12,0x44,0x6e,0x12,0xb6, +0xf, 0x2, 0xb6,0xc4,0x7e,0xb3,0x33,0xff,0xb4,0x5, 0x1a,0x12,0x44,0x6e,0x75,0xe9, +0xff,0x22,0x7e,0xb3,0x33,0xff,0xb4,0x5, 0xc, 0x12,0x44,0x6e,0x2, 0xb6,0xbe,0x74, +0x1, 0x7a,0xb3,0x33,0xff,0x22,0xa, 0x3a,0x2e,0x34,0x0, 0x3, 0x3e,0x34,0x3e,0x34, +0x3e,0x34,0x3e,0x34,0x22,0x7c,0xab,0x80,0xe, 0x7e,0x70,0x3, 0x80,0x1, 0x0, 0x7c, +0x67,0x1b,0x70,0xa5,0xbe,0x0, 0xf7,0x7c,0x6a,0x1b,0xa0,0xa5,0xbe,0x0, 0xea,0x22, +0x7c,0x6b,0xa9,0xd5,0xcb,0x74,0xf, 0x12,0x43,0x5f,0x7a,0x61,0xfc,0x12,0x43,0xf3, +0x12,0x46,0x68,0xd2,0x3, 0x12,0x47,0x21,0x12,0x45,0x6b,0x12,0x13,0xde,0x2, 0x13, +0x96,0xa9,0xd0,0xce,0xa2,0x5, 0xa9,0x91,0xc9,0x22,0x30,0x4, 0x6, 0x12,0x45,0x6b, +0x2, 0x13,0x96,0x12,0x47,0xf8,0xc2,0x5, 0x2, 0x45,0x51,0xd2,0x5, 0x12,0x45,0x51, +0x74,0x1, 0x22,0x12,0x45,0xcf,0x12,0x91,0x8, 0x75,0xcd,0x0, 0xa9,0xd6,0xeb,0xa9, +0xd7,0xcd,0xc2,0xce,0x12,0xc0,0xd5,0x12,0x44,0x91,0x74,0x1, 0x12,0x46,0x7, 0xa9, +0xc6,0xeb,0xa9,0xc7,0xcd,0xd2,0xce,0xe5,0x25,0x7e,0x71,0x24,0x2, 0x45,0x30,0x30, +0x18,0x5, 0xc2,0x4, 0x12,0x45,0x5a,0xa9,0xd1,0xcd,0xa9,0xc5,0xea,0x30,0x17,0x3, +0x20,0x18,0x14,0x12,0x45,0xcf,0xa9,0xd0,0xce,0xa9,0xc4,0xc9,0x74,0x2, 0x12,0x46, +0x7, 0xa9,0xd0,0xce,0xa9,0xd4,0xc9,0xa9,0xc1,0xcd,0xd2,0x4, 0x2, 0x45,0x5a,0x74, +0x81,0x7a,0xb3,0x39,0x2, 0x22,0x80,0x1d,0x12,0x45,0xcf,0x12,0x47,0xff,0x68,0x5, +0xc2,0x4, 0x12,0x45,0x5a,0x7e,0xb3,0x34,0x3a,0xbe,0xb0,0x2, 0x68,0x18,0x20,0x17, +0x15,0xe4,0x12,0x46,0x7, 0x20,0x93,0xe0,0x12,0x45,0xcf,0xa9,0xd1,0xcd,0xa9,0xc5, +0xea,0x74,0x2, 0x2, 0x46,0x7, 0x22,0x7c,0xab,0x7e,0xb3,0x39,0x2, 0xb4,0x81,0x38, +0x4c,0xaa,0x78,0x5, 0xa9,0xd0,0x87,0x80,0x29,0xbe,0xa0,0x1, 0x78,0xf, 0xc2,0xaf, +0xa9,0xd0,0xce,0xa9,0xc7,0xc9,0xa9,0xd1,0x87,0xd2,0xaf,0x80,0x15,0xbe,0xa0,0x2, +0x78,0x16,0xc2,0xaf,0x20,0x93,0x9, 0xa9,0xd0,0xce,0xa9,0xd7,0xc9,0xa9,0xd1,0x87, +0xd2,0xaf,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe4,0x7a,0xb3,0x39,0x2, 0x22,0xd2,0x3, +0x80,0x12,0x30,0x3, 0xc, 0x12,0x47,0xff,0x68,0x7, 0xc2,0x3, 0xc2,0x4, 0x12,0x45, +0x5a,0x12,0x45,0xd6,0x30,0x17,0xeb,0x22,0xca,0xf8,0xa2,0xaf,0xe4,0x33,0x7c,0xfb, +0xd2,0x3, 0x12,0xb6,0x57,0xa9,0xd0,0xcb,0xc2,0xaf,0xa9,0xd0,0x9e,0x75,0x9d,0x0, +0xa9,0xd0,0x9e,0x75,0x9c,0x20,0xa9,0xd0,0x9e,0xa9,0xd4,0x9e,0xa9,0xd0,0xcd,0x74, +0x41,0x12,0x45,0x15,0xa9,0xd0,0x9e,0xa9,0xd7,0x9e,0x2e,0xf0,0xff,0x92,0xaf,0xda, +0xf8,0x22,0xe4,0x12,0x46,0xf0,0x12,0xb6,0x60,0x12,0x26,0x57,0x12,0xb6,0xdb,0x12, +0x43,0x65,0x12,0xb6,0x5, 0x12,0xb6,0x77,0x12,0x0, 0x4a,0x12,0xb6,0x83,0x12,0x7e, +0xa0,0x12,0xb6,0x93,0xd2,0xaf,0x12,0x47,0x8a,0x12,0xb8,0x1e,0x12,0x43,0xfa,0x12, +0x46,0x68,0x7e,0x8, 0x3, 0xf1,0x12,0xa9,0xa3,0x90,0x60,0x50,0xe4,0x93,0xca,0xb8, +0x90,0x60,0x51,0xe4,0x93,0x7c,0x7b,0x7e,0x24,0xff,0xff,0xda,0xb8,0x2, 0x12,0x34, +0xa9,0xc4,0xca,0xa9,0xc5,0xca,0xbe,0xb0,0x8, 0x50,0x3, 0x12,0x90,0xff,0xa9,0xd0, +0xce,0xa9,0xc0,0xc9,0xd2,0x5, 0x12,0x45,0x51,0xa9,0xc2,0xea,0x75,0xc1,0x6, 0x75, +0xc2,0xc, 0xd2,0x3, 0x12,0x47,0x21,0xa9,0xc1,0xc4,0xa9,0xd2,0xc4,0xa9,0xc2,0xe1, +0x22,0xa2,0x3, 0xa9,0x97,0xc1,0xa2,0x3, 0xa9,0x97,0xc2,0x22,0x7e,0x34,0x36,0xe1, +0x30,0xd, 0x4b,0xc2,0xd, 0x9, 0x53,0x0, 0x2, 0x12,0x47,0x7f,0x7a,0x27,0x2a,0x4f, +0x9, 0x53,0x0, 0x3, 0x12,0x47,0x7f,0x7a,0x27,0x2a,0x51,0x9, 0x53,0x0, 0x4, 0x12, +0x47,0x7f,0x7a,0x27,0x2a,0x53,0x7e,0x39,0x50,0xa, 0x25,0x3e,0x24,0x3e,0x24,0x7a, +0x27,0x2a,0x5a,0x9, 0x53,0x0, 0x1, 0xa, 0x25,0x3e,0x24,0x3e,0x24,0x7a,0x27,0x2a, +0x5c,0x9, 0x73,0x0, 0x5, 0xa, 0x37,0x12,0x45,0xc, 0x7a,0x37,0x2a,0x62,0x22,0xa, +0x25,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x22,0xa9,0xd5,0xcb,0x74,0x10,0x12, +0x43,0xeb,0x7c,0x7b,0x12,0x43,0xf3,0x30,0xe7,0x3, 0x7e,0x70,0x2, 0xd2,0xcd,0x7e, +0x24,0x0, 0xef,0x7e,0xf, 0x38,0xc0,0x79,0x20,0x0, 0x84,0x7e,0x24,0x20,0x5f,0x7e, +0xf, 0x38,0xc0,0x79,0x20,0x0, 0x82,0x7e,0x24,0x41,0x0, 0x7e,0xf, 0x38,0xc0,0x79, +0x20,0x0, 0x90,0x7c,0x67,0x6c,0x77,0x2e,0x34,0x0, 0xc1,0x7e,0xf, 0x38,0xc0,0x79, +0x30,0x0, 0x86,0x7e,0x34,0x29,0x90,0x7e,0xf, 0x38,0xc0,0x79,0x30,0x0, 0x8a,0x7e, +0x34,0x6a,0xd1,0x7e,0xf, 0x38,0xc0,0x79,0x30,0x0, 0x8c,0x7e,0x34,0x3, 0x61,0x7e, +0xf, 0x38,0xc0,0x79,0x30,0x0, 0x8e,0x22,0xe4,0x12,0x13,0xde,0x2, 0x13,0x96,0x7e, +0xb3,0x34,0x3a,0xbe,0xb0,0x1, 0x22,0x12,0xc0,0xf8,0x12,0xc0,0xef,0x6d,0x33,0x7a, +0x35,0xa, 0x12,0x48,0x56,0x12,0x48,0x30,0x74,0x50,0x7a,0xb3,0x37,0xd0,0x7e,0x24, +0x3, 0x20,0x12,0x3f,0xcb,0xe4,0x12,0xc0,0x27,0x6d,0x33,0x7a,0x37,0x39,0x4, 0x22, +0x7e,0x73,0x2b,0x62,0x7a,0x73,0x37,0xcf,0x22,0xa2,0xa, 0xe4,0x33,0x7a,0xb3,0x37, +0xca,0x7e,0x73,0x37,0xce,0xbe,0x73,0x2b,0xf, 0x68,0xa, 0xe5,0xc, 0x70,0x6, 0x12, +0x48,0x56,0x12,0x48,0x30,0x22,0x7e,0x73,0x2b,0xf, 0x7a,0x73,0x37,0xce,0x7e,0x73, +0x2b,0x1f,0x7a,0x73,0x37,0xbe,0x7e,0x73,0x2b,0x20,0x7a,0x73,0x37,0xbd,0x7e,0x73, +0x2b,0x14,0x7a,0x73,0x37,0xbf,0x22,0xca,0xd8,0xca,0x79,0x7c,0xdb,0x90,0x61,0xc5, +0xe4,0x93,0x7c,0xab,0xbe,0xd0,0x80,0x78,0x18,0x7e,0xe0,0xff,0x6c,0xff,0x80,0xb, +0x12,0x48,0xe8,0x38,0x4, 0x7c,0xeb,0x7c,0xdf,0xb, 0xf0,0xbc,0xaf,0x38,0xf1,0x80, +0x1a,0xbe,0xd0,0x81,0x78,0x15,0x6c,0xee,0x6c,0xff,0x80,0xb, 0x12,0x48,0xe8,0x40, +0x4, 0x7c,0xeb,0x7c,0xdf,0xb, 0xf0,0xbc,0xaf,0x38,0xf1,0xbc,0xad,0x38,0x2, 0x6c, +0xdd,0x7c,0xbd,0x12,0x8d,0xb3,0x12,0x48,0x6e,0x7e,0x73,0x2b,0x1f,0x7a,0x73,0x37, +0xbe,0x12,0x49,0x4, 0x7e,0x73,0x2b,0xf, 0x7a,0x73,0x37,0xce,0x12,0x48,0x30,0x7a, +0xd3,0x37,0xa6,0xda,0x79,0xda,0xd8,0x22,0x7e,0x90,0x5, 0xac,0x9f,0x9, 0xb4,0x26, +0x33,0xbc,0xbe,0x22,0x30,0x3, 0x3, 0x12,0x48,0x6e,0xa2,0x4, 0x92,0x5, 0x12,0x49, +0xc3,0x2, 0x49,0x4, 0x7e,0x73,0x2b,0x20,0x7a,0x73,0x37,0xbd,0x22,0x74,0x40,0x12, +0x6e,0x8b,0x50,0x9, 0xd2,0x3, 0xd2,0x4, 0x12,0x48,0xf4,0x80,0x1c,0x74,0x1, 0x12, +0x49,0x47,0x7e,0x43,0x37,0xbb,0x7e,0x50,0x64,0xac,0x45,0x12,0x87,0xf8,0x7a,0xb3, +0x2b,0x1f,0x7e,0xf, 0x38,0xd9,0x12,0x4d,0x9b,0x12,0x49,0x4, 0x7e,0x73,0x2b,0x1f, +0x7a,0x73,0x37,0xbe,0x2, 0x48,0x6e,0xca,0x3b,0x7c,0xdb,0xe4,0x7a,0xb3,0x2b,0x14, +0x12,0xc0,0x42,0x7e,0xc0,0xa, 0x12,0x4e,0x6e,0x30,0xb, 0xfd,0x74,0x1, 0x12,0x0, +0xe, 0x7e,0x1f,0x38,0xd9,0x12,0x90,0x58,0x7d,0x73,0xbe,0x74,0xff,0xff,0x78,0x9, +0x12,0x49,0xb7,0x2e,0x34,0x0, 0x3, 0x80,0x18,0xbe,0x74,0x80,0x0, 0x28,0x7, 0x12, +0x49,0xb7,0xb, 0x35,0x80,0xb, 0xbe,0x74,0x40,0x0, 0x28,0xc, 0x12,0x49,0xb7,0xb, +0x34,0x1b,0xa, 0x30,0x1b,0xc0,0x78,0xbe,0xbe,0xd0,0x1, 0x78,0x9, 0x7e,0x1f,0x38, +0xd9,0x12,0x8f,0xfb,0x7d,0x73,0x7e,0x1f,0x38,0xc8,0x69,0x31,0x0, 0x1a,0x7a,0x73, +0x2b,0x14,0x7d,0x37,0xda,0x3b,0x22,0x7e,0xf, 0x38,0xc8,0x2e,0x14,0x0, 0x1a,0xb, +0xa, 0x30,0x22,0xca,0x3b,0x7e,0x34,0xff,0xff,0x7a,0x35,0x35,0x7e,0xb3,0x37,0xb1, +0xf5,0x2a,0x7e,0xb3,0x2a,0x6d,0xf5,0x2b,0x7e,0xb3,0x2a,0x6e,0xf5,0x2c,0x7e,0xb3, +0x2a,0x70,0xf5,0x2d,0x7e,0xb3,0x2a,0x6f,0xf5,0x2e,0x7e,0x34,0x27,0x10,0x7a,0x35, +0x2f,0x7e,0x18,0x40,0x0, 0x7a,0x1d,0x31,0x12,0x4e,0x67,0x30,0xb, 0xfd,0x74,0x1, +0x12,0x0, 0xe, 0x7e,0x8, 0x34,0x0, 0x12,0x4e,0x5f,0x6c,0xff,0x80,0x35,0x12,0x4c, +0x40,0x6c,0xee,0x80,0x19,0x7e,0x11,0x2c,0xac,0x1e,0x3e,0x4, 0x7e,0x30,0x2, 0xac, +0x3f,0x2d,0x10,0x7e,0x1d,0x31,0x2d,0x31,0xb, 0x1a,0x10,0x12,0x4c,0x47,0xe5,0x2e, +0xbc,0xbe,0x38,0xe1,0xe5,0x2e,0x12,0x4c,0x56,0x74,0x2, 0xac,0xbf,0x59,0x35,0x34, +0x0, 0xb, 0xf0,0xe5,0x2d,0xbc,0xbf,0x38,0xc5,0x12,0xc0,0xba,0x68,0xb, 0x7e,0x34, +0x10,0x0, 0x12,0x4c,0x7c,0x59,0x35,0x33,0xfe,0x6c,0xff,0x80,0x78,0x12,0x4c,0x40, +0x6c,0xee,0x80,0x14,0x12,0x4e,0x38,0x1e,0x34,0x1e,0x24,0x50,0x3, 0x4e,0x60,0x80, +0x14,0x78,0xf4,0x7d,0x13,0x12,0x4c,0x47,0xe5,0x2a,0xbc,0xbe,0x38,0xe6,0xe5,0x2a, +0x12,0x4c,0x56,0x74,0x4, 0xac,0xbf,0x59,0x35,0x3, 0x60,0xe5,0x2a,0xbe,0xb1,0x2d, +0x50,0x35,0x12,0x4c,0x40,0x7e,0xe1,0x2a,0x80,0x14,0x12,0x4e,0x38,0x1e,0x34,0x1e, +0x24,0x50,0x3, 0x4e,0x60,0x80,0x14,0x78,0xf4,0x7d,0x13,0x12,0x4c,0x47,0xe5,0x2d, +0xbc,0xbe,0x38,0xe6,0xe5,0x2a,0xa, 0x3b,0x6d,0x22,0xe5,0x2d,0xa, 0x1b,0x6d,0x0, +0x9f,0x1, 0x12,0x4c,0x5a,0x80,0x4, 0x7e,0x34,0x10,0x0, 0x74,0x4, 0xac,0xbf,0x59, +0x35,0x3, 0x62,0xb, 0xf0,0xe5,0x2e,0xbc,0xbf,0x38,0x82,0xe5,0x2d,0xa, 0x1b,0x6d, +0x0, 0x7e,0x18,0x0, 0x7a,0x12,0x1f,0x7, 0x6c,0xff,0x80,0x2e,0x74,0x2, 0xac,0xbf, +0x49,0x25,0x34,0x0, 0xa, 0x5f,0xad,0x53,0x7e,0x14,0x10,0x0, 0x9d,0x15,0xad,0x12, +0x74,0xc, 0x1e,0x14,0x1e,0x4, 0x50,0x3, 0x4e,0x20,0x80,0x14,0x78,0xf4,0x7d,0x21, +0x74,0x2, 0xac,0xbf,0x59,0x25,0x34,0x0, 0xb, 0xf0,0xe5,0x2d,0xbc,0xbf,0x38,0xcc, +0xe5,0x2b,0xa, 0x1b,0x6d,0x0, 0x7e,0x18,0x0, 0x28,0x12,0x1f,0x7, 0x6c,0xff,0x80, +0x5c,0x74,0x4, 0xac,0xbf,0x49,0x25,0x3, 0x60,0xa, 0x1f,0xad,0x13,0x7e,0xf4,0x10, +0x0, 0x9d,0xf1,0xad,0xf2,0x74,0xc, 0x1e,0xf4,0x1e,0xe4,0x50,0x4, 0x4e,0xf4,0x80, +0x0, 0x14,0x78,0xf3,0x7d,0x2f,0x74,0x4, 0xac,0xbf,0x59,0x25,0x3, 0x60,0xe5,0x2a, +0xbe,0xb1,0x2d,0x50,0x26,0x74,0x4, 0xac,0xbf,0x49,0x25,0x3, 0x62,0x2e,0x14,0x10, +0x0, 0xad,0x12,0x74,0xc, 0x1e,0x14,0x1e,0x4, 0x50,0x3, 0x4e,0x20,0x80,0x14,0x78, +0xf4,0x7d,0x21,0x74,0x4, 0xac,0xbf,0x59,0x25,0x3, 0x62,0xb, 0xf0,0xe5,0x2b,0xbc, +0xbf,0x38,0x9e,0x7e,0x73,0x37,0xb3,0xa, 0x37,0x6d,0x22,0x74,0xc, 0x2f,0x11,0x14, +0x78,0xfb,0x7e,0xf4,0x0, 0x64,0x7d,0x1f,0x12,0x1f,0x5, 0x7d,0xe3,0x7a,0xe5,0x35, +0x7e,0x73,0x37,0xb4,0xa, 0x37,0x6d,0x22,0x74,0xc, 0x2f,0x11,0x14,0x78,0xfb,0x7d, +0x1f,0x12,0x1f,0x5, 0x7d,0x63,0x6c,0xff,0x80,0x20,0x74,0x2, 0xac,0xbf,0x49,0x45, +0x34,0x0, 0xbe,0x45,0x35,0x28,0x9, 0x7e,0x35,0x35,0x59,0x35,0x34,0x0, 0x80,0x8, +0xbd,0x46,0x50,0x4, 0x59,0x65,0x34,0x0, 0xb, 0xf0,0xe5,0x2d,0xbc,0xbf,0x38,0xda, +0x6c,0xff,0x80,0x3a,0x74,0x4, 0xac,0xbf,0x49,0x45,0x3, 0x60,0xbe,0x45,0x35,0x28, +0x9, 0x7e,0x35,0x35,0x59,0x35,0x3, 0x60,0x80,0x8, 0xbd,0x46,0x50,0x4, 0x59,0x65, +0x3, 0x60,0x49,0x45,0x3, 0x62,0xbe,0x45,0x35,0x28,0x9, 0x7e,0x35,0x35,0x59,0x35, +0x3, 0x62,0x80,0x8, 0xbd,0x46,0x50,0x4, 0x59,0x65,0x3, 0x62,0xb, 0xf0,0xe5,0x2b, +0xbc,0xbf,0x38,0xc0,0x30,0x5, 0x6, 0x7e,0xd, 0x31,0x12,0x4d,0x9b,0xda,0x3b,0x22, +0x9f,0x11,0x7a,0x1f,0x24,0xf4,0x22,0x6d,0x0, 0x7e,0x1f,0x24,0xf4,0x2f,0x10,0x7a, +0x1f,0x24,0xf4,0xb, 0xe0,0x22,0xa, 0x1b,0x6d,0x0, 0x7e,0x1f,0x24,0xf4,0x12,0x1f, +0x7, 0x7a,0x1f,0x24,0xf4,0x7e,0x25,0x2f,0x74,0xc, 0x7d,0x13,0x7d,0x32,0x6d,0x22, +0x60,0x5, 0x2f,0x11,0x14,0x78,0xfb,0xb, 0x14,0x2, 0x1f,0x5, 0x7e,0xa1,0x2c,0x74, +0x2, 0xa4,0x22,0xca,0x3b,0x7e,0x8, 0x1f,0x34,0x12,0x4e,0x5f,0x7e,0x1f,0x38,0xf3, +0x7a,0x1d,0x26,0x7e,0xb3,0x2a,0x74,0xf5,0x2d,0x7e,0xb3,0x38,0x86,0xb4,0x1, 0x6, +0x7e,0x38,0x38,0x88,0x80,0x4, 0x7e,0x38,0x5, 0xf8,0x6d,0x33,0x7a,0x35,0x2a,0x74, +0x2, 0x12,0x0, 0x1e,0x7e,0xb3,0x38,0x87,0x70,0xe, 0x7e,0xb3,0x38,0x85,0x70,0x8, +0x74,0x1, 0x7a,0xb3,0x38,0x87,0xa1,0x57,0x7e,0xb3,0x38,0x87,0x70,0x6, 0x74,0x1, +0x7a,0xb3,0x38,0x87,0x7e,0xb3,0x38,0x86,0xb4,0x1, 0x17,0x75,0x2c,0x0, 0x80,0x9, +0x12,0x4c,0x7c,0x12,0x4d,0x8b,0x12,0x4e,0x27,0xe5,0x2d,0xbe,0xb1,0x2c,0x38,0xf0, +0x80,0x1b,0x75,0x2c,0x0, 0x80,0xf, 0x12,0x4c,0x7c,0x12,0x4d,0x8b,0x3e,0x24,0x3e, +0x24,0x1e,0x24,0x12,0x4e,0x27,0xe5,0x2d,0xbe,0xb1,0x2c,0x38,0xea,0x7e,0x34,0x61, +0x59,0x12,0x23,0x9e,0x7a,0x35,0x2e,0x7e,0x18,0x1f,0x34,0x7f,0x1, 0x12,0xa6,0x56, +0x75,0x2c,0x0, 0x80,0x16,0x12,0x4c,0x7c,0x12,0x4d,0x84,0xbe,0x35,0x2a,0x8, 0x9, +0x12,0x4c,0x7c,0x12,0x4d,0x84,0x7a,0x35,0x2a,0x5, 0x2c,0xe5,0x2d,0xbe,0xb1,0x2c, +0x38,0xe3,0x12,0x4d,0x93,0x40,0x25,0x7e,0xb3,0x38,0x86,0xb4,0x1, 0x1e,0x5, 0x1c, +0xe5,0x1c,0xbe,0xb0,0xa, 0x40,0x15,0x75,0x1c,0x0, 0xe5,0x2d,0xa, 0x3b,0x3e,0x34, +0xca,0x39,0x7e,0x1d,0x26,0x7f,0x3, 0x12,0x20,0xb9,0x1b,0xfd,0x74,0x2, 0x12,0x0, +0x1e,0x12,0x4d,0x93,0x50,0xb, 0x74,0x2, 0x7a,0xb3,0x38,0xf2,0xe4,0x7a,0xb3,0x38, +0x87,0xda,0x3b,0x22,0x49,0x35,0x1f,0x34,0x2, 0x21,0x0, 0x7f,0x13,0x2d,0x35,0xb, +0x1a,0x20,0x22,0x7e,0x37,0x2b,0x7, 0xbe,0x35,0x2a,0x22,0x12,0x4d,0xa5,0xb, 0x34, +0x7a,0x73,0x2b,0x20,0x22,0xca,0x79,0x7f,0x10,0x9f,0x0, 0x12,0xc1,0x3a,0x4c,0xaa, +0x78,0x6, 0x7e,0x34,0x0, 0x40,0x80,0x6c,0x6c,0x99,0x80,0x38,0xa, 0xe9,0x2e,0xe4, +0x60,0xac,0x7d,0x7e,0x7a,0xf1,0x82,0x7a,0xe1,0x83,0xe4,0x93,0x7c,0x8b,0x90,0x60, +0xaa,0xe4,0x93,0x70,0xe, 0x7e,0xf3,0x2a,0x6e,0xac,0xf8,0x7e,0xb3,0x2a,0x70,0xa, +0xfb,0x2d,0xf7,0x7d,0xef,0x3e,0xe4,0x7f,0x61,0x2d,0xde,0xb, 0x6a,0xd0,0x6d,0xcc, +0x2f,0x6, 0xb, 0x90,0xbc,0xa9,0x38,0xc4,0xbe,0x8, 0x0, 0x0, 0x78,0x2, 0xb, 0xc, +0xa, 0x5a,0x6d,0x44,0x7f,0x10,0x7f,0x2, 0x12,0x1f,0x7, 0x7f,0x1, 0xb, 0xc, 0x7e, +0x34,0xc4,0x0, 0x7e,0x24,0x0, 0x9, 0x12,0x1f,0x7, 0xbe,0x34,0x0, 0xfa,0x28,0x4, +0x7e,0x34,0x0, 0xfa,0xda,0x79,0x22,0x7e,0xd, 0x26,0x2d,0x15,0xb, 0xa, 0x30,0x9d, +0x32,0x59,0x35,0x1f,0x34,0x5, 0x2c,0x22,0x7e,0x11,0x2c,0xac,0x1f,0x3e,0x4, 0x7e, +0x30,0x2, 0xac,0x3e,0x2d,0x10,0x7e,0x1d,0x31,0x2d,0x31,0xb, 0x1a,0x20,0x7a,0x27, +0x24,0xf2,0x74,0x2, 0xac,0xbe,0x49,0x35,0x34,0x0, 0xad,0x23,0x74,0xc, 0x22,0x7e, +0x34,0x0, 0x38,0xe4,0x2, 0x20,0xde,0x7e,0x8, 0x2a,0x6d,0x12,0xd, 0x72,0xe4,0x12, +0x0, 0xe, 0x74,0x1, 0x7e,0x70,0x99,0x12,0x13,0x2c,0x2, 0x0, 0x4e,0xb4,0x3, 0x5, +0x12,0x4e,0x8d,0x80,0x2, 0xe4,0x22,0x12,0x4e,0x72,0x74,0x1, 0x22,0x12,0xc0,0x9f, +0xe4,0x12,0x0, 0xe, 0x7e,0x8, 0x2a,0x6d,0x2, 0xd, 0x72,0x12,0x7f,0x6f,0x38,0x2, +0xe4,0x22,0x12,0x7f,0x67,0x49,0x55,0x34,0x3b,0xbe,0xb0,0x2, 0x38,0x3, 0x2, 0x4e, +0xb4,0x2, 0x4e,0x7d,0x7e,0xd7,0x2b,0xd, 0xbe,0xb0,0x1, 0x28,0x2, 0xe4,0x22,0x12, +0x7e,0xf8,0x12,0x4e,0xe0,0x7a,0xd7,0x2b,0xd, 0x7e,0x73,0x2a,0xfa,0xa, 0x37,0x3e, +0x34,0x3e,0x34,0xe4,0x7e,0x50,0x1, 0x12,0x13,0x1, 0x12,0x4f,0xaf,0x74,0x1, 0x22, +0x7e,0x8, 0x2a,0x6d,0x2, 0x5, 0xb4,0xca,0x3b,0x7e,0xe3,0x2a,0x74,0x7e,0xf3,0x2a, +0xfa,0x74,0x1, 0x7a,0xb3,0x2a,0xfa,0x12,0x4e,0xe0,0x12,0xc0,0xe7,0x12,0x29,0x6f, +0x7e,0x17,0x2a,0xfe,0x6d,0x0, 0x12,0x20,0xde,0x7e,0xd0,0x7, 0x12,0x26,0x57,0x6c, +0xcc,0x80,0x19,0x7e,0x34,0x0, 0x1, 0x7c,0xbd,0x60,0x5, 0x3e,0x34,0x14,0x78,0xfb, +0x7c,0x67,0x12,0x4f,0xf0,0x4c,0x76,0x7a,0x29,0x70,0xb, 0xc0,0x12,0x7b,0xb7,0xa, +0x3c,0xbd,0x32,0x48,0xde,0x12,0x4f,0x9e,0x30,0x18,0xfd,0x12,0x7b,0xc6,0x7e,0xb3, +0x2a,0x73,0x7c,0x7e,0x12,0x7b,0x31,0x6c,0xcc,0x80,0x29,0x74,0x2, 0xac,0xbc,0x49, +0x35,0x6, 0xfc,0xbe,0x34,0x15,0x40,0x50,0x19,0x7e,0x34,0x0, 0x1, 0x7c,0xbd,0x60, +0x5, 0x3e,0x34,0x14,0x78,0xfb,0x7c,0xb7,0x64,0xff,0x12,0x4f,0xf0,0x5c,0x7b,0x7a, +0x29,0x70,0xb, 0xc0,0x12,0x7b,0xb7,0xa, 0x3c,0xbd,0x32,0x48,0xce,0x1b,0xd0,0xbe, +0xd0,0x0, 0x58,0x88,0x12,0x7b,0x39,0x74,0x2, 0x12,0xc1,0xa, 0x12,0x50,0x51,0x74, +0x2, 0x12,0x0, 0x1e,0x7a,0xf3,0x2a,0xfa,0x12,0x4e,0xe0,0xda,0x3b,0x22,0x74,0x2, +0x12,0x0, 0x1e,0x7e,0xb3,0x2a,0xfc,0x12,0x50,0x51,0x74,0x2, 0x12,0x0, 0x1e,0x74, +0x5, 0x7e,0x70,0x9b,0x12,0x13,0x2c,0x12,0x4f,0xc1,0x7e,0xb3,0x2a,0xfc,0x2, 0xe, +0x94,0x6c,0xaa,0x80,0x22,0xa, 0x3a,0x9, 0x73,0x2a,0xdc,0x2e,0x34,0x20,0x73,0x12, +0x91,0x6d,0x7c,0x7b,0xa, 0x47,0x7e,0x50,0x2, 0xac,0x5a,0x7e,0xf, 0x38,0xc0,0x2d, +0x12,0x79,0x40,0x0, 0x48,0xb, 0xa0,0x7e,0x63,0x2a,0x74,0xbc,0x6a,0x38,0xd6,0x22, +0xa, 0x2c,0x2e,0x27,0x2a,0xfe,0x7e,0x29,0x70,0x22,0xe5,0xd, 0x60,0x52,0xe5,0xd, +0x30,0xe0,0x6, 0x53,0xd, 0xfe,0x12,0x4e,0xe0,0xe5,0xd, 0x30,0xe1,0x14,0x53,0xd, +0xfd,0x7e,0xb3,0x37,0xe0,0x70,0x4, 0x74,0x1, 0x80,0x1, 0xe4,0x12,0xc1,0xa, 0x12, +0x50,0xd4,0xe5,0xd, 0x30,0xe2,0x29,0x53,0xd, 0xfb,0xe4,0x7a,0xb3,0x37,0xe1,0x7e, +0xb3,0x37,0xe0,0x70,0xa, 0x74,0x1, 0x12,0x0, 0x1e,0x12,0x3f,0x67,0x80,0x7, 0xe4, +0x12,0x0, 0x1e,0x12,0x3f,0x49,0x12,0x3b,0x15,0x7e,0xb3,0x2a,0xfc,0x2, 0x50,0x51, +0x22,0xca,0x79,0x7c,0xfb,0x7e,0x8, 0x24,0xf2,0x12,0x3f,0xe9,0x7e,0xa3,0x2a,0x73, +0x7e,0x73,0x2a,0x74,0x6c,0xee,0x80,0x1e,0xa, 0x2e,0x9, 0x62,0x2a,0xdc,0xa, 0x26, +0x12,0x51,0x4b,0x93,0x7c,0x6b,0xbe,0x60,0x1c,0x50,0x9, 0xa, 0x2e,0x12,0x50,0xca, +0x19,0xb2,0x24,0xf2,0xb, 0xe0,0xbc,0x7e,0x38,0xde,0x6c,0xee,0x80,0x1a,0xa, 0x2e, +0x9, 0x62,0x2a,0xb9,0xbe,0x60,0x23,0x50,0xd, 0xa, 0x1e,0xa, 0x27,0x2d,0x21,0x12, +0x50,0xca,0x19,0xb2,0x25,0xe, 0xb, 0xe0,0xbc,0xae,0x38,0xe2,0x6c,0xee,0x7e,0x30, +0xe, 0xac,0x3e,0x2e,0x14,0x24,0xf2,0x6d,0x0, 0x7c,0xbf,0x7c,0x7e,0x12,0x11,0xba, +0xb, 0xe0,0xbe,0xe0,0x5, 0x40,0xe7,0xda,0x79,0x22,0x2e,0x27,0x2a,0xfe,0x7e,0x29, +0xb0,0xa, 0x26,0x22,0xca,0x79,0x7c,0xfb,0x7e,0x8, 0x1f,0x34,0x12,0x3f,0xe9,0x7e, +0xa3,0x2a,0x73,0x7e,0x63,0x2a,0x74,0x6c,0xee,0x80,0x1f,0xa, 0x2e,0x9, 0x72,0x2a, +0xdc,0xbe,0x70,0x1c,0x50,0x12,0xa, 0x27,0x12,0x51,0x4b,0x93,0x7c,0x7b,0x7e,0xb3, +0x2a,0xfb,0xa, 0x27,0x19,0xb2,0x1f,0x34,0xb, 0xe0,0xbc,0x6e,0x38,0xdd,0x6c,0xee, +0x80,0x17,0xa, 0x3e,0x9, 0x73,0x2a,0xb9,0xbe,0x70,0x23,0x50,0xa, 0x7e,0x63,0x2a, +0xfb,0xa, 0x27,0x19,0x62,0x1f,0x50,0xb, 0xe0,0xbc,0xae,0x38,0xe5,0x6c,0xee,0x7e, +0x30,0xe, 0xac,0x3e,0x2e,0x14,0x1f,0x34,0x6d,0x0, 0x7c,0xbf,0x7c,0x7e,0x12,0x11, +0xf8,0xb, 0xe0,0xbe,0xe0,0x5, 0x40,0xe7,0xda,0x79,0x22,0x2e,0x24,0x20,0x73,0x7a, +0x51,0x82,0x7a,0x41,0x83,0xe4,0x22,0x7a,0xb3,0x34,0xc4,0x7c,0xbf,0x6c,0x77,0x7c, +0x67,0x7c,0x7b,0xc4,0x23,0x54,0x1f,0x7c,0xab,0x7c,0xb7,0x54,0x7, 0xa, 0x2b,0x2e, +0x24,0x0, 0x5e,0x12,0x51,0x4f,0x93,0x7c,0x7b,0x4c,0x66,0x68,0xf, 0xa, 0x2a,0x2e, +0x24,0x27,0x72,0x7e,0x29,0xb0,0x4c,0xb7,0x7a,0x29,0xb0,0x22,0x7c,0xb7,0x64,0xff, +0xa, 0x2a,0x2e,0x24,0x27,0x72,0x7e,0x29,0x70,0x5c,0x7b,0x7a,0x29,0x70,0x22,0xca, +0xf8,0x6c,0xaa,0x6d,0x33,0x7e,0x24,0x7f,0xff,0x7e,0xf0,0x1, 0x80,0x32,0xa, 0x1f, +0x7e,0xb3,0x2a,0x6e,0xa, 0xb, 0x2d,0x1, 0x3e,0x4, 0x49,0x10,0x4, 0xfc,0xbe,0x14, +0x3, 0xe8,0x8, 0x1a,0xb, 0xa0,0xbd,0x13,0x8, 0x4, 0x7d,0x31,0x80,0x10,0xbd,0x12, +0x58,0xc, 0x7d,0x21,0xbe,0x24,0x0, 0x0, 0x18,0x4, 0x7e,0x24,0x0, 0x1, 0xb, 0xf0, +0x7e,0xb3,0x2a,0x6f,0xa, 0xb, 0x1b,0x4, 0xa, 0x1f,0xbd,0x10,0x48,0xc0,0x7e,0xb3, +0x34,0xa1,0x7a,0xb3,0x36,0xf3,0x7a,0xa3,0x36,0xf7,0xe4,0x7a,0xb3,0x36,0xf5,0xbe, +0xa0,0xb, 0x78,0x18,0x9d,0x32,0xbe,0x34,0x4, 0xb0,0x58,0x10,0x7e,0x37,0x28,0x8a, +0xbe,0x34,0x1, 0x5e,0x58,0x6, 0x74,0x1, 0x7a,0xb3,0x34,0xa1,0x7e,0x73,0x34,0xa1, +0xbe,0x70,0x0, 0x28,0x3e,0x6c,0xff,0x80,0x35,0x7c,0xbf,0x12,0x97,0xfc,0x60,0x22, +0x74,0x22,0x7a,0xb3,0x36,0xf4,0x7e,0xb3,0x34,0xc4,0x4, 0x12,0x51,0x57,0x7e,0x73, +0x34,0xc4,0xbe,0x70,0x5, 0x40,0x15,0xe4,0x7a,0xb3,0x34,0xc4,0x7a,0xb3,0x34,0xa1, +0x80,0xa, 0xe4,0x12,0x51,0x57,0x74,0x33,0x7a,0xb3,0x36,0xf5,0xb, 0xf0,0x12,0x52, +0x66,0x38,0xc6,0xda,0xf8,0x22,0x7e,0x73,0x28,0x84,0xbc,0x7f,0x22,0xca,0xd8,0xca, +0x79,0xc2,0x3, 0x6d,0x88,0x7a,0x87,0x38,0x3c,0xe4,0x7a,0xb3,0x1f,0x58,0xe5,0x1d, +0xbe,0xb0,0xff,0x50,0x2, 0x5, 0x1d,0x7e,0xb3,0x28,0x84,0x60,0xc, 0x12,0x8c,0x87, +0xb, 0x1a,0x80,0xbe,0x87,0x7, 0xfa,0x28,0xa, 0xc2,0x10,0x6d,0x88,0x7a,0x87,0x37, +0xfd,0x61,0xa0,0x12,0x93,0x91,0x60,0x12,0x7e,0x34,0x62,0xe, 0x12,0x87,0xc4,0x7a, +0x87,0x37,0xf3,0x12,0x54,0x2b,0x7a,0x87,0x37,0xfd,0x7e,0x87,0x37,0xf3,0x4d,0x88, +0x68,0x6, 0x74,0x1, 0x7a,0xb3,0x28,0xa9,0x6c,0xff,0x80,0x7b,0xe4,0xa, 0x3f,0x19, +0xb3,0x1f,0x34,0x12,0x54,0x3c,0x9, 0xe5,0x26,0xfb,0x7e,0x8, 0x1f,0x52,0x7c,0xbd, +0x7c,0x7e,0x12,0x55,0xb9,0x7d,0x93,0x7e,0x87,0x37,0xfd,0xbd,0x89,0x50,0x4, 0x7a, +0x97,0x37,0xfd,0x7e,0x87,0x38,0x3c,0xbd,0x89,0x50,0x4, 0x7a,0x97,0x38,0x3c,0xe5, +0x1d,0xbe,0xb0,0x5, 0x38,0x1f,0x7e,0x8, 0x37,0xff,0x12,0x54,0x4e,0x50,0x7, 0x12, +0x54,0x45,0xd2,0x3, 0x80,0x2f,0x7e,0x8, 0x37,0xff,0x7e,0x18,0x1f,0x52,0x12,0x57, +0x0, 0x50,0x22,0x80,0x10,0x12,0x54,0x2b,0xbd,0x89,0x38,0x19,0x7e,0x8, 0x1f,0x52, +0x12,0x91,0x86,0x50,0x10,0x12,0x54,0x45,0x7e,0x8, 0x1f,0x58,0x7e,0x18,0x1f,0x52, +0x12,0x93,0x6b,0xd2,0x3, 0xb, 0xf0,0x12,0x52,0x66,0x38,0x80,0x30,0x3, 0x37,0x6c, +0xff,0x80,0x20,0x12,0x54,0x3c,0x9, 0xe5,0x26,0xfb,0x7e,0x8, 0x1f,0x58,0x12,0x54, +0x4e,0x40,0x9, 0xa, 0x3f,0x9, 0xb3,0x1f,0x34,0xb4,0x1, 0x5, 0x7c,0xbf,0x12,0x54, +0x7, 0xb, 0xf0,0x12,0x52,0x66,0x38,0xdb,0x75,0x1d,0x0, 0x7e,0x34,0x62,0xe, 0x12, +0x23,0x9e,0x7a,0x37,0x37,0xf3,0x7e,0x63,0x1f,0x58,0x7e,0x70,0x6, 0xac,0x67,0xb, +0x34,0xca,0x39,0x7e,0x18,0x1f,0x58,0x7e,0x8, 0x37,0xff,0x12,0x20,0xb9,0x1b,0xfd, +0x7e,0x37,0x37,0xf3,0x4d,0x33,0x78,0x39,0x90,0x62,0x9, 0xe4,0x93,0xa, 0x3b,0xbe, +0x37,0x37,0xfd,0x38,0x40,0x7c,0x7b,0x1e,0x70,0xa, 0x37,0xbe,0x37,0x38,0x3c,0x38, +0x34,0x90,0x60,0x51,0x12,0x54,0x33,0x7e,0x73,0x26,0xf7,0xa, 0x37,0xbd,0x32,0x8, +0x24,0x90,0x60,0x50,0x12,0x54,0x33,0x7e,0x73,0x26,0xf6,0xa, 0x37,0xbd,0x32,0x8, +0x14,0x6c,0xff,0x80,0x7, 0x7c,0xbf,0x12,0x54,0x7, 0xb, 0xf0,0x12,0x52,0x66,0x38, +0xf4,0xd2,0x3, 0x80,0x6, 0x6d,0x33,0x7a,0x37,0x37,0xfd,0xa2,0x3, 0x92,0x10,0x12, +0x56,0xe9,0xda,0x79,0xda,0xd8,0x22,0x7c,0xab,0x7e,0xb3,0x39,0xb, 0x70,0x1b,0x7e, +0xb3,0x28,0xa8,0x70,0x15,0x12,0xc1,0x2a,0x68,0x10,0x7e,0xb3,0x2a,0x6b,0xbe,0xb0, +0x1, 0x68,0x7, 0x7c,0xba,0x6c,0x77,0x2, 0x51,0x5f,0x22,0x90,0x62,0x9, 0xe4,0x93, +0xa, 0x8b,0x22,0xe4,0x93,0x7c,0x7b,0x1e,0x70,0xa, 0x27,0x22,0x74,0x2, 0xac,0xbf, +0x9, 0xd5,0x26,0xfa,0x22,0x74,0x1, 0xa, 0x8f,0x19,0xb8,0x1f,0x34,0x22,0x7c,0xbd, +0x7c,0x7e,0x7c,0x6b,0xc2,0x4, 0x6c,0xaa,0x80,0x30,0x7e,0x50,0x6, 0xac,0x5a,0x7f, +0x70,0x2d,0xf2,0xb, 0xf4,0x29,0xb7,0x0, 0x2, 0xbc,0xb6,0x40,0x1b,0x7e,0x7b,0xb0, +0xbc,0xb6,0x38,0x14,0x29,0xb7,0x0, 0x3, 0xbc,0xb7,0x40,0xc, 0x29,0xb7,0x0, 0x1, +0xbc,0xb7,0x38,0x4, 0xd2,0x4, 0x80,0x9, 0xb, 0xa0,0x7e,0xb, 0xb0,0xbc,0xba,0x38, +0xc9,0xa2,0x4, 0x22,0xca,0xd8,0xca,0x79,0x7e,0xa3,0x2a,0x6e,0x7e,0x47,0x28,0x99, +0xe4,0x7a,0xb3,0x28,0xa6,0x7e,0xb3,0x26,0xf0,0xbe,0xb0,0x0, 0x28,0x4c,0x7e,0x73, +0x28,0x85,0xbe,0x70,0x0, 0x28,0x43,0x6c,0xff,0x80,0x3b,0x7e,0x50,0x2, 0xac,0x5f, +0x9, 0xd2,0x27,0x36,0x9, 0xe2,0x27,0x37,0x7e,0x50,0x2, 0xac,0x5e,0x49,0x12,0x4, +0xfc,0x6d,0x22,0x9e,0x27,0x2a,0x53,0xbd,0x12,0x58,0x19,0x12,0x55,0xa6,0x49,0x12, +0x4, 0xfc,0x6d,0x22,0x9e,0x27,0x2a,0x51,0xbd,0x12,0x58,0x8, 0x74,0x1, 0x7a,0xb3, +0x28,0xa6,0x80,0x6, 0xb, 0xf0,0xbc,0x7f,0x38,0xc1,0xe4,0x7a,0xb3,0x28,0xa7,0x7e, +0xb3,0x26,0x83,0x70,0x40,0x12,0x8f,0xe3,0x28,0x3b,0x6c,0xff,0x80,0x33,0x7e,0x50, +0x2, 0xac,0x5f,0x9, 0xd2,0x26,0xfa,0x9, 0xe2,0x26,0xfb,0x12,0x55,0xa6,0x49,0x2, +0x5, 0x7a,0x6d,0x11,0x9d,0x14,0xbd,0x1, 0x48,0xd, 0x7e,0x10,0x2, 0xac,0x1e,0x49, +0x20,0x5, 0x7a,0xbd,0x21,0x58,0x8, 0x74,0x1, 0x7a,0xb3,0x28,0xa7,0x80,0x6, 0xb, +0xf0,0xbc,0x7f,0x38,0xc9,0x12,0xb1,0x8e,0xe4,0x7a,0xb3,0x28,0xa9,0x7e,0x37,0x28, +0x88,0x2e,0x37,0x28,0x86,0xbe,0x37,0x28,0x9f,0x28,0x6, 0x74,0x1, 0x7a,0xb3,0x28, +0xa9,0x74,0x1, 0x7a,0xb3,0x28,0xaa,0x6c,0xff,0x80,0x1f,0x12,0x55,0xaf,0x49,0x25, +0x25,0xf7,0x7d,0x43,0x9d,0x42,0x7d,0x34,0x12,0x21,0x0, 0xbe,0x37,0x28,0x9d,0x8, +0x7, 0xe4,0x7a,0xb3,0x28,0xaa,0x80,0x7, 0xb, 0xf0,0x12,0x52,0x66,0x38,0xdc,0x6c, +0xff,0x80,0x9, 0x12,0x55,0xaf,0x59,0x35,0x25,0xf7,0xb, 0xf0,0x12,0x52,0x66,0x38, +0xf2,0xda,0x79,0xda,0xd8,0x22,0xa, 0x1d,0xa, 0x2a,0x2d,0x21,0x3e,0x24,0x22,0x7c, +0xbf,0x12,0x37,0x6f,0x74,0x2, 0xac,0xbf,0x22,0xca,0x3b,0x7c,0xc7,0x7c,0xfb,0x7f, +0x40,0x6d,0x33,0x7a,0x35,0x24,0x7e,0xa3,0x2a,0x6d,0x7e,0x73,0x2a,0x6e,0x4c,0xcc, +0x78,0x5, 0x7e,0xc0,0x1, 0x80,0xd, 0x7c,0xb7,0x14,0xbc,0xbc,0x78,0x6, 0xa, 0x6c, +0x1b,0x65,0x7c,0xcd,0x4c,0xff,0x78,0x5, 0x7e,0xf0,0x1, 0x80,0xb, 0x7c,0xba,0x14, +0xbc,0xbf,0x78,0x4, 0xa, 0x7f,0x1b,0x75,0x7f,0x4, 0x7e,0x34,0x0, 0x6, 0xe4,0x12, +0x20,0xde,0x7e,0x73,0x2a,0x6d,0xa, 0x37,0x1b,0x34,0x7a,0x4b,0x70,0x7e,0x73,0x2a, +0x6e,0xa, 0x37,0x1b,0x34,0x39,0x74,0x0, 0x1, 0x7c,0xec,0x80,0x1c,0x75,0x26,0x0, +0x7c,0xdf,0x80,0xa, 0x12,0x91,0xd5,0x70,0xa, 0x12,0x56,0xd3,0x1b,0xd0,0xbe,0xd0, +0x0, 0x58,0xf1,0xe5,0x26,0x60,0x7, 0x1b,0xe0,0xbe,0xe0,0x0, 0x58,0xdf,0x7c,0xec, +0x80,0x23,0x75,0x26,0x0, 0x1a,0x3f,0xb, 0x34,0x7c,0xd7,0x80,0xa, 0x12,0x91,0xd5, +0x70,0xd, 0x12,0x56,0xd3,0xb, 0xd0,0x7e,0x73,0x2a,0x6d,0xbc,0x7d,0x18,0xee,0xe5, +0x26,0x60,0x7, 0x1b,0xe0,0xbe,0xe0,0x0, 0x58,0xd8,0x1a,0x3c,0xb, 0x34,0x7c,0xe7, +0x80,0x1c,0x75,0x26,0x0, 0x7c,0xdf,0x80,0xa, 0x12,0x91,0xd5,0x70,0xa, 0x12,0x56, +0xd3,0x1b,0xd0,0xbe,0xd0,0x0, 0x58,0xf1,0xe5,0x26,0x60,0xa, 0xb, 0xe0,0x7e,0x73, +0x2a,0x6e,0xbc,0x7e,0x18,0xdc,0x1a,0x3c,0xb, 0x34,0x7c,0xe7,0x80,0x21,0x75,0x26, +0x0, 0x1a,0x6f,0xb, 0x64,0x80,0xa, 0x12,0x91,0xd5,0x70,0xd, 0x12,0x56,0xd3,0xb, +0xd0,0x7e,0x73,0x2a,0x6d,0xbc,0x7d,0x18,0xee,0xe5,0x26,0x60,0xa, 0xb, 0xe0,0x7e, +0x73,0x2a,0x6e,0xbc,0x7e,0x18,0xd7,0x7e,0x35,0x24,0x7d,0x23,0x39,0x54,0x0, 0x5, +0xda,0x3b,0x22,0x5, 0x26,0x7e,0x35,0x24,0xb, 0x34,0x7a,0x35,0x24,0x22,0x12,0x57, +0x32,0x12,0x51,0x9f,0x7a,0xb3,0x2a,0xc, 0x22,0x30,0x10,0x13,0x12,0xc1,0x1a,0x68, +0x6, 0x7e,0xb3,0x39,0xb, 0x60,0x8, 0x7e,0x34,0xb, 0xb8,0x7a,0x37,0x37,0xfb,0x22, +0x7f,0x61,0x7f,0x50,0x7e,0x6b,0x90,0x80,0x1f,0x29,0x86,0x0, 0x1, 0x80,0xf, 0x7f, +0x5, 0x7c,0xb9,0x7c,0x78,0x12,0x54,0x52,0x50,0x2, 0xd3,0x22,0xb, 0x80,0x29,0x76, +0x0, 0x3, 0xbc,0x78,0x50,0xe9,0xb, 0x90,0x29,0x76,0x0, 0x2, 0xbc,0x79,0x50,0xd9, +0xc3,0x22,0x7e,0xa3,0x28,0x84,0xe4,0x7a,0xb3,0x34,0xa2,0x6c,0x33,0x80,0x3d,0x7e, +0x70,0x2, 0xac,0x73,0x9, 0x23,0x26,0xfb,0x7e,0x10,0x1, 0x6c,0x0, 0x80,0x27,0xbc, +0x3, 0x68,0x21,0x7e,0x70,0x2, 0xac,0x70,0x9, 0x93,0x26,0xfb,0xa, 0x29,0xa, 0x32, +0x12,0x35,0x67,0x18,0x2, 0xb, 0x10,0xbe,0x10,0x2, 0x40,0x8, 0x74,0x2, 0x7a,0xb3, +0x34,0xa2,0x80,0x6, 0xb, 0x0, 0xbc,0xa0,0x38,0xd5,0xb, 0x30,0xbc,0xa3,0x38,0xbf, +0x2, 0x57,0x83,0xca,0xf8,0x7e,0x33,0x28,0x84,0x6c,0x22,0x80,0x45,0x74,0x2, 0xac, +0xb2,0x9, 0x15,0x26,0xfa,0x9, 0x5, 0x26,0xfb,0x7e,0xa0,0x1, 0x6c,0x99,0x80,0x2c, +0xbc,0x92,0x68,0x26,0x7e,0x70,0x2, 0xac,0x79,0x9, 0x83,0x26,0xfa,0x9, 0xf3,0x26, +0xfb,0xa, 0x28,0xa, 0x31,0x12,0x35,0x67,0x18,0xb, 0xa, 0x2f,0xa, 0x30,0x12,0x35, +0x67,0x8, 0x2, 0xb, 0xa0,0xbe,0xa0,0x3, 0x50,0x6, 0xb, 0x90,0xbc,0x39,0x38,0xd0, +0xb, 0x20,0xbc,0x32,0x38,0xb7,0x7e,0xb3,0x35,0x3e,0xbe,0xb0,0x0, 0x28,0x12,0x14, +0x7a,0xb3,0x35,0x3e,0xbe,0xb0,0x14,0x28,0x8, 0x7e,0x34,0x0, 0x78,0x7a,0x37,0x2a, +0x5a,0x7e,0xb3,0x36,0xec,0x70,0x58,0x7e,0xb3,0x39,0xb, 0x70,0x52,0x7e,0xb3,0x36, +0x71,0x70,0x4c,0x7e,0x37,0x37,0xfd,0xbe,0x34,0x0, 0x14,0x50,0x42,0x7e,0x37,0x28, +0x8a,0xbe,0x34,0x3, 0x20,0x58,0x38,0x7e,0xb3,0x28,0x84,0xbe,0xb0,0x3, 0x40,0x2f, +0xbe,0xa0,0x3, 0x40,0x2a,0x7e,0xb3,0x26,0x85,0xbe,0xb0,0x3, 0x50,0x9, 0x7e,0xb3, +0x26,0x84,0xbe,0xb0,0x3, 0x40,0x18,0x7e,0xb3,0x26,0xf6,0xbe,0xb0,0x8, 0x50,0x9, +0x7e,0xb3,0x26,0xf7,0xbe,0xb0,0x8, 0x40,0x6, 0x74,0x1e,0x7a,0xb3,0x35,0x3e,0xda, +0xf8,0x22,0xca,0xd8,0xca,0x79,0x7e,0x73,0x2a,0x6e,0x7e,0xf3,0x2a,0x6d,0xac,0xf7, +0x7d,0x37,0x3e,0x34,0x7e,0x8, 0x1f,0x34,0xe4,0x12,0x20,0xde,0x7e,0xb3,0x37,0xb7, +0xb4,0x1, 0x64,0x7e,0x73,0x37,0xb8,0xbe,0x70,0x0, 0x28,0x5b,0x6c,0xdd,0x80,0x3c, +0x12,0x26,0x57,0x12,0x28,0x62,0x6d,0x33,0x80,0x28,0x7e,0x35,0x24,0x3e,0x34,0x49, +0x33,0xd, 0xc8,0x12,0x21,0x0, 0x7a,0x35,0x26,0x7e,0x35,0x24,0x7d,0x13,0x3e,0x14, +0x49,0x21,0x1f,0x34,0xbe,0x25,0x26,0x58,0x7, 0x7e,0x25,0x26,0x59,0x21,0x1f,0x34, +0xb, 0x34,0x7a,0x35,0x24,0xbe,0x75,0x24,0x38,0xd0,0xb, 0xd0,0x7e,0x73,0x37,0xb8, +0xbc,0x7d,0x38,0xbc,0x7d,0x37,0x3e,0x34,0xca,0x39,0x7e,0x18,0x1f,0x34,0x7e,0x8, +0xd, 0xc8,0x12,0x20,0xb9,0x1b,0xfd,0xda,0x79,0xda,0xd8,0x22,0x7e,0xb3,0x37,0x5, +0xb4,0x1, 0x4, 0xe4,0x2, 0x58,0xe8,0x22,0x70,0x3, 0xd2,0x86,0x22,0xc2,0x86,0x22, +0x12,0x68,0x10,0x12,0x7d,0x94,0x7e,0xb3,0x37,0x8, 0xb4,0x1, 0x74,0x12,0xb6,0xe2, +0x7e,0x34,0x60,0xa5,0x12,0x23,0x9e,0x12,0x26,0x5b,0x12,0x91,0x18,0x12,0x47,0x2c, +0x12,0x28,0x62,0x50,0xde,0x12,0xab,0xdb,0x12,0x75,0xe9,0x7e,0xb3,0x37,0x5, 0xb4, +0x1, 0x4, 0xe4,0x12,0x58,0xe8,0x12,0xaf,0x89,0x12,0xa7,0xbd,0x12,0x5e,0xaa,0x40, +0xc2,0x12,0x88,0x5f,0x12,0x5e,0xaa,0x40,0xba,0x12,0x56,0xde,0x12,0x2a,0x3, 0x12, +0x0, 0x6e,0x12,0x5f,0x2f,0x12,0x5f,0x83,0x12,0x5b,0x94,0x12,0x96,0x24,0x12,0x5e, +0xc2,0x12,0x5f,0xcd,0x12,0xaa,0xe6,0x12,0x87,0x74,0x7e,0xb3,0x36,0xf1,0xbe,0xb0, +0x88,0x68,0x3, 0x12,0x59,0x77,0x12,0x67,0xfa,0x12,0x26,0x66,0x12,0x62,0xa5,0x80, +0x82,0x12,0x2f,0xee,0x2, 0x58,0xdc,0xca,0x3b,0x75,0x24,0x0, 0x6c,0xff,0x12,0x35, +0xd3,0x75,0x28,0x3, 0x6c,0xee,0x7e,0x48,0x29,0xbc,0x7e,0xb3,0x2a,0xb, 0x70,0xe, +0x7e,0xb3,0x2a,0x7, 0x70,0x8, 0x7e,0xb3,0x2a,0x8, 0x70,0x2, 0x61,0x6b,0x30,0xe, +0x6, 0x7e,0x68,0x33,0x28,0x80,0x4, 0x7e,0x68,0x32,0xea,0x7f,0x6, 0x12,0x7e,0xef, +0x7e,0x73,0x2a,0x4, 0x7a,0x6b,0x70,0x6c,0xdd,0x61,0x1c,0x74,0x9, 0xac,0xbd,0x9, +0xc5,0x29,0xc, 0x7c,0xbc,0x54,0xf, 0xa, 0x3b,0x12,0x5e,0x3d,0xf5,0x28,0x7c,0xbc, +0x54,0xf0,0xbe,0xb0,0x0, 0x28,0x2, 0x61,0x1a,0xe5,0x28,0xbe,0xb0,0x3, 0x78,0x2, +0x61,0x1a,0x7e,0x8, 0x0, 0x28,0x7c,0xbc,0x12,0x9e,0xec,0x50,0x2, 0x61,0x1a,0x74, +0x9, 0xac,0xbd,0x9, 0xb5,0x29,0xd, 0xf5,0x25,0x74,0x9, 0xac,0xbd,0x9, 0xb5,0x29, +0xe, 0xc4,0x54,0xf0,0xf5,0x26,0x7e,0x73,0x2a,0x4d,0xbc,0x7c,0x28,0x54,0x7e,0xb3, +0x2a,0x9, 0x70,0x2a,0x75,0x29,0xf, 0x7e,0x8, 0x0, 0x25,0xa, 0x3c,0x2e,0x34,0x32, +0xd6,0x6d,0x22,0x74,0x1, 0x12,0x7f,0xd4,0x75,0x29,0x20,0x7e,0x8, 0x0, 0x26,0xa, +0x3c,0x2e,0x34,0x32,0xe0,0x6d,0x22,0x74,0x10,0x12,0x7f,0xd4,0x80,0xe, 0xa, 0x3c, +0x9, 0xb3,0x32,0xd6,0xf5,0x25,0x9, 0xb3,0x32,0xe0,0xf5,0x26,0xa, 0x3c,0x12,0x5e, +0x3d,0xb4,0x1, 0xe, 0xe4,0xa, 0x3c,0x19,0xb3,0x32,0xd6,0x19,0xb3,0x32,0xe0,0x12, +0x35,0xd3,0x7e,0xb3,0x2a,0x64,0xb4,0xff,0x13,0x75,0x25,0x0, 0x74,0x9, 0xac,0xbd, +0x9, 0xb5,0x29,0xc, 0xbe,0xb0,0xff,0x68,0x3, 0x75,0x25,0x1, 0x7e,0x90,0x9, 0xac, +0x9d,0x49,0xb4,0x29,0x8, 0x49,0xa4,0x29,0xa, 0xe5,0x28,0xb4,0x1, 0x2c,0x75,0x27, +0x0, 0x80,0x1d,0x7e,0x71,0x27,0x74,0x9, 0xac,0x7b,0x9, 0xb3,0x33,0x6a,0x54,0xf, +0xbc,0xbc,0x78,0xa, 0x49,0xb3,0x33,0x66,0x49,0xa3,0x33,0x68,0x80,0xc, 0x5, 0x27, +0x90,0x60,0x99,0xe4,0x93,0xbe,0xb1,0x27,0x38,0xd9,0x5e,0xb4,0xf, 0xff,0x5e,0xa4, +0xf, 0xff,0x9, 0x74,0x29,0xc, 0xa, 0x57,0xc4,0x54,0xf0,0x7c,0xab,0xe4,0x2d,0xa5, +0xbe,0x70,0xff,0x68,0x16,0xe5,0x28,0xbe,0xb0,0x1, 0x68,0x2, 0x5, 0x24,0xb, 0xf0, +0xe5,0x28,0xa, 0x5b,0x12,0xb9,0x5c,0x2d,0xb5,0x80,0x4, 0x2e,0xb4,0xc0,0x0, 0x7e, +0x70,0x6, 0xac,0x7e,0x7f,0x6, 0x2d,0x13,0x79,0xb0,0x0, 0x2, 0x7f,0x6, 0x2d,0x13, +0x79,0xa0,0x0, 0x4, 0xe5,0x25,0x7f,0x6, 0x2d,0x13,0x39,0xb0,0x0, 0x6, 0xe5,0x26, +0x2d,0x3d,0x7d,0x2c,0x39,0xb1,0x0, 0x7, 0xb, 0xe0,0xb, 0xd0,0x7e,0x73,0x2a,0x4d, +0xbc,0x7d,0x28,0x2, 0x21,0xbb,0xe5,0x24,0x39,0xb6,0x0, 0x1, 0x7e,0xb3,0x37,0x31, +0xb4,0x1, 0x9, 0x7e,0xb3,0x2a,0x8, 0xb4,0x1, 0x17,0x80,0xd, 0xbe,0xf0,0x0, 0x38, +0x6, 0x7e,0xb3,0x2a,0x8, 0x60,0xa, 0xb2,0xe, 0x12,0x7e,0x81,0x74,0x1, 0x12,0x58, +0xe8,0x7e,0xb3,0x2a,0x7, 0x60,0x5, 0x7f,0x4, 0x12,0x5e,0x61,0xe4,0x7a,0xb3,0x2a, +0xb, 0x7a,0xb3,0x2a,0x7, 0x7a,0xb3,0x2a,0x8, 0x80,0x4, 0xe4,0x12,0x58,0xe8,0x12, +0x5f,0xc2,0xca,0x59,0x7e,0x18,0x29,0x8, 0x7e,0x8, 0x33,0x66,0x12,0x20,0xb9,0x1b, +0xfd,0x4c,0xff,0x78,0xc, 0x12,0x73,0xe5,0x7e,0x8, 0x33,0x66,0x74,0xff,0x12,0x20, +0xde,0xda,0x3b,0x22,0xca,0xf8,0x7e,0x68,0x29,0xbc,0x6c,0xaa,0x80,0x19,0x7e,0x70, +0xff,0x12,0x5e,0x8b,0xe4,0xa, 0x4a,0x19,0xb4,0x1f,0x34,0x74,0xff,0x19,0xb4,0x1f, +0x46,0x19,0xb4,0x1f,0x50,0xb, 0xa0,0x12,0x5e,0x25,0x38,0xe2,0x7e,0x73,0x2a,0x2, +0xa5,0xbf,0x0, 0x23,0x7e,0xb3,0x34,0x4f,0x70,0x2, 0xa1,0xab,0x6c,0xaa,0x80,0x10, +0x7e,0x44,0x7f,0xff,0x12,0x5e,0x95,0x79,0x40,0x0, 0x14,0x12,0x5e,0x45,0xb, 0xa0, +0x12,0x5e,0x25,0x38,0xeb,0xa1,0xab,0x7e,0xb3,0x34,0x4f,0x70,0x3d,0xbe,0x70,0x0, +0x28,0x38,0x6c,0xaa,0x80,0x2a,0x7e,0x90,0x9, 0xac,0x9a,0x49,0x34,0x28,0xae,0x12, +0x5e,0x95,0x79,0x30,0x0, 0x14,0x49,0x34,0x28,0xb0,0x7f,0x6, 0x2d,0x12,0x79,0x30, +0x0, 0x28,0x74,0x1, 0xa, 0x3a,0x19,0xb3,0x1f,0x34,0x19,0xa4,0x28,0xb2,0xb, 0xa0, +0x7e,0xb3,0x2a,0x2, 0xbc,0xba,0x38,0xce,0xa1,0xab,0x6c,0xaa,0x80,0x17,0x12,0x5e, +0x57,0x3e,0x34,0x59,0x43,0x15,0x4e,0x59,0x43,0x15,0x50,0x59,0x43,0x15,0x76,0x59, +0x43,0x15,0x78,0xb, 0xa0,0x12,0x5e,0x25,0x38,0xe4,0x6c,0xaa,0x80,0x41,0x6c,0xff, +0x80,0x36,0x7e,0x70,0x2, 0xac,0x7f,0x7f,0x6, 0x2d,0x13,0x69,0x30,0x0, 0x14,0xbe, +0x34,0x7f,0xff,0x68,0x21,0xa, 0x4f,0x9, 0xb4,0x1f,0x50,0xb4,0xff,0x18,0x12,0x5e, +0x35,0x59,0x32,0x15,0x4e,0x69,0x30,0x0, 0x28,0x59,0x32,0x15,0x50,0x12,0x5e,0x4e, +0x19,0xb4,0x1f,0x50,0x80,0x7, 0xb, 0xf0,0x12,0x5e,0x2d,0x38,0xc5,0xb, 0xa0,0x7e, +0xb3,0x34,0x4f,0xbc,0xba,0x38,0xb7,0x6c,0xaa,0x80,0x28,0xa, 0x3a,0x9, 0xb3,0x1f, +0x46,0xb4,0xff,0x1d,0x6c,0xff,0x80,0x14,0xa, 0x4f,0x9, 0xb4,0x1f,0x50,0xb4,0xff, +0x9, 0x12,0x5e,0x4e,0x19,0xb4,0x1f,0x50,0x80,0x7, 0xb, 0xf0,0x12,0x5e,0x2d,0x38, +0xe7,0xb, 0xa0,0x12,0x5e,0x25,0x38,0xd3,0x6c,0xaa,0x80,0x1a,0x7e,0x70,0x9, 0xac, +0x7a,0x49,0x43,0x28,0xae,0x12,0x5e,0x35,0x59,0x42,0x15,0x76,0x49,0x33,0x28,0xb0, +0x59,0x32,0x15,0x78,0xb, 0xa0,0x7e,0xb3,0x2a,0x2, 0xbc,0xba,0x38,0xde,0x7e,0x34, +0x15,0x4e,0x7a,0x37,0x1f,0x40,0x7e,0x34,0x15,0x76,0x7a,0x37,0x1f,0x42,0x7e,0x34, +0x15,0x9e,0x7a,0x37,0x1f,0x44,0x7e,0x73,0x34,0x4f,0x7a,0x73,0x1f,0x3e,0x7e,0x73, +0x2a,0x2, 0x7a,0x73,0x1f,0x3f,0x7e,0x8, 0x1f,0x3e,0x12,0x4, 0xad,0x6c,0xaa,0x80, +0x59,0x7e,0x70,0xff,0x6c,0xff,0x80,0x19,0x7e,0x50,0x2, 0xac,0x5f,0x49,0x12,0x15, +0x9e,0xa, 0x2a,0xbd,0x21,0x78,0x8, 0xa, 0x3f,0x9, 0x73,0x1f,0x46,0x80,0x7, 0xb, +0xf0,0x12,0x5e,0x2d,0x38,0xe2,0xbe,0x70,0xff,0x68,0x2d,0x12,0x5e,0x8b,0x74,0x1, +0xa, 0x47,0x19,0xb4,0x1f,0x34,0x7e,0x90,0x9, 0xac,0x9a,0x49,0x24,0x28,0xae,0x7e, +0x30,0x2, 0xac,0x37,0x2d,0x1d,0x7d,0xc, 0x79,0x20,0x0, 0x14,0x49,0x44,0x28,0xb0, +0x7e,0x50,0x2, 0xac,0x57,0x12,0x5e,0x45,0xb, 0xa0,0x7e,0x63,0x2a,0x2, 0xbc,0x6a, +0x38,0x9f,0x6c,0xaa,0x80,0x20,0xa, 0x3a,0x9, 0xb3,0x1f,0x34,0xbe,0xb0,0x1, 0x68, +0x13,0x12,0x5e,0x57,0x7f,0x6, 0x2d,0x13,0x79,0x40,0x0, 0x14,0x2d,0x3d,0x7d,0x2c, +0x79,0x41,0x0, 0x28,0xb, 0xa0,0x12,0x5e,0x25,0x38,0xdb,0x7e,0xf3,0x2a,0x2, 0x7a, +0xf3,0x34,0x4f,0x6c,0xaa,0x80,0x66,0xa, 0x3a,0x9, 0xb3,0x1f,0x34,0xb4,0x1, 0x2b, +0x12,0x5e,0x9f,0xb4,0x1, 0x6, 0x74,0x3, 0x39,0xb1,0x0, 0xa, 0xa, 0x3a,0x2d,0x3d, +0x7d,0x2c,0x29,0x31,0x0, 0xa, 0xa5,0xbb,0x3, 0x6, 0xe4,0x7a,0x1b,0xb0,0x80,0x2e, +0xa5,0xbb,0x0, 0x2a,0x74,0x2, 0x7a,0x1b,0xb0,0x80,0x23,0x12,0x5e,0x9f,0xbe,0xb0, +0x2, 0x68,0x2, 0x70,0x14,0x74,0x1, 0x7a,0x1b,0xb0,0x7c,0x2f,0xb, 0xf0,0x7e,0x30, +0x9, 0xac,0x23,0x19,0xa1,0x28,0xb2,0x80,0x5, 0x74,0x3, 0x7a,0x1b,0xb0,0xa, 0x3a, +0x2d,0x3d,0x7d,0x2c,0x7e,0x1b,0xb0,0x39,0xb1,0x0, 0xa, 0xb, 0xa0,0x12,0x5e,0x25, +0x38,0x95,0xda,0xf8,0x22,0x90,0x60,0x99,0xe4,0x93,0xbc,0xba,0x22,0x90,0x60,0x99, +0xe4,0x93,0xbc,0xbf,0x22,0x7e,0x50,0x2, 0xac,0x5a,0x3e,0x24,0x22,0x2d,0x39,0x7d, +0x28,0x7e,0x1b,0xb0,0x22,0x7f,0x6, 0x2d,0x12,0x79,0x40,0x0, 0x28,0x22,0xa, 0x3a, +0x19,0xf3,0x1f,0x46,0x74,0x1, 0x22,0x7e,0x44,0x7f,0xff,0x7e,0x70,0x2, 0xac,0x7a, +0x22,0x6c,0xaa,0x80,0x20,0x74,0x3, 0x12,0xa9,0x99,0x7f,0x10,0x2d,0x34,0x39,0xb1, +0x0, 0xa, 0x12,0x5e,0x57,0x7f,0x70,0x2d,0xf3,0x79,0x47,0x0, 0x14,0x2d,0x31,0x79, +0x41,0x0, 0x28,0xb, 0xa0,0x12,0x5e,0x25,0x38,0xdb,0x22,0x7e,0x50,0x9, 0xac,0x5a, +0x19,0x72,0x28,0xb2,0x22,0x7e,0x50,0x2, 0xac,0x5a,0x7f,0x6, 0x2d,0x12,0x22,0xa, +0x3a,0x2d,0x3d,0x7d,0x2c,0x29,0xb1,0x0, 0xa, 0x22,0xc2,0x3, 0x7e,0xb3,0x16,0x91, +0x60,0x6, 0x7e,0xb3,0x16,0x90,0x70,0x7, 0x12,0x9b,0xdf,0x28,0x2, 0xd2,0x3, 0xa2, +0x3, 0x22,0xca,0xf8,0x7e,0xa3,0x2a,0x2, 0x4c,0xaa,0x78,0x11,0x7e,0xb3,0x2a,0x3, +0xbe,0xb0,0x0, 0x28,0x13,0x74,0x1, 0x7a,0xb3,0x2a,0x7, 0x80,0xb, 0xbe,0xa0,0x0, +0x28,0x6, 0x74,0x1, 0x7a,0xb3,0x2a,0xb, 0x12,0x5f,0xc2,0xca,0x59,0x7e,0x18,0x28, +0xae,0x7e,0x8, 0x29,0x8, 0x12,0x20,0xb9,0x1b,0xfd,0x90,0x61,0x35,0xe4,0x93,0xbe, +0xb0,0x0, 0x28,0x28,0x6c,0xff,0x80,0x1f,0x74,0x9, 0xac,0xbf,0x49,0x35,0x28,0xae, +0x12,0x80,0x16,0x74,0x9, 0xac,0xbf,0x59,0x35,0x29,0x8, 0x49,0x35,0x28,0xb0,0x12, +0x64,0xdb,0x12,0xab,0x9b,0xb, 0xf0,0x12,0x5e,0x2d,0x38,0xdc,0xda,0xf8,0x22,0x2, +0x5f,0x32,0xca,0x79,0x6c,0xff,0x7e,0xd7,0x2a,0x5a,0x6c,0xee,0x80,0x35,0x7c,0xbe, +0x12,0x37,0x6f,0xbd,0x3d,0x48,0x2a,0x7c,0xbe,0x12,0x2f,0xb7,0x60,0x23,0x7e,0xc4, +0x0, 0x9, 0xca,0xc9,0x7e,0x70,0x9, 0xac,0x7e,0x2e,0x34,0x27,0x76,0x6d,0x22,0x7e, +0x30,0x9, 0xac,0x3f,0x2e,0x14,0x28,0xae,0x6d,0x0, 0x12,0x20,0xb9,0x1b,0xfd,0xb, +0xf0,0xb, 0xe0,0x12,0x9c,0xf6,0x38,0xc6,0x7a,0x73,0x28,0x93,0x7a,0xf3,0x2a,0x2, +0xda,0x79,0x22,0x12,0x9d,0xda,0x2, 0x5f,0x89,0x7e,0xa3,0x2a,0x3, 0xbe,0xa0,0x0, +0x38,0x2f,0xbe,0xa3,0x2a,0x2, 0x50,0x19,0x7e,0xb3,0x2a,0xc, 0xbe,0xb3,0x35,0x40, +0x28,0x14,0x7e,0xb3,0x35,0x40,0x4, 0x7a,0xb3,0x35,0x40,0x7a,0xa3,0x2a,0x2, 0x80, +0x5, 0xe4,0x7a,0xb3,0x35,0x40,0x7e,0xb3,0x2a,0x2, 0x70,0x5, 0xe4,0x7a,0xb3,0x2a, +0xb, 0x22,0x90,0x60,0x99,0xe4,0x93,0x7c,0xab,0x74,0x9, 0xa4,0x22,0x12,0x68,0x38, +0x2, 0x5f,0xd3,0x7e,0xb3,0x2a,0x9, 0x70,0x24,0x7e,0xa3,0x34,0xa2,0x4c,0xaa,0x78, +0x3, 0xe4,0x80,0x7, 0xbe,0xa0,0x2, 0x78,0x6, 0x74,0x3, 0x7a,0xb3,0x34,0xad,0x7e, +0x73,0x34,0xae,0xbe,0x73,0x34,0xad,0x28,0x4, 0x7a,0x73,0x34,0xad,0x22,0xff,0xff, +0x70,0x8f,0x0, 0xff,0x51,0xae,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x34,0x36,0x31,0x1, 0xc3,0x1, 0x34,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x7, 0xf8,0x30,0x30,0x31,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0xd, 0x18,0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0xd, 0xc, 0xb, 0xa, 0x9, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x11,0x12,0x13,0x14,0x18,0x17,0xc, 0xd, 0xe, 0xf, 0x15, +0x16,0x10,0xb, 0xa, 0x9, 0x8, 0x7, 0x6, 0x5, 0x4, 0x3, 0x2, 0x1, 0x0, 0x0, 0x0, +0x0, 0x5, 0x0, 0x4, 0xff,0x23,0x1c,0x2, 0xdf,0xa, 0x1e,0xa, 0x64,0x1e,0x10,0x0, +0x4, 0x0, 0x64,0xd, 0xac,0x0, 0xc8,0x3, 0x1, 0x0, 0x0, 0x17,0x2, 0x6, 0xa, 0x0, +0x0, 0x0, 0x46,0x0, 0xe6,0x1, 0x18,0x1, 0xb8,0x1, 0xf4,0x2, 0x94,0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8c,0x1, 0x68,0x2, 0x44,0x0, 0x0, 0x0, 0x0, 0x7, +0xd0,0x0, 0x14,0x1, 0x19,0x3d,0x1, 0xf4,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e, +0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e, +0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x64,0x64,0x64,0x64,0x64, +0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64, +0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x0, 0x4, 0x5d,0x20,0x1, 0x20,0x2, 0x0, 0x0, +0x0, 0x0, 0x1, 0xf4,0x69,0x40,0xd, 0x18,0x25,0x17,0x25,0x6, 0x80,0x17,0x25,0x6, +0x80,0x8, 0x10,0x4, 0x20,0x1, 0x0, 0x2, 0xd0,0x32,0x32,0x1, 0xd8,0x1, 0xec,0x0, +0xe1,0x0, 0xe1,0x5, 0x0, 0x37,0x37,0x1, 0xae,0x1, 0xba,0x0, 0xe0,0x0, 0xe0,0x0, +0xb4,0x0, 0xa0,0x0, 0x96,0x1, 0x18,0x1, 0x18,0x1, 0x18,0xa, 0x0, 0x1, 0x68,0x1, +0x5, 0xb, 0x1e,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22,0x15,0x0, 0x1, 0x54,0x1, 0x0, 0x7, +0x1, 0x51,0x1, 0x14,0x0, 0x0, 0x1, 0x1, 0x10,0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x55,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x96,0x2, 0x26,0x0, 0x50,0x0, 0x27, +0x0, 0x4, 0x0, 0x4, 0x1, 0x4, 0x1, 0x90,0x0, 0xc8,0x0, 0x50,0x1, 0xf4,0x0, 0x96, +0x1, 0x2c,0x1, 0x2c,0x4, 0x3d,0x2, 0x5d,0x69,0x20,0x26,0x3, 0x52,0x59,0x20,0x34, +0x2, 0x5a,0x64,0x20,0x46,0x2, 0x47,0x49,0x30,0x3d,0x2, 0x5d,0x69,0x20,0x3d,0x2, +0x5d,0x69,0x20,0x3d,0x2, 0x5d,0x69,0x20,0x3d,0x2, 0x5d,0x69,0x20,0x4, 0x5, 0x25, +0x26,0x27,0x28,0x29,0x4, 0x0, 0xd2,0x2, 0x30,0x64,0x0, 0xc8,0x1, 0x5e,0x0, 0x64, +0x0, 0x64,0x0, 0x96,0x0, 0x64,0xb, 0xb8,0x8, 0x5, 0x6, 0x80,0x1, 0x90,0x1, 0x2c, +0x1, 0xc2,0x3, 0x20,0xf, 0xa0,0x1, 0x3, 0x20,0x4, 0xb0,0x3, 0x20,0x1, 0x2, 0x2, +0x4, 0x4, 0x6, 0x40,0x1, 0x2c,0x1, 0x18,0x1, 0x90,0x1, 0x90,0x1, 0x90,0x1, 0x90, +0x1, 0x2c,0x1, 0x90,0x1, 0x7c,0x1, 0x7c,0x0, 0x50,0x0, 0x46,0x0, 0x78,0x0, 0x78, +0x0, 0x78,0x0, 0x78,0x0, 0x78,0x14,0x8, 0x0, 0x50,0x2, 0x80,0x0, 0x50,0x4, 0xb0, +0x0, 0x32,0x1, 0xf4,0x1, 0xf4,0x3, 0x20,0x0, 0x14,0x0, 0x37,0x0, 0x1e,0x0, 0x80, +0x0, 0xb4,0x0, 0xa0,0x0, 0x3c,0x3, 0xe8,0x1, 0x40,0x0, 0x5a,0x0, 0x3c,0x3, 0xe8, +0x0, 0x20,0x2, 0xb0,0x0, 0x0, 0x5, 0x0, 0x0, 0x64,0x0, 0xa0,0x0, 0xa0,0x13,0x88, +0x1, 0x2c,0x0, 0xa0,0x0, 0xa0,0x10,0x0, 0xc, 0x0, 0xa, 0xb, 0x5, 0x5, 0x7, 0x8, +0x6, 0x6, 0xc, 0x64,0xc8,0x7e,0x8, 0x37,0xf3,0x12,0x62,0xdf,0x7e,0x8, 0x37,0xfb, +0x12,0x62,0xdf,0x12,0x62,0xf4,0x12,0x62,0xfb,0x2, 0x62,0xbc,0x7e,0x37,0x37,0xf3, +0xbe,0x34,0x0, 0x0, 0x28,0x18,0x7e,0x73,0x39,0x7, 0xbe,0x70,0x5, 0x50,0xf, 0x7e, +0xb3,0x37,0x31,0x70,0x9, 0x12,0x63,0x2, 0x74,0x1, 0x7a,0xb3,0x37,0x6, 0x22,0xb, +0xa, 0x30,0xe5,0x4e,0xa, 0x2b,0xbd,0x32,0x28,0x4, 0x9d,0x32,0x80,0x2, 0x6d,0x33, +0x1b,0xa, 0x30,0x22,0x7e,0x8, 0x2b,0xb7,0x2, 0x62,0xdf,0x7e,0x8, 0x38,0xe6,0x2, +0x62,0xdf,0x6d,0x33,0x7a,0x37,0x38,0x83,0x22,0xca,0xf8,0x7e,0xa3,0x2a,0x2, 0x7e, +0xb3,0x2a,0x3, 0xbe,0xa0,0x1, 0x38,0x21,0xbe,0xb0,0x1, 0x38,0x1c,0x7e,0x47,0x28, +0x86,0xbe,0x44,0x0, 0x1e,0x28,0x2, 0x80,0x10,0x7e,0xf3,0x2f,0x80,0x4c,0xff,0x68, +0x17,0x7e,0x47,0x2b,0xb7,0x4d,0x44,0x78,0xf, 0x12,0x63,0x2, 0x74,0x1, 0x7a,0xb3, +0x38,0x85,0x7a,0xb3,0x37,0x6, 0x80,0x35,0x4c,0xaa,0x78,0x36,0xb4,0x1, 0x33,0x7e, +0x37,0x2b,0xb7,0x7a,0x37,0x2f,0x82,0x7e,0xb3,0x2f,0x80,0xb4,0x3, 0x1f,0x7e,0x37, +0x2b,0xb7,0xbe,0x34,0x0, 0x0, 0x28,0x15,0x74,0x4, 0x7a,0xb3,0x2f,0x80,0x7e,0x37, +0x2f,0x98,0x7e,0x27,0x2f,0x9a,0x12,0x64,0x1a,0x81,0x13,0x80,0x0, 0x12,0xbd,0xdd, +0x81,0x13,0x7e,0xc7,0x29,0x8, 0x7e,0xd7,0x29,0xa, 0x4c,0xff,0x78,0x19,0x70,0x57, +0xbe,0xa0,0x1, 0x78,0x52,0x7d,0x3c,0x7d,0x2d,0x12,0xbd,0x78,0x12,0x64,0x16,0x74, +0x1, 0x7a,0xb3,0x2f,0x80,0x80,0x40,0xbe,0xf0,0x1, 0x78,0x2e,0x7e,0x27,0x2f,0x88, +0x9e,0x27,0x2f,0x90,0x7e,0x14,0x62,0x8a,0x12,0x64,0xd3,0xbd,0x23,0x38,0x13,0x7e, +0x27,0x2f,0x96,0x9e,0x27,0x2f,0x8e,0x7e,0x14,0x62,0x8c,0x12,0x64,0xd3,0xbd,0x23, +0x28,0x15,0x74,0x3, 0x7a,0xb3,0x2f,0x80,0x80,0x5, 0xbe,0xf0,0x3, 0x78,0x8, 0x7a, +0xc7,0x2f,0x98,0x7a,0xd7,0x2f,0x9a,0x7e,0xb3,0x2f,0x80,0x60,0x26,0x7d,0x3c,0x7d, +0x2d,0x7e,0x17,0x2b,0xbb,0x7e,0x7, 0x2b,0xbd,0x12,0x66,0xce,0xa, 0x2b,0x7e,0x73, +0x2f,0x7f,0xa, 0x37,0xbd,0x32,0x58,0xb, 0x12,0x64,0x16,0x7a,0xc7,0x2b,0xbb,0x7a, +0xd7,0x2b,0xbd,0xda,0xf8,0x22,0x7d,0x3c,0x7d,0x2d,0x7d,0x42,0x7d,0x13,0x7d,0x24, +0x12,0x67,0xca,0x7d,0x31,0x12,0x85,0xfd,0x2, 0x64,0x2b,0x7e,0x3, 0x2f,0xa8,0xbe, +0x0, 0xf0,0x50,0x2, 0x81,0xc4,0x81,0xb9,0x6c,0x99,0x7e,0xb3,0x2f,0x7f,0xbe,0xb0, +0x20,0x50,0x5, 0x4, 0x7a,0xb3,0x2f,0x7f,0x7e,0x1f,0x2b,0xbf,0x7a,0x1f,0x1f,0x34, +0x7e,0x80,0x1, 0x80,0x49,0x74,0x4, 0xac,0xb8,0x49,0x35,0x2b,0xbf,0x49,0x25,0x2b, +0xc1,0x7e,0x17,0x1f,0x34,0x7e,0x7, 0x1f,0x36,0x12,0x66,0xce,0x7c,0x1b,0x7e,0x3, +0x2f,0x7f,0xbc,0x1, 0x38,0x26,0xb, 0x90,0x7e,0x70,0x4, 0xac,0x78,0x2e,0x34,0x2b, +0xbf,0x7e,0x14,0x1f,0x34,0x74,0x4, 0x12,0x1f,0x8c,0x7e,0x34,0x1f,0x34,0x7e,0x30, +0x4, 0xac,0x39,0x2e,0x14,0x2b,0xbf,0x74,0x4, 0x12,0x1f,0x8c,0xb, 0x80,0x7e,0x3, +0x2f,0xa8,0xbc,0x8, 0x38,0xaf,0xa, 0x59,0xb, 0x54,0x7c,0xb, 0x7a,0x3, 0x2f,0xa8, +0x7e,0x3, 0x2f,0x7f,0xbe,0x0, 0x20,0x50,0xb, 0x7e,0x3, 0x2f,0xa8,0xbe,0x0, 0xec, +0x40,0x2, 0x81,0x38,0x22,0x7d,0x34,0x9e,0x34,0x0, 0x40,0x7d,0x2e,0x9d,0x23,0x7e, +0x14,0x61,0x49,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0x30,0x22,0x7d,0xe3,0x9f,0x11,0x7e, +0x14,0x61,0x43,0x12,0x83,0x62,0x90,0x61,0x35,0xe4,0x93,0x70,0x3, 0x7d,0x3e,0x22, +0x90,0x61,0x36,0xe4,0x93,0xb4,0x1, 0x6, 0x7e,0x83,0x2a,0x6f,0x80,0x4, 0x7e,0x83, +0x2a,0x70,0x12,0x87,0xd4,0xbe,0xe4,0x0, 0x3f,0x38,0x1e,0x7e,0x24,0x0, 0x3f,0x9d, +0x2e,0x7e,0x14,0x61,0x47,0x12,0x64,0xd3,0x12,0x66,0x10,0x90,0x61,0x45,0x12,0x66, +0x7, 0x48,0x2, 0x7f,0x10,0x9f,0x1, 0x7f,0x10,0x12,0xc1,0x3a,0xbe,0xa0,0x0, 0x28, +0x32,0x7d,0x14,0x9e,0x14,0x0, 0x3f,0xbd,0x1e,0x38,0x13,0x12,0x66,0xb8,0x40,0xe, +0x12,0x64,0xc5,0x12,0x65,0xfa,0x48,0x32,0x7f,0x10,0x1b,0x1c,0x80,0x2c,0x12,0x66, +0xb8,0x50,0x31,0x7d,0x34,0x9e,0x34,0x0, 0x20,0x12,0x64,0xcb,0x12,0x66,0x10,0x7d, +0x1f,0x80,0x1d,0x4c,0xaa,0x78,0x1d,0x12,0x66,0xb1,0xbd,0x5e,0x38,0x16,0x12,0x64, +0xc5,0x12,0x65,0xfa,0x48,0x4, 0x7f,0x10,0x1b,0x1c,0xa, 0xb, 0x7d,0x1f,0x9d,0x10, +0x6d,0x0, 0x2f,0x10,0xbe,0xe4,0x0, 0x3f,0x28,0x6f,0x12,0x66,0xb1,0xbd,0x5e,0x28, +0x68,0x7d,0xd4,0xb, 0xd4,0x1e,0xd4,0x7d,0x5d,0x1b,0x54,0xbd,0x5e,0x40,0xc, 0x7d, +0x35,0x9d,0x3e,0x6d,0x22,0x7e,0x14,0x61,0x4b,0x80,0xa, 0x7d,0x3e,0x9d,0x3d,0x6d, +0x22,0x7e,0x14,0x61,0x4d,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0x10,0x12,0x1e,0xfc,0x12, +0x66,0x14,0xbd,0x5e,0x7d,0x1f,0x40,0xc, 0x1e,0x14,0x1b,0x14,0x6d,0x0, 0x9f,0x1, +0x7f,0x10,0x80,0x6, 0x1e,0x14,0x6d,0x0, 0x2f,0x10,0x90,0x61,0x45,0x12,0x66,0x7, +0x58,0x4, 0x7f,0x10,0x80,0x13,0x90,0x61,0x46,0xe4,0x93,0xa, 0xb, 0x7d,0x1f,0x9d, +0x10,0x6d,0x0, 0xbf,0x10,0x8, 0x2, 0x7f,0x10,0x22,0xad,0x32,0x6d,0x22,0x7c,0x76, +0x7c,0x65,0x1a,0x24,0x90,0x61,0x46,0xe4,0x93,0xa, 0x1b,0x6d,0x0, 0xbf,0x10,0x22, +0xad,0x32,0x6d,0x22,0x7c,0x76,0x7c,0x65,0x1a,0x24,0x22,0x7e,0x73,0x36,0x69,0x7a, +0x73,0x36,0xdf,0x7e,0x27,0x38,0xd6,0x7e,0x14,0x61,0xc8,0x12,0x64,0xd3,0x1e,0x34, +0xbd,0x32,0x50,0x6, 0x74,0x1, 0x7a,0xb3,0x36,0x69,0x7e,0x14,0x61,0xc8,0x12,0x64, +0xd3,0xbd,0x32,0x50,0x8, 0xe4,0x7a,0xb3,0x36,0x67,0x12,0x67,0x62,0x7e,0x37,0x36, +0x6f,0xbd,0x32,0x50,0x4, 0x7a,0x27,0x36,0x6f,0x12,0xc1,0x12,0x38,0xa, 0x12,0x8f, +0xf3,0x38,0x5, 0x12,0x8f,0xeb,0x28,0x3d,0x12,0x67,0x69,0x7e,0x14,0x61,0xc8,0x12, +0x64,0xd3,0x1e,0x34,0x1e,0x34,0xbd,0x32,0x28,0x21,0x7e,0xb3,0x36,0x67,0x4, 0x7a, +0xb3,0x36,0x67,0x7e,0x73,0x36,0x67,0xbe,0x70,0x32,0x28,0x14,0x74,0x32,0x7a,0xb3, +0x36,0x67,0x12,0xc0,0x95,0x7a,0xb3,0x36,0xdc,0x80,0x5, 0xe4,0x7a,0xb3,0x36,0x67, +0x7d,0x32,0x2, 0xad,0xac,0x2, 0x66,0xa8,0x12,0x67,0xc0,0xe4,0x7a,0xb3,0x36,0x75, +0x22,0x7d,0x54,0x9e,0x54,0x0, 0x3f,0x22,0x7d,0x4, 0x9e,0x4, 0x0, 0x1f,0x7e,0xd4, +0x60,0xd1,0x7e,0xc4,0x0, 0xff,0xb, 0x6a,0x10,0x2d,0x10,0xbd,0x1e,0x22,0x7d,0x51, +0x7d,0x12,0x9d,0x35,0x12,0x21,0x0, 0x7c,0xa7,0x12,0x67,0xeb,0x7c,0xb7,0xbc,0xba, +0x50,0x3, 0x7c,0xba,0x22,0x22,0x7d,0x13,0x7e,0x54,0x62,0x58,0x12,0x67,0x15,0x50, +0x21,0x7e,0x54,0x62,0x5a,0x12,0x67,0x15,0x28,0x18,0x7e,0x14,0x62,0x5c,0x12,0x64, +0xd3,0xbd,0x32,0x50,0xd, 0x7e,0x14,0x62,0x5e,0x12,0x64,0xd3,0xbd,0x32,0x28,0x2, +0xe4,0x22,0x74,0x1, 0x22,0x7e,0x44,0x0, 0xff,0xb, 0x2a,0x30,0xbd,0x31,0x22,0x12, +0x66,0x1b,0x2, 0x67,0x25,0x7e,0xb3,0x36,0x69,0x60,0xf, 0x74,0x1, 0x7a,0xb3,0x36, +0x71,0x7e,0xb3,0x36,0xdf,0x70,0x3, 0x12,0xaf,0x2f,0x7e,0xb3,0x36,0x71,0xb4,0x1, +0xc, 0x74,0x3, 0x12,0x67,0x59,0x12,0x23,0x9e,0x3e,0x34,0x80,0x7, 0xe4,0x12,0x67, +0x59,0x12,0x23,0x9e,0x7a,0x37,0x2a,0x62,0x22,0x7a,0xb3,0x34,0xae,0x7e,0x34,0x61, +0x5b,0x22,0x74,0x2, 0x7a,0xb3,0x36,0x69,0x22,0x7e,0xb3,0x36,0x75,0xb4,0x1, 0x3, +0x2, 0x67,0x62,0x7e,0xb3,0x36,0xdb,0x4, 0x7a,0xb3,0x36,0xdb,0x7e,0xb3,0x36,0x69, +0xb4,0x2, 0x18,0x7e,0xb3,0x36,0xda,0x4, 0x7a,0xb3,0x36,0xda,0xb4,0x1, 0x6, 0x74, +0x1, 0x7a,0xb3,0x36,0xdb,0x74,0x1, 0x7a,0xb3,0x36,0x69,0x7e,0x73,0x36,0xda,0xbe, +0x70,0x3, 0x40,0xf, 0x74,0x1, 0x7a,0xb3,0x36,0x75,0x12,0x67,0x62,0x12,0xaf,0x2f, +0x12,0x67,0xc0,0x7e,0x73,0x36,0xdb,0xbe,0x70,0xa, 0x28,0x3, 0x2, 0x67,0xc0,0x22, +0xe4,0x7a,0xb3,0x36,0xdb,0x7a,0xb3,0x36,0xda,0x22,0x7e,0xa3,0x2f,0xa8,0xbe,0xa0, +0xf0,0x50,0x17,0x74,0x4, 0xa4,0x59,0x35,0x2b,0xbf,0x12,0x67,0xf2,0x59,0x25,0x2b, +0xc1,0x7e,0xb3,0x2f,0xa8,0x4, 0x7a,0xb3,0x2f,0xa8,0x22,0x7d,0x31,0x9d,0x30,0x2, +0x21,0x0, 0x7e,0xa3,0x2f,0xa8,0x74,0x4, 0xa4,0x22,0x7e,0x73,0x28,0x93,0x7a,0x73, +0x28,0x94,0x7e,0x73,0x2a,0x2, 0x7a,0x73,0x2a,0x3, 0xe4,0x7a,0xb3,0x2a,0x6, 0x22, +0x12,0xc0,0x25,0x12,0x63,0x2, 0x7a,0x37,0x39,0x4, 0x12,0x69,0x87,0x12,0x28,0x48, +0x2, 0x68,0x23,0x12,0x69,0x84,0x50,0x4, 0x74,0x19,0x80,0x2, 0x74,0x3, 0x7a,0xb3, +0x34,0x88,0xe4,0x7a,0xb3,0x34,0x89,0x22,0xca,0x79,0x7e,0x13,0x2a,0x2, 0x7e,0x78, +0x29,0xbc,0x12,0x69,0x84,0xe4,0x33,0x7c,0xb, 0x4c,0x0, 0x68,0x8, 0x7e,0x30,0x19, +0x7e,0xa0,0x5, 0x80,0x6, 0x7e,0x30,0x3, 0x7e,0xa0,0x1, 0xa5,0xb9,0x0, 0x5, 0x12, +0x68,0x23,0x21,0x6d,0xbc,0x20,0x50,0x3, 0x12,0x68,0x23,0x6c,0x0, 0x21,0x62,0x7e, +0x70,0x9, 0xac,0x70,0x9, 0x93,0x29,0xc, 0xbe,0x90,0xff,0x78,0x2, 0x21,0x60,0xa, +0x29,0x7f,0x67,0x2d,0xd2,0x7e,0x6b,0x80,0xbe,0x80,0x2, 0x68,0x2, 0x21,0x43,0x12, +0x69,0x7a,0x49,0x33,0x29,0x8, 0x9d,0x32,0x12,0x21,0x0, 0x7d,0xd3,0x7e,0x70,0x4, +0xac,0x79,0x49,0x23,0x35,0x43,0x12,0x69,0x70,0x9d,0x32,0x12,0x21,0x0, 0x7d,0xc3, +0x7e,0x73,0x34,0x88,0xa, 0x27,0xbd,0x2d,0x28,0x53,0xbd,0x2c,0x28,0x4f,0x12,0x69, +0x7a,0x7e,0xf0,0x9, 0xac,0xf0,0x59,0x27,0x29,0x8, 0x7e,0x50,0x4, 0xac,0x59,0x49, +0x22,0x35,0x43,0x7e,0xf0,0x9, 0xac,0xf0,0x59,0x27,0x29,0xa, 0xbe,0x10,0x0, 0x28, +0x2, 0x1b,0x10,0xa5,0xb9,0x0, 0x79,0x7e,0xb3,0x34,0x89,0x4, 0x7a,0xb3,0x34,0x89, +0x7e,0x63,0x34,0x89,0xbe,0x60,0x32,0x40,0x67,0xe4,0x7a,0xb3,0x34,0x89,0x7e,0xb3, +0x34,0x88,0xbc,0xb3,0x50,0x5a,0x4, 0x7a,0xb3,0x34,0x88,0x80,0x53,0x7e,0x50,0x9, +0xac,0x50,0x49,0xb2,0x29,0x8, 0x7e,0xf0,0x4, 0xac,0xf9,0x59,0xb7,0x35,0x41,0x49, +0x22,0x29,0xa, 0x59,0x27,0x35,0x43,0xbc,0x73,0x28,0x6, 0x7a,0xa3,0x34,0x88,0x80, +0xb, 0xbc,0x7a,0x28,0x7, 0x7c,0xb7,0x14,0x7a,0xb3,0x34,0x88,0xe4,0x7a,0xb3,0x34, +0x89,0x80,0x1d,0x4c,0x88,0x78,0x19,0x7e,0x70,0x9, 0xac,0x70,0x49,0x33,0x29,0x8, +0x7e,0x50,0x4, 0xac,0x59,0x59,0x32,0x35,0x41,0x12,0x69,0x70,0x59,0x32,0x35,0x43, +0xb, 0x0, 0x90,0x60,0x99,0xe4,0x93,0xbc,0xb0,0x28,0x2, 0x1, 0x6f,0xda,0x79,0x22, +0x7e,0x70,0x9, 0xac,0x70,0x49,0x33,0x29,0xa, 0x22,0x7e,0x50,0x4, 0xac,0x59,0x49, +0x22,0x35,0x41,0x22,0xa2,0x8, 0x22,0x7e,0x34,0xd, 0xac,0x12,0x26,0x5b,0x12,0x7a, +0x2d,0x12,0x69,0xab,0x2, 0x69,0x97,0x30,0xf, 0x10,0x12,0x6e,0x8f,0x50,0x3, 0x12, +0x6f,0x6e,0x12,0x6a,0x50,0x12,0x69,0xd1,0xc2,0xf, 0x22,0x7e,0xb3,0x2b,0x1e,0x70, +0x1f,0x12,0x26,0x57,0x12,0x2f,0xf4,0x50,0xfb,0x12,0x6a,0x50,0x12,0x88,0x17,0x20, +0xf, 0x3, 0x12,0x69,0xd1,0x74,0x2, 0x7a,0xb3,0x2b,0x1e,0xe4,0x7a,0xb3,0x16,0x91, +0x22,0xca,0x3b,0x7e,0xb3,0x2b,0xf, 0x7a,0xb3,0x1f,0x33,0x7e,0xf3,0x2b,0x62,0x12, +0x87,0x56,0x7c,0xdb,0xbe,0xd0,0xff,0x68,0x64,0x6c,0xcc,0x12,0xc0,0xcc,0xf5,0x2a, +0x7e,0x73,0x2b,0xf, 0xbe,0x71,0x2a,0x68,0x36,0x7e,0x70,0x4, 0xac,0x7d,0xa, 0x2c, +0x12,0x91,0x67,0x7c,0xeb,0xbe,0xe0,0x2, 0x38,0x43,0xa, 0xe, 0x7e,0x14,0x2, 0xe0, +0xad,0x10,0x2e,0x14,0x16,0x93,0x6d,0x0, 0x7a,0xd, 0x2b,0x7e,0x70,0x1d,0xac,0x7e, +0x2e,0x34,0x37,0x44,0x6d,0x22,0x7a,0x1f,0x37,0x40,0x7c,0xbc,0x12,0x6c,0x20,0xb, +0xc0,0xbe,0xc0,0x4, 0x40,0xb5,0x7e,0x73,0x2b,0x62,0xbc,0x7f,0x68,0x6, 0x7a,0xf3, +0x2b,0x62,0xd2,0xc, 0xd2,0x3, 0x7e,0xb3,0x1f,0x33,0x12,0x6d,0x13,0xda,0x3b,0x22, +0x7e,0xf, 0x13,0x8a,0x7e,0x18,0x8, 0xa, 0xca,0x3b,0x7a,0x1d,0x2a,0x7f,0x30,0x12, +0xc0,0x1b,0x7a,0x55,0x32,0x7e,0xb3,0x2b,0x1d,0xf5,0x2f,0xe4,0x7a,0xb3,0x2b,0x1d, +0x7f,0x3, 0x7e,0x1d,0x2a,0x12,0x79,0x7a,0x12,0xc0,0x9f,0x12,0xc0,0x42,0x75,0x2e, +0x0, 0x12,0x4e,0x6e,0x30,0xb, 0xfd,0x74,0x1, 0x12,0xc1,0x22,0x7e,0x14,0x40,0x0, +0x7d,0x21,0x7d,0x7, 0x12,0x6a,0xd4,0x12,0xb3,0x89,0x6d,0x33,0x80,0x19,0x7e,0x35, +0x30,0x3e,0x34,0x7f,0x3, 0x2d,0x13,0xb, 0xa, 0x20,0x7e,0xd, 0x2a,0x2d,0x13,0x12, +0x7b,0x20,0x7e,0x35,0x30,0xb, 0x34,0x7a,0x35,0x30,0x7e,0x35,0x32,0xbe,0x35,0x30, +0x38,0xdc,0x5, 0x2e,0xe5,0x2e,0xbe,0xb0,0x1, 0x40,0xb6,0xe5,0x2f,0x7a,0xb3,0x2b, +0x1d,0xda,0x3b,0x22,0x7e,0xb3,0x2a,0x6d,0xca,0x3b,0x7c,0xdb,0x7a,0x5, 0x39,0x7d, +0x71,0x7a,0x25,0x37,0x7a,0x35,0x35,0x12,0x6e,0x8f,0x50,0x7c,0x6c,0xcc,0x80,0x11, +0x7e,0x73,0x2a,0x6e,0x12,0x6b,0xff,0x12,0x6b,0xe5,0x7e,0x34,0x34,0x0, 0x12,0x6c, +0x8, 0x12,0x6d,0x34,0x38,0xea,0x6c,0xcc,0x80,0x58,0x7e,0xa3,0x2a,0x6e,0x7c,0x7a, +0x12,0x6b,0xff,0x75,0x3b,0x0, 0x80,0x27,0x7e,0xb3,0x37,0xb1,0xbe,0xb1,0x3b,0x7e, +0x70,0x4, 0x28,0x8, 0xac,0x7c,0x49,0x43,0x3, 0x60,0x80,0x6, 0xac,0x7c,0x49,0x43, +0x3, 0x62,0x7e,0x71,0x3b,0x74,0x2, 0xac,0x7b,0x59,0x43,0x34,0x50,0x5, 0x3b,0x7e, +0xb3,0x2a,0x70,0xbe,0xb1,0x3b,0x38,0xd0,0x12,0xc0,0xba,0x68,0xb, 0x7e,0x34,0x10, +0x0, 0x74,0x2, 0xa4,0x59,0x35,0x34,0x4e,0x12,0x6b,0xe5,0x7e,0x34,0x34,0x50,0x12, +0x6c,0x8, 0xbc,0xdc,0x38,0xa4,0x80,0x2c,0x7a,0xd3,0x25,0xb6,0x7e,0x73,0x2a,0x70, +0x7a,0x73,0x25,0xb7,0xe4,0x7a,0xb3,0x25,0xb9,0x74,0x6, 0x7a,0xb3,0x25,0xb8,0x7a, +0x77,0x25,0xba,0x7a,0x77,0x25,0xbe,0x7e,0x8, 0x25,0xb6,0x7e,0x73,0x2b,0x1f,0xa, +0x37,0x12,0xe, 0x37,0x7d,0x37,0x12,0x7f,0x78,0x7e,0x35,0x39,0x7a,0x37,0x25,0xbe, +0xe4,0x7a,0xb3,0x25,0xb8,0x12,0x6b,0xf6,0x7a,0xd3,0x25,0xb6,0x7e,0xb3,0x2b,0x1d, +0x70,0xf, 0xe4,0x7a,0xb3,0x25,0xb9,0x7a,0x77,0x25,0xba,0x7e,0x34,0x0, 0x20,0x80, +0x16,0x74,0x1, 0x7a,0xb3,0x25,0xb9,0x7e,0x35,0x35,0x7a,0x37,0x25,0xba,0x7e,0x35, +0x37,0x7a,0x37,0x25,0xbc,0x6d,0x33,0x7a,0x37,0x25,0xc0,0x7e,0x8, 0x25,0xb6,0x12, +0xd, 0x7, 0xda,0x3b,0x22,0x74,0xc, 0x7a,0xb3,0x25,0xb8,0x74,0x1, 0x7a,0xb3,0x25, +0xb6,0xe4,0x7a,0xb3,0x25,0xb9,0x7e,0x73,0x2a,0x6e,0x7a,0x73,0x25,0xb7,0x22,0xac, +0x7c,0x3e,0x34,0x7d,0xf7,0x2d,0xf3,0x22,0x7a,0x37,0x25,0xba,0x7d,0x3f,0x7a,0x37, +0x25,0xbc,0x7a,0x37,0x25,0xbe,0x7e,0x8, 0x25,0xb6,0x12,0x7, 0x9b,0xb, 0xc0,0x22, +0xca,0x3b,0x7a,0xd, 0x2f,0x7c,0xcb,0x7e,0xb3,0x2b,0x1d,0xf5,0x33,0x7e,0xb3,0x2b, +0xf, 0xf5,0x34,0x7e,0xd3,0x2b,0x14,0x7e,0xe3,0x2b,0x1f,0x7e,0xf3,0x2b,0x20,0x7e, +0x34,0x0, 0x38,0xca,0x39,0x7e,0x18,0x34,0x0, 0x7e,0x8, 0x24,0xf2,0x12,0x20,0xb9, +0x1b,0xfd,0x7e,0x34,0x0, 0x8c,0xca,0x39,0x7e,0x18,0x3, 0x60,0x7e,0x8, 0x25,0x2a, +0x12,0x20,0xb9,0x1b,0xfd,0x7c,0xbc,0x12,0xb3,0x54,0x74,0x1, 0x7a,0xb3,0x2b,0x1d, +0x74,0x5, 0xac,0xbc,0x12,0xc0,0x39,0x74,0x5, 0xac,0xbc,0x12,0x6f,0xff,0x74,0x5, +0xac,0xbc,0x12,0xc0,0x30,0x74,0x5, 0xac,0xbc,0x9, 0x75,0x26,0x37,0xbe,0x73,0x2b, +0x62,0x68,0x6, 0x7a,0x73,0x2b,0x62,0xd2,0xc, 0xc2,0x3, 0x12,0xc0,0xcc,0x12,0x6d, +0x13,0x12,0x4e,0x67,0x30,0xb, 0xfd,0x74,0x1, 0x12,0x0, 0xe, 0x7e,0x14,0x40,0x0, +0x7d,0x31,0x7e,0x2f,0x13,0x86,0x7d,0x25,0x7e,0x4, 0xd, 0xc8,0x12,0x6a,0xd4,0x12, +0xc0,0x1b,0x7a,0x55,0x35,0x7e,0xd, 0x2f,0x7e,0x18,0xd, 0xc8,0x12,0xa8,0xef,0x12, +0xa9,0xc9,0xe5,0x33,0x7a,0xb3,0x2b,0x1d,0xe5,0x34,0x7a,0xb3,0x2b,0xf, 0x7a,0xd3, +0x2b,0x14,0x7a,0xe3,0x2b,0x1f,0x7a,0xf3,0x2b,0x20,0x7e,0x34,0x0, 0x38,0xca,0x39, +0x7e,0x18,0x24,0xf2,0x7e,0x8, 0x34,0x0, 0x12,0x20,0xb9,0x1b,0xfd,0x7e,0x34,0x0, +0x8c,0xca,0x39,0x7e,0x18,0x25,0x2a,0x7e,0x8, 0x3, 0x60,0x12,0x20,0xb9,0x1b,0xfd, +0xda,0x3b,0x22,0x7a,0xb3,0x2b,0xf, 0x12,0x6e,0x29,0x30,0xc, 0xa, 0x12,0xaf,0x1d, +0x30,0x3, 0x4, 0xe4,0x12,0xa, 0x66,0x30,0x3, 0x9, 0x12,0xae,0xd2,0x12,0x8d,0xef, +0x2, 0x8c,0x90,0x22,0x7e,0x73,0x2a,0x6f,0xbc,0x7c,0x22,0xca,0x3b,0x7f,0x61,0x7f, +0x50,0x7e,0x14,0x22,0xe2,0x7e,0x4, 0x0, 0xff,0x69,0x30,0x0, 0x2, 0xb, 0xa, 0x20, +0x7a,0x1d,0x2c,0x7e,0x73,0x2a,0x6d,0xa, 0x37,0x3e,0x34,0xca,0x39,0x7f,0x16,0x7f, +0x5, 0x12,0x20,0xb9,0x1b,0xfd,0x6c,0xdd,0x12,0xa7,0x10,0x7a,0xb3,0x1f,0x34,0x6c, +0xcc,0x80,0x4f,0x12,0x6e,0x19,0x40,0x48,0x12,0x6e,0xf, 0x50,0x43,0x74,0x2, 0xac, +0xbc,0x7f,0x16,0x2d,0x35,0xb, 0x1a,0x10,0x7d,0x3f,0x12,0x21,0x0, 0x7d,0x3, 0x7d, +0x31,0x12,0x21,0x0, 0xbd,0x30,0x58,0x2, 0x7d,0xf1,0xbe,0x15,0x2a,0x8, 0x5, 0x7e, +0x15,0x2a,0x80,0xb, 0x6d,0x0, 0x9e,0x5, 0x2a,0xbd,0x1, 0x8, 0x2, 0x7d,0x10,0x7d, +0x31,0x1a,0x26,0x1a,0x24,0x2f,0x41,0x7e,0xb3,0x1f,0x34,0x4, 0x7a,0xb3,0x1f,0x34, +0xb, 0xc0,0x12,0x6d,0x34,0x38,0xac,0x7e,0x73,0x1f,0x34,0x4c,0x77,0x68,0x34,0x12, +0xa7,0x2d,0x8, 0x2, 0x7d,0x7f,0xbe,0x75,0x2a,0x8, 0x5, 0x7e,0x75,0x2a,0x80,0xb, +0x6d,0xee,0x9e,0xe5,0x2a,0xbd,0xe7,0x8, 0x2, 0x7d,0x7e,0x6c,0xcc,0x80,0xf, 0x12, +0x6e,0x19,0x40,0x8, 0x12,0x6e,0xf, 0x50,0x3, 0x12,0xa7,0x18,0xb, 0xc0,0x12,0x6d, +0x34,0x38,0xec,0xb, 0xd0,0xbe,0xd0,0x3, 0x50,0x2, 0xa1,0x68,0xda,0x3b,0x22,0x7c, +0x1d,0x2e,0x10,0x2d,0xa5,0xe7,0xbc,0xab,0x22,0xa, 0xec,0x9, 0xae,0x2a,0xb9,0x7c, +0x1d,0x2e,0x10,0x2c,0xa5,0xe7,0xbc,0xab,0x22,0x12,0x6e,0xa0,0x7a,0x37,0x2b,0x1b, +0x22,0x7e,0xa3,0x0, 0x4f,0xbe,0xa0,0xff,0x68,0x48,0xbe,0xa3,0x3, 0xec,0x68,0x42, +0x74,0x5, 0xa4,0x12,0xc0,0xc3,0x12,0x6e,0x83,0x12,0xc0,0x39,0x12,0x6e,0x83,0x12, +0xc0,0x30,0x12,0x6e,0x8f,0x50,0x9, 0x7e,0xb3,0x0, 0x4f,0x12,0xb3,0x54,0x80,0x6, +0x12,0x6e,0x83,0x12,0x6f,0xff,0x12,0x6e,0x29,0x12,0x6f,0xf8,0x7e,0x73,0x2b,0x14, +0xa, 0x37,0x7e,0xf, 0x38,0xc8,0x79,0x30,0x0, 0x1a,0x7e,0x73,0x0, 0x4f,0x7a,0x73, +0x3, 0xec,0x22,0x7e,0xa3,0x0, 0x4f,0x74,0x5, 0xa4,0x22,0x7a,0xb3,0x2b,0x20,0x7e, +0xb3,0x37,0x8, 0xb4,0x3, 0x8, 0x7e,0xb3,0x37,0xb2,0x70,0x2, 0xc3,0x22,0xd3,0x22, +0x7e,0x23,0x2b,0xf, 0x7e,0x33,0x37,0xcd,0x7e,0x34,0x60,0xd6,0x7e,0x24,0x0, 0xff, +0xb, 0x1a,0x0, 0xac,0x23,0x2d,0x10,0xbe,0x14,0x0, 0xa, 0x50,0x4, 0x7e,0x14,0x0, +0xa, 0x7e,0x63,0x2b,0x10,0xbe,0x14,0xf, 0x3c,0x40,0x4, 0x7e,0x14,0xf, 0x3c,0xbe, +0x14,0x7, 0x8, 0x40,0x3, 0xe4,0x80,0x21,0xbe,0x14,0x3, 0x84,0x40,0x16,0x90,0x61, +0x1b,0xe4,0x93,0x7c,0x7b,0xbe,0x70,0x1, 0x28,0x4, 0x74,0x1, 0x80,0xb, 0x7a,0x73, +0x2b,0x10,0x80,0x9, 0x90,0x61,0x1b,0xe4,0x93,0x7a,0xb3,0x2b,0x10,0x7e,0x73,0x2b, +0x10,0xbc,0x76,0x68,0x2, 0xd2,0xc, 0x7e,0x24,0x1, 0xf4,0x7d,0x31,0x8d,0x32,0x7c, +0x17,0xbe,0x10,0x7, 0x28,0x3, 0x7e,0x10,0x7, 0x7e,0x1f,0x38,0xc0,0x69,0x51,0x0, +0x86,0x54,0x1f,0xa, 0x1, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x2d, +0x5, 0x79,0x1, 0x0, 0x86,0x6d,0x0, 0x7e,0x34,0xb8,0x0, 0x7e,0x24,0x0, 0xb, 0x2, +0x1f,0x58,0x7e,0xb, 0x70,0x7a,0x73,0x2b,0xf, 0x29,0x70,0x0, 0x4, 0x7a,0x73,0x2b, +0x62,0x29,0x70,0x0, 0x1, 0x7a,0x73,0x2b,0x14,0x29,0x70,0x0, 0x3, 0x7a,0x73,0x2b, +0x20,0x12,0x6e,0x29,0x12,0x6f,0xf8,0xd2,0x3, 0xc2,0x4, 0x2, 0x48,0xf4,0xca,0xf8, +0x6c,0xff,0x80,0x34,0x7e,0x73,0x0, 0x4f,0xbc,0x7f,0x68,0x2a,0x7e,0x30,0x5, 0xac, +0x3f,0x12,0x6f,0xea,0xca,0x39,0x7e,0x30,0x38,0xac,0x3f,0x12,0xc0,0x76,0x12,0x20, +0xb9,0x1b,0xfd,0x7e,0x34,0x0, 0x8c,0xca,0x39,0x7e,0x30,0x8c,0xac,0x3f,0x12,0xc0, +0x6b,0x12,0x20,0xb9,0x1b,0xfd,0xb, 0xf0,0x90,0x61,0xc5,0xe4,0x93,0xbc,0xbf,0x38, +0xc3,0x7e,0x23,0x0, 0x4f,0x7e,0x30,0x5, 0xac,0x23,0x12,0x6f,0xea,0xca,0x39,0x7e, +0x23,0x0, 0x4f,0x7e,0x30,0x38,0xac,0x23,0x12,0xc0,0x76,0x12,0x20,0xb9,0x1b,0xfd, +0x7e,0x34,0x0, 0x8c,0xca,0x39,0x7e,0x23,0x0, 0x4f,0x7e,0x30,0x8c,0xac,0x23,0x12, +0xc0,0x6b,0x12,0x20,0xb9,0x1b,0xfd,0xda,0xf8,0x22,0x2e,0x14,0x26,0x33,0x6d,0x0, +0x12,0x6f,0x42,0x7e,0x34,0x0, 0x38,0x22,0x7e,0x8, 0x2a,0x6d,0x2, 0x3, 0x8b,0x9, +0x75,0x26,0x35,0x7a,0x73,0x2b,0x1f,0x22,0x7e,0x37,0x3, 0xed,0xb, 0x34,0x7a,0x37, +0x3, 0xed,0x7e,0x37,0x3, 0xef,0xbe,0x37,0x3, 0xed,0x28,0x3, 0x2, 0x70,0x23,0x22, +0x2, 0x70,0x8, 0xe5,0x9a,0x60,0x5, 0xd2,0x9c,0xa9,0xd6,0xdf,0x22,0xca,0x7b,0xca, +0x6b,0xca,0x5b,0xca,0x4b,0xca,0x2b,0xca,0x1b,0xca,0xb, 0xc0,0xd0,0xc0,0x83,0xc0, +0x82,0x12,0x70,0x20,0xd0,0x82,0xd0,0x83,0xd0,0xd0,0xda,0xb, 0xda,0x1b,0xda,0x2b, +0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda,0x7b,0x32,0x7e,0x34,0x0, 0x4, 0xca,0x39,0x7e, +0x34,0x61,0x2d,0x7e,0x24,0x0, 0xff,0x7e,0x8, 0x2b,0x70,0x12,0x20,0xb9,0x1b,0xfd, +0x7e,0x34,0x2a,0xe, 0x7a,0x37,0x2b,0x76,0xe4,0x7a,0xb3,0x2b,0x74,0x7a,0xb3,0x2b, +0x75,0x7e,0x34,0x0, 0x4, 0xca,0x39,0x12,0x79,0x25,0x7e,0x8, 0x25,0xee,0x12,0x20, +0xb9,0x1b,0xfd,0x7e,0x34,0x2b,0x78,0x7a,0x37,0x25,0xf4,0xe4,0x7a,0xb3,0x25,0xf2, +0x74,0x1, 0x7a,0xb3,0x25,0xf3,0x22,0xca,0xd8,0xca,0x79,0x90,0x60,0x50,0xe4,0x93, +0x7c,0xdb,0x90,0x60,0x51,0xe4,0x93,0x7c,0xeb,0x7e,0x73,0x2a,0x74,0xbc,0x7e,0x28, +0x4, 0x7c,0xf7,0x80,0x2, 0x7c,0xfe,0x7a,0xd3,0x2a,0x6d,0x7a,0xe3,0x2a,0x6e,0x7a, +0xd3,0x2a,0x71,0x7a,0xe3,0x2a,0x72,0x7a,0xd3,0x2a,0x73,0x7a,0xe3,0x2a,0x74,0x90, +0x60,0xa8,0xe4,0x93,0x7c,0xab,0x7a,0xa3,0x2a,0x77,0x90,0x60,0xa9,0xe4,0x93,0xa, +0x2b,0xa, 0x3d,0x9d,0x32,0x7c,0xb7,0x7a,0xb3,0x2a,0x6f,0xa, 0x2a,0xa, 0x3e,0x9d, +0x32,0x7a,0x73,0x2a,0x70,0x90,0x60,0x91,0xe4,0x93,0x7a,0xb3,0x2a,0x78,0x90,0x60, +0x94,0xe4,0x93,0x7a,0xb3,0x2a,0x79,0xa, 0x3d,0xca,0x39,0x7e,0x34,0x60,0x52,0x7e, +0x24,0x0, 0xff,0x7e,0x8, 0x2a,0x7a,0x12,0x20,0xb9,0x1b,0xfd,0xa, 0x3f,0xca,0x39, +0x7e,0x34,0x60,0x75,0x7e,0x24,0x0, 0xff,0x7e,0x8, 0x2a,0x9d,0x12,0x20,0xb9,0x1b, +0xfd,0x7e,0x34,0x0, 0x23,0xca,0x39,0x7e,0x34,0x60,0xd8,0x7e,0x24,0x0, 0xff,0x7e, +0x8, 0x2b,0x21,0x12,0x20,0xb9,0x1b,0xfd,0x12,0x72,0x92,0x12,0x79,0x31,0x90,0x60, +0xaa,0xe4,0x93,0x70,0x8, 0x7a,0xd3,0x2a,0x75,0x7a,0xe3,0x2a,0x76,0x12,0x70,0x59, +0x74,0x1, 0x12,0x3d,0xac,0xe4,0x7a,0xb3,0x2b,0x1, 0x7a,0xb3,0x2b,0x2, 0x12,0x73, +0xf1,0x7a,0x37,0x2b,0xd, 0x74,0x3, 0x7a,0xb3,0x2b,0x3, 0xe4,0x7a,0xb3,0x2b,0x4, +0x74,0x2, 0x7a,0xb3,0x2b,0x5, 0x7e,0x34,0x61,0x59,0x12,0x23,0x9e,0x7a,0x37,0x2b, +0x7, 0x74,0x4, 0x7a,0xb3,0x2b,0x6, 0x7e,0x34,0x0, 0xf, 0x7a,0x37,0x2b,0x9, 0x7e, +0x34,0x20,0x5f,0x7a,0x37,0x2b,0xb, 0x90,0x61,0x1a,0xe4,0x93,0x7a,0xb3,0x2b,0x62, +0x90,0x61,0x1b,0xe4,0x93,0x7a,0xb3,0x2b,0x10,0x90,0x61,0x1c,0xe4,0x93,0x7a,0xb3, +0x2b,0x11,0x74,0x4, 0x7a,0xb3,0x2b,0x13,0x90,0x60,0xd5,0xe4,0x93,0x7a,0xb3,0x2b, +0xf, 0x12,0x6e,0x29,0xe4,0x7a,0xb3,0x2b,0x1d,0x7a,0xb3,0x2b,0x1e,0x7e,0x34,0x61, +0x22,0x12,0x23,0x9e,0x7a,0x37,0x2b,0x19,0x90,0x60,0xd3,0x93,0x7a,0xb3,0x2b,0x12, +0x90,0x61,0x24,0xe4,0x93,0x7a,0xb3,0x2b,0x20,0x90,0x61,0x19,0xe4,0x93,0x7a,0xb3, +0x2b,0x1f,0x7e,0x34,0x61,0x1e,0x12,0x23,0x9e,0x7a,0x37,0x2b,0x15,0x7e,0x34,0x61, +0x20,0x12,0x23,0x9e,0x7a,0x37,0x2b,0x17,0x90,0x61,0x1d,0xe4,0x93,0x7a,0xb3,0x2b, +0x14,0x7e,0x34,0x0, 0x30,0x7a,0x37,0x2b,0x6a,0x74,0x5, 0x7a,0xb3,0x2b,0x67,0x7e, +0x34,0x0, 0x5, 0x7a,0x37,0x2b,0x68,0xe4,0x7a,0xb3,0x2b,0x66,0x7e,0x34,0x4, 0x6d, +0x7a,0x37,0x2b,0x6c,0x74,0x1, 0x7a,0xb3,0x2b,0x63,0x74,0x6, 0x7a,0xb3,0x2b,0x64, +0xe4,0x7a,0xb3,0x2b,0x65,0x74,0x1, 0x7a,0xb3,0x2b,0x60,0xe4,0x7a,0xb3,0x2b,0x61, +0x7e,0x34,0x20,0x5b,0x7a,0x37,0x2b,0x6e,0xa, 0x3e,0xca,0x39,0x7e,0x34,0x60,0xfb, +0x7e,0x24,0x0, 0xff,0x7e,0x8, 0x2b,0x44,0x12,0x20,0xb9,0x1b,0xfd,0xda,0x79,0xda, +0xd8,0x22,0x12,0xc0,0xd5,0x12,0x72,0xf4,0x90,0x60,0x50,0xe4,0x93,0xa, 0x3b,0x7d, +0x13,0x2e,0x14,0x2a,0x7a,0x6d,0x0, 0x9, 0xb3,0x2a,0x79,0x12,0x72,0xdb,0xa, 0x3b, +0x7d,0x13,0x2e,0x14,0x2b,0x21,0x6d,0x0, 0x9, 0xb3,0x2b,0x20,0x12,0x72,0xdb,0xa, +0x1b,0x2e,0x14,0x2a,0x7c,0x12,0x72,0xe8,0xe5,0x25,0x12,0x72,0xdf,0xa, 0x1b,0x2e, +0x14,0x2b,0x23,0x12,0x72,0xe8,0xe5,0x24,0x2, 0x20,0xde,0x7e,0x34,0x0, 0x2, 0x12, +0x20,0xde,0x90,0x60,0x50,0xe4,0x93,0x22,0x6d,0x0, 0x90,0x60,0x91,0xe4,0x93,0xa, +0x3b,0x1b,0x35,0x22,0x6c,0xaa,0x6c,0x99,0x80,0xc, 0xa, 0xf9,0x9, 0xbf,0x2a,0x7a, +0xbc,0xba,0x68,0x7, 0xb, 0x90,0x12,0x73,0x20,0x38,0xef,0x12,0x73,0x20,0x68,0x7, +0xb, 0xa0,0xbe,0xa0,0x23,0x40,0xdf,0x7a,0xb, 0xa0,0x74,0x6e,0x7a,0x1b,0xb0,0x22, +0x90,0x60,0x50,0xe4,0x93,0xbc,0xb9,0x22,0x12,0x77,0xfd,0x12,0x70,0xa7,0x12,0x0, +0xa, 0x12,0x3f,0xf2,0x7e,0x18,0x4, 0x0, 0x7a,0x1f,0x6, 0xf8,0x7e,0xf, 0x6, 0xf8, +0x7e,0x1f,0x6, 0xf4,0x12,0x79,0x9d,0x7e,0x18,0x8, 0xa, 0x7a,0x1f,0x13,0x86,0x7e, +0x18,0xd, 0xc8,0x7a,0x1f,0x13,0x8a,0x7e,0xf, 0x13,0x8a,0x7e,0x1f,0x13,0x86,0x12, +0x79,0x7a,0x12,0x79,0x2e,0x12,0x25,0x45,0x12,0x73,0xa7,0x12,0x73,0x7f,0x2, 0x73, +0x71,0xe4,0x7a,0xb3,0x34,0x38,0x7a,0xb3,0x34,0x39,0x7a,0xb3,0x34,0x3a,0x22,0x12, +0x73,0xe5,0x7e,0x24,0x0, 0x3, 0xad,0x32,0x7e,0x8, 0x28,0xae,0x74,0xff,0x12,0x20, +0xde,0x12,0x9f,0xe3,0x7e,0x8, 0x29,0xbc,0x12,0x5e,0x61,0x7e,0x8, 0x2a,0x2, 0x7e, +0x34,0x0, 0xb, 0xe4,0x2, 0x20,0xde,0x7e,0x8, 0x26,0x5b,0x7e,0x34,0x2, 0x3a,0xe4, +0x12,0x20,0xde,0x90,0x60,0x9c,0x93,0xa, 0x3b,0x3e,0x34,0x7e,0x8, 0x26,0x8c,0x74, +0xff,0x12,0x20,0xde,0x90,0x60,0x9c,0xe4,0x93,0xa, 0x3b,0x3e,0x34,0x7e,0x8, 0x26, +0xb4,0x74,0xff,0x12,0x20,0xde,0x90,0x60,0x9a,0x12,0x73,0xe8,0x7e,0x8, 0x27,0x76, +0x74,0xff,0x2, 0x20,0xde,0x90,0x60,0x99,0xe4,0x93,0x7c,0x7b,0x74,0x9, 0xac,0x7b, +0x22,0x6d,0x33,0x6c,0xaa,0x80,0x14,0xa, 0x2a,0x9, 0xb2,0x2a,0xdc,0x54,0x1, 0x78, +0x5, 0x4e,0x70,0x1, 0x80,0x3, 0x4e,0x70,0x10,0xb, 0xa0,0x7e,0x53,0x2a,0x74,0xbc, +0x5a,0x38,0xe4,0x6c,0xaa,0x80,0x1f,0xa, 0x2a,0x9, 0xb2,0x2a,0xb9,0xbe,0xb0,0xd, +0x38,0x5, 0x4e,0x70,0xc0,0x80,0xd, 0xbe,0xb0,0x1b,0x38,0x5, 0x4e,0x60,0x8, 0x80, +0x3, 0x4e,0x60,0x50,0xb, 0xa0,0x12,0x74,0x3c,0x38,0xdc,0x22,0x7e,0xb3,0x2a,0x73, +0xbc,0xba,0x22,0xca,0x3b,0x7e,0xb4,0x7f,0xff,0x7d,0xab,0x7d,0x8b,0x6d,0x22,0x7d, +0x32,0x7d,0x9b,0x75,0x24,0x0, 0x6c,0x99,0x7e,0x78,0x4, 0xfc,0x7e,0x8, 0x5, 0x7a, +0xe4,0x7a,0xb3,0x8, 0x8, 0x7a,0xb3,0x8, 0x9, 0x7a,0xb3,0x26,0xf6,0x7a,0xb3,0x26, +0xf8,0x7a,0xb3,0x26,0xf7,0x7a,0xb3,0x26,0xf9,0x6c,0xaa,0x80,0x5f,0x12,0x75,0xb2, +0xb, 0x6a,0xc0,0xbd,0xca,0x58,0x2, 0x7d,0xac,0xbd,0xc3,0x8, 0x2, 0x7d,0x3c,0x2d, +0x71,0x7d,0x60,0xb, 0x3a,0xd0,0xbd,0xd9,0x58,0x2, 0x7d,0x9d,0x7e,0x67,0x2a,0x53, +0x7e,0x74,0x0, 0x3, 0xad,0x76,0xbd,0xc7,0x8, 0x2, 0x5, 0x24,0x12,0x75,0x9f,0xb, +0x3a,0xd0,0xbd,0xcd,0x8, 0xb, 0x7e,0xb3,0x26,0xf7,0x4, 0x7a,0xb3,0x26,0xf7,0x80, +0x19,0x12,0x75,0xa8,0xb, 0x3a,0xc0,0x6e,0xd4,0xff,0xff,0xb, 0xd4,0xbd,0xcd,0x58, +0x9, 0x7e,0xb3,0x26,0xf9,0x4, 0x7a,0xb3,0x26,0xf9,0xb, 0xa0,0x7e,0xb3,0x2a,0x74, +0xbc,0xba,0x38,0x99,0x7a,0xa7,0x7, 0xfe,0x7a,0x37,0x8, 0x2, 0xe5,0x24,0x7a,0xb3, +0x8, 0x9, 0x7a,0x97,0x8, 0x6, 0x12,0x75,0x97,0x2d,0xf5,0x6c,0xaa,0x80,0x50,0x12, +0x75,0xb2,0xb, 0x6a,0xd0,0xbd,0xd8,0x58,0x2, 0x7d,0x8d,0xbd,0xd2,0x8, 0x2, 0x7d, +0x2d,0x7e,0x67,0x2a,0x51,0x7e,0x74,0x0, 0x3, 0xad,0x76,0xbd,0xd7,0x8, 0x2, 0xb, +0x90,0x12,0x75,0x9f,0xb, 0x3a,0xc0,0xbd,0xdc,0x8, 0xb, 0x7e,0xb3,0x26,0xf6,0x4, +0x7a,0xb3,0x26,0xf6,0x80,0x17,0x12,0x75,0xa8,0xb, 0x3a,0xd0,0x6d,0x99,0x9d,0x9c, +0xbd,0xd9,0x58,0x9, 0x7e,0xb3,0x26,0xf8,0x4, 0x7a,0xb3,0x26,0xf8,0xb, 0xa0,0x12, +0x74,0x3c,0x38,0xab,0x7a,0x87,0x7, 0xfc,0x7a,0x27,0x8, 0x0, 0x7a,0x93,0x8, 0x8, +0x12,0x75,0x97,0x2d,0x15,0x6c,0xaa,0x80,0xe, 0x12,0xa5,0xe4,0xb, 0x7a,0x90,0xbd, +0x9b,0x58,0x2, 0x7d,0xb9,0xb, 0xa0,0x12,0x74,0x3c,0x38,0xed,0x7a,0xb7,0x8, 0x4, +0xbd,0x8a,0x58,0x2, 0x7d,0xa8,0x7a,0xa7,0x7, 0xf8,0xbd,0x32,0x58,0x2, 0x7d,0x32, +0x7a,0x37,0x7, 0xfa,0xda,0x3b,0x22,0x7e,0xa3,0x2a,0x74,0x74,0x2, 0xa4,0x22,0x7e, +0x74,0x62,0x10,0x7e,0x64,0x0, 0xff,0x22,0x7e,0xf0,0x2, 0xac,0xfa,0x2d,0x7f,0x7d, +0x6e,0x22,0x7e,0xf0,0x2, 0xac,0xfa,0x7f,0x67,0x2d,0xd7,0x22,0xca,0x3b,0x7f,0x31, +0x7a,0xd, 0x24,0x7e,0x35,0x28,0x7a,0x35,0x2e,0x7e,0xd, 0x24,0x7f,0x13,0x12,0xa6, +0x56,0x7e,0x35,0x28,0x7a,0x35,0x2a,0x12,0x75,0x97,0x7e,0xd, 0x24,0x2d,0x15,0x7f, +0x13,0x2d,0x35,0x12,0x6d,0x3b,0xda,0x3b,0x22,0x7e,0x37,0x2a,0x4f,0x1e,0x34,0x7a, +0x35,0x28,0x7e,0x8, 0x4, 0xfc,0x7e,0x18,0x4, 0x0, 0x12,0x75,0xbc,0x7e,0x37,0x28, +0x99,0xe, 0x34,0x7a,0x35,0x28,0x7e,0x8, 0x5, 0x7a,0x7e,0x18,0x4, 0x7e,0x12,0x75, +0xbc,0x12,0x76,0x2b,0x12,0xa7,0x45,0x2, 0x76,0x1a,0xe4,0x7a,0xb3,0x3, 0xff,0x7e, +0xb3,0x28,0xa8,0x60,0x5, 0xe4,0x7a,0xb3,0x3, 0xff,0x22,0xca,0x3b,0x7e,0xf3,0x2a, +0x6e,0x12,0xc0,0xde,0x6c,0xcc,0x80,0x13,0x7c,0x7c,0xac,0x7f,0x3e,0x34,0x7e,0xf, +0x13,0x8a,0x2d,0x13,0x7c,0xbd,0x12,0xa7,0xcd,0xb, 0xc0,0xbc,0xec,0x38,0xe9,0xda, +0x3b,0x22,0xe4,0x7a,0xb3,0x28,0x93,0x12,0xbb,0xb5,0x7e,0xb3,0x16,0x91,0xb4,0x1, +0x8, 0x7e,0x73,0x28,0x84,0x7a,0x73,0x28,0x92,0x7e,0x18,0x4, 0xfc,0x7a,0x1f,0x6, +0xf8,0x12,0x3f,0xf2,0x12,0x76,0x9a,0x12,0x74,0x43,0x7e,0xb3,0x16,0x90,0xb4,0x1, +0x18,0x7e,0x73,0x26,0x83,0x7a,0x73,0x26,0xf3,0x7e,0x73,0x26,0x85,0x7a,0x73,0x26, +0xf5,0x7e,0x73,0x26,0x84,0x7a,0x73,0x26,0xf4,0x22,0x7e,0x8, 0x26,0x86,0x7e,0x34, +0x0, 0x3, 0xe4,0x12,0x20,0xde,0x7e,0x8, 0x26,0x89,0x7e,0x34,0x0, 0x3, 0x12,0x20, +0xde,0x7a,0xb3,0x26,0x83,0x7a,0xb3,0x26,0x84,0x7a,0xb3,0x26,0x85,0x7a,0xb3,0x26, +0xf0,0x7a,0xb3,0x26,0xf1,0x7a,0xb3,0x26,0xf2,0x7e,0x18,0x26,0x6f,0x12,0xc0,0xb, +0x6c,0x55,0x12,0x77,0x60,0x7a,0xb3,0x26,0x85,0x7e,0x18,0x26,0x5b,0x12,0xbf,0xe7, +0x6c,0x55,0x12,0x77,0x60,0x7a,0xb3,0x26,0x84,0x6c,0x77,0x80,0x14,0x12,0x77,0xe9, +0x60,0x5, 0x3e,0x24,0x14,0x78,0xfb,0x12,0x77,0xf2,0x2e,0x24,0x26,0x86,0x12,0xc0, +0x60,0x7e,0x63,0x26,0x84,0xbc,0x67,0x38,0xe4,0x6c,0x77,0x80,0x14,0x12,0x77,0xe9, +0x60,0x5, 0x3e,0x24,0x14,0x78,0xfb,0x12,0x77,0xf2,0x2e,0x24,0x26,0x89,0x12,0xc0, +0x60,0x7e,0xa3,0x26,0x85,0xbc,0xa7,0x38,0xe4,0x7e,0xb3,0x26,0x84,0xa4,0x7a,0xb3, +0x26,0x83,0x7e,0x18,0x26,0xe6,0x12,0xc0,0xb, 0x7e,0x50,0x1, 0x12,0x77,0x60,0x7a, +0xb3,0x26,0xf2,0x7e,0x18,0x26,0xdc,0x12,0xbf,0xe7,0x7e,0x50,0x1, 0x12,0x77,0x60, +0x7c,0xab,0x7a,0xa3,0x26,0xf1,0x7e,0xb3,0x26,0xf2,0xa4,0x7a,0xb3,0x26,0xf0,0x22, +0xca,0x69,0xca,0xf8,0x7c,0x4b,0x6c,0xaa,0x6d,0xff,0x6c,0xff,0x80,0x70,0x7e,0xd0, +0x2, 0xac,0xdf,0x7f,0x60,0x2d,0xd6,0xb, 0x6a,0xe0,0x4c,0x55,0x68,0x6, 0x6e,0xe4, +0xff,0xff,0xb, 0xe4,0xbd,0x3e,0x58,0x54,0x4c,0xff,0x78,0x8, 0x6d,0x44,0x69,0xf0, +0x0, 0x2, 0x80,0x1b,0x7c,0xb4,0x14,0xbc,0xbf,0x7f,0x56,0x78,0x9, 0x1b,0xb5,0xb, +0x5a,0x40,0x6d,0xff,0x80,0x9, 0x1b,0xb5,0xb, 0x5a,0x40,0x69,0xf6,0x0, 0x2, 0x4c, +0x55,0x68,0xc, 0x6e,0x44,0xff,0xff,0xb, 0x44,0x6e,0xf4,0xff,0xff,0xb, 0xf4,0xbd, +0x4e,0x58,0x19,0xbd,0xfe,0x18,0x15,0xa, 0xba,0x7e,0x6d,0x24,0x2d,0xdb,0x7a,0x6b, +0xf0,0xb, 0xa0,0x90,0x60,0x9b,0xe4,0x93,0xbc,0xba,0x28,0x6, 0xb, 0xf0,0xbc,0x4f, +0x38,0x8c,0x7c,0xba,0xda,0xf8,0xda,0x69,0x22,0x7c,0xb7,0x54,0x7, 0x7e,0x24,0x0, +0x1, 0x22,0x7c,0xa5,0x7c,0xb7,0xc4,0x23,0x54,0x1f,0xa, 0x2b,0x22,0xe4,0x7a,0xb3, +0x37,0x9c,0x7a,0xb3,0x37,0x9d,0x90,0x60,0x50,0x93,0x7a,0xb3,0x37,0x9e,0x90,0x60, +0x51,0xe4,0x93,0x7a,0xb3,0x37,0x9f,0xe4,0x7a,0xb3,0x37,0xa0,0x90,0x60,0x99,0x93, +0x7a,0xb3,0x37,0xa1,0xe4,0x7a,0xb3,0x37,0xa2,0x7a,0xb3,0x37,0xa3,0x90,0x61,0xc4, +0x93,0x7a,0xb3,0x37,0xa5,0x7e,0x34,0x61,0x4f,0x12,0x23,0x9e,0x1e,0x34,0x1e,0x34, +0x7a,0x73,0x37,0xa9,0x7e,0x34,0x61,0x55,0x12,0x23,0x9e,0x1e,0x34,0x1e,0x34,0x7a, +0x73,0x37,0xaa,0x74,0x64,0x7a,0xb3,0x37,0xbb,0x90,0x61,0x18,0xe4,0x93,0x7a,0xb3, +0x37,0xbc,0x90,0x61,0x17,0xe4,0x93,0x7a,0xb3,0x37,0xa8,0x90,0x61,0x19,0xe4,0x93, +0x7a,0xb3,0x37,0xbe,0x90,0x61,0x24,0xe4,0x93,0x7a,0xb3,0x37,0xbd,0x90,0x61,0x1d, +0xe4,0x93,0x7a,0xb3,0x37,0xbf,0x90,0x61,0x25,0xe4,0x93,0x7a,0xb3,0x37,0xba,0xe4, +0x7a,0xb3,0x37,0xb5,0x74,0xfa,0x7a,0xb3,0x37,0xb3,0x74,0x1e,0x7a,0xb3,0x37,0xb4, +0x74,0x1, 0x7a,0xb3,0x37,0xb2,0x74,0xc, 0x7a,0xb3,0x37,0xb1,0x74,0x1, 0x7a,0xb3, +0x37,0xb6,0xe4,0x7a,0xb3,0x37,0xb7,0x7a,0xb3,0x37,0xb8,0x7e,0x8, 0x37,0xc0,0x7e, +0x34,0x0, 0x2c,0x12,0x20,0xde,0x7e,0x34,0x60,0xd6,0x12,0x23,0x9e,0xa, 0x36,0x7a, +0x73,0x37,0xcb,0x7e,0x34,0x60,0xd6,0x12,0x23,0x9e,0x7a,0x73,0x37,0xcc,0x90,0x60, +0xd4,0x93,0x7a,0xb3,0x37,0xcd,0x90,0x60,0xd5,0xe4,0x93,0x7a,0xb3,0x37,0xce,0x7e, +0x34,0x0, 0x4, 0xca,0x39,0x12,0x79,0x25,0x7e,0x8, 0x37,0xdc,0x12,0x20,0xb9,0x1b, +0xfd,0x74,0x5, 0x7a,0xb3,0x37,0xe9,0x74,0x1, 0x7a,0xb3,0x37,0xe0,0x7e,0x34,0x0, +0x28,0xca,0x39,0x7e,0x34,0x61,0xd5,0x7e,0x24,0x0, 0xff,0x7e,0x8, 0x26,0x33,0x12, +0x20,0xb9,0x1b,0xfd,0x22,0x7e,0x34,0x61,0x29,0x7e,0x24,0x0, 0xff,0x22,0x2, 0x23, +0xa6,0xca,0xf8,0x7e,0x73,0x2a,0x78,0xa, 0x47,0x7e,0x73,0x2a,0x71,0xa, 0x57,0x2d, +0x54,0x7e,0xa3,0x2a,0x73,0xbc,0xab,0x28,0x2, 0x7c,0xba,0x7e,0xf3,0x2a,0x72,0x7e, +0xa3,0x2a,0x74,0xbc,0xaf,0x28,0x2, 0x7c,0xfa,0x75,0x25,0x15,0x7e,0x8, 0x2a,0xb9, +0x7e,0x18,0x2a,0x7a,0x12,0xd, 0xd9,0x75,0x25,0x15,0x7e,0x8, 0x2a,0xdc,0x7e,0x18, +0x2a,0x9d,0x7c,0xbf,0x12,0xf, 0x9c,0xda,0xf8,0x22,0x7f,0x60,0x7e,0xa3,0x2a,0x6d, +0x7e,0xb3,0x2a,0x6e,0xa4,0x7d,0xf5,0x3e,0xf4,0x7f,0x1, 0x7d,0x3f,0xe4,0x12,0x20, +0xde,0x7f,0x6, 0x7d,0x3f,0x12,0x20,0xde,0x7a,0xb3,0x16,0x91,0x22,0x7f,0x70,0x7e, +0x33,0x2a,0x74,0xa, 0x43,0x7e,0x33,0x2a,0x73,0xa, 0x53,0x2d,0x54,0x3e,0x54,0x7c, +0xab,0xe4,0x7a,0xb3,0x16,0x90,0x7f,0x1, 0xa, 0x3a,0x12,0x20,0xde,0x7f,0x7, 0xa, +0x3a,0x2, 0x20,0xde,0xca,0xd8,0xca,0x79,0x7c,0xfb,0x7f,0x51,0x7f,0x40,0x7f,0x15, +0x12,0x79,0x9d,0x12,0x3f,0xd2,0x7e,0xe0,0x1, 0x12,0x4f,0xaf,0x30,0x18,0xfd,0x74, +0x2, 0x12,0x0, 0x1e,0x7f,0x4, 0x12,0x7b,0x29,0x6c,0xdd,0x80,0x18,0x74,0x2, 0xac, +0xbd,0x7f,0x14,0x2d,0x35,0xb, 0x1a,0x20,0x74,0x2, 0xac,0xbd,0x7f,0x5, 0x2d,0x15, +0x12,0x7b,0x20,0xb, 0xd0,0x7e,0x73,0x2a,0x74,0xa, 0x7, 0x7e,0x63,0x2a,0x73,0xa, +0x16,0x2d,0x10,0xa, 0x2d,0xbd,0x21,0x48,0xd4,0x1b,0xe0,0x78,0xbc,0x7f,0x5, 0x7c, +0xbf,0x2e,0x73,0x2a,0x73,0x12,0x7a,0x8e,0xda,0x79,0xda,0xd8,0x22,0x7e,0xb3,0x2b, +0x2, 0x70,0x41,0x12,0x2f,0xf4,0x50,0xfb,0xe4,0x6c,0x77,0x6c,0x66,0x12,0x7a,0x75, +0x7e,0x8, 0x6, 0xfc,0x7e,0x1f,0x6, 0xf4,0x7e,0xb3,0x2b,0x72,0x12,0x79,0xc4,0x74, +0x1, 0x7e,0x70,0x1, 0x7e,0x60,0x1, 0x12,0x7a,0x75,0x7e,0x8, 0x7, 0x7a,0x7e,0x1f, +0x6, 0xf4,0x7e,0xb3,0x25,0xf0,0x12,0x79,0xc4,0x74,0x2, 0x7a,0xb3,0x2b,0x2, 0xe4, +0x7a,0xb3,0x16,0x90,0x22,0x7c,0x96,0x7c,0xa7,0x12,0x3d,0xac,0x7c,0xba,0x12,0x13, +0xc7,0x74,0xa, 0x12,0x45,0x15,0x7c,0xb9,0x12,0x0, 0x1e,0x2, 0x4e,0xe7,0xca,0xd8, +0xca,0x79,0x7c,0xf7,0x7f,0x70,0x12,0x7b,0xd0,0x7c,0xeb,0x6c,0xdd,0x80,0x20,0x74, +0x2, 0xac,0xbd,0x7f,0x67,0x2d,0xd5,0xb, 0x6a,0x30,0x6d,0x22,0x74,0x4, 0x2f,0x11, +0x14,0x78,0xfb,0xa, 0x1e,0x6d,0x0, 0x12,0x1f,0x7, 0x1b,0x6a,0x30,0xb, 0xd0,0xbc, +0xfd,0x38,0xdc,0xda,0x79,0xda,0xd8,0x22,0xca,0x79,0x7f,0x51,0x7f,0x40,0x7e,0xa3, +0x2a,0x74,0xa, 0x3a,0x7e,0xa3,0x2a,0x73,0xa, 0x7a,0x2d,0x73,0x7e,0xd, 0x2a,0x7c, +0x7f,0x12,0x7a,0x8e,0xa, 0x3f,0x3e,0x34,0xca,0x39,0x7e,0x1d,0x2a,0x7f,0x4, 0x12, +0x20,0xb9,0x1b,0xfd,0x7e,0xb3,0x2b,0x1, 0xb4,0x1, 0x22,0x6c,0xaa,0x80,0x1a,0x7e, +0x70,0x2, 0xac,0x7a,0x7f,0x5, 0x2d,0x13,0xb, 0xa, 0x20,0x7f,0x4, 0x2d,0x13,0xb, +0xa, 0x30,0x9d,0x32,0x1b,0xa, 0x30,0xb, 0xa0,0xbc,0xfa,0x38,0xe2,0xda,0x79,0x22, +0xb, 0xa, 0x30,0x2d,0x32,0x1b,0xa, 0x30,0x22,0x7e,0xb3,0x2a,0x73,0x7e,0x73,0x2a, +0x74,0x12,0x10,0xee,0x74,0x2, 0x2, 0x0, 0x1e,0xca,0xd8,0xca,0x79,0x7e,0xf0,0xa, +0x74,0x1, 0x7a,0xb3,0x2a,0xfa,0x12,0x29,0x6f,0x7c,0xe7,0x80,0x5d,0x12,0x26,0x57, +0x12,0x4f,0x9e,0x30,0x18,0xfd,0x12,0x7b,0xc6,0x12,0x7b,0x29,0x6c,0xdd,0x80,0x3d, +0x7e,0x50,0x2, 0xac,0x5d,0x49,0x32,0x6, 0xfc,0xbe,0x34,0x14,0x78,0x50,0x14,0xa, +0x1d,0x2e,0x17,0x2a,0xfe,0x7e,0x19,0xb0,0xbe,0xb0,0x0, 0x28,0x1e,0x14,0x7a,0x19, +0xb0,0x80,0x18,0xbe,0x34,0x19,0x28,0x28,0x10,0xa, 0x3d,0x12,0x3f,0xb, 0xbe,0xb0, +0xff,0x68,0x8, 0x4, 0x7a,0x39,0xb0,0x80,0x2, 0x1b,0xe0,0xb, 0xd0,0x12,0x7b,0xb7, +0xa, 0x3d,0xbd,0x32,0x48,0xba,0x4c,0xee,0x68,0x8, 0x7c,0xaf,0x1b,0xf0,0x4c,0xaa, +0x78,0x9b,0xda,0x79,0xda,0xd8,0x22,0x7e,0x73,0x2a,0x74,0xa, 0x37,0x7e,0x53,0x2a, +0x73,0xa, 0x25,0x2d,0x23,0x22,0x74,0x2, 0x12,0x0, 0x1e,0x7e,0x8, 0x6, 0xfc,0x22, +0x7c,0x7b,0xa5,0xbf,0x0, 0x3, 0x74,0x10,0x22,0xbe,0x70,0x4, 0x38,0x4, 0x6c,0xaa, +0x80,0x21,0xbe,0x70,0x8, 0x38,0x5, 0x7e,0xa0,0x1, 0x80,0x17,0xbe,0x70,0x10,0x38, +0x5, 0x7e,0xa0,0x2, 0x80,0xd, 0xbe,0x70,0x20,0x38,0x5, 0x7e,0xa0,0x3, 0x80,0x3, +0x7e,0xa0,0x4, 0xa, 0x47,0x3e,0x44,0x3e,0x44,0x3e,0x44,0x7c,0xba,0x60,0x5, 0x1e, +0x44,0x14,0x78,0xfb,0x7c,0xb9,0x22,0x7e,0xa3,0x2f,0xa8,0x7e,0x70,0x4, 0xac,0x7a, +0xb, 0x34,0xbe,0x37,0x37,0xed,0x40,0x39,0x7e,0x37,0x37,0xed,0xb, 0x34,0x7a,0x37, +0x37,0xed,0xbe,0x34,0x0, 0x1, 0x78,0x5, 0x7e,0xb3,0x37,0x34,0x22,0xbe,0x34,0x0, +0x2, 0x78,0x3, 0x7c,0xba,0x22,0xbe,0x34,0x0, 0x2, 0x50,0x9, 0x7d,0x23,0x1b,0x25, +0x9, 0xb2,0x38,0xfb,0x22,0x9e,0x34,0x0, 0x3, 0x2e,0x37,0x2b,0xb9,0x7e,0x39,0xb0, +0x22,0x74,0xff,0x22,0x70,0x5, 0x7e,0xb3,0x37,0x9c,0x22,0xbe,0xb0,0x3, 0x38,0x15, +0x75,0x1b,0x0, 0x30,0xe, 0x6, 0x7e,0x18,0x32,0xea,0x80,0x4, 0x7e,0x18,0x33,0x28, +0x7a,0x1d,0x14,0x80,0x8, 0xbe,0xb0,0x5e,0x38,0x10,0x75,0x1b,0x0, 0xa, 0x1b,0x7e, +0x1d,0x14,0x2d,0x31,0x1b,0x34,0x7e,0x1b,0xb0,0x22,0xbe,0xb0,0xd3,0x68,0x3, 0xb4, +0xd4,0x10,0xb4,0xd3,0x8, 0x6d,0x33,0x7a,0x37,0x37,0xed,0x80,0x2, 0x15,0x1a,0x2, +0x7c,0x17,0xbe,0xb0,0xeb,0x68,0x3, 0xb4,0xec,0x3, 0x2, 0x7d,0x61,0xbe,0xb0,0x80, +0x40,0xc, 0xbe,0xb0,0xdf,0x38,0x7, 0xa, 0x3b,0x9, 0xb3,0x36,0x61,0x22,0xb4,0xfc, +0x5, 0x7e,0xb3,0x37,0x8, 0x22,0xb4,0xfd,0x17,0x6c,0xaa,0x7e,0xb3,0x28,0xa8,0x60, +0x3, 0x4e,0xa0,0x1, 0x7e,0xb3,0x36,0x71,0x60,0x3, 0x4e,0xa0,0x2, 0x7c,0xba,0x22, +0xb4,0xfe,0x5, 0x7e,0xb3,0x2b,0xf, 0x22,0x74,0xff,0x22,0x7c,0x7b,0x6c,0xaa,0x12, +0x3f,0xe1,0x78,0x9, 0x7c,0xb7,0x12,0x7c,0x64,0x7c,0xab,0x80,0xa, 0xb4,0x4, 0x7, +0x7c,0xb7,0x12,0x37,0xeb,0x7c,0xab,0x7c,0xba,0x22,0x30,0x90,0x19,0xc2,0x90,0xe5, +0x18,0x70,0x9, 0x75,0x18,0x1, 0xe5,0x91,0xf5,0x1a,0x80,0x11,0x7e,0x71,0x91,0xe5, +0x1a,0x12,0x3f,0xb3,0x5, 0x1a,0x30,0x91,0xb, 0xc2,0x91,0x5, 0x1a,0xe5,0x1a,0x12, +0x7c,0xfb,0xf5,0x91,0x22,0xca,0x7b,0xca,0x2b,0xca,0x1b,0xca,0xb, 0xc0,0x83,0xc0, +0x82,0x12,0x7d,0x1a,0xd0,0x82,0xd0,0x83,0xda,0xb, 0xda,0x1b,0xda,0x2b,0xda,0x7b, +0x32,0xb4,0xeb,0x5, 0xe4,0x7a,0xb3,0x37,0xf2,0x7e,0x73,0x37,0xf2,0xa, 0x27,0x2e, +0x24,0x0, 0x6, 0x12,0x51,0x4f,0x93,0x7c,0xab,0x7c,0xb7,0x4, 0x7a,0xb3,0x37,0xf2, +0xb4,0x3, 0xb, 0xe4,0x7a,0xb3,0x37,0xf2,0x6d,0x33,0x7a,0x37,0x37,0xef,0x75,0x1a, +0xeb,0x7c,0xba,0x22,0x7e,0xa3,0x37,0x9b,0x7c,0xba,0x4, 0x7a,0xb3,0x37,0x9b,0x7a, +0xa3,0x36,0xf2,0x22,0xa9,0xc0,0x93,0x75,0x18,0x0, 0x32,0x7a,0xb3,0x37,0x9c,0xc4, +0x54,0x7, 0xbe,0xb0,0x4, 0x68,0x3, 0xb4,0x2, 0x4, 0x74,0x3, 0x80,0x7, 0x60,0x3, +0xb4,0x1, 0x7, 0x74,0x1, 0x7a,0xb3,0x37,0x8, 0x22,0x74,0x1, 0x7a,0xb3,0x37,0x8, +0xe4,0x7a,0xb3,0x37,0x9c,0x22,0x7c,0xa7,0x7c,0x3b,0xa5,0xbb,0x0, 0x7, 0x7c,0xba, +0x12,0x7d,0xab,0x80,0x2c,0xbe,0x30,0xeb,0x68,0x4, 0xa5,0xbb,0xec,0x9, 0x7c,0xb3, +0x7c,0x7a,0x12,0x7e,0x45,0x80,0x1a,0xbe,0x30,0x80,0x40,0x15,0xbe,0x30,0xdf,0x38, +0x10,0x7c,0xb3,0x24,0x80,0x7c,0x7a,0x12,0x7e,0x21,0xa5,0xbb,0x8f,0x3, 0x75,0x19, +0x1, 0xa5,0xbb,0xfc,0x5, 0x7c,0xba,0x2, 0x44,0xc0,0x74,0x1, 0x7a,0xb3,0x33,0xff, +0x22,0x7c,0x6b,0x2e,0x60,0xdd,0x68,0x1c,0x2e,0x60,0xfd,0x68,0x17,0x1b,0x61,0x68, +0x13,0x2e,0x60,0xfa,0x68,0xe, 0x1b,0x60,0x68,0xa, 0x80,0x0, 0xa, 0x2b,0x19,0x72, +0x36,0xe1,0xd2,0xd, 0x22,0xbe,0xb0,0xeb,0x68,0x3, 0xb4,0xec,0x33,0x7e,0x27,0x37, +0xef,0x4d,0x22,0x78,0xe, 0xa5,0xbf,0xaa,0xa, 0x7e,0x24,0x0, 0x1, 0x7a,0x27,0x37, +0xef,0x15,0x1a,0x7e,0x27,0x37,0xef,0xbe,0x24,0x0, 0x1, 0x78,0x10,0xa5,0xbf,0x9, +0x6, 0x7e,0x34,0x0, 0x2, 0x80,0x2, 0x6d,0x33,0x7a,0x37,0x37,0xef,0x75,0x1a,0xea, +0x22,0x7e,0xb3,0x37,0xf1,0x4, 0x7a,0xb3,0x37,0xf1,0xe5,0x19,0xb4,0x1, 0x8, 0xe4, +0x7a,0xb3,0x37,0xf1,0x75,0x19,0x0, 0x7e,0x73,0x37,0xf1,0x7a,0x73,0x36,0xf0,0x22, +0xe4,0x7a,0xb3,0x37,0x9c,0x7e,0x8, 0x32,0xea,0x12,0x7e,0xef,0x7e,0x8, 0x33,0x28, +0x7e,0x34,0x0, 0x3e,0x12,0x20,0xde,0x7e,0x18,0x32,0xea,0x7a,0x1d,0x14,0x12,0x7e, +0xd1,0x2, 0x7e,0xc4,0x75,0x18,0x0, 0x75,0x1a,0x0, 0x7e,0xb3,0x37,0x9c,0xf5,0x91, +0x22,0x2, 0x7e,0xd4,0x90,0x60,0x0, 0xe4,0x93,0x54,0xfe,0x75,0x91,0x0, 0xc2,0x90, +0xc2,0x91,0xc2,0xc9,0x54,0xfe,0xf5,0x92,0xd2,0xe8,0xc2,0xc0,0xd2,0xad,0x22,0x7e, +0x34,0x0, 0x3e,0x74,0xff,0x2, 0x20,0xde,0x7c,0xab,0x12,0x3f,0x52,0x7c,0xba,0x12, +0x13,0xc7,0x2, 0x0, 0x1e,0x30,0x18,0x8, 0x74,0x5, 0x7e,0x70,0x99,0x12,0x13,0x2c, +0x7e,0xb3,0x34,0x3a,0xb4,0x1, 0x4f,0x12,0x7f,0x67,0x49,0x35,0x34,0x3b,0x49,0x15, +0x34,0x3d,0x6d,0x0, 0xbe,0x8, 0x0, 0x0, 0x68,0x1a,0xbe,0x70,0x0, 0x40,0x15,0xbe, +0x70,0x2, 0x38,0x10,0x74,0x2, 0x12,0x0, 0x1e,0x7e,0xb3,0x2a,0x73,0x7e,0x73,0x2a, +0x74,0x12,0x10,0xee,0x7e,0xb3,0x34,0x39,0x4, 0x7a,0xb3,0x34,0x39,0x12,0x7f,0x6f, +0x28,0xe, 0x12,0x4e,0x9b,0xb4,0x1, 0x4, 0x74,0x1, 0x80,0x6, 0x74,0x3, 0x80,0x2, +0x74,0x2, 0x7a,0xb3,0x34,0x3a,0x22,0x7e,0xa3,0x34,0x39,0x74,0x4, 0xa4,0x22,0x7e, +0x73,0x34,0x38,0xbe,0x73,0x34,0x39,0x22,0x7d,0xf3,0x6d,0xee,0x6c,0x99,0x80,0x3c, +0x7c,0xb9,0x12,0x31,0x27,0x7d,0xd3,0x7d,0xcd,0x3e,0xc4,0x7f,0x57,0x2d,0xbc,0xb, +0x5a,0x10,0x1a,0x2, 0x1a,0x0, 0x7e,0x83,0x2b,0x20,0xa, 0x98,0x6d,0x88,0x7f,0x10, +0x7f,0x4, 0x12,0x1e,0xeb,0x74,0x6, 0x7f,0x1, 0x1e,0x14,0x1e,0x4, 0x50,0x3, 0x4e, +0x20,0x80,0x14,0x78,0xf4,0x7d,0xc1,0x1b,0x5a,0xc0,0xb, 0x90,0x7e,0x83,0x2a,0x75, +0xbc,0x89,0x38,0xbc,0x22,0x7f,0x20,0xb, 0x2a,0x10,0xb, 0x1a,0x0, 0x1b,0x2a,0x0, +0x1b,0x1a,0x10,0x22,0x7c,0x9b,0x7f,0x71,0x7e,0x7b,0x80,0x4c,0x88,0x78,0x7, 0x7e, +0xb, 0x90,0x7a,0x7b,0x90,0x22,0xa, 0x28,0x7e,0xb, 0x80,0xa, 0x38,0x9d,0x32,0x12, +0x21,0x0, 0xe5,0x29,0xa, 0x2b,0xbd,0x32,0x8, 0x15,0x7e,0x7b,0xa0,0x7e,0xb, 0xb0, +0xbc,0xba,0x7c,0xba,0x28,0x4, 0x2c,0xb9,0x80,0x2, 0x9c,0xb9,0x7a,0x7b,0xb0,0x7e, +0x7b,0x70,0x7a,0xb, 0x70,0x22,0x7d,0xc3,0x7e,0x34,0x61,0x37,0x12,0x87,0xbc,0x90, +0x61,0x35,0xe4,0x93,0x70,0x3, 0x7d,0x3c,0x22,0x90,0x61,0x36,0xe4,0x93,0xb4,0x1, +0x6, 0x7e,0x83,0x2a,0x70,0x80,0x4, 0x7e,0x83,0x2a,0x6f,0x12,0x87,0xd4,0xbe,0xc4, +0x0, 0x3f,0x38,0x1c,0x7e,0xe4,0x0, 0x3f,0x9d,0xec,0x7e,0x34,0x61,0x3b,0x12,0x81, +0x2, 0x12,0x80,0xf1,0xbf,0x71,0x40,0x2, 0x7f,0x71,0x9f,0x17,0x7f,0x71,0x1, 0xee, +0x12,0x66,0xb1,0xbd,0x5c,0x38,0x21,0x7d,0xec,0x9d,0xe5,0x7e,0x34,0x61,0x3d,0x12, +0x81,0x2, 0x90,0x61,0x3a,0xe4,0x93,0xa, 0x3b,0xbf,0x71,0x40,0x4, 0x7f,0x71,0x1b, +0x7c,0x12,0x80,0xf9,0x2f,0x71,0x80,0x66,0x7d,0xb4,0xb, 0xb4,0x1e,0xb4,0x7d,0x5b, +0x1b,0x54,0xbd,0x5c,0x40,0xc, 0x7d,0xf5,0x9d,0xfc,0x6d,0xee,0x7e,0x34,0x61,0x3f, +0x80,0xa, 0x7d,0xfc,0x9d,0xfb,0x6d,0xee,0x7e,0x34,0x61,0x41,0x12,0x87,0xcc,0x7f, +0x17,0x12,0x1e,0xfc,0x7f,0x71,0x12,0x81,0x1c,0x7f,0x71,0xbd,0x5c,0x7d,0x3d,0x40, +0xc, 0x1e,0x34,0x1b,0x34,0x6d,0x22,0x9f,0x17,0x7f,0x71,0x80,0x6, 0x1e,0x34,0x6d, +0x22,0x2f,0x71,0x12,0x80,0xf1,0x6d,0x22,0xbf,0x71,0x50,0x4, 0x7f,0x71,0x80,0xe, +0x90,0x61,0x3a,0xe4,0x93,0x12,0x80,0xf9,0xbf,0x71,0x28,0x2, 0x7f,0x71,0x7d,0x3f, +0x22,0x90,0x61,0x39,0xe4,0x93,0xa, 0x3b,0x22,0xa, 0x2b,0x7d,0x3d,0x9d,0x32,0x6d, +0x22,0x22,0x7e,0x24,0x0, 0xff,0xb, 0x1a,0xf0,0xad,0xfe,0x6d,0xee,0x7d,0x3f,0x7d, +0x2e,0x7c,0x76,0x7c,0x65,0x7f,0x71,0x22,0x7d,0x30,0xad,0x31,0x7c,0x76,0x7c,0x65, +0xa, 0x24,0x22,0xca,0x79,0x7c,0xe5,0x7c,0xfb,0x7e,0xe4,0xff,0xfc,0x7c,0xb4,0x12, +0x9f,0x40,0x7d,0x3, 0x74,0x9, 0xac,0xbf,0x12,0x87,0xe5,0x49,0x35,0x28,0xae,0x12, +0x81,0xbf,0x12,0x81,0x18,0x7d,0x13,0x5e,0x30,0xfc,0x7e,0x70,0x9, 0xac,0x7f,0x49, +0xf3,0x29,0x62,0x74,0x9, 0xac,0xbe,0x49,0x25,0x28,0xae,0xbd,0x2f,0x28,0xf, 0x7d, +0x53,0x2e,0x54,0x29,0x62,0x7d,0x2f,0x2d,0x21,0x1b,0x58,0x20,0x80,0x9, 0x2e,0x34, +0x29,0x62,0x9d,0xf1,0x1b,0x38,0xf0,0x74,0x9, 0xac,0xbf,0x12,0x81,0xb3,0x12,0x81, +0x18,0x7d,0x13,0x5d,0x1e,0x7e,0x50,0x9, 0xac,0x5f,0x49,0x32,0x29,0x64,0x74,0x9, +0xac,0xbe,0x49,0x5, 0x28,0xb0,0xbd,0x3, 0x28,0xd, 0x7d,0x2, 0x2e,0x4, 0x29,0x64, +0x2d,0x13,0x1b,0x8, 0x10,0x80,0x9, 0x2e,0x24,0x29,0x64,0x9d,0x31,0x1b,0x28,0x30, +0xda,0x79,0x22,0x49,0x25,0x29,0x64,0x74,0x9, 0xac,0xbe,0x49,0x35,0x28,0xb0,0x9d, +0x32,0x12,0x21,0x0, 0x7d,0x13,0x22,0x7d,0x41,0x7d,0x2, 0x7c,0x37,0x7c,0x2b,0x74, +0x4, 0xac,0xb2,0x49,0x35,0x2b,0xbf,0x49,0xf5,0x2b,0xc1,0x74,0x4, 0xac,0xb3,0x49, +0x25,0x2b,0xbf,0x49,0x55,0x2b,0xc1,0x12,0x81,0xbf,0x7d,0x3f,0x9d,0x35,0x12,0x21, +0x0, 0x9d,0x34,0x12,0x21,0x0, 0x7e,0x54,0x62,0x6a,0x7e,0x44,0x0, 0xff,0xb, 0x2a, +0x20,0xbd,0x32,0x50,0xf, 0x12,0x67,0xeb,0x7e,0x14,0x62,0x6a,0x12,0x87,0xee,0x50, +0x3, 0x74,0x1, 0x22,0xe4,0x22,0xca,0xf8,0x6c,0xff,0x7e,0xb7,0x2f,0x9c,0x7e,0xc7, +0x2f,0x9e,0x7e,0x97,0x2f,0x84,0x7e,0xd7,0x2f,0x86,0x7e,0xa7,0x2f,0x98,0x7e,0xe7, +0x2f,0x9a,0xe4,0x7e,0x73,0x2f,0xa8,0x1b,0x70,0x7d,0x2b,0x7d,0x1c,0x12,0x81,0xc7, +0x70,0x2, 0x61,0x45,0x7e,0x73,0x2f,0xa8,0xbe,0x70,0xa, 0x28,0x13,0xe4,0x7e,0x70, +0x9, 0x7e,0x27,0x2f,0xa0,0x7e,0x17,0x2f,0xa2,0x12,0x81,0xc7,0x70,0x2, 0x61,0x45, +0x7e,0x73,0x2f,0xa8,0xbe,0x70,0x14,0x28,0x13,0xe4,0x7e,0x70,0x13,0x7e,0x27,0x2f, +0xa4,0x7e,0x17,0x2f,0xa6,0x12,0x81,0xc7,0x70,0x2, 0x61,0x45,0x7e,0x34,0x62,0x72, +0x12,0x83,0x4a,0x28,0x4a,0x7e,0x34,0x62,0x70,0x12,0x83,0x54,0x50,0x41,0x7e,0xb3, +0x2f,0x81,0x70,0x3b,0x7e,0x34,0x62,0x76,0x12,0x23,0x9e,0x12,0x83,0x5e,0x7d,0x8f, +0x9d,0x83,0xbe,0x87,0x2f,0x82,0x50,0x27,0x7e,0x34,0x62,0x74,0x12,0x87,0xc4,0x9d, +0xf8,0xbe,0xf7,0x2f,0x82,0x28,0x18,0x7d,0xfc,0x3e,0xf4,0xbd,0xfb,0x40,0x2, 0x61, +0x45,0xbd,0xa9,0x50,0x5, 0x7e,0xf0,0x20,0x80,0x7b,0x7e,0xf0,0x21,0x80,0x76,0x7e, +0x34,0x62,0x7a,0x12,0x83,0x54,0x28,0x6d,0x7e,0x34,0x62,0x78,0x12,0x83,0x4a,0x50, +0x64,0x7e,0xb3,0x2f,0x81,0x70,0x5e,0x7e,0x34,0x62,0x7e,0x12,0x23,0x9e,0x12,0x83, +0x5e,0x7d,0xaf,0x9d,0xa3,0xbe,0xa7,0x2f,0x82,0x50,0x4a,0x7e,0x34,0x62,0x7c,0x7e, +0x24,0x0, 0xff,0xb, 0x1a,0xa0,0x9d,0xfa,0xbe,0xf7,0x2f,0x82,0x28,0x37,0x7d,0xfb, +0x3e,0xf4,0xbd,0xfc,0x50,0x2f,0xbd,0xed,0x50,0x5, 0x7e,0xf0,0x22,0x80,0x26,0x12, +0x67,0xf2,0x49,0x35,0x2b,0xbb,0x49,0x15,0x2b,0xbd,0x49,0x25,0x2b,0xab,0x49,0x5, +0x2b,0xad,0x9d,0x10,0xbe,0x14,0x0, 0x20,0x18,0x8, 0x9d,0x32,0xbe,0x34,0x0, 0x10, +0x58,0x3, 0x7e,0xf0,0x23,0x7c,0xbf,0xda,0xf8,0x22,0x7e,0x24,0x0, 0xff,0xb, 0x1a, +0xf0,0xbd,0xfc,0x22,0x7e,0x24,0x0, 0xff,0xb, 0x1a,0xf0,0xbd,0xfb,0x22,0x7e,0x14, +0x62,0x8e,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0xf0,0x22,0x12,0x86,0x69,0x7a,0x37,0x2f, +0x9c,0x12,0x85,0xf4,0x7a,0x37,0x2f,0x9e,0x12,0x82,0x16,0x60,0x1, 0x22,0x7e,0x73, +0x2f,0xa8,0xa, 0x37,0x7a,0x35,0x24,0x7e,0x8, 0x2b,0xbf,0x7e,0x18,0x2f,0x80,0x2, +0x83,0x92,0xca,0xf8,0x7e,0x45,0x24,0x7c,0xb9,0x7a,0xb3,0x38,0x3f,0x74,0xff,0x7a, +0xb3,0x38,0x3e,0x6d,0x55,0x80,0x19,0x7d,0xf5,0x3e,0xf4,0x12,0x86,0x74,0x7d,0xe5, +0x3e,0xe4,0x59,0xfe,0x1f,0x34,0x69,0xf6,0x0, 0x2, 0x59,0xfe,0x21,0x14,0xb, 0x54, +0xbd,0x45,0x38,0xe3,0x7e,0x33,0x38,0x3f,0xbe,0x30,0x4, 0x38,0x2, 0x81,0x54,0x69, +0xf1,0x0, 0x1c,0x69,0x11,0x0, 0x1e,0xbd,0x1f,0x18,0x19,0x4d,0x11,0x78,0x4, 0x7e, +0x14,0x0, 0x1, 0x7d,0x3f,0x7d,0x21,0x12,0x1e,0xb9,0x7c,0xf7,0x74,0x40,0x7a,0xb3, +0x38,0x42,0x80,0x43,0x4d,0xff,0x78,0x4, 0x7e,0xf4,0x0, 0x1, 0x7d,0x31,0x7d,0x2f, +0x12,0x1e,0xb9,0x7c,0xf7,0x74,0x80,0x7a,0xb3,0x38,0x42,0x7d,0xf, 0x2d,0xf, 0xbd, +0x1, 0x8, 0x24,0x1a,0x2, 0x1a,0x0, 0x7e,0x73,0x38,0x42,0xa, 0x37,0x6d,0x22,0x12, +0x1e,0xeb,0x7d,0x5f,0x1a,0x4a,0x1a,0x48,0x7d,0x1f,0x1a,0x2, 0x1a,0x0, 0x2f,0x2, +0x12,0x1f,0x7, 0x7a,0x73,0x38,0x42,0xbe,0xf0,0x5, 0x58,0x14,0x12,0x84,0x73,0x12, +0xbf,0x3c,0x12,0x84,0x73,0x12,0x84,0x7c,0x12,0x84,0x73,0x12,0xa5,0x28,0x80,0xa, +0x74,0x7d,0x80,0x2, 0x74,0x7f,0x7a,0xb3,0x38,0x3e,0xe4,0x7a,0xb3,0x38,0x3f,0x7e, +0x73,0x39,0x1, 0xbe,0x73,0x38,0x3e,0x48,0x6, 0x7e,0xb3,0x38,0x40,0x80,0x1, 0xe4, +0xda,0xf8,0x22,0x7e,0x8, 0x1f,0x34,0x7e,0x18,0x21,0x14,0x22,0xca,0x3b,0x7f,0x71, +0x7e,0x60,0x1, 0xb, 0xa, 0x20,0xb, 0x7a,0x50,0x7c,0x4b,0x7a,0x53,0x22,0xf4,0x7a, +0x43,0x23,0xe4,0x7e,0x70,0x1, 0x7e,0xa0,0x1, 0xa1,0x9d,0x7e,0x90,0x2, 0xac,0x9a, +0x7f,0x60,0x2d,0xd4,0xb, 0x6a,0xd0,0x7d,0x7d,0x7c,0xbf,0xf5,0x26,0x7f,0x67,0x2d, +0xd4,0xb, 0x6a,0x40,0xa, 0xd5,0xa, 0xbb,0x7d,0xab,0x9d,0xad,0x7d,0x7a,0x7c,0x8f, +0xbe,0x80,0x0, 0x58,0x5, 0x6e,0x80,0xff,0xb, 0x80,0xa, 0xa4,0xa, 0x79,0x9d,0x7a, +0xbe,0xf0,0x0, 0x58,0x5, 0x6e,0xf0,0xff,0xb, 0xf0,0xbe,0x80,0x2, 0x58,0x7, 0xbe, +0xf0,0x2, 0x58,0x2, 0xa1,0x9b,0xbe,0x60,0x0, 0x18,0x2, 0xa1,0x83,0xbe,0x70,0xec, +0x28,0x2, 0xa1,0xa7,0xbe,0x80,0x8, 0x58,0x5, 0xbe,0xf0,0x8, 0x48,0x61,0xa, 0xa7, +0xb, 0xa4,0x7d,0x6a,0x7c,0x7d,0xa, 0xa5,0x2d,0xab,0x12,0x85,0xeb,0x19,0xba,0x22, +0xf4,0xa, 0xd9,0xa, 0xa4,0x2d,0xad,0x12,0x85,0xeb,0x19,0xba,0x23,0xe4,0x9, 0xba, +0x22,0xf4,0xa, 0xdb,0xa, 0xc5,0x2d,0xcd,0xe, 0xc4,0x7d,0x6c,0x7c,0xbd,0xa, 0xc7, +0x19,0xbc,0x22,0xf3,0x9, 0xbc,0x23,0xe4,0xa, 0xcb,0xa, 0xa4,0x2d,0xac,0x12,0x85, +0xeb,0x19,0xba,0x23,0xe3,0x2d,0xdb,0x12,0x85,0xe2,0x19,0xbd,0x22,0xf5,0xa, 0xd9, +0x12,0x85,0xe0,0x19,0xbd,0x23,0xe5,0xb, 0xd5,0x7d,0x6d,0x7c,0x7d,0x80,0x24,0xbe, +0x80,0x4, 0x58,0x5, 0xbe,0xf0,0x4, 0x48,0x1a,0xe5,0x26,0xa, 0xcb,0xa, 0xd5,0x12, +0x85,0xe0,0x19,0xbd,0x22,0xf4,0xa, 0xc9,0xa, 0xd4,0x12,0x85,0xe0,0x19,0xbd,0x23, +0xe4,0xb, 0x70,0xbe,0x70,0xf0,0x50,0x1f,0x7e,0x51,0x26,0x7c,0x49,0xe5,0x26,0xa, +0xd7,0x19,0xbd,0x22,0xf4,0x19,0x9d,0x23,0xe4,0xb, 0x70,0xb, 0xa0,0x7e,0xb3,0x38, +0x3f,0xbc,0xba,0x28,0x2, 0x81,0x9b,0x7a,0x73,0x38,0x3f,0x7e,0xa0,0x1, 0x80,0x25, +0xa, 0x3a,0x9, 0xb3,0x22,0xf4,0xa, 0x2b,0x7e,0x70,0x2, 0xac,0x7a,0x7f,0x60,0x2d, +0xd3,0x1b,0x6a,0x20,0xa, 0x2a,0x9, 0xb2,0x23,0xe4,0xa, 0x4b,0x2d,0x3f,0x7d,0x2e, +0x1b,0x1a,0x40,0xb, 0xa0,0x7e,0xb3,0x38,0x3f,0xbc,0xba,0x38,0xd3,0xda,0x3b,0x22, +0x2d,0xdc,0xe, 0xd4,0x7d,0x6d,0x7c,0xbd,0xa, 0xd7,0x22,0xe, 0xa4,0x7d,0x6a,0x7c, +0xbd,0xa, 0xa7,0x22,0x7e,0x37,0x2f,0x96,0x9e,0x37,0x2f,0x8e,0x22,0x7e,0x17,0x2f, +0x90,0xbd,0x13,0x28,0xa, 0x7a,0x37,0x2f,0x90,0x7a,0x27,0x2f,0x92,0x80,0x10,0x7e, +0x17,0x2f,0x88,0xbd,0x13,0x50,0x8, 0x7a,0x37,0x2f,0x88,0x7a,0x27,0x2f,0x8a,0x7e, +0x17,0x2f,0x8e,0xbd,0x12,0x28,0xa, 0x7a,0x27,0x2f,0x8e,0x7a,0x37,0x2f,0x8c,0x80, +0x10,0x7e,0x17,0x2f,0x96,0xbd,0x12,0x50,0x8, 0x7a,0x27,0x2f,0x96,0x7a,0x37,0x2f, +0x94,0x7e,0xb3,0x2f,0xa8,0xb4,0xa, 0xf, 0x12,0x86,0x69,0x7a,0x37,0x2f,0xa0,0x12, +0x85,0xf4,0x7a,0x37,0x2f,0xa2,0x22,0xb4,0x14,0xe, 0x12,0x86,0x69,0x7a,0x37,0x2f, +0xa4,0x12,0x85,0xf4,0x7a,0x37,0x2f,0xa6,0x22,0x7e,0x37,0x2f,0x88,0x9e,0x37,0x2f, +0x90,0x22,0x7d,0xf4,0x3e,0xf4,0x7f,0x60,0x2d,0xdf,0xb, 0x6a,0xf0,0x22,0x7c,0xab, +0x6d,0x44,0x80,0x29,0x4c,0xaa,0x68,0x11,0x12,0x86,0xb5,0x60,0x5, 0x3e,0xe4,0x14, +0x78,0xfb,0x12,0x86,0x72,0x2d,0xfe,0x80,0xf, 0x12,0x86,0xb5,0x60,0x5, 0x3e,0xe4, +0x14,0x78,0xfb,0x12,0x86,0x72,0x9d,0xfe,0x1b,0x6a,0xf0,0xb, 0x44,0x7e,0xf5,0x2a, +0xbd,0xf4,0x38,0xd0,0x22,0x7f,0x71,0x2d,0xf4,0x7e,0x7b,0xb0,0x1a,0xeb,0x7f,0x61, +0x2e,0xd5,0x2a,0x7e,0x6b,0xb0,0x22,0x7c,0x7b,0x90,0x60,0x93,0xe4,0x93,0xa, 0x1b, +0x7e,0x63,0x2a,0x71,0xa, 0x6, 0x2d,0x1, 0x7e,0x63,0x2a,0x6e,0xa, 0x16,0xad,0x10, +0x7d,0x21,0x12,0x87,0xdc,0xa, 0x26,0x7a,0x25,0x2a,0x74,0x1d,0xac,0x7b,0x2e,0x34, +0x37,0x44,0x6d,0x22,0xe4,0x2, 0x86,0x7e,0x7c,0x2b,0x7e,0xb3,0x1f,0x33,0xbc,0x2b, +0x68,0x4f,0x12,0x87,0x56,0x7c,0x3b,0x7c,0xb2,0x12,0x87,0x56,0x7c,0xab,0xbe,0x30, +0xff,0x68,0x3e,0xbe,0xa0,0xff,0x68,0x39,0x7e,0x70,0x4, 0xac,0x73,0xa, 0x2a,0x12, +0x91,0x67,0xbe,0xb0,0x2, 0x38,0x2a,0xa, 0x2b,0x7e,0x34,0x2, 0xe0,0xad,0x32,0x2e, +0x34,0x16,0x93,0x6d,0x22,0x30,0x16,0x3, 0x2, 0x86,0xc7,0x7e,0xb3,0x2b,0x1d,0xb4, +0x1, 0xf, 0x12,0xc0,0x1b,0x7a,0x55,0x2a,0x7e,0x8, 0xd, 0xc8,0x74,0x1, 0x2, 0x86, +0x7e,0x22,0x7e,0xb3,0x2b,0xf, 0x7c,0xab,0x6c,0x77,0x7e,0x50,0x5, 0xac,0x57,0x9, +0x62,0x26,0x33,0xbc,0x6a,0x78,0x3, 0x7c,0xb7,0x22,0xb, 0x70,0xbe,0x70,0x4, 0x40, +0xe9,0x74,0xff,0x22,0x7e,0xb3,0x37,0x31,0x70,0x6, 0x12,0x87,0xad,0x2, 0x87,0xb6, +0x12,0x63,0x9, 0x12,0xbd,0x6d,0x50,0xa, 0x12,0x83,0x6a,0x7c,0x3b,0x12,0x87,0xad, +0x80,0x5, 0x12,0xbe,0x14,0x7c,0x3b,0x4c,0x33,0x68,0x11,0x7c,0xb3,0x12,0xbc,0xf1, +0x60,0xa, 0x7a,0x33,0x37,0x34,0x74,0x1, 0x7a,0xb3,0x2a,0x8, 0x22,0xe4,0x7a,0xb3, +0x2f,0x80,0x22,0x2, 0x81,0x23,0xe4,0x7a,0xb3,0x38,0xdd,0x22,0x7e,0x24,0x0, 0xff, +0xb, 0x1a,0xd0,0x22,0x7e,0x24,0x0, 0xff,0xb, 0x1a,0x80,0x22,0x7e,0x24,0x0, 0xff, +0xb, 0x1a,0x10,0x22,0x7e,0x90,0x40,0xac,0x89,0x1b,0x44,0x22,0x3e,0x24,0x7e,0xf, +0x38,0xd9,0x2d,0x12,0x22,0x49,0x25,0x29,0x62,0x74,0x9, 0xac,0xbe,0x22,0x7e,0x4, +0x0, 0xff,0xb, 0xa, 0x20,0xbd,0x32,0x22,0x7d,0x13,0x7d,0x32,0x6d,0x22,0x74,0x6, +0x2f,0x11,0x14,0x78,0xfb,0xb, 0x14,0x12,0x1f,0x5, 0x7d,0x53,0xbe,0x54,0x0, 0xff, +0x28,0x4, 0x7e,0x54,0x0, 0x40,0x22,0x12,0x6e,0x8f,0x50,0x3, 0xd2,0xf, 0x22,0xc2, +0xf, 0x22,0x12,0xac,0xe9,0x12,0x88,0x2b,0x2, 0x88,0x17,0x7e,0x8, 0x24,0xf2,0x7e, +0x34,0x0, 0xc, 0xe4,0x12,0x20,0xde,0x12,0xaa,0x61,0x12,0xaa,0x58,0xa9,0xd1,0xcb, +0x12,0xc1,0x22,0x7a,0x37,0x24,0xf6,0x7e,0x1f,0x38,0xd9,0x7a,0x37,0x24,0xf8,0x7e, +0x1f,0x13,0x86,0x7a,0x37,0x24,0xfa,0x6d,0x33,0x12,0xb4,0x77,0x2, 0xd, 0x7, 0x12, +0x54,0x94,0x12,0x88,0xb9,0x12,0x8c,0xad,0x7e,0xb3,0x37,0x6, 0xb4,0x1, 0x1e,0x7e, +0x34,0x61,0xc0,0x12,0x87,0xcc,0x7e,0x24,0x0, 0x5, 0xad,0x12,0x7a,0x17,0x28,0xa1, +0x7e,0x14,0x61,0xc2,0x12,0x64,0xd3,0xad,0x32,0x7a,0x37,0x28,0xa3,0x7e,0xb3,0x39, +0x11,0x60,0x7, 0x14,0x7a,0xb3,0x39,0x11,0x80,0x6, 0x7e,0xb3,0x28,0xac,0x60,0x9, +0x12,0x88,0x22,0x12,0x8c,0x90,0x12,0xb3,0xd3,0x7e,0xb3,0x28,0xad,0x60,0x9, 0x12, +0xbb,0x30,0x12,0xaa,0x6a,0x2, 0x8d,0x10,0x22,0x7e,0x90,0x1, 0x7e,0xb3,0x2f,0xa9, +0xbe,0xb0,0xff,0x50,0x5, 0x4, 0x7a,0xb3,0x2f,0xa9,0x7e,0x34,0x61,0xc0,0x12,0x23, +0x9e,0x12,0xc0,0xb1,0x12,0x23,0x9e,0x7a,0x37,0x28,0xa3,0x12,0x8c,0x87,0xb, 0x1a, +0xf0,0x7e,0x34,0x61,0x4f,0x12,0x87,0xbc,0xe4,0x7a,0xb3,0x28,0xac,0x74,0x1, 0x7a, +0xb3,0x28,0xad,0x7e,0x34,0xff,0xfa,0xad,0x3f,0x12,0x8f,0xdc,0x7d,0xc3,0xe, 0xc4, +0x7e,0xe7,0x7, 0xfe,0xbd,0xe3,0x58,0x15,0x7e,0xe7,0x7, 0xfc,0xbd,0xec,0x58,0xd, +0x12,0x8a,0x7c,0x8, 0x8, 0x12,0x8b,0xe, 0x60,0x3, 0x12,0x8a,0x95,0x12,0x8b,0xe, +0xa, 0xeb,0x4d,0xee,0x68,0x3b,0x6d,0xee,0x9d,0xef,0xbe,0xe7,0x7, 0xfe,0x18,0x6, +0xbe,0xe7,0x7, 0xfc,0x8, 0x2b,0x12,0x8a,0x7c,0x8, 0x26,0x7e,0x37,0x28,0x8e,0x12, +0x21,0x0, 0xbe,0x37,0x28,0x8a,0x8, 0x19,0x12,0x8a,0x74,0x28,0x14,0x7e,0x83,0x28, +0x85,0xbe,0x80,0x1, 0x28,0xb, 0x7e,0xc7,0x7, 0xfa,0xbd,0xcf,0x58,0x3, 0x12,0x8a, +0x95,0x12,0xad,0x28,0x40,0x5, 0xe4,0x7a,0xb3,0x28,0xa8,0x12,0xc1,0x1a,0x68,0x6, +0x7e,0xb3,0x39,0xb, 0x60,0x7, 0xe4,0x7a,0xb3,0x28,0xad,0x80,0x7d,0x12,0x8a,0x74, +0x28,0x5, 0xe4,0x7a,0xb3,0x28,0xad,0x30,0x10,0x5, 0xe4,0x7a,0xb3,0x28,0xad,0x12, +0xad,0x66,0x50,0xd, 0x74,0x1, 0x7a,0xb3,0x28,0xad,0x12,0x8a,0xa6,0x7c,0x9b,0x80, +0x1a,0x7e,0xb3,0x26,0x84,0x70,0x14,0x7e,0xb3,0x26,0x85,0x70,0xe, 0x12,0x8a,0x74, +0x28,0x9, 0x7e,0x90,0x3, 0x74,0x1, 0x7a,0xb3,0x28,0xad,0x7e,0xc7,0x7, 0xfa,0xbe, +0xc4,0x5, 0xdc,0x8, 0x17,0x12,0x8a,0x74,0x28,0x12,0x6d,0xcc,0x9d,0xcd,0xbe,0xc7, +0x28,0x8e,0x58,0x8, 0x12,0x8a,0x87,0xe4,0x7a,0xb3,0x28,0xad,0xa, 0x29,0x7e,0x14, +0x61,0xc0,0x12,0x64,0xd3,0xad,0x32,0x7a,0x37,0x28,0xa1,0xa, 0x29,0x7e,0x14,0x61, +0xc2,0x12,0x64,0xd3,0xad,0x32,0x7a,0x37,0x28,0xa3,0x12,0x0, 0x66,0x50,0xd, 0xe4, +0x7a,0xb3,0x28,0xad,0x12,0x8f,0xe3,0x28,0x3, 0x12,0x8a,0x87,0x7e,0xc7,0x28,0x8a, +0xbd,0xcd,0x8, 0x19,0x12,0x9b,0xf, 0x6e,0x34,0xff,0xff,0xb, 0x34,0xbe,0x37,0x28, +0x8e,0x58,0xa, 0x12,0x0, 0x66,0x50,0x5, 0xe4,0x7a,0xb3,0x28,0xad,0x12,0x8b,0x8e, +0xb4,0x1, 0x5, 0xe4,0x7a,0xb3,0x28,0xad,0x7e,0xb3,0x28,0xac,0xb4,0x1, 0x9, 0xe4, +0x7a,0xb3,0x28,0x84,0x7a,0xb3,0x2a,0x2, 0x12,0xac,0x90,0x7e,0xb3,0x2f,0xaa,0xbe, +0xb0,0x0, 0x28,0x1f,0x14,0x7a,0xb3,0x2f,0xaa,0x70,0x18,0xe4,0x7a,0xb3,0x28,0xad, +0x12,0x8c,0x7f,0x7a,0xb3,0x16,0x91,0x7a,0xb3,0x16,0x90,0x7a,0xb3,0x28,0x84,0x7a, +0xb3,0x26,0x83,0x22,0x7e,0x83,0x28,0x84,0xbe,0x80,0x0, 0x22,0x6d,0xee,0x9e,0xe7, +0x2a,0x5a,0xbe,0xe7,0x28,0x8e,0x22,0xe4,0x7a,0xb3,0x2f,0xaa,0x7a,0xb3,0x28,0xac, +0x74,0x2, 0x2, 0x29,0xfa,0x74,0x2, 0x7a,0xb3,0x2f,0xaa,0xe4,0x7a,0xb3,0x2f,0xa9, +0x12,0x8c,0x7f,0x2, 0x29,0xfa,0x7e,0xa0,0x1, 0x7e,0x47,0x7, 0xf8,0x12,0x8c,0x87, +0xb, 0x1a,0x0, 0x7e,0x34,0xff,0xfa,0xad,0x30,0x7e,0x14,0x0, 0x2, 0x12,0x8b,0x6, +0x8, 0x12,0x7e,0xb3,0x28,0xac,0x60,0x7, 0xe4,0x7a,0xb3,0x28,0xad,0x80,0x32,0x7e, +0xa0,0x5, 0x80,0x2d,0x7e,0x34,0xff,0xfb,0x12,0x8b,0x4, 0x8, 0x5, 0x7e,0xa0,0x4, +0x80,0x1f,0x7e,0x34,0xff,0xfc,0x12,0x8b,0x4, 0x8, 0x5, 0x7e,0xa0,0x3, 0x80,0x11, +0x7e,0x34,0xff,0xfd,0x12,0x8b,0x4, 0x8, 0x5, 0x7e,0xa0,0x2, 0x80,0x3, 0x7e,0xa0, +0x1, 0x7c,0xba,0x22,0xad,0x30,0x7d,0x21,0x12,0x1e,0xb9,0xbd,0x34,0x22,0x6c,0x66, +0x90,0x60,0xa7,0xe4,0x93,0xbe,0xb0,0x0, 0x28,0x71,0x90,0x60,0xaa,0xe4,0x93,0x70, +0x6a,0x7e,0xb3,0x28,0xa8,0xb4,0x1, 0x63,0x7e,0x73,0x26,0xf2,0xbe,0x70,0x0, 0x28, +0x5a,0x6c,0x33,0x80,0x4e,0xa, 0x23,0x9, 0x72,0x26,0xe6,0x7e,0xb3,0x2a,0x6e,0x14, +0xbc,0x7b,0x78,0x3d,0x6c,0x22,0x80,0x27,0x7c,0xb2,0x7c,0x73,0x12,0x9d,0x8b,0x50, +0x1c,0xa, 0x22,0x7e,0x73,0x2a,0x6e,0xa, 0x7, 0x2d,0x2, 0x3e,0x4, 0x49,0x20,0x4, +0xfc,0x6d,0x0, 0x9e,0x7, 0x2a,0x4f,0xbd,0x20,0x58,0x2, 0xb, 0x60,0xb, 0x20,0x7e, +0x73,0x2a,0x6d,0xbc,0x72,0x38,0xd1,0xbe,0x60,0x0, 0x28,0x3, 0x74,0x1, 0x22,0xe4, +0x22,0xb, 0x30,0x7e,0x73,0x26,0xf2,0xbc,0x73,0x38,0xaa,0x74,0x1, 0x22,0xca,0x3b, +0x12,0xa6,0x4e,0x38,0x2, 0x81,0x55,0x7e,0xc3,0x2f,0xad,0x4c,0xcc,0x78,0x3d,0x7a, +0xb3,0x2f,0xad,0xe4,0x7a,0xb3,0x2f,0xaf,0x6c,0xaa,0x80,0x26,0x12,0x8c,0x60,0x7e, +0x70,0x2, 0xac,0x7a,0x9, 0xd3,0x26,0xfa,0x9, 0xe3,0x26,0xfb,0x7a,0x49,0xd0,0x19, +0xe4,0x0, 0x1, 0x74,0x1, 0x19,0xb4,0x0, 0x8, 0x12,0x8c,0x6a,0x59,0x34,0x0, 0x2, +0xb, 0xa0,0x7e,0xb3,0x28,0x84,0xbc,0xba,0x38,0xd2,0x80,0x7f,0x7c,0xfc,0x6c,0xaa, +0x80,0x35,0x12,0x8c,0x60,0x7e,0x49,0xd0,0x9, 0xe4,0x0, 0x1, 0x9, 0xb4,0x0, 0x8, +0x70,0x4, 0x1b,0xf0,0x80,0x1f,0x12,0x8c,0x6a,0x7d,0x23,0x49,0x34,0x0, 0x2, 0x9d, +0x32,0x12,0x21,0x0, 0x7d,0xf3,0xbe,0xf4,0x0, 0x23,0x8, 0x9, 0x74,0x5, 0x19,0xb4, +0x0, 0x8, 0x75,0x4c,0x1, 0xb, 0xa0,0xbc,0xfa,0x38,0xc7,0x4c,0xff,0x78,0x2, 0x80, +0x26,0x7e,0x73,0x2f,0xaf,0xbe,0x70,0x4, 0x40,0x22,0x6c,0xaa,0x80,0xe, 0x12,0x8c, +0x60,0x9, 0xb4,0x0, 0x8, 0xbe,0xb0,0x5, 0x68,0x6, 0xb, 0xa0,0xbc,0xfa,0x38,0xee, +0xbc,0xfa,0x78,0x3, 0x75,0x4c,0x0, 0x12,0x8c,0x71,0x80,0xf, 0x7c,0xb7,0x4, 0x7a, +0xb3,0x2f,0xaf,0x80,0x6, 0x12,0x8c,0x71,0x75,0x4c,0x0, 0xe5,0x4c,0xda,0x3b,0x22, +0x7e,0x90,0x9, 0xac,0x9a,0x2e,0x44,0x2f,0xb0,0x22,0x7c,0xbd,0x7c,0x7e,0x2, 0x2c, +0x40,0xe4,0x7a,0xb3,0x2f,0xae,0x7a,0xb3,0x2f,0xad,0x7a,0xb3,0x2f,0xaf,0x22,0x74, +0x1, 0x7a,0xb3,0x28,0xac,0xe4,0x22,0x7e,0x34,0x61,0x55,0x7e,0x24,0x0, 0xff,0x22, +0x12,0x8c,0xcd,0x6d,0x33,0x7a,0x37,0x36,0xdd,0x6c,0xaa,0x80,0x5, 0x12,0x8d,0x5e, +0xb, 0xa0,0x12,0x8d,0x8, 0x38,0xf6,0xe4,0x7a,0xb3,0x36,0x72,0x22,0x12,0xb0,0xbe, +0x60,0x1a,0x74,0x1, 0x7a,0xb3,0x28,0xad,0x7e,0x37,0x28,0xa1,0x3e,0x34,0x7a,0x37, +0x28,0xa1,0x7e,0x37,0x28,0xa3,0x3e,0x34,0x7a,0x37,0x28,0xa3,0x22,0x7e,0x37,0x38, +0xd2,0x12,0x25,0x3c,0x7a,0x37,0x36,0xdd,0x6c,0xaa,0x80,0x23,0x12,0x8d,0x8, 0x28, +0x26,0xa, 0x4a,0x9, 0x64,0x36,0x76,0xbc,0x6b,0x50,0x12,0x7e,0x50,0x2, 0xac,0x5a, +0x49,0x42,0x38,0xcc,0x7e,0x70,0xc, 0xac,0x67,0x59,0x43,0x36,0x80,0xb, 0xa0,0x7e, +0xb3,0x36,0x73,0xbc,0xba,0x38,0xd5,0x22,0x90,0x61,0xc5,0xe4,0x93,0xbc,0xba,0x22, +0x6c,0xaa,0x80,0x44,0x7e,0x70,0xc, 0xac,0x7a,0x12,0xae,0xc5,0xbe,0x34,0x3, 0xe8, +0x8, 0x5, 0x12,0x8d,0x5e,0x80,0x2f,0x7e,0x50,0xc, 0xac,0x5a,0x49,0x32,0x36,0x84, +0x49,0x12,0x36,0x80,0xbd,0x13,0x28,0xf, 0x7d,0x2, 0x2e,0x4, 0x36,0x84,0x7d,0x13, +0xb, 0x15,0x1b,0x8, 0x10,0x80,0xf, 0xbe,0x34,0x0, 0x2, 0x28,0x9, 0x2e,0x24,0x36, +0x84,0x1b,0x35,0x1b,0x28,0x30,0xb, 0xa0,0x12,0x8d,0x8, 0x38,0xb7,0x22,0x7e,0x50, +0xc, 0xac,0x5a,0x49,0x32,0x36,0x80,0x59,0x32,0x36,0x84,0x22,0x7e,0xb3,0x36,0x66, +0x60,0x6, 0x14,0x7a,0xb3,0x36,0x66,0x22,0x12,0x8c,0xcd,0x90,0x61,0xc5,0xe4,0x93, +0xbe,0xb0,0x4, 0x28,0x3, 0x12,0x8d,0xef,0x7e,0xb3,0x36,0xec,0x70,0xe, 0x7e,0xb3, +0x39,0x12,0xb4,0x1, 0x7, 0xe4,0x12,0x8d,0xb3,0x12,0xc0,0x95,0x12,0x67,0x1f,0x12, +0x8e,0xa2,0x7e,0xa3,0x36,0xec,0x7a,0xa3,0x39,0x12,0xbe,0xb0,0xff,0x68,0x3, 0x2, +0x8d,0xb3,0x22,0xca,0xf8,0x7c,0xfb,0x74,0x5, 0xac,0xbf,0x12,0xc0,0xc3,0x12,0xc0, +0x39,0x12,0x6f,0xff,0x12,0xc0,0x30,0x7a,0xf3,0x0, 0x4f,0x7c,0xbf,0x12,0xb3,0x54, +0x12,0x6e,0x29,0x74,0x5, 0xac,0xbf,0x9, 0xb5,0x26,0x37,0x12,0xaf,0x4, 0x12,0x8d, +0xef,0x12,0x23,0x4, 0xe4,0x7a,0xb3,0x16,0x91,0xda,0xf8,0x22,0x12,0x8f,0xd2,0x7e, +0xb3,0x2b,0xf, 0xca,0x3b,0x7c,0xeb,0x6c,0xff,0x7e,0x34,0x60,0xd6,0x7e,0x24,0x0, +0xff,0xb, 0x1a,0xc0,0x7e,0x73,0x37,0xcd,0xa, 0xb7,0x7e,0xb3,0x2b,0x10,0xf5,0x36, +0x12,0x8f,0xca,0xbe,0xd0,0x4, 0x38,0x5, 0xe4,0x7a,0xb3,0x36,0x72,0xa, 0x3e,0xad, +0x3b,0x7d,0xa3,0x2d,0xac,0x75,0x35,0x0, 0x7e,0xa3,0x36,0x72,0xbc,0xad,0x40,0x2, +0x80,0x19,0xbe,0xa0,0x0, 0x28,0x19,0x74,0x5, 0xa4,0x9, 0x75,0x26,0x33,0xbc,0x7e, +0x78,0xe, 0x7c,0xbd,0x14,0xbe,0xb3,0x36,0x72,0x78,0x5, 0xe4,0x7a,0xb3,0x36,0x72, +0x7e,0xc3,0x36,0x72,0x80,0x41,0x7e,0xb3,0x36,0x72,0x4, 0x7a,0xb3,0x36,0x72,0x7e, +0x90,0x5, 0xac,0x9c,0x9, 0xa4,0x26,0x33,0xbc,0xae,0x68,0x29,0xe5,0x35,0xa, 0xdb, +0x19,0xcd,0x36,0x76,0xa, 0x9a,0xad,0x9b,0x2d,0x9c,0x7e,0xa1,0x35,0x7c,0xba,0x4, +0xf5,0x35,0x7c,0xba,0x7d,0x39,0x7d,0x2a,0x7e,0x31,0x36,0x12,0x10,0x0, 0xb, 0xf0, +0xbe,0xf0,0x3, 0x50,0x6, 0xb, 0xc0,0xbc,0xdc,0x38,0xbb,0x7a,0xf3,0x36,0x73,0xda, +0x3b,0x22,0xca,0xd8,0xca,0x79,0x7e,0xe0,0xff,0x12,0xaf,0x5a,0x7e,0xb3,0x36,0x6b, +0xb4,0x1, 0x8, 0x12,0x88,0x22,0xe4,0x7a,0xb3,0x36,0x6b,0x7e,0xb3,0x36,0x6a,0x60, +0x4, 0x74,0xff,0xe1,0xc5,0x7e,0xb3,0x36,0x69,0xb4,0x2, 0x2, 0x80,0x2, 0xe1,0xb9, +0x12,0xc1,0x12,0x38,0xc, 0x12,0x8f,0xf3,0x38,0x7, 0x12,0x8f,0xeb,0x38,0x2, 0xe1, +0xb9,0x12,0x8f,0xca,0xa, 0x3d,0x1b,0x34,0xbe,0x34,0x0, 0x3, 0x48,0x4, 0x74,0x3, +0x80,0x3, 0x7c,0xbd,0x14,0x12,0xae,0x34,0x7c,0xfb,0x7e,0xb3,0x36,0x68,0x4, 0x7a, +0xb3,0x36,0x68,0x90,0x61,0xc5,0xe4,0x93,0x14,0x12,0xae,0x34,0x7c,0xab,0xbe,0xa0, +0xff,0x68,0x2c,0xbe,0xf0,0xff,0x68,0x25,0x7e,0x30,0xc, 0xac,0x3f,0x49,0x21,0x36, +0x7e,0x7e,0xf4,0x61,0xcc,0x7e,0xe4,0x0, 0xff,0xb, 0x7a,0x30,0xbd,0x23,0x28,0xf, +0x12,0xae,0xbb,0x3e,0x34,0xbd,0x23,0x28,0x6, 0x7c,0xfa,0x80,0x2, 0x7c,0xfa,0xbe, +0xf0,0xff,0x78,0x11,0xe4,0x7a,0xb3,0x36,0x68,0x7a,0xb3,0x36,0x69,0x7a,0xb3,0x36, +0x75,0x74,0xff,0x80,0x70,0x90,0x61,0xd4,0xe4,0x93,0xbe,0xb3,0x36,0x68,0x50,0x59, +0x74,0xc, 0xac,0xbf,0x49,0x25,0x36,0x7e,0x7e,0x14,0x61,0xcc,0x12,0x64,0xd3,0xbd, +0x23,0x50,0x3d,0x7e,0x34,0x61,0xd0,0x12,0x23,0x9e,0xbe,0x37,0x36,0x64,0x40,0xd, +0x7e,0x34,0x61,0xd2,0x12,0x23,0x9e,0xbe,0x37,0x36,0x6f,0x50,0x23,0x74,0x5, 0xac, +0xbf,0x9, 0x75,0x26,0x33,0xbe,0x73,0x2b,0xf, 0x68,0x15,0x7c,0xef,0xbe,0xe0,0x4, +0x50,0x8, 0x12,0x87,0x52,0xbe,0xb0,0x4, 0x40,0x6, 0x74,0x1, 0x7a,0xb3,0x36,0x6b, +0xe4,0x7a,0xb3,0x36,0x75,0x7a,0xb3,0x36,0x69,0xbe,0xe0,0xff,0x68,0x5, 0xe4,0x7a, +0xb3,0x36,0x68,0x7c,0xbe,0xda,0x79,0xda,0xd8,0x22,0x90,0x61,0xc5,0xe4,0x93,0x7c, +0xdb,0x22,0x12,0xae,0xd2,0x74,0x1, 0x7a,0xb3,0x36,0x66,0x22,0x7e,0x24,0x0, 0x2, +0x2, 0x1e,0xb9,0x7e,0x73,0x28,0x84,0xbe,0x70,0x0, 0x22,0x7e,0x73,0x26,0xf5,0xbe, +0x70,0x0, 0x22,0x7e,0x73,0x26,0xf4,0xbe,0x70,0x0, 0x22,0xca,0xf8,0x7e,0xf3,0x2a, +0x70,0x7a,0x37,0x1f,0x3a,0x7e,0x34,0x15,0x9e,0x7a,0x37,0x1f,0x3c,0xe4,0x7a,0xb3, +0x1f,0x34,0x7a,0xb3,0x1f,0x35,0x7e,0x73,0x2a,0x6f,0x7a,0x73,0x1f,0x36,0x7a,0xf3, +0x1f,0x37,0x7a,0xb3,0x1f,0x38,0x7a,0xb3,0x1f,0x39,0x7e,0x8, 0x1f,0x34,0x12,0x90, +0x50,0x6d,0x22,0x7d,0x3, 0x6d,0x11,0x7e,0x37,0x15,0xa0,0x2f,0x10,0x7e,0x33,0x1f, +0x36,0x6d,0x0, 0x12,0x1f,0x7, 0xa, 0x1f,0x6d,0x0, 0x12,0x1f,0x7, 0xda,0xf8,0x22, +0x12,0xc, 0x29,0x7e,0x37,0x15,0x9e,0x22,0x7a,0x37,0x1f,0x38,0x7e,0x34,0x15,0xa8, +0x7a,0x37,0x1f,0x3c,0x7e,0x34,0x15,0x9e,0x7a,0x37,0x1f,0x3a,0x7e,0x73,0x2a,0x6f, +0x7a,0x73,0x1f,0x35,0x7e,0x73,0x2a,0x70,0x7a,0x73,0x1f,0x34,0x7e,0x37,0x2a,0x5c, +0x7a,0x37,0x1f,0x3e,0x7e,0x37,0x2a,0x5e,0x7a,0x37,0x1f,0x40,0x7e,0x37,0x2a,0x60, +0x7a,0x37,0x1f,0x42,0x74,0x1, 0x7a,0xb3,0x1f,0x36,0x7a,0xb3,0x1f,0x37,0x7e,0x8, +0x1f,0x34,0x7e,0x18,0x1f,0x44,0x12,0x8, 0x0, 0x7e,0x37,0x1f,0x4e,0x7e,0x27,0x1f, +0x4a,0xbd,0x23,0x28,0x2, 0x7d,0x32,0x22,0x74,0xc8,0x7a,0xb3,0x39,0x6, 0xc2,0x17, +0x80,0xa, 0x12,0x45,0xd6,0x30,0x17,0x4, 0x75,0xe9,0xff,0x22,0x12,0x47,0xff,0x68, +0xf1,0x22,0x74,0x1, 0x12,0x90,0xf1,0x20,0x17,0x6, 0x12,0x46,0x4e,0x12,0x90,0xfa, +0x7e,0xb3,0x34,0x3a,0xb4,0x1, 0x6, 0x12,0x90,0xb8,0x12,0x90,0xfa,0xe4,0x2, 0x90, +0xf1,0xbe,0xb0,0x8, 0x50,0x3, 0x12,0x90,0xff,0x22,0xd2,0x4, 0x2, 0x45,0x5a,0xa, +0x5b,0x2e,0x54,0x0, 0x8, 0xf5,0xcc,0x22,0x12,0x47,0xff,0x68,0xfb,0x20,0x93,0xfd, +0x22,0x7e,0x34,0x61,0x59,0x2, 0x23,0x9e,0x7e,0xb3,0x37,0x6, 0x70,0x2e,0x7e,0x73, +0x36,0xe9,0xbe,0x70,0x10,0x40,0x2, 0x6c,0x77,0x7e,0xb3,0x37,0x31,0xb4,0x1, 0x3, +0x7e,0x70,0x6, 0xa, 0x37,0x2e,0x34,0xf, 0xf0,0x12,0x91,0x6d,0x7c,0xab,0xe5,0x4e, +0xa, 0x3b,0x2e,0x37,0x38,0x83,0x7a,0x37,0x38,0x83,0x80,0xc, 0x7e,0xa3,0x36,0xea, +0xbe,0xa0,0x7f,0x28,0x3, 0x7e,0xa0,0x7f,0x7c,0xba,0x2, 0x91,0x5d,0x75,0x4e,0x0, +0x7a,0xb3,0x39,0x6, 0xc2,0x17,0x22,0x2d,0x32,0x2e,0x34,0x20,0xf0,0x7a,0x71,0x82, +0x7a,0x61,0x83,0xe4,0x93,0x22,0x7e,0xb3,0x38,0x86,0x70,0x4, 0x74,0x1, 0x80,0x1, +0xe4,0x7a,0xb3,0x38,0x86,0x22,0x7f,0x20,0xc2,0x4, 0x7e,0x2b,0x60,0x29,0x72,0x0, +0x2, 0x9c,0x76,0x1a,0x37,0x12,0x21,0x0, 0x7c,0x27,0x29,0x72,0x0, 0x1, 0x29,0x32, +0x0, 0x3, 0x9c,0x37,0x1a,0x33,0x12,0x21,0x0, 0x7c,0x37,0x1a,0x23,0x1a,0x32,0x9d, +0x32,0x12,0x21,0x0, 0x7c,0x67,0x7c,0x72,0xbc,0x32,0x58,0x2, 0x7c,0x73,0xbe,0x60, +0x5, 0x18,0x5, 0xbe,0x70,0x6, 0x58,0x8, 0x7e,0x37,0x37,0xf3,0x4d,0x33,0x68,0x2, +0xd2,0x4, 0xa2,0x4, 0x22,0x7c,0xbd,0x7c,0x7e,0x7f,0x4, 0xca,0x3b,0x7f,0x70,0x7c, +0xe7,0x7c,0xdb,0x7e,0xc0,0x4, 0x7e,0xb3,0x2a,0x6d,0xf5,0x28,0x7e,0xb3,0x2a,0x6e, +0xf5,0x27,0x7e,0x34,0x62,0xa, 0x12,0x87,0xbc,0x6c,0xff,0x12,0x2f,0xff,0x7f,0x51, +0xe5,0x28,0xa, 0x3b,0x1b,0x34,0xa, 0xcd,0xbd,0xc3,0x58,0x14,0xe5,0x27,0xa, 0x3b, +0x1b,0x34,0xa, 0xce,0xbd,0xc3,0x58,0x8, 0x4c,0xee,0x68,0x4, 0x4c,0xdd,0x78,0x3, +0x4e,0xf0,0x10,0xb, 0x5a,0x30,0x7e,0x14,0x62,0xa, 0x12,0x87,0xee,0x8, 0xc, 0x7e, +0x27,0x28,0x8a,0xbe,0x24,0x3, 0x20,0x8, 0x2, 0x61,0x2a,0xb, 0xa, 0xc0,0x1e,0xc4, +0xbd,0x3c,0x8, 0xc, 0x7e,0xc7,0x28,0x8a,0xbe,0xc4,0x3, 0x20,0x58,0x2, 0x61,0x2a, +0x6c,0xaa,0x7c,0x8d,0x80,0x1c,0x7c,0x9e,0xbe,0x80,0x0, 0x48,0x11,0x7e,0xb3,0x2a, +0x6d,0xbc,0xb8,0x8, 0x9, 0x12,0x93,0x61,0x58,0x14,0xb, 0xa0,0x80,0x2, 0xb, 0xa0, +0x1b,0x80,0x1a,0x2c,0x1a,0x3d,0x9d,0x32,0x1a,0xc8,0xbd,0xc3,0x18,0xd8,0xbc,0xca, +0x18,0x5, 0x4e,0xf0,0x1, 0x61,0x2a,0x6c,0xaa,0x7c,0x8d,0x80,0x1c,0x7c,0x9e,0xbe, +0x80,0x0, 0x48,0x11,0x7e,0xb3,0x2a,0x6d,0xbc,0xb8,0x8, 0x9, 0x12,0x93,0x61,0x58, +0x14,0xb, 0xa0,0x80,0x2, 0xb, 0xa0,0xb, 0x80,0x1a,0x2c,0x1a,0x3d,0x2d,0x32,0x1a, +0xc8,0xbd,0xc3,0x48,0xd8,0xbc,0xca,0x18,0x5, 0x4e,0xf0,0x2, 0x80,0x6c,0x6c,0xaa, +0x7c,0x9e,0x80,0x1c,0x7c,0x8d,0xbe,0x90,0x0, 0x48,0x11,0x7e,0xb3,0x2a,0x6e,0xbc, +0xb9,0x8, 0x9, 0x12,0x93,0x61,0x58,0x14,0xb, 0xa0,0x80,0x2, 0xb, 0xa0,0x1b,0x90, +0x1a,0x2c,0x1a,0x3e,0x9d,0x32,0x1a,0xc9,0xbd,0xc3,0x18,0xd8,0xbc,0xca,0x18,0x5, +0x4e,0xf0,0x4, 0x80,0x35,0x6c,0xaa,0x7c,0x9e,0x80,0x1c,0x7c,0x8d,0xbe,0x90,0x0, +0x48,0x11,0x7e,0xb3,0x2a,0x6e,0xbc,0xb9,0x8, 0x9, 0x12,0x93,0x61,0x58,0x14,0xb, +0xa0,0x80,0x2, 0xb, 0xa0,0xb, 0x90,0x1a,0x2c,0x1a,0x3e,0x2d,0x32,0x1a,0xc9,0xbd, +0xc3,0x48,0xd8,0xbc,0xca,0x18,0x3, 0x4e,0xf0,0x8, 0x4c,0xff,0x68,0x2e,0x7e,0x7b, +0xb0,0xbc,0xbd,0x40,0x3, 0x7a,0x7b,0xd0,0x29,0xb7,0x0, 0x2, 0xbc,0xbd,0x38,0x4, +0x39,0xd7,0x0, 0x2, 0x29,0xb7,0x0, 0x1, 0xbc,0xbe,0x40,0x4, 0x39,0xe7,0x0, 0x1, +0x29,0xb7,0x0, 0x3, 0xbc,0xbe,0x38,0x4, 0x39,0xe7,0x0, 0x3, 0x7c,0xbf,0xda,0x3b, +0x22,0x7c,0xb8,0x7c,0x79,0x12,0x2c,0x40,0xbd,0x3d,0x22,0x7f,0x60,0x7e,0x6b,0xa0, +0xbe,0xa0,0xa, 0x50,0x1b,0x7e,0x14,0x0, 0x6, 0xca,0x19,0x74,0x6, 0xa4,0x7f,0x6, +0x2d,0x15,0xb, 0x14,0x12,0x20,0xb9,0x1b,0xfd,0x7e,0x6b,0xb0,0x4, 0x7a,0x6b,0xb0, +0x22,0x6c,0xaa,0x7e,0x63,0x2a,0x6e,0x7e,0x73,0x2a,0x6d,0xac,0x76,0x7d,0x13,0x1e, +0x14,0x7e,0x27,0x28,0x88,0x2e,0x27,0x28,0x86,0xbd,0x21,0x38,0xa, 0x1e,0x34,0x1e, +0x34,0xbe,0x37,0x28,0x86,0x50,0x29,0x90,0x60,0x51,0xe4,0x93,0x1e,0xb0,0xa, 0x2b, +0x7e,0xb3,0x26,0xf7,0xa, 0x3b,0xbd,0x32,0x8, 0x16,0x90,0x60,0x50,0xe4,0x93,0x1e, +0xb0,0xa, 0x2b,0x7e,0xb3,0x26,0xf6,0xa, 0x3b,0xbd,0x32,0x8, 0x3, 0x7e,0xa0,0x1, +0x7c,0xba,0x22,0xca,0x3b,0x6d,0x11,0x7e,0xe3,0x2a,0x2, 0x4c,0xee,0x78,0x23,0x6c, +0xff,0x80,0x1a,0x74,0x2, 0xac,0xbf,0x12,0x95,0x90,0x7e,0x70,0x9, 0xac,0x7f,0x19, +0xa3,0x34,0xca,0x74,0x2, 0xa, 0x3f,0x19,0xb3,0x35,0x34,0xb, 0xf0,0x12,0x5e,0x2d, +0x38,0xe1,0x12,0x97,0xc0,0x7e,0x24,0x0, 0x14,0xad,0x32,0x7d,0x43,0x2e,0x44,0x3, +0x20,0x6c,0xff,0xa1,0x69,0x74,0x9, 0xac,0xbf,0x9, 0xd5,0x28,0xb2,0x5e,0xd0,0xf, +0x12,0x95,0xa1,0x38,0x2, 0xa1,0x67,0xa, 0x1d,0x9, 0xb1,0x29,0xbc,0xbe,0xb0,0x1, +0x78,0x2, 0xa1,0x4d,0x75,0x24,0x0, 0xa1,0x3f,0x7e,0xa1,0x24,0x74,0x9, 0xa4,0x9, +0xc5,0x34,0xca,0xbc,0xcd,0x68,0x2, 0xa1,0x3d,0x49,0x25,0x34,0xc8,0x74,0x9, 0xac, +0xbf,0x49,0x35,0x28,0xb0,0x9d,0x32,0x12,0x21,0x0, 0x7d,0x3, 0x7e,0xa1,0x24,0x74, +0x9, 0xa4,0x49,0x25,0x34,0xc6,0x74,0x9, 0xac,0xbf,0x12,0x96,0x1b,0x2d,0x3, 0xa, +0x1c,0x9, 0xa1,0x35,0x34,0xbe,0xa0,0x0, 0x28,0x17,0x7e,0x30,0x2, 0xac,0x3c,0x59, +0x1, 0x35,0x20,0xa, 0x1c,0x2e,0x14,0x35,0x34,0x7c,0xba,0x14,0x7a,0x19,0xb0,0xa1, +0x67,0x74,0x2, 0xac,0xbc,0x49,0x15,0x35,0x20,0xbe,0x14,0x0, 0x32,0x28,0x8, 0x7d, +0x31,0x2d,0x34,0xbd,0x30,0x40,0x20,0xbe,0x14,0x0, 0x32,0x28,0x8, 0xbe,0x4, 0x0, +0x32,0x28,0x2, 0x80,0x72,0x7d,0x31,0x2e,0x34,0x0, 0x32,0xbd,0x30,0x50,0x8, 0xbe, +0x14,0x0, 0x32,0x28,0x2, 0x80,0x60,0xbe,0x4, 0x0, 0xa0,0x28,0x56,0xa, 0x1d,0x9, +0xb1,0x29,0xbc,0x70,0x4, 0x74,0x3, 0x80,0x2, 0x74,0x1, 0xa, 0x1d,0x19,0xb1,0x29, +0xbc,0x74,0x3, 0xa, 0x1c,0x19,0xb1,0x29,0xc6,0xbe,0xe0,0x0, 0x28,0x69,0x1b,0xe0, +0x7e,0x70,0x9, 0xac,0x7f,0x2e,0x34,0x28,0xae,0x7e,0x14,0x1f,0x34,0x74,0x9, 0x12, +0x1f,0x8c,0x7e,0x70,0x9, 0xac,0x7e,0x12,0x97,0xae,0xac,0x3f,0x12,0x95,0x98,0x7e, +0x34,0x1f,0x34,0x7e,0x30,0x9, 0xac,0x3e,0x12,0x95,0x98,0x1b,0xf0,0x74,0x2, 0xac, +0xbc,0x80,0x4, 0x74,0x2, 0xac,0xbc,0x59,0x5, 0x35,0x20,0x80,0x2a,0x5, 0x24,0x90, +0x60,0x99,0xe4,0x93,0xbe,0xb1,0x24,0x28,0x2, 0x81,0x49,0x80,0x1a,0x6d,0x11,0x74, +0x2, 0xac,0xbd,0x12,0x95,0x90,0x7e,0x30,0x9, 0xac,0x3d,0x19,0xa1,0x34,0xca,0x74, +0x2, 0xa, 0x1d,0x19,0xb1,0x35,0x34,0xb, 0xf0,0xbc,0xef,0x28,0x2, 0x81,0x25,0xe4, +0x7a,0xb3,0x16,0x92,0x90,0x60,0x99,0x12,0x5f,0xc6,0xca,0x59,0x7e,0x18,0x28,0xae, +0x7e,0x8, 0x34,0xc6,0x12,0x20,0xb9,0x1b,0xfd,0x7a,0xe3,0x2a,0x2, 0xda,0x3b,0x22, +0x59,0x15,0x35,0x20,0x7e,0xa0,0xff,0x22,0x2e,0x14,0x28,0xae,0x74,0x9, 0x2, 0x1f, +0x8c,0x90,0x60,0x99,0xe4,0x93,0xbc,0xbd,0x22,0xca,0x3b,0x7c,0xfb,0x6c,0xee,0x80, +0x63,0x6c,0xdd,0x80,0x16,0x74,0x9, 0xac,0xbd,0x9, 0x65,0x29,0x66,0x74,0x9, 0xac, +0xbe,0x9, 0x75,0x28,0xb2,0xbc,0x67,0x68,0x7, 0xb, 0xd0,0x12,0x95,0xa1,0x38,0xe5, +0x12,0x95,0xa1,0x28,0x43,0x74,0x9, 0xac,0xbd,0x9, 0xc5,0x29,0x66,0x12,0x81,0xb3, +0x74,0x9, 0xac,0xbd,0x12,0x87,0xe5,0x12,0x96,0x1b,0x2d,0x31,0x7a,0x35,0x24,0xa, +0x3c,0x9, 0xb3,0x29,0xbc,0xb4,0x1, 0xe, 0x6d,0x33,0x74,0x2, 0xac,0xbc,0x59,0x35, +0x34,0x8b,0x59,0x35,0x34,0xb0,0x7e,0x35,0x24,0x7c,0xbd,0x7c,0x5e,0x7c,0x4c,0x12, +0x87,0xb3,0xb, 0xe0,0xbc,0xfe,0x38,0x99,0xda,0x3b,0x22,0x49,0x35,0x28,0xae,0x9d, +0x32,0x2, 0x21,0x0, 0x7e,0xb3,0x37,0x31,0x70,0x3, 0x12,0x93,0xe3,0x2, 0x96,0x30, +0xca,0x79,0x7e,0xf3,0x2a,0x2, 0x7e,0xe3,0x2a,0x3, 0x7c,0xbf,0x7c,0x7e,0x12,0x96, +0x7c,0x7c,0xbf,0x12,0x97,0x10,0x4c,0xee,0x78,0x14,0x12,0x5f,0xc2,0xca,0x59,0x7e, +0x18,0x28,0xae,0x7e,0x8, 0x29,0x62,0x12,0x20,0xb9,0x1b,0xfd,0x80,0xb, 0x7e,0xb3, +0x2a,0x9, 0x70,0x5, 0x7c,0xbf,0x12,0x95,0xa9,0x7c,0xbf,0x12,0x9f,0x90,0xbe,0xf0, +0x0, 0x28,0x6, 0x74,0x1, 0x7a,0xb3,0x2a,0xb, 0xda,0x79,0x22,0x7c,0x67,0x7c,0x7b, +0xa5,0xbf,0x0, 0x17,0xbe,0x60,0x0, 0x28,0xf, 0x74,0x1, 0x7a,0xb3,0x2a,0x7, 0xe4, +0x7a,0xb3,0x2a,0x9, 0x7a,0xb3,0x2a,0xa, 0x2, 0x96,0xeb,0xa5,0xbe,0x0, 0x1d,0x6c, +0xaa,0x80,0xe, 0x7e,0x60,0xff,0x7e,0x50,0x9, 0xac,0x5a,0x19,0x62,0x29,0x66,0xb, +0xa0,0x12,0x5e,0x25,0x38,0xed,0x74,0x1, 0x7a,0xb3,0x2a,0x6, 0x6c,0xaa,0x80,0x26, +0x7e,0x30,0x9, 0xac,0x3a,0x2e,0x14,0x28,0xae,0xb, 0x18,0x20,0x12,0x47,0x81,0x1b, +0x18,0x20,0x7e,0x30,0x9, 0xac,0x3a,0x2e,0x14,0x28,0xb0,0xb, 0x18,0x20,0x12,0x47, +0x81,0x1b,0x18,0x20,0xb, 0xa0,0xbc,0x7a,0x38,0xd6,0x22,0x12,0x97,0x4, 0x7e,0x8, +0x34,0xb0,0xe4,0x12,0x20,0xde,0x90,0x60,0x99,0x12,0x97,0x8, 0x7e,0x8, 0x34,0x8b, +0xe4,0x2, 0x20,0xde,0x90,0x60,0x99,0xe4,0x93,0x7c,0x7b,0x74,0x2, 0xac,0x7b,0x22, +0xca,0xd8,0xca,0x79,0x7c,0xdb,0x90,0x60,0x99,0xe4,0x93,0x7c,0xfb,0x6c,0x11,0x80, +0x21,0x7e,0x0, 0xff,0x74,0x9, 0xac,0xb1,0x19,0x5, 0x1f,0x38,0x7e,0x34,0x7f,0xff, +0x74,0x9, 0xac,0xb1,0x59,0x35,0x1f,0x34,0x74,0x9, 0xac,0xb1,0x59,0x35,0x1f,0x36, +0xb, 0x10,0xbc,0xf1,0x38,0xdb,0xe4,0x6c,0x77,0x7c,0x6d,0x12,0x97,0xb6,0x7c,0x7d, +0x7c,0x6f,0x12,0x97,0xb6,0x6c,0x0, 0x80,0x39,0x6c,0xee,0x80,0x16,0x74,0x9, 0xac, +0xbe,0x9, 0x65,0x1f,0x38,0x74,0x9, 0xac,0xb0,0x9, 0x75,0x28,0xb2,0xbc,0x76,0x68, +0x6, 0xb, 0xe0,0xbc,0x1e,0x38,0xe6,0xbc,0x1e,0x78,0x15,0x7e,0x70,0x9, 0xac,0x70, +0x12,0x97,0xae,0xac,0x31,0x2e,0x14,0x1f,0x34,0x74,0x9, 0x12,0x1f,0x8c,0xb, 0x10, +0xb, 0x0, 0xbc,0xf0,0x38,0xc3,0x74,0x9, 0xac,0xbf,0xca,0x59,0x7e,0x18,0x1f,0x34, +0x7e,0x8, 0x29,0x62,0x12,0x20,0xb9,0x1b,0xfd,0xda,0x79,0xda,0xd8,0x22,0x2e,0x34, +0x28,0xae,0x7e,0x30,0x9, 0x22,0x7e,0x8, 0x1f,0x34,0x12,0x9e,0x37,0x7c,0x1b,0x22, +0x7e,0x73,0x2a,0x3, 0xbe,0x73,0x2a,0x2, 0x78,0x17,0x7e,0x73,0x2a,0x2, 0xbe,0x70, +0x1, 0x40,0xe, 0x7e,0x37,0x34,0x9f,0xbe,0x34,0x0, 0x14,0x38,0xe, 0xb, 0x34,0x80, +0x6, 0x7e,0x37,0x34,0x9f,0x1e,0x34,0x7a,0x37,0x34,0x9f,0x7e,0xb3,0x2a,0x2, 0x70, +0x6, 0x6d,0x33,0x7a,0x37,0x34,0x9f,0x7e,0x37,0x34,0x9f,0x22,0xca,0xf8,0x7c,0xfb, +0x6d,0xdd,0x7c,0xbf,0x12,0x98,0xea,0x7d,0xe3,0x7c,0xbf,0x12,0x37,0x6f,0x7d,0xf3, +0x74,0x2, 0xac,0xbf,0x9, 0x95,0x26,0xfb,0x7c,0xbf,0x12,0x9a,0xed,0x40,0x2, 0x1, +0xd4,0x74,0x2, 0xac,0xbf,0x9, 0xa5,0x26,0xfa,0xbe,0xa0,0x0, 0x28,0x9, 0xa, 0x3a, +0x1b,0x34,0x12,0x98,0xd8,0x7d,0xd3,0x12,0x98,0xdf,0xbd,0xc3,0x58,0xb, 0xa, 0xca, +0xb, 0xc4,0x7d,0x3c,0x12,0x98,0xd8,0x2d,0xd3,0x12,0x9b,0xf, 0x7d,0xd3,0xbe,0xa0, +0x0, 0x28,0x56,0x12,0x98,0xdf,0xbd,0xc3,0x58,0x4f,0xbe,0x90,0x0, 0x28,0x4a,0xbe, +0x90,0x0, 0x28,0x45,0xbe,0xf4,0x0, 0xc8,0x8, 0x3f,0x7d,0x3d,0x3e,0x34,0x3e,0x34, +0xbd,0x3f,0x8, 0x35,0x7e,0x70,0x2, 0xac,0x79,0x49,0x33,0x4, 0xfc,0xbe,0x34,0x1, +0x2c,0x8, 0x26,0xa, 0x2a,0x7e,0xb3,0x2a,0x74,0x12,0x9b,0x18,0xbe,0x34,0x1, 0x90, +0x8, 0x17,0xbe,0xf4,0x1, 0x5e,0x58,0xd, 0x7e,0x34,0x0, 0x3, 0xad,0x3e,0xbd,0x3f, +0x8, 0x3, 0xe4,0x80,0x30,0x74,0x1, 0x80,0x2c,0x90,0x60,0xab,0xe4,0x93,0xbc,0xb9, +0x78,0x22,0x7c,0xba,0x7c,0x79,0x12,0x2c,0x40,0xbe,0x34,0x0, 0x96,0x8, 0x12,0x74, +0x2, 0xac,0xb9,0x49,0x35,0x4, 0xfc,0xbe,0x34,0x0, 0x32,0x8, 0x4, 0x74,0x1, 0x80, +0x4, 0xe4,0x80,0x1, 0xe4,0xda,0xf8,0x22,0x7c,0xb7,0x7c,0x79,0x2, 0x2c,0x40,0x7e, +0xb3,0x2a,0x6f,0xa, 0x3b,0x1b,0x34,0xa, 0xca,0x22,0xca,0x79,0x7c,0x8b,0x6c,0xaa, +0x9f,0x77,0x12,0x9a,0x2a,0x1a,0x79,0x1b,0x74,0x80,0x4c,0x1a,0x38,0x1b,0x34,0x7c, +0xe7,0x80,0x38,0xbc,0x9f,0x78,0x4, 0xbc,0x8e,0x68,0x2e,0xbe,0xf0,0x0, 0x48,0x29, +0x7e,0xb3,0x2a,0x6f,0xa, 0x2b,0x1a,0x3f,0xbd,0x32,0x58,0x1d,0xbe,0xe0,0x0, 0x48, +0x18,0x7e,0xb3,0x2a,0x70,0xa, 0x2b,0x1a,0x3e,0xbd,0x32,0x58,0xc, 0x7c,0xbf,0x7c, +0x7e,0x12,0x2c,0x40,0x12,0x99,0x65,0xb, 0xa0,0xb, 0xe0,0x1a,0x28,0xb, 0x24,0x1a, +0x3e,0xbd,0x32,0x8, 0xbe,0xb, 0xf0,0x1a,0x29,0xb, 0x24,0x1a,0x3f,0xbd,0x32,0x8, +0xaa,0x4c,0xaa,0x78,0x4, 0x6d,0x33,0x80,0x9, 0xa, 0x1a,0x6d,0x0, 0x7f,0x17,0x12, +0x1f,0x58,0xda,0x79,0x22,0x1a,0x26,0x1a,0x24,0x2f,0x71,0x22,0xca,0x79,0x7c,0xa7, +0x7c,0x8b,0x7e,0xb3,0x2a,0x6f,0x7a,0xb3,0x1f,0x34,0x7e,0xb3,0x2a,0x70,0x7a,0xb3, +0x1f,0x35,0x12,0x9a,0x2a,0x9f,0x77,0x1a,0x3a,0x1a,0x79,0x9d,0x73,0x41,0x17,0x7a, +0xf1,0x2d,0xbe,0xf0,0x0, 0x58,0xe, 0x1a,0x3f,0x1a,0x29,0x9d,0x23,0x1a,0x39,0x2d, +0x32,0x7c,0xb7,0xf5,0x2d,0x7e,0xb3,0x1f,0x34,0xbc,0xbf,0x18,0xe, 0x1a,0x39,0x1a, +0x2f,0x9d,0x23,0x1a,0x39,0x9d,0x32,0x7c,0xb7,0xf5,0x2d,0x1a,0x2a,0x1a,0x38,0x9d, +0x32,0x7c,0xb7,0xf5,0x2c,0x80,0x40,0x85,0x2c,0x2e,0xe5,0x2c,0xbe,0xb0,0x0, 0x58, +0x10,0xe5,0x2c,0x1a,0x3b,0x1a,0x28,0x9d,0x23,0x1a,0x38,0x2d,0x32,0x7c,0xb7,0xf5, +0x2e,0x7e,0xb3,0x1f,0x35,0xbe,0xb1,0x2c,0x18,0x10,0x1a,0x38,0xe5,0x2c,0x1a,0x2b, +0x9d,0x23,0x1a,0x38,0x9d,0x32,0x7c,0xb7,0xf5,0x2e,0xe5,0x2d,0x7e,0x71,0x2e,0x12, +0x2c,0x40,0x12,0x99,0x65,0x5, 0x2c,0x1a,0x3a,0x1a,0x28,0x2d,0x23,0xe5,0x2c,0x1a, +0x3b,0xbd,0x32,0x8, 0xb2,0xb, 0xf0,0x1a,0x3a,0x1a,0x29,0x2d,0x23,0x1a,0x3f,0xbd, +0x32,0x18,0x2, 0x21,0x8f,0x7f,0x17,0xda,0x79,0x22,0x7e,0x70,0x2, 0xac,0x78,0x9, +0x93,0x26,0xfa,0x9, 0x83,0x26,0xfb,0x22,0xca,0xd8,0xca,0x79,0x7e,0x34,0x62,0x27, +0x12,0x9a,0xe5,0x12,0x9b,0x23,0x50,0x2, 0x41,0xe0,0x7e,0x34,0x62,0x2b,0x12,0x23, +0x9e,0x7a,0x35,0x2a,0x90,0x62,0x26,0xe4,0x93,0x70,0x2, 0x41,0xe0,0x7e,0xb3,0x28, +0xa8,0xb4,0x1, 0x7, 0x7e,0x34,0x62,0x29,0x12,0x9a,0xe5,0x7e,0x37,0x28,0x8a,0xbe, +0x34,0x4, 0x4c,0x8, 0x6b,0x6c,0xdd,0x80,0x5f,0xc2,0x3, 0x7c,0xbd,0x12,0x37,0x6f, +0x7a,0x35,0x26,0x7c,0xbd,0x7e,0x70,0x1, 0x12,0x99,0x6c,0x7a,0x35,0x24,0x9e,0x35, +0x26,0x7a,0x35,0x24,0x7e,0x35,0x26,0x3e,0x34,0x3e,0x34,0x12,0x8f,0xdc,0x7a,0x35, +0x28,0xbe,0x75,0x28,0x58,0x3, 0x7a,0x75,0x28,0x7e,0x35,0x28,0xbe,0x35,0x24,0x8, +0xa, 0x7e,0x35,0x2a,0xbe,0x35,0x26,0x8, 0x2, 0xd2,0x3, 0x7c,0xbd,0x12,0x9a,0xed, +0x50,0x2, 0xc2,0x3, 0x30,0x3, 0xf, 0x7c,0xbd,0x6c,0x77,0x12,0x51,0x5f,0x7e,0x70, +0x2, 0xac,0x7d,0x12,0x37,0x9f,0xb, 0xd0,0x7e,0x73,0x28,0x84,0xbc,0x7d,0x38,0x99, +0xda,0x79,0xda,0xd8,0x22,0x7e,0x24,0x0, 0xff,0xb, 0x1a,0x70,0x22,0x7c,0x4b,0x74, +0x2, 0xac,0xb4,0x9, 0x55,0x26,0xfa,0x9, 0x65,0x26,0xfb,0x7e,0x73,0x28,0x8c,0xbc, +0x75,0x78,0xa, 0x7e,0x73,0x28,0x8d,0xbc,0x76,0x78,0x2, 0xd3,0x22,0xc3,0x22,0x7e, +0x24,0x0, 0x2, 0x7d,0x3d,0x2, 0x1e,0xb9,0xa, 0x3b,0x2d,0x32,0x3e,0x34,0x49,0x33, +0x4, 0xfc,0x22,0x6c,0x99,0x6c,0x88,0x80,0xf, 0x7c,0xb8,0x12,0x37,0x6f,0xbe,0x34, +0x1, 0xf4,0x8, 0x2, 0xb, 0x90,0xb, 0x80,0x7e,0x73,0x28,0x84,0xbc,0x78,0x38,0xe9, +0xbe,0x90,0x1, 0x38,0x2, 0xc3,0x22,0xd3,0x22,0xca,0x3b,0x7e,0x77,0x2a,0x5c,0x12, +0x9d,0xa1,0x7d,0x63,0x3e,0x34,0x3e,0x34,0x7e,0xe4,0x0, 0xa, 0x12,0x9b,0xd7,0x7e, +0xb3,0x28,0xa8,0x60,0xf, 0x7e,0x37,0x35,0xe5,0xbd,0x36,0x48,0x7, 0x3e,0x34,0x3e, +0x34,0x12,0x9b,0xd7,0xbe,0x64,0x4, 0x4c,0x8, 0xf, 0x12,0x9b,0x23,0x50,0x6, 0x7e, +0xb3,0x28,0xa8,0x60,0x4, 0x74,0xa, 0x80,0x13,0x7e,0xb3,0x28,0xa8,0x60,0xc, 0x7e, +0xb3,0x35,0xe3,0xbe,0xb0,0x0, 0x28,0x8, 0x14,0x80,0x1, 0xe4,0x7a,0xb3,0x35,0xe3, +0x7e,0xe7,0x2a,0x5c,0x7d,0x3e,0x12,0x45,0xe, 0x7e,0x53,0x35,0xe3,0xbe,0x50,0x0, +0x28,0x12,0xbd,0x3f,0x58,0x4, 0x7d,0xf3,0x80,0x6, 0xbd,0xef,0x8, 0x2, 0x7d,0xfe, +0x7a,0xf7,0x2a,0x5c,0x12,0x9b,0xdf,0x28,0x3, 0x12,0x37,0xc2,0x7a,0x67,0x35,0xe5, +0x7a,0x77,0x2a,0x5c,0xda,0x3b,0x22,0x7d,0x2e,0x12,0x1e,0xb9,0x7d,0xf3,0x22,0x7e, +0x73,0x28,0x84,0xbe,0x70,0x1, 0x22,0xca,0x79,0xc2,0x3, 0x7e,0xf0,0x3, 0x7e,0xe3, +0x2a,0x3, 0x12,0x9b,0xdf,0x28,0x72,0x7c,0xbf,0x12,0x2c,0x47,0x4c,0xee,0x68,0xe, +0x7e,0x63,0x33,0xc0,0xa5,0xbe,0x0, 0xa, 0x7e,0xb3,0x33,0xc1,0x70,0x4, 0xd2,0x3, +0x80,0x2e,0xbe,0xe0,0x1, 0x28,0xb, 0xe5,0x4d,0xbe,0xb0,0x8, 0x28,0x4, 0xd2,0x3, +0x80,0x1e,0xd2,0x3, 0x12,0x9c,0xf6,0x78,0xa, 0xa5,0xbe,0x0, 0x6, 0x6c,0xff,0xc2, +0x3, 0x80,0xd, 0x9e,0x73,0x33,0xc0,0xbc,0x7e,0x78,0x5, 0x7e,0xf0,0x2, 0xc2,0x3, +0x20,0x3, 0x5, 0x7c,0xbf,0x12,0x2c,0x47,0x7e,0xa3,0x33,0xc2,0x7a,0xa3,0x28,0x84, +0x74,0x2, 0xa4,0xca,0x59,0x7e,0x18,0x33,0xc3,0x7e,0x8, 0x26,0xfa,0x12,0x20,0xb9, +0x1b,0xfd,0x12,0x9c,0x6f,0xf5,0x4d,0x80,0x3, 0x75,0x4d,0x64,0xda,0x79,0x22,0x7e, +0x30,0x64,0x7e,0x20,0x64,0x6c,0x11,0x80,0x54,0xa, 0x31,0xb, 0x34,0x7c,0x7, 0x80, +0x42,0x7e,0x70,0x2, 0xac,0x70,0x9, 0xb3,0x26,0xfa,0x12,0x9c,0xee,0x9, 0xb3,0x26, +0xfa,0x12,0x2f,0xd6,0x7c,0x97,0x7e,0x70,0x2, 0xac,0x70,0x9, 0xb3,0x26,0xfb,0x12, +0x9c,0xee,0x9, 0xb3,0x26,0xfb,0x12,0x2f,0xd6,0x7c,0x87,0xbe,0x90,0x0, 0x28,0x6, +0xbc,0x39,0x28,0x2, 0x7c,0x39,0xbe,0x80,0x0, 0x28,0x6, 0xbc,0x28,0x28,0x2, 0x7c, +0x28,0xb, 0x0, 0x7e,0xb3,0x28,0x84,0xbc,0xb0,0x38,0xb6,0xb, 0x10,0x7e,0xb3,0x28, +0x84,0xbc,0xb1,0x38,0xa4,0xa5,0xbb,0x64,0x2, 0x6c,0x33,0xa5,0xba,0x64,0x2, 0x6c, +0x22,0xbc,0x23,0x28,0x4, 0x7c,0xa2,0x80,0x2, 0x7c,0xa3,0x7c,0xba,0x22,0xa, 0x2b, +0x7e,0x70,0x2, 0xac,0x71,0x22,0x7e,0x73,0x28,0x84,0xbc,0x7e,0x22,0xca,0x79,0x6c, +0x88,0x80,0x72,0x74,0x2, 0xac,0xb8,0x9, 0xf5,0x26,0xfa,0x9, 0x75,0x26,0xfb,0x7a, +0x71,0x24,0x7c,0xbf,0x12,0x9d,0x8b,0x50,0x5a,0x6c,0xee,0x80,0x51,0xbc,0xe8,0x68, +0x4b,0x7e,0x70,0x2, 0xac,0x7e,0x12,0x9d,0x80,0xf5,0x26,0x6c,0x99,0x90,0x60,0xaa, +0xe4,0x93,0x70,0x18,0x7e,0xb3,0x2a,0x70,0x14,0xbe,0xb1,0x26,0x78,0xe, 0xa, 0x2f, +0xe5,0x25,0xa, 0x3b,0x12,0x35,0x67,0x18,0x3, 0x7e,0x90,0x1, 0xbe,0x90,0x1, 0x78, +0x1b,0x7c,0xbe,0x12,0x37,0x6f,0x7d,0xf3,0x7c,0xb8,0x12,0x37,0x6f,0xbd,0x3f,0x8, +0x4, 0x7c,0xbe,0x80,0x2, 0x7c,0xb8,0x6c,0x77,0x12,0x51,0x5f,0xb, 0xe0,0x12,0x9c, +0xf6,0x38,0xaa,0xb, 0x80,0x7e,0x73,0x28,0x84,0xbc,0x78,0x38,0x86,0xda,0x79,0x22, +0x9, 0xb3,0x26,0xfa,0xf5,0x25,0x9, 0xb3,0x26,0xfb,0x22,0x7c,0xab,0x90,0x60,0xab, +0xe4,0x93,0xbc,0xb7,0x78,0x9, 0x7c,0xba,0x12,0x31,0x5a,0x50,0x2, 0xd3,0x22,0xc3, +0x22,0xca,0x3b,0x6d,0x44,0x7e,0xf3,0x28,0x84,0x6c,0xee,0x80,0x24,0x7c,0xbe,0x12, +0x2f,0xb7,0x60,0x1b,0x74,0x2, 0xac,0xbe,0x9, 0xd5,0x26,0xfa,0x9, 0xc5,0x26,0xfb, +0x7c,0xbd,0x7c,0x7c,0x12,0x2c,0x40,0x7d,0xf3,0xbd,0x4f,0x58,0x2, 0x7d,0x4f,0xb, +0xe0,0xbc,0xfe,0x38,0xd8,0x7d,0x34,0xda,0x3b,0x22,0x7e,0xb3,0x2a,0x2, 0x70,0x2d, +0x7e,0x73,0x2a,0x3, 0xbe,0x70,0x0, 0x28,0x24,0x7e,0xb3,0x34,0xc5,0x70,0x18,0x12, +0x9e,0x17,0x7e,0x73,0x2a,0x3, 0x7a,0x73,0x2a,0x2, 0x74,0x1, 0x7a,0xb3,0x2a,0x9, +0x7e,0xb3,0x34,0xc5,0x4, 0x80,0x1, 0xe4,0x7a,0xb3,0x34,0xc5,0x22,0xe4,0x7a,0xb3, +0x34,0xc5,0x7a,0xb3,0x2a,0x9, 0x22,0x7e,0x34,0x0, 0x3c,0xca,0x39,0x7e,0x18,0x35, +0xe9,0x7e,0x8, 0x36,0x25,0x12,0x20,0xb9,0x1b,0xfd,0x7e,0x73,0x28,0x94,0x7a,0x73, +0x35,0xe8,0x7a,0x73,0x28,0x93,0x22,0xca,0x3b,0x7c,0x46,0x7c,0xab,0x6c,0x66,0xc1, +0xd2,0x7c,0x57,0xc1,0xca,0x7e,0xf0,0x9, 0xac,0xf6,0x9, 0x87,0x29,0x66,0x7c,0x98, +0x7e,0xd0,0x9, 0xac,0xd5,0x9, 0xb6,0x28,0xb2,0xbc,0xb9,0x78,0x6b,0xbe,0x90,0xff, +0x68,0x66,0x12,0x9e,0xe2,0x39,0x87,0x0, 0x4, 0xa, 0xf9,0x9, 0xbf,0x29,0xbc,0x7e, +0xf0,0x9, 0x70,0xc, 0xac,0xf5,0x7d,0x97,0x2e,0x94,0x28,0xae,0x6d,0x88,0x80,0xa, +0xac,0xf6,0x7d,0x97,0x2e,0x94,0x29,0x62,0x6d,0x88,0xb, 0x4a,0xd0,0x12,0x9e,0xe2, +0x1b,0x7a,0xd0,0x69,0xf4,0x0, 0x2, 0x7e,0xf0,0x9, 0xac,0xfa,0x7f,0x60,0x2d,0xd7, +0x79,0xf6,0x0, 0x2, 0x7e,0xf0,0x9, 0xac,0xf5,0x9, 0x87,0x28,0xb3,0x12,0x9e,0xe2, +0x39,0x87,0x0, 0x5, 0x7e,0xf0,0x9, 0xac,0xf5,0x9, 0x87,0x28,0xb4,0x12,0x9e,0xe2, +0x39,0x87,0x0, 0x6, 0xb, 0xa0,0x80,0x8, 0xb, 0x50,0xbc,0x45,0x28,0x2, 0xc1,0x45, +0xb, 0x60,0x90,0x60,0x99,0xe4,0x93,0xbc,0xb6,0x28,0x2, 0xc1,0x41,0x7c,0xba,0xda, +0x3b,0x22,0x7e,0xf0,0x9, 0xac,0xfa,0x7f,0x70,0x2d,0xf7,0x22,0x7c,0xab,0x7e,0xb, +0xb0,0x60,0x3, 0xb4,0x2, 0x31,0xa, 0x4a,0x9, 0x74,0x34,0xa3,0xbe,0x73,0x34,0xad, +0x50,0xe, 0x7d,0x24,0x2e,0x24,0x34,0xa3,0x7c,0xb7,0x4, 0x7a,0x29,0xb0,0xd3,0x22, +0xbe,0x73,0x34,0xad,0x40,0x9, 0xbe,0x70,0xff,0x68,0x4, 0xe4,0x7a,0xb, 0xb0,0x74, +0xff,0x19,0xb4,0x34,0xa3,0x80,0x17,0xa, 0x3a,0x9, 0xb3,0x34,0xa3,0xbe,0xb0,0xff, +0x68,0x7, 0xe4,0x19,0xb3,0x34,0xa3,0xd3,0x22,0xe4,0x19,0xb3,0x34,0xa3,0xc3,0x22, +0xca,0xf8,0x7c,0xfb,0x7d,0xf3,0x7e,0x17,0x2a,0x62,0xbd,0x13,0x38,0x6, 0x7e,0x34, +0x1, 0x0, 0x80,0x15,0x6d,0x22,0x7c,0x56,0x7c,0x67,0x6c,0x77,0x12,0x1f,0x5, 0xbe, +0x34,0x0, 0x10,0x50,0x4, 0x7e,0x34,0x0, 0x10,0x74,0x2, 0xac,0xbf,0x49,0x25,0x34, +0xb0,0xbd,0x2f,0x28,0x6, 0x49,0x35,0x34,0x8b,0x80,0x4, 0x59,0x35,0x34,0x8b,0x59, +0xf5,0x34,0xb0,0xbe,0x34,0x1, 0x0, 0x28,0x4, 0x7e,0x34,0x1, 0x0, 0xda,0xf8,0x22, +0x6c,0xaa,0x80,0x49,0x7e,0x50,0x9, 0xac,0x5a,0x49,0x32,0x29,0x62,0x12,0x25,0x3c, +0x59,0x32,0x28,0xae,0x7e,0x50,0x9, 0xac,0x5a,0x49,0x32,0x29,0x64,0x12,0x25,0x3c, +0x59,0x32,0x28,0xb0,0x7e,0x90,0x9, 0xac,0x9a,0x9, 0xb4,0x29,0x66,0x19,0xb4,0x28, +0xb2,0x7e,0x90,0x9, 0xac,0x9a,0x9, 0xb4,0x29,0x67,0x19,0xb4,0x28,0xb3,0x7e,0x90, +0x9, 0xac,0x9a,0x9, 0xb4,0x29,0x68,0x19,0xb4,0x28,0xb4,0xb, 0xa0,0x12,0x5e,0x25, +0x38,0xb2,0x22,0x7e,0x8, 0x34,0xa2,0x7e,0x34,0x0, 0xd, 0xe4,0x2, 0x20,0xde,0x6c, +0x0, 0x6c,0x11,0x80,0x13,0x7c,0xb1,0x12,0x2f,0xb7,0x60,0xa, 0x12,0xa0,0x84,0x40, +0x5, 0x7e,0x0, 0x1, 0x80,0xa, 0xb, 0x10,0x7e,0x73,0x28,0x84,0xbc,0x71,0x38,0xe5, +0x7c,0xb0,0x6c,0x77,0x12,0xa0,0x49,0xbe,0x0, 0x1, 0x68,0xb, 0x7c,0xb0,0x7e,0x70, +0x1, 0x12,0xa0,0x49,0xb4,0x1, 0x21,0x6c,0x11,0x80,0x15,0x7c,0xb1,0x12,0x2f,0xb7, +0x60,0xc, 0x12,0xa0,0x84,0x50,0x7, 0x7c,0xb1,0x6c,0x77,0x12,0x51,0x5f,0xb, 0x10, +0x7e,0x3, 0x28,0x84,0xbc,0x1, 0x38,0xe3,0x22,0x7c,0xab,0xa5,0xbf,0x0, 0xc, 0x7e, +0xb3,0x36,0x61,0x7a,0xb3,0x36,0x62,0x7a,0xa3,0x36,0x61,0x7e,0xb3,0x36,0x62,0x60, +0x4, 0x74,0x8, 0x80,0xd, 0x7e,0xb3,0x28,0x84,0x70,0xb, 0x7e,0xb3,0x36,0x63,0x60, +0x5, 0x14,0x7a,0xb3,0x36,0x63,0x7e,0x73,0x36,0x63,0xbe,0x70,0x0, 0x28,0x3, 0x74, +0x1, 0x22,0xe4,0x22,0x74,0x2, 0xac,0xb1,0x9, 0x25,0x26,0xfa,0x9, 0x35,0x26,0xfb, +0x7c,0xb2,0x7c,0x73,0x7c,0xa7,0x7c,0x7b,0x90,0x60,0xaa,0xe4,0x93,0x60,0x2, 0x7c, +0xa7,0x90,0x60,0xab,0xe4,0x93,0xbc,0xba,0x78,0x2, 0xd3,0x22,0xc3,0x22,0xca,0xf8, +0x7e,0xd4,0x0, 0x9, 0x7e,0xb3,0x28,0x84,0x70,0x8, 0xf5,0x1e,0xc2,0x8, 0xc2,0x9, +0x80,0x71,0xbe,0xb0,0x2, 0x38,0x66,0xb4,0x2, 0x28,0x7e,0x73,0x26,0xfc,0xa, 0x27, +0x7e,0x73,0x26,0xfa,0x12,0xa1,0x4b,0xbe,0x34,0x0, 0x5, 0x58,0x15,0x7e,0x73,0x26, +0xfd,0xa, 0x27,0x7e,0x73,0x26,0xfb,0x12,0xa1,0x4b,0xbe,0x34,0x0, 0x5, 0x58,0x2, +0x80,0x4e,0x6c,0xff,0x80,0x30,0x7c,0xbf,0x12,0x37,0x81,0x1a,0x4b,0x7c,0xbf,0x12, +0x37,0x6f,0x7d,0x5d,0x3e,0x54,0xbd,0x54,0x58,0x4, 0xd2,0x9, 0x80,0xa, 0x7d,0x5d, +0xe, 0x54,0xbd,0x54,0x48,0x2, 0xc2,0x9, 0x20,0x9, 0x4, 0xbd,0xd4,0x58,0x5, 0x75, +0x1e,0x28,0x80,0xf, 0xb, 0xf0,0x12,0x52,0x66,0x38,0xcb,0x80,0x6, 0xe5,0x1e,0x24, +0xfb,0xf5,0x1e,0xe5,0x1e,0xbe,0xb0,0x0, 0x8, 0x6, 0xd2,0x8, 0x15,0x1e,0x80,0x5, +0x75,0x1e,0x0, 0xc2,0x8, 0xda,0xf8,0x22,0x7e,0x39,0x70,0xa, 0x37,0x9d,0x32,0x2, +0x21,0x0, 0xca,0x3b,0xf5,0x2a,0x7f,0x31,0x7a,0xd, 0x26,0xe4,0x7a,0xb3,0x22,0xf6, +0x7a,0xb3,0x22,0xf7,0x7a,0xb3,0x22,0xf8,0x7e,0x34,0x3, 0xe8,0x7a,0x37,0x22,0xfd, +0x74,0x3c,0x7a,0xb3,0x22,0xf5,0x75,0x2f,0x46,0x75,0x2b,0x0, 0x61,0x43,0x12,0xa4, +0xde,0x28,0x1e,0x7e,0x34,0x0, 0x44,0xca,0x39,0x7e,0x71,0x2b,0x74,0x44,0xac,0x7b, +0x2e,0x34,0x14,0x6, 0x7e,0x24,0x0, 0xff,0x7e,0x8, 0x22,0xff,0x12,0x20,0xb9,0x1b, +0xfd,0x6d,0x33,0x7a,0x37,0x22,0xf9,0x7a,0x35,0x30,0x7a,0x37,0x22,0xfb,0x7a,0x35, +0x32,0x7a,0x35,0x34,0x7e,0x34,0x22,0xff,0x7a,0x35,0x36,0x7e,0x34,0x23,0x1f,0x7a, +0x35,0x38,0x75,0x2c,0x0, 0x80,0x59,0xe5,0x2c,0xa, 0x3b,0x7e,0xd, 0x26,0x12,0xa4, +0xe6,0x2e,0x35,0x36,0x12,0xa1,0x48,0x7d,0xd3,0x7e,0xc7,0x22,0xfb,0xbd,0xcd,0x58, +0x4, 0x7a,0xd7,0x22,0xfb,0xe5,0x2c,0xa, 0x3b,0x7f,0x3, 0x12,0xa4,0xe6,0x2e,0x35, +0x38,0x12,0xa1,0x48,0x7d,0xc3,0x7e,0x35,0x32,0xbd,0x3c,0x58,0x3, 0x7a,0xc5,0x32, +0x7e,0x37,0x22,0xf9,0x2d,0x3d,0x7a,0x37,0x22,0xf9,0x7d,0x3c,0x2e,0x35,0x30,0x7a, +0x35,0x30,0x2d,0xcd,0x7e,0x35,0x34,0xbd,0x3c,0x58,0x3, 0x7a,0xc5,0x34,0x5, 0x2c, +0xe5,0x2a,0xbe,0xb1,0x2c,0x38,0xa0,0xe5,0x2a,0xb4,0xa, 0x2a,0x7e,0x37,0x22,0xfb, +0xbe,0x34,0x0, 0x40,0x48,0xb, 0x7e,0x25,0x32,0xbe,0x24,0x0, 0x40,0x48,0x2, 0x61, +0x41,0xbe,0x34,0x0, 0x60,0x8, 0x2, 0x61,0x41,0x7e,0x35,0x32,0xbe,0x34,0x0, 0x60, +0x8, 0x2, 0x61,0x41,0x80,0x28,0x7e,0x37,0x22,0xfb,0xbe,0x34,0x0, 0x20,0x8, 0xb, +0x7e,0x25,0x32,0xbe,0x24,0x0, 0x20,0x8, 0x2, 0x61,0x41,0xbe,0x34,0x0, 0x30,0x8, +0x2, 0x61,0x41,0x7e,0x35,0x32,0xbe,0x34,0x0, 0x30,0x8, 0x2, 0x61,0x41,0x7e,0xa3, +0x38,0x41,0x74,0xc, 0xa4,0xbe,0x57,0x22,0xf9,0x58,0x2, 0x61,0x41,0x7e,0xa3,0x38, +0x42,0x74,0xc, 0xa4,0xbe,0x55,0x30,0x58,0x2, 0x61,0x41,0x7e,0x15,0x36,0x6d,0x0, +0x7e,0x1d,0x26,0xe5,0x2a,0x12,0xa3,0x7e,0x7a,0xb3,0x22,0xf4,0x7e,0x15,0x38,0x6d, +0x0, 0x7f,0x13,0xe5,0x2a,0x12,0xa3,0x7e,0xf5,0x2d,0x7e,0x73,0x22,0xf5,0xbe,0x73, +0x22,0xf4,0x38,0x7d,0xbe,0x71,0x2d,0x38,0x78,0xe5,0x2d,0x7e,0x31,0x2d,0xac,0x3b, +0x1a,0x2, 0x1a,0x0, 0x7e,0x73,0x22,0xf4,0xac,0x77,0x1a,0x26,0x1a,0x24,0x2f,0x10, +0xe5,0x2d,0xa, 0x5b,0x6d,0x44,0x7e,0x33,0x22,0xf4,0xa, 0x13,0x6d,0x0, 0x2f,0x2, +0x12,0x1f,0x7, 0x7c,0xb7,0xf5,0x2e,0xe5,0x2f,0xbe,0xb1,0x2e,0x38,0x43,0x7e,0x37, +0x22,0xfb,0x2e,0x35,0x32,0x2e,0x35,0x34,0x7a,0x35,0x3a,0xe5,0x2e,0xa, 0x2b,0x7e, +0x34,0x0, 0x64,0x9d,0x32,0x3e,0x34,0x2e,0x35,0x3a,0x7a,0x35,0x3a,0x7e,0x37,0x22, +0xfd,0xbe,0x35,0x3a,0x8, 0x1b,0x7e,0x35,0x3a,0x7a,0x37,0x22,0xfd,0xe5,0x2e,0x7a, +0xb3,0x22,0xf7,0x7e,0x73,0x23,0x41,0x7a,0x73,0x22,0xf8,0xe5,0x2b,0x7a,0xb3,0x22, +0xf6,0x5, 0x2b,0x12,0xa4,0xde,0x28,0x2, 0x21,0x7e,0x7e,0xa3,0x22,0xf7,0xbe,0xa1, +0x2f,0x40,0x20,0x7e,0xb3,0x22,0xf8,0xbe,0xb0,0x0, 0x28,0x17,0xbe,0xb0,0xff,0x50, +0x12,0x7e,0x73,0x22,0xf6,0xa, 0x37,0xb, 0x34,0x7a,0x73,0x38,0x3e,0x7a,0xb3,0x38, +0x40,0x80,0x6, 0x74,0x7c,0x7a,0xb3,0x38,0x3e,0x7c,0xba,0xda,0x3b,0x22,0xca,0x3b, +0x7c,0xfb,0x7f,0x61,0x7f,0x40,0x9f,0x11,0x7f,0x51,0x7f,0x71,0x7a,0x1d,0x3c,0x7a, +0x1d,0x40,0x7a,0x1d,0x44,0xbe,0xf0,0xa, 0x78,0x6, 0x7e,0x54,0x1, 0x3c,0x80,0x4, +0x7e,0x54,0x2, 0x35,0x7a,0x57,0x23,0x43,0x6c,0xee,0x80,0x60,0xa, 0x5e,0x7f,0x14, +0x12,0xa4,0xd6,0x7a,0x55,0x4a,0xa, 0x5e,0x7f,0x16,0x12,0xa4,0xd6,0x7a,0x55,0x48, +0x7e,0x35,0x48,0x12,0xa4,0xcf,0x2f,0x50,0x7e,0x65,0x4a,0x7d,0x16,0x1a,0x2, 0x1a, +0x0, 0x2f,0x70,0x12,0xa4,0xcf,0x12,0xa4,0xc5,0x7e,0x1d,0x3c,0x2f,0x10,0x7a,0x1d, +0x3c,0x7d,0x16,0x1a,0x2, 0x1a,0x0, 0x7e,0x35,0x4a,0x12,0xa4,0xc5,0x7e,0x1d,0x40, +0x2f,0x10,0x7a,0x1d,0x40,0x7e,0x15,0x4a,0x1a,0x2, 0x1a,0x0, 0x7e,0x35,0x48,0x12, +0xa4,0xc5,0x7e,0x1d,0x44,0x2f,0x10,0x7a,0x1d,0x44,0xb, 0xe0,0xbc,0xfe,0x38,0x9c, +0xa, 0xdf,0x6d,0xcc,0x7f,0x15,0x7f,0x6, 0x12,0x1f,0x58,0x7f,0x51,0x7f,0x17,0x7f, +0x6, 0x12,0x1f,0x58,0x7f,0x71,0x7e,0x94,0x0, 0x64,0x7e,0x1d,0x3c,0x7d,0x19,0x12, +0x1e,0xfc,0x7e,0x87,0x23,0x43,0x7d,0x18,0x7d,0xd8,0x1a,0x12,0x1a,0xc2,0x7f,0x6, +0x12,0x1f,0x58,0x7a,0x1d,0x3c,0x7e,0x1d,0x40,0x7d,0x19,0x12,0x1e,0xfc,0x7f,0x6, +0x12,0x1f,0x58,0x7a,0x1d,0x40,0x7e,0x1d,0x44,0x7d,0x19,0x12,0x1e,0xfc,0x7d,0x18, +0x1a,0x2, 0x1a,0x0, 0x12,0x1f,0x58,0x7a,0x1d,0x44,0x7f,0x15,0x7f,0x7, 0x12,0x1e, +0xeb,0x7e,0x6d,0x44,0x9f,0x61,0x7f,0x15,0x7f,0x5, 0x12,0x1e,0xeb,0x7e,0x5d,0x3c, +0x9f,0x51,0x7f,0x17,0x7f,0x7, 0x12,0x1e,0xeb,0x7e,0x7d,0x40,0x9f,0x71,0xbe,0x58, +0x0, 0x0, 0x68,0x6, 0xbe,0x78,0x0, 0x0, 0x78,0x6, 0x7e,0x44,0x0, 0x64,0x80,0x18, +0x7f,0x16,0x7d,0x19,0x12,0x1e,0xfc,0x7f,0x5, 0x12,0x1f,0x58,0x7f,0x6, 0x12,0x1e, +0xeb,0x7f,0x7, 0x12,0x1f,0x58,0x7d,0x43,0xbe,0x44,0x0, 0x0, 0x18,0x2, 0x6d,0x44, +0x7c,0xb9,0xda,0x3b,0x22,0x1a,0x26,0x1a,0x24,0x12,0x1e,0xeb,0x7f,0x1, 0x22,0x7d, +0x13,0x1a,0x2, 0x1a,0x0, 0x22,0x2d,0x35,0x7e,0x1b,0x70,0xa, 0x57,0x22,0x7e,0x73, +0x39,0x1, 0xbe,0x71,0x2b,0x22,0x2d,0x13,0x7e,0xb, 0x50,0xa, 0x25,0x22,0xca,0x79, +0x6c,0xaa,0x12,0xa5,0xe4,0xb, 0x7a,0xf0,0x7d,0x7f,0x7c,0xbf,0xa, 0xfa,0x19,0xbf, +0x38,0x43,0x7f,0x71,0x2d,0xf4,0xb, 0x7a,0x40,0x7c,0xb9,0xa, 0x4a,0x19,0xb4,0x38, +0x63,0xb, 0xa0,0xbe,0xa0,0x20,0x40,0xda,0x7e,0x8, 0x38,0x43,0x7e,0x18,0x38,0x63, +0x74,0x20,0x12,0xa1,0x52,0xda,0x79,0x22,0xca,0x3b,0x7f,0x61,0x7f,0x50,0x7e,0x73, +0x38,0x3f,0xbe,0x70,0x20,0x40,0x52,0x7e,0xf0,0x2, 0x80,0x3c,0xa, 0x3f,0x6d,0x22, +0x74,0x5, 0x2f,0x11,0x14,0x78,0xfb,0x7e,0x33,0x38,0x3f,0xa, 0x13,0x6d,0x0, 0x12, +0x1f,0x7, 0x7c,0xe7,0xbe,0xe0,0x2, 0x50,0x3, 0x7e,0xe0,0x2, 0xa, 0x6f,0x1b,0x64, +0xa, 0x3e,0x1b,0x34,0x7c,0xc7,0x7f,0x5, 0x7c,0xbd,0x12,0xa5,0x92,0x7f,0x6, 0x7c, +0xbd,0x7c,0x7c,0x12,0xa5,0x92,0xb, 0xf0,0x7e,0x73,0x38,0x3f,0xbc,0x7f,0x50,0xbc, +0x7f,0x5, 0x7f,0x16,0x12,0xa4,0xee,0x80,0x6, 0x74,0x7e,0x7a,0xb3,0x38,0x3e,0xda, +0x3b,0x22,0x7c,0x97,0x7c,0xab,0x7f,0x10,0x7e,0x30,0x2, 0xac,0x3a,0x2d,0x13,0x7d, +0x2, 0xb, 0xa, 0x10,0x7e,0x10,0x2, 0xac,0x19,0x7f,0x71,0x2d,0xf0,0xb, 0x7a,0x0, +0x7c,0x21,0xa5,0xba,0x0, 0x14,0x1a,0x3, 0x1b,0x7a,0x0, 0xbc,0x9a,0x68,0x24,0x6d, +0x44,0x74,0x2, 0xa4,0x2d,0x35,0x1b,0x1a,0x40,0x22,0xbc,0x9a,0x68,0x15,0x1a,0x2, +0x1a,0x13,0x2d,0x10,0xe, 0x14,0x1b,0x7a,0x10,0x6d,0x11,0x74,0x2, 0xa4,0x2d,0x35, +0x1b,0x1a,0x10,0x22,0x7e,0x90,0x2, 0xac,0x9a,0x7f,0x70,0x2d,0xf4,0x22,0xe4,0x7a, +0xb3,0x35,0x69,0x7e,0xb3,0x28,0x84,0x60,0x6, 0x7e,0xb3,0x35,0xe2,0x60,0x5, 0xe4, +0x7a,0xb3,0x35,0xe4,0x22,0x7e,0xa0,0x1, 0x7e,0x37,0x2a,0x4f,0x12,0xa6,0x4e,0x28, +0x35,0x6d,0x22,0x9d,0x23,0xbe,0x27,0x7, 0xf8,0x58,0x2b,0x12,0x8f,0xdc,0xbe,0x37, +0x7, 0xfa,0x8, 0x22,0xe4,0x7a,0xb3,0x28,0x84,0x7e,0xb3,0x2a,0x3, 0x70,0x17,0x7e, +0xb3,0x37,0x8, 0xb4,0x1, 0x10,0x6c,0xaa,0x5, 0x1f,0xe5,0x1f,0xbe,0xb0,0x10,0x28, +0x5, 0xd2,0x11,0x75,0x1f,0x0, 0x4c,0xaa,0x68,0x3, 0x75,0x1f,0x0, 0x22,0x7e,0xb3, +0x28,0x84,0xbe,0xb0,0x0, 0x22,0xca,0x3b,0x7f,0x61,0x7f,0x50,0x7e,0x73,0x2a,0x6e, +0xa, 0x37,0x3e,0x34,0xca,0x39,0x7f,0x16,0x7f,0x5, 0x12,0x20,0xb9,0x1b,0xfd,0x6c, +0xdd,0x12,0xa7,0x10,0x7a,0xb3,0x1f,0x6c,0x6c,0xcc,0x80,0x4a,0x12,0xa6,0xff,0x78, +0x43,0x74,0x2, 0xac,0xbc,0x7f,0x16,0x2d,0x35,0xb, 0x1a,0xe0,0x7d,0x3f,0x12,0x21, +0x0, 0x7d,0x13,0x7d,0x3e,0x12,0x21,0x0, 0xbd,0x31,0x58,0x2, 0x7d,0xfe,0xbe,0xe5, +0x2e,0x8, 0x5, 0x7e,0xe5,0x2e,0x80,0xb, 0x6d,0x33,0x9e,0x35,0x2e,0xbd,0x3e,0x8, +0x2, 0x7d,0xe3,0x7d,0x3e,0x1a,0x26,0x1a,0x24,0x2f,0x41,0x7e,0xb3,0x1f,0x6c,0x4, +0x7a,0xb3,0x1f,0x6c,0xb, 0xc0,0x7e,0x73,0x2a,0x70,0xbc,0x7c,0x38,0xae,0x7e,0x73, +0x1f,0x6c,0x4c,0x77,0x68,0x1d,0x12,0xa7,0x2d,0x8, 0x2, 0x7d,0x7f,0x6c,0xcc,0x80, +0xa, 0x12,0xa6,0xff,0x78,0x3, 0x12,0xa7,0x18,0xb, 0xc0,0x7e,0x73,0x2a,0x70,0xbc, +0x7c,0x38,0xee,0xb, 0xd0,0xbe,0xd0,0x2, 0x50,0x2, 0xc1,0x71,0xda,0x3b,0x22,0xa, +0xec,0x9, 0x7e,0x2a,0xdc,0xa, 0x37,0x5e,0x34,0x0, 0x1, 0xa, 0xed,0xbd,0x3e,0x22, +0x7e,0xf4,0x7f,0xff,0x9f,0x44,0xe4,0x22,0x74,0x2, 0xac,0xbc,0x7f,0x16,0x2d,0x35, +0xb, 0x1a,0xe0,0x9d,0xe7,0x7f,0x15,0x2d,0x35,0x1b,0x1a,0xe0,0x22,0xa, 0x17,0x6d, +0x0, 0x7f,0x14,0x12,0x1f,0x58,0x7d,0x73,0x12,0x21,0x0, 0x7d,0xe3,0x7d,0x3f,0x12, +0x21,0x0, 0xbd,0x3e,0x22,0x7e,0x63,0x2a,0x6e,0x90,0x60,0xa7,0xe4,0x93,0x60,0x6c, +0xc2,0x12,0x6c,0x33,0x80,0x56,0x90,0x60,0xaa,0xe4,0x93,0x70,0x13,0x7c,0x96,0xac, +0x93,0x90,0x60,0xab,0xe4,0x93,0xa, 0x5b,0x1b,0x54,0x2d,0x45,0x7d,0xd4,0xb, 0xd4, +0x7d,0x54,0x3e,0x54,0x7e,0x7f,0x13,0x8a,0x2d,0xf5,0xb, 0x7a,0x50,0xbe,0x57,0x2a, +0x5a,0x8, 0x27,0x7c,0xb3,0x12,0x31,0x5a,0x50,0x20,0x7d,0x5d,0x3e,0x54,0x7e,0x7f, +0x13,0x8a,0x7f,0x57,0x2d,0xb5,0xb, 0x5a,0xc0,0x7d,0x54,0x3e,0x54,0x2d,0xf5,0xb, +0x7a,0x50,0xbd,0x5c,0x8, 0x4, 0xd2,0x12,0x80,0xa, 0xb, 0x30,0x7e,0x73,0x2a,0x75, +0xbc,0x73,0x38,0xa2,0x30,0x12,0x5, 0xd2,0x3, 0x2, 0x32,0xe7,0x22,0x90,0x60,0xa7, +0xe4,0x93,0x60,0x8, 0x30,0x12,0x5, 0x12,0x31,0x7d,0xc2,0x12,0x22,0xca,0xd8,0xca, +0x79,0x7c,0xfb,0x7f,0x70,0xc2,0x3, 0x6c,0xdd,0x6d,0xdd,0x7e,0x34,0x22,0xe6,0x7e, +0x24,0x0, 0xff,0x7e,0x14,0x1f,0x34,0x74,0xc, 0x12,0x1f,0xad,0x6d,0x11,0x7e,0x4, +0x7f,0xff,0x6c,0xee,0x80,0x13,0x12,0xa8,0xe1,0x7d,0xc3,0xbd,0xdc,0x50,0x2, 0x7d, +0xdc,0xbd,0xc, 0x28,0x2, 0x7d,0xc, 0xb, 0xe0,0xbc,0xfe,0x38,0xe9,0xbe,0xd4,0x0, +0x1e,0x58,0xa, 0x7e,0xb3,0x28,0x94,0x70,0x4, 0x6d,0x33,0x1, 0xd2,0xbe,0xd4,0x4, +0xb0,0x8, 0x2, 0xd2,0x3, 0x6c,0xee,0x74,0x4, 0xac,0xbe,0x49,0x45,0x1f,0x34,0xbd, +0x4d,0x58,0x6, 0x49,0xd5,0x1f,0x36,0x80,0x7, 0xb, 0xe0,0xbe,0xe0,0x3, 0x40,0xe7, +0xbe,0xe0,0x3, 0x78,0x4, 0x6d,0x33,0x1, 0xd2,0xbd,0xd, 0x8, 0x5, 0x30,0x3, 0x2, +0x7d,0xd0,0x9f,0x55,0x6c,0xee,0x80,0xb, 0x12,0xa8,0xe1,0x1a,0x26,0x1a,0x24,0x2f, +0x51,0xb, 0xe0,0xbc,0xfe,0x38,0xf1,0xa, 0x1f,0x12,0xa8,0xd7,0x9f,0x55,0x6c,0xee, +0x80,0x22,0x74,0x2, 0xac,0xbe,0x7f,0x17,0x2d,0x35,0xb, 0x1a,0x90,0x7d,0x39,0x12, +0x21,0x0, 0x7d,0xc3,0xbd,0x1c,0x28,0xa, 0x7d,0x39,0x1a,0x26,0x1a,0x24,0x2f,0x51, +0xb, 0xd0,0xb, 0xe0,0xbc,0xfe,0x38,0xda,0x6d,0x11,0xbe,0xd0,0x0, 0x28,0x5, 0xa, +0x1d,0x12,0xa8,0xd7,0xbd,0x1d,0x8, 0x4, 0x7d,0x1d,0x80,0xa, 0x6d,0x0, 0x9d,0xd, +0xbd,0x1, 0x8, 0x2, 0x7d,0x10,0x6c,0xee,0x80,0x12,0x74,0x2, 0xac,0xbe,0x7f,0x17, +0x2d,0x35,0xb, 0x1a,0x0, 0x9d,0x1, 0x1b,0x1a,0x0, 0xb, 0xe0,0xbc,0xfe,0x38,0xea, +0x7d,0x31,0xda,0x79,0xda,0xd8,0x22,0x6d,0x0, 0x7f,0x15,0x12,0x1f,0x58,0x7d,0x13, +0x22,0x74,0x2, 0xac,0xbe,0x7f,0x17,0x2d,0x35,0xb, 0x1a,0x30,0x2, 0x21,0x0, 0xca, +0xf8,0x7f,0x71,0x6d,0xdd,0x6c,0xaa,0x7e,0xf0,0x80,0xc2,0x3, 0x6d,0x44,0x80,0x32, +0x12,0xa9,0x90,0x12,0xa8,0xe9,0xbd,0x3d,0x48,0x26,0x12,0xa9,0x90,0xb, 0x1a,0x30, +0xbe,0x34,0x0, 0x0, 0x8, 0x4, 0xd2,0x3, 0x80,0x9, 0x12,0x21,0x0, 0xbd,0x3d,0x68, +0x2, 0xc2,0x3, 0x7d,0x34,0x3e,0x34,0x2d,0x3f,0x7d,0x2e,0x12,0xa8,0xe9,0x7d,0xd3, +0xb, 0x44,0x7e,0xc5,0x35,0xbd,0xc4,0x38,0xc7,0x30,0x3, 0xc, 0x7e,0xf0,0x7f,0x80, +0x7, 0xb, 0xa0,0xbe,0xa0,0x8, 0x50,0x11,0x7c,0xba,0x7d,0x3d,0x60,0x5, 0xe, 0x34, +0x14,0x78,0xfb,0xa, 0xcf,0xbd,0x3c,0x18,0xe8,0x7f,0x10,0x2e,0x35,0x35,0x7a,0x1b, +0xa0,0x6d,0x44,0x80,0x21,0x7d,0x54,0x3e,0x54,0x7f,0x17,0x2d,0x35,0xb, 0x1a,0x30, +0x7f,0x60,0x2e,0xd5,0x35,0x7e,0x6b,0xb0,0x60,0x5, 0xe, 0x34,0x14,0x78,0xfb,0x7c, +0xb7,0x12,0xa9,0x9b,0xb, 0x44,0x7e,0x55,0x35,0xbd,0x54,0x38,0xd8,0xda,0xf8,0x22, +0x7d,0xc4,0x3e,0xc4,0x7f,0x17,0x2d,0x3c,0x22,0xa, 0x4a,0x7f,0x10,0x2d,0x34,0x7a, +0x1b,0xb0,0x22,0xd2,0xc9,0x75,0xf2,0x30,0x75,0xf3,0x80,0x75,0xf4,0xc, 0x75,0xf5, +0x1, 0x6c,0xaa,0xe5,0xf5,0x54,0x80,0xb4,0x80,0xf9,0xe5,0xf6,0x12,0xa9,0x99,0xb, +0xa0,0xbe,0xa0,0xd, 0x40,0xed,0xc2,0xc9,0x22,0x90,0x60,0x93,0xe4,0x93,0xa, 0xb, +0x7e,0x73,0x2a,0x71,0xa, 0x17,0x2d,0x10,0x7e,0xa3,0x2a,0x6e,0xa, 0x3a,0xad,0x13, +0x7d,0x21,0x6c,0x33,0x80,0x20,0xa, 0x3, 0x2d,0x2, 0x3e,0x4, 0x7e,0x7f,0x38,0xd9, +0x2d,0xf0,0xb, 0x7a,0x0, 0x7e,0x90,0x2, 0xac,0x93,0x49,0xf4,0x13,0x8e,0x9d,0xf, +0x59,0x4, 0x25,0xb6,0xb, 0x30,0xbc,0xa3,0x38,0xdc,0x7a,0x35,0x35,0x7e,0xf, 0x37, +0x40,0x7e,0x18,0x25,0xb6,0x2, 0xa8,0xef,0x7e,0xb3,0x2b,0x1d,0xb4,0x1, 0x31,0x12, +0xaa,0x51,0x7e,0x1f,0x38,0xd9,0x7a,0x37,0x24,0xfa,0x7e,0x34,0xd, 0xc8,0x7a,0x37, +0x24,0xf6,0x12,0xaa,0x58,0x12,0xaa,0x61,0xe4,0x7a,0xb3,0x24,0xf5,0x7e,0x34,0x0, +0x20,0x7a,0x37,0x24,0xfc,0x7a,0xb3,0x24,0xf4,0x7e,0x8, 0x24,0xf2,0x2, 0xd, 0x7, +0x22,0xa9,0xd1,0xcb,0xe4,0x2, 0x0, 0xe, 0x7e,0x73,0x2a,0x6d,0x7a,0x73,0x24,0xf2, +0x22,0x7e,0x73,0x2a,0x6e,0x7a,0x73,0x24,0xf3,0x22,0x7e,0x43,0x2a,0x6e,0x7e,0x53, +0x2a,0x6d,0xac,0x54,0x7e,0x17,0x28,0xa1,0x12,0xaa,0x51,0x6d,0x0, 0x80,0x37,0x7d, +0x40,0x3e,0x44,0x7e,0x7f,0x38,0xd9,0x2d,0xf4,0xb, 0x7a,0x30,0xbd,0x13,0x58,0x10, +0x7d,0xf4,0x2e,0xf4,0x8, 0xa, 0xb, 0xf8,0x50,0x9d,0x51,0x1b,0xf8,0x50,0x80,0x14, +0x6d,0x55,0x9d,0x51,0xbd,0x53,0x8, 0xc, 0x2e,0x44,0x8, 0xa, 0xb, 0x48,0x50,0x2d, +0x51,0x1b,0x48,0x50,0xb, 0x4, 0xbd,0x20,0x38,0xc5,0x22,0x7c,0xab,0x7e,0x8, 0x29, +0xbc,0x12,0x5e,0x25,0x28,0x1f,0xa, 0x3a,0x7f,0x70,0x2d,0xf3,0x7e,0x7b,0xb0,0xb4, +0x2, 0x4, 0x74,0x1, 0x80,0x2, 0x74,0x3, 0x7a,0x7b,0xb0,0x74,0x3, 0x2d,0x31,0x7d, +0x20,0x39,0xb1,0x0, 0xa, 0x22,0xca,0xd8,0xca,0x79,0x7e,0x34,0x61,0x43,0x7e,0x24, +0x0, 0xff,0xb, 0x1a,0x40,0x90,0x61,0x35,0xe4,0x93,0x70,0x2, 0x61,0x96,0x90,0x60, +0xa7,0xe4,0x93,0x70,0x2, 0x61,0x96,0x6c,0xff,0x61,0x8f,0x7e,0x70,0x9, 0xac,0x7f, +0x9, 0xe3,0x29,0xc, 0x5e,0xe0,0xf, 0x49,0xc3,0x29,0xa, 0x7e,0x14,0x60,0xd1,0x7e, +0x4, 0x0, 0xff,0xb, 0xa, 0x20,0x2d,0x24,0xbd,0xc2,0x40,0x42,0x49,0xd3,0x29,0x8, +0x7d,0x3d,0x12,0xab,0xa4,0x7c,0xdb,0x90,0x60,0xa7,0xe4,0x93,0xbc,0xbd,0x38,0xe, +0x7d,0x34,0x1b,0x34,0x12,0xab,0x9b,0x7c,0xbe,0x12,0xaa,0xbb,0x80,0x3f,0x7e,0x70, +0x2, 0xac,0x7d,0x2e,0x34,0x60,0xc5,0x12,0x87,0xbc,0x74,0x9, 0xac,0xbf,0x59,0xd5, +0x29,0x8, 0x7e,0x34,0x60,0xcf,0x12,0x23,0x9e,0x12,0xab,0x9b,0x80,0x1f,0xbd,0xc4, +0x40,0x1b,0x7d,0x54,0x2e,0x54,0x0, 0xa, 0xbd,0xc5,0x40,0x5, 0x7c,0xbe,0x12,0xaa, +0xbb,0x7d,0xc4,0x1b,0xc4,0x74,0x9, 0xac,0xbf,0x59,0xc5,0x29,0xa, 0xb, 0xf0,0x12, +0x5e,0x2d,0x28,0x2, 0x61,0xb, 0xda,0x79,0xda,0xd8,0x22,0x74,0x9, 0xac,0xbf,0x59, +0x35,0x29,0xa, 0x22,0x6c,0xaa,0x80,0x27,0x7e,0x30,0x4, 0xac,0x3a,0x7d,0xf1,0x2e, +0xf4,0x60,0xb1,0x7e,0xe4,0x0, 0xff,0xb, 0x7a,0x20,0xbd,0x23,0x38,0xf, 0x2e,0x14, +0x60,0xb3,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0x20,0xbd,0x23,0x50,0xb, 0xb, 0xa0,0x90, +0x60,0xa7,0xe4,0x93,0xbc,0xba,0x38,0xd0,0x7c,0xba,0x22,0x90,0x60,0xa7,0xe4,0x93, +0x60,0x2b,0x6c,0x33,0x80,0x1f,0x7c,0xb3,0x12,0x31,0x5a,0x40,0x16,0x7c,0xb3,0x12, +0x31,0x27,0x7d,0x43,0x6d,0x55,0x7d,0x4, 0x3e,0x4, 0x7e,0x1f,0x13,0x8a,0x2d,0x30, +0x1b,0x1a,0x50,0xb, 0x30,0x7e,0x23,0x2a,0x75,0xbc,0x23,0x38,0xd9,0x22,0x12,0xac, +0x20,0x7e,0x14,0x62,0x7, 0x12,0x87,0xee,0x28,0x3, 0xd2,0x13,0x22,0xc2,0x13,0x22, +0x6d,0x11,0xe4,0x12,0x0, 0x1e,0x6c,0xaa,0x80,0x5b,0x7e,0x10,0x2, 0xac,0x1a,0x7e, +0x7f,0x38,0xf3,0x2d,0xf0,0x69,0x27,0x1, 0x0, 0x69,0x37,0x0, 0x80,0x9d,0x32,0x12, +0x21,0x0, 0xbd,0x31,0x28,0x16,0x7e,0x70,0x2, 0xac,0x7a,0x7e,0xf, 0x38,0xf3,0x2d, +0x13,0x69,0x20,0x1, 0x0, 0x69,0x30,0x0, 0x80,0x12,0x81,0xbf,0x7e,0x10,0x2, 0xac, +0x1a,0x7e,0x1f,0x38,0xf3,0x2d,0x30,0x69,0x1, 0x0, 0x80,0xbe,0x4, 0x7f,0xff,0x78, +0x4, 0x7e,0x14,0x7f,0xff,0x69,0x1, 0x1, 0x0, 0xbe,0x4, 0x7f,0xff,0x78,0x4, 0x7e, +0x14,0x7f,0xff,0xb, 0xa0,0x7e,0xb3,0x2a,0x74,0xbc,0xba,0x38,0x9d,0x7d,0x31,0x22, +0x6c,0x66,0x7e,0x27,0x39,0x4, 0xbe,0x24,0x3, 0xe8,0x28,0x3, 0x7e,0x60,0x8, 0x7e, +0xb3,0x28,0xac,0xb4,0x1, 0x1a,0x7e,0x73,0x2f,0xab,0xbc,0x76,0x50,0xf, 0xe4,0x7a, +0xb3,0x28,0xad,0x12,0x8a,0x87,0x7e,0xb3,0x2f,0xab,0x4, 0x80,0x4, 0xe4,0x80,0x1, +0xe4,0x7a,0xb3,0x2f,0xab,0x7e,0xb3,0x28,0xad,0xb4,0x1, 0x17,0x7e,0xa3,0x2f,0xac, +0xbe,0xa0,0x5, 0x50,0xa, 0xe4,0x7a,0xb3,0x28,0xad,0x7c,0xba,0x4, 0x80,0x5, 0x74, +0x5, 0x80,0x1, 0xe4,0x7a,0xb3,0x2f,0xac,0x22,0x6c,0xaa,0x80,0x26,0x7e,0x50,0x2, +0xac,0x5a,0x49,0x12,0x5, 0xf8,0x49,0x32,0x4, 0x0, 0x2d,0x31,0x59,0x32,0x5, 0xf8, +0x30,0x1, 0xe, 0x49,0x12,0x4, 0x7e,0x49,0x32,0x6, 0x76,0x2d,0x31,0x59,0x32,0x6, +0x76,0xb, 0xa0,0x7e,0xb3,0x2a,0x74,0xa, 0x3b,0x7e,0xb3,0x2a,0x73,0xa, 0x2b,0x2d, +0x23,0xa, 0x3a,0xbd,0x32,0x48,0xc6,0x22,0xd2,0x3, 0x6c,0xaa,0x6c,0x77,0x80,0x1f, +0x7e,0x63,0x2a,0x6e,0xa, 0x16,0xa, 0x27,0x2d,0x21,0x7c,0x65,0x7e,0x50,0x2, 0xac, +0x56,0x49,0x22,0x5, 0x7a,0xbe,0x24,0xfe,0xc, 0x58,0x2, 0xb, 0xa0,0xb, 0x70,0x7e, +0xb3,0x2a,0x6d,0xbc,0xb7,0x38,0xd9,0xa, 0x2b,0x1e,0x24,0xa, 0x3a,0xbd,0x32,0x8, +0x2, 0xc2,0x3, 0xa2,0x3, 0x22,0xc2,0x3, 0x7e,0xa3,0x2a,0x70,0x7e,0xb3,0x26,0xf1, +0x60,0x4, 0xd2,0x3, 0x80,0x33,0x7e,0x70,0x2, 0x80,0x22,0x7e,0x50,0x2, 0xac,0x57, +0x49,0x12,0x4, 0xfc,0x7e,0xf4,0x61,0x59,0x7e,0xe4,0x0, 0xff,0xb, 0x7a,0x0, 0x6d, +0x22,0x9d,0x20,0xbd,0x12,0x58,0x4, 0xd2,0x3, 0x80,0xe, 0xb, 0x70,0xa, 0x1a,0x9e, +0x14,0x0, 0x3, 0xa, 0x27,0xbd,0x21,0x48,0xd2,0xa2,0x3, 0x22,0x7d,0x23,0x7e,0x14, +0x61,0xc8,0x12,0x64,0xd3,0x7e,0x14,0x0, 0x5, 0xad,0x13,0x1e,0x14,0xbd,0x12,0x50, +0xd, 0x7e,0x33,0x36,0xdc,0xbe,0x30,0x8, 0x50,0x45,0x74,0x8, 0x80,0x3d,0x7d,0x13, +0x3e,0x14,0xbd,0x12,0x50,0xd, 0x7e,0x33,0x36,0xdc,0xbe,0x30,0x6, 0x50,0x30,0x74, +0x6, 0x80,0x28,0x7e,0x14,0x0, 0x3, 0xad,0x13,0x1e,0x14,0xbd,0x12,0x50,0xd, 0x7e, +0x33,0x36,0xdc,0xbe,0x30,0x4, 0x50,0x17,0x74,0x4, 0x80,0xf, 0xbd,0x32,0x50,0xf, +0x7e,0x73,0x36,0xdc,0xbe,0x70,0x2, 0x50,0x6, 0x74,0x2, 0x7a,0xb3,0x36,0xdc,0x7e, +0xb3,0x36,0xdc,0xbe,0xb0,0x0, 0x28,0x1b,0x14,0x7a,0xb3,0x36,0xdc,0x74,0x1, 0x7a, +0xb3,0x16,0x92,0x90,0x61,0xfd,0xe4,0x93,0xbe,0xb3,0x36,0xdc,0x50,0x5, 0xe4,0x7a, +0xb3,0x16,0x91,0x22,0x7c,0x3b,0x7e,0x44,0xff,0xff,0x6c,0x22,0x80,0x2a,0x12,0xae, +0xad,0x68,0x23,0x7e,0x70,0xc, 0xac,0x72,0x12,0xae,0xc5,0x7d,0x23,0x7e,0x70,0xc, +0xac,0x72,0x59,0x23,0x36,0x82,0x49,0x3, 0x36,0x82,0x49,0x23,0x36,0x7e,0xbd,0x20, +0x50,0x4, 0x59,0x3, 0x36,0x7e,0xb, 0x20,0xbc,0x32,0x50,0xd2,0x6c,0xaa,0x6c,0x22, +0x80,0x18,0x12,0xae,0xad,0x68,0x11,0x7e,0x70,0xc, 0xac,0x72,0x49,0x3, 0x36,0x7e, +0xbd,0x4, 0x50,0x4, 0x7d,0x40,0x7c,0xa2,0xb, 0x20,0xbc,0x32,0x50,0xe4,0x7e,0x37, +0x36,0x64,0xbe,0x37,0x36,0xdd,0x50,0x8, 0x7e,0x37,0x36,0xdd,0x7a,0x37,0x36,0x64, +0x12,0xae,0xbb,0x4d,0x33,0x78,0x3, 0x7e,0xa0,0xff,0x7c,0xba,0x22,0x7e,0x10,0x5, +0xac,0x12,0x9, 0xb0,0x26,0x33,0xbe,0xb3,0x2b,0xf, 0x22,0x7e,0x70,0xc, 0xac,0x7a, +0x49,0x33,0x36,0x7e,0x22,0x49,0x23,0x36,0x84,0x49,0x33,0x36,0x80,0x9d,0x32,0x2, +0x21,0x0, 0x7e,0x8, 0x36,0x7a,0x7e,0x34,0x0, 0x60,0xe4,0x12,0x20,0xde,0x6c,0xaa, +0x7e,0x44,0xff,0xff,0x7e,0x70,0xc, 0xac,0x7a,0x59,0x43,0x36,0x7c,0x59,0x43,0x36, +0x84,0xb, 0xa0,0xbe,0xa0,0x8, 0x40,0xe8,0x7e,0x8, 0x36,0x68,0x7e,0x34,0x0, 0xd, +0xe4,0x2, 0x20,0xde,0x7e,0xa3,0x2b,0x62,0xbc,0xab,0x68,0x6, 0x7a,0xb3,0x2b,0x62, +0xd2,0xc, 0x30,0xc, 0x7, 0x12,0xaf,0x1d,0xe4,0x2, 0xa, 0x66,0x22,0xc2,0xc, 0x7e, +0x8, 0x2a,0x6d,0x12,0x3, 0x8b,0x7e,0x8, 0x2a,0x6d,0x74,0x3, 0x2, 0x11,0x7a,0xe4, +0x7a,0xb3,0x36,0x67,0x6c,0xaa,0x80,0xd, 0x6d,0x44,0x7e,0x70,0xc, 0xac,0x7a,0x59, +0x43,0x36,0x7e,0xb, 0xa0,0x12,0x8d,0x8, 0x38,0xee,0xe4,0x7a,0xb3,0x36,0x68,0x6d, +0x33,0x7a,0x37,0x36,0x6f,0x7a,0x37,0x36,0x64,0x22,0x7e,0xb3,0x36,0x6a,0xb4,0x1, +0x27,0x7e,0xb3,0x36,0xe0,0x4, 0x7a,0xb3,0x36,0xe0,0x7e,0x73,0x36,0xe0,0xbe,0x70, +0x3, 0x40,0x15,0x12,0x8c,0x90,0x7e,0x73,0x36,0xe0,0xbe,0x70,0x6, 0x40,0x9, 0xe4, +0x7a,0xb3,0x36,0xe0,0x7a,0xb3,0x36,0x6a,0x22,0x12,0x24,0x14,0xe4,0x7a,0xb3,0x3, +0xfe,0x2, 0x76,0x52,0xca,0xd8,0xca,0x79,0x7f,0x70,0x7e,0x93,0x28,0x84,0x6c,0x88, +0x7e,0xf0,0x1, 0x80,0x1a,0xa, 0x58,0x7f,0x17,0x2d,0x35,0x7e,0x1b,0x60,0xa, 0x5f, +0x7f,0x7, 0x2d,0x15,0x7e,0xb, 0x70,0xbc,0x76,0x40,0x2, 0x7c,0x8f,0xb, 0xf0,0xbc, +0x9f,0x38,0xe2,0xa, 0x38,0x2d,0x3f,0x7d,0x2e,0x7e,0x1b,0x80,0x6c,0xaa,0x7e,0xf0, +0x1, 0x2, 0xb0,0x54,0x75,0x45,0x0, 0x6d,0xdd,0x6d,0xbb,0x7d,0xcb,0x75,0x44,0x0, +0x80,0x36,0x7e,0x71,0x44,0x74,0x2, 0xac,0x7b,0x9, 0xe3,0x26,0xfa,0x9, 0xd3,0x26, +0xfb,0xe5,0x44,0xa, 0xab,0x7f,0x17,0x2d,0x3a,0x7e,0x1b,0xb0,0xbc,0xbf,0x78,0x16, +0x5, 0x45,0xa, 0xae,0x2d,0xca,0xa, 0xad,0x2d,0xba,0x12,0xb0,0x62,0xbd,0x3d,0x8, +0x5, 0x12,0xb0,0x62,0x7d,0xd3,0x5, 0x44,0xbe,0x91,0x44,0x38,0xc5,0xe5,0x45,0xbe, +0xb0,0x0, 0x28,0x2e,0xe5,0x45,0xa, 0xab,0x7d,0x3c,0x8d,0x3a,0x7d,0xc3,0x8d,0xba, +0x7e,0x50,0x2, 0xac,0x5a,0x19,0x72,0x33,0xc3,0x7d,0x3b,0x7e,0x50,0x2, 0xac,0x5a, +0x19,0x72,0x33,0xc4,0x7d,0x3c,0x7c,0xb7,0x7d,0x3b,0x12,0x30,0x3, 0x1b,0x1a,0xd0, +0xb, 0xa0,0xb, 0xf0,0xbc,0x8f,0x40,0x3, 0x2, 0xaf,0xd4,0x7c,0xba,0xda,0x79,0xda, +0xd8,0x22,0x7c,0xbe,0x7c,0x7d,0x2, 0x2c,0x40,0x7c,0x9b,0x7f,0x71,0x7f,0x60,0x7e, +0x34,0x22,0xb8,0x7e,0x24,0x0, 0xff,0x7e,0x14,0x1f,0x52,0x74,0x2a,0x12,0x1f,0xad, +0x7e,0x58,0x1f,0x52,0x7c,0xb9,0x7e,0x71,0x44,0x12,0x2c,0x40,0x7d,0x43,0xe5,0x45, +0x7e,0x71,0x46,0x12,0x2c,0x40,0x2d,0x34,0xe, 0x34,0x7f,0x5, 0x7e,0x50,0x7, 0xb, +0xa, 0x50,0xbd,0x53,0x58,0xf, 0x69,0x30,0x0, 0x2, 0x1b,0x6a,0x30,0x69,0x30,0x0, +0x4, 0x1b,0x7a,0x30,0x22,0x2e,0x14,0x0, 0x6, 0x1b,0x50,0x78,0xe2,0x22,0x6d,0x33, +0x7d,0x23,0x7d,0x3, 0x6c,0x33,0x80,0x45,0x6c,0x22,0x80,0x37,0x7e,0xb3,0x2a,0x6e, +0xac,0xb3,0xa, 0x42,0x2d,0x54,0x7d,0x45,0x3e,0x44,0x7e,0x7f,0x13,0x8a,0x2d,0xf4, +0xb, 0x7a,0x40,0xbe,0x44,0x0, 0x32,0x8, 0x8, 0xbe,0x44,0x2, 0x58,0x58,0x2, 0xb, +0x24,0xbe,0x44,0xff,0xce,0x58,0x8, 0xbe,0x44,0xfd,0xa8,0x8, 0x2, 0xb, 0x4, 0xb, +0x34,0xb, 0x21,0x7e,0x93,0x2a,0x6e,0xbc,0x92,0x38,0xc1,0xb, 0x31,0x7e,0xb3,0x2a, +0x6d,0xbc,0xb3,0x38,0xb3,0x7e,0x54,0x0, 0x6, 0xad,0x53,0x7d,0x15,0x1e,0x14,0x1e, +0x14,0x1e,0x14,0x12,0x25,0x3e,0xbd,0x12,0x50,0x22,0xbd,0x30,0x28,0x1e,0xe4,0x7a, +0xb3,0x39,0x8, 0x7e,0xb3,0x39,0x9, 0xbe,0xb0,0x5, 0x50,0x7, 0x4, 0x7a,0xb3,0x39, +0x9, 0x80,0x3c,0xe4,0x7a,0xb3,0x39,0x9, 0x74,0x1, 0x80,0x2f,0xbd,0x10,0x50,0x22, +0xbd,0x32,0x28,0x1e,0xe4,0x7a,0xb3,0x39,0x9, 0x7e,0xb3,0x39,0x8, 0xbe,0xb0,0x5, +0x50,0x7, 0x4, 0x7a,0xb3,0x39,0x8, 0x80,0x16,0xe4,0x7a,0xb3,0x39,0x8, 0x74,0x2, +0x80,0x9, 0xe4,0x7a,0xb3,0x39,0x8, 0x7a,0xb3,0x39,0x9, 0x7a,0xb3,0x39,0xa, 0x7e, +0xb3,0x39,0xa, 0x22,0xe4,0x7a,0xb3,0x28,0xa8,0x7a,0xb3,0x39,0xb, 0x22,0xca,0xd8, +0xca,0x79,0xc2,0x3, 0x6c,0xdd,0x7e,0x57,0x28,0x99,0x7d,0xf5,0x7e,0xe7,0x28,0x97, +0x7e,0x37,0x37,0xfb,0x4d,0x33,0x68,0x4, 0x7d,0xf5,0xe, 0xf4,0x6c,0xff,0x7e,0xa3, +0x2a,0x6e,0x7c,0x8a,0x7e,0xb3,0x28,0xa5,0x14,0x68,0x21,0x14,0x68,0x14,0x24,0xc2, +0x68,0x8, 0x24,0xfb,0x68,0x16,0x24,0x45,0x78,0x10,0x7c,0xfa,0x7e,0x83,0x2a,0x6d, +0x80,0xa, 0x7e,0x73,0x2a,0x6d,0x2c,0x87,0x80,0x2, 0x6c,0x88,0x6c,0x99,0x80,0xf, +0x7c,0xb9,0x12,0x37,0x6f,0xbe,0x34,0x2, 0x58,0x8, 0x2, 0xb, 0xd0,0xb, 0x90,0x7e, +0x33,0x28,0x84,0xbc,0x39,0x38,0xe9,0xbe,0xd0,0x3, 0x40,0x2, 0x61,0x4f,0x7e,0xa3, +0x28,0x85,0xbe,0xa0,0x0, 0x38,0xb, 0xbe,0x30,0x0, 0x28,0x37,0x7e,0xb3,0x26,0x83, +0x70,0x31,0x6c,0x99,0x80,0x29,0xa, 0x29,0xa, 0x3f,0x2d,0x32,0x3e,0x34,0x49,0x23, +0x5, 0x7a,0xbd,0x2f,0x8, 0x17,0x49,0x3, 0x4, 0xfc,0xbd,0xe, 0x58,0xf, 0x6d,0x33, +0x9d,0x3e,0x12,0x8f,0xdc,0xbd,0x3, 0x8, 0x4, 0xd2,0x3, 0x80,0x6, 0xb, 0x90,0xbc, +0x89,0x38,0xd3,0x6d,0xee,0x9e,0xe7,0x2a,0x4f,0xbe,0xe7,0x7, 0xf8,0x8, 0x2, 0xc2, +0x3, 0x30,0x3, 0x20,0x7e,0xb3,0x39,0xb, 0x4, 0x7a,0xb3,0x39,0xb, 0x7e,0x23,0x39, +0xb, 0xbe,0x20,0xa, 0x28,0x1d,0x74,0xa, 0x7a,0xb3,0x39,0xb, 0x74,0x1, 0x7a,0xb3, +0x28,0xa8,0x80,0xf, 0x7e,0x23,0x39,0xb, 0xbe,0x20,0x0, 0x28,0x6, 0x1e,0x20,0x7a, +0x23,0x39,0xb, 0x6c,0xee,0xbe,0x30,0x0, 0x38,0x5, 0xbe,0xa0,0x0, 0x28,0x69,0x7e, +0xb3,0x28,0xa7,0xb4,0x1, 0x9, 0x7e,0xb3,0x28,0xaa,0xbe,0xb0,0x1, 0x68,0x59,0x7e, +0xb3,0x28,0xa8,0xb4,0x1, 0x52,0x6c,0x99,0x80,0x1d,0x7e,0x70,0x2, 0xac,0x79,0x9, +0xa3,0x26,0xfa,0x9, 0xd3,0x26,0xfb,0x12,0x2c,0x3c,0xbe,0x34,0x0, 0x96,0x8, 0x5, +0x7e,0xe0,0x1, 0x80,0xa, 0xb, 0x90,0x7e,0xb3,0x28,0x84,0xbc,0xb9,0x38,0xdb,0x6c, +0x99,0x80,0x1d,0x7e,0x70,0x2, 0xac,0x79,0x9, 0xa3,0x27,0x36,0x9, 0xd3,0x27,0x37, +0x12,0x2c,0x3c,0xbe,0x34,0xff,0x6a,0x58,0x5, 0x7e,0xe0,0x1, 0x80,0xa, 0xb, 0x90, +0x7e,0xb3,0x28,0x85,0xbc,0xb9,0x38,0xdb,0x6c,0x99,0x80,0x17,0xa, 0xe9,0xa, 0x5f, +0x2d,0x5e,0x3e,0x54,0x49,0x55,0x5, 0x7a,0xbd,0x5f,0x8, 0x5, 0x7e,0xe0,0x1, 0x80, +0x6, 0xb, 0x90,0xbc,0x89,0x38,0xe5,0x4c,0xee,0x78,0x25,0x7e,0xb3,0x39,0xc, 0x4, +0x7a,0xb3,0x39,0xc, 0x7e,0x73,0x39,0xc, 0xbe,0x70,0x5, 0x28,0x22,0x74,0x5, 0x7a, +0xb3,0x39,0xc, 0x7e,0xb3,0x28,0xa8,0x60,0x2, 0xd2,0x15,0x12,0xb1,0x84,0x80,0xf, +0x7e,0x73,0x39,0xc, 0xbe,0x70,0x0, 0x28,0x6, 0x1e,0x70,0x7a,0x73,0x39,0xc, 0xda, +0x79,0xda,0xd8,0x22,0xca,0xf8,0x7c,0xfb,0x7e,0x34,0x0, 0x38,0xca,0x39,0xac,0x7f, +0x2e,0x34,0x0, 0x50,0x6d,0x22,0x7e,0x8, 0x34,0x0, 0x12,0x20,0xb9,0x1b,0xfd,0x7e, +0x34,0x0, 0x8c,0xca,0x39,0xac,0x7f,0x2e,0x34,0x1, 0x30,0x6d,0x22,0x7e,0x8, 0x3, +0x60,0x12,0x20,0xb9,0x1b,0xfd,0xda,0xf8,0x22,0x7e,0xa3,0x2a,0x6e,0xa, 0x3a,0x3e, +0x34,0x7e,0x8, 0x13,0x8e,0xe4,0x12,0x20,0xde,0x90,0x60,0x93,0x93,0xa, 0x3b,0x7e, +0xb3,0x2a,0x71,0xa, 0x2b,0x2d,0x23,0xa, 0x3a,0xad,0x32,0x7d,0x43,0x6c,0x77,0x80, +0x1d,0xa, 0x27,0x2d,0x24,0x12,0x87,0xdc,0xb, 0xa, 0x0, 0x7e,0x30,0x2, 0xac,0x37, +0x2e,0x14,0x13,0x8e,0xb, 0x18,0x20,0x2d,0x20,0x1b,0x18,0x20,0xb, 0x70,0xbc,0xa7, +0x38,0xdf,0x22,0x6c,0xaa,0x80,0x1c,0x7e,0x50,0x2, 0xac,0x5a,0x49,0x12,0x13,0xc6, +0x49,0x32,0x13,0x8e,0xbd,0x31,0x28,0x9, 0x2e,0x24,0x13,0x8e,0x9d,0x31,0x1b,0x28, +0x30,0xb, 0xa0,0x7e,0xb3,0x2a,0x6e,0xbc,0xba,0x38,0xdc,0x22,0x7c,0xab,0x12,0xb4, +0xb, 0xd2,0x16,0x7c,0xba,0x12,0x86,0xf8,0xc2,0x16,0x22,0xa9,0xd1,0xcb,0x74,0x1, +0x2, 0x0, 0xe, 0x12,0xb4,0xb, 0x7e,0x34,0xd, 0xc8,0x7e,0xb3,0x2a,0x6d,0x12,0xb4, +0x4c,0x12,0xb4,0x2f,0x7a,0x37,0x38,0xd6,0x74,0x1, 0x7a,0xb3,0x16,0x91,0x22,0x6d, +0x33,0x90,0x60,0x91,0xe4,0x93,0xbe,0xb0,0x0, 0x28,0x3, 0x2, 0xb5,0x19,0x90,0x60, +0x92,0xe4,0x93,0xbe,0xb0,0x0, 0x28,0x3, 0x2, 0xb4,0x80,0x22,0x7a,0xb3,0x24,0xf2, +0x7e,0x53,0x2a,0x6e,0x7a,0x53,0x24,0xf3,0x7a,0x37,0x24,0xfa,0xe4,0x7a,0xb3,0x24, +0xf4,0x7a,0xb3,0x24,0xf5,0x7e,0x34,0x40,0x0, 0x7a,0x37,0x24,0xf6,0x7e,0x34,0x0, +0x20,0x12,0xb4,0x77,0x2, 0xd, 0x7, 0x7a,0x37,0x24,0xfc,0x7e,0x8, 0x24,0xf2,0x22, +0xca,0xf8,0x6d,0xee,0x7d,0xfe,0x7e,0x83,0x2a,0x6e,0xa, 0xd8,0x90,0x60,0x94,0xe4, +0x93,0xb4,0xff,0x2f,0x7e,0x8, 0x13,0x8e,0x6c,0xaa,0x80,0x18,0x7e,0x70,0x2, 0xac, +0x7a,0x49,0x23,0x13,0xfe,0x7f,0x50,0x2d,0xb3,0xb, 0x5a,0xc0,0x9d,0xc2,0x59,0xc3, +0x13,0xc6,0xb, 0xa0,0xbc,0x8a,0x38,0xe4,0x90,0x60,0x92,0xe4,0x93,0x7c,0x9b,0x6d, +0xdd,0x80,0x11,0x7e,0x8, 0x13,0xfe,0x90,0x60,0x92,0xe4,0x93,0xa, 0xcb,0x1b,0xc4, +0x7d,0x3c,0x7c,0x97,0x6c,0xff,0x80,0x38,0x6c,0xaa,0x80,0x28,0xa, 0x3a,0x7d,0x23, +0x2d,0x2e,0x3e,0x24,0x49,0xc2,0x13,0xfe,0x2d,0x3d,0x3e,0x34,0x2d,0x31,0x7d,0x20, +0xb, 0x1a,0xb0,0x7d,0x3c,0x9d,0x3b,0x12,0x21,0x0, 0x7d,0xa3,0xbd,0xfa,0x58,0x2, +0x7d,0xfa,0xb, 0xa0,0xbc,0x8a,0x38,0xd4,0xa, 0xc8,0x2d,0xec,0x2d,0xdc,0xb, 0xf0, +0xbc,0x9f,0x38,0xc4,0x7d,0x3f,0xda,0xf8,0x22,0xca,0xf8,0x6d,0x44,0x7e,0xf3,0x2a, +0x6e,0x90,0x60,0x93,0xe4,0x93,0xa, 0xfb,0x7e,0xb3,0x2a,0x6d,0xa, 0xeb,0x2d,0xef, +0xa, 0xff,0xad,0xfe,0xa, 0xef,0x2d,0xef,0x90,0x60,0x94,0xe4,0x93,0xb4,0xff,0x31, +0x7e,0x8, 0x13,0x8e,0x6c,0xaa,0x80,0x23,0xa, 0xda,0x2d,0xdf,0x3e,0xd4,0x7e,0x1f, +0x38,0xd9,0x2d,0x3d,0xb, 0x1a,0xd0,0x7e,0x50,0x2, 0xac,0x5a,0x7f,0x50,0x2d,0xb2, +0xb, 0x5a,0x30,0x9d,0x3d,0x59,0x32,0x13,0xc6,0xb, 0xa0,0xbc,0xfa,0x38,0xd9,0x80, +0xa, 0x7d,0x5e,0x3e,0x54,0x7e,0xf, 0x38,0xd9,0x2d,0x15,0x6c,0xaa,0x80,0x2c,0xa, +0xea,0x2d,0xef,0x3e,0xe4,0x7e,0x1f,0x38,0xd9,0x2d,0x3e,0xb, 0x1a,0xe0,0x7e,0x70, +0x2, 0xac,0x7a,0x2d,0x31,0x7d,0x20,0xb, 0x1a,0xd0,0x7d,0x3e,0x9d,0x3d,0x12,0x21, +0x0, 0x7d,0xc3,0xbd,0x4c,0x58,0x2, 0x7d,0x4c,0xb, 0xa0,0xbc,0xfa,0x38,0xd0,0x7d, +0x34,0xda,0xf8,0x22,0xca,0x78,0xa9,0x31,0xe5,0x6, 0xa9,0xd5,0xea,0xa9,0xc5,0xea, +0xa9,0x30,0xe5,0x19,0xa9,0xd0,0x9e,0xa9,0xd4,0x9e,0x5, 0x4e,0x7e,0x73,0x39,0x6, +0xbe,0x71,0x4e,0x38,0x2, 0xd2,0x17,0xa9,0xd0,0x9e,0xa9,0xd7,0x9e,0xa9,0x34,0xe5, +0x5, 0xa9,0xc4,0xcd,0xc2,0x95,0xa9,0x32,0xe5,0x3, 0xa9,0xc2,0xcd,0xa9,0x33,0xe5, +0x3, 0xa9,0xc3,0xcd,0xa9,0x37,0xe5,0x3, 0xa9,0xc7,0xcd,0xa9,0x36,0xe5,0x3, 0xa9, +0xc6,0xcd,0xda,0x78,0x32,0xc2,0x9a,0xa9,0xd4,0xa6,0xc2,0x88,0xd2,0xa8,0x22,0x7e, +0x14,0xd7,0xe8,0x7e,0x4, 0x0, 0xff,0x7e,0x34,0x47,0x52,0x7e,0x24,0x55,0x50,0x79, +0x30,0x0, 0x2, 0x1b,0xa, 0x20,0x7e,0x34,0x45,0x20,0x7e,0x24,0x41,0x44,0x79,0x30, +0x0, 0x6, 0x79,0x20,0x0, 0x4, 0x7e,0x34,0x99,0x33,0x7e,0x24,0x66,0xcc,0x79,0x30, +0x0, 0xa, 0x79,0x20,0x0, 0x8, 0x7e,0x34,0x41,0x47,0x7e,0x24,0x46,0x4c,0x79,0x30, +0x0, 0xe, 0x79,0x20,0x0, 0xc, 0x22,0xa9,0xd0,0xce,0xa2,0x3, 0xa9,0x95,0xc9,0x22, +0xa9,0xc6,0xeb,0xa9,0xd6,0xac,0xa9,0xd6,0xec,0xd2,0x86,0xa9,0xc2,0xeb,0xa9,0xd2, +0xac,0xa9,0xd2,0xec,0xd2,0x82,0x22,0x75,0x9a,0x2f,0xa9,0xd1,0x99,0xd2,0x9c,0xa9, +0xd6,0xdf,0x22,0xc2,0x8e,0x43,0x89,0x20,0x75,0x8d,0x1, 0x75,0x8b,0x0, 0xd2,0x8e, +0xd2,0xab,0x22,0x75,0xb7,0x0, 0x75,0xb8,0x0, 0x75,0xf7,0x0, 0x75,0xf8,0x0, 0xa9, +0xd0,0xb7,0xd2,0xb8,0xa9,0xd5,0xb7,0xd2,0xbd,0xa9,0xd0,0xf7,0xd2,0xf8,0xa9,0xc1, +0xb7,0xc2,0xb9,0xa9,0xc3,0xb7,0xc2,0xbb,0xa9,0xc6,0xb7,0xc2,0xbe,0x22,0x75,0xe7, +0x6b,0x2, 0xb6,0xc4,0xe4,0x7e,0x34,0xd7,0xfc,0x7e,0x24,0x0, 0xff,0x7a,0x1b,0xb0, +0x7e,0x34,0xd7,0xfd,0x7a,0x1b,0xb0,0x75,0xe9,0xff,0x22,0xa9,0xd0,0x99,0xa9,0xc6, +0xdf,0x22,0x7e,0x37,0x39,0x4, 0xb, 0x34,0x7a,0x37,0x39,0x4, 0xbe,0x34,0xff,0x0, +0x40,0x8, 0x7e,0x34,0xff,0x0, 0x7a,0x37,0x39,0x4, 0x22,0x7c,0x6b,0x6c,0x77,0x6c, +0xaa,0x7e,0xb3,0x39,0x13,0xb4,0xa5,0x46,0x12,0xb7,0xb9,0x75,0xb5,0x5, 0xa9,0x36, +0xb3,0xfc,0x12,0xb7,0x57,0xa9,0x36,0xb3,0xfc,0x12,0xb7,0x57,0xa9,0x36,0xb3,0xfc, +0xa9,0xc6,0xb3,0x7a,0x61,0xb5,0xa9,0x36,0xb3,0xfc,0x12,0xb7,0x57,0xa9,0x36,0xb3, +0xfc,0x12,0xb7,0x57,0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0x7e,0x71,0xb5,0x75,0xb5, +0x0, 0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0x7e,0xa1,0xb5,0xa9,0xd2,0xb4,0x7c,0x47, +0x6c,0x55,0xa, 0x3a,0x4d,0x32,0x22,0xa9,0xc6,0xb3,0x75,0xb5,0x0, 0x22,0x74,0x6, +0x7d,0x30,0x7d,0x23,0x7c,0x6b,0xa, 0x14,0x7c,0x73,0x7d,0x52,0x7c,0xab,0x7e,0xb3, +0x39,0x13,0xb4,0xa5,0x3c,0x12,0xb7,0xb9,0x75,0xb5,0x1, 0xa9,0x36,0xb3,0xfc,0x12, +0xb7,0x57,0xa9,0x36,0xb3,0xfc,0x12,0xb7,0x57,0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3, +0x7a,0x61,0xb5,0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0x7a,0x71,0xb5,0xa9,0x36,0xb3, +0xfc,0xa9,0xc6,0xb3,0x7a,0xa1,0xb5,0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0xa9,0xd2, +0xb4,0x22,0x74,0x4, 0x7d,0x30,0x2, 0xb7,0x62,0xa9,0xc2,0xb4,0xa9,0xc6,0xb3,0x22, +0x74,0x2, 0x7d,0x3f,0x2, 0xb7,0x62,0x7d,0x42,0x7f,0x60,0x7d,0x3, 0x12,0xb8,0x38, +0x74,0x2, 0x12,0xb6,0xfb,0x7d,0xf3,0x4e,0xf4,0x0, 0x1, 0x4e,0xf4,0x0, 0xa, 0x12, +0xb7,0xc0,0x7a,0x45,0x36,0x7d,0x30,0x6d,0x22,0x7f,0x6, 0x12,0xb8,0x64,0x5e,0xf4, +0xff,0xfd,0x12,0xb7,0xc0,0x2, 0xb7,0xf8,0xa9,0xc5,0xca,0xe4,0x7a,0xb3,0x39,0x13, +0x22,0xca,0xf8,0x7c,0xfb,0x74,0x2, 0x12,0xb6,0xfb,0x4c,0xff,0x78,0x5, 0x5e,0x70, +0xdf,0x80,0x3, 0x4e,0x70,0x20,0x74,0x2, 0x12,0xb7,0x62,0xda,0xf8,0x22,0xd2,0xc8, +0x43,0xed,0xf, 0xc2,0xea,0x75,0xb3,0x13,0xa9,0xd1,0xb4,0xa9,0xc0,0xb4,0x12,0xb8, +0x38,0xe4,0x12,0xb8,0x1, 0x2, 0xb7,0xf8,0xa9,0xd5,0xca,0xa9,0xd1,0xea,0xa9,0xc1, +0xea,0x74,0xa5,0x7a,0xb3,0x39,0x13,0x22,0x6d,0x22,0x80,0x13,0x75,0xb5,0x0, 0xa9, +0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0xe5,0xb5,0x7a,0xb, 0xb0,0xb, 0x14,0xb, 0x24,0xbd, +0x32,0x38,0xe9,0x22,0x12,0xb8,0x72,0x7e,0x35,0x36,0x12,0xb8,0x48,0xa9,0xd2,0xb4, +0xd3,0x22,0x7d,0x52,0xf5,0x3a,0x7c,0xb6,0x7c,0xa5,0xa, 0x44,0xf5,0x39,0x7f,0x21, +0xf5,0x38,0xa9,0xc2,0xb4,0x74,0xb, 0x12,0xb8,0x9d,0xe5,0x3a,0x12,0xb8,0x9d,0xe5, +0x39,0x12,0xb8,0x9d,0xe5,0x38,0x12,0xb8,0x9d,0xe4,0x2, 0xb8,0x9d,0xf5,0xb5,0xa9, +0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0xd3,0x22,0x7c,0xa6,0x7c,0x37,0x7c,0x2b,0xe4,0x6c, +0x11,0x80,0x46,0xbc,0xa1,0x68,0x40,0x1a,0x41,0x3e,0x44,0x9, 0x4, 0x26,0xfb,0xa, +0x20,0xa, 0x33,0x9d,0x32,0x12,0x21,0x0, 0x7c,0x7, 0x1a,0x41,0x3e,0x44,0x9, 0x74, +0x26,0xfa,0xa, 0x27,0xa, 0x32,0x9d,0x32,0x12,0x21,0x0, 0x7c,0x97,0xbe,0x90,0x1, +0x18,0x8, 0xbe,0x0, 0x1, 0x18,0x3, 0x74,0x1, 0x22,0xbe,0x90,0x2, 0x18,0x8, 0xbe, +0x0, 0x2, 0x18,0x3, 0x74,0x2, 0x22,0xb, 0x10,0x7e,0x83,0x28,0x84,0xbc,0x81,0x18, +0xb2,0x22,0x7f,0x71,0x69,0x37,0x0, 0x2, 0x7d,0x53,0x12,0xb9,0x5c,0xb, 0x7a,0x20, +0x2d,0x25,0x1b,0xa, 0x20,0x69,0x27,0x0, 0x4, 0x7d,0x52,0xc4,0x54,0xf0,0x7c,0xab, +0xe4,0x1e,0x34,0x1e,0x34,0x2d,0x35,0x79,0x30,0x0, 0x2, 0x69,0x37,0x0, 0x6, 0x7d, +0x53,0x7c,0xab,0xe4,0x3e,0x54,0x3e,0x54,0x1e,0x24,0x1e,0x24,0x1e,0x24,0x1e,0x24, +0x2d,0x25,0x79,0x20,0x0, 0x4, 0x69,0x27,0x0, 0x8, 0x7c,0x45,0x6c,0x55,0x12,0x25, +0x3c,0x1e,0x34,0x1e,0x34,0x2d,0x32,0x79,0x30,0x0, 0x6, 0x22,0x3, 0x3, 0x54,0xc0, +0x7c,0xab,0xe4,0x22,0x7c,0xab,0x9f,0x11,0x30,0x3, 0x22,0x6c,0x99,0x80,0x1a,0xa, +0xf9,0x2d,0xf1,0x7d,0xe0,0x7e,0x7b,0xb0,0x7e,0x78,0x0, 0x1, 0x60,0x5, 0x2f,0x77, +0x14,0x78,0xfb,0x4d,0x3f,0x4d,0x2e,0xb, 0x90,0xbc,0xa9,0x38,0xe2,0x22,0xca,0xf8, +0x90,0x60,0x51,0xe4,0x93,0x7c,0xfb,0x7e,0x8, 0x1f,0x34,0x12,0x3f,0xd9,0x7e,0x8, +0x1f,0x3c,0x12,0xba,0x1a,0xd2,0x3, 0x7e,0x8, 0x2a,0xdc,0x7c,0xbf,0x12,0xb9,0x64, +0x7e,0x8, 0x1f,0x34,0x7a,0xf, 0x1f,0x58,0x7f,0x1, 0x7a,0x17,0x1f,0x5c,0x7d,0x32, +0x7a,0x37,0x1f,0x5e,0x7e,0x18,0x1f,0x3c,0x7a,0x1f,0x1f,0x64,0x6c,0x77,0x80,0xe, +0x12,0xba,0x62,0x50,0x7, 0x12,0xba,0x59,0x19,0x51,0x1f,0x3c,0xb, 0x70,0xbc,0xf7, +0x38,0xee,0x12,0xba,0x7, 0xe4,0x12,0xba,0xf, 0xe4,0x12,0xc, 0x9b,0x6d,0x33,0x7a, +0x37,0x1f,0x5c,0x7a,0x37,0x1f,0x5e,0x12,0xba,0x7, 0x74,0x1, 0x12,0xba,0xf, 0x74, +0x1, 0x12,0xc, 0x9b,0xda,0xf8,0x22,0xa9,0xc6,0xea,0x7e,0x8, 0x1f,0x58,0x22,0x12, +0xc, 0x9b,0xa9,0xd6,0xea,0x7e,0x8, 0x1f,0x58,0x22,0x7e,0x34,0x0, 0x1c,0x74,0x3f, +0x2, 0x20,0xde,0x7e,0x8, 0x1f,0x34,0x12,0xba,0x1a,0x6c,0x77,0x80,0xe, 0x12,0xba, +0x62,0x50,0x7, 0x12,0xba,0x59,0x19,0x51,0x1f,0x34,0xb, 0x70,0x7e,0x53,0x2a,0x6e, +0xbc,0x57,0x38,0xea,0xa9,0xc6,0xea,0x7e,0x8, 0x1f,0x34,0xe4,0x12,0x11,0x38,0xa9, +0xd6,0xea,0x7e,0x8, 0x1f,0x34,0x2, 0x11,0x38,0xa, 0x27,0x9, 0x52,0x2b,0x44,0xa, +0x16,0x22,0xa, 0x27,0x9, 0x62,0x2a,0xdc,0xbe,0x60,0x1c,0x22,0x7c,0x57,0x7c,0xab, +0x6c,0x77,0x80,0x50,0xa, 0x47,0x7e,0x7d,0x24,0x2d,0xf4,0x7e,0x7b,0x60,0xa, 0x46, +0x2e,0x44,0x20,0x73,0x7a,0x91,0x82,0x7a,0x81,0x83,0xe4,0x93,0x7c,0x6b,0xbe,0x60, +0xd, 0x38,0x12,0x7e,0xd4,0x0, 0x1, 0x7c,0xb6,0x60,0x5, 0x3e,0xd4,0x14,0x78,0xfb, +0x7e,0x7d,0x28,0x80,0x15,0x9e,0x60,0xe, 0x7e,0xd4,0x0, 0x1, 0x7c,0xb6,0x60,0x5, +0x3e,0xd4,0x14,0x78,0xfb,0x7e,0x7d,0x28,0xb, 0xf5,0xb, 0x7a,0x40,0x4d,0x4d,0x1b, +0x7a,0x40,0xb, 0x70,0xbc,0x57,0x38,0xac,0x6c,0x77,0x80,0x58,0xa, 0x27,0x7f,0x70, +0x2d,0xf2,0x7e,0x7b,0x60,0xbe,0x60,0xd, 0x38,0x11,0x12,0xbb,0x29,0x60,0x5, 0x3e, +0x44,0x14,0x78,0xfb,0x7e,0x7d,0x28,0xb, 0xf6,0x80,0x2f,0xbe,0x60,0x1b,0x38,0x16, +0x9e,0x60,0xe, 0x12,0xbb,0x29,0x60,0x5, 0x3e,0x44,0x14,0x78,0xfb,0x7e,0x7d,0x28, +0x2e,0xf4,0x0, 0x6, 0x80,0x14,0x9e,0x60,0x1c,0x12,0xbb,0x29,0x60,0x5, 0x3e,0x44, +0x14,0x78,0xfb,0x7e,0x7d,0x28,0x2e,0xf4,0x0, 0x8, 0xb, 0x7a,0x20,0x4d,0x24,0x1b, +0x7a,0x20,0xb, 0x70,0xbc,0xa7,0x38,0xa4,0x22,0x7e,0x44,0x0, 0x1, 0x7c,0xb6,0x22, +0x7e,0x27,0x28,0xa3,0x6d,0x11,0x9d,0x12,0x6c,0xaa,0x80,0x64,0x30,0x0, 0x2e,0x7e, +0x90,0x2, 0xac,0x9a,0x49,0x34,0x5, 0xf8,0x49,0x4, 0x4, 0x0, 0xbd,0x2, 0x8, 0x11, +0x7e,0xb3,0x25,0xf6,0xb4,0x1, 0x16,0x7d,0xf2,0x2d,0xf3,0x59,0xf4,0x5, 0xf8,0x80, +0xc, 0xbd,0x1, 0x58,0x8, 0x7d,0x3, 0x9d,0x2, 0x59,0x4, 0x5, 0xf8,0x30,0x2, 0x2e, +0x7e,0x90,0x2, 0xac,0x9a,0x49,0x34,0x6, 0x76,0x49,0x4, 0x4, 0x7e,0xbd,0x2, 0x8, +0x11,0x7e,0xb3,0x25,0xf6,0xb4,0x1, 0x16,0x7d,0xf2,0x2d,0xf3,0x59,0xf4,0x6, 0x76, +0x80,0xc, 0xbd,0x1, 0x58,0x8, 0x7d,0x3, 0x9d,0x2, 0x59,0x4, 0x6, 0x76,0xb, 0xa0, +0x7e,0xb3,0x2a,0x74,0xa, 0xb, 0x7e,0xb3,0x2a,0x73,0xa, 0x4b,0x2d,0x40,0xa, 0xa, +0xbd,0x4, 0x48,0x88,0x22,0x6c,0x33,0x80,0x9, 0xe4,0xa, 0x33,0x19,0xb3,0x27,0x72, +0xb, 0x30,0x90,0x60,0x9a,0xe4,0x93,0x12,0x77,0xf6,0xb, 0x24,0xa, 0x33,0xbd,0x32, +0x48,0xe7,0xe4,0x7a,0xb3,0x28,0x84,0x7a,0xb3,0x28,0x85,0x6d,0x33,0x7a,0x37,0x28, +0x86,0x7a,0x37,0x28,0x88,0x7a,0x37,0x28,0x8a,0x7a,0x37,0x28,0x8e,0x7e,0xd4,0x1f, +0x36,0x5e,0xd4,0xff,0xfe,0x6d,0xcc,0x7e,0x1f,0x13,0x8a,0x7a,0x37,0x1f,0x76,0x7d, +0x3d,0x7a,0x37,0x1f,0x7a,0x7e,0x34,0x15,0x9e,0x7a,0x37,0x1f,0x78,0x7e,0x73,0x2a, +0x6d,0x7a,0x73,0x1f,0x73,0x7e,0x73,0x2a,0x6e,0x7a,0x73,0x1f,0x72,0x7e,0x37,0x2a, +0x5c,0x7a,0x37,0x1f,0x7c,0x7e,0x37,0x2a,0x5e,0x7a,0x37,0x1f,0x7e,0x7e,0x37,0x2a, +0x60,0x7a,0x37,0x1f,0x80,0x90,0x60,0x9a,0x93,0x7a,0xb3,0x1f,0x74,0x7e,0x73,0x3, +0xff,0x7a,0x73,0x1f,0x75,0x7e,0x8, 0x1f,0x72,0x7e,0x18,0x1f,0x82,0x12,0x8, 0x0, +0x7e,0x73,0x1f,0x82,0x7a,0x73,0x28,0x84,0x7e,0x73,0x1f,0x83,0x7a,0x73,0x28,0x85, +0x7e,0x37,0x1f,0x84,0x7a,0x37,0x28,0x86,0x7e,0x37,0x1f,0x86,0x7a,0x37,0x28,0x88, +0x7e,0x37,0x1f,0x8c,0x7a,0x37,0x28,0x8a,0x7e,0x37,0x1f,0x8e,0x7d,0x23,0x7a,0x53, +0x28,0x8c,0xa, 0x36,0x7a,0x73,0x28,0x8d,0x7e,0x37,0x1f,0x88,0x7a,0x37,0x28,0x8e, +0x7e,0x37,0x1f,0x8a,0x7d,0x23,0x7a,0x53,0x28,0x90,0xa, 0x36,0x7a,0x73,0x28,0x91, +0x6c,0x33,0x80,0x1d,0x7c,0xb3,0x12,0x2f,0xd0,0x74,0x2, 0xac,0xb3,0x49,0x45,0x15, +0x9e,0xa, 0x38,0x7c,0x27,0x19,0x25,0x26,0xfa,0x7c,0x29,0x19,0x25,0x26,0xfb,0xb, +0x30,0x7e,0x23,0x28,0x84,0xbc,0x23,0x38,0xdb,0x6c,0x33,0x80,0x1b,0x74,0x2, 0xac, +0xb3,0x7f,0x16,0x2d,0x35,0xb, 0x1a,0x40,0xa, 0x38,0x7c,0x27,0x19,0x25,0x27,0x36, +0x7c,0x29,0x19,0x25,0x27,0x37,0xb, 0x30,0x7e,0x23,0x28,0x85,0xbc,0x23,0x38,0xdd, +0x22,0x7c,0x7b,0xa, 0x57,0x9e,0x54,0x0, 0x20,0xe, 0x54,0xe, 0x54,0xe, 0x54,0xe, +0x54,0x7c,0xab,0x7c,0x67,0x5e,0x60,0xf0,0xa5,0xbe,0x20,0x1d,0x7c,0xb7,0x54,0xf, +0x7e,0x24,0x0, 0x1, 0x60,0x5, 0x3e,0x24,0x14,0x78,0xfb,0x7e,0x73,0x38,0xfb,0xa, +0x47,0x5d,0x42,0x7e,0x73,0x37,0x32,0x80,0x36,0xa5,0xbe,0x30,0x18,0x12,0xbd,0x64, +0x60,0x5, 0x3e,0x34,0x14,0x78,0xfb,0x7e,0x53,0x38,0xfc,0xa, 0x45,0x5d,0x43,0x7e, +0x73,0x37,0x33,0x80,0x1a,0x12,0xbd,0x64,0x60,0x5, 0x3e,0x34,0x14,0x78,0xfb,0xa, +0x2a,0x9, 0xb2,0x38,0xfb,0xa, 0x4b,0x5d,0x43,0xa, 0x5a,0x9, 0x75,0x37,0x34,0xa, +0x57,0x5d,0x54,0x22,0x7c,0xb7,0x54,0xf, 0x7e,0x34,0x0, 0x1, 0x22,0x7e,0xb3,0x2f, +0x80,0xb4,0x4, 0x2, 0xd3,0x22,0xc3,0x22,0x7d,0xf2,0x7d,0xe3,0x7e,0x8, 0x2f,0x80, +0x7e,0x34,0x0, 0x28,0xe4,0x12,0x20,0xde,0x7e,0x8, 0x2b,0xbf,0x7e,0x34,0x3, 0xc0, +0x12,0x20,0xde,0x7a,0xb3,0x37,0x34,0x7e,0x34,0x62,0x8e,0x12,0x23,0x9e,0x7a,0x37, +0x2b,0xb7,0x7a,0xe7,0x2f,0x84,0x7a,0xf7,0x2f,0x86,0x7a,0xe7,0x2f,0x88,0x7a,0xe7, +0x2f,0x8c,0x7a,0xe7,0x2f,0x90,0x7a,0xe7,0x2f,0x94,0x7a,0xf7,0x2f,0x8a,0x7a,0xf7, +0x2f,0x8e,0x7a,0xf7,0x2f,0x92,0x7a,0xf7,0x2f,0x96,0x7a,0xe7,0x2b,0xbb,0x7a,0xf7, +0x2b,0xbd,0x7a,0xb3,0x2f,0xa8,0x74,0x2, 0x7a,0xb3,0x2f,0x7f,0x22,0x74,0xfe,0x7a, +0xb3,0x37,0x34,0xe4,0x7a,0xb3,0x2f,0x80,0x22,0x7d,0x13,0x3e,0x14,0x3e,0x14,0x3e, +0x14,0x7e,0x37,0x38,0xe2,0x9e,0x37,0x38,0xde,0x12,0x21,0x0, 0xbd,0x31,0x38,0x12, +0x7e,0x37,0x38,0xe4,0x9e,0x37,0x38,0xe0,0x12,0x21,0x0, 0xbd,0x31,0x38,0x3, 0x74, +0x1, 0x22,0xe4,0x22,0xca,0xd8,0xca,0x79,0x6c,0xff,0x6d,0xdd,0x7d,0xed,0x7d,0xfd, +0x7e,0xd3,0x2a,0x2, 0x7e,0xe3,0x2a,0x3, 0x7e,0xb3,0x38,0xdd,0x60,0x11,0x7e,0xc7, +0x38,0xe6,0x4d,0xcc,0x78,0x2, 0xe1,0x8, 0xbe,0xd0,0x1, 0x28,0x2, 0xe1,0x8, 0xbe, +0xd0,0x1, 0x78,0x1d,0xbe,0xb0,0x4, 0x78,0x2, 0xe1,0x8, 0x7e,0xe7,0x29,0x8, 0x7e, +0xf7,0x29,0xa, 0x7d,0x3e,0x7d,0x2f,0x12,0x66,0xe6,0xbe,0xb0,0x1, 0x78,0x2, 0xe1, +0x8, 0x7e,0xa3,0x38,0xdd,0x7c,0xba,0x14,0x68,0x29,0x14,0x68,0x54,0x14,0x68,0x23, +0x14,0x78,0x2, 0xe1,0x5, 0xb, 0xb2,0x68,0x2, 0xe1,0x8, 0xbe,0xd0,0x1, 0x68,0x2, +0xe1,0x17,0x4c,0xee,0x68,0x2, 0xe1,0x17,0x74,0x1, 0x7a,0xb3,0x38,0xdd,0x12,0xbf, +0x2a,0x80,0x65,0x4c,0xdd,0x78,0x1d,0xbe,0xa0,0x1, 0x78,0xc, 0x74,0x2, 0x7a,0xb3, +0x38,0xdd,0x7e,0x34,0x62,0x64,0x80,0x54,0x74,0x4, 0x7a,0xb3,0x38,0xdd,0x7e,0x34, +0x62,0x68,0x80,0x48,0x12,0xbf,0x33,0x90,0x62,0x57,0x12,0xbf,0x1e,0x68,0x49,0x80, +0x56,0xbe,0xd0,0x1, 0x78,0x51,0x4c,0xee,0x78,0x4d,0x12,0xbf,0x33,0x7e,0x34,0x62, +0x60,0x12,0x23,0x9e,0x7e,0x14,0x62,0x64,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0xc0,0x9d, +0xc3,0xbe,0xc7,0x38,0xe6,0x40,0x21,0x90,0x62,0x56,0x12,0xbf,0x1e,0x68,0x19,0x12, +0xbf,0x2a,0x74,0x3, 0x7a,0xb3,0x38,0xdd,0x7e,0x34,0x62,0x64,0x12,0x23,0x9e,0x7a, +0x37,0x38,0xe6,0x80,0x12,0x7e,0xf0,0x24,0xe4,0x7a,0xb3,0x38,0xdd,0x6d,0x33,0x7a, +0x37,0x38,0xe6,0x7c,0xbf,0x80,0x2, 0x7c,0xbf,0xda,0x79,0xda,0xd8,0x22,0xe4,0x93, +0xa, 0x3b,0x12,0xbd,0xe9,0xa, 0xdb,0x4d,0xdd,0x22,0x7a,0xe7,0x38,0xde,0x7a,0xf7, +0x38,0xe0,0x22,0x7a,0xe7,0x38,0xe2,0x7a,0xf7,0x38,0xe4,0x22,0xca,0xf8,0x7f,0x51, +0x7f,0x40,0x7e,0x37,0x2f,0x90,0x7a,0x35,0x2a,0x7e,0x37,0x2f,0x8e,0x7a,0x35,0x2c, +0x7e,0x37,0x2f,0x9c,0x7a,0x35,0x26,0x7e,0x37,0x2f,0x9e,0x7a,0x35,0x28,0x6c,0xff, +0x80,0x1e,0x7e,0x34,0x0, 0x26,0x7e,0x14,0x0, 0x2f,0x74,0x9, 0x12,0x1f,0x8c,0x74, +0x2, 0xac,0xbf,0x7f,0x4, 0x2d,0x15,0x7f,0x15,0x2d,0x35,0x12,0xbf,0x8b,0xb, 0xf0, +0x7e,0x73,0x38,0x3f,0xbc,0x7f,0x38,0xda,0xda,0xf8,0x22,0x7f,0x71,0x7f,0x60,0x7e, +0x35,0x2f,0xbe,0x34,0x0, 0x0, 0x38,0x7, 0x7e,0x34,0x0, 0x1, 0x7a,0x35,0x2f,0x7e, +0x35,0x31,0xbe,0x34,0x0, 0x0, 0x38,0x7, 0x7e,0x34,0x0, 0x1, 0x7a,0x35,0x31,0xb, +0x6a,0x30,0x9e,0x35,0x33,0x6d,0x22,0x7e,0x33,0x38,0x41,0x12,0xbf,0xe0,0x7e,0x15, +0x2f,0x12,0x1f,0x5, 0x1b,0x6a,0x30,0xb, 0x7a,0x30,0x9e,0x35,0x35,0x6d,0x22,0x7e, +0x33,0x38,0x42,0x12,0xbf,0xe0,0x7e,0x15,0x31,0x12,0x1f,0x5, 0x1b,0x7a,0x30,0x22, +0xa, 0x13,0x6d,0x0, 0x2, 0x1e,0xeb,0x7a,0x1d,0x24,0x7e,0xa3,0x2a,0x6e,0x74,0x2, +0xa4,0x7e,0xf, 0x6, 0xf8,0x2d,0x15,0x7e,0xb3,0x2a,0x6d,0x7e,0x37,0x2a,0x51,0x22, +0x74,0x1, 0x7a,0xb3,0x37,0xa0,0x7e,0x34,0x60,0xa3,0x22,0x7a,0x1d,0x24,0x7e,0xf, +0x6, 0xf8,0x7e,0xb3,0x2a,0x6e,0x7e,0x37,0x2a,0x53,0x22,0x7e,0xa3,0x2a,0x6e,0x7e, +0xb3,0x2a,0x6d,0xa4,0x22,0x74,0x1, 0x7a,0xb3,0x2b,0x1, 0x7a,0xb3,0x2b,0x1d,0x22, +0x9, 0x75,0x26,0x36,0x7a,0x73,0x2b,0x20,0x22,0x9, 0x75,0x26,0x34,0x7a,0x73,0x2b, +0x14,0x22,0x7e,0x8, 0x2a,0x6d,0x2, 0xd, 0x72,0xa, 0x47,0x7f,0x70,0x2d,0xf4,0x7e, +0x7b,0x60,0xbc,0x6b,0x22,0x6e,0x34,0xff,0xff,0xb, 0x34,0x7a,0x37,0x2a,0x5e,0x22, +0x7e,0x29,0x60,0x4c,0x6a,0x7a,0x29,0x60,0xb, 0x70,0x22,0x2e,0x14,0x1, 0x30,0x6d, +0x0, 0x7e,0x18,0x3, 0x60,0x22,0x2e,0x14,0x0, 0x50,0x6d,0x0, 0x7e,0x18,0x34,0x0, +0x22,0x74,0x6, 0x12,0xb6,0xfb,0x7d,0x3, 0x6c,0x11,0x22,0x7e,0x70,0x2, 0xac,0x7c, +0x9, 0xb3,0x26,0xfa,0x22,0xe4,0x7a,0xb3,0x36,0x69,0x7a,0xb3,0x36,0x71,0x22,0x74, +0x1, 0x12,0x13,0xde,0xe4,0x2, 0x0, 0x1e,0x7a,0x37,0x2a,0x4f,0x7e,0x34,0x61,0x57, +0x22,0x7a,0x37,0x28,0xa1,0x7e,0x34,0x61,0xc2,0x22,0x90,0x60,0xaa,0xe4,0x93,0xbe, +0xb0,0x1, 0x22,0x9, 0x75,0x26,0x33,0x7a,0x73,0x2b,0xf, 0x22,0x74,0x5, 0xac,0xbc, +0x9, 0xb5,0x26,0x33,0x22,0x7e,0x8, 0x0, 0x25,0x7e,0x18,0x0, 0x24,0x22,0x7e,0xe3, +0x2a,0x6f,0x7e,0xd3,0x2a,0x70,0x22,0x6d,0x33,0xe4,0x6c,0x55,0x2, 0x13,0x1, 0x7e, +0x37,0x25,0xf4,0x7a,0x37,0x31,0xcc,0x22,0x7e,0x34,0xd, 0xc8,0x7a,0x37,0x31,0xce, +0x22,0x7e,0x73,0x37,0xbd,0x7a,0x73,0x2b,0x20,0x22,0x12,0x0, 0x1e,0x7e,0xb3,0x2a, +0xfc,0x22,0x7e,0x73,0x28,0x92,0xbe,0x70,0x0, 0x22,0x7e,0xb3,0x28,0xa8,0xbe,0xb0, +0x1, 0x22,0x12,0x0, 0xe, 0x7e,0x1f,0x13,0x86,0x22,0x7e,0xb3,0x37,0x31,0xbe,0xb0, +0x1, 0x22,0x7e,0x73,0x2a,0x2, 0xbe,0x70,0x0, 0x22,0x90,0x60,0xa7,0xe4,0x93,0x7c, +0xab,0x22,0xc1,0x42,0x3e,0xbd,0x6, 0xf9,0x7, 0x51, diff --git a/drivers/input/touchscreen/FT8006m/Kconfig b/drivers/input/touchscreen/FT8006m/Kconfig new file mode 100755 index 0000000000000..b9155aa01ebb7 --- /dev/null +++ b/drivers/input/touchscreen/FT8006m/Kconfig @@ -0,0 +1,17 @@ +# +# Focaltech Touchscreen driver configuration +# + +config TOUCHSCREEN_FT8006M + bool "Focaltech Touchscreen" + depends on I2C + default n + help + Say Y here if you have Focaltech touch panel. + If unsure, say N. + +config TOUCHSCREEN_FTS_DIRECTORY + string "Focaltech ts directory name" + default "focaltech_touch" + depends on TOUCHSCREEN_FT8006M + diff --git a/drivers/input/touchscreen/FT8006m/Makefile b/drivers/input/touchscreen/FT8006m/Makefile new file mode 100755 index 0000000000000..7f41c31569a5c --- /dev/null +++ b/drivers/input/touchscreen/FT8006m/Makefile @@ -0,0 +1,18 @@ +# +# Makefile for the focaltech touchscreen drivers. +# + +# Each configuration option enables a list of files. + +obj-$(CONFIG_TOUCHSCREEN_FT8006M) += focaltech_core.o +obj-$(CONFIG_TOUCHSCREEN_FT8006M) += focaltech_ex_fun.o +obj-$(CONFIG_TOUCHSCREEN_FT8006M) += focaltech_ex_mode.o +obj-$(CONFIG_TOUCHSCREEN_FT8006M) += focaltech_flash.o +obj-$(CONFIG_TOUCHSCREEN_FT8006M) += focaltech_gesture.o +obj-$(CONFIG_TOUCHSCREEN_FT8006M) += focaltech_esdcheck.o +obj-$(CONFIG_TOUCHSCREEN_FT8006M) += focaltech_i2c.o +obj-$(CONFIG_TOUCHSCREEN_FT8006M) += focaltech_sensor.o +obj-$(CONFIG_TOUCHSCREEN_FT8006M) += focaltech_point_report_check.o +obj-$(CONFIG_TOUCHSCREEN_FT8006M) += focaltech_flash/ +obj-$(CONFIG_TOUCHSCREEN_FT8006M) += focaltech_test/ + diff --git a/drivers/input/touchscreen/FT8006m/focaltech_common.h b/drivers/input/touchscreen/FT8006m/focaltech_common.h new file mode 100755 index 0000000000000..b1398d20fca43 --- /dev/null +++ b/drivers/input/touchscreen/FT8006m/focaltech_common.h @@ -0,0 +1,222 @@ +/* + * + * FocalTech fts TouchScreen driver. + * + * Copyright (c) 2010-2017, Focaltech Ltd. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ +/***************************************************************************** +* +* File Name: focaltech_common.h +* +* Author: Focaltech Driver Team +* +* Created: 2016-08-16 +* +* Abstract: +* +* Reference: +* +*****************************************************************************/ + +#ifndef __LINUX_FOCALTECH_COMMON_H__ +#define __LINUX_FOCALTECH_COMMON_H__ + +#include "focaltech_config.h" + +/***************************************************************************** +* Macro definitions using #define +*****************************************************************************/ +#define FTS_DRIVER_VERSION "Focaltech V1.3 20170306" + +#define FLAGBIT(x) (0x00000001 << (x)) +#define FLAGBITS(x, y) ((0xFFFFFFFF >> (32 - (y) - 1)) << (x)) + +#define FLAG_ICSERIALS_LEN 5 +#define FLAG_IDC_BIT 11 + +#define IC_SERIALS (FTS_CHIP_TYPE & FLAGBITS(0, FLAG_ICSERIALS_LEN-1)) +#define FTS_CHIP_IDC ((FTS_CHIP_TYPE & FLAGBIT(FLAG_IDC_BIT)) == FLAGBIT(FLAG_IDC_BIT)) + +#define FTS_CHIP_TYPE_MAPPING {{0x07, 0x80, 0x06, 0x80, 0x06, 0x80, 0xC6, 0x80, 0xB6} } + +#define I2C_BUFFER_LENGTH_MAXINUM 256 +#define FILE_NAME_LENGTH 128 +#define ENABLE 1 +#define DISABLE 0 +/*register address*/ +#define FTS_REG_INT_CNT 0x8F +#define FTS_REG_FLOW_WORK_CNT 0x91 +#define FTS_REG_WORKMODE 0x00 +#define FTS_REG_WORKMODE_FACTORY_VALUE 0x40 +#define FTS_REG_WORKMODE_WORK_VALUE 0x00 +#define FTS_REG_CHIP_ID 0xA3 +#define FTS_REG_CHIP_ID2 0x9F +#define FTS_REG_POWER_MODE 0xA5 +#define FTS_REG_POWER_MODE_SLEEP_VALUE 0x03 +#define FTS_REG_FW_VER 0xA6 +#define FTS_REG_VENDOR_ID 0xA8 +#define FTS_REG_LCD_BUSY_NUM 0xAB +#define FTS_REG_FACE_DEC_MODE_EN 0xB0 +#define FTS_REG_GLOVE_MODE_EN 0xC0 +#define FTS_REG_COVER_MODE_EN 0xC1 +#define FTS_REG_CHARGER_MODE_EN 0x8B +#define FTS_REG_GESTURE_EN 0xD0 +#define FTS_REG_GESTURE_OUTPUT_ADDRESS 0xD3 +#define FTS_REG_ESD_SATURATE 0xED + + + +/***************************************************************************** +* Alternative mode (When something goes wrong, the modules may be able to solve the problem.) +*****************************************************************************/ +/* + * point report check + * default: disable + */ +#define FTS_POINT_REPORT_CHECK_EN 0 + + +/***************************************************************************** +* Global variable or extern global variabls/functions +*****************************************************************************/ +struct ft_chip_t { + unsigned long type; + unsigned char chip_idh; + unsigned char chip_idl; + unsigned char rom_idh; + unsigned char rom_idl; + unsigned char pramboot_idh; + unsigned char pramboot_idl; + unsigned char bootloader_idh; + unsigned char bootloader_idl; +}; + +/* i2c communication*/ +int ft8006m_i2c_write_reg(struct i2c_client *client, u8 regaddr, u8 regvalue); +int ft8006m_i2c_read_reg(struct i2c_client *client, u8 regaddr, u8 *regvalue); +int ft8006m_i2c_read(struct i2c_client *client, char *writebuf, int writelen, char *readbuf, int readlen); +int ft8006m_i2c_write(struct i2c_client *client, char *writebuf, int writelen); +int ft8006m_i2c_init(void); +int ft8006m_i2c_exit(void); + +/* Gesture functions */ +#if FTS_GESTURE_EN +int ft8006m_gesture_init(struct input_dev *input_dev, struct i2c_client *client); +int ft8006m_gesture_exit(struct i2c_client *client); +void ft8006m_gesture_recovery(struct i2c_client *client); +int ft8006m_gesture_readdata(struct i2c_client *client); +int ft8006m_gesture_suspend(struct i2c_client *i2c_client); +int ft8006m_gesture_resume(struct i2c_client *client); +#endif + +/* Apk and functions */ +#if FTS_APK_NODE_EN +int ft8006m_create_apk_debug_channel(struct i2c_client *client); +void ft8006m_release_apk_debug_channel(void); +#endif + +/* ADB functions */ +#if FTS_SYSFS_NODE_EN +int ft8006m_create_sysfs(struct i2c_client *client); +int ft8006m_remove_sysfs(struct i2c_client *client); +#endif + +/* ESD */ +#if FTS_ESDCHECK_EN +int ft8006m_esdcheck_init(void); +int ft8006m_esdcheck_exit(void); +int ft8006m_esdcheck_switch(bool enable); +int ft8006m_esdcheck_proc_busy(bool proc_debug); +int ft8006m_esdcheck_set_intr(bool intr); +int ft8006m_esdcheck_suspend(void); +int ft8006m_esdcheck_resume(void); +int ft8006m_esdcheck_get_status(void); +#endif + +/* Production test */ +#if FTS_TEST_EN +int ft8006m_test_init(struct i2c_client *client); +int ft8006m_test_exit(struct i2c_client *client); +#endif + +#if FTS_LOCK_DOWN_INFO +int ft8006m_lockdown_init(struct i2c_client *client); +#endif + +#if FTS_CAT_RAWDATA +int ft8006m_rawdata_init(struct i2c_client *client); +#endif + +/* Point Report Check*/ +#if FTS_POINT_REPORT_CHECK_EN +int ft8006m_point_report_check_init(void); +int ft8006m_point_report_check_exit(void); +void ft8006m_point_report_check_queue_work(void); +#endif + +/* Other */ +extern int ft8006m_g_show_log; +int ft8006m_reset_proc(int hdelayms); +int ft8006m_wait_tp_to_valid(struct i2c_client *client); +void ft8006m_tp_state_recovery(struct i2c_client *client); +int ft8006m_ex_mode_init(struct i2c_client *client); +int ft8006m_ex_mode_exit(struct i2c_client *client); +int ft8006m_ex_mode_recovery(struct i2c_client *client); + +void ft8006m_irq_disable(void); +void ft8006m_irq_enable(void); + +/***************************************************************************** +* DEBUG function define here +*****************************************************************************/ +#if FTS_DEBUG_EN +#define FTS_DEBUG_LEVEL 1 + +#if (FTS_DEBUG_LEVEL == 2) +#define FTS_DEBUG(fmt, args...) printk(KERN_ERR "[FTS8006m][%s]"fmt"\n", __func__, ##args) +#define FTS_FUNC_ENTER() printk(KERN_ERR "[FTS8006m]%s: Enter\n", __func__) +#define FTS_FUNC_EXIT() printk(KERN_ERR "[FTS8006m]%s: Exit(%d)\n", __func__, __LINE__) +#else +#define FTS_DEBUG(fmt, args...) printk(KERN_ERR "[FTS8006m]"fmt"\n", ##args) +#define FTS_FUNC_ENTER() +#define FTS_FUNC_EXIT() +#endif + +#else +#define FTS_DEBUG(fmt, args...) +#define FTS_FUNC_ENTER() +#define FTS_FUNC_EXIT() +#endif + +#define FTS_INFO(fmt, args...) do { \ + if (ft8006m_g_show_log) {printk(KERN_ERR "[FTS8006m][Info]"fmt"\n", ##args); } \ + } while (0) + +#define FTS_ERROR(fmt, args...) do { \ + if (ft8006m_g_show_log) {printk(KERN_ERR "[FTS8006m][Error]"fmt"\n", ##args); } \ + } while (0) + + +#if FTS_GESTURE_EN +#define GESTURE_NODE "onoff" +#define GESTURE_DATA "data" +#define DOUBLE_CLICK 143 +struct gesture_struct { + int gesture_all_switch; + unsigned long gesture_mask; +}; +#endif + +#endif /* __LINUX_FOCALTECH_COMMON_H__ */ + diff --git a/drivers/input/touchscreen/FT8006m/focaltech_config.h b/drivers/input/touchscreen/FT8006m/focaltech_config.h new file mode 100644 index 0000000000000..c8b2eb0b35a68 --- /dev/null +++ b/drivers/input/touchscreen/FT8006m/focaltech_config.h @@ -0,0 +1,268 @@ +/* + * + * FocalTech TouchScreen driver. + * + * Copyright (c) 2010-2017, FocalTech Systems, Ltd., all rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ +/************************************************************************ +* +* File Name: focaltech_config.h +* +* Author: Focaltech Driver Team +* +* Created: 2016-08-08 +* +* Abstract: global configurations +* +* Version: v1.0 +* +************************************************************************/ +#ifndef _LINUX_FOCLATECH_CONFIG_H_ +#define _LINUX_FOCLATECH_CONFIG_H_ + +/**************************************************/ +/****** G: A, I: B, S: C, U: D ******************/ +/****** chip type defines, do not modify *********/ +#define _FT8716 0x87160805 +#define _FT8736 0x87360806 +#define _FT8006 0x80060807 +#define _FT8606 0x86060808 +#define _FT8607 0x86070809 +#define _FTE716 0xE716080a + +#define _FT5416 0x54160002 +#define _FT5426 0x54260002 +#define _FT5435 0x54350002 +#define _FT5436 0x54360002 +#define _FT5526 0x55260002 +#define _FT5526I 0x5526B002 +#define _FT5446 0x54460002 +#define _FT5346 0x53460002 +#define _FT5446I 0x5446B002 +#define _FT5346I 0x5346B002 +#define _FT7661 0x76610002 +#define _FT7511 0x75110002 +#define _FT7421 0x74210002 +#define _FT7681 0x76810002 +#define _FT3C47U 0x3C47D002 +#define _FT3417 0x34170002 +#define _FT3517 0x35170002 +#define _FT3327 0x33270002 +#define _FT3427 0x34270002 + +#define _FT5626 0x56260001 +#define _FT5726 0x57260001 +#define _FT5826B 0x5826B001 +#define _FT5826S 0x5826C001 +#define _FT7811 0x78110001 +#define _FT3D47 0x3D470001 +#define _FT3617 0x36170001 +#define _FT3717 0x37170001 +#define _FT3817B 0x3817B001 + +#define _FT6236U 0x6236D003 +#define _FT6336G 0x6336A003 +#define _FT6336U 0x6336D003 +#define _FT6436U 0x6436D003 + +#define _FT3267 0x32670004 +#define _FT3367 0x33670004 + + + +/*************************************************/ + +/* + * choose your ic chip type of focaltech + */ +#define FTS_CHIP_TYPE _FT8006 + +/******************* Enables *********************/ +/*********** 1 to enable, 0 to disable ***********/ + +/* + * show debug log info + * enable it for debug, disable it for release + */ +#define FTS_DEBUG_EN 1 + +#define FTS_LOCK_DOWN_INFO 1 + +#define FTS_CAT_RAWDATA 1 + +/* + * Linux MultiTouch Protocol + * 1: Protocol B(default), 0: Protocol A + */ + +#define FTS_MT_PROTOCOL_B_EN 0 + + +/* + * Report Pressure in multitouch + * 1:enable(default),0:disable +*/ +#define FTS_REPORT_PRESSURE_EN 1 + +/* + * Force touch support + * different pressure for multitouch + * 1: true pressure for force touch + * 0: constant pressure(default) + */ +#define FTS_FORCE_TOUCH_EN 0 + +/* + * Gesture function enable + * default: disable + */ +#define FTS_GESTURE_EN 1 + +/* + * ESD check & protection + * default: disable + */ +#define FTS_ESDCHECK_EN 1 + +/* + * Production test enable + * 1: enable, 0:disable(default) + */ +#define FTS_TEST_EN 1 + +/* + * Glove mode enable + * 1: enable, 0:disable(default) + */ +#define FTS_GLOVE_EN 0 +/* + * cover enable + * 1: enable, 0:disable(default) + */ +#define FTS_COVER_EN 0 +/* + * Charger enable + * 1: enable, 0:disable(default) + */ +#define FTS_CHARGER_EN 0 + +/* + * Proximity sensor + * default: disable + */ +#define FTS_PSENSOR_EN 0 + +/* + * Nodes for tools, please keep enable + */ +#define FTS_SYSFS_NODE_EN 1 +#define FTS_APK_NODE_EN 1 + +/* + * Customer power enable + * enable it when customer need control TP power + * default: disable + */ +#define FTS_POWER_SOURCE_CUST_EN 1 + +/****************************************************/ + +/********************** Upgrade ****************************/ +/* + * auto upgrade, please keep enable + */ +#ifdef WT_COMPILE_FACTORY_VERSION + #define FTS_AUTO_UPGRADE_EN 0 +#else +#define FTS_AUTO_UPGRADE_EN 1 +#endif + +/* + * auto upgrade for lcd cfg + * default: 0 + */ +#ifdef WT_COMPILE_FACTORY_VERSION + #define FTS_AUTO_UPGRADE_FOR_LCD_CFG_EN 0 +#else +#define FTS_AUTO_UPGRADE_FOR_LCD_CFG_EN 1 +#endif + +/* auto cb check + * default: disable + */ +#define FTS_AUTO_CLB_EN 0 + +/* + * Check vendor_id number + * 0:No check vendor_id (default) + * 1/2/3: Check vendor_id for vendor compatibility + */ +#define FTS_GET_VENDOR_ID_NUM 0 + +/* + * vendor_id(s) for vendor(s) to be compatible with. + * a confirmation of vendor_id(s) is recommended. + * FTS_GET_VENDOR_ID_NUM == 0, no check vendor id, you may ignore them + * FTS_GET_VENDOR_ID_NUM >= 1, compatible with FTS_VENDOR_1_ID + * FTS_GET_VENDOR_ID_NUM >= 2, compatible with FTS_VENDOR_2_ID + * FTS_GET_VENDOR_ID_NUM == 3, compatible with FTS_VENDOR_3_ID + */ +#define FTS_VENDOR_1_ID 0x00 +#define FTS_VENDOR_2_ID 0x00 +#define FTS_VENDOR_3_ID 0x00 + +/* + * FW_APP.i file for auto upgrade, you must replace it with your own + * define your own fw_app, the sample one to be replaced is invalid + * NOTE: if FTS_GET_VENDOR_ID_NUM >= 1, it's the fw corresponding with FTS_VENDOR_1_ID + */ +#define FTS_UPGRADE_FW_APP "include/firmware/FT8006m_app_sample.i" + +#define FTS_UPGRADE_FW_ALL_WHITE "include/firmware/white_all.i" + +#define FTS_UPGRADE_FW_ALL_BLACK "include/firmware/black_all.i" + + +/* + * if FTS_GET_VENDOR_ID_NUM >= 2, fw corrsponding with FTS_VENDOR_2_ID + * define your own fw_app, the sample one is invalid + */ +#define FTS_UPGRADE_FW2_APP "include/firmware/FT8006m_app_sample.i" + +/* + * if FTS_GET_VENDOR_ID_NUM == 3, fw corrsponding with FTS_VENDOR_3_ID + * define your own fw_app, the sample one is invalid + */ +#define FTS_UPGRADE_FW3_APP "include/firmware/FT8006m_app_sample.i" + +/* + * lcd_cfg.i file for lcd cfg upgrade + * define your own lcd_cfg.i, the sample one is invalid + */ + + + +/* + * upgrade stress test for debug + * enable it for upgrade debug if needed + * default: disable + */ +#define FTS_UPGRADE_STRESS_TEST 0 +/* stress test times, default: 1000 */ +#define FTS_UPGRADE_TEST_NUMBER 1000 + +/*********************************************************/ + +#endif /* _LINUX_FOCLATECH_CONFIG_H_ */ + diff --git a/drivers/input/touchscreen/FT8006m/focaltech_core.c b/drivers/input/touchscreen/FT8006m/focaltech_core.c new file mode 100755 index 0000000000000..aeb660b0b9a16 --- /dev/null +++ b/drivers/input/touchscreen/FT8006m/focaltech_core.c @@ -0,0 +1,1715 @@ +/* + * + * FocalTech TouchScreen driver. + * + * Copyright (c) 2010-2017, FocalTech Systems, Ltd., all rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ +/***************************************************************************** +* +* File Name: focaltech_core.c +* +* Author: Focaltech Driver Team +* +* Created: 2016-08-08 +* +* Abstract: +* +* Reference: +* +*****************************************************************************/ + +/***************************************************************************** +* Included header files +*****************************************************************************/ +#include "focaltech_core.h" +#if FTS_GESTURE_EN +extern struct gesture_struct ft8006m_gesture_data; +#define MXT_INPUT_EVENT_START 0 +#define MXT_INPUT_EVENT_SENSITIVE_MODE_OFF 0 +#define MXT_INPUT_EVENT_SENSITIVE_MODE_ON 1 +#define MXT_INPUT_EVENT_STYLUS_MODE_OFF 2 +#define MXT_INPUT_EVENT_STYLUS_MODE_ON 3 +#define MXT_INPUT_EVENT_WAKUP_MODE_OFF 4 +#define MXT_INPUT_EVENT_WAKUP_MODE_ON 5 +#define MXT_INPUT_EVENT_EDGE_DISABLE 6 +#define MXT_INPUT_EVENT_EDGE_FINGER 7 +#define MXT_INPUT_EVENT_EDGE_HANDGRIP 8 +#define MXT_INPUT_EVENT_EDGE_FINGER_HANDGRIP 9 +#define MXT_INPUT_EVENT_END 9 +#endif +#if defined(CONFIG_FB) +#include +#include +#elif defined(CONFIG_HAS_EARLYSUSPEND) +#include +#define FTS_SUSPEND_LEVEL 1 /* Early-suspend level */ +#endif +#include +/***************************************************************************** +* Private constant and macro definitions using #define +*****************************************************************************/ +#define FTS_DRIVER_NAME "ft8006m_ts" +#define INTERVAL_READ_REG 20 +#define TIMEOUT_READ_REG 300 +#if FTS_POWER_SOURCE_CUST_EN +#define FTS_VTG_MIN_UV 1600000 +#define FTS_VTG_MAX_UV 2000000 +#define FTS_I2C_VTG_MIN_UV 1800000 +#define FTS_I2C_VTG_MAX_UV 1800000 +#endif +#define FTS_READ_TOUCH_BUFFER_DIVIDED 0 +/***************************************************************************** +* Global variable or extern global variabls/functions +******************************************************************************/ +struct i2c_client *ft8006m_i2c_client; +struct fts_ts_data *ft8006m_wq_data; +struct input_dev *ft8006m_input_dev; +extern char Lcm_name[HARDWARE_MAX_ITEM_LONGTH]; + +#if FTS_DEBUG_EN +int ft8006m_g_show_log = 1; +#else +int ft8006m_g_show_log = 0; +#endif + +#if (FTS_DEBUG_EN && (FTS_DEBUG_LEVEL == 2)) +char g_sz_debug[1024] = {0}; +#endif + +/***************************************************************************** +* Static function prototypes +*****************************************************************************/ +static void fts_release_all_finger(void); +int ft8006m_ts_suspend(struct device *dev); +static int ft8006m_ts_resume(struct device *dev); + +#define PINCTRL_STATE_ACTIVE "pmx_ts_active" +#define PINCTRL_STATE_SUSPEND "pmx_ts_suspend" +#define PINCTRL_STATE_RELEASE "pmx_ts_release" + + +extern int panel_dead2tp; + + +/***************************************************************************** +* Name: ft8006m_wait_tp_to_valid +* Brief: Read chip id until TP FW become valid, need call when reset/power on/resume... +* 1. Read Chip ID per INTERVAL_READ_REG(20ms) +* 2. Timeout: TIMEOUT_READ_REG(300ms) +* Input: +* Output: +* Return: 0 - Get correct Device ID +*****************************************************************************/ +int ft8006m_wait_tp_to_valid(struct i2c_client *client) +{ + int ret = 0; + int cnt = 0; + u8 reg_value = 0; + + do { + ret = ft8006m_i2c_read_reg(client, FTS_REG_CHIP_ID, ®_value); + if ((ret < 0) || (reg_value != ft8006m_chip_types.chip_idh)) { + FTS_INFO("TP Not Ready, ReadData = 0x%x", reg_value); + } else if (reg_value == ft8006m_chip_types.chip_idh) { + FTS_INFO("TP Ready, Device ID = 0x%x", reg_value); + return 0; + } + cnt++; + msleep(INTERVAL_READ_REG); + } while ((cnt * INTERVAL_READ_REG) < TIMEOUT_READ_REG); + + /* error: not get correct reg data */ + return -EPERM; +} + +/***************************************************************************** +* Name: fts_recover_state +* Brief: Need execute this function when reset +* Input: +* Output: +* Return: +*****************************************************************************/ +void ft8006m_tp_state_recovery(struct i2c_client *client) +{ + /* wait tp stable */ + ft8006m_wait_tp_to_valid(client); + /* recover TP charger state 0x8B */ + /* recover TP glove state 0xC0 */ + /* recover TP cover state 0xC1 */ + ft8006m_ex_mode_recovery(client); + /* recover TP gesture state 0xD0 */ +#if FTS_GESTURE_EN + if (ft8006m_gesture_data.gesture_all_switch) + ft8006m_gesture_recovery(client); +#endif +} + + +/***************************************************************************** +* Name: ft8006m_reset_proc +* Brief: Execute reset operation +* Input: hdelayms - delay time unit:ms +* Output: +* Return: +*****************************************************************************/ +int ft8006m_reset_proc(int hdelayms) +{ + gpio_direction_output(ft8006m_wq_data->pdata->reset_gpio, 0); + msleep(20); + gpio_direction_output(ft8006m_wq_data->pdata->reset_gpio, 1); + msleep(hdelayms); + + return 0; +} + +/***************************************************************************** +* Name: ft8006m_irq_disable +* Brief: disable irq +* Input: +* sync: +* Output: +* Return: +*****************************************************************************/ +void ft8006m_irq_disable(void) +{ + unsigned long irqflags; + spin_lock_irqsave(&ft8006m_wq_data->irq_lock, irqflags); + + if (!ft8006m_wq_data->irq_disable) { + disable_irq_nosync(ft8006m_wq_data->client->irq); + ft8006m_wq_data->irq_disable = 1; + } + + spin_unlock_irqrestore(&ft8006m_wq_data->irq_lock, irqflags); +} + +/***************************************************************************** +* Name: ft8006m_irq_enable +* Brief: enable irq +* Input: +* Output: +* Return: +*****************************************************************************/ +void ft8006m_irq_enable(void) +{ + unsigned long irqflags = 0; + spin_lock_irqsave(&ft8006m_wq_data->irq_lock, irqflags); + + if (ft8006m_wq_data->irq_disable) { + enable_irq(ft8006m_wq_data->client->irq); + ft8006m_wq_data->irq_disable = 0; + } + + spin_unlock_irqrestore(&ft8006m_wq_data->irq_lock, irqflags); +} +#if FTS_GESTURE_EN +static int fts_input_event(struct input_dev *dev, + unsigned int type, unsigned int code, int value) +{ + char buffer[16]; + + if (type == EV_SYN && code == SYN_CONFIG) { + sprintf(buffer, "%d", value); + + FTS_INFO("FTS:Gesture on/off : %d", value); + if (value >= MXT_INPUT_EVENT_START && value <= MXT_INPUT_EVENT_END) { + if (value == MXT_INPUT_EVENT_WAKUP_MODE_ON) { + ft8006m_gesture_data.gesture_all_switch = 1; + } else if (value == MXT_INPUT_EVENT_WAKUP_MODE_OFF) { + ft8006m_gesture_data.gesture_all_switch = 0; + } else { + ft8006m_gesture_data.gesture_all_switch = 0; + FTS_ERROR("Failed Open/Close Gesture Function!\n"); + return -ENOMEM; + } + } + } + + return 0; +} +#endif + +/***************************************************************************** +* Name: ft8006m_input_dev_init +* Brief: input dev init +* Input: +* Output: +* Return: +*****************************************************************************/ +static int ft8006m_input_dev_init(struct i2c_client *client, struct fts_ts_data *data, struct input_dev *input_dev, struct fts_ts_platform_data *pdata) +{ + int err, len; + + FTS_FUNC_ENTER(); + + /* Init and register Input device */ + input_dev->name = FTS_DRIVER_NAME; + input_dev->id.bustype = BUS_I2C; + input_dev->dev.parent = &client->dev; +#if FTS_GESTURE_EN + input_dev->event = fts_input_event; +#endif + + input_set_drvdata(input_dev, data); + i2c_set_clientdata(client, data); + + __set_bit(EV_KEY, input_dev->evbit); + if (data->pdata->have_key) { + FTS_DEBUG("set key capabilities"); + for (len = 0; len < data->pdata->key_number; len++) { + input_set_capability(input_dev, EV_KEY, data->pdata->keys[len]); + } + } + __set_bit(EV_ABS, input_dev->evbit); + __set_bit(BTN_TOUCH, input_dev->keybit); + __set_bit(INPUT_PROP_DIRECT, input_dev->propbit); + +#if FTS_MT_PROTOCOL_B_EN + input_mt_init_slots(input_dev, pdata->max_touch_number, INPUT_MT_DIRECT); +#else + input_set_abs_params(input_dev, ABS_MT_TRACKING_ID, 0, 0x0f, 0, 0); +#endif + input_set_abs_params(input_dev, ABS_MT_POSITION_X, pdata->x_min, pdata->x_max, 0, 0); + input_set_abs_params(input_dev, ABS_MT_POSITION_Y, pdata->y_min, pdata->y_max, 0, 0); + input_set_abs_params(input_dev, ABS_MT_TOUCH_MAJOR, 0, 0xFF, 0, 0); +#if FTS_REPORT_PRESSURE_EN + input_set_abs_params(input_dev, ABS_MT_PRESSURE, 0, 0xFF, 0, 0); +#endif + + err = input_register_device(input_dev); + if (err) { + FTS_ERROR("Input device registration failed"); + goto free_inputdev; + } + + FTS_FUNC_EXIT(); + + return 0; + +free_inputdev: + input_free_device(input_dev); + FTS_FUNC_EXIT(); + return err; + +} + +/***************************************************************************** +* Power Control +*****************************************************************************/ +#if FTS_POWER_SOURCE_CUST_EN +static int fts_power_source_init(struct fts_ts_data *data) +{ + int rc; + + FTS_FUNC_ENTER(); + + data->vcc_i2c = regulator_get(&data->client->dev, "vcc_i2c"); + if (IS_ERR(data->vcc_i2c)) { + rc = PTR_ERR(data->vcc_i2c); + FTS_ERROR("Regulator get failed vcc_i2c rc=%d", rc); + goto reg_vdd_set_vtg; + } + + data->lab = regulator_get(&data->client->dev, "lab"); + if (IS_ERR(data->lab)) { + rc = PTR_ERR(data->lab); + FTS_ERROR("Regulator get failed lab rc=%d", rc); + } + + data->ibb = regulator_get(&data->client->dev, "ibb"); + if (IS_ERR(data->ibb)) { + rc = PTR_ERR(data->ibb); + FTS_ERROR("Regulator get failed ibb rc=%d", rc); + } + + data->panel_iovdd = regulator_get(&data->client->dev, "panel_iovdd"); + if (IS_ERR(data->panel_iovdd)) { + + FTS_ERROR("!!! panel_iovdd not present !!!"); + } + + FTS_FUNC_EXIT(); + return 0; + + + +reg_vdd_set_vtg: + if (regulator_count_voltages(data->vdd) > 0) + regulator_set_voltage(data->vdd, 0, FTS_VTG_MAX_UV); + + + FTS_FUNC_EXIT(); + return rc; +} + +static int fts_power_source_ctrl(struct fts_ts_data *data, int enable) +{ + int rc; + + FTS_FUNC_ENTER(); + if (enable) { + rc = regulator_enable(data->vcc_i2c); + if (rc) { + FTS_ERROR("Regulator vcc_i2c enable failed rc=%d", rc); + } + } else { + rc = regulator_disable(data->vcc_i2c); + if (rc) { + FTS_ERROR("Regulator vcc_i2c disable failed rc=%d", rc); + } + } + FTS_FUNC_EXIT(); + return 0; +} + +static int lcd_power_ctrl(struct fts_ts_data *data, int enable) +{ + int rc; + + FTS_FUNC_ENTER(); + if (enable) { + rc = regulator_enable(data->panel_iovdd); + if (rc) { + FTS_ERROR("Regulator panel_iovdd enable failed rc=%d\n", rc); + } + + rc = regulator_enable(data->lab); + if (rc) { + FTS_ERROR("Regulator labenable failed rc=%d\n", rc); + } + + rc = regulator_enable(data->ibb); + if (rc) { + FTS_ERROR("Regulator ibb enable failed rc=%d\n", rc); + } + } else { + rc = regulator_disable(data->lab); + if (rc) { + FTS_ERROR("Regulator lab disable failed rc=%d\n", rc); + } + + rc = regulator_disable(data->ibb); + if (rc) { + FTS_ERROR("Regulator ibb disable failed rc=%d\n", rc); + } + + mdelay(10); + rc = regulator_disable(data->panel_iovdd); + if (rc) { + FTS_ERROR("Regulator panel_iovdd disable failed rc=%d\n", rc); + } + + } + FTS_FUNC_EXIT(); + return 0; +} + + +#endif + + +/***************************************************************************** +* Reprot related +*****************************************************************************/ +/***************************************************************************** +* Name: fts_release_all_finger +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +static void fts_release_all_finger(void) +{ +#if FTS_MT_PROTOCOL_B_EN + unsigned int finger_count = 0; +#endif + + mutex_lock(&ft8006m_wq_data->report_mutex); +#if FTS_MT_PROTOCOL_B_EN + for (finger_count = 0; finger_count < ft8006m_wq_data->pdata->max_touch_number; finger_count++) { + input_mt_slot(ft8006m_input_dev, finger_count); + input_mt_report_slot_state(ft8006m_input_dev, MT_TOOL_FINGER, false); + } +#else + input_mt_sync(ft8006m_input_dev); +#endif + input_report_key(ft8006m_input_dev, BTN_TOUCH, 0); + input_sync(ft8006m_input_dev); + mutex_unlock(&ft8006m_wq_data->report_mutex); +} + + +#if (FTS_DEBUG_EN && (FTS_DEBUG_LEVEL == 2)) +static void fts_show_touch_buffer(u8 *buf, int point_num) +{ + int len = point_num * FTS_ONE_TCH_LEN; + int count = 0; + int i; + + memset(g_sz_debug, 0, 1024); + if (len > (POINT_READ_BUF-3)) { + len = POINT_READ_BUF-3; + } else if (len == 0) { + len += FTS_ONE_TCH_LEN; + } + count += sprintf(g_sz_debug, "%02X,%02X,%02X", buf[0], buf[1], buf[2]); + for (i = 0; i < len; i++) { + count += sprintf(g_sz_debug+count, ",%02X", buf[i+3]); + } + +} +#endif + +static int ft8006m_input_dev_report_key_event(struct ts_event *event, struct fts_ts_data *data) +{ + int i; + + if (data->pdata->have_key) { + if ((1 == event->touch_point || 1 == event->point_num) && + (event->au16_y[0] == data->pdata->key_y_coord)) { + + if (event->point_num == 0) { + FTS_DEBUG("Keys All Up!"); + for (i = 0; i < data->pdata->key_number; i++) { + input_report_key(data->input_dev, data->pdata->keys[i], 0); + } + } else { + for (i = 0; i < data->pdata->key_number; i++) { + if (event->au16_x[0] > (data->pdata->key_x_coords[i] - FTS_KEY_WIDTH) && + event->au16_x[0] < (data->pdata->key_x_coords[i] + FTS_KEY_WIDTH)) { + + if (event->au8_touch_event[i] == 0 || + event->au8_touch_event[i] == 2) { + input_report_key(data->input_dev, data->pdata->keys[i], 1); + FTS_DEBUG("Key%d(%d, %d) DOWN!", i, event->au16_x[0], event->au16_y[0]); + } else { + input_report_key(data->input_dev, data->pdata->keys[i], 0); + FTS_DEBUG("Key%d(%d, %d) Up!", i, event->au16_x[0], event->au16_y[0]); + } + break; + } + } + } + input_sync(data->input_dev); + return 0; + } + } + + return -EPERM; +} + +#if FTS_MT_PROTOCOL_B_EN +static int ft8006m_input_dev_report_b(struct ts_event *event, struct fts_ts_data *data) +{ + int i = 0; + int uppoint = 0; + int touchs = 0; + for (i = 0; i < event->touch_point; i++) { + if (event->au8_finger_id[i] >= data->pdata->max_touch_number) { + break; + } + input_mt_slot(data->input_dev, event->au8_finger_id[i]); + + if (event->au8_touch_event[i] == FTS_TOUCH_DOWN || event->au8_touch_event[i] == FTS_TOUCH_CONTACT) { + input_mt_report_slot_state(data->input_dev, MT_TOOL_FINGER, true); + +#if FTS_REPORT_PRESSURE_EN +#if FTS_FORCE_TOUCH_EN + if (event->pressure[i] <= 0) { + FTS_ERROR("[B]Illegal pressure: %d", event->pressure[i]); + event->pressure[i] = 1; + } +#else + event->pressure[i] = 0x3f; +#endif + input_report_abs(data->input_dev, ABS_MT_PRESSURE, event->pressure[i]); +#endif + + if (event->area[i] <= 0) { + FTS_ERROR("[B]Illegal touch-major: %d", event->area[i]); + event->area[i] = 1; + } + input_report_abs(data->input_dev, ABS_MT_TOUCH_MAJOR, event->area[i]); + + input_report_abs(data->input_dev, ABS_MT_POSITION_X, event->au16_x[i]); + input_report_abs(data->input_dev, ABS_MT_POSITION_Y, event->au16_y[i]); + touchs |= BIT(event->au8_finger_id[i]); + data->touchs |= BIT(event->au8_finger_id[i]); + +#if FTS_REPORT_PRESSURE_EN + + +#else + +#endif + } else { + uppoint++; + input_mt_report_slot_state(data->input_dev, MT_TOOL_FINGER, false); +#if FTS_REPORT_PRESSURE_EN + input_report_abs(data->input_dev, ABS_MT_PRESSURE, 0); +#endif + data->touchs &= ~BIT(event->au8_finger_id[i]); + + } + } + + if (unlikely(data->touchs ^ touchs)) { + for (i = 0; i < data->pdata->max_touch_number; i++) { + if (BIT(i) & (data->touchs ^ touchs)) { + + input_mt_slot(data->input_dev, i); + input_mt_report_slot_state(data->input_dev, MT_TOOL_FINGER, false); +#if FTS_REPORT_PRESSURE_EN + input_report_abs(data->input_dev, ABS_MT_PRESSURE, 0); +#endif + } + } + } + + data->touchs = touchs; + if (event->touch_point == uppoint) { + + input_report_key(data->input_dev, BTN_TOUCH, 0); + } else { + input_report_key(data->input_dev, BTN_TOUCH, event->touch_point > 0); + } + + input_sync(data->input_dev); + + return 0; + +} + +#else +static int ft8006m_input_dev_report_a(struct ts_event *event, struct fts_ts_data *data) +{ + int i = 0; + int uppoint = 0; + int touchs = 0; + for (i = 0; i < event->touch_point; i++) { + + if (event->au8_touch_event[i] == FTS_TOUCH_DOWN || event->au8_touch_event[i] == FTS_TOUCH_CONTACT) { + input_report_abs(data->input_dev, ABS_MT_TRACKING_ID, event->au8_finger_id[i]); +#if FTS_REPORT_PRESSURE_EN +#if FTS_FORCE_TOUCH_EN + if (event->pressure[i] <= 0) { + FTS_ERROR("[B]Illegal pressure: %d", event->pressure[i]); + event->pressure[i] = 1; + } +#else + event->pressure[i] = 0x3f; +#endif + input_report_abs(data->input_dev, ABS_MT_PRESSURE, event->pressure[i]); +#endif + + if (event->area[i] <= 0) { + FTS_ERROR("[B]Illegal touch-major: %d", event->area[i]); + event->area[i] = 1; + } + input_report_abs(data->input_dev, ABS_MT_TOUCH_MAJOR, event->area[i]); + + input_report_abs(data->input_dev, ABS_MT_POSITION_X, event->au16_x[i]); + input_report_abs(data->input_dev, ABS_MT_POSITION_Y, event->au16_y[i]); + + input_mt_sync(data->input_dev); + +#if FTS_REPORT_PRESSURE_EN + + +#else + FTS_DEBUG("[B]P%d(%d, %d)[tm:%d] DOWN!", event->au8_finger_id[i], event->au16_x[i], event->au16_y[i], event->area[i]); +#endif + } else { + uppoint++; + } + } + + data->touchs = touchs; + if (event->touch_point == uppoint) { + + input_report_key(data->input_dev, BTN_TOUCH, 0); + input_mt_sync(data->input_dev); + } else { + input_report_key(data->input_dev, BTN_TOUCH, event->touch_point > 0); + } + + input_sync(data->input_dev); + + return 0; +} +#endif + +/***************************************************************************** +* Name: fts_read_touchdata +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +static int fts_read_touchdata(struct fts_ts_data *data) +{ + u8 buf[POINT_READ_BUF] = { 0 }; + u8 pointid = FTS_MAX_ID; + int ret = -1; + int i; + struct ts_event *event = &(data->event); + +#if FTS_GESTURE_EN + if (ft8006m_gesture_data.gesture_all_switch) { + u8 state; + if (data->suspended) { + ft8006m_i2c_read_reg(data->client, FTS_REG_GESTURE_EN, &state); + if (state == 1) { + ft8006m_gesture_readdata(data->client); + return 1; + } + } + } +#endif + +#if FTS_PSENSOR_EN + if ((fts_sensor_read_data(data) != 0) && (data->suspended == 1)) { + return 1; + } +#endif + + +#if FTS_READ_TOUCH_BUFFER_DIVIDED + memset(buf, 0xFF, POINT_READ_BUF); + memset(event, 0, sizeof(struct ts_event)); + + buf[0] = 0x00; + ret = ft8006m_i2c_read(data->client, buf, 1, buf, (3 + FTS_ONE_TCH_LEN)); + if (ret < 0) { + FTS_ERROR("%s read touchdata failed.", __func__); + return ret; + } + event->touch_point = 0; + event->point_num = buf[FTS_TOUCH_POINT_NUM] & 0x0F; + if (event->point_num > data->pdata->max_touch_number) + event->point_num = data->pdata->max_touch_number; + + if (event->point_num > 1) { + buf[9] = 0x09; + ft8006m_i2c_read(data->client, buf+9, 1, buf+9, (event->point_num - 1) * FTS_ONE_TCH_LEN); + } +#else + ret = ft8006m_i2c_read(data->client, buf, 1, buf, POINT_READ_BUF); + if (ret < 0) { + FTS_ERROR("[B]Read touchdata failed, ret: %d", ret); + return ret; + } + +#if FTS_POINT_REPORT_CHECK_EN + ft8006m_point_report_check_queue_work(); +#endif + + memset(event, 0, sizeof(struct ts_event)); + event->point_num = buf[FTS_TOUCH_POINT_NUM] & 0x0F; + if (event->point_num > data->pdata->max_touch_number) + event->point_num = data->pdata->max_touch_number; + event->touch_point = 0; +#endif + +#if (FTS_DEBUG_EN && (FTS_DEBUG_LEVEL == 2)) + fts_show_touch_buffer(buf, event->point_num); +#endif + + for (i = 0; i < data->pdata->max_touch_number; i++) { + pointid = (buf[FTS_TOUCH_ID_POS + FTS_ONE_TCH_LEN * i]) >> 4; + if (pointid >= FTS_MAX_ID) + break; + else + event->touch_point++; + + event->au16_x[i] = + (s16) (buf[FTS_TOUCH_X_H_POS + FTS_ONE_TCH_LEN * i] & 0x0F) << + 8 | (s16) buf[FTS_TOUCH_X_L_POS + FTS_ONE_TCH_LEN * i]; + event->au16_y[i] = + (s16) (buf[FTS_TOUCH_Y_H_POS + FTS_ONE_TCH_LEN * i] & 0x0F) << + 8 | (s16) buf[FTS_TOUCH_Y_L_POS + FTS_ONE_TCH_LEN * i]; + event->au8_touch_event[i] = + buf[FTS_TOUCH_EVENT_POS + FTS_ONE_TCH_LEN * i] >> 6; + event->au8_finger_id[i] = + (buf[FTS_TOUCH_ID_POS + FTS_ONE_TCH_LEN * i]) >> 4; + event->area[i] = + (buf[FTS_TOUCH_AREA_POS + FTS_ONE_TCH_LEN * i]) >> 4; + event->pressure[i] = + (s16) buf[FTS_TOUCH_PRE_POS + FTS_ONE_TCH_LEN * i]; + + if (0 == event->area[i]) + event->area[i] = 0x09; + + if (0 == event->pressure[i]) + event->pressure[i] = 0x3f; + + if ((event->au8_touch_event[i] == 0 || event->au8_touch_event[i] == 2) && (event->point_num == 0)) { + FTS_DEBUG("abnormal touch data from fw"); + return -EPERM; + } + } + if (event->touch_point == 0) { + return -EPERM; + } + return 0; +} + +/***************************************************************************** +* Name: fts_report_value +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +static void fts_report_value(struct fts_ts_data *data) +{ + struct ts_event *event = &data->event; + + + + + + if (0 == ft8006m_input_dev_report_key_event(event, data)) { + return; + } + +#if FTS_MT_PROTOCOL_B_EN + ft8006m_input_dev_report_b(event, data); +#else + ft8006m_input_dev_report_a(event, data); +#endif + + + return; + +} + +/***************************************************************************** +* Name: fts_ts_interrupt +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +static irqreturn_t fts_ts_interrupt(int irq, void *dev_id) +{ + struct fts_ts_data *fts_ts = dev_id; + int ret = -1; + + if (!fts_ts) { + FTS_ERROR("[INTR]: Invalid fts_ts"); + return IRQ_HANDLED; + } + +#if FTS_ESDCHECK_EN + ft8006m_esdcheck_set_intr(1); +#endif + + ret = fts_read_touchdata(ft8006m_wq_data); + + if (ret == 0) { + mutex_lock(&ft8006m_wq_data->report_mutex); + fts_report_value(ft8006m_wq_data); + mutex_unlock(&ft8006m_wq_data->report_mutex); + } + +#if FTS_ESDCHECK_EN + ft8006m_esdcheck_set_intr(0); +#endif + + return IRQ_HANDLED; +} + +/***************************************************************************** +* Name: fts_gpio_configure +* Brief: Configure IRQ&RESET GPIO +* Input: +* Output: +* Return: +*****************************************************************************/ +static int fts_gpio_configure(struct fts_ts_data *data) +{ + int err = 0; + + FTS_FUNC_ENTER(); + /* request irq gpio */ + if (gpio_is_valid(data->pdata->irq_gpio)) { + err = gpio_request(data->pdata->irq_gpio, "fts_irq_gpio"); + if (err) { + FTS_ERROR("[GPIO]irq gpio request failed"); + goto err_irq_gpio_req; + } + + err = gpio_direction_input(data->pdata->irq_gpio); + if (err) { + FTS_ERROR("[GPIO]set_direction for irq gpio failed"); + goto err_irq_gpio_dir; + } + } + /* request reset gpio */ + if (gpio_is_valid(data->pdata->reset_gpio)) { + err = gpio_request(data->pdata->reset_gpio, "fts_reset_gpio"); + if (err) { + FTS_ERROR("[GPIO]reset gpio request failed"); + goto err_irq_gpio_dir; + } + + err = gpio_direction_output(data->pdata->reset_gpio, 1); + if (err) { + FTS_ERROR("[GPIO]set_direction for reset gpio failed"); + goto err_reset_gpio_dir; + } + } + + FTS_FUNC_EXIT(); + return 0; + +err_reset_gpio_dir: + if (gpio_is_valid(data->pdata->reset_gpio)) + gpio_free(data->pdata->reset_gpio); +err_irq_gpio_dir: + if (gpio_is_valid(data->pdata->irq_gpio)) + gpio_free(data->pdata->irq_gpio); +err_irq_gpio_req: + FTS_FUNC_EXIT(); + return err; +} + + +/***************************************************************************** +* Name: fts_get_dt_coords +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +static int fts_get_dt_coords(struct device *dev, char *name, + struct fts_ts_platform_data *pdata) { + u32 coords[FTS_COORDS_ARR_SIZE]; + struct property *prop; + struct device_node *np = dev->of_node; + int coords_size, rc; + + prop = of_find_property(np, name, NULL); + if (!prop) + return -EINVAL; + if (!prop->value) + return -ENODATA; + + + coords_size = prop->length / sizeof(u32); + if (coords_size != FTS_COORDS_ARR_SIZE) { + FTS_ERROR("invalid %s", name); + return -EINVAL; + } + + rc = of_property_read_u32_array(np, name, coords, coords_size); + if (rc && (rc != -EINVAL)) { + FTS_ERROR("Unable to read %s", name); + return rc; + } + + if (!strcmp(name, "focaltech,display-coords")) { + if (!strcmp(Lcm_name, "ft8613_ebbg_5p5_1080p_video")) { + pdata->x_min = 0; + pdata->y_min = 0; + pdata->x_max = 1080; + pdata->y_max = 1920; + } else { + pdata->x_min = coords[0]; + pdata->y_min = coords[1]; + pdata->x_max = coords[2]; + pdata->y_max = coords[3]; + } + FTS_INFO("Lcdname:%s \n", Lcm_name); + FTS_INFO("x_min:%d y_min:%d x_max:%d y_max:%d", pdata->x_min, pdata->y_min, pdata->x_max, pdata->y_max); + + } else { + FTS_ERROR("unsupported property %s", name); + return -EINVAL; + } + + return 0; +} + +/***************************************************************************** +* Name: fts_parse_dt +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +static int fts_parse_dt(struct device *dev, struct fts_ts_platform_data *pdata) +{ + int rc; + struct device_node *np = dev->of_node; + u32 temp_val; + + FTS_FUNC_ENTER(); + + rc = fts_get_dt_coords(dev, "focaltech,display-coords", pdata); + if (rc) + FTS_ERROR("Unable to get display-coords"); + + /* key */ + pdata->have_key = of_property_read_bool(np, "focaltech,have-key"); + if (pdata->have_key) { + rc = of_property_read_u32(np, "focaltech,key-number", &pdata->key_number); + if (rc) { + FTS_ERROR("Key number undefined!"); + } + rc = of_property_read_u32_array(np, "focaltech,keys", + pdata->keys, pdata->key_number); + if (rc) { + FTS_ERROR("Keys undefined!"); + } + rc = of_property_read_u32(np, "focaltech,key-y-coord", &pdata->key_y_coord); + if (rc) { + FTS_ERROR("Key Y Coord undefined!"); + } + rc = of_property_read_u32_array(np, "focaltech,key-x-coords", + pdata->key_x_coords, pdata->key_number); + if (rc) { + FTS_ERROR("Key X Coords undefined!"); + } + FTS_DEBUG("%d: (%d, %d, %d), [%d, %d, %d][%d]", + pdata->key_number, pdata->keys[0], pdata->keys[1], pdata->keys[2], + pdata->key_x_coords[0], pdata->key_x_coords[1], pdata->key_x_coords[2], + pdata->key_y_coord); + } + + /* reset, irq gpio info */ + pdata->reset_gpio = of_get_named_gpio_flags(np, "focaltech,reset-gpio", 0, &pdata->reset_gpio_flags); + if (pdata->reset_gpio < 0) { + FTS_ERROR("Unable to get reset_gpio"); + } + + pdata->irq_gpio = of_get_named_gpio_flags(np, "focaltech,irq-gpio", 0, &pdata->irq_gpio_flags); + if (pdata->irq_gpio < 0) { + FTS_ERROR("Unable to get irq_gpio"); + } + + rc = of_property_read_u32(np, "focaltech,max-touch-number", &temp_val); + if (!rc) { + pdata->max_touch_number = temp_val; + FTS_DEBUG("max_touch_number=%d", pdata->max_touch_number); + } else { + FTS_ERROR("Unable to get max-touch-number"); + pdata->max_touch_number = FTS_MAX_POINTS; + } + + + + FTS_FUNC_EXIT(); + return 0; +} + +#if defined(CONFIG_FB) +/***************************************************************************** +* Name: fb_notifier_callback +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +static int fb_notifier_callback(struct notifier_block *self, + unsigned long event, void *data) +{ + struct fb_event *evdata = data; + int *blank; + struct fts_ts_data *fts_data = + container_of(self, struct fts_ts_data, fb_notif); + + if (evdata && evdata->data && event == FB_EVENT_BLANK && + fts_data && fts_data->client) { + blank = evdata->data; + if (*blank == FB_BLANK_UNBLANK) + ft8006m_ts_resume(&fts_data->client->dev); + else if (*blank == FB_BLANK_POWERDOWN) + ft8006m_ts_suspend(&fts_data->client->dev); + } + + return 0; +} +#elif defined(CONFIG_HAS_EARLYSUSPEND) +/***************************************************************************** +* Name: fts_ts_early_suspend +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +static void fts_ts_early_suspend(struct early_suspend *handler) +{ + struct fts_ts_data *data = container_of(handler, + struct fts_ts_data, + early_suspend); + + ft8006m_ts_suspend(&data->client->dev); +} + +/***************************************************************************** +* Name: fts_ts_late_resume +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +static void fts_ts_late_resume(struct early_suspend *handler) +{ + struct fts_ts_data *data = container_of(handler, + struct fts_ts_data, + early_suspend); + + ft8006m_ts_resume(&data->client->dev); +} +#endif +#if 1 +static int fts_ts_pinctrl_init(struct fts_ts_data *data) +{ + int retval; + + /* Get pinctrl if target uses pinctrl */ + data->ts_pinctrl = devm_pinctrl_get(&(data->client->dev)); + if (IS_ERR_OR_NULL(data->ts_pinctrl)) { + retval = PTR_ERR(data->ts_pinctrl); + dev_dbg(&data->client->dev, + "Target does not use pinctrl %d\n", retval); + goto err_pinctrl_get; + } + + data->pinctrl_state_active + = pinctrl_lookup_state(data->ts_pinctrl, + PINCTRL_STATE_ACTIVE); + if (IS_ERR_OR_NULL(data->pinctrl_state_active)) { + retval = PTR_ERR(data->pinctrl_state_active); + dev_err(&data->client->dev, + "Can not lookup %s pinstate %d\n", + PINCTRL_STATE_ACTIVE, retval); + goto err_pinctrl_lookup; + } + + data->pinctrl_state_suspend + = pinctrl_lookup_state(data->ts_pinctrl, + PINCTRL_STATE_SUSPEND); + if (IS_ERR_OR_NULL(data->pinctrl_state_suspend)) { + retval = PTR_ERR(data->pinctrl_state_suspend); + dev_err(&data->client->dev, + "Can not lookup %s pinstate %d\n", + PINCTRL_STATE_SUSPEND, retval); + goto err_pinctrl_lookup; + } + + data->pinctrl_state_release + = pinctrl_lookup_state(data->ts_pinctrl, + PINCTRL_STATE_RELEASE); + if (IS_ERR_OR_NULL(data->pinctrl_state_release)) { + retval = PTR_ERR(data->pinctrl_state_release); + dev_dbg(&data->client->dev, + "Can not lookup %s pinstate %d\n", + PINCTRL_STATE_RELEASE, retval); + } + + return 0; + +err_pinctrl_lookup: + devm_pinctrl_put(data->ts_pinctrl); +err_pinctrl_get: + data->ts_pinctrl = NULL; + return retval; +} +#endif + +void hardwareinfo_set(void *drv_data) +{ + char firmware_ver[HARDWARE_MAX_ITEM_LONGTH]; + char vendor_for_id[HARDWARE_MAX_ITEM_LONGTH]; + char ic_name[HARDWARE_MAX_ITEM_LONGTH]; + int err; + u8 vendor_id; + u8 ic_type; + u8 fw_ver; + + ft8006m_i2c_read_reg(ft8006m_i2c_client, FTS_REG_VENDOR_ID, &vendor_id); + ft8006m_i2c_read_reg(ft8006m_i2c_client, FTS_REG_FW_VER, &fw_ver); + ft8006m_i2c_read_reg(ft8006m_i2c_client, FTS_REG_CHIP_ID, &ic_type); + + if (vendor_id == BOE_VENDOR) { + snprintf(vendor_for_id, HARDWARE_MAX_ITEM_LONGTH, "BOE"); + } else{ + snprintf(vendor_for_id, HARDWARE_MAX_ITEM_LONGTH, "Other vendor"); + } + + if (ic_type == TP_IC_FT8006M) { + snprintf(ic_name, HARDWARE_MAX_ITEM_LONGTH, "FT8006M"); + } else{ + snprintf(ic_name, HARDWARE_MAX_ITEM_LONGTH, "Other IC"); + } + + snprintf(firmware_ver, HARDWARE_MAX_ITEM_LONGTH, "%s, %s, FW:0x%x", vendor_for_id, ic_name, fw_ver); + FTS_INFO("firmware_ver=%s\n", firmware_ver); + + err = hardwareinfo_set_prop(HARDWARE_TP, firmware_ver); + if (err < 0) + return ; + + return ; + +} + + +#ifndef WT_COMPILE_FACTORY_VERSION +static int get_boot_mode(struct i2c_client *client) +{ + int ret; + char *cmdline_tp = NULL; + char *temp; + char cmd_line[15] = {'\0'}; + + cmdline_tp = strstr(saved_command_line, "androidboot.mode="); + if (cmdline_tp != NULL) { + temp = cmdline_tp + strlen("androidboot.mode="); + ret = strncmp(temp, "ffbm", strlen("ffbm")); + memcpy(cmd_line, temp, strlen("ffbm")); + FTS_INFO("cmd_line =%s \n", cmd_line); + if (ret == 0) { + FTS_INFO("mode: ffbm\n"); + return 1;/* factory mode*/ + } else { + FTS_INFO("mode: no ffbm\n"); + return 2;/* not factory mode*/ + } + } + FTS_INFO("Normal mode \n"); + + return 0; +} +#endif + +/***************************************************************************** +* Name: fts_ts_probe +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +static void fts_ts_shutdown(struct i2c_client *client) +{ + lcd_power_ctrl(ft8006m_wq_data, 0); +} + +static int fts_ts_probe(struct i2c_client *client, const struct i2c_device_id *id) +{ + struct fts_ts_platform_data *pdata; + struct fts_ts_data *data; + struct input_dev *input_dev; + int err; + int i; + u8 reg_addr, reg_value; + + FTS_FUNC_ENTER(); + /* 1. Get Platform data */ + if (client->dev.of_node) { + pdata = devm_kzalloc(&client->dev, + sizeof(struct fts_ts_platform_data), + GFP_KERNEL); + if (!pdata) { + FTS_ERROR("[MEMORY]Failed to allocate memory"); + FTS_FUNC_EXIT(); + return -ENOMEM; + } + err = fts_parse_dt(&client->dev, pdata); + if (err) { + FTS_ERROR("[DTS]DT parsing failed"); + } + } else { + pdata = client->dev.platform_data; + } + + if (!pdata) { + FTS_ERROR("Invalid pdata"); + FTS_FUNC_EXIT(); + return -EINVAL; + } + + if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { + FTS_ERROR("I2C not supported"); + FTS_FUNC_EXIT(); + goto free_platform_data; + } + + data = devm_kzalloc(&client->dev, sizeof(struct fts_ts_data), GFP_KERNEL); + if (!data) { + FTS_ERROR("[MEMORY]Failed to allocate memory"); + FTS_FUNC_EXIT(); + return -ENOMEM; + } + + input_dev = input_allocate_device(); + if (!input_dev) { + FTS_ERROR("[INPUT]Failed to allocate input device"); + FTS_FUNC_EXIT(); + goto free_ts_data; + } + + + + data->input_dev = input_dev; + data->client = client; + data->pdata = pdata; + + ft8006m_wq_data = data; + ft8006m_i2c_client = client; + ft8006m_input_dev = input_dev; + + spin_lock_init(&ft8006m_wq_data->irq_lock); + mutex_init(&ft8006m_wq_data->report_mutex); + + ft8006m_input_dev_init(client, data, input_dev, pdata); + + ft8006m_ctpm_get_upgrade_array(); + + err = fts_gpio_configure(data); + if (err < 0) { + FTS_ERROR("[GPIO]Failed to configure the gpios"); + goto input_destroy; + } + + +#if 1 + err = fts_ts_pinctrl_init(data); + if (!err && data->ts_pinctrl) { + /* + * Pinctrl handle is optional. If pinctrl handle is found + * let pins to be configured in active state. If not + * found continue further without error. + */ + err = pinctrl_select_state(data->ts_pinctrl, + data->pinctrl_state_active); + if (err < 0) { + dev_err(&client->dev, + "failed to select pin to active state"); + } + } +#endif + + +#if FTS_POWER_SOURCE_CUST_EN + fts_power_source_init(data); + fts_power_source_ctrl(data, 1); + lcd_power_ctrl(data, 1); +#endif +ft8006m_reset_proc(200); + + /* check the controller id */ + reg_addr = 0xA3; + for (i = 0; i < 5; i++) { + err = ft8006m_i2c_read(client, ®_addr, 1, ®_value, 1); + if (err < 0) + msleep(5); + else + break; + + } + if (i >= 5) { + dev_err(&client->dev, "version read failed"); + goto free_gpio; + } + + ft8006m_wait_tp_to_valid(client); + + ft8006m_i2c_read_reg(client, FTS_REG_CHIP_ID, ®_value); + + err = request_threaded_irq(client->irq, NULL, fts_ts_interrupt, + /*pdata->irq_gpio_flags | */IRQF_ONESHOT | IRQF_TRIGGER_FALLING, + client->dev.driver->name, data); + if (err) { + FTS_ERROR("Request irq failed!"); + goto free_gpio; + } + + ft8006m_irq_disable(); + +#if FTS_PSENSOR_EN + if (fts_sensor_init(data) != 0) { + FTS_ERROR("fts_sensor_init failed!"); + FTS_FUNC_EXIT(); + goto irq_free; + } +#endif + +#if FTS_APK_NODE_EN + ft8006m_create_apk_debug_channel(client); +#endif + +#if FTS_SYSFS_NODE_EN + ft8006m_create_sysfs(client); +#endif + +#if FTS_POINT_REPORT_CHECK_EN + ft8006m_point_report_check_init(); +#endif + + ft8006m_ex_mode_init(client); + +#if FTS_GESTURE_EN + ft8006m_gesture_init(input_dev, client); +#endif + +#if FTS_ESDCHECK_EN + ft8006m_esdcheck_init(); +#endif + + ft8006m_irq_enable(); + ft8006m_i2c_read_reg(client, FTS_REG_VENDOR_ID, &data->fw_vendor_id); + ft8006m_i2c_read_reg(client, FTS_REG_FW_VER, data->fw_ver); + FTS_INFO("vendor_id=0x%x\n", data->fw_vendor_id); + FTS_INFO("tp_fw=0x%x\n", data->fw_ver[0]); +#if FTS_TEST_EN + ft8006m_test_init(client); +#endif +#if FTS_LOCK_DOWN_INFO + ft8006m_lockdown_init(client); +#endif + +#if FTS_CAT_RAWDATA + ft8006m_rawdata_init(client); +#endif + +#if FTS_AUTO_UPGRADE_EN + err = get_boot_mode(client); + if (err == 0) { + ft8006m_ctpm_upgrade_init(); + } else { + FTS_INFO("Not in normal mode!\n"); + } + +#endif + + +#if defined(CONFIG_FB) + data->fb_notif.notifier_call = fb_notifier_callback; + err = fb_register_client(&data->fb_notif); + if (err) + FTS_ERROR("[FB]Unable to register fb_notifier: %d", err); +#elif defined(CONFIG_HAS_EARLYSUSPEND) + data->early_suspend.level = EARLY_SUSPEND_LEVEL_BLANK_SCREEN + FTS_SUSPEND_LEVEL; + data->early_suspend.suspend = fts_ts_early_suspend; + data->early_suspend.resume = fts_ts_late_resume; + register_early_suspend(&data->early_suspend); +#endif + + hardwareinfo_tp_register(hardwareinfo_set, data); + + FTS_FUNC_EXIT(); + return 0; + +#if FTS_PSENSOR_EN +irq_free: + free_irq(client->irq, data); +#endif +free_gpio: + if (gpio_is_valid(pdata->reset_gpio)) + gpio_free(pdata->reset_gpio); + if (gpio_is_valid(pdata->irq_gpio)) + gpio_free(pdata->irq_gpio); +input_destroy: + input_unregister_device(input_dev); + input_dev = NULL; + input_free_device(input_dev); +free_ts_data: + devm_kfree(&client->dev, data); +free_platform_data: + devm_kfree(&client->dev, pdata); + + return err; + +} + +/***************************************************************************** +* Name: fts_ts_remove +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +static int fts_ts_remove(struct i2c_client *client) +{ + struct fts_ts_data *data = i2c_get_clientdata(client); + + FTS_FUNC_ENTER(); + cancel_work_sync(&data->touch_event_work); + +#if FTS_PSENSOR_EN + fts_sensor_remove(data); +#endif + +#if FTS_POINT_REPORT_CHECK_EN + ft8006m_point_report_check_exit(); +#endif + +#if FTS_APK_NODE_EN + ft8006m_release_apk_debug_channel(); +#endif + +#if FTS_SYSFS_NODE_EN + ft8006m_remove_sysfs(client); +#endif + + ft8006m_ex_mode_exit(client); + +#if FTS_AUTO_UPGRADE_EN + cancel_work_sync(&ft8006m_fw_update_work); +#endif + +#if defined(CONFIG_FB) + if (fb_unregister_client(&data->fb_notif)) + FTS_ERROR("Error occurred while unregistering fb_notifier."); +#elif defined(CONFIG_HAS_EARLYSUSPEND) + unregister_early_suspend(&data->early_suspend); +#endif + free_irq(client->irq, data); + + if (gpio_is_valid(data->pdata->reset_gpio)) + gpio_free(data->pdata->reset_gpio); + + if (gpio_is_valid(data->pdata->irq_gpio)) + gpio_free(data->pdata->irq_gpio); + + input_unregister_device(data->input_dev); + +#if FTS_TEST_EN + ft8006m_test_exit(client); +#endif + +#if FTS_ESDCHECK_EN + ft8006m_esdcheck_exit(); +#endif + + FTS_FUNC_EXIT(); + return 0; +} + +/***************************************************************************** +* Name: ft8006m_ts_suspend +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +int ft8006m_ts_suspend(struct device *dev) +{ + struct fts_ts_data *data = ft8006m_wq_data; + int retval = 0, i = 0; + + FTS_FUNC_ENTER(); + if (data->suspended) { + FTS_INFO("Already in suspend state"); + FTS_FUNC_EXIT(); + return -EPERM; + } +#if FTS_ESDCHECK_EN + ft8006m_esdcheck_suspend(); +#endif + +#if FTS_GESTURE_EN + if (ft8006m_gesture_data.gesture_all_switch) { + + if (panel_dead2tp) { + FTS_ERROR("%s:panel_dead2tp=%d", __func__, panel_dead2tp); + lcd_power_ctrl(data, 0); + data->suspended = true; + return 0; + } + + retval = ft8006m_gesture_suspend(data->client); + if (retval == 0) { + /* Enter into gesture mode(suspend) */ + retval = enable_irq_wake(ft8006m_wq_data->client->irq); + if (retval) + FTS_ERROR("%s: set_irq_wake failed", __func__); + data->suspended = true; + FTS_FUNC_EXIT(); + return 0; + } + } + +#endif + +#if FTS_PSENSOR_EN + if (fts_sensor_suspend(data) != 0) { + enable_irq_wake(data->client->irq); + data->suspended = true; + return 0; + } +#endif + + ft8006m_irq_disable(); + + for (; i < 5; i++) { + /* TP enter sleep mode */ + retval = ft8006m_i2c_write_reg(data->client, FTS_REG_POWER_MODE, FTS_REG_POWER_MODE_SLEEP_VALUE); + if (retval < 0) { + FTS_ERROR("Set TP to sleep mode fail, ret=%d!", retval); + } else { + FTS_INFO("go into sleep mode successfully\n"); + break; + } + msleep(20); + } + + +if (!(ft8006m_gesture_data.gesture_all_switch)) { + lcd_power_ctrl(data, 0); +} + + data->suspended = true; + + FTS_FUNC_EXIT(); + + return 0; +} +EXPORT_SYMBOL(ft8006m_ts_suspend); +/***************************************************************************** +* Name: fts_ts_resume +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +static int ft8006m_ts_resume(struct device *dev) +{ + struct fts_ts_data *data = dev_get_drvdata(dev); + + FTS_FUNC_ENTER(); + if (!data->suspended) { + FTS_DEBUG("Already in awake state"); + FTS_FUNC_EXIT(); + return -EPERM; + } + fts_release_all_finger(); + + + + if ((!(ft8006m_gesture_data.gesture_all_switch)) || panel_dead2tp) { + FTS_ERROR("%s:panel_dead2tp=%d", __func__, panel_dead2tp); + panel_dead2tp = 0; + lcd_power_ctrl(data, 1); + } + +#if (!FTS_CHIP_IDC) + ft8006m_reset_proc(200); +#endif + + ft8006m_tp_state_recovery(data->client); + +#if FTS_ESDCHECK_EN + ft8006m_esdcheck_resume(); +#endif + +#if FTS_GESTURE_EN + if (ft8006m_gesture_data.gesture_all_switch) { + if (ft8006m_gesture_resume(data->client) == 0) { + int err; + err = disable_irq_wake(data->client->irq); + if (err) + FTS_ERROR("%s: disable_irq_wake failed", __func__); + data->suspended = false; + FTS_FUNC_EXIT(); + return 0; + } + } + +#endif + +#if FTS_PSENSOR_EN + if (fts_sensor_resume(data) != 0) { + disable_irq_wake(data->client->irq); + data->suspended = false; + FTS_FUNC_EXIT(); + return 0; + } +#endif + + data->suspended = false; + + ft8006m_irq_enable(); + + FTS_FUNC_EXIT(); + return 0; +} + +/***************************************************************************** +* I2C Driver +*****************************************************************************/ +static const struct i2c_device_id fts_ts_id[] = { + {FTS_DRIVER_NAME, 0}, + {}, +}; +MODULE_DEVICE_TABLE(i2c, fts_ts_id); + +static struct of_device_id fts_match_table[] = { + { .compatible = "focaltech,ft8006m", }, + { }, +}; + +static struct i2c_driver fts_ts_driver = { + .probe = fts_ts_probe, + .remove = fts_ts_remove, + .shutdown = fts_ts_shutdown, + .driver = { + .name = FTS_DRIVER_NAME, + .owner = THIS_MODULE, + .of_match_table = fts_match_table, + }, + .id_table = fts_ts_id, +}; + +/***************************************************************************** +* Name: fts_ts_init +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +static int __init fts_ts_init(void) +{ + int ret = 0; + FTS_FUNC_ENTER(); + ret = i2c_add_driver(&fts_ts_driver); + if (ret != 0) { + FTS_ERROR("Focaltech touch screen driver init failed!"); + } + FTS_FUNC_EXIT(); + return ret; +} + +/***************************************************************************** +* Name: fts_ts_exit +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +static void __exit fts_ts_exit(void) +{ + i2c_del_driver(&fts_ts_driver); +} + +module_init(fts_ts_init); +module_exit(fts_ts_exit); + +MODULE_AUTHOR("FocalTech Driver Team"); +MODULE_DESCRIPTION("FocalTech Touchscreen Driver"); +MODULE_LICENSE("GPL v2"); diff --git a/drivers/input/touchscreen/FT8006m/focaltech_core.h b/drivers/input/touchscreen/FT8006m/focaltech_core.h new file mode 100755 index 0000000000000..66339c1949316 --- /dev/null +++ b/drivers/input/touchscreen/FT8006m/focaltech_core.h @@ -0,0 +1,212 @@ +/* + * + * FocalTech TouchScreen driver. + * + * Copyright (c) 2010-2017, Focaltech Ltd. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ +/***************************************************************************** +* +* File Name: focaltech_core.h + +* Author: Focaltech Driver Team +* +* Created: 2016-08-08 +* +* Abstract: +* +* Reference: +* +*****************************************************************************/ + +#ifndef __LINUX_FOCALTECH_CORE_H__ +#define __LINUX_FOCALTECH_CORE_H__ +/***************************************************************************** +* Included header files +*****************************************************************************/ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "focaltech_common.h" +#include "focaltech_flash.h" +#if FTS_PSENSOR_EN +#include +#endif +/***************************************************************************** +* Private constant and macro definitions using #define +*****************************************************************************/ +#define LEN_FLASH_ECC_MAX 0xFFFE + +#define FTS_WORKQUEUE_NAME "fts_wq" + +#define FTS_MAX_POINTS 10 +#define FTS_KEY_WIDTH 50 +#define FTS_ONE_TCH_LEN 6 +#define POINT_READ_BUF (3 + FTS_ONE_TCH_LEN * FTS_MAX_POINTS) + +#define FTS_MAX_ID 0x0F +#define FTS_TOUCH_X_H_POS 3 +#define FTS_TOUCH_X_L_POS 4 +#define FTS_TOUCH_Y_H_POS 5 +#define FTS_TOUCH_Y_L_POS 6 +#define FTS_TOUCH_PRE_POS 7 +#define FTS_TOUCH_AREA_POS 8 +#define FTS_TOUCH_POINT_NUM 2 +#define FTS_TOUCH_EVENT_POS 3 +#define FTS_TOUCH_ID_POS 5 +#define FTS_COORDS_ARR_SIZE 4 + +#define FTS_TOUCH_DOWN 0 +#define FTS_TOUCH_UP 1 +#define FTS_TOUCH_CONTACT 2 + +#define FTS_SYSFS_ECHO_ON(buf) ((strnicmp(buf, "1", 1) == 0) || \ + (strnicmp(buf, "on", 2) == 0)) +#define FTS_SYSFS_ECHO_OFF(buf) ((strnicmp(buf, "0", 1) == 0) || \ + (strnicmp(buf, "off", 3) == 0)) + +/***************************************************************************** +* Private enumerations, structures and unions using typedef +*****************************************************************************/ + + +struct fts_ts_platform_data { + u32 irq_gpio; + u32 irq_gpio_flags; + u32 reset_gpio; + u32 reset_gpio_flags; + bool have_key; + u32 key_number; + u32 keys[4]; + u32 key_y_coord; + u32 key_x_coords[4]; + u32 x_max; + u32 y_max; + u32 x_min; + u32 y_min; + u32 max_touch_number; +}; + +struct ts_event { + u16 au16_x[FTS_MAX_POINTS]; /*x coordinate */ + u16 au16_y[FTS_MAX_POINTS]; /*y coordinate */ + u16 pressure[FTS_MAX_POINTS]; + u8 au8_touch_event[FTS_MAX_POINTS]; /* touch event: 0 -- down; 1-- up; 2 -- contact */ + u8 au8_finger_id[FTS_MAX_POINTS]; /*touch ID */ + u8 area[FTS_MAX_POINTS]; + u8 touch_point; + u8 point_num; +}; + +struct fts_ts_data { + struct i2c_client *client; + struct input_dev *input_dev; + struct ts_event event; + const struct fts_ts_platform_data *pdata; +#if FTS_PSENSOR_EN + struct fts_psensor_platform_data *psensor_pdata; +#endif + struct work_struct touch_event_work; + struct workqueue_struct *ts_workqueue; + struct regulator *vdd; + struct regulator *vcc_i2c; + struct regulator *lab; + struct regulator *ibb; + struct regulator *panel_iovdd; + spinlock_t irq_lock; + struct mutex report_mutex; + u16 addr; + bool suspended; + u8 fw_ver[3]; + u8 fw_vendor_id; + int touchs; + int irq_disable; + char lockdown_info[128]; + +#if defined(CONFIG_FB) + struct notifier_block fb_notif; +#elif defined(CONFIG_HAS_EARLYSUSPEND) + struct early_suspend early_suspend; +#endif + struct pinctrl *ts_pinctrl; + struct pinctrl_state *pinctrl_state_active; + struct pinctrl_state *pinctrl_state_suspend; + struct pinctrl_state *pinctrl_state_release; +}; + + +#if FTS_PSENSOR_EN +struct fts_psensor_platform_data { + struct input_dev *input_psensor_dev; + struct sensors_classdev ps_cdev; + int tp_psensor_opened; + char tp_psensor_data; /* 0 near, 1 far */ + struct fts_ts_data *data; +}; + +int fts_sensor_init(struct fts_ts_data *data); +int fts_sensor_read_data(struct fts_ts_data *data); +int fts_sensor_suspend(struct fts_ts_data *data); +int fts_sensor_resume(struct fts_ts_data *data); +int fts_sensor_remove(struct fts_ts_data *data); +#endif + +/***************************************************************************** +* Static variables +*****************************************************************************/ +extern struct i2c_client *ft8006m_i2c_client; +extern struct fts_ts_data *ft8006m_wq_data; +extern struct input_dev *ft8006m_input_dev; + + +#define EACHOPTO_VENDOR 0x80 +#define OFILM_VENDOR 0x51 +#define JUNDA_VENDOR 0x85 +#define HOLITECH_VENDOR 0x82 +#define TXD_VENDOR 0xe9 +#define BOE_VENDOR 0Xda +#define FW_NO_UPGRADE 0 +#define FW_UPGRADING 1 +#define FW_UPGRADED 2 +#define TP_IC_FT8716 0x87 +#define TP_IC_FT8006M 0x80 +extern u8 ft8006m_fw_upgrade_status; +#endif /* __LINUX_FOCALTECH_CORE_H__ */ diff --git a/drivers/input/touchscreen/FT8006m/focaltech_esdcheck.c b/drivers/input/touchscreen/FT8006m/focaltech_esdcheck.c new file mode 100755 index 0000000000000..665ab7fb23f43 --- /dev/null +++ b/drivers/input/touchscreen/FT8006m/focaltech_esdcheck.c @@ -0,0 +1,458 @@ +/* + * + * FocalTech TouchScreen driver. + * + * Copyright (c) 2010-2017, FocalTech Systems, Ltd., all rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +/***************************************************************************** +* +* File Name: focaltech_esdcheck.c +* +* Author: luoguojin +* +* Created: 2016-08-03 +* +* Abstract: ESD check function +* +* Version: v1.0 +* +* Revision History: +* v1.0: +* First release. By luougojin 2016-08-03 +* v1.1: By luougojin 2017-02-15 +* 1. Add LCD_ESD_PATCH to control idc_esdcheck_lcderror +*****************************************************************************/ + +/***************************************************************************** +* Included header files +*****************************************************************************/ +#include "focaltech_core.h" + +#if FTS_ESDCHECK_EN +/***************************************************************************** +* Private constant and macro definitions using #define +*****************************************************************************/ +#define ESDCHECK_WAIT_TIME 4000 +#define LCD_ESD_PATCH 0 + +/***************************************************************************** +* Private enumerations, structures and unions using typedef +*****************************************************************************/ +struct fts_esdcheck_st { + u8 active:1; /* 1- esd check active, need check esd 0- no esd check */ + u8 suspend:1; + u8 proc_debug:1; /* apk or adb is accessing I2C */ + u8 intr:1; /* 1- Interrupt trigger */ + u8 unused:4; + u8 flow_work_hold_cnt; /* Flow Work Cnt(reg0x91) keep a same value for x times. >=5 times is ESD, need reset */ + u8 flow_work_cnt_last; /* Save Flow Work Cnt(reg0x91) value */ + u32 hardware_reset_cnt; + u32 i2c_nack_cnt; + u32 i2c_dataerror_cnt; +}; + +/***************************************************************************** +* Static variables +*****************************************************************************/ +static struct delayed_work fts_esdcheck_work; +static struct workqueue_struct *fts_esdcheck_workqueue; +static struct fts_esdcheck_st fts_esdcheck_data; + +/***************************************************************************** +* Global variable or extern global variabls/functions +*****************************************************************************/ + +/***************************************************************************** +* Static function prototypes +*****************************************************************************/ + +/***************************************************************************** +* functions body +*****************************************************************************/ +#if LCD_ESD_PATCH +/***************************************************************************** +* Name: lcd_esdcheck +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +int lcd_need_reset; +static int tp_need_recovery; /* LCD reset cause Tp reset */ +int idc_esdcheck_lcderror(void) +{ + u8 val; + int ret; + + FTS_DEBUG("[ESD]Check LCD ESD"); + if ((tp_need_recovery == 1) && (lcd_need_reset == 0)) { + tp_need_recovery = 0; + /* LCD reset, need recover TP state */ + ft8006m_tp_state_recovery(ft8006m_i2c_client); + } + + ret = ft8006m_i2c_read_reg(ft8006m_i2c_client, FTS_REG_ESD_SATURATE, &val); + if (ret < 0) { + FTS_ERROR("[ESD]: Read ESD_SATURATE(0xED) failed ret=%d!", ret); + return -EIO; + } + + if (val == 0xAA) { + /* + * 1. Set flag lcd_need_reset = 1; + * 2. LCD driver need reset(recovery) LCD and set lcd_need_reset to 0 + * 3. recover TP state + */ + FTS_INFO("LCD ESD, Execute LCD reset!"); + lcd_need_reset = 1; + tp_need_recovery = 1; + } + + return 0; +} +#endif + +/***************************************************************************** +* Name: fts_esdcheck_tp_reset +* Brief: esd check algorithm +* Input: +* Output: +* Return: +*****************************************************************************/ +static int fts_esdcheck_tp_reset(void) +{ + FTS_FUNC_ENTER(); + + fts_esdcheck_data.flow_work_hold_cnt = 0; + fts_esdcheck_data.hardware_reset_cnt++; + + ft8006m_reset_proc(200); + ft8006m_tp_state_recovery(ft8006m_i2c_client); + + FTS_FUNC_EXIT(); + return 0; +} + +/***************************************************************************** +* Name: get_chip_id +* Brief: Read Chip Id 3 times +* Input: +* Output: +* Return: 1 - Read Chip Id 3 times failed +* 0 - Read Chip Id pass +*****************************************************************************/ +static bool get_chip_id(void) +{ + int err = 0; + int i = 0; + u8 reg_value = 0; + u8 reg_addr = 0; + + for (i = 0; i < 3; i++) { + reg_addr = FTS_REG_CHIP_ID; + err = ft8006m_i2c_read(ft8006m_i2c_client, ®_addr, 1, ®_value, 1); + + if (err < 0) { + FTS_ERROR("[ESD]: Read Reg 0xA3 failed ret = %d!!", err); + fts_esdcheck_data.i2c_nack_cnt++; + } else { + if ((reg_value == ft8006m_chip_types.chip_idh) || (reg_value == 0xEF)) /* Upgrade sometimes can't detect */ + break; + else + fts_esdcheck_data.i2c_dataerror_cnt++; + } + } + + /* if can't get correct data in 3 times, then need hardware reset */ + if (i >= 3) { + FTS_ERROR("[ESD]: Read Chip id 3 times failed, need execute TP reset!!"); + return 1; + } + + return 0; +} + +/***************************************************************************** +* Name: get_flow_cnt +* Brief: Read flow cnt(0x91) +* Input: +* Output: +* Return: 1 - Reg 0x91(flow cnt) abnormal: hold a value for 5 times +* 0 - Reg 0x91(flow cnt) normal +*****************************************************************************/ +static bool get_flow_cnt(void) +{ + int err = 0; + u8 reg_value = 0; + u8 reg_addr = 0; + + reg_addr = FTS_REG_FLOW_WORK_CNT; + err = ft8006m_i2c_read(ft8006m_i2c_client, ®_addr, 1, ®_value, 1); + if (err < 0) { + FTS_ERROR("[ESD]: Read Reg 0x91 failed ret = %d!!", err); + fts_esdcheck_data.i2c_nack_cnt++; + } else { + if (reg_value == fts_esdcheck_data.flow_work_cnt_last) { + fts_esdcheck_data.flow_work_hold_cnt++; + } else { + fts_esdcheck_data.flow_work_hold_cnt = 0; + } + + fts_esdcheck_data.flow_work_cnt_last = reg_value; + } + + /* if read flow work cnt 5 times and the value are all the same, then need hardware_reset */ + if (fts_esdcheck_data.flow_work_hold_cnt >= 5) { + FTS_DEBUG("[ESD]: Flow Work Cnt(reg0x91) keep a value for 5 times, need execute TP reset!!"); + return 1; + } + + return 0; +} + +/***************************************************************************** +* Name: esdcheck_algorithm +* Brief: esd check algorithm +* Input: +* Output: +* Return: +*****************************************************************************/ +static int esdcheck_algorithm(void) +{ + int err = 0; + u8 reg_value = 0; + u8 reg_addr = 0; + bool hardware_reset = 0; + + /* 1. esdcheck is interrupt, then return */ + if (fts_esdcheck_data.intr == 1) { + FTS_INFO("[ESD]: In interrupt state, not check esd, return immediately!!"); + return 0; + } + + /* 2. check power state, if suspend, no need check esd */ + if (fts_esdcheck_data.suspend == 1) { + FTS_INFO("[ESD]: In suspend, not check esd, return immediately!!"); + /* because in suspend state, adb can be used, when upgrade FW, will active ESD check(active = 1) + * But in suspend, then will don't queue_delayed_work, when resume, don't check ESD again + */ + fts_esdcheck_data.active = 0; + return 0; + } + + /* 3. check fts_esdcheck_data.proc_debug state, if 1-proc busy, no need check esd*/ + if (fts_esdcheck_data.proc_debug == 1) { + FTS_INFO("[ESD]: In apk or adb command mode, not check esd, return immediately!!"); + return 0; + } + + /* 4. In factory mode, can't check esd */ + reg_addr = FTS_REG_WORKMODE; + err = ft8006m_i2c_read(ft8006m_i2c_client, ®_addr, 1, ®_value, 1); + if (err < 0) { + fts_esdcheck_data.i2c_nack_cnt++; + } else if ((reg_value & 0x70) == FTS_REG_WORKMODE_FACTORY_VALUE) { + FTS_INFO("[ESD]: In factory mode, not check esd, return immediately!!"); + return 0; + } + + /* 5. IDC esd check lcd default:close */ +#if LCD_ESD_PATCH + idc_esdcheck_lcderror(); +#endif + + /* 6. Get Chip ID */ + hardware_reset = get_chip_id(); + + /* 7. get Flow work cnt: 0x91 If no change for 5 times, then ESD and reset */ + if (!hardware_reset) { + + hardware_reset = get_flow_cnt(); + } + + /* 8. If need hardware reset, then handle it here */ + if (hardware_reset == 1) { + fts_esdcheck_tp_reset(); + } + + + return 0; +} + +/***************************************************************************** +* Name: fts_esdcheck_func +* Brief: fts_esdcheck_func +* Input: +* Output: +* Return: +*****************************************************************************/ +static void esdcheck_func(struct work_struct *work) +{ + FTS_FUNC_ENTER(); + + esdcheck_algorithm(); + + if (fts_esdcheck_data.suspend == 0) { + queue_delayed_work(fts_esdcheck_workqueue, &fts_esdcheck_work, msecs_to_jiffies(ESDCHECK_WAIT_TIME)); + } + + FTS_FUNC_EXIT(); +} + +/***************************************************************************** +* Name: ft8006m_esdcheck_set_intr +* Brief: interrupt flag (main used in interrupt tp report) +* Input: +* Output: +* Return: +*****************************************************************************/ +int ft8006m_esdcheck_set_intr(bool intr) +{ + /* interrupt don't add debug message */ + fts_esdcheck_data.intr = intr; + return 0; +} + +/***************************************************************************** +* Name: ft8006m_esdcheck_get_status(void) +* Brief: get current status +* Input: +* Output: +* Return: +*****************************************************************************/ +int ft8006m_esdcheck_get_status(void) +{ + /* interrupt don't add debug message */ + return fts_esdcheck_data.active; +} + +/***************************************************************************** +* Name: ft8006m_esdcheck_proc_busy +* Brief: When APK or ADB command access TP via driver, then need set proc_debug, +* then will not check ESD. +* Input: +* Output: +* Return: +*****************************************************************************/ +int ft8006m_esdcheck_proc_busy(bool proc_debug) +{ + fts_esdcheck_data.proc_debug = proc_debug; + return 0; +} + +/***************************************************************************** +* Name: ft8006m_esdcheck_switch +* Brief: FTS esd check function switch. +* Input: enable: 1 - Enable esd check +* 0 - Disable esd check +* Output: +* Return: +*****************************************************************************/ +int ft8006m_esdcheck_switch(bool enable) +{ + FTS_FUNC_ENTER(); + if (enable == 1) { + if (fts_esdcheck_data.active == 0) { + FTS_INFO("[ESD]: ESD check start!!"); + fts_esdcheck_data.active = 1; + queue_delayed_work(fts_esdcheck_workqueue, &fts_esdcheck_work, msecs_to_jiffies(ESDCHECK_WAIT_TIME)); + } + } else { + if (fts_esdcheck_data.active == 1) { + FTS_INFO("[ESD]: ESD check stop!!"); + fts_esdcheck_data.active = 0; + cancel_delayed_work_sync(&fts_esdcheck_work); + } + } + + FTS_FUNC_EXIT(); + return 0; +} + +/***************************************************************************** +* Name: ft8006m_esdcheck_suspend +* Brief: Run when tp enter into suspend +* Input: +* Output: +* Return: +*****************************************************************************/ +int ft8006m_esdcheck_suspend(void) +{ + FTS_FUNC_ENTER(); + ft8006m_esdcheck_switch(DISABLE); + fts_esdcheck_data.suspend = 1; + FTS_FUNC_EXIT(); + return 0; +} + +/***************************************************************************** +* Name: ft8006m_esdcheck_resume +* Brief: Run when tp resume +* Input: +* Output: +* Return: +*****************************************************************************/ +int ft8006m_esdcheck_resume(void) +{ + FTS_FUNC_ENTER(); + ft8006m_esdcheck_switch(ENABLE); + fts_esdcheck_data.suspend = 0; + FTS_FUNC_EXIT(); + return 0; +} + + +/***************************************************************************** +* Name: ft8006m_esdcheck_init +* Brief: Init and create a queue work to check esd +* Input: +* Output: +* Return: < 0: Fail to create esd check queue +*****************************************************************************/ +int ft8006m_esdcheck_init(void) +{ + FTS_FUNC_ENTER(); + + INIT_DELAYED_WORK(&fts_esdcheck_work, esdcheck_func); + fts_esdcheck_workqueue = create_workqueue("fts_esdcheck_wq"); + if (fts_esdcheck_workqueue == NULL) { + FTS_INFO("[ESD]: Failed to create esd work queue!!"); + } + + memset((u8 *)&fts_esdcheck_data, 0, sizeof(struct fts_esdcheck_st)); + + ft8006m_esdcheck_switch(ENABLE); + FTS_FUNC_EXIT(); + return 0; +} + +/***************************************************************************** +* Name: ft8006m_esdcheck_exit +* Brief: When FTS TP driver is removed, then call this function to destory work queue +* Input: +* Output: +* Return: +*****************************************************************************/ +int ft8006m_esdcheck_exit(void) +{ + FTS_FUNC_ENTER(); + + destroy_workqueue(fts_esdcheck_workqueue); + + FTS_FUNC_EXIT(); + return 0; +} +#endif /* FTS_ESDCHECK_EN */ + diff --git a/drivers/input/touchscreen/FT8006m/focaltech_ex_fun.c b/drivers/input/touchscreen/FT8006m/focaltech_ex_fun.c new file mode 100644 index 0000000000000..b5525f28a1ecd --- /dev/null +++ b/drivers/input/touchscreen/FT8006m/focaltech_ex_fun.c @@ -0,0 +1,1236 @@ +/* + * + * FocalTech TouchScreen driver. + * + * Copyright (c) 2010-2017, Focaltech Ltd. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +/***************************************************************************** +* +* File Name: Focaltech_ex_fun.c +* +* Author: Focaltech Driver Team +* +* Created: 2016-08-08 +* +* Abstract: +* +* Reference: +* +*****************************************************************************/ + +/***************************************************************************** +* 1.Included header files +*****************************************************************************/ +#include "focaltech_core.h" + +/***************************************************************************** +* Private constant and macro definitions using #define +*****************************************************************************/ +/*create apk debug channel*/ +#define PROC_UPGRADE 0 +#define PROC_READ_REGISTER 1 +#define PROC_WRITE_REGISTER 2 +#define PROC_AUTOCLB 4 +#define PROC_UPGRADE_INFO 5 +#define PROC_WRITE_DATA 6 +#define PROC_READ_DATA 7 +#define PROC_SET_TEST_FLAG 8 +#define PROC_SET_SLAVE_ADDR 10 +#define PROC_HW_RESET 11 +#define PROC_NAME "ftxxxx-debug" +#define WRITE_BUF_SIZE 512 +#define READ_BUF_SIZE 512 + +/***************************************************************************** +* Private enumerations, structures and unions using typedef +*****************************************************************************/ + +/***************************************************************************** +* Static variables +*****************************************************************************/ +static unsigned char proc_operate_mode = PROC_UPGRADE; +static struct proc_dir_entry *fts_proc_entry; +static struct +{ + int op; + int reg; + int value; + int result; +} g_rwreg_result; + +/***************************************************************************** +* Global variable or extern global variabls/functions +*****************************************************************************/ + +/***************************************************************************** +* Static function prototypes +*****************************************************************************/ +#if FTS_ESDCHECK_EN +static void esd_process(u8 *writebuf, int buflen, bool flag) +{ + if (flag) { + if ((writebuf[1] == 0xFC) && (writebuf[2] == 0x55) && (buflen == 0x03)) { + /* Upgrade command */ + FTS_DEBUG("[ESD]: Upgrade command(%x %x %x)!!", writebuf[0], writebuf[1], writebuf[2]); + ft8006m_esdcheck_switch(DISABLE); + } else if ((writebuf[1] == 0x00) && (writebuf[2] == 0x40) && (buflen == 0x03)) { + /* factory mode bit 4 5 6 */ + FTS_DEBUG("[ESD]: Entry factory mode(%x %x %x)!!", writebuf[0], writebuf[1], writebuf[2]); + ft8006m_esdcheck_switch(DISABLE); + } else if ((writebuf[1] == 0x00) && (writebuf[2] == 0x00) && (buflen == 0x03)) { + /* normal mode bit 4 5 6 */ + FTS_DEBUG("[ESD]: Exit factory mode(%x %x %x)!!", writebuf[0], writebuf[1], writebuf[2]); + ft8006m_esdcheck_switch(ENABLE); + } else { + ft8006m_esdcheck_proc_busy(1); + } + } else { + if ((writebuf[1] == 0x07) && (buflen == 0x02)) { + FTS_DEBUG("[ESD]: Upgrade finish-trigger reset(07)(%x %x)!!", writebuf[0], writebuf[1]); + ft8006m_esdcheck_switch(ENABLE); + } else { + ft8006m_esdcheck_proc_busy(0); + } + } +} +#endif +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0)) +/*interface of write proc*/ +/************************************************************************ +* Name: fts_debug_write +* Brief:interface of write proc +* Input: file point, data buf, data len, no use +* Output: no +* Return: data len +***********************************************************************/ +static ssize_t fts_debug_write(struct file *filp, const char __user *buff, size_t count, loff_t *ppos) +{ + unsigned char writebuf[WRITE_BUF_SIZE]; + int buflen = count; + int writelen = 0; + int ret = 0; + char tmp[25]; + + if (copy_from_user(&writebuf, buff, buflen)) { + FTS_DEBUG("[APK]: copy from user error!!"); + return -EFAULT; + } +#if FTS_ESDCHECK_EN + esd_process(writebuf, buflen, 1); +#endif + proc_operate_mode = writebuf[0]; + switch (proc_operate_mode) { + case PROC_UPGRADE: + { + char upgrade_file_path[FILE_NAME_LENGTH]; + memset(upgrade_file_path, 0, sizeof(upgrade_file_path)); + sprintf(upgrade_file_path, "%s", writebuf + 1); + upgrade_file_path[buflen-1] = '\0'; + FTS_DEBUG("%s\n", upgrade_file_path); + ft8006m_irq_disable(); +#if FTS_ESDCHECK_EN + ft8006m_esdcheck_switch(DISABLE); +#endif + if (ft8006m_updatefun_curr.upgrade_with_app_bin_file) + ret = ft8006m_updatefun_curr.upgrade_with_app_bin_file(ft8006m_i2c_client, upgrade_file_path); +#if FTS_ESDCHECK_EN + ft8006m_esdcheck_switch(ENABLE); +#endif + ft8006m_irq_enable(); + if (ret < 0) { + FTS_ERROR("[APK]: upgrade failed!!"); + } + } + break; + + case PROC_SET_TEST_FLAG: + FTS_DEBUG("[APK]: PROC_SET_TEST_FLAG = %x!!", writebuf[1]); +#if FTS_ESDCHECK_EN + if (writebuf[1] == 0) { + ft8006m_esdcheck_switch(DISABLE); + } else { + ft8006m_esdcheck_switch(ENABLE); + } +#endif + break; + case PROC_READ_REGISTER: + writelen = 1; + ret = ft8006m_i2c_write(ft8006m_i2c_client, writebuf + 1, writelen); + if (ret < 0) { + FTS_ERROR("[APK]: write iic error!!"); + } + break; + case PROC_WRITE_REGISTER: + writelen = 2; + ret = ft8006m_i2c_write(ft8006m_i2c_client, writebuf + 1, writelen); + if (ret < 0) { + FTS_ERROR("[APK]: write iic error!!"); + } + break; + case PROC_SET_SLAVE_ADDR: + + ret = ft8006m_i2c_client->addr; + FTS_DEBUG("Original i2c addr 0x%x ", ret<<1); + if (writebuf[1] != ft8006m_i2c_client->addr) { + ft8006m_i2c_client->addr = writebuf[1]; + FTS_DEBUG("Change i2c addr 0x%x to 0x%x", ret<<1, writebuf[1]<<1); + + } + break; + + case PROC_HW_RESET: + + sprintf(tmp, "%s", writebuf + 1); + tmp[buflen - 1] = '\0'; + if (strncmp(tmp, "focal_driver", 12) == 0) { + FTS_DEBUG("Begin HW Reset"); + ft8006m_reset_proc(1); + } + + break; + + case PROC_AUTOCLB: + FTS_DEBUG("[APK]: autoclb!!"); + ft8006m_ctpm_auto_clb(ft8006m_i2c_client); + break; + case PROC_READ_DATA: + case PROC_WRITE_DATA: + writelen = count - 1; + if (writelen > 0) { + ret = ft8006m_i2c_write(ft8006m_i2c_client, writebuf + 1, writelen); + if (ret < 0) { + FTS_ERROR("[APK]: write iic error!!"); + } + } + break; + default: + break; + } + +#if FTS_ESDCHECK_EN + esd_process(writebuf, buflen, 0); +#endif + + if (ret < 0) { + return ret; + } else { + return count; + } +} + +/* interface of read proc */ +/************************************************************************ +* Name: fts_debug_read +* Brief:interface of read proc +* Input: point to the data, no use, no use, read len, no use, no use +* Output: page point to data +* Return: read char number +***********************************************************************/ +static ssize_t fts_debug_read(struct file *filp, char __user *buff, size_t count, loff_t *ppos) +{ + int ret = 0; + int num_read_chars = 0; + int readlen = 0; + u8 regvalue = 0x00, regaddr = 0x00; + unsigned char buf[READ_BUF_SIZE]; + +#if FTS_ESDCHECK_EN + ft8006m_esdcheck_proc_busy(1); +#endif + switch (proc_operate_mode) { + case PROC_UPGRADE: + + regaddr = FTS_REG_FW_VER; + ret = ft8006m_i2c_read_reg(ft8006m_i2c_client, regaddr, ®value); + if (ret < 0) + num_read_chars = sprintf(buf, "%s", "get fw version failed.\n"); + else + num_read_chars = sprintf(buf, "current fw version:0x%02x\n", regvalue); + break; + case PROC_READ_REGISTER: + readlen = 1; + ret = ft8006m_i2c_read(ft8006m_i2c_client, NULL, 0, buf, readlen); + if (ret < 0) { +#if FTS_ESDCHECK_EN + ft8006m_esdcheck_proc_busy(0); +#endif + FTS_ERROR("[APK]: read iic error!!"); + return ret; + } + num_read_chars = 1; + break; + case PROC_READ_DATA: + readlen = count; + ret = ft8006m_i2c_read(ft8006m_i2c_client, NULL, 0, buf, readlen); + if (ret < 0) { +#if FTS_ESDCHECK_EN + ft8006m_esdcheck_proc_busy(0); +#endif + FTS_ERROR("[APK]: read iic error!!"); + return ret; + } + + num_read_chars = readlen; + break; + case PROC_WRITE_DATA: + break; + default: + break; + } + +#if FTS_ESDCHECK_EN + ft8006m_esdcheck_proc_busy(0); +#endif + + if (copy_to_user(buff, buf, num_read_chars)) { + FTS_ERROR("[APK]: copy to user error!!"); + return -EFAULT; + } + + return num_read_chars; +} +static const struct file_operations fts_proc_fops = { + .owner = THIS_MODULE, + .read = fts_debug_read, + .write = fts_debug_write, +}; +#else +/* interface of write proc */ +/************************************************************************ +* Name: fts_debug_write +* Brief:interface of write proc +* Input: file point, data buf, data len, no use +* Output: no +* Return: data len +***********************************************************************/ +static int fts_debug_write(struct file *filp, + const char __user *buff, unsigned long len, void *data) +{ + unsigned char writebuf[WRITE_BUF_SIZE]; + int buflen = len; + int writelen = 0; + int ret = 0; + char tmp[25]; + + if (copy_from_user(&writebuf, buff, buflen)) { + FTS_ERROR("[APK]: copy from user error!!"); + return -EFAULT; + } +#if FTS_ESDCHECK_EN + esd_process(writebuf, buflen, 1); +#endif + proc_operate_mode = writebuf[0]; + switch (proc_operate_mode) { + + case PROC_UPGRADE: + { + char upgrade_file_path[FILE_NAME_LENGTH]; + memset(upgrade_file_path, 0, sizeof(upgrade_file_path)); + sprintf(upgrade_file_path, "%s", writebuf + 1); + upgrade_file_path[buflen-1] = '\0'; + FTS_DEBUG("%s\n", upgrade_file_path); + ft8006m_irq_disable(); +#if FTS_ESDCHECK_EN + ft8006m_esdcheck_switch(DISABLE); +#endif + if (ft8006m_updatefun_curr.upgrade_with_app_bin_file) + ret = ft8006m_updatefun_curr.upgrade_with_app_bin_file(ft8006m_i2c_client, upgrade_file_path); +#if FTS_ESDCHECK_EN + ft8006m_esdcheck_switch(ENABLE); +#endif + ft8006m_irq_enable(); + if (ret < 0) { + FTS_ERROR("[APK]: upgrade failed!!"); + } + } + break; + case PROC_SET_TEST_FLAG: + FTS_DEBUG("[APK]: PROC_SET_TEST_FLAG = %x!!", writebuf[1]); +#if FTS_ESDCHECK_EN + if (writebuf[1] == 0) { + ft8006m_esdcheck_switch(DISABLE); + } else { + ft8006m_esdcheck_switch(ENABLE); + } +#endif + break; + case PROC_READ_REGISTER: + writelen = 1; + ret = ft8006m_i2c_write(ft8006m_i2c_client, writebuf + 1, writelen); + if (ret < 0) { + FTS_ERROR("[APK]: write iic error!!n"); + } + break; + case PROC_WRITE_REGISTER: + writelen = 2; + ret = ft8006m_i2c_write(ft8006m_i2c_client, writebuf + 1, writelen); + if (ret < 0) { + FTS_ERROR("[APK]: write iic error!!"); + } + break; + case PROC_SET_SLAVE_ADDR: + + ret = ft8006m_i2c_client->addr; + FTS_DEBUG("Original i2c addr 0x%x ", ret<<1); + if (writebuf[1] != ft8006m_i2c_client->addr) { + ft8006m_i2c_client->addr = writebuf[1]; + FTS_DEBUG("Change i2c addr 0x%x to 0x%x", ret<<1, writebuf[1]<<1); + + } + break; + + case PROC_HW_RESET: + + sprintf(tmp, "%s", writebuf + 1); + tmp[buflen - 1] = '\0'; + if (strncmp(tmp, "focal_driver", 12) == 0) { + FTS_DEBUG("Begin HW Reset"); + ft8006m_reset_proc(1); + } + + break; + + case PROC_AUTOCLB: + FTS_DEBUG("[APK]: autoclb!!"); + ft8006m_ctpm_auto_clb(ft8006m_i2c_client); + break; + case PROC_READ_DATA: + case PROC_WRITE_DATA: + writelen = len - 1; + if (writelen > 0) { + ret = ft8006m_i2c_write(ft8006m_i2c_client, writebuf + 1, writelen); + if (ret < 0) { + FTS_ERROR("[APK]: write iic error!!"); + } + } + break; + default: + break; + } + +#if FTS_ESDCHECK_EN + esd_process(writebuf, buflen, 0); +#endif + + if (ret < 0) { + return ret; + } else { + return len; + } +} + +/* interface of read proc */ +/************************************************************************ +* Name: fts_debug_read +* Brief:interface of read proc +* Input: point to the data, no use, no use, read len, no use, no use +* Output: page point to data +* Return: read char number +***********************************************************************/ +static int fts_debug_read(char *page, char **start, + off_t off, int count, int *eof, void *data) +{ + int ret = 0; + unsigned char buf[READ_BUF_SIZE]; + int num_read_chars = 0; + int readlen = 0; + u8 regvalue = 0x00, regaddr = 0x00; + +#if FTS_ESDCHECK_EN + ft8006m_esdcheck_proc_busy(1); +#endif + switch (proc_operate_mode) { + case PROC_UPGRADE: + + regaddr = FTS_REG_FW_VER; + ret = ft8006m_i2c_read_reg(ft8006m_i2c_client, regaddr, ®value); + if (ret < 0) + num_read_chars = sprintf(buf, "%s", "get fw version failed.\n"); + else + num_read_chars = sprintf(buf, "current fw version:0x%02x\n", regvalue); + break; + case PROC_READ_REGISTER: + readlen = 1; + ret = ft8006m_i2c_read(ft8006m_i2c_client, NULL, 0, buf, readlen); + if (ret < 0) { +#if FTS_ESDCHECK_EN + ft8006m_esdcheck_proc_busy(0); +#endif + FTS_ERROR("[APK]: read iic error!!"); + return ret; + } + num_read_chars = 1; + break; + case PROC_READ_DATA: + readlen = count; + ret = ft8006m_i2c_read(ft8006m_i2c_client, NULL, 0, buf, readlen); + if (ret < 0) { +#if FTS_ESDCHECK_EN + ft8006m_esdcheck_proc_busy(0); +#endif + FTS_ERROR("[APK]: read iic error!!"); + return ret; + } + + num_read_chars = readlen; + break; + case PROC_WRITE_DATA: + break; + default: + break; + } + +#if FTS_ESDCHECK_EN + ft8006m_esdcheck_proc_busy(0); +#endif + + memcpy(page, buf, num_read_chars); + return num_read_chars; +} +#endif +/************************************************************************ +* Name: ft8006m_create_apk_debug_channel +* Brief: create apk debug channel +* Input: i2c info +* Output: no +* Return: success =0 +***********************************************************************/ +int ft8006m_create_apk_debug_channel(struct i2c_client *client) +{ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0)) + fts_proc_entry = proc_create(PROC_NAME, 0777, NULL, &fts_proc_fops); +#else + fts_proc_entry = create_proc_entry(PROC_NAME, 0777, NULL); +#endif + if (NULL == fts_proc_entry) { + FTS_ERROR("Couldn't create proc entry!"); + return -ENOMEM; + } else { + FTS_INFO("Create proc entry success!"); + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)) + fts_proc_entry->write_proc = fts_debug_write; + fts_proc_entry->read_proc = fts_debug_read; +#endif + } + return 0; +} +/************************************************************************ +* Name: ft8006m_release_apk_debug_channel +* Brief: release apk debug channel +* Input: no +* Output: no +* Return: no +***********************************************************************/ +void ft8006m_release_apk_debug_channel(void) +{ + + if (fts_proc_entry) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0)) + proc_remove(fts_proc_entry); +#else + remove_proc_entry(PROC_NAME, NULL); +#endif +} + +/* + * fts_hw_reset interface + */ +static ssize_t fts_hw_reset_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) +{ + return -EPERM; +} +static ssize_t fts_hw_reset_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + ssize_t count = 0; + + ft8006m_reset_proc(200); + + count = snprintf(buf, PAGE_SIZE, "hw reset executed\n"); + + return count; +} + +/* + * fts_irq interface + */ +static ssize_t fts_irq_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) +{ + if (FTS_SYSFS_ECHO_ON(buf)) { + FTS_INFO("[EX-FUN]enable irq"); + ft8006m_irq_enable(); + } else if (FTS_SYSFS_ECHO_OFF(buf)) { + FTS_INFO("[EX-FUN]disable irq"); + ft8006m_irq_disable(); + } + return count; +} + +static ssize_t fts_irq_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + return -EPERM; +} + +/************************************************************************ +* Name: fts_tpfwver_show +* Brief: show tp fw vwersion +* Input: device, device attribute, char buf +* Output: no +* Return: char number +***********************************************************************/ +static ssize_t fts_tpfwver_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + ssize_t num_read_chars = 0; + u8 fwver = 0; + + mutex_lock(&ft8006m_input_dev->mutex); + +#if FTS_ESDCHECK_EN + ft8006m_esdcheck_proc_busy(1); +#endif + if (ft8006m_i2c_read_reg(ft8006m_i2c_client, FTS_REG_FW_VER, &fwver) < 0) { + num_read_chars = snprintf(buf, PAGE_SIZE, "I2c transfer error!\n"); + } +#if FTS_ESDCHECK_EN + ft8006m_esdcheck_proc_busy(0); +#endif + if (fwver == 255) + num_read_chars = snprintf(buf, PAGE_SIZE, "get tp fw version fail!\n"); + else { + num_read_chars = snprintf(buf, PAGE_SIZE, "%02X\n", fwver); + } + + mutex_unlock(&ft8006m_input_dev->mutex); + + return num_read_chars; +} +/************************************************************************ +* Name: fts_tpfwver_store +* Brief: no +* Input: device, device attribute, char buf, char count +* Output: no +* Return: EPERM +***********************************************************************/ +static ssize_t fts_tpfwver_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) +{ + /* place holder for future use */ + return -EPERM; +} + +static int fts_is_hex_char(const char ch) +{ + int result = 0; + if (ch >= '0' && ch <= '9') { + result = 1; + } else if (ch >= 'a' && ch <= 'f') { + result = 1; + } else if (ch >= 'A' && ch <= 'F') { + result = 1; + } else { + result = 0; + } + + return result; +} + +static int fts_hex_char_to_int(const char ch) +{ + int result = 0; + if (ch >= '0' && ch <= '9') { + result = (int)(ch - '0'); + } else if (ch >= 'a' && ch <= 'f') { + result = (int)(ch - 'a') + 10; + } else if (ch >= 'A' && ch <= 'F') { + result = (int)(ch - 'A') + 10; + } else { + result = -1; + } + + return result; +} + +static int fts_hex_to_str(char *hex, int iHexLen, char *ch, int *iChLen) +{ + int high = 0; + int low = 0; + int tmp = 0; + int i = 0; + int iCharLen = 0; + if (hex == NULL || ch == NULL) { + return -EPERM; + } + + FTS_DEBUG("iHexLen: %d in function:%s!!\n\n", iHexLen, __func__); + + if (iHexLen % 2 == 1) { + return -ENOENT; + } + + for (i = 0; i < iHexLen; i += 2) { + high = fts_hex_char_to_int(hex[i]); + if (high < 0) { + ch[iCharLen] = '\0'; + return -ESRCH; + } + + low = fts_hex_char_to_int(hex[i+1]); + if (low < 0) { + ch[iCharLen] = '\0'; + return -ESRCH; + } + tmp = (high << 4) + low; + ch[iCharLen++] = (char)tmp; + } + ch[iCharLen] = '\0'; + *iChLen = iCharLen; + FTS_DEBUG("iCharLen: %d, iChLen: %d in function:%s!!\n\n", iCharLen, *iChLen, __func__); + return 0; +} + +static void fts_str_to_bytes(char *bufStr, int iLen, char *uBytes, int *iBytesLen) +{ + int i = 0; + int iNumChLen = 0; + + *iBytesLen = 0; + + for (i = 0; i < iLen; i++) { + if (fts_is_hex_char(bufStr[i])) { + bufStr[iNumChLen++] = bufStr[i]; + } + } + + bufStr[iNumChLen] = '\0'; + + fts_hex_to_str(bufStr, iNumChLen, uBytes, iBytesLen); +} +/************************************************************************ +* Name: fts_tprwreg_show +* Brief: no +* Input: device, device attribute, char buf +* Output: no +* Return: EPERM +***********************************************************************/ +static ssize_t fts_tprwreg_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + int count; + + mutex_lock(&ft8006m_input_dev->mutex); + + if (!g_rwreg_result.op) { + if (g_rwreg_result.result == 0) { + count = sprintf(buf, "Read %02X: %02X\n", g_rwreg_result.reg, g_rwreg_result.value); + } else { + count = sprintf(buf, "Read %02X failed, ret: %d\n", g_rwreg_result.reg, g_rwreg_result.result); + } + } else { + if (g_rwreg_result.result == 0) { + count = sprintf(buf, "Write %02X, %02X success\n", g_rwreg_result.reg, g_rwreg_result.value); + } else { + count = sprintf(buf, "Write %02X failed, ret: %d\n", g_rwreg_result.reg, g_rwreg_result.result); + } + } + mutex_unlock(&ft8006m_input_dev->mutex); + + return count; +} +/************************************************************************ +* Name: fts_tprwreg_store +* Brief: read/write register +* Input: device, device attribute, char buf, char count +* Output: print register value +* Return: char count +***********************************************************************/ +static ssize_t fts_tprwreg_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) +{ + struct i2c_client *client = container_of(dev, struct i2c_client, dev); + ssize_t num_read_chars = 0; + int retval; + long unsigned int wmreg = 0; + u8 regaddr = 0xff, regvalue = 0xff; + u8 valbuf[5] = {0}; + + memset(valbuf, 0, sizeof(valbuf)); + mutex_lock(&ft8006m_input_dev->mutex); + num_read_chars = count - 1; + if (num_read_chars != 2) { + if (num_read_chars != 4) { + FTS_ERROR("please input 2 or 4 character"); + goto error_return; + } + } + memcpy(valbuf, buf, num_read_chars); + retval = kstrtoul(valbuf, 16, &wmreg); + fts_str_to_bytes((char *)buf, num_read_chars, valbuf, &retval); + + if (1 == retval) { + regaddr = valbuf[0]; + retval = 0; + } else if (2 == retval) { + regaddr = valbuf[0]; + regvalue = valbuf[1]; + retval = 0; + } else + retval = -1; + + if (0 != retval) { + FTS_ERROR("%s() - ERROR: Could not convert the given input to a number. The given input was: \"%s\"", __FUNCTION__, buf); + goto error_return; + } +#if FTS_ESDCHECK_EN + ft8006m_esdcheck_proc_busy(1); +#endif + if (2 == num_read_chars) { + g_rwreg_result.op = 0; + g_rwreg_result.reg = regaddr; + /*read register*/ + regaddr = wmreg; + g_rwreg_result.result = ft8006m_i2c_read_reg(client, regaddr, ®value); + if (g_rwreg_result.result < 0) { + FTS_ERROR("Could not read the register(0x%02x)", regaddr); + } else { + FTS_INFO("the register(0x%02x) is 0x%02x", regaddr, regvalue); + g_rwreg_result.value = regvalue; + g_rwreg_result.result = 0; + } + } else { + regaddr = wmreg>>8; + regvalue = wmreg; + + g_rwreg_result.op = 1; + g_rwreg_result.reg = regaddr; + g_rwreg_result.value = regvalue; + g_rwreg_result.result = ft8006m_i2c_write_reg(client, regaddr, regvalue); + if (g_rwreg_result.result < 0) { + FTS_ERROR("Could not write the register(0x%02x)", regaddr); + + } else { + FTS_INFO("Write 0x%02x into register(0x%02x) successful", regvalue, regaddr); + g_rwreg_result.result = 0; + } + } +#if FTS_ESDCHECK_EN + ft8006m_esdcheck_proc_busy(0); +#endif +error_return: + mutex_unlock(&ft8006m_input_dev->mutex); + + return count; +} +/************************************************************************ +* Name: fts_fwupdate_show +* Brief: no +* Input: device, device attribute, char buf +* Output: no +* Return: EPERM +***********************************************************************/ +static ssize_t fts_fwupdate_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + /* place holder for future use */ + return -EPERM; +} + +/************************************************************************ +* Name: fts_fwupdate_store +* Brief: upgrade from *.i +* Input: device, device attribute, char buf, char count +* Output: no +* Return: char count +***********************************************************************/ +static ssize_t fts_fwupdate_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) +{ + struct i2c_client *client = container_of(dev, struct i2c_client, dev); + + mutex_lock(&ft8006m_input_dev->mutex); + ft8006m_irq_disable(); +#if FTS_ESDCHECK_EN + ft8006m_esdcheck_switch(DISABLE); +#endif + if (ft8006m_updatefun_curr.upgrade_with_app_i_file) + ft8006m_updatefun_curr.upgrade_with_app_i_file(client); +#if FTS_AUTO_UPGRADE_FOR_LCD_CFG_EN + if (ft8006m_updatefun_curr.upgrade_with_lcd_cfg_i_file) + ft8006m_updatefun_curr.upgrade_with_lcd_cfg_i_file(client); +#endif +#if FTS_ESDCHECK_EN + ft8006m_esdcheck_switch(ENABLE); +#endif + ft8006m_irq_enable(); + mutex_unlock(&ft8006m_input_dev->mutex); + + return count; +} +/************************************************************************ +* Name: fts_fwupgradeapp_show +* Brief: no +* Input: device, device attribute, char buf +* Output: no +* Return: EPERM +***********************************************************************/ +static ssize_t fts_fwupgradeapp_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + /* place holder for future use */ + return -EPERM; +} + +/************************************************************************ +* Name: fts_fwupgradeapp_store +* Brief: upgrade from app.bin +* Input: device, device attribute, char buf, char count +* Output: no +* Return: char count +***********************************************************************/ +static ssize_t fts_fwupgradeapp_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) +{ + char fwname[FILE_NAME_LENGTH]; + struct i2c_client *client = container_of(dev, struct i2c_client, dev); + + memset(fwname, 0, sizeof(fwname)); + sprintf(fwname, "%s", buf); + fwname[count-1] = '\0'; + + mutex_lock(&ft8006m_input_dev->mutex); + ft8006m_irq_disable(); +#if FTS_ESDCHECK_EN + ft8006m_esdcheck_switch(DISABLE); +#endif + if (ft8006m_updatefun_curr.upgrade_with_app_bin_file) + ft8006m_updatefun_curr.upgrade_with_app_bin_file(client, fwname); +#if FTS_ESDCHECK_EN + ft8006m_esdcheck_switch(ENABLE); +#endif + ft8006m_irq_enable(); + mutex_unlock(&ft8006m_input_dev->mutex); + + return count; +} +/************************************************************************ +* Name: fts_driverversion_show +* Brief: no +* Input: device, device attribute, char buf +* Output: no +* Return: EPERM +***********************************************************************/ +static ssize_t fts_driverversion_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + int count; + + mutex_lock(&ft8006m_input_dev->mutex); + + count = sprintf(buf, FTS_DRIVER_VERSION "\n"); + + mutex_unlock(&ft8006m_input_dev->mutex); + + return count; +} +/************************************************************************ +* Name: fts_driverversion_store +* Brief: no +* Input: device, device attribute, char buf, char count +* Output: no +* Return: EPERM +***********************************************************************/ +static ssize_t fts_driverversion_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) +{ + /* place holder for future use */ + return -EPERM; +} + +#if FTS_ESDCHECK_EN +/************************************************************************ +* Name: fts_esdcheck_store +* Brief: no +* Input: device, device attribute, char buf, char count +* Output: no +* Return: EPERM +***********************************************************************/ +static ssize_t fts_esdcheck_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) +{ + mutex_lock(&ft8006m_input_dev->mutex); + if (FTS_SYSFS_ECHO_ON(buf)) { + FTS_DEBUG("enable esdcheck"); + ft8006m_esdcheck_switch(ENABLE); + } else if (FTS_SYSFS_ECHO_OFF(buf)) { + FTS_DEBUG("disable esdcheck"); + ft8006m_esdcheck_switch(DISABLE); + } + mutex_unlock(&ft8006m_input_dev->mutex); + + return -EPERM; +} + +/************************************************************************ +* Name: fts_esdcheck_show +* Brief: no +* Input: device, device attribute, char buf +* Output: no +* Return: EPERM +***********************************************************************/ +static ssize_t fts_esdcheck_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + int count; + + mutex_lock(&ft8006m_input_dev->mutex); + + count = sprintf(buf, "Esd check: %s\n", ft8006m_esdcheck_get_status() ? "On" : "Off"); + + mutex_unlock(&ft8006m_input_dev->mutex); + + return count; +} +#endif +/************************************************************************ +* Name: fts_module_config_show +* Brief: no +* Input: device, device attribute, char buf +* Output: no +* Return: EPERM +***********************************************************************/ +static ssize_t fts_module_config_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + int count = 0; + + mutex_lock(&ft8006m_input_dev->mutex); + + count += sprintf(buf, "FTS_CHIP_TYPE: \t\t\t%04X\n", FTS_CHIP_TYPE); + count += sprintf(buf+count, "FTS_DEBUG_EN: \t\t\t%s\n", FTS_DEBUG_EN ? "ON" : "OFF"); +#if defined(FTS_MT_PROTOCOL_B_EN) + count += sprintf(buf+count, "TS_MT_PROTOCOL_B_EN: \t\t%s\n", FTS_MT_PROTOCOL_B_EN ? "ON" : "OFF"); +#endif + count += sprintf(buf+count, "FTS_GESTURE_EN: \t\t%s\n", FTS_GESTURE_EN ? "ON" : "OFF"); + count += sprintf(buf+count, "FTS_ESDCHECK_EN: \t\t%s\n", FTS_ESDCHECK_EN ? "ON" : "OFF"); +#if defined(FTS_PSENSOR_EN) + count += sprintf(buf+count, "FTS_PSENSOR_EN: \t\t%s\n", FTS_PSENSOR_EN ? "ON" : "OFF"); +#endif + count += sprintf(buf+count, "FTS_GLOVE_EN: \t\t\t%s\n", FTS_GLOVE_EN ? "ON" : "OFF"); + count += sprintf(buf+count, "FTS_COVER_EN: \t\t%s\n", FTS_COVER_EN ? "ON" : "OFF"); + count += sprintf(buf+count, "FTS_CHARGER_EN: \t\t\t%s\n", FTS_CHARGER_EN ? "ON" : "OFF"); + + count += sprintf(buf+count, "FTS_REPORT_PRESSURE_EN: \t\t%s\n", FTS_REPORT_PRESSURE_EN ? "ON" : "OFF"); + count += sprintf(buf+count, "FTS_FORCE_TOUCH_EN: \t\t%s\n", FTS_FORCE_TOUCH_EN ? "ON" : "OFF"); + + count += sprintf(buf+count, "FTS_TEST_EN: \t\t\t%s\n", FTS_TEST_EN ? "ON" : "OFF"); + count += sprintf(buf+count, "FTS_APK_NODE_EN: \t\t%s\n", FTS_APK_NODE_EN ? "ON" : "OFF"); + count += sprintf(buf+count, "FTS_POWER_SOURCE_CUST_EN: \t%s\n", FTS_POWER_SOURCE_CUST_EN ? "ON" : "OFF"); + count += sprintf(buf+count, "FTS_AUTO_UPGRADE_EN: \t\t%s\n", FTS_AUTO_UPGRADE_EN ? "ON" : "OFF"); + + mutex_unlock(&ft8006m_input_dev->mutex); + + return count; +} +/************************************************************************ +* Name: fts_module_config_store +* Brief: no +* Input: device, device attribute, char buf, char count +* Output: no +* Return: EPERM +***********************************************************************/ +static ssize_t fts_module_config_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) +{ + /* place holder for future use */ + return -EPERM; +} + +/************************************************************************ +* Name: fts_show_log_show +* Brief: no +* Input: device, device attribute, char buf +* Output: no +* Return: EPERM +***********************************************************************/ +static ssize_t fts_show_log_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + int count; + + mutex_lock(&ft8006m_input_dev->mutex); + + count = sprintf(buf, "Log: %s\n", ft8006m_g_show_log ? "On" : "Off"); + + mutex_unlock(&ft8006m_input_dev->mutex); + + return count; +} +/************************************************************************ +* Name: fts_show_log_store +* Brief: no +* Input: device, device attribute, char buf, char count +* Output: no +* Return: EPERM +***********************************************************************/ +static ssize_t fts_show_log_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) +{ + /* place holder for future use */ + + mutex_lock(&ft8006m_input_dev->mutex); + if (FTS_SYSFS_ECHO_ON(buf)) { + FTS_DEBUG("enable show log info/error"); + ft8006m_g_show_log = 1; + } else if (FTS_SYSFS_ECHO_OFF(buf)) { + FTS_DEBUG("disable show log info/error"); + ft8006m_g_show_log = 0; + } + mutex_unlock(&ft8006m_input_dev->mutex); + return count; +} +/************************************************************************ +* Name: fts_dumpreg_store +* Brief: no +* Input: device, device attribute, char buf, char count +* Output: no +* Return: EPERM +***********************************************************************/ +static ssize_t fts_dumpreg_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) +{ + /* place holder for future use */ + return -EPERM; +} + +/************************************************************************ +* Name: fts_dumpreg_show +* Brief: no +* Input: device, device attribute, char buf +* Output: no +* Return: EPERM +***********************************************************************/ +static ssize_t fts_dumpreg_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + char tmp[256]; + int count = 0; + u8 regvalue = 0; + struct i2c_client *client; + + mutex_lock(&ft8006m_input_dev->mutex); +#if FTS_ESDCHECK_EN + ft8006m_esdcheck_proc_busy(1); +#endif + client = container_of(dev, struct i2c_client, dev); + ft8006m_i2c_read_reg(client, FTS_REG_POWER_MODE, ®value); + count += sprintf(tmp + count, "Power Mode:0x%02x\n", regvalue); + + ft8006m_i2c_read_reg(client, FTS_REG_FW_VER, ®value); + count += sprintf(tmp + count, "FW Ver:0x%02x\n", regvalue); + + ft8006m_i2c_read_reg(client, FTS_REG_VENDOR_ID, ®value); + count += sprintf(tmp + count, "Vendor ID:0x%02x\n", regvalue); + + ft8006m_i2c_read_reg(client, FTS_REG_LCD_BUSY_NUM, ®value); + count += sprintf(tmp + count, "LCD Busy Number:0x%02x\n", regvalue); + + ft8006m_i2c_read_reg(client, FTS_REG_GESTURE_EN, ®value); + count += sprintf(tmp + count, "Gesture Mode:0x%02x\n", regvalue); + + ft8006m_i2c_read_reg(client, FTS_REG_CHARGER_MODE_EN, ®value); + count += sprintf(tmp + count, "charge stat:0x%02x\n", regvalue); + + ft8006m_i2c_read_reg(client, FTS_REG_INT_CNT, ®value); + count += sprintf(tmp + count, "INT count:0x%02x\n", regvalue); + + ft8006m_i2c_read_reg(client, FTS_REG_FLOW_WORK_CNT, ®value); + count += sprintf(tmp + count, "ESD count:0x%02x\n", regvalue); +#if FTS_ESDCHECK_EN + ft8006m_esdcheck_proc_busy(0); +#endif + memcpy(buf, tmp, count); + mutex_unlock(&ft8006m_input_dev->mutex); + return count; +} + +/****************************************/ +/* sysfs */ +/* get the fw version +* example:cat fw_version +*/ +static DEVICE_ATTR(fts_fw_version, S_IRUGO|S_IWUSR, fts_tpfwver_show, fts_tpfwver_store); + +/* upgrade from *.i +* example: echo 1 > fw_update +*/ +static DEVICE_ATTR(fts_fw_update, S_IRUGO|S_IWUSR, fts_fwupdate_show, fts_fwupdate_store); +/* read and write register +* read example: echo 88 > rw_reg ---read register 0x88 +* write example:echo 8807 > rw_reg ---write 0x07 into register 0x88 +* +* note:the number of input must be 2 or 4.if it not enough,please fill in the 0. +*/ +static DEVICE_ATTR(fts_rw_reg, S_IRUGO|S_IWUSR, fts_tprwreg_show, fts_tprwreg_store); +/* upgrade from app.bin +* example:echo "*_app.bin" > upgrade_app +*/ +static DEVICE_ATTR(fts_upgrade_app, S_IRUGO|S_IWUSR, fts_fwupgradeapp_show, fts_fwupgradeapp_store); +static DEVICE_ATTR(fts_driver_version, S_IRUGO|S_IWUSR, fts_driverversion_show, fts_driverversion_store); +static DEVICE_ATTR(fts_dump_reg, S_IRUGO|S_IWUSR, fts_dumpreg_show, fts_dumpreg_store); +static DEVICE_ATTR(fts_show_log, S_IRUGO|S_IWUSR, fts_show_log_show, fts_show_log_store); +static DEVICE_ATTR(fts_module_config, S_IRUGO|S_IWUSR, fts_module_config_show, fts_module_config_store); +static DEVICE_ATTR(fts_hw_reset, S_IRUGO|S_IWUSR, fts_hw_reset_show, fts_hw_reset_store); +static DEVICE_ATTR(fts_irq, S_IRUGO|S_IWUSR, fts_irq_show, fts_irq_store); + +#if FTS_ESDCHECK_EN +static DEVICE_ATTR(fts_esd_check, S_IRUGO|S_IWUSR, fts_esdcheck_show, fts_esdcheck_store); +#endif + +/* add your attr in here*/ +static struct attribute *fts_attributes[] = { + &dev_attr_fts_fw_version.attr, + &dev_attr_fts_fw_update.attr, + &dev_attr_fts_rw_reg.attr, + &dev_attr_fts_dump_reg.attr, + &dev_attr_fts_upgrade_app.attr, + &dev_attr_fts_driver_version.attr, + &dev_attr_fts_show_log.attr, + &dev_attr_fts_module_config.attr, + &dev_attr_fts_hw_reset.attr, + &dev_attr_fts_irq.attr, +#if FTS_ESDCHECK_EN + &dev_attr_fts_esd_check.attr, +#endif + NULL +}; + +static struct attribute_group fts_attribute_group = { + .attrs = fts_attributes +}; + +/************************************************************************ +* Name: ft8006m_create_sysfs +* Brief: create sysfs for debug +* Input: i2c info +* Output: no +* Return: success =0 +***********************************************************************/ +int ft8006m_create_sysfs(struct i2c_client *client) +{ + int err; + err = sysfs_create_group(&client->dev.kobj, &fts_attribute_group); + if (0 != err) { + FTS_ERROR("[EX]: sysfs_create_group() failed!!"); + sysfs_remove_group(&client->dev.kobj, &fts_attribute_group); + return -EIO; + } else { + FTS_INFO("[EX]: sysfs_create_group() succeeded!!"); + } + return err; +} +/************************************************************************ +* Name: ft8006m_remove_sysfs +* Brief: remove sys +* Input: i2c info +* Output: no +* Return: no +***********************************************************************/ +int ft8006m_remove_sysfs(struct i2c_client *client) +{ + sysfs_remove_group(&client->dev.kobj, &fts_attribute_group); + return 0; +} diff --git a/drivers/input/touchscreen/FT8006m/focaltech_ex_mode.c b/drivers/input/touchscreen/FT8006m/focaltech_ex_mode.c new file mode 100755 index 0000000000000..43327f7fd371d --- /dev/null +++ b/drivers/input/touchscreen/FT8006m/focaltech_ex_mode.c @@ -0,0 +1,347 @@ +/* + * + * FocalTech ftxxxx TouchScreen driver. + * + * Copyright (c) 2010-2017, Focaltech Ltd. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +/***************************************************************************** +* +* File Name: focaltech_ex_mode.c +* +* Author: Liu WeiGuang +* +* Created: 2016-08-31 +* +* Abstract: +* +* Reference: +* +*****************************************************************************/ + +/***************************************************************************** +* 1.Included header files +*****************************************************************************/ +#include "focaltech_core.h" + +/***************************************************************************** +* 2.Private constant and macro definitions using #define +*****************************************************************************/ + +/***************************************************************************** +* 3.Private enumerations, structures and unions using typedef +*****************************************************************************/ +struct fts_mode_flag { + int fts_glove_mode_flag; + int fts_cover_mode_flag; + int fts_charger_mode_flag; +}; + +struct fts_mode_flag g_ft8006m_mode_flag; + +/***************************************************************************** +* 4.Static variables +*****************************************************************************/ + +/***************************************************************************** +* 5.Global variable or extern global variabls/functions +*****************************************************************************/ +int ft8006m_enter_glove_mode(struct i2c_client *client, int mode); +int ft8006m_glove_init(struct i2c_client *client); +int ft8006m_glove_exit(struct i2c_client *client); + +int ft8006m_enter_cover_mode(struct i2c_client *client, int mode); +int ft8006m_cover_init(struct i2c_client *client); +int ft8006m_cover_exit(struct i2c_client *client); + +int ft8006m_enter_charger_mode(struct i2c_client *client, int mode); +int ft8006m_charger_init(struct i2c_client *client); +int ft8006m_charger_exit(struct i2c_client *client); + +/***************************************************************************** +* 6.Static function prototypes +*******************************************************************************/ + +#if FTS_GLOVE_EN +static ssize_t fts_touch_glove_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + return snprintf(buf, PAGE_SIZE, "Glove: %s\n", g_ft8006m_mode_flag.fts_glove_mode_flag ? "On" : "Off"); +} + +static ssize_t fts_touch_glove_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) +{ + int ret; + + if (FTS_SYSFS_ECHO_ON(buf)) { + if (!g_ft8006m_mode_flag.fts_glove_mode_flag) { + FTS_INFO("[Mode]enter glove mode"); + ret = ft8006m_enter_glove_mode(ft8006m_i2c_client, true); + if (ret >= 0) { + g_ft8006m_mode_flag.fts_glove_mode_flag = true; + } + } + } else if (FTS_SYSFS_ECHO_OFF(buf)) { + if (g_ft8006m_mode_flag.fts_glove_mode_flag) { + FTS_INFO("[Mode]exit glove mode"); + ret = ft8006m_enter_glove_mode(ft8006m_i2c_client, false); + if (ret >= 0) { + g_ft8006m_mode_flag.fts_glove_mode_flag = false; + } + } + } + FTS_INFO("[Mode]glove mode status: %d", g_ft8006m_mode_flag.fts_glove_mode_flag); + return count; +} + +/************************************************************************ +* Name: ft8006m_enter_glove_mode +* Brief: change glove mode +* Input: glove mode +* Output: no +* Return: success >=0, otherwise failed +***********************************************************************/ +int ft8006m_enter_glove_mode(struct i2c_client *client, int mode) +{ + int ret = 0; + static u8 buf_addr[2] = { 0 }; + static u8 buf_value[2] = { 0 }; + buf_addr[0] = FTS_REG_GLOVE_MODE_EN; + + if (mode) + buf_value[0] = 0x01; + else + buf_value[0] = 0x00; + + ret = ft8006m_i2c_write_reg(client, buf_addr[0], buf_value[0]); + if (ret < 0) { + FTS_ERROR("[Mode]ft8006m_enter_glove_mode write value fail"); + } + + return ret ; + +} + +/* read and write glove mode +* read example: cat fts_touch_glove_mode---read glove mode +* write example:echo 01 > fts_touch_glove_mode ---write glove mode to 01 +* +*/ +static DEVICE_ATTR (fts_glove_mode, S_IRUGO|S_IWUSR, fts_touch_glove_show, fts_touch_glove_store); + +#endif + +#if FTS_COVER_EN +static ssize_t fts_touch_cover_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + return snprintf(buf, PAGE_SIZE, "Cover: %s\n", g_ft8006m_mode_flag.fts_cover_mode_flag ? "On" : "Off"); +} + +static ssize_t fts_touch_cover_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) +{ + int ret; + + if (FTS_SYSFS_ECHO_ON(buf)) { + if (!g_ft8006m_mode_flag.fts_cover_mode_flag) { + FTS_INFO("[Mode]enter cover mode"); + ret = ft8006m_enter_cover_mode(ft8006m_i2c_client, true); + if (ret >= 0) { + g_ft8006m_mode_flag.fts_cover_mode_flag = true; + } + } + } else if (FTS_SYSFS_ECHO_OFF(buf)) { + if (g_ft8006m_mode_flag.fts_cover_mode_flag) { + FTS_INFO("[Mode]exit cover mode"); + ret = ft8006m_enter_cover_mode(ft8006m_i2c_client, false); + if (ret >= 0) { + g_ft8006m_mode_flag.fts_cover_mode_flag = false; + } + } + } + FTS_INFO("[Mode]cover mode status: %d", g_ft8006m_mode_flag.fts_cover_mode_flag); + return count; +} + +/************************************************************************ +* Name: ft8006m_enter_cover_mode +* Brief: change cover mode +* Input: cover mode +* Output: no +* Return: success >=0, otherwise failed +***********************************************************************/ +int ft8006m_enter_cover_mode(struct i2c_client *client, int mode) +{ + int ret = 0; + static u8 buf_addr[2] = { 0 }; + static u8 buf_value[2] = { 0 }; + buf_addr[0] = FTS_REG_COVER_MODE_EN; + + if (mode) + buf_value[0] = 0x01; + else + buf_value[0] = 0x00; + + ret = ft8006m_i2c_write_reg(client, buf_addr[0], buf_value[0]); + if (ret < 0) { + FTS_ERROR("[Mode] ft8006m_enter_cover_mode write value fail \n"); + } + + return ret ; + +} + +/* read and write cover mode +* read example: cat fts_touch_cover_mode---read cover mode +* write example:echo 01 > fts_touch_cover_mode ---write cover mode to 01 +* +*/ +static DEVICE_ATTR (fts_cover_mode, S_IRUGO|S_IWUSR, fts_touch_cover_show, fts_touch_cover_store); + +#endif + +#if FTS_CHARGER_EN +static ssize_t fts_touch_charger_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + return snprintf(buf, PAGE_SIZE, "Charger: %s\n", g_ft8006m_mode_flag.fts_charger_mode_flag ? "On" : "Off"); +} + +static ssize_t fts_touch_charger_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) +{ + int ret; + + if (FTS_SYSFS_ECHO_ON(buf)) { + if (!g_ft8006m_mode_flag.fts_charger_mode_flag) { + FTS_INFO("[Mode]enter charger mode"); + ret = ft8006m_enter_charger_mode(ft8006m_i2c_client, true); + if (ret >= 0) { + g_ft8006m_mode_flag.fts_charger_mode_flag = true; + } + } + } else if (FTS_SYSFS_ECHO_OFF(buf)) { + if (g_ft8006m_mode_flag.fts_charger_mode_flag) { + FTS_INFO("[Mode]exit charger mode"); + ret = ft8006m_enter_charger_mode(ft8006m_i2c_client, false); + if (ret >= 0) { + g_ft8006m_mode_flag.fts_charger_mode_flag = false; + } + } + } + FTS_INFO("[Mode]charger mode status: %d", g_ft8006m_mode_flag.fts_charger_mode_flag); + return count; +} + +/************************************************************************ +* Name: ft8006m_enter_charger_mode +* Brief: change charger mode +* Input: charger mode +* Output: no +* Return: success >=0, otherwise failed +***********************************************************************/ +int ft8006m_enter_charger_mode(struct i2c_client *client, int mode) +{ + int ret = 0; + static u8 buf_addr[2] = { 0 }; + static u8 buf_value[2] = { 0 }; + buf_addr[0] = FTS_REG_CHARGER_MODE_EN; + + if (mode) + buf_value[0] = 0x01; + else + buf_value[0] = 0x00; + + ret = ft8006m_i2c_write_reg(client, buf_addr[0], buf_value[0]); + if (ret < 0) { + FTS_DEBUG("[Mode]ft8006m_enter_charger_mode write value fail"); + } + + return ret ; + +} + +/* read and write charger mode +* read example: cat fts_touch_charger_mode---read charger mode +* write example:echo 01 > fts_touch_charger_mode ---write charger mode to 01 +* +*/ +static DEVICE_ATTR (fts_charger_mode, S_IRUGO|S_IWUSR, fts_touch_charger_show, fts_touch_charger_store); + +#endif + +static struct attribute *fts_touch_mode_attrs[] = { +#if FTS_GLOVE_EN + &dev_attr_fts_glove_mode.attr, +#endif + +#if FTS_COVER_EN + &dev_attr_fts_cover_mode.attr, +#endif + +#if FTS_CHARGER_EN + &dev_attr_fts_charger_mode.attr, +#endif + + NULL, +}; + +static struct attribute_group fts_touch_mode_group = { + .attrs = fts_touch_mode_attrs, +}; + +int ft8006m_ex_mode_init(struct i2c_client *client) +{ + int err = 0; + + g_ft8006m_mode_flag.fts_glove_mode_flag = false; + g_ft8006m_mode_flag.fts_cover_mode_flag = false; + g_ft8006m_mode_flag.fts_charger_mode_flag = false; + + err = sysfs_create_group(&client->dev.kobj, &fts_touch_mode_group); + if (0 != err) { + FTS_ERROR("[Mode]create sysfs failed."); + sysfs_remove_group(&client->dev.kobj, &fts_touch_mode_group); + return -EIO; + } else { + FTS_DEBUG("[Mode]create sysfs succeeded"); + } + + return err; + +} + +int ft8006m_ex_mode_exit(struct i2c_client *client) +{ + sysfs_remove_group(&client->dev.kobj, &fts_touch_mode_group); + return 0; +} + +int ft8006m_ex_mode_recovery(struct i2c_client *client) +{ + int ret = 0; +#if FTS_GLOVE_EN + if (g_ft8006m_mode_flag.fts_glove_mode_flag) + ret = ft8006m_enter_glove_mode(client, true); +#endif + +#if FTS_COVER_EN + if (g_ft8006m_mode_flag.fts_cover_mode_flag) + ret = ft8006m_enter_cover_mode(client, true); +#endif + +#if FTS_CHARGER_EN + if (g_ft8006m_mode_flag.fts_charger_mode_flag) + ret = ft8006m_enter_charger_mode(client, true); +#endif + + return ret; +} + diff --git a/drivers/input/touchscreen/FT8006m/focaltech_flash.c b/drivers/input/touchscreen/FT8006m/focaltech_flash.c new file mode 100644 index 0000000000000..b1f697ef44730 --- /dev/null +++ b/drivers/input/touchscreen/FT8006m/focaltech_flash.c @@ -0,0 +1,808 @@ +/* + * + * FocalTech fts TouchScreen driver. + * + * Copyright (c) 2010-2017, Focaltech Ltd. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +/***************************************************************************** +* +* File Name: focaltech_flash.c +* +* Author: fupeipei +* +* Created: 2016-08-08 +* +* Abstract: +* +* Reference: +* +*****************************************************************************/ + +/***************************************************************************** +* 1.Included header files +*****************************************************************************/ +#include "focaltech_core.h" +#include "focaltech_flash.h" + +/***************************************************************************** +* Static variables +*****************************************************************************/ +struct ft_chip_t ft8006m_chip_types; +u8 ft8006m_fw_upgrade_status = FW_NO_UPGRADE; +/***************************************************************************** +* Global variable or extern global variabls/functions +*****************************************************************************/ +/* Upgrade FW/PRAMBOOT/LCD CFG */ +u8 FT8006M_CTPM_FW[] = { +#include FTS_UPGRADE_FW_APP +}; + +u8 FT8006M_CTPM_FW_WHITE[] = { +#include FTS_UPGRADE_FW_ALL_WHITE +}; + +u8 FT8006M_CTPM_FW_BLACK[] = { +#include FTS_UPGRADE_FW_ALL_BLACK +}; +#if (FTS_GET_VENDOR_ID_NUM >= 2) +u8 FT8006M_FT8006M_CTPM_FW2[] = { +#include FTS_UPGRADE_FW2_APP +}; +#endif + +#if (FTS_GET_VENDOR_ID_NUM >= 3) +u8 FT8006M_FT8006M_CTPM_FW3[] = { +#include FTS_UPGRADE_FW3_APP +}; +#endif + +u8 ft8006m_aucFW_PRAM_BOOT[] = { +#ifdef FTS_UPGRADE_PRAMBOOT +#include FTS_UPGRADE_PRAMBOOT +#endif +}; + +struct fts_upgrade_fun ft8006m_updatefun_curr; +struct workqueue_struct *ft8006m_touch_wq; +struct work_struct ft8006m_fw_update_work; +u8 *ft8006m_g_fw_file; +int ft8006m_g_fw_len; +/***************************************************************************** +* Static function prototypes +*****************************************************************************/ + +/************************************************************************ +* Name: ft8006m_ctpm_upgrade_delay +* Brief: 0 +* Input: 0 +* Output: 0 +* Return: 0 +***********************************************************************/ +void ft8006m_ctpm_upgrade_delay(u32 i) +{ + do { + i--; + } while (i > 0); +} + +/************************************************************************ +* Name: ft8006m_ctpm_i2c_hid2std +* Brief: HID to I2C +* Input: i2c info +* Output: no +* Return: fail =0 +***********************************************************************/ +int ft8006m_ctpm_i2c_hid2std(struct i2c_client *client) +{ +#if (FTS_CHIP_IDC) + return 0; +#else + u8 buf[5] = {0}; + int bRet = 0; + + buf[0] = 0xeb; + buf[1] = 0xaa; + buf[2] = 0x09; + bRet = ft8006m_i2c_write(client, buf, 3); + msleep(10); + buf[0] = buf[1] = buf[2] = 0; + ft8006m_i2c_read(client, buf, 0, buf, 3); + + if ((0xeb == buf[0]) && (0xaa == buf[1]) && (0x08 == buf[2])) { + FTS_DEBUG("hidi2c change to stdi2c successful!!"); + bRet = 1; + } else { + FTS_ERROR("hidi2c change to stdi2c error!!"); + bRet = 0; + } + + return bRet; +#endif +} + +/************************************************************************ +* Name: fts_get_ft8006m_chip_types +* Brief: get correct chip information +* Input: +* Output: +* Return: +***********************************************************************/ +void fts_get_ft8006m_chip_types(void) +{ + struct ft_chip_t ctype[] = FTS_CHIP_TYPE_MAPPING; + int ic_type = 0; + + if (sizeof(ctype) != sizeof(struct ft_chip_t)) /* only one array */ + ic_type = IC_SERIALS - 1; + + ft8006m_chip_types = ctype[ic_type]; + + FTS_INFO("CHIP TYPE ID = 0x%02x%02x", ft8006m_chip_types.chip_idh, ft8006m_chip_types.chip_idl); +} + +/************************************************************************ +* Name: ft8006m_ctpm_get_upgrade_array +* Brief: decide which ic +* Input: no +* Output: get ic info in fts_updateinfo_curr +* Return: no +***********************************************************************/ +void ft8006m_ctpm_get_upgrade_array(void) +{ + + FTS_FUNC_ENTER(); + + fts_get_ft8006m_chip_types(); + + ft8006m_ctpm_i2c_hid2std(ft8006m_i2c_client); + + /* Get functin pointer */ + memcpy(&ft8006m_updatefun_curr, &ft8006m_updatefun, sizeof(struct fts_upgrade_fun)); + + FTS_FUNC_EXIT(); +} + +/************************************************************************ +* Name: ft8006m_ctpm_rom_or_pram_reset +* Brief: RST CMD(07), reset to romboot(maybe->bootloader) +* Input: +* Output: +* Return: +***********************************************************************/ +void ft8006m_ctpm_rom_or_pram_reset(struct i2c_client *client) +{ + u8 rst_cmd = FTS_REG_RESET_FW; + + FTS_INFO("[UPGRADE]******Reset to romboot/bootloader******"); + ft8006m_i2c_write(client, &rst_cmd, 1); + /* The delay can't be changed */ + msleep(300); +} + +/************************************************************************ +* Name: ft8006m_ctpm_auto_clb +* Brief: auto calibration +* Input: i2c info +* Output: no +* Return: 0 +***********************************************************************/ +int ft8006m_ctpm_auto_clb(struct i2c_client *client) +{ +#if FTS_AUTO_CLB_EN + u8 uc_temp = 0x00; + u8 i = 0; + + /*start auto CLB */ + msleep(200); + + ft8006m_i2c_write_reg(client, 0, FTS_REG_WORKMODE_FACTORY_VALUE); + /*make sure already enter factory mode */ + msleep(100); + /*write command to start calibration */ + ft8006m_i2c_write_reg(client, 2, 0x4); + msleep(300); + if ((ft8006m_chip_types.chip_idh == 0x11) || (ft8006m_chip_types.chip_idh == 0x12) || (ft8006m_chip_types.chip_idh == 0x13) || (ft8006m_chip_types.chip_idh == 0x14)) { + for (i = 0; i < 100; i++) { + ft8006m_i2c_read_reg(client, 0x02, &uc_temp); + if (0x02 == uc_temp || + 0xFF == uc_temp) { + break; + } + msleep(20); + } + } else { + for (i = 0; i < 100; i++) { + ft8006m_i2c_read_reg(client, 0, &uc_temp); + if (0x0 == ((uc_temp&0x70)>>4)) { + break; + } + msleep(20); + } + } + ft8006m_i2c_write_reg(client, 0, 0x40); + msleep(200); + ft8006m_i2c_write_reg(client, 2, 0x5); + msleep(300); + ft8006m_i2c_write_reg(client, 0, FTS_REG_WORKMODE_WORK_VALUE); + msleep(300); +#endif + + return 0; +} + +/************************************************************************ +* Name: ft8006m_GetFirmwareSize +* Brief: get file size +* Input: file name +* Output: no +* Return: file size +***********************************************************************/ +int ft8006m_GetFirmwareSize(char *firmware_name) +{ + struct file *pfile = NULL; + struct inode *inode; + unsigned long magic; + off_t fsize = 0; + char filepath[FILE_NAME_LENGTH]; + + memset(filepath, 0, sizeof(filepath)); + sprintf(filepath, "%s%s", FTXXXX_INI_FILEPATH_CONFIG, firmware_name); + if (NULL == pfile) { + pfile = filp_open(filepath, O_RDONLY, 0); + } + if (IS_ERR(pfile)) { + FTS_ERROR("error occured while opening file %s", filepath); + return -EIO; + } + inode = pfile->f_dentry->d_inode; + magic = inode->i_sb->s_magic; + fsize = inode->i_size; + filp_close(pfile, NULL); + return fsize; +} + +/************************************************************************ +* Name: ft8006m_ReadFirmware +* Brief: read firmware buf for .bin file. +* Input: file name, data buf +* Output: data buf +* Return: 0 +***********************************************************************/ +int ft8006m_ReadFirmware(char *firmware_name, u8 *firmware_buf) +{ + struct file *pfile = NULL; + struct inode *inode; + unsigned long magic; + off_t fsize; + char filepath[FILE_NAME_LENGTH]; + loff_t pos; + mm_segment_t old_fs; + + memset(filepath, 0, sizeof(filepath)); + sprintf(filepath, "%s%s", FTXXXX_INI_FILEPATH_CONFIG, firmware_name); + if (NULL == pfile) { + pfile = filp_open(filepath, O_RDONLY, 0); + } + if (IS_ERR(pfile)) { + FTS_ERROR("[UPGRADE] Error occured while opening file %s.\n", filepath); + return -EIO; + } + inode = pfile->f_dentry->d_inode; + magic = inode->i_sb->s_magic; + fsize = inode->i_size; + old_fs = get_fs(); + set_fs(KERNEL_DS); + pos = 0; + vfs_read(pfile, firmware_buf, fsize, &pos); + filp_close(pfile, NULL); + set_fs(old_fs); + return 0; +} + +/************************************************************************ +* Name: ft8006m_getsize +* Brief: Get different file's size +* Input: +* Output: +* Return: file's size +***********************************************************************/ +u32 ft8006m_getsize(u8 fw_type) +{ + int fw_len = 0; + + if (fw_type == FW_SIZE) + fw_len = sizeof(FT8006M_CTPM_FW_WHITE); +#if (FTS_GET_VENDOR_ID_NUM >= 2) + else if (fw_type == FW2_SIZE) + fw_len = sizeof(FT8006M_FT8006M_CTPM_FW2); +#endif +#if (FTS_GET_VENDOR_ID_NUM >= 3) + else if (fw_type == FW3_SIZE) + fw_len = sizeof(FT8006M_FT8006M_CTPM_FW3); +#endif +#if FTS_CHIP_IDC + else if (fw_type == PRAMBOOT_SIZE) + fw_len = sizeof(ft8006m_aucFW_PRAM_BOOT); +#endif + + return fw_len; +} + +/************************************************************************ +* Name: ft8006m_ctpm_get_pram_or_rom_id +* Brief: 0 +* Input: 0 +* Output: 0 +* Return: 0 +***********************************************************************/ +enum FW_STATUS ft8006m_ctpm_get_pram_or_rom_id(struct i2c_client *client) +{ + u8 buf[4]; + u8 reg_val[2] = {0}; + enum FW_STATUS inRomBoot = FTS_RUN_IN_ERROR; + + ft8006m_ctpm_i2c_hid2std(client); + + /*Enter upgrade mode*/ + /*send 0x55 in time windows*/ + buf[0] = FTS_UPGRADE_55; + buf[1] = FTS_UPGRADE_AA; + ft8006m_i2c_write(client, buf, 2); + + msleep(20); + + buf[0] = 0x90; + buf[1] = buf[2] = buf[3] = 0x00; + ft8006m_i2c_read(client, buf, 4, reg_val, 2); + + FTS_DEBUG("[UPGRADE] Read ROM/PRAM/Bootloader id:0x%02x%02x", reg_val[0], reg_val[1]); + if ((reg_val[0] == 0x00) || (reg_val[0] == 0xFF)) { + inRomBoot = FTS_RUN_IN_ERROR; + } else if (reg_val[0] == ft8006m_chip_types.pramboot_idh && reg_val[1] == ft8006m_chip_types.pramboot_idl) { + inRomBoot = FTS_RUN_IN_PRAM; + } else if (reg_val[0] == ft8006m_chip_types.rom_idh && reg_val[1] == ft8006m_chip_types.rom_idl) { + inRomBoot = FTS_RUN_IN_ROM; + } else if (reg_val[0] == ft8006m_chip_types.bootloader_idh && reg_val[1] == ft8006m_chip_types.bootloader_idl) { + inRomBoot = FTS_RUN_IN_BOOTLOADER; + } + + return inRomBoot; +} + +/************************************************************************ +* Name: fts_ctpm_get_app_file +* Brief: get app file by Vendor ID +* Input: +* Output: +* Return: <0: vendor id not correct,not upgrade +***********************************************************************/ +int ft8006m_ctpm_get_i_file(struct i2c_client *client, int fw_valid) +{ + int ret; + + if (ft8006m_updatefun_curr.get_i_file) + ret = ft8006m_updatefun_curr.get_i_file(client, fw_valid); + else + ret = -EIO; + + return ret; +} + +/************************************************************************ +* Name: ft8006m_ctpm_get_app_ver +* Brief: get app file version +* Input: +* Output: +* Return: fw version +***********************************************************************/ +int ft8006m_ctpm_get_app_ver(void) +{ + int i_ret = 0; + + if (ft8006m_updatefun_curr.get_app_i_file_ver) + i_ret = ft8006m_updatefun_curr.get_app_i_file_ver(); + + return i_ret; +} + +/************************************************************************ +* Name: ft8006m_ctpm_fw_upgrade +* Brief: fw upgrade entry funciotn +* Input: +* Output: +* Return: 0 - upgrade successfully +* <0 - upgrade failed +***********************************************************************/ +int ft8006m_ctpm_fw_upgrade(struct i2c_client *client) +{ + int i_ret = 0; + + if (ft8006m_updatefun_curr.upgrade_with_app_i_file) + i_ret = ft8006m_updatefun_curr.upgrade_with_app_i_file(client); + + return i_ret; +} + +/************************************************************************ +* Name: ft8006m_ctpm_fw_upgrade +* Brief: fw upgrade entry funciotn +* Input: +* Output: +* Return: 0 - upgrade successfully +* <0 - upgrade failed +***********************************************************************/ +int ft8006m_ctpm_lcd_cfg_upgrade(struct i2c_client *client) +{ + int i_ret = 0; + + if (ft8006m_updatefun_curr.upgrade_with_lcd_cfg_i_file) + i_ret = ft8006m_updatefun_curr.upgrade_with_lcd_cfg_i_file(client); + + return i_ret; +} + +bool fts_check_fw_valid(struct i2c_client *client) +{ + int i = 0; + u8 chip_id = 0; + + for (i = 0; i < 3; i++) { + ft8006m_i2c_read_reg(client, FTS_REG_CHIP_ID, &chip_id); + if (chip_id == ft8006m_chip_types.chip_idh) + return true; + } + + return false; +} + +#if (!(FTS_UPGRADE_STRESS_TEST)) +/************************************************************************ +* Name: fts_ctpm_check_fw_status +* Brief: Check App is valid or not +* Input: +* Output: +* Return: -EIO - I2C communication error +* FTS_RUN_IN_APP - APP valid +* 0 - APP invalid +***********************************************************************/ +static int fts_ctpm_check_fw_status(struct i2c_client *client) +{ + u8 chip_id1 = 0; + u8 chip_id2 = 0; + int fw_status = FTS_RUN_IN_ERROR; + int i = 0; + int ret = 0; + int i2c_noack_retry = 0; + + for (i = 0; i < 5; i++) { + ret = ft8006m_i2c_read_reg(client, FTS_REG_CHIP_ID, &chip_id1); + if (ret < 0) { + i2c_noack_retry++; + continue; + } + ret = ft8006m_i2c_read_reg(client, FTS_REG_CHIP_ID2, &chip_id2); + if (ret < 0) { + i2c_noack_retry++; + continue; + } + + if ((chip_id1 == ft8006m_chip_types.chip_idh) +#if FTS_CHIP_IDC + && (chip_id2 == ft8006m_chip_types.chip_idl) +#endif + ) { + fw_status = FTS_RUN_IN_APP; + break; + } + } + + FTS_DEBUG("[UPGRADE]: chip_id = %02x%02x, ft8006m_chip_types.chip_idh = %02x%02x", + chip_id1, chip_id2, ft8006m_chip_types.chip_idh, ft8006m_chip_types.chip_idl); + + /* I2C No ACK 5 times, then return -EIO */ + if (i2c_noack_retry >= 5) + return -EIO; + + /* I2C communication ok, but not get correct ID, need check pram/rom/bootloader */ + if (i >= 5) { + fw_status = ft8006m_ctpm_get_pram_or_rom_id(client); + } + + return fw_status; +} + +/************************************************************************ +* Name: fts_ctpm_check_fw_ver +* Brief: Check vendor id is valid or not +* Input: +* Output: +* Return: 1 - vendor id valid +* 0 - vendor id invalid +***********************************************************************/ +static int fts_ctpm_check_fw_ver(struct i2c_client *client) +{ + u8 uc_tp_fm_ver; + u8 uc_host_fm_ver = 0; + + ft8006m_i2c_read_reg(client, FTS_REG_FW_VER, &uc_tp_fm_ver); + uc_host_fm_ver = ft8006m_ctpm_get_app_ver(); + + FTS_DEBUG("[UPGRADE]: uc_tp_fm_ver = 0x%x, uc_host_fm_ver = 0x%x!!", uc_tp_fm_ver, uc_host_fm_ver); + if (uc_tp_fm_ver < uc_host_fm_ver) { + return 1; + } else { + return 0; + } +} + +/************************************************************************ +* Name: fts_ctpm_check_need_upgrade +* Brief: +* Input: +* Output: +* Return: 1 - Need upgrade +* 0 - No upgrade +***********************************************************************/ +static int fts_ctpm_check_need_upgrade(struct i2c_client *client) +{ + int fw_status = 0; + int bUpgradeFlag = false; + + FTS_FUNC_ENTER(); + + /* 1. veriry FW APP is valid or not */ + fw_status = fts_ctpm_check_fw_status(client); + FTS_DEBUG("[UPGRADE]: fw_status = %d!!", fw_status); + if (fw_status < 0) { + /* I2C no ACK, return immediately */ + FTS_ERROR("[UPGRADE]******I2C NO ACK,exit upgrade******"); + return -EIO; + } else if (fw_status == FTS_RUN_IN_ERROR) { + FTS_ERROR("[UPGRADE]******IC Type Fail******"); + } else if (fw_status == FTS_RUN_IN_APP) { + FTS_INFO("[UPGRADE]**********FW APP valid**********"); + + if (ft8006m_ctpm_get_i_file(client, 1) != 0) { + FTS_DEBUG("[UPGRADE]******Get upgrade file(fw) fail******"); + return -EIO; + } + + if (fts_ctpm_check_fw_ver(client) == 1) { + FTS_DEBUG("[UPGRADE]**********need upgrade fw**********"); + bUpgradeFlag = true; + } else { + FTS_DEBUG("[UPGRADE]**********Don't need upgrade fw**********"); + bUpgradeFlag = false; + } + } else { + /* if app is invalid, reset to run ROM */ + FTS_INFO("[UPGRADE]**********FW APP invalid**********"); + ft8006m_ctpm_rom_or_pram_reset(client); + if (ft8006m_ctpm_get_i_file(client, 0) != 0) { + FTS_DEBUG("[UPGRADE]******Get upgrade file(flash) fail******"); + ft8006m_ctpm_rom_or_pram_reset(client); + return -EIO; + } + ft8006m_ctpm_rom_or_pram_reset(client); + bUpgradeFlag = true; + } + + FTS_FUNC_EXIT(); + + return bUpgradeFlag; +} + +/************************************************************************ +* Name: ft8006m_ctpm_auto_upgrade +* Brief: auto upgrade +* Input: +* Output: +* Return: 0 - no upgrade +***********************************************************************/ +int ft8006m_ctpm_auto_upgrade(struct i2c_client *client) +{ + u8 uc_tp_fm_ver; + int i_ret = 0; + int bUpgradeFlag = false; + u8 uc_upgrade_times = 0; + + FTS_DEBUG("[UPGRADE]********************check upgrade need or not********************"); + bUpgradeFlag = fts_ctpm_check_need_upgrade(client); + FTS_DEBUG("[UPGRADE]**********bUpgradeFlag = 0x%x**********", bUpgradeFlag); + if (bUpgradeFlag <= 0) { + FTS_DEBUG("[UPGRADE]**********No Upgrade, exit**********"); + + return bUpgradeFlag; + } else { + /* FW Upgrade */ + ft8006m_fw_upgrade_status = FW_UPGRADING; + do { + uc_upgrade_times++; + FTS_DEBUG("[UPGRADE]********************star upgrade(%d)********************", uc_upgrade_times); + + i_ret = ft8006m_ctpm_fw_upgrade(client); + if (i_ret == 0) { + /* upgrade success */ + ft8006m_i2c_read_reg(client, FTS_REG_FW_VER, &uc_tp_fm_ver); + FTS_DEBUG("[UPGRADE]********************Success upgrade to new fw version 0x%x********************", uc_tp_fm_ver); + + ft8006m_ctpm_auto_clb(client); + break; + } else { + /* upgrade fail, reset to run ROM BOOT.. + * if app in flash is ok, TP will work success + */ + FTS_ERROR("[UPGRADE]********************upgrade fail, reset now********************"); + ft8006m_ctpm_rom_or_pram_reset(client); + } + } while (uc_upgrade_times < 2); /* if upgrade fail, upgrade again. then return */ + ft8006m_fw_upgrade_status = FW_UPGRADED; + } + + return i_ret; +} +#endif + +#if FTS_AUTO_UPGRADE_FOR_LCD_CFG_EN +int fts_get_host_lic_ver(u8 *ver) +{ + int i_ret = 0; + + if (ft8006m_updatefun_curr.get_hlic_ver) + i_ret = ft8006m_updatefun_curr.get_hlic_ver(); + + if (i_ret > 0) + *ver = i_ret; + return i_ret; +} + +/* check if lcd init code need upgrade +* true-need false-no need +*/ +static bool fts_lic_need_upgrade(struct i2c_client *client) +{ + int ret = 0; + u8 initcode_ver_in_tp = 0; + u8 initcode_ver_in_host = 0; + bool fwvalid = false; + + fwvalid = fts_check_fw_valid(client); + if (!fwvalid) { + FTS_INFO("fw is invalid, no upgrade lcd init code"); + return false; + } + + ret = fts_get_host_lic_ver(&initcode_ver_in_host); + if (ret < 0) { + FTS_ERROR("init code in host invalid"); + return false; + } + + ret = ft8006m_i2c_read_reg(client, 0xE4, &initcode_ver_in_tp); + if (ret < 0) { + FTS_ERROR("read reg0xE4 fail"); + return false; + } + + FTS_DEBUG("tp init ver:%x, fw init ver:%x", initcode_ver_in_tp, initcode_ver_in_host); + if (0xA5 == initcode_ver_in_tp) { + FTS_INFO("lcd init code ver is 0xA5, don't upgade init code"); + return false; + } else if (0xFF == initcode_ver_in_tp) { + FTS_DEBUG("lcd init code in tp is invalid, need upgrade init code"); + return true; + } else if (initcode_ver_in_tp < initcode_ver_in_host) + return true; + else + return false; +} + +int fts_lic_upgrade(struct i2c_client *client) +{ + int ret = 0; + bool hlic_upgrade = false; + int upgrade_count = 0; + + hlic_upgrade = fts_lic_need_upgrade(client); + FTS_INFO("lcd init code upgrade flag:%d", hlic_upgrade); + if (hlic_upgrade) { + FTS_INFO("lcd init code upgrade..."); + do { + upgrade_count++; + ret = ft8006m_ctpm_lcd_cfg_upgrade(client); + if (0 == ret) { + FTS_INFO("lcd init code upgrade succussfully"); + break; + } else { + ft8006m_ctpm_rom_or_pram_reset(client); + } + } while (upgrade_count < 2); + } + + return ret; +} +#endif /* FTS_AUTO_UPGRADE_FOR_LCD_CFG_EN */ + +#if FTS_AUTO_UPGRADE_EN +static void fts_ctpm_update_work_func(struct work_struct *work) +{ + int i_ret = 0; + + FTS_DEBUG("[UPGRADE]******************************FTS enter upgrade******************************"); + ft8006m_irq_disable(); + + /* esd check */ +#if FTS_ESDCHECK_EN + ft8006m_esdcheck_switch(DISABLE); +#endif + + i_ret = ft8006m_ctpm_auto_upgrade(ft8006m_i2c_client); + if (i_ret < 0) + FTS_ERROR("[UPGRADE]**********TP FW upgrade failed**********"); + +#if FTS_AUTO_UPGRADE_FOR_LCD_CFG_EN + + if (i_ret >= 0) { + i_ret = fts_lic_upgrade(ft8006m_i2c_client); + if (i_ret < 0) + FTS_ERROR("**********lcd init code upgrade failed**********"); + } +#endif + +#if FTS_ESDCHECK_EN + ft8006m_esdcheck_switch(ENABLE); +#endif + ft8006m_irq_enable(); + + FTS_DEBUG("[UPGRADE]******************************FTS exit upgrade******************************"); +} + +/***************************************************************************** +* Name: ft8006m_ctpm_upgrade_init +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +void ft8006m_ctpm_upgrade_init(void) +{ + FTS_FUNC_ENTER(); + + ft8006m_touch_wq = create_singlethread_workqueue("ft8006m_touch_wq"); + if (ft8006m_touch_wq) { + INIT_WORK(&ft8006m_fw_update_work, fts_ctpm_update_work_func); + queue_work(ft8006m_touch_wq, &ft8006m_fw_update_work); + } else { + FTS_ERROR("[UPGRADE]create_singlethread_workqueue failed\n"); + } + + FTS_FUNC_EXIT(); +} + +/***************************************************************************** +* Name: ft8006m_ctpm_upgrade_exit +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +void ft8006m_ctpm_upgrade_exit(void) +{ + FTS_FUNC_ENTER(); + destroy_workqueue(ft8006m_touch_wq); + FTS_FUNC_EXIT(); +} + +#endif /* #if FTS_AUTO_UPGRADE_EN */ diff --git a/drivers/input/touchscreen/FT8006m/focaltech_flash.h b/drivers/input/touchscreen/FT8006m/focaltech_flash.h new file mode 100644 index 0000000000000..93e7c95700882 --- /dev/null +++ b/drivers/input/touchscreen/FT8006m/focaltech_flash.h @@ -0,0 +1,131 @@ +/************************************************************************ +* Copyright (C) 2010-2017, Focaltech Systems (R)£¬All Rights Reserved. +* Copyright (C) 2018 XiaoMi, Inc. +* +* File Name: focaltech_flash.h +* +* Author: fupeipei +* +* Created: 2016-08-07 +* +* Abstract: +* +************************************************************************/ +#ifndef __LINUX_FOCALTECH_FLASH_H__ +#define __LINUX_FOCALTECH_FLASH_H__ + +/***************************************************************************** +* 1.Included header files +*****************************************************************************/ +#include "focaltech_flash/focaltech_upgrade_common.h" + +/***************************************************************************** +* Private constant and macro definitions using #define +*****************************************************************************/ +#define FTS_REG_ECC 0xCC +#define FTS_RST_CMD_REG2 0xBC +#define FTS_READ_ID_REG 0x90 +#define FTS_ERASE_APP_REG 0x61 +#define FTS_ERASE_PARAMS_CMD 0x63 +#define FTS_FW_WRITE_CMD 0xBF +#define FTS_REG_RESET_FW 0x07 +#define FTS_RST_CMD_REG1 0xFC +#define LEN_FLASH_ECC_MAX 0xFFFE + +#define FTS_PACKET_LENGTH 128 +#define FTS_SETTING_BUF_LEN 128 + +#define FTS_UPGRADE_LOOP 30 +#define AUTO_CLB_NEED 1 +#define AUTO_CLB_NONEED 0 +#define FTS_UPGRADE_AA 0xAA +#define FTS_UPGRADE_55 0x55 +#define FTXXXX_INI_FILEPATH_CONFIG "/sdcard/" + +enum FW_STATUS { + FTS_RUN_IN_ERROR, + FTS_RUN_IN_APP, + FTS_RUN_IN_ROM, + FTS_RUN_IN_PRAM, + FTS_RUN_IN_BOOTLOADER +}; + +enum FILE_SIZE_TYPE { + FW_SIZE, + FW2_SIZE, + FW3_SIZE, + PRAMBOOT_SIZE, +}; + +/* pramboot for 8716 */ +#define FTS_PRAMBOOT_8716 "include/pramboot/FT8716_Pramboot_V0.5_20160723.i" +#define FTS_UPGRADE_PRAMBOOT FTS_PRAMBOOT_8716 + + +#define FTS_PRAMBOOT_E716 "include/pramboot/FT8716_Pramboot_V0.5_20160723.i" +#define FTS_UPGRADE_PRAMBOOT FTS_PRAMBOOT_8716 + + + + +/***************************************************************************** +* Private enumerations, structures and unions using typedef +*****************************************************************************/ +/* IC info */ + +struct fts_upgrade_fun { + int (*get_i_file)(struct i2c_client *, int); + int (*get_app_bin_file_ver)(char *); + int (*get_app_i_file_ver)(void); + int (*upgrade_with_app_i_file)(struct i2c_client *); + int (*upgrade_with_app_bin_file)(struct i2c_client *, char *); + int (*get_hlic_ver)(void); + int (*upgrade_with_lcd_cfg_i_file)(struct i2c_client *); + int (*upgrade_with_lcd_cfg_bin_file)(struct i2c_client *, char *); +}; +extern struct fts_upgrade_fun ft8006m_updatefun; + +/***************************************************************************** +* Static variables +*****************************************************************************/ + +/***************************************************************************** +* Global variable or extern global variabls/functions +*****************************************************************************/ +extern u8 FT8006M_CTPM_FW[]; +extern u8 FT8006M_CTPM_FW_WHITE[]; +extern u8 FT8006M_CTPM_FW_BLACK[]; +extern u8 FT8006M_FT8006M_CTPM_FW2[]; +extern u8 FT8006M_FT8006M_CTPM_FW3[]; +extern u8 ft8006m_aucFW_PRAM_BOOT[]; +extern u8 FT8006M_CTPM_LCD_CFG[]; +extern u8 *ft8006m_g_fw_file; +extern int ft8006m_g_fw_len; +extern struct fts_upgrade_fun ft8006m_updatefun_curr; +extern struct ft_chip_t ft8006m_chip_types; + +#if FTS_AUTO_UPGRADE_EN +extern struct workqueue_struct *ft8006m_touch_wq; +extern struct work_struct ft8006m_fw_update_work; +#endif + +void ft8006m_ctpm_upgrade_init(void); +void ft8006m_ctpm_upgrade_exit(void); +void ft8006m_ctpm_upgrade_delay(u32 i); +void ft8006m_ctpm_get_upgrade_array(void); +int ft8006m_ctpm_auto_upgrade(struct i2c_client *client); +int ft8006m_fw_upgrade(struct device *dev, bool force); +int ft8006m_ctpm_auto_clb(struct i2c_client *client); + +/***************************************************************************** +* Static function prototypes +*****************************************************************************/ +u32 ft8006m_getsize(u8 fw_type); +int ft8006m_GetFirmwareSize(char *firmware_name); +int ft8006m_ctpm_i2c_hid2std(struct i2c_client *client); +int ft8006m_ReadFirmware(char *firmware_name, u8 *firmware_buf); +void ft8006m_ctpm_rom_or_pram_reset(struct i2c_client *client); +enum FW_STATUS ft8006m_ctpm_get_pram_or_rom_id(struct i2c_client *client); +#endif + + diff --git a/drivers/input/touchscreen/FT8006m/focaltech_flash/Makefile b/drivers/input/touchscreen/FT8006m/focaltech_flash/Makefile new file mode 100755 index 0000000000000..4c1c999d1932a --- /dev/null +++ b/drivers/input/touchscreen/FT8006m/focaltech_flash/Makefile @@ -0,0 +1,10 @@ +# +# Makefile for the focaltech touchscreen drivers. +# + +# Each configuration option enables a list of files. + + +obj-$(CONFIG_TOUCHSCREEN_FT8006M) += focaltech_upgrade_idc.o +obj-$(CONFIG_TOUCHSCREEN_FT8006M) += focaltech_upgrade_ft8006.o +obj-$(CONFIG_TOUCHSCREEN_FT8006M) += focaltech_upgrade_test.o diff --git a/drivers/input/touchscreen/FT8006m/focaltech_flash/focaltech_upgrade_common.h b/drivers/input/touchscreen/FT8006m/focaltech_flash/focaltech_upgrade_common.h new file mode 100755 index 0000000000000..f09d1cf50cfe9 --- /dev/null +++ b/drivers/input/touchscreen/FT8006m/focaltech_flash/focaltech_upgrade_common.h @@ -0,0 +1,57 @@ +/************************************************************************ +* Copyright (C) 2010-2017, Focaltech Systems (R)£¬All Rights Reserved. +* +* File Name: focaltech_upgrade_common.h +* +* Author: fupeipei +* +* Created: 2016-08-16 +* +* Abstract: +* +************************************************************************/ +#ifndef __LINUX_FOCALTECH_UPGRADE_COMMON_H__ +#define __LINUX_FOCALTECH_UPGRADE_COMMON_H__ + +/***************************************************************************** +* 1.Included header files +*****************************************************************************/ +#include "../focaltech_flash.h" + +/***************************************************************************** +* Private constant and macro definitions using #define +*****************************************************************************/ + +/***************************************************************************** +* Private enumerations, structures and unions using typedef +*****************************************************************************/ + +/***************************************************************************** +* Static variables +*****************************************************************************/ + +/***************************************************************************** +* Global variable or extern global variabls/functions +*****************************************************************************/ + +/***************************************************************************** +* Static function prototypes +*****************************************************************************/ +int ft8006m_ctpm_erase_flash(struct i2c_client *client); +int ft8006m_ctpm_pramboot_ecc(struct i2c_client *client); +bool ft8006m_ctpm_check_run_state(struct i2c_client *client, int state); +void ft8006m_ctpm_start_pramboot(struct i2c_client *client); +int ft8006m_ctpm_start_fw_upgrade(struct i2c_client *client); +bool ft8006m_ctpm_check_in_pramboot(struct i2c_client *client); +int ft8006m_ctpm_upgrade_idc_init(struct i2c_client *client); +int ft8006m_ctpm_write_app_for_idc(struct i2c_client *client, u32 length, u8 *readbuf); +int ft8006m_ctpm_upgrade_ecc(struct i2c_client *client, u32 startaddr, u32 length); +int ft8006m_ctpm_write_pramboot_for_idc(struct i2c_client *client, u32 length, u8 *readbuf); +int ft8006m_writeflash(struct i2c_client *client, u32 writeaddr, u32 length, u8 *readbuf, u32 cnt); +bool ft8006m_check_app_bin_valid_idc(u8 *pbt_buf); + +int ft8006m_ctpm_get_app_ver(void); +int ft8006m_ctpm_fw_upgrade(struct i2c_client *client); +int ft8006m_ctpm_lcd_cfg_upgrade(struct i2c_client *client); + +#endif diff --git a/drivers/input/touchscreen/FT8006m/focaltech_flash/focaltech_upgrade_ft8006.c b/drivers/input/touchscreen/FT8006m/focaltech_flash/focaltech_upgrade_ft8006.c new file mode 100644 index 0000000000000..c26159b09d091 --- /dev/null +++ b/drivers/input/touchscreen/FT8006m/focaltech_flash/focaltech_upgrade_ft8006.c @@ -0,0 +1,1348 @@ +/* + * + * FocalTech fts TouchScreen driver. + * + * Copyright (c) 2010-2017, Focaltech Ltd. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +/***************************************************************************** +* +* File Name: focaltech_upgrade_ft8006.c +* +* Author: fupeipei +* +* Created: 2016-08-15 +* +* Abstract: +* +* Reference: +* +*****************************************************************************/ + +/***************************************************************************** +* 1.Included header files +*****************************************************************************/ +#include "../focaltech_core.h" + +#if (FTS_CHIP_TYPE == _FT8006) +#include "../focaltech_flash.h" +#include "focaltech_upgrade_common.h" + +/***************************************************************************** +* Static variables +*****************************************************************************/ +#if FTS_AUTO_UPGRADE_FOR_LCD_CFG_EN +#define APP_OFFSET 0x5000 +#define APP_FILE_MAX_SIZE (116 * 1024) +#else +#define APP_OFFSET 0x0 +#define APP_FILE_MAX_SIZE (96 * 1024) +#endif + +#define APP_FILE_MIN_SIZE (8) +#define APP_FILE_VER_MAPPING (0x10E + APP_OFFSET) +#define APP_FILE_VENDORID_MAPPING (0x10C + APP_OFFSET) +#define APP_FILE_CHIPID_MAPPING (0x11E + APP_OFFSET) +#define CONFIG_START_ADDR (0xF80) +#define CONFIG_START_ADDR_LEN (0x80) +#define CONFIG_VENDOR_ID_OFFSET (0x04) +#define CONFIG_PROJECT_ID_OFFSET (0x20) +#define CONFIG_VENDOR_ID_ADDR (CONFIG_START_ADDR+CONFIG_VENDOR_ID_OFFSET) +#define CONFIG_PROJECT_ID_ADDR (CONFIG_START_ADDR+CONFIG_PROJECT_ID_OFFSET) +#define LCD_CFG_MAX_SIZE (4 * 1024) +#define LCD_CFG_MIN_SIZE (8) + +#define TP_WHITE_LOCKDOWN "44353102D1003100" +#define TP_BLACK_LOCKDOWN "44353202D1003100" + +/***************************************************************************** +* Global variable or extern global variabls/functions +*****************************************************************************/ +static int ft8006m_ctpm_get_i_file(struct i2c_client *client, int fw_valid); +static int fts_ctpm_get_app_i_file_ver(void); +static int fts_ctpm_get_app_bin_file_ver(char *firmware_name); +static int ft8006m_ctpm_fw_upgrade_with_app_i_file(struct i2c_client *client); +static int ft8006m_ctpm_fw_upgrade_with_app_bin_file(struct i2c_client *client, char *firmware_name); +static int ft8006m_ctpm_fw_upgrade_with_lcd_cfg_i_file(struct i2c_client *client); +static int fts_get_host_lic_ver(void); +static int Ft8006m_Read_Lockdown_From_Boot(struct i2c_client *client); + + +struct fts_upgrade_fun ft8006m_updatefun = { + .get_i_file = ft8006m_ctpm_get_i_file, + .get_app_bin_file_ver = fts_ctpm_get_app_bin_file_ver, + .get_app_i_file_ver = fts_ctpm_get_app_i_file_ver, + .upgrade_with_app_i_file = ft8006m_ctpm_fw_upgrade_with_app_i_file, + .upgrade_with_app_bin_file = ft8006m_ctpm_fw_upgrade_with_app_bin_file, + .get_hlic_ver = fts_get_host_lic_ver, + .upgrade_with_lcd_cfg_i_file = ft8006m_ctpm_fw_upgrade_with_lcd_cfg_i_file, + + .upgrade_with_lcd_cfg_bin_file = NULL, +}; + +/***************************************************************************** +* Static function prototypes +*****************************************************************************/ +#if (FTS_GET_VENDOR_ID_NUM != 0) +/************************************************************************ +* Name: fts_ctpm_get_vendor_id_flash +* Brief: +* Input: +* Output: +* Return: +***********************************************************************/ +static int fts_ctpm_get_vendor_id_flash(struct i2c_client *client, u8 *vendor_id) +{ + bool inbootloader = false; + u8 rw_buf[10]; + int i_ret; + + ft8006m_ctpm_i2c_hid2std(client); + + i_ret = fts_ctpm_start_fw_upgrade(client); + if (i_ret < 0) { + FTS_ERROR("[UPGRADE]: send upgrade cmd to FW error!!"); + return i_ret; + } + + /*Enter upgrade mode*/ + ft8006m_ctpm_i2c_hid2std(client); + msleep(10); + + inbootloader = ft8006m_ctpm_check_run_state(client, FTS_RUN_IN_BOOTLOADER); + if (!inbootloader) { + FTS_ERROR("[UPGRADE]: not run in bootloader, upgrade fail!!"); + return -EIO; + } + + /*read vendor id*/ + rw_buf[0] = 0x03; + rw_buf[1] = 0x00; + rw_buf[2] = (u8)(CONFIG_VENDOR_ID_ADDR >> 8); + rw_buf[3] = (u8)(CONFIG_VENDOR_ID_ADDR); + i_ret = ft8006m_i2c_write(client, rw_buf, 4); + msleep(10); /* must wait, otherwise read vendor id wrong */ + i_ret = ft8006m_i2c_read(client, NULL, 0, vendor_id, 1); + if (i_ret < 0) { + return -EIO; + } + FTS_DEBUG("Vendor ID from Flash:%x", *vendor_id); + return 0; +} +#endif + +/************************************************************************ +* Name: fts_ft5x46_get_i_file +* Brief: get .i file +* Input: +* Output: +* Return: 0 - ok +* <0 - fail +***********************************************************************/ +static int ft8006m_ctpm_get_i_file(struct i2c_client *client, int fw_valid) +{ + int ret = 0; + struct fts_ts_data *data; + data = i2c_get_clientdata(client); + +#if (FTS_GET_VENDOR_ID_NUM != 0) + u8 vendor_id = 0; + + if (fw_valid) { + ret = ft8006m_i2c_read_reg(client, FTS_REG_VENDOR_ID, &vendor_id); + } else + ret = fts_ctpm_get_vendor_id_flash(client, &vendor_id); + if (ret < 0) { + FTS_ERROR("Get upgrade file fail because of Vendor ID wrong"); + return ret; + } + FTS_INFO("[UPGRADE] vendor id in tp=%x", vendor_id); + FTS_INFO("[UPGRADE] vendor id in driver:%x, FTS_VENDOR_ID:%02x %02x %02x", + vendor_id, FTS_VENDOR_1_ID, FTS_VENDOR_2_ID, FTS_VENDOR_3_ID); + + ret = 0; + switch (vendor_id) { +#if (FTS_GET_VENDOR_ID_NUM >= 1) + case FTS_VENDOR_1_ID: + ft8006m_g_fw_file = FT8006M_CTPM_FW; + ft8006m_g_fw_len = ft8006m_getsize(FW_SIZE); + FTS_DEBUG("[UPGRADE]FW FILE:FT8006M_CTPM_FW, SIZE:%x", ft8006m_g_fw_len); + break; +#endif +#if (FTS_GET_VENDOR_ID_NUM >= 2) + case FTS_VENDOR_2_ID: + ft8006m_g_fw_file = FT8006M_FT8006M_CTPM_FW2; + ft8006m_g_fw_len = ft8006m_getsize(FW2_SIZE); + FTS_DEBUG("[UPGRADE]FW FILE:FT8006M_FT8006M_CTPM_FW2, SIZE:%x", ft8006m_g_fw_len); + break; +#endif +#if (FTS_GET_VENDOR_ID_NUM >= 3) + case FTS_VENDOR_3_ID: + ft8006m_g_fw_file = FT8006M_FT8006M_CTPM_FW3; + ft8006m_g_fw_len = ft8006m_getsize(FW3_SIZE); + FTS_DEBUG("[UPGRADE]FW FILE:FT8006M_FT8006M_CTPM_FW3, SIZE:%x", ft8006m_g_fw_len); + break; +#endif + default: + FTS_ERROR("[UPGRADE]Vendor ID check fail, get fw file fail"); + ret = -EIO; + break; + } +#else + /* (FTS_GET_VENDOR_ID_NUM == 0) */ + if (!strncmp(data->lockdown_info, TP_WHITE_LOCKDOWN, 16)) { + FTS_DEBUG(" TP color is WHITE\n"); + ret = 1; + } else if (!strncmp(data->lockdown_info, TP_BLACK_LOCKDOWN, 16)) { + FTS_DEBUG("TP color is BLACK\n"); + ret = 2; + } else{ + ret = Ft8006m_Read_Lockdown_From_Boot(client); + } + FTS_DEBUG("ret = %d\n", ret); + + if (ret == 1) { + ft8006m_g_fw_file = FT8006M_CTPM_FW_WHITE; + } else if (ret == 2) { + ft8006m_g_fw_file = FT8006M_CTPM_FW_BLACK; + } else{ + ft8006m_g_fw_file = NULL; + FTS_DEBUG("[UPGRADE] request tp FW fail!!!\n"); + } + ft8006m_g_fw_len = ft8006m_getsize(FW_SIZE); + FTS_DEBUG("[UPGRADE]FW FILE:FT8006M_CTPM_FW, SIZE:%x", ft8006m_g_fw_len); +#endif + + return ret?0:1; +} + +/************************************************************************ +* Name: fts_ctpm_get_app_bin_file_ver +* Brief: get .i file version +* Input: no +* Output: no +* Return: fw version +***********************************************************************/ +static int fts_ctpm_get_app_bin_file_ver(char *firmware_name) +{ + u8 *pbt_buf = NULL; + int fwsize = 0; + int fw_ver = 0; + + FTS_FUNC_ENTER(); + + fwsize = ft8006m_GetFirmwareSize(firmware_name); + if (fwsize < APP_FILE_MIN_SIZE || fwsize > APP_FILE_MAX_SIZE) { + FTS_ERROR("[UPGRADE]: FW length(%x) error", fwsize); + return -EIO; + } + + pbt_buf = (unsigned char *)kmalloc(fwsize + 1, GFP_KERNEL); + if (ft8006m_ReadFirmware(firmware_name, pbt_buf)) { + FTS_ERROR("[UPGRADE]: request_firmware failed!!"); + kfree(pbt_buf); + return -EIO; + } + + fw_ver = pbt_buf[APP_FILE_VER_MAPPING]; + + kfree(pbt_buf); + FTS_FUNC_EXIT(); + + return fw_ver; +} + +/************************************************************************ +* Name: fts_ctpm_get_app_i_file_ver +* Brief: get .i file version +* Input: no +* Output: no +* Return: fw version +***********************************************************************/ +static int fts_ctpm_get_app_i_file_ver(void) +{ + int fwsize = ft8006m_g_fw_len; + + if (fwsize < APP_FILE_MIN_SIZE || fwsize > APP_FILE_MAX_SIZE) { + FTS_ERROR("[UPGRADE]: FW length(%x) error", fwsize); + return 0; + } + + return ft8006m_g_fw_file[APP_FILE_VER_MAPPING]; +} + +/* read host lcd init code ver +* return 0 if host lcd init code is valid, otherwise return error code +*/ +static int fts_get_host_lic_ver(void) +{ + u8 *hlic_buf = ft8006m_g_fw_file; + u32 hlic_len = 0; + u8 hlic_ver[2] = { 0 }; + u32 upgfile_len = ft8006m_g_fw_len; + + if (upgfile_len < 4096) { + FTS_ERROR("upgrade file len fail"); + return -EINVAL; + } + hlic_len = (u32)(((u32)hlic_buf[2]) << 8) + hlic_buf[3]; + FTS_DEBUG("host lcd init code len:%x", hlic_len); + if (hlic_len >= upgfile_len) { + FTS_ERROR("host lcd init code len is too large"); + return -EINVAL; + } + + hlic_ver[0] = hlic_buf[hlic_len]; + hlic_ver[1] = hlic_buf[hlic_len + 1]; + + FTS_DEBUG("host lcd init code ver:%x %x", hlic_ver[0], hlic_ver[1]); + if (0xFF != (hlic_ver[0] + hlic_ver[1])) { + FTS_ERROR("host lcd init code version check fail"); + return -EINVAL; + } + + return hlic_ver[0]; +} + + +#define MAX_BANK_DATA 0x80 +#define MAX_GAMMA_LEN 0x180 +int gamma_analog[] = { 0x003A, 0x85, 0x00, 0x00, 0x2C, 0x2B }; +int gamma_digital1[] = { 0x0355, 0x8D, 0x00, 0x00, 0x80, 0x80 }; +int gamma_digital2[] = { 0x03d9, 0x8D, 0x80, 0x00, 0x14, 0x13 }; +int gamma_enable[] = { 0x040d, 0x91, 0x80, 0x00, 0x19, 0x01 }; +union short_bits{ + u16 dshort; + struct bits{ + u16 bit0:1; + u16 bit1:1; + u16 bit2:1; + u16 bit3:1; + u16 bit4:1; + u16 bit5:1; + u16 bit6:1; + u16 bit7:1; + u16 bit8:1; + u16 bit9:1; + u16 bit10:1; + u16 bit11:1; + u16 bit12:1; + u16 bit13:1; + u16 bit14:1; + u16 bit15:1; + } bits; +}; + +/* calculate lcd init code ecc */ +static int cal_lcdinitcode_ecc(u8 *buf, u16 *ecc_val) +{ + u32 bank_crc_en = 0; + u8 bank_data[MAX_BANK_DATA] = { 0 }; + u16 bank_len = 0; + u16 bank_addr = 0; + u32 bank_num = 0; + u16 file_len = 0; + u16 pos = 0; + int i = 0; + union short_bits ecc; + union short_bits ecc_last; + union short_bits temp_byte; + u8 bank_mapping[] = { 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, + 0xA, 0xB, 0xC, 0xD, 0xE, 0xF, 0x10, 0x11, 0x12, 0x13, 0x14, 0x18, + 0x19, 0x1A, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x22, 0x23, 0x24}; + u8 banknum_8006 = 0; + + ecc.dshort = 0; + ecc_last.dshort = 0; + temp_byte.dshort = 0; + + file_len = (u16)(((u16)buf[2] << 8) + buf[3]); + bank_crc_en = (u32)(((u32)buf[9] << 24) + ((u32)buf[8] << 16) +\ + ((u32)buf[7] << 8) + (u32)buf[6]); + FTS_INFO("lcd init code len=%x bank en=%x", file_len, bank_crc_en); + + pos = 0x0A; + while (pos < file_len) { + bank_addr = (u16)(((u16)buf[pos + 0] << 8) + buf[pos + 1]); + bank_len = (u16)(((u16)buf[pos + 2] << 8) + buf[pos + 3]); + FTS_INFO("bank pos=%x bank_addr=%x bank_len=%x", pos, bank_addr, bank_len); + if (bank_len > MAX_BANK_DATA) + return -EINVAL; + memset(bank_data, 0, MAX_BANK_DATA); + memcpy(bank_data, buf + pos + 4, bank_len); + + bank_num = (bank_addr - 0x8000)/MAX_BANK_DATA; + FTS_INFO("actual mipi bank number = %x", bank_num); + for (i = 0; i < sizeof(bank_mapping)/sizeof(u8); i++) { + if (bank_num == bank_mapping[i]) { + banknum_8006 = i; + break; + } + } + if (i >= sizeof(bank_mapping)/sizeof(u8)) { + FTS_INFO("actual mipi bank(%d) not find in bank mapping, need jump", bank_num); + } else{ + FTS_INFO("8006 bank number = %d", banknum_8006); + if ((bank_crc_en >> banknum_8006) & 0x01) { + for (i = 0; i < MAX_BANK_DATA; i++) { + temp_byte.dshort = (u16)bank_data[i]; + if (i == 0) + FTS_INFO("data0=%x, %d %d %d %d %d %d %d %d", temp_byte.dshort, temp_byte.bits.bit0, + temp_byte.bits.bit1, temp_byte.bits.bit2, temp_byte.bits.bit3, temp_byte.bits.bit4, + temp_byte.bits.bit5, temp_byte.bits.bit6, temp_byte.bits.bit7); + + ecc.bits.bit0 = ecc_last.bits.bit8 ^ ecc_last.bits.bit9 ^ ecc_last.bits.bit10 ^ ecc_last.bits.bit11 + ^ ecc_last.bits.bit12 ^ ecc_last.bits.bit13 ^ ecc_last.bits.bit14 ^ ecc_last.bits.bit15 + ^ temp_byte.bits.bit0 ^ temp_byte.bits.bit1 ^ temp_byte.bits.bit2 ^ temp_byte.bits.bit3 + ^ temp_byte.bits.bit4 ^ temp_byte.bits.bit5 ^ temp_byte.bits.bit6 ^ temp_byte.bits.bit7; + + ecc.bits.bit1 = ecc_last.bits.bit9 ^ ecc_last.bits.bit10 ^ ecc_last.bits.bit11 ^ ecc_last.bits.bit12 + ^ ecc_last.bits.bit13 ^ ecc_last.bits.bit14 ^ ecc_last.bits.bit15 + ^ temp_byte.bits.bit1 ^ temp_byte.bits.bit2 ^ temp_byte.bits.bit3 ^ temp_byte.bits.bit4 + ^ temp_byte.bits.bit5 ^ temp_byte.bits.bit6 ^ temp_byte.bits.bit7; + + ecc.bits.bit2 = ecc_last.bits.bit8 ^ ecc_last.bits.bit9 ^ temp_byte.bits.bit0 ^ temp_byte.bits.bit1; + + ecc.bits.bit3 = ecc_last.bits.bit9 ^ ecc_last.bits.bit10 ^ temp_byte.bits.bit1 ^ temp_byte.bits.bit2; + + ecc.bits.bit4 = ecc_last.bits.bit10 ^ ecc_last.bits.bit11 ^ temp_byte.bits.bit2 ^ temp_byte.bits.bit3; + + ecc.bits.bit5 = ecc_last.bits.bit11 ^ ecc_last.bits.bit12 ^ temp_byte.bits.bit3 ^ temp_byte.bits.bit4; + + ecc.bits.bit6 = ecc_last.bits.bit12 ^ ecc_last.bits.bit13 ^ temp_byte.bits.bit4 ^ temp_byte.bits.bit5; + + ecc.bits.bit7 = ecc_last.bits.bit13 ^ ecc_last.bits.bit14 ^ temp_byte.bits.bit5 ^ temp_byte.bits.bit6; + + ecc.bits.bit8 = ecc_last.bits.bit0 ^ ecc_last.bits.bit14 ^ ecc_last.bits.bit15 ^ temp_byte.bits.bit6 ^ temp_byte.bits.bit7; + + ecc.bits.bit9 = ecc_last.bits.bit1 ^ ecc_last.bits.bit15 ^ temp_byte.bits.bit7; + + ecc.bits.bit10 = ecc_last.bits.bit2; + + ecc.bits.bit11 = ecc_last.bits.bit3; + + ecc.bits.bit12 = ecc_last.bits.bit4; + + ecc.bits.bit13 = ecc_last.bits.bit5; + + ecc.bits.bit14 = ecc_last.bits.bit6; + + ecc.bits.bit15 = ecc_last.bits.bit7 ^ ecc_last.bits.bit8 ^ ecc_last.bits.bit9 ^ ecc_last.bits.bit10 + ^ ecc_last.bits.bit11 ^ ecc_last.bits.bit12 ^ ecc_last.bits.bit13 ^ ecc_last.bits.bit14 ^ ecc_last.bits.bit15 + ^ temp_byte.bits.bit0 ^ temp_byte.bits.bit1 ^ temp_byte.bits.bit2 ^ temp_byte.bits.bit3 + ^ temp_byte.bits.bit4 ^ temp_byte.bits.bit5 ^ temp_byte.bits.bit6 ^ temp_byte.bits.bit7; + + ecc_last.dshort = ecc.dshort; + } + } + } + pos += bank_len + 4; + } + + *ecc_val = ecc.dshort; + FTS_INFO(""); + return 0; +} + +/* calculate lcd init code checksum */ +static unsigned short cal_lcdinitcode_checksum(u8 *ptr , int length) +{ + + u16 cFcs = 0; + int i, j; + + if (length%2) { + return 0xFFFF; + } + + for (i = 0; i < length; i += 2) { + cFcs ^= ((ptr[i] << 8) + ptr[i+1]); + for (j = 0; j < 16; j++) { + if (cFcs & 1) { + cFcs = (unsigned short)((cFcs >> 1) ^ ((1 << 15) + (1 << 10) + (1 << 3))); + } else { + cFcs >>= 1; + } + } + } + return cFcs; +} + +static int print_data(u8 *buf, u32 len) +{ + int i = 0; + int n = 0; + u8 *p = NULL; + + p = kmalloc(len*4, GFP_KERNEL); + memset(p, 0, len*4); + + for (i = 0; i < len; i++) { + n += sprintf(p + n, "%02x ", buf[i]); + } + + FTS_DEBUG("%s", p); + + kfree(p); + return 0; +} + +static int read_3gamma(struct i2c_client *client, u8 **gamma, u16 *len) +{ + int ret = 0; + int i = 0; + int packet_num = 0; + int packet_len = 0; + int remainder = 0; + u8 cmd[4] = { 0 }; + u32 addr = 0x01D000; + u8 gamma_header[0x20] = { 0 }; + u16 gamma_len = 0; + u16 gamma_len_n = 0; + u16 pos = 0; + bool gamma_has_enable = false; + u8 *pgamma = NULL; + int j = 0; + u8 gamma_ecc = 0; + + cmd[0] = 0x03; + cmd[1] = (u8)(addr >> 16); + cmd[2] = (u8)(addr >> 8); + cmd[3] = (u8)addr; + ret = ft8006m_i2c_write(client, cmd, 4); + msleep(10); + ret = ft8006m_i2c_read(client, NULL, 0, gamma_header, 0x20); + if (ret < 0) { + FTS_ERROR("read 3-gamma header fail"); + return ret; + } + + gamma_len = (u16)((u16)gamma_header[0] << 8) + gamma_header[1]; + gamma_len_n = (u16)((u16)gamma_header[2] << 8) + gamma_header[3]; + + if ((gamma_len + gamma_len_n) != 0xFFFF) { + FTS_INFO("gamma length check fail:%x %x", gamma_len, gamma_len); + return -EIO; + } + + if ((gamma_header[4] + gamma_header[5]) != 0xFF) { + FTS_INFO("gamma ecc check fail:%x %x", gamma_header[4], gamma_header[5]); + return -EIO; + } + + if (gamma_len > MAX_GAMMA_LEN) { + FTS_ERROR("gamma data len(%d) is too long", gamma_len); + return -EINVAL; + } + + *gamma = kmalloc(MAX_GAMMA_LEN, GFP_KERNEL); + if (NULL == *gamma) { + FTS_ERROR("malloc gamma memory fail"); + return -ENOMEM; + } + pgamma = *gamma; + + packet_num = gamma_len/256; + packet_len = 256; + remainder = gamma_len%256; + if (remainder) + packet_num++; + FTS_INFO("3-gamma len:%d", gamma_len); + cmd[0] = 0x03; + addr += 0x20; + for (i = 0; i < packet_num; i++) { + addr += i * 256; + cmd[1] = (u8)(addr >> 16); + cmd[2] = (u8)(addr >> 8); + cmd[3] = (u8)addr; + if ((i == packet_num - 1) && remainder) + packet_len = remainder; + ret = ft8006m_i2c_write(client, cmd, 4); + msleep(10); + ret = ft8006m_i2c_read(client, NULL, 0, pgamma + i*256, packet_len); + if (ret < 0) { + FTS_ERROR("read 3-gamma data fail"); + return ret; + } + } + + + + for (j = 0; j < gamma_len; j++) { + gamma_ecc ^= pgamma[j]; + } + FTS_INFO("back_3gamma_ecc: 0x%x, 0x%x", gamma_ecc, gamma_header[0x04]); + if (gamma_ecc != gamma_header[0x04]) { + FTS_ERROR("back gamma ecc check fail:%x %x", gamma_ecc, gamma_header[0x04]); + return -EIO; + } + + + /* check last byte is 91 80 00 19 01 */ + pos = gamma_len - 5; + if ((gamma_enable[1] == pgamma[pos]) && (gamma_enable[2] == pgamma[pos+1]) + && (gamma_enable[3] == pgamma[pos+2]) && (gamma_enable[4] == pgamma[pos+3])) { + gamma_has_enable = true; + } + + if (false == gamma_has_enable) { + FTS_INFO("3-gamma has no gamma enable info"); + pgamma[gamma_len++] = gamma_enable[1]; + pgamma[gamma_len++] = gamma_enable[2]; + pgamma[gamma_len++] = gamma_enable[3]; + pgamma[gamma_len++] = gamma_enable[4]; + pgamma[gamma_len++] = gamma_enable[5]; + } + + *len = gamma_len; + + FTS_DEBUG("read 3-gamma data:"); + print_data(*gamma, gamma_len); + + return 0; +} + +static int replace_3gamma(u8 *initcode, u8 *gamma, u16 gamma_len) +{ + u16 gamma_pos = 0; + + /* Analog Gamma */ + if ((initcode[gamma_analog[0]] == gamma[gamma_pos]) + && (initcode[gamma_analog[0] + 1] == gamma[gamma_pos + 1])) { + memcpy(initcode + gamma_analog[0] + 4 , gamma + gamma_pos + 4, gamma_analog[5]); + gamma_pos += gamma_analog[5] + 4; + } else + goto find_gamma_bank_err; + + /* Digital1 Gamma */ + if ((initcode[gamma_digital1[0]] == gamma[gamma_pos]) + && (initcode[gamma_digital1[0] + 1] == gamma[gamma_pos + 1])) { + memcpy(initcode + gamma_digital1[0] + 4 , gamma + gamma_pos + 4, gamma_digital1[5]); + gamma_pos += gamma_digital1[5] + 4; + } else + goto find_gamma_bank_err; + + /* Digital2 Gamma */ + if ((initcode[gamma_digital2[0]] == gamma[gamma_pos]) + && (initcode[gamma_digital2[0] + 1] == gamma[gamma_pos + 1])) { + memcpy(initcode + gamma_digital2[0] + 4 , gamma + gamma_pos + 4, gamma_digital2[5]); + gamma_pos += gamma_digital2[5] + 4; + } else + goto find_gamma_bank_err; + + /* enable Gamma */ + if ((initcode[gamma_enable[0]] == gamma[gamma_pos]) + && (initcode[gamma_enable[0] + 1] == gamma[gamma_pos + 1])) { + if (gamma[gamma_pos + 4]) + initcode[gamma_enable[0] + 4 + 15] |= 0x01; + else + initcode[gamma_enable[0] + 4 + 15] &= 0xFE; + gamma_pos += 1 + 4; + } else + goto find_gamma_bank_err; + + FTS_DEBUG("replace 3-gamma data:"); + print_data(initcode, 1100); + + return 0; + +find_gamma_bank_err: + FTS_INFO("3-gamma bank(%02x %02x) not find", + gamma[gamma_pos], gamma[gamma_pos+1]); + return -ENODATA; +} + +static int read_replace_3gamma(struct i2c_client *client, u8 *buf) +{ + int ret = 0; + u16 initcode_ecc = 0; + u16 initcode_checksum = 0; + u8 *gamma = NULL; + u16 gamma_len = 0; + + FTS_FUNC_ENTER(); + + ret = read_3gamma(client, &gamma, &gamma_len); + if (ret < 0) { + FTS_INFO("no vaid 3-gamma data, not replace"); + return 0; + } + + ret = replace_3gamma(buf, gamma, gamma_len); + if (ret < 0) { + FTS_ERROR("replace 3-gamma fail"); + kfree(gamma); + return ret; + } + + ret = cal_lcdinitcode_ecc(buf, &initcode_ecc); + if (ret < 0) { + FTS_ERROR("lcd init code ecc calculate fail"); + kfree(gamma); + return ret; + } + FTS_INFO("lcd init code cal ecc:%04x", initcode_ecc); + buf[4] = (u8)(initcode_ecc >> 8); + buf[5] = (u8)(initcode_ecc); + buf[0x43d] = (u8)(initcode_ecc >> 8); + buf[0x43c] = (u8)(initcode_ecc); + + initcode_checksum = cal_lcdinitcode_checksum(buf + 2, 0x43e - 2); + FTS_INFO("lcd init code calc checksum:%04x", initcode_checksum); + buf[0] = (u8)(initcode_checksum >> 8); + buf[1] = (u8)(initcode_checksum); + + FTS_FUNC_EXIT(); + + kfree(gamma); + return 0; +} + + +int check_initial_code_valid(struct i2c_client *client, u8 *buf) +{ + int ret = 0; + u16 initcode_ecc = 0; + u16 initcode_checksum = 0; + + initcode_checksum = cal_lcdinitcode_checksum(buf + 2, 0x43e - 2); + FTS_INFO("lcd init code calc checksum:%04x", initcode_checksum); + if (initcode_checksum != ((u16)((u16)buf[0] << 8) + buf[1])) { + FTS_ERROR("Initial Code checksum fail"); + return -EINVAL; + } + + ret = cal_lcdinitcode_ecc(buf, &initcode_ecc); + if (ret < 0) { + FTS_ERROR("lcd init code ecc calculate fail"); + return ret; + } + FTS_INFO("lcd init code cal ecc:%04x", initcode_ecc); + if (initcode_ecc != ((u16)((u16)buf[4] << 8) + buf[5])) { + FTS_ERROR("Initial Code ecc check fail"); + return -EINVAL; + } + + return 0; +} + +static int Ft8006m_Read_Lockdown_From_Boot(struct i2c_client *client) +{ + u8 buf[16] = {0}; + u8 rbuf[4] = {0}; + u32 i = 0; + u8 auc_i2c_write_buf[10]; + int i_ret = 0; + int ret = 0; + bool inbootloader = false; + + ft8006m_ctpm_i2c_hid2std(client); + + i_ret = ft8006m_ctpm_start_fw_upgrade(client); + if (i_ret < 0) { + FTS_ERROR("[UPGRADE]: send upgrade cmd to FW error!!"); + return i_ret; + } + + /*Enter upgrade mode*/ + ft8006m_ctpm_i2c_hid2std(client); + msleep(10); + + inbootloader = ft8006m_ctpm_check_run_state(client, FTS_RUN_IN_BOOTLOADER); + if (!inbootloader) { + FTS_ERROR("[UPGRADE]: not run in bootloader, upgrade fail!!"); + return -EIO; + } + + rbuf[0] = 0x03; + rbuf[1] = 0x00; + for (i = 0; i < 30; i++) { + rbuf[2] = 0x0f; + rbuf[3] = 0xa0; + + i_ret = ft8006m_i2c_write(client, rbuf, 4); + if (i_ret < 0) { + FTS_ERROR("[FTS] Step 4: read lcm id from flash error when i2c write, i_ret = %d\n", i_ret); + continue; + } + + msleep(10); + + i_ret = ft8006m_i2c_read(client, rbuf, 0, buf, 16); + if (i_ret < 0) { + FTS_ERROR("[FTS] Step 4: read lcm id from flash error when i2c write, i_ret = %d\n", i_ret); + continue; + } + } + + FTS_DEBUG("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c", \ + buf[0], buf[1], buf[2], buf[3], buf[4], buf[5], buf[6], buf[7], buf[8], + buf[9], buf[10], buf[11], buf[12], buf[13], buf[14], buf[15]); + FTS_DEBUG("[UPGRADE]: reset the new FW!!"); + auc_i2c_write_buf[0] = FTS_REG_RESET_FW; + ft8006m_i2c_write(client, auc_i2c_write_buf, 1); + msleep(1000); + + ft8006m_ctpm_i2c_hid2std(client); +if (!strncmp(buf, TP_WHITE_LOCKDOWN, 16)) { + FTS_DEBUG(" BOOT status:TP color is WHITE\n"); + ret = 1; +} else if (!strncmp(buf, TP_BLACK_LOCKDOWN, 16)) { + FTS_DEBUG("BOOT status:TP color is BLACK\n"); + ret = 2; +} + + return ret; +} + +/************************************************************************ +* Name: fts_ctpm_fw_upgrade_use_buf +* Brief: fw upgrade +* Input: i2c info, file buf, file len +* Output: no +* Return: fail <0 +***********************************************************************/ +static int ft8006m_ctpm_fw_upgrade_use_buf(struct i2c_client *client, u8 *pbt_buf, u32 dw_lenth) +{ + u8 reg_val[4] = {0}; + u32 i = 0; + u32 packet_number; + u32 j = 0; + u32 temp; + u32 lenght; + u8 packet_buf[FTS_PACKET_LENGTH + 6]; + u8 auc_i2c_write_buf[10]; + u8 upgrade_ecc; + int i_ret = 0; + bool inbootloader = false; + + ft8006m_ctpm_i2c_hid2std(client); + + i_ret = ft8006m_ctpm_start_fw_upgrade(client); + if (i_ret < 0) { + FTS_ERROR("[UPGRADE]: send upgrade cmd to FW error!!"); + return i_ret; + } + + /*Enter upgrade mode*/ + ft8006m_ctpm_i2c_hid2std(client); + msleep(10); + + inbootloader = ft8006m_ctpm_check_run_state(client, FTS_RUN_IN_BOOTLOADER); + if (!inbootloader) { + FTS_ERROR("[UPGRADE]: not run in bootloader, upgrade fail!!"); + return -EIO; + } + + /*send upgrade type to reg 0x09: 0x0B: upgrade; 0x0A: download*/ + auc_i2c_write_buf[0] = 0x09; + auc_i2c_write_buf[1] = 0x0B; + ft8006m_i2c_write(client, auc_i2c_write_buf, 2); + + /* + * All.bin <= 128K + * APP.bin <= 94K + * LCD_CFG <= 4K + */ + auc_i2c_write_buf[0] = 0xB0; + auc_i2c_write_buf[1] = (u8) ((dw_lenth >> 16) & 0xFF); + auc_i2c_write_buf[2] = (u8) ((dw_lenth >> 8) & 0xFF); + auc_i2c_write_buf[3] = (u8) (dw_lenth & 0xFF); + ft8006m_i2c_write(client, auc_i2c_write_buf, 4); + + + /*erase the app erea in flash*/ + i_ret = ft8006m_ctpm_erase_flash(client); + if (i_ret < 0) { + FTS_ERROR("[UPGRADE]: erase flash error!!"); + return i_ret; + } + + /*write FW to ctpm flash*/ + upgrade_ecc = 0; + FTS_DEBUG("[UPGRADE]: write FW to ctpm flash!!"); + temp = 0; + packet_number = (dw_lenth) / FTS_PACKET_LENGTH; + packet_buf[0] = FTS_FW_WRITE_CMD; + + for (j = 0; j < packet_number; j++) { + temp = 0x5000 + j * FTS_PACKET_LENGTH; + packet_buf[1] = (u8) (temp >> 16); + packet_buf[2] = (u8) (temp >> 8); + packet_buf[3] = (u8) temp; + lenght = FTS_PACKET_LENGTH; + packet_buf[4] = (u8) (lenght >> 8); + packet_buf[5] = (u8) lenght; + for (i = 0; i < FTS_PACKET_LENGTH; i++) { + packet_buf[6 + i] = pbt_buf[j * FTS_PACKET_LENGTH + i]; + upgrade_ecc ^= packet_buf[6 + i]; + } + ft8006m_i2c_write(client, packet_buf, FTS_PACKET_LENGTH + 6); + + + for (i = 0; i < 30; i++) { + auc_i2c_write_buf[0] = 0x6a; + reg_val[0] = reg_val[1] = 0x00; + ft8006m_i2c_read(client, auc_i2c_write_buf, 1, reg_val, 2); + + if ((j + 0x1000 + (0x5000/FTS_PACKET_LENGTH)) == (((reg_val[0]) << 8) | reg_val[1])) { + break; + } + + if (i > 15) { + msleep(1); + FTS_DEBUG("[UPGRADE]: write flash: host : %x status : %x!!", (j + 0x1000 + (0x5000/FTS_PACKET_LENGTH)), (((reg_val[0]) << 8) | reg_val[1])); + } + + ft8006m_ctpm_upgrade_delay(10000); + } + } + + if ((dw_lenth) % FTS_PACKET_LENGTH > 0) { + temp = 0x5000 + packet_number * FTS_PACKET_LENGTH; + packet_buf[1] = (u8) (temp >> 16); + packet_buf[2] = (u8) (temp >> 8); + packet_buf[3] = (u8) temp; + temp = (dw_lenth) % FTS_PACKET_LENGTH; + packet_buf[4] = (u8) (temp >> 8); + packet_buf[5] = (u8) temp; + for (i = 0; i < temp; i++) { + packet_buf[6 + i] = pbt_buf[packet_number * FTS_PACKET_LENGTH + i]; + upgrade_ecc ^= packet_buf[6 + i]; + } + ft8006m_i2c_write(client, packet_buf, temp + 6); + + + for (i = 0; i < 30; i++) { + auc_i2c_write_buf[0] = 0x6a; + reg_val[0] = reg_val[1] = 0x00; + ft8006m_i2c_read(client, auc_i2c_write_buf, 1, reg_val, 2); + + if ((0x1000 + ((0x5000 + packet_number * FTS_PACKET_LENGTH)/((dw_lenth) % FTS_PACKET_LENGTH))) == (((reg_val[0]) << 8) | reg_val[1])) { + break; + } + + if (i > 15) { + msleep(1); + FTS_DEBUG("[UPGRADE]: write flash: host : %x status : %x!!", (j + 0x1000 + (0x5000/FTS_PACKET_LENGTH)), (((reg_val[0]) << 8) | reg_val[1])); + } + + ft8006m_ctpm_upgrade_delay(10000); + } + } + + msleep(50); + + /*********Step 6: read out checksum***********************/ + /*send the opration head */ + FTS_DEBUG("[UPGRADE]: read out checksum!!"); + auc_i2c_write_buf[0] = 0x64; + ft8006m_i2c_write(client, auc_i2c_write_buf, 1); + msleep(300); + + temp = 0x5000; + auc_i2c_write_buf[0] = 0x65; + auc_i2c_write_buf[1] = (u8)(temp >> 16); + auc_i2c_write_buf[2] = (u8)(temp >> 8); + auc_i2c_write_buf[3] = (u8)(temp); + temp = (64*1024-1); + auc_i2c_write_buf[4] = (u8)(temp >> 8); + auc_i2c_write_buf[5] = (u8)(temp); + i_ret = ft8006m_i2c_write(client, auc_i2c_write_buf, 6); + msleep(dw_lenth/256); + + temp = (0x5000+(64*1024-1)); + auc_i2c_write_buf[0] = 0x65; + auc_i2c_write_buf[1] = (u8)(temp >> 16); + auc_i2c_write_buf[2] = (u8)(temp >> 8); + auc_i2c_write_buf[3] = (u8)(temp); + temp = (dw_lenth-(64*1024-1)); + auc_i2c_write_buf[4] = (u8)(temp >> 8); + auc_i2c_write_buf[5] = (u8)(temp); + i_ret = ft8006m_i2c_write(client, auc_i2c_write_buf, 6); + msleep(dw_lenth/256); + + for (i = 0; i < 100; i++) { + auc_i2c_write_buf[0] = 0x6a; + reg_val[0] = reg_val[1] = 0x00; + ft8006m_i2c_read(client, auc_i2c_write_buf, 1, reg_val, 2); + + if (0xF0 == reg_val[0] && 0x55 == reg_val[1]) { + FTS_DEBUG("[UPGRADE]: reg_val[0]=%02x reg_val[0]=%02x!!", reg_val[0], reg_val[1]); + break; + } + msleep(1); + + } + auc_i2c_write_buf[0] = 0x66; + ft8006m_i2c_read(client, auc_i2c_write_buf, 1, reg_val, 1); + if (reg_val[0] != upgrade_ecc) { + FTS_ERROR("[UPGRADE]: ecc error! FW=%02x upgrade_ecc=%02x!!", reg_val[0], upgrade_ecc); + return -EIO; + } + FTS_DEBUG("[UPGRADE]: checksum %x %x!!", reg_val[0], upgrade_ecc); + + FTS_DEBUG("[UPGRADE]: reset the new FW!!"); + auc_i2c_write_buf[0] = FTS_REG_RESET_FW; + ft8006m_i2c_write(client, auc_i2c_write_buf, 1); + msleep(1000); + + ft8006m_ctpm_i2c_hid2std(client); + + return 0; +} + +/************************************************************************ +* Name: fts_ctpm_fw_upgrade_use_buf +* Brief: fw upgrade +* Input: i2c info, file buf, file len +* Output: no +* Return: fail <0 +***********************************************************************/ +static int ft8006m_ctpm_lcd_cfg_upgrade_use_buf(struct i2c_client *client, u8 *pbt_buf, u32 dw_lenth) +{ + u8 reg_val[4] = {0}; + u32 i = 0; + u32 packet_number; + u32 j = 0; + u32 temp; + u32 lenght; + u8 packet_buf[FTS_PACKET_LENGTH + 6]; + u8 auc_i2c_write_buf[10]; + u8 upgrade_ecc; + int i_ret; + + ft8006m_ctpm_i2c_hid2std(client); + + for (i = 0; i < FTS_UPGRADE_LOOP; i++) { + /*write 0xaa to register FTS_RST_CMD_REG1 */ + ft8006m_i2c_write_reg(client, FTS_RST_CMD_REG1, FTS_UPGRADE_AA); + msleep(10); + + /*write 0x55 to register FTS_RST_CMD_REG1*/ + ft8006m_i2c_write_reg(client, FTS_RST_CMD_REG1, FTS_UPGRADE_55); + msleep(200); + + /*Enter upgrade mode*/ + ft8006m_ctpm_i2c_hid2std(client); + + msleep(10); + auc_i2c_write_buf[0] = FTS_UPGRADE_55; + auc_i2c_write_buf[1] = FTS_UPGRADE_AA; + i_ret = ft8006m_i2c_write(client, auc_i2c_write_buf, 2); + if (i_ret < 0) { + FTS_ERROR("[UPGRADE]: failed writing 0x55 and 0xaa!!"); + continue; + } + + /*check run in bootloader or not*/ + msleep(1); + auc_i2c_write_buf[0] = FTS_READ_ID_REG; + auc_i2c_write_buf[1] = auc_i2c_write_buf[2] = auc_i2c_write_buf[3] = 0x00; + reg_val[0] = reg_val[1] = 0x00; + ft8006m_i2c_read(client, auc_i2c_write_buf, 4, reg_val, 2); + + if (reg_val[0] == ft8006m_chip_types.bootloader_idh + && reg_val[1] == ft8006m_chip_types.bootloader_idl) { + FTS_DEBUG("[UPGRADE]: read bootload id ok!! ID1 = 0x%x, ID2 = 0x%x!!", reg_val[0], reg_val[1]); + break; + } else { + FTS_ERROR("[UPGRADE]: read bootload id fail!! ID1 = 0x%x, ID2 = 0x%x!!", reg_val[0], reg_val[1]); + continue; + } + } + + if (i >= FTS_UPGRADE_LOOP) + return -EIO; + + + i_ret = read_replace_3gamma(client, pbt_buf); + if (i_ret < 0) { + FTS_ERROR("replace 3-gamma fail, not upgrade lcd init code"); + return i_ret; + } + + i_ret = check_initial_code_valid(client, pbt_buf); + if (i_ret < 0) { + FTS_ERROR("initial code invalid, not upgrade lcd init code"); + return i_ret; + } + + /*send upgrade type to reg 0x09: 0x0B: upgrade; 0x0A: download*/ + auc_i2c_write_buf[0] = 0x09; + auc_i2c_write_buf[1] = 0x0C; + ft8006m_i2c_write(client, auc_i2c_write_buf, 2); + + /*Step 4:erase app and panel paramenter area*/ + FTS_DEBUG("[UPGRADE]: erase app and panel paramenter area!!"); + auc_i2c_write_buf[0] = FTS_ERASE_APP_REG; + ft8006m_i2c_write(client, auc_i2c_write_buf, 1); + msleep(1000); + + for (i = 0; i < 15; i++) { + auc_i2c_write_buf[0] = 0x6a; + reg_val[0] = reg_val[1] = 0x00; + ft8006m_i2c_read(client, auc_i2c_write_buf, 1, reg_val, 2); + if (0xF0 == reg_val[0] && 0xAA == reg_val[1]) { + break; + } + msleep(50); + } + FTS_DEBUG("[UPGRADE]: erase app area reg_val[0] = %x reg_val[1] = %x!!", reg_val[0], reg_val[1]); + + auc_i2c_write_buf[0] = 0xB0; + auc_i2c_write_buf[1] = 0; + auc_i2c_write_buf[2] = (u8) ((dw_lenth >> 8) & 0xFF); + auc_i2c_write_buf[3] = (u8) (dw_lenth & 0xFF); + ft8006m_i2c_write(client, auc_i2c_write_buf, 4); + + /*write FW to ctpm flash*/ + upgrade_ecc = 0; + FTS_DEBUG("[UPGRADE]: write FW to ctpm flash!!"); + temp = 0; + packet_number = (dw_lenth) / FTS_PACKET_LENGTH; + packet_buf[0] = FTS_FW_WRITE_CMD; + packet_buf[1] = 0; + for (j = 0; j < packet_number; j++) { + temp = j * FTS_PACKET_LENGTH; + packet_buf[2] = (u8) (temp >> 8); + packet_buf[3] = (u8) temp; + lenght = FTS_PACKET_LENGTH; + packet_buf[4] = (u8) (lenght >> 8); + packet_buf[5] = (u8) lenght; + for (i = 0; i < FTS_PACKET_LENGTH; i++) { + packet_buf[6 + i] = pbt_buf[j * FTS_PACKET_LENGTH + i]; + upgrade_ecc ^= packet_buf[6 + i]; + } + ft8006m_i2c_write(client, packet_buf, FTS_PACKET_LENGTH + 6); + + + for (i = 0; i < 30; i++) { + auc_i2c_write_buf[0] = 0x6a; + reg_val[0] = reg_val[1] = 0x00; + ft8006m_i2c_read(client, auc_i2c_write_buf, 1, reg_val, 2); + + if ((j + 0x1000) == (((reg_val[0]) << 8) | reg_val[1])) { + break; + } + + if (i > 15) { + msleep(1); + FTS_DEBUG("[UPGRADE]: write flash: host : %x status : %x!!", (j + 0x1000 + (0x5000/FTS_PACKET_LENGTH)), (((reg_val[0]) << 8) | reg_val[1])); + } + + ft8006m_ctpm_upgrade_delay(10000); + } + } + + if ((dw_lenth) % FTS_PACKET_LENGTH > 0) { + temp = packet_number * FTS_PACKET_LENGTH; + packet_buf[2] = (u8) (temp >> 8); + packet_buf[3] = (u8) temp; + temp = (dw_lenth) % FTS_PACKET_LENGTH; + packet_buf[4] = (u8) (temp >> 8); + packet_buf[5] = (u8) temp; + for (i = 0; i < temp; i++) { + packet_buf[6 + i] = pbt_buf[packet_number * FTS_PACKET_LENGTH + i]; + upgrade_ecc ^= packet_buf[6 + i]; + } + ft8006m_i2c_write(client, packet_buf, temp + 6); + + + for (i = 0; i < 30; i++) { + auc_i2c_write_buf[0] = 0x6a; + reg_val[0] = reg_val[1] = 0x00; + ft8006m_i2c_read(client, auc_i2c_write_buf, 1, reg_val, 2); + + if ((0x1000 + ((packet_number * FTS_PACKET_LENGTH)/((dw_lenth) % FTS_PACKET_LENGTH))) == (((reg_val[0]) << 8) | reg_val[1])) { + break; + } + + if (i > 15) { + msleep(1); + FTS_DEBUG("[UPGRADE]: write flash: host : %x status : %x!!", (j + 0x1000 + (0x5000/FTS_PACKET_LENGTH)), (((reg_val[0]) << 8) | reg_val[1])); + } + + ft8006m_ctpm_upgrade_delay(10000); + } + } + + msleep(50); + + /*********Step 6: read out checksum***********************/ + /*send the opration head */ + FTS_DEBUG("[UPGRADE]: read out checksum!!"); + auc_i2c_write_buf[0] = 0x64; + ft8006m_i2c_write(client, auc_i2c_write_buf, 1); + msleep(300); + + temp = 0x00; + auc_i2c_write_buf[0] = 0x65; + auc_i2c_write_buf[1] = 0; + auc_i2c_write_buf[2] = (u8)(temp >> 8); + auc_i2c_write_buf[3] = (u8)(temp); + temp = dw_lenth; + auc_i2c_write_buf[4] = (u8)(temp >> 8); + auc_i2c_write_buf[5] = (u8)(temp); + i_ret = ft8006m_i2c_write(client, auc_i2c_write_buf, 6); + msleep(dw_lenth/256); + + for (i = 0; i < 100; i++) { + auc_i2c_write_buf[0] = 0x6a; + reg_val[0] = reg_val[1] = 0x00; + ft8006m_i2c_read(client, auc_i2c_write_buf, 1, reg_val, 2); + + if (0xF0 == reg_val[0] && 0x55 == reg_val[1]) { + FTS_DEBUG("[UPGRADE]: reg_val[0]=%02x reg_val[0]=%02x!!", reg_val[0], reg_val[1]); + break; + } + msleep(1); + + } + auc_i2c_write_buf[0] = 0x66; + ft8006m_i2c_read(client, auc_i2c_write_buf, 1, reg_val, 1); + if (reg_val[0] != upgrade_ecc) { + FTS_ERROR("[UPGRADE]: ecc error! FW=%02x upgrade_ecc=%02x!!", reg_val[0], upgrade_ecc); + return -EIO; + } + FTS_DEBUG("[UPGRADE]: checksum %x %x!!", reg_val[0], upgrade_ecc); + + FTS_DEBUG("[UPGRADE]: reset the new FW!!"); + auc_i2c_write_buf[0] = FTS_REG_RESET_FW; + ft8006m_i2c_write(client, auc_i2c_write_buf, 1); + msleep(1000); + + ft8006m_ctpm_i2c_hid2std(client); + + return 0; +} +#endif +/************************************************************************ +* Name: fts_ctpm_fw_upgrade_with_app_i_file +* Brief: upgrade with *.i file +* Input: i2c info +* Output: +* Return: fail < 0 +***********************************************************************/ +static int ft8006m_ctpm_fw_upgrade_with_app_i_file(struct i2c_client *client) +{ + int i_ret = 0; + u32 fw_len; + u8 *fw_buf; + + FTS_INFO("[UPGRADE]**********start upgrade with app.i**********"); + + fw_len = ft8006m_g_fw_len - APP_OFFSET; + fw_buf = ft8006m_g_fw_file + APP_OFFSET; + if (fw_len < APP_FILE_MIN_SIZE || fw_len > APP_FILE_MAX_SIZE) { + FTS_ERROR("[UPGRADE]: FW length(%x) error", fw_len); + return -EIO; + } + + i_ret = ft8006m_ctpm_fw_upgrade_use_buf(client, fw_buf, fw_len); + if (i_ret != 0) { + FTS_ERROR("[UPGRADE] upgrade app.i failed"); + } else { + FTS_INFO("[UPGRADE]: upgrade app.i succeed"); + } + + return i_ret; +} + +/************************************************************************ +* Name: ft8006m_ctpm_fw_upgrade_with_lcd_cfg_i_file +* Brief: upgrade with *.i file +* Input: i2c info +* Output: no +* Return: fail <0 +***********************************************************************/ +static int ft8006m_ctpm_fw_upgrade_with_lcd_cfg_i_file(struct i2c_client *client) +{ + int i_ret = 0; + u32 fw_len; + u8 *fw_buf; + + FTS_INFO("[UPGRADE]**********start upgrade with lcd init code**********"); + + fw_len = ft8006m_g_fw_len; + fw_buf = ft8006m_g_fw_file; + if (fw_len < APP_FILE_MIN_SIZE || fw_len > APP_FILE_MAX_SIZE) { + FTS_ERROR("[UPGRADE]: FW length(%x) error", fw_len); + return -EIO; + } + + /*FW upgrade*/ + i_ret = ft8006m_ctpm_lcd_cfg_upgrade_use_buf(client, fw_buf, 4096); + if (i_ret != 0) { + FTS_ERROR("[UPGRADE] init code upgrade fail, ret=%d", i_ret); + } else { + FTS_INFO("[UPGRADE] init code upgrade succeed"); + } + + return i_ret; +} + +/************************************************************************ +* Name: fts_ctpm_fw_upgrade_with_app_bin_file +* Brief: upgrade with *.bin file +* Input: i2c info, file name +* Output: no +* Return: success =0 +***********************************************************************/ +static int ft8006m_ctpm_fw_upgrade_with_app_bin_file(struct i2c_client *client, char *firmware_name) +{ + u8 *pbt_buf = NULL; + int i_ret = 0; + int fwsize = 0; + + FTS_INFO("[UPGRADE]**********start upgrade with app.bin**********"); + + fwsize = ft8006m_GetFirmwareSize(firmware_name); + if (fwsize < APP_FILE_MIN_SIZE || fwsize > APP_FILE_MAX_SIZE) { + FTS_ERROR("[UPGRADE]: app.bin length(%x) error, upgrade fail", fwsize); + return -EIO; + } + + pbt_buf = (unsigned char *)kmalloc(fwsize + 1, GFP_KERNEL); + if (NULL == pbt_buf) { + FTS_ERROR(" malloc pbt_buf failed "); + goto ERROR_BIN; + } + + if (ft8006m_ReadFirmware(firmware_name, pbt_buf)) { + FTS_ERROR("[UPGRADE]: request_firmware failed!!"); + goto ERROR_BIN; + } +#if FTS_AUTO_UPGRADE_FOR_LCD_CFG_EN + i_ret = ft8006m_ctpm_lcd_cfg_upgrade_use_buf(client, pbt_buf, 4096); + i_ret = ft8006m_ctpm_fw_upgrade_use_buf(client, pbt_buf + APP_OFFSET, fwsize - APP_OFFSET); +#else + i_ret = ft8006m_ctpm_fw_upgrade_use_buf(client, pbt_buf, fwsize); +#endif + if (i_ret != 0) { + FTS_ERROR("[UPGRADE]: upgrade app.bin failed"); + goto ERROR_BIN; + } else { + FTS_INFO("[UPGRADE]: upgrade app.bin succeed"); + } + + + kfree(pbt_buf); + return i_ret; +ERROR_BIN: + kfree(pbt_buf); + return -EIO; +} + + diff --git a/drivers/input/touchscreen/FT8006m/focaltech_flash/focaltech_upgrade_idc.c b/drivers/input/touchscreen/FT8006m/focaltech_flash/focaltech_upgrade_idc.c new file mode 100755 index 0000000000000..e81b27ada8239 --- /dev/null +++ b/drivers/input/touchscreen/FT8006m/focaltech_flash/focaltech_upgrade_idc.c @@ -0,0 +1,575 @@ +/* + * + * FocalTech fts TouchScreen driver. + * + * Copyright (c) 2010-2017, Focaltech Ltd. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +/***************************************************************************** +* +* File Name: focaltech_upgrade_idc.c +* +* Author: fupeipei +* +* Created: 2016-08-22 +* +* Abstract: +* +* Reference: +* +*****************************************************************************/ + +/***************************************************************************** +* 1.Included header files +*****************************************************************************/ +#include "../focaltech_core.h" + +#if (FTS_CHIP_IDC == 1) +#include "../focaltech_flash.h" + +/***************************************************************************** +* Static variables +*****************************************************************************/ + +/***************************************************************************** +* Global variable or extern global variabls/functions +*****************************************************************************/ +u8 ft8006m_upgrade_ecc; + +/***************************************************************************** +* Static function prototypes +*****************************************************************************/ + +/************************************************************************ +* Name: ft8006m_ctpm_upgrade_idc_init +* Brief: +* Input: +* Output: +* Return: +***********************************************************************/ +int ft8006m_ctpm_upgrade_idc_init(struct i2c_client *client) +{ + int i_ret = 0; + u8 reg_val_id[4] = {0}; + u8 auc_i2c_write_buf[10]; + + FTS_INFO("[UPGRADE]**********Upgrade setting Init**********"); + + /*read flash ID*/ + auc_i2c_write_buf[0] = 0x05; + reg_val_id[0] = 0x00; + i_ret = ft8006m_i2c_read(client, auc_i2c_write_buf, 1, reg_val_id, 1); + if (i_ret < 0) { + return -EIO; + } + + /*set flash clk*/ + auc_i2c_write_buf[0] = 0x05; + auc_i2c_write_buf[1] = reg_val_id[0]; + auc_i2c_write_buf[2] = 0x00; + ft8006m_i2c_write(client, auc_i2c_write_buf, 3); + + /*send upgrade type to reg 0x09: 0x0B: upgrade; 0x0A: download*/ + auc_i2c_write_buf[0] = 0x09; + auc_i2c_write_buf[1] = 0x0B; + ft8006m_i2c_write(client, auc_i2c_write_buf, 2); + + return 0; +} + +/************************************************************************ +* Name: ft8006m_ctpm_start_pramboot +* Brief: +* Input: +* Output: +* Return: +***********************************************************************/ +void ft8006m_ctpm_start_pramboot(struct i2c_client *client) +{ + u8 auc_i2c_write_buf[10]; + + FTS_INFO("[UPGRADE]**********start pramboot**********"); + auc_i2c_write_buf[0] = 0x08; + ft8006m_i2c_write(client, auc_i2c_write_buf, 1); + msleep(20); +} + +/************************************************************************ +* Name: ft8006m_ctpm_start_fw_upgrade +* Brief: +* Input: +* Output: +* Return: +***********************************************************************/ +int ft8006m_ctpm_start_fw_upgrade(struct i2c_client *client) +{ + int i_ret = 0; + + /*send the soft upgrade commond to FW, and start upgrade*/ + FTS_INFO("[UPGRADE]**********send 0xAA and 0x55 to FW, start upgrade**********"); + + i_ret = ft8006m_i2c_write_reg(client, FTS_RST_CMD_REG1, FTS_UPGRADE_AA); + msleep(10); + i_ret = ft8006m_i2c_write_reg(client, FTS_RST_CMD_REG1, FTS_UPGRADE_55); + msleep(200); + + return i_ret; +} + +/************************************************************************ +* Name: ft8006m_ctpm_check_run_state +* Brief: +* Input: +* Output: +* Return: +***********************************************************************/ +bool ft8006m_ctpm_check_run_state(struct i2c_client *client, int rstate) +{ + int i = 0; + enum FW_STATUS cstate = FTS_RUN_IN_ERROR; + + for (i = 0; i < FTS_UPGRADE_LOOP; i++) { + cstate = ft8006m_ctpm_get_pram_or_rom_id(client); + FTS_DEBUG("[UPGRADE]: run state = %d", cstate); + + if (cstate == rstate) + return true; + msleep(20); + } + + return false; +} + +/************************************************************************ +* Name: ft8006m_ctpm_pramboot_ecc +* Brief: +* Input: +* Output: +* Return: +***********************************************************************/ +int ft8006m_ctpm_pramboot_ecc(struct i2c_client *client) +{ + u8 auc_i2c_write_buf[10]; + u8 reg_val[4] = {0}; + + FTS_FUNC_ENTER(); + + /*read out checksum, if pramboot checksum != host checksum, upgrade fail*/ + FTS_INFO("[UPGRADE]******read out pramboot checksum******"); + auc_i2c_write_buf[0] = 0xcc; + msleep(2); + ft8006m_i2c_read(client, auc_i2c_write_buf, 1, reg_val, 1); + if (reg_val[0] != ft8006m_upgrade_ecc) { /*pramboot checksum != host checksum, upgrade fail*/ + FTS_ERROR("[UPGRADE]: checksum fail : pramboot_ecc = %X, host_ecc = %X!!", reg_val[0], ft8006m_upgrade_ecc); + return -EIO; + } + FTS_DEBUG("[UPGRADE]: checksum success : pramboot_ecc = %X, host_ecc = %X!!", reg_val[0], ft8006m_upgrade_ecc); + msleep(100); + + FTS_FUNC_EXIT(); + + return 0; +} + +/************************************************************************ +* Name: ft8006m_ctpm_upgrade_ecc +* Brief: +* Input: +* Output: +* Return: +***********************************************************************/ +int ft8006m_ctpm_upgrade_ecc(struct i2c_client *client, u32 startaddr, u32 length) +{ + u32 i = 0; + u8 auc_i2c_write_buf[10]; + u32 temp; + u8 reg_val[4] = {0}; + int i_ret = 0; + + FTS_INFO("[UPGRADE]**********read out checksum**********"); + + /*check sum init*/ + auc_i2c_write_buf[0] = 0x64; + ft8006m_i2c_write(client, auc_i2c_write_buf, 1); + msleep(300); + + /*send commond to pramboot to start checksum*/ + auc_i2c_write_buf[0] = 0x65; + auc_i2c_write_buf[1] = (u8)(startaddr >> 16); + auc_i2c_write_buf[2] = (u8)(startaddr >> 8); + auc_i2c_write_buf[3] = (u8)(startaddr); + + if (length > LEN_FLASH_ECC_MAX) { + temp = LEN_FLASH_ECC_MAX; + } else { + temp = length; + } + + auc_i2c_write_buf[4] = (u8)(temp >> 8); + auc_i2c_write_buf[5] = (u8)(temp); + i_ret = ft8006m_i2c_write(client, auc_i2c_write_buf, 6); + msleep(length/256); + + /*read status : if check sum is finished?*/ + for (i = 0; i < 100; i++) { + auc_i2c_write_buf[0] = 0x6a; + reg_val[0] = reg_val[1] = 0x00; + ft8006m_i2c_read(client, auc_i2c_write_buf, 1, reg_val, 2); + + if (0xF0 == reg_val[0] && 0x55 == reg_val[1]) { + break; + } + msleep(1); + + } + + if (length > LEN_FLASH_ECC_MAX) { + temp = LEN_FLASH_ECC_MAX; + auc_i2c_write_buf[0] = 0x65; + auc_i2c_write_buf[1] = (u8)(temp >> 16); + auc_i2c_write_buf[2] = (u8)(temp >> 8); + auc_i2c_write_buf[3] = (u8)(temp); + temp = length-LEN_FLASH_ECC_MAX; + auc_i2c_write_buf[4] = (u8)(temp >> 8); + auc_i2c_write_buf[5] = (u8)(temp); + i_ret = ft8006m_i2c_write(client, auc_i2c_write_buf, 6); + + msleep(length/256); + + for (i = 0; i < 100; i++) { + auc_i2c_write_buf[0] = 0x6a; + reg_val[0] = reg_val[1] = 0x00; + ft8006m_i2c_read(client, auc_i2c_write_buf, 1, reg_val, 2); + + if (0xF0 == reg_val[0] && 0x55 == reg_val[1]) { + break; + } + msleep(1); + } + } + + /*read out check sum*/ + auc_i2c_write_buf[0] = 0x66; + i_ret = ft8006m_i2c_read(client, auc_i2c_write_buf, 1, reg_val, 1); + if (reg_val[0] != ft8006m_upgrade_ecc) /*if check sum fail, upgrade fail*/ { + FTS_ERROR("[UPGRADE]: ecc error! FW=%02x ft8006m_upgrade_ecc=%02x!!", reg_val[0], ft8006m_upgrade_ecc); + return -EIO; + } + + FTS_DEBUG("[UPGRADE]: ecc success : FW=%02x ft8006m_upgrade_ecc=%02x!!", reg_val[0], ft8006m_upgrade_ecc); + + ft8006m_upgrade_ecc = 0; + + return i_ret; +} + +/************************************************************************ +* Name: ft8006m_ctpm_erase_flash +* Brief: +* Input: +* Output: +* Return: +***********************************************************************/ +int ft8006m_ctpm_erase_flash(struct i2c_client *client) +{ + u32 i = 0; + u8 auc_i2c_write_buf[10]; + u8 reg_val[4] = {0}; + + FTS_INFO("[UPGRADE]**********erase app now**********"); + + /*send to erase flash*/ + auc_i2c_write_buf[0] = 0x61; + ft8006m_i2c_write(client, auc_i2c_write_buf, 1); + msleep(1350); + + for (i = 0; i < 15; i++) { + /*get the erase app status, if get 0xF0AA£¬erase flash success*/ + auc_i2c_write_buf[0] = 0x6a; + reg_val[0] = reg_val[1] = 0x00; + ft8006m_i2c_read(client, auc_i2c_write_buf, 1, reg_val, 2); + + if (0xF0 == reg_val[0] && 0xAA == reg_val[1]) /*erase flash success*/ { + break; + } + msleep(50); + } + + if ((0xF0 != reg_val[0] || 0xAA != reg_val[1]) && (i >= 15)) /*erase flash fail*/ { + FTS_ERROR("[UPGRADE]: erase app error.reset tp and reload FW!!"); + return -EIO; + } + FTS_DEBUG("[UPGRADE]: erase app ok!!"); + + return 0; +} + +/************************************************************************ +* Name: ft8006m_ctpm_write_pramboot_for_idc +* Brief: +* Input: +* Output: +* Return: +***********************************************************************/ +int ft8006m_ctpm_write_pramboot_for_idc(struct i2c_client *client, u32 length, u8 *readbuf) +{ + u32 i = 0; + u32 j; + u32 temp; + u32 packet_number; + u8 packet_buf[FTS_PACKET_LENGTH + 6]; + + ft8006m_upgrade_ecc = 0; + FTS_INFO("[UPGRADE]**********write pramboot to pram**********"); + + temp = 0; + packet_number = (length) / FTS_PACKET_LENGTH; + if ((length) % FTS_PACKET_LENGTH > 0) { + packet_number++; + } + packet_buf[0] = 0xae; + packet_buf[1] = 0x00; + + for (j = 0; j < packet_number; j++) { + temp = j * FTS_PACKET_LENGTH; + packet_buf[2] = (u8) (temp >> 8); + packet_buf[3] = (u8) temp; + if (j < (packet_number-1)) { + temp = FTS_PACKET_LENGTH; + } else { + temp = (length) % FTS_PACKET_LENGTH; + } + packet_buf[4] = (u8) (temp >> 8); + packet_buf[5] = (u8) temp; + + for (i = 0; i < temp; i++) { + packet_buf[6 + i] = readbuf[j * FTS_PACKET_LENGTH + i]; + ft8006m_upgrade_ecc ^= packet_buf[6 + i]; + } + ft8006m_i2c_write(client, packet_buf, temp + 6); + } + + return 0; +} + +/************************************************************************ +* Name: ft8006m_ctpm_write_app_for_idc +* Brief: +* Input: +* Output: +* Return: +***********************************************************************/ +int ft8006m_ctpm_write_app_for_idc(struct i2c_client *client, u32 length, u8 *readbuf) +{ + u32 j; + u32 i = 0; + u32 packet_number; + u32 temp; + u32 writelenght; + u8 packet_buf[FTS_PACKET_LENGTH + 6]; + u8 auc_i2c_write_buf[10]; + u8 reg_val[4] = {0}; + + FTS_INFO("[UPGRADE]**********write app to flash**********"); + + ft8006m_upgrade_ecc = 0; + + packet_number = (length) / FTS_PACKET_LENGTH; + if (((length) % FTS_PACKET_LENGTH) > 0) { + packet_number++; + } + + packet_buf[0] = 0xbf; + + for (j = 0; j < packet_number; j++) { + temp = 0x1000+j * FTS_PACKET_LENGTH; + + if (j < (packet_number-1)) { + writelenght = FTS_PACKET_LENGTH; + } else { + writelenght = ((length) % FTS_PACKET_LENGTH); + } + packet_buf[1] = (u8) (temp >> 16); + packet_buf[2] = (u8) (temp >> 8); + packet_buf[3] = (u8) temp; + packet_buf[4] = (u8) (writelenght >> 8); + packet_buf[5] = (u8) writelenght; + + for (i = 0; i < writelenght; i++) { + packet_buf[6 + i] = readbuf[(temp - 0x1000+i)]; + ft8006m_upgrade_ecc ^= packet_buf[6 + i]; + } + + ft8006m_i2c_write(client, packet_buf, (writelenght + 6)); + + for (i = 0; i < 30; i++) { + /*read status and check if the app writting is finished*/ + auc_i2c_write_buf[0] = 0x6a; + reg_val[0] = reg_val[1] = 0x00; + ft8006m_i2c_read(client, auc_i2c_write_buf, 1, reg_val, 2); + + if ((j + 0x20+0x1000) == (((reg_val[0]) << 8) | reg_val[1])) { + break; + } + + ft8006m_ctpm_upgrade_delay(1000); + } + } + msleep(50); + + return 0; +} + + +typedef enum { + APP_LEN = 0x00, + APP_LEN_NE = 0x02, + APP_P1_ECC = 0x04, + APP_P1_ECC_NE = 0x06, + APP_P2_ECC = 0x08, + APP_P2_ECC_NE = 0x0A, + APP_LEN_H = 0x12, + APP_LEN_H_NE = 0x14, + APP_BLR_ID = 0x1C, + APP_BLR_ID_NE = 0x1D, + PBOOT_ID_H = 0x1E, + PBOOT_ID_L = 0x1F +} ENUM_APP_INFO; + +#define AL2_FCS_COEF ((1 << 15) + (1 << 10) + (1 << 3)) + +#if ((FTS_CHIP_TYPE == _FT8006) || (FTS_CHIP_TYPE == _FT8736)) +#define FW_CFG_TOTAL_SIZE 0x80 +#else +#define FW_CFG_TOTAL_SIZE 0x00 +#endif +#define APP1_START 0x00 +#define APP1_LEN 0x100 +#define APP_VERIF_ADDR (APP1_START + APP1_LEN) +#define APP_VERIF_LEN 0x20 +#define APP1_ECC_ADDR (APP_VERIF_ADDR + APP_P1_ECC) +#define APP2_START (APP_VERIF_ADDR + APP_VERIF_LEN + FW_CFG_TOTAL_SIZE) +#define APP2_ECC_ADDR (APP_VERIF_ADDR + APP_P2_ECC) +/***************************************************************************** +* Name: DrvReadPram16 +* Brief: Get Word +* Input: +* Output: +* Return: +*****************************************************************************/ +static u16 data_word(u8 *pbt_buf, u32 addr) +{ + return (((u16)pbt_buf[addr]<<8) + pbt_buf[addr+1]); +} + +/****************************************************************************** +* Name: GetCrc16 +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +u16 ft8006m_crc_calc(u8 *pbt_buf, u32 addr, u16 length) +{ + u16 cFcs = 0; + u16 i, j; + + FTS_DEBUG("[UPGRADE][ECC] : %04x data:%04x, len:%04x!!", (addr), data_word(pbt_buf, (addr)), length); + for (i = 0; i < length; i++) { + cFcs ^= data_word(pbt_buf, (addr+i*2)); + for (j = 0; j < 16; j++) { + if (cFcs & 1) { + cFcs = (u16)((cFcs >> 1) ^ AL2_FCS_COEF); + } else { + cFcs >>= 1; + } + } + } + return cFcs; +} + +/***************************************************************************** +* Name: task_check_mem +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +bool ft8006m_ecc_check(u8 *pbt_buf, u32 star_addr, u32 len, u16 ecc_addr) +{ + u16 ecc1; + u16 ecc2; + u16 cal_ecc; + + ecc1 = data_word(pbt_buf, ecc_addr); + ecc2 = data_word(pbt_buf, ecc_addr+2); + + if ((ecc1 + ecc2) != 0xFFFF) { + return false; + } + + cal_ecc = ft8006m_crc_calc(pbt_buf, star_addr, (len/2)); + + FTS_DEBUG("[UPGRADE][ECC] : ecc1 = %x, cal_ecc = %x", ecc1, cal_ecc); + if (ecc1 != cal_ecc) { + FTS_DEBUG("[UPGRADE][ECC] : ecc error!!"); + return false; + } + return true; +} + +/***************************************************************************** +* Name: ft8006m_check_app_bin_valid_idc +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +bool ft8006m_check_app_bin_valid_idc(u8 *pbt_buf) +{ + u32 len; +#if (FTS_CHIP_TYPE != _FT8006) + /* 1. First Byte */ + if (pbt_buf[0] != 0x02) { + FTS_DEBUG("[UPGRADE]APP.BIN Verify- the first byte(%x) error", pbt_buf[0]); + return false; + } +#endif + /* 2 PART1 ECC */ + if (!ft8006m_ecc_check(pbt_buf, APP1_START, APP1_LEN, APP1_ECC_ADDR)) { + FTS_DEBUG("[UPGRADE]APP.BIN Verify- ecc1 error"); + return false; + } + + /* 3. PART2 ECC */ + if ((data_word(pbt_buf, APP_VERIF_ADDR+APP_LEN) + data_word(pbt_buf, APP_VERIF_ADDR+APP_LEN_NE)) != 0xFFFF) { + FTS_DEBUG("[UPGRADE]APP.BIN Verify- Length XOR error"); + return false; + } + len = data_word(pbt_buf, APP_VERIF_ADDR+APP_LEN); +#if (FTS_CHIP_TYPE == _FT8006) + if ((data_word(pbt_buf, APP_VERIF_ADDR+APP_LEN_H) + data_word(pbt_buf, APP_VERIF_ADDR+APP_LEN_H_NE)) != 0xFFFF) { + FTS_DEBUG("[UPGRADE]APP.BIN Verify- Length2 XOR error"); + return false; + } + len += ((u32)data_word(pbt_buf, APP_VERIF_ADDR+APP_LEN_H) << 16); +#endif + FTS_DEBUG("%x %x %x %x", APP2_START, len, ((u32)data_word(pbt_buf, APP_VERIF_ADDR+APP_LEN_H) << 16), data_word(pbt_buf, APP_VERIF_ADDR+APP_LEN)); + len -= APP2_START; + + return ft8006m_ecc_check(pbt_buf, APP2_START, len, APP2_ECC_ADDR); +} + + +#endif /* IDC */ diff --git a/drivers/input/touchscreen/FT8006m/focaltech_flash/focaltech_upgrade_test.c b/drivers/input/touchscreen/FT8006m/focaltech_flash/focaltech_upgrade_test.c new file mode 100755 index 0000000000000..ffd34fc52bf66 --- /dev/null +++ b/drivers/input/touchscreen/FT8006m/focaltech_flash/focaltech_upgrade_test.c @@ -0,0 +1,167 @@ +/* + * + * FocalTech fts TouchScreen driver. + * + * Copyright (c) 2010-2017, Focaltech Ltd. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +/***************************************************************************** +* +* File Name: focaltech_upgrade_test.c +* +* Author: fupeipei +* +* Created: 2016-08-22 +* +* Abstract: +* +* Reference: +* +*****************************************************************************/ + +/***************************************************************************** +* 1.Included header files +*****************************************************************************/ +#include "../focaltech_core.h" +#include "../focaltech_flash.h" +#include +#include + +/***************************************************************************** +* Static variables +*****************************************************************************/ +#define FTS_GET_UPGRADE_TIME 0 + +/***************************************************************************** +* Global variable or extern global variabls/functions +*****************************************************************************/ +struct wake_lock ft8006m_ps_lock; + +#define FTS_DEBUG_UPGRADE(fmt, args...) do {\ + printk(KERN_ERR "[FTS][UPGRADE]:##############################################################################\n");\ + printk(KERN_ERR "[FTS][UPGRADE]: "fmt"\n", ##args);\ + printk(KERN_ERR "[FTS][UPGRADE]:##############################################################################\n");\ + } while (0)\ + +/***************************************************************************** +* Static function prototypes +*****************************************************************************/ +#if (FTS_UPGRADE_STRESS_TEST) +/************************************************************************ +* Name: ft8006m_ctpm_auto_upgrade_pingpong +* Brief: 0 +* Input: 0 +* Output: 0 +* Return: 0 +***********************************************************************/ +static int ft8006m_ctpm_auto_upgrade_pingpong(struct i2c_client *client) +{ + u8 uc_tp_fm_ver; + int i_ret = 0; + u8 uc_upgrade_times = 0; + + FTS_FUNC_ENTER(); + + /* pingpong test mode, need upgrade */ + FTS_INFO("[UPGRADE]: pingpong test mode, need upgrade!!"); + do { + uc_upgrade_times++; + + /* fw upgrade */ + i_ret = ft8006m_ctpm_fw_upgrade(client); + + if (i_ret == 0) {/* upgrade success */ + ft8006m_i2c_read_reg(client, FTS_REG_FW_VER, &uc_tp_fm_ver); + FTS_DEBUG("[UPGRADE]: upgrade to new version 0x%x", uc_tp_fm_ver); + } else /* upgrade fail */ { + /* if upgrade fail, reset to run ROM. if app in flash is ok. TP will work success */ + FTS_INFO("[UPGRADE]: upgrade fail, reset now!!"); + ft8006m_ctpm_rom_or_pram_reset(client); + } + } while ((i_ret != 0) && (uc_upgrade_times < 2)); /* if upgrade fail, upgrade again. then return */ + + FTS_FUNC_EXIT(); + return i_ret; +} + +/************************************************************************ +* Name: ft8006m_ctpm_auto_upgrade +* Brief: 0 +* Input: 0 +* Output: 0 +* Return: 0 +***********************************************************************/ +void fts_ctpm_display_upgrade_time(bool start_time) +{ +#if FTS_GET_UPGRADE_TIME + static struct timeval tpend; + static struct timeval tpstart; + static int timeuse; + + if (start_time) { + do_gettimeofday(&tpstart); + } else { + do_gettimeofday(&tpend); + timeuse = 1000000 * (tpend.tv_sec-tpstart.tv_sec) + tpend.tv_usec-tpstart.tv_usec; + timeuse /= 1000000; + FTS_DEBUG("[UPGRADE]: upgrade success : Use time: %d Seconds!!", timeuse); + } +#endif +} + +/************************************************************************ +* Name: ft8006m_ctpm_auto_upgrade +* Brief: 0 +* Input: 0 +* Output: 0 +* Return: 0 +***********************************************************************/ +int ft8006m_ctpm_auto_upgrade(struct i2c_client *client) +{ + int i_ret = 0; + static int uc_ErrorTimes + static int uc_UpgradeTimes + + wake_lock_init(&ft8006m_ps_lock, WAKE_LOCK_SUSPEND, "tp_wakelock"); + + wake_lock(&ft8006m_ps_lock); + + /* (FTS_GET_VENDOR_ID_NUM == 0) */ + ft8006m_g_fw_file = FT8006M_CTPM_FW; + ft8006m_g_fw_len = ft8006m_getsize(FW_SIZE); + FTS_DEBUG("[UPGRADE]FW FILE:FT8006M_CTPM_FW, SIZE:%x", ft8006m_g_fw_len); + + do { + uc_UpgradeTimes++; + + FTS_DEBUG_UPGRADE("start to upgrade %d times !!", uc_UpgradeTimes); + + fts_ctpm_display_upgrade_time(true); + + i_ret = ft8006m_ctpm_auto_upgrade_pingpong(client); + if (i_ret == 0) { + fts_ctpm_display_upgrade_time(false); + } else { + uc_ErrorTimes++; + } + + FTS_DEBUG_UPGRADE("upgrade %d times, error %d times!!", uc_UpgradeTimes, uc_ErrorTimes); + } while (uc_UpgradeTimes < (FTS_UPGRADE_TEST_NUMBER)); + + wake_unlock(&ft8006m_ps_lock); + + return 0; +} +#endif + diff --git a/drivers/input/touchscreen/FT8006m/focaltech_gesture.c b/drivers/input/touchscreen/FT8006m/focaltech_gesture.c new file mode 100755 index 0000000000000..f6d1f307d5a58 --- /dev/null +++ b/drivers/input/touchscreen/FT8006m/focaltech_gesture.c @@ -0,0 +1,683 @@ +/* + * + * FocalTech TouchScreen driver. + * + * Copyright (c) 2010-2017, Focaltech Ltd. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +/***************************************************************************** +* +* File Name: focaltech_gestrue.c +* +* Author: Focaltech Driver Team +* +* Created: 2016-08-08 +* +* Abstract: +* +* Reference: +* +*****************************************************************************/ + +/***************************************************************************** +* 1.Included header files +*****************************************************************************/ +#include "focaltech_core.h" +#if FTS_GESTURE_EN +/****************************************************************************** +* Private constant and macro definitions using #define +*****************************************************************************/ +#define KEY_GESTURE_U KEY_U +#define KEY_GESTURE_UP KEY_UP +#define KEY_GESTURE_DOWN KEY_DOWN +#define KEY_GESTURE_LEFT KEY_LEFT +#define KEY_GESTURE_RIGHT KEY_RIGHT +#define KEY_GESTURE_O KEY_O +#define KEY_GESTURE_E KEY_E +#define KEY_GESTURE_M KEY_M +#define KEY_GESTURE_L KEY_L +#define KEY_GESTURE_W KEY_W +#define KEY_GESTURE_S KEY_S +#define KEY_GESTURE_V KEY_V +#define KEY_GESTURE_C KEY_C +#define KEY_GESTURE_Z KEY_Z + +#define GESTURE_LEFT 0x20 +#define GESTURE_RIGHT 0x21 +#define GESTURE_UP 0x22 +#define GESTURE_DOWN 0x23 +#define GESTURE_DOUBLECLICK 0x24 +#define GESTURE_O 0x30 +#define GESTURE_W 0x31 +#define GESTURE_M 0x32 +#define GESTURE_E 0x33 +#define GESTURE_L 0x44 +#define GESTURE_S 0x46 +#define GESTURE_V 0x54 +#define GESTURE_Z 0x41 +#define GESTURE_C 0x34 +#define FTS_GESTRUE_POINTS 255 +#define FTS_GESTRUE_POINTS_HEADER 8 + +/***************************************************************************** +* Private enumerations, structures and unions using typedef +*****************************************************************************/ +/* +* header - byte0:gesture id +* byte1:pointnum +* byte2~7:reserved +* coordinate_x - All gesture point x coordinate +* coordinate_y - All gesture point y coordinate +* mode - 1:enable gesture function(default) +* - 0:disable +* active - 1:enter into gesture(suspend) +* 0:gesture disable or resume +*/ +struct fts_gesture_st { + u8 header[FTS_GESTRUE_POINTS_HEADER]; + u16 coordinate_x[FTS_GESTRUE_POINTS]; + u16 coordinate_y[FTS_GESTRUE_POINTS]; + u8 mode; + u8 active; +}; + + + +struct gesture_struct ft8006m_gesture_data = {0, 0}; + +/***************************************************************************** +* Static variables +*****************************************************************************/ +static struct fts_gesture_st fts_ft8006m_gesture_data; + +/***************************************************************************** +* Global variable or extern global variabls/functions +*****************************************************************************/ + +/***************************************************************************** +* Static function prototypes +*****************************************************************************/ +static ssize_t fts_gesture_show(struct device *dev, struct device_attribute *attr, char *buf); +static ssize_t fts_gesture_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count); +static ssize_t fts_gesture_buf_show(struct device *dev, struct device_attribute *attr, char *buf); +static ssize_t fts_gesture_buf_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count); + +/* sysfs gesture node + * read example: cat fts_gesture_mode ---read gesture mode + * write example:echo 01 > fts_gesture_mode ---write gesture mode to 01 + * + */ +static DEVICE_ATTR (fts_gesture_mode, S_IRUGO|S_IWUSR, fts_gesture_show, fts_gesture_store); +/* + * read example: cat fts_gesture_buf ---read gesture buf + */ +static DEVICE_ATTR (fts_gesture_buf, S_IRUGO|S_IWUSR, fts_gesture_buf_show, fts_gesture_buf_store); +static struct attribute *fts_gesture_mode_attrs[] = { + + &dev_attr_fts_gesture_mode.attr, + &dev_attr_fts_gesture_buf.attr, + NULL, +}; + +static struct attribute_group fts_gesture_group = { + .attrs = fts_gesture_mode_attrs, +}; + +/************************************************************************ +* Name: fts_gesture_show +* Brief: +* Input: device, device attribute, char buf +* Output: +* Return: +***********************************************************************/ +static ssize_t fts_gesture_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + int count; + u8 val; + struct i2c_client *client = container_of(dev, struct i2c_client, dev); + + mutex_lock(&ft8006m_input_dev->mutex); + ft8006m_i2c_read_reg(client, FTS_REG_GESTURE_EN, &val); + count = sprintf(buf, "Gesture Mode: %s\n", fts_ft8006m_gesture_data.mode ? "On" : "Off"); + count += sprintf(buf + count, "Reg(0xD0) = %d\n", val); + mutex_unlock(&ft8006m_input_dev->mutex); + + return count; +} + +/************************************************************************ +* Name: fts_gesture_store +* Brief: +* Input: device, device attribute, char buf, char count +* Output: +* Return: +***********************************************************************/ +static ssize_t fts_gesture_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) +{ + mutex_lock(&ft8006m_input_dev->mutex); + + if (FTS_SYSFS_ECHO_ON(buf)) { + FTS_INFO("[GESTURE]enable gesture"); + fts_ft8006m_gesture_data.mode = ENABLE; + } else if (FTS_SYSFS_ECHO_OFF(buf)) { + FTS_INFO("[GESTURE]disable gesture"); + fts_ft8006m_gesture_data.mode = DISABLE; + } + + mutex_unlock(&ft8006m_input_dev->mutex); + + return count; +} + +/************************************************************************ +* Name: fts_gesture_buf_show +* Brief: +* Input: device, device attribute, char buf +* Output: +* Return: +***********************************************************************/ +static ssize_t fts_gesture_buf_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + int count; + int i = 0; + + mutex_lock(&ft8006m_input_dev->mutex); + count = snprintf(buf, PAGE_SIZE, "Gesture ID: 0x%x\n", fts_ft8006m_gesture_data.header[0]); + count += snprintf(buf + count, PAGE_SIZE, "Gesture PointNum: %d\n", fts_ft8006m_gesture_data.header[1]); + count += snprintf(buf + count, PAGE_SIZE, "Gesture Point Buf:\n"); + for (i = 0; i < fts_ft8006m_gesture_data.header[1]; i++) { + count += snprintf(buf + count, PAGE_SIZE, "%3d(%4d,%4d) ", i, fts_ft8006m_gesture_data.coordinate_x[i], fts_ft8006m_gesture_data.coordinate_y[i]); + if ((i + 1)%4 == 0) + count += snprintf(buf + count, PAGE_SIZE, "\n"); + } + count += snprintf(buf + count, PAGE_SIZE, "\n"); + mutex_unlock(&ft8006m_input_dev->mutex); + + return count; +} + +/************************************************************************ +* Name: fts_gesture_buf_store +* Brief: +* Input: device, device attribute, char buf, char count +* Output: +* Return: +***********************************************************************/ +static ssize_t fts_gesture_buf_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) +{ + /* place holder for future use */ + return -EPERM; +} + +/***************************************************************************** +* Name: ft8006m_create_gesture_sysfs +* Brief: +* Input: +* Output: +* Return: 0-success or others-error +*****************************************************************************/ +int ft8006m_create_gesture_sysfs(struct i2c_client *client) +{ + int ret = 0; + + ret = sysfs_create_group(&client->dev.kobj, &fts_gesture_group); + if (ret != 0) { + FTS_ERROR("[GESTURE]fts_gesture_mode_group(sysfs) create failed!"); + sysfs_remove_group(&client->dev.kobj, &fts_gesture_group); + return ret; + } + return 0; +} + +/***************************************************************************** +* Name: fts_gesture_report +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +static void fts_gesture_report(struct input_dev *input_dev, int gesture_id) +{ + int gesture; + + FTS_FUNC_ENTER(); + FTS_DEBUG("fts gesture_id==0x%x ", gesture_id); + switch (gesture_id) { + case GESTURE_LEFT: + gesture = KEY_GESTURE_LEFT; + break; + case GESTURE_RIGHT: + gesture = KEY_GESTURE_RIGHT; + break; + case GESTURE_UP: + gesture = KEY_GESTURE_UP; + break; + case GESTURE_DOWN: + gesture = KEY_GESTURE_DOWN; + break; + case GESTURE_DOUBLECLICK: + gesture = KEY_GESTURE_U; + break; + case GESTURE_O: + gesture = KEY_GESTURE_O; + break; + case GESTURE_W: + gesture = KEY_GESTURE_W; + break; + case GESTURE_M: + gesture = KEY_GESTURE_M; + break; + case GESTURE_E: + gesture = KEY_GESTURE_E; + break; + case GESTURE_L: + gesture = KEY_GESTURE_L; + break; + case GESTURE_S: + gesture = KEY_GESTURE_S; + break; + case GESTURE_V: + gesture = KEY_GESTURE_V; + break; + case GESTURE_Z: + gesture = KEY_GESTURE_Z; + break; + case GESTURE_C: + gesture = KEY_GESTURE_C; + break; + default: + gesture = -1; + break; + } + /* report event key */ + if (gesture != -1) { + if (gesture_id == GESTURE_DOUBLECLICK) { + FTS_DEBUG("Gesture Code=%d", gesture); + input_report_key(input_dev, DOUBLE_CLICK, 1); + input_sync(input_dev); + input_report_key(input_dev, DOUBLE_CLICK, 0); + input_sync(input_dev); + } + } + + FTS_FUNC_EXIT(); +} + +/************************************************************************ +* Name: ft8006m_gesture_readdata +* Brief: read data from TP register +* Input: +* Output: +* Return: fail <0 +***********************************************************************/ +static int fts_gesture_read_buffer(struct i2c_client *client, u8 *buf, int read_bytes) +{ + int remain_bytes; + int ret; + int i; + if (read_bytes <= I2C_BUFFER_LENGTH_MAXINUM) { + ret = ft8006m_i2c_read(client, buf, 1, buf, read_bytes); + } else { + ret = ft8006m_i2c_read(client, buf, 1, buf, I2C_BUFFER_LENGTH_MAXINUM); + remain_bytes = read_bytes - I2C_BUFFER_LENGTH_MAXINUM; + for (i = 1; remain_bytes > 0; i++) { + if (remain_bytes <= I2C_BUFFER_LENGTH_MAXINUM) + ret = ft8006m_i2c_read(client, buf, 0, buf + I2C_BUFFER_LENGTH_MAXINUM * i, remain_bytes); + else + ret = ft8006m_i2c_read(client, buf, 0, buf + I2C_BUFFER_LENGTH_MAXINUM * i, I2C_BUFFER_LENGTH_MAXINUM); + remain_bytes -= I2C_BUFFER_LENGTH_MAXINUM; + } + } + + return ret; +} + +/************************************************************************ +* Name: fts_gesture_fw +* Brief: Check IC's gesture recognise by FW or not +* Input: +* Output: +* Return: 1- FW 0- Driver +***********************************************************************/ +static int fts_gesture_fw(void) +{ + int ret = 0; + + switch (ft8006m_chip_types.chip_idh) { + case 0x54: + case 0x58: + case 0x64: + case 0x87: + case 0x86: + case 0x80: + case 0xE7: + ret = 1; + break; + default: + ret = 0; + break; + } + return ret; +} + +/************************************************************************ +* Name: ft8006m_gesture_readdata +* Brief: read data from TP register +* Input: +* Output: +* Return: fail <0 +***********************************************************************/ +int ft8006m_gesture_readdata(struct i2c_client *client) +{ + u8 buf[FTS_GESTRUE_POINTS * 4] = { 0 }; + int ret = -1; + int i = 0; + int gestrue_id = 0; + int read_bytes = 0; + u8 pointnum; + + FTS_FUNC_ENTER(); + /* init variable before read gesture point */ + memset(fts_ft8006m_gesture_data.header, 0, FTS_GESTRUE_POINTS_HEADER); + memset(fts_ft8006m_gesture_data.coordinate_x, 0, FTS_GESTRUE_POINTS * sizeof(u16)); + memset(fts_ft8006m_gesture_data.coordinate_y, 0, FTS_GESTRUE_POINTS * sizeof(u16)); + + buf[0] = FTS_REG_GESTURE_OUTPUT_ADDRESS; + ret = ft8006m_i2c_read(client, buf, 1, buf, FTS_GESTRUE_POINTS_HEADER); + if (ret < 0) { + FTS_ERROR("[GESTURE]Read gesture header data failed!!"); + FTS_FUNC_EXIT(); + return ret; + } + + /* FW recognize gesture */ + if (fts_gesture_fw()) { + memcpy(fts_ft8006m_gesture_data.header, buf, FTS_GESTRUE_POINTS_HEADER); + gestrue_id = buf[0]; + pointnum = buf[1]; + read_bytes = ((int)pointnum) * 4 + 2; + buf[0] = FTS_REG_GESTURE_OUTPUT_ADDRESS; + FTS_DEBUG("[GESTURE]PointNum=%d", pointnum); + ret = fts_gesture_read_buffer(client, buf, read_bytes); + if (ret < 0) { + FTS_ERROR("[GESTURE]Read gesture touch data failed!!"); + FTS_FUNC_EXIT(); + return ret; + } + + fts_gesture_report(ft8006m_input_dev, gestrue_id); + for (i = 0; i < pointnum; i++) { + fts_ft8006m_gesture_data.coordinate_x[i] = (((s16) buf[0 + (4 * i + 2)]) & 0x0F) << 8 + | (((s16) buf[1 + (4 * i + 2)]) & 0xFF); + fts_ft8006m_gesture_data.coordinate_y[i] = (((s16) buf[2 + (4 * i + 2)]) & 0x0F) << 8 + | (((s16) buf[3 + (4 * i + 2)]) & 0xFF); + } + FTS_FUNC_EXIT(); + return 0; + } else { + FTS_ERROR("[GESTURE]IC 0x%x need gesture lib to support gestures.", ft8006m_chip_types.chip_idh); + return 0; + } +} + +/***************************************************************************** +* Name: ft8006m_gesture_recovery +* Brief: recovery gesture state when reset or power on +* Input: +* Output: +* Return: +*****************************************************************************/ +void ft8006m_gesture_recovery(struct i2c_client *client) +{ + if (fts_ft8006m_gesture_data.mode && fts_ft8006m_gesture_data.active) { + ft8006m_i2c_write_reg(client, 0xD1, 0xff); + ft8006m_i2c_write_reg(client, 0xD2, 0xff); + ft8006m_i2c_write_reg(client, 0xD5, 0xff); + ft8006m_i2c_write_reg(client, 0xD6, 0xff); + ft8006m_i2c_write_reg(client, 0xD7, 0xff); + ft8006m_i2c_write_reg(client, 0xD8, 0xff); + ft8006m_i2c_write_reg(client, FTS_REG_GESTURE_EN, ENABLE); + } +} + +/***************************************************************************** +* Name: ft8006m_gesture_suspend +* Brief: +* Input: +* Output: None +* Return: None +*****************************************************************************/ +int ft8006m_gesture_suspend(struct i2c_client *i2c_client) +{ + int i; + u8 state; + + FTS_FUNC_ENTER(); + + /* gesture not enable, return immediately */ + if (fts_ft8006m_gesture_data.mode == 0) { + FTS_DEBUG("gesture is disabled"); + FTS_FUNC_EXIT(); + return -EPERM; + } + + for (i = 0; i < 5; i++) { + ft8006m_i2c_write_reg(i2c_client, 0xd1, 0xff); + ft8006m_i2c_write_reg(i2c_client, 0xd2, 0xff); + ft8006m_i2c_write_reg(i2c_client, 0xd5, 0xff); + ft8006m_i2c_write_reg(i2c_client, 0xd6, 0xff); + ft8006m_i2c_write_reg(i2c_client, 0xd7, 0xff); + ft8006m_i2c_write_reg(i2c_client, 0xd8, 0xff); + ft8006m_i2c_write_reg(i2c_client, FTS_REG_GESTURE_EN, 0x01); + msleep(1); + ft8006m_i2c_read_reg(i2c_client, FTS_REG_GESTURE_EN, &state); + if (state == 1) + break; + } + + if (i >= 5) { + FTS_ERROR("[GESTURE]Enter into gesture(suspend) failed!\n"); + FTS_FUNC_EXIT(); + return -EPERM; + } + + fts_ft8006m_gesture_data.active = 1; + FTS_DEBUG("[GESTURE]Enter into gesture(suspend) successfully!"); + FTS_FUNC_EXIT(); + return 0; +} + +/***************************************************************************** +* Name: ft8006m_gesture_resume +* Brief: +* Input: +* Output: None +* Return: None +*****************************************************************************/ +int ft8006m_gesture_resume(struct i2c_client *client) +{ + int i; + u8 state; + FTS_FUNC_ENTER(); + + /* gesture not enable, return immediately */ + if (fts_ft8006m_gesture_data.mode == 0) { + FTS_DEBUG("gesture is disabled"); + FTS_FUNC_EXIT(); + return -EPERM; + } + + if (fts_ft8006m_gesture_data.active == 0) { + FTS_DEBUG("gesture is unactive"); + FTS_FUNC_EXIT(); + return -EPERM; + } + + fts_ft8006m_gesture_data.active = 0; + for (i = 0; i < 5; i++) { + ft8006m_i2c_write_reg(client, FTS_REG_GESTURE_EN, 0x00); + msleep(1); + ft8006m_i2c_read_reg(client, FTS_REG_GESTURE_EN, &state); + if (state == 0) + break; + } + + if (i >= 5) { + FTS_ERROR("[GESTURE]Clear gesture(resume) failed!\n"); + } + + FTS_FUNC_EXIT(); + return 0; +} +extern int tp_gesture_onoff; + + +static ssize_t gesture_read(struct file *file, char __user *page, size_t size, loff_t *ppos) +{ + int num; + + if (*ppos) + return 0; + + num = sprintf(page, "%d\n", ft8006m_gesture_data.gesture_all_switch); + *ppos += num; + + return num; +} + +static ssize_t gesture_write(struct file *filp, const char __user *buff, size_t len, loff_t *off) +{ + int ret; + char temp[20] = ""; + + ret = copy_from_user(temp, buff, len); + if (ret) { + FTS_ERROR("<%s> copy_from_user failed.\n", __func__); + return -EPERM; + } + + FTS_DEBUG("%s copy_from_user :%s\n", __func__, temp); +#if 0 + if (strnstr(temp, "on", strlen(temp))) + ft8006m_gesture_data.gesture_all_switch = 1; + else + ft8006m_gesture_data.gesture_all_switch = 0; +#else + ret = kstrtouint(temp, 0, &ft8006m_gesture_data.gesture_all_switch); + if (ret) { + FTS_ERROR("kstrtouint failed.\n"); + return -EFAULT; + } +#endif + + FTS_DEBUG("%s ft8006m_gesture_data.gesture_all_switch :%d\n", __func__, ft8006m_gesture_data.gesture_all_switch); + tp_gesture_onoff = ft8006m_gesture_data.gesture_all_switch; + + return len; +} +static const struct file_operations gesture_fops = { + .owner = THIS_MODULE, + .read = gesture_read, + .write = gesture_write, +}; + +static ssize_t gesture_data_read(struct file *file, char __user *page, size_t size, loff_t *ppos) +{ + int num; + + if (*ppos) + return 0; + + num = sprintf(page, "K\n"); + *ppos += num; + + return num; +} + +static ssize_t gesture_data_write(struct file *filp, const char __user *buff, size_t len, loff_t *off) +{ + return len; +} + +static const struct file_operations gesture_data_fops = { + .owner = THIS_MODULE, + .read = gesture_data_read, + .write = gesture_data_write, +}; + +int D1_gesture_init(struct input_dev *input_dev) +{ + struct proc_dir_entry *proc_entry = NULL; + struct proc_dir_entry *proc_data = NULL; + struct proc_dir_entry *parent; + + parent = proc_mkdir("gesture", NULL); + if (!parent) { + pr_err("%s: failed to create proc entry\n", __func__); + return -ENOMEM; + } + + proc_entry = proc_create(GESTURE_NODE, 0666, parent, &gesture_fops); + if (proc_entry == NULL) { + FTS_ERROR("CAN't create proc entry /proc/%s !", GESTURE_NODE); + return -EPERM; + } else { + FTS_DEBUG("Created proc entry /proc/%s !", GESTURE_NODE); + } + + proc_data = proc_create(GESTURE_DATA, 0666, parent, &gesture_data_fops); + if (proc_data == NULL) { + FTS_ERROR("CAN't create proc entry /proc/%s !", GESTURE_DATA); + return -EPERM; + } else { + FTS_DEBUG("Created proc entry /proc/%s !", GESTURE_DATA); + } + input_set_capability(input_dev, EV_KEY, DOUBLE_CLICK); + __set_bit(DOUBLE_CLICK, input_dev->keybit); + + return 0; +} +/***************************************************************************** +* Name: ft8006m_gesture_init +* Brief: +* Input: +* Output: None +* Return: None +*****************************************************************************/ +int ft8006m_gesture_init(struct input_dev *input_dev, struct i2c_client *client) +{ + FTS_FUNC_ENTER(); + D1_gesture_init(input_dev); + fts_ft8006m_gesture_data.mode = 1; + fts_ft8006m_gesture_data.active = 0; + FTS_FUNC_EXIT(); + return 0; +} + +/************************************************************************ +* Name: ft8006m_gesture_exit +* Brief: call when driver removed +* Input: +* Output: +* Return: +***********************************************************************/ +int ft8006m_gesture_exit(struct i2c_client *client) +{ + FTS_FUNC_ENTER(); + sysfs_remove_group(&client->dev.kobj, &fts_gesture_group); + FTS_FUNC_EXIT(); + return 0; +} + +#endif diff --git a/drivers/input/touchscreen/FT8006m/focaltech_i2c.c b/drivers/input/touchscreen/FT8006m/focaltech_i2c.c new file mode 100644 index 0000000000000..d4bef1090d1e6 --- /dev/null +++ b/drivers/input/touchscreen/FT8006m/focaltech_i2c.c @@ -0,0 +1,217 @@ +/* + * + * FocalTech TouchScreen driver. + * + * Copyright (c) 2010-2017, FocalTech Systems, Ltd., all rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +/************************************************************************ +* +* File Name: focaltech_i2c.c +* +* Author: fupeipei +* +* Created: 2016-08-04 +* +* Abstract: i2c communication with TP +* +* Version: v1.0 +* +* Revision History: +* v1.0: +* First release. By fupeipei 2016-08-04 +************************************************************************/ + +/***************************************************************************** +* Included header files +*****************************************************************************/ +#include "focaltech_core.h" + +/***************************************************************************** +* Private constant and macro definitions using #define +*****************************************************************************/ + +/***************************************************************************** +* Private enumerations, structures and unions using typedef +*****************************************************************************/ + +/***************************************************************************** +* Static variables +*****************************************************************************/ +static DEFINE_MUTEX(i2c_rw_access); + +/***************************************************************************** +* Global variable or extern global variabls/functions +*****************************************************************************/ + +/***************************************************************************** +* Static function prototypes +*****************************************************************************/ + +/***************************************************************************** +* functions body +*****************************************************************************/ + +/************************************************************************ +* Name: ft8006m_i2c_read +* Brief: i2c read +* Input: i2c info, write buf, write len, read buf, read len +* Output: get data in the 3rd buf +* Return: fail <0 +***********************************************************************/ +int ft8006m_i2c_read(struct i2c_client *client, char *writebuf, int writelen, char *readbuf, int readlen) +{ + int ret = 0; + int i = 0; + + mutex_lock(&i2c_rw_access); + + if (readlen > 0) { + if (writelen > 0) { + struct i2c_msg msgs[] = { + { + .addr = client->addr, + .flags = 0, + .len = writelen, + .buf = writebuf, + }, + { + .addr = client->addr, + .flags = I2C_M_RD, + .len = readlen, + .buf = readbuf, + }, + }; + for (i = 0; i < 3; i++) { + ret = i2c_transfer(client->adapter, msgs, 2); + if (ret < 0) { + FTS_ERROR("[IIC]: i2c_transfer(write) error, ret=%d!!", ret); + } else + break; + } + } else { + struct i2c_msg msgs[] = { + { + .addr = client->addr, + .flags = I2C_M_RD, + .len = readlen, + .buf = readbuf, + }, + }; + for (i = 0; i < 3; i++) { + ret = i2c_transfer(client->adapter, msgs, 1); + if (ret < 0) { + FTS_ERROR("[IIC]: i2c_transfer(read) error, ret=%d!!", ret); + } else + break; + } + } + } + + mutex_unlock(&i2c_rw_access); + return ret; +} + +/************************************************************************ +* Name: ft8006m_i2c_write +* Brief: i2c write +* Input: i2c info, write buf, write len +* Output: no +* Return: fail <0 +***********************************************************************/ +int ft8006m_i2c_write(struct i2c_client *client, char *writebuf, int writelen) +{ + int ret = 0; + int i = 0; + + mutex_lock(&i2c_rw_access); + if (writelen > 0) { + struct i2c_msg msgs[] = { + { + .addr = client->addr, + .flags = 0, + .len = writelen, + .buf = writebuf, + }, + }; + for (i = 0; i < 3; i++) { + ret = i2c_transfer(client->adapter, msgs, 1); + if (ret < 0) { + FTS_ERROR("%s: i2c_transfer(write) error, ret=%d", __func__, ret); + } else + break; + } + } + mutex_unlock(&i2c_rw_access); + + return ret; +} + +/************************************************************************ +* Name: ft8006m_i2c_write_reg +* Brief: write register +* Input: i2c info, reg address, reg value +* Output: no +* Return: fail <0 +***********************************************************************/ +int ft8006m_i2c_write_reg(struct i2c_client *client, u8 regaddr, u8 regvalue) +{ + u8 buf[2] = {0}; + + buf[0] = regaddr; + buf[1] = regvalue; + return ft8006m_i2c_write(client, buf, sizeof(buf)); +} + +/************************************************************************ +* Name: ft8006m_i2c_read_reg +* Brief: read register +* Input: i2c info, reg address, reg value +* Output: get reg value +* Return: fail <0 +***********************************************************************/ +int ft8006m_i2c_read_reg(struct i2c_client *client, u8 regaddr, u8 *regvalue) +{ + return ft8006m_i2c_read(client, ®addr, 1, regvalue, 1); +} + +/************************************************************************ +* Name: ft8006m_i2c_init +* Brief: fts i2c init +* Input: +* Output: +* Return: +***********************************************************************/ +int ft8006m_i2c_init(void) +{ + FTS_FUNC_ENTER(); + + FTS_FUNC_EXIT(); + return 0; +} +/************************************************************************ +* Name: ft8006m_i2c_exit +* Brief: fts i2c exit +* Input: +* Output: +* Return: +***********************************************************************/ +int ft8006m_i2c_exit(void) +{ + FTS_FUNC_ENTER(); + + FTS_FUNC_EXIT(); + return 0; +} + diff --git a/drivers/input/touchscreen/FT8006m/focaltech_point_report_check.c b/drivers/input/touchscreen/FT8006m/focaltech_point_report_check.c new file mode 100755 index 0000000000000..0671a7882f95d --- /dev/null +++ b/drivers/input/touchscreen/FT8006m/focaltech_point_report_check.c @@ -0,0 +1,150 @@ +/* + * + * FocalTech TouchScreen driver. + * + * Copyright (c) 2010-2017, FocalTech Systems, Ltd., all rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +/***************************************************************************** +* +* File Name: focaltech_point_report_check.c +* +* Author: WangTao +* +* Created: 2016-11-16 +* +* Abstract: point report check function +* +* Version: v1.0 +* +* Revision History: +* v1.0: +* First release. By WangTao 2016-11-16 +*****************************************************************************/ + +/***************************************************************************** +* Included header files +*****************************************************************************/ +#include "focaltech_core.h" + +#if FTS_POINT_REPORT_CHECK_EN +/***************************************************************************** +* Private constant and macro definitions using #define +*****************************************************************************/ +#define POINT_REPORT_CHECK_WAIT_TIME 200 + +/***************************************************************************** +* Private enumerations, structures and unions using typedef +*****************************************************************************/ + +/***************************************************************************** +* Static variables +*****************************************************************************/ +static struct delayed_work fts_point_report_check_work; +static struct workqueue_struct *fts_point_report_check_workqueue + +/***************************************************************************** +* Global variable or extern global variabls/functions +*****************************************************************************/ + +/***************************************************************************** +* Static function prototypes +*****************************************************************************/ + +/***************************************************************************** +* functions body +*****************************************************************************/ + + +/***************************************************************************** +* Name: fts_point_report_check_func +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +static void fts_point_report_check_func(struct work_struct *work) +{ + +#if FTS_MT_PROTOCOL_B_EN + unsigned int finger_count = 0; +#endif + + FTS_FUNC_ENTER(); + mutex_lock(&ft8006m_wq_data->report_mutex); + +#if FTS_MT_PROTOCOL_B_EN + for (finger_count = 0; finger_count < ft8006m_wq_data->pdata->max_touch_number; finger_count++) { + input_mt_slot(ft8006m_input_dev, finger_count); + input_mt_report_slot_state(ft8006m_input_dev, MT_TOOL_FINGER, false); + } +#else + input_mt_sync(ft8006m_input_dev); +#endif + input_report_key(ft8006m_input_dev, BTN_TOUCH, 0); + input_sync(ft8006m_input_dev); + + mutex_unlock(&ft8006m_wq_data->report_mutex); + + FTS_FUNC_EXIT(); +} + +void fts_point_report_check_queue_work(void) +{ + cancel_delayed_work(&fts_point_report_check_work); + queue_delayed_work(fts_point_report_check_workqueue, &fts_point_report_check_work, msecs_to_jiffies(POINT_REPORT_CHECK_WAIT_TIME)); +} + +/***************************************************************************** +* Name: fts_point_report_check_init +* Brief: +* Input: +* Output: +* Return: < 0: Fail to create esd check queue +*****************************************************************************/ +int fts_point_report_check_init(void) +{ + FTS_FUNC_ENTER(); + + INIT_DELAYED_WORK(&fts_point_report_check_work, fts_point_report_check_func); + fts_point_report_check_workqueue = create_workqueue("fts_point_report_check_func_wq"); + if (fts_point_report_check_workqueue == NULL) { + FTS_ERROR("[POINT_REPORT]: Failed to create fts_point_report_check_workqueue!!"); + } else { + FTS_DEBUG("[POINT_REPORT]: Success to create fts_point_report_check_workqueue!!"); + } + + FTS_FUNC_EXIT(); + + return 0; +} + +/***************************************************************************** +* Name: fts_point_report_check_exit +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +int fts_point_report_check_exit(void) +{ + FTS_FUNC_ENTER(); + + destroy_workqueue(fts_point_report_check_workqueue); + + FTS_FUNC_EXIT(); + return 0; +} +#endif /* FTS_POINT_REPORT_CHECK_EN */ + diff --git a/drivers/input/touchscreen/FT8006m/focaltech_sensor.c b/drivers/input/touchscreen/FT8006m/focaltech_sensor.c new file mode 100755 index 0000000000000..088a9a73f1f6b --- /dev/null +++ b/drivers/input/touchscreen/FT8006m/focaltech_sensor.c @@ -0,0 +1,314 @@ +/* + * + * FocalTech TouchScreen driver. + * + * Copyright (c) 2010-2017, FocalTech Systems, Ltd., all rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +/***************************************************************************** +* +* File Name: focaltech_esdcheck.c +* +* Author: Focaltech Driver Team +* +* Created: 2016-08-03 +* +* Abstract: Sensor +* +* Version: v1.0 +* +* Revision History: +* v1.0: +* First release. By luougojin 2016-08-03 +*****************************************************************************/ + +/***************************************************************************** +* Included header files +*****************************************************************************/ +#include "focaltech_core.h" + +#if FTS_PSENSOR_EN +/***************************************************************************** +* Private constant and macro definitions using #define +*****************************************************************************/ +/* psensor register address*/ +#define FTS_REG_PSENSOR_ENABLE 0xB0 +#define FTS_REG_PSENSOR_STATUS 0x01 + +/* psensor register bits*/ +#define FTS_PSENSOR_ENABLE_MASK 0x01 +#define FTS_PSENSOR_STATUS_NEAR 0xC0 +#define FTS_PSENSOR_STATUS_FAR 0xE0 +#define FTS_PSENSOR_FAR_TO_NEAR 0 +#define FTS_PSENSOR_NEAR_TO_FAR 1 +#define FTS_PSENSOR_ORIGINAL_STATE_FAR 1 +#define FTS_PSENSOR_WAKEUP_TIMEOUT 500 + +/***************************************************************************** +* Static variables +*****************************************************************************/ +static struct sensors_classdev __maybe_unused sensors_proximity_cdev = { + .name = "fts-proximity", + .vendor = "FocalTech", + .version = 1, + .handle = SENSORS_PROXIMITY_HANDLE, + .type = SENSOR_TYPE_PROXIMITY, + .max_range = "5.0", + .resolution = "5.0", + .sensor_power = "0.1", + .min_delay = 0, + .fifo_reserved_event_count = 0, + .fifo_max_event_count = 0, + .enabled = 0, + .delay_msec = 200, + .sensors_enable = NULL, + .sensors_poll_delay = NULL, +}; + +/***************************************************************************** +* functions body +*****************************************************************************/ +/***************************************************************************** +* Name: fts_psensor_support_enabled +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +static inline bool fts_psensor_support_enabled(void) +{ + /*return config_enabled(CONFIG_TOUCHSCREEN_FTS_PSENSOR);*/ + return FTS_PSENSOR_EN; +} + +/***************************************************************************** +* Name: fts_psensor_enable +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +static void fts_psensor_enable(struct fts_ts_data *data, int enable) +{ + u8 state; + int ret = -1; + + if (data->client == NULL) + return; + + ft8006m_i2c_read_reg(data->client, FTS_REG_PSENSOR_ENABLE, &state); + if (enable) + state |= FTS_PSENSOR_ENABLE_MASK; + else + state &= ~FTS_PSENSOR_ENABLE_MASK; + + ret = ft8006m_i2c_write_reg(data->client, FTS_REG_PSENSOR_ENABLE, state); + if (ret < 0) + FTS_ERROR("write psensor switch command failed"); + return; +} + +/***************************************************************************** +* Name: fts_psensor_enable_set +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +static int fts_psensor_enable_set(struct sensors_classdev *sensors_cdev, + unsigned int enable) +{ + struct fts_psensor_platform_data *psensor_pdata = + container_of(sensors_cdev, + struct fts_psensor_platform_data, ps_cdev); + struct fts_ts_data *data = psensor_pdata->data; + struct input_dev *input_dev = data->psensor_pdata->input_psensor_dev; + + mutex_lock(&input_dev->mutex); + fts_psensor_enable(data, enable); + psensor_pdata->tp_psensor_data = FTS_PSENSOR_ORIGINAL_STATE_FAR; + if (enable) + psensor_pdata->tp_psensor_opened = 1; + else + psensor_pdata->tp_psensor_opened = 0; + mutex_unlock(&input_dev->mutex); + return enable; +} + +/***************************************************************************** +* Name: fts_read_tp_psensor_data +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +static int fts_read_tp_psensor_data(struct fts_ts_data *data) +{ + u8 psensor_status; + char tmp; + int ret = 1; + + ft8006m_i2c_read_reg(data->client, + FTS_REG_PSENSOR_STATUS, &psensor_status); + + tmp = data->psensor_pdata->tp_psensor_data; + if (psensor_status == FTS_PSENSOR_STATUS_NEAR) + data->psensor_pdata->tp_psensor_data = + FTS_PSENSOR_FAR_TO_NEAR; + else if (psensor_status == FTS_PSENSOR_STATUS_FAR) + data->psensor_pdata->tp_psensor_data = + FTS_PSENSOR_NEAR_TO_FAR; + + if (tmp != data->psensor_pdata->tp_psensor_data) { + FTS_ERROR("%s sensor data changed", __func__); + ret = 0; + } + return ret; +} + + +int fts_sensor_read_data(struct fts_ts_data *data) +{ + int ret = 0; + if (fts_psensor_support_enabled() && data->psensor_pdata->tp_psensor_opened) { + ret = fts_read_tp_psensor_data(data); + if (!ret) { + if (data->suspended) { + pm_wakeup_event(&data->client->dev, FTS_PSENSOR_WAKEUP_TIMEOUT); + } + input_report_abs(data->psensor_pdata->input_psensor_dev, + ABS_DISTANCE, + data->psensor_pdata->tp_psensor_data); + input_sync(data->psensor_pdata->input_psensor_dev); + } + return 1; + } + return 0; +} + +int fts_sensor_suspend(struct fts_ts_data *data) +{ + int ret = 0; + + if (fts_psensor_support_enabled() && + device_may_wakeup(&data->client->dev) && + data->psensor_pdata->tp_psensor_opened) { + ret = enable_irq_wake(data->client->irq); + if (ret != 0) { + FTS_ERROR("%s: set_irq_wake failed", __func__); + } + data->suspended = true; + return 1; + } + + return 0; +} + + +int fts_sensor_resume(struct fts_ts_data *data) +{ + int ret = 0; + + if (fts_psensor_support_enabled() && + device_may_wakeup(&data->client->dev) && data->psensor_pdata->tp_psensor_opened) { + ret = disable_irq_wake(data->client->irq); + if (ret) { + FTS_ERROR("%s: disable_irq_wake failed", __func__); + } + data->suspended = false; + return 1; + } + + return 0; +} + + +int fts_sensor_init(struct fts_ts_data *data) +{ + struct fts_psensor_platform_data *psensor_pdata; + struct input_dev *psensor_input_dev; + int err; + + if (fts_psensor_support_enabled()) { + device_init_wakeup(&data->client->dev, 1); + psensor_pdata = devm_kzalloc(&data->client->dev, + sizeof(struct fts_psensor_platform_data), + GFP_KERNEL); + if (!psensor_pdata) { + FTS_ERROR("Failed to allocate memory"); + goto irq_free; + } + data->psensor_pdata = psensor_pdata; + + psensor_input_dev = input_allocate_device(); + if (!psensor_input_dev) { + FTS_ERROR("Failed to allocate device"); + goto free_psensor_pdata; + } + + __set_bit(EV_ABS, psensor_input_dev->evbit); + input_set_abs_params(psensor_input_dev, ABS_DISTANCE, 0, 1, 0, 0); + psensor_input_dev->name = "proximity"; + psensor_input_dev->id.bustype = BUS_I2C; + psensor_input_dev->dev.parent = &data->client->dev; + data->psensor_pdata->input_psensor_dev = psensor_input_dev; + + err = input_register_device(psensor_input_dev); + if (err) { + FTS_ERROR("Unable to register device, err=%d", err); + goto free_psensor_input_dev; + } + + psensor_pdata->ps_cdev = sensors_proximity_cdev; + psensor_pdata->ps_cdev.sensors_enable = fts_psensor_enable_set; + psensor_pdata->data = data; + + err = sensors_classdev_register(&data->client->dev, &psensor_pdata->ps_cdev); + if (err) { + goto unregister_psensor_input_device; + } + } + + return 0; +unregister_psensor_input_device: + if (fts_psensor_support_enabled()) + input_unregister_device(data->psensor_pdata->input_psensor_dev); +free_psensor_input_dev: + if (fts_psensor_support_enabled()) + input_free_device(data->psensor_pdata->input_psensor_dev); +free_psensor_pdata: + if (fts_psensor_support_enabled()) { + devm_kfree(&data->client->dev, psensor_pdata); + data->psensor_pdata = NULL; + } +irq_free: + if (fts_psensor_support_enabled()) + device_init_wakeup(&data->client->dev, 0); + free_irq(data->client->irq, data); + + return 1; +} + +int fts_sensor_remove(struct fts_ts_data *data) +{ + if (fts_psensor_support_enabled()) { + device_init_wakeup(&data->client->dev, 0); + sensors_classdev_unregister(&data->psensor_pdata->ps_cdev); + input_unregister_device(data->psensor_pdata->input_psensor_dev); + devm_kfree(&data->client->dev, data->psensor_pdata); + data->psensor_pdata = NULL; + } + return 0; +} +#endif /* FTS_PSENSOR_EN */ diff --git a/drivers/input/touchscreen/FT8006m/focaltech_test/Makefile b/drivers/input/touchscreen/FT8006m/focaltech_test/Makefile new file mode 100755 index 0000000000000..df3a77207ed96 --- /dev/null +++ b/drivers/input/touchscreen/FT8006m/focaltech_test/Makefile @@ -0,0 +1,10 @@ +#drivers/input/touchscreen/focaltech_touch/focaltech_test +# +#Makefile for test module +# + + + +obj-$(CONFIG_TOUCHSCREEN_FT8006M) += src/ +obj-$(CONFIG_TOUCHSCREEN_FT8006M) += supported_ic/ + diff --git a/drivers/input/touchscreen/FT8006m/focaltech_test/focaltech_test_config.h b/drivers/input/touchscreen/FT8006m/focaltech_test/focaltech_test_config.h new file mode 100755 index 0000000000000..1b368c60720ff --- /dev/null +++ b/drivers/input/touchscreen/FT8006m/focaltech_test/focaltech_test_config.h @@ -0,0 +1,63 @@ +/************************************************************************ +* Copyright (C) 2012-2017, Focaltech Systems (R)£¬All Rights Reserved. +* Copyright (C) 2018 XiaoMi, Inc. +* +* File Name: focaltech_test_config.h +* +* Author: Software Development Team, AE +* +* Created: 2016-08-01 +* +* Abstract: global function for test +* +************************************************************************/ +#include "../focaltech_core.h" + + +/*----------------------------------------------------------- +IC Type Test +-----------------------------------------------------------*/ +#define FT5X46_TEST 0x20 +#define FT6X36_TEST 0x40 +#define FT5822_TEST 0x70 +#define FT8606_TEST 0x90 +#define FT8716_TEST 0xA0 +#define FT3C47_TEST 0xB0 +#define FT8607_TEST 0xC0 +#define FT8736_TEST 0xE0 +#define FT3D47_TEST 0xF0 +#define FTE716_TEST 0x100 +#define FTE736_TEST 0x140 +#define FT8006_TEST 0x130 + + +#ifdef FTS_CHIP_TYPE + +#if (FTS_CHIP_TYPE == _FT8716) +#define FTS_CHIP_TEST_TYPE FT8716_TEST +#elif(FTS_CHIP_TYPE == _FT8736) +#define FTS_CHIP_TEST_TYPE FT8736_TEST +#elif(FTS_CHIP_TYPE == _FT8006) +#define FTS_CHIP_TEST_TYPE FT8006_TEST +#elif(FTS_CHIP_TYPE == _FT8606) +#define FTS_CHIP_TEST_TYPE FT8606_TEST +#elif(FTS_CHIP_TYPE == _FT8607) +#define FTS_CHIP_TEST_TYPE FT8607_TEST +#elif(FTS_CHIP_TYPE == _FTE716) +#define FTS_CHIP_TEST_TYPE FTE716_TEST +#elif(FTS_CHIP_TYPE == _FT3D47) +#define FTS_CHIP_TEST_TYPE FT3D47_TEST +#elif(IC_SERIALS == 0x01) +#define FTS_CHIP_TEST_TYPE FT5822_TEST +#elif(FTS_CHIP_TYPE == _FT3C47U) +#define FTS_CHIP_TEST_TYPE FT3C47_TEST +#elif(IC_SERIALS == 0x02) +#define FTS_CHIP_TEST_TYPE FT5X46_TEST +#elif((IC_SERIALS == 0x03) || (IC_SERIALS == 0x04)) +#define FTS_CHIP_TEST_TYPE FT6X36_TEST +#endif + +#else +#define FTS_CHIP_TEST_TYPE FT8716_TEST + +#endif diff --git a/drivers/input/touchscreen/FT8006m/focaltech_test/include/focaltech_ic_table.h b/drivers/input/touchscreen/FT8006m/focaltech_test/include/focaltech_ic_table.h new file mode 100755 index 0000000000000..9d7452ac5705d --- /dev/null +++ b/drivers/input/touchscreen/FT8006m/focaltech_test/include/focaltech_ic_table.h @@ -0,0 +1,115 @@ +/* + * + * FocalTech TouchScreen driver. + * + * Copyright (c) 2010-2017, FocalTech Systems, Ltd., all rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#ifndef __FOCALTECH_IC_TABLE_H__ +#define __FOCALTECH_IC_TABLE_H__ +/***************************************************************************** +* +* File Name: focaltech_ic_table.h +* +* Author: Xu YF & ZR, Software Department, FocalTech +* +* Created: 2016-03-17 +* +* Modify: +* +* Abstract: +* +* Reference: +* +*****************************************************************************/ + +/***************************************************************************** +* 1.Included header files +*****************************************************************************/ + +/*----------------------------------------------------------- +IC corresponding code, each of the IC code is 8 bit, high 4 bit on behalf of the same series, low 4 bit on behalf of the specific IC +-----------------------------------------------------------*/ +enum IC_Type { + IC_FT5X36 = 0x10, + IC_FT5X36i = 0x11, + IC_FT3X16 = 0x12, + IC_FT3X26 = 0x13, + + IC_FT5X46 = 0x21, + IC_FT5X46i = 0x22, + IC_FT5526 = 0x23, + IC_FT3X17 = 0x24, + IC_FT5436 = 0x25, + IC_FT3X27 = 0x26, + IC_FT5526I = 0x27, + IC_FT5416 = 0x28, + IC_FT5426 = 0x29, + IC_FT5435 = 0x2A, + IC_FT7681 = 0x2B, + IC_FT7661 = 0x2C, + IC_FT7511 = 0x2D, + IC_FT7421 = 0x2E, + IC_FT6X06 = 0x30, + IC_FT3X06 = 0x31, + IC_FT6X36 = 0x40, + IC_FT3X07 = 0x41, + IC_FT6416 = 0x42, + IC_FT6426 = 0x43, + IC_FT7401 = 0x44, + IC_FT3407U = 0x45, + IC_FT6236U = 0x46, + IC_FT6436U = 0x47, + IC_FT3267 = 0x48, + IC_FT3367 = 0x49, + IC_FT5X16 = 0x50, + IC_FT5X12 = 0x51, + IC_FT5506 = 0x60, + IC_FT5606 = 0x61, + IC_FT5816 = 0x62, + IC_FT5822 = 0x70, + IC_FT5626 = 0x71, + IC_FT5726 = 0x72, + IC_FT5826B = 0x73, + IC_FT3617 = 0x74, + IC_FT3717 = 0x75, + IC_FT7811 = 0x76, + IC_FT5826S = 0x77, + IC_FT5306 = 0x80, + IC_FT5406 = 0x81, + IC_FT8606 = 0x90, + IC_FT8716 = 0xA0, + IC_FT3C47U = 0xB0, + IC_FT8607 = 0xC0, + IC_FT8707 = 0xD0, + IC_FT8736 = 0xE0, + IC_FT3D47 = 0xF0, + IC_FTE716 = 0x100, + IC_FT5442 = 0x110, + IC_FT3428U = 0x120, + IC_FT8201 = 0x130, + IC_FT8006M = 0x131, + IC_FTE736 = 0x140 +}; + + + +extern unsigned int ft8006m_ic_table_get_ic_code_from_ic_name(char *strIcName); +extern void ft8006m_ic_table_get_ic_name_from_ic_code(unsigned int ic_code, char *strIcName); + +extern unsigned int ft8006m_ic_table_get_ic_code_from_chip_id(unsigned char chip_id, unsigned char chip_id2); +extern unsigned int ft8006m_ic_table_get_chip_id_from_ic_code(unsigned int ic_code, unsigned char *chip_id, unsigned char *chip_id2); +extern int ft8006m_ic_table_need_chip_id2(unsigned int chip_id); + +#endif diff --git a/drivers/input/touchscreen/FT8006m/focaltech_test/include/focaltech_test_detail_threshold.h b/drivers/input/touchscreen/FT8006m/focaltech_test/include/focaltech_test_detail_threshold.h new file mode 100755 index 0000000000000..9518f6900da0a --- /dev/null +++ b/drivers/input/touchscreen/FT8006m/focaltech_test/include/focaltech_test_detail_threshold.h @@ -0,0 +1,131 @@ +/************************************************************************ +* Copyright (C) 2012-2017, Focaltech Systems (R)£¬All Rights Reserved. +* Copyright (C) 2018 XiaoMi, Inc. +* +* File Name: focaltech_test_detail_threshold.h +* +* Author: Software Development Team, AE +* +* Created: 2016-08-01 +* +* Abstract: Set Detail Threshold for all IC +* +************************************************************************/ + +#ifndef _DETAIL_THRESHOLD_H +#define _DETAIL_THRESHOLD_H + +#define TX_NUM_MAX 60 +#define RX_NUM_MAX 60 +#define NUM_MAX (TX_NUM_MAX)*(RX_NUM_MAX) +#define MAX_PATH 256 + +#define BUFFER_LENGTH 512 +#define MAX_TEST_ITEM 20 +#define MAX_GRAPH_ITEM 20 +#define MAX_CHANNEL_NUM 144 + +#define FORCETOUCH_ROW 1 + +struct stCfg_Incell_DetailThreshold { + unsigned char (*InvalidNode)[RX_NUM_MAX]; + + + int (*RawDataTest_Min)[RX_NUM_MAX]; + int (*RawDataTest_Max)[RX_NUM_MAX]; + + int (*CBTest_Min)[RX_NUM_MAX]; + int (*CBTest_Max)[RX_NUM_MAX]; + + int (*CBUniformityTest_CHX_Linearity)[RX_NUM_MAX]; + int (*CBUniformityTest_CHY_Linearity)[RX_NUM_MAX]; + +}; + +struct stCfg_MCap_DetailThreshold { + unsigned char (*InvalidNode)[RX_NUM_MAX]; + unsigned char (*InvalidNode_SC)[RX_NUM_MAX]; + + int (*RawDataTest_Min)[RX_NUM_MAX]; + int (*RawDataTest_Max)[RX_NUM_MAX]; + int (*RawDataTest_Low_Min)[RX_NUM_MAX]; + int (*RawDataTest_Low_Max)[RX_NUM_MAX]; + int (*RawDataTest_High_Min)[RX_NUM_MAX]; + int (*RawDataTest_High_Max)[RX_NUM_MAX]; + int (*RxLinearityTest_Max)[RX_NUM_MAX]; + int (*TxLinearityTest_Max)[RX_NUM_MAX]; + int (*PanelDifferTest_Max)[RX_NUM_MAX]; + int (*PanelDifferTest_Min)[RX_NUM_MAX]; + int (*SCapRawDataTest_ON_Max)[RX_NUM_MAX]; + int (*SCapRawDataTest_ON_Min)[RX_NUM_MAX]; + int (*SCapRawDataTest_OFF_Max)[RX_NUM_MAX]; + int (*SCapRawDataTest_OFF_Min)[RX_NUM_MAX]; + short (*SCapCbTest_ON_Max)[RX_NUM_MAX]; + short (*SCapCbTest_ON_Min)[RX_NUM_MAX]; + short (*SCapCbTest_OFF_Max)[RX_NUM_MAX]; + short (*SCapCbTest_OFF_Min)[RX_NUM_MAX]; + int (*NoistTest_Coefficient)[RX_NUM_MAX]; + int (*LCDNoistTest_Coefficient)[RX_NUM_MAX]; + + int ForceTouch_SCapRawDataTest_ON_Max[FORCETOUCH_ROW][RX_NUM_MAX]; + int ForceTouch_SCapRawDataTest_ON_Min[FORCETOUCH_ROW][RX_NUM_MAX]; + int ForceTouch_SCapRawDataTest_OFF_Max[FORCETOUCH_ROW][RX_NUM_MAX]; + int ForceTouch_SCapRawDataTest_OFF_Min[FORCETOUCH_ROW][RX_NUM_MAX]; + int ForceTouch_SCapCbTest_ON_Max[FORCETOUCH_ROW][RX_NUM_MAX]; + int ForceTouch_SCapCbTest_ON_Min[FORCETOUCH_ROW][RX_NUM_MAX]; + int ForceTouch_SCapCbTest_OFF_Max[FORCETOUCH_ROW][RX_NUM_MAX]; + int ForceTouch_SCapCbTest_OFF_Min[FORCETOUCH_ROW][RX_NUM_MAX]; +}; + +struct stCfg_SCap_DetailThreshold { + int TempData[MAX_CHANNEL_NUM]; + int RawDataTest_Max[MAX_CHANNEL_NUM]; + int RawDataTest_Min[MAX_CHANNEL_NUM]; + int CiTest_Max[MAX_CHANNEL_NUM]; + int CiTest_Min[MAX_CHANNEL_NUM]; + int DeltaCiTest_Base[MAX_CHANNEL_NUM]; + int DeltaCiTest_AnotherBase1[MAX_CHANNEL_NUM]; + int DeltaCiTest_AnotherBase2[MAX_CHANNEL_NUM]; + int CiDeviationTest_Base[MAX_CHANNEL_NUM]; + + int NoiseTest_Max[MAX_CHANNEL_NUM]; + int DeltaCxTest_Sort[MAX_CHANNEL_NUM]; + int DeltaCxTest_Area[MAX_CHANNEL_NUM]; + + int CbTest_Max[MAX_CHANNEL_NUM]; + int CbTest_Min[MAX_CHANNEL_NUM]; + int DeltaCbTest_Base[MAX_CHANNEL_NUM]; + int DifferTest_Base[MAX_CHANNEL_NUM]; + int CBDeviationTest_Base[MAX_CHANNEL_NUM]; + int K1DifferTest_Base[MAX_CHANNEL_NUM]; +}; + +void Ft8006m_OnInit_MCap_DetailThreshold(char *strIniFile); +void Ft8006m_OnInit_SCap_DetailThreshold(char *strIniFile); +void Ft8006m_OnInit_Incell_DetailThreshold(char *strIniFile); + +void ft8006m_set_max_channel_num(void); + +void Ft8006m_OnInit_InvalidNode(char *strIniFile); +void Ft8006m_OnInit_DThreshold_RawDataTest(char *strIniFile); +void Ft8006m_OnInit_DThreshold_SCapRawDataTest(char *strIniFile); +void Ft8006m_OnInit_DThreshold_SCapCbTest(char *strIniFile); + +void Ft8006m_OnInit_DThreshold_ForceTouch_SCapRawDataTest(char *strIniFile); +void Ft8006m_OnInit_DThreshold_ForceTouch_SCapCbTest(char *strIniFile); + + +void Ft8006m_OnInit_DThreshold_RxLinearityTest(char *strIniFile); +void Ft8006m_OnInit_DThreshold_TxLinearityTest(char *strIniFile); + +void Ft8006m_OnInit_DThreshold_PanelDifferTest(char *strIniFile); + +void Ft8006m_OnInit_DThreshold_CBTest(char *strIniFile); +void Ft8006m_OnInit_DThreshold_AllButtonCBTest(char *strIniFile); +void Ft8006m_OnThreshold_VkAndVaRawDataSeparateTest(char *strIniFile); + +void Ft8006m_OnGetTestItemParam(char *strItemName, char *strIniFile, int iDefautValue); + +int ft8006m_malloc_struct_DetailThreshold(void); +void ft8006m_free_struct_DetailThreshold(void); +#endif diff --git a/drivers/input/touchscreen/FT8006m/focaltech_test/include/focaltech_test_ini.h b/drivers/input/touchscreen/FT8006m/focaltech_test/include/focaltech_test_ini.h new file mode 100755 index 0000000000000..8342218bae1ea --- /dev/null +++ b/drivers/input/touchscreen/FT8006m/focaltech_test/include/focaltech_test_ini.h @@ -0,0 +1,66 @@ +/************************************************************************ +* Copyright (C) 2012-2017, Focaltech Systems (R)£¬All Rights Reserved. +* Copyright (C) 2018 XiaoMi, Inc. +* +* File Name: focaltech_test_ini.h +* +* Author: Software Development Team, AE +* +* Created: 2016-08-01 +* +* Abstract: parsing function of INI file +* +************************************************************************/ +#ifndef INI_H +#define INI_H + +#define MAX_KEY_NUM 300 +#define MAX_KEY_NAME_LEN 50 +#define MAX_KEY_VALUE_LEN 360 + +#define MAX_CFG_BUF 480 +#define SUCCESS 0 +/* return value */ +#define CFG_OK SUCCESS +#define CFG_SECTION_NOT_FOUND -1 +#define CFG_KEY_NOT_FOUND -2 +#define CFG_ERR -10 + +#define CFG_ERR_OPEN_FILE -10 +#define CFG_ERR_CREATE_FILE -11 +#define CFG_ERR_READ_FILE -12 +#define CFG_ERR_WRITE_FILE -13 +#define CFG_ERR_FILE_FORMAT -14 +#define CFG_ERR_TOO_MANY_KEY_NUM -15 +#define CFG_ERR_OUT_OF_LEN -16 + +#define CFG_ERR_EXCEED_BUF_SIZE -22 + +#define COPYF_OK SUCCESS +#define COPYF_ERR_OPEN_FILE -10 +#define COPYF_ERR_CREATE_FILE -11 +#define COPYF_ERR_READ_FILE -12 +#define COPYF_ERR_WRITE_FILE -13 + +typedef struct _ST_INI_FILE_DATA { + char pSectionName[MAX_KEY_NAME_LEN]; + char pKeyName[MAX_KEY_NAME_LEN]; + char pKeyValue[MAX_KEY_VALUE_LEN]; + int iSectionNameLen; + int iKeyNameLen; + int iKeyValueLen; +} ST_INI_FILE_DATA; + + + +int ft8006m_ini_get_key(char *filedata, char *section, char *key, char *value); + + +int ft8006m_atoi(char *nptr); +char *ft8006m_ini_str_trim_r(char *buf); +char *ft8006m_ini_str_trim_l(char *buf); + +int ft8006m_init_key_data(void); +int ft8006m_ini_get_key_data(char *filedata); +int ft8006m_release_key_data(void); +#endif diff --git a/drivers/input/touchscreen/FT8006m/focaltech_test/include/focaltech_test_main.h b/drivers/input/touchscreen/FT8006m/focaltech_test/include/focaltech_test_main.h new file mode 100755 index 0000000000000..ec53aafc7e770 --- /dev/null +++ b/drivers/input/touchscreen/FT8006m/focaltech_test/include/focaltech_test_main.h @@ -0,0 +1,240 @@ +/************************************************************************ +* Copyright (C) 2012-2017, Focaltech Systems (R)£¬All Rights Reserved. +* Copyright (C) 2018 XiaoMi, Inc. +* +* File Name: focaltech_test_main.h +* +* Author: Software Development Team, AE +* +* Created: 2016-08-01 +* +* Abstract: test entry for all IC +* +************************************************************************/ +#ifndef _TEST_LIB_H +#define _TEST_LIB_H + +#include "focaltech_test_detail_threshold.h" +#include "../focaltech_test_config.h" + +#define boolean unsigned char +#define bool unsigned char +#define BYTE unsigned char +#define false 0 +#define true 1 + +enum NodeType { + NODE_INVALID_TYPE = 0, + NODE_VALID_TYPE = 1, + NODE_KEY_TYPE = 2, + NODE_AST_TYPE = 3, +}; + + +typedef int (*FTS_I2C_READ_FUNCTION)(unsigned char *, int , unsigned char *, int); +typedef int (*FTS_I2C_WRITE_FUNCTION)(unsigned char *, int); + +extern FTS_I2C_READ_FUNCTION ft8006m_i2c_read_test; +extern FTS_I2C_WRITE_FUNCTION ft8006m_i2c_write_test; + +extern int ft8006m_init_i2c_read_func(FTS_I2C_READ_FUNCTION fpI2C_Read); +extern int ft8006m_init_i2c_write_func(FTS_I2C_WRITE_FUNCTION fpI2C_Write); + + + + + + +int ft8006m_set_param_data(char *TestParamData); +boolean ft8006m_start_test_tp(void); +int m_get_test_data(char *pTestData); + + +int ft8006m_focaltech_test_main_init(void); +int ft8006m_focaltech_test_main_exit(void); + + +#define MIN_HOLE_LEVEL (-1) +#define MAX_HOLE_LEVEL 0x7F +/*----------------------------------------------------------- +Error Code for Comm +-----------------------------------------------------------*/ +#define ERROR_CODE_OK 0x00 +#define ERROR_CODE_CHECKSUM_ERROR 0x01 +#define ERROR_CODE_INVALID_COMMAND 0x02 +#define ERROR_CODE_INVALID_PARAM 0x03 +#define ERROR_CODE_IIC_WRITE_ERROR 0x04 +#define ERROR_CODE_IIC_READ_ERROR 0x05 +#define ERROR_CODE_WRITE_USB_ERROR 0x06 +#define ERROR_CODE_WAIT_RESPONSE_TIMEOUT 0x07 +#define ERROR_CODE_PACKET_RE_ERROR 0x08 +#define ERROR_CODE_NO_DEVICE 0x09 +#define ERROR_CODE_WAIT_WRITE_TIMEOUT 0x0a +#define ERROR_CODE_READ_USB_ERROR 0x0b +#define ERROR_CODE_COMM_ERROR 0x0c +#define ERROR_CODE_ALLOCATE_BUFFER_ERROR 0x0d +#define ERROR_CODE_DEVICE_OPENED 0x0e +#define ERROR_CODE_DEVICE_CLOSED 0x0f + +/*----------------------------------------------------------- +Test Status +-----------------------------------------------------------*/ +#define RESULT_NULL 0 +#define RESULT_PASS 1 +#define RESULT_NG 2 +#define RESULT_TESTING 3 +#define RESULT_TBD 4 +#define RESULT_REPLACE 5 +#define RESULT_CONNECTING 6 + +/*----------------------------------------------------------- + +read write max bytes per time +-----------------------------------------------------------*/ + +#define BYTES_PER_TIME 128 + +extern void ft8006m_test_funcs(void); +struct StTestFuncs { + void (*OnInit_TestItem)(char *); + void (*OnInit_BasicThreshold)(char *) ; + void (*SetTestItem)(void) ; + boolean (*Start_Test)(void); + int (*Get_test_data)(char *); +}; +extern struct StTestFuncs ft8006m_g_stTestFuncs; + +struct StruScreenSeting { + int iSelectedIC; + int iTxNum; + int iRxNum; + int isNormalize; + int iUsedMaxTxNum; + int iUsedMaxRxNum; + + unsigned char iChannelsNum; + unsigned char iKeyNum; +}; +extern struct StruScreenSeting ft8006m_g_ScreenSetParam; +struct stTestItem { + unsigned char ItemType; + unsigned char TestNum; + unsigned char TestResult; + unsigned char ItemCode; + + +}; +extern struct stTestItem ft8006m_g_stTestItem[1][MAX_TEST_ITEM]; + +struct structSCapConfEx { + unsigned char ChannelXNum; + unsigned char ChannelYNum; + unsigned char KeyNum; + unsigned char KeyNumTotal; + bool bLeftKey1; + bool bLeftKey2; + bool bLeftKey3; + bool bRightKey1; + bool bRightKey2; + bool bRightKey3; +}; +extern struct structSCapConfEx ft8006m_g_stSCapConfEx; + +enum NORMALIZE_Type { + Overall_Normalize = 0, + Auto_Normalize = 1, +}; + +enum PROOF_TYPE { + Proof_Normal, + Proof_Level0, + Proof_NoWaterProof, +}; + +/*----------------------------------------------------------- +IC Capacitance Type 0:Self Capacitance, 1:Mutual Capacitance, 2:IDC +-----------------------------------------------------------*/ +enum enum_Report_Protocol_Type { + Self_Capacitance = 0, + Mutual_Capacitance = 1, + IDC_Capacitance = 2, +}; + +#if (FTS_CHIP_TEST_TYPE == FT6X36_TEST) +#define IC_Capacitance_Type 0 +#elif ((FTS_CHIP_TEST_TYPE == FT3C47_TEST) || (FTS_CHIP_TEST_TYPE == FT5822_TEST) || (FTS_CHIP_TEST_TYPE == FT5X46_TEST) || (FTS_CHIP_TEST_TYPE == FT3D47_TEST)) +#define IC_Capacitance_Type 1 +#elif ((FTS_CHIP_TEST_TYPE == FT8606_TEST) || (FTS_CHIP_TEST_TYPE == FT8607_TEST) || (FTS_CHIP_TEST_TYPE == FT8716_TEST) || (FTS_CHIP_TEST_TYPE == FT8736_TEST) || (FTS_CHIP_TEST_TYPE == FTE716_TEST) || (FTS_CHIP_TEST_TYPE == FTE736_TEST) || (FTS_CHIP_TEST_TYPE == FT8006_TEST)) +#define IC_Capacitance_Type 2 +#endif + + + + +extern struct stCfg_MCap_DetailThreshold ft8006m_g_stCfg_MCap_DetailThreshold; +extern struct stCfg_SCap_DetailThreshold ft8006m_g_stCfg_SCap_DetailThreshold; +extern struct stCfg_Incell_DetailThreshold ft8006m_g_stCfg_Incell_DetailThreshold; + + +extern int ft8006m_g_TestItemNum;/*test item num*/ +extern char ft8006m_g_strIcName[20];/*IC Name*/ +extern char *ft8006m_g_pStoreAllData; + +int Ft8006m_GetPrivateProfileString(char *section, char *ItemName, char *defaultvalue, char *returnValue, char *IniFile); +void ft8006m_focal_msleep(int ms); +void Ft8006m_SysDelay(int ms); +int ft8006m_focal_abs(int value); + + +void Ft8006m_OnInit_InterfaceCfg(char *strIniFile); + +int Ft8006m_ReadReg(unsigned char RegAddr, unsigned char *RegData); +int Ft8006m_WriteReg(unsigned char RegAddr, unsigned char RegData); +unsigned char Ft8006m_Comm_Base_IIC_IO(unsigned char *pWriteBuffer, int iBytesToWrite, unsigned char *pReadBuffer, int iBytesToRead); + +unsigned char Ft8006m_EnterWork(void); +unsigned char Ft8006m_EnterFactory(void); + +void ft8006m_SetTestItemCodeName(unsigned char ucitemcode); + +extern void *Ft8006m_fts_malloc(size_t size); +extern void Ft8006m_fts_free(void *p); + +extern int Ft8006m_InitTest(void); +extern void Ft8006m_FinishTest(void); +extern void Ft8006m_InitStoreParamOfTestData(void); +extern void Ft8006m_MergeAllTestData(void); +extern int Ft8006m_AllocateMemory(void); +extern void Ft8006m_FreeMemory(void); + +extern char *ft8006m_g_pTmpBuff; +extern char *ft8006m_g_pStoreMsgArea; +extern int ft8006m_g_lenStoreMsgArea; +extern char *ft8006m_g_pMsgAreaLine2; +extern int ft8006m_g_lenMsgAreaLine2; +extern char *ft8006m_g_pStoreDataArea; +extern int ft8006m_g_lenStoreDataArea; +extern unsigned char ft8006m_m_ucTestItemCode; +extern int ft8006m_m_iStartLine; +extern int ft8006m_m_iTestDataCount; + +extern char *Ft8006m_TestResult ; +extern int Ft8006m_TestResultLen; + +#define FOCAL_TEST_DEBUG_EN 0 +#if (FOCAL_TEST_DEBUG_EN) +#define FTS_TEST_DBG(fmt, args...) do {printk(KERN_ERR "[FTS] [TEST]%s. line: %d. "fmt"\n", __FUNCTION__, __LINE__, ##args); } while (0) +#define FTS_TEST_FUNC_ENTER() printk(KERN_ERR "[FTS][TEST]%s: Enter(%d)\n", __func__, __LINE__) +#define FTS_TEST_FUNC_EXIT() printk(KERN_ERR "[FTS][TEST]%s: Exit(%d)\n", __func__, __LINE__) +#else +#define FTS_TEST_DBG(fmt, args...) do {} while (0) +#define FTS_TEST_FUNC_ENTER() +#define FTS_TEST_FUNC_EXIT() +#endif + +#define FTS_TEST_INFO(fmt, args...) do { printk(KERN_ERR "[FTS][TEST][Info]%s. line: %d. "fmt"\n", __FUNCTION__, __LINE__, ##args); } while (0) +#define FTS_TEST_ERROR(fmt, args...) do { printk(KERN_ERR "[FTS][TEST][Error]%s. line: %d. "fmt"\n", __FUNCTION__, __LINE__, ##args); } while (0) + + + +#endif diff --git a/drivers/input/touchscreen/FT8006m/focaltech_test/include/focaltech_test_supported_ic.h b/drivers/input/touchscreen/FT8006m/focaltech_test/include/focaltech_test_supported_ic.h new file mode 100755 index 0000000000000..206aefb1650ff --- /dev/null +++ b/drivers/input/touchscreen/FT8006m/focaltech_test/include/focaltech_test_supported_ic.h @@ -0,0 +1,1576 @@ +/************************************************************************ +* Copyright (C) 2010-2017, Focaltech Systems (R) All Rights Reserved. +* Copyright (C) 2018 XiaoMi, Inc. +* +* File Name: focaltech_test_supported_ic.h +* +* Author: Software Development Team, AE +* +* Created: 2016-08-01 +* +* Abstract: test entry for all IC +* +************************************************************************/ + +#include +#include + +#include "../focaltech_test_config.h" +#include "focaltech_test_main.h" + +#if (FTS_CHIP_TEST_TYPE == FT8716_TEST) + +struct stCfg_FT8716_TestItem { + bool FW_VERSION_TEST; + bool FACTORY_ID_TEST; + bool PROJECT_CODE_TEST; + bool IC_VERSION_TEST; + bool RAWDATA_TEST; + bool CHANNEL_NUM_TEST; + bool INT_PIN_TEST; + bool RESET_PIN_TEST; + bool NOISE_TEST; + bool CB_TEST; + bool SHORT_CIRCUIT_TEST; + bool OPEN_TEST; + bool CB_UNIFORMITY_TEST; + bool DIFFER_UNIFORMITY_TEST; + bool DIFFER2_UNIFORMITY_TEST; + bool LCD_NOISE_TEST; + +}; +struct ft8006m_stCfg_FT8716_BasicThreshold { + BYTE FW_VER_VALUE; + BYTE Factory_ID_Number; + char Project_Code[32]; + BYTE IC_Version; + bool bRawDataTest_VA_Check; + int RawDataTest_Min; + int RawDataTest_Max; + bool bRawDataTest_VKey_Check; + int RawDataTest_Min_VKey; + int RawDataTest_Max_VKey; + BYTE ChannelNumTest_ChannelXNum; + BYTE ChannelNumTest_ChannelYNum; + BYTE ChannelNumTest_KeyNum; + BYTE ResetPinTest_RegAddr; + BYTE IntPinTest_RegAddr; + int NoiseTest_Coefficient; + int NoiseTest_Frames; + int NoiseTest_Time; + BYTE NoiseTest_SampeMode; + BYTE NoiseTest_NoiseMode; + BYTE NoiseTest_ShowTip; + bool bCBTest_VA_Check; + int CbTest_Min; + int CbTest_Max; + bool bCBTest_VKey_Check; + int CbTest_Min_Vkey; + int CbTest_Max_Vkey; + + bool bCBTest_VKey_DCheck_Check; + int CbTest_Min_DCheck_Vkey; + int CbTest_Max_DCheck_Vkey; + + bool bLcdBusyAdjust; + int ShortCircuit_ResMin; + + int OpenTest_CBMin; + bool OpenTest_Check_K1; + int OpenTest_K1Threshold; + bool OpenTest_Check_K2; + int OpenTest_K2Threshold; + + bool CBUniformityTest_Check_CHX; + bool CBUniformityTest_Check_CHY; + bool CBUniformityTest_Check_MinMax; + int CBUniformityTest_CHX_Hole; + int CBUniformityTest_CHY_Hole; + int CBUniformityTest_MinMax_Hole; + + bool DifferUniformityTest_Check_CHX; + bool DifferUniformityTest_Check_CHY; + bool DifferUniformityTest_Check_MinMax; + int DifferUniformityTest_CHX_Hole; + int DifferUniformityTest_CHY_Hole; + int DifferUniformityTest_MinMax_Hole; + int DeltaVol; + + bool Differ2UniformityTest_Check_CHX; + bool Differ2UniformityTest_Check_CHY; + int Differ2UniformityTest_CHX_Hole; + int Differ2UniformityTest_CHY_Hole; + int Differ2UniformityTest_Differ_Min; + int Differ2UniformityTest_Differ_Max; + + + int LCDNoiseTest_FrameNum; + int LCDNoiseTest_Coefficient; + int LCDNoiseTest_Coefficient_Key; + BYTE LCDNoiseTest_NoiseMode; + int LCDNoiseTest_SequenceFrame; + int LCDNoiseTest_MaxFrame; + +}; +enum enumTestItem_FT8716 { + Code_FT8716_ENTER_FACTORY_MODE, + Code_FT8716_DOWNLOAD, + Code_FT8716_UPGRADE, + Code_FT8716_FACTORY_ID_TEST, + Code_FT8716_PROJECT_CODE_TEST, + Code_FT8716_FW_VERSION_TEST, + Code_FT8716_IC_VERSION_TEST, + Code_FT8716_RAWDATA_TEST, + Code_FT8716_CHANNEL_NUM_TEST, + + Code_FT8716_INT_PIN_TEST, + Code_FT8716_RESET_PIN_TEST, + Code_FT8716_NOISE_TEST, + Code_FT8716_CB_TEST, + Code_FT8716_WRITE_CONFIG, + + Code_FT8716_SHORT_CIRCUIT_TEST, + Code_FT8716_OPEN_TEST, + Code_FT8716_CB_UNIFORMITY_TEST, + Code_FT8716_DIFFER_UNIFORMITY_TEST, + Code_FT8716_DIFFER2_UNIFORMITY_TEST, + Code_FT8716_LCD_NOISE_TEST, +}; + +#elif (FTS_CHIP_TEST_TYPE == FT3D47_TEST) + +struct stCfg_FT3D47_TestItem { + bool FW_VERSION_TEST; + bool FACTORY_ID_TEST; + bool PROJECT_CODE_TEST; + bool IC_VERSION_TEST; + bool RAWDATA_TEST; + bool ADC_DETECT_TEST; + bool SCAP_CB_TEST; + bool SCAP_RAWDATA_TEST; + bool CHANNEL_NUM_TEST; + bool INT_PIN_TEST; + bool RESET_PIN_TEST; + bool NOISE_TEST; + bool WEAK_SHORT_CIRCUIT_TEST; + bool UNIFORMITY_TEST; + bool CM_TEST; + + bool RAWDATA_MARGIN_TEST; + bool PANEL_DIFFER_TEST; + bool PANEL_DIFFER_UNIFORMITY_TEST; + + bool LCM_ID_TEST; + + bool TE_TEST; + bool SITO_RAWDATA_UNIFORMITY_TEST; + bool PATTERN_TEST; + + bool FORCETOUCH_CHANNEL_NUM_TEST; + bool FORCETOUCH_RAWDATA_TEST; + bool FORCETOUCH_CB_TEST; + bool FORCETOUCH_WEAK_SHORT_CIRCUIT_TEST; + bool FORCETOUCH_FLATNESS_TEST; +}; + +struct stCfg_FT3D47_BasicThreshold { + BYTE FW_VER_VALUE; + BYTE Factory_ID_Number; + char Project_Code[32]; + BYTE IC_Version; + BYTE LCM_ID; + int RawDataTest_low_Min; + int RawDataTest_Low_Max; + int RawDataTest_high_Min; + int RawDataTest_high_Max; + BYTE RawDataTest_SetLowFreq; + BYTE RawDataTest_SetHighFreq; + int AdcDetect_Max; + int SCapCbTest_OFF_Min; + int SCapCbTest_OFF_Max; + int SCapCbTest_ON_Min; + int SCapCbTest_ON_Max; + bool SCapCbTest_LetTx_Disable; + BYTE SCapCbTest_SetWaterproof_OFF; + BYTE SCapCbTest_SetWaterproof_ON; + int SCapRawDataTest_OFF_Min; + int SCapRawDataTest_OFF_Max; + int SCapRawDataTest_ON_Min; + int SCapRawDataTest_ON_Max; + bool SCapRawDataTest_LetTx_Disable; + BYTE SCapRawDataTest_SetWaterproof_OFF; + BYTE SCapRawDataTest_SetWaterproof_ON; + bool bChannelTestMapping; + bool bChannelTestNoMapping; + BYTE ChannelNumTest_TxNum; + BYTE ChannelNumTest_RxNum; + BYTE ChannelNumTest_TxNpNum; + BYTE ChannelNumTest_RxNpNum; + BYTE ResetPinTest_RegAddr; + BYTE IntPinTest_RegAddr; + BYTE IntPinTest_TestNum; + int NoiseTest_Max; + int GloveNoiseTest_Coefficient; + int NoiseTest_Frames; + int NoiseTest_Time; + BYTE NoiseTest_SampeMode; + BYTE NoiseTest_NoiseMode; + BYTE NoiseTest_ShowTip; + bool bNoiseTest_GloveMode; + int NoiseTest_RawdataMin; + unsigned char Set_Frequency; + bool bNoiseThreshold_Choose; + int NoiseTest_Threshold; + int NoiseTest_MinNgFrame; + int WeakShortTest_CG; + int WeakShortTest_CC; + int WeakShortTest_CC_Rsen; + bool WeakShortTest_CapShortTest; + + bool Uniformity_CheckTx; + bool Uniformity_CheckRx; + bool Uniformity_CheckMinMax; + int Uniformity_Tx_Hole; + int Uniformity_Rx_Hole; + int Uniformity_MinMax_Hole; + bool CMTest_CheckMin; + bool CMTest_CheckMax; + int CMTest_MinHole; + int CMTest_MaxHole; + + int RawdataMarginTest_Min; + int RawdataMarginTest_Max; + + int PanelDifferTest_Min; + int PanelDifferTest_Max; + + bool PanelDiffer_UniformityTest_Check_Tx; + bool PanelDiffer_UniformityTest_Check_Rx; + bool PanelDiffer_UniformityTest_Check_MinMax; + int PanelDiffer_UniformityTest_Tx_Hole; + int PanelDiffer_UniformityTest_Rx_Hole; + int PanelDiffer_UniformityTest_MinMax_Hole; + + bool SITO_RawdtaUniformityTest_Check_Tx; + bool SITO_RawdtaUniformityTest_Check_Rx; + int SITO_RawdtaUniformityTest_Tx_Hole; + int SITO_RawdtaUniformityTest_Rx_Hole; + + bool bPattern00; + bool bPatternFF; + bool bPattern55; + bool bPatternAA; + bool bPatternBin; + + int ForceTouch_ChannelNumTest_ChannelNum; + + int ForceTouch_SCapRawDataTest_OFF_Min; + int ForceTouch_SCapRawDataTest_OFF_Max; + int ForceTouch_SCapRawDataTest_ON_Min; + int ForceTouch_SCapRawDataTest_ON_Max; + BYTE ForceTouch_SCapRawDataTest_SetWaterproof_OFF; + BYTE ForceTouch_SCapRawDataTest_SetWaterproof_ON; + + int ForceTouch_SCapCbTest_OFF_Min; + int ForceTouch_SCapCbTest_OFF_Max; + int ForceTouch_SCapCbTest_ON_Min; + int ForceTouch_SCapCbTest_ON_Max; + BYTE ForceTouch_SCapCBTest_SetWaterproof_OFF; + BYTE ForceTouch_SCapCBTest_SetWaterproof_ON; + + int ForceTouch_WeakShortTest_CG; + int ForceTouch_WeakShortTest_CC; + bool bForceTouch_WeakShortTest_CapShortTest; + + int ForceTouch_FlatnessTest_Differ_Threshold; + int ForceTouch_FlatnessTest_Differ_Coefficient; + bool ForceTouch_FlatnessTest_Differ_Threshold_Check; + bool ForceTouch_FlatnessTest_Differ_Coefficient_Check; + +}; +enum enumTestItem_FT3D47 { + Code_FT3D47_ENTER_FACTORY_MODE, + Code_FT3D47_DOWNLOAD, + Code_FT3D47_UPGRADE, + Code_FT3D47_FACTORY_ID_TEST, + Code_FT3D47_PROJECT_CODE_TEST, + Code_FT3D47_FW_VERSION_TEST, + Code_FT3D47_IC_VERSION_TEST, + Code_FT3D47_RAWDATA_TEST, + Code_FT3D47_ADCDETECT_TEST, + Code_FT3D47_SCAP_CB_TEST, + Code_FT3D47_SCAP_RAWDATA_TEST, + Code_FT3D47_CHANNEL_NUM_TEST, + Code_FT3D47_INT_PIN_TEST, + Code_FT3D47_RESET_PIN_TEST, + Code_FT3D47_NOISE_TEST, + Code_FT3D47_WEAK_SHORT_CIRCUIT_TEST, + Code_FT3D47_UNIFORMITY_TEST, + Code_FT3D47_CM_TEST, + Code_FT3D47_RAWDATA_MARGIN_TEST, + Code_FT3D47_WRITE_CONFIG, + Code_FT3D47_PANELDIFFER_TEST, + Code_FT3D47_PANELDIFFER_UNIFORMITY_TEST, + Code_FT3D47_LCM_ID_TEST, + Code_FT3D47_JUDEG_NORMALIZE_TYPE, + Code_FT3D47_TE_TEST, + Code_FT3D47_SITO_RAWDATA_UNIFORMITY_TEST, + Code_FT3D47_PATTERN_TEST, + + Code_FT3D47_GPIO_TEST, + Code_FT3D47_LCD_NOISE_TEST, + Code_FT3D47_FORCE_TOUCH_CHANNEL_NUM_TEST, + Code_FT3D47_FORCE_TOUCH_SCAP_RAWDATA_TEST, + Code_FT3D47_FORCE_TOUCH_SCAP_CB_TEST, + Code_FT3D47_FORCE_TOUCH_WEAK_SHORT_CIRCUIT_TEST, + Code_FT3D47_FORCE_TOUCH_FLATNESS_TEST, +}; + +#elif (FTS_CHIP_TEST_TYPE == FT8607_TEST) + +struct stCfg_FT8607_TESTItem { + bool FW_VERSION_TEST; + bool FACTORY_ID_TEST; + bool PROJECT_CODE_TEST; + bool IC_VERSION_TEST; + bool RAWDATA_TEST; + bool CHANNEL_NUM_TEST; + bool INT_PIN_TEST; + bool RESET_PIN_TEST; + bool NOISE_TEST; + bool CB_TEST; + bool SHORT_CIRCUIT_TEST; + bool LCD_NOISE_TEST; + bool OSC60MHZ_TEST; + bool OSCTRM_TEST; + bool SNR_TEST; + bool LPWG_RAWDATA_TEST; + bool LPWG_CB_TEST; + bool LPWG_NOISE_TEST; + bool DIFFER_TEST; + bool DIFFER_UNIFORMITY_TEST; + bool OPEN_TEST; +}; + +struct stCfg_FT8607_BasicThreshold { + BYTE FW_VER_VALUE; + BYTE Factory_ID_Number; + char Project_Code[32]; + BYTE IC_Version; + int RawDataTest_Min; + int RawDataTest_Max; + BYTE ChannelNumTest_ChannelXNum; + BYTE ChannelNumTest_ChannelYNum; + BYTE ChannelNumTest_KeyNum; + BYTE ResetPinTest_RegAddr; + BYTE IntPinTest_RegAddr; + int NoiseTest_Coefficient; + int NoiseTest_Frames; + int NoiseTest_Time; + BYTE NoiseTest_SampeMode; + BYTE NoiseTest_NoiseMode; + BYTE NoiseTest_ShowTip; + BYTE IsDifferMode; + bool bCBTest_VA_Check; + int CbTest_Min; + int CbTest_Max; + bool bCBTest_VKey_Check; + int CbTest_Min_Vkey; + int CbTest_Max_Vkey; + int ShortCircuit_ResMin; + int iLCDNoiseTestFrame; + int iLCDNoiseTestMax; + + int iLCDNoiseCoefficient; + int OSC60MHZTest_OSCMin; + int OSC60MHZTest_OSCMax; + + int OSCTRMTest_OSCMin; + int OSCTRMTest_OSCMax; + int OSCTRMTest_OSCDetMin; + int OSCTRMTest_OSCDetMax; + int SNRTest_FrameNum; + int SNRTest_Min; + + int DIFFERTest_FrameNum; + int DIFFERTest_DifferMax; + int DIFFERTest_DifferMin; + + bool DifferUniformityTest_Check_CHX; + bool DifferUniformityTest_Check_CHY; + bool DifferUniformityTest_Check_MinMax; + int DifferUniformityTest_CHX_Hole; + int DifferUniformityTest_CHY_Hole; + int DifferUniformityTest_MinMax_Hole; + + int LPWG_RawDataTest_Min; + int LPWG_RawDataTest_Max; + + bool bLPWG_CBTest_VA_Check; + int LPWG_CbTest_Min; + int LPWG_CbTest_Max; + bool bLPWG_CBTest_VKey_Check; + int LPWG_CbTest_Min_Vkey; + int LPWG_CbTest_Max_Vkey; + + int LPWG_NoiseTest_Coefficient; + int LPWG_NoiseTest_Frames; + int LPWG_NoiseTest_Time; + BYTE LPWG_NoiseTest_SampeMode; + BYTE LPWG_NoiseTest_NoiseMode; + BYTE LPWG_NoiseTest_ShowTip; + BYTE LPWG_IsDifferMode; + + int Open_Test_CBMin; +}; + + +enum enumTestItem_FT8607 { + Code_FT8607_ENTER_FACTORY_MODE, + Code_FT8607_DOWNLOAD, + Code_FT8607_UPGRADE, + Code_FT8607_FACTORY_ID_TEST, + Code_FT8607_PROJECT_CODE_TEST, + Code_FT8607_FW_VERSION_TEST, + Code_FT8607_IC_VERSION_TEST, + Code_FT8607_RAWDATA_TEST, + Code_FT8607_CHANNEL_NUM_TEST, + + Code_FT8607_INT_PIN_TEST, + Code_FT8607_RESET_PIN_TEST, + Code_FT8607_NOISE_TEST, + Code_FT8607_CB_TEST, + Code_FT8607_WRITE_CONFIG, + + Code_FT8607_SHORT_CIRCUIT_TEST, + Code_FT8607_LCD_NOISE_TEST, + + Code_FT8607_OSC60MHZ_TEST, + Code_FT8607_OSCTRM_TEST, + Code_FT8607_SNR_TEST, + Code_FT8607_DIFFER_TEST, + Code_FT8607_DIFFER_UNIFORMITY_TEST, + + Code_FT8607_LPWG_RAWDATA_TEST, + Code_FT8607_LPWG_CB_TEST, + Code_FT8607_LPWG_NOISE_TEST, + + Code_FT8607_OPEN_TEST, +}; + +#elif (FTS_CHIP_TEST_TYPE == FT5X46_TEST) +/*----------------------------------------------- +FT5X46 and FT5X22 is the same series of chips +FT5422\FT5X22 is the chip code for internally develope +FT5X46 is the chip code for market +------------------------------------------------*/ +struct stCfg_FT5X46_TestItem { + bool FW_VERSION_TEST; + bool FACTORY_ID_TEST; + bool PROJECT_CODE_TEST; + bool IC_VERSION_TEST; + bool RAWDATA_TEST; + bool ADC_DETECT_TEST; + bool SCAP_CB_TEST; + bool SCAP_RAWDATA_TEST; + bool CHANNEL_NUM_TEST; + bool INT_PIN_TEST; + bool RESET_PIN_TEST; + bool NOISE_TEST; + bool WEAK_SHORT_CIRCUIT_TEST; + bool UNIFORMITY_TEST; + bool CM_TEST; + + bool RAWDATA_MARGIN_TEST; + bool PANEL_DIFFER_TEST; + bool PANEL_DIFFER_UNIFORMITY_TEST; + + bool LCM_ID_TEST; + bool PANEL_ID_TEST; + + bool TE_TEST; + bool SITO_RAWDATA_UNIFORMITY_TEST; + bool PATTERN_TEST; + bool GPIO_TEST; + bool LCD_NOISE_TEST; +}; +struct stCfg_FT5X46_BasicThreshold { + BYTE FW_VER_VALUE; + BYTE Factory_ID_Number; + char Project_Code[32]; + BYTE IC_Version; + BYTE LCM_ID; + int RawDataTest_low_Min; + int RawDataTest_Low_Max; + int RawDataTest_high_Min; + int RawDataTest_high_Max; + BYTE RawDataTest_SetLowFreq; + BYTE RawDataTest_SetHighFreq; + int AdcDetect_Max; + int SCapCbTest_OFF_Min; + int SCapCbTest_OFF_Max; + int SCapCbTest_ON_Min; + int SCapCbTest_ON_Max; + bool SCapCbTest_LetTx_Disable; + BYTE SCapCbTest_SetWaterproof_OFF; + BYTE SCapCbTest_SetWaterproof_ON; + int SCapRawDataTest_OFF_Min; + int SCapRawDataTest_OFF_Max; + int SCapRawDataTest_ON_Min; + int SCapRawDataTest_ON_Max; + bool SCapRawDataTest_LetTx_Disable; + BYTE SCapRawDataTest_SetWaterproof_OFF; + BYTE SCapRawDataTest_SetWaterproof_ON; + bool bChannelTestMapping; + bool bChannelTestNoMapping; + BYTE ChannelNumTest_TxNum; + BYTE ChannelNumTest_RxNum; + BYTE ChannelNumTest_TxNpNum; + BYTE ChannelNumTest_RxNpNum; + BYTE ResetPinTest_RegAddr; + BYTE IntPinTest_RegAddr; + BYTE IntPinTest_TestNum; + int NoiseTest_Max; + int GloveNoiseTest_Coefficient; + int NoiseTest_Frames; + int NoiseTest_Time; + BYTE NoiseTest_SampeMode; + BYTE NoiseTest_NoiseMode; + BYTE NoiseTest_ShowTip; + bool bNoiseTest_GloveMode; + int NoiseTest_RawdataMin; + unsigned char Set_Frequency; + bool bNoiseThreshold_Choose; + int NoiseTest_Threshold; + int NoiseTest_MinNgFrame; + int WeakShortTest_CG; + int WeakShortTest_CC; + int WeakShortTest_CC_Rsen; + bool WeakShortTest_CapShortTest; + + + bool Uniformity_CheckTx; + bool Uniformity_CheckRx; + bool Uniformity_CheckMinMax; + int Uniformity_Tx_Hole; + int Uniformity_Rx_Hole; + int Uniformity_MinMax_Hole; + bool CMTest_CheckMin; + bool CMTest_CheckMax; + int CMTest_MinHole; + int CMTest_MaxHole; + + int RawdataMarginTest_Min; + int RawdataMarginTest_Max; + + int PanelDifferTest_Min; + int PanelDifferTest_Max; + + bool PanelDiffer_UniformityTest_Check_Tx; + bool PanelDiffer_UniformityTest_Check_Rx; + bool PanelDiffer_UniformityTest_Check_MinMax; + int PanelDiffer_UniformityTest_Tx_Hole; + int PanelDiffer_UniformityTest_Rx_Hole; + int PanelDiffer_UniformityTest_MinMax_Hole; + + bool SITO_RawdtaUniformityTest_Check_Tx; + bool SITO_RawdtaUniformityTest_Check_Rx; + int SITO_RawdtaUniformityTest_Tx_Hole; + int SITO_RawdtaUniformityTest_Rx_Hole; + + bool bPattern00; + bool bPatternFF; + bool bPattern55; + bool bPatternAA; + bool bPatternBin; + + int Lcd_Noise_MaxFrame; + int Lcd_Noise_Conficient; + int Lcd_Noise_Noise_Mode; + int Lcd_Noise_MaxNgPoint; + int Lcd_Noise_FrameNum; + + bool Lcd_Noise_NoiseThresholdMode; + int Lcd_Noise_NoiseCoefficient; + int Lcd_Noise_NoiseMax; + int Lcd_Noise_SetFrequency; +}; +enum enumTestItem_FT5X46 { + Code_FT5X46_ENTER_FACTORY_MODE, + Code_FT5X46_DOWNLOAD, + Code_FT5X46_UPGRADE, + Code_FT5X46_FACTORY_ID_TEST, + Code_FT5X46_PROJECT_CODE_TEST, + Code_FT5X46_FW_VERSION_TEST, + Code_FT5X46_IC_VERSION_TEST, + Code_FT5X46_RAWDATA_TEST, + Code_FT5X46_ADCDETECT_TEST, + Code_FT5X46_SCAP_CB_TEST, + Code_FT5X46_SCAP_RAWDATA_TEST, + Code_FT5X46_CHANNEL_NUM_TEST, + Code_FT5X46_INT_PIN_TEST, + Code_FT5X46_RESET_PIN_TEST, + Code_FT5X46_NOISE_TEST, + Code_FT5X46_WEAK_SHORT_CIRCUIT_TEST, + Code_FT5X46_UNIFORMITY_TEST, + Code_FT5X46_CM_TEST, + Code_FT5X46_RAWDATA_MARGIN_TEST, + Code_FT5X46_WRITE_CONFIG, + Code_FT5X46_PANELDIFFER_TEST, + Code_FT5X46_PANELDIFFER_UNIFORMITY_TEST, + Code_FT5X46_LCM_ID_TEST, + Code_FT5X46_JUDEG_NORMALIZE_TYPE, + Code_FT5X46_TE_TEST, + Code_FT5X46_SITO_RAWDATA_UNIFORMITY_TEST, + Code_FT5X46_PATTERN_TEST, + Code_FT5X46_GPIO_TEST, + Code_FT5X46_LCD_NOISE_TEST, +}; + +#elif (FTS_CHIP_TEST_TYPE == FT6X36_TEST) + +struct stCfg_FT6X36_TestItem { + bool FW_VERSION_TEST; + bool FACTORY_ID_TEST; + bool PROJECT_CODE_TEST; + bool IC_VERSION_TEST; + bool RAWDATA_TEST; + bool CHANNEL_NUM_TEST; + bool CHANNEL_SHORT_TEST; + bool INT_PIN_TEST; + bool RESET_PIN_TEST; + bool NOISE_TEST; + bool CB_TEST; + bool DELTA_CB_TEST; + bool CHANNELS_DEVIATION_TEST; + bool TWO_SIDES_DEVIATION_TEST; + bool FPC_SHORT_TEST; + bool FPC_OPEN_TEST; + bool SREF_OPEN_TEST; + bool TE_TEST; + bool CB_DEVIATION_TEST; + bool DIFFER_TEST; + bool WEAK_SHORT_TEST; + bool DIFFER_TEST2; + bool K1_DIFFER_TEST; +}; + +struct stCfg_FT6X36_BasicThreshold { + BYTE FW_VER_VALUE; + BYTE Factory_ID_Number; + char Project_Code[32]; + BYTE IC_Version; + int RawDataTest_Min; + int RawDataTest_Max; + BYTE ChannelNumTest_ChannelNum; + BYTE ChannelNumTest_KeyNum; + int ChannelShortTest_K1; + int ChannelShortTest_K2; + int ChannelShortTest_CB; + BYTE ResetPinTest_RegAddr; + BYTE IntPinTest_RegAddr; + int WeakShortThreshold; + int NoiseTest_Max; + int NoiseTest_Frames; + int NoiseTest_Time; + BYTE NoiseTest_SampeMode; + BYTE NoiseTest_NoiseMode; + BYTE NoiseTest_ShowTip; + int FPCShort_CB_Min; + int FPCShort_CB_Max; + int FPCShort_RawData_Min; + int FPCShort_RawData_Max; + int FPCOpen_CB_Min; + int FPCOpen_CB_Max; + int FPCOpen_RawData_Min; + int FPCOpen_RawData_Max; + int SREFOpen_Hole_Base1; + int SREFOpen_Hole_Base2; + int SREFOpen_Hole; + int CBDeviationTest_Hole; + int Differ_Ave_Hole; + int Differ_Max_Hole; + int CbTest_Min; + int CbTest_Max; + int DeltaCbTest_Base; + int DeltaCbTest_Differ_Max; + bool DeltaCbTest_Include_Key_Test; + int DeltaCbTest_Key_Differ_Max; + int DeltaCbTest_Deviation_S1; + int DeltaCbTest_Deviation_S2; + int DeltaCbTest_Deviation_S3; + int DeltaCbTest_Deviation_S4; + int DeltaCbTest_Deviation_S5; + int DeltaCbTest_Deviation_S6; + bool DeltaCbTest_Set_Critical; + int DeltaCbTest_Critical_S1; + int DeltaCbTest_Critical_S2; + int DeltaCbTest_Critical_S3; + int DeltaCbTest_Critical_S4; + int DeltaCbTest_Critical_S5; + int DeltaCbTest_Critical_S6; + + int ChannelsDeviationTest_Deviation_S1; + int ChannelsDeviationTest_Deviation_S2; + int ChannelsDeviationTest_Deviation_S3; + int ChannelsDeviationTest_Deviation_S4; + int ChannelsDeviationTest_Deviation_S5; + int ChannelsDeviationTest_Deviation_S6; + bool ChannelsDeviationTest_Set_Critical; + int ChannelsDeviationTest_Critical_S1; + int ChannelsDeviationTest_Critical_S2; + int ChannelsDeviationTest_Critical_S3; + int ChannelsDeviationTest_Critical_S4; + int ChannelsDeviationTest_Critical_S5; + int ChannelsDeviationTest_Critical_S6; + + int TwoSidesDeviationTest_Deviation_S1; + int TwoSidesDeviationTest_Deviation_S2; + int TwoSidesDeviationTest_Deviation_S3; + int TwoSidesDeviationTest_Deviation_S4; + int TwoSidesDeviationTest_Deviation_S5; + int TwoSidesDeviationTest_Deviation_S6; + bool TwoSidesDeviationTest_Set_Critical; + int TwoSidesDeviationTest_Critical_S1; + int TwoSidesDeviationTest_Critical_S2; + int TwoSidesDeviationTest_Critical_S3; + int TwoSidesDeviationTest_Critical_S4; + int TwoSidesDeviationTest_Critical_S5; + int TwoSidesDeviationTest_Critical_S6; + + int DifferTest2_Data_H_Min; + int DifferTest2_Data_H_Max; + int DifferTest2_Data_M_Min; + int DifferTest2_Data_M_Max; + int DifferTest2_Data_L_Min; + int DifferTest2_Data_L_Max; + bool bDifferTest2_Data_H; + bool bDifferTest2_Data_M; + bool bDifferTest2_Data_L; + int K1DifferTest_StartK1; + int K1DifferTest_EndK1; + int K1DifferTest_MinHold2; + int K1DifferTest_MaxHold2; + int K1DifferTest_MinHold4; + int K1DifferTest_MaxHold4; + int K1DifferTest_Deviation2; + int K1DifferTest_Deviation4; +}; + +enum enumTestItem_FT6X36 { + Code_FT6X36_ENTER_FACTORY_MODE, + Code_FT6X36_DOWNLOAD, + Code_FT6X36_UPGRADE, + Code_FT6X36_FACTORY_ID_TEST, + Code_FT6X36_PROJECT_CODE_TEST, + Code_FT6X36_FW_VERSION_TEST, + Code_FT6X36_IC_VERSION_TEST, + Code_FT6X36_RAWDATA_TEST, + Code_FT6X36_CHANNEL_NUM_TEST, + Code_FT6X36_CHANNEL_SHORT_TEST, + Code_FT6X36_INT_PIN_TEST, + Code_FT6X36_RESET_PIN_TEST, + Code_FT6X36_NOISE_TEST, + Code_FT6X36_CB_TEST, + Code_FT6X36_DELTA_CB_TEST, + Code_FT6X36_CHANNELS_DEVIATION_TEST, + Code_FT6X36_TWO_SIDES_DEVIATION_TEST, + Code_FT6X36_FPC_SHORT_TEST, + Code_FT6X36_FPC_OPEN_TEST, + Code_FT6X36_SREF_OPEN_TEST, + Code_FT6X36_TE_TEST, + Code_FT6X36_CB_DEVIATION_TEST, + Code_FT6X36_WRITE_CONFIG, + Code_FT6X36_DIFFER_TEST, + Code_FT6X36_WEAK_SHORT_TEST, + Code_FT6X36_DIFFER_TEST2, + Code_FT6X36_K1_DIFFER_TEST, +}; + +#elif (FTS_CHIP_TEST_TYPE == FT5822_TEST) + +struct stCfg_FT5822_TestItem { + bool FW_VERSION_TEST; + bool FACTORY_ID_TEST; + bool PROJECT_CODE_TEST; + bool IC_VERSION_TEST; + bool RAWDATA_TEST; + bool ADC_DETECT_TEST; + bool SCAP_CB_TEST; + bool SCAP_RAWDATA_TEST; + bool CHANNEL_NUM_TEST; + bool INT_PIN_TEST; + bool RESET_PIN_TEST; + bool NOISE_TEST; + bool WEAK_SHORT_CIRCUIT_TEST; + bool UNIFORMITY_TEST; + bool CM_TEST; + + bool RAWDATA_MARGIN_TEST; + bool PANEL_DIFFER_TEST; + bool PANEL_DIFFER_UNIFORMITY_TEST; + + bool LCM_ID_TEST; + + bool TE_TEST; + bool SITO_RAWDATA_UNIFORMITY_TEST; + bool PATTERN_TEST; +}; +struct stCfg_FT5822_BasicThreshold { + BYTE FW_VER_VALUE; + BYTE Factory_ID_Number; + char Project_Code[32]; + BYTE IC_Version; + BYTE LCM_ID; + int RawDataTest_low_Min; + int RawDataTest_Low_Max; + int RawDataTest_high_Min; + int RawDataTest_high_Max; + BYTE RawDataTest_SetLowFreq; + BYTE RawDataTest_SetHighFreq; + int AdcDetect_Max; + int SCapCbTest_OFF_Min; + int SCapCbTest_OFF_Max; + int SCapCbTest_ON_Min; + int SCapCbTest_ON_Max; + bool SCapCbTest_LetTx_Disable; + BYTE SCapCbTest_SetWaterproof_OFF; + BYTE SCapCbTest_SetWaterproof_ON; + + int SCapRawDataTest_OFF_Min; + int SCapRawDataTest_OFF_Max; + int SCapRawDataTest_ON_Min; + int SCapRawDataTest_ON_Max; + bool SCapRawDataTest_LetTx_Disable; + BYTE SCapRawDataTest_SetWaterproof_OFF; + BYTE SCapRawDataTest_SetWaterproof_ON; + bool bChannelTestMapping; + bool bChannelTestNoMapping; + BYTE ChannelNumTest_TxNum; + BYTE ChannelNumTest_RxNum; + BYTE ChannelNumTest_TxNpNum; + BYTE ChannelNumTest_RxNpNum; + BYTE ResetPinTest_RegAddr; + BYTE IntPinTest_RegAddr; + BYTE IntPinTest_TestNum; + int NoiseTest_Max; + int GloveNoiseTest_Coefficient; + int NoiseTest_Frames; + int NoiseTest_Time; + BYTE NoiseTest_SampeMode; + BYTE NoiseTest_NoiseMode; + BYTE NoiseTest_ShowTip; + bool bNoiseTest_GloveMode; + int NoiseTest_RawdataMin; + unsigned char Set_Frequency; + bool bNoiseThreshold_Choose; + int NoiseTest_Threshold; + int NoiseTest_MinNgFrame; + + int WeakShortTest_CG; + int WeakShortTest_CC; + + bool Uniformity_CheckTx; + bool Uniformity_CheckRx; + bool Uniformity_CheckMinMax; + int Uniformity_Tx_Hole; + int Uniformity_Rx_Hole; + int Uniformity_MinMax_Hole; + bool CMTest_CheckMin; + bool CMTest_CheckMax; + int CMTest_MinHole; + int CMTest_MaxHole; + + int RawdataMarginTest_Min; + int RawdataMarginTest_Max; + + int PanelDifferTest_Min; + int PanelDifferTest_Max; + + bool PanelDiffer_UniformityTest_Check_Tx; + bool PanelDiffer_UniformityTest_Check_Rx; + bool PanelDiffer_UniformityTest_Check_MinMax; + int PanelDiffer_UniformityTest_Tx_Hole; + int PanelDiffer_UniformityTest_Rx_Hole; + int PanelDiffer_UniformityTest_MinMax_Hole; + + bool SITO_RawdtaUniformityTest_Check_Tx; + bool SITO_RawdtaUniformityTest_Check_Rx; + int SITO_RawdtaUniformityTest_Tx_Hole; + int SITO_RawdtaUniformityTest_Rx_Hole; + + bool bPattern00; + bool bPatternFF; + bool bPattern55; + bool bPatternAA; + bool bPatternBin; +}; +enum enumTestItem_FT5822 { + Code_FT5822_ENTER_FACTORY_MODE, + Code_FT5822_DOWNLOAD, + Code_FT5822_UPGRADE, + Code_FT5822_FACTORY_ID_TEST, + Code_FT5822_PROJECT_CODE_TEST, + Code_FT5822_FW_VERSION_TEST, + Code_FT5822_IC_VERSION_TEST, + Code_FT5822_RAWDATA_TEST, + Code_FT5822_ADCDETECT_TEST, + Code_FT5822_SCAP_CB_TEST, + Code_FT5822_SCAP_RAWDATA_TEST, + Code_FT5822_CHANNEL_NUM_TEST, + Code_FT5822_INT_PIN_TEST, + Code_FT5822_RESET_PIN_TEST, + Code_FT5822_NOISE_TEST, + Code_FT5822_WEAK_SHORT_CIRCUIT_TEST, + Code_FT5822_UNIFORMITY_TEST, + Code_FT5822_CM_TEST, + Code_FT5822_RAWDATA_MARGIN_TEST, + Code_FT5822_WRITE_CONFIG, + Code_FT5822_PANELDIFFER_TEST, + Code_FT5822_PANELDIFFER_UNIFORMITY_TEST, + Code_FT5822_LCM_ID_TEST, + Code_FT5822_JUDEG_NORMALIZE_TYPE, + Code_FT5822_TE_TEST, + Code_FT5822_SITO_RAWDATA_UNIFORMITY_TEST, + Code_FT5822_PATTERN_TEST, +}; + +#elif (FTS_CHIP_TEST_TYPE == FT8006_TEST) + +struct stCfg_FT8006_TestItem { + bool FW_VERSION_TEST; + bool FACTORY_ID_TEST; + bool PROJECT_CODE_TEST; + bool IC_VERSION_TEST; + bool RAWDATA_TEST; + bool CHANNEL_NUM_TEST; + bool INT_PIN_TEST; + bool RESET_PIN_TEST; + bool NOISE_TEST; + bool CB_TEST; + bool SHORT_CIRCUIT_TEST; + bool LCD_NOISE_TEST; + bool OSC60MHZ_TEST; + bool OSCTRM_TEST; + bool SNR_TEST; + bool LPWG_RAWDATA_TEST; + bool LPWG_CB_TEST; + bool LPWG_NOISE_TEST; + bool DIFFER_TEST; + bool DIFFER_UNIFORMITY_TEST; + bool DIFFER2_TEST; + +}; +struct stCfg_FT8006_BasicThreshold { + BYTE FW_VER_VALUE; + BYTE Factory_ID_Number; + char Project_Code[32]; + BYTE IC_Version; + int RawDataTest_Min; + int RawDataTest_Max; + BYTE ChannelNumTest_ChannelXNum; + BYTE ChannelNumTest_ChannelYNum; + BYTE ChannelNumTest_KeyNum; + BYTE ResetPinTest_RegAddr; + BYTE IntPinTest_RegAddr; + int NoiseTest_Coefficient; + int NoiseTest_Frames; + int NoiseTest_Time; + BYTE NoiseTest_SampeMode; + BYTE NoiseTest_NoiseMode; + BYTE NoiseTest_ShowTip; + BYTE IsDifferMode; + bool bCBTest_VA_Check; + int CbTest_Min; + int CbTest_Max; + bool bCBTest_VKey_Check; + int CbTest_Min_Vkey; + int CbTest_Max_Vkey; + int ShortCircuit_ResMin; + int iLCDNoiseTestFrame; + int iLCDNoiseTestMaxScreen; + int iLCDNoiseTestMaxFrame; + int iLCDNoiseCoefficient; + + int OSC60MHZTest_OSCMin; + int OSC60MHZTest_OSCMax; + + int OSCTRMTest_OSCMin; + int OSCTRMTest_OSCMax; + int OSCTRMTest_OSCDetMin; + int OSCTRMTest_OSCDetMax; + int SNRTest_FrameNum; + int SNRTest_Min; + + int DIFFERTest_FrameNum; + int DIFFERTest_DifferMax; + int DIFFERTest_DifferMin; + + bool DifferUniformityTest_Check_CHX; + bool DifferUniformityTest_Check_CHY; + bool DifferUniformityTest_Check_MinMax; + int DifferUniformityTest_CHX_Hole; + int DifferUniformityTest_CHY_Hole; + int DifferUniformityTest_MinMax_Hole; + + int LPWG_RawDataTest_Min; + int LPWG_RawDataTest_Max; + + bool bLPWG_CBTest_VA_Check; + int LPWG_CbTest_Min; + int LPWG_CbTest_Max; + bool bLPWG_CBTest_VKey_Check; + int LPWG_CbTest_Min_Vkey; + int LPWG_CbTest_Max_Vkey; + + int LPWG_NoiseTest_Coefficient; + int LPWG_NoiseTest_Frames; + int LPWG_NoiseTest_Time; + BYTE LPWG_NoiseTest_SampeMode; + BYTE LPWG_NoiseTest_NoiseMode; + BYTE LPWG_NoiseTest_ShowTip; + BYTE LPWG_IsDifferMode; + + int Differ2Test_Min; + int Differ2Test_Max; + +}; +enum enumTestItem_FT8006 { + Code_FT8006_ENTER_FACTORY_MODE, + Code_FT8006_DOWNLOAD, + Code_FT8006_UPGRADE, + Code_FT8006_FACTORY_ID_TEST, + Code_FT8006_PROJECT_CODE_TEST, + Code_FT8006_FW_VERSION_TEST, + Code_FT8006_IC_VERSION_TEST, + Code_FT8006_RAWDATA_TEST, + Code_FT8006_CHANNEL_NUM_TEST, + Code_FT8006_INT_PIN_TEST, + Code_FT8006_RESET_PIN_TEST, + Code_FT8006_NOISE_TEST, + Code_FT8006_CB_TEST, + Code_FT8006_WRITE_CONFIG, + Code_FT8006_SHORT_CIRCUIT_TEST, + Code_FT8006_LCD_NOISE_TEST, + + Code_FT8006_OSC60MHZ_TEST, + Code_FT8006_OSCTRM_TEST, + Code_FT8006_SNR_TEST, + Code_FT8006_DIFFER_TEST, + Code_FT8006_DIFFER_UNIFORMITY_TEST, + + Code_FT8006_LPWG_RAWDATA_TEST, + Code_FT8006_LPWG_CB_TEST, + Code_FT8006_LPWG_NOISE_TEST, + Code_FT8006_DIFFER2_TEST, +}; + +#elif (FTS_CHIP_TEST_TYPE == FT8736_TEST) + +struct stCfg_FT8736_TestItem { + bool FW_VERSION_TEST; + bool FACTORY_ID_TEST; + bool PROJECT_CODE_TEST; + bool IC_VERSION_TEST; + bool ICTYPE_TEST; + bool RAWDATA_TEST; + bool CHANNEL_NUM_TEST; + bool INT_PIN_TEST; + bool RESET_PIN_TEST; + bool NOISE_TEST; + bool CB_TEST; + bool SHORT_CIRCUIT_TEST; + bool OPEN_TEST; + bool CB_UNIFORMITY_TEST; + bool DIFFER_UNIFORMITY_TEST; + bool DIFFER2_UNIFORMITY_TEST; + bool LCD_NOISE_TEST; + bool CB_DECREASE_TEST; + bool VREF_DECREASE_TEST; +}; +struct stCfg_FT8736_BasicThreshold { + BYTE FW_VER_VALUE; + BYTE Factory_ID_Number; + char Project_Code[32]; + BYTE IC_Version; + bool bRawDataTest_VA_Check; + int RawDataTest_Min; + int RawDataTest_Max; + bool bRawDataTest_VKey_Check; + int RawDataTest_Min_VKey; + int RawDataTest_Max_VKey; + BYTE ChannelNumTest_ChannelXNum; + BYTE ChannelNumTest_ChannelYNum; + BYTE ChannelNumTest_KeyNum; + BYTE ResetPinTest_RegAddr; + BYTE IntPinTest_RegAddr; + int NoiseTest_Coefficient; + int NoiseTest_Frames; + int NoiseTest_Time; + BYTE NoiseTest_SampeMode; + BYTE NoiseTest_NoiseMode; + BYTE NoiseTest_ShowTip; + bool bCBTest_VA_Check; + int CbTest_Min; + int CbTest_Max; + bool bCBTest_VKey_Check; + int CbTest_Min_Vkey; + int CbTest_Max_Vkey; + + int ShortCircuit_ResMin; + + int OpenTest_CBMin; + + bool CBUniformityTest_Check_CHX; + bool CBUniformityTest_Check_CHY; + bool CBUniformityTest_Check_MinMax; + int CBUniformityTest_CHX_Hole; + int CBUniformityTest_CHY_Hole; + int CBUniformityTest_MinMax_Hole; + + bool DifferUniformityTest_Check_CHX; + bool DifferUniformityTest_Check_CHY; + bool DifferUniformityTest_Check_MinMax; + int DifferUniformityTest_CHX_Hole; + int DifferUniformityTest_CHY_Hole; + int DifferUniformityTest_MinMax_Hole; + int DeltaVol; + + bool Differ2UniformityTest_Check_CHX; + bool Differ2UniformityTest_Check_CHY; + int Differ2UniformityTest_CHX_Hole; + int Differ2UniformityTest_CHY_Hole; + int Differ2UniformityTest_Differ_Min; + int Differ2UniformityTest_Differ_Max; + + int LCDNoiseTest_FrameNum; + int LCDNoiseTest_Coefficient; + int LCDNoiseTest_Coefficient_Key; + BYTE LCDNoiseTest_NoiseMode; + + int CBDecrease_Step; + int CBDecrease_OrgMin; + int CBDecrease_OrgMax; + int CBDecrease_CalcMin; + int CBDecrease_CalcMax; + + int VRefDecrease_StepBegin; + int VRefDecrease_StepEnd; + int VRefDecrease_OrgMin; + int VRefDecrease_OrgMax; + int VRefDecrease_CalcMin; + int VRefDecrease_CalcMax; +}; + +enum enumTestItem_FT8736 { + Code_FT8736_ENTER_FACTORY_MODE, + Code_FT8736_DOWNLOAD, + Code_FT8736_UPGRADE, + Code_FT8736_FACTORY_ID_TEST, + Code_FT8736_PROJECT_CODE_TEST, + Code_FT8736_FW_VERSION_TEST, + Code_FT8736_IC_VERSION_TEST, + Code_FT8736_RAWDATA_TEST, + Code_FT8736_CHANNEL_NUM_TEST, + + Code_FT8736_INT_PIN_TEST, + Code_FT8736_RESET_PIN_TEST, + Code_FT8736_NOISE_TEST, + Code_FT8736_CB_TEST, + Code_FT8736_WRITE_CONFIG, + + Code_FT8736_SHORT_CIRCUIT_TEST, + Code_FT8736_OPEN_TEST, + Code_FT8736_CB_UNIFORMITY_TEST, + Code_FT8736_DIFFER_UNIFORMITY_TEST, + Code_FT8736_DIFFER2_UNIFORMITY_TEST, + Code_FT8736_LCD_NOISE_TEST, + Code_FT8736_CB_DECREASE_TEST, + Code_FT8736_VREF_DECREASE_TEST, + Code_FT8736_IC_TYPE_TEST, +}; + +#elif (FTS_CHIP_TEST_TYPE == FTE716_TEST) +struct stCfg_FTE716_TestItem { + bool FW_VERSION_TEST; + bool FACTORY_ID_TEST; + bool PROJECT_CODE_TEST; + bool IC_VERSION_TEST; + bool ICTYPE_TEST; + bool RAWDATA_TEST; + bool CHANNEL_NUM_TEST; + bool INT_PIN_TEST; + bool RESET_PIN_TEST; + bool NOISE_TEST; + bool CB_TEST; + bool SHORT_CIRCUIT_TEST; + bool OPEN_TEST; + bool CB_UNIFORMITY_TEST; + bool DIFFER_UNIFORMITY_TEST; + bool DIFFER2_UNIFORMITY_TEST; + bool LCD_NOISE_TEST; + bool GPIO_TEST; +}; +struct stCfg_FTE716_BasicThreshold { + BYTE FW_VER_VALUE; + BYTE Factory_ID_Number; + char Project_Code[32]; + bool bOri_ProjectCode; + BYTE IC_Version; + bool bRawDataTest_VA_Check; + int RawDataTest_Min; + int RawDataTest_Max; + bool bRawDataTest_VKey_Check; + int RawDataTest_Min_VKey; + int RawDataTest_Max_VKey; + BYTE ChannelNumTest_ChannelXNum; + BYTE ChannelNumTest_ChannelYNum; + BYTE ChannelNumTest_KeyNum; + BYTE ResetPinTest_RegAddr; + BYTE IntPinTest_RegAddr; + int NoiseTest_Coefficient; + int NoiseTest_Frames; + int NoiseTest_Time; + BYTE NoiseTest_SampeMode; + BYTE NoiseTest_NoiseMode; + BYTE NoiseTest_ShowTip; + bool bCBTest_VA_Check; + int CbTest_Min; + int CbTest_Max; + bool bCBTest_VKey_Check; + int CbTest_Min_Vkey; + int CbTest_Max_Vkey; + + int ShortCircuit_ResMin; + + int OpenTest_CBMin; + bool OpenTest_Check_K1; + int OpenTest_K1Threshold; + bool OpenTest_Check_K2; + int OpenTest_K2Threshold; + + bool CBUniformityTest_Check_CHX; + bool CBUniformityTest_Check_CHY; + bool CBUniformityTest_Check_MinMax; + int CBUniformityTest_CHX_Hole; + int CBUniformityTest_CHY_Hole; + int CBUniformityTest_MinMax_Hole; + + bool DifferUniformityTest_Check_CHX; + bool DifferUniformityTest_Check_CHY; + bool DifferUniformityTest_Check_MinMax; + int DifferUniformityTest_CHX_Hole; + int DifferUniformityTest_CHY_Hole; + int DifferUniformityTest_MinMax_Hole; + int DeltaVol; + + bool Differ2UniformityTest_Check_CHX; + bool Differ2UniformityTest_Check_CHY; + int Differ2UniformityTest_CHX_Hole; + int Differ2UniformityTest_CHY_Hole; + int Differ2UniformityTest_Differ_Min; + int Differ2UniformityTest_Differ_Max; + + int LCDNoiseTest_FrameNum; + int LCDNoiseTest_Coefficient; + BYTE LCDNoiseTest_NoiseMode; +}; + +enum enumTestItem_FTE716 { + Code_FTE716_ENTER_FACTORY_MODE, + Code_FTE716_DOWNLOAD, + Code_FTE716_UPGRADE, + Code_FTE716_FACTORY_ID_TEST, + Code_FTE716_PROJECT_CODE_TEST, + Code_FTE716_FW_VERSION_TEST, + Code_FTE716_IC_VERSION_TEST, + Code_FTE716_RAWDATA_TEST, + Code_FTE716_CHANNEL_NUM_TEST, + + Code_FTE716_INT_PIN_TEST, + Code_FTE716_RESET_PIN_TEST, + Code_FTE716_NOISE_TEST, + Code_FTE716_CB_TEST, + Code_FTE716_WRITE_CONFIG, + + Code_FTE716_SHORT_CIRCUIT_TEST, + Code_FTE716_OPEN_TEST, + Code_FTE716_CB_UNIFORMITY_TEST, + Code_FTE716_DIFFER_UNIFORMITY_TEST, + Code_FTE716_DIFFER2_UNIFORMITY_TEST, + Code_FTE716_LCD_NOISE_TEST, + Code_FTE716_GPIO_TEST, + Code_FTE716_IC_TYPE_TEST, +}; +#elif(FTS_CHIP_TEST_TYPE == FT8606_TEST) + +struct stCfg_FT8606_TestItem { + bool FW_VERSION_TEST; + bool FACTORY_ID_TEST; + bool PROJECT_CODE_TEST; + bool IC_VERSION_TEST; + bool RAWDATA_TEST; + bool CHANNEL_NUM_TEST; + bool INT_PIN_TEST; + bool RESET_PIN_TEST; + bool NOISE_TEST; + bool CB_TEST; + bool SHORT_CIRCUIT_TEST; + bool LCD_NOISE_TEST; + bool OSC60MHZ_TEST; + bool OSCTRM_TEST; + bool IVSN_TEST; +}; +struct stCfg_FT8606_BasicThreshold { + BYTE FW_VER_VALUE; + BYTE Factory_ID_Number; + char Project_Code[32]; + BYTE IC_Version; + int RawDataTest_Min; + int RawDataTest_Max; + BYTE ChannelNumTest_ChannelXNum; + BYTE ChannelNumTest_ChannelYNum; + BYTE ChannelNumTest_KeyNum; + BYTE ResetPinTest_RegAddr; + BYTE IntPinTest_RegAddr; + int NoiseTest_Coefficient; + int NoiseTest_Frames; + int NoiseTest_Time; + BYTE NoiseTest_SampeMode; + BYTE NoiseTest_NoiseMode; + BYTE NoiseTest_ShowTip; + int CbTest_Min; + int CbTest_Max; + int ShortTest_Max; + int ShortTest_K2Value; + bool ShortTest_Tip; + bool IsDifferMode; + int iLCDNoiseTestFrame; + int iLCDNoiseTestMaxScreen; + int iLCDNoiseTestMaxFrame; + int iLCDNoiseCoefficient; + + int OSC60MHZTest_OSCMin; + int OSC60MHZTest_OSCMax; + + int OSCTRMTest_OSCMin; + int OSCTRMTest_OSCMax; + int OSCTRMTest_OSCDetMin; + int OSCTRMTest_OSCDetMax; +}; + + +enum enumTestItem_FT8606 { + Code_FT8606_ENTER_FACTORY_MODE, + Code_FT8606_DOWNLOAD, + Code_FT8606_UPGRADE, + Code_FT8606_FACTORY_ID_TEST, + Code_FT8606_PROJECT_CODE_TEST, + Code_FT8606_FW_VERSION_TEST, + Code_FT8606_IC_VERSION_TEST, + Code_FT8606_RAWDATA_TEST, + Code_FT8606_CHANNEL_NUM_TEST, + + Code_FT8606_INT_PIN_TEST, + Code_FT8606_RESET_PIN_TEST, + Code_FT8606_NOISE_TEST, + Code_FT8606_CB_TEST, + Code_FT8606_WRITE_CONFIG, + + Code_FT8606_SHORT_CIRCUIT_TEST, + Code_FT8606_LCD_NOISE_TEST, + Code_FT8606_OSC60MHZ_TEST, + Code_FT8606_OSCTRM_TEST, + Code_FT8606_IVSN_TEST, +}; +#elif(FTS_CHIP_TEST_TYPE == FT3C47_TEST) + +struct stCfg_FT3C47_TestItem { + bool FW_VERSION_TEST; + bool FACTORY_ID_TEST; + bool PROJECT_CODE_TEST; + bool IC_VERSION_TEST; + bool RAWDATA_TEST; + bool ADC_DETECT_TEST; + bool SCAP_CB_TEST; + bool SCAP_RAWDATA_TEST; + bool CHANNEL_NUM_TEST; + bool INT_PIN_TEST; + bool RESET_PIN_TEST; + bool NOISE_TEST; + bool WEAK_SHORT_CIRCUIT_TEST; + bool UNIFORMITY_TEST; + bool CM_TEST; + + bool RAWDATA_MARGIN_TEST; + bool PANEL_DIFFER_TEST; + bool PANEL_DIFFER_UNIFORMITY_TEST; + + bool LCM_ID_TEST; + + bool TE_TEST; + bool SITO_RAWDATA_UNIFORMITY_TEST; + bool PATTERN_TEST; + + bool FORCETOUCH_CHANNEL_NUM_TEST; + bool FORCETOUCH_RAWDATA_TEST; + bool FORCETOUCH_CB_TEST; + bool FORCETOUCH_WEAK_SHORT_CIRCUIT_TEST; + bool FORCETOUCH_FLATNESS_TEST; +}; + +struct stCfg_FT3C47_BasicThreshold { + BYTE FW_VER_VALUE; + BYTE Factory_ID_Number; + char Project_Code[32]; + BYTE IC_Version; + BYTE LCM_ID; + int RawDataTest_low_Min; + int RawDataTest_Low_Max; + int RawDataTest_high_Min; + int RawDataTest_high_Max; + BYTE RawDataTest_SetLowFreq; + BYTE RawDataTest_SetHighFreq; + int AdcDetect_Max; + int SCapCbTest_OFF_Min; + int SCapCbTest_OFF_Max; + int SCapCbTest_ON_Min; + int SCapCbTest_ON_Max; + bool SCapCbTest_LetTx_Disable; + BYTE SCapCbTest_SetWaterproof_OFF; + BYTE SCapCbTest_SetWaterproof_ON; + int SCapRawDataTest_OFF_Min; + int SCapRawDataTest_OFF_Max; + int SCapRawDataTest_ON_Min; + int SCapRawDataTest_ON_Max; + bool SCapRawDataTest_LetTx_Disable; + BYTE SCapRawDataTest_SetWaterproof_OFF; + BYTE SCapRawDataTest_SetWaterproof_ON; + bool bChannelTestMapping; + bool bChannelTestNoMapping; + BYTE ChannelNumTest_TxNum; + BYTE ChannelNumTest_RxNum; + BYTE ChannelNumTest_TxNpNum; + BYTE ChannelNumTest_RxNpNum; + BYTE ResetPinTest_RegAddr; + BYTE IntPinTest_RegAddr; + BYTE IntPinTest_TestNum; + int NoiseTest_Max; + int GloveNoiseTest_Coefficient; + int NoiseTest_Frames; + int NoiseTest_Time; + BYTE NoiseTest_SampeMode; + BYTE NoiseTest_NoiseMode; + BYTE NoiseTest_ShowTip; + bool bNoiseTest_GloveMode; + int NoiseTest_RawdataMin; + unsigned char Set_Frequency; + bool bNoiseThreshold_Choose; + int NoiseTest_Threshold; + int NoiseTest_MinNgFrame; + int WeakShortTest_CG; + int WeakShortTest_CC; + int WeakShortTest_CC_Rsen; + bool WeakShortTest_CapShortTest; + + bool Uniformity_CheckTx; + bool Uniformity_CheckRx; + bool Uniformity_CheckMinMax; + int Uniformity_Tx_Hole; + int Uniformity_Rx_Hole; + int Uniformity_MinMax_Hole; + bool CMTest_CheckMin; + bool CMTest_CheckMax; + int CMTest_MinHole; + int CMTest_MaxHole; + + int RawdataMarginTest_Min; + int RawdataMarginTest_Max; + + int PanelDifferTest_Min; + int PanelDifferTest_Max; + + bool PanelDiffer_UniformityTest_Check_Tx; + bool PanelDiffer_UniformityTest_Check_Rx; + bool PanelDiffer_UniformityTest_Check_MinMax; + int PanelDiffer_UniformityTest_Tx_Hole; + int PanelDiffer_UniformityTest_Rx_Hole; + int PanelDiffer_UniformityTest_MinMax_Hole; + + bool SITO_RawdtaUniformityTest_Check_Tx; + bool SITO_RawdtaUniformityTest_Check_Rx; + int SITO_RawdtaUniformityTest_Tx_Hole; + int SITO_RawdtaUniformityTest_Rx_Hole; + + bool bPattern00; + bool bPatternFF; + bool bPattern55; + bool bPatternAA; + bool bPatternBin; + + int ForceTouch_ChannelNumTest_ChannelNum; + + int ForceTouch_SCapRawDataTest_OFF_Min; + int ForceTouch_SCapRawDataTest_OFF_Max; + int ForceTouch_SCapRawDataTest_ON_Min; + int ForceTouch_SCapRawDataTest_ON_Max; + BYTE ForceTouch_SCapRawDataTest_SetWaterproof_OFF; + BYTE ForceTouch_SCapRawDataTest_SetWaterproof_ON; + + int ForceTouch_SCapCbTest_OFF_Min; + int ForceTouch_SCapCbTest_OFF_Max; + int ForceTouch_SCapCbTest_ON_Min; + int ForceTouch_SCapCbTest_ON_Max; + BYTE ForceTouch_SCapCBTest_SetWaterproof_OFF; + BYTE ForceTouch_SCapCBTest_SetWaterproof_ON; + + int ForceTouch_WeakShortTest_CG; + int ForceTouch_WeakShortTest_CC; + bool bForceTouch_WeakShortTest_CapShortTest; + + int ForceTouch_FlatnessTest_Differ_Threshold; + int ForceTouch_FlatnessTest_Differ_Coefficient; + bool ForceTouch_FlatnessTest_Differ_Threshold_Check; + bool ForceTouch_FlatnessTest_Differ_Coefficient_Check; + +}; +enum enumTestItem_FT3C47 { + Code_FT3C47_ENTER_FACTORY_MODE, + Code_FT3C47_DOWNLOAD, + Code_FT3C47_UPGRADE, + Code_FT3C47_FACTORY_ID_TEST, + Code_FT3C47_PROJECT_CODE_TEST, + Code_FT3C47_FW_VERSION_TEST, + Code_FT3C47_IC_VERSION_TEST, + Code_FT3C47_RAWDATA_TEST, + Code_FT3C47_ADCDETECT_TEST, + Code_FT3C47_SCAP_CB_TEST, + Code_FT3C47_SCAP_RAWDATA_TEST, + Code_FT3C47_CHANNEL_NUM_TEST, + Code_FT3C47_INT_PIN_TEST, + Code_FT3C47_RESET_PIN_TEST, + Code_FT3C47_NOISE_TEST, + Code_FT3C47_WEAK_SHORT_CIRCUIT_TEST, + Code_FT3C47_UNIFORMITY_TEST, + Code_FT3C47_CM_TEST, + Code_FT3C47_RAWDATA_MARGIN_TEST, + Code_FT3C47_WRITE_CONFIG, + Code_FT3C47_PANELDIFFER_TEST, + Code_FT3C47_PANELDIFFER_UNIFORMITY_TEST, + Code_FT3C47_LCM_ID_TEST, + Code_FT3C47_JUDEG_NORMALIZE_TYPE, + Code_FT3C47_TE_TEST, + Code_FT3C47_SITO_RAWDATA_UNIFORMITY_TEST, + Code_FT3C47_PATTERN_TEST, + + Code_FT3C47_GPIO_TEST, + Code_FT3C47_LCD_NOISE_TEST, + Code_FT3C47_FORCE_TOUCH_CHANNEL_NUM_TEST, + Code_FT3C47_FORCE_TOUCH_SCAP_RAWDATA_TEST, + Code_FT3C47_FORCE_TOUCH_SCAP_CB_TEST, + Code_FT3C47_FORCE_TOUCH_WEAK_SHORT_CIRCUIT_TEST, + Code_FT3C47_FORCE_TOUCH_FLATNESS_TEST, +}; +#endif + + diff --git a/drivers/input/touchscreen/FT8006m/focaltech_test/src/Makefile b/drivers/input/touchscreen/FT8006m/focaltech_test/src/Makefile new file mode 100755 index 0000000000000..fd1ac825e691e --- /dev/null +++ b/drivers/input/touchscreen/FT8006m/focaltech_test/src/Makefile @@ -0,0 +1,12 @@ +#drivers/input/touchscreen/focaltech_touch/focaltech_test/src +# +# Makefile for test module +# +# Linux driver folder + +obj-$(CONFIG_TOUCHSCREEN_FT8006M) += focaltech_test.o +obj-$(CONFIG_TOUCHSCREEN_FT8006M) += focaltech_test_main.o +obj-$(CONFIG_TOUCHSCREEN_FT8006M) += focaltech_test_ini.o +obj-$(CONFIG_TOUCHSCREEN_FT8006M) += focaltech_test_global.o +obj-$(CONFIG_TOUCHSCREEN_FT8006M) += focaltech_test_detail_threshold.o +obj-$(CONFIG_TOUCHSCREEN_FT8006M) += focaltech_ic_table.o diff --git a/drivers/input/touchscreen/FT8006m/focaltech_test/src/focaltech_ic_table.c b/drivers/input/touchscreen/FT8006m/focaltech_test/src/focaltech_ic_table.c new file mode 100755 index 0000000000000..a3ba92ca67cee --- /dev/null +++ b/drivers/input/touchscreen/FT8006m/focaltech_test/src/focaltech_ic_table.c @@ -0,0 +1,532 @@ +/* + * + * FocalTech TouchScreen driver. + * + * Copyright (c) 2010-2017, FocalTech Systems, Ltd., all rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +/***************************************************************************** +* +* File Name: Focaltech_ic_table.c +* +* Author: Xu YF & ZR, Software Department, FocalTech +* +* Created: 2016-03-17 +* +* Modify: +* +* Abstract: +* +* Reference: +* +*****************************************************************************/ + +/***************************************************************************** +* 1.Included header files +*****************************************************************************/ + +#include +#include +#include "../include/focaltech_ic_table.h" + +/***************************************************************************** +* Private constant and macro definitions using #define +*****************************************************************************/ +#define FOCALTECH_IC_TABLE_INFO "File Version of focaltech_ic_table.c: V1.0.0 2016-03-22" + +/***************************************************************************** +* Private enumerations, structures and unions using typedef +*****************************************************************************/ + +/***************************************************************************** +* Static variables +*****************************************************************************/ + +/***************************************************************************** +* Global variable or extern global variabls/functions +*****************************************************************************/ + +/***************************************************************************** +* Static function prototypes +*****************************************************************************/ + + +/***************************************************************************** +* functions body +*****************************************************************************/ + + +unsigned int ft8006m_ic_table_get_ic_code_from_ic_name(char *strIcName) +{ + + if (strncmp(strIcName, "FT5X36", 6) == 0) + return IC_FT5X36; + if (strncmp(strIcName, "FT5X36i", 7) == 0) + return IC_FT5X36i; + if (strncmp(strIcName, "FT3X16", 6) == 0) + return IC_FT3X16; + if (strncmp(strIcName, "FT3X26", 6) == 0) + return IC_FT3X26; + + if (strncmp(strIcName, "FT5X22", 6) == 0) + return IC_FT5X46; + if (strncmp(strIcName, "FT5X46", 6) == 0) + return IC_FT5X46; + if (strncmp(strIcName, "FT5X46i", 7) == 0) + return IC_FT5X46i; + if (strncmp(strIcName, "FT5526", 6) == 0) + return IC_FT5526; + if (strncmp(strIcName, "FT3X17", 6) == 0) + return IC_FT3X17; + if (strncmp(strIcName, "FT5436", 6) == 0) + return IC_FT5436; + if (strncmp(strIcName, "FT3X27", 6) == 0) + return IC_FT3X27; + if (strncmp(strIcName, "FT5526i", 7) == 0) + return IC_FT5526I; + if (strncmp(strIcName, "FT5416", 6) == 0) + return IC_FT5416; + if (strncmp(strIcName, "FT5426", 6) == 0) + return IC_FT5426; + if (strncmp(strIcName, "FT5435", 6) == 0) + return IC_FT5435; + if (strncmp(strIcName, "FT7681", 6) == 0) + return IC_FT7681; + if (strncmp(strIcName, "FT7661", 6) == 0) + return IC_FT7661; + if (strncmp(strIcName, "FT7511", 6) == 0) + return IC_FT7511; + if (strncmp(strIcName, "FT7421", 6) == 0) + return IC_FT7421; + + if (strncmp(strIcName, "FT6X06", 6) == 0) + return IC_FT6X06; + if (strncmp(strIcName, "FT3X06", 6) == 0) + return IC_FT3X06; + + if (strncmp(strIcName, "FT6X36", 6) == 0) + return IC_FT6X36; + if (strncmp(strIcName, "FT3X07", 6) == 0) + return IC_FT3X07; + if (strncmp(strIcName, "FT6416", 6) == 0) + return IC_FT6416; + if (strncmp(strIcName, "FT6336G/U", 9) == 0) + return IC_FT6426; + if (strncmp(strIcName, "FT6236U", 7) == 0) + return IC_FT6236U; + if (strncmp(strIcName, "FT6436U", 7) == 0) + return IC_FT6436U; + if (strncmp(strIcName, "FT3267", 6) == 0) + return IC_FT3267; + if (strncmp(strIcName, "FT3367", 6) == 0) + return IC_FT3367; + if (strncmp(strIcName, "FT7401", 6) == 0) + return IC_FT7401; + if (strncmp(strIcName, "FT3407U", 7) == 0) + return IC_FT3407U; + + + if (strncmp(strIcName, "FT5X16", 6) == 0) + return IC_FT5X16; + if (strncmp(strIcName, "FT5X12", 6) == 0) + return IC_FT5X12; + + if (strncmp(strIcName, "FT5506", 6) == 0) + return IC_FT5506; + if (strncmp(strIcName, "FT5606", 6) == 0) + return IC_FT5606; + if (strncmp(strIcName, "FT5816", 6) == 0) + return IC_FT5816; + + if (strncmp(strIcName, "FT5822", 6) == 0) + return IC_FT5822; + if (strncmp(strIcName, "FT5626", 6) == 0) + return IC_FT5626; + if (strncmp(strIcName, "FT5726", 6) == 0) + return IC_FT5726; + if (strncmp(strIcName, "FT5826B", 7) == 0) + return IC_FT5826B; + if (strncmp(strIcName, "FT3617", 6) == 0) + return IC_FT3617; + if (strncmp(strIcName, "FT3717", 6) == 0) + return IC_FT3717; + if (strncmp(strIcName, "FT7811", 6) == 0) + return IC_FT7811; + if (strncmp(strIcName, "FT5826S", 7) == 0) + return IC_FT5826S; + + if (strncmp(strIcName, "FT5306", 6) == 0) + return IC_FT5306; + if (strncmp(strIcName, "FT5406", 6) == 0) + return IC_FT5406; + + if (strncmp(strIcName, "FT8606", 6) == 0) + return IC_FT8606; + if (strncmp(strIcName, "FT8716", 6) == 0) + return IC_FT8716; + + if (strncmp(strIcName, "FT3C47U", 7) == 0) + return IC_FT3C47U; + + if (strncmp(strIcName, "FT8607", 6) == 0) + return IC_FT8607; + if (strncmp(strIcName, "FT8707", 6) == 0) + return IC_FT8707; + + + if (strncmp(strIcName, "FT8736", 6) == 0) + return IC_FT8736; + + if (strncmp(strIcName, "FT3D47", 6) == 0) + return IC_FT3D47; + + if (strncmp(strIcName, "FTE716", 6) == 0) + return IC_FTE716; + + if (strncmp(strIcName, "FT5442", 6) == 0) + return IC_FT5442; + + if (strncmp(strIcName, "FT3428U", 7) == 0) + return IC_FT3428U; + + if (strncmp(strIcName, "FT8006M", 7) == 0) + return IC_FT8006M; + + if (strncmp(strIcName, "FT8201", 6) == 0) + return IC_FT8201; + + if (strncmp(strIcName, "FTE736", 6) == 0) + return IC_FTE736; + + printk("%s. can NOT get ic code. ERROR !!! \n", __func__); + + return 0xff; +} + + +void ft8006m_ic_table_get_ic_name_from_ic_code(unsigned int ucIcCode, char *strIcName) +{ + if (NULL == strIcName) + return; + + sprintf(strIcName, "%s", "NA");/*if can't find IC , set 'NA'*/ + + if (ucIcCode == IC_FT5X36) + sprintf(strIcName, "%s", "FT5X36"); + if (ucIcCode == IC_FT5X36i) + sprintf(strIcName, "%s", "FT5X36i"); + if (ucIcCode == IC_FT3X16) + sprintf(strIcName, "%s", "FT3X16"); + if (ucIcCode == IC_FT3X26) + sprintf(strIcName, "%s", "FT3X26"); + + + if (ucIcCode == IC_FT5X46) + sprintf(strIcName, "%s", "FT5X46"); + if (ucIcCode == IC_FT5X46i) + sprintf(strIcName, "%s", "FT5X46i"); + if (ucIcCode == IC_FT5526) + sprintf(strIcName, "%s", "FT5526"); + if (ucIcCode == IC_FT3X17) + sprintf(strIcName, "%s", "FT3X17"); + if (ucIcCode == IC_FT5436) + sprintf(strIcName, "%s", "FT5436"); + if (ucIcCode == IC_FT3X27) + sprintf(strIcName, "%s", "FT3X27"); + if (ucIcCode == IC_FT5526I) + sprintf(strIcName, "%s", "FT5526i"); + if (ucIcCode == IC_FT5416) + sprintf(strIcName, "%s", "FT5416"); + if (ucIcCode == IC_FT5426) + sprintf(strIcName, "%s", "FT5426"); + if (ucIcCode == IC_FT5435) + sprintf(strIcName, "%s", "FT5435"); + if (ucIcCode == IC_FT7681) + sprintf(strIcName, "%s", "FT7681"); + if (ucIcCode == IC_FT7661) + sprintf(strIcName, "%s", "FT7661"); + if (ucIcCode == IC_FT7511) + sprintf(strIcName, "%s", "FT7511"); + if (ucIcCode == IC_FT7421) + sprintf(strIcName, "%s", "FT7421"); + + if (ucIcCode == IC_FT6X06) + sprintf(strIcName, "%s", "FT6X06"); + if (ucIcCode == IC_FT3X06) + sprintf(strIcName, "%s", "FT3X06"); + + if (ucIcCode == IC_FT6X36) + sprintf(strIcName, "%s", "FT6X36"); + if (ucIcCode == IC_FT3X07) + sprintf(strIcName, "%s", "FT3X07"); + if (ucIcCode == IC_FT6416) + sprintf(strIcName, "%s", "FT6416"); + if (ucIcCode == IC_FT6426) + sprintf(strIcName, "%s", "FT6336G/U"); + if (ucIcCode == IC_FT6236U) + sprintf(strIcName, "%s", "FT6236U"); + if (ucIcCode == IC_FT6436U) + sprintf(strIcName, "%s", "FT6436U"); + if (ucIcCode == IC_FT3267) + sprintf(strIcName, "%s", "FT3267"); + if (ucIcCode == IC_FT3367) + sprintf(strIcName, "%s", "FT3367"); + if (ucIcCode == IC_FT7401) + sprintf(strIcName, "%s", "FT7401"); + if (ucIcCode == IC_FT3407U) + sprintf(strIcName, "%s", "FT3407U"); + + if (ucIcCode == IC_FT5X16) + sprintf(strIcName, "%s", "FT5X16"); + if (ucIcCode == IC_FT5X12) + sprintf(strIcName, "%s", "FT5X12"); + + if (ucIcCode == IC_FT5506) + sprintf(strIcName, "%s", "FT5506"); + if (ucIcCode == IC_FT5606) + sprintf(strIcName, "%s", "FT5606"); + if (ucIcCode == IC_FT5816) + sprintf(strIcName, "%s", "FT5816"); + + if (ucIcCode == IC_FT5822) + sprintf(strIcName, "%s", "FT5822"); + if (ucIcCode == IC_FT5626) + sprintf(strIcName, "%s", "FT5626"); + if (ucIcCode == IC_FT5726) + sprintf(strIcName, "%s", "FT5726"); + if (ucIcCode == IC_FT5826B) + sprintf(strIcName, "%s", "FT5826B"); + if (ucIcCode == IC_FT3617) + sprintf(strIcName, "%s", "FT3617"); + if (ucIcCode == IC_FT3717) + sprintf(strIcName, "%s", "FT3717"); + if (ucIcCode == IC_FT7811) + sprintf(strIcName, "%s", "FT7811"); + if (ucIcCode == IC_FT5826S) + sprintf(strIcName, "%s", "FT5826S"); + + if (ucIcCode == IC_FT5306) + sprintf(strIcName, "%s", "FT5306"); + if (ucIcCode == IC_FT5406) + sprintf(strIcName, "%s", "FT5406"); + + if (ucIcCode == IC_FT8606) + sprintf(strIcName, "%s", "FT8606"); + if (ucIcCode == IC_FT8716) + sprintf(strIcName, "%s", "FT8716"); + + if (ucIcCode == IC_FT3C47U) + sprintf(strIcName, "%s", "FT3C47U"); + + if (ucIcCode == IC_FT8607) + sprintf(strIcName, "%s", "FT8607"); + if (ucIcCode == IC_FT8707) + sprintf(strIcName, "%s", "FT8707"); + if (ucIcCode == IC_FT8736) + sprintf(strIcName, "%s", "FT8736"); + + if (ucIcCode == IC_FT3D47) + sprintf(strIcName, "%s", "FT3D47"); + + if (ucIcCode == IC_FTE716) + sprintf(strIcName, "%s", "FTE716"); + + if (ucIcCode == IC_FT5442) + sprintf(strIcName, "%s", "FT5442"); + + if (ucIcCode == IC_FT3428U) + sprintf(strIcName, "%s", "FT3428U"); + + if (ucIcCode == IC_FT8006M) + sprintf(strIcName, "%s", "FT8006M"); + + if (ucIcCode == IC_FT8201) + sprintf(strIcName, "%s", "FT8201"); + + if (ucIcCode == IC_FTE736) + sprintf(strIcName, "%s", "FTE736"); + + + + return ; +} + + +unsigned int ft8006m_ic_table_get_ic_code_from_chip_id(unsigned char chip_id, unsigned char chip_id2) +{ + unsigned int ic_code = 0; + switch (chip_id) { + case 0x55: + ic_code = IC_FT5306; + break; + case 0x08: + ic_code = IC_FT5606; + break; + case 0x0a: + ic_code = IC_FT5X16; + break; + case 0x06: + ic_code = IC_FT6X06; + break; + case 0x36: + ic_code = IC_FT6X36; + break; + case 0x14: + ic_code = IC_FT5X36; + break; + case 0x13: + ic_code = IC_FT3X16; + break; + case 0x12: + ic_code = IC_FT5X36i; + break; + case 0x11: + ic_code = IC_FT5X36i; + break; + case 0x54: + ic_code = IC_FT5X46; + break; + case 0x58: + ic_code = IC_FT5822; + break; + + + case 0x86: + if (0x06 == chip_id2) + ic_code = IC_FT8606; + else if (0x07 == chip_id2) + ic_code = IC_FT8607; + break; + case 0x87: + if (0x07 == chip_id2) + ic_code = IC_FT8707; + else if (0x16 == chip_id2) + ic_code = IC_FT8716; + else if (0x36 == chip_id2) + ic_code = IC_FT8736; + break; + case 0xE7: + if (0x16 == chip_id2) + ic_code = IC_FTE716; + else if (0x36 == chip_id2) + ic_code = IC_FTE736; + break; + default: + ic_code = 0; + break; + } + return ic_code; +} + +unsigned int ft8006m_ic_table_get_chip_id_from_ic_code(unsigned int ic_code, unsigned char *chip_id, unsigned char *chip_id2) +{ + unsigned char uc_chip_id = 0; + unsigned char uc_chip_id2 = 0; + switch (ic_code>>4) { + case (IC_FT5306>>4): + uc_chip_id = 0x55; + break; + case (IC_FT5606>>4): + uc_chip_id = 0x08; + break; + case (IC_FT5X16>>4): + uc_chip_id = 0x0a; + break; + case (IC_FT6X06>>4): + uc_chip_id = 0x06; + break; + case (IC_FT6X36>>4): + uc_chip_id = 0x36; + break; + case (IC_FT5X36>>4): + switch (ic_code) { + case (IC_FT5X36): + uc_chip_id = 0x14; + break; + case (IC_FT3X26): + uc_chip_id = 0x13; + break; + case (IC_FT3X16): + uc_chip_id = 0x12; + break; + case (IC_FT5X36i): + uc_chip_id = 0x11; + break; + } + break; + case (IC_FT5X46>>4): + uc_chip_id = 0x54; + break; + case (IC_FT5822>>4): + uc_chip_id = 0x58; + break; + + + case (IC_FT8606>>4): + uc_chip_id = 0x86; + uc_chip_id2 = 0x06; + break; + case (IC_FT8607>>4): + uc_chip_id = 0x86; + uc_chip_id2 = 0x07; + break; + case (IC_FT8707>>4): + uc_chip_id = 0x87; + uc_chip_id2 = 0x07; + break; + case (IC_FT8716>>4): + uc_chip_id = 0x87; + uc_chip_id2 = 0x16; + break; + case (IC_FT8736>>4): + uc_chip_id = 0x87; + uc_chip_id2 = 0x36; + break; + case (IC_FTE716>>4): + uc_chip_id = 0xE7; + uc_chip_id2 = 0x16; + break; + case (IC_FTE736>>4): + uc_chip_id = 0xE7; + uc_chip_id2 = 0x36; + break; + + default: + uc_chip_id = 0; + break; + + } + + *chip_id = uc_chip_id; + *chip_id2 = uc_chip_id2; + + return 0; +} +int ft8006m_ic_table_need_chip_id2(unsigned int chip_id) +{ + int b_need_id2 = -1; + switch (chip_id) { + case 0x86: + case 0x87: + case 0xE7: + b_need_id2 = 0; + printk("b_need_id2 = %d, chip_id = 0x%02x\n", b_need_id2, chip_id); + break; + default: + b_need_id2 = -1; + printk("b_need_id2 = %d, chip_id = 0x%02x\n", b_need_id2, chip_id); + break; + } + return b_need_id2; +} diff --git a/drivers/input/touchscreen/FT8006m/focaltech_test/src/focaltech_test.c b/drivers/input/touchscreen/FT8006m/focaltech_test/src/focaltech_test.c new file mode 100755 index 0000000000000..36624ade2a094 --- /dev/null +++ b/drivers/input/touchscreen/FT8006m/focaltech_test/src/focaltech_test.c @@ -0,0 +1,812 @@ +/* + * + * FocalTech TouchScreen driver. + * + * Copyright (c) 2010-2017, FocalTech Systems, Ltd., all rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +/************************************************************************ +* +* File Name: focaltech_test.c +* +* Author: Software Department, FocalTech +* +* Created: 2016-08-01 +* +* Modify: +* +* Abstract: create char device and proc node for the comm between APK and TP +* +************************************************************************/ + +/***************************************************************************** +* Included header files +*****************************************************************************/ +#include +#include +#include +#include +#include + +#include +#include + +#include "../../focaltech_core.h" +#include "../include/focaltech_test_main.h" +#include "../include/focaltech_test_ini.h" + +#include +#include +#define CTP_PARENT_PROC_NAME "touchscreen" +#define CTP_OPEN_PROC_NAME "ctp_openshort_test" + +#if FTS_LOCK_DOWN_INFO +static char tp_lockdown_info[128]; +#define FTS_PROC_LOCKDOWN_FILE "lockdown_info" +static int fts_lockdown_proc_show(struct seq_file *file, void *data) +{ + char temp[40] = {0}; + + sprintf(temp, "%s\n", tp_lockdown_info); + seq_printf(file, "%s\n", temp); + + return 0; +} + +static int fts_lockdown_proc_open (struct inode *inode, struct file *file) +{ + return single_open(file, fts_lockdown_proc_show, inode->i_private); +} + +static const struct file_operations fts_lockdown_proc_fops = { + .open = fts_lockdown_proc_open, + .read = seq_read, +}; + +#endif + +#if FTS_CAT_RAWDATA +#define FTS_PROC_RAWDATA "rawdata" +static u8 g_isdiff = 1; +/************************************************************************ +* Name: StartScan(Same function name as FT_MultipleTest) +* Brief: Scan TP, do it before read Raw Data +* Input: none +* Output: none +* Return: Comm Code. Code = 0x00 is OK, else fail. +***********************************************************************/ +static int StartScan(struct i2c_client *client) +{ + u8 RegVal = 0x00; + u8 times = 0; + const u8 MaxTimes = 20; + u8 ReCode = -1; + + ReCode = ft8006m_i2c_write_reg(client, 0x00, 0xC0); + if (ReCode >= 0) { + while (times++ < MaxTimes) { + msleep(8); + ReCode = ft8006m_i2c_read_reg(client, 0x00, &RegVal); + if (RegVal == 0x40) + break; + } + + if (times > MaxTimes) + return -EPERM; + } + return ReCode; +} + +int ft8006m_read_rawdata(struct i2c_client *client, int is_diff, s16 *data, int len) +{ + u8 reg = 0x6A; + u8 regdata[1280] = { 0 }; + int remain_bytes; + int pos = 0; + int i = 0; + + FTS_DEBUG("len=%d, is_diff=%d", len, is_diff); + ft8006m_i2c_write_reg(client, 0x06, is_diff); + + if (StartScan(client) < 0) + return -EPERM; + + ft8006m_i2c_write_reg(client, 0x01, 0xAD); + + if (len <= 256) + ft8006m_i2c_read(client, ®, 1, regdata, len); + else { + ft8006m_i2c_read(client, ®, 1, regdata, 256); + remain_bytes = len - 256; + for (i = 1; remain_bytes > 0; i++) { + if (remain_bytes > 256) + ft8006m_i2c_read(client, ®, 0, regdata + i * 256, 256); + else + ft8006m_i2c_read(client, ®, 0, regdata + i * 256, remain_bytes); + remain_bytes -= 256; + } + } + + for (i = 0; i < len;) { + data[pos++] = ((s16)(regdata[i]) << 8) + regdata[i+1]; + i += 2; + } + return 0; +} + +int ft8006m_get_rawdata(struct i2c_client *client, s16 *data, u8 *txlen, u8 *rxlen) +{ + u8 val; + int i; + + /* 0xEE = 1, not clb */ + ft8006m_i2c_write_reg(client, 0xEE, 1); + + /* Enter Factory Mode */ + ft8006m_i2c_write_reg(client, 0x00, 0x40); + do { + ft8006m_i2c_read_reg(client, 0x00, &val); + if (val == 0x40) + break; + msleep(1); + } while (i < 10); + + /* Get Tx/Rx Num */ + ft8006m_i2c_read_reg(client, 0x02, txlen); + ft8006m_i2c_read_reg(client, 0x03, rxlen); + + /* read_rawdata */ + ft8006m_read_rawdata(client, g_isdiff, data, (*txlen) * (*rxlen) * 2); + + /* Enter in work mode */ + ft8006m_i2c_write_reg(client, 0x00, 0x00); + do { + ft8006m_i2c_read_reg(client, 0x00, &val); + if (val == 0x00) + break; + msleep(1); + } while (i < 10); + + return 0; +} + +static char temp_8006m[PAGE_SIZE] = {0}; + +static int fts_rawdata_proc_show(struct seq_file *file, void *buf) +{ + int count; + int i = 0, j = 0; + u8 val; + s16 data[600] = { 0 }; + u8 txlen = 0; + u8 rxlen = 0; + struct i2c_client *client = ft8006m_i2c_client; + + if (ft8006m_wq_data->suspended) { + FTS_INFO("Already in suspend state"); + return -EPERM; + } + mutex_lock(&ft8006m_input_dev->mutex); + + ft8006m_get_rawdata(client, data, &txlen, &rxlen); + + ft8006m_i2c_read_reg(client, 0xEE, &val); + count = snprintf(temp_8006m, PAGE_SIZE, "0xEE = %d\n", val); + count += snprintf(temp_8006m + count, PAGE_SIZE-count, "%s :\n", g_isdiff ? "DIFF DATA" : "RAWDATA"); + for (i = 0; i < txlen; i++) { + for (j = 0; j < rxlen; j++) { + count += snprintf(temp_8006m + count, PAGE_SIZE-count, "%5d ", data[i*rxlen + j]); + } + count += snprintf(temp_8006m + count, PAGE_SIZE-count, "\n"); + } + count += snprintf(temp_8006m + count, PAGE_SIZE-count, "\n\n"); + seq_printf(file, "%s\n", temp_8006m); + memset(temp_8006m, 0, PAGE_SIZE); + mutex_unlock(&ft8006m_input_dev->mutex); + + return 0; +} + +static int fts_rawdata_proc_open (struct inode *inode, struct file *file) +{ + return single_open(file, fts_rawdata_proc_show, inode->i_private); +} + +static ssize_t fts_rawdata_proc_store(struct file *file, const char __user *buf, size_t count, loff_t *len) +{ + unsigned long val; + int ret; + char *buff[5] = {0}; + if (ft8006m_wq_data->suspended) { + FTS_INFO("Already in suspend state"); + return -EPERM; + } + ret = copy_from_user(buff, buf, 5); + mutex_lock(&ft8006m_input_dev->mutex); + val = simple_strtoul((char *)buff, NULL, 10); + if (val) + g_isdiff = 1; + else + g_isdiff = 0; + mutex_unlock(&ft8006m_input_dev->mutex); + + return count; +} +static const struct file_operations fts_rawdata_proc_fops = { + .open = fts_rawdata_proc_open, + .read = seq_read, + .write = fts_rawdata_proc_store, +}; +#endif +static ssize_t ctp_open_proc_read(struct file *file, char __user *buf, size_t count, loff_t *ppos); +static ssize_t ctp_open_proc_write(struct file *filp, const char __user *userbuf, size_t count, loff_t *ppos); +static const struct file_operations ctp_open_procs_fops = { + .write = ctp_open_proc_write, + .read = ctp_open_proc_read, + .owner = THIS_MODULE, +}; +static struct proc_dir_entry *ctp_device_proc; +/***************************************************************************** +* Private constant and macro definitions using #define +*****************************************************************************/ +#define IC_TEST_VERSION "Test version: V1.0.0--2016-12-28, (sync version of FT_MultipleTest: V4.0.0.0 ------ 2016-07-18)" + + +#define FTS_INI_FILE_PATH "/etc/" + +#define FTS_SAVE_DATA_FILE_PATH "/mnt/sdcard/" + + +#define FTS_TEST_BUFFER_SIZE 80*1024 +#define FTS_TEST_PRINT_SIZE 128 +/***************************************************************************** +* Private enumerations, structures and unions using typedef +*****************************************************************************/ + + +/***************************************************************************** +* Static variables +*****************************************************************************/ + +/***************************************************************************** +* Global variable or extern global variabls/functions +*****************************************************************************/ + + +/***************************************************************************** +* Static function prototypes +*****************************************************************************/ +static int fts_test_get_ini_size(char *config_name); +static int fts_test_read_ini_data(char *config_name, char *config_buf); +static int fts_test_save_test_data(char *file_name, char *data_buf, int iLen); +static int fts_test_get_testparam_from_ini(char *config_name); +static int fts_test_entry(char *ini_file_name); + +static int fts_test_i2c_read(unsigned char *writebuf, int writelen, unsigned char *readbuf, int readlen); +static int fts_test_i2c_write(unsigned char *writebuf, int writelen); + + +/***************************************************************************** +* functions body +*****************************************************************************/ +static int fts_test_i2c_read(unsigned char *writebuf, int writelen, unsigned char *readbuf, int readlen) +{ + int iret = -1; +#if 1 + iret = ft8006m_i2c_read(ft8006m_i2c_client, writebuf, writelen, readbuf, readlen); +#else + iret = ft8006m_i2c_read(writebuf, writelen, readbuf, readlen); +#endif + + return iret; + +} + +static int fts_test_i2c_write(unsigned char *writebuf, int writelen) +{ + int iret = -1; +#if 1 + iret = ft8006m_i2c_write(ft8006m_i2c_client, writebuf, writelen); +#else + iret = ft8006m_i2c_write(writebuf, writelen); +#endif + + return iret; +} + + +static int fts_test_get_ini_size(char *config_name) +{ + struct file *pfile = NULL; + struct inode *inode = NULL; + + off_t fsize = 0; + char filepath[128]; + + FTS_TEST_FUNC_ENTER(); + + memset(filepath, 0, sizeof(filepath)); + + sprintf(filepath, "%s%s", FTS_INI_FILE_PATH, config_name); + + if (NULL == pfile) + pfile = filp_open(filepath, O_RDONLY, 0); + + if (IS_ERR(pfile)) { + FTS_TEST_ERROR("error occured while opening file %s.", filepath); + return -EIO; + } + + inode = pfile->f_dentry->d_inode; + + fsize = inode->i_size; + filp_close(pfile, NULL); + + FTS_TEST_FUNC_ENTER(); + + return fsize; +} + + +static int fts_test_read_ini_data(char *config_name, char *config_buf) +{ + struct file *pfile = NULL; + struct inode *inode = NULL; + + off_t fsize = 0; + char filepath[128]; + loff_t pos = 0; + mm_segment_t old_fs; + + FTS_TEST_FUNC_ENTER(); + + memset(filepath, 0, sizeof(filepath)); + sprintf(filepath, "%s%s", FTS_INI_FILE_PATH, config_name); + if (NULL == pfile) { + pfile = filp_open(filepath, O_RDONLY, 0); + } + if (IS_ERR(pfile)) { + FTS_TEST_ERROR("error occured while opening file %s.", filepath); + return -EIO; + } + + inode = pfile->f_dentry->d_inode; + + fsize = inode->i_size; + old_fs = get_fs(); + set_fs(KERNEL_DS); + pos = 0; + vfs_read(pfile, config_buf, fsize, &pos); + filp_close(pfile, NULL); + set_fs(old_fs); + + FTS_TEST_FUNC_EXIT(); + return 0; +} + + +static int fts_test_save_test_data(char *file_name, char *data_buf, int iLen) +{ + struct file *pfile = NULL; + + char filepath[128]; + loff_t pos; + mm_segment_t old_fs; + + FTS_TEST_FUNC_ENTER(); + + memset(filepath, 0, sizeof(filepath)); + sprintf(filepath, "%s%s", FTS_SAVE_DATA_FILE_PATH, file_name); + if (NULL == pfile) { + + pfile = filp_open(filepath, O_TRUNC|O_CREAT|O_RDWR, 0); + } + if (IS_ERR(pfile)) { + FTS_TEST_ERROR("error occured while opening file %s.", filepath); + return -EIO; + } + + old_fs = get_fs(); + set_fs(KERNEL_DS); + pos = 0; + vfs_write(pfile, data_buf, iLen, &pos); + filp_close(pfile, NULL); + set_fs(old_fs); + + FTS_TEST_FUNC_EXIT(); + return 0; +} + + +static int fts_test_get_testparam_from_ini(char *config_name) +{ + char *pcfiledata = NULL; + int ret = 0; + int inisize = 0; + + FTS_TEST_FUNC_ENTER(); + + inisize = fts_test_get_ini_size(config_name); + FTS_TEST_DBG("ini_size = %d ", inisize); + if (inisize <= 0) { + FTS_TEST_ERROR("%s ERROR:Get firmware size failed", __func__); + return -EIO; + } + + pcfiledata = Ft8006m_fts_malloc(inisize + 1); + if (NULL == pcfiledata) { + FTS_TEST_ERROR("Ft8006m_fts_malloc failed in function:%s", __func__); + return -EPERM; + } + + memset(pcfiledata, 0, inisize + 1); + + if (fts_test_read_ini_data(config_name, pcfiledata)) { + FTS_TEST_ERROR(" - ERROR: fts_test_read_ini_data failed"); + Ft8006m_fts_free(pcfiledata); + pcfiledata = NULL; + + return -EIO; + } else { + FTS_TEST_DBG("fts_test_read_ini_data successful"); + } + + ret = ft8006m_set_param_data(pcfiledata); + + Ft8006m_fts_free(pcfiledata); + pcfiledata = NULL; + + FTS_TEST_FUNC_EXIT(); + + if (ret < 0) + return ret; + + return 0; +} + +static int fts_test_entry(char *ini_file_name) +{ + /* place holder for future use */ + char cfgname[128]; + char *testdata = NULL; + char *printdata = NULL; + int iTestDataLen = 0; + int ret = 0; + int icycle = 0, i = 0; + int print_index = 0; + + + FTS_TEST_FUNC_ENTER(); + FTS_TEST_DBG("ini_file_name:%s.", ini_file_name); + /*Used to obtain the test data stored in the library, pay attention to the size of the distribution space.*/ + FTS_TEST_DBG("Allocate memory, size: %d", FTS_TEST_BUFFER_SIZE); + testdata = Ft8006m_fts_malloc(FTS_TEST_BUFFER_SIZE); + if (NULL == testdata) { + FTS_TEST_ERROR("Ft8006m_fts_malloc failed in function:%s", __func__); + return -EPERM; + } + printdata = Ft8006m_fts_malloc(FTS_TEST_PRINT_SIZE); + if (NULL == printdata) { + FTS_TEST_ERROR("Ft8006m_fts_malloc failed in function:%s", __func__); + return -EPERM; + } + /*Initialize the platform related I2C read and write functions*/ + +#if 0 + ft8006m_init_i2c_write_func(ft8006m_i2c_write); + ft8006m_init_i2c_read_func(ft8006m_i2c_read); +#else + ft8006m_init_i2c_write_func(fts_test_i2c_write); + ft8006m_init_i2c_read_func(fts_test_i2c_read); +#endif + + /*Initialize pointer memory*/ + ret = ft8006m_focaltech_test_main_init(); + if (ret < 0) { + FTS_TEST_ERROR("ft8006m_focaltech_test_main_init() error."); + goto TEST_ERR; + } + + /*Read parse configuration file*/ + memset(cfgname, 0, sizeof(cfgname)); + sprintf(cfgname, "%s", ini_file_name); + FTS_TEST_DBG("ini_file_name = %s", cfgname); + + ft8006m_test_funcs(); + + if (fts_test_get_testparam_from_ini(cfgname) < 0) { + FTS_TEST_ERROR("get testparam from ini failure"); + goto TEST_ERR; + } + + + if ((ft8006m_g_ScreenSetParam.iSelectedIC >> 4 != FTS_CHIP_TEST_TYPE >> 4)) { + FTS_TEST_ERROR("Select IC and Read IC from INI does not match "); + + } + + + /*Start testing according to the test configuration*/ + if (true == ft8006m_start_test_tp()) { + Ft8006m_TestResultLen += sprintf(Ft8006m_TestResult+Ft8006m_TestResultLen, "Tp test pass. \n\n"); + FTS_TEST_INFO("tp test pass"); + ret = 0; + } else { + Ft8006m_TestResultLen += sprintf(Ft8006m_TestResult+Ft8006m_TestResultLen, "Tp test failure. \n\n"); + FTS_TEST_INFO("tp test failure"); + ret = 1; + } + + + /*Gets the number of tests in the test library and saves it*/ + iTestDataLen = m_get_test_data(testdata); + + + icycle = 0; + /*Print test data packets */ + FTS_TEST_DBG("print test data: \n"); + for (i = 0; i < iTestDataLen; i++) { + if (('\0' == testdata[i]) + || (icycle == FTS_TEST_PRINT_SIZE - 2) + || (i == iTestDataLen-1) + ) { + if (icycle == 0) { + print_index++; + } else { + memcpy(printdata, testdata + print_index, icycle); + printdata[FTS_TEST_PRINT_SIZE-1] = '\0'; + FTS_TEST_DBG("%s", printdata); + print_index += icycle; + icycle = 0; + } + } else { + icycle++; + } + } + FTS_TEST_DBG("\n"); + + + + fts_test_save_test_data("testdata.csv", testdata, iTestDataLen); + fts_test_save_test_data("testresult.txt", Ft8006m_TestResult, Ft8006m_TestResultLen); + + + /*Release memory */ + ft8006m_focaltech_test_main_exit(); + + + + if (NULL != testdata) + Ft8006m_fts_free(testdata); + if (NULL != printdata) + Ft8006m_fts_free(printdata); + + FTS_TEST_FUNC_EXIT(); + + return ret; + +TEST_ERR: + if (NULL != testdata) + Ft8006m_fts_free(testdata); + if (NULL != printdata) + Ft8006m_fts_free(printdata); + + FTS_TEST_FUNC_EXIT(); + + return -EPERM; +} + +static int fts_set_ini_name(char *cfgname) +{ + int ret; + u8 vid; + + ret = ft8006m_i2c_read_reg(ft8006m_i2c_client, FTS_REG_VENDOR_ID, &vid); + FTS_TEST_DBG("vendor id:0x%x\n", vid); + if (vid == OFILM_VENDOR) { + sprintf(cfgname, "%s", "fts_ofilm.ini"); + } else if (vid == EACHOPTO_VENDOR) { + sprintf(cfgname, "%s", "fts_eachopto.ini"); + } else if (vid == TXD_VENDOR) { + + sprintf(cfgname, "%s", "fts_holitech.ini"); + } else if (vid == BOE_VENDOR) { + sprintf(cfgname, "%s", "fts_boe.ini"); + } else { + pr_err("ctp test not found test config \n"); + } + + return ret; +} + +#if FTS_AUTO_UPGRADE_EN +void ft8006m_waite_for_fw_upgrading(void) +{ + int vid = 0; + if (ft8006m_fw_upgrade_status == FW_UPGRADING) { + for (; ft8006m_fw_upgrade_status == FW_UPGRADING; ) { + if ((vid%4) == 0) + FTS_TEST_DBG("tp firmware upgrading status:%d\n", ft8006m_fw_upgrade_status); + msleep(200); + vid++; + if (vid > 30) { + FTS_TEST_DBG("takes 6s tp still upgrading status:%d\n", ft8006m_fw_upgrade_status); + break; + } + } + } + return; +} +#endif + +static ssize_t ctp_open_proc_read(struct file *file, char __user *buf, size_t count, loff_t *ppos) +{ + char *ptr = buf; + char fwname[128] = {0}; + int ret; + u8 result = 0; + struct i2c_client *client = ft8006m_i2c_client; + + FTS_TEST_FUNC_ENTER(); +#if FTS_AUTO_UPGRADE_EN + ft8006m_waite_for_fw_upgrading(); +#endif + + if (*ppos) { + FTS_TEST_ERROR("tp test again return\n"); + return 0; + } + *ppos += count; + + memset(fwname, 0, sizeof(fwname)); + fts_set_ini_name(fwname); + fwname[strlen(fwname)] = '\0'; + FTS_TEST_DBG("fwname:%s.", fwname); + + mutex_lock(&ft8006m_input_dev->mutex); + + disable_irq(client->irq); + +#if defined(FTS_ESDCHECK_EN) && (FTS_ESDCHECK_EN) + ft8006m_esdcheck_switch(DISABLE); +#endif + ret = fts_test_entry(fwname); + if (0 != ret) { + result = 0; + FTS_TEST_ERROR("fts open short test fail \n"); + } else { + result = 1; + FTS_TEST_ERROR("fts open short test success \n"); + } +#if defined(FTS_ESDCHECK_EN) && (FTS_ESDCHECK_EN) + ft8006m_esdcheck_switch(ENABLE); +#endif + enable_irq(client->irq); + + mutex_unlock(&ft8006m_input_dev->mutex); + + FTS_TEST_FUNC_EXIT(); + + return sprintf(ptr, "result=%d\n", result); +} + + +static ssize_t ctp_open_proc_write(struct file *filp, const char __user *userbuf, size_t count, loff_t *ppos) +{ + return -EPERM; +} + void ft8006m_create_ctp_proc(void) +{ + + struct proc_dir_entry *ctp_open_proc = NULL; + if (ctp_device_proc == NULL) { + ctp_device_proc = proc_mkdir(CTP_PARENT_PROC_NAME, NULL); + if (ctp_device_proc == NULL) { + FTS_TEST_ERROR("create parent_proc fail\n"); + return; + } + } + ctp_open_proc = proc_create(CTP_OPEN_PROC_NAME, 0777, ctp_device_proc, &ctp_open_procs_fops); + if (ctp_open_proc == NULL) { + FTS_TEST_ERROR("create open_proc fail\n"); + } +} + +int ft8006m_test_init(struct i2c_client *client) +{ + int err = 0; + + FTS_TEST_FUNC_ENTER(); + + FTS_TEST_INFO("%s\n", IC_TEST_VERSION); + + ft8006m_create_ctp_proc(); + + FTS_TEST_FUNC_EXIT(); + + return err; +} +int ft8006m_test_exit(struct i2c_client *client) +{ + FTS_TEST_FUNC_ENTER(); + + + FTS_TEST_FUNC_EXIT(); + return 0; +} + +#if FTS_LOCK_DOWN_INFO +int ft8006m_lockdown_init(struct i2c_client *client) +{ + int err = 0; + unsigned char auc_i2c_write_buf[10]; + u8 buf[18] = {0}; + struct proc_dir_entry *fts_lockdown_status_proc = NULL; + struct fts_ts_data *data; + data = i2c_get_clientdata(client); + err = ft8006m_i2c_write_reg(client, 0x90, 0x20); + if (err < 0) + FTS_ERROR("[FTS] i2c write 0x90 err\n"); + + msleep(5); + auc_i2c_write_buf[0] = 0x99; + err = ft8006m_i2c_read(client, auc_i2c_write_buf, 1, buf, 16); + if (err < 0) + FTS_ERROR("[FTS] i2c read 0x99 err\n"); + + sprintf(tp_lockdown_info, "%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c", \ + buf[0], buf[1], buf[2], buf[3], buf[4], buf[5], buf[6], buf[7], buf[8], + buf[9], buf[10], buf[11], buf[12], buf[13], buf[14], buf[15]); + FTS_INFO("tpd_probe, ft8006m_ctpm_LockDownInfo_get_from_boot, tp_lockdown_info=%s\n", tp_lockdown_info); + memset(data->lockdown_info, 0, 128); + strncpy(data->lockdown_info, tp_lockdown_info, 16); + if (ctp_device_proc == NULL) { + ctp_device_proc = proc_mkdir(CTP_PARENT_PROC_NAME, NULL); + if (ctp_device_proc == NULL) { + FTS_TEST_ERROR("create parent_proc fail\n"); + return 1; + } + } + fts_lockdown_status_proc = proc_create(FTS_PROC_LOCKDOWN_FILE, 0644, ctp_device_proc, &fts_lockdown_proc_fops); + if (fts_lockdown_status_proc == NULL) { + FTS_ERROR("fts, create_proc_entry ctp_lockdown_status_proc failed\n"); + return 1; + } + return 0 ; +} +#endif + +#if FTS_CAT_RAWDATA +int ft8006m_rawdata_init(struct i2c_client *client) +{ + + struct proc_dir_entry *fts_rawdata_status_proc = NULL; + + + if (ctp_device_proc == NULL) { + ctp_device_proc = proc_mkdir(CTP_PARENT_PROC_NAME, NULL); + if (ctp_device_proc == NULL) { + FTS_TEST_ERROR("create parent_proc fail\n"); + return 1; + } + } + fts_rawdata_status_proc = proc_create(FTS_PROC_RAWDATA, 0777, ctp_device_proc, &fts_rawdata_proc_fops); + if (fts_rawdata_status_proc == NULL) { + FTS_ERROR("fts, create_proc_entry ctp_lockdown_status_proc failed\n"); + return 1; + } + return 0 ; +} +#endif + diff --git a/drivers/input/touchscreen/FT8006m/focaltech_test/src/focaltech_test_detail_threshold.c b/drivers/input/touchscreen/FT8006m/focaltech_test/src/focaltech_test_detail_threshold.c new file mode 100755 index 0000000000000..aa39ff78c1244 --- /dev/null +++ b/drivers/input/touchscreen/FT8006m/focaltech_test/src/focaltech_test_detail_threshold.c @@ -0,0 +1,1812 @@ +/************************************************************************ +* Copyright (C) 2012-2017, Focaltech Systems (R)£¬All Rights Reserved. +* Copyright (C) 2018 XiaoMi, Inc. +* +* File Name: focaltech_test_detail_threshold.c +* +* Author: Software Development Team, AE +* +* Created: 2016-08-01 +* +* Abstract: Set Detail Threshold for all IC +* +************************************************************************/ +#include +#include +#include + +#include "../include/focaltech_test_ini.h" +#include "../include/focaltech_test_detail_threshold.h" +#include "../include/focaltech_test_main.h" +#include "../include/focaltech_ic_table.h" + + +struct stCfg_MCap_DetailThreshold ft8006m_g_stCfg_MCap_DetailThreshold; +struct stCfg_SCap_DetailThreshold ft8006m_g_stCfg_SCap_DetailThreshold; +struct stCfg_Incell_DetailThreshold ft8006m_g_stCfg_Incell_DetailThreshold; + +void ft8006m_set_max_channel_num(void) +{ + + FTS_TEST_FUNC_ENTER(); + switch (ft8006m_g_ScreenSetParam.iSelectedIC>>4) { + case IC_FT5822>>4: + case IC_FT8006M>>4: + case IC_FTE716>>4: + case IC_FT3D47>>4: + ft8006m_g_ScreenSetParam.iUsedMaxTxNum = TX_NUM_MAX; + ft8006m_g_ScreenSetParam.iUsedMaxRxNum = RX_NUM_MAX; + break; + default: + ft8006m_g_ScreenSetParam.iUsedMaxTxNum = 30; + ft8006m_g_ScreenSetParam.iUsedMaxRxNum = 30; + break; + } + + FTS_TEST_DBG("MaxTxNum = %d, MaxRxNum = %d. ", ft8006m_g_ScreenSetParam.iUsedMaxTxNum, ft8006m_g_ScreenSetParam.iUsedMaxRxNum); + + FTS_TEST_FUNC_EXIT(); + +} + +int ft8006m_malloc_struct_DetailThreshold(void) +{ + FTS_TEST_FUNC_ENTER(); + + + ft8006m_g_stCfg_MCap_DetailThreshold.InvalidNode = (unsigned char (*)[RX_NUM_MAX])Ft8006m_fts_malloc(NUM_MAX*sizeof(unsigned char)); + if (NULL == ft8006m_g_stCfg_MCap_DetailThreshold.InvalidNode) + goto ERR; + + ft8006m_g_stCfg_MCap_DetailThreshold.InvalidNode_SC = (unsigned char (*)[RX_NUM_MAX])Ft8006m_fts_malloc(NUM_MAX*sizeof(unsigned char)); + if (NULL == ft8006m_g_stCfg_MCap_DetailThreshold.InvalidNode_SC) + goto ERR; + + ft8006m_g_stCfg_MCap_DetailThreshold.RawDataTest_Min = (int (*)[RX_NUM_MAX])Ft8006m_fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == ft8006m_g_stCfg_MCap_DetailThreshold.RawDataTest_Min) + goto ERR; + + ft8006m_g_stCfg_MCap_DetailThreshold.RawDataTest_Max = (int (*)[RX_NUM_MAX])Ft8006m_fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == ft8006m_g_stCfg_MCap_DetailThreshold.RawDataTest_Max) + goto ERR; + + ft8006m_g_stCfg_MCap_DetailThreshold.RawDataTest_Low_Min = (int (*)[RX_NUM_MAX])Ft8006m_fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == ft8006m_g_stCfg_MCap_DetailThreshold.RawDataTest_Low_Min) + goto ERR; + + ft8006m_g_stCfg_MCap_DetailThreshold.RawDataTest_Low_Max = (int (*)[RX_NUM_MAX])Ft8006m_fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == ft8006m_g_stCfg_MCap_DetailThreshold.RawDataTest_Low_Max) + goto ERR; + + ft8006m_g_stCfg_MCap_DetailThreshold.RawDataTest_High_Min = (int (*)[RX_NUM_MAX])Ft8006m_fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == ft8006m_g_stCfg_MCap_DetailThreshold.RawDataTest_High_Min) + goto ERR; + + ft8006m_g_stCfg_MCap_DetailThreshold.RawDataTest_High_Max = (int (*)[RX_NUM_MAX])Ft8006m_fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == ft8006m_g_stCfg_MCap_DetailThreshold.RawDataTest_High_Max) + goto ERR; + + ft8006m_g_stCfg_MCap_DetailThreshold.RxLinearityTest_Max = (int (*)[RX_NUM_MAX])Ft8006m_fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == ft8006m_g_stCfg_MCap_DetailThreshold.RxLinearityTest_Max) + goto ERR; + + ft8006m_g_stCfg_MCap_DetailThreshold.TxLinearityTest_Max = (int (*)[RX_NUM_MAX])Ft8006m_fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == ft8006m_g_stCfg_MCap_DetailThreshold.TxLinearityTest_Max) + goto ERR; + + ft8006m_g_stCfg_MCap_DetailThreshold.SCapRawDataTest_ON_Max = (int (*)[RX_NUM_MAX])Ft8006m_fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == ft8006m_g_stCfg_MCap_DetailThreshold.SCapRawDataTest_ON_Max) + goto ERR; + + ft8006m_g_stCfg_MCap_DetailThreshold.SCapRawDataTest_ON_Min = (int (*)[RX_NUM_MAX])Ft8006m_fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == ft8006m_g_stCfg_MCap_DetailThreshold.SCapRawDataTest_ON_Min) + goto ERR; + + ft8006m_g_stCfg_MCap_DetailThreshold.SCapRawDataTest_OFF_Max = (int (*)[RX_NUM_MAX])Ft8006m_fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == ft8006m_g_stCfg_MCap_DetailThreshold.SCapRawDataTest_OFF_Max) + goto ERR; + + ft8006m_g_stCfg_MCap_DetailThreshold.SCapRawDataTest_OFF_Min = (int (*)[RX_NUM_MAX])Ft8006m_fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == ft8006m_g_stCfg_MCap_DetailThreshold.SCapRawDataTest_OFF_Min) + goto ERR; + + ft8006m_g_stCfg_MCap_DetailThreshold.SCapCbTest_ON_Max = (short (*)[RX_NUM_MAX])Ft8006m_fts_malloc(NUM_MAX*sizeof(short)); + if (NULL == ft8006m_g_stCfg_MCap_DetailThreshold.SCapCbTest_ON_Max) + goto ERR; + + ft8006m_g_stCfg_MCap_DetailThreshold.SCapCbTest_ON_Min = (short (*)[RX_NUM_MAX])Ft8006m_fts_malloc(NUM_MAX*sizeof(short)); + if (NULL == ft8006m_g_stCfg_MCap_DetailThreshold.SCapCbTest_ON_Min) + goto ERR; + + ft8006m_g_stCfg_MCap_DetailThreshold.SCapCbTest_OFF_Max = (short (*)[RX_NUM_MAX])Ft8006m_fts_malloc(NUM_MAX*sizeof(short)); + if (NULL == ft8006m_g_stCfg_MCap_DetailThreshold.SCapCbTest_OFF_Max) + goto ERR; + + ft8006m_g_stCfg_MCap_DetailThreshold.SCapCbTest_OFF_Min = (short (*)[RX_NUM_MAX])Ft8006m_fts_malloc(NUM_MAX*sizeof(short)); + if (NULL == ft8006m_g_stCfg_MCap_DetailThreshold.SCapCbTest_OFF_Min) + goto ERR; + + ft8006m_g_stCfg_MCap_DetailThreshold.NoistTest_Coefficient = (int (*)[RX_NUM_MAX])Ft8006m_fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == ft8006m_g_stCfg_MCap_DetailThreshold.NoistTest_Coefficient) + goto ERR; + + ft8006m_g_stCfg_MCap_DetailThreshold.PanelDifferTest_Max = (int (*)[RX_NUM_MAX])Ft8006m_fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == ft8006m_g_stCfg_MCap_DetailThreshold.PanelDifferTest_Max) + goto ERR; + ft8006m_g_stCfg_MCap_DetailThreshold.PanelDifferTest_Min = (int (*)[RX_NUM_MAX])Ft8006m_fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == ft8006m_g_stCfg_MCap_DetailThreshold.PanelDifferTest_Min) + goto ERR; + + + + ft8006m_g_stCfg_Incell_DetailThreshold.InvalidNode = (unsigned char (*)[RX_NUM_MAX])Ft8006m_fts_malloc(NUM_MAX*sizeof(unsigned char)); + if (NULL == ft8006m_g_stCfg_Incell_DetailThreshold.InvalidNode) { + FTS_TEST_DBG("InvalidNode. \n"); + goto ERR; + } + + + ft8006m_g_stCfg_Incell_DetailThreshold.RawDataTest_Min = (int (*)[RX_NUM_MAX])Ft8006m_fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == ft8006m_g_stCfg_Incell_DetailThreshold.RawDataTest_Min) { + FTS_TEST_DBG("RawDataTest_Min. \n"); + goto ERR; + } + ft8006m_g_stCfg_Incell_DetailThreshold.RawDataTest_Max = (int (*)[RX_NUM_MAX])Ft8006m_fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == ft8006m_g_stCfg_Incell_DetailThreshold.RawDataTest_Max) { + FTS_TEST_DBG("RawDataTest_Max. \n"); + goto ERR; + } + ft8006m_g_stCfg_Incell_DetailThreshold.CBTest_Min = (int (*)[RX_NUM_MAX])Ft8006m_fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == ft8006m_g_stCfg_Incell_DetailThreshold.CBTest_Min) { + FTS_TEST_DBG("CBTest_Min. \n"); + goto ERR; + } + ft8006m_g_stCfg_Incell_DetailThreshold.CBTest_Max = (int (*)[RX_NUM_MAX])Ft8006m_fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == ft8006m_g_stCfg_Incell_DetailThreshold.CBTest_Max) { + FTS_TEST_DBG("CBTest_Max. \n"); + goto ERR; + } + + ft8006m_g_stCfg_Incell_DetailThreshold.CBUniformityTest_CHY_Linearity = (int (*)[RX_NUM_MAX])Ft8006m_fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == ft8006m_g_stCfg_Incell_DetailThreshold.CBUniformityTest_CHY_Linearity) { + FTS_TEST_DBG("CBUniformityTest_CHY_Linearity. \n"); + goto ERR; + } + ft8006m_g_stCfg_Incell_DetailThreshold.CBUniformityTest_CHX_Linearity = (int (*)[RX_NUM_MAX])Ft8006m_fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == ft8006m_g_stCfg_Incell_DetailThreshold.CBUniformityTest_CHX_Linearity) { + FTS_TEST_DBG("CBUniformityTest_CHX_Linearity. \n"); + goto ERR; + } + + FTS_TEST_FUNC_EXIT(); + + return 0; + +ERR: + FTS_TEST_ERROR("Ft8006m_fts_malloc memory failed in function."); + return -EPERM; +} + +void ft8006m_free_struct_DetailThreshold(void) +{ + if (NULL != ft8006m_g_stCfg_MCap_DetailThreshold.InvalidNode) { + Ft8006m_fts_free(ft8006m_g_stCfg_MCap_DetailThreshold.InvalidNode); + ft8006m_g_stCfg_MCap_DetailThreshold.InvalidNode = NULL; + } + if (NULL != ft8006m_g_stCfg_MCap_DetailThreshold.InvalidNode_SC) { + Ft8006m_fts_free(ft8006m_g_stCfg_MCap_DetailThreshold.InvalidNode_SC); + ft8006m_g_stCfg_MCap_DetailThreshold.InvalidNode_SC = NULL; + } + if (NULL != ft8006m_g_stCfg_MCap_DetailThreshold.RawDataTest_Min) { + Ft8006m_fts_free(ft8006m_g_stCfg_MCap_DetailThreshold.RawDataTest_Min); + } + if (NULL != ft8006m_g_stCfg_MCap_DetailThreshold.RawDataTest_Max) { + Ft8006m_fts_free(ft8006m_g_stCfg_MCap_DetailThreshold.RawDataTest_Max); + } + if (NULL != ft8006m_g_stCfg_MCap_DetailThreshold.RawDataTest_Low_Min) { + Ft8006m_fts_free(ft8006m_g_stCfg_MCap_DetailThreshold.RawDataTest_Low_Min); + } + if (NULL != ft8006m_g_stCfg_MCap_DetailThreshold.RawDataTest_Low_Max) { + Ft8006m_fts_free(ft8006m_g_stCfg_MCap_DetailThreshold.RawDataTest_Low_Max); + } + if (NULL != ft8006m_g_stCfg_MCap_DetailThreshold.RawDataTest_High_Min) { + Ft8006m_fts_free(ft8006m_g_stCfg_MCap_DetailThreshold.RawDataTest_High_Min); + } + if (NULL != ft8006m_g_stCfg_MCap_DetailThreshold.RawDataTest_High_Max) { + Ft8006m_fts_free(ft8006m_g_stCfg_MCap_DetailThreshold.RawDataTest_High_Max); + } + if (NULL != ft8006m_g_stCfg_MCap_DetailThreshold.RxLinearityTest_Max) { + Ft8006m_fts_free(ft8006m_g_stCfg_MCap_DetailThreshold.RxLinearityTest_Max); + } + if (NULL != ft8006m_g_stCfg_MCap_DetailThreshold.TxLinearityTest_Max) { + Ft8006m_fts_free(ft8006m_g_stCfg_MCap_DetailThreshold.TxLinearityTest_Max); + } + if (NULL != ft8006m_g_stCfg_MCap_DetailThreshold.SCapRawDataTest_ON_Max) { + Ft8006m_fts_free(ft8006m_g_stCfg_MCap_DetailThreshold.SCapRawDataTest_ON_Max); + } + if (NULL != ft8006m_g_stCfg_MCap_DetailThreshold.SCapRawDataTest_ON_Min) { + Ft8006m_fts_free(ft8006m_g_stCfg_MCap_DetailThreshold.SCapRawDataTest_ON_Min); + } + if (NULL != ft8006m_g_stCfg_MCap_DetailThreshold.SCapRawDataTest_OFF_Max) { + Ft8006m_fts_free(ft8006m_g_stCfg_MCap_DetailThreshold.SCapRawDataTest_OFF_Max); + } + if (NULL != ft8006m_g_stCfg_MCap_DetailThreshold.SCapRawDataTest_OFF_Min) { + Ft8006m_fts_free(ft8006m_g_stCfg_MCap_DetailThreshold.SCapRawDataTest_OFF_Min); + } + if (NULL != ft8006m_g_stCfg_MCap_DetailThreshold.SCapCbTest_ON_Max) { + Ft8006m_fts_free(ft8006m_g_stCfg_MCap_DetailThreshold.SCapCbTest_ON_Max); + } + if (NULL != ft8006m_g_stCfg_MCap_DetailThreshold.SCapCbTest_ON_Min) { + Ft8006m_fts_free(ft8006m_g_stCfg_MCap_DetailThreshold.SCapCbTest_ON_Min); + } + if (NULL != ft8006m_g_stCfg_MCap_DetailThreshold.SCapCbTest_OFF_Max) { + Ft8006m_fts_free(ft8006m_g_stCfg_MCap_DetailThreshold.SCapCbTest_OFF_Max); + } + if (NULL != ft8006m_g_stCfg_MCap_DetailThreshold.SCapCbTest_OFF_Min) { + Ft8006m_fts_free(ft8006m_g_stCfg_MCap_DetailThreshold.SCapCbTest_OFF_Min); + } + if (NULL != ft8006m_g_stCfg_MCap_DetailThreshold.NoistTest_Coefficient) { + Ft8006m_fts_free(ft8006m_g_stCfg_MCap_DetailThreshold.NoistTest_Coefficient); + ft8006m_g_stCfg_MCap_DetailThreshold.NoistTest_Coefficient = NULL; + } + + if (NULL != ft8006m_g_stCfg_MCap_DetailThreshold.PanelDifferTest_Max) { + Ft8006m_fts_free(ft8006m_g_stCfg_MCap_DetailThreshold.PanelDifferTest_Max); + ft8006m_g_stCfg_MCap_DetailThreshold.PanelDifferTest_Max = NULL; + } + + if (NULL != ft8006m_g_stCfg_MCap_DetailThreshold.PanelDifferTest_Min) { + Ft8006m_fts_free(ft8006m_g_stCfg_MCap_DetailThreshold.PanelDifferTest_Min); + ft8006m_g_stCfg_MCap_DetailThreshold.PanelDifferTest_Min = NULL; + } + + if (NULL != ft8006m_g_stCfg_Incell_DetailThreshold.InvalidNode) { + Ft8006m_fts_free(ft8006m_g_stCfg_Incell_DetailThreshold.InvalidNode); + ft8006m_g_stCfg_Incell_DetailThreshold.InvalidNode = NULL; + } + + if (NULL != ft8006m_g_stCfg_Incell_DetailThreshold.RawDataTest_Min) { + Ft8006m_fts_free(ft8006m_g_stCfg_Incell_DetailThreshold.RawDataTest_Min); + ft8006m_g_stCfg_Incell_DetailThreshold.RawDataTest_Min = NULL; + } + + if (NULL != ft8006m_g_stCfg_Incell_DetailThreshold.RawDataTest_Max) { + Ft8006m_fts_free(ft8006m_g_stCfg_Incell_DetailThreshold.RawDataTest_Max); + ft8006m_g_stCfg_Incell_DetailThreshold.RawDataTest_Max = NULL; + } + + if (NULL != ft8006m_g_stCfg_Incell_DetailThreshold.RawDataTest_Max) { + Ft8006m_fts_free(ft8006m_g_stCfg_Incell_DetailThreshold.RawDataTest_Max); + ft8006m_g_stCfg_Incell_DetailThreshold.RawDataTest_Max = NULL; + } + + if (NULL != ft8006m_g_stCfg_Incell_DetailThreshold.CBTest_Min) { + Ft8006m_fts_free(ft8006m_g_stCfg_Incell_DetailThreshold.CBTest_Min); + ft8006m_g_stCfg_Incell_DetailThreshold.CBTest_Min = NULL; + } + + if (NULL != ft8006m_g_stCfg_Incell_DetailThreshold.CBTest_Max) { + Ft8006m_fts_free(ft8006m_g_stCfg_Incell_DetailThreshold.CBTest_Max); + ft8006m_g_stCfg_Incell_DetailThreshold.CBTest_Max = NULL; + } + + if (NULL != ft8006m_g_stCfg_Incell_DetailThreshold.CBUniformityTest_CHX_Linearity) { + Ft8006m_fts_free(ft8006m_g_stCfg_Incell_DetailThreshold.CBUniformityTest_CHX_Linearity); + ft8006m_g_stCfg_Incell_DetailThreshold.CBUniformityTest_CHX_Linearity = NULL; + } + + if (NULL != ft8006m_g_stCfg_Incell_DetailThreshold.CBUniformityTest_CHY_Linearity) { + Ft8006m_fts_free(ft8006m_g_stCfg_Incell_DetailThreshold.CBUniformityTest_CHY_Linearity); + ft8006m_g_stCfg_Incell_DetailThreshold.CBUniformityTest_CHY_Linearity = NULL; + } + + + +} + +void Ft8006m_OnInit_SCap_DetailThreshold(char *strIniFile) +{ + + FTS_TEST_FUNC_ENTER(); + + Ft8006m_OnGetTestItemParam("RawDataTest_Max", strIniFile, 12500); + memcpy(ft8006m_g_stCfg_SCap_DetailThreshold.RawDataTest_Max, ft8006m_g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + Ft8006m_OnGetTestItemParam("RawDataTest_Min", strIniFile, 16500); + memcpy(ft8006m_g_stCfg_SCap_DetailThreshold.RawDataTest_Min, ft8006m_g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + Ft8006m_OnGetTestItemParam("CiTest_Max", strIniFile, 5); + memcpy(ft8006m_g_stCfg_SCap_DetailThreshold.CiTest_Max, ft8006m_g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + Ft8006m_OnGetTestItemParam("CiTest_Min", strIniFile, 250); + memcpy(ft8006m_g_stCfg_SCap_DetailThreshold.CiTest_Min, ft8006m_g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + Ft8006m_OnGetTestItemParam("DeltaCiTest_Base", strIniFile, 0); + memcpy(ft8006m_g_stCfg_SCap_DetailThreshold.DeltaCiTest_Base, ft8006m_g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + Ft8006m_OnGetTestItemParam("DeltaCiTest_AnotherBase1", strIniFile, 0); + memcpy(ft8006m_g_stCfg_SCap_DetailThreshold.DeltaCiTest_AnotherBase1, ft8006m_g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + Ft8006m_OnGetTestItemParam("DeltaCiTest_AnotherBase2", strIniFile, 0); + memcpy(ft8006m_g_stCfg_SCap_DetailThreshold.DeltaCiTest_AnotherBase2, ft8006m_g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + Ft8006m_OnGetTestItemParam("NoiseTest_Max", strIniFile, 20); + memcpy(ft8006m_g_stCfg_SCap_DetailThreshold.NoiseTest_Max, ft8006m_g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + Ft8006m_OnGetTestItemParam("CiDeviation_Base", strIniFile, 0); + memcpy(ft8006m_g_stCfg_SCap_DetailThreshold.CiDeviationTest_Base, ft8006m_g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + Ft8006m_OnGetTestItemParam("DeltaCxTest_Sort", strIniFile, 1); + memcpy(ft8006m_g_stCfg_SCap_DetailThreshold.DeltaCxTest_Sort, ft8006m_g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + Ft8006m_OnGetTestItemParam("DeltaCxTest_Area", strIniFile, 1); + memcpy(ft8006m_g_stCfg_SCap_DetailThreshold.DeltaCxTest_Area, ft8006m_g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + + + Ft8006m_OnGetTestItemParam("CbTest_Max", strIniFile, 0); + memcpy(ft8006m_g_stCfg_SCap_DetailThreshold.CbTest_Max, ft8006m_g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + + Ft8006m_OnGetTestItemParam("CbTest_Min", strIniFile, 0); + memcpy(ft8006m_g_stCfg_SCap_DetailThreshold.CbTest_Min, ft8006m_g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + + Ft8006m_OnGetTestItemParam("DeltaCbTest_Base", strIniFile, 0); + memcpy(ft8006m_g_stCfg_SCap_DetailThreshold.DeltaCbTest_Base, ft8006m_g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + + Ft8006m_OnGetTestItemParam("DifferTest_Base", strIniFile, 0); + memcpy(ft8006m_g_stCfg_SCap_DetailThreshold.DifferTest_Base, ft8006m_g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + + Ft8006m_OnGetTestItemParam("CBDeviation_Base", strIniFile, 0); + memcpy(ft8006m_g_stCfg_SCap_DetailThreshold.CBDeviationTest_Base, ft8006m_g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + + Ft8006m_OnGetTestItemParam("K1DifferTest_Base", strIniFile, 0); + memcpy(ft8006m_g_stCfg_SCap_DetailThreshold.K1DifferTest_Base, ft8006m_g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + FTS_TEST_FUNC_EXIT(); +} + +void Ft8006m_OnGetTestItemParam(char *strItemName, char *strIniFile, int iDefautValue) +{ + + char strValue[800]; + char str_tmp[128]; + int iValue = 0; + int dividerPos = 0; + int index = 0; + int i = 0, j = 0, k = 0; + memset(ft8006m_g_stCfg_SCap_DetailThreshold.TempData, 0, sizeof(ft8006m_g_stCfg_SCap_DetailThreshold.TempData)); + sprintf(str_tmp, "%d", iDefautValue); + Ft8006m_GetPrivateProfileString("Basic_Threshold", strItemName, str_tmp, strValue, strIniFile); + iValue = ft8006m_atoi(strValue); + for (i = 0; i < MAX_CHANNEL_NUM; i++) { + ft8006m_g_stCfg_SCap_DetailThreshold.TempData[i] = iValue; + } + + dividerPos = Ft8006m_GetPrivateProfileString("SpecialSet", strItemName, "", strValue, strIniFile); + if (dividerPos > 0) { + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + ft8006m_g_stCfg_SCap_DetailThreshold.TempData[k] = (short)(ft8006m_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } +} + +void Ft8006m_OnInit_MCap_DetailThreshold(char *strIniFile) +{ + + FTS_TEST_FUNC_ENTER(); + + ft8006m_set_max_channel_num(); + + Ft8006m_OnInit_InvalidNode(strIniFile); + Ft8006m_OnInit_DThreshold_RawDataTest(strIniFile); + Ft8006m_OnInit_DThreshold_SCapRawDataTest(strIniFile); + Ft8006m_OnInit_DThreshold_SCapCbTest(strIniFile); + + Ft8006m_OnInit_DThreshold_ForceTouch_SCapRawDataTest(strIniFile); + Ft8006m_OnInit_DThreshold_ForceTouch_SCapCbTest(strIniFile); + + Ft8006m_OnInit_DThreshold_RxLinearityTest(strIniFile); + Ft8006m_OnInit_DThreshold_TxLinearityTest(strIniFile); + + Ft8006m_OnInit_DThreshold_PanelDifferTest(strIniFile); + + FTS_TEST_FUNC_EXIT(); +} +void Ft8006m_OnInit_InvalidNode(char *strIniFile) +{ + + char str[MAX_PATH] = {0}, strTemp[MAX_PATH] = {0}; + int i = 0, j = 0; + + + + FTS_TEST_FUNC_ENTER(); + + for (i = 0; i < TX_NUM_MAX; i++) { + for (j = 0; j < RX_NUM_MAX; j++) { + sprintf(strTemp, "InvalidNode[%d][%d]", (i+1), (j+1)); + + Ft8006m_GetPrivateProfileString("INVALID_NODE", strTemp, "1", str, strIniFile); + if (ft8006m_atoi(str) == 0) { + ft8006m_g_stCfg_MCap_DetailThreshold.InvalidNode[i][j] = 0; + ft8006m_g_stCfg_Incell_DetailThreshold.InvalidNode[i][j] = 0; + FTS_TEST_DBG("node (%d, %d) \n", (i+1), (j+1)); + + } else if (ft8006m_atoi(str) == 2) { + ft8006m_g_stCfg_MCap_DetailThreshold.InvalidNode[i][j] = 2; + ft8006m_g_stCfg_Incell_DetailThreshold.InvalidNode[i][j] = 2; + } else { + ft8006m_g_stCfg_MCap_DetailThreshold.InvalidNode[i][j] = 1; + ft8006m_g_stCfg_Incell_DetailThreshold.InvalidNode[i][j] = 1; + } + + + + + } + } + + for (i = 0; i < 2; i++) { + for (j = 0; j < ft8006m_g_ScreenSetParam.iUsedMaxRxNum; j++) { + sprintf(strTemp, "InvalidNodeS[%d][%d]", (i+1), (j+1)); + Ft8006m_GetPrivateProfileString("INVALID_NODES", strTemp, "1", str, strIniFile); + if (ft8006m_atoi(str) == 0) { + ft8006m_g_stCfg_MCap_DetailThreshold.InvalidNode_SC[i][j] = 0; + } else if (ft8006m_atoi(str) == 2) { + ft8006m_g_stCfg_MCap_DetailThreshold.InvalidNode_SC[i][j] = 2; + } else + ft8006m_g_stCfg_MCap_DetailThreshold.InvalidNode_SC[i][j] = 1; + } + + } + + FTS_TEST_FUNC_EXIT(); +} + +void Ft8006m_OnInit_DThreshold_RawDataTest(char *strIniFile) +{ + char str[128], strTemp[MAX_PATH], strValue[MAX_PATH]; + int MaxValue, MinValue; + int dividerPos = 0; + char str_tmp[128]; + int index = 0; + int k = 0, i = 0, j = 0; + + FTS_TEST_FUNC_ENTER(); + + if ((ft8006m_g_ScreenSetParam.iSelectedIC >> 4 == IC_FT8716 >> 4) || (ft8006m_g_ScreenSetParam.iSelectedIC >> 4 == IC_FT8736 >> 4) || (ft8006m_g_ScreenSetParam.iSelectedIC >> 4 == IC_FTE716 >> 4)) { + return; + } + + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "RawDataTest_Max", "10000", str, strIniFile); + MaxValue = ft8006m_atoi(str); + + + + for (i = 0; i < ft8006m_g_ScreenSetParam.iUsedMaxTxNum; i++) { + for (j = 0; j < ft8006m_g_ScreenSetParam.iUsedMaxRxNum; j++) { + ft8006m_g_stCfg_MCap_DetailThreshold.RawDataTest_Max[i][j] = MaxValue; + ft8006m_g_stCfg_Incell_DetailThreshold.RawDataTest_Max[i][j] = MaxValue; + + } + } + + for (i = 0; i < ft8006m_g_ScreenSetParam.iUsedMaxTxNum; i++) { + sprintf(str, "RawData_Max_Tx%d", (i + 1)); + + dividerPos = Ft8006m_GetPrivateProfileString("SpecialSet", str, "111", strTemp, strIniFile); + + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + ft8006m_g_stCfg_MCap_DetailThreshold.RawDataTest_Max[i][k] = (short)(ft8006m_atoi(str_tmp)); + ft8006m_g_stCfg_Incell_DetailThreshold.RawDataTest_Max[i][k] = (short)(ft8006m_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + + } + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "RawDataTest_Min", "7000", str, strIniFile); + MinValue = ft8006m_atoi(str); + + for (i = 0; i < ft8006m_g_ScreenSetParam.iUsedMaxTxNum; i++) { + for (j = 0; j < ft8006m_g_ScreenSetParam.iUsedMaxRxNum; j++) { + ft8006m_g_stCfg_MCap_DetailThreshold.RawDataTest_Min[i][j] = MinValue; + ft8006m_g_stCfg_Incell_DetailThreshold.RawDataTest_Min[i][j] = MinValue; + } + } + for (i = 0; i < ft8006m_g_ScreenSetParam.iUsedMaxTxNum; i++) { + sprintf(str, "RawData_Min_Tx%d", (i + 1)); + dividerPos = Ft8006m_GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + ft8006m_g_stCfg_MCap_DetailThreshold.RawDataTest_Min[i][k] = (short)(ft8006m_atoi(str_tmp)); + ft8006m_g_stCfg_Incell_DetailThreshold.RawDataTest_Min[i][k] = (short)(ft8006m_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "RawDataTest_Low_Max", "15000", str, strIniFile); + MaxValue = ft8006m_atoi(str); + + for (i = 0; i < ft8006m_g_ScreenSetParam.iUsedMaxTxNum; i++) { + for (j = 0; j < ft8006m_g_ScreenSetParam.iUsedMaxRxNum; j++) { + ft8006m_g_stCfg_MCap_DetailThreshold.RawDataTest_Low_Max[i][j] = MaxValue; + } + } + for (i = 0; i < ft8006m_g_ScreenSetParam.iUsedMaxTxNum; i++) { + sprintf(str, "RawData_Max_Low_Tx%d", (i + 1)); + dividerPos = Ft8006m_GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + ft8006m_g_stCfg_MCap_DetailThreshold.RawDataTest_Low_Max[i][k] = (short)(ft8006m_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "RawDataTest_Low_Min", "3000", str, strIniFile); + MinValue = ft8006m_atoi(str); + + for (i = 0; i < ft8006m_g_ScreenSetParam.iUsedMaxTxNum; i++) { + for (j = 0; j < ft8006m_g_ScreenSetParam.iUsedMaxRxNum; j++) { + ft8006m_g_stCfg_MCap_DetailThreshold.RawDataTest_Low_Min[i][j] = MinValue; + } + } + for (i = 0; i < ft8006m_g_ScreenSetParam.iUsedMaxTxNum; i++) { + sprintf(str, "RawData_Min_Low_Tx%d", (i + 1)); + dividerPos = Ft8006m_GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + ft8006m_g_stCfg_MCap_DetailThreshold.RawDataTest_Low_Min[i][k] = (short)(ft8006m_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "RawDataTest_High_Max", "15000", str, strIniFile); + MaxValue = ft8006m_atoi(str); + + for (i = 0; i < ft8006m_g_ScreenSetParam.iUsedMaxTxNum; i++) { + for (j = 0; j < ft8006m_g_ScreenSetParam.iUsedMaxRxNum; j++) { + ft8006m_g_stCfg_MCap_DetailThreshold.RawDataTest_High_Max[i][j] = MaxValue; + } + } + Ft8006m_GetPrivateProfileString("Basic_Threshold", "RawDataTest_High_Min", "3000", str, strIniFile); + MinValue = ft8006m_atoi(str); + + for (i = 0; i < ft8006m_g_ScreenSetParam.iUsedMaxTxNum; i++) { + for (j = 0; j < ft8006m_g_ScreenSetParam.iUsedMaxRxNum; j++) { + ft8006m_g_stCfg_MCap_DetailThreshold.RawDataTest_High_Min[i][j] = MinValue; + } + } + for (i = 0; i < ft8006m_g_ScreenSetParam.iUsedMaxTxNum; i++) { + sprintf(str, "RawData_Max_High_Tx%d", (i + 1)); + dividerPos = Ft8006m_GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + ft8006m_g_stCfg_MCap_DetailThreshold.RawDataTest_High_Max[i][k] = (short)(ft8006m_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + + for (i = 0; i < ft8006m_g_ScreenSetParam.iUsedMaxTxNum; i++) { + sprintf(str, "RawData_Min_High_Tx%d", (i + 1)); + dividerPos = Ft8006m_GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + ft8006m_g_stCfg_MCap_DetailThreshold.RawDataTest_High_Min[i][k] = (short)(ft8006m_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + FTS_TEST_FUNC_EXIT(); +} + +void Ft8006m_OnInit_DThreshold_SCapRawDataTest(char *strIniFile) +{ + char str[128], strTemp[MAX_PATH], strValue[MAX_PATH]; + int MaxValue, MinValue; + int dividerPos = 0; + char str_tmp[128]; + int index = 0; + int k = 0, i = 0, j = 0; + + FTS_TEST_FUNC_ENTER(); + + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "SCapRawDataTest_OFF_Min", "150", str, strIniFile); + MinValue = ft8006m_atoi(str); + Ft8006m_GetPrivateProfileString("Basic_Threshold", "SCapRawDataTest_OFF_Max", "1000", str, strIniFile); + MaxValue = ft8006m_atoi(str); + + + for (i = 0; i < 2; i++) { + for (j = 0; j < ft8006m_g_ScreenSetParam.iUsedMaxRxNum; j++) { + ft8006m_g_stCfg_MCap_DetailThreshold.SCapRawDataTest_OFF_Max[i][j] = MaxValue; + } + } + for (i = 0; i < 2; i++) { + sprintf(str, "ScapRawData_OFF_Max_%d", (i + 1)); + dividerPos = Ft8006m_GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + ft8006m_g_stCfg_MCap_DetailThreshold.SCapRawDataTest_OFF_Max[i][k] = (short)(ft8006m_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + for (i = 0; i < 2; i++) { + for (j = 0; j < ft8006m_g_ScreenSetParam.iUsedMaxRxNum; j++) { + ft8006m_g_stCfg_MCap_DetailThreshold.SCapRawDataTest_OFF_Min[i][j] = MinValue; + } + } + for (i = 0; i < 2; i++) { + sprintf(str, "ScapRawData_OFF_Min_%d", (i + 1)); + dividerPos = Ft8006m_GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + ft8006m_g_stCfg_MCap_DetailThreshold.SCapRawDataTest_OFF_Min[i][k] = (short)(ft8006m_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "SCapRawDataTest_ON_Min", "150", str, strIniFile); + MinValue = ft8006m_atoi(str); + Ft8006m_GetPrivateProfileString("Basic_Threshold", "SCapRawDataTest_ON_Max", "1000", str, strIniFile); + MaxValue = ft8006m_atoi(str); + + + for (i = 0; i < 2; i++) { + for (j = 0; j < ft8006m_g_ScreenSetParam.iUsedMaxRxNum; j++) { + ft8006m_g_stCfg_MCap_DetailThreshold.SCapRawDataTest_ON_Max[i][j] = MaxValue; + } + } + for (i = 0; i < 2; i++) { + sprintf(str, "ScapRawData_ON_Max_%d", (i + 1)); + dividerPos = Ft8006m_GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + ft8006m_g_stCfg_MCap_DetailThreshold.SCapRawDataTest_ON_Max[i][k] = (short)(ft8006m_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + for (i = 0; i < 2; i++) { + for (j = 0; j < ft8006m_g_ScreenSetParam.iUsedMaxRxNum; j++) { + ft8006m_g_stCfg_MCap_DetailThreshold.SCapRawDataTest_ON_Min[i][j] = MinValue; + } + } + for (i = 0; i < 2; i++) { + sprintf(str, "ScapRawData_ON_Min_%d", (i + 1)); + dividerPos = Ft8006m_GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + ft8006m_g_stCfg_MCap_DetailThreshold.SCapRawDataTest_ON_Min[i][k] = (short)(ft8006m_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + FTS_TEST_FUNC_EXIT(); +} + +void Ft8006m_OnInit_DThreshold_SCapCbTest(char *strIniFile) +{ + char str[128], strTemp[MAX_PATH], strValue[MAX_PATH]; + int MaxValue, MinValue; + int dividerPos = 0; + char str_tmp[128]; + int index = 0; + int k = 0, i = 0, j = 0; + + FTS_TEST_FUNC_ENTER(); + + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "SCapCbTest_ON_Min", "0", str, strIniFile); + MinValue = ft8006m_atoi(str); + Ft8006m_GetPrivateProfileString("Basic_Threshold", "SCapCbTest_ON_Max", "240", str, strIniFile); + MaxValue = ft8006m_atoi(str); + + + for (i = 0; i < 2; i++) { + for (j = 0; j < ft8006m_g_ScreenSetParam.iUsedMaxRxNum; j++) { + ft8006m_g_stCfg_MCap_DetailThreshold.SCapCbTest_ON_Max[i][j] = MaxValue; + } + } + for (i = 0; i < 2; i++) { + sprintf(str, "ScapCB_ON_Max_%d", (i + 1)); + dividerPos = Ft8006m_GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + ft8006m_g_stCfg_MCap_DetailThreshold.SCapCbTest_ON_Max[i][k] = (short)(ft8006m_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + for (i = 0; i < 2; i++) { + for (j = 0; j < ft8006m_g_ScreenSetParam.iUsedMaxRxNum; j++) { + ft8006m_g_stCfg_MCap_DetailThreshold.SCapCbTest_ON_Min[i][j] = MinValue; + } + } + for (i = 0; i < 2; i++) { + sprintf(str, "ScapCB_ON_Min_%d", (i + 1)); + dividerPos = Ft8006m_GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + ft8006m_g_stCfg_MCap_DetailThreshold.SCapCbTest_ON_Min[i][k] = (short)(ft8006m_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "SCapCbTest_OFF_Min", "0", str, strIniFile); + MinValue = ft8006m_atoi(str); + Ft8006m_GetPrivateProfileString("Basic_Threshold", "SCapCbTest_OFF_Max", "240", str, strIniFile); + MaxValue = ft8006m_atoi(str); + + for (i = 0; i < 2; i++) { + for (j = 0; j < ft8006m_g_ScreenSetParam.iUsedMaxRxNum; j++) { + ft8006m_g_stCfg_MCap_DetailThreshold.SCapCbTest_OFF_Max[i][j] = MaxValue; + } + } + for (i = 0; i < 2; i++) { + sprintf(str, "ScapCB_OFF_Max_%d", (i + 1)); + dividerPos = Ft8006m_GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + ft8006m_g_stCfg_MCap_DetailThreshold.SCapCbTest_OFF_Max[i][k] = (short)(ft8006m_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + for (i = 0; i < 2; i++) { + for (j = 0; j < ft8006m_g_ScreenSetParam.iUsedMaxRxNum; j++) { + ft8006m_g_stCfg_MCap_DetailThreshold.SCapCbTest_OFF_Min[i][j] = MinValue; + } + } + for (i = 0; i < 2; i++) { + sprintf(str, "ScapCB_OFF_Min_%d", (i + 1)); + dividerPos = Ft8006m_GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + ft8006m_g_stCfg_MCap_DetailThreshold.SCapCbTest_OFF_Min[i][k] = (short)(ft8006m_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + FTS_TEST_FUNC_EXIT(); +} + +void Ft8006m_OnInit_DThreshold_PanelDifferTest(char *strIniFile) +{ + + char str[128], strTemp[MAX_PATH], strValue[MAX_PATH]; + int MaxValue, MinValue; + int dividerPos = 0; + int index = 0; + int k = 0, i = 0, j = 0; + char str_tmp[128]; + + FTS_TEST_FUNC_ENTER(); + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "PanelDifferTest_Max", "1000", str, strIniFile); + MaxValue = ft8006m_atoi(str); + for (i = 0; i < TX_NUM_MAX; i++) { + for (j = 0; j < RX_NUM_MAX; j++) { + ft8006m_g_stCfg_MCap_DetailThreshold.PanelDifferTest_Max[i][j] = MaxValue; + } + } + + for (i = 0; i < TX_NUM_MAX; i++) { + sprintf(str, "Panel_Differ_Max_Tx%d", (i + 1)); + dividerPos = Ft8006m_GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + ft8006m_g_stCfg_MCap_DetailThreshold.PanelDifferTest_Max[i][k] = (short)(ft8006m_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "PanelDifferTest_Min", "150", str, strIniFile); + MinValue = ft8006m_atoi(str); + for (i = 0; i < TX_NUM_MAX; i++) { + for (j = 0; j < RX_NUM_MAX; j++) { + ft8006m_g_stCfg_MCap_DetailThreshold.PanelDifferTest_Min[i][j] = MinValue; + } + } + + for (i = 0; i < TX_NUM_MAX; i++) { + sprintf(str, "Panel_Differ_Min_Tx%d", (i + 1)); + dividerPos = Ft8006m_GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + ft8006m_g_stCfg_MCap_DetailThreshold.PanelDifferTest_Min[i][k] = (short)(ft8006m_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + FTS_TEST_FUNC_EXIT(); + +} + + + +void Ft8006m_OnInit_DThreshold_RxLinearityTest(char *strIniFile) +{ + char str[128], strTemp[MAX_PATH], strValue[MAX_PATH]; + int MaxValue = 0; + int dividerPos = 0; + char str_tmp[128]; + int index = 0; + int k = 0, i = 0, j = 0; + + FTS_TEST_FUNC_ENTER(); + + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "RxLinearityTest_Max", "50", str, strIniFile); + MaxValue = ft8006m_atoi(str); + + + + for (i = 0; i < ft8006m_g_ScreenSetParam.iUsedMaxTxNum; i++) { + for (j = 0; j < ft8006m_g_ScreenSetParam.iUsedMaxRxNum; j++) { + ft8006m_g_stCfg_MCap_DetailThreshold.RxLinearityTest_Max[i][j] = MaxValue; + } + } + + for (i = 0; i < ft8006m_g_ScreenSetParam.iUsedMaxTxNum; i++) { + sprintf(str, "Rx_Linearity_Max_Tx%d", (i + 1)); + + dividerPos = Ft8006m_GetPrivateProfileString("SpecialSet", str, "111", strTemp, strIniFile); + + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + ft8006m_g_stCfg_MCap_DetailThreshold.RxLinearityTest_Max[i][k] = (short)(ft8006m_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + + } + + FTS_TEST_FUNC_EXIT(); +} + +void Ft8006m_OnInit_DThreshold_TxLinearityTest(char *strIniFile) +{ + char str[128], strTemp[MAX_PATH], strValue[MAX_PATH]; + int MaxValue = 0; + int dividerPos = 0; + char str_tmp[128]; + int index = 0; + int k = 0, i = 0, j = 0; + + FTS_TEST_FUNC_ENTER(); + + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "TxLinearityTest_Max", "50", str, strIniFile); + MaxValue = ft8006m_atoi(str); + + + + for (i = 0; i < ft8006m_g_ScreenSetParam.iUsedMaxTxNum; i++) { + for (j = 0; j < ft8006m_g_ScreenSetParam.iUsedMaxRxNum; j++) { + ft8006m_g_stCfg_MCap_DetailThreshold.TxLinearityTest_Max[i][j] = MaxValue; + } + } + + for (i = 0; i < ft8006m_g_ScreenSetParam.iUsedMaxTxNum; i++) { + sprintf(str, "Tx_Linearity_Max_Tx%d", (i + 1)); + + dividerPos = Ft8006m_GetPrivateProfileString("SpecialSet", str, "111", strTemp, strIniFile); + + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + ft8006m_g_stCfg_MCap_DetailThreshold.TxLinearityTest_Max[i][k] = (short)(ft8006m_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + + } + + FTS_TEST_FUNC_EXIT(); +} + +void Ft8006m_OnInit_DThreshold_ForceTouch_SCapRawDataTest(char *strIniFile) +{ + char str[128], strTemp[MAX_PATH], strValue[MAX_PATH]; + int MaxValue, MinValue; + int dividerPos = 0; + char str_tmp[128]; + int index = 0; + int k = 0, i = 0, j = 0; + + FTS_TEST_FUNC_ENTER(); + + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "ForceTouch_SCapRawDataTest_OFF_Min", "150", str, strIniFile); + MinValue = ft8006m_atoi(str); + Ft8006m_GetPrivateProfileString("Basic_Threshold", "ForceTouch_SCapRawDataTest_OFF_Max", "1000", str, strIniFile); + MaxValue = ft8006m_atoi(str); + + + for (i = 0; i < 1; i++) { + for (j = 0; j < ft8006m_g_ScreenSetParam.iUsedMaxRxNum; j++) { + ft8006m_g_stCfg_MCap_DetailThreshold.ForceTouch_SCapRawDataTest_OFF_Max[i][j] = MaxValue; + } + } + for (i = 0; i < 1; i++) { + sprintf(str, "ForceTouch_ScapRawData_OFF_Max_%d", (i + 1)); + dividerPos = Ft8006m_GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + ft8006m_g_stCfg_MCap_DetailThreshold.ForceTouch_SCapRawDataTest_OFF_Max[i][k] = (short)(ft8006m_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + for (i = 0; i < 1; i++) { + for (j = 0; j < ft8006m_g_ScreenSetParam.iUsedMaxRxNum; j++) { + ft8006m_g_stCfg_MCap_DetailThreshold.ForceTouch_SCapRawDataTest_OFF_Min[i][j] = MinValue; + } + } + for (i = 0; i < 1; i++) { + sprintf(str, "ForceTouch_ScapRawData_OFF_Min_%d", (i + 1)); + dividerPos = Ft8006m_GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + ft8006m_g_stCfg_MCap_DetailThreshold.ForceTouch_SCapRawDataTest_OFF_Min[i][k] = (short)(ft8006m_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "ForceTouch_SCapRawDataTest_ON_Min", "150", str, strIniFile); + MinValue = ft8006m_atoi(str); + Ft8006m_GetPrivateProfileString("Basic_Threshold", "ForceTouch_SCapRawDataTest_ON_Max", "1000", str, strIniFile); + MaxValue = ft8006m_atoi(str); + + + for (i = 0; i < 1; i++) { + for (j = 0; j < ft8006m_g_ScreenSetParam.iUsedMaxRxNum; j++) { + ft8006m_g_stCfg_MCap_DetailThreshold.ForceTouch_SCapRawDataTest_ON_Max[i][j] = MaxValue; + } + } + for (i = 0; i < 1; i++) { + sprintf(str, "ForceTouch_ScapRawData_ON_Max_%d", (i + 1)); + dividerPos = Ft8006m_GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + ft8006m_g_stCfg_MCap_DetailThreshold.ForceTouch_SCapRawDataTest_ON_Max[i][k] = (short)(ft8006m_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + for (i = 0; i < 1; i++) { + for (j = 0; j < ft8006m_g_ScreenSetParam.iUsedMaxRxNum; j++) { + ft8006m_g_stCfg_MCap_DetailThreshold.ForceTouch_SCapRawDataTest_ON_Min[i][j] = MinValue; + } + } + for (i = 0; i < 1; i++) { + sprintf(str, "ForceTouch_ScapRawData_ON_Min_%d", (i + 1)); + dividerPos = Ft8006m_GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + ft8006m_g_stCfg_MCap_DetailThreshold.ForceTouch_SCapRawDataTest_ON_Min[i][k] = (short)(ft8006m_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + FTS_TEST_FUNC_EXIT(); +} + +void Ft8006m_OnInit_DThreshold_ForceTouch_SCapCbTest(char *strIniFile) +{ + char str[128], strTemp[MAX_PATH], strValue[MAX_PATH]; + int MaxValue, MinValue; + int dividerPos = 0; + char str_tmp[128]; + int index = 0; + int k = 0, i = 0, j = 0; + + FTS_TEST_FUNC_ENTER(); + + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "ForceTouch_SCapCbTest_ON_Min", "0", str, strIniFile); + MinValue = ft8006m_atoi(str); + Ft8006m_GetPrivateProfileString("Basic_Threshold", "ForceTouch_SCapCbTest_ON_Max", "240", str, strIniFile); + MaxValue = ft8006m_atoi(str); + + + for (i = 0; i < 1; i++) { + for (j = 0; j < ft8006m_g_ScreenSetParam.iUsedMaxRxNum; j++) { + ft8006m_g_stCfg_MCap_DetailThreshold.ForceTouch_SCapCbTest_ON_Max[i][j] = MaxValue; + } + } + for (i = 0; i < 1; i++) { + sprintf(str, "ForceTouch_ScapCB_ON_Max_%d", (i + 1)); + dividerPos = Ft8006m_GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + ft8006m_g_stCfg_MCap_DetailThreshold.ForceTouch_SCapCbTest_ON_Max[i][k] = (short)(ft8006m_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + for (i = 0; i < 1; i++) { + for (j = 0; j < ft8006m_g_ScreenSetParam.iUsedMaxRxNum; j++) { + ft8006m_g_stCfg_MCap_DetailThreshold.ForceTouch_SCapCbTest_ON_Min[i][j] = MinValue; + } + } + for (i = 0; i < 1; i++) { + sprintf(str, "ForceTouch_ScapCB_ON_Min_%d", (i + 1)); + dividerPos = Ft8006m_GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + FTS_TEST_DBG("%s\r", strTemp); + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + ft8006m_g_stCfg_MCap_DetailThreshold.ForceTouch_SCapCbTest_ON_Min[i][k] = (short)(ft8006m_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "ForceTouch_SCapCbTest_OFF_Min", "0", str, strIniFile); + MinValue = ft8006m_atoi(str); + Ft8006m_GetPrivateProfileString("Basic_Threshold", "ForceTouch_SCapCbTest_OFF_Max", "240", str, strIniFile); + MaxValue = ft8006m_atoi(str); + + for (i = 0; i < 1; i++) { + for (j = 0; j < ft8006m_g_ScreenSetParam.iUsedMaxRxNum; j++) { + ft8006m_g_stCfg_MCap_DetailThreshold.ForceTouch_SCapCbTest_OFF_Max[i][j] = MaxValue; + } + } + for (i = 0; i < 1; i++) { + sprintf(str, "ForceTouch_ScapCB_OFF_Max_%d", (i + 1)); + dividerPos = Ft8006m_GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + ft8006m_g_stCfg_MCap_DetailThreshold.ForceTouch_SCapCbTest_OFF_Max[i][k] = (short)(ft8006m_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + for (i = 0; i < 1; i++) { + for (j = 0; j < ft8006m_g_ScreenSetParam.iUsedMaxRxNum; j++) { + ft8006m_g_stCfg_MCap_DetailThreshold.ForceTouch_SCapCbTest_OFF_Min[i][j] = MinValue; + } + } + for (i = 0; i < 1; i++) { + sprintf(str, "ForceTouch_ScapCB_OFF_Min_%d", (i + 1)); + dividerPos = Ft8006m_GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + ft8006m_g_stCfg_MCap_DetailThreshold.ForceTouch_SCapCbTest_OFF_Min[i][k] = (short)(ft8006m_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + FTS_TEST_FUNC_EXIT(); +} + +void Ft8006m_OnInit_Incell_DetailThreshold(char *strIniFile) +{ + + FTS_TEST_FUNC_ENTER(); + + ft8006m_set_max_channel_num(); + + Ft8006m_OnInit_InvalidNode(strIniFile); + + Ft8006m_OnInit_DThreshold_RawDataTest(strIniFile); + Ft8006m_OnInit_DThreshold_CBTest(strIniFile); + Ft8006m_OnInit_DThreshold_AllButtonCBTest(strIniFile); + Ft8006m_OnThreshold_VkAndVaRawDataSeparateTest(strIniFile); + + FTS_TEST_FUNC_EXIT(); +} + +void Ft8006m_OnInit_DThreshold_CBTest(char *strIniFile) +{ + char str[128], strTemp[MAX_PATH], strValue[MAX_PATH]; + int MaxValue, MinValue, MaxValue_Vkey, MinValue_Vkey; + int ChannelNumTest_ChannelXNum, ChannelNumTest_ChannelYNum; + int dividerPos = 0; + char str_tmp[128]; + int index = 0; + int k = 0, i = 0, j = 0; + + FTS_TEST_FUNC_ENTER(); + if (ft8006m_g_ScreenSetParam.iSelectedIC >> 4 == IC_FT8606 >> 4) { + return; + } + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "CBTest_Max", "100", str, strIniFile); + MaxValue = ft8006m_atoi(str); + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "CBTest_Max_Vkey", "100", str, strIniFile); + MaxValue_Vkey = ft8006m_atoi(str); + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "ChannelNumTest_ChannelX", "15", str, strIniFile); + ChannelNumTest_ChannelXNum = ft8006m_atoi(str); + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "ChannelNumTest_ChannelY", "24", str, strIniFile); + ChannelNumTest_ChannelYNum = ft8006m_atoi(str); + + for (i = 0; i < TX_NUM_MAX; i++) { + for (j = 0; j < RX_NUM_MAX; j++) { + ft8006m_g_stCfg_Incell_DetailThreshold.CBTest_Max[i][j] = MaxValue; + } + + if (i == ChannelNumTest_ChannelXNum) { + for (j = 0; j < RX_NUM_MAX; j++) { + ft8006m_g_stCfg_Incell_DetailThreshold.CBTest_Max[i][j] = MaxValue_Vkey; + } + } + } + + for (i = 0; i < TX_NUM_MAX; i++) { + sprintf(str, "CB_Max_Tx%d", (i + 1)); + + dividerPos = Ft8006m_GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + ft8006m_g_stCfg_Incell_DetailThreshold.CBTest_Max[i][k] = (short)(ft8006m_atoi(str_tmp)); + + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "CBTest_Min", "3", str, strIniFile); + MinValue = ft8006m_atoi(str); + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "CBTest_Min_Vkey", "3", str, strIniFile); + MinValue_Vkey = ft8006m_atoi(str); + + for (i = 0; i < TX_NUM_MAX; i++) { + for (j = 0; j < RX_NUM_MAX; j++) { + ft8006m_g_stCfg_Incell_DetailThreshold.CBTest_Min[i][j] = MinValue; + } + + if (i == ChannelNumTest_ChannelXNum) { + for (j = 0; j < RX_NUM_MAX; j++) { + ft8006m_g_stCfg_Incell_DetailThreshold.CBTest_Min[i][j] = MinValue_Vkey; + } + } + } + + for (i = 0; i < TX_NUM_MAX; i++) { + sprintf(str, "CB_Min_Tx%d", (i + 1)); + dividerPos = Ft8006m_GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + ft8006m_g_stCfg_Incell_DetailThreshold.CBTest_Min[i][k] = (short)(ft8006m_atoi(str_tmp)); + + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + FTS_TEST_FUNC_EXIT(); +} + + +void Ft8006m_OnInit_DThreshold_AllButtonCBTest(char *strIniFile) +{ + char str[128], strTemp[MAX_PATH], strValue[MAX_PATH]; + int MaxValue, MinValue; + int dividerPos = 0; + char str_tmp[128]; + int index = 0; + int k = 0, i = 0, j = 0; + + FTS_TEST_FUNC_ENTER(); + + if (ft8006m_g_ScreenSetParam.iSelectedIC >> 4 != IC_FT8606 >> 4) { + return; + } + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "CBTest_Max", "100", str, strIniFile); + MaxValue = ft8006m_atoi(str); + + + for (i = 0; i < TX_NUM_MAX; i++) { + for (j = 0; j < RX_NUM_MAX; j++) { + ft8006m_g_stCfg_Incell_DetailThreshold.CBTest_Max[i][j] = MaxValue; + } + } + + for (i = 0; i < TX_NUM_MAX; i++) { + sprintf(str, "CB_Max_Tx%d", (i + 1)); + + dividerPos = Ft8006m_GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + ft8006m_g_stCfg_Incell_DetailThreshold.CBTest_Max[i][k] = (short)(ft8006m_atoi(str_tmp)); + + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "CBTest_Min", "3", str, strIniFile); + MinValue = ft8006m_atoi(str); + + for (i = 0; i < TX_NUM_MAX; i++) { + for (j = 0; j < RX_NUM_MAX; j++) { + ft8006m_g_stCfg_Incell_DetailThreshold.CBTest_Min[i][j] = MinValue; + } + } + + for (i = 0; i < TX_NUM_MAX; i++) { + sprintf(str, "CB_Min_Tx%d", (i + 1)); + dividerPos = Ft8006m_GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + ft8006m_g_stCfg_Incell_DetailThreshold.CBTest_Min[i][k] = (short)(ft8006m_atoi(str_tmp)); + + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + FTS_TEST_FUNC_EXIT(); +} + + +void Ft8006m_OnThreshold_VkAndVaRawDataSeparateTest(char *strIniFile) +{ + char str[128], strTemp[MAX_PATH], strValue[MAX_PATH]; + int MaxValue, MinValue, MaxValue_Vkey, MinValue_Vkey; + int ChannelNumTest_ChannelXNum, ChannelNumTest_ChannelYNum; + int dividerPos = 0; + char str_tmp[128]; + int index = 0; + int k = 0, i = 0, j = 0; + + + FTS_TEST_FUNC_ENTER(); + + if ((ft8006m_g_ScreenSetParam.iSelectedIC >> 4 != IC_FT8716 >> 4) && (ft8006m_g_ScreenSetParam.iSelectedIC >> 4 != IC_FT8736 >> 4) && (ft8006m_g_ScreenSetParam.iSelectedIC >> 4 != IC_FTE716 >> 4)) { + return; + } + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "RawDataTest_Max", "11000", str, strIniFile); + MaxValue = ft8006m_atoi(str); + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "RawDataTest_Max_VKey", "11000", str, strIniFile); + MaxValue_Vkey = ft8006m_atoi(str); + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "ChannelNumTest_ChannelX", "15", str, strIniFile); + ChannelNumTest_ChannelXNum = ft8006m_atoi(str); + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "ChannelNumTest_ChannelY", "24", str, strIniFile); + ChannelNumTest_ChannelYNum = ft8006m_atoi(str); + + for (i = 0; i < TX_NUM_MAX; i++) { + for (j = 0; j < RX_NUM_MAX; j++) { + ft8006m_g_stCfg_Incell_DetailThreshold.RawDataTest_Max[i][j] = MaxValue; + } + + if (i == ChannelNumTest_ChannelXNum) { + for (j = 0; j < RX_NUM_MAX; j++) { + ft8006m_g_stCfg_Incell_DetailThreshold.RawDataTest_Max[i][j] = MaxValue_Vkey; + } + } + } + + + for (i = 0; i < TX_NUM_MAX; i++) { + sprintf(str, "RawData_Max_Tx%d", (i + 1)); + dividerPos = Ft8006m_GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + ft8006m_g_stCfg_Incell_DetailThreshold.RawDataTest_Max[i][k] = (short)(ft8006m_atoi(str_tmp)); + + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "RawDataTest_Min", "5000", str, strIniFile); + MinValue = ft8006m_atoi(str); + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "RawDataTest_Min_VKey", "5000", str, strIniFile); + MinValue_Vkey = ft8006m_atoi(str); + + for (i = 0; i < TX_NUM_MAX; i++) { + for (j = 0; j < RX_NUM_MAX; j++) { + ft8006m_g_stCfg_Incell_DetailThreshold.RawDataTest_Min[i][j] = MinValue; + } + + if (i == ChannelNumTest_ChannelXNum) { + for (j = 0; j < RX_NUM_MAX; j++) { + ft8006m_g_stCfg_Incell_DetailThreshold.RawDataTest_Min[i][j] = MinValue_Vkey; + } + } + } + + for (i = 0; i < TX_NUM_MAX; i++) { + sprintf(str, "RawData_Min_Tx%d", (i + 1)); + dividerPos = Ft8006m_GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + ft8006m_g_stCfg_Incell_DetailThreshold.RawDataTest_Min[i][k] = (short)(ft8006m_atoi(str_tmp)); + + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + FTS_TEST_FUNC_EXIT(); +} + diff --git a/drivers/input/touchscreen/FT8006m/focaltech_test/src/focaltech_test_global.c b/drivers/input/touchscreen/FT8006m/focaltech_test/src/focaltech_test_global.c new file mode 100755 index 0000000000000..3cf03de031621 --- /dev/null +++ b/drivers/input/touchscreen/FT8006m/focaltech_test/src/focaltech_test_global.c @@ -0,0 +1,498 @@ +/************************************************************************ +* Copyright (C) 2012-2017, Focaltech Systems (R)£¬All Rights Reserved. +* Copyright (C) 2018 XiaoMi, Inc. +* +* File Name: focaltech_test_global.c +* +* Author: Software Development Team, AE +* +* Created: 2016-08-01 +* +* Abstract: global function for test +* +************************************************************************/ + +#include +#include +#include +#include +#include +#include + +#include "../include/focaltech_test_ini.h" +#include "../focaltech_test_config.h" +#include "../include/focaltech_test_main.h" +#include "../include/focaltech_ic_table.h" + +#define DEVIDE_MODE_ADDR 0x00 + +/*buff length*/ +#define BUFF_LEN_STORE_MSG_AREA 1024*10 +#define BUFF_LEN_MSG_AREA_LINE2 1024*4 +#define BUFF_LEN_STORE_DATA_AREA 1024*80 +#define BUFF_LEN_TMP_BUFFER 1024*16 + + +char *ft8006m_g_pTmpBuff = NULL; +char *ft8006m_g_pStoreMsgArea = NULL; +int ft8006m_g_lenStoreMsgArea = 0; +char *ft8006m_g_pMsgAreaLine2 = NULL; +int ft8006m_g_lenMsgAreaLine2 = 0; +char *ft8006m_g_pStoreDataArea = NULL; +int ft8006m_g_lenStoreDataArea = 0; +unsigned char ft8006m_m_ucTestItemCode = 0; +int ft8006m_m_iStartLine = 0; +int ft8006m_m_iTestDataCount = 0; + +char *Ft8006m_TestResult = NULL; +int Ft8006m_TestResultLen = 0; + +#define FTS_MALLOC_TYPE 1 +enum enum_malloc_mode { + kmalloc_mode = 0, + vmalloc_mode = 1, +}; + +struct StruScreenSeting ft8006m_g_ScreenSetParam; +struct stTestItem ft8006m_g_stTestItem[1][MAX_TEST_ITEM]; +struct structSCapConfEx ft8006m_g_stSCapConfEx; + +int ft8006m_g_TestItemNum = 0; +char ft8006m_g_strIcName[20] = {0}; +char *ft8006m_g_pStoreAllData = NULL; + +int Ft8006m_GetPrivateProfileString(char *section, char *ItemName, char *defaultvalue, char *returnValue, char *IniFile) +{ + char value[512] = {0}; + int len = 0; + + if (NULL == returnValue) { + FTS_TEST_DBG("[FTS] returnValue==NULL in function %s.", __func__); + return 0; + } + + if (ft8006m_ini_get_key(IniFile, section, ItemName, value) < 0) { + if (NULL != defaultvalue) + memcpy(value, defaultvalue, strlen(defaultvalue)); + sprintf(returnValue, "%s", value); + return 0; + } else { + len = sprintf(returnValue, "%s", value); + } + + return len; +} + +void ft8006m_focal_msleep(int ms) +{ + msleep(ms); +} + +void Ft8006m_SysDelay(int ms) +{ + msleep(ms); +} + +int ft8006m_focal_abs(int value) +{ + if (value < 0) + value = 0 - value; + + return value; +} + +void *Ft8006m_fts_malloc(size_t size) +{ + if (FTS_MALLOC_TYPE == kmalloc_mode) { + return kmalloc(size, GFP_ATOMIC); + } else if (FTS_MALLOC_TYPE == vmalloc_mode) { + return vmalloc(size); + } else { + FTS_TEST_DBG("invalid malloc. \n"); + return NULL; + } + + return NULL; +} + +void Ft8006m_fts_free(void *p) +{ + if (FTS_MALLOC_TYPE == kmalloc_mode) { + return kfree(p); + } else if (FTS_MALLOC_TYPE == vmalloc_mode) { + return vfree(p); + } else { + FTS_TEST_DBG("invalid free. \n"); + return ; + } + + return ; +} + +void Ft8006m_OnInit_InterfaceCfg(char *strIniFile) +{ + char str[128] = {0}; + + FTS_TEST_FUNC_ENTER(); + + Ft8006m_GetPrivateProfileString("Interface", "IC_Type", "FT5X36", str, strIniFile); + ft8006m_g_ScreenSetParam.iSelectedIC = ft8006m_ic_table_get_ic_code_from_ic_name(str); + FTS_TEST_INFO(" IC code :0x%02x. ", ft8006m_g_ScreenSetParam.iSelectedIC); + + + Ft8006m_GetPrivateProfileString("Interface", "Normalize_Type", 0, str, strIniFile); + ft8006m_g_ScreenSetParam.isNormalize = ft8006m_atoi(str); + + FTS_TEST_FUNC_EXIT(); + +} +/************************************************************************ +* Name: Ft8006m_ReadReg(Same function name as FT_MultipleTest) +* Brief: Read Register +* Input: RegAddr +* Output: RegData +* Return: Comm Code. Code = 0x00 is OK, else fail. +***********************************************************************/ +int Ft8006m_ReadReg(unsigned char RegAddr, unsigned char *RegData) +{ + int iRet; + + if (NULL == ft8006m_i2c_read_test) { + FTS_TEST_DBG("[focal] %s ft8006m_i2c_read_test == NULL !!! ", __func__); + return (ERROR_CODE_INVALID_COMMAND); + } + + iRet = ft8006m_i2c_read_test(&RegAddr, 1, RegData, 1); + + if (iRet >= 0) + return (ERROR_CODE_OK); + else + return (ERROR_CODE_COMM_ERROR); +} + +/************************************************************************ +* Name: Ft8006m_WriteReg(Same function name as FT_MultipleTest) +* Brief: Write Register +* Input: RegAddr, RegData +* Output: null +* Return: Comm Code. Code = 0x00 is OK, else fail. +***********************************************************************/ +int Ft8006m_WriteReg(unsigned char RegAddr, unsigned char RegData) +{ + int iRet; + unsigned char cmd[2] = {0}; + + if (NULL == ft8006m_i2c_write_test) { + FTS_TEST_DBG("[focal] %s ft8006m_i2c_write_test == NULL !!!", __func__); + return (ERROR_CODE_INVALID_COMMAND); + } + + cmd[0] = RegAddr; + cmd[1] = RegData; + iRet = ft8006m_i2c_write_test(cmd, 2); + + if (iRet >= 0) + return (ERROR_CODE_OK); + else + return (ERROR_CODE_COMM_ERROR); +} +/************************************************************************ +* Name: Ft8006m_Comm_Base_IIC_IO(Same function name as FT_MultipleTest) +* Brief: Write/Read Data by IIC +* Input: pWriteBuffer, iBytesToWrite, iBytesToRead +* Output: pReadBuffer +* Return: Comm Code. Code = 0x00 is OK, else fail. +***********************************************************************/ +unsigned char Ft8006m_Comm_Base_IIC_IO(unsigned char *pWriteBuffer, int iBytesToWrite, unsigned char *pReadBuffer, int iBytesToRead) +{ + int iRet; + + if (NULL == ft8006m_i2c_read_test) { + FTS_TEST_DBG("[focal] %s ft8006m_i2c_read_test == NULL !!! ", __func__); + return (ERROR_CODE_INVALID_COMMAND); + } + + if (iBytesToRead > 0) { + iRet = ft8006m_i2c_read_test(pWriteBuffer, iBytesToWrite, pReadBuffer, iBytesToRead); + } else { + iRet = ft8006m_i2c_write_test(pWriteBuffer, iBytesToWrite); + } + + if (iRet >= 0) + return (ERROR_CODE_OK); + else + return (ERROR_CODE_COMM_ERROR); +} +/************************************************************************ +* Name: Ft8006m_EnterWork(Same function name as FT_MultipleTest) +* Brief: Enter Work Mode +* Input: null +* Output: null +* Return: Comm Code. Code = 0x00 is OK, else fail. +***********************************************************************/ +unsigned char Ft8006m_EnterWork(void) +{ + unsigned char RunState = 0; + unsigned char ReCode = ERROR_CODE_COMM_ERROR; + + FTS_TEST_FUNC_ENTER(); + ReCode = Ft8006m_ReadReg(DEVIDE_MODE_ADDR, &RunState); + if (ReCode == ERROR_CODE_OK) { + if (((RunState>>4)&0x07) == 0x00) { + ReCode = ERROR_CODE_OK; + } else { + ReCode = Ft8006m_WriteReg(DEVIDE_MODE_ADDR, 0); + if (ReCode == ERROR_CODE_OK) { + ReCode = Ft8006m_ReadReg(DEVIDE_MODE_ADDR, &RunState); + if (ReCode == ERROR_CODE_OK) { + if (((RunState>>4)&0x07) == 0x00) { + ReCode = ERROR_CODE_OK; + } else { + ReCode = ERROR_CODE_COMM_ERROR; + } + } else + FTS_TEST_ERROR("Ft8006m_EnterWork read DEVIDE_MODE_ADDR error 3."); + } else + FTS_TEST_ERROR("Ft8006m_EnterWork write DEVIDE_MODE_ADDR error 2."); + } + } else + FTS_TEST_ERROR("Ft8006m_EnterWork read DEVIDE_MODE_ADDR error 1."); + + FTS_TEST_FUNC_EXIT(); + + return ReCode; + +} +/************************************************************************ +* Name: Ft8006m_EnterFactory +* Brief: enter Fcatory Mode +* Input: null +* Output: null +* Return: Comm Code. Code = 0 is OK, else fail. +***********************************************************************/ +unsigned char Ft8006m_EnterFactory(void) +{ + unsigned char RunState = 0; + int index = 0; + unsigned char ReCode = ERROR_CODE_COMM_ERROR; + + FTS_TEST_FUNC_ENTER(); + ReCode = Ft8006m_ReadReg(DEVIDE_MODE_ADDR, &RunState); + if (ReCode == ERROR_CODE_OK) { + if (((RunState>>4)&0x07) == 0x04) { + ReCode = ERROR_CODE_OK; + } else { + ReCode = Ft8006m_WriteReg(DEVIDE_MODE_ADDR, 0x40); + if (ReCode == ERROR_CODE_OK) { + for (index = 0; index < 20; ++index) { + ReCode = Ft8006m_ReadReg(DEVIDE_MODE_ADDR, &RunState); + if (ReCode == ERROR_CODE_OK) { + if (((RunState>>4)&0x07) == 0x04) { + ReCode = ERROR_CODE_OK; + break; + } else { + ReCode = ERROR_CODE_COMM_ERROR; + } + } + Ft8006m_SysDelay(50); + } + if (ReCode != ERROR_CODE_OK) + FTS_TEST_ERROR("Ft8006m_EnterFactory read DEVIDE_MODE_ADDR error 3."); + } else + FTS_TEST_ERROR("Ft8006m_EnterFactory write DEVIDE_MODE_ADDR error 2."); + } + } else + FTS_TEST_ERROR("Ft8006m_EnterFactory read DEVIDE_MODE_ADDR error 1."); + + FTS_TEST_FUNC_EXIT(); + return ReCode; +} + +/************************************************************************ +* Name: ft8006m_SetTestItemCodeName +* Brief: set test item code and name +* Input: null +* Output: null +* Return: +**********************************************************************/ + +void ft8006m_SetTestItemCodeName(unsigned char ucitemcode) +{ + ft8006m_g_stTestItem[0][ft8006m_g_TestItemNum].ItemCode = ucitemcode; + + ft8006m_g_stTestItem[0][ft8006m_g_TestItemNum].TestNum = ft8006m_g_TestItemNum; + ft8006m_g_stTestItem[0][ft8006m_g_TestItemNum].TestResult = RESULT_NULL; + ft8006m_g_TestItemNum++; +} + +/************************************************************************ +* Name: Ft8006m_InitTest +* Brief: Init all param before test +* Input: none +* Output: none +* Return: none +***********************************************************************/ +int Ft8006m_InitTest(void) +{ + int ret = 0; + ret = Ft8006m_AllocateMemory(); + if (ret < 0) + return -EPERM; + + Ft8006m_InitStoreParamOfTestData(); + + ft8006m_g_stSCapConfEx.ChannelXNum = 0; + ft8006m_g_stSCapConfEx.ChannelYNum = 0; + ft8006m_g_stSCapConfEx.KeyNum = 0; + ft8006m_g_stSCapConfEx.KeyNumTotal = 6; + + return 0; + +} + +/************************************************************************ +* Name: Ft8006m_FinishTest +* Brief: Init all param before test +* Input: none +* Output: none +* Return: none +***********************************************************************/ +void Ft8006m_FinishTest(void) +{ + Ft8006m_MergeAllTestData(); + Ft8006m_FreeMemory(); +} + + +/************************************************************************ +* Name: Ft8006m_InitStoreParamOfTestData +* Brief: Init store param of test data +* Input: none +* Output: none +* Return: none +***********************************************************************/ +void Ft8006m_InitStoreParamOfTestData(void) +{ + ft8006m_g_lenStoreMsgArea = 0; + + ft8006m_g_lenStoreMsgArea += sprintf(ft8006m_g_pStoreMsgArea, "ECC, 85, 170, IC Name, %s, IC Code, %x\n", ft8006m_g_strIcName, ft8006m_g_ScreenSetParam.iSelectedIC); + + + + ft8006m_g_lenMsgAreaLine2 = 0; + + + + ft8006m_g_lenStoreDataArea = 0; + ft8006m_m_iStartLine = 11; + + ft8006m_m_iTestDataCount = 0; +} +/************************************************************************ +* Name: Ft8006m_MergeAllTestData +* Brief: Merge All Data of test result +* Input: none +* Output: none +* Return: none +***********************************************************************/ +void Ft8006m_MergeAllTestData(void) +{ + int iLen = 0; + + + iLen = sprintf(ft8006m_g_pTmpBuff, "TestItem, %d, ", ft8006m_m_iTestDataCount); + memcpy(ft8006m_g_pStoreMsgArea+ft8006m_g_lenStoreMsgArea, ft8006m_g_pTmpBuff, iLen); + ft8006m_g_lenStoreMsgArea += iLen; + + + memcpy(ft8006m_g_pStoreMsgArea+ft8006m_g_lenStoreMsgArea, ft8006m_g_pMsgAreaLine2, ft8006m_g_lenMsgAreaLine2); + ft8006m_g_lenStoreMsgArea += ft8006m_g_lenMsgAreaLine2; + + + iLen = sprintf(ft8006m_g_pTmpBuff, "\n\n\n\n\n\n\n\n\n"); + memcpy(ft8006m_g_pStoreMsgArea+ft8006m_g_lenStoreMsgArea, ft8006m_g_pTmpBuff, iLen); + ft8006m_g_lenStoreMsgArea += iLen; + + + memcpy(ft8006m_g_pStoreAllData, ft8006m_g_pStoreMsgArea, ft8006m_g_lenStoreMsgArea); + + + if (0 != ft8006m_g_lenStoreDataArea) { + memcpy(ft8006m_g_pStoreAllData+ft8006m_g_lenStoreMsgArea, ft8006m_g_pStoreDataArea, ft8006m_g_lenStoreDataArea); + } + + FTS_TEST_DBG("lenStoreMsgArea=%d, lenStoreDataArea = %d", ft8006m_g_lenStoreMsgArea, ft8006m_g_lenStoreDataArea); +} + + + +/************************************************************************ +* Name: Ft8006m_AllocateMemory +* Brief: Allocate pointer Memory +* Input: none +* Output: none +* Return: none +***********************************************************************/ +int Ft8006m_AllocateMemory(void) +{ + + ft8006m_g_pStoreMsgArea = NULL; + if (NULL == ft8006m_g_pStoreMsgArea) + ft8006m_g_pStoreMsgArea = Ft8006m_fts_malloc(BUFF_LEN_STORE_MSG_AREA); + if (NULL == ft8006m_g_pStoreMsgArea) + goto ERR; + + ft8006m_g_pMsgAreaLine2 = NULL; + if (NULL == ft8006m_g_pMsgAreaLine2) + ft8006m_g_pMsgAreaLine2 = Ft8006m_fts_malloc(BUFF_LEN_MSG_AREA_LINE2); + if (NULL == ft8006m_g_pMsgAreaLine2) + goto ERR; + + ft8006m_g_pStoreDataArea = NULL; + if (NULL == ft8006m_g_pStoreDataArea) + ft8006m_g_pStoreDataArea = Ft8006m_fts_malloc(BUFF_LEN_STORE_DATA_AREA); + if (NULL == ft8006m_g_pStoreDataArea) + goto ERR; + + ft8006m_g_pTmpBuff = NULL; + if (NULL == ft8006m_g_pTmpBuff) + ft8006m_g_pTmpBuff = Ft8006m_fts_malloc(BUFF_LEN_TMP_BUFFER); + if (NULL == ft8006m_g_pTmpBuff) + goto ERR; + + Ft8006m_TestResult = NULL; + if (NULL == Ft8006m_TestResult) + Ft8006m_TestResult = Ft8006m_fts_malloc(BUFF_LEN_TMP_BUFFER); + if (NULL == Ft8006m_TestResult) + goto ERR; + + return 0; + +ERR: + FTS_TEST_ERROR("Ft8006m_fts_malloc memory failed in function."); + return -EPERM; + +} + +/************************************************************************ +* Name: Ft8006m_FreeMemory +* Brief: Release pointer memory +* Input: none +* Output: none +* Return: none +***********************************************************************/ +void Ft8006m_FreeMemory(void) +{ + + if (NULL != ft8006m_g_pStoreMsgArea) + Ft8006m_fts_free(ft8006m_g_pStoreMsgArea); + + if (NULL != ft8006m_g_pMsgAreaLine2) + Ft8006m_fts_free(ft8006m_g_pMsgAreaLine2); + + if (NULL != ft8006m_g_pStoreDataArea) + Ft8006m_fts_free(ft8006m_g_pStoreDataArea); + + if (NULL != ft8006m_g_pTmpBuff) + Ft8006m_fts_free(ft8006m_g_pTmpBuff); +} diff --git a/drivers/input/touchscreen/FT8006m/focaltech_test/src/focaltech_test_ini.c b/drivers/input/touchscreen/FT8006m/focaltech_test/src/focaltech_test_ini.c new file mode 100755 index 0000000000000..5e60498f6b3c8 --- /dev/null +++ b/drivers/input/touchscreen/FT8006m/focaltech_test/src/focaltech_test_ini.c @@ -0,0 +1,433 @@ +/************************************************************************ +* Copyright (C) 2012-2017, Focaltech Systems (R)£¬All Rights Reserved. +* Copyright (C) 2018 XiaoMi, Inc. +* +* File Name: focaltech_test_ini.c +* +* Author: Software Development Team, AE +* +* Created: 2016-08-01 +* +* Abstract: parsing function of INI file +* +************************************************************************/ +#include +#include +#include +#include + +#include "../include/focaltech_test_ini.h" +#include "../include/focaltech_test_main.h" + + +char FT8006M_CFG_SSL = '['; /* Section Symbol --Can be defined according to the special need to change. For example {} */ +char FT8006M_CFG_SSR = ']'; /* Section Symbol --Can be defined according to the special need to change. For example {} */ +char FT8006M_CFG_NIS = ':'; /* Separator between name and index */ +char FT8006M_CFG_NTS = '#'; /* annotator */ +char FT8006M_CFG_EQS = '='; /* The equal sign */ + + +ST_INI_FILE_DATA *ft8006m_g_st_ini_file_data = NULL; +int ft8006m_g_used_key_num = 0; + + +static int ini_file_get_line(char *filedata, char *buffer, int maxlen); +static long fts_atol(char *nptr); + + +/* Works only for digits and letters, but small and fast */ +#define TOLOWER(x) ((x) | 0x20) + +int ft8006m_strncmp(const char *cs, const char *ct, size_t count) +{ + unsigned char c1 = 0, c2 = 0; + + while (count) { + c1 = TOLOWER(*cs++); + c2 = TOLOWER(*ct++); + if (c1 != c2) + return c1 < c2 ? -1 : 1; + if (!c1) + break; + count--; + } + return 0; +} + +/************************************************************* +Function: Get the value of key +Input: char * filedata; char * section; char * key +Output: char * value¡¡key +Return: 0 SUCCESS + -1 can not find section + -2 can not find key + -10 File open failed + -12 File read failed + -14 File format error + -22 Out of buffer size +Note: +*************************************************************/ +int ft8006m_ini_get_key(char *filedata, char *section, char *key, char *value) +{ + int i = 0; + int ret = -2; + for (i = 0; i < ft8006m_g_used_key_num; i++) { + if (ft8006m_strncmp(section, ft8006m_g_st_ini_file_data[i].pSectionName, + ft8006m_g_st_ini_file_data[i].iSectionNameLen) != 0) + continue; + + if (strlen(key) == ft8006m_g_st_ini_file_data[i].iKeyNameLen) { + if (ft8006m_strncmp(key, ft8006m_g_st_ini_file_data[i].pKeyName, ft8006m_g_st_ini_file_data[i].iKeyNameLen) == 0) + + { + memcpy(value, ft8006m_g_st_ini_file_data[i].pKeyValue, ft8006m_g_st_ini_file_data[i].iKeyValueLen); + ret = 0; + break; + } + } + } + + return ret; +} + +/************************************************************* +Function: Remove empty character on the right side of the string +Input: char * buf --String pointer +Output: +Return: String pointer +Note: +*************************************************************/ +char *ft8006m_ini_str_trim_r(char *buf) +{ + int len, i; + char tmp[512]; + + memset(tmp, 0, sizeof(tmp)); + len = strlen(buf); + + + memset(tmp, 0x00, len); + for (i = 0; i < len; i++) { + if (buf[i] != ' ') + break; + } + if (i < len) { + strncpy(tmp, (buf+i), (len-i)); + } + strncpy(buf, tmp, len); + + return buf; +} + +/************************************************************* +Function: Remove empty character on the left side of the string +Input: char * buf --String pointer +Output: +Return: String pointer +Note: +*************************************************************/ +char *ft8006m_ini_str_trim_l(char *buf) +{ + int len, i; + char tmp[512]; + + memset(tmp, 0, sizeof(tmp)); + len = strlen(buf); + + + memset(tmp, 0x00, len); + + for (i = 0; i < len; i++) { + if (buf[len-i-1] != ' ') + break; + } + if (i < len) { + strncpy(tmp, buf, len-i); + } + strncpy(buf, tmp, len); + + return buf; +} + +/************************************************************* +Function: Read a line from file +Input: FILE *fp; int maxlen-- Maximum length of buffer +Output: char *buffer -- A string +Return: >0 Actual read length + -1 End of file + -2 Error reading file +Note: +*************************************************************/ +static int ini_file_get_line(char *filedata, char *buffer, int maxlen) +{ + int i = 0; + int j = 0; + int iRetNum = -1; + char ch1 = '\0'; + + for (i = 0, j = 0; i < maxlen; j++) { + ch1 = filedata[j]; + iRetNum = j+1; + if (ch1 == '\n' || ch1 == '\r') { + ch1 = filedata[j+1]; + if (ch1 == '\n' || ch1 == '\r') { + iRetNum++; + } + + break; + } else if (ch1 == 0x00) { + iRetNum = -1; + break; + } else { + buffer[i++] = ch1; /* ignore carriage return */ + } + } + buffer[i] = '\0'; + + return iRetNum; +} + +int my_ft8006m_atoi(const char *str) +{ + int result = 0; + int signal = 1; /* The default is positive number*/ + if ((*str >= '0' && *str <= '9') || *str == '-' || *str == '+') { + if (*str == '-' || *str == '+') { + if (*str == '-') + signal = -1; /*enter negative number*/ + str++; + } + } else + return 0; + /*start transform*/ + while (*str >= '0' && *str <= '9') + result = result*10 + (*str++ - '0'); + + return signal*result; +} + +int ft8006m_isspace(int x) +{ + if (x == ' ' || x == '\t' || x == '\n' || x == '\f' || x == '\b' || x == '\r') + return 1; + else + return 0; +} + +int ft8006m_isdigit(int x) +{ + if (x <= '9' && x >= '0') + return 1; + else + return 0; + +} + +static long fts_atol(char *nptr) +{ + int c; /* current char */ + long total; /* current total */ + int sign; /* if ''-'', then negative, otherwise positive */ + /* skip whitespace */ + while (ft8006m_isspace((int)(unsigned char)*nptr)) + ++nptr; + c = (int)(unsigned char)*nptr++; + sign = c; /* save sign indication */ + if (c == '-' || c == '+') + c = (int)(unsigned char)*nptr++; /* skip sign */ + total = 0; + while (ft8006m_isdigit(c)) { + total = 10 * total + (c - '0'); /* accumulate digit */ + c = (int)(unsigned char)*nptr++; /* get next char */ + } + if (sign == '-') + return -total; + else + return total; /* return result, negated if necessary */ +} + +int ft8006m_atoi(char *nptr) +{ + return (int)fts_atol(nptr); +} + +int ft8006m_init_key_data(void) +{ + int i = 0; + + FTS_TEST_FUNC_ENTER(); + + ft8006m_g_used_key_num = 0; + + ft8006m_g_st_ini_file_data = NULL; + if (NULL == ft8006m_g_st_ini_file_data) + ft8006m_g_st_ini_file_data = Ft8006m_fts_malloc(sizeof(ST_INI_FILE_DATA)*MAX_KEY_NUM); + if (NULL == ft8006m_g_st_ini_file_data) { + FTS_TEST_ERROR("Ft8006m_fts_malloc failed in function."); + return -EPERM; + } + for (i = 0; i < MAX_KEY_NUM; i++) { + memset(ft8006m_g_st_ini_file_data[i].pSectionName, 0, MAX_KEY_NAME_LEN); + memset(ft8006m_g_st_ini_file_data[i].pKeyName, 0, MAX_KEY_NAME_LEN); + memset(ft8006m_g_st_ini_file_data[i].pKeyValue, 0, MAX_KEY_VALUE_LEN); + ft8006m_g_st_ini_file_data[i].iSectionNameLen = 0; + ft8006m_g_st_ini_file_data[i].iKeyNameLen = 0; + ft8006m_g_st_ini_file_data[i].iKeyValueLen = 0; + } + + FTS_TEST_FUNC_EXIT(); + return 1; +} + +int ft8006m_release_key_data(void) +{ + if (NULL != ft8006m_g_st_ini_file_data) + Ft8006m_fts_free(ft8006m_g_st_ini_file_data); + + return 0; +} +int ft8006m_print_key_data(void) +{ + int i = 0; + + + + FTS_TEST_DBG("ft8006m_g_used_key_num = %d", ft8006m_g_used_key_num); + for (i = 0; i < MAX_KEY_NUM; i++) { + + FTS_TEST_DBG("pSectionName_%d:%s, pKeyName_%d:%s\n,pKeyValue_%d:%s", + i, ft8006m_g_st_ini_file_data[i].pSectionName, + i, ft8006m_g_st_ini_file_data[i].pKeyName, + i, ft8006m_g_st_ini_file_data[i].pKeyValue + ); + + } + + return 1; +} +/************************************************************* +Function: Read all the parameters and values to the structure. +Return: Returns the number of key. If you go wrong, return a negative number. + -10 File open failed + -12 File read failed + -14 File format error +Note: +*************************************************************/ +int ft8006m_ini_get_key_data(char *filedata) +{ + + char buf1[MAX_CFG_BUF + 1] = {0}; + int n = 0; + int ret = 0; + int dataoff = 0; + int iEqualSign = 0; + int i = 0; + char tmpSectionName[MAX_CFG_BUF + 1] = {0}; + + + + FTS_TEST_FUNC_ENTER(); + + ret = ft8006m_init_key_data();/*init*/ + if (ret < 0) { + return -EPERM; + } + + ft8006m_g_used_key_num = 0; + while (1) { /*find section */ + ret = CFG_ERR_READ_FILE; + n = ini_file_get_line(filedata+dataoff, buf1, MAX_CFG_BUF); + + if (n < -1) + goto cfg_scts_end; + if (n < 0) + break;/* file end */ + if (n >= MAX_CFG_BUF) { + FTS_TEST_ERROR("Error Length:%d\n", n); + goto cfg_scts_end; + } + + dataoff += n; + + n = strlen(ft8006m_ini_str_trim_l(ft8006m_ini_str_trim_r(buf1))); + if (n == 0 || buf1[0] == FT8006M_CFG_NTS) + continue; /* A blank line or a comment line */ + ret = CFG_ERR_FILE_FORMAT; + + if (n > 2 && ((buf1[0] == FT8006M_CFG_SSL && buf1[n-1] != FT8006M_CFG_SSR))) { + FTS_TEST_ERROR("Bad Section:%s\n", buf1); + goto cfg_scts_end; + } + + + if (buf1[0] == FT8006M_CFG_SSL) { + ft8006m_g_st_ini_file_data[ft8006m_g_used_key_num].iSectionNameLen = n-2; + if (MAX_KEY_NAME_LEN < ft8006m_g_st_ini_file_data[ft8006m_g_used_key_num].iSectionNameLen) { + ret = CFG_ERR_OUT_OF_LEN; + FTS_TEST_ERROR("MAX_KEY_NAME_LEN: CFG_ERR_OUT_OF_LEN\n"); + goto cfg_scts_end; + } + + buf1[n-1] = 0x00; + strcpy((char *)tmpSectionName, buf1+1); + + + continue; + } + + + strcpy(ft8006m_g_st_ini_file_data[ft8006m_g_used_key_num].pSectionName, tmpSectionName); + ft8006m_g_st_ini_file_data[ft8006m_g_used_key_num].iSectionNameLen = strlen(tmpSectionName); + + iEqualSign = 0; + for (i = 0; i < n; i++) { + if (buf1[i] == FT8006M_CFG_EQS) { + iEqualSign = i; + break; + } + } + if (0 == iEqualSign) + continue; + /* before equal sign is assigned to the key name*/ + ft8006m_g_st_ini_file_data[ft8006m_g_used_key_num].iKeyNameLen = iEqualSign; + if (MAX_KEY_NAME_LEN < ft8006m_g_st_ini_file_data[ft8006m_g_used_key_num].iKeyNameLen) { + ret = CFG_ERR_OUT_OF_LEN; + FTS_TEST_ERROR("MAX_KEY_NAME_LEN: CFG_ERR_OUT_OF_LEN\n"); + goto cfg_scts_end; + } + memcpy(ft8006m_g_st_ini_file_data[ft8006m_g_used_key_num].pKeyName, + buf1, ft8006m_g_st_ini_file_data[ft8006m_g_used_key_num].iKeyNameLen); + + /* After equal sign is assigned to the key value*/ + ft8006m_g_st_ini_file_data[ft8006m_g_used_key_num].iKeyValueLen = n-iEqualSign-1; + if (MAX_KEY_VALUE_LEN < ft8006m_g_st_ini_file_data[ft8006m_g_used_key_num].iKeyValueLen) { + ret = CFG_ERR_OUT_OF_LEN; + FTS_TEST_ERROR("MAX_KEY_VALUE_LEN: CFG_ERR_OUT_OF_LEN\n"); + goto cfg_scts_end; + } + memcpy(ft8006m_g_st_ini_file_data[ft8006m_g_used_key_num].pKeyValue, + buf1 + iEqualSign+1, ft8006m_g_st_ini_file_data[ft8006m_g_used_key_num].iKeyValueLen); + + + ret = ft8006m_g_used_key_num; + + ft8006m_g_used_key_num++; /*Parameter number accumulation*/ + if (MAX_KEY_NUM < ft8006m_g_used_key_num) { + ret = CFG_ERR_TOO_MANY_KEY_NUM; + FTS_TEST_ERROR("MAX_KEY_NUM: CFG_ERR_TOO_MANY_KEY_NUM\n"); + goto cfg_scts_end; + } + } + + + + FTS_TEST_FUNC_EXIT(); + + return 0; + +cfg_scts_end: + + FTS_TEST_FUNC_EXIT(); + return ret; +} + diff --git a/drivers/input/touchscreen/FT8006m/focaltech_test/src/focaltech_test_main.c b/drivers/input/touchscreen/FT8006m/focaltech_test/src/focaltech_test_main.c new file mode 100755 index 0000000000000..33c95453123ed --- /dev/null +++ b/drivers/input/touchscreen/FT8006m/focaltech_test/src/focaltech_test_main.c @@ -0,0 +1,253 @@ +/************************************************************************ +* Copyright (C) 2010-2017, Focaltech Systems (R)£¬All Rights Reserved. +* Copyright (C) 2018 XiaoMi, Inc. +* +* File Name: focaltech_test_main.c +* +* Author: Software Development Team, AE +* +* Created: 2016-08-01 +* +* Abstract: test entry for all IC +* +************************************************************************/ +#include +#include +#include +#include + +#include "../../focaltech_core.h" +#include "../include/focaltech_test_main.h" +#include "../focaltech_test_config.h" +#include "../include/focaltech_test_supported_ic.h" +#include "../include/focaltech_test_ini.h" +#include "../include/focaltech_ic_table.h" + + +#define FTS_TEST_STORE_DATA_SIZE 80*1024 + + + +FTS_I2C_READ_FUNCTION ft8006m_i2c_read_test; +FTS_I2C_WRITE_FUNCTION ft8006m_i2c_write_test; + +char *ft8006m_g_testparamstring = NULL; + +struct StTestFuncs ft8006m_g_stTestFuncs; + + +int ft8006m_init_i2c_read_func(FTS_I2C_READ_FUNCTION fpI2C_Read) +{ + unsigned char value = 0; + unsigned char recode = 0; + + FTS_TEST_FUNC_ENTER(); + + ft8006m_i2c_read_test = fpI2C_Read; + if (NULL == ft8006m_i2c_read_test) { + FTS_TEST_DBG("[focal] %s ft8006m_i2c_read_test == NULL ", __func__); + } + + + recode = Ft8006m_ReadReg(0xa6, &value); + if (recode != ERROR_CODE_OK) { + FTS_TEST_ERROR("[focal] Ft8006m_ReadReg Error, code: %d ", recode); + } else { + FTS_TEST_DBG("[focal] Ft8006m_ReadReg successed, Addr: 0xa6, value: 0x%02x ", value); + } + + + FTS_TEST_FUNC_EXIT(); + return 0; +} + +int ft8006m_init_i2c_write_func(FTS_I2C_WRITE_FUNCTION fpI2C_Write) +{ + FTS_TEST_FUNC_ENTER(); + + ft8006m_i2c_write_test = fpI2C_Write; + if (NULL == ft8006m_i2c_write_test) { + FTS_TEST_ERROR("[focal] ft8006m_i2c_read_test == NULL "); + } + + FTS_TEST_FUNC_EXIT(); + return 0; +} + + + +/************************************************************************ +* Name: ft8006m_set_param_data +* Brief: load Config. Set IC series, init test items, init basic threshold, int detailThreshold, and set order of test items +* Input: TestParamData, from ini file. +* Output: none +* Return: 0. No sense, just according to the old format. +***********************************************************************/ +int ft8006m_set_param_data(char *TestParamData) +{ + int ret = 0; + + FTS_TEST_FUNC_ENTER(); + ft8006m_g_testparamstring = TestParamData; + ret = ft8006m_ini_get_key_data(ft8006m_g_testparamstring); + if (ret < 0) { + FTS_TEST_ERROR("ft8006m_ini_get_key_data error."); + return ret; + } + + + + Ft8006m_OnInit_InterfaceCfg(ft8006m_g_testparamstring); + + /*Get IC Name*/ + ft8006m_ic_table_get_ic_name_from_ic_code(ft8006m_g_ScreenSetParam.iSelectedIC, ft8006m_g_strIcName); + + + + if (ft8006m_g_stTestFuncs.OnInit_TestItem) { + ft8006m_g_stTestFuncs.OnInit_TestItem(ft8006m_g_testparamstring); + + } + + if (ft8006m_g_stTestFuncs.OnInit_BasicThreshold) { + ft8006m_g_stTestFuncs.OnInit_BasicThreshold(ft8006m_g_testparamstring); + + + } + + if (IC_Capacitance_Type == Self_Capacitance) { + Ft8006m_OnInit_SCap_DetailThreshold(ft8006m_g_testparamstring); + } else if (IC_Capacitance_Type == Mutual_Capacitance) { + Ft8006m_OnInit_MCap_DetailThreshold(ft8006m_g_testparamstring); + } else if (IC_Capacitance_Type == IDC_Capacitance) { + Ft8006m_OnInit_Incell_DetailThreshold(ft8006m_g_testparamstring); + } + + if (ft8006m_g_stTestFuncs.SetTestItem) { + + ft8006m_g_stTestFuncs.SetTestItem(); + + } + + FTS_TEST_FUNC_EXIT(); + return 0; +} + +/************************************************************************ +* Name: ft8006m_start_test_tp +* Brief: Test entry. Select test items based on IC series +* Input: none +* Output: none +* Return: Test Result, PASS or FAIL +***********************************************************************/ + +boolean ft8006m_start_test_tp(void) +{ + boolean bFt8006m_TestResult = false; + + FTS_TEST_FUNC_ENTER(); + FTS_TEST_DBG("IC_%s Test", ft8006m_g_strIcName); + + if (ft8006m_g_stTestFuncs.Start_Test) { + + bFt8006m_TestResult = ft8006m_g_stTestFuncs.Start_Test(); + + } else { + FTS_TEST_DBG("[Focal]Start_Test func null!\n"); + bFt8006m_TestResult = false; + } + + Ft8006m_EnterWork(); + + FTS_TEST_FUNC_EXIT(); + + return bFt8006m_TestResult; +} +/************************************************************************ +* Name: m_get_test_data +* Brief: Get test data based on IC series +* Input: none +* Output: pTestData, External application for memory, buff size >= 1024*8 +* Return: the length of test data. if length > 0, got data;else ERR. +***********************************************************************/ +int m_get_test_data(char *pTestData) +{ + int iLen = 0; + FTS_TEST_DBG("[focal] %s start ", __func__); + + + if (ft8006m_g_stTestFuncs.Get_test_data) { + + iLen = ft8006m_g_stTestFuncs.Get_test_data(pTestData); + + } else { + FTS_TEST_DBG("[Focal]Get_test_data func null!\n"); + } + + FTS_TEST_FUNC_EXIT(); + return iLen; +} + +int ft8006m_focaltech_test_main_init(void) +{ + int ret = 0; + + FTS_TEST_FUNC_ENTER(); + + /*Allocate memory, storage test results*/ + ft8006m_g_pStoreAllData = NULL; + if (NULL == ft8006m_g_pStoreAllData) + ft8006m_g_pStoreAllData = Ft8006m_fts_malloc(FTS_TEST_STORE_DATA_SIZE); + if (NULL == ft8006m_g_pStoreAllData) + return -EPERM; + + /* Allocate memory, assigned to detail threshold structure*/ + ret = ft8006m_malloc_struct_DetailThreshold(); + + FTS_TEST_FUNC_EXIT(); + + if (ret < 0) + return ret; + + return 0; +} +/************************************************************************ +* Name: free_test_param_data +* Brief: release printer memory +* Input: none +* Output: none +* Return: none. +***********************************************************************/ +int ft8006m_focaltech_test_main_exit(void) +{ + + FTS_TEST_DBG("[focal] release memory -start."); + + Ft8006m_TestResultLen = 0; + + + /* Release memory test results */ + if (NULL != ft8006m_g_pStoreAllData) { + FTS_TEST_DBG("[FTS] release memory ft8006m_g_pStoreAllData."); + Ft8006m_fts_free(ft8006m_g_pStoreAllData); + ft8006m_g_pStoreAllData = NULL; + } + + + if (NULL != Ft8006m_TestResult) { + FTS_TEST_DBG(" release memory Ft8006m_TestResult."); + Ft8006m_fts_free(Ft8006m_TestResult); + Ft8006m_TestResult = NULL; + } + + + /* Releasing the memory of the detailed threshold structure */ + FTS_TEST_DBG("[FTS] release memory ft8006m_free_struct_DetailThreshold."); + ft8006m_free_struct_DetailThreshold(); + + /* release memory of key data for ini file */ + ft8006m_release_key_data(); + FTS_TEST_DBG("[focal] release memory -end."); + return 0; +} + diff --git a/drivers/input/touchscreen/FT8006m/focaltech_test/supported_ic/Makefile b/drivers/input/touchscreen/FT8006m/focaltech_test/supported_ic/Makefile new file mode 100755 index 0000000000000..b35796681d5f1 --- /dev/null +++ b/drivers/input/touchscreen/FT8006m/focaltech_test/supported_ic/Makefile @@ -0,0 +1,9 @@ +#drivers/input/touchscreen/focaltech_ts/focaltech_test +# +# Makefile for test module +# +# Linux driver folder +obj-$(CONFIG_TOUCHSCREEN_FT8006M) += focaltech_test_ft8006.o +obj-$(CONFIG_TOUCHSCREEN_FT8006M) += focaltech_test_config_ft8006.o +obj-$(CONFIG_TOUCHSCREEN_FT8006M) += focaltech_test_supported_ic.o + diff --git a/drivers/input/touchscreen/FT8006m/focaltech_test/supported_ic/focaltech_test_config_ft8006.c b/drivers/input/touchscreen/FT8006m/focaltech_test/supported_ic/focaltech_test_config_ft8006.c new file mode 100644 index 0000000000000..6459af8f99d24 --- /dev/null +++ b/drivers/input/touchscreen/FT8006m/focaltech_test/supported_ic/focaltech_test_config_ft8006.c @@ -0,0 +1,430 @@ +/************************************************************************ +* Copyright (C) 2012-2017, Focaltech Systems (R)£¬All Rights Reserved. + * Copyright (C) 2018 XiaoMi, Inc. +* +* File Name: Focaltech_test_config_ft8006.c +* +* Author: Software Development Team, AE +* +* Created: 2016-08-01 +* +* Abstract: Set Config for FT8006 +* +************************************************************************/ +#include +#include + +#include "../include/focaltech_test_ini.h" +#include "../include/focaltech_test_supported_ic.h" +#include "../focaltech_test_config.h" + +#if (FTS_CHIP_TEST_TYPE == FT8006_TEST) + + +struct stCfg_FT8006_TestItem g_stCfg_FT8006_TestItem; +struct stCfg_FT8006_BasicThreshold g_stCfg_FT8006_BasicThreshold; + +void OnInit_FT8006_TestItem(char *strIniFile) +{ + char str[512]; + + FTS_TEST_FUNC_ENTER(); + + + + Ft8006m_GetPrivateProfileString("TestItem", "FW_VERSION_TEST", "0", str, strIniFile); + g_stCfg_FT8006_TestItem.FW_VERSION_TEST = ft8006m_atoi(str); + + + Ft8006m_GetPrivateProfileString("TestItem", "FACTORY_ID_TEST", "0", str, strIniFile); + g_stCfg_FT8006_TestItem.FACTORY_ID_TEST = ft8006m_atoi(str); + + + Ft8006m_GetPrivateProfileString("TestItem", "PROJECT_CODE_TEST", "0", str, strIniFile); + g_stCfg_FT8006_TestItem.PROJECT_CODE_TEST = ft8006m_atoi(str); + + + Ft8006m_GetPrivateProfileString("TestItem", "IC_VERSION_TEST", "0", str, strIniFile); + g_stCfg_FT8006_TestItem.IC_VERSION_TEST = ft8006m_atoi(str); + + + Ft8006m_GetPrivateProfileString("TestItem", "RAWDATA_TEST", "1", str, strIniFile); + g_stCfg_FT8006_TestItem.RAWDATA_TEST = ft8006m_atoi(str); + + + Ft8006m_GetPrivateProfileString("TestItem", "CHANNEL_NUM_TEST", "1", str, strIniFile); + g_stCfg_FT8006_TestItem.CHANNEL_NUM_TEST = ft8006m_atoi(str); + + + Ft8006m_GetPrivateProfileString("TestItem", "INT_PIN_TEST", "0", str, strIniFile); + g_stCfg_FT8006_TestItem.INT_PIN_TEST = ft8006m_atoi(str); + + + Ft8006m_GetPrivateProfileString("TestItem", "RESET_PIN_TEST", "0", str, strIniFile); + g_stCfg_FT8006_TestItem.RESET_PIN_TEST = ft8006m_atoi(str); + + + Ft8006m_GetPrivateProfileString("TestItem", "NOISE_TEST", "0", str, strIniFile); + g_stCfg_FT8006_TestItem.NOISE_TEST = ft8006m_atoi(str); + + + Ft8006m_GetPrivateProfileString("TestItem", "CB_TEST", "1", str, strIniFile); + g_stCfg_FT8006_TestItem.CB_TEST = ft8006m_atoi(str); + + + Ft8006m_GetPrivateProfileString("TestItem", "SHORT_CIRCUIT_TEST", "1", str, strIniFile); + g_stCfg_FT8006_TestItem.SHORT_CIRCUIT_TEST = ft8006m_atoi(str); + + + Ft8006m_GetPrivateProfileString("TestItem", "LCD_NOISE_TEST", "0", str, strIniFile); + g_stCfg_FT8006_TestItem.LCD_NOISE_TEST = ft8006m_atoi(str); + + + Ft8006m_GetPrivateProfileString("TestItem", "OSC60MHZ_TEST", "0", str, strIniFile); + g_stCfg_FT8006_TestItem.OSC60MHZ_TEST = ft8006m_atoi(str); + + + Ft8006m_GetPrivateProfileString("TestItem", "OSCTRM_TEST", "0", str, strIniFile); + g_stCfg_FT8006_TestItem.OSCTRM_TEST = ft8006m_atoi(str); + + + Ft8006m_GetPrivateProfileString("TestItem", "SNR_TEST", "0", str, strIniFile); + g_stCfg_FT8006_TestItem.SNR_TEST = ft8006m_atoi(str); + + + Ft8006m_GetPrivateProfileString("TestItem", "DIFFER_TEST", "0", str, strIniFile); + g_stCfg_FT8006_TestItem.DIFFER_TEST = ft8006m_atoi(str); + + + Ft8006m_GetPrivateProfileString("TestItem", "DIFFER_UNIFORMITY_TEST", "0", str, strIniFile); + g_stCfg_FT8006_TestItem.DIFFER_UNIFORMITY_TEST = ft8006m_atoi(str); + + + Ft8006m_GetPrivateProfileString("TestItem", "LPWG_RAWDATA_TEST", "0", str, strIniFile); + g_stCfg_FT8006_TestItem.LPWG_RAWDATA_TEST = ft8006m_atoi(str); + + + Ft8006m_GetPrivateProfileString("TestItem", "LPWG_CB_TEST", "0", str, strIniFile); + g_stCfg_FT8006_TestItem.LPWG_CB_TEST = ft8006m_atoi(str); + + + Ft8006m_GetPrivateProfileString("TestItem", "LPWG_NOISE_TEST", "0", str, strIniFile); + g_stCfg_FT8006_TestItem.LPWG_NOISE_TEST = ft8006m_atoi(str); + + + Ft8006m_GetPrivateProfileString("TestItem", "DIFFER2_TEST", "0", str, strIniFile); + g_stCfg_FT8006_TestItem.DIFFER2_TEST = ft8006m_atoi(str); + + + FTS_TEST_FUNC_EXIT(); +} + +void OnInit_FT8006_BasicThreshold(char *strIniFile) +{ + char str[512]; + + FTS_TEST_FUNC_ENTER(); + + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "FW_VER_VALUE", "0", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.FW_VER_VALUE = ft8006m_atoi(str); + + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "Factory_ID_Number", "255", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.Factory_ID_Number = ft8006m_atoi(str); + + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "Project_Code", " ", str, strIniFile); + sprintf(g_stCfg_FT8006_BasicThreshold.Project_Code, "%s", str); + + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "IC_Version", "3", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.IC_Version = ft8006m_atoi(str); + + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "RawDataTest_Min", "5000", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.RawDataTest_Min = ft8006m_atoi(str); + Ft8006m_GetPrivateProfileString("Basic_Threshold", "RawDataTest_Max", "11000", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.RawDataTest_Max = ft8006m_atoi(str); + + + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "ChannelNumTest_ChannelX", "15", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.ChannelNumTest_ChannelXNum = ft8006m_atoi(str); + Ft8006m_GetPrivateProfileString("Basic_Threshold", "ChannelNumTest_ChannelY", "24", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.ChannelNumTest_ChannelYNum = ft8006m_atoi(str); + Ft8006m_GetPrivateProfileString("Basic_Threshold", "ChannelNumTest_KeyNum", "0", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.ChannelNumTest_KeyNum = ft8006m_atoi(str); + + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "ResetPinTest_RegAddr", "136", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.ResetPinTest_RegAddr = ft8006m_atoi(str); + + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "IntPinTest_RegAddr", "175", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.IntPinTest_RegAddr = ft8006m_atoi(str); + + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "NoiseTest_Coefficient", "50", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.NoiseTest_Coefficient = ft8006m_atoi(str); + Ft8006m_GetPrivateProfileString("Basic_Threshold", "NoiseTest_Frames", "32", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.NoiseTest_Frames = ft8006m_atoi(str); + Ft8006m_GetPrivateProfileString("Basic_Threshold", "NoiseTest_Time", "1", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.NoiseTest_Time = ft8006m_atoi(str); + Ft8006m_GetPrivateProfileString("Basic_Threshold", "NoiseTest_SampeMode", "0", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.NoiseTest_SampeMode = ft8006m_atoi(str); + Ft8006m_GetPrivateProfileString("Basic_Threshold", "NoiseTest_NoiseMode", "0", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.NoiseTest_NoiseMode = ft8006m_atoi(str); + + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "NoiseTest_ShowTip", "0", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.NoiseTest_ShowTip = ft8006m_atoi(str); + Ft8006m_GetPrivateProfileString("Basic_Threshold", "NoiseTest_IsDiffer", "1", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.IsDifferMode = ft8006m_atoi(str); + + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "CBTest_VA_Check", "1", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.bCBTest_VA_Check = ft8006m_atoi(str); + Ft8006m_GetPrivateProfileString("Basic_Threshold", "CBTest_Min", "3", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.CbTest_Min = ft8006m_atoi(str); + Ft8006m_GetPrivateProfileString("Basic_Threshold", "CBTest_Max", "100", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.CbTest_Max = ft8006m_atoi(str); + Ft8006m_GetPrivateProfileString("Basic_Threshold", "CBTest_VKey_Check", "1", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.bCBTest_VKey_Check = ft8006m_atoi(str); + Ft8006m_GetPrivateProfileString("Basic_Threshold", "CBTest_Min_Vkey", "3", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.CbTest_Min_Vkey = ft8006m_atoi(str); + Ft8006m_GetPrivateProfileString("Basic_Threshold", "CBTest_Max_Vkey", "100", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.CbTest_Max_Vkey = ft8006m_atoi(str); + + + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "ShortCircuit_ResMin", "200", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.ShortCircuit_ResMin = ft8006m_atoi(str); + + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "LCD_NoiseTest_Frame", "50", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.iLCDNoiseTestFrame = ft8006m_atoi(str); + Ft8006m_GetPrivateProfileString("Basic_Threshold", "LCD_NoiseTest_Max_Screen", "32", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.iLCDNoiseTestMaxScreen = ft8006m_atoi(str); + Ft8006m_GetPrivateProfileString("Basic_Threshold", "LCD_NoiseTest_Max_Frame", "32", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.iLCDNoiseTestMaxFrame = ft8006m_atoi(str); + Ft8006m_GetPrivateProfileString("Basic_Threshold", "LCD_NoiseTest_Coefficient", "50", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.iLCDNoiseCoefficient = ft8006m_atoi(str); + + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "OSC60MHZTest_OSCMin", "12", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.OSC60MHZTest_OSCMin = ft8006m_atoi(str); + Ft8006m_GetPrivateProfileString("Basic_Threshold", "OSC60MHZTest_OSCMax", "17", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.OSC60MHZTest_OSCMax = ft8006m_atoi(str); + + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "OSCTRMTest_OSCMin", "15", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.OSCTRMTest_OSCMin = ft8006m_atoi(str); + Ft8006m_GetPrivateProfileString("Basic_Threshold", "OSCTRMTest_OSCMax", "17", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.OSCTRMTest_OSCMax = ft8006m_atoi(str); + Ft8006m_GetPrivateProfileString("Basic_Threshold", "OSCTRMTest_OSCDetMin", "15", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.OSCTRMTest_OSCDetMin = ft8006m_atoi(str); + Ft8006m_GetPrivateProfileString("Basic_Threshold", "OSCTRMTest_OSCDetMax", "17", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.OSCTRMTest_OSCDetMax = ft8006m_atoi(str); + + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "SNRTest_FrameNum", "32", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.SNRTest_FrameNum = ft8006m_atoi(str); + Ft8006m_GetPrivateProfileString("Basic_Threshold", "SNRTest_Min", "10", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.SNRTest_Min = ft8006m_atoi(str); + + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "DIFFERTest_Frame_Num", "32", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.DIFFERTest_FrameNum = ft8006m_atoi(str); + Ft8006m_GetPrivateProfileString("Basic_Threshold", "DIFFERTest_Differ_Max", "100", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.DIFFERTest_DifferMax = ft8006m_atoi(str); + Ft8006m_GetPrivateProfileString("Basic_Threshold", "DIFFERTest_Differ_Min", "10", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.DIFFERTest_DifferMin = ft8006m_atoi(str); + + + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "DifferUniformityTest_Check_CHX", "0", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.DifferUniformityTest_Check_CHX = ft8006m_atoi(str); + Ft8006m_GetPrivateProfileString("Basic_Threshold", "DifferUniformityTest_Check_CHY", "0", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.DifferUniformityTest_Check_CHY = ft8006m_atoi(str); + Ft8006m_GetPrivateProfileString("Basic_Threshold", "DifferUniformityTest_Check_MinMax", "0", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.DifferUniformityTest_Check_MinMax = ft8006m_atoi(str); + Ft8006m_GetPrivateProfileString("Basic_Threshold", "DifferUniformityTest_CHX_Hole", "20", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.DifferUniformityTest_CHX_Hole = ft8006m_atoi(str); + Ft8006m_GetPrivateProfileString("Basic_Threshold", "DifferUniformityTest_CHY_Hole", "20", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.DifferUniformityTest_CHY_Hole = ft8006m_atoi(str); + Ft8006m_GetPrivateProfileString("Basic_Threshold", "DifferUniformityTest_MinMax_Hole", "70", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.DifferUniformityTest_MinMax_Hole = ft8006m_atoi(str); + + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "LPWG_RawDataTest_Min", "5000", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.LPWG_RawDataTest_Min = ft8006m_atoi(str); + Ft8006m_GetPrivateProfileString("Basic_Threshold", "LPWG_RawDataTest_Max", "11000", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.LPWG_RawDataTest_Max = ft8006m_atoi(str); + + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "LPWG_CBTest_VA_Check", "1", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.bLPWG_CBTest_VA_Check = ft8006m_atoi(str); + Ft8006m_GetPrivateProfileString("Basic_Threshold", "LPWG_CBTest_Min", "3", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.LPWG_CbTest_Min = ft8006m_atoi(str); + Ft8006m_GetPrivateProfileString("Basic_Threshold", "LPWG_CBTest_Max", "60", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.LPWG_CbTest_Max = ft8006m_atoi(str); + Ft8006m_GetPrivateProfileString("Basic_Threshold", "LPWG_CBTest_VKey_Check", "1", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.bLPWG_CBTest_VKey_Check = ft8006m_atoi(str); + Ft8006m_GetPrivateProfileString("Basic_Threshold", "LPWG_CBTest_Min_Vkey", "3", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.LPWG_CbTest_Min_Vkey = ft8006m_atoi(str); + Ft8006m_GetPrivateProfileString("Basic_Threshold", "LPWG_CBTest_Max_Vkey", "100", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.LPWG_CbTest_Max_Vkey = ft8006m_atoi(str); + + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "LPWG_NoiseTest_Coefficient", "50", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.LPWG_NoiseTest_Coefficient = ft8006m_atoi(str); + Ft8006m_GetPrivateProfileString("Basic_Threshold", "LPWG_NoiseTest_Frames", "50", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.LPWG_NoiseTest_Frames = ft8006m_atoi(str); + + + Ft8006m_GetPrivateProfileString("Basic_Threshold", "Differ2Test_Min", "1500", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.Differ2Test_Min = ft8006m_atoi(str); + Ft8006m_GetPrivateProfileString("Basic_Threshold", "Differ2Test_Max", "2000", str, strIniFile); + g_stCfg_FT8006_BasicThreshold.Differ2Test_Max = ft8006m_atoi(str); + + + + + FTS_TEST_FUNC_EXIT(); + +} +void SetTestItem_FT8006(void) +{ + ft8006m_g_TestItemNum = 0; + + FTS_TEST_FUNC_ENTER(); + + + if (g_stCfg_FT8006_TestItem.FACTORY_ID_TEST == 1) { + ft8006m_SetTestItemCodeName(Code_FT8006_FACTORY_ID_TEST); + } + + + if (g_stCfg_FT8006_TestItem.PROJECT_CODE_TEST == 1) { + ft8006m_SetTestItemCodeName(Code_FT8006_PROJECT_CODE_TEST); + } + + + if (g_stCfg_FT8006_TestItem.FW_VERSION_TEST == 1) { + ft8006m_SetTestItemCodeName(Code_FT8006_FW_VERSION_TEST); + } + + + if (g_stCfg_FT8006_TestItem.IC_VERSION_TEST == 1) { + ft8006m_SetTestItemCodeName(Code_FT8006_IC_VERSION_TEST); + } + + + ft8006m_SetTestItemCodeName(Code_FT8006_ENTER_FACTORY_MODE); + + + if (g_stCfg_FT8006_TestItem.CHANNEL_NUM_TEST == 1) { + ft8006m_SetTestItemCodeName(Code_FT8006_CHANNEL_NUM_TEST); + } + + + if (g_stCfg_FT8006_TestItem.SHORT_CIRCUIT_TEST == 1) { + ft8006m_SetTestItemCodeName(Code_FT8006_SHORT_CIRCUIT_TEST) ; + } + + + if (g_stCfg_FT8006_TestItem.OSC60MHZ_TEST == 1) { + + ft8006m_SetTestItemCodeName(Code_FT8006_OSC60MHZ_TEST); + } + + + if (g_stCfg_FT8006_TestItem.OSCTRM_TEST == 1) { + + ft8006m_SetTestItemCodeName(Code_FT8006_OSCTRM_TEST); + } + + + if (g_stCfg_FT8006_TestItem.DIFFER2_TEST == 1) { + + ft8006m_SetTestItemCodeName(Code_FT8006_DIFFER2_TEST); + } + + + if (g_stCfg_FT8006_TestItem.CB_TEST == 1) { + ft8006m_SetTestItemCodeName(Code_FT8006_CB_TEST); + } + + + if (g_stCfg_FT8006_TestItem.NOISE_TEST == 1) { + ft8006m_SetTestItemCodeName(Code_FT8006_NOISE_TEST); + } + + + if (g_stCfg_FT8006_TestItem.LCD_NOISE_TEST == 1) { + ft8006m_SetTestItemCodeName(Code_FT8006_LCD_NOISE_TEST); + } + + + if (g_stCfg_FT8006_TestItem.RAWDATA_TEST == 1) { + ft8006m_SetTestItemCodeName(Code_FT8006_RAWDATA_TEST); + } + + + if (g_stCfg_FT8006_TestItem.SNR_TEST == 1) { + + ft8006m_SetTestItemCodeName(Code_FT8006_SNR_TEST); + } + + + + if (g_stCfg_FT8006_TestItem.DIFFER_TEST == 1) { + + ft8006m_SetTestItemCodeName(Code_FT8006_DIFFER_TEST); + } + + + + if (g_stCfg_FT8006_TestItem.DIFFER_UNIFORMITY_TEST == 1) { + ft8006m_SetTestItemCodeName(Code_FT8006_DIFFER_UNIFORMITY_TEST); + } + + + if (g_stCfg_FT8006_TestItem.RESET_PIN_TEST == 1) { + ft8006m_SetTestItemCodeName(Code_FT8006_RESET_PIN_TEST); + } + + + if (g_stCfg_FT8006_TestItem.INT_PIN_TEST == 1) { + ft8006m_SetTestItemCodeName(Code_FT8006_RESET_PIN_TEST); + } + + + if (g_stCfg_FT8006_TestItem.RESET_PIN_TEST == 1) { + ft8006m_SetTestItemCodeName(Code_FT8006_INT_PIN_TEST); + } + + + if (g_stCfg_FT8006_TestItem.LPWG_CB_TEST == 1) { + ft8006m_SetTestItemCodeName(Code_FT8006_LPWG_CB_TEST); + } + + + if (g_stCfg_FT8006_TestItem.LPWG_NOISE_TEST == 1) { + ft8006m_SetTestItemCodeName(Code_FT8006_LPWG_NOISE_TEST); + } + + + if (g_stCfg_FT8006_TestItem.LPWG_RAWDATA_TEST == 1) { + ft8006m_SetTestItemCodeName(Code_FT8006_LPWG_RAWDATA_TEST); + } + + + + FTS_TEST_FUNC_EXIT(); + +} + +#endif + diff --git a/drivers/input/touchscreen/FT8006m/focaltech_test/supported_ic/focaltech_test_ft8006.c b/drivers/input/touchscreen/FT8006m/focaltech_test/supported_ic/focaltech_test_ft8006.c new file mode 100644 index 0000000000000..f3ae146f96247 --- /dev/null +++ b/drivers/input/touchscreen/FT8006m/focaltech_test/supported_ic/focaltech_test_ft8006.c @@ -0,0 +1,2101 @@ +/************************************************************************ +* Copyright (C) 2012-2017, Focaltech Systems (R),All Rights Reserved. +* Copyright (C) 2018 XiaoMi, Inc. +* +* File Name: focaltech_test_ft8006.c +* +* Author: Software Development +* +* Created: 2016-08-01 +* +* Abstract: test item for FT8006 +* +************************************************************************/ + +/******************************************************************************* +* Included header files +*******************************************************************************/ +#include +#include +#include + +#include "../include/focaltech_test_detail_threshold.h" +#include "../include/focaltech_test_supported_ic.h" +#include "../include/focaltech_test_main.h" +#include "../focaltech_test_config.h" +#include "../../focaltech_core.h" + +/******************************************************************************* +* Private constant and macro definitions using #define +*******************************************************************************/ +#if (FTS_CHIP_TEST_TYPE == FT8006_TEST) + + +#define DEVIDE_MODE_ADDR 0x00 +#define REG_LINE_NUM 0x01 +#define REG_TX_NUM 0x02 +#define REG_RX_NUM 0x03 +#define FT8006_LEFT_KEY_REG 0X1E +#define FT8006_RIGHT_KEY_REG 0X1F + +#define REG_CbAddrH 0x18 +#define REG_CbAddrL 0x19 +#define REG_OrderAddrH 0x1A +#define REG_OrderAddrL 0x1B + +#define REG_RawBuf0 0x6A +#define REG_RawBuf1 0x6B +#define REG_OrderBuf0 0x6C +#define REG_CbBuf0 0x6E + +#define REG_K1Delay 0x31 +#define REG_K2Delay 0x32 +#define REG_SCChannelCf 0x34 + +#define REG_FACTORYID 0xA8 + +#define pre 1 +#define REG_CLB 0x04 + +#define DOUBLE_TX_NUM_MAX 160 +#define DOUBLE_RX_NUM_MAX 160 + +#define REG_8006_LCD_NOISE_FRAME 0X12 +#define REG_8006_LCD_NOISE_START 0X11 +#define REG_8006_LCD_NOISE_NUMBER 0X13 + + + +/******************************************************************************* +* Private enumerations, structures and unions using typedef +*******************************************************************************/ + +enum NOISE_TYPE { + NT_AvgData = 0, + NT_MaxData = 1, + NT_MaxDevication = 2, + NT_DifferData = 3, +}; + +enum CS_TYPE { + CS_TWO_SINGLE_MASTER = 1, + CS_TWO_SINGLE_SLAVE = 0, + CS_SINGLE_CHIP = 3, +}; +enum CS_DIRECTION { + CS_LEFT_RIGHT = 0x00, + CS_UP_DOWN = 0x40, +}; +enum CD_S0_ROLE { + CS_S0_AS_MASTER = 0x00, + CS_S0_AS_SLAVE = 0x80, +}; + +struct CSInfoPacket { + enum CS_TYPE csType; + enum CS_DIRECTION csDirection; + enum CD_S0_ROLE csS0Role; + BYTE csMasterAddr; + BYTE csSalveAddr; + BYTE csMarterTx; + BYTE csMasterRx; + BYTE csSlaveTx; + BYTE csSlaveRx; +}; + +struct FT8006 { + struct CSInfoPacket *m_csInfo; + unsigned char m_currentSlaveAddr; + +}; + +struct CSChipAddrMgr { + struct FT8006 *m_parent; + BYTE m_slaveAddr; +}; + + + +/******************************************************************************* +* Static variables +*******************************************************************************/ + +static int m_RawData[TX_NUM_MAX][RX_NUM_MAX] = {{0, 0} } ; +static int m_CBData[TX_NUM_MAX][RX_NUM_MAX] = {{0, 0} } ; +static BYTE m_ucTempData[TX_NUM_MAX * RX_NUM_MAX*2] = {0}; +static int m_iTempRawData[TX_NUM_MAX * RX_NUM_MAX] = {0}; + +static int bufferMaster[TX_NUM_MAX * RX_NUM_MAX] = {0}; +static int bufferSlave[TX_NUM_MAX * RX_NUM_MAX] = {0}; +static int bufferCated[DOUBLE_TX_NUM_MAX * DOUBLE_RX_NUM_MAX] = {0}; +static int iAdcData[TX_NUM_MAX * RX_NUM_MAX] = {0}; +static unsigned char pReadBuffer[80 * 80 * 2] = {0}; +static int shortRes[TX_NUM_MAX][RX_NUM_MAX] = { {0} }; +static unsigned char ScreenNoiseData[TX_NUM_MAX*RX_NUM_MAX*2] = {0}; +static int LCD_Noise[TX_NUM_MAX][RX_NUM_MAX] = {{0, 0} } ; + + + +/******************************************************************************* +* Global variable or extern global variabls/functions +*******************************************************************************/ +extern struct stCfg_FT8006_BasicThreshold g_stCfg_FT8006_BasicThreshold; + + +/******************************************************************************* +* Static function prototypes +*******************************************************************************/ + + +static int StartScan(void); +static unsigned char ReadRawData(unsigned char Freq, unsigned char LineNum, int ByteNum, int *pRevBuffer); +static unsigned char GetPanelRows(unsigned char *pPanelRows); +static unsigned char GetPanelCols(unsigned char *pPanelCols); +static unsigned char GetTxRxCB(unsigned short StartNodeNo, unsigned short ReadNum, unsigned char *pReadBuffer); +static unsigned char GetRawData(struct FT8006 *g_FT8006); +static unsigned char GetChannelNum(void); +static void Save_Test_Data(int iData[TX_NUM_MAX][RX_NUM_MAX], int iArrayIndex, unsigned char Row, unsigned char Col, unsigned char ItemCount); +static unsigned char ChipClb(unsigned char *pClbResult); +void CatSingleToOneScreen(struct FT8006 *g_FT8006); +void ReleaseCSInfo(struct FT8006 *g_FT8006); +unsigned char FT8006_EnterFactory(struct FT8006 *g_FT8006); +unsigned char FT8006_ChipClb(struct FT8006 *g_FT8006, unsigned char *pClbResult); +static unsigned char FT8006_GetTxRxCB(struct FT8006 *g_FT8006, unsigned short StartNodeNo, unsigned short ReadNum, unsigned char *pReadBuffer); +unsigned char FT8006_WeakShort_GetAdcData(struct FT8006 *g_FT8006, int AllAdcDataLen, int *pRevBuffer); +unsigned char ReadBytesByKey(BYTE key, int ByteNum, unsigned char *byteData); +unsigned char FT8006_EnterWork(struct FT8006 *g_FT8006); +int HY_SetSlaveAddr(struct FT8006 *g_FT8006, BYTE SlaveAddr); +unsigned char FT8006_WriteReg(struct FT8006 *g_FT8006, unsigned char RegAddr, unsigned char RegData); +bool ChipHasTwoHeart(struct FT8006 *g_FT8006); +unsigned char FT8006_StartScan(struct FT8006 *g_FT8006); +unsigned char FT8006_ReadRawData(struct FT8006 *g_FT8006, unsigned char Freq, unsigned char LineNum, int ByteNum, int *pRevBuffer); +unsigned char WeakShort_StartAdcScan(void); +unsigned char WeakShort_GetScanResult(void); +unsigned char WeakShort_GetAdcResult(int AllAdcDataLen, int *pRevBuffer); +static unsigned char WeakShort_GetAdcData(int AllAdcDataLen, int *pRevBuffer); +void InitCurrentAddress(struct FT8006 *g_FT8006); +void CSInfoPacket(struct CSInfoPacket *cspt); + + + + +boolean FT8006_StartTest(void); +int FT8006M_get_test_data(char *pTestData); + +unsigned char FT8006_TestItem_EnterFactoryMode(struct FT8006 *g_FT8006); +unsigned char FT8006_TestItem_RawDataTest(struct FT8006 *g_FT8006, bool *bTestResult); +unsigned char FT8006_TestItem_CbTest(struct FT8006 *g_FT8006, bool *bTestResult); +unsigned char FT8006_TestItem_ShortCircuitTest(struct FT8006 *g_FT8006, bool *bTestResult); +unsigned char FT8006_TestItem_LCDNoiseTest(struct FT8006 *g_FT8006, bool *bTestResult); +unsigned char FT8006_TestItem_ChannelsTest(struct FT8006 *g_FT8006, bool *bTestResult); +unsigned char FT8006_CheckItem_FactoryIdTest(struct FT8006 *g_FT8006, bool *bTestResult); +/************************************************************************ +* Name: FT8006_StartTest +* Brief: Test entry. Determine which test item to test +* Input: none +* Output: none +* Return: Test Result, PASS or FAIL +***********************************************************************/ + +boolean FT8006_StartTest() +{ + bool bTestResult = true, bTempResult = 1; + unsigned char ReCode; + unsigned char ucDevice = 0; + int iItemCount = 0; + + struct FT8006 g_FT8006; + struct CSInfoPacket cspt; + + + + CSInfoPacket(&cspt); + InitCurrentAddress(&g_FT8006); + g_FT8006.m_csInfo = &cspt; + + + + if (Ft8006m_InitTest() < 0) { + FTS_TEST_ERROR("[focal] Failed to init test."); + return false; + } + + + if (0 == ft8006m_g_TestItemNum) + bTestResult = false; + + + for (iItemCount = 0; iItemCount < ft8006m_g_TestItemNum; iItemCount++) { + ft8006m_m_ucTestItemCode = ft8006m_g_stTestItem[ucDevice][iItemCount].ItemCode; + + + if (Code_FT8006_ENTER_FACTORY_MODE == ft8006m_g_stTestItem[ucDevice][iItemCount].ItemCode + ) { + ReCode = FT8006_TestItem_EnterFactoryMode(&g_FT8006); + if (ERROR_CODE_OK != ReCode || (!bTempResult)) { + bTestResult = false; + ft8006m_g_stTestItem[ucDevice][iItemCount].TestResult = RESULT_NG; + break; + } else + ft8006m_g_stTestItem[ucDevice][iItemCount].TestResult = RESULT_PASS; + } + + + if (Code_FT8006_RAWDATA_TEST == ft8006m_g_stTestItem[ucDevice][iItemCount].ItemCode + ) { + ReCode = FT8006_TestItem_RawDataTest(&g_FT8006, &bTempResult); + if (ERROR_CODE_OK != ReCode || (!bTempResult)) { + bTestResult = false; + ft8006m_g_stTestItem[ucDevice][iItemCount].TestResult = RESULT_NG; + } else + ft8006m_g_stTestItem[ucDevice][iItemCount].TestResult = RESULT_PASS; + } + + + if (Code_FT8006_CB_TEST == ft8006m_g_stTestItem[ucDevice][iItemCount].ItemCode + ) { + ReCode = FT8006_TestItem_CbTest(&g_FT8006, &bTempResult); + if (ERROR_CODE_OK != ReCode || (!bTempResult)) { + bTestResult = false; + ft8006m_g_stTestItem[ucDevice][iItemCount].TestResult = RESULT_NG; + } else + ft8006m_g_stTestItem[ucDevice][iItemCount].TestResult = RESULT_PASS; + } + + + if (Code_FT8006_CHANNEL_NUM_TEST == ft8006m_g_stTestItem[ucDevice][iItemCount].ItemCode) { + ReCode = FT8006_TestItem_ChannelsTest(&g_FT8006, &bTempResult); + if (ERROR_CODE_OK != ReCode || (!bTempResult)) { + bTestResult = false; + ft8006m_g_stTestItem[ucDevice][iItemCount].TestResult = RESULT_NG; + break; + } else + ft8006m_g_stTestItem[ucDevice][iItemCount].TestResult = RESULT_PASS; + + } + + + if (Code_FT8006_SHORT_CIRCUIT_TEST == ft8006m_g_stTestItem[ucDevice][iItemCount].ItemCode + ) { + ReCode = FT8006_TestItem_ShortCircuitTest(&g_FT8006, &bTempResult); + if (ERROR_CODE_OK != ReCode || (!bTempResult)) { + bTestResult = false; + ft8006m_g_stTestItem[ucDevice][iItemCount].TestResult = RESULT_NG; + } else + ft8006m_g_stTestItem[ucDevice][iItemCount].TestResult = RESULT_PASS; + } + + + if (Code_FT8006_LCD_NOISE_TEST == ft8006m_g_stTestItem[ucDevice][iItemCount].ItemCode + ) { + ReCode = FT8006_TestItem_LCDNoiseTest(&g_FT8006, &bTempResult); + if (ERROR_CODE_OK != ReCode || (!bTempResult)) { + bTestResult = false; + ft8006m_g_stTestItem[ucDevice][iItemCount].TestResult = RESULT_NG; + } else + ft8006m_g_stTestItem[ucDevice][iItemCount].TestResult = RESULT_PASS; + } + + + if (Code_FT8006_FACTORY_ID_TEST == ft8006m_g_stTestItem[ucDevice][iItemCount].ItemCode) { + ReCode = FT8006_CheckItem_FactoryIdTest(&g_FT8006, &bTempResult); + if (ERROR_CODE_OK != ReCode || (!bTempResult)) { + bTestResult = false; + ft8006m_g_stTestItem[ucDevice][iItemCount].TestResult = RESULT_NG; + } else + ft8006m_g_stTestItem[ucDevice][iItemCount].TestResult = RESULT_PASS; + } + + } + + + Ft8006m_FinishTest(); + + + return bTestResult; + +} + + +/************************************************************************ +* Name: +* Brief: +* Input: +* Output: +* Return: +***********************************************************************/ +void InitCurrentAddress(struct FT8006 *g_FT8006) +{ + g_FT8006->m_currentSlaveAddr = 0x70; +} +struct CSInfoPacket *GetCSInfo(struct FT8006 *g_FT8006) +{ + return g_FT8006->m_csInfo; +} +unsigned char GetCurrentAddr(struct FT8006 *g_FT8006) +{ + return g_FT8006->m_currentSlaveAddr; +} +int GetCSType(struct CSInfoPacket *cspt) +{ + return cspt->csType; +} +int GetCSDirection(struct CSInfoPacket *cspt) +{ + return cspt->csDirection; +} +int GetS0Role(struct CSInfoPacket *cspt) +{ + return cspt->csS0Role; +} +void SetMasterAddr(struct CSInfoPacket *cspt, BYTE master) +{ + cspt->csMasterAddr = master; +} +BYTE GetMasterAddr(struct CSInfoPacket *cspt) +{ + return cspt->csMasterAddr; +} +void SetSlaveAddr(struct CSInfoPacket *cspt, BYTE slave) +{ + cspt->csSalveAddr = slave; +} +BYTE GetSlaveAddr(struct CSInfoPacket *cspt) +{ + return cspt->csSalveAddr; +} +void SetMasterTx(struct CSInfoPacket *cspt, BYTE tx) +{ + cspt->csMarterTx = tx; +} +BYTE GetMasterTx(struct CSInfoPacket *cspt) +{ + return cspt->csMarterTx; +} +void SetMasterRx(struct CSInfoPacket *cspt, BYTE rx) +{ + cspt->csMasterRx = rx; +} +BYTE GetMasterRx(struct CSInfoPacket *cspt) +{ + return cspt->csMasterRx; +} +void SetSlaveTx(struct CSInfoPacket *cspt, BYTE tx) +{ + cspt->csSlaveTx = tx; +} +BYTE GetSlaveTx(struct CSInfoPacket *cspt) +{ + return cspt->csSlaveTx; +} +void SetSlaveRx(struct CSInfoPacket *cspt, BYTE rx) +{ + cspt->csSlaveRx = rx; +} +BYTE GetSlaveRx(struct CSInfoPacket *cspt) +{ + return cspt->csSlaveRx; +} +void Initialize(struct CSInfoPacket *cspt, BYTE bRegCfg) +{ + cspt->csType = (enum CS_TYPE)(bRegCfg & 0x3F); + cspt->csDirection = (enum CS_DIRECTION)(bRegCfg & 0x40); + cspt->csS0Role = (enum CD_S0_ROLE)(bRegCfg & 0x80); + cspt->csMasterAddr = 0x70; + cspt->csSalveAddr = 0x72; + cspt->csMarterTx = 0; + cspt->csMasterRx = 0; + cspt->csSlaveTx = 0; + cspt->csSlaveRx = 0; +} +void CSInfoPacket(struct CSInfoPacket *cspt) +{ + cspt->csType = CS_SINGLE_CHIP; + cspt->csDirection = CS_UP_DOWN; + cspt->csS0Role = CS_S0_AS_MASTER; + cspt->csMasterAddr = 0x72; + cspt->csSalveAddr = 0x70; + cspt->csMarterTx = 0; + cspt->csMasterRx = 0; + cspt->csSlaveTx = 0; + cspt->csSlaveRx = 0; +} + + +void ReleaseCSInfo(struct FT8006 *g_FT8006) +{ + + memset(g_FT8006->m_csInfo, 0, sizeof(struct CSInfoPacket)); + +} + +void UpDateCSInfo(struct FT8006 *g_FT8006) +{ + unsigned char ReCode = ERROR_CODE_OK, RegValue = 0; + + ReCode = Ft8006m_ReadReg(0x26, &RegValue); + Initialize(g_FT8006->m_csInfo, RegValue); + + ReCode = Ft8006m_ReadReg(0x50, &RegValue); + SetMasterTx(g_FT8006->m_csInfo, RegValue); + + ReCode = Ft8006m_ReadReg(0x51, &RegValue); + SetMasterRx(g_FT8006->m_csInfo, RegValue); + + ReCode = Ft8006m_ReadReg(0x52, &RegValue); + SetSlaveTx(g_FT8006->m_csInfo, RegValue); + + ReCode = Ft8006m_ReadReg(0x53, &RegValue); + SetSlaveRx(g_FT8006->m_csInfo, RegValue); + + ReCode = Ft8006m_WriteReg(0x17, 0); + ReCode = Ft8006m_ReadReg(0x81, &RegValue); + SetMasterAddr(g_FT8006->m_csInfo, RegValue); + + ReCode = Ft8006m_WriteReg(0x17, 12); + ReCode = Ft8006m_ReadReg(0x81, &RegValue); + SetSlaveAddr(g_FT8006->m_csInfo, RegValue); + + FTS_TEST_DBG("csType = %d, csDirection = %d, csS0Role = %d, csMasterAddr = 0x%x, csSalveAddr = 0x%x,\ + csMarterTx = %d, csMasterRx = %d, csSlaveTx = %d, csSlaveRx = %d.", + g_FT8006->m_csInfo->csType, + g_FT8006->m_csInfo->csDirection, + g_FT8006->m_csInfo->csS0Role, + g_FT8006->m_csInfo->csMasterAddr, + g_FT8006->m_csInfo->csSalveAddr, + g_FT8006->m_csInfo->csMarterTx, + g_FT8006->m_csInfo->csMasterRx, + g_FT8006->m_csInfo->csSlaveTx, + g_FT8006->m_csInfo->csSlaveRx + ); + +} + +bool ChipHasTwoHeart(struct FT8006 *g_FT8006) +{ + if (GetCSType(g_FT8006->m_csInfo) == CS_SINGLE_CHIP) + return false; + + return true; +} +void CSChipAddrMgr_Init(struct CSChipAddrMgr *pMgr, struct FT8006 *parent) +{ + + pMgr->m_parent = parent; + pMgr->m_slaveAddr = GetCurrentAddr(parent); + +} + +void CSChipAddrMgr_Exit(struct CSChipAddrMgr *pMgr) +{ + + if (pMgr->m_slaveAddr != GetCurrentAddr(pMgr->m_parent)) { + + HY_SetSlaveAddr(pMgr->m_parent, pMgr->m_slaveAddr); + } + + +} + +int HY_SetSlaveAddr(struct FT8006 *g_FT8006, BYTE SlaveAddr) +{ + unsigned char value = 0; + unsigned char ReCode = ERROR_CODE_OK; + int tmp = 0; + + g_FT8006->m_currentSlaveAddr = SlaveAddr; + tmp = ft8006m_i2c_client->addr; + + FTS_TEST_DBG("Original i2c addr 0x%x ", ft8006m_i2c_client->addr); + FTS_TEST_DBG("CurrentAddr 0x%x ", (SlaveAddr>>1)); + + if (ft8006m_i2c_client->addr != (SlaveAddr>>1)) { + ft8006m_i2c_client->addr = (SlaveAddr>>1); + FTS_TEST_DBG("Change i2c addr 0x%x to 0x%x", tmp, ft8006m_i2c_client->addr); + } + + + ReCode = Ft8006m_ReadReg(0x20, &value); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("[focal] Ft8006m_ReadReg Error, code: %d ", ReCode); + } else { + FTS_TEST_DBG("[focal] Ft8006m_ReadReg successed, Addr: 0x20, value: 0x%02x ", value); + } + + + return 0; +} + +void WorkAsMaster(struct CSChipAddrMgr *pMgr) +{ + struct CSInfoPacket *pcs = GetCSInfo(pMgr->m_parent); + + if (GetMasterAddr(pcs) != GetCurrentAddr(pMgr->m_parent)) { + HY_SetSlaveAddr(pMgr->m_parent, GetMasterAddr(pcs)); + } + +} + +void WorkAsSlave(struct CSChipAddrMgr *pMgr) +{ + struct CSInfoPacket *pcs = GetCSInfo(pMgr->m_parent); + + if (GetSlaveAddr(pcs) != GetCurrentAddr(pMgr->m_parent)) { + HY_SetSlaveAddr(pMgr->m_parent, GetSlaveAddr(pcs)); + } +} + +void CatSingleToOneScreen(struct FT8006 *g_FT8006) +{ + int leftChannelNum = 0, rightChannelNum = 0; + int upChannelNum = 0, downChannelNum = 0; + unsigned char splitRx = 0; + unsigned char splitTx = 0; + int iRow = 0, iCol = 0; + int iRelativeRx = 0; + int iRelativeTx = 0; + int iTotalRx = 0; + int iTotalTx = 0; + int *bufferLeft = NULL; + int *bufferRight = NULL; + int *bufferUp = NULL; + int *bufferDown = NULL; + + FTS_TEST_FUNC_ENTER(); + + + if (CS_SINGLE_CHIP == GetCSType(g_FT8006->m_csInfo)) + return; + + + if (CS_LEFT_RIGHT == GetCSDirection(g_FT8006->m_csInfo)) { + bufferLeft = Ft8006m_fts_malloc(TX_NUM_MAX * RX_NUM_MAX*sizeof(int)); + bufferRight = Ft8006m_fts_malloc(TX_NUM_MAX * RX_NUM_MAX*sizeof(int)); + + if (CS_S0_AS_MASTER == GetS0Role(g_FT8006->m_csInfo)) { + splitRx = GetMasterRx(g_FT8006->m_csInfo); + bufferLeft = bufferMaster; + bufferRight = bufferSlave; + leftChannelNum = GetMasterTx(g_FT8006->m_csInfo) * GetMasterRx(g_FT8006->m_csInfo); + rightChannelNum = GetSlaveTx(g_FT8006->m_csInfo) * GetSlaveRx(g_FT8006->m_csInfo); + } else { + splitRx = GetSlaveRx(g_FT8006->m_csInfo); + bufferLeft = bufferSlave; + bufferRight = bufferMaster; + leftChannelNum = GetSlaveTx(g_FT8006->m_csInfo) * GetSlaveRx(g_FT8006->m_csInfo); + rightChannelNum = GetMasterTx(g_FT8006->m_csInfo) * GetMasterRx(g_FT8006->m_csInfo); + } + + for (iRow = 0; iRow < GetMasterTx(g_FT8006->m_csInfo); ++iRow) { + for (iCol = 0; iCol < GetMasterRx(g_FT8006->m_csInfo) + GetSlaveRx(g_FT8006->m_csInfo); ++iCol) { + iRelativeRx = iCol - splitRx; + iTotalRx = GetMasterRx(g_FT8006->m_csInfo) + GetSlaveRx(g_FT8006->m_csInfo); + if (iCol >= splitRx) { + + bufferCated[iRow * iTotalRx + iCol] = bufferRight[iRow * (iTotalRx - splitRx) + iRelativeRx]; + } else { + + bufferCated[iRow * iTotalRx + iCol] = bufferLeft[iRow * splitRx + iCol]; + } + } + } + + memcpy(bufferCated + GetMasterTx(g_FT8006->m_csInfo) * (GetMasterRx(g_FT8006->m_csInfo) + GetSlaveRx(g_FT8006->m_csInfo)), bufferLeft + leftChannelNum, 6); + memcpy(bufferCated + GetMasterTx(g_FT8006->m_csInfo) * (GetMasterRx(g_FT8006->m_csInfo) + GetSlaveRx(g_FT8006->m_csInfo)) + 6, bufferRight + rightChannelNum, 6); + } + + else if (CS_UP_DOWN == GetCSDirection(g_FT8006->m_csInfo)) { + bufferUp = Ft8006m_fts_malloc(TX_NUM_MAX * RX_NUM_MAX*sizeof(int)); + bufferDown = Ft8006m_fts_malloc(TX_NUM_MAX * RX_NUM_MAX*sizeof(int)); + + if (CS_S0_AS_MASTER == GetS0Role(g_FT8006->m_csInfo)) { + splitTx = GetMasterTx(g_FT8006->m_csInfo); + bufferUp = bufferMaster; + bufferDown = bufferSlave; + upChannelNum = GetMasterTx(g_FT8006->m_csInfo) * GetMasterRx(g_FT8006->m_csInfo); + downChannelNum = GetSlaveTx(g_FT8006->m_csInfo) * GetSlaveRx(g_FT8006->m_csInfo); + } else { + splitTx = GetSlaveTx(g_FT8006->m_csInfo); + bufferUp = bufferSlave; + bufferDown = bufferMaster; + upChannelNum = GetSlaveTx(g_FT8006->m_csInfo) * GetSlaveRx(g_FT8006->m_csInfo); + downChannelNum = GetMasterTx(g_FT8006->m_csInfo) * GetMasterRx(g_FT8006->m_csInfo); + } + for (iRow = 0; iRow < GetMasterTx(g_FT8006->m_csInfo) + GetSlaveTx(g_FT8006->m_csInfo); ++iRow) { + for (iCol = 0; iCol < GetMasterRx(g_FT8006->m_csInfo); ++iCol) { + iRelativeTx = iRow - splitTx; + iTotalTx = GetMasterTx(g_FT8006->m_csInfo) + GetSlaveTx(g_FT8006->m_csInfo); + if (iRow >= splitTx) { + + bufferCated[iRow * GetMasterRx(g_FT8006->m_csInfo) + iCol] = bufferDown[iRelativeTx * GetMasterRx(g_FT8006->m_csInfo) + iCol]; + } else { + + bufferCated[iRow * GetMasterRx(g_FT8006->m_csInfo) + iCol] = bufferUp[iRow * GetMasterRx(g_FT8006->m_csInfo) + iCol]; + } + } + } + + memcpy(bufferCated + (GetMasterTx(g_FT8006->m_csInfo) + GetSlaveTx(g_FT8006->m_csInfo)) * GetMasterRx(g_FT8006->m_csInfo), bufferUp + upChannelNum, 6); + memcpy(bufferCated + (GetMasterTx(g_FT8006->m_csInfo) + GetSlaveTx(g_FT8006->m_csInfo)) * GetMasterRx(g_FT8006->m_csInfo) + 6, bufferDown + downChannelNum, 6); + } + + + if (bufferLeft != NULL) { + Ft8006m_fts_free(bufferLeft); + } + if (bufferRight != NULL) { + Ft8006m_fts_free(bufferRight); + } + if (bufferUp != NULL) { + Ft8006m_fts_free(bufferUp); + } + if (bufferDown != NULL) { + Ft8006m_fts_free(bufferDown); + } + + FTS_TEST_FUNC_EXIT(); + +} + +/************************************************************************ +* Name: FT8006_TestItem_EnterFactoryMode +* Brief: Check whether TP can enter Factory Mode, and do some thing +* Input: none +* Output: none +* Return: Comm Code. Code = 0x00 is OK, else fail. +***********************************************************************/ +unsigned char FT8006_TestItem_EnterFactoryMode(struct FT8006 *g_FT8006) +{ + + unsigned char ReCode = ERROR_CODE_INVALID_PARAM; + int iRedo = 5; + int i ; + Ft8006m_SysDelay(150); + FTS_TEST_DBG("Enter factory mode..."); + for (i = 1; i <= iRedo; i++) { + ReCode = FT8006_EnterFactory(g_FT8006); + if (ERROR_CODE_OK != ReCode) { + FTS_TEST_ERROR("Failed to Enter factory mode..."); + if (i < iRedo) { + Ft8006m_SysDelay(50); + continue; + } + } else { + FTS_TEST_DBG(" success to Enter factory mode..."); + break; + } + + } + Ft8006m_SysDelay(300); + + if (ReCode == ERROR_CODE_OK) { + ReCode = GetChannelNum(); + + } + return ReCode; +} + +/************************************************************************ +* Name: FT8006_TestItem_RawDataTest +* Brief: TestItem: RawDataTest. Check if MCAP RawData is within the range. +* Input: bTestResult +* Output: bTestResult, PASS or FAIL +* Return: Comm Code. Code = 0x00 is OK, else fail. +***********************************************************************/ +unsigned char FT8006_TestItem_RawDataTest(struct FT8006 *g_FT8006, bool *bTestResult) +{ + unsigned char ReCode; + bool btmpresult = true; + int RawDataMin; + int RawDataMax; + int iValue = 0; + int i = 0; + int iRow, iCol; + + + FTS_TEST_INFO("\n\n==============================Test Item: -------- Raw Data Test\n"); + + + + for (i = 0 ; i < 3; i++) { + ReCode = GetRawData(g_FT8006); + } + + if (ERROR_CODE_OK != ReCode) { + FTS_TEST_ERROR("Failed to get Raw Data!! Error Code: %d", ReCode); + return ReCode; + } + + + + FTS_TEST_DBG("\nVA Channels: "); + for (iRow = 0; iRow < ft8006m_g_stSCapConfEx.ChannelXNum; iRow++) { + FTS_TEST_DBG("\nCh_%02d: ", iRow+1); + for (iCol = 0; iCol < ft8006m_g_stSCapConfEx.ChannelYNum; iCol++) { + FTS_TEST_DBG("%5d, ", m_RawData[iRow][iCol]); + } + } + + FTS_TEST_DBG("\nKeys: "); + for (iCol = 0; iCol < ft8006m_g_stSCapConfEx.KeyNumTotal; iCol++) + FTS_TEST_DBG("%5d, ", m_RawData[ft8006m_g_stSCapConfEx.ChannelXNum][iCol]); + + + + + + + + for (iRow = 0; iRow < ft8006m_g_stSCapConfEx.ChannelXNum; iRow++) { + + for (iCol = 0; iCol < ft8006m_g_stSCapConfEx.ChannelYNum; iCol++) { + if (ft8006m_g_stCfg_Incell_DetailThreshold.InvalidNode[iRow][iCol] == 0) + continue; + RawDataMin = ft8006m_g_stCfg_Incell_DetailThreshold.RawDataTest_Min[iRow][iCol]; + RawDataMax = ft8006m_g_stCfg_Incell_DetailThreshold.RawDataTest_Max[iRow][iCol]; + iValue = m_RawData[iRow][iCol]; + + if (iValue < RawDataMin || iValue > RawDataMax) { + btmpresult = false; + FTS_TEST_ERROR("rawdata test failure. Node=(%d, %d), Get_value=%d, Set_Range=(%d, %d) ", \ + iRow+1, iCol+1, iValue, RawDataMin, RawDataMax); + } + } + } + + + + iRow = ft8006m_g_stSCapConfEx.ChannelXNum; + for (iCol = 0; iCol < ft8006m_g_stSCapConfEx.KeyNumTotal; iCol++) { + if (ft8006m_g_stCfg_Incell_DetailThreshold.InvalidNode[iRow][iCol] == 0) + continue; + RawDataMin = ft8006m_g_stCfg_Incell_DetailThreshold.RawDataTest_Min[iRow][iCol]; + RawDataMax = ft8006m_g_stCfg_Incell_DetailThreshold.RawDataTest_Max[iRow][iCol]; + iValue = m_RawData[iRow][iCol]; + + if (iValue < RawDataMin || iValue > RawDataMax) { + btmpresult = false; + FTS_TEST_ERROR("rawdata test failure. Node=(%d, %d), Get_value=%d, Set_Range=(%d, %d) ", \ + iRow+1, iCol+1, iValue, RawDataMin, RawDataMax); + } + } + + + + + Ft8006m_TestResultLen += sprintf(Ft8006m_TestResult+Ft8006m_TestResultLen, "RawData Test is %s. \n\n", (btmpresult ? "OK" : "NG")); + + + Save_Test_Data(m_RawData, 0, ft8006m_g_stSCapConfEx.ChannelXNum+1, ft8006m_g_stSCapConfEx.ChannelYNum, 1); + + if (btmpresult) { + *bTestResult = true; + FTS_TEST_INFO("\n\n//RawData Test is OK!"); + } else { + *bTestResult = false; + FTS_TEST_INFO("\n\n//RawData Test is NG!"); + } + return ReCode; +} + + +/************************************************************************ +* Name: FT8006_TestItem_CbTest +* Brief: TestItem: Cb Test. Check if Cb is within the range. +* Input: none +* Output: bTestResult, PASS or FAIL +* Return: Comm Code. Code = 0x00 is OK, else fail. +***********************************************************************/ +unsigned char FT8006_TestItem_CbTest(struct FT8006 *g_FT8006, bool *bTestResult) +{ + bool btmpresult = true; + unsigned char ReCode = ERROR_CODE_OK; + int iRow = 0; + int iCol = 0; + int i = 0; + int iMaxValue = 0; + int iMinValue = 0; + int iValue = 0; + bool bIncludeKey = false; + unsigned char bClbResult = 0; + + + bIncludeKey = g_stCfg_FT8006_BasicThreshold.bCBTest_VKey_Check; + + FTS_TEST_INFO("\n\n==============================Test Item: -------- CB Test\n"); + + for (i = 0; i < 10; i++) { + ReCode = FT8006_ChipClb(g_FT8006, &bClbResult); + Ft8006m_SysDelay(50); + if (0 != bClbResult) { + break; + } + } + if (false == bClbResult) { + FTS_TEST_ERROR("\r\nReCalib Failed\r\n"); + btmpresult = false; + } + + ReCode = FT8006_GetTxRxCB(g_FT8006, 0, (short)(ft8006m_g_stSCapConfEx.ChannelXNum * ft8006m_g_stSCapConfEx.ChannelYNum + ft8006m_g_stSCapConfEx.KeyNumTotal), m_ucTempData); + if (ERROR_CODE_OK != ReCode) { + btmpresult = false; + FTS_TEST_ERROR("\nFailed to get CB value...\n"); + goto TEST_ERR; + } + + memset(m_CBData, 0, sizeof(m_CBData)); + + for (iRow = 0; iRow < ft8006m_g_stSCapConfEx.ChannelXNum; ++iRow) { + for (iCol = 0; iCol < ft8006m_g_stSCapConfEx.ChannelYNum; ++iCol) { + m_CBData[iRow][iCol] = m_ucTempData[iRow * ft8006m_g_stSCapConfEx.ChannelYNum + iCol]; + } + } + + for (iCol = 0; iCol < ft8006m_g_stSCapConfEx.KeyNumTotal; ++iCol) { + m_CBData[ft8006m_g_stSCapConfEx.ChannelXNum][iCol] = m_ucTempData[ft8006m_g_stSCapConfEx.ChannelXNum*ft8006m_g_stSCapConfEx.ChannelYNum + iCol]; + + } + + + + + + + FTS_TEST_DBG("\nVA Channels: "); + for (iRow = 0; iRow < ft8006m_g_stSCapConfEx.ChannelXNum; iRow++) { + FTS_TEST_DBG("\nCh_%02d: ", iRow+1); + for (iCol = 0; iCol < ft8006m_g_stSCapConfEx.ChannelYNum; iCol++) { + FTS_TEST_DBG("%3d, ", m_CBData[iRow][iCol]); + } + } + + FTS_TEST_DBG("\nKeys: "); + for (iCol = 0; iCol < ft8006m_g_stSCapConfEx.KeyNumTotal; iCol++) + FTS_TEST_DBG("%3d, ", m_CBData[ft8006m_g_stSCapConfEx.ChannelXNum][iCol]); + + + + + + + + for (iRow = 0; iRow < ft8006m_g_stSCapConfEx.ChannelXNum; iRow++) { + for (iCol = 0; iCol < ft8006m_g_stSCapConfEx.ChannelYNum; iCol++) { + if ((0 == ft8006m_g_stCfg_Incell_DetailThreshold.InvalidNode[iRow][iCol])) { + continue; + } + iMinValue = ft8006m_g_stCfg_Incell_DetailThreshold.CBTest_Min[iRow][iCol]; + iMaxValue = ft8006m_g_stCfg_Incell_DetailThreshold.CBTest_Max[iRow][iCol]; + iValue = ft8006m_focal_abs(m_CBData[iRow][iCol]); + + if (iValue < iMinValue || iValue > iMaxValue) { + btmpresult = false; + FTS_TEST_ERROR("CB test failure. Node=(%d, %d), Get_value=%d, Set_Range=(%d, %d) ", \ + iRow+1, iCol+1, iValue, iMinValue, iMaxValue); + } + } + } + + + if (bIncludeKey) { + + iRow = ft8006m_g_stSCapConfEx.ChannelXNum; + for (iCol = 0; iCol < ft8006m_g_stSCapConfEx.KeyNumTotal; iCol++) { + if (ft8006m_g_stCfg_Incell_DetailThreshold.InvalidNode[iRow][iCol] == 0) { + continue; + } + iMinValue = ft8006m_g_stCfg_Incell_DetailThreshold.CBTest_Min[iRow][iCol]; + iMaxValue = ft8006m_g_stCfg_Incell_DetailThreshold.CBTest_Max[iRow][iCol]; + iValue = ft8006m_focal_abs(m_CBData[iRow][iCol]); + if (iValue < iMinValue || iValue > iMaxValue) { + btmpresult = false; + FTS_TEST_ERROR("CB test failure. Node=(%d, %d), Get_value=%d, Set_Range=(%d, %d) ", \ + iRow+1, iCol+1, iValue, iMinValue, iMaxValue); + } + } + + + } + + Ft8006m_TestResultLen += sprintf(Ft8006m_TestResult+Ft8006m_TestResultLen, "CB Test is %s. \n\n", (btmpresult ? "OK" : "NG")); + + + Save_Test_Data(m_CBData, 0, ft8006m_g_stSCapConfEx.ChannelXNum+1, ft8006m_g_stSCapConfEx.ChannelYNum, 1); + + if (btmpresult) { + *bTestResult = true; + FTS_TEST_INFO("\n\n//CB Test is OK!"); + } else { + *bTestResult = false; + FTS_TEST_INFO("\n\n//CB Test is NG!"); + } + + return ReCode; + +TEST_ERR: + + *bTestResult = false; + FTS_TEST_INFO("\n\n//CB Test is NG!"); + Ft8006m_TestResultLen += sprintf(Ft8006m_TestResult+Ft8006m_TestResultLen, "CB Test is NG. \n\n"); + return ReCode; +} + + +/************************************************************************ +* Name: FT8006_TestItem_ChannelsTest +* Brief: Check whether TP can enter Factory Mode, and do some thing +* Input: none +* Output: none +* Return: Comm Code. Code = 0x00 is OK, else fail. +***********************************************************************/ +unsigned char FT8006_TestItem_ChannelsTest(struct FT8006 *g_FT8006, bool *bTestResult) +{ + unsigned char ReCode; + + FTS_TEST_DBG("\n\n==============================Test Item: -------- Channel Test "); + + ReCode = GetChannelNum(); + if (ReCode == ERROR_CODE_OK) { + if ((g_stCfg_FT8006_BasicThreshold.ChannelNumTest_ChannelXNum == ft8006m_g_stSCapConfEx.ChannelXNum) + && (g_stCfg_FT8006_BasicThreshold.ChannelNumTest_ChannelYNum == ft8006m_g_stSCapConfEx.ChannelYNum) + && (g_stCfg_FT8006_BasicThreshold.ChannelNumTest_KeyNum == ft8006m_g_stSCapConfEx.KeyNum)) { + *bTestResult = true; + FTS_TEST_DBG("\n\nGet channels: (CHx: %d, CHy: %d, Key: %d), Set channels: (CHx: %d, CHy: %d, Key: %d)", + ft8006m_g_stSCapConfEx.ChannelXNum, ft8006m_g_stSCapConfEx.ChannelYNum, ft8006m_g_stSCapConfEx.KeyNum, + g_stCfg_FT8006_BasicThreshold.ChannelNumTest_ChannelXNum, g_stCfg_FT8006_BasicThreshold.ChannelNumTest_ChannelYNum, g_stCfg_FT8006_BasicThreshold.ChannelNumTest_KeyNum); + + FTS_TEST_INFO("\n//Channel Test is OK!"); + } else { + *bTestResult = false; + FTS_TEST_ERROR("\n\nGet channels: (CHx: %d, CHy: %d, Key: %d), Set channels: (CHx: %d, CHy: %d, Key: %d)", + ft8006m_g_stSCapConfEx.ChannelXNum, ft8006m_g_stSCapConfEx.ChannelYNum, ft8006m_g_stSCapConfEx.KeyNum, + g_stCfg_FT8006_BasicThreshold.ChannelNumTest_ChannelXNum, g_stCfg_FT8006_BasicThreshold.ChannelNumTest_ChannelYNum, g_stCfg_FT8006_BasicThreshold.ChannelNumTest_KeyNum); + + FTS_TEST_INFO("\n//Channel Test is NG!"); + } + } + + + Ft8006m_TestResultLen += sprintf(Ft8006m_TestResult+Ft8006m_TestResultLen, "Channel Test is %s. \n\n", (*bTestResult ? "OK" : "NG")); + + return ReCode; +} + +/************************************************************************ +* Name: FT8006_CheckItem_FactoryIdTest +* Brief: Factory Id Testt. +* Input: none +* Output: none +* Return: Comm Code. Code = 0x00 is OK, else fail. +***********************************************************************/ +unsigned char FT8006_CheckItem_FactoryIdTest(struct FT8006 *g_FT8006, bool *bTestResult) +{ + unsigned char ReCode = ERROR_CODE_OK; + bool btmpresult = true; + unsigned char regData = 0; + unsigned char FactoryId = 0; + + FTS_TEST_INFO("\n\n==============================Test Item: -------- Factory Id Test\n"); + + ReCode = Ft8006m_EnterWork(); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR(" EnterWork failed.. Error Code: %d \n", ReCode); + btmpresult = false; + goto TEST_ERR; + } + + + Ft8006m_SysDelay(60); + ReCode = Ft8006m_ReadReg(REG_FACTORYID, ®Data); + + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR(" Failed to Read Register: %x. Error Code: %d \n", REG_FACTORYID, ReCode); + goto TEST_ERR; + } + + FactoryId = g_stCfg_FT8006_BasicThreshold.Factory_ID_Number; + + FTS_TEST_DBG("\r\nGet FactoryId:0x%02x, Set FactoryId: 0x%02x \n", regData, FactoryId); + + if (FactoryId == regData) { + btmpresult = true; + + } else { + btmpresult = false; + } + + Ft8006m_TestResultLen += sprintf(Ft8006m_TestResult+Ft8006m_TestResultLen, " FactoryId Test is %s. \n\n", (btmpresult ? "OK" : "NG")); + + if (btmpresult) { + *bTestResult = true; + FTS_TEST_INFO("\n\n//FactoryId Test is OK!"); + } else { + *bTestResult = false; + FTS_TEST_INFO("\n\n//FactoryId Test is NG!"); + } + return ReCode; + +TEST_ERR: + *bTestResult = false; + FTS_TEST_INFO("\n\n//FactoryId Test is NG!"); + + Ft8006m_TestResultLen += sprintf(Ft8006m_TestResult+Ft8006m_TestResultLen, " FactoryId Test is NG. \n\n"); + + return ReCode; +} + + +unsigned char FT8006_TestItem_ShortCircuitTest(struct FT8006 *g_FT8006, bool *bTestResult) +{ + unsigned char ReCode = ERROR_CODE_OK; + bool bTempResult = true; + int ResMin = 0; + int iAllAdcDataNum = 0; + unsigned char iTxNum = 0, iRxNum = 0, iChannelNum = 0; + int iRow = 0, iCol = 0; + int tmpAdc = 0; + int iValueMin = 0; + int iValueMax = 0; + int iValue = 0; + int i = 0; + + FTS_TEST_INFO("\r\n\r\n==============================Test Item: -------- Short Circuit Test \r\n"); + + ReCode = FT8006_EnterFactory(g_FT8006); + if (ERROR_CODE_OK != ReCode) { + bTempResult = false; + FTS_TEST_ERROR("\r\n\r\n// Failed to Enter factory mode. Error Code: %d", ReCode); + goto TEST_END; + } + + ResMin = g_stCfg_FT8006_BasicThreshold.ShortCircuit_ResMin; + ReCode = Ft8006m_ReadReg(0x02, &iTxNum); + ReCode = Ft8006m_ReadReg(0x03, &iRxNum); + if (ERROR_CODE_OK != ReCode) { + bTempResult = false; + FTS_TEST_ERROR("\r\n\r\n// Failed to read reg. Error Code: %d", ReCode); + goto TEST_END; + } + + iChannelNum = iTxNum + iRxNum; + iAllAdcDataNum = iTxNum * iRxNum + ft8006m_g_stSCapConfEx.KeyNumTotal; + memset(iAdcData, 0, sizeof(iAdcData)); + + for (i = 0; i < 1; i++) { + ReCode = FT8006_WeakShort_GetAdcData(g_FT8006, iAllAdcDataNum*2, iAdcData); + Ft8006m_SysDelay(50); + if (ERROR_CODE_OK != ReCode) { + bTempResult = false; + FTS_TEST_ERROR("\r\n\r\n// Failed to get AdcData. Error Code: %d", ReCode); + goto TEST_END; + } + } + + + FTS_TEST_DBG("shortRes data:\n"); + for (iRow = 0; iRow < ft8006m_g_stSCapConfEx.ChannelXNum + 1; ++iRow) { + for (iCol = 0; iCol < ft8006m_g_stSCapConfEx.ChannelYNum; ++iCol) { + tmpAdc = iAdcData[iRow * iRxNum + iCol]; + if (tmpAdc > 4050) + tmpAdc = 4050; + shortRes[iRow][iCol] = (tmpAdc * 100) / (4095 - tmpAdc); + + FTS_TEST_DBG("%-4d ", shortRes[iRow][iCol]); + } + FTS_TEST_DBG(" \n"); + } + FTS_TEST_DBG(" \n"); + + + + + iValueMin = ResMin; + iValueMax = 100000000; + FTS_TEST_DBG(" Short Circuit test , Set_Range=(%d, %d). \n", \ + iValueMin, iValueMax); + + for (iRow = 0; iRow < ft8006m_g_stSCapConfEx.ChannelXNum; iRow++) { + for (iCol = 0; iCol < ft8006m_g_stSCapConfEx.ChannelYNum; iCol++) { + if (ft8006m_g_stCfg_MCap_DetailThreshold.InvalidNode[iRow][iCol] == 0) + continue; + + iValue = shortRes[iRow][iCol]; + if (iValue < iValueMin || iValue > iValueMax) { + bTempResult = false; + FTS_TEST_ERROR(" Short Circuit test failure. Node=(%d, %d), Get_value=%d, Set_Range=(%d, %d). \n", \ + iRow+1, iCol+1, iValue, iValueMin, iValueMax); + } + } + } + +TEST_END: + + if (bTempResult) { + FTS_TEST_INFO("\r\n\r\n//Short Circuit Test is OK!"); + *bTestResult = true; + } else { + FTS_TEST_INFO("\r\n\r\n//Short Circuit Test is NG!"); + *bTestResult = false; + } + + Ft8006m_TestResultLen += sprintf(Ft8006m_TestResult+Ft8006m_TestResultLen, "Short Circuit Test is %s. \n\n", (bTempResult ? "OK" : "NG")); + + return ReCode; +} +unsigned char FT8006_TestItem_LCDNoiseTest(struct FT8006 *g_FT8006, bool *bTestResult) +{ + unsigned char ReCode = ERROR_CODE_OK; + bool bResultFlag = true; + unsigned char oldMode = 0; + int iRetry = 0; + unsigned char status = 0xff; + int iRow = 0, iCol = 0; + int index = 0; + unsigned char chNoiseValue = 0xff; + int iValueMin = 0; + int iValueMax = 0; + int iValue = 0; + + FTS_TEST_INFO("\r\n\r\n==============================Test Item: -------- LCD Noise Test \r\n"); + + + Ft8006m_ReadReg(0x06, &oldMode); + FT8006_WriteReg(g_FT8006, 0x06, 1); + + + ReCode = FT8006_WriteReg(g_FT8006, REG_8006_LCD_NOISE_FRAME, g_stCfg_FT8006_BasicThreshold.iLCDNoiseTestFrame & 0xff); + ReCode = FT8006_WriteReg(g_FT8006, REG_8006_LCD_NOISE_FRAME+1, (g_stCfg_FT8006_BasicThreshold.iLCDNoiseTestFrame >> 8) & 0xff); + + + ReCode = FT8006_WriteReg(g_FT8006, 0x01, 0xAD); + + + ReCode = FT8006_WriteReg(g_FT8006, REG_8006_LCD_NOISE_START, 0x01); + + + for (iRetry = 0; iRetry < 50; ++iRetry) { + + ReCode = Ft8006m_ReadReg(REG_8006_LCD_NOISE_START, &status); + if (status == 0x00) + break; + Ft8006m_SysDelay(500); + } + + if (iRetry == 50) { + bResultFlag = false; + FTS_TEST_ERROR("\r\nScan Noise Time Out!"); + goto TEST_END; + } + + + memset(m_RawData, 0, sizeof(m_RawData)); + memset(ScreenNoiseData, 0, sizeof(ScreenNoiseData)); + + ReadBytesByKey(0x6A, ft8006m_g_stSCapConfEx.ChannelXNum * ft8006m_g_stSCapConfEx.ChannelYNum * 2 + ft8006m_g_stSCapConfEx.KeyNumTotal * 2, ScreenNoiseData); + for (iRow = 0; iRow < ft8006m_g_stSCapConfEx.ChannelXNum; ++iRow) { + for (iCol = 0; iCol < ft8006m_g_stSCapConfEx.ChannelYNum; ++iCol) { + index = iRow * ft8006m_g_stSCapConfEx.ChannelYNum + iCol; + m_RawData[iRow][iCol] = (int)(short)((ScreenNoiseData[index * 2] << 8) + ScreenNoiseData[index * 2 + 1]); + } + } + + for (iCol = 0; iCol < ft8006m_g_stSCapConfEx.KeyNumTotal; ++iCol) { + index = ft8006m_g_stSCapConfEx.ChannelXNum * ft8006m_g_stSCapConfEx.ChannelYNum + iCol; + m_RawData[ft8006m_g_stSCapConfEx.ChannelXNum][iCol] = (int)(short)((ScreenNoiseData[index * 2] << 8) + ScreenNoiseData[index * 2 + 1]); + } + + ReCode = FT8006_EnterWork(g_FT8006); + Ft8006m_SysDelay(100); + ReCode = Ft8006m_ReadReg(0x80, &chNoiseValue); + ReCode = FT8006_EnterFactory(g_FT8006); + Ft8006m_SysDelay(100); + + for (iRow = 0; iRow < ft8006m_g_stSCapConfEx.ChannelXNum + 1; ++iRow) { + for (iCol = 0; iCol < ft8006m_g_stSCapConfEx.ChannelYNum; ++iCol) { + LCD_Noise[iRow][iCol] = ft8006m_focal_abs(m_RawData[iRow][iCol]); + } + } + + FTS_TEST_DBG("\nVA Channels: "); + for (iRow = 0; iRow < ft8006m_g_stSCapConfEx.ChannelXNum+1; ++iRow) { + FTS_TEST_DBG("\nCh_%02d: ", iRow+1); + for (iCol = 0; iCol < ft8006m_g_stSCapConfEx.ChannelYNum; ++iCol) { + + FTS_TEST_DBG("%4d, ", LCD_Noise[iRow][iCol]); + } + } + FTS_TEST_DBG("\n"); + + iValueMin = 0; + iValueMax = g_stCfg_FT8006_BasicThreshold.iLCDNoiseCoefficient * chNoiseValue * 32 / 100; + + for (iRow = 0; iRow < ft8006m_g_stSCapConfEx.ChannelXNum+1; iRow++) { + for (iCol = 0; iCol < ft8006m_g_stSCapConfEx.ChannelYNum; iCol++) { + if (ft8006m_g_stCfg_MCap_DetailThreshold.InvalidNode[iRow][iCol] == 0) + continue; + + iValue = LCD_Noise[iRow][iCol]; + if (iValue < iValueMin || iValue > iValueMax) { + bResultFlag = false; + FTS_TEST_ERROR(" LCD Noise test failure. Node=(%d, %d), Get_value=%d, Set_Range=(%d, %d). \n", + iRow+1, iCol+1, iValue, iValueMin, iValueMax); + } + } + } + + Save_Test_Data(LCD_Noise, 0, ft8006m_g_stSCapConfEx.ChannelXNum, ft8006m_g_stSCapConfEx.ChannelYNum, 1); + + +TEST_END: + + FT8006_WriteReg(g_FT8006, 0x06, oldMode); + Ft8006m_SysDelay(20); + + if (bResultFlag) { + FTS_TEST_INFO("\r\n\r\n//LCD Noise Test is OK!"); + *bTestResult = true; + } else { + FTS_TEST_INFO("\r\n\r\n//LCD Noise Test is NG!"); + *bTestResult = false; + } + + Ft8006m_TestResultLen += sprintf(Ft8006m_TestResult+Ft8006m_TestResultLen, "LCD Noise Test is %s. \n\n", (bResultFlag ? "OK" : "NG")); + + return ReCode; +} + + +static unsigned char ChipClb(unsigned char *pClbResult) +{ + unsigned char RegData = 0; + unsigned char TimeOutTimes = 50; + unsigned char ReCode = ERROR_CODE_OK; + + ReCode = Ft8006m_WriteReg(REG_CLB, 4); + + if (ReCode == ERROR_CODE_OK) { + while (TimeOutTimes--) { + Ft8006m_SysDelay(100); + ReCode = Ft8006m_WriteReg(DEVIDE_MODE_ADDR, 0x04<<4); + ReCode = Ft8006m_ReadReg(0x04, &RegData); + if (ReCode == ERROR_CODE_OK) { + if (RegData == 0x02) { + *pClbResult = 1; + break; + } + } else { + break; + } + } + + if (TimeOutTimes == 0) { + *pClbResult = 0; + } + } + return ReCode; +} +/************************************************************************ +* Name: FT8006M_get_test_data +* Brief: get data of test result +* Input: none +* Output: pTestData, the returned buff +* Return: the length of test data. if length > 0, got data;else ERR. +***********************************************************************/ +int FT8006M_get_test_data(char *pTestData) +{ + if (NULL == pTestData) { + FTS_TEST_DBG(" pTestData == NULL "); + return -EPERM; + } + memcpy(pTestData, ft8006m_g_pStoreAllData, (ft8006m_g_lenStoreMsgArea+ft8006m_g_lenStoreDataArea)); + return (ft8006m_g_lenStoreMsgArea+ft8006m_g_lenStoreDataArea); +} + + +/************************************************************************ +* Name: Save_Test_Data +* Brief: Storage format of test data +* Input: int iData[TX_NUM_MAX][RX_NUM_MAX], int iArrayIndex, unsigned char Row, unsigned char Col, unsigned char ItemCount +* Output: none +* Return: none +***********************************************************************/ +static void Save_Test_Data(int iData[TX_NUM_MAX][RX_NUM_MAX], int iArrayIndex, unsigned char Row, unsigned char Col, unsigned char ItemCount) +{ + int iLen = 0; + int i = 0, j = 0; + + + iLen = sprintf(ft8006m_g_pTmpBuff, "NA, %d, %d, %d, %d, %d, ", \ + ft8006m_m_ucTestItemCode, Row, Col, ft8006m_m_iStartLine, ItemCount); + memcpy(ft8006m_g_pMsgAreaLine2+ft8006m_g_lenMsgAreaLine2, ft8006m_g_pTmpBuff, iLen); + ft8006m_g_lenMsgAreaLine2 += iLen; + + ft8006m_m_iStartLine += Row; + ft8006m_m_iTestDataCount++; + + + for (i = 0+iArrayIndex; (i < Row+iArrayIndex) && (i < TX_NUM_MAX); i++) { + for (j = 0; (j < Col) && (j < RX_NUM_MAX); j++) { + if (j == (Col - 1)) + iLen = sprintf(ft8006m_g_pTmpBuff, "%d, \n", iData[i][j]); + else + iLen = sprintf(ft8006m_g_pTmpBuff, "%d, ", iData[i][j]); + + memcpy(ft8006m_g_pStoreDataArea+ft8006m_g_lenStoreDataArea, ft8006m_g_pTmpBuff, iLen); + ft8006m_g_lenStoreDataArea += iLen; + } + } + +} + + +/************************************************************************ +* Name: StartScan(Same function name as FT_MultipleTest) +* Brief: Scan TP, do it before read Raw Data +* Input: none +* Output: none +* Return: Comm Code. Code = 0x00 is OK, else fail. +***********************************************************************/ +static int StartScan() +{ + unsigned char RegVal = 0x00; + unsigned char times = 0; + const unsigned char MaxTimes = 250; + unsigned char ReCode = ERROR_CODE_COMM_ERROR; + + + + ReCode = Ft8006m_ReadReg(DEVIDE_MODE_ADDR, &RegVal); + printk("hb1 :RegVal:0x%x, ReCode:0x%x\n", RegVal, ReCode); + if (ReCode == ERROR_CODE_OK) { + RegVal |= 0x80; + ReCode = Ft8006m_WriteReg(DEVIDE_MODE_ADDR, RegVal); + printk("hb2 :RegVal:0x%x, ReCode:0x%x\n", RegVal, ReCode); + if (ReCode == ERROR_CODE_OK) { + while (times++ < MaxTimes) { + Ft8006m_SysDelay(16); + ReCode = Ft8006m_ReadReg(DEVIDE_MODE_ADDR, &RegVal); + printk("hb3 :RegVal:0x%x, ReCode:0x%x, times:0x%x\n", RegVal, ReCode, times); + if (ReCode == ERROR_CODE_OK) { + if ((RegVal>>7) == 0) { + printk("hb4 :RegVal>>7:0x%x, ReCode:0x%x\n", RegVal>>7, ReCode); + break; + } + } else { + printk("hb5 :RegVal:0x%x, ReCode:0x%x\n", RegVal, ReCode); + break; + } + } + if (times < MaxTimes) { + printk("hb6 :times:0x%x, MaxTimes:0x%x ------OK\n", times, MaxTimes); + ReCode = ERROR_CODE_OK; + } else { + printk("hb6 :times:0x%x, MaxTimes:0x%x ------FAIL\n", times, MaxTimes); + ReCode = ERROR_CODE_COMM_ERROR; + } + } + } + return ReCode; + +} +/************************************************************************ +* Name: ReadRawData(Same function name as FT_MultipleTest) +* Brief: read Raw Data +* Input: Freq(No longer used, reserved), LineNum, ByteNum +* Output: pRevBuffer +* Return: Comm Code. Code = 0x00 is OK, else fail. +***********************************************************************/ +static unsigned char ReadRawData(unsigned char Freq, unsigned char LineNum, int ByteNum, int *pRevBuffer) +{ + unsigned char ReCode = ERROR_CODE_COMM_ERROR; + unsigned char I2C_wBuffer[3] = {0}; + unsigned char pReadData[ByteNum]; + + int i, iReadNum; + unsigned short BytesNumInTestMode1 = 0; + + iReadNum = ByteNum/BYTES_PER_TIME; + + if (0 != (ByteNum%BYTES_PER_TIME)) + iReadNum++; + + if (ByteNum <= BYTES_PER_TIME) { + BytesNumInTestMode1 = ByteNum; + } else { + BytesNumInTestMode1 = BYTES_PER_TIME; + } + + ReCode = Ft8006m_WriteReg(REG_LINE_NUM, LineNum); + + + + I2C_wBuffer[0] = REG_RawBuf0; + if (ReCode == ERROR_CODE_OK) { + ft8006m_focal_msleep(10); + ReCode = Ft8006m_Comm_Base_IIC_IO(I2C_wBuffer, 1, pReadData, BytesNumInTestMode1); + } + + for (i = 1; i < iReadNum; i++) { + if (ReCode != ERROR_CODE_OK) + break; + + if (i == iReadNum-1) { + ft8006m_focal_msleep(10); + ReCode = Ft8006m_Comm_Base_IIC_IO(NULL, 0, pReadData+BYTES_PER_TIME*i, ByteNum-BYTES_PER_TIME*i); + } else { + ft8006m_focal_msleep(10); + ReCode = Ft8006m_Comm_Base_IIC_IO(NULL, 0, pReadData+BYTES_PER_TIME*i, BYTES_PER_TIME); + } + + } + + if (ReCode == ERROR_CODE_OK) { + for (i = 0; i < (ByteNum>>1); i++) { + pRevBuffer[i] = (pReadData[i<<1]<<8)+pReadData[(i<<1)+1]; + } + } + + + return ReCode; + +} +static unsigned char FT8006_GetTxRxCB(struct FT8006 *g_FT8006, unsigned short StartNodeNo, unsigned short ReadNum, unsigned char *pReadBuffer) +{ + unsigned char ReCode = ERROR_CODE_OK; + struct CSChipAddrMgr mgr; + + FTS_TEST_FUNC_ENTER(); + + if (ChipHasTwoHeart(g_FT8006)) { + memset(bufferMaster, 0, sizeof(bufferMaster)); + memset(bufferSlave, 0, sizeof(bufferSlave)); + memset(bufferCated, 0, sizeof(bufferCated)); + + CSChipAddrMgr_Init(&mgr, g_FT8006); + + WorkAsMaster(&mgr); + ReCode = GetTxRxCB(0, GetMasterTx(g_FT8006->m_csInfo) * GetMasterRx(g_FT8006->m_csInfo) + 6, (unsigned char *)bufferMaster); + + + WorkAsSlave(&mgr); + ReCode = GetTxRxCB(0, GetSlaveTx(g_FT8006->m_csInfo) * GetSlaveRx(g_FT8006->m_csInfo) + 6, (unsigned char *)bufferSlave); + + CatSingleToOneScreen(g_FT8006); + + memcpy(pReadBuffer, (unsigned char *)bufferCated + StartNodeNo, ReadNum); + + CSChipAddrMgr_Exit(&mgr); + } else { + ReCode = GetTxRxCB(StartNodeNo, ReadNum, pReadBuffer); + } + + FTS_TEST_FUNC_EXIT(); + + return ReCode; +} +/************************************************************************ +* Name: GetTxRxCB(Same function name as FT_MultipleTest) +* Brief: get CB of Tx/Rx +* Input: StartNodeNo, ReadNum +* Output: pReadBuffer +* Return: Comm Code. Code = 0x00 is OK, else fail. +***********************************************************************/ +static unsigned char GetTxRxCB(unsigned short StartNodeNo, unsigned short ReadNum, unsigned char *pReadBuffer) +{ + unsigned char ReCode = ERROR_CODE_OK; + unsigned short usReturnNum = 0; + unsigned short usTotalReturnNum = 0; + unsigned char wBuffer[4] = {0}; + int i, iReadNum; + + iReadNum = ReadNum/BYTES_PER_TIME; + + if (0 != (ReadNum%BYTES_PER_TIME)) + iReadNum++; + + wBuffer[0] = REG_CbBuf0; + + usTotalReturnNum = 0; + + for (i = 1; i <= iReadNum; i++) { + if (i*BYTES_PER_TIME > ReadNum) + usReturnNum = ReadNum - (i-1)*BYTES_PER_TIME; + else + usReturnNum = BYTES_PER_TIME; + + wBuffer[1] = (StartNodeNo+usTotalReturnNum) >> 8; + wBuffer[2] = (StartNodeNo+usTotalReturnNum)&0xff; + + ReCode = Ft8006m_WriteReg(REG_CbAddrH, wBuffer[1]); + ReCode = Ft8006m_WriteReg(REG_CbAddrL, wBuffer[2]); + + ReCode = Ft8006m_Comm_Base_IIC_IO(wBuffer, 1, pReadBuffer+usTotalReturnNum, usReturnNum); + + usTotalReturnNum += usReturnNum; + + if (ReCode != ERROR_CODE_OK) + return ReCode; + + + } + + return ReCode; +} + + + + +static unsigned char GetPanelRows(unsigned char *pPanelRows) +{ + return Ft8006m_ReadReg(REG_TX_NUM, pPanelRows); +} + + + + +static unsigned char GetPanelCols(unsigned char *pPanelCols) +{ + return Ft8006m_ReadReg(REG_RX_NUM, pPanelCols); +} + + +/************************************************************************ +* Name: GetChannelNum +* Brief: Get Num of Ch_X, Ch_Y and key +* Input: none +* Output: none +* Return: Comm Code. Code = 0x00 is OK, else fail. +***********************************************************************/ +static unsigned char GetChannelNum(void) +{ + unsigned char ReCode; + + int i ; + unsigned char rBuffer[1]; + + + + for (i = 0; i < 3; i++) { + ReCode = GetPanelRows(rBuffer); + if (ReCode == ERROR_CODE_OK) { + if (0 < rBuffer[0] && rBuffer[0] < 80) { + ft8006m_g_stSCapConfEx.ChannelXNum = rBuffer[0]; + if (ft8006m_g_stSCapConfEx.ChannelXNum > ft8006m_g_ScreenSetParam.iUsedMaxTxNum) { + FTS_TEST_ERROR("Failed to get Channel X number, Get num = %d, UsedMaxNum = %d", + ft8006m_g_stSCapConfEx.ChannelXNum, ft8006m_g_ScreenSetParam.iUsedMaxTxNum); + ft8006m_g_stSCapConfEx.ChannelXNum = 0; + return ERROR_CODE_INVALID_PARAM; + } + + break; + } else { + Ft8006m_SysDelay(150); + continue; + } + } else { + FTS_TEST_ERROR("Failed to get Channel X number"); + Ft8006m_SysDelay(150); + } + } + + + for (i = 0; i < 3; i++) { + ReCode = GetPanelCols(rBuffer); + if (ReCode == ERROR_CODE_OK) { + if (0 < rBuffer[0] && rBuffer[0] < 80) { + ft8006m_g_stSCapConfEx.ChannelYNum = rBuffer[0]; + if (ft8006m_g_stSCapConfEx.ChannelYNum > ft8006m_g_ScreenSetParam.iUsedMaxRxNum) { + + FTS_TEST_ERROR("Failed to get Channel Y number, Get num = %d, UsedMaxNum = %d", + ft8006m_g_stSCapConfEx.ChannelYNum, ft8006m_g_ScreenSetParam.iUsedMaxRxNum); + ft8006m_g_stSCapConfEx.ChannelYNum = 0; + return ERROR_CODE_INVALID_PARAM; + } + break; + } else { + Ft8006m_SysDelay(150); + continue; + } + } else { + FTS_TEST_ERROR("Failed to get Channel Y number"); + Ft8006m_SysDelay(150); + } + } + + + for (i = 0; i < 3; i++) { + unsigned char regData = 0; + ft8006m_g_stSCapConfEx.KeyNum = 0; + ReCode = Ft8006m_ReadReg(FT8006_LEFT_KEY_REG, ®Data); + if (ReCode == ERROR_CODE_OK) { + if (((regData >> 0) & 0x01)) { + ft8006m_g_stSCapConfEx.bLeftKey1 = true; + ++ft8006m_g_stSCapConfEx.KeyNum; + } + if (((regData >> 1) & 0x01)) { + ft8006m_g_stSCapConfEx.bLeftKey2 = true; + ++ft8006m_g_stSCapConfEx.KeyNum; + } + if (((regData >> 2) & 0x01)) { + ft8006m_g_stSCapConfEx.bLeftKey3 = true; + ++ft8006m_g_stSCapConfEx.KeyNum; + } + + } else { + FTS_TEST_ERROR("Failed to get Key number"); + Ft8006m_SysDelay(150); + continue; + } + ReCode = Ft8006m_ReadReg(FT8006_RIGHT_KEY_REG, ®Data); + if (ReCode == ERROR_CODE_OK) { + if (((regData >> 0) & 0x01)) { + ft8006m_g_stSCapConfEx.bRightKey1 = true; + ++ft8006m_g_stSCapConfEx.KeyNum; + } + if (((regData >> 1) & 0x01)) { + ft8006m_g_stSCapConfEx.bRightKey2 = true; + ++ft8006m_g_stSCapConfEx.KeyNum; + } + if (((regData >> 2) & 0x01)) { + ft8006m_g_stSCapConfEx.bRightKey3 = true; + ++ft8006m_g_stSCapConfEx.KeyNum; + } + + + break; + } else { + FTS_TEST_ERROR("Failed to get Key number"); + Ft8006m_SysDelay(150); + continue; + } + } + + + + FTS_TEST_INFO("CH_X = %d, CH_Y = %d, Key = %d", ft8006m_g_stSCapConfEx.ChannelXNum , ft8006m_g_stSCapConfEx.ChannelYNum, ft8006m_g_stSCapConfEx.KeyNum); + return ReCode; +} + +/************************************************************************ +* Name: GetRawData +* Brief: Get Raw Data of VA area and Key area +* Input: none +* Output: none +* Return: Comm Code. Code = 0x00 is OK, else fail. +***********************************************************************/ +static unsigned char GetRawData(struct FT8006 *g_FT8006) +{ + int ReCode = ERROR_CODE_OK; + int iRow, iCol; + + FTS_TEST_FUNC_ENTER(); + + + + ReCode = FT8006_StartScan(g_FT8006); + if (ERROR_CODE_OK != ReCode) { + FTS_TEST_ERROR("Failed to Scan ..."); + return ReCode; + } + + + + + memset(m_RawData, 0, sizeof(m_RawData)); + memset(m_iTempRawData, 0, sizeof(m_iTempRawData)); + ReCode = FT8006_ReadRawData(g_FT8006, 0, 0xAD, ft8006m_g_stSCapConfEx.ChannelXNum * ft8006m_g_stSCapConfEx.ChannelYNum * 2, m_iTempRawData); + if (ERROR_CODE_OK != ReCode) { + FTS_TEST_ERROR("Failed to Get RawData"); + return ReCode; + } + + for (iRow = 0; iRow < ft8006m_g_stSCapConfEx.ChannelXNum; ++iRow) { + for (iCol = 0; iCol < ft8006m_g_stSCapConfEx.ChannelYNum; ++iCol) { + m_RawData[iRow][iCol] = m_iTempRawData[iRow * ft8006m_g_stSCapConfEx.ChannelYNum + iCol]; + } + } + + + memset(m_iTempRawData, 0, sizeof(m_iTempRawData)); + ReCode = FT8006_ReadRawData(g_FT8006, 0, 0xAE, ft8006m_g_stSCapConfEx.KeyNumTotal * 2, m_iTempRawData); + if (ERROR_CODE_OK != ReCode) { + FTS_TEST_ERROR("Failed to Get RawData"); + return ReCode; + } + + for (iCol = 0; iCol < ft8006m_g_stSCapConfEx.KeyNumTotal; ++iCol) { + + m_RawData[ft8006m_g_stSCapConfEx.ChannelXNum][iCol] = m_iTempRawData[iCol]; + } + + FTS_TEST_FUNC_EXIT(); + + return ReCode; + +} +unsigned char FT8006_ReadRawData(struct FT8006 *g_FT8006, unsigned char Freq, unsigned char LineNum, int ByteNum, int *pRevBuffer) +{ + unsigned char ReCode = ERROR_CODE_OK; + + FTS_TEST_FUNC_ENTER(); + + if (ChipHasTwoHeart(g_FT8006)) { + + struct CSChipAddrMgr mgr; + CSChipAddrMgr_Init(&mgr, g_FT8006); + + WorkAsMaster(&mgr); + ReCode = ReadRawData(Freq, LineNum, ByteNum, pRevBuffer); + + CSChipAddrMgr_Exit(&mgr); + } else { + + ReCode = ReadRawData(Freq, LineNum, ByteNum, pRevBuffer); + } + + FTS_TEST_FUNC_EXIT(); + + return ReCode; +} + +unsigned char FT8006_EnterFactory(struct FT8006 *g_FT8006) +{ + unsigned char ReCode = ERROR_CODE_COMM_ERROR; + + + ReleaseCSInfo(g_FT8006); + + ReCode = Ft8006m_EnterFactory(); + + + UpDateCSInfo(g_FT8006); + + + return ReCode; +} +unsigned char FT8006_EnterWork(struct FT8006 *g_FT8006) +{ + unsigned char ReCode = ERROR_CODE_OK; + if (ChipHasTwoHeart(g_FT8006)) { + + struct CSChipAddrMgr mgr; + + CSChipAddrMgr_Init(&mgr, g_FT8006); + + WorkAsMaster(&mgr); + ReCode = Ft8006m_EnterWork(); + CSChipAddrMgr_Exit(&mgr); + + } else { + + ReCode = Ft8006m_EnterWork(); + } + + return ReCode; +} + +unsigned char FT8006_ChipClb(struct FT8006 *g_FT8006, unsigned char *pClbResult) +{ + unsigned char ReCode = ERROR_CODE_OK; + + FTS_TEST_FUNC_ENTER(); + + if (ChipHasTwoHeart(g_FT8006)) { + + struct CSChipAddrMgr mgr; + CSChipAddrMgr_Init(&mgr, g_FT8006); + + WorkAsMaster(&mgr); + ReCode = (ReCode == ERROR_CODE_OK) ? ChipClb(pClbResult) : ReCode; + + WorkAsSlave(&mgr); + ReCode = (ReCode == ERROR_CODE_OK) ? ChipClb(pClbResult) : ReCode; + + CSChipAddrMgr_Exit(&mgr); + } else { + + ReCode = ChipClb(pClbResult); + } + + FTS_TEST_FUNC_EXIT(); + + return ReCode; +} +unsigned char FT8006_WeakShort_GetAdcData(struct FT8006 *g_FT8006, int AllAdcDataLen, int *pRevBuffer) +{ + unsigned char ReCode = ERROR_CODE_OK; + struct CSChipAddrMgr mgr; + + FTS_TEST_FUNC_ENTER(); + + if (ChipHasTwoHeart(g_FT8006)) { + memset(bufferMaster, 0, sizeof(bufferMaster)); + memset(bufferSlave, 0, sizeof(bufferSlave)); + memset(bufferCated, 0, sizeof(bufferCated)); + + CSChipAddrMgr_Init(&mgr, g_FT8006); + + WorkAsMaster(&mgr); + ReCode = WeakShort_StartAdcScan(); + + WorkAsMaster(&mgr); + ReCode = (ReCode == ERROR_CODE_OK) ? WeakShort_GetScanResult() : ReCode; + ReCode = (ReCode == ERROR_CODE_OK) ? WeakShort_GetAdcResult(AllAdcDataLen, bufferMaster) : ReCode; + + WorkAsSlave(&mgr); + ReCode = (ReCode == ERROR_CODE_OK) ? WeakShort_GetScanResult() : ReCode; + ReCode = (ReCode == ERROR_CODE_OK) ? WeakShort_GetAdcResult(AllAdcDataLen, bufferSlave) : ReCode; + + + CatSingleToOneScreen(g_FT8006); + + memcpy(pRevBuffer, bufferCated, AllAdcDataLen * sizeof(unsigned int)); + + CSChipAddrMgr_Exit(&mgr); + + } else { + ReCode = WeakShort_GetAdcData(AllAdcDataLen, pRevBuffer); + } + + FTS_TEST_FUNC_EXIT(); + + return ReCode; + +} +unsigned char WeakShort_StartAdcScan() +{ + return Ft8006m_WriteReg(0x0F, 1); +} + +unsigned char FT8006_WriteReg(struct FT8006 *g_FT8006, unsigned char RegAddr, unsigned char RegData) +{ + unsigned char ReCode = ERROR_CODE_OK; + if (ChipHasTwoHeart(g_FT8006)) { + + struct CSChipAddrMgr mgr; + + CSChipAddrMgr_Init(&mgr, g_FT8006); + + WorkAsMaster(&mgr); + ReCode = (ReCode == ERROR_CODE_OK) ? Ft8006m_WriteReg(RegAddr, RegData) : ReCode; + + WorkAsSlave(&mgr); + ReCode = (ReCode == ERROR_CODE_OK) ? Ft8006m_WriteReg(RegAddr, RegData) : ReCode; + + CSChipAddrMgr_Exit(&mgr); + } else { + + ReCode = Ft8006m_WriteReg(RegAddr, RegData); + } + + return ReCode; +} + +unsigned char WeakShort_GetScanResult() +{ + unsigned char RegMark = 0; + unsigned char ReCode = ERROR_CODE_OK; + int index = 0; + + for (index = 0; index < 50; ++index) { + Ft8006m_SysDelay(50); + ReCode = Ft8006m_ReadReg(0x10, &RegMark); + if (ERROR_CODE_OK == ReCode && 0 == RegMark) + break; + } + + return ReCode; +} + +unsigned char WeakShort_GetAdcResult(int AllAdcDataLen, int *pRevBuffer) +{ + unsigned char ReCode = ERROR_CODE_OK; + int index = 0; + int i = 0; + int usReturnNum = 0; + unsigned char wBuffer[2] = {0}; + int iReadNum = 0; + + FTS_TEST_FUNC_ENTER(); + + iReadNum = AllAdcDataLen / BYTES_PER_TIME; + if ((AllAdcDataLen % BYTES_PER_TIME) > 0) + ++iReadNum; + + memset(wBuffer, 0, sizeof(wBuffer)); + wBuffer[0] = 0x89; + memset(pReadBuffer, 0, sizeof(pReadBuffer)); + + usReturnNum = BYTES_PER_TIME; + if (ReCode == ERROR_CODE_OK) { + ReCode = Ft8006m_Comm_Base_IIC_IO(wBuffer, 1, pReadBuffer, usReturnNum); + } + + for (i = 1; i < iReadNum; i++) { + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("Comm_Base_IIC_IO error. !!!"); + break; + } + + if (i == iReadNum-1) { + usReturnNum = AllAdcDataLen-BYTES_PER_TIME*i; + ReCode = Ft8006m_Comm_Base_IIC_IO(NULL, 0, pReadBuffer+BYTES_PER_TIME*i, usReturnNum); + } else { + usReturnNum = BYTES_PER_TIME; + ReCode = Ft8006m_Comm_Base_IIC_IO(NULL, 0, pReadBuffer+BYTES_PER_TIME*i, usReturnNum); + } + } + + for (index = 0; index < AllAdcDataLen/2; ++index) { + pRevBuffer[index] = (pReadBuffer[index * 2] << 8) + pReadBuffer[index * 2 + 1]; + } + + FTS_TEST_FUNC_EXIT(); + + return ReCode; +} +/************************************************************************ +* Name: WeakShort_GetAdcData +* Brief: Get Adc Data +* Input: AllAdcDataLen +* Output: pRevBuffer +* Return: Comm Code. Code = 0x00 is OK, else fail. +***********************************************************************/ +static unsigned char WeakShort_GetAdcData(int AllAdcDataLen, int *pRevBuffer) +{ + unsigned char ReCode = ERROR_CODE_OK; + unsigned char RegMark = 0; + int index = 0; + int i = 0; + int usReturnNum = 0; + unsigned char wBuffer[2] = {0}; + + int iReadNum = 0; + + FTS_TEST_FUNC_ENTER(); + + memset(wBuffer, 0, sizeof(wBuffer)); + wBuffer[0] = 0x89; + + iReadNum = AllAdcDataLen / BYTES_PER_TIME; + if ((AllAdcDataLen % BYTES_PER_TIME) > 0) + ++iReadNum; + + ReCode = Ft8006m_WriteReg(0x0F, 1); + + for (index = 0; index < 50; ++index) { + Ft8006m_SysDelay(50); + ReCode = Ft8006m_ReadReg(0x10, &RegMark); + if (ERROR_CODE_OK == ReCode && 0 == RegMark) + break; + } + if (index >= 50) { + FTS_TEST_ERROR("Ft8006m_ReadReg failed, ADC data not OK."); + return 6; + } + + { + usReturnNum = BYTES_PER_TIME; + if (ReCode == ERROR_CODE_OK) { + ReCode = Ft8006m_Comm_Base_IIC_IO(wBuffer, 1, pReadBuffer, usReturnNum); + } + + for (i = 1; i < iReadNum; i++) { + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR("Comm_Base_IIC_IO error. !!!"); + break; + } + + if (i == iReadNum-1) { + usReturnNum = AllAdcDataLen-BYTES_PER_TIME*i; + ReCode = Ft8006m_Comm_Base_IIC_IO(NULL, 0, pReadBuffer+BYTES_PER_TIME*i, usReturnNum); + } else { + usReturnNum = BYTES_PER_TIME; + ReCode = Ft8006m_Comm_Base_IIC_IO(NULL, 0, pReadBuffer+BYTES_PER_TIME*i, usReturnNum); + } + } + } + + for (index = 0; index < AllAdcDataLen/2; ++index) { + pRevBuffer[index] = (pReadBuffer[index * 2] << 8) + pReadBuffer[index * 2 + 1]; + } + + FTS_TEST_FUNC_EXIT(); + + return ReCode; +} + +unsigned char ReadBytesByKey(BYTE key, int ByteNum, unsigned char *byteData) +{ + + unsigned char ReCode = ERROR_CODE_OK; + unsigned char I2C_wBuffer[3] = {0}; + unsigned short BytesNumInTestMode1 = 0; + int i = 0; + int iReadNum = 0; + + FTS_TEST_FUNC_ENTER(); + + iReadNum = ByteNum/BYTES_PER_TIME; + + if (0 != (ByteNum%BYTES_PER_TIME)) + iReadNum++; + + if (ByteNum <= BYTES_PER_TIME) { + BytesNumInTestMode1 = ByteNum; + } else { + BytesNumInTestMode1 = BYTES_PER_TIME; + } + + + I2C_wBuffer[0] = key; + if (ReCode == ERROR_CODE_OK) { + ReCode = Ft8006m_Comm_Base_IIC_IO(I2C_wBuffer, 1, byteData, BytesNumInTestMode1); + } + + for (i = 1; i < iReadNum; i++) { + if (ReCode != ERROR_CODE_OK) + break; + + if (i == iReadNum-1) { + ReCode = Ft8006m_Comm_Base_IIC_IO(NULL, 0, byteData + BYTES_PER_TIME*i, ByteNum-BYTES_PER_TIME*i); + } else + ReCode = Ft8006m_Comm_Base_IIC_IO(NULL, 0, byteData + BYTES_PER_TIME*i, BYTES_PER_TIME); + + } + + FTS_TEST_FUNC_EXIT(); + + return ReCode; + +} + +unsigned char FT8006_StartScan(struct FT8006 *g_FT8006) +{ + unsigned char ReCode = ERROR_CODE_OK; + + FTS_TEST_FUNC_ENTER(); + + if (ChipHasTwoHeart(g_FT8006)) { + + struct CSChipAddrMgr mgr; + + CSChipAddrMgr_Init(&mgr, g_FT8006); + + WorkAsMaster(&mgr); + ReCode = StartScan(); + CSChipAddrMgr_Exit(&mgr); + } else { + + ReCode = StartScan(); + } + + + FTS_TEST_FUNC_EXIT(); + + return ReCode; +} + + + +#endif diff --git a/drivers/input/touchscreen/FT8006m/focaltech_test/supported_ic/focaltech_test_supported_ic.c b/drivers/input/touchscreen/FT8006m/focaltech_test/supported_ic/focaltech_test_supported_ic.c new file mode 100755 index 0000000000000..a723150a6b9f4 --- /dev/null +++ b/drivers/input/touchscreen/FT8006m/focaltech_test/supported_ic/focaltech_test_supported_ic.c @@ -0,0 +1,268 @@ +/************************************************************************ +* Copyright (C) 2012-2017, Focaltech Systems (R)£¬All Rights Reserved. +* Copyright (C) 2018 XiaoMi, Inc. +* +* File Name: focaltech_test_supported_ic.c +* +* Author: Software Development +* +* Created: 2016-08-01 +* +* Abstract: test item for FT8716 +* +************************************************************************/ + +/***************************************************************************** +* Included header files +*****************************************************************************/ + + +#include "../include/focaltech_test_supported_ic.h" +#include "../focaltech_test_config.h" + + + +#if (FTS_CHIP_TEST_TYPE == FT8607_TEST) +void OnInit_FT8607_TestItem(char *strIniFile); +void OnInit_FT8607_BasicThreshold(char *strIniFile); +void SetTestItem_FT8607(void); +boolean FT8607_StartTest(void); +int FT8607_ft8006m_get_test_data(char *pTestData); + +void ft8006m_test_funcs(void) +{ + FTS_TEST_FUNC_ENTER(); + + ft8006m_g_stTestFuncs.OnInit_TestItem = OnInit_FT8607_TestItem; + ft8006m_g_stTestFuncs.OnInit_BasicThreshold = OnInit_FT8607_BasicThreshold; + ft8006m_g_stTestFuncs.SetTestItem = SetTestItem_FT8607; + ft8006m_g_stTestFuncs.Start_Test = FT8607_StartTest; + ft8006m_g_stTestFuncs.Get_test_data = FT8607_ft8006m_get_test_data; + + FTS_TEST_FUNC_EXIT(); +} + + +#elif (FTS_CHIP_TEST_TYPE == FT8716_TEST) + +boolean FT8006m_StartTest(void); +int FT8006M_get_test_data(char *pTestData); + +void OnInit_FT8006m_TestItem(char *strIniFile); +void OnInit_FT8006M_BasicThreshold(char *strIniFile); +void SetTestItem_FT8006m(void); + +void ft8006m_test_funcs(void) +{ + FTS_TEST_FUNC_ENTER(); + + ft8006m_g_stTestFuncs.OnInit_TestItem = OnInit_FT8006m_TestItem; + ft8006m_g_stTestFuncs.OnInit_BasicThreshold = OnInit_FT8006M_BasicThreshold; + ft8006m_g_stTestFuncs.SetTestItem = SetTestItem_FT8006m; + ft8006m_g_stTestFuncs.Start_Test = FT8006m_StartTest; + ft8006m_g_stTestFuncs.Get_test_data = FT8006M_get_test_data; + + FTS_TEST_FUNC_EXIT(); +} + +#elif (FTS_CHIP_TEST_TYPE == FT3D47_TEST) +boolean FT3D47_StartTest(void); + +int FT3D47_ft8006m_get_test_data(char *pTestData); + +void OnInit_FT3D47_TestItem(char *strIniFile); +void OnInit_FT3D47_BasicThreshold(char *strIniFile); +void SetTestItem_FT3D47(void); + +void ft8006m_test_funcs(void) +{ + FTS_TEST_FUNC_ENTER(); + + ft8006m_g_stTestFuncs.OnInit_TestItem = OnInit_FT3D47_TestItem; + ft8006m_g_stTestFuncs.OnInit_BasicThreshold = OnInit_FT3D47_BasicThreshold; + ft8006m_g_stTestFuncs.SetTestItem = SetTestItem_FT3D47; + ft8006m_g_stTestFuncs.Start_Test = FT3D47_StartTest; + ft8006m_g_stTestFuncs.Get_test_data = FT3D47_ft8006m_get_test_data; + + FTS_TEST_FUNC_EXIT(); +} + +#elif (FTS_CHIP_TEST_TYPE == FT5X46_TEST) + +boolean FT5X46_StartTest(void); +int FT5X46_ft8006m_get_test_data(char *pTestData); + +void OnInit_FT5X46_TestItem(char *strIniFile); +void OnInit_FT5X46_BasicThreshold(char *strIniFile); +void SetTestItem_FT5X46(void); + +void ft8006m_test_funcs(void) +{ + FTS_TEST_FUNC_ENTER(); + + ft8006m_g_stTestFuncs.OnInit_TestItem = OnInit_FT5X46_TestItem; + ft8006m_g_stTestFuncs.OnInit_BasicThreshold = OnInit_FT5X46_BasicThreshold; + ft8006m_g_stTestFuncs.SetTestItem = SetTestItem_FT5X46; + ft8006m_g_stTestFuncs.Start_Test = FT5X46_StartTest; + ft8006m_g_stTestFuncs.Get_test_data = FT5X46_ft8006m_get_test_data; + + FTS_TEST_FUNC_EXIT(); +} + +#elif (FTS_CHIP_TEST_TYPE == FT6X36_TEST) + +boolean FT6X36_StartTest(void); +int FT6X36_ft8006m_get_test_data(char *pTestData); + +void OnInit_FT6X36_TestItem(char *strIniFile); +void OnInit_FT6X36_BasicThreshold(char *strIniFile); +void SetTestItem_FT6X36(void); + +void ft8006m_test_funcs(void) +{ + FTS_TEST_FUNC_ENTER(); + + ft8006m_g_stTestFuncs.OnInit_TestItem = OnInit_FT6X36_TestItem; + ft8006m_g_stTestFuncs.OnInit_BasicThreshold = OnInit_FT6X36_BasicThreshold; + ft8006m_g_stTestFuncs.SetTestItem = SetTestItem_FT6X36; + ft8006m_g_stTestFuncs.Start_Test = FT6X36_StartTest; + ft8006m_g_stTestFuncs.Get_test_data = FT6X36_ft8006m_get_test_data; + + FTS_TEST_FUNC_EXIT(); +} + +#elif (FTS_CHIP_TEST_TYPE == FT5822_TEST) + +boolean FT5822_StartTest(void); +int FT5822_ft8006m_get_test_data(char *pTestData); + +void OnInit_FT5822_TestItem(char *strIniFile); +void OnInit_FT5822_BasicThreshold(char *strIniFile); +void SetTestItem_FT5822(void); + +void ft8006m_test_funcs(void) +{ + FTS_TEST_FUNC_ENTER(); + + ft8006m_g_stTestFuncs.OnInit_TestItem = OnInit_FT5822_TestItem; + ft8006m_g_stTestFuncs.OnInit_BasicThreshold = OnInit_FT5822_BasicThreshold; + ft8006m_g_stTestFuncs.SetTestItem = SetTestItem_FT5822; + ft8006m_g_stTestFuncs.Start_Test = FT5822_StartTest; + ft8006m_g_stTestFuncs.Get_test_data = FT5822_ft8006m_get_test_data; + + FTS_TEST_FUNC_EXIT(); +} + +#elif (FTS_CHIP_TEST_TYPE == FT8006_TEST) + +boolean FT8006_StartTest(void); +int FT8006M_get_test_data(char *pTestData); + +void OnInit_FT8006_TestItem(char *strIniFile); +void OnInit_FT8006_BasicThreshold(char *strIniFile); +void SetTestItem_FT8006(void); + +void ft8006m_test_funcs(void) +{ + FTS_TEST_FUNC_ENTER(); + + ft8006m_g_stTestFuncs.OnInit_TestItem = OnInit_FT8006_TestItem; + ft8006m_g_stTestFuncs.OnInit_BasicThreshold = OnInit_FT8006_BasicThreshold; + ft8006m_g_stTestFuncs.SetTestItem = SetTestItem_FT8006; + ft8006m_g_stTestFuncs.Start_Test = FT8006_StartTest; + ft8006m_g_stTestFuncs.Get_test_data = FT8006M_get_test_data; + + FTS_TEST_FUNC_EXIT(); +} + + +#elif (FTS_CHIP_TEST_TYPE == FT8736_TEST) + +boolean FT8736_StartTest(void); +int FT8736_ft8006m_get_test_data(char *pTestData); + +void OnInit_FT8736_TestItem(char *strIniFile); +void OnInit_FT8736_BasicThreshold(char *strIniFile); +void SetTestItem_FT8736(void); + +void ft8006m_test_funcs(void) +{ + FTS_TEST_FUNC_ENTER(); + + ft8006m_g_stTestFuncs.OnInit_TestItem = OnInit_FT8736_TestItem; + ft8006m_g_stTestFuncs.OnInit_BasicThreshold = OnInit_FT8736_BasicThreshold; + ft8006m_g_stTestFuncs.SetTestItem = SetTestItem_FT8736; + ft8006m_g_stTestFuncs.Start_Test = FT8736_StartTest; + ft8006m_g_stTestFuncs.Get_test_data = FT8736_ft8006m_get_test_data; + + FTS_TEST_FUNC_EXIT(); +} + +#elif (FTS_CHIP_TEST_TYPE == FTE716_TEST) + +boolean FTE716_StartTest(void); +int FTE716_ft8006m_get_test_data(char *pTestData); + +void OnInit_FTE716_TestItem(char *strIniFile); +void OnInit_FTE716_BasicThreshold(char *strIniFile); +void SetTestItem_FTE716(void); + +void ft8006m_test_funcs(void) +{ + FTS_TEST_FUNC_ENTER(); + + ft8006m_g_stTestFuncs.OnInit_TestItem = OnInit_FTE716_TestItem; + ft8006m_g_stTestFuncs.OnInit_BasicThreshold = OnInit_FTE716_BasicThreshold; + ft8006m_g_stTestFuncs.SetTestItem = SetTestItem_FTE716; + ft8006m_g_stTestFuncs.Start_Test = FTE716_StartTest; + ft8006m_g_stTestFuncs.Get_test_data = FTE716_ft8006m_get_test_data; + + FTS_TEST_FUNC_EXIT(); +} + +#elif (FTS_CHIP_TEST_TYPE == FT8606_TEST) + +boolean FT8606_StartTest(void); +int FT8606_ft8006m_get_test_data(char *pTestData); + +void OnInit_FT8606_TestItem(char *strIniFile); +void OnInit_FT8606_BasicThreshold(char *strIniFile); +void SetTestItem_FT8606(void); + +void ft8006m_test_funcs(void) +{ + FTS_TEST_FUNC_ENTER(); + + ft8006m_g_stTestFuncs.OnInit_TestItem = OnInit_FT8606_TestItem; + ft8006m_g_stTestFuncs.OnInit_BasicThreshold = OnInit_FT8606_BasicThreshold; + ft8006m_g_stTestFuncs.SetTestItem = SetTestItem_FT8606; + ft8006m_g_stTestFuncs.Start_Test = FT8606_StartTest; + ft8006m_g_stTestFuncs.Get_test_data = FT8606_ft8006m_get_test_data; + + FTS_TEST_FUNC_EXIT(); +} + +#elif (FTS_CHIP_TEST_TYPE == FT3C47_TEST) + +boolean FT3C47_StartTest(void); +int FT3C47_ft8006m_get_test_data(char *pTestData); + +void OnInit_FT3C47_TestItem(char *strIniFile); +void OnInit_FT3C47_BasicThreshold(char *strIniFile); +void SetTestItem_FT3C47(void); + +void ft8006m_test_funcs(void) +{ + FTS_TEST_FUNC_ENTER(); + + ft8006m_g_stTestFuncs.OnInit_TestItem = OnInit_FT3C47_TestItem; + ft8006m_g_stTestFuncs.OnInit_BasicThreshold = OnInit_FT3C47_BasicThreshold; + ft8006m_g_stTestFuncs.SetTestItem = SetTestItem_FT3C47; + ft8006m_g_stTestFuncs.Start_Test = FT3C47_StartTest; + ft8006m_g_stTestFuncs.Get_test_data = FT3C47_ft8006m_get_test_data; + + FTS_TEST_FUNC_EXIT(); +} +#endif + + diff --git a/drivers/input/touchscreen/FT8006m/include/firmware/FT8006m_app_sample.i b/drivers/input/touchscreen/FT8006m/include/firmware/FT8006m_app_sample.i new file mode 100644 index 0000000000000..e0c4cd30147b6 --- /dev/null +++ b/drivers/input/touchscreen/FT8006m/include/firmware/FT8006m_app_sample.i @@ -0,0 +1,5329 @@ +0x0, 0x0, 0x0, 0x60,0x0, 0x0, 0x57,0xf4,0x0, 0x0, 0x57,0xf4,0x0, 0x0, 0x57,0xf4, +0x0, 0x0, 0x57,0xf4,0x0, 0x0, 0x57,0xf4,0x0, 0x0, 0x57,0xf4,0x0, 0x0, 0x57,0xf4, +0x0, 0x0, 0x57,0xf4,0x0, 0x0, 0x57,0xf4,0x0, 0x0, 0x57,0xf4,0x0, 0x0, 0x57,0xf4, +0x0, 0x0, 0x57,0xf4,0x0, 0x0, 0x57,0xf4,0x0, 0x0, 0x57,0xf4,0x0, 0x0, 0x57,0xf4, +0x0, 0x0, 0x57,0xf4,0x0, 0x0, 0x57,0xf4,0x0, 0x0, 0x57,0xf4,0x0, 0x0, 0x57,0xf4, +0x0, 0x0, 0x57,0xf4,0x0, 0x0, 0x57,0xf4,0x0, 0x0, 0x57,0xf4,0x0, 0x0, 0x57,0xf4, +0xe0,0x60,0x3c,0x0, 0xcc,0x2, 0xe0,0x60,0x3c,0x10,0xea,0x0, 0xc8,0x3, 0xe0,0xff, +0xc8,0x7c,0xfa,0x0, 0xcf,0x82,0xf0,0x36,0xcf,0xd8,0xea,0x0, 0xcc,0x0, 0xe0,0x0, +0xcc,0x0, 0xe0,0x60,0x3c,0x17,0xea,0x0, 0xcc,0x2, 0xe0,0x0, 0xcc,0x0, 0xea,0x0, +0xcc,0x81,0xe0,0x55,0xcc,0xf8,0x3c,0x79,0x1, 0x8, 0xea,0x0, 0xcd,0x2, 0xe0,0x44, +0xcd,0x10,0x3d,0x28,0xe0,0x9, 0xd2,0x8, 0xea,0x0, 0xcc,0x0, 0xe0,0xaf,0xcc,0x44, +0x3c,0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x4d,0x8, 0xb2,0xf7,0xe, 0x87,0xf1,0x78,0x3, 0x12,0xfc,0xed,0xda,0x25,0x6, 0xf9, +0x0, 0x0, 0x0, 0x1, 0xff,0xfe,0x0, 0x0, 0x0, 0x0, 0xc8,0x37,0x0, 0x0, 0x80,0xa6, +0x72,0x8d,0x0, 0xff,0xda,0x25,0x4, 0xa7,0x24,0x87,0x55,0x56,0x72,0x8d,0x1, 0xfe, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc8,0x37, +0x34,0x34,0x33,0x35,0x33,0x32,0x30,0x31,0x44,0x31,0x30,0x30,0x33,0x31,0x30,0x30, +0x0, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x30,0x30,0x31,0x0, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xe0,0x1, 0x1f,0xde,0xe6,0x1, 0x16,0xff,0xa7,0x8f,0x34,0x28,0xa7,0x5f,0x3f,0x5d, +0xbf,0x5f,0xa7,0x5f,0x3c,0x4e,0xbc,0x5f,0x38,0x82,0xe0,0x2, 0x1e,0xbf,0xe0,0x2, +0x1f,0x51,0x8f,0xdd,0x8e,0x4d,0xe0,0x1, 0x1e,0xe0,0x3f,0xbc,0x37,0xa1,0xb7,0x8e, +0x9f,0x8e,0x37,0xc9,0xe0,0x3, 0xaf,0xcd,0x9f,0x8e,0x37,0xc1,0xe0,0x3, 0xaf,0xdd, +0x38,0x82,0x8, 0xb2,0xe0,0x1, 0x19,0x60,0xe0,0x6, 0x8c,0x12,0xe0,0x6, 0x8c,0xa2, +0xe0,0x2, 0xda,0xe0,0xe4,0x8, 0x34,0x21,0xe0,0x3, 0x9f,0xc2,0xe4,0x8, 0x34,0x40, +0x3c,0x7f,0x3, 0x88,0xe0,0x1, 0x1f,0x28,0xe0,0x3, 0xb4,0x42,0x9f,0x8e,0xcf,0xa0, +0xb7,0x8e,0x9, 0x61,0x8, 0xb2,0xe0,0x1, 0x1f,0xa3,0xe0,0x1a,0x17,0x20,0x3f,0x1f, +0x8f,0xe, 0xe0,0x1a,0xc7,0xa1,0x8c,0xf, 0xe0,0x1, 0x19,0x60,0x37,0x28,0x3c,0x4e, +0x17,0x81,0xaf,0xc2,0xe0,0x6, 0xda,0xf7,0xe0,0x2, 0x1f,0xbf,0xe0,0x19,0x16,0x9d, +0x17,0x7, 0x3e,0x9f,0xaf,0xd, 0xe0,0x19,0xc7,0x9e,0xaf,0xf, 0xe0,0x1, 0xd9,0xa5, +0x17,0x82,0xaf,0xc2,0x9, 0x61,0xe0,0x1, 0x1f,0xb1,0x16,0x7b,0xa6,0x8f,0xa7,0xcd, +0xa7,0x4d,0x37,0xc2,0xe2,0x0, 0xc7,0x81,0xe4,0x0, 0xcf,0x81,0x37,0xa2,0x3f,0x5c, +0x3f,0xce,0xbf,0xcd,0x38,0x82,0xe0,0x0, 0xc4,0x70,0xe2,0x1, 0xc4,0x7f,0xe2,0x0, +0xcc,0x4, 0x2, 0xa2,0xea,0x15,0x7f,0x84,0xe9,0xff,0xc7,0xff,0x34,0x22,0x3c,0x1f, +0xa7,0x88,0x3f,0x82,0xe0,0x1, 0x1f,0xac,0xe0,0x2, 0x8c,0x6f,0x38,0x82,0xe0,0x1, +0x1f,0xac,0xe0,0x2, 0x8c,0x7f,0x38,0x82,0xe0,0x1, 0x1f,0xac,0xe0,0x2, 0x8c,0x3f, +0x38,0x82,0xe0,0x1, 0x1f,0xac,0xe0,0x2, 0x8c,0x4f,0x38,0x82,0xe0,0x1, 0x1f,0xac, +0xe0,0x2, 0x8c,0x5f,0x38,0x82,0xe0,0x1, 0x14,0x7e,0x38,0x82,0xe0,0x2, 0x1f,0x73, +0xe0,0x2, 0x1f,0xda,0xa6,0xe, 0x15,0xfe,0xa6,0xcc,0x97,0xf, 0xe2,0x0, 0xc6,0x81, +0x3f,0x5b,0x3f,0x4d,0xb7,0xf, 0x15,0xfd,0xa6,0xcc,0x97,0xf, 0x36,0xc9,0xe2,0x0, +0xc6,0x82,0x3f,0x5b,0x3f,0x4d,0xb7,0xf, 0x15,0x77,0x97,0xf, 0x3d,0xe8,0xe3,0xff, +0xc7,0x7b,0xb7,0xf, 0xe7,0xff,0x17,0x10,0xa6,0x4c,0x96,0x8f,0x3f,0x18,0x36,0x4c, +0xe2,0x0, 0xc6,0x8, 0x3e,0xda,0xe2,0x1, 0xc7,0x7f,0x3e,0xcc,0xe2,0x0, 0xcf,0xd, +0xb6,0x8f,0x9e,0x8f,0x2, 0x89,0xea,0x15,0x7f,0x98,0xe9,0xff,0xc7,0xff,0x37,0x22, +0x3f,0x1f,0xa7,0x8e,0x3f,0x82,0xe0,0x1, 0x14,0x7f,0x38,0x82,0x3c,0x6d,0xe2,0x1, +0xc4,0x7f,0x38,0x82,0xe0,0x8, 0x36,0xc8,0x38,0x82,0xe0,0x1, 0x1f,0xb1,0xa7,0x8f, +0xe0,0x1, 0xa4,0x7f,0xe2,0x1, 0xc4,0x7f,0x38,0x82,0xe0,0x1, 0x1f,0xde,0xa7,0x8f, +0xa4,0x5f,0x34,0x48,0xe2,0x1, 0xc4,0x7f,0x38,0x82,0xe0,0x1, 0x1e,0xe6,0x16,0x1, +0x8f,0xd, 0xe0,0x1, 0x1f,0xe0,0x3e,0x1e,0xae,0xd, 0xe0,0x1, 0x1e,0xac,0x3e,0x9e, +0xe0,0x4, 0x8f,0x4f,0x8c,0xd, 0xc7,0x1, 0xe0,0x4, 0xaf,0x4f,0xe0,0x4, 0x8f,0x4f, +0x2f,0x6, 0xe0,0x4, 0x8f,0x3f,0xc7,0x1, 0xe0,0x4, 0xaf,0x3f,0xe2,0x0, 0xcd,0xfd, +0x1, 0xcd,0xe0,0x1, 0x1f,0xae,0xe0,0x0, 0x17,0x7c,0xaf,0xf, 0x38,0x82,0xe2,0x0, +0xcc,0x7b,0x1, 0x84,0x3c,0x69,0xe7,0xfd,0x0, 0xf5,0x38,0x82,0xe2,0x1, 0xcc,0x2d, +0x1, 0x7, 0xe2,0x1, 0xcc,0x2e,0x1, 0x83,0xe7,0xfd,0x0, 0xf9,0x38,0x82,0xe0,0x2, +0x1f,0xd1,0x17,0x0, 0xb7,0xf, 0x38,0x82,0xe0,0x2, 0x1f,0xd3,0xe1,0xff,0x17,0x7e, +0xa7,0x8f,0x3f,0x58,0x3f,0x9e,0x97,0x8f,0xe2,0x0, 0xc4,0x1, 0xc7,0x81,0xe3,0xff, +0xc7,0xff,0xe2,0x0, 0xcc,0x0, 0x3c,0x6f,0xe2,0x1, 0xc4,0x7f,0x37,0xc8,0xe0,0x68, +0x39,0x2f,0x38,0x82,0x8, 0xb1,0x2c,0x17,0xe0,0x0, 0x1f,0xa3,0x8f,0x8f,0xe2,0x0, +0xcf,0x81,0xe0,0x0, 0x1, 0x48,0x3c,0x69,0xe0,0x4, 0xd6,0xa3,0xe0,0x1, 0x1f,0xa8, +0x9f,0x8f,0x27,0x88,0xe0,0x1, 0x1f,0x60,0xe0,0x1, 0x8f,0xee,0xcf,0x82,0xe0,0x1, +0xaf,0xee,0x8, 0xe1,0xe2,0x0, 0xcc,0xf, 0x1, 0x3b,0xe2,0x0, 0xcc,0x12,0xe0,0x0, +0x1, 0x52,0xe2,0x0, 0xcc,0x13,0xe0,0x0, 0x1, 0x53,0xe2,0x0, 0xcc,0x11,0x1, 0x3e, +0xe2,0x0, 0xcc,0x1, 0xe0,0x2, 0x1, 0x1b,0xe2,0x0, 0xcc,0x9, 0xe0,0x2, 0x1, 0x35, +0xe2,0x0, 0xcc,0x5b,0xe0,0x0, 0x5, 0xce,0xe7,0xff,0x17,0x94,0x3f,0x98,0xe2,0x0, +0xcf,0x81,0xe0,0x2, 0x5, 0xdb,0xe7,0xff,0x17,0x92,0x3f,0x98,0xe2,0x0, 0xcf,0x81, +0xe0,0x3, 0x5, 0xb9,0xe7,0xff,0x17,0x90,0xe0,0xf, 0x3f,0x98,0xe2,0x0, 0xcf,0x8f, +0xe0,0x2, 0x2, 0xe8,0xe2,0x0, 0xcc,0x7b,0xe0,0x3, 0x1, 0x5e,0xe0,0x1, 0x1f,0xa8, +0x0, 0xc0,0xe0,0x2, 0x1f,0xa8,0x8f,0x8f,0xe7,0xff,0x2f,0xb7,0x8, 0xe1,0xe0,0x0, +0x1f,0xa3,0x8f,0x8f,0xe2,0x0, 0xcf,0x81,0x1, 0x1f,0xe0,0x1, 0x1f,0xe0,0x17,0x1, +0xe0,0x1, 0xaf,0x7f,0xe0,0x2, 0xaf,0xf, 0x8, 0xe1,0xe2,0x0, 0xcc,0x81,0x1, 0x29, +0xe7,0xff,0x2c,0xb1,0xe0,0x1, 0x1f,0xd1,0xa7,0xf, 0xe0,0x2, 0x1f,0xa5,0xbf,0xf, +0x8, 0xe1,0xe0,0x1, 0x1f,0xe0,0xe0,0x2, 0xac,0xaf,0x8, 0xe1,0xe0,0x1, 0x1f,0xe0, +0xe0,0x2, 0xac,0xbf,0x8, 0xe1,0xe0,0x2, 0x1f,0xa8,0x8f,0x8f,0x2f,0xdf,0x8, 0xe1, +0xe2,0x0, 0xcc,0x30,0xe0,0x1, 0x1, 0x6f,0xe2,0x0, 0xcc,0x53,0x2, 0x98,0xea,0x15, +0x7f,0xd0,0xe9,0xff,0xc7,0xff,0xe0,0xe, 0x34,0x22,0x3f,0x9e,0xa7,0x8f,0x3f,0x82, +0xe0,0x1, 0x1f,0xe0,0xe0,0x2, 0x8f,0x1f,0xe7,0xff,0x2f,0x5, 0xe0,0x2, 0xac,0x9f, +0xe7,0xff,0x16,0x80,0x87,0xf, 0x3f,0x4d,0xaf,0xf, 0x8, 0xe1,0xe0,0x0, 0x1f,0xa3, +0x3e,0xe8,0x8f,0x8f,0xe2,0x0, 0xcf,0x81,0xe0,0x1, 0x1, 0x62,0x17,0xf8,0xe0,0x1, +0x1f,0x60,0x3f,0x98,0xe2,0x1, 0xc7,0xff,0x3e,0x9e,0xe2,0x0, 0xcf,0xaf,0xac,0x8d, +0x2, 0x89,0xea,0x18,0x7e,0xa0,0xe9,0xff,0xc6,0xff,0x37,0xa2,0x3f,0x9d,0xa7,0x8f, +0x3f,0x82,0xe0,0x1, 0x1f,0xa8,0x17,0x48,0x3f,0x18,0xe2,0x0, 0xcf,0x1e,0xe0,0x2, +0x5, 0x99,0xe2,0x0, 0xcc,0x57,0xe0,0x2, 0x5, 0x99,0x9f,0xf, 0xe0,0x4, 0xcf,0x0, +0xb7,0xf, 0xe7,0xfe,0x0, 0xc7,0xe0,0x1, 0x1f,0xa8,0x9f,0xf, 0xcf,0x8, 0xb7,0xf, +0xe7,0xfe,0x0, 0xc0,0xe0,0x1, 0x1f,0xa8,0x9f,0xf, 0xcf,0x4, 0xb7,0xf, 0xe7,0xfe, +0x0, 0xb9,0xe0,0x4, 0x87,0xbe,0xe0,0x1, 0x1f,0x66,0xe0,0x1, 0x1f,0xa8,0xac,0x8e, +0xe7,0xfe,0x0, 0xb0,0xe0,0x1, 0x1f,0xa8,0x9f,0xf, 0xe0,0x40,0xcf,0x0, 0xb7,0xf, +0x0, 0xd3,0xe0,0x1, 0x1f,0xa8,0x9f,0xf, 0xe0,0x80,0xcf,0x0, 0xb7,0xf, 0x0, 0xcc, +0xe0,0x3, 0x8f,0xce,0xe0,0x2, 0x1f,0x51,0x37,0xa8,0x3f,0x99,0x37,0xa1,0xb7,0x8e, +0xe0,0x1, 0x1f,0xa8,0xe7,0xfe,0x0, 0x96,0xe0,0x3, 0x8f,0xae,0xe0,0x2, 0x1f,0x34, +0x37,0xa8,0x3f,0x99,0x37,0xa1,0xb7,0x8e,0x97,0xe, 0xe0,0x0, 0x1f,0xb3,0xb7,0xf, +0xe7,0xfe,0x0, 0xc6,0xe0,0x3, 0x8f,0x8e,0x37,0xa8,0x3c,0x9f,0xe0,0x2, 0x1f,0xc8, +0xb4,0x8f,0xe0,0x1, 0x1f,0xa8,0xe7,0xfd,0x0, 0xfd,0xe0,0x1, 0x1f,0xb1,0x15,0xfb, +0xa6,0xf, 0xe0,0x1, 0x1f,0xa8,0xa7,0x4c,0xa6,0xcc,0x37,0x42,0xe2,0x0, 0xc7,0x1, +0xe4,0x0, 0xcf,0x1, 0x37,0x22,0x3e,0xdb,0x3f,0x4d,0xbf,0x4c,0xe7,0xfd,0x0, 0xea, +0xe0,0x1, 0x1f,0xa8,0x9f,0xf, 0xcf,0x2, 0xb7,0xf, 0xe7,0xfd,0x0, 0xe3,0xe0,0x1, +0x1f,0xa8,0x9f,0xf, 0xcf,0x1, 0xb7,0xf, 0xe7,0xfd,0x0, 0xdc,0xe0,0x1, 0x1f,0xa8, +0x9f,0xf, 0xe0,0x2, 0xcf,0x0, 0xb7,0xf, 0xe7,0xfe,0x0, 0xff,0xe0,0x1, 0x1f,0xa8, +0x9f,0xf, 0xcf,0x10,0xb7,0xf, 0xe7,0xfd,0x0, 0xcd,0xe0,0x1, 0x1f,0xda,0x8f,0x8f, +0x2f,0x87,0xe0,0x1, 0x1f,0xd1,0xa7,0xf, 0xe0,0x2, 0x1f,0xa5,0xbf,0xf, 0x17,0x0, +0xe0,0x2, 0x1f,0xd1,0xe0,0x1, 0x1e,0xe0,0xb7,0xf, 0xe2,0x1, 0xcc,0xad,0xac,0x9d, +0xe7,0xff,0x1, 0x2f,0xe2,0x1, 0xcc,0xae,0xe7,0xfd,0x1, 0xf2,0xdd,0x7f,0xe0,0x1, +0x1f,0xa8,0xe7,0xfd,0x0, 0xaf,0xe2,0x0, 0xcc,0x85,0xe7,0xfd,0x2, 0xb4,0xe0,0x1, +0x1f,0x60,0xe0,0x1, 0xac,0x9e,0xe0,0x0, 0x2c,0xfb,0xe0,0x2, 0xac,0xde,0xe7,0xfd, +0x0, 0xdf,0xe0,0x1, 0x1f,0x60,0xe0,0x6, 0x8f,0x8e,0xe0,0x2f,0x3c,0x8f,0xe7,0xfd, +0x2f,0xa2,0x17,0x82,0xe1,0x2f,0x3c,0x9f,0xe7,0xfd,0x2f,0x9d,0xe0,0x0, 0x1f,0xa3, +0x16,0xb0,0x8f,0x8f,0xe2,0x0, 0xcf,0x81,0xe0,0x1, 0x1, 0xd3,0xe0,0x2, 0x1f,0xa8, +0x8f,0x8f,0xe7,0xfe,0x2f,0x9d,0xe2,0x0, 0xcc,0x4, 0xe7,0xfd,0x1, 0xc, 0xe2,0x0, +0xcc,0x30,0xe7,0xfe,0x1, 0x95,0x8, 0xe1,0xe0,0x1, 0x1f,0xa8,0xe0,0x0, 0x1e,0x33, +0x9f,0xf, 0x15,0x81,0xe0,0x1, 0xcf,0x0, 0xb7,0xf, 0xe2,0x0, 0xcc,0x6d,0xe0,0x2, +0x1f,0x53,0x9e,0x8c,0xa7,0xe, 0x3d,0x9d,0xb5,0x8c,0x3f,0x1d,0xac,0x8e,0xe7,0xfc, +0x1, 0xe9,0xe0,0x1, 0x1f,0x2e,0xe0,0x0, 0x16,0xec,0xae,0x8e,0xe7,0xfc,0x0, 0xe2, +0xe2,0x1, 0xcc,0x6, 0xe0,0x0, 0x1, 0x7e,0xe2,0x1, 0xcc,0x7, 0xe0,0x1, 0x1, 0x11, +0xe2,0x1, 0xcc,0x8, 0xe7,0xfd,0x1, 0x14,0xe2,0x1, 0xcc,0xb, 0xe0,0x1, 0x1, 0x23, +0xe2,0x1, 0xcc,0xc, 0xe0,0x1, 0x1, 0x33,0xe2,0x1, 0xcc,0xd, 0xe0,0x1, 0x1f,0xa8, +0xe7,0xfc,0x1, 0xc8,0xe0,0x2, 0x1f,0x73,0x16,0x60,0xa6,0x8e,0xe2,0x0, 0xc4,0x9f, +0xe0,0x1, 0xa7,0x5d,0x3f,0x5c,0x3f,0x49,0xe0,0x1, 0xbf,0x5d,0xe7,0xfc,0x0, 0xba, +0x17,0x1, 0x3f,0x58,0xe0,0x0, 0x2f,0x4b,0xe2,0x0, 0xcc,0xa, 0xe7,0xfc,0x1, 0xb2, +0x9f,0xf, 0xe0,0x8, 0xcf,0x0, 0xb7,0xf, 0xe7,0xfc,0x0, 0xac,0xe2,0x0, 0xcc,0x82, +0xe0,0x0, 0x1, 0x58,0xe0,0x1, 0x17,0xfd,0x3f,0xd9,0xe2,0x0, 0xcf,0x81,0x1, 0x6, +0xe2,0x0, 0xcc,0x84,0xe7,0xfc,0x1, 0xdc,0x17,0x82,0xe0,0x2, 0xaf,0xde,0xe7,0xfc, +0x0, 0xd7,0xe0,0x1, 0x1f,0xa8,0xe0,0x1, 0x1e,0xe0,0x9f,0xf, 0xcf,0x40,0xb7,0xf, +0xe0,0x3, 0x8f,0xd, 0xe0,0x3, 0x8d,0x9d,0xe0,0x3, 0x8e,0x1d,0x37,0x28,0xc6,0x1, +0xe0,0x3, 0xae,0x1d,0x3f,0x1b,0xe0,0x3, 0x8e,0x1d,0xe3,0xff,0xc7,0x7f,0x2e,0x6, +0xe0,0x3, 0x8e,0xd, 0xc6,0x1, 0xe0,0x3, 0xae,0xd, 0xe2,0x0, 0xcc,0x6f,0xe0,0x2, +0x1e,0xd9,0xa6,0x8d,0x3f,0x1d,0xac,0x8e,0xe7,0xfb,0x1, 0xf4,0xe0,0x1, 0x1f,0x2e, +0xe0,0x0, 0x16,0xee,0xae,0x8e,0xe7,0xfb,0x0, 0xed,0x9f,0xf, 0xcf,0x20,0xb7,0xf, +0xe7,0xfb,0x0, 0xe8,0x3c,0x69,0xdc,0xa5,0xe0,0x1, 0x1f,0xa8,0xe7,0xfb,0x0, 0xe2, +0xe0,0x1, 0x1f,0xb1,0x16,0x78,0xa6,0x8f,0xe2,0x0, 0xc4,0x87,0xe0,0x1, 0xa7,0x2d, +0xe0,0x1, 0x1f,0xa8,0x3f,0x5c,0x3f,0x49,0xe0,0x1, 0xbf,0x2d,0xe7,0xfb,0x0, 0xd2, +0x16,0x83,0xe0,0x2, 0xae,0xde,0xe0,0x1, 0x1f,0xa8,0xe7,0xfb,0x0, 0xcb,0xe0,0x1, +0x1f,0xb1,0x17,0x3, 0xa6,0x8f,0x3f,0x59,0xe0,0x1, 0xa7,0xad,0xe7,0x9f,0x16,0x7f, +0x37,0x2c,0x3f,0xdc,0x3f,0xce,0xe0,0x1, 0xbf,0xad,0xe7,0xfb,0x0, 0xf9,0xe0,0x6, +0xac,0x8e,0xe0,0x1, 0x1f,0xa8,0x9f,0xf, 0xe1,0x0, 0xcf,0x0, 0xb7,0xf, 0xe7,0xfb, +0x0, 0xb1,0xe0,0x1, 0x1f,0xb1,0x15,0xe0,0xa7,0xf, 0x16,0x9f,0xe0,0x1, 0xa6,0x3e, +0x3e,0xd9,0x3e,0x5b,0xe0,0x1, 0xbe,0x3e,0xe0,0x1, 0xa6,0x3e,0xe0,0x1, 0x1f,0xa8, +0x3e,0xcc,0xe0,0x1, 0xbe,0xbe,0xe7,0xfb,0x0, 0x9d,0xe0,0x2, 0x1f,0xcc,0x3c,0x69, +0xac,0x8f,0xe0,0x2, 0xd4,0x93,0xe7,0xfb,0x0, 0xd3,0xe2,0x0, 0xcc,0x5b,0x3f,0xe8, +0xe0,0x0, 0x5, 0xf4,0xe7,0xff,0x17,0x16,0x3f,0x18,0xe2,0x0, 0xcf,0x1, 0xe0,0x0, +0x5, 0xf2,0xe0,0x0, 0x17,0x64,0x3f,0x18,0xe2,0x1, 0xc7,0x7f,0xe2,0x0, 0xcf,0x1, +0xe0,0x1, 0x5, 0x8c,0xe7,0xff,0x17,0x12,0x3f,0x18,0xe2,0x0, 0xcf,0x1, 0xe0,0x1, +0x5, 0x99,0xe7,0xff,0x17,0x14,0x3f,0x18,0xe2,0x0, 0xcf,0x1, 0xe0,0x0, 0x5, 0xea, +0xe7,0xff,0x17,0x18,0x3f,0x18,0xe2,0x0, 0xcf,0x1, 0xe0,0x1, 0x5, 0xc3,0xe0,0x0, +0x17,0x77,0x3f,0x18,0xe2,0x1, 0xc7,0x7f,0xe2,0x0, 0xcf,0x1, 0xe0,0x1, 0x5, 0xe0, +0xe7,0xff,0x17,0x10,0x3f,0x18,0xe2,0x0, 0xcf,0xf, 0xe0,0x1, 0x5, 0xee,0xe0,0x0, +0x17,0x7f,0x3f,0x18,0xe2,0x1, 0xc7,0x7f,0xe2,0x0, 0xcf,0x1, 0xe0,0x1, 0x5, 0x8c, +0xe2,0x1, 0xcc,0x6, 0xe0,0x1, 0x1, 0x63,0xe2,0x1, 0xcc,0x7, 0xe0,0x1, 0x1, 0x6f, +0xe2,0x1, 0xcc,0x8, 0xe0,0x2, 0x1, 0x3, 0xe2,0x1, 0xcc,0xb, 0xe0,0x2, 0x1, 0x1, +0xe2,0x1, 0xcc,0xc, 0xe0,0x2, 0x1, 0x5, 0xe2,0x1, 0xcc,0xd, 0xe0,0x2, 0x1, 0x5, +0xe0,0x0, 0x17,0x70,0x3f,0x18,0xe2,0x1, 0xc7,0x7f,0xe2,0x0, 0xcf,0x4, 0xe0,0x1, +0x2, 0xdf,0xe2,0x1, 0xcc,0x12,0xe0,0x2, 0x1, 0x12,0xe0,0x1, 0x5, 0xfe,0xe2,0x1, +0xcc,0x13,0xe0,0x2, 0x1, 0x2, 0xe2,0x1, 0xcc,0x14,0xe0,0x2, 0x1, 0x83,0xe0,0x1, +0x1f,0xac,0xe0,0x2, 0x8c,0x7f,0x38,0x82,0xe0,0x1, 0x1f,0x60,0x3f,0x9e,0x8c,0xf, +0x38,0x82,0xe0,0x2, 0x1e,0x51,0xe0,0x2, 0x1f,0x25,0x9e,0x8c,0xa7,0xe, 0x15,0x81, +0x3d,0x9d,0xe2,0x0, 0xcf,0xeb,0xb5,0x8c,0x3f,0x1d,0x8c,0xe, 0x1, 0x3e,0x38,0x82, +0xe0,0x2, 0x1e,0x34,0xe0,0x2, 0x1f,0x53,0x9e,0x8c,0xa7,0xe, 0x15,0x81,0x3d,0x9d, +0xe2,0x0, 0xcf,0xed,0xb5,0x8c,0x3f,0x1d,0x8c,0xe, 0x1, 0xf2,0xe0,0x1, 0x1f,0xae, +0xe0,0x0, 0x17,0x6c,0xaf,0xf, 0x38,0x82,0xe0,0x1, 0x1e,0x63,0xe0,0x0, 0x1f,0x35, +0x9e,0x8c,0xa7,0xe, 0x15,0x81,0x3d,0x9d,0xe2,0x1, 0xcf,0x9d,0xb5,0x8c,0x3f,0x1d, +0x8c,0xe, 0x1, 0xde,0xe0,0x1, 0x1f,0xae,0xe7,0xff,0x17,0x1c,0xaf,0xf, 0x38,0x82, +0xe0,0x2, 0x1e,0x48,0xe0,0x2, 0x1f,0x59,0x9e,0x8c,0xa7,0xe, 0x15,0x81,0x3d,0x9d, +0xe2,0x0, 0xcf,0xef,0xb5,0x8c,0x3f,0x1d,0x8c,0xe, 0x1, 0xca,0xe0,0x1, 0x1f,0xae, +0xe0,0x0, 0x17,0x6e,0xaf,0xf, 0x38,0x82,0xe0,0x1, 0x1f,0xae,0xe0,0x0, 0x17,0x6a, +0xaf,0xf, 0x38,0x82,0xe0,0x1, 0x1f,0x60,0x16,0x60,0xe0,0x2, 0x8e,0xfe,0x3e,0x1d, +0xe2,0x0, 0xce,0x1f,0xe0,0x0, 0x2, 0xdb,0xe0,0x1, 0x1e,0x2a,0x3e,0x9c,0xe0,0x44, +0x8c,0xd, 0xe0,0x2, 0x8e,0xfe,0xe2,0x1, 0xcf,0x82,0xc6,0x81,0xe0,0x2, 0xae,0xfe, +0xe7,0xff,0x1, 0xa7,0xe0,0x1, 0x1f,0xae,0xe7,0xff,0x17,0x1, 0xaf,0xf, 0x38,0x82, +0xe0,0x2, 0x1e,0x34,0xe0,0x2, 0x1f,0x53,0x9e,0x8c,0xa7,0xe, 0xe1,0xff,0x15,0xfe, +0x3d,0xdd,0x3f,0x1b,0x97,0xe, 0xe2,0x0, 0xc6,0x81,0xc7,0x1, 0xe3,0xff,0xc7,0x7f, +0xe2,0x0, 0xce,0x80,0x9d,0x8c,0x3c,0x6e,0xe2,0x1, 0xc4,0x7f,0x37,0x48,0x16,0x81, +0x3e,0x9b,0xe0,0x68,0x39,0x2e,0xe2,0x0, 0xcf,0xe9,0xb6,0x8c,0xe7,0xff,0x1, 0x81, +0xe0,0x1, 0x1f,0xae,0xe0,0x0, 0x17,0x68,0xaf,0xf, 0x38,0x82,0xe0,0x0, 0x1e,0x30, +0xe0,0x1, 0x1f,0x6e,0x9e,0x8c,0xa7,0xe, 0x15,0x81,0x3d,0x9d,0xe2,0x1, 0xcf,0x8a, +0xb5,0x8c,0x3f,0x1d,0x8c,0xe, 0xe7,0xfe,0x1, 0xec,0xe0,0x1, 0x1f,0xae,0xe7,0xff, +0x17,0x9, 0xaf,0xf, 0x38,0x82,0xe7,0xf7,0x0, 0xc3,0xe0,0x1, 0x1f,0xb1,0xa7,0x8f, +0xe0,0x1, 0xa4,0x2f,0xe2,0x0, 0xc4,0x7, 0x38,0x82,0xe0,0x2, 0x8e,0x7e,0xe0,0x1, +0x1e,0xa3,0x3e,0x9c,0x8c,0xd, 0xe7,0xff,0x0, 0xa6,0xe0,0x1, 0x1f,0xb1,0xa7,0x8f, +0xe0,0x1, 0xa4,0x2f,0x34,0x4c,0xe2,0x0, 0xc4,0x3, 0x38,0x82,0xe2,0x1, 0xcf,0xfe, +0x14,0x0, 0xe7,0xfe,0x1, 0xc6,0xe0,0x2, 0x1f,0x8d,0x17,0x5, 0x8f,0x8f,0x3f,0x3f, +0xe0,0x2, 0x1f,0xed,0x3f,0x9e,0x8c,0xf, 0x38,0x82,0x14,0x0, 0x38,0x82,0xe0,0x1, +0x1f,0xb1,0xa7,0x8f,0xe0,0x1, 0xa4,0x3f,0xe2,0x0, 0xc4,0x1f,0x38,0x82,0xe0,0x2, +0x1f,0xcc,0x8c,0xf, 0x38,0x82,0xe0,0x2, 0x1f,0xf3,0xa7,0x8f,0xe0,0x1, 0xa4,0x5f, +0xe2,0x0, 0xc4,0x1f,0x38,0x82,0xe2,0x1, 0xcc,0x11,0x1, 0x8b,0xe0,0x1, 0x1f,0xac, +0xe0,0x2, 0x8c,0x4f,0x38,0x82,0xe0,0x1, 0x1f,0xac,0xe0,0x2, 0x8c,0x6f,0x38,0x82, +0xe0,0x1, 0x1f,0xac,0xe0,0x2, 0x8c,0x3f,0x38,0x82,0xe0,0x1, 0x1f,0xac,0xe0,0x2, +0x8c,0x5f,0x38,0x82,0x8, 0xb3,0xe0,0x1, 0x19,0x60,0xe0,0x2, 0x19,0xbf,0xe0,0x3, +0x8f,0xe2,0xe0,0x1, 0x8f,0x3, 0x3f,0x7f,0x1, 0x16,0xe0,0x3, 0x8f,0xe2,0xe0,0x1, +0x8c,0x93,0xe2,0x0, 0xc7,0xbf,0xe0,0x3, 0xaf,0xe2,0xe0,0x3, 0x8f,0xe2,0x3c,0x6f, +0xe0,0x1, 0xaf,0x83,0xe0,0x2, 0xdd,0xaa,0xe0,0x2, 0x1f,0xa8,0x87,0x8f,0xe2,0x0, +0xc7,0x81,0x2f,0xa2,0xe0,0x3, 0x8f,0xf2,0xe0,0x1, 0x8f,0x13,0x3f,0x7f,0x1, 0x16, +0xe0,0x3, 0x8f,0xf2,0xe0,0x1, 0x8c,0x3, 0xe2,0x0, 0xc7,0xbf,0xe0,0x3, 0xaf,0xf2, +0xe0,0x3, 0x8f,0xf2,0x3c,0xef,0xe0,0x1, 0xaf,0x93,0xe0,0x2, 0xdd,0x8f,0xe0,0x2, +0x1f,0xa8,0x87,0x8f,0xe2,0x0, 0xc7,0x81,0x27,0x82,0x9, 0xe1,0xe0,0x1, 0x8c,0x13, +0x9, 0xa1,0xe0,0xd, 0x0, 0x99,0xe0,0x1, 0x8c,0x3, 0xd6,0x95,0x0, 0xdc,0x8, 0xb2, +0xe0,0x1, 0x1f,0xe0,0x16,0x85,0xe0,0x5, 0x8f,0x1f,0x3e,0xb8,0xe0,0x2, 0x1f,0xed, +0x39,0x68,0x3f,0x9d,0x8c,0x3f,0xe0,0x2, 0x1f,0xcd,0x3c,0xee,0x3f,0x92,0xaf,0xf, +0xe0,0x6, 0xdb,0xd7,0xe2,0x0, 0xc9,0x1, 0x1, 0x2, 0x9, 0x61,0x14,0x80,0x14,0x3, +0xe0,0x6, 0xdb,0xcf,0x14,0x80,0x14,0x4, 0xe0,0x6, 0xdb,0xcb,0x14,0x80,0x14,0x0, +0xe0,0x6, 0xdb,0xc7,0x9, 0x61,0xe0,0x0, 0x1f,0xb7,0x8f,0x8f,0x2f,0x82,0x38,0x82, +0xe7,0xf5,0x0, 0x89,0x17,0x86,0x34,0x23,0xe0,0x28,0x3c,0x1f,0x38,0x82,0x17,0x8b, +0x34,0x23,0xe0,0x28,0x3c,0x1f,0x38,0x82,0x8, 0xb5,0xe0,0x2, 0x19,0x6d,0xe0,0x2, +0x1a,0xec,0x3a,0x68,0xe0,0x3, 0x34,0x23,0x8c,0x32,0xaa,0x2, 0x3c,0xe3,0xe0,0x6, +0xdc,0x22,0xc1,0x5, 0x39,0x75,0x1, 0xf9,0x3c,0xe3,0x14,0x3, 0xe0,0x6, 0xdc,0x1b, +0x3c,0xe3,0x14,0x4, 0xa, 0xa1,0xe0,0xd8,0x0, 0x96,0x8, 0xb5,0xe0,0x2, 0x19,0x6d, +0xe0,0x2, 0x1a,0xec,0x3a,0x68,0xe0,0x3, 0x34,0x23,0x8c,0x32,0xaa,0x12,0x3c,0xe3, +0xe0,0x6, 0xdc,0x2c,0xc1,0x5, 0x39,0x75,0x1, 0xf9,0x3c,0xe3,0x14,0x3, 0xe0,0x6, +0xdc,0x25,0x3c,0xe3,0x14,0x4, 0xa, 0xa1,0xe0,0xd8,0x0, 0xa0,0x8, 0xb4,0xe0,0x2, +0x19,0x6d,0xe0,0x2, 0x1a,0x6c,0x39,0xe8,0x8c,0x32,0xa9,0xa2,0x3d,0x63,0x3c,0xe3, +0xe0,0x6, 0xdc,0x39,0xc1,0x5, 0x39,0x74,0x1, 0xf8,0x3d,0x63,0x3c,0xe3,0x14,0x3, +0xe0,0x6, 0xdc,0x31,0x3d,0x63,0x3c,0xe3,0x14,0x4, 0xa, 0x21,0xe0,0xd8,0x0, 0xab, +0x8, 0xb2,0xe0,0x0, 0x1f,0xb7,0x39,0x68,0x8f,0x8f,0x2f,0xa2,0xe0,0x1, 0x1f,0xe0, +0x16,0x85,0xe0,0x3, 0x9f,0x4f,0x3e,0xb2,0xe0,0x2, 0x1f,0xed,0xe2,0x1, 0xc7,0x7f, +0x3f,0x9d,0x8c,0x3f,0x3c,0xee,0xaf,0x4f,0xe0,0x6, 0xdb,0x28,0xe2,0x0, 0xc9,0x1, +0x1, 0x2, 0x9, 0x61,0x14,0x8a,0x14,0x3, 0xe0,0x6, 0xdb,0x20,0x14,0x8a,0x14,0x4, +0xe0,0x6, 0xdb,0x1c,0x14,0x85,0x14,0x0, 0x9, 0x21,0xe0,0xd6,0x0, 0x97,0xda,0xa, +0x0, 0xde,0x16,0x83,0xe0,0x2, 0x1f,0x89,0x3e,0xb8,0xe0,0x1, 0x1f,0x60,0xe0,0xc, +0x3f,0x9d,0xe0,0x4, 0x8d,0x8e,0x8d,0xc, 0x3d,0x7b,0x1, 0x4, 0xe0,0x4, 0x8d,0x8e, +0xad,0x8c,0xe0,0xc, 0x3f,0x9d,0xe0,0x4, 0x8d,0x9e,0x8d,0x1c,0x3d,0x7b,0x1, 0x4, +0xe0,0x4, 0x8d,0x9e,0xad,0x9c,0x3f,0x9d,0x8e,0x2f,0xe0,0x4, 0x8e,0xae,0x3e,0x7d, +0x1, 0x4, 0xe0,0x4, 0x8f,0x2e,0xaf,0x2f,0xe0,0xf, 0x0, 0xc9,0x8, 0xb3,0xe0,0x2, +0x1f,0x73,0xe0,0x2, 0x19,0xd, 0xa7,0x8e,0xa7,0xcf,0xe2,0x0, 0xc7,0x81,0x27,0x86, +0x8f,0x82,0xe2,0x0, 0xcf,0x82,0x1, 0x2, 0x17,0x81,0xe0,0x0, 0x19,0xb7,0xaf,0x82, +0xaf,0x83,0x8c,0x82,0x24,0x94,0xe2,0x0, 0xcc,0x82,0x1, 0x89,0xa7,0x8e,0xa7,0xcf, +0xe2,0x0, 0xc7,0x81,0x27,0x83,0xac,0x82,0xac,0x83,0x9, 0xe1,0x14,0x81,0x14,0x0, +0xe0,0x0, 0xd7,0xda,0x17,0x81,0xaf,0x82,0xaf,0x83,0x9, 0xe1,0x3c,0x69,0x9, 0xa1, +0xe0,0xf, 0x0, 0xd2,0x8, 0xb3,0xe0,0x1, 0x1f,0xd1,0xe0,0x1, 0x19,0x60,0xa6,0x8f, +0xe0,0x2, 0x1f,0x25,0xe0,0x2, 0x8f,0xd2,0xbe,0x8e,0xe0,0x0, 0x27,0xfd,0xe0,0x2, +0x8f,0xd2,0xe2,0x0, 0xcf,0x81,0xe0,0x0, 0x1, 0x77,0xe0,0x2, 0x8f,0xd2,0xe0,0x2, +0x19,0x8d,0xe2,0x0, 0xcf,0x83,0x1, 0x86,0xe0,0x2, 0x1f,0x70,0xe0,0x2, 0x1f,0xd9, +0xbf,0xf, 0x16,0x0, 0xe0,0x2, 0x1f,0xa8,0xe0,0x2, 0x1f,0x3f,0x87,0x8f,0xe0,0x3, +0x8f,0x2e,0xe2,0x0, 0xc7,0x81,0xe0,0x2, 0x1e,0xc8,0x3f,0x7f,0xb6,0xd, 0xe0,0x0, +0x1, 0x69,0xe0,0x2, 0x1f,0x3e,0xe0,0x2, 0x1f,0xd3,0xbf,0xf, 0x16,0x0, 0x8f,0x3, +0xe0,0x2, 0x1f,0xed,0xe4,0x0, 0xc7,0x5, 0x3f,0x1f,0x87,0xe, 0xe0,0x6, 0xaf,0x12, +0x8f,0x3, 0xe4,0x0, 0xc7,0x5, 0x3f,0x1f,0x87,0x1e,0xe0,0x6, 0xaf,0x22,0x8f,0x3, +0xe4,0x0, 0xc7,0x5, 0x3f,0x1f,0x87,0x2e,0xe0,0x6, 0xaf,0x42,0x8f,0x3, 0xe4,0x0, +0xc7,0x5, 0x3f,0x1f,0x87,0x3e,0xe0,0x6, 0xaf,0x52,0x8f,0x3, 0xe4,0x0, 0xc7,0x5, +0x3f,0x9e,0x8f,0xcf,0xe0,0x3, 0xb7,0xc2,0x17,0x80,0xe0,0x6, 0xaf,0xb2,0xe0,0x3, +0xb6,0x32,0x8f,0x3, 0xe0,0x2, 0x1f,0xcd,0x8c,0x3, 0x3f,0x9e,0x87,0x8f,0xe0,0x5, +0xaf,0x92,0xd7,0x34,0x8f,0x3, 0xe0,0x2, 0x1f,0x89,0xe4,0x0, 0xc7,0x3, 0x3f,0x1f, +0x87,0xe, 0xe0,0x4, 0xaf,0x2, 0x8f,0x3, 0xe4,0x0, 0xc7,0x3, 0x3f,0x1f,0x87,0x1e, +0xe0,0x4, 0xaf,0x12,0x8f,0x3, 0xe4,0x0, 0xc7,0x3, 0x3f,0x9e,0x87,0xaf,0xe0,0x4, +0xaf,0xa2,0x81,0x83,0xe0,0x0, 0x1f,0xb7,0xe0,0x6, 0xa9,0x82,0x87,0x8f,0xe0,0x1, +0xaf,0xc2,0x9, 0xe1,0xe0,0x2, 0x19,0x8d,0x8f,0x83,0xe2,0x0, 0xcf,0x82,0xe7,0xff, +0x1, 0x8d,0xe0,0x2, 0x1f,0x6f,0xe0,0x2, 0x1f,0xd9,0xbf,0xf, 0xe7,0xff,0x0, 0x8b, +0xe0,0x2, 0x1f,0x3d,0xe0,0x2, 0x1f,0xd3,0xbf,0xf, 0xe7,0xff,0x0, 0x99,0x8, 0xb1, +0xe0,0x2, 0x1f,0xd1,0x17,0x0, 0x14,0x1, 0xb7,0xf, 0xe0,0x1, 0xd0,0x32,0xdf,0x2f, +0xe0,0x0, 0x1f,0xb7,0x8c,0xf, 0xe0,0x0, 0xde,0x62,0x8, 0xa1,0xe7,0xfe,0x0, 0xd4, +0x8, 0xb7,0xf8,0x0, 0xc, 0x38,0xe0,0x2, 0x1f,0x8d,0xe0,0x1, 0x19,0xe0,0x8a,0xf, +0xe0,0x1, 0x19,0x28,0x13,0x5, 0xe0,0x2, 0x1a,0xed,0x3b,0x34,0xe0,0x6, 0x8d,0x13, +0xe0,0x6, 0x8d,0xa3,0xe0,0x6, 0x8e,0x43,0xe0,0x3, 0x9e,0xc3,0x9f,0x2, 0xe0,0xf, +0x3a,0x96,0xf0,0x0, 0x8c,0xf, 0x8b,0x9f,0xad,0xf, 0xe2,0x2, 0xc7,0x0, 0xad,0x9f, +0xae,0x2f,0xae,0xcf,0xe0,0x1, 0x2f,0x3f,0x9f,0x82,0xe2,0x0, 0xc7,0x81,0x27,0x92, +0x9f,0x82,0xe3,0xff,0xc7,0xfe,0xb7,0x82,0xe0,0x6, 0x8f,0x93,0x37,0xa3,0xe2,0x0, +0xcf,0x86,0xe0,0x0, 0x2, 0x78,0xe0,0xf, 0x3a,0x96,0xf0,0x0, 0xac,0xf, 0xf0,0x6, +0xac,0x13,0x9f,0x82,0xe2,0x0, 0xc7,0x82,0x27,0x90,0x9f,0x82,0xe3,0xff,0xc7,0xfd, +0xb7,0x82,0xe0,0x6, 0x8f,0xa3,0x37,0xa3,0xe2,0x0, 0xcf,0x8b,0xe0,0x0, 0x2, 0x6e, +0x3a,0x96,0xab,0x95,0xe0,0x6, 0xab,0xa3,0x9f,0x82,0xe2,0x0, 0xc7,0x84,0xe0,0x1, +0x2f,0x9a,0x9f,0x82,0xe2,0x0, 0xc7,0x88,0xe0,0x1, 0x2f,0xa4,0x9f,0x82,0xe2,0x0, +0xc7,0xa0,0xe0,0x1, 0x2f,0xab,0x9f,0x82,0xe2,0x0, 0xc7,0xc0,0xe0,0x0, 0x2f,0xf9, +0x9f,0x82,0xe2,0x1, 0xc7,0x80,0xe0,0x0, 0x2f,0xed,0x9f,0x82,0xe2,0x4, 0xc7,0x80, +0x27,0xa6,0x9f,0x82,0xe0,0x2, 0x1f,0x73,0xe3,0xfb,0xc7,0xff,0xa6,0x8e,0xb7,0x82, +0xe7,0xbf,0x17,0x7f,0xe0,0x1, 0xa7,0xed,0xe7,0xc0,0x15,0x80,0x3f,0xde,0xe0,0x1, +0xbf,0xed,0xe0,0x0, 0x1f,0xb1,0xe0,0xb, 0x8f,0x23,0xa6,0xf, 0xe4,0x0, 0xc7,0x32, +0xe0,0x1d,0xc6,0x40,0xa7,0xfc,0xe2,0x3f,0xc7,0x7e,0x3f,0xdb,0x3f,0xce,0xbf,0xfc, +0xe0,0x1, 0xa7,0xed,0xe0,0x40,0xcf,0x80,0xe0,0x1, 0xbf,0xed,0x9f,0x82,0xe2,0x8, +0xc7,0x80,0x27,0x85,0x9f,0x82,0xe3,0xf7,0xc7,0xff,0xb7,0x82,0x9f,0x82,0xe2,0x20, +0xc7,0x80,0x27,0x85,0x9f,0x82,0xe3,0xdf,0xc7,0xff,0xb7,0x82,0x9f,0x82,0xe2,0x40, +0xc7,0x80,0x2f,0xa8,0x9f,0x82,0xe2,0x80,0xc7,0x80,0x2f,0x9a,0xf8,0x0, 0xc, 0x28, +0xb, 0xe1,0xe0,0x6, 0x8c,0x13,0xdd,0xe1,0xe0,0x0, 0x1f,0xb7,0x8f,0x8f,0xe7,0xff, +0x27,0x8a,0xd8,0x58,0xe7,0xff,0x0, 0x87,0xe0,0x6, 0x8c,0x23,0xdd,0xef,0xe0,0x0, +0x1f,0xb7,0x8f,0x8f,0xe7,0xff,0x27,0x92,0xd8,0x4d,0xe7,0xff,0x0, 0x8f,0x9f,0x82, +0x3c,0x64,0xe3,0x7f,0xc7,0xff,0xb7,0x82,0xf8,0x0, 0xc, 0x28,0xb, 0xa1,0xe7,0xfa, +0x0, 0xcb,0x9f,0x82,0x3c,0x64,0xe3,0xbf,0xc7,0xff,0xb7,0x82,0xde,0x33,0x0, 0xd3, +0x9f,0x82,0xe3,0xfe,0xc7,0xff,0xb7,0x82,0xd5,0x6b,0xe7,0xff,0x0, 0x90,0x9f,0x82, +0xe0,0x2, 0x1c,0x70,0xe3,0xff,0xc7,0xbf,0x3c,0xe4,0xb7,0x82,0xd4,0x5a,0xe7,0xff, +0x0, 0x81,0x9f,0x82,0x3c,0x64,0xe3,0xfd,0xc7,0xff,0xb7,0x82,0xdd,0x71,0xe7,0xfe, +0x0, 0xbd,0x9f,0x82,0x3c,0x64,0xe3,0xff,0xc7,0xfb,0xb7,0x82,0x9f,0x82,0xe0,0x20, +0xcf,0x80,0xb7,0x82,0xdd,0xe6,0x9f,0x82,0xe2,0x0, 0xc7,0x88,0xe7,0xfe,0x27,0xe0, +0x9f,0x82,0xe3,0xff,0xc7,0xf7,0xb7,0x82,0xe0,0x6, 0x8c,0x43,0xdd,0xc0,0x9f,0x82, +0xe2,0x0, 0xc7,0xa0,0xe7,0xfe,0x27,0xd9,0x9f,0x82,0x3c,0x64,0xe3,0xff,0xc7,0xdf, +0xb7,0x82,0x9f,0x82,0xe0,0x4, 0xcf,0x80,0xb7,0x82,0x9f,0x82,0xe0,0x20,0xcf,0x80, +0xb7,0x82,0xdd,0xc7,0xe7,0xfe,0x0, 0xc9,0xe0,0x1, 0x1f,0x60,0x8f,0xce,0xe2,0x0, +0xcf,0x85,0x1, 0x5, 0xe2,0x0, 0xcf,0x84,0x1, 0x7, 0x38,0x82,0x17,0x81,0xaf,0xce, +0x17,0x82,0xaf,0xce,0x38,0x82,0xe7,0xef,0x0, 0xff,0xe0,0x1, 0x1f,0x60,0xe0,0x2, +0x1f,0x8d,0xe0,0x6, 0x8e,0xe, 0x8e,0x8f,0x3e,0x7d,0x1, 0x6, 0xe0,0x6, 0x87,0xe, +0xaf,0xf, 0xe7,0xfd,0x0, 0xbe,0x38,0x82,0xe0,0x1, 0x1f,0xe0,0xe0,0x1, 0x8f,0xff, +0x2f,0x82,0x38,0x82,0xe0,0xcc,0x0, 0x89,0x8, 0xb4,0xe0,0x1, 0x19,0x60,0x8f,0xc2, +0xe2,0x0, 0xcf,0x85,0x1, 0x21,0xe2,0x0, 0xcf,0x84,0x1, 0x33,0xe0,0x1, 0x8f,0xf2, +0x2f,0x98,0xe0,0x1, 0x1a,0x28,0x99,0x84,0x29,0x82,0xa, 0x61,0x14,0x1, 0xe0,0x0, +0xde,0xd8,0xe0,0x43,0x39,0x93,0xe2,0x0, 0xc9,0x80,0x4, 0x13,0xde,0xaa,0xe0,0x1, +0x8f,0xe2,0xe2,0x1, 0xc7,0xfd,0xe0,0x1, 0xaf,0xe2,0xa, 0x21,0xe0,0x1c,0x0, 0xf8, +0xe0,0x6, 0xd5,0xe3,0x0, 0xe7,0x17,0x81,0xaf,0xc2,0x17,0x82,0xaf,0xc2,0x0, 0xdf, +0x9f,0x84,0xe0,0x2, 0x1f,0xd, 0xe2,0xff,0xc7,0xff,0xb7,0x84,0xe0,0x6, 0x8e,0x82, +0x8f,0x8e,0x3e,0xff,0x1, 0x64,0xe0,0x6, 0x87,0x82,0xaf,0x8e,0xde,0x79,0x0, 0xdf, +0xef,0xff,0xd7,0xaa,0x0, 0xcc,0xe0,0x1, 0x1f,0xe0,0xe0,0x2, 0x8f,0x5f,0x27,0xc, +0xe0,0x2, 0x8f,0x5f,0xe2,0x0, 0xcf,0x1, 0x1, 0x7, 0xe0,0x2, 0x8f,0xdf,0xe2,0x0, +0xcf,0x83,0x1, 0x12,0x38,0x82,0xe0,0x2, 0x1f,0xd, 0x8f,0xe, 0xe2,0x0, 0xcf,0x2, +0x1, 0x11,0xe0,0x2, 0x8f,0xdf,0xe0,0x2, 0x1e,0xf0,0xe0,0x2, 0x1f,0x59,0xe2,0x0, +0xcf,0x83,0xbe,0x8e,0x1, 0xf0,0xe0,0x2, 0x1f,0x70,0xe0,0x2, 0x1f,0xd9,0xbf,0xf, +0x38,0x82,0xe0,0x2, 0x8f,0xdf,0xe0,0x2, 0x1e,0xef,0xe0,0x2, 0x1f,0x59,0xe2,0x0, +0xcf,0x83,0xbe,0x8e,0x1, 0xe0,0x0, 0xf0,0x8, 0xb1,0xe0,0x2, 0x1e,0x85,0xe0,0x1, +0x1e,0x5f,0x17,0x80,0xe0,0x4, 0xaf,0xdd,0x17,0x80,0x97,0xc, 0xe3,0xfe,0xc7,0x7f, +0xb7,0xc, 0xe0,0x2, 0x1f,0x51,0xe0,0x4, 0x8e,0xdd,0xb7,0x8e,0xe0,0x2, 0x1f,0x34, +0xb7,0x8e,0xe0,0x0, 0x1f,0x33,0xb7,0x8e,0xe0,0x1, 0x1f,0xe0,0x8f,0x6f,0xe0,0x0, +0x1f,0xa1,0xae,0x8f,0xe0,0x2, 0x1f,0xbc,0xaf,0xf, 0xe0,0x2, 0xd2,0x7f,0xdd,0x83, +0xe0,0x1, 0x1f,0xd1,0xe0,0xc, 0x15,0x52,0xa4,0xf, 0xe0,0x1, 0x1f,0xd0,0xa4,0x8f, +0xe0,0x8, 0xd8,0x9a,0xe0,0x2, 0x1f,0xbb,0xe0,0x2, 0x1f,0xd, 0x8f,0x8f,0x8f,0xe, +0x37,0xde,0xe2,0x0, 0xc7,0x81,0x27,0x82,0x8, 0xe1,0x8, 0xa1,0xe0,0x1b,0x0, 0xf0, +0x38,0x82,0xe0,0x0, 0x1f,0xb7,0xe0,0x1, 0x1f,0x60,0x87,0x8f,0xe0,0x1, 0x1e,0xa6, +0xe0,0x1, 0xaf,0xce,0x14,0x3, 0x86,0x8d,0xe0,0x2, 0x1f,0xa1,0xae,0xfe,0xe0,0x2, +0x16,0xfd,0x8d,0xee,0xe0,0x2, 0x1e,0x3c,0x17,0x0, 0x3e,0x9f,0xe0,0x2, 0xc7,0xfc, +0xad,0x8c,0xaf,0xd, 0xaf,0xf, 0xe0,0x3, 0x0, 0x9f,0x8, 0xb1,0xe0,0x1, 0x1f,0xd1, +0xe0,0x0, 0x1c,0x19,0xa4,0x8f,0xe0,0xc, 0x15,0x52,0xe0,0x8, 0xd8,0x65,0xe0,0x0, +0x1e,0x18,0xe0,0x0, 0x1f,0x17,0xe0,0x0, 0x1d,0x16,0x9f,0x9e,0xe0,0x43,0x3d,0x9f, +0xe2,0x0, 0xcd,0x80,0xe0,0x41,0x3e,0xcf,0xe3,0xff,0xc6,0xff,0xe0,0x6f,0x3d,0x2d, +0xe0,0x80,0xb7,0x9e,0x9e,0x8c,0x3e,0xff,0x3, 0x82,0xb7,0x8c,0x3f,0x7a,0xc6,0x2, +0x1, 0xed,0x8, 0xe1,0x8, 0xb6,0xea,0xf, 0x7b,0x28,0xe0,0x1, 0x1a,0x60,0x99,0x6, +0xe0,0x2, 0xa9,0x44,0xe0,0x2, 0x8f,0x94,0xe2,0x0, 0xcf,0x81,0x1, 0xa, 0x21,0x8, +0xe0,0x1, 0x1f,0x5f,0x16,0x80,0x97,0x8e,0xb6,0x86,0xcf,0x84,0xb7,0x8e,0xb, 0x61, +0x87,0x84,0xe7,0xff,0x17,0x0, 0x3f,0xce,0xe2,0x0, 0xc9,0x5, 0xaf,0x84,0x2, 0x9d, +0xe0,0x0, 0x1c,0x18,0xe0,0xc, 0x15,0x52,0x14,0x80,0xe0,0x8, 0xd8,0x5f,0xe0,0x1, +0x1c,0x58,0xe0,0xc, 0x15,0x52,0x14,0x80,0xe0,0x8, 0xd8,0x58,0xe0,0x0, 0x1c,0x19, +0xe0,0xc, 0x15,0x52,0x14,0x80,0xe0,0x8, 0xd8,0x51,0xe0,0x1, 0x1c,0x57,0xe0,0xc, +0x15,0x52,0x14,0x80,0xe0,0x8, 0xd8,0x4a,0xc1,0x1, 0xe3,0xff,0xc1,0x7f,0xe2,0x0, +0xc9,0x5, 0xb1,0x6, 0x2, 0xb8,0xe0,0x2, 0x8f,0xb4,0xe0,0x2, 0x8f,0x24,0x37,0xa8, +0x3f,0x9e,0xc7,0x85,0x39,0x7f,0x1, 0xcc,0xe0,0x2, 0x1f,0x51,0x17,0x80,0xe0,0x1, +0x1e,0xe3,0xb7,0x8e,0x11,0x0, 0xb7,0x8d,0x12,0x8a,0xe0,0x0, 0x1f,0x18,0xe0,0x2, +0xaf,0x94,0x39,0xee,0xe0,0x2, 0x1f,0xa5,0xbf,0xf, 0x9a,0x3, 0xe2,0x0, 0xca,0x46, +0x5, 0x8c,0x21,0x1b,0xe0,0x40,0x9f,0x93,0x9c,0x13,0x3c,0xe5,0x3c,0x1f,0xe0,0x8, +0xd5,0xdb,0xe0,0x8, 0x3a,0x28,0xb4,0x3, 0xc1,0x1, 0xe3,0xff,0xc1,0x7f,0xe2,0x6, +0xc9,0x29,0xc1,0x82,0x1, 0xeb,0x17,0x80,0xb7,0x86,0x17,0x1, 0xe0,0x1, 0x1f,0xda, +0xaf,0xf, 0xb, 0x61,0xdf,0x63,0x0, 0xc8,0x3f,0xe2,0x0, 0xe7,0x8, 0xb7,0xf8,0x0, +0xc, 0x3c,0xe0,0x2, 0x19,0xff,0xdf,0x1, 0x8f,0x83,0xe2,0x0, 0xcf,0x83,0xe0,0x0, +0x1, 0xe5,0xe0,0x1, 0x19,0x60,0xf0,0x2, 0x1c,0xd, 0xe0,0x2, 0x1b,0x59,0xe0,0x2, +0x1a,0xf0,0xe0,0x2, 0x1b,0xef,0xf0,0x2, 0x1d,0x3c,0xf0,0x2, 0x1c,0xa8,0xf0,0x1, +0x1e,0x51,0xf0,0x1, 0x1d,0xd7,0xe0,0x13,0x12,0x44,0x0, 0x96,0xe0,0x2, 0x8f,0xd2, +0xe2,0x0, 0xcf,0x81,0x1, 0x17,0xe0,0x2, 0x8f,0xd2,0xe2,0x0, 0xcf,0x83,0x1, 0x1f, +0x3c,0x64,0xe0,0x6, 0xd1,0x58,0x8f,0x82,0x37,0xc7,0x2f,0xa0,0xdf,0x13,0x8f,0x83, +0xe2,0x0, 0xcf,0x83,0x1, 0xba,0xde,0x61,0xe0,0x1, 0xd0,0x7, 0xe0,0x2, 0x8f,0xd2, +0x2f,0xe6,0xe8,0x0, 0x8f,0x88,0xe2,0x0, 0xcf,0x82,0x3f,0xe7,0xe0,0x6f,0x39,0xa5, +0xbf,0x86,0xe0,0x2, 0x8f,0xd2,0xe2,0x0, 0xcf,0x83,0x1, 0xe3,0x3c,0x64,0xba,0x86, +0xe0,0x6, 0xd1,0x39,0x8f,0x82,0x37,0xc7,0x27,0xe2,0x14,0x1, 0xe0,0x0, 0xdd,0x31, +0xe0,0x2, 0xd1,0x98,0xe0,0x2, 0xd8,0x4, 0xe8,0x0, 0x8f,0x8a,0xe2,0x0, 0xcf,0x81, +0x1, 0x1a,0xe0,0x2, 0x8f,0x92,0x2f,0x97,0xe8,0x0, 0x8f,0x89,0x27,0x82,0xdf,0x23, +0xe0,0x2, 0x8f,0x92,0x2f,0xcc,0x87,0x82,0xe2,0x0, 0xc7,0xff,0xaf,0x82,0xde,0xda, +0x8f,0x83,0xe2,0x0, 0xcf,0x83,0x1, 0x48,0x14,0x1, 0xf8,0x0, 0xe, 0x28,0xb, 0xa1, +0xe0,0x1a,0x0, 0x8f,0xe8,0x0, 0x8f,0x89,0x27,0xec,0xe0,0x3, 0xdd,0x16,0xe0,0x2, +0x8f,0x92,0xe2,0x0, 0xcf,0x81,0x1, 0xa, 0xe0,0x3, 0xdb,0x64,0xe0,0x7, 0xd6,0xc8, +0xe0,0x2, 0xd2,0xb8,0xe0,0x4, 0xd8,0xf5,0x0, 0xd8,0xe8,0x0, 0xa4,0x8c,0xe0,0xc, +0x15,0x52,0xe8,0x40,0x3c,0x6b,0xe0,0x8, 0xd7,0x3f,0x0, 0xef,0x8, 0xb1,0xe2,0x0, +0xcc,0x66,0x1, 0x2f,0x5, 0x98,0xe2,0x1, 0xcc,0x8, 0x1, 0x9, 0xe2,0x1, 0xcc,0x2a, +0x1, 0xa3,0xe0,0x2, 0x1f,0xd8,0x17,0x5, 0xaf,0xf, 0x8, 0xe1,0xe0,0x2, 0x1f,0xd8, +0x8f,0x8f,0xe2,0x0, 0xcf,0x85,0x1, 0xfa,0x14,0x1, 0xe0,0x1, 0xdc,0xa0,0x8, 0xa1, +0xe0,0x38,0x0, 0xf8,0xe2,0x0, 0xcc,0x55,0x1, 0x8f,0xe0,0x2, 0x1f,0xd8,0x8f,0x8f, +0xe2,0x0, 0xcf,0x85,0x1, 0xeb,0x14,0x1, 0xe0,0x1, 0xdc,0x91,0xe0,0x1, 0xdc,0x44, +0x8, 0xa1,0xe0,0x38,0x0, 0xd6,0xe0,0x2, 0x1f,0xd8,0x17,0x1, 0xaf,0xf, 0x8, 0xe1, +0xe0,0x2, 0x1f,0xd8,0x8f,0x8f,0xe2,0x0, 0xcf,0x85,0x1, 0xd8,0x14,0x1, 0xe0,0x1, +0xdc,0x7e,0xe0,0x1, 0x1f,0xb1,0x17,0x7f,0xa7,0x8f,0xe0,0x7, 0xaf,0x3f,0x8, 0xe1, +0xe0,0x0, 0x1f,0xe, 0xe0,0x2, 0x1f,0xa1,0xe0,0x3, 0x16,0x3d,0x3e,0x1e,0xe0,0x0, +0x1d,0xaa,0xe0,0x2, 0x16,0xfc,0x3e,0x9f,0x85,0xc, 0x84,0x8b,0xe0,0x3, 0xc7,0x3e, +0x86,0x8d,0xe0,0x1, 0x1e,0x2d,0xe0,0x2, 0x15,0xfd,0xe0,0x1, 0x1c,0x26,0x3d,0x9f, +0xad,0xe, 0xe0,0x3, 0xc7,0x80,0x17,0x0, 0x3e,0x99,0xaf,0xf, 0xe0,0x3, 0x86,0x1c, +0xe0,0x2, 0x1c,0x85,0x84,0x8, 0xe0,0x1, 0x1f,0xf1,0xe0,0x5, 0xac,0x39,0xae,0x8b, +0xae,0xf, 0x38,0x82,0xe0,0x2, 0x1f,0x5, 0xe0,0x2, 0x1f,0xff,0xe0,0x4, 0x87,0x7e, +0xaf,0xf, 0x38,0x82,0x8, 0xb1,0xe0,0x7, 0xd8,0x86,0x8, 0xa1,0xe0,0xed,0x0, 0xa0, +0x8, 0xb1,0xe0,0x5, 0xd0,0xf2,0xe0,0x2, 0x1f,0x5, 0xe0,0x2, 0x1f,0xff,0xe0,0x4, +0x87,0x7e,0xaf,0xf, 0x8, 0xe1,0x8, 0xb2,0xe0,0x2, 0x1f,0x85,0x17,0x0, 0xe0,0x4, +0xaf,0x5f,0x17,0x0, 0xe0,0x4, 0x8e,0x5f,0xe0,0x0, 0x1e,0xa1,0xe0,0x2, 0x1f,0xac, +0xe0,0x2, 0x19,0x3f,0xae,0xd, 0xb7,0xf, 0xe0,0x19,0x17,0x1c,0xe0,0x2, 0x1e,0x8d, +0x3f,0x12,0x17,0x81,0xaf,0x8d,0xaf,0x8e,0xe0,0x2, 0xd0,0x78,0xdb,0x7c,0xe0,0x1b, +0x14,0x2c,0xe0,0x6, 0xd0,0x50,0xe0,0x5, 0xda,0xe5,0xe0,0x5, 0xd0,0xcf,0xe0,0x19, +0x17,0x1d,0x17,0x87,0x3f,0x12,0xaf,0x8e,0xe0,0x19,0xc1,0x1e,0xaf,0x82,0x9, 0x61, +0x8, 0xb7,0xf8,0x0, 0xc, 0x3c,0xe0,0x2, 0x19,0x7f,0xe0,0x2, 0x1b,0x85,0xe0,0x1, +0x1b,0x22,0xe0,0x1, 0x1a,0xa1,0xe0,0x2, 0x1a,0x28,0xe0,0x1, 0x19,0xcf,0xf0,0x1, +0x1c,0x2d,0xf0,0x2, 0x1d,0xd, 0xf0,0x1, 0x1c,0xce,0xf0,0x0, 0x1e,0xd, 0xf0,0x0, +0x1d,0x8c,0xdf,0xba,0x8f,0x82,0xe2,0x0, 0xcf,0x81,0xe0,0x0, 0x1, 0xf1,0xe0,0x1, +0xd6,0x89,0xe0,0x4, 0xd2,0x88,0xe0,0x0, 0xde,0xd8,0x8f,0x86,0x8c,0x5, 0x37,0xa8, +0x3c,0x4f,0xe0,0x6, 0xd0,0x18,0xe0,0x2, 0xd6,0x6f,0x8f,0x84,0xe0,0x0, 0x27,0xf1, +0x8f,0x83,0xe0,0x0, 0x27,0xf4,0xe0,0x3, 0xdc,0x18,0xe8,0x3, 0x8f,0x98,0xe0,0x0, +0x27,0xf6,0xe0,0x2, 0xd1,0xbf,0xe8,0x0, 0x8c,0x8a,0xe8,0x0, 0x8c,0x9, 0xe0,0x2, +0xd6,0x3e,0x8f,0x83,0xe0,0x0, 0x27,0xe3,0x14,0x1, 0xe0,0x5, 0xdc,0xed,0xe0,0x4, +0xd7,0xf0,0xe0,0x4, 0x8f,0xc7,0xe2,0x0, 0xcf,0x81,0xe0,0x0, 0x1, 0x66,0xe0,0x2, +0xd2,0x88,0xe0,0x2, 0xdb,0x7, 0x14,0x2, 0xe0,0x5, 0xdc,0xde,0xe0,0x5, 0xdd,0x87, +0x14,0x3, 0xe0,0x5, 0xdc,0xd9,0xe0,0x4, 0xd2,0x4, 0x14,0x4, 0xe0,0x5, 0xdc,0xd4, +0xe0,0x7, 0xd9,0xa0,0xe0,0x6, 0xd2,0xad,0xe0,0x0, 0x1f,0x2a,0xe0,0x2, 0x1f,0xa0, +0x86,0x8e,0x87,0x8f,0xe8,0x3, 0x87,0x18,0x3f,0x9d,0xe8,0x0, 0x86,0x8b,0xe8,0x0, +0xae,0x8c,0xe0,0x2, 0x1e,0x9f,0xaf,0x8d,0x16,0x80,0xe0,0x2, 0x1f,0x9e,0xae,0x8f, +0xe0,0x1, 0x1f,0xa6,0x87,0x8f,0xe0,0x5, 0xaf,0xb7,0xe0,0x1, 0x1f,0xf1,0xaf,0xf, +0xe0,0x1, 0xd9,0xa2,0xe0,0x7, 0xd7,0xc7,0xe0,0x7, 0xd5,0xe2,0xe0,0x4, 0x87,0xf7, +0xaf,0x82,0x8f,0x82,0xe2,0x0, 0xcf,0x81,0xe7,0xff,0x1, 0x13,0x14,0x1, 0xe0,0x0, +0xdb,0xb0,0xe0,0x4, 0x8f,0xc7,0xe2,0x0, 0xcf,0x81,0x1, 0x87,0xe0,0x1, 0x1f,0xb1, +0xa7,0xf, 0xa7,0xce,0xcf,0x84,0xbf,0xce,0xf8,0x0, 0xe, 0x28,0xb, 0xe1,0x8f,0x83, +0xe7,0xfe,0x27,0xfa,0xe0,0x1, 0xd9,0x80,0x0, 0xe2,0x87,0x82,0xe0,0x5, 0xd0,0x15, +0xe0,0x4, 0x87,0xf7,0xaf,0x82,0xe7,0xfe,0x0, 0xef,0xe0,0x3, 0xd6,0x55,0xe0,0x7, +0xd5,0x57,0xe7,0xff,0x0, 0x88,0xe0,0x1, 0x1f,0xb1,0xa7,0xf, 0xa7,0xce,0xcf,0x84, +0xbf,0xce,0xe7,0xff,0x0, 0x96,0x8, 0xb2,0xe0,0x2, 0x1f,0x5, 0x16,0x81,0xe0,0x4, +0xae,0xfe,0x14,0x2, 0xe0,0x4, 0x87,0x7e,0xe0,0x2, 0x1e,0xff,0xe0,0x2, 0x1f,0xbf, +0xaf,0xd, 0x16,0x80,0xe0,0x1, 0x1f,0x60,0xe0,0x1, 0x1e,0x31,0xae,0x8e,0xe0,0x19, +0x16,0x9d,0x3e,0x9f,0x17,0x7, 0xa1,0xc, 0xaf,0xd, 0xe0,0x19,0xc7,0x9e,0xaf,0xf, +0x17,0x7b,0xa7,0xc2,0x3f,0xde,0xbf,0xc2,0xe0,0x1, 0xdb,0x29,0xa7,0xc2,0xcf,0x84, +0xbf,0xc2,0x9, 0x61,0x8, 0xb2,0xe0,0x2, 0x19,0x5, 0xe0,0x5, 0xdf,0x2, 0xe0,0x2, +0xd7,0xa9,0xe0,0x2, 0xd9,0x83,0xe0,0x1, 0xdf,0x73,0xe0,0x3, 0xde,0x19,0xe0,0x3, +0xde,0xa5,0xdf,0xca,0xe0,0x4, 0x8f,0xf2,0xe2,0x0, 0xcf,0x81,0x1, 0xa, 0xe2,0x0, +0xcf,0x83,0x1, 0xf9,0xdd,0xc4,0xe0,0x4, 0x8f,0xf2,0xe2,0x0, 0xcf,0x81,0x1, 0xf8, +0xdf,0x0, 0x0, 0xf1,0xe0,0xe, 0x34,0x22,0xe0,0xf, 0x34,0x42,0xe0,0x43,0x3f,0xe, +0xe0,0x2, 0x1d,0xf3,0x16,0x4, 0x16,0x81,0x3e,0xdf,0x3e,0x5e,0xf0,0x0, 0xa3,0x8b, +0x3e,0x4d,0xe2,0x0, 0xc4,0x12,0x16,0x88,0xe2,0x0, 0xc7,0x20,0x3e,0xdf,0x3e,0x48, +0xe0,0x0, 0x1f,0xb1,0xe8,0x1, 0xa5,0xe7,0x3e,0x4e,0x3e,0xcc,0xa7,0x8f,0xe7,0xbf, +0x17,0x7f,0x3f,0x5b,0xe4,0xd, 0x36,0xa5,0xe0,0x24,0x15,0xf0,0xe0,0x3, 0x1c,0x80, +0xe0,0x3, 0x1d,0x1, 0xe8,0x1, 0xbf,0x67,0xe4,0xc, 0x36,0x2c,0xea,0xe, 0xc6,0x80, +0x3d,0x9f,0xe0,0x1a,0xa7,0x2f,0xe0,0x7, 0xc7,0xb0,0x3f,0x59,0xe0,0x43,0xbf,0x2f, +0x3f,0xfb,0xe0,0x43,0xa7,0x2f,0x3f,0x4c,0xe0,0x43,0xbf,0x2f,0xe0,0x40,0xa7,0x1f, +0x3f,0x5a,0xe0,0x40,0xbf,0x1f,0xe0,0x40,0xa7,0x1f,0x3f,0x4d,0xe0,0x40,0xbf,0x1f, +0x1, 0xe9,0xe8,0x1, 0xa7,0xe7,0xe0,0x40,0xcf,0x80,0xe8,0x1, 0xbf,0xe7,0x38,0x82, +0x8, 0xb7,0xf8,0x0, 0xc, 0x3b,0xe0,0x2, 0x1f,0x28,0xe0,0x2, 0x1f,0xbf,0x87,0xe, +0x15,0x85,0xe0,0x3, 0x8e,0x2f,0x3d,0xb9,0xe0,0x2, 0x1e,0xed,0xe2,0x0, 0xc7,0x1, +0x3e,0x7e,0x3e,0x9b,0xf0,0x40,0x3d,0x69,0xf0,0x40,0x3c,0xe8,0x8a,0xbd,0xe0,0x1, +0x1, 0x69,0x9b,0x5f,0xe0,0x1, 0x8a,0xf, 0xf0,0x2, 0x1d,0xbe,0xe0,0x2, 0x1f,0xf3, +0xe4,0x7, 0xc2,0xb0,0xa1,0x8f,0xe0,0x0, 0x1f,0xb1,0xe7,0xbf,0x17,0x7f,0xa1,0xf, +0xe0,0x1, 0xa7,0xe3,0x3a,0x92,0x13,0xa0,0x3f,0xde,0xf2,0x0, 0xcd,0x2, 0x3b,0x95, +0xe0,0x6, 0x17,0x26,0xe8,0xe, 0x3f,0x19,0xe0,0x6, 0x15,0x28,0x14,0x80,0xe0,0x1, +0xbf,0xe3,0x3c,0x67,0xf0,0x6, 0x14,0x48,0xe0,0x79,0x39,0x2e,0xf0,0x18,0x3c,0x15, +0xe0,0x8, 0xd5,0x34,0xe0,0x0, 0x15,0x68,0x14,0x80,0xe8,0x40,0x3c,0x68,0xe0,0x8, +0xd5,0x2d,0x23,0x2e,0x14,0x7f,0x3c,0x16,0xe3,0xff,0xc4,0x7f,0x14,0xfe,0x15,0x7f, +0xe8,0x9, 0x3c,0x9b,0xe8,0xa, 0x3d,0x19,0xe8,0x8, 0x3c,0x19,0xf0,0x0, 0x13,0x81, +0xe0,0x80,0x9f,0x19,0x17,0x84,0x3f,0x9e,0xe0,0xd, 0x37,0x82,0x36,0xa2,0xe0,0x80, +0x8d,0x9a,0x3e,0x97,0xe0,0x41,0x3f,0xe, 0xa6,0xd, 0x37,0x23,0x35,0xbe,0xe0,0xe, +0x37,0x85,0x3e,0x4b,0x37,0x22,0xbe,0xd, 0xe8,0xe, 0x3f,0x18,0xa6,0x8e,0xe0,0x41, +0x3f,0x8f,0xf0,0xf, 0x33,0xbf,0x3f,0xcd,0x3c,0x7a,0xbf,0x8e,0x1, 0xe2,0xe0,0x1, +0xa6,0x5, 0xe0,0x1a,0xa6,0x95,0xe8,0x6, 0x3b,0x19,0x17,0x90,0xe1,0x80,0x8f,0x16, +0x37,0x3f,0x3e,0x4e,0xe0,0x1, 0xbe,0x5, 0x8f,0x26,0x37,0x3f,0xc7,0xf8,0x3e,0xce, +0xe3,0xff,0xcf,0xf8,0xe0,0x1a,0xbe,0x95,0x1, 0xf2,0xf2,0x0, 0xcd,0x1, 0x1, 0xe, +0xe0,0x1, 0xa7,0xe3,0x3c,0x64,0xe0,0x40,0xcf,0x80,0xe0,0x1, 0xbf,0xe3,0xf8,0x0, +0xd, 0xa8,0xb, 0xa1,0xe7,0xfe,0x0, 0x98,0x3d,0x2, 0x16,0x9c,0x3e,0x95,0xe0,0x16, +0x15,0x90,0x3e,0x6d,0x17,0x0, 0x3d,0x92,0x17,0x88,0x3f,0x9e,0x37,0xa2,0xc7,0x1, +0xe0,0x80,0xa5,0x1c,0x3f,0x9b,0xe2,0x1, 0xcf,0x4a,0xbd,0xf, 0x1, 0xf6,0xe0,0x6, +0xc2,0xc4,0xe0,0x16,0x15,0x90,0x3e,0x65,0x17,0x0, 0x3d,0x92,0xe0,0x1, 0x17,0xd2, +0x3f,0x9e,0x37,0xa2,0xc7,0x1, 0xe0,0x80,0xa5,0x1c,0x3f,0x9b,0xe2,0x0, 0xcf,0x1a, +0xbd,0xf, 0x1, 0xf5,0xe0,0x1d,0x15,0xc0,0x3e,0x6d,0x17,0x0, 0x3d,0x92,0x17,0x88, +0x3f,0x9e,0x37,0xa2,0xc7,0x1, 0xe0,0x80,0xa5,0x1c,0x3f,0x9b,0xe2,0x1, 0xcf,0x4a, +0xbd,0xf, 0x1, 0xf6,0xe0,0x1d,0x15,0xc0,0x3e,0x65,0x17,0x0, 0xe0,0xb, 0x3d,0x92, +0xe0,0x1, 0x17,0xd2,0x3f,0x9e,0x37,0xa2,0xc7,0x1, 0xe0,0x80,0xa5,0x1c,0x3f,0x9b, +0xe2,0x0, 0xcf,0x1a,0xbd,0xf, 0x1, 0xf5,0x17,0x0, 0x17,0x88,0x3f,0x9e,0x37,0xa2, +0xc7,0x1, 0xe0,0x80,0xa6,0x1d,0x3f,0x92,0xe2,0x1, 0xcf,0x4a,0xbe,0xf, 0x1, 0xf6, +0xe0,0x0, 0x17,0x0, 0xe0,0x1, 0x17,0xd2,0x3f,0x9e,0x37,0xa2,0xc7,0x1, 0xe0,0x80, +0xa6,0x95,0x3f,0x92,0xe2,0x0, 0xcf,0x1a,0xbe,0x8f,0x1, 0xf5,0xe7,0xff,0x0, 0x92, +0x9b,0x6f,0xe0,0x1, 0x8a,0x1f,0xf0,0x2, 0x1d,0xbd,0xe7,0xfe,0x0, 0x99,0x8, 0xb5, +0xe0,0x2, 0x1f,0xa8,0xe0,0x2, 0x1f,0x3f,0x87,0x8f,0xe0,0x3, 0x8e,0xae,0xe2,0x0, +0xc7,0x81,0x3e,0xff,0xe0,0x0, 0x1, 0x49,0x9a,0x5e,0xe0,0x2, 0x19,0x3e,0xe0,0x2, +0x1f,0xf3,0xe7,0xbf,0x17,0x7f,0xa2,0x8f,0xe0,0xc, 0x15,0x40,0xe0,0x1, 0xa7,0xe5, +0x14,0x80,0x3f,0xde,0xe0,0x2, 0x1f,0x79,0xe0,0x1, 0xbf,0xe5,0xa1,0x8e,0xe0,0xc, +0xc1,0xd0,0x3c,0x63,0xe0,0x8, 0xd4,0x4a,0x3e,0x62,0x16,0x80,0x2a,0xe, 0x0, 0xa5, +0x9d,0x8c,0xa7,0xf, 0xc6,0x81,0xe4,0xb, 0x35,0xa0,0xe3,0xff,0xc6,0xff,0x3f,0x4b, +0x3a,0x7d,0xbf,0xf, 0xc6,0x2, 0x1, 0x19,0xe0,0xf, 0x36,0xc1,0x3f,0x6f,0x15,0x81, +0xe3,0xff,0xc7,0xff,0xe3,0xff,0xc7,0x7f,0x37,0xa2,0x3d,0xdd,0x37,0x22,0x3f,0x93, +0x25,0xe8,0x3f,0x13,0x9d,0x8c,0xa7,0x8e,0xc6,0x81,0xe3,0xff,0xc6,0xff,0x3f,0xcb, +0x3a,0x7d,0xbf,0x8e,0xc6,0x2, 0x1, 0xe9,0xe0,0x1, 0xa7,0xe5,0xe0,0x40,0xcf,0x80, +0xe0,0x1, 0xbf,0xe5,0xa, 0xe1,0x9a,0x6e,0xe0,0x2, 0x19,0x3d,0xe7,0xff,0x0, 0xb9, +0xe0,0x2, 0x1f,0x81,0x8f,0x8f,0x27,0x88,0xe2,0x0, 0xcf,0x81,0x1, 0x3f,0xe2,0x0, +0xcf,0x82,0x1, 0x1e,0x38,0x82,0xe0,0x2, 0x1f,0xf3,0xe7,0xe0,0x16,0xff,0xa7,0x8f, +0xe0,0x1, 0xa7,0x5f,0x3f,0x5d,0xe0,0x2, 0xcf,0x0, 0xe0,0x1, 0xbf,0x5f,0x16,0xe0, +0xe0,0x4, 0xa7,0x2f,0x3f,0x5d,0xcf,0x1, 0xe0,0x4, 0xbf,0x2f,0xe7,0xf8,0x16,0x9f, +0xe0,0x4, 0xa7,0x2f,0x3f,0x5d,0xcf,0x20,0xe0,0x4, 0xbf,0x2f,0x38,0x82,0xe0,0x2, +0x1f,0xf3,0xe2,0x0, 0xcc,0x82,0xa7,0x8f,0xe7,0xe0,0x16,0xff,0xe0,0x1, 0xa7,0x5f, +0x3f,0x5d,0x1, 0x62,0xe0,0x1, 0xbf,0x5f,0x16,0xe0,0xe0,0x4, 0xa7,0x2f,0x3f,0x5d, +0xcf,0x2, 0xe0,0x4, 0xbf,0x2f,0xe7,0xf8,0x16,0x9f,0xe0,0x4, 0xa7,0x2f,0x3f,0x5d, +0xe0,0x7, 0xcf,0x40,0xe0,0x4, 0xbf,0x2f,0x38,0x82,0xe0,0x2, 0x1f,0xf3,0xe7,0xe0, +0x16,0xff,0xa7,0x8f,0xe0,0x1, 0xa7,0x5f,0x3f,0x5d,0xe0,0x1, 0xbf,0x5f,0x16,0xe0, +0xe0,0x4, 0xa7,0x2f,0x3f,0x5d,0xcf,0x1, 0x0, 0xe5,0x8, 0xb5,0x11,0x3, 0x39,0x38, +0xe0,0x2, 0x1a,0x9, 0x17,0x5, 0x3f,0x38,0x39,0x14,0xe0,0x2, 0x1f,0xed,0x39,0xe8, +0x8c,0x2, 0x3f,0x9e,0x8a,0xbf,0xe0,0x6, 0xd4,0xbf,0x8c,0x92,0x3c,0x65,0xe0,0x6, +0xd4,0xf1,0x8c,0xa2,0x3c,0x65,0xe0,0x6, 0xd5,0x2a,0xe2,0x0, 0xc9,0x81,0x1, 0x2, +0xa, 0xe1,0x8c,0xc4,0x14,0x3, 0xe0,0x6, 0xd4,0xe5,0x8c,0xd4,0x14,0x3, 0xe0,0x6, +0xd5,0x1e,0x8c,0xc4,0x14,0x4, 0xe0,0x6, 0xd4,0xdd,0x8c,0xd4,0x14,0x4, 0xe0,0x6, +0xd5,0x16,0x8c,0xc4,0x14,0x0, 0xe0,0x6, 0xd4,0xd5,0x8c,0xd4,0x14,0x0, 0xa, 0xa1, +0xe0,0xca,0x0, 0x8d,0xe2,0x0, 0xcc,0x82,0xe0,0x0, 0x2, 0xe1,0x8, 0xb5,0x17,0xfd, +0x3f,0x98,0xe2,0x0, 0xcf,0x81,0x39,0x68,0x3a,0x69,0xe0,0x1, 0x5, 0x88,0xe0,0x0, +0x2c,0x57,0xe0,0x2, 0x1f,0xf3,0xe7,0xbf,0x16,0x7f,0xa6,0x8f,0xe0,0x0, 0x1f,0xb1, +0xe0,0x1, 0xa7,0x6d,0xa7,0x8f,0x3f,0x5c,0xe0,0x1, 0xbf,0x6d,0xe2,0x0, 0xcc,0x81, +0xa7,0x4f,0xe6,0x7, 0x16,0x7f,0x3f,0x5c,0xe0,0x0, 0x1, 0x4a,0xe0,0x28,0xcf,0x0, +0xbf,0x4f,0x16,0x40,0xa7,0x4f,0xe7,0xf8,0x15,0x80,0x3f,0x5c,0xcf,0x5, 0xbf,0x4f, +0x12,0x85,0xa7,0x5f,0xe0,0x3, 0x1e,0x2, 0x3a,0xb9,0x3f,0x5c,0xe8,0x0, 0xcf,0x5, +0xbf,0x5f,0xa7,0x5f,0xe0,0x2, 0x19,0xed,0x3f,0x5b,0xcf,0x5, 0xbf,0x5f,0xe0,0xc, +0x39,0x95,0xe0,0x1, 0xa7,0xed,0xe0,0x40,0xcf,0x80,0xe0,0x1, 0xbf,0xed,0x8c,0xcc, +0xe0,0x6, 0xd2,0xac,0xe0,0x2, 0x1f,0xcd,0x3c,0x62,0x3f,0x94,0x84,0x8f,0xe0,0x6, +0xd2,0xd0,0x39,0x95,0x8d,0x23,0x3c,0x62,0x3c,0xea,0xe0,0x6, 0xd3,0x8c,0x8c,0x83, +0x3c,0x62,0x34,0xa3,0xe0,0x6, 0xd3,0x3f,0x8c,0x93,0x3c,0x62,0x34,0xa3,0xe0,0x6, +0xd3,0x5d,0x3c,0x64,0xa, 0xa1,0xe7,0xfe,0x0, 0xea,0x38,0x82,0x12,0x85,0x3a,0xb9, +0xe0,0x2, 0x19,0xed,0xe0,0xf, 0x39,0x95,0x8c,0xcf,0x0, 0xdb,0xe0,0x50,0xcf,0x0, +0xbf,0x4f,0x16,0x40,0xa7,0x4f,0x14,0x85,0x3f,0x5c,0xcf,0xa, 0xbf,0x4f,0x3a,0xe9, +0xa7,0x5f,0xe0,0x3, 0x1e,0x2, 0xe0,0x2, 0x19,0xed,0x3f,0x5c,0xe8,0x0, 0xcf,0xa, +0xbf,0x5f,0xe7,0xf8,0x16,0x0, 0xa7,0x5f,0x3f,0x5c,0xcf,0xa, 0xbf,0x5f,0xe0,0x1, +0xa7,0xed,0xe0,0x40,0xcf,0x80,0xe0,0x1, 0xbf,0xed,0xe0,0x6, 0xd2,0x67,0x3c,0xe2, +0x3c,0x62,0xe0,0x6, 0xd2,0x8e,0xe7,0xff,0x0, 0xbe,0x14,0x8a,0xe0,0x6, 0xd2,0x5e, +0x14,0x80,0x3c,0x62,0x12,0x85,0xe0,0x6, 0xd2,0x84,0xe0,0x2, 0x19,0xed,0x3a,0xb4, +0xe7,0xff,0x0, 0xb1,0xe0,0x2, 0x1f,0x28,0xe0,0x0, 0x1d,0x2b,0xe0,0x2, 0x1f,0xbf, +0x87,0xe, 0xf0,0x1, 0x8b,0xfa,0xe0,0x3, 0x8e,0xaf,0xe2,0x0, 0xc7,0x1, 0xe8,0xc, +0x3d,0x17,0x3e,0xfe,0xf0,0x6, 0x89,0xc, 0xe0,0x1, 0x1, 0x35,0xf0,0x0, 0x9a,0x5f, +0xf0,0x1, 0x89,0x8f,0xe0,0x1, 0x24,0x25,0xe0,0x0, 0x1f,0xa9,0xf0,0x2, 0x1b,0x7b, +0xa5,0x8f,0xe8,0x0, 0x8f,0x86,0xe0,0x1, 0x27,0xa5,0x8, 0xb2,0xe0,0x1, 0x1f,0xb1, +0xe7,0x7f,0x16,0xff,0xa4,0xf, 0xa7,0x88,0xa7,0x8, 0x37,0xce,0xe2,0x0, 0xc7,0x81, +0xe4,0x0, 0xcf,0x81,0x3f,0x5d,0x37,0xae,0x3f,0xce,0xbf,0x88,0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0xe0,0x1, 0x1f,0xa7,0xf0,0xe, 0x33,0xa2,0x96,0xfb,0x3f,0x9e,0xb6,0x8f, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe0,0x1, 0x97,0xb, 0xf0,0x0, 0x12,0x82,0xb7,0x1f, +0xf0,0x15,0x3a,0x9b,0xf0,0x2, 0x18,0x8d,0xf0,0x1, 0x18,0x4d,0xe8,0x40,0x3f,0x64, +0x16,0x0, 0x0, 0x96,0xe8,0x0, 0x8e,0x81,0xe0,0xf, 0x37,0x21,0xe2,0x0, 0xce,0x81, +0x3f,0x99,0xe0,0x0, 0x1, 0x49,0xe8,0x0, 0x96,0x85,0xb6,0x8f,0xc6,0x1, 0xe2,0x0, +0xce,0x6, 0xc7,0x1, 0xe3,0xff,0xc7,0x7f,0xf0,0x0, 0xc2,0x82,0x1, 0x13,0xf0,0xf, +0x31,0xdc,0xe0,0xd, 0x37,0x21,0xe2,0x0, 0xc7,0x81,0x3e,0x99,0x2f,0xe4,0xc6,0x1, +0xe2,0x0, 0xce,0x6, 0xc7,0x1, 0xb7,0x8d,0xe3,0xff,0xc7,0x7f,0xf0,0x0, 0xc2,0x82, +0x1, 0xef,0xe8,0x0, 0x8f,0x81,0xe2,0x0, 0xcf,0x81,0xe0,0x0, 0x1, 0x52,0xf0,0x0, +0x22,0x14,0x16,0x89,0xe8,0xd, 0x3e,0x94,0xe3,0xff,0xc6,0xff,0xe0,0x0, 0x17,0x89, +0xe0,0xe, 0x37,0xa1,0x3f,0x1b,0xc7,0x81,0xe3,0xff,0xc7,0xff,0x97,0xe, 0x3f,0xfd, +0xe1,0x80,0xb7,0x19,0x1, 0xf6,0xe0,0x6, 0x8f,0xda,0xc7,0xff,0xf0,0x40,0x3b,0xff, +0x4, 0x6, 0xa7,0x88,0xe7,0x7f,0x17,0x7f,0x3f,0xde,0xbf,0x88,0x17,0x80,0xe8,0x0, +0xaf,0x86,0x9, 0x61,0xf2,0x0, 0xc9,0x4, 0xe0,0xf, 0x37,0x21,0x3f,0x99,0xe7,0xff, +0x1, 0xb4,0xe0,0xf, 0x37,0x21,0x3f,0x99,0xe0,0x3f,0x16,0x9a,0xe8,0x0, 0x98,0x85, +0x3e,0x9e,0x99,0xf, 0x36,0xa1,0x38,0xa2,0xe8,0xd, 0x3e,0x90,0xb0,0x8d,0x9e,0x8f, +0xe8,0x0, 0x98,0x85,0x3e,0x91,0x36,0xc1,0xb6,0x8f,0xe7,0xff,0x0, 0xa1,0xe0,0x2, +0x1f,0xc9,0xf0,0x2, 0x1b,0x7b,0xa5,0x8f,0xe8,0x0, 0x8f,0x86,0xe7,0xfe,0x2f,0xdf, +0x38,0x82,0xf0,0x0, 0x9a,0x6f,0xf0,0x1, 0x89,0x9f,0xe7,0xfe,0x0, 0xcd,0xf2,0x0, +0xc9,0x4, 0x1, 0x17,0xf7,0xff,0x22,0x41,0xf0,0x0, 0xc2,0x9, 0xf3,0xff,0xc2,0x7f, +0xe0,0x0, 0x17,0x89,0xe0,0xe, 0x37,0xa1,0x3f,0x1b,0xc7,0x81,0xe3,0xff,0xc7,0xff, +0x97,0xe, 0xe8,0x40,0x3f,0xf4,0xe1,0x80,0xb7,0x19,0x1, 0xf5,0xe7,0xff,0x0, 0xad, +0xf0,0x0, 0x22,0x27,0xf7,0xff,0x11,0xff,0xf8,0x13,0x39,0x94,0xf3,0xff,0xc1,0xff, +0xf0,0x1, 0x19,0x4d,0xc5,0x92,0x3e,0xe9,0xf0,0x0, 0xc1,0x81,0xe0,0x0, 0x17,0x0, +0xe0,0x3f,0x17,0x9a,0x9e,0xb, 0x3f,0x9e,0xf0,0x0, 0x9a,0x8d,0x37,0xa1,0xe8,0xc, +0x3e,0x25,0xe8,0xf, 0x3f,0x92,0xb6,0xf, 0xc7,0x1, 0x9f,0x8d,0xe1,0x80,0x9e,0x1b, +0xf0,0x40,0x39,0xfe,0x3f,0x9c,0x37,0xc1,0xe1,0x80,0xb7,0x9d,0x1, 0xea,0x17,0x86, +0xe8,0xf, 0x3f,0x94,0x37,0xa1,0x3c,0x9f,0x17,0x0, 0xb7,0x9, 0xe7,0xfe,0x0, 0xfd, +0xe0,0x2, 0x1f,0x81,0x86,0xc8,0x8f,0x8f,0x87,0x68,0xe2,0x0, 0xcf,0x82,0xe0,0x1, +0x1f,0xa6,0x8f,0x8f,0x1, 0x22,0x37,0xc1,0x16,0x60,0xc7,0x81,0x3e,0xdc,0xe2,0x0, +0xc7,0x9f,0x3f,0x5c,0xce,0x81,0x3f,0xce,0xae,0xc8,0xaf,0xe8,0x15,0x80,0x87,0x48, +0x87,0xe8,0x86,0x58,0x86,0xf8,0xe2,0x0, 0xc7,0x1f,0xe2,0x0, 0xc7,0x9f,0xcf,0x20, +0xce,0x40,0xcf,0xa0,0xce,0xc0,0x15,0x1, 0xad,0x8, 0xad,0x98,0xad,0xb8,0xaf,0x48, +0xae,0x58,0xaf,0xe8,0xae,0xf8,0x38,0x82,0xc7,0x81,0x37,0x81,0x16,0x60,0xc7,0x81, +0x3e,0xdc,0xe2,0x0, 0xc7,0x9f,0x3f,0x5c,0xce,0x82,0x3f,0xce,0xae,0xc8,0xaf,0xe8, +0x0, 0xde,0xe0,0x2, 0x1f,0x81,0xf0,0x0, 0x11,0x81,0x8d,0x8f,0xe2,0x0, 0xcd,0x82, +0x1, 0x4, 0xf0,0x0, 0x11,0x80,0x15,0x81,0xc4,0x82,0xe2,0x1, 0xc4,0xff,0x17,0x81, +0xf0,0x1, 0x1a,0x26,0xac,0x88,0x17,0x0, 0xaf,0xb8,0x15,0x47,0xf7,0xff,0x13,0xe0, +0xf7,0xff,0x12,0x80,0xf7,0xff,0x13,0x3f,0x0, 0x92,0x87,0xc8,0x86,0xd8,0xe2,0x0, +0xc7,0x9f,0xcf,0xe0,0xe8,0xf, 0x3f,0xd7,0xe8,0xd, 0x3e,0xd6,0xcf,0x81,0xae,0xd8, +0xaf,0xc8,0xc7,0x1, 0xe2,0x1, 0xc7,0x7f,0x3c,0xfe,0x4, 0xac,0x17,0x82,0x3f,0x9e, +0x37,0xa1,0x3f,0x98,0x86,0x9f,0x3e,0xda,0xae,0x9f,0x27,0x68,0xe2,0x0, 0xcf,0x1, +0xf0,0x0, 0x11,0x1f,0xf0,0x0, 0x10,0x81,0xf0,0x12,0x39,0x5b,0xce,0xc0,0xf0,0x11, +0x38,0x9b,0x1, 0x19,0x86,0xf, 0xe2,0x0, 0xcf,0x2, 0xe8,0xc, 0x3e,0x57,0xe8,0xc, +0x3e,0x42,0xe8,0x40,0x3d,0xe1,0xae,0xf, 0xe2,0x0, 0xc6,0x1f,0xe2,0x1, 0xc5,0xff, +0xce,0x20,0x1, 0x17,0xc7,0x1, 0xe2,0x1, 0xc7,0x7f,0x3c,0xfe,0xae,0xf, 0xae,0x9f, +0x3, 0xd6,0x38,0x82,0x87,0xe8,0x86,0xf8,0xe2,0x0, 0xc7,0x9f,0xe8,0xf, 0x3f,0xc5, +0xe8,0xf, 0x3f,0xd7,0xe8,0xd, 0x3e,0xd6,0xcf,0x81,0xae,0xf8,0xaf,0xe8,0x0, 0xc2, +0xe0,0x1, 0x86,0x98,0xe0,0x1, 0x87,0x88,0xce,0xc0,0xe0,0x1, 0xae,0x98,0xe2,0x0, +0xc7,0x9f,0xe8,0x0, 0x8d,0x84,0xcf,0xa0,0xe8,0xb, 0x3d,0x93,0x35,0x81,0xc5,0x81, +0xe0,0x1, 0xaf,0x88,0xe2,0x1, 0xc5,0xff,0xe7,0xff,0x0, 0xad,0xe0,0x2, 0x1f,0x81, +0xf0,0x0, 0x12,0x81,0x8d,0xf, 0xe2,0x0, 0xcd,0x2, 0x1, 0x4, 0xf0,0x0, 0x12,0x80, +0x15,0x1, 0x17,0x80,0xf0,0x1, 0x1b,0x26,0xac,0x88,0x17,0x0, 0xaf,0x98,0xf7,0xff, +0x13,0xe0,0x17,0x82,0x3f,0x9e,0x37,0xa1,0x3f,0x98,0x86,0x8f,0x86,0x1f,0x15,0x9f, +0xe8,0xd, 0x3e,0xd7,0x3d,0xda,0xce,0x40,0x3e,0xcb,0xae,0x1f,0x16,0x3, 0xae,0x8f, +0x3e,0x1a,0x27,0x13,0x3d,0x6c,0xe2,0x1, 0xc5,0x7f,0x17,0x82,0x3f,0x9e,0x37,0xa1, +0x3f,0x98,0x86,0x8f,0xc7,0x1, 0xe2,0x0, 0xc6,0x9f,0xe2,0x1, 0xc7,0x7f,0xce,0xa0, +0x3c,0xfe,0xae,0x8f,0x3, 0xdf,0x38,0x82,0xe8,0x0, 0x8f,0x86,0xe8,0xf, 0x3f,0x95, +0x37,0x81,0xc7,0x81,0x3d,0x7f,0x2, 0x6a,0xe8,0x0, 0x8d,0x6, 0xe8,0xa, 0x3d,0x15, +0x35,0x1, 0xc5,0x1, 0xe2,0x1, 0xc5,0x7f,0x0, 0xe1,0x17,0x0, 0x3f,0xe8,0xe1,0x80, +0xaf,0x1f,0xc7,0x81,0xaf,0x18,0xe1,0x80,0xaf,0x1f,0xe1,0x80,0xaf,0x1f,0xe1,0x80, +0xaf,0x1f,0xe1,0x80,0xaf,0x1f,0xe1,0x80,0xaf,0x1f,0xe1,0x80,0xaf,0x1f,0xe1,0x80, +0xaf,0x1f,0xe1,0x80,0xaf,0x1f,0xe1,0x80,0xaf,0x1f,0xe1,0x80,0xaf,0x1f,0xe1,0x80, +0xaf,0x1f,0xaf,0xf, 0xe7,0xfe,0x0, 0x9f,0xe0,0x2, 0x1f,0x81,0x16,0x82,0x8f,0x8f, +0x87,0x58,0xe0,0x2f,0x3f,0x8d,0xc7,0x81,0x16,0x80,0xcf,0x40,0xcf,0xa0,0xae,0x88, +0xae,0x98,0xae,0xb8,0xaf,0x58,0xaf,0xc8,0x38,0x82,0x8, 0xb2,0xe0,0x2, 0x19,0x69, +0x15,0x2a,0x14,0x80,0x3c,0x62,0xe0,0x8, 0xd0,0xa1,0xe0,0x2, 0x1f,0x81,0x17,0x1, +0xaf,0x42,0xe0,0x0, 0x17,0x41,0x8f,0x8f,0xe0,0x4, 0xaf,0x2, 0x2f,0x8c,0xe0,0x2, +0x87,0xa2,0x17,0x60,0xe2,0x0, 0xc7,0x9f,0xcf,0xa0,0x3f,0xde,0xcf,0x81,0xe0,0x2, +0xaf,0xa2,0x9, 0x61,0xe0,0x2, 0x1e,0xe8,0x17,0x0, 0xe0,0x2, 0x1f,0xe7,0xaf,0xd, +0x3c,0x6d,0xaf,0x1d,0xaf,0xf, 0xe0,0x2, 0x1f,0xe6,0xe0,0x2, 0x1e,0xfd,0xaf,0xf, +0xe0,0x2, 0x1f,0xe5,0x8c,0x8d,0xaf,0xf, 0xe0,0x2, 0x1f,0xe4,0xaf,0xf, 0xe0,0x2, +0x1f,0xe3,0xaf,0xf, 0xe0,0x2, 0x1f,0xe2,0xaf,0xf, 0xe0,0x2, 0x1f,0xe1,0xaf,0xf, +0xe0,0x2, 0x1f,0xe0,0xaf,0xf, 0xe0,0x2, 0x1f,0xdf,0xaf,0xf, 0xe0,0x2, 0x1f,0xde, +0xaf,0xf, 0xe0,0x2, 0x1f,0xdd,0xaf,0xf, 0xe0,0x2, 0x1f,0xdc,0xaf,0xf, 0x9, 0x21, +0xe7,0xfd,0x0, 0xc1,0xe0,0x0, 0x1f,0xab,0x17,0x0, 0xaf,0xf, 0x16,0xff,0xaf,0x1f, +0xae,0xaf,0xaf,0x3f,0xaf,0x4f,0xaf,0x5f,0xaf,0x6f,0xaf,0x7f,0xe0,0x1, 0xaf,0xf, +0xe0,0x1, 0xaf,0x6f,0xe0,0x1, 0xae,0xff,0xe0,0x2, 0xaf,0xf, 0xe0,0x2, 0xaf,0x1f, +0x38,0x82,0xe0,0x0, 0x1f,0x2b,0x8e,0x8e,0xe0,0x0, 0x2e,0xdc,0x8f,0x8e,0x85,0x89, +0x37,0xa5,0x3f,0x9e,0xbc,0x6f,0xc5,0x81,0x8f,0x8e,0xe2,0x1, 0xc5,0xff,0x37,0xa5, +0x3f,0x9e,0x8c,0x39,0xe0,0x6, 0xad,0xdf,0x15,0x7f,0x3e,0x6d,0x8f,0x8e,0x37,0xa5, +0x3f,0x9e,0x3f,0x9d,0xe0,0x6, 0xad,0xf, 0x8f,0x8e,0x37,0xa3,0x3f,0x9d,0xc7,0x87, +0x37,0xa2,0xc6,0x81,0x3f,0x9e,0xe2,0x0, 0xce,0x85,0xbe,0xf, 0x1, 0xf0,0xe0,0x2, +0xae,0x2e,0xe0,0x2, 0xae,0x3e,0xe0,0x2, 0xae,0x4e,0xe0,0x2, 0xae,0x5e,0xe0,0x2, +0xae,0x6e,0xe0,0x2, 0x1f,0x8d,0xe0,0x2, 0xae,0x7e,0x8d,0xf, 0xe2,0x0, 0xcd,0x1, +0x1, 0x2a,0x8f,0x8e,0x8e,0x99,0x37,0xa5,0x3f,0x9e,0xe0,0x6, 0xae,0xf, 0x3d,0xad, +0xe0,0x2, 0xae,0x2e,0xe2,0x0, 0xcd,0x81,0x8f,0x8e,0xe0,0x1, 0x1e,0xcc,0x37,0xa5, +0x3f,0x9e,0xbe,0xff,0x5, 0x11,0x8f,0x8e,0x16,0x82,0x37,0xa5,0x3f,0x9e,0xe0,0x6, +0xae,0x9f,0x17,0x81,0xe0,0x2, 0xaf,0xce,0x8f,0x8e,0xe0,0x1, 0x1e,0xcb,0xc7,0x81, +0x37,0xa5,0x3f,0x9e,0xbe,0x8f,0x14,0x0, 0x8f,0x8e,0xc7,0x81,0xaf,0x8e,0x38,0x82, +0x14,0x1, 0x38,0x82,0xe0,0x0, 0x24,0x50,0x8f,0x8e,0xf0,0x1, 0x1b,0x4a,0x37,0xa5, +0x3f,0x9e,0xe0,0x6, 0xae,0x8f,0x16,0x84,0xe0,0x2, 0xae,0x7e,0x14,0x82,0x8f,0x8e, +0x16,0x3, 0x37,0xa5,0x3f,0x9e,0xf0,0x0, 0xbb,0x7f,0xf0,0x40,0x3b,0xe9,0x8f,0x8e, +0x37,0xa5,0x3f,0x9e,0xe0,0x6, 0xae,0x9f,0xe0,0x2, 0xad,0x6e,0x8e,0x8e,0xc6,0x81, +0x36,0xa5,0x3e,0x9e,0xf0,0x0, 0xbb,0xd, 0x17,0x80,0x8e,0x8e,0x34,0x21,0x36,0xa5, +0x3e,0x9e,0x3e,0x99,0xe0,0x6, 0xaf,0x8d,0x3d,0xa8,0xf0,0x2, 0xab,0xae,0xe2,0x0, +0xcd,0x81,0x8f,0x8e,0xe0,0x1, 0x1e,0xcc,0x37,0xa3,0x3f,0x99,0xc7,0x87,0x37,0xa2, +0x3f,0x9e,0xbe,0x8f,0x5, 0x41,0x8e,0x8e,0x17,0x82,0x36,0xa5,0x3e,0x9e,0x3e,0x9c, +0xe0,0x6, 0xaf,0x8d,0x14,0x0, 0xe0,0x2, 0xae,0x4e,0x8f,0x8e,0xe0,0x1, 0x1e,0xcb, +0x37,0xa3,0x3f,0x9c,0xc7,0x87,0x37,0xa2,0x3f,0x9e,0xbe,0x8f,0x8f,0x8e,0xc7,0x81, +0xaf,0x8e,0x38,0x82,0xf0,0x40,0x3b,0xe8,0x3e,0x6a,0x3c,0xe8,0x0, 0xce,0xe2,0x0, +0xcc,0x4, 0x1, 0x20,0x5, 0x92,0xe2,0x0, 0xcc,0x6, 0x2, 0x9f,0x17,0x80,0x8f,0x39, +0xaf,0x89,0xaf,0x99,0x27,0x7, 0x87,0xd9,0xe2,0x1, 0xc7,0xbf,0xaf,0xd9,0x17,0xa1, +0xaf,0xc9,0x17,0x80,0xaf,0xb9,0x38,0x82,0xe2,0x0, 0xcc,0x3, 0x1, 0x8f,0x87,0xd9, +0x17,0x47,0x3f,0xde,0xcf,0x90,0x17,0x0, 0xaf,0x9, 0xaf,0x19,0xaf,0x39,0xaf,0xd9, +0x38,0x82,0x3c,0x69,0xe7,0xfb,0x0, 0x96,0x38,0x82,0x38,0x82,0xe0,0x0, 0x1f,0x2b, +0x16,0x80,0xe0,0x2, 0xae,0x9e,0x17,0x80,0x8e,0x8e,0x26,0x91,0xe0,0xd, 0x37,0xa5, +0x3e,0x9e,0xe0,0x6, 0x8e,0xdd,0xe0,0x2, 0x8e,0x1e,0xc7,0x81,0x3e,0x9c,0xe0,0x2, +0xae,0x9e,0xe2,0x1, 0xc7,0xff,0x8e,0x8e,0x3e,0xff,0x2, 0xf1,0x38,0x82,0x8, 0xb4, +0xc0,0x60,0xe0,0x0, 0x19,0x2b,0x17,0x80,0xaf,0x82,0x17,0x7f,0xaf,0x92,0x11,0x94, +0xaf,0x22,0x39,0x90,0xaf,0xb2,0x3c,0x63,0xaf,0xc2,0xaf,0xd2,0xaf,0xe2,0xaf,0xf2, +0xe0,0x1, 0xaf,0x82,0xe0,0x1, 0xaf,0xe2,0xe0,0x1, 0xaf,0x72,0x17,0xe, 0xe0,0x2, +0xaf,0x82,0xe0,0x2, 0x1a,0xd, 0xe0,0x2, 0xaf,0x92,0x8f,0x84,0x3f,0x3f,0xe0,0x2, +0x1f,0xe9,0x3f,0x9e,0xf0,0x0, 0x80,0x8f,0xf0,0x0, 0x81,0x1f,0xf0,0x0, 0x81,0xaf, +0xf0,0x0, 0x82,0x3f,0xf0,0x0, 0x68,0x94,0xf0,0x0, 0x82,0xdf,0xf0,0x0, 0x83,0x6f, +0xf0,0x0, 0x83,0xff,0xe0,0x1, 0x84,0x8f,0xe0,0x1, 0x85,0x1f,0xe0,0x1, 0x85,0xaf, +0xe0,0x1, 0x86,0x3f,0xe0,0x1, 0x86,0xcf,0xe0,0x1, 0x87,0x5f,0x87,0xcf,0xf0,0x0, +0xa9,0x13,0xf0,0x0, 0xa9,0xa3,0xf0,0x0, 0xaa,0x33,0xaf,0xc3,0xf0,0x0, 0xaa,0xd3, +0xf0,0x0, 0xab,0x63,0xf0,0x0, 0xab,0xf3,0xe0,0x1, 0xac,0x83,0xe0,0x1, 0xad,0x13, +0xe0,0x1, 0xad,0xa3,0xe0,0x1, 0xae,0x33,0xe0,0x1, 0xae,0xc3,0xe0,0x1, 0xaf,0x53, +0xdd,0x20,0xf8,0x3, 0x8, 0x2, 0x17,0x84,0x3f,0x90,0xf8,0xf, 0x8, 0x12,0x3c,0xef, +0x57,0x90,0x14,0x4, 0x77,0x88,0xde,0xa6,0x17,0x80,0xe0,0xe, 0x39,0x1f,0x86,0x84, +0xc7,0x81,0xe2,0x0, 0xcf,0x85,0xe0,0x1, 0xae,0x9e,0x1, 0xf8,0x17,0x80,0xe0,0x2, +0xaf,0x92,0x17,0x80,0x8f,0x2, 0x27,0x11,0xe0,0xe, 0x37,0xa5,0x3f,0x12,0xe0,0x6, +0x8f,0x5e,0xe0,0x2, 0x8e,0x92,0xc7,0x81,0x3f,0x1d,0xe0,0x2, 0xaf,0x12,0xe2,0x1, +0xc7,0xff,0x8f,0x2, 0x3f,0xfe,0x4, 0xf1,0xc0,0x20,0xa, 0x61,0x8, 0xb3,0xc0,0x60, +0xe0,0x0, 0x19,0x2b,0x17,0x0, 0xaf,0x2, 0x17,0xff,0xaf,0x12,0x16,0x8e,0xaf,0xa2, +0xaf,0x32,0xaf,0x42,0xaf,0x52,0xaf,0x62,0xaf,0x72,0xe0,0x1, 0xaf,0x2, 0xe0,0x1, +0xaf,0x62,0xe0,0x1, 0xaf,0xf2,0xe0,0x2, 0xaf,0x2, 0xe0,0x2, 0x19,0x8d,0xe0,0x2, +0xaf,0x12,0x8f,0x83,0x3e,0xbf,0xe0,0x2, 0x1f,0xe9,0x3f,0x9d,0xf0,0x0, 0x81,0x2f, +0xf0,0x0, 0x81,0xcf,0xf0,0x0, 0x82,0x5f,0xf0,0x0, 0x82,0xef,0xf0,0x0, 0x83,0x7f, +0xf0,0x1, 0x83,0x8f,0x86,0xbf,0xe0,0x1, 0x84,0xaf,0xe0,0x1, 0x85,0x3f,0xe0,0x1, +0x85,0xcf,0xe0,0x1, 0x86,0x5f,0xe0,0x1, 0x84,0x1f,0xf0,0x0, 0x69,0x16,0x3f,0xed, +0xf0,0x0, 0x69,0x98,0xe2,0x1, 0xc7,0xff,0xf0,0x0, 0x6a,0x19,0xf0,0x0, 0x6a,0x9a, +0xf0,0x0, 0x6b,0x1b,0xf0,0x0, 0x6b,0x9c,0x6c,0x1d,0x6c,0x9e,0x6d,0x1f,0x6d,0xa0, +0x6e,0x21,0x6f,0x14,0x6f,0x15,0x27,0x87,0x57,0x8c,0xe2,0x1, 0xc7,0xbf,0xe0,0x42, +0xcf,0x80,0x77,0x8c,0x17,0x80,0xf0,0x0, 0x11,0x14,0x6f,0x97,0xf0,0x12,0x39,0x10, +0xf8,0x12,0x8, 0x2, 0x17,0x84,0x3f,0x90,0xf8,0xf, 0x8, 0x12,0x3c,0xef,0x57,0x90, +0x14,0x5, 0x77,0x88,0xde,0x1f,0x17,0x80,0xe0,0xe, 0x39,0x1f,0x86,0x83,0xc7,0x81, +0xe2,0x0, 0xcf,0x85,0xe0,0x1, 0xae,0x9e,0x1, 0xf8,0x17,0x80,0xe0,0x2, 0xaf,0x92, +0x17,0x80,0xe0,0x0, 0x8f,0x2, 0x27,0x11,0xe0,0xe, 0x37,0xa5,0x3f,0x12,0xe0,0x6, +0x8f,0x5e,0xe0,0x2, 0x8e,0x92,0xc7,0x81,0x3f,0x1d,0xe0,0x2, 0xaf,0x12,0xe2,0x1, +0xc7,0xff,0x8f,0x2, 0x3f,0xfe,0x4, 0xf1,0xc0,0x20,0x9, 0xe1,0x8, 0xb3,0xc0,0x60, +0xe0,0x0, 0x19,0x2b,0x17,0x0, 0xaf,0x2, 0x17,0xff,0xaf,0x12,0x16,0x8e,0xaf,0xa2, +0xaf,0x32,0xaf,0x42,0xaf,0x52,0xaf,0x62,0xaf,0x72,0xe0,0x1, 0xaf,0x2, 0xe0,0x1, +0xaf,0x62,0xe0,0x1, 0xaf,0xf2,0xe0,0x2, 0xaf,0x2, 0xe0,0x2, 0x19,0x8d,0xe0,0x2, +0xaf,0x12,0x8f,0x83,0x3e,0xbf,0xe0,0x2, 0x1f,0xe9,0x3f,0x9d,0xf0,0x0, 0x81,0x2f, +0xf0,0x0, 0x81,0xcf,0xf0,0x0, 0x82,0x5f,0xf0,0x0, 0x82,0xef,0xf0,0x0, 0x83,0x7f, +0xf0,0x1, 0x83,0x8f,0x86,0xbf,0xe0,0x1, 0x84,0xaf,0xe0,0x1, 0x85,0x3f,0xe0,0x1, +0x85,0xcf,0xe0,0x1, 0x86,0x5f,0xe0,0x1, 0x84,0x1f,0xf0,0x0, 0x69,0x16,0x3f,0xed, +0xf0,0x0, 0x69,0x98,0xe2,0x1, 0xc7,0xff,0xf0,0x0, 0x6a,0x19,0xf0,0x0, 0x6a,0x9a, +0xf0,0x0, 0x6b,0x1b,0xf0,0x0, 0x6b,0x9c,0x6c,0x1d,0x6c,0x9e,0x6d,0x1f,0x6d,0xa0, +0x6e,0x21,0x6f,0x14,0x6f,0x15,0x27,0x87,0x57,0x8c,0xe2,0x1, 0xc7,0xbf,0xe0,0x42, +0xcf,0x80,0x77,0x8c,0x17,0x80,0xf0,0x0, 0x11,0x14,0x6f,0x97,0xf0,0x12,0x39,0x10, +0xf8,0x12,0x8, 0x2, 0x17,0x84,0x3f,0x90,0xf8,0xf, 0x8, 0x12,0x3c,0xef,0x57,0x90, +0x14,0x6, 0x77,0x88,0xdd,0x97,0x17,0x80,0xe0,0xe, 0x39,0x1f,0x86,0x83,0xc7,0x81, +0xe2,0x0, 0xcf,0x85,0xe0,0x1, 0xae,0x9e,0x1, 0xf8,0x17,0x80,0xe0,0x2, 0xaf,0x92, +0x17,0x80,0xe0,0x0, 0x8f,0x2, 0x27,0x11,0xe0,0xe, 0x37,0xa5,0x3f,0x12,0xe0,0x6, +0x8f,0x5e,0xe0,0x2, 0x8e,0x92,0xc7,0x81,0x3f,0x1d,0xe0,0x2, 0xaf,0x12,0xe2,0x1, +0xc7,0xff,0x8f,0x2, 0x3f,0xfe,0x4, 0xf1,0xc0,0x20,0x9, 0xe1,0x8, 0xb3,0xc0,0x60, +0xe0,0x0, 0x19,0x2b,0x17,0x80,0xaf,0x82,0x17,0x7f,0xaf,0x92,0x16,0xe, 0xaf,0x22, +0xf0,0x0, 0x11,0x14,0xaf,0xb2,0xf0,0x12,0x39,0x10,0xaf,0xc2,0x16,0x84,0xaf,0xd2, +0x3e,0x90,0xaf,0xe2,0x3c,0xed,0xaf,0xf2,0x14,0x3, 0xe0,0x1, 0xaf,0x82,0xe0,0x1, +0xaf,0xe2,0xe0,0x1, 0xaf,0x72,0xe0,0x2, 0xaf,0x82,0xe0,0x2, 0x19,0x8d,0xe0,0x2, +0xaf,0x92,0x8f,0x3, 0x3e,0x3e,0xe0,0x2, 0x1f,0x69,0x3f,0x1c,0xf0,0x0, 0x81,0xae, +0xf0,0x0, 0x82,0x4e,0xf0,0x0, 0x82,0xde,0xf0,0x0, 0x83,0x6e,0x85,0x7e,0xe0,0x1, +0x85,0x8e,0xe0,0x1, 0x86,0x1e,0xf0,0x1, 0x83,0xae,0xf8,0x0, 0xa9,0xa2,0xf8,0x0, +0xaa,0x42,0xf8,0x0, 0xaa,0xd2,0xf8,0x0, 0xab,0x62,0xe8,0x0, 0xad,0x72,0xe8,0x1, +0xad,0x82,0xe0,0x1, 0x85,0x3e,0xe8,0x1, 0xae,0x12,0xe0,0x1, 0x85,0xce,0xe0,0x1, +0x86,0x5e,0xf8,0x1, 0xab,0xa2,0xe8,0x0, 0x97,0x22,0xe8,0x1, 0xad,0x32,0x15,0x47, +0x3f,0x5a,0x6f,0x94,0xcf,0x10,0xe8,0x0, 0xaf,0x92,0xe8,0x0, 0xaf,0xb2,0xe8,0x0, +0xb7,0x22,0xe8,0x1, 0xad,0xc2,0xe8,0x1, 0xae,0x52,0xf8,0x12,0x8, 0x2, 0xf8,0xd, +0x8, 0x12,0x57,0x90,0x77,0x88,0xdd,0xe, 0x17,0x80,0xe0,0xe, 0x39,0x1f,0x86,0x83, +0xc7,0x81,0xe2,0x0, 0xcf,0x85,0xe0,0x1, 0xae,0x9e,0x1, 0xf8,0x17,0x80,0xe0,0x2, +0xaf,0x92,0x17,0x80,0x8f,0x2, 0x27,0x11,0xe0,0xe, 0x37,0xa5,0x3f,0x12,0xe0,0x6, +0x8f,0x5e,0xe0,0x2, 0x8e,0x92,0xc7,0x81,0x3f,0x1d,0xe0,0x2, 0xaf,0x12,0xe2,0x1, +0xc7,0xff,0x8f,0x2, 0x3f,0xfe,0x4, 0xf1,0xc0,0x20,0x9, 0xe1,0x8, 0xb1,0xc0,0x70, +0xe0,0x2, 0x1f,0xe9,0xe2,0x0, 0x7c,0x84,0xf0,0x0, 0x80,0xf, 0xf0,0x0, 0x80,0x9f, +0xf0,0x0, 0x81,0x2f,0xf0,0x0, 0x81,0xbf,0xf0,0x0, 0x82,0x4f,0xf0,0x0, 0x82,0xdf, +0xf0,0x0, 0x83,0x6f,0xf0,0x0, 0x83,0xff,0xe0,0x1, 0x85,0xf, 0xe0,0x1, 0x85,0x9f, +0xe0,0x1, 0x86,0x2f,0xe0,0x1, 0x86,0xbf,0xe0,0x1, 0x87,0x4f,0xe0,0x1, 0x87,0xdf, +0x14,0x0, 0x6f,0x10,0x6f,0x91,0xf0,0x0, 0x68,0x4, 0xf0,0x0, 0x68,0x85,0xf0,0x0, +0x69,0x6, 0xf0,0x0, 0x69,0x87,0xf0,0x0, 0x6a,0x8, 0xf0,0x0, 0x6a,0x89,0xf0,0x0, +0x6b,0xa, 0xf0,0x0, 0x6b,0x8b,0x6d,0xc, 0x6d,0x8d,0x6e,0xe, 0x6e,0x8f,0xdc,0xb2, +0xe0,0x0, 0x1f,0xab,0x17,0x0, 0xe0,0x1, 0xaf,0x1f,0xe0,0x1, 0xaf,0x2f,0xe0,0x1, +0xaf,0x3f,0xe0,0x1, 0xaf,0x4f,0xe0,0x1, 0xaf,0x5f,0xc0,0x10,0x8, 0xe1,0x8, 0xb1, +0xc0,0x70,0xe0,0x2, 0x1f,0x69,0x17,0x8e,0x3f,0x9e,0xf0,0x1, 0x80,0x6e,0xf0,0x0, +0x80,0x9f,0xf0,0x0, 0x81,0x2f,0xf0,0x0, 0x81,0xbf,0xf0,0x0, 0x82,0x4f,0xf0,0x0, +0x82,0xdf,0xf0,0x0, 0x83,0x6f,0xf0,0x0, 0x83,0xff,0xe0,0x1, 0x85,0xf, 0xe0,0x1, +0x85,0x9f,0xe0,0x1, 0x86,0x2f,0xe0,0x1, 0x86,0xbf,0xe0,0x1, 0x87,0x4f,0xe0,0x1, +0x87,0xdf,0xe2,0x0, 0x7c,0x84,0x14,0x1, 0x6f,0x10,0x6f,0x91,0xf0,0x0, 0x68,0x4, +0xf0,0x0, 0x68,0x85,0xf0,0x0, 0x69,0x6, 0xf0,0x0, 0x69,0x87,0xf0,0x0, 0x6a,0x8, +0xf0,0x0, 0x6a,0x89,0xf0,0x0, 0x6b,0xa, 0xf0,0x0, 0x6b,0x8b,0x6d,0xc, 0x6d,0x8d, +0x6e,0xe, 0x6e,0x8f,0xdc,0x67,0xe0,0x0, 0x1f,0xab,0x17,0x1, 0xe0,0x1, 0xaf,0x1f, +0xe0,0x1, 0xaf,0x2f,0xe0,0x1, 0xaf,0x3f,0xe0,0x1, 0xaf,0x4f,0xe0,0x1, 0xaf,0x5f, +0xc0,0x10,0x8, 0xe1,0x8, 0xb1,0xc0,0x70,0xe0,0x2, 0x1f,0x69,0x17,0x9c,0x3f,0x9e, +0xf0,0x3, 0x80,0x4e,0xf0,0x0, 0x80,0x9f,0xf0,0x0, 0x81,0x2f,0xf0,0x0, 0x81,0xbf, +0xf0,0x0, 0x82,0x4f,0xf0,0x0, 0x82,0xdf,0xf0,0x0, 0x83,0x6f,0xf0,0x0, 0x83,0xff, +0xe0,0x1, 0x85,0xf, 0xe0,0x1, 0x85,0x9f,0xe0,0x1, 0x86,0x2f,0xe0,0x1, 0x86,0xbf, +0xe0,0x1, 0x87,0x4f,0xe0,0x1, 0x87,0xdf,0xe2,0x0, 0x7c,0x84,0x14,0x2, 0x6f,0x10, +0x6f,0x91,0xf0,0x0, 0x68,0x4, 0xf0,0x0, 0x68,0x85,0xf0,0x0, 0x69,0x6, 0xf0,0x0, +0x69,0x87,0xf0,0x0, 0x6a,0x8, 0xf0,0x0, 0x6a,0x89,0xf0,0x0, 0x6b,0xa, 0xf0,0x0, +0x6b,0x8b,0x6d,0xc, 0x6d,0x8d,0x6e,0xe, 0x6e,0x8f,0xdc,0x1c,0xe0,0x0, 0x1f,0xab, +0x17,0x2, 0xe0,0x1, 0xaf,0x1f,0xe0,0x1, 0xaf,0x2f,0xe0,0x1, 0xaf,0x3f,0xe0,0x1, +0xaf,0x4f,0xe0,0x1, 0xaf,0x5f,0xc0,0x10,0x8, 0xe1,0x8, 0xb2,0xe0,0x0, 0x19,0x2b, +0x17,0x80,0xaf,0x82,0x17,0x7f,0xaf,0x92,0xe2,0x0, 0xcc,0x1, 0xaf,0x22,0xaf,0xb2, +0xaf,0xc2,0xaf,0xd2,0xaf,0xe2,0xaf,0xf2,0xe0,0x1, 0xaf,0x82,0xe0,0x1, 0xaf,0xe2, +0xe0,0x1, 0xaf,0x72,0xe0,0x2, 0xaf,0x82,0xe0,0x2, 0xaf,0x92,0x1, 0x21,0x4, 0x9e, +0xe2,0x0, 0xcc,0x2, 0x1, 0x19,0x17,0x80,0xe0,0x2, 0xaf,0x92,0x17,0x80,0xe0,0x0, +0x8f,0x2, 0x27,0x11,0xe0,0xe, 0x37,0xa5,0x3f,0x12,0xe0,0x6, 0x8f,0x5e,0xe0,0x2, +0x8e,0x92,0xc7,0x81,0x3f,0x1d,0xe0,0x2, 0xaf,0x12,0xe2,0x1, 0xc7,0xff,0x8f,0x2, +0x3f,0xfe,0x4, 0xf1,0x9, 0x61,0xdf,0x7f,0x0, 0xe7,0xde,0xe9,0x0, 0xe5,0xdf,0x30, +0x0, 0xe3,0xe0,0x0, 0x1f,0xab,0xe0,0x2, 0x8f,0xcf,0x27,0x96,0xe0,0x2, 0x1f,0x1, +0x8f,0xe, 0xe2,0x0, 0xcf,0x2, 0x1, 0x11,0xe0,0x1, 0x1f,0x26,0xc7,0x82,0x8e,0x8e, +0x37,0xa1,0x3f,0x98,0x87,0xf, 0x36,0xc1,0xc6,0x81,0x16,0x60,0xe2,0x0, 0xc6,0x9f, +0x3f,0x5c,0x3e,0xce,0xae,0x8f,0x38,0x82,0x3f,0x1f,0xe0,0x1, 0x1f,0xa6,0x37,0x21, +0x8f,0x8f,0x3c,0x1e,0xc7,0x81,0x87,0x8, 0x37,0x81,0xc7,0x81,0x16,0xe0,0xe2,0x0, +0xc7,0x9f,0x3f,0x5d,0x3f,0xce,0xaf,0x88,0x38,0x82,0x8, 0xb1,0xe0,0x0, 0x1f,0xb7, +0x8f,0x8f,0x27,0x99,0xe0,0x2, 0x1f,0x81,0x8f,0x8f,0x27,0xaf,0xe0,0x2, 0x1f,0xd, +0x16,0x82,0x8f,0x8e,0xe0,0x2f,0x3f,0x8d,0x2f,0xa8,0x17,0x83,0xe0,0x2f,0x3c,0xf, +0x2f,0xa4,0x8f,0x8e,0x17,0x1, 0xe0,0x2f,0x3f,0x8e,0x2f,0x9f,0x17,0x86,0xe0,0x28, +0x3c,0xf, 0x2c,0x1b,0xe0,0x6, 0xd5,0x8a,0xe0,0x0, 0xdf,0x49,0xe0,0x2, 0x1f,0xf3, +0xe0,0x1, 0x1e,0xdf,0xa7,0x8f,0xe7,0xfb,0x16,0x7f,0xa7,0x4f,0x97,0x8d,0xe2,0x0, +0xc7,0x1, 0x37,0x29,0x3f,0xdc,0x3f,0xce,0xb7,0x8d,0x17,0x1, 0xe0,0x0, 0x1f,0xab, +0xaf,0x3f,0x8, 0xa1,0xe0,0xbd,0x0, 0x88,0xe0,0x6, 0xd5,0x70,0xe0,0x0, 0xdf,0x2f, +0xe0,0x2, 0x1f,0xf3,0xe0,0x1, 0x1e,0xdf,0xa7,0x8f,0xe7,0xfb,0x16,0x7f,0xa7,0x4f, +0x97,0x8d,0xe2,0x0, 0xc7,0x1, 0x37,0x29,0x3f,0xdc,0x3f,0xce,0xb7,0x8d,0x17,0x1, +0xe0,0x0, 0x1f,0xab,0xaf,0x3f,0x8, 0xa1,0xe0,0xbd,0x0, 0x80,0x8, 0xb2,0xc0,0x70, +0xe2,0x0, 0xcc,0x2, 0x39,0x68,0xe0,0x0, 0x5, 0xed,0xe2,0x0, 0xc9,0x6, 0x14,0x0, +0x5, 0x83,0xc0,0x10,0x9, 0x61,0xe0,0x2, 0x1f,0x8d,0x17,0xe, 0x8f,0x8f,0x3f,0x3f, +0xe0,0x2, 0x1f,0xe9,0x3f,0x9e,0xf0,0x0, 0x80,0x8f,0xf0,0x0, 0x81,0x1f,0xf0,0x0, +0x81,0xaf,0xf0,0x0, 0x82,0x3f,0xf0,0x0, 0x82,0xcf,0xf0,0x0, 0x83,0x5f,0xf0,0x0, +0x83,0xef,0x84,0x7f,0xe0,0x1, 0x84,0x8f,0xe0,0x1, 0x85,0x1f,0xe0,0x1, 0x85,0xaf, +0xe0,0x1, 0x86,0x3f,0xe0,0x1, 0x86,0xcf,0xe0,0x1, 0x87,0x5f,0xe0,0x0, 0x1f,0xab, +0xf0,0x0, 0x68,0x84,0xe0,0x2, 0x8f,0xcf,0xf0,0x0, 0x69,0x5, 0xf0,0x0, 0x69,0x86, +0xf0,0x0, 0x6a,0x7, 0xf0,0x0, 0x6a,0x88,0xf0,0x0, 0x6b,0x9, 0xf0,0x0, 0x6b,0x8a, +0x6c,0xb, 0x6c,0x8c,0x6d,0xd, 0x6d,0x8e,0x6e,0xf, 0x6e,0x90,0x6f,0x11,0x27,0x9c, +0xe0,0x2, 0x1f,0x1, 0xc7,0x82,0x8f,0xe, 0x37,0xa1,0xe2,0x0, 0xcf,0x2, 0xe0,0x1, +0x1f,0x26,0x8f,0xe, 0xe0,0x0, 0x1, 0x4b,0xe2,0x0, 0x7e,0x84,0x3f,0x9d,0x37,0x41, +0x96,0x8f,0x37,0x28,0xe0,0x2, 0xc7,0x0, 0xe7,0xc1,0x16,0x7f,0xe2,0x3e,0xc7,0x0, +0x3e,0xdc,0x3f,0x4d,0xb7,0xf, 0x3c,0x62,0xe2,0x0, 0x7c,0x84,0xdb,0xa1,0xe2,0x0, +0x7c,0x4, 0xe0,0x5, 0xdd,0x7a,0x3c,0x62,0xdf,0x41,0x14,0x1, 0xc0,0x10,0x9, 0x61, +0xe0,0x0, 0x1f,0x2b,0x14,0xe, 0x3c,0x32,0xe0,0x2, 0x1f,0xe9,0xe0,0x2, 0x8f,0x4e, +0x3c,0x1f,0x27,0x70,0xe0,0x2, 0x1e,0x81,0x8e,0x8d,0xe2,0x0, 0xce,0x82,0x16,0x87, +0x3e,0xb2,0x3e,0x9e,0x1, 0x11,0xc6,0x82,0xe0,0x1, 0x1f,0x26,0x36,0xa1,0x8f,0xe, +0x3f,0x9d,0x86,0x8f,0x37,0x41,0xc7,0x1, 0x16,0x60,0xe2,0x0, 0xc7,0x1f,0x3e,0xdc, +0x3f,0x4d,0xaf,0xf, 0x0, 0xd7,0xe0,0x1, 0x1f,0x26,0xc6,0x82,0x8f,0xe, 0x36,0xa1, +0x3f,0x9d,0xc7,0x1, 0x86,0x8f,0x37,0x1, 0x0, 0xef,0xe2,0x0, 0x7e,0x84,0xc7,0x1, +0x3f,0x9d,0x37,0x1, 0x96,0x8f,0xc7,0x1, 0xe2,0x0, 0xc7,0x1f,0xe7,0xc1,0x16,0x7f, +0x37,0x28,0x3e,0xdc,0x3f,0x4d,0xb7,0xf, 0xe7,0xff,0x0, 0xb7,0xe0,0x0, 0x1f,0xab, +0x8e,0x9f,0x8f,0xf, 0x3e,0xfe,0x4, 0x83,0x14,0x0, 0x38,0x82,0x8f,0x1f,0x37,0x25, +0x3f,0x9e,0xa4,0x6f,0xe2,0x1, 0xc4,0x7f,0xe7,0xfe,0x0, 0xc2,0x8, 0xb2,0xe0,0x2, +0x1f,0x7f,0xe0,0x1, 0x1f,0xe1,0x8e,0x8e,0x87,0x6f,0xe2,0x0, 0xc6,0x87,0x36,0xa5, +0xe2,0x0, 0xc7,0x1f,0x3f,0x4d,0xaf,0x6f,0x16,0x60,0x9f,0x3f,0x86,0xef,0x37,0x48, +0xc7,0x1, 0xe2,0x0, 0xc7,0x1f,0x3e,0xdc,0x3f,0x4d,0xaf,0x6f,0x9f,0x3f,0x37,0x48, +0xe2,0x0, 0xc7,0x1f,0xe2,0x0, 0xcf,0x1f,0x1, 0x85,0x87,0x6f,0x3f,0x5c,0xcf,0x4, +0xaf,0x6f,0x17,0x80,0xe0,0x0, 0x19,0x2b,0x17,0x7f,0xaf,0xb2,0x14,0x0, 0xaf,0x92, +0xaf,0x22,0xaf,0xc2,0xaf,0xd2,0xaf,0xe2,0xaf,0xf2,0xe0,0x1, 0xaf,0x82,0xe0,0x1, +0xaf,0xe2,0xe0,0x1, 0xaf,0x72,0xe0,0x2, 0xaf,0x82,0xe0,0x1, 0xd2,0x6e,0x8f,0x12, +0x8f,0x82,0x3f,0x7f,0x4, 0x87,0x17,0x83,0x14,0x1, 0xaf,0xb2,0x9, 0x21,0xe0,0x24, +0x0, 0xe4,0x8f,0x92,0x37,0xa5,0x3f,0x92,0xa4,0x6f,0xe2,0x1, 0xc4,0x7f,0xde,0xf7, +0xe2,0x0, 0xcc,0x1, 0x1, 0xf1,0x14,0x1, 0x9, 0x21,0xe0,0x24,0x0, 0xd6,0x8, 0xb5, +0xe0,0x0, 0x19,0x2b,0x3a,0xe8,0x8f,0xb2,0xe2,0x0, 0xcf,0x81,0x1, 0x97,0xe0,0x1, +0x19,0xdf,0xe0,0x2, 0x1a,0x73,0x97,0x83,0xe2,0x0, 0xc7,0x81,0x2f,0x87,0xa7,0x84, +0xe0,0x4, 0xa7,0xff,0xe2,0x0, 0xc7,0x81,0x27,0x83,0xe0,0x1, 0xd2,0x4, 0xe0,0x3, +0xd4,0xac,0x8f,0xb2,0xe2,0x0, 0xcf,0x81,0x1, 0x6f,0x2a,0x82,0xa, 0xe1,0xa, 0xa1, +0xe0,0xb8,0x0, 0xf2,0x8, 0xb1,0xe0,0x1, 0x1f,0xdf,0x97,0x8f,0xe2,0x0, 0xc7,0x81, +0x2f,0xa0,0xe0,0x2, 0x1f,0xf3,0xa7,0x8f,0xe0,0x4, 0xa7,0xff,0xe2,0x0, 0xc7,0x81, +0x2f,0x98,0xe0,0x3, 0xd4,0x92,0xe0,0x0, 0x1f,0x2b,0xe0,0x2, 0x8c,0x1e,0x24,0x10, +0x8f,0xce,0x27,0x84,0x0, 0x91,0x8e,0xcc,0x2e,0x8f,0xe0,0x2, 0x8e,0x9e,0xc7,0x81, +0xe2,0x1, 0xc7,0xff,0x3e,0xff,0xe0,0xc, 0x3f,0x1f,0x2, 0xf6,0x14,0x0, 0x8, 0xe1, +0xe0,0x1, 0xd1,0xd1,0x0, 0xe7,0x14,0x1, 0x8, 0xe1,0xe2,0x0, 0xcc,0x5, 0x2, 0x87, +0xe0,0x0, 0x1f,0xab,0x3c,0x1f,0xe0,0x2, 0x8c,0x28,0x38,0x82,0x14,0x0, 0x38,0x82, +0x8, 0xb2,0xe0,0x1, 0x1f,0xdf,0x39,0x68,0x97,0x8f,0xe2,0x0, 0xc7,0x81,0x2f,0x9f, +0xe0,0x2, 0x1f,0xf3,0xa7,0x8f,0xe0,0x4, 0xa7,0xff,0xe2,0x0, 0xc7,0x81,0x2f,0x97, +0xe0,0x3, 0xd4,0x5b,0xe2,0x0, 0xc9,0x5, 0xe0,0x0, 0x1f,0xab,0x17,0x0, 0x2, 0x84, +0x39,0x1f,0xe0,0x2, 0x8f,0x22,0xe0,0x2, 0x8e,0x9f,0x14,0x1, 0x3e,0xfe,0x5, 0x86, +0x3f,0x9e,0x8c,0x4f,0x17,0x80,0xe1,0x28,0x3c,0xf, 0x9, 0x61,0xe0,0x1, 0xd1,0x9b, +0x0, 0xe8,0x8, 0xb1,0xe0,0x5, 0xdc,0x10,0xe0,0x0, 0x1f,0xab,0x16,0x83,0xae,0xbf, +0x17,0x2, 0xaf,0x4f,0x16,0x80,0xaf,0x5f,0xaf,0x6f,0xaf,0x7f,0xe0,0x1, 0x1e,0x5f, +0xe0,0x1, 0xaf,0xf, 0x97,0x8c,0xe0,0x2, 0x1f,0x5a,0xe3,0xff,0xc7,0xef,0xb7,0x8c, +0x97,0x8e,0xe3,0xff,0xc7,0xdf,0xb7,0x8e,0xe0,0x1, 0x1f,0xfa,0xae,0x8f,0xe0,0x1, +0x1f,0xb1,0xa7,0xf, 0xe0,0x0, 0x1f,0x90,0xae,0x8f,0xe7,0x7f,0x16,0xff,0xa7,0x8e, +0x3f,0xdd,0xbf,0x8e,0x8, 0xe1,0xe0,0x0, 0x1f,0xab,0x8f,0x3f,0xe2,0x0, 0xcf,0x1, +0x1, 0x2, 0x38,0x82,0x87,0x1f,0xaf,0x2f,0xe0,0x1, 0x8f,0x7f,0xc7,0x1, 0xe0,0x1, +0xaf,0x7f,0xe0,0x1, 0x8f,0x6f,0xc7,0x1, 0xe0,0x1, 0xaf,0x6f,0xe0,0x1, 0x8e,0xef, +0x8f,0x1f,0x37,0x25,0x3f,0x1f,0xe0,0x6, 0x8f,0x5e,0x3e,0xfe,0x4, 0xeb,0x17,0x0, +0xe0,0x1, 0xaf,0x6f,0x8f,0x1f,0xc7,0x1, 0xaf,0x1f,0x8e,0x9f,0x8f,0xf, 0x3e,0xfe, +0x3, 0xe1,0x17,0x3, 0xaf,0x3f,0x38,0x82,0x8, 0xb4,0xe0,0x0, 0x19,0x2b,0xe0,0x1, +0x8f,0x72,0x8f,0xa2,0x89,0xb2,0xe2,0x0, 0xc9,0x81,0x1, 0x2, 0xa, 0x61,0x8e,0x22, +0x8e,0x82,0x3e,0x7d,0x3, 0xa8,0x37,0xa3,0x8e,0xa2,0x3f,0x9e,0xc7,0x87,0x36,0xa5, +0x37,0xa2,0x3f,0x92,0xe0,0x4, 0x39,0x1e,0x3e,0x92,0xa6,0xed,0xa4,0x8f,0xe0,0x1, +0x8f,0x94,0xe4,0x0, 0xc7,0x87,0x3f,0x9e,0xc7,0x82,0xe0,0x2, 0x1f,0x69,0x37,0xa1, +0x3f,0x9e,0x8c,0x1f,0x34,0x47,0x24,0x8f,0xe0,0x1, 0x17,0xff,0x3f,0xdd,0xe0,0x2, +0x1f,0x7b,0xe2,0x0, 0xcf,0x86,0xa9,0x8e,0x2, 0x86,0xe0,0xf, 0x31,0xbf,0xe2,0x0, +0xc7,0xd7,0x2f,0x8c,0x8f,0x12,0x8f,0x82,0x3f,0x7f,0x4, 0xd1,0x17,0x82,0xaf,0xb2, +0x17,0x0, 0xe0,0x0, 0x1f,0x94,0xaf,0xf, 0xa, 0x61,0xef,0xff,0xd6,0x85,0xe0,0x1, +0x1f,0xdf,0x9f,0x8f,0x37,0xc4,0xe2,0x0, 0xc7,0x81,0x27,0x86,0x17,0x2, 0xaf,0x44, +0xe0,0x5, 0xdb,0x72,0x0, 0xe8,0xa9,0xc4,0x0, 0xfc,0x0, 0x0, 0x8, 0xb1,0xc0,0x68, +0xe0,0x2, 0x1f,0xbf,0xe9,0xff,0xc4,0x7e,0x87,0x5f,0x86,0xcf,0xe0,0xf, 0x34,0x41, +0x6f,0x5, 0x14,0x85,0x17,0x0, 0x7f,0x83,0xe2,0x0, 0x7c,0x4, 0x7f,0x85,0x17,0x80, +0x6e,0x84,0x6f,0x6, 0x77,0x84,0xe0,0x5, 0xdd,0xd9,0xc0,0x18,0x8, 0xe1,0xe0,0x2, +0x1f,0xa8,0xe0,0x2, 0x1f,0x3f,0x87,0x8f,0xe0,0x3, 0x8e,0xae,0xe2,0x0, 0xc7,0x81, +0x3e,0xff,0x1, 0x2e,0x9f,0xde,0xe0,0x2, 0x1e,0xf0,0xe2,0x0, 0xcc,0x2, 0xe0,0x2, +0x1f,0x6f,0x3d,0xed,0xe0,0x6b,0x39,0x2e,0xe2,0x0, 0xcc,0x85,0x16,0x1, 0x36,0x39, +0x2, 0x12,0x27,0x91,0x15,0x7f,0x3d,0x1f,0xe3,0xff,0xc5,0x7f,0x17,0x7f,0xe2,0x1, +0xc6,0x7f,0x3f,0x1b,0x3d,0x1b,0x86,0x9e,0x3e,0xcc,0xe0,0x80,0xae,0x9e,0x3f,0x7a, +0x1, 0xfb,0x0, 0x83,0xe2,0x1, 0xc6,0x7f,0x16,0x86,0x3e,0x9f,0x3e,0x9b,0x3f,0x9b, +0x87,0xf, 0x3f,0x4c,0xe1,0x80,0xaf,0x1f,0x3e,0xff,0x1, 0xfb,0x38,0x82,0x9f,0xee, +0x0, 0xd3,0xe0,0x2, 0x1f,0xa8,0xe0,0x2, 0x1f,0x3f,0x87,0x8f,0xe0,0x3, 0x8e,0xae, +0xe2,0x0, 0xc7,0x81,0x3e,0xff,0x1, 0x3c,0x9f,0xde,0xe0,0x2, 0x1f,0x70,0xe2,0x0, +0xcc,0x2, 0xe0,0x2, 0x1e,0xef,0x3e,0x6e,0xe0,0x6c,0x39,0x2d,0xe2,0x0, 0xcc,0x85, +0x14,0x1, 0x34,0x39,0x2, 0x18,0x27,0x97,0x14,0xff,0x3c,0x9f,0xe3,0xff,0xc4,0xff, +0xc4,0x81,0x3e,0xea,0x3f,0x6c,0x3c,0x9c,0xf0,0x41,0x3b,0x88,0x9d,0x8d,0xc6,0x82, +0xe2,0x9, 0xcd,0xaf,0x2, 0x85,0x85,0x8e,0xe8,0xb, 0x3d,0xd7,0xad,0x8e,0xc7,0x1, +0x3f,0x79,0x1, 0xf5,0x17,0x6, 0xe0,0xd, 0x37,0xa1,0x3f,0x1f,0x3f,0x1c,0x3f,0x9c, +0x3d,0x1d,0xe0,0x41,0x3e,0x8, 0x9e,0x8a,0xc5,0x2, 0xe2,0x9, 0xce,0xaf,0x2, 0x84, +0x86,0x8f,0x3e,0xdc,0xae,0x8f,0xc7,0x81,0x3f,0x7f,0x1, 0xf6,0x38,0x82,0x9f,0xee, +0x0, 0xc5,0x8, 0xb7,0xf8,0x0, 0xc, 0x39,0x39,0x68,0xe0,0x1, 0xd2,0x26,0xe0,0x2, +0x1f,0xa8,0xe0,0x2, 0x1f,0x3f,0x87,0x8f,0xe0,0x3, 0x8e,0xae,0xe2,0x0, 0xc7,0x81, +0x3e,0xff,0x3b,0x68,0xe0,0x0, 0x1, 0x77,0x95,0x5e,0xc5,0x6, 0xe3,0xff,0xc5,0x7f, +0xe2,0x0, 0xc9,0x2, 0xe0,0x2, 0x1c,0x6f,0xe0,0x2, 0x1f,0xf0,0x14,0x80,0xe0,0x68, +0x39,0xaf,0xe0,0x7, 0xd8,0xa3,0xe0,0x0, 0x2b,0x62,0xe0,0x2, 0x1f,0xf3,0xe0,0x1, +0x1e,0xdf,0xa7,0x8f,0x16,0x5f,0xa7,0x4f,0x97,0x8d,0x37,0x45,0xe2,0x0, 0xc7,0x20, +0x3f,0xdc,0x3f,0xce,0xe0,0x2, 0x1a,0xf0,0xf0,0x1, 0x1c,0x4c,0xf0,0x1, 0x1c,0xcb, +0xb7,0x8d,0x11,0x85,0xe0,0x13,0x13,0xc4,0x12,0x1, 0x3c,0x67,0xe0,0x5, 0xd2,0x3, +0x3c,0xe3,0x3c,0x62,0xdf,0x3d,0x3c,0xe2,0x3c,0x65,0xef,0xff,0xd3,0xb, 0xdd,0xa7, +0x23,0x2d,0x3c,0xe2,0x3c,0x64,0xde,0x4d,0x24,0x7d,0xe8,0x40,0x3d,0x68,0x3c,0xe3, +0x3c,0x62,0xc1,0xff,0xdf,0x67,0xe0,0x43,0x39,0x83,0x3c,0xe3,0x3c,0x62,0xdf,0x28, +0x3c,0xe2,0x3c,0x65,0xef,0xff,0xd2,0xf6,0x3c,0x64,0xdd,0xe2,0xe8,0x40,0x3d,0x69, +0x3c,0xe3,0x3c,0x62,0xdf,0x57,0xe0,0x1, 0xd2,0x36,0x2c,0xd, 0xc1,0xff,0xe0,0x43, +0x39,0x83,0xe2,0x0, 0xc9,0x80,0x3, 0x52,0xe0,0x2, 0x1c,0x70,0x3c,0xe2,0xef,0xff, +0xd2,0xe1,0x2b,0xc, 0xf8,0x0, 0xc, 0xa8,0xb, 0xe1,0x3c,0x64,0xdd,0xc9,0xe8,0x40, +0x3d,0x68,0x3c,0xe3,0x3c,0x62,0xdf,0x3e,0x0, 0xe7,0xe0,0x0, 0x1f,0xb7,0x8c,0xf, +0xf8,0x0, 0xc, 0xa8,0xb, 0xa1,0xe7,0xf7,0x0, 0xf2,0xd8,0xf2,0x13,0x1, 0xe7,0xff, +0x0, 0x9e,0x95,0x6e,0xc5,0x6, 0xe3,0xff,0xc5,0x7f,0xe7,0xff,0x0, 0x8b,0x8, 0xb1, +0xe0,0x2, 0x1f,0x87,0x17,0x0, 0xb7,0xf, 0xdf,0x6d,0x14,0x1, 0x8, 0xe1,0x8, 0xb6, +0xe0,0x2, 0x1f,0x8d,0x8a,0xf, 0xe0,0x1, 0xd1,0xfe,0x2c,0x1e,0xe0,0x2, 0x1a,0xba, +0x11,0x1, 0x8f,0x85,0x37,0xd4,0x3f,0xd2,0x2f,0x83,0x3c,0x62,0xb, 0x61,0xe0,0x2, +0x1f,0x3b,0xe0,0x6, 0x31,0x34,0x8f,0x8e,0xe2,0x1, 0xc3,0x7f,0x3f,0xc6,0x39,0xe8, +0x3c,0x62,0xaf,0x8e,0xdd,0x8d,0xe0,0x2, 0x1f,0x87,0x3c,0x64,0xb1,0x8f,0xdf,0x4a, +0xe0,0x1, 0xd1,0xe1,0x24,0x4, 0x11,0x0, 0x3c,0x62,0xb, 0x61,0x8f,0x85,0xe3,0x6, +0x3f,0xd6,0xab,0x5, 0xd7,0xe6,0xe0,0x1, 0xd1,0x23,0x0, 0xe0,0x8, 0xb5,0xe0,0x2, +0x1f,0x8d,0x3a,0xe8,0x89,0x8f,0xe0,0x1, 0xd1,0xce,0x2c,0x1a,0xe0,0x2, 0x1a,0x3b, +0x39,0x68,0x8f,0x84,0x14,0x1, 0x37,0xd3,0x3f,0xd8,0x2f,0x82,0xa, 0xe1,0xdd,0x68, +0x3c,0xe3,0x3c,0x62,0xe0,0x6, 0xd5,0xec,0xe0,0x1, 0x1f,0xd0,0xe0,0x1, 0x1d,0x49, +0xe0,0x1, 0x1c,0xc8,0xa4,0xf, 0x3d,0xe3,0xe0,0x6, 0xd2,0x42,0x2c,0x3, 0x14,0x0, +0xa, 0xe1,0xe0,0x1, 0xd1,0xb0,0x2c,0x7c,0x2a,0x8d,0x8f,0x84,0x11,0x1, 0xe0,0x3, +0x31,0x33,0xe3,0x3, 0x3f,0xd3,0xa9,0x84,0xe0,0x1, 0xd0,0xf2,0xd7,0xb2,0x3c,0x62, +0xa, 0xe1,0xdc,0xf5,0x0, 0xf3,0x8, 0xb3,0xe0,0x3, 0xd0,0x98,0xe0,0x1, 0xd1,0xaa, +0xe0,0x2, 0x1f,0xba,0x8f,0x8f,0x27,0x8b,0xe0,0x13,0x11,0x44,0x0, 0x86,0x3c,0x62, +0xe0,0x5, 0xd1,0x39,0xe0,0x1, 0xd1,0x9e,0xdf,0x8b,0x24,0x7a,0xe0,0x2, 0x1f,0xbb, +0x11,0x1, 0x8f,0x8f,0xe0,0x13,0x11,0xc4,0x2f,0x87,0x0, 0x89,0x3c,0x63,0xe0,0x5, +0xd1,0x2a,0xe0,0x1, 0xd1,0x8f,0x3c,0x62,0xdf,0xaa,0x24,0x79,0x9, 0xe1,0xe0,0x1, +0x1f,0xde,0x16,0x7e,0xa6,0x8f,0xe0,0x0, 0x1f,0xac,0xa7,0x1d,0xa7,0x8f,0xcf,0x40, +0xbf,0x1d,0x17,0x0, 0xaf,0x7f,0x15,0xfd,0xa7,0xf, 0xe0,0x1, 0x1e,0xb1,0x3f,0x5c, +0xbf,0xf, 0xa7,0xf, 0xa6,0x8d,0x3f,0x5b,0xbf,0xf, 0xe0,0x1, 0xa7,0xd, 0x37,0x48, +0xe2,0x0, 0xc7,0x1, 0x2f,0x1c,0xe0,0x1, 0x1f,0x23,0x87,0xe, 0xe2,0x1, 0xc7,0x7e, +0xe0,0x1, 0xaf,0x3f,0x17,0x8, 0xe0,0x61,0x3f,0x11,0x17,0x10,0xe0,0x61,0x3f,0x11, +0xa7,0x4f,0xcf,0x10,0xbf,0x4f,0xe0,0x61,0x3f,0x82,0xcf,0x88,0xe0,0x61,0x3f,0x92, +0xe0,0x61,0x3f,0x82,0xcf,0x90,0xe0,0x61,0x3f,0x92,0x38,0x82,0xe0,0x1, 0xa7,0xd, +0x37,0x49,0xe2,0x0, 0xc7,0x1, 0x2f,0x60,0xe0,0x1, 0x1f,0x23,0xe0,0x1, 0x87,0x4e, +0x3e,0x5e,0xe0,0x1, 0xae,0x3f,0x0, 0xdf,0xd, 0xbf,0xe0,0x1, 0x1f,0xde,0xa7,0x8f, +0xa7,0x6f,0x37,0x49,0xe2,0x0, 0xc7,0x1, 0x27,0xb, 0xe0,0x1, 0x1f,0x31,0xa6,0x8e, +0xe0,0x2, 0xa7,0xd, 0x37,0x49,0xe2,0x0, 0xc7,0x1, 0xe0,0x3, 0x2f,0x57,0xa7,0x6f, +0x37,0x41,0xe2,0x0, 0xc7,0x1, 0x27,0xb, 0xe0,0x1, 0x1f,0x31,0xa7,0xe, 0xe0,0x2, +0xa7,0xe, 0x37,0x41,0xe2,0x0, 0xc7,0x1, 0xe0,0x3, 0x2f,0x32,0xa7,0x6f,0x37,0x4a, +0xe2,0x0, 0xc7,0x1, 0x27,0xb, 0xe0,0x1, 0x1f,0x31,0xa7,0xe, 0xe0,0x2, 0xa7,0xe, +0x37,0x4a,0xe2,0x0, 0xc7,0x1, 0xe0,0x3, 0x2f,0x16,0xa7,0x6f,0xe2,0x0, 0xc7,0x1, +0x27,0xa, 0xe0,0x1, 0x1f,0x31,0xa7,0xe, 0xe0,0x2, 0xa7,0xe, 0xe2,0x0, 0xc7,0x1, +0xe0,0x2, 0x2f,0x7e,0xa7,0x6f,0x37,0x48,0xe2,0x0, 0xc7,0x1, 0x27,0xb, 0xe0,0x1, +0x1f,0x31,0xa7,0xe, 0xe0,0x2, 0xa7,0xe, 0x37,0x48,0xe2,0x0, 0xc7,0x1, 0xe0,0x2, +0x2f,0x62,0xa7,0x6f,0x37,0x43,0xe2,0x0, 0xc7,0x1, 0x27,0xb, 0xe0,0x1, 0x1f,0x31, +0xa7,0xe, 0xe0,0x2, 0xa7,0xe, 0x37,0x43,0xe2,0x0, 0xc7,0x1, 0xe0,0x2, 0x2f,0x48, +0xa7,0x6f,0x37,0x42,0xe2,0x0, 0xc7,0x1, 0x27,0xb, 0xe0,0x1, 0x1f,0x31,0xa7,0xe, +0xe0,0x2, 0xa7,0xe, 0x37,0x42,0xe2,0x0, 0xc7,0x1, 0xe0,0x2, 0x2f,0x25,0xa7,0x6f, +0x37,0x47,0xe2,0x0, 0xc7,0x1, 0x27,0xb, 0xe0,0x1, 0x1f,0x31,0xa7,0xe, 0xe0,0x2, +0xa7,0xe, 0x37,0x47,0xe2,0x0, 0xc7,0x1, 0xe0,0x2, 0x2f,0x9, 0xa7,0x6f,0x37,0x4b, +0xe2,0x0, 0xc7,0x1, 0x27,0xb, 0xe0,0x1, 0x1f,0x31,0xa7,0xe, 0xe0,0x2, 0xa7,0xe, +0x37,0x4b,0xe2,0x0, 0xc7,0x1, 0xe0,0x1, 0x2f,0x60,0xa7,0x6f,0x37,0x4c,0xe2,0x0, +0xc7,0x1, 0x27,0xb, 0xe0,0x1, 0x1f,0x31,0xa7,0xe, 0xe0,0x2, 0xa7,0xe, 0x37,0x4d, +0xe2,0x0, 0xc7,0x1, 0xe0,0x1, 0x2f,0x44,0xa7,0x6f,0x37,0x4d,0xe2,0x0, 0xc7,0x1, +0x27,0xb, 0xe0,0x1, 0x1f,0x31,0xa7,0xe, 0xe0,0x2, 0xa7,0xe, 0x37,0x4c,0xe2,0x0, +0xc7,0x1, 0xe0,0x1, 0x2f,0x28,0xa7,0x6f,0x37,0x4e,0xe2,0x0, 0xc7,0x1, 0x27,0xb, +0xe0,0x1, 0x1f,0x31,0xa7,0xe, 0xe0,0x2, 0xa7,0xe, 0x37,0x4e,0xe2,0x0, 0xc7,0x1, +0xe0,0x1, 0x2f,0xc, 0xa7,0x6f,0x37,0x4f,0xe2,0x0, 0xc7,0x1, 0x27,0xb, 0xe0,0x1, +0x1f,0x31,0xa7,0xe, 0xe0,0x2, 0xa7,0xe, 0x37,0x4f,0xe2,0x0, 0xc7,0x1, 0xe0,0x0, +0x2f,0x69,0xa7,0x6f,0x37,0x44,0xe2,0x0, 0xc7,0x1, 0x27,0xb, 0xe0,0x1, 0x1f,0x31, +0xa7,0xe, 0xe0,0x2, 0xa7,0xe, 0x37,0x44,0xe2,0x0, 0xc7,0x1, 0xe0,0x0, 0x2f,0x4f, +0xa7,0x6f,0x37,0x45,0xe2,0x0, 0xc7,0x1, 0x27,0xa, 0xe0,0x1, 0x1f,0x31,0xa7,0xe, +0xe0,0x2, 0xa7,0xe, 0x37,0x45,0xe2,0x0, 0xc7,0x1, 0x2f,0x29,0xa7,0x6f,0x37,0x46, +0xe2,0x0, 0xc7,0x1, 0x27,0x1f,0xe0,0x1, 0x1f,0x31,0xa7,0xe, 0xe0,0x2, 0xa7,0xe, +0x37,0x46,0xe2,0x0, 0xc7,0x1, 0x27,0x16,0xa7,0x5f,0xa6,0xdf,0x37,0x46,0xe2,0x0, +0xc7,0x1, 0xe7,0xff,0x16,0x3f,0xe4,0x0, 0xcf,0x1, 0x3e,0xdc,0x37,0x26,0x3f,0x4d, +0xbf,0x5f,0xa7,0x6f,0xe0,0x2, 0x1e,0xaa,0x3f,0x5c,0xbf,0x6f,0x9f,0x8d,0xcf,0xc0, +0xb7,0x8d,0x17,0x81,0xe0,0x61,0x3f,0x91,0xf, 0xab,0x38,0x0, 0xa7,0x5f,0xa6,0xdf, +0x37,0x47,0xe2,0x0, 0xc7,0x1, 0xe7,0xfe,0x16,0x7f,0xe4,0x0, 0xcf,0x1, 0x3e,0xdc, +0x37,0x27,0x3f,0x4d,0xbf,0x5f,0x16,0x5f,0xa7,0x6f,0xe0,0x2, 0x1e,0xaa,0x3f,0x5c, +0xbf,0x6f,0x9f,0xd, 0xcf,0x20,0xb7,0xd, 0x0, 0xc2,0xa7,0x6f,0x16,0x6f,0xe0,0x2, +0x1e,0xaa,0x3f,0x5c,0xbf,0x6f,0x9f,0xd, 0xcf,0x10,0xb7,0xd, 0xe7,0xff,0x0, 0xaa, +0xa7,0x6f,0xe6,0xff,0x16,0xff,0x3f,0x5d,0xe0,0x2, 0x1e,0x83,0xbf,0x6f,0x17,0x1, +0xe0,0x0, 0x1e,0x1a,0xaf,0xd, 0xe0,0x2, 0x1e,0xaa,0xaf,0xc, 0x9f,0xd, 0xe1,0x0, +0xcf,0x0, 0xb7,0xd, 0xe7,0xff,0x0, 0x87,0xa7,0x6f,0xe7,0x7f,0x16,0x7f,0xe0,0x2, +0x1e,0xaa,0x3f,0x5c,0xbf,0x6f,0x9f,0xd, 0xe0,0x80,0xcf,0x0, 0xb7,0xd, 0xe7,0xfe, +0x0, 0xeb,0xa7,0x6f,0xe7,0xbf,0x16,0x7f,0xe0,0x2, 0x1e,0xaa,0x3f,0x5c,0xbf,0x6f, +0x9f,0xd, 0xe0,0x40,0xcf,0x0, 0xb7,0xd, 0xe7,0xfe,0x0, 0xcf,0xa7,0x6f,0xe7,0xdf, +0x16,0x7f,0xe0,0x2, 0x1e,0xaa,0x3f,0x5c,0xbf,0x6f,0x9f,0xd, 0xe0,0x20,0xcf,0x0, +0xb7,0xd, 0xe7,0xfe,0x0, 0xb3,0xa7,0x5f,0xa6,0xdf,0x37,0x4f,0xe2,0x0, 0xc7,0x1, +0xe6,0xff,0x16,0x7f,0xe4,0x0, 0xcf,0x1, 0x3e,0xdc,0x37,0x2f,0x3f,0x4d,0xbf,0x5f, +0xe7,0xef,0x16,0x7f,0xa7,0x6f,0xe0,0x2, 0x1e,0xaa,0x3f,0x5c,0xbf,0x6f,0x9f,0xd, +0xe0,0x10,0xcf,0x0, 0xb7,0xd, 0xe7,0xfe,0x0, 0x8a,0xa7,0x6f,0xe7,0xfe,0x16,0x7f, +0xe0,0x2, 0x1e,0xaa,0x3f,0x5c,0xbf,0x6f,0x9f,0xd, 0xe0,0x1, 0xcf,0x0, 0xb7,0xd, +0xe7,0xfd,0x0, 0xee,0xa6,0xef,0xe0,0x0, 0x1f,0x22,0x16,0x7b,0xa7,0xe, 0x3e,0xdc, +0xbe,0xef,0xa6,0x9e,0xe0,0x2, 0x1e,0x2a,0xce,0x81,0xbe,0x9e,0xa6,0x9e,0xce,0x90, +0xbe,0x9e,0x9f,0xc, 0xcf,0x4, 0xb7,0xc, 0xe7,0xfd,0x0, 0xcb,0xa7,0x6f,0x16,0x77, +0xe0,0x2, 0x1e,0xaa,0x3f,0x5c,0xbf,0x6f,0x9f,0xd, 0xcf,0x8, 0xb7,0xd, 0xe7,0xfd, +0x0, 0xb1,0xa7,0x6f,0xe7,0xfd,0x16,0x7f,0xe0,0x2, 0x1e,0xaa,0x3f,0x5c,0xbf,0x6f, +0x9f,0xd, 0xe0,0x2, 0xcf,0x0, 0xb7,0xd, 0xe7,0xfd,0x0, 0x95,0xa7,0x6f,0x16,0x7e, +0xe0,0x2, 0x1e,0xaa,0x3f,0x5c,0xbf,0x6f,0x9f,0xd, 0xcf,0x1, 0xb7,0xd, 0xe7,0xfc, +0x0, 0xfb,0xa7,0x6f,0xe7,0xf7,0x16,0x7f,0xe0,0x2, 0x1e,0xaa,0x3f,0x5c,0xbf,0x6f, +0x9f,0xd, 0xe0,0x8, 0xcf,0x0, 0xb7,0xd, 0xe7,0xfc,0x0, 0xe1,0xe0,0x1, 0x1f,0x59, +0x16,0x81,0xae,0x8e,0x16,0x5f,0xe0,0x0, 0x1f,0x2c,0xa6,0x8e,0xa7,0xd, 0x3f,0x5c, +0xbf,0xd, 0x16,0x7d,0xa7,0x6f,0xe0,0x2, 0x1e,0xaa,0x3f,0x5c,0xbf,0x6f,0x9f,0xd, +0xcf,0x2, 0xb7,0xd, 0xe7,0xfc,0x0, 0xbc,0xe0,0x1, 0xa7,0x6d,0xe7,0xef,0x15,0xff, +0xe0,0x10,0xcf,0x0, 0xe0,0x1, 0xbf,0x6d,0xe0,0x1, 0xa7,0x6d,0xe0,0x2, 0x1e,0x2a, +0x3f,0x5b,0xe0,0x1, 0xbf,0x6d,0xe7,0xfb,0x16,0xff,0xa7,0x6f,0x3f,0x5d,0xbf,0x6f, +0x9f,0xc, 0xe0,0x4, 0xcf,0x0, 0xb7,0xc, 0xe7,0xfc,0x0, 0x93,0xf, 0x3f,0xe0,0x1, +0x1f,0x61,0x97,0xde,0xe0,0x40,0xcf,0x80,0xb7,0xde,0x17,0x82,0xe0,0x61,0x3f,0x91, +0xf, 0xae,0x38,0x0, 0xf, 0xbf,0x17,0x84,0xe0,0x61,0x3f,0x91,0xf, 0xaf,0x38,0x0, +0xf, 0xbf,0x17,0xa0,0xe0,0x61,0x3f,0x91,0xf, 0xaf,0x38,0x0, 0xf, 0xbf,0xe0,0x0, +0x17,0xc0,0xe0,0x61,0x3f,0x91,0xf, 0xaf,0x38,0x0, 0xe, 0x3f,0xe0,0x2, 0x1f,0x7, +0xe0,0x0, 0x1e,0x9e,0x9f,0x8e,0xe0,0x2, 0x1e,0xc, 0xc7,0x81,0xb7,0x8e,0x9f,0x8d, +0x9f,0xc, 0xc7,0x81,0xb7,0x8d,0x27,0x3, 0xc7,0x7f,0xb7,0xc, 0xe0,0x2, 0x1f,0xd4, +0x8f,0xf, 0x27,0x4, 0x8f,0xf, 0xc7,0x7f,0xaf,0xf, 0x8f,0x8f,0x2f,0x86,0xe0,0x1, +0x1f,0x5f,0x97,0x8e,0xcf,0x88,0xb7,0x8e,0xe0,0x2, 0x1e,0xac,0xe0,0x2, 0x1f,0x0, +0x9f,0x8d,0xc7,0x81,0xb7,0x8d,0x9f,0x8e,0x27,0x84,0x9f,0x8e,0xc7,0xff,0xb7,0x8e, +0xe0,0x2, 0x1f,0xea,0x9f,0xf, 0x27,0x4, 0x9f,0xf, 0xc7,0x7f,0xb7,0xf, 0xe0,0x2, +0x1f,0xc0,0xe0,0x0, 0x1f,0x2e,0xa7,0x8f,0x97,0xe, 0xb7,0x3f,0xa7,0xf, 0xcf,0x1, +0xbf,0xf, 0xa7,0xf, 0xe0,0x1, 0xcf,0x0, 0xbf,0xf, 0xe0,0x2, 0x17,0x80,0xe0,0x61, +0x3f,0x91,0xf, 0xac,0x38,0x0, 0xf, 0xbf,0xe0,0x4, 0x17,0x80,0xe0,0x61,0x3f,0x91, +0xf, 0xaf,0x38,0x0, 0xf, 0xbf,0xe0,0x8, 0x17,0x80,0xe0,0x61,0x3f,0x91,0xf, 0xaf, +0x38,0x0, 0xf, 0xbf,0xe0,0x10,0x17,0x80,0xe0,0x61,0x3f,0x91,0xf, 0xaf,0x38,0x0, +0xf, 0xbf,0xe0,0x80,0x17,0x80,0xe0,0x61,0x3f,0x91,0xf, 0xaf,0x38,0x0, 0xf, 0xbf, +0xe0,0x20,0x17,0x80,0xe0,0x61,0x3f,0x91,0xf, 0xaf,0x38,0x0, 0x8, 0xb1,0xe8,0x0, +0xc, 0x37,0xe0,0x2, 0xdc,0x56,0x17,0x88,0xe0,0x61,0x3f,0x91,0xf0,0x0, 0xb, 0xa8, +0x8, 0xa1,0x38,0x0, 0x8, 0xb1,0xe8,0x0, 0xc, 0x37,0xe0,0x2, 0xdc,0x85,0x17,0x90, +0xe0,0x61,0x3f,0x91,0xf0,0x0, 0xb, 0xa8,0x8, 0xa1,0x38,0x0, 0x8, 0xb1,0xe8,0x0, +0xc, 0x37,0xe0,0x2, 0x1f,0xa6,0xe7,0xfe,0x16,0xff,0xa7,0xf, 0xa7,0xbe,0x3f,0xdd, +0xbf,0xbe,0xe0,0x4, 0xde,0x38,0xe0,0x40,0x17,0x80,0xe0,0x61,0x3f,0x91,0xf0,0x0, +0xb, 0xa8,0x8, 0xa1,0x38,0x0, 0x3f,0x83,0xe0,0x1, 0x1f,0xab,0xe0,0x6, 0x8f,0xf, +0xc7,0x7f,0xe0,0x6, 0xaf,0xf, 0xe0,0x6, 0x8f,0xf, 0x37,0x24,0x3f,0x1f,0xa7,0xe, +0xe0,0x60,0x3f,0x19,0xe0,0x6, 0x8f,0xf, 0x37,0x24,0x3f,0x1f,0xa7,0x1e,0xe0,0x60, +0x3f,0x1a,0xe0,0x6, 0x8f,0xf, 0x37,0x24,0x3f,0x1f,0xa7,0x2e,0xe0,0x60,0x3f,0x18, +0xe0,0x6, 0x8f,0xf, 0x37,0x24,0x3f,0x9e,0xa7,0xbf,0xe0,0x61,0x3f,0x92,0x3b,0x0, +0x38,0x82,0xe0,0x1, 0x1d,0x54,0x16,0x84,0xae,0x8a,0x17,0x81,0xaf,0x9a,0x17,0x2, +0xaf,0xaa,0xf0,0x0, 0x13,0x80,0xae,0xba,0xf8,0x40,0x3a,0xe7,0xae,0xca,0x14,0x1, +0xaf,0x5a,0xaf,0x6a,0xaf,0x7a,0xe0,0x1, 0xaf,0xa, 0x17,0x3, 0xe0,0x1, 0xaf,0x9a, +0xe0,0x1, 0xaf,0xaa,0xe0,0x1, 0xaf,0xba,0xe0,0x1, 0xaf,0xca,0xe0,0x1, 0xaf,0xda, +0xe0,0x0, 0x17,0x80,0xe0,0x1, 0xaf,0x6a,0xf0,0x2, 0x1b,0x33,0xe0,0x1, 0xaf,0xfa, +0xf0,0xb, 0x33,0xa2,0xe8,0xb, 0x3d,0x96,0xf0,0x0, 0xba,0x8b,0xe0,0x0, 0x17,0x80, +0xe8,0x9, 0x3d,0x17,0xe0,0xe, 0x3d,0x1f,0x8e,0xe, 0x8e,0x89,0xe0,0xe, 0x34,0x3f, +0x3e,0x7d,0xc7,0x81,0x5, 0x84,0xa6,0x8b,0x3f,0x4d,0xbf,0xb, 0xe2,0x0, 0xcf,0x90, +0x1, 0xf2,0xf0,0x0, 0xc3,0x81,0xf2,0x0, 0xcb,0x90,0x1, 0xe3,0xe0,0x1, 0x1f,0xab, +0x17,0x0, 0xe0,0x6, 0xaf,0xf, 0x38,0x82,0xe0,0x2, 0x1f,0x33,0xe0,0xf, 0x34,0x22, +0x3f,0x1f,0xa7,0x8e,0x27,0xb3,0x3f,0x83,0xe0,0x1, 0x1f,0xab,0xe0,0x6, 0x8e,0x8f, +0xe0,0x60,0x3e,0x9, 0x36,0xa4,0x3e,0x9f,0xbe,0xd, 0xe0,0x6, 0x8e,0x8f,0xe0,0x60, +0x3e,0xa, 0x36,0xa4,0x3e,0x9f,0xbe,0x1d,0xe0,0x6, 0x8e,0x8f,0xe0,0x60,0x3e,0x8, +0x36,0xa4,0x3e,0x9f,0xbe,0x2d,0xe0,0x6, 0x8e,0x8f,0xe0,0x61,0x3e,0x2, 0x36,0xa4, +0x3e,0x9f,0xbe,0x3d,0xe0,0x6, 0x8e,0x8f,0xc6,0x81,0xe0,0x6, 0xae,0x8f,0xa7,0x8e, +0xe0,0x61,0x3f,0x92,0x17,0x81,0xe0,0x8, 0x37,0xb8,0xe0,0x61,0x3c,0x11,0xe0,0x60, +0x3f,0x80,0xcf,0x82,0xe0,0x60,0x3f,0x90,0x3b,0x0, 0x38,0x82,0x8, 0xb4,0xe8,0x0, +0xc, 0x37,0xe0,0x2, 0x1f,0xf3,0xa1,0xf, 0xa7,0xb2,0x37,0xcf,0xe2,0x0, 0xc7,0x81, +0x27,0x87,0xa7,0x82,0x37,0xcf,0xe2,0x0, 0xc7,0x81,0xe0,0x0, 0x2f,0xf2,0xa7,0xb2, +0xe2,0x0, 0xc7,0x81,0x27,0x86,0xa7,0x82,0xe2,0x0, 0xc7,0x81,0xe0,0x0, 0x2f,0xf1, +0xa7,0xb2,0x37,0xc1,0xe2,0x0, 0xc7,0x81,0x27,0x87,0xa7,0x82,0x37,0xc1,0xe2,0x0, +0xc7,0x81,0xe0,0x0, 0x2f,0xed,0xa7,0xb2,0x37,0xca,0xe2,0x0, 0xc7,0x81,0x27,0x87, +0xa7,0x82,0x37,0xca,0xe2,0x0, 0xc7,0x81,0xe0,0x0, 0x2f,0xe9,0xa7,0xb2,0x37,0xcb, +0xe2,0x0, 0xc7,0x81,0x27,0x86,0xa7,0x82,0x37,0xcb,0xe2,0x0, 0xc7,0x81,0x2f,0xbd, +0xa7,0xb2,0x37,0xcc,0xe2,0x0, 0xc7,0x81,0x27,0x87,0xa7,0x82,0x37,0xcc,0xe2,0x0, +0xc7,0x81,0xe0,0x0, 0x2f,0xe6,0xa7,0xb2,0x37,0xc7,0xe2,0x0, 0xc7,0x81,0x27,0xa5, +0xa7,0x82,0x37,0xc7,0xe2,0x0, 0xc7,0x81,0x27,0xa0,0xa7,0x92,0xe0,0x0, 0x1a,0x10, +0xe0,0x1, 0xcf,0x80,0xbf,0x92,0x8f,0x84,0xe0,0x1, 0x19,0xdf,0x27,0x89,0x99,0x3, +0x31,0x4c,0xe2,0x0, 0xc1,0x1, 0x29,0x4, 0xe0,0x5, 0xd6,0x76,0xa9,0x4, 0x97,0x83, +0xe0,0x2, 0x1f,0x72,0xe3,0xdf,0xc7,0xff,0xb7,0x83,0x97,0x83,0xe3,0xbf,0xc7,0xff, +0xb7,0x83,0x9f,0x8e,0xc7,0x81,0xb7,0x8e,0xe0,0x1, 0x17,0x80,0xe0,0x61,0x3f,0x91, +0xf0,0x0, 0xb, 0xa8,0xa, 0x21,0x38,0x0, 0xa7,0x92,0xe0,0x2, 0x1f,0x5a,0xe0,0x10, +0xcf,0x80,0xbf,0x92,0x97,0x8e,0xcf,0xa0,0xb7,0x8e,0xe7,0xff,0x0, 0xbb,0xa7,0x92, +0xe1,0x0, 0xcf,0x80,0xbf,0x92,0xe0,0x0, 0xdb,0x32,0xe7,0xff,0x0, 0x8a,0xa7,0x92, +0xcf,0x81,0xbf,0x92,0xe0,0x0, 0xdb,0x18,0xe7,0xff,0x0, 0x8c,0xa7,0x92,0xcf,0x82, +0xbf,0x92,0xe0,0x0, 0xdb,0x24,0xe7,0xff,0x0, 0x90,0xa7,0x92,0xe0,0x1, 0x19,0xdf, +0xe0,0x8, 0xcf,0x80,0xbf,0x92,0x97,0x83,0xe0,0x1, 0x1f,0x61,0xcf,0x82,0xb7,0x83, +0x97,0xce,0xcf,0x88,0xb7,0xce,0xe0,0x0, 0xda,0xee,0xe7,0xff,0x0, 0x89,0xa7,0x92, +0x14,0x7, 0xe0,0x20,0xcf,0x80,0xbf,0x92,0xdf,0x18,0xe0,0x2, 0x1e,0xda,0xe0,0x1, +0x19,0xdf,0x9f,0xd, 0x97,0x83,0x16,0x6f,0x37,0x41,0xe2,0x0, 0xc7,0x10,0x3f,0xdc, +0x3f,0xce,0xb7,0x83,0x97,0x8d,0xe3,0xff,0xc7,0xdf,0xb7,0x8d,0xd9,0x65,0xd9,0x8d, +0xa7,0x92,0xe0,0x1, 0x1f,0x61,0xe0,0x20,0xcf,0x80,0xbf,0x92,0xe7,0x0, 0x16,0x80, +0x97,0xde,0x3f,0xcd,0xb7,0xde,0xe0,0x2, 0x1f,0xb3,0xa7,0xff,0x2f,0x87,0xe0,0x1, +0x17,0x80,0xe0,0x61,0x3f,0x91,0xe7,0xfe,0x0, 0xf0,0xde,0x7e,0xe7,0xfe,0x0, 0xed, +0xe0,0x2, 0x1f,0xb3,0xe0,0xe, 0x34,0x22,0x3f,0x9e,0xa7,0x8f,0x2f,0x87,0x17,0x81, +0xe0,0x8, 0x37,0xb8,0xe0,0x61,0x3c,0x11,0x38,0x82,0xe7,0xfc,0x0, 0xee,0x8, 0xb1, +0xe0,0x7, 0xd3,0x61,0xe0,0x60,0x3f,0x87,0xe0,0x1, 0x1f,0x29,0xe0,0x1, 0xbf,0xf, +0xe0,0x2, 0x1f,0x27,0xe0,0x1, 0xbf,0x1f,0xe0,0x2, 0x1f,0x4f,0xe0,0x1, 0xbf,0x2f, +0xe0,0x1, 0x1f,0x25,0xe0,0x1, 0xbf,0x3f,0xe0,0x2, 0x1f,0x52,0xe0,0x1, 0xbf,0x4f, +0xe0,0x0, 0x1f,0x34,0xe0,0x1, 0xbf,0x5f,0xe0,0x0, 0x1f,0x11,0xe0,0x1, 0xbf,0x6f, +0xe0,0x1, 0x1f,0x73,0xe0,0x1, 0xbf,0x7f,0xe0,0x1, 0x1f,0x67,0xe0,0x2, 0xbf,0xf, +0xe0,0x2, 0x1f,0x23,0xe0,0x2, 0xbf,0x1f,0xe0,0x1, 0x1f,0x52,0xe0,0x2, 0xbf,0x2f, +0xe0,0x2, 0x1f,0x7c,0xe0,0x2, 0xbf,0x3f,0xe0,0x0, 0x1f,0x26,0xe0,0x2, 0xbf,0x4f, +0xe0,0x2, 0x1f,0x2e,0xe0,0x2, 0xbf,0x5f,0xe0,0x0, 0x1f,0x27,0xe0,0x2, 0xbf,0x6f, +0x8, 0xe1,0x0, 0x0, 0xe0,0x1, 0x1f,0xed,0x16,0xfb,0xa7,0xf, 0xa7,0x8e,0x3f,0xdd, +0xbf,0x8e,0x24,0x11,0x17,0x86,0xaf,0xfe,0xa7,0x8e,0x37,0xce,0xe2,0x0, 0xc7,0x81, +0x27,0xfc,0xa7,0x8e,0xe7,0x7f,0x16,0xff,0x3f,0xdd,0xbf,0x8e,0xa7,0x8e,0xcf,0x84, +0xbf,0x8e,0x38,0x82,0x17,0x84,0xaf,0xfe,0xa7,0x8e,0x37,0xce,0xe2,0x0, 0xc7,0x81, +0x27,0xfc,0x0, 0xf0,0xe0,0x1, 0x1f,0xde,0xe7,0x7f,0x16,0x7f,0xa7,0xf, 0xe0,0x1, +0x1f,0xb1,0xa6,0xae,0xa7,0x8f,0x3e,0xdc,0xbe,0xae,0xe0,0xa0,0x17,0x0, 0x9e,0xbf, +0xe0,0x1e,0xce,0x80,0xb6,0xbf,0xb7,0x7f,0xa7,0x4f,0x3f,0x5c,0xbf,0x4f,0xa7,0x4f, +0xe0,0x20,0xcf,0x0, 0xbf,0x4f,0x38,0x82,0xe0,0x1, 0x1f,0xde,0xe7,0x7f,0x16,0x7f, +0xa6,0x8f,0xe0,0x1, 0x1f,0xed,0xa7,0x1d,0xa7,0x8f,0xcf,0x1, 0xbf,0x1d,0xe6,0xff, +0x16,0xff,0xa7,0xf, 0x3f,0x5d,0xbf,0xf, 0xa6,0x8f,0xe0,0x1, 0x1f,0x31,0x3e,0xdc, +0xa7,0xe, 0xbe,0x8f,0x9e,0xbe,0xe0,0x1e,0xce,0x80,0xb6,0xbe,0xe0,0x61,0x3e,0x82, +0xe7,0xef,0x15,0xff,0x3e,0xdb,0xe0,0x61,0x3e,0x92,0xe0,0x46,0x16,0x80,0xbe,0x8f, +0x15,0xfe,0xa6,0x8f,0xce,0x84,0xbe,0x8f,0xa6,0x8f,0xce,0x82,0xbe,0x8f,0xa6,0x8f, +0x3e,0xdb,0xbe,0x8f,0xa7,0xce,0x3f,0xdc,0xbf,0xce,0x17,0x0, 0xe0,0x0, 0x1f,0x9f, +0xaf,0xf, 0x38,0x82,0xe0,0x1, 0x1f,0xed,0xa7,0xf, 0xac,0x7e,0xa7,0x8e,0x37,0xce, +0xe2,0x0, 0xc7,0x81,0x27,0xfc,0xa7,0x8e,0xe7,0x7f,0x16,0xff,0x3f,0xdd,0xbf,0x8e, +0x14,0x1, 0x38,0x82,0x24,0x9b,0xe0,0x1, 0x1f,0xed,0xc4,0xff,0xe3,0xff,0xc4,0xff, +0x16,0xff,0xa7,0xf, 0xe0,0xd, 0x3e,0x98,0xe0,0xc, 0x3c,0x19,0xe7,0x7f,0x15,0xff, +0xe0,0x80,0x87,0x9d,0xaf,0xfe,0xa7,0x8e,0x37,0xce,0xe2,0x0, 0xc7,0x81,0x27,0xfc, +0xa7,0x8e,0x3e,0xfc,0x3f,0xdb,0xbf,0x8e,0x1, 0xf4,0x14,0x1, 0x38,0x82,0xe0,0x1, +0x1f,0xed,0xa7,0xf, 0x17,0x80,0xaf,0xfe,0xa7,0x8e,0x37,0xce,0xe2,0x0, 0xc7,0x81, +0x27,0xfc,0xa7,0x8e,0xe7,0x7f,0x16,0xff,0x3f,0xdd,0xbf,0x8e,0x8c,0x7e,0x38,0x82, +0x24,0x9c,0xe0,0x1, 0x1f,0xed,0xc4,0xff,0xe3,0xff,0xc4,0xff,0x16,0xff,0xa7,0xf, +0x3e,0x98,0xe0,0xc, 0x3c,0x19,0x15,0x0, 0xe7,0x7f,0x15,0xff,0xad,0x7e,0xa7,0x8e, +0x37,0xce,0xe2,0x0, 0xc7,0x81,0x27,0xfc,0xa7,0x8e,0x3f,0xdb,0xbf,0x8e,0x8f,0xfe, +0xe0,0x80,0xaf,0x9d,0x3e,0xfc,0x1, 0xf3,0x38,0x82,0xe0,0x1, 0x1f,0xed,0x16,0xfb, +0xa7,0x8f,0xe4,0xc, 0x34,0x40,0xa7,0xf, 0xe2,0x1, 0xc6,0x7f,0x3f,0x5d,0xbf,0xf, +0xe0,0xd, 0x34,0x48,0x17,0xb, 0xaf,0x7f,0xe2,0x1, 0xc6,0xff,0xe2,0x1, 0xc4,0x7f, +0xa7,0xf, 0x37,0x4e,0xe2,0x0, 0xc7,0x1, 0x27,0x7c,0xa7,0xf, 0xe7,0x7f,0x15,0xff, +0x3f,0x5b,0xbf,0xf, 0xae,0x7f,0xa7,0xf, 0x37,0x4e,0xe2,0x0, 0xc7,0x1, 0x27,0x7c, +0xa7,0xf, 0xe7,0x7f,0x16,0x7f,0x3f,0x5c,0xbf,0xf, 0xae,0xff,0xa7,0xf, 0x37,0x4e, +0xe2,0x0, 0xc7,0x1, 0x27,0x7c,0xa7,0xf, 0xe7,0x7f,0x16,0xff,0x3f,0x5d,0xbf,0xf, +0xac,0x7f,0xa7,0xf, 0x37,0x4e,0xe2,0x0, 0xc7,0x1, 0x27,0x7c,0xa7,0xf, 0xe7,0x7f, +0x16,0xff,0x3f,0x5d,0xbf,0xf, 0x17,0x0, 0xaf,0x7f,0xa7,0xf, 0x37,0x4e,0xe2,0x0, +0xc7,0x1, 0x27,0x7c,0xa7,0xf, 0xe7,0x7f,0x16,0xff,0x3f,0x5d,0xbf,0xf, 0x38,0x82, +0x8, 0xb3,0x39,0xea,0x39,0x69,0xdf,0xb2,0x21,0xa1,0xe0,0x1, 0x1f,0xed,0xc1,0xff, +0xe3,0xff,0xc1,0xff,0x16,0xff,0xa7,0xf, 0x3e,0x92,0xe0,0xc, 0x39,0x13,0x15,0x0, +0xe7,0x7f,0x15,0xff,0xad,0x7e,0xa7,0x8e,0x37,0xce,0xe2,0x0, 0xc7,0x81,0x27,0xfc, +0xa7,0x8e,0x3f,0xdb,0xbf,0x8e,0x8f,0xfe,0xe0,0x80,0xaf,0x9d,0x3e,0xfc,0x1, 0xf3, +0xa7,0x8e,0x14,0x1, 0xcf,0x84,0xbf,0x8e,0x9, 0xe1,0xe0,0x1, 0x1f,0xed,0x14,0x1, +0xa7,0xf, 0xa7,0x8e,0xcf,0x84,0xbf,0x8e,0x9, 0xe1,0xe0,0x0, 0x1f,0x9f,0x8f,0x8f, +0xe2,0x1, 0xcf,0xa5,0x1, 0x2, 0x38,0x82,0xe7,0xfd,0x0, 0xb6,0x3f,0x82,0xe0,0x0, +0x1f,0x9f,0x14,0x0, 0x8f,0x8f,0xe2,0x1, 0xcf,0xa5,0x1, 0x2, 0x38,0x82,0xe0,0x1, +0x1f,0xed,0x16,0xfb,0xa7,0xf, 0xa7,0x8e,0x3f,0xdd,0xbf,0x8e,0x17,0x85,0xaf,0xfe, +0xa7,0x8e,0x37,0xce,0xe2,0x0, 0xc7,0x81,0x27,0xfc,0xa7,0x8e,0xe7,0x7f,0x16,0xff, +0x3f,0xdd,0xbf,0x8e,0x17,0x80,0xaf,0xfe,0xa7,0x8e,0x37,0xce,0xe2,0x0, 0xc7,0x81, +0x27,0xfc,0xa7,0x8e,0xe7,0x7f,0x16,0xff,0x3f,0xdd,0xbf,0x8e,0x8c,0x7e,0xa7,0x8e, +0xe2,0x0, 0xc4,0x1, 0xcf,0x84,0xbf,0x8e,0x38,0x82,0xe0,0x0, 0x1f,0x9f,0x8f,0x8f, +0xe2,0x1, 0xcf,0xa5,0x1, 0x2, 0x38,0x82,0xe0,0x1, 0x1f,0xed,0x16,0xfb,0xa7,0xf, +0xa7,0x8e,0x3f,0xdd,0xbf,0x8e,0xac,0x7e,0xa7,0x8e,0x37,0xce,0xe2,0x0, 0xc7,0x81, +0x27,0xfc,0xa7,0x8e,0xe7,0x7f,0x16,0xff,0x3f,0xdd,0xbf,0x8e,0xe4,0xf, 0x34,0xc0, +0xaf,0xfe,0xa7,0x8e,0x37,0xce,0xe2,0x0, 0xc7,0x81,0x27,0xfc,0xa7,0x8e,0xe7,0x7f, +0x16,0xff,0x3f,0xdd,0xbf,0x8e,0xe0,0xf, 0x34,0xc8,0xaf,0xfe,0xa7,0x8e,0x37,0xce, +0xe2,0x0, 0xc7,0x81,0x27,0xfc,0xa7,0x8e,0xe7,0x7f,0x16,0xff,0x3f,0xdd,0xbf,0x8e, +0xac,0xfe,0xa7,0x8e,0x37,0xce,0xe2,0x0, 0xc7,0x81,0x27,0xfc,0xa7,0x8e,0xe7,0x7f, +0x16,0xff,0x3f,0xdd,0xbf,0x8e,0x38,0x82,0x8, 0xb4,0x3a,0x68,0x14,0x1, 0x39,0xea, +0x39,0x69,0xde,0x41,0x3c,0xe4,0x14,0x2, 0xdf,0xb9,0x21,0xa0,0xe0,0x1, 0x1f,0xed, +0xc1,0xff,0xe3,0xff,0xc1,0xff,0x16,0xff,0xa7,0xf, 0x3e,0x92,0xe0,0xc, 0x39,0x13, +0xe7,0x7f,0x15,0xff,0xe0,0x80,0x87,0x9d,0xaf,0xfe,0xa7,0x8e,0x37,0xce,0xe2,0x0, +0xc7,0x81,0x27,0xfc,0xa7,0x8e,0x3e,0xfc,0x3f,0xdb,0xbf,0x8e,0x1, 0xf4,0xa7,0x8e, +0xcf,0x84,0xbf,0x8e,0xdf,0x6d,0x2c,0x7f,0xa, 0x61,0xe0,0x1, 0x1f,0xed,0xa7,0xf, +0x0, 0xf7,0xe0,0x0, 0x1f,0x9f,0x8f,0x8f,0xe2,0x1, 0xcf,0xa5,0x1, 0x2, 0x38,0x82, +0xe7,0xff,0x0, 0xcc,0x3f,0x82,0x8, 0xb7,0xf8,0x0, 0xc, 0x39,0xe0,0x0, 0x17,0xff, +0x3f,0xd8,0xe0,0x1, 0x11,0x0, 0x39,0x2f,0xe3,0xff,0xc1,0x7f,0x39,0x7a,0x4, 0x8c, +0xe0,0x0, 0x1f,0x9f,0x8f,0x8f,0xe2,0x1, 0xcf,0xa5,0xe0,0x0, 0x1, 0x5f,0x14,0x1, +0xf8,0x0, 0xc, 0xa8,0xb, 0xe1,0xe0,0x0, 0x1b,0x1f,0x3b,0xe8,0x8f,0x86,0x3a,0xea, +0xe2,0x1, 0xcf,0xa5,0xf0,0x40,0x3c,0x69,0xe0,0x0, 0x1, 0x55,0x3a,0xa2,0xe3,0xff, +0xc2,0xff,0xe2,0x0, 0xca,0xff,0x3b,0x92,0xf0,0x18,0x3c,0x12,0xe0,0x0, 0x5, 0xcf, +0x39,0x65,0xe8,0x40,0x3a,0x68,0x39,0xe7,0xf0,0x1, 0x14,0x80,0x0, 0x8c,0xe1,0xff, +0xc1,0x0, 0xe3,0xff,0xc1,0x7f,0xe2,0x0, 0xc9,0x7f,0xe0,0x1, 0xc2,0x0, 0xe0,0x1, +0xc1,0x80,0x5, 0x95,0x8f,0x86,0xe2,0x1, 0xcf,0xa5,0x1, 0xf2,0x3c,0xe4,0x3c,0x63, +0xe8,0x40,0x3d,0x69,0xe1,0xff,0xc1,0x0, 0xdf,0x80,0xe3,0xff,0xc1,0x7f,0xe2,0x0, +0xc9,0x7f,0xe0,0x1, 0xc2,0x0, 0xe0,0x1, 0xc1,0x80,0x2, 0xed,0xe7,0xff,0x17,0x80, +0x3f,0x95,0xe3,0xff,0xc7,0xff,0x37,0xc7,0x17,0x1, 0x3f,0x1f,0xe0,0x1, 0x12,0x0, +0xe0,0x0, 0x15,0x7f,0x3a,0x17,0x37,0x27,0xe0,0x7, 0x37,0xa7,0x3d,0x55,0xf0,0x18, +0x3c,0x1e,0x3b,0x94,0xe7,0xff,0x25,0x2d,0x8f,0x86,0xe2,0x1, 0xcf,0xa5,0xe7,0xff, +0x1, 0xa8,0xe8,0x40,0x3c,0xe8,0x3c,0x67,0xdf,0x58,0x14,0x1, 0xf8,0x0, 0xc, 0xa8, +0xb, 0xe1,0x3d,0x62,0xdf,0x52,0xe7,0xff,0x0, 0xab,0x3d,0x65,0x0, 0xee,0xe0,0x0, +0x1f,0x9f,0x8f,0x8f,0xe2,0x1, 0xcf,0xa5,0x1, 0x3, 0x14,0x1, 0x38,0x82,0x8, 0xb2, +0x39,0x68,0x14,0x1, 0xdd,0x88,0xe0,0x9, 0x31,0x2c,0x14,0x20,0xde,0xff,0xe0,0x1, +0x1f,0xed,0xa7,0xf, 0xa7,0x8e,0xcf,0x84,0xe0,0x0, 0xbf,0x8e,0xde,0xc9,0x2c,0x7f, +0x14,0x1, 0x9, 0x61,0x8, 0xb2,0x14,0x1, 0xef,0xff,0xd5,0xc3,0xe0,0x1, 0x14,0xc8, +0x14,0x0, 0xe0,0x5, 0xd3,0x4e,0x24,0x14,0xe0,0x2, 0x1f,0xd, 0x17,0x82,0xe0,0x0, +0x19,0x37,0xaf,0x8e,0xe0,0x1, 0x1f,0x5f,0xaf,0x82,0x97,0x8e,0xe0,0x20,0xcf,0x80, +0xb7,0x8e,0x8c,0x2, 0xef,0xff,0xd3,0xe3,0x9, 0x21,0xe7,0xea,0x0, 0xd9,0xe0,0x2, +0x1f,0x8d,0x17,0x1, 0xe0,0x0, 0x19,0x37,0xaf,0xf, 0x3c,0xe8,0xaf,0x2, 0x8f,0x8f, +0xe0,0x2, 0x1c,0x69,0xe4,0x0, 0xc7,0x8e,0x3c,0x1f,0xef,0xfe,0xdf,0x67,0x0, 0xea, +0x8, 0xb2,0xe0,0x2, 0x19,0x5, 0xe0,0x1, 0x8c,0xa2,0xe0,0x4, 0x8f,0xd2,0x2f,0x95, +0xe0,0x0, 0x1f,0xb7,0x8f,0x8f,0xe0,0x0, 0x2f,0xcb,0xe0,0x1, 0x8c,0x82,0x14,0x5, +0xe2,0x0, 0xcc,0x94,0x2, 0x98,0xe0,0x0, 0x14,0x64,0x24,0x95,0xe0,0x0, 0x14,0x63, +0x3c,0x19,0xe0,0x6, 0xdd,0x91,0x0, 0x8f,0xe0,0x0, 0x1f,0xb7,0x8f,0x8f,0x2f,0xa3, +0xe0,0x1, 0x8f,0x92,0xe0,0x0, 0x14,0x7f,0xe0,0x43,0x3f,0xf, 0xe2,0x0, 0xcf,0x0, +0xe0,0x68,0x3b,0x2f,0xe0,0x5, 0x8f,0xc2,0x14,0x98,0x3c,0x3f,0xe0,0x6, 0xdd,0x7c, +0xe0,0x0, 0x1f,0xa5,0xe0,0x2, 0x1f,0x54,0xac,0xf, 0x87,0x8f,0xaf,0x8e,0xe0,0x1, +0x1f,0x5f,0x97,0x8e,0xe3,0xff,0xc7,0xf7,0xb7,0x8e,0x17,0x0, 0xe0,0x2, 0x1f,0x87, +0xb7,0xf, 0x9, 0x61,0xe0,0x2, 0x1f,0xfe,0x8f,0x8f,0xe2,0x0, 0xcf,0xba,0x5, 0x87, +0xe0,0x2, 0x1f,0xfd,0x8f,0x8f,0xe2,0x0, 0xcf,0x81,0x1, 0x17,0xe0,0x7, 0x14,0x68, +0xe0,0x6, 0xdd,0x5a,0xc4,0x7f,0xe2,0x1, 0xc4,0x7f,0x0, 0xd5,0xe0,0x2, 0x1f,0xfd, +0x8f,0x8f,0xe2,0x0, 0xcf,0x81,0x1, 0xf3,0xe0,0x3, 0x14,0x74,0xe0,0x6, 0xdd,0x4c, +0xc4,0x7e,0xe2,0x1, 0xc4,0x7f,0x0, 0xc7,0xe0,0x3, 0x14,0x74,0xe0,0x6, 0xdd,0x44, +0xc4,0x7f,0xe2,0x1, 0xc4,0x7f,0xe7,0xff,0x0, 0xbf,0xe0,0x2, 0x1f,0xf3,0xa7,0x8f, +0xa7,0xcf,0xe2,0x0, 0xc7,0x81,0x27,0x87,0xe0,0x2, 0x1f,0xfd,0x8f,0x8f,0xe2,0x0, +0xcf,0x81,0x1, 0x2, 0x38,0x82,0xe7,0xfe,0x0, 0xd7,0xe0,0x2, 0x1f,0xf3,0xa7,0x8f, +0xa7,0xcf,0xe2,0x0, 0xc7,0x81,0x27,0x87,0xe0,0x1, 0x1f,0x5f,0x97,0x8e,0xe0,0x1, +0xcf,0x80,0xb7,0x8e,0x38,0x82,0xe0,0x2, 0x1f,0xf3,0xa7,0x8f,0xa7,0xcf,0xe2,0x0, +0xc7,0x81,0x27,0x95,0xe0,0x1, 0x1f,0x5f,0x9f,0x8e,0x37,0xc7,0xe2,0x0, 0xc7,0x81, +0x27,0x8e,0x8, 0xb3,0xe0,0x2, 0x1e,0xfd,0x97,0x8e,0x89,0xd, 0xe3,0xfe,0xc7,0xff, +0xe2,0x0, 0xc9,0x1, 0xb7,0x8e,0x1, 0x5, 0x14,0x1, 0x9, 0xe1,0x14,0x1, 0x38,0x82, +0x3c,0x62,0xef,0xff,0xd4,0xee,0xe0,0x1, 0x14,0xc8,0x3c,0x62,0xe0,0x5, 0xd2,0x79, +0xe0,0x0, 0x19,0xb7,0x2c,0x5, 0x8c,0x3, 0xef,0xff,0xd3,0x19,0x0, 0xee,0xe0,0x2, +0x1f,0x8d,0xe0,0x2, 0x1c,0x69,0xa9,0xf, 0x3c,0xe2,0xa9,0x3, 0x8f,0x8f,0xe4,0x0, +0xc7,0x8e,0x3c,0x1f,0xef,0xfe,0xde,0x83,0x0, 0xef,0x38,0x82,0x8, 0xb6,0xe0,0x0, +0x1f,0xac,0xe0,0x2, 0x19,0x71,0xa1,0x8f,0xa7,0x83,0x37,0xc3,0xe2,0x0, 0xc7,0x81, +0x27,0x99,0xe0,0x1, 0x1b,0x5f,0xe7,0xff,0x12,0x81,0xe0,0x1, 0x12,0x7f,0x0, 0x8c, +0x9f,0x86,0x37,0xc3,0xe2,0x0, 0xc7,0x81,0x2f,0x8c,0xd4,0xed,0xa7,0x83,0x37,0xc3, +0xe2,0x0, 0xc7,0x81,0x27,0x87,0xaa,0x82,0xef,0xff,0xd4,0xd6,0x3c,0xe4,0x24,0x71, +0xb, 0x61,0xe0,0x1, 0x1f,0xb1,0xe7,0xef,0x16,0xff,0xa7,0x8f,0xe0,0x4, 0x14,0x89, +0xe0,0x1, 0xa7,0x6f,0x14,0x2, 0xe0,0x10,0xcf,0x0, 0xe0,0x1, 0xbf,0x6f,0xe0,0x1, +0xa7,0x6f,0x3f,0x5d,0xe0,0x1, 0xbf,0x6f,0xe7,0xff,0x17,0x81,0xaf,0x82,0xb, 0x21, +0xe0,0x9, 0x0, 0xca,0x8, 0xb2,0xe0,0x1, 0x19,0x5f,0x9f,0x82,0x37,0xc3,0xe2,0x0, +0xc7,0x81,0x2f,0x87,0xdf,0xbc,0x9f,0x82,0x37,0xc3,0xe2,0x0, 0xc7,0x81,0x27,0xfb, +0x9, 0x61,0x8, 0xb1,0x0, 0x82,0xdf,0xb3,0xef,0xff,0xd4,0xa6,0x24,0x7d,0x8, 0xe1, +0x8, 0xb1,0x14,0x1, 0xef,0xff,0xd4,0x7d,0xe0,0x0, 0x1f,0xac,0xa7,0xf, 0xa7,0x8e, +0x37,0xc3,0xe2,0x0, 0xc7,0x81,0x2f,0xfc,0x8, 0xe1,0xe0,0x1, 0x1f,0xde,0xe2,0x0, +0xc4,0x1, 0xa7,0x8f,0xe7,0xdf,0x16,0x7f,0xa7,0x1f,0xe0,0xd, 0x34,0x2c,0x3f,0x5c, +0x3f,0x4d,0xbf,0x1f,0xe7,0xfb,0x16,0x7f,0xa7,0x1f,0xe0,0xd, 0x34,0x29,0x3f,0x5c, +0x3f,0x4d,0xbf,0x1f,0xe7,0xfd,0x16,0x7f,0xa7,0x1f,0xe0,0xd, 0x34,0x28,0x3f,0x5c, +0x3f,0x4d,0xbf,0x1f,0xe7,0xfe,0x16,0xff,0xa7,0x2f,0x34,0x27,0x3f,0x5d,0x3c,0x4e, +0xbc,0x2f,0x38,0x82,0x8, 0xb2,0xe0,0x1, 0x19,0x5f,0x9f,0x82,0x37,0xc3,0xe2,0x0, +0xc7,0x81,0x2f,0x8d,0x9f,0x82,0xe0,0xf, 0x37,0xc3,0xe2,0x0, 0xc7,0x81,0x2f,0x87, +0xdf,0x6e,0x9f,0x82,0x37,0xc3,0xe2,0x0, 0xc7,0x81,0x27,0xfb,0xef,0xff,0xd4,0x5c, +0x24,0x3, 0x0, 0x85,0xdf,0x64,0xef,0xff,0xd4,0x57,0x24,0x7d,0x9, 0x61,0xe0,0x0, +0x1f,0xac,0xa7,0x8f,0xa7,0x8f,0x37,0xc3,0xe2,0x0, 0xc7,0x81,0x2f,0x94,0xe0,0x2, +0x1e,0xf1,0xe0,0x1, 0x1f,0x59,0xe7,0xff,0x16,0x1, 0xae,0xd, 0x8e,0x8e,0xe2,0x0, +0xce,0x81,0x1, 0xa, 0xe0,0x2, 0x1f,0x8c,0x9f,0x8f,0x2f,0x8c,0x14,0x83,0x14,0x1, +0xe0,0x8, 0x0, 0xca,0x38,0x82,0xe0,0x2, 0x1e,0x8c,0xe0,0x1f,0x16,0x20,0xb6,0xd, +0xaf,0x8e,0xe0,0x4, 0x14,0x81,0x14,0x2, 0xe0,0x8, 0x0, 0xbe,0x8, 0xb5,0xef,0xff, +0xd4,0x2b,0xe0,0x0, 0x24,0x4b,0x14,0x0, 0xd5,0xf1,0xe0,0x1, 0x1f,0xde,0xe7,0xdf, +0x17,0x7f,0xa1,0xf, 0xe0,0x1, 0x1a,0xe2,0xa7,0x92,0xe0,0x1, 0x19,0xdf,0x3f,0xde, +0xbf,0x92,0xe7,0xfb,0x17,0x7f,0xa7,0x92,0xe0,0x2, 0x1a,0x5, 0x3f,0xde,0xbf,0x92, +0xe7,0xfd,0x17,0x7f,0xa7,0x92,0x3f,0xde,0xbf,0x92,0xe7,0xfe,0x17,0x7f,0xa7,0xa2, +0x3f,0xde,0xbf,0xa2,0x9f,0x83,0x37,0xc3,0xe2,0x0, 0xc7,0x81,0x2f,0x8c,0xe0,0xa, +0x8f,0x84,0x27,0xa8,0x8f,0x85,0x2f,0xa6,0xdf,0xab,0x9f,0x83,0x37,0xc3,0xe2,0x0, +0xc7,0x81,0x27,0xf6,0x8f,0x85,0x27,0x84,0x8f,0x85,0xc7,0xff,0xaf,0x85,0x14,0x1, +0xa7,0x92,0xe0,0x20,0xcf,0x80,0xbf,0x92,0xa7,0x92,0xe0,0x4, 0xcf,0x80,0xbf,0x92, +0xa7,0x92,0xe0,0x2, 0xcf,0x80,0xbf,0x92,0xa7,0xa2,0xe0,0x1, 0xcf,0x80,0xbf,0xa2, +0xa, 0xa1,0xe0,0xb, 0x0, 0xac,0xde,0xeb,0xef,0xff,0xd3,0xde,0x24,0x7d,0xe7,0xff, +0x0, 0xb4,0xde,0xe5,0x0, 0xd0,0x8, 0xb3,0x14,0x1, 0xef,0xff,0xd3,0xb2,0xe0,0x0, +0x1f,0xac,0xa7,0x8f,0xa1,0xf, 0x31,0x43,0xe2,0x0, 0xc1,0x1, 0x29,0x7c,0x3c,0x62, +0xd5,0x95,0xe0,0x1, 0x1f,0xde,0xe7,0xdf,0x17,0x7f,0xa1,0x8f,0x14,0x1, 0xa7,0x93, +0x3c,0xe2,0x3f,0xde,0xbf,0x93,0xe7,0xfb,0x17,0x7f,0xa7,0x93,0x3f,0xde,0xbf,0x93, +0xe7,0xfd,0x17,0x7f,0xa7,0x93,0x3f,0xde,0xbf,0x93,0xe7,0xfe,0x17,0x7f,0xa7,0xa3, +0x3f,0xde,0xbf,0xa3,0xe7,0xff,0x17,0x1, 0xe0,0x2, 0x1f,0xf1,0xaf,0xf, 0xd3,0xbb, +0xa7,0x93,0x14,0x1, 0xe0,0x20,0xcf,0x80,0xbf,0x93,0xa7,0x93,0xe0,0x4, 0xcf,0x80, +0xbf,0x93,0xa7,0x93,0xe0,0x2, 0xcf,0x80,0xbf,0x93,0xa7,0xa3,0xe0,0x1, 0xcf,0x80, +0xbf,0xa3,0x9, 0xa1,0xe0,0xa, 0x0, 0xe3,0x8, 0xb1,0xe0,0x1, 0x1f,0xa3,0xe0,0x1a, +0x17,0x20,0x3f,0x1f,0x8f,0xe, 0xe0,0x1a,0xc7,0xa1,0x8c,0xf, 0x37,0x28,0x3c,0x4e, +0xe0,0x4, 0xd7,0x69,0xe0,0x4, 0xd7,0xd, 0xe0,0x1, 0xd1,0x90,0xe0,0x2, 0x1f,0x5, +0x17,0x81,0xe0,0x4, 0xaf,0xfe,0xe0,0x1b,0x14,0x2c,0xe0,0x2, 0x1f,0x7f,0xaf,0x8e, +0xe0,0x4, 0xd7,0x59,0xe0,0x2, 0x1f,0xbf,0xe0,0x19,0x16,0x9d,0x17,0x7, 0x3e,0x9f, +0xaf,0xd, 0xe0,0x19,0xc7,0x9e,0xaf,0xf, 0x8, 0xe1,0xe0,0x2, 0x1f,0x85,0x17,0x1, +0xe0,0x4, 0xaf,0x5f,0x17,0x0, 0xe0,0x2, 0x1e,0xd4,0xe0,0x0, 0x1f,0xa5,0x8f,0x8f, +0x8e,0xd, 0x3f,0x9c,0xaf,0x8d,0x17,0x80,0xe0,0x2, 0x1e,0xac,0xe0,0x1, 0x1e,0x56, +0xb7,0xd, 0xe0,0x2, 0x1e,0x8d,0xaf,0x8c,0xe0,0x2, 0x1e,0x41,0x8e,0x8d,0xaf,0xc, +0xe2,0x0, 0xce,0x82,0xe0,0x2, 0x1f,0x7e,0xaf,0x8e,0x1, 0x2, 0x38,0x82,0xe0,0x2, +0x1f,0x3b,0x8f,0x8e,0xcf,0x84,0xaf,0x8e,0x38,0x82,0xe0,0x2, 0x1f,0x85,0x17,0x0, +0xe0,0x0, 0x1e,0xa5,0xe0,0x4, 0xaf,0x5f,0xe0,0x2, 0x1f,0x54,0x8f,0x8d,0x8e,0xe, +0x37,0xc1,0x3f,0xfc,0x3, 0x98,0x8e,0x8d,0x8f,0x8e,0x36,0xc1,0x3f,0xad,0xaf,0x8e, +0x17,0x0, 0xe0,0x2, 0x1f,0xac,0xb7,0xf, 0xe0,0x2, 0x1f,0xf3,0xa7,0x8f,0xa7,0xcf, +0xe2,0x0, 0xc7,0x81,0x27,0x87,0xe0,0x1, 0x1f,0x5f,0x97,0x8e,0xe0,0x1, 0xcf,0x80, +0xb7,0x8e,0x38,0x82,0xe0,0x1, 0x1f,0x5f,0x97,0x8e,0xcf,0x88,0xb7,0x8e,0x0, 0xe9, +0xe0,0x2, 0x1f,0x85,0xe0,0xa, 0x8f,0x8f,0x27,0x86,0xe0,0x1, 0x1f,0xd6,0x8f,0x8f, +0x27,0x89,0x38,0x82,0x8, 0xb1,0xdf,0xca,0xe0,0x2, 0x1f,0xab,0x17,0x1, 0xaf,0xf, +0x8, 0xe1,0x0, 0xc4,0x8, 0xb1,0xe0,0x1, 0x1f,0xa3,0xe0,0x1a,0x17,0x22,0x3f,0x1f, +0x8f,0xe, 0xe0,0x1a,0xc7,0xa3,0x8c,0xf, 0x37,0x28,0x3c,0x4e,0xe0,0x4, 0xd6,0xdb, +0xdf,0x23,0xdf,0x63,0xdf,0xb3,0xdd,0xc8,0x8, 0xa1,0xe7,0xe5,0x0, 0x81,0x8, 0xb4, +0xe0,0x2, 0x1f,0x81,0x11,0x3c,0x8f,0x8f,0x27,0x88,0xe0,0x2, 0x1f,0xfd,0x89,0xf, +0x17,0x80,0xe0,0x22,0x39,0xf, 0xc1,0x3b,0xe0,0x2, 0x19,0x85,0xe0,0x2, 0x1a,0x41, +0xe0,0x4, 0x8f,0xd3,0xe2,0x0, 0xcf,0x81,0x1, 0x1b,0x8f,0x4, 0xe0,0x4, 0x8f,0xd3, +0xe2,0x0, 0xcf,0x81,0x1, 0x2, 0xa, 0x61,0xe0,0x0, 0x1f,0xb7,0x8f,0x8f,0x27,0xfc, +0x39,0x7e,0x1, 0x23,0x17,0x81,0x3f,0x9e,0xe2,0x1, 0xc7,0xff,0xe0,0x2, 0x1e,0xfe, +0xe2,0x0, 0xcf,0xbc,0xaf,0xd, 0x5, 0x82,0x17,0x80,0xaf,0x84,0xa, 0x61,0xe0,0x0, +0x1f,0xb7,0x8f,0x8f,0x27,0xe3,0x8f,0x4, 0x2f,0x62,0xe0,0x2, 0x1f,0xf3,0xa7,0x8f, +0xa7,0xcf,0xe2,0x0, 0xc7,0x81,0x27,0xdb,0xe0,0x2, 0x1f,0xfd,0x8f,0x8f,0xe2,0x0, +0xcf,0x81,0x1, 0xd5,0xdc,0xc8,0x0, 0xd2,0xe0,0x2, 0x1f,0xf3,0xa7,0x8f,0xa7,0xcf, +0xe2,0x0, 0xc7,0x81,0x27,0x87,0xe0,0x1, 0x1f,0x5f,0x97,0x8e,0xe0,0x1, 0xcf,0x80, +0xb7,0x8e,0xdd,0x72,0xef,0xff,0xd2,0x2c,0x8f,0x4, 0x0, 0xcd,0x8, 0xb2,0xe0,0x2, +0x1f,0xa2,0xe0,0x2, 0x19,0x5, 0x8f,0xf, 0x27,0xc, 0x16,0x80,0xe0,0x4, 0x8f,0x52, +0xae,0x8f,0x27,0x36,0xe0,0x4, 0x8f,0xd2,0xe2,0x0, 0xcf,0x81,0xe0,0x0, 0x1, 0x49, +0xe0,0x4, 0x8f,0xd2,0xe2,0x0, 0xcf,0x81,0x1, 0x24,0x4, 0x8b,0xe2,0x0, 0xcf,0x83, +0x1, 0x84,0x9, 0x21,0xe7,0xfe,0x0, 0xf8,0x17,0x1, 0xe0,0x4, 0xaf,0x52,0x9, 0x61, +0xe0,0x2, 0x1f,0xa0,0x8f,0x8f,0x2f,0x9e,0x8f,0xe2,0xe2,0x0, 0xc7,0x81,0x27,0xf8, +0xe0,0x2, 0x1f,0xac,0x9f,0xf, 0xe2,0x6, 0xcf,0x33,0x2, 0xa7,0xe0,0xa, 0x8f,0x2, +0xe2,0x0, 0xcf,0x1, 0x1, 0xed,0x9f,0x8f,0xe2,0x7, 0xcf,0xe7,0x2, 0x9e,0x0, 0xe8, +0xe0,0x2, 0x1f,0xa0,0x8f,0x8f,0x27,0xe4,0x9, 0x21,0xe7,0xfe,0x0, 0xc3,0xdf,0x16, +0x0, 0xd0,0xe0,0x2, 0x1f,0xac,0x17,0x0, 0xb7,0xf, 0x8f,0xe2,0xe2,0x0, 0xc7,0x81, +0x27,0xd7,0xe0,0xa, 0x8f,0x82,0xe2,0x0, 0xcf,0x81,0x1, 0xd2,0xe0,0x1, 0x1f,0xd6, +0x8f,0x8f,0xe2,0x0, 0xcf,0x81,0x1, 0xcc,0x9, 0x21,0xe7,0xfd,0x0, 0xd8,0xde,0xd6, +0xe7,0xff,0x0, 0xb8,0x8, 0xb1,0xe0,0x2, 0x1f,0xa8,0x8f,0x8f,0x2f,0x8d,0xe0,0x0, +0x1f,0xb7,0x8f,0x8f,0x27,0x85,0xdd,0xc7,0x8, 0xa1,0xe7,0xfe,0x0, 0xc2,0xde,0x7, +0x8, 0xa1,0xe7,0xfe,0x0, 0xbe,0xdf,0x93,0x0, 0xf3,0x0, 0x0, 0xe0,0x2, 0x1f,0x6a, +0xe0,0x1, 0x1e,0xdf,0x0, 0x86,0x9f,0x8d,0x37,0xc3,0xe2,0x0, 0xc7,0x81,0x2f,0x83, +0x9f,0x8e,0x2f,0xfa,0x17,0x87,0xb7,0x8e,0x38,0x82,0xe0,0x0, 0x1f,0xb7,0x8f,0x8f, +0x2f,0x9f,0x8, 0xb2,0xe0,0x2, 0x19,0x0, 0x9f,0x82,0x2f,0xff,0xdc,0x5a,0xe0,0x2, +0x1f,0x85,0xe0,0x4, 0x8f,0x5f,0xe2,0x0, 0xcf,0x1, 0x1, 0x13,0xe0,0x1, 0x8c,0x8f, +0xe0,0x0, 0x14,0x64,0xe0,0x6, 0xd9,0xf8,0xc4,0x7f,0xb4,0x2, 0xe0,0x1, 0x1f,0xf9, +0x9e,0x82,0x9f,0xf, 0x3e,0xfe,0x5, 0x83,0x97,0x8f,0xb7,0x82,0x9, 0x61,0x38,0x82, +0xe0,0x1, 0x8f,0x9f,0xc7,0xff,0xb7,0x82,0x0, 0xf2,0xe0,0x1, 0x1f,0xde,0xe7,0x7f, +0x16,0xff,0xa7,0x8f,0xe2,0x0, 0xcc,0x7, 0xa7,0x1f,0xe1,0x0, 0xcf,0x0, 0xbf,0x1f, +0xa7,0x2f,0x3f,0x5d,0xbf,0x2f,0xe7,0xdf,0x16,0xff,0xa7,0x2f,0x3f,0x5d,0xbf,0x2f, +0xe7,0xbf,0x16,0xff,0xa7,0x2f,0x3f,0x5d,0xbf,0x2f,0x2, 0x88,0xa7,0x2f,0x16,0xf8, +0xe2,0x0, 0xc4,0x7, 0x3f,0x5d,0x3c,0x4e,0xbc,0x2f,0x38,0x82,0xe0,0x2, 0x1f,0xa6, +0x16,0xdf,0xa7,0xf, 0x15,0xfe,0xa7,0xbe,0x3f,0xdd,0xbf,0xbe,0xe7,0xfe,0x16,0xff, +0xa6,0x3e,0xe0,0x0, 0x1f,0xac,0x3e,0x5d,0xa7,0x8f,0xbe,0x3e,0x17,0x0, 0xaf,0x7f, +0x16,0xfd,0xa6,0xf, 0xe0,0x1, 0x1f,0x31,0x3e,0x5b,0xbe,0xf, 0xa6,0xf, 0xa7,0xe, +0x3e,0x5d,0xbe,0xf, 0xa6,0xbf,0x3e,0xdb,0xbe,0xbf,0x16,0xfc,0xa7,0x8e,0x3f,0xdd, +0xbf,0x8e,0x17,0x80,0xe0,0x3, 0xb7,0x9e,0x17,0x80,0xe0,0x61,0x3f,0x92,0xe1,0xff, +0x17,0xff,0xe0,0x61,0x3f,0x91,0x38,0x82,0xe0,0x2, 0x1f,0xa6,0xe0,0x0, 0x1f,0x2c, +0xa6,0x8f,0x16,0x7e,0xa7,0xbd,0xa7,0xe, 0x3f,0xdc,0xbf,0xbd,0xe7,0xff,0x16,0xbf, +0xa7,0x8e,0x3f,0xdd,0xbf,0x8e,0xe0,0x61,0x3f,0x82,0xcf,0x81,0xe0,0x61,0x3f,0x92, +0x38,0x82,0xe0,0x1, 0x1f,0xde,0xe0,0x1, 0x1f,0x31,0xa6,0x8f,0x16,0x6f,0xa7,0x9d, +0xa7,0xe, 0x3f,0xdc,0xbf,0x9d,0xe0,0x1, 0xa7,0xee,0xe0,0x20,0xcf,0x80,0xe0,0x1, +0xbf,0xee,0x38,0x82,0xe0,0x1, 0x1f,0xde,0xa7,0x8f,0xa7,0x3f,0xcf,0x1, 0xbf,0x3f, +0xa7,0xf, 0x2c,0x5, 0x16,0xfd,0x3f,0x5d,0xbf,0xf, 0x38,0x82,0xcf,0x2, 0xbf,0xf, +0x38,0x82,0xe0,0x1, 0x1f,0xde,0xa6,0x8f,0xe0,0x2, 0x1f,0xa6,0xa7,0x1d,0xa7,0x8f, +0xcf,0x8, 0xbf,0x1d,0xe7,0xff,0x16,0xbf,0xa7,0x3f,0x3f,0x5d,0xbf,0x3f,0xa7,0x2f, +0xe2,0x1, 0xc7,0x4f,0xcf,0x20,0xbf,0x2f,0xe0,0x2, 0x17,0x0, 0xb7,0x3f,0xa7,0x3f, +0xcf,0x40,0xbf,0x3f,0xe0,0x61,0x3f,0x82,0xe0,0x40,0xcf,0x80,0xe0,0x61,0x3f,0x92, +0x38,0x82,0x8, 0xb2,0xe0,0x1, 0x1f,0x31,0x17,0xff,0xa1,0xe, 0xb7,0xd2,0xe0,0x1, +0xb7,0xd2,0xe0,0x5, 0xd4,0x71,0xe0,0x2, 0x1f,0xa8,0xe0,0x41,0x3f,0x8, 0xac,0xf, +0xe7,0xfb,0x16,0xff,0xa7,0x82,0xe2,0x0, 0xc7,0x1, 0x37,0x29,0x3f,0xdd,0x3f,0xce, +0xbf,0x82,0xe0,0x1, 0x17,0xc3,0xb7,0xb2,0xd8,0xe6,0xa7,0xb2,0x16,0xef,0xcf,0x84, +0xbf,0xb2,0x17,0xfb,0xa7,0x12,0x3f,0x5f,0xbf,0x12,0x17,0xf7,0xa7,0x32,0xcf,0x8, +0xbf,0x32,0xa7,0x12,0x3f,0x5f,0xbf,0x12,0xa7,0x32,0xcf,0x10,0xbf,0x32,0xa7,0x12, +0x3f,0x5d,0xbf,0x12,0xa7,0xc2,0x3f,0xdd,0xbf,0xc2,0x9, 0x61,0xe0,0x1, 0x1f,0xdd, +0xe7,0xff,0x16,0xbf,0xa7,0x8f,0xa7,0x1f,0xcf,0x1, 0xbf,0x1f,0xa7,0xf, 0x3f,0x5d, +0xbf,0xf, 0xe7,0xfe,0x16,0xff,0xa7,0x2f,0x3f,0x5d,0xbf,0x2f,0x17,0x2f,0xbf,0x2f, +0xa7,0x1f,0xcf,0x2, 0xbf,0x1f,0xa7,0x3f,0xcf,0x10,0xbf,0x3f,0xa7,0xf, 0xcf,0x40, +0xbf,0xf, 0xe0,0x61,0x3f,0x82,0xe7,0xf7,0x17,0x7f,0x3f,0xde,0xe0,0x61,0x3f,0x92, +0x38,0x82,0xe0,0x1, 0x1f,0xdd,0xa7,0x8f,0xa7,0x2f,0x27,0x7, 0xa7,0x3f,0xcf,0x10, +0xbf,0x3f,0xa7,0xf, 0xcf,0x40,0xbf,0xf, 0x38,0x82,0xe0,0x1, 0x1f,0xdd,0xe7,0xff, +0x16,0xbf,0xa7,0x8f,0xa7,0x1f,0xcf,0x1, 0xbf,0x1f,0xa7,0xf, 0x3f,0x5d,0xbf,0xf, +0x38,0x82,0xe0,0x1, 0x1f,0xde,0xe0,0x0, 0x1e,0x2e,0xa7,0xf, 0xe7,0xfe,0x15,0x7f, +0xa7,0xbe,0xe0,0x0, 0x1d,0xaf,0xcf,0x81,0xbf,0xbe,0xa6,0x8e,0xe0,0x2, 0x1f,0xc0, +0xce,0x82,0xbe,0x8e,0x16,0xa0,0xb6,0x8c,0xa6,0x9e,0xa7,0x8f,0x3e,0xda,0xbe,0x9e, +0xa6,0x9e,0xa5,0x8b,0xe0,0x8, 0xce,0x80,0xbe,0x9e,0x16,0xf7,0xa7,0xf, 0xcf,0x1, +0xbf,0xf, 0xa7,0xf, 0xcf,0x8, 0xbf,0xf, 0xa7,0xb, 0x3f,0x5d,0xbf,0xb, 0x17,0x0, +0xe0,0x1, 0xaf,0x3f,0x96,0xc, 0xb6,0x3f,0xe0,0x61,0x3f,0x2, 0xe0,0x2, 0xcf,0x0, +0xe0,0x61,0x3f,0x12,0xa7,0xf, 0xcf,0x1, 0xbf,0xf, 0xa7,0xf, 0xe0,0x1, 0xcf,0x0, +0xbf,0xf, 0x38,0x82,0xe0,0x3, 0x1f,0x3, 0xe2,0xff,0x17,0xf0,0xbf,0xf, 0xe2,0xff, +0x17,0xf4,0xe0,0x3, 0x1f,0x4, 0xbf,0xf, 0xe2,0xff,0x17,0xf8,0xe0,0x3, 0x1f,0x5, +0xbf,0xf, 0xe2,0xff,0x17,0xfc,0xe0,0x3, 0x1f,0x6, 0xbf,0xf, 0x38,0x82,0xe0,0x1, +0x1f,0xb1,0x16,0x80,0xa7,0x8f,0x17,0x0, 0xe0,0x3, 0xb6,0xbf,0xe0,0x2, 0x16,0x84, +0xbf,0xd, 0xe0,0x2, 0x16,0x88,0xbf,0xd, 0x17,0x7f,0xe0,0x7, 0xaf,0x3f,0x38,0x82, +0xe0,0x1, 0x1f,0xb1,0xe0,0x0, 0x16,0xeb,0xa7,0x8f,0x17,0x0, 0xe0,0x3, 0xb6,0xbf, +0xe0,0x2, 0x16,0x84,0xbf,0xd, 0xe0,0x2, 0x16,0x88,0xbf,0xd, 0x17,0x7f,0xe0,0x7, +0xaf,0x3f,0x38,0x82,0xc4,0x7f,0xe1,0xff,0x17,0x7f,0xe3,0xff,0xc4,0x7f,0x3c,0x7e, +0x1, 0xc, 0x17,0x88,0x0, 0x0, 0xc7,0xff,0xe2,0x1, 0xc7,0xff,0x2f,0xfc,0xc4,0x7f, +0xe3,0xff,0xc4,0x7f,0x3c,0x7e,0x1, 0xf6,0x38,0x82,0xc4,0x7f,0xe1,0xff,0x16,0x7f, +0xe3,0xff,0xc4,0x7f,0x3c,0x7c,0x1, 0x17,0x16,0x84,0xe0,0x1, 0x17,0x7a,0x17,0x88, +0x0, 0x0, 0xc7,0xff,0xe2,0x1, 0xc7,0xff,0x2f,0xfc,0xc7,0x7f,0xe3,0xff,0xc7,0x7f, +0x2f,0x77,0xc6,0xff,0xe2,0x1, 0xc6,0xff,0x2e,0xf1,0xc4,0x7f,0xe3,0xff,0xc4,0x7f, +0x3c,0x7c,0x1, 0xeb,0x38,0x82,0xe0,0x2, 0x1f,0xf3,0xa7,0xf, 0xa7,0xce,0xe2,0x0, +0xc7,0x81,0x27,0x98,0xe0,0x1, 0x1f,0xde,0xe7,0xff,0x16,0x3f,0xa7,0x8f,0xa6,0xdf, +0xe0,0x1, 0xce,0x80,0xbe,0xdf,0xa6,0xdf,0x3e,0xdc,0xbe,0xdf,0xa7,0x4e,0x37,0x4a, +0xe2,0x0, 0xc7,0x1, 0x2f,0x1e,0xa7,0x5f,0xe6,0xff,0x16,0xff,0x3f,0x5d,0xbf,0x5f, +0x38,0x82,0xa7,0xce,0x37,0xcf,0xe2,0x0, 0xc7,0x81,0x2f,0x98,0xe0,0x1, 0x1f,0xde, +0xe7,0xff,0x16,0x3f,0xa7,0x8f,0xa6,0xdf,0x3e,0xdc,0xbe,0xdf,0xe7,0xfe,0x16,0x7f, +0xa6,0xdf,0x3e,0xdc,0xbe,0xdf,0xa7,0x4e,0x37,0x4a,0xe2,0x0, 0xc7,0x1, 0x27,0x64, +0xa7,0x5f,0xe1,0x0, 0xcf,0x0, 0xbf,0x5f,0x38,0x82,0xe0,0x1, 0x1f,0xde,0xa7,0x8f, +0xa6,0xdf,0xce,0xc0,0x0, 0xeb,0x8, 0xb2,0x39,0x68,0xdf,0xbe,0xe0,0x1, 0x1f,0xde, +0xe0,0x2, 0x1f,0x56,0xa7,0x8f,0x9f,0xe, 0xbf,0x6f,0x21,0x4, 0xa4,0x6f,0x39,0x48, +0xb9,0x6f,0x9, 0x61,0x8, 0xb4,0xe0,0x2, 0x19,0x71,0x8f,0x82,0xe2,0x1, 0xcf,0x81, +0x1, 0x4, 0x17,0x80,0xaf,0x82,0xa, 0x61,0x24,0x2b,0xe2,0x0, 0xcc,0x1, 0x39,0xe9, +0x1, 0x30,0xe2,0x0, 0xcc,0x2, 0x1, 0xf6,0x3f,0x83,0xdf,0x9e,0xe0,0x1, 0x1f,0xde, +0xe0,0x2, 0x1f,0x56,0xa7,0x8f,0x9f,0xe, 0xbf,0x6f,0x21,0x84,0xa4,0xef,0x3c,0xc3, +0xbc,0xef,0xe0,0x0, 0x1f,0x2c,0xa7,0xe, 0xa7,0xe, 0x37,0x43,0xe2,0x0, 0xc7,0x1, +0x2f,0xe, 0xa7,0x3f,0xcf,0x1, 0xbf,0x3f,0xa7,0xf, 0xe0,0x1, 0xcf,0x0, 0xbf,0xf, +0xa7,0x3f,0xcf,0x1, 0xbf,0x3f,0xa7,0xf, 0xcf,0x40,0xbf,0xf, 0x3b,0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x17,0x80,0xaf,0x82,0xa, 0x61, +0x3f,0x83,0x17,0x82,0x3f,0xd9,0x2f,0xae,0xdf,0x6f,0xe0,0x1, 0x1f,0xde,0xe0,0x2, +0x1f,0x56,0xa7,0x8f,0x9f,0xe, 0xbf,0x6f,0xe0,0x0, 0x1f,0x2c,0xa2,0xe, 0x29,0xb0, +0xa7,0x3f,0xe7,0xfe,0x16,0xff,0xcf,0x1, 0xbf,0x3f,0xa7,0xf, 0x3f,0x5d,0xbf,0xf, +0xa7,0x3f,0xcf,0x1, 0xbf,0x3f,0xa7,0xf, 0xcf,0x40,0xbf,0xf, 0x3b,0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa7,0x84,0x37,0xc5,0xe2,0x0, +0xc7,0x81,0xe7,0xff,0x27,0xa0,0xa7,0x84,0x17,0x5f,0x3f,0xde,0xbf,0x84,0xe7,0xff, +0x0, 0x9a,0xe0,0x0, 0x1f,0xac,0xa2,0xf, 0xa7,0x84,0xcf,0xa0,0xbf,0x84,0xdf,0x3c, +0xe0,0x1, 0x1f,0xde,0xe0,0x2, 0x1f,0x56,0xa7,0x8f,0x9f,0xe, 0xbf,0x6f,0xa4,0xef, +0x3c,0xc3,0xbc,0xef,0x0, 0xce,0x8, 0xb1,0xe0,0x1, 0x1f,0xb1,0x17,0x0, 0xa6,0x8f, +0xe0,0x1, 0x1f,0xde,0xe0,0x2, 0xbf,0xd, 0x16,0x6f,0xa7,0x8f,0xbf,0x6f,0xa6,0xdf, +0xe0,0x80,0xce,0x80,0xbe,0xdf,0xa6,0xdf,0xe0,0x40,0xce,0x80,0xbe,0xdf,0xa6,0xdf, +0xe0,0x20,0xce,0x80,0xbe,0xdf,0xa6,0xef,0xce,0xc0,0xbe,0xef,0xa6,0xef,0xce,0xa0, +0xbe,0xef,0xa6,0xef,0x3e,0xdc,0xbe,0xef,0xe7,0x7f,0x16,0x7f,0xa6,0xef,0xe1,0x0, +0xce,0x80,0xbe,0xef,0xa6,0xef,0x3e,0xdc,0xbe,0xef,0xe7,0xbf,0x16,0x7f,0xa6,0xef, +0x3e,0xdc,0xbe,0xef,0xe7,0xdf,0x16,0x7f,0xa6,0xef,0x3e,0xdc,0xbe,0xef,0xa6,0xef, +0xe0,0x10,0xce,0x80,0xbe,0xef,0xe0,0x2, 0x1f,0xd6,0xb7,0xf, 0xde,0xf5,0xe0,0x61, +0x3f,0x82,0x17,0x7d,0x3f,0xde,0xe0,0x61,0x3f,0x92,0xe0,0x61,0x3f,0x82,0x17,0x7b, +0x3f,0xde,0xe0,0x61,0x3f,0x92,0x8, 0xe1,0xe0,0x1, 0x1f,0xb1,0xe2,0x0, 0xcc,0x2, +0xa7,0x8f,0xe0,0x0, 0x1, 0x57,0xe2,0x0, 0xcc,0x3, 0x1, 0x36,0xe2,0x0, 0xcc,0x1, +0x1, 0x19,0xa6,0x8f,0xe0,0x1, 0x1f,0x5e,0x16,0x7b,0xa7,0xe, 0x3e,0xdc,0xbe,0x8f, +0xe6,0xff,0x16,0x7f,0xa6,0xce,0x3e,0xdc,0xbe,0xce,0x16,0x78,0xa6,0xce,0x3e,0xdc, +0xbe,0xce,0x16,0xf7,0xa7,0xf, 0x3f,0x5d,0xbf,0xf, 0x16,0x80,0xe0,0x1, 0xbe,0xbf, +0x38,0x82,0xa7,0xf, 0x16,0x77,0x3f,0x5c,0xbf,0xf, 0x17,0x0, 0xe0,0x1, 0xbf,0x3f, +0x16,0x78,0xa7,0xf, 0xe0,0x1, 0x1e,0xde,0xcf,0x4, 0xa6,0x8d,0xbf,0xf, 0xa7,0x4d, +0xe1,0x0, 0xcf,0x0, 0xbf,0x4d,0xa7,0x4d,0x3f,0x5c,0xcf,0x1, 0xbf,0x4d,0xa7,0x1f, +0xcf,0x8, 0xbf,0x1f,0x38,0x82,0xa7,0xf, 0xe0,0x1, 0x1e,0xde,0x16,0x7b,0x3f,0x5c, +0xa6,0x8d,0xbf,0xf, 0xe6,0xff,0x16,0x7f,0xa7,0x4d,0x3f,0x5c,0xbf,0x4d,0xa7,0xf, +0xcf,0x8, 0xbf,0xf, 0x17,0x0, 0xe0,0x1, 0xbf,0x3f,0xa7,0x1f,0xe0,0x20,0xcf,0x0, +0xbf,0x1f,0xa7,0x1f,0xcf,0x10,0xbf,0x1f,0xa7,0x1f,0xcf,0x8, 0xbf,0x1f,0x38,0x82, +0xa6,0x8f,0x16,0x77,0x3e,0xdc,0xbe,0x8f,0x16,0x80,0xe0,0x1, 0xbe,0xbf,0x16,0x78, +0xa6,0x8f,0xe0,0x1, 0x1f,0x5e,0xce,0x84,0xa7,0xe, 0xbe,0x8f,0xa6,0xce,0xe1,0x0, +0xce,0x80,0xbe,0xce,0xa6,0xce,0x3e,0xdc,0xbe,0xce,0xa7,0x1f,0xcf,0x8, 0xbf,0x1f, +0x38,0x82,0x8, 0xb3,0xe0,0x1, 0x1f,0xde,0xa1,0x8f,0xe0,0x1, 0x1f,0xb1,0xa1,0xf, +0xa7,0xb3,0xcf,0x81,0xbf,0xb3,0xa7,0x83,0xcf,0x88,0xbf,0x83,0xe0,0x1, 0xa7,0x92, +0xcf,0x82,0xe0,0x1, 0xbf,0x92,0xe0,0x1, 0xa7,0x92,0xcf,0x81,0xe0,0x1, 0xbf,0x92, +0xe0,0x2, 0x1f,0xcc,0x8c,0xf, 0xdf,0x71,0xa7,0xd3,0x17,0x7d,0xcf,0x81,0xbf,0xd3, +0xa7,0xd3,0x3f,0xde,0xbf,0xd3,0x17,0x7b,0xa7,0xd3,0x3f,0xde,0xbf,0xd3,0x17,0x77, +0xa7,0xd3,0x3f,0xde,0xbf,0xd3,0x17,0x6f,0xa7,0xd3,0x3f,0xde,0xbf,0xd3,0x17,0x78, +0xa7,0xd3,0xcf,0xa0,0xbf,0xd3,0xe0,0x1, 0xa7,0xa2,0xe1,0x0, 0xcf,0x80,0xe0,0x1, +0xbf,0xa2,0xe0,0x1, 0xa7,0xa2,0xe0,0x60,0xcf,0x80,0xe0,0x1, 0xbf,0xa2,0xe0,0x1, +0xa7,0xa2,0xcf,0x88,0xe0,0x1, 0xbf,0xa2,0xe0,0x1, 0xa7,0xa2,0x3f,0xde,0xcf,0x85, +0xe0,0x1, 0xbf,0xa2,0xe0,0x1, 0xa7,0xa2,0xe0,0x2, 0xcf,0x80,0xe0,0x1, 0xbf,0xa2, +0xe0,0x1, 0xa7,0xa2,0xe0,0x4, 0xcf,0x80,0xe0,0x1, 0xbf,0xa2,0x9, 0xe1,0xe0,0x1, +0x1f,0xde,0xe7,0xfd,0x16,0xff,0xa7,0x8f,0xa7,0x1f,0xe0,0x20,0xcf,0x0, 0xbf,0x1f, +0xa7,0x1f,0xe0,0x2, 0xcf,0x0, 0xbf,0x1f,0xa7,0x2f,0x3f,0x5d,0xbf,0x2f,0xe7,0xff, +0x16,0xbf,0xa7,0x1f,0xe0,0x4, 0xcf,0x0, 0xbf,0x1f,0xa7,0x2f,0xe0,0x1, 0xcf,0x0, +0xbf,0x2f,0xa7,0x2f,0x3f,0x5d,0xbf,0x2f,0x16,0xef,0xa7,0x2f,0x3f,0x5d,0xbf,0x2f, +0x16,0xf7,0xa7,0x2f,0x3f,0x5d,0xbf,0x2f,0x38,0x82,0xe0,0x1, 0x1f,0xb1,0xe2,0x0, +0xc4,0x1, 0xa7,0x8f,0x16,0x77,0xe0,0x1, 0xa7,0x2f,0xe0,0xd, 0x34,0x23,0x3f,0x5c, +0x3f,0x4d,0xe0,0x1, 0xbf,0x2f,0xe6,0xff,0x16,0x7f,0xe0,0x1, 0xa7,0x2f,0xe0,0xd, +0x34,0x2f,0x3f,0x5c,0x3f,0x4d,0xe0,0x1, 0xbf,0x2f,0xe7,0xfd,0x16,0x7f,0xe0,0x1, +0xa7,0x2f,0xe0,0xd, 0x34,0x28,0x3f,0x5c,0x3f,0x4d,0xe0,0x1, 0xbf,0x2f,0xe7,0xfb, +0x16,0xff,0xe0,0x1, 0xa7,0x2f,0x34,0x29,0x3f,0x5d,0x3c,0x4e,0xe0,0x1, 0xbc,0x2f, +0x38,0x82,0x8, 0xb1,0xe0,0x4, 0xdb,0xae,0x24,0x6, 0xe0,0x1, 0x1f,0x61,0x97,0xce, +0xcf,0x82,0xb7,0xce,0xe0,0x1, 0x1f,0xfa,0x8f,0x8f,0x27,0x82,0x8, 0xe1,0x8, 0xa1, +0xe7,0xdc,0x0, 0xd9,0xe0,0x1, 0x1e,0xdf,0xe0,0x1, 0x1f,0x61,0x97,0x8d,0xcf,0x81, +0xb7,0x8d,0x97,0xce,0xcf,0x84,0xb7,0xce,0xe0,0x2, 0x1f,0xf3,0xa7,0x8f,0xa7,0xcf, +0xe2,0x0, 0xc7,0x81,0x2f,0x82,0x38,0x82,0x0, 0xdd,0xe0,0x1, 0x1f,0x5f,0xe0,0x1, +0x1e,0xe1,0x97,0x8e,0xcf,0x81,0xb7,0x8e,0x97,0x4d,0xe0,0x2, 0x1f,0xf3,0xcf,0x4, +0xa7,0x8f,0xb7,0x4d,0xa7,0x5f,0xcf,0x8, 0xbf,0x5f,0xa7,0xcf,0xe2,0x0, 0xc7,0x81, +0x27,0x82,0x38,0x82,0x0, 0xc7,0xe0,0x61,0x3f,0x82,0xe0,0x61,0x3f,0x2, 0xe7,0xfe, +0x16,0xff,0x3f,0x5d,0xe0,0x61,0x3f,0x12,0xe0,0x2, 0x1f,0x73,0x16,0x7e,0xa7,0xe, +0xe2,0x0, 0xc4,0x1, 0xa6,0xbe,0x15,0xfd,0x3e,0xdc,0x3e,0xc8,0xbe,0xbe,0xe0,0xc, +0x34,0x21,0xa6,0xbe,0x34,0x2a,0x3e,0xdb,0x3e,0xcc,0xbe,0xbe,0xe7,0xf7,0x16,0x7f, +0xa6,0xbe,0x37,0xc7,0x3e,0xdc,0x3c,0x4d,0xbc,0x3e,0xe2,0x0, 0xc7,0x81,0x27,0x87, +0xe0,0x61,0x3f,0x82,0xe0,0x1, 0xcf,0x80,0xe0,0x61,0x3f,0x92,0x38,0x82,0x8, 0xb1, +0xe0,0x1, 0x1f,0xb1,0xe7,0x7f,0x16,0xff,0xa7,0xf, 0xe7,0xfb,0x16,0x7f,0xa7,0x8e, +0xe7,0xe0,0x14,0x80,0x3f,0xdd,0xbf,0x8e,0xf0,0x1a,0x13,0x98,0xe0,0x1, 0xa6,0xee, +0xe0,0x2, 0x1f,0xf3,0xe0,0x4, 0xce,0x80,0xe0,0x1, 0xbe,0xee,0xe0,0x1a,0x15,0x19, +0xe0,0x1, 0xa6,0xee,0xa7,0x8f,0x3e,0xdc,0xe0,0x1, 0xbe,0xee,0x16,0x81,0xbe,0xdf, +0xe7,0xf8,0x16,0x0, 0xa6,0xef,0x17,0x0, 0xe3,0xfe,0xc6,0x9f,0xbe,0xef,0xe7,0x80, +0x14,0x0, 0xa6,0xef,0xe0,0x1, 0x1d,0xa3,0xbe,0xef,0xf0,0x17,0x3b,0x9b,0xe0,0x1, +0xa6,0xdf,0x3d,0x1b,0xe3,0xff,0xc6,0x80,0xe0,0x1, 0xbe,0xdf,0xe0,0x1, 0xa6,0xdf, +0xe0,0x1, 0xbe,0xdf,0xe0,0x3, 0x16,0xe0,0xe0,0x1, 0xbe,0xef,0xe0,0x1, 0xa6,0xff, +0x3e,0xdc,0xe0,0x1, 0xbe,0xff,0xe7,0xf0,0x16,0x0, 0xe0,0x2, 0xa6,0x8f,0x3e,0xd9, +0xe0,0x2, 0xbe,0x8f,0xe0,0x2, 0xa6,0x9f,0x3e,0xd9,0xe0,0x2, 0xbe,0x9f,0xe0,0x17, +0x16,0xb8,0xe0,0x4, 0xb6,0xdf,0xe0,0x2, 0xa6,0xcf,0x3e,0xdc,0xe0,0x2, 0xbe,0xcf, +0xe0,0x9, 0x16,0x88,0xe0,0x2, 0xbe,0xbf,0xe0,0x12,0x16,0xd8,0xe0,0x2, 0xbe,0xdf, +0xe1,0x20,0x16,0x80,0xe0,0x2, 0xbf,0x6f,0xe0,0x2, 0xbe,0xff,0xe0,0x3, 0xa5,0xef, +0x3d,0xd8,0xcd,0xe4,0xe0,0x3, 0xbd,0xef,0xe0,0x3, 0xa6,0x7f,0x3e,0x58,0xce,0x64, +0xe0,0x3, 0xbe,0x7f,0xe0,0x4, 0xa6,0x8f,0x3e,0xd9,0xe0,0x7, 0xce,0xe8,0xe0,0x4, +0xbe,0x8f,0xe1,0xff,0x16,0xff,0xe0,0x4, 0xbf,0x1f,0xbe,0x9f,0xe1,0x39,0x16,0x83, +0xbf,0x3f,0xbe,0xbf,0xe0,0x1, 0x1e,0xdf,0xb7,0xd, 0xa6,0xbf,0xbe,0xaf,0xe0,0x2, +0x1f,0xda,0xe8,0x0, 0x86,0x87,0xb7,0xf, 0xe0,0x2, 0x1f,0x81,0x87,0xa, 0xae,0x8f, +0xe0,0x2, 0x1f,0xfd,0xaf,0xf, 0xef,0xfe,0xd7,0x17,0xe0,0x4, 0xd9,0x7d,0xe0,0x61, +0x3f,0x82,0xe0,0x1, 0xcf,0x80,0xe0,0x61,0x3f,0x92,0x8, 0xe1,0x8, 0xb3,0xf0,0x2, +0x18,0xf3,0xe7,0xbf,0x16,0x7f,0xe8,0x0, 0xa7,0x1, 0xe0,0x2, 0x1e,0xbf,0xe0,0x1, +0xa7,0xee,0xf0,0x3, 0x19,0x87,0x3f,0xdc,0xe0,0x1, 0xbf,0xee,0xfa,0xd7,0xcb,0xa8, +0xe0,0x2, 0x1f,0xa8,0xe0,0x1, 0x9d,0x2d,0x85,0x8f,0xe0,0x1, 0x1f,0xa3,0xe0,0x1, +0x9e,0x1d,0xf0,0x10,0x89,0x7f,0xe0,0x0, 0x1f,0xb1,0xe0,0x3, 0x1e,0x88,0xe4,0xa, +0x35,0x20,0xe4,0xc, 0x36,0x20,0xa7,0x8f,0xe0,0x3, 0x1c,0x89,0xf0,0x3, 0x1a,0xa, +0xf0,0x3, 0x1a,0x8b,0xe0,0x3, 0x19,0x8c,0xe0,0x3, 0x19,0xd, 0xe0,0x3, 0x18,0x8e, +0xf0,0x3, 0x18,0xf, 0xf0,0x3, 0x1b,0x10,0x17,0x0, 0xe2,0x0, 0xc5,0x81,0x3d,0x4d, +0x3e,0x4d,0xe0,0xa9,0x14,0x15,0xe8,0x40,0x3d,0xf2,0xf0,0x0, 0xb9,0x8f,0x1, 0x25, +0xbe,0x1f,0x16,0xfd,0x3e,0x9e,0xe2,0x1, 0xc6,0xff,0xf0,0x0, 0xbb,0xaf,0xe2,0x0, +0xce,0x81,0xbc,0x3f,0x5, 0x9f,0x27,0x1b,0xf0,0x0, 0xba,0x4f,0xf0,0x0, 0xba,0xdf, +0xbc,0xef,0xc7,0x1, 0xe2,0x1, 0xc7,0x7f,0xe2,0x0, 0xcf,0x5, 0xf0,0x0, 0xbb,0x7f, +0xe0,0x7, 0xc7,0xb0,0x1, 0xe1,0xe8,0x0, 0xa7,0x1, 0xe0,0x1, 0xa7,0xee,0xe0,0x40, +0xcf,0x80,0xe0,0x1, 0xbf,0xee,0x9, 0xe1,0xbd,0x1f,0x0, 0xdc,0xb9,0xcf,0xb9,0x5f, +0x0, 0xe8,0xb8,0xcf,0xe2,0x0, 0xcf,0x4, 0xf0,0x0, 0xb8,0x5f,0xbc,0xef,0x1, 0xe2, +0xe0,0x3, 0x1f,0x11,0xbf,0x7f,0x0, 0xe8,0x8, 0xb2,0xe0,0x2, 0x19,0x3, 0x8f,0x82, +0x27,0x8d,0xe0,0x0, 0x14,0xda,0x14,0x11,0xe0,0x4, 0xda,0x6e,0xe0,0x0, 0x14,0xda, +0x14,0x29,0xe0,0x4, 0xda,0x69,0x17,0x80,0xaf,0x82,0x9, 0x61,0xe0,0x2, 0x1f,0xac, +0x17,0x0, 0xb7,0xf, 0xe0,0x1, 0x1f,0xe5,0xaf,0xf, 0x38,0x82,0xe0,0x1, 0x1f,0x65, +0x87,0x8e,0xc7,0x81,0xe2,0x1, 0xc7,0xff,0xe2,0x1, 0xcf,0xc8,0x5, 0x82,0x17,0xc8, +0xaf,0x8e,0x38,0x82,0xe0,0x0, 0x1f,0xb7,0x14,0x1, 0x8f,0x8f,0x2f,0x89,0xe0,0x1, +0x1f,0xe5,0x8c,0xf, 0xe0,0x2, 0x1f,0xd0,0x8f,0x8f,0xe1,0x28,0x3c,0x1f,0x38,0x82, +0x8, 0xb1,0x3c,0x98,0x34,0xa4,0xe1,0x77,0x14,0x0, 0xe0,0x6, 0xd4,0x45,0xe3,0xff, +0xc4,0x7f,0x8, 0xe1,0xea,0x0, 0xcc,0x2, 0xe0,0x46,0xcc,0x0, 0x14,0x80,0xea,0x0, +0xcd,0x2, 0xe1,0x8d,0xcd,0x70,0x3d,0x28,0xe0,0x6, 0xd6,0xa8,0xea,0x0, 0xcc,0x0, +0xe0,0x0, 0xcc,0x0, 0x24,0x2, 0x3c,0x1, 0x14,0x0, 0x14,0x80,0xef,0xfe,0xd0,0xbc, +0x3a,0x80,0x0, 0x0, 0x3a,0x80,0xe0,0x2, 0x1f,0xfd,0xe0,0x1, 0x17,0x7d,0x8f,0x8f, +0x3f,0x58,0xe2,0x0, 0xcf,0x80,0x3c,0x6f,0x17,0x80,0xe1,0x2f,0x3f,0xf, 0xe0,0x68, +0x39,0xaf,0x38,0x82,0xe7,0xfe,0x0, 0xa4,0xe7,0xc4,0x0, 0x9b,0x8, 0xb3,0xe0,0x2, +0x19,0xed,0x11,0x0, 0x8c,0x33,0x3c,0xe2,0xc1,0x1, 0xef,0xfe,0xd2,0xf5,0xe2,0x1, +0xc1,0x7f,0xe2,0x0, 0xc9,0x3, 0xc1,0x85,0x1, 0xf6,0x14,0x81,0x3c,0x62,0xef,0xfe, +0xd2,0xeb,0x14,0x81,0x14,0x4, 0xef,0xfe,0xd2,0xe7,0xe0,0x2, 0x1f,0x8d,0x8c,0x8f, +0x24,0x82,0x14,0x81,0x14,0x0, 0x9, 0xa1,0xe7,0xc5,0x0, 0xde,0x8, 0xb1,0xde,0xff, +0xef,0xfe,0xd1,0xf7,0x8, 0xa1,0x0, 0xdb,0x8, 0xb2,0xe0,0x2, 0x1f,0xf3,0xe0,0x0, +0x19,0x37,0xa7,0x8f,0xa7,0xcf,0xe2,0x0, 0xc7,0x81,0x2f,0x95,0xe0,0x2, 0x1f,0xd, +0xaf,0x82,0x3c,0xef,0xaf,0x8e,0x3c,0x6f,0xe0,0x1, 0x1f,0x26,0xaf,0x8e,0xe0,0x2, +0x1f,0x41,0xaf,0x8e,0xef,0xfe,0xd2,0xc0,0xef,0xfe,0xd5,0xa1,0x8c,0x2, 0x9, 0x21, +0xe7,0xd3,0x0, 0xf5,0x17,0x81,0xe0,0x2, 0x1f,0xd, 0xe0,0x2, 0x1c,0x29,0xaf,0x82, +0xaf,0x8e,0xe0,0x2, 0xd0,0x33,0xe0,0x1, 0x1f,0xa6,0xe0,0x2, 0x1f,0x5b,0xac,0xf, +0x87,0x8f,0xaf,0x8e,0xe0,0x1, 0xde,0xde,0x14,0x81,0x14,0x0, 0xef,0xfe,0xd2,0xa4, +0x0, 0xe4,0x8, 0xb3,0x14,0x0, 0xdd,0xf8,0xe0,0x1, 0x1f,0xdf,0x14,0x1, 0x91,0x8f, +0x99,0xf, 0x39,0xd8,0x31,0x58,0x39,0x58,0xdd,0xef,0xe0,0x8, 0x39,0xc2,0x9, 0xe1, +0x8, 0xb2,0xe0,0x2, 0xd0,0x5a,0xdf,0x29,0x14,0x0, 0xdd,0xe6,0xe0,0x1, 0x1f,0x5f, +0x9f,0x8e,0x37,0xc1,0xe2,0x0, 0xc7,0x81,0x27,0x8b,0x97,0x8e,0xe0,0x1, 0x1e,0xe1, +0xe3,0xff,0xc7,0xfd,0xb7,0x8e,0x97,0xcd,0xe3,0xff,0xc7,0xf7,0xb7,0xcd,0x97,0x8e, +0xe0,0x2, 0x19,0x3b,0xe2,0x0, 0xc7,0x81,0x2f,0x97,0x14,0x1, 0xdd,0xcd,0xe0,0x2, +0x1f,0xd, 0x8f,0x82,0x8e,0x8e,0x37,0xdd,0xe2,0x0, 0xc7,0x81,0x2f,0x89,0xe0,0x2, +0x1f,0xba,0x8f,0x8f,0x8f,0xe, 0x37,0xde,0xe2,0x0, 0xc7,0x81,0x27,0x84,0x9, 0x21, +0xe7,0xec,0x0, 0xdb,0x9, 0x61,0x97,0x8e,0xe0,0x1, 0x1e,0xe1,0xe3,0xff,0xc7,0xfe, +0xb7,0x8e,0x97,0xcd,0xe3,0xff,0xc7,0xfb,0xb7,0xcd,0xdf,0x7f,0xef,0xfd,0xda,0x84, +0xe0,0x2, 0x1f,0x3a,0x17,0x87,0xaf,0x8e,0xaf,0x82,0x0, 0xd8,0xe0,0x1, 0x1f,0xce, +0xe0,0x2, 0x1f,0x43,0x8f,0x8f,0xe0,0x1, 0x8e,0xce,0xe2,0x0, 0xcf,0x85,0x2, 0x8c, +0x26,0x9c,0xe0,0x1, 0x1e,0x6a,0xe0,0x1, 0x8d,0x9e,0x3f,0x9c,0x8e,0xf, 0x3d,0xfc, +0x5, 0xb6,0xc6,0x1, 0xae,0xf, 0xe2,0x0, 0xce,0x81,0x1, 0x1f,0xe0,0x1, 0x1f,0xfb, +0x16,0x80,0xae,0x8f,0xe0,0x1, 0x8f,0xee,0xe2,0x0, 0xcf,0x81,0xeb,0xe6,0x7f,0x93, +0x1, 0x9, 0x17,0x1, 0xaf,0xf, 0x38,0x82,0xe0,0x1, 0x1e,0x6a,0x3f,0x9c,0xae,0x8f, +0x0, 0xee,0x8e,0x8f,0xe0,0x1, 0x8e,0xe, 0x3e,0x7d,0x5, 0xf4,0xc6,0x81,0x16,0x0, +0xe0,0x1, 0xae,0x6e,0xae,0x8f,0x38,0x82,0xe0,0x1, 0x1e,0x7b,0xe0,0x1, 0x8e,0x9e, +0x8f,0x8c,0x15,0x80,0x3e,0xff,0xe0,0x1, 0xad,0xee,0x5, 0x8c,0x16,0x81,0x3e,0x9f, +0xeb,0xe6,0x7f,0x93,0xe0,0x1, 0xad,0xce,0xae,0x8c,0x0, 0xdc,0x16,0x80,0xae,0x8f, +0x0, 0xd2,0xeb,0xe6,0x7f,0x93,0xad,0x8c,0x0, 0xd5,0x8, 0xb3,0xe0,0x2, 0x19,0x43, +0x17,0x1, 0x9f,0xd2,0xe0,0x1, 0xaf,0x62,0xe0,0x43,0x3f,0x1f,0xe2,0x0, 0xcf,0x0, +0xe0,0x1, 0x4, 0x17,0xe0,0x2, 0x1f,0x1f,0x8f,0xe, 0x27,0x4, 0x17,0x0, 0xe0,0x1, +0xaf,0x62,0xe2,0x0, 0xc7,0xa0,0x27,0x84,0x17,0x80,0xe0,0x1, 0xaf,0xe2,0xe0,0x1, +0x19,0xcf,0x8f,0x83,0x2f,0x83,0xe0,0x1, 0xaf,0xe2,0xe0,0x2, 0x1f,0x8d,0x8c,0xf, +0xde,0xcb,0xe0,0x2, 0x1d,0x5, 0x24,0x7, 0xe0,0x4, 0x8f,0xda,0xe2,0x0, 0xcf,0x81, +0xe0,0x0, 0x1, 0x6b,0x9e,0xd2,0x17,0x80,0xe0,0x80,0x17,0x0, 0xe0,0x1, 0xaf,0xc2, +0x3f,0x5d,0xe0,0x1, 0xaf,0xd2,0x27,0x4, 0x17,0x81,0xe0,0x1, 0xaf,0xc2,0xe0,0x4, +0x17,0x80,0x3f,0xdd,0x2f,0x83,0xe0,0x1, 0xaf,0xc2,0x8f,0x83,0x2f,0x83,0xe0,0x1, +0xaf,0xc2,0xe0,0x1, 0x17,0x80,0x3f,0xdd,0x27,0x84,0x17,0x80,0xe0,0x1, 0xaf,0xc2, +0x17,0x4, 0xe0,0x1, 0x1f,0xad,0x96,0x3f,0xe0,0x0, 0x1f,0x8e,0xe0,0x1b,0x95,0x9f, +0xe0,0xf, 0x36,0x21,0x3d,0xff,0x4, 0x4, 0x3d,0xfc,0x17,0x3, 0x3, 0x34,0xe0,0x1, +0x1f,0xa0,0x15,0x84,0x8e,0xf, 0xe0,0x2, 0x17,0x80,0x3f,0xdd,0xe2,0x0, 0xcf,0x80, +0xe0,0x1, 0x1f,0x9f,0x36,0x28,0x8f,0x8f,0xe0,0x6b,0x39,0x2e,0x3f,0xcc,0xe0,0x1, +0x1f,0x1e,0x3f,0xbb,0xe0,0x0, 0x1e,0xb, 0x8f,0xe, 0xe0,0x43,0x3f,0x9f,0x8e,0xc, +0xb7,0xb2,0xe0,0x1, 0xaf,0x2, 0x26,0xb, 0xe0,0x43,0x3e,0x9d,0xe2,0x0, 0xce,0x80, +0x4, 0x6, 0xe2,0x0, 0xcf,0x81,0x5, 0x29,0x37,0x81,0xb7,0xb2,0xe0,0x4, 0x8f,0xda, +0xe2,0x0, 0xcf,0x81,0x1, 0x85,0x97,0xb2,0xe4,0x0, 0xc7,0x85,0xb7,0xb2,0x9, 0xa1, +0xe7,0xfe,0x0, 0xa6,0xe4,0xf, 0x36,0x4f,0x3f,0x9c,0x37,0x81,0xe0,0x2f,0x3f,0x9b, +0x17,0x1, 0x3f,0x1f,0x0, 0xc5,0xe0,0x2, 0x1f,0xfe,0x8f,0x8f,0xe2,0x0, 0xcf,0xba, +0xe7,0xff,0x2, 0x92,0x17,0x80,0xe0,0x1, 0xaf,0xe2,0xe7,0xff,0x0, 0x8d,0x17,0x0, +0xe0,0x1, 0xaf,0x62,0xe7,0xfe,0x0, 0xe8,0x37,0x21,0xe0,0x1, 0xaf,0x2, 0x0, 0xd7, +0xe0,0x1, 0x1e,0xea,0x17,0x0, 0x3f,0xed,0xe1,0x80,0xaf,0x1f,0xc7,0x81,0xaf,0x1d, +0xe1,0x80,0xaf,0x1f,0xe1,0x80,0xaf,0x1f,0xe1,0x80,0xaf,0x1f,0xaf,0xf, 0x38,0x82, +0x8, 0xb2,0xc0,0x7c,0xe0,0x1, 0xd1,0xee,0xdf,0x41,0xdd,0xfd,0xe0,0x1, 0x1f,0xdc, +0x2c,0x10,0x8f,0xf, 0xe0,0x2, 0x19,0x43,0xe2,0x0, 0xcf,0x1, 0xe0,0x1, 0xac,0x42, +0x1, 0x25,0xdd,0xf1,0x24,0x11,0xe0,0x1, 0x8f,0xe2,0x2f,0x9b,0xc0,0x4, 0x9, 0x61, +0x8f,0xf, 0xe0,0x2, 0x19,0x43,0xe2,0x0, 0xcf,0x1, 0x1, 0x18,0xe0,0x1, 0x8f,0xc2, +0x2f,0x9a,0xdd,0xe1,0x2c,0x71,0x7c,0x1, 0xe0,0x4, 0xdf,0xe1,0xe0,0x0, 0x1f,0x8b, +0x64,0x1, 0xac,0xf, 0xe0,0x0, 0x1f,0x8a,0xac,0xf, 0xe0,0x1, 0x8f,0xe2,0x27,0xe7, +0x14,0x0, 0xc0,0x4, 0x9, 0x21,0xe0,0x9c,0x0, 0xe1,0x17,0x1, 0x16,0x0, 0xe0,0x1, +0xaf,0x42,0xae,0xf, 0x17,0x80,0xe0,0x1, 0x1e,0xea,0xe0,0x1, 0x1f,0x69,0xaf,0x8d, +0x16,0x7, 0xaf,0x9d,0xe0,0x2, 0x1e,0xbb,0xaf,0x8e,0xae,0xd, 0xe0,0x1, 0x1f,0x68, +0xe0,0x1, 0x1e,0xfb,0xaf,0x8e,0xaf,0x8d,0x0, 0xc5,0x0, 0x0, 0xe0,0x0, 0x1f,0x8d, +0x8f,0xf, 0xe0,0x0, 0x1f,0x8e,0xe0,0x0, 0x27,0x60,0xe0,0x0, 0x1f,0xb, 0x8e,0xe, +0xe2,0x0, 0xce,0x2, 0x1, 0x8, 0x17,0xa, 0x3f,0x38,0x3f,0x9e,0xf0,0x10,0x8b,0xaf, +0x5, 0xb4,0x38,0x82,0x8e,0xbf,0xf0,0x0, 0x8b,0x9f,0xf0,0x0, 0x8b,0xf, 0xf0,0xe, +0x3b,0xad,0x8d,0xaf,0xe2,0x0, 0xcf,0x0, 0xe8,0x17,0x3e,0xa7,0xf2,0x1, 0xc3,0xff, +0xf0,0xd, 0x3b,0x2b,0xe2,0x1, 0xc7,0x7f,0xe8,0x6e,0x3d,0x27,0xe8,0xb, 0x3d,0xa6, +0xe2,0x0, 0xce,0x80,0xe2,0x1, 0xc5,0xff,0xe2,0x1, 0xc6,0xff,0xe0,0x6d,0x3d,0x2b, +0xf0,0x40,0x3b,0xee,0x3d,0xed,0xf2,0x1, 0xc3,0xff,0xe2,0x1, 0xc5,0xff,0xf0,0x40, +0x3b,0xfb,0x3, 0x82,0x3f,0x6d,0x15,0x8a,0x3d,0xb8,0x3e,0xee,0xe0,0xf, 0x3f,0x9b, +0xf0,0x10,0x8b,0xaf,0xe2,0x1, 0xc6,0xff,0xf2,0x0, 0xcb,0x94,0x2, 0x99,0xf2,0x0, +0xcb,0x8a,0x2, 0xad,0xea,0xf, 0x7f,0x58,0xe0,0xf, 0x3f,0x18,0x8d,0x89,0xf0,0x0, +0x8b,0xf, 0xe8,0x40,0x3d,0xf6,0x3, 0x86,0xf0,0x0, 0xab,0x9, 0x8f,0x8f,0xaf,0x8a, +0x8d,0x89,0xe2,0x0, 0xce,0x2, 0x1, 0x1f,0x3f,0x18,0xad,0x8e,0x38,0x82,0x17,0x85, +0xaf,0x89,0xaf,0x8a,0x0, 0xe8,0xea,0xf, 0x7e,0xd8,0x3f,0xed,0xe1,0x80,0xbf,0x1f, +0xc7,0x84,0xbf,0x1d,0xe1,0x80,0xbf,0x1f,0xe1,0x80,0xbf,0x1f,0xe1,0x80,0xbf,0x1f, +0xe1,0x80,0xbf,0x1f,0xe1,0x80,0xbf,0x1f,0xb7,0xf, 0x38,0x82,0x17,0x84,0xaf,0x89, +0xaf,0x8a,0x0, 0xd1,0xe0,0xf, 0x36,0xc1,0xe2,0x1, 0xc7,0xff,0x3f,0xfb,0x3, 0x8d, +0xf2,0x0, 0xcb,0x95,0x16,0x83,0xe0,0x6d,0x3c,0xac,0x3e,0xff,0xe0,0x6f,0x3b,0xad, +0x3d,0xef,0xe2,0x1, 0xc5,0xff,0xad,0x89,0xad,0x8a,0x8d,0x89,0x0, 0xce,0xe0,0x1, +0x1f,0xcf,0x8f,0x8f,0xe2,0x0, 0xcf,0x81,0x1, 0x2, 0x38,0x82,0x8, 0xb7,0xf8,0x0, +0xc, 0x3e,0xc0,0x78,0xe0,0x0, 0x19,0xb, 0xf0,0x0, 0x8e,0x2, 0xf0,0x1, 0x26,0x1c, +0xf0,0x0, 0x16,0x0, 0xe0,0x0, 0x1a,0xe, 0xe0,0x2, 0x19,0xbf,0xf0,0x1, 0x1c,0xd1, +0xe0,0x1, 0x1b,0x2d,0xf0,0x1, 0x1c,0x1d,0xf8,0x40,0x3d,0xec,0x12,0x83,0x13,0x84, +0x0, 0x9e,0x14,0x84,0x3c,0x69,0xe8,0x40,0x3d,0xec,0xe8,0x40,0x3d,0x6b,0x6b,0x8a, +0x6b,0x8b,0xe0,0x4, 0xdf,0xc1,0xe8,0x0, 0x8f,0x88,0xe2,0x0, 0xcf,0x81,0xe0,0x0, +0x1, 0x6d,0xf0,0x0, 0xc6,0x1, 0xf2,0x1, 0xc6,0x7f,0xf0,0x0, 0xc5,0x81,0x8f,0x82, +0xf2,0x1, 0xc5,0xff,0xe8,0x40,0x3f,0xfb,0xe0,0x0, 0x5, 0xee,0xf0,0xe, 0x35,0xa1, +0x3f,0x14,0xf0,0x0, 0x8e,0x8e,0x8f,0xd3,0xf0,0x0, 0x8d,0x1e,0xe8,0xf, 0x3f,0xbd, +0xe8,0x0, 0xa7,0x9, 0xe8,0xf, 0x3f,0x9a,0x37,0xa1,0x3f,0x9e,0x97,0xf, 0x97,0xa6, +0x3f,0x7f,0x4, 0x64,0xe0,0x3, 0x8f,0x96,0x6a,0x8a,0x6a,0x8b,0x2f,0xcb,0x8f,0xf3, +0x15,0x80,0xe8,0x40,0x3d,0x6b,0xe8,0x40,0x3c,0xea,0xe8,0x40,0x3c,0x6d,0x7f,0x81, +0xf0,0x0, 0x8f,0x63,0xe0,0x4, 0xde,0xf8,0x8f,0x82,0xe2,0x0, 0xcf,0x83,0x5, 0x84, +0x17,0x82,0x6f,0x8a,0x6f,0x8b,0xe2,0x1, 0xcc,0x7f,0x1, 0x4, 0x17,0x82,0x6f,0x8a, +0x6f,0x8b,0xf2,0x0, 0xce,0x81,0x5, 0x86,0xf1,0xff,0xc7,0x7e,0xf8,0x40,0x3e,0xfe, +0x4, 0x3, 0x17,0x81,0x6f,0x8a,0xf2,0x0, 0xcd,0x1, 0x5, 0x88,0xf0,0x0, 0x66,0x81, +0xf1,0xff,0xc6,0xfe,0xf8,0x40,0x3d,0x7d,0x4, 0x3, 0x17,0x81,0x6f,0x8b,0xe2,0x0, +0x7d,0xb, 0xe2,0x0, 0x7c,0x8a,0xe8,0x40,0x3c,0x6b,0xde,0xe1,0x4c,0xa, 0x4c,0x8b, +0xe8,0x40,0x3d,0xec,0xe8,0x40,0x3d,0x6b,0xe0,0x4, 0xdf,0x56,0xe8,0x0, 0x8f,0x88, +0xe2,0x0, 0xcf,0x81,0xe7,0xff,0x1, 0x97,0x17,0x8a,0xe8,0xf, 0x3f,0xbc,0x3f,0x94, +0xe0,0x7, 0x9e,0xef,0xe0,0x7, 0x97,0x7f,0xe0,0x7, 0xb6,0xff,0xe0,0x7, 0xb7,0x6f, +0xe7,0xff,0x0, 0x89,0xf0,0x0, 0xae,0x2, 0xc0,0x8, 0xf8,0x0, 0xf, 0x28,0xb, 0xe1, +0x8f,0x8, 0x3f,0xe8,0x3f,0x79,0x2, 0x8c,0x8f,0x28,0x14,0x0, 0x3f,0x79,0x5, 0x89, +0x8f,0x1f,0x3f,0x7a,0x2, 0x86,0x8c,0x3f,0xe1,0x28,0x3c,0x1a,0x38,0x82,0x14,0x0, +0x38,0x82,0xe0,0x2, 0x1f,0xbf,0x8f,0xdf,0x3c,0x3f,0x3c,0x19,0xe3,0xff,0xc4,0x7f, +0x38,0x82,0x24,0x9b,0xc4,0xff,0xe2,0x1, 0xc4,0xff,0x17,0x7f,0xe0,0xe, 0x3f,0x18, +0xe0,0xb, 0x3c,0x19,0xe0,0x1, 0x14,0x7f,0xe0,0x80,0x87,0x9e,0xe4,0xd, 0x34,0x28, +0xe4,0xf, 0x37,0xa8,0xe4,0xc, 0x37,0xc8,0x3e,0x78,0xe0,0x6f,0x3a,0xad,0x3f,0x7b, +0xe4,0x8, 0x37,0xc8,0x1, 0xf2,0x38,0x82,0xe0,0x1, 0x14,0x7f,0x38,0x82,0x24,0x99, +0xc4,0xff,0xe2,0x1, 0xc4,0xff,0x17,0x7f,0x3f,0x18,0x3c,0x98,0xe0,0x0, 0x14,0x0, +0xe0,0x80,0x87,0x9e,0xe4,0xd, 0x34,0x28,0xe4,0xf, 0x37,0xa8,0xe4,0xc, 0x37,0xc8, +0x3e,0x78,0xe0,0x6f,0x3c,0xad,0x3f,0x79,0xe4,0x8, 0x37,0xc8,0x1, 0xf2,0x38,0x82, +0x3c,0x69,0x38,0x82,0x24,0xb2,0xc4,0xff,0xe3,0xff,0xc4,0xff,0x16,0x7f,0x3e,0x18, +0xe0,0xb, 0x3c,0x19,0xe1,0xff,0x14,0x7f,0xe0,0x80,0x8f,0x9c,0x17,0x8, 0x37,0xbe, +0x0, 0x8d,0xc7,0x7f,0xe4,0x8, 0x34,0x21,0xe4,0xf, 0x37,0xa1,0xe3,0xff,0xc7,0x7f, +0xe4,0x8, 0x34,0x40,0xe4,0xf, 0x37,0xc0,0x27,0x15,0xe2,0xd, 0x3c,0x4f,0xe0,0x43, +0x3e,0x9d,0xe2,0x0, 0xce,0x80,0x3, 0x6e,0x34,0x21,0xc7,0x7f,0xe4,0x20,0xcc,0x21, +0xe4,0xf, 0x37,0xa1,0xe3,0xff,0xc7,0x7f,0xe3,0xff,0xc4,0x7f,0xe4,0xf, 0x37,0xc0, +0x2f,0x6d,0x3d,0xfc,0x1, 0xda,0x38,0x82,0xe1,0xff,0x14,0x7f,0x38,0x82,0xe0,0x2, +0x1f,0x7, 0x9f,0x88,0x9e,0x8e,0x3f,0xfd,0x2, 0x84,0x17,0x80,0xb7,0x88,0x38,0x82, +0x9f,0xe, 0x3f,0xae,0xb7,0x88,0x38,0x82,0xe0,0xf, 0x3c,0x2a,0x3e,0xef,0xe2,0x1, +0xc6,0xff,0xf0,0x43,0x3a,0x8d,0xe0,0x13,0x3c,0x1a,0xe0,0x2, 0x1e,0x3f,0xf8,0x40, +0x3a,0xf3,0xf0,0x0, 0x80,0xec,0xf0,0x0, 0x83,0x7c,0xe0,0x0, 0x2, 0x59,0xe0,0xf, +0x34,0x21,0xe0,0x12,0x3c,0xaa,0x3f,0xad,0xe0,0x1, 0x1e,0xd1,0xe8,0x40,0x3f,0x62, +0xe2,0x1, 0xc7,0x7f,0xe0,0x12,0x34,0xa1,0x3d,0x19,0xf0,0x0, 0xa3,0x8d,0x3c,0xef, +0xf0,0x0, 0x88,0x5c,0xf0,0x43,0x3a,0xe, 0xe2,0x1, 0xc4,0xff,0xe0,0x0, 0x14,0x0, +0xf0,0x12,0x39,0x2e,0xf2,0x0, 0xca,0x80,0xe0,0x43,0x3f,0x89,0xe8,0x40,0x3d,0xe5, +0xe0,0x6b,0x3c,0x2f,0xf8,0x40,0x38,0xf5,0xe0,0x6b,0x3d,0x2f,0xf0,0x40,0x3a,0x7a, +0x2, 0x23,0xe8,0x40,0x3e,0xe2,0xe8,0xb, 0x3d,0xb0,0xe2,0x1, 0xc6,0xff,0xe8,0x40, +0x3f,0x64,0x0, 0x0, 0xe2,0x0, 0xcf,0x0, 0xe0,0x43,0x3e,0xd, 0x3f,0xee,0xe0,0x6f, +0x3c,0x2c,0xf0,0x40,0x3b,0x7e,0xc7,0x1, 0xe0,0x6f,0x3d,0x2c,0x3f,0x9b,0x37,0xa1, +0xe8,0xf, 0x3f,0x97,0xe0,0x43,0x3f,0xe, 0x97,0x8f,0x3f,0x7a,0xc6,0xff,0x3c,0x1f, +0xe2,0x1, 0xc6,0xff,0x5, 0x68,0xf0,0x0, 0xc2,0x81,0xf8,0x43,0x3a,0x85,0xf8,0x40, +0x3a,0xf3,0xc4,0xff,0xe2,0x1, 0xc4,0xff,0x5, 0x46,0x38,0x82,0x14,0x0, 0x38,0x82, +0xe0,0x0, 0x1f,0x8e,0x34,0x21,0x3f,0x98,0x3d,0x69,0x8c,0xf, 0x8c,0x9f,0xe2,0x1, +0xc5,0x7f,0xe7,0xff,0x0, 0x8b,0x8, 0xb1,0xc0,0x68,0xe4,0x0, 0x17,0x80,0xe0,0x2, +0x1e,0xbf,0x3c,0x1f,0x17,0x0, 0x86,0x5d,0x3c,0x9f,0x86,0xcd,0x3d,0x1f,0xe0,0xf, +0x34,0x41,0x7f,0x1, 0x34,0xc1,0x7f,0x6, 0x35,0x41,0x7f,0x85,0xe2,0x0, 0x7c,0x4, +0x17,0x90,0x7f,0x2, 0x6e,0x5, 0x6e,0x84,0x7c,0x83,0x7d,0x4, 0x77,0x8c,0xe0,0x4, +0xd6,0x70,0xc0,0x18,0x8, 0xe1,0x8, 0xb1,0xc0,0x68,0xe0,0x2, 0x1e,0xbf,0xe4,0x0, +0x17,0x80,0x17,0x0, 0x86,0x5d,0x3c,0x1f,0x86,0xcd,0x3c,0x9f,0x3d,0x1f,0x7f,0x1, +0xe0,0xf, 0x34,0x41,0x34,0xc1,0x35,0x41,0xe2,0x0, 0x7c,0x4, 0x7f,0x2, 0x7f,0x6, +0x6e,0x5, 0x6e,0x84,0x7c,0x83,0x7d,0x4, 0x7f,0x85,0x6d,0x87,0xe0,0x4, 0xd6,0x51, +0xc0,0x18,0x8, 0xe1,0x8, 0xb1,0xc0,0x68,0xe4,0x0, 0x17,0x80,0xe0,0x2, 0x1e,0xbf, +0x3c,0x1f,0x17,0x0, 0x86,0x5d,0x3c,0x9f,0x86,0xcd,0xe0,0xf, 0x34,0x41,0x7f,0x1, +0x34,0xc1,0x7f,0x6, 0xe2,0x0, 0x7c,0x4, 0x7f,0x85,0x17,0xa0,0x7f,0x2, 0x7f,0x4, +0x6e,0x5, 0x6e,0x84,0x7c,0x83,0x77,0x8c,0xe0,0x4, 0xd6,0x33,0xc0,0x18,0x8, 0xe1, +0x8, 0xb1,0xe1,0xff,0xc0,0x18,0xe0,0x1, 0x1f,0x2d,0xe0,0x2, 0x1e,0xbf,0xe4,0x0, +0x17,0x80,0xe2,0x0, 0x7d,0xae,0x3c,0x1f,0xf0,0x0, 0x93,0x2e,0xf0,0x0, 0x93,0xbe, +0x95,0x7e,0x3f,0x9b,0xe0,0x1, 0x95,0x8e,0xe0,0x1, 0x1f,0x47,0xf0,0x0, 0x82,0x4d, +0xf0,0x0, 0x82,0xdd,0x16,0x1, 0xe0,0xd, 0x34,0x41,0x37,0xc1,0x37,0x41,0xe2,0x0, +0x7c,0x14,0xe2,0x0, 0x7c,0x84,0x7e,0x86,0x7f,0x88,0x7f,0x7, 0x75,0x95,0x6e,0x16, +0x6e,0x17,0xf0,0x0, 0x6a,0x15,0xf0,0x0, 0x6a,0x94,0xf0,0x0, 0x73,0x12,0xf0,0x0, +0x73,0x93,0x75,0x14,0xe0,0x4, 0xd6,0x5d,0x5c,0x7, 0x5f,0x5, 0xe0,0x43,0x3f,0x98, +0xe2,0x0, 0xcf,0x80,0xe0,0x41,0x3e,0x4f,0xe0,0x43,0x3e,0x9e,0x3d,0xe8,0xe0,0x6b, +0x3d,0x2c,0xe2,0x0, 0xce,0x80,0x5, 0x13,0x3d,0xfe,0x5, 0xd, 0xe0,0x41,0x3f,0x48, +0xe2,0x0, 0xcf,0x80,0x3f,0xee,0xe3,0xff,0xc7,0xff,0xe0,0x68,0x3d,0x2f,0xe0,0x0, +0xc0,0x68,0x8, 0xe1,0x3c,0x6e,0xe0,0x0, 0xc0,0x68,0x8, 0xe1,0xe0,0x41,0x3e,0xcd, +0x3d,0xfd,0x2, 0x6d,0xe0,0x41,0x3c,0x4e,0xe3,0xff,0xc4,0x7f,0xe0,0x0, 0xc0,0x68, +0x8, 0xe1,0x8, 0xb1,0xc0,0x68,0xe0,0x2, 0x1f,0x3f,0xe4,0x0, 0x17,0x80,0x16,0x80, +0x3c,0x9f,0xf0,0x0, 0x81,0xde,0xf0,0x0, 0x82,0x4e,0x3f,0x98,0xe0,0x16,0x35,0x41, +0xe0,0x17,0x35,0x42,0x17,0x1, 0x7e,0x81,0xe0,0x15,0x34,0xc1,0x7e,0x86,0x3f,0x5a, +0x37,0xc1,0xf2,0x0, 0xc3,0x1, 0xf2,0x0, 0xc3,0x81,0x3d,0x6c,0x3c,0xeb,0xe2,0x0, +0x7c,0x4, 0x7e,0x82,0x7e,0x84,0xf0,0x0, 0x69,0x85,0xf0,0x0, 0x6a,0x4, 0xf0,0x0, +0x7a,0x83,0x7f,0x85,0x6f,0x7, 0xf0,0x0, 0x6b,0x1a,0xf0,0x0, 0x6b,0x9b,0xe0,0x4, +0xd8,0x4e,0xc0,0x18,0x8, 0xe1,0x8, 0xb1,0xc0,0x68,0xe4,0x0, 0x17,0x80,0xe0,0x2, +0x1f,0x3f,0x3c,0x1f,0xf0,0x0, 0x13,0x80,0x3c,0x9f,0xf0,0x0, 0x82,0xde,0xf0,0x0, +0x83,0x4e,0x3d,0x1f,0xe0,0xe, 0x34,0x41,0xe0,0xf, 0x36,0x41,0x36,0x42,0xf0,0x0, +0x7b,0x81,0xe0,0xd, 0x34,0xc1,0xf0,0x0, 0x7b,0x86,0x35,0x41,0xe2,0x0, 0xc7,0x81, +0xe2,0x0, 0xc6,0x1, 0x7f,0x5, 0x3c,0xeb,0x17,0x1, 0xe2,0x0, 0x7c,0x4, 0xf0,0x0, +0x7b,0x82,0xf0,0x0, 0x6a,0x85,0xf0,0x0, 0x6b,0x4, 0x7e,0x83,0x7d,0x4, 0x6f,0x7, +0x6f,0x9a,0x6e,0x1b,0xe0,0x4, 0xd7,0xd6,0xc0,0x18,0x8, 0xe1,0x8, 0xb1,0xc0,0x68, +0xe0,0x2, 0x1f,0x3f,0xe4,0x0, 0x17,0x80,0x16,0x0, 0x3c,0x1f,0xf0,0x0, 0x83,0x5e, +0xf0,0x0, 0x83,0xce,0x3c,0x9f,0x3d,0x1f,0xe0,0xe, 0x35,0xc1,0xe0,0xf, 0x35,0xc2, +0x7e,0x1, 0xe0,0xd, 0x34,0x41,0x7e,0x6, 0x34,0xc1,0x35,0x41,0xe2,0x0, 0xc5,0x81, +0xe2,0x0, 0xc7,0x1, 0xe2,0x0, 0xc7,0x81,0xe2,0x0, 0x7c,0x4, 0x7e,0x2, 0xf0,0x0, +0x6b,0x5, 0xf0,0x0, 0x6b,0x84,0x7c,0x83,0x7d,0x4, 0x7e,0x85,0x6d,0x87,0x6f,0x1a, +0x6f,0x9b,0xe0,0x4, 0xd8,0x55,0xc0,0x18,0x8, 0xe1,0x8, 0xb1,0xc0,0x68,0xe0,0x2, +0x1f,0x3f,0xe4,0x0, 0x17,0x80,0x16,0x80,0xf0,0x0, 0x83,0xde,0x85,0xce,0x3c,0x9f, +0x3c,0x1f,0xe0,0xe, 0x35,0x41,0xe0,0xf, 0x35,0x42,0x16,0x1, 0x7e,0x81,0x3e,0x5a, +0x34,0xc1,0x34,0x41,0xe2,0x0, 0xc7,0x1, 0xe2,0x0, 0xc7,0x81,0x7e,0x82,0x35,0x43, +0x7e,0x84,0xf0,0x0, 0x6b,0x85,0x6d,0x84,0x7c,0x83,0x7c,0x5, 0x6e,0x7, 0x6f,0x1a, +0x6f,0x9b,0x2d,0x9, 0x14,0x4, 0x17,0xa0,0x3c,0x10,0x77,0x8c,0xe0,0x4, 0xd7,0xf5, +0xc0,0x18,0x8, 0xe1,0x14,0x4, 0x17,0x90,0x3c,0x10,0x77,0x8c,0xe0,0x4, 0xd7,0xed, +0xc0,0x18,0x8, 0xe1,0x8, 0xb2,0xc0,0x70,0xf0,0x1, 0x1b,0xc6,0xf0,0x1, 0x1a,0xc5, +0xe0,0x1, 0x19,0x44,0xe4,0x0, 0x17,0x80,0xe0,0x1, 0x1f,0x4d,0xf0,0xc, 0x3a,0x9f, +0xf0,0xd, 0x3b,0x9f,0xe8,0x0, 0xb4,0x5, 0x3f,0x92,0xf0,0x8d,0x12,0x86,0xf0,0x0, +0x13,0x1, 0xf0,0x15,0x3a,0x9e,0x36,0x41,0x36,0xc1,0x37,0xc1,0xe0,0x8d,0xc7,0x2e, +0xe2,0x0, 0x7c,0x4, 0x7e,0x2, 0x7e,0x83,0x7f,0x84,0xf0,0x0, 0x6b,0x4, 0xf0,0x0, +0x6b,0x5, 0xe8,0x0, 0xb4,0x85,0xe8,0x0, 0xb5,0x7, 0xb5,0x8e,0xe0,0x4, 0xd5,0xc2, +0x9c,0x2, 0xc0,0x10,0x9, 0x61,0x0, 0x0, 0xe0,0x2, 0x1f,0xff,0x8f,0x8f,0xe2,0x0, +0xcf,0x83,0x1, 0x3, 0x14,0x1, 0x38,0x82,0x8, 0xb2,0x39,0x68,0x3c,0x69,0xd9,0xd4, +0xe0,0x1, 0x1f,0xe0,0xe0,0x1, 0x8f,0x1f,0xe2,0x0, 0xcf,0x5, 0x24,0x7, 0x1, 0x8, +0xe0,0x1, 0x8c,0x1f,0xe0,0x28,0x39,0x8, 0x9, 0x61,0x1, 0xfb,0x0, 0xfc,0xe2,0x1, +0xc1,0x7d,0x14,0x0, 0x29,0x7a,0xea,0xf, 0x7f,0xf6,0x8e,0xf, 0x17,0x1, 0x3f,0x1c, +0xe0,0x1, 0x1e,0xa4,0xe2,0x1, 0xc7,0x7f,0xe2,0x0, 0xcf,0x3, 0x3e,0x9c,0x8c,0xd, +0x2, 0x83,0xaf,0xf, 0x9, 0x61,0xa9,0xf, 0x9, 0x61,0xe0,0x2, 0x1f,0xe9,0xe4,0x0, +0xc4,0x8e,0xe0,0xe, 0x3f,0x99,0x8f,0x1e,0x27,0x5, 0x17,0x1, 0xe0,0x2e,0x3c,0xe, +0x2f,0xd, 0x3f,0x99,0x8f,0xbf,0x27,0x89,0x17,0x84,0xe0,0x28,0x3c,0xf, 0x24,0x5, +0xe0,0x1, 0x1f,0xcf,0x17,0x0, 0xaf,0xf, 0x38,0x82,0xe0,0x1, 0x1f,0x4f,0x16,0x80, +0xae,0x8e,0x0, 0xf0,0x8, 0xb5,0xe0,0x2, 0x1f,0x8d,0x8a,0xf, 0xef,0xfe,0xd5,0xc4, +0x24,0x7e,0xe0,0x0, 0x19,0x2b,0xe0,0x2, 0x8f,0x82,0xe0,0xe, 0x39,0x1f,0xe0,0x6, +0x8a,0x8e,0x8e,0xce,0x2e,0xa3,0xe0,0x1, 0x19,0xcf,0x8f,0x83,0xe2,0x0, 0xcf,0x81, +0xe0,0x0, 0x1, 0x3d,0xe0,0x2, 0x1f,0xff,0x8f,0x8f,0xe2,0x0, 0xcf,0x83,0x1, 0x36, +0xe0,0x2, 0x8f,0x2, 0xe0,0x2, 0x8f,0x92,0x3f,0x7f,0x4, 0x8b,0xef,0xff,0xd0,0x75, +0xac,0x3, 0xe0,0x1, 0xd8,0xd3,0xe0,0x1, 0xd8,0x56,0xd9,0xe3,0xef,0xfe,0xd5,0x28, +0xd9,0x26,0xa, 0xa1,0xe7,0xf2,0x0, 0xb0,0x3f,0x2, 0x8e,0xce,0xe0,0x1, 0x1e,0x60, +0xc6,0xff,0xe0,0x5, 0xae,0xbc,0x8f,0x4e,0xe0,0x1, 0x19,0xcf,0xe2,0x0, 0xcf,0x1, +0x1, 0x2, 0x17,0x0, 0xaf,0x3, 0x3f,0x92,0x17,0x0, 0xaf,0x4f,0x3c,0x65,0xe0,0x1, +0x8a,0x1f,0x3c,0xe4,0xe0,0x4, 0xdd,0xe4,0xe0,0x2, 0x8f,0x82,0xc7,0x81,0xe0,0x2, +0xaf,0x82,0x8f,0x83,0xe2,0x0, 0xcf,0x81,0x1, 0xc6,0xe0,0x2, 0x1f,0xa8,0x8f,0x8f, +0x27,0xc8,0xe2,0x0, 0xca,0x85,0x1, 0x1f,0x17,0x5, 0x3f,0x34,0xe0,0x2, 0x1f,0xed, +0x3f,0x9e,0x8c,0xcf,0xe0,0x1, 0x1f,0xc3,0xa4,0xf, 0xef,0xfe,0xd6,0x69,0x3c,0xe4, +0x3c,0x65,0xdf,0x4b,0xe7,0xff,0x24,0x36,0xe0,0x4, 0xdd,0xf4,0xe0,0x1, 0x1f,0xce, +0xaa,0x8f,0xe0,0x1, 0x1f,0xe0,0xe0,0x5, 0xaa,0xcf,0xe0,0x2, 0x1f,0xce,0xaa,0xf, +0xe7,0xff,0x0, 0xa8,0x17,0x80,0xaf,0x83,0xe7,0xff,0x0, 0xa4,0x8, 0xb3,0xe0,0x0, +0x19,0xab,0x11,0x0, 0xdf,0x80,0xc1,0x1, 0xe0,0x2, 0x8f,0x93,0xe2,0x1, 0xc1,0x7f, +0x39,0x7f,0x4, 0xf9,0xe0,0x1, 0x1f,0xe0,0xe0,0x5, 0x8c,0x4f,0xe0,0x2, 0x1f,0xce, +0x8c,0x8f,0x9, 0xa1,0xe0,0x9b,0x0, 0x9c,0xe0,0x1, 0x1c,0xaa,0x15,0x20,0xe0,0x22, +0x14,0x40,0xe7,0xdb,0x0, 0xd7,0xe0,0x1, 0x1f,0x23,0xe0,0x1, 0x1f,0xe0,0xe0,0xe, +0x85,0x9e,0x16,0x0, 0xae,0xf, 0x15,0x2, 0xad,0xaf,0xe0,0x2, 0x1e,0xa8,0xe0,0xe, +0x85,0xae,0x8e,0x8d,0xad,0xbf,0x3d,0x5d,0xe0,0xe, 0x85,0xde,0xe0,0x3, 0xad,0xef, +0x2d,0x2d,0xe0,0x10,0x86,0x5e,0xe0,0x10,0x85,0xee,0x3e,0x1b,0xe0,0x2, 0xae,0x6f, +0xe0,0xe, 0x86,0x6e,0xe0,0x3, 0xae,0x7f,0x16,0x3f,0x3e,0x5d,0xe0,0x11,0x8e,0x8e, +0xe0,0x10,0x8d,0xfe,0x36,0xa6,0x3e,0xcc,0xe0,0xc, 0x35,0xa7,0x3e,0xcc,0xe0,0x4, +0xae,0xef,0x2d,0x9b,0xe0,0xd, 0x86,0x5e,0xe0,0xd, 0x86,0xfe,0xe0,0xa, 0xae,0xf, +0xe0,0xa, 0xae,0x9f,0xe0,0x0, 0x2d,0x72,0xe0,0xd, 0x85,0xee,0xe0,0xe, 0x87,0xe, +0xe0,0xa, 0xad,0xaf,0xe0,0xa, 0xaf,0x3f,0x0, 0x97,0xe0,0x10,0x85,0xde,0xe0,0x2, +0xad,0xef,0xe0,0x3, 0xae,0x7f,0x0, 0xd9,0xe0,0xd, 0x86,0x6e,0xe0,0xe, 0x86,0x8e, +0xe0,0xa, 0xae,0xf, 0xe0,0xa, 0xae,0x9f,0xe0,0x0, 0x25,0x4e,0x17,0x0, 0xe0,0xa, +0xaf,0x2f,0xe0,0xa, 0xaf,0x3f,0x17,0x0, 0xe0,0x1, 0x1e,0x9c,0xe0,0x2, 0x1e,0x9, +0x86,0x8d,0x15,0x81,0xae,0xdf,0xaf,0x6f,0xe0,0x1, 0xaf,0x3f,0xe0,0x2, 0xaf,0xf, +0xe0,0x0, 0x1e,0xb7,0xe0,0x1, 0xaf,0x7f,0x86,0x8d,0xe0,0x1, 0xae,0xcf,0xe0,0x1, +0xaf,0x5f,0x86,0xbc,0xe0,0x1, 0xaf,0x6f,0x87,0x4c,0xe0,0x4, 0xae,0x8f,0xe0,0x4, +0xaf,0x1f,0xe0,0x1, 0x1f,0x1b,0x86,0x5c,0x8e,0x8e,0xe0,0x1, 0x1f,0x1a,0xe0,0x4, +0xae,0x2f,0x36,0xa8,0xe0,0x2, 0x1e,0x4d,0x8f,0xe, 0x86,0x1c,0x3f,0x4d,0xe0,0x2, +0x1e,0xfd,0xe0,0x5, 0xae,0x1f,0xe0,0x6, 0xad,0x8f,0x8e,0x8d,0xe0,0x5, 0xb7,0x5f, +0x26,0xa2,0xe0,0x2, 0x1f,0x73,0xa7,0xe, 0xa7,0x4e,0xe2,0x0, 0xc7,0x1, 0x27,0x1b, +0x16,0x85,0xe0,0x1, 0xae,0x9f,0x17,0x0, 0xe0,0x2, 0xaf,0x5f,0xe0,0x2, 0xaf,0x1f, +0xaf,0x4f,0x38,0x82,0xe0,0xd, 0x85,0xde,0xe0,0xd, 0x87,0x7e,0xe0,0xa, 0xad,0xaf, +0xe0,0xa, 0xaf,0x3f,0xe7,0xff,0x0, 0xb1,0xe0,0xa, 0xad,0xaf,0xe0,0xa, 0xad,0xbf, +0xe7,0xff,0x0, 0xab,0x16,0x0, 0xe0,0x1, 0xae,0x1f,0x17,0x0, 0xe0,0x2, 0xaf,0x5f, +0xe0,0x2, 0xaf,0x1f,0xaf,0x4f,0x38,0x82,0xe0,0x2, 0x1f,0x39,0x34,0xa6,0xf0,0x2, +0x1b,0xb8,0x3c,0x19,0x17,0x80,0xb4,0xe, 0x17,0x0, 0x3d,0xef,0xe8,0x0, 0xaf,0x7, +0x3e,0xef,0x15,0x1, 0xe0,0xe, 0x34,0x1f,0x16,0x1, 0xe2,0x0, 0xc7,0x1, 0xc7,0x81, +0x3e,0x1d,0x27,0x5, 0x3e,0xec,0xe2,0x1, 0xc6,0xff,0x3d,0xea,0xe2,0x0, 0xcf,0x8c, +0x1, 0xf2,0x2d,0x82,0x38,0x82,0xe8,0x0, 0xae,0x87,0x38,0x82,0x8, 0xb1,0xf0,0x2, +0x1b,0xbf,0xe0,0x1, 0x1c,0x99,0xe8,0x40,0x3c,0x67,0xe0,0x19,0x15,0x1c,0xe0,0x5, +0xde,0x73,0xe0,0x2, 0x1f,0xa8,0xf0,0x40,0x3b,0xe8,0x87,0x8f,0xe2,0x0, 0xc7,0x82, +0x2f,0xbe,0xe0,0x3, 0x8e,0x98,0xe0,0x3, 0x8f,0x88,0x97,0x58,0x96,0x68,0x3f,0x9d, +0xe0,0x2, 0x1e,0xb7,0x3f,0x1c,0xb7,0xd, 0xe0,0x2, 0x1f,0x36,0xb7,0x8e,0x17,0x80, +0xe0,0x1, 0x1e,0xa3,0xe0,0x2, 0x1c,0x38,0xe0,0xe, 0x8f,0x6d,0xe0,0xe, 0x8d,0xdd, +0x37,0x26,0x3d,0x9e,0xe0,0x2, 0x1f,0x39,0x3d,0x6f,0xb5,0x8e,0x17,0x0, 0xaf,0x8, +0x3e,0xef,0x14,0x81,0xe0,0xe, 0x35,0x9f,0x16,0x1, 0xe2,0x0, 0xc7,0x1, 0xc7,0x81, +0x3e,0x1d,0x27,0x5, 0x3e,0xec,0xe2,0x1, 0xc6,0xff,0x3d,0x69,0xe2,0x0, 0xcf,0x8c, +0x1, 0xf2,0x2d,0x1f,0xe0,0x1, 0x1f,0x9d,0x8f,0x8f,0x27,0x93,0xe8,0x0, 0x8f,0xc7, +0xe0,0x2, 0x1f,0x35,0x37,0xa6,0xc7,0xff,0xb7,0x8e,0x8, 0xe1,0xe0,0x2, 0x1f,0xb7, +0x96,0xd8,0xe0,0x3, 0x8f,0x8, 0xb6,0x8f,0xe0,0x2, 0x1f,0xb6,0xb7,0xf, 0x0, 0xc8, +0xe8,0x0, 0x8f,0xd7,0xe0,0x2, 0x1f,0x35,0x37,0xa6,0xc7,0xff,0xb7,0x8e,0x8, 0xe1, +0xae,0x88,0x0, 0xe1,0x8, 0xb3,0xe0,0x1, 0x19,0x4d,0xe0,0x1, 0x1f,0xc2,0xe0,0xc, +0x11,0xd2,0xe0,0x8c,0x16,0xfc,0xe0,0x8d,0x17,0x0, 0x3e,0x92,0x3f,0x12,0x3d,0x63, +0x3c,0x6f,0x14,0x80,0xbf,0x8d,0xb9,0xe, 0xe0,0x5, 0xde,0x40,0x3d,0x63,0x14,0x80, +0x3c,0x62,0xe0,0x5, 0xde,0x3b,0xe0,0x8f,0xc1,0x46,0x17,0x80,0xaf,0x82,0x9, 0xe1, +0x8, 0xb2,0xe0,0x1, 0x1f,0xa3,0xe0,0x1a,0x17,0x24,0x3f,0x1f,0xe0,0x1a,0x16,0x25, +0xe0,0x1a,0x15,0x2a,0x8e,0x8e,0x3e,0x1f,0x3d,0x1f,0xe0,0x1a,0x17,0x26,0x8d,0x8c, +0x8c,0xa, 0x3f,0x1f,0xe0,0x1a,0x16,0x27,0xe0,0x1a,0x14,0xab,0xe0,0x1a,0x15,0x2c, +0x8f,0xe, 0x3c,0x9f,0x3d,0x1f,0x3e,0x1f,0x36,0xa8,0xe0,0x2, 0x19,0x5, 0x8e,0xc, +0x3d,0xcd,0xf0,0x1a,0x13,0xad,0x8e,0x89,0x8c,0x8a,0xe0,0x1a,0x15,0x34,0xf0,0x17, +0x3b,0x9f,0x3d,0x1f,0x37,0x28,0x35,0xc5,0x8d,0xa, 0x3e,0x4e,0x34,0x28,0xe8,0x0, +0x8f,0x7, 0xe0,0x1a,0xc7,0xb5,0xad,0x82,0x36,0x45,0x8f,0x8f,0xe0,0xb, 0x34,0xa8, +0x3e,0xc8,0xae,0x12,0x36,0xc5,0xe0,0xc, 0x35,0x28,0x3f,0x4b,0xae,0xa2,0x37,0x45, +0x3f,0xcc,0xe0,0x1, 0x1c,0x98,0xe0,0x2, 0x1c,0x4, 0xaf,0x32,0x37,0xc5,0xe0,0x0, +0x15,0x69,0xaf,0xd2,0xe0,0x5, 0xdd,0xb0,0xe0,0x4, 0x8f,0xe2,0xe0,0x1, 0x1c,0xaa, +0xe0,0x41,0x3f,0x8f,0x15,0x20,0xe0,0x22,0x14,0x40,0xe0,0x6, 0xaf,0xc2,0xef,0xfe, +0xdc,0x21,0x9, 0x21,0xe0,0x2f,0x0, 0xed,0x8, 0xb6,0xe0,0x1, 0x1f,0xa3,0xe0,0x1a, +0x15,0xa8,0xe0,0x1a,0x16,0x2e,0xe0,0x1a,0x16,0xb2,0x3d,0x9f,0x3e,0x1f,0x3e,0x9f, +0xe0,0x1a,0x14,0x2a,0xe0,0x1a,0x14,0xac,0xe0,0x1a,0x15,0x30,0x8a,0x8b,0x8a,0xc, +0x89,0x8d,0x3c,0x1f,0x3c,0x9f,0x3d,0x1f,0xe0,0x1a,0x11,0x24,0xe0,0x1a,0x10,0xa6, +0xe0,0x1a,0x15,0xa9,0xe0,0x1a,0x16,0x2f,0xe0,0x1a,0x16,0xb3,0xf0,0x1a,0x13,0xa5, +0xe0,0x1a,0x13,0x27,0xf0,0x0, 0x89,0x88,0xf0,0x0, 0x8a,0x9, 0xf0,0x0, 0x8a,0x8a, +0xf0,0x17,0x3b,0x9f,0x3b,0x1f,0x39,0x1f,0x38,0x9f,0x3d,0x9f,0x3e,0x1f,0x3e,0x9f, +0xe0,0x1a,0x14,0x2b,0xe0,0x1a,0x14,0xad,0xe0,0x1a,0x15,0x31,0xf8,0x0, 0x8b,0x7, +0x89,0x2, 0xf0,0x0, 0x8b,0x86,0x88,0x81,0x8d,0x8b,0x8e,0xc, 0x8e,0x8d,0x3c,0x1f, +0x3c,0x9f,0x3d,0x1f,0xe0,0x1a,0x13,0x1a,0xf0,0x1a,0x10,0x1c,0xf0,0x1a,0x10,0xe4, +0xf0,0x1a,0x11,0x1d,0x8c,0x8, 0x8c,0x89,0x8d,0xa, 0x3b,0x1f,0xf0,0x10,0x38,0x1f, +0xf0,0x11,0x38,0x9f,0xf0,0x12,0x39,0x1f,0x32,0xa8,0x32,0x28,0x31,0xa8,0xe0,0x1, +0x1f,0x2d,0x83,0x6, 0xf8,0x0, 0x80,0x0, 0xf8,0x0, 0x88,0x81,0xf8,0x0, 0x81,0x2, +0x31,0x28,0x30,0xa8,0x3d,0xc5,0xf0,0x13,0x31,0xa8,0xf0,0x14,0x32,0x28,0x3e,0x44, +0xf0,0x15,0x32,0xa8,0x3e,0xc3,0xf0,0x16,0x3b,0x42,0xf0,0x17,0x3b,0xc1,0xe0,0x41, +0x3d,0xcb,0xe0,0x41,0x3e,0x4c,0xe0,0x41,0x3e,0xcd,0xe8,0x8, 0x3c,0x43,0xe8,0x9, +0x3c,0xc4,0xe8,0xa, 0x3d,0x45,0xe0,0x1a,0x12,0x1e,0xe0,0x1a,0x11,0xb4,0x3a,0x1f, +0x39,0x9f,0xb6,0x6e,0xe0,0x1a,0x11,0x1f,0xe0,0x1, 0xb6,0x8e,0x39,0x1f,0xab,0xe, +0xe0,0x1a,0xc7,0xb5,0xf0,0x0, 0xa8,0x1e,0x10,0x80,0xf0,0x0, 0xb3,0x1e,0xf0,0x0, +0xb3,0xae,0xb5,0xbe,0xb4,0x4e,0xb4,0xde,0xb5,0x7e,0xf0,0x2, 0xa8,0xce,0xf0,0x2, +0xa9,0x5e,0x8d,0x84,0x8e,0x3, 0x8e,0x82,0x8f,0x8f,0x35,0xa8,0x36,0x28,0x3e,0xcb, +0x3f,0xcc,0xe0,0x1, 0xb6,0xbe,0xe0,0x1, 0xb7,0x9e,0xe0,0x3, 0xa8,0x8e,0xe0,0x3, +0xa8,0x9e,0xb, 0x61,0x8, 0xb1,0xe0,0x0, 0x1c,0xe, 0xe0,0x3, 0x15,0x40,0x14,0x80, +0xe0,0x5, 0xdd,0x24,0xe0,0x1, 0x1f,0x97,0xe0,0x0, 0x1c,0x9, 0x8d,0xf, 0xe0,0x1, +0x14,0xff,0xe4,0x0, 0xc5,0xa, 0x8, 0xa1,0xe0,0xba,0x0, 0x98,0x8, 0xb2,0xe0,0x1, +0x1f,0x9c,0xe0,0x2, 0x1c,0x21,0x89,0xf, 0xe0,0x1, 0x14,0xff,0xe4,0x0, 0xc1,0xa, +0x3d,0x62,0xe0,0x5, 0xdd,0xb, 0xe0,0x2, 0x1c,0x1d,0x3d,0x62,0xe0,0x1, 0x14,0xff, +0xe0,0x5, 0xdd,0x4, 0xe0,0x2, 0x1c,0x1c,0x3d,0x62,0xe0,0x1, 0x14,0xff,0xe0,0x5, +0xdc,0xfd,0xe0,0x2, 0x1c,0x1b,0xe0,0x3, 0xd3,0xa3,0xe0,0x2, 0x1e,0xa0,0x17,0x0, +0x3f,0xed,0xe1,0x80,0xb7,0x1f,0xc7,0x82,0xb7,0x1d,0xe1,0x80,0xb7,0x1f,0xe1,0x80, +0xb7,0x1f,0xe1,0x80,0xb7,0x1f,0xe1,0x80,0xb7,0x1f,0xe1,0x80,0xb7,0x1f,0xe1,0x80, +0xb7,0x1f,0xb7,0xf, 0x9, 0x61,0xe0,0x1, 0x1f,0xa3,0xe0,0x2, 0x1e,0xc3,0xe0,0x1b, +0x16,0x61,0x3e,0x1f,0x97,0x5d,0xe0,0x1b,0x15,0x5d,0xe0,0x1b,0x15,0xdf,0x8c,0x8c, +0x3d,0x1f,0x3d,0x9f,0xf7,0xef,0x13,0x7f,0xe0,0x1b,0x16,0x62,0xf0,0x0, 0x8b,0x8a, +0x8c,0xb, 0x3e,0x1f,0xe8,0xe, 0x3f,0x56,0xe0,0x1b,0x15,0x5e,0xe0,0x1b,0x15,0xe0, +0xf0,0x1b,0x13,0x63,0x8e,0xc, 0xf0,0x16,0x3b,0x1f,0x3d,0x1f,0x3d,0x9f,0xf7,0xf7, +0x12,0xff,0xe0,0x1b,0xc7,0xe4,0x8d,0xa, 0x8d,0x8b,0xe8,0xe, 0x3f,0x55,0x34,0xa8, +0xf8,0x0, 0x82,0x86,0xf0,0x0, 0x83,0xf, 0xe7,0xfe,0x17,0xff,0x3f,0xde,0xf0,0x17, +0x33,0xa8,0xe0,0xe, 0x3e,0x49,0x34,0x28,0xe7,0xff,0x16,0x3f,0xe8,0xa, 0x3d,0x47, +0x3d,0xc8,0x3f,0xdc,0xb5,0x1d,0xb5,0xad,0xb7,0x3d,0xf0,0x1, 0xaa,0x8d,0xf0,0x1, +0xab,0x1d,0xb7,0xdd,0x38,0x82,0x8, 0xb1,0xe0,0x1, 0x1f,0x23,0xe0,0x1a,0x16,0x9, +0xe0,0x1a,0x16,0x8e,0x3e,0x1e,0x3e,0x9e,0xe0,0x2, 0x1f,0xed,0xf0,0x0, 0x80,0x2c, +0xf0,0x0, 0x80,0xbc,0xf0,0x0, 0x81,0x4c,0xf0,0x0, 0x81,0x8d,0xe0,0x1a,0xc7,0x13, +0x85,0x9c,0xf0,0x0, 0x82,0x1d,0xf0,0x0, 0x82,0xad,0xf0,0x0, 0x83,0x3d,0xf0,0x0, +0x83,0xcd,0x16,0x85,0x3e,0x9f,0xf0,0x0, 0xa9,0xdf,0xf0,0x0, 0xa9,0x4f,0x84,0xe, +0xf0,0x0, 0xa8,0xbf,0xf0,0x0, 0xa8,0x2f,0xf0,0x0, 0xab,0xcd,0xf0,0x0, 0xab,0x3d, +0x80,0x8c,0x84,0x9e,0x85,0x2e,0x86,0x4e,0xf0,0x0, 0xaa,0xad,0xad,0x9f,0xf0,0x0, +0xaa,0x1d,0x85,0xbe,0x17,0xa, 0x3f,0x1f,0xe0,0x1, 0xac,0x2f,0xa8,0x8f,0xac,0x9e, +0xad,0x2e,0xad,0xbe,0xae,0x4e,0x8, 0xe1,0x8, 0xb4,0xdc,0xc6,0xdd,0xa0,0xde,0x3, +0xe0,0x1, 0x1f,0xa3,0xe0,0x1a,0x15,0x89,0x3d,0x9f,0xe0,0x2, 0x1f,0x6d,0x82,0xb, +0xe0,0x1b,0x15,0x5d,0x3d,0x1f,0xe0,0x1a,0x16,0xe, 0x8c,0x8a,0x3e,0x1f,0x84,0x1b, +0xaa,0xe, 0xe0,0x1a,0x16,0x93,0x82,0x3b,0xf0,0x0, 0x82,0xab,0xf0,0x0, 0x83,0x4b, +0xf0,0x0, 0x83,0x8c,0xe0,0x1b,0x15,0x5e,0x80,0xcc,0x3e,0x9f,0xaa,0x3e,0x3d,0x1f, +0x81,0x9c,0x81,0x3c,0xac,0x1e,0x15,0x85,0x84,0x2c,0x8d,0xa, 0xf0,0x0, 0x80,0xd, +0x3d,0x9e,0xf0,0x0, 0xab,0xde,0x16,0xa, 0xf0,0x0, 0xab,0x4e,0x3e,0x1e,0xf0,0x0, +0xaa,0xae,0x34,0xa8,0xa8,0xcb,0x3d,0x49,0xf0,0x0, 0x80,0x9d,0xf0,0x0, 0x81,0x2d, +0xf0,0x0, 0x81,0xbd,0xf0,0x0, 0x82,0x4d,0xa9,0x3b,0xf0,0x1b,0x12,0xe1,0xac,0x2b, +0xf0,0x15,0x3a,0x9f,0xa9,0x9b,0xf0,0x1b,0x13,0xe2,0xe0,0x2, 0x1e,0xc3,0xf0,0x1, +0xa8,0x2e,0xf0,0x17,0x3b,0x9f,0xf0,0x0, 0xa8,0x9c,0xe0,0x1b,0x14,0xdf,0xf0,0x0, +0xa9,0x2c,0xf0,0x1b,0x13,0x60,0xf0,0x0, 0xa9,0xbc,0xe0,0x1b,0x14,0x63,0xf0,0x0, +0xaa,0x4c,0xe7,0xef,0x16,0x7f,0xb5,0x1d,0xf0,0x16,0x3b,0x1f,0x97,0x5d,0xe8,0x0, +0x8d,0x5, 0x3c,0x1f,0x3c,0x9f,0x3f,0x5c,0xe0,0x1b,0xc7,0xe4,0xe8,0x0, 0x8e,0x7, +0xf7,0xf7,0x13,0xff,0x8c,0x89,0x35,0x28,0xe8,0xe, 0x3f,0x57,0xf0,0x0, 0x83,0x88, +0x84,0xf, 0xe7,0xfe,0x17,0xff,0xe8,0x0, 0x8d,0x86,0x3f,0xde,0xe0,0xe, 0x3e,0x4a, +0xe7,0xff,0x16,0x3f,0x34,0xa8,0x3f,0xdc,0x3d,0xc9,0xb7,0xdd,0xb5,0xad,0xb7,0x3d, +0xf0,0x1, 0xab,0x8d,0xe0,0x1, 0xac,0x1d,0xef,0xff,0xd6,0xf4,0xdd,0xf6,0xde,0xa3, +0xde,0xb6,0xa, 0x21,0xe7,0xea,0x0, 0xea,0xe0,0x1, 0x1f,0x96,0x8f,0xf, 0xe0,0x1, +0x1f,0x95,0x37,0x28,0x8f,0x8f,0x3f,0xce,0xe2,0x1, 0xcf,0xdf,0x3c,0x6f,0x2, 0x83, +0xe0,0x1, 0x14,0x60,0x34,0x45,0xe2,0x1, 0xc4,0x7f,0x38,0x82,0x8, 0xb7,0xe0,0x0, +0x1a,0xb, 0x8b,0x4, 0xe0,0x0, 0x23,0x44,0x13,0x0, 0xe0,0x0, 0x1a,0x8e,0xe0,0x2, +0x1b,0xa1,0x39,0x66,0x0, 0x87,0xc1,0x1, 0x8f,0x84,0xe2,0x1, 0xc1,0x7f,0x3f,0xf2, +0x5, 0xaf,0x3c,0x62,0xe0,0x1, 0xd8,0xab,0xe0,0xf, 0x31,0x21,0x3f,0x95,0x39,0xe8, +0x8c,0xf, 0xe0,0x1, 0xd8,0xb6,0xe0,0x43,0x3c,0x18,0x39,0xf8,0x4, 0x6d,0x3c,0x62, +0xe0,0x1, 0xd8,0x76,0x24,0x69,0x17,0x8a,0x3f,0xb2,0x17,0xa, 0xe0,0x0, 0xc7,0xfc, +0x3f,0x95,0x3f,0x36,0x94,0x8f,0x95,0x1f,0x95,0xaf,0x96,0x3f,0x96,0xcf,0xe0,0xf, +0x3f,0x17,0xb4,0x8f,0xc1,0x1, 0xb5,0x1f,0xe2,0x1, 0xc1,0x7f,0xb5,0xaf,0xc3,0x1, +0xb6,0x3f,0xe2,0x1, 0xc3,0x7f,0xb6,0xcf,0x8f,0x84,0x3f,0xf2,0x2, 0xd3,0xe0,0x0, +0x1f,0xc, 0xaf,0x8e,0xe0,0x2, 0x1f,0xa0,0xab,0xf, 0xb, 0xe1,0x3f,0xe6,0x0, 0xf8, +0xe7,0xff,0x0, 0xb6,0x8, 0xb4,0xe0,0x1, 0x1e,0xa3,0xe0,0x1, 0x1e,0x51,0xf0,0xe, +0x8b,0xad,0xa6,0xc, 0xe8,0xe, 0x3d,0x37,0xf0,0xf, 0x3b,0xb8,0x3f,0x1b,0x3f,0x99, +0x37,0x21,0x37,0xa1,0x3f,0x1c,0x3f,0x9c,0x97,0xe, 0x97,0x8f,0xe0,0x1, 0x37,0x1, +0x3f,0x7f,0x37,0x81,0xe0,0x6f,0x3d,0x21,0xe2,0x3, 0xcf,0xf4,0xf0,0x3, 0x13,0x74, +0x2, 0x3, 0xf0,0x40,0x3b,0x6f,0xe0,0x11,0x3d,0xa9,0xf8,0x43,0x38,0x91,0xf2,0x0, +0xc8,0x80,0xf0,0x0, 0x10,0x4, 0x10,0xfc,0xe1,0x32,0x3d,0xa9,0xe1,0x33,0x3d,0x28, +0xe0,0xf, 0x3d,0xa9,0xe0,0xe, 0x89,0x1d,0xf8,0x41,0x39,0x42,0xf8,0x41,0x39,0xc3, +0xe8,0x2f,0x3f,0x90,0xe8,0x31,0x38,0x91,0xf0,0x40,0x3a,0x69,0xf8,0x43,0x3b,0x16, +0xf0,0x0, 0xc9,0x1, 0xf0,0x0, 0xc9,0x81,0xf0,0x40,0x3a,0xe8,0xe0,0x71,0x3a,0x2f, +0xc1,0x7f,0x11,0x80,0x0, 0x90,0xe8,0xa, 0x3d,0x13,0xe2,0x1, 0xc5,0x7f,0xe8,0xe, +0x3d,0x37,0x3f,0xeb,0x3f,0x1b,0x37,0x21,0x3f,0x1c,0x96,0x8e,0xe8,0x40,0x3e,0xf6, +0x4, 0x2a,0x3d,0xef,0xe8,0xe, 0x3d,0x25,0xe0,0x43,0x3f,0x1e,0xe2,0x0, 0xcf,0x0, +0xe8,0xf, 0x3d,0xa4,0xe0,0x43,0x3f,0x9f,0xe0,0x41,0x3f,0x4e,0xe0,0xd, 0x3d,0x28, +0xe0,0x6d,0x3d,0x2e,0xe2,0x0, 0xcf,0x80,0xe0,0xe, 0x3d,0xa9,0xe0,0x41,0x3f,0xcf, +0xe0,0x6e,0x3d,0x2f,0x3e,0xfe,0x1, 0x39,0x2, 0x57,0xe8,0xf, 0x3d,0x92,0xe8,0xe, +0x3d,0x37,0xe2,0x1, 0xc7,0xff,0x3f,0x1f,0x37,0x21,0x3f,0x1c,0x96,0x8e,0xe8,0x40, +0x3e,0xf6,0x3, 0x58,0xf0,0x0, 0x20,0xe5,0xe8,0xe, 0x3d,0x25,0xe0,0x43,0x3f,0x1e, +0xe2,0x0, 0xcf,0x0, 0xe0,0xd, 0x3d,0x28,0xf0,0x2d,0x38,0x2d,0xe0,0x2e,0x3f,0x21, +0xe1,0x2f,0x3d,0x8f,0xe0,0x6d,0x3d,0x2e,0xe0,0x0, 0x27,0xd3,0xe0,0x0, 0x26,0xd1, +0xe0,0x0, 0x2d,0x51,0xe2,0x0, 0xc9,0x0, 0x3f,0x63,0x5, 0x30,0x17,0x81,0x3f,0x9a, +0xe8,0xf, 0x3f,0xb7,0x3f,0x9b,0x37,0xa1,0x3f,0x9c,0x96,0x8f,0x3f,0x7d,0x5, 0x25, +0xc5,0x7f,0xe2,0x1, 0xc5,0x7f,0x0, 0xa5,0x3d,0x78,0xe0,0x0, 0x1, 0x4a,0xf0,0x4, +0x39,0x9a,0xe8,0xd, 0x3a,0x37,0xf0,0xe, 0x3b,0xba,0xf0,0xf, 0x39,0x1b,0x3e,0x9b, +0x3f,0x1f,0x36,0xa1,0x37,0x21,0x3e,0x9c,0x3f,0x1c,0x96,0x8d,0x97,0xe, 0x3e,0xfe, +0x3, 0x6, 0xe2,0x1, 0xc7,0xff,0x3e,0xee,0xe7,0xff,0x0, 0x92,0x3d,0x64,0xe2,0x1, +0xc5,0x7f,0x3f,0xeb,0xe7,0xff,0x0, 0x8c,0x3f,0x6d,0xc5,0x1, 0xe2,0x1, 0xc5,0x7f, +0xe1,0x33,0x3d,0x28,0xe8,0x40,0x3f,0x76,0xf8,0x41,0x39,0xc3,0xf0,0x0, 0xc9,0x81, +0x4, 0xf, 0xe8,0xb, 0x3d,0x92,0xe8,0xf, 0x3d,0x37,0xe2,0x1, 0xc5,0xff,0x3f,0x9b, +0x37,0xa1,0x3f,0x9c,0x97,0x8f,0xe8,0x40,0x3f,0xf6,0xe7,0xfe,0x3, 0x75,0x14,0x0, +0xa, 0x61,0x17,0xff,0x3f,0x9a,0xe8,0xf, 0x3f,0xb7,0x3d,0x72,0x3f,0x9b,0x37,0xa1, +0x3f,0x9c,0x3e,0xe3,0x97,0xf, 0xe7,0xff,0x3, 0x33,0xe7,0xff,0x0, 0xa9,0x14,0x1, +0xa, 0x61,0x8, 0xb7,0xf8,0x0, 0xc, 0x3e,0xc0,0x7c,0xe0,0x2, 0x1f,0xa1,0xe4,0x0, +0xc4,0xa, 0x11,0x7c,0xe0,0xe, 0x3f,0x98,0xe0,0x1, 0x8e,0xe, 0x3b,0xe9,0x39,0x1c, +0xe0,0x43,0x39,0x2, 0xe2,0x0, 0xc9,0x0, 0x3b,0x6a,0x8a,0xfe,0xe0,0x3, 0x4, 0x67, +0x12,0x4, 0x3a,0x1c,0xe0,0x43,0x3a,0x4, 0x3e,0xe4,0xe0,0x1, 0x1f,0x23,0xf0,0xe, +0x8c,0xce,0xf0,0x40,0x3c,0xfd,0xe0,0x2, 0x2, 0x7a,0xe0,0x2, 0x1e,0x85,0x12,0x7f, +0x11,0x77,0xe0,0x1, 0x8e,0xcd,0xe8,0x4, 0x3a,0x19,0xe8,0x2, 0x39,0x19,0xe0,0x43, +0x3a,0x4, 0xe0,0x43,0x39,0x2, 0xe0,0x2, 0x26,0xc9,0xf0,0xe, 0x8e,0x1e,0x11,0x81, +0xe2,0x0, 0xca,0x82,0xe0,0x3, 0x5, 0xac,0x17,0xfd,0xe8,0xf, 0x3f,0x9c,0x3a,0xff, +0xf0,0x0, 0x14,0x1, 0xe0,0x3, 0x4, 0x4f,0xe8,0x40,0x3f,0xe8,0xf0,0x0, 0x10,0x0, +0xe4,0x0, 0xcf,0x81,0xe9,0x30,0x3b,0x0, 0xf0,0x1d,0x38,0x5f,0xf0,0x2, 0x2e,0xe1, +0xe2,0x0, 0xca,0x83,0xe0,0x3, 0x5, 0x9a,0x17,0xfc,0xe8,0xf, 0x3f,0x9c,0x3a,0xff, +0x3d,0x65,0xe0,0x2, 0x3, 0x79,0xe8,0x40,0x3e,0x79,0xe0,0x79,0x3d,0xac,0xe8,0x40, +0x3c,0x69,0xe2,0x1, 0xc4,0x7f,0xf1,0xff,0xc6,0x7f,0x17,0xff,0x3f,0x95,0xe8,0x40, +0x3a,0xfc,0xe2,0x1, 0xc7,0xff,0xf0,0x0, 0x13,0x80,0xe0,0x77,0x39,0x2f,0xe0,0x2, +0x1f,0xbf,0x3a,0x72,0xf0,0x0, 0x8a,0x5f,0xe0,0x3, 0x4, 0x3e,0xf0,0x0, 0x13,0x0, +0xe0,0x1, 0x1f,0xd1,0xe8,0x40,0x3c,0xe6,0xa5,0x8f,0xe8,0xa, 0x3d,0x34,0xf8,0x17, +0x3b,0xb4,0xf0,0x2, 0x19,0x5, 0xe8,0x36,0x3b,0x6, 0x3e,0x69,0x3f,0xe9,0x38,0xe9, +0xf0,0x2, 0x12,0xac,0xf0,0x0, 0x11,0xe4,0xf0,0x0, 0x10,0x93,0x0, 0x98,0xf0,0x0, +0x23,0x36,0xe8,0x1, 0x8f,0x42,0x27,0xb, 0xe0,0xe, 0x37,0xa1,0x38,0xfe,0x2, 0x7, +0xe8,0x2d,0x3e,0x93,0x26,0xb1,0xf0,0x2e,0x38,0xaf,0x27,0x2e,0xc1,0x1, 0xe0,0x43, +0x39,0x2, 0x3a,0x72,0xc6,0x1, 0xe2,0x1, 0xc6,0x7f,0x4, 0x35,0xe0,0xd, 0x39,0x1a, +0x36,0xa1,0x3e,0x9b,0xf0,0x0, 0x9c,0x8d,0xe8,0xd, 0x39,0x17,0x36,0xa1,0x17,0x44, +0x3e,0x9b,0xe8,0xe, 0x3f,0x19,0xf0,0x0, 0x95,0xd, 0xe3,0xff,0xc7,0x7f,0xe0,0x43, +0x3e,0x9e,0xc7,0xc4,0xe8,0xf, 0x3f,0x9a,0x3f,0x11,0xe8,0x3a,0x3e,0x95,0xe0,0x43, +0x38,0x9e,0xe0,0x43,0x3f,0x9f,0xf7,0xff,0x2d,0x4c,0xe2,0x1, 0xce,0x8c,0x2, 0x4d, +0xe8,0x2d,0x3e,0x93,0x2e,0xd1,0xf1,0xff,0xc4,0x87,0x17,0x1, 0x3f,0x19,0xf2,0x0, +0xcc,0xce,0xc1,0x1, 0xe2,0x1, 0xc7,0x7f,0xe0,0x43,0x39,0x2, 0xe0,0x69,0x3d,0xae, +0x3a,0x72,0x3, 0x4d,0xe2,0x0, 0xcf,0x80,0xe0,0x4, 0x30,0x81,0x39,0x6c,0x3f,0x6f, +0xe0,0x2, 0x4, 0x4f,0xe0,0x43,0x3f,0x1e,0xe0,0xf, 0x30,0x82,0xe0,0x2f,0x3f,0x9e, +0xf0,0x16,0x3b,0x5f,0xea,0x11,0x7f,0xec,0x3d,0x18,0x35,0x21,0x3f,0x97,0x3d,0x1b, +0x8e,0x8f,0x95,0xa, 0x36,0xa2,0x3e,0xfa,0x3, 0xc, 0xe2,0x7, 0xcd,0x7f,0xe0,0x2, +0x5, 0x27,0x16,0xff,0xae,0x8f,0xea,0x11,0x7f,0xf8,0x3f,0x97,0x3c,0x9c,0xac,0x8f, +0xe2,0x0, 0xce,0x5, 0x5, 0x8c,0xe2,0x0, 0xce,0x6, 0xe0,0x2, 0x1, 0x41,0xe2,0x0, +0xce,0x7, 0xe0,0x2, 0x1, 0x38,0xc1,0x83,0xe2,0x1, 0xc1,0xff,0xf0,0x0, 0x23,0xc, +0xe0,0xd, 0x38,0x9e,0x17,0x81,0x3f,0x93,0xe2,0x12,0xce,0xe1,0xe2,0x1, 0xc7,0xff, +0xe0,0x63,0x3b,0x2f,0x3a,0x7e,0x5, 0xa, 0x3f,0x11,0x17,0x81,0x3f,0x93,0xe2,0x2e, +0xcf,0x71,0xe2,0x1, 0xc7,0xff,0xe0,0x63,0x3b,0x2f,0xc3,0x3, 0x17,0x81,0x3f,0x93, +0x3b,0x72,0xe2,0x1, 0xc7,0xff,0xe0,0x63,0x3c,0x2f,0xe2,0x0, 0xce,0x0, 0x17,0x80, +0xe0,0x6f,0x39,0xa3,0x39,0xef,0xf0,0x0, 0x24,0x2f,0xe0,0x1, 0x22,0xe6,0x17,0xfb, +0x3f,0x95,0xe0,0x43,0x3d,0x5, 0xe0,0x43,0x3a,0x8f,0x3d,0x75,0x5, 0x24,0x17,0x0, +0xe8,0xf, 0x3a,0xb4,0x16,0x81,0x3f,0x98,0x37,0xa1,0x3f,0x9b,0x97,0x8f,0x3e,0x9e, +0xe2,0x4, 0xcf,0xd9,0xc2,0x81,0x3f,0xed,0xe2,0x1, 0xc7,0xff,0xe0,0x43,0x3a,0x85, +0xe0,0x6e,0x3b,0x2f,0x3d,0x75,0x2, 0x6d,0x17,0x82,0xe1,0x2e,0x3f,0x1f,0x27,0xb, +0xe1,0x2c,0x3e,0x1f,0x17,0x81,0x3f,0x93,0xe2,0x0, 0xce,0x0, 0xe2,0x1, 0xc7,0xff, +0xe0,0x63,0x39,0xaf,0xea,0x12,0x7f,0x84,0xe0,0xe, 0x3f,0x97,0xf0,0x0, 0x28,0x2f, +0x8e,0x8e,0x3e,0xf3,0x4, 0xab,0x29,0xac,0x3b,0x9f,0x8f,0x87,0x11,0x83,0xe1,0x23, +0x3f,0x93,0xe2,0x0, 0xcf,0x85,0x17,0x82,0xe0,0x6f,0x3c,0xa3,0x39,0xef,0x3c,0x63, +0xc0,0x4, 0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0x3f,0x98,0x9d,0x9f,0xf0,0xd, 0x34,0xa6, +0xe1,0xff,0xc6,0xb1,0x3e,0xfb,0x9f,0x8f,0xf0,0xe, 0x8e,0x1e,0xe0,0x1, 0x2, 0x1c, +0xe2,0x0, 0xcf,0xaf,0x5, 0x88,0xf0,0xe, 0x36,0x26,0xc7,0x51,0x3f,0x7f,0x11,0x81, +0xe7,0xfd,0x2, 0x28,0x11,0x83,0xe7,0xfd,0x0, 0xa5,0xa9,0x8e,0x21,0xd6,0xe2,0x0, +0xc9,0x81,0x1, 0xde,0x3f,0x97,0x8f,0x8f,0x0, 0xd5,0xe2,0x0, 0xca,0x82,0xe0,0x0, +0x2, 0xe7,0xf0,0x0, 0x10,0x0, 0x17,0x81,0xe9,0x30,0x3b,0x0, 0xf0,0x1d,0x38,0x5f, +0xf0,0xe, 0x8e,0x1e,0xf0,0x0, 0x14,0x0, 0x39,0xef,0xf7,0xfd,0x26,0xa3,0xfa,0x11, +0x7d,0x60,0xfa,0x10,0x7d,0x98,0xf0,0x0, 0x17,0xa, 0xf8,0x1e,0x3f,0x1a,0x0, 0x87, +0xf8,0x40,0x3f,0x7a,0xf0,0x0, 0xc5,0x8a,0xe0,0x0, 0x1, 0x5b,0xe9,0x80,0x8f,0x9a, +0xe2,0x0, 0xcf,0x82,0x1, 0xf6,0xe8,0x1, 0x8d,0x8b,0xe8,0x0, 0x8d,0x7b,0x3c,0xec, +0x3c,0x65,0x7e,0x1, 0xdd,0x40,0x66,0x1, 0x24,0x6c,0xf8,0x40,0x38,0x6d,0x11,0x83, +0xe7,0xfd,0x0, 0x80,0xe8,0x40,0x3e,0x79,0x12,0xff,0xe8,0x5, 0x3a,0x9c,0xe0,0x79, +0x3d,0xac,0xe2,0x1, 0xc2,0xff,0xe8,0x40,0x3c,0x69,0x3d,0x65,0xe2,0x1, 0xc4,0x7f, +0xf0,0x0, 0x13,0x81,0xe7,0xfd,0x22,0x8d,0xe7,0xfc,0x0, 0xff,0xf0,0x0, 0x10,0x0, +0xe9,0x30,0x3b,0x0, 0xf0,0x0, 0x14,0x1, 0xf2,0x0, 0xce,0x4, 0x5, 0x64,0xe8,0x40, +0x3e,0x79,0x15,0x0, 0xe0,0x79,0x3d,0xac,0xe8,0x40,0x3c,0x69,0xe2,0x1, 0xc4,0x7f, +0x3a,0xea,0xf0,0x0, 0x13,0x81,0xe7,0xfc,0x0, 0xf4,0xe0,0x2, 0x1f,0x5, 0x16,0x88, +0xe0,0x1, 0x87,0x4e,0x3a,0x6d,0x11,0x0, 0xe7,0xfc,0x0, 0x99,0xf0,0xe, 0x8e,0x1e, +0x17,0xfd,0xe8,0xf, 0x3f,0x9c,0x3a,0xff,0xf0,0x0, 0x14,0x0, 0x11,0x81,0xe7,0xfc, +0x3, 0x35,0x11,0x80,0x3c,0x63,0xc0,0x4, 0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0xf8,0x40, +0x38,0x6d,0xe7,0xfc,0x0, 0xb7,0x15,0x5, 0xe7,0xfe,0x0, 0xa3,0x35,0x2, 0xad,0xf, +0xe7,0xfd,0x0, 0xdb,0xe2,0x0, 0xcf,0xb6,0x5, 0x88,0xf0,0xe, 0x36,0x26,0xc7,0x51, +0x3f,0x7f,0x11,0x81,0xe7,0xfc,0x2, 0xe, 0x11,0x82,0xe7,0xfc,0x0, 0x8b,0x17,0x0, +0xe7,0xfd,0x0, 0xb2,0xe0,0x1, 0x1f,0xd1,0x17,0x0, 0xa5,0x8f,0xe8,0xa, 0x3d,0x34, +0xf0,0x40,0x3b,0x6e,0x39,0x6e,0x3a,0x6e,0x3c,0xee,0x3e,0x6e,0x38,0xee,0xe7,0xfd, +0x0, 0xab,0xc1,0x82,0xe2,0x1, 0xc1,0xff,0xe7,0xfd,0x0, 0xca,0xc1,0x81,0xe2,0x1, +0xc1,0xff,0xe7,0xfd,0x0, 0xc5,0xe7,0xf9,0x0, 0xbf,0x15,0x1, 0xe7,0xfb,0x0, 0xb3, +0x8, 0xb7,0xf8,0x0, 0xc, 0x3e,0xc0,0x48,0xe0,0x2, 0x1e,0xa0,0xe0,0x0, 0x1b,0x2a, +0x17,0x0, 0x8f,0x8d,0xaf,0x6, 0x2f,0x98,0xea,0xf, 0x7f,0xfa,0x8f,0xf, 0xe0,0x6, +0x2f,0x44,0xfa,0x10,0x7c,0xfc,0xe0,0x2, 0x1a,0x21,0xfa,0x10,0x7d,0x18,0xfa,0x11, +0x7e,0xf8,0xfa,0x11,0x7e,0x6c,0xea,0x11,0x7b,0xe0,0xfa,0x10,0x7c,0xc, 0xfa,0x12, +0x7d,0x84,0xe0,0x1, 0x0, 0xda,0xe0,0x2, 0x1a,0x21,0xfa,0x11,0x7e,0x6c,0xea,0x11, +0x7b,0xe0,0xea,0x10,0x7f,0x80,0x11,0x80,0xea,0xf, 0x7f,0x78,0xfa,0x10,0x7c,0xfc, +0xfa,0x10,0x7d,0x18,0xfa,0x11,0x7e,0xf8,0xfa,0x10,0x7c,0xc, 0xfa,0x12,0x7d,0x84, +0xf0,0x40,0x3f,0x67,0x12,0x8c,0x3b,0xe4,0x7f,0x8d,0x3a,0x63,0xf0,0x0, 0x7e,0xe, +0x0, 0x91,0xe2,0x0, 0xc9,0x82,0xe0,0x3, 0x1, 0x6f,0xc2,0x1, 0xe2,0x1, 0xc2,0x7f, +0xc2,0xff,0xe2,0x1, 0xc2,0xff,0xe0,0x1, 0x22,0xab,0x8f,0x8d,0x3f,0xf4,0xe0,0x1, +0x5, 0xa7,0xf0,0x0, 0x16,0xa, 0xf0,0x1c,0x3e,0x34,0x8e,0xe, 0xe8,0xf, 0x3b,0x9c, +0x81,0x4f,0xe2,0x0, 0xc1,0xf, 0xe0,0x6, 0x31,0x23,0xe0,0xf, 0x3b,0x96,0xe0,0x2, +0xc7,0xac,0x89,0x8f,0x26,0x3, 0xc6,0x7f,0xae,0xe, 0xe2,0x0, 0xc9,0x9, 0x2, 0xde, +0x29,0xd9,0xe8,0xf, 0x3b,0x9c,0xf0,0x0, 0x91,0x8f,0xf0,0x0, 0x92,0x1f,0xf0,0x0, +0x92,0xaf,0x90,0xbf,0x95,0xcf,0x17,0x8a,0x3f,0xb2,0xf0,0x0, 0x60,0xd, 0xf0,0x0, +0x61,0xe, 0xf0,0xc, 0x3c,0x9f,0xf0,0x10,0x38,0x12,0xe8,0xf, 0x3f,0x9a,0xf0,0x11, +0x3e,0x92,0xf0,0x12,0x39,0x12,0xf0,0x0, 0xb1,0x8f,0x15,0x1, 0xf0,0x0, 0xb2,0x1f, +0x3c,0xe2,0xf0,0x0, 0xb2,0xaf,0x3c,0x64,0xb0,0xbf,0xb5,0xcf,0xf0,0x0, 0xb1,0x8c, +0xf0,0x0, 0xb2,0x1c,0xf0,0x0, 0xb2,0xac,0xb0,0xbc,0xb5,0xcc,0xe8,0x0, 0xa9,0x80, +0xe8,0x0, 0xa9,0x81,0xe8,0x0, 0xa9,0x82,0x7e,0x81,0x7f,0x2, 0x7f,0x83,0xdd,0x12, +0x66,0x81,0x67,0x2, 0x67,0x83,0x2c,0x11,0x9f,0x8f,0xf0,0xc, 0x3f,0x12,0xe2,0x0, +0xcf,0xa5,0xa9,0x8c,0x5, 0x8a,0xe0,0x1, 0x1c,0xa3,0xe0,0xe, 0x8e,0x19,0x36,0x26, +0xc6,0x5b,0x3e,0x7f,0xe0,0x5, 0x2, 0x53,0x85,0x8d,0xf0,0xf, 0x3f,0x12,0x16,0x2, +0xc5,0xff,0xae,0xf, 0xe2,0x1, 0xc5,0xff,0x16,0xa, 0x3e,0x3b,0xe0,0x0, 0x1c,0xaa, +0x3e,0x17,0xf0,0x0, 0x92,0x2c,0xf0,0x0, 0x91,0xc, 0xf0,0x0, 0x91,0x9c,0xf0,0x0, +0x92,0xbc,0x91,0xcc,0xe8,0x16,0x3b,0x9c,0x85,0x9, 0xf0,0x0, 0x63,0x8d,0x14,0x80, +0xe0,0xf, 0x3b,0x96,0xf0,0x1, 0x3c,0x12,0xf0,0x8, 0x3d,0x92,0xf8,0x0, 0xb1,0x6, +0xe8,0x2, 0x39,0x17,0xf8,0x0, 0xb1,0x96,0xe0,0x2, 0xc7,0xac,0xf8,0x0, 0xb2,0x26, +0xc5,0x1, 0xf8,0x0, 0xb2,0xb6,0xc2,0xff,0xe8,0x0, 0xb1,0xc6,0xe2,0x1, 0xc2,0xff, +0xad,0x8d,0x15,0xff,0xe0,0x0, 0x1b,0x2a,0xac,0x81,0xac,0x88,0x14,0x8f,0xad,0xcc, +0x16,0x3, 0xac,0x82,0xae,0xf, 0xad,0x6, 0xe7,0xfe,0x2a,0xd9,0xf0,0x0, 0x66,0xe, +0x3a,0x67,0xe8,0x40,0x3b,0xee,0x12,0x80,0xea,0xf, 0x7f,0x7b,0xf0,0x2, 0x1f,0x1b, +0xf0,0x2, 0x1b,0x1a,0xf0,0x2, 0x19,0x3f,0xf0,0x1, 0x19,0xd1,0xf0,0x1, 0x18,0x2d, +0xf0,0x1, 0x1a,0xa3,0x11,0x9, 0x3e,0x65,0xf0,0x0, 0x12,0x64,0xe0,0x40,0x3f,0xe5, +0xf0,0x0, 0x13,0x87,0xf0,0x0, 0x10,0xd0,0xe0,0xb, 0x31,0x23,0x3d,0x94,0xe0,0x2, +0xc5,0xac,0x8d,0x8b,0x39,0xe2,0xe2,0x0, 0xcd,0x83,0x1, 0x19,0x21,0x3f,0x14,0x7f, +0x3c,0x12,0xe2,0x1, 0xc4,0x7f,0xe0,0xb, 0x34,0x23,0xe0,0x2, 0xc5,0xac,0x3d,0x94, +0x15,0x0, 0x0, 0x83,0xc5,0xf8,0x21,0x32,0x8c,0x8b,0xc1,0x7f,0xe2,0x0, 0xcc,0x83, +0xe0,0x3, 0x3c,0x2a,0xe2,0x1, 0xc1,0x7f,0xc5,0x1, 0x1, 0xf5,0xe8,0x0, 0x8b,0xe, +0xe2,0x0, 0xcb,0x1, 0x1, 0x29,0xc2,0x81,0xe2,0x1, 0xc2,0xff,0xe2,0x0, 0xca,0x8a, +0xf0,0x0, 0xc5,0x81,0xf0,0x0, 0xc4,0x8a,0xf0,0x0, 0xc4,0x1, 0xf0,0x0, 0xc5,0xa, +0xc3,0x81,0xf0,0x0, 0xc7,0x8, 0xf0,0x0, 0xc6,0x81,0xf0,0x0, 0xc6,0x1, 0x1, 0xc5, +0xe0,0x0, 0x1e,0x2a,0x8f,0x8c,0xe0,0x4, 0x27,0x94,0x8e,0x8e,0x3e,0xff,0x3, 0x82, +0xaf,0x8e,0xc0,0x38,0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0xe8,0x0, 0x8b,0xe, 0x39,0xec, +0xe2,0x0, 0xcb,0x1, 0x1, 0xd9,0x8d,0x87,0xe2,0x0, 0xcd,0x82,0x1, 0xd5,0xe8,0x0, +0x8d,0x86,0xab,0x7, 0x2d,0xd1,0x8d,0x8e,0xe2,0x0, 0xcd,0x81,0xe0,0x0, 0x5, 0xc4, +0xe8,0x0, 0x9c,0x19,0x7e,0x81,0x7f,0x2, 0x7f,0x83,0xf0,0x0, 0x78,0x8, 0xf0,0x0, +0x78,0x86,0xf0,0x0, 0x79,0xb, 0xf0,0x0, 0x79,0x8a,0xf0,0x0, 0x7a,0x9, 0xf0,0x0, +0x7a,0x84,0xf0,0x0, 0x7b,0xc, 0xf0,0x0, 0x7b,0x87,0x7e,0x5, 0xe0,0x5, 0xd3,0xda, +0x66,0x5, 0xe0,0x3, 0x1d,0x12,0x3d,0xec,0xe0,0x5, 0xd3,0x92,0xe2,0x0, 0xcc,0x0, +0x66,0x5, 0x66,0x81,0x67,0x2, 0x67,0x83,0xf0,0x0, 0x60,0x8, 0xf0,0x0, 0x60,0x86, +0xf0,0x0, 0x61,0xb, 0xf0,0x0, 0x61,0x8a,0xf0,0x0, 0x62,0x9, 0xf0,0x0, 0x62,0x84, +0xf0,0x0, 0x63,0xc, 0xf0,0x0, 0x63,0x87,0x5, 0xe, 0xe8,0x0, 0x9d,0x9, 0xe2,0x0, +0xcd,0x25,0xe7,0xff,0x5, 0x92,0xe8,0xe, 0x8d,0x95,0x35,0xa6,0xc5,0xda,0x3d,0x7b, +0xe7,0xff,0x2, 0xb, 0xe8,0x0, 0x8d,0x52,0xe8,0x0, 0x8d,0xfa,0xe8,0x1, 0x8c,0x8a, +0x3d,0xba,0xe8,0x0, 0xa5,0x3, 0x3d,0x99,0x35,0xa1,0x3d,0x1b,0xea,0xf, 0x7d,0xfa, +0x94,0x8a,0x8d,0xb, 0xe8,0x2b,0x3c,0x94,0xe1,0x2a,0x3d,0xc, 0x25,0x83,0xe7,0xfe, +0x2d,0x74,0xe8,0x0, 0x8d,0x8c,0xe2,0x1, 0xcd,0x9f,0xe0,0x3, 0x5, 0xa5,0xe8,0x0, +0x8d,0x88,0xc5,0xff,0xe2,0x1, 0xc5,0xff,0xe2,0x0, 0xcd,0x97,0xe7,0xfe,0x2, 0xe5, +0xe8,0x0, 0x95,0x90,0x3d,0xf9,0xe7,0xfe,0x5, 0x60,0x8d,0xd, 0xe0,0x5, 0x25,0x2f, +0xe0,0x2, 0x1b,0x5, 0xe0,0x1, 0x8d,0xc6,0x2d,0x95,0xe8,0x0, 0x9c,0x89,0xe2,0x0, +0xcc,0xbf,0x5, 0x87,0xe8,0xe, 0x8d,0x95,0xc5,0xff,0x35,0xa6,0x3c,0xfb,0x5, 0xa, +0xe8,0xe, 0x8d,0xc5,0xe8,0x0, 0x9c,0x99,0xc5,0xff,0x35,0xa6,0x3c,0xfb,0xe7,0xfe, +0x2, 0x44,0xe8,0x0, 0x8d,0x8b,0xe2,0x0, 0xcd,0x83,0xe7,0xfe,0x2, 0xbe,0xe2,0x0, +0xcd,0x9, 0xe7,0xfe,0x2, 0xba,0x15,0x8a,0x3d,0xba,0x13,0x1, 0x3b,0x1a,0xe8,0x0, +0x95,0x29,0x3d,0x94,0xe0,0x9, 0x31,0xa3,0x3c,0x94,0xb5,0x2b,0xe0,0x2, 0x15,0x2c, +0x3d,0x19,0xe0,0x2, 0xc4,0xad,0xe2,0x1, 0xc3,0x7f,0xe8,0x0, 0x90,0x89,0xe8,0x0, +0x94,0x19,0xe8,0x0, 0x91,0xb9,0xaf,0x89,0xe2,0x0, 0xcb,0xa, 0xe8,0x0, 0x94,0xc9, +0xaf,0x8a,0xb0,0x8b,0xb4,0x1b,0xb1,0xbb,0xb4,0xcb,0xa9,0x4b,0xab,0xd, 0xe0,0x5, +0x1, 0x8e,0xe8,0x0, 0xaf,0x88,0xe7,0xfe,0x21,0x25,0xc1,0x7f,0xe2,0x1, 0xc1,0x7f, +0xe7,0xfe,0x0, 0x8b,0xf0,0xf, 0x3f,0x12,0x8f,0x8f,0xe2,0x0, 0xcf,0x82,0x1, 0x2e, +0x11,0x8a,0x39,0xb2,0xe8,0xf, 0x3b,0x9c,0xf0,0xc, 0x3d,0x13,0x9c,0x9f,0x9c,0xf, +0x9d,0x9c,0x9d,0xc, 0x7e,0x81,0x7f,0x2, 0xef,0xff,0xd5,0x36,0xe2,0x0, 0xcc,0x3c, +0xea,0xf, 0x7f,0xfa,0x66,0x81,0x67,0x2, 0xe0,0x3, 0x5, 0x9b,0x16,0xf, 0xae,0xf, +0xe8,0x16,0x3b,0x9c,0xe8,0x0, 0x94,0x86,0xe8,0x0, 0x95,0x16,0xe8,0x0, 0x95,0xa6, +0xe8,0x0, 0x96,0x36,0xe8,0x0, 0x97,0xc6,0xe8,0x3, 0x39,0x9a,0xb4,0x83,0xb5,0x13, +0xb5,0xa3,0xb6,0x33,0xb7,0xc3,0xe7,0xfb,0x0, 0xe2,0x11,0x8a,0xf0,0xb, 0x3c,0x12, +0xe8,0xf, 0x3b,0x9c,0x39,0xb2,0x8e,0xb, 0xf0,0x0, 0x92,0x8f,0x90,0x9f,0x94,0x2f, +0x94,0xbf,0x95,0x4f,0xe2,0x1, 0xce,0x7f,0xf0,0xf, 0x3d,0x13,0xf0,0x0, 0xb2,0x8f, +0xb0,0x9f,0xb4,0x2f,0xb4,0xbf,0xb5,0x4f,0x1, 0x3, 0xc6,0x1, 0xae,0xb, 0x15,0x0, +0x3c,0xe2,0x3c,0x64,0x7e,0x81,0x7f,0x2, 0xdb,0x2d,0xe0,0x1, 0x1d,0x23,0xf0,0xc, +0x3c,0x93,0xe0,0xe, 0x8f,0xca,0x96,0x1c,0x37,0xa6,0x3f,0xac,0xe0,0x43,0x3f,0x9f, +0xe2,0x1, 0xcf,0x94,0x16,0x30,0x66,0x81,0x67,0x2, 0x2, 0xe, 0xe0,0x2, 0x1e,0x5, +0xe0,0x1, 0x8d,0xcc,0x16,0x30,0x25,0x88,0xe0,0x1, 0x16,0x14,0x3e,0x2f,0xe4,0x0, +0xc6,0xf, 0x36,0x6, 0xc6,0x30,0xf0,0x2, 0x1b,0xbf,0xf0,0xa, 0x3c,0x93,0xe8,0x0, +0x8c,0xd7,0x8f,0xfa,0xe0,0x1, 0x8d,0x8a,0x3f,0xb9,0xe0,0x1, 0x1c,0xd1,0x3f,0x9b, +0xa5,0x89,0x37,0xa1,0x3f,0x9b,0x97,0x8f,0xe2,0x0, 0xcf,0xbb,0xe0,0x1, 0x5, 0x39, +0x17,0xff,0x3f,0x98,0xe2,0x1, 0xc7,0xff,0xe2,0x0, 0xcf,0x81,0xe0,0x3, 0x2, 0xc2, +0x9d,0x8a,0x3f,0xec,0xe2,0x1, 0xc7,0xff,0x3d,0xff,0xe0,0x3, 0x4, 0xc5,0xe0,0x1, +0x1d,0x23,0xe2,0x1, 0xc6,0x7f,0xe0,0xe, 0x8f,0x9a,0x37,0xa6,0xe0,0xc, 0x3f,0xac, +0x3d,0xfc,0x17,0x81,0xe0,0x6f,0x3d,0x28,0x3c,0x6f,0xea,0xf, 0x7f,0xfa,0x8f,0x8f, +0xf0,0xc, 0x3d,0x13,0x9e,0xc, 0xe0,0x3, 0x27,0xab,0x17,0xae,0x3d,0xef,0x3e,0x7f, +0xe0,0x2, 0x4, 0x8e,0xf0,0x1, 0x1b,0xa3,0xe8,0xe, 0x8f,0x97,0x37,0xa6,0x3f,0xab, +0x3e,0x7f,0xe0,0x2, 0x2, 0x5, 0xe0,0x2, 0x2c,0x4, 0x67,0x8d,0x3f,0x92,0x8f,0x8f, +0xe2,0x0, 0xcf,0x8f,0xe0,0x1, 0x2, 0xc7,0x14,0x0, 0xe0,0x2, 0x1c,0x85,0xe0,0x1, +0x8f,0xc9,0xe0,0x1, 0x27,0x9d,0xf0,0xf, 0x3d,0x13,0x9e,0xf, 0xe2,0x0, 0xce,0x2f, +0xe0,0x1, 0x2, 0x8d,0x17,0x80,0xe0,0x1, 0x24,0x36,0x66,0xd, 0x3e,0x12,0x8e,0xc, +0xe0,0x1, 0x26,0x35,0xf0,0xb, 0x3d,0x13,0xf0,0x0, 0x9a,0x9b,0xf0,0xb, 0x3d,0x92, +0x8d,0x8b,0xe2,0x0, 0xcd,0x82,0xe0,0x2, 0x5, 0xc0,0xe0,0x1, 0x1d,0x23,0xf0,0x0, +0x63,0x8d,0xe0,0xe, 0x8d,0xaa,0xe0,0xf, 0x3e,0x2f,0xe0,0xc, 0x35,0xa5,0xe8,0x2, +0x39,0x17,0xe8,0x40,0x3e,0x75,0xaf,0x82,0x3, 0x5, 0xea,0xf, 0x7f,0xf9,0x16,0x1, +0xae,0xf, 0x17,0x8a,0x86,0xd, 0xe0,0x0, 0x1c,0xaa,0xc6,0x7f,0xe2,0x1, 0xc6,0x7f, +0x3f,0xbc,0x85,0x89,0x3f,0x97,0x90,0xaf,0x91,0x8f,0x91,0x1f,0x94,0x3f,0x94,0xcf, +0xe8,0x16,0x3b,0x9c,0xe0,0xa, 0x3b,0x96,0xe8,0x0, 0xb1,0x86,0xe0,0x2, 0xc5,0x2c, +0xe8,0x0, 0xb1,0x16,0xc5,0x81,0xe8,0x0, 0xb0,0xa6,0xe8,0x0, 0xb4,0x36,0xe8,0x0, +0xb4,0xc6,0xae,0xd, 0x16,0x7f,0xae,0x4f,0x17,0x83,0xaf,0x8a,0xe0,0x0, 0x1d,0x2a, +0xad,0x8a,0xe7,0xf9,0x0, 0xf7,0xc7,0x7f,0xfa,0x10,0x7c,0xfc,0xfa,0x10,0x7d,0x18, +0xfa,0x11,0x7e,0xf8,0xfa,0x11,0x7e,0x6c,0xea,0x11,0x7b,0xe0,0xfa,0x10,0x7c,0xc, +0xfa,0x12,0x7d,0x84,0xaf,0xf, 0xe0,0x2, 0x1a,0x21,0xe7,0xf9,0x0, 0xbc,0xea,0xf, +0x7e,0xf9,0xaf,0x8d,0xaf,0x8e,0xc0,0x38,0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0x14,0x0, +0xe7,0xfe,0x0, 0xe5,0xe8,0x0, 0x8d,0x8d,0xe2,0x0, 0xcd,0x85,0xe8,0x0, 0x8d,0x88, +0xe7,0xfc,0x5, 0xd9,0xe9,0x28,0x3d,0x97,0x3d,0x48,0xe7,0xfb,0x2d,0x3e,0xe8,0x2a, +0x3c,0x91,0xe7,0xfc,0x25,0x50,0xe7,0xfb,0x0, 0xb8,0xf0,0xf, 0x3c,0x12,0xe8,0x2, +0x39,0x1b,0xa9,0x8f,0xa9,0x82,0xe7,0xf9,0x0, 0xba,0xe0,0x1, 0x1d,0x23,0xe0,0xe, +0x8f,0x9a,0x37,0xa6,0xc7,0xd0,0x3e,0x7f,0xe7,0xfe,0x2, 0x6e,0xf0,0xf, 0x3d,0x92, +0x8e,0xf, 0xe2,0x0, 0xce,0x4, 0xe7,0xfe,0x2, 0xe7,0xf0,0xf, 0x3c,0x12,0x8f,0x8f, +0xe2,0x0, 0xcf,0x8e,0xe0,0x2, 0x2, 0xa4,0xf0,0xf, 0x3d,0x13,0x9d,0x8f,0xe2,0x0, +0xcd,0xbf,0xe0,0x2, 0x5, 0x9d,0xf0,0x1, 0x1b,0xa3,0xe8,0xe, 0x8f,0x97,0x37,0xa6, +0xc7,0xc0,0x3d,0xff,0xe0,0x2, 0x2, 0x14,0x67,0x8d,0x16,0x0, 0x3f,0x92,0xae,0xf, +0x2c,0x5, 0x67,0x8d,0x16,0x0, 0x3f,0x92,0xae,0xf, 0xe8,0x3, 0x39,0x99,0x3b,0x17, +0xe0,0x2, 0x16,0x2c,0xf0,0x2, 0x1b,0xd7,0x90,0x83,0x17,0x80,0x94,0x13,0x94,0xa3, +0x95,0x33,0x95,0xc3,0x3e,0x16,0xe0,0x2, 0xc3,0x2d,0xe8,0x16,0x3b,0x9c,0xf0,0x3, +0x3f,0x12,0xf0,0x0, 0x12,0x83,0xe8,0x2, 0x39,0x17,0xaf,0x8c,0xaf,0x86,0x17,0x88, +0xf0,0x0, 0xaa,0x83,0xe8,0x0, 0xb0,0x86,0xe8,0x0, 0xb4,0x16,0xe8,0x0, 0xb4,0xa6, +0xe8,0x0, 0xb5,0x36,0xe8,0x0, 0xb5,0xc6,0xaf,0x82,0xe7,0xf8,0x0, 0xe0,0x8e,0xf, +0xe7,0xfc,0x26,0x68,0xc6,0x7f,0xae,0xf, 0xe7,0xfc,0x0, 0xe4,0x14,0x3, 0xf0,0xf, +0x3c,0x93,0x9e,0xf, 0xe2,0x0, 0xce,0x7f,0x2, 0x8c,0xe8,0xf, 0x3b,0x9c,0xf0,0xb, +0x3d,0x13,0x97,0x8f,0x95,0x8b,0x3f,0xab,0xe2,0x0, 0xcf,0xc0,0xe7,0xfd,0x2, 0x6f, +0xf0,0x1, 0x1b,0xa3,0xe8,0xe, 0x8f,0x97,0xc7,0xfe,0x37,0xa6,0x3e,0x7f,0x5, 0xc, +0xf0,0xf, 0x3d,0x13,0xe8,0xc, 0x3b,0x9c,0x97,0x8f,0x96,0xc, 0x3f,0xac,0xe2,0x0, +0xcf,0xc0,0xe7,0xfd,0x2, 0x5c,0x67,0x8d,0x3f,0x92,0x8e,0xf, 0x17,0x8f,0xe1,0x2f, +0x3f,0xac,0x27,0x86,0x17,0x82,0xe1,0x2f,0x3f,0xa8,0xe7,0xfd,0x2f,0xd8,0xe0,0x2, +0x1c,0x85,0xe0,0x1, 0x8d,0xc9,0xe0,0x0, 0x2d,0xd1,0xea,0xf, 0x7f,0xf9,0x8f,0x8f, +0xe1,0x2f,0x3f,0x8b,0xe0,0x0, 0x27,0xca,0x17,0x84,0xe1,0x28,0x3f,0xa8,0xe0,0x0, +0x24,0x45,0xf0,0xf, 0x3d,0x13,0xf0,0x0, 0x9a,0x9f,0x7e,0x5, 0xe8,0x40,0x3c,0x65, +0x7e,0x81,0x7f,0x2, 0xf0,0x0, 0x7a,0x84,0x7d,0x8c,0xe0,0x5, 0xd1,0x23,0xe0,0x3, +0x1d,0x12,0x65,0x8c,0xe0,0x5, 0xd0,0xfd,0xe2,0x0, 0xcc,0x0, 0x66,0x5, 0x66,0x81, +0x67,0x2, 0xf0,0x0, 0x62,0x84,0x3, 0x2d,0xf0,0xf, 0x3d,0x92,0x15,0x82,0xad,0x8f, +0x17,0x81,0xe7,0xfe,0x26,0x6c,0xe0,0x0, 0x1d,0xb, 0x8d,0x8a,0xe2,0x0, 0xcd,0x81, +0xe7,0xfd,0x2, 0xbd,0xf0,0x2, 0x1b,0x85,0xe8,0x1, 0x8d,0xc7,0xe0,0x0, 0x25,0xef, +0xe8,0x3, 0x39,0x9a,0x9d,0x3, 0xe2,0x0, 0xcd,0x2f,0xe7,0xfd,0x5, 0xb0,0xe0,0x1, +0x1c,0xa3,0xe0,0xe, 0x8d,0x99,0x35,0xa6,0xc5,0xd0,0x3d,0x7b,0x15,0x81,0xe0,0x6b, +0x3a,0x2f,0x3f,0xeb,0xe7,0xfd,0x0, 0xa3,0xf0,0xf, 0x3d,0x13,0xf0,0x0, 0x9a,0x9f, +0x67,0x8d,0x16,0xf, 0x3f,0x92,0xae,0xf, 0x17,0x80,0x16,0xf, 0xe7,0xfd,0x0, 0x90, +0xe2,0x0, 0xcc,0x2, 0xe7,0xfe,0x2, 0xed,0xe7,0xfc,0x0, 0xd1,0x17,0xa6,0x3d,0xef, +0xe7,0xfc,0x0, 0xd7,0x14,0x1, 0xe7,0xfc,0x0, 0xca,0xe8,0x0, 0x8d,0x8b,0xe2,0x0, +0xcd,0x83,0xe7,0xf9,0x2, 0xaa,0xe0,0xb, 0x31,0xa3,0x3d,0x94,0xe0,0x2, 0x10,0xac, +0x38,0x9b,0xe8,0x0, 0x94,0xa9,0xe0,0x2, 0xc5,0xad,0xad,0xb, 0xe8,0x0, 0x94,0x9, +0xe8,0x0, 0x91,0xb9,0xad,0x1, 0xe8,0x0, 0x95,0xc9,0xe8,0x0, 0x95,0x19,0xb4,0xa4, +0x14,0x81,0xb4,0x4, 0xb5,0x14,0xb1,0xb4,0xb5,0xc4,0xa9,0x44,0xac,0x8d,0x0, 0x86, +0x2d,0x92,0xe2,0x0, 0xcb,0xa, 0xe7,0xfa,0x1, 0x76,0x15,0xa, 0x3d,0x36,0xc3,0x1, +0xe0,0xb, 0x3a,0x1a,0x8d,0xcb,0xe2,0x1, 0xc3,0x7f,0xe0,0x29,0x39,0xb, 0xe0,0x2b, +0x3d,0x85,0x24,0xef,0x3d,0x14,0x15,0xff,0xad,0xca,0x0, 0xec,0x17,0x83,0xe1,0x2f, +0x3f,0xac,0xe7,0xfc,0x2c,0x3c,0xe7,0xfd,0x0, 0xee,0x17,0x81,0xe7,0xfc,0x0, 0xc7, +0xe0,0x0, 0x1f,0x8b,0x14,0x0, 0xf0,0x0, 0x8b,0x8f,0xf2,0x0, 0xcb,0x84,0xe0,0x0, +0x2, 0xee,0xe0,0x1, 0x1f,0x96,0xe0,0x0, 0x1f,0xe, 0x8e,0x8f,0xe0,0x1, 0x1f,0x95, +0x36,0xa8,0x8f,0x8f,0xe0,0x1a,0x96,0x7e,0x3f,0xcd,0x3e,0x7f,0xe0,0x0, 0x5, 0x5f, +0xf0,0x0, 0x23,0xde,0x8, 0xb1,0xf0,0x0, 0x13,0x7f,0x3d,0x68,0x3c,0xe8,0xf8,0x40, +0x3a,0xe6,0x8f,0x8e,0xe8,0x40,0x3e,0x65,0x8e,0x9e,0xe2,0x1, 0xc6,0x7f,0x3f,0xfc, +0xc4,0x1, 0x38,0xe9,0xf8,0x40,0x38,0x66,0xf0,0x40,0x38,0xea,0xe4,0xb, 0x37,0xa8, +0xe4,0xc, 0x36,0xa8,0xe2,0x1, 0xc0,0xff,0xf2,0x1, 0xc0,0x7f,0xf2,0x1, 0xc0,0xff, +0xe2,0x1, 0xc4,0x7f,0xf0,0x40,0x39,0x6f,0xe4,0xb, 0x35,0xc8,0xf0,0x40,0x39,0xed, +0xf0,0x40,0x3a,0x6d,0xe4,0xc, 0x36,0x48,0xc7,0x2, 0x5, 0x83,0xf8,0x40,0x39,0x65, +0x3d,0xf1,0xf8,0x40,0x3a,0xe2,0xf2,0x1, 0xc2,0xff,0x3, 0x82,0x3f,0xe9,0xe8,0x40, +0x3e,0xf0,0x3c,0xef,0xe2,0x1, 0xc4,0xff,0x5, 0x83,0xf8,0x40,0x39,0xe6,0xe8,0x40, +0x3e,0x71,0xf8,0x40,0x3b,0x63,0xf2,0x1, 0xc3,0x7f,0x3, 0x83,0xf0,0x40,0x3a,0x6a, +0xf0,0x40,0x3b,0xf8,0xe8,0x40,0x3d,0x64,0xe2,0x1, 0xc5,0x7f,0xe7,0xff,0x1, 0xbb, +0xe8,0x9, 0x3c,0xa5,0xe8,0xa, 0x3d,0x26,0xe2,0x0, 0xcc,0x84,0x17,0x84,0xe0,0x2a, +0x3f,0xaa,0x14,0x0, 0xe0,0x68,0x3d,0x2a,0x8, 0xe1,0x38,0x82,0x14,0x1, 0x38,0x82, +0x8, 0xb7,0xf8,0x0, 0xc, 0x3a,0xc0,0x7c,0xe0,0x2, 0x19,0xc3,0xe0,0x2, 0x1a,0xbf, +0x97,0xd3,0xe0,0x0, 0x1b,0xb, 0x86,0x45,0x8e,0xd5,0x17,0x0, 0xe2,0xff,0xc7,0xff, +0x8d,0x86,0x6f,0x4, 0xb7,0xd3,0x6f,0x5, 0x6e,0x6, 0x6e,0x87,0xe0,0x1, 0x25,0xfb, +0xe0,0x1, 0x1f,0xad,0xe0,0x0, 0x19,0xe, 0xf0,0x0, 0x94,0x2f,0x93,0xdf,0xf0,0x1, +0x1d,0x51,0x12,0x0, 0x0, 0x89,0xf8,0x40,0x3c,0x79,0x4, 0x1e,0x8d,0x86,0x8e,0xd5, +0x3a,0x7b,0xe0,0x1, 0x3, 0xed,0xe0,0xf, 0x32,0x21,0x3f,0x92,0x8c,0x8f,0x8d,0x1f, +0x3e,0xb9,0xe8,0x0, 0xa7,0x8a,0x3e,0x9a,0x36,0xa1,0x3e,0x9f,0xe2,0x0, 0x7c,0x4, +0xf0,0x0, 0x94,0x8d,0xc2,0x1, 0xef,0xfe,0xdf,0x65,0xe2,0x1, 0xc2,0x7f,0x2c,0x64, +0xe8,0x40,0x3b,0xf9,0x3, 0x64,0x8d,0x86,0x8e,0xd5,0x16,0x1, 0xe0,0x1a,0x9a,0x52, +0xe0,0x1a,0x9f,0xe2,0x97,0x53,0x9d,0x23,0x3f,0x94,0x36,0x2f,0xe2,0xf7,0xc7,0x7f, +0xe0,0x2f,0x3f,0x9a,0x37,0xaa,0x3f,0x4c,0xe0,0x2, 0x1a,0xcb,0x3f,0x4f,0xe0,0x4, +0xcf,0x0, 0x8f,0x85,0xb7,0x53,0x27,0xbb,0xe0,0x1, 0x1e,0x70,0xe0,0x1, 0x1c,0xd1, +0x8f,0xc, 0x8d,0x1c,0x3f,0x3d,0xa4,0x9, 0x3f,0x1a,0x37,0x21,0xe0,0x1, 0x1d,0x77, +0x3f,0x18,0x94,0x8a,0x97,0xe, 0x9b,0x93,0x3f,0x29,0xe0,0x43,0x3f,0x1e,0xe4,0x9, +0x37,0xf, 0xe2,0xe, 0x3c,0xce,0x3f,0x29,0x3f,0x77,0xe0,0x0, 0x2, 0x78,0x13,0x7f, +0x3b,0x1f,0xe2,0x1, 0xc3,0x7f,0x33,0x21,0x3b,0x1c,0x0, 0x95,0x8f,0x2f,0x8f,0xbf, +0x3f,0x3d,0xe0,0x80,0x94,0x9a,0x3f,0x1f,0x37,0x21,0x3f,0x18,0x97,0x8e,0x3f,0xa9, +0xe0,0x43,0x3f,0x9f,0xe4,0xe, 0x37,0x8f,0xe2,0xf, 0x3f,0x4f,0x3f,0xae,0x3f,0xf7, +0xe0,0x0, 0x2, 0x5d,0x3b,0x7c,0x3f,0xec,0xc6,0x2, 0x1, 0xe9,0x17,0x81,0x2d,0x82, +0xad,0x85,0xe7,0xfb,0x17,0x7f,0x92,0xd3,0x37,0xa9,0x3a,0xde,0x3a,0xcf,0xe7,0x7f, +0x17,0xff,0x3a,0xdf,0xe0,0x0, 0x1f,0x8a,0x8f,0x8f,0xb2,0xd3,0x27,0xa9,0xe0,0x1b, +0x97,0x92,0xe0,0x17,0xc7,0xb7,0xe3,0xff,0xc7,0xff,0xe2,0x14,0xcf,0xd8,0x2, 0x8c, +0xe0,0x2, 0x1f,0x85,0xe0,0xa, 0x8f,0x8f,0xe0,0x0, 0x2f,0xe5,0xde,0xd2,0x2c,0x4, +0xe0,0x80,0xca,0x80,0xb2,0xd3,0x16,0x83,0xe0,0x1, 0x1f,0xad,0xe0,0x1b,0x97,0x42, +0x97,0xef,0xe4,0x0, 0xc7,0x8a,0xe2,0x0, 0xcf,0x80,0x3e,0x9f,0xe0,0x6f,0x3c,0x2d, +0x37,0x82,0x3f,0x7f,0x3, 0x5, 0x97,0xd3,0xe0,0x40,0xcf,0x80,0xb7,0xd3,0x97,0xd3, +0xe3,0xdf,0xc7,0xff,0xb7,0xd3,0xe7,0xef,0x16,0xff,0xe0,0x2, 0x1f,0x37,0x97,0xd3, +0x9f,0xe, 0x3f,0xdd,0x37,0x42,0xe7,0xfd,0x16,0xff,0x3f,0xdd,0x3f,0x74,0xb7,0xd3, +0x4, 0x85,0xe0,0x1a,0x9f,0xe2,0x3f,0xfe,0x5, 0x85,0x97,0xd3,0xe0,0x2, 0xcf,0x80, +0xb7,0xd3,0xc0,0x4, 0xf8,0x0, 0xd, 0x28,0xb, 0xe1,0x25,0xa0,0x13,0xff,0x3b,0x9b, +0xe2,0x1, 0xc3,0xff,0xc3,0x81,0x33,0xa1,0xe0,0x0, 0x1f,0xe, 0xe0,0x1, 0x1b,0x76, +0xe0,0x1, 0x1e,0x70,0x3b,0x92,0x8c,0x8e,0x8d,0x1e,0xe0,0xf, 0x3c,0xbd,0xc7,0x2, +0x3f,0x9a,0x37,0xa1,0x3f,0x98,0x97,0x8f,0xc6,0x2, 0x3f,0x77,0xe0,0x40,0xac,0xac, +0xe0,0x40,0xad,0x1c,0xe0,0x80,0xb7,0x96,0x1, 0xef,0xad,0x85,0x17,0x80,0xe7,0xff, +0x0, 0x88,0xe0,0x0, 0x19,0xe, 0x3e,0x6b,0xe7,0xfe,0x0, 0xb2,0x16,0x0, 0xe7,0xfe, +0x0, 0xaf,0xe0,0x2, 0x1f,0xbb,0x17,0x7, 0xaf,0xf, 0x17,0x0, 0xe0,0x1, 0x1f,0xcf, +0xaf,0xf, 0xe7,0xff,0x0, 0xb2,0x0, 0x0, 0x8, 0xb7,0xc0,0x70,0xea,0x1a,0x7f,0xac, +0xe9,0xff,0xc7,0xff,0xf0,0x0, 0x83,0xf, 0xf0,0x0, 0x83,0x9f,0x83,0xaf,0x83,0x3f, +0x82,0xcf,0x82,0x5f,0x81,0xef,0x81,0x7f,0xe0,0x1, 0x84,0xf, 0xe0,0x1, 0x84,0x9f, +0xe0,0x1, 0x85,0x2f,0xe0,0x1, 0x85,0xbf,0xe0,0x1, 0x86,0x4f,0xe0,0x1, 0x86,0xdf, +0xe0,0x1, 0x87,0x6f,0xe0,0x1, 0x87,0xff,0xf0,0x0, 0x6b,0x4, 0x6f,0x93,0xe0,0x0, +0x1f,0x8b,0xf0,0x0, 0x6b,0x85,0x6b,0x86,0x6b,0x7, 0x6a,0x88,0x6a,0x9, 0x69,0x8a, +0x69,0xb, 0x6c,0xc, 0x6c,0x8d,0x6d,0xe, 0x6d,0x8f,0x6e,0x10,0x6e,0x91,0x6f,0x12, +0x8f,0x8f,0xe0,0x1, 0x27,0x9c,0xe0,0x2, 0x1f,0x9f,0x89,0x8f,0xe0,0x1, 0x29,0x97, +0xe0,0x0, 0x1b,0xe, 0xf0,0x2, 0x1a,0xbf,0xe0,0x1, 0x1f,0xd1,0x89,0x16,0x8b,0x86, +0xe8,0x0, 0x8a,0xd5,0xf7,0xff,0x13,0xff,0xf7,0xff,0x13,0x7f,0x14,0x81,0xa2,0xf, +0xe0,0x43,0x3e,0x97,0x3d,0x63,0xf0,0x17,0x3b,0x92,0xf0,0x16,0x3b,0x15,0x3c,0x92, +0xe0,0xb, 0x3e,0xb5,0xe8,0x40,0x3f,0x67,0xe0,0xc, 0x3d,0x92,0x36,0x21,0x3e,0x14, +0x96,0xc, 0x3f,0xe9,0xe2,0x1, 0xc7,0x7f,0xe2,0x1, 0xc7,0xff,0x3f,0x1b,0x3f,0x9b, +0xe2,0x1, 0xce,0x20,0x37,0x21,0x37,0xa1,0xc6,0xff,0x16,0x1, 0x3f,0x14,0x3f,0x94, +0xe0,0x43,0x3e,0x9d,0x3e,0x13,0x5, 0x18,0x21,0x8, 0x94,0xe, 0x39,0xec,0x3d,0x18, +0xe2,0x1, 0xc1,0xff,0xe0,0x43,0x3d,0x1a,0xe8,0x40,0x39,0x76,0x17,0x1, 0x3f,0x13, +0x3, 0x8, 0x94,0xf, 0x39,0xee,0x3d,0x18,0xe2,0x1, 0xc1,0xff,0xe0,0x43,0x3d,0x1a, +0xe3,0xff,0xce,0xff,0x1, 0xce,0xf8,0x0, 0x8b,0x45,0x16,0x1, 0xf7,0xff,0x13,0xff, +0xf7,0xff,0x12,0xff,0x14,0x81,0x3e,0x17,0xf0,0x17,0x3b,0x92,0xf0,0x15,0x3a,0x95, +0x3c,0x92,0x3f,0xec,0xe2,0x1, 0xc7,0xff,0xe0,0xd, 0x3f,0xb5,0xe8,0x40,0x3f,0x67, +0x3f,0xe9,0xe2,0x1, 0xc7,0x7f,0xe2,0x1, 0xc7,0xff,0xe0,0xb, 0x3e,0x92,0x3f,0x1d, +0x3f,0x9d,0xe0,0x43,0x3e,0x9c,0xe8,0x40,0x3e,0xf6,0x35,0xa1,0x37,0x21,0x37,0xa1, +0xf0,0x0, 0x12,0x1, 0x3d,0x94,0x3f,0x14,0x3f,0x94,0xc6,0x1, 0xf0,0x14,0x3a,0x13, +0x3, 0x24,0x96,0x8b,0xe3,0xff,0xc6,0x7f,0xe2,0x1, 0xce,0xa0,0x5, 0x1e,0x21,0x9, +0x94,0xe, 0xe8,0x40,0x39,0xe4,0x3d,0x18,0xe2,0x1, 0xc1,0xff,0xe0,0x43,0x3d,0x1a, +0xe8,0x40,0x39,0x75,0x17,0x1, 0x3f,0x13,0x3, 0x4d,0x94,0xf, 0x39,0xee,0x3d,0x18, +0xe2,0x1, 0xc1,0xff,0xe0,0x43,0x3d,0x1a,0x0, 0xc5,0xea,0x12,0x7f,0x91,0x17,0x0, +0xaf,0xf, 0x14,0x0, 0xc0,0x10,0xb, 0xe1,0xe4,0x8, 0x35,0xf, 0xe2,0xa, 0x3c,0x4a, +0x3c,0xe3,0xe0,0x8, 0x3d,0x28,0xe0,0x4, 0xde,0x67,0xe2,0x0, 0xcc,0x64,0x2, 0x6e, +0x29,0xe, 0xe0,0x0, 0x1f,0xa, 0xea,0x12,0x7f,0x91,0x16,0x81,0x8f,0xe, 0xae,0x8f, +0x14,0x1, 0x27,0x69,0x17,0x3, 0xaf,0xf, 0x14,0x3, 0x0, 0xe5,0x16,0xff,0x3e,0x95, +0x39,0x7d,0x1, 0x70,0x17,0xff,0x3a,0xb7,0x3f,0x92,0xe2,0x0, 0xc9,0x8f,0xe2,0x1, +0xc7,0xff,0x16,0x3, 0x3f,0x95,0x17,0x0, 0xe0,0x6e,0x3a,0xac,0x37,0xa1,0x39,0x7d, +0x3f,0x94,0x96,0xf, 0xe0,0x0, 0x4, 0x4d,0x17,0x84,0x15,0xf4,0x36,0x1, 0x3f,0x90, +0xe0,0xb, 0x3d,0x90,0xe0,0x1, 0x86,0xef,0x3e,0xfc,0x5, 0x6, 0xe0,0x1, 0x86,0xff, +0x3f,0x1d,0xe3,0xff,0xc7,0x7f,0xc7,0xfe,0x3d,0xff,0x1, 0xf5,0x39,0x15,0x31,0x21, +0x3a,0x12,0x97,0x84,0x16,0xa8,0xe4,0xc, 0x37,0x8f,0xe2,0xf, 0x3e,0x4f,0x3e,0x9e, +0x3f,0xac,0xe2,0xb, 0xcf,0xdd,0x3f,0xed,0xe3,0xff,0xc7,0xff,0xe0,0x1a,0x96,0x76, +0xe0,0x0, 0x1e,0x9a,0xe0,0x6e,0x3b,0x2f,0x17,0xa8,0xe2,0xb, 0xce,0x5d,0x3f,0x9e, +0x8e,0xd, 0xe3,0xff,0xc7,0xff,0xe0,0x6e,0x3b,0x2f,0xe2,0x0, 0xce,0x1, 0x1, 0x25, +0x3f,0xee,0xe3,0xff,0xc7,0xff,0xe2,0x1, 0xcf,0xfa,0x2, 0x8f,0xea,0x12,0x7f,0x91, +0x8c,0xf, 0xe3,0xff,0xc7,0x7f,0x3f,0x78,0xe7,0xff,0x5, 0x8e,0x3c,0x6e,0xe2,0x1, +0xc4,0x7f,0xac,0xf, 0xe7,0xff,0x0, 0x88,0xe0,0x1, 0x17,0x7a,0x0, 0xf0,0x17,0x81, +0x3f,0x92,0xe2,0x1, 0xc7,0xff,0x3f,0x95,0x37,0xa1,0x3f,0x94,0x97,0x8f,0x3e,0x1f, +0xe0,0x43,0x3e,0x1c,0xe7,0xff,0x0, 0xaa,0xc7,0x28,0x17,0x80,0xaf,0x8d,0xe3,0xff, +0xc7,0x7f,0x0, 0xd7,0x8, 0xb7,0xe0,0x2, 0x19,0x85,0xe0,0x2, 0x1a,0x6b,0xe0,0xa, +0x8f,0x83,0x17,0x1, 0xe2,0x0, 0xcf,0x81,0xaf,0x4, 0xe0,0x0, 0x1, 0x63,0xe0,0x1, +0x1a,0x94,0xe0,0x1, 0x19,0x2d,0x8f,0x85,0xe0,0x1, 0x13,0xa0,0x37,0xc1,0xe0,0x1, +0x13,0x16,0xaf,0x92,0xb3,0x92,0xb3,0x22,0xe0,0x3, 0xde,0xb4,0xe0,0x0, 0x1f,0x8b, +0xe0,0x0, 0x1f,0xe, 0x8f,0x8f,0x2f,0xaf,0x17,0x80,0xaf,0x84,0xe0,0x1, 0x1f,0x96, +0x8d,0xf, 0xe0,0x1, 0x1f,0x93,0x35,0x28,0x8d,0x8f,0xe0,0x1, 0x1f,0x92,0x35,0xa8, +0x8e,0xf, 0xe0,0x1, 0x1f,0x95,0x36,0x28,0x8e,0x8f,0xe0,0x1, 0x1f,0x91,0x3e,0xca, +0x8f,0xf, 0xe0,0x1, 0x1f,0x90,0x3f,0x4b,0x8f,0x8f,0xe0,0x43,0x3f,0x1e,0x3f,0xcc, +0xe0,0x43,0x3f,0x9f,0xe0,0xc, 0x36,0xc5,0x85,0x5, 0xae,0x3, 0xe0,0x41,0x3d,0xcf, +0xe0,0xc, 0x37,0x5, 0xad,0x12,0xb6,0x92,0xb7,0x22,0xb7,0xf2,0xe0,0x1, 0xb5,0x82, +0xae,0x13,0xb, 0xe1,0xe2,0x0, 0xcf,0x83,0x5, 0x9f,0xe0,0x1a,0x97,0xfe,0xe2,0x2, +0xcf,0xab,0x2, 0x1e,0x8f,0x85,0x17,0x5, 0x37,0xc1,0xaf,0x92,0xe7,0xfe,0x17,0xea, +0xe0,0x1, 0xb7,0x82,0x17,0x84,0xaf,0x3, 0xb3,0x92,0xb3,0x22,0xb3,0x72,0xaf,0x93, +0x8f,0x84,0xe7,0xff,0x27,0xbd,0xe0,0x0, 0x1f,0xb8,0x17,0x1, 0xaf,0xf, 0xb, 0xe1, +0x17,0x80,0xaf,0x84,0xb, 0xe1,0xe7,0xff,0x1, 0xb1,0xe0,0x1a,0x97,0xfe,0xe2,0x3, +0xcf,0x8f,0xe7,0xff,0x2, 0x2b,0x86,0x85,0xe0,0x1, 0x17,0x20,0x17,0x85,0xae,0x92, +0xe0,0x1, 0x16,0xaa,0xb7,0x22,0xb7,0x72,0xe7,0xfe,0x17,0x60,0xaf,0x83,0xb6,0x92, +0xe0,0x1, 0xb7,0x2, 0xaf,0x93,0x0, 0xdd,0xe0,0x2, 0x1f,0xeb,0x17,0x7f,0xaf,0xf, +0xe7,0xfe,0x0, 0xf2,0x8, 0xb4,0xe0,0x2, 0x19,0x85,0xe0,0xa, 0x8f,0x83,0xe2,0x0, +0xcf,0x81,0xe0,0x1, 0x1, 0x0, 0xe0,0x1, 0x19,0x2d,0xe0,0x3, 0x8f,0xc2,0xe2,0x0, +0xcf,0x81,0xe0,0x0, 0x1, 0x4f,0xe0,0x2, 0x1a,0x6b,0x17,0xff,0xaf,0x84,0xdf,0x5b, +0x8f,0x84,0xe0,0x1, 0x27,0x99,0xe0,0x1, 0x8f,0xb3,0x27,0xa1,0x9f,0x12,0x97,0xa2, +0x96,0xf2,0xe4,0x0, 0xc7,0xa, 0xe4,0x0, 0xc7,0x8a,0x37,0x3, 0xe4,0x0, 0xc6,0x8a, +0xe3,0xff,0xc7,0x7f,0x37,0x83,0xe0,0x43,0x3e,0x1f,0x36,0x83,0xe0,0xb, 0x37,0x45, +0xad,0x83,0xe0,0x41,0x3f,0xcf,0xe0,0x41,0x3d,0x4d,0xe0,0xb, 0x36,0x5, 0xb7,0x12, +0xb6,0x22,0xb7,0xb2,0xb6,0xf2,0xe0,0x1, 0xb5,0x2, 0xad,0x93,0x8f,0xc3,0xe2,0x1, +0xcf,0xaa,0x1, 0x13,0xe0,0x1, 0x1f,0x8f,0x8e,0xf, 0xe0,0x1, 0x1f,0x8e,0x36,0x28, +0x8e,0x8f,0xe0,0x1, 0x1f,0x8d,0x36,0xa8,0x8f,0xf, 0xe0,0x1, 0x1f,0x8c,0x3f,0x4c, +0x8f,0x8f,0xb7,0x42,0x3f,0xcd,0xb7,0xd2,0xe0,0x1, 0x1f,0x8b,0x8f,0xf, 0xe0,0x1, +0x1f,0x8a,0x37,0x28,0x8f,0x8f,0x3f,0xce,0xe0,0x41,0x3f,0xcf,0xb7,0xb2,0xa, 0x61, +0xe0,0x1, 0x1f,0x89,0xe0,0x1, 0x1f,0x10,0x8e,0xf, 0xe0,0x1, 0x1f,0x92,0x8f,0xe, +0x8e,0x8f,0xe0,0x1, 0x1f,0x88,0x36,0xa8,0x8f,0x8f,0x3f,0x4d,0x16,0x84,0x36,0x28, +0xae,0x83,0xe0,0x1, 0x16,0x96,0xe0,0x1, 0x1d,0x94,0x3f,0xcc,0xb6,0x92,0xe0,0x0, +0x16,0xf8,0xe0,0x41,0x3f,0xcf,0x85,0x8b,0xb6,0xa2,0x16,0x0, 0xe0,0x2, 0x1e,0xeb, +0xe0,0x1, 0xb7,0x82,0x17,0x83,0xad,0x92,0xae,0xd, 0xb7,0x72,0xaf,0x93,0xe7,0xff, +0x0, 0x94,0xe0,0x1, 0x1f,0x89,0xe0,0x1, 0x1f,0x10,0x8e,0xf, 0xe0,0x1, 0x1f,0x92, +0x8f,0xe, 0x8e,0x8f,0xe0,0x1, 0x1f,0x88,0x36,0xa8,0x8f,0x8f,0xe0,0x1, 0x19,0x2d, +0x3f,0x4d,0x16,0x89,0x36,0x28,0xae,0x83,0xe0,0x2, 0x16,0xac,0xe0,0x1, 0x1d,0x94, +0x3f,0xcc,0xb6,0x92,0xe0,0x2, 0x16,0x8e,0xe0,0x41,0x3f,0xcf,0x85,0x8b,0xb6,0xa2, +0x16,0x0, 0xe0,0x2, 0x1e,0xeb,0xe0,0x1, 0xb7,0x82,0x17,0x88,0xad,0x92,0xae,0xd, +0xb7,0x72,0xaf,0x93,0xe0,0x2, 0x1f,0xa0,0x8f,0x8f,0xe7,0xfe,0x2f,0xe6,0xe0,0x3, +0x8f,0xc2,0xe7,0xfe,0x2f,0xe2,0xe0,0x1, 0x1f,0x87,0x8f,0xf, 0xe0,0x1, 0x1f,0x86, +0x37,0x28,0x8f,0x8f,0x3f,0xce,0xb7,0x92,0xe7,0xfe,0x0, 0xd7,0x3c,0xe8,0xe0,0x1, +0x1c,0x41,0xe7,0x0, 0x16,0x0, 0xe0,0xff,0x15,0xff,0x15,0x0, 0xe7,0xdb,0x0, 0x83, +0x8, 0xb7,0xf8,0x0, 0xc, 0x38,0xe0,0x2, 0x1f,0x3f,0x8f,0xfe,0x8a,0x6e,0x89,0xde, +0xe0,0x0, 0x27,0xc1,0x11,0x7f,0x39,0x1f,0xe2,0x1, 0xc1,0x7f,0xe0,0x2, 0x1f,0xb0, +0x31,0x21,0xe0,0x2, 0x1b,0x2f,0xf0,0x1, 0x1c,0x40,0x3a,0xe8,0x39,0x1f,0x13,0x80, +0x22,0x34,0x14,0x0, 0x3f,0x67,0xf0,0x40,0x3b,0x63,0xe3,0xff,0xc7,0x7f,0xe0,0xff, +0x16,0x7f,0x3f,0xe8,0xe0,0xd, 0x37,0x21,0x3e,0x95,0x96,0x8d,0xe4,0x17,0x36,0xf, +0xe4,0x9, 0x36,0x8f,0xf2,0xa, 0x3b,0xcc,0xe2,0xb, 0x3c,0xcd,0xe8,0xa, 0x3d,0x27, +0x3d,0xa9,0x3d,0x7b,0xc7,0x81,0xe2,0x1, 0xc7,0xff,0x3c,0x1d,0xe0,0x6d,0x3d,0x2c, +0x3a,0x7f,0xe8,0xe, 0x3f,0x16,0x3e,0x6d,0xe3,0xff,0xc7,0x7f,0x1, 0xe4,0xe0,0x80, +0xb6,0x16,0x3c,0xe4,0xe0,0x4, 0xdc,0x40,0x3b,0x72,0xe8,0x80,0xb4,0x18,0xc3,0x81, +0x1, 0xd0,0xf8,0x0, 0xc, 0x28,0xb, 0xe1,0xe0,0xff,0x16,0x7f,0x3c,0x64,0x0, 0xf0, +0x24,0xbd,0x8, 0xb3,0x16,0x7f,0x3e,0x19,0xe2,0x1, 0xc6,0x7f,0x11,0x7e,0x39,0x18, +0x36,0x21,0x3e,0x18,0x39,0xe2,0x14,0x0, 0xe0,0x43,0x3d,0x9a,0xe0,0x80,0x97,0x13, +0xe4,0xd, 0x37,0xf, 0xe2,0xf, 0x3e,0xce,0x3f,0xad,0xe0,0x43,0x3f,0x9f,0x3f,0xfa, +0xe0,0x6f,0x3a,0x2b,0x39,0xfc,0x3c,0x1f,0x1, 0xf2,0xe0,0x4, 0xdc,0x15,0xe2,0x0, +0xcc,0x8, 0x16,0x88,0xe0,0x6d,0x3b,0x28,0x0, 0x88,0x3f,0xad,0xe0,0x43,0x3f,0x9f, +0xe0,0x80,0xb7,0x92,0x39,0xf2,0x1, 0x11,0x97,0x92,0xe2,0x0, 0xcf,0x87,0xe0,0xe, +0x3e,0x9f,0xe0,0x43,0x3f,0x1e,0x2, 0x72,0xe3,0xff,0xcf,0xf8,0xe0,0x6f,0x3d,0x2e, +0xe0,0x80,0xb7,0x92,0x39,0xf2,0x1, 0xf1,0x9, 0xe1,0x38,0x82,0x8, 0xb7,0xf8,0x0, +0xc, 0x39,0xe0,0x2, 0x1f,0xbf,0xe0,0x1, 0x1b,0x51,0x8a,0x6f,0xa4,0x86,0xe0,0x1, +0x1c,0x41,0xe7,0x0, 0x16,0x0, 0xe0,0xff,0x15,0xff,0x15,0x0, 0x8a,0xff,0xef,0xfe, +0xdc,0xe2,0x22,0x2f,0xc2,0x7f,0xe2,0x1, 0xc2,0x7f,0xe0,0x45,0xc2,0x43,0xe0,0x1, +0x1f,0xcd,0x32,0x21,0xe0,0x1, 0x19,0xbf,0xe0,0x19,0x32,0xa1,0x3a,0x1f,0x11,0x0, +0xf0,0x0, 0x14,0x3, 0xe0,0x0, 0x13,0xda,0xe0,0x80,0x97,0x93,0xe8,0x40,0x3c,0xe8, +0xe4,0x8, 0x37,0x8f,0xe2,0xf, 0x3c,0x4f,0xe0,0x8, 0x3f,0xa8,0xe0,0x4, 0xdb,0xc4, +0xe2,0x0, 0xcc,0x5a,0xa7,0x86,0x3d,0x67,0xe0,0x6a,0x3b,0x28,0xe3,0xff,0xc5,0x7f, +0xe0,0x8, 0x3f,0x92,0x3c,0xe5,0xdf,0x85,0x3a,0x73,0xe8,0x2, 0x39,0x19,0x1, 0xe5, +0xf8,0x0, 0xc, 0xa8,0xb, 0xe1,0x8, 0xb3,0xe0,0x2, 0x1f,0xbf,0xe0,0x1, 0x1c,0x4d, +0x89,0xff,0x89,0x6f,0xdf,0x26,0x21,0xa5,0x14,0x7f,0x3c,0x13,0xe2,0x1, 0xc4,0x7f, +0xe0,0x2, 0x1d,0xb0,0xc4,0x1, 0x34,0x21,0xe0,0x1, 0x1c,0xcd,0x3c,0x1b,0xe0,0xa, +0x31,0xa1,0x3e,0xe9,0x17,0x80,0x21,0x11,0x97,0xd, 0x96,0xb, 0xe2,0x0, 0xcf,0x0, +0x4, 0x4, 0xe2,0x0, 0xce,0x0, 0x5, 0x3, 0x3f,0x2c,0xb7,0xd, 0xc7,0x81,0xe2,0x1, +0xc7,0xff,0x39,0x7f,0x3e,0x9a,0x1, 0xf1,0xc5,0x82,0x3d,0xf8,0xc4,0x82,0x1, 0xea, +0x9, 0xe1,0xe2,0x0, 0xcc,0x80,0x4, 0x5, 0x3c,0x5a,0xe4,0x8, 0x34,0x4f,0x38,0x82, +0xe0,0x41,0x3d,0xa, 0xe3,0x8, 0x3d,0x58,0xe4,0x8, 0x34,0x4f,0x38,0x82,0x8, 0xb3, +0xe4,0xe, 0x34,0x8f,0xe2,0xf, 0x3f,0x49,0x3f,0xae,0xe4,0x0, 0xc7,0x8a,0x39,0x68, +0xe1,0xff,0x14,0x7e,0x14,0x94,0x3c,0x5f,0x39,0xea,0xe0,0x4, 0xdb,0xa9,0xe4,0xf, +0x31,0xf, 0xe4,0xa, 0x31,0x8f,0xe2,0x2, 0x3f,0xc2,0xe2,0x3, 0x3d,0x43,0x39,0x2f, +0x39,0xaa,0xe3,0xff,0xc4,0x7f,0xe3,0xff,0xc1,0xff,0xe3,0xff,0xc1,0x7f,0xe1,0x22, +0x3c,0x12,0xe1,0x28,0x3c,0x13,0x3c,0x52,0x9, 0xe1,0xe3,0xff,0xc4,0x7f,0x24,0x94, +0x16,0xff,0x3e,0x99,0xe2,0x1, 0xc6,0xff,0xe0,0x1, 0x1f,0x4d,0xe0,0xf, 0x34,0x21, +0x3e,0x98,0xc7,0xfe,0x36,0xa1,0x3f,0x9e,0x3e,0x9e,0x97,0x1f,0x37,0x2, 0xe0,0x80, +0xb7,0x1f,0x3f,0xfd,0x1, 0xfb,0x38,0x82,0x8, 0xb7,0xf8,0x0, 0xc, 0x3e,0xc0,0x6c, +0xe0,0x2, 0x1f,0xff,0xf0,0x2, 0x1e,0xbf,0x8f,0xf, 0xe8,0x0, 0x8e,0x4d,0xe8,0x0, +0x8e,0xdd,0xe2,0x0, 0xcf,0x1, 0x7e,0x4, 0x3b,0xe8,0x7e,0x83,0x3b,0x69,0x1, 0x6, +0x8f,0x8f,0xe2,0x0, 0xcf,0x83,0xe0,0x2, 0x1, 0x4a,0xe0,0x1, 0x1f,0x96,0xe0,0x1, +0x1f,0x15,0x8f,0x8f,0xf0,0x0, 0x8c,0x8e,0x37,0xa8,0xf0,0x19,0x3c,0xcf,0xf0,0x0, +0x7c,0x81,0xe0,0x1, 0x23,0xf7,0x67,0x84,0x11,0x80,0x3f,0x6f,0xc7,0x7f,0x7f,0x5, +0xf0,0x40,0x3f,0x63,0xf0,0x0, 0x1e,0xe, 0xe0,0x1, 0x1a,0x4d,0xe0,0x0, 0x12,0x83, +0xe0,0x1, 0x2b,0x19,0xe8,0x0, 0x8f,0xc, 0xf8,0x0, 0x8d,0x1c,0x3f,0x7f,0xe0,0x1, +0x1, 0x1, 0xe8,0x0, 0x89,0x5d,0x66,0x1, 0x39,0x3e,0xe8,0x2, 0x39,0x1a,0xf0,0x40, +0x3d,0x62,0xf3,0xff,0xc5,0x7f,0xf0,0xf, 0x35,0x21,0x3f,0x94,0x96,0x8f,0xe4,0x9, +0x36,0x8f,0xe2,0xf, 0x3c,0xcd,0x3f,0xa9,0x3f,0xfc,0xe0,0x0, 0x2, 0x6b,0xe0,0x1, +0x27,0x0, 0x66,0x3, 0xf0,0x9, 0x3d,0x2c,0x66,0x5, 0x34,0xa1,0x3e,0x7e,0x3c,0x94, +0x91,0x9, 0x5, 0x7, 0x64,0x83,0xe8,0x9, 0x3c,0x9a,0x34,0xa1,0x3c,0x94,0x91,0x89, +0x66,0x5, 0x3e,0x7e,0x3f,0x62,0xe0,0x6e,0x39,0xa3,0x39,0xee,0xe2,0x0, 0xce,0x80, +0xe0,0x0, 0x4, 0x76,0x3f,0x63,0xe3,0xff,0xc7,0x7f,0x37,0x4f,0xe0,0x0, 0x27,0x7d, +0x3f,0x62,0xe3,0xff,0xc7,0x7f,0x37,0x4f,0xe0,0x0, 0x27,0x77,0x17,0x8e,0xe8,0xf, +0x3f,0x9a,0x37,0xa1,0xe8,0xf, 0x3f,0x9d,0x9c,0xf, 0x3c,0xe5,0xe0,0x4, 0xda,0xf8, +0x11,0x7c,0xe8,0x2, 0x39,0x1a,0xf0,0x40,0x3c,0x68,0xf3,0xff,0xc4,0x7f,0xe3,0xff, +0xc1,0x7f,0x17,0x7f,0xe8,0xe, 0x3f,0x1a,0xf0,0x40,0x3c,0xee,0xf3,0xff,0xc4,0xff, +0x17,0x8e,0xe8,0xf, 0x3f,0x99,0x37,0xa1,0x3c,0xe5,0xe8,0xf, 0x3f,0x9d,0xf0,0x1, +0x25,0x63,0xf0,0x40,0x3c,0xf2,0xe0,0x1, 0x1, 0x1, 0x9c,0xf, 0xe0,0x4, 0xda,0xd8, +0xe3,0xff,0xc4,0x7f,0xf0,0x40,0x3c,0x78,0xe0,0x1, 0x1, 0xd0,0xf8,0x40,0x3d,0x69, +0x0, 0xe1,0x17,0xff,0xe8,0xf, 0x3f,0x9b,0xf0,0x40,0x3d,0xef,0xf2,0x1, 0xc5,0xff, +0xf0,0x1, 0x2d,0x96,0x2b,0x6, 0x14,0x80,0xe8,0x40,0x3c,0x6e,0xe0,0x0, 0xd9,0xe1, +0x15,0x81,0xe8,0xb, 0x3d,0x9e,0xf0,0x40,0x3f,0x6b,0xf2,0x1, 0xc7,0x7f,0xe8,0x40, +0x3b,0xfe,0xf0,0x0, 0xc6,0x2, 0xe0,0x0, 0x1, 0x55,0xe8,0x0, 0x8f,0xcd,0xe7,0xfe, +0x23,0x6b,0xe8,0x7, 0x8f,0x4c,0xf8,0x7, 0x8d,0x5c,0xe7,0xfe,0x0, 0xe9,0x67,0x4, +0x39,0x63,0xe2,0x0, 0xcf,0x1, 0xe7,0xff,0x5, 0x13,0x67,0x3, 0xe8,0xe, 0x3f,0x1a, +0x37,0x21,0x3f,0x14,0x91,0x8e,0x39,0x63,0xe7,0xff,0x0, 0x8a,0xe0,0x41,0x3f,0x2, +0xe3,0xff,0xc7,0x7f,0x37,0x4f,0x27,0x8, 0xe0,0x41,0x3f,0x3, 0xe3,0xff,0xc7,0x7f, +0x37,0x4f,0xe7,0xff,0x2f,0xd, 0xe4,0x0, 0xc7,0x8a,0xe1,0xff,0x14,0x7e,0x3c,0x5f, +0x14,0x94,0xe0,0x4, 0xda,0x85,0xe4,0xe, 0x31,0xf, 0xe2,0xf, 0x3f,0x42,0x3f,0xae, +0xe3,0xff,0xc4,0x7f,0xe3,0xff,0xc7,0xff,0xe1,0x2f,0x3c,0x1f,0xe7,0xff,0x27,0xba, +0xe4,0xe, 0x31,0x8f,0xe2,0xf, 0x3f,0x43,0x3f,0xae,0xe3,0xff,0xc7,0xff,0xe1,0x2f, +0x3c,0x1f,0xe7,0xfe,0x2f,0xed,0x15,0x81,0xe8,0xb, 0x3d,0x9e,0xf0,0x40,0x3f,0x6b, +0xf2,0x1, 0xc7,0x7f,0xe8,0x40,0x3b,0xfe,0xf0,0x0, 0xc6,0x2, 0xe7,0xff,0x1, 0xaf, +0xc0,0x14,0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0x79,0x2, 0xf0,0xd, 0x34,0xa1,0xc6,0x9a, +0xf8,0x0, 0x9d,0x5d,0xf0,0x2, 0x3e,0x9d,0xf0,0x0, 0x15,0x81,0xe0,0x80,0x9c,0x12, +0x3c,0xe5,0xe0,0x4, 0xda,0x4d,0xe3,0xff,0xc4,0x7f,0xf0,0x40,0x3c,0x78,0xf0,0x0, +0x13,0x81,0x14,0x81,0xf8,0x17,0x3b,0x9b,0xe8,0x9, 0x3c,0x99,0xe7,0xfe,0x1, 0xf3, +0xf8,0x40,0x3d,0x79,0xf0,0x40,0x3c,0xe9,0xf3,0xff,0xc4,0xff,0x5, 0x88,0xf8,0x40, +0x3d,0xe7,0xf2,0x1, 0xc5,0xff,0xf2,0x0, 0xcd,0x85,0x1, 0xe1,0x16,0xff,0xe8,0xd, +0x3e,0x9b,0x67,0x82,0x66,0x2, 0xe2,0x1, 0xc6,0xff,0x37,0xa1,0x3e,0x9c,0xc7,0xfe, +0x36,0xa1,0x3f,0x94,0x3e,0x94,0x97,0x1f,0x37,0x2, 0xe0,0x80,0xb7,0x1f,0x3f,0xfd, +0x1, 0xfb,0xe7,0xfe,0x2b,0x5f,0xe7,0xfe,0x0, 0xd8,0xe0,0x1, 0x1f,0x96,0xe0,0x1, +0x1f,0x15,0x8f,0x8f,0x8c,0xe, 0x37,0xa8,0x3c,0x4f,0xe0,0x4, 0xd9,0x7b,0xe0,0x3, +0x1d,0x13,0xe0,0x3, 0x1d,0x94,0xe0,0x4, 0xd8,0x1c,0xe0,0x4, 0xd9,0xa1,0xe3,0xff, +0xc4,0x7f,0x7c,0x1, 0xe7,0xfd,0x0, 0xaf,0xf0,0x0, 0x7d,0x2, 0xf8,0x40,0x3c,0xea, +0xe7,0xff,0x0, 0xa5,0xf8,0x40,0x3c,0xea,0xf0,0x0, 0x7d,0x2, 0xe7,0xff,0x0, 0x9f, +0xe0,0x2, 0x1f,0xff,0x8f,0x8f,0xe2,0x0, 0xcf,0x83,0x1, 0x2, 0x38,0x82,0x8, 0xb1, +0xe0,0x1, 0x1f,0x14,0xe0,0x1, 0x1f,0xad,0x86,0x8e,0xe0,0x0, 0x17,0x5a,0xb7,0x1f, +0xb7,0x2f,0xe7,0xff,0x17,0x26,0xae,0x9f,0xb7,0x3f,0xe0,0x3, 0xda,0x8b,0xe0,0x0, +0x1f,0x8b,0x8c,0xf, 0x2c,0xa, 0xe0,0x0, 0x1f,0x8a,0x8c,0xf, 0x2c,0x2, 0x8, 0xe1, +0x14,0x81,0x8, 0xa1,0xe7,0xfc,0x0, 0xda,0x14,0x80,0xde,0x57,0x0, 0xf5,0xe0,0x2, +0x1f,0xff,0x8f,0x8f,0xe2,0x0, 0xcf,0x81,0x1, 0x2, 0x38,0x82,0xe0,0x0, 0x1f,0x8b, +0x8c,0xf, 0x24,0x7c,0x14,0x80,0xe7,0xfc,0x0, 0xc9,0x8, 0xb7,0xe1,0xff,0xc0,0x30, +0x14,0xc, 0xe0,0x0, 0x15,0x48,0x14,0x80,0x3c,0x10,0xe0,0x4, 0xdb,0xe7,0xe0,0x3, +0xda,0x61,0xe0,0x2, 0x1f,0xa8,0xe0,0x2, 0x1a,0x3f,0x87,0x8f,0xe0,0x3, 0x8f,0x24, +0xe2,0x0, 0xc7,0x81,0x3f,0x7f,0xe0,0x2, 0x1, 0x44,0x89,0x4, 0x8f,0xa4,0x3f,0x6f, +0xe2,0x1, 0xc7,0x7f,0xe2,0x0, 0xcf,0x20,0x3c,0xef,0x5, 0x82,0x14,0xa0,0xe2,0x1, +0xc4,0xff,0x39,0xe9,0xe0,0x2, 0x24,0xb9,0x12,0xff,0xe0,0x1, 0x1f,0xd1,0xfa,0x1a, +0x7b,0xbc,0x3a,0x99,0x8d,0x54,0xf9,0xff,0xc3,0xff,0xe3,0xff,0xc2,0xff,0x3d,0xe2, +0xf0,0x0, 0xa3,0xf, 0xe2,0x1, 0xc5,0xff,0xe8,0x5, 0x3a,0x97,0x35,0x21,0x17,0x80, +0x25,0x9c,0x14,0x98,0x3c,0xbf,0xe2,0x0, 0x7f,0x8c,0x3f,0x99,0xe0,0x1, 0x9c,0x1f, +0xa6,0x8f,0xe8,0x40,0x3f,0x66,0x17,0x80,0xc7,0x81,0xe3,0xff,0xc7,0xff,0x96,0xe, +0x3f,0xfb,0x3e,0x9c,0x3f,0x1a,0x1, 0xf9,0xe2,0x0, 0x7f,0x8c,0x3f,0x99,0xe0,0xe, +0x3d,0x98,0xbe,0x8f,0xe0,0x1, 0xb7,0x1f,0xe8,0x40,0x3a,0xf7,0xf0,0x0, 0xc3,0x2, +0x1, 0x4, 0xe8,0x80,0x8f,0x97,0x0, 0xdd,0x64,0x3, 0x5c,0x8f,0x12,0x8c,0x3a,0x90, +0xe0,0x4, 0xd9,0x1a,0xb4,0x65,0xe0,0x2, 0x9c,0xd5,0xa4,0x65,0xe0,0x4, 0xd9,0x14, +0xe0,0x2, 0xb4,0x25,0xe0,0x4, 0x9c,0x95,0xe0,0x1, 0xa4,0x45,0xe0,0x4, 0xd9,0xc, +0xe0,0x3, 0xb4,0x65,0xe0,0x0, 0x21,0xdc,0xf7,0xff,0x10,0x7f,0xe0,0x1, 0x1f,0xd1, +0xfa,0x1a,0x79,0xbc,0xf0,0x10,0x38,0x13,0xf0,0x0, 0x8a,0x54,0xf9,0xff,0xc1,0xff, +0xf3,0xff,0xc0,0x7f,0x3c,0xe2,0xf0,0x0, 0xa1,0xf, 0xe2,0x1, 0xc4,0xff,0xf8,0x10, +0x38,0x13,0xf0,0x14,0x32,0x21,0x15,0x0, 0xf0,0x40,0x38,0xe5,0x24,0xb8,0xe4,0x0, +0xc5,0x18,0xf0,0x0, 0x13,0x8, 0xe8,0xa, 0x3d,0x11,0xf0,0x0, 0x13,0x96,0x14,0x4, +0xf0,0x0, 0x92,0xea,0xf0,0x16,0x3b,0x1a,0xf0,0x17,0x3b,0x9a,0x3c,0x1a,0xe8,0x40, +0x3f,0x62,0x17,0x80,0xc5,0x14,0x0, 0x8e,0xa5,0x88,0x96,0xa, 0xc7,0x81,0xe3,0xff, +0xc7,0xff,0x3e,0x9b,0xc6,0x1, 0x3f,0xf9,0xbe,0x88,0xe8,0xe, 0x3f,0x14,0xb6,0xa, +0x1, 0x16,0x96,0x8e,0xe8,0x40,0x3e,0xf5,0x5, 0x70,0xe8,0x0, 0xa5,0x86,0xe8,0x0, +0x96,0x7, 0xc7,0x81,0xe3,0xff,0xc7,0xff,0x3e,0x9b,0xc6,0x1, 0x3f,0xf9,0xe8,0x0, +0xbe,0x86,0xe8,0xe, 0x3f,0x14,0xe8,0x0, 0xb6,0x7, 0x1, 0xec,0xf8,0x40,0x39,0xf0, +0xf0,0x0, 0xc1,0x2, 0x1, 0x4, 0xe8,0x80,0x8d,0x13,0x0, 0xc1,0x13,0xc, 0x3b,0x10, +0xe0,0x0, 0x13,0xd4,0x3b,0x90,0x3a,0xe6,0xe0,0x1, 0x9f,0xa5,0x3c,0xef,0xe0,0x0, +0x27,0xfa,0xa4,0x15,0xe0,0x4, 0xd8,0xa0,0xb4,0x75,0xe0,0x1, 0x9f,0xb5,0x3c,0xef, +0xe0,0x0, 0x27,0xed,0xa4,0x25,0xe0,0x4, 0xd8,0x97,0xe0,0x1, 0xb4,0x5, 0xc2,0x98, +0x3b,0xf5,0x1, 0xeb,0xe0,0x0, 0x1f,0x8e,0x17,0x4, 0x3f,0x10,0xe0,0x1b,0x95,0x1f, +0x3d,0xee,0x17,0x80,0xe0,0x1, 0x14,0x16,0xe7,0xfe,0x14,0xea,0xe3,0xfe,0xcd,0x38, +0xe0,0x0, 0x3, 0x44,0xe0,0x1, 0x9e,0xb6,0xe2,0x0, 0xce,0xe3,0x5, 0xbe,0xe0,0x1, +0x96,0x86,0xe0,0xc, 0x37,0xa1,0xe3,0xfe,0xce,0xea,0xb6,0x8e,0x3e,0x1b,0x3, 0x3d, +0xb4,0x8c,0xc7,0x81,0xe2,0x0, 0xcf,0x83,0xc3,0x18,0xc7,0x2, 0x1, 0xe8,0xe0,0x0, +0x21,0xc5,0xe0,0x1, 0x1f,0xd1,0xea,0x1a,0x7a,0xbc,0xc1,0xff,0xe9,0xff,0xc2,0xff, +0xe3,0xff,0xc1,0xff,0xa4,0x8f,0xe2,0x1, 0xc1,0x7f,0x39,0x95,0x3c,0x65,0x17,0x80, +0xe0,0xb, 0x3c,0x25,0x21,0x15,0xe2,0x0, 0x7f,0x4, 0x37,0xa1,0x3f,0x9e,0x9d,0xf, +0x17,0x0, 0x8f,0xd4,0x3f,0xbe,0xc7,0x1, 0x3f,0x9b,0x37,0xa1,0x3f,0x99,0x96,0x8f, +0x3e,0x6e,0xe3,0xff,0xc6,0x7f,0x3e,0xaa,0x3e,0x72,0xb6,0x8f,0x4, 0xf3,0x3c,0x73, +0x1, 0x1c,0xe0,0x80,0x8f,0x98,0x0, 0xe5,0x96,0xf6,0xe0,0xc, 0x37,0xa1,0xe3,0xfe, +0xce,0xea,0xb6,0x8e,0x3e,0x1b,0x4, 0x45,0xe2,0x1, 0xce,0x96,0xe0,0xd, 0x37,0xa1, +0x3e,0x9b,0x5, 0x40,0xb4,0xd, 0xe7,0xff,0x0, 0xbe,0xe0,0x1, 0xb7,0x85,0xe7,0xff, +0x0, 0x98,0xb7,0xf5,0xe7,0xff,0x0, 0x8b,0xe0,0x0, 0xc0,0x50,0xb, 0xe1,0x89,0x14, +0x8f,0xb4,0xe7,0xfd,0x0, 0xbe,0x3c,0x69,0x39,0xe9,0xe7,0xfe,0x0, 0x81,0xe0,0x1, +0x1f,0xd1,0xe0,0x1, 0x1c,0x3e,0xa4,0x8f,0xe7,0xd1,0x0, 0x96,0x8, 0xb1,0xe0,0x1, +0xd1,0xaa,0x2c,0x5, 0xe0,0x2, 0x1f,0xfa,0xac,0xf, 0x8, 0xe1,0xe0,0x2, 0x1f,0xfa, +0x17,0x1, 0xaf,0xf, 0x8, 0xe1,0x8, 0xb1,0xe0,0x1, 0x1f,0xd1,0xe0,0x1, 0x1c,0x3e, +0xa4,0x8f,0xef,0xfe,0xd8,0x81,0xde,0x82,0xdc,0xa, 0xdc,0x4e,0xe0,0x1, 0xd1,0x93, +0x2c,0x5, 0xe0,0x2, 0x1f,0xfa,0xac,0xf, 0x8, 0xe1,0xe0,0x2, 0x1f,0xfa,0x17,0x1, +0xaf,0xf, 0x8, 0xe1,0xea,0x12,0x7f,0x98,0xe0,0x1, 0x17,0x2a,0xe0,0x2e,0x3c,0xe, +0xa6,0x8f,0x27,0x2, 0x26,0x89,0xe2,0x0, 0xce,0x81,0xe0,0x1, 0x1f,0x2e,0x1, 0xe, +0x17,0xea,0xaf,0x8e,0x38,0x82,0xe0,0x1, 0x1f,0x2e,0x8e,0x8e,0xc6,0xff,0xae,0x8e, +0x16,0x80,0xbe,0x8f,0x17,0xea,0xaf,0x8e,0x38,0x82,0xe2,0x0, 0xcc,0x9, 0x1, 0xf9, +0x16,0x82,0xbe,0x8f,0x0, 0xee,0xe2,0x1, 0xcc,0x6b,0x1, 0x22,0xea,0x12,0x7f,0x14, +0x8e,0xe, 0x16,0x81,0x3e,0x9c,0xea,0x1a,0x7f,0xdc,0xe2,0x1, 0xc6,0xff,0xe9,0xff, +0xc7,0xff,0xe2,0x0, 0xce,0x83,0x3f,0x9c,0x8c,0xf, 0x1, 0x8c,0x16,0x80,0xea,0x12, +0x7f,0x98,0xae,0x8e,0x17,0x0, 0xbf,0xf, 0x17,0x6b,0xe0,0x1, 0x1f,0xae,0xaf,0xf, +0x38,0x82,0xe0,0x1, 0x1f,0xae,0xae,0x8e,0x17,0x6b,0xaf,0xf, 0x38,0x82,0xea,0x12, +0x7f,0x94,0x17,0x1, 0xaf,0xf, 0x17,0x6b,0xe0,0x1, 0x1f,0xae,0xaf,0xf, 0x38,0x82, +0x17,0x95,0x3f,0x98,0xe2,0x1, 0xc7,0xff,0xe2,0x0, 0xcf,0x81,0x5, 0x82,0x38,0x82, +0x3c,0x69,0xe7,0xff,0x0, 0xa9,0xe0,0x1, 0x1f,0xfd,0xea,0x12,0x7f,0x16,0x8c,0xf, +0xe0,0xd, 0x34,0x22,0x9f,0x8e,0xc6,0x81,0x3f,0xfd,0x5, 0x4, 0xe0,0x1, 0x14,0x7f, +0x38,0x82,0xc7,0x81,0xe3,0xff,0xc7,0xff,0xe2,0x0, 0xcf,0x81,0xb7,0x8e,0x1, 0xb, +0xe2,0x0, 0xcf,0x82,0x1, 0x76,0xe0,0x2, 0x1f,0x74,0xa7,0xe, 0x3f,0x9e,0xe0,0x40, +0x8c,0x3f,0x38,0x82,0xe0,0x2, 0x1f,0x85,0xe0,0xa, 0x8c,0x3f,0x38,0x82,0xe0,0x1, +0x1e,0xe0,0x17,0x6, 0xac,0xd, 0x9f,0x8d,0x37,0xcc,0xe2,0x0, 0xc7,0x87,0x3f,0x1f, +0xe2,0x0, 0xc7,0x5, 0x27,0xc, 0xe2,0x0, 0xcf,0x81,0xe0,0x2, 0x1f,0x85,0x17,0x1, +0xe0,0x4, 0xaf,0x7f,0x5, 0x8a,0x17,0x80,0xaf,0x8d,0x38,0x82,0xe0,0x2, 0x1f,0x85, +0x17,0x3, 0xe0,0x4, 0xaf,0x7f,0x38,0x82,0x38,0x82,0x8, 0xb3,0x39,0xe9,0x2c,0x1d, +0xe0,0x0, 0x1f,0x23,0x8f,0xe, 0xe2,0x0, 0xcf,0x1, 0x1, 0x3a,0xe0,0x1, 0x1e,0xe0, +0x17,0x6, 0xa9,0x8d,0x9f,0x8d,0x37,0xcc,0xe2,0x0, 0xc7,0x87,0x3f,0x1f,0xe2,0x0, +0xc7,0x5, 0x2f,0x23,0xe0,0x2, 0x1f,0x85,0x17,0x3, 0xe0,0x4, 0xaf,0x7f,0x17,0x1, +0xe0,0x2, 0x1f,0xd8,0xaf,0xf, 0x9, 0xe1,0x17,0x95,0x3f,0x98,0xe2,0x1, 0xc7,0xff, +0xe2,0x0, 0xcf,0x81,0x39,0x68,0x5, 0xa1,0xe4,0x1, 0xcc,0x0, 0xe2,0x0, 0xcc,0x6f, +0x5, 0xa3,0xe2,0x1, 0xc9,0x7c,0x1, 0x22,0xe2,0x1, 0xc9,0x7d,0x1, 0x19,0xe0,0x2, +0x1f,0xd8,0x17,0x1, 0xaf,0xf, 0x9, 0xe1,0xe2,0x0, 0xcf,0x81,0xe0,0x2, 0x1f,0x85, +0x17,0x1, 0xe0,0x4, 0xaf,0x7f,0x5, 0xf4,0x17,0x80,0xaf,0x8d,0x0, 0xf1,0xe0,0x2, +0x1f,0x28,0x8f,0xe, 0x2f,0x44,0x9, 0xe1,0x3c,0x69,0xdf,0x1d,0x0, 0xe6,0xe0,0x0, +0x1f,0xa0,0xa9,0x8f,0x9, 0xe1,0xd5,0x9e,0x0, 0xdd,0x3c,0x63,0x9, 0xa1,0xe7,0x83, +0x0, 0xff,0xe0,0x0, 0x24,0x52,0xe2,0x0, 0xcc,0x3, 0x2, 0x91,0xe0,0x0, 0x1f,0x95, +0x8f,0x8f,0xe0,0x0, 0x2f,0xcf,0xe0,0x0, 0x1f,0x13,0xe0,0x1, 0x1e,0xf8,0x3f,0xee, +0xbf,0xd, 0x3c,0x1f,0xe0,0x40,0x8f,0x98,0x3c,0x6f,0x38,0x82,0xe2,0x0, 0xcc,0x5f, +0xe0,0x0, 0x5, 0xc8,0x17,0xad,0x3f,0x98,0xe2,0x1, 0xc7,0xff,0xe2,0x0, 0xcf,0x81, +0xe0,0x0, 0x5, 0xc5,0x17,0x95,0x3f,0x98,0xe2,0x1, 0xc7,0xff,0xe2,0x0, 0xcf,0x81, +0xe0,0x0, 0x5, 0xd5,0xe0,0x0, 0x17,0xe7,0x3f,0x98,0xe2,0x1, 0xc7,0xff,0xe2,0x0, +0xcf,0x81,0xe0,0x0, 0x5, 0xe6,0xe7,0xff,0x17,0x80,0x3f,0x98,0x3f,0x6f,0xe2,0x1, +0xc7,0x7f,0xe2,0x0, 0xcf,0x6f,0x5, 0xb4,0xe2,0x1, 0xcc,0x7c,0xe0,0x1, 0x1, 0xd, +0xe2,0x1, 0xcc,0x7d,0xe0,0x1, 0x1, 0xf, 0xe2,0x1, 0xcc,0x7e,0xe0,0x1, 0x17,0xff, +0x1, 0x8e,0xe0,0x2, 0x1f,0x8d,0x17,0x5, 0x8f,0x8f,0x3f,0x3f,0xe0,0x2, 0x1f,0xed, +0x3f,0x9e,0x8f,0x8f,0x0, 0x84,0xe0,0x1, 0x1f,0xe0,0x8f,0x8f,0x3c,0x6f,0x38,0x82, +0xe0,0x1, 0x1f,0x2f,0xe0,0x1, 0x1e,0xf8,0x3f,0xee,0xbf,0xd, 0xe7,0xff,0x0, 0xb3, +0xe0,0x1, 0x1f,0xf8,0xa7,0x8f,0xe7,0xff,0x0, 0xae,0xe2,0x1, 0xcc,0x53,0x1, 0x11, +0xe0,0x1, 0x1f,0x2e,0x8f,0x8e,0xc7,0xff,0xaf,0x8e,0xe7,0xfd,0x0, 0xfe,0xe2,0x1, +0xcc,0x0, 0xe0,0x0, 0x1, 0x65,0xe0,0x2, 0x1f,0x5, 0x3f,0x9e,0x8f,0x8f,0x0, 0xdf, +0xea,0x12,0x7f,0x96,0x17,0x0, 0xb7,0xf, 0x0, 0xf1,0xe2,0x1, 0xcc,0x6b,0xe0,0x0, +0x1, 0x46,0xea,0x12,0x7f,0x14,0x8e,0xe, 0x16,0x81,0x3e,0x9c,0xea,0x1a,0x7f,0xdc, +0xe2,0x1, 0xc6,0xff,0xe9,0xff,0xc7,0xff,0xe2,0x0, 0xce,0x83,0x3f,0x9c,0x8f,0x8f, +0x1, 0x25,0xae,0x8e,0x16,0xeb,0xe0,0x1, 0x1f,0x2e,0xae,0x8e,0x0, 0xc0,0xe0,0x2, +0x1f,0x5, 0x16,0xe0,0xe0,0x2, 0x8f,0x8e,0x3e,0x9f,0xe2,0x0, 0xce,0x9f,0x2, 0x9d, +0xe0,0x1, 0x1e,0xaa,0x3f,0x9d,0xe0,0x44,0x8f,0x8f,0xe0,0x2, 0x8e,0x8e,0xe2,0x1, +0xcc,0x1a,0xc6,0x81,0xe0,0x2, 0xae,0x8e,0xe7,0xff,0x1, 0xaa,0xe0,0x1, 0x1f,0x2e, +0xe7,0xff,0x16,0x99,0xae,0x8e,0xe7,0xff,0x0, 0xa3,0xea,0x12,0x7e,0x98,0x16,0x0, +0xae,0xe, 0x17,0x0, 0xbf,0xd, 0x0, 0xd7,0xe0,0x1, 0x1f,0xa3,0xe0,0x2, 0x8e,0x8e, +0xe3,0xff,0xc7,0xff,0x3f,0x9d,0x8f,0x8f,0x0, 0xe1,0xea,0x12,0x7f,0x94,0x17,0x1, +0xaf,0xf, 0x3f,0xe8,0x0, 0xc8,0xe0,0x2, 0x1f,0x85,0xe0,0x4, 0x8f,0xff,0xe7,0xff, +0x0, 0x87,0xe0,0x0, 0x1f,0xa0,0x8f,0x8f,0xe7,0xff,0x0, 0x82,0xe7,0xd9,0x0, 0xd6, +0xe0,0x1, 0x1f,0xe0,0x9f,0x8f,0x37,0xcc,0xe2,0x0, 0xc7,0x87,0x27,0x86,0xe2,0x0, +0xcf,0x84,0x1, 0x5, 0x14,0x0, 0x38,0x82,0xe7,0xfe,0x0, 0x9d,0xe7,0x74,0x0, 0xf7, +0xe0,0x1, 0x1f,0xe0,0x9f,0x8f,0x37,0xcc,0xe2,0x0, 0xc7,0x87,0x27,0x85,0xe2,0x0, +0xcf,0x84,0x1, 0x4, 0x38,0x82,0xe7,0xfd,0x0, 0xba,0xe7,0x6f,0x0, 0xed,0x8, 0xb4, +0xe0,0x0, 0x1f,0xac,0xa1,0xf, 0xa7,0x82,0xe2,0x0, 0xc7,0x81,0x27,0x97,0xa7,0x2, +0x17,0xfe,0x3f,0x5f,0xea,0x12,0x7f,0x9e,0xbf,0x2, 0x8f,0xf, 0x27,0x22,0xe0,0x0, +0x1a,0x23,0xe0,0x1, 0x19,0xae,0x17,0x81,0x8c,0xf2,0xaf,0x84,0x8c,0x3, 0xdf,0xd9, +0x17,0x0, 0xaf,0x4, 0x8f,0x83,0xc7,0x81,0xaf,0x83,0xa7,0x82,0x37,0xc1,0xe2,0x0, +0xc7,0x81,0x2f,0x82,0xa, 0x61,0xa7,0x2, 0x16,0xfd,0xe0,0x1, 0x1f,0xae,0x3f,0x5d, +0xbf,0x2, 0x8f,0xf, 0xc7,0x1, 0xaf,0xf, 0x8c,0xf, 0xdf,0xb3,0xac,0x72,0xa, 0x61, +0x17,0x1, 0xaf,0xf, 0x87,0x72,0xe0,0x1, 0x1f,0xae,0xaf,0xf, 0x8c,0xf, 0xdf,0xa9, +0xac,0x72,0xa, 0x61,0xe0,0x0, 0x1f,0xac,0x16,0x7e,0xa6,0x8f,0xea,0x12,0x7f,0x9e, +0xa7,0x3d,0x3f,0x5c,0xbf,0x3d,0x17,0x0, 0xaf,0xf, 0x38,0x82,0x8, 0xb4,0xe0,0x1, +0x1a,0x2f,0xe0,0x1, 0x19,0xe0,0x11,0x0, 0x15,0x3e,0xe0,0x1, 0x14,0xff,0x3c,0x64, +0xa9,0x3, 0xe0,0x4, 0xd8,0x2b,0xe0,0x0, 0x1c,0x13,0x15,0x3e,0xe0,0x1, 0x14,0xff, +0xe0,0x4, 0xd8,0x24,0xe0,0x1, 0x1f,0xf8,0xba,0xf, 0xef,0xfd,0xd0,0x7a,0xea,0x12, +0x7f,0x9e,0xe0,0x1, 0x1f,0x2e,0xa9,0xf, 0xe0,0x0, 0x1f,0xac,0xa9,0xe, 0xa7,0x8f, +0x81,0x83,0xa9,0xff,0xa, 0x61,0x0, 0x0, 0x8, 0xb2,0xe0,0x0, 0x14,0x50,0xe0,0x2, +0xdb,0x75,0xe0,0x0, 0x14,0xda,0x39,0x68,0xe0,0x0, 0x14,0x50,0xe0,0x2, 0xdb,0x8c, +0xe1,0xd, 0x14,0x6, 0xe0,0x2, 0xdb,0x6a,0xe0,0x0, 0x14,0xff,0x3c,0xd8,0xe0,0x1, +0xcc,0x80,0xe1,0xd, 0x14,0x6, 0xe0,0x2, 0xdb,0x7f,0xe2,0x0, 0xc9,0x5a,0x1, 0x6, +0x14,0x80,0xe0,0x0, 0x14,0x50,0xe0,0x2, 0xdb,0x77,0xe0,0x0, 0x14,0xda,0x14,0x4, +0xe0,0x2, 0xdb,0x72,0xe0,0x0, 0x14,0xda,0x14,0x5, 0x9, 0x21,0xe0,0x56,0x0, 0xec, +0x8, 0xb4,0xe0,0x1, 0x19,0xff,0x15,0x4, 0x3c,0xe3,0x14,0x0, 0xef,0xfd,0xd6,0x22, +0x9d,0x13,0x17,0xf8,0x3f,0x9a,0xe2,0x1e,0xcf,0xf7,0x12,0x0, 0x2, 0x96,0x11,0x7e, +0x39,0x1a,0xe3,0xff,0xc1,0x7f,0x3c,0xe3,0x3d,0x62,0x14,0x2, 0x99,0x83,0xef,0xfd, +0xd6,0x11,0xe0,0x1, 0x1c,0x7e,0x3d,0xe4,0x3d,0x64,0xe0,0x9, 0x31,0x41,0x34,0x41, +0xe0,0x2, 0xdf,0xcc,0xe0,0x24,0x39,0x88,0x3c,0x64,0xa, 0x61,0xe0,0x2, 0x1f,0xa8, +0x8f,0x8f,0x27,0x8f,0x8, 0xb2,0xe0,0x0, 0x19,0x28,0xdf,0xd3,0xac,0x2, 0x8f,0x82, +0x2f,0x87,0xdf,0xcf,0xac,0x2, 0x8f,0x82,0x2f,0x83,0xdf,0xcb,0xac,0x2, 0x9, 0x61, +0x38,0x82,0xe0,0x2, 0x1f,0xf3,0xa7,0x8f,0xa7,0xcf,0xe2,0x0, 0xc7,0x81,0x27,0x8a, +0xe0,0x2, 0x1f,0x81,0x87,0x8f,0xc7,0xff,0xe2,0x1, 0xc7,0xff,0xe2,0x0, 0xcf,0x81, +0x5, 0x82,0x38,0x82,0xe0,0x2, 0x1f,0x8d,0x8f,0x8f,0xe2,0x0, 0xcf,0x81,0x1, 0xfa, +0x8, 0xb4,0xe0,0x2, 0x19,0x72,0x9f,0x82,0xe2,0x0, 0xcf,0x82,0x2, 0x82,0xa, 0x61, +0xe0,0x0, 0x1f,0x9e,0xeb,0xe6,0x79,0x98,0x9c,0xf, 0xe0,0x4, 0xd7,0xc2,0xe0,0x4, +0xd7,0xc4,0xe0,0x0, 0x14,0xff,0xe0,0x4, 0xd5,0x3f,0xe0,0x1, 0x17,0x8b,0x3f,0x98, +0xe0,0x0, 0x14,0x50,0xb7,0x83,0xe0,0x2, 0xda,0xe1,0x3a,0x68,0xe0,0x0, 0x14,0xda, +0xe0,0x0, 0x14,0x50,0xe0,0x2, 0xda,0xf8,0x8c,0x93,0xe1,0x20,0x14,0x0, 0xe0,0x2, +0xda,0xf3,0x8c,0x83,0xe1,0x20,0x14,0x1, 0xe2,0x0, 0xc4,0x83,0xe0,0x2, 0xda,0xec, +0x14,0x8a,0xe1,0x23,0x14,0x4, 0xe0,0x2, 0xda,0xe7,0xe2,0x0, 0xca,0x5a,0x1, 0x6, +0x14,0x80,0xe0,0x0, 0x14,0x50,0xe0,0x2, 0xda,0xdf,0x17,0x80,0xb7,0x82,0xa, 0x61, +0xe0,0x2, 0x1f,0xf3,0xa7,0x8f,0xa7,0xcf,0xe2,0x0, 0xc7,0x81,0x27,0x8b,0xe0,0x2, +0x1f,0x81,0x8f,0x8f,0xe2,0x0, 0xcf,0x82,0x1, 0x6, 0x27,0x8c,0xe2,0x0, 0xcf,0x81, +0x1, 0xe, 0x38,0x82,0xe0,0x2, 0x1f,0xfd,0x8f,0x8f,0xe2,0x0, 0xcf,0x81,0x1, 0x7, +0x2f,0xf9,0xe0,0x1, 0x14,0xc8,0x14,0x0, 0xe0,0x54,0x0, 0xc3,0xe0,0x1, 0x14,0xc8, +0x14,0x1, 0xe0,0x54,0x0, 0xbe,0x3f,0x82,0x8, 0xb7,0xf8,0x0, 0xc, 0x3e,0xe0,0x1, +0x1f,0xb1,0xe0,0x1, 0x1f,0x6c,0x16,0x0, 0xa7,0x8f,0xae,0xe, 0xe0,0x1, 0xa7,0xff, +0x37,0xc2,0xe2,0x0, 0xc7,0x81,0x27,0x95,0xe0,0x1, 0x1f,0xde,0xe0,0x2, 0x1e,0xee, +0xa7,0x8f,0xa6,0xd, 0xa6,0x9f,0xce,0x90,0xbe,0x9f,0xe0,0x0, 0x16,0xd4,0xb6,0xdc, +0x8e,0xfc,0x16,0x6f,0xe2,0x0, 0xc6,0x83,0xae,0x8e,0xa6,0x9f,0x3e,0xdc,0xbe,0x9f, +0xe0,0x2, 0x1b,0xa8,0x8f,0x87,0xe2,0x0, 0xcf,0x81,0xe0,0x1, 0x1, 0x5d,0x8f,0xe, +0xe0,0x1, 0x27,0x1b,0xe0,0x0, 0x1f,0x28,0x8a,0xe, 0xe0,0x0, 0x22,0x72,0xe0,0x1, +0x1f,0xde,0x12,0x3, 0xa2,0x8f,0xe0,0x2, 0x1f,0xee,0xe0,0x1, 0x19,0xff,0xa1,0xf, +0xf0,0x0, 0x17,0x54,0xf0,0x40,0x3e,0xe4,0xf0,0x0, 0x14,0x50,0xf0,0x0, 0x16,0x5a, +0x13,0x5, 0xf7,0x24,0x15,0x82,0xf7,0x24,0x15,0x3, 0xf7,0x24,0x14,0x84,0xa7,0x95, +0xcf,0x90,0xbf,0x95,0x17,0xf8,0x9c,0x3, 0x3f,0x98,0xe2,0x1e,0xcf,0xf8,0xe0,0x1, +0x2, 0x96,0xf0,0x0, 0xb7,0x52,0xc4,0x7e,0xf0,0x0, 0xae,0xb2,0xe3,0xff,0xc4,0x7f, +0xf0,0x0, 0xb4,0x52,0xe2,0x0, 0xcc,0x8, 0xf0,0x0, 0xae,0x32,0xe0,0x0, 0x5, 0xeb, +0x16,0x80,0xf7,0xff,0x13,0xfd,0x3f,0x6d,0x17,0x88,0x3e,0x6d,0xf0,0x17,0x3b,0x98, +0x26,0x21,0xc6,0x1, 0xe3,0xff,0xc6,0x7f,0xf0,0x40,0x3b,0x6c,0xe0,0xb, 0x39,0x9f, +0x8c,0x8b,0x15,0x83,0x15,0x1, 0x3d,0x9d,0xb7,0x52,0x3d,0x1e,0xe8,0x40,0x3d,0xf6, +0xc7,0x81,0x3f,0x6a,0xac,0xb2,0xe3,0xff,0xc7,0x7f,0xe3,0xff,0xc7,0xff,0xe0,0x0, +0x3, 0x47,0xf0,0x2e,0x3b,0x9f,0xe0,0x0, 0x27,0x46,0xe1,0x2e,0x3c,0x1f,0xe0,0x0, +0x27,0x42,0xe0,0xc, 0x39,0x9f,0x8d,0xc, 0x8d,0xac,0x8f,0x1c,0x8e,0xbc,0x35,0x28, +0xe0,0xc, 0x35,0xa8,0x3e,0x9c,0x3f,0x1a,0xc7,0x84,0xe3,0xff,0xc7,0x7f,0xe3,0xff, +0xc6,0xff,0xe3,0xff,0xc7,0xff,0xf0,0x40,0x3b,0x66,0x16,0x5, 0x0, 0xd0,0xe0,0x1, +0x1f,0x5e,0xa2,0x8e,0xe0,0x2, 0x1f,0x6e,0xa1,0xe, 0xe0,0x0, 0x2f,0xcc,0xa7,0x15, +0xe0,0x0, 0x16,0xd0,0xcf,0x10,0xbf,0x15,0xe0,0x0, 0x16,0x5a,0xb6,0xd2,0xe7,0x24, +0x17,0x10,0xae,0x32,0xb7,0x52,0xaf,0xb2,0xb6,0xd2,0x17,0x6f,0xaf,0xb2,0xa7,0x95, +0x3f,0xde,0xbf,0x95,0x22,0x9, 0xdf,0x1d,0xe0,0x2, 0x1f,0x3a,0x17,0x87,0xaf,0x8e, +0xe0,0x2, 0x1f,0x3b,0xaf,0x8e,0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0x3c,0x7f,0xe7,0xff, +0x2, 0xa1,0xf0,0x0, 0xb5,0xd2,0xe7,0x24,0x16,0x5, 0x8f,0xf2,0xf0,0x0, 0xb5,0x52, +0xe4,0xd, 0x37,0xa8,0x8f,0xf2,0xf0,0x0, 0xb4,0xd2,0xe4,0xf, 0x37,0xa0,0x8f,0x72, +0xb6,0x52,0x3f,0x9d,0x8e,0xf2,0x37,0x28,0x3f,0x9d,0xa6,0x93,0x3f,0x9e,0xf0,0x0, +0xb4,0x52,0x17,0x0, 0x3f,0xfd,0xaf,0x32,0x1, 0x22,0xa7,0x95,0x17,0x6f,0x3f,0xde, +0xc2,0x7f,0xbf,0x95,0xe2,0x1, 0xc2,0x7f,0xe7,0xfe,0x2a,0x5b,0x8f,0x87,0xe7,0xff, +0x27,0xb8,0xa7,0x95,0xe0,0x0, 0x17,0x50,0xcf,0x90,0xbf,0x95,0xe0,0x0, 0x16,0x5a, +0xb7,0x52,0xe7,0x24,0x16,0x90,0xae,0x32,0x17,0x80,0xb6,0xd2,0xaf,0xb2,0xb7,0x52, +0xe7,0xff,0x0, 0xb5,0x86,0xe, 0xae,0xe, 0xe7,0xfe,0x0, 0xa3,0xe0,0x0, 0x17,0xf0, +0xb7,0xd2,0x16,0x2a,0xae,0x32,0x3c,0x66,0xef,0xfd,0xdb,0x61,0xe0,0x0, 0x16,0xf6, +0xb6,0xd2,0xe0,0x0, 0x17,0x75,0x8f,0xf2,0xb7,0x52,0x37,0xa8,0x8e,0xf2,0x9f,0x13, +0x3f,0x9d,0xe3,0xff,0xc7,0xff,0x3f,0x7f,0x1, 0xc9,0xa7,0x95,0x17,0x6f,0x3f,0xde, +0xbf,0x95,0x12,0x1, 0x8f,0x87,0x0, 0xcc,0x8, 0xb3,0x39,0x68,0xe0,0x0, 0x14,0x50, +0xe0,0x2, 0xd9,0x6c,0x39,0xe8,0xe0,0x0, 0x14,0xda,0xe0,0x0, 0x14,0x50,0xe0,0x2, +0xd9,0x83,0x3c,0x62,0xe0,0x2, 0xd8,0xed,0xe2,0x0, 0xc9,0xda,0x39,0x68,0x1, 0x6, +0x14,0x80,0xe0,0x0, 0x14,0x50,0xe0,0x2, 0xd9,0x77,0x3c,0x62,0x9, 0xe1,0x8, 0xb1, +0xc0,0x7c,0x15,0x2, 0x14,0x86,0x3c,0x90,0x3c,0x6a,0xef,0xfd,0xd4,0x2b,0x5c,0x3, +0x15,0x2, 0xe2,0x0, 0x7c,0x84,0xef,0xfd,0xd4,0x25,0x4f,0x4, 0x4f,0x85,0x3f,0x9e, +0xe2,0x1, 0xcf,0xff,0xe0,0x2, 0x1f,0x85,0x1, 0x2, 0x17,0x7f,0xe0,0xc, 0xaf,0x4f, +0xc0,0x4, 0x8, 0xe1,0xe0,0x0, 0x1f,0xa0,0x8f,0x8f,0xe2,0x0, 0xcf,0xda,0x1, 0x2, +0x38,0x82,0xe0,0x2, 0x1f,0xf3,0xa7,0x8f,0xa7,0xcf,0x37,0xcf,0xe2,0x0, 0xc7,0x81, +0x2f,0xf8,0xe7,0xfb,0x0, 0xb3,0xe0,0x0, 0x1f,0xa0,0x8f,0x8f,0xe2,0x0, 0xcf,0xda, +0x1, 0x2, 0x38,0x82,0xe0,0x2, 0x1f,0xf3,0xa7,0x8f,0xa7,0xcf,0x37,0xcf,0xe2,0x0, +0xc7,0x81,0x2f,0xf8,0xe7,0xfb,0x0, 0xa2,0xe0,0x1, 0x1f,0xa3,0xe0,0xa, 0x8f,0xdf, +0x27,0xab,0xe0,0x1, 0x1f,0x9d,0x8f,0x8f,0xe2,0x0, 0xcf,0x81,0xe0,0x2, 0x1f,0xbf, +0xe0,0x0, 0x1, 0x65,0x8f,0x6f,0x37,0x26,0xc7,0x7f,0xe3,0xff,0xc7,0x7f,0xe2,0x0, +0xcc,0x3f,0x2, 0x9b,0xe0,0x1, 0x1f,0x85,0xe0,0x1, 0x1f,0x4, 0x8f,0x8f,0x8f,0xe, +0xe0,0xd, 0x37,0xa8,0x17,0xbf,0xe0,0x8, 0x3f,0xa8,0xe0,0xf, 0x3f,0x4d,0xe0,0x1, +0x1f,0x3, 0x3f,0xb8,0x8c,0xe, 0x37,0xc8,0x3f,0xf8,0x3f,0x68,0xe0,0x6e,0x3d,0xaf, +0x3c,0x2e,0xe3,0xff,0xc4,0x7f,0x38,0x82,0xe0,0x1, 0x1f,0x82,0xe0,0x1, 0x1e,0x81, +0x8f,0x8f,0xc7,0x41,0x8e,0x8d,0x3c,0x7e,0x37,0xa8,0xe0,0xc, 0x3e,0xcf,0x3, 0x3d, +0xe0,0x1, 0x1f,0x80,0xe0,0x0, 0x1f,0x7f,0x8d,0x8f,0x8e,0x8e,0xe0,0x0, 0x1f,0xfe, +0xe0,0x0, 0x1f,0x7d,0x35,0xa8,0x8f,0x8f,0x3e,0xcb,0x8f,0xe, 0x3c,0x7d,0x37,0xa8, +0x3f,0x4f,0xe0,0x0, 0x3, 0x46,0xe0,0x0, 0x1f,0xfc,0xc6,0xff,0x8d,0x8f,0xe0,0x0, +0x1f,0xfb,0x35,0xa8,0x8f,0x8f,0x3e,0xa8,0xe0,0x8, 0x3f,0xcb,0x3e,0xb8,0xc7,0x7f, +0x36,0xc8,0x3f,0x2d,0xe0,0x1, 0x1f,0x83,0x8c,0xf, 0x3f,0x78,0x4, 0xcb,0xe0,0x0, +0x1f,0xfa,0x3c,0x6e,0x8f,0x8f,0xe0,0xf, 0x3e,0x2f,0x3e,0xef,0xe3,0xff,0xc6,0xff, +0x3f,0x7d,0xe0,0x68,0x3a,0xaf,0xe7,0xff,0x0, 0xbe,0x8f,0x7f,0x37,0x26,0xc7,0x7f, +0xe3,0xff,0xc7,0x7f,0xe7,0xff,0x0, 0x9d,0xe0,0x0, 0x1f,0xf9,0xe0,0xe, 0x3c,0x2e, +0x8e,0x8f,0xe0,0x0, 0x1f,0xf8,0x36,0xa8,0x8f,0x8f,0xe0,0x8, 0x3f,0xcd,0xe0,0x0, +0x1f,0xfa,0x3c,0x3e,0x8f,0x8f,0xe0,0xe, 0x34,0x48,0x3f,0x7f,0x16,0xff,0x3e,0x9f, +0xe0,0x6e,0x3b,0xad,0xe0,0x8, 0x3e,0x2f,0x3c,0x1e,0xe7,0xff,0x0, 0x9c,0xe0,0x0, +0x1f,0xf7,0xe0,0xd, 0x3c,0x2d,0x8d,0x8f,0xe0,0x0, 0x1f,0xf6,0x35,0xa8,0x8f,0x8f, +0xe0,0x8, 0x3f,0xcb,0x3e,0xb8,0x36,0xc8,0x3f,0x1d,0xe7,0xff,0x0, 0xbd,0xe0,0x1, +0x1f,0xa3,0x3e,0xe8,0xe0,0xa, 0x8f,0xdf,0x27,0xaa,0xe0,0x1, 0x1f,0x9d,0x8f,0x8f, +0xe2,0x0, 0xcf,0x81,0xe0,0x2, 0x1f,0xbf,0xe0,0x0, 0x1, 0x58,0x8f,0x7f,0x37,0x26, +0xc7,0x7f,0xe3,0xff,0xc7,0x7f,0xe2,0x0, 0xce,0xbf,0x2, 0x9a,0xe0,0x0, 0x1f,0xf5, +0xe0,0x0, 0x1f,0x74,0x8f,0x8f,0x8c,0xe, 0x37,0xa8,0x17,0x3f,0x3f,0x2d,0xe0,0xd, +0x3c,0x4f,0xe0,0x0, 0x1f,0xf3,0x3f,0x3d,0x8c,0xf, 0x37,0x8, 0x3f,0x78,0x3f,0xe8, +0xe0,0x6f,0x3d,0x2e,0x3c,0x2f,0xe3,0xff,0xc4,0x7f,0x38,0x82,0x38,0x82,0xe0,0x0, +0x1e,0x72,0xe0,0x0, 0x1f,0xf1,0x8c,0xc, 0x16,0x41,0x8f,0x8f,0x3e,0x1e,0x3e,0xfc, +0x37,0xa8,0xe0,0xb, 0x3c,0x4f,0x3, 0x30,0xe0,0x0, 0x1f,0xf0,0x8e,0xf, 0xe0,0x0, +0x1f,0xef,0x36,0x28,0x8c,0xf, 0xe0,0x0, 0x1f,0xee,0x34,0x28,0x8f,0xf, 0xe0,0x0, +0x1f,0xed,0x3f,0x4c,0x8f,0x8f,0x3e,0xfe,0x3f,0xc8,0xe0,0x0, 0x3, 0x4a,0xe0,0x0, +0x1e,0x6c,0xe0,0x0, 0x1d,0x6b,0x8e,0xc, 0x8c,0xa, 0x36,0x28,0x3c,0x4c,0x3f,0x2d, +0x3f,0x38,0x14,0x7f,0x3c,0x1f,0x37,0x8, 0x3c,0x2e,0xe0,0x0, 0x1f,0xf3,0x8f,0x8f, +0x3c,0x7f,0x3, 0x2b,0x3c,0x6f,0x38,0x82,0x8f,0x6f,0x37,0x26,0xc7,0x7f,0xe3,0xff, +0xc7,0x7f,0xe7,0xff,0x0, 0xaa,0x17,0xe2,0x3f,0x9e,0x3e,0xff,0x14,0x0, 0xe7,0xff, +0x3, 0x3f,0xe0,0x0, 0x1f,0xea,0xe0,0x0, 0x1e,0x69,0x8f,0x8f,0x8c,0xc, 0xc7,0x40, +0x37,0xa8,0xe0,0xe, 0x3e,0xae,0x3c,0x4f,0xe0,0x0, 0x1f,0xe8,0x3f,0x38,0x8f,0x8f, +0x37,0x8, 0x3f,0x7f,0x16,0xff,0x3e,0x9f,0xe0,0x6e,0x3b,0x2d,0xe0,0x8, 0x3d,0xaf, +0x3c,0x1e,0xe3,0xff,0xc4,0x7f,0x38,0x82,0xe0,0x0, 0x1f,0xe8,0x8f,0x8f,0xe0,0xf, +0x3d,0xaf,0x3f,0xf8,0xe0,0x68,0x3d,0x2f,0xe3,0xff,0xc4,0x7f,0x38,0x82,0xe0,0x0, +0x1e,0x67,0xe0,0x0, 0x1d,0x66,0x8e,0xc, 0x8c,0xa, 0x36,0x28,0x3c,0x4c,0xe0,0xe, +0x3e,0xae,0x3f,0x38,0xe0,0x8, 0x37,0x8, 0x3c,0x1f,0xe7,0xff,0x0, 0xb8,0x8, 0xb3, +0xe0,0x2, 0x1f,0xa0,0x8f,0x8f,0x2f,0xb2,0xe0,0x2, 0x1f,0x1f,0xe0,0x2, 0x1e,0x99, +0x8f,0xe, 0xaf,0x8d,0x2f,0x37,0xe0,0x1, 0x1f,0x9c,0x15,0xa, 0x89,0x8f,0xe0,0x2, +0x1c,0xa1,0x3d,0x33,0xe0,0x2, 0x1c,0x1c,0xe0,0x4, 0xd4,0x16,0xe0,0x1, 0x1f,0xa3, +0xe0,0xa, 0x8f,0xdf,0x27,0x9a,0x21,0x99,0xc1,0xff,0x39,0x63,0xe2,0x1, 0xc1,0x7f, +0x11,0x81,0x39,0x92,0x17,0x8a,0xe0,0x2, 0x19,0x21,0x3f,0xb3,0x39,0xe2,0x39,0x9f, +0x9c,0x2, 0xc1,0xa, 0xde,0x8a,0xe0,0x5, 0xb4,0x52,0xe0,0x40,0x9c,0x42,0xdf,0x28, +0x39,0x73,0xe0,0x5, 0xb4,0x62,0x1, 0xf5,0x9, 0xe1,0xe0,0x2, 0x1f,0x1f,0xe0,0x2, +0x1e,0x99,0x17,0x81,0x8f,0xe, 0xaf,0x8d,0x2f,0x4f,0xe0,0x2, 0x1f,0x1e,0xaf,0x8e, +0x0, 0xcb,0xe0,0x2, 0x1f,0x18,0x16,0x81,0xae,0x8e,0xe0,0x2, 0x1f,0x17,0xaf,0x8e, +0x0, 0xc3,0xe0,0x0, 0x1e,0x38,0x8f,0x8c,0x2f,0x97,0xea,0x12,0x7f,0xac,0x9e,0x8f, +0xe0,0x1, 0x1f,0x2d,0x2e,0x8a,0xe0,0x1, 0x1e,0x96,0x8e,0xd, 0xe0,0x1, 0x1e,0x95, +0x36,0x28,0x8e,0x8d,0x3e,0xcc,0xb6,0x8f,0xe0,0x2, 0x1e,0xa0,0x8e,0x8d,0x26,0xa0, +0x97,0x8f,0xb7,0x9e,0x38,0x82,0xe0,0x2, 0x1f,0x85,0xe0,0x1, 0x1f,0x2d,0x8e,0x8f, +0x8c,0x1f,0x8c,0xaf,0x8d,0x3f,0x8d,0xdf,0xea,0x12,0x7f,0xac,0x36,0xa5,0x34,0x25, +0x34,0xa5,0x35,0x25,0x35,0xa5,0xf0,0x0, 0x13,0x80,0xf0,0x0, 0xab,0x8c,0xb6,0x9e, +0xb4,0x2e,0xb4,0xce,0xb5,0x5e,0xe0,0x1, 0xb5,0x9e,0xb6,0x8f,0x0, 0xd4,0xe0,0x1, +0x1f,0x87,0x8e,0x8f,0xe0,0x1, 0x1f,0x86,0x36,0xa8,0x8f,0x8f,0x3f,0xcd,0xb7,0x9e, +0x38,0x82,0x17,0xdd,0x3f,0x98,0xe2,0x1, 0xc7,0xff,0xe2,0x0, 0xcf,0x8c,0x2, 0x9b, +0x17,0x1, 0xe0,0xf, 0x37,0x3f,0xe2,0x30,0xc7,0xa9,0x2f,0x9d,0xe2,0x0, 0xcc,0x25, +0x1, 0x92,0xe0,0x0, 0x1f,0xa3,0x8f,0x8f,0x3f,0xfe,0x1, 0x16,0xe0,0x2, 0x1f,0x5, +0x17,0x81,0xe0,0x4, 0xac,0xde,0xe0,0x0, 0x1f,0x38,0xaf,0x8e,0xe0,0x2, 0x1f,0x22, +0xaf,0x8e,0x38,0x82,0xe0,0x2, 0x1f,0x85,0x17,0x1, 0x3c,0x1f,0xe0,0x0, 0x1f,0xb8, +0xac,0x88,0xaf,0xf, 0x38,0x82,0xe0,0x2, 0x1f,0xa8,0x8f,0x8f,0x2f,0xe8,0x0, 0xfb, +0xe0,0x43,0x3f,0x9, 0x3f,0x7a,0x2, 0x23,0xe0,0x2, 0x1f,0xbf,0xf0,0x0, 0x8b,0x5f, +0xe0,0x1, 0x1f,0xd1,0xf0,0x0, 0xa3,0x8f,0xe8,0xf, 0x3f,0x36,0x3f,0x98,0x37,0xa1, +0xe8,0xf, 0x3f,0x97,0x97,0x8f,0x3f,0xfb,0x4, 0x7, 0xe0,0x0, 0x0, 0xf4,0x97,0x8f, +0x3f,0xfb,0xe0,0x0, 0x3, 0x70,0xc7,0x1, 0xe0,0x43,0x3f,0xe, 0xe8,0xf, 0x3f,0x36, +0x3f,0x7a,0x3f,0x98,0x37,0xa1,0xe8,0xf, 0x3f,0x97,0x5, 0x72,0x17,0x7f,0x3f,0x19, +0xe2,0x1, 0xc7,0x7f,0xe0,0x43,0x3d,0xe, 0xe2,0x0, 0xcd,0x0, 0x4, 0x25,0xe0,0x2, +0x1f,0xbf,0xf0,0x0, 0x8b,0x5f,0xe0,0x1, 0x1f,0xd1,0xf0,0x0, 0xa3,0x8f,0xe8,0xf, +0x3d,0x36,0x3f,0x98,0x37,0xa1,0xe8,0xf, 0x3f,0x97,0x97,0x8f,0x3f,0xfb,0x3, 0x5, +0x0, 0x94,0x97,0x8f,0x3d,0xff,0x2, 0x11,0x17,0x7f,0x3f,0x1a,0xe2,0x1, 0xc7,0x7f, +0xe0,0x43,0x3d,0xe, 0xe8,0xf, 0x3d,0x36,0xe3,0xff,0xcd,0x7f,0x3f,0x98,0x37,0xa1, +0xe8,0xf, 0x3f,0x97,0x1, 0xef,0x17,0x0, 0xe0,0x1, 0x1f,0xa3,0xaf,0xc, 0xc4,0x81, +0xe0,0xe, 0x8f,0x1f,0xe0,0x43,0x3c,0x89,0x3f,0x79,0x5, 0x1e,0xe0,0x2, 0x1f,0xbf, +0xf0,0x0, 0x8b,0xdf,0xe0,0x1, 0x1f,0xd1,0xa5,0xf, 0xe8,0xf, 0x3c,0xb7,0x3f,0x98, +0x37,0xa1,0x3f,0x9a,0x97,0x8f,0x3f,0xfb,0x3, 0x5, 0x0, 0x92,0x97,0x8f,0x3f,0xfb, +0x4, 0xf, 0xc4,0x81,0xe0,0x43,0x3c,0x89,0xe8,0xf, 0x3c,0xb7,0x3c,0xfe,0x3f,0x98, +0x37,0xa1,0x3f,0x9a,0x4, 0x74,0x14,0xff,0x3c,0x9e,0xe0,0x43,0x3c,0x89,0xe2,0x1, +0xc4,0xff,0xac,0x8d,0x84,0xc, 0x3c,0xa8,0x14,0x1, 0x3c,0x19,0xe2,0x1, 0xc4,0x7f, +0x38,0x82,0x3c,0xee,0xe2,0x1, 0xc4,0xff,0xe7,0xff,0x0, 0x9a,0xe0,0x0, 0x1f,0xe, +0xe0,0xf, 0x34,0x43,0x3f,0x1f,0xe0,0x0, 0x1f,0xb2,0xe2,0x0, 0xc4,0x7, 0x3f,0x98, +0x87,0x8f,0xe0,0xf, 0x84,0xe, 0x3c,0x5f,0xe2,0x1, 0xc4,0x7f,0x38,0x82,0x17,0x7, +0xe0,0x0, 0x1f,0xb2,0x3f,0x58,0x3f,0x9e,0xe0,0x0, 0x1f,0xe, 0x34,0x43,0x3c,0x1e, +0x8f,0x8f,0xe0,0xf, 0x87,0x8, 0x2c,0x86,0xe3,0xf, 0x3f,0x5f,0xe0,0xf, 0xaf,0x88, +0x38,0x82,0x3f,0xce,0xe0,0xf, 0xaf,0x88,0x38,0x82,0xe0,0x0, 0x1f,0x8e,0xe0,0x2, +0x1f,0x3f,0x34,0x21,0x3c,0x1f,0x8f,0x88,0x8e,0xde,0x8f,0x18,0x3f,0xbd,0x3f,0x9e, +0xe0,0x1, 0x1f,0x51,0x37,0xa1,0xa7,0xe, 0x3f,0x9e,0x94,0xf, 0x38,0x82,0xe0,0x2, +0x1f,0xbf,0xe0,0x1, 0x1f,0x2d,0x8e,0xef,0x9f,0x9e,0x3e,0xf8,0x2, 0x82,0x9f,0xce, +0x3c,0x6f,0x38,0x82,0xf0,0x0, 0x1a,0x8b,0xe8,0x0, 0x8e,0x5, 0x26,0x3d,0x16,0x0, +0xe0,0x0, 0x1d,0x8e,0xf0,0x0, 0x1b,0x32,0xe0,0x40,0x3f,0xec,0xe0,0xd, 0x37,0xc3, +0x15,0x7, 0x3d,0x5f,0xe2,0x0, 0xc6,0x9f,0x3e,0x9b,0xe8,0xa, 0x3d,0x16,0x85,0xa, +0xe0,0xf, 0x86,0x8d,0xe0,0xe, 0x37,0xa1,0x3e,0xda,0xe0,0x17,0x3d,0x9e,0x14,0x7, +0xe0,0xe, 0x36,0x43,0xe0,0x9, 0x36,0x21,0x3c,0x5c,0xe2,0x0, 0xc7,0x1f,0xc7,0x81, +0x15,0x1, 0xe2,0x1, 0xc6,0xff,0x3c,0x9b,0x3f,0x1b,0xe8,0x8, 0x3c,0x16,0xe2,0x1, +0xc7,0xff,0x3d,0x1c,0x26,0x8d,0xe8,0x0, 0x9e,0x7, 0x86,0x88,0xb6,0x9, 0x3e,0x6a, +0xe0,0xf, 0x85,0xe, 0xe2,0x1, 0xc6,0x7f,0x3e,0xca,0xe0,0xf, 0xae,0x8e,0xe8,0x0, +0x8f,0x5, 0x3f,0x7f,0x2, 0xcc,0xe8,0x0, 0xae,0x5, 0x38,0x82,0x8, 0xb7,0xf8,0x0, +0xc, 0x3e,0xc0,0x78,0xf0,0x0, 0x1c,0xb, 0xe8,0x0, 0x8f,0x88,0x27,0xa0,0xe0,0x0, +0x1a,0x8e,0xe0,0x0, 0x1b,0xb2,0xe0,0x1, 0x1b,0x23,0xf0,0x1, 0x1e,0xd1,0x11,0x80, +0xe0,0xf, 0x31,0xc3,0x17,0x7, 0xe2,0x0, 0xc7,0x9f,0x3f,0x53,0x3f,0x95,0x3f,0x17, +0xe0,0xf, 0x87,0x8f,0x87,0xe, 0x3f,0xde,0xe2,0x1, 0xc7,0xff,0x2f,0xa4,0xe8,0x0, +0x8f,0x88,0xc1,0x81,0xe2,0x1, 0xc1,0xff,0x39,0xff,0x4, 0xeb,0xdf,0x94,0xea,0x12, +0x7f,0xf1,0x8f,0xf, 0xe0,0x2, 0x27,0x69,0xe2,0x0, 0xcf,0x1, 0xe0,0x1, 0x1, 0x74, +0xe2,0x0, 0xcf,0x2, 0xe0,0x3, 0x1, 0x18,0xe0,0x2, 0x1f,0x9f,0x8f,0xf, 0x2f,0x7, +0xe8,0x0, 0x8f,0x88,0xe0,0x0, 0x1a,0x8e,0xe0,0x2, 0x2f,0xf3,0xc0,0x8, 0xf8,0x0, +0xf, 0x28,0xb, 0xe1,0xe0,0x1a,0x92,0x75,0xe0,0x19,0x31,0xa1,0xe8,0xf, 0x3a,0x99, +0xe4,0x0, 0xc2,0x5, 0x89,0x1f,0x8d,0xf, 0x32,0x3, 0xe2,0x0, 0x7e,0x8a,0xe2,0x0, +0x7e,0xb, 0x3d,0xe4,0x3c,0xea,0x3c,0x62,0xde,0x94,0x17,0x7f,0x3f,0x12,0xf0,0x40, +0x3e,0x6e,0xf0,0x0, 0x45,0x8b,0xf0,0x0, 0x45,0xa, 0xf2,0x1, 0xc6,0x7f,0xf0,0x0, +0x17,0x0, 0x0, 0x94,0x4d,0xa, 0x4c,0x8b,0xde,0x84,0x17,0x7f,0xe8,0xf, 0x3c,0x1e, +0xe8,0xe, 0x3f,0x1c,0xe2,0x0, 0xcc,0x3, 0xf0,0x40,0x3f,0x6f,0xf0,0x40,0x3e,0x6e, +0xf2,0x1, 0xc7,0x7f,0xf2,0x1, 0xc6,0x7f,0x5, 0x8d,0xe8,0x43,0x3d,0xc, 0xe2,0x0, +0xcd,0x0, 0xe8,0x40,0x3c,0x6c,0xe2,0x0, 0x7e,0x8a,0xe2,0x0, 0x7e,0xb, 0x3d,0xe4, +0x3, 0x62,0xc1,0x1, 0xf0,0x0, 0x6d,0x8b,0xe2,0x1, 0xc1,0x7f,0xf0,0x0, 0x6d,0xa, +0x0, 0x90,0x4d,0xa, 0x4c,0x8b,0xc1,0x1, 0xde,0x5c,0xe8,0xf, 0x3c,0x1e,0xe2,0x0, +0xcc,0x3, 0xf0,0x40,0x3f,0x6f,0xf2,0x1, 0xc7,0x7f,0xe2,0x1, 0xc1,0x7f,0x5, 0x8d, +0xe0,0xe, 0x8f,0x26,0xe0,0x43,0x3d,0x2, 0x3d,0x7e,0x3c,0x62,0xe2,0x0, 0x7e,0x8a, +0xe2,0x0, 0x7e,0xb, 0x3d,0xe4,0x4, 0x66,0xf2,0x0, 0xcf,0x15,0xe7,0xfe,0x5, 0xf9, +0xe8,0x0, 0x8d,0x8, 0xe7,0xfe,0x25,0x7c,0x17,0xeb,0xe8,0xf, 0x3f,0x9e,0xe4,0x0, +0xc7,0x85,0x37,0x84,0xc7,0x83,0xe2,0x1, 0xc7,0xff,0xe2,0x0, 0xcf,0x86,0x3c,0xef, +0x5, 0x82,0x14,0x86,0xe0,0x2, 0x1f,0x3f,0xf0,0x19,0x3c,0x95,0x12,0x1, 0xe8,0x0, +0xa1,0xd, 0x8c,0x5e,0xe0,0x0, 0x1e,0xe, 0xe2,0x1, 0xc4,0xff,0xe0,0x0, 0x17,0x80, +0xe8,0x4, 0x3a,0x19,0xe0,0xe, 0x37,0xc3,0x16,0x87,0x3f,0xf3,0x3e,0xdf,0xe2,0x0, +0xc7,0x1f,0x3f,0x15,0x3e,0x97,0xe0,0x0, 0x1, 0x46,0xf0,0xf, 0x8b,0xe, 0xf0,0x0, +0x8a,0x8d,0xf8,0xd, 0x3b,0x55,0x26,0xbe,0x8d,0x8c,0xf8,0x0, 0x8b,0x89,0xe0,0x43, +0x3e,0x8b,0xf8,0x43,0x3a,0x7, 0xe8,0xd, 0x3e,0xa4,0xe4,0x14,0x36,0x8f,0xf2,0xd, +0x3a,0x4d,0xe8,0xd, 0x3e,0xa4,0x3e,0xf9,0x2, 0x2d,0xf0,0x17,0x3b,0xb8,0xf0,0x0, +0x89,0x9c,0xf0,0x0, 0x8a,0x4, 0xe0,0xd, 0x3d,0xb8,0xf8,0xb, 0x3b,0x94,0xf8,0x43, +0x3a,0x4, 0xf8,0x43,0x3b,0x83,0xf8,0x17,0x3b,0xa4,0xf4,0x14,0x33,0x8f,0xfa,0x17, +0x3a,0x47,0xf8,0x17,0x3b,0xa4,0xe8,0xd, 0x3e,0x93,0xe8,0x40,0x3c,0xf7,0x35,0xa1, +0x36,0xa1,0x3d,0x92,0x3e,0x92,0x4, 0xe, 0x95,0x8b,0xf0,0x0, 0x93,0x8d,0x16,0x8b, +0x3e,0xbb,0xfb,0x16,0x3b,0x55,0x36,0x84,0xe8,0x40,0x3e,0xf7,0x5, 0x3, 0xf0,0xf, +0xab,0xe, 0xc7,0x81,0xe2,0x1, 0xc7,0xff,0x3f,0xfa,0xc6,0x2, 0xe7,0xff,0x1, 0xac, +0xe7,0xfe,0x0, 0x81,0xf0,0x2, 0x1d,0x1f,0xe8,0x0, 0x8f,0xa, 0xe0,0x1, 0x27,0x16, +0xe8,0x0, 0x8f,0x8, 0xe2,0x0, 0xcf,0x1, 0xe0,0x1, 0x5, 0x9a,0x11,0x80,0xea,0x12, +0x7b,0x70,0xe0,0x0, 0x1a,0x8e,0xf0,0x1, 0x1d,0xd1,0xf0,0x2, 0x1c,0xbf,0xe0,0x0, +0x1a,0x8, 0xf0,0x0, 0x1e,0x7, 0xf0,0x40,0x3e,0xe3,0x13,0x83,0xf0,0x1e,0x36,0xa1, +0xe8,0xf, 0x3a,0x9e,0x8d,0xf, 0xe0,0x1a,0x94,0x75,0x3c,0xe7,0x89,0x1f,0x7d,0x1, +0xe0,0x3, 0xde,0xda,0xe8,0x0, 0x8f,0xd9,0x65,0x1, 0xe8,0x0, 0xa6,0x8b,0x3f,0xba, +0xe0,0x43,0x3c,0x18,0x3f,0x92,0x37,0xa1,0x3f,0x9d,0x97,0x8f,0x3d,0xe2,0x3f,0xf8, +0x3, 0x3, 0x8f,0x86,0x2f,0x8b,0x8c,0x84,0xe8,0x0, 0x8c,0xc, 0xf0,0x1e,0x3f,0x15, +0xef,0xfe,0xd9,0xb, 0x24,0x1a,0xe8,0x0, 0x89,0x1e,0x8f,0x84,0xeb,0xe6,0x7e,0x9c, +0xe0,0x2, 0x3f,0xa2,0xe4,0xc, 0x31,0xf, 0xe2,0x2, 0x3e,0x42,0x39,0x2c,0xe2,0x0, +0xc9,0xa, 0xc1,0x81,0xc7,0x8a,0xe2,0x1, 0xc1,0xff,0x5, 0x7, 0x8e,0x8d,0x17,0x48, +0x3f,0xfd,0xaf,0x6, 0xe0,0x2, 0x4, 0xa, 0x17,0x1, 0xe8,0xe, 0x3f,0x1d,0xe8,0x0, +0x8f,0x88,0xf0,0x40,0x3e,0xee,0xf2,0x1, 0xc6,0xff,0xe8,0x40,0x3f,0xfd,0xe7,0xff, +0x2, 0xb7,0x39,0xff,0x1, 0x16,0x8f,0x86,0x27,0xba,0xc7,0xff,0xaf,0x86,0xe8,0x0, +0x8f,0xa, 0xe7,0xfd,0x0, 0xa6,0xf0,0x2, 0x1d,0x1f,0xe8,0x0, 0x8f,0xa, 0xe2,0x0, +0xcf,0x1, 0xe7,0xfd,0x1, 0x9e,0xaf,0xf, 0xe8,0x0, 0x8f,0x8, 0xe7,0xff,0x0, 0x8c, +0xe0,0x0, 0x1f,0x87,0x16,0x48,0x87,0xf, 0x86,0x84,0xae,0x6, 0x16,0x1, 0xe8,0x0, +0x8f,0x8a,0xe8,0x0, 0xae,0x8, 0xae,0x95,0xaf,0x5, 0xe7,0xfd,0x2f,0x91,0xde,0xb, +0xe8,0x0, 0x8f,0x88,0xe2,0x0, 0xcf,0x81,0xe7,0xfd,0x1, 0x8a,0xeb,0xe6,0x7f,0x9c, +0x87,0x15,0xaf,0xf, 0xe7,0xfd,0x0, 0x84,0xe8,0x0, 0x8f,0x8, 0xe7,0xfe,0x2f,0x6c, +0xea,0x12,0x7f,0x70,0x8f,0xe, 0x2f,0x3, 0x17,0x2, 0xaf,0xf, 0xe8,0x0, 0x8f,0xa, +0xe7,0xfc,0x0, 0xef,0xe8,0x0, 0x8f,0x88,0xf0,0x2, 0x1d,0x1f,0xe2,0x0, 0xcf,0x81, +0x5, 0xf6,0xe0,0x0, 0x1a,0x8e,0xf0,0x2, 0x1d,0x1f,0xe0,0x1, 0x1b,0xd1,0xe0,0x2, +0x1b,0x3f,0xf0,0x0, 0x1c,0xb2,0x11,0x81,0xe0,0x4, 0x31,0xc3,0xe2,0x0, 0xc2,0x1f, +0xe0,0x1d,0x31,0xa1,0xf0,0x1d,0x3e,0x95,0x3a,0x15,0xf0,0x0, 0x17,0x1, 0xf0,0x0, +0x15,0x87,0xf0,0x0, 0x1e,0xe, 0x11,0x0, 0xf8,0x1e,0x3f,0x1d,0xe0,0x0, 0xc2,0x78, +0xf0,0x1b,0x3d,0xd3,0x0, 0xb4,0xe8,0x0, 0x8f,0x8a,0xe2,0x0, 0xcf,0x82,0xe0,0x0, +0x2, 0xd8,0x8f,0xd6,0xa7,0x7, 0x3d,0x3f,0x3c,0x3f,0x3d,0x9a,0x35,0xa1,0x3c,0x98, +0x3d,0x9e,0x34,0xa1,0x3c,0x9e,0x96,0x8b,0x97,0x89,0xe0,0xe, 0x36,0xa1,0x3f,0x7f, +0xe0,0x0, 0x4, 0x61,0x37,0xa1,0xe0,0x40,0x3e,0xff,0x5, 0x11,0xe0,0xf, 0x31,0x43, +0x16,0x87,0xe2,0x0, 0xc7,0x9f,0x3e,0xd2,0x3f,0x95,0xe8,0xd, 0x3e,0x99,0xe0,0xf, +0x86,0xf, 0x87,0xd, 0xe3,0xe, 0x3e,0x5e,0xe0,0xf, 0xaf,0xf, 0xc1,0x1, 0xe2,0x1, +0xc1,0x7f,0x39,0xf2,0xf0,0x0, 0xc6,0x2, 0xe0,0x0, 0x1, 0x54,0xe8,0x0, 0x8c,0xc, +0xe8,0x0, 0x8d,0xd, 0xe0,0x43,0x3f,0x88,0xe0,0x43,0x3f,0xa, 0x3f,0xae,0x17,0x2, +0x3f,0x1f,0xe2,0x0, 0xcf,0x4, 0xe8,0x0, 0x8c,0x9c,0xe8,0x0, 0x8d,0x8e,0x2, 0x8a, +0xe0,0x43,0x3f,0x9, 0xe0,0x43,0x3e,0x8b,0x3f,0x2d,0xc7,0x2, 0xe2,0x0, 0xcf,0x4, +0x5, 0xde,0xc7,0x84,0xe2,0x0, 0xcf,0x88,0x2, 0x8b,0xe0,0x43,0x3f,0x89,0xe0,0x43, +0x3f,0xb, 0x3f,0xae,0xc7,0x84,0xe2,0x0, 0xcf,0x88,0xe7,0xff,0x5, 0xa6,0xef,0xfe, +0xd8,0x1c,0x24,0x4d,0x8e,0xd6,0xe8,0x0, 0x8f,0x8c,0xe8,0x0, 0x8f,0xd, 0x3f,0xbd, +0x3f,0x3d,0xe8,0x0, 0x8d,0x9c,0xe8,0x0, 0x8e,0xe, 0xa6,0x87,0x3f,0x9b,0x3f,0x1c, +0x37,0xa1,0x37,0x21,0x3f,0x9d,0x3f,0x1d,0x96,0x8f,0x97,0x8e,0x3e,0xff,0xe7,0xff, +0x5, 0x27,0xf8,0xf, 0x3c,0x9b,0x87,0x4, 0x87,0x8f,0xc1,0x1, 0xe2,0x1, 0xc1,0x7f, +0xe3,0xf, 0x3f,0x5f,0x39,0xf2,0xaf,0x84,0xf0,0x0, 0xc6,0x2, 0xe7,0xff,0x1, 0xb0, +0xc1,0x81,0xe8,0x0, 0x8f,0x88,0xe2,0x1, 0xc1,0xff,0x3f,0xf3,0xe7,0xfe,0x2, 0xde, +0xe8,0x0, 0x8f,0xa, 0xe7,0xfb,0x0, 0xb5,0x17,0x80,0xe8,0x0, 0xaf,0x88,0xe7,0xfb, +0x0, 0xb7,0x8, 0xb7,0xf8,0x0, 0xc, 0x3e,0xe1,0xff,0xc0,0x8, 0xe0,0x0, 0x1f,0xb, +0x13,0x84,0x89,0xe, 0x3b,0x90,0xe0,0x0, 0x1c,0x8e,0xe0,0xa, 0x31,0x21,0x3c,0x67, +0xe0,0x3, 0xdf,0xc2,0xea,0x12,0x7f,0xb0,0x88,0x8f,0xe0,0x2, 0x20,0xe5,0xe0,0x2, +0x1f,0x3f,0xe0,0x1, 0x1f,0xad,0xe0,0x1, 0x1e,0xd1,0xea,0x12,0x79,0xb4,0x12,0x0, +0xf0,0x0, 0xa7,0xd, 0xf0,0x0, 0x8e,0xde,0xf0,0x0, 0x9e,0x1f,0xf0,0x0, 0x8d,0xee, +0xf0,0x0, 0x9d,0x4f,0xf0,0x0, 0x19,0xe, 0xf0,0x0, 0x19,0xb2,0xf0,0x40,0x38,0xe3, +0xe0,0x40,0x3c,0x64,0xf0,0x7, 0x14,0xff,0xf0,0x1, 0x14,0x7f,0xe0,0x0, 0x21,0x7b, +0x16,0x4, 0x3e,0x10,0xe8,0x40,0x3d,0xe9,0xe8,0x40,0x3d,0x68,0xe0,0x0, 0x16,0x80, +0xe0,0xf, 0x36,0xc3,0x17,0x7, 0x3f,0x5d,0xe2,0x0, 0xc7,0x9f,0xe8,0xf, 0x3f,0x92, +0xe8,0xe, 0x3f,0x13,0xe0,0xf, 0x87,0x8f,0x87,0xe, 0x14,0x81,0x3f,0xde,0xe2,0x1, +0xc7,0xff,0x3c,0x9d,0x27,0xb4,0x8f,0x8c,0xe2,0x1, 0xcf,0xff,0xf0,0x40,0x3b,0xef, +0x1, 0x2e,0xf8,0x0, 0x8a,0x1, 0xf0,0x0, 0x8b,0x1c,0xf8,0x0, 0x8a,0x91,0xf0,0xf, +0x3a,0x2f,0xe3,0xff,0xc7,0xff,0xf0,0x43,0x38,0x1f,0xf8,0xe, 0x3a,0xa6,0xe3,0xff, +0xc7,0x7f,0xf2,0x0, 0xc8,0x0, 0xf8,0x17,0x3b,0xa4,0xf3,0xff,0xc3,0xff,0xf0,0x43, +0x3a,0x1e,0xe8,0x6f,0x3d,0x27,0xf8,0x16,0x3b,0x25,0xf2,0x0, 0xca,0x0, 0xf3,0xff, +0xc3,0x7f,0xe8,0x6e,0x3d,0x26,0x3f,0x9e,0xe3,0xff,0xc7,0xff,0x3f,0xfb,0x3f,0x6b, +0xe0,0x6e,0x3c,0xaf,0x3f,0xfb,0x3d,0xee,0xe0,0x6a,0x3c,0xad,0x3e,0xe9,0xe2,0x1, +0xc6,0xff,0x39,0x7d,0xc6,0x2, 0xe7,0xff,0x1, 0xb5,0xe2,0x1, 0xcd,0x7f,0x1, 0x22, +0x35,0x21,0x3d,0x17,0x8e,0x8a,0x8e,0x1a,0xe8,0xf, 0x3e,0xbd,0xe8,0x40,0x3e,0xfb, +0x3f,0x9c,0x37,0xa1,0xe8,0xf, 0x3f,0x9e,0xe8,0x40,0x3f,0x6c,0xe8,0x6e,0x3b,0xaa, +0x95,0x8f,0xe0,0x43,0x3f,0x9e,0x3d,0xff,0x4, 0xd, 0xe0,0xf, 0x32,0x21,0xe2,0x0, +0x7f,0x40,0x3f,0x9e,0xc2,0x1, 0xae,0x8f,0xe2,0x1, 0xc2,0x7f,0xae,0x1f,0x17,0xff, +0xaf,0x8a,0xc4,0x1, 0xe2,0x1, 0xc4,0x7f,0x3c,0x71,0xf0,0x0, 0xc0,0x82,0xe7,0xfe, +0x1, 0xff,0xe0,0x1, 0x1f,0x9c,0xf0,0x0, 0x8c,0xf, 0xf0,0x40,0x3c,0x74,0xe0,0x0, +0x5, 0xe6,0xe0,0x1, 0x1f,0xd1,0xe0,0x0, 0x1c,0x8e,0xf0,0x0, 0xa3,0xf, 0xe0,0x2, +0x1f,0xbf,0xe0,0x0, 0x1d,0x32,0x8b,0xdf,0xf0,0x40,0x3b,0xe4,0xf0,0x1, 0x12,0x7f, +0xf0,0x0, 0x12,0x80,0xf7,0xff,0x11,0xff,0xe0,0x0, 0x21,0x49,0x16,0x4, 0x3e,0x10, +0xe8,0x40,0x3d,0xe4,0xe8,0x40,0x3c,0x65,0xe0,0x0, 0x17,0x0, 0xe0,0xf, 0x37,0x43, +0x16,0x87,0x3e,0xde,0xe2,0x0, 0xc7,0x9f,0x3e,0x9a,0x3f,0x99,0x80,0x8d,0xe0,0xf, +0x87,0x8f,0x16,0x81,0x3f,0xd1,0xe2,0x1, 0xc7,0xff,0x3e,0x9e,0x27,0x96,0x88,0x8c, +0xe2,0x1, 0xc8,0xff,0xe0,0xf, 0x38,0xb7,0x1, 0x10,0xf0,0x0, 0x89,0x1c,0xe8,0xf, +0x3f,0x92,0x37,0xa1,0xe8,0xf, 0x3f,0x96,0x97,0x8f,0x3f,0xf8,0x5, 0x6, 0x3d,0xee, +0xe8,0x40,0x3b,0x62,0x3a,0xe1,0x3c,0x6f,0x3f,0x6d,0xe2,0x1, 0xc7,0x7f,0x39,0x7e, +0xc6,0x2, 0x1, 0xd5,0xe2,0x1, 0xcd,0xff,0x1, 0x11,0xe0,0xf, 0x32,0x21,0xe2,0x0, +0x7f,0x40,0x3f,0x9e,0x35,0xa1,0xe2,0x0, 0x7f,0x4, 0x3d,0x9e,0xc2,0x1, 0xaa,0x8f, +0xe2,0x1, 0xc2,0x7f,0xab,0x1f,0xf0,0x0, 0xa9,0x8b,0xf0,0x0, 0xc3,0x81,0xf2,0x1, +0xc3,0xff,0xf8,0x40,0x3c,0x77,0xe7,0xff,0x1, 0xb1,0xe0,0x1, 0x1f,0x97,0xe0,0x0, +0x14,0xc0,0x8d,0xf, 0x3c,0x90,0x35,0x21,0xe2,0x0, 0x7c,0x4, 0xe0,0x3, 0xde,0xa4, +0xf0,0xa, 0x34,0x21,0xe0,0x1, 0x14,0xff,0x3c,0x63,0xe0,0x3, 0xde,0xd7,0x2a,0xc, +0xe0,0x0, 0x1f,0xb, 0xea,0x12,0x7f,0xb0,0xaa,0xf, 0xaa,0xe, 0xe0,0x0, 0xc0,0x78, +0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0xe0,0x2, 0x32,0x21,0xe0,0x0, 0x1c,0xe, 0x3d,0x62, +0xe2,0x0, 0x7c,0x84,0xe0,0x3, 0xde,0x88,0x3d,0x62,0xe2,0x0, 0x7c,0x84,0x3c,0x63, +0xe0,0x3, 0xde,0x82,0xe0,0x0, 0x1d,0xe, 0xe0,0x0, 0x1d,0xb2,0xe0,0x0, 0x17,0x80, +0xe0,0xe, 0x37,0xc3,0x16,0x7, 0x3e,0x5f,0xe2,0x0, 0xc7,0x1f,0x3f,0x1a,0x3e,0x1b, +0xe0,0xf, 0x84,0x8e,0x86,0x8c,0xc7,0x81,0xe2,0x1, 0xc7,0xff,0x3e,0xc9,0x3f,0xf4, +0xe0,0xf, 0xae,0x8e,0x1, 0xee,0xea,0x12,0x7f,0x30,0xf0,0x40,0x3c,0x7f,0xaf,0x8e, +0xe8,0x6f,0x3c,0xa8,0xe0,0x0, 0x1f,0xb, 0xaf,0x8e,0xe0,0x0, 0xc0,0x78,0xf8,0x0, +0xf, 0x28,0xb, 0xe1,0xea,0x12,0x79,0xb4,0x3a,0x61,0xe7,0xfe,0x0, 0xbc,0x8, 0xb1, +0xe0,0x1, 0x1f,0xad,0xe0,0x3, 0x8f,0x8f,0x2f,0x84,0xef,0xff,0xd2,0x8a,0xdb,0xab, +0xdb,0xaa,0xdb,0xa9,0xd5,0xb5,0xdb,0xa7,0xdb,0xea,0xdb,0xa5,0x8, 0xa1,0xe7,0xfc, +0x0, 0xf2,0x0, 0x0, 0x8, 0xb6,0xc0,0x74,0x3c,0x7a,0xe4,0xf, 0x35,0x28,0xe4,0xe, +0x34,0x28,0x39,0x68,0x4, 0x82,0x39,0x6a,0x3f,0x7f,0x3f,0xe8,0xe0,0x6f,0x3d,0xaa, +0x3c,0xfb,0x38,0xef,0xe2,0x1, 0xc1,0x7f,0xe2,0x1, 0xc0,0xff,0x39,0xeb,0xe4,0xf, +0x35,0xa8,0xe4,0xe, 0x34,0xa8,0x3, 0x82,0x39,0xe9,0x3f,0x7f,0xe2,0x1, 0xc1,0xff, +0x3f,0xe9,0xe0,0x6f,0x3d,0xab,0x3c,0xf3,0xf0,0x40,0x3b,0x6f,0xf2,0x1, 0xc3,0x7f, +0xe0,0x1, 0x1, 0x1e,0x3d,0x72,0xe0,0x1, 0x2, 0x9e,0xf0,0x40,0x3a,0xe2,0xf0,0x0, +0x11,0x81,0xe0,0x1, 0x1f,0xd1,0xf0,0x0, 0x11,0x1, 0xf0,0x0, 0xa2,0xf, 0xe0,0x2, +0x1f,0xbf,0xe0,0x0, 0x1a,0x1d,0xf0,0x0, 0x8b,0xdf,0xf8,0x12,0x39,0x16,0x3c,0xe3, +0x15,0x0, 0xf0,0x1, 0x10,0x7f,0xf7,0x0, 0x10,0x81,0x14,0x7f,0xf0,0x40,0x39,0x79, +0xe0,0x0, 0x1, 0x62,0xe8,0x40,0x3c,0xf6,0xf0,0x1, 0x21,0x83,0xe0,0x1, 0x3, 0x65, +0x17,0x1, 0x3f,0x19,0xf0,0x40,0x3a,0xf1,0xf0,0x0, 0x6a,0x84,0x6f,0x5, 0xe0,0x1, +0x3, 0x61,0x17,0x81,0xe8,0xf, 0x3f,0x95,0xe2,0x1, 0xc7,0xff,0x6f,0x88,0x6c,0x89, +0x6f,0x8c,0x6f,0xd, 0x17,0x4, 0x3f,0x10,0xe8,0x40,0x3e,0x60,0xe8,0x40,0x3b,0x61, +0x16,0x80,0x8d,0x8e,0x12,0x81,0xe2,0x1, 0xcd,0xff,0x3a,0x9d,0xe8,0xf, 0x3d,0xb7, +0x1, 0x10,0x8d,0x9e,0x3f,0x9b,0xe2,0x1, 0xcd,0xff,0x37,0xa1,0xe8,0xf, 0x3f,0x94, +0x1, 0x8, 0x97,0x8f,0x3f,0xf6,0xe0,0x6c,0x3a,0x2d,0x3f,0xf6,0xe0,0x66,0x3a,0x2f, +0x3e,0xe5,0xe2,0x1, 0xc6,0xff,0xe2,0x0, 0xce,0x83,0xc7,0x4, 0x1, 0xe3,0xe0,0xf, +0x36,0x22,0xe2,0x0, 0x7f,0x4, 0x3f,0x1f,0x8e,0x9e,0xf0,0x40,0x3b,0x7d,0xe0,0x1, +0x1, 0x34,0xe8,0x40,0x39,0xf6,0xe0,0x1, 0x1, 0x30,0xe2,0x1, 0xce,0x7f,0xe7,0xff, +0x1, 0x2f,0xe0,0xe, 0x35,0x21,0x3c,0xed,0x3f,0x14,0xe2,0x0, 0x7e,0x4, 0xf0,0x40, +0x39,0x79,0x3f,0x9c,0xc5,0x1, 0xb3,0xe, 0xe2,0x1, 0xc5,0x7f,0xf0,0x0, 0x8a,0x8f, +0xe7,0xff,0x1, 0xa2,0xe0,0xff,0x14,0x7f,0x25,0x18,0x17,0xff,0x3f,0x9a,0x3d,0x6f, +0xe2,0x1, 0xc5,0x7f,0xe0,0x0, 0x1e,0x9d,0xe0,0xf, 0x35,0x21,0xe0,0x0, 0x1f,0x1c, +0xe0,0xf, 0x3f,0x9d,0xe0,0xff,0x14,0x7f,0xe0,0x80,0x96,0x9e,0x3e,0xf8,0xe0,0x6d, +0x3a,0x28,0x3f,0x7f,0x3c,0x6d,0x1, 0xf9,0xc0,0xc, 0xb, 0x61,0x3c,0x72,0xe7,0xfe, +0x5, 0xe6,0xf0,0x40,0x3a,0xe1,0xf0,0x0, 0x11,0x80,0xe7,0xfe,0x0, 0xe4,0xe0,0x0, +0x3, 0x59,0x17,0x1, 0x3f,0x19,0xe8,0x40,0x39,0x75,0xf0,0x0, 0x6a,0x84,0x6f,0x5, +0xe0,0x0, 0x3, 0x55,0x17,0xff,0xe8,0xf, 0x3f,0x95,0xe2,0x1, 0xc7,0xff,0x6f,0x88, +0x6c,0x89,0x6f,0x8c,0x6f,0xd, 0x17,0x4, 0x3f,0x10,0xe8,0x40,0x3e,0xe3,0xe8,0x40, +0x3e,0x60,0xe8,0x40,0x3b,0x61,0x8d,0x8e,0x12,0x81,0xe2,0x1, 0xcd,0xff,0x3a,0x9d, +0xe8,0xf, 0x3d,0xb7,0x1, 0x10,0x8d,0x9e,0x3f,0x9b,0xe2,0x1, 0xcd,0xff,0x37,0xa1, +0xe8,0xf, 0x3f,0x94,0x1, 0x8, 0x97,0x8f,0x3f,0xf6,0xe0,0x6c,0x3a,0x2d,0x3f,0xf6, +0xe0,0x66,0x3a,0x2f,0x3e,0xe5,0xe2,0x1, 0xc6,0xff,0xe2,0x0, 0xce,0x83,0xc7,0x4, +0x1, 0xe3,0xe0,0xf, 0x36,0x22,0xe2,0x0, 0x7f,0x4, 0x3f,0x1f,0x8e,0x9e,0xf0,0x40, +0x3b,0x7d,0x1, 0x2d,0xe8,0x40,0x39,0xf6,0x1, 0x2a,0xe2,0x1, 0xce,0x7f,0xe7,0xfe, +0x1, 0x2f,0xe0,0xe, 0x35,0x21,0xe2,0x0, 0x7e,0x4, 0x3f,0x9c,0x3f,0x14,0xc5,0x1, +0xf0,0x0, 0x8a,0x8f,0xb3,0xe, 0xe2,0x1, 0xc5,0x7f,0x3c,0xed,0xe7,0xfe,0x0, 0xa0, +0xf0,0x40,0x3a,0xf2,0x6c,0x4, 0x6c,0x5, 0x2, 0x23,0x6c,0x8, 0x6c,0x9, 0x6c,0xc, +0x6c,0xd, 0xe7,0xff,0x0, 0xb2,0xe8,0x40,0x38,0xf5,0x6c,0x4, 0x6c,0x5, 0x2, 0x12, +0x6c,0x8, 0x6c,0x9, 0x6c,0xc, 0x6c,0xd, 0xe7,0xfe,0x0, 0xa6,0x8f,0xe, 0x3f,0x72, +0x1, 0xd5,0xe7,0xfe,0x0, 0xe9,0x8f,0xe, 0x3f,0x71,0xe7,0xfe,0x1, 0xd0,0xe7,0xfe, +0x0, 0xe3,0x17,0x81,0xe8,0xf, 0x3f,0x95,0x6f,0x88,0x6c,0x89,0x0, 0xec,0x17,0xff, +0xe8,0xf, 0x3f,0x95,0x6f,0x88,0x6c,0x89,0x0, 0xdb,0x8, 0xb3,0xf7,0xff,0x12,0x7f, +0xf0,0x43,0x38,0x8, 0xf0,0x14,0x3a,0x18,0xf0,0x0, 0x10,0x81,0xf8,0x43,0x3a,0x4, +0xf8,0x11,0x38,0x90,0xe0,0x2, 0x1f,0xbf,0xf8,0x40,0x3a,0x71,0x80,0xef,0xf0,0x0, +0x82,0xff,0xe0,0x0, 0x2, 0x66,0xe0,0x1, 0x1f,0x51,0xf7,0xff,0x11,0x7f,0xf0,0x0, +0x11,0x81,0xf0,0x13,0x39,0x98,0xf0,0x43,0x3b,0x89,0xf0,0x12,0x39,0x19,0x15,0x1, +0x11,0x81,0xf0,0x0, 0xa3,0xe, 0x89,0x5f,0xf8,0x43,0x39,0x2, 0xe8,0xa, 0x3d,0x17, +0xf2,0x1, 0xc1,0xff,0xe7,0x0, 0x14,0x1, 0xe0,0x3, 0x39,0x99,0xf2,0x0, 0xca,0x0, +0xe8,0x43,0x3f,0x83,0xe8,0x40,0x3d,0xe4,0xe0,0x6b,0x3c,0x2f,0xe8,0x40,0x38,0xf4, +0xe0,0x6b,0x3d,0x2f,0xe8,0x40,0x3d,0x72,0x4, 0x2e,0x3e,0x63,0xe0,0x9, 0x39,0x3b, +0xe2,0x1, 0xc6,0x7f,0xe8,0x2b,0x3d,0x80,0xe8,0x40,0x3f,0xe2,0x0, 0x84,0x25,0x9c, +0x3f,0xfa,0x2, 0x21,0xe2,0x0, 0xcf,0x80,0xe0,0x43,0x3e,0x8c,0x3f,0x6f,0xe0,0x6e, +0x3c,0x2d,0xf0,0x40,0x3a,0xff,0xc6,0x7f,0xe0,0x6e,0x3d,0x2d,0xe0,0xd, 0x3f,0x19, +0xc7,0x81,0x36,0xa1,0xe8,0x2e,0x3f,0x7, 0xe0,0x43,0x3f,0x8f,0xe8,0xd, 0x3e,0x96, +0xe2,0x1, 0xc6,0x7f,0x2f,0x65,0x97,0xd, 0x3f,0x78,0xe0,0x6e,0x3c,0x28,0x3f,0xfa, +0x3c,0x6e,0x5, 0x61,0xf0,0x0, 0xc2,0x1, 0xf8,0x43,0x3a,0x4, 0xf8,0x40,0x3a,0x71, +0xf1,0xff,0xc1,0xff,0xf2,0x1, 0xc1,0xff,0xe7,0xff,0x5, 0x3a,0x9, 0xe1,0xe7,0x0, +0x14,0x1, 0x9, 0xe1,0x8, 0xb4,0xc0,0x78,0x39,0xea,0x3a,0x6b,0x7e,0x2, 0x7e,0x81, +0xdf,0x7d,0x39,0x68,0x3c,0xe4,0x3c,0x63,0xdf,0x79,0x39,0x18,0xe4,0x8, 0x31,0x4f, +0x3c,0x12,0x34,0x1, 0x66,0x81,0x3f,0xe8,0xe3,0xff,0xc6,0xff,0xe3,0xff,0xc7,0xff, +0xe0,0xe, 0x3e,0xaf,0xe0,0x43,0x3f,0x1e,0x66,0x2, 0xe2,0x0, 0xcf,0x0, 0xe0,0x8, +0x3e,0xa8,0xe0,0xe, 0x3f,0xad,0xe3,0xff,0xc6,0x7f,0xe0,0x43,0x3f,0x1e,0xe0,0x43, +0x3c,0x18,0xe0,0xf, 0x3e,0xac,0xe0,0x68,0x3d,0x2e,0xe0,0x2, 0x1f,0x6, 0xe0,0x43, +0x3f,0x9f,0x3e,0x2d,0xe2,0x0, 0xcf,0x80,0x9f,0xe, 0xe0,0x43,0x3e,0x1c,0xe0,0x6f, +0x3d,0x2c,0xe2,0x0, 0xcf,0xb, 0x16,0x86,0x17,0x3, 0xe0,0x6e,0x3c,0xad,0x3f,0x38, +0x3f,0xfe,0x5, 0xa, 0xe0,0x0, 0x17,0x64,0xe0,0x2f,0x3f,0x9e,0xe0,0x28,0x3c,0x1e, +0x3c,0x5f,0xc0,0x8, 0xa, 0x61,0x14,0x0, 0xc0,0x8, 0xa, 0x61,0x8, 0xb1,0xc0,0x44, +0x15,0x3c,0x14,0x80,0xe2,0x0, 0x7c,0x4, 0xe0,0x3, 0xdc,0x58,0xe0,0x0, 0x1f,0x8b, +0x14,0x0, 0x8d,0x8f,0xe2,0x0, 0xcd,0x82,0xe0,0x0, 0x5, 0xc8,0x15,0x7f,0x3d,0x1b, +0xe2,0x1, 0xc5,0x7f,0xc5,0x1, 0xe0,0x0, 0x1f,0x8e,0xf2,0x0, 0x7b,0x4, 0x35,0x21, +0x3d,0x1f,0xe8,0x40,0x3f,0x66,0x86,0xf, 0x86,0x9f,0xc7,0x82,0xae,0xe, 0x3f,0xfa, +0xc7,0x2, 0xe0,0x40,0xae,0x9e,0x1, 0xf8,0xf0,0x0, 0x13,0x80,0xe8,0x40,0x3e,0xe7, +0xf0,0x0, 0xc3,0x81,0xf2,0x1, 0xc3,0xff,0xe8,0x40,0x3d,0xf7,0x14,0x1, 0x1, 0x25, +0xe8,0x0, 0x8c,0x86,0xe8,0x0, 0x8d,0x16,0xe8,0x40,0x3f,0xe7,0xe0,0xe, 0x37,0xa1, +0xe2,0x0, 0x7e,0x4, 0x3f,0x1c,0x8e,0xe, 0x8f,0x1e,0x3e,0x79,0x3e,0x6d,0xe0,0x6c, +0x39,0xa8,0xc7,0x81,0x3f,0x7a,0xe2,0x1, 0xc7,0xff,0x3f,0x6d,0xe0,0x6e,0x39,0xac, +0x3d,0xff,0x3c,0x6e,0x1, 0xec,0xf0,0x0, 0xc3,0x81,0xf2,0x1, 0xc3,0xff,0xe8,0x40, +0x3d,0xf7,0xf0,0x0, 0xc3,0x2, 0x1, 0xdd,0xc0,0x3c,0x8, 0xe1,0x8, 0xb7,0xf8,0x0, +0xc, 0x3e,0xc0,0x40,0xe0,0x0, 0x1f,0xb, 0xe0,0x1, 0x1f,0x97,0x8f,0xe, 0x89,0xf, +0x7f,0xb, 0x17,0x80,0xe0,0x2, 0x1f,0x2, 0xea,0x1a,0x7e,0xe0,0xaf,0x8e,0xe9,0xff, +0xc6,0xff,0xf0,0x2, 0x1b,0x8, 0xe0,0x1, 0x1f,0x6b,0xf0,0x40,0x38,0xe8,0xa4,0xd, +0xe8,0x7, 0xaf,0xd6,0x3d,0x62,0xe8,0x7, 0xaf,0xe6,0x14,0x80,0xaf,0x8e,0xf0,0x0, +0x78,0x85,0xf0,0x0, 0x7b,0x1, 0xe0,0x3, 0xdb,0xe1,0xf0,0x0, 0x63,0x1, 0xe0,0xa, +0x31,0x21,0xe8,0x40,0x3c,0x66,0x14,0x80,0xe0,0x3, 0xdb,0xd8,0x67,0x8b,0xf0,0x0, +0x60,0x85,0xe2,0x0, 0xcf,0x81,0xf0,0x0, 0x63,0x1, 0xe0,0x3, 0x5, 0x88,0xea,0x1a, +0x7e,0xe0,0xe9,0xff,0xc6,0xff,0xf0,0x0, 0xa4,0xd, 0xf0,0x0, 0x16,0x1, 0xf8,0xe, +0x3e,0x28,0xf0,0x0, 0x1f,0x6, 0xf8,0x40,0x3e,0xec,0x7f,0x10,0xf8,0x40,0x3a,0xec, +0xf8,0x40,0x3a,0x61,0xf2,0x0, 0xca,0x81,0xf8,0x40,0x8d,0x3e,0xf8,0x40,0x8c,0xae, +0xe0,0x2, 0x1, 0x66,0xe8,0x0, 0x8f,0x88,0xe0,0x2, 0x27,0xe2,0x67,0x8b,0xe8,0x40, +0x3f,0xf5,0xe0,0x2, 0x5, 0xe4,0x3b,0x6f,0xc3,0x7f,0xe2,0x1, 0xc3,0x7f,0x67,0x10, +0xe8,0xf, 0x3b,0x25,0xe8,0xe, 0x3f,0x18,0xe2,0x1, 0xc7,0xff,0x3f,0x9e,0xe0,0x0, +0x1e,0x8e,0x37,0xa1,0xc7,0x83,0x3f,0x9d,0xf0,0x0, 0x10,0x81,0xe0,0x2, 0x1e,0xc5, +0xf8,0x11,0x38,0x98,0xc3,0x1, 0xe8,0x40,0x3a,0xee,0xf0,0x0, 0x7a,0x8d,0xf8,0x40, +0x3b,0xea,0xf0,0x0, 0x7f,0xe, 0xe8,0x40,0x3a,0x61,0xf0,0x0, 0x15,0x85,0x3b,0x1d, +0xf0,0x0, 0x78,0x8c,0xf0,0x40,0x3a,0xef,0xf8,0x40,0x3f,0x69,0x0, 0x9e,0xf0,0x0, +0x21,0xc9,0x16,0x81,0xe8,0xd, 0x3e,0xd4,0xe0,0x0, 0x26,0xc4,0xe0,0x2, 0x1f,0x2, +0xe8,0x7, 0x86,0xd6,0x86,0xe, 0xc6,0x81,0xc6,0x1, 0xae,0xe, 0xe8,0x7, 0xae,0xd6, +0x8d,0x84,0xe0,0x2, 0x2d,0xa9,0xe8,0x0, 0x8e,0x88,0xae,0x84,0xc2,0x82,0xf0,0x40, +0x3a,0xf5,0xc2,0x1, 0xe0,0x2, 0x1, 0x4, 0xe0,0x40,0x8b,0x95,0xf0,0x0, 0x8e,0x5, +0xf0,0xd, 0x3b,0xa7,0xe2,0x0, 0xce,0x80,0xf0,0x2, 0x3d,0x27,0xe8,0xd, 0x3b,0xaa, +0xe2,0x1, 0xc6,0xff,0xf8,0xc, 0x3f,0x2c,0xe2,0x1, 0xc1,0x7f,0xe0,0x62,0x3d,0x2d, +0xf8,0x3, 0x3c,0xac,0xe2,0x0, 0xce,0x0, 0xf8,0xd, 0x3e,0x29,0xe2,0x1, 0xc1,0xff, +0xe2,0x1, 0xc6,0xff,0xe9,0x2c,0x39,0x1b,0xe0,0x63,0x3d,0x2d,0x2e,0x58,0xe9,0x2d, +0x39,0x9b,0x2e,0xd5,0xf1,0x2d,0x3e,0xa3,0xf1,0x33,0x3e,0xa2,0xe7,0xff,0x2e,0xb9, +0xe9,0x2d,0x39,0x1d,0x2e,0x84,0xe9,0x2d,0x39,0x9d,0x26,0xc9,0x16,0x82,0xe8,0xd, +0x3e,0xd4,0x26,0xc5,0xe0,0x2, 0x1f,0xbf,0xe0,0x1, 0x1f,0x51,0x8e,0xdf,0xa5,0x8e, +0xf0,0xc, 0x3d,0x3d,0x3e,0xb7,0xe8,0xc, 0x3e,0x19,0xe8,0xd, 0x3e,0x9c,0x36,0x21, +0x36,0xa1,0x3e,0x1b,0x3e,0x9b,0xf0,0x0, 0x90,0xc, 0xf0,0x0, 0x91,0xd, 0x16,0x82, +0xe1,0x2f,0x3e,0xa2,0xe8,0x40,0x3d,0xec,0x3d,0x67,0xe1,0x2d,0x3e,0xa3,0xe8,0x40, +0x3c,0xe9,0xe8,0x40,0x3c,0x6a,0xf0,0x0, 0x79,0x86,0xf0,0x0, 0x7a,0x2, 0xf0,0x0, +0x7a,0x84,0xf0,0x0, 0x7b,0x1, 0xf0,0x0, 0x7b,0x83,0x7f,0x8f,0x7e,0x8a,0xf0,0x0, +0x78,0x8, 0xf0,0x0, 0x79,0x7, 0xdc,0x7f,0xf0,0x0, 0x60,0x8, 0xf0,0x0, 0x61,0x7, +0xe2,0xff,0xcc,0x7f,0xf8,0xc, 0x38,0x12,0xe4,0xd, 0x36,0x4f,0x3e,0x9c,0x16,0x0, +0xe0,0x6c,0x39,0xa8,0xf8,0x40,0x38,0x72,0xe8,0x40,0x3f,0xe2,0x36,0x81,0xe8,0x6f, +0x3b,0x20,0xe8,0x40,0x3d,0xec,0x3d,0x67,0xe0,0x43,0x3e,0x9d,0xe8,0x40,0x3c,0xe9, +0xe8,0x40,0x3c,0x6a,0x7f,0x89,0x7e,0x5, 0xde,0x2e,0x67,0xa, 0xf0,0x0, 0x66,0xf, +0x3b,0xe8,0xf0,0x1c,0x3e,0x5e,0xde,0x73,0x67,0x89,0xf0,0x0, 0x60,0x8, 0xf0,0x0, +0x60,0x85,0xf0,0x0, 0x61,0x7, 0xf0,0x0, 0x61,0x86,0xf0,0x0, 0x62,0x2, 0xf0,0x0, +0x62,0x84,0xf0,0x0, 0x63,0x1, 0xf0,0x0, 0x63,0x83,0xe0,0x1, 0x24,0x45,0xf0,0x40, +0x39,0x6f,0xe0,0x2, 0x1e,0x86,0xe0,0x0, 0x1f,0x24,0x9d,0xd, 0xe0,0x0, 0x15,0xd1, +0xe2,0x0, 0xcd,0xa, 0xe0,0x0, 0x16,0xc7,0xe0,0x6d,0x3a,0xab,0x9d,0x8e,0xe0,0x72, +0x3a,0xaf,0xe2,0x0, 0xcd,0x8b,0x15,0x3c,0x15,0x80,0xe0,0x6a,0x3c,0xad,0xe0,0x6b, +0x3c,0xa7,0x3e,0xea,0x3b,0xeb,0xf0,0x0, 0x2e,0x7e,0x15,0x83,0xe1,0x2b,0x3d,0xa3, +0xe0,0x1, 0x25,0xa8,0x67,0x8f,0xe0,0x1, 0x27,0xa5,0x16,0xb4,0xf0,0x0, 0x21,0xf6, +0x67,0x8a,0xe0,0x0, 0x27,0xf3,0xe0,0x2, 0x1f,0x16,0x14,0x1e,0x8e,0x8e,0xe0,0x0, +0x2e,0xf3,0x16,0x9e,0xf0,0x8, 0x39,0x3d,0xe0,0x0, 0x14,0xe4,0xf0,0x0, 0x78,0x85, +0xf0,0x0, 0x7a,0x2, 0xf0,0x0, 0x7a,0x84,0xf0,0x0, 0x7b,0x1, 0xf0,0x0, 0x7b,0x83, +0xe0,0x3, 0xd8,0xa, 0xf0,0x0, 0x60,0x85,0xf0,0x0, 0x62,0x2, 0xf0,0x40,0x38,0xf8, +0xf0,0x0, 0x62,0x84,0xf0,0x0, 0x63,0x1, 0xf0,0x0, 0x63,0x83,0xe7,0xfe,0x5, 0x8, +0x16,0x80,0xe1,0x2c,0x3b,0x8d,0xe8,0x40,0x3e,0x7c,0xe7,0xfd,0x5, 0xfb,0xc2,0x82, +0xf0,0x40,0x3a,0xf5,0xe0,0x0, 0xc2,0x1, 0xe7,0xfe,0x1, 0x80,0xf0,0x0, 0x62,0x8d, +0xf0,0x0, 0x60,0x8c,0xf0,0x0, 0x67,0xe, 0xf0,0x0, 0xc2,0x81,0xf0,0x0, 0xc7,0x2, +0xf2,0x1, 0xc2,0xff,0xf8,0x40,0x3c,0x61,0xe7,0xfd,0x0, 0x96,0x67,0x8b,0xf8,0x0, +0xaa,0x88,0xe8,0x40,0x3f,0xf5,0xe7,0xfd,0x2, 0xa0,0xe0,0x0, 0xc0,0x40,0xf8,0x0, +0xf, 0x28,0xb, 0xe1,0xe8,0x0, 0x8e,0x8, 0x3e,0xeb,0xe2,0x1, 0xc6,0xff,0x3e,0xfc, +0x3d,0x6b,0x5, 0x82,0x3d,0x6c,0xea,0x1a,0x7f,0x60,0xe9,0xff,0xc7,0x7f,0xe2,0x1, +0xc5,0x7f,0xa6,0x8e,0x0, 0x8a,0xe8,0x0, 0x8f,0x8, 0x3f,0x7f,0x1, 0x9, 0xc6,0x81, +0x3e,0xf6,0xe7,0xfd,0x1, 0x45,0x8d,0x84,0x8f,0x8d,0x3f,0xfb,0x1, 0xf5,0xad,0xd, +0x0, 0xf7,0x16,0xb2,0xf7,0xff,0x29,0x8e,0xe0,0x2, 0x1f,0x96,0x8d,0x8f,0xe7,0xff, +0x25,0x93,0x14,0x2d,0xe8,0x8, 0x3c,0x32,0xe0,0x0, 0x14,0xe4,0xf0,0x0, 0x78,0x85, +0xf0,0x0, 0x7a,0x2, 0xf0,0x0, 0x7a,0x84,0xf0,0x0, 0x7b,0x1, 0xf0,0x0, 0x7b,0x83, +0xe0,0x3, 0xd7,0x9a,0xf0,0x0, 0x60,0x85,0xf0,0x0, 0x62,0x2, 0xf0,0x40,0x38,0xf8, +0xf0,0x0, 0x62,0x84,0xf0,0x0, 0x63,0x1, 0xf0,0x0, 0x63,0x83,0xe7,0xfd,0x5, 0x18, +0xe7,0xfd,0x0, 0x90,0xf8,0x40,0x38,0x72,0xe8,0x72,0x3d,0x20,0xe7,0xfe,0x0, 0xbb, +0x15,0x84,0xe1,0x23,0x3d,0xa3,0x21,0x86,0x67,0xf, 0x27,0x4, 0x16,0xba,0xe7,0xfe, +0x0, 0xd7,0xe2,0x0, 0xc9,0x2, 0xe7,0xfe,0x2, 0xd3,0x16,0xbc,0x0, 0xc6,0xe0,0x0, +0x1f,0xd, 0xe0,0x0, 0x1f,0x8e,0x8c,0xe, 0x24,0x1a,0xe0,0x10,0x8f,0x2f,0xe2,0x0, +0xcf,0x10,0x2, 0x94,0x17,0x7f,0x3f,0x18,0x3c,0x6e,0xe2,0x1, 0xc4,0x7f,0x17,0xa, +0x3f,0x38,0x3f,0x1f,0x0, 0x86,0xe0,0x10,0x8e,0xaf,0xe2,0x0, 0xce,0x90,0x2, 0x86, +0x3f,0xfe,0xc7,0x8a,0x1, 0xf9,0x14,0x0, 0x38,0x82,0x14,0x1, 0x38,0x82,0x8, 0xb7, +0xf8,0x0, 0xc, 0x38,0xe0,0x0, 0x1f,0x8b,0xf0,0x0, 0x8c,0xf, 0xf0,0x1, 0x24,0x5d, +0xe0,0x0, 0x1e,0xe, 0xe0,0x2, 0x1f,0xbf,0x8b,0xc, 0x8a,0xdf,0x89,0x1c,0xe0,0xf, +0x3b,0x35,0xe0,0x1, 0x1f,0x51,0x14,0xff,0xa2,0xe, 0x3f,0x92,0xe8,0x9, 0x3c,0x98, +0x37,0xa1,0xe2,0x1, 0xc4,0xff,0x3f,0x94,0x34,0xa1,0x94,0xf, 0x39,0xe6,0x3b,0xe2, +0x3c,0x9c,0xe0,0x0, 0x0, 0xc5,0x3e,0x79,0xe0,0x0, 0x1, 0x50,0x8f,0x2c,0x8f,0xbc, +0xe0,0xd, 0x3f,0x35,0x3d,0x6e,0x3e,0x9f,0x36,0xa1,0x3e,0x94,0x96,0x8d,0xe4,0xb, +0x37,0x28,0x3e,0xf8,0xe0,0x6d,0x3a,0x28,0x3c,0x6d,0x3e,0xe6,0xe2,0x1, 0xc6,0xff, +0x3f,0x7d,0x5, 0x82,0x3d,0x66,0x3e,0xe3,0xe4,0xb, 0x35,0xc8,0xe2,0x1, 0xc6,0xff, +0x3d,0xfd,0x3b,0x6a,0xe2,0x1, 0xc3,0x7f,0x3, 0x82,0x3f,0x63,0x39,0xee,0x3f,0x62, +0xe2,0x1, 0xc7,0x7f,0x3f,0xfe,0xe2,0x1, 0xc1,0xff,0x3d,0xef,0xe4,0xd, 0x37,0xa8, +0x5, 0x82,0x3d,0xe2,0x3f,0x67,0xe4,0xd, 0x36,0xc8,0xe2,0x1, 0xc7,0x7f,0x3e,0xfe, +0x39,0x6b,0xe2,0x1, 0xc1,0x7f,0x3, 0x82,0x3f,0xe7,0xe0,0xe, 0x39,0xa6,0xe2,0x0, +0xcf,0x7, 0x3b,0xef,0xe2,0x1, 0xc3,0xff,0xc6,0x2, 0x2, 0x7, 0xe0,0xf, 0x3b,0xa2, +0xe2,0x0, 0xcf,0x87,0xe7,0xff,0x5, 0x39,0xe0,0x2, 0x1f,0x86,0xe0,0x3, 0x17,0x74, +0xb7,0xf, 0xf8,0x0, 0xc, 0x28,0xb, 0xe1,0x14,0x83,0x34,0x21,0xe0,0x3, 0xd6,0xdc, +0x3b,0xf2,0x15,0x80,0xe0,0x43,0x3c,0x18,0x3e,0xeb,0x4, 0xa2,0x39,0xf6,0x4, 0x9b, +0xe0,0x40,0x3f,0x66,0xe0,0xf, 0x3f,0x35,0x16,0x1, 0x3f,0x92,0x37,0xa1,0x3f,0x94, +0x97,0x8f,0x3e,0x1d,0x3f,0xf8,0xc7,0x1, 0x3f,0xec,0xe2,0x1, 0xc7,0xff,0x16,0x1, +0xe2,0x1, 0xc7,0x7f,0x3e,0x1b,0xe0,0x6d,0x3a,0x2f,0x3f,0x73,0x3d,0xec,0xe2,0x1, +0xc5,0xff,0x5, 0xe9,0xc1,0x1, 0xe2,0x1, 0xc1,0x7f,0x39,0x77,0x5, 0xe0,0xe0,0x2, +0x1f,0x9f,0x8f,0x8f,0xe2,0x0, 0xcf,0x82,0x5, 0xa0,0xe0,0x2, 0x1f,0x6, 0x9f,0x8e, +0xe2,0x7, 0xcf,0xe7,0x2, 0x83,0xc7,0x81,0xb7,0x8e,0xf7,0xff,0x24,0x44,0xe4,0x0, +0xc6,0x83,0xe0,0xf, 0x35,0xa1,0x3e,0xff,0x5, 0x20,0xe0,0x0, 0x1f,0x24,0xe0,0x2, +0x1e,0x86,0x9f,0x8e,0x16,0x0, 0xe2,0x3, 0xcf,0xf3,0xb6,0xd, 0xe7,0xff,0x2, 0xb3, +0xc7,0x81,0xb7,0x8e,0xe7,0xff,0x0, 0xaf,0x1, 0x69,0xe0,0x2, 0x1f,0x6, 0x9f,0x8e, +0xe2,0x0, 0xcf,0x82,0x5, 0x83,0xc7,0xfe,0xb7,0x8e,0xe0,0x0, 0x1f,0x24,0x9f,0x8e, +0xe2,0x3, 0xcf,0xf3,0x2, 0xdb,0x0, 0xd8,0xe0,0x2, 0x1f,0x6, 0x9f,0x8e,0xe2,0x7, +0xcf,0xe7,0x2, 0x83,0xc7,0x82,0xb7,0x8e,0x17,0x0, 0xe0,0x0, 0x1f,0xa4,0xb7,0xf, +0xf8,0x0, 0xc, 0x28,0xb, 0xe1,0xe8,0x40,0x3d,0xe8,0xe8,0x40,0x3e,0xe8,0xe7,0xff, +0x0, 0xb8,0xe0,0x2, 0x1f,0x86,0x9c,0xf, 0x17,0x8a,0xe1,0x28,0x3c,0x1f,0x38,0x82, +0xe0,0x0, 0x1f,0xa4,0x9c,0xf, 0x17,0x8a,0xe1,0x28,0x3c,0x1f,0x38,0x82,0x8, 0xb7, +0xf8,0x0, 0xc, 0x3e,0xc0,0x7c,0xe0,0x2, 0x1b,0x88,0x17,0x80,0xe0,0x7, 0xaf,0xc7, +0xe0,0x2, 0x1f,0x9f,0xe0,0x0, 0x1a,0xb, 0x8b,0xf, 0xde,0xfa,0x8f,0x84,0xe2,0x0, +0xcf,0x81,0xe0,0x2, 0x5, 0xf3,0x14,0x3, 0xdc,0xb2,0xeb,0xe6,0x7f,0xa8,0x7f,0x81, +0xe0,0x2, 0x23,0x2a,0xe2,0x0, 0xcb,0x1, 0x5, 0x86,0x8f,0x8f,0xe2,0x0, 0xcf,0x86, +0xe0,0x2, 0x2, 0xa2,0xf0,0x0, 0x88,0x84,0xe0,0x0, 0x1a,0x8e,0xe8,0x40,0x3b,0x71, +0xe0,0x2, 0x1, 0x6f,0xe0,0x7, 0x8f,0xd7,0xfa,0x12,0x7c,0x74,0xf0,0xf, 0x38,0xaf, +0xc7,0x81,0x3b,0x7f,0xe0,0x3, 0x1, 0x19,0xe0,0x2, 0x1f,0x82,0x8f,0x8f,0xe8,0x0, +0x8f,0x8, 0xf0,0xf, 0x38,0xaf,0xc7,0x81,0x3f,0x7f,0x14,0x3, 0xe0,0x2, 0x1, 0x75, +0xf0,0x3, 0x20,0x83,0x16,0x7f,0xe8,0xc, 0x3e,0x11,0xf0,0x2, 0x1c,0xc5,0xe2,0x1, +0xc6,0x7f,0xc6,0x1, 0xe8,0xc, 0x3e,0x19,0xf8,0x40,0x3b,0xe9,0xf0,0x0, 0x13,0x0, +0xe9,0x80,0x8f,0x17,0xe8,0x40,0x3f,0xe6,0xe2,0x1, 0xc7,0xff,0x3f,0x7f,0x3e,0xee, +0x3, 0x83,0xe8,0x40,0x3e,0xe6,0xe8,0x40,0x3e,0x77,0xf0,0x40,0x3b,0x6d,0xf2,0x1, +0xc3,0x7f,0x1, 0xef,0xf8,0x40,0x38,0xe6,0xf0,0x2, 0x23,0x5f,0xe0,0x1, 0x1f,0xd1, +0xfb,0xe6,0x7e,0x2a,0xfb,0xe6,0x7d,0xa9,0xf0,0x0, 0xa2,0xf, 0xe0,0x2, 0x1f,0xbf, +0xf8,0x0, 0x89,0xc, 0xf8,0x0, 0x88,0xb, 0xf0,0x0, 0x10,0x80,0xf0,0x0, 0x8a,0xdf, +0xe8,0x40,0x3b,0x62,0xe8,0x40,0x38,0xe0,0x16,0x1, 0xf0,0x1, 0x11,0xff,0xf8,0x40, +0x3d,0x61,0x3d,0x62,0xe0,0x0, 0x1f,0xe, 0xe8,0x40,0x3f,0xe9,0xf8,0x40,0x3e,0xea, +0x15,0x80,0x0, 0x85,0xf0,0x40,0x3b,0xff,0xc7,0x2, 0x1, 0x2b,0xe1,0x80,0x8e,0x9f, +0x3e,0xfc,0x1, 0xf9,0x8c,0x8e,0xc5,0x81,0xe2,0x1, 0xc5,0xff,0xe2,0x0, 0xcd,0x81, +0x8c,0x1e,0xe8,0xd, 0x3c,0xb5,0xe0,0x6a,0x39,0x28,0x3e,0x98,0xe0,0x63,0x39,0x29, +0xf2,0x0, 0xcb,0x1, 0x36,0xa1,0xe8,0xd, 0x3e,0x94,0xe0,0x1, 0x1, 0x25,0x96,0x8d, +0xc7,0x2, 0xe8,0x40,0x3e,0xfd,0xe0,0x6a,0x3a,0x28,0xe8,0x40,0x3e,0xfd,0xe0,0x63, +0x3a,0x29,0xe8,0x40,0x3e,0xfd,0xe0,0x7d,0x3a,0x2d,0xf0,0x40,0x3b,0xff,0x1, 0xd7, +0x25,0x8a,0xf0,0xf, 0x30,0xa1,0x3f,0x97,0xf0,0x0, 0xc0,0x81,0xa9,0x8f,0xf2,0x1, +0xc0,0xff,0xad,0x1f,0xc6,0x1, 0xe2,0x1, 0xc6,0x7f,0xe8,0x40,0x3e,0x76,0xe7,0xff, +0x5, 0xbb,0xf2,0x0, 0xc8,0x81,0xf0,0xa, 0x30,0xa1,0xe0,0x1, 0x1, 0x6b,0x17,0xff, +0xe8,0x0, 0xaf,0x8c,0xe8,0x0, 0xaf,0x8b,0xe0,0x2, 0x1c,0x88,0xe0,0x0, 0x1c,0xe, +0xf0,0x7, 0xa8,0xc7,0xf0,0x0, 0xa8,0x84,0xe0,0x3, 0xd7,0xb6,0x88,0x84,0xe8,0x0, +0xa8,0x88,0xe0,0x1, 0x20,0xdf,0x12,0x0, 0xc2,0x1, 0xe2,0x1, 0xc2,0x7f,0x38,0xf4, +0xe0,0x0, 0x1b,0xe, 0xe0,0x0, 0x15,0xe4,0xe0,0x0, 0x1, 0x4a,0x8c,0x86,0x8d,0x16, +0x3b,0xe9,0x39,0xea,0xe0,0x40,0x3e,0x64,0xe0,0xf, 0x36,0x21,0xe0,0xe, 0x3a,0x9f, +0x8e,0x8e,0x8f,0x1e,0xe0,0x8, 0x3b,0xad,0xe2,0x0, 0xcc,0x0, 0xe0,0xf, 0x3c,0xad, +0x3e,0xa9,0xe0,0x8, 0x39,0xae,0xe2,0x1, 0xc6,0xff,0xe2,0x1, 0xc7,0xff,0xe0,0x6f, +0x3d,0x2d,0xe2,0x0, 0xcc,0x0, 0xe0,0xd, 0x3d,0x2e,0x3f,0x2a,0xe2,0x1, 0xc7,0x7f, +0xe2,0x1, 0xc6,0xff,0xe0,0x6d,0x3d,0x2e,0x3c,0x6d,0x39,0x6f,0xe2,0x1, 0xc1,0x7f, +0xe2,0x1, 0xc4,0x7f,0x39,0x78,0x3f,0x6d,0xc6,0x1, 0x3e,0xeb,0xe2,0x1, 0xc6,0xff, +0xe2,0x1, 0xc6,0x7f,0x3, 0x82,0x3f,0xee,0x3f,0x6f,0xe2,0x1, 0xc7,0x7f,0x3f,0x7d, +0x5, 0x82,0x3f,0xeb,0x38,0xfc,0x3d,0xef,0xe2,0x1, 0xc5,0xff,0x1, 0xc6,0xc2,0x1, +0xe2,0x1, 0xc2,0x7f,0x38,0xf4,0xc3,0x2, 0xe7,0xff,0x1, 0xba,0xe2,0x0, 0xcd,0xe4, +0x17,0x80,0xe0,0x6f,0x39,0xab,0x3d,0xef,0x67,0x1, 0xad,0x8e,0xc0,0x4, 0xf8,0x0, +0xf, 0x28,0xb, 0xe1,0xfa,0x12,0x7c,0x74,0xf0,0x0, 0x88,0x84,0xe0,0x0, 0x1a,0x8e, +0xe7,0xfd,0x0, 0xf8,0xf2,0x1, 0xc9,0x7f,0xe7,0xfe,0x1, 0x5b,0xe0,0xd, 0x3c,0xa6, +0xe0,0x43,0x3e,0x9d,0xe2,0x0, 0xce,0x80,0xf0,0x2, 0x39,0x29,0xe8,0xd, 0x3c,0xa2, +0xe2,0x1, 0xc1,0x7f,0xe0,0x1e,0x3c,0x21,0xe2,0x1, 0xc6,0xff,0xe0,0x6d,0x3d,0x22, +0xf8,0x43,0x3f,0x1e,0x39,0x6d,0xf2,0x0, 0xcf,0x0, 0xe8,0xd, 0x3c,0x20,0xf0,0x1e, +0x38,0x28,0xe2,0x1, 0xc6,0xff,0xf2,0x1, 0xc7,0x7f,0xe8,0x6d,0x3d,0x2e,0x3e,0x92, +0xe2,0x1, 0xc6,0xff,0xe8,0x40,0x3e,0xf3,0xe8,0x40,0x39,0x63,0xe0,0x62,0x3c,0xad, +0xe8,0x40,0x3e,0xf3,0xe0,0x6a,0x3c,0xa8,0xe8,0x40,0x3e,0xf3,0xf0,0x40,0x39,0xe2, +0xe0,0x63,0x3c,0xa9,0xe7,0xfe,0x0, 0x88,0xeb,0xe6,0x7d,0xa8,0xea,0x12,0x7e,0x74, +0xeb,0xe6,0x7e,0xaa,0xeb,0xe6,0x7f,0x29,0x15,0x7f,0xe0,0x0, 0x14,0xe4,0xac,0x8b, +0xaf,0x8c,0xad,0xd, 0xad,0xe, 0xc0,0x4, 0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0xe0,0x0, +0x1f,0x8d,0x8f,0x8f,0x27,0x96,0xe0,0x10,0x8f,0x25,0xe2,0x0, 0xcf,0x10,0x2, 0xae, +0xc7,0xff,0xe2,0x1, 0xc7,0xff,0xe4,0x0, 0xc7,0x8a,0x3f,0x65,0x3f,0x95,0x0, 0x86, +0xe0,0x10,0x8e,0xae,0xe2,0x0, 0xce,0x90,0x2, 0xa1,0x3f,0x7f,0xc7,0xa, 0x1, 0xf9, +0xfa,0x12,0x7c,0x74,0x14,0x1, 0xdb,0x13,0xf0,0x0, 0x88,0x84,0xe7,0xfd,0x0, 0x8a, +0x87,0x7, 0x87,0x97,0xe8,0x0, 0xaf,0xc, 0xe8,0x0, 0xaf,0x8b,0xe7,0xfe,0x0, 0x96, +0x3d,0xe1,0xe7,0xfe,0x0, 0xfb,0xfb,0xe6,0x7e,0x2a,0xfb,0xe6,0x7d,0xa9,0xe8,0x40, +0x3d,0x61,0xe7,0xfe,0x0, 0x86,0x14,0x1, 0x0, 0xe7,0xfa,0x12,0x7c,0x74,0x14,0x3, +0x0, 0xe3,0x0, 0x0, 0xe0,0x1, 0x1f,0x9c,0x8f,0x8f,0xe0,0x1, 0x27,0x82,0x8, 0xb4, +0xf7,0xff,0x11,0x7f,0xf0,0x12,0x39,0x1f,0xf0,0x0, 0x12,0x1, 0xf2,0x1, 0xc1,0x7f, +0xf0,0x14,0x3a,0x19,0xf0,0x0, 0x10,0xa, 0xe0,0x2, 0x1a,0x21,0xf4,0x0, 0xc1,0xa, +0xf2,0x1, 0xc2,0x7f,0x11,0xa, 0xf0,0x10,0x38,0x39,0xe8,0x2, 0x39,0x34,0x10,0xff, +0xf0,0x1, 0xc1,0x52,0xf0,0x10,0x38,0x14,0x38,0x9a,0xf0,0x2, 0x19,0x9d,0xf0,0x12, +0x39,0x14,0x39,0x14,0xe0,0x1, 0x11,0xff,0xf0,0x0, 0xc0,0x4, 0x38,0xa9,0x3c,0xfa, +0x3, 0xa4,0xe8,0x0, 0x8e,0x43,0xe8,0x0, 0x8f,0x80,0xf8,0x40,0x38,0xe3,0xe0,0x2f, +0x3f,0x8c,0xf0,0x40,0x3b,0xe9,0xe1,0x35,0x3e,0x3, 0x27,0x83,0xf0,0x0, 0x2a,0x9c, +0xf0,0x40,0x3b,0x61,0xf2,0x1, 0xc3,0x7f,0x3e,0xe2,0x17,0x0, 0x0, 0x89,0x8f,0xcd, +0xc7,0x1, 0xe0,0x2f,0x3f,0x8c,0xe8,0xf, 0x3f,0xd5,0xc6,0x8a,0x2f,0x8c,0xe8,0x40, +0x3f,0x76,0xe8,0x17,0x3f,0x14,0x1, 0xf4,0xf0,0x0, 0xc1,0x8a,0xf8,0x40,0x39,0xf2, +0x1, 0xd7,0xa, 0x61,0xe0,0xf, 0x36,0x23,0x3f,0x94,0xe0,0x2, 0xc7,0xac,0x8f,0x8f, +0xf4,0x0, 0xc3,0x8a,0x2f,0x83,0xe8,0x11,0x3a,0x17,0x17,0xa, 0x3f,0x38,0xe8,0x0, +0x8f,0xc1,0x3f,0x1b,0xaf,0xce,0xe8,0xf, 0x3a,0x17,0xe8,0x0, 0x9e,0x91,0xe8,0x0, +0x9e,0x1, 0xb6,0x9e,0xf0,0x0, 0xc1,0x8a,0xb6,0xe, 0xf8,0x40,0x39,0xf2,0x8e,0xdf, +0xc4,0x1, 0xae,0xde,0xe2,0x1, 0xc4,0x7f,0x8e,0xef,0xae,0xee,0x8e,0xff,0xae,0xfe, +0xe0,0x1, 0x8f,0x8f,0xe0,0x1, 0xaf,0x8e,0xe7,0xff,0x1, 0xab,0x0, 0xd3,0x38,0x82, +0xe0,0x2, 0x1f,0x9f,0xe0,0x2, 0x1f,0x15,0x8f,0x8f,0x8f,0xe, 0x2f,0x82,0x27,0x20, +0xe0,0x2, 0x1e,0x94,0xe0,0x2, 0x1e,0x1a,0x8e,0x8d,0x3e,0xfe,0x4, 0x9a,0xae,0x8c, +0xe0,0x2, 0x1f,0x20,0x8e,0x8e,0x3e,0xff,0x5, 0x8f,0xea,0x22,0x7e,0xc6,0x8d,0x8d, +0x8e,0xc, 0x3e,0x7b,0x5, 0x8d,0xaf,0x8e,0xc5,0x81,0xe0,0x0, 0x1f,0xad,0xad,0x8d, +0x17,0x1, 0xaf,0xf, 0x38,0x82,0xea,0x22,0x7f,0xc6,0x17,0x0, 0xaf,0xf, 0x38,0x82, +0xaf,0xc, 0x0, 0xe7,0xe0,0x2, 0x1f,0x20,0xe0,0x0, 0x1f,0xad,0x16,0x0, 0x8e,0x8e, +0xae,0xf, 0x2e,0x9f,0xe0,0x2, 0x1e,0x9f,0x8e,0xd, 0x26,0x1b,0xe0,0x2, 0x1e,0x95, +0x8d,0x8d,0xe0,0x2, 0x1e,0x94,0x8e,0x8d,0x3d,0xfd,0x2, 0x9b,0xe0,0x2, 0x1d,0x1a, +0x3d,0xed,0xae,0x8a,0xea,0x22,0x7e,0xc7,0x8d,0xd, 0x3d,0x7b,0x3, 0x9a,0xae,0xe, +0x15,0x81,0xe0,0x2, 0x1f,0x13,0xc5,0x1, 0xad,0x8e,0xad,0xd, 0xad,0x8f,0x38,0x82, +0xea,0x22,0x7f,0xc7,0x17,0x0, 0xaf,0xf, 0xe0,0x2, 0x1f,0x93,0xaf,0xf, 0x38,0x82, +0xe0,0x2, 0x1e,0x9a,0xad,0x8d,0xea,0x22,0x7e,0xc7,0x8d,0xd, 0x3d,0x7b,0x4, 0xe8, +0x17,0x80,0xaf,0x8d,0x38,0x82,0xe0,0x2, 0x1f,0x85,0xe0,0xa, 0x8f,0x8f,0x2f,0x83, +0xe7,0xff,0x0, 0x98,0x38,0x82,0xe0,0x2, 0x1f,0x55,0x8f,0x8e,0xe2,0x1, 0xcf,0xf9, +0x2, 0x83,0xc7,0x81,0xaf,0x8e,0x38,0x82,0xe0,0x2, 0x1c,0x78,0xe0,0x4, 0x15,0x6a, +0x14,0x80,0xe0,0x6b,0x0, 0xfb,0xe0,0x2, 0x1c,0xf8,0xe0,0x2, 0x1f,0x20,0x8d,0x9, +0x8c,0xe, 0xe0,0xf, 0x3c,0x9a,0x17,0x0, 0xaf,0x2f,0x24,0x1b,0x15,0xff,0x3d,0x98, +0xe2,0x1, 0xc5,0xff,0xc5,0x81,0x17,0x28,0x3f,0x3a,0xe4,0x0, 0xc5,0x8a,0xe0,0x2, +0x1f,0xa1,0x3f,0x19,0x3d,0x9f,0x96,0xf, 0x96,0x9f,0xc7,0x8a,0xe0,0x1, 0xb6,0x1e, +0x3f,0xfb,0xc7,0x4, 0xe0,0x1, 0xb6,0x8e,0x1, 0xf7,0xe0,0xf, 0x3c,0x9a,0xac,0x2f, +0xc5,0x1, 0xe2,0x1, 0xc5,0x7f,0xe2,0x0, 0xcd,0xf, 0x1, 0x17,0xad,0x9, 0x16,0x0, +0xe0,0x2, 0x1f,0x77,0xe0,0x2, 0x1d,0x76,0xe1,0x80,0x8e,0x9e,0x3f,0xec,0xe2,0x1, +0xc7,0xff,0x3e,0xff,0x3d,0xed,0x3, 0x82,0x3d,0xec,0x3f,0x7a,0x3e,0x6b,0xe2,0x1, +0xc6,0x7f,0x1, 0xf3,0xae,0x19,0x38,0x82,0x17,0x80,0xaf,0x89,0x0, 0xe9,0xf0,0x2, +0x1b,0x77,0xf0,0x2, 0x1a,0x75,0xf0,0x2, 0x19,0x76,0xf0,0x2, 0x19,0xf8,0xf0,0x0, +0x12,0x80,0xf0,0x0, 0x13,0xcf,0xe9,0x80,0x8f,0x96,0x27,0xb5,0x15,0x7f,0x3d,0x1f, +0xe2,0x1, 0xc5,0x7f,0xe8,0xa, 0x3d,0x15,0x35,0x22,0xc5,0x16,0xe8,0xa, 0x3d,0x13, +0xe8,0x40,0x3d,0xe4,0x0, 0x83,0x3d,0x7b,0x1, 0x26,0x9e,0xb, 0x9e,0x9b,0xe0,0xf, +0x3c,0x2c,0xe3,0xff,0xc7,0xff,0xf0,0x43,0x38,0x9f,0xe0,0xe, 0x3c,0xad,0xf2,0x0, +0xc8,0x80,0xe3,0xff,0xc7,0x7f,0x3e,0x28,0xf0,0x43,0x38,0x9e,0xe3,0xff,0xc6,0x7f, +0xe0,0x6f,0x3d,0x2c,0x3e,0xa9,0xf2,0x0, 0xc8,0x80,0xe3,0xff,0xc6,0xff,0xe0,0x6e, +0x3d,0x2d,0xf1,0x2f,0x3b,0xaf,0xc5,0x84,0xf1,0x2e,0x3b,0xae,0x27,0xdd,0x27,0x5c, +0x14,0x1, 0x38,0x82,0xf8,0x40,0x3b,0x72,0xf0,0x0, 0xc2,0x28,0xf0,0x0, 0xc2,0x8a, +0x1, 0xc3,0x14,0x0, 0x38,0x82,0x8, 0xb7,0xf8,0x0, 0xc, 0x3e,0xe1,0xfe,0xc0,0xc, +0xe0,0x2, 0x1f,0x20,0xea,0x22,0x7f,0xc4,0xf0,0x0, 0x8d,0x8e,0x7f,0x8a,0xf0,0x2, +0x25,0xff,0x97,0x8f,0xc7,0x81,0xe3,0xff,0xc7,0xff,0xe2,0x0, 0xcf,0xe4,0xe0,0x3, +0x2, 0x80,0x67,0xa, 0xb7,0x8e,0xe0,0x2, 0x1f,0x85,0xe0,0x4, 0x8f,0xdf,0xe2,0x0, +0xcf,0x81,0xea,0x22,0x7f,0xc2,0x7f,0x89,0xe0,0x7, 0x1, 0x15,0x8f,0x8f,0xe0,0x2, +0x2f,0xeb,0xe0,0x2, 0x1f,0x93,0xf0,0x0, 0x8c,0x8f,0xf0,0x2, 0x2c,0xdc,0xe0,0x0, +0x1f,0x9e,0xe0,0x2, 0x1f,0x24,0x9e,0xf, 0x9e,0xf, 0x9e,0x8e,0x9d,0x8f,0xe0,0xd, +0x3e,0x2d,0xe2,0x1, 0xc6,0xff,0xe0,0x1, 0x1f,0xce,0x7e,0x83,0x8e,0x8f,0x67,0x83, +0xe2,0x0, 0xce,0x82,0x66,0x3, 0xc7,0x82,0xe2,0x1, 0xc7,0xff,0xe0,0x6c,0x39,0x2f, +0xe0,0x2, 0x1f,0x8e,0x16,0x80,0xb5,0x8e,0x7e,0x3, 0xae,0x8f,0xf0,0x2, 0x2d,0xcd, +0xe0,0x1, 0x1f,0x9c,0x89,0xf, 0x7f,0x8f,0xe0,0xa, 0x21,0x58,0x11,0xff,0x39,0x92, +0xfa,0x21,0x7b,0x20,0xea,0x22,0x7f,0x38,0xe2,0x1, 0xc1,0xff,0xe8,0x40,0x3b,0x66, +0xea,0x22,0x7f,0xac,0xea,0x22,0x7d,0x18,0xea,0x22,0x7d,0x84,0xea,0x21,0x7e,0x14, +0xc1,0x81,0x3e,0xe6,0x39,0x9e,0x14,0x80,0x14,0x0, 0x12,0xff,0xe0,0x0, 0x12,0x1, +0xe1,0x80,0xac,0x9e,0xc6,0x8a,0x3f,0x73,0xe0,0x40,0xaa,0xed,0xe1,0x80,0xac,0x9f, +0xe1,0x80,0xb4,0x1a,0xe1,0x80,0xb4,0x1b,0xe1,0x80,0xaa,0x1c,0x1, 0xf2,0xe0,0x0, +0x1f,0x3b,0x7f,0x16,0xac,0x8e,0xf0,0xa, 0x25,0xaf,0x67,0x83,0x67,0x3, 0x37,0xa3, +0xc7,0x94,0x7f,0x97,0xea,0x22,0x7f,0xac,0x7f,0x87,0xea,0x22,0x7f,0x98,0x7f,0x86, +0xea,0x22,0x7f,0xb8,0xe4,0x0, 0xc7,0x1e,0x7f,0x8b,0xea,0x21,0x7f,0x94,0xf0,0x2, +0x1c,0x21,0xf8,0x40,0x3f,0x6b,0x7f,0x18,0xe8,0x40,0x3a,0x69,0xe0,0x0, 0x7f,0x91, +0xf0,0x40,0x3d,0xe6,0xf0,0x0, 0x7c,0x95,0xf0,0x0, 0x16,0xa, 0xf0,0x1c,0x3e,0x34, +0xf8,0xe, 0x3c,0x1c,0x81,0xce,0xe2,0x0, 0xc1,0x8f,0x39,0xf2,0x3, 0xb9,0xe0,0x1a, +0x31,0xa3,0xf8,0xb, 0x3c,0x1a,0xe0,0x2, 0xc5,0xac,0x8c,0xb, 0xe2,0x0, 0xcc,0x1, +0xe0,0x3, 0x1, 0x44,0x64,0x86,0xe0,0x5, 0x31,0xa1,0x3c,0x95,0x95,0x89,0xc5,0x81, +0xb5,0x89,0x2c,0xe, 0xea,0x20,0x7d,0xec,0xea,0x22,0x7d,0x4, 0xe0,0x9, 0x31,0xa2, +0x93,0x8e,0x93,0x1e,0x3d,0x99,0x3d,0x15,0xb3,0x8b,0xb3,0x1b,0xb4,0xa, 0x21,0x18, +0xe8,0x0, 0x8a,0xcb,0xe8,0x40,0x3d,0xeb,0x39,0xf5,0x17,0x1, 0x1, 0x89,0xe0,0x9, +0x0, 0x94,0xe0,0x1, 0x8f,0xeb,0xc5,0x8a,0x39,0xff,0xe0,0x1, 0x1, 0x60,0x3f,0xee, +0xe2,0x1, 0xc7,0xff,0x39,0x7f,0x3d,0x6e,0x17,0x1, 0x3f,0x1a,0x2, 0xf3,0xc2,0x1, +0xe2,0x1, 0xc2,0x7f,0xf0,0x40,0x3f,0x74,0xe7,0xff,0x2, 0xb8,0x12,0x8a,0x3a,0xb2, +0xe0,0x1, 0x14,0x14,0xe0,0x2, 0x1c,0xa1,0x3d,0x65,0x3c,0x10,0xe8,0x40,0x3b,0x6b, +0xf8,0x40,0x3d,0xee,0xe0,0x3, 0xd4,0x38,0xf0,0xa, 0x27,0x3e,0x11,0xff,0xe8,0x3, +0x39,0x9e,0xe2,0x1, 0xc1,0xff,0xc1,0x81,0xe4,0x0, 0xc1,0x8a,0xea,0x22,0x7f,0xac, +0x3a,0x6f,0xea,0x16,0x7c,0x58,0xe0,0x2, 0x1c,0xa1,0xe8,0x3, 0x39,0x98,0x8d,0x49, +0xe0,0xf, 0x3a,0x1a,0x8d,0x8f,0x25,0x9f,0x21,0x1e,0x3f,0x66,0x3e,0xe8,0x17,0x80, +0x0, 0x8d,0xe2,0x0, 0xcd,0x82,0xe0,0x1, 0x1, 0x15,0xc7,0x81,0x3e,0x6f,0xe2,0x1, +0xc6,0x7f,0x3e,0x72,0xc7,0xa, 0xc6,0x8a,0x3, 0x8e,0xe2,0x0, 0xcd,0x81,0x1, 0xf2, +0x8e,0x4e,0x3e,0x7a,0x1, 0xf3,0xe4,0x0, 0xc7,0x8a,0x3f,0x96,0x97,0xf, 0x97,0x9f, +0xb7,0x9, 0xb7,0x99,0xc4,0x8a,0x39,0xf9,0x1, 0xdb,0x3c,0xe6,0x3d,0x65,0xe0,0x3, +0xd3,0xfb,0xe0,0x1, 0x14,0x94,0x3d,0x65,0x3c,0x90,0x3c,0x66,0xe0,0x3, 0xd3,0xf4, +0xe0,0x0, 0x21,0x41,0x11,0xff,0x39,0x92,0xe2,0x1, 0xc1,0xff,0xc1,0x81,0xe4,0x0, +0xc1,0x8a,0xe0,0x2, 0x1a,0x21,0xf0,0x40,0x3b,0x66,0x39,0x96,0x13,0xfd,0x13,0x0, +0xe0,0x0, 0x12,0x80,0xf7,0xff,0x13,0xff,0xe8,0x0, 0x8f,0x46,0xe0,0xf, 0x37,0x23, +0x3f,0x72,0x3f,0x94,0xe0,0x2, 0xc7,0xac,0x3, 0xa0,0x87,0x8f,0xea,0x22,0x7c,0xb8, +0x3f,0xd7,0xe2,0x1, 0xc7,0xfd,0xea,0x22,0x7d,0x2c,0xea,0x22,0x7d,0x98,0xea,0x22, +0x7e,0x4, 0xea,0x21,0x7e,0x94,0xe2,0x0, 0xcf,0x81,0xe0,0x8, 0x37,0x21,0x3c,0x9e, +0x3d,0x1e,0x3d,0x98,0x3e,0x18,0x3f,0x1d,0x1, 0x88,0xf8,0x0, 0xab,0xc6,0xab,0x9, +0xab,0xa, 0xb2,0x8b,0xb2,0x8c,0xaf,0x8e,0xf0,0x0, 0xc3,0xa, 0xe8,0x40,0x39,0xf6, +0x1, 0xd4,0xe0,0x2, 0x1f,0xa0,0x17,0x0, 0xf0,0x0, 0xad,0x8f,0xe0,0x2, 0x1f,0xd5, +0xaf,0xf, 0xe0,0x1, 0xc0,0x74,0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0xf0,0x0, 0xb5,0x8f, +0xe7,0xfd,0x0, 0x8b,0x67,0x9, 0xc7,0xff,0xaf,0x8e,0xe7,0xfd,0x0, 0x94,0xe0,0x0, +0x17,0xe4,0xe7,0xfd,0x0, 0x80,0xe0,0x2, 0x1f,0x9f,0x8f,0x8f,0xe0,0x5, 0x2f,0xe8, +0xe0,0x1, 0x1f,0x9c,0x89,0xf, 0x7f,0x8f,0xe7,0xfd,0x29,0x32,0xe0,0x0, 0x1f,0x3b, +0xfa,0x21,0x7b,0x20,0xe8,0x40,0x3b,0x66,0x7f,0x16,0xa9,0xe, 0xe7,0xfd,0x0, 0xd7, +0x8e,0x4d,0x3e,0x7a,0xe7,0xfe,0x1, 0xeb,0xe4,0x0, 0xc7,0x8a,0x3f,0x98,0x97,0xf, +0x97,0x9f,0xb7,0x9, 0xb7,0x99,0xe7,0xfe,0x0, 0xf7,0x3a,0xe3,0xf0,0x0, 0x14,0x8a, +0xf0,0x19,0x3c,0xba,0xf8,0x1d,0x3e,0x18,0xf8,0xe, 0x3d,0x99,0xe0,0x0, 0x11,0x78, +0x9d,0x9e,0x9d,0xe, 0xe8,0x0, 0x9c,0x9d,0x39,0x35,0xea,0x17,0x7f,0x3c,0xe8,0x0, +0x9c,0xd, 0xe0,0x6, 0x39,0x1e,0xef,0xfd,0xd2,0xef,0xea,0x20,0x7d,0xec,0xe0,0xa, +0x32,0xa2,0x3d,0x1b,0x9d,0x9a,0x3b,0xe8,0x9d,0xa, 0xe8,0x0, 0x9c,0x9d,0xe8,0x0, +0x9c,0xd, 0xef,0xfd,0xd2,0xe1,0xea,0x22,0x7d,0x84,0xe0,0x16,0x32,0xa1,0xe8,0xb, +0x3d,0x96,0x91,0xb, 0x7c,0x12,0x39,0x17,0xe3,0xff,0xc1,0x7f,0xe2,0x1f,0xc9,0x20, +0xe0,0x3, 0x2, 0xc2,0xb1,0xb, 0xf8,0xa, 0x3d,0x99,0x65,0x8b,0xe8,0x0, 0x9f,0x8d, +0xe8,0x0, 0x9f,0x1d,0x94,0xa, 0x95,0x1a,0x3d,0x95,0xf8,0x0, 0x8e,0xed,0x8c,0x8b, +0xe0,0x8, 0x3f,0xa8,0x65,0x86,0xe0,0xa, 0x3f,0x2a,0xe0,0x43,0x3c,0x18,0xe0,0x43, +0x3d,0x1a,0xe8,0xb, 0x3d,0x96,0xf0,0x0, 0x7e,0x8c,0x7f,0x84,0x7f,0x8, 0x7c,0x13, +0x7d,0x14,0xf0,0x0, 0x9e,0x8b,0xe0,0x1, 0x24,0x92,0x15,0x98,0x3d,0xb9,0xf7,0xff, +0x12,0xe8,0x3d,0x96,0xf0,0x15,0x3a,0x9b,0xe0,0x0, 0x15,0x64,0xf8,0x15,0x8, 0x5, +0x3d,0x10,0xe2,0x0, 0xcc,0x81,0xf8,0xa, 0x8, 0x15,0xf0,0x0, 0x9c,0xda,0xe0,0x8, +0x5, 0x97,0xf7,0xff,0x12,0xd0,0xf0,0x15,0x3a,0x9b,0xf8,0x15,0x8, 0x5, 0xe0,0x0, +0x15,0xfc,0x3d,0x90,0xf8,0xb, 0x8, 0x15,0xf0,0x40,0x3a,0xe6,0x65,0x15,0x14,0x0, +0xc5,0x1, 0xe8,0x0, 0x97,0xd5,0xe2,0x1, 0xc5,0x7f,0x3c,0xfa,0x3c,0x1f,0xe3,0xff, +0xc4,0x7f,0xf0,0x0, 0xc2,0x98,0x2, 0xf5,0xe0,0x3, 0xd0,0xb6,0x65,0x91,0xe3,0xff, +0xc4,0x7f,0x3d,0x95,0x8d,0x8b,0x7c,0xd, 0xe0,0x0, 0x2d,0xed,0x67,0x97,0xe8,0x40, +0x3d,0x69,0xf0,0x40,0x3c,0xff,0x5, 0x5, 0x67,0x17,0x3f,0x77,0xe0,0x4, 0x4, 0x4b, +0xe0,0x0, 0x4d,0xe4,0x5c,0xb7,0xe4,0x0, 0xc5,0x85,0x17,0x0, 0x3c,0xfb,0x7f,0x10, +0x5, 0xa, 0xe0,0x0, 0x4d,0xfc,0xe0,0x0, 0x5c,0xc3,0xe4,0x0, 0xc5,0x85,0x3c,0xfb, +0xe0,0x4, 0x2, 0x32,0x65,0x98,0x3d,0x9a,0x3d,0xf7,0xe0,0x3, 0x4, 0x15,0xe0,0x0, +0xc5,0x40,0x3d,0x77,0xe0,0x4, 0x3, 0x22,0x67,0x10,0xe0,0x5, 0x2f,0x79,0xe0,0x1, +0x17,0xc8,0x7f,0x8e,0xe0,0x3, 0x0, 0x8b,0xea,0x22,0x7f,0x4, 0x14,0x8a,0xe0,0x7, +0x31,0xa1,0xea,0x22,0x7d,0x38,0xea,0x22,0x7d,0x98,0x3c,0xb3,0xea,0x21,0x7f,0x94, +0xf0,0x0, 0x63,0x87,0xc2,0x1, 0x12,0x80,0x3f,0x17,0xe2,0x1, 0xc2,0x7f,0x13,0x0, +0x3d,0x13,0xf0,0x17,0x3b,0x93,0x3d,0x97,0xe8,0x9, 0x3c,0x9b,0x3f,0x93,0xb2,0x8e, +0xf0,0x40,0x3f,0x74,0x17,0x7f,0xab,0xa, 0xe8,0x0, 0xab,0x7, 0xb2,0x8b,0xaf,0x49, +0xac,0xf, 0xe7,0xfc,0x2, 0x83,0xe7,0xfc,0x0, 0xcb,0x65,0x91,0x7c,0x99,0x3d,0x95, +0x8d,0x8b,0x7c,0x9a,0x7c,0x9b,0x7c,0x9c,0x7c,0x9d,0x7c,0x9e,0x7c,0x9f,0x7c,0xa0, +0x7c,0xa1,0x7c,0xa2,0x7c,0xa3,0x7c,0xa4,0xe0,0x3, 0x25,0xcc,0xf0,0x40,0x3c,0xe9, +0x7c,0x8d,0xc5,0xff,0x65,0x7, 0x67,0x95,0x64,0x91,0x3d,0x15,0x3c,0x95,0x7f,0x90, +0xe0,0x0, 0x17,0x78,0x17,0x81,0x8d,0xa, 0xad,0x89,0x7f,0xe, 0x7f,0x85,0xe0,0x1, +0x2d,0x48,0xe0,0x0, 0x15,0xe4,0xe1,0x2b,0x3b,0x9b,0xe0,0x1, 0x25,0xba,0x67,0x5, +0xe0,0x1, 0x27,0x37,0x65,0x87,0xf0,0x0, 0x62,0x83,0x3d,0x95,0x14,0x81,0xac,0x8b, +0xf2,0x1, 0xc2,0xff,0xf0,0x40,0x3c,0xea,0xe0,0x0, 0x15,0xe4,0xe8,0xb, 0x3d,0xb5, +0xe3,0xff,0xc5,0xfc,0xe2,0x5, 0xcd,0x80,0x5, 0x8a,0x67,0x9, 0x8d,0xe, 0xe2,0x0, +0xcd,0x0, 0xe0,0x5, 0x15,0x0, 0xe0,0x6a,0x39,0xab,0x3d,0xea,0x3d,0xf7,0xe0,0x1, +0x3, 0x8d,0xf2,0x0, 0xce,0x82,0xe0,0x1, 0x5, 0x89,0xf8,0xb, 0x3c,0x1a,0x64,0x87, +0xe0,0x2, 0xc5,0xac,0x3c,0x95,0x14,0x0, 0x8d,0xb, 0xac,0x9, 0xe0,0x2, 0x2d,0x18, +0x15,0x3, 0xad,0xb, 0xe0,0xb, 0x32,0xa3,0xe8,0xb, 0x3d,0x98,0xe0,0x2, 0xc5,0xad, +0x15,0x3, 0xad,0xb, 0xf0,0x0, 0x27,0x3d,0x16,0xff,0xe8,0xd, 0x3e,0x9e,0xf0,0x40, +0x3f,0x6d,0xf2,0x1, 0xc7,0x7f,0x15,0x8a,0xe8,0xb, 0x3d,0xbe,0xf8,0xf, 0x3e,0x18, +0xe8,0xb, 0x3d,0x98,0xf0,0x0, 0x91,0xab,0xf0,0x0, 0x92,0x3b,0xf0,0x0, 0x90,0xb, +0xf0,0x0, 0x91,0x1b,0xf0,0x0, 0x90,0xcb,0xf0,0x0, 0x9a,0x8f,0xf0,0x0, 0x9b,0x1f, +0xf0,0x0, 0x8b,0xcf,0x89,0xdf,0x8c,0x6f,0x8c,0xff,0xe0,0x1, 0x8d,0xf, 0xf0,0x0, +0xb0,0xf, 0xc2,0x7f,0xf0,0x0, 0xb1,0x1f,0xe2,0x1, 0xc2,0x7f,0xf0,0x0, 0xb1,0xaf, +0xf0,0x0, 0xb2,0x3f,0xf0,0x0, 0xb0,0xcf,0xf0,0x0, 0xb2,0x8b,0xf0,0x0, 0xb3,0x1b, +0xf0,0x0, 0xab,0xcb,0xa9,0xdb,0xac,0x6b,0xac,0xfb,0xe0,0x1, 0xad,0xb, 0x67,0xb, +0x3a,0x9e,0x8d,0x85,0xe2,0x0, 0xcd,0x85,0xe0,0x0, 0x1, 0x72,0x17,0x98,0x3f,0xbb, +0xc2,0x1, 0xe0,0xe, 0x3b,0x1f,0x67,0x83,0xe2,0x1, 0xc2,0x7f,0xaf,0x8e,0xc5,0x81, +0x67,0x8e,0xe0,0x1, 0xb1,0x3e,0xf0,0x40,0x3f,0x74,0xaf,0x9e,0x67,0x8c,0xb3,0xde, +0xaf,0xae,0x67,0x90,0xf0,0x1, 0xb6,0x9e,0xaf,0xbe,0x67,0x85,0xad,0x85,0xaf,0xce, +0x67,0x93,0xb7,0xbe,0x67,0x94,0xb7,0xce,0x67,0x92,0xb7,0xee,0x67,0x84,0xb7,0xfe, +0x67,0x88,0xe0,0x1, 0xb7,0x8e,0x67,0x8d,0xe0,0x1, 0xb7,0xae,0x67,0xf, 0x89,0xe, +0xe7,0xfa,0x2, 0xac,0xe7,0xfa,0x0, 0xf4,0xf7,0xff,0x24,0xcb,0xe7,0xfe,0x0, 0xf7, +0x15,0x0, 0xe0,0x0, 0x17,0xee,0x17,0x0, 0xad,0xb, 0x7f,0x8e,0x7f,0x5, 0xf0,0x0, +0x14,0x80,0xf0,0x0, 0x62,0x83,0xf2,0x1, 0xc2,0xff,0xe7,0xfe,0x0, 0xcf,0xe2,0x0, +0xcd,0x1, 0xe0,0x2, 0x1, 0x16,0xe2,0x0, 0xcd,0x2, 0x1, 0xf2,0xf0,0x0, 0x62,0x83, +0xe0,0x0, 0x4c,0xfc,0xe0,0x0, 0x5c,0x43,0xf2,0x1, 0xc2,0xff,0xf0,0x0, 0x7a,0x81, +0xe0,0x2, 0xdf,0x5a,0xf0,0x0, 0x62,0x81,0xe0,0xa, 0x34,0x1, 0xe8,0xa, 0x3d,0x35, +0x65,0x87,0xe3,0xff,0xc5,0x7f,0x3d,0x95,0xe1,0x39,0x3d,0x17,0x15,0x0, 0xad,0xb, +0xe7,0xfe,0x0, 0xac,0xe0,0x1f,0x15,0x20,0xb5,0xb, 0xe0,0x1f,0x11,0x20,0xe7,0xfc, +0x0, 0xbc,0x67,0x9, 0x17,0x83,0xaf,0x8e,0xe7,0xf8,0x0, 0xed,0xe0,0x0, 0x12,0xe0, +0xf0,0x40,0x3c,0xe6,0x3a,0x96,0x11,0x98,0xe8,0x40,0x3c,0x69,0xf0,0x0, 0xc4,0x98, +0x3d,0x63,0xe8,0x40,0x3c,0xe9,0xe0,0x3, 0xd1,0x67,0xe8,0x40,0x3a,0xf9,0x1, 0xf5, +0x67,0x83,0x67,0xe, 0xe0,0xc, 0xaf,0x86,0xc2,0x1, 0x67,0x8c,0xe0,0xc, 0xaf,0x16, +0xe2,0x1, 0xc2,0x7f,0x67,0x10,0xe0,0xc, 0xaf,0xa6,0xf0,0x40,0x3f,0x74,0x67,0x85, +0xe0,0xc, 0xaf,0x36,0x67,0x13,0xe0,0xc, 0xaf,0xc6,0x67,0x94,0xe0,0x6, 0xb7,0x36, +0x67,0x12,0xe0,0x6, 0xb7,0xc6,0x67,0x84,0xe0,0x6, 0xb7,0x66,0x67,0x8, 0xe0,0x6, +0xb7,0xf6,0x67,0x8d,0xe0,0x7, 0xb7,0x6, 0x67,0xf, 0xe0,0x7, 0xb1,0x36,0xe0,0x6, +0xb3,0xd6,0xf0,0x7, 0xb6,0x96,0xe0,0x7, 0xb7,0xa6,0x89,0xe, 0xe7,0xf9,0x2, 0xa6, +0xe7,0xf9,0x0, 0xee,0xe0,0x0, 0x17,0x64,0x7f,0xe, 0x67,0x8d,0xe2,0x0, 0xcf,0x8a, +0x2, 0xb4,0x17,0x1, 0x7f,0x5, 0x67,0x16,0x8d,0x8e,0xe2,0x0, 0xcd,0x81,0x65,0x87, +0x3d,0x95,0xe7,0xfe,0x1, 0x6f,0x8d,0xb, 0xe7,0xfd,0x0, 0xb3,0x67,0x8f,0x15,0x1, +0x8c,0xf, 0xad,0xb, 0xe7,0xfd,0x24,0x68,0xe8,0x19,0x8d,0xc8,0x3d,0xf3,0xe0,0x3, +0x1, 0x7f,0xe0,0x2, 0x1d,0x21,0x15,0x81,0x3f,0xeb,0xe2,0x1, 0xc7,0xff,0x3c,0x7f, +0xf0,0x40,0x3b,0xeb,0xc5,0x81,0xe7,0xfd,0x5, 0xd7,0xe0,0x1a,0x8f,0xea,0xc5,0xa, +0x39,0xff,0x1, 0xf3,0x15,0x8a,0xe8,0xb, 0x3d,0xb7,0x15,0x7f,0xe8,0xb, 0x3d,0x98, +0xe0,0x19,0xad,0x4b,0xe7,0xfd,0x0, 0xc8,0xf0,0x0, 0x5a,0xbc,0x17,0x81,0xf2,0x0, +0xca,0x8a,0x7f,0x85,0x5, 0xc9,0xe0,0x0, 0x5d,0xc8,0xe2,0x0, 0xcd,0x8a,0x5, 0xc4, +0x55,0xba,0x54,0x36,0x55,0x35,0x3d,0x98,0xe0,0x43,0x3d,0x9b,0x54,0xb9,0xe2,0x0, +0xcd,0x80,0x3c,0x9a,0xe0,0x43,0x3c,0x99,0x3d,0x6b,0xe0,0x3, 0x4, 0x62,0xe2,0x0, +0xcc,0x80,0x3d,0xea,0xe3,0xff,0xc5,0xff,0x3d,0x69,0xe0,0x3, 0x4, 0x57,0x64,0x88, +0x64,0x4, 0xe3,0xff,0xc5,0x7f,0xf0,0x0, 0x7a,0x81,0xef,0xfd,0xd0,0x5d,0x5d,0xbd, +0xe0,0x43,0x3c,0x18,0xe2,0x1f,0xcd,0x9f,0xf0,0x0, 0x62,0x81,0xe0,0x3, 0x5, 0xb4, +0x15,0x8f,0xe8,0xb, 0x3d,0xb5,0xe3,0xff,0xc5,0xff,0x3c,0x7b,0x67,0x8e,0xe0,0x28, +0x3c,0x2b,0x15,0xa8,0xe0,0x6b,0x3b,0x2f,0x7c,0x5, 0x7d,0x8e,0xe7,0xff,0x0, 0x8d, +0xf0,0x40,0x3c,0xeb,0x3d,0x6b,0x7d,0x8d,0xe7,0xfb,0x0, 0xd4,0xe0,0x0, 0x1f,0xbb, +0xe0,0x1, 0x1f,0x1c,0xfa,0x21,0x7b,0x20,0xe8,0x40,0x3b,0x66,0x7f,0x96,0x7f,0xf, +0xae,0x8f,0x89,0xe, 0xe7,0xf7,0x0, 0xf3,0x17,0x94,0x17,0x0, 0x7f,0x8e,0x7f,0x5, +0xe7,0xfe,0x0, 0xf3,0x5c,0xbc,0x15,0x94,0xe1,0x2b,0x3c,0x9b,0x7d,0x90,0xe7,0xfb, +0x0, 0xcb,0xe0,0x2, 0x1f,0x8e,0x15,0x81,0xad,0x8f,0xe7,0xfb,0x0, 0xb3,0xe0,0x0, +0x5d,0xc8,0xe2,0x0, 0xcd,0x82,0x2, 0x98,0x5d,0x37,0xe2,0x0, 0xcd,0x4f,0x2, 0x94, +0xf2,0x0, 0xce,0x93,0xe0,0x0, 0x2, 0xc7,0xe0,0x0, 0x5d,0x44,0xe2,0x0, 0xcd,0x1d, +0x2, 0x8b,0x5d,0x38,0xe2,0x0, 0xcd,0x4f,0x2, 0x87,0xf0,0x0, 0x62,0x83,0xf2,0x1, +0xc2,0xff,0xe0,0x1, 0x0, 0x87,0xf2,0x0, 0xce,0x89,0x2, 0xb4,0xf0,0x0, 0x5a,0x3c, +0xf2,0x0, 0xca,0x8, 0x5, 0xbc,0x67,0x8c,0xe2,0x0, 0xcf,0x8e,0x2, 0xad,0xe0,0x0, +0x4d,0xe4,0xe8,0x40,0x3c,0x69,0x3c,0xeb,0x7d,0x82,0xe0,0x2, 0xde,0x25,0xf0,0x0, +0x62,0x83,0xe0,0x16,0x34,0x2, 0xf2,0x1, 0xc2,0xff,0xf8,0x16,0x3b,0x35,0x65,0x82, +0xf8,0x40,0x3c,0xe6,0xf3,0xff,0xc4,0xff,0xf2,0x0, 0xcc,0xf8,0xe0,0x2, 0x2, 0xb0, +0xe2,0x0, 0xcd,0x8a,0xe0,0x0, 0x5, 0xde,0xf2,0x0, 0xcc,0xcf,0xe8,0x40,0x3d,0xe9, +0x2, 0x83,0xe0,0x0, 0x15,0xd0,0xf0,0x40,0x3c,0xeb,0xf3,0xff,0xc4,0xff,0xe0,0x0, +0x0, 0xd1,0xf0,0x0, 0x5a,0x3c,0x15,0xf, 0xf1,0x29,0x3a,0x1a,0x24,0x88,0xe1,0x2b, +0x3d,0x9a,0x25,0x85,0x67,0xc, 0xe2,0x0, 0xcf,0x9, 0x5, 0xca,0xe0,0x0, 0x4d,0xff, +0xe0,0x0, 0x2d,0xec,0xf0,0x0, 0x62,0x83,0xe0,0x0, 0x4c,0xe4,0x5c,0x37,0xf2,0x1, +0xc2,0xff,0xf0,0x0, 0x7a,0x2, 0xf0,0x0, 0x7a,0x81,0xe0,0x2, 0xdd,0xe5,0xe0,0x0, +0x4d,0x66,0xf0,0x0, 0x62,0x81,0xe0,0xb, 0x34,0x1, 0x67,0x8c,0xe8,0xb, 0x3d,0xb5, +0x35,0x21,0xe0,0x2a,0x3f,0x9a,0xe3,0xff,0xc5,0xff,0xf0,0x0, 0x62,0x2, 0x25,0x37, +0x15,0x1d,0xe9,0x34,0x3d,0x24,0xf0,0x0, 0x22,0x33,0xe0,0x2, 0x1d,0x12,0x8d,0xa, +0x2d,0x2e,0xe0,0x0, 0x4d,0x7e,0xe0,0xa, 0x3f,0xaa,0xe0,0x43,0x3c,0x9a,0xe2,0x0, +0xcc,0x80,0x5, 0x22,0xe2,0x0, 0xcd,0x5, 0x5, 0x22,0xe2,0x1, 0xcd,0xc7,0xf0,0x40, +0x3b,0x6b,0x2, 0x83,0xf0,0x1, 0x13,0x48,0xf8,0x40,0x3c,0xe6,0xf3,0xff,0xc4,0xff, +0xf0,0x40,0x3c,0xf7,0x5, 0xae,0xf2,0x0, 0xce,0x87,0xe0,0x1, 0x2, 0x9c,0xe2,0x0, +0xcb,0x94,0xe0,0x1, 0x5, 0xaa,0x65,0x87,0x15,0x2, 0x3d,0x95,0xad,0xb, 0xf0,0x0, +0x14,0x80,0xe7,0xfb,0x0, 0x83,0xe3,0xff,0xcc,0xfb,0x4, 0x60,0x67,0xc, 0xf0,0x40, +0x3b,0x6b,0xe2,0x0, 0xcf,0xf, 0xe0,0x0, 0x2, 0xdf,0xe2,0x0, 0xcd,0xf8,0x5, 0xdd, +0xf0,0x0, 0x13,0x78,0x0, 0xda,0x15,0x0, 0xe7,0xf8,0x0, 0xd2,0x17,0xa, 0x17,0x80, +0x7f,0xe, 0x7f,0x85,0xe7,0xfd,0x0, 0x99,0xf0,0x0, 0x62,0x83,0xf2,0x1, 0xc2,0xff, +0xe0,0x0, 0x15,0xe4,0xe1,0x2b,0x3b,0x9b,0xe0,0x0, 0x25,0xcc,0x67,0x5, 0xe0,0x0, +0x27,0x49,0x65,0x87,0x15,0x3, 0x3d,0x95,0xf2,0x0, 0xce,0x9d,0xad,0xb, 0xe0,0x1, +0x2, 0x93,0xe0,0x2, 0x1f,0xf8,0x8d,0x9f,0xe2,0x0, 0xcd,0x82,0xe0,0x0, 0x5d,0xc4, +0xe0,0x0, 0x5, 0xee,0xe0,0x0, 0x4d,0x67,0xe0,0x0, 0x2d,0x6a,0xe2,0x0, 0xcd,0x9d, +0xf0,0x40,0x3c,0xea,0xe0,0x1, 0x5, 0xad,0x65,0x87,0x3d,0x95,0x8d,0x8b,0xe2,0x0, +0xcd,0x81,0x1, 0x2d,0xe2,0x0, 0xcd,0x83,0xe7,0xfa,0x1, 0xb8,0x65,0x87,0x15,0x1, +0x3d,0x95,0xad,0xb, 0xe7,0xfa,0x0, 0xb2,0xe0,0x0, 0x1f,0xbb,0xea,0x21,0x7b,0x20, +0xf0,0x0, 0xad,0x8f,0x12,0x8a,0x3a,0xb2,0xe0,0x2, 0x1c,0xa1,0xe0,0x1, 0x14,0x14, +0x3d,0x65,0x3c,0x10,0xe0,0x2, 0xdf,0x78,0xea,0x16,0x7c,0x58,0xf8,0x40,0x3d,0xe9, +0xe7,0xf6,0x0, 0xf5,0xe2,0x1, 0xcd,0xc8,0xe7,0xff,0x5, 0x80,0xe7,0xfe,0x0, 0xfc, +0xf2,0x0, 0xce,0x9d,0xf0,0x0, 0x14,0x80,0xe7,0xff,0x5, 0xbd,0xe0,0x0, 0x5d,0xc6, +0xe0,0x0, 0x5d,0x45,0x64,0x88,0x64,0x4, 0xf0,0x0, 0x7a,0x81,0xef,0xfc,0xde,0xec, +0xe2,0x0, 0xcc,0x3b,0xf0,0x0, 0x62,0x81,0x2, 0x87,0x65,0x8b,0x15,0x0, 0x3d,0x95, +0xad,0xb, 0xf0,0x0, 0x14,0x80,0x65,0x87,0x15,0x0, 0x3d,0x95,0xad,0xb, 0xe7,0xf9, +0x0, 0xf5,0xe0,0x0, 0x5d,0xc4,0xe2,0x0, 0xcd,0xe4,0x5, 0x8e,0x15,0x93,0xe9,0x2b, +0x3d,0xad,0x25,0x8a,0x15,0x94,0xe1,0x2b,0x3b,0x9b,0x25,0x86,0x67,0x8c,0xe2,0x0, +0xcf,0x93,0xe7,0xfe,0x5, 0xda,0xf0,0x0, 0x14,0x81,0x0, 0xd1,0xe2,0x0, 0xcd,0x9d, +0xf0,0x0, 0x14,0x80,0xe7,0xff,0x2, 0x9a,0x67,0x12,0xe2,0x0, 0xcf,0x1d,0xe7,0xff, +0x2, 0x95,0x67,0x8a,0x9d,0x8f,0xe2,0x0, 0xcd,0xf7,0xe7,0xff,0x2, 0x8f,0xe0,0x2, +0x1d,0x92,0x8d,0x8b,0xe8,0x39,0x3d,0x89,0xe7,0xff,0x0, 0x88,0xf0,0x0, 0x14,0xf8, +0xe7,0xfe,0x0, 0xb0,0xf0,0x0, 0x14,0x80,0xe7,0xff,0x0, 0x8a,0xf0,0x0, 0x13,0x80, +0xe7,0xfc,0x0, 0x92,0x15,0x9, 0x15,0x86,0x67,0xc, 0xe8,0xa, 0x3d,0x35,0xe8,0xb, +0x3d,0xb5,0xe2,0x0, 0xcf,0xb, 0xe3,0xff,0xc5,0xfe,0xe3,0xff,0xc5,0x7f,0xe0,0x6a, +0x3c,0xab,0x3d,0xea,0xe7,0xfc,0x0, 0xc3,0x15,0x0, 0xe7,0xfc,0x0, 0xaa,0x15,0x0, +0xe7,0xfc,0x0, 0x9f,0xea,0x16,0x7c,0x58,0xe7,0xf5,0x0, 0xf9,0x15,0x80,0x7d,0x9f, +0x7d,0xa0,0x7d,0xa1,0x7d,0xa2,0x7d,0xa3,0x7d,0xa4,0xe7,0xf7,0x0, 0xef,0x64,0x88, +0x64,0x4, 0xf0,0x0, 0x7a,0x81,0xd9,0x6c,0xf0,0x40,0x3c,0xe8,0xf0,0x0, 0x62,0x81, +0xe7,0xfe,0x24,0x4c,0xe7,0xfe,0x0, 0x81,0x8, 0xb2,0xe0,0x1, 0x1f,0x9c,0xea,0x22, +0x7c,0x4c,0x89,0xf, 0x14,0x80,0x31,0x21,0x3d,0x62,0xe0,0x2, 0xdf,0xf, 0xea,0x22, +0x7c,0x60,0x3d,0x62,0x14,0x80,0x9, 0x21,0xe0,0x5e,0x0, 0x88,0x3f,0x82,0x8, 0xb7, +0xf8,0x0, 0xc, 0x3e,0xe1,0xfe,0xc0,0x5c,0xe0,0x2, 0x19,0x20,0xea,0x16,0x78,0xd6, +0xf0,0x0, 0x8f,0x2, 0xf0,0x2, 0x1c,0xa1,0x89,0x81,0xf0,0x0, 0x2f,0x6e,0x21,0x85, +0xe0,0x2, 0x1f,0x93,0xf0,0x0, 0xaf,0xf, 0xdf,0xd8,0xe0,0x1, 0x1e,0x9c,0x8a,0x8d, +0x13,0xa, 0x3b,0x35,0xe0,0x1, 0x14,0xff,0x3d,0x66,0xe2,0x0, 0x7c,0x44,0x7e,0x81, +0xe0,0x2, 0xde,0xe4,0x14,0x80,0xe2,0x0, 0x7d,0xc4,0xe8,0x40,0x3d,0x6e,0x3c,0x69, +0xef,0xff,0xd7,0xe2,0x3d,0x65,0xe8,0x40,0x3c,0xee,0xe2,0x0, 0x7d,0xc4,0xef,0xff, +0xd7,0xdb,0xe0,0x2, 0x1c,0xa1,0x15,0x0, 0xe2,0x0, 0x7a,0x44,0x66,0x81,0x22,0xad, +0x24,0x11,0x8d,0xc9,0x8f,0xc4,0x3f,0xfb,0x1, 0x21,0x3f,0x64,0x17,0x80,0x0, 0x84, +0x8e,0x4e,0x3e,0x7b,0x1, 0x1b,0xc7,0x81,0xe2,0x1, 0xc7,0xff,0x3f,0xf8,0xc7,0xa, +0x1, 0xf8,0x17,0xa, 0x3f,0x3a,0x17,0x8a,0xe8,0xe, 0x3f,0x19,0x3f,0xb8,0x93,0x8e, +0x90,0x9e,0x95,0xae,0x96,0x3e,0x97,0x4e,0x3f,0x94,0xc4,0x1, 0xb3,0x8f,0xe2,0x1, +0xc4,0x7f,0xb0,0x9f,0xb5,0xaf,0xb6,0x3f,0xb7,0x4f,0xc5,0x1, 0x3f,0xea,0xe2,0x1, +0xc7,0xff,0x3a,0xff,0xc4,0x8a,0x2, 0xd5,0xe0,0x2, 0x1c,0x1d,0xe0,0x0, 0x14,0xc4, +0x3d,0x66,0x3c,0x90,0x7e,0x81,0xe0,0x2, 0xde,0x5f,0x66,0x81,0xe0,0x5, 0x21,0x9b, +0xe0,0x2, 0x1f,0x93,0xf0,0x2, 0x19,0x21,0x8f,0x8f,0x27,0xb4,0x8b,0x8d,0xf0,0x1, +0x27,0x2, 0xe0,0x0, 0x0, 0xfc,0xe0,0x1, 0x1e,0x9c,0x8a,0x8d,0x29,0x93,0x22,0x92, +0x17,0x7f,0x3f,0x15,0xe2,0x1, 0xc7,0x7f,0xc7,0x1, 0xe4,0x0, 0xc7,0xa, 0xe8,0x40, +0x3f,0xe9,0xe8,0xe, 0x3f,0x19,0x16,0x7f,0xe0,0x19,0xae,0x4f,0xc7,0x8a,0x3f,0xfe, +0x1, 0xfc,0x15,0xff,0xe8,0xb, 0x3d,0x9e,0xe2,0x1, 0xc5,0xff,0xc5,0x81,0xe4,0x0, +0xc5,0x8a,0xe0,0x2, 0x1f,0xa1,0xe8,0xb, 0x3d,0x99,0x96,0xf, 0x97,0x1f,0x36,0x24, +0xb6,0xf, 0xc7,0x8a,0x37,0x24,0x3f,0xfb,0xe0,0x40,0xb7,0x4f,0x1, 0xf7,0xe7,0xfe, +0x0, 0xf1,0xf0,0x4, 0x27,0x6c,0xe0,0x1, 0x1f,0xad,0xf7,0xff,0x12,0xff,0xf8,0x15, +0x3a,0x9e,0xf0,0x1, 0x9a,0x1f,0xf2,0x1, 0xc2,0xff,0xe0,0x2, 0x1f,0x96,0xf0,0x0, +0xc2,0x81,0xf4,0x0, 0xc2,0x8a,0xf0,0x0, 0x88,0x8f,0x89,0x2, 0xea,0x22,0x7d,0x4c, +0xea,0x22,0x7d,0xe0,0xf8,0x19,0x88,0x49,0xf0,0x2, 0x19,0xd7,0x8b,0x8d,0xf0,0x0, +0x7f,0xd, 0xf8,0x15,0x3a,0x99,0x7e,0x8e,0xf8,0x40,0x3e,0x62,0x79,0xf, 0x7d,0x90, +0xf7,0xff,0x13,0xfc,0xf8,0x40,0x3f,0x61,0xe8,0x40,0x3e,0xe4,0xe8,0x40,0x3f,0x62, +0x23,0x98,0xe8,0x0, 0x8c,0xcc,0xe8,0x40,0x3c,0xf0,0xe0,0x1, 0x1, 0x52,0xe8,0x40, +0x3e,0x62,0x17,0x81,0x0, 0x87,0xe0,0x1a,0x89,0x6c,0xc6,0xa, 0x39,0x79,0xe0,0x1, +0x1, 0x4b,0x3d,0xef,0xe2,0x1, 0xc5,0xff,0x3b,0xfb,0x3a,0x6f,0xc7,0x81,0x2, 0xf4, +0xf0,0x0, 0x67,0xd, 0x66,0x8e,0xf0,0x40,0x3c,0xee,0xe0,0x2, 0x1f,0x9f,0x8f,0x8f, +0x2f,0x8a,0xea,0x16,0x7c,0x4c,0x3d,0x67,0xe0,0x1, 0x14,0xff,0x7e,0x81,0xe0,0x2, +0xde,0x5, 0x66,0x81,0xf0,0x0, 0x15,0x0, 0xe0,0x1, 0x23,0xa2,0xfa,0x16,0x7d,0xcc, +0xf0,0x2, 0x1e,0x13,0x11,0x83,0xe8,0x40,0x3a,0xea,0x3a,0x6d,0xe0,0x0, 0x0, 0xd4, +0xf0,0xd, 0x3d,0x92,0x8f,0xd, 0x34,0x44,0xe2,0x1, 0xcf,0x7f,0x34,0xc4,0xe0,0x3, +0x1, 0x4e,0xe2,0x0, 0xcf,0x2, 0xe0,0x3, 0x2, 0xc4,0x13,0x81,0x3b,0x9e,0xe2,0x1, +0xc3,0xff,0x13,0x1e,0xe4,0x0, 0xc7,0xa, 0x3b,0x32,0xea,0x14,0x7e,0xa0,0xe0,0xf, +0x3f,0x16,0x3f,0x9d,0xe8,0x0, 0x8f,0xc, 0xb4,0xf, 0xb4,0x9f,0xe0,0x3, 0x2f,0x2b, +0x3b,0x1d,0x97,0x56,0x94,0x6, 0xe0,0x1, 0x97,0xa6,0x3c,0x1e,0x3c,0x1f,0x17,0xa, +0x3f,0x16,0x3c,0xe3,0xe3,0xff,0xc4,0x7f,0xf0,0x18,0x3c,0x9c,0x7f,0x2, 0xe0,0x2, +0xdb,0x97,0x67,0x2, 0xf0,0x0, 0x16,0x94,0x96,0x9e,0xf0,0x1d,0x3e,0x96,0x97,0x96, +0xe8,0x0, 0x97,0x1d,0x3f,0x9d,0x3f,0x9e,0xe8,0x0, 0xb4,0x8, 0x3c,0x6f,0x3c,0xe3, +0xe3,0xff,0xc4,0x7f,0xe0,0x2, 0xdb,0x84,0xe8,0x0, 0xb4,0x18,0xe8,0x2, 0x39,0x1b, +0xab,0x82,0xf0,0x0, 0xc5,0x1, 0x8b,0x84,0xf2,0x1, 0xc5,0x7f,0xe8,0x40,0x3b,0xfa, +0xe0,0x0, 0x5, 0xc6,0x16,0xa, 0xe8,0xc, 0x3e,0x3a,0xf8,0x40,0x3f,0x7a,0xf0,0xf, +0x3c,0x9c,0xe0,0x19,0x89,0x4f,0xe0,0xc, 0x9c,0x4f,0xa9,0x4f,0xe0,0xc, 0x9c,0xdf, +0x5, 0x87,0x9e,0x8f,0x9f,0x1f,0x36,0xc4,0x37,0x44,0xb6,0x8f,0xb7,0x1f,0xf0,0xf, +0x3c,0x9c,0xe0,0x19,0x85,0x5f,0xe0,0x19,0x85,0xef,0xe0,0x19,0x86,0xff,0xe0,0x1a, +0x87,0xf, 0xe2,0x0, 0xc1,0xf, 0x39,0x77,0xad,0x5f,0xad,0xef,0xae,0xff,0xe0,0x1, +0xaf,0xf, 0x3, 0x50,0xe0,0xe, 0x31,0x23,0xe8,0xe, 0x3f,0x19,0xe0,0x2, 0xc7,0x2c, +0x8f,0xe, 0xe2,0x0, 0xcf,0x3, 0x1, 0x46,0xe2,0x0, 0xcf,0x1, 0xe7,0xfe,0x1, 0xfa, +0xea,0x16,0x7f,0xcc,0xf0,0x0, 0xc5,0x1, 0x8b,0x84,0xf2,0x1, 0xc5,0x7f,0x3f,0x92, +0x10,0xff,0xe8,0x40,0x3b,0xfa,0xa8,0x8f,0xe7,0xff,0x2, 0xbe,0xea,0x16,0x7f,0x56, +0xf0,0x0, 0xaf,0xe, 0xe0,0x1, 0xc0,0x24,0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0xe8,0x40, +0x39,0x60,0x12,0x0, 0xe4,0x0, 0xc2,0xa, 0xf8,0x0, 0x9c,0x8c,0xe0,0xf, 0x3f,0x14, +0xf0,0xc, 0x9d,0xcf,0x3e,0x6f,0xf0,0xc, 0x9d,0x5c,0xe8,0x0, 0x9f,0x9c,0xf8,0x3, +0x3c,0xab,0xe3,0xff,0xc1,0xff,0xe0,0x43,0x3e,0x13,0xe8,0x6, 0x3f,0xaa,0xe0,0x9, +0x31,0x23,0xe2,0x0, 0xce,0x0, 0xe3,0xff,0xc3,0x7f,0xf8,0x1, 0x3d,0xa9,0x3c,0x9e, +0xe3,0xff,0xc0,0xff,0xe0,0x43,0x3d,0x96,0x3c,0x63,0xe0,0x2, 0xc4,0xac,0xe0,0x68, +0x3d,0x21,0x8c,0x89,0xe2,0x0, 0xcd,0x80,0xf0,0x1, 0x3d,0x2f,0x3a,0xe6,0xe3,0xff, +0xc0,0xff,0xe0,0x65,0x3d,0x21,0xe2,0x0, 0xcc,0x81,0x3a,0x98,0xe3,0xff,0xc2,0xff, +0xe0,0x18,0x31,0x21,0xe0,0x1, 0x1, 0x20,0x3a,0xfd,0xe8,0x9, 0x3d,0x18,0xfa,0x22, +0x7e,0xe0,0xf0,0x0, 0x9b,0x9, 0xe0,0x1, 0x4, 0xb2,0xe0,0x2, 0x14,0x0, 0xe8,0x40, +0x3a,0xf6,0xe0,0x1, 0x3, 0xa0,0xf8,0x1d,0x3e,0x98,0xe8,0x0, 0x9c,0xd, 0xf0,0x1, +0x39,0x92,0xf0,0x18,0x3c,0x1a,0x8c,0x81,0xe8,0x0, 0xb2,0x88,0xe0,0x0, 0x24,0xec, +0xe2,0x1, 0xcc,0xff,0xe0,0x1, 0x1, 0x7b,0xe2,0x0, 0xcc,0x82,0xe0,0x1, 0x10,0xc0, +0xe0,0x1, 0x12,0x80,0xe0,0x65,0x39,0xa1,0x10,0xff,0x38,0x99,0xe8,0x2, 0x39,0x13, +0xe0,0x0, 0x14,0xc1,0xe0,0x69,0x3d,0xa5,0xa8,0x82,0x3c,0x79,0xe0,0x0, 0x5, 0xd4, +0xf0,0x0, 0x27,0x13,0x61,0xf, 0x3c,0x69,0xe2,0x0, 0xc9,0x1, 0xe0,0x0, 0x1, 0x53, +0x38,0xe8,0xe3,0xff,0xc0,0xff,0xe2,0x2, 0xc8,0x80,0x3c,0xe8,0x5, 0x83,0xe0,0x2, +0x14,0x80,0xe3,0xff,0xc4,0xff,0xf8,0x8, 0x3d,0xa9,0xe2,0x0, 0xce,0x0, 0x3e,0x68, +0xe3,0xff,0xc6,0x7f,0xe0,0x63,0x3d,0x2c,0xe0,0xc, 0x39,0xb9,0xf8,0x40,0x3c,0xfb, +0x36,0x48,0xe8,0xc, 0x3e,0x57,0xe3,0xff,0xc6,0x7c,0xe0,0x8, 0x3f,0x14,0x5, 0xbe, +0xe8,0xc, 0x3e,0x1b,0xe0,0xc, 0xb6,0x48,0xe2,0x0, 0xcd,0x80,0xf0,0xc, 0x3d,0x2f, +0xe3,0xff,0xc6,0x7f,0xe0,0x66,0x3d,0x2c,0xe0,0xc, 0x3b,0x39,0xe8,0x40,0x3f,0xfa, +0x36,0x48,0xe8,0xc, 0x3e,0x57,0xe3,0xff,0xc6,0x7c,0x3a,0x1e,0xe0,0x0, 0x2, 0xc1, +0xf0,0x1a,0x3d,0x2c,0xf0,0xc, 0xb5,0x54,0xf0,0x0, 0xc6,0xa, 0xf8,0x40,0x3a,0xfc, +0xe7,0xfc,0x1, 0xf0,0x66,0x8e,0xf0,0x0, 0x67,0xd, 0xf0,0x40,0x3c,0xee,0x8b,0x8d, +0xe7,0xfd,0x0, 0x85,0xf7,0xff,0x27,0x36,0x61,0xf, 0xe2,0x0, 0xc9,0x1, 0xe7,0xff, +0x1, 0xb1,0xe8,0x0, 0x8c,0xec,0xe0,0x1, 0x34,0x41,0xe2,0x0, 0xcc,0x8f,0xe3,0xff, +0xc0,0xff,0xe0,0x68,0x3b,0xa1,0xe7,0xff,0x0, 0xa5,0xf0,0xc, 0x3d,0xac,0xe0,0xc, +0xb6,0x48,0x0, 0xc3,0xf0,0x0, 0x66,0x90,0x10,0x80,0xf8,0x8, 0x3e,0x98,0xe8,0x9, +0x3d,0x18,0x3a,0xfd,0xb0,0x88,0xf0,0x0, 0x13,0x0, 0xb0,0x89,0xe0,0x2, 0x14,0x0, +0x4, 0x8d,0xf8,0x1d,0x3e,0x98,0xe8,0x0, 0xb4,0xd, 0xe7,0xfe,0x0, 0xe2,0xe8,0xc, +0x3e,0x1a,0xe0,0xc, 0xb6,0x54,0xe7,0xff,0x0, 0xc1,0x3c,0xed,0xe0,0x8, 0x32,0xa8, +0x7d,0x3, 0x7d,0x8a,0x7e,0xc, 0x7e,0x81,0x7f,0x2, 0x7f,0x8b,0xf0,0x0, 0x78,0x5, +0xf0,0x0, 0x79,0x8, 0xf0,0x0, 0x79,0x87,0xf0,0x0, 0x7a,0x84,0xf0,0x0, 0x7b,0x9, +0xf0,0x0, 0x7b,0x86,0xe0,0x2, 0xda,0x1c,0x3c,0xe8,0xe3,0xff,0xc4,0xff,0xe2,0x0, +0xcc,0x90,0x65,0x3, 0x65,0x8a,0x66,0xc, 0x66,0x81,0x67,0x2, 0x67,0x8b,0xf0,0x0, +0x60,0x5, 0xf0,0x0, 0x61,0x8, 0xf0,0x0, 0x61,0x87,0xf0,0x0, 0x62,0x84,0xf0,0x0, +0x63,0x9, 0xf0,0x0, 0x63,0x86,0x3, 0x82,0x14,0x10,0xe3,0xff,0xc4,0x7f,0xe7,0xfe, +0x0, 0xa0,0xf0,0xf, 0x3c,0x9c,0xb4,0xf, 0xb4,0x9f,0xe7,0xfc,0x0, 0xf9,0x15,0x80, +0xad,0x8d,0x13,0x81,0x3f,0x65,0xe7,0xfc,0x0, 0xbe,0x17,0x1e,0x3f,0x32,0xea,0x14, +0x7e,0x20,0x11,0x1, 0xa9,0xd, 0x3f,0x1c,0xb4,0xf, 0x16,0x83,0xb4,0x9f,0xc7,0xa, +0x94,0xf, 0x94,0x9f,0x95,0x2f,0x95,0xbf,0x96,0x4f,0xe0,0x40,0xb4,0x5e,0xc6,0xff, +0xe0,0x40,0xb4,0xce,0xe2,0x1, 0xc6,0xff,0xe0,0x40,0xb5,0x3e,0xe0,0x40,0xb5,0xae, +0xe0,0x40,0xb6,0x1e,0x2e,0xed,0xe7,0xfc,0x0, 0xd6,0x11,0x0, 0xa9,0x1, 0xe7,0xfe, +0x0, 0x96,0x8b,0x8d,0x15,0xa, 0xe0,0x2, 0x1c,0xa1,0x3d,0x37,0xe0,0x2, 0x1c,0x1d, +0xe0,0x2, 0xdb,0xba,0x66,0x81,0xe7,0xfa,0x0, 0xe4,0x8b,0x8d,0xe7,0xfb,0x0, 0xe3, +0x8, 0xb1,0xe0,0x2, 0x1c,0x2d,0x15,0xa, 0x14,0x88,0xe0,0x2, 0xdb,0xe7,0xe0,0x1, +0x1e,0xdb,0x17,0x0, 0x3f,0xed,0xe1,0x80,0xaf,0x1f,0xc7,0x81,0xaf,0x1d,0xe1,0x80, +0xaf,0x1f,0xe1,0x80,0xaf,0x1f,0xe1,0x80,0xaf,0x1f,0xe1,0x80,0xaf,0x1f,0xe1,0x80, +0xaf,0x1f,0xe1,0x80,0xaf,0x1f,0xe1,0x80,0xaf,0x1f,0xaf,0xf, 0x8, 0xe1,0x8, 0xb7, +0xf8,0x0, 0xc, 0x3e,0xe0,0x2, 0x1f,0xa0,0x8b,0xf, 0xe0,0x3, 0x23,0xa, 0xe0,0x2, +0x1f,0x9f,0x8f,0x8f,0x3f,0xf6,0x5, 0x85,0xea,0x14,0x7f,0x91,0x17,0x3, 0xaf,0xf, +0xea,0x14,0x7f,0x10,0x87,0x8e,0xc7,0x81,0xe2,0x1, 0xc7,0xff,0xe2,0x0, 0xcf,0x8a, +0xe0,0x2, 0x2, 0xc0,0xaf,0x8e,0xe0,0x1, 0x1f,0x9c,0x8f,0x8f,0xe0,0x1, 0x27,0x80, +0xf7,0xff,0x11,0xff,0xf0,0x13,0x39,0x9f,0xe0,0x1, 0x1f,0x82,0xe0,0x1, 0x1e,0x1, +0x8e,0x8f,0xe0,0x0, 0x1f,0xf1,0xf0,0x0, 0x88,0xc, 0xe0,0x0, 0x1e,0x72,0x8f,0x8f, +0xf2,0x1, 0xc1,0xff,0xf0,0x0, 0x88,0x8c,0xf0,0x0, 0xc1,0x81,0x36,0xa8,0x37,0xa8, +0xf4,0x0, 0xc1,0x8a,0xea,0x14,0x7d,0x91,0xf0,0x0, 0x8e,0x8e,0xe0,0x2, 0x1f,0x21, +0xf0,0x10,0x38,0x4d,0xf0,0x11,0x38,0xcf,0xea,0x14,0x7d,0x14,0xea,0x13,0x79,0x68, +0xea,0x13,0x78,0xc0,0xfa,0x13,0x7d,0xb4,0xf0,0x0, 0x16,0x0, 0x8b,0x8b,0xe0,0x1, +0x1c,0x5b,0xe0,0x2, 0x1c,0xad,0xe0,0x2, 0x19,0x9b,0xf1,0xff,0xc0,0x7f,0xf1,0xff, +0xc0,0xff,0xf0,0x13,0x39,0x9e,0x0, 0x93,0xea,0x13,0x7a,0xe8,0xea,0x13,0x7a,0x40, +0x37,0xa2,0x3a,0x9f,0x3f,0x94,0xb6,0x5, 0xb6,0x95,0xb5,0x8f,0xb5,0x9f,0xc7,0xa, +0xe8,0x40,0x3f,0x73,0xc4,0x1, 0xc4,0x81,0xc5,0x1, 0x1, 0x2f,0xe0,0xd, 0x8f,0x8e, +0xe2,0x1, 0xcf,0xff,0x1, 0x75,0xe0,0x6, 0x9e,0x2e,0xe0,0x6, 0x9e,0xbe,0xe2,0x0, +0xce,0x0, 0x12,0x1, 0xe0,0xb, 0x37,0xa3,0xe8,0x25,0x3e,0x0, 0x3d,0x93,0xf0,0x40, +0x3b,0x64,0xe0,0x76,0x39,0xa5,0x8d,0x8b,0xe2,0x0, 0xce,0x80,0xe8,0x25,0x3e,0x81, +0xf0,0x40,0x3b,0xe4,0xe0,0x77,0x39,0xa5,0xe2,0x0, 0xcd,0x82,0x1, 0x13,0x25,0xcd, +0xe2,0x0, 0xcd,0x81,0x1, 0xd5,0xc7,0xa, 0x16,0x80,0xe8,0x40,0x3f,0x73,0xae,0x8a, +0xc4,0x1, 0xc4,0x81,0xc5,0x1, 0x1, 0xd3,0xf0,0x1, 0x2e,0x7e,0xf8,0x0, 0xf, 0x28, +0xb, 0xe1,0xe0,0x5, 0x37,0xa2,0xe0,0xb, 0x39,0x15,0xf0,0x0, 0x9c,0x8b,0xf0,0x0, +0x9c,0x1b,0xe8,0x4, 0x3e,0x29,0xe3,0xff,0xc2,0x7f,0xf0,0x43,0x3d,0x14,0xe8,0xb, +0x3e,0xa8,0xe3,0xff,0xc5,0xff,0xf2,0x0, 0xcd,0x0, 0xf0,0x15,0x3c,0xac,0xf0,0x43, +0x3a,0x1b,0xf3,0xff,0xc2,0xff,0xe8,0x64,0x3d,0x25,0xf2,0x0, 0xca,0x0, 0xf0,0x15, +0x3c,0x2d,0xf3,0xff,0xc2,0xff,0xe8,0x6b,0x3d,0x25,0xe2,0x0, 0xcb,0x7, 0xe0,0x0, +0x5, 0xff,0xf0,0x0, 0x11,0xa, 0xf0,0x0, 0xa9,0x9, 0x23,0x8a,0xc3,0xff,0xf0,0x0, +0x11,0x9, 0xf0,0x0, 0xa9,0x9, 0xe2,0x1, 0xc3,0xff,0xf0,0x0, 0x16,0x1, 0xe0,0x15, +0x38,0x95,0xf8,0x0, 0x92,0x85,0xf8,0x15,0x3a,0xba,0xf2,0x0, 0xca,0x80,0xf0,0x15, +0x3d,0x9f,0xe0,0x1, 0x4, 0x24,0xf8,0x0, 0x89,0x5, 0xe0,0x15,0x38,0x95,0xf8,0x0, +0x92,0x95,0xf8,0x15,0x3a,0xb4,0xf2,0x0, 0xca,0x80,0xe0,0x1, 0x4, 0xc, 0xf2,0x0, +0xc9,0x1, 0xe0,0x0, 0x5, 0xf8,0xf0,0x0, 0x11,0xa, 0xf0,0x0, 0x12,0x8a,0xf0,0x0, +0xa9,0x9, 0xf8,0x40,0x39,0x65,0xe0,0x1e,0x38,0x95,0xf2,0x0, 0xce,0x8a,0xf8,0x0, +0xb5,0xe, 0xf8,0x0, 0xb2,0x1e,0xe0,0x0, 0x1, 0x58,0x8f,0x8a,0x2f,0x89,0xe0,0x14, +0x3a,0x1b,0xf2,0x0, 0xca,0x4, 0xe0,0x6b,0x3c,0x2f,0xe0,0x64,0x3c,0x2b,0xf1,0x2b, +0x3a,0x9b,0x25,0xa2,0xf1,0x24,0x3a,0x94,0x22,0x1f,0xf0,0x0, 0x2b,0x4, 0xf0,0x6, +0xb4,0xae,0xf0,0x0, 0x2b,0x84,0xf0,0x6, 0xb4,0x3e,0xf0,0x0, 0x12,0x89,0x87,0x88, +0xf9,0x2d,0x3a,0xa2,0xc7,0x81,0xe2,0x1, 0xc7,0xff,0xaf,0x88,0xe7,0xfe,0x26,0xc1, +0x15,0xb1,0xe1,0x2f,0x3f,0x9b,0xe7,0xfe,0x27,0xbc,0xf0,0x0, 0xc1,0x1, 0xf0,0x0, +0xa9,0x9, 0xe7,0xfe,0x0, 0xb6,0xe0,0xf, 0x39,0x15,0xf0,0x0, 0x12,0x1, 0xf2,0x0, +0xc9,0x9, 0xf0,0x0, 0xaa,0xa, 0xb6,0xf, 0xb6,0x9f,0x5, 0x93,0xf0,0x0, 0x12,0x85, +0xf0,0x0, 0xaa,0x89,0x15,0x80,0xad,0x88,0xe7,0xfe,0x0, 0xa3,0xe2,0x0, 0xcb,0x2, +0xe7,0xff,0x5, 0x85,0xf0,0x0, 0x12,0x89,0xf0,0x0, 0xaa,0x89,0xe7,0xfe,0x0, 0xff, +0xf2,0x0, 0xc9,0x1, 0x5, 0xf0,0xf1,0xff,0xc1,0x7f,0xf0,0x0, 0xa9,0x9, 0x0, 0xeb, +0x17,0x80,0xe7,0xfd,0x0, 0xc1,0xfa,0x13,0x7a,0x28,0xf0,0x1a,0x3d,0x9f,0xe8,0xf, +0x3f,0x94,0xf0,0x0, 0x12,0x0, 0xf8,0x0, 0xaa,0xa, 0xf0,0x0, 0xaa,0xf, 0xe7,0xff, +0x0, 0x9e,0xfa,0x13,0x7a,0xa8,0xf0,0x15,0x3a,0x9f,0xf8,0x0, 0x8a,0x85,0xf2,0x0, +0xca,0x81,0xe7,0xff,0x2, 0x82,0xf0,0x0, 0x89,0x9, 0xf8,0x40,0x3a,0xe2,0xe7,0xff, +0x0, 0x84,0xfa,0x13,0x7a,0xa8,0xf0,0x15,0x3a,0x9f,0xf8,0x0, 0x87,0x5, 0xf0,0x0, +0xc7,0x1, 0xf8,0x0, 0xaf,0x5, 0xe7,0xfe,0x0, 0xec,0xf8,0x0, 0x81,0x5, 0xf0,0x0, +0xc1,0x1, 0xf2,0x1, 0xc1,0x7f,0xf8,0x0, 0xa9,0x5, 0xe7,0xfe,0x0, 0xd8,0xde,0x51, +0xea,0x14,0x7f,0x94,0x3f,0x6f,0xe1,0x80,0xbb,0x1e,0xbb,0x1f,0xb3,0x2e,0xf8,0x0, +0xf, 0x28,0xb, 0xe1,0xea,0x14,0x7f,0x91,0xab,0x8f,0xe7,0xfe,0x0, 0x81,0xe0,0x2, +0x1f,0xa1,0xe0,0x3, 0x15,0x88,0xe0,0x3, 0x16,0x9, 0xe0,0x3, 0x16,0x8a,0x17,0x0, +0x3d,0x9f,0x3e,0x1f,0x3e,0x9f,0xe0,0x3, 0xc7,0x8b,0xaf,0xb, 0xaf,0xc, 0xaf,0xd, +0xaf,0xf, 0x38,0x82,0xe0,0x2, 0x1f,0xa0,0xe0,0x2, 0x1f,0x21,0x8f,0x8f,0xe2,0x0, +0xcf,0x81,0xea,0x13,0x7f,0xa4,0x1, 0x6, 0xe0,0x0, 0x5, 0xcc,0x17,0x1, 0xaf,0xf, +0x38,0x82,0x8f,0x8f,0xe0,0x0, 0x2f,0xc8,0xe0,0x2, 0x1e,0x9f,0x8e,0x8d,0xe0,0x0, +0x26,0xc4,0xe0,0x0, 0x1e,0xad,0x8e,0x8d,0xe0,0x0, 0x26,0xd9,0xea,0x13,0x7e,0x1e, +0xea,0x13,0x7d,0x22,0x96,0x8a,0x96,0xc, 0x3e,0x9c,0xe0,0x43,0x3e,0x9d,0xe2,0x0, +0xce,0x80,0x3c,0xed,0xe0,0x0, 0x4, 0x48,0xea,0x13,0x7e,0x9c,0xea,0x13,0x7d,0xa0, +0x97,0x8b,0x96,0x8d,0xe0,0x43,0x3c,0x99,0x3f,0x9d,0xe0,0x43,0x3f,0x9f,0xe2,0x0, +0xcf,0x80,0xf0,0x40,0x3b,0xef,0x4, 0x34,0xe0,0x2, 0x1c,0x3f,0xe8,0x43,0x3e,0x17, +0x8e,0xd8,0x36,0xa6,0xc6,0xdf,0x3e,0xfc,0x3f,0xed,0x2, 0x27,0x8e,0xc8,0xe0,0x43, +0x3f,0x9f,0x36,0xa6,0xc6,0xdf,0x3e,0xf9,0x3e,0x6d,0x2, 0x1d,0x3e,0xec,0xe3,0xff, +0xc6,0xff,0xe3,0xff,0xc7,0xff,0xb6,0x8e,0xb7,0x9e,0xb6,0x8a,0xb7,0x8b,0x38,0x82, +0x17,0x0, 0xaf,0xf, 0x38,0x82,0x94,0x8e,0x95,0x1e,0xea,0x13,0x7d,0xa2,0xea,0x13, +0x7e,0x20,0xea,0x13,0x7f,0x1e,0xea,0x13,0x7f,0x9c,0xb4,0x8b,0xb5,0xc, 0xb6,0x8e, +0xb6,0x8f,0x38,0x82,0x3e,0x69,0x0, 0xe3,0xe8,0x40,0x3f,0xe7,0x0, 0xd8,0xf0,0x0, +0x13,0x80,0x0, 0xcb,0x3c,0xef,0xe7,0xff,0x0, 0xb9,0xea,0x13,0x7e,0xa2,0xea,0x13, +0x7f,0xa0,0x9c,0xe, 0x9c,0x9e,0x95,0xd, 0x96,0xf, 0xea,0x13,0x7d,0x9e,0xea,0x13, +0x7f,0x1c,0xe0,0xa, 0x3c,0x2a,0xe0,0xc, 0x3c,0xac,0xb5,0xb, 0xb6,0xe, 0xb4,0xd, +0xb4,0x8f,0x38,0x82,0x8, 0xb1,0xe2,0x0, 0xcc,0x2, 0x1, 0x2a,0x5, 0x93,0xe2,0x0, +0xcc,0x3, 0x1, 0x7, 0xe2,0x0, 0xcc,0x4, 0x1, 0xa2,0x8, 0xa1,0xe7,0xfb,0x0, 0xb9, +0xef,0xff,0xd4,0x1b,0xef,0xff,0xd3,0x89,0xef,0xfd,0xd1,0x5c,0x8, 0xa1,0xe7,0xf4, +0x0, 0xf8,0xe2,0x0, 0xcc,0x1, 0x1, 0x93,0xef,0xfd,0xd7,0xc0,0xe0,0x2, 0x1f,0x15, +0x17,0x80,0xac,0xe, 0xe0,0x2, 0x1f,0x14,0xaf,0x8e,0xe0,0x2, 0x1f,0x16,0xaf,0x8e, +0xe0,0x2, 0x1f,0x12,0xaf,0x8e,0xe0,0x2, 0x1f,0x11,0xaf,0x8e,0x8, 0xe1,0xe0,0x2, +0x1f,0x9a,0x17,0x0, 0xaf,0xf, 0xef,0xff,0xd3,0x17,0xe0,0x2, 0x1f,0x85,0xe0,0xa, +0x8f,0x8f,0x2f,0xf5,0x8, 0xa1,0xe7,0xe5,0x0, 0xe5,0x0, 0x0, 0xe0,0x1, 0x1f,0x9c, +0x8f,0x8f,0x27,0x98,0x16,0xff,0x3e,0x9f,0xe2,0x1, 0xc6,0xff,0xc6,0x81,0x36,0xa3, +0x3e,0x98,0x17,0x3, 0xe0,0xff,0x17,0xff,0x16,0x0, 0xaf,0x8, 0xc4,0x8, 0x3c,0x7d, +0xe0,0x40,0xaf,0x78,0xe0,0x40,0xb7,0xb8,0xe0,0x40,0xb7,0xa8,0xe0,0x40,0xae,0x28, +0x1, 0xf5,0x38,0x82,0xe0,0x1, 0x1f,0x9c,0x8d,0x8f,0xe0,0x2, 0x1f,0xa0,0x8e,0xf, +0xe0,0x0, 0x25,0xc6,0x17,0x80,0x16,0x81,0xf0,0x2, 0x1a,0xa1,0xc4,0xff,0x3e,0x98, +0x15,0x7d,0xf0,0x0, 0x13,0x83,0xf0,0x0, 0x13,0x1, 0xf0,0x40,0x39,0xef,0xf0,0x0, +0x12,0x2, 0x0, 0x95,0x17,0xa, 0x3f,0x3c,0xf0,0x40,0xab,0x1d,0xe8,0xe, 0x3f,0x15, +0xc6,0x1, 0xaf,0xce,0xe2,0x1, 0xc6,0x7f,0xe0,0x40,0x8f,0x1d,0xc7,0x81,0xe2,0x1, +0xc7,0xff,0x3f,0xfb,0xaf,0x18,0xc6,0x88,0xc4,0x8, 0x1, 0x21,0xe0,0x80,0x8f,0x19, +0xe2,0x0, 0xcf,0x1, 0x1, 0xa, 0x87,0x18,0x3f,0x5a,0xe2,0x1, 0xc7,0x7d,0x27,0x63, +0xf0,0x40,0xab,0x9d,0x17,0x3, 0x0, 0xeb,0x8f,0x18,0xe2,0x0, 0xcf,0x1, 0x1, 0x10, +0xe2,0x0, 0xcf,0x3, 0x1, 0xf, 0x2f,0x5, 0xf0,0x40,0xaa,0x1d,0x17,0x2, 0x0, 0xdf, +0xe2,0x0, 0xcf,0x2, 0x1, 0xda,0xe0,0x40,0xaf,0x1d,0x0, 0xd9,0x38,0x82,0xf0,0x0, +0xab,0x98,0x17,0x0, 0xf0,0x40,0xa9,0x9d,0x0, 0xd2,0x8, 0xb6,0xc0,0x4c,0xe0,0x1, +0x1a,0x9c,0xe0,0x2, 0x1f,0xbf,0x8d,0x5, 0xf0,0x0, 0x8a,0x6f,0xf0,0x0, 0x89,0x7f, +0xe0,0x3, 0x25,0x6a,0x14,0x7f,0x3c,0x1a,0xe2,0x1, 0xc4,0x7f,0xc4,0x1, 0xe0,0x2, +0x19,0x21,0xe4,0x0, 0xc4,0xa, 0x14,0x9c,0x15,0x84,0x16,0x10,0x3f,0xe2,0x3c,0x90, +0x3d,0x90,0x3e,0x10,0x3c,0x12,0x16,0xff,0x17,0x0, 0xae,0xcf,0xc7,0x8a,0x3f,0xf8, +0xe1,0x80,0xae,0x99,0xe1,0x80,0xaf,0x1b,0xe1,0x80,0xaf,0x1c,0x1, 0xf7,0xe0,0x2, +0x1a,0x20,0xea,0x23,0x79,0xa0,0xf0,0x0, 0x8b,0x4, 0xf0,0x0, 0x2b,0x21,0x8f,0x3, +0x27,0x16,0xe0,0x3, 0x25,0x4f,0x17,0x7f,0x3f,0x1a,0xe2,0x1, 0xc7,0x7f,0xc7,0x1, +0x37,0x23,0xe0,0x2, 0x1f,0xa1,0x39,0x1e,0xe0,0xff,0x17,0x7f,0xe0,0x12,0xb7,0x7f, +0xc7,0x88,0x39,0x7f,0xe0,0x12,0xb7,0x4f,0x1, 0xfa,0x8f,0x4, 0xe0,0x2, 0x1c,0x1b, +0x14,0x84,0x3c,0x90,0xaf,0x3, 0xdf,0x5f,0xc0,0x34,0xb, 0x61,0xf0,0x0, 0x8b,0x83, +0xf0,0x2, 0x23,0x8f,0xe0,0x3, 0x25,0x31,0x16,0xff,0x3e,0x9a,0xe2,0x1, 0xc6,0xff, +0xe0,0x1, 0x1f,0x4d,0xf0,0x1, 0x1a,0xc5,0xe0,0x23,0xc6,0xa2,0x36,0xa2,0x3e,0x9e, +0xe8,0x40,0x3f,0xe5,0xe0,0xff,0x17,0x7f,0xb7,0xf, 0xc7,0x84,0x3f,0xfd,0xe0,0x40, +0xb7,0x1f,0xe0,0x2, 0xb7,0x2f,0xe0,0x2, 0xb7,0x3f,0x1, 0xf7,0x17,0x81,0xf0,0x13, +0x32,0x26,0xf0,0x14,0x31,0x26,0xf9,0x31,0x3b,0x96,0xf1,0x2e,0x3b,0x9f,0xf1,0xff, +0xc1,0xdf,0xf1,0xff,0xc2,0x5f,0x14,0x0, 0xf0,0x11,0x38,0xde,0xf8,0x43,0x39,0x93, +0xf8,0x43,0x3a,0x14,0xf0,0x40,0x39,0x6f,0xf0,0x40,0x38,0x68,0x25,0x19,0x17,0x80, +0x16,0x10,0xe0,0x2, 0x1f,0x1b,0x3e,0x10,0x3e,0xef,0x9d,0x9e,0xe4,0xd, 0x36,0xc8, +0xe2,0xff,0xcd,0xff,0x1, 0x4, 0x8c,0x8c,0xe0,0x1, 0x24,0xed,0xc7,0x81,0xe4,0xd, +0x37,0xa8,0xe4,0xb, 0x36,0xc8,0x3d,0x7b,0xc7,0x8, 0xc6,0x1, 0x2, 0xef,0xc4,0x1, +0x3f,0xe8,0xe2,0x1, 0xc7,0xff,0xf0,0x40,0x3b,0xff,0xf0,0x0, 0xc2,0x84,0x2, 0xdf, +0xe0,0x0, 0x25,0x40,0x14,0x7f,0x3c,0x1a,0xe2,0x1, 0xc4,0x7f,0xc4,0x1, 0xea,0x23, +0x7e,0x8c,0xea,0x22,0x7f,0x78,0xe0,0x9, 0x34,0x23,0xe0,0x2, 0x1f,0xa1,0x3c,0x92, +0xe0,0x12,0x95,0xff,0xe0,0x13,0x96,0xf, 0xc7,0x88,0x3f,0xf9,0xe1,0x80,0xb5,0x9d, +0xe1,0x80,0xb6,0x1e,0x1, 0xf6,0x15,0x9c,0x3d,0x90,0x3c,0x1b,0x10,0x81,0x13,0x0, +0x0, 0x84,0xc5,0x81,0x3d,0xf8,0x1, 0x1d,0x8f,0x8b,0xe2,0x1, 0xcf,0xff,0x1, 0xfa, +0x4f,0x10,0x16,0x91,0x3e,0x90,0x17,0x81,0xe0,0x2, 0x27,0x29,0x3f,0x6f,0xe2,0x1, +0xc7,0x7f,0x3f,0x7a,0x3c,0xef,0x3, 0xee,0xe1,0x80,0x8e,0x1d,0xc7,0x81,0x2e,0x77, +0xaf,0xb, 0xe2,0x0, 0x7e,0x90,0xc5,0x81,0x3c,0x9d,0x3d,0xf8,0xa8,0x89,0x1, 0xe5, +0x15,0xff,0xe8,0xb, 0x3d,0x96,0xe2,0x1, 0xc5,0xff,0xc5,0x81,0xe4,0x0, 0xc5,0x8a, +0xe0,0x2, 0x1f,0xa1,0xe0,0x1, 0x1f,0x46,0x3d,0x92,0x96,0xf, 0x96,0x9f,0xc7,0x8a, +0xb6,0xe, 0x3f,0xfb,0xc7,0x4, 0xe0,0x40,0xb6,0x9e,0x1, 0xf8,0xe0,0x1, 0x1e,0xbd, +0xe0,0x1, 0x1f,0x3c,0xe0,0x1, 0x1f,0xc7,0x36,0xc1,0x37,0xc1,0x37,0x41,0xe2,0x0, +0x7c,0x28,0x7f,0x8d,0x7e,0x8b,0x7f,0xc, 0xf0,0x0, 0x6b,0xa8,0xf0,0x0, 0x6b,0x29, +0xe0,0x0, 0xdd,0x3e,0x8f,0x84,0x8c,0x5, 0x27,0xae,0x15,0x7f,0xe0,0x1, 0x1f,0xc4, +0x3d,0x18,0xe2,0x1, 0xc5,0x7f,0xe0,0x46,0xc5,0x6a,0x9a,0x8f,0xe0,0x1, 0x1f,0xcd, +0x35,0x21,0x14,0x80,0xf0,0x2, 0x1b,0x9b,0x3d,0x1f,0xf0,0x0, 0x13,0x1, 0x38,0xe9, +0x24,0x14,0x3d,0xe9,0xe2,0x1, 0xc5,0xff,0x3a,0xfb,0xe0,0x1, 0x1f,0x44,0x17,0x81, +0x1, 0x88,0xe0,0x1, 0x0, 0x9e,0xe0,0x80,0x9e,0x9e,0x3e,0xfb,0xe0,0x1, 0x1, 0x1a, +0x3d,0x7e,0x3e,0x6f,0xc7,0x81,0x1, 0xf8,0xc4,0x81,0x8f,0x84,0xe2,0x1, 0xc4,0xff, +0x3f,0xf9,0x2, 0xe7,0xe7,0xfe,0x24,0x3, 0x16,0xff,0x3e,0x98,0xe2,0x1, 0xc6,0xff, +0x17,0x4, 0x3f,0x10,0xc6,0x81,0xe0,0x2, 0x1f,0xa1,0x3e,0x9e,0xe0,0xff,0x15,0xff, +0xe1,0x80,0x8e,0x1e,0xe2,0x0, 0xce,0x1, 0x1, 0x5, 0xe0,0x12,0xb5,0xff,0xe0,0x13, +0xb5,0x8f,0x3e,0xfe,0xc7,0x88,0x1, 0xf5,0x8f,0x4, 0xe7,0xfd,0x0, 0xe9,0xe0,0x2, +0x1d,0x1b,0x15,0x81,0x17,0x8a,0xe8,0xf, 0x3f,0xb7,0xf0,0xe, 0x33,0xa3,0x3f,0x92, +0x96,0xf, 0x96,0x9f,0x3f,0x1a,0xb6,0x1e,0x16,0x1, 0xb6,0xae,0xe8,0xc, 0x3e,0x17, +0xe2,0x0, 0x7e,0x84,0xe8,0xd, 0x3e,0x97,0x8f,0x4, 0xf0,0x0, 0xab,0xcf,0xf0,0x40, +0x3b,0xec,0xf2,0x1, 0xc3,0xff,0xe8,0x40,0x3f,0x77,0xad,0x8d,0x2, 0xe4,0xe7,0xfd, +0x0, 0xc7,0xf0,0x0, 0x28,0x9c,0x97,0x2e,0xe8,0x0, 0xb5,0x85,0xe8,0x0, 0xb7,0x15, +0xe2,0x0, 0x7f,0x1c,0xe2,0x0, 0x7e,0x10,0x3f,0x18,0x3f,0x9c,0xc4,0x1, 0xf0,0x0, +0xa9,0xf, 0x3f,0xe8,0xe2,0x1, 0xc7,0xff,0xf0,0x40,0x3b,0xff,0xae,0x8e,0xf0,0x0, +0xc2,0x84,0xe7,0xfd,0x2, 0xed,0xe7,0xfe,0x0, 0x8d,0xea,0x23,0x7e,0xc, 0xe0,0x6, +0x37,0xa1,0x3e,0x16,0x98,0x8c,0xe2,0xff,0xc8,0xff,0x1, 0x5e,0xea,0x22,0x7c,0xf8, +0x9e,0x2e,0xe0,0xe, 0x35,0xa1,0x3c,0x96,0x3f,0x21,0x95,0x89,0xe0,0x43,0x3f,0x1e, +0x36,0x21,0xe2,0x0, 0xcf,0x0, 0x3e,0x2b,0xe0,0x43,0x3e,0x1c,0x3d,0xee,0xe0,0x0, +0x4, 0x42,0xe2,0x0, 0xce,0x0, 0xe0,0x43,0x3d,0x9b,0x3f,0x6c,0x4, 0x38,0xf0,0x40, +0x39,0xfb,0xe0,0x43,0x3f,0x1e,0xe8,0x6b,0x3d,0x23,0xf0,0x40,0x3a,0x7e,0xe8,0x0, +0xb5,0x85,0xe8,0x6e,0x3d,0x24,0xe8,0x0, 0xb7,0x15,0xe7,0xff,0x0, 0xbb,0x3e,0x61, +0xe2,0x0, 0x7f,0x9c,0x3e,0x1f,0x8f,0x8c,0xe2,0x1, 0xcf,0xff,0xe7,0xfe,0x1, 0x66, +0x17,0xa, 0x3f,0x39,0xe0,0xd, 0x37,0xa3,0x3f,0x12,0x96,0x1e,0x95,0x8e,0xaf,0xce, +0xe8,0xe, 0x3e,0x97,0xe2,0x0, 0x7e,0x84,0x3f,0x9d,0xb5,0x9e,0xc4,0x81,0xb6,0x2e, +0xe2,0x1, 0xc4,0xff,0xf0,0x0, 0xab,0xf, 0x8f,0x84,0x3f,0xf9,0xe7,0xfe,0x2, 0xba, +0xe7,0xfe,0x0, 0xd2,0xe0,0x2, 0x19,0x21,0xe7,0xfc,0x0, 0xb3,0xe8,0x40,0x3f,0x60, +0x0, 0xc7,0xe8,0x40,0x3d,0xe0,0xe7,0xff,0x0, 0xbe,0x3c,0xe6,0xe7,0xfd,0x0, 0xe2, +0x3f,0x6a,0xe7,0xfc,0x0, 0xc5,0xf0,0x1, 0x1a,0xc5,0xe7,0xfc,0x0, 0xe9,0x8, 0xb3, +0x3f,0x83,0xef,0xfb,0xda,0xa5,0x14,0x0, 0xef,0xfb,0xda,0x81,0xef,0xfb,0xde,0x19, +0xef,0xfb,0xda,0xe1,0xef,0xfb,0xd2,0x4f,0xef,0xfb,0xd3,0xbb,0xef,0xfb,0xdb,0x1b, +0xea,0x23,0x7f,0x24,0x16,0x80,0xea,0x23,0x7f,0xa2,0xb6,0x8e,0xe0,0x13,0x17,0x44, +0xb7,0xf, 0xef,0xfb,0xda,0xbb,0xe0,0x2, 0x19,0xa8,0xef,0xfb,0xdc,0xee,0xef,0xfb, +0xda,0xea,0xef,0xfb,0xdb,0x3d,0x17,0x83,0xaf,0x83,0xef,0xfd,0xde,0x81,0xef,0xfb, +0xdb,0x72,0xef,0xfb,0xde,0xae,0xef,0xfb,0xdd,0x9e,0x3b,0x0, 0xe0,0x1, 0x19,0x23, +0xef,0xfb,0xd4,0x14,0xe0,0xe, 0x8c,0xa2,0xe0,0xe, 0x8c,0x12,0xe0,0x1, 0x15,0x78, +0xe0,0x0, 0xda,0xa8,0x87,0x83,0xe0,0x10,0x8f,0x72,0xe2,0x0, 0xc7,0x81,0x3f,0x7f, +0x1, 0xd, 0xe0,0xe, 0x8d,0x82,0xe0,0xd, 0x8d,0x62,0xe0,0xd, 0x8c,0xf2,0xe0,0xd, +0x8c,0x52,0x16,0x18,0x9, 0xa1,0xe0,0x15,0x0, 0xad,0xe0,0xd, 0x8d,0xf2,0xe0,0xd, +0x8d,0x52,0xe0,0xe, 0x8c,0x82,0xe0,0xd, 0x8c,0x62,0x16,0x18,0x9, 0xa1,0xe0,0x15, +0x0, 0xa1,0xea,0x23,0x7f,0x24,0xea,0x23,0x7f,0xa2,0x16,0x80,0xb6,0x8e,0xb4,0xf, +0x38,0x82,0xea,0x23,0x7f,0x24,0x97,0x8e,0xea,0x23,0x7e,0xa2,0xc7,0x81,0x9e,0x8d, +0xe3,0xff,0xc7,0xff,0x3e,0xff,0xb7,0x8e,0x2, 0x82,0x38,0x82,0xe7,0x76,0x0, 0x93, +0x8f,0x89,0x27,0x96,0x8e,0x8, 0xe0,0xe, 0x3e,0x2f,0xe0,0x43,0x3e,0x9e,0xe2,0x0, +0xce,0x80,0xe0,0x41,0x3e,0xcd,0xe0,0x6e,0x3d,0x2d,0x3f,0x7b,0x5, 0x7, 0x3f,0xfc, +0x3, 0x8a,0x3f,0x9a,0xe2,0x1, 0xc7,0xff,0xaf,0x89,0xaf,0x88,0x38,0x82,0x8f,0x88, +0xaf,0x89,0x38,0x82,0x3f,0xaa,0xe2,0x1, 0xc7,0xff,0xaf,0x89,0xaf,0x88,0x38,0x82, +0xf0,0x2, 0x1b,0x21,0xe4,0x0, 0xc5,0xa, 0xf0,0x1, 0x1a,0xad,0xf0,0xe, 0x3b,0x1a, +0xf0,0xd, 0x8b,0x8e,0xe8,0x0, 0x8e,0x85,0xe0,0xd, 0x87,0xae,0xe8,0x40,0x3e,0xf7, +0xe4,0xf, 0x37,0xac,0xe0,0xd, 0x8f,0x1e,0xe4,0xf, 0x37,0xc8,0x5, 0x99,0xe0,0x2, +0x1e,0x93,0xe0,0x1, 0x1d,0xef,0x8e,0x8d,0x26,0xa1,0xe0,0x0, 0x1e,0x39,0xe8,0xe, +0x3d,0x97,0xe8,0xf, 0x3e,0x17,0x8f,0xe, 0x8f,0x8f,0xf0,0xd, 0x33,0xa3,0xe8,0xd, +0x3e,0x96,0xe0,0x2, 0xc6,0xac,0x8e,0x8d,0xe2,0x0, 0xce,0x81,0x1, 0x31,0xe8,0x2, +0x8e,0xc5,0xe2,0x1, 0xce,0xff,0x1, 0x87,0xe8,0xa, 0x3d,0x16,0xe0,0xd, 0x8f,0xa, +0xe1,0x2e,0x3f,0xd, 0xaf,0x8, 0xaf,0x89,0x38,0x82,0xe8,0xc, 0x3d,0x97,0x8e,0x8c, +0x2e,0xa9,0xaf,0xc, 0xe0,0x0, 0x1e,0x39,0xe8,0x14,0x3e,0x17,0xe8,0x0, 0x8e,0x84, +0x26,0xb9,0xe0,0x13,0x3f,0xad,0xf8,0x43,0x39,0x13,0xf2,0x0, 0xc9,0x0, 0xf8,0x41, +0x39,0x42,0xe8,0x73,0x3d,0x22,0xf2,0x0, 0xc9,0xa0,0x5, 0x30,0x3f,0xfd,0x5, 0xa6, +0x17,0x90,0x3f,0x9d,0xe2,0x1, 0xc7,0xff,0xe8,0x0, 0xaf,0x84,0x0, 0xc7,0x16,0x80, +0xe8,0xb, 0x3d,0x97,0xe8,0xc, 0x3e,0x17,0x17,0x80,0xae,0x8b,0x3f,0x6f,0xae,0x8c, +0x0, 0xc7,0xe0,0x14,0x3f,0x2d,0xf8,0x43,0x39,0x94,0xf2,0x0, 0xc9,0x80,0xf8,0x41, +0x39,0xc3,0xe8,0x74,0x3d,0x23,0xf2,0x0, 0xca,0xf, 0x5, 0x13,0x3f,0x7d,0x5, 0x94, +0x17,0x1, 0x3f,0x1d,0xe2,0x1, 0xc7,0x7f,0x0, 0xc5,0x17,0xf0,0x3f,0x9d,0xe2,0x1, +0xc7,0xff,0xe8,0x0, 0xaf,0x84,0xe7,0xff,0x0, 0xa2,0x3f,0xed,0xe7,0xff,0x0, 0x9f, +0x3f,0x6d,0xe7,0xff,0x0, 0xb9,0x17,0x7f,0x3f,0x1d,0xe2,0x1, 0xc7,0x7f,0xaf,0xc, +0xe7,0xff,0x0, 0xb2,0xe0,0x0, 0x1f,0x95,0xe0,0x1, 0x1c,0x2f,0x8f,0x8f,0xe2,0x0, +0xcf,0x80,0xe0,0x0, 0x1f,0x93,0xe0,0x68,0x39,0xaf,0x38,0x82,0x8, 0xb7,0xf8,0x0, +0xc, 0x3e,0xc0,0x6c,0xe0,0x2, 0x1e,0x85,0x17,0x80,0xe0,0xa, 0x8f,0xd, 0xe0,0x1, +0x1e,0xaf,0x6f,0x96,0x7c,0x4, 0x6f,0x97,0xaf,0x9d,0xe0,0x2, 0x27,0x3e,0xe0,0x2, +0x1f,0x10,0xf0,0x2, 0x1c,0xa1,0x7f,0x3, 0xe0,0x2, 0x1f,0x19,0x8f,0x8e,0xe0,0x2, +0x27,0x8a,0xe0,0x2, 0x1f,0x98,0x7f,0x82,0x15,0x3e,0xe0,0x0, 0x1e,0x95,0xe0,0x1, +0x19,0xaf,0x8f,0x8d,0xe0,0x1, 0x1b,0xad,0xe2,0x0, 0xcf,0x80,0xe0,0x0, 0x1f,0x93, +0xe0,0x1, 0x14,0xff,0xe0,0x63,0x39,0xaf,0x3c,0x63,0xe0,0x2, 0xd5,0x7f,0xf0,0x0, +0x8d,0x87,0xf0,0x2, 0x25,0xad,0xf0,0x0, 0x15,0x80,0xf0,0x1, 0x1e,0x1c,0xe0,0x2, +0x1a,0x1b,0xf8,0x40,0x3f,0x6b,0xf8,0x40,0x3d,0x6b,0xe8,0x40,0x39,0x6b,0xe0,0x0, +0x0, 0xcc,0xe8,0x40,0x3d,0xea,0x3d,0x62,0xe2,0x0, 0x7c,0x97,0xe2,0x0, 0x7c,0x16, +0xdf,0x18,0xe0,0xd, 0x8f,0x85,0xe0,0x1f,0x17,0x7f,0xe8,0xe, 0x3f,0x58,0xe0,0x12, +0x37,0xac,0xe2,0x1, 0xcf,0xff,0xe8,0xe, 0x3f,0x12,0xf2,0x1f,0xc6,0xff,0xe3,0xff, +0xc7,0x7f,0xe0,0x1, 0x1, 0xa, 0xf0,0x0, 0x13,0x81,0xf8,0x17,0x3b,0x9a,0xf8,0x40, +0x3d,0x67,0xf2,0x1, 0xc5,0x7f,0x16,0x1, 0xe0,0xf, 0x33,0x2e,0xe8,0xc, 0x3e,0x1b, +0xe8,0xf, 0x3f,0x9d,0xf0,0x40,0x3d,0xec,0xf2,0x1, 0xc5,0xff,0xe3,0xff,0xc7,0xff, +0x16,0x86,0xe8,0xd, 0x3e,0xbe,0xe0,0xa, 0x37,0xc8,0x3e,0x93,0xaf,0xbd,0xe0,0xb, +0x37,0x48,0x47,0x96,0xf0,0x0, 0xc7,0x1, 0xaf,0xed,0xf2,0x1, 0xc7,0x7f,0x47,0x97, +0xad,0x2d,0xad,0xcd,0xaf,0x5d,0xaf,0xfd,0xc1,0x1, 0x8f,0x87,0xe2,0x1, 0xc1,0x7f, +0x3f,0xf2,0xe0,0x0, 0x5, 0xe2,0xf0,0x0, 0x10,0x8a,0xf0,0x11,0x38,0xb2,0xe8,0x0, +0x8d,0x8c,0xf8,0x5, 0x3c,0x91,0xe0,0xd, 0x8e,0x85,0x3e,0xfb,0x3, 0xee,0x17,0x8f, +0x3f,0xdd,0x37,0xa3,0x3f,0x94,0x8b,0xf, 0xe2,0x0, 0xcb,0x3, 0x1, 0x66,0xe2,0x0, +0xcb,0x1, 0xf0,0x6, 0x9e,0xa5,0xf0,0x6, 0x9c,0x35,0xe7,0xff,0x1, 0x9c,0x25,0x9c, +0xe0,0x1, 0x1f,0x64,0x87,0xce,0xe2,0x0, 0xc7,0x8f,0x3e,0xff,0xe0,0x1, 0x1, 0x66, +0xe0,0x1, 0x1d,0x64,0x3f,0xe6,0x0, 0x89,0xe0,0x1, 0x87,0x6a,0xc5,0xa, 0xe2,0x0, +0xc7,0xf, 0x3f,0x7d,0xe0,0x1, 0x1, 0x5c,0x3f,0x6f,0xe2,0x1, 0xc7,0x7f,0x3f,0x7b, +0x3c,0xef,0xc7,0x81,0x4, 0xf2,0xe8,0x40,0x3d,0xea,0x3d,0x62,0xe2,0x0, 0x7c,0x97, +0xe2,0x0, 0x7c,0x16,0xf0,0x0, 0x78,0x81,0xde,0x94,0xf0,0x0, 0x60,0x81,0xe0,0x1f, +0x17,0x7f,0xf8,0x11,0x38,0x99,0xe8,0xd, 0x8f,0x81,0xe8,0xe, 0x3f,0x58,0xe0,0x12, +0x37,0xac,0xe2,0x1, 0xcf,0xff,0xe8,0xe, 0x3f,0x12,0xf2,0x1f,0xc6,0xff,0xe3,0xff, +0xc7,0x7f,0xe7,0xff,0x1, 0x82,0xe7,0x80,0x17,0x80,0xe8,0xf, 0x3f,0x9d,0xe3,0xff, +0xc7,0xff,0xe7,0xff,0x0, 0x87,0xe0,0x2, 0x1e,0x85,0xe0,0x2, 0x1f,0xf, 0xe0,0xa, +0x8f,0x8d,0x87,0xe, 0xe2,0x0, 0xcf,0x81,0xf0,0x0, 0xad,0x13,0xaf,0x3, 0xe0,0x1, +0x1, 0x2a,0xf0,0x0, 0x25,0xf4,0x67,0x84,0x11,0x81,0xe0,0x1, 0x2f,0xb2,0x67,0x2, +0x8f,0x8e,0x27,0x86,0xe0,0x0, 0x1f,0xaa,0x8f,0x8f,0xe0,0x1, 0x27,0xd9,0xe8,0x0, +0x89,0xc, 0xe0,0x2, 0x1e,0x99,0x17,0x80,0xe4,0x0, 0xc1,0xa, 0xaf,0x8d,0x3d,0x62, +0x67,0x2, 0x66,0x83,0xe0,0x2, 0x1c,0x9c,0xe0,0x1, 0x1c,0x64,0xaf,0x8e,0xaf,0x8d, +0xe0,0x2, 0xd4,0x5a,0xf0,0x0, 0x25,0xa5,0x3c,0x63,0xc0,0x14,0xf8,0x0, 0xf, 0x28, +0xb, 0xe1,0xe0,0x2, 0x1e,0x98,0x8f,0x8d,0x7e,0x82,0xe7,0xfd,0x2f,0xf7,0x67,0x3, +0x89,0x8e,0xe7,0xfd,0x29,0xf3,0x67,0x4, 0x27,0x7, 0xe0,0x1, 0x1f,0xb1,0xa7,0xf, +0xa7,0xce,0xcf,0x84,0xbf,0xce,0xe0,0x1, 0x1f,0x9c,0xe0,0x2, 0x1c,0x9c,0x89,0xf, +0xe0,0x1, 0x1c,0x64,0xe4,0x0, 0xc1,0xa, 0x3d,0x62,0xe0,0x2, 0xd4,0x35,0xe0,0x1, +0x1c,0x64,0x3d,0x62,0xe0,0x1, 0x14,0xff,0xe0,0x2, 0xd4,0x68,0x3c,0x63,0xc0,0x14, +0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0xe0,0x2, 0x1f,0xf, 0xf0,0x2, 0x1c,0xa1,0x8f,0x8e, +0x2f,0xbe,0xe0,0x2, 0x1f,0x90,0x7f,0x83,0x16,0xb7,0xe0,0x0, 0x1f,0x8e,0xe0,0x1a, +0x9f,0xdf,0xe1,0x2f,0x3f,0x9d,0xaf,0x8e,0xe7,0xfd,0x0, 0xb8,0xe0,0x2, 0x1e,0x85, +0xe0,0x2, 0x1f,0xf, 0xe0,0xa, 0x8f,0x8d,0x87,0xe, 0xe2,0x0, 0xcf,0x81,0xf0,0x0, +0xad,0x93,0xaf,0x3, 0xf0,0x1, 0x1e,0x1c,0x1, 0x35,0x67,0x3, 0x8f,0x8e,0x2f,0xba, +0x67,0x2, 0x89,0x8e,0xe0,0x0, 0x21,0xf1,0xe0,0x0, 0x1f,0x2a,0x89,0x8e,0xe0,0x0, +0x21,0xe5,0xe8,0x0, 0x89,0xc, 0xe0,0x2, 0x1e,0x99,0xe4,0x0, 0xc1,0xa, 0xaf,0x8d, +0x3d,0x62,0x67,0x2, 0x66,0x83,0xe0,0x2, 0x1c,0x9c,0xe0,0x1, 0x1c,0x64,0x39,0xef, +0xaf,0x8e,0xaf,0x8d,0xe0,0x2, 0xd3,0xe8,0xe7,0xff,0x0, 0xb3,0xe0,0x2, 0x1e,0x90, +0x17,0x81,0x7e,0x83,0xaf,0x8d,0x0, 0xc1,0xe0,0x0, 0x14,0x80,0xe4,0x0, 0xc4,0x8a, +0xe0,0x1, 0x1f,0xe4,0x3c,0x9f,0xf0,0x0, 0x9e,0x89,0xf0,0x0, 0x9c,0x19,0xe7,0xfe, +0x0, 0xa4,0x67,0x3, 0x89,0x8e,0xe2,0x0, 0xc9,0x81,0x1, 0x1c,0x11,0x80,0xe7,0xfe, +0x0, 0xd8,0x67,0x84,0xf0,0x0, 0x15,0x80,0x11,0x81,0xe7,0xfe,0x27,0xd2,0xe0,0x0, +0x1e,0x95,0x17,0x0, 0x8f,0x8d,0xe0,0x2f,0x3f,0x8e,0xaf,0x8d,0xef,0xfb,0xd7,0x68, +0xe0,0x1, 0x1f,0xb1,0x16,0xfb,0xa7,0xf, 0xa7,0xce,0x3f,0xdd,0xbf,0xce,0xe7,0xfe, +0x0, 0xc0,0xe0,0x1, 0x1f,0xe2,0x16,0x85,0x67,0x4, 0xae,0x8f,0xe7,0xfe,0x27,0x39, +0xef,0xfb,0xd7,0x56,0xe0,0x0, 0x1e,0x95,0xe0,0x1, 0x1f,0x31,0x8f,0x8d,0x16,0x80, +0xe0,0x2f,0x3f,0x8d,0xe0,0x0, 0x1e,0x95,0xa7,0xe, 0xaf,0x8d,0x16,0xfb,0xa7,0xce, +0x3f,0xdd,0xbf,0xce,0xe7,0xfe,0x0, 0xa5,0xf0,0x40,0x3d,0xe3,0xe0,0x2, 0x1c,0x1b, +0xda,0x76,0xe7,0xfe,0x0, 0xa6,0xe8,0x0, 0x89,0xc, 0xe0,0x2, 0x1f,0x19,0xe4,0x0, +0xc1,0xa, 0x67,0x82,0x66,0x83,0xe0,0x2, 0x1c,0x9c,0xe0,0x1, 0x1c,0x64,0x3d,0x62, +0xa9,0x8e,0xa9,0x8f,0xa9,0x8d,0xe0,0x2, 0xd3,0x7f,0xe7,0xfe,0x0, 0xca,0x14,0x1, +0xe7,0xfc,0x0, 0x86,0x8, 0xb3,0xe0,0x2, 0x1f,0xf3,0x17,0x1, 0xa1,0xf, 0x16,0xfe, +0xe0,0x1, 0xa7,0xe2,0x3f,0x58,0x3f,0xdd,0x3f,0xce,0xe0,0x1, 0xbf,0xe2,0x2c,0x21, +0xe0,0x2, 0x19,0x8d,0x17,0x3, 0x8f,0x83,0x3f,0x3f,0xe0,0x2, 0x1f,0x89,0x3f,0x9e, +0x8c,0xf, 0xd4,0xa9,0xe0,0x2, 0xa7,0xd2,0x17,0x43,0x3f,0xde,0xcf,0x98,0xe0,0x2, +0xbf,0xd2,0x8e,0x83,0x8f,0x83,0xe0,0x2, 0x1f,0x6d,0xe4,0x0, 0xc6,0x85,0xe4,0x0, +0xc7,0x85,0x3f,0x9e,0x3f,0x1d,0x8c,0xcf,0x8c,0x3e,0x9, 0xa1,0xe0,0x5, 0x0, 0xee, +0x14,0x28,0xd4,0x91,0xe0,0x2, 0xa7,0xd2,0xe0,0x2, 0x1f,0xd, 0xcf,0xbc,0xe0,0x2, +0xbf,0xd2,0x8e,0x8e,0x8f,0x8e,0xe0,0x2, 0x1f,0x6d,0xe4,0x0, 0xc7,0x85,0xe4,0x0, +0xc6,0x85,0x3f,0x9e,0x84,0xcf,0x3f,0x1d,0xc4,0xfc,0x8c,0x3e,0xe2,0x1, 0xc4,0xff, +0x9, 0xa1,0xe0,0x5, 0x0, 0xd3,0x8, 0xb7,0xf8,0x0, 0xc, 0x3e,0xc0,0x64,0xe0,0x2, +0x1f,0x28,0xe0,0x2, 0x1f,0xbf,0x87,0xe, 0xe0,0x3, 0x8e,0xaf,0xe2,0x0, 0xc7,0x1, +0x3e,0xfe,0xe0,0x5, 0x1, 0x0, 0x8d,0x8f,0x89,0xaf,0x7d,0x85,0x3e,0x6b,0xe0,0x2, +0x1d,0xbe,0x99,0x5f,0x8f,0x1f,0x8f,0xbf,0x3e,0xe3,0x7d,0x83,0x3d,0x6e,0x3d,0xec, +0xe2,0x1, 0xc5,0x7f,0xe2,0x1, 0xc5,0xff,0x3d,0x7b,0x3, 0x82,0x3f,0x6c,0xf0,0x40, +0x3d,0xee,0x3e,0x6f,0x3f,0x6d,0xe2,0x1, 0xc6,0x7f,0xe2,0x1, 0xc7,0x7f,0x3e,0x7e, +0xf2,0x1, 0xc5,0xff,0x3, 0x82,0x3f,0xed,0xe0,0x0, 0x1f,0x30,0x15,0x80,0xf0,0x1, +0x1f,0x3b,0xb5,0x8e,0xe2,0x1, 0xc7,0xff,0xe0,0x2, 0x1f,0xb, 0xe0,0x1, 0x1d,0xba, +0xe0,0x0, 0x7f,0x82,0xf8,0x40,0x3e,0x6e,0xe0,0x1f,0x17,0xff,0xe8,0x80,0xb7,0x9c, +0xf0,0x40,0x3e,0x7b,0xe0,0x80,0xb7,0x9e,0x1, 0xfa,0x14,0x1, 0xef,0xfa,0xd8,0x99, +0xef,0xfb,0xdd,0x0, 0xef,0xfa,0xd4,0xdc,0xe0,0x2, 0x1e,0x8d,0x17,0x5, 0x8f,0x8d, +0xf8,0x40,0x3c,0xeb,0x3f,0x3f,0xe0,0x2, 0x1f,0xed,0x3f,0x9e,0x8f,0xbf,0xe0,0x0, +0x1f,0x31,0xe4,0x7, 0xc7,0xb0,0xf0,0x0, 0xa4,0xe, 0xf0,0x18,0x3c,0x1f,0xe8,0x40, +0x3f,0x68,0xe0,0x6, 0xc7,0x48,0xf0,0x0, 0x7c,0x1, 0x7f,0x4, 0xf0,0x1, 0x25,0xe0, +0xf0,0x40,0x3d,0xe3,0x62,0x5, 0xf2,0x1, 0xc5,0xff,0xf0,0x0, 0x7f,0x6, 0x13,0x81, +0xe2,0x1, 0xc2,0x7f,0xe8,0x40,0x3b,0x6b,0x12,0x80,0xf0,0x1, 0x1e,0xcd,0xf8,0x40, +0x3f,0x6b,0xf0,0x0, 0x7e,0x7, 0x0, 0x96,0x14,0x1, 0xdf,0x35,0xef,0xfa,0xd8,0x10, +0x14,0x1, 0xef,0xfa,0xd8,0x5e,0x17,0x81,0xe8,0x40,0x3b,0xf9,0x3f,0x97,0xe8,0x6, +0x3b,0x1e,0xc2,0x81,0xe3,0xff,0xc7,0xff,0xe3,0xff,0xc3,0x7f,0xe0,0x1, 0x3, 0xb4, +0x3b,0xef,0xf0,0x40,0x3d,0xe5,0xf3,0xff,0xc5,0xff,0xf0,0x40,0x3d,0xf4,0x3, 0xe5, +0xe0,0x2, 0x1d,0xf3,0xe7,0xbf,0x16,0xff,0xf0,0x0, 0xa4,0xb, 0xe0,0x0, 0x15,0x68, +0xe8,0x1, 0xa7,0xe8,0xe0,0x1, 0x14,0xff,0x3f,0xdd,0xe8,0x1, 0xbf,0xe8,0xf0,0x0, +0x16,0x0, 0x64,0x4, 0xe0,0x2, 0xd2,0xba,0xf0,0x0, 0x65,0x3, 0x29,0x6, 0x0, 0xa9, +0x39,0x7d,0xf0,0x0, 0xc5,0x2, 0x5, 0xa5,0xe8,0x40,0x3c,0x6c,0x3c,0xe3,0xe0,0x2, +0xd0,0x3b,0xf0,0x0, 0xc6,0x1, 0x3c,0x75,0xe8,0x40,0x3e,0xec,0xe3,0xff,0xc6,0xff, +0x1, 0xf0,0xe8,0x0, 0x9f,0x8a,0x67,0x1, 0xc7,0x84,0xe0,0xc, 0x37,0x85,0x36,0x22, +0x3e,0x1e,0xe0,0x1a,0xa5,0xac,0xe0,0x41,0x3f,0x8f,0x17,0x1, 0xe0,0xf, 0x37,0x3f, +0xe3,0xf, 0x3d,0xdf,0x39,0x7d,0xe0,0x1a,0xbf,0xac,0xf0,0x0, 0xc5,0x2, 0x2, 0xdd, +0xe8,0x1, 0xa7,0xe8,0x14,0x1, 0xe0,0x40,0xcf,0x80,0xe8,0x1, 0xbf,0xe8,0xde,0xd3, +0xef,0xfa,0xd7,0xae,0x14,0x1, 0xef,0xfa,0xd7,0xfc,0x14,0x0, 0xf0,0x40,0x3b,0x68, +0xf0,0x0, 0x25,0xaa,0xf0,0xa, 0x3f,0x18,0xe3,0xff,0xc5,0x7f,0xe0,0x40,0x3f,0xe8, +0xf0,0x0, 0x27,0x17,0xe0,0xc, 0x17,0x52,0x3f,0x1f,0xe0,0xd, 0x37,0xa1,0x37,0x21, +0xe8,0xe, 0x3f,0x1d,0xe8,0xd, 0x3e,0x9d,0x9d,0x8e,0x96,0xd, 0xc7,0x81,0x3d,0xfc, +0xe3,0xff,0xc7,0xff,0x3, 0x3, 0x9f,0xe, 0xb7,0xd, 0x3f,0xfa,0x1, 0xec,0xf0,0x0, +0xc3,0x1, 0xf3,0xff,0xc3,0x7f,0xf8,0x40,0x3b,0x7b,0xe8,0x8, 0x3c,0x1e,0xe3,0xff, +0xc4,0x7f,0x1, 0xd9,0x3b,0xf4,0x3c,0x66,0xf0,0x40,0x3b,0xe7,0xe7,0xfe,0x3, 0xed, +0xf0,0xa, 0x3f,0x18,0xe3,0xff,0xc5,0x7f,0xe0,0x40,0x3f,0xe8,0xf0,0x0, 0x27,0x17, +0xe0,0xc, 0x17,0x52,0x3f,0x1f,0xe0,0xd, 0x37,0xa1,0x37,0x21,0xe8,0xe, 0x3f,0x1d, +0xe8,0xd, 0x3e,0x9d,0x9d,0x8e,0x96,0xd, 0xc7,0x81,0x3d,0xfc,0xe3,0xff,0xc7,0xff, +0x3, 0x3, 0x9f,0xe, 0xb7,0xd, 0x3f,0xfa,0x1, 0xec,0xf0,0x0, 0xc3,0x81,0xf3,0xff, +0xc3,0xff,0xf0,0x40,0x3b,0xf4,0xe8,0x8, 0x3c,0x1e,0xe3,0xff,0xc4,0x7f,0x1, 0xd9, +0xe7,0xfe,0x0, 0xc3,0xf0,0x0, 0x67,0x6, 0xf0,0x0, 0x66,0x7, 0x67,0x82,0xf0,0x2, +0x1e,0x8a,0xe0,0x2, 0x27,0x95,0xf0,0x0, 0x65,0x5, 0xf0,0x40,0x3c,0xe3,0xf2,0x1, +0xc4,0xff,0xf2,0x1, 0xc5,0x7f,0xf8,0x7, 0x3c,0xba,0xf0,0x2, 0x1e,0x8a,0x3f,0xe7, +0xe3,0xff,0xc7,0xff,0xf0,0x0, 0x7f,0x6, 0x12,0x81,0xf0,0x0, 0x7e,0x7, 0x3b,0x6f, +0xf8,0x40,0x3e,0x69,0x7f,0x85,0x12,0x0, 0xf0,0x1, 0x1d,0xcd,0xf8,0x40,0x3f,0x6a, +0xf8,0x40,0x3c,0xed,0x0, 0x92,0x14,0x1, 0xde,0x46,0xef,0xfa,0xd7,0x21,0x14,0x1, +0xef,0xfa,0xd7,0x6f,0x66,0x82,0x17,0x81,0x3e,0xf5,0x3f,0x95,0xc2,0x1, 0xe3,0xff, +0xc7,0xff,0xe0,0x1, 0x5, 0xdf,0x3a,0xef,0xf0,0x40,0x3d,0x64,0xf3,0xff,0xc5,0x7f, +0xf8,0x40,0x3d,0x7c,0x3, 0xe9,0xe0,0x2, 0x1d,0xf3,0xe7,0xbf,0x16,0xff,0xf0,0x0, +0xa6,0x8b,0xe0,0x0, 0x15,0x68,0xe8,0x1, 0xa7,0xed,0xe0,0x1, 0x14,0xff,0x3f,0xdd, +0xe8,0x1, 0xbf,0xed,0xf0,0x0, 0x14,0x0, 0x64,0x4, 0xe0,0x2, 0xd1,0xcf,0x63,0x83, +0x29,0x5, 0x0, 0xa6,0x39,0x79,0xc3,0x82,0x5, 0xa3,0xe8,0x40,0x3c,0x68,0x3c,0xe3, +0xe0,0x1, 0xdf,0x82,0xf0,0x0, 0xc4,0x1, 0x3c,0x74,0xe8,0x40,0x3c,0xe8,0xe3,0xff, +0xc4,0xff,0x1, 0xf1,0x9f,0x7, 0x67,0x81,0xc7,0x4, 0xe0,0x8, 0x37,0x5, 0x34,0x22, +0x3c,0x1f,0xf0,0x1a,0xa3,0x28,0xe0,0x41,0x3f,0xe, 0x15,0x81,0xe0,0xe, 0x35,0xbe, +0xf3,0xe, 0x3b,0x5e,0x39,0x79,0xe0,0x1a,0xbf,0x28,0xc3,0x82,0x2, 0xdf,0x17,0x80, +0x3f,0x6f,0xe3,0xff,0xc7,0x7f,0xe8,0x40,0x3f,0x7a,0xe0,0x1, 0x1, 0x68,0xc7,0x81, +0xe2,0x0, 0xcf,0x86,0x1, 0xf6,0xe8,0x1, 0xa7,0xed,0x14,0x1, 0xe0,0x40,0xcf,0x80, +0xe8,0x1, 0xbf,0xed,0xdd,0xe0,0xef,0xfa,0xd6,0xbb,0x14,0x1, 0xef,0xfa,0xd7,0x9, +0xf0,0x0, 0x12,0x80,0xf0,0x0, 0x25,0x30,0xe8,0x40,0x3f,0x65,0xe0,0x0, 0x15,0x0, +0xf0,0x0, 0x27,0x1f,0xe0,0xc, 0x17,0xd2,0x3f,0x9e,0xe0,0x9, 0x37,0x21,0x37,0xa1, +0xe8,0xf, 0x3f,0x9b,0xe8,0x9, 0x3c,0x99,0x9c,0xf, 0xf0,0x0, 0x9b,0x9, 0xc5,0x1, +0xf0,0x40,0x3b,0x78,0xe8,0xe, 0x3f,0x1c,0xe3,0xff,0xc5,0x7f,0xe3,0xff,0xc7,0x7f, +0x5, 0x84,0x9f,0x8f,0xe0,0x0, 0xb7,0x89,0xe8,0x40,0x3d,0x7e,0x1, 0xe4,0xf2,0x0, +0xca,0x85,0xe0,0x1, 0x5, 0x95,0xf0,0x0, 0xc2,0x81,0xf3,0xff,0xc2,0xff,0xf8,0x40, +0x3a,0xfa,0x1, 0xd3,0xf0,0x40,0x3e,0x75,0xf0,0x40,0x3b,0x65,0xe7,0xfe,0x5, 0xe4, +0xe8,0x40,0x3f,0x66,0xe0,0x0, 0x15,0x0, 0xf0,0x0, 0x27,0x1e,0xe0,0xc, 0x17,0xd2, +0x3f,0x9e,0xe0,0x9, 0x37,0x21,0x37,0xa1,0xe8,0xf, 0x3f,0x9b,0xe8,0x9, 0x3c,0x99, +0x9c,0xf, 0xf0,0x0, 0x9b,0x89,0xc5,0x1, 0xf0,0x40,0x3b,0xf8,0xe8,0xe, 0x3f,0x1c, +0xe3,0xff,0xc5,0x7f,0xe3,0xff,0xc7,0x7f,0x5, 0x83,0x9f,0x8f,0xb7,0x89,0xe8,0x40, +0x3d,0x7e,0x1, 0xe5,0xf2,0x0, 0xcb,0x5, 0x2, 0x94,0xe8,0xf, 0x3b,0x16,0xe3,0xff, +0xc7,0xff,0xe0,0xc, 0x17,0x52,0x3f,0x1f,0x37,0x21,0x37,0xa1,0xe8,0xe, 0x3f,0x1b, +0xe8,0xf, 0x3f,0x99,0x9d,0xe, 0x9c,0x8f,0x3c,0xfa,0x5, 0x83,0x9f,0xe, 0xb7,0xf, +0xf0,0x0, 0xc3,0x1, 0xf3,0xff,0xc3,0x7f,0xf8,0x40,0x3b,0x7c,0x1, 0xc2,0x66,0x82, +0x17,0x81,0x3e,0xf5,0x3f,0x95,0xc2,0x1, 0xe3,0xff,0xc7,0xff,0xe7,0xfe,0x2, 0xa5, +0xf0,0x0, 0x67,0x6, 0xf0,0x0, 0x66,0x7, 0xf8,0x40,0x3e,0xe9,0xe0,0x2, 0x1f,0x8a, +0xe8,0x80,0x97,0x1e,0x9e,0x8f,0x3f,0x7d,0x3, 0x2, 0xb7,0xf, 0xf8,0x40,0x3f,0x7c, +0xc7,0x82,0x1, 0xf7,0xe0,0x1, 0x1f,0xe0,0x17,0x0, 0xe0,0x1, 0x1e,0xee,0xe0,0x2, +0xaf,0xf, 0x14,0x0, 0xe0,0x1, 0xaf,0x7f,0xf0,0x0, 0xbe,0x8d,0xdd,0x3c,0xe0,0x2, +0x1f,0xd, 0x8c,0xe, 0xef,0xfa,0xd4,0x9b,0xe0,0x2, 0x1f,0x3a,0x17,0x87,0xaf,0x8e, +0xe0,0x2, 0x1f,0x3b,0xaf,0x8e,0xc0,0x1c,0xf8,0x0, 0xf, 0x28,0xb, 0xa1,0xe7,0x52, +0x0, 0x94,0x8e,0x9f,0xe0,0x2, 0x1f,0x3d,0x89,0xbf,0x7e,0x85,0x99,0x6f,0x8e,0xf, +0x8e,0xaf,0x7f,0x3, 0x3f,0xe3,0x67,0x5, 0xe7,0xfb,0x0, 0x82,0x67,0x85,0xe0,0xc, +0x17,0x52,0xe8,0xf, 0x3f,0x95,0xe3,0xff,0xc7,0xff,0x3f,0x1f,0x37,0x21,0x37,0xa1, +0xe8,0xe, 0x3f,0x1b,0xe8,0xf, 0x3f,0x99,0x9d,0xe, 0x9c,0x8f,0x3c,0xfa,0xe7,0xfe, +0x5, 0xdc,0x9f,0xe, 0xb7,0xf, 0xe7,0xfe,0x0, 0xd8,0x17,0x1e,0xf2,0x0, 0xcd,0x2, +0x3f,0x2f,0x16,0x81,0xe0,0xe, 0x36,0xbe,0x2, 0x8a,0x65,0x81,0xe0,0x1a,0xa5,0x2b, +0xe3,0xe, 0x3d,0x5e,0xe0,0x1a,0xbf,0x2b,0xe7,0xfe,0x0, 0x8b,0x66,0x81,0x17,0x1d, +0xe0,0x1d,0xa5,0x3d,0x3f,0x2f,0x15,0x81,0xe0,0xe, 0x35,0xbe,0xe3,0xe, 0x3d,0x5e, +0xe0,0x1d,0xbf,0x3d,0xe7,0xfd,0x0, 0xfd,0xe0,0x2, 0x1f,0xf3,0x16,0x80,0xa6,0xf, +0xe0,0x1, 0xa7,0x6c,0x37,0x4d,0xe2,0x0, 0xc7,0x1, 0x24,0x85,0xc4,0xff,0xe0,0x7, +0x16,0xff,0x3e,0xd9,0xe0,0x1, 0xa5,0xec,0xe7,0xbf,0x17,0xff,0x3d,0xdf,0xe0,0x1, +0xbd,0xec,0xe4,0x7, 0xc4,0x30,0xe0,0x0, 0x1d,0xb1,0xe4,0xd, 0x36,0xa0,0xa5,0x8b, +0x37,0x2d,0x3c,0x1b,0xa5,0x8, 0xe0,0x3, 0x1d,0x95,0x3d,0xda,0x3e,0xcb,0xbe,0x88, +0xe0,0x1, 0xa6,0xec,0x3f,0xdd,0x3f,0xce,0xe0,0x1, 0xbf,0xec,0x38,0x82,0xe0,0x2, +0x1f,0xf3,0xe0,0x0, 0x1d,0xb1,0xa7,0x8f,0xe7,0xbf,0x16,0x7f,0xe0,0x1, 0xa7,0x6f, +0xe0,0x1, 0xa6,0xef,0xa5,0x8b,0xe4,0x7, 0xc4,0x30,0x3e,0xdc,0xe0,0x1, 0xbe,0xef, +0x3c,0x1b,0xa5,0x88,0xe2,0x0, 0xc4,0x8f,0xe0,0xd, 0x34,0xab,0xe7,0xf, 0x14,0xff, +0x3c,0xdb,0x3c,0xcd,0xbc,0x88,0xe2,0x40,0xc7,0x0, 0xe0,0x1, 0xa6,0xef,0x3e,0x5d, +0x3f,0x4c,0xe0,0x1, 0xbf,0x6f,0x38,0x82,0xe0,0x2, 0x1f,0xf3,0xe0,0x0, 0x1d,0xb1, +0xa7,0x8f,0xe7,0xbf,0x16,0x7f,0xe0,0x1, 0xa7,0x6f,0xe0,0x1, 0xa6,0xef,0xa5,0x8b, +0xe4,0x7, 0xc4,0x30,0x3e,0xdc,0xe0,0x1, 0xbe,0xef,0x3c,0x1b,0xa5,0x88,0xe2,0x0, +0xc4,0x81,0xe0,0xd, 0x34,0xaa,0xe7,0xf7,0x14,0xff,0x3c,0xdb,0x3c,0xcd,0xbc,0x88, +0xe2,0x40,0xc7,0x0, 0xe0,0x1, 0xa6,0xef,0x3e,0x5d,0x3f,0x4c,0xe0,0x1, 0xbf,0x6f, +0x38,0x82,0xe0,0x2, 0x1f,0xf3,0xe0,0x0, 0x1d,0xb1,0xa7,0x8f,0xe7,0xbf,0x16,0x7f, +0xe0,0x1, 0xa7,0x6f,0xe0,0x1, 0xa6,0xef,0xa5,0x8b,0xe4,0x7, 0xc4,0x30,0x3e,0xdc, +0xe0,0x1, 0xbe,0xef,0x3c,0x1b,0xe2,0x0, 0xc4,0x81,0xa5,0x88,0xe4,0xd, 0x34,0xac, +0xe0,0x3, 0x1c,0x96,0xe2,0x0, 0xc5,0x3, 0x3c,0xdb,0x3c,0xcd,0xbc,0x88,0xe4,0xd, +0x35,0x2a,0xa4,0x88,0xe0,0x3, 0x1d,0x97,0xe2,0x40,0xc7,0x0, 0xe0,0xa, 0x3c,0xdb, +0x3d,0x4d,0xbd,0x8, 0xe0,0x1, 0xa6,0xef,0x3e,0x5d,0x3f,0x4c,0xe0,0x1, 0xbf,0x6f, +0x38,0x82,0xe0,0x2, 0x1f,0xf3,0xe0,0x0, 0x1d,0xb1,0xa7,0x8f,0xe7,0xbf,0x16,0xff, +0xe0,0x1, 0xa7,0x6f,0xe0,0x1, 0xa6,0x6f,0xa5,0x8b,0xe4,0x7, 0xc4,0x30,0x3e,0x5d, +0xe0,0x1, 0xbe,0x6f,0x3c,0x1b,0xa5,0xa8,0xe7,0xf0,0x16,0x0, 0x3e,0x5b,0xe2,0xf, +0xc4,0xff,0x3c,0xcc,0xbc,0xa8,0xe2,0x40,0xc7,0x0, 0xe0,0x1, 0xa6,0x6f,0x3e,0xdc, +0x3f,0x4d,0xe0,0x1, 0xbf,0x6f,0x38,0x82,0xe0,0x2, 0x1f,0xf3,0xe0,0x0, 0x1d,0xb1, +0xa7,0x8f,0xe7,0xbf,0x16,0x7f,0xe0,0x1, 0xa7,0x6f,0xe0,0x1, 0xa6,0xef,0xa5,0x8b, +0xe4,0x7, 0xc4,0x30,0x3e,0xdc,0xe0,0x1, 0xbe,0xef,0x3c,0x1b,0xe2,0xf, 0xc4,0xff, +0xa5,0xb8,0xe4,0xd, 0x34,0xa0,0xe0,0x3, 0x1c,0x98,0xe2,0x40,0xc7,0x0, 0x3c,0xdb, +0x3c,0xcd,0xbc,0xb8,0xe0,0x1, 0xa6,0xef,0x3e,0x5d,0x3f,0x4c,0xe0,0x1, 0xbf,0x6f, +0x38,0x82,0xe0,0x2, 0x1f,0xf3,0xe0,0x0, 0x1d,0xb1,0xa7,0x8f,0xe7,0xbf,0x16,0x7f, +0xe0,0x1, 0xa7,0x6f,0xe0,0x1, 0xa6,0xef,0xa5,0x8b,0xe4,0x7, 0xc4,0x30,0x3e,0xdc, +0xe0,0x1, 0xbe,0xef,0x3c,0x1b,0xa5,0xe8,0xe2,0x0, 0xc4,0x87,0xe0,0xd, 0x34,0xa6, +0xe7,0xfc,0x14,0xbf,0x3c,0xdb,0x3c,0xcd,0xbc,0xe8,0xe2,0x0, 0xc5,0xf, 0xa4,0xe8, +0x15,0xc3,0xe0,0xd, 0x35,0x22,0xe0,0xa, 0x3c,0xdb,0x3d,0x4d,0xbd,0x68,0xe2,0x40, +0xc7,0x0, 0xe0,0x1, 0xa6,0xef,0x3e,0x5d,0x3f,0x4c,0xe0,0x1, 0xbf,0x6f,0x38,0x82, +0xe0,0x2, 0x1f,0xf3,0xe2,0x1f,0xc4,0x7f,0xa7,0xf, 0xe7,0xe0,0x17,0x80,0xe0,0x4, +0xa6,0x8e,0x3f,0xdd,0x3c,0x4f,0xe0,0x4, 0xbc,0xe, 0x38,0x82,0xe0,0x2, 0x1f,0xf3, +0xe2,0x0, 0xc4,0x1, 0xa7,0x8f,0x17,0x7b,0xe0,0x1, 0xa6,0x6f,0xe0,0xd, 0x34,0x22, +0x3f,0x5c,0x3f,0x4d,0xe0,0x1, 0xbf,0x6f,0x17,0x7d,0xe0,0x1, 0xa6,0xef,0x34,0x21, +0x3f,0x5d,0x3c,0x4e,0xe0,0x1, 0xbc,0x6f,0xe2,0x0, 0xc4,0x8f,0xe0,0x2, 0xa6,0x3f, +0xe7,0xfe,0x17,0xf, 0xe0,0xd, 0x34,0xa4,0x3f,0x5c,0x3f,0x4d,0xe0,0x2, 0xbf,0x3f, +0x17,0x70,0xe0,0x2, 0xa6,0xbf,0x3f,0x5d,0x3c,0xce,0xe0,0x2, 0xbc,0xbf,0x38,0x82, +0xe0,0x2, 0x1f,0xf3,0xe2,0x0, 0xc4,0x1, 0xa7,0xf, 0xe7,0xdf,0x16,0xff,0xe0,0x1, +0xa6,0x6e,0xe0,0xf, 0x34,0x2c,0xe0,0x8, 0x3e,0x5d,0x3c,0x4f,0xe0,0x1, 0xbc,0x6e, +0xe7,0xf0,0x17,0x80,0xe0,0x2, 0xa6,0xce,0xe2,0xf, 0xc4,0xff,0x3f,0xdd,0x3c,0xcf, +0xe0,0x2, 0xbc,0xce,0x38,0x82,0xe0,0x2, 0x1f,0xf3,0xe2,0x0, 0xc4,0x1, 0xa7,0xf, +0xe7,0xef,0x16,0xff,0xe0,0x1, 0xa6,0x6e,0xe0,0xf, 0x34,0x2b,0xe0,0x8, 0x3e,0x5d, +0x3c,0x4f,0xe0,0x1, 0xbc,0x6e,0xe0,0x4, 0xb4,0xde,0x38,0x82,0xe0,0x2, 0x1f,0xf3, +0xe7,0xe0,0x17,0x0, 0xa7,0x8f,0xe2,0x1f,0xc4,0x7f,0xe0,0x3, 0xa6,0x8f,0x3f,0x5d, +0x3c,0x4e,0xe0,0x3, 0xbc,0xf, 0xe0,0x6, 0xb4,0xbf,0xe0,0x6, 0xb5,0x5f,0x38,0x82, +0xe0,0x2, 0x1f,0xf3,0xe7,0xe0,0x17,0x0, 0xa7,0x8f,0xe2,0x1f,0xc4,0x7f,0xe0,0x3, +0xa6,0xbf,0x3f,0x5d,0x3c,0x4e,0xe0,0x3, 0xbc,0x3f,0xe0,0x7, 0xb4,0x9f,0xe0,0x7, +0xb5,0x3f,0x38,0x82,0xe0,0x2, 0x1f,0xf3,0xe7,0xbf,0x15,0x7f,0xa7,0x8f,0xe0,0xb, +0x34,0x46,0xe0,0x1, 0xa6,0xef,0xe0,0x1, 0xa7,0x6f,0x35,0xa2,0x3f,0x5a,0xe0,0x1, +0xbf,0x6f,0x17,0x73,0xe0,0x2, 0xa6,0x6f,0xe2,0x40,0xc6,0x80,0x3e,0x5e,0x3e,0x4b, +0xe0,0x2, 0xbe,0x6f,0xe0,0xb, 0x34,0x26,0xe0,0x2, 0xa6,0x6f,0xe7,0xe7,0x17,0x7f, +0xe2,0x18,0xc5,0x80,0x3e,0x5e,0x3e,0x4b,0xe0,0x2, 0xbe,0x6f,0x34,0x42,0xe0,0x2, +0xa5,0xef,0x17,0x3, 0x16,0x7c,0x3f,0x58,0xe0,0x8, 0x3d,0xdc,0x3c,0x4e,0xe0,0x2, +0xbc,0x6f,0xe0,0x1, 0xa7,0x6f,0x3f,0x5a,0x3f,0x4d,0xe0,0x1, 0xbf,0x6f,0x38,0x82, +0xe0,0x2, 0x1f,0xf3,0xe0,0x0, 0x1f,0x31,0xa6,0x8f,0xe7,0xbf,0x15,0xff,0xe0,0x1, +0xa6,0x6d,0xe0,0x1, 0xa7,0xed,0xa7,0xe, 0xe4,0x7, 0xc4,0x30,0x3f,0xdb,0xe0,0x1, +0xbf,0xed,0x3c,0x1e,0xa5,0x28,0xe0,0xe, 0x34,0xc2,0xe0,0x3, 0x1f,0x99,0xe2,0x0, +0xc7,0x3, 0xe4,0xe, 0x37,0x2d,0x3f,0xda,0x3f,0xce,0xbf,0xa8,0xe0,0xe, 0x34,0xc6, +0xa5,0x28,0xe0,0x3, 0x1f,0x9a,0xe4,0xe, 0x37,0x2b,0x3f,0xda,0x3f,0xce,0xbf,0xa8, +0x34,0xc4,0xa5,0x28,0xe0,0x3, 0x1f,0x1b,0xe2,0x0, 0xc4,0x83,0xe4,0xf, 0x34,0xa9, +0xe0,0x9, 0x3d,0x5e,0x3c,0xcf,0xbc,0xa8,0xe2,0x40,0xc6,0x0, 0xe0,0x1, 0xa7,0xed, +0x3d,0xdf,0x3e,0x4b,0xe0,0x1, 0xbe,0x6d,0x38,0x82,0xe0,0x2, 0x1f,0xf3,0xe0,0x0, +0x1f,0x31,0xa6,0x8f,0xe7,0xbf,0x15,0xff,0xe0,0x1, 0xa6,0x6d,0xe0,0x1, 0xa7,0xed, +0xa7,0xe, 0xe4,0x7, 0xc4,0x30,0x3f,0xdb,0xe0,0x1, 0xbf,0xed,0x3c,0x1e,0xa5,0x28, +0xe0,0xe, 0x34,0xc2,0xe0,0x3, 0x1f,0x9c,0xe2,0x0, 0xc7,0x3, 0xe4,0xe, 0x37,0x27, +0x3f,0xda,0x3f,0xce,0xbf,0xa8,0xe0,0xe, 0x34,0xc6,0xa5,0x28,0xe0,0x3, 0x1f,0x9d, +0xe4,0xe, 0x37,0x25,0x3f,0xda,0x3f,0xce,0xbf,0xa8,0x34,0xc4,0xa5,0x28,0xe0,0x3, +0x1f,0x1e,0xe2,0x0, 0xc4,0x83,0xe4,0xf, 0x34,0xa3,0xe0,0x9, 0x3d,0x5e,0x3c,0xcf, +0xbc,0xa8,0xe2,0x40,0xc6,0x0, 0xe0,0x1, 0xa7,0xed,0x3d,0xdf,0x3e,0x4b,0xe0,0x1, +0xbe,0x6d,0x38,0x82,0xe0,0x2, 0x1f,0xf3,0xe2,0x0, 0xc4,0x1, 0xa6,0x8f,0x17,0x77, +0xe0,0x1, 0xa6,0x6d,0xe0,0xf, 0x34,0x23,0xe0,0x8, 0x3e,0x5e,0x3c,0x4f,0xe0,0x1, +0xbc,0x6d,0x38,0x82,0xe0,0x2, 0x1f,0xf3,0xe2,0x0, 0xc4,0x1, 0xa7,0xf, 0xe7,0xfb, +0x16,0xff,0xe0,0x1, 0xa6,0x6e,0xe0,0xf, 0x34,0x29,0xe0,0x8, 0x3e,0x5d,0x3c,0x4f, +0xe0,0x1, 0xbc,0x6e,0xe2,0x0, 0xc4,0x81,0xe0,0x1, 0xa6,0x6e,0xe7,0xf7,0x16,0xff, +0xe0,0xf, 0x34,0xaa,0xe0,0x9, 0x3e,0x5d,0x3c,0xcf,0xe0,0x1, 0xbc,0xee,0x38,0x82, +0xe0,0x2, 0x1f,0xf3,0xa7,0xf, 0xe7,0xf8,0x17,0x80,0xe0,0x1, 0xa6,0xfe,0x3f,0xdd, +0x3c,0x4f,0xe0,0x1, 0xbc,0x7e,0x38,0x82,0xe0,0x2, 0x1f,0xf3,0xe7,0xe0,0x17,0x0, +0xa7,0x8f,0xe2,0x1f,0xc4,0x7f,0xe0,0x2, 0xa6,0x8f,0xe2,0x1f,0xc4,0xff,0x3e,0xde, +0x3c,0x4d,0xe0,0x2, 0xbc,0xf, 0xe0,0x2, 0xa6,0x9f,0x3f,0x5d,0x3f,0x49,0xe0,0x2, +0xbf,0x1f,0x38,0x82,0xe0,0x2, 0x1f,0xf3,0xa6,0x8f,0xa7,0x3d,0x37,0x4c,0xe2,0x0, +0xc7,0x1, 0xe0,0x61,0x3e,0x2, 0xe7,0xfe,0x17,0xff,0x3f,0xdc,0xe0,0x61,0x3f,0x92, +0xa7,0x8d,0x37,0xcc,0xe2,0x0, 0xc7,0x81,0x27,0x85,0xa7,0x9d,0xe0,0x20,0xcf,0x80, +0xbf,0x9d,0xe7,0xdf,0x17,0xff,0xa6,0x3d,0x37,0x2c,0x3f,0xdc,0x3f,0xce,0xbf,0xbd, +0xe0,0x61,0x3f,0x82,0xe0,0x1, 0xcf,0x80,0xe0,0x61,0x3f,0x92,0x38,0x82,0xe0,0x61, +0x3f,0x2, 0xe7,0xfe,0x17,0xff,0x3f,0xde,0xe0,0x61,0x3f,0x92,0xe0,0x2, 0x1f,0xf3, +0xe2,0x0, 0xc4,0x1, 0xa6,0x8f,0xe7,0xdf,0x17,0x7f,0xa6,0x3d,0xe0,0xf, 0x34,0x2c, +0xe0,0x8, 0x3e,0x5e,0x3c,0x4f,0xbc,0x3d,0xe0,0x61,0x3f,0x82,0xe0,0x1, 0xcf,0x80, +0xe0,0x61,0x3f,0x92,0x38,0x82,0xe0,0x2, 0x1f,0xf3,0xf0,0x3, 0x1b,0x1f,0xf0,0x0, +0xa2,0xf, 0xe7,0xbf,0x17,0xff,0xf8,0x1, 0xa1,0xe4,0xe8,0x1, 0xa7,0x64,0xf0,0x13, +0x31,0xcd,0x3f,0xde,0xe8,0x1, 0xbf,0xe4,0xf2,0x0, 0xc1,0x81,0x87,0x88,0xe8,0x1, +0xa6,0xd4,0xe2,0x0, 0xc7,0x87,0xe0,0xe, 0x37,0xac,0xe7,0x1f,0x17,0xff,0x3f,0xdd, +0x3f,0xce,0xe0,0x0, 0x1f,0x31,0xf0,0x3, 0x1b,0xa0,0xf0,0x0, 0xa2,0x8e,0xe0,0x3, +0x1c,0xa1,0xe8,0x1, 0xbf,0xd4,0xf0,0x0, 0x10,0x80,0x15,0x78,0xe7,0xfe,0x15,0x87, +0xe7,0xf7,0x16,0x7f,0xf0,0x0, 0x11,0x2, 0xf8,0x12,0x39,0x11,0xf0,0x10,0x30,0xa2, +0xf0,0x12,0x31,0x21,0xf0,0x12,0x39,0x18,0xf8,0x10,0x38,0x16,0xe8,0x0, 0xa7,0x0, +0xe8,0x0, 0x8f,0x82,0x3f,0x5a,0x37,0xc5,0x3f,0x4f,0xe8,0x0, 0xbf,0x0, 0xe4,0x7, +0xc7,0xb0,0xe8,0x0, 0x86,0x82,0xe8,0x0, 0xa7,0x0, 0xe2,0x0, 0xc6,0x9f,0x36,0xa3, +0x3f,0x5b,0x3f,0x4d,0xe8,0x0, 0xbf,0x0, 0xe8,0xf, 0x3f,0x95,0xe8,0x0, 0x8e,0x92, +0xa7,0xf, 0x36,0xc6,0xe2,0x0, 0xc6,0x81,0xe4,0xd, 0x36,0xac,0xe8,0xe, 0x3f,0x57, +0x3f,0x4d,0xbf,0xf, 0xf0,0x0, 0xc0,0x81,0xe8,0x0, 0x8e,0x92,0xa7,0xf, 0x36,0xc3, +0xe2,0x0, 0xc6,0x83,0xe4,0xd, 0x36,0xaa,0x3f,0x59,0x3f,0x4d,0xbf,0xf, 0xf2,0x1, +0xc0,0xff,0xe8,0x0, 0x8e,0x92,0xa7,0xf, 0x36,0xc7,0x36,0xaa,0x3f,0x5c,0x3f,0x4d, +0xbf,0xf, 0x8f,0x88,0xe8,0x40,0x3f,0xf1,0xe7,0xff,0x3, 0xb6,0xe8,0x1, 0xa7,0x64, +0xe7,0xbf,0x17,0xff,0xf0,0x13,0x31,0xad,0x3f,0xde,0xf0,0x13,0x39,0xcf,0xf8,0x1, +0xb9,0xe4,0x38,0x82,0xe0,0x0, 0x1f,0x94,0x17,0x1, 0xaf,0xf, 0xe0,0x2, 0x1f,0xf3, +0xe0,0x1, 0x1e,0xfa,0xa7,0x8f,0xaf,0xd, 0x17,0x7d,0xa6,0xdf,0x3f,0x5d,0xbf,0x5f, +0xa7,0x5f,0xcf,0x4, 0xbf,0x5f,0x38,0x82,0xe0,0x0, 0x1f,0x14,0x17,0x81,0xaf,0x8e, +0xe0,0x1, 0x1f,0x7a,0xaf,0x8e,0xe0,0x0, 0x1f,0x10,0xaf,0x8e,0x38,0x82,0x8, 0xb2, +0x39,0x68,0x15,0x4, 0xe1,0xf, 0x14,0x0, 0x3c,0xe2,0xd0,0xac,0xa7,0x82,0xa7,0x2, +0xa4,0x2, 0x37,0xc5,0xe4,0xe, 0x37,0x45,0xe2,0x0, 0xc7,0x7, 0xea,0x2, 0xc4,0x0, +0xe2,0x0, 0xc7,0x88,0x3f,0xce,0xe4,0x8, 0x34,0x48,0x3c,0x1f,0x9, 0x61,0xe0,0x2, +0x1e,0xf3,0xe0,0x2, 0x1e,0x29,0xa6,0x8d,0xa7,0xc, 0xa7,0x8c,0xa6,0xcd,0xe2,0x0, +0xc6,0x81,0x26,0xab,0x37,0x48,0xe4,0xf, 0x37,0xc5,0xe2,0x0, 0xc7,0x1, 0xa6,0x8c, +0x37,0x23,0xe2,0x0, 0xc7,0x87,0x3f,0xce,0xea,0x2, 0xcf,0x0, 0x3f,0x5d,0x16,0x85, +0xe0,0x2f,0x3f,0x9d,0xe4,0xe, 0x37,0x48,0x27,0x98,0x27,0x17,0x8, 0xb4,0x11,0x0, +0xe0,0x23,0x3c,0x2, 0x3a,0x69,0x14,0x9, 0x3c,0xe3,0xd0,0x55,0x14,0x9, 0xd0,0x35, +0x39,0xf8,0x14,0x5, 0x1, 0xc, 0xc1,0x1, 0xef,0xfb,0xd1,0xf6,0xe3,0xff,0xc1,0x7f, +0x3a,0x72,0x3, 0xf5,0x14,0x0, 0xa, 0x61,0x14,0x0, 0x38,0x82,0x14,0x1, 0xa, 0x61, +0xe0,0x0, 0x1f,0x94,0x8c,0xf, 0x8f,0xf, 0x27,0x1f,0xe0,0x2, 0x1f,0x73,0x16,0x80, +0xa5,0x8e,0xe0,0x0, 0x1f,0x10,0xae,0x8e,0xa6,0x5b,0xe0,0x1, 0x1f,0x31,0xce,0x1, +0xa7,0xe, 0xbe,0x5b,0xe0,0x1, 0xa6,0x6e,0xe0,0x4, 0xce,0x0, 0xe0,0x1, 0xbe,0x6e, +0xe7,0xfb,0x16,0x7f,0xe0,0x1, 0xa5,0xee,0x3e,0x5b,0xe0,0x1, 0xbe,0x6e,0xae,0x8f, +0xe0,0x1, 0x1f,0xfa,0xae,0x8f,0x38,0x82,0x8, 0xb3,0xe0,0x2, 0x1f,0xf3,0x39,0xe8, +0xa7,0x8f,0x14,0x0, 0xa1,0x3f,0xde,0xc4,0xe0,0x1, 0x1f,0xde,0xe0,0x2, 0x1f,0x6e, +0xa7,0x8f,0xa6,0x8e,0xa7,0x1f,0x31,0x4c,0xcf,0x10,0xbf,0x1f,0xe2,0x0, 0xc1,0x1, +0xb1,0xdd,0x3c,0x62,0x89,0x7d,0xa6,0x9f,0x17,0x6f,0x3f,0x5d,0xbf,0x1f,0xde,0xb0, +0x3c,0x62,0x9, 0xe1,0x8, 0xb4,0xe0,0x2, 0x1f,0xf3,0x3a,0x68,0xa7,0x8f,0x14,0x0, +0xa1,0x3f,0x39,0xe9,0xde,0xa5,0xe0,0x1, 0x1f,0xde,0xe0,0x2, 0x1f,0x6e,0xa7,0x8f, +0xa6,0x8e,0xa7,0x1f,0x31,0x4c,0xcf,0x10,0xbf,0x1f,0xe2,0x0, 0xc1,0x1, 0xb2,0x5d, +0x17,0x6f,0xa9,0xbd,0x3c,0x62,0xa6,0x9f,0x3f,0x5d,0xbf,0x1f,0xa, 0x21,0xe7,0xfd, +0x0, 0x90,0x8, 0xb5,0xe0,0x2, 0x1f,0xf3,0x39,0x68,0xa7,0x8f,0x14,0x0, 0xa7,0xbf, +0x12,0x81,0x37,0xcc,0x3a,0xdf,0x39,0xe9,0x3a,0x6a,0xde,0x82,0xe0,0x1, 0x1f,0xde, +0xa6,0x8f,0xa7,0x9d,0xcf,0x90,0xbf,0x9d,0x22,0x13,0xe0,0x2, 0x1f,0xee,0xe0,0xa, +0x39,0x14,0x14,0xff,0xa7,0x8f,0x3c,0x93,0xe3,0xff,0xc5,0x7f,0xb1,0x5f,0xc1,0x1, +0x8f,0x7f,0xe3,0xff,0xc1,0x7f,0x39,0x7a,0xe0,0x80,0xaf,0x19,0x1, 0xf8,0xa7,0x1d, +0x17,0xef,0x3f,0xde,0x3c,0x65,0xbf,0x9d,0xa, 0xa1,0xe7,0xfc,0x0, 0xe2,0x8, 0xb5, +0xe0,0x2, 0x1f,0xf3,0x39,0x68,0xa7,0x8f,0x14,0x0, 0xa7,0xbf,0x12,0x81,0x37,0xcc, +0x3a,0xdf,0x39,0xe9,0x3a,0x6a,0xde,0x54,0xe0,0x1, 0x1f,0xde,0xa6,0x8f,0xa7,0x9d, +0xcf,0x90,0xbf,0x9d,0x22,0x15,0xe0,0x2, 0x1f,0xee,0xe0,0xa, 0x39,0x14,0x14,0xff, +0xa7,0x8f,0x3c,0x93,0xe3,0xff,0xc5,0x7f,0x17,0x1, 0x3f,0x12,0xb1,0x5f,0x39,0x6e, +0xe3,0xff,0xc1,0x7f,0xe0,0x80,0x87,0x19,0x39,0x7a,0xaf,0x3f,0x1, 0xf6,0xa7,0x1d, +0x17,0xef,0x3f,0xde,0x3c,0x65,0xbf,0x9d,0xa, 0xa1,0xe7,0xfc,0x0, 0xb2,0x0, 0x0, +0xe0,0x1, 0x1f,0xde,0xe0,0x2, 0x1f,0x42,0xa7,0x8f,0xa7,0xe, 0xa6,0x9f,0x34,0x28, +0xe0,0x40,0xce,0x80,0xbe,0x9f,0x16,0xa1,0xb6,0xbe,0x3c,0x98,0xe0,0x6, 0xb4,0xbe, +0xe0,0x2, 0xb5,0x5e,0xe7,0xbf,0x17,0x7f,0xa6,0x9f,0x3f,0x5d,0xbf,0x1f,0x38,0x82, +0xe0,0x1, 0x1f,0xde,0xe0,0x2, 0x1f,0x42,0xa7,0x8f,0xa7,0xe, 0xa6,0x9f,0x34,0x28, +0xe0,0x40,0xce,0x80,0xbe,0x9f,0x3c,0x98,0x35,0x28,0xe0,0x7, 0xb4,0xfe,0x3d,0x9a, +0xe0,0x8, 0xb5,0x9e,0xe0,0x7, 0xb6,0x5e,0xe7,0xbf,0x17,0x7f,0xa6,0x9f,0x3f,0x5d, +0xbf,0x1f,0x38,0x82,0xe0,0x2, 0x1f,0xc2,0xe0,0x0, 0x1d,0x92,0xa7,0xf, 0x8e,0xb, +0x9f,0x9e,0x16,0x80,0xcf,0x81,0x3c,0x4f,0xb4,0x1e,0x0, 0x85,0x9f,0x9e,0xe2,0x0, +0xc7,0x88,0x2f,0x8e,0xe0,0x7, 0x97,0x9e,0xe2,0x0, 0xcf,0x80,0x3, 0x78,0x2e,0x8e, +0x9f,0x9e,0xe0,0x80,0xcf,0x80,0xb7,0x9e,0x17,0x80,0xb7,0x9e,0x38,0x82,0x9f,0x9e, +0x16,0x1, 0xcf,0x84,0xb7,0x9e,0x3e,0xec,0x0, 0xee,0xae,0xb, 0x0, 0xf2,0x8, 0xb2, +0xe0,0x1, 0x1f,0xde,0x16,0x0, 0xa1,0xf, 0xe0,0x2, 0x1f,0xc2,0xa6,0x92,0xa7,0xf, +0xe0,0x40,0xce,0x80,0xbe,0x92,0x3f,0xe8,0x96,0xd8,0xb6,0xde,0x96,0xf8,0xb6,0xfe, +0xe0,0x1, 0x96,0x98,0xe0,0x1, 0xb6,0x9e,0xe0,0x0, 0x1e,0x92,0xae,0xd, 0x8e,0x88, +0x8e,0x18,0x36,0xa8,0x3e,0x9c,0xe0,0x1, 0xb6,0xde,0x96,0xa8,0xe0,0x1, 0x9c,0x28, +0xe0,0x9, 0xb6,0xde,0x8e,0xaf,0xe0,0x1, 0xb6,0xfe,0x87,0xbf,0xe2,0x0, 0xc7,0x81, +0xe4,0xf, 0x37,0xa8,0xe4,0xf, 0x37,0xc0,0xb7,0x9e,0xdf,0xad,0xa7,0x12,0xe7,0xbf, +0x17,0xff,0x3f,0xde,0xbf,0x92,0x9, 0x61,0x8, 0xb2,0xe0,0x1, 0x1f,0xde,0x3f,0x68, +0xa1,0xf, 0xe0,0x2, 0x1f,0xc2,0xa6,0x92,0xa7,0x8f,0xe0,0x40,0xce,0x80,0xbe,0x92, +0xe0,0x0, 0x14,0x40,0x96,0xde,0xb6,0xdf,0xe0,0x1, 0x96,0x9e,0xe0,0x1, 0xb6,0x9f, +0x8e,0x8e,0x8e,0x1e,0x36,0xa8,0x3e,0x9c,0xe0,0x1, 0xb6,0xdf,0x96,0xae,0xe0,0x9, +0xb6,0xdf,0x8f,0x2e,0xe0,0x1, 0xb7,0x7f,0x17,0x0, 0xe0,0x1, 0xb4,0xbf,0xb7,0x1f, +0xdf,0x82,0xa7,0x12,0xe7,0xbf,0x17,0xff,0x3f,0xde,0xbf,0x92,0x9, 0x61,0x8, 0xb4, +0xe0,0x1, 0x1f,0xde,0x39,0xe9,0xa2,0xf, 0xe0,0x2, 0x1f,0xc2,0xa7,0x14,0xa1,0xf, +0xe0,0x40,0xcf,0x0, 0xbf,0x14,0x3f,0xe8,0xa7,0x14,0xe0,0x1, 0x14,0x20,0xe0,0x40, +0xcf,0x0, 0xbf,0x14,0x97,0x3f,0xb7,0x52,0x97,0x7f,0xb7,0x72,0x97,0x5f,0xe0,0x1, +0xb7,0x12,0x8f,0x1f,0x8e,0x8f,0x37,0x28,0x3f,0x1d,0xe0,0x1, 0xb7,0x52,0x8f,0x2f, +0xe0,0x1, 0xb7,0x32,0x17,0x0, 0xe0,0x9, 0xb7,0x52,0xe0,0x1, 0x97,0xf, 0xe0,0x1, +0xb7,0x72,0xe0,0x1, 0x97,0x1f,0xe0,0x2, 0xb7,0x12,0xe0,0x1, 0x97,0x2f,0xe0,0x2, +0xb7,0x32,0xe0,0x1, 0x97,0x3f,0xe0,0x6, 0xb7,0x12,0x8f,0xbf,0x37,0xa8,0xb7,0x92, +0xdf,0x42,0xe0,0x3, 0x9f,0xb2,0xaf,0x83,0xe0,0x3, 0x9f,0xd2,0xaf,0x93,0xe0,0x2, +0x9d,0x72,0xe0,0x3, 0x9d,0x92,0xe0,0x4, 0x9e,0x32,0xe0,0x4, 0x9e,0xd2,0xe0,0x3, +0x9f,0x72,0xe0,0x4, 0x9f,0x92,0xb5,0x13,0xb7,0xe3,0xe7,0xbf,0x17,0xff,0xb5,0xa3, +0xb6,0x33,0xb6,0xc3,0xb7,0x53,0xa7,0x14,0x3f,0xde,0xbf,0x94,0xa, 0x61,0x8, 0xb2, +0xe0,0x1, 0x1f,0xde,0xa1,0xf, 0xe0,0x2, 0x1f,0xc2,0xa6,0x92,0xa7,0xf, 0xe0,0x40, +0xce,0x80,0xbe,0x92,0x3f,0xe8,0x96,0xdf,0xe0,0x1, 0x14,0x40,0xb6,0xde,0x96,0xff, +0xe0,0x1, 0xb6,0x9e,0x8e,0xbf,0x8e,0x2f,0x36,0xa8,0x3e,0x9c,0xe0,0x1, 0xb6,0xde, +0x8e,0x9f,0x8e,0xf, 0x36,0xa8,0x3e,0x9c,0xe0,0x1, 0xb6,0xbe,0x8e,0xcf,0xe0,0x1, +0xb6,0xfe,0x16,0x80,0xe0,0x9, 0xb6,0xde,0x87,0xdf,0xe2,0x0, 0xc7,0x83,0x37,0xa8, +0xb7,0x9e,0xde,0xf9,0xa7,0x12,0xe7,0xbf,0x17,0xff,0x3f,0xde,0xbf,0x92,0x9, 0x61, +0x8, 0xb2,0xe0,0x1, 0x1f,0xde,0x3e,0xe8,0xa1,0xf, 0xe0,0x2, 0x1f,0xc2,0xa7,0x12, +0xa7,0x8f,0xe0,0x40,0xcf,0x0, 0xbf,0x12,0x16,0x0, 0x97,0x38,0xb7,0x5f,0x97,0x58, +0xb7,0x7f,0x97,0x78,0xe0,0x0, 0x14,0x60,0xe0,0x1, 0xb7,0x1f,0x8f,0xd, 0x8e,0x9d, +0x37,0x28,0x3f,0x1d,0xe0,0x1, 0xb7,0x5f,0xe0,0x9, 0xb6,0x5f,0xb6,0x1f,0xde,0xd3, +0xa7,0x12,0xe7,0xbf,0x17,0xff,0x3f,0xde,0xbf,0x92,0x9, 0x61,0x8, 0xb5,0x8f,0x8, +0x8f,0x98,0x39,0x68,0xa4,0x38,0x3f,0x7f,0x34,0x21,0xe0,0x6f,0x3b,0xae,0xe0,0x1, +0x14,0xff,0xe0,0x1, 0x15,0x72,0xe8,0x0, 0xc4,0x2, 0x3a,0xef,0xe0,0x1, 0xda,0x86, +0xe0,0x1, 0x1f,0xde,0x17,0x0, 0xa1,0x8f,0xe0,0x2, 0x1f,0xc2,0xe0,0x0, 0x14,0x60, +0xa2,0xf, 0xa7,0x93,0xe2,0x1, 0xc2,0xff,0xe0,0x40,0xcf,0x80,0xbf,0x93,0x97,0xb2, +0xb7,0xd4,0x97,0xd2,0xb7,0xf4,0x97,0xf2,0xe0,0x1, 0xb7,0x94,0x8f,0x82,0x8e,0x92, +0x37,0xa8,0x3f,0x9d,0xe0,0x1, 0xb7,0xd4,0xe0,0x9, 0xb7,0x54,0xb7,0x14,0xde,0x9b, +0x87,0x2, 0xa4,0xb2,0x3f,0xee,0xe2,0x1, 0xc7,0xff,0x27,0xa9,0xe0,0xb, 0x34,0xa1, +0x87,0x92,0x15,0x0, 0xe8,0x0, 0xc5,0x82,0x3e,0xef,0xe2,0x1, 0xc6,0xff,0x26,0x97, +0x16,0xb, 0x3e,0x3a,0xe0,0x0, 0x17,0x0, 0xe0,0xf, 0x3f,0x1c,0x37,0xa1,0x3f,0x9b, +0x96,0x8f,0xc7,0x1, 0xe0,0x41,0x3e,0x8d,0xb6,0x8f,0xe2,0x1, 0xc7,0x7f,0x87,0x92, +0x3e,0xef,0xe2,0x1, 0xc6,0xff,0x3e,0xfe,0x2, 0xf0,0x87,0x2, 0xc5,0x1, 0x3e,0xee, +0xe2,0x1, 0xc5,0x7f,0xe2,0x1, 0xc6,0xff,0x3e,0xfa,0x2, 0xdf,0xe4,0x2, 0xc2,0x81, +0xb4,0xd4,0x17,0x80,0xe0,0x1, 0xb2,0xd4,0xe0,0x1, 0x14,0x50,0xb7,0x94,0xde,0x63, +0xa5,0x32,0x17,0x0, 0x15,0xf0,0x3f,0xee,0x35,0x21,0x0, 0x92,0xe2,0x0, 0xcf,0x87, +0x2, 0xb2,0xe0,0x5, 0x9e,0x14,0x36,0x1b,0xe2,0x0, 0xc6,0xf, 0xb6,0xd, 0xc7,0x81, +0xe2,0x1, 0xc7,0xff,0xe2,0x0, 0xcf,0x8b,0xc7,0x2, 0xc5,0x84,0x1, 0x1e,0xe2,0x0, +0xcf,0x83,0xe0,0xd, 0x3f,0x1a,0xe8,0x0, 0xc6,0x82,0x2, 0xe9,0xe0,0x4, 0x9e,0x74, +0xe0,0xd, 0x37,0x21,0xc7,0x81,0xe0,0x9, 0x3f,0x1a,0xe0,0xd, 0x36,0x1d,0xe2,0x1, +0xc7,0xff,0xea,0x0, 0xce,0x2, 0x3e,0x19,0xe2,0x0, 0xc6,0x8f,0xe2,0x0, 0xcf,0x8b, +0xb6,0x8c,0xc7,0x2, 0xc5,0x84,0x1, 0xe4,0xa7,0x13,0xe7,0xbf,0x17,0xff,0x3f,0xde, +0xbf,0x93,0xa, 0xe1,0xe0,0x5, 0x9e,0xb4,0x14,0xf0,0x3c,0x9b,0xe0,0xc, 0x3f,0x1a, +0x36,0x99,0xe8,0x0, 0xc6,0x2, 0xe2,0x0, 0xc6,0x8f,0xb6,0x8c,0x0, 0xc9,0x8, 0xb2, +0xe0,0x1, 0x1f,0xde,0x3f,0x68,0xa1,0xf, 0xe0,0x2, 0x1f,0xc2,0xa6,0x92,0xa7,0x8f, +0xe0,0x40,0xce,0x80,0xbe,0x92,0xe7,0xbf,0x16,0x7f,0x96,0xd8,0xb6,0xdf,0x96,0xf8, +0xb6,0xff,0xe0,0x1, 0x96,0x98,0xe0,0x1, 0x14,0x60,0xe0,0x1, 0xb6,0x9f,0x8e,0x8e, +0x8d,0x9e,0x36,0xa8,0x3e,0x9b,0xe0,0x1, 0xb6,0xdf,0x96,0xae,0xe0,0x9, 0xb6,0xdf, +0x8e,0xae,0xe0,0x1, 0xb6,0xff,0xe0,0x7, 0x9e,0x9f,0x3e,0xdc,0xe0,0x7, 0xb6,0x9f, +0x8f,0x3e,0xe0,0x7, 0x9e,0x9f,0x37,0x2d,0x3f,0x4d,0xe0,0x7, 0xb7,0x1f,0x9f,0x1f, +0x3e,0x5e,0xb6,0x1f,0xdd,0xe8,0xa7,0x12,0xe7,0xbf,0x17,0xff,0x3f,0xde,0xbf,0x92, +0x9, 0x61,0x8, 0xb2,0xe0,0x1, 0x1f,0xde,0x3f,0x68,0xa1,0xf, 0xe0,0x2, 0x1f,0xc2, +0xa6,0x92,0xa7,0x8f,0xe0,0x40,0xce,0x80,0xbe,0x92,0xe0,0x1, 0x14,0x60,0x96,0xde, +0xb6,0xdf,0x96,0xfe,0xb6,0xff,0xe0,0x1, 0x96,0x9e,0xe0,0x1, 0xb6,0x9f,0x8e,0x8e, +0x8e,0x1e,0x36,0xa8,0x3e,0x9c,0xe0,0x1, 0xb6,0xdf,0x96,0xae,0xe0,0x9, 0xb6,0xdf, +0x8f,0x2e,0xe0,0x1, 0xb7,0x7f,0x9f,0x1f,0xe0,0x40,0xcf,0x0, 0xb7,0x1f,0xdd,0xbb, +0xa7,0x12,0xe7,0xbf,0x17,0xff,0x3f,0xde,0xbf,0x92,0x9, 0x61,0x8, 0xb2,0xe0,0x1, +0x1f,0xde,0x3f,0x68,0xa1,0xf, 0xe0,0x2, 0x1f,0xc2,0xa6,0x92,0xa7,0x8f,0xe0,0x40, +0xce,0x80,0xbe,0x92,0x16,0x0, 0x96,0xd8,0x34,0xa8,0xb6,0xdf,0x3d,0x49,0x96,0xf8, +0xb6,0xff,0xe0,0x1, 0x96,0x98,0xe0,0x1, 0xb6,0x9f,0x8e,0x88,0x8d,0x98,0x36,0xa8, +0x3e,0x9b,0xe0,0x1, 0xb6,0xdf,0x96,0xa8,0x14,0x30,0xe0,0x9, 0xb6,0xdf,0xe0,0x7, +0x9e,0x9f,0xe3,0x7f,0xc6,0xff,0xe0,0x7, 0xb6,0x9f,0x8f,0x3e,0xe0,0x7, 0x9e,0x9f, +0x37,0x2e,0x3f,0x4d,0xe0,0x7, 0xb7,0x1f,0xe0,0x1, 0xb6,0x7f,0xe0,0x2, 0xb5,0x1f, +0xe0,0x1, 0x9f,0x7f,0xe0,0x1, 0xcf,0x3, 0xe0,0x1, 0xb7,0x7f,0xe0,0x1, 0xb6,0x3f, +0xb6,0x1f,0xdd,0x79,0xa7,0x12,0xe7,0xbf,0x17,0xff,0x3f,0xde,0xbf,0x92,0x9, 0x61, +0x8, 0xb2,0xe0,0x1, 0x1f,0xde,0x3f,0x68,0xa1,0xf, 0xe0,0x2, 0x1f,0xc2,0xa6,0x92, +0xa7,0x8f,0xe0,0x40,0xce,0x80,0xbe,0x92,0x15,0x80,0x96,0xd8,0xb6,0xdf,0x96,0xf8, +0xb6,0xff,0xe0,0x1, 0x96,0x98,0x14,0x30,0xe0,0x1, 0xb6,0x9f,0x8e,0x8e,0x8e,0x1e, +0x36,0xa8,0x3e,0x9c,0xe0,0x1, 0xb6,0xdf,0x96,0xae,0xe0,0x9, 0xb6,0xdf,0xe0,0x7, +0x9e,0x9f,0xe3,0x7f,0xc6,0xff,0xe0,0x7, 0xb6,0x9f,0x8e,0xbe,0xe0,0x7, 0x9e,0x1f, +0x36,0xae,0x3e,0xcc,0xe0,0x7, 0xb6,0x9f,0xe0,0x1, 0xb5,0xff,0xe0,0x2, 0xb4,0x9f, +0xe0,0x1, 0x9e,0xff,0xe0,0x1, 0xce,0x83,0xe0,0x1, 0xb6,0xff,0xe0,0x1, 0xb5,0xbf, +0xe0,0x2, 0x8f,0x7e,0x9e,0x9f,0x37,0x2a,0x3f,0x4d,0xb7,0x1f,0xdd,0x34,0xa7,0x12, +0xe7,0xbf,0x17,0xff,0x3f,0xde,0xbf,0x92,0x9, 0x61,0x8, 0xb2,0xe0,0x1, 0x1f,0xde, +0x3f,0x68,0xa1,0xf, 0xe0,0x2, 0x1f,0xc2,0xa6,0x92,0xa7,0x8f,0xe0,0x40,0xce,0x80, +0xbe,0x92,0x14,0x0, 0x96,0xde,0xb6,0xdf,0xe0,0x1, 0x96,0x9e,0xe0,0x1, 0xb6,0x9f, +0x8e,0x8e,0x8e,0x1e,0x36,0xa8,0x3e,0x9c,0xe0,0x1, 0xb6,0xdf,0x96,0xae,0xe0,0x9, +0xb6,0xdf,0xe0,0x1, 0xb4,0xff,0xe0,0x2, 0xb5,0x1f,0xe0,0x2, 0x8e,0x7e,0xe0,0x2, +0x8e,0xee,0x8f,0x3e,0x36,0x2a,0x36,0xa9,0x3e,0xcc,0x37,0x28,0x3f,0x4d,0xb7,0x1f, +0x9f,0x1f,0xe1,0x0, 0xcf,0x0, 0xb7,0x1f,0xdc,0xfe,0xa7,0x12,0xe7,0xbf,0x17,0xff, +0x3f,0xde,0xbf,0x92,0x9, 0x61,0x8, 0xb2,0xe0,0x1, 0x1f,0xde,0xa1,0xf, 0xe0,0x2, +0x1f,0xc2,0xa6,0x92,0xa7,0xf, 0xe0,0x40,0xce,0x80,0xbe,0x92,0x3f,0xe8,0x96,0xd8, +0xb6,0xde,0xe0,0x1, 0x96,0x98,0xe0,0x1, 0x9c,0x28,0xe0,0x1, 0xb6,0x9e,0x8e,0x8f, +0x8e,0x1f,0x36,0xa8,0x3e,0x9c,0xe0,0x1, 0xb6,0xde,0x96,0xaf,0xe0,0x9, 0xb6,0xde, +0xe0,0x2, 0x8e,0x7f,0xe0,0x2, 0x8e,0xef,0x8f,0xbf,0x36,0x2a,0x36,0xa9,0x3e,0xcc, +0x37,0xa8,0x3f,0xcd,0xb7,0x9e,0x9f,0x9e,0xe1,0x0, 0xcf,0x80,0xb7,0x9e,0xdc,0xcb, +0xa7,0x12,0xe7,0xbf,0x17,0xff,0x3f,0xde,0xbf,0x92,0x9, 0x61,0x8, 0xb2,0xe0,0x1, +0x1f,0xde,0xa1,0xf, 0xe0,0x2, 0x1f,0xc2,0xa6,0x92,0xa7,0xf, 0xe0,0x40,0xce,0x80, +0xbe,0x92,0x3f,0xe8,0x96,0xdf,0x14,0x30,0xb6,0xde,0x96,0xff,0xb6,0xfe,0xe0,0x1, +0x96,0x9f,0xe0,0x1, 0xb6,0x9e,0x8e,0x8f,0x8e,0x1f,0x36,0xa8,0x3e,0x9c,0xe0,0x1, +0xb6,0xde,0x96,0xaf,0xe0,0x9, 0xb6,0xde,0xe0,0x2, 0x8e,0x7f,0xe0,0x2, 0x8e,0xef, +0x8f,0xbf,0x36,0x2a,0x36,0xa9,0x3e,0xcc,0x37,0xa8,0x3f,0xcd,0xb7,0x9e,0x9f,0x9e, +0xe1,0x0, 0xcf,0x80,0xb7,0x9e,0xdc,0x97,0xa7,0x12,0xe7,0xbf,0x17,0xff,0x3f,0xde, +0xbf,0x92,0x9, 0x61,0x8, 0xb3,0xe0,0x1, 0x1f,0xde,0x3f,0x68,0xa1,0x8f,0xe0,0x2, +0x1f,0xc2,0xe0,0x0, 0x14,0x40,0xa1,0xf, 0xa7,0x93,0xe0,0x40,0xcf,0x80,0xbf,0x93, +0x97,0xde,0xb7,0xd2,0x8f,0x8e,0x8e,0x9e,0x37,0xa8,0x97,0x2e,0x3f,0x9d,0xe0,0x1, +0xb7,0xd2,0x17,0x80,0xe0,0x9, 0xb7,0x52,0xe0,0x1, 0xb5,0x72,0xe0,0x2, 0xb4,0x92, +0xb7,0x92,0x9f,0x92,0xe1,0x0, 0xcf,0x80,0xb7,0x92,0xdc,0x6d,0xe0,0x7, 0x9c,0x32, +0xa7,0x13,0xe7,0xbf,0x17,0xff,0x3f,0xde,0xbf,0x93,0x9, 0xe1,0x8, 0xb3,0xe0,0x1, +0x1f,0xde,0x16,0x80,0xa1,0x8f,0xe0,0x2, 0x1f,0xc2,0xa7,0x13,0xa1,0xf, 0xe0,0x40, +0xcf,0x0, 0xbf,0x13,0x3f,0xe8,0x97,0x58,0xb7,0x52,0x97,0x78,0xb7,0x72,0xe0,0x1, +0x97,0x18,0x14,0x0, 0xe0,0x1, 0xb7,0x12,0xe0,0x0, 0x1f,0x12,0xae,0x8e,0x8f,0xf, +0x8e,0x9f,0x37,0x28,0x3f,0x1d,0xe0,0x1, 0xb7,0x52,0x8f,0x2f,0xe0,0x1, 0xb7,0x72, +0x97,0x2f,0xe0,0x9, 0xb7,0x52,0x87,0xbf,0xe2,0x0, 0xc7,0x81,0xe4,0xf, 0x37,0xa8, +0xe4,0xf, 0x37,0xc0,0xb7,0x92,0xdc,0x37,0xe0,0x6, 0x9c,0x72,0xa7,0x13,0xe7,0xbf, +0x17,0xff,0x3f,0xde,0xbf,0x93,0x9, 0xe1,0x8, 0xb3,0xe0,0x1, 0x1f,0xde,0xe2,0x0, +0xc5,0x3, 0xa1,0x8f,0xa7,0x93,0xe0,0x40,0xcf,0x80,0xbf,0x93,0xe0,0x2, 0x1f,0xc2, +0xa1,0xf, 0x2d,0x17,0xe0,0x9, 0xb5,0x52,0x35,0xaa,0xb4,0x52,0x35,0x28,0xe0,0x1, +0xb4,0xd2,0xe0,0x1, 0x14,0x10,0xb5,0x92,0x9f,0x92,0x3d,0x4f,0xb5,0x12,0xdc,0x13, +0xe0,0x5, 0x9c,0x52,0xa7,0x13,0xe7,0xbf,0x17,0xff,0x3f,0xde,0xbf,0x93,0x9, 0xe1, +0x17,0x82,0xe0,0x9, 0xb7,0xd2,0x0, 0xe9,0xe0,0x1, 0x1f,0xde,0x34,0xa3,0xa6,0xf, +0xe0,0x2, 0x1f,0xc2,0xf0,0x0, 0x1b,0x92,0xa7,0xf, 0xa7,0x9c,0xa6,0x9c,0xe0,0x40, +0xce,0x80,0xbe,0x9c,0x96,0xd8,0xe8,0x0, 0x8d,0x7, 0xe0,0x8, 0xb6,0xfe,0x96,0xf8, +0xe0,0x9, 0xb6,0x9e,0xe0,0x1, 0x96,0x98,0xe0,0x9, 0xb6,0xbe,0x8e,0xc8,0x8d,0xd8, +0x36,0xa8,0x3e,0x9b,0xe0,0x8, 0xb6,0xbe,0xe0,0xd, 0x37,0xcd,0x8f,0xe8,0x8d,0xf8, +0x37,0xa8,0xe0,0x1, 0x94,0x28,0x3f,0x9b,0xe0,0x8, 0xb7,0xde,0xe2,0x0, 0xc6,0x81, +0xe0,0x9, 0xb4,0x5e,0x15,0x80,0xe0,0x7, 0x9f,0x9e,0xe3,0xfe,0xc7,0x80,0xe0,0x7, +0xb7,0x9e,0xe0,0x7, 0x9f,0x9e,0x3c,0xcf,0xe0,0x7, 0xb4,0x9e,0xe0,0x7, 0x9f,0x9e, +0xcf,0x90,0xe0,0x7, 0xb7,0x9e,0xe0,0x7, 0x9f,0x9e,0xcf,0x81,0xe0,0x7, 0xb7,0x9e, +0x0, 0x86,0xe0,0x7, 0x9f,0x9e,0xe2,0x0, 0xc7,0xa0,0x2f,0x9a,0xe0,0x7, 0x9f,0x9e, +0xe2,0x1, 0xc7,0x80,0x27,0xf7,0x2d,0x9c,0xe0,0x7, 0x9f,0x9e,0x36,0xad,0xcf,0x84, +0xe0,0x7, 0xb7,0x9e,0xe0,0x7, 0x9f,0x9e,0xe3,0xfe,0xc7,0x80,0xe0,0x7, 0xb7,0x9e, +0xe7,0xbf,0x17,0xff,0xa7,0x1c,0x3f,0xde,0x3f,0xcd,0xbf,0x9c,0x38,0x82,0xe0,0x7, +0x9f,0x9e,0x15,0x1, 0xcf,0x82,0xe0,0x7, 0xb7,0x9e,0x3d,0xea,0x0, 0xe0,0xe8,0x0, +0xad,0x7, 0x0, 0xe3,0x8, 0xb2,0xe0,0x1, 0x1f,0xde,0xa1,0xf, 0xe0,0x2, 0x1f,0xc2, +0xa6,0x92,0xa7,0xf, 0xe0,0x40,0xce,0x80,0xbe,0x92,0x3f,0xe8,0x96,0xd8,0xb6,0xde, +0x96,0xf8,0xb6,0xfe,0xe0,0x1, 0x96,0x98,0xe0,0x1, 0x9c,0x28,0xe0,0x1, 0xb6,0x9e, +0x8e,0x8f,0x8e,0x1f,0x36,0xa8,0x97,0xaf,0x3e,0x9c,0xe0,0x1, 0xb6,0xde,0xe0,0x9, +0xb7,0xde,0x17,0x80,0xb7,0x9e,0xdb,0x77,0xa7,0x12,0xe7,0xbf,0x17,0xff,0x3f,0xde, +0xbf,0x92,0x9, 0x61,0xe0,0x1, 0x1f,0xb1,0x14,0x3, 0xa7,0xf, 0xe0,0x1, 0xa7,0x8e, +0x37,0xc8,0xe2,0x0, 0xc7,0x81,0x2f,0x82,0x38,0x82,0xe0,0x1, 0xa4,0xe, 0x34,0x49, +0xe2,0x0, 0xc4,0x1, 0x38,0x82,0xe0,0x2, 0x1f,0xb1,0xa7,0xf, 0xe0,0x1, 0x1f,0xb1, +0xa6,0x8f,0x17,0x80,0xe0,0x1, 0xaf,0xbe,0xa7,0x9e,0xe2,0x0, 0xc7,0x81,0x27,0xfd, +0xe0,0x1, 0xa7,0x8d,0x37,0xc1,0xe2,0x0, 0xc7,0x81,0x27,0xf7,0xa6,0x9e,0x17,0xfe, +0x3f,0xdd,0xbf,0x9e,0xe0,0x1, 0x8c,0x3e,0x38,0x82,0xe0,0x2, 0x1f,0xb1,0xa7,0xf, +0xe0,0x1, 0x1f,0xb1,0xe0,0x1, 0xac,0x3e,0xa6,0x8f,0xa7,0x9e,0xe2,0x0, 0xc7,0x81, +0x27,0xfd,0xe0,0x1, 0xa7,0x8d,0x37,0xc1,0xe2,0x0, 0xc7,0x81,0x27,0xf7,0xa6,0x9e, +0x17,0xfe,0x3f,0xdd,0xbf,0x9e,0x38,0x82,0x24,0xa6,0x17,0xff,0xe0,0x2, 0x1f,0x31, +0xe0,0x1, 0x1e,0xb1,0x3f,0x99,0xe3,0xff,0xc7,0xff,0x16,0x7f,0xa7,0xe, 0xa6,0x8d, +0x3e,0x18,0xe0,0xb, 0x3c,0x1f,0x14,0x80,0x15,0x7e,0xe0,0x1, 0xac,0xbe,0xa7,0x9e, +0xe2,0x0, 0xc7,0x81,0x27,0xfd,0xe0,0x1, 0xa7,0x8d,0x37,0xc1,0xe2,0x0, 0xc7,0x81, +0x27,0xf7,0xa7,0x9e,0x3f,0xda,0xbf,0x9e,0xe0,0x1, 0x8f,0xbe,0xe0,0x80,0xaf,0x9c, +0x3e,0x7b,0x1, 0xec,0x38,0x82,0x24,0xa3,0x17,0xff,0xe0,0x2, 0x1f,0x31,0xe0,0x1, +0x1e,0xb1,0x3f,0x99,0xe3,0xff,0xc7,0xff,0x16,0x7f,0xa7,0xe, 0xa6,0x8d,0x3e,0x18, +0xe0,0xb, 0x3c,0x1f,0x15,0x7e,0xe0,0x80,0x87,0x9c,0xe0,0x1, 0xaf,0xbe,0xa7,0x9e, +0xe2,0x0, 0xc7,0x81,0x27,0xfd,0xe0,0x1, 0xa7,0x8d,0x37,0xc1,0xe2,0x0, 0xc7,0x81, +0x27,0xf7,0xa7,0x9e,0x3e,0x7b,0x3f,0xda,0xbf,0x9e,0x1, 0xee,0x38,0x82,0xe0,0x2, +0x1f,0xb1,0x17,0x1, 0xa7,0x8f,0x3f,0x58,0xa5,0xbf,0x16,0xfb,0xe0,0xc, 0x37,0x22, +0x3e,0xdb,0x3e,0xcc,0xbe,0xbf,0x15,0xef,0xa6,0xbf,0xe0,0xc, 0x37,0x24,0x3e,0xdb, +0x3e,0xcc,0xbe,0xbf,0x16,0xf7,0xa5,0xf, 0xe0,0xc, 0x37,0x23,0x3e,0xda,0x3e,0xcc, +0xbe,0x8f,0x16,0xfe,0xa6,0x3f,0x3e,0xdc,0x3f,0x4d,0xbf,0x3f,0xe0,0x2, 0x1f,0x28, +0x8f,0xe, 0xe2,0x0, 0xcf,0x1, 0x1, 0xc, 0x2f,0xa, 0xa6,0x8f,0xe0,0x2e,0x3c,0xe, +0xe0,0x8, 0x37,0x24,0xe0,0xe, 0x3e,0xdb,0x3f,0x48,0xbf,0xf, 0x38,0x82,0xa7,0xf, +0xcf,0x40,0xbf,0xf, 0x24,0x7, 0xa6,0x8f,0xe7,0xfe,0x17,0x7f,0x3f,0x5d,0xbf,0xf, +0x38,0x82,0xa7,0xf, 0xe0,0x1, 0xcf,0x0, 0xbf,0xf, 0xe7,0xff,0x17,0x3f,0xa6,0x8f, +0x3f,0x5d,0xbf,0xf, 0x38,0x82,0xe0,0x2, 0x1f,0x31,0x97,0x88,0xa6,0x8e,0xe2,0xff, +0xc7,0xff,0xe0,0x1, 0xb7,0x9d,0x97,0x98,0xe2,0x7f,0xc7,0xff,0xe0,0x1, 0xb7,0xbd, +0x17,0xf7,0x9f,0x8, 0xa6,0x3d,0x37,0x4f,0x37,0x23,0x3f,0xdc,0x3f,0xce,0xbf,0xbd, +0x17,0xfc,0x9f,0x18,0xa6,0x6d,0x37,0x4e,0x3f,0xdc,0x3f,0xce,0xbf,0xed,0x38,0x82, +0xe0,0x1, 0x1e,0xe1,0xe0,0x2, 0x1f,0x31,0x87,0xcd,0xa7,0xe, 0xcf,0x82,0xaf,0xcd, +0xa7,0xbe,0xcf,0x82,0xbf,0xbe,0x38,0x82,0xe0,0x1, 0x1f,0x61,0x9f,0xae,0x37,0xc9, +0xe2,0x0, 0xc7,0x81,0x2f,0xfc,0x38,0x82,0x8, 0xb5,0xc0,0x68,0xe0,0x2, 0x1f,0xc3, +0x15,0x80,0x95,0x3f,0xe0,0x2, 0x1f,0xbf,0x3e,0x6a,0xe3,0xff,0xc6,0x7f,0xf0,0x0, +0x8b,0x4f,0xf0,0x0, 0x8b,0xdf,0xe0,0x2, 0x1f,0xb7,0xe4,0x3, 0x36,0x22,0x7d,0x81, +0xe4,0x3, 0x31,0xc0,0x7d,0x82,0x7d,0x83,0x7d,0x84,0x7d,0x85,0x7d,0x86,0x99,0xf, +0x24,0x39,0xe2,0x0, 0xcc,0x1, 0x1, 0x3, 0xc0,0x18,0xa, 0xe1,0xf0,0x0, 0x23,0x73, +0x14,0xff,0xe0,0x1, 0x1f,0xd0,0xe8,0x9, 0x3c,0x97,0xa4,0xf, 0xe2,0x1, 0xc4,0xff, +0x34,0xa1,0xf0,0x4, 0x33,0xa1,0x3d,0x68,0xe0,0x0, 0xc4,0x82,0xf0,0x0, 0x23,0x8b, +0xe0,0xd, 0x3c,0x9a,0x3f,0xea,0x97,0xf, 0x3f,0x1c,0xe1,0x80,0xb7,0x1f,0x3e,0xff, +0x1, 0xfb,0xc5,0x81,0xe2,0x1, 0xc5,0xff,0xf0,0x40,0x3b,0x7b,0x3d,0x14,0x1, 0xef, +0x16,0x8c,0x3e,0x92,0xe3,0xff,0xc6,0xff,0xe0,0xf, 0x31,0x21,0x3f,0x98,0x97,0xf, +0xc1,0x1, 0xe3,0xff,0xc1,0x7f,0x3f,0x13,0x39,0x7d,0xb7,0xf, 0x1, 0xf6,0xc0,0x18, +0xa, 0xe1,0xe0,0x1, 0x1a,0xd0,0xe0,0x1, 0x1f,0x39,0xa7,0x85,0xe2,0x1, 0xc5,0x7f, +0xe9,0xff,0xc7,0xfe,0x37,0xc1,0x3c,0xea,0x37,0x41,0xe2,0x0, 0x7c,0x4, 0xf0,0x0, +0x6b,0x85,0xe0,0x43,0x3a,0x13,0xf0,0x0, 0x6b,0x4, 0x7f,0x3, 0x7f,0x84,0x7f,0x85, +0xdc,0x4e,0x15,0x8c,0x3d,0x92,0xa6,0x5, 0xe0,0x1, 0x1d,0x4d,0xe3,0xff,0xc5,0xff, +0xe0,0x41,0x3c,0xc4,0x0, 0x8a,0x97,0xf, 0x3f,0x13,0xb7,0xf, 0xc1,0x1, 0xe3,0xff, +0xc1,0x7f,0x39,0x7b,0xe7,0xff,0x1, 0x22,0xe0,0x6, 0x17,0xa8,0x3f,0x92,0x37,0xa1, +0x3f,0x9a,0x96,0x9f,0xe0,0xe, 0x31,0x21,0x3a,0x7d,0x3f,0xee,0x3f,0x9c,0x4, 0x6c, +0x3e,0xf9,0xe0,0xf, 0x31,0x21,0x3f,0x9c,0x3, 0x6a,0x97,0xf, 0x3f,0x23,0xb7,0xf, +0x0, 0xe6,0xe0,0x1, 0x1f,0xd0,0xa4,0xf, 0xe7,0xff,0x0, 0xac,0x8, 0xb7,0xf8,0x0, +0xc, 0x3a,0xe0,0x2, 0x1f,0xa8,0xe0,0x2, 0x1e,0xbf,0x87,0xf, 0x39,0xeb,0xe0,0x3, +0x8e,0x2d,0x15,0x8e,0x3d,0xb3,0xe0,0x2, 0x1f,0xe9,0xe2,0x0, 0xc7,0x1, 0x3e,0x7e, +0x3f,0x9b,0x3a,0x68,0x3a,0xe9,0x3b,0x6a,0x8b,0x9f,0xf0,0x0, 0x8d,0x3f,0xe0,0x1, +0x1, 0x3b,0x99,0x5d,0x3c,0x63,0xef,0xfa,0xde,0xe8,0xf0,0x40,0x3c,0x68,0xef,0xf9, +0xda,0xa7,0xe0,0xc, 0x15,0x52,0x14,0x80,0x3c,0x64,0xe0,0x1, 0xd5,0x77,0xf0,0x1, +0x2c,0x23,0xe8,0x7, 0x3b,0xca,0xe0,0x0, 0x2b,0xec,0xe0,0x2, 0x1f,0xf3,0xe0,0x1, +0x1e,0xdf,0xa7,0x8f,0xe7,0xff,0x16,0x3f,0xa7,0x4f,0x97,0x8d,0x37,0x44,0xe2,0x0, +0xc7,0x40,0x3f,0xdc,0x3f,0xce,0xb7,0x8d,0xc1,0x5, 0xf0,0x0, 0x14,0x80,0x3c,0xe3, +0xe8,0x40,0x3c,0x69,0xef,0xf9,0xdb,0x2e,0x24,0x7b,0xe0,0x1, 0x1d,0xcc,0x17,0x80, +0xe0,0xe, 0x37,0xa1,0xe0,0xd, 0x3a,0x1e,0x3f,0x1b,0x9f,0xe, 0x96,0xd, 0xc7,0x81, +0xe3,0xff,0xc7,0xff,0x3f,0x1c,0x3f,0xf2,0xb7,0xd, 0x5, 0x73,0x14,0x1, 0xef,0xf9, +0xda,0xc0,0xf0,0x0, 0x24,0x27,0xe0,0x1, 0x1d,0xcb,0x17,0x80,0xe0,0xe, 0x37,0xa1, +0xe0,0xd, 0x3a,0x9e,0x3f,0x1b,0x9f,0xe, 0x96,0xd, 0xc7,0x81,0xe3,0xff,0xc7,0xff, +0x3f,0x1c,0x3f,0xf2,0xb7,0xd, 0x5, 0x73,0xe0,0x2, 0x19,0x6d,0xe4,0x0, 0xc1,0x85, +0x3c,0x64,0xe0,0xf, 0x39,0x13,0x8c,0xcf,0xef,0xf9,0xdb,0xca,0x2b,0x95,0x39,0x13, +0x8c,0xc2,0x3c,0x65,0xef,0xf9,0xdb,0xc4,0x14,0x1, 0xf8,0x0, 0xd, 0x28,0xb, 0xe1, +0xe0,0x2, 0x19,0x6d,0xe4,0x0, 0xc1,0x85,0x3c,0x64,0xe0,0xf, 0x39,0x13,0x8c,0xcf, +0xef,0xf9,0xdb,0xb6,0x23,0xf2,0xe0,0xf, 0x39,0x13,0x8c,0xcf,0x3c,0x66,0xef,0xf9, +0xdb,0xaf,0xf7,0xff,0x2c,0x66,0x14,0x1, 0xf8,0x0, 0xd, 0x28,0xb, 0xe1,0xe0,0xc, +0x15,0x52,0x14,0x80,0x3c,0x66,0xe0,0x1, 0xd5,0x1, 0xe0,0x2, 0x1f,0xf3,0xe0,0x1, +0x1e,0xdf,0xa7,0x8f,0xe7,0xff,0x16,0x3f,0xa7,0x4f,0x97,0x8d,0x37,0x44,0xe2,0x0, +0xc7,0x40,0x3f,0xdc,0x3f,0xce,0xb7,0x8d,0xf0,0x0, 0x14,0x84,0xf7,0xff,0x25,0xe, +0x3c,0xe3,0xe8,0x40,0x3c,0x69,0xef,0xf9,0xda,0xbd,0x24,0x7b,0xe0,0x1, 0x1d,0xca, +0xc1,0x5, 0x17,0x80,0xe0,0xe, 0x37,0xa1,0xe0,0xd, 0x3b,0x1e,0x3f,0x1b,0x9f,0xe, +0x96,0xd, 0xc7,0x81,0xe3,0xff,0xc7,0xff,0x3f,0x1c,0x3f,0xf2,0xb7,0xd, 0x5, 0x73, +0xe7,0xfe,0x0, 0xf5,0xe0,0xc, 0x15,0x52,0x14,0x80,0x3c,0x65,0xe0,0x1, 0xd4,0xce, +0xe7,0xfe,0x0, 0xd9,0x99,0x6d,0xe7,0xfe,0x0, 0xc7,0xe0,0x1, 0x1f,0xd0,0xe0,0x1, +0x1d,0x3e,0xa4,0x8f,0x3c,0x69,0xe7,0x65,0x0, 0x90,0xe0,0x2, 0x1f,0xb7,0xe0,0x1, +0x1f,0x50,0x9f,0x8f,0x15,0xc, 0x3d,0x1f,0xa5,0x8e,0xe0,0x1, 0x1c,0xcd,0xf0,0x2, +0x1b,0xba,0xe3,0xff,0xc5,0x7f,0xe0,0xd, 0x37,0xa1,0x14,0x7, 0xe0,0x6, 0x17,0x28, +0x3f,0x1f,0x37,0x21,0xe0,0xc, 0x3d,0x9d,0x3f,0x19,0x96,0x8c,0x97,0x1e,0xc7,0x81, +0xe3,0xff,0xc7,0xff,0x3f,0x1d,0xe0,0xd, 0x37,0xa1,0xb7,0xc, 0xe0,0xe, 0x3d,0x9d, +0x9f,0xe, 0xe2,0x1f,0xcf,0x1f,0x2, 0x83,0xe8,0x0, 0xac,0x7, 0x3f,0xfa,0x1, 0xe7, +0x38,0x82,0x0, 0x0, 0xe0,0x0, 0x1f,0x8b,0xf0,0x40,0x3a,0x68,0xf0,0x0, 0x88,0x8f, +0xe0,0x1, 0x14,0x7f,0xf0,0x0, 0x20,0xe5,0xf0,0x0, 0x1b,0xe, 0xf0,0x40,0x3a,0xe8, +0x17,0x0, 0xf0,0x0, 0x11,0x1, 0xf0,0x0, 0x11,0x82,0xf0,0x0, 0x10,0x3, 0x0, 0x9e, +0xf1,0x2c,0x39,0xad,0xe0,0x0, 0x26,0x43,0xf0,0x0, 0x12,0x82,0xe8,0x40,0x3e,0xe5, +0x3f,0xe8,0xe2,0x1, 0xc6,0xff,0xe2,0x1, 0xc7,0xff,0x3e,0xff,0xe8,0x40,0x3e,0x65, +0x5, 0x82,0x3e,0x68,0x3c,0x6c,0xe2,0x1, 0xc4,0x7f,0xc7,0x1, 0xe2,0x1, 0xc7,0x7f, +0xe8,0x40,0x3f,0x71,0xf0,0x0, 0xc3,0x2, 0x1, 0x38,0x3d,0x7e,0x1, 0x77,0xe8,0x0, +0x8e,0x86,0xe8,0x0, 0x8e,0x16,0xf0,0xf, 0x3a,0x2d,0xe2,0x0, 0xcf,0x80,0xe8,0x17, +0x3e,0xa4,0xf2,0x1, 0xc3,0xff,0xe0,0xd, 0x3c,0xac,0xe2,0x1, 0xc7,0xff,0xe8,0x6f, +0x3d,0x27,0x3e,0x29,0xe2,0x0, 0xce,0x80,0xe2,0x1, 0xc6,0x7f,0xe2,0x1, 0xc6,0xff, +0xf1,0x37,0x39,0x2f,0xe0,0x6d,0x3d,0x2c,0xf0,0x0, 0x23,0x85,0xf1,0x2c,0x39,0x2d, +0x2e,0x15,0xf1,0x2c,0x39,0xaf,0xe7,0xff,0x2e,0x3d,0x25,0xc1,0xf1,0x2f,0x38,0x2f, +0xe7,0xff,0x27,0xbe,0xf0,0x40,0x38,0x7d,0xe8,0x40,0x3f,0xe0,0xe8,0x6f,0x3c,0xa5, +0xf0,0x40,0x3a,0xef,0xe7,0xff,0x0, 0xb4,0x38,0x82,0x14,0x1, 0x38,0x82,0x38,0x82, +0x3d,0x78,0x5, 0x88,0xc4,0x1, 0x3c,0x1a,0x17,0x80,0xe2,0x1, 0xc4,0x7f,0xaf,0x8b, +0x38,0x82,0x17,0xff,0x3f,0x99,0x3f,0xaa,0x3c,0x7f,0x5, 0xb, 0xe0,0xf, 0x3d,0x28, +0x3c,0x9f,0xe0,0xa, 0x3c,0x2a,0x3c,0x69,0xe2,0x1, 0xc4,0x7f,0xad,0xb, 0x38,0x82, +0xe0,0x9, 0x35,0x21,0xc4,0x81,0xe0,0xa, 0x3c,0x2a,0x3c,0x69,0xe2,0x1, 0xc4,0x7f, +0xad,0xb, 0x38,0x82,0x8, 0xb7,0xf8,0x0, 0xc, 0x3e,0xe1,0xff,0xc0,0x34,0xf0,0x40, +0x3e,0x6a,0xe0,0xf, 0x35,0x21,0xe0,0x0, 0x1d,0xe, 0xe4,0x0, 0xc5,0x8a,0x3e,0xea, +0x3e,0x9b,0x3f,0x9a,0x16,0x0, 0xe0,0x2, 0x1f,0x3f,0xe0,0x10,0xae,0x1d,0xf0,0x40, +0x3c,0xe8,0xe0,0x10,0xae,0x2d,0xe8,0x40,0x3c,0x6c,0x8e,0xf, 0x8f,0x9f,0x89,0x4e, +0x89,0xde,0x7d,0x8f,0xf0,0x40,0x3f,0x69,0x7e,0xa, 0x7f,0x88,0xef,0xfd,0xd0,0xe7, +0x14,0x83,0xe0,0x1, 0xd1,0x69,0xe0,0x1, 0x1e,0xad,0xe0,0x43,0x3c,0x18,0xe0,0x1, +0x93,0xbd,0x67,0xa, 0x3b,0xf8,0xe0,0x67,0x3c,0x28,0xe8,0x40,0x3f,0x79,0xe0,0x3, +0x3, 0x82,0x17,0x81,0x66,0xa, 0xe8,0xf, 0x3f,0x99,0x3f,0x9c,0x17,0x0, 0xe2,0x1, +0xc7,0xff,0x3b,0x6e,0x66,0x8, 0xe8,0x40,0x3e,0x7e,0xe0,0x2, 0x3, 0xe2,0x66,0x8, +0x16,0x81,0xe8,0xd, 0x3e,0x9e,0x3e,0x9c,0x16,0x0, 0xe2,0x1, 0xc6,0xff,0x7e,0x9, +0x3e,0x1e,0xe0,0x1, 0x1a,0x51,0x36,0x21,0xa7,0x4, 0xe0,0xa, 0x3f,0x96,0x3f,0x1c, +0xe0,0x1, 0x1e,0x2d,0xe9,0xff,0xc7,0x7e,0x85,0x9c,0x37,0x41,0xe0,0x1, 0x1e,0x47, +0x61,0x9, 0x7f,0x12,0x36,0x41,0x67,0x9, 0xe2,0x1, 0xc5,0x7f,0xe0,0x0, 0x6f,0xc3, +0xe2,0x0, 0x7c,0x40,0x17,0x80,0x39,0x1d,0xe0,0x0, 0x6f,0x40,0xe2,0x1, 0xc1,0x7f, +0xe0,0x0, 0x6e,0xc2,0xe0,0x0, 0x6f,0xc5,0x7d,0xb, 0x7e,0x13,0xe0,0x0, 0x6b,0x41, +0xe0,0x0, 0x6d,0xc4,0xd8,0x9d,0xe0,0x1, 0x1f,0xc4,0xf0,0x0, 0x9c,0xf, 0xe0,0x1, +0x1f,0xb8,0xf4,0x18,0x34,0x20,0xf0,0x0, 0x9d,0x8f,0xe0,0x1, 0x1f,0xb7,0xf4,0x1b, +0x35,0xa0,0xf0,0x0, 0x9d,0xf, 0xe0,0x1, 0x1f,0xb6,0xf4,0x1a,0x35,0x20,0x9e,0x8f, +0xe0,0x1, 0x1f,0xb5,0xf0,0x18,0x3c,0x1d,0x9f,0xf, 0xe0,0x1, 0x1f,0xb4,0xf0,0x1b, +0x3d,0x9e,0x9f,0x8f,0x16,0x80,0xf0,0x1a,0x3d,0x1f,0x67,0x8b,0x3f,0xf6,0xe0,0x1, +0x5, 0xc3,0xe0,0xf, 0x3b,0x33,0x66,0x89,0xa5,0x84,0x3f,0x9d,0x66,0x8a,0x37,0xa1, +0xe0,0xc, 0x3b,0x2d,0xe3,0xff,0xc6,0x7f,0x3d,0x9f,0x7e,0x7, 0x17,0x2, 0x66,0x9, +0x67,0x88,0xe0,0x1, 0x1d,0x2d,0x3e,0x2f,0x7e,0xd, 0x31,0xa1,0x66,0x9, 0xf1,0x39, +0x3c,0x9e,0x79,0x8c,0xe4,0xc, 0x36,0x28,0xe4,0x3, 0x33,0x28,0xf1,0x2e,0x3f,0x1e, +0x8a,0x9a,0x16,0x80,0x7d,0x86,0x3a,0x63,0x7e,0xe, 0xf0,0x0, 0x7c,0x82,0x7f,0x5, +0xe4,0x4, 0x32,0x48,0x67,0x9, 0x39,0x7e,0xe0,0x1, 0x5, 0x84,0xf0,0x0, 0x67,0x6, +0x67,0x87,0x67,0xd, 0x66,0xa, 0xf0,0x0, 0x66,0x89,0xe3,0xff,0xc7,0x7f,0xe0,0x43, +0x39,0x9f,0xe0,0xc, 0x3b,0x2c,0xe8,0x40,0x3f,0xee,0x64,0x8e,0xf8,0x40,0x3f,0x6d, +0x7e,0x3, 0xf0,0x40,0x3c,0xee,0x7b,0x4, 0xf0,0x40,0x3e,0xef,0x0, 0xbe,0x66,0x3, +0xe2,0x0, 0xce,0x1, 0xe0,0x0, 0x5, 0x53,0x67,0x82,0xe0,0x0, 0x27,0xdf,0x66,0x5, +0x15,0x81,0xe0,0x0, 0x26,0x5b,0xe8,0x40,0x3d,0x6c,0x3c,0x64,0x7e,0x81,0xde,0x7b, +0x15,0x7e,0x3d,0x18,0xe2,0x1, 0xc5,0x7f,0xe0,0xb, 0x33,0x1, 0xe2,0x0, 0xcd,0x1, +0xc4,0x7f,0xe0,0x43,0x3d,0x9b,0xe2,0x1, 0xc4,0x7f,0xe0,0x66,0x3d,0xab,0xe2,0x0, +0xcc,0x2, 0x66,0x81,0x2, 0x8b,0x65,0x4, 0xe8,0xb, 0x3b,0x3e,0x3d,0x36,0xf0,0x1a, +0x3d,0x2b,0xf0,0x1b,0x3d,0xaa,0xf0,0x18,0x3c,0x26,0xf0,0x0, 0xc7,0x1, 0xf4,0x9, +0x37,0x28,0x17,0x1, 0xe4,0xf, 0x34,0xc8,0xe8,0xe, 0x3f,0x19,0x39,0x7f,0xf0,0x40, +0x3c,0xee,0xf3,0xff,0xc4,0xff,0x5, 0xac,0xe9,0x80,0x97,0x9d,0xe4,0x9, 0x34,0xc8, +0x3f,0xa5,0xe0,0x43,0x3b,0x1f,0xe2,0x0, 0xcb,0x0, 0x5, 0x68,0x15,0x81,0x3d,0x9d, +0x3b,0xf6,0xe2,0x1, 0xc5,0xff,0xe0,0x6d,0x3d,0x2b,0xe2,0x0, 0xc9,0x80,0xe7,0xff, +0x2, 0x30,0xe3,0xff,0xc9,0xff,0xe7,0xff,0x4, 0x31,0xe8,0x43,0x3d,0x99,0xe2,0x0, +0xcd,0x80,0xe0,0x0, 0x5, 0x60,0x67,0x8, 0xf0,0xb, 0x3f,0x2e,0xe2,0x0, 0xcd,0x81, +0x5, 0x4d,0x67,0x82,0xe7,0xff,0x2f,0xa5,0x15,0x80,0xe7,0xff,0x0, 0xa6,0x63,0x4, +0x66,0x6, 0x65,0xc, 0x67,0x7, 0x3e,0x1a,0xc3,0x1, 0xe4,0x4, 0x33,0x28,0x7e,0x6, +0xc7,0x1, 0x66,0xb, 0xe4,0xf, 0x32,0x48,0xe3,0xff,0xc7,0x7f,0x3e,0x7f,0x7f,0x7, +0xe7,0xfe,0x2, 0xe8,0xf2,0x0, 0xcc,0x0, 0x17,0x81,0xe8,0x6f,0x39,0xa8,0x3c,0xef, +0xf0,0x8, 0x35,0xa6,0xf0,0x40,0x3c,0x6f,0x7e,0x81,0xe0,0x1, 0xd0,0x69,0x67,0xf, +0xe0,0x0, 0x19,0xe, 0xc4,0x20,0x39,0x1e,0xe0,0x7, 0xb4,0x62,0xe8,0x40,0x3c,0xe8, +0xf0,0x8, 0x35,0x26,0xe0,0x1, 0xd0,0x5c,0xe0,0x1, 0x1d,0x2d,0x66,0xa, 0xe0,0x2, +0x8f,0xda,0x67,0x8, 0xf0,0x18,0x34,0x5f,0xf2,0x0, 0xcc,0x7f,0xe0,0x0, 0x17,0xff, +0xe8,0x6f,0x3d,0xa8,0xe0,0x10,0xaf,0x92,0xc4,0x20,0x66,0x81,0xe0,0x7, 0xb4,0x72, +0xe2,0x0, 0xce,0xad,0xe0,0x10,0xae,0xa2,0xe0,0x10,0xae,0x32,0xe0,0x10,0xaf,0x42, +0x5, 0x84,0x17,0xad,0xe0,0x10,0xaf,0xa2,0xe0,0x0, 0xc0,0x4c,0xf8,0x0, 0xf, 0x28, +0xb, 0xe1,0xe3,0xff,0xcd,0xff,0xe7,0xfe,0x3, 0x72,0xe7,0xfe,0x0, 0xc7,0x16,0xff, +0x3e,0x93,0xe8,0xd, 0x3e,0xae,0x3e,0x7d,0x2, 0x30,0xf0,0xd, 0x37,0x21,0xe8,0xc, +0x3e,0x2e,0xc6,0x81,0xe2,0x1, 0xc6,0x7f,0x7e,0x9, 0xe2,0x1, 0xc6,0xff,0xe7,0xfd, +0x0, 0x99,0x17,0xff,0x3f,0x92,0xe8,0xf, 0x3f,0xa9,0x3f,0x7f,0x2, 0xf, 0x3b,0x6e, +0xf0,0xf, 0x34,0xa1,0xe8,0x6, 0x3b,0x29,0xc7,0x81,0xe2,0x1, 0xc3,0x7f,0xe2,0x1, +0xc7,0xff,0xe0,0xe, 0x3b,0x33,0xe7,0xfc,0x0, 0xf7,0x63,0xa, 0x66,0x8a,0xe8,0x6, +0x3b,0x29,0xe8,0xf, 0x39,0x19,0xe2,0x1, 0xc3,0x7f,0x3f,0xad,0xe0,0xe, 0x3b,0x33, +0xe2,0x1, 0xc7,0xff,0xe7,0xfc,0x0, 0xe8,0x66,0x8, 0x65,0x8, 0xe8,0xd, 0x39,0x9e, +0xe8,0xc, 0x3e,0x2e,0x3e,0xaa,0xe2,0x1, 0xc6,0x7f,0x7e,0x9, 0xe2,0x1, 0xc6,0xff, +0xe7,0xfc,0x0, 0xe8,0xe0,0x1, 0x1f,0x1d,0xe0,0x0, 0x1f,0x8e,0x34,0x21,0x8f,0xe, +0x3c,0x1f,0x8e,0x98,0x27,0x10,0xe0,0x2, 0x1f,0x3f,0x8f,0x4e,0xe4,0x0, 0xc4,0x8a, +0x36,0xa6,0x37,0x26,0x3f,0x99,0xc6,0xa0,0xc7,0x20,0xe0,0x7, 0xb6,0xef,0xe0,0x7, +0xb7,0x7f,0x38,0x82,0xe0,0x2, 0x1f,0x3f,0x8f,0x5e,0x0, 0xf1,0xe2,0x0, 0xcc,0x1, +0x1, 0x11,0x4, 0x9b,0xc4,0x7c,0xe2,0x0, 0xcc,0x1, 0x5, 0x8c,0xe0,0x1, 0x1f,0x4b, +0xe0,0x1, 0x1f,0xc3,0xbf,0xf, 0xe0,0x1, 0x1f,0x48,0xe0,0x1, 0x1f,0xd0,0xbf,0xf, +0x38,0x82,0xe0,0x1, 0x1f,0x4a,0xe0,0x1, 0x1f,0xc3,0xbf,0xf, 0xe0,0x1, 0x1f,0x49, +0xe0,0x1, 0x1f,0xd0,0xbf,0xf, 0x38,0x82,0xe0,0x1, 0x1f,0x4c,0xe0,0x1, 0x1f,0xc3, +0xe2,0x0, 0xcc,0x82,0xbf,0xf, 0x1, 0x7, 0xe0,0x1, 0x1f,0x42,0xe0,0x1, 0x1f,0xd0, +0xbf,0xf, 0x38,0x82,0xe0,0x1, 0x1f,0x33,0xe0,0x1, 0x1f,0xd0,0xbf,0xf, 0x38,0x82, +0x8, 0xb5,0xe0,0x2, 0x19,0x3c,0x8f,0x82,0x2f,0xb6,0xe0,0x1, 0x19,0xc3,0xe0,0x1, +0x1a,0x51,0xa4,0x83,0xa4,0x4, 0xe0,0x1, 0x1a,0xd0,0xef,0xfa,0xdf,0xcd,0xe0,0x2, +0x1f,0xb7,0x14,0x8c,0x9f,0x8f,0xa5,0x4, 0x3c,0x9f,0xa5,0x83,0xa4,0x5, 0xe3,0xff, +0xc4,0xff,0x0, 0x88,0xc7,0x81,0x9e,0x8c,0xe3,0xff,0xc7,0xff,0x3f,0xf9,0xb6,0x8e, +0x1, 0x19,0x8e,0x82,0xe0,0xe, 0x37,0xa1,0xe2,0x0, 0xce,0x81,0xe0,0xc, 0x3d,0x9e, +0x3f,0x1a,0x1, 0xf1,0xe0,0xe, 0x37,0xa1,0x3e,0xec,0xe0,0xc, 0x3c,0x1e,0x9e,0x8d, +0x96,0xc, 0xc7,0x81,0xe3,0xff,0xc7,0xff,0x3f,0x1a,0x3e,0xac,0x3f,0xf9,0xb6,0x8e, +0x1, 0xe9,0xa, 0xe1,0xe0,0x1, 0x1a,0xd0,0xe0,0x1, 0x19,0xc3,0xe0,0x1, 0x1a,0x51, +0xa5,0x5, 0xa4,0x83,0xa4,0x4, 0x15,0x81,0xef,0xfa,0xdf,0x77,0x0, 0xc9,0x0, 0x0, +0x8, 0xb4,0xe1,0xff,0xc0,0x18,0xe0,0x1, 0x1f,0x97,0x17,0x0, 0x8d,0x8f,0xe0,0x0, +0x19,0xe, 0xe0,0xc, 0x35,0xc3,0x3f,0xee,0x3e,0xee,0xc7,0x81,0xe2,0x1, 0xc7,0xff, +0x3f,0x12,0x3f,0xfc,0xe0,0xf, 0xae,0x8e,0x3f,0x6f,0x5, 0x78,0xe0,0x1, 0x1e,0x2d, +0xe0,0x1, 0x1f,0xd1,0xe0,0x2, 0x1d,0x3f,0xf0,0x1, 0x93,0xc, 0xa7,0xf, 0xf0,0x0, +0x91,0xac,0xf0,0x0, 0x92,0x3c,0xf0,0x0, 0x92,0xfc,0xe0,0x2, 0x1e,0x7a,0xf0,0x0, +0x80,0xca,0xf0,0x0, 0x81,0x5a,0xe4,0x0, 0x17,0x80,0xe2,0x0, 0x7c,0xae,0xe0,0x1, +0x1d,0x47,0xf0,0x0, 0x83,0x8c,0xe0,0x0, 0x1a,0xb, 0xe0,0x0, 0x19,0x8a,0x3f,0x1f, +0x3f,0x99,0x16,0x0, 0x37,0x41,0x37,0xc1,0x35,0x41,0xc5,0xff,0xe2,0x0, 0x7c,0x84, +0xe2,0x0, 0x7c,0x14,0xae,0x84,0xae,0x83,0xe0,0x1a,0xb6,0x52,0xe0,0x1a,0xb6,0x62, +0xe0,0x1a,0xb6,0x72,0xe0,0x1b,0xb6,0x12,0x7f,0x6, 0x7f,0x88,0x7d,0x7, 0xf0,0x0, +0x73,0x15,0x6d,0x96,0xf0,0x0, 0x6b,0x97,0xf0,0x0, 0x68,0x95,0xf0,0x0, 0x69,0x14, +0xf0,0x0, 0x71,0x92,0xf0,0x0, 0x72,0x13,0xf0,0x0, 0x72,0x94,0xef,0xff,0xd5,0xe1, +0x55,0x7, 0x5f,0x8, 0xe0,0x1a,0xb5,0x72,0xe0,0xb, 0x37,0x48,0xe0,0x0, 0x1d,0x7, +0x5f,0x86,0xaf,0xa, 0xe0,0xd, 0x37,0xc8,0xe0,0x0, 0x1f,0x8, 0xf0,0x0, 0x4b,0x84, +0xad,0x8e,0xe0,0x0, 0x1f,0x5, 0x4c,0x5, 0xf0,0x0, 0x53,0x3, 0x54,0x84,0x56,0x5, +0xaf,0x8e,0xe0,0x0, 0x1f,0x84,0xf0,0x0, 0xab,0x84,0xac,0x3, 0xf0,0x1a,0xb3,0x52, +0xe0,0x1a,0xb4,0xe2,0xe0,0x1b,0xb6,0x12,0xae,0x8f,0xf0,0x0, 0x23,0xa5,0xe0,0x1, +0x1d,0x32,0xe0,0x0, 0x1e,0xe, 0x17,0x80,0xf0,0x0, 0x13,0x1, 0xe0,0xe, 0x37,0xc3, +0xe2,0x0, 0xc7,0x1f,0x3f,0x12,0x16,0x87,0xe0,0xf, 0x84,0x8e,0x3e,0xdf,0xe0,0x80, +0x9d,0x9a,0xf0,0xd, 0x33,0x3d,0x3e,0xc9,0xc7,0x81,0xe0,0xf, 0xae,0x8e,0xe2,0x1, +0xc7,0xff,0xe0,0xe, 0x35,0xc8,0xaf,0xc, 0xf0,0x40,0x3b,0xff,0xc6,0x2, 0xe0,0x40, +0xad,0x9c,0x1, 0xe5,0x24,0x19,0x15,0xff,0x3d,0x98,0xe2,0x1, 0xc5,0xff,0x35,0xa1, +0xe2,0x0, 0x7e,0xae,0xe0,0x0, 0x1f,0x8e,0xe2,0x0, 0x7f,0x2c,0xe0,0xb, 0x3d,0x9d, +0xe0,0x80,0x9e,0x9e,0xc7,0x82,0xe0,0xc, 0x36,0xc8,0x3d,0xfe,0xe0,0x7, 0xae,0x2f, +0xe0,0x7, 0xae,0xbf,0x1, 0xf6,0xe0,0x0, 0xc0,0x68,0xa, 0x61,0x8, 0xb1,0xe0,0x0, +0x1f,0x8c,0x17,0x0, 0xaf,0xf, 0xdf,0x35,0xe0,0x0, 0x1f,0x8b,0x8f,0xf, 0x27,0x12, +0xea,0x23,0x7e,0xa9,0x87,0x8d,0xc7,0x81,0xe2,0x1, 0xc7,0xff,0xe2,0x0, 0xcf,0xb2, +0x2, 0x96,0xaf,0x8d,0xe0,0x1, 0x1f,0xcf,0x8f,0x8f,0xe2,0x0, 0xcf,0x81,0x1, 0xb, +0x8, 0xe1,0xea,0x23,0x7f,0xa9,0xaf,0xf, 0xe0,0x1, 0x1f,0xcf,0x8f,0x8f,0xe2,0x0, +0xcf,0x81,0x1, 0xf7,0xe0,0x0, 0x1f,0x83,0xaf,0xf, 0x8, 0xe1,0x17,0xb2,0x0, 0xea, +0xea,0x23,0x7f,0xb0,0xea,0x23,0x7f,0x34,0x97,0x8f,0x9e,0x8e,0xe4,0x8, 0x34,0x23, +0xe0,0xe, 0x3f,0xad,0xe0,0x43,0x3f,0x1e,0xe2,0x0, 0xcf,0x0, 0xe0,0x43,0x3e,0x9d, +0x3f,0xad,0xe0,0x41,0x3f,0x4e,0xe4,0x8, 0x34,0x40,0xe0,0x6f,0x3d,0x2e,0x3f,0xf8, +0x2, 0x17,0xea,0x23,0x7f,0xae,0xea,0x23,0x7f,0x32,0x97,0x8f,0x9e,0x8e,0xe0,0xe, +0x3f,0xad,0xe0,0x43,0x3f,0x1e,0xe2,0x0, 0xcf,0x0, 0xe0,0x43,0x3e,0x9d,0x3f,0xad, +0xe0,0x41,0x3f,0x4e,0xe0,0x6f,0x3d,0x2e,0xe0,0x28,0x3c,0x2f,0x38,0x82,0x14,0x0, +0x38,0x82,0xea,0x23,0x7f,0xac,0x17,0x0, 0xaf,0xf, 0x38,0x82,0xea,0x23,0x7c,0x36, +0xe7,0x5b,0x0, 0xa7,0x3f,0x82,0x8, 0xb6,0xea,0x23,0x79,0x2c,0xe0,0x2, 0x1f,0xa0, +0x8e,0x82,0xe0,0x2, 0x1f,0x21,0x8e,0xf, 0x26,0x8f,0xea,0x23,0x79,0xb6,0x9f,0x83, +0x27,0x85,0x17,0x81,0xe1,0x2f,0x3e,0x1f,0x27,0x96,0x14,0x0, 0x17,0x80,0xaf,0x82, +0x17,0x80,0xb7,0x83,0xb, 0x61,0xe0,0x2, 0x1f,0x9f,0xe2,0x0, 0xce,0x1, 0x8c,0xf, +0x1, 0x14,0xea,0x1a,0x7f,0xe4,0xe9,0xff,0xc7,0xff,0xe0,0xe, 0x36,0xa2,0x3f,0x9e, +0xa7,0x8f,0x3f,0x82,0xe0,0x2, 0x1d,0x9f,0xe2,0x0, 0xce,0x1, 0x8c,0xb, 0xe0,0x1, +0x1, 0xa5,0xe2,0x0, 0xce,0x84,0x1, 0x62,0xe0,0x0, 0x1f,0xe5,0xe0,0x6, 0x9a,0x2e, +0x8d,0x8f,0xe0,0x0, 0x1f,0xe4,0x35,0xa8,0x8f,0x8f,0x3f,0xcb,0x3a,0x7f,0xe0,0x1, +0x5, 0x91,0xe0,0x0, 0x1f,0xe3,0x8d,0x8f,0xe0,0x0, 0x1f,0xe2,0x35,0xa8,0x8f,0x8f, +0x3f,0xcb,0x3a,0x7f,0xe0,0x1, 0x3, 0x86,0xe0,0x0, 0x1f,0xe1,0xe0,0x6, 0x9a,0xbe, +0x8d,0x8f,0xe0,0x0, 0x1f,0xe0,0x35,0xa8,0x8f,0x8f,0x3f,0xcb,0x3a,0xff,0xe0,0x0, +0x5, 0xf9,0xe0,0x0, 0x1f,0xdf,0x8f,0xf, 0xe0,0x0, 0x1f,0xde,0x37,0x28,0x8f,0x8f, +0x3f,0xce,0x3a,0xff,0xe0,0x0, 0x3, 0xee,0xe2,0x0, 0xce,0x84,0xe0,0x1, 0x2, 0x9d, +0xea,0x1a,0x7f,0xf8,0xe9,0xff,0xc7,0xff,0x36,0xa2,0x3f,0x9d,0xa7,0x8f,0x3f,0x82, +0x12,0x80,0x3a,0x65,0x17,0x81,0xe0,0x2c,0x3e,0xf, 0xe0,0x0, 0x26,0x59,0xe0,0x0, +0x2c,0x57,0xea,0x23,0x7f,0xae,0xea,0x23,0x7f,0x30,0xb2,0x8f,0xe0,0x0, 0x1f,0xdd, +0xb2,0xe, 0xea,0x23,0x79,0xb6,0x8e,0x8f,0xe0,0x0, 0x1f,0xdc,0x8f,0xf, 0xe0,0x0, +0x1f,0xdb,0x37,0x28,0x8b,0xf, 0xe0,0x0, 0x1f,0xda,0x36,0xa8,0x8f,0x8f,0x3b,0x4d, +0x3f,0xce,0x9f,0x3, 0xe0,0xf, 0x3b,0x2f,0x3f,0x7f,0xe7,0xff,0x2, 0x0, 0xe0,0x0, +0x1f,0xd9,0x8c,0xf, 0xdf,0x2e,0xe7,0xfe,0x24,0x7a,0xea,0x23,0x7f,0xb2,0xea,0x23, +0x7f,0x34,0x14,0x0, 0xb2,0x8f,0x17,0x83,0xb2,0xe, 0xaf,0x82,0xb3,0x3, 0xb, 0x61, +0xea,0x23,0x79,0xb6,0x14,0x24,0xe7,0xfe,0x0, 0xeb,0x2e,0x14,0xe2,0x0, 0xce,0x81, +0xe0,0x0, 0x1, 0x44,0xe0,0x0, 0x1f,0xd8,0x3c,0x6c,0x8e,0x8f,0xe0,0x0, 0x1f,0xd7, +0x36,0xa8,0x8f,0xf, 0xea,0x23,0x7f,0xb6,0x3f,0x4d,0x16,0x84,0xae,0x82,0xb7,0xf, +0xb, 0x61,0x12,0x80,0x3a,0x65,0xe0,0x0, 0x1e,0xd6,0xea,0x23,0x7f,0x30,0xea,0x23, +0x7f,0xae,0x8c,0xd, 0xb2,0xe, 0xb2,0x8f,0xde,0xfc,0x24,0x3, 0x14,0x0, 0xb, 0x61, +0xea,0x23,0x79,0xb6,0xe7,0xfe,0x0, 0xc3,0xe2,0x0, 0xce,0x84,0xe7,0xfe,0x5, 0xcb, +0xe7,0xfe,0x0, 0xbd,0xe0,0x43,0x3a,0x14,0xe0,0x43,0x3a,0x95,0x0, 0xe5,0x2c,0x6f, +0xea,0x23,0x7f,0x32,0xea,0x23,0x7f,0xb4,0xb2,0x8e,0xe0,0x0, 0x1f,0x5d,0xb2,0xf, +0xea,0x23,0x7f,0xb6,0x8e,0x8e,0xe0,0x0, 0x1f,0x5b,0x36,0xa8,0x8f,0xe, 0x3f,0x4d, +0x16,0x81,0xae,0x82,0xb7,0xf, 0xb, 0x61,0xe0,0x0, 0x1f,0xdd,0x3c,0x6c,0x8e,0x8f, +0xe0,0x0, 0x1f,0xdb,0x36,0xa8,0x8f,0xf, 0xea,0x23,0x7f,0xb6,0x3f,0x4d,0x16,0x82, +0xae,0x82,0xb7,0xf, 0xb, 0x61,0xea,0x23,0x79,0xb6,0x14,0x0, 0xe7,0xfe,0x0, 0x90, +0xf0,0x1, 0x1b,0x7d,0xe8,0x0, 0x8d,0x6, 0xe2,0x1, 0xcd,0x6f,0x2, 0x90,0xf0,0x1, +0x1b,0xf5,0xe0,0xf, 0x35,0x22,0xc5,0x1, 0xf0,0x17,0x3b,0x9f,0xe2,0x1, 0xc5,0x7f, +0xe8,0x0, 0xb4,0x7, 0xe8,0x0, 0xb4,0x97,0xe8,0x0, 0xad,0x6, 0xe0,0x2, 0x1f,0xc7, +0xe0,0x1, 0x9f,0xf, 0x3f,0x78,0xe0,0x1, 0x5, 0xa5,0xe0,0x1, 0xb4,0xf, 0xe0,0x1, +0xb4,0x9f,0x9f,0x7f,0x3f,0x79,0xe0,0x1, 0x5, 0x83,0xb4,0xff,0xb4,0x6f,0xe2,0x0, +0xcd,0xa, 0xe0,0x1, 0x1, 0xa, 0xe2,0x0, 0xcd,0x14,0xe0,0x1, 0x1, 0x1b,0xe2,0x1, +0xcd,0x6f,0xe0,0x1, 0x5, 0xa7,0x8, 0xb1,0xf0,0x0, 0x19,0x8f,0xf0,0x1, 0x1b,0xf5, +0xe8,0x0, 0x8c,0x83,0xf0,0x0, 0x12,0x80,0xf0,0x0, 0x12,0x1, 0xe8,0x40,0x3c,0x67, +0xe2,0x0, 0xcc,0x9f,0x2, 0x86,0xc4,0x81,0xe2,0x1, 0xc4,0xff,0xf8,0x40,0x3a,0xe4, +0x17,0xfe,0x3f,0x9a,0xe2,0x1, 0xc7,0xff,0xc7,0x81,0x37,0xa2,0xe8,0x0, 0x98,0x87, +0xf8,0x0, 0x99,0x17,0xe0,0x1, 0x1e,0xf5,0xe0,0x10,0x3c,0x1f,0xf0,0x40,0x3b,0xe8, +0x15,0x0, 0x0, 0xad,0xe8,0xe, 0x3f,0x22,0xe3,0xff,0xc7,0x7f,0xe0,0x43,0x3e,0x1e, +0xe2,0x0, 0xce,0x0, 0xe2,0x1, 0xc7,0xff,0x5, 0x30,0xe2,0x1, 0xc7,0x7f,0xf0,0x40, +0x38,0xef,0x3e,0x6e,0xf2,0x1, 0xc0,0xff,0xe2,0x1, 0xc6,0x7f,0xf0,0x40,0x38,0xfc, +0x3, 0x82,0x3f,0xee,0xe2,0x1, 0xc7,0xff,0x3f,0xf9,0x4, 0x8d,0xc5,0x1, 0xe2,0x1, +0xc5,0x7f,0xf0,0x0, 0x99,0x3d,0xe0,0xf, 0x35,0x22,0x3f,0x98,0xb5,0x8f,0x38,0xeb, +0xf0,0x0, 0xb1,0x1f,0xc6,0x84,0xe8,0x40,0x3e,0xf0,0x1, 0x12,0x9d,0xad,0x9f,0x3d, +0xe0,0xf, 0x3d,0xa1,0xe3,0xff,0xc7,0xff,0xe0,0x43,0x3e,0x1f,0xe2,0x0, 0xce,0x0, +0x2, 0x4a,0xe0,0x41,0x3f,0xcf,0x0, 0xc7,0xe0,0x41,0x3f,0x4e,0x0, 0xcf,0xe2,0x0, +0xcc,0x9f,0xc5,0x1, 0xe2,0x1, 0xc5,0x7f,0x2, 0x85,0xe2,0x1, 0xcd,0x6b,0xe7,0xff, +0x2, 0xa1,0xf0,0x0, 0x2a,0xb4,0xe8,0x0, 0xad,0x6, 0x8, 0xe1,0xe0,0x1, 0x9f,0x3f, +0x3f,0x79,0xe7,0xfe,0x3, 0xfe,0xe2,0x0, 0xcd,0xa, 0xe0,0x1, 0xb4,0xbf,0xe0,0x1, +0xb4,0x2f,0xe7,0xfe,0x1, 0xfa,0x96,0xcf,0xe0,0x1, 0x95,0x8f,0xe0,0x1, 0x97,0x3f, +0x96,0x7f,0x3e,0xab,0x3f,0x2c,0xe0,0x2, 0xb6,0x8f,0xe0,0x2, 0xb7,0x1f,0x38,0x82, +0x9f,0x4f,0x3f,0x78,0xe7,0xfe,0x3, 0xdf,0xb4,0x4f,0xb4,0xdf,0xe7,0xfe,0x0, 0xdb, +0x96,0xcf,0xe0,0x1, 0x95,0x8f,0xe0,0x1, 0x97,0x3f,0x96,0x7f,0x3e,0xab,0x3f,0x2c, +0xe0,0x2, 0xb6,0xaf,0xe0,0x2, 0xb7,0x3f,0x38,0x82,0xe8,0x0, 0xac,0x83,0x0, 0xcc, +0x38,0x82,0xe0,0x1, 0x1c,0x30,0xe7,0x57,0x0, 0xc4,0xe0,0x2, 0x1f,0xc7,0x8c,0xf, +0x17,0x84,0xe0,0x28,0x3c,0xf, 0x38,0x82,0x17,0xe0,0x3f,0x98,0xe2,0x0, 0xcf,0x83, +0x5, 0x96,0x24,0x14,0xe0,0x1, 0x1e,0xfd,0x16,0x6, 0xe0,0x2, 0x1f,0xc7,0xe0,0x1, +0x1f,0x75,0xe0,0x2, 0x1d,0xc6,0xae,0xd, 0xc7,0x84,0x96,0xf, 0x96,0x9f,0xb6,0xe, +0x3f,0xfb,0xc7,0x4, 0xe0,0x40,0xb6,0x9e,0x1, 0xf8,0x38,0x82,0xe0,0x2, 0x1f,0x47, +0xe0,0x1, 0x1f,0xf5,0x95,0xae,0x96,0x3e,0xe0,0x1, 0x96,0xce,0xe0,0x1, 0x1d,0x7d, +0xe0,0x1, 0x97,0x5e,0x14,0x82,0xac,0x8a,0xb5,0x8f,0xb6,0x1f,0xb6,0xaf,0xb7,0x3f, +0x38,0x82,0x8, 0xb7,0xf8,0x0, 0xc, 0x39,0xe0,0x2, 0x1f,0xa0,0xe0,0x2, 0x1f,0x1f, +0x8f,0x8f,0x8e,0xe, 0xe2,0x0, 0xcf,0x81,0xe0,0x0, 0x5, 0xfa,0xe0,0x1, 0x1f,0x30, +0x9e,0x8e,0xe0,0x0, 0x26,0xe6,0xe0,0x2, 0x19,0x47,0x8d,0x82,0x2f,0x95,0x16,0x81, +0xe0,0x2d,0x3e,0xd, 0x26,0x91,0x9f,0x8e,0xe2,0x0, 0xcd,0x83,0xb7,0x92,0xe0,0x1, +0x1, 0x61,0xe0,0x2, 0x1f,0x85,0x17,0x7e,0xe0,0xa, 0xaf,0x3f,0x17,0x80,0xaf,0x82, +0xf8,0x0, 0xc, 0xa8,0xb, 0xe1,0xe0,0x2, 0x1f,0x21,0xe0,0xd, 0x8e,0x8e,0xe2,0x0, +0xce,0x81,0x1, 0x70,0xe0,0x6, 0x9a,0xae,0xe0,0x6, 0x9a,0x3e,0xe0,0x0, 0x25,0xfb, +0xe2,0x0, 0xcd,0x81,0xe0,0x1, 0x1, 0x55,0xea,0x23,0x7b,0x3c,0xea,0x23,0x7b,0xba, +0x97,0x86,0x94,0x87,0xe2,0x0, 0xcd,0x83,0xe0,0xf, 0x3a,0xaf,0xe0,0x9, 0x3a,0x29, +0xe3,0xff,0xc7,0xff,0xe3,0xff,0xc4,0xff,0xe0,0x2, 0x1, 0x14,0xe0,0x43,0x3e,0x9f, +0xe0,0x43,0x3f,0x19,0xe2,0x1, 0xc7,0xff,0xe2,0x1, 0xc4,0xff,0xe2,0x0, 0xce,0x80, +0xf0,0x0, 0x1c,0xf, 0xe0,0x1, 0x5, 0x20,0xe2,0x0, 0xcf,0x0, 0xe0,0x1, 0x5, 0x2b, +0x3e,0xef,0x3f,0x69,0xe2,0x1, 0xc6,0xff,0xe2,0x1, 0xc7,0x7f,0x3e,0xfe,0x3, 0x82, +0x3f,0xe9,0xe8,0x0, 0x8f,0x8, 0xe2,0x1, 0xc7,0xff,0x3f,0x7f,0xe7,0xff,0x3, 0xba, +0x3c,0xe4,0x3c,0x65,0xde,0x7e,0xb2,0x86,0xb2,0x7, 0xe7,0xff,0x0, 0xb3,0xe0,0x1, +0x1f,0xd6,0x17,0x1, 0xaf,0xf, 0x17,0x7e,0xe0,0x2, 0x1f,0x85,0xe0,0xa, 0xaf,0x3f, +0xe0,0x2, 0x1f,0xc7,0xae,0x8f,0xf8,0x0, 0xc, 0xa8,0xb, 0xe1,0xe0,0x0, 0x1f,0xe, +0xe0,0x1a,0x9f,0x5e,0xe2,0x0, 0xcf,0x1e,0xe7,0xff,0x2, 0x82,0xe0,0x2, 0x19,0x47, +0x8d,0x82,0xe0,0x1, 0x25,0xdd,0xe0,0x1, 0x1f,0x30,0x9e,0x8e,0xe7,0xff,0x2e,0x80, +0xe0,0x1, 0x1f,0xd6,0x17,0x1, 0xaf,0xf, 0x17,0x7e,0xe0,0x2, 0x1f,0x85,0xae,0x82, +0xe0,0xa, 0xaf,0x3f,0xf8,0x0, 0xc, 0xa8,0xb, 0xe1,0xe0,0x2, 0x1f,0x21,0xe0,0xd, +0x8e,0x8e,0xe2,0x0, 0xce,0x81,0xe7,0xfe,0x1, 0x76,0xe0,0x6, 0x9a,0xae,0xe0,0x6, +0x9a,0x3e,0x11,0x80,0xe7,0xfe,0x2e,0x76,0xf0,0x0, 0x14,0x81,0xe8,0x2f,0x3f,0x89, +0xe7,0xfe,0x27,0xf0,0xe0,0x2, 0x1c,0x47,0x15,0x28,0x3c,0xe3,0xe0,0x0, 0xdd,0x86, +0xe0,0x1, 0x1c,0x75,0xe0,0x7, 0x15,0x40,0x3c,0xe3,0xe0,0x0, 0xdd,0x7f,0xe0,0x0, +0x1f,0xd5,0xea,0x23,0x7b,0x3c,0x8f,0xf, 0xe0,0x0, 0x1f,0xd4,0x37,0x28,0x8f,0x8f, +0xea,0x23,0x7b,0xba,0x3f,0xce,0xe0,0x2, 0x1f,0x5, 0xf0,0x0, 0x1c,0xf, 0xe0,0xa, +0xa9,0xbe,0x3c,0xe4,0xe0,0x1, 0x1f,0x30,0xb7,0x8e,0xe0,0x1, 0x1f,0xfd,0x3c,0x65, +0xa9,0x8f,0x17,0x82,0xe8,0x0, 0xaf,0x88,0xb2,0xa2,0xb2,0x32,0xb2,0xc2,0xb2,0xe2, +0xe0,0x1, 0xb2,0x82,0xe0,0x1, 0xb2,0xa2,0xb2,0x52,0xb2,0x72,0xe0,0x1, 0xb2,0x12, +0xe0,0x1, 0xb2,0x32,0xb2,0x86,0xb2,0x7, 0xdd,0xfc,0x3c,0xe3,0xf0,0x0, 0xac,0x82, +0x3f,0x63,0x3f,0xe3,0xe0,0x41,0x3f,0xcf,0xe2,0x1, 0xc7,0xff,0xe7,0xfe,0x0, 0xde, +0x2f,0xbb,0xaf,0x82,0x17,0x7e,0xe0,0x2, 0x1f,0x85,0xe0,0xa, 0xaf,0x3f,0xe7,0xfe, +0x0, 0xa1,0xe0,0x41,0x3c,0xc9,0xe2,0x1, 0xc4,0xff,0xe7,0xfe,0x0, 0xd3,0xe0,0x0, +0x1f,0xd3,0x9f,0x42,0x8e,0x8f,0xe0,0x0, 0x1f,0xd2,0xe0,0x1, 0x9e,0x2, 0x8f,0x8f, +0x36,0xa8,0x3f,0x2c,0x3f,0xcd,0x3f,0x7f,0xea,0x23,0x7b,0x3c,0xea,0x23,0x7b,0xba, +0x2, 0x26,0xe0,0x0, 0x1f,0xd1,0xe0,0x1, 0x9f,0x32,0x8e,0x8f,0xe0,0x0, 0x1f,0xd0, +0x9e,0x72,0x8f,0x8f,0x36,0xa8,0x3f,0x2c,0x3f,0xcd,0x3f,0x7f,0x2, 0x18,0x97,0x86, +0x94,0x87,0xe0,0xf, 0x3a,0xaf,0xe0,0x9, 0x3a,0x29,0xe3,0xff,0xc7,0xff,0xe3,0xff, +0xc4,0xff,0xe7,0xfe,0x0, 0x95,0xe0,0x1, 0x9c,0xd2,0xe0,0x1, 0x9c,0x42,0x17,0x84, +0xaf,0x82,0xf8,0x0, 0xc, 0xa8,0xb, 0xa1,0xe7,0xfb,0x0, 0xac,0x97,0x86,0x94,0x87, +0xe0,0xf, 0x3a,0xaf,0xe0,0x9, 0x3a,0x29,0xe3,0xff,0xc7,0xff,0xe3,0xff,0xc4,0xff, +0x17,0x3, 0xaf,0x2, 0xe0,0x43,0x3e,0x9f,0xe0,0x43,0x3f,0x19,0xe0,0x1, 0xb2,0xc2, +0xe2,0x1, 0xc7,0xff,0xe0,0x1, 0xb2,0x52,0xe2,0x1, 0xc4,0xff,0xe7,0xfd,0x0, 0xf8, +0xe0,0x43,0x3e,0x9f,0xe0,0x43,0x3f,0x19,0xe0,0x1, 0xb2,0xc2,0xe2,0x1, 0xc7,0xff, +0xe0,0x1, 0xb2,0x52,0xe2,0x1, 0xc4,0xff,0xe7,0xfd,0x0, 0xea,0x17,0x1, 0xe0,0x2e, +0x3e,0xe, 0xe7,0xfe,0x27,0x34,0x3f,0x6f,0xe4,0x0, 0xcf,0x1, 0xe2,0x0, 0xc7,0x1, +0xe7,0xfe,0x27,0x2d,0xe0,0x1, 0x1f,0xb0,0x97,0x8f,0xb7,0x92,0xe7,0xfd,0x0, 0xa3, +0x8, 0xb4,0xe0,0x2, 0x19,0x85,0xe0,0xa, 0x8f,0x83,0x27,0x92,0xe0,0x2, 0x19,0x47, +0xde,0x79,0x8f,0x82,0xe2,0x0, 0xcf,0x84,0x1, 0x11,0xdc,0x5e,0x3a,0x68,0x22,0x7, +0xe0,0x2, 0x1f,0x90,0x17,0x1, 0xe0,0xa, 0xaa,0x33,0xaf,0xf, 0xa, 0x61,0xe0,0x2, +0x1f,0x47,0xaf,0x8e,0xa, 0x21,0xe7,0xf8,0x0, 0xc6,0x97,0x42,0xe0,0x1, 0x96,0x2, +0xe0,0x1, 0x97,0xb2,0x96,0xf2,0x3f,0x2c,0x3f,0xad,0xe0,0x1, 0xb7,0x62,0xe0,0x1, +0xb7,0xf2,0xd2,0xea,0x3a,0x68,0x24,0xc, 0xe2,0x1, 0xca,0x7f,0x17,0x80,0xe0,0x6f, +0x39,0xa4,0x3a,0x6f,0x3c,0x64,0xde,0x21,0x17,0x80,0xaf,0x82,0x0, 0xd9,0xe0,0x1, +0x1f,0xfd,0xe0,0x1, 0x1c,0x75,0x8d,0xf, 0x3c,0xe2,0xd6,0x6d,0x3a,0x68,0x0, 0xf3, +0x8, 0xb4,0xe2,0x0, 0xcc,0x1, 0x39,0xe8,0x39,0x68,0x17,0x80,0x5, 0x89,0x31,0x41, +0xe2,0x0, 0xc9,0x1, 0xc7,0x81,0xe2,0x1, 0xc7,0xff,0x1, 0xfa,0x37,0xc1,0x31,0x3f, +0xe4,0x0, 0xc1,0x3, 0x12,0x1, 0x31,0x54,0x3c,0xe2,0x3c,0x63,0xe0,0x0, 0xda,0x40, +0x3c,0x12,0x34,0x41,0xe0,0x2, 0x3c,0x22,0xe0,0x43,0x3f,0x92,0xe0,0x41,0x3f,0x4f, +0xe2,0x0, 0xcf,0x80,0xe1,0x2e,0x3f,0x14,0xe1,0x2f,0x39,0x14,0xe0,0x6f,0x3d,0x2e, +0x39,0x68,0x2f,0xeb,0xa, 0x61,0xe0,0x1, 0x1f,0xf5,0x34,0x22,0x34,0xa2,0x3c,0x9f, +0x3c,0x1f,0x9f,0x88,0x9f,0x9, 0x9c,0x18,0x3f,0xae,0x9f,0x19,0xe0,0x43,0x3e,0x9f, +0xe2,0x0, 0xce,0x80,0x3c,0x2e,0xe0,0x43,0x3f,0x18,0xe0,0x41,0x3e,0xcd,0xe0,0x6f, +0x3d,0x2d,0xe2,0x0, 0xcf,0x0, 0xe0,0x41,0x3f,0x4e,0xe0,0x68,0x3d,0x2e,0x3f,0xbf, +0x3c,0x38,0x3c,0x1f,0xe2,0x0, 0xcc,0x5, 0x2, 0x88,0xe2,0x0, 0xcc,0x2, 0xe0,0xf, +0x34,0x41,0xe0,0x68,0x3b,0xaf,0x38,0x82,0xe7,0xff,0x0, 0xac,0x3f,0x82,0x8, 0xb7, +0xf8,0x0, 0xc, 0x3e,0xc0,0x7c,0xe0,0x0, 0x1f,0xcf,0x13,0x0, 0xf0,0x0, 0x8e,0xf, +0xe0,0x0, 0x1f,0xce,0x3a,0x68,0x8f,0x8f,0xf0,0x0, 0x14,0x81,0x7f,0x81,0xf0,0x40, +0x3d,0x66,0xf0,0x40,0x3d,0xe6,0x11,0xa8,0xe2,0x0, 0xca,0x1, 0xf0,0x0, 0x14,0x0, +0x5, 0xba,0x11,0x1, 0xf8,0x40,0x3e,0xe8,0xe8,0x40,0x3a,0xe8,0x0, 0x8b,0xe8,0x40, +0x3a,0xed,0x3b,0xe8,0xf0,0x40,0x3e,0xe2,0xc1,0x1, 0xe2,0x1, 0xc1,0x7f,0x3a,0x72, +0x1, 0x2a,0xe8,0x40,0x3c,0xed,0x3c,0x62,0xdf,0xa7,0x3c,0x73,0xf0,0x40,0x3f,0x68, +0x4, 0xf4,0xf7,0xff,0x26,0xee,0x3c,0xe2,0x3c,0x65,0xdf,0x9e,0xe8,0x8, 0x3c,0x1c, +0xe8,0xe, 0x3b,0x9e,0x3f,0x78,0x4, 0xbe,0xe2,0x0, 0xcb,0x5, 0x17,0x1, 0xe8,0xe, +0x3f,0x18,0xe0,0x0, 0x2, 0xe8,0xe8,0x40,0x3a,0xed,0xf0,0x40,0x3e,0xe2,0xc1,0x1, +0xe2,0x1, 0xc1,0x7f,0x3a,0x72,0xf0,0x40,0x3c,0x6e,0xf2,0x1, 0xc4,0x7f,0xe8,0x40, +0x3b,0xee,0x1, 0xd8,0xe2,0x0, 0xcb,0x5, 0x3f,0x66,0xe2,0x1, 0xc7,0x7f,0xc1,0x8a, +0x2, 0xb3,0xe8,0x40,0x3e,0xe8,0xe8,0x40,0x3f,0xeb,0xe2,0x1, 0xc6,0xff,0xe2,0x1, +0xc7,0xff,0x3e,0xff,0xe2,0x1, 0xc1,0xff,0x3, 0x83,0xf8,0x40,0x3c,0x6b,0xe2,0x0, +0xcf,0x5, 0xf8,0x40,0x3d,0xe8,0xf2,0x1, 0xc5,0xff,0xe0,0x0, 0x1, 0x59,0xf2,0x0, +0xcc,0x8c,0x1, 0x27,0xf0,0x0, 0xc4,0x81,0xc3,0x1, 0xf2,0x1, 0xc4,0xff,0xe7,0xff, +0x0, 0x9d,0xe2,0x0, 0xcb,0x5, 0xe8,0x40,0x3f,0xed,0xe0,0x6f,0x3a,0xa5,0x3a,0xef, +0x3f,0xe2,0xe0,0x7e,0x3a,0xa7,0xe8,0x6f,0x3a,0xad,0xe8,0x40,0x3b,0xee,0xf0,0x40, +0x3e,0xef,0xe7,0xff,0x0, 0x9b,0xe2,0x1, 0xc1,0xff,0xf0,0x0, 0x2d,0xaa,0xf0,0x0, +0x2d,0x10,0xf2,0x0, 0xcc,0x8c,0xf8,0x40,0x3d,0xea,0xf0,0x0, 0x66,0x1, 0x1, 0xdb, +0xf2,0x0, 0xcd,0x8a,0x2, 0x95,0xf0,0x0, 0x2d,0xa8,0xf0,0x0, 0x25,0x6, 0xf0,0x0, +0xc5,0x10,0xf2,0x1, 0xc5,0x7f,0xe8,0x40,0x3c,0x6a,0xc0,0x4, 0xf8,0x0, 0xf, 0x28, +0xb, 0xe1,0xf0,0x0, 0xc5,0x1, 0xf2,0x1, 0xc5,0x7f,0xe7,0xfe,0x0, 0xf7,0xf0,0x0, +0x15,0xf, 0xe8,0x40,0x3c,0x6a,0xc0,0x4, 0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0xf2,0x0, +0xcd,0x8b,0xf0,0x0, 0x15,0xf, 0xe8,0x7a,0x3c,0xab,0xe8,0x40,0x3c,0x6a,0xc0,0x4, +0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0xf8,0x40,0x3d,0x6b,0x0, 0xde,0x11,0xb2,0xe7,0xff, +0x0, 0xab,0xe2,0x0, 0xcc,0x5, 0x5, 0x83,0xe7,0xfd,0x0, 0xdc,0xe2,0x0, 0xcc,0x2, +0xe0,0xe, 0x34,0x41,0xe0,0x68,0x3b,0xae,0x38,0x82,0xf0,0x2, 0x1a,0x47,0xf8,0x0, +0x9b,0xb4,0xe8,0x1, 0x9c,0xd4,0xe8,0x0, 0x9e,0x44,0xf0,0xa, 0x3b,0xa9,0xf0,0x40, +0x39,0x6a,0xe8,0x1, 0x9f,0x4, 0xf3,0xff,0xc1,0x7f,0xe8,0x43,0x3e,0x92,0xe0,0xf, +0x3e,0x2e,0xe2,0x0, 0xce,0x80,0xe8,0xd, 0x3c,0xa7,0xf8,0x1, 0x9b,0x34,0xf8,0x0, +0x9a,0xf4,0xf0,0x40,0x39,0xef,0xe3,0xff,0xc6,0xff,0xf3,0xff,0xc1,0xff,0xe0,0x72, +0x3d,0x2d,0xe0,0x0, 0x1e,0xcd,0xe8,0x43,0x3d,0x93,0xf8,0x8, 0x3b,0x25,0xe2,0x0, +0xcd,0x80,0x3f,0xe8,0x8d,0x8d,0xe0,0x0, 0x1e,0xcc,0xe3,0xff,0xc7,0xff,0x3f,0x2c, +0xe0,0x43,0x3d,0x1f,0xe3,0xff,0xc7,0x7f,0x8e,0x8d,0xe0,0x73,0x3d,0x2e,0xf8,0xc, +0x3a,0xa6,0xe2,0x0, 0xcd,0x0, 0xe0,0xe, 0x35,0xa8,0xe3,0xff,0xc6,0x7f,0x3f,0x4d, +0xe0,0x6f,0x3d,0x2c,0xf0,0x40,0x39,0xfe,0x14,0x0, 0xe0,0x0, 0x3, 0xd2,0xe0,0x0, +0x1f,0x4b,0xe0,0x0, 0x1e,0xca,0x8f,0xe, 0x8e,0x8d,0x37,0x28,0x3f,0x4d,0xe1,0x2d, +0x3f,0x9e,0xe0,0x0, 0x26,0xc5,0xe9,0x2f,0x3f,0x93,0xe0,0x0, 0x27,0xc1,0xe8,0x0, +0x8c,0x14,0x2c,0x3d,0xe0,0x0, 0x1f,0xd5,0xe0,0x0, 0x1e,0xc9,0x8d,0x8f,0xe0,0x0, +0x1f,0xc8,0x8e,0x8d,0x8e,0xf, 0xe0,0x0, 0x1f,0xd4,0x36,0x28,0x8f,0x8f,0x35,0xa8, +0x3e,0xcc,0x3f,0xcb,0xe8,0x0, 0x9e,0x14,0xe0,0xd, 0x3f,0xad,0x3e,0x7d,0x5, 0x28, +0xe0,0x0, 0x1e,0xc7,0x8d,0x8d,0xe0,0x0, 0x1e,0xc6,0x35,0xa8,0x8e,0x8d,0x3e,0xcb, +0x3f,0xad,0xe0,0x2f,0x3f,0x9c,0x27,0x9c,0xf1,0x2f,0x39,0x1e,0x27,0x99,0xe0,0x0, +0x1f,0xc5,0xe0,0x0, 0x1f,0x44,0x8f,0x8f,0x8f,0xe, 0xf0,0x40,0x3b,0xf9,0x37,0xa8, +0x3f,0x4f,0x3, 0x8f,0xf8,0xf, 0x3b,0xa5,0x3f,0xfe,0x3, 0xa, 0xf0,0xf, 0x3b,0x29, +0x3f,0x7f,0x17,0xa3,0xe0,0x6f,0x3d,0x28,0x3c,0x6f,0x38,0x82,0x14,0x0, 0x38,0x82, +0xe8,0xf, 0x3c,0xa5,0x3f,0xfe,0x3, 0x7c,0xf8,0xf, 0x3b,0x27,0x3f,0x7f,0x17,0xa2, +0xe0,0x6f,0x3d,0x28,0x3c,0x6f,0x38,0x82,0xe0,0x2, 0x1e,0x47,0xf0,0x0, 0x9b,0xac, +0xf0,0x1, 0x9a,0xcc,0xf0,0x0, 0x9a,0x4c,0xf0,0x1, 0x9b,0xc, 0xf8,0xd, 0x3b,0xa5, +0xe3,0xff,0xc6,0xff,0xe0,0x43,0x3f,0x1d,0xf8,0xf, 0x3a,0x26,0xe2,0x0, 0xcf,0x0, +0xe3,0xff,0xc7,0xff,0xf8,0xa, 0x3a,0xa7,0xe0,0x43,0x3c,0x9f,0xe0,0x1, 0x9c,0x3c, +0x9d,0xfc,0xe3,0xff,0xc5,0x7f,0xe0,0x6d,0x3d,0x2a,0xe2,0x0, 0xcc,0x80,0xf8,0xa, +0x3b,0x24,0xe0,0xe, 0x3c,0x2b,0xe3,0xff,0xc5,0x7f,0xe0,0x0, 0x1c,0xc3,0xe3,0xff, +0xc7,0x7f,0xe0,0x6f,0x3d,0x2a,0xe0,0x0, 0x1d,0x42,0xf0,0x43,0x39,0x9e,0x8c,0x89, +0x3d,0xa8,0xf2,0x0, 0xc9,0x80,0x8d,0xa, 0xe3,0xff,0xc5,0xff,0x34,0xa8,0xe0,0x6e, +0x3d,0x2b,0xe0,0xb, 0x3d,0x49,0xe1,0x2b,0x3d,0x9e,0xe0,0x0, 0x25,0xcd,0xe1,0x2f, +0x3f,0x9e,0xe0,0x0, 0x27,0xc9,0x8c,0x1c,0xe0,0x0, 0x2c,0x46,0xe0,0x0, 0x1f,0xd5, +0x9e,0x1c,0x8d,0xf, 0xe0,0x0, 0x1f,0xc1,0x35,0x28,0x8d,0x8f,0xe0,0x0, 0x1f,0xd4, +0x35,0xa8,0x8f,0xf, 0xe0,0x0, 0x1f,0xc0,0x3f,0x4a,0x8f,0x8f,0x3f,0xcb,0xe0,0xf, +0x3f,0x2f,0x3e,0x7f,0x5, 0x31,0xe0,0x0, 0x1f,0xbf,0x8d,0x8f,0xe0,0x0, 0x1f,0xbe, +0x35,0xa8,0x8f,0x8f,0x3f,0xcb,0x3f,0x2f,0x3e,0x7e,0x3, 0x26,0xe0,0x0, 0x1f,0xbd, +0x8f,0xf, 0xe0,0x0, 0x1f,0xbc,0x37,0x28,0x8f,0x8f,0x3f,0xce,0x3e,0xff,0x5, 0x9c, +0xe0,0x0, 0x1f,0xc5,0xf8,0x40,0x3b,0xf5,0x8f,0xf, 0xe0,0x0, 0x1f,0xc4,0x37,0x28, +0x8f,0x8f,0x3f,0xce,0x37,0xc1,0x5, 0x91,0xf8,0x16,0x3a,0xa6,0xf0,0x40,0x3b,0x7f, +0x3, 0xb, 0xf8,0x17,0x3a,0x27,0xe8,0x40,0x3f,0xf7,0x17,0xa0,0xe0,0x6f,0x3d,0x28, +0x3c,0x6f,0x38,0x82,0x14,0x0, 0x38,0x82,0xf8,0x17,0x3b,0xa6,0xf0,0x40,0x3b,0xff, +0x3, 0x7b,0xf8,0x15,0x3a,0x25,0xe8,0x40,0x3f,0xf5,0x17,0xa1,0xe0,0x6f,0x3d,0x28, +0x3c,0x6f,0x38,0x82,0xe0,0x2, 0x1e,0xc7,0x9d,0xad,0xe0,0x1, 0x9e,0x4d,0xf0,0x0, +0x9b,0x3d,0xe0,0xe, 0x3d,0xac,0xe0,0x1, 0x9c,0xdd,0xe3,0xff,0xc7,0x7f,0xe0,0x43, +0x3d,0x1e,0xf0,0xf, 0x3b,0x29,0xe2,0x0, 0xcd,0x0, 0xf0,0x0, 0x9b,0xcd,0xe0,0x1, +0x9d,0xd, 0xe3,0xff,0xc7,0xff,0x3e,0x2b,0xe3,0xff,0xc6,0x7f,0xe0,0x43,0x3d,0x9f, +0xe0,0x1, 0x9c,0x3d,0xe0,0x6e,0x3d,0x2c,0xe2,0x0, 0xcd,0x80,0xf0,0xc, 0x3b,0xaa, +0x9d,0xfd,0xe3,0xff,0xc6,0x7f,0xe8,0x9, 0x3c,0xa6,0xe0,0xd, 0x3c,0x2b,0xf0,0x43, +0x3b,0x1c,0xe3,0xff,0xc4,0xff,0xe0,0x6f,0x3d,0x29,0xe3,0xff,0xc6,0xff,0xf2,0x0, +0xcb,0x0, 0xe8,0xa, 0x3d,0x27,0xe0,0x43,0x3c,0x9d,0xe3,0xff,0xc5,0x7f,0x3d,0xa8, +0xe0,0x6c,0x3d,0x2a,0xe2,0x0, 0xcc,0x80,0xe3,0xff,0xc5,0xff,0xe0,0x6d,0x3d,0x2b, +0x3f,0xad,0xe0,0x43,0x3d,0x9f,0x16,0x9f,0xe2,0x0, 0xcd,0x80,0xe0,0x2f,0x3e,0xaf, +0x16,0xe1,0xe0,0x2b,0x3d,0xad,0xe0,0x6f,0x3d,0x2b,0x14,0x0, 0x27,0x8c,0x3f,0x2c, +0xe0,0x43,0x3f,0x9e,0x3f,0xf8,0x14,0x1f,0xe0,0x28,0x3c,0x2e,0xe0,0x2f,0x3f,0xad, +0xe0,0x68,0x3d,0x2f,0x38,0x82,0x8, 0xb1,0xe0,0x1, 0x1f,0xfd,0x84,0xf, 0xc4,0x7f, +0xe2,0x1, 0xc4,0x7f,0xdd,0x7d,0x17,0x80,0x2c,0xc, 0xde,0x50,0x3f,0xe8,0x2c,0x9, +0xde,0xf4,0xe2,0x0, 0xcc,0x0, 0xe0,0x1, 0x17,0x7f,0xe0,0x6e,0x39,0xa8,0x3f,0xee, +0x3c,0x6f,0x8, 0xe1,0x8, 0xb7,0xf8,0x0, 0xc, 0x3e,0xe2,0x0, 0xcc,0x1, 0x39,0x69, +0xe0,0x0, 0x5, 0xcf,0x12,0xfe,0xf0,0x0, 0x1d,0xba,0x3a,0x98,0xe0,0x0, 0x1f,0xb6, +0xea,0x23,0x7a,0x44,0xe2,0x1, 0xc2,0xff,0xfa,0x23,0x7f,0x64,0xc2,0x81,0xf0,0x0, +0x14,0x80,0xe8,0x0, 0x93,0x8b,0x93,0xf, 0x3a,0x94,0xf8,0x40,0x3e,0x69,0xf0,0x0, +0x14,0x1, 0x8c,0x4, 0xf0,0x80,0x8e,0x94,0xe8,0x0, 0x8c,0x8e,0xf8,0x80,0x8d,0x1e, +0xe8,0x8, 0x3c,0x2d,0xe8,0x9, 0x3c,0xaa,0x34,0x24,0xd6,0xfd,0x39,0xe8,0x8c,0x14, +0xe8,0x0, 0x8c,0x9e,0xf0,0x8, 0x3e,0xa8,0xf0,0x9, 0x3d,0x29,0x34,0x24,0xd6,0xf3, +0xe0,0xf, 0x39,0xa8,0x16,0x85,0x3e,0x9f,0x17,0x1, 0x3f,0x12,0xe2,0x0, 0xce,0x8b, +0xe2,0x1, 0xc7,0x7f,0xe0,0x62,0x3b,0xae,0x3f,0xf7,0x39,0xef,0x5, 0x5, 0xe0,0x43, +0x3b,0x9f,0xf8,0x40,0x3e,0x68,0x3f,0xf6,0x3, 0x5, 0xe0,0x43,0x3b,0x13,0xf8,0x40, +0x3c,0xe8,0x3a,0x75,0x1, 0xcf,0xf0,0x0, 0x2e,0x8, 0xf0,0x0, 0x2c,0x89,0x3c,0x62, +0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0xe8,0x0, 0xb3,0x8b,0x0, 0xf8,0xe0,0x0, 0x1f,0xb6, +0xb3,0xf, 0x0, 0xf6,0x8, 0xb7,0x12,0x0, 0x16,0xff,0xf0,0x0, 0x13,0x9f,0x3e,0x98, +0xf0,0x17,0x3b,0x98,0xc4,0xff,0x3d,0x64,0x3c,0x64,0x3d,0xe4,0xe0,0x40,0x3e,0x64, +0xe0,0x80,0x8f,0x9d,0xe0,0x80,0x8f,0x19,0xe0,0x3, 0x3f,0xbf,0xe0,0x5, 0x3f,0x3e, +0xe0,0x2, 0x3f,0x3f,0xf0,0x40,0x3b,0xfd,0x3e,0x1e,0x3d,0x9f,0x3c,0x15,0x3d,0x13, +0x3a,0x12,0x1, 0xef,0xe0,0x2, 0x36,0x5, 0xe4,0x0, 0xc4,0x64,0xe0,0x0, 0x12,0xe4, +0x3a,0xba,0xe0,0x4, 0x14,0xb5,0xe0,0x6, 0x39,0x32,0xe0,0x3, 0x35,0x85,0xd6,0x9b, +0xe0,0x6, 0x3c,0x26,0xe0,0x4, 0x14,0xb5,0x3c,0x65,0xd6,0x95,0xe0,0x7, 0x39,0xb3, +0x17,0x80,0xe0,0x2f,0x3b,0xf, 0xe0,0x7, 0x3c,0x27,0xe0,0x0, 0x14,0x64,0x2f,0x9b, +0xe0,0x25,0x3b,0x8f,0x2a,0x98,0x3c,0x34,0xe0,0x4, 0x14,0xb5,0x39,0x33,0xd6,0x83, +0xe0,0x2, 0x3c,0x22,0xe0,0x0, 0x14,0x64,0x3c,0x32,0x3c,0xe6,0xd6,0x7c,0x3c,0x32, +0x3c,0xe7,0xe0,0x0, 0xd6,0x79,0xe0,0x43,0x3f,0x98,0xe2,0x0, 0xcf,0x80,0x4, 0x6, +0xe0,0x43,0x3c,0x18,0xe2,0x1, 0xc4,0x7f,0xb, 0xe1,0x3c,0x65,0x0, 0xfa,0x8, 0xb1, +0xea,0x23,0x7f,0xc1,0x8f,0x8f,0xe0,0xe, 0x34,0xa1,0xe0,0xd, 0x35,0x21,0x3f,0x18, +0xc7,0xff,0x3c,0x1d,0x86,0x9e,0x3c,0xff,0x16,0x0, 0x38,0xed,0x85,0x98,0xe0,0x61, +0x39,0xac,0x3e,0x61,0x2d,0x88,0x3c,0xfa,0xb6,0x88,0x1, 0x2, 0xb5,0x8e,0x3c,0xff, +0x1, 0xb, 0x8, 0xe1,0x3c,0xfa,0x1, 0x7c,0x3e,0x9b,0x36,0x81,0xb6,0x88,0x3c,0xff, +0x16,0x80,0xb6,0x8e,0x1, 0xf7,0xb6,0x8, 0x8, 0xe1,0x8, 0xb7,0xf8,0x0, 0xc, 0x3e, +0xe1,0xff,0xc0,0xc, 0xea,0x23,0x7b,0xe3,0xea,0x23,0x7e,0x43,0x16,0xa0,0x7e,0x6, +0xc4,0x7e,0xc4,0xfe,0x3e,0x97,0x3f,0xec,0xe0,0x80,0x97,0x18,0xe0,0x80,0xaf,0x17, +0x3e,0xf7,0xe0,0x80,0x97,0x19,0xe0,0x80,0xaf,0x1f,0x1, 0xf7,0xe0,0x1, 0x1f,0xd5, +0x8a,0xf, 0xe0,0x4, 0x22,0x59,0xfa,0x23,0x79,0xe4,0xf8,0x40,0x3c,0x63,0xe0,0x1, +0x1f,0x72,0xf8,0x0, 0x8d,0x88,0x17,0x80,0xf0,0x40,0x3d,0x6e,0x7f,0x9, 0xf0,0xc, +0x35,0xa4,0xe0,0x7, 0x17,0x68,0xf0,0x0, 0x16,0xd3,0xe8,0x40,0x39,0xea,0x7f,0x87, +0xf0,0x40,0x3c,0xef,0x7e,0xb, 0xf0,0x1d,0x3e,0x90,0x7f,0x88,0xf0,0x40,0x3e,0x6f, +0x7f,0x8a,0x13,0x20,0xe0,0x0, 0x7f,0xc, 0xf0,0x40,0x3d,0x67,0xe0,0x0, 0x15,0x44, +0x3c,0xe3,0xe2,0x0, 0x7c,0x34,0xe0,0x0, 0xd8,0x37,0xe0,0x0, 0x1f,0xb6,0xe0,0xff, +0x16,0x7f,0xe0,0x0, 0x1f,0x3a,0xb6,0xf, 0x16,0x33,0x17,0x80,0x15,0x0, 0x3e,0x10, +0xb7,0x8e,0xe8,0x40,0x3d,0xe8,0xe8,0x40,0x3c,0x6d,0x64,0x86,0xf8,0x40,0x3b,0x68, +0xe8,0x40,0x3e,0xeb,0xe8,0x40,0x3a,0xec,0xe8,0x40,0x39,0x6c,0xe8,0x40,0x3b,0xec, +0xf8,0x40,0x3f,0x6c,0x0, 0x83,0xe8,0x80,0x8e,0x96,0xf0,0x80,0x8b,0x9c,0xe3,0xff, +0xc6,0xff,0xf0,0xe, 0x3b,0xad,0xe0,0x43,0x3f,0x9e,0xe8,0xd, 0x3e,0xa7,0xe2,0x0, +0xcf,0x80,0xe0,0x43,0x3e,0x9d,0xe0,0x6f,0x3d,0x2d,0xf0,0x80,0x8b,0x98,0xe0,0x80, +0x8e,0x99,0xe8,0x40,0x3f,0xfe,0xf0,0xe, 0x3b,0xad,0xe0,0x7e,0x3b,0x2f,0xe2,0x0, +0xcf,0x0, 0xe8,0xd, 0x3e,0xa7,0xe0,0x6e,0x3d,0x2d,0xf0,0x40,0x3b,0xee,0xf3,0xff, +0xc3,0xff,0xe3,0xff,0xc7,0xff,0xe8,0xd, 0x3f,0x97,0x3f,0x77,0xe8,0x5, 0x3a,0x97, +0xf0,0x43,0x3b,0x9d,0xe0,0x67,0x3b,0x2e,0xf0,0x40,0x3b,0xfa,0x3f,0x92,0xe0,0x43, +0x39,0x1f,0xe0,0x43,0x3a,0x95,0x3, 0x2, 0x3e,0xea,0xf0,0x40,0x3e,0xfc,0xe0,0x43, +0x3d,0x1d,0x1, 0xc2,0xe8,0x40,0x3e,0x6b,0x17,0x0, 0xe0,0x0, 0x16,0xff,0x0, 0x83, +0xe0,0x80,0x8e,0x1b,0xe4,0xf, 0x36,0x28,0xf0,0x40,0x3b,0xed,0xe4,0x8, 0x37,0xc8, +0xf2,0x1, 0xc3,0xff,0xf0,0x40,0x3b,0xf8,0x3c,0xee,0xe2,0x1, 0xc4,0xff,0x3f,0xe8, +0x5, 0x82,0x3e,0xec,0x3c,0xff,0xe2,0x1, 0xc6,0xff,0x3, 0x82,0x3f,0x6c,0xf0,0x40, +0x3d,0x7b,0xe2,0x1, 0xc7,0x7f,0x1, 0xe5,0xf0,0x2f,0x3f,0x16,0xe0,0x1, 0x27,0xdb, +0xe0,0x2f,0x3b,0x96,0xe0,0x1, 0x27,0xd7,0xf0,0x0, 0xc4,0x81,0xf2,0x1, 0xc4,0xff, +0xf0,0x40,0x3c,0xf4,0xe0,0x0, 0xc1,0xc4,0xe7,0xfe,0x1, 0xea,0xe0,0x9, 0x3f,0x2d, +0x64,0xb, 0xe2,0x1, 0xc4,0xff,0xd5,0x67,0x67,0x88,0x3a,0x68,0xc7,0xff,0x3f,0x6f, +0xe2,0x1, 0xc7,0x7f,0xe0,0x1, 0x17,0xfd,0xe1,0x2f,0x3f,0xae,0xe2,0x1, 0xc2,0x7f, +0xe0,0x2, 0x27,0xc8,0x66,0xa, 0xe0,0x0, 0x17,0xc5,0xe1,0x2f,0x3e,0x1f,0xe0,0x2, +0x27,0xc1,0x67,0x87,0xeb,0xff,0x79,0x79,0xea,0x23,0x79,0xc2,0x67,0x8, 0xc7,0x81, +0xf0,0x0, 0x66,0x7, 0xaf,0x82,0xaf,0x3, 0xe0,0x0, 0x17,0xc4,0xe8,0xf, 0x3f,0xbc, +0x67,0x9, 0x3f,0x1f,0xe0,0x8, 0x87,0x2e,0xc7,0x4f,0xe2,0x1, 0xc7,0x7f,0xe2,0x0, +0xcf,0x1, 0xe0,0x2, 0x5, 0x9b,0x67,0x8, 0xe2,0x0, 0xcf,0x31,0xe0,0x1, 0x1, 0x7f, +0x67,0x8, 0xe2,0x0, 0xcf,0x50,0xe0,0x2, 0x1, 0x56,0x67,0x88,0xe2,0x0, 0xcf,0xb3, +0xe0,0x1, 0x1, 0x84,0xe2,0x0, 0xca,0x8, 0xe0,0x0, 0x2, 0xfb,0x14,0x80,0x14,0x1e, +0xdd,0xfa,0xe0,0x0, 0x1f,0xb6,0x97,0x8f,0xe3,0xff,0xcf,0xca,0xe0,0x2, 0x3, 0x53, +0xf0,0x1, 0x1a,0xf4,0xf0,0x1, 0x1a,0x53,0xf0,0x1, 0x19,0x7c,0xf0,0x0, 0x18,0x9b, +0xea,0x23,0x7d,0x64,0x12,0x0, 0x17,0x80,0xea,0x23,0x7c,0xc4,0xf0,0x0, 0x13,0x9d, +0xe8,0x0, 0xb7,0x85,0xe8,0x0, 0xb7,0x84,0xf0,0x17,0x3b,0x9a,0xe8,0x0, 0xb7,0x82, +0x3a,0xe4,0xe8,0x0, 0xb7,0x81,0xf0,0x40,0x39,0xe4,0x3c,0x64,0xf0,0x40,0x3b,0x64, +0x3b,0x64,0xf0,0x40,0x3c,0x64,0xf0,0x40,0x38,0x64,0x3e,0xe4,0x13,0x81,0x0, 0x90, +0xe2,0x0, 0xcd,0x80,0xe0,0x43,0x3a,0x9e,0x3a,0x67,0xe0,0xe, 0x3f,0x96,0x4, 0x28, +0xe0,0x43,0x3b,0x1e,0xf0,0x40,0x3b,0x67,0xf0,0x40,0x3b,0xfa,0x1, 0x29,0x8d,0x8a, +0x8f,0x1a,0x8f,0x99,0xf0,0x0, 0x8c,0x89,0x3f,0x2b,0x3e,0x6e,0xe8,0xf, 0x3f,0xa9, +0xe2,0x0, 0xcf,0x0, 0xe3,0xff,0xc7,0xff,0xe3,0xff,0xc6,0x7f,0xc5,0x1, 0xe0,0x43, +0x3d,0x9f,0xc4,0x81,0xe0,0xe, 0x3e,0x15,0x3, 0x5c,0xe2,0x0, 0xcd,0x80,0x3e,0x18, +0xe0,0x43,0x3c,0x1c,0xf0,0x40,0x39,0xe7,0xe0,0xe, 0x3f,0x96,0x3, 0x5a,0x3f,0x9d, +0xe0,0x43,0x3e,0x9f,0xf0,0x40,0x38,0x6d,0xf0,0x40,0x3c,0x67,0x0, 0xd6,0xf0,0x2, +0x2c,0xf, 0xf0,0x0, 0x23,0x4, 0xe8,0x0, 0xb3,0x2, 0xf0,0x0, 0x21,0x84,0xe8,0x0, +0xb4,0x4, 0x22,0x3, 0xe8,0x0, 0xb2,0x85,0xe3,0xff,0xce,0xe3,0x4, 0x6, 0xe0,0x0, +0x17,0xfc,0xaf,0x82,0x17,0x80,0xaf,0x83,0xe0,0x0, 0xc0,0x74,0xf8,0x0, 0xf, 0x28, +0xb, 0xe1,0x16,0x30,0xf0,0x2f,0x3f,0x1c,0xe7,0xfe,0x2f,0xa8,0xe0,0x2f,0x3b,0x9c, +0xe7,0xfe,0x2f,0xa4,0xe2,0x6, 0xc9,0x0, 0xe7,0xfe,0x2, 0x20,0xeb,0xff,0x7f,0xfa, +0x8f,0x8f,0x16,0xc, 0x3e,0x3f,0x3a,0xfc,0xe7,0xfe,0x2, 0x18,0xe8,0x40,0x3c,0xe8, +0xe2,0x0, 0x7c,0x34,0x7e,0x82,0x7f,0x1, 0x7d,0x3, 0x7f,0x84,0xdd,0xbc,0xea,0x23, +0x7c,0xc4,0x3d,0xe8,0xe2,0x0, 0x7c,0x54,0x7d,0x85,0xdd,0xb5,0x16,0x3b,0xe1,0x29, +0x3e,0x28,0x65,0x85,0x66,0x82,0x67,0x1, 0xe7,0xfe,0x2c,0x80,0xe1,0x2c,0x3e,0x2b, +0xe7,0xfd,0x2e,0x7c,0xe0,0x16,0x3d,0xbb,0xe0,0xc, 0x3c,0x38,0xe0,0x9, 0x3d,0x98, +0xf0,0x8, 0x3b,0x1c,0xd4,0xac,0x3d,0xe8,0xe2,0x1, 0xc5,0xff,0xe2,0x0, 0xcd,0xd9, +0x65,0x3, 0x66,0x82,0x67,0x1, 0x67,0x84,0xe0,0x0, 0x5, 0xd9,0xe0,0x0, 0x16,0x64, +0xf0,0xf, 0x3f,0x17,0x3e,0x2b,0x36,0x21,0x3f,0x9a,0x3f,0x9c,0x66,0xc, 0xe0,0x43, +0x3f,0x9f,0x3f,0xfc,0x3, 0x8, 0xe0,0x0, 0x4e,0x76,0x7f,0x8c,0x7e,0x8, 0x7d,0x8a, +0xf0,0x0, 0x7c,0x87,0xe0,0x0, 0x17,0xc5,0x66,0xa, 0xe1,0x2f,0x3e,0x1f,0xe7,0xfd, +0x27,0xcd,0x66,0x8, 0xe0,0x1, 0x17,0xff,0xe0,0x2f,0x3e,0xf, 0xe7,0xfd,0x27,0xc6, +0x17,0x80,0x7f,0x88,0x7f,0x8a,0xe7,0xfd,0x0, 0xc1,0x66,0x9, 0x3f,0x9c,0xe0,0x8, +0x8f,0xf, 0xe2,0x0, 0xcf,0x5, 0xe7,0xff,0x1, 0x89,0xe0,0x8, 0x8f,0x9f,0xe2,0x1, +0xcf,0xb3,0xe7,0xff,0x1, 0x83,0x14,0x80,0x14,0xa, 0xdc,0xfd,0xe2,0x0, 0xcc,0x2, +0xe7,0xfe,0x2, 0xfc,0xe7,0xfe,0x0, 0xf5,0xea,0x23,0x7f,0x40,0x87,0xe, 0xe2,0x0, +0xcf,0x2, 0xe7,0xfd,0x5, 0x62,0xe0,0x0, 0x17,0x7c,0xaf,0x2, 0xe7,0xfd,0x0, 0xdd, +0xf0,0x0, 0x66,0x7, 0xea,0x23,0x79,0xc2,0xeb,0xff,0x79,0x79,0x8e,0x3, 0xe0,0x0, +0x17,0xfc,0x7e,0x8, 0xaf,0x82,0xe7,0xfd,0x0, 0xc1,0xf2,0x0, 0xcf,0x1f,0xe7,0xff, +0x2, 0x3b,0xe0,0xc, 0x37,0x81,0x3b,0xfc,0xe7,0xff,0x3, 0x36,0xf2,0x0, 0xcf,0xf, +0x5, 0x6, 0xe0,0xc, 0x37,0x82,0x3b,0xfc,0xe7,0xff,0x3, 0x2e,0xe2,0x1, 0xc9,0x7f, +0x2, 0x38,0x14,0x86,0xe0,0x8, 0x37,0xa5,0x7d,0x3, 0x7d,0x85,0x7e,0x82,0x7f,0x1, +0xd3,0xea,0xe0,0x28,0x3c,0x15,0x65,0x3, 0x65,0x85,0x66,0x82,0x67,0x1, 0xe7,0xff, +0x24,0x1b,0xe0,0x0, 0x17,0xc5,0xe1,0x2f,0x3d,0x9f,0xe7,0xff,0x27,0x95,0xe7,0xfe, +0x0, 0xff,0x14,0x80,0x14,0xa, 0xdc,0xaf,0xe2,0x0, 0xcc,0x6, 0xe7,0xfe,0x2, 0xae, +0xe7,0xfe,0x0, 0xa7,0xe0,0x1, 0x1f,0xf2,0xf0,0x40,0x3e,0x64,0x7f,0x89,0xe7,0xff, +0x0, 0xbb,0xe0,0x0, 0x1e,0xba,0xe4,0xe, 0x37,0x8f,0xe2,0xf, 0x3f,0x4f,0x96,0x8d, +0x3f,0xae,0x3f,0x9d,0xe2,0x1, 0xcf,0x95,0xe7,0xfd,0x2, 0x24,0xe7,0xfe,0x0, 0x91, +0xe0,0xc, 0x37,0xa2,0xe0,0x2c,0x3a,0xac,0xe7,0xfe,0x2e,0x6e,0xe0,0x2, 0x16,0x54, +0xe0,0x22,0x39,0x1c,0xe7,0xfe,0x29,0x68,0xe7,0xff,0x0, 0xbd,0xf8,0x0, 0xb0,0x1, +0xe7,0xfd,0x0, 0xf1,0x8, 0xb7,0xf8,0x0, 0xc, 0x3e,0xe1,0xf4,0xc0,0x58,0xea,0x23, +0x79,0xc1,0x3a,0x6a,0xeb,0xff,0x79,0x79,0xe2,0x1, 0xc2,0x7f,0x17,0xff,0xaa,0x3, +0xaf,0x82,0xe0,0x0, 0x25,0x62,0x16,0x7f,0x3e,0x1a,0xe3,0xff,0xc6,0x7f,0xc6,0x1, +0x36,0x22,0xe0,0x3, 0x17,0x6a,0xe0,0x7, 0x17,0xca,0x3f,0x10,0x3f,0x90,0x3e,0x18, +0x96,0x88,0xc4,0x4, 0xe0,0x80,0xb6,0x9e,0x3e,0x78,0xe0,0x40,0x96,0x98,0xe0,0x80, +0xb6,0x9f,0x1, 0xf7,0xe2,0x0, 0xca,0x4, 0xe0,0x0, 0x5, 0xc7,0xf0,0x1, 0x94,0x69, +0xf0,0x1, 0x94,0xf9,0xf8,0x40,0x3c,0x79,0xe0,0x0, 0x4, 0x54,0xe8,0x40,0x3c,0xe9, +0xf0,0x2, 0x24,0xa8,0xe8,0x40,0x3c,0x68,0xd3,0x6e,0xeb,0xff,0x7b,0x7a,0xe0,0x0, +0x17,0xc0,0xe0,0x43,0x3a,0x88,0xaf,0x86,0xea,0x23,0x7f,0xc0,0xe2,0x0, 0xca,0x84, +0xaa,0x8f,0xe0,0x0, 0x5, 0x5c,0xe0,0x0, 0x17,0xfd,0xaf,0x82,0x14,0x87,0xe0,0x1, +0x1f,0x82,0xe0,0x1, 0x1f,0x1, 0x8f,0x8f,0x8c,0xe, 0x37,0xa8,0x3c,0x4f,0x34,0x21, +0xd3,0x52,0xe8,0x40,0x3c,0x78,0xe0,0x1, 0x5, 0x7d,0xe0,0x0, 0x1f,0xf1,0xe0,0x0, +0x1f,0x72,0x8f,0x8f,0x8c,0xe, 0x37,0xa8,0x14,0x86,0x3c,0x4f,0xd3,0x88,0xe3,0xff, +0xc4,0x7f,0xf0,0x40,0x3c,0xf8,0xe0,0x1, 0x3, 0x6d,0xe0,0x0, 0x17,0xfd,0xaf,0x82, +0xe0,0x0, 0x16,0xfd,0x0, 0x86,0xe0,0x0, 0x17,0xff,0xaf,0x82,0xe0,0x0, 0x16,0xff, +0xe0,0x1, 0x1f,0xd5,0x17,0x0, 0x87,0x8f,0xaf,0x3, 0x3f,0xfd,0x14,0x0, 0x4, 0x4, +0xea,0x23,0x7f,0xc2,0x8c,0xf, 0xe0,0xb, 0xc0,0x28,0xf8,0x0, 0xf, 0x28,0xb, 0xe1, +0xf0,0x7, 0x34,0x21,0xf0,0x1, 0x24,0x5b,0xe8,0x40,0x3c,0xe8,0xe8,0x40,0x3c,0x69, +0xd3,0x1a,0xf0,0x40,0x3c,0xf7,0xe0,0x43,0x3a,0x88,0xeb,0xff,0x7b,0x7a,0xe0,0x1, +0x3, 0x44,0x3c,0xe7,0xf0,0x8, 0x34,0xa7,0xd3,0x52,0xea,0x23,0x7f,0xc0,0xe2,0x0, +0xca,0x84,0xac,0x6, 0xaa,0x8f,0xe7,0xff,0x2, 0x28,0xe0,0x2, 0x1f,0xc7,0xf0,0x0, +0x15,0x1, 0xe0,0x1, 0x9f,0x6f,0xe0,0x1, 0x9e,0xff,0xe2,0x0, 0xcf,0x0, 0xf8,0x40, +0x3d,0xea,0xe0,0x7b,0x39,0xae,0x8b,0x6, 0xe0,0x3, 0x12,0xec,0xe2,0x0, 0xce,0x80, +0xf0,0x7, 0x16,0xcc,0xe0,0x1, 0x9f,0xf, 0x3a,0x90,0xf0,0x1d,0x3e,0x90,0xf0,0x0, +0x9e,0x7f,0x7b,0x2, 0xe0,0x7a,0x39,0xad,0x7f,0x1, 0xe8,0x40,0x3b,0xed,0x3b,0x65, +0xf0,0x0, 0x17,0x0, 0x67,0x81,0x94,0x6, 0xe8,0x40,0x3c,0xeb,0x3c,0x2f,0x34,0x26, +0xd3,0x1e,0x97,0x87,0xe1,0x80,0xb4,0x16,0xe8,0xf, 0x3f,0xac,0x64,0x2, 0xe8,0x40, +0x3c,0xea,0x3c,0x3f,0xd3,0x14,0x15,0x1, 0xe8,0xa, 0x3d,0x1e,0xf0,0x40,0x3f,0x6a, +0xf2,0x1, 0xc7,0x7f,0xe8,0x40,0x3a,0x7e,0xe1,0x80,0xb4,0x17,0x1, 0xe4,0xe0,0x3, +0x53,0x66,0xe0,0x3, 0x4b,0xed,0xf0,0x0, 0x11,0x8c,0xf0,0x1, 0x12,0x7c,0x12,0x1, +0xf0,0x13,0x39,0x90,0xf0,0x14,0x3a,0x10,0xe2,0x1, 0xc3,0x7f,0xe8,0x0, 0xab,0x83, +0xf8,0x40,0x3b,0x6d,0xe8,0x0, 0xab,0x4, 0xf0,0x40,0x3b,0xe5,0x3c,0x64,0xf0,0x40, +0x3a,0xe4,0xf0,0x0, 0x11,0x7, 0xf0,0x0, 0x10,0x83,0x0, 0x8b,0xe8,0x2f,0x3d,0x95, +0x2f,0xaf,0xc4,0x1, 0xe2,0x1, 0xc4,0x7f,0xe8,0x40,0x3c,0x7e,0xe0,0x1, 0x1, 0x23, +0xe8,0x80,0x94,0x97,0xf8,0x80,0x90,0x16,0xe2,0x1, 0xc4,0xff,0xe0,0xd, 0x3c,0xa7, +0xe2,0x1, 0xc6,0xff,0xf2,0x1, 0xc0,0x7f,0xe0,0x43,0x3e,0xd, 0xf0,0xf, 0x38,0x26, +0xe2,0x0, 0xce,0x0, 0xe2,0x1, 0xc7,0xff,0xe0,0x41,0x3e,0xcd,0xe0,0x43,0x3d,0x8f, +0xe0,0x43,0x3e,0x8d,0xe0,0x6c,0x3c,0x2d,0xe0,0x41,0x3f,0xcf,0xe2,0x0, 0xcd,0x80, +0xe0,0x43,0x3f,0x8f,0xe8,0x2d,0x3e,0x15,0xe0,0x6b,0x3c,0x2f,0x26,0xd0,0xe2,0x1, +0xca,0x6c,0xe0,0x1, 0x2, 0xc3,0xe8,0x2f,0x3e,0x12,0x2f,0xad,0xe8,0x2f,0x3d,0x92, +0x2f,0xaa,0xe8,0x2c,0x3e,0x11,0xe0,0x0, 0x2e,0x5d,0xe8,0x2b,0x3d,0x91,0xe0,0x0, +0x2d,0xd9,0xf0,0xd, 0x39,0x94,0xf0,0xf, 0x3a,0x14,0xc2,0x1, 0xac,0x8d,0xe2,0x1, +0xc2,0x7f,0xf0,0x0, 0xa8,0xf, 0xe8,0x40,0x3b,0x60,0x3b,0xe9,0xe7,0xff,0x0, 0xb3, +0x86,0x82,0xe7,0xfe,0x0, 0x9f,0xe7,0xff,0x17,0x80,0xaf,0x86,0xe7,0xfd,0x0, 0xe6, +0x14,0x81,0xf0,0x40,0x3c,0xe9,0xe7,0xfd,0x0, 0xd7,0x13,0x82,0xf0,0x0, 0x14,0x1, +0xe7,0xfe,0x0, 0xa4,0x17,0x81,0x3f,0x94,0xe0,0xb, 0x3b,0x99,0xe8,0xc, 0x3b,0x10, +0xe2,0x1, 0xc7,0xff,0x35,0x81,0x36,0x1, 0x16,0xff,0xf0,0x1b,0x39,0x9f,0xf0,0x1a, +0x3a,0x1f,0x3e,0x9f,0x3b,0x9b,0x3b,0x1c,0xe8,0x0, 0xad,0x8b,0xf0,0x1c,0x39,0x9d, +0xe8,0x0, 0xae,0xa, 0xe0,0xb, 0x33,0x81,0xe8,0xd, 0x3e,0x94,0xe0,0xc, 0x33,0x1, +0xe8,0x0, 0xad,0x8c,0xc7,0x81,0xae,0xd, 0xf0,0xb, 0x39,0x9f,0xe8,0x0, 0x8e,0xb, +0xe8,0x0, 0x8e,0x8a,0x3e,0x19,0xe8,0xd, 0x3e,0x90,0x36,0x1, 0xe8,0xf, 0x3f,0x94, +0x36,0x81,0xc2,0x3, 0xae,0xb, 0xe2,0x1, 0xc2,0x7f,0xae,0x8f,0xe7,0xff,0x0, 0xab, +0xe0,0xd, 0x3b,0x99,0xe8,0xf, 0x3b,0x10,0xf0,0xb, 0x39,0x94,0xf0,0xc, 0x3a,0x14, +0x36,0x81,0x37,0x81,0xc2,0x1, 0xae,0x8b,0xe2,0x1, 0xc2,0x7f,0xaf,0x8c,0xe7,0xff, +0x0, 0x9a,0xe2,0x0, 0xca,0x1, 0xaa,0x3, 0x1, 0x19,0x15,0x7e,0x3d,0x14,0xe2,0x1, +0xc5,0x7f,0x17,0x8c,0x3f,0x90,0xc5,0x1, 0xe0,0x1, 0x16,0xfc,0x3e,0x90,0x3d,0x1f, +0xe0,0x80,0x8d,0x9f,0xe0,0x80,0x8e,0x1d,0x3f,0xfa,0xe0,0x80,0xb5,0x95,0xe8,0x80, +0xb6,0x1d,0x1, 0xf7,0xe2,0x0, 0xca,0x1f,0x2, 0x86,0xe0,0x0, 0x17,0xfe,0xaf,0x82, +0xe7,0xfc,0x0, 0xfe,0x12,0x82,0xf0,0x40,0x3d,0x65,0x3c,0xe4,0xe0,0x8, 0x32,0xa5, +0xd2,0x16,0xe2,0x0, 0xcc,0x2, 0xe8,0x40,0x3b,0x6a,0xe0,0x66,0x3b,0xa8,0x13,0xff, +0x3b,0x95,0xc3,0x7f,0xe2,0x1, 0xc3,0xff,0xe2,0x1, 0xc3,0x7f,0x3c,0xe7,0x3d,0x66, +0xe2,0x3, 0x7c,0x6c,0xdb,0x55,0x3d,0x66,0x3c,0xe7,0xe2,0x7, 0x7c,0x4c,0xc2,0x81, +0xdb,0x4f,0xe2,0x1, 0xc2,0xff,0x3a,0xf4,0x5, 0xe1,0xe2,0x7, 0x7c,0xcc,0xe2,0x3, +0x7c,0x6c,0xdb,0x6c,0xe7,0xfc,0x0, 0xd4,0xaa,0x3, 0xe7,0xff,0x0, 0xb8,0x8, 0xb7, +0xf8,0x0, 0xc, 0x3d,0xe1,0xff,0xc0,0x2c,0x7c,0x3, 0x14,0xc, 0x7c,0x84,0x14,0x9c, +0x3c,0x90,0x3c,0x10,0x7d,0x5, 0x7d,0x86,0xd2,0xff,0x14,0xb0,0x3c,0x90,0xe2,0x0, +0x7c,0x14,0xd2,0xfa,0x67,0x7, 0xe2,0x0, 0xcf,0x1, 0x2, 0x8e,0x67,0x88,0x67,0xd, +0xe2,0x0, 0x7c,0x1c,0xe1,0x2f,0x3f,0x8e,0x7f,0x88,0xd2,0x38,0xe0,0x0, 0xc0,0x54, +0xf8,0x0, 0xe, 0xa8,0xb, 0xe1,0x67,0x8c,0xe2,0x0, 0xcf,0x81,0x2, 0x89,0x67,0xd, +0x67,0x88,0xe2,0x0, 0x7c,0x30,0xe1,0x2f,0x3f,0x8e,0x7f,0x8d,0x0, 0xef,0xe2,0x0, +0xcf,0x4, 0x1, 0x87,0xe2,0x0, 0xcf,0x82,0x1, 0xe2,0xe0,0x2, 0x1c,0x32,0x0, 0xe6, +0xe2,0x0, 0xcf,0x84,0x1, 0x85,0xe2,0x0, 0xcf,0x2, 0x1, 0xea,0x0, 0xf7,0xe2,0x0, +0xcf,0x2, 0x1, 0x55,0xe2,0x0, 0xcf,0x82,0x1, 0x63,0x17,0xa8,0x3f,0x90,0xe0,0xf, +0xe, 0xd, 0x17,0xbc,0x3f,0x90,0xe0,0xf, 0xd, 0xb, 0x17,0x0, 0x3f,0xeb,0xf0,0x0, +0x16,0x0, 0x3d,0xed,0x3b,0xea,0x3c,0x6e,0x3c,0xef,0xe8,0x40,0x3d,0x6c,0xf0,0x40, +0x3c,0xec,0xf0,0x40,0x3e,0xed,0xf0,0x0, 0x14,0x0, 0x7f,0x2, 0x7f,0x81,0xd1,0x92, +0xe8,0x40,0x3d,0x6c,0xe8,0x40,0x3d,0xed,0xf0,0x40,0x3d,0x68,0xf0,0x40,0x3d,0xe9, +0xe8,0x40,0x3c,0x68,0x3c,0xe7,0xd1,0x86,0xf0,0x40,0x3e,0x68,0x3d,0xe7,0xf0,0x40, +0x3e,0xe9,0xe8,0x40,0x3d,0x68,0xe8,0x40,0x3c,0x68,0xe8,0x40,0x3c,0xe9,0xd1,0x7a, +0x67,0x2, 0x67,0x81,0x3b,0x68,0x3b,0xe9,0x3d,0x6e,0x3d,0xef,0xe8,0x40,0x3c,0x68, +0xe8,0x40,0x3c,0xe9,0xd1,0x6f,0xe8,0x9, 0x3c,0x9d,0xe8,0x28,0x3c,0x7c,0xf0,0x40, +0x3e,0x78,0x2, 0x87,0xe0,0x0, 0x1, 0xc8,0xf0,0x40,0x3e,0xf9,0xe0,0x0, 0x5, 0xc4, +0x15,0x1, 0x16,0x80,0xe8,0xd, 0x3e,0x9b,0xe8,0x2c,0x3c,0xfa,0xf0,0x40,0x3d,0x7c, +0x15,0x80,0x2, 0x85,0x1, 0x88,0xf0,0x40,0x3d,0xfd,0x5, 0x85,0xc5,0x81,0x17,0x80, +0xe0,0x2a,0x3d,0x7f,0x17,0x0, 0xe0,0x9, 0x3c,0x17,0xe0,0x28,0x3f,0x76,0x3c,0x9b, +0x67,0xe, 0x67,0x89,0xe0,0x28,0x3c,0x7a,0x3f,0x9e,0x65,0x8d,0x67,0x8, 0xc7,0x84, +0xe1,0x2e,0x3f,0xb, 0xe0,0x3, 0x1d,0xa2,0x7f,0x12,0x15,0x1, 0x7f,0x93,0x17,0x0, +0x3c,0x7b,0x2, 0x9c,0x27,0x2, 0x7f,0x93,0x17,0x0, 0x67,0x93,0xe0,0x3, 0x1d,0xa3, +0x15,0x1, 0x3c,0x7b,0x2, 0xad,0xe2,0x0, 0xce,0x0, 0x3c,0x99,0xe0,0x28,0x3c,0x78, +0x3, 0x4, 0x12,0x81,0x3a,0xc9,0x3c,0xe5,0x3e,0x9d,0xe0,0x2c,0x3e,0x7c,0xc7,0xff, +0x3f,0x6a,0x0, 0xf0,0x15,0x0, 0xe7,0xff,0x0, 0xbe,0x17,0x1, 0x3f,0x59,0x27,0xc, +0xe4,0x6, 0x36,0x2f,0xe0,0x7, 0x36,0x41,0xe0,0xe, 0x36,0xc1,0xeb,0x0, 0xce,0x0, +0x3e,0x47,0xe0,0xd, 0x3b,0x4e,0xe4,0xe, 0x34,0x2f,0xe0,0x3, 0x34,0xc1,0x39,0xce, +0xe0,0x2, 0x34,0x41,0x3c,0x62,0x3c,0xe3,0xc7,0x81,0x3f,0x6a,0x0, 0xca,0x27,0x2, +0x7f,0x93,0xe0,0x1, 0x17,0xff,0x3f,0xd9,0xe2,0x1, 0xcf,0x80,0x1, 0x94,0xe0,0x2, +0x17,0x80,0x3f,0xd9,0x2f,0x90,0x3f,0xec,0x3f,0xcd,0x27,0x8d,0xe0,0x1, 0x16,0x80, +0xe0,0xf, 0x3c,0x9d,0x16,0x0, 0xe0,0x2e,0x3c,0x7c,0x3c,0x6e,0xe7,0xfe,0x17,0x0, +0xe0,0x9, 0x3f,0x5f,0xe0,0x0, 0x17,0xd0,0x3f,0x90,0xe0,0xf, 0xc, 0x19,0x17,0x83, +0xe0,0x0, 0x14,0x44,0x7f,0x91,0x3c,0x10,0xe7,0xfe,0x0, 0x89,0x8, 0xb1,0xc0,0x48, +0x7c,0x1, 0xe2,0x0, 0x7c,0x4, 0x7c,0x82,0xe2,0x0, 0x7c,0x94,0x7d,0x3, 0x7d,0x84, +0xd1,0xeb,0xe2,0x0, 0x7c,0xa8,0xe2,0x0, 0x7c,0xc, 0xd1,0xe6,0x67,0x85,0xe2,0x0, +0xcf,0x81,0x5, 0x8c,0x67,0x8a,0xe2,0x0, 0xcf,0x81,0x5, 0x88,0xe2,0x0, 0x7c,0xa8, +0xe2,0x0, 0x7c,0x14,0xd2,0x30,0xc0,0x38,0x8, 0xe1,0x14,0x7f,0x0, 0xfd,0x8, 0xb1, +0xc0,0x48,0x7c,0x1, 0xe2,0x0, 0x7c,0x4, 0x7c,0x82,0xe2,0x0, 0x7c,0x94,0x7d,0x3, +0x7d,0x84,0xd1,0xca,0xe2,0x0, 0x7c,0xa8,0xe2,0x0, 0x7c,0xc, 0xd1,0xc5,0x67,0x85, +0xe2,0x0, 0xcf,0x81,0x5, 0x8c,0x67,0x8a,0xe2,0x0, 0xcf,0x81,0x5, 0x88,0xe2,0x0, +0x7c,0xa8,0xe2,0x0, 0x7c,0x14,0xd2,0xf, 0xc0,0x38,0x8, 0xe1,0x14,0x1, 0x0, 0xfd, +0x8, 0xb4,0xc0,0x6c,0x17,0x83,0x7f,0x81,0xe4,0xf, 0x34,0x4f,0x7f,0x82,0x2c,0x8, +0x17,0x82,0x7f,0x81,0x14,0x4, 0x3c,0x10,0xd0,0xf1,0xc0,0x14,0xa, 0x61,0xe2,0x0, +0xcc,0x0, 0x3, 0x17,0xeb,0x0, 0xcf,0x80,0x3c,0x7f,0x1, 0x15,0xe0,0x41,0x39,0x48, +0x3c,0x62,0xd0,0xc8,0x11,0x9d,0x39,0x98,0x3d,0x63,0x3c,0xe2,0x14,0x0, 0xd0,0xac, +0x12,0x10,0x15,0x3c,0x3a,0x10,0x3d,0x23,0xe0,0x4, 0xc, 0x19,0x7d,0x3, 0x0, 0xe3, +0x39,0x68,0x0, 0xef,0xeb,0x83,0xcc,0x60,0x14,0x80,0x0, 0xe0,0xe4,0xa, 0x34,0x44, +0xe1,0xf7,0xc5,0x6c,0xe0,0xb, 0x34,0x2c,0x35,0xcb,0xe8,0x0, 0xcd,0xa0,0x6, 0x9, +0xe3,0xff,0xcd,0x6a,0x5, 0x16,0xe0,0x41,0x3d,0x4a,0xe0,0x8, 0x35,0xda,0x38,0x82, +0xe2,0x0, 0xcd,0xa, 0x2, 0x8, 0x35,0xba,0xe0,0x41,0x3d,0xa, 0x34,0xda,0xe0,0x8, +0x3c,0xcb,0x38,0x82,0xea,0xff,0xcd,0x70,0x3c,0x7a,0x2, 0x83,0x14,0x7f,0x38,0x82, +0x14,0x0, 0x38,0x82,0xe0,0xd, 0x3c,0x49,0xe2,0x0, 0xce,0x8f,0x3f,0xe8,0x3f,0x69, +0x2, 0x8a,0xea,0x1b,0x7c,0xa0,0xe9,0xff,0xc4,0xff,0x3c,0x9e,0x37,0xa4,0x3f,0x99, +0x8c,0xf, 0x38,0x82,0x8, 0xb2,0xe2,0x0, 0xcc,0x0, 0x3, 0x18,0xe2,0x0, 0xcc,0x80, +0xe0,0x41,0x3f,0xc8,0x3, 0xb, 0x11,0x1, 0x15,0x0, 0xe0,0x41,0x3c,0xce,0x3c,0x6f, +0xd1,0xe7,0x29,0x3, 0xe0,0x41,0x3c,0x48,0x9, 0x61,0x15,0x0, 0x3c,0x6f,0xd1,0xe0, +0x0, 0xfa,0x15,0x0, 0x9, 0x21,0xe0,0x3, 0x0, 0xdc,0xe2,0x0, 0xcc,0x80,0x3, 0x7a, +0x11,0x0, 0x0, 0xeb,0x8, 0xb2,0xe2,0x0, 0xcc,0x0, 0x3, 0xf, 0xe0,0x41,0x3c,0x48, +0x11,0x1, 0xe2,0x0, 0xcc,0x80,0x3, 0x3, 0xe0,0x41,0x3c,0xc9,0x15,0x1, 0xd1,0xc8, +0x21,0x3, 0xe0,0x41,0x3c,0x48,0x9, 0x61,0x11,0x0, 0x0, 0xf4,0x15,0x0, 0xe0,0x3, +0x0, 0xc0,0xe1,0xff,0x17,0x7f,0x3f,0x59,0xe4,0xd, 0x34,0xc0,0x3f,0xe9,0xe1,0xff, +0x14,0xff,0xe4,0xc, 0x35,0xc0,0x3c,0xdb,0xf0,0x40,0x39,0x6a,0xe0,0xa, 0x3f,0x39, +0x3c,0xbd,0x3f,0x3c,0x3e,0xbc,0xe0,0xc, 0x3f,0x19,0xe4,0xe, 0x35,0x40,0x3f,0x1c, +0x3c,0xfe,0xf0,0x40,0x3a,0x68,0x5, 0x84,0xe2,0x0, 0x16,0x0, 0x3e,0x9c,0xe8,0xf, +0x3f,0xb2,0xe8,0xb, 0x3d,0xb4,0xe4,0xc, 0x37,0x40,0xe3,0xff,0xc5,0x7f,0xe4,0xe, +0x37,0x20,0xe0,0x16,0x3e,0x1d,0xe0,0x17,0x3f,0x1a,0x3f,0x9b,0xe8,0x40,0x3c,0xe7, +0xe8,0x8, 0x3f,0x96,0x38,0x82,0x25,0xd, 0x17,0xa0,0x3f,0xaa,0xe2,0x0, 0xcf,0x80, +0x2, 0x9, 0xe0,0x41,0x3f,0xcf,0x16,0x80,0xe0,0xc, 0x34,0xbf,0x3c,0x6c,0x3c,0xed, +0x38,0x82,0x34,0x3a,0xe0,0xf, 0x34,0xdf,0xe0,0xd, 0x34,0xba,0xe0,0xc, 0x3c,0x4f, +0x0, 0xf6,0xe1,0xff,0x17,0xff,0x3c,0x7f,0x2, 0x91,0xe0,0x2, 0x17,0x80,0xe1,0x2f, +0x3c,0x2f,0x37,0xa3,0x17,0x20,0x3f,0x2f,0xe0,0xf, 0x34,0x5f,0xe0,0x2, 0x1c,0x44, +0x3f,0x98,0x8c,0xf, 0xe0,0x8, 0x3f,0x28,0x38,0x82,0xe0,0x3, 0x1f,0xa4,0x17,0x10, +0x3c,0x7f,0x17,0x98,0xe0,0x6f,0x3d,0xae,0x0, 0xee,0x8, 0xb7,0x17,0x8c,0x3f,0x98, +0xe0,0xf, 0x9, 0x3, 0xa7,0x88,0xa2,0x98,0xe2,0x0, 0xcf,0x81,0x2, 0x9c,0xe0,0xf, +0x31,0x25,0xe4,0xd, 0x31,0x28,0x37,0xcd,0xe0,0xe, 0x31,0xc8,0xea,0x0, 0xc9,0x8, +0x39,0x4f,0xe0,0x3, 0x3e,0xce,0xe0,0xf, 0x17,0xff,0xe0,0x3, 0x1c,0x25,0xe4,0x5, +0x32,0xaf,0x3c,0x52,0xe4,0xf, 0x37,0xa4,0x3c,0x45,0xea,0xff,0xc7,0xf0,0x3c,0x4f, +0x3c,0xe3,0xb, 0xe1,0xe2,0x0, 0xcf,0x84,0xe0,0x1, 0x1, 0xc, 0xe2,0x0, 0xcf,0x82, +0xe0,0x1, 0x1, 0x3, 0x3f,0xe2,0x3f,0xc3,0x27,0xe9,0xa7,0xa8,0xe3,0xf8,0xcf,0x82, +0xe0,0x0, 0x3, 0x49,0xe7,0xf8,0x12,0x2, 0x3a,0x2f,0xe2,0x0, 0xca,0x38,0x2, 0x39, +0x3d,0x64,0x3c,0x62,0x3c,0xe3,0xd1,0x38,0x3b,0x68,0x3b,0xe9,0x3d,0x64,0x14,0x0, +0x14,0x81,0xdf,0x8a,0xc4,0xff,0x17,0x7f,0xe0,0x28,0x3c,0x7e,0xe0,0xf, 0x3c,0x52, +0xe0,0xe, 0x3c,0xd3,0x3f,0xce,0x17,0x0, 0xe1,0x2b,0x3f,0x8e,0x3e,0x66,0xe0,0xd, +0x3b,0xcb,0xe0,0x1, 0x17,0xff,0x3f,0xdd,0xe2,0x1, 0xcf,0x80,0x1, 0x9d,0xe0,0x2, +0x17,0x80,0x3f,0xdd,0x27,0x86,0xe0,0x1, 0xc6,0x80,0x17,0x80,0xe0,0x2c,0x3e,0x7f, +0xe0,0x3, 0x1f,0xa6,0x17,0x1, 0x3f,0xfc,0x17,0x80,0xe0,0x6f,0x3c,0xae,0xe0,0x3, +0x36,0xc8,0xe4,0xe, 0x36,0x28,0x39,0xce,0xe0,0x2, 0x36,0x48,0xe7,0xff,0x0, 0xa7, +0x16,0x0, 0x16,0x80,0x0, 0xdf,0xe0,0x0, 0xc6,0xff,0x17,0x0, 0xe0,0x2c,0x3e,0x7e, +0x0, 0xe8,0xe2,0x7, 0xcf,0xff,0x2, 0x35,0xe0,0x1, 0x17,0x7f,0x3f,0x53,0xe2,0x1, +0xcf,0x0, 0x1, 0x9b,0xe0,0x2, 0x17,0x0, 0x3f,0x53,0x27,0x6, 0xe0,0x1, 0xc1,0x80, +0x17,0x0, 0xe0,0x22,0x39,0x7e,0xe0,0x3, 0x1f,0x27,0x39,0x7e,0x2, 0x91,0xe0,0x7, +0xc7,0xff,0xe4,0xe, 0x31,0x28,0xe0,0xd, 0x31,0xc8,0x3e,0xce,0xe0,0xc, 0x31,0x48, +0x39,0x6c,0x39,0xed,0xe7,0xfe,0x0, 0xfb,0xe0,0x0, 0xc1,0xff,0x0, 0xea,0xe4,0xe, +0x31,0x2f,0xe0,0xd, 0x31,0xc1,0x3e,0xce,0xe0,0xc, 0x31,0x41,0x39,0x6c,0x39,0xed, +0xe0,0x8, 0xc7,0x80,0x0, 0xe7,0x17,0x80,0x11,0x0, 0x11,0x80,0xe7,0xfe,0x0, 0xe7, +0xe0,0xf, 0x17,0xff,0x0, 0xfa,0xe0,0x8, 0xe, 0xd, 0xe0,0x3, 0x1f,0xa8,0xe4,0xb, +0x36,0x44,0xe4,0xa, 0x36,0x4f,0xe2,0xf, 0xc5,0xff,0xbd,0x19,0x3f,0xdc,0x3f,0x6d, +0x2d,0x9f,0xe0,0xd, 0x3f,0xcd,0x2e,0x84,0x17,0x82,0xbf,0x89,0x38,0x82,0xe4,0xb, +0x37,0x48,0xe0,0xc, 0x37,0xa8,0xe0,0xd, 0x37,0x28,0x17,0x83,0xe0,0x3, 0x1f,0x29, +0xbf,0x89,0x3e,0x4b,0xe7,0xf8,0x17,0x82,0x3e,0x9d,0xe0,0x2c,0x3e,0x7c,0x3e,0x7e, +0xc7,0xff,0x5, 0xfb,0xbf,0xa9,0xc4,0x8c,0xe0,0x9, 0xe, 0x1d,0x38,0x82,0xe2,0xf, +0xcd,0xff,0x1, 0x98,0x3f,0xcd,0x2f,0x83,0x17,0x84,0x0, 0xe0,0xea,0x0, 0xcf,0x88, +0x3f,0xdc,0x27,0x82,0x17,0x81,0xe4,0xe, 0x36,0xc8,0xbf,0x89,0xe0,0xf, 0x36,0x28, +0x3f,0xce,0xe0,0x3, 0x1f,0x2a,0x3f,0xde,0xbf,0xb9,0xe0,0xf, 0x36,0xa8,0xbf,0xc9, +0x38,0x82,0xe1,0xf8,0xc5,0x81,0xbd,0xa9,0x3e,0xe9,0x16,0x3, 0xe1,0x80,0xbe,0x3d, +0x37,0xa8,0xe4,0xc, 0x37,0x48,0x3f,0xcc,0xe8,0x20,0xcf,0x80,0x37,0x28,0xbf,0xb9, +0xbf,0x1d,0x38,0x82,0xa7,0x8, 0xe2,0x0, 0xcf,0x1, 0xe0,0x0, 0x5, 0xc8,0xa7,0x89, +0xe2,0x0, 0xcf,0x81,0xe0,0x0, 0x5, 0xc3,0xe2,0x0, 0xcf,0x4, 0x1, 0x91,0xe2,0x0, +0xcf,0x84,0x1, 0x86,0xa7,0x99,0xa4,0x18,0xe0,0x8, 0x3f,0xa8,0x38,0x82,0xa7,0x98, +0xe2,0x0, 0xcf,0x80,0x14,0x7f,0x17,0x81,0xe0,0x68,0x39,0x2f,0x38,0x82,0xe2,0x0, +0xcf,0x84,0x1, 0x87,0xa7,0x99,0xe2,0x0, 0xcf,0x80,0x14,0x1, 0x17,0xff,0x0, 0xf5, +0xe2,0x0, 0xcf,0x2, 0x1, 0x86,0xe2,0x0, 0xcf,0x82,0x1, 0xf5,0x14,0x0, 0x38,0x82, +0xe2,0x0, 0xcf,0x82,0x1, 0x65,0xa7,0x98,0xa7,0x19,0x3f,0xfe,0x1, 0xe2,0xa6,0xa8, +0xa7,0x29,0x3e,0xfe,0x2, 0x5e,0x4, 0x68,0xc4,0xc, 0xc4,0x8c,0xe0,0x8, 0xe, 0xd, +0xe0,0x9, 0xd, 0xb, 0x3e,0x7a,0x2, 0xd5,0x1, 0x83,0x3e,0xfb,0x2, 0xd2,0x3d,0x7c, +0x2, 0xdb,0x1, 0xe5,0x3d,0xfd,0x2, 0xd8,0x0, 0xe2,0x14,0x1, 0x38,0x82,0x17,0x81, +0x17,0x0, 0xe1,0x2d,0x3c,0x19,0x26,0x84,0xe1,0x2d,0x3f,0x8e,0x2e,0x88,0x17,0x0, +0x2f,0x8c,0xe2,0x0, 0xcd,0x0, 0xe0,0x68,0x39,0x2e,0x38,0x82,0xe2,0x0, 0xcc,0x80, +0x4, 0x77,0x34,0xa1,0x37,0xa1,0x0, 0xee,0x3c,0x79,0x4, 0x83,0x3c,0x29,0x3f,0x4f, +0x37,0xc1,0x34,0xc1,0x0, 0xee,0x25,0xd, 0x17,0xa0,0x3f,0xaa,0xe2,0x0, 0xcf,0x80, +0x2, 0x9, 0xe0,0x41,0x3f,0xcf,0x16,0x0, 0xe0,0xd, 0x34,0x5f,0x3c,0x6c,0x3c,0xed, +0x38,0x82,0xe0,0xc, 0x34,0x5a,0xe0,0xf, 0x34,0x3f,0xe0,0xa, 0x34,0xda,0xe0,0xd, +0x3d,0x4f,0x0, 0xf5,0x3d,0xe8,0xe2,0x0, 0xcd,0x3, 0x5, 0xad,0xe0,0xc, 0x3c,0x49, +0xe2,0x0, 0xc6,0x3, 0x2e,0x28,0xc5,0x7c,0xe0,0xc, 0x35,0x21,0xe2,0x0, 0xc6,0x18, +0xe1,0x80,0xa7,0x99,0x26,0x8, 0xea,0x0, 0xce,0x81,0xe0,0x4a,0xce,0x88,0x3e,0xac, +0x3f,0x6f,0x3e,0x82,0xc5,0x70,0x6, 0x93,0xe1,0x80,0xa7,0x19,0xe1,0x80,0xbf,0x9b, +0xe1,0x80,0xa7,0x99,0xe1,0x80,0xbf,0x1b,0xe1,0x80,0xa7,0x19,0xe1,0x80,0xbf,0x9b, +0xe1,0x80,0xa7,0x99,0xc5,0x70,0xe1,0x80,0xbf,0x1b,0x6, 0x6f,0xe1,0x80,0xbf,0x9b, +0xe2,0x0, 0xc5,0x3, 0xc5,0x7f,0x6, 0x87,0xe1,0x80,0x86,0x19,0xc5,0x7f,0xe1,0x80, +0xae,0x1b,0x6, 0x7b,0x38,0x82,0x0, 0x0, 0xe2,0x0, 0xcd,0x3, 0x5, 0xb1,0xe2,0x1, +0xc4,0xff,0xe0,0xc, 0x34,0xa8,0x3c,0xcc,0xe4,0xc, 0x34,0xa0,0x3c,0xcc,0xe0,0x41, +0x3e,0x48,0xe2,0x0, 0xc6,0x3, 0xe0,0xb, 0x3e,0x18,0xe0,0xd, 0x3d,0x2c,0x3e,0x6d, +0xe2,0x0, 0xc6,0xc, 0x26,0x7, 0xea,0x0, 0xcf,0x81,0xe0,0x4a,0xcf,0xf8,0x3f,0xac, +0x3f,0x82,0xe1,0xff,0xc6,0xf0,0x6, 0x8b,0xe1,0x80,0xbc,0x9b,0xe1,0x80,0xbc,0x9b, +0xe1,0x80,0xbc,0x9b,0xc6,0xf0,0xe1,0x80,0xbc,0x9b,0x6, 0x77,0x3d,0x18,0xe0,0xc0, +0xac,0xba,0xac,0x9a,0xac,0xaa,0xac,0x88,0xac,0x98,0xac,0xa8,0x38,0x82,0x3d,0xe8, +0xc5,0x7f,0x6, 0x85,0xe1,0x80,0xac,0x9b,0xc5,0x7f,0x6, 0x7d,0x38,0x82,0xe0,0x2, +0x1f,0xca,0xbc,0xf, 0x38,0x82,0xe0,0x2, 0x1f,0x4a,0xe0,0x3, 0x1c,0x2b,0xa7,0x8e, +0x3f,0xb8,0xe0,0x3, 0x1c,0x2c,0x3f,0x98,0xe0,0x3, 0x1c,0x2d,0xbf,0x8e,0x3c,0x5f, +0x38,0x82,0x8, 0xb1,0xe0,0x60,0x3c,0x87,0xea,0x25,0x7f,0xa8,0xe0,0x0, 0x15,0x60, +0x3c,0x6f,0xdf,0x71,0xe0,0x60,0x3c,0x17,0x8, 0xe1,0x0, 0x0, 0x0, 0x0, 0x2, 0xa8, +0x0, 0x0, 0x2, 0xb2,0x0, 0x0, 0x2, 0xbc,0x0, 0x0, 0x2, 0x94,0x0, 0x0, 0x2, 0x9e, +0x0, 0x0, 0x3, 0x3c,0x0, 0x0, 0x3, 0x44,0x0, 0x0, 0x3, 0x36,0x0, 0x0, 0x3, 0x36, +0x0, 0x0, 0x3, 0x36,0x0, 0x0, 0x3, 0x36,0x0, 0x0, 0x3, 0x36,0x0, 0x0, 0x3, 0x36, +0x0, 0x0, 0x3, 0x36,0x0, 0x0, 0x3, 0x36,0x0, 0x0, 0x3, 0x4a,0x0, 0x0, 0x3, 0x5a, +0x0, 0x0, 0x3, 0x6a,0x0, 0x0, 0x3, 0x6a,0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x5, 0x3c, +0x0, 0x0, 0x4, 0x32,0x0, 0x0, 0x4, 0x32,0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x5, 0x3c, +0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x4, 0x32,0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x5, 0x3c, +0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x4, 0x32,0x0, 0x0, 0x4, 0x32,0x0, 0x0, 0x4, 0x32, +0x0, 0x0, 0x4, 0x32,0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x5, 0x3c, +0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x5, 0x3c, +0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x5, 0x3c, +0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x5, 0x3c, +0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x5, 0x3c, +0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x4, 0x32, +0x0, 0x0, 0x4, 0x32,0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x5, 0x3c, +0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x4, 0x32,0x0, 0x0, 0x4, 0x32,0x0, 0x0, 0x5, 0x3c, +0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x5, 0x3c, +0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x4, 0x32,0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x4, 0x32, +0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x5, 0x3c, +0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x5, 0x3c, +0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x5, 0x3c, +0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x5, 0x3c, +0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x5, 0x3c, +0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x5, 0x3c, +0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x5, 0x3c,0x0, 0x0, 0x4, 0x32,0x0, 0x0, 0x4, 0x32, +0x0, 0x0, 0x4, 0x32,0x0, 0x0, 0x4, 0x32,0x0, 0x0, 0x6, 0x2a,0x0, 0x0, 0x5, 0x72, +0x0, 0x0, 0x5, 0x72,0x0, 0x0, 0x5, 0x72,0x0, 0x0, 0x5, 0x72,0x0, 0x0, 0x5, 0x72, +0x0, 0x0, 0x5, 0x72,0x0, 0x0, 0x5, 0x72,0x0, 0x0, 0x5, 0x72,0x0, 0x0, 0x5, 0x72, +0x0, 0x0, 0x5, 0x72,0x0, 0x0, 0x5, 0x72,0x0, 0x0, 0x5, 0x72,0x0, 0x0, 0x5, 0x72, +0x0, 0x0, 0x5, 0x72,0x0, 0x0, 0x5, 0x72,0x0, 0x0, 0x5, 0x72,0x0, 0x0, 0x6, 0x14, +0x0, 0x0, 0x5, 0x72,0x0, 0x0, 0x5, 0xf8,0x0, 0x0, 0x5, 0x72,0x0, 0x0, 0x5, 0xe0, +0x0, 0x0, 0x5, 0xd2,0x0, 0x0, 0x5, 0xd2,0x0, 0x0, 0x5, 0xc4,0x0, 0x0, 0x5, 0xc4, +0x0, 0x0, 0x5, 0xc4,0x0, 0x0, 0x5, 0x72,0x0, 0x0, 0x5, 0xb2,0x0, 0x0, 0x5, 0x72, +0x0, 0x0, 0x5, 0x72,0x0, 0x0, 0x5, 0x72,0x0, 0x0, 0x6, 0x6c,0x0, 0x0, 0x6, 0x6c, +0x0, 0x0, 0x6, 0x6c,0x0, 0x0, 0x5, 0x72,0x0, 0x0, 0x5, 0x72,0x0, 0x0, 0x5, 0x72, +0x0, 0x0, 0x5, 0x72,0x0, 0x0, 0x5, 0x72,0x0, 0x0, 0x8, 0xb2,0x0, 0x0, 0x6, 0x5e, +0x0, 0x0, 0x6, 0x50,0x0, 0x0, 0x5, 0xa4,0x0, 0x0, 0x5, 0x96,0x0, 0x0, 0x5, 0x72, +0x0, 0x0, 0x5, 0x72,0x0, 0x0, 0x6, 0x7c,0x80,0x0, 0xd, 0x0, 0x80,0x0, 0xc, 0x0, +0x80,0x0, 0xb, 0x0, 0x80,0x0, 0xa, 0x0, 0x80,0x0, 0x9, 0x0, 0x80,0x0, 0x7, 0x0, +0x80,0x0, 0x5, 0x0, 0x80,0x0, 0x4, 0x0, 0x80,0x0, 0x3, 0x0, 0x80,0x0, 0x2, 0x0, +0x80,0x0, 0x1, 0x0, 0x80,0x0, 0x0, 0x0, 0x80,0x1, 0x20,0x0, 0x0, 0x3, 0x86,0x60, +0x0, 0x3, 0x80,0x0, 0x80,0x1, 0x40,0x0, 0x80,0x1, 0x10,0x0, 0x80,0x0, 0x6, 0x0, +0x80,0x0, 0x8, 0x0, 0x50,0x1, 0x32,0x2, 0x0, 0x3, 0xf0,0x4, 0xce,0x5, 0x9c,0x6, +0x84,0x7, 0x81,0x8, 0x0, 0x2, 0x1, 0x0, 0x2, 0x1, 0x0, 0x2, 0x1, 0x0, 0x2, 0x1, +0x0, 0x2, 0x1, 0x0, 0x2, 0x1, 0x0, 0x2, 0x1, 0x0, 0x2, 0x1, 0x0, 0x2, 0x1, 0x0, +0x2, 0x1, 0x0, 0x2, 0xeb,0xaa,0x8, 0x0, 0x0, 0x2, 0xb8,0xac,0x0, 0x1, 0x6, 0xc, +0x0, 0x1, 0x5, 0xca,0x0, 0x1, 0x5, 0x50,0x0, 0x1, 0x5, 0xca,0x0, 0x1, 0x5, 0xc0, +0x0, 0x1, 0x6, 0x2e,0x0, 0x1, 0x6, 0x24,0x0, 0x1, 0x5, 0x54,0x0, 0x1, 0x6, 0x24, +0x0, 0x1, 0x5, 0xc0,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x2, 0x1, 0x1, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0x2, 0x1, 0x1, 0x1, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0x3, 0x2, 0x1, 0x1, 0x1, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0x3, 0x2, 0x1, 0x1, 0x1, 0x1, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0x4, 0x2, 0x2, 0x1, 0x1, 0x1, +0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9, 0x4, 0x3, 0x2, 0x1, 0x1, 0x1, +0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0x5, 0x3, 0x2, 0x2, 0x1, 0x1, +0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0x5, 0x3, 0x2, 0x2, 0x1, 0x1, +0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 0x6, 0x4, 0x3, 0x2, 0x2, 0x1, +0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0xd, 0x6, 0x4, 0x3, 0x2, 0x2, 0x1, +0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0xe, 0x7, 0x4, 0x3, 0x2, 0x2, 0x2, +0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0xf, 0x7, 0x5, 0x3, 0x3, 0x2, 0x2, +0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x1, 0x2, 0x2, 0x3, 0x3, 0x3, 0x3, +0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x5, 0x5, 0x5, 0x5, 0x5, 0x5, 0x5, 0x5, +0x5, 0x5, 0x5, 0x5, 0x5, 0x5, 0x5, 0x5, 0x6, 0x6, 0x6, 0x6, 0x6, 0x6, 0x6, 0x6, +0x6, 0x6, 0x6, 0x6, 0x6, 0x6, 0x6, 0x6, 0x6, 0x6, 0x6, 0x6, 0x6, 0x6, 0x6, 0x6, +0x6, 0x6, 0x6, 0x6, 0x6, 0x6, 0x6, 0x6, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, +0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, +0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, +0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, +0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, +0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, +0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, +0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, +0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, +0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, +0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, +0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, +0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x72,0x8d,0x0, 0xff,0xda,0x25,0x4, 0xa7, +0x24,0x87,0x55,0x56,0x72,0x8d,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x34,0x34,0x33,0x35,0x33,0x32,0x30,0x31, +0x44,0x31,0x30,0x30,0x33,0x31,0x30,0x30,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x30,0x30,0x31,0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, +0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, +0x1, 0x1, 0x0, 0x1, 0x1, 0x12,0x0, 0x20,0x0, 0x12,0x20,0x12,0x20,0x0, 0x0, 0x2, +0x40,0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x3, 0x1b,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x3, 0x1b,0x3, 0x1a,0x3, 0x19,0x3, 0x18,0x3, 0x17,0x3, 0x16,0x3, 0x15,0x3, +0x14,0x3, 0x13,0x3, 0x12,0x3, 0x11,0x3, 0x10,0x3, 0xf, 0x3, 0xe, 0x3, 0xd, 0x3, +0xc, 0x3, 0xb, 0x3, 0xa, 0x3, 0x9, 0x3, 0x8, 0x3, 0x7, 0x3, 0x6, 0x3, 0x5, 0x3, +0x4, 0x3, 0x3, 0x3, 0x2, 0x3, 0x1, 0x3, 0x0, 0x2, 0xff,0x2, 0xfe,0x2, 0xfd,0x2, +0xfc,0x2, 0xf4,0x2, 0xf3,0x2, 0xf2,0x2, 0xf1,0x2, 0xf0,0x2, 0xef,0x2, 0xee,0x2, +0xed,0x2, 0xec,0x2, 0xeb,0x2, 0xea,0x2, 0xe9,0x2, 0xe8,0x2, 0xe7,0x2, 0xe6,0x2, +0xe5,0x2, 0xe4,0x2, 0xe3,0x2, 0xe2,0x2, 0xe1,0x2, 0xe0,0x2, 0xdf,0x2, 0xde,0x2, +0xdd,0x2, 0xdc,0x2, 0xdb,0x2, 0xda,0x2, 0xd9,0x2, 0xd8,0x2, 0xd7,0x2, 0xd6,0x2, +0xd5,0x2, 0xcd,0x2, 0xcc,0x2, 0xcb,0x2, 0xca,0x2, 0xc9,0x2, 0xc8,0x2, 0xc7,0x2, +0xc6,0x2, 0xc5,0x2, 0xc4,0x2, 0xc3,0x2, 0xc2,0x2, 0xc1,0x2, 0xc0,0x2, 0xbf,0x2, +0xbe,0x2, 0xbd,0x2, 0xbc,0x2, 0xbb,0x2, 0xba,0x2, 0xb9,0x2, 0xb8,0x2, 0xb7,0x2, +0xb6,0x2, 0xb5,0x2, 0xb4,0x2, 0xb3,0x2, 0xb2,0x2, 0xb1,0x2, 0xb0,0x2, 0xaf,0x2, +0xae,0x2, 0xa3,0x2, 0xa2,0x2, 0xa1,0x2, 0xa0,0x2, 0x9f,0x2, 0x9e,0x2, 0x9d,0x2, +0x9c,0x2, 0x9b,0x2, 0x9a,0x2, 0x99,0x2, 0x98,0x2, 0x97,0x2, 0x96,0x2, 0x95,0x2, +0x94,0x2, 0x93,0x2, 0x92,0x2, 0x91,0x2, 0x90,0x2, 0x8f,0x2, 0x8e,0x2, 0x8d,0x2, +0x8c,0x2, 0x8b,0x2, 0x8a,0x2, 0x89,0x2, 0x88,0x2, 0x87,0x2, 0x86,0x2, 0x85,0x2, +0x84,0x2, 0x7c,0x2, 0x7b,0x2, 0x7a,0x2, 0x79,0x2, 0x78,0x2, 0x77,0x2, 0x76,0x2, +0x75,0x2, 0x74,0x2, 0x73,0x2, 0x72,0x2, 0x71,0x2, 0x70,0x2, 0x6f,0x2, 0x6e,0x2, +0x6d,0x2, 0x6c,0x2, 0x6b,0x2, 0x6a,0x2, 0x69,0x2, 0x68,0x2, 0x67,0x2, 0x66,0x2, +0x65,0x2, 0x64,0x2, 0x63,0x2, 0x62,0x2, 0x61,0x2, 0x60,0x2, 0x5f,0x2, 0x5e,0x2, +0x5d,0x2, 0x55,0x2, 0x54,0x2, 0x53,0x2, 0x52,0x2, 0x51,0x2, 0x50,0x2, 0x4f,0x2, +0x4e,0x2, 0x4d,0x2, 0x4c,0x2, 0x4b,0x2, 0x4a,0x2, 0x49,0x2, 0x48,0x2, 0x47,0x2, +0x46,0x2, 0x45,0x2, 0x44,0x2, 0x43,0x2, 0x42,0x2, 0x41,0x2, 0x40,0x2, 0x3f,0x2, +0x3e,0x2, 0x3d,0x2, 0x3c,0x2, 0x3b,0x2, 0x3a,0x2, 0x39,0x2, 0x38,0x2, 0x37,0x2, +0x36,0x2, 0x2b,0x2, 0x2a,0x2, 0x29,0x2, 0x28,0x2, 0x27,0x2, 0x26,0x2, 0x25,0x2, +0x24,0x2, 0x23,0x2, 0x22,0x2, 0x21,0x2, 0x20,0x2, 0x1f,0x2, 0x1e,0x2, 0x1d,0x2, +0x1c,0x2, 0x1b,0x2, 0x1a,0x2, 0x19,0x2, 0x18,0x2, 0x17,0x2, 0x16,0x2, 0x15,0x2, +0x14,0x2, 0x13,0x2, 0x12,0x2, 0x11,0x2, 0x10,0x2, 0xf, 0x2, 0xe, 0x2, 0xd, 0x2, +0xc, 0x2, 0x4, 0x2, 0x3, 0x2, 0x2, 0x2, 0x1, 0x2, 0x0, 0x1, 0xff,0x1, 0xfe,0x1, +0xfd,0x1, 0xfc,0x1, 0xfb,0x1, 0xfa,0x1, 0xf9,0x1, 0xf8,0x1, 0xf7,0x1, 0xf6,0x1, +0xf5,0x1, 0xf4,0x1, 0xf3,0x1, 0xf2,0x1, 0xf1,0x1, 0xf0,0x1, 0xef,0x1, 0xee,0x1, +0xed,0x1, 0xec,0x1, 0xeb,0x1, 0xea,0x1, 0xe9,0x1, 0xe8,0x1, 0xe7,0x1, 0xe6,0x1, +0xe5,0x1, 0xdd,0x1, 0xdc,0x1, 0xdb,0x1, 0xda,0x1, 0xd9,0x1, 0xd8,0x1, 0xd7,0x1, +0xd6,0x1, 0xd5,0x1, 0xd4,0x1, 0xd3,0x1, 0xd2,0x1, 0xd1,0x1, 0xd0,0x1, 0xcf,0x1, +0xce,0x1, 0xcd,0x1, 0xcc,0x1, 0xcb,0x1, 0xca,0x1, 0xc9,0x1, 0xc8,0x1, 0xc7,0x1, +0xc6,0x1, 0xc5,0x1, 0xc4,0x1, 0xc3,0x1, 0xc2,0x1, 0xc1,0x1, 0xc0,0x1, 0xbf,0x1, +0xbe,0x1, 0x62,0x1, 0x61,0x1, 0x60,0x1, 0x5f,0x1, 0x5e,0x1, 0x5d,0x1, 0x5c,0x1, +0x5b,0x1, 0x5a,0x1, 0x59,0x1, 0x58,0x1, 0x57,0x1, 0x56,0x1, 0x55,0x1, 0x54,0x1, +0x53,0x1, 0x52,0x1, 0x51,0x1, 0x50,0x1, 0x4f,0x1, 0x4e,0x1, 0x4d,0x1, 0x4c,0x1, +0x4b,0x1, 0x4a,0x1, 0x49,0x1, 0x48,0x1, 0x47,0x1, 0x46,0x1, 0x45,0x1, 0x44,0x1, +0x43,0x1, 0x3b,0x1, 0x3a,0x1, 0x39,0x1, 0x38,0x1, 0x37,0x1, 0x36,0x1, 0x35,0x1, +0x34,0x1, 0x33,0x1, 0x32,0x1, 0x31,0x1, 0x30,0x1, 0x2f,0x1, 0x2e,0x1, 0x2d,0x1, +0x2c,0x1, 0x2b,0x1, 0x2a,0x1, 0x29,0x1, 0x28,0x1, 0x27,0x1, 0x26,0x1, 0x25,0x1, +0x24,0x1, 0x23,0x1, 0x22,0x1, 0x21,0x1, 0x20,0x1, 0x1f,0x1, 0x1e,0x1, 0x1d,0x1, +0x1c,0x1, 0x14,0x1, 0x13,0x1, 0x12,0x1, 0x11,0x1, 0x10,0x1, 0xf, 0x1, 0xe, 0x1, +0xd, 0x1, 0xc, 0x1, 0xb, 0x1, 0xa, 0x1, 0x9, 0x1, 0x8, 0x1, 0x7, 0x1, 0x6, 0x1, +0x5, 0x1, 0x4, 0x1, 0x3, 0x1, 0x2, 0x1, 0x1, 0x1, 0x0, 0x0, 0xff,0x0, 0xfe,0x0, +0xfd,0x0, 0xfc,0x0, 0xfb,0x0, 0xfa,0x0, 0xf9,0x0, 0xf8,0x0, 0xf7,0x0, 0xf6,0x0, +0xf5,0x0, 0xea,0x0, 0xe9,0x0, 0xe8,0x0, 0xe7,0x0, 0xe6,0x0, 0xe5,0x0, 0xe4,0x0, +0xe3,0x0, 0xe2,0x0, 0xe1,0x0, 0xe0,0x0, 0xdf,0x0, 0xde,0x0, 0xdd,0x0, 0xdc,0x0, +0xdb,0x0, 0xda,0x0, 0xd9,0x0, 0xd8,0x0, 0xd7,0x0, 0xd6,0x0, 0xd5,0x0, 0xd4,0x0, +0xd3,0x0, 0xd2,0x0, 0xd1,0x0, 0xd0,0x0, 0xcf,0x0, 0xce,0x0, 0xcd,0x0, 0xcc,0x0, +0xcb,0x0, 0xc3,0x0, 0xc2,0x0, 0xc1,0x0, 0xc0,0x0, 0xbf,0x0, 0xbe,0x0, 0xbd,0x0, +0xbc,0x0, 0xbb,0x0, 0xba,0x0, 0xb9,0x0, 0xb8,0x0, 0xb7,0x0, 0xb6,0x0, 0xb5,0x0, +0xb4,0x0, 0xb3,0x0, 0xb2,0x0, 0xb1,0x0, 0xb0,0x0, 0xaf,0x0, 0xae,0x0, 0xad,0x0, +0xac,0x0, 0xab,0x0, 0xaa,0x0, 0xa9,0x0, 0xa8,0x0, 0xa7,0x0, 0xa6,0x0, 0xa5,0x0, +0xa4,0x0, 0x9c,0x0, 0x9b,0x0, 0x9a,0x0, 0x99,0x0, 0x98,0x0, 0x97,0x0, 0x96,0x0, +0x95,0x0, 0x94,0x0, 0x93,0x0, 0x92,0x0, 0x91,0x0, 0x90,0x0, 0x8f,0x0, 0x8e,0x0, +0x8d,0x0, 0x8c,0x0, 0x8b,0x0, 0x8a,0x0, 0x89,0x0, 0x88,0x0, 0x87,0x0, 0x86,0x0, +0x85,0x0, 0x84,0x0, 0x83,0x0, 0x82,0x0, 0x81,0x0, 0x80,0x0, 0x7f,0x0, 0x7e,0x0, +0x7d,0x0, 0x72,0x0, 0x71,0x0, 0x70,0x0, 0x6f,0x0, 0x6e,0x0, 0x6d,0x0, 0x6c,0x0, +0x6b,0x0, 0x6a,0x0, 0x69,0x0, 0x68,0x0, 0x67,0x0, 0x66,0x0, 0x65,0x0, 0x64,0x0, +0x63,0x0, 0x62,0x0, 0x61,0x0, 0x60,0x0, 0x5f,0x0, 0x5e,0x0, 0x5d,0x0, 0x5c,0x0, +0x5b,0x0, 0x5a,0x0, 0x59,0x0, 0x58,0x0, 0x57,0x0, 0x56,0x0, 0x55,0x0, 0x54,0x0, +0x53,0x0, 0x4b,0x0, 0x4a,0x0, 0x49,0x0, 0x48,0x0, 0x47,0x0, 0x46,0x0, 0x45,0x0, +0x44,0x0, 0x43,0x0, 0x42,0x0, 0x41,0x0, 0x40,0x0, 0x3f,0x0, 0x3e,0x0, 0x3d,0x0, +0x3c,0x0, 0x3b,0x0, 0x3a,0x0, 0x39,0x0, 0x38,0x0, 0x37,0x0, 0x36,0x0, 0x35,0x0, +0x34,0x0, 0x33,0x0, 0x32,0x0, 0x31,0x0, 0x30,0x0, 0x2f,0x0, 0x2e,0x0, 0x2d,0x0, +0x2c,0x0, 0x24,0x0, 0x23,0x0, 0x22,0x0, 0x21,0x0, 0x20,0x0, 0x1f,0x0, 0x1e,0x0, +0x1d,0x0, 0x1c,0x0, 0x1b,0x0, 0x1a,0x0, 0x19,0x0, 0x18,0x0, 0x17,0x0, 0x16,0x0, +0x15,0x0, 0x14,0x0, 0x13,0x0, 0x12,0x0, 0x11,0x0, 0x10,0x0, 0xf, 0x0, 0xe, 0x0, +0xd, 0x0, 0xc, 0x0, 0xb, 0x0, 0xa, 0x0, 0x9, 0x0, 0x8, 0x0, 0x7, 0x0, 0x6, 0x0, +0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x3, 0x1b,0x3, 0x1a,0x3, 0x19,0x3, 0x18,0x3, 0x17,0x3, 0x16,0x3, 0x15,0x3, +0x14,0x3, 0x13,0x3, 0x12,0x3, 0x11,0x3, 0x10,0x3, 0xf, 0x3, 0xe, 0x3, 0xd, 0x3, +0xc, 0x3, 0xb, 0x3, 0xa, 0x3, 0x9, 0x3, 0x8, 0x3, 0x7, 0x3, 0x6, 0x3, 0x5, 0x3, +0x4, 0x3, 0x3, 0x3, 0x2, 0x3, 0x1, 0x3, 0x0, 0x2, 0xff,0x2, 0xfe,0x2, 0xfd,0x2, +0xfc,0x2, 0xf4,0x2, 0xf3,0x2, 0xf2,0x2, 0xf1,0x2, 0xf0,0x2, 0xef,0x2, 0xee,0x2, +0xed,0x2, 0xec,0x2, 0xeb,0x2, 0xea,0x2, 0xe9,0x2, 0xe8,0x2, 0xe7,0x2, 0xe6,0x2, +0xe5,0x2, 0xe4,0x2, 0xe3,0x2, 0xe2,0x2, 0xe1,0x2, 0xe0,0x2, 0xdf,0x2, 0xde,0x2, +0xdd,0x2, 0xdc,0x2, 0xdb,0x2, 0xda,0x2, 0xd9,0x2, 0xd8,0x2, 0xd7,0x2, 0xd6,0x2, +0xd5,0x2, 0xcd,0x2, 0xcc,0x2, 0xcb,0x2, 0xca,0x2, 0xc9,0x2, 0xc8,0x2, 0xc7,0x2, +0xc6,0x2, 0xc5,0x2, 0xc4,0x2, 0xc3,0x2, 0xc2,0x2, 0xc1,0x2, 0xc0,0x2, 0xbf,0x2, +0xbe,0x2, 0xbd,0x2, 0xbc,0x2, 0xbb,0x2, 0xba,0x2, 0xb9,0x2, 0xb8,0x2, 0xb7,0x2, +0xb6,0x2, 0xb5,0x2, 0xb4,0x2, 0xb3,0x2, 0xb2,0x2, 0xb1,0x2, 0xb0,0x2, 0xaf,0x2, +0xae,0x2, 0xa3,0x2, 0xa2,0x2, 0xa1,0x2, 0xa0,0x2, 0x9f,0x2, 0x9e,0x2, 0x9d,0x2, +0x9c,0x2, 0x9b,0x2, 0x9a,0x2, 0x99,0x2, 0x98,0x2, 0x97,0x2, 0x96,0x2, 0x95,0x2, +0x94,0x2, 0x93,0x2, 0x92,0x2, 0x91,0x2, 0x90,0x2, 0x8f,0x2, 0x8e,0x2, 0x8d,0x2, +0x8c,0x2, 0x8b,0x2, 0x8a,0x2, 0x89,0x2, 0x88,0x2, 0x87,0x2, 0x86,0x2, 0x85,0x2, +0x84,0x2, 0x7c,0x2, 0x7b,0x2, 0x7a,0x2, 0x79,0x2, 0x78,0x2, 0x77,0x2, 0x76,0x2, +0x75,0x2, 0x74,0x2, 0x73,0x2, 0x72,0x2, 0x71,0x2, 0x70,0x2, 0x6f,0x2, 0x6e,0x2, +0x6d,0x2, 0x6c,0x2, 0x6b,0x2, 0x6a,0x2, 0x69,0x2, 0x68,0x2, 0x67,0x2, 0x66,0x2, +0x65,0x2, 0x64,0x2, 0x63,0x2, 0x62,0x2, 0x61,0x2, 0x60,0x2, 0x5f,0x2, 0x5e,0x2, +0x5d,0x2, 0x55,0x2, 0x54,0x2, 0x53,0x2, 0x52,0x2, 0x51,0x2, 0x50,0x2, 0x4f,0x2, +0x4e,0x2, 0x4d,0x2, 0x4c,0x2, 0x4b,0x2, 0x4a,0x2, 0x49,0x2, 0x48,0x2, 0x47,0x2, +0x46,0x2, 0x45,0x2, 0x44,0x2, 0x43,0x2, 0x42,0x2, 0x41,0x2, 0x40,0x2, 0x3f,0x2, +0x3e,0x2, 0x3d,0x2, 0x3c,0x2, 0x3b,0x2, 0x3a,0x2, 0x39,0x2, 0x38,0x2, 0x37,0x2, +0x36,0x2, 0x2b,0x2, 0x2a,0x2, 0x29,0x2, 0x28,0x2, 0x27,0x2, 0x26,0x2, 0x25,0x2, +0x24,0x2, 0x23,0x2, 0x22,0x2, 0x21,0x2, 0x20,0x2, 0x1f,0x2, 0x1e,0x2, 0x1d,0x2, +0x1c,0x2, 0x1b,0x2, 0x1a,0x2, 0x19,0x2, 0x18,0x2, 0x17,0x2, 0x16,0x2, 0x15,0x2, +0x14,0x2, 0x13,0x2, 0x12,0x2, 0x11,0x2, 0x10,0x2, 0xf, 0x2, 0xe, 0x2, 0xd, 0x2, +0xc, 0x2, 0x4, 0x2, 0x3, 0x2, 0x2, 0x2, 0x1, 0x2, 0x0, 0x1, 0xff,0x1, 0xfe,0x1, +0xfd,0x1, 0xfc,0x1, 0xfb,0x1, 0xfa,0x1, 0xf9,0x1, 0xf8,0x1, 0xf7,0x1, 0xf6,0x1, +0xf5,0x1, 0xf4,0x1, 0xf3,0x1, 0xf2,0x1, 0xf1,0x1, 0xf0,0x1, 0xef,0x1, 0xee,0x1, +0xed,0x1, 0xec,0x1, 0xeb,0x1, 0xea,0x1, 0xe9,0x1, 0xe8,0x1, 0xe7,0x1, 0xe6,0x1, +0xe5,0x1, 0xdd,0x1, 0xdc,0x1, 0xdb,0x1, 0xda,0x1, 0xd9,0x1, 0xd8,0x1, 0xd7,0x1, +0xd6,0x1, 0xd5,0x1, 0xd4,0x1, 0xd3,0x1, 0xd2,0x1, 0xd1,0x1, 0xd0,0x1, 0xcf,0x1, +0xce,0x1, 0xcd,0x1, 0xcc,0x1, 0xcb,0x1, 0xca,0x1, 0xc9,0x1, 0xc8,0x1, 0xc7,0x1, +0xc6,0x1, 0xc5,0x1, 0xc4,0x1, 0xc3,0x1, 0xc2,0x1, 0xc1,0x1, 0xc0,0x1, 0xbf,0x1, +0xbe,0x1, 0x62,0x1, 0x61,0x1, 0x60,0x1, 0x5f,0x1, 0x5e,0x1, 0x5d,0x1, 0x5c,0x1, +0x5b,0x1, 0x5a,0x1, 0x59,0x1, 0x58,0x1, 0x57,0x1, 0x56,0x1, 0x55,0x1, 0x54,0x1, +0x53,0x1, 0x52,0x1, 0x51,0x1, 0x50,0x1, 0x4f,0x1, 0x4e,0x1, 0x4d,0x1, 0x4c,0x1, +0x4b,0x1, 0x4a,0x1, 0x49,0x1, 0x48,0x1, 0x47,0x1, 0x46,0x1, 0x45,0x1, 0x44,0x1, +0x43,0x1, 0x3b,0x1, 0x3a,0x1, 0x39,0x1, 0x38,0x1, 0x37,0x1, 0x36,0x1, 0x35,0x1, +0x34,0x1, 0x33,0x1, 0x32,0x1, 0x31,0x1, 0x30,0x1, 0x2f,0x1, 0x2e,0x1, 0x2d,0x1, +0x2c,0x1, 0x2b,0x1, 0x2a,0x1, 0x29,0x1, 0x28,0x1, 0x27,0x1, 0x26,0x1, 0x25,0x1, +0x24,0x1, 0x23,0x1, 0x22,0x1, 0x21,0x1, 0x20,0x1, 0x1f,0x1, 0x1e,0x1, 0x1d,0x1, +0x1c,0x1, 0x14,0x1, 0x13,0x1, 0x12,0x1, 0x11,0x1, 0x10,0x1, 0xf, 0x1, 0xe, 0x1, +0xd, 0x1, 0xc, 0x1, 0xb, 0x1, 0xa, 0x1, 0x9, 0x1, 0x8, 0x1, 0x7, 0x1, 0x6, 0x1, +0x5, 0x1, 0x4, 0x1, 0x3, 0x1, 0x2, 0x1, 0x1, 0x1, 0x0, 0x0, 0xff,0x0, 0xfe,0x0, +0xfd,0x0, 0xfc,0x0, 0xfb,0x0, 0xfa,0x0, 0xf9,0x0, 0xf8,0x0, 0xf7,0x0, 0xf6,0x0, +0xf5,0x0, 0xea,0x0, 0xe9,0x0, 0xe8,0x0, 0xe7,0x0, 0xe6,0x0, 0xe5,0x0, 0xe4,0x0, +0xe3,0x0, 0xe2,0x0, 0xe1,0x0, 0xe0,0x0, 0xdf,0x0, 0xde,0x0, 0xdd,0x0, 0xdc,0x0, +0xdb,0x0, 0xda,0x0, 0xd9,0x0, 0xd8,0x0, 0xd7,0x0, 0xd6,0x0, 0xd5,0x0, 0xd4,0x0, +0xd3,0x0, 0xd2,0x0, 0xd1,0x0, 0xd0,0x0, 0xcf,0x0, 0xce,0x0, 0xcd,0x0, 0xcc,0x0, +0xcb,0x0, 0xc3,0x0, 0xc2,0x0, 0xc1,0x0, 0xc0,0x0, 0xbf,0x0, 0xbe,0x0, 0xbd,0x0, +0xbc,0x0, 0xbb,0x0, 0xba,0x0, 0xb9,0x0, 0xb8,0x0, 0xb7,0x0, 0xb6,0x0, 0xb5,0x0, +0xb4,0x0, 0xb3,0x0, 0xb2,0x0, 0xb1,0x0, 0xb0,0x0, 0xaf,0x0, 0xae,0x0, 0xad,0x0, +0xac,0x0, 0xab,0x0, 0xaa,0x0, 0xa9,0x0, 0xa8,0x0, 0xa7,0x0, 0xa6,0x0, 0xa5,0x0, +0xa4,0x0, 0x9c,0x0, 0x9b,0x0, 0x9a,0x0, 0x99,0x0, 0x98,0x0, 0x97,0x0, 0x96,0x0, +0x95,0x0, 0x94,0x0, 0x93,0x0, 0x92,0x0, 0x91,0x0, 0x90,0x0, 0x8f,0x0, 0x8e,0x0, +0x8d,0x0, 0x8c,0x0, 0x8b,0x0, 0x8a,0x0, 0x89,0x0, 0x88,0x0, 0x87,0x0, 0x86,0x0, +0x85,0x0, 0x84,0x0, 0x83,0x0, 0x82,0x0, 0x81,0x0, 0x80,0x0, 0x7f,0x0, 0x7e,0x0, +0x7d,0x0, 0x72,0x0, 0x71,0x0, 0x70,0x0, 0x6f,0x0, 0x6e,0x0, 0x6d,0x0, 0x6c,0x0, +0x6b,0x0, 0x6a,0x0, 0x69,0x0, 0x68,0x0, 0x67,0x0, 0x66,0x0, 0x65,0x0, 0x64,0x0, +0x63,0x0, 0x62,0x0, 0x61,0x0, 0x60,0x0, 0x5f,0x0, 0x5e,0x0, 0x5d,0x0, 0x5c,0x0, +0x5b,0x0, 0x5a,0x0, 0x59,0x0, 0x58,0x0, 0x57,0x0, 0x56,0x0, 0x55,0x0, 0x54,0x0, +0x53,0x0, 0x4b,0x0, 0x4a,0x0, 0x49,0x0, 0x48,0x0, 0x47,0x0, 0x46,0x0, 0x45,0x0, +0x44,0x0, 0x43,0x0, 0x42,0x0, 0x41,0x0, 0x40,0x0, 0x3f,0x0, 0x3e,0x0, 0x3d,0x0, +0x3c,0x0, 0x3b,0x0, 0x3a,0x0, 0x39,0x0, 0x38,0x0, 0x37,0x0, 0x36,0x0, 0x35,0x0, +0x34,0x0, 0x33,0x0, 0x32,0x0, 0x31,0x0, 0x30,0x0, 0x2f,0x0, 0x2e,0x0, 0x2d,0x0, +0x2c,0x0, 0x24,0x0, 0x23,0x0, 0x22,0x0, 0x21,0x0, 0x20,0x0, 0x1f,0x0, 0x1e,0x0, +0x1d,0x0, 0x1c,0x0, 0x1b,0x0, 0x1a,0x0, 0x19,0x0, 0x18,0x0, 0x17,0x0, 0x16,0x0, +0x15,0x0, 0x14,0x0, 0x13,0x0, 0x12,0x0, 0x11,0x0, 0x10,0x0, 0xf, 0x0, 0xe, 0x0, +0xd, 0x0, 0xc, 0x0, 0xb, 0x0, 0xa, 0x0, 0x9, 0x0, 0x8, 0x0, 0x7, 0x0, 0x6, 0x0, +0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x17,0x3, 0x5, 0x0, 0xd, 0x17,0x3, 0x5, 0x1, 0x10,0x17,0x3, 0x5, 0x2, 0x10, +0x2, 0x1, 0xa, 0x1e,0x24,0x8, 0x0, 0x64,0xd, 0xac,0x0, 0xc8,0x0, 0xdc,0x0, 0xdc, +0x0, 0xd2,0x1, 0xf4,0x1, 0x90,0x1, 0x90,0x1, 0x2c,0x1, 0x2c,0xa, 0x0, 0x1, 0x1e, +0x1, 0x1, 0xc, 0x1e,0x3c,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0x1, 0x0, 0x1, 0x80,0x1, 0x0, +0x6, 0x1, 0xda,0x0, 0x1, 0x0, 0x16,0x1, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0xf9,0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1d,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x3, 0x0, 0xff,0xff,0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xc8,0x5, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x40,0x4, 0x0, 0x2, 0xd0, +0x1, 0x68,0x28,0x28,0x1, 0x40,0x1, 0x40,0x0, 0xa0,0x0, 0xa0,0x5, 0xa0,0x2, 0xd0, +0x2e,0x2e,0x1, 0x70,0x1, 0x70,0x0, 0xb4,0x0, 0xb4,0x12,0x0, 0xb4,0x1, 0x68,0x2, +0x1c,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x7, 0xa8,0x1, 0x2c,0x0, 0x48,0x0, 0x1, 0x1, 0x5, 0x1, 0x2, 0x2, +0x4, 0x4, 0x6, 0x80,0x0, 0x64,0x7, 0xd0,0x8, 0x5, 0x6, 0x1, 0x2c,0x2, 0x58,0x1, +0x90,0x1f,0x40,0x37,0x1, 0x86,0x1, 0x86,0x0, 0x2, 0x17,0x11,0x12,0x1, 0x2c,0x0, +0xdc,0x3, 0x70,0x1, 0xb8,0x3, 0xa, 0xa, 0x0, 0x50,0x2, 0x80,0x0, 0x50,0x5, 0x50, +0x0, 0x32,0x1, 0x5e,0x1, 0x5e,0x3, 0x20,0x0, 0xc8,0x0, 0x28,0x0, 0x1e,0x0, 0x80, +0x0, 0xb4,0x2, 0xd0,0x0, 0x3c,0x3, 0xe8,0x1, 0x68,0x1, 0x68,0x0, 0x3c,0x3, 0xe8, +0x0, 0x20,0x2, 0xb0,0x0, 0x0, 0x5, 0xa0,0x0, 0x64,0x0, 0xa0,0x0, 0xa0,0x13,0x88, +0x1, 0x2c,0x0, 0x0, 0x0, 0x2, 0x3b,0x8, 0x1, 0x0, 0x4, 0x0, 0x0, 0x5, 0x0, 0x20, +0x1, 0x0, 0x0, 0x0, 0x0, 0x5c,0x5c,0x0, 0x5c,0x5c,0x0, 0x5c,0x5c,0x0, 0x0, 0x0, +0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x8b,0x0, 0x0, 0xff,0x0, 0x0, 0x0, +0x1, 0x2, 0x4, 0x8, 0x10,0x20,0x40,0x80,0x64,0xff,0xff,0xff,0x30,0x0, 0xc, 0xc0, +0x40,0x33,0x2d,0x24,0x1e,0x18,0x10,0xa, 0xa, 0xe, 0x15,0x1e,0x24,0x2b,0x32,0x35, +0x2f,0x28,0x22,0x1a,0x13,0xa, 0x3, 0x0, 0x1, 0x4, 0xa, 0x12,0x1b,0x25,0x2c,0x31, +0x9, 0x0, 0x0, 0x2, 0x4, 0x8, 0xf, 0x19,0x20,0x27,0x2b,0x2d,0x2e,0x2e,0x2e,0x2c, +0x2c,0x2d,0x2e,0x32,0x35,0x3b,0x43,0x4d,0x56,0x5d,0x62,0x67,0x6a,0x6d,0x6e,0x70, +0xda,0xe1,0xff,0x55,0x35,0x2e,0x27,0x22,0x1f,0x1b,0x16,0x10,0xc, 0x8, 0x6, 0x4, +0x2, 0x0, 0x0, 0x0, 0x1, 0x3, 0x6, 0xb, 0xe, 0x12,0x17,0x1d,0x22,0x26,0x2a,0x30, +0x35,0x39,0x3d,0x3f,0x0, 0x0, 0x1, 0x4, 0x6, 0x8, 0xb, 0x10,0x16,0x1b,0x1f,0x23, +0x28,0x2d,0x32,0x36,0x3b,0x40,0x44,0x48,0x4a,0x4b,0x4c,0x4b,0x4a,0x48,0x46,0x43, +0x40,0x3e,0x3c,0x3a,0x3c,0x9c,0x34,0x55,0x40,0x39,0x34,0x2f,0x2a,0x24,0x20,0x1b, +0x15,0x10,0xb, 0x7, 0x3, 0x1, 0x0, 0x0, 0x0, 0x1, 0x2, 0x3, 0x4, 0x7, 0xa, 0xc, +0x10,0x15,0x19,0x1d,0x22,0x28,0x2d,0x31,0x4, 0x0, 0x0, 0x0, 0x1, 0x4, 0x6, 0x9, +0xd, 0x11,0x16,0x1b,0x21,0x27,0x2c,0x30,0x35,0x3c,0x42,0x46,0x4a,0x51,0x57,0x5b, +0x60,0x63,0x65,0x64,0x61,0x5d,0x59,0x56,0x89,0x65,0x34,0x55,0x0, 0x3, 0x4, 0x6, +0x7, 0x9, 0x9, 0xb, 0xd, 0xf, 0x13,0x16,0x19,0x1d,0x20,0x22,0x26,0x29,0x2b,0x2b, +0x2d,0x2e,0x30,0x31,0x33,0x34,0x36,0x38,0x3a,0x3c,0x3e,0x3f,0x13,0x19,0x1e,0x22, +0x26,0x29,0x2c,0x31,0x35,0x39,0x3c,0x3e,0x3f,0x3e,0x3b,0x38,0x35,0x32,0x2f,0x2c, +0x28,0x24,0x20,0x1c,0x19,0x16,0x12,0xe, 0xa, 0x6, 0x3, 0x1, 0x97,0xae,0xff,0x55, +0x14,0x1a,0x1f,0x25,0x2a,0x2d,0x2d,0x28,0x24,0x1f,0x1b,0x17,0x12,0xe, 0xc, 0xa, +0x8, 0x8, 0x8, 0x8, 0xa, 0xe, 0x13,0x17,0x1b,0x20,0x26,0x2c,0x32,0x36,0x3c,0x3d, +0x2c,0x2b,0x2a,0x27,0x24,0x21,0x1c,0x1a,0x1a,0x1c,0x1e,0x20,0x25,0x2a,0x2e,0x32, +0x37,0x3b,0x3f,0x43,0x47,0x4c,0x50,0x51,0x53,0x54,0x55,0x56,0x57,0x57,0x57,0x57, +0xdd,0x4, 0x33,0x55,0xe, 0x15,0x1b,0x21,0x26,0x2a,0x30,0x36,0x3a,0x3d,0x3e,0x3d, +0x3a,0x36,0x32,0x2d,0x28,0x1c,0x16,0x10,0xa, 0x6, 0x3, 0x1, 0x0, 0x0, 0x3, 0xa, +0x15,0x29,0x39,0x39,0x37,0x35,0x32,0x2f,0x2c,0x29,0x24,0x1e,0x18,0x12,0xd, 0x9, +0x5, 0x1, 0x0, 0x0, 0x0, 0x5, 0x9, 0xe, 0x14,0x1c,0x24,0x2c,0x35,0x3e,0x45,0x4a, +0x4b,0x45,0x3f,0x3f,0xf3,0x41,0x33,0x55,0xa, 0x12,0x1a,0x1e,0x23,0x26,0x25,0x1f, +0x1b,0x12,0xa, 0x8, 0x4, 0x2, 0x0, 0x0, 0x0, 0x2, 0x6, 0x11,0x19,0x1d,0x26,0x31, +0x36,0x3d,0x3d,0x3d,0x3d,0x3d,0x3d,0x3d,0x33,0x2c,0x23,0x1e,0x16,0xe, 0x9, 0x1, +0x1, 0x6, 0x11,0x16,0x1f,0x25,0x2e,0x39,0x3e,0x46,0x49,0x48,0x43,0x3f,0x35,0x2a, +0x25,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xa2,0x28,0x33,0x55,0x3, 0xb, 0x10,0x15, +0x1a,0x1e,0x21,0x27,0x29,0x28,0x25,0x20,0x1b,0xe, 0x9, 0x7, 0x5, 0x3, 0x1, 0x0, +0x0, 0x1, 0x3, 0x5, 0x9, 0x16,0x1f,0x29,0x33,0x36,0x36,0x36,0x22,0x20,0x1f,0x1e, +0x1b,0x18,0x15,0xc, 0x7, 0x2, 0x0, 0x0, 0x2, 0xb, 0x10,0x14,0x18,0x1c,0x21,0x2b, +0x2f,0x33,0x37,0x3b,0x3d,0x3f,0x3f,0x3e,0x3c,0x3b,0x3b,0x3b,0x6, 0x43,0x33,0x55, +0x4, 0xc, 0x13,0x1a,0x20,0x26,0x2c,0x32,0x34,0x31,0x2b,0x24,0x1b,0x14,0xd, 0x6, +0x3, 0x1, 0x0, 0x0, 0x0, 0x2, 0x7, 0xe, 0x16,0x1d,0x23,0x29,0x30,0x36,0x3d,0x3e, +0x1b,0x1c,0x1d,0x1d,0x1d,0x1c,0x1a,0x16,0x10,0x9, 0x3, 0x0, 0x0, 0x3, 0xa, 0x12, +0x19,0x1f,0x25,0x2c,0x32,0x39,0x3f,0x44,0x47,0x48,0x47,0x46,0x43,0x3f,0x3b,0x3a, +0x7c,0x49,0x33,0x55,0xb, 0x14,0x1b,0x23,0x2e,0x34,0x38,0x39,0x36,0x32,0x2b,0x24, +0x18,0x12,0xd, 0x9, 0x4, 0x2, 0x0, 0x0, 0x2, 0x6, 0xd, 0x13,0x1f,0x25,0x2c,0x33, +0x3e,0x3f,0x3f,0x3f,0x24,0x26,0x26,0x26,0x25,0x22,0x1d,0x16,0xb, 0x5, 0x2, 0x0, +0x2, 0x6, 0xc, 0x13,0x1d,0x23,0x29,0x2f,0x3a,0x40,0x45,0x47,0x49,0x49,0x48,0x46, +0x42,0x41,0x41,0x41,0xd3,0x80,0x33,0x55,0x0, 0x8, 0x10,0x16,0x1d,0x23,0x2b,0x30, +0x32,0x32,0x30,0x2c,0x26,0x1e,0x18,0x11,0xb, 0x9, 0x6, 0x5, 0x4, 0x4, 0x6, 0xa, +0x11,0x19,0x21,0x28,0x2f,0x36,0x3c,0x3f,0x1f,0x21,0x22,0x22,0x21,0x20,0x1d,0x18, +0x12,0xc, 0x6, 0x2, 0x0, 0x0, 0x3, 0x9, 0x12,0x19,0x20,0x26,0x2c,0x34,0x3b,0x41, +0x45,0x48,0x49,0x48,0x46,0x42,0x3e,0x3c,0xdb,0x35,0x33,0x55,0x4, 0xb, 0x13,0x1b, +0x23,0x2a,0x29,0x1f,0x16,0xe, 0x6, 0x2, 0x0, 0x0, 0x3, 0x7, 0x10,0x19,0x22,0x2b, +0x33,0x38,0x3c,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x2c,0x27,0x21,0x1b, +0x15,0xd, 0x4, 0x0, 0x1, 0x5, 0xc, 0x14,0x1d,0x28,0x32,0x36,0x3d,0x3f,0x3e,0x3c, +0x36,0x2e,0x26,0x1e,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0xb5,0x6c,0x33,0x55, +0x17,0x1c,0x20,0x27,0x2b,0x30,0x39,0x3d,0x3f,0x3d,0x3a,0x35,0x2b,0x25,0x20,0x17, +0x13,0xe, 0x6, 0x3, 0x0, 0x0, 0x2, 0x9, 0xd, 0x11,0x19,0x1a,0x1a,0x1a,0x1a,0x1a, +0xa, 0x11,0x16,0x1d,0x20,0x23,0x23,0x1f,0x1a,0x10,0xb, 0x7, 0x1, 0x0, 0x0, 0x2, +0x4, 0x7, 0x10,0x16,0x21,0x26,0x2b,0x35,0x39,0x3c,0x3f,0x40,0x40,0x40,0x40,0x40, +0x68,0xc0,0x33,0x55,0xa, 0x10,0x1a,0x1e,0x26,0x2c,0x2d,0x2c,0x29,0x20,0x15,0xf, +0x6, 0x3, 0x0, 0x0, 0x0, 0x3, 0x7, 0x10,0x1c,0x22,0x2d,0x37,0x3c,0x3f,0x3f,0x3f, +0x3f,0x3f,0x3f,0x3f,0x2b,0x29,0x24,0x21,0x1a,0x12,0xe, 0x5, 0x2, 0x0, 0x1, 0x3, +0xb, 0x10,0x1a,0x25,0x29,0x32,0x36,0x3d,0x3f,0x3e,0x3a,0x33,0x2e,0x29,0x29,0x29, +0x29,0x29,0x29,0x29,0x1e,0x4d,0x33,0x55,0x0, 0x1, 0x3, 0x5, 0x6, 0x8, 0xb, 0xd, +0x11,0x13,0x16,0x16,0x1a,0x1f,0x21,0x24,0x26,0x28,0x2a,0x2f,0x35,0x36,0x38,0x39, +0x3a,0x3c,0x3e,0x3e,0x3e,0x3e,0x3e,0x3e,0x42,0x37,0x2d,0x23,0x1d,0x12,0x7, 0x1, +0x9, 0x13,0x1f,0x25,0x31,0x3b,0x36,0x2c,0x20,0x1a,0xf, 0x2, 0x9, 0x11,0x20,0x2d, +0x35,0x40,0x47,0x47,0x47,0x47,0x47,0x47,0xff,0x1f,0x32,0x55,0x0, 0x0, 0x2, 0x3, +0x6, 0x9, 0xc, 0xf, 0x13,0x18,0x1c,0x1d,0x1e,0x1e,0x1e,0x1d,0x1d,0x23,0x26,0x2a, +0x2d,0x32,0x38,0x3d,0x3f,0x3f,0x3e,0x3c,0x3b,0x3a,0x3a,0x3a,0x40,0x35,0x2f,0x28, +0x21,0x1a,0x13,0xd, 0x7, 0x1, 0x4, 0xb, 0x11,0x17,0x1d,0x24,0x2b,0x2a,0x22,0x1c, +0x15,0xf, 0x8, 0x3, 0x8, 0xf, 0x16,0x1d,0x23,0x29,0x31,0x32,0xa5,0xf2,0x32,0x55, +0x4, 0x2, 0x0, 0x0, 0x0, 0x0, 0x2, 0x6, 0xe, 0x13,0x16,0x18,0x1b,0x1e,0x1e,0x1e, +0x1f,0x1f,0x21,0x24,0x2c,0x30,0x35,0x3a,0x3c,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f, +0x40,0x39,0x30,0x27,0x22,0x19,0x10,0xd, 0x13,0x1c,0x25,0x2a,0x33,0x32,0x2d,0x23, +0x18,0x12,0x9, 0x1, 0x3, 0x9, 0x13,0x1e,0x23,0x26,0x26,0x26,0x26,0x26,0x26,0x26, +0x7b,0x12,0x32,0x55,0x19,0x14,0x11,0xc, 0x9, 0x5, 0x2, 0x0, 0x4, 0x9, 0xd, 0x11, +0x1b,0x20,0x22,0x23,0x23,0x23,0x26,0x27,0x2a,0x2d,0x30,0x37,0x39,0x3c,0x3d,0x3f, +0x3f,0x3f,0x3f,0x3f,0x0, 0x8, 0x10,0x1d,0x23,0x2e,0x36,0x3d,0x35,0x27,0x1e,0x16, +0xe, 0x14,0x21,0x28,0x34,0x39,0x30,0x29,0x1d,0x16,0x10,0x16,0x1d,0x2c,0x34,0x3f, +0x3f,0x3f,0x3f,0x3f,0xe1,0xb1,0x32,0x55,0xb, 0x6, 0x4, 0x2, 0x0, 0x0, 0x0, 0x1, +0x5, 0xf, 0x13,0x17,0x1b,0x1e,0x21,0x20,0x1d,0x19,0x17,0x16,0x16,0x19,0x1e,0x23, +0x28,0x31,0x35,0x39,0x3c,0x3f,0x3f,0x3f,0x40,0x3a,0x35,0x30,0x2b,0x25,0x20,0x1b, +0x17,0x16,0x1a,0x1e,0x23,0x27,0x2a,0x27,0x22,0x17,0x12,0xd, 0x8, 0x4, 0x1, 0x0, +0x0, 0x7, 0xb, 0xf, 0x13,0x15,0x15,0x15,0x4b,0xbb,0x32,0x55,0x0, 0x3, 0x8, 0xa, +0x11,0x14,0x1c,0x20,0x24,0x25,0x25,0x24,0x23,0x25,0x27,0x2d,0x30,0x36,0x3b,0x3f, +0x3f,0x3f,0x3f,0x3e,0x3e,0x3d,0x3d,0x3d,0x3d,0x3d,0x3d,0x3d,0x29,0x22,0x18,0x12, +0x8, 0x4, 0x0, 0x1, 0xc, 0x12,0x1c,0x22,0x2b,0x2a,0x24,0x18,0x12,0xa, 0x8, 0xf, +0x14,0x1e,0x23,0x2e,0x34,0x3d,0x3e,0x3e,0x3e,0x3e,0x3e,0x3e,0xc6,0x28,0x32,0x55, +0x1f,0x1b,0x17,0x14,0x13,0x12,0x11,0x11,0x12,0x14,0x1a,0x1d,0x21,0x23,0x24,0x24, +0x25,0x24,0x24,0x23,0x21,0x21,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e, +0x1a,0x1d,0x23,0x29,0x2c,0x34,0x3b,0x3e,0x47,0x4e,0x53,0x51,0x4b,0x44,0x42,0x3c, +0x35,0x32,0x2c,0x25,0x1e,0x1c,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19, +0xfa,0xf6,0x30,0x55,0x23,0x1e,0x1c,0x1a,0x18,0x17,0x16,0x15,0x15,0x14,0x14,0x14, +0x14,0x16,0x19,0x1d,0x21,0x25,0x28,0x2a,0x2b,0x2c,0x2d,0x2d,0x2c,0x2b,0x2a,0x29, +0x28,0x27,0x27,0x27,0x2f,0x36,0x3a,0x3e,0x43,0x48,0x4d,0x52,0x56,0x5b,0x60,0x65, +0x6a,0x6e,0x71,0x72,0x72,0x70,0x6c,0x67,0x62,0x5d,0x57,0x51,0x4c,0x47,0x43,0x3e, +0x38,0x34,0x31,0x31,0xe4,0xae,0x30,0x55,0x7, 0x5, 0x4, 0x4, 0x5, 0x6, 0xd, 0x14, +0x1c,0x22,0x28,0x2f,0x34,0x37,0x39,0x3a,0x39,0x38,0x36,0x32,0x2c,0x26,0x1a,0x14, +0xe, 0xb, 0x8, 0x6, 0x6, 0x5, 0x5, 0x5, 0x33,0x3d,0x43,0x4b,0x51,0x58,0x64,0x69, +0x68,0x65,0x61,0x55,0x4d,0x43,0x3b,0x32,0x22,0x1a,0x13,0xb, 0x7, 0x5, 0x8, 0xf, +0x16,0x1e,0x24,0x30,0x37,0x3c,0x3c,0x3c,0x71,0x75,0x30,0x55,0x3, 0x0, 0x0, 0x0, +0x0, 0x3, 0x7, 0xe, 0x1b,0x22,0x2d,0x32,0x37,0x3a,0x3c,0x3d,0x3c,0x3a,0x38,0x34, +0x29,0x21,0x15,0xc, 0x7, 0x2, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x2a,0x34,0x3c,0x47, +0x4d,0x59,0x60,0x66,0x67,0x66,0x5e,0x58,0x51,0x45,0x3e,0x30,0x29,0x22,0x17,0xf, +0x5, 0x3, 0x6, 0xb, 0x11,0x1b,0x21,0x2d,0x2e,0x2e,0x2e,0x2e,0x6a,0x73,0x30,0x55, +0xc, 0x5, 0x2, 0x0, 0x0, 0x0, 0x0, 0x2, 0x5, 0xc, 0x13,0x1e,0x25,0x30,0x35,0x3b, +0x3d,0x3f,0x3f,0x3d,0x3c,0x38,0x33,0x28,0x22,0x18,0x12,0xe, 0xd, 0xd, 0xd, 0xd, +0x11,0x19,0x1f,0x2a,0x30,0x3c,0x42,0x4f,0x55,0x5f,0x63,0x64,0x61,0x59,0x51,0x44, +0x3d,0x2e,0x26,0x1c,0x16,0xa, 0x3, 0x0, 0x0, 0x4, 0x8, 0xe, 0xf, 0xf, 0xf, 0xf, +0x7d,0xd0,0x30,0x55,0x15,0xd, 0x8, 0x4, 0x2, 0x0, 0x0, 0x0, 0x0, 0x1, 0x8, 0xf, +0x17,0x1f,0x2d,0x34,0x39,0x3c,0x3d,0x3f,0x3f,0x3e,0x3a,0x32,0x2c,0x26,0x20,0x19, +0xf, 0xc, 0xc, 0xc, 0x3, 0x9, 0xf, 0x17,0x1e,0x28,0x2e,0x35,0x3b,0x42,0x50,0x56, +0x57,0x56,0x50,0x49,0x41,0x39,0x31,0x25,0x1e,0x17,0xf, 0x5, 0x1, 0x0, 0x0, 0x1, +0x7, 0x9, 0x9, 0x9, 0xca,0xac,0x30,0x55,0x2c,0x23,0x1f,0x19,0x13,0xc, 0x7, 0x3, +0x0, 0x0, 0x0, 0x1, 0x5, 0xa, 0xf, 0x16,0x1d,0x23,0x2a,0x30,0x36,0x3b,0x3e,0x40, +0x3f,0x3e,0x3b,0x38,0x33,0x2f,0x2b,0x28,0x9, 0x1, 0x0, 0x1, 0x3, 0x9, 0xe, 0x14, +0x1b,0x21,0x27,0x2e,0x36,0x3b,0x3e,0x41,0x41,0x40,0x3d,0x3a,0x36,0x2f,0x2b,0x26, +0x20,0x1c,0x16,0x10,0xc, 0xa, 0x9, 0xb, 0x36,0xdc,0x30,0x55,0x21,0x13,0xc, 0x8, +0x5, 0x2, 0x1, 0x0, 0x0, 0x1, 0x3, 0x8, 0xf, 0x17,0x1e,0x24,0x2b,0x32,0x39,0x3d, +0x3e,0x3f,0x3f,0x3d,0x3a,0x36,0x30,0x29,0x21,0x1a,0x16,0x13,0x5, 0x9, 0xe, 0x14, +0x1a,0x22,0x29,0x30,0x38,0x3f,0x47,0x4d,0x51,0x51,0x4f,0x4d,0x49,0x42,0x39,0x31, +0x2b,0x25,0x1e,0x17,0x10,0x8, 0x3, 0x0, 0x0, 0x1, 0x3, 0x5, 0xaf,0x13,0x30,0x55, +0x3e,0x3b,0x38,0x33,0x2b,0x24,0x1d,0x16,0x10,0x7, 0x3, 0x1, 0x0, 0x0, 0x0, 0x1, +0x1, 0x3, 0x6, 0xc, 0x15,0x1c,0x23,0x29,0x2f,0x35,0x38,0x3b,0x3c,0x3e,0x3f,0x3f, +0x1f,0x10,0xa, 0x6, 0x0, 0x0, 0x0, 0x2, 0x4, 0xc, 0x12,0x18,0x1e,0x25,0x2c,0x35, +0x3c,0x42,0x4a,0x51,0x56,0x56,0x53,0x4e,0x49,0x40,0x3a,0x33,0x2c,0x25,0x1f,0x1c, +0xf9,0xa2,0x30,0x55,0x1c,0x2a,0x33,0x39,0x3c,0x3e,0x3f,0x3f,0x3e,0x3d,0x3a,0x35, +0x2e,0x28,0x23,0x1c,0x15,0xf, 0x9, 0x4, 0x1, 0x0, 0x0, 0x1, 0x1, 0x4, 0x8, 0xd, +0x13,0x19,0x1e,0x22,0x40,0x3e,0x3a,0x33,0x2f,0x29,0x22,0x1b,0x15,0x10,0xa, 0x5, +0x1, 0x0, 0x0, 0x1, 0x2, 0x5, 0xa, 0x11,0x17,0x1c,0x24,0x2a,0x30,0x35,0x3b,0x40, +0x43,0x44,0x45,0x45,0xcb,0xc6,0x30,0x55,0x5, 0x3, 0x4, 0x7, 0xa, 0x10,0x17,0x21, +0x28,0x2e,0x33,0x38,0x3c,0x3e,0x3f,0x3f,0x3e,0x3b,0x38,0x31,0x29,0x21,0x18,0xf, +0x9, 0x4, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x26,0x35,0x3d,0x45,0x4b,0x51,0x53,0x52, +0x4f,0x4c,0x46,0x41,0x3b,0x34,0x2e,0x25,0x1e,0x17,0x11,0x9, 0x3, 0x0, 0x0, 0x2, +0x6, 0xc, 0x12,0x18,0x1e,0x24,0x2c,0x31,0xf4,0xb6,0x30,0x55,0x7, 0x3, 0x3, 0x3, +0x4, 0x7, 0xf, 0x17,0x20,0x28,0x30,0x36,0x3b,0x3d,0x3f,0x3f,0x3d,0x39,0x36,0x2d, +0x25,0x1d,0x16,0xd, 0x8, 0x2, 0x0, 0x0, 0x1, 0x2, 0x3, 0x5, 0x2e,0x3f,0x48,0x50, +0x59,0x5f,0x67,0x68,0x63,0x5d,0x52,0x4a,0x3e,0x35,0x2b,0x20,0x18,0x10,0xa, 0x3, +0x0, 0x0, 0x1, 0x7, 0xe, 0x19,0x22,0x2b,0x31,0x3a,0x42,0x47,0xef,0xc9,0x30,0x55, +0x37,0x38,0x37,0x34,0x2d,0x26,0x1c,0x16,0xe, 0x9, 0x4, 0x2, 0x0, 0x0, 0x0, 0x1, +0x2, 0x5, 0xa, 0x10,0x17,0x20,0x26,0x2e,0x35,0x3a,0x3c,0x3e,0x3f,0x3f,0x3e,0x3e, +0x30,0x40,0x49,0x50,0x59,0x5e,0x60,0x5d,0x56,0x50,0x47,0x41,0x39,0x33,0x2a,0x20, +0x1a,0x10,0xa, 0x5, 0x1, 0x0, 0x0, 0x3, 0x8, 0x10,0x17,0x1f,0x25,0x2f,0x38,0x3c, +0x37,0xc3,0x57,0x55,0x3b,0x3d,0x3d,0x3b,0x38,0x32,0x27,0x1c,0x13,0xe, 0x8, 0x3, +0x0, 0x0, 0x0, 0x1, 0x3, 0x7, 0xb, 0x12,0x18,0x20,0x28,0x31,0x39,0x3d,0x3f,0x40, +0x3f,0x3f,0x3e,0x3e,0x33,0x45,0x4e,0x57,0x5d,0x65,0x6c,0x6a,0x66,0x63,0x5c,0x53, +0x4a,0x40,0x38,0x2e,0x25,0x1a,0x11,0x8, 0x4, 0x0, 0x0, 0x2, 0x9, 0x10,0x19,0x21, +0x2a,0x32,0x39,0x3e,0x7, 0x90,0x57,0x55,0x18,0x2c,0x34,0x39,0x3c,0x3d,0x3f,0x3f, +0x3f,0x3d,0x3b,0x36,0x30,0x2a,0x24,0x1c,0x16,0xd, 0x6, 0x1, 0x0, 0x0, 0x0, 0x1, +0x1, 0x3, 0x5, 0x9, 0xf, 0x17,0x1e,0x24,0x1, 0x2, 0x8, 0xe, 0x14,0x1a,0x21,0x28, +0x30,0x37,0x40,0x49,0x50,0x55,0x59,0x5c,0x5c,0x58,0x51,0x48,0x3f,0x38,0x31,0x2b, +0x25,0x1d,0x17,0x11,0xa, 0x4, 0x1, 0x1, 0x9d,0xbf,0x57,0x55,0x16,0x7, 0x2, 0x0, +0x0, 0x0, 0x0, 0x1, 0x4, 0x8, 0xe, 0x16,0x1f,0x28,0x30,0x38,0x3c,0x3e,0x3f,0x40, +0x3f,0x3f,0x3d,0x3b,0x37,0x32,0x2c,0x25,0x1d,0x16,0xf, 0xc, 0x53,0x46,0x3e,0x35, +0x2e,0x27,0x20,0x1a,0x14,0xd, 0x6, 0x1, 0x0, 0x0, 0x3, 0xa, 0x13,0x1a,0x20,0x27, +0x2d,0x33,0x3a,0x40,0x48,0x4f,0x54,0x58,0x5a,0x5a,0x58,0x57,0xc6,0x55,0x57,0x55, +0x7, 0x1, 0x4, 0xa, 0x10,0x18,0x20,0x2a,0x32,0x38,0x3c,0x3e,0x3f,0x3e,0x3d,0x3b, +0x39,0x35,0x30,0x27,0x21,0x19,0x12,0xb, 0x6, 0x3, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, +0x32,0x1d,0x12,0x9, 0x5, 0x1, 0x0, 0x0, 0x1, 0x5, 0xd, 0x17,0x20,0x2a,0x32,0x3b, +0x45,0x4e,0x58,0x63,0x69,0x6b,0x6a,0x64,0x5d,0x57,0x4f,0x47,0x40,0x38,0x32,0x2f, +0x1a,0xb5,0x57,0x55,0x0, 0xb, 0x14,0x1b,0x21,0x28,0x2f,0x37,0x3d,0x3f,0x3e,0x3c, +0x39,0x33,0x2b,0x23,0x1c,0x15,0xc, 0x5, 0x3, 0x3, 0x6, 0x9, 0xd, 0x12,0x18,0x1e, +0x24,0x2c,0x33,0x36,0x19,0x13,0x10,0x10,0xf, 0xf, 0x11,0x16,0x1c,0x25,0x2d,0x33, +0x39,0x40,0x47,0x4a,0x4c,0x4c,0x49,0x43,0x3b,0x33,0x2d,0x26,0x20,0x1a,0x14,0xe, +0xa, 0x5, 0x1, 0x0, 0xb0,0xb5,0x57,0x55,0x2, 0x9, 0xf, 0x1a,0x1f,0x29,0x2f,0x38, +0x3b,0x3e,0x3f,0x3f,0x3b,0x37,0x2e,0x29,0x1e,0x18,0xe, 0xa, 0x3, 0x1, 0x0, 0x0, +0x0, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x1, 0x0, 0x0, 0x3, 0x5, 0x9, 0xd, 0x18, +0x1e,0x27,0x2d,0x32,0x3c,0x3f,0x45,0x46,0x45,0x44,0x3e,0x39,0x2f,0x2a,0x25,0x1a, +0x14,0xc, 0x9, 0x9, 0x9, 0x9, 0x9, 0x9, 0x2b,0x77,0x57,0x55,0x0, 0x1, 0x2, 0x4, +0x5, 0x8, 0xa, 0xf, 0x12,0x15,0x18,0x1a,0x1f,0x22,0x24,0x25,0x26,0x26,0x28,0x2a, +0x2c,0x2f,0x33,0x36,0x37,0x39,0x3a,0x3c,0x3e,0x3f,0x3f,0x3f,0x1, 0xf, 0x1b,0x2d, +0x3d,0x52,0x5f,0x6a,0x60,0x4a,0x39,0x2a,0x17,0xb, 0x4, 0xe, 0x1e,0x2e,0x42,0x50, +0x62,0x6b,0x65,0x53,0x43,0x31,0x23,0x13,0x7, 0x2, 0x2, 0x2, 0xa2,0x22,0x31,0x55, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x2, 0x6, 0xa, 0xe, 0x12,0x15,0x18,0x1a, +0x1e,0x21,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x29,0x2f,0x34,0x3a,0x3e,0x3e,0x3e, +0x1, 0xa, 0x11,0x17,0x1e,0x24,0x29,0x2e,0x34,0x34,0x2d,0x24,0x1c,0x14,0xe, 0x8, +0x3, 0x9, 0x10,0x19,0x22,0x2a,0x31,0x36,0x3b,0x38,0x2f,0x24,0x19,0x11,0x11,0x11, +0x4c,0x9f,0x31,0x55,0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x2, 0xa, 0xc, 0x10,0x15,0x19, +0x1b,0x1f,0x1e,0x1e,0x1d,0x1c,0x1c,0x1e,0x21,0x29,0x31,0x3a,0x3e,0x3f,0x3f,0x3f, +0x3f,0x3f,0x3f,0x3f,0x0, 0x8, 0x14,0x1d,0x23,0x2d,0x34,0x2d,0x29,0x1e,0x13,0xb, +0x6, 0x6, 0x10,0x19,0x1e,0x29,0x32,0x3c,0x3e,0x34,0x28,0x1b,0x14,0x12,0x12,0x12, +0x12,0x12,0x12,0x12,0xef,0x5, 0x31,0x55,0x0, 0x2, 0x4, 0x5, 0x6, 0x7, 0x9, 0xa, +0xd, 0xf, 0x11,0x12,0x14,0x16,0x19,0x1c,0x1f,0x22,0x24,0x24,0x26,0x29,0x2f,0x31, +0x33,0x35,0x37,0x39,0x3a,0x3c,0x3e,0x3e,0x6, 0x10,0x17,0x1d,0x23,0x2a,0x31,0x39, +0x3c,0x36,0x2f,0x28,0x21,0x1a,0x13,0x10,0x16,0x22,0x29,0x2f,0x36,0x3d,0x3b,0x34, +0x2e,0x27,0x21,0x1a,0x13,0xc, 0x4, 0x2, 0x56,0x3f,0x31,0x55,0x0, 0x2, 0x5, 0x7, +0xa, 0xc, 0xe, 0x14,0x17,0x1b,0x1f,0x25,0x27,0x28,0x28,0x29,0x29,0x2d,0x30,0x33, +0x36,0x39,0x3c,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x8, 0xf, 0x18,0x23, +0x2d,0x37,0x40,0x41,0x3d,0x34,0x2b,0x24,0x2d,0x35,0x3e,0x47,0x4a,0x42,0x38,0x2c, +0x20,0x15,0xb, 0x2, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0xf6,0x5, 0x31,0x55, +0x0, 0x1, 0x3, 0x5, 0x6, 0x7, 0x9, 0xa, 0xc, 0xd, 0xf, 0x13,0x14,0x15,0x18,0x1a, +0x21,0x25,0x26,0x27,0x27,0x27,0x2c,0x2f,0x36,0x3a,0x3d,0x3f,0x3f,0x3f,0x3f,0x3f, +0x0, 0x6, 0xb, 0x14,0x1a,0x1f,0x29,0x2e,0x37,0x3b,0x3e,0x37,0x32,0x2e,0x25,0x20, +0x18,0x1c,0x21,0x29,0x2d,0x31,0x33,0x2d,0x21,0x1b,0x15,0x10,0x10,0x10,0x10,0x10, +0x22,0x55,0x31,0x55,0x0, 0x0, 0x0, 0x1, 0x2, 0x3, 0x4, 0x7, 0xc, 0x10,0x13,0x16, +0x19,0x1b,0x1f,0x22,0x22,0x23,0x23,0x23,0x23,0x26,0x2c,0x31,0x34,0x36,0x38,0x3a, +0x3b,0x3d,0x3f,0x3f,0xa, 0x12,0x1b,0x24,0x2d,0x34,0x3c,0x43,0x42,0x3b,0x33,0x2b, +0x22,0x1c,0x15,0x15,0x1b,0x26,0x2d,0x34,0x3a,0x41,0x41,0x3b,0x33,0x2b,0x22,0x1a, +0x11,0xa, 0x2, 0x1, 0xfa,0x31,0x31,0x55,0x2, 0x2, 0x1, 0x1, 0x0, 0x0, 0x0, 0x6, +0xa, 0x12,0x15,0x1b,0x1d,0x1f,0x1e,0x1e,0x1d,0x1d,0x1d,0x1f,0x23,0x2a,0x2f,0x36, +0x39,0x3e,0x3e,0x3e,0x3e,0x3e,0x3e,0x3e,0x0, 0x8, 0xe, 0x19,0x1e,0x29,0x2e,0x30, +0x2d,0x23,0x1d,0x13,0xe, 0x13,0x17,0x21,0x25,0x30,0x35,0x3e,0x3f,0x3a,0x35,0x2b, +0x27,0x1e,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0xc8,0x46,0x31,0x55,0x0, 0x3, 0x5, 0xc, +0x11,0x18,0x1c,0x1f,0x1f,0x1e,0x1e,0x1d,0x1d,0x23,0x26,0x2e,0x32,0x3b,0x3d,0x3f, +0x3f,0x3f,0x40,0x40,0x3f,0x3e,0x3d,0x3d,0x3d,0x3d,0x3d,0x3d,0x1e,0x25,0x29,0x31, +0x36,0x3d,0x3f,0x39,0x35,0x2c,0x27,0x1c,0x17,0x1b,0x1f,0x2a,0x2f,0x37,0x34,0x2b, +0x27,0x1f,0x1b,0x11,0xc, 0x2, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x5, 0xb3,0x31,0x55, +0x1, 0x3, 0x0, 0x0, 0x0, 0x2, 0xc2,0xfc,0x2, 0xff,0x40,0x0, 0x0, 0x0, 0x0, 0x1, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x51,0x0, +0x0, 0x2, 0x50,0xf9,0x0, 0x2, 0x50,0xf8,0x0, 0x2, 0x4f,0x47,0x0, 0x2, 0x50,0xf4, +0x0, 0x2, 0x50,0xf5,0x0, 0x2, 0x4f,0xc0,0x0, 0x2, 0x50,0xed,0x0, 0x2, 0x50,0xec, +0x0, 0x2, 0x51,0x1, 0x0, 0x2, 0x51,0x2, 0x0, 0x2, 0x4f,0x44,0x0, 0x2, 0x1b,0x50, +0x0, 0x2, 0x2c,0xff,0x0, 0x0, 0x3a,0x9c,0x0, 0x2, 0xc2,0xe0,0x0, 0x2, 0xbb,0x6c, +0x0, 0x2, 0x2d,0x0, 0x0, 0x2, 0x2c,0xfe,0x0, 0x2, 0x3b,0x2, 0x0, 0x2, 0x34,0xb0, +0x0, 0x2, 0x2e,0x60,0x0, 0x2, 0x34,0xb2,0x0, 0x2, 0x23,0x12,0x0, 0x2, 0xc6,0xe4, +0x0, 0x2, 0x24,0xd2,0x0, 0x2, 0x24,0xd4,0x0, 0x2, 0x23,0x22,0x0, 0x2, 0x23,0xa, +0x0, 0x2, 0x24,0x74,0x0, 0x2, 0x23,0xf, 0x0, 0x1, 0x28,0x40,0x0, 0x2, 0x24,0x75, +0x0, 0x2, 0x24,0xce,0x0, 0x2, 0x4e,0xfc,0x0, 0x0, 0x3b,0x6e,0x0, 0x0, 0x3b,0x60, +0x0, 0x2, 0x24,0x79,0x0, 0x1, 0x28,0x6c,0x0, 0x2, 0x23,0x54,0x0, 0x2, 0x4e,0x10, +0x0, 0x1, 0x28,0x54,0x0, 0x2, 0x2c,0xa2,0x0, 0x2, 0xe, 0x56,0x0, 0x1, 0x28,0x44, +0x0, 0x2, 0xbc,0x6c,0x0, 0x1, 0x28,0x74,0x0, 0x2, 0xe, 0x78,0x0, 0x2, 0x3b,0x4, +0x0, 0x0, 0x3a,0x90,0x0, 0x2, 0xe, 0x4c,0x0, 0x2, 0xc6,0xe6,0x0, 0x2, 0x23,0x27, +0x0, 0x2, 0x24,0x87,0x0, 0x2, 0xbb,0xac,0x0, 0x2, 0xc6,0xe8,0x0, 0x2, 0x2c,0xa0, +0x0, 0x2, 0xe, 0x29,0x0, 0x2, 0xe, 0x28,0x0, 0x2, 0xe, 0x2d,0x0, 0x2, 0xe, 0x2c, +0x0, 0x2, 0xe, 0x2f,0x0, 0x2, 0xe, 0x2e,0x0, 0x2, 0xe, 0x2b,0x0, 0x2, 0xe, 0x2a, +0x0, 0x2, 0xe, 0x41,0x0, 0x2, 0xe, 0x40,0x0, 0x2, 0xe, 0x35,0x0, 0x2, 0xe, 0x34, +0x0, 0x2, 0xe, 0x36,0x0, 0x2, 0xe, 0x37,0x0, 0x2, 0xe, 0x31,0x0, 0x2, 0xe, 0x30, +0x0, 0x2, 0xe, 0x33,0x0, 0x2, 0xe, 0x32,0x0, 0x2, 0xe, 0x27,0x0, 0x2, 0xe, 0x25, +0x0, 0x2, 0xe, 0x45,0x0, 0x2, 0xe, 0x44,0x0, 0x2, 0xe, 0x43,0x0, 0x2, 0xe, 0x42, +0x0, 0x2, 0xe, 0x47,0x0, 0x2, 0xe, 0x46,0x0, 0x2, 0xe, 0xf, 0x0, 0x2, 0xe, 0x21, +0x0, 0x2, 0xe, 0x20,0x0, 0x2, 0xe, 0xe, 0x0, 0x2, 0xe, 0x19,0x0, 0x2, 0xe, 0x1d, +0x0, 0x2, 0xe, 0x18,0x0, 0x2, 0xe, 0x1c,0x0, 0x2, 0xe, 0x17,0x0, 0x2, 0xe, 0x16, +0x0, 0x2, 0xe, 0x15,0x0, 0x2, 0xe, 0x14,0x0, 0x2, 0xe, 0x13,0x0, 0x2, 0xe, 0x12, +0x0, 0x2, 0xe, 0x11,0x0, 0x2, 0xe, 0x10,0x0, 0x2, 0xd, 0xc1,0x0, 0x2, 0xd, 0xc0, +0x0, 0x2, 0xd, 0xb9,0x0, 0x2, 0xd, 0xbd,0x0, 0x2, 0xd, 0xbc,0x0, 0x2, 0xd, 0xbf, +0x0, 0x2, 0xd, 0xbe,0x0, 0x2, 0xd, 0xb7,0x0, 0x2, 0xd, 0xa5,0x0, 0x2, 0xd, 0xb6, +0x0, 0x2, 0xd, 0xa4,0x0, 0x2, 0xd, 0xb4,0x0, 0x2, 0xd, 0xb5,0x0, 0x2, 0xd, 0xb8, +0x0, 0x2, 0xd, 0xbb,0x0, 0x2, 0xd, 0xba,0x0, 0x2, 0xd, 0xb3,0x0, 0x2, 0xd, 0xb2, +0x0, 0x2, 0xd, 0xaf,0x0, 0x2, 0xd, 0xae,0x0, 0x2, 0xd, 0xab,0x0, 0x2, 0xd, 0xb1, +0x0, 0x2, 0xd, 0xb0,0x0, 0x2, 0xd, 0xa9,0x0, 0x2, 0xd, 0xa8,0x0, 0x2, 0xd, 0xa3, +0x0, 0x2, 0xd, 0xa2,0x0, 0x2, 0xd, 0xa7,0x0, 0x2, 0xd, 0xa6,0x0, 0x2, 0xd, 0xaa, +0x0, 0x2, 0xd, 0xad,0x0, 0x2, 0xd, 0xac,0x0, 0x2, 0xd, 0x37,0x0, 0x2, 0xd, 0x36, +0x0, 0x2, 0xd, 0x33,0x0, 0x2, 0xd, 0x32,0x0, 0x2, 0xd, 0x29,0x0, 0x2, 0xd, 0x28, +0x0, 0x2, 0xd, 0x2d,0x0, 0x2, 0xd, 0x2b,0x0, 0x2, 0xd, 0x2c,0x0, 0x2, 0xd, 0x2a, +0x0, 0x2, 0xd, 0x31,0x0, 0x2, 0xd, 0x27,0x0, 0x2, 0xd, 0x30,0x0, 0x2, 0xd, 0x26, +0x0, 0x2, 0xd, 0x1c,0x0, 0x2, 0xd, 0x25,0x0, 0x2, 0xd, 0x24,0x0, 0x2, 0xd, 0x1b, +0x0, 0x2, 0xd, 0x38,0x0, 0x2, 0x0, 0x6d,0x0, 0x2, 0xe, 0xc, 0x0, 0x2, 0xe, 0xb, +0x0, 0x2, 0xd, 0x1a,0x0, 0x2, 0xd, 0xa1,0x0, 0x2, 0xd, 0xe3,0x0, 0x2, 0xd, 0xe2, +0x0, 0x2, 0xd, 0xe1,0x0, 0x2, 0xd, 0x23,0x0, 0x2, 0xd, 0x22,0x0, 0x2, 0x0, 0x0, +0x0, 0x2, 0xe, 0x6c,0x0, 0x0, 0x3b,0x7c,0x0, 0x2, 0x23,0x21,0x0, 0x2, 0xc2,0xc8, +0x0, 0x2, 0x23,0x6, 0x0, 0x0, 0x36,0x68,0x0, 0x2, 0x51,0x4, 0x0, 0x2, 0x4e,0x74, +0x0, 0x2, 0x4f,0x0, 0x0, 0x2, 0x51,0x24,0x0, 0x2, 0xa8,0x18,0x0, 0x2, 0xbb,0xb8, +0x0, 0x2, 0xc2,0xf8,0x0, 0x1, 0x28,0x60,0x0, 0x2, 0xa6,0xde,0x0, 0x2, 0x85,0xf8, +0x0, 0x2, 0xa6,0xea,0x0, 0x2, 0xa6,0xe6,0x0, 0x2, 0xa6,0xe2,0x0, 0x2, 0xa6,0xe8, +0x0, 0x2, 0xa6,0xe4,0x0, 0x0, 0x66,0x5e,0x0, 0x2, 0x66,0x5c,0x0, 0x2, 0x60,0xa, +0x0, 0x0, 0xa6,0xb8,0x0, 0x0, 0xa6,0x90,0x0, 0x2, 0x66,0x5e,0x0, 0x2, 0xa5,0x90, +0x0, 0x2, 0xa6,0x8, 0x0, 0x2, 0xa5,0x92,0x0, 0x2, 0x79,0x54,0x0, 0x2, 0xa6,0x84, +0x0, 0x2, 0xa6,0xe0,0x0, 0x2, 0xa6,0x90,0x0, 0x2, 0xa6,0xb8,0x0, 0x0, 0xa6,0xe0, +0x0, 0x2, 0x7f,0xa6,0x0, 0x2, 0x98,0xee,0x0, 0x2, 0x92,0x9c,0x0, 0x2, 0x73,0x2, +0x0, 0x2, 0x6c,0xb0,0x0, 0x2, 0x60,0xc, 0x0, 0x2, 0xa7,0xd3,0x0, 0x2, 0xa7,0xd2, +0x0, 0x2, 0xa6,0x88,0x0, 0x2, 0xa6,0x8c,0x0, 0x0, 0x3b,0x44,0x0, 0x2, 0xc6,0xea, +0x0, 0x2, 0x4e,0xa8,0x0, 0x2, 0xe, 0x84,0x0, 0x2, 0x23,0x2a,0x0, 0x2, 0x41,0x5a, +0x0, 0x2, 0x3b,0x8, 0x0, 0x2, 0x23,0x9, 0x0, 0x2, 0x23,0x3, 0x0, 0x2, 0xb8,0xcc, +0x0, 0x2, 0x24,0x80,0x0, 0x1, 0x28,0x58,0x0, 0x1, 0x28,0x64,0x0, 0x2, 0x4f,0x20, +0x0, 0x2, 0xa8,0x1c,0x0, 0x2, 0xc2,0xe4,0x0, 0x2, 0x23,0x29,0x0, 0x2, 0x47,0xac, +0x0, 0x2, 0xbb,0xf8,0x0, 0x2, 0x23,0x1a,0x0, 0x2, 0x23,0x15,0x0, 0x0, 0x3a,0xaa, +0x0, 0x2, 0x4f,0x3f,0x0, 0x2, 0x4f,0x3e,0x0, 0x2, 0x4f,0x3c,0x0, 0x2, 0xb8,0x68, +0x0, 0x2, 0x24,0x78,0x0, 0x1, 0x28,0x4c,0x0, 0x2, 0xbc,0x70,0x0, 0x2, 0xbc,0x5c, +0x0, 0x2, 0x5f,0x90,0x0, 0x2, 0xe, 0x83,0x0, 0x2, 0xe, 0x88,0x0, 0x0, 0x3d,0x2c, +0x0, 0x2, 0xc6,0xec,0x0, 0x2, 0xc2,0xfc,0x0, 0x2, 0x5f,0xca,0x0, 0x2, 0x5f,0xcc, +0x0, 0x2, 0xbc,0x68,0x0, 0x2, 0xe, 0x54,0x0, 0x2, 0x1b,0x48,0x0, 0x2, 0x23,0x2d, +0x0, 0x2, 0xc6,0xee,0x0, 0x2, 0x2d,0x10,0x0, 0x0, 0xa8,0x78,0x0, 0x2, 0xa8,0x78, +0x0, 0x2, 0x23,0x1e,0x0, 0x2, 0x4f,0x22,0x0, 0x2, 0xb8,0x69,0x0, 0x2, 0x23,0x13, +0x0, 0x2, 0xb7,0xfe,0x0, 0x2, 0xb7,0xf8,0x0, 0x2, 0x24,0xd0,0x0, 0x2, 0x23,0x24, +0x0, 0x2, 0xb8,0x6c,0x0, 0x2, 0xe, 0x5c,0x0, 0x2, 0xbc,0x74,0x0, 0x2, 0xbc,0x72, +0x0, 0x2, 0x23,0xc, 0x0, 0x2, 0xe, 0x58,0x0, 0x2, 0x2c,0xa1,0x0, 0x2, 0x52,0xc2, +0x0, 0x2, 0x52,0xc6,0x0, 0x2, 0x52,0xcf,0x0, 0x2, 0x52,0xce,0x0, 0x2, 0x52,0xc7, +0x0, 0x2, 0x52,0xcc,0x0, 0x2, 0x52,0xcb,0x0, 0x2, 0x52,0xcd,0x0, 0x2, 0x52,0xc8, +0x0, 0x2, 0x52,0xc5,0x0, 0x2, 0x52,0xc9,0x0, 0x2, 0x52,0xca,0x0, 0x2, 0x52,0x70, +0x0, 0x2, 0x51,0xa8,0x0, 0x2, 0x52,0xc, 0x0, 0x2, 0x52,0xc4,0x0, 0x2, 0x52,0xc1, +0x0, 0x2, 0x52,0xc0,0x0, 0x2, 0x51,0x44,0x0, 0x2, 0x24,0x86,0x0, 0x0, 0x3b,0x36, +0x0, 0x2, 0xb8,0xd6,0x0, 0x2, 0x47,0xb0,0x0, 0x1, 0x28,0x5c,0x0, 0x0, 0x3a,0x6c, +0x0, 0x2, 0x1b,0x49,0x0, 0x2, 0xc2,0xdc,0x0, 0x2, 0x23,0x16,0x0, 0x2, 0x23,0xe, +0x0, 0x2, 0x4f,0x24,0x0, 0x2, 0xb8,0xd8,0x0, 0x0, 0x3b,0xac,0x0, 0x2, 0xa7,0xd2, +0x0, 0x2, 0xa7,0xd4,0x0, 0x1, 0x28,0x38,0x0, 0x1, 0x28,0xe4,0x0, 0x2, 0x4e,0xb8, +0x0, 0x2, 0x47,0xb4,0x0, 0x2, 0x5f,0x76,0x0, 0x2, 0x5f,0x7c,0x0, 0x2, 0x5f,0x74, +0x0, 0x2, 0x5f,0x7a,0x0, 0x2, 0x5f,0x78,0x0, 0x2, 0x5f,0x71,0x0, 0x2, 0x5f,0x72, +0x0, 0x2, 0x5f,0x70,0x0, 0x2, 0x59,0x30,0x0, 0x2, 0x52,0xf0,0x0, 0x2, 0x52,0xd4, +0x0, 0x1, 0x28,0x50,0x0, 0x2, 0x4e,0xf8,0x0, 0x1, 0x28,0x7c,0x0, 0x2, 0x5f,0x80, +0x0, 0x1, 0x29,0xf8,0x0, 0x2, 0xb8,0xac,0x0, 0x2, 0xc6,0xd4,0x0, 0x2, 0xc6,0xbc, +0x0, 0x2, 0x47,0xb6,0x0, 0x1, 0x28,0x70,0x0, 0x2, 0x1b,0x54,0x0, 0x2, 0x24,0x68, +0x0, 0x2, 0x23,0x2, 0x0, 0x2, 0xe, 0x68,0x0, 0x2, 0x23,0x28,0x0, 0x0, 0x3a,0x84, +0x0, 0x2, 0xe, 0x52,0x0, 0x2, 0x47,0xb8,0x0, 0x0, 0x3b,0x94,0x0, 0x2, 0x47,0xbc, +0x0, 0x2, 0x23,0x26,0x0, 0x2, 0x2c,0xcc,0x0, 0x2, 0x23,0x18,0x0, 0x2, 0xb8,0xe4, +0x0, 0x2, 0xe, 0x50,0x0, 0x2, 0x47,0xc0,0x0, 0x2, 0x4f,0x28,0x0, 0x2, 0x23,0x20, +0x0, 0x2, 0x4e,0x63,0x0, 0x2, 0x4e,0x62,0x0, 0x2, 0x4e,0x61,0x0, 0x2, 0x4e,0x60, +0x0, 0x2, 0x4e,0x5f,0x0, 0x2, 0x4e,0x5e,0x0, 0x2, 0x4e,0x5d,0x0, 0x2, 0x4e,0x5c, +0x0, 0x2, 0x4e,0x5b,0x0, 0x2, 0x4e,0x5a,0x0, 0x2, 0x4e,0x59,0x0, 0x2, 0x4e,0x58, +0x0, 0x2, 0x4e,0x56,0x0, 0x2, 0x4e,0x48,0x0, 0x2, 0x23,0x1c,0x0, 0x2, 0x60,0x8, +0x0, 0x2, 0x4f,0x3b,0x0, 0x2, 0x4f,0x2c,0x0, 0x1, 0x28,0x80,0x0, 0x2, 0x4a,0xea, +0x0, 0x2, 0x47,0xc4,0x0, 0x2, 0x23,0x2b,0x0, 0x2, 0x24,0x82,0x0, 0x1, 0x28,0x78, +0x0, 0x2, 0x1b,0x4c,0x0, 0x2, 0xb9,0x2, 0x0, 0x2, 0xb9,0x1, 0x0, 0x2, 0xb8,0xf2, +0x0, 0x2, 0xb8,0xf0,0x0, 0x1, 0x28,0x68,0x0, 0x2, 0x2d,0x2, 0x0, 0x2, 0x23,0x8, +0x0, 0x0, 0x3b,0x52,0x0, 0x2, 0x4f,0x2a,0x0, 0x2, 0x23,0x10,0x0, 0x2, 0xbb,0x69, +0xf, 0xff,0xff,0xff,0xf0,0xff,0xff,0xff,0xff,0xc0,0xff,0xff,0x55,0x50,0x47,0x52, +0x41,0x44,0x45,0x20,0x66,0xcc,0x99,0x33,0x46,0x4c,0x41,0x47,0xa0,0x0, 0x3, 0xff, +0x8, 0x0, 0x0, 0x8, 0x0, 0x82,0x32,0x1, 0x6, 0xc3,0x10,0x4, 0x8, 0x4, 0x8, 0x4, +0x6, 0xc3,0x14,0x5, 0x8, 0x5, 0x8, 0x5, 0x6, 0xc3,0x18,0x6, 0x8, 0x6, 0x8, 0x6, +0x3, 0x28,0x0, 0xfa,0x3, 0x28,0x1, 0x2c,0x40,0x8b,0x80,0x0, 0x3f,0xe9,0x99,0x99, +0x99,0x99,0x99,0x9a,0xfc,0x0, 0xff,0xff,0xef,0xff,0xff,0xff,0xf3,0xff,0xff,0xff, +0xf8,0x0, 0xff,0xff,0x9f,0xff,0xff,0xff,0xe7,0xff,0xff,0xff,0xf9,0xff,0xff,0xff, +0xfe,0x7f,0xff,0xff,0xff,0x9f,0xff,0xff,0xff,0xe7,0xff,0xff,0x80,0x1, 0x10,0x20, +0xef,0xff,0xff,0xff,0xf3,0xff,0xff,0xff,0x1f,0xff,0xff,0xff,0xf, 0xff,0xff,0xff, +0x0, 0xff,0xff,0xff,0x0, 0xf, 0xff,0xff,0xf, 0xff,0xff,0xff,0x1f,0xff,0xff,0xff, +0x0, 0xf, 0xff,0xff,0xf, 0xff,0xff,0xff,0x7, 0xff,0xff,0xff,0x0, 0x19,0x66,0xd, +0x3c,0x6e,0xf3,0x5f,0x7f,0xff,0xff,0xff, \ No newline at end of file diff --git a/drivers/input/touchscreen/FT8006m/include/firmware/black_all.i b/drivers/input/touchscreen/FT8006m/include/firmware/black_all.i new file mode 100644 index 0000000000000..f0b0e50999db4 --- /dev/null +++ b/drivers/input/touchscreen/FT8006m/include/firmware/black_all.i @@ -0,0 +1,7029 @@ +0x10,0x71,0x4, 0x3e,0x16,0xd9,0x0, 0x9d,0xbf,0x10,0x84,0x0, 0x0, 0x2, 0xc8,0x0, +0x84,0x80,0x0, 0x26,0x5a,0x51,0xb5,0x2a,0x6c,0xc5,0x4a,0x1, 0x60,0xe1,0xf, 0xc1, +0x10,0xc, 0x30,0x4b,0x0, 0x0, 0x42,0xa, 0xe3,0x29,0x99,0xf0,0xb9,0xe1,0x6b,0x68, +0x5f,0x81,0x26,0x0, 0xa1,0x80,0x8, 0x20,0x6, 0x0, 0x85,0x0, 0x0, 0x2c,0xb8,0x71, +0x3, 0x0, 0x8, 0x10,0x1b,0x27,0x35,0x38,0x6a,0x2d,0x72,0xbb,0x7b,0x94,0x62,0x5c, +0x4a,0x38,0x25,0x15,0x6, 0x0, 0x8, 0x10,0x1b,0x27,0x35,0x38,0x6a,0x2d,0x72,0xbb, +0x7b,0x94,0x62,0x5c,0x4a,0x38,0x25,0x15,0x0, 0x0, 0x85,0x80,0x0, 0x12,0x0, 0x0, +0x20,0x44,0x8, 0x0, 0x60,0x47,0x0, 0x0, 0x10,0x22,0x4, 0x0, 0xb0,0x23,0x15,0x0, +0x86,0x0, 0x0, 0x30,0xfa,0x68,0x68,0x1, 0x2d,0x6e,0x10,0x4, 0x0, 0x60,0x15,0x0, +0x50,0x15,0x56,0x51,0x15,0x55,0x61,0x15,0x0, 0x60,0x15,0x0, 0x50,0x15,0x56,0x51, +0x15,0x55,0x61,0x95,0xab,0x18,0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x80,0x4c,0x29,0x84, +0x52,0x1, 0x9, 0x0, 0x86,0x80,0x0, 0xe, 0xf0,0xb1,0x71,0xef,0x49,0xc0,0x80,0x1a, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x87,0x0, 0x0, 0xc, 0xff,0x81,0x68,0xac,0xb4,0x6d, +0x24,0x0, 0x0, 0x0, 0x0, 0x0, 0x87,0x80,0x0, 0x17,0x19,0xc6,0x3e,0x20,0x1c,0x58, +0x64,0x10,0x53,0x33,0xe8,0x50,0x1, 0x32,0x8c,0x8c,0x24,0x69,0x81,0x71,0x44,0x7c, +0x14,0x88,0x0, 0x0, 0x1f,0x0, 0x80,0x3, 0xe7,0x1f,0x17,0x0, 0x48,0x40,0x2, 0xcf, +0x18,0x30,0x88,0x41,0x8a,0x39,0x28,0xa9,0xc5,0x9a,0x7b,0xf0,0x7, 0x7e,0xe0,0x7, +0x7e,0x20,0x10,0x0, 0x88,0x80,0x0, 0x79,0x43,0x77,0x3, 0x40,0x8a,0xf1,0xff,0x43, +0x30,0x8, 0xc1,0x46,0xa0,0x80,0x24,0x18,0x30,0x6, 0x64,0xc1,0x80,0x11,0x7, 0xc4, +0xe1,0xd0,0x68,0x40,0x20,0x1d,0x4, 0x48,0x40,0x40,0x28,0x10,0x60,0x70,0x38,0x1a, +0x10,0x47,0x3, 0xe2,0x20,0x0, 0x10,0x80,0x50,0x30,0x0, 0xe0,0xe1,0x1, 0x0, 0x28, +0xe, 0x6, 0xc3,0xcc,0xcc,0xcc,0xcc,0xcc,0x8c,0x88,0x88,0x88,0x88,0x88,0xc8,0x8, +0x86,0xc6,0xe3,0x81,0x0, 0x20,0x0, 0x21,0x42,0x88,0x0, 0x0, 0x0, 0x0, 0x40,0x0, +0x0, 0x31,0x4, 0x41,0x6, 0x0, 0x0, 0x0, 0x0, 0x92,0x4, 0x0, 0x92,0x4, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x85,0x11,0xc, 0x0, 0x0, 0x40,0x0, 0x0, 0x0, 0x0, 0x5e, +0x0, 0x89,0x0, 0x0, 0x19,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x89,0x80, +0x0, 0x13,0x1, 0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0x0, 0x1, 0x7, 0x1, 0x5, 0x44,0xc, +0xce,0xe7,0x62,0xe, 0x0, 0x8a,0x0, 0x0, 0x80,0x91,0x1, 0x88,0xa6,0xe8,0xef,0xf7, +0xfb,0xfd,0x7e,0x0, 0x0, 0x0, 0x68,0xc5,0x7, 0xe8,0x3c,0x20,0x36,0x40,0xe7,0x1, +0x71,0x1, 0x3a,0xf, 0x88,0x9, 0xd0,0x79,0x80,0x39,0xbc,0xdf,0x8, 0xcc,0x20,0x83, +0x46,0x0, 0x18,0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x1c,0xad,0xd1,0x2a,0x0, 0x40,0xa1,0x50,0x78,0x7, 0xa0,0xf3,0x80,0x73, +0x0, 0x6f,0x0, 0x74,0x1e,0x70,0xe, 0xe0,0x5, 0x80,0xce,0x3, 0xce,0x1, 0xbc,0x2, +0xd0,0x79,0xc0,0x39,0x80,0x77,0x1, 0x3a,0xf, 0x38,0x7, 0xf0,0x26,0x40,0xe7,0x1, +0xe7,0x0, 0xde,0x3, 0xe8,0x3c,0xe0,0x1c,0xc0,0x5b,0x0, 0x9d,0x7, 0x9c,0x3, 0x0, +0x1, 0xbf,0x1f,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8a,0x80,0x0, 0x80,0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd1, +0x6a,0xc4,0xa8,0xd5,0x96,0xa2,0xe0,0x1f,0x31,0x6a,0xb5,0xa5,0x28,0x78,0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x13,0x0, 0xf0,0x0, 0x94,0xd6,0xc, 0x2d,0x49,0x30,0x14, +0xc7,0x4, 0xd5,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0x4d,0x15,0xa2,0x18,0x84, +0x0, 0x4c,0x30,0x6c,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xd6,0xc, 0x29,0x8, 0x20, +0x10,0xc6,0x4, 0xd5,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0x4d,0x55,0xb2,0x1c, +0xc5,0x10,0x4c,0x30,0x6c,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0x5b,0x10,0x8b,0x0, 0x0, +0x16,0x0, 0x0, 0x2, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0xd0,0x40,0x8c,0x0, 0x0, 0x3f,0xef,0xbd,0xf7,0xde,0x7b, +0xef,0xbd,0x7, 0x8, 0x8, 0xa, 0xc, 0xc, 0xc, 0xc, 0xc, 0xc, 0xc, 0xc, 0x5c,0x9, +0xa8,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0x5a,0x59,0x59,0x59,0x59,0x59, +0x59,0x59,0x59,0x59,0x59,0x59,0x9, 0x4, 0xff,0x5, 0x80,0x80,0x0, 0x4, 0x20,0x0, +0x1, 0x8, 0x40,0x0, 0x2, 0x10,0x80,0x0, 0x4, 0xf, 0x8c,0x80,0x0, 0x27,0xea,0xd3, +0xc6,0xb8,0xaf,0xa6,0x9e,0x98,0x92,0x8e,0x8a,0x85,0x0, 0x60,0xf6,0xcf,0xfc,0x6f, +0xf6,0xef,0xcf,0xaf,0xf, 0xff,0xaf,0xb5,0x71,0xe, 0x6c,0x4a,0x69,0x8, 0x0, 0x0, +0x44,0x0, 0x0, 0x0, 0x0, 0x8d,0x0, 0x0, 0x80,0x0, 0x4, 0x8, 0xc, 0x50,0x10,0x14, +0x18,0x1c,0xa5,0x20,0x28,0x30,0x39,0x3e,0x41,0x49,0x51,0x59,0x54,0x61,0x69,0x71, +0x79,0xaa,0x81,0x89,0x91,0x99,0x5a,0xa1,0xa9,0xb1,0xb9,0x1, 0xc0,0xc8,0xd0,0xd8, +0x6f,0xe0,0xe7,0xef,0xf7,0x5c,0xfb,0xfd,0xfe,0x0, 0x0, 0x4, 0x7, 0xb, 0xf0,0xf, +0x13,0x17,0x1b,0x6b,0x1f,0x27,0x2f,0x36,0xc1,0x3e,0x46,0x4e,0x56,0x1a,0x5e,0x65, +0x6d,0x75,0xac,0x7d,0x85,0x8d,0x95,0x16,0x9d,0xa4,0xac,0xb4,0xbc,0xbc,0xc4,0xcc, +0xd4,0x5a,0xdc,0xe4,0xec,0xf3,0xc1,0xf7,0xf9,0xfa,0x3f,0x0, 0x4, 0x8, 0xc, 0x0, +0x10,0x14,0x18,0x1c,0x55,0x20,0x28,0x30,0x38,0x55,0x40,0x48,0x50,0x58,0x55,0x60, +0x68,0x70,0x78,0x1, 0x7f,0x87,0x8f,0x97,0xaf,0x8d,0x80,0x0, 0x14,0x9f,0xa7,0xaf, +0xb7,0x55,0xbf,0xc7,0xcf,0xd7,0x0, 0xdf,0xe7,0xef,0xf7,0xe5,0xfb,0xfe,0xff,0x3, +0x0, 0x90,0x0, 0x0, 0x7, 0x8b,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x91,0x0, 0x0, 0xd, +0x2d,0xd3,0x0, 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x1f,0x0, 0x91,0x80,0x0, +0x19,0x1, 0x5, 0x0, 0x5, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x1, 0xff,0xf, 0x0, 0x0, 0x2c,0x1, 0x0, 0x0, 0x0, 0x92,0x0, 0x0, 0x10,0x0, 0x3, +0x0, 0x9d,0xbf,0x10,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd9,0x16,0xb, 0xf4, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x72,0x8d,0x0, 0xff,0xda,0x25,0x4, 0xa7,0x24,0x87,0x55,0x56,0x72,0x8d,0x1, 0xfe, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc8,0x37, +0x34,0x34,0x33,0x35,0x33,0x32,0x30,0x32,0x44,0x31,0x30,0x30,0x33,0x31,0x30,0x30, +0x0, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x30,0x30,0x31,0x0, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x0, 0x0, 0x0, 0x60,0x0, 0x1, 0x79,0x84,0x0, 0x1, 0x79,0x86,0x0, 0x1, 0x79,0x86, +0x0, 0x1, 0x79,0x86,0x0, 0x1, 0x79,0x86,0x0, 0x1, 0x79,0x86,0x0, 0x1, 0x79,0x86, +0x0, 0x1, 0x79,0x86,0x0, 0x1, 0x79,0x86,0x0, 0x1, 0x79,0x86,0x0, 0x1, 0x79,0x86, +0x0, 0x1, 0x79,0x86,0x0, 0x1, 0x79,0x86,0x0, 0x1, 0x79,0x86,0x0, 0x1, 0x79,0x86, +0x0, 0x1, 0x79,0x86,0x0, 0x1, 0x79,0x86,0x0, 0x1, 0x79,0x86,0x0, 0x1, 0x79,0x86, +0x0, 0x1, 0x79,0x86,0x0, 0x1, 0x79,0x86,0x0, 0x1, 0x79,0x86,0x0, 0x1, 0x79,0x86, +0xe0,0x60,0x3c,0x0, 0xcc,0x2, 0xe0,0x60,0x3c,0x10,0xea,0x0, 0xc8,0x3, 0xe0,0xff, +0xc8,0x7c,0xfa,0x0, 0xcf,0x82,0xf0,0x0, 0xcf,0x80,0xea,0x0, 0xcc,0x0, 0xe0,0x0, +0xcc,0x0, 0xe0,0x60,0x3c,0x17,0xea,0x0, 0xcc,0x2, 0xe0,0x0, 0xcc,0x0, 0xea,0x0, +0xcc,0x80,0xe0,0x32,0xcc,0xe8,0x3c,0x79,0x1, 0x8, 0xea,0x0, 0xcd,0x2, 0xe0,0x1, +0xcd,0x34,0x3d,0x28,0xe0,0x0, 0xdb,0xe2,0xea,0x0, 0xcc,0x0, 0xe0,0x2e,0xcc,0x60, +0x3c,0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x56,0x31,0x2e,0x34,0x30,0x53,0x65,0x70,0x20,0x20,0x31,0x20,0x32,0x30,0x31,0x37, +0x46,0x54,0x38,0x30,0x30,0x36,0x5f,0x42,0x4f,0x4f,0x54,0x4c,0x4f,0x41,0x44,0x45, +0x26,0x40,0xd9,0xbf,0x38,0xce,0xc7,0x31,0xd5,0xbe,0x2a,0x41,0xff,0x0, 0xff,0x0, +0x0, 0x0, 0x0, 0x0, 0xff,0xff,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80,0xb6, +0x72,0x8d,0x0, 0xff,0xda,0x25,0x4, 0xa7,0x24,0x87,0x55,0x56,0x72,0x8d,0x1, 0xfe, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc8,0x37, +0x34,0x34,0x33,0x35,0x33,0x32,0x30,0x32,0x44,0x31,0x30,0x30,0x33,0x31,0x30,0x30, +0x0, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x30,0x30,0x31,0x0, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xe8,0x2, 0x4f,0xa1,0xe2,0x0, 0xcf,0xe6,0x1, 0x35,0x2, 0x88,0xe2,0x0, 0xcf,0x83, +0x1, 0x2b,0xe2,0x0, 0xcf,0x85,0x1, 0x14,0x0, 0xbd,0xe2,0x1, 0xcf,0x90,0x1, 0x8, +0xe2,0x1, 0xcf,0xcc,0x1, 0x27,0xe2,0x0, 0xcf,0xea,0x1, 0xb4,0x0, 0xa6,0xe2,0x0, +0xcc,0x1, 0x2, 0xb0,0xea,0x0, 0x7f,0xd0,0x3c,0x1f,0x8c,0x8, 0x38,0x82,0x2c,0x4, +0xe8,0x0, 0x64,0x46,0x0, 0xa4,0xe2,0x0, 0xcc,0x1, 0x1, 0x86,0xe8,0x0, 0x67,0xc6, +0xe0,0x8, 0x37,0xc8,0x0, 0x9c,0xe2,0x0, 0xcc,0x2, 0x1, 0x9c,0xe8,0x0, 0x67,0xc6, +0xe4,0x8, 0x37,0xc0,0x0, 0x94,0xe8,0x2, 0x67,0xca,0x3c,0x1f,0xe0,0x1, 0x8c,0x8, +0x38,0x82,0xe8,0x2, 0x4c,0x38,0x38,0x82,0x2c,0x5, 0xe8,0x1, 0x5c,0xe, 0x34,0x48, +0x38,0x82,0xe2,0x0, 0xcc,0x1, 0x1, 0x86,0xe8,0x1, 0x5c,0xe, 0xe2,0x1, 0xc4,0x7f, +0x38,0x82,0xe0,0x1, 0x14,0x6b,0x38,0x82,0x17,0x0, 0xe8,0x2, 0x6f,0x23,0xe8,0x2, +0x4f,0xa1,0xe2,0x0, 0xcf,0xe4,0xe0,0x2, 0x1, 0x2, 0x2, 0xa6,0xe2,0x0, 0xcf,0x87, +0xe0,0x1, 0x1, 0x5a,0x2, 0x8f,0xe2,0x0, 0xcf,0x83,0xe0,0x1, 0x1, 0x27,0xe2,0x0, +0xcf,0x85,0xe0,0x1, 0x1, 0x70,0xe2,0x0, 0xcf,0x81,0xe0,0x2, 0x1, 0xa3,0xe0,0x1, +0x0, 0xea,0xe2,0x0, 0xcf,0x90,0xe0,0x1, 0x1, 0x63,0x2, 0x86,0xe2,0x0, 0xcf,0x89, +0xe0,0x1, 0x1, 0x52,0x38,0x82,0xe2,0x0, 0xcf,0xd5,0x1, 0x25,0xe2,0x0, 0xcf,0xe1, +0xe0,0x2, 0x1, 0x8, 0x38,0x82,0xe2,0x1, 0xcf,0x90,0x1, 0x20,0x2, 0x8c,0xe2,0x0, +0xcf,0xe6,0xe0,0x1, 0x1, 0x50,0xe0,0x1, 0x4, 0xd8,0xe2,0x0, 0xcf,0xea,0xe0,0x1, +0x1, 0x4a,0x38,0x82,0xe2,0x1, 0xcf,0xb0,0x1, 0x1f,0x2, 0x85,0xe2,0x1, 0xcf,0xaa, +0x1, 0xa, 0x38,0x82,0xe2,0x1, 0xcf,0xbf,0x1, 0x32,0xe2,0x1, 0xcf,0xcc,0xe0,0x1, +0x1, 0x3a,0x38,0x82,0xe8,0x2, 0x6f,0x38,0x38,0x82,0xe2,0x0, 0xcc,0x3, 0xe0,0x1, +0x2, 0xe9,0xe0,0x0, 0x1f,0x93,0xe8,0x2, 0x6f,0x38,0x3f,0x98,0xac,0x8f,0xe0,0x1, +0x24,0x2a,0xe0,0x1, 0x0, 0xdf,0xe2,0x0, 0xcc,0x3, 0xe0,0x1, 0x2, 0xdb,0xea,0x6, +0x7f,0x8e,0xe9,0xff,0xc7,0xfe,0x3c,0x1f,0x8c,0x8, 0x3c,0x1f,0x3c,0x2, 0x4, 0x4, +0xa, 0x18,0xe4,0x9, 0x34,0xa0,0x0, 0x85,0xe8,0x0, 0x67,0xc5,0x34,0xa8,0x3c,0x9f, +0xe8,0x0, 0x7c,0xc5,0x38,0x82,0xe8,0x0, 0x67,0xc5,0x0, 0xfa,0xe2,0x0, 0xcc,0x5, +0x2, 0xa3,0xea,0x6, 0x7f,0xc4,0xe9,0xff,0xc7,0xfe,0x34,0x21,0x3c,0x1f,0x9c,0x8, +0x3c,0x1f,0x3c,0x2, 0x1, 0x6c,0x0, 0x78,0x0, 0x98,0x0, 0xc, 0x0, 0x18,0x0, 0x22, +0xe8,0x2, 0x67,0x4a,0xa7,0x8e,0x3c,0x9f,0xbc,0x8e,0x38,0x82,0x34,0xa8,0xe8,0x2, +0x67,0xca,0xe0,0x1, 0x0, 0x96,0xe8,0x2, 0x67,0xca,0x9f,0x2f,0x3c,0x9e,0xb4,0xaf, +0x17,0x0, 0xb7,0x3f,0x38,0x82,0xe8,0x2, 0x67,0xca,0x16,0x81,0x9f,0x3f,0x3e,0x9e, +0xb6,0xbf,0x3f,0x1f,0xe0,0x1, 0xac,0x8e,0x9e,0xbf,0x9f,0x2f,0x3e,0xfe,0xe0,0x1, +0x4, 0x91,0xe8,0xa, 0x4e,0xa6,0x17,0x0, 0xe0,0x2e,0x3e,0x8e,0xe8,0x2, 0x7f,0xc6, +0x17,0x82,0xe8,0xa, 0x6f,0x26,0x0, 0xac,0xe2,0x0, 0xcc,0x2, 0x1, 0x18,0xe2,0x0, +0xcc,0x3, 0x1, 0x1b,0xe2,0x0, 0xcc,0x1, 0xe0,0x0, 0x1, 0xfc,0xe8,0xa, 0x4f,0xa6, +0x27,0x84,0xe0,0x0, 0x1f,0x8f,0x0, 0x83,0xe0,0x0, 0x1f,0x8e,0xe8,0x2, 0x7f,0xca, +0xe4,0x9, 0x34,0xa0,0xe8,0x2, 0x67,0xca,0xe0,0x0, 0x0, 0xd8,0xe8,0x2, 0x67,0x4a, +0x34,0xa8,0xa7,0x8e,0xe7,0xff,0x0, 0xb9,0xe8,0x2, 0x67,0xca,0xa7,0xf, 0x3c,0x9e, +0xbc,0x8f,0x17,0x1, 0xe8,0x2, 0x7f,0xc6,0x17,0x81,0xe8,0x2, 0x6f,0x23,0xe8,0x0, +0x7f,0xc2,0x38,0x82,0xe8,0x0, 0x67,0x9f,0x17,0x0, 0xe0,0x3, 0xb7,0x1f,0x17,0x80, +0xe0,0x2, 0x17,0x4, 0xbf,0x8e,0xe0,0x2, 0x17,0x8, 0xbf,0x8e,0x17,0x81,0xe8,0x2, +0x6f,0xa0,0x38,0x82,0xe2,0x0, 0xcc,0x1, 0x1, 0x84,0xe8,0x0, 0x6c,0xd3,0x38,0x82, +0xe2,0x0, 0xcc,0x2, 0x1, 0xbe,0xe8,0x2, 0x6c,0x9f,0x38,0x82,0xe8,0x2, 0x6c,0x9e, +0x38,0x82,0x17,0x1, 0xe8,0x2, 0x6f,0x23,0x38,0x82,0xe8,0x2, 0x6f,0x38,0x17,0x80, +0xe8,0x0, 0x7f,0xc4,0x38,0x82,0xc4,0x7f,0xe2,0x0, 0xcc,0x4, 0x2, 0xaa,0xea,0x8, +0x7f,0xf2,0xe9,0xff,0xc7,0xfe,0x3c,0x1f,0x8c,0x8, 0x3c,0x1f,0xe8,0x2, 0x67,0xca, +0x3c,0x2, 0x6, 0xc, 0x12,0x1a,0x20,0x0, 0xe4,0x9, 0x34,0xa0,0x0, 0x86,0xa7,0xf, +0x34,0xa8,0x0, 0x82,0xa7,0xf, 0x3c,0x9e,0xbc,0x8f,0x38,0x82,0x34,0xa8,0xb4,0xaf, +0x38,0x82,0x9f,0x2f,0x3c,0x9e,0xb4,0xaf,0x17,0x3, 0xe8,0x0, 0x7f,0x42,0x38,0x82, +0x17,0x84,0xe8,0x0, 0x7f,0xc2,0xe8,0x2, 0x6f,0x38,0x17,0x0, 0xe8,0x0, 0x7f,0x44, +0x38,0x82,0x8, 0xb2,0xe8,0x0, 0xc, 0x37,0xf8,0x0, 0xf, 0xbf,0x17,0x81,0xe8,0x0, +0x61,0x1c,0xe8,0x0, 0x6f,0xd4,0xa7,0x82,0xe2,0x0, 0xc7,0x81,0x27,0x99,0xa7,0x2, +0x17,0xfe,0x3f,0xde,0xbf,0x82,0x8c,0xf2,0xe8,0x2, 0x4f,0xa2,0x2f,0x83,0xe8,0x2, +0x6c,0xa1,0xe8,0x2, 0x4c,0x22,0xde,0xa9,0xe8,0x2, 0x4f,0xa2,0xc7,0x81,0xe8,0x2, +0x6f,0xa2,0xe8,0x2, 0x4f,0xa3,0x27,0x84,0x14,0x0, 0xde,0x53,0xac,0x72,0xa7,0x82, +0x37,0xc1,0xe2,0x0, 0xc7,0x81,0x27,0x8e,0xa7,0x2, 0x17,0xfd,0x3f,0xde,0xbf,0x82, +0xe8,0x2, 0x4f,0xa2,0xc7,0x81,0xe8,0x2, 0x6f,0xa2,0xe8,0x2, 0x4c,0x22,0xde,0x41, +0xac,0x72,0x17,0x88,0xe0,0x61,0x3f,0x91,0xf8,0x0, 0xf, 0xaf,0xf0,0x0, 0xb, 0xa8, +0x9, 0x21,0x38,0x0, 0xe, 0xbf,0xe8,0x0, 0x67,0x1c,0x17,0xfe,0xa6,0xbe,0x3f,0xdd, +0xbf,0xbe,0x17,0x80,0xe8,0x2, 0x6f,0xa2,0x17,0x90,0xe0,0x61,0x3f,0x91,0xf, 0xad, +0x38,0x0, 0x8, 0xb6,0xe1,0xff,0xc0,0x0, 0xe8,0x0, 0x67,0xc4,0x39,0xe8,0x3f,0x99, +0x39,0x69,0x3b,0x6a,0xe8,0x0, 0x7f,0xc4,0x21,0x27,0xe2,0x0, 0xc9,0x7f,0x2, 0x85, +0x3a,0xe2,0xe2,0x1, 0xc2,0xff,0x0, 0x83,0xe0,0x1, 0x12,0x80,0x3a,0x65,0xe2,0x1, +0xc2,0x7f,0x3c,0x63,0x3d,0x64,0xe2,0x0, 0x7c,0x84,0xd7,0xb0,0x39,0x24,0x8f,0x86, +0xe3,0xff,0xc1,0x7f,0x39,0x95,0xe2,0x0, 0x7e,0x84,0x17,0x0, 0xc7,0x1, 0xe1,0x80, +0x8e,0x1d,0xe3,0xff,0xc7,0x7f,0x3a,0x7e,0xe2,0xf, 0x3e,0x4f,0xe2,0x1, 0xc7,0xff, +0x2, 0xf6,0xaf,0x86,0x0, 0xda,0xe0,0x1, 0xc0,0x0, 0xb, 0x61,0xe8,0x0, 0x4f,0xd3, +0xe2,0x0, 0xcf,0x8b,0xe0,0x0, 0x1, 0xd1,0x8, 0xb6,0xe2,0x9f,0xcc,0x7f,0x3a,0xe8, +0xe0,0x0, 0x5, 0xca,0xe8,0x0, 0x67,0x45,0xe2,0xf0,0x17,0x80,0x3f,0x7f,0xe0,0x0, +0x2, 0xc3,0xe8,0x0, 0x67,0xc4,0x3b,0x69,0x39,0xea,0x2f,0x83,0xe8,0x2, 0x6f,0x84, +0xe8,0x0, 0x67,0xc4,0xe8,0x2, 0x4a,0x4, 0x3f,0x93,0xe2,0x0, 0xca,0x3, 0xe8,0x0, +0x7f,0xc4,0x2, 0x9a,0x17,0x84,0xe0,0x2, 0x3f,0xa4,0xe2,0x1, 0xc1,0x7f,0x39,0xf2, +0x3, 0x84,0x39,0x63,0xe2,0x1, 0xc1,0x7f,0xea,0x2, 0x7c,0x0, 0x3c,0xe6,0x3c,0x14, +0x3d,0x62,0x3a,0x12,0x39,0xa2,0xe0,0x0, 0xd9,0x21,0x3a,0x92,0xe8,0x2, 0x6a,0x4, +0x3b,0x12,0xe3,0xff,0xc1,0xff,0x21,0x85,0x3d,0x63,0x3c,0xe6,0x3c,0x65,0xd6,0xf7, +0xe8,0x0, 0x67,0x44,0xe8,0x0, 0x67,0xc5,0x3f,0x7f,0x1, 0x8d,0x15,0x4, 0xea,0x2, +0x7c,0x80,0xe0,0xa0,0x14,0x0, 0xd6,0xeb,0x17,0x80,0xe8,0x0, 0x7f,0xc4,0xb, 0x21, +0xe0,0x9, 0x0, 0x9f,0xb, 0x61,0x38,0x82,0x8, 0xb1,0xe8,0x0, 0x67,0xc2,0xc7,0xff, +0xe2,0x0, 0xcf,0x83,0xe0,0x0, 0x2, 0xe4,0xea,0xd, 0x7f,0xe, 0xe9,0xff,0xc7,0x7e, +0x3f,0x9e,0x8f,0x8f,0x3f,0x9e,0x17,0x0, 0xe8,0x0, 0x7f,0x42,0x3f,0x82,0x4c,0x4, +0x70,0x8e,0xe8,0x1, 0x77,0xe, 0xe8,0x0, 0x4f,0xd3,0xe8,0x2, 0x64,0xc6,0xe2,0x0, +0xcf,0x8b,0x1, 0x86,0xa4,0x9, 0x9d,0x29,0xc4,0x88,0xdf,0x89,0x0, 0x8b,0xa7,0x89, +0x9f,0x29,0x3f,0x9e,0xe2,0x20,0xcf,0x80,0x2, 0x85,0xa4,0x9, 0x9d,0x29,0xc4,0x88, +0xd6,0xb6,0xe8,0x2, 0x67,0xc6,0xa4,0xf, 0x9c,0xaf,0xe0,0x0, 0xd8,0xa9,0xe0,0x20, +0xc4,0x0, 0xe8,0x1, 0x74,0xe, 0xd5,0x23,0x0, 0xb2,0xe8,0x2, 0x64,0xc6,0xe0,0x2, +0x15,0x0, 0xe1,0x80,0xa4,0x29,0xd7,0x2, 0xe8,0x0, 0x4f,0xd4,0x27,0xa8,0xe8,0x2, +0x67,0x46,0xe8,0x0, 0x67,0x9c,0xe0,0x1, 0x87,0xe, 0xaf,0x7f,0x0, 0xa0,0xe8,0x2, +0x67,0xc6,0xe8,0x1, 0x77,0xe, 0xea,0x2, 0x7d,0x38,0xa4,0xf, 0x9c,0xaf,0xdf,0x22, +0xd5,0x6, 0xe7,0xe0,0x17,0x55,0xe8,0x1, 0x77,0xe, 0x0, 0x91,0xe8,0x1, 0x77,0xe, +0xe8,0x0, 0x4f,0xd3,0xe2,0x0, 0xcf,0x8b,0x1, 0x83,0xd3,0x49,0x0, 0x83,0x14,0x0, +0xd6,0xbb,0xd4,0xf5,0xe7,0xe1,0x17,0xaa,0xe8,0x1, 0x77,0x8e,0xe8,0x2, 0x4f,0xa0, +0x27,0x89,0xe0,0x27,0x14,0x8, 0xd4,0xdc,0xe8,0x0, 0x67,0x9f,0x17,0x7f,0xe0,0x7, +0xaf,0x3f,0x8, 0xe1,0xe0,0x0, 0x1f,0x83,0xe0,0x2, 0x8f,0xf, 0xe0,0x2, 0x8e,0x9f, +0x3e,0x9e,0xe2,0x1, 0xce,0xff,0x1, 0x84,0xe2,0x0, 0xcf,0x4, 0x5, 0x8e,0xe0,0x0, +0x1f,0x88,0xe0,0x2, 0x8f,0xf, 0xe0,0x2, 0x8e,0x9f,0x3e,0x9e,0xe2,0x1, 0xce,0xff, +0x1, 0x9c,0xe2,0x0, 0xcf,0x4, 0x2, 0x99,0xe0,0x2, 0x8e,0x2f,0xe0,0x2, 0x8e,0xbf, +0x3e,0x9c,0xe2,0x1, 0xce,0xff,0x1, 0x91,0xe0,0x2, 0x8e,0xcf,0xe0,0x2, 0x8f,0xdf, +0x3f,0x9d,0xe2,0x1, 0xcf,0xff,0x1, 0x89,0xe8,0x2, 0x6f,0x26,0x14,0x1, 0xe8,0x2, +0x6e,0x25,0xe8,0x2, 0x6e,0xa4,0x38,0x82,0x14,0x0, 0x38,0x82,0xc0,0x78,0xe8,0x0, +0x66,0xa0,0xe0,0x0, 0x17,0x50,0xa7,0x9d,0x16,0x4, 0xcf,0x90,0xbf,0x9d,0x3e,0x10, +0xe8,0x0, 0x67,0x99,0xe1,0x2, 0x15,0x5, 0xb7,0x5f,0x8d,0xff,0xb7,0x5f,0xe0,0x0, +0x17,0x5a,0xaf,0x3f,0xe0,0x0, 0x17,0x51,0xb7,0x5f,0x17,0x2, 0xaf,0x3f,0xe1,0x2, +0x17,0x0, 0xb7,0x5f,0xc7,0x1, 0x8c,0xff,0xe3,0xff,0xc7,0x7f,0x3f,0x7a,0xe1,0x80, +0xac,0x9c,0x1, 0xf8,0xe2,0x0, 0xcd,0xda,0x1, 0x6, 0xe0,0x0, 0x17,0x50,0xb7,0x5f, +0x17,0x0, 0xaf,0x3f,0x17,0xef,0xa7,0x1d,0x3f,0xde,0xbf,0x9d,0xe2,0x0, 0x7f,0x88, +0x3c,0x1f,0xe0,0x40,0x8c,0x48,0xc0,0x8, 0x38,0x82,0x16,0x80,0xe8,0x0, 0x67,0x9f, +0xae,0x88,0xe0,0x1, 0xa7,0xff,0x37,0xc3,0xe2,0x0, 0xc7,0x81,0x27,0x93,0xe8,0x0, +0x67,0xa0,0xe0,0x0, 0x16,0xd4,0xa7,0x1f,0xcf,0x10,0xbf,0x1f,0xe8,0x0, 0x67,0x19, +0xb6,0xde,0x8f,0x7e,0xe2,0x0, 0xc7,0x3, 0xaf,0x8, 0x17,0x6f,0xa6,0x9f,0x3f,0x5d, +0xbf,0x1f,0x38,0x82,0x8, 0xb5,0xc0,0x7c,0xdf,0x76,0x2c,0x4, 0x12,0x82,0x14,0x0, +0x0, 0x90,0xe8,0x2, 0x4c,0x26,0xdf,0xa3,0xe8,0x2, 0x6c,0x27,0xe8,0x2, 0x4f,0x27, +0xe8,0x2, 0x4f,0xa4,0x3f,0x7f,0x1, 0xf3,0xe0,0xf, 0x12,0xc2,0xe0,0xf, 0x14,0x40, +0x15,0x4, 0xe2,0x0, 0x7c,0x84,0xd6,0x2a,0x49,0x6, 0x4f,0x87,0x31,0x28,0x39,0x1f, +0xe3,0xff,0xc1,0x7f,0x17,0xf8,0x3f,0x92,0xe2,0x1e,0xcf,0xf7,0x2, 0xa3,0xc1,0x7e, +0xe3,0xff,0xc1,0x7f,0xe0,0x0, 0x1c,0x8d,0x3c,0x65,0x3d,0x62,0x4a,0x4, 0x49,0x85, +0xe8,0x1, 0x71,0x16,0xd6,0x13,0xe0,0x0, 0x1c,0xc, 0x32,0x28,0x34,0x41,0x15,0x0, +0xe0,0x9, 0x31,0x41,0xe3,0xff,0xc4,0x7f,0x39,0x94,0xe0,0xb, 0xd7,0xeb,0xe3,0xff, +0xc1,0xff,0x39,0xf8,0xe0,0x0, 0x1a,0x8d,0x1, 0x7, 0x14,0x0, 0xbc,0x5, 0xbc,0x15, +0x0, 0x84,0x14,0x0, 0x0, 0x82,0x14,0x1, 0xc0,0x4, 0xa, 0xe1,0x8, 0xb2,0x11,0x3, +0xdf,0xb2,0xe8,0x2, 0x6c,0x2e,0xe8,0x2, 0x4f,0xae,0x2f,0x85,0xc1,0x7f,0xe2,0x1, +0xc1,0x7f,0x29,0x77,0x9, 0x61,0xe8,0x0, 0x67,0x20,0xe0,0x0, 0x16,0xd0,0xa7,0x9e, +0xe0,0x0, 0x16,0x5a,0xcf,0x90,0xbf,0x9e,0xe8,0x0, 0x67,0x99,0xb6,0xdf,0x8d,0xff, +0xb6,0xdf,0xe2,0x0, 0xcd,0xda,0xae,0x3f,0xe7,0x24,0x16,0x10,0xb6,0x5f,0x16,0x0, +0xae,0x3f,0x1, 0x3, 0xb6,0xdf,0xae,0x3f,0x17,0xef,0xa6,0x9e,0x3f,0xdd,0xbf,0x9e, +0x38,0x82,0x8, 0xb3,0xe8,0x0, 0x61,0x19,0xe0,0x0, 0x16,0xd4,0xb6,0xd2,0x17,0x3, +0xaf,0x32,0x8f,0x88,0x8f,0x18,0x37,0xa8,0x3f,0x9e,0xe3,0xff,0xc7,0xff,0x17,0x74, +0x3f,0x1f,0xe2,0x1e,0xcf,0x74,0x5, 0x84,0x14,0x1, 0xe0,0x0, 0x0, 0xfb,0xe0,0x0, +0x16,0xd0,0xc7,0xfe,0xb6,0xd2,0xe0,0x0, 0x17,0x5a,0x16,0x0, 0xe3,0xff,0xc7,0xff, +0x15,0x7d,0xaf,0x32,0x3e,0xec,0x3d,0xec,0x17,0x8, 0x3d,0x1f,0x2d,0x93,0xe0,0xb, +0x3c,0x1e,0x8e,0x8b,0x8e,0x1b,0x36,0xa8,0x3e,0x9c,0x8e,0x2b,0x8d,0xbb,0x36,0x28, +0x3e,0x1b,0xc7,0x4, 0xe3,0xff,0xc6,0xff,0xe3,0xff,0xc6,0x7f,0xe3,0xff,0xc7,0x7f, +0x15,0x84,0xe0,0x9, 0x3c,0x1e,0x8c,0x89,0xb6,0xd2,0xc5,0x81,0xac,0xb2,0x14,0x83, +0xe3,0xff,0xc5,0xff,0x3c,0x9c,0x3c,0xfb,0xc6,0x81,0xc7,0x1, 0xe3,0xff,0xc6,0xff, +0xe3,0xff,0xc7,0x7f,0x3, 0x5, 0x3d,0x7e,0x2, 0x2, 0x3f,0x6f,0x15,0x80,0x3f,0xfe, +0x2, 0xd6,0xe7,0x24,0x17,0x82,0xb7,0xd2,0xe7,0x24,0x16,0x83,0x8f,0x72,0xe7,0x24, +0x17,0x84,0xb6,0xd2,0xe4,0xc, 0x37,0x28,0xe7,0x24,0x16,0x85,0x8f,0x72,0xb7,0xd2, +0xe4,0xe, 0x37,0x20,0x8f,0xf2,0xb6,0xd2,0x3f,0x1c,0x8e,0xf2,0x37,0xa8,0x3f,0x1d, +0x3f,0x9e,0xa7,0x18,0xe0,0x0, 0x16,0xd0,0xb6,0xd2,0x3f,0xfe,0x16,0x80,0xae,0xb2, +0xe7,0xff,0x1, 0xa4,0xe0,0x0, 0x17,0xf0,0xb7,0xd2,0x17,0x2a,0xae,0xb2,0x39,0xe8, +0xb7,0xd2,0xe0,0x27,0x14,0x8, 0xaf,0x32,0xd3,0x5b,0xe0,0x0, 0x17,0xf6,0xb7,0xd2, +0xe0,0x0, 0x16,0xf5,0x8c,0x72,0xb6,0xd2,0x34,0x28,0x8f,0x23,0x8f,0xf2,0xe0,0xd, +0x37,0x28,0x8f,0x33,0x3c,0x1f,0x3f,0x1d,0xe3,0xff,0xc4,0x7f,0xe1,0x28,0x3f,0x8, +0x9, 0xe1,0x8, 0xb5,0xe8,0x0, 0x61,0xa0,0x3a,0x68,0x11,0x3, 0x12,0xef,0xa7,0x93, +0x3c,0x64,0xcf,0x90,0xbf,0x93,0xdf,0x66,0xa7,0x93,0x3f,0xd5,0xbf,0x93,0x24,0x5, +0xc1,0x7f,0xe2,0x1, 0xc1,0x7f,0x29,0x74,0xa, 0xe1,0x8, 0xb4,0xe8,0x0, 0x4f,0xd9, +0x39,0x68,0xe2,0x0, 0xcf,0x81,0x1, 0xaa,0xe1,0x11,0x14,0x2a,0xe0,0xb, 0xd8,0x56, +0xe0,0xb, 0xd7,0x54,0x3a,0x68,0x2c,0x7d,0xe8,0x0, 0x61,0x9f,0xe0,0x1, 0x14,0x14, +0xe0,0x2, 0x9f,0x93,0xe3,0xff,0xc7,0xfe,0xe0,0x2, 0xb7,0x93,0xe0,0xb, 0xd7,0x2c, +0x3c,0x64,0xe0,0xb, 0xd7,0x29,0xac,0x2, 0xe8,0x2, 0x4f,0xae,0x27,0x85,0xe8,0x2, +0x4f,0x29,0x8f,0x82,0x3f,0xce,0xaf,0x82,0x8c,0x2, 0xe0,0xb, 0xd7,0x1d,0xe0,0x2, +0x9f,0x93,0xcf,0x81,0xe0,0x2, 0xb7,0x93,0x0, 0xac,0x2f,0xa8,0xe1,0x11,0x14,0x2a, +0xe0,0xb, 0xd8,0x2c,0xe8,0x0, 0x67,0x9f,0xe0,0x2, 0x9f,0x1f,0xe2,0xff,0xc7,0x7f, +0xe0,0x2, 0xb7,0x1f,0xe0,0x2, 0x9f,0x1f,0xcf,0x4, 0xe0,0x2, 0xb7,0x1f,0xe8,0x2, +0x4f,0x49,0x27,0x7e,0x17,0x0, 0xe8,0x2, 0x6f,0x49,0xe0,0x2, 0x9f,0x1f,0xe1,0x0, +0xcf,0x0, 0xe0,0x2, 0xb7,0x1f,0xe0,0x2, 0x9f,0x1f,0xe3,0xff,0xc7,0x7b,0xe0,0x2, +0xb7,0x1f,0xe0,0x0, 0x1f,0x84,0x87,0x8f,0x0, 0x83,0xe8,0x2, 0x47,0xa9,0xaf,0x82, +0xa, 0x61,0x8, 0xb7,0xf8,0x0, 0xc, 0x3d,0xc0,0x7c,0x17,0x80,0xe2,0x0, 0x79,0x4, +0xe0,0x80,0xaf,0xb2,0xde,0xcc,0xea,0x2, 0x7c,0x29,0xde,0x60,0x3c,0x62,0xdf,0x96, +0x4f,0x87,0xe0,0x0, 0x27,0xf9,0xe8,0x0, 0x4f,0xd9,0xe2,0x0, 0xcf,0x81,0x1, 0x10, +0xe0,0x0, 0x1c,0xd, 0xdf,0x77,0xe8,0x2, 0x6c,0x29,0x14,0x7, 0x3c,0x10,0xdf,0x86, +0xe8,0x0, 0x4f,0xd8,0xe0,0x0, 0x27,0xe8,0xde,0xbf,0xe0,0x0, 0x0, 0xe5,0xe0,0x0, +0x1a,0xc, 0x11,0x80,0x32,0x42,0xe8,0x0, 0x61,0x17,0xe3,0xff,0xc2,0x7f,0xe0,0x7, +0x13,0x60,0x13,0xfc,0xf0,0xe, 0x14,0x41,0xf0,0x0, 0x14,0x9f,0xf0,0x0, 0x15,0x60, +0xf0,0x40,0x3d,0xe3,0xf0,0xe, 0x16,0x1, 0xe1,0x33,0x14,0x3b,0xe0,0xb, 0xd7,0xc6, +0xe0,0xb, 0xd6,0xc4,0x2c,0x7e,0xe0,0x1, 0xb2,0x12,0xe0,0x1, 0xb3,0x32,0xa7,0xe2, +0x3f,0xd7,0xcf,0x82,0xbf,0xe2,0xf0,0x0, 0xbc,0x2, 0xf0,0x0, 0xbc,0xb2,0xa7,0x92, +0x37,0xca,0xe2,0x0, 0xc7,0x81,0x27,0xfc,0xa7,0x12,0x17,0xfe,0x3f,0xde,0xbf,0x92, +0xa7,0x82,0xe0,0x1, 0xcf,0x80,0xbf,0x82,0xe0,0xb, 0xd6,0xa8,0x24,0x7e,0xf0,0x0, +0xbd,0x12,0xf0,0x0, 0xbd,0xb2,0xf0,0x0, 0xbe,0x2, 0xe0,0xb, 0xd6,0x9f,0x3a,0xe8, +0x2c,0x7d,0xf8,0x0, 0x66,0x9f,0x14,0x5, 0xe8,0x2, 0x9f,0x9d,0xc1,0x81,0xe3,0xff, +0xc7,0xfe,0xe8,0x2, 0xb7,0x9d,0xe0,0xb, 0xd6,0x77,0x3c,0x65,0xe0,0xb, 0xd6,0x74, +0xe8,0x2, 0x9f,0x9d,0xe0,0x28,0x3c,0x5, 0xcf,0x81,0xe8,0x2, 0xb7,0x9d,0xe2,0x1, +0xc1,0xff,0xe7,0xff,0x24,0x17,0x17,0x82,0xe1,0x2f,0x3f,0xa3,0xe7,0xff,0x2f,0xb6, +0xe7,0xff,0x0, 0x90,0xc0,0x4, 0xf8,0x0, 0xe, 0xa8,0xb, 0xe1,0x8, 0xb7,0xf8,0x0, +0xc, 0x3c,0xc0,0x7c,0xe8,0x0, 0x61,0x1f,0xe2,0x0, 0x79,0x84,0x17,0x80,0xe0,0x80, +0xaf,0xb3,0xea,0x2, 0x7c,0x28,0xe0,0x2, 0x9f,0x92,0xe1,0x0, 0xcf,0x80,0xe0,0x2, +0xb7,0x92,0xdd,0xcc,0x3c,0x63,0xdf,0x2, 0x4f,0x87,0xe0,0x1, 0x27,0x86,0xe0,0x0, +0x1a,0xc, 0xe8,0x0, 0x61,0x97,0x32,0x42,0xe3,0xff,0xc2,0x7f,0x12,0x83,0xf0,0x7, +0x14,0x60,0xf7,0xff,0x14,0xfc,0xf0,0xe, 0x15,0x0, 0xe7,0x0, 0x13,0x0, 0x13,0xfb, +0xf0,0x0, 0x15,0xe0,0xf0,0x1e,0x16,0x10,0xe1,0x33,0x14,0x3b,0xe0,0xb, 0xd7,0x46, +0xe0,0x1, 0xb2,0x13,0xf0,0x1, 0xb4,0x33,0xa7,0xe3,0xe8,0xf, 0x3f,0xd9,0xcf,0x82, +0xbf,0xe3,0x17,0x97,0xf0,0x0, 0xbd,0x3, 0xbf,0xb3,0xa7,0x83,0xe0,0x10,0xcf,0x80, +0xbf,0x83,0xe0,0x2, 0x9f,0x92,0xe2,0xff,0xc7,0xff,0xe0,0x2, 0xb7,0x92,0xe0,0x2, +0x9f,0x92,0xcf,0x84,0xe0,0x2, 0xb7,0x92,0xa7,0x93,0x37,0xca,0xe2,0x0, 0xc7,0x81, +0x27,0xfc,0xa7,0x93,0x37,0xc8,0xe2,0x0, 0xc7,0x81,0x2f,0x84,0x17,0x81,0xe8,0x2, +0x6f,0xaa,0xe0,0x2, 0x9f,0x92,0x3f,0xc6,0xe0,0x2, 0xb7,0x92,0xe0,0x2, 0x9f,0x92, +0x3f,0xd7,0xe0,0x2, 0xb7,0x92,0x17,0x80,0xf0,0x0, 0xbd,0x93,0xbf,0xb3,0xf0,0x0, +0xbe,0x3, 0xe8,0x2, 0x6f,0xc9,0xe0,0x2, 0x9f,0x92,0xe2,0xff,0xc7,0xff,0xe0,0x2, +0xb7,0x92,0xe0,0x2, 0x9f,0x92,0xcf,0x84,0xe0,0x2, 0xb7,0x92,0xe8,0x2, 0x4f,0xc9, +0x27,0xfe,0x17,0x80,0xe8,0x2, 0x6f,0xc9,0xe0,0x2, 0x9f,0x92,0x3f,0xc6,0xe0,0x2, +0xb7,0x92,0xe0,0x2, 0x9f,0x92,0x3f,0xd7,0xe0,0x2, 0xb7,0x92,0xe8,0x2, 0x4f,0xaa, +0x2f,0x84,0xc2,0xff,0xe7,0xff,0x2a,0xa2,0xe8,0x2, 0x4f,0xaa,0x27,0x8d,0xe0,0x0, +0x1c,0xd, 0x17,0x80,0xe8,0x2, 0x6f,0xaa,0xde,0x6d,0xe8,0x2, 0x6c,0x28,0xdd,0xbc, +0x14,0x7, 0x3c,0x10,0xde,0x7b,0xc0,0x4, 0xf8,0x0, 0xe, 0x28,0xb, 0xe1,0xe8,0x0, +0x4f,0xd9,0x2f,0x83,0xe7,0xfe,0x0, 0xdc,0xe7,0xfd,0x0, 0xcd,0x8, 0xb2,0x11,0x5, +0x3c,0x62,0xc1,0x1, 0xd3,0x71,0xe2,0x1, 0xc1,0x7f,0xe2,0x0, 0xc9,0x1d,0x1, 0xf9, +0x9, 0x61,0xe2,0xff,0x17,0xf0,0xa7,0xf, 0xe0,0x0, 0x1f,0xa1,0x3f,0x7f,0x1, 0x97, +0xe2,0xff,0x17,0xf4,0xa7,0xf, 0xe0,0x0, 0x1f,0xa2,0x3f,0x7f,0x1, 0x90,0xe2,0xff, +0x17,0xf8,0xa7,0xf, 0xe0,0x0, 0x1f,0xa3,0x3f,0x7f,0x1, 0x89,0xe2,0xff,0x17,0xfc, +0xa4,0xf, 0xe0,0x0, 0x1f,0xa4,0xe0,0x28,0x3c,0xf, 0x38,0x82,0x14,0x0, 0x38,0x82, +0xe8,0x0, 0x4f,0xd9,0x27,0x9b,0x8, 0xb1,0xe8,0x0, 0x67,0x9f,0xe0,0x1, 0xa7,0xef, +0x37,0xc8,0xe2,0x0, 0xc7,0x81,0x27,0x85,0xe2,0xff,0x17,0xf8,0x17,0x0, 0xbf,0xf, +0xdf,0xd1,0x24,0x9, 0xe2,0xff,0x17,0xf8,0x17,0x0, 0xbf,0xf, 0x17,0x81,0xe8,0x2, +0x6f,0xb0,0x0, 0x83,0xe8,0x2, 0x6c,0x30,0x8, 0xe1,0x38,0x82,0xe8,0x2, 0x4c,0x30, +0x38,0x82,0x8, 0xb1,0xd5,0x7d,0xe0,0x60,0x3f,0x87,0xe0,0x0, 0x1f,0x9, 0xe0,0x1, +0xbf,0x3f,0xe0,0x0, 0x1f,0x11,0xe0,0x1, 0xbf,0x4f,0xe0,0x0, 0x1f,0x5, 0xe0,0x1, +0xbf,0x6f,0xe0,0x0, 0x1f,0x6, 0xe0,0x2, 0xbf,0x4f,0x8, 0xe1,0xe0,0x0, 0x1e,0xa5, +0xe0,0x2, 0x9f,0x9d,0xe2,0x2, 0xc7,0x80,0xe4,0xf, 0x37,0xa0,0xe4,0xf, 0x37,0xc0, +0x27,0x93,0xe0,0x2, 0x9f,0x9d,0x37,0xc9,0xe2,0x0, 0xc7,0x81,0xe8,0x0, 0x6f,0xd9, +0xe4,0x0, 0xcf,0x81,0xa6,0xd, 0xe0,0xe, 0x37,0xa9,0xe7,0xfb,0x17,0xff,0x3f,0xdc, +0x3f,0xce,0xbf,0x8d,0x38,0x82,0x17,0x83,0xe8,0x0, 0x6f,0xd9,0x38,0x82,0xe0,0x0, +0x1f,0xa5,0x17,0x7f,0xb7,0x5f,0xe0,0x1, 0xb7,0x5f,0xe0,0x1e,0x17,0x3, 0xb7,0x3f, +0xe8,0x0, 0x4f,0x59,0x27,0xf, 0xe0,0xa0,0x17,0x14,0xb7,0x7f,0xe0,0x20,0x17,0x4, +0xe0,0x1, 0xb7,0x1f,0xe0,0x1, 0x9f,0x7f,0xe3,0xff,0xc7,0x7b,0xe0,0x1, 0xb7,0x7f, +0x0, 0x90,0x17,0x4, 0xb7,0x7f,0xe0,0x1, 0xb7,0x1f,0xe0,0x1, 0x9f,0x7f,0xcf,0x4, +0xe0,0x1, 0xb7,0x7f,0xe0,0x2, 0x9f,0x1f,0xe3,0xff,0xc7,0x7b,0xe0,0x2, 0xb7,0x1f, +0xa7,0xf, 0xe0,0x10,0xcf,0x0, 0xbf,0xf, 0x17,0x7b,0xe0,0x1, 0xb7,0x3f,0xeb,0x0, +0xcf,0x80,0xa6,0xaf,0x17,0x78,0x3f,0x5d,0xbf,0x2f,0xe1,0x80,0x17,0xb, 0xbf,0x1f, +0x38,0x82,0x8f,0x8, 0x8f,0x98,0xe0,0x1, 0x14,0x7f,0x3f,0x9e,0xe0,0x28,0x3f,0x88, +0x38,0x82,0x8, 0xb4,0xe0,0x0, 0x19,0x83,0x39,0x68,0x39,0x98,0x3c,0x63,0x3a,0x69, +0xdf,0xf1,0x24,0x3, 0x8f,0x83,0x0, 0x88,0xe0,0x0, 0x1f,0x88,0x39,0x1f,0x3c,0x62, +0xdf,0xe9,0x24,0x3, 0x8f,0x82,0xaf,0x84,0xa, 0x61,0xe8,0x0, 0x4f,0xd9,0x27,0x97, +0x8, 0xb1,0xe0,0x0, 0x1c,0x83,0x15,0x16,0xe0,0x1f,0x14,0x0, 0xd2,0xb7,0xe0,0x0, +0x1c,0x88,0x15,0x16,0xe0,0x22,0x14,0x20,0xd2,0xb1,0xea,0x0, 0x7c,0xda,0x14,0x0, +0xdf,0xd9,0xea,0x0, 0x7c,0xd8,0x14,0xe, 0x8, 0xa1,0x0, 0xd4,0x38,0x82,0xe8,0x0, +0x4f,0xd9,0x27,0x9e,0x8, 0xb1,0xc0,0x7c,0x14,0x86,0x15,0x2, 0x3c,0x90,0xe0,0x1f, +0x14,0x0, 0xd2,0x9c,0x5f,0x3, 0xe1,0xff,0x17,0xff,0x3f,0x7f,0x1, 0x8f,0xe0,0x0, +0x1c,0x88,0xe0,0x1, 0x15,0x0, 0xe0,0xa2,0x14,0x20,0xd2,0x90,0xe0,0x0, 0x1c,0x88, +0xe0,0x1, 0x15,0x0, 0xe0,0x1f,0x14,0x0, 0xd2,0x2a,0xc0,0x4, 0x8, 0xe1,0x38,0x82, +0xe0,0x0, 0x1f,0xa6,0x17,0x0, 0xaf,0x7f,0x17,0x7c,0xa6,0x8f,0x3f,0x5d,0xbf,0xf, +0x17,0x88,0xe0,0x61,0x3f,0x91,0x17,0x90,0xe0,0x61,0x3f,0x91,0x38,0x82,0x8, 0xb1, +0xeb,0x0, 0xcf,0x0, 0xa7,0x9e,0xcf,0xc0,0xbf,0x9e,0xdf,0xeb,0xe8,0x0, 0x4f,0xd9, +0x27,0x92,0xe8,0x0, 0x47,0xda,0xe0,0x0, 0x1f,0x26,0xe2,0x1, 0xc7,0xfe,0xe0,0x1, +0xaf,0xbe,0xe0,0x61,0x3f,0x82,0xcf,0x88,0xe0,0x61,0x3f,0x92,0xe0,0x61,0x3f,0x82, +0xcf,0x90,0x0, 0x8b,0xe0,0x61,0x3f,0x2, 0x17,0xf7,0x3f,0xde,0xe0,0x61,0x3f,0x92, +0xe0,0x61,0x3f,0x2, 0x17,0xef,0x3f,0xde,0xe0,0x61,0x3f,0x92,0x8, 0xe1,0xe, 0xbf, +0xe8,0x0, 0x67,0xcf,0xe0,0x0, 0x1f,0x27,0xc7,0x81,0xe8,0x0, 0x7f,0xcf,0x17,0xdf, +0xa6,0xbe,0x3f,0xdd,0xbf,0xbe,0xe0,0x20,0x17,0x80,0xe0,0x61,0x3f,0x91,0xf, 0xad, +0x38,0x0, 0xe0,0x0, 0x1f,0x27,0x17,0x80,0xe8,0x0, 0x7f,0xcf,0x17,0x81,0xbf,0xbe, +0x17,0xfc,0xa6,0xae,0x3f,0xdd,0xcf,0x82,0xbf,0xae,0xe0,0x2, 0x17,0x80,0xb7,0x9e, +0xe0,0x20,0x17,0x80,0xe0,0x61,0x3f,0x91,0xe0,0x61,0x3f,0x82,0xe0,0x20,0xcf,0x80, +0xe0,0x61,0x3f,0x92,0x38,0x82,0xe0,0x0, 0x1f,0xa7,0x17,0x6f,0xa6,0xbf,0x3f,0x5d, +0xbf,0x3f,0x17,0x0, 0xe8,0x0, 0x7f,0x4f,0xa7,0x3f,0xcf,0x10,0xbf,0x3f,0x38,0x82, +0xe0,0x0, 0x1f,0x27,0x17,0xef,0xa6,0xbe,0x3f,0xdd,0xbf,0xbe,0x17,0x80,0xe8,0x0, +0x7f,0xcf,0x38,0x82,0xe0,0x0, 0x1f,0xa7,0x17,0x0, 0xbf,0x3f,0xb7,0x1f,0x17,0x7c, +0xa6,0xaf,0x3f,0x5d,0xbf,0x2f,0xe0,0x20,0x17,0x80,0xe0,0x61,0x3f,0x91,0xe0,0x61, +0x3f,0x2, 0xe7,0xdf,0x17,0xff,0x3f,0xde,0xe0,0x61,0x3f,0x92,0x38,0x82,0xe1,0xff, +0x17,0x7f,0xc4,0x7f,0xe3,0xff,0xc4,0x7f,0x3c,0x7e,0x1, 0x8, 0x17,0x89,0xc7,0xff, +0xe2,0x1, 0xc7,0xff,0x27,0xf7,0x0, 0x0, 0x0, 0xfb,0x38,0x82,0xc0,0x7c,0xe0,0xa0, +0x17,0x80,0x7f,0x81,0xe8,0x2, 0x4f,0x9e,0x27,0x93,0xe0,0x0, 0x1f,0xa5,0xe0,0x1, +0x9f,0x1f,0xe3,0xff,0xc7,0x7b,0xe0,0x1, 0xb7,0x1f,0x16,0xff,0x67,0x1, 0x3e,0x9e, +0x7e,0x81,0x2f,0x7c,0xe0,0x1, 0x9f,0x1f,0xcf,0x4, 0xe0,0x1, 0xb7,0x1f,0xc0,0x4, +0x38,0x82,0xe0,0x0, 0x1f,0xa8,0xa7,0x2f,0xe2,0x0, 0xc7,0x7f,0x27,0xd, 0xa6,0xaf, +0xe7,0xff,0x17,0x0, 0x3f,0x5d,0xcf,0x60,0xbf,0x2f,0xa7,0x3f,0xcf,0x10,0xbf,0x3f, +0xa7,0xf, 0xcf,0x40,0xbf,0xf, 0x38,0x82,0xe0,0x0, 0x1f,0xa8,0xa7,0x1f,0xcf,0x1, +0xbf,0x1f,0xe7,0xff,0x17,0x3f,0xa6,0x8f,0x3f,0x5d,0xbf,0xf, 0x38,0x82,0x8, 0xb1, +0xdf,0xf4,0xe8,0x0, 0x4f,0xd9,0x27,0x96,0xe0,0x0, 0x1f,0xa8,0xa7,0x2f,0xe0,0x1, +0xcf,0x0, 0xbf,0x2f,0xe7,0xff,0x17,0x0, 0xa6,0xaf,0x3f,0x5d,0xcf,0x60,0xbf,0x2f, +0xa7,0x1f,0xcf,0x2, 0xbf,0x1f,0xa7,0x3f,0xcf,0x10,0xbf,0x3f,0xa7,0xf, 0xcf,0x40, +0xbf,0xf, 0xe0,0x61,0x3f,0x2, 0xe7,0xf7,0x17,0xff,0x3f,0xde,0xe0,0x61,0x3f,0x92, +0x8, 0xe1,0xe0,0x0, 0x1d,0x8b,0x17,0x80,0x16,0x1, 0xe0,0xe, 0x3d,0x9f,0xc7,0x81, +0xe2,0x0, 0xcf,0x90,0xae,0xe, 0xe0,0x0, 0x1e,0x8b,0x1, 0xf8,0x17,0x83,0xaf,0xbd, +0x17,0x2, 0xaf,0xcd,0x14,0x1, 0xaf,0x6d,0x17,0x0, 0xe0,0x0, 0x1d,0x10,0x3c,0xee, +0xe0,0xf, 0x37,0x22,0x3f,0x9a,0xbc,0x8f,0x16,0x0, 0xe0,0x17,0x3e,0x9e,0xe0,0xb, +0x3e,0x9c,0xf0,0x0, 0x8b,0xb, 0xe8,0x0, 0x8d,0x87,0xf0,0x40,0x3b,0x7b,0x5, 0x87, +0xa5,0x8f,0xe0,0x16,0x34,0x3c,0xe8,0xb, 0x3d,0xc6,0xbd,0x8f,0xc6,0x1, 0xe2,0x0, +0xce,0x10,0x1, 0xee,0xc7,0x1, 0xe2,0x0, 0xcf,0x10,0x1, 0xe3,0xe0,0x0, 0x1f,0x8a, +0x17,0x0, 0xe0,0x6, 0xaf,0xf, 0x38,0x82,0xe8,0x0, 0x4f,0xd9,0x27,0x98,0xe8,0x0, +0x67,0x20,0xa7,0x9e,0xcf,0x81,0xbf,0x9e,0xe8,0x0, 0x67,0x1f,0x9f,0xbe,0xe0,0x1e, +0xcf,0x80,0xb7,0xbe,0xe0,0x61,0x3f,0x2, 0xe7,0xef,0x17,0xff,0x3f,0xde,0xe0,0x61, +0x3f,0x92,0xe8,0x0, 0x67,0x9a,0xe0,0x6, 0x17,0x6, 0xbf,0xf, 0x38,0x82,0xe8,0x0, +0x67,0x9a,0x17,0x0, 0xaf,0x7f,0xa7,0xf, 0x37,0x4e,0xe2,0x0, 0xc7,0x1, 0x27,0x7c, +0xa6,0x8f,0xe7,0x7f,0x17,0x7f,0x3f,0x5d,0xbf,0xf, 0x8c,0x7f,0x38,0x82,0x8, 0xb2, +0xe8,0x0, 0x61,0x1a,0x17,0xfb,0xa7,0x2, 0xe2,0x0, 0xcc,0x1, 0x3f,0xde,0xbf,0x82, +0x1, 0x83,0x14,0x6, 0x0, 0x82,0x14,0x4, 0xe0,0xb, 0xd2,0xa4,0xa7,0x82,0xcf,0x84, +0xbf,0x82,0x9, 0x61,0x8, 0xb2,0xe8,0x0, 0x61,0x1a,0x17,0xfb,0xa7,0x2, 0x14,0x5, +0x3f,0xde,0xbf,0x82,0xe0,0xb, 0xd2,0x96,0xdf,0xd3,0xa7,0x82,0xe2,0x0, 0xc4,0x1, +0xcf,0x84,0xbf,0x82,0x9, 0x61,0x8, 0xb4,0xe8,0x0, 0x61,0x9a,0x17,0xfb,0xa7,0x3, +0xe0,0x1, 0x14,0x1f,0x3f,0xde,0xbf,0x83,0xe0,0xb, 0xd2,0x84,0xdf,0xc1,0x3a,0x68, +0xdf,0xbf,0xe4,0x2, 0x34,0x28,0xe4,0x2, 0x31,0x40,0xdf,0xba,0xa7,0x83,0x3c,0x42, +0xe4,0x4, 0x32,0x20,0xe3,0xff,0xc4,0x7f,0xcf,0x84,0x3c,0x14,0xbf,0x83,0xa, 0x61, +0x8, 0xb4,0xe8,0x0, 0x67,0x1f,0x14,0x1, 0xe0,0x1, 0x9f,0x9e,0x11,0xfb,0xe0,0x80, +0xcf,0x80,0xe0,0x1, 0xb7,0x9e,0xdf,0xb4,0xe8,0x0, 0x61,0x1a,0x14,0x5, 0xa7,0x82, +0x3f,0xd3,0xbf,0x82,0xe0,0xb, 0xd2,0x5e,0xdf,0x9b,0xa7,0x82,0x3a,0x68,0xcf,0x84, +0xbf,0x82,0x14,0x6, 0xa7,0x82,0x3f,0xd3,0xbf,0x82,0xe0,0xb, 0xd2,0x53,0xa7,0x82, +0x14,0x1, 0xcf,0x84,0xbf,0x82,0xa7,0x82,0x39,0xdf,0xb9,0x82,0xe0,0xb, 0xd2,0x4a, +0xe0,0x1, 0x14,0x3, 0x3c,0x54,0xe0,0xb, 0xd2,0x45,0xa7,0x82,0xcf,0x84,0xbf,0x82, +0xdf,0xa2,0x2c,0x7f,0xa, 0x61,0x8, 0xb2,0xe8,0x0, 0x67,0x1a,0x17,0xfb,0xa6,0x8e, +0x39,0x69,0x3f,0xdd,0xbf,0x8e,0xe0,0xb, 0xd2,0x35,0xe4,0xf, 0x31,0x40,0x3c,0x6f, +0xe2,0x1, 0xc4,0x7f,0xe0,0xb, 0xd2,0x2e,0xe0,0xf, 0x31,0x48,0x3c,0x6f,0xe2,0x1, +0xc4,0x7f,0xe0,0xb, 0xd2,0x27,0x3c,0x62,0xe2,0x1, 0xc4,0x7f,0x9, 0x21,0xe1,0x64, +0x0, 0xa1,0x8, 0xb4,0x3a,0x68,0x14,0x1, 0x39,0x69,0x39,0xea,0xdf,0x69,0x3c,0xe4, +0x14,0x2, 0xdf,0xda,0xe8,0x0, 0x67,0x9a,0x3c,0xe2,0x39,0x92,0xe7,0x7f,0x16,0xff, +0x3c,0xf3,0x1, 0xd, 0xe1,0x80,0x87,0x19,0xaf,0x7f,0xa7,0xf, 0x37,0x4e,0xe2,0x0, +0xc7,0x1, 0x27,0x7c,0xa7,0xf, 0x3f,0x5d,0xbf,0xf, 0x0, 0xf3,0xa7,0xf, 0xcf,0x4, +0xbf,0xf, 0xde,0x52,0xdf,0x60,0x24,0x6, 0xe8,0x0, 0x67,0xcf,0xe2,0x0, 0xcf,0xb2, +0x5, 0xfa,0xe8,0x0, 0x67,0xcf,0xe2,0x0, 0xcf,0xb2,0x2, 0x84,0xa, 0x21,0xe7,0xfc, +0x0, 0xd1,0xe0,0x27,0x14,0x8, 0xa, 0x21,0xe7,0xfc,0x0, 0xeb,0x8, 0xb7,0xe0,0x1, +0x11,0x7f,0x39,0x58,0xe0,0x2, 0x17,0x80,0xe0,0x2, 0x3f,0xa2,0xe3,0xff,0xc1,0x7f, +0x39,0x7a,0x3, 0xaf,0x39,0xea,0x3d,0x62,0x3a,0xe9,0x3a,0x68,0xdf,0xbb,0xe0,0xa, +0x39,0xa2,0x39,0xea,0x3a,0x12,0xe3,0xff,0xc1,0xff,0x39,0x15,0x3b,0x62,0x3a,0xe3, +0xe0,0x7, 0x3a,0x22,0xe2,0x1, 0xca,0xff,0xe0,0x8, 0x3b,0x17,0x5, 0x8c,0x3c,0xe6, +0xe0,0x2, 0x15,0x0, 0xe1,0xfe,0xc2,0x80,0xdf,0xa5,0xe3,0xff,0xc2,0xff,0xe0,0x2, +0xc3,0x0, 0x0, 0xf1,0xe0,0xf, 0x31,0xc8,0xe7,0xfe,0x15,0x0, 0x3d,0x3f,0xe0,0x9, +0x37,0xa8,0x3d,0x13,0xe3,0xff,0xc5,0x7f,0xe0,0x8, 0x3a,0x19,0x3c,0x92,0x25,0x2, +0xdf,0x91,0x14,0x1, 0xb, 0xe1,0x8, 0xb2,0x39,0x68,0x14,0x1, 0xde,0xf9,0xe0,0x9, +0x31,0x2c,0x14,0x20,0xdf,0x69,0xe8,0x0, 0x67,0x1a,0xa7,0x8e,0xcf,0x84,0xbf,0x8e, +0xdd,0xf3,0xdf,0x1, 0x24,0x6, 0xe8,0x0, 0x67,0xcf,0xe2,0x3, 0xcf,0xf4,0x5, 0xfa, +0xe8,0x0, 0x67,0xcf,0xe2,0x3, 0xcf,0xf4,0x2, 0x84,0x9, 0x21,0xe7,0xfb,0x0, 0xf2, +0xe0,0x27,0x14,0x8, 0x9, 0x21,0xe7,0xfc,0x0, 0x8c,0x8, 0xb3,0x39,0x69,0x39,0xea, +0xe0,0xb, 0xd1,0x97,0xe8,0x0, 0x67,0x9a,0x39,0x92,0x16,0x80,0xe7,0x7f,0x16,0x7f, +0x39,0x73,0x1, 0xe, 0xae,0xff,0xa7,0xf, 0x37,0x4e,0xe2,0x0, 0xc7,0x1, 0x27,0x7c, +0xa7,0xf, 0x3f,0x5c,0xbf,0xf, 0x8f,0x7f,0xe1,0x80,0xaf,0x12,0x0, 0xf2,0xa7,0xf, +0xcf,0x4, 0xbf,0xf, 0x9, 0xe1,0x8, 0xb1,0xe0,0x0, 0x1c,0x87,0xe0,0xa2,0x14,0x0, +0x15,0x16,0xdf,0xdc,0xe0,0x0, 0x1f,0x87,0xe1,0xff,0x17,0x7f,0x9c,0xf, 0x9e,0x9f, +0x3e,0x98,0x3e,0xfe,0x1, 0x9f,0xe0,0x1, 0x9f,0x1f,0xe0,0x1, 0x9e,0x2f,0x3e,0x1e, +0x3e,0x7d,0x1, 0x98,0x24,0x18,0x9d,0xaf,0x9e,0xbf,0x3e,0x9b,0x3e,0xfc,0x1, 0x92, +0x9e,0x4f,0x9f,0xdf,0x3f,0x9c,0x3f,0xfd,0x1, 0x8d,0xe4,0xe, 0x37,0x20,0x3c,0x4e, +0xe8,0x0, 0x7c,0x4d,0xe2,0xf0,0x17,0x80,0xe8,0x0, 0x64,0x4d,0xe1,0x28,0x3f,0xa8, +0x0, 0x82,0x14,0x0, 0x8, 0xe1,0xe8,0x0, 0x67,0x20,0xa7,0x9e,0xe0,0x80,0xcf,0x80, +0xbf,0x9e,0xe0,0x0, 0x17,0x60,0xe8,0x0, 0x67,0x97,0xbf,0x1f,0x17,0x0, 0xbf,0x3f, +0xe8,0x0, 0x4f,0x59,0xe2,0x0, 0xcf,0x1, 0x1, 0x8d,0x17,0x35,0xe0,0x3, 0xaf,0x7f, +0xe0,0xe, 0x17,0x1, 0xbf,0xf, 0xe0,0x61,0x3f,0x2, 0xe7,0xff,0x17,0xbf,0x3f,0xde, +0x0, 0x88,0x2f,0x9, 0xe0,0x1e,0x17,0x10,0xbf,0xf, 0xe0,0x61,0x3f,0x82,0xcf,0xc0, +0xe0,0x61,0x3f,0x92,0xe0,0x0, 0x17,0xc0,0xe0,0x61,0x3f,0x91,0x38,0x82,0x8, 0xb7, +0xf8,0x0, 0xc, 0x3d,0xe8,0x0, 0x4f,0xd9,0xe8,0x0, 0x61,0x9f,0xe2,0x0, 0xcf,0x81, +0xe0,0x1, 0x1, 0xae,0xe0,0x3, 0x9f,0x93,0xe2,0x1, 0xc7,0xf0,0xe2,0x1, 0xcf,0xf0, +0xe0,0x1, 0x1, 0x26,0xe0,0x2, 0x12,0x80,0xe0,0x2, 0x17,0x82,0x9f,0x5, 0x9f,0x8f, +0x3f,0x9e,0xe1,0xff,0x17,0x7f,0x3f,0xfe,0x1, 0xd, 0xe0,0x2, 0x17,0x9c,0xa7,0xf, +0xe3,0xff,0xc7,0x7f,0xbf,0xf, 0xa7,0xf, 0xe8,0xab,0xcf,0x3b,0xbf,0xf, 0xe0,0x1, +0x0, 0x8f,0xe8,0x0, 0x61,0x17,0x13,0x0, 0x13,0xfe,0xf0,0xe, 0x15,0x41,0xf7,0xff, +0x15,0xfc,0xf0,0x0, 0x14,0xe0,0xf0,0xe, 0x14,0x1, 0x9a,0x5, 0x32,0x42,0xe0,0x1d, +0x32,0x48,0xe2,0x1, 0xc2,0x7f,0xf2,0xf, 0x3e,0xc4,0xe2,0x6, 0x3b,0x4f,0xe2,0x1, +0xc3,0x7f,0xe0,0xb, 0xd1,0x7b,0xf0,0x40,0x3e,0x68,0x2c,0x7c,0xe0,0x2, 0x9f,0x93, +0x14,0xd, 0x3f,0xd7,0xe0,0x2, 0xb7,0x93,0xe0,0xb, 0xd1,0x56,0x14,0x5, 0xe0,0xb, +0xd1,0x53,0xe8,0x40,0x3c,0x6c,0xe0,0xb, 0xd1,0x4f,0xe8,0x40,0x3c,0x6c,0xe0,0xb, +0xd1,0x4b,0xe8,0x40,0x3c,0x6d,0xe0,0xb, 0xd1,0x47,0x3c,0x64,0xe0,0xb, 0xd1,0x44, +0x3c,0x66,0xe0,0xb, 0xd1,0x41,0x14,0xe, 0xe0,0xb, 0xd1,0x3e,0xe0,0x1, 0x14,0x1, +0xe0,0xb, 0xd1,0x3a,0xe8,0x40,0x3c,0x6c,0xe0,0xb, 0xd1,0x36,0xe0,0x2, 0x9f,0x93, +0xcf,0x81,0xe0,0x2, 0xb7,0x93,0x24,0x20,0xa7,0xb2,0xcf,0x81,0xbf,0xb2,0xf0,0x0, +0xbd,0x2, 0xf0,0x1, 0xb6,0x12,0x9f,0x85,0x37,0xc2,0xe0,0x1, 0xb7,0xb2,0xa7,0xe2, +0xe8,0xf, 0x3f,0xdb,0xcf,0x81,0xbf,0xe2,0x17,0x9f,0xbf,0xb2,0xa7,0x92,0x37,0xca, +0xe2,0x0, 0xc7,0x81,0x27,0xfc,0xa7,0x12,0x17,0xfe,0x3f,0xde,0xbf,0x92,0xa7,0x82, +0xe0,0x1, 0xcf,0x80,0xbf,0x82,0xe0,0xb, 0xd1,0x29,0x3a,0x68,0x2c,0x7d,0xe8,0x0, +0x67,0x97,0xf0,0x0, 0xbc,0x9f,0xbc,0x3f,0x14,0xf, 0xf0,0x0, 0xbc,0xf, 0xe0,0x2, +0x9f,0x93,0x3f,0xd7,0xe0,0x2, 0xb7,0x93,0xe0,0xb, 0xd0,0xfe,0xe0,0x1, 0x14,0x1, +0xe0,0xb, 0xd0,0xfa,0x3c,0x64,0xe0,0xb, 0xd0,0xf7,0xe0,0x2, 0x9f,0x93,0xcf,0x81, +0xe0,0x2, 0xb7,0x93,0xe7,0xff,0x24,0x3, 0xe7,0xfe,0x0, 0xe9,0xe0,0xef,0x14,0x19, +0xe0,0xb, 0xd2,0x4, 0x17,0x80,0xe0,0x3, 0xb7,0x93,0xf8,0x0, 0xe, 0xa8,0xb, 0xe1, +0xea,0x0, 0xcc,0x2, 0xe0,0x2, 0xcc,0x0, 0x14,0x80,0xea,0x0, 0xcd,0x2, 0xe0,0x2c, +0xcd,0x58,0x3d,0x28,0xd0,0xb4,0xea,0x0, 0xcc,0x0, 0xe0,0x0, 0xcc,0x0, 0x24,0x2, +0x3c,0x1, 0x14,0x0, 0x14,0x80,0xd0,0x3e,0x3a,0x80,0x0, 0x0, 0x3a,0x80,0xe0,0x40, +0x17,0x80,0xe2,0xb0,0x16,0x80,0xa6,0xf, 0xe0,0xe, 0x3f,0x9d,0xc7,0x84,0xe2,0x4f, +0xcf,0xf0,0xbe,0xe, 0x1, 0xf9,0x38,0x82,0x8, 0xb1,0x3f,0x83,0xdb,0x68,0xdb,0x88, +0xdf,0xef,0xe0,0x61,0x3f,0x2, 0x17,0xf7,0x3f,0xde,0xe0,0x61,0x3f,0x92,0xe0,0x61, +0x3f,0x2, 0x17,0xef,0x3f,0xde,0xe0,0x61,0x3f,0x92,0xdd,0x3f,0xde,0xdd,0xdb,0xce, +0xdc,0x51,0xdb,0x40,0xdc,0xff,0x3b,0x0, 0xdb,0x1c,0x8, 0xa1,0xe7,0xf9,0x0, 0xd9, +0xe8,0x0, 0x4f,0xd9,0x27,0x8e,0x8, 0xb1,0xdb,0x32,0x24,0xa, 0xdd,0x7d,0xe8,0x0, +0x7c,0x46,0xdd,0x97,0xdc,0x5, 0xef,0xff,0xd7,0x39,0xdc,0xac,0x0, 0xfd,0x8, 0xe1, +0x38,0x82,0x8, 0xb1,0xdf,0xd2,0xde,0xec,0xdc,0xa5,0xde,0xbe,0xda,0xd1,0xdf,0xe9, +0xdc,0x62,0xdc,0xa0,0xde,0xb9,0xe0,0xb, 0xd2,0xfc,0x0, 0x80,0x15,0x0, 0x0, 0x81, +0x3c,0xf8,0x17,0x81,0x3, 0x90,0xe2,0x0, 0xcc,0x80,0x4, 0xd, 0x16,0x0, 0x34,0xa1, +0x37,0xa1,0xe1,0x2e,0x3c,0x19,0xe1,0x2d,0x3f,0x8c,0x27,0x13,0x26,0x92,0xe2,0x0, +0xcc,0x80,0x3, 0x76,0x17,0x0, 0x3c,0x79,0x4, 0x83,0x3c,0x29,0x3f,0x4f,0x37,0xc1, +0x34,0xc1,0x2f,0xfa,0xe2,0x0, 0xcd,0x0, 0xe0,0x6e,0x39,0xa8,0x3c,0x6e,0x38,0x82, +0x3f,0x6f,0x2f,0xf1,0x0, 0xf8,0x0, 0x0, 0x3d,0xe8,0xe2,0x0, 0xcd,0x3, 0x5, 0xad, +0xe0,0xc, 0x3c,0x49,0xe2,0x0, 0xc6,0x3, 0x2e,0x28,0xc5,0x7c,0xe0,0xc, 0x35,0x21, +0xea,0x0, 0xce,0x80,0xe0,0x31,0xce,0xbc,0xe2,0x0, 0xc6,0x18,0xe1,0x80,0xa7,0x19, +0x3e,0xac,0xe0,0xc, 0x35,0x44,0x3f,0xee,0xe0,0x0, 0x3e,0x82,0xe1,0x80,0xa7,0x19, +0xe1,0x80,0xbf,0x9b,0xe1,0x80,0xa7,0x99,0xe1,0x80,0xbf,0x1b,0xe1,0x80,0xa7,0x19, +0xe1,0x80,0xbf,0x9b,0xe1,0x80,0xa7,0x99,0xe1,0x80,0xbf,0x1b,0xc6,0x7f,0x6, 0x6f, +0xe1,0x80,0xbf,0x9b,0xe2,0x0, 0xc5,0x3, 0xc5,0x7f,0x6, 0x87,0xe1,0x80,0x86,0x19, +0xc5,0x7f,0xe1,0x80,0xae,0x1b,0x6, 0x7b,0x38,0x82,0x0, 0x0, 0xe2,0x0, 0xcd,0x3, +0x5, 0xaf,0xe2,0x1, 0xc4,0xff,0xe0,0xc, 0x34,0xa8,0x3c,0xcc,0xe4,0xc, 0x34,0xa0, +0x3c,0xcc,0xe0,0x41,0x3e,0x48,0xe2,0x0, 0xc6,0x3, 0xe0,0xb, 0x3e,0x18,0xe0,0xc, +0x3d,0x2c,0xe0,0xd, 0x36,0x44,0xe2,0x0, 0xc6,0xc, 0xea,0x0, 0xcf,0x80,0xe0,0x32, +0xcf,0xa8,0x3f,0xac,0xe0,0x0, 0x3f,0x82,0xe1,0x80,0xbc,0x9b,0xe1,0x80,0xbc,0x9b, +0xe1,0x80,0xbc,0x9b,0xe1,0x80,0xbc,0x9b,0xc6,0xff,0x6, 0x77,0x3d,0x18,0xe0,0xc0, +0xac,0xba,0xac,0x9a,0xac,0xaa,0xac,0x88,0xac,0x98,0xac,0xa8,0x38,0x82,0x3d,0xe8, +0xc5,0x7f,0x6, 0x85,0xe1,0x80,0xac,0x9b,0xc5,0x7f,0x6, 0x7d,0x38,0x82,0x8, 0xb1, +0xe0,0x60,0x3c,0x87,0xea,0x4, 0x7f,0x80,0xe0,0x0, 0x15,0x60,0x3c,0x6f,0xdf,0x85, +0xe0,0x60,0x3c,0x17,0x8, 0xe1,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x14,0xc4,0x0, 0x2, 0x16,0x48,0x0, 0x1, 0x79,0x88, +0x0, 0x0, 0x10,0x4e,0x0, 0x2, 0x14,0xac,0x0, 0x2, 0x15,0x44,0x0, 0x0, 0x4, 0xb2, +0x0, 0x2, 0x15,0xc4,0x0, 0x2, 0x15,0xf8,0x0, 0x0, 0x5, 0x2c,0x0, 0x2, 0x5, 0x2c, +0x0, 0x2, 0x3, 0x0, 0x0, 0x2, 0x4, 0xc, 0x0, 0x2, 0x16,0x8, 0x0, 0x0, 0x5, 0x34, +0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x5, 0x1c,0x80,0xb6,0x80,0xb, 0x1, 0x0, 0x0, 0x0, +0x1, 0x3, 0x70,0x0, 0x80,0x0, 0xd, 0x0, 0x80,0x0, 0x9, 0x0, 0x80,0x0, 0x8, 0x0, +0x80,0x0, 0x7, 0x0, 0x80,0x0, 0x6, 0x0, 0x80,0x0, 0x4, 0x0, 0x80,0x0, 0x3, 0x0, +0x80,0x0, 0x2, 0x0, 0x80,0x0, 0x1, 0x0, 0x80,0x0, 0x0, 0x0, 0x55,0x50,0x47,0x52, +0x41,0x44,0x45,0x20,0x66,0xcc,0x99,0x33,0x46,0x4c,0x41,0x47,0x80,0x0, 0x1, 0x0, +0x80,0x0, 0x4, 0x0, 0x80,0x0, 0x2, 0x0, 0x80,0x0, 0x3, 0x0, 0x55,0x50,0x47,0x52, +0x41,0x44,0x45,0x20,0x66,0xcc,0x99,0x33,0x46,0x4c,0x41,0x47,0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0xe8,0x0, 0x67,0x1a,0xac,0x7e,0xa7,0x8e,0x37,0xce,0xe2,0x0, 0xc7,0x81,0x27,0xfc, +0xa6,0x8e,0xe7,0x7f,0x17,0xff,0x3f,0xdd,0xbf,0x8e,0x14,0x1, 0x38,0x82,0x8, 0xb2, +0xe8,0x0, 0x67,0x1a,0x17,0xfb,0xa6,0x8e,0x39,0x68,0x3f,0xdd,0xbf,0x8e,0x14,0xb, +0xdf,0xe8,0xe4,0xf, 0x31,0x40,0x3c,0x6f,0xe2,0x1, 0xc4,0x7f,0xdf,0xe2,0xe0,0xf, +0x31,0x48,0x3c,0x6f,0xe2,0x1, 0xc4,0x7f,0xdf,0xdc,0x3c,0x62,0xe2,0x1, 0xc4,0x7f, +0xdf,0xd8,0x14,0x0, 0x9, 0x21,0x0, 0xd5,0x8, 0xb3,0xc0,0x7c,0x39,0x6a,0x39,0xe9, +0xdf,0xdf,0x16,0x8, 0xe8,0x0, 0x67,0x9a,0xe0,0xa, 0x31,0x42,0x3e,0x10,0x15,0x80, +0xe7,0x7f,0x14,0xff,0xc5,0x7f,0xe3,0xff,0xcd,0x7f,0x1, 0x15,0xe2,0x0, 0x7f,0x4, +0xad,0xff,0xa6,0x8f,0xe2,0x80,0xc6,0x80,0x26,0xfd,0xa6,0x8f,0x3e,0xd9,0xbe,0x8f, +0x8e,0xff,0xe1,0x80,0xae,0x9e,0x3f,0x7c,0x1, 0xf4,0x67,0x1, 0xc1,0x84,0xe0,0x40, +0xbf,0x13,0x0, 0xe9,0xa7,0xf, 0x14,0x1, 0xcf,0x4, 0xbf,0xf, 0xc0,0x4, 0x9, 0xe1, +0xe8,0x0, 0x66,0xa0,0xe2,0x0, 0xcd,0x1, 0xa7,0x9d,0xe0,0x40,0xcf,0x80,0xbf,0x9d, +0xe8,0x0, 0x67,0x9b,0x1, 0x83,0x17,0x2, 0x0, 0x82,0x17,0x0, 0xe0,0x9, 0xb7,0x5f, +0x17,0x21,0xb4,0x5f,0x35,0x28,0xe0,0x1, 0xb4,0xdf,0xe0,0x1, 0xcd,0x11,0xb7,0x3f, +0x17,0x18,0xe0,0x2, 0xb7,0x5f,0xb5,0x1f,0xe0,0x7, 0x97,0x1f,0xe2,0x0, 0xcf,0x0, +0x9f,0x1f,0x4, 0xc, 0xe2,0x0, 0xc7,0x8, 0xe4,0xe, 0x37,0x20,0xe4,0xe, 0x37,0x40, +0x27,0x74,0x9f,0x1f,0xcf,0x4, 0xb7,0x1f,0x0, 0xf0,0xe0,0x80,0xcf,0x0, 0xb7,0x1f, +0x17,0x0, 0xb7,0x1f,0xe0,0x5, 0x9c,0x5f,0xa7,0x1d,0xe7,0xbf,0x17,0xff,0x3f,0xde, +0xbf,0x9d,0x38,0x82,0xe8,0x0, 0x67,0x17,0xe0,0x1, 0xac,0x3e,0xa7,0x9e,0xe2,0x0, +0xc7,0x81,0x27,0xfd,0xe8,0x0, 0x66,0x9f,0xe0,0x2, 0x9f,0x9d,0xe2,0x0, 0xc7,0x82, +0xe4,0xf, 0x37,0xa0,0xe4,0xf, 0x37,0xc0,0x27,0xf8,0xa6,0x9e,0x17,0xfe,0x3f,0xdd, +0xbf,0x9e,0xe0,0x1, 0x8c,0x3e,0x38,0x82,0xe8,0x0, 0x67,0x9f,0xe0,0x6, 0x8f,0x7f, +0xe0,0x2, 0x9c,0x1f,0xe2,0x1, 0xcf,0x2b,0x1, 0x87,0x17,0x80,0xe2,0x0, 0xc4,0x4, +0xe0,0x28,0x3c,0xf, 0x38,0x82,0xe3,0x0, 0xc4,0x0, 0xe4,0x8, 0x34,0x20,0xe4,0x8, +0x34,0x40,0x38,0x82,0x0, 0x80,0x0, 0x80,0xe, 0x3f,0xe8,0x0, 0x4f,0xd9,0xe0,0x1, +0x2f,0x88,0xe8,0x0, 0x66,0x97,0xa7,0xbd,0xe2,0x0, 0xc7,0x81,0xe0,0x1, 0x2f,0x81, +0xa7,0x9d,0xe2,0x0, 0xc7,0x81,0xe0,0x0, 0x27,0xfc,0xa7,0x1d,0x17,0xfe,0x3f,0xde, +0xbf,0x9d,0xe8,0x2, 0x4f,0xc4,0xe0,0x1, 0x8e,0x3d,0x2f,0x85,0xe8,0x2, 0x6e,0x43, +0xe8,0x2, 0x6f,0xc2,0xe8,0x2, 0x4f,0x43,0xe2,0x1, 0xcf,0x2, 0x1, 0x19,0x2, 0x86, +0xe2,0x0, 0xcf,0x5, 0x1, 0xa, 0xe0,0x0, 0x0, 0xc7,0xe2,0x1, 0xcf,0x14,0x1, 0x21, +0xe2,0x1, 0xcf,0x21,0x1, 0x2e,0x0, 0xbf,0x2f,0x87,0xe8,0x2, 0x46,0x2a,0x17,0x2, +0xe0,0x1, 0xae,0x3d,0x0, 0xa8,0xe2,0x0, 0xcf,0x81,0x1, 0xba,0x0, 0xa0,0x2f,0x88, +0x17,0x1, 0xe8,0x2, 0x6f,0x40,0xe8,0x2, 0x6f,0x41,0x17,0x1, 0x0, 0xb2,0xe2,0x0, +0xcf,0x81,0x1, 0xae,0xe0,0x0, 0x1f,0x4, 0xe8,0x2, 0x6f,0xc2,0xae,0xe, 0x0, 0xa8, +0x2f,0x86,0xe8,0x2, 0x47,0x28,0xe0,0x1, 0xaf,0x3d,0x0, 0x8c,0xe2,0x0, 0xcf,0x82, +0x1, 0x9f,0xe0,0x0, 0x1f,0x4, 0xe0,0x1, 0x86,0x3d,0xae,0xe, 0x17,0x1, 0x0, 0x96, +0x2f,0x86,0x17,0x3, 0xe8,0x2, 0x6f,0x41,0x3f,0x6f,0x0, 0x93,0xe0,0x0, 0x1f,0x4, +0xe0,0x1, 0x86,0x3d,0x3f,0x1f,0xae,0xe, 0xe8,0x2, 0x4f,0x41,0x3f,0x7f,0x5, 0xef, +0x17,0x0, 0x0, 0x8b,0x17,0x1, 0xe8,0x2, 0x6f,0x41,0xe8,0x2, 0x6f,0x42,0x17,0x0, +0xe8,0x2, 0x4e,0x41,0x3e,0x7f,0x5, 0x84,0xc7,0x81,0xe8,0x2, 0x6f,0xc4,0xe8,0x2, +0x4f,0xc2,0x27,0x89,0x17,0x80,0xe8,0x2, 0x6f,0xc4,0xe8,0x2, 0x6f,0xc3,0x17,0x81, +0xe8,0x2, 0x6f,0xc9,0x2f,0x5, 0xa7,0x8d,0xe0,0x10,0xcf,0x80,0xbf,0x8d,0xe0,0x0, +0x17,0xc0,0xe0,0x61,0x3f,0x91,0xf, 0xac,0x38,0x0, 0x8, 0xb2,0x99,0xa, 0x9f,0x9a, +0xe1,0xff,0x17,0x7f,0x3f,0x92,0x3f,0xfe,0x1, 0x8c,0x34,0xc1,0x34,0x41,0x15,0x1, +0xe3,0xff,0xc4,0xff,0xe3,0xff,0xc4,0x7f,0xde,0xf4,0xe0,0x28,0x39,0x8, 0x0, 0x82, +0x14,0x0, 0x9, 0x61,0x8, 0xb2,0xe0,0x2, 0x11,0x0, 0xe0,0x2, 0x15,0x4, 0x3c,0xe2, +0x14,0x0, 0xdf,0xe4,0x24,0x26,0xe0,0x2, 0x17,0x92,0x9c,0x8f,0xe0,0x2, 0x17,0x94, +0x9f,0xf, 0xe1,0xff,0x16,0x7f,0x3f,0x19,0xe0,0x2, 0x16,0x82,0x3f,0x7c,0x9f,0x82, +0x9e,0x8d,0x1, 0x97,0x3e,0x9f,0x3e,0xfe,0x1, 0x94,0xe4,0x9, 0x34,0xa0,0x3c,0xcf, +0xe2,0xf0,0x17,0x80,0x3c,0xff,0x2, 0x8d,0x17,0x83,0x3f,0xd9,0x2f,0x8a,0xe0,0x2, +0x15,0x8, 0xe1,0xfc,0xc4,0xe0,0xe0,0x3, 0x14,0x20,0x9, 0x21,0xe7,0xff,0x0, 0xbf, +0x14,0x0, 0x9, 0x61,0x8, 0xb2,0x11,0x3, 0xe8,0x0, 0x65,0x4d,0x14,0x80,0xe0,0xa0, +0x14,0x0, 0xde,0x8b,0xdf,0xc8,0x2c,0x7, 0xc1,0x7f,0xe2,0x1, 0xc1,0x7f,0x29,0x75, +0x3c,0x62,0x0, 0x82,0x14,0x1, 0x9, 0x61,0x8, 0xb5,0xe8,0x0, 0x4f,0xd9,0x3a,0x68, +0xe2,0x0, 0xcf,0x81,0xe2,0x1, 0xc2,0x7f,0xe0,0x2, 0x34,0x48,0x1, 0x96,0xe8,0x0, +0x61,0x9f,0x12,0xfe,0xe0,0x2, 0x9f,0x93,0xe0,0x1, 0x14,0x2, 0x3f,0xd5,0xe0,0x2, +0xb7,0x93,0xde,0xd1,0x3c,0x62,0xde,0xcf,0xe0,0x2, 0x9f,0x93,0x3a,0x78,0xcf,0x81, +0xe0,0x2, 0xb7,0x93,0x1, 0xf0,0x0, 0xa9,0x2f,0xa8,0xe8,0x0, 0x67,0x1f,0xe8,0x2, +0x6f,0xc9,0xe0,0x2, 0x9e,0x9e,0xe0,0x0, 0x1e,0x4, 0xe1,0x0, 0xce,0x80,0xe0,0x2, +0xb6,0x9e,0xe0,0x2, 0x9e,0x9e,0xe3,0xff,0xc6,0xfb,0xe0,0x2, 0xb6,0x9e,0xe8,0x0, +0x67,0x17,0xe8,0x2, 0x4e,0xc0,0x26,0xfe,0xe8,0x2, 0x6f,0xc0,0xe0,0x1, 0xaa,0x3e, +0xa6,0x8e,0xe0,0x10,0xce,0x80,0xbe,0x8e,0xe8,0x2, 0x4e,0xc9,0x26,0xfe,0xe8,0x2, +0x6f,0xc9,0x8e,0x8c,0x39,0x7d,0x1, 0xee,0xa, 0xe1,0x8, 0xb7,0xf8,0x0, 0xc, 0x3e, +0xe8,0x0, 0x61,0x17,0xe8,0x0, 0x61,0x9f,0x13,0x3, 0x12,0x82,0xf0,0x0, 0x14,0x0, +0x13,0xfc,0xf0,0x1e,0x14,0x80,0xf0,0x0, 0x15,0x17,0xf7,0x0, 0x15,0x80,0xf7,0xef, +0x16,0x7f,0xf0,0xe, 0x16,0xc1,0xe8,0x0, 0x4f,0xd9,0xe2,0x0, 0xcf,0x81,0xe0,0x0, +0x1, 0xce,0xde,0x9b,0x2c,0x7f,0xe8,0x0, 0x67,0xcd,0xe8,0x0, 0x62,0x4d,0xe2,0x20, +0xcf,0x80,0x5, 0x83,0x32,0x43,0x3a,0x57,0x3d,0x64,0x14,0x80,0xe0,0xa0,0x14,0x0, +0xde,0xc, 0xf8,0x0, 0x67,0x17,0xe0,0xa0,0x14,0x0, 0xe8,0x0, 0xa7,0xee,0x3c,0xe4, +0x3f,0xd7,0xcf,0x81,0xe8,0x0, 0xbf,0xee,0x3c,0x14,0xf8,0x1, 0xb4,0x1e,0xe8,0x0, +0x67,0xcd,0x37,0xc2,0xe8,0x1, 0xb7,0xbe,0x17,0x9f,0xf8,0x0, 0xbe,0x8e,0xe8,0x0, +0xbf,0xbe,0xe8,0x0, 0x65,0x4d,0x3d,0x24,0xdd,0xf0,0xe8,0x0, 0xa7,0x9e,0x37,0xca, +0xe2,0x0, 0xc7,0x81,0x27,0xfb,0xdf,0x27,0xe2,0x0, 0xcc,0x0, 0x17,0x80,0xe0,0x6f, +0x39,0xa5,0x3a,0xef,0xde,0x62,0x24,0x7f,0xe8,0x0, 0x67,0x9f,0xe0,0x2, 0x9f,0x9f, +0xe2,0x0, 0xc7,0x82,0xe4,0xf, 0x37,0xa0,0xe4,0xf, 0x37,0xc0,0xe2,0x0, 0xcf,0x80, +0x17,0x81,0xe0,0x6f,0x39,0x25,0x3a,0xef,0x0, 0xb7,0xe8,0x0, 0x67,0xcd,0x37,0xc2, +0xe0,0x1, 0xb7,0xb2,0xf0,0x1, 0xb4,0x12,0xa7,0xe2,0x3f,0xd7,0xcf,0x81,0xbf,0xe2, +0xf0,0x0, 0xbc,0x82,0xf0,0x0, 0xbd,0x32,0xe0,0x2, 0x9f,0x93,0xe2,0xff,0xc7,0xff, +0xe0,0x2, 0xb7,0x93,0xe0,0x2, 0x9f,0x93,0xcf,0x84,0xe0,0x2, 0xb7,0x93,0xa7,0x92, +0x37,0xca,0xe2,0x0, 0xc7,0x81,0x27,0xfc,0xde,0xee,0xa7,0x82,0x24,0x6, 0xe0,0x10, +0xcf,0x80,0xbf,0x82,0x12,0x81,0x0, 0x84,0xe8,0xf, 0x3f,0xdc,0xbf,0x82,0xe0,0x2, +0x9f,0x93,0xe8,0xf, 0x3f,0xcb,0xe0,0x2, 0xb7,0x93,0xe0,0x2, 0x9f,0x93,0xe3,0xff, +0xc7,0xfb,0xe0,0x2, 0xb7,0x93,0xc3,0x7f,0xe2,0x1, 0xc3,0x7f,0x23,0x5, 0xe2,0x0, +0xca,0x81,0xe7,0xfe,0x1, 0xf2,0x3c,0x65,0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0x8, 0xb2, +0xe8,0x0, 0x4c,0x59,0x24,0x5, 0xef,0xf4,0xdb,0xf0,0xe0,0x0, 0x24,0x4c,0xe8,0x0, +0x4f,0xd9,0xe2,0x0, 0xcf,0x83,0x1, 0x84,0x9, 0x21,0xe7,0xfd,0x0, 0xed,0xe2,0x0, +0xcf,0x81,0x1, 0xa9,0xe1,0x76,0x14,0x55,0xde,0xf8,0xe8,0x0, 0x61,0x1f,0xe0,0x1, +0x14,0x21,0xe0,0x2, 0x9f,0x92,0xe3,0xff,0xc7,0xfe,0xe0,0x2, 0xb7,0x92,0xdd,0xd3, +0xe8,0x0, 0x67,0xcd,0xe4,0xf, 0x37,0xc0,0x3c,0x6f,0xe2,0x1, 0xc4,0x7f,0xdd,0xcb, +0xe8,0x0, 0x67,0xcd,0x37,0xc8,0x3c,0x6f,0xe2,0x1, 0xc4,0x7f,0xdd,0xc4,0xe8,0x0, +0x64,0x4d,0xe2,0x1, 0xc4,0x7f,0xdd,0xbf,0xe0,0x2, 0x9f,0x92,0xcf,0x81,0xe0,0x2, +0xb7,0x92,0x0, 0x95,0x2f,0x97,0xe1,0x76,0x14,0x55,0xde,0xcf,0xe8,0x2, 0x4f,0xc9, +0x27,0xfe,0x17,0x80,0xe0,0x0, 0x1f,0x4, 0xe8,0x2, 0x6f,0xc9,0xaf,0x8e,0x9f,0x8e, +0x9f,0x1e,0xe4,0xf, 0x37,0xa0,0x3f,0xce,0xe8,0x0, 0x7f,0xcd,0x9, 0x21,0xe7,0xfe, +0x0, 0x86,0x9, 0x61,0xe0,0x0, 0x1f,0x29,0xe2,0xff,0x17,0xf0,0xbf,0xf, 0xe2,0xff, +0x17,0xf4,0xe0,0x0, 0x1f,0x2a,0xbf,0xf, 0xe2,0xff,0x17,0xf8,0xe0,0x0, 0x1f,0x2b, +0xbf,0xf, 0xe2,0xff,0x17,0xfc,0xe0,0x0, 0x1f,0x2c,0xbf,0xf, 0x38,0x82,0x8, 0xb1, +0xdf,0x97,0xe8,0x0, 0x4f,0xd9,0x27,0x93,0xe2,0x0, 0xcc,0x1, 0x1, 0xa, 0x17,0x80, +0xe0,0x2, 0x17,0x4, 0xbf,0x8e,0xe0,0x2, 0x17,0x8, 0xbf,0x8e,0x2c,0x2, 0xdf,0xdb, +0x3f,0x83,0xe8,0x0, 0x67,0x9f,0x17,0x7f,0xe0,0x7, 0xaf,0x3f,0x0, 0x80,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x0, 0x0, 0x0, 0x60,0x0, 0x0, 0x7b,0xf4,0x0, 0x0, 0x7b,0xf4,0x0, 0x0, 0x7b,0xf4, +0x0, 0x0, 0x7b,0xf4,0x0, 0x0, 0x7b,0xf4,0x0, 0x0, 0x7b,0xf4,0x0, 0x0, 0x7b,0xf4, +0x0, 0x0, 0x7b,0xf4,0x0, 0x0, 0x7b,0xf4,0x0, 0x0, 0x7b,0xf4,0x0, 0x0, 0x7b,0xf4, +0x0, 0x0, 0x7b,0xf4,0x0, 0x0, 0x7b,0xf4,0x0, 0x0, 0x7b,0xf4,0x0, 0x0, 0x7b,0xf4, +0x0, 0x0, 0x7b,0xf4,0x0, 0x0, 0x7b,0xf4,0x0, 0x0, 0x7b,0xf4,0x0, 0x0, 0x7b,0xf4, +0x0, 0x0, 0x7b,0xf4,0x0, 0x0, 0x7b,0xf4,0x0, 0x0, 0x7b,0xf4,0x0, 0x0, 0x7b,0xf4, +0xe0,0x60,0x3c,0x0, 0xcc,0x2, 0xe0,0x60,0x3c,0x10,0xea,0x0, 0xc8,0x3, 0xe0,0xff, +0xc8,0x7c,0xfa,0x0, 0xcf,0x82,0xf0,0x37,0xcf,0x88,0xea,0x0, 0xcc,0x0, 0xe0,0x0, +0xcc,0x0, 0xe0,0x60,0x3c,0x17,0xea,0x0, 0xcc,0x2, 0xe0,0x0, 0xcc,0x0, 0xea,0x0, +0xcc,0x81,0xe0,0x88,0xcc,0xa4,0x3c,0x79,0x1, 0x8, 0xea,0x0, 0xcd,0x2, 0xe0,0x46, +0xcd,0x28,0x3d,0x28,0xe0,0x9, 0xdf,0x36,0xea,0x0, 0xcc,0x0, 0xe0,0xf7,0xcc,0x44, +0x3c,0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x67,0x4c,0x98,0xb3,0xec,0x7c,0x13,0x83,0xf0,0xa, 0xf, 0xf5,0xda,0x25,0x14,0xeb, +0x0, 0x0, 0x0, 0x1, 0xff,0xfe,0x0, 0x0, 0x0, 0x0, 0xc8,0x37,0x0, 0x0, 0x80,0xa6, +0x72,0x8d,0x0, 0xff,0xda,0x25,0x4, 0xa7,0x24,0x87,0x55,0x56,0x72,0x8d,0x1, 0xfe, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc8,0x37, +0x34,0x34,0x33,0x35,0x33,0x32,0x30,0x32,0x44,0x31,0x30,0x30,0x33,0x31,0x30,0x30, +0x0, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x30,0x30,0x31,0x0, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x8, 0xb5,0xc0,0x68,0xe0,0x3, 0x1f,0x84,0x15,0x80,0x95,0x3f,0xe0,0x2, 0x1f,0xfd, +0x3e,0x6a,0xe3,0xff,0xc6,0x7f,0xf0,0x0, 0x8b,0x4f,0xf0,0x0, 0x8b,0xdf,0xe0,0x2, +0x1f,0xfc,0xe4,0x3, 0x36,0x22,0x7d,0x81,0xe4,0x3, 0x31,0xc0,0x7d,0x82,0x7d,0x83, +0x7d,0x84,0x7d,0x85,0x7d,0x86,0x99,0xf, 0x24,0x39,0xe2,0x0, 0xcc,0x1, 0x1, 0x3, +0xc0,0x18,0xa, 0xe1,0xf0,0x0, 0x23,0x74,0x14,0xff,0xe0,0x2, 0x1f,0x81,0xe8,0x9, +0x3c,0x97,0xa4,0xf, 0xe2,0x1, 0xc4,0xff,0x34,0xa1,0xf0,0x4, 0x33,0xa1,0x3d,0x68, +0xe0,0x0, 0xc4,0x82,0xf0,0x0, 0x23,0x8b,0xe0,0xd, 0x3c,0x9a,0x3f,0xea,0x97,0xf, +0x3f,0x1c,0xe1,0x80,0xb7,0x1f,0x3e,0xff,0x1, 0xfb,0xc5,0x81,0xe2,0x1, 0xc5,0xff, +0xf0,0x40,0x3b,0x7b,0x3d,0x14,0x1, 0xef,0x16,0x8c,0x3e,0x92,0xe3,0xff,0xc6,0xff, +0xe0,0xf, 0x31,0x21,0x3f,0x98,0x97,0xf, 0xc1,0x1, 0xe3,0xff,0xc1,0x7f,0x3f,0x13, +0x39,0x7d,0xb7,0xf, 0x1, 0xf6,0xc0,0x18,0xa, 0xe1,0xe0,0x2, 0x1a,0x81,0xe0,0x2, +0x1f,0x0, 0xa7,0x85,0xe2,0x1, 0xc5,0x7f,0xe9,0xff,0xc7,0xfe,0x37,0xc1,0x3c,0xea, +0x37,0x41,0xe2,0x0, 0x7c,0x4, 0xf0,0x0, 0x6b,0x85,0xe0,0x43,0x3a,0x13,0xf0,0x0, +0x6b,0x4, 0x7f,0x3, 0x7f,0x84,0x7f,0x85,0xe0,0x9, 0xda,0xa4,0x15,0x8c,0x3d,0x92, +0xa6,0x5, 0xe0,0x1, 0x1d,0x7f,0xe3,0xff,0xc5,0xff,0xe0,0x41,0x3c,0xc4,0x0, 0x8a, +0x97,0xf, 0x3f,0x13,0xb7,0xf, 0xc1,0x1, 0xe3,0xff,0xc1,0x7f,0x39,0x7b,0xe7,0xff, +0x1, 0x21,0xe0,0x6, 0x17,0xa8,0x3f,0x92,0x37,0xa1,0x3f,0x9a,0x96,0x9f,0xe0,0xe, +0x31,0x21,0x3a,0x7d,0x3f,0xee,0x3f,0x9c,0x4, 0x6c,0x3e,0xf9,0xe0,0xf, 0x31,0x21, +0x3f,0x9c,0x3, 0x6a,0x97,0xf, 0x3f,0x23,0xb7,0xf, 0x0, 0xe6,0xe0,0x2, 0x1f,0x81, +0xa4,0xf, 0xe7,0xff,0x0, 0xab,0x0, 0x0, 0x8, 0xb7,0xf8,0x0, 0xc, 0x3a,0xe0,0x2, +0x1f,0xe6,0xe0,0x2, 0x1e,0xfd,0x87,0xf, 0x39,0xeb,0xe0,0x3, 0x8e,0x2d,0x15,0x8e, +0x3d,0xb3,0xe0,0x3, 0x1f,0xac,0xe2,0x0, 0xc7,0x1, 0x3e,0x7e,0x3f,0x9b,0x3a,0x68, +0x3a,0xe9,0x3b,0x6a,0x8b,0x9f,0xf0,0x0, 0x8d,0x3f,0xe0,0x1, 0x1, 0x3b,0x99,0x5d, +0x3c,0x63,0xe0,0x3, 0xdc,0x72,0xf0,0x40,0x3c,0x68,0xe0,0x2, 0xd9,0xf4,0xe0,0xc, +0x15,0x52,0x14,0x80,0x3c,0x64,0xe0,0x9, 0xde,0x2f,0xf0,0x1, 0x2c,0x23,0xe8,0x7, +0x3b,0xca,0xe0,0x0, 0x2b,0xec,0xe0,0x3, 0x1f,0xb8,0xe0,0x2, 0x1e,0x92,0xa7,0x8f, +0xe7,0xff,0x16,0x3f,0xa7,0x4f,0x97,0x8d,0x37,0x44,0xe2,0x0, 0xc7,0x40,0x3f,0xdc, +0x3f,0xce,0xb7,0x8d,0xc1,0x5, 0xf0,0x0, 0x14,0x80,0x3c,0xe3,0xe8,0x40,0x3c,0x69, +0xe0,0x2, 0xda,0x7b,0x24,0x7b,0xe0,0x1, 0x1d,0xfe,0x17,0x80,0xe0,0xe, 0x37,0xa1, +0xe0,0xd, 0x3a,0x1e,0x3f,0x1b,0x9f,0xe, 0x96,0xd, 0xc7,0x81,0xe3,0xff,0xc7,0xff, +0x3f,0x1c,0x3f,0xf2,0xb7,0xd, 0x5, 0x73,0x14,0x1, 0xe0,0x2, 0xda,0xd, 0xf0,0x0, +0x24,0x27,0xe0,0x1, 0x1d,0xfd,0x17,0x80,0xe0,0xe, 0x37,0xa1,0xe0,0xd, 0x3a,0x9e, +0x3f,0x1b,0x9f,0xe, 0x96,0xd, 0xc7,0x81,0xe3,0xff,0xc7,0xff,0x3f,0x1c,0x3f,0xf2, +0xb7,0xd, 0x5, 0x73,0xe0,0x3, 0x19,0x30,0xe4,0x0, 0xc1,0x85,0x3c,0x64,0xe0,0xf, +0x39,0x13,0x8c,0xcf,0xe0,0x2, 0xdb,0x3c,0x2b,0x95,0x39,0x13,0x8c,0xc2,0x3c,0x65, +0xe0,0x2, 0xdb,0x36,0x14,0x1, 0xf8,0x0, 0xd, 0x28,0xb, 0xe1,0xe0,0x3, 0x19,0x30, +0xe4,0x0, 0xc1,0x85,0x3c,0x64,0xe0,0xf, 0x39,0x13,0x8c,0xcf,0xe0,0x2, 0xdb,0x28, +0x23,0xf2,0xe0,0xf, 0x39,0x13,0x8c,0xcf,0x3c,0x66,0xe0,0x2, 0xdb,0x21,0xf7,0xff, +0x2c,0x66,0x14,0x1, 0xf8,0x0, 0xd, 0x28,0xb, 0xe1,0xe0,0xc, 0x15,0x52,0x14,0x80, +0x3c,0x66,0xe0,0x9, 0xdd,0xb9,0xe0,0x3, 0x1f,0xb8,0xe0,0x2, 0x1e,0x92,0xa7,0x8f, +0xe7,0xff,0x16,0x3f,0xa7,0x4f,0x97,0x8d,0x37,0x44,0xe2,0x0, 0xc7,0x40,0x3f,0xdc, +0x3f,0xce,0xb7,0x8d,0xf0,0x0, 0x14,0x84,0xf7,0xff,0x25,0xe, 0x3c,0xe3,0xe8,0x40, +0x3c,0x69,0xe0,0x2, 0xda,0xa, 0x24,0x7b,0xe0,0x1, 0x1d,0xfc,0xc1,0x5, 0x17,0x80, +0xe0,0xe, 0x37,0xa1,0xe0,0xd, 0x3b,0x1e,0x3f,0x1b,0x9f,0xe, 0x96,0xd, 0xc7,0x81, +0xe3,0xff,0xc7,0xff,0x3f,0x1c,0x3f,0xf2,0xb7,0xd, 0x5, 0x73,0xe7,0xfe,0x0, 0xf5, +0xe0,0xc, 0x15,0x52,0x14,0x80,0x3c,0x65,0xe0,0x9, 0xdd,0x86,0xe7,0xfe,0x0, 0xd9, +0x99,0x6d,0xe7,0xfe,0x0, 0xc7,0xe0,0x2, 0x1f,0x81,0xe0,0x1, 0x1d,0x7b,0xa4,0x8f, +0x3c,0x69,0xe0,0x8e,0x0, 0x9c,0xe0,0x0, 0x1f,0x8e,0xf0,0x40,0x3a,0x68,0xf0,0x0, +0x88,0x8f,0xe0,0x1, 0x14,0x7f,0xf0,0x0, 0x20,0xe5,0xf0,0x0, 0x1b,0xd, 0xf0,0x40, +0x3a,0xe8,0x17,0x0, 0xf0,0x0, 0x11,0x1, 0xf0,0x0, 0x11,0x82,0xf0,0x0, 0x10,0x3, +0x0, 0x9e,0xf1,0x2c,0x39,0xad,0xe0,0x0, 0x26,0x43,0xf0,0x0, 0x12,0x82,0xe8,0x40, +0x3e,0xe5,0x3f,0xe8,0xe2,0x1, 0xc6,0xff,0xe2,0x1, 0xc7,0xff,0x3e,0xff,0xe8,0x40, +0x3e,0x65,0x5, 0x82,0x3e,0x68,0x3c,0x6c,0xe2,0x1, 0xc4,0x7f,0xc7,0x1, 0xe2,0x1, +0xc7,0x7f,0xe8,0x40,0x3f,0x71,0xf0,0x0, 0xc3,0x2, 0x1, 0x38,0x3d,0x7e,0x1, 0x77, +0xe8,0x0, 0x8e,0x86,0xe8,0x0, 0x8e,0x16,0xf0,0xf, 0x3a,0x2d,0xe2,0x0, 0xcf,0x80, +0xe8,0x17,0x3e,0xa4,0xf2,0x1, 0xc3,0xff,0xe0,0xd, 0x3c,0xac,0xe2,0x1, 0xc7,0xff, +0xe8,0x6f,0x3d,0x27,0x3e,0x29,0xe2,0x0, 0xce,0x80,0xe2,0x1, 0xc6,0x7f,0xe2,0x1, +0xc6,0xff,0xf1,0x37,0x39,0x2f,0xe0,0x6d,0x3d,0x2c,0xf0,0x0, 0x23,0x85,0xf1,0x2c, +0x39,0x2d,0x2e,0x15,0xf1,0x2c,0x39,0xaf,0xe7,0xff,0x2e,0x3d,0x25,0xc1,0xf1,0x2f, +0x38,0x2f,0xe7,0xff,0x27,0xbe,0xf0,0x40,0x38,0x7d,0xe8,0x40,0x3f,0xe0,0xe8,0x6f, +0x3c,0xa5,0xf0,0x40,0x3a,0xef,0xe7,0xff,0x0, 0xb4,0x38,0x82,0x14,0x1, 0x38,0x82, +0x38,0x82,0x0, 0x0, 0x8, 0xb7,0xf8,0x0, 0xc, 0x3e,0xe1,0xff,0xc0,0x30,0xf0,0x40, +0x3e,0x6a,0xe0,0xf, 0x35,0x21,0xe0,0x0, 0x1d,0xd, 0xe4,0x0, 0xc5,0x8a,0x3e,0xea, +0x3e,0x9b,0x3f,0x9a,0x16,0x0, 0xe0,0x2, 0x1f,0x7d,0xe0,0x10,0xae,0x1d,0xf0,0x40, +0x3c,0xe8,0xe0,0x10,0xae,0x2d,0xe8,0x40,0x3c,0x6c,0x8e,0xf, 0x8f,0x9f,0x89,0x4e, +0x89,0xde,0x7d,0x90,0xf0,0x40,0x3f,0x69,0x7e,0xa, 0x7f,0x88,0xe0,0x6, 0xd6,0xc4, +0x14,0x83,0xe0,0x9, 0xdc,0x45,0xe0,0x1, 0x1e,0xd7,0xe0,0x43,0x3c,0x18,0xe0,0x1, +0x93,0xcd,0x67,0xa, 0x3b,0xf8,0xe0,0x67,0x3c,0x28,0xe8,0x40,0x3f,0x79,0xe0,0x3, +0x3, 0xa9,0x67,0x8a,0x17,0x1, 0xe8,0xe, 0x3f,0x19,0x3f,0x1f,0x17,0x80,0xe2,0x1, +0xc7,0x7f,0x3b,0x6f,0x66,0x88,0xe8,0x40,0x3e,0xfe,0xe0,0x3, 0x3, 0x87,0x66,0x88, +0x11,0x1, 0xe8,0x2, 0x39,0x1e,0x39,0x1d,0x16,0x80,0xe2,0x1, 0xc1,0x7f,0x7e,0x89, +0x3f,0x9d,0xe0,0x1, 0x1e,0xfa,0x37,0xa1,0x3f,0x9d,0xe0,0x1, 0x1e,0xd7,0x37,0xc1, +0x65,0x89,0x86,0x1d,0x7f,0x93,0xe0,0xa, 0x3f,0x16,0x67,0x89,0xe0,0x1, 0x1e,0xf9, +0x3d,0x92,0x36,0xc1,0xe2,0x1, 0xc5,0x7f,0xe2,0x1, 0xc5,0xff,0xe0,0x0, 0x6f,0xc4, +0xe2,0x0, 0x7c,0x44,0x17,0x80,0x7e,0x94,0xe0,0x0, 0x6f,0x47,0xe0,0x0, 0x6e,0x48, +0xe0,0x0, 0x6f,0xc9,0x7d,0xb, 0x7d,0x8c,0xe0,0x0, 0x6b,0x45,0xe0,0x0, 0x69,0x46, +0xe0,0x9, 0xd7,0x43,0xe0,0x1, 0x1f,0xf8,0x66,0xb, 0xf0,0x0, 0x9c,0xf, 0xe0,0x1, +0x1f,0xf7,0x3e,0x76,0xf0,0x0, 0x9d,0x8f,0xe0,0x1, 0x1f,0xf6,0xf4,0x18,0x34,0x20, +0xf0,0x0, 0x9d,0xf, 0xe0,0x1, 0x1f,0xf5,0xf4,0x1b,0x35,0xa0,0x9e,0x8f,0xe0,0x1, +0x1f,0xf4,0xf4,0x1a,0x35,0x20,0x9f,0xf, 0xe0,0x1, 0x1f,0xf3,0xf0,0x18,0x3c,0x1d, +0x9f,0x8f,0xf0,0x1b,0x3d,0x9e,0xf0,0x1a,0x3d,0x1f,0x16,0x80,0xe0,0x1, 0x5, 0xcc, +0xe0,0xe, 0x39,0xb6,0x66,0x89,0xe0,0x1, 0x1d,0x57,0xe0,0x2c,0xc7,0x1f,0x3f,0x1d, +0x37,0x21,0x8a,0x9a,0xe0,0x1, 0x1d,0x7f,0xc7,0x7e,0x3f,0x1a,0x67,0x8a,0xc1,0x7f, +0xe2,0x1, 0xc1,0x7f,0x7f,0x6, 0x16,0x2, 0x67,0x9, 0x65,0x8, 0xe0,0xb, 0x3b,0x2f, +0x31,0xa1,0xe0,0xf, 0x31,0x21,0x3f,0x9c,0xf1,0x39,0x3c,0x9c,0x79,0x8d,0xe3,0xff, +0xc5,0xff,0xe4,0x3, 0x33,0x28,0x3f,0x2a,0xf1,0x2c,0x3f,0x1c,0x16,0x80,0x7d,0x87, +0x3a,0x63,0x7f,0xe, 0x7f,0x8f,0xf0,0x0, 0x7c,0x82,0x7e,0x5, 0xe4,0x4, 0x32,0x48, +0x66,0xc, 0x67,0x9, 0x3e,0x7e,0xe0,0x1, 0x5, 0x85,0x67,0x86,0x61,0xf, 0xf0,0x40, +0x3f,0x6f,0x39,0x1f,0x67,0x8a,0x67,0xe, 0xf0,0x0, 0x66,0x89,0xe0,0xf, 0x3b,0x2f, +0x66,0x7, 0xe3,0xff,0xc7,0x7f,0x7f,0x83,0xe8,0x40,0x3f,0xee,0xe0,0x43,0x39,0x9c, +0xf8,0x40,0x3f,0x6d,0xf0,0x40,0x3c,0xee,0x7b,0x4, 0xf0,0x40,0x3e,0xef,0x0, 0xbb, +0x67,0x3, 0xe2,0x0, 0xcf,0x1, 0xe0,0x0, 0x5, 0x52,0x66,0x2, 0xe0,0x0, 0x26,0x5e, +0x67,0x5, 0x15,0x81,0xe0,0x0, 0x27,0x5a,0xe8,0x40,0x3d,0x6c,0x3c,0x64,0x7e,0x81, +0xde,0x93,0x15,0x7e,0x3d,0x18,0xe2,0x1, 0xc5,0x7f,0xe0,0xb, 0x33,0x1, 0xe2,0x0, +0xcd,0x1, 0xc4,0x7f,0xe0,0x43,0x3d,0x9b,0xe2,0x1, 0xc4,0x7f,0xe0,0x66,0x3d,0xab, +0xe2,0x0, 0xcc,0x2, 0x66,0x81,0x2, 0x8b,0x65,0x4, 0xe8,0xb, 0x3b,0x3e,0x3d,0x36, +0xf0,0x1a,0x3d,0x2b,0xf0,0x1b,0x3d,0xaa,0xf0,0x18,0x3c,0x26,0x17,0x1, 0xe8,0xe, +0x3f,0x19,0xf0,0x40,0x3e,0xf2,0xf0,0x40,0x3c,0xee,0xf3,0xff,0xc4,0xff,0xf0,0x0, +0xc7,0x1, 0x1, 0x2e,0xe8,0x80,0x97,0x9d,0xe8,0x40,0x3c,0xee,0x3f,0xa5,0xe0,0x43, +0x3b,0x1f,0xe2,0x0, 0xcb,0x0, 0xe2,0x1, 0xc4,0xff,0x5, 0x69,0x15,0x81,0x3d,0x9d, +0x3b,0xf6,0xe2,0x1, 0xc5,0xff,0xe0,0x6d,0x3d,0x2b,0xe2,0x0, 0xc9,0x80,0xe7,0xff, +0x2, 0x31,0xe3,0xff,0xc9,0xff,0xe7,0xff,0x4, 0x32,0xe8,0x43,0x3d,0x99,0xe2,0x0, +0xcd,0x80,0xe0,0x0, 0x5, 0x7d,0x67,0x88,0xf0,0xb, 0x3f,0x2f,0xe2,0x0, 0xcd,0x81, +0x5, 0x4e,0x66,0x2, 0xe7,0xff,0x2e,0x26,0x15,0x80,0xe7,0xff,0x0, 0xa7,0x63,0x4, +0x66,0x6, 0x65,0xd, 0x67,0x7, 0x3e,0x1a,0xc3,0x1, 0xe4,0x4, 0x33,0x28,0x7e,0x6, +0xc7,0x1, 0x66,0xb, 0xe4,0xf, 0x32,0x48,0xe3,0xff,0xc7,0x7f,0x3e,0x7f,0x7f,0x7, +0xe7,0xfe,0x2, 0xe6,0xf2,0x0, 0xcc,0x0, 0x11,0x81,0x3d,0x63,0xe8,0x6a,0x39,0xa8, +0x3c,0xea,0xf0,0x8, 0x35,0xa6,0xf0,0x40,0x3c,0x6a,0x7e,0x81,0xe0,0x9, 0xdb,0x3b, +0x66,0x10,0xe0,0x0, 0x19,0xd, 0xc4,0x20,0x39,0x1c,0xe0,0x7, 0xb4,0x62,0xe8,0x40, +0x3c,0xe8,0xf0,0x8, 0x35,0x26,0xe0,0x9, 0xdb,0x2e,0x17,0xa0,0x3f,0x98,0xe0,0x7, +0xb7,0xf2,0xe8,0x40,0x3c,0x6c,0xe0,0x6, 0xd5,0x5f,0xe2,0x0, 0xcc,0x0, 0x39,0x68, +0x66,0x81,0xe0,0x1, 0x5, 0x0, 0xe0,0x1, 0x1f,0x57,0xe0,0x43,0x39,0x12,0xe0,0x2, +0x8c,0xfe,0x2c,0x85,0x17,0x94,0xe0,0x2, 0xaf,0xfe,0x14,0x94,0xe8,0x40,0x3c,0x68, +0x7e,0x81,0xe0,0x9, 0xdb,0x10,0x3c,0x72,0x3c,0xe2,0xe0,0x62,0x3d,0xa8,0xe0,0x0, +0x14,0x7f,0x3c,0x32,0x66,0x10,0xe0,0x0, 0x19,0xd, 0x39,0x1c,0xe0,0x9, 0xdb,0x3, +0xe0,0x10,0xac,0x12,0x66,0x81,0x67,0xa, 0x67,0x88,0xe2,0x0, 0xce,0xad,0xe0,0x10, +0xae,0xa2,0xe0,0x10,0xaf,0x32,0xe0,0x10,0xaf,0xc2,0x5, 0x84,0x17,0xad,0xe0,0x10, +0xaf,0xa2,0xe0,0x0, 0xc0,0x50,0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0xe3,0xff,0xcd,0xff, +0xe7,0xfe,0x3, 0x56,0xe7,0xfe,0x0, 0xab,0x16,0xff,0x3e,0x93,0x66,0x8, 0xe8,0xd, +0x3e,0xae,0x3e,0x7d,0x2, 0x31,0x3e,0xec,0xf0,0x2, 0x37,0x21,0xe8,0xd, 0x3e,0xae, +0xc1,0x1, 0xe2,0x1, 0xc6,0xff,0x7e,0x89,0xe2,0x1, 0xc1,0x7f,0xe7,0xfc,0x0, 0xf2, +0x17,0xff,0x3f,0x92,0xe8,0xf, 0x3f,0xa9,0x3f,0x7f,0x2, 0xf, 0x63,0xa, 0xf0,0xe, +0x34,0xa1,0xe8,0x6, 0x3b,0x29,0xc7,0x1, 0xe2,0x1, 0xc3,0x7f,0xe2,0x1, 0xc7,0x7f, +0xe0,0xf, 0x3b,0x33,0xe7,0xfc,0x0, 0xd0,0x63,0xa, 0x66,0xa, 0xe8,0x6, 0x3b,0x29, +0xe8,0xe, 0x39,0x19,0xe2,0x1, 0xc3,0x7f,0x3f,0x2c,0xe0,0xf, 0x3b,0x33,0xe2,0x1, +0xc7,0x7f,0xe7,0xfc,0x0, 0xc1,0x66,0x88,0x66,0x8, 0xe8,0x2, 0x39,0x9e,0xe8,0xd, +0x3e,0xae,0x39,0x2c,0xe2,0x1, 0xc6,0xff,0x7e,0x89,0xe2,0x1, 0xc1,0x7f,0xe7,0xfc, +0x0, 0xc1,0x39,0x63,0xe7,0xff,0x0, 0x81,0x8, 0xb7,0xf8,0x0, 0xc, 0x3e,0xe1,0xff, +0xc0,0x34,0xf0,0x40,0x3e,0x6a,0xe0,0xf, 0x35,0x21,0xe0,0x0, 0x1d,0xd, 0xe4,0x0, +0xc5,0x8a,0x3e,0xea,0x3e,0x9b,0x3f,0x9a,0x16,0x0, 0xe0,0x2, 0x1f,0x7d,0xe0,0x10, +0xae,0x1d,0xf0,0x40,0x3c,0xe8,0xe0,0x10,0xae,0x2d,0xe8,0x40,0x3c,0x6c,0x8e,0xf, +0x8f,0x9f,0x89,0x4e,0x89,0xde,0x7d,0x8f,0xf0,0x40,0x3f,0x69,0x7e,0xa, 0x7f,0x88, +0xe0,0x6, 0xd4,0xb2,0x14,0x83,0xe0,0x9, 0xda,0x33,0xe0,0x1, 0x1e,0xd7,0xe0,0x43, +0x3c,0x18,0xe0,0x1, 0x93,0xcd,0x67,0xa, 0x3b,0xf8,0xe0,0x67,0x3c,0x28,0xe8,0x40, +0x3f,0x79,0xe0,0x3, 0x3, 0xa1,0x17,0x81,0x66,0xa, 0xe8,0xf, 0x3f,0x99,0x3f,0x9c, +0x17,0x0, 0xe2,0x1, 0xc7,0xff,0x3b,0x6e,0x66,0x8, 0xe8,0x40,0x3e,0x7e,0xe0,0x3, +0x3, 0x81,0x66,0x8, 0x16,0x81,0xe8,0xd, 0x3e,0x9e,0x3e,0x9c,0x16,0x0, 0xe2,0x1, +0xc6,0xff,0x7e,0x9, 0x3e,0x1e,0xe0,0x1, 0x1a,0x72,0x36,0x21,0xa7,0x4, 0xe0,0xa, +0x3f,0x96,0x3f,0x1c,0xe0,0x1, 0x1e,0x57,0xe9,0xff,0xc7,0x7e,0x85,0x9c,0x37,0x41, +0xe0,0x1, 0x1e,0x79,0x61,0x9, 0x7f,0x12,0x36,0x41,0x67,0x9, 0xe2,0x1, 0xc5,0x7f, +0xe0,0x0, 0x6f,0xc3,0xe2,0x0, 0x7c,0x40,0x17,0x80,0x39,0x1d,0xe0,0x0, 0x6f,0x40, +0xe2,0x1, 0xc1,0x7f,0xe0,0x0, 0x6e,0xc2,0xe0,0x0, 0x6f,0xc5,0x7d,0xb, 0x7e,0x13, +0xe0,0x0, 0x6b,0x41,0xe0,0x0, 0x6d,0xc4,0xe0,0x9, 0xd5,0x2f,0xe0,0x1, 0x1f,0xf8, +0xf0,0x0, 0x9c,0xf, 0xe0,0x1, 0x1f,0xf7,0xf4,0x18,0x34,0x20,0xf0,0x0, 0x9d,0x8f, +0xe0,0x1, 0x1f,0xf6,0xf4,0x1b,0x35,0xa0,0xf0,0x0, 0x9d,0xf, 0xe0,0x1, 0x1f,0xf5, +0xf4,0x1a,0x35,0x20,0x9e,0x8f,0xe0,0x1, 0x1f,0xf4,0xf0,0x18,0x3c,0x1d,0x9f,0xf, +0xe0,0x1, 0x1f,0xf3,0xf0,0x1b,0x3d,0x9e,0x9f,0x8f,0x16,0x80,0xf0,0x1a,0x3d,0x1f, +0x67,0x8b,0x3f,0xf6,0xe0,0x1, 0x5, 0xc4,0xe0,0xf, 0x3b,0x33,0x66,0x89,0xa5,0x84, +0x3f,0x9d,0x66,0x8a,0x37,0xa1,0xe0,0xc, 0x3b,0x2d,0xe3,0xff,0xc6,0x7f,0x3d,0x9f, +0x7e,0x7, 0x17,0x2, 0x66,0x9, 0x67,0x88,0xe0,0x1, 0x1d,0x57,0x3e,0x2f,0x7e,0xd, +0x31,0xa1,0x66,0x9, 0xf1,0x39,0x3c,0x9e,0x79,0x8c,0xe4,0xc, 0x36,0x28,0xe4,0x3, +0x33,0x28,0xf1,0x2e,0x3f,0x1e,0x8a,0x9a,0x16,0x80,0x7d,0x86,0x3a,0x63,0x7e,0xe, +0xf0,0x0, 0x7c,0x82,0xe0,0x0, 0x7f,0x5, 0xe4,0x4, 0x32,0x48,0x67,0x9, 0x39,0x7e, +0xe0,0x1, 0x5, 0x84,0xf0,0x0, 0x67,0x6, 0x67,0x87,0x67,0xd, 0x66,0xa, 0xf0,0x0, +0x66,0x89,0xe3,0xff,0xc7,0x7f,0xe0,0x43,0x39,0x9f,0xe0,0xc, 0x3b,0x2c,0xe8,0x40, +0x3f,0xee,0x64,0x8e,0xf8,0x40,0x3f,0x6d,0x7e,0x3, 0xf0,0x40,0x3c,0xee,0x7b,0x4, +0xf0,0x40,0x3e,0xef,0x0, 0xbe,0x66,0x3, 0xe2,0x0, 0xce,0x1, 0xe0,0x0, 0x5, 0x53, +0x67,0x82,0xe0,0x0, 0x27,0xdf,0x66,0x5, 0x15,0x81,0xe0,0x0, 0x26,0x5b,0xe8,0x40, +0x3d,0x6c,0x3c,0x64,0x7e,0x81,0xdc,0x88,0x15,0x7e,0x3d,0x18,0xe2,0x1, 0xc5,0x7f, +0xe0,0xb, 0x33,0x1, 0xe2,0x0, 0xcd,0x1, 0xc4,0x7f,0xe0,0x43,0x3d,0x9b,0xe2,0x1, +0xc4,0x7f,0xe0,0x66,0x3d,0xab,0xe2,0x0, 0xcc,0x2, 0x66,0x81,0x2, 0x8b,0x65,0x4, +0xe8,0xb, 0x3b,0x3e,0x3d,0x36,0xf0,0x1a,0x3d,0x2b,0xf0,0x1b,0x3d,0xaa,0xf0,0x18, +0x3c,0x26,0xf0,0x0, 0xc7,0x1, 0xf4,0x9, 0x37,0x28,0x17,0x1, 0xe4,0xf, 0x34,0xc8, +0xe8,0xe, 0x3f,0x19,0x39,0x7f,0xf0,0x40,0x3c,0xee,0xf3,0xff,0xc4,0xff,0x5, 0xac, +0xe9,0x80,0x97,0x9d,0xe4,0x9, 0x34,0xc8,0x3f,0xa5,0xe0,0x43,0x3b,0x1f,0xe2,0x0, +0xcb,0x0, 0x5, 0x68,0x15,0x81,0x3d,0x9d,0x3b,0xf6,0xe2,0x1, 0xc5,0xff,0xe0,0x6d, +0x3d,0x2b,0xe2,0x0, 0xc9,0x80,0xe7,0xff,0x2, 0x30,0xe3,0xff,0xc9,0xff,0xe7,0xff, +0x4, 0x31,0xe8,0x43,0x3d,0x99,0xe2,0x0, 0xcd,0x80,0xe0,0x0, 0x5, 0x7d,0x67,0x8, +0xf0,0xb, 0x3f,0x2e,0xe2,0x0, 0xcd,0x81,0x5, 0x4d,0x67,0x82,0xe7,0xff,0x2f,0xa5, +0x15,0x80,0xe7,0xff,0x0, 0xa6,0x63,0x4, 0x66,0x6, 0x65,0xc, 0x67,0x7, 0x3e,0x1a, +0xc3,0x1, 0xe4,0x4, 0x33,0x28,0x7e,0x6, 0xc7,0x1, 0x66,0xb, 0xe4,0xf, 0x32,0x48, +0xe3,0xff,0xc7,0x7f,0x3e,0x7f,0x7f,0x7, 0xe7,0xfe,0x2, 0xe8,0xf2,0x0, 0xcc,0x0, +0x11,0x81,0x3f,0x63,0xe8,0x6e,0x39,0xa8,0x3c,0xee,0xf0,0x8, 0x35,0xa6,0xf0,0x40, +0x3c,0x6e,0x7e,0x81,0xe0,0x9, 0xd9,0x2f,0x67,0x8f,0xe0,0x0, 0x19,0xd, 0xc4,0x20, +0x39,0x1f,0xe0,0x7, 0xb4,0x62,0xe8,0x40,0x3c,0xe8,0xf0,0x8, 0x35,0x26,0xe0,0x9, +0xd9,0x22,0x17,0xa0,0x3f,0x98,0xe0,0x7, 0xb7,0xf2,0xe8,0x40,0x3c,0x6c,0xe0,0x6, +0xd3,0x53,0xe2,0x0, 0xcc,0x0, 0x39,0x68,0x66,0x81,0xe0,0x0, 0x5, 0x7e,0xe0,0x1, +0x1d,0x57,0xe0,0x43,0x39,0x12,0xe0,0x2, 0x8c,0xfa,0x2c,0x85,0x17,0x94,0xe0,0x2, +0xaf,0xfa,0x14,0x94,0xe8,0x40,0x3c,0x68,0x7e,0x81,0xe0,0x9, 0xd9,0x4, 0x3c,0x72, +0x3c,0xe2,0xe0,0x62,0x3d,0xa8,0xe0,0x0, 0x14,0x7f,0x3c,0x32,0x66,0xf, 0xe0,0x0, +0x19,0xd, 0x39,0x1c,0xe0,0x9, 0xd8,0xf7,0xe0,0x10,0xac,0x12,0x66,0x81,0x67,0xa, +0x67,0x88,0xe2,0x0, 0xce,0xad,0xe0,0x10,0xae,0xa2,0xe0,0x10,0xaf,0x32,0xe0,0x10, +0xaf,0xc2,0x5, 0x84,0x17,0xad,0xe0,0x10,0xaf,0xa2,0xe0,0x0, 0xc0,0x4c,0xf8,0x0, +0xf, 0x28,0xb, 0xe1,0xe3,0xff,0xcd,0xff,0xe7,0xfe,0x3, 0x55,0xe7,0xfe,0x0, 0xaa, +0x16,0xff,0x3e,0x93,0xe8,0xd, 0x3e,0xae,0x3e,0x7d,0x2, 0x30,0xf0,0xd, 0x37,0x21, +0xe8,0xc, 0x3e,0x2e,0xc6,0x81,0xe2,0x1, 0xc6,0x7f,0x7e,0x9, 0xe2,0x1, 0xc6,0xff, +0xe7,0xfc,0x0, 0xfa,0x17,0xff,0x3f,0x92,0xe8,0xf, 0x3f,0xa9,0x3f,0x7f,0x2, 0xf, +0x3b,0x6e,0xf0,0xf, 0x34,0xa1,0xe8,0x6, 0x3b,0x29,0xc7,0x81,0xe2,0x1, 0xc3,0x7f, +0xe2,0x1, 0xc7,0xff,0xe0,0xe, 0x3b,0x33,0xe7,0xfc,0x0, 0xd8,0x63,0xa, 0x66,0x8a, +0xe8,0x6, 0x3b,0x29,0xe8,0xf, 0x39,0x19,0xe2,0x1, 0xc3,0x7f,0x3f,0xad,0xe0,0xe, +0x3b,0x33,0xe2,0x1, 0xc7,0xff,0xe7,0xfc,0x0, 0xc9,0x66,0x8, 0x65,0x8, 0xe8,0xd, +0x39,0x9e,0xe8,0xc, 0x3e,0x2e,0x3e,0xaa,0xe2,0x1, 0xc6,0x7f,0x7e,0x9, 0xe2,0x1, +0xc6,0xff,0xe7,0xfc,0x0, 0xc9,0x39,0x63,0xe7,0xff,0x0, 0x83,0xe2,0x0, 0xcc,0x1, +0x1, 0x11,0x4, 0x9b,0xc4,0x7c,0xe2,0x0, 0xcc,0x1, 0x5, 0x8c,0xe0,0x1, 0x1f,0x7d, +0xe0,0x1, 0x1f,0xf1,0xbf,0xf, 0xe0,0x1, 0x1f,0x70,0xe0,0x2, 0x1f,0x81,0xbf,0xf, +0x38,0x82,0xe0,0x1, 0x1f,0x7c,0xe0,0x1, 0x1f,0xf1,0xbf,0xf, 0xe0,0x1, 0x1f,0x6f, +0xe0,0x2, 0x1f,0x81,0xbf,0xf, 0x38,0x82,0xe0,0x1, 0x1f,0x7e,0xe0,0x1, 0x1f,0xf1, +0xe2,0x0, 0xcc,0x82,0xbf,0xf, 0x1, 0x7, 0xe0,0x1, 0x1f,0x6e,0xe0,0x2, 0x1f,0x81, +0xbf,0xf, 0x38,0x82,0xe0,0x1, 0x1f,0x6d,0xe0,0x2, 0x1f,0x81,0xbf,0xf, 0x38,0x82, +0x8, 0xb5,0xe0,0x2, 0x19,0x7a,0x8f,0x82,0x2f,0xb6,0xe0,0x1, 0x19,0xf1,0xe0,0x1, +0x1a,0x72,0xa4,0x83,0xa4,0x4, 0xe0,0x2, 0x1a,0x81,0xe0,0x4, 0xd2,0x8f,0xe0,0x2, +0x1f,0xfc,0x14,0x8c,0x9f,0x8f,0xa5,0x4, 0x3c,0x9f,0xa5,0x83,0xa4,0x5, 0xe3,0xff, +0xc4,0xff,0x0, 0x88,0xc7,0x81,0x9e,0x8c,0xe3,0xff,0xc7,0xff,0x3f,0xf9,0xb6,0x8e, +0x1, 0x19,0x8e,0x82,0xe0,0xe, 0x37,0xa1,0xe2,0x0, 0xce,0x81,0xe0,0xc, 0x3d,0x9e, +0x3f,0x1a,0x1, 0xf1,0xe0,0xe, 0x37,0xa1,0x3e,0xec,0xe0,0xc, 0x3c,0x1e,0x9e,0x8d, +0x96,0xc, 0xc7,0x81,0xe3,0xff,0xc7,0xff,0x3f,0x1a,0x3e,0xac,0x3f,0xf9,0xb6,0x8e, +0x1, 0xe9,0xa, 0xe1,0xe0,0x2, 0x1a,0x81,0xe0,0x1, 0x19,0xf1,0xe0,0x1, 0x1a,0x72, +0xa5,0x5, 0xa4,0x83,0xa4,0x4, 0x15,0x81,0xe0,0x4, 0xd2,0x39,0x0, 0xc9,0xe0,0x0, +0x1f,0x8e,0x8f,0x8f,0x27,0xbc,0x14,0x7f,0x3c,0x1f,0xe0,0x2, 0x1f,0xfd,0xe2,0x1, +0xc4,0x7f,0xf0,0x0, 0x8b,0x5f,0xc4,0x1, 0xe0,0x0, 0x1e,0x8d,0xe0,0x1, 0x1f,0xf2, +0x34,0x21,0xf7,0xff,0x12,0xff,0xf0,0x0, 0xa3,0x8f,0xf8,0x15,0x3a,0x96,0x3c,0x1d, +0x14,0x80,0x0, 0x88,0x3e,0x7b,0x4, 0x1e,0xc7,0x7f,0xaf,0x1d,0xc6,0x82,0x3c,0x7d, +0x1, 0x1e,0x8f,0x8d,0x8f,0x1d,0xe8,0xf, 0x3f,0xb6,0x3e,0x69,0x3f,0x9e,0x37,0xa1, +0xf0,0xb, 0x3b,0x9f,0x95,0xb, 0x27,0x3, 0xe0,0x40,0x96,0x1b,0xe8,0x40,0x3f,0x75, +0x3d,0xe9,0x3, 0x4, 0xe8,0xf, 0x3f,0x97,0x95,0x9f,0x3d,0x7c,0x4, 0x64,0x3d,0x7b, +0x3, 0x66,0xc7,0x1, 0xaf,0x1d,0xc6,0x82,0x3c,0x7d,0x1, 0xe4,0x38,0x82,0x0, 0x0, +0x8, 0xb4,0xe1,0xff,0xc0,0x18,0xe0,0x1, 0x1f,0xc3,0x17,0x0, 0x8d,0x8f,0xe0,0x0, +0x19,0xd, 0xe0,0xc, 0x35,0xc3,0x3f,0xee,0x3e,0xee,0xc7,0x81,0xe2,0x1, 0xc7,0xff, +0x3f,0x12,0x3f,0xfc,0xe0,0xf, 0xae,0x8e,0x3f,0x6f,0x5, 0x78,0xe0,0x1, 0x1e,0x57, +0xe0,0x1, 0x1f,0xf2,0xe0,0x2, 0x1d,0x7d,0xf0,0x1, 0x93,0xc, 0xa7,0xf, 0xf0,0x0, +0x91,0xac,0xf0,0x0, 0x92,0x3c,0xf0,0x0, 0x92,0xfc,0xe0,0x3, 0x1e,0x40,0xf0,0x0, +0x80,0xca,0xf0,0x0, 0x81,0x5a,0xe4,0x0, 0x17,0x80,0xe2,0x0, 0x7c,0xae,0xe0,0x1, +0x1d,0x79,0xf0,0x0, 0x83,0x8c,0xe0,0x0, 0x1a,0xe, 0xe0,0x0, 0x19,0x8c,0x3f,0x1f, +0x3f,0x99,0x16,0x0, 0x37,0x41,0x37,0xc1,0x35,0x41,0xc5,0xff,0xe2,0x0, 0x7c,0x84, +0xe2,0x0, 0x7c,0x14,0xae,0x84,0xae,0x83,0xe0,0x1a,0xb6,0x52,0xe0,0x1a,0xb6,0x62, +0xe0,0x1a,0xb6,0x72,0xe0,0x1b,0xb6,0x12,0x7f,0x6, 0x7f,0x88,0x7d,0x7, 0xf0,0x0, +0x73,0x15,0x6d,0x96,0xf0,0x0, 0x6b,0x97,0xf0,0x0, 0x68,0x95,0xf0,0x0, 0x69,0x14, +0xf0,0x0, 0x71,0x92,0xf0,0x0, 0x72,0x13,0xf0,0x0, 0x72,0x94,0xe0,0x9, 0xd2,0x2d, +0x55,0x7, 0x5f,0x8, 0xe0,0x1a,0xb5,0x72,0xe0,0xb, 0x37,0x48,0xe0,0x0, 0x1d,0xb, +0x5f,0x86,0xaf,0xa, 0xe0,0xd, 0x37,0xc8,0xe0,0x0, 0x1f,0xa, 0xf0,0x0, 0x4b,0x84, +0xad,0x8e,0xe0,0x0, 0x1f,0x9, 0x4c,0x5, 0xf0,0x0, 0x53,0x3, 0x54,0x84,0x56,0x5, +0xaf,0x8e,0xe0,0x0, 0x1f,0x88,0xf0,0x0, 0xab,0x84,0xac,0x3, 0xf0,0x1a,0xb3,0x52, +0xe0,0x1a,0xb4,0xe2,0xe0,0x1b,0xb6,0x12,0xae,0x8f,0xf0,0x0, 0x23,0xa5,0xe0,0x1, +0x1d,0x6c,0xe0,0x0, 0x1e,0xd, 0x17,0x80,0xf0,0x0, 0x13,0x1, 0xe0,0xe, 0x37,0xc3, +0xe2,0x0, 0xc7,0x1f,0x3f,0x12,0x16,0x87,0xe0,0xf, 0x84,0x8e,0x3e,0xdf,0xe0,0x80, +0x9d,0x9a,0xf0,0xd, 0x33,0x3d,0x3e,0xc9,0xc7,0x81,0xe0,0xf, 0xae,0x8e,0xe2,0x1, +0xc7,0xff,0xe0,0xe, 0x35,0xc8,0xaf,0xc, 0xf0,0x40,0x3b,0xff,0xc6,0x2, 0xe0,0x40, +0xad,0x9c,0x1, 0xe5,0x24,0x19,0x15,0xff,0x3d,0x98,0xe2,0x1, 0xc5,0xff,0x35,0xa1, +0xe2,0x0, 0x7e,0xae,0xe0,0x0, 0x1f,0x8d,0xe2,0x0, 0x7f,0x2c,0xe0,0xb, 0x3d,0x9d, +0xe0,0x80,0x9e,0x9e,0xc7,0x82,0xe0,0xc, 0x36,0xc8,0x3d,0xfe,0xe0,0x7, 0xae,0x2f, +0xe0,0x7, 0xae,0xbf,0x1, 0xf6,0xe0,0x0, 0xc0,0x68,0xa, 0x61,0xe0,0x2, 0x1f,0xfd, +0xf0,0x0, 0x89,0xdf,0xf0,0xa, 0x31,0xc1,0xf0,0x0, 0x21,0xde,0xe0,0x1, 0x1f,0x72, +0x14,0x0, 0xf0,0x0, 0xa2,0x8e,0x8d,0xef,0xf0,0x1, 0x19,0x7f,0xf0,0x17,0x31,0xa1, +0x35,0x21,0xf8,0x40,0x3a,0x65,0x3c,0xe8,0xf0,0x40,0x3b,0x68,0x17,0x81,0xe8,0xf, +0x3f,0xd6,0x27,0xa6,0x25,0x97,0xe0,0x1, 0x17,0x7e,0xe8,0xe, 0x3f,0x56,0xe0,0x65, +0xc7,0x10,0xe8,0xe, 0x3f,0x12,0xe8,0x40,0x3e,0xe5,0x17,0x80,0xc7,0x81,0x96,0xd, +0xe2,0x1, 0xc7,0xff,0x3f,0xfb,0xb6,0xe, 0x3c,0x9c,0xe8,0xd, 0x3e,0x97,0x3f,0x1a, +0x1, 0xf6,0xf0,0x0, 0xc3,0x1, 0xf2,0x1, 0xc3,0x7f,0xf8,0x40,0x39,0xf6,0xf0,0x0, +0xc2,0x82,0xf0,0x0, 0xc2,0x2, 0x1, 0xdb,0xe0,0x28,0x3c,0x19,0x38,0x82,0x25,0xf2, +0xe0,0x1, 0x17,0x7e,0xe8,0xe, 0x3f,0x56,0xe0,0x6b,0xc7,0x38,0xe8,0xe, 0x3f,0x12, +0xe8,0x40,0x3e,0xe4,0xc7,0x81,0x96,0xd, 0xe2,0x1, 0xc7,0xff,0x3f,0xfb,0xb6,0xe, +0x3c,0x1c,0xe8,0xd, 0x3e,0x97,0x3f,0x1a,0x1, 0xf6,0xf0,0x0, 0xc3,0x1, 0xf2,0x1, +0xc3,0x7f,0xf8,0x40,0x39,0xf6,0xf0,0x0, 0xc2,0x82,0xf0,0x0, 0xc2,0x2, 0xe7,0xff, +0x1, 0xb7,0x0, 0xdb,0xe8,0x40,0x3c,0x63,0x38,0x82,0x0, 0x0, 0x8, 0xb6,0xe1,0xff, +0xc0,0x18,0xe0,0x1, 0x1f,0xc3,0x17,0x0, 0x8d,0x8f,0xe0,0x0, 0x19,0x8d,0x39,0x68, +0xe0,0xc, 0x35,0xc3,0x3f,0xee,0x3e,0xee,0xc7,0x81,0xe2,0x1, 0xc7,0xff,0x3f,0x13, +0x3f,0xfc,0xe0,0xf, 0xae,0x8e,0x3f,0x6f,0x5, 0x78,0xe0,0x0, 0x1b,0xe, 0xe0,0x0, +0x1a,0x8c,0x17,0x80,0xae,0x86,0xae,0x85,0xe0,0x1a,0xb7,0xd3,0xe0,0x1a,0xb7,0xe3, +0xe0,0x1a,0xb7,0xf3,0xe0,0x1b,0xb7,0x93,0xe0,0x1, 0x21,0x7f,0xe0,0x1, 0x1f,0xeb, +0x37,0xc1,0x7f,0x86,0xe2,0x0, 0x7e,0x2e,0xe0,0x2, 0x1e,0xfd,0xe0,0x1, 0x1a,0x42, +0x8f,0x5d,0xe0,0x1, 0x1f,0xd7,0xf0,0x0, 0x81,0xcd,0xe0,0xe, 0x8c,0xa4,0xe0,0x1, +0x1e,0xf9,0xf0,0x0, 0x92,0x2f,0xf0,0x0, 0x92,0xbf,0xf0,0x0, 0x93,0x7f,0xf0,0x1, +0x93,0x8f,0xe0,0xe, 0x8c,0x14,0xe0,0xf, 0x37,0x41,0xe9,0xff,0xc6,0x7e,0x36,0x41, +0x36,0xc1,0xc5,0xff,0xe0,0x1, 0x15,0x78,0x34,0xc1,0x6f,0x94,0x17,0x81,0x7e,0x8, +0x7e,0x87,0xf0,0x0, 0x69,0x95,0xf0,0x0, 0x72,0x12,0xf0,0x0, 0x72,0x93,0xf0,0x0, +0x73,0x14,0x6d,0x96,0x6f,0x97,0xf0,0x0, 0x73,0x95,0xe0,0x9, 0xd0,0x47,0xe2,0x0, +0x7c,0x84,0xe2,0x0, 0x7c,0x14,0xe0,0x9, 0xd0,0xf8,0xe0,0xe, 0x8c,0xa4,0xe0,0xe, +0x8c,0x14,0xe0,0x1, 0x15,0x78,0xe0,0x9, 0xd0,0x39,0x56,0x7, 0x5f,0x8, 0x5f,0x86, +0xe0,0x1a,0xb6,0x73,0xe0,0x16,0x37,0x47,0xe0,0x0, 0x1e,0xb, 0x4c,0x84,0x4d,0x5, +0x54,0x3, 0x55,0x84,0xf0,0x0, 0x1a,0xa, 0x56,0x85,0xe0,0x15,0x37,0xc7,0xf0,0x0, +0x19,0x88,0xaf,0xc, 0xf2,0x1, 0xc3,0x7e,0xe0,0x0, 0x1f,0x9, 0xf2,0x1, 0xc2,0xfe, +0xac,0x86,0xad,0x5, 0xe0,0x1a,0xb4,0x53,0xe0,0x1a,0xb5,0xe3,0xf8,0x0, 0xab,0x4, +0xe0,0x1b,0xb6,0x93,0xaf,0x8e,0xf8,0x0, 0xaa,0x83,0xe0,0x0, 0x29,0x4d,0x24,0xa5, +0xf0,0x1, 0x1b,0xec,0xe0,0x0, 0x1e,0xd, 0x3c,0x62,0x11,0x1, 0xe0,0xf, 0x34,0x43, +0xe2,0x0, 0xc7,0x9f,0x3f,0x93,0x17,0x7, 0xe0,0xf, 0x85,0x8f,0x3f,0x58,0xe8,0x80, +0x9e,0x97,0xe0,0xe, 0x31,0x3e,0x3f,0x4b,0xc4,0x1, 0xe0,0xf, 0xaf,0xf, 0xe0,0xb, +0x36,0xa1,0x17,0x81,0x36,0xc8,0xe2,0x1, 0xc4,0x7f,0xae,0x8c,0x3f,0x9b,0xc6,0x2, +0x3c,0xf8,0xe0,0x40,0xaf,0x9c,0x1, 0xe3,0x25,0x1b,0x15,0xff,0x3d,0x9a,0xe2,0x1, +0xc5,0xff,0x35,0xa1,0xe2,0x0, 0x7f,0xae,0xe0,0x0, 0x1f,0xd, 0xe2,0x0, 0x7e,0x2c, +0xe0,0xb, 0x3d,0x9f,0xe0,0x80,0x9f,0x9c,0xc7,0x2, 0xe0,0xd, 0x37,0xa1,0xc6,0x81, +0x37,0xc8,0x3d,0xfc,0xe0,0x7, 0xaf,0xae,0xe0,0x7, 0xae,0xbe,0x1, 0xf4,0xf0,0x0, +0xc3,0x1, 0xf0,0x0, 0xc2,0x81,0xf8,0x0, 0xab,0x4, 0xf8,0x0, 0xaa,0x83,0xe0,0x0, +0xc0,0x68,0xb, 0x61,0x24,0xa4,0xe0,0x1, 0x1c,0x6c,0xe0,0x0, 0x1d,0x8d,0x17,0x80, +0xf0,0x0, 0x13,0x81,0xe0,0xe, 0x37,0xc3,0xe2,0x0, 0xc7,0x1f,0x3f,0x13,0x16,0x87, +0xe0,0xf, 0x81,0xe, 0x3e,0xdf,0xe0,0x80,0x9e,0x18,0xf0,0xd, 0x33,0xbd,0x3e,0xc2, +0xc7,0x81,0xe0,0xf, 0xae,0x8e,0xe2,0x1, 0xc7,0xff,0xe0,0xe, 0x36,0x48,0xaf,0xb, +0x36,0x21,0xc5,0x82,0x3c,0xff,0xe0,0x40,0xae,0x1b,0x1, 0xe5,0x25,0x59,0x15,0xff, +0x3d,0x9a,0xe2,0x1, 0xc5,0xff,0x35,0xa1,0xe2,0x0, 0x7f,0xae,0xe0,0x0, 0x1f,0xd, +0xe2,0x0, 0x7e,0xac,0xe0,0xb, 0x3d,0x9f,0xe0,0x80,0x9f,0x9d,0xc7,0x2, 0xe0,0xc, +0x37,0xc8,0x3d,0xfd,0x37,0xa1,0xe0,0x7, 0xae,0x2e,0xe0,0x7, 0xaf,0xbe,0x1, 0xf5, +0xe0,0x0, 0xc0,0x68,0xb, 0x61,0xe0,0x1, 0x1f,0xea,0x37,0xc1,0x7f,0x86,0xe7,0xfe, +0x0, 0x83,0x8, 0xb4,0xe0,0x0, 0x1f,0x87,0x17,0x0, 0xaf,0xf, 0xdd,0xa2,0xe0,0x3, +0x1f,0xc7,0xea,0x10,0x79,0x78,0x8f,0x8f,0xe2,0x0, 0xcf,0x81,0x1, 0x21,0xe0,0x0, +0x1f,0x8e,0x8f,0xf, 0x27,0x10,0x87,0x82,0xc7,0x81,0xe2,0x1, 0xc7,0xff,0xe2,0x0, +0xcf,0xb2,0x2, 0x94,0xaf,0x82,0xe0,0x1, 0x1f,0xe9,0x8f,0x8f,0xe2,0x0, 0xcf,0x81, +0x1, 0x9, 0xa, 0x61,0xe0,0x1, 0x1f,0xe9,0xaf,0x2, 0x8f,0x8f,0xe2,0x0, 0xcf,0x81, +0x1, 0xf9,0xe0,0x0, 0x1f,0x86,0xaf,0xf, 0xa, 0x61,0x17,0xb2,0x0, 0xec,0x8c,0x2, +0xe0,0x0, 0x19,0x8e,0xe0,0x6, 0xd2,0xae,0xe0,0x0, 0x1f,0x93,0x8f,0x3, 0x8f,0x8f, +0xe0,0x0, 0x1e,0x9a,0x3f,0x7f,0xac,0xd, 0x1, 0x56,0x8e,0x82,0x17,0xb1,0xe1,0x2f, +0x3f,0xad,0x27,0xd1,0x2c,0x50,0xe0,0x1, 0x1f,0xe8,0x87,0x8f,0xe2,0x1, 0xc7,0xfd, +0x2f,0xca,0xe0,0x2, 0x1a,0x48,0x8f,0x84,0xe2,0x0, 0xcf,0x81,0x1, 0xc, 0x8f,0x84, +0xe2,0x0, 0xcf,0x81,0x1, 0x4, 0x8f,0x3, 0xe7,0xff,0x0, 0xbe,0xdd,0x11,0x8f,0x3, +0xe7,0xff,0x0, 0xba,0xde,0x14,0xde,0x7b,0x0, 0xf3,0xea,0x10,0x7f,0xfe,0xea,0x11, +0x7f,0x2, 0x97,0x8f,0x9e,0x8e,0xe4,0x8, 0x34,0x23,0xe0,0xe, 0x3f,0xad,0xe0,0x43, +0x3f,0x1e,0xe2,0x0, 0xcf,0x0, 0xe0,0x43,0x3e,0x9d,0x3f,0xad,0xe0,0x41,0x3f,0x4e, +0xe4,0x8, 0x34,0x40,0xe0,0x6f,0x3d,0x2e,0x3f,0xf8,0x2, 0x17,0xea,0x10,0x7f,0xfc, +0xea,0x11,0x7f,0x0, 0x97,0x8f,0x9e,0x8e,0xe0,0xe, 0x3f,0xad,0xe0,0x43,0x3f,0x1e, +0xe2,0x0, 0xcf,0x0, 0xe0,0x43,0x3e,0x9d,0x3f,0xad,0xe0,0x41,0x3f,0x4e,0xe0,0x6f, +0x3d,0x2e,0xe0,0x28,0x3c,0x2f,0x38,0x82,0x14,0x0, 0x38,0x82,0xea,0x10,0x7f,0xfa, +0x17,0x0, 0xaf,0xf, 0x38,0x82,0xea,0x11,0x7c,0x4, 0xe0,0x7d,0x0, 0xdb,0x0, 0x0, +0x8, 0xb6,0xea,0x10,0x79,0x7a,0xe0,0x2, 0x1f,0xdf,0x8e,0x82,0xe0,0x2, 0x1f,0x5e, +0x8e,0xf, 0x26,0x8f,0xea,0x11,0x79,0x84,0x9f,0x83,0x27,0x85,0x17,0x81,0xe1,0x2f, +0x3e,0x1f,0x27,0x96,0x14,0x0, 0x17,0x80,0xaf,0x82,0x17,0x80,0xb7,0x83,0xb, 0x61, +0xe0,0x2, 0x1f,0xdd,0xe2,0x0, 0xce,0x1, 0x8c,0xf, 0x1, 0x15,0xea,0x49,0x7f,0xb0, +0xe9,0xff,0xc7,0xff,0xe0,0xe, 0x36,0xa2,0x3f,0x9e,0xa7,0x8f,0x3f,0x82,0xe0,0x2, +0x1d,0xdd,0xe2,0x0, 0xce,0x1, 0xe0,0x0, 0x8c,0xb, 0xe0,0x1, 0x1, 0xa5,0xe2,0x0, +0xce,0x84,0x1, 0x61,0xe0,0x1, 0x1f,0xc1,0xe0,0x6, 0x9a,0x2e,0x8d,0x8f,0xe0,0x1, +0x1f,0xc0,0x35,0xa8,0x8f,0x8f,0x3f,0xcb,0x3a,0x7f,0xe0,0x1, 0x5, 0x91,0xe0,0x1, +0x1f,0xbf,0x8d,0x8f,0xe0,0x1, 0x1f,0xbe,0x35,0xa8,0x8f,0x8f,0x3f,0xcb,0x3a,0x7f, +0xe0,0x1, 0x3, 0x86,0xe0,0x1, 0x1f,0xbd,0xe0,0x6, 0x9a,0xbe,0x8d,0x8f,0xe0,0x1, +0x1f,0xbc,0x35,0xa8,0x8f,0x8f,0x3f,0xcb,0x3a,0xff,0xe0,0x0, 0x5, 0xf9,0xe0,0x1, +0x1f,0xbb,0x8f,0xf, 0xe0,0x1, 0x1f,0xba,0x37,0x28,0x8f,0x8f,0x3f,0xce,0x3a,0xff, +0xe0,0x0, 0x3, 0xee,0xe2,0x0, 0xce,0x84,0xe0,0x1, 0x2, 0x9d,0xea,0x49,0x7f,0xc4, +0xe9,0xff,0xc7,0xff,0x36,0xa2,0x3f,0x9d,0xa7,0x8f,0x3f,0x82,0x12,0x80,0x3a,0x65, +0x17,0x81,0xe0,0x2c,0x3e,0xf, 0xe0,0x0, 0x26,0x59,0xe0,0x0, 0x2c,0x57,0xea,0x10, +0x7f,0xfc,0xea,0x10,0x7f,0x7e,0xb2,0x8f,0xe0,0x1, 0x1f,0xb9,0xb2,0xe, 0xea,0x11, +0x79,0x84,0x8e,0x8f,0xe0,0x1, 0x1f,0xb8,0x8f,0xf, 0xe0,0x1, 0x1f,0xb7,0x37,0x28, +0x8b,0xf, 0xe0,0x1, 0x1f,0xb6,0x36,0xa8,0x8f,0x8f,0x3b,0x4d,0x3f,0xce,0x9f,0x3, +0xe0,0xf, 0x3b,0x2f,0x3f,0x7f,0xe7,0xfe,0x2, 0x7f,0xe0,0x1, 0x1f,0xb5,0x8c,0xf, +0xdf,0x2d,0xe7,0xfe,0x24,0x79,0xea,0x11,0x7f,0x80,0xea,0x11,0x7f,0x2, 0x14,0x0, +0xb2,0x8f,0x17,0x83,0xb2,0xe, 0xaf,0x82,0xb3,0x3, 0xb, 0x61,0xea,0x11,0x79,0x84, +0x14,0x24,0xe7,0xfe,0x0, 0xea,0x2e,0x14,0xe2,0x0, 0xce,0x81,0xe0,0x0, 0x1, 0x44, +0xe0,0x1, 0x1f,0xb4,0x3c,0x6c,0x8e,0x8f,0xe0,0x1, 0x1f,0xb3,0x36,0xa8,0x8f,0xf, +0xea,0x11,0x7f,0x84,0x3f,0x4d,0x16,0x84,0xae,0x82,0xb7,0xf, 0xb, 0x61,0x12,0x80, +0x3a,0x65,0xe0,0x1, 0x1e,0xb2,0xea,0x10,0x7f,0x7e,0xea,0x10,0x7f,0xfc,0x8c,0xd, +0xb2,0xe, 0xb2,0x8f,0xde,0xfb,0x24,0x3, 0x14,0x0, 0xb, 0x61,0xea,0x11,0x79,0x84, +0xe7,0xfe,0x0, 0xc2,0xe2,0x0, 0xce,0x84,0xe7,0xfe,0x5, 0xca,0xe7,0xfe,0x0, 0xbc, +0xe0,0x43,0x3a,0x14,0xe0,0x43,0x3a,0x95,0x0, 0xe5,0x2c,0x6f,0xea,0x11,0x7f,0x0, +0xea,0x11,0x7f,0x82,0xb2,0x8e,0xe0,0x1, 0x1f,0x39,0xb2,0xf, 0xea,0x11,0x7f,0x84, +0x8e,0x8e,0xe0,0x1, 0x1f,0x37,0x36,0xa8,0x8f,0xe, 0x3f,0x4d,0x16,0x81,0xae,0x82, +0xb7,0xf, 0xb, 0x61,0xe0,0x1, 0x1f,0xb9,0x3c,0x6c,0x8e,0x8f,0xe0,0x1, 0x1f,0xb7, +0x36,0xa8,0x8f,0xf, 0xea,0x11,0x7f,0x84,0x3f,0x4d,0x16,0x82,0xae,0x82,0xb7,0xf, +0xb, 0x61,0xea,0x11,0x79,0x84,0x14,0x0, 0xe7,0xfe,0x0, 0x8f,0x8, 0xb7,0xf8,0x0, +0xc, 0x3e,0xe2,0x0, 0xcc,0x1, 0x39,0x69,0xe0,0x0, 0x5, 0xd1,0x12,0xfe,0xf0,0x0, +0x1d,0xd0,0x3a,0x98,0xe0,0x0, 0x1f,0xcc,0xea,0x11,0x7a,0xc, 0xe2,0x1, 0xc2,0xff, +0xfa,0x11,0x7f,0x2c,0xc2,0x81,0xf0,0x0, 0x14,0x80,0xe8,0x0, 0x93,0x8b,0x93,0xf, +0x3a,0x94,0xf8,0x40,0x3e,0x69,0xf0,0x0, 0x14,0x1, 0x8c,0x4, 0xf0,0x80,0x8e,0x94, +0xe8,0x0, 0x8c,0x8e,0xf8,0x80,0x8d,0x1e,0xe8,0x8, 0x3c,0x2d,0xe8,0x9, 0x3c,0xaa, +0x34,0x24,0xe0,0x9, 0xd3,0x75,0x39,0xe8,0x8c,0x14,0xe8,0x0, 0x8c,0x9e,0xf0,0x8, +0x3e,0xa8,0xf0,0x9, 0x3d,0x29,0x34,0x24,0xe0,0x9, 0xd3,0x6a,0xe0,0xf, 0x39,0xa8, +0x16,0x85,0x3e,0x9f,0x17,0x1, 0x3f,0x12,0xe2,0x0, 0xce,0x8b,0xe2,0x1, 0xc7,0x7f, +0xe0,0x62,0x3b,0xae,0x3f,0xf7,0x39,0xef,0x5, 0x5, 0xe0,0x43,0x3b,0x9f,0xf8,0x40, +0x3e,0x68,0x3f,0xf6,0x3, 0x5, 0xe0,0x43,0x3b,0x13,0xf8,0x40,0x3c,0xe8,0x3a,0x75, +0x1, 0xcd,0xf0,0x0, 0x2e,0x8, 0xf0,0x0, 0x2c,0x89,0x3c,0x62,0xf8,0x0, 0xf, 0x28, +0xb, 0xe1,0xe8,0x0, 0xb3,0x8b,0x0, 0xf8,0xe0,0x0, 0x1f,0xcc,0xb3,0xf, 0x0, 0xf6, +0x8, 0xb7,0x12,0x0, 0x16,0xff,0xf0,0x0, 0x13,0x9f,0x3e,0x98,0xf0,0x17,0x3b,0x98, +0xc4,0xff,0x3d,0x64,0x3c,0x64,0x3d,0xe4,0xe0,0x40,0x3e,0x64,0xe0,0x80,0x8f,0x9d, +0xe0,0x80,0x8f,0x19,0xe0,0x3, 0x3f,0xbf,0xe0,0x5, 0x3f,0x3e,0xe0,0x2, 0x3f,0x3f, +0xf0,0x40,0x3b,0xfd,0x3e,0x1e,0x3d,0x9f,0x3c,0x15,0x3d,0x13,0x3a,0x12,0x1, 0xef, +0xe0,0x2, 0x36,0x5, 0xe4,0x0, 0xc4,0x64,0xe0,0x0, 0x12,0xe4,0x3a,0xba,0xe0,0x4, +0x14,0xb5,0xe0,0x6, 0x39,0x32,0xe0,0x3, 0x35,0x85,0xe0,0x9, 0xd3,0x11,0xe0,0x6, +0x3c,0x26,0xe0,0x4, 0x14,0xb5,0x3c,0x65,0xe0,0x9, 0xd3,0xa, 0xe0,0x7, 0x39,0xb3, +0x17,0x80,0xe0,0x2f,0x3b,0xf, 0xe0,0x7, 0x3c,0x27,0xe0,0x0, 0x14,0x64,0x2f,0x9d, +0xe0,0x25,0x3b,0x8f,0x2a,0x9a,0x3c,0x34,0xe0,0x4, 0x14,0xb5,0x39,0x33,0xe0,0x9, +0xd2,0xf7,0xe0,0x2, 0x3c,0x22,0xe0,0x0, 0x14,0x64,0x3c,0x32,0x3c,0xe6,0xe0,0x9, +0xd2,0xef,0x3c,0x32,0x3c,0xe7,0xe0,0x9, 0xd2,0xeb,0xe0,0x43,0x3f,0x98,0xe2,0x0, +0xcf,0x80,0x4, 0x6, 0xe0,0x43,0x3c,0x18,0xe2,0x1, 0xc4,0x7f,0xb, 0xe1,0x3c,0x65, +0x0, 0xfa,0x8, 0xb1,0xea,0x11,0x7f,0x87,0x8f,0x8f,0xe0,0xe, 0x34,0xa1,0xe0,0xd, +0x35,0x21,0x3f,0x18,0xc7,0xff,0x3c,0x1d,0x86,0x9e,0x3c,0xff,0x16,0x0, 0x38,0xed, +0x85,0x98,0xe0,0x61,0x39,0xac,0x3e,0x61,0x2d,0x88,0x3c,0xfa,0xb6,0x88,0x1, 0x2, +0xb5,0x8e,0x3c,0xff,0x1, 0xb, 0x8, 0xe1,0x3c,0xfa,0x1, 0x7c,0x3e,0x9b,0x36,0x81, +0xb6,0x88,0x3c,0xff,0x16,0x80,0xb6,0x8e,0x1, 0xf7,0xb6,0x8, 0x8, 0xe1,0x0, 0x0, +0x8, 0xb7,0xf8,0x0, 0xc, 0x3e,0xe1,0xff,0xc0,0xc, 0xea,0x11,0x7b,0xab,0xea,0x11, +0x7e,0xb, 0x16,0xa0,0x7e,0x6, 0xc4,0x7e,0xc4,0xfe,0x3e,0x97,0xe0,0x40,0x3f,0xec, +0xe0,0x80,0x97,0x18,0xe0,0x80,0xaf,0x17,0x3e,0xf7,0xe0,0x80,0x97,0x19,0xe0,0x80, +0xaf,0x1f,0x1, 0xf7,0xe0,0x2, 0x1f,0x86,0x8a,0xf, 0xe0,0x4, 0x22,0x5c,0xfa,0x11, +0x79,0xac,0xf8,0x40,0x3c,0x63,0xe0,0x2, 0x1f,0x29,0xf8,0x0, 0x8d,0x88,0x17,0x80, +0xf0,0x40,0x3d,0x6e,0x7f,0x9, 0xf0,0xc, 0x35,0xa4,0xe0,0x7, 0x17,0x68,0xf0,0x0, +0x16,0xd3,0xe8,0x40,0x39,0xea,0x7f,0x87,0xf0,0x40,0x3c,0xef,0x7e,0xb, 0xf0,0x1d, +0x3e,0x90,0x7f,0x88,0xf0,0x40,0x3e,0x6f,0x7f,0x8a,0x13,0x20,0xe0,0x0, 0x7f,0xc, +0xf0,0x40,0x3d,0x67,0xe0,0x0, 0x15,0x44,0x3c,0xe3,0xe2,0x0, 0x7c,0x34,0xe0,0x9, +0xd2,0xd1,0xe0,0x0, 0x1f,0xcc,0xe0,0xff,0x16,0x7f,0xe0,0x0, 0x1f,0x50,0xb6,0xf, +0x16,0x33,0x17,0x80,0x15,0x0, 0x3e,0x10,0xb7,0x8e,0xe8,0x40,0x3d,0xe8,0xe8,0x40, +0x3c,0x6d,0x64,0x86,0xf8,0x40,0x3b,0x68,0xe8,0x40,0x3e,0xeb,0xe8,0x40,0x3a,0xec, +0xe8,0x40,0x39,0x6c,0xe8,0x40,0x3b,0xec,0xf8,0x40,0x3f,0x6c,0x0, 0x83,0xe8,0x80, +0x8e,0x96,0xf0,0x80,0x8b,0x9c,0xe3,0xff,0xc6,0xff,0xf0,0xe, 0x3b,0xad,0xe0,0x43, +0x3f,0x9e,0xe8,0xd, 0x3e,0xa7,0xe2,0x0, 0xcf,0x80,0xe0,0x43,0x3e,0x9d,0xe0,0x6f, +0x3d,0x2d,0xf0,0x80,0x8b,0x98,0xe0,0x80,0x8e,0x99,0xe8,0x40,0x3f,0xfe,0xf0,0xe, +0x3b,0xad,0xe0,0x7e,0x3b,0x2f,0xe2,0x0, 0xcf,0x0, 0xe8,0xd, 0x3e,0xa7,0xe0,0x6e, +0x3d,0x2d,0xf0,0x40,0x3b,0xee,0xf3,0xff,0xc3,0xff,0xe3,0xff,0xc7,0xff,0xe8,0xd, +0x3f,0x97,0x3f,0x77,0xe8,0x5, 0x3a,0x97,0xf0,0x43,0x3b,0x9d,0xe0,0x67,0x3b,0x2e, +0xf0,0x40,0x3b,0xfa,0x3f,0x92,0xe0,0x43,0x39,0x1f,0xe0,0x43,0x3a,0x95,0x3, 0x2, +0x3e,0xea,0xf0,0x40,0x3e,0xfc,0xe0,0x43,0x3d,0x1d,0x1, 0xc2,0xe8,0x40,0x3e,0x6b, +0x17,0x0, 0xe0,0x0, 0x16,0xff,0x0, 0x83,0xe0,0x80,0x8e,0x1b,0xe4,0xf, 0x36,0x28, +0xf0,0x40,0x3b,0xed,0xe4,0x8, 0x37,0xc8,0xf2,0x1, 0xc3,0xff,0xf0,0x40,0x3b,0xf8, +0x3c,0xee,0xe2,0x1, 0xc4,0xff,0x3f,0xe8,0x5, 0x82,0x3e,0xec,0x3c,0xff,0xe2,0x1, +0xc6,0xff,0x3, 0x82,0x3f,0x6c,0xf0,0x40,0x3d,0x7b,0xe2,0x1, 0xc7,0x7f,0x1, 0xe5, +0xf0,0x2f,0x3f,0x16,0xe0,0x1, 0x27,0xdc,0xe0,0x2f,0x3b,0x96,0xe0,0x1, 0x27,0xd8, +0xf0,0x0, 0xc4,0x81,0xf2,0x1, 0xc4,0xff,0xf0,0x40,0x3c,0xf4,0xe0,0x0, 0xc1,0xc4, +0xe7,0xfe,0x1, 0xea,0xe0,0x9, 0x3f,0x2d,0x64,0xb, 0xe2,0x1, 0xc4,0xff,0xe0,0x9, +0xd1,0xd7,0x67,0x88,0x3a,0x68,0xc7,0xff,0x3f,0x6f,0xe2,0x1, 0xc7,0x7f,0xe0,0x1, +0x17,0xfd,0xe1,0x2f,0x3f,0xae,0xe2,0x1, 0xc2,0x7f,0xe0,0x2, 0x27,0xc9,0x66,0xa, +0xe0,0x0, 0x17,0xc5,0xe1,0x2f,0x3e,0x1f,0xe0,0x2, 0x27,0xc2,0x67,0x87,0xeb,0xc8, +0x79,0x78,0xea,0x11,0x79,0x88,0x67,0x8, 0xc7,0x81,0xf0,0x0, 0x66,0x7, 0xaf,0x82, +0xaf,0x3, 0xe0,0x0, 0x17,0xc4,0xe8,0xf, 0x3f,0xbc,0x67,0x9, 0x3f,0x1f,0xe0,0x8, +0x87,0x2e,0xc7,0x4f,0xe2,0x1, 0xc7,0x7f,0xe2,0x0, 0xcf,0x1, 0xe0,0x2, 0x5, 0x9c, +0x67,0x8, 0xe2,0x0, 0xcf,0x31,0xe0,0x2, 0x1, 0x0, 0x67,0x8, 0xe2,0x0, 0xcf,0x50, +0xe0,0x2, 0x1, 0x58,0x67,0x88,0xe2,0x0, 0xcf,0xb3,0xe0,0x1, 0x1, 0x84,0xe2,0x0, +0xca,0x8, 0xe0,0x0, 0x2, 0xfb,0x14,0x80,0x14,0x1e,0xdd,0xf1,0xe0,0x0, 0x1f,0xcc, +0x97,0x8f,0xe3,0xff,0xcf,0xca,0xe0,0x2, 0x3, 0x55,0xf0,0x2, 0x1a,0xad,0xf0,0x2, +0x1a,0x3, 0xf0,0x2, 0x19,0x35,0xf0,0x0, 0x18,0xa5,0xea,0x11,0x7d,0x2c,0x12,0x0, +0x17,0x80,0xea,0x11,0x7c,0x8c,0xf0,0x0, 0x13,0x9d,0xe8,0x0, 0xb7,0x85,0xe8,0x0, +0xb7,0x84,0xf0,0x17,0x3b,0x9a,0xe8,0x0, 0xb7,0x82,0x3a,0xe4,0xe8,0x0, 0xb7,0x81, +0xf0,0x40,0x39,0xe4,0x3c,0x64,0xf0,0x40,0x3b,0x64,0x3b,0x64,0xf0,0x40,0x3c,0x64, +0xf0,0x40,0x38,0x64,0x3e,0xe4,0x13,0x81,0x0, 0x90,0xe2,0x0, 0xcd,0x80,0xe0,0x43, +0x3a,0x9e,0x3a,0x67,0xe0,0xe, 0x3f,0x96,0x4, 0x28,0xe0,0x43,0x3b,0x1e,0xf0,0x40, +0x3b,0x67,0xf0,0x40,0x3b,0xfa,0x1, 0x29,0x8d,0x8a,0x8f,0x1a,0x8f,0x99,0xf0,0x0, +0x8c,0x89,0x3f,0x2b,0x3e,0x6e,0xe8,0xf, 0x3f,0xa9,0xe2,0x0, 0xcf,0x0, 0xe3,0xff, +0xc7,0xff,0xe3,0xff,0xc6,0x7f,0xc5,0x1, 0xe0,0x43,0x3d,0x9f,0xc4,0x81,0xe0,0xe, +0x3e,0x15,0x3, 0x5c,0xe2,0x0, 0xcd,0x80,0x3e,0x18,0xe0,0x43,0x3c,0x1c,0xf0,0x40, +0x39,0xe7,0xe0,0xe, 0x3f,0x96,0x3, 0x5a,0x3f,0x9d,0xe0,0x43,0x3e,0x9f,0xf0,0x40, +0x38,0x6d,0xf0,0x40,0x3c,0x67,0x0, 0xd6,0xf0,0x2, 0x2c,0x11,0xf0,0x0, 0x23,0x4, +0xe8,0x0, 0xb3,0x2, 0xf0,0x0, 0x21,0x84,0xe8,0x0, 0xb4,0x4, 0x22,0x3, 0xe8,0x0, +0xb2,0x85,0xe3,0xff,0xce,0xe3,0x4, 0x6, 0xe0,0x0, 0x17,0xfc,0xaf,0x82,0x17,0x80, +0xaf,0x83,0xe0,0x0, 0xc0,0x74,0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0x16,0x30,0xf0,0x2f, +0x3f,0x1c,0xe7,0xfe,0x2f,0xa7,0xe0,0x2f,0x3b,0x9c,0xe7,0xfe,0x2f,0xa3,0xe2,0x6, +0xc9,0x0, 0xe7,0xfe,0x2, 0x1f,0xeb,0xc8,0x7f,0xf9,0x8f,0x8f,0x16,0xc, 0x3e,0x3f, +0x3a,0xfc,0xe7,0xfe,0x2, 0x17,0xe8,0x40,0x3c,0xe8,0xe2,0x0, 0x7c,0x34,0x7e,0x82, +0x7f,0x1, 0x7d,0x3, 0x7f,0x84,0xdd,0xb5,0xea,0x11,0x7c,0x8c,0x3d,0xe8,0xe2,0x0, +0x7c,0x54,0x7d,0x85,0xdd,0xae,0x16,0x3b,0xe1,0x29,0x3e,0x28,0x65,0x85,0x66,0x82, +0x67,0x1, 0xe7,0xfd,0x2c,0xff,0xe1,0x2c,0x3e,0x2b,0xe7,0xfd,0x2e,0x7b,0xe0,0x16, +0x3d,0xbb,0xe0,0xc, 0x3c,0x38,0xe0,0x9, 0x3d,0x98,0xf0,0x8, 0x3b,0x1c,0xe0,0x9, +0xd1,0x1a,0x3d,0xe8,0xe2,0x1, 0xc5,0xff,0xe2,0x0, 0xcd,0xd9,0x65,0x3, 0x66,0x82, +0x67,0x1, 0x67,0x84,0xe0,0x0, 0x5, 0xd9,0xe0,0x0, 0x16,0x64,0xf0,0xf, 0x3f,0x17, +0x3e,0x2b,0x36,0x21,0x3f,0x9a,0x3f,0x9c,0x66,0xc, 0xe0,0x43,0x3f,0x9f,0x3f,0xfc, +0x3, 0x8, 0xe0,0x0, 0x4e,0x76,0x7f,0x8c,0x7e,0x8, 0x7d,0x8a,0xf0,0x0, 0x7c,0x87, +0xe0,0x0, 0x17,0xc5,0x66,0xa, 0xe1,0x2f,0x3e,0x1f,0xe7,0xfd,0x27,0xcb,0x66,0x8, +0xe0,0x1, 0x17,0xff,0xe0,0x2f,0x3e,0xf, 0xe7,0xfd,0x27,0xc4,0x17,0x80,0x7f,0x88, +0x7f,0x8a,0xe7,0xfd,0x0, 0xbf,0x66,0x9, 0x3f,0x9c,0xe0,0x8, 0x8f,0xf, 0xe2,0x0, +0xcf,0x5, 0xe7,0xff,0x1, 0x88,0xe0,0x8, 0x8f,0x9f,0xe2,0x1, 0xcf,0xb3,0xe7,0xff, +0x1, 0x82,0x14,0x80,0x14,0xa, 0xdc,0xf3,0xe2,0x0, 0xcc,0x2, 0xe7,0xfe,0x2, 0xfb, +0xe7,0xfe,0x0, 0xf4,0xea,0x11,0x7f,0x6, 0x87,0xe, 0xe2,0x0, 0xcf,0x2, 0xe7,0xfd, +0x5, 0x61,0xe0,0x0, 0x17,0x7c,0xaf,0x2, 0xe7,0xfd,0x0, 0xdc,0xf0,0x0, 0x66,0x7, +0xea,0x11,0x79,0x88,0xeb,0xc8,0x79,0x78,0x8e,0x3, 0xe0,0x0, 0x17,0xfc,0x7e,0x8, +0xaf,0x82,0xe7,0xfd,0x0, 0xc0,0xf2,0x0, 0xcf,0x1f,0xe7,0xff,0x2, 0x3b,0xe0,0xc, +0x37,0x81,0x3b,0xfc,0xe7,0xff,0x3, 0x36,0xf2,0x0, 0xcf,0xf, 0x5, 0x6, 0xe0,0xc, +0x37,0x82,0x3b,0xfc,0xe7,0xff,0x3, 0x2e,0xe2,0x1, 0xc9,0x7f,0x2, 0x39,0x14,0x86, +0xe0,0x8, 0x37,0xa5,0x7d,0x3, 0x7d,0x85,0x7e,0x82,0x7f,0x1, 0xe0,0x9, 0xd0,0x58, +0xe0,0x28,0x3c,0x15,0x65,0x3, 0x65,0x85,0x66,0x82,0x67,0x1, 0xe7,0xff,0x24,0x1a, +0xe0,0x0, 0x17,0xc5,0xe1,0x2f,0x3d,0x9f,0xe7,0xff,0x27,0x94,0xe7,0xfe,0x0, 0xfe, +0x14,0x80,0x14,0xa, 0xdc,0xa4,0xe2,0x0, 0xcc,0x6, 0xe7,0xfe,0x2, 0xac,0xe7,0xfe, +0x0, 0xa5,0xe0,0x2, 0x1f,0xa9,0xf0,0x40,0x3e,0x64,0x7f,0x89,0xe7,0xff,0x0, 0xba, +0xe0,0x0, 0x1e,0xd0,0xe4,0xe, 0x37,0x8f,0xe2,0xf, 0x3f,0x4f,0x96,0x8d,0x3f,0xae, +0x3f,0x9d,0xe2,0x1, 0xcf,0x95,0xe7,0xfd,0x2, 0x22,0xe7,0xfe,0x0, 0x8f,0xe0,0xc, +0x37,0xa2,0xe0,0x2c,0x3a,0xac,0xe7,0xfe,0x2e,0x6d,0xe0,0x2, 0x16,0x54,0xe0,0x22, +0x39,0x1c,0xe7,0xfe,0x29,0x67,0xe7,0xff,0x0, 0xbc,0xf8,0x0, 0xb0,0x1, 0xe7,0xfd, +0x0, 0xef,0x0, 0x0, 0x8, 0xb7,0xf8,0x0, 0xc, 0x3e,0xe1,0xf4,0xc0,0x58,0xea,0x11, +0x79,0x87,0x3a,0x6a,0xeb,0xc8,0x79,0x78,0xe2,0x1, 0xc2,0x7f,0x17,0xff,0xaa,0x3, +0xaf,0x82,0xe0,0x0, 0x25,0x65,0x16,0x7f,0x3e,0x1a,0xe3,0xff,0xc6,0x7f,0xc6,0x1, +0x36,0x22,0xe0,0x3, 0x17,0x6a,0xe0,0x7, 0x17,0xca,0x3f,0x10,0x3f,0x90,0x3e,0x18, +0x96,0x88,0xc4,0x4, 0xe0,0x80,0xb6,0x9e,0x3e,0x78,0xe0,0x40,0x96,0x98,0xe0,0x80, +0xb6,0x9f,0x1, 0xf7,0xe2,0x0, 0xca,0x4, 0xe0,0x0, 0x5, 0xca,0xf0,0x1, 0x94,0x69, +0xf0,0x1, 0x94,0xf9,0xf8,0x40,0x3c,0x79,0xe0,0x0, 0x4, 0x57,0xe8,0x40,0x3c,0xe9, +0xf0,0x2, 0x24,0xaf,0xe8,0x40,0x3c,0x68,0xe0,0x8, 0xdf,0xda,0xeb,0xc8,0x7b,0x79, +0xe0,0x0, 0x17,0xc0,0xe0,0x43,0x3a,0x88,0xaf,0x86,0xea,0x11,0x7f,0x86,0xe2,0x0, +0xca,0x84,0xaa,0x8f,0xe0,0x0, 0x5, 0x60,0xe0,0x0, 0x17,0xfd,0xaf,0x82,0x14,0x87, +0xe0,0x1, 0x1f,0xb1,0xe0,0x1, 0x1f,0x30,0x8f,0x8f,0x8c,0xe, 0x37,0xa8,0x3c,0x4f, +0x34,0x21,0xe0,0x8, 0xdf,0xbd,0xe8,0x40,0x3c,0x78,0xe0,0x2, 0x5, 0x2, 0xe0,0x1, +0x1f,0xaf,0xe0,0x1, 0x1f,0x2e,0x8f,0x8f,0x8c,0xe, 0x37,0xa8,0x14,0x86,0x3c,0x4f, +0xe0,0x8, 0xdf,0xf1,0xe3,0xff,0xc4,0x7f,0xf0,0x40,0x3c,0xf8,0xe0,0x1, 0x3, 0x71, +0xe0,0x0, 0x17,0xfd,0xaf,0x82,0xe0,0x0, 0x16,0xfd,0x0, 0x86,0xe0,0x0, 0x17,0xff, +0xaf,0x82,0xe0,0x0, 0x16,0xff,0xe0,0x2, 0x1f,0x86,0x17,0x0, 0x87,0x8f,0xaf,0x3, +0x3f,0xfd,0x14,0x0, 0x4, 0x4, 0xea,0x11,0x7f,0x88,0x8c,0xf, 0xe0,0xb, 0xc0,0x28, +0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0xf0,0x7, 0x34,0x21,0xf0,0x1, 0x24,0x5f,0xe8,0x40, +0x3c,0xe8,0xe8,0x40,0x3c,0x69,0xe0,0x8, 0xdf,0x83,0xf0,0x40,0x3c,0xf7,0xe0,0x43, +0x3a,0x88,0xeb,0xc8,0x7b,0x79,0xe0,0x1, 0x3, 0x47,0x3c,0xe7,0xf0,0x8, 0x34,0xa7, +0xe0,0x8, 0xdf,0xb9,0xea,0x11,0x7f,0x86,0xe2,0x0, 0xca,0x84,0xac,0x6, 0xaa,0x8f, +0xe7,0xff,0x2, 0x24,0xe0,0x3, 0x1f,0x88,0xf0,0x0, 0x15,0x1, 0xe0,0x1, 0x9f,0x6f, +0xe0,0x1, 0x9e,0xff,0xe2,0x0, 0xcf,0x0, 0xf8,0x40,0x3d,0xea,0xe0,0x7b,0x39,0xae, +0x8b,0x6, 0xe0,0x3, 0x12,0xec,0xe2,0x0, 0xce,0x80,0xf0,0x7, 0x16,0xcc,0xe0,0x1, +0x9f,0xf, 0x3a,0x90,0xf0,0x1d,0x3e,0x90,0xf0,0x0, 0x9e,0x7f,0x7b,0x2, 0xe0,0x7a, +0x39,0xad,0x7f,0x1, 0xe8,0x40,0x3b,0xed,0x3b,0x65,0xf0,0x0, 0x17,0x0, 0x67,0x81, +0x94,0x6, 0xe8,0x40,0x3c,0xeb,0x3c,0x2f,0x34,0x26,0xe0,0x8, 0xdf,0x84,0x97,0x87, +0xe1,0x80,0xb4,0x16,0xe8,0xf, 0x3f,0xac,0x64,0x2, 0xe8,0x40,0x3c,0xea,0x3c,0x3f, +0xe0,0x8, 0xdf,0x79,0x15,0x1, 0xe8,0xa, 0x3d,0x1e,0xf0,0x40,0x3f,0x6a,0xf2,0x1, +0xc7,0x7f,0xe8,0x40,0x3a,0x7e,0xe1,0x80,0xb4,0x17,0x1, 0xe2,0xe0,0x3, 0x53,0x66, +0xe0,0x3, 0x4b,0xed,0xf0,0x0, 0x11,0x8c,0xf0,0x1, 0x12,0x7c,0x12,0x1, 0xf0,0x13, +0x39,0x90,0xf0,0x14,0x3a,0x10,0xe2,0x1, 0xc3,0x7f,0xe8,0x0, 0xab,0x83,0xf8,0x40, +0x3b,0x6d,0xe8,0x0, 0xab,0x4, 0xf0,0x40,0x3b,0xe5,0x3c,0x64,0xf0,0x40,0x3a,0xe4, +0xf0,0x0, 0x11,0x7, 0xf0,0x0, 0x10,0x83,0x0, 0x8b,0xe8,0x2f,0x3d,0x95,0x2f,0xaf, +0xc4,0x1, 0xe2,0x1, 0xc4,0x7f,0xe8,0x40,0x3c,0x7e,0xe0,0x1, 0x1, 0x23,0xe8,0x80, +0x94,0x97,0xf8,0x80,0x90,0x16,0xe2,0x1, 0xc4,0xff,0xe0,0xd, 0x3c,0xa7,0xe2,0x1, +0xc6,0xff,0xf2,0x1, 0xc0,0x7f,0xe0,0x43,0x3e,0xd, 0xf0,0xf, 0x38,0x26,0xe2,0x0, +0xce,0x0, 0xe2,0x1, 0xc7,0xff,0xe0,0x41,0x3e,0xcd,0xe0,0x43,0x3d,0x8f,0xe0,0x43, +0x3e,0x8d,0xe0,0x6c,0x3c,0x2d,0xe0,0x41,0x3f,0xcf,0xe2,0x0, 0xcd,0x80,0xe0,0x43, +0x3f,0x8f,0xe8,0x2d,0x3e,0x15,0xe0,0x6b,0x3c,0x2f,0x26,0xd0,0xe2,0x1, 0xca,0x6c, +0xe0,0x1, 0x2, 0xc5,0xe8,0x2f,0x3e,0x12,0x2f,0xad,0xe8,0x2f,0x3d,0x92,0x2f,0xaa, +0xe8,0x2c,0x3e,0x11,0xe0,0x0, 0x2e,0x5d,0xe8,0x2b,0x3d,0x91,0xe0,0x0, 0x2d,0xd9, +0xf0,0xd, 0x39,0x94,0xf0,0xf, 0x3a,0x14,0xc2,0x1, 0xac,0x8d,0xe2,0x1, 0xc2,0x7f, +0xf0,0x0, 0xa8,0xf, 0xe8,0x40,0x3b,0x60,0x3b,0xe9,0xe7,0xff,0x0, 0xb3,0x86,0x82, +0xe7,0xfe,0x0, 0x9b,0xe7,0xff,0x17,0x80,0xaf,0x86,0xe7,0xfd,0x0, 0xe0,0x14,0x81, +0xf0,0x40,0x3c,0xe9,0xe7,0xfd,0x0, 0xd0,0x13,0x82,0xf0,0x0, 0x14,0x1, 0xe7,0xfe, +0x0, 0xa0,0x17,0x81,0x3f,0x94,0xe0,0xb, 0x3b,0x99,0xe8,0xc, 0x3b,0x10,0xe2,0x1, +0xc7,0xff,0x35,0x81,0x36,0x1, 0x16,0xff,0xf0,0x1b,0x39,0x9f,0xf0,0x1a,0x3a,0x1f, +0x3e,0x9f,0x3b,0x9b,0x3b,0x1c,0xe8,0x0, 0xad,0x8b,0xf0,0x1c,0x39,0x9d,0xe8,0x0, +0xae,0xa, 0xe0,0xb, 0x33,0x81,0xe8,0xd, 0x3e,0x94,0xe0,0xc, 0x33,0x1, 0xe8,0x0, +0xad,0x8c,0xc7,0x81,0xae,0xd, 0xf0,0xb, 0x39,0x9f,0xe8,0x0, 0x8e,0xb, 0xe8,0x0, +0x8e,0x8a,0x3e,0x19,0xe8,0xd, 0x3e,0x90,0x36,0x1, 0xe8,0xf, 0x3f,0x94,0x36,0x81, +0xc2,0x3, 0xae,0xb, 0xe2,0x1, 0xc2,0x7f,0xae,0x8f,0xe7,0xff,0x0, 0xab,0xe0,0xd, +0x3b,0x99,0xe8,0xf, 0x3b,0x10,0xf0,0xb, 0x39,0x94,0xf0,0xc, 0x3a,0x14,0x36,0x81, +0x37,0x81,0xc2,0x1, 0xae,0x8b,0xe2,0x1, 0xc2,0x7f,0xaf,0x8c,0xe7,0xff,0x0, 0x9a, +0xe2,0x0, 0xca,0x1, 0xaa,0x3, 0x1, 0x1a,0x15,0x7e,0x3d,0x14,0xe2,0x1, 0xc5,0x7f, +0x17,0x8c,0x3f,0x90,0xc5,0x1, 0xe0,0x1, 0x16,0xfc,0x3e,0x90,0xe0,0xa, 0x3d,0x1f, +0xe0,0x80,0x8d,0x9f,0xe0,0x80,0x8e,0x1d,0x3f,0xfa,0xe0,0x80,0xb5,0x95,0xe8,0x80, +0xb6,0x1d,0x1, 0xf7,0xe2,0x0, 0xca,0x1f,0x2, 0x86,0xe0,0x0, 0x17,0xfe,0xaf,0x82, +0xe7,0xfc,0x0, 0xf7,0x12,0x82,0xf0,0x40,0x3d,0x65,0x3c,0xe4,0xe0,0x8, 0x32,0xa5, +0xe0,0x8, 0xde,0x79,0xe2,0x0, 0xcc,0x2, 0xe8,0x40,0x3b,0x6a,0xe0,0x66,0x3b,0xa8, +0x13,0xff,0x3b,0x95,0xc3,0x7f,0xe2,0x1, 0xc3,0xff,0xe2,0x1, 0xc3,0x7f,0x3c,0xe7, +0x3d,0x66,0xe2,0x3, 0x7c,0x6c,0xdb,0x46,0x3d,0x66,0x3c,0xe7,0xe2,0x7, 0x7c,0x4c, +0xc2,0x81,0xdb,0x40,0xe2,0x1, 0xc2,0xff,0x3a,0xf4,0x5, 0xe0,0xe2,0x7, 0x7c,0xcc, +0xe2,0x3, 0x7c,0x6c,0xdb,0x5e,0xe7,0xfc,0x0, 0xcc,0xaa,0x3, 0xe7,0xff,0x0, 0xb6, +0xf0,0x2, 0x1b,0x36,0xe8,0x0, 0x8d,0x6, 0xe2,0x1, 0xcd,0x6f,0x2, 0x90,0xf0,0x2, +0x1b,0xae,0xe0,0xf, 0x35,0x22,0xc5,0x1, 0xf0,0x17,0x3b,0x9f,0xe2,0x1, 0xc5,0x7f, +0xe8,0x0, 0xb4,0x7, 0xe8,0x0, 0xb4,0x97,0xe8,0x0, 0xad,0x6, 0xe0,0x3, 0x1f,0x88, +0xe0,0x1, 0x9f,0xf, 0x3f,0x78,0xe0,0x1, 0x5, 0xa5,0xe0,0x1, 0xb4,0xf, 0xe0,0x1, +0xb4,0x9f,0x9f,0x7f,0x3f,0x79,0xe0,0x1, 0x5, 0x83,0xb4,0xff,0xb4,0x6f,0xe2,0x0, +0xcd,0xa, 0xe0,0x1, 0x1, 0xa, 0xe2,0x0, 0xcd,0x14,0xe0,0x1, 0x1, 0x1b,0xe2,0x1, +0xcd,0x6f,0xe0,0x1, 0x5, 0xa7,0x8, 0xb1,0xf0,0x0, 0x19,0x8f,0xf0,0x2, 0x1b,0xae, +0xe8,0x0, 0x8c,0x83,0xf0,0x0, 0x12,0x80,0xf0,0x0, 0x12,0x1, 0xe8,0x40,0x3c,0x67, +0xe2,0x0, 0xcc,0x9f,0x2, 0x86,0xc4,0x81,0xe2,0x1, 0xc4,0xff,0xf8,0x40,0x3a,0xe4, +0x17,0xfe,0x3f,0x9a,0xe2,0x1, 0xc7,0xff,0xc7,0x81,0x37,0xa2,0xe8,0x0, 0x98,0x87, +0xf8,0x0, 0x99,0x17,0xe0,0x2, 0x1e,0xae,0xe0,0x10,0x3c,0x1f,0xf0,0x40,0x3b,0xe8, +0x15,0x0, 0x0, 0xad,0xe8,0xe, 0x3f,0x22,0xe3,0xff,0xc7,0x7f,0xe0,0x43,0x3e,0x1e, +0xe2,0x0, 0xce,0x0, 0xe2,0x1, 0xc7,0xff,0x5, 0x30,0xe2,0x1, 0xc7,0x7f,0xf0,0x40, +0x38,0xef,0x3e,0x6e,0xf2,0x1, 0xc0,0xff,0xe2,0x1, 0xc6,0x7f,0xf0,0x40,0x38,0xfc, +0x3, 0x82,0x3f,0xee,0xe2,0x1, 0xc7,0xff,0x3f,0xf9,0x4, 0x8d,0xc5,0x1, 0xe2,0x1, +0xc5,0x7f,0xf0,0x0, 0x99,0x3d,0xe0,0xf, 0x35,0x22,0x3f,0x98,0xb5,0x8f,0x38,0xeb, +0xf0,0x0, 0xb1,0x1f,0xc6,0x84,0xe8,0x40,0x3e,0xf0,0x1, 0x12,0x9d,0xad,0x9f,0x3d, +0xe0,0xf, 0x3d,0xa1,0xe3,0xff,0xc7,0xff,0xe0,0x43,0x3e,0x1f,0xe2,0x0, 0xce,0x0, +0x2, 0x4a,0xe0,0x41,0x3f,0xcf,0x0, 0xc7,0xe0,0x41,0x3f,0x4e,0x0, 0xcf,0xe2,0x0, +0xcc,0x9f,0xc5,0x1, 0xe2,0x1, 0xc5,0x7f,0x2, 0x85,0xe2,0x1, 0xcd,0x6b,0xe7,0xff, +0x2, 0xa1,0xf0,0x0, 0x2a,0xb4,0xe8,0x0, 0xad,0x6, 0x8, 0xe1,0xe0,0x1, 0x9f,0x3f, +0x3f,0x79,0xe7,0xfe,0x3, 0xfe,0xe2,0x0, 0xcd,0xa, 0xe0,0x1, 0xb4,0xbf,0xe0,0x1, +0xb4,0x2f,0xe7,0xfe,0x1, 0xfa,0x96,0xcf,0xe0,0x1, 0x95,0x8f,0xe0,0x1, 0x97,0x3f, +0x96,0x7f,0x3e,0xab,0x3f,0x2c,0xe0,0x2, 0xb6,0x8f,0xe0,0x2, 0xb7,0x1f,0x38,0x82, +0x9f,0x4f,0x3f,0x78,0xe7,0xfe,0x3, 0xdf,0xb4,0x4f,0xb4,0xdf,0xe7,0xfe,0x0, 0xdb, +0x96,0xcf,0xe0,0x1, 0x95,0x8f,0xe0,0x1, 0x97,0x3f,0x96,0x7f,0x3e,0xab,0x3f,0x2c, +0xe0,0x2, 0xb6,0xaf,0xe0,0x2, 0xb7,0x3f,0x38,0x82,0xe8,0x0, 0xac,0x83,0x0, 0xcc, +0x38,0x82,0xe0,0x1, 0x1c,0x5b,0xe0,0x6e,0x0, 0xe5,0x0, 0x0, 0x17,0xe0,0x3f,0x98, +0xe2,0x0, 0xcf,0x83,0x5, 0x96,0x24,0x14,0xe0,0x2, 0x1e,0xb6,0x16,0x6, 0xe0,0x3, +0x1f,0x88,0xe0,0x2, 0x1f,0x2e,0xe0,0x3, 0x1d,0x87,0xae,0xd, 0xc7,0x84,0x96,0xf, +0x96,0x9f,0xb6,0xe, 0x3f,0xfb,0xc7,0x4, 0xe0,0x40,0xb6,0x9e,0x1, 0xf8,0x38,0x82, +0xe0,0x3, 0x1f,0x8, 0xe0,0x2, 0x1f,0xae,0x95,0xae,0x96,0x3e,0xe0,0x1, 0x96,0xce, +0xe0,0x2, 0x1d,0x36,0xe0,0x1, 0x97,0x5e,0x14,0x82,0xac,0x8a,0xb5,0x8f,0xb6,0x1f, +0xb6,0xaf,0xb7,0x3f,0x38,0x82,0x0, 0x0, 0x8, 0xb7,0xf8,0x0, 0xc, 0x39,0xe0,0x2, +0x1f,0xdf,0xe0,0x2, 0x1f,0x5d,0x8f,0x8f,0x8e,0xe, 0xe2,0x0, 0xcf,0x81,0xe0,0x0, +0x5, 0xfa,0xe0,0x1, 0x1f,0x5b,0x9e,0x8e,0xe0,0x0, 0x26,0xe6,0xe0,0x3, 0x19,0x8, +0x8d,0x82,0x2f,0x95,0x16,0x81,0xe0,0x2d,0x3e,0xd, 0x26,0x91,0x9f,0x8e,0xe2,0x0, +0xcd,0x83,0xb7,0x92,0xe0,0x1, 0x1, 0x61,0xe0,0x2, 0x1f,0xc0,0x17,0x7e,0xe0,0xa, +0xaf,0x3f,0x17,0x80,0xaf,0x82,0xf8,0x0, 0xc, 0xa8,0xb, 0xe1,0xe0,0x2, 0x1f,0x5e, +0xe0,0xd, 0x8e,0x8e,0xe2,0x0, 0xce,0x81,0x1, 0x70,0xe0,0x6, 0x9a,0xae,0xe0,0x6, +0x9a,0x3e,0xe0,0x0, 0x25,0xfb,0xe2,0x0, 0xcd,0x81,0xe0,0x1, 0x1, 0x55,0xea,0x11, +0x7b,0x50,0xea,0x11,0x7b,0xce,0x97,0x86,0x94,0x87,0xe2,0x0, 0xcd,0x83,0xe0,0xf, +0x3a,0xaf,0xe0,0x9, 0x3a,0x29,0xe3,0xff,0xc7,0xff,0xe3,0xff,0xc4,0xff,0xe0,0x2, +0x1, 0x14,0xe0,0x43,0x3e,0x9f,0xe0,0x43,0x3f,0x19,0xe2,0x1, 0xc7,0xff,0xe2,0x1, +0xc4,0xff,0xe2,0x0, 0xce,0x80,0xf0,0x0, 0x1c,0xf, 0xe0,0x1, 0x5, 0x20,0xe2,0x0, +0xcf,0x0, 0xe0,0x1, 0x5, 0x2b,0x3e,0xef,0x3f,0x69,0xe2,0x1, 0xc6,0xff,0xe2,0x1, +0xc7,0x7f,0x3e,0xfe,0x3, 0x82,0x3f,0xe9,0xe8,0x0, 0x8f,0x8, 0xe2,0x1, 0xc7,0xff, +0x3f,0x7f,0xe7,0xff,0x3, 0xba,0x3c,0xe4,0x3c,0x65,0xde,0x83,0xb2,0x86,0xb2,0x7, +0xe7,0xff,0x0, 0xb3,0xe0,0x2, 0x1f,0x87,0x17,0x1, 0xaf,0xf, 0x17,0x7e,0xe0,0x2, +0x1f,0xc0,0xe0,0xa, 0xaf,0x3f,0xe0,0x3, 0x1f,0x88,0xae,0x8f,0xf8,0x0, 0xc, 0xa8, +0xb, 0xe1,0xe0,0x0, 0x1f,0xd, 0xe0,0x1a,0x9f,0x5e,0xe2,0x0, 0xcf,0x1e,0xe7,0xff, +0x2, 0x82,0xe0,0x3, 0x19,0x8, 0x8d,0x82,0xe0,0x1, 0x25,0xdd,0xe0,0x1, 0x1f,0x5b, +0x9e,0x8e,0xe7,0xff,0x2e,0x80,0xe0,0x2, 0x1f,0x87,0x17,0x1, 0xaf,0xf, 0x17,0x7e, +0xe0,0x2, 0x1f,0xc0,0xae,0x82,0xe0,0xa, 0xaf,0x3f,0xf8,0x0, 0xc, 0xa8,0xb, 0xe1, +0xe0,0x2, 0x1f,0x5e,0xe0,0xd, 0x8e,0x8e,0xe2,0x0, 0xce,0x81,0xe7,0xfe,0x1, 0x76, +0xe0,0x6, 0x9a,0xae,0xe0,0x6, 0x9a,0x3e,0x11,0x80,0xe7,0xfe,0x2e,0x76,0xf0,0x0, +0x14,0x81,0xe8,0x2f,0x3f,0x89,0xe7,0xfe,0x27,0xf0,0xe0,0x3, 0x1c,0x8, 0x15,0x28, +0x3c,0xe3,0xe0,0x8, 0xdc,0xe1,0xe0,0x2, 0x1c,0x2e,0xe0,0x7, 0x15,0x40,0x3c,0xe3, +0xe0,0x8, 0xdc,0xda,0xe0,0x1, 0x1f,0xad,0xea,0x11,0x7b,0x50,0x8f,0xf, 0xe0,0x1, +0x1f,0xac,0x37,0x28,0x8f,0x8f,0xea,0x11,0x7b,0xce,0x3f,0xce,0xe0,0x2, 0x1f,0x40, +0xf0,0x0, 0x1c,0xf, 0xe0,0xa, 0xa9,0xbe,0x3c,0xe4,0xe0,0x1, 0x1f,0x5b,0xb7,0x8e, +0xe0,0x2, 0x1f,0xb6,0x3c,0x65,0xa9,0x8f,0x17,0x82,0xe8,0x0, 0xaf,0x88,0xb2,0xa2, +0xb2,0x32,0xb2,0xc2,0xb2,0xe2,0xe0,0x1, 0xb2,0x82,0xe0,0x1, 0xb2,0xa2,0xb2,0x52, +0xb2,0x72,0xe0,0x1, 0xb2,0x12,0xe0,0x1, 0xb2,0x32,0xb2,0x86,0xb2,0x7, 0xde,0x1, +0x3c,0xe3,0xf0,0x0, 0xac,0x82,0x3f,0x63,0x3f,0xe3,0xe0,0x41,0x3f,0xcf,0xe2,0x1, +0xc7,0xff,0xe7,0xfe,0x0, 0xde,0x2f,0xbb,0xaf,0x82,0x17,0x7e,0xe0,0x2, 0x1f,0xc0, +0xe0,0xa, 0xaf,0x3f,0xe7,0xfe,0x0, 0xa1,0xe0,0x41,0x3c,0xc9,0xe2,0x1, 0xc4,0xff, +0xe7,0xfe,0x0, 0xd3,0xe0,0x1, 0x1f,0xab,0x9f,0x42,0x8e,0x8f,0xe0,0x1, 0x1f,0xaa, +0xe0,0x1, 0x9e,0x2, 0x8f,0x8f,0x36,0xa8,0x3f,0x2c,0x3f,0xcd,0x3f,0x7f,0xea,0x11, +0x7b,0x50,0xea,0x11,0x7b,0xce,0x2, 0x26,0xe0,0x1, 0x1f,0xa9,0xe0,0x1, 0x9f,0x32, +0x8e,0x8f,0xe0,0x1, 0x1f,0xa8,0x9e,0x72,0x8f,0x8f,0x36,0xa8,0x3f,0x2c,0x3f,0xcd, +0x3f,0x7f,0x2, 0x18,0x97,0x86,0x94,0x87,0xe0,0xf, 0x3a,0xaf,0xe0,0x9, 0x3a,0x29, +0xe3,0xff,0xc7,0xff,0xe3,0xff,0xc4,0xff,0xe7,0xfe,0x0, 0x95,0xe0,0x1, 0x9c,0xd2, +0xe0,0x1, 0x9c,0x42,0x17,0x84,0xaf,0x82,0xf8,0x0, 0xc, 0xa8,0xb, 0xa1,0xe7,0xfb, +0x0, 0xb1,0x97,0x86,0x94,0x87,0xe0,0xf, 0x3a,0xaf,0xe0,0x9, 0x3a,0x29,0xe3,0xff, +0xc7,0xff,0xe3,0xff,0xc4,0xff,0x17,0x3, 0xaf,0x2, 0xe0,0x43,0x3e,0x9f,0xe0,0x43, +0x3f,0x19,0xe0,0x1, 0xb2,0xc2,0xe2,0x1, 0xc7,0xff,0xe0,0x1, 0xb2,0x52,0xe2,0x1, +0xc4,0xff,0xe7,0xfd,0x0, 0xf8,0xe0,0x43,0x3e,0x9f,0xe0,0x43,0x3f,0x19,0xe0,0x1, +0xb2,0xc2,0xe2,0x1, 0xc7,0xff,0xe0,0x1, 0xb2,0x52,0xe2,0x1, 0xc4,0xff,0xe7,0xfd, +0x0, 0xea,0x17,0x1, 0xe0,0x2e,0x3e,0xe, 0xe7,0xfe,0x27,0x34,0x3f,0x6f,0xe4,0x0, +0xcf,0x1, 0xe2,0x0, 0xc7,0x1, 0xe7,0xfe,0x27,0x2d,0xe0,0x1, 0x1f,0xdb,0x97,0x8f, +0xb7,0x92,0xe7,0xfd,0x0, 0xa3,0x8, 0xb4,0xe0,0x2, 0x19,0xc0,0xe0,0xa, 0x8f,0x83, +0x27,0x93,0xe0,0x3, 0x19,0x8, 0xde,0x79,0x8f,0x82,0xe2,0x0, 0xcf,0x84,0x1, 0x12, +0xef,0xff,0xd6,0xd0,0x3a,0x68,0x22,0x7, 0xe0,0x2, 0x1f,0xdc,0x17,0x1, 0xe0,0xa, +0xaa,0x33,0xaf,0xf, 0xa, 0x61,0xe0,0x3, 0x1f,0x8, 0xaf,0x8e,0xa, 0x21,0xe7,0xed, +0x0, 0xb7,0x97,0x42,0xe0,0x1, 0x96,0x2, 0xe0,0x1, 0x97,0xb2,0x96,0xf2,0x3f,0x2c, +0x3f,0xad,0xe0,0x1, 0xb7,0x62,0xe0,0x1, 0xb7,0xf2,0xd2,0x7d,0x3a,0x68,0x24,0xc, +0xe2,0x1, 0xca,0x7f,0x17,0x80,0xe0,0x6f,0x39,0xa4,0x3a,0x6f,0x3c,0x64,0xde,0x1f, +0x17,0x80,0xaf,0x82,0x0, 0xd9,0xe0,0x2, 0x1f,0xb6,0xe0,0x2, 0x1c,0x2e,0x8d,0xf, +0x3c,0xe2,0xdb,0x31,0x3a,0x68,0x0, 0xf3,0x8, 0xb4,0xe2,0x0, 0xcc,0x1, 0x39,0xe8, +0x39,0x68,0x17,0x80,0x5, 0x89,0x31,0x41,0xe2,0x0, 0xc9,0x1, 0xc7,0x81,0xe2,0x1, +0xc7,0xff,0x1, 0xfa,0x37,0xc1,0x31,0x3f,0xe4,0x0, 0xc1,0x3, 0x12,0x1, 0x31,0x54, +0x3c,0xe2,0x3c,0x63,0xe0,0x8, 0xdb,0x6f,0x3c,0x12,0x34,0x41,0xe0,0x2, 0x3c,0x22, +0xe0,0x43,0x3f,0x92,0xe0,0x41,0x3f,0x4f,0xe2,0x0, 0xcf,0x80,0xe1,0x2e,0x3f,0x14, +0xe1,0x2f,0x39,0x14,0xe0,0x6f,0x3d,0x2e,0x39,0x68,0x2f,0xeb,0xa, 0x61,0xe0,0x2, +0x1f,0xae,0x34,0x22,0x34,0xa2,0x3c,0x9f,0x3c,0x1f,0x9f,0x88,0x9f,0x9, 0x9c,0x18, +0x3f,0xae,0x9f,0x19,0xe0,0x43,0x3e,0x9f,0xe2,0x0, 0xce,0x80,0x3c,0x2e,0xe0,0x43, +0x3f,0x18,0xe0,0x41,0x3e,0xcd,0xe0,0x6f,0x3d,0x2d,0xe2,0x0, 0xcf,0x0, 0xe0,0x41, +0x3f,0x4e,0xe0,0x68,0x3d,0x2e,0x3f,0xbf,0x3c,0x38,0x3c,0x1f,0xe2,0x0, 0xcc,0x5, +0x2, 0x88,0xe2,0x0, 0xcc,0x2, 0xe0,0xf, 0x34,0x41,0xe0,0x68,0x3b,0xaf,0x38,0x82, +0xe7,0xff,0x0, 0xac,0x8, 0xb7,0xf8,0x0, 0xc, 0x3e,0xc0,0x7c,0xe0,0x1, 0x1f,0xa7, +0x13,0x0, 0xf0,0x0, 0x8e,0xf, 0xe0,0x1, 0x1f,0xa6,0x3a,0x68,0x8f,0x8f,0xf0,0x0, +0x14,0x81,0x7f,0x81,0xf0,0x40,0x3d,0x66,0xf0,0x40,0x3d,0xe6,0xe0,0x0, 0x11,0xa8, +0xe2,0x0, 0xca,0x1, 0xf0,0x0, 0x14,0x0, 0x5, 0xba,0x11,0x1, 0xf8,0x40,0x3e,0xe8, +0xe8,0x40,0x3a,0xe8,0x0, 0x8b,0xe8,0x40,0x3a,0xed,0x3b,0xe8,0xf0,0x40,0x3e,0xe2, +0xc1,0x1, 0xe2,0x1, 0xc1,0x7f,0x3a,0x72,0x1, 0x2a,0xe8,0x40,0x3c,0xed,0x3c,0x62, +0xdf,0xa7,0x3c,0x73,0xf0,0x40,0x3f,0x68,0x4, 0xf4,0xf7,0xff,0x26,0xee,0x3c,0xe2, +0x3c,0x65,0xdf,0x9e,0xe8,0x8, 0x3c,0x1c,0xe8,0xe, 0x3b,0x9e,0x3f,0x78,0x4, 0xbe, +0xe2,0x0, 0xcb,0x5, 0x17,0x1, 0xe8,0xe, 0x3f,0x18,0xe0,0x0, 0x2, 0xe8,0xe8,0x40, +0x3a,0xed,0xf0,0x40,0x3e,0xe2,0xc1,0x1, 0xe2,0x1, 0xc1,0x7f,0x3a,0x72,0xf0,0x40, +0x3c,0x6e,0xf2,0x1, 0xc4,0x7f,0xe8,0x40,0x3b,0xee,0x1, 0xd8,0xe2,0x0, 0xcb,0x5, +0x3f,0x66,0xe2,0x1, 0xc7,0x7f,0xc1,0x8a,0x2, 0xb3,0xe8,0x40,0x3e,0xe8,0xe8,0x40, +0x3f,0xeb,0xe2,0x1, 0xc6,0xff,0xe2,0x1, 0xc7,0xff,0x3e,0xff,0xe2,0x1, 0xc1,0xff, +0x3, 0x83,0xf8,0x40,0x3c,0x6b,0xe2,0x0, 0xcf,0x5, 0xf8,0x40,0x3d,0xe8,0xf2,0x1, +0xc5,0xff,0xe0,0x0, 0x1, 0x59,0xf2,0x0, 0xcc,0x8c,0x1, 0x27,0xf0,0x0, 0xc4,0x81, +0xc3,0x1, 0xf2,0x1, 0xc4,0xff,0xe7,0xff,0x0, 0x9d,0xe2,0x0, 0xcb,0x5, 0xe8,0x40, +0x3f,0xed,0xe0,0x6f,0x3a,0xa5,0x3a,0xef,0x3f,0xe2,0xe0,0x7e,0x3a,0xa7,0xe8,0x6f, +0x3a,0xad,0xe8,0x40,0x3b,0xee,0xf0,0x40,0x3e,0xef,0xe7,0xff,0x0, 0x9b,0xe2,0x1, +0xc1,0xff,0xf0,0x0, 0x2d,0xaa,0xf0,0x0, 0x2d,0x10,0xf2,0x0, 0xcc,0x8c,0xf8,0x40, +0x3d,0xea,0xf0,0x0, 0x66,0x1, 0x1, 0xdb,0xf2,0x0, 0xcd,0x8a,0x2, 0x95,0xf0,0x0, +0x2d,0xa8,0xf0,0x0, 0x25,0x6, 0xf0,0x0, 0xc5,0x10,0xf2,0x1, 0xc5,0x7f,0xe8,0x40, +0x3c,0x6a,0xc0,0x4, 0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0xf0,0x0, 0xc5,0x1, 0xf2,0x1, +0xc5,0x7f,0xe7,0xfe,0x0, 0xf7,0xf0,0x0, 0x15,0xf, 0xe8,0x40,0x3c,0x6a,0xc0,0x4, +0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0xf2,0x0, 0xcd,0x8b,0xf0,0x0, 0x15,0xf, 0xe8,0x7a, +0x3c,0xab,0xe8,0x40,0x3c,0x6a,0xc0,0x4, 0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0xf8,0x40, +0x3d,0x6b,0x0, 0xde,0x11,0xb2,0xe7,0xff,0x0, 0xab,0xf0,0x3, 0x1a,0x8, 0xf8,0x0, +0x9b,0xb4,0xe8,0x1, 0x9c,0xd4,0xe8,0x0, 0x9e,0x44,0xf0,0xa, 0x3b,0xa9,0xf0,0x40, +0x39,0x6a,0xe8,0x1, 0x9f,0x4, 0xf3,0xff,0xc1,0x7f,0xe8,0x43,0x3e,0x92,0xe0,0xf, +0x3e,0x2e,0xe2,0x0, 0xce,0x80,0xe8,0xd, 0x3c,0xa7,0xf8,0x1, 0x9b,0x34,0xf8,0x0, +0x9a,0xf4,0xf0,0x40,0x39,0xef,0xe3,0xff,0xc6,0xff,0xf3,0xff,0xc1,0xff,0xe0,0x72, +0x3d,0x2d,0xe0,0x1, 0x1e,0xa5,0xe8,0x43,0x3d,0x93,0xf8,0x8, 0x3b,0x25,0xe2,0x0, +0xcd,0x80,0x3f,0xe8,0x8d,0x8d,0xe0,0x1, 0x1e,0xa4,0xe3,0xff,0xc7,0xff,0x3f,0x2c, +0xe0,0x43,0x3d,0x1f,0xe3,0xff,0xc7,0x7f,0x8e,0x8d,0xe0,0x73,0x3d,0x2e,0xf8,0xc, +0x3a,0xa6,0xe2,0x0, 0xcd,0x0, 0xe0,0xe, 0x35,0xa8,0xe3,0xff,0xc6,0x7f,0x3f,0x4d, +0xe0,0x6f,0x3d,0x2c,0xf0,0x40,0x39,0xfe,0x14,0x0, 0xe0,0x0, 0x3, 0xd2,0xe0,0x1, +0x1f,0x23,0xe0,0x1, 0x1e,0xa2,0x8f,0xe, 0x8e,0x8d,0x37,0x28,0x3f,0x4d,0xe1,0x2d, +0x3f,0x9e,0xe0,0x0, 0x26,0xc5,0xe9,0x2f,0x3f,0x93,0xe0,0x0, 0x27,0xc1,0xe8,0x0, +0x8c,0x14,0x2c,0x3d,0xe0,0x1, 0x1f,0xad,0xe0,0x1, 0x1e,0xa1,0x8d,0x8f,0xe0,0x1, +0x1f,0xa0,0x8e,0x8d,0x8e,0xf, 0xe0,0x1, 0x1f,0xac,0x36,0x28,0x8f,0x8f,0x35,0xa8, +0x3e,0xcc,0x3f,0xcb,0xe8,0x0, 0x9e,0x14,0xe0,0xd, 0x3f,0xad,0x3e,0x7d,0x5, 0x28, +0xe0,0x1, 0x1e,0x9f,0x8d,0x8d,0xe0,0x1, 0x1e,0x9e,0x35,0xa8,0x8e,0x8d,0x3e,0xcb, +0x3f,0xad,0xe0,0x2f,0x3f,0x9c,0x27,0x9c,0xf1,0x2f,0x39,0x1e,0x27,0x99,0xe0,0x1, +0x1f,0x9d,0xe0,0x1, 0x1f,0x1c,0x8f,0x8f,0x8f,0xe, 0xf0,0x40,0x3b,0xf9,0x37,0xa8, +0x3f,0x4f,0x3, 0x8f,0xf8,0xf, 0x3b,0xa5,0x3f,0xfe,0x3, 0xa, 0xf0,0xf, 0x3b,0x29, +0x3f,0x7f,0x17,0xa3,0xe0,0x6f,0x3d,0x28,0x3c,0x6f,0x38,0x82,0x14,0x0, 0x38,0x82, +0xe8,0xf, 0x3c,0xa5,0x3f,0xfe,0x3, 0x7c,0xf8,0xf, 0x3b,0x27,0x3f,0x7f,0x17,0xa2, +0xe0,0x6f,0x3d,0x28,0x3c,0x6f,0x38,0x82,0xe0,0x3, 0x1e,0x8, 0xf0,0x0, 0x9b,0xac, +0xf0,0x1, 0x9a,0xcc,0xf0,0x0, 0x9a,0x4c,0xf0,0x1, 0x9b,0xc, 0xf8,0xd, 0x3b,0xa5, +0xe3,0xff,0xc6,0xff,0xe0,0x43,0x3f,0x1d,0xf8,0xf, 0x3a,0x26,0xe2,0x0, 0xcf,0x0, +0xe3,0xff,0xc7,0xff,0xf8,0xa, 0x3a,0xa7,0xe0,0x43,0x3c,0x9f,0xe0,0x1, 0x9c,0x3c, +0x9d,0xfc,0xe3,0xff,0xc5,0x7f,0xe0,0x6d,0x3d,0x2a,0xe2,0x0, 0xcc,0x80,0xf8,0xa, +0x3b,0x24,0xe0,0xe, 0x3c,0x2b,0xe3,0xff,0xc5,0x7f,0xe0,0x1, 0x1c,0x9b,0xe3,0xff, +0xc7,0x7f,0xe0,0x6f,0x3d,0x2a,0xe0,0x1, 0x1d,0x1a,0xf0,0x43,0x39,0x9e,0x8c,0x89, +0x3d,0xa8,0xf2,0x0, 0xc9,0x80,0x8d,0xa, 0xe3,0xff,0xc5,0xff,0x34,0xa8,0xe0,0x6e, +0x3d,0x2b,0xe0,0xb, 0x3d,0x49,0xe1,0x2b,0x3d,0x9e,0xe0,0x0, 0x25,0xcd,0xe1,0x2f, +0x3f,0x9e,0xe0,0x0, 0x27,0xc9,0x8c,0x1c,0xe0,0x0, 0x2c,0x46,0xe0,0x1, 0x1f,0xad, +0x9e,0x1c,0x8d,0xf, 0xe0,0x1, 0x1f,0x99,0x35,0x28,0x8d,0x8f,0xe0,0x1, 0x1f,0xac, +0x35,0xa8,0x8f,0xf, 0xe0,0x1, 0x1f,0x98,0x3f,0x4a,0x8f,0x8f,0x3f,0xcb,0xe0,0xf, +0x3f,0x2f,0x3e,0x7f,0x5, 0x31,0xe0,0x1, 0x1f,0x97,0x8d,0x8f,0xe0,0x1, 0x1f,0x96, +0x35,0xa8,0x8f,0x8f,0x3f,0xcb,0x3f,0x2f,0x3e,0x7e,0x3, 0x26,0xe0,0x1, 0x1f,0x95, +0x8f,0xf, 0xe0,0x1, 0x1f,0x94,0x37,0x28,0x8f,0x8f,0x3f,0xce,0x3e,0xff,0x5, 0x9c, +0xe0,0x1, 0x1f,0x9d,0xf8,0x40,0x3b,0xf5,0x8f,0xf, 0xe0,0x1, 0x1f,0x9c,0x37,0x28, +0x8f,0x8f,0x3f,0xce,0x37,0xc1,0x5, 0x91,0xf8,0x16,0x3a,0xa6,0xf0,0x40,0x3b,0x7f, +0x3, 0xb, 0xf8,0x17,0x3a,0x27,0xe8,0x40,0x3f,0xf7,0x17,0xa0,0xe0,0x6f,0x3d,0x28, +0x3c,0x6f,0x38,0x82,0x14,0x0, 0x38,0x82,0xf8,0x17,0x3b,0xa6,0xf0,0x40,0x3b,0xff, +0x3, 0x7b,0xf8,0x15,0x3a,0x25,0xe8,0x40,0x3f,0xf5,0x17,0xa1,0xe0,0x6f,0x3d,0x28, +0x3c,0x6f,0x38,0x82,0x8, 0xb1,0xe0,0x2, 0x1f,0xb6,0x84,0xf, 0xc4,0x7f,0xe2,0x1, +0xc4,0x7f,0xdd,0xe9,0x17,0x80,0x2c,0xc, 0xde,0xb1,0x3f,0xe8,0x2c,0x9, 0xdf,0x55, +0xe2,0x0, 0xcc,0x0, 0xe0,0x1, 0x17,0x7f,0xe0,0x6e,0x39,0xa8,0x3f,0xee,0x3c,0x6f, +0x8, 0xe1,0xe0,0x2, 0x1f,0x91,0xe6,0x1, 0x16,0xff,0xa7,0x8f,0x34,0x28,0xa7,0x5f, +0x3f,0x5d,0xbf,0x5f,0xa7,0x5f,0x3c,0x4e,0xbc,0x5f,0x38,0x82,0xe0,0x2, 0x1e,0xfd, +0xe0,0x3, 0x1f,0x13,0x8f,0xdd,0x8e,0x4d,0xe0,0x2, 0x1e,0x93,0x3f,0xbc,0x37,0xa1, +0xb7,0x8e,0x9f,0x8e,0x37,0xc9,0xe0,0x3, 0xaf,0xcd,0x9f,0x8e,0x37,0xc1,0xe0,0x3, +0xaf,0xdd,0x38,0x82,0x8, 0xb2,0xe0,0x2, 0x19,0x13,0xe0,0x6, 0x8c,0x12,0xe0,0x6, +0x8c,0xa2,0xe0,0x2, 0xd7,0x4f,0xe4,0x8, 0x34,0x21,0xe0,0x3, 0x9f,0xc2,0xe4,0x8, +0x34,0x40,0x3c,0x7f,0x3, 0x88,0xe0,0x1, 0x1f,0x4f,0xe0,0x3, 0xb4,0x42,0x9f,0x8e, +0xcf,0xa0,0xb7,0x8e,0x9, 0x61,0x8, 0xb2,0xe0,0x1, 0x1f,0xc2,0xe0,0x1a,0x17,0x20, +0x3f,0x1f,0x8f,0xe, 0xe0,0x1a,0xc7,0xa1,0x8c,0xf, 0x37,0x28,0xe0,0x2, 0x19,0x13, +0x3c,0x4e,0x17,0x81,0xaf,0xc2,0xe0,0x7, 0xd3,0x42,0x14,0x1, 0xe0,0x4, 0xd0,0xa2, +0xe0,0x2, 0x1f,0xfd,0xe0,0x19,0x16,0x9d,0x17,0x7, 0x3e,0x9f,0xaf,0xd, 0xe0,0x19, +0xc7,0x9e,0xaf,0xf, 0xe0,0x1, 0xd8,0x2b,0x17,0x82,0xaf,0xc2,0x9, 0x61,0xe0,0x3, +0x1f,0x38,0xe0,0x3, 0x1f,0x9d,0xa6,0xe, 0x15,0xfe,0xa6,0xcc,0x97,0xf, 0xe2,0x0, +0xc6,0x81,0x3f,0x5b,0x3f,0x4d,0xb7,0xf, 0x15,0xfd,0xa6,0xcc,0x97,0xf, 0x36,0xc9, +0xe2,0x0, 0xc6,0x82,0x3f,0x5b,0x3f,0x4d,0xb7,0xf, 0x15,0x77,0x97,0xf, 0x3d,0xe8, +0xe3,0xff,0xc7,0x7b,0xb7,0xf, 0xe7,0xff,0x17,0x10,0xa6,0x4c,0x96,0x8f,0x3f,0x18, +0x36,0x4c,0xe2,0x0, 0xc6,0x8, 0x3e,0xda,0xe2,0x1, 0xc7,0x7f,0x3e,0xcc,0xe2,0x0, +0xcf,0xd, 0xb6,0x8f,0x9e,0x8f,0x2, 0x89,0xea,0x49,0x7f,0xd8,0xe9,0xff,0xc7,0xff, +0x37,0x22,0x3f,0x1f,0xa7,0x8e,0x3f,0x82,0xe0,0x1, 0x14,0x7f,0x38,0x82,0x3c,0x6d, +0xe2,0x1, 0xc4,0x7f,0x38,0x82,0xe0,0x8, 0x36,0xc8,0x38,0x82,0xe0,0x1, 0x1f,0xdc, +0xa7,0x8f,0xe0,0x1, 0xa4,0x7f,0xe2,0x1, 0xc4,0x7f,0x38,0x82,0xe0,0x2, 0x1f,0x91, +0xa7,0x8f,0xa4,0x5f,0x34,0x48,0xe2,0x1, 0xc4,0x7f,0x38,0x82,0xe0,0x2, 0x1e,0x9a, +0x16,0x1, 0x8f,0xd, 0xe0,0x2, 0x1f,0x93,0x3e,0x1e,0xae,0xd, 0xe0,0x1, 0x1e,0xd6, +0x3e,0x9e,0xe0,0x4, 0x8f,0x4f,0x8c,0xd, 0xc7,0x1, 0xe0,0x4, 0xaf,0x4f,0xe0,0x4, +0x8f,0x4f,0x2f,0x6, 0xe0,0x4, 0x8f,0x3f,0xc7,0x1, 0xe0,0x4, 0xaf,0x3f,0xe2,0x0, +0xcd,0xfd,0x1, 0xcd,0xe0,0x1, 0x1f,0xd8,0xe0,0x0, 0x17,0x7c,0xaf,0xf, 0x38,0x82, +0x8, 0xb1,0x2c,0x17,0xe0,0x0, 0x1f,0xb0,0x8f,0x8f,0xe2,0x0, 0xcf,0x81,0xe0,0x0, +0x1, 0x48,0x3c,0x69,0xe0,0x4, 0xd9,0x33,0xe0,0x1, 0x1f,0xcf,0x9f,0x8f,0x27,0x88, +0xe0,0x2, 0x1f,0x13,0xe0,0x1, 0x8f,0xee,0xcf,0x82,0xe0,0x1, 0xaf,0xee,0x8, 0xe1, +0xe2,0x0, 0xcc,0xf, 0x1, 0x3b,0xe2,0x0, 0xcc,0x12,0xe0,0x0, 0x1, 0x52,0xe2,0x0, +0xcc,0x13,0xe0,0x0, 0x1, 0x53,0xe2,0x0, 0xcc,0x11,0x1, 0x3e,0xe2,0x0, 0xcc,0x1, +0xe0,0x2, 0x1, 0x1b,0xe2,0x0, 0xcc,0x9, 0xe0,0x2, 0x1, 0x35,0xe2,0x0, 0xcc,0x5b, +0xe0,0x0, 0x5, 0xce,0xe7,0xff,0x17,0x94,0x3f,0x98,0xe2,0x0, 0xcf,0x81,0xe0,0x2, +0x5, 0xdb,0xe7,0xff,0x17,0x92,0x3f,0x98,0xe2,0x0, 0xcf,0x81,0xe0,0x3, 0x5, 0xb9, +0xe7,0xff,0x17,0x90,0xe0,0xf, 0x3f,0x98,0xe2,0x0, 0xcf,0x8f,0xe0,0x2, 0x2, 0xe8, +0xe2,0x0, 0xcc,0x7b,0xe0,0x3, 0x1, 0x5e,0xe0,0x1, 0x1f,0xcf,0x0, 0xc0,0xe0,0x2, +0x1f,0xe6,0x8f,0x8f,0xe7,0xff,0x2f,0xb7,0x8, 0xe1,0xe0,0x0, 0x1f,0xb0,0x8f,0x8f, +0xe2,0x0, 0xcf,0x81,0x1, 0x1f,0xe0,0x2, 0x1f,0x93,0x17,0x1, 0xe0,0x1, 0xaf,0x7f, +0xe0,0x2, 0xaf,0xf, 0x8, 0xe1,0xe2,0x0, 0xcc,0x81,0x1, 0x29,0xe7,0xff,0x2c,0xb1, +0xe0,0x1, 0x1f,0xf2,0xa7,0xf, 0xe0,0x2, 0x1f,0xe3,0xbf,0xf, 0x8, 0xe1,0xe0,0x2, +0x1f,0x93,0xe0,0x2, 0xac,0xaf,0x8, 0xe1,0xe0,0x2, 0x1f,0x93,0xe0,0x2, 0xac,0xbf, +0x8, 0xe1,0xe0,0x2, 0x1f,0xe6,0x8f,0x8f,0x2f,0xdf,0x8, 0xe1,0xe2,0x0, 0xcc,0x30, +0xe0,0x1, 0x1, 0x6f,0xe2,0x0, 0xcc,0x53,0x2, 0x98,0xea,0x4a,0x7f,0x90,0xe9,0xff, +0xc7,0xff,0xe0,0xe, 0x34,0x22,0x3f,0x9e,0xa7,0x8f,0x3f,0x82,0xe0,0x2, 0x1f,0x93, +0xe0,0x2, 0x8f,0x1f,0xe7,0xff,0x2f,0x5, 0xe0,0x2, 0xac,0x9f,0xe7,0xff,0x16,0x80, +0x87,0xf, 0x3f,0x4d,0xaf,0xf, 0x8, 0xe1,0xe0,0x0, 0x1f,0xb0,0x3e,0xe8,0x8f,0x8f, +0xe2,0x0, 0xcf,0x81,0xe0,0x1, 0x1, 0x62,0x17,0xf8,0xe0,0x2, 0x1f,0x13,0x3f,0x98, +0xe2,0x1, 0xc7,0xff,0x3e,0x9e,0xe2,0x0, 0xcf,0xaf,0xac,0x8d,0x2, 0x89,0xea,0x4c, +0x7e,0xe0,0xe9,0xff,0xc6,0xff,0x37,0xa2,0x3f,0x9d,0xa7,0x8f,0x3f,0x82,0xe0,0x1, +0x1f,0xcf,0x17,0x48,0x3f,0x18,0xe2,0x0, 0xcf,0x1e,0xe0,0x2, 0x5, 0x99,0xe2,0x0, +0xcc,0x57,0xe0,0x2, 0x5, 0x99,0x9f,0xf, 0xe0,0x4, 0xcf,0x0, 0xb7,0xf, 0xe7,0xfe, +0x0, 0xc7,0xe0,0x1, 0x1f,0xcf,0x9f,0xf, 0xcf,0x8, 0xb7,0xf, 0xe7,0xfe,0x0, 0xc0, +0xe0,0x1, 0x1f,0xcf,0x9f,0xf, 0xcf,0x4, 0xb7,0xf, 0xe7,0xfe,0x0, 0xb9,0xe0,0x4, +0x87,0xbe,0xe0,0x2, 0x1f,0x1a,0xe0,0x1, 0x1f,0xcf,0xac,0x8e,0xe7,0xfe,0x0, 0xb0, +0xe0,0x1, 0x1f,0xcf,0x9f,0xf, 0xe0,0x40,0xcf,0x0, 0xb7,0xf, 0x0, 0xd3,0xe0,0x1, +0x1f,0xcf,0x9f,0xf, 0xe0,0x80,0xcf,0x0, 0xb7,0xf, 0x0, 0xcc,0xe0,0x3, 0x8f,0xce, +0xe0,0x3, 0x1f,0x13,0x37,0xa8,0x3f,0x99,0x37,0xa1,0xb7,0x8e,0xe0,0x1, 0x1f,0xcf, +0xe7,0xfe,0x0, 0x96,0xe0,0x3, 0x8f,0xae,0xe0,0x2, 0x1f,0x72,0x37,0xa8,0x3f,0x99, +0x37,0xa1,0xb7,0x8e,0x97,0xe, 0xe0,0x0, 0x1f,0xc8,0xb7,0xf, 0xe7,0xfe,0x0, 0xc6, +0xe0,0x3, 0x8f,0x8e,0x37,0xa8,0x3c,0x9f,0xe0,0x3, 0x1f,0x89,0xb4,0x8f,0xe0,0x1, +0x1f,0xcf,0xe7,0xfd,0x0, 0xfd,0xe0,0x1, 0x1f,0xdc,0x15,0xfb,0xa6,0xf, 0xe0,0x1, +0x1f,0xcf,0xa7,0x4c,0xa6,0xcc,0x37,0x42,0xe2,0x0, 0xc7,0x1, 0xe4,0x0, 0xcf,0x1, +0x37,0x22,0x3e,0xdb,0x3f,0x4d,0xbf,0x4c,0xe7,0xfd,0x0, 0xea,0xe0,0x1, 0x1f,0xcf, +0x9f,0xf, 0xcf,0x2, 0xb7,0xf, 0xe7,0xfd,0x0, 0xe3,0xe0,0x1, 0x1f,0xcf,0x9f,0xf, +0xcf,0x1, 0xb7,0xf, 0xe7,0xfd,0x0, 0xdc,0xe0,0x1, 0x1f,0xcf,0x9f,0xf, 0xe0,0x2, +0xcf,0x0, 0xb7,0xf, 0xe7,0xfe,0x0, 0xff,0xe0,0x1, 0x1f,0xcf,0x9f,0xf, 0xcf,0x10, +0xb7,0xf, 0xe7,0xfd,0x0, 0xcd,0xe0,0x2, 0x1f,0x8d,0x8f,0x8f,0x2f,0x87,0xe0,0x1, +0x1f,0xf2,0xa7,0xf, 0xe0,0x2, 0x1f,0xe3,0xbf,0xf, 0x17,0x0, 0xe0,0x3, 0x1f,0x93, +0xe0,0x2, 0x1e,0x93,0xb7,0xf, 0xe2,0x1, 0xcc,0xad,0xac,0x9d,0xe7,0xff,0x1, 0x2f, +0xe2,0x1, 0xcc,0xae,0xe7,0xfd,0x1, 0xf2,0xdd,0xe2,0xe0,0x1, 0x1f,0xcf,0xe7,0xfd, +0x0, 0xaf,0xe2,0x0, 0xcc,0x85,0xe7,0xfd,0x2, 0xb4,0xe0,0x2, 0x1f,0x13,0xe0,0x1, +0xac,0x9e,0xe0,0x0, 0x2c,0xfb,0xe0,0x2, 0xac,0xde,0xe7,0xfd,0x0, 0xdf,0xe0,0x2, +0x1f,0x13,0xe0,0x6, 0x8f,0x8e,0xe0,0x2f,0x3c,0x8f,0xe7,0xfd,0x2f,0xa2,0x17,0x82, +0xe1,0x2f,0x3c,0x9f,0xe7,0xfd,0x2f,0x9d,0xe0,0x0, 0x1f,0xb0,0x16,0xb0,0x8f,0x8f, +0xe2,0x0, 0xcf,0x81,0xe0,0x1, 0x1, 0xd3,0xe0,0x2, 0x1f,0xe6,0x8f,0x8f,0xe7,0xfe, +0x2f,0x9d,0xe2,0x0, 0xcc,0x4, 0xe7,0xfd,0x1, 0xc, 0xe2,0x0, 0xcc,0x30,0xe7,0xfe, +0x1, 0x95,0x8, 0xe1,0xe0,0x1, 0x1f,0xcf,0xe0,0x0, 0x1e,0x48,0x9f,0xf, 0x15,0x81, +0xe0,0x1, 0xcf,0x0, 0xb7,0xf, 0xe2,0x0, 0xcc,0x6d,0xe0,0x3, 0x1f,0x15,0x9e,0x8c, +0xa7,0xe, 0x3d,0x9d,0xb5,0x8c,0x3f,0x1d,0xac,0x8e,0xe7,0xfc,0x1, 0xe9,0xe0,0x1, +0x1f,0x58,0xe0,0x0, 0x16,0xec,0xae,0x8e,0xe7,0xfc,0x0, 0xe2,0xe2,0x1, 0xcc,0x6, +0xe0,0x0, 0x1, 0x7e,0xe2,0x1, 0xcc,0x7, 0xe0,0x1, 0x1, 0x11,0xe2,0x1, 0xcc,0x8, +0xe7,0xfd,0x1, 0x14,0xe2,0x1, 0xcc,0xb, 0xe0,0x1, 0x1, 0x23,0xe2,0x1, 0xcc,0xc, +0xe0,0x1, 0x1, 0x33,0xe2,0x1, 0xcc,0xd, 0xe0,0x1, 0x1f,0xcf,0xe7,0xfc,0x1, 0xc8, +0xe0,0x3, 0x1f,0x38,0x16,0x60,0xa6,0x8e,0xe2,0x0, 0xc4,0x9f,0xe0,0x1, 0xa7,0x5d, +0x3f,0x5c,0x3f,0x49,0xe0,0x1, 0xbf,0x5d,0xe7,0xfc,0x0, 0xba,0x17,0x1, 0x3f,0x58, +0xe0,0x0, 0x2f,0x4b,0xe2,0x0, 0xcc,0xa, 0xe7,0xfc,0x1, 0xb2,0x9f,0xf, 0xe0,0x8, +0xcf,0x0, 0xb7,0xf, 0xe7,0xfc,0x0, 0xac,0xe2,0x0, 0xcc,0x82,0xe0,0x0, 0x1, 0x58, +0xe0,0x1, 0x17,0xfd,0x3f,0xd9,0xe2,0x0, 0xcf,0x81,0x1, 0x6, 0xe2,0x0, 0xcc,0x84, +0xe7,0xfc,0x1, 0xdc,0x17,0x82,0xe0,0x2, 0xaf,0xde,0xe7,0xfc,0x0, 0xd7,0xe0,0x1, +0x1f,0xcf,0xe0,0x2, 0x1e,0x93,0x9f,0xf, 0xcf,0x40,0xb7,0xf, 0xe0,0x3, 0x8f,0xd, +0xe0,0x3, 0x8d,0x9d,0xe0,0x3, 0x8e,0x1d,0x37,0x28,0xc6,0x1, 0xe0,0x3, 0xae,0x1d, +0x3f,0x1b,0xe0,0x3, 0x8e,0x1d,0xe3,0xff,0xc7,0x7f,0x2e,0x6, 0xe0,0x3, 0x8e,0xd, +0xc6,0x1, 0xe0,0x3, 0xae,0xd, 0xe2,0x0, 0xcc,0x6f,0xe0,0x3, 0x1e,0x9b,0xa6,0x8d, +0x3f,0x1d,0xac,0x8e,0xe7,0xfb,0x1, 0xf4,0xe0,0x1, 0x1f,0x58,0xe0,0x0, 0x16,0xee, +0xae,0x8e,0xe7,0xfb,0x0, 0xed,0x9f,0xf, 0xcf,0x20,0xb7,0xf, 0xe7,0xfb,0x0, 0xe8, +0x3c,0x69,0xdd,0x8, 0xe0,0x1, 0x1f,0xcf,0xe7,0xfb,0x0, 0xe2,0xe0,0x1, 0x1f,0xdc, +0x16,0x78,0xa6,0x8f,0xe2,0x0, 0xc4,0x87,0xe0,0x1, 0xa7,0x2d,0xe0,0x1, 0x1f,0xcf, +0x3f,0x5c,0x3f,0x49,0xe0,0x1, 0xbf,0x2d,0xe7,0xfb,0x0, 0xd2,0x16,0x83,0xe0,0x2, +0xae,0xde,0xe0,0x1, 0x1f,0xcf,0xe7,0xfb,0x0, 0xcb,0xe0,0x1, 0x1f,0xdc,0x17,0x3, +0xa6,0x8f,0x3f,0x59,0xe0,0x1, 0xa7,0xad,0xe7,0x9f,0x16,0x7f,0x37,0x2c,0x3f,0xdc, +0x3f,0xce,0xe0,0x1, 0xbf,0xad,0xe7,0xfb,0x0, 0xf9,0xe0,0x6, 0xac,0x8e,0xe0,0x1, +0x1f,0xcf,0x9f,0xf, 0xe1,0x0, 0xcf,0x0, 0xb7,0xf, 0xe7,0xfb,0x0, 0xb1,0xe0,0x1, +0x1f,0xdc,0x15,0xe0,0xa7,0xf, 0x16,0x9f,0xe0,0x1, 0xa6,0x3e,0x3e,0xd9,0x3e,0x5b, +0xe0,0x1, 0xbe,0x3e,0xe0,0x1, 0xa6,0x3e,0xe0,0x1, 0x1f,0xcf,0x3e,0xcc,0xe0,0x1, +0xbe,0xbe,0xe7,0xfb,0x0, 0x9d,0xe0,0x3, 0x1f,0x8d,0x3c,0x69,0xac,0x8f,0xe0,0x2, +0xd1,0x75,0xe7,0xfb,0x0, 0xd3,0xe2,0x0, 0xcc,0x5b,0x3f,0xe8,0xe0,0x0, 0x5, 0xf4, +0xe7,0xff,0x17,0x16,0x3f,0x18,0xe2,0x0, 0xcf,0x1, 0xe0,0x0, 0x5, 0xf2,0xe0,0x0, +0x17,0x64,0x3f,0x18,0xe2,0x1, 0xc7,0x7f,0xe2,0x0, 0xcf,0x1, 0xe0,0x1, 0x5, 0x8c, +0xe7,0xff,0x17,0x12,0x3f,0x18,0xe2,0x0, 0xcf,0x1, 0xe0,0x1, 0x5, 0x99,0xe7,0xff, +0x17,0x14,0x3f,0x18,0xe2,0x0, 0xcf,0x1, 0xe0,0x0, 0x5, 0xea,0xe7,0xff,0x17,0x18, +0x3f,0x18,0xe2,0x0, 0xcf,0x1, 0xe0,0x1, 0x5, 0xc3,0xe0,0x0, 0x17,0x77,0x3f,0x18, +0xe2,0x1, 0xc7,0x7f,0xe2,0x0, 0xcf,0x1, 0xe0,0x1, 0x5, 0xe0,0xe7,0xff,0x17,0x10, +0x3f,0x18,0xe2,0x0, 0xcf,0xf, 0xe0,0x1, 0x5, 0xee,0xe0,0x0, 0x17,0x7f,0x3f,0x18, +0xe2,0x1, 0xc7,0x7f,0xe2,0x0, 0xcf,0x1, 0xe0,0x1, 0x5, 0x8c,0xe2,0x1, 0xcc,0x6, +0xe0,0x1, 0x1, 0x63,0xe2,0x1, 0xcc,0x7, 0xe0,0x1, 0x1, 0x6f,0xe2,0x1, 0xcc,0x8, +0xe0,0x2, 0x1, 0x3, 0xe2,0x1, 0xcc,0xb, 0xe0,0x2, 0x1, 0x1, 0xe2,0x1, 0xcc,0xc, +0xe0,0x2, 0x1, 0x5, 0xe2,0x1, 0xcc,0xd, 0xe0,0x2, 0x1, 0x5, 0xe0,0x0, 0x17,0x70, +0x3f,0x18,0xe2,0x1, 0xc7,0x7f,0xe2,0x0, 0xcf,0x4, 0xe0,0x1, 0x2, 0xdf,0xe2,0x1, +0xcc,0x12,0xe0,0x2, 0x1, 0x12,0xe0,0x1, 0x5, 0xfe,0xe2,0x1, 0xcc,0x13,0xe0,0x2, +0x1, 0x2, 0xe2,0x1, 0xcc,0x14,0xe0,0x2, 0x1, 0x83,0xe0,0x1, 0x1f,0xd6,0xe0,0x2, +0x8c,0x7f,0x38,0x82,0xe0,0x2, 0x1f,0x13,0x3f,0x9e,0x8c,0xf, 0x38,0x82,0xe0,0x3, +0x1e,0x13,0xe0,0x2, 0x1f,0x63,0x9e,0x8c,0xa7,0xe, 0x15,0x81,0x3d,0x9d,0xe2,0x0, +0xcf,0xeb,0xb5,0x8c,0x3f,0x1d,0x8c,0xe, 0x1, 0x3e,0x38,0x82,0xe0,0x2, 0x1e,0x72, +0xe0,0x3, 0x1f,0x15,0x9e,0x8c,0xa7,0xe, 0x15,0x81,0x3d,0x9d,0xe2,0x0, 0xcf,0xed, +0xb5,0x8c,0x3f,0x1d,0x8c,0xe, 0x1, 0xf2,0xe0,0x1, 0x1f,0xd8,0xe0,0x0, 0x17,0x6c, +0xaf,0xf, 0x38,0x82,0xe0,0x2, 0x1e,0x17,0xe0,0x0, 0x1f,0x4a,0x9e,0x8c,0xa7,0xe, +0x15,0x81,0x3d,0x9d,0xe2,0x1, 0xcf,0x9d,0xb5,0x8c,0x3f,0x1d,0x8c,0xe, 0x1, 0xde, +0xe0,0x1, 0x1f,0xd8,0xe7,0xff,0x17,0x1c,0xaf,0xf, 0x38,0x82,0xe0,0x3, 0x1e,0x9, +0xe0,0x3, 0x1f,0x1b,0x9e,0x8c,0xa7,0xe, 0x15,0x81,0x3d,0x9d,0xe2,0x0, 0xcf,0xef, +0xb5,0x8c,0x3f,0x1d,0x8c,0xe, 0x1, 0xca,0xe0,0x1, 0x1f,0xd8,0xe0,0x0, 0x17,0x6e, +0xaf,0xf, 0x38,0x82,0xe0,0x1, 0x1f,0xd8,0xe0,0x0, 0x17,0x6a,0xaf,0xf, 0x38,0x82, +0xe0,0x2, 0x1f,0x13,0x16,0x60,0xe0,0x2, 0x8e,0xfe,0x3e,0x1d,0xe2,0x0, 0xce,0x1f, +0xe0,0x0, 0x2, 0xdb,0xe0,0x1, 0x1e,0x53,0x3e,0x9c,0xe0,0x44,0x8c,0xd, 0xe0,0x2, +0x8e,0xfe,0xe2,0x1, 0xcf,0x82,0xc6,0x81,0xe0,0x2, 0xae,0xfe,0xe7,0xff,0x1, 0xa7, +0xe0,0x1, 0x1f,0xd8,0xe7,0xff,0x17,0x1, 0xaf,0xf, 0x38,0x82,0xe0,0x2, 0x1e,0x72, +0xe0,0x3, 0x1f,0x15,0x9e,0x8c,0xa7,0xe, 0xe1,0xff,0x15,0xfe,0x3d,0xdd,0x3f,0x1b, +0x97,0xe, 0xe2,0x0, 0xc6,0x81,0xc7,0x1, 0xe3,0xff,0xc7,0x7f,0xe2,0x0, 0xce,0x80, +0x9d,0x8c,0x3c,0x6e,0xe2,0x1, 0xc4,0x7f,0x37,0x48,0x16,0x81,0x3e,0x9b,0xe0,0x68, +0x39,0x2e,0xe2,0x0, 0xcf,0xe9,0xb6,0x8c,0xe7,0xff,0x1, 0x81,0xe0,0x1, 0x1f,0xd8, +0xe0,0x0, 0x17,0x68,0xaf,0xf, 0x38,0x82,0xe0,0x0, 0x1e,0x43,0xe0,0x2, 0x1f,0x25, +0x9e,0x8c,0xa7,0xe, 0x15,0x81,0x3d,0x9d,0xe2,0x1, 0xcf,0x8a,0xb5,0x8c,0x3f,0x1d, +0x8c,0xe, 0xe7,0xfe,0x1, 0xec,0xe0,0x1, 0x1f,0xd8,0xe7,0xff,0x17,0x9, 0xaf,0xf, +0x38,0x82,0xe7,0xf7,0x0, 0xee,0xe0,0x1, 0x1f,0xdc,0xa7,0x8f,0xe0,0x1, 0xa4,0x2f, +0xe2,0x0, 0xc4,0x7, 0x38,0x82,0xe0,0x2, 0x8e,0x7e,0xe0,0x1, 0x1e,0xc2,0x3e,0x9c, +0x8c,0xd, 0xe7,0xff,0x0, 0xa6,0xe0,0x1, 0x1f,0xdc,0xa7,0x8f,0xe0,0x1, 0xa4,0x2f, +0x34,0x4c,0xe2,0x0, 0xc4,0x3, 0x38,0x82,0xe2,0x1, 0xcf,0xfe,0x14,0x0, 0xe7,0xfe, +0x1, 0xc6,0xe0,0x2, 0x1f,0xc8,0x17,0x5, 0x8f,0x8f,0x3f,0x3f,0xe0,0x3, 0x1f,0xb0, +0x3f,0x9e,0x8c,0xf, 0x38,0x82,0x14,0x0, 0x38,0x82,0xe0,0x1, 0x1f,0xdc,0xa7,0x8f, +0xe0,0x1, 0xa4,0x3f,0xe2,0x0, 0xc4,0x1f,0x38,0x82,0xe0,0x3, 0x1f,0x8d,0x8c,0xf, +0x38,0x82,0xe0,0x3, 0x1f,0xb8,0xa7,0x8f,0xe0,0x1, 0xa4,0x5f,0xe2,0x0, 0xc4,0x1f, +0x38,0x82,0xe2,0x1, 0xcc,0x11,0x1, 0x8b,0xe0,0x1, 0x1f,0xd6,0xe0,0x2, 0x8c,0x4f, +0x38,0x82,0xe0,0x1, 0x1f,0xd6,0xe0,0x2, 0x8c,0x6f,0x38,0x82,0xe0,0x1, 0x1f,0xd6, +0xe0,0x2, 0x8c,0x3f,0x38,0x82,0xe0,0x1, 0x1f,0xd6,0xe0,0x2, 0x8c,0x5f,0x38,0x82, +0x8, 0xb3,0xe0,0x2, 0x19,0x13,0xe0,0x2, 0x19,0xfd,0xe0,0x3, 0x8f,0xe2,0xe0,0x1, +0x8f,0x3, 0x3f,0x7f,0x1, 0x16,0xe0,0x3, 0x8f,0xe2,0xe0,0x1, 0x8c,0x93,0xe2,0x0, +0xc7,0xbf,0xe0,0x3, 0xaf,0xe2,0xe0,0x3, 0x8f,0xe2,0x3c,0x6f,0xe0,0x1, 0xaf,0x83, +0xe0,0x3, 0xd1,0x2e,0xe0,0x2, 0x1f,0xe6,0x87,0x8f,0xe2,0x0, 0xc7,0x81,0x2f,0xa2, +0xe0,0x3, 0x8f,0xf2,0xe0,0x1, 0x8f,0x13,0x3f,0x7f,0x1, 0x16,0xe0,0x3, 0x8f,0xf2, +0xe0,0x1, 0x8c,0x3, 0xe2,0x0, 0xc7,0xbf,0xe0,0x3, 0xaf,0xf2,0xe0,0x3, 0x8f,0xf2, +0x3c,0xef,0xe0,0x1, 0xaf,0x93,0xe0,0x3, 0xd1,0x13,0xe0,0x2, 0x1f,0xe6,0x87,0x8f, +0xe2,0x0, 0xc7,0x81,0x27,0x82,0x9, 0xe1,0xe0,0x1, 0x8c,0x13,0x9, 0xa1,0xe0,0xe, +0x0, 0x9f,0xe0,0x1, 0x8c,0x3, 0xd7,0x1b,0x0, 0xdc,0x8, 0xb2,0xe0,0x2, 0x1f,0x93, +0x16,0x85,0xe0,0x5, 0x8f,0x1f,0x3e,0xb8,0xe0,0x3, 0x1f,0xb0,0x39,0x68,0x3f,0x9d, +0x8c,0x3f,0xe0,0x3, 0x1f,0x8e,0x3c,0xee,0x3f,0x92,0xaf,0xf, 0xe0,0x7, 0xd9,0x75, +0xe2,0x0, 0xc9,0x1, 0x1, 0x2, 0x9, 0x61,0x14,0x80,0x14,0x3, 0xe0,0x7, 0xd9,0x6d, +0x14,0x80,0x14,0x4, 0xe0,0x7, 0xd9,0x69,0x14,0x80,0x14,0x0, 0xe0,0x7, 0xd9,0x65, +0x9, 0x61,0x8, 0xb5,0xe0,0x3, 0x19,0x30,0xe0,0x3, 0x1a,0xaf,0x3a,0x68,0xe0,0x3, +0x34,0x23,0x8c,0x32,0xaa,0x2, 0x3c,0xe3,0xe0,0x7, 0xd9,0xd1,0xc1,0x5, 0x39,0x75, +0x1, 0xf9,0x3c,0xe3,0x14,0x3, 0xe0,0x7, 0xd9,0xca,0x3c,0xe3,0x14,0x4, 0xa, 0xa1, +0xe0,0xf3,0x0, 0xc5,0x8, 0xb5,0xe0,0x3, 0x19,0x30,0xe0,0x3, 0x1a,0xaf,0x3a,0x68, +0xe0,0x3, 0x34,0x23,0x8c,0x32,0xaa,0x12,0x3c,0xe3,0xe0,0x7, 0xd9,0xdb,0xc1,0x5, +0x39,0x75,0x1, 0xf9,0x3c,0xe3,0x14,0x3, 0xe0,0x7, 0xd9,0xd4,0x3c,0xe3,0x14,0x4, +0xa, 0xa1,0xe0,0xf3,0x0, 0xcf,0x8, 0xb4,0xe0,0x3, 0x19,0x30,0xe0,0x3, 0x1a,0x2f, +0x39,0xe8,0x8c,0x32,0xa9,0xa2,0x3d,0x63,0x3c,0xe3,0xe0,0x7, 0xd9,0xe8,0xc1,0x5, +0x39,0x74,0x1, 0xf8,0x3d,0x63,0x3c,0xe3,0x14,0x3, 0xe0,0x7, 0xd9,0xe0,0x3d,0x63, +0x3c,0xe3,0x14,0x4, 0xa, 0x21,0xe0,0xf3,0x0, 0xda,0x8, 0xb2,0xe0,0x0, 0x1f,0xcd, +0x39,0x68,0x8f,0x8f,0x2f,0xa2,0xe0,0x2, 0x1f,0x93,0x16,0x85,0xe0,0x3, 0x9f,0x4f, +0x3e,0xb2,0xe0,0x3, 0x1f,0xb0,0xe2,0x1, 0xc7,0x7f,0x3f,0x9d,0x8c,0x3f,0x3c,0xee, +0xaf,0x4f,0xe0,0x7, 0xd8,0xd7,0xe2,0x0, 0xc9,0x1, 0x1, 0x2, 0x9, 0x61,0x14,0x8a, +0x14,0x3, 0xe0,0x7, 0xd8,0xcf,0x14,0x8a,0x14,0x4, 0xe0,0x7, 0xd8,0xcb,0x14,0x85, +0x14,0x0, 0x9, 0x21,0xe0,0xf1,0x0, 0xc6,0xda,0x7e,0x0, 0xde,0x16,0x83,0xe0,0x2, +0x1f,0xc4,0x3e,0xb8,0xe0,0x2, 0x1f,0x13,0xe0,0xc, 0x3f,0x9d,0xe0,0x4, 0x8d,0x8e, +0x8d,0xc, 0x3d,0x7b,0x1, 0x4, 0xe0,0x4, 0x8d,0x8e,0xad,0x8c,0xe0,0xc, 0x3f,0x9d, +0xe0,0x4, 0x8d,0x9e,0x8d,0x1c,0x3d,0x7b,0x1, 0x4, 0xe0,0x4, 0x8d,0x9e,0xad,0x9c, +0x3f,0x9d,0x8e,0x2f,0xe0,0x4, 0x8e,0xae,0x3e,0x7d,0x1, 0x4, 0xe0,0x4, 0x8f,0x2e, +0xaf,0x2f,0xe0,0x10,0x0, 0x8b,0x8, 0xb3,0xe0,0x3, 0x1f,0x38,0xe0,0x2, 0x19,0x48, +0xa7,0x8e,0xa7,0xcf,0xe2,0x0, 0xc7,0x81,0x27,0x86,0x8f,0x82,0xe2,0x0, 0xcf,0x82, +0x1, 0x2, 0x17,0x81,0xe0,0x0, 0x19,0xcd,0xaf,0x82,0xaf,0x83,0x8c,0x82,0x24,0x94, +0xe2,0x0, 0xcc,0x82,0x1, 0x89,0xa7,0x8e,0xa7,0xcf,0xe2,0x0, 0xc7,0x81,0x27,0x83, +0xac,0x82,0xac,0x83,0x9, 0xe1,0x14,0x81,0x14,0x0, 0xe0,0x0, 0xd8,0x1c,0x17,0x81, +0xaf,0x82,0xaf,0x83,0x9, 0xe1,0x3c,0x69,0x9, 0xa1,0xe0,0x10,0x0, 0x94,0x0, 0x0, +0x8, 0xb3,0xe0,0x1, 0x1f,0xf2,0xe0,0x2, 0x19,0x13,0xa6,0x8f,0xe0,0x2, 0x1f,0x63, +0xe0,0x2, 0x8f,0xd2,0xbe,0x8e,0xe0,0x0, 0x27,0xfd,0xe0,0x2, 0x8f,0xd2,0xe2,0x0, +0xcf,0x81,0xe0,0x0, 0x1, 0x77,0xe0,0x2, 0x8f,0xd2,0xe0,0x2, 0x19,0xc8,0xe2,0x0, +0xcf,0x83,0x1, 0x86,0xe0,0x3, 0x1f,0x33,0xe0,0x3, 0x1f,0x9b,0xbf,0xf, 0x16,0x0, +0xe0,0x2, 0x1f,0xe6,0xe0,0x2, 0x1f,0x7d,0x87,0x8f,0xe0,0x3, 0x8f,0x2e,0xe2,0x0, +0xc7,0x81,0xe0,0x3, 0x1e,0x89,0x3f,0x7f,0xb6,0xd, 0xe0,0x0, 0x1, 0x69,0xe0,0x2, +0x1f,0x79,0xe0,0x3, 0x1f,0x95,0xbf,0xf, 0x16,0x0, 0x8f,0x3, 0xe0,0x3, 0x1f,0xb0, +0xe4,0x0, 0xc7,0x5, 0x3f,0x1f,0x87,0xe, 0xe0,0x6, 0xaf,0x12,0x8f,0x3, 0xe4,0x0, +0xc7,0x5, 0x3f,0x1f,0x87,0x1e,0xe0,0x6, 0xaf,0x22,0x8f,0x3, 0xe4,0x0, 0xc7,0x5, +0x3f,0x1f,0x87,0x2e,0xe0,0x6, 0xaf,0x42,0x8f,0x3, 0xe4,0x0, 0xc7,0x5, 0x3f,0x1f, +0x87,0x3e,0xe0,0x6, 0xaf,0x52,0x8f,0x3, 0xe4,0x0, 0xc7,0x5, 0x3f,0x9e,0x8f,0xcf, +0xe0,0x3, 0xb7,0xc2,0x17,0x80,0xe0,0x6, 0xaf,0xb2,0xe0,0x3, 0xb6,0x32,0x8f,0x3, +0xe0,0x3, 0x1f,0x8e,0x8c,0x3, 0x3f,0x9e,0x87,0x8f,0xe0,0x5, 0xaf,0x92,0xd7,0x75, +0x8f,0x3, 0xe0,0x2, 0x1f,0xc4,0xe4,0x0, 0xc7,0x3, 0x3f,0x1f,0x87,0xe, 0xe0,0x4, +0xaf,0x2, 0x8f,0x3, 0xe4,0x0, 0xc7,0x3, 0x3f,0x1f,0x87,0x1e,0xe0,0x4, 0xaf,0x12, +0x8f,0x3, 0xe4,0x0, 0xc7,0x3, 0x3f,0x9e,0x87,0xaf,0xe0,0x4, 0xaf,0xa2,0x81,0x83, +0xe0,0x0, 0x1f,0xcd,0xe0,0x6, 0xa9,0x82,0x87,0x8f,0xe0,0x1, 0xaf,0xc2,0x9, 0xe1, +0xe0,0x2, 0x19,0xc8,0x8f,0x83,0xe2,0x0, 0xcf,0x82,0xe7,0xff,0x1, 0x8d,0xe0,0x3, +0x1f,0x32,0xe0,0x3, 0x1f,0x9b,0xbf,0xf, 0xe7,0xff,0x0, 0x8b,0xe0,0x2, 0x1f,0x78, +0xe0,0x3, 0x1f,0x95,0xbf,0xf, 0xe7,0xff,0x0, 0x99,0x8, 0xb1,0xe0,0x3, 0x1f,0x93, +0x17,0x0, 0x14,0x1, 0xb7,0xf, 0xe0,0x0, 0xde,0xd7,0xdf,0x2e,0xe0,0x0, 0x1f,0xcd, +0x8c,0xf, 0xe0,0x0, 0xdd,0x3d,0x8, 0xa1,0xe7,0xfe,0x0, 0xd4,0x8, 0xb7,0xf8,0x0, +0xc, 0x38,0xe0,0x2, 0x1f,0xc8,0xe0,0x2, 0x19,0x93,0x8a,0xf, 0xe0,0x1, 0x19,0x4f, +0x13,0x5, 0xe0,0x3, 0x1a,0xb0,0x3b,0x34,0xe0,0x6, 0x8d,0x13,0xe0,0x6, 0x8d,0xa3, +0xe0,0x6, 0x8e,0x43,0xe0,0x3, 0x9e,0xc3,0x9f,0x2, 0xe0,0xf, 0x3a,0x96,0x8b,0x8f, +0xf0,0x0, 0x8c,0x1f,0xad,0xf, 0xe2,0x2, 0xc7,0x0, 0xad,0x9f,0xae,0x2f,0xae,0xcf, +0xe0,0x1, 0x2f,0x72,0x9f,0x82,0xe2,0x0, 0xc7,0x81,0x27,0x91,0x9f,0x82,0xe3,0xff, +0xc7,0xfe,0xb7,0x82,0xe0,0x6, 0x8f,0x93,0x37,0xa3,0xe2,0x0, 0xcf,0x86,0xe0,0x0, +0x2, 0x76,0xe0,0xf, 0x3a,0x96,0xab,0x8f,0xe0,0x6, 0xab,0x93,0x9f,0x82,0xe2,0x0, +0xc7,0x82,0x27,0x91,0x9f,0x82,0xe3,0xff,0xc7,0xfd,0xb7,0x82,0xe0,0x6, 0x8f,0xa3, +0x37,0xa3,0xe2,0x0, 0xcf,0x8b,0xe0,0x0, 0x2, 0x73,0x3a,0x96,0xf0,0x0, 0xac,0x15, +0xf0,0x6, 0xac,0x23,0x9f,0x82,0xe2,0x0, 0xc7,0x84,0xe0,0x0, 0x2f,0xfe,0x9f,0x82, +0xe2,0x0, 0xc7,0x88,0xe0,0x1, 0x2f,0x88,0x9f,0x82,0xe2,0x0, 0xc7,0xa0,0xe0,0x1, +0x2f,0x8f,0x9f,0x82,0xe2,0x0, 0xc7,0xc0,0xe0,0x1, 0x2f,0x9d,0x9f,0x82,0xe2,0x1, +0xc7,0x80,0xe0,0x1, 0x2f,0xaa,0x9f,0x82,0xe2,0x4, 0xc7,0x80,0x27,0xa6,0x9f,0x82, +0xe0,0x3, 0x1f,0x38,0xe3,0xfb,0xc7,0xff,0xa6,0x8e,0xb7,0x82,0xe7,0xbf,0x17,0x7f, +0xe0,0x1, 0xa7,0xed,0xe7,0xc0,0x15,0x80,0x3f,0xde,0xe0,0x1, 0xbf,0xed,0xe0,0x0, +0x1f,0xc4,0xe0,0xb, 0x8f,0x23,0xa6,0xf, 0xe4,0x0, 0xc7,0x32,0xe0,0x1d,0xc6,0x40, +0xa7,0xfc,0xe2,0x3f,0xc7,0x7e,0x3f,0xdb,0x3f,0xce,0xbf,0xfc,0xe0,0x1, 0xa7,0xed, +0xe0,0x40,0xcf,0x80,0xe0,0x1, 0xbf,0xed,0x9f,0x82,0xe2,0x8, 0xc7,0x80,0xe0,0x1, +0x2f,0x93,0x9f,0x82,0xe2,0x20,0xc7,0x80,0x27,0x85,0x9f,0x82,0xe3,0xdf,0xc7,0xff, +0xb7,0x82,0x9f,0x82,0xe2,0x40,0xc7,0x80,0xe0,0x0, 0x2f,0xfe,0x9f,0x82,0xe2,0x80, +0xc7,0x80,0x2f,0xa0,0xf8,0x0, 0xc, 0x28,0xb, 0xe1,0xe0,0x6, 0x8c,0x13,0xe0,0x3, +0xdd,0x6d,0xe7,0xff,0x24,0x8, 0xe0,0x6, 0x8c,0x13,0xdd,0xdc,0xe0,0x0, 0x1f,0xcd, +0x8f,0x8f,0xe7,0xff,0x27,0x85,0xd8,0xc7,0xe7,0xff,0x0, 0x82,0xe0,0x6, 0x8c,0x23, +0xdd,0xea,0xe0,0x0, 0x1f,0xcd,0x8f,0x8f,0xe7,0xff,0x27,0x8e,0xd8,0xbc,0xe7,0xff, +0x0, 0x8b,0x9f,0x82,0x3c,0x64,0xe3,0x7f,0xc7,0xff,0xb7,0x82,0xf8,0x0, 0xc, 0x28, +0xb, 0xa1,0xe7,0xfa,0x0, 0xd7,0x9f,0x82,0x3c,0x64,0xe3,0xff,0xc7,0xfb,0xb7,0x82, +0x9f,0x82,0xe0,0x20,0xcf,0x80,0xb7,0x82,0xde,0x1, 0x9f,0x82,0xe2,0x0, 0xc7,0x88, +0xe7,0xfe,0x27,0xfc,0x9f,0x82,0xe3,0xff,0xc7,0xf7,0xb7,0x82,0xe0,0x6, 0x8c,0x43, +0xdd,0xdb,0x9f,0x82,0xe2,0x0, 0xc7,0xa0,0xe7,0xfe,0x27,0xf5,0x9f,0x82,0x3c,0x64, +0xe3,0xff,0xc7,0xdf,0xb7,0x82,0x9f,0x82,0xe0,0x4, 0xcf,0x80,0xb7,0x82,0x9f,0x82, +0xe0,0x20,0xcf,0x80,0xb7,0x82,0xdd,0xe2,0x9f,0x82,0xe2,0x0, 0xc7,0xc0,0xe7,0xfe, +0x27,0xe7,0xe0,0x2, 0x1f,0xac,0x9f,0x2, 0x8e,0x8f,0xe3,0xff,0xc7,0x3f,0xe4,0x0, +0xc6,0x9c,0x3c,0xe4,0x3f,0x9d,0xa4,0x4f,0xb7,0x2, 0xd4,0xc7,0x9f,0x82,0xe2,0x1, +0xc7,0x80,0xe7,0xfe,0x27,0xda,0x9f,0x82,0xe3,0xfe,0xc7,0xff,0xb7,0x82,0xd5,0xc4, +0xe7,0xfe,0x0, 0xd3,0x9f,0x82,0x3c,0x64,0xe3,0xfd,0xc7,0xff,0xb7,0x82,0xdd,0x4e, +0xe7,0xfe,0x0, 0x8a,0x9f,0x82,0x3c,0x64,0xe3,0xbf,0xc7,0xff,0xb7,0x82,0xdd,0xdf, +0xe7,0xfe,0x0, 0xfe,0x9f,0x82,0x3c,0x64,0xe3,0xf7,0xc7,0xff,0xb7,0x82,0xe0,0x1, +0x8c,0xa3,0xe0,0x3, 0xdc,0xff,0xe7,0xfe,0x0, 0xe6,0x8, 0xb4,0xe0,0x2, 0x19,0x13, +0x8f,0xc2,0xe2,0x0, 0xcf,0x85,0x1, 0x21,0xe2,0x0, 0xcf,0x84,0x1, 0x36,0xe0,0x1, +0x8f,0xf2,0x2f,0x98,0xe0,0x1, 0x1a,0x4f,0x99,0x84,0x29,0x82,0xa, 0x61,0x14,0x1, +0xe0,0x0, 0xdd,0x8a,0xe0,0x43,0x39,0x93,0xe2,0x0, 0xc9,0x80,0x4, 0x13,0xde,0xb7, +0xe0,0x1, 0x8f,0xe2,0xe2,0x1, 0xc7,0xfd,0xe0,0x1, 0xaf,0xe2,0xa, 0x21,0xe0,0x1a, +0x0, 0xaa,0xe0,0x7, 0xd3,0x9f,0x0, 0xe7,0x17,0x81,0xaf,0xc2,0x17,0x82,0xaf,0xc2, +0x0, 0xdf,0x9f,0x84,0xe0,0x2, 0x1f,0x48,0xe2,0xff,0xc7,0xff,0xb7,0x84,0xe0,0x6, +0x8e,0x82,0x8f,0x8e,0x3e,0xff,0x1, 0x64,0xe0,0x6, 0x87,0x82,0xaf,0x8e,0xde,0x86, +0x14,0x1, 0xe0,0x3, 0xd8,0xdf,0x0, 0xdc,0xd8,0x27,0x0, 0xca,0xe0,0x2, 0x1f,0x93, +0xe0,0x2, 0x8f,0x5f,0x27,0x12,0xe0,0x2, 0x8f,0x5f,0xe2,0x0, 0xcf,0x1, 0x1, 0xd, +0xe0,0x2, 0x8f,0x5f,0xe2,0x0, 0xcf,0x3, 0x1, 0x1d,0xe0,0x0, 0x1f,0x33,0x8e,0x8e, +0xe2,0x0, 0xce,0x81,0x1, 0x27,0x38,0x82,0xe0,0x2, 0x1f,0x48,0x8f,0xe, 0xe2,0x0, +0xcf,0x2, 0xe0,0x2, 0x1f,0x2c,0x8e,0x8e,0xe4,0x0, 0xc6,0x9c,0x3f,0x1d,0x1, 0x2f, +0xa6,0xce,0xe0,0x3, 0x1f,0x1b,0xbe,0x8e,0xe0,0x2, 0x8f,0x5f,0xe2,0x0, 0xcf,0x3, +0x1, 0xe5,0xe0,0x2, 0x1f,0x2c,0x8e,0x8e,0xe4,0x0, 0xc6,0x9c,0x3f,0x1d,0xa6,0xce, +0xe0,0x3, 0x1f,0x1b,0xbe,0x8e,0xe0,0x0, 0x1f,0x33,0x8e,0x8e,0xe2,0x0, 0xce,0x81, +0x1, 0xdb,0xe0,0x2, 0x1d,0xc8,0xe0,0x3, 0x1e,0x30,0x8e,0x8b,0xe4,0x0, 0xc6,0x85, +0x3e,0x9c,0x86,0x8d,0xe0,0x6, 0xae,0x9f,0x8e,0x8b,0xe4,0x0, 0xc6,0x85,0x3e,0x1d, +0x86,0x1c,0xe0,0x6, 0xae,0x2f,0x17,0x80,0xaf,0x8e,0x38,0x82,0xa7,0x4e,0xe0,0x3, +0x1e,0x9b,0xe0,0x6, 0xc7,0x26,0xbf,0xd, 0xe7,0xff,0x0, 0xb4,0x8, 0xb1,0xe0,0x2, +0x1e,0xc0,0xe0,0x2, 0x1e,0x12,0x17,0x80,0xe0,0x4, 0xaf,0xdd,0x17,0x80,0x97,0xc, +0xe3,0xfe,0xc7,0x7f,0xb7,0xc, 0xe0,0x3, 0x1f,0x13,0xe0,0x4, 0x8e,0xdd,0xb7,0x8e, +0xe0,0x2, 0x1f,0x72,0xb7,0x8e,0xe0,0x0, 0x1f,0x48,0xb7,0x8e,0xe0,0x2, 0x1f,0x93, +0x8f,0x6f,0xe0,0x0, 0x1f,0xae,0xae,0x8f,0xe0,0x2, 0x1f,0xfa,0xaf,0xf, 0xe0,0x1, +0xdf,0x41,0xdd,0x67,0x14,0x0, 0xe0,0x3, 0xd8,0x5d,0xe0,0x1, 0x1f,0xf2,0xe0,0xc, +0x15,0x52,0xa4,0xf, 0xe0,0x2, 0x1f,0x81,0xa4,0x8f,0xe0,0x8, 0xd0,0x8b,0xe0,0x3, +0xd6,0x1e,0xe0,0x2, 0x1f,0xf7,0xe0,0x2, 0x1f,0x48,0x8f,0x8f,0x8f,0xe, 0x37,0xde, +0xe2,0x0, 0xc7,0x81,0x27,0x82,0x8, 0xe1,0x8, 0xa1,0xe0,0x18,0x0, 0xf4,0xe0,0x0, +0x1f,0xcd,0xe0,0x2, 0x1f,0x13,0x87,0x8f,0xe0,0x1, 0x1e,0xcc,0xe0,0x1, 0xaf,0xce, +0x14,0x3, 0x86,0x8d,0xe0,0x2, 0x1f,0xde,0xae,0xfe,0xe0,0x3, 0x16,0x91,0x8d,0xee, +0xe0,0x2, 0x1e,0x7a,0x17,0x0, 0x3e,0x9f,0xe0,0x3, 0xc7,0x90,0xad,0x8c,0xaf,0xd, +0xaf,0xf, 0xe0,0x3, 0x0, 0xa8,0x0, 0x0, 0x8, 0xb1,0xe0,0x1, 0x1f,0xf2,0xe0,0x0, +0x1c,0x1f,0xa4,0x8f,0xe0,0xc, 0x15,0x52,0xe0,0x8, 0xd0,0x54,0xe0,0x0, 0x1e,0x1e, +0xe0,0x0, 0x1f,0x1d,0xe0,0x0, 0x1d,0x1c,0x9f,0x9e,0xe0,0x43,0x3d,0x9f,0xe2,0x0, +0xcd,0x80,0xe0,0x41,0x3e,0xcf,0xe3,0xff,0xc6,0xff,0xe0,0x6f,0x3d,0x2d,0xe0,0x80, +0xb7,0x9e,0x9e,0x8c,0x3e,0xff,0x3, 0x82,0xb7,0x8c,0x3f,0x7a,0xc6,0x2, 0x1, 0xed, +0x8, 0xe1,0x0, 0x0, 0x8, 0xb6,0xea,0x11,0x7b,0x52,0xe0,0x2, 0x1a,0x13,0x99,0x6, +0xe0,0x2, 0xa9,0x44,0xe0,0x2, 0x8f,0x94,0xe2,0x0, 0xcf,0x81,0x1, 0xa, 0x21,0x8, +0xe0,0x2, 0x1f,0x12,0x16,0x80,0x97,0x8e,0xb6,0x86,0xcf,0x84,0xb7,0x8e,0xb, 0x61, +0x87,0x84,0xe7,0xff,0x17,0x0, 0x3f,0xce,0xe2,0x0, 0xc9,0x5, 0xaf,0x84,0x2, 0x9d, +0xe0,0x0, 0x1c,0x1e,0xe0,0xc, 0x15,0x52,0x14,0x80,0xe0,0x8, 0xd0,0x4d,0xe0,0x2, +0x1c,0xa, 0xe0,0xc, 0x15,0x52,0x14,0x80,0xe0,0x8, 0xd0,0x46,0xe0,0x0, 0x1c,0x1f, +0xe0,0xc, 0x15,0x52,0x14,0x80,0xe0,0x8, 0xd0,0x3f,0xe0,0x2, 0x1c,0x9, 0xe0,0xc, +0x15,0x52,0x14,0x80,0xe0,0x8, 0xd0,0x38,0xc1,0x1, 0xe3,0xff,0xc1,0x7f,0xe2,0x0, +0xc9,0x5, 0xb1,0x6, 0x2, 0xb8,0xe0,0x2, 0x8f,0xb4,0xe0,0x2, 0x8f,0x24,0x37,0xa8, +0x3f,0x9e,0xc7,0x85,0x39,0x7f,0x1, 0xcc,0xe0,0x3, 0x1f,0x13,0x17,0x80,0xe0,0x2, +0x1e,0x97,0xb7,0x8e,0x11,0x0, 0xb7,0x8d,0x12,0x8a,0xe0,0x0, 0x1f,0x1e,0xe0,0x2, +0xaf,0x94,0x39,0xee,0xe0,0x2, 0x1f,0xe3,0xbf,0xf, 0x9a,0x3, 0xe2,0x0, 0xca,0x46, +0x5, 0x8c,0x21,0x1b,0xe0,0x40,0x9f,0x93,0x9c,0x13,0x3c,0xe5,0x3c,0x1f,0xe0,0x7, +0xdf,0x9e,0xe0,0x8, 0x3a,0x28,0xb4,0x3, 0xc1,0x1, 0xe3,0xff,0xc1,0x7f,0xe2,0x6, +0xc9,0x29,0xc1,0x82,0x1, 0xeb,0x17,0x80,0xb7,0x86,0x17,0x1, 0xe0,0x2, 0x1f,0x8d, +0xaf,0xf, 0xb, 0x61,0xdf,0x62,0x0, 0xc8,0x3f,0xe2,0x0, 0xe7,0x8, 0xb7,0xf8,0x0, +0xc, 0x3b,0xe0,0x3, 0x19,0xc7,0xde,0xfb,0x8f,0x83,0xe2,0x0, 0xcf,0x83,0xe0,0x0, +0x1, 0xc0,0xe0,0x2, 0x19,0x13,0xe0,0x2, 0x1b,0xfa,0xe0,0x2, 0x1a,0xe6,0xf0,0x1, +0x1d,0xf2,0xf0,0x2, 0x1d,0x9, 0xe0,0x13,0x12,0x44,0x13,0x1, 0xf0,0x0, 0x14,0x0, +0xf0,0xc, 0x14,0xd2,0x0, 0x86,0xdf,0x24,0x8f,0x83,0xe2,0x0, 0xcf,0x83,0x1, 0xa8, +0xde,0x45,0xe0,0x0, 0xde,0xf4,0xde,0x83,0x3c,0x64,0xe0,0x6, 0xd9,0xf8,0x8f,0x82, +0x37,0xc7,0x27,0xf2,0x3c,0x66,0xe0,0x0, 0xdb,0xd7,0xe0,0x1, 0xde,0x77,0xe0,0x2, +0xdb,0x9f,0x8f,0x87,0xe2,0x0, 0xcf,0x81,0x1, 0x1d,0xe0,0x2, 0x8f,0x92,0x2f,0x9a, +0x8f,0x85,0x27,0x82,0xdf,0x48,0xe0,0x2, 0x8f,0x92,0x2f,0xde,0x87,0x82,0xe2,0x0, +0xc7,0xff,0xaf,0x82,0xde,0xfd,0x8f,0x83,0xe2,0x0, 0xcf,0x83,0x1, 0x5a,0xe0,0x1, +0x1f,0xc5,0x17,0x1, 0x14,0x1, 0xaf,0xf, 0xf8,0x0, 0xd, 0xa8,0xb, 0xa1,0xe0,0x17, +0x0, 0xb3,0x8f,0x85,0x27,0xe9,0xe0,0x3, 0xdf,0xee,0xe0,0x2, 0x8f,0x92,0xe2,0x0, +0xcf,0x81,0x1, 0xc, 0xe0,0x3, 0xde,0x4b,0xef,0xfe,0xd9,0xbd,0xe0,0x1, 0xdf,0xcc, +0xe8,0x40,0x3c,0x68,0xe0,0x4, 0xdf,0xe4,0x0, 0xd4,0xe8,0x0, 0xa4,0x8b,0xe8,0x40, +0x3d,0x69,0xe8,0x40,0x3c,0x6a,0xe0,0x7, 0xdf,0x4d,0x0, 0xed,0x8, 0xb1,0xe2,0x0, +0xcc,0x66,0x1, 0x2f,0x5, 0x98,0xe2,0x1, 0xcc,0x8, 0x1, 0x9, 0xe2,0x1, 0xcc,0x2a, +0x1, 0xa3,0xe0,0x3, 0x1f,0x9a,0x17,0x5, 0xaf,0xf, 0x8, 0xe1,0xe0,0x3, 0x1f,0x9a, +0x8f,0x8f,0xe2,0x0, 0xcf,0x85,0x1, 0xfa,0x14,0x1, 0xe0,0x1, 0xd9,0x9f,0x8, 0xa1, +0xe0,0x32,0x0, 0xf6,0xe2,0x0, 0xcc,0x55,0x1, 0x8f,0xe0,0x3, 0x1f,0x9a,0x8f,0x8f, +0xe2,0x0, 0xcf,0x85,0x1, 0xeb,0x14,0x1, 0xe0,0x1, 0xd9,0x90,0xe0,0x1, 0xd9,0x42, +0x8, 0xa1,0xe0,0x32,0x0, 0xd4,0xe0,0x3, 0x1f,0x9a,0x17,0x1, 0xaf,0xf, 0x8, 0xe1, +0xe0,0x3, 0x1f,0x9a,0x8f,0x8f,0xe2,0x0, 0xcf,0x85,0x1, 0xd8,0x14,0x1, 0xe0,0x1, +0xd9,0x7d,0xe0,0x1, 0x1f,0xdc,0x17,0x7f,0xa7,0x8f,0xe0,0x7, 0xaf,0x3f,0x8, 0xe1, +0x8, 0xb4,0xe0,0x1, 0x1a,0x72,0xe0,0xc, 0x11,0xd2,0xa4,0x84,0xe0,0x3, 0x1c,0x10, +0x3d,0x63,0xe0,0x7, 0xde,0xff,0xe0,0x4, 0xdc,0x37,0xe0,0x0, 0x1c,0x8d,0xe0,0x0, +0x1c,0x12,0xe0,0x3, 0x19,0x3e,0xe0,0x3, 0x15,0x40,0xe0,0x7, 0xde,0xf3,0x3d,0x63, +0x14,0x80,0x3c,0x62,0xe0,0x7, 0xdf,0x28,0xa4,0x84,0x3d,0x63,0x3c,0x62,0xe0,0x7, +0xde,0xe9,0x17,0xac,0xb7,0x82,0xa, 0x61,0x8, 0xb1,0xe0,0x1, 0x1f,0xf2,0xe0,0x3, +0x1c,0x10,0xa4,0x8f,0xe0,0xc, 0x15,0x52,0xe0,0x7, 0xde,0xdc,0xe0,0x0, 0x1c,0x8d, +0xe0,0x0, 0x1c,0x12,0xe0,0x3, 0x15,0x40,0xe0,0x7, 0xde,0xd4,0x8, 0xe1,0x8, 0xb1, +0xe0,0x1, 0x1f,0xf2,0xe0,0x3, 0x1c,0x90,0xa4,0xf, 0xe0,0xc, 0x15,0x52,0xe0,0x7, +0xde,0xc9,0xe0,0x1, 0x1f,0xd7,0xe0,0x3, 0x8f,0xbf,0x2f,0x85,0xe0,0x3, 0xd3,0x7f, +0xef,0xfe,0xd9,0x21,0x14,0x1, 0xe0,0x6, 0xd6,0xe, 0x14,0x1, 0x8, 0xa1,0xe0,0x9e, +0x0, 0xc7,0xe0,0x2, 0x1f,0x40,0xe0,0x3, 0x1f,0xc7,0xe0,0x4, 0x87,0x7e,0xaf,0xf, +0x38,0x82,0x8, 0xb2,0xe0,0x2, 0x1f,0xc0,0x17,0x0, 0xe0,0x4, 0xaf,0x5f,0x17,0x0, +0xe0,0x4, 0x8e,0x5f,0xe0,0x0, 0x1e,0xae,0xe0,0x2, 0x1f,0xec,0xe0,0x2, 0x19,0x7d, +0xae,0xd, 0xb7,0xf, 0xe0,0x19,0x17,0x1c,0xe0,0x2, 0x1e,0xc8,0x3f,0x12,0x17,0x81, +0xaf,0x8d,0xaf,0x8e,0xe0,0x1, 0xdd,0x3e,0xdb,0x64,0xe0,0x1b,0x14,0x2c,0xe0,0x6, +0xd8,0xf6,0xe0,0x6, 0xd2,0x9b,0xe0,0x3, 0xd4,0x22,0x14,0x1, 0xe0,0x3, 0xd6,0x52, +0xe0,0x5, 0xd7,0x9a,0xe0,0x19,0x17,0x1d,0x17,0x87,0x3f,0x12,0xaf,0x8e,0xe0,0x19, +0xc1,0x1e,0xaf,0x82,0x9, 0x61,0x0, 0x0, 0x8, 0xb7,0xf8,0x0, 0xc, 0x3e,0xe0,0x1, +0x1f,0xc5,0xe0,0x2, 0x19,0x40,0x8f,0x8f,0x27,0x87,0xe0,0xd, 0x8f,0xe2,0xe2,0x0, +0xcf,0x81,0xe0,0x2, 0x1, 0x19,0xdf,0xbe,0xe0,0x3, 0x19,0xc7,0xe0,0x0, 0x1b,0xb8, +0xf0,0x0, 0x1d,0x9a,0xe0,0x0, 0x1a,0x39,0xe0,0x0, 0x1a,0xbc,0xf0,0x1, 0x1d,0x13, +0xf0,0x1, 0x1c,0x92,0xf0,0x2, 0x1c,0x66,0xe0,0x1, 0x1b,0x69,0xf0,0x1, 0x1e,0x68, +0x8f,0x83,0xe2,0x0, 0xcf,0x81,0xe0,0x1, 0x1, 0x96,0x87,0x84,0x17,0x0, 0xc7,0x81, +0xe2,0x1, 0xc7,0xff,0xe0,0x2, 0xaf,0x92,0xe0,0xa, 0x8e,0x82,0xaf,0x7, 0xe8,0x0, +0xaf,0xb, 0xaf,0x84,0xe0,0x1, 0x2e,0x98,0x9f,0x85,0xe2,0x0, 0xcf,0xe3,0xe0,0x1, +0x2, 0x93,0x9f,0x85,0xc7,0x81,0xb7,0x85,0xe0,0x1, 0xd3,0x77,0xe0,0x4, 0xd7,0xbe, +0xe0,0x0, 0xdd,0x95,0xe8,0x0, 0x8f,0x8a,0xe8,0x0, 0x8c,0x9, 0x37,0xa8,0x3c,0x4f, +0xe0,0x6, 0xd8,0x95,0xe0,0x2, 0xd9,0x94,0xe0,0x4, 0xde,0x97,0xe8,0x0, 0x8f,0x88, +0xe0,0x0, 0x27,0xfe,0x8f,0x86,0xe0,0x0, 0x27,0xdb,0xe0,0x3, 0xde,0xac,0xe8,0x0, +0x8f,0x8c,0xe2,0x0, 0xcf,0x84,0xe0,0x1, 0x1, 0x15,0xf0,0x1, 0x1f,0x57,0xe8,0x3, +0x8f,0xbe,0xe0,0x0, 0x27,0xf7,0xf0,0x2, 0x1e,0xc8,0xe0,0x1, 0xde,0x85,0xe8,0x0, +0x8c,0x8d,0xe8,0x0, 0x8c,0xc, 0xe0,0x2, 0xd9,0x56,0xe8,0x0, 0x8f,0xd, 0xe8,0x0, +0x8f,0x8d,0xe2,0x0, 0xcf,0x81,0xe0,0x0, 0x1, 0x6b,0xe0,0x0, 0x1f,0x93,0x17,0x0, +0xaf,0xf, 0x8f,0x86,0x27,0xb4,0x14,0x1, 0xe0,0x6, 0xd5,0x4d,0x14,0x0, 0xe0,0x4, +0xde,0x87,0x8f,0x87,0xe2,0x0, 0xcf,0x81,0xe0,0x1, 0x1, 0x23,0xe2,0x0, 0xcf,0x82, +0xe7,0xff,0x1, 0x18,0xe8,0x0, 0x8f,0x8d,0xe2,0x0, 0xcf,0x82,0xe0,0x1, 0x1, 0x1d, +0xe0,0x4, 0x8f,0xc2,0xe2,0x0, 0xcf,0x81,0xe0,0x1, 0x1, 0x6, 0xe0,0x2, 0xd6,0xb2, +0xe0,0x2, 0xde,0x2f,0x14,0x2, 0xe0,0x6, 0xd5,0x2e,0xe0,0x6, 0xd5,0xd3,0x14,0x3, +0xe0,0x6, 0xd5,0x29,0xe0,0x4, 0xd4,0xd0,0x14,0x4, 0xe0,0x6, 0xd5,0x24,0xe0,0x6, +0xd8,0x4d,0xef,0xff,0xd1,0xea,0x8f,0x86,0xe0,0x0, 0x2f,0xca,0x87,0x83,0xe0,0x5, +0xd6,0xd2,0xe0,0x4, 0x87,0xf2,0xaf,0x83,0x8f,0x83,0xe2,0x0, 0xcf,0x81,0xe7,0xfe, +0x1, 0x6e,0x14,0x1, 0xe0,0x0, 0xda,0x8, 0xe0,0x4, 0x8f,0xc2,0xe2,0x0, 0xcf,0x81, +0x1, 0x87,0xe0,0x1, 0x1f,0xdc,0xa7,0xf, 0xa7,0xce,0xcf,0x84,0xbf,0xce,0xf8,0x0, +0xf, 0x28,0xb, 0xe1,0x17,0x80,0xb7,0x85,0xe7,0xfe,0x0, 0xf0,0x8f,0x86,0xe7,0xfe, +0x27,0xd1,0xe0,0x1, 0xd6,0x4a,0xe0,0x4, 0x87,0xf2,0xaf,0x83,0xe7,0xfe,0x0, 0xca, +0xe0,0x3, 0xd2,0x5d,0xef,0xfe,0xd7,0xff,0xe7,0xff,0x0, 0x87,0xe8,0x0, 0x8f,0x8c, +0x16,0x84,0xe0,0x2f,0x3f,0x8d,0xe7,0xff,0x27,0x96,0xe0,0x3, 0x1f,0xac,0xe4,0x0, +0xc7,0xe, 0x3f,0x1f,0x8f,0xbe,0xe7,0xff,0x27,0x8e,0xde,0x83,0xe7,0xff,0x0, 0x8b, +0xe0,0x3, 0x1f,0xc0,0x17,0x1, 0xaf,0xf, 0xe7,0xfe,0x0, 0xe9,0xe0,0x6, 0xdf,0xa5, +0xe0,0x0, 0x1f,0x87,0xe8,0x3, 0x87,0x3e,0x86,0xf, 0xe0,0x2, 0x1f,0xdf,0x86,0x8f, +0xe0,0x0, 0x1f,0x85,0xae,0xf, 0xe0,0x2, 0x1f,0xdd,0xae,0x8f,0x16,0x80,0xe0,0x2, +0x1f,0xdb,0xae,0x8f,0xe0,0x1, 0x1f,0xcc,0x87,0x8f,0xe0,0x5, 0xaf,0xb2,0xe0,0x2, +0x1f,0xa8,0xaf,0xf, 0xe0,0x1, 0xd6,0x9, 0xef,0xfe,0xdf,0xcd,0xef,0xfe,0xd8,0x55, +0xe7,0xff,0x0, 0xbb,0xe0,0x1, 0x1f,0xdc,0xa7,0xf, 0xa7,0xce,0xcf,0x84,0xbf,0xce, +0xe7,0xfe,0x0, 0xf6,0xe0,0x2, 0x1f,0x7a,0xaf,0x8e,0xe7,0xfd,0x0, 0xe7,0xde,0x80, +0x8f,0x87,0xe7,0xfe,0x0, 0xdd,0xde,0x69,0xe7,0xfe,0x0, 0xe4,0x8, 0xb2,0xe0,0x2, +0x1f,0x40,0x16,0x81,0xe0,0x4, 0xae,0xfe,0x14,0x2, 0xe0,0x4, 0x87,0x7e,0xe0,0x3, +0x1e,0xc7,0xe0,0x2, 0x1f,0xfd,0xaf,0xd, 0x16,0x80,0xe0,0x2, 0x1f,0x13,0xe0,0x1, +0x1e,0x5c,0xae,0x8e,0xe0,0x19,0x16,0x9d,0x3e,0x9f,0x17,0x7, 0xa1,0xc, 0xaf,0xd, +0xe0,0x19,0xc7,0x9e,0xaf,0xf, 0x17,0x7b,0xa7,0xc2,0x3f,0xde,0xbf,0xc2,0xe0,0x1, +0xd7,0x95,0xa7,0xc2,0xcf,0x84,0xbf,0xc2,0x9, 0x61,0x0, 0x0, 0x8, 0xb2,0xe0,0x2, +0x19,0x40,0xe0,0x6, 0xd7,0x22,0xe0,0x2, 0xda,0xa7,0xe0,0x2, 0xdb,0xf8,0xe0,0x1, +0xdb,0xbb,0xe0,0x4, 0xd0,0x21,0xe0,0x4, 0xd1,0x49,0xdf,0xc9,0xe0,0x4, 0x8f,0xf2, +0xe2,0x0, 0xcf,0x81,0x1, 0xa, 0xe2,0x0, 0xcf,0x83,0x1, 0xf9,0xdd,0x50,0xe0,0x4, +0x8f,0xf2,0xe2,0x0, 0xcf,0x81,0x1, 0xf8,0xde,0x88,0x0, 0xf1,0xe0,0xe, 0x34,0x22, +0xe0,0xf, 0x34,0x42,0xe0,0x43,0x3f,0xe, 0xe0,0x3, 0x1d,0xb8,0x16,0x4, 0x16,0x81, +0x3e,0xdf,0x3e,0x5e,0xf0,0x0, 0xa3,0x8b,0x3e,0x4d,0xe2,0x0, 0xc4,0x12,0x16,0x88, +0xe2,0x0, 0xc7,0x20,0x3e,0xdf,0x3e,0x48,0xe0,0x0, 0x1f,0xc4,0xe8,0x1, 0xa5,0xe7, +0x3e,0x4e,0x3e,0xcc,0xa7,0x8f,0xe7,0xbf,0x17,0x7f,0x3f,0x5b,0xe4,0xd, 0x36,0xa5, +0xe0,0x24,0x15,0xf0,0xe0,0x3, 0x1c,0xc8,0xe0,0x3, 0x1d,0x49,0xe8,0x1, 0xbf,0x67, +0xe4,0xc, 0x36,0x2c,0xea,0xe, 0xc6,0x80,0x3d,0x9f,0xe0,0x1a,0xa7,0x2f,0xe0,0x7, +0xc7,0xb0,0x3f,0x59,0xe0,0x43,0xbf,0x2f,0x3f,0xfb,0xe0,0x43,0xa7,0x2f,0x3f,0x4c, +0xe0,0x43,0xbf,0x2f,0xe0,0x40,0xa7,0x1f,0x3f,0x5a,0xe0,0x40,0xbf,0x1f,0xe0,0x40, +0xa7,0x1f,0x3f,0x4d,0xe0,0x40,0xbf,0x1f,0x1, 0xe9,0xe8,0x1, 0xa7,0xe7,0xe0,0x40, +0xcf,0x80,0xe8,0x1, 0xbf,0xe7,0x38,0x82,0x8, 0xb7,0xf8,0x0, 0xc, 0x3b,0xe0,0x2, +0x1f,0x66,0xe0,0x2, 0x1f,0xfd,0x87,0xe, 0x15,0x85,0xe0,0x3, 0x8e,0x2f,0x3d,0xb9, +0xe0,0x3, 0x1e,0xb0,0xe2,0x0, 0xc7,0x1, 0x3e,0x7e,0x3e,0x9b,0xf0,0x40,0x3d,0x69, +0xf0,0x40,0x3c,0xe8,0x8a,0xbd,0xe0,0x1, 0x1, 0x69,0x9b,0x5f,0xe0,0x1, 0x8a,0xf, +0xf0,0x2, 0x1d,0xf9,0xe0,0x3, 0x1f,0xb8,0xe4,0x7, 0xc2,0xb0,0xa1,0x8f,0xe0,0x0, +0x1f,0xc4,0xe7,0xbf,0x17,0x7f,0xa1,0xf, 0xe0,0x1, 0xa7,0xe3,0x3a,0x92,0x13,0xa0, +0x3f,0xde,0xf2,0x0, 0xcd,0x2, 0x3b,0x95,0xe0,0x6, 0x17,0x26,0xe8,0xe, 0x3f,0x19, +0xe0,0x6, 0x15,0x28,0x14,0x80,0xe0,0x1, 0xbf,0xe3,0x3c,0x67,0xf0,0x6, 0x14,0x48, +0xe0,0x79,0x39,0x2e,0xf0,0x18,0x3c,0x15,0xe0,0x7, 0xdc,0xae,0xe0,0x0, 0x15,0x68, +0x14,0x80,0xe8,0x40,0x3c,0x68,0xe0,0x7, 0xdc,0xa7,0x23,0x2e,0x14,0x7f,0x3c,0x16, +0xe3,0xff,0xc4,0x7f,0x14,0xfe,0x15,0x7f,0xe8,0x9, 0x3c,0x9b,0xe8,0xa, 0x3d,0x19, +0xe8,0x8, 0x3c,0x19,0xf0,0x0, 0x13,0x81,0xe0,0x80,0x9f,0x19,0x17,0x84,0x3f,0x9e, +0xe0,0xd, 0x37,0x82,0x36,0xa2,0xe0,0x80,0x8d,0x9a,0x3e,0x97,0xe0,0x41,0x3f,0xe, +0xa6,0xd, 0x37,0x23,0x35,0xbe,0xe0,0xe, 0x37,0x85,0x3e,0x4b,0x37,0x22,0xbe,0xd, +0xe8,0xe, 0x3f,0x18,0xa6,0x8e,0xe0,0x41,0x3f,0x8f,0xf0,0xf, 0x33,0xbf,0x3f,0xcd, +0x3c,0x7a,0xbf,0x8e,0x1, 0xe2,0xe0,0x1, 0xa6,0x5, 0xe0,0x1a,0xa6,0x95,0xe8,0x6, +0x3b,0x19,0x17,0x90,0xe1,0x80,0x8f,0x16,0x37,0x3f,0x3e,0x4e,0xe0,0x1, 0xbe,0x5, +0x8f,0x26,0x37,0x3f,0xc7,0xf8,0x3e,0xce,0xe3,0xff,0xcf,0xf8,0xe0,0x1a,0xbe,0x95, +0x1, 0xf2,0xf2,0x0, 0xcd,0x1, 0x1, 0xe, 0xe0,0x1, 0xa7,0xe3,0x3c,0x64,0xe0,0x40, +0xcf,0x80,0xe0,0x1, 0xbf,0xe3,0xf8,0x0, 0xd, 0xa8,0xb, 0xa1,0xe7,0xfe,0x0, 0x98, +0x3d,0x2, 0x16,0x9c,0x3e,0x95,0xe0,0x16,0x15,0x90,0x3e,0x6d,0x17,0x0, 0x3d,0x92, +0x17,0x88,0x3f,0x9e,0x37,0xa2,0xc7,0x1, 0xe0,0x80,0xa5,0x1c,0x3f,0x9b,0xe2,0x1, +0xcf,0x4a,0xbd,0xf, 0x1, 0xf6,0xe0,0x6, 0xc2,0xc4,0xe0,0x16,0x15,0x90,0x3e,0x65, +0x17,0x0, 0x3d,0x92,0xe0,0x1, 0x17,0xd2,0x3f,0x9e,0x37,0xa2,0xc7,0x1, 0xe0,0x80, +0xa5,0x1c,0x3f,0x9b,0xe2,0x0, 0xcf,0x1a,0xbd,0xf, 0x1, 0xf5,0xe0,0x1d,0x15,0xc0, +0x3e,0x6d,0x17,0x0, 0x3d,0x92,0x17,0x88,0x3f,0x9e,0x37,0xa2,0xc7,0x1, 0xe0,0x80, +0xa5,0x1c,0x3f,0x9b,0xe2,0x1, 0xcf,0x4a,0xbd,0xf, 0x1, 0xf6,0xe0,0x1d,0x15,0xc0, +0x3e,0x65,0x17,0x0, 0xe0,0xb, 0x3d,0x92,0xe0,0x1, 0x17,0xd2,0x3f,0x9e,0x37,0xa2, +0xc7,0x1, 0xe0,0x80,0xa5,0x1c,0x3f,0x9b,0xe2,0x0, 0xcf,0x1a,0xbd,0xf, 0x1, 0xf5, +0x17,0x0, 0x17,0x88,0x3f,0x9e,0x37,0xa2,0xc7,0x1, 0xe0,0x80,0xa6,0x1d,0x3f,0x92, +0xe2,0x1, 0xcf,0x4a,0xbe,0xf, 0x1, 0xf6,0xe0,0x0, 0x17,0x0, 0xe0,0x1, 0x17,0xd2, +0x3f,0x9e,0x37,0xa2,0xc7,0x1, 0xe0,0x80,0xa6,0x95,0x3f,0x92,0xe2,0x0, 0xcf,0x1a, +0xbe,0x8f,0x1, 0xf5,0xe7,0xff,0x0, 0x92,0x9b,0x6f,0xe0,0x1, 0x8a,0x1f,0xf0,0x2, +0x1d,0xf8,0xe7,0xfe,0x0, 0x99,0x8, 0xb5,0xe0,0x2, 0x1f,0xe6,0xe0,0x2, 0x1f,0x7d, +0x87,0x8f,0xe0,0x3, 0x8e,0xae,0xe2,0x0, 0xc7,0x81,0x3e,0xff,0xe0,0x0, 0x1, 0x49, +0x9a,0x5e,0xe0,0x2, 0x19,0x79,0xe0,0x3, 0x1f,0xb8,0xe7,0xbf,0x17,0x7f,0xa2,0x8f, +0xe0,0xc, 0x15,0x40,0xe0,0x1, 0xa7,0xe5,0x14,0x80,0x3f,0xde,0xe0,0x3, 0x1f,0x3f, +0xe0,0x1, 0xbf,0xe5,0xa1,0x8e,0xe0,0xc, 0xc1,0xd0,0x3c,0x63,0xe0,0x7, 0xdb,0xc4, +0x3e,0x62,0x16,0x80,0x2a,0xe, 0x0, 0xa5,0x9d,0x8c,0xa7,0xf, 0xc6,0x81,0xe4,0xb, +0x35,0xa0,0xe3,0xff,0xc6,0xff,0x3f,0x4b,0x3a,0x7d,0xbf,0xf, 0xc6,0x2, 0x1, 0x19, +0xe0,0xf, 0x36,0xc1,0x3f,0x6f,0x15,0x81,0xe3,0xff,0xc7,0xff,0xe3,0xff,0xc7,0x7f, +0x37,0xa2,0x3d,0xdd,0x37,0x22,0x3f,0x93,0x25,0xe8,0x3f,0x13,0x9d,0x8c,0xa7,0x8e, +0xc6,0x81,0xe3,0xff,0xc6,0xff,0x3f,0xcb,0x3a,0x7d,0xbf,0x8e,0xc6,0x2, 0x1, 0xe9, +0xe0,0x1, 0xa7,0xe5,0xe0,0x40,0xcf,0x80,0xe0,0x1, 0xbf,0xe5,0xa, 0xe1,0x9a,0x6e, +0xe0,0x2, 0x19,0x78,0xe7,0xff,0x0, 0xb9,0x8, 0xb5,0x11,0x3, 0x39,0x38,0xe0,0x2, +0x1a,0x44,0x17,0x5, 0x3f,0x38,0x39,0x14,0xe0,0x3, 0x1f,0xb0,0x39,0xe8,0x8c,0x2, +0x3f,0x9e,0x8a,0xbf,0xe0,0x7, 0xd2,0x2c,0x8c,0x92,0x3c,0x65,0xe0,0x7, 0xd2,0x5e, +0x8c,0xa2,0x3c,0x65,0xe0,0x7, 0xd2,0x97,0xe2,0x0, 0xc9,0x81,0x1, 0x2, 0xa, 0xe1, +0x8c,0xc4,0x14,0x3, 0xe0,0x7, 0xd2,0x52,0x8c,0xd4,0x14,0x3, 0xe0,0x7, 0xd2,0x8b, +0x8c,0xc4,0x14,0x4, 0xe0,0x7, 0xd2,0x4a,0x8c,0xd4,0x14,0x4, 0xe0,0x7, 0xd2,0x83, +0x8c,0xc4,0x14,0x0, 0xe0,0x7, 0xd2,0x42,0x8c,0xd4,0x14,0x0, 0xa, 0xa1,0xe0,0xe4, +0x0, 0xfa,0xe2,0x0, 0xcc,0x82,0xe0,0x0, 0x2, 0xe1,0x8, 0xb5,0x17,0xfd,0x3f,0x98, +0xe2,0x0, 0xcf,0x81,0x39,0x68,0x3a,0x69,0xe0,0x1, 0x5, 0x88,0xe0,0x0, 0x2c,0x57, +0xe0,0x3, 0x1f,0xb8,0xe7,0xbf,0x16,0x7f,0xa6,0x8f,0xe0,0x0, 0x1f,0xc4,0xe0,0x1, +0xa7,0x6d,0xa7,0x8f,0x3f,0x5c,0xe0,0x1, 0xbf,0x6d,0xe2,0x0, 0xcc,0x81,0xa7,0x4f, +0xe6,0x7, 0x16,0x7f,0x3f,0x5c,0xe0,0x0, 0x1, 0x4a,0xe0,0x28,0xcf,0x0, 0xbf,0x4f, +0x16,0x40,0xa7,0x4f,0xe7,0xf8,0x15,0x80,0x3f,0x5c,0xcf,0x5, 0xbf,0x4f,0x12,0x85, +0xa7,0x5f,0xe0,0x3, 0x1e,0x4a,0x3a,0xb9,0x3f,0x5c,0xe8,0x0, 0xcf,0x5, 0xbf,0x5f, +0xa7,0x5f,0xe0,0x3, 0x19,0xb0,0x3f,0x5b,0xcf,0x5, 0xbf,0x5f,0xe0,0xc, 0x39,0x95, +0xe0,0x1, 0xa7,0xed,0xe0,0x40,0xcf,0x80,0xe0,0x1, 0xbf,0xed,0x8c,0xcc,0xe0,0x7, +0xd0,0x19,0xe0,0x3, 0x1f,0x8e,0x3c,0x62,0x3f,0x94,0x84,0x8f,0xe0,0x7, 0xd0,0x3d, +0x39,0x95,0x8d,0x23,0x3c,0x62,0x3c,0xea,0xe0,0x7, 0xd0,0xf9,0x8c,0x83,0x3c,0x62, +0x34,0xa3,0xe0,0x7, 0xd0,0xac,0x8c,0x93,0x3c,0x62,0x34,0xa3,0xe0,0x7, 0xd0,0xca, +0x3c,0x64,0xa, 0xa1,0xe7,0xfe,0x0, 0xea,0x38,0x82,0x12,0x85,0x3a,0xb9,0xe0,0x3, +0x19,0xb0,0xe0,0xf, 0x39,0x95,0x8c,0xcf,0x0, 0xdb,0xe0,0x50,0xcf,0x0, 0xbf,0x4f, +0x16,0x40,0xa7,0x4f,0x14,0x85,0x3f,0x5c,0xcf,0xa, 0xbf,0x4f,0x3a,0xe9,0xa7,0x5f, +0xe0,0x3, 0x1e,0x4a,0xe0,0x3, 0x19,0xb0,0x3f,0x5c,0xe8,0x0, 0xcf,0xa, 0xbf,0x5f, +0xe7,0xf8,0x16,0x0, 0xa7,0x5f,0x3f,0x5c,0xcf,0xa, 0xbf,0x5f,0xe0,0x1, 0xa7,0xed, +0xe0,0x40,0xcf,0x80,0xe0,0x1, 0xbf,0xed,0xe0,0x6, 0xdf,0xd4,0x3c,0xe2,0x3c,0x62, +0xe0,0x6, 0xdf,0xfb,0xe7,0xff,0x0, 0xbe,0x14,0x8a,0xe0,0x6, 0xdf,0xcb,0x14,0x80, +0x3c,0x62,0x12,0x85,0xe0,0x6, 0xdf,0xf1,0xe0,0x3, 0x19,0xb0,0x3a,0xb4,0xe7,0xff, +0x0, 0xb1,0x0, 0x0, 0xe0,0x2, 0x1f,0x66,0xe0,0x0, 0x1d,0x3b,0xe0,0x2, 0x1f,0xfd, +0x87,0xe, 0xf0,0x1, 0x8b,0xfa,0xe0,0x3, 0x8e,0xaf,0xe2,0x0, 0xc7,0x1, 0xe8,0xc, +0x3d,0x17,0x3e,0xfe,0xf0,0x6, 0x89,0xc, 0xe0,0x1, 0x1, 0x35,0xf0,0x0, 0x9a,0x5f, +0xf0,0x1, 0x89,0x8f,0xe0,0x1, 0x24,0x25,0xe0,0x0, 0x1f,0xba,0xf0,0x3, 0x1b,0x41, +0xa5,0x8f,0xe8,0x0, 0x8f,0x86,0xe0,0x1, 0x27,0xa5,0x8, 0xb2,0xe0,0x1, 0x1f,0xdc, +0xe7,0x7f,0x16,0xff,0xa4,0xf, 0xa7,0x88,0xa7,0x8, 0x37,0xce,0xe2,0x0, 0xc7,0x81, +0xe4,0x0, 0xcf,0x81,0x3f,0x5d,0x37,0xae,0x3f,0xce,0xbf,0x88,0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0xe0,0x1, 0x1f,0xcd,0xf0,0xe, 0x33,0xa2,0x96,0xfb,0x3f,0x9e,0xb6,0x8f, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe0,0x1, 0x97,0xb, 0xf0,0x0, 0x12,0x82,0xb7,0x1f, +0xf0,0x15,0x3a,0x9b,0xf0,0x2, 0x18,0xc8,0xf0,0x1, 0x18,0x7f,0xe8,0x40,0x3f,0x64, +0x16,0x0, 0x0, 0x96,0xe8,0x0, 0x8e,0x81,0xe0,0xf, 0x37,0x21,0xe2,0x0, 0xce,0x81, +0x3f,0x99,0xe0,0x0, 0x1, 0x49,0xe8,0x0, 0x96,0x85,0xb6,0x8f,0xc6,0x1, 0xe2,0x0, +0xce,0x6, 0xc7,0x1, 0xe3,0xff,0xc7,0x7f,0xf0,0x0, 0xc2,0x82,0x1, 0x13,0xf0,0xf, +0x31,0xdc,0xe0,0xd, 0x37,0x21,0xe2,0x0, 0xc7,0x81,0x3e,0x99,0x2f,0xe4,0xc6,0x1, +0xe2,0x0, 0xce,0x6, 0xc7,0x1, 0xb7,0x8d,0xe3,0xff,0xc7,0x7f,0xf0,0x0, 0xc2,0x82, +0x1, 0xef,0xe8,0x0, 0x8f,0x81,0xe2,0x0, 0xcf,0x81,0xe0,0x0, 0x1, 0x52,0xf0,0x0, +0x22,0x14,0x16,0x89,0xe8,0xd, 0x3e,0x94,0xe3,0xff,0xc6,0xff,0xe0,0x0, 0x17,0x89, +0xe0,0xe, 0x37,0xa1,0x3f,0x1b,0xc7,0x81,0xe3,0xff,0xc7,0xff,0x97,0xe, 0x3f,0xfd, +0xe1,0x80,0xb7,0x19,0x1, 0xf6,0xe0,0x6, 0x8f,0xda,0xc7,0xff,0xf0,0x40,0x3b,0xff, +0x4, 0x6, 0xa7,0x88,0xe7,0x7f,0x17,0x7f,0x3f,0xde,0xbf,0x88,0x17,0x0, 0xe8,0x0, +0xaf,0x6, 0x9, 0x61,0xf2,0x0, 0xc9,0x4, 0xe0,0xf, 0x37,0x21,0x3f,0x99,0xe7,0xff, +0x1, 0xb4,0xe0,0xf, 0x37,0x21,0x3f,0x99,0xe0,0x45,0x16,0xc2,0xe8,0x0, 0x98,0x85, +0x3e,0x9e,0x99,0xf, 0x36,0xa1,0x38,0xa2,0xe8,0xd, 0x3e,0x90,0xb0,0x8d,0x9e,0x8f, +0xe8,0x0, 0x98,0x85,0x3e,0x91,0x36,0xc1,0xb6,0x8f,0xe7,0xff,0x0, 0xa1,0xe0,0x3, +0x1f,0x8a,0xf0,0x3, 0x1b,0x41,0xa5,0x8f,0xe8,0x0, 0x8f,0x86,0xe7,0xfe,0x2f,0xdf, +0x38,0x82,0xf0,0x0, 0x9a,0x6f,0xf0,0x1, 0x89,0x9f,0xe7,0xfe,0x0, 0xcd,0xf2,0x0, +0xc9,0x4, 0x1, 0x17,0xf7,0xff,0x22,0x41,0xf0,0x0, 0xc2,0x9, 0xf3,0xff,0xc2,0x7f, +0xe0,0x0, 0x17,0x89,0xe0,0xe, 0x37,0xa1,0x3f,0x1b,0xc7,0x81,0xe3,0xff,0xc7,0xff, +0x97,0xe, 0xe8,0x40,0x3f,0xf4,0xe1,0x80,0xb7,0x19,0x1, 0xf5,0xe7,0xff,0x0, 0xad, +0xf0,0x0, 0x22,0x27,0xf7,0xff,0x11,0xff,0xf8,0x13,0x39,0x94,0xf3,0xff,0xc1,0xff, +0xf0,0x1, 0x19,0x7f,0xc5,0x92,0x3e,0xe9,0xf0,0x0, 0xc1,0x81,0xe0,0x0, 0x17,0x0, +0xe0,0x45,0x17,0xc2,0x9e,0xb, 0x3f,0x9e,0xf0,0x0, 0x9a,0x8d,0x37,0xa1,0xe8,0xc, +0x3e,0x25,0xe8,0xf, 0x3f,0x92,0xb6,0xf, 0xc7,0x1, 0x9f,0x8d,0xe1,0x80,0x9e,0x1b, +0xf0,0x40,0x39,0xfe,0x3f,0x9c,0x37,0xc1,0xe1,0x80,0xb7,0x9d,0x1, 0xea,0x17,0x86, +0xe0,0x3, 0x1f,0x44,0xf0,0xc, 0x33,0xa1,0xe8,0xf, 0x3f,0x94,0x16,0x80,0x3f,0x1c, +0x37,0xa1,0xb6,0x8e,0x3c,0x9f,0xb6,0x89,0xe7,0xfe,0x0, 0xf7,0xe0,0x2, 0x1f,0xba, +0x86,0xc8,0x8f,0x8f,0x87,0x68,0xe2,0x0, 0xcf,0x82,0xe0,0x1, 0x1f,0xcc,0x8f,0x8f, +0x1, 0x22,0x37,0xc1,0x16,0x60,0xc7,0x81,0x3e,0xdc,0xe2,0x0, 0xc7,0x9f,0x3f,0x5c, +0xce,0x81,0x3f,0xce,0xae,0xc8,0xaf,0xe8,0x15,0x80,0x87,0x48,0x87,0xe8,0x86,0x58, +0x86,0xf8,0xe2,0x0, 0xc7,0x1f,0xe2,0x0, 0xc7,0x9f,0xcf,0x20,0xce,0x40,0xcf,0xa0, +0xce,0xc0,0x15,0x1, 0xad,0x8, 0xad,0x98,0xad,0xb8,0xaf,0x48,0xae,0x58,0xaf,0xe8, +0xae,0xf8,0x38,0x82,0xc7,0x81,0x37,0x81,0x16,0x60,0xc7,0x81,0x3e,0xdc,0xe2,0x0, +0xc7,0x9f,0x3f,0x5c,0xce,0x82,0x3f,0xce,0xae,0xc8,0xaf,0xe8,0x0, 0xde,0xe0,0x2, +0x1f,0xba,0xf0,0x0, 0x11,0x81,0x8d,0x8f,0xe2,0x0, 0xcd,0x82,0x1, 0x4, 0xf0,0x0, +0x11,0x80,0x15,0x81,0xc4,0x82,0xe2,0x1, 0xc4,0xff,0x17,0x81,0xf0,0x1, 0x1a,0x4c, +0xac,0x88,0x17,0x0, 0xaf,0xb8,0x15,0x47,0xf7,0xff,0x13,0xe0,0xf7,0xff,0x12,0x80, +0xf7,0xff,0x13,0x3f,0x0, 0x92,0x87,0xc8,0x86,0xd8,0xe2,0x0, 0xc7,0x9f,0xcf,0xe0, +0xe8,0xf, 0x3f,0xd7,0xe8,0xd, 0x3e,0xd6,0xcf,0x81,0xae,0xd8,0xaf,0xc8,0xc7,0x1, +0xe2,0x1, 0xc7,0x7f,0x3c,0xfe,0x4, 0xac,0x17,0x82,0x3f,0x9e,0x37,0xa1,0x3f,0x98, +0x86,0x9f,0x3e,0xda,0xae,0x9f,0x27,0x68,0xe2,0x0, 0xcf,0x1, 0xf0,0x0, 0x11,0x1f, +0xf0,0x0, 0x10,0x81,0xf0,0x12,0x39,0x5b,0xce,0xc0,0xf0,0x11,0x38,0x9b,0x1, 0x19, +0x86,0xf, 0xe2,0x0, 0xcf,0x2, 0xe8,0xc, 0x3e,0x57,0xe8,0xc, 0x3e,0x42,0xe8,0x40, +0x3d,0xe1,0xae,0xf, 0xe2,0x0, 0xc6,0x1f,0xe2,0x1, 0xc5,0xff,0xce,0x20,0x1, 0x17, +0xc7,0x1, 0xe2,0x1, 0xc7,0x7f,0x3c,0xfe,0xae,0xf, 0xae,0x9f,0x3, 0xd6,0x38,0x82, +0x87,0xe8,0x86,0xf8,0xe2,0x0, 0xc7,0x9f,0xe8,0xf, 0x3f,0xc5,0xe8,0xf, 0x3f,0xd7, +0xe8,0xd, 0x3e,0xd6,0xcf,0x81,0xae,0xf8,0xaf,0xe8,0x0, 0xc2,0xe0,0x1, 0x86,0x98, +0xe0,0x1, 0x87,0x88,0xce,0xc0,0xe0,0x1, 0xae,0x98,0xe2,0x0, 0xc7,0x9f,0xe8,0x0, +0x8d,0x84,0xcf,0xa0,0xe8,0xb, 0x3d,0x93,0x35,0x81,0xc5,0x81,0xe0,0x1, 0xaf,0x88, +0xe2,0x1, 0xc5,0xff,0xe7,0xff,0x0, 0xad,0x17,0x0, 0x3f,0xe8,0xe1,0x80,0xaf,0x1f, +0xc7,0x81,0xaf,0x18,0xe1,0x80,0xaf,0x1f,0xe1,0x80,0xaf,0x1f,0xe1,0x80,0xaf,0x1f, +0xe1,0x80,0xaf,0x1f,0xe1,0x80,0xaf,0x1f,0xe1,0x80,0xaf,0x1f,0xe1,0x80,0xaf,0x1f, +0xe1,0x80,0xaf,0x1f,0xe1,0x80,0xaf,0x1f,0xe1,0x80,0xaf,0x1f,0xe1,0x80,0xaf,0x1f, +0xaf,0xf, 0xe7,0xfe,0x0, 0xe6,0xe0,0x2, 0x1f,0xba,0x16,0x82,0x8f,0x8f,0x87,0x58, +0xe0,0x2f,0x3f,0x8d,0xc7,0x81,0x16,0x80,0xcf,0x40,0xcf,0xa0,0xae,0x88,0xae,0x98, +0xae,0xb8,0xaf,0x58,0xaf,0xc8,0x38,0x82,0x8, 0xb2,0xe0,0x3, 0x19,0x2c,0x15,0x2a, +0x14,0x80,0x3c,0x62,0xe0,0x7, 0xd8,0xb0,0xe0,0x2, 0x1f,0xba,0x17,0x1, 0xaf,0x42, +0xe0,0x0, 0x17,0x41,0x8f,0x8f,0xe0,0x4, 0xaf,0x2, 0x2f,0x8c,0xe0,0x2, 0x87,0xa2, +0x17,0x60,0xe2,0x0, 0xc7,0x9f,0xcf,0xa0,0x3f,0xde,0xcf,0x81,0xe0,0x2, 0xaf,0xa2, +0x9, 0x61,0xe0,0x3, 0x1e,0xab,0x17,0x0, 0xe0,0x3, 0x1f,0xaa,0xaf,0xd, 0x3c,0x6d, +0xaf,0x1d,0xaf,0xf, 0xe0,0x3, 0x1f,0xa9,0xe0,0x3, 0x1e,0xc3,0xaf,0xf, 0xe0,0x3, +0x1f,0xa8,0x8c,0x8d,0xaf,0xf, 0xe0,0x3, 0x1f,0xa7,0xaf,0xf, 0xe0,0x3, 0x1f,0xa6, +0xaf,0xf, 0xe0,0x3, 0x1f,0xa5,0xaf,0xf, 0xe0,0x3, 0x1f,0xa4,0xaf,0xf, 0xe0,0x3, +0x1f,0xa3,0xaf,0xf, 0xe0,0x3, 0x1f,0xa2,0xaf,0xf, 0xe0,0x3, 0x1f,0xa1,0xaf,0xf, +0xe0,0x3, 0x1f,0xa0,0xaf,0xf, 0xe0,0x3, 0x1f,0x9f,0xaf,0xf, 0x9, 0x21,0xe7,0xfe, +0x0, 0x88,0xe0,0x0, 0x1f,0xbb,0x17,0x0, 0xaf,0xf, 0x16,0xff,0xaf,0x1f,0xae,0xaf, +0xaf,0x3f,0xaf,0x4f,0xaf,0x5f,0xaf,0x6f,0xaf,0x7f,0xe0,0x1, 0xaf,0xf, 0xe0,0x1, +0xaf,0x6f,0xe0,0x1, 0xae,0xff,0xe0,0x2, 0xaf,0xf, 0xe0,0x2, 0xaf,0x1f,0x38,0x82, +0xe0,0x0, 0x1f,0x3b,0x8e,0x8e,0xe0,0x0, 0x2e,0xdc,0x8f,0x8e,0x85,0x89,0x37,0xa5, +0x3f,0x9e,0xbc,0x6f,0xc5,0x81,0x8f,0x8e,0xe2,0x1, 0xc5,0xff,0x37,0xa5,0x3f,0x9e, +0x8c,0x39,0xe0,0x6, 0xad,0xdf,0x15,0x7f,0x3e,0x6d,0x8f,0x8e,0x37,0xa5,0x3f,0x9e, +0x3f,0x9d,0xe0,0x6, 0xad,0xf, 0x8f,0x8e,0x37,0xa3,0x3f,0x9d,0xc7,0x87,0x37,0xa2, +0xc6,0x81,0x3f,0x9e,0xe2,0x0, 0xce,0x85,0xbe,0xf, 0x1, 0xf0,0xe0,0x2, 0xae,0x2e, +0xe0,0x2, 0xae,0x3e,0xe0,0x2, 0xae,0x4e,0xe0,0x2, 0xae,0x5e,0xe0,0x2, 0xae,0x6e, +0xe0,0x2, 0x1f,0xc8,0xe0,0x2, 0xae,0x7e,0x8d,0xf, 0xe2,0x0, 0xcd,0x1, 0x1, 0x2a, +0x8f,0x8e,0x8e,0x99,0x37,0xa5,0x3f,0x9e,0xe0,0x6, 0xae,0xf, 0x3d,0xad,0xe0,0x2, +0xae,0x2e,0xe2,0x0, 0xcd,0x81,0x8f,0x8e,0xe0,0x1, 0x1e,0xfe,0x37,0xa5,0x3f,0x9e, +0xbe,0xff,0x5, 0x11,0x8f,0x8e,0x16,0x82,0x37,0xa5,0x3f,0x9e,0xe0,0x6, 0xae,0x9f, +0x17,0x81,0xe0,0x2, 0xaf,0xce,0x8f,0x8e,0xe0,0x1, 0x1e,0xfd,0xc7,0x81,0x37,0xa5, +0x3f,0x9e,0xbe,0x8f,0x14,0x0, 0x8f,0x8e,0xc7,0x81,0xaf,0x8e,0x38,0x82,0x14,0x1, +0x38,0x82,0xe0,0x0, 0x24,0x50,0x8f,0x8e,0xf0,0x1, 0x1b,0x7c,0x37,0xa5,0x3f,0x9e, +0xe0,0x6, 0xae,0x8f,0x16,0x84,0xe0,0x2, 0xae,0x7e,0x14,0x82,0x8f,0x8e,0x16,0x3, +0x37,0xa5,0x3f,0x9e,0xf0,0x0, 0xbb,0x7f,0xf0,0x40,0x3b,0xe9,0x8f,0x8e,0x37,0xa5, +0x3f,0x9e,0xe0,0x6, 0xae,0x9f,0xe0,0x2, 0xad,0x6e,0x8e,0x8e,0xc6,0x81,0x36,0xa5, +0x3e,0x9e,0xf0,0x0, 0xbb,0xd, 0x17,0x80,0x8e,0x8e,0x34,0x21,0x36,0xa5,0x3e,0x9e, +0x3e,0x99,0xe0,0x6, 0xaf,0x8d,0x3d,0xa8,0xf0,0x2, 0xab,0xae,0xe2,0x0, 0xcd,0x81, +0x8f,0x8e,0xe0,0x1, 0x1e,0xfe,0x37,0xa3,0x3f,0x99,0xc7,0x87,0x37,0xa2,0x3f,0x9e, +0xbe,0x8f,0x5, 0x41,0x8e,0x8e,0x17,0x82,0x36,0xa5,0x3e,0x9e,0x3e,0x9c,0xe0,0x6, +0xaf,0x8d,0x14,0x0, 0xe0,0x2, 0xae,0x4e,0x8f,0x8e,0xe0,0x1, 0x1e,0xfd,0x37,0xa3, +0x3f,0x9c,0xc7,0x87,0x37,0xa2,0x3f,0x9e,0xbe,0x8f,0x8f,0x8e,0xc7,0x81,0xaf,0x8e, +0x38,0x82,0xf0,0x40,0x3b,0xe8,0x3e,0x6a,0x3c,0xe8,0x0, 0xce,0xe2,0x0, 0xcc,0x4, +0x1, 0x20,0x5, 0x92,0xe2,0x0, 0xcc,0x6, 0x2, 0x9f,0x17,0x80,0x8f,0x39,0xaf,0x89, +0xaf,0x99,0x27,0x7, 0x87,0xd9,0xe2,0x1, 0xc7,0xbf,0xaf,0xd9,0x17,0xa1,0xaf,0xc9, +0x17,0x80,0xaf,0xb9,0x38,0x82,0xe2,0x0, 0xcc,0x3, 0x1, 0x8f,0x87,0xd9,0x17,0x47, +0x3f,0xde,0xcf,0x90,0x17,0x0, 0xaf,0x9, 0xaf,0x19,0xaf,0x39,0xaf,0xd9,0x38,0x82, +0x3c,0x69,0xe7,0xfb,0x0, 0xdd,0x38,0x82,0x38,0x82,0x0, 0x0, 0x8, 0xb4,0xc0,0x60, +0xe0,0x0, 0x19,0x3b,0x17,0x80,0xaf,0x82,0x17,0x7f,0xaf,0x92,0x11,0x94,0xaf,0x22, +0x39,0x90,0xaf,0xb2,0x3c,0x63,0xaf,0xc2,0xaf,0xd2,0xaf,0xe2,0xaf,0xf2,0xe0,0x1, +0xaf,0x82,0xe0,0x1, 0xaf,0xe2,0xe0,0x1, 0xaf,0x72,0x17,0xe, 0xe0,0x2, 0xaf,0x82, +0xe0,0x2, 0x1a,0x48,0xe0,0x2, 0xaf,0x92,0x8f,0x84,0x3f,0x3f,0xe0,0x3, 0x1f,0xac, +0x3f,0x9e,0xf0,0x0, 0x80,0x8f,0xf0,0x0, 0x81,0x1f,0xf0,0x0, 0x81,0xaf,0xf0,0x0, +0x82,0x3f,0xf0,0x0, 0x68,0x94,0xf0,0x0, 0x82,0xdf,0xf0,0x0, 0x83,0x6f,0xf0,0x0, +0x83,0xff,0xe0,0x1, 0x84,0x8f,0xe0,0x1, 0x85,0x1f,0xe0,0x1, 0x85,0xaf,0xe0,0x1, +0x86,0x3f,0xe0,0x1, 0x86,0xcf,0xe0,0x1, 0x87,0x5f,0x87,0xcf,0xf0,0x0, 0xa9,0x13, +0xf0,0x0, 0xa9,0xa3,0xf0,0x0, 0xaa,0x33,0xaf,0xc3,0xf0,0x0, 0xaa,0xd3,0xf0,0x0, +0xab,0x63,0xf0,0x0, 0xab,0xf3,0xe0,0x1, 0xac,0x83,0xe0,0x1, 0xad,0x13,0xe0,0x1, +0xad,0xa3,0xe0,0x1, 0xae,0x33,0xe0,0x1, 0xae,0xc3,0xe0,0x1, 0xaf,0x53,0xdd,0x7f, +0xf8,0x3, 0x8, 0x2, 0x17,0x84,0x3f,0x90,0xf8,0xf, 0x8, 0x12,0x3c,0xef,0x57,0x90, +0x14,0x4, 0x77,0x88,0xde,0xbe,0x17,0x80,0xe0,0xe, 0x39,0x1f,0x86,0x84,0xc7,0x81, +0xe2,0x0, 0xcf,0x85,0xe0,0x1, 0xae,0x9e,0x1, 0xf8,0x17,0x80,0xe0,0x2, 0xaf,0x92, +0x17,0x80,0xe0,0x0, 0x8f,0x2, 0x27,0x11,0xe0,0xe, 0x37,0xa5,0x3f,0x12,0xe0,0x6, +0x8f,0x5e,0xe0,0x2, 0x8e,0x92,0xc7,0x81,0x3f,0x1d,0xe0,0x2, 0xaf,0x12,0xe2,0x1, +0xc7,0xff,0x8f,0x2, 0x3f,0xfe,0x4, 0xf1,0xc0,0x20,0xa, 0x61,0x8, 0xb3,0xc0,0x60, +0xe0,0x0, 0x19,0x3b,0x17,0x0, 0xaf,0x2, 0x17,0xff,0xaf,0x12,0x16,0x8e,0xaf,0xa2, +0xaf,0x32,0xaf,0x42,0xaf,0x52,0xaf,0x62,0xaf,0x72,0xe0,0x1, 0xaf,0x2, 0xe0,0x1, +0xaf,0x62,0xe0,0x1, 0xaf,0xf2,0xe0,0x2, 0xaf,0x2, 0xe0,0x2, 0x19,0xc8,0xe0,0x2, +0xaf,0x12,0x8f,0x83,0x3e,0xbf,0xe0,0x3, 0x1f,0xac,0x3f,0x9d,0xf0,0x0, 0x81,0x2f, +0xf0,0x0, 0x81,0xcf,0xf0,0x0, 0x82,0x5f,0xf0,0x0, 0x82,0xef,0xf0,0x0, 0x83,0x7f, +0xf0,0x1, 0x83,0x8f,0x86,0xbf,0xe0,0x1, 0x84,0xaf,0xe0,0x1, 0x85,0x3f,0xe0,0x1, +0x85,0xcf,0xe0,0x1, 0x86,0x5f,0xe0,0x1, 0x84,0x1f,0xf0,0x0, 0x69,0x16,0x3f,0xed, +0xf0,0x0, 0x69,0x98,0xe2,0x1, 0xc7,0xff,0xf0,0x0, 0x6a,0x19,0xf0,0x0, 0x6a,0x9a, +0xf0,0x0, 0x6b,0x1b,0xf0,0x0, 0x6b,0x9c,0x6c,0x1d,0x6c,0x9e,0x6d,0x1f,0x6d,0xa0, +0x6e,0x21,0x6f,0x14,0x6f,0x15,0x27,0x87,0x57,0x8c,0xe2,0x1, 0xc7,0xbf,0xe0,0x42, +0xcf,0x80,0x77,0x8c,0x17,0x80,0xf0,0x0, 0x11,0x14,0x6f,0x97,0xf0,0x12,0x39,0x10, +0xf8,0x12,0x8, 0x2, 0x17,0x84,0x3f,0x90,0xf8,0xf, 0x8, 0x12,0x3c,0xef,0x57,0x90, +0x14,0x6, 0x77,0x88,0xef,0xff,0xde,0x36,0x17,0x80,0xe0,0xe, 0x39,0x1f,0x86,0x83, +0xc7,0x81,0xe2,0x0, 0xcf,0x85,0xe0,0x1, 0xae,0x9e,0x1, 0xf8,0x17,0x80,0xe0,0x2, +0xaf,0x92,0x17,0x80,0x8f,0x2, 0x27,0x11,0xe0,0xe, 0x37,0xa5,0x3f,0x12,0xe0,0x6, +0x8f,0x5e,0xe0,0x2, 0x8e,0x92,0xc7,0x81,0x3f,0x1d,0xe0,0x2, 0xaf,0x12,0xe2,0x1, +0xc7,0xff,0x8f,0x2, 0x3f,0xfe,0x4, 0xf1,0xc0,0x20,0x9, 0xe1,0x8, 0xb1,0xc0,0x70, +0xe0,0x3, 0x1f,0xac,0xe2,0x0, 0x7c,0x84,0xf0,0x0, 0x80,0xf, 0xf0,0x0, 0x80,0x9f, +0xf0,0x0, 0x81,0x2f,0xf0,0x0, 0x81,0xbf,0xf0,0x0, 0x82,0x4f,0xf0,0x0, 0x82,0xdf, +0xf0,0x0, 0x83,0x6f,0xf0,0x0, 0x83,0xff,0xe0,0x1, 0x85,0xf, 0xe0,0x1, 0x85,0x9f, +0xe0,0x1, 0x86,0x2f,0xe0,0x1, 0x86,0xbf,0xe0,0x1, 0x87,0x4f,0xe0,0x1, 0x87,0xdf, +0x14,0x0, 0x6f,0x10,0x6f,0x91,0xf0,0x0, 0x68,0x4, 0xf0,0x0, 0x68,0x85,0xf0,0x0, +0x69,0x6, 0xf0,0x0, 0x69,0x87,0xf0,0x0, 0x6a,0x8, 0xf0,0x0, 0x6a,0x89,0xf0,0x0, +0x6b,0xa, 0xf0,0x0, 0x6b,0x8b,0x6d,0xc, 0x6d,0x8d,0x6e,0xe, 0x6e,0x8f,0xdd,0xd9, +0xe0,0x0, 0x1f,0xbb,0x17,0x0, 0xe0,0x1, 0xaf,0x1f,0xe0,0x1, 0xaf,0x2f,0xe0,0x1, +0xaf,0x3f,0xe0,0x1, 0xaf,0x4f,0xe0,0x1, 0xaf,0x5f,0xc0,0x10,0x8, 0xe1,0x8, 0xb1, +0xc0,0x70,0xe0,0x3, 0x1f,0x2c,0x17,0x8e,0x3f,0x9e,0xf0,0x1, 0x80,0x6e,0xf0,0x0, +0x80,0x9f,0xf0,0x0, 0x81,0x2f,0xf0,0x0, 0x81,0xbf,0xf0,0x0, 0x82,0x4f,0xf0,0x0, +0x82,0xdf,0xf0,0x0, 0x83,0x6f,0xf0,0x0, 0x83,0xff,0xe0,0x1, 0x85,0xf, 0xe0,0x1, +0x85,0x9f,0xe0,0x1, 0x86,0x2f,0xe0,0x1, 0x86,0xbf,0xe0,0x1, 0x87,0x4f,0xe0,0x1, +0x87,0xdf,0xe2,0x0, 0x7c,0x84,0x14,0x1, 0x6f,0x10,0x6f,0x91,0xf0,0x0, 0x68,0x4, +0xf0,0x0, 0x68,0x85,0xf0,0x0, 0x69,0x6, 0xf0,0x0, 0x69,0x87,0xf0,0x0, 0x6a,0x8, +0xf0,0x0, 0x6a,0x89,0xf0,0x0, 0x6b,0xa, 0xf0,0x0, 0x6b,0x8b,0x6d,0xc, 0x6d,0x8d, +0x6e,0xe, 0x6e,0x8f,0xdd,0x8e,0xe0,0x0, 0x1f,0xbb,0x17,0x1, 0xe0,0x1, 0xaf,0x1f, +0xe0,0x1, 0xaf,0x2f,0xe0,0x1, 0xaf,0x3f,0xe0,0x1, 0xaf,0x4f,0xe0,0x1, 0xaf,0x5f, +0xc0,0x10,0x8, 0xe1,0x8, 0xb1,0xc0,0x70,0xe0,0x3, 0x1f,0x2c,0x17,0x9c,0x3f,0x9e, +0xf0,0x3, 0x80,0x4e,0xf0,0x0, 0x80,0x9f,0xf0,0x0, 0x81,0x2f,0xf0,0x0, 0x81,0xbf, +0xf0,0x0, 0x82,0x4f,0xf0,0x0, 0x82,0xdf,0xf0,0x0, 0x83,0x6f,0xf0,0x0, 0x83,0xff, +0xe0,0x1, 0x85,0xf, 0xe0,0x1, 0x85,0x9f,0xe0,0x1, 0x86,0x2f,0xe0,0x1, 0x86,0xbf, +0xe0,0x1, 0x87,0x4f,0xe0,0x1, 0x87,0xdf,0xe2,0x0, 0x7c,0x84,0x14,0x2, 0x6f,0x10, +0x6f,0x91,0xf0,0x0, 0x68,0x4, 0xf0,0x0, 0x68,0x85,0xf0,0x0, 0x69,0x6, 0xf0,0x0, +0x69,0x87,0xf0,0x0, 0x6a,0x8, 0xf0,0x0, 0x6a,0x89,0xf0,0x0, 0x6b,0xa, 0xf0,0x0, +0x6b,0x8b,0x6d,0xc, 0x6d,0x8d,0x6e,0xe, 0x6e,0x8f,0xdd,0x43,0xe0,0x0, 0x1f,0xbb, +0x17,0x2, 0xe0,0x1, 0xaf,0x1f,0xe0,0x1, 0xaf,0x2f,0xe0,0x1, 0xaf,0x3f,0xe0,0x1, +0xaf,0x4f,0xe0,0x1, 0xaf,0x5f,0xc0,0x10,0x8, 0xe1,0x0, 0x0, 0x8, 0xb2,0xe0,0x0, +0x19,0x3b,0x17,0x80,0xaf,0x82,0x17,0x7f,0xaf,0x92,0xe2,0x0, 0xcc,0x1, 0xaf,0x22, +0xaf,0xb2,0xaf,0xc2,0xaf,0xd2,0xaf,0xe2,0xaf,0xf2,0xe0,0x1, 0xaf,0x82,0xe0,0x1, +0xaf,0xe2,0xe0,0x1, 0xaf,0x72,0xe0,0x2, 0xaf,0x82,0xe0,0x2, 0xaf,0x92,0x1, 0x20, +0x4, 0x9d,0xe2,0x0, 0xcc,0x2, 0x1, 0x18,0x17,0x80,0xe0,0x2, 0xaf,0x92,0x17,0x80, +0x8f,0x2, 0x27,0x11,0xe0,0xe, 0x37,0xa5,0x3f,0x12,0xe0,0x6, 0x8f,0x5e,0xe0,0x2, +0x8e,0x92,0xc7,0x81,0x3f,0x1d,0xe0,0x2, 0xaf,0x12,0xe2,0x1, 0xc7,0xff,0x8f,0x2, +0x3f,0xfe,0x4, 0xf1,0x9, 0x61,0xdf,0x7f,0x0, 0xe8,0xde,0xe9,0x0, 0xe6,0xdf,0x30, +0x0, 0xe4,0x8, 0xb2,0xe0,0x0, 0x1f,0xbb,0xe0,0x2, 0x8f,0xcf,0x27,0x96,0xe0,0x2, +0x1f,0x3a,0x8f,0xe, 0xe2,0x0, 0xcf,0x2, 0x1, 0x27,0xe0,0x1, 0x1f,0x4c,0xc7,0x82, +0x8f,0xe, 0x37,0xa1,0x3f,0x98,0x86,0x8f,0x37,0x41,0xc7,0x1, 0x16,0x60,0xe2,0x0, +0xc7,0x1f,0x3e,0xdc,0x3f,0x4d,0xaf,0xf, 0xe0,0x2, 0x1f,0xc8,0x89,0xf, 0xe2,0x0, +0xc9,0x1, 0x1, 0x2, 0x9, 0x61,0xe0,0x2, 0x1f,0x12,0x9f,0x8e,0x37,0xcd,0xe2,0x0, +0xc7,0x81,0x2f,0x9b,0x14,0x8a,0x14,0x3, 0xe0,0x6, 0xda,0x24,0x14,0x8a,0x14,0x4, +0x9, 0x21,0xe0,0xd4,0x0, 0x9f,0x3f,0x1f,0xe0,0x1, 0x1f,0xcc,0x37,0x21,0x8f,0x8f, +0x3c,0x1e,0xc7,0x81,0x87,0x8, 0x37,0x81,0xc7,0x81,0x16,0xe0,0xe2,0x0, 0xc7,0x9f, +0x3f,0x5d,0x3f,0xce,0xaf,0x88,0x0, 0xd9,0x97,0x8e,0xe7,0x0, 0x16,0x80,0xe3,0xbf, +0xc7,0xff,0xb7,0x8e,0x3c,0xe2,0x97,0x8e,0x14,0x3, 0x3f,0xcd,0xb7,0x8e,0xe0,0x6, +0xda,0x1, 0x3c,0xe2,0x14,0x4, 0x9, 0x21,0xe0,0xd3,0x0, 0xfc,0x8, 0xb1,0xe0,0x0, +0x1f,0xcd,0x8f,0x8f,0x27,0x99,0xe0,0x2, 0x1f,0xba,0x8f,0x8f,0x27,0xaf,0xe0,0x2, +0x1f,0x48,0x16,0x82,0x8f,0x8e,0xe0,0x2f,0x3f,0x8d,0x2f,0xa8,0x17,0x83,0xe0,0x2f, +0x3c,0xf, 0x2f,0xa4,0x8f,0x8e,0x17,0x1, 0xe0,0x2f,0x3f,0x8e,0x2f,0x9f,0x17,0x86, +0xe0,0x28,0x3c,0xf, 0x2c,0x1b,0xe0,0x7, 0xd4,0x33,0xe0,0x0, 0xdd,0x61,0xe0,0x3, +0x1f,0xb8,0xe0,0x2, 0x1e,0x92,0xa7,0x8f,0xe7,0xfb,0x16,0x7f,0xa7,0x4f,0x97,0x8d, +0xe2,0x0, 0xc7,0x1, 0x37,0x29,0x3f,0xdc,0x3f,0xce,0xb7,0x8d,0x17,0x1, 0xe0,0x0, +0x1f,0xbb,0xaf,0x3f,0x8, 0xa1,0xe0,0xda,0x0, 0xb3,0xe0,0x7, 0xd4,0x19,0xe0,0x0, +0xdd,0x47,0xe0,0x3, 0x1f,0xb8,0xe0,0x2, 0x1e,0x92,0xa7,0x8f,0xe7,0xfb,0x16,0x7f, +0xa7,0x4f,0x97,0x8d,0xe2,0x0, 0xc7,0x1, 0x37,0x29,0x3f,0xdc,0x3f,0xce,0xb7,0x8d, +0x17,0x1, 0xe0,0x0, 0x1f,0xbb,0xaf,0x3f,0x8, 0xa1,0xe0,0xda,0x0, 0xab,0x8, 0xb3, +0xc0,0x70,0xe2,0x0, 0xcc,0x2, 0x39,0x68,0xe0,0x0, 0x5, 0xce,0xe2,0x0, 0xc9,0x6, +0x14,0x0, 0x5, 0x83,0xc0,0x10,0x9, 0xe1,0xe0,0x2, 0x1f,0xc8,0x17,0xe, 0x8f,0x8f, +0xe2,0x0, 0x7c,0x4, 0x3f,0x3f,0xe0,0x3, 0x1f,0xac,0x3f,0x9e,0xf0,0x0, 0x81,0xf, +0xf0,0x0, 0x81,0x9f,0xf0,0x0, 0x82,0x2f,0xf0,0x0, 0x82,0xbf,0xf0,0x0, 0x83,0x4f, +0xf0,0x0, 0x83,0xdf,0xe0,0x1, 0x85,0xf, 0xe0,0x1, 0x85,0x9f,0xe0,0x1, 0x86,0x2f, +0xe0,0x1, 0x86,0xbf,0xe0,0x1, 0x87,0x4f,0x81,0xef,0x84,0xff,0xe0,0x1, 0x87,0xdf, +0xf0,0x0, 0x69,0x4, 0xf0,0x0, 0x69,0x85,0xf0,0x0, 0x6a,0x6, 0xf0,0x0, 0x6a,0x87, +0xf0,0x0, 0x6b,0x8, 0xf0,0x0, 0x6b,0x89,0x6d,0xc, 0x6d,0x8d,0x6e,0xe, 0x6e,0x8f, +0x6f,0x10,0x6f,0x91,0x6c,0x8b,0x69,0x8a,0xdf,0x15,0xe2,0x0, 0x7c,0x84,0x3c,0x62, +0xdc,0xbe,0xe2,0x0, 0x7c,0x4, 0xe0,0x6, 0xdc,0x44,0x3c,0x62,0xdf,0x60,0x14,0x1, +0xc0,0x10,0x9, 0xe1,0x11,0x8e,0xe0,0x3, 0x1f,0xac,0x39,0xb8,0x39,0x9f,0x3c,0x63, +0xdf,0x1, 0x3c,0x63,0xe0,0x6, 0xdc,0x35,0x3c,0x62,0xdf,0x51,0x14,0x1, 0xc0,0x10, +0x9, 0xe1,0x8, 0xb2,0xe0,0x3, 0x1f,0x47,0xe0,0x2, 0x1f,0x94,0x8e,0x8e,0x87,0x6f, +0xe2,0x0, 0xc6,0x87,0x36,0xa5,0xe2,0x0, 0xc7,0x1f,0x3f,0x4d,0xaf,0x6f,0x16,0x60, +0x9f,0x3f,0x86,0xef,0x37,0x48,0xc7,0x1, 0xe2,0x0, 0xc7,0x1f,0x3e,0xdc,0x3f,0x4d, +0xaf,0x6f,0x9f,0x3f,0x37,0x48,0xe2,0x0, 0xc7,0x1f,0xe2,0x0, 0xcf,0x1f,0x1, 0x85, +0x87,0x6f,0x3f,0x5c,0xcf,0x4, 0xaf,0x6f,0x17,0x80,0xe0,0x0, 0x19,0x3b,0x17,0x7f, +0xaf,0xb2,0x14,0x0, 0xaf,0x92,0xaf,0x22,0xaf,0xc2,0xaf,0xd2,0xaf,0xe2,0xaf,0xf2, +0xe0,0x1, 0xaf,0x82,0xe0,0x1, 0xaf,0xe2,0xe0,0x1, 0xaf,0x72,0xe0,0x2, 0xaf,0x82, +0xe0,0x1, 0xd0,0xb2,0x8f,0x12,0x8f,0x82,0x3f,0x7f,0x4, 0x87,0x17,0x83,0x14,0x1, +0xaf,0xb2,0x9, 0x21,0xe0,0x21,0x0, 0xa8,0x8f,0x92,0x37,0xa5,0x3f,0x92,0xa4,0x6f, +0xe2,0x1, 0xc4,0x7f,0xdf,0x55,0xe2,0x0, 0xcc,0x1, 0x1, 0xf1,0x14,0x1, 0x9, 0x21, +0xe0,0x21,0x0, 0x9a,0x8, 0xb5,0xe0,0x0, 0x19,0x3b,0x3a,0xe8,0x8f,0xb2,0xe2,0x0, +0xcf,0x81,0x1, 0x97,0xe0,0x2, 0x19,0x92,0xe0,0x3, 0x1a,0x38,0x97,0x83,0xe2,0x0, +0xc7,0x81,0x2f,0x87,0xa7,0x84,0xe0,0x4, 0xa7,0xff,0xe2,0x0, 0xc7,0x81,0x27,0x83, +0xe0,0x1, 0xd0,0x48,0xe0,0x3, 0xd9,0x37,0x8f,0xb2,0xe2,0x0, 0xcf,0x81,0x1, 0x6f, +0x2a,0x82,0xa, 0xe1,0xa, 0xa1,0xe0,0xd6,0x0, 0xfb,0x8, 0xb1,0xe0,0x2, 0x1f,0x92, +0x97,0x8f,0xe2,0x0, 0xc7,0x81,0x2f,0xa0,0xe0,0x3, 0x1f,0xb8,0xa7,0x8f,0xe0,0x4, +0xa7,0xff,0xe2,0x0, 0xc7,0x81,0x2f,0x98,0xe0,0x3, 0xd9,0x1d,0xe0,0x0, 0x1f,0x3b, +0xe0,0x2, 0x8c,0x1e,0x24,0x10,0x8f,0xce,0x27,0x84,0x0, 0x91,0x8e,0xcc,0x2e,0x8f, +0xe0,0x2, 0x8e,0x9e,0xc7,0x81,0xe2,0x1, 0xc7,0xff,0x3e,0xff,0xe0,0xc, 0x3f,0x1f, +0x2, 0xf6,0x14,0x0, 0x8, 0xe1,0xe0,0x1, 0xd0,0x15,0x0, 0xe7,0x14,0x1, 0x8, 0xe1, +0xe2,0x0, 0xcc,0x5, 0x2, 0x87,0xe0,0x0, 0x1f,0xbb,0x3c,0x1f,0xe0,0x2, 0x8c,0x28, +0x38,0x82,0x14,0x0, 0x38,0x82,0x8, 0xb2,0xe0,0x2, 0x1f,0x92,0x39,0x68,0x97,0x8f, +0xe2,0x0, 0xc7,0x81,0x2f,0x9f,0xe0,0x3, 0x1f,0xb8,0xa7,0x8f,0xe0,0x4, 0xa7,0xff, +0xe2,0x0, 0xc7,0x81,0x2f,0x97,0xe0,0x3, 0xd8,0xe6,0xe2,0x0, 0xc9,0x5, 0xe0,0x0, +0x1f,0xbb,0x17,0x0, 0x2, 0x84,0x39,0x1f,0xe0,0x2, 0x8f,0x22,0xe0,0x2, 0x8e,0x9f, +0x14,0x1, 0x3e,0xfe,0x5, 0x86,0x3f,0x9e,0x8c,0x4f,0x17,0x80,0xe1,0x28,0x3c,0xf, +0x9, 0x61,0xe0,0x0, 0xdf,0xdf,0x0, 0xe8,0x8, 0xb1,0xe0,0x6, 0xdb,0x19,0xe0,0x0, +0x1f,0xbb,0x16,0x83,0xae,0xbf,0x17,0x2, 0xaf,0x4f,0x16,0x80,0xaf,0x5f,0xaf,0x6f, +0xaf,0x7f,0xe0,0x2, 0x1e,0x12,0xe0,0x1, 0xaf,0xf, 0x97,0x8c,0xe0,0x3, 0x1f,0x1d, +0xe3,0xff,0xc7,0xef,0xb7,0x8c,0x97,0x8e,0xe3,0xff,0xc7,0xdf,0xb7,0x8e,0xe0,0x2, +0x1f,0xb3,0xae,0x8f,0xe0,0x1, 0x1f,0xdc,0xa7,0xf, 0xe0,0x0, 0x1f,0x90,0xae,0x8f, +0xe7,0x7f,0x16,0xff,0xa7,0x8e,0x3f,0xdd,0xbf,0x8e,0x8, 0xe1,0xe0,0x0, 0x1f,0xbb, +0x8f,0x3f,0xe2,0x0, 0xcf,0x1, 0x1, 0x2, 0x38,0x82,0x87,0x1f,0xaf,0x2f,0xe0,0x1, +0x8f,0x7f,0xc7,0x1, 0xe0,0x1, 0xaf,0x7f,0xe0,0x1, 0x8f,0x6f,0xc7,0x1, 0xe0,0x1, +0xaf,0x6f,0xe0,0x1, 0x8e,0xef,0x8f,0x1f,0x37,0x25,0x3f,0x1f,0xe0,0x6, 0x8f,0x5e, +0x3e,0xfe,0x4, 0xeb,0x17,0x0, 0xe0,0x1, 0xaf,0x6f,0x8f,0x1f,0xc7,0x1, 0xaf,0x1f, +0x8e,0x9f,0x8f,0xf, 0x3e,0xfe,0x3, 0xe1,0x17,0x3, 0xaf,0x3f,0x38,0x82,0x0, 0x0, +0x8, 0xb4,0xc0,0x7c,0xe0,0x0, 0x19,0x3b,0xe0,0x1, 0x89,0xf2,0x8f,0xa2,0x8f,0x32, +0xe2,0x0, 0xcf,0x1, 0x1, 0x3, 0xc0,0x4, 0xa, 0x61,0x8e,0x22,0x8e,0x82,0x3e,0x7d, +0xe0,0x0, 0x3, 0xc7,0x37,0xa3,0x8e,0xa2,0x3f,0x93,0xc7,0x87,0x36,0xa5,0x37,0xa2, +0x3e,0x92,0x3f,0x92,0xe0,0xb, 0x39,0x13,0xa6,0x6d,0xa4,0x8f,0xe0,0x1, 0x8f,0x9b, +0xe0,0x3, 0x1e,0xac,0xe4,0x0, 0xc7,0x87,0x3f,0x93,0xc7,0x82,0x37,0xa1,0x3f,0x9d, +0x8c,0x1f,0xe0,0x4, 0x34,0x47,0x24,0xac,0xe0,0x1, 0x17,0xff,0x3f,0xdc,0xe0,0x3, +0x1e,0xc1,0xe2,0x0, 0xcf,0x86,0xaf,0xd, 0x2, 0xa3,0x37,0x3f,0xe2,0x0, 0xc7,0x57, +0x27,0x1f,0xe0,0x3, 0x1f,0xb8,0xa7,0x8f,0xa7,0xcf,0xe2,0x0, 0xc7,0x81,0x27,0x8a, +0xe0,0x2, 0x1f,0xba,0x87,0x8f,0xc7,0xff,0xe2,0x1, 0xc7,0xff,0xe2,0x0, 0xcf,0x81, +0x5, 0x9f,0x3c,0x64,0xd8,0x18,0xe0,0x2, 0x1f,0x92,0x39,0x92,0x9f,0x8f,0x37,0xc4, +0xe2,0x0, 0xc7,0x81,0x27,0x92,0x17,0x2, 0xaf,0x43,0xe0,0x6, 0xda,0x71,0x8f,0x12, +0x8f,0x82,0x3f,0x7f,0xe7,0xff,0x4, 0xb1,0x17,0x2, 0xe0,0x0, 0x1f,0x99,0xaf,0x32, +0x17,0x0, 0xaf,0xf, 0xc0,0x4, 0xa, 0x61,0x17,0x81,0xaf,0xc3,0x0, 0xef,0xe0,0x2, +0x1f,0xc8,0x8f,0x8f,0xe2,0x0, 0xcf,0x81,0x1, 0xdd,0x7c,0x81,0xe0,0x3, 0xd5,0xc3, +0xe0,0x1, 0x1f,0xd7,0x64,0x81,0xe0,0x1, 0xb4,0x2f,0x0, 0xd4,0x8, 0xb1,0xc0,0x68, +0xe0,0x2, 0x1f,0xfd,0xe9,0xff,0xc4,0x7e,0x87,0x5f,0x86,0xcf,0xe0,0xf, 0x34,0x41, +0x6f,0x5, 0x14,0x85,0x17,0x0, 0x7f,0x83,0xe2,0x0, 0x7c,0x4, 0x7f,0x85,0x17,0x80, +0x6e,0x84,0x6f,0x6, 0x77,0x84,0xe0,0x6, 0xdc,0xbd,0xc0,0x18,0x8, 0xe1,0x0, 0x0, +0xe0,0x2, 0x1f,0xe6,0xe0,0x2, 0x1f,0x7d,0x87,0x8f,0xe0,0x3, 0x8e,0xae,0xe2,0x0, +0xc7,0x81,0x3e,0xff,0x1, 0x2e,0x9f,0xde,0xe0,0x3, 0x1e,0xb3,0xe2,0x0, 0xcc,0x2, +0xe0,0x3, 0x1f,0x32,0x3d,0xed,0xe0,0x6b,0x39,0x2e,0xe2,0x0, 0xcc,0x85,0x16,0x1, +0x36,0x39,0x2, 0x12,0x27,0x91,0x15,0x7f,0x3d,0x1f,0xe3,0xff,0xc5,0x7f,0x17,0x7f, +0xe2,0x1, 0xc6,0x7f,0x3f,0x1b,0x3d,0x1b,0x86,0x9e,0x3e,0xcc,0xe0,0x80,0xae,0x9e, +0x3f,0x7a,0x1, 0xfb,0x0, 0x83,0xe2,0x1, 0xc6,0x7f,0x16,0x86,0x3e,0x9f,0x3e,0x9b, +0x3f,0x9b,0x87,0xf, 0x3f,0x4c,0xe1,0x80,0xaf,0x1f,0x3e,0xff,0x1, 0xfb,0x38,0x82, +0x9f,0xee,0x0, 0xd3,0xe0,0x2, 0x1f,0xe6,0xe0,0x2, 0x1f,0x7d,0x87,0x8f,0xe0,0x3, +0x8e,0xae,0xe2,0x0, 0xc7,0x81,0x3e,0xff,0x1, 0x3c,0x9f,0xde,0xe0,0x3, 0x1f,0x33, +0xe2,0x0, 0xcc,0x2, 0xe0,0x3, 0x1e,0xb2,0x3e,0x6e,0xe0,0x6c,0x39,0x2d,0xe2,0x0, +0xcc,0x85,0x14,0x1, 0x34,0x39,0x2, 0x18,0x27,0x97,0x14,0xff,0x3c,0x9f,0xe3,0xff, +0xc4,0xff,0xc4,0x81,0x3e,0xea,0x3f,0x6c,0x3c,0x9c,0xf0,0x41,0x3b,0x88,0x9d,0x8d, +0xc6,0x82,0xe2,0x9, 0xcd,0xaf,0x2, 0x85,0x85,0x8e,0xe8,0xb, 0x3d,0xd7,0xad,0x8e, +0xc7,0x1, 0x3f,0x79,0x1, 0xf5,0x17,0x6, 0xe0,0xd, 0x37,0xa1,0x3f,0x1f,0x3f,0x1c, +0x3f,0x9c,0x3d,0x1d,0xe0,0x41,0x3e,0x8, 0x9e,0x8a,0xc5,0x2, 0xe2,0x9, 0xce,0xaf, +0x2, 0x84,0x86,0x8f,0x3e,0xdc,0xae,0x8f,0xc7,0x81,0x3f,0x7f,0x1, 0xf6,0x38,0x82, +0x9f,0xee,0x0, 0xc5,0x8, 0xb7,0xf8,0x0, 0xc, 0x39,0x39,0x68,0xe0,0x1, 0xd0,0x3d, +0xe0,0x2, 0x1f,0xe6,0xe0,0x2, 0x1f,0x7d,0x87,0x8f,0xe0,0x3, 0x8e,0xae,0xe2,0x0, +0xc7,0x81,0x3e,0xff,0x3b,0x68,0xe0,0x0, 0x1, 0x77,0x95,0x5e,0xc5,0x6, 0xe3,0xff, +0xc5,0x7f,0xe2,0x0, 0xc9,0x2, 0xe0,0x3, 0x1c,0x32,0xe0,0x3, 0x1f,0xb3,0x14,0x80, +0xe0,0x68,0x39,0xaf,0xe0,0x7, 0xd1,0xe8,0xe0,0x0, 0x2b,0x62,0xe0,0x3, 0x1f,0xb8, +0xe0,0x2, 0x1e,0x92,0xa7,0x8f,0x16,0x5f,0xa7,0x4f,0x97,0x8d,0x37,0x45,0xe2,0x0, +0xc7,0x20,0x3f,0xdc,0x3f,0xce,0xe0,0x3, 0x1a,0xb3,0xf0,0x1, 0x1c,0x7e,0xf0,0x1, +0x1c,0xfd,0xb7,0x8d,0x11,0x85,0xe0,0x13,0x13,0xc4,0x12,0x1, 0x3c,0x67,0xe0,0x5, +0xdb,0xf6,0x3c,0xe3,0x3c,0x62,0xdf,0x3d,0x3c,0xe2,0x3c,0x65,0xef,0xff,0xd4,0xd6, +0xdd,0x81,0x23,0x2d,0x3c,0xe2,0x3c,0x64,0xde,0x27,0x24,0x7d,0xe8,0x40,0x3d,0x68, +0x3c,0xe3,0x3c,0x62,0xc1,0xff,0xdf,0x67,0xe0,0x43,0x39,0x83,0x3c,0xe3,0x3c,0x62, +0xdf,0x28,0x3c,0xe2,0x3c,0x65,0xef,0xff,0xd4,0xc1,0x3c,0x64,0xdd,0xbc,0xe8,0x40, +0x3d,0x69,0x3c,0xe3,0x3c,0x62,0xdf,0x57,0xe0,0x1, 0xd0,0x49,0x2c,0xd, 0xc1,0xff, +0xe0,0x43,0x39,0x83,0xe2,0x0, 0xc9,0x80,0x3, 0x52,0xe0,0x3, 0x1c,0x33,0x3c,0xe2, +0xef,0xff,0xd4,0xac,0x2b,0xc, 0xf8,0x0, 0xc, 0xa8,0xb, 0xe1,0x3c,0x64,0xdd,0xa3, +0xe8,0x40,0x3d,0x68,0x3c,0xe3,0x3c,0x62,0xdf,0x3e,0x0, 0xe7,0xe0,0x0, 0x1f,0xcd, +0x8c,0xf, 0xf8,0x0, 0xc, 0xa8,0xb, 0xa1,0xe7,0xf8,0x0, 0x82,0xda,0x10,0x13,0x1, +0xe7,0xff,0x0, 0x9e,0x95,0x6e,0xc5,0x6, 0xe3,0xff,0xc5,0x7f,0xe7,0xff,0x0, 0x8b, +0x8, 0xb3,0xe0,0x2, 0x1f,0xc2,0x17,0x0, 0x39,0xe8,0xb7,0xf, 0xe0,0x2, 0xd9,0xf3, +0xe2,0x0, 0xcc,0x1, 0x39,0x68,0x1, 0x3, 0x3c,0x62,0x9, 0xe1,0x3c,0x63,0xdf,0x63, +0x3c,0x62,0x9, 0xe1,0x8, 0xb4,0xe0,0x2, 0x1f,0xc8,0x89,0xf, 0xe0,0x1, 0xd0,0x7, +0x2c,0x19,0xe0,0x2, 0x19,0xfb,0x14,0x1, 0x8f,0x83,0x37,0xd2,0x3f,0xd8,0x2f,0x82, +0xa, 0x61,0xe0,0x2, 0x1f,0x77,0xe0,0x4, 0x34,0x32,0x8f,0x8e,0xe2,0x1, 0xc2,0x7f, +0x3f,0xc4,0xaf,0x8e,0xdd,0x60,0xe2,0x0, 0xc9,0x1, 0x1, 0x12,0x3c,0x62,0xdf,0xd1, +0x2c,0x3, 0x14,0x0, 0xa, 0x61,0xe0,0x0, 0xdf,0xea,0x2c,0x7c,0x8f,0x83,0xe3,0x4, +0x3f,0xd4,0xaa,0x3, 0xd6,0x41,0xe0,0x0, 0xdf,0x33,0x14,0x1, 0xa, 0x61,0x3c,0x62, +0xe0,0x3, 0xd4,0xe2,0xe0,0x2, 0x1f,0xe7,0xa9,0xf, 0x0, 0xe9,0x8, 0xb5,0xe0,0x2, +0x1f,0xc8,0x3a,0xe8,0x89,0xf, 0xe0,0x0, 0xdf,0xd2,0x2c,0x17,0xe0,0x2, 0x1a,0x77, +0x39,0xe8,0x8f,0x84,0x14,0x1, 0x37,0xd2,0x3f,0xd8,0x2f,0x82,0xa, 0xe1,0xdd,0x33, +0xe2,0x0, 0xc9,0x1, 0x1, 0x86,0xe0,0x2, 0x1f,0xe7,0x8f,0xf, 0x27,0x39,0xa9,0x8f, +0x3c,0x62,0xe0,0x2, 0xd9,0xc5,0x2c,0x3, 0x14,0x0, 0xa, 0xe1,0xe0,0x2, 0x1f,0xea, +0x3c,0x62,0x8c,0x8f,0xe0,0x2, 0xda,0xb4,0x3c,0xe2,0x14,0x0, 0xef,0xfd,0xd8,0x20, +0xe0,0x2, 0x1f,0x81,0xe0,0x1, 0x1d,0x6f,0xe0,0x1, 0x1c,0xf0,0xa4,0xf, 0x3d,0xe2, +0xef,0xfd,0xd2,0xac,0x24,0x6a,0xe0,0x2, 0x1f,0xac,0x3c,0x62,0x8c,0x8f,0xe0,0x2, +0xda,0x9f,0xe0,0x0, 0xdf,0x9c,0x2c,0x61,0x2a,0x97,0x3c,0x62,0xe0,0x2, 0xd9,0xf3, +0x14,0x0, 0xe0,0x2, 0xd8,0x7f,0x8f,0x84,0x11,0x81,0xe0,0x2, 0x31,0xb2,0xe3,0x2, +0x3f,0xd2,0xa9,0x4, 0xe0,0x0, 0xde,0xdc,0xd5,0xe7,0x3c,0x63,0xa, 0xe1,0x3c,0x62, +0xe0,0x3, 0xd4,0x8a,0x0, 0xc6,0xdc,0x9e,0x0, 0xe9,0x8, 0xb3,0xe0,0x3, 0xd4,0xd6, +0xe0,0x0, 0xdf,0x8c,0xe0,0x2, 0x1f,0xfb,0x8f,0x8f,0x27,0x8b,0xe0,0x13,0x11,0x44, +0x0, 0x86,0x3c,0x62,0xe0,0x5, 0xda,0xfb,0xe0,0x0, 0xdf,0x80,0xdf,0x64,0x24,0x7a, +0xe0,0x2, 0x1f,0xf7,0x11,0x1, 0x8f,0x8f,0xe0,0x13,0x11,0xc4,0x2f,0x87,0x0, 0x89, +0x3c,0x63,0xe0,0x5, 0xda,0xec,0xe0,0x0, 0xdf,0x71,0x3c,0x62,0xdf,0x88,0x24,0x79, +0x9, 0xe1,0xe0,0x2, 0x1f,0x91,0x16,0x7e,0xa6,0x8f,0xe0,0x0, 0x1f,0xbd,0xa7,0x1d, +0xa7,0x8f,0xcf,0x40,0xbf,0x1d,0x17,0x0, 0xaf,0x7f,0x15,0xfd,0xa7,0xf, 0xe0,0x1, +0x1e,0xdc,0x3f,0x5c,0xbf,0xf, 0xa7,0xf, 0xa6,0x8d,0x3f,0x5b,0xbf,0xf, 0xe0,0x1, +0xa7,0xd, 0x37,0x48,0xe2,0x0, 0xc7,0x1, 0x2f,0x1c,0xe0,0x1, 0x1f,0x42,0x87,0xe, +0xe2,0x1, 0xc7,0x7e,0xe0,0x1, 0xaf,0x3f,0x17,0x8, 0xe0,0x61,0x3f,0x11,0x17,0x10, +0xe0,0x61,0x3f,0x11,0xa7,0x4f,0xcf,0x10,0xbf,0x4f,0xe0,0x61,0x3f,0x82,0xcf,0x88, +0xe0,0x61,0x3f,0x92,0xe0,0x61,0x3f,0x82,0xcf,0x90,0xe0,0x61,0x3f,0x92,0x38,0x82, +0xe0,0x1, 0xa7,0xd, 0x37,0x49,0xe2,0x0, 0xc7,0x1, 0x2f,0x60,0xe0,0x1, 0x1f,0x42, +0xe0,0x1, 0x87,0x4e,0x3e,0x5e,0xe0,0x1, 0xae,0x3f,0x0, 0xdf,0xd, 0xbf,0xe0,0x2, +0x1f,0x91,0xa7,0x8f,0xa7,0x6f,0x37,0x49,0xe2,0x0, 0xc7,0x1, 0x27,0xb, 0xe0,0x1, +0x1f,0x5c,0xa6,0x8e,0xe0,0x2, 0xa7,0xd, 0x37,0x49,0xe2,0x0, 0xc7,0x1, 0xe0,0x3, +0x2f,0x57,0xa7,0x6f,0x37,0x41,0xe2,0x0, 0xc7,0x1, 0x27,0xb, 0xe0,0x1, 0x1f,0x5c, +0xa7,0xe, 0xe0,0x2, 0xa7,0xe, 0x37,0x41,0xe2,0x0, 0xc7,0x1, 0xe0,0x3, 0x2f,0x32, +0xa7,0x6f,0x37,0x4a,0xe2,0x0, 0xc7,0x1, 0x27,0xb, 0xe0,0x1, 0x1f,0x5c,0xa7,0xe, +0xe0,0x2, 0xa7,0xe, 0x37,0x4a,0xe2,0x0, 0xc7,0x1, 0xe0,0x3, 0x2f,0x16,0xa7,0x6f, +0xe2,0x0, 0xc7,0x1, 0x27,0xa, 0xe0,0x1, 0x1f,0x5c,0xa7,0xe, 0xe0,0x2, 0xa7,0xe, +0xe2,0x0, 0xc7,0x1, 0xe0,0x2, 0x2f,0x7e,0xa7,0x6f,0x37,0x48,0xe2,0x0, 0xc7,0x1, +0x27,0xb, 0xe0,0x1, 0x1f,0x5c,0xa7,0xe, 0xe0,0x2, 0xa7,0xe, 0x37,0x48,0xe2,0x0, +0xc7,0x1, 0xe0,0x2, 0x2f,0x62,0xa7,0x6f,0x37,0x43,0xe2,0x0, 0xc7,0x1, 0x27,0xb, +0xe0,0x1, 0x1f,0x5c,0xa7,0xe, 0xe0,0x2, 0xa7,0xe, 0x37,0x43,0xe2,0x0, 0xc7,0x1, +0xe0,0x2, 0x2f,0x48,0xa7,0x6f,0x37,0x42,0xe2,0x0, 0xc7,0x1, 0x27,0xb, 0xe0,0x1, +0x1f,0x5c,0xa7,0xe, 0xe0,0x2, 0xa7,0xe, 0x37,0x42,0xe2,0x0, 0xc7,0x1, 0xe0,0x2, +0x2f,0x25,0xa7,0x6f,0x37,0x47,0xe2,0x0, 0xc7,0x1, 0x27,0xb, 0xe0,0x1, 0x1f,0x5c, +0xa7,0xe, 0xe0,0x2, 0xa7,0xe, 0x37,0x47,0xe2,0x0, 0xc7,0x1, 0xe0,0x2, 0x2f,0x9, +0xa7,0x6f,0x37,0x4b,0xe2,0x0, 0xc7,0x1, 0x27,0xb, 0xe0,0x1, 0x1f,0x5c,0xa7,0xe, +0xe0,0x2, 0xa7,0xe, 0x37,0x4b,0xe2,0x0, 0xc7,0x1, 0xe0,0x1, 0x2f,0x60,0xa7,0x6f, +0x37,0x4c,0xe2,0x0, 0xc7,0x1, 0x27,0xb, 0xe0,0x1, 0x1f,0x5c,0xa7,0xe, 0xe0,0x2, +0xa7,0xe, 0x37,0x4d,0xe2,0x0, 0xc7,0x1, 0xe0,0x1, 0x2f,0x44,0xa7,0x6f,0x37,0x4d, +0xe2,0x0, 0xc7,0x1, 0x27,0xb, 0xe0,0x1, 0x1f,0x5c,0xa7,0xe, 0xe0,0x2, 0xa7,0xe, +0x37,0x4c,0xe2,0x0, 0xc7,0x1, 0xe0,0x1, 0x2f,0x28,0xa7,0x6f,0x37,0x4e,0xe2,0x0, +0xc7,0x1, 0x27,0xb, 0xe0,0x1, 0x1f,0x5c,0xa7,0xe, 0xe0,0x2, 0xa7,0xe, 0x37,0x4e, +0xe2,0x0, 0xc7,0x1, 0xe0,0x1, 0x2f,0xc, 0xa7,0x6f,0x37,0x4f,0xe2,0x0, 0xc7,0x1, +0x27,0xb, 0xe0,0x1, 0x1f,0x5c,0xa7,0xe, 0xe0,0x2, 0xa7,0xe, 0x37,0x4f,0xe2,0x0, +0xc7,0x1, 0xe0,0x0, 0x2f,0x69,0xa7,0x6f,0x37,0x44,0xe2,0x0, 0xc7,0x1, 0x27,0xb, +0xe0,0x1, 0x1f,0x5c,0xa7,0xe, 0xe0,0x2, 0xa7,0xe, 0x37,0x44,0xe2,0x0, 0xc7,0x1, +0xe0,0x0, 0x2f,0x4f,0xa7,0x6f,0x37,0x45,0xe2,0x0, 0xc7,0x1, 0x27,0xa, 0xe0,0x1, +0x1f,0x5c,0xa7,0xe, 0xe0,0x2, 0xa7,0xe, 0x37,0x45,0xe2,0x0, 0xc7,0x1, 0x2f,0x29, +0xa7,0x6f,0x37,0x46,0xe2,0x0, 0xc7,0x1, 0x27,0x1f,0xe0,0x1, 0x1f,0x5c,0xa7,0xe, +0xe0,0x2, 0xa7,0xe, 0x37,0x46,0xe2,0x0, 0xc7,0x1, 0x27,0x16,0xa7,0x5f,0xa6,0xdf, +0x37,0x46,0xe2,0x0, 0xc7,0x1, 0xe7,0xff,0x16,0x3f,0xe4,0x0, 0xcf,0x1, 0x3e,0xdc, +0x37,0x26,0x3f,0x4d,0xbf,0x5f,0xa7,0x6f,0xe0,0x2, 0x1e,0xe9,0x3f,0x5c,0xbf,0x6f, +0x9f,0x8d,0xcf,0xc0,0xb7,0x8d,0x17,0x81,0xe0,0x61,0x3f,0x91,0xf, 0xab,0x38,0x0, +0xa7,0x5f,0xa6,0xdf,0x37,0x47,0xe2,0x0, 0xc7,0x1, 0xe7,0xfe,0x16,0x7f,0xe4,0x0, +0xcf,0x1, 0x3e,0xdc,0x37,0x27,0x3f,0x4d,0xbf,0x5f,0x16,0x5f,0xa7,0x6f,0xe0,0x2, +0x1e,0xe9,0x3f,0x5c,0xbf,0x6f,0x9f,0xd, 0xcf,0x20,0xb7,0xd, 0x0, 0xc2,0xa7,0x6f, +0x16,0x6f,0xe0,0x2, 0x1e,0xe9,0x3f,0x5c,0xbf,0x6f,0x9f,0xd, 0xcf,0x10,0xb7,0xd, +0xe7,0xff,0x0, 0xaa,0xa7,0x6f,0xe6,0xff,0x16,0xff,0x3f,0x5d,0xe0,0x2, 0x1e,0xbd, +0xbf,0x6f,0x17,0x1, 0xe0,0x0, 0x1e,0x21,0xaf,0xd, 0xe0,0x2, 0x1e,0xe9,0xaf,0xc, +0x9f,0xd, 0xe1,0x0, 0xcf,0x0, 0xb7,0xd, 0xe7,0xff,0x0, 0x87,0xa7,0x6f,0xe7,0x7f, +0x16,0x7f,0xe0,0x2, 0x1e,0xe9,0x3f,0x5c,0xbf,0x6f,0x9f,0xd, 0xe0,0x80,0xcf,0x0, +0xb7,0xd, 0xe7,0xfe,0x0, 0xeb,0xa7,0x6f,0xe7,0xbf,0x16,0x7f,0xe0,0x2, 0x1e,0xe9, +0x3f,0x5c,0xbf,0x6f,0x9f,0xd, 0xe0,0x40,0xcf,0x0, 0xb7,0xd, 0xe7,0xfe,0x0, 0xcf, +0xa7,0x6f,0xe7,0xdf,0x16,0x7f,0xe0,0x2, 0x1e,0xe9,0x3f,0x5c,0xbf,0x6f,0x9f,0xd, +0xe0,0x20,0xcf,0x0, 0xb7,0xd, 0xe7,0xfe,0x0, 0xb3,0xa7,0x5f,0xa6,0xdf,0x37,0x4f, +0xe2,0x0, 0xc7,0x1, 0xe6,0xff,0x16,0x7f,0xe4,0x0, 0xcf,0x1, 0x3e,0xdc,0x37,0x2f, +0x3f,0x4d,0xbf,0x5f,0xe7,0xef,0x16,0x7f,0xa7,0x6f,0xe0,0x2, 0x1e,0xe9,0x3f,0x5c, +0xbf,0x6f,0x9f,0xd, 0xe0,0x10,0xcf,0x0, 0xb7,0xd, 0xe7,0xfe,0x0, 0x8a,0xa7,0x6f, +0xe7,0xfe,0x16,0x7f,0xe0,0x2, 0x1e,0xe9,0x3f,0x5c,0xbf,0x6f,0x9f,0xd, 0xe0,0x1, +0xcf,0x0, 0xb7,0xd, 0xe7,0xfd,0x0, 0xee,0xa6,0xef,0xe0,0x0, 0x1f,0x2f,0x16,0x7b, +0xa7,0xe, 0x3e,0xdc,0xbe,0xef,0xa6,0x9e,0xe0,0x2, 0x1e,0x69,0xce,0x81,0xbe,0x9e, +0xa6,0x9e,0xce,0x90,0xbe,0x9e,0x9f,0xc, 0xcf,0x4, 0xb7,0xc, 0xe7,0xfd,0x0, 0xcb, +0xa7,0x6f,0x16,0x77,0xe0,0x2, 0x1e,0xe9,0x3f,0x5c,0xbf,0x6f,0x9f,0xd, 0xcf,0x8, +0xb7,0xd, 0xe7,0xfd,0x0, 0xb1,0xa7,0x6f,0xe7,0xfd,0x16,0x7f,0xe0,0x2, 0x1e,0xe9, +0x3f,0x5c,0xbf,0x6f,0x9f,0xd, 0xe0,0x2, 0xcf,0x0, 0xb7,0xd, 0xe7,0xfd,0x0, 0x95, +0xa7,0x6f,0x16,0x7e,0xe0,0x2, 0x1e,0xe9,0x3f,0x5c,0xbf,0x6f,0x9f,0xd, 0xcf,0x1, +0xb7,0xd, 0xe7,0xfc,0x0, 0xfb,0xa7,0x6f,0xe7,0xf7,0x16,0x7f,0xe0,0x2, 0x1e,0xe9, +0x3f,0x5c,0xbf,0x6f,0x9f,0xd, 0xe0,0x8, 0xcf,0x0, 0xb7,0xd, 0xe7,0xfc,0x0, 0xe1, +0xe0,0x2, 0x1f,0xc, 0x16,0x81,0xae,0x8e,0x16,0x5f,0xe0,0x0, 0x1f,0x3d,0xa6,0x8e, +0xa7,0xd, 0x3f,0x5c,0xbf,0xd, 0x16,0x7d,0xa7,0x6f,0xe0,0x2, 0x1e,0xe9,0x3f,0x5c, +0xbf,0x6f,0x9f,0xd, 0xcf,0x2, 0xb7,0xd, 0xe7,0xfc,0x0, 0xbc,0xe0,0x1, 0xa7,0x6d, +0xe7,0xef,0x15,0xff,0xe0,0x10,0xcf,0x0, 0xe0,0x1, 0xbf,0x6d,0xe0,0x1, 0xa7,0x6d, +0xe0,0x2, 0x1e,0x69,0x3f,0x5b,0xe0,0x1, 0xbf,0x6d,0xe7,0xfb,0x16,0xff,0xa7,0x6f, +0x3f,0x5d,0xbf,0x6f,0x9f,0xc, 0xe0,0x4, 0xcf,0x0, 0xb7,0xc, 0xe7,0xfc,0x0, 0x93, +0xf, 0x3f,0xe0,0x2, 0x1f,0x14,0x97,0xde,0xe0,0x40,0xcf,0x80,0xb7,0xde,0x17,0x82, +0xe0,0x61,0x3f,0x91,0xf, 0xae,0x38,0x0, 0xf, 0xbf,0x17,0x84,0xe0,0x61,0x3f,0x91, +0xf, 0xaf,0x38,0x0, 0xf, 0xbf,0x17,0xa0,0xe0,0x61,0x3f,0x91,0xf, 0xaf,0x38,0x0, +0xf, 0xbf,0xe0,0x0, 0x17,0xc0,0xe0,0x61,0x3f,0x91,0xf, 0xaf,0x38,0x0, 0xe, 0x3f, +0xe0,0x2, 0x1f,0x42,0xe0,0x0, 0x1e,0xaa,0x9f,0x8e,0xe0,0x2, 0x1e,0x47,0xc7,0x81, +0xb7,0x8e,0x9f,0x8d,0x9f,0xc, 0xc7,0x81,0xb7,0x8d,0x27,0x3, 0xc7,0x7f,0xb7,0xc, +0xe0,0x3, 0x1f,0x96,0x8f,0xf, 0x27,0x4, 0x8f,0xf, 0xc7,0x7f,0xaf,0xf, 0x8f,0x8f, +0x2f,0x86,0xe0,0x2, 0x1f,0x12,0x97,0x8e,0xcf,0x88,0xb7,0x8e,0xe0,0x2, 0x1e,0xec, +0xe0,0x2, 0x1f,0x39,0x9f,0x8d,0xc7,0x81,0xb7,0x8d,0x9f,0x8e,0x27,0x84,0x9f,0x8e, +0xc7,0xff,0xb7,0x8e,0xe0,0x3, 0x1f,0xad,0x9f,0xf, 0x27,0x4, 0x9f,0xf, 0xc7,0x7f, +0xb7,0xf, 0xe0,0x3, 0x1f,0x81,0xe0,0x0, 0x1f,0x40,0xa7,0x8f,0x97,0xe, 0xb7,0x3f, +0xa7,0xf, 0xcf,0x1, 0xbf,0xf, 0xa7,0xf, 0xe0,0x1, 0xcf,0x0, 0xbf,0xf, 0xe0,0x2, +0x17,0x80,0xe0,0x61,0x3f,0x91,0xf, 0xac,0x38,0x0, 0xf, 0xbf,0xe0,0x4, 0x17,0x80, +0xe0,0x61,0x3f,0x91,0xf, 0xaf,0x38,0x0, 0xf, 0xbf,0xe0,0x8, 0x17,0x80,0xe0,0x61, +0x3f,0x91,0xf, 0xaf,0x38,0x0, 0xf, 0xbf,0xe0,0x10,0x17,0x80,0xe0,0x61,0x3f,0x91, +0xf, 0xaf,0x38,0x0, 0xf, 0xbf,0xe0,0x80,0x17,0x80,0xe0,0x61,0x3f,0x91,0xf, 0xaf, +0x38,0x0, 0xf, 0xbf,0xe0,0x20,0x17,0x80,0xe0,0x61,0x3f,0x91,0xf, 0xaf,0x38,0x0, +0x8, 0xb1,0xe8,0x0, 0xc, 0x37,0xe0,0x2, 0xdf,0xf9,0x17,0x88,0xe0,0x61,0x3f,0x91, +0xf0,0x0, 0xb, 0xa8,0x8, 0xa1,0x38,0x0, 0x8, 0xb1,0xe8,0x0, 0xc, 0x37,0xe0,0x3, +0xd0,0x28,0x17,0x90,0xe0,0x61,0x3f,0x91,0xf0,0x0, 0xb, 0xa8,0x8, 0xa1,0x38,0x0, +0x8, 0xb1,0xe8,0x0, 0xc, 0x37,0xe0,0x2, 0x1f,0xe4,0xe7,0xfe,0x16,0xff,0xa7,0xf, +0xa7,0xbe,0x3f,0xdd,0xbf,0xbe,0xe0,0x5, 0xd7,0xfa,0xe0,0x40,0x17,0x80,0xe0,0x61, +0x3f,0x91,0xf0,0x0, 0xb, 0xa8,0x8, 0xa1,0x38,0x0, 0x3f,0x83,0xe0,0x1, 0x1f,0xd4, +0xe0,0x6, 0x8f,0xf, 0xc7,0x7f,0xe0,0x6, 0xaf,0xf, 0xe0,0x6, 0x8f,0xf, 0x37,0x24, +0x3f,0x1f,0xa7,0xe, 0xe0,0x60,0x3f,0x19,0xe0,0x6, 0x8f,0xf, 0x37,0x24,0x3f,0x1f, +0xa7,0x1e,0xe0,0x60,0x3f,0x1a,0xe0,0x6, 0x8f,0xf, 0x37,0x24,0x3f,0x1f,0xa7,0x2e, +0xe0,0x60,0x3f,0x18,0xe0,0x6, 0x8f,0xf, 0x37,0x24,0x3f,0x9e,0xa7,0xbf,0xe0,0x61, +0x3f,0x92,0x3b,0x0, 0x38,0x82,0x0, 0x0, 0xe0,0x2, 0x1d,0x5, 0x16,0x84,0xae,0x8a, +0x17,0x81,0xaf,0x9a,0x17,0x2, 0xaf,0xaa,0xf0,0x0, 0x13,0x80,0xae,0xba,0xf8,0x40, +0x3a,0xe7,0xae,0xca,0x14,0x1, 0xaf,0x5a,0xaf,0x6a,0xaf,0x7a,0xe0,0x1, 0xaf,0xa, +0x17,0x3, 0xe0,0x1, 0xaf,0x9a,0xe0,0x1, 0xaf,0xaa,0xe0,0x1, 0xaf,0xba,0xe0,0x1, +0xaf,0xca,0xe0,0x1, 0xaf,0xda,0x17,0x80,0xe0,0x1, 0xaf,0x6a,0xf0,0x2, 0x1b,0x71, +0xe0,0x1, 0xaf,0xfa,0xf0,0xb, 0x33,0xa2,0xe8,0xb, 0x3d,0x96,0xf0,0x0, 0xba,0x8b, +0xe0,0x0, 0x17,0x80,0xe8,0x9, 0x3d,0x17,0xe0,0xe, 0x3d,0x1f,0x8e,0xe, 0x8e,0x89, +0xe0,0xe, 0x34,0x3f,0x3e,0x7d,0xc7,0x81,0x5, 0x84,0xa6,0x8b,0x3f,0x4d,0xbf,0xb, +0xe2,0x0, 0xcf,0x90,0x1, 0xf2,0xf0,0x0, 0xc3,0x81,0xf2,0x0, 0xcb,0x90,0x1, 0xe3, +0xe0,0x1, 0x1f,0xd4,0x17,0x0, 0xe0,0x6, 0xaf,0xf, 0x38,0x82,0xe0,0x2, 0x1f,0x71, +0xe0,0xf, 0x34,0x22,0x3f,0x1f,0xa7,0x8e,0x27,0xb3,0x3f,0x83,0xe0,0x1, 0x1f,0xd4, +0xe0,0x6, 0x8e,0x8f,0xe0,0x60,0x3e,0x9, 0x36,0xa4,0x3e,0x9f,0xbe,0xd, 0xe0,0x6, +0x8e,0x8f,0xe0,0x60,0x3e,0xa, 0x36,0xa4,0x3e,0x9f,0xbe,0x1d,0xe0,0x6, 0x8e,0x8f, +0xe0,0x60,0x3e,0x8, 0x36,0xa4,0x3e,0x9f,0xbe,0x2d,0xe0,0x6, 0x8e,0x8f,0xe0,0x61, +0x3e,0x2, 0x36,0xa4,0x3e,0x9f,0xbe,0x3d,0xe0,0x6, 0x8e,0x8f,0xc6,0x81,0xe0,0x6, +0xae,0x8f,0xa7,0x8e,0xe0,0x61,0x3f,0x92,0x17,0x81,0xe0,0x8, 0x37,0xb8,0xe0,0x61, +0x3c,0x11,0xe0,0x60,0x3f,0x80,0xcf,0x82,0xe0,0x60,0x3f,0x90,0x3b,0x0, 0x38,0x82, +0x8, 0xb4,0xe8,0x0, 0xc, 0x37,0xe0,0x3, 0x1f,0xb8,0xa1,0xf, 0xa7,0xb2,0x37,0xcf, +0xe2,0x0, 0xc7,0x81,0x27,0x87,0xa7,0x82,0x37,0xcf,0xe2,0x0, 0xc7,0x81,0xe0,0x0, +0x2f,0xf2,0xa7,0xb2,0xe2,0x0, 0xc7,0x81,0x27,0x86,0xa7,0x82,0xe2,0x0, 0xc7,0x81, +0xe0,0x0, 0x2f,0xf1,0xa7,0xb2,0x37,0xc1,0xe2,0x0, 0xc7,0x81,0x27,0x87,0xa7,0x82, +0x37,0xc1,0xe2,0x0, 0xc7,0x81,0xe0,0x0, 0x2f,0xed,0xa7,0xb2,0x37,0xca,0xe2,0x0, +0xc7,0x81,0x27,0x87,0xa7,0x82,0x37,0xca,0xe2,0x0, 0xc7,0x81,0xe0,0x0, 0x2f,0xe9, +0xa7,0xb2,0x37,0xcb,0xe2,0x0, 0xc7,0x81,0x27,0x86,0xa7,0x82,0x37,0xcb,0xe2,0x0, +0xc7,0x81,0x2f,0xbd,0xa7,0xb2,0x37,0xcc,0xe2,0x0, 0xc7,0x81,0x27,0x87,0xa7,0x82, +0x37,0xcc,0xe2,0x0, 0xc7,0x81,0xe0,0x0, 0x2f,0xe6,0xa7,0xb2,0x37,0xc7,0xe2,0x0, +0xc7,0x81,0x27,0xa5,0xa7,0x82,0x37,0xc7,0xe2,0x0, 0xc7,0x81,0x27,0xa0,0xa7,0x92, +0xe0,0x0, 0x1a,0x10,0xe0,0x1, 0xcf,0x80,0xbf,0x92,0x8f,0x84,0xe0,0x2, 0x19,0x92, +0x27,0x89,0x99,0x3, 0x31,0x4c,0xe2,0x0, 0xc1,0x1, 0x29,0x4, 0xe0,0x6, 0xd5,0x28, +0xa9,0x4, 0x97,0x83,0xe0,0x3, 0x1f,0x37,0xe3,0xdf,0xc7,0xff,0xb7,0x83,0x97,0x83, +0xe3,0xbf,0xc7,0xff,0xb7,0x83,0x9f,0x8e,0xc7,0x81,0xb7,0x8e,0xe0,0x1, 0x17,0x80, +0xe0,0x61,0x3f,0x91,0xf0,0x0, 0xb, 0xa8,0xa, 0x21,0x38,0x0, 0xa7,0x92,0xe0,0x3, +0x1f,0x1d,0xe0,0x10,0xcf,0x80,0xbf,0x92,0x97,0x8e,0xcf,0xa0,0xb7,0x8e,0xe7,0xff, +0x0, 0xbb,0xa7,0x92,0xe1,0x0, 0xcf,0x80,0xbf,0x92,0xe0,0x0, 0xd9,0x1f,0xe7,0xff, +0x0, 0x8a,0xa7,0x92,0xcf,0x81,0xbf,0x92,0xe0,0x0, 0xd9,0x5, 0xe7,0xff,0x0, 0x8c, +0xa7,0x92,0xcf,0x82,0xbf,0x92,0xe0,0x0, 0xd9,0x11,0xe7,0xff,0x0, 0x90,0xa7,0x92, +0xe0,0x2, 0x19,0x92,0xe0,0x8, 0xcf,0x80,0xbf,0x92,0x97,0x83,0xe0,0x2, 0x1f,0x14, +0xcf,0x82,0xb7,0x83,0x97,0xce,0xcf,0x88,0xb7,0xce,0xe0,0x0, 0xd8,0xdb,0xe7,0xff, +0x0, 0x89,0xa7,0x92,0x14,0x7, 0xe0,0x20,0xcf,0x80,0xbf,0x92,0xdf,0x18,0xe0,0x3, +0x1e,0x9d,0xe0,0x2, 0x19,0x92,0x9f,0xd, 0x97,0x83,0x16,0x6f,0x37,0x41,0xe2,0x0, +0xc7,0x10,0x3f,0xdc,0x3f,0xce,0xb7,0x83,0x97,0x8d,0xe3,0xff,0xc7,0xdf,0xb7,0x8d, +0xd9,0xe, 0xd9,0x37,0xa7,0x92,0xe0,0x2, 0x1f,0x14,0xe0,0x20,0xcf,0x80,0xbf,0x92, +0xe7,0x0, 0x16,0x80,0x97,0xde,0x3f,0xcd,0xb7,0xde,0xe0,0x2, 0x1f,0xf1,0xa7,0xff, +0x2f,0x87,0xe0,0x1, 0x17,0x80,0xe0,0x61,0x3f,0x91,0xe7,0xfe,0x0, 0xf0,0xde,0x7e, +0xe7,0xfe,0x0, 0xed,0x8, 0xb1,0xe0,0x6, 0xdc,0x84,0xe0,0x60,0x3f,0x87,0xe0,0x1, +0x1f,0x50,0xe0,0x1, 0xbf,0xf, 0xe0,0x2, 0x1f,0x65,0xe0,0x1, 0xbf,0x1f,0xe0,0x3, +0x1f,0x11,0xe0,0x1, 0xbf,0x2f,0xe0,0x1, 0x1f,0x4b,0xe0,0x1, 0xbf,0x3f,0xe0,0x3, +0x1f,0x14,0xe0,0x1, 0xbf,0x4f,0xe0,0x0, 0x1f,0x49,0xe0,0x1, 0xbf,0x5f,0xe0,0x0, +0x1f,0x14,0xe0,0x1, 0xbf,0x6f,0xe0,0x2, 0x1f,0x2a,0xe0,0x1, 0xbf,0x7f,0xe0,0x2, +0x1f,0x1d,0xe0,0x2, 0xbf,0xf, 0xe0,0x2, 0x1f,0x61,0xe0,0x2, 0xbf,0x1f,0xe0,0x2, +0x1f,0x2, 0xe0,0x2, 0xbf,0x2f,0xe0,0x3, 0x1f,0x42,0xe0,0x2, 0xbf,0x3f,0xe0,0x0, +0x1f,0x35,0xe0,0x2, 0xbf,0x4f,0xe0,0x2, 0x1f,0x6e,0xe0,0x2, 0xbf,0x5f,0xe0,0x0, +0x1f,0x36,0xe0,0x2, 0xbf,0x6f,0x8, 0xe1,0xe0,0x2, 0x1f,0x91,0xe7,0x7f,0x16,0x7f, +0xa7,0xf, 0xe0,0x1, 0x1f,0xdc,0xa6,0xae,0xa7,0x8f,0x3e,0xdc,0xbe,0xae,0xe0,0xa0, +0x17,0x0, 0x9e,0xbf,0xe0,0x1e,0xce,0x80,0xb6,0xbf,0xb7,0x7f,0xa7,0x4f,0x3f,0x5c, +0xbf,0x4f,0xa7,0x4f,0xe0,0x20,0xcf,0x0, 0xbf,0x4f,0x38,0x82,0xe0,0x2, 0x1f,0x91, +0xe7,0x7f,0x16,0x7f,0xa6,0x8f,0xe0,0x2, 0x1f,0xa4,0xa7,0x1d,0xa7,0x8f,0xcf,0x1, +0xbf,0x1d,0xe6,0xff,0x16,0xff,0xa7,0xf, 0x3f,0x5d,0xbf,0xf, 0xa6,0x8f,0xe0,0x1, +0x1f,0x5c,0x3e,0xdc,0xa7,0xe, 0xbe,0x8f,0x9e,0xbe,0xe0,0x1e,0xce,0x80,0xb6,0xbe, +0xe0,0x61,0x3e,0x82,0xe7,0xef,0x15,0xff,0x3e,0xdb,0xe0,0x61,0x3e,0x92,0xe0,0x46, +0x16,0x80,0xbe,0x8f,0x15,0xfe,0xa6,0x8f,0xce,0x84,0xbe,0x8f,0xa6,0x8f,0xce,0x82, +0xbe,0x8f,0xa6,0x8f,0x3e,0xdb,0xbe,0x8f,0xa7,0xce,0x3f,0xdc,0xbf,0xce,0x17,0x0, +0xe0,0x0, 0x1f,0xab,0xaf,0xf, 0x38,0x82,0xe0,0x2, 0x1f,0xa4,0x16,0xfb,0xa7,0x8f, +0xe4,0xc, 0x34,0x40,0xa7,0xf, 0xe2,0x1, 0xc6,0x7f,0x3f,0x5d,0xbf,0xf, 0xe0,0xd, +0x34,0x48,0x17,0xb, 0xaf,0x7f,0xe2,0x1, 0xc6,0xff,0xe2,0x1, 0xc4,0x7f,0xa7,0xf, +0x37,0x4e,0xe2,0x0, 0xc7,0x1, 0x27,0x7c,0xa7,0xf, 0xe7,0x7f,0x15,0xff,0x3f,0x5b, +0xbf,0xf, 0xae,0x7f,0xa7,0xf, 0x37,0x4e,0xe2,0x0, 0xc7,0x1, 0x27,0x7c,0xa7,0xf, +0xe7,0x7f,0x16,0x7f,0x3f,0x5c,0xbf,0xf, 0xae,0xff,0xa7,0xf, 0x37,0x4e,0xe2,0x0, +0xc7,0x1, 0x27,0x7c,0xa7,0xf, 0xe7,0x7f,0x16,0xff,0x3f,0x5d,0xbf,0xf, 0xac,0x7f, +0xa7,0xf, 0x37,0x4e,0xe2,0x0, 0xc7,0x1, 0x27,0x7c,0xa7,0xf, 0xe7,0x7f,0x16,0xff, +0x3f,0x5d,0xbf,0xf, 0x17,0x0, 0xaf,0x7f,0xa7,0xf, 0x37,0x4e,0xe2,0x0, 0xc7,0x1, +0x27,0x7c,0xa7,0xf, 0xe7,0x7f,0x16,0xff,0x3f,0x5d,0xbf,0xf, 0x38,0x82,0x0, 0x0, +0x8, 0xb3,0x39,0xea,0x39,0x69,0xdf,0xb1,0x21,0xa1,0xe0,0x2, 0x1f,0xa4,0xc1,0xff, +0xe3,0xff,0xc1,0xff,0x16,0xff,0xa7,0xf, 0x3e,0x92,0xe0,0xc, 0x39,0x13,0x15,0x0, +0xe7,0x7f,0x15,0xff,0xad,0x7e,0xa7,0x8e,0x37,0xce,0xe2,0x0, 0xc7,0x81,0x27,0xfc, +0xa7,0x8e,0x3f,0xdb,0xbf,0x8e,0x8f,0xfe,0xe0,0x80,0xaf,0x9d,0x3e,0xfc,0x1, 0xf3, +0xa7,0x8e,0x14,0x1, 0xcf,0x84,0xbf,0x8e,0x9, 0xe1,0xe0,0x2, 0x1f,0xa4,0x14,0x1, +0xa7,0xf, 0xa7,0x8e,0xcf,0x84,0xbf,0x8e,0x9, 0xe1,0x8, 0xb2,0x14,0x1, 0xef,0xff, +0xd7,0x3b,0xe0,0x1, 0x14,0xc8,0x14,0x0, 0xe0,0x6, 0xd3,0xcf,0x24,0x14,0xe0,0x2, +0x1f,0x48,0x17,0x82,0xe0,0x0, 0x19,0x4d,0xaf,0x8e,0xe0,0x2, 0x1f,0x12,0xaf,0x82, +0x97,0x8e,0xe0,0x20,0xcf,0x80,0xb7,0x8e,0x8c,0x2, 0xef,0xff,0xd5,0x91,0x9, 0x21, +0xe7,0xed,0x0, 0xd1,0xe0,0x2, 0x1f,0xc8,0x17,0x1, 0xe0,0x0, 0x19,0x4d,0xaf,0xf, +0x3c,0xe8,0xaf,0x2, 0x8f,0x8f,0xe0,0x3, 0x1c,0x2c,0xe4,0x0, 0xc7,0x8e,0x3c,0x1f, +0xef,0xff,0xd2,0x3b,0x0, 0xea,0x8, 0xb2,0xe0,0x2, 0x19,0x40,0xe0,0x1, 0x8c,0xa2, +0xe0,0x4, 0x8f,0xd2,0x2f,0x95,0xe0,0x0, 0x1f,0xcd,0x8f,0x8f,0xe0,0x0, 0x2f,0xcb, +0xe0,0x1, 0x8c,0x82,0x14,0x5, 0xe2,0x0, 0xcc,0x94,0x2, 0x98,0xe0,0x0, 0x14,0x64, +0x24,0x95,0xe0,0x0, 0x14,0x63,0x3c,0x19,0xe0,0x6, 0xda,0x4a,0x0, 0x8f,0xe0,0x0, +0x1f,0xcd,0x8f,0x8f,0x2f,0xa3,0xe0,0x1, 0x8f,0x92,0xe0,0x0, 0x14,0x7f,0xe0,0x43, +0x3f,0xf, 0xe2,0x0, 0xcf,0x0, 0xe0,0x68,0x3b,0x2f,0xe0,0x5, 0x8f,0xc2,0x14,0x98, +0x3c,0x3f,0xe0,0x6, 0xda,0x35,0xe0,0x0, 0x1f,0xb2,0xe0,0x3, 0x1f,0x16,0xac,0xf, +0x87,0x8f,0xaf,0x8e,0xe0,0x2, 0x1f,0x12,0x97,0x8e,0xe3,0xff,0xc7,0xf7,0xb7,0x8e, +0x17,0x0, 0xe0,0x2, 0x1f,0xc2,0xb7,0xf, 0x9, 0x61,0xe0,0x3, 0x1f,0xc6,0x8f,0x8f, +0xe2,0x0, 0xcf,0xb8,0x5, 0x87,0xe0,0x3, 0x1f,0xc3,0x8f,0x8f,0xe2,0x0, 0xcf,0x81, +0x1, 0x17,0xe0,0x7, 0x14,0x68,0xe0,0x6, 0xda,0x13,0xc4,0x7f,0xe2,0x1, 0xc4,0x7f, +0x0, 0xd5,0xe0,0x3, 0x1f,0xc3,0x8f,0x8f,0xe2,0x0, 0xcf,0x81,0x1, 0xf3,0xe0,0x3, +0x14,0x74,0xe0,0x6, 0xda,0x5, 0xc4,0x7e,0xe2,0x1, 0xc4,0x7f,0x0, 0xc7,0xe0,0x3, +0x14,0x74,0xe0,0x6, 0xd9,0xfd,0xc4,0x7f,0xe2,0x1, 0xc4,0x7f,0xe7,0xff,0x0, 0xbf, +0xe0,0x3, 0x1f,0xb8,0xa7,0x8f,0xa7,0xcf,0xe2,0x0, 0xc7,0x81,0x27,0xa0,0x8, 0xb4, +0xe0,0x2, 0x19,0x12,0x9f,0x82,0x37,0xc7,0xe2,0x0, 0xc7,0x81,0x27,0x96,0xe0,0x3, +0x1f,0x43,0x97,0x82,0x89,0x8e,0xe3,0xfe,0xc7,0xff,0xe2,0x0, 0xc9,0x81,0xb7,0x82, +0x1, 0x10,0x9f,0x82,0x37,0xce,0xe2,0x0, 0xc7,0x81,0x27,0x87,0x97,0x82,0x14,0x0, +0xe3,0x7f,0xc7,0xff,0xb7,0x82,0xa, 0x61,0x14,0x1, 0xa, 0x61,0x14,0x1, 0x38,0x82, +0x3c,0x63,0xef,0xff,0xd6,0x79,0xe0,0x1, 0x14,0xc8,0x3c,0x63,0xe0,0x6, 0xd3,0xd, +0xe0,0x0, 0x1a,0x4d,0x2c,0x5, 0x8c,0x4, 0xef,0xff,0xd4,0xda,0x0, 0xe3,0x97,0x82, +0xe0,0x2, 0x1f,0x48,0xe3,0xdf,0xc7,0xff,0xb7,0x82,0x3c,0xe3,0x97,0x82,0xe0,0x3, +0x1c,0x2c,0xe0,0x40,0xcf,0x80,0xb7,0x82,0xa9,0x8e,0xa9,0x84,0x8f,0x8e,0xe4,0x0, +0xc7,0x8e,0x3c,0x1f,0xef,0xff,0xd1,0x62,0x0, 0xe7,0x8, 0xb6,0xe0,0x0, 0x1f,0xbd, +0xe0,0x3, 0x19,0x36,0xa1,0x8f,0xa7,0x83,0x37,0xc3,0xe2,0x0, 0xc7,0x81,0x27,0x99, +0xe0,0x2, 0x1b,0x12,0xe7,0xff,0x12,0x81,0xe0,0x1, 0x12,0x7f,0x0, 0x8c,0x9f,0x86, +0x37,0xc3,0xe2,0x0, 0xc7,0x81,0x2f,0x8c,0xd4,0xbe,0xa7,0x83,0x37,0xc3,0xe2,0x0, +0xc7,0x81,0x27,0x87,0xaa,0x82,0xef,0xff,0xd6,0x5a,0x3c,0xe4,0x24,0x71,0xb, 0x61, +0xe0,0x1, 0x1f,0xdc,0xe7,0xef,0x16,0xff,0xa7,0x8f,0xe0,0x4, 0x14,0x89,0xe0,0x1, +0xa7,0x6f,0x14,0x2, 0xe0,0x10,0xcf,0x0, 0xe0,0x1, 0xbf,0x6f,0xe0,0x1, 0xa7,0x6f, +0x3f,0x5d,0xe0,0x1, 0xbf,0x6f,0xe7,0xff,0x17,0x81,0xaf,0x82,0xb, 0x21,0xe0,0x9, +0x0, 0x9b,0x0, 0x0, 0x8, 0xb2,0xe0,0x2, 0x19,0x12,0x9f,0x82,0x37,0xc3,0xe2,0x0, +0xc7,0x81,0x2f,0x8d,0x9f,0x82,0xe0,0xf, 0x37,0xc3,0xe2,0x0, 0xc7,0x81,0x2f,0x87, +0xdf,0xb5,0x9f,0x82,0x37,0xc3,0xe2,0x0, 0xc7,0x81,0x27,0xfb,0xef,0xff,0xd6,0x27, +0x24,0x3, 0x0, 0x85,0xdf,0xab,0xef,0xff,0xd6,0x22,0x24,0x7d,0x9, 0x61,0xe0,0x0, +0x1f,0xbd,0xa7,0x8f,0xa7,0x8f,0x37,0xc3,0xe2,0x0, 0xc7,0x81,0x2f,0x94,0xe0,0x3, +0x1e,0xb6,0xe0,0x2, 0x1f,0xc, 0xe7,0xff,0x16,0x1, 0xae,0xd, 0x8e,0x8e,0xe2,0x0, +0xce,0x81,0x1, 0xa, 0xe0,0x2, 0x1f,0xc7,0x9f,0x8f,0x2f,0x8c,0x14,0x83,0x14,0x1, +0xe0,0x8, 0x0, 0xe2,0x38,0x82,0xe0,0x2, 0x1e,0xc7,0xe0,0x1f,0x16,0x20,0xb6,0xd, +0xaf,0x8e,0xe0,0x4, 0x14,0x81,0x14,0x2, 0xe0,0x8, 0x0, 0xd6,0x8, 0xb5,0xef,0xff, +0xd5,0xf6,0xe0,0x0, 0x24,0x4b,0x14,0x0, 0xd6,0xa, 0xe0,0x2, 0x1f,0x91,0xe7,0xdf, +0x17,0x7f,0xa1,0xf, 0xe0,0x2, 0x1a,0x96,0xa7,0x92,0xe0,0x2, 0x19,0x92,0x3f,0xde, +0xbf,0x92,0xe7,0xfb,0x17,0x7f,0xa7,0x92,0xe0,0x2, 0x1a,0x40,0x3f,0xde,0xbf,0x92, +0xe7,0xfd,0x17,0x7f,0xa7,0x92,0x3f,0xde,0xbf,0x92,0xe7,0xfe,0x17,0x7f,0xa7,0xa2, +0x3f,0xde,0xbf,0xa2,0x9f,0x83,0x37,0xc3,0xe2,0x0, 0xc7,0x81,0x2f,0x8c,0xe0,0xa, +0x8f,0x84,0x27,0xa8,0x8f,0x85,0x2f,0xa6,0xdf,0xab,0x9f,0x83,0x37,0xc3,0xe2,0x0, +0xc7,0x81,0x27,0xf6,0x8f,0x85,0x27,0x84,0x8f,0x85,0xc7,0xff,0xaf,0x85,0x14,0x1, +0xa7,0x92,0xe0,0x20,0xcf,0x80,0xbf,0x92,0xa7,0x92,0xe0,0x4, 0xcf,0x80,0xbf,0x92, +0xa7,0x92,0xe0,0x2, 0xcf,0x80,0xbf,0x92,0xa7,0xa2,0xe0,0x1, 0xcf,0x80,0xbf,0xa2, +0xa, 0xa1,0xe0,0xb, 0x0, 0xc5,0xdf,0x32,0xef,0xff,0xd5,0xa9,0x24,0x7d,0xe7,0xff, +0x0, 0xb4,0xdf,0x2c,0x0, 0xd0,0x0, 0x0, 0x8, 0xb3,0x14,0x1, 0xef,0xff,0xd5,0x7c, +0xe0,0x0, 0x1f,0xbd,0xa7,0x8f,0xa1,0xf, 0x31,0x43,0xe2,0x0, 0xc1,0x1, 0x29,0x7c, +0x3c,0x62,0xd5,0xad,0xe0,0x2, 0x1f,0x91,0xe7,0xdf,0x17,0x7f,0xa1,0x8f,0x14,0x1, +0xa7,0x93,0x3c,0xe2,0x3f,0xde,0xbf,0x93,0xe7,0xfb,0x17,0x7f,0xa7,0x93,0x3f,0xde, +0xbf,0x93,0xe7,0xfd,0x17,0x7f,0xa7,0x93,0x3f,0xde,0xbf,0x93,0xe7,0xfe,0x17,0x7f, +0xa7,0xa3,0x3f,0xde,0xbf,0xa3,0xe7,0xff,0x17,0x1, 0xe0,0x3, 0x1f,0xb6,0xaf,0xf, +0xd3,0xd2,0xa7,0x93,0x14,0x1, 0xe0,0x20,0xcf,0x80,0xbf,0x93,0xa7,0x93,0xe0,0x4, +0xcf,0x80,0xbf,0x93,0xa7,0x93,0xe0,0x2, 0xcf,0x80,0xbf,0x93,0xa7,0xa3,0xe0,0x1, +0xcf,0x80,0xbf,0xa3,0x9, 0xa1,0xe0,0xa, 0x0, 0xfb,0x8, 0xb1,0xe0,0x1, 0x1f,0xc2, +0xe0,0x1a,0x17,0x20,0x3f,0x1f,0x8f,0xe, 0xe0,0x1a,0xc7,0xa1,0x8c,0xf, 0x37,0x28, +0x3c,0x4e,0xe0,0x5, 0xd3,0x4c,0xe0,0x5, 0xd2,0xe8,0xe0,0x1, 0xd7,0xc0,0xe0,0x2, +0x1f,0x40,0x17,0x81,0xe0,0x4, 0xaf,0xfe,0xe0,0x1b,0x14,0x2c,0xe0,0x3, 0x1f,0x47, +0xaf,0x8e,0xe0,0x5, 0xd3,0x3c,0xe0,0x2, 0x1f,0xfd,0xe0,0x19,0x16,0x9d,0x17,0x7, +0x3e,0x9f,0xaf,0xd, 0xe0,0x19,0xc7,0x9e,0xaf,0xf, 0x8, 0xe1,0x8, 0xb2,0xe0,0x2, +0x1f,0xc0,0x17,0x0, 0xe0,0x0, 0x1e,0xb2,0xe0,0x4, 0xaf,0x5f,0xe0,0x3, 0x1f,0x16, +0x8f,0x8d,0x8e,0xe, 0x37,0xc1,0x3f,0xfc,0x3, 0x9d,0x8e,0x8d,0x8f,0x8e,0x36,0xc1, +0x3f,0xad,0xe0,0x2, 0x19,0x12,0xaf,0x8e,0x17,0x0, 0xe0,0x2, 0x1f,0xec,0xb7,0xf, +0xe0,0x3, 0x1f,0xb8,0xa7,0x8f,0xa7,0xcf,0xe2,0x0, 0xc7,0x81,0x27,0x85,0x97,0x82, +0xe0,0x1, 0xcf,0x80,0xb7,0x82,0x9f,0x82,0x37,0xc7,0xe2,0x0, 0xc7,0x81,0x2f,0x88, +0x9, 0x61,0xe0,0x2, 0x19,0x12,0x97,0x82,0xcf,0x88,0xb7,0x82,0x0, 0xe6,0xd5,0x41, +0x97,0x82,0xcf,0x88,0xb7,0x82,0x97,0x82,0xe0,0x80,0xcf,0x80,0xb7,0x82,0x9, 0x61, +0xe0,0x2, 0x1f,0xc0,0xe0,0xa, 0x8f,0x8f,0x27,0x86,0xe0,0x2, 0x1f,0x87,0x8f,0x8f, +0x27,0x89,0x38,0x82,0x8, 0xb1,0xdf,0xbb,0xe0,0x2, 0x1f,0xeb,0x17,0x2, 0xaf,0xf, +0x8, 0xe1,0xe7,0xff,0x0, 0xb5,0x8, 0xb1,0xe0,0x1, 0x1f,0xc2,0xe0,0x1a,0x17,0x22, +0x3f,0x1f,0x8f,0xe, 0xe0,0x1a,0xc7,0xa3,0x8c,0xf, 0x37,0x28,0x3c,0x4e,0xe0,0x5, +0xd2,0xd6,0xdf,0x3b,0xdf,0x7b,0xdf,0xa3,0xde,0x14,0x8, 0xa1,0xe7,0xe8,0x0, 0xe3, +0x8, 0xb4,0xe0,0x2, 0x1f,0xba,0x12,0x3c,0x8f,0x8f,0x27,0x8a,0xe0,0x3, 0x1f,0xc3, +0x8f,0x8f,0xe2,0x0, 0xcf,0x80,0x17,0xb9,0xe0,0x6f,0x39,0x24,0x3a,0x6f,0xe0,0x2, +0x19,0x40,0xe0,0x3, 0x19,0x82,0xe0,0x4, 0x8f,0xd2,0xe2,0x0, 0xcf,0x81,0x1, 0x1b, +0x8f,0x3, 0xe0,0x4, 0x8f,0xd2,0xe2,0x0, 0xcf,0x81,0x1, 0x2, 0xa, 0x61,0xe0,0x0, +0x1f,0xcd,0x8f,0x8f,0x27,0xfc,0x3a,0x7e,0x1, 0x23,0x17,0x81,0x3f,0x9e,0xe2,0x1, +0xc7,0xff,0xe0,0x3, 0x1e,0xc6,0xe2,0x0, 0xcf,0xbc,0xaf,0xd, 0x5, 0x82,0x17,0x80, +0xaf,0x83,0xa, 0x61,0xe0,0x0, 0x1f,0xcd,0x8f,0x8f,0x27,0xe3,0x8f,0x3, 0x2f,0x62, +0xe0,0x3, 0x1f,0xb8,0xa7,0x8f,0xa7,0xcf,0xe2,0x0, 0xc7,0x81,0x27,0xdb,0xe0,0x3, +0x1f,0xc3,0x8f,0x8f,0xe2,0x0, 0xcf,0x81,0x1, 0xd5,0xdd,0x30,0x0, 0xd2,0xe0,0x3, +0x1f,0xb8,0xa7,0x8f,0xa7,0xcf,0xe2,0x0, 0xc7,0x81,0x27,0x87,0xe0,0x2, 0x1f,0x12, +0x97,0x8e,0xe0,0x1, 0xcf,0x80,0xb7,0x8e,0xdd,0xbc,0xef,0xff,0xd4,0xc, 0x8f,0x3, +0x0, 0xcd,0x8, 0xb4,0xe0,0x2, 0x1f,0xe0,0xe0,0x2, 0x19,0x40,0x8f,0xf, 0x27,0xd, +0x17,0x0, 0xe0,0x4, 0x8e,0xd2,0xaf,0xf, 0xe0,0x0, 0x26,0xce,0xe0,0x4, 0x8f,0xd2, +0xe2,0x0, 0xcf,0x81,0xe0,0x1, 0x1, 0x3, 0xe0,0x4, 0x8f,0xd2,0xe2,0x0, 0xcf,0x81, +0x1, 0x3b,0x4, 0x8b,0xe2,0x0, 0xcf,0x83,0x1, 0x84,0xa, 0x21,0xe7,0xfe,0x0, 0xf5, +0x17,0x81,0xe0,0x4, 0xaf,0xd2,0xa, 0x61,0xe0,0x2, 0x1f,0xdf,0x8f,0x8f,0x27,0xb6, +0xe0,0x2, 0x1e,0xec,0x17,0x0, 0xb7,0xd, 0x8f,0xe2,0xe2,0x0, 0xc7,0x81,0x27,0xf4, +0xe0,0xa, 0x8f,0x82,0xe2,0x0, 0xcf,0x81,0x1, 0xef,0xe0,0x2, 0x1f,0x87,0x8e,0xf, +0xe2,0x0, 0xce,0x1, 0x1, 0xe9,0xe0,0x4, 0xae,0x52,0xe0,0x3, 0x1d,0x16,0xe0,0x0, +0x1e,0x32,0xe0,0x2, 0x1d,0xf7,0x8e,0xc, 0x8c,0x8a,0xaf,0xf, 0x3e,0x19,0xae,0xa, +0xb7,0xd, 0xe0,0x3, 0x1f,0x82,0x8e,0x8b,0xaf,0xf, 0xce,0x84,0xe0,0x3, 0x1f,0xc6, +0xae,0x8b,0xaf,0xf, 0xa, 0x61,0xe0,0x2, 0x1f,0xdf,0x8f,0x8f,0x27,0xcd,0xa, 0x21, +0xe7,0xfe,0x0, 0xa8,0xde,0xec,0xe7,0xff,0x0, 0xb9,0x8f,0xe2,0xe2,0x0, 0xc7,0x81, +0x27,0xc3,0xe0,0x2, 0x19,0xec,0xe0,0x7, 0x14,0xe8,0x9c,0x3, 0x8a,0x72,0xe0,0x6, +0xd7,0x8a,0xe3,0xff,0xc4,0x7f,0x3c,0x74,0x3, 0x8c,0xe0,0xa, 0x8f,0x82,0xe2,0x0, +0xcf,0x81,0xe7,0xff,0x1, 0xb2,0x9f,0x83,0xe2,0x7, 0xcf,0xe7,0xe7,0xff,0x5, 0xad, +0x17,0x81,0xe0,0x4, 0xaf,0xd2,0x16,0x0, 0xe0,0x3, 0x1e,0x96,0xe0,0x0, 0x1f,0xb2, +0xe0,0x2, 0x1f,0x77,0x8f,0x8f,0x8d,0x8d,0x3f,0x9b,0xe0,0x2, 0x1d,0x87,0xaf,0x8d, +0x16,0x80,0xb6,0x3, 0xae,0x8b,0xe0,0x3, 0x1d,0x82,0x8f,0x8e,0xae,0xb, 0xcf,0x84, +0xe0,0x3, 0x1e,0x46,0xaf,0x8e,0xae,0x8c,0xa, 0x61,0xe0,0x4, 0xaf,0xd2,0x16,0x0, +0xe0,0x3, 0x1e,0x96,0xe0,0x0, 0x1f,0xb2,0x8f,0x8f,0x8d,0x8d,0x3f,0x9b,0xaf,0x8d, +0xe0,0x2, 0x1d,0x87,0xe0,0x2, 0x1f,0xec,0xe0,0x2, 0x1e,0xf7,0xb6,0xf, 0xaf,0xb, +0xe0,0x3, 0x1d,0x82,0x8f,0x8d,0xae,0xb, 0xcf,0x84,0xe0,0x3, 0x1e,0x46,0xaf,0x8d, +0xaf,0xc, 0xe7,0xfe,0x0, 0xe3,0x8, 0xb1,0xe0,0x2, 0x1f,0xe6,0x8f,0x8f,0x2f,0x8d, +0xe0,0x0, 0x1f,0xcd,0x8f,0x8f,0x27,0x85,0xdd,0x86,0x8, 0xa1,0xe7,0xfd,0x0, 0xea, +0xdd,0xc6,0x8, 0xa1,0xe7,0xfd,0x0, 0xe6,0xdf,0x3d,0x0, 0xf3,0xe0,0x3, 0x1f,0x2d, +0xe0,0x2, 0x1e,0x92,0x0, 0x86,0x9f,0x8d,0x37,0xc3,0xe2,0x0, 0xc7,0x81,0x2f,0x83, +0x9f,0x8e,0x2f,0xfa,0x17,0x87,0xb7,0x8e,0x38,0x82,0x0, 0x0, 0xe0,0x0, 0x1f,0xcd, +0x8f,0x8f,0x2f,0x9f,0x8, 0xb2,0xe0,0x2, 0x19,0x39,0x9f,0x82,0x2f,0xff,0xdc,0x6c, +0xe0,0x2, 0x1f,0xc0,0xe0,0x4, 0x8f,0x5f,0xe2,0x0, 0xcf,0x1, 0x1, 0x13,0xe0,0x1, +0x8c,0x8f,0xe0,0x0, 0x14,0x64,0xe0,0x6, 0xd6,0xc3,0xc4,0x7f,0xb4,0x2, 0xe0,0x2, +0x1f,0xb2,0x9e,0x82,0x9f,0xf, 0x3e,0xfe,0x5, 0x83,0x97,0x8f,0xb7,0x82,0x9, 0x61, +0x38,0x82,0xe0,0x1, 0x8f,0x9f,0xc7,0xff,0xb7,0x82,0x0, 0xf2,0xe0,0x2, 0x1f,0x91, +0xe7,0x7f,0x16,0xff,0xa7,0x8f,0xe2,0x0, 0xcc,0x7, 0xa7,0x1f,0xe1,0x0, 0xcf,0x0, +0xbf,0x1f,0xa7,0x2f,0x3f,0x5d,0xbf,0x2f,0xe7,0xdf,0x16,0xff,0xa7,0x2f,0x3f,0x5d, +0xbf,0x2f,0xe7,0xbf,0x16,0xff,0xa7,0x2f,0x3f,0x5d,0xbf,0x2f,0x2, 0x88,0xa7,0x2f, +0x16,0xf8,0xe2,0x0, 0xc4,0x7, 0x3f,0x5d,0x3c,0x4e,0xbc,0x2f,0x38,0x82,0xe0,0x2, +0x1f,0xe4,0x16,0xdf,0xa7,0xf, 0x15,0xfe,0xa7,0xbe,0x3f,0xdd,0xbf,0xbe,0xe7,0xfe, +0x16,0xff,0xa6,0x3e,0xe0,0x0, 0x1f,0xbd,0x3e,0x5d,0xa7,0x8f,0xbe,0x3e,0x17,0x0, +0xaf,0x7f,0x16,0xfd,0xa6,0xf, 0xe0,0x1, 0x1f,0x5c,0x3e,0x5b,0xbe,0xf, 0xa6,0xf, +0xa7,0xe, 0x3e,0x5d,0xbe,0xf, 0xa6,0xbf,0x3e,0xdb,0xbe,0xbf,0x16,0xfc,0xa7,0x8e, +0x3f,0xdd,0xbf,0x8e,0x17,0x80,0xe0,0x3, 0xb7,0x9e,0x17,0x80,0xe0,0x61,0x3f,0x92, +0xe1,0xff,0x17,0xff,0xe0,0x61,0x3f,0x91,0x38,0x82,0xe0,0x2, 0x1f,0xe4,0xe0,0x0, +0x1f,0x3d,0xa6,0x8f,0x16,0x7e,0xa7,0xbd,0xa7,0xe, 0x3f,0xdc,0xbf,0xbd,0xe7,0xff, +0x16,0xbf,0xa7,0x8e,0x3f,0xdd,0xbf,0x8e,0xe0,0x61,0x3f,0x82,0xcf,0x81,0xe0,0x61, +0x3f,0x92,0x38,0x82,0xe0,0x2, 0x1f,0x91,0xe0,0x1, 0x1f,0x5c,0xa6,0x8f,0x16,0x6f, +0xa7,0x9d,0xa7,0xe, 0x3f,0xdc,0xbf,0x9d,0xe0,0x1, 0xa7,0xee,0xe0,0x20,0xcf,0x80, +0xe0,0x1, 0xbf,0xee,0x38,0x82,0xe0,0x2, 0x1f,0x91,0xa6,0x8f,0xe0,0x2, 0x1f,0xe4, +0xa7,0x1d,0xa7,0x8f,0xcf,0x8, 0xbf,0x1d,0xe7,0xff,0x16,0xbf,0xa7,0x3f,0x3f,0x5d, +0xbf,0x3f,0xa7,0x2f,0xe2,0x1, 0xc7,0x4f,0xcf,0x20,0xbf,0x2f,0xe0,0x2, 0x17,0x0, +0xb7,0x3f,0xa7,0x3f,0xcf,0x40,0xbf,0x3f,0xe0,0x61,0x3f,0x82,0xe0,0x40,0xcf,0x80, +0xe0,0x61,0x3f,0x92,0x38,0x82,0x8, 0xb2,0xe0,0x1, 0x1f,0x5c,0x17,0xff,0xa1,0xe, +0xb7,0xd2,0xe0,0x1, 0xb7,0xd2,0xe0,0x6, 0xd5,0x11,0xe0,0x2, 0x1f,0xe6,0xe0,0x41, +0x3f,0x8, 0xac,0xf, 0xe7,0xfb,0x16,0xff,0xa7,0x82,0xe2,0x0, 0xc7,0x1, 0x37,0x29, +0x3f,0xdd,0x3f,0xce,0xbf,0x82,0xe0,0x1, 0x17,0xc3,0xb7,0xb2,0xda,0xa6,0xa7,0xb2, +0x16,0xef,0xcf,0x84,0xbf,0xb2,0x17,0xfb,0xa7,0x12,0x3f,0x5f,0xbf,0x12,0x17,0xf7, +0xa7,0x32,0xcf,0x8, 0xbf,0x32,0xa7,0x12,0x3f,0x5f,0xbf,0x12,0xa7,0x32,0xcf,0x10, +0xbf,0x32,0xa7,0x12,0x3f,0x5d,0xbf,0x12,0xa7,0xc2,0x3f,0xdd,0xbf,0xc2,0x9, 0x61, +0xe0,0x2, 0x1f,0x90,0xe7,0xff,0x16,0xbf,0xa7,0x8f,0xa7,0x1f,0xcf,0x1, 0xbf,0x1f, +0xa7,0xf, 0x3f,0x5d,0xbf,0xf, 0xe7,0xfe,0x16,0xff,0xa7,0x2f,0x3f,0x5d,0xbf,0x2f, +0x17,0x2f,0xbf,0x2f,0xa7,0x1f,0xcf,0x2, 0xbf,0x1f,0xa7,0x3f,0xcf,0x10,0xbf,0x3f, +0xa7,0xf, 0xcf,0x40,0xbf,0xf, 0xe0,0x61,0x3f,0x82,0xe7,0xf7,0x17,0x7f,0x3f,0xde, +0xe0,0x61,0x3f,0x92,0x38,0x82,0xe0,0x2, 0x1f,0x90,0xa7,0x8f,0xa7,0x2f,0x27,0x7, +0xa7,0x3f,0xcf,0x10,0xbf,0x3f,0xa7,0xf, 0xcf,0x40,0xbf,0xf, 0x38,0x82,0xe0,0x2, +0x1f,0x91,0xe0,0x0, 0x1e,0x40,0xa7,0xf, 0xe7,0xfe,0x15,0x7f,0xa7,0xbe,0xe0,0x0, +0x1d,0xc2,0xcf,0x81,0xbf,0xbe,0xa6,0x8e,0xe0,0x3, 0x1f,0x81,0xce,0x82,0xbe,0x8e, +0x16,0xa0,0xb6,0x8c,0xa6,0x9e,0xa7,0x8f,0x3e,0xda,0xbe,0x9e,0xa6,0x9e,0xa5,0x8b, +0xe0,0x8, 0xce,0x80,0xbe,0x9e,0x16,0xf7,0xa7,0xf, 0xcf,0x1, 0xbf,0xf, 0xa7,0xf, +0xcf,0x8, 0xbf,0xf, 0xa7,0xb, 0x3f,0x5d,0xbf,0xb, 0x17,0x0, 0xe0,0x1, 0xaf,0x3f, +0x96,0xc, 0xb6,0x3f,0xe0,0x61,0x3f,0x2, 0xe0,0x2, 0xcf,0x0, 0xe0,0x61,0x3f,0x12, +0xa7,0xf, 0xcf,0x1, 0xbf,0xf, 0xa7,0xf, 0xe0,0x1, 0xcf,0x0, 0xbf,0xf, 0x38,0x82, +0xe0,0x3, 0x1f,0x4b,0xe2,0xff,0x17,0xf0,0xbf,0xf, 0xe2,0xff,0x17,0xf4,0xe0,0x3, +0x1f,0x4c,0xbf,0xf, 0xe2,0xff,0x17,0xf8,0xe0,0x3, 0x1f,0x4d,0xbf,0xf, 0xe2,0xff, +0x17,0xfc,0xe0,0x3, 0x1f,0x4e,0xbf,0xf, 0x38,0x82,0xe0,0x1, 0x1f,0xdc,0x16,0x80, +0xa7,0x8f,0x17,0x0, 0xe0,0x3, 0xb6,0xbf,0xe0,0x2, 0x16,0x84,0xbf,0xd, 0xe0,0x2, +0x16,0x88,0xbf,0xd, 0x17,0x7f,0xe0,0x7, 0xaf,0x3f,0x38,0x82,0xe0,0x1, 0x1f,0xdc, +0xe0,0x0, 0x16,0xeb,0xa7,0x8f,0x17,0x0, 0xe0,0x3, 0xb6,0xbf,0xe0,0x2, 0x16,0x84, +0xbf,0xd, 0xe0,0x2, 0x16,0x88,0xbf,0xd, 0x17,0x7f,0xe0,0x7, 0xaf,0x3f,0x38,0x82, +0xc4,0x7f,0xe1,0xff,0x17,0x7f,0xe3,0xff,0xc4,0x7f,0x3c,0x7e,0x1, 0xc, 0x17,0x88, +0x0, 0x0, 0xc7,0xff,0xe2,0x1, 0xc7,0xff,0x2f,0xfc,0xc4,0x7f,0xe3,0xff,0xc4,0x7f, +0x3c,0x7e,0x1, 0xf6,0x38,0x82,0x0, 0x0, 0xc4,0x7f,0xe1,0xff,0x16,0x7f,0xe3,0xff, +0xc4,0x7f,0x3c,0x7c,0x1, 0x17,0x16,0x84,0xe0,0x1, 0x17,0x7a,0x17,0x88,0x0, 0x0, +0xc7,0xff,0xe2,0x1, 0xc7,0xff,0x2f,0xfc,0xc7,0x7f,0xe3,0xff,0xc7,0x7f,0x2f,0x77, +0xc6,0xff,0xe2,0x1, 0xc6,0xff,0x2e,0xf1,0xc4,0x7f,0xe3,0xff,0xc4,0x7f,0x3c,0x7c, +0x1, 0xeb,0x38,0x82,0xe0,0x3, 0x1f,0xb8,0xa7,0xf, 0xa7,0xce,0xe2,0x0, 0xc7,0x81, +0x27,0x98,0xe0,0x2, 0x1f,0x91,0xe7,0xff,0x16,0x3f,0xa7,0x8f,0xa6,0xdf,0xe0,0x1, +0xce,0x80,0xbe,0xdf,0xa6,0xdf,0x3e,0xdc,0xbe,0xdf,0xa7,0x4e,0x37,0x4a,0xe2,0x0, +0xc7,0x1, 0x2f,0x1e,0xa7,0x5f,0xe6,0xff,0x16,0xff,0x3f,0x5d,0xbf,0x5f,0x38,0x82, +0xa7,0xce,0x37,0xcf,0xe2,0x0, 0xc7,0x81,0x2f,0x98,0xe0,0x2, 0x1f,0x91,0xe7,0xff, +0x16,0x3f,0xa7,0x8f,0xa6,0xdf,0x3e,0xdc,0xbe,0xdf,0xe7,0xfe,0x16,0x7f,0xa6,0xdf, +0x3e,0xdc,0xbe,0xdf,0xa7,0x4e,0x37,0x4a,0xe2,0x0, 0xc7,0x1, 0x27,0x64,0xa7,0x5f, +0xe1,0x0, 0xcf,0x0, 0xbf,0x5f,0x38,0x82,0xe0,0x2, 0x1f,0x91,0xa7,0x8f,0xa6,0xdf, +0xce,0xc0,0x0, 0xeb,0x8, 0xb4,0xe0,0x3, 0x19,0x36,0x8f,0x82,0xe2,0x1, 0xcf,0x81, +0x1, 0x4, 0x17,0x80,0xaf,0x82,0xa, 0x61,0x24,0x2b,0xe2,0x0, 0xcc,0x1, 0x39,0xe9, +0x1, 0x30,0xe2,0x0, 0xcc,0x2, 0x1, 0xf6,0x3f,0x83,0xdf,0xad,0xe0,0x2, 0x1f,0x91, +0xe0,0x3, 0x1f,0x18,0xa7,0x8f,0x9f,0xe, 0xbf,0x6f,0x21,0x84,0xa4,0xef,0x3c,0xc3, +0xbc,0xef,0xe0,0x0, 0x1f,0x3d,0xa7,0xe, 0xa7,0xe, 0x37,0x43,0xe2,0x0, 0xc7,0x1, +0x2f,0xe, 0xa7,0x3f,0xcf,0x1, 0xbf,0x3f,0xa7,0xf, 0xe0,0x1, 0xcf,0x0, 0xbf,0xf, +0xa7,0x3f,0xcf,0x1, 0xbf,0x3f,0xa7,0xf, 0xcf,0x40,0xbf,0xf, 0x3b,0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x17,0x80,0xaf,0x82,0xa, 0x61, +0x3f,0x83,0x17,0x82,0x3f,0xd9,0x2f,0xae,0xdf,0x7e,0xe0,0x2, 0x1f,0x91,0xe0,0x3, +0x1f,0x18,0xa7,0x8f,0x9f,0xe, 0xbf,0x6f,0xe0,0x0, 0x1f,0x3d,0xa2,0xe, 0x29,0xb0, +0xa7,0x3f,0xe7,0xfe,0x16,0xff,0xcf,0x1, 0xbf,0x3f,0xa7,0xf, 0x3f,0x5d,0xbf,0xf, +0xa7,0x3f,0xcf,0x1, 0xbf,0x3f,0xa7,0xf, 0xcf,0x40,0xbf,0xf, 0x3b,0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa7,0x84,0x37,0xc5,0xe2,0x0, +0xc7,0x81,0xe7,0xff,0x27,0xa0,0xa7,0x84,0x17,0x5f,0x3f,0xde,0xbf,0x84,0xe7,0xff, +0x0, 0x9a,0xe0,0x0, 0x1f,0xbd,0xa2,0xf, 0xa7,0x84,0xcf,0xa0,0xbf,0x84,0xdf,0x4b, +0xe0,0x2, 0x1f,0x91,0xe0,0x3, 0x1f,0x18,0xa7,0x8f,0x9f,0xe, 0xbf,0x6f,0xa4,0xef, +0x3c,0xc3,0xbc,0xef,0x0, 0xce,0x8, 0xb1,0xe0,0x1, 0x1f,0xdc,0x17,0x0, 0xa6,0x8f, +0xe0,0x2, 0x1f,0x91,0xe0,0x2, 0xbf,0xd, 0x16,0x6f,0xa7,0x8f,0xbf,0x6f,0xa6,0xdf, +0xe0,0x80,0xce,0x80,0xbe,0xdf,0xa6,0xdf,0xe0,0x40,0xce,0x80,0xbe,0xdf,0xa6,0xdf, +0xe0,0x20,0xce,0x80,0xbe,0xdf,0xa6,0xef,0xce,0xc0,0xbe,0xef,0xa6,0xef,0xce,0xa0, +0xbe,0xef,0xa6,0xef,0x3e,0xdc,0xbe,0xef,0xe7,0x7f,0x16,0x7f,0xa6,0xef,0xe1,0x0, +0xce,0x80,0xbe,0xef,0xa6,0xef,0x3e,0xdc,0xbe,0xef,0xe7,0xbf,0x16,0x7f,0xa6,0xef, +0x3e,0xdc,0xbe,0xef,0xe7,0xdf,0x16,0x7f,0xa6,0xef,0x3e,0xdc,0xbe,0xef,0xa6,0xef, +0xe0,0x10,0xce,0x80,0xbe,0xef,0xe0,0x3, 0x1f,0x98,0xb7,0xf, 0xdf,0x4, 0xe0,0x61, +0x3f,0x82,0x17,0x7d,0x3f,0xde,0xe0,0x61,0x3f,0x92,0xe0,0x61,0x3f,0x82,0x17,0x7b, +0x3f,0xde,0xe0,0x61,0x3f,0x92,0x8, 0xe1,0xe0,0x1, 0x1f,0xdc,0xe2,0x0, 0xcc,0x2, +0xa7,0x8f,0xe0,0x0, 0x1, 0x57,0xe2,0x0, 0xcc,0x3, 0x1, 0x36,0xe2,0x0, 0xcc,0x1, +0x1, 0x19,0xa6,0x8f,0xe0,0x2, 0x1f,0x11,0x16,0x7b,0xa7,0xe, 0x3e,0xdc,0xbe,0x8f, +0xe6,0xff,0x16,0x7f,0xa6,0xce,0x3e,0xdc,0xbe,0xce,0x16,0x78,0xa6,0xce,0x3e,0xdc, +0xbe,0xce,0x16,0xf7,0xa7,0xf, 0x3f,0x5d,0xbf,0xf, 0x16,0x80,0xe0,0x1, 0xbe,0xbf, +0x38,0x82,0xa7,0xf, 0x16,0x77,0x3f,0x5c,0xbf,0xf, 0x17,0x0, 0xe0,0x1, 0xbf,0x3f, +0x16,0x78,0xa7,0xf, 0xe0,0x2, 0x1e,0x91,0xcf,0x4, 0xa6,0x8d,0xbf,0xf, 0xa7,0x4d, +0xe1,0x0, 0xcf,0x0, 0xbf,0x4d,0xa7,0x4d,0x3f,0x5c,0xcf,0x1, 0xbf,0x4d,0xa7,0x1f, +0xcf,0x8, 0xbf,0x1f,0x38,0x82,0xa7,0xf, 0xe0,0x2, 0x1e,0x91,0x16,0x7b,0x3f,0x5c, +0xa6,0x8d,0xbf,0xf, 0xe6,0xff,0x16,0x7f,0xa7,0x4d,0x3f,0x5c,0xbf,0x4d,0xa7,0xf, +0xcf,0x8, 0xbf,0xf, 0x17,0x0, 0xe0,0x1, 0xbf,0x3f,0xa7,0x1f,0xe0,0x20,0xcf,0x0, +0xbf,0x1f,0xa7,0x1f,0xcf,0x10,0xbf,0x1f,0xa7,0x1f,0xcf,0x8, 0xbf,0x1f,0x38,0x82, +0xa6,0x8f,0x16,0x77,0x3e,0xdc,0xbe,0x8f,0x16,0x80,0xe0,0x1, 0xbe,0xbf,0x16,0x78, +0xa6,0x8f,0xe0,0x2, 0x1f,0x11,0xce,0x84,0xa7,0xe, 0xbe,0x8f,0xa6,0xce,0xe1,0x0, +0xce,0x80,0xbe,0xce,0xa6,0xce,0x3e,0xdc,0xbe,0xce,0xa7,0x1f,0xcf,0x8, 0xbf,0x1f, +0x38,0x82,0x8, 0xb3,0xe0,0x2, 0x1f,0x91,0xa1,0x8f,0xe0,0x1, 0x1f,0xdc,0xa1,0xf, +0xa7,0xb3,0xcf,0x81,0xbf,0xb3,0xa7,0x83,0xcf,0x88,0xbf,0x83,0xe0,0x1, 0xa7,0x92, +0xcf,0x82,0xe0,0x1, 0xbf,0x92,0xe0,0x1, 0xa7,0x92,0xcf,0x81,0xe0,0x1, 0xbf,0x92, +0xe0,0x3, 0x1f,0x8d,0x8c,0xf, 0xdf,0x71,0xa7,0xd3,0x17,0x7d,0xcf,0x81,0xbf,0xd3, +0xa7,0xd3,0x3f,0xde,0xbf,0xd3,0x17,0x7b,0xa7,0xd3,0x3f,0xde,0xbf,0xd3,0x17,0x77, +0xa7,0xd3,0x3f,0xde,0xbf,0xd3,0x17,0x6f,0xa7,0xd3,0x3f,0xde,0xbf,0xd3,0xe6,0xff, +0x17,0x7f,0xa7,0xd3,0xcf,0xa0,0xbf,0xd3,0xe0,0x1, 0xa7,0xa2,0x3f,0xde,0xe0,0x1, +0xbf,0xa2,0x17,0x78,0xe0,0x1, 0xa7,0xa2,0xe0,0x60,0xcf,0x80,0xe0,0x1, 0xbf,0xa2, +0xe0,0x1, 0xa7,0xa2,0xcf,0x88,0xe0,0x1, 0xbf,0xa2,0xe0,0x1, 0xa7,0xa2,0x3f,0xde, +0xcf,0x85,0xe0,0x1, 0xbf,0xa2,0xe0,0x1, 0xa7,0xa2,0xe0,0x2, 0xcf,0x80,0xe0,0x1, +0xbf,0xa2,0xe0,0x1, 0xa7,0xa2,0xe0,0x4, 0xcf,0x80,0xe0,0x1, 0xbf,0xa2,0x9, 0xe1, +0xe0,0x2, 0x1f,0x91,0xe7,0xfd,0x16,0xff,0xa7,0x8f,0xa7,0x1f,0xe0,0x20,0xcf,0x0, +0xbf,0x1f,0xa7,0x1f,0xe0,0x2, 0xcf,0x0, 0xbf,0x1f,0xa7,0x2f,0x3f,0x5d,0xbf,0x2f, +0xe7,0xff,0x16,0xbf,0xa7,0x1f,0xe0,0x4, 0xcf,0x0, 0xbf,0x1f,0xa7,0x2f,0xe0,0x1, +0xcf,0x0, 0xbf,0x2f,0xa7,0x2f,0x3f,0x5d,0xbf,0x2f,0x16,0xef,0xa7,0x2f,0x3f,0x5d, +0xbf,0x2f,0x16,0xf7,0xa7,0x2f,0x3f,0x5d,0xbf,0x2f,0x38,0x82,0xe0,0x1, 0x1f,0xdc, +0x17,0x1, 0xa7,0x8f,0x3f,0x58,0xe0,0x1, 0xa6,0xaf,0x15,0xf7,0xe0,0xc, 0x37,0x23, +0x3e,0xdb,0x3e,0xcc,0xe0,0x1, 0xbe,0xaf,0xe7,0xfd,0x15,0xff,0xe0,0x1, 0xa6,0xaf, +0xe0,0xc, 0x37,0x28,0x3e,0xdb,0x3e,0xcc,0xe0,0x1, 0xbe,0xaf,0xe7,0xfb,0x16,0xff, +0xe0,0x1, 0xa4,0x2f,0x37,0x29,0x3c,0x5d,0x3c,0x4e,0xe0,0x1, 0xbc,0x2f,0x38,0x82, +0x8, 0xb1,0xe0,0x5, 0xdc,0x73,0x24,0x6, 0xe0,0x2, 0x1f,0x14,0x97,0xce,0xcf,0x82, +0xb7,0xce,0xe0,0x2, 0x1f,0xb3,0x8f,0x8f,0x27,0x82,0x8, 0xe1,0x8, 0xa1,0xe7,0xe0, +0x0, 0x95,0xe0,0x2, 0x1e,0x92,0xe0,0x2, 0x1f,0x14,0x97,0x8d,0xcf,0x81,0xb7,0x8d, +0x97,0xce,0xcf,0x84,0xb7,0xce,0xe0,0x3, 0x1f,0xb8,0xa7,0x8f,0xa7,0xcf,0xe2,0x0, +0xc7,0x81,0x2f,0x82,0x38,0x82,0x0, 0xdd,0xe0,0x2, 0x1f,0x12,0xe0,0x2, 0x1e,0x94, +0x97,0x8e,0xcf,0x81,0xb7,0x8e,0x97,0x4d,0xe0,0x3, 0x1f,0xb8,0xcf,0x4, 0xa7,0x8f, +0xb7,0x4d,0xa7,0x5f,0xcf,0x8, 0xbf,0x5f,0xa7,0xcf,0xe2,0x0, 0xc7,0x81,0x27,0x82, +0x38,0x82,0x0, 0xc7,0xe0,0x61,0x3f,0x82,0xe0,0x61,0x3f,0x2, 0xe7,0xfe,0x16,0xff, +0x3f,0x5d,0xe0,0x61,0x3f,0x12,0xe0,0x3, 0x1f,0x38,0x16,0x7e,0xa7,0xe, 0xe2,0x0, +0xc4,0x1, 0xa6,0xbe,0x15,0xfd,0x3e,0xdc,0x3e,0xc8,0xbe,0xbe,0xe0,0xc, 0x34,0x21, +0xa6,0xbe,0x34,0x2a,0x3e,0xdb,0x3e,0xcc,0xbe,0xbe,0xe7,0xf7,0x16,0x7f,0xa6,0xbe, +0x37,0xc7,0x3e,0xdc,0x3c,0x4d,0xbc,0x3e,0xe2,0x0, 0xc7,0x81,0x27,0x87,0xe0,0x61, +0x3f,0x82,0xe0,0x1, 0xcf,0x80,0xe0,0x61,0x3f,0x92,0x38,0x82,0x8, 0xb1,0xe0,0x1, +0x1f,0xdc,0xe7,0x7f,0x16,0xff,0xa7,0xf, 0xe7,0xfb,0x16,0x7f,0xa7,0x8e,0xe7,0xe0, +0x14,0x80,0x3f,0xdd,0xbf,0x8e,0xf0,0x1a,0x13,0x98,0xe0,0x1, 0xa6,0xee,0xe0,0x3, +0x1f,0xb8,0xe0,0x4, 0xce,0x80,0xe0,0x1, 0xbe,0xee,0xe0,0x1a,0x15,0x19,0xe0,0x1, +0xa6,0xee,0xa7,0x8f,0x3e,0xdc,0xe0,0x1, 0xbe,0xee,0x16,0x81,0xbe,0xdf,0xe7,0xf8, +0x16,0x0, 0xa6,0xef,0x17,0x0, 0xe3,0xfe,0xc6,0x9f,0xbe,0xef,0xe7,0x80,0x14,0x0, +0xa6,0xef,0xe0,0x1, 0x1d,0xc2,0xbe,0xef,0xf0,0x17,0x3b,0x9b,0xe0,0x1, 0xa6,0xdf, +0x3d,0x1b,0xe3,0xff,0xc6,0x80,0xe0,0x1, 0xbe,0xdf,0xe0,0x1, 0xa6,0xdf,0xe0,0x1, +0xbe,0xdf,0xe0,0x3, 0x16,0xe0,0xe0,0x1, 0xbe,0xef,0xe0,0x1, 0xa6,0xff,0x3e,0xdc, +0xe0,0x1, 0xbe,0xff,0xe7,0xf0,0x16,0x0, 0xe0,0x2, 0xa6,0x8f,0x3e,0xd9,0xe0,0x2, +0xbe,0x8f,0xe0,0x2, 0xa6,0x9f,0x3e,0xd9,0xe0,0x2, 0xbe,0x9f,0xe0,0x17,0x16,0xb8, +0xe0,0x4, 0xb6,0xdf,0xe0,0x2, 0xa6,0xcf,0x3e,0xdc,0xe0,0x2, 0xbe,0xcf,0xe0,0x9, +0x16,0x88,0xe0,0x2, 0xbe,0xbf,0xe0,0x12,0x16,0xdc,0xe0,0x2, 0xbe,0xdf,0xe1,0x20, +0x16,0x80,0xe0,0x2, 0xbf,0x6f,0xe0,0x2, 0xbe,0xff,0xe0,0x3, 0xa5,0xef,0x3d,0xd8, +0xcd,0xe4,0xe0,0x3, 0xbd,0xef,0xe0,0x3, 0xa6,0x7f,0x3e,0x58,0xce,0x64,0xe0,0x3, +0xbe,0x7f,0xe0,0x4, 0xa6,0x8f,0x3e,0xd9,0xe0,0x7, 0xce,0xe8,0xe0,0x4, 0xbe,0x8f, +0xe1,0xff,0x16,0xff,0xe0,0x4, 0xbf,0x1f,0xbe,0x9f,0xe1,0x39,0x16,0x83,0xbf,0x3f, +0xbe,0xbf,0xe0,0x2, 0x1e,0x92,0xb7,0xd, 0xa6,0xbf,0xbe,0xaf,0xe0,0x3, 0x1f,0x9d, +0xe8,0x0, 0x86,0x87,0xb7,0xf, 0xe0,0x2, 0x1f,0xba,0x87,0xa, 0xae,0x8f,0xe0,0x3, +0x1f,0xc3,0xaf,0xf, 0xef,0xfe,0xda,0x2f,0xe0,0x5, 0xda,0x42,0xe0,0x61,0x3f,0x82, +0xe0,0x1, 0xcf,0x80,0xe0,0x61,0x3f,0x92,0x8, 0xe1,0x8, 0xb1,0xf0,0x3, 0x18,0xb8, +0xe7,0xbf,0x16,0x7f,0xe8,0x0, 0xa7,0x1, 0xe0,0x2, 0x1e,0xfd,0xe0,0x1, 0xa7,0xee, +0xf0,0x3, 0x19,0xcf,0x3f,0xdc,0xe0,0x1, 0xbf,0xee,0xfa,0xd7,0xca,0xa8,0xe0,0x2, +0x1f,0xe6,0xe0,0x1, 0x9d,0x2d,0x85,0x8f,0xe0,0x1, 0x1f,0xc2,0xe0,0x1, 0x9e,0x1d, +0xf0,0x10,0x89,0x7f,0xe0,0x0, 0x1f,0xc4,0xe0,0x3, 0x1e,0xd0,0xe4,0xa, 0x35,0x20, +0xe4,0xc, 0x36,0x20,0xa7,0x8f,0xf0,0x3, 0x1b,0xd1,0xe0,0x3, 0x1c,0x52,0xe0,0x3, +0x1c,0xd3,0xe0,0x3, 0x18,0xd4,0xf0,0x3, 0x18,0x55,0xf0,0x3, 0x1a,0x56,0x17,0x0, +0xe2,0x0, 0xc5,0x81,0x3d,0x4d,0x3e,0x4d,0xf0,0xa9,0x13,0x15,0xe8,0x40,0x3d,0xf2, +0xf0,0x0, 0xb9,0x8f,0x1, 0x24,0xbe,0x1f,0x16,0xfd,0x3e,0x9e,0xe2,0x1, 0xc6,0xff, +0xf0,0x0, 0xba,0xaf,0xe2,0x0, 0xce,0x81,0xf0,0x0, 0xbb,0x3f,0x5, 0x9a,0xbc,0x4f, +0xbc,0xdf,0xf0,0x0, 0xbb,0xef,0xc7,0x1, 0xe2,0x1, 0xc7,0x7f,0xe2,0x0, 0xcf,0x5, +0xf0,0x0, 0xba,0x7f,0xe0,0x7, 0xc7,0xb0,0x1, 0xe2,0xe8,0x0, 0xa7,0x1, 0xe0,0x1, +0xa7,0xee,0xe0,0x40,0xcf,0x80,0xe0,0x1, 0xbf,0xee,0x8, 0xe1,0xbd,0x1f,0x0, 0xdd, +0xb8,0xcf,0xe2,0x0, 0xcf,0x4, 0xf0,0x0, 0xb8,0x5f,0xf0,0x0, 0xbb,0xef,0x1, 0xe4, +0xe0,0x3, 0x1f,0x57,0xbf,0x7f,0x0, 0xea,0x8, 0xb2,0xe0,0x2, 0x19,0x3d,0x8f,0x82, +0x27,0x8d,0xe0,0x0, 0x14,0xda,0x14,0x11,0xe0,0x5, 0xdb,0x3a,0xe0,0x0, 0x14,0xda, +0x14,0x29,0xe0,0x5, 0xdb,0x35,0x17,0x80,0xaf,0x82,0x9, 0x61,0xe0,0x2, 0x1f,0xec, +0x17,0x0, 0xb7,0xf, 0xe0,0x2, 0x1f,0x99,0xaf,0xf, 0x38,0x82,0xe0,0x2, 0x1f,0x19, +0x87,0x8e,0xc7,0x81,0xe2,0x1, 0xc7,0xff,0xe2,0x1, 0xcf,0xc8,0x5, 0x82,0x17,0xc8, +0xaf,0x8e,0x38,0x82,0xe0,0x0, 0x1f,0xcd,0x14,0x1, 0x8f,0x8f,0x2f,0x89,0xe0,0x2, +0x1f,0x99,0x8c,0xf, 0xe0,0x3, 0x1f,0x92,0x8f,0x8f,0xe1,0x28,0x3c,0x1f,0x38,0x82, +0x8, 0xb1,0x3c,0x98,0x34,0xa4,0xe1,0x77,0x14,0x0, 0xe0,0x6, 0xd1,0x49,0xe3,0xff, +0xc4,0x7f,0x8, 0xe1,0xea,0x0, 0xcc,0x2, 0xe0,0x48,0xcc,0x0, 0x14,0x80,0xea,0x0, +0xcd,0x3, 0xe0,0x22,0xcd,0x7c,0x3d,0x28,0xe0,0x6, 0xd1,0xd6,0xea,0x0, 0xcc,0x0, +0xe0,0x0, 0xcc,0x0, 0x24,0x2, 0x3c,0x1, 0x14,0x0, 0x14,0x80,0xef,0xfe,0xd4,0x70, +0x3a,0x80,0x0, 0x0, 0x3a,0x80,0xe0,0x3, 0x1f,0xc3,0xe0,0x1, 0x17,0x7d,0x8f,0x8f, +0x3f,0x58,0xe2,0x0, 0xcf,0x80,0x3c,0x6f,0x17,0x80,0xe1,0x2f,0x3f,0xf, 0xe0,0x68, +0x39,0xaf,0x38,0x82,0x8, 0xb3,0xe0,0x3, 0x19,0xb0,0x11,0x0, 0x8c,0x33,0x3c,0xe2, +0xc1,0x1, 0xef,0xfe,0xd6,0x58,0xe2,0x1, 0xc1,0x7f,0xe2,0x0, 0xc9,0x3, 0xc1,0x85, +0x1, 0xf6,0x14,0x81,0x3c,0x62,0xef,0xfe,0xd6,0x4e,0x14,0x81,0x14,0x4, 0xef,0xfe, +0xd6,0x4a,0xe0,0x2, 0x1f,0xc8,0x8c,0x8f,0x24,0x82,0x14,0x81,0x14,0x0, 0x9, 0xa1, +0xe7,0xcc,0x0, 0xc1,0x8, 0xb1,0xdf,0xa, 0xef,0xfe,0xd5,0xaf,0x8, 0xa1,0x0, 0xdb, +0x8, 0xb2,0xe0,0x3, 0x1f,0xb8,0xe0,0x0, 0x19,0x4d,0xa7,0x8f,0xa7,0xcf,0xe2,0x0, +0xc7,0x81,0x2f,0x95,0xe0,0x2, 0x1f,0x48,0xaf,0x82,0x3c,0xef,0xaf,0x8e,0x3c,0x6f, +0xe0,0x1, 0x1f,0x4c,0xaf,0x8e,0xe0,0x3, 0x1f,0x2, 0xaf,0x8e,0xef,0xfe,0xd6,0x23, +0xef,0xfe,0xd8,0xc4,0x8c,0x2, 0x9, 0x21,0xe7,0xd7,0x0, 0xf2,0x17,0x81,0xe0,0x2, +0x1f,0x48,0xe0,0x2, 0x1c,0x68,0xaf,0x82,0xaf,0x8e,0xe0,0x2, 0xd6,0x8f,0xe0,0x1, +0x1f,0xcc,0xe0,0x3, 0x1f,0x1e,0xac,0xf, 0x87,0x8f,0xaf,0x8e,0xe0,0x2, 0xd5,0x3b, +0x14,0x81,0x14,0x0, 0xef,0xfe,0xd6,0x7, 0x0, 0xe4,0x8, 0xb3,0x14,0x0, 0xde,0x3, +0xe0,0x2, 0x1f,0x92,0x14,0x1, 0x91,0x8f,0x99,0xf, 0x39,0xd8,0x31,0x58,0x39,0x58, +0xdd,0xfa,0xe0,0x8, 0x39,0xc2,0x9, 0xe1,0x8, 0xb2,0xe0,0x2, 0xd6,0xac,0xdf,0x2d, +0x14,0x0, 0xdd,0xf1,0xe0,0x2, 0x1f,0x12,0x9f,0x8e,0x37,0xc1,0xe2,0x0, 0xc7,0x81, +0x27,0x8b,0x97,0x8e,0xe0,0x2, 0x1e,0x94,0xe3,0xff,0xc7,0xfd,0xb7,0x8e,0x97,0xcd, +0xe3,0xff,0xc7,0xf7,0xb7,0xcd,0x97,0x8e,0xe0,0x2, 0x19,0x77,0xe2,0x0, 0xc7,0x81, +0x2f,0x97,0x14,0x1, 0xdd,0xd8,0xe0,0x2, 0x1f,0x48,0x8f,0x82,0x8e,0x8e,0x37,0xdd, +0xe2,0x0, 0xc7,0x81,0x2f,0x89,0xe0,0x2, 0x1f,0xfb,0x8f,0x8f,0x8f,0xe, 0x37,0xde, +0xe2,0x0, 0xc7,0x81,0x27,0x84,0x9, 0x21,0xe7,0xed,0x0, 0x8c,0x9, 0x61,0x97,0x8e, +0xe0,0x2, 0x1e,0x94,0xe3,0xff,0xc7,0xfe,0xb7,0x8e,0x97,0xcd,0xe3,0xff,0xc7,0xfb, +0xb7,0xcd,0xdf,0x7f,0xef,0xfd,0xdd,0xa6,0x14,0x1, 0xe0,0x1, 0xd8,0x9b,0xe0,0x2, +0x1f,0x7b,0x17,0x87,0xaf,0x8e,0xaf,0x82,0x0, 0xd5,0xe0,0x1, 0x1f,0xe8,0xe0,0x3, +0x1f,0x4, 0x8f,0x8f,0xe0,0x1, 0x8e,0xce,0xe2,0x0, 0xcf,0x85,0x2, 0x8c,0x26,0x9c, +0xe0,0x2, 0x1e,0x21,0xe0,0x1, 0x8d,0x9e,0x3f,0x9c,0x8e,0xf, 0x3d,0xfc,0x5, 0xb6, +0xc6,0x1, 0xae,0xf, 0xe2,0x0, 0xce,0x81,0x1, 0x1f,0xe0,0x2, 0x1f,0xb4,0x16,0x80, +0xae,0x8f,0xe0,0x1, 0x8f,0xee,0xe2,0x0, 0xcf,0x81,0xeb,0xe5,0x7f,0xeb,0x1, 0x9, +0x17,0x1, 0xaf,0xf, 0x38,0x82,0xe0,0x2, 0x1e,0x21,0x3f,0x9c,0xae,0x8f,0x0, 0xee, +0x8e,0x8f,0xe0,0x1, 0x8e,0xe, 0x3e,0x7d,0x5, 0xf4,0xc6,0x81,0x16,0x0, 0xe0,0x1, +0xae,0x6e,0xae,0x8f,0x38,0x82,0xe0,0x2, 0x1e,0x34,0xe0,0x1, 0x8e,0x9e,0x8f,0x8c, +0x15,0x80,0x3e,0xff,0xe0,0x1, 0xad,0xee,0x5, 0x8c,0x16,0x81,0x3e,0x9f,0xeb,0xe5, +0x7f,0xeb,0xe0,0x1, 0xad,0xce,0xae,0x8c,0x0, 0xdc,0x16,0x80,0xae,0x8f,0x0, 0xd2, +0xeb,0xe5,0x7f,0xeb,0xad,0x8c,0x0, 0xd5,0x8, 0xb5,0xe0,0x3, 0x19,0x4, 0x17,0x1, +0x9f,0xd2,0xe0,0x1, 0xaf,0x62,0xe0,0x43,0x3f,0x1f,0xe2,0x0, 0xcf,0x0, 0xe0,0x1, +0x4, 0x4a,0xe0,0x2, 0x1f,0x5d,0x8f,0xe, 0x27,0x4, 0x17,0x0, 0xe0,0x1, 0xaf,0x62, +0xe2,0x0, 0xc7,0xa0,0x27,0x84,0x17,0x80,0xe0,0x1, 0xaf,0xe2,0xe0,0x1, 0x19,0xe9, +0x8f,0x83,0x2f,0x83,0xe0,0x1, 0xaf,0xe2,0xe0,0x2, 0x1a,0x48,0xe0,0x2, 0x1a,0xc0, +0x8c,0x4, 0xde,0xca,0x24,0x7, 0xe0,0x4, 0x8f,0xd5,0xe2,0x0, 0xcf,0x81,0xe0,0x1, +0x1, 0x1e,0x9f,0x52,0x17,0x80,0xe0,0x80,0x16,0x80,0xe0,0x1, 0xaf,0xc2,0x3e,0xde, +0xe0,0x1, 0xaf,0xd2,0x26,0x84,0x17,0x81,0xe0,0x1, 0xaf,0xc2,0xe0,0x4, 0x17,0x80, +0x3f,0xde,0x2f,0x83,0xe0,0x1, 0xaf,0xc2,0xe0,0x1, 0x1f,0xc7,0x9f,0x8f,0xe2,0x4, +0xcf,0xd8,0xe0,0x2, 0x1f,0xfe,0xe0,0x0, 0x5, 0xe5,0x16,0x8f,0xae,0x8f,0x8e,0x84, +0xe2,0x0, 0xce,0x81,0xe0,0x0, 0x1, 0x68,0x16,0x80,0xae,0x8f,0x17,0xa0,0x3f,0xde, +0x27,0x84,0x17,0x80,0xe0,0x1, 0xaf,0xc2,0x8f,0x83,0x2f,0x83,0xe0,0x1, 0xaf,0xc2, +0xe0,0x1, 0x17,0x80,0x3f,0xde,0x27,0x84,0x17,0x80,0xe0,0x1, 0xaf,0xc2,0x11,0x84, +0xe0,0x1, 0x1f,0xd7,0x96,0xbf,0xe0,0x0, 0x1f,0x8d,0xe0,0x1b,0x96,0x1f,0xe0,0xf, +0x36,0xa1,0x3e,0x7f,0x4, 0x5, 0x3e,0x7d,0x11,0x83,0xe0,0x0, 0x3, 0x4e,0xe2,0x2, +0xc7,0x0, 0xe2,0x0, 0xcf,0x0, 0x17,0x84,0xe0,0x6f,0x39,0x23,0x39,0xef,0xe0,0x1, +0xda,0x3d,0xe0,0x1, 0x1f,0x91,0xe2,0x0, 0xcc,0x0, 0x8f,0xf, 0xe0,0x1, 0x1f,0x90, +0x37,0x28,0x8f,0x8f,0x16,0x81,0xe0,0x6d,0x39,0x23,0x3f,0xce,0xe0,0x1, 0x1f,0xf, +0x3f,0xbd,0xe0,0x0, 0x1e,0x8e,0x8f,0xe, 0xe0,0x43,0x3f,0x9f,0x8e,0x8d,0xb7,0xb2, +0xe0,0x1, 0xaf,0x2, 0x26,0x8a,0x96,0xd2,0xe2,0x0, 0xce,0x80,0x4, 0x6, 0xe2,0x0, +0xcf,0x81,0x5, 0x3d,0x37,0x81,0xb7,0xb2,0xe0,0x4, 0x8f,0xd5,0xe2,0x0, 0xcf,0x81, +0x1, 0x85,0x97,0xb2,0xe4,0x0, 0xc7,0x85,0xb7,0xb2,0xa, 0xa1,0xe7,0xfe,0x0, 0x87, +0x8e,0x8f,0xe7,0xff,0x26,0x9e,0xc6,0xff,0xae,0x8f,0x8e,0x84,0xe2,0x0, 0xce,0x81, +0xe7,0xff,0x1, 0x9c,0x16,0xa0,0x3e,0xde,0xe7,0xff,0x2e,0x9d,0x8f,0x8f,0xe7,0xff, +0x2f,0x9a,0xe7,0xff,0x0, 0x9b,0xe4,0xf, 0x36,0xcf,0x3f,0x9d,0x37,0x81,0xe0,0x2f, +0x3f,0x9c,0x11,0x81,0x39,0x9f,0xe7,0xff,0x0, 0xac,0xe0,0x3, 0x1f,0xc6,0x8f,0x8f, +0xe2,0x0, 0xcf,0xb8,0xe7,0xfe,0x2, 0xdf,0x17,0x80,0xe0,0x1, 0xaf,0xe2,0xe7,0xfe, +0x0, 0xda,0x17,0x0, 0xe0,0x1, 0xaf,0x62,0xe7,0xfe,0x0, 0xb5,0x37,0x21,0xe0,0x1, +0xaf,0x2, 0x0, 0xc3,0xe0,0x2, 0x1e,0xa1,0x17,0x0, 0x3f,0xed,0xe1,0x80,0xaf,0x1f, +0xc7,0x81,0xaf,0x1d,0xe1,0x80,0xaf,0x1f,0xe1,0x80,0xaf,0x1f,0xe1,0x80,0xaf,0x1f, +0xaf,0xf, 0x38,0x82,0x8, 0xb2,0xc0,0x7c,0xe0,0x1, 0xd1,0x1a,0xdf,0xe, 0xdd,0xcb, +0xe0,0x2, 0x1f,0x8f,0x2c,0x10,0x8f,0xf, 0xe0,0x3, 0x19,0x4, 0xe2,0x0, 0xcf,0x1, +0xe0,0x1, 0xac,0x42,0x1, 0x25,0xdd,0xbf,0x24,0x11,0xe0,0x1, 0x8f,0xe2,0x2f,0x9b, +0xc0,0x4, 0x9, 0x61,0x8f,0xf, 0xe0,0x3, 0x19,0x4, 0xe2,0x0, 0xcf,0x1, 0x1, 0x18, +0xe0,0x1, 0x8f,0xc2,0x2f,0x9a,0xdd,0xaf,0x2c,0x71,0x7c,0x1, 0xef,0xfc,0xd2,0x25, +0xe0,0x0, 0x1f,0x8e,0x64,0x1, 0xac,0xf, 0xe0,0x0, 0x1f,0x8c,0xac,0xf, 0xe0,0x1, +0x8f,0xe2,0x27,0xe7,0x14,0x0, 0xc0,0x4, 0x9, 0x21,0xe7,0x81,0x0, 0xa3,0x17,0x1, +0x16,0x0, 0xe0,0x1, 0xaf,0x42,0xae,0xf, 0x17,0x80,0xe0,0x2, 0x1e,0xa1,0xe0,0x2, +0x1f,0x20,0xaf,0x8d,0x16,0x7, 0xaf,0x9d,0xe0,0x2, 0x1e,0xf7,0xaf,0x8e,0xae,0xd, +0xe0,0x2, 0x1f,0x1f,0xe0,0x2, 0x1e,0xb4,0xaf,0x8e,0xaf,0x8d,0x0, 0xc5,0x0, 0x0, +0xe0,0x0, 0x1f,0x85,0x8f,0xf, 0xe0,0x0, 0x1f,0x8d,0xe0,0x0, 0x27,0x60,0xe0,0x0, +0x1f,0xe, 0x8e,0xe, 0xe2,0x0, 0xce,0x2, 0x1, 0x8, 0x17,0xa, 0x3f,0x38,0x3f,0x9e, +0xf0,0x10,0x8b,0xaf,0x5, 0xb4,0x38,0x82,0x8e,0xbf,0xf0,0x0, 0x8b,0x9f,0xf0,0x0, +0x8b,0xf, 0xf0,0xe, 0x3b,0xad,0x8d,0xaf,0xe2,0x0, 0xcf,0x0, 0xe8,0x17,0x3e,0xa7, +0xf2,0x1, 0xc3,0xff,0xf0,0xd, 0x3b,0x2b,0xe2,0x1, 0xc7,0x7f,0xe8,0x6e,0x3d,0x27, +0xe8,0xb, 0x3d,0xa6,0xe2,0x0, 0xce,0x80,0xe2,0x1, 0xc5,0xff,0xe2,0x1, 0xc6,0xff, +0xe0,0x6d,0x3d,0x2b,0xf0,0x40,0x3b,0xee,0x3d,0xed,0xf2,0x1, 0xc3,0xff,0xe2,0x1, +0xc5,0xff,0xf0,0x40,0x3b,0xfb,0x3, 0x82,0x3f,0x6d,0x15,0x8a,0x3d,0xb8,0x3e,0xee, +0xe0,0xf, 0x3f,0x9b,0xf0,0x10,0x8b,0xaf,0xe2,0x1, 0xc6,0xff,0xf2,0x0, 0xcb,0x94, +0x2, 0x99,0xf2,0x0, 0xcb,0x8a,0x2, 0xad,0xea,0x12,0x7f,0x4, 0xe0,0xf, 0x3f,0x18, +0x8d,0x89,0xf0,0x0, 0x8b,0xf, 0xe8,0x40,0x3d,0xf6,0x3, 0x86,0xf0,0x0, 0xab,0x9, +0x8f,0x8f,0xaf,0x8a,0x8d,0x89,0xe2,0x0, 0xce,0x2, 0x1, 0x1f,0x3f,0x18,0xad,0x8e, +0x38,0x82,0x17,0x85,0xaf,0x89,0xaf,0x8a,0x0, 0xe8,0xea,0x12,0x7e,0x84,0x3f,0xed, +0xe1,0x80,0xbf,0x1f,0xc7,0x84,0xbf,0x1d,0xe1,0x80,0xbf,0x1f,0xe1,0x80,0xbf,0x1f, +0xe1,0x80,0xbf,0x1f,0xe1,0x80,0xbf,0x1f,0xe1,0x80,0xbf,0x1f,0xb7,0xf, 0x38,0x82, +0x17,0x84,0xaf,0x89,0xaf,0x8a,0x0, 0xd1,0xe0,0xf, 0x36,0xc1,0xe2,0x1, 0xc7,0xff, +0x3f,0xfb,0x3, 0x8d,0xf2,0x0, 0xcb,0x95,0x16,0x83,0xe0,0x6d,0x3c,0xac,0x3e,0xff, +0xe0,0x6f,0x3b,0xad,0x3d,0xef,0xe2,0x1, 0xc5,0xff,0xad,0x89,0xad,0x8a,0x8d,0x89, +0x0, 0xce,0x0, 0x0, 0x8, 0xb3,0x39,0x68,0xe0,0x1, 0x1c,0x67,0x39,0xe9,0xe0,0xc, +0x15,0x52,0x14,0x80,0xe0,0x5, 0xde,0xe0,0xe0,0x2, 0x1f,0xfd,0x16,0x7a,0x8c,0x5f, +0x3e,0x12,0xf0,0x2c,0x13,0x99,0xe0,0xe, 0x3e,0x38,0xf0,0x17,0x3b,0x93,0xf0,0x17, +0x3b,0x9e,0x8c,0xcf,0xe0,0x1, 0x1f,0xff,0xf0,0x17,0x33,0xa1,0xf0,0x0, 0x12,0x87, +0x15,0xd, 0xf0,0x1, 0x1b,0x4a,0xe0,0x14,0x34,0x21,0xf0,0x17,0x3b,0x9f,0xf0,0x15, +0x3a,0x92,0xe0,0xa, 0x3d,0x13,0x3f,0xe3,0xe8,0x40,0x3e,0xe7,0xe8,0x40,0x3f,0x66, +0xe2,0x0, 0xce,0x0, 0x4, 0xc, 0x3c,0xfc,0x15,0xfa,0x3d,0x9f,0x5, 0x8, 0xe2,0x0, +0xcd,0x80,0x4, 0x5, 0x3c,0x7b,0x5, 0x3, 0x95,0x8e,0xb5,0x8d,0xc7,0x81,0x3f,0xfa, +0xc7,0x2, 0xc6,0x82,0x1, 0xee,0xc6,0x1, 0xe8,0x40,0x3e,0x75,0xf0,0x0, 0xc3,0x1a, +0xf8,0x17,0x3b,0x94,0x1, 0xe1,0x9, 0xe1,0xe0,0x0, 0x1f,0xe, 0xf0,0x2, 0x1a,0x1c, +0x17,0x80,0xf0,0x0, 0x89,0x8e,0xe8,0x7, 0xaf,0xc4,0xe8,0xf, 0xaf,0x94,0xe8,0x16, +0xaf,0xe4,0xe8,0x1e,0xaf,0xb4,0xf0,0x1, 0x21,0xb9,0x8, 0xb7,0x11,0x0, 0xe4,0x8, +0x34,0x29,0xe4,0x9, 0x34,0xa9,0xf0,0x0, 0x1b,0xd, 0xe4,0x8, 0x34,0x48,0xe4,0x9, +0x34,0xc8,0xf0,0x40,0x39,0x62,0x3a,0x62,0xf0,0x40,0x38,0xe2,0x3a,0xe2,0xf0,0x40, +0x38,0x62,0x39,0xe2,0x38,0xe2,0x3e,0xe2,0x3d,0x7d,0xe0,0x1, 0x1, 0xd, 0xe8,0x0, +0x8f,0x6, 0xe8,0x0, 0x8f,0x96,0xe4,0xe, 0x37,0x29,0xe4,0xf, 0x37,0xa9,0xe4,0xe, +0x37,0x48,0xe4,0xf, 0x37,0xc8,0xe0,0xb, 0x3f,0x18,0xe0,0xc, 0x3f,0x99,0xe4,0xb, +0x35,0xa7,0xe4,0xc, 0x36,0x27,0xe1,0x37,0x3c,0x2e,0xe4,0xb, 0x35,0xc8,0xe4,0xc, +0x36,0x48,0xe1,0x35,0x3c,0xaf,0xf0,0x0, 0x23,0x94,0xf0,0x0, 0x22,0x92,0xe1,0x26, +0x3c,0x2b,0xe1,0x27,0x3c,0xac,0x3b,0x57,0x23,0xb, 0xe0,0x3, 0x30,0xa1,0xe8,0x3, +0x39,0x94,0xc0,0x81,0xad,0x83,0xe2,0x1, 0xc0,0xff,0xae,0x13,0x39,0xe6,0xe1,0x2e, +0x3f,0x28,0xf0,0x0, 0x22,0x9e,0x27,0x1c,0xe1,0x35,0x3d,0xa8,0xe1,0x26,0x3c,0xac, +0xf0,0x15,0x3a,0xd6,0xf0,0x0, 0x22,0x95,0x12,0xbc,0xe8,0x5, 0x3a,0x90,0x32,0xa1, +0xf0,0x6, 0x30,0x21,0xe8,0x5, 0x3a,0x94,0xad,0xa5,0xf0,0x0, 0xc0,0x1, 0xf0,0x5, +0x3a,0x16,0xe0,0xf, 0xae,0x35,0xf2,0x1, 0xc0,0x7f,0xe8,0x40,0x3a,0xe5,0xe1,0x2f, +0x3f,0xa9,0xf0,0x0, 0x23,0x9e,0x27,0x9c,0xe1,0x37,0x3c,0x2b,0xe1,0x26,0x3e,0x29, +0xf0,0x17,0x3b,0xd6,0xf0,0x0, 0x23,0x95,0x12,0x1e,0xe8,0x4, 0x3a,0x11,0x32,0x21, +0xf0,0x6, 0x30,0xa1,0xe8,0x4, 0x3a,0x14,0xad,0x94,0xf0,0x0, 0xc0,0x81,0xf0,0x4, +0x3a,0x16,0xe0,0x7, 0xae,0x64,0xf2,0x1, 0xc0,0xff,0xe8,0x40,0x3a,0x67,0x27,0x1b, +0x27,0x9a,0xe1,0x2f,0x3d,0xa8,0xe1,0x2e,0x3e,0x29,0x3f,0xde,0x27,0x94,0xe0,0x0, +0x17,0x5a,0xe8,0xe, 0x3f,0x12,0x37,0x21,0xf0,0x2, 0x31,0x21,0xe8,0xe, 0x3f,0x14, +0xad,0xbe,0xf0,0x0, 0xc1,0x1, 0xf0,0xe, 0x3a,0x12,0xe0,0x17,0xae,0xe, 0xf2,0x1, +0xc1,0x7f,0x39,0x6f,0xc6,0x81,0xe2,0x1, 0xc6,0xff,0xe8,0x40,0x3e,0xf3,0xf0,0x0, +0xc3,0x2, 0xe7,0xfe,0x1, 0xeb,0x29,0x8a,0x22,0x83,0xf8,0x16,0xa8,0x64,0x22,0x3, +0xf8,0xf, 0xa8,0x94,0x29,0x6, 0xb, 0xe1,0x38,0x82,0xe8,0x7, 0xa8,0xc4,0x0, 0xf5, +0xf8,0x1e,0xa9,0x34,0xb, 0xe1,0x2c,0x2a,0x3f,0xe9,0x24,0x95,0x3f,0xe8,0x17,0xd, +0x3f,0x38,0x3f,0x19,0xe0,0xd, 0x37,0x21,0x3e,0x9b,0xe0,0x40,0x96,0x9d,0x3f,0x1a, +0xe2,0x0, 0xce,0x80,0xe0,0x0, 0x5, 0x47,0x16,0x81,0xe0,0x40,0xae,0x9e,0xe2,0x0, +0xcc,0xb, 0x2, 0x90,0x17,0x1, 0x3f,0x1f,0xe4,0x0, 0xc7,0xd, 0x3f,0x19,0xe0,0xd, +0x37,0x21,0x3e,0x9b,0x96,0x8d,0x3f,0x1a,0xe2,0x0, 0xce,0x80,0x5, 0x2d,0x16,0x81, +0xae,0x8e,0xe2,0x0, 0xcc,0x8b,0x5, 0x96,0x38,0x82,0x17,0x7f,0x3f,0x18,0xe4,0x0, +0xc7,0xd, 0x3f,0xe8,0x3f,0x19,0xe0,0xd, 0x37,0x21,0x3e,0x9b,0x96,0x8d,0x3f,0x1a, +0xe2,0x0, 0xce,0x80,0x5, 0x1c,0x16,0x81,0xae,0x8e,0x2c,0xca,0xe2,0x0, 0xcc,0xb, +0x5, 0xda,0xe4,0x0, 0xc7,0x8d,0x3f,0x99,0xc7,0x81,0xe0,0xe, 0x37,0xa1,0x3d,0x9e, +0x97,0xb, 0x3f,0x9a,0xe2,0x0, 0xcf,0x0, 0x5, 0x4, 0x17,0x1, 0xaf,0xf, 0x38,0x82, +0x17,0x2, 0xaf,0xf, 0x38,0x82,0x16,0x82,0xae,0x8e,0x0, 0xd4,0x16,0x82,0xae,0x8e, +0x0, 0xe5,0x16,0x82,0xe0,0x40,0xae,0x9e,0xe7,0xff,0x0, 0xbb,0x8, 0xb7,0xe1,0xfc, +0xc0,0x0, 0xe0,0x2, 0x1f,0xdd,0x17,0x1, 0x8f,0x8f,0xe0,0x2f,0x3f,0x8e,0xe0,0x1, +0x27,0x83,0x17,0x94,0xe1,0x28,0x3c,0x1f,0xe0,0x0, 0x24,0x7e,0xe0,0x1, 0x1f,0xca, +0x16,0x0, 0xe0,0xa, 0x97,0xcf,0xe2,0x7, 0xcf,0xe8,0xe0,0x0, 0x5, 0x79,0xe0,0x1, +0x1a,0x49,0x11,0x0, 0xe0,0x1, 0x1d,0xc8,0x39,0xe4,0x3c,0xe2,0x17,0xe6,0x3f,0x93, +0xe0,0x80,0x97,0x1f,0x16,0x81,0x3e,0x7e,0x3e,0x99,0x3, 0x5, 0x3c,0xed,0x39,0x1e, +0xe3,0xff,0xc4,0xff,0x3f,0xf3,0x1, 0xf5,0xc1,0x9a,0x39,0xfb,0x1, 0xf0,0x24,0x85, +0x3c,0x62,0xe0,0x5, 0xdc,0xe8,0x39,0x68,0xe0,0x2, 0x15,0x52,0x14,0x80,0xe2,0x1, +0x7c,0x30,0xe0,0x5, 0xdd,0x39,0xe2,0x1, 0x7d,0xb0,0x15,0x0, 0x17,0x66,0x3f,0x14, +0x3e,0x6b,0x0, 0x85,0xb7,0x8c,0x3f,0x74,0xc6,0x2, 0x1, 0x11,0xe0,0x80,0x96,0x9e, +0xe2,0x0, 0xce,0x80,0xe0,0xf, 0x3e,0xa2,0xe0,0x43,0x3f,0x9f,0x5, 0x75,0xe2,0x0, +0xcf,0x80,0x3, 0x71,0x3f,0x74,0xb5,0xc, 0xc6,0x2, 0x1, 0xf1,0x12,0x1a,0x3a,0x1e, +0x3a,0x73,0xc5,0x9a,0x1, 0xe4,0x13,0x4, 0x3b,0x10,0x14,0x80,0xe0,0x1, 0x15,0x29, +0x3c,0x66,0xe0,0x5, 0xdd,0x11,0x17,0x81,0x14,0x86,0xe0,0x0, 0x12,0xd7,0xe0,0xa, +0xaf,0xc6,0x3a,0x90,0x17,0x81,0x3b,0xe9,0x3a,0x69,0xe7,0xff,0x11,0xb3,0xe2,0x1, +0xc2,0x7f,0x39,0x95,0x39,0x67,0x0, 0x83,0xe0,0x9, 0x8f,0xe3,0xe2,0x0, 0xcf,0x81, +0xc1,0xf3,0x1, 0x19,0xc1,0x7f,0xe0,0x43,0x39,0x2, 0xe3,0xff,0xc9,0x7f,0x1, 0xf5, +0x14,0xff,0x3c,0x94,0xe0,0x43,0x3c,0x89,0xe3,0xff,0xcc,0xff,0x1, 0x15,0xe1,0xc0, +0x8f,0x95,0x0, 0xe3,0xe0,0x1, 0x1f,0xca,0xe0,0xa, 0x97,0xcf,0xe0,0xc, 0x37,0x82, +0xe7,0xff,0x0, 0x87,0x3c,0x62,0xe2,0x1, 0xc4,0x7f,0xe2,0x1, 0x7d,0xb0,0x3d,0x66, +0x3c,0xe4,0xdf,0xa, 0x0, 0xe0,0x12,0x8a,0x3a,0x90,0x14,0x86,0x13,0x7, 0x3a,0x69, +0xe2,0x1, 0xc2,0x7f,0x39,0x65,0x39,0xe6,0xe0,0xb, 0x8f,0xb2,0xc1,0xd, 0xe2,0x0, +0xcf,0x81,0xe0,0x2, 0x1, 0xa, 0x17,0x81,0x3f,0x93,0xe2,0x1, 0xc7,0xff,0xe2,0x0, +0xcf,0x8d,0xe0,0x43,0x39,0x8f,0x1, 0xf1,0x14,0xff,0x3c,0x94,0xe0,0x43,0x3c,0x89, +0xe3,0xff,0xcc,0xff,0xc2,0xff,0x1, 0xe4,0x12,0x8b,0x3a,0x90,0x3b,0x65,0x12,0x7, +0xe0,0x0, 0x13,0x86,0xe2,0x1, 0xc2,0x7f,0x39,0xe6,0x39,0x67,0xe0,0x9, 0x8f,0xe3, +0xc1,0xf3,0xe2,0x0, 0xcf,0x81,0xe0,0x1, 0x1, 0x5d,0xc1,0x7f,0xe0,0x43,0x39,0x2, +0xe3,0xff,0xc9,0x7f,0x1, 0xf4,0x17,0x81,0x3f,0x94,0xe2,0x1, 0xc7,0xff,0xe2,0x0, +0xcf,0x8d,0xc3,0x1, 0xe0,0x43,0x3a,0xf, 0x1, 0xe6,0x12,0x7, 0xe0,0x40,0x3b,0x64, +0xe2,0x1, 0xc2,0x7f,0x39,0x65,0x39,0xe6,0xe0,0xb, 0x8f,0xb2,0xc1,0xd, 0xe2,0x0, +0xcf,0x81,0xe0,0x1, 0x1, 0x55,0x17,0x81,0x3f,0x93,0xe2,0x1, 0xc7,0xff,0xe2,0x0, +0xcf,0x8d,0xe0,0x43,0x39,0x8f,0x1, 0xf1,0x17,0x81,0x3f,0x94,0xe2,0x1, 0xc7,0xff, +0xe2,0x0, 0xcf,0x8d,0xc2,0x81,0xe0,0x43,0x3a,0xf, 0x1, 0xe3,0x15,0x0, 0x14,0x11, +0x3c,0x10,0x39,0x6a,0x14,0x82,0x12,0x82,0x12,0x1, 0x39,0xea,0x17,0x72,0x3f,0x18, +0x3e,0xe8,0x3d,0xe2,0x8e,0x1e,0xe0,0x0, 0x2e,0x56,0xe0,0x1, 0x25,0x47,0xe0,0x43, +0x8f,0xad,0xe2,0x0, 0xcf,0x82,0xe0,0x0, 0x1, 0x6a,0xe0,0x0, 0x25,0xda,0x8f,0x8e, +0xe2,0x0, 0xcf,0x82,0xe0,0x1, 0x1, 0x0, 0xe2,0x0, 0xcd,0xc, 0xe0,0x1, 0x1, 0x5d, +0x8f,0x8d,0xe2,0x0, 0xcf,0x82,0xe0,0x1, 0x1, 0x46,0xe2,0x0, 0xcd,0x8c,0xe0,0x1, +0x1, 0xd8,0x17,0x81,0x3f,0x9a,0xe2,0x1, 0xc7,0xff,0xe2,0x0, 0xcf,0x8d,0xc4,0xd, +0xe0,0x43,0x3d,0xf, 0x1, 0xd4,0x16,0x10,0xe0,0x1, 0x15,0x39,0xe0,0x1, 0x1d,0xca, +0x3e,0x10,0x3d,0x10,0x17,0xf3,0x3f,0x9c,0xe0,0x40,0x3f,0x6b,0xe0,0x80,0x8e,0x9f, +0x2e,0x82,0xb6,0x8e,0x3f,0xfc,0xc7,0x2, 0x1, 0xfa,0x16,0xd, 0x3e,0x1f,0x3d,0x7c, +0xc5,0x9a,0x1, 0xf1,0xe0,0x4, 0xc0,0x0, 0xb, 0xe1,0xe2,0x0, 0xcd,0xc, 0x1, 0x6, +0x8f,0x8d,0xe2,0x0, 0xcf,0x82,0xe0,0x0, 0x1, 0x41,0x8f,0xae,0xe2,0x0, 0xcf,0x82, +0x1, 0x89,0x16,0x1, 0xc6,0x1, 0xe3,0xff,0xc6,0x7f,0xe2,0x0, 0xce,0x1, 0x5, 0x82, +0xac,0x9e,0x17,0x81,0x3f,0x9b,0xe2,0x1, 0xc7,0xff,0xe2,0x0, 0xcf,0x8d,0xc6,0x81, +0xc7,0x1, 0xe0,0x43,0x3d,0x8f,0xe7,0xff,0x1, 0x9f,0xe7,0xff,0x0, 0xbc,0xe2,0x0, +0xcd,0xc, 0xe0,0x0, 0x1, 0x5c,0x8f,0x8d,0xe2,0x0, 0xcf,0x82,0x8f,0xae,0x1, 0x5f, +0xe2,0x0, 0xcf,0x82,0x1, 0xe7,0x3e,0x6b,0x0, 0xde,0x25,0xd0,0x8f,0x8e,0xe2,0x0, +0xcf,0x82,0x1, 0x8, 0xe2,0x0, 0xcd,0xc, 0x1, 0x99,0xe2,0x0, 0xcd,0x8c,0x1, 0xce, +0x0, 0xd9,0xe2,0x0, 0xcd,0xc, 0x1, 0x6, 0x8f,0x8d,0xe2,0x0, 0xcf,0x82,0xe0,0x0, +0x1, 0x6a,0xe2,0x0, 0xcd,0x8c,0x1, 0x4d,0x8e,0x2e,0xe2,0x0, 0xce,0x2, 0x1, 0x43, +0xac,0x9e,0x0, 0xc8,0xe2,0x0, 0xcd,0xc, 0x1, 0x6, 0x8f,0x8d,0xe2,0x0, 0xcf,0x82, +0xe0,0x0, 0x1, 0x57,0xe2,0x0, 0xcd,0x8c,0xe7,0xff,0x1, 0xb1,0xe7,0xff,0x0, 0x83, +0x3c,0x62,0xe2,0x1, 0xc4,0x7f,0xe2,0x1, 0x7d,0xb0,0xe2,0x0, 0x7d,0x4, 0x3c,0xe4, +0xdd,0xf3,0xe7,0xfe,0x0, 0x9c,0x3c,0x63,0xe2,0x1, 0xc4,0x7f,0xe2,0x1, 0x7d,0xb0, +0xe2,0x0, 0x7d,0x4, 0x3c,0xe4,0xdd,0xe8,0xe7,0xfd,0x0, 0xef,0x3c,0x63,0xe2,0x1, +0xc4,0x7f,0xe2,0x1, 0x7d,0xb0,0xe2,0x0, 0x7d,0x4, 0x3c,0xe4,0xdd,0xdd,0xe7,0xfe, +0x0, 0xa4,0x8f,0x8d,0xe2,0x0, 0xcf,0x82,0x1, 0x1d,0x8f,0xae,0xe2,0x0, 0xcf,0x82, +0xe7,0xff,0x1, 0x91,0xe7,0xff,0x0, 0xa9,0x25,0xf5,0x8f,0x8e,0xe2,0x0, 0xcf,0x82, +0x8f,0x8d,0x1, 0x45,0xe2,0x0, 0xcf,0x82,0x1, 0xd, 0xe2,0x0, 0xcd,0x8c,0xe7,0xfe, +0x1, 0x4a,0x8f,0xae,0xe2,0x0, 0xcf,0x82,0xe7,0xfe,0x1, 0xfd,0x3e,0x6a,0xe7,0xfe, +0x0, 0xf3,0x3e,0x63,0xe2,0x0, 0xcd,0x8c,0xc6,0x1, 0xe3,0xff,0xc6,0x7f,0x1, 0x17, +0x8f,0xae,0xe2,0x0, 0xcf,0x82,0xe7,0xfe,0x1, 0xea,0xe7,0xfe,0x0, 0xe5,0x3e,0x64, +0x0, 0xf2,0x3e,0x65,0x0, 0xf0,0xe2,0x0, 0xcd,0x8c,0xe7,0xfe,0x1, 0x64,0x8f,0xae, +0xe2,0x0, 0xcf,0x82,0xe7,0xfe,0x1, 0xdf,0xe7,0xfe,0x0, 0xd6,0xe2,0x0, 0xce,0x1, +0xe7,0xfe,0x2, 0xd8,0xe7,0xfe,0x0, 0x9f,0x8, 0xb7,0xf8,0x0, 0xc, 0x3e,0xc0,0x64, +0xe0,0x2, 0x1e,0xfd,0x39,0x68,0x8e,0xdd,0xf0,0x40,0x3d,0x69,0x3f,0xed,0x7e,0x86, +0x3f,0xb8,0xe0,0x1, 0x1e,0xf2,0x3f,0x99,0xa7,0xd, 0x37,0xa1,0x3f,0x9e,0x94,0xf, +0x14,0x8a,0x7d,0x1, 0xe0,0x5, 0xda,0xb4,0xe0,0x2, 0x1f,0x7d,0x65,0x1, 0x8f,0x4e, +0xe0,0x43,0x39,0x98,0xe8,0x40,0x3c,0xea,0x3c,0x62,0x7f,0x3, 0xdc,0xa6,0xe8,0x43, +0x3f,0x8a,0xe2,0x0, 0xcf,0x80,0x7f,0x85,0xe0,0x5, 0x4, 0x7b,0xe0,0x2, 0x1e,0xdd, +0x17,0x0, 0x7e,0x84,0xf7,0xff,0x14,0x7a,0x7f,0x2, 0xf0,0x0, 0x16,0x86,0xe0,0x1, +0x1f,0xf2,0xe0,0x2, 0x1d,0x9c,0xe0,0x2, 0x1e,0xfd,0x67,0x4, 0x63,0x82,0xa2,0x8f, +0x8a,0x5d,0xe0,0x43,0x3f,0x82,0xe0,0x7, 0x8c,0xcb,0xf0,0x0, 0x8d,0x8e,0x60,0x85, +0x7f,0x87,0x3b,0x67,0x66,0x87,0xe2,0x0, 0xce,0x80,0xe0,0x1, 0x4, 0xc, 0x67,0x2, +0xf0,0x0, 0x11,0x80,0xf0,0x43,0x3c,0x8e,0xe8,0x14,0x38,0xaa,0xf8,0x3c,0x3c,0x19, +0xf8,0x3e,0x3c,0x9d,0xe0,0x8, 0x30,0xa1,0xf0,0x40,0x39,0x62,0xf8,0x40,0x38,0x63, +0xf8,0x43,0x3b,0x14,0xf0,0x0, 0xc4,0x86,0xe8,0x43,0x3d,0x2, 0xe0,0xf, 0x3d,0x34, +0x3f,0x91,0x37,0xa1,0x3f,0x95,0xf0,0x0, 0x90,0x8f,0x24,0xaa,0xe0,0x15,0x3d,0x22, +0x3e,0xe7,0x35,0x21,0x3f,0xe6,0xf8,0x43,0x3b,0x95,0x0, 0x8e,0xf2,0x0, 0xca,0x1, +0x2, 0x1d,0xf2,0x0, 0xcb,0x80,0xe0,0x0, 0x5, 0x4a,0xf2,0x0, 0xca,0x81,0x2, 0x16, +0x3c,0xff,0x3e,0xef,0x5, 0x15,0xe0,0xe, 0x36,0xa1,0x3f,0x1b,0x8e,0xe, 0xc7,0x81, +0x3e,0x7a,0xe0,0x43,0x3f,0x8f,0x4, 0x75,0x8f,0x1e,0x3c,0x7e,0x2, 0x72,0xf2,0x0, +0xcb,0x0, 0x2, 0x65,0xf3,0xff,0xcb,0x7f,0x3, 0x65,0x3c,0xfd,0x2, 0x35,0xe8,0x40, +0x39,0xf1,0xe0,0x0, 0x2, 0x51,0xe8,0x43,0x3f,0x83,0xf0,0x2e,0x3c,0x1f,0x2f,0x13, +0xf0,0x0, 0x2e,0x12,0xe8,0x2e,0x3f,0x9d,0x2f,0xe, 0xf0,0x0, 0x2f,0xd, 0xc7,0x86, +0xe4,0x0, 0xc7,0x8d,0xe0,0x1, 0x1e,0xca,0xe8,0xf, 0x3f,0x99,0x37,0xa1,0x3f,0x9d, +0xf0,0x0, 0xb0,0x8f,0xf0,0x0, 0xc0,0x1, 0xf3,0xff,0xc0,0x7f,0x17,0xff,0xe8,0xf, +0x3f,0x92,0xf1,0xff,0xc1,0xff,0xe2,0x1, 0xc7,0xff,0xf2,0x1, 0xc1,0xff,0xf0,0x0, +0x21,0xc, 0xf0,0x40,0x39,0x6f,0xe7,0xff,0x0, 0xa1,0xf3,0xff,0xcb,0xff,0xe7,0xff, +0x3, 0x39,0x3c,0xfd,0x5, 0x4d,0xf0,0x0, 0x20,0xe, 0x67,0x82,0xc0,0xff,0xc7,0xff, +0xe0,0x43,0x38,0x81,0xe2,0x1, 0xc7,0xff,0xe3,0xff,0xc8,0xff,0x7f,0x82,0xe7,0xfe, +0x1, 0xf3,0xf0,0x0, 0x61,0x83,0xf1,0xff,0xc1,0xff,0xe8,0x40,0x39,0x73,0x4, 0xf, +0x67,0x86,0xc7,0xff,0xe8,0x40,0x3f,0xfa,0xe0,0x1, 0x2, 0x3b,0xc0,0x1c,0xf8,0x0, +0xf, 0x28,0xb, 0xe1,0xf2,0x0, 0xcd,0x81,0x5, 0xca,0x0, 0xde,0x66,0x84,0xe0,0x1, +0x1f,0x72,0xe0,0x2, 0x1f,0xfd,0xf0,0x0, 0x15,0x81,0x8e,0x8d,0xf0,0x0, 0x13,0x0, +0xf0,0x1b,0x3d,0x92,0xf0,0x0, 0xa0,0x8e,0xf0,0x0, 0x8c,0xdf,0xe0,0x16,0x8d,0x6b, +0xf0,0x0, 0x62,0x85,0x7e,0x82,0xf2,0x1, 0xc5,0xff,0xf8,0x40,0x3e,0x66,0xf7,0xff, +0x16,0xfa,0xf0,0x0, 0x17,0x6, 0xf8,0x40,0x38,0x66,0x67,0x3, 0xe8,0x40,0x3f,0x7b, +0x5, 0xd0,0xe8,0x43,0x3f,0x86,0xe8,0x2d,0x3f,0x9e,0xf8,0x6, 0x3a,0xaa,0xf0,0x38, +0x3e,0x9f,0xc7,0x86,0xf0,0x8, 0x32,0xa1,0xe8,0x40,0x3b,0xeb,0xf0,0x0, 0x13,0x81, +0xf0,0x0, 0x12,0x0, 0xe0,0x43,0x38,0x96,0x7e,0x84,0x7f,0x85,0xe8,0xf, 0x3b,0xb9, +0xe8,0xf, 0x3f,0x95,0x37,0xa1,0xe8,0xf, 0x3f,0x91,0xf0,0x0, 0x91,0xf, 0x25,0x32, +0xe0,0x5, 0x3b,0xa2,0xe0,0x9, 0x33,0xa1,0xe8,0x40,0x3e,0x6c,0xe8,0x40,0x3f,0xe0, +0xe0,0x43,0x3a,0x15,0x0, 0x8e,0xe2,0x0, 0xcb,0x1, 0x2, 0x22,0xe2,0x0, 0xca,0x0, +0xe0,0x2, 0x5, 0xa, 0xe2,0x0, 0xca,0x81,0x2, 0x1b,0x3f,0xfa,0x3e,0x6f,0x3, 0x1a, +0x17,0x3c,0x3f,0x1c,0x37,0x21,0x3f,0x1b,0x8f,0x2e,0xe0,0xd, 0x36,0x21,0x3f,0x79, +0xc7,0x81,0x3e,0x9b,0xe0,0x43,0x3f,0x8f,0x2, 0x71,0xe0,0xf, 0x8f,0x3d,0x3c,0x7e, +0x2, 0x6d,0xe2,0x0, 0xc8,0x80,0x2, 0x60,0xe3,0xff,0xc8,0xff,0x3, 0x60,0x3e,0x7a, +0x4, 0x2b,0xe8,0x40,0x39,0xf2,0xe0,0x1, 0x2, 0x6d,0xe8,0x43,0x3f,0x87,0xf0,0x2e, +0x3e,0x9f,0x2f,0x13,0xf0,0x0, 0x2c,0x12,0xe8,0x2e,0x3f,0x9e,0x2f,0xe, 0x67,0x4, +0x2f,0xc, 0xc7,0x86,0xe4,0x0, 0xc7,0x8d,0x66,0x85,0xe0,0x1, 0x1f,0x4a,0x3f,0x9d, +0x37,0xa1,0x3f,0x9e,0xf0,0x0, 0xb1,0xf, 0xf0,0x0, 0xc2,0x1, 0xf3,0xff,0xc2,0x7f, +0xc3,0x81,0x66,0x83,0xe2,0x1, 0xc3,0xff,0x3e,0xf7,0xf0,0x0, 0xc3,0x81,0xf2,0x1, +0xc3,0xff,0xe7,0xff,0x2, 0x9d,0xf7,0xfe,0x22,0x55,0xf1,0xff,0xc2,0xff,0xf8,0x43, +0x3a,0x85,0xf3,0xff,0xca,0xff,0xf1,0xff,0xc3,0x7f,0xf2,0x1, 0xc3,0x7f,0xe7,0xfe, +0x1, 0xf6,0x67,0x86,0xc7,0xff,0xe8,0x40,0x3f,0xfa,0xe7,0xfe,0x5, 0x49,0x13,0x81, +0xe8,0x7, 0x3b,0x9a,0x67,0x6, 0xe2,0x1, 0xc3,0xff,0x3f,0x77,0xe7,0xfe,0x5, 0xc0, +0xe0,0x2, 0x1f,0xdd,0xe0,0x1, 0x1e,0xf2,0xe0,0x2, 0x1d,0x9c,0xe0,0x2, 0x1f,0x7d, +0x7f,0x84,0xf0,0x40,0x3b,0x67,0x8f,0x8f,0xf0,0x0, 0xa6,0xd, 0xf0,0x0, 0x8e,0xde, +0xe0,0x43,0x3e,0x82,0xe0,0xf, 0x8c,0x9b,0x7f,0x82,0xf0,0x0, 0x15,0x81,0x7e,0x85, +0xf0,0x0, 0x14,0x80,0xf7,0xff,0x17,0x7a,0xf0,0x0, 0x10,0x6, 0x67,0x5, 0xe2,0x0, +0xcf,0x0, 0xe0,0x1, 0x4, 0x23,0xe8,0x43,0x3f,0x8b,0xf0,0x0, 0x13,0x80,0xf8,0x6, +0x3b,0x2a,0xf0,0x38,0x3f,0x1f,0xe8,0x31,0x3f,0x90,0xc7,0x86,0xf0,0x8, 0x33,0x21, +0xf0,0x40,0x3a,0xe2,0xf8,0x40,0x3a,0x67,0xe0,0x43,0x38,0x96,0x7f,0x87,0xe8,0x43, +0x3d,0x5, 0xe8,0xf, 0x3d,0x3d,0xe8,0xf, 0x3f,0x96,0x37,0xa1,0xe8,0xf, 0x3f,0x9c, +0xf0,0x0, 0x91,0xf, 0x24,0xb2,0xe0,0x5, 0x3d,0x22,0xe8,0x40,0x3e,0x69,0x35,0x21, +0xe8,0x40,0x3f,0xe9,0xe0,0x43,0x3a,0x15,0x0, 0x8e,0xe2,0x0, 0xcb,0x1, 0x2, 0x22, +0xe2,0x0, 0xca,0x0, 0xe0,0x0, 0x5, 0x5d,0xe2,0x0, 0xca,0x81,0x2, 0x1b,0x3f,0xf9, +0x3e,0x6f,0x3, 0x1b,0x17,0x1e,0x3f,0x1c,0x37,0x21,0x3f,0x1b,0x8f,0x1e,0xe0,0xd, +0x36,0x21,0x3f,0x7a,0xc7,0x81,0x3e,0x9b,0xe0,0x43,0x3f,0x8f,0x4, 0x71,0xe0,0x7, +0x8f,0x6d,0x3c,0x7e,0x4, 0x6d,0xe2,0x0, 0xc8,0x80,0x2, 0x60,0xe3,0xff,0xc8,0xff, +0x3, 0x60,0x3e,0x79,0xe0,0x0, 0x4, 0x43,0xe8,0x40,0x39,0xf2,0xe0,0x1, 0x2, 0x4e, +0xe8,0x43,0x3f,0x87,0xf0,0x2e,0x3f,0x1f,0x2f,0x13,0xf0,0x0, 0x2c,0x12,0xe8,0x2e, +0x3f,0x90,0x2f,0xe, 0xf0,0x0, 0x28,0x8d,0xc7,0x86,0xe4,0x0, 0xc7,0x8d,0x66,0x87, +0xe0,0x1, 0x1f,0x4a,0x3f,0x9d,0x37,0xa1,0x3f,0x9e,0xf0,0x0, 0xb1,0xf, 0xf0,0x0, +0xc2,0x1, 0xf3,0xff,0xc2,0x7f,0x17,0xff,0xe8,0xf, 0x3f,0x95,0xf1,0xff,0xc3,0xff, +0xe2,0x1, 0xc7,0xff,0xf2,0x1, 0xc3,0xff,0xf0,0x0, 0x22,0x99,0xf0,0x40,0x3a,0xef, +0xe7,0xff,0x0, 0x97,0xe3,0xff,0xca,0x7f,0xe7,0xfd,0x3, 0x79,0xe7,0xfe,0x0, 0x91, +0x67,0x82,0xe2,0x0, 0xcf,0x81,0xe7,0xfe,0x5, 0xad,0xe7,0xfe,0x0, 0xb6,0xe3,0xff, +0xca,0x7f,0xe7,0xff,0x3, 0x26,0x3e,0x79,0x3, 0x40,0xf0,0x0, 0x22,0xf, 0xf0,0x0, +0xc3,0x1, 0x66,0x86,0xf2,0x1, 0xc3,0x7f,0xe8,0x40,0x3e,0xf6,0xf0,0x0, 0xc5,0x81, +0xf2,0x1, 0xc5,0xff,0xe7,0xfe,0x2, 0xdc,0xe8,0x40,0x39,0x73,0xe7,0xfc,0x3, 0x78, +0x66,0x84,0xe0,0x1, 0x1f,0x72,0xe0,0x2, 0x1f,0xfd,0xf0,0x0, 0x13,0x1, 0x8e,0x8d, +0xf0,0x16,0x3b,0x12,0xf0,0x0, 0xa6,0x8e,0xf0,0x0, 0x8f,0x5f,0xe0,0x1e,0x8d,0x3b, +0x7e,0x82,0xf2,0x1, 0xc3,0x7f,0x12,0x1, 0xf0,0x0, 0x10,0x80,0xf7,0xff,0x11,0x7a, +0xf0,0x0, 0x11,0x86,0x67,0x3, 0xe8,0x40,0x3f,0x76,0xe7,0xfc,0x5, 0xd9,0xe0,0x43, +0x38,0x84,0xe8,0x10,0x3b,0xaa,0xf0,0x3c,0x39,0x11,0xe8,0x3b,0x38,0x93,0xe0,0x17, +0x33,0xa1,0xe8,0x40,0x3c,0x66,0x13,0x1, 0x12,0x80,0xf8,0x43,0x3a,0x90,0xc0,0x86, +0xe8,0xf, 0x3c,0x3e,0x3f,0x97,0x37,0xa1,0xe8,0xf, 0x3f,0x9d,0xf0,0x0, 0x94,0xf, +0xe0,0x0, 0x25,0x51,0xe0,0x19,0x3c,0x22,0xe0,0x9, 0x34,0x21,0xe8,0x40,0x3e,0x61, +0xe8,0x40,0x3f,0xe1,0xf8,0x43,0x3a,0x19,0x0, 0x8d,0xf2,0x0, 0xc8,0x1, 0x2, 0x23, +0xf2,0x0, 0xca,0x0, 0x5, 0x39,0xf2,0x0, 0xcc,0x81,0x2, 0x1d,0x3f,0xfa,0x3e,0x6f, +0x3, 0x39,0xe0,0x0, 0x17,0x5a,0x3f,0x1c,0x37,0x21,0x3f,0x1b,0x8f,0x3e,0xe0,0xd, +0x36,0x21,0x3f,0x79,0xc7,0x81,0x3e,0x9b,0xe0,0x43,0x3f,0x8f,0x2, 0x70,0xe0,0x17, +0x8f,0xd, 0xf0,0x40,0x3b,0xfe,0x4, 0x6b,0xf2,0x0, 0xca,0x80,0x2, 0x5f,0xf3,0xff, +0xca,0xff,0x3, 0x5f,0x3e,0x7a,0x3, 0x1e,0xe7,0xfc,0x22,0x8a,0xc3,0x81,0x66,0x86, +0xe2,0x1, 0xc3,0xff,0x3e,0xf7,0xc2,0x1, 0xe2,0x1, 0xc2,0x7f,0xe7,0xff,0x2, 0xa4, +0xc0,0x1c,0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0x67,0x82,0xe2,0x0, 0xcf,0x81,0xe7,0xfe, +0x5, 0xcc,0xe7,0xfe,0x0, 0xec,0xf3,0xff,0xca,0x7f,0x4, 0x65,0x3f,0xfa,0x3e,0x6f, +0x4, 0x49,0xe8,0x40,0x39,0xf8,0x2, 0x26,0xe0,0x43,0x3f,0x86,0xf0,0x2e,0x39,0x1f, +0x2f,0x12,0xf0,0x0, 0x2e,0x11,0xe8,0x2e,0x3f,0x93,0x2f,0xd, 0xf0,0x0, 0x2d,0x8c, +0xc7,0x86,0xe4,0x0, 0xc7,0x8d,0xe0,0x1, 0x1e,0xca,0x3f,0x91,0x37,0xa1,0x3f,0x9d, +0xf0,0x0, 0xb4,0xf, 0xc2,0x81,0xe3,0xff,0xc2,0xff,0xc4,0x1, 0x67,0x83,0xe2,0x1, +0xc4,0x7f,0x3f,0xf8,0xc3,0x1, 0xe2,0x1, 0xc3,0x7f,0xe7,0xff,0x2, 0x83,0xe7,0xff, +0x0, 0xbd,0x67,0x2, 0xe2,0x0, 0xcf,0x1, 0x5, 0xf1,0xe7,0xff,0x0, 0xb7,0xf0,0x0, +0x61,0x83,0xf1,0xff,0xc1,0xff,0xe7,0xfb,0x0, 0xb5,0x8, 0xb7,0xf8,0x0, 0xc, 0x3e, +0xc0,0x70,0x3b,0xe8,0xe0,0x1, 0x1c,0x4a,0xe0,0x0, 0x4a,0xcf,0x39,0x6a,0xf0,0x40, +0x3c,0x69,0xe0,0x2, 0x15,0x52,0x14,0x80,0x39,0xec,0x3a,0x6d,0x3b,0x6b,0xe0,0x5, +0xd8,0x2b,0x3d,0xe5,0x3d,0x62,0x3c,0xe4,0x3c,0x63,0xdc,0xbf,0xe0,0x2, 0x1f,0xda, +0x8f,0x8f,0x27,0x87,0xe0,0x2, 0x1f,0xdd,0x8f,0x8f,0xe2,0x0, 0xcf,0x81,0x1, 0x11, +0x3c,0x65,0xda,0xa5,0x3c,0xe4,0x3c,0x63,0xd9,0x2e,0x3d,0xe6,0x3d,0x62,0xe8,0x40, +0x3c,0xe8,0x3c,0x67,0xc0,0x10,0xf8,0x0, 0xf, 0x28,0xb, 0xa1,0xe7,0x76,0x0, 0x84, +0xe0,0x0, 0x1f,0x8e,0xf0,0x2, 0x1f,0x5e,0x8f,0x8f,0xe2,0x0, 0xcf,0x81,0x1, 0x5, +0xe0,0x3, 0x1f,0x9c,0x8f,0x8f,0x27,0xe5,0xf0,0x0, 0x15,0x8a,0xf0,0x1b,0x3d,0xb6, +0x3c,0xe4,0x3c,0x63,0xd9,0x10,0xf0,0x0, 0x1e,0xd, 0xf0,0x0, 0x14,0xfc,0x3d,0x62, +0x3d,0xe6,0xe8,0x40,0x3c,0xe8,0x3c,0x67,0xf8,0x19,0x3c,0x9b,0xef,0xfb,0xda,0xe4, +0xf8,0x19,0x3c,0x9c,0xe8,0x0, 0x8f,0xd9,0x3c,0x65,0x7f,0x81,0xe8,0x0, 0x8f,0xe9, +0xf8,0x0, 0x9d,0x9, 0x7f,0x82,0xe8,0x0, 0x8f,0xf9,0xe8,0x0, 0x9a,0x99,0x7f,0x83, +0xe8,0x1, 0x8f,0x89,0xf8,0x0, 0x8e,0xc9,0x7f,0x84,0xda,0x61,0x3c,0xe4,0x3c,0x63, +0xd8,0xea,0x3d,0x62,0x3d,0xe6,0xe8,0x40,0x3c,0xe8,0x3c,0x67,0xef,0xfb,0xda,0xc4, +0xe8,0x0, 0x9c,0x8e,0xe8,0x0, 0x9d,0x1e,0xf0,0xe, 0x3d,0x29,0xe3,0xff,0xc7,0x7f, +0xf8,0xb, 0x3e,0x1b,0xe0,0x43,0x3e,0x9e,0xe0,0x7, 0x99,0xeb,0xe0,0xb, 0x3a,0xaa, +0xe2,0x0, 0xce,0x80,0xe3,0xff,0xc5,0xff,0xe8,0xd, 0x3c,0xaa,0xf8,0xf, 0x3e,0x1b, +0xe0,0x43,0x3a,0x1b,0xe0,0x7, 0x99,0x7f,0xe3,0xff,0xc6,0xff,0xe0,0xf, 0x39,0xa9, +0xe0,0x6e,0x3d,0x2d,0xe3,0xff,0xc7,0xff,0xe2,0x0, 0xca,0x0, 0xe0,0x8, 0x3d,0x25, +0xe0,0x43,0x3a,0x1f,0xe3,0xff,0xc4,0x7f,0xe0,0xd, 0x39,0x2a,0xe0,0x6b,0x3d,0x28, +0xe3,0xff,0xc6,0xff,0xe2,0x0, 0xca,0x0, 0x3c,0xa3,0xe0,0x43,0x3c,0x1d,0xe3,0xff, +0xc4,0xff,0xe0,0x6f,0x3d,0x29,0x3d,0x22,0xe2,0x0, 0xcc,0x0, 0xe3,0xff,0xc5,0x7f, +0xe0,0x6d,0x3d,0x2a,0x3f,0x1b,0x3f,0x9d,0xe3,0xff,0xc7,0x7f,0xe3,0xff,0xc7,0xff, +0x3f,0x7f,0x3, 0x93,0x67,0x81,0xf8,0x0, 0xb5,0x9, 0xe8,0x0, 0xaf,0xd9,0x67,0x82, +0xe8,0x0, 0xb2,0x99,0xe8,0x0, 0xaf,0xe9,0x67,0x83,0xf8,0x0, 0xae,0xc9,0xe8,0x0, +0xaf,0xf9,0x67,0x84,0xe8,0x1, 0xaf,0x89,0xc0,0x10,0xf8,0x0, 0xf, 0x28,0xb, 0xe1, +0x8, 0xb7,0xf8,0x0, 0xc, 0x3e,0xc0,0x6c,0xe0,0x2, 0x1f,0xdd,0xf0,0x0, 0x1e,0xe, +0x8f,0x8f,0x2f,0x9f,0xea,0x12,0x7a,0x3, 0xf8,0x0, 0x8d,0x8c,0xaf,0x84,0xf0,0x0, +0x25,0xa1,0x17,0x1, 0xaf,0x4, 0x17,0x4, 0xe1,0x2f,0x3f,0x2f,0x2f,0x9a,0x17,0x82, +0xe9,0x2f,0x3f,0xab,0x2f,0x96,0xe0,0x1, 0x1f,0x69,0xea,0x12,0x79,0x82,0x8f,0xe, +0xe2,0x0, 0xcf,0x1, 0xaf,0x83,0x1, 0x19,0xc0,0x14,0xf8,0x0, 0xf, 0x28,0xb, 0xe1, +0xf8,0x0, 0x8d,0x8c,0xf0,0x0, 0x2d,0xed,0xea,0x12,0x7a,0x3, 0xf0,0x0, 0xad,0x84, +0xea,0x12,0x79,0x82,0xe0,0x1, 0x1f,0xe9,0x8f,0x8f,0x17,0x1, 0xe2,0x0, 0xcf,0x81, +0xaf,0x3, 0x1, 0xeb,0xf0,0x0, 0x25,0xea,0xf0,0x0, 0x15,0x80,0xf0,0x3, 0x1e,0x9c, +0xe0,0x0, 0x1b,0xd, 0xe0,0x2, 0x1a,0xfd,0xf0,0x1, 0x1c,0x72,0xf0,0x1, 0x1c,0xd7, +0xf0,0x1, 0x1d,0x44,0xe0,0x2, 0x1b,0xff,0xe8,0x40,0x39,0x6b,0x0, 0x90,0x8f,0x87, +0x3f,0xf2,0x1, 0x10,0xf0,0x0, 0xc5,0x81,0xf2,0x1, 0xc5,0xff,0xc1,0x1, 0xe8,0x0, +0x8f,0x8c,0xe2,0x1, 0xc1,0x7f,0x3f,0xf2,0xe0,0x0, 0x5, 0xc8,0xe8,0x0, 0x8f,0x8d, +0x2f,0xef,0xe0,0xe, 0x31,0x21,0x3f,0x16,0x8e,0xe, 0x8f,0xd5,0x8e,0x9e,0x3f,0xbc, +0xe8,0x0, 0xa7,0x8, 0x3f,0x9d,0x37,0xa1,0x3f,0x9e,0x97,0xf, 0xe8,0x0, 0x97,0xa9, +0x3f,0x7f,0x4, 0x65,0x8f,0x83,0x2f,0xb7,0x17,0x83,0xe8,0x3, 0x8d,0xb9,0x6f,0x96, +0x6f,0x97,0x25,0xbd,0x17,0x84,0x14,0x84,0x6f,0x96,0x3c,0x69,0x6f,0x97,0xe8,0x40, +0x3d,0xeb,0x3d,0x62,0xef,0xfb,0xdb,0xf2,0xe8,0x0, 0x8f,0x8a,0xe2,0x0, 0xcf,0x81, +0x1, 0xca,0x17,0x8a,0xe8,0xf, 0x3f,0xbb,0x3f,0x96,0xe0,0x7, 0x9e,0xef,0xe0,0x7, +0x97,0x7f,0xe0,0x7, 0xb6,0xff,0xe0,0x7, 0xb7,0x6f,0xe7,0xff,0x0, 0xbd,0xea,0x12, +0x7a,0x3, 0x87,0x4, 0xc7,0x1, 0xe2,0x1, 0xc7,0x7f,0xe2,0x0, 0xcf,0x32,0xe7,0xfe, +0x5, 0xf3,0x17,0x32,0xe7,0xfe,0x0, 0xf0,0xf8,0x0, 0xad,0x8c,0xc0,0x14,0xf8,0x0, +0xf, 0x28,0xb, 0xe1,0x8f,0x4, 0x14,0x86,0x17,0x86,0x7f,0x1, 0xe8,0x40,0x3d,0xeb, +0x3d,0x62,0x3c,0x69,0x6f,0x96,0x6f,0x97,0xde,0x79,0x0, 0xcf,0x8f,0xf5,0x3c,0xed, +0x3c,0x6c,0x3d,0x62,0x7f,0x84,0x7e,0x3, 0x7e,0x82,0xf0,0x0, 0x8f,0x65,0xef,0xfb, +0xd9,0x34,0xe8,0x0, 0x8f,0x8c,0x66,0x3, 0xe2,0x0, 0xcf,0x83,0x66,0x82,0x5, 0x84, +0x17,0x82,0x6f,0x96,0x6f,0x97,0xe2,0x1, 0xcc,0x7f,0x1, 0x4, 0x17,0x82,0x6f,0x96, +0x6f,0x97,0xe2,0x0, 0xce,0x1, 0x5, 0x86,0xf1,0xff,0xc7,0x7e,0xe8,0x40,0x3e,0x7e, +0x4, 0x3, 0x17,0x82,0x6f,0x96,0xe2,0x0, 0xce,0x81,0x5, 0x85,0x67,0x84,0xc7,0xfe, +0x3e,0xff,0x4, 0x3, 0x17,0x82,0x6f,0x97,0x14,0x96,0x3c,0x90,0x3c,0x62,0xe2,0x0, +0x7d,0x17,0xef,0xff,0xd7,0x7, 0x4c,0x16,0x4c,0x97,0xe7,0xff,0x0, 0x92,0x8f,0x8, +0x3f,0xe8,0x3f,0x79,0x2, 0x8c,0x8f,0x28,0x14,0x0, 0x3f,0x79,0x5, 0x89,0x8f,0x1f, +0x3f,0x7a,0x2, 0x86,0x8c,0x3f,0xe1,0x28,0x3c,0x1a,0x38,0x82,0x14,0x0, 0x38,0x82, +0xe0,0x2, 0x1f,0x42,0x9f,0x88,0x9e,0x8e,0x3f,0xfd,0x2, 0x84,0x17,0x80,0xb7,0x88, +0x38,0x82,0x9f,0xe, 0x3f,0xae,0xb7,0x88,0x38,0x82,0x8, 0xb1,0xc0,0x68,0xe4,0x0, +0x17,0x80,0xe0,0x2, 0x1e,0xfd,0x3c,0x1f,0x17,0x0, 0x86,0x5d,0x3c,0x9f,0x86,0xcd, +0x3d,0x1f,0xe0,0xf, 0x34,0x41,0x7f,0x1, 0x34,0xc1,0x7f,0x6, 0x35,0x41,0x7f,0x85, +0xe2,0x0, 0x7c,0x4, 0x17,0x90,0x7f,0x2, 0x6e,0x5, 0x6e,0x84,0x7c,0x83,0x7d,0x4, +0x77,0x8c,0xe0,0x5, 0xd0,0x3a,0xc0,0x18,0x8, 0xe1,0x8, 0xb1,0xc0,0x68,0xe0,0x2, +0x1e,0xfd,0xe4,0x0, 0x17,0x80,0x17,0x0, 0x86,0x5d,0x3c,0x1f,0x86,0xcd,0x3c,0x9f, +0x3d,0x1f,0x7f,0x1, 0xe0,0xf, 0x34,0x41,0x34,0xc1,0x35,0x41,0xe2,0x0, 0x7c,0x4, +0x7f,0x2, 0x7f,0x6, 0x6e,0x5, 0x6e,0x84,0x7c,0x83,0x7d,0x4, 0x7f,0x85,0x6d,0x87, +0xe0,0x5, 0xd0,0x1b,0xc0,0x18,0x8, 0xe1,0x8, 0xb1,0xc0,0x68,0xe4,0x0, 0x17,0x80, +0xe0,0x2, 0x1e,0xfd,0x3c,0x1f,0x17,0x0, 0x86,0x5d,0x3c,0x9f,0x86,0xcd,0xe0,0xf, +0x34,0x41,0x7f,0x1, 0x34,0xc1,0x7f,0x6, 0xe2,0x0, 0x7c,0x4, 0x7f,0x85,0x17,0xa0, +0x7f,0x2, 0x7f,0x4, 0x6e,0x5, 0x6e,0x84,0x7c,0x83,0x77,0x8c,0xe0,0x4, 0xdf,0xfd, +0xc0,0x18,0x8, 0xe1,0x8, 0xb1,0xe1,0xff,0xc0,0x18,0xe0,0x1, 0x1f,0x57,0xe0,0x2, +0x1e,0xfd,0xe4,0x0, 0x17,0x80,0xe2,0x0, 0x7d,0xae,0x3c,0x1f,0xf0,0x0, 0x93,0x2e, +0xf0,0x0, 0x93,0xbe,0x95,0x7e,0x3f,0x9b,0xe0,0x1, 0x95,0x8e,0xe0,0x1, 0x1f,0x79, +0xf0,0x0, 0x82,0x4d,0xf0,0x0, 0x82,0xdd,0x16,0x1, 0xe0,0xd, 0x34,0x41,0x37,0xc1, +0x37,0x41,0xe2,0x0, 0x7c,0x14,0xe2,0x0, 0x7c,0x84,0x7e,0x86,0x7f,0x88,0x7f,0x7, +0x75,0x95,0x6e,0x16,0x6e,0x17,0xf0,0x0, 0x6a,0x15,0xf0,0x0, 0x6a,0x94,0xf0,0x0, +0x73,0x12,0xf0,0x0, 0x73,0x93,0x75,0x14,0xe0,0x5, 0xd0,0x27,0x5c,0x7, 0x5f,0x5, +0xe0,0x43,0x3f,0x98,0xe2,0x0, 0xcf,0x80,0xe0,0x41,0x3e,0x4f,0xe0,0x43,0x3e,0x9e, +0x3d,0xe8,0xe0,0x6b,0x3d,0x2c,0xe2,0x0, 0xce,0x80,0x5, 0x13,0x3d,0xfe,0x5, 0xd, +0xe0,0x41,0x3f,0x48,0xe2,0x0, 0xcf,0x80,0x3f,0xee,0xe3,0xff,0xc7,0xff,0xe0,0x68, +0x3d,0x2f,0xe0,0x0, 0xc0,0x68,0x8, 0xe1,0x3c,0x6e,0xe0,0x0, 0xc0,0x68,0x8, 0xe1, +0xe0,0x41,0x3e,0xcd,0x3d,0xfd,0x2, 0x6d,0xe0,0x41,0x3c,0x4e,0xe3,0xff,0xc4,0x7f, +0xe0,0x0, 0xc0,0x68,0x8, 0xe1,0x8, 0xb1,0xc0,0x68,0xe0,0x2, 0x1f,0x7d,0xe4,0x0, +0x17,0x80,0x16,0x80,0x3c,0x9f,0xf0,0x0, 0x81,0xde,0xf0,0x0, 0x82,0x4e,0x3f,0x98, +0xe0,0x16,0x35,0x41,0xe0,0x17,0x35,0x42,0x17,0x1, 0x7e,0x81,0xe0,0x15,0x34,0xc1, +0x7e,0x86,0x3f,0x5a,0x37,0xc1,0xf2,0x0, 0xc3,0x1, 0xf2,0x0, 0xc3,0x81,0x3d,0x6c, +0x3c,0xeb,0xe2,0x0, 0x7c,0x4, 0x7e,0x82,0x7e,0x84,0xf0,0x0, 0x69,0x85,0xf0,0x0, +0x6a,0x4, 0xf0,0x0, 0x7a,0x83,0x7f,0x85,0x6f,0x7, 0xf0,0x0, 0x6b,0x1a,0xf0,0x0, +0x6b,0x9b,0xe0,0x5, 0xd2,0x16,0xc0,0x18,0x8, 0xe1,0x8, 0xb1,0xc0,0x68,0xe0,0x2, +0x1f,0x7d,0x17,0x80,0x86,0x5e,0x86,0xce,0xe9,0xff,0xc4,0x7e,0x7f,0x81,0xe0,0xe, +0x34,0x41,0xe2,0x0, 0x7c,0x4, 0x7f,0x82,0x7f,0x84,0x7f,0x85,0x7f,0x86,0x6e,0x5, +0x6e,0x84,0x7f,0x3, 0xe0,0x5, 0xd2,0x9a,0xc0,0x18,0x8, 0xe1,0x8, 0xb2,0xc0,0x70, +0xf0,0x1, 0x1b,0xe6,0xf0,0x1, 0x1a,0xe5,0xe0,0x1, 0x19,0x78,0xe4,0x0, 0x17,0x80, +0xe0,0x1, 0x1f,0x7f,0xf0,0xc, 0x3a,0x9f,0xf0,0xd, 0x3b,0x9f,0xe8,0x0, 0xb4,0x5, +0x3f,0x92,0xf0,0x99,0x12,0xd6,0xf0,0x0, 0x13,0x1, 0xf0,0x15,0x3a,0x9e,0x36,0x41, +0x36,0xc1,0x37,0xc1,0xe0,0x99,0xc7,0x7e,0xe2,0x0, 0x7c,0x4, 0x7e,0x2, 0x7e,0x83, +0x7f,0x84,0xf0,0x0, 0x6b,0x4, 0xf0,0x0, 0x6b,0x5, 0xe8,0x0, 0xb4,0x85,0xe8,0x0, +0xb5,0x7, 0xb5,0x8e,0xe0,0x5, 0xd0,0xa, 0x9c,0x2, 0xc0,0x10,0x9, 0x61,0xe0,0x3, +0x1f,0xc7,0x8f,0x8f,0xe2,0x0, 0xcf,0x83,0x1, 0x3, 0x14,0x1, 0x38,0x82,0x8, 0xb2, +0x39,0x68,0x3c,0x69,0xef,0xff,0xd3,0x51,0xe0,0x2, 0x1f,0x93,0xe0,0x1, 0x8f,0x1f, +0xe2,0x0, 0xcf,0x5, 0x24,0x7, 0x1, 0x8, 0xe0,0x1, 0x8c,0x1f,0xe0,0x28,0x39,0x8, +0x9, 0x61,0x1, 0xfb,0x0, 0xfc,0xe2,0x1, 0xc1,0x7d,0x14,0x0, 0x29,0x7a,0xea,0x12, +0x7f,0xa2,0x8e,0xf, 0x17,0x1, 0x3f,0x1c,0xe0,0x1, 0x1e,0xc6,0xe2,0x1, 0xc7,0x7f, +0xe2,0x0, 0xcf,0x3, 0x3e,0x9c,0x8c,0xd, 0x2, 0x83,0xaf,0xf, 0x9, 0x61,0xa9,0xf, +0x9, 0x61,0xe0,0x3, 0x1f,0xac,0xe4,0x0, 0xc4,0x8e,0xe0,0xe, 0x3f,0x99,0x8f,0x1e, +0x27,0x5, 0x17,0x1, 0xe0,0x2e,0x3c,0xe, 0x2f,0xd, 0x3f,0x99,0x8f,0xbf,0x27,0x89, +0x17,0x84,0xe0,0x28,0x3c,0xf, 0x24,0x5, 0xe0,0x1, 0x1f,0xe9,0x17,0x0, 0xaf,0xf, +0x38,0x82,0xe0,0x1, 0x1f,0x69,0x16,0x80,0xae,0x8e,0x0, 0xf0,0x8, 0xb7,0xe0,0x2, +0x1b,0xc8,0x89,0x87,0xef,0xfe,0xd1,0x3, 0x24,0x7e,0xe0,0x0, 0x19,0x3b,0xe0,0x2, +0x8a,0x2, 0xe0,0xf, 0x39,0x14,0xe0,0x6, 0x8b,0xf, 0x8f,0x4f,0x2f,0x1f,0xe0,0x1, +0x1a,0xe9,0x8f,0x85,0xe2,0x0, 0xcf,0x81,0x1, 0x3f,0xe0,0x3, 0x1f,0xc7,0x8f,0x8f, +0xe2,0x0, 0xcf,0x83,0x1, 0x39,0xe0,0x2, 0x8f,0x2, 0xe0,0x2, 0x8f,0x92,0x3f,0x7f, +0xe0,0x0, 0x3, 0xe6,0xef,0xff,0xd2,0xac,0xef,0xff,0xd2,0xb6,0x24,0x6, 0xe0,0x2, +0x1f,0xe6,0x8f,0x8f,0xe0,0x0, 0x2f,0xd7,0xb, 0xe1,0x8f,0x4f,0xe0,0x2, 0x1e,0x93, +0xc7,0x7f,0xe0,0x5, 0xaf,0x3d,0x8f,0xcf,0xe0,0x1, 0x1a,0xe9,0xe2,0x0, 0xcf,0x81, +0xe0,0x0, 0x1, 0x5e,0x17,0x0, 0xaf,0x5, 0xe0,0xf, 0x39,0x14,0x17,0x0, 0xaf,0x4f, +0x3c,0x66,0xe0,0x1, 0x89,0x9f,0x3c,0xe3,0xef,0xfb,0xdb,0xa2,0x3c,0xe3,0x3c,0x64, +0xe0,0x0, 0xdb,0xf3,0xe0,0x2, 0x8f,0x82,0xc7,0x81,0xe0,0x2, 0xaf,0x82,0x8f,0x85, +0xe2,0x0, 0xcf,0x81,0x1, 0xc3,0xe0,0x2, 0x1f,0xe6,0x8f,0x8f,0x27,0xc5,0xe2,0x0, +0xcb,0x5, 0xe0,0x0, 0x1, 0x40,0x17,0x5, 0x3f,0x33,0xe0,0x3, 0x1f,0xb0,0x3f,0x9e, +0x8c,0xcf,0xe0,0x1, 0x1f,0xf1,0xa4,0xf, 0xef,0xfe,0xd1,0xca,0x3c,0xe3,0x3c,0x66, +0xdf,0x47,0x3a,0x68,0x3c,0xe3,0x3c,0x66,0xe0,0x0, 0xda,0x4c,0x2a,0x2f,0xe2,0x0, +0xcb,0x4, 0xe7,0xff,0x1, 0xaa,0xe0,0x2, 0x1f,0x12,0x9f,0x8e,0x37,0xcf,0xe7,0xff, +0x27,0xa4,0x97,0x8e,0xe2,0xff,0xc7,0xff,0xb7,0x8e,0x17,0x80,0xaf,0x85,0xe7,0xff, +0x0, 0x9c,0x3c,0xe6,0x3c,0x63,0xb, 0xa1,0xe0,0x1c,0x0, 0xd4,0xef,0xfe,0xd9,0xba, +0xac,0x5, 0xe0,0x1, 0xd8,0x43,0xe0,0x1, 0xd7,0x8d,0xef,0xff,0xd2,0xf7,0x8c,0x7, +0xe0,0x0, 0xdd,0xf3,0xef,0xfd,0xdf,0xff,0xe7,0xff,0x0, 0x8e,0xaf,0x85,0xe7,0xff, +0x0, 0xa5,0x17,0x0, 0xaf,0x5, 0xe7,0xff,0x0, 0x80,0xef,0xfb,0xdb,0x7b,0x3c,0xe3, +0x3c,0x66,0xe0,0x0, 0xdd,0x7f,0xe0,0x1, 0x1f,0xe8,0xab,0xf, 0xe0,0x2, 0x1f,0x93, +0xe0,0x5, 0xab,0x4f,0xe0,0x3, 0x1f,0x8f,0xa9,0x8f,0x0, 0xc2,0x8, 0xb3,0xe0,0x0, +0x19,0xbb,0x11,0x0, 0xdf,0x4c,0xc1,0x1, 0xe0,0x2, 0x8f,0x93,0xe2,0x1, 0xc1,0x7f, +0x39,0x7f,0x4, 0xf9,0xe0,0x2, 0x1f,0x93,0xe0,0x5, 0x8c,0x4f,0xe0,0x3, 0x1f,0x8f, +0x8c,0x8f,0x9, 0xa1,0xe7,0x76,0x0, 0xa4,0xe0,0x1, 0x1f,0x42,0xe0,0x2, 0x1f,0x93, +0xe0,0xe, 0x85,0x9e,0x16,0x0, 0xae,0xf, 0x15,0x2, 0xad,0xaf,0xe0,0x2, 0x1e,0xe6, +0xe0,0xe, 0x85,0xae,0x8e,0x8d,0xad,0xbf,0x3d,0x5d,0xe0,0xe, 0x85,0xde,0xe0,0x3, +0xad,0xef,0x2d,0x2d,0xe0,0x10,0x86,0x5e,0xe0,0x10,0x85,0xee,0x3e,0x1b,0xe0,0x2, +0xae,0x6f,0xe0,0xe, 0x86,0x6e,0xe0,0x3, 0xae,0x7f,0x16,0x3f,0x3e,0x5d,0xe0,0x11, +0x8e,0x8e,0xe0,0x10,0x8d,0xfe,0x36,0xa6,0x3e,0xcc,0xe0,0xc, 0x35,0xa7,0x3e,0xcc, +0xe0,0x4, 0xae,0xef,0x2d,0x9b,0xe0,0xd, 0x86,0x5e,0xe0,0xd, 0x86,0xfe,0xe0,0xa, +0xae,0xf, 0xe0,0xa, 0xae,0x9f,0xe0,0x0, 0x2d,0x72,0xe0,0xd, 0x85,0xee,0xe0,0xe, +0x87,0xe, 0xe0,0xa, 0xad,0xaf,0xe0,0xa, 0xaf,0x3f,0x0, 0x97,0xe0,0x10,0x85,0xde, +0xe0,0x2, 0xad,0xef,0xe0,0x3, 0xae,0x7f,0x0, 0xd9,0xe0,0xd, 0x86,0x6e,0xe0,0xe, +0x86,0x8e,0xe0,0xa, 0xae,0xf, 0xe0,0xa, 0xae,0x9f,0xe0,0x0, 0x25,0x4e,0x17,0x0, +0xe0,0xa, 0xaf,0x2f,0xe0,0xa, 0xaf,0x3f,0x17,0x0, 0xe0,0x1, 0x1e,0x8e,0xe0,0x2, +0x1e,0x44,0x86,0x8d,0x15,0x81,0xae,0xdf,0xaf,0x6f,0xe0,0x1, 0xaf,0x3f,0xe0,0x2, +0xaf,0xf, 0xe0,0x0, 0x1e,0xcd,0xe0,0x1, 0xaf,0x7f,0x86,0x8d,0xe0,0x1, 0xae,0xcf, +0xe0,0x1, 0xaf,0x5f,0x86,0xbc,0xe0,0x1, 0xaf,0x6f,0x87,0x4c,0xe0,0x4, 0xae,0x8f, +0xe0,0x4, 0xaf,0x1f,0xe0,0x1, 0x1f,0xd, 0x86,0x5c,0x8e,0x8e,0xe0,0x1, 0x1f,0xc, +0xe0,0x4, 0xae,0x2f,0x36,0xa8,0xe0,0x3, 0x1e,0xe, 0x8f,0xe, 0x86,0x1c,0x3f,0x4d, +0xe0,0x3, 0x1e,0xc3,0xe0,0x5, 0xae,0x1f,0xe0,0x6, 0xad,0x8f,0x8e,0x8d,0xe0,0x5, +0xb7,0x5f,0x26,0xa2,0xe0,0x3, 0x1f,0x38,0xa7,0xe, 0xa7,0x4e,0xe2,0x0, 0xc7,0x1, +0x27,0x1b,0x16,0x85,0xe0,0x1, 0xae,0x9f,0x17,0x0, 0xe0,0x2, 0xaf,0x5f,0xe0,0x2, +0xaf,0x1f,0xaf,0x4f,0x38,0x82,0xe0,0xd, 0x85,0xde,0xe0,0xd, 0x87,0x7e,0xe0,0xa, +0xad,0xaf,0xe0,0xa, 0xaf,0x3f,0xe7,0xff,0x0, 0xb1,0xe0,0xa, 0xad,0xaf,0xe0,0xa, +0xad,0xbf,0xe7,0xff,0x0, 0xab,0x16,0x0, 0xe0,0x1, 0xae,0x1f,0x17,0x0, 0xe0,0x2, +0xaf,0x5f,0xe0,0x2, 0xaf,0x1f,0xaf,0x4f,0x38,0x82,0x0, 0x0, 0xe0,0x2, 0x1f,0x76, +0x34,0xa6,0xf0,0x2, 0x1b,0xf5,0x3c,0x19,0x17,0x80,0xb4,0xe, 0x17,0x0, 0x3d,0xef, +0xe8,0x0, 0xaf,0x7, 0x3e,0xef,0x15,0x1, 0xe0,0xe, 0x34,0x1f,0x16,0x1, 0xe2,0x0, +0xc7,0x1, 0xc7,0x81,0x3e,0x1d,0x27,0x5, 0x3e,0xec,0xe2,0x1, 0xc6,0xff,0x3d,0xea, +0xe2,0x0, 0xcf,0x8c,0x1, 0xf2,0x2d,0x82,0x38,0x82,0xe8,0x0, 0xae,0x87,0x38,0x82, +0x8, 0xb1,0xf0,0x2, 0x1b,0xfd,0xe0,0x1, 0x1c,0x8b,0xe8,0x40,0x3c,0x67,0xe0,0x19, +0x15,0x1c,0xe0,0x5, 0xd2,0xef,0xe0,0x2, 0x1f,0xe6,0xf0,0x40,0x3b,0xe8,0x87,0x8f, +0xe2,0x0, 0xc7,0x82,0x2f,0xbe,0xe0,0x3, 0x8e,0x98,0xe0,0x3, 0x8f,0x88,0x97,0x58, +0x96,0x68,0x3f,0x9d,0xe0,0x2, 0x1e,0xfc,0x3f,0x1c,0xb7,0xd, 0xe0,0x2, 0x1f,0x74, +0xb7,0x8e,0x17,0x80,0xe0,0x1, 0x1e,0xc2,0xe0,0x2, 0x1c,0x75,0xe0,0xe, 0x8f,0x6d, +0xe0,0xe, 0x8d,0xdd,0x37,0x26,0x3d,0x9e,0xe0,0x2, 0x1f,0x76,0x3d,0x6f,0xb5,0x8e, +0x17,0x0, 0xaf,0x8, 0x3e,0xef,0x14,0x81,0xe0,0xe, 0x35,0x9f,0x16,0x1, 0xe2,0x0, +0xc7,0x1, 0xc7,0x81,0x3e,0x1d,0x27,0x5, 0x3e,0xec,0xe2,0x1, 0xc6,0xff,0x3d,0x69, +0xe2,0x0, 0xcf,0x8c,0x1, 0xf2,0x2d,0x1f,0xe0,0x1, 0x1f,0xc4,0x8f,0x8f,0x27,0x93, +0xe8,0x0, 0x8f,0xc7,0xe0,0x2, 0x1f,0x73,0x37,0xa6,0xc7,0xff,0xb7,0x8e,0x8, 0xe1, +0xe0,0x2, 0x1f,0xfc,0x96,0xd8,0xe0,0x3, 0x8f,0x8, 0xb6,0x8f,0xe0,0x2, 0x1f,0xf4, +0xb7,0xf, 0x0, 0xc8,0xe8,0x0, 0x8f,0xd7,0xe0,0x2, 0x1f,0x73,0x37,0xa6,0xc7,0xff, +0xb7,0x8e,0x8, 0xe1,0xae,0x88,0x0, 0xe1,0x8, 0xb3,0xe0,0x1, 0x19,0x7f,0xe0,0x1, +0x1f,0xee,0xe0,0xc, 0x11,0xd2,0xe0,0x99,0x16,0xcc,0xe0,0x99,0x17,0x50,0x3e,0x92, +0x3f,0x12,0x3d,0x63,0x3c,0x6f,0x14,0x80,0xbf,0x8d,0xb9,0xe, 0xe0,0x5, 0xd2,0xbc, +0x3d,0x63,0x14,0x80,0x3c,0x62,0xe0,0x5, 0xd2,0xb7,0xe0,0x9c,0xc1,0x16,0x17,0x80, +0xaf,0x82,0x9, 0xe1,0x8, 0xb2,0xe0,0x1, 0x1f,0xc2,0xe0,0x1a,0x17,0x24,0x3f,0x1f, +0xe0,0x1a,0x16,0x25,0xe0,0x1a,0x15,0x2a,0x8e,0x8e,0x3e,0x1f,0x3d,0x1f,0xe0,0x1a, +0x17,0x26,0x8d,0x8c,0x8c,0xa, 0x3f,0x1f,0xe0,0x1a,0x16,0x27,0xe0,0x1a,0x14,0xab, +0xe0,0x1a,0x15,0x2c,0x8f,0xe, 0x3c,0x9f,0x3d,0x1f,0x3e,0x1f,0x36,0xa8,0xe0,0x2, +0x19,0x40,0x8e,0xc, 0x3d,0xcd,0xf0,0x1a,0x13,0xad,0x8e,0x89,0x8c,0x8a,0xe0,0x1a, +0x15,0x34,0xf0,0x17,0x3b,0x9f,0x3d,0x1f,0x37,0x28,0x35,0xc5,0x8d,0xa, 0x3e,0x4e, +0x34,0x28,0xe8,0x0, 0x8f,0x7, 0xe0,0x1a,0xc7,0xb5,0xad,0x82,0x36,0x45,0x8f,0x8f, +0xe0,0xb, 0x34,0xa8,0x3e,0xc8,0xae,0x12,0x36,0xc5,0xe0,0xc, 0x35,0x28,0x3f,0x4b, +0xae,0xa2,0x37,0x45,0x3f,0xcc,0xe0,0x1, 0x1c,0x8a,0xe0,0x2, 0x1c,0x3f,0xaf,0x32, +0x37,0xc5,0xe0,0x0, 0x15,0x6a,0xaf,0xd2,0xe0,0x5, 0xd2,0x2c,0xe0,0x4, 0x8f,0xe2, +0xe0,0x1, 0x1c,0xd3,0xe0,0x41,0x3f,0x8f,0x15,0x20,0xe0,0x22,0x14,0x40,0xe0,0x6, +0xaf,0xc2,0xef,0xfe,0xd6,0xff,0x9, 0x21,0xe0,0x2f,0x0, 0x93,0x8, 0xb6,0xe0,0x1, +0x1f,0xc2,0xe0,0x1a,0x15,0xa8,0xe0,0x1a,0x16,0x2e,0xe0,0x1a,0x16,0xb2,0x3d,0x9f, +0x3e,0x1f,0x3e,0x9f,0xe0,0x1a,0x14,0x2a,0xe0,0x1a,0x14,0xac,0xe0,0x1a,0x15,0x30, +0x8a,0x8b,0x8a,0xc, 0x89,0x8d,0x3c,0x1f,0x3c,0x9f,0x3d,0x1f,0xe0,0x1a,0x11,0x24, +0xe0,0x1a,0x10,0xa6,0xe0,0x1a,0x15,0xa9,0xe0,0x1a,0x16,0x2f,0xe0,0x1a,0x16,0xb3, +0xf0,0x1a,0x13,0xa5,0xe0,0x1a,0x13,0x27,0xf0,0x0, 0x89,0x88,0xf0,0x0, 0x8a,0x9, +0xf0,0x0, 0x8a,0x8a,0xf0,0x17,0x3b,0x9f,0x3b,0x1f,0x39,0x1f,0x38,0x9f,0x3d,0x9f, +0x3e,0x1f,0x3e,0x9f,0xe0,0x1a,0x14,0x2b,0xe0,0x1a,0x14,0xad,0xe0,0x1a,0x15,0x31, +0xf8,0x0, 0x8b,0x7, 0x89,0x2, 0xf0,0x0, 0x8b,0x86,0x88,0x81,0x8d,0x8b,0x8e,0xc, +0x8e,0x8d,0x3c,0x1f,0x3c,0x9f,0x3d,0x1f,0xe0,0x1a,0x13,0x1a,0xf0,0x1a,0x10,0x1c, +0xf0,0x1a,0x10,0xe4,0xf0,0x1a,0x11,0x1d,0x8c,0x8, 0x8c,0x89,0x8d,0xa, 0x3b,0x1f, +0xf0,0x10,0x38,0x1f,0xf0,0x11,0x38,0x9f,0xf0,0x12,0x39,0x1f,0x32,0xa8,0x32,0x28, +0x31,0xa8,0xe0,0x1, 0x1f,0x57,0x83,0x6, 0xf8,0x0, 0x80,0x0, 0xf8,0x0, 0x88,0x81, +0xf8,0x0, 0x81,0x2, 0x31,0x28,0x30,0xa8,0x3d,0xc5,0xf0,0x13,0x31,0xa8,0xf0,0x14, +0x32,0x28,0x3e,0x44,0xf0,0x15,0x32,0xa8,0x3e,0xc3,0xf0,0x16,0x3b,0x42,0xf0,0x17, +0x3b,0xc1,0xe0,0x41,0x3d,0xcb,0xe0,0x41,0x3e,0x4c,0xe0,0x41,0x3e,0xcd,0xe8,0x8, +0x3c,0x43,0xe8,0x9, 0x3c,0xc4,0xe8,0xa, 0x3d,0x45,0xe0,0x1a,0x12,0x1e,0xe0,0x1a, +0x11,0xb4,0x3a,0x1f,0x39,0x9f,0xb6,0x6e,0xe0,0x1a,0x11,0x1f,0xe0,0x1, 0xb6,0x8e, +0x39,0x1f,0xab,0xe, 0xe0,0x1a,0xc7,0xb5,0xf0,0x0, 0xa8,0x1e,0x10,0x80,0xf0,0x0, +0xb3,0x1e,0xf0,0x0, 0xb3,0xae,0xb5,0xbe,0xb4,0x4e,0xb4,0xde,0xb5,0x7e,0xf0,0x2, +0xa8,0xee,0xf0,0x2, 0xa9,0x7e,0x8d,0x84,0x8e,0x3, 0x8e,0x82,0x8f,0x8f,0x35,0xa8, +0x36,0x28,0x3e,0xcb,0x3f,0xcc,0xe0,0x1, 0xb6,0xce,0xe0,0x1, 0xb7,0x9e,0xe0,0x3, +0xa8,0xae,0xe0,0x3, 0xa8,0xbe,0xb, 0x61,0x8, 0xb1,0xe0,0x0, 0x1c,0xd, 0xe0,0x3, +0x15,0x40,0x14,0x80,0xe0,0x5, 0xd1,0xa0,0xe0,0x1, 0x1f,0xc3,0xe0,0x0, 0x1c,0x4, +0x8d,0xf, 0xe0,0x1, 0x14,0xff,0xe4,0x0, 0xc5,0xa, 0x8, 0xa1,0xe0,0xa3,0x0, 0x94, +0x8, 0xb2,0xe0,0x1, 0x1f,0x8e,0xe0,0x2, 0x1c,0x5e,0x89,0xf, 0xe0,0x1, 0x14,0xff, +0xe4,0x0, 0xc1,0xa, 0x3d,0x62,0xe0,0x5, 0xd1,0x87,0xe0,0x2, 0x1c,0x59,0x3d,0x62, +0xe0,0x1, 0x14,0xff,0xe0,0x5, 0xd1,0x80,0xe0,0x2, 0x1c,0x58,0x3d,0x62,0xe0,0x1, +0x14,0xff,0xe0,0x5, 0xd1,0x79,0xe0,0x2, 0x1c,0x57,0xe0,0x3, 0xd8,0xc3,0xe0,0x2, +0x1e,0xdf,0x17,0x0, 0x3f,0xed,0xe1,0x80,0xb7,0x1f,0xc7,0x82,0xb7,0x1d,0xe1,0x80, +0xb7,0x1f,0xe1,0x80,0xb7,0x1f,0xe1,0x80,0xb7,0x1f,0xe1,0x80,0xb7,0x1f,0xe1,0x80, +0xb7,0x1f,0xe1,0x80,0xb7,0x1f,0xb7,0xf, 0x9, 0x61,0x8, 0xb4,0xdd,0x4e,0xde,0x29, +0xde,0x8c,0xe0,0x1, 0x1f,0xc2,0xe0,0x1a,0x15,0x89,0x3d,0x9f,0xe0,0x3, 0x1f,0x30, +0x82,0xb, 0xe0,0x1b,0x15,0x5e,0x3d,0x1f,0xe0,0x1a,0x16,0xe, 0x8c,0x8a,0x3e,0x1f, +0x84,0x1b,0xaa,0xe, 0xe0,0x1a,0x16,0x93,0x82,0x3b,0xf0,0x0, 0x82,0xab,0xf0,0x0, +0x83,0x4b,0xf0,0x0, 0x83,0x8c,0xe0,0x1b,0x15,0x5f,0x80,0xcc,0x3e,0x9f,0xaa,0x3e, +0x3d,0x1f,0x81,0x9c,0x81,0x3c,0xac,0x1e,0x15,0x85,0x84,0x2c,0x8d,0xa, 0xf0,0x0, +0x80,0xd, 0x3d,0x9e,0xf0,0x0, 0xab,0xde,0x16,0xa, 0xf0,0x0, 0xab,0x4e,0x3e,0x1e, +0xf0,0x0, 0xaa,0xae,0x34,0xa8,0xa8,0xcb,0x3d,0x49,0xf0,0x0, 0x80,0x9d,0xf0,0x0, +0x81,0x2d,0xf0,0x0, 0x81,0xbd,0xf0,0x0, 0x82,0x4d,0xa9,0x3b,0xf0,0x1b,0x12,0xe2, +0xac,0x2b,0xf0,0x15,0x3a,0x9f,0xa9,0x9b,0xf0,0x1b,0x13,0xe3,0xe0,0x3, 0x1e,0x84, +0xf0,0x1, 0xa8,0x2e,0xf0,0x17,0x3b,0x9f,0xf0,0x0, 0xa8,0x9c,0xe0,0x1b,0x14,0xe0, +0xf0,0x0, 0xa9,0x2c,0xf0,0x1b,0x13,0x61,0xf0,0x0, 0xa9,0xbc,0xe0,0x1b,0x14,0x64, +0xf0,0x0, 0xaa,0x4c,0xe7,0xef,0x16,0x7f,0xb5,0x1d,0xf0,0x16,0x3b,0x1f,0x97,0x5d, +0xe8,0x0, 0x8d,0x5, 0x3c,0x1f,0x3c,0x9f,0x3f,0x5c,0xe0,0x1b,0xc7,0xe5,0xe8,0x0, +0x8e,0x7, 0xf7,0xf7,0x13,0xff,0x35,0x28,0x8c,0x89,0xe8,0xe, 0x3f,0x57,0xf0,0x0, +0x83,0x88,0x84,0xf, 0xe7,0xfe,0x17,0xff,0xe8,0x0, 0x8d,0x86,0x3f,0xde,0xe0,0xe, +0x3e,0x4a,0xe7,0xff,0x16,0x3f,0x34,0xa8,0x3f,0xdc,0x3d,0xc9,0xb7,0xdd,0xb5,0xad, +0xb7,0x3d,0xf0,0x1, 0xab,0x8d,0xe0,0x1, 0xac,0x1d,0xef,0xff,0xd0,0xfd,0xde,0x7f, +0xdf,0x2c,0xdf,0x3f,0xe0,0x1, 0xd8,0x2a,0xef,0xfe,0xdf,0x3c,0xa, 0x21,0xe0,0x11, +0x0, 0x99,0xe0,0x1, 0x1f,0x89,0x8f,0xf, 0xe0,0x1, 0x1f,0x88,0x37,0x28,0x8f,0x8f, +0x3f,0xce,0xe2,0x1, 0xcf,0xdf,0x3c,0x6f,0x2, 0x83,0xe0,0x1, 0x14,0x60,0x34,0x45, +0xe2,0x1, 0xc4,0x7f,0x38,0x82,0x0, 0x0, 0xe0,0x0, 0x1f,0x8e,0x8c,0xf, 0xe0,0x0, +0x24,0x4e,0xe0,0x1, 0x1f,0xc2,0xc4,0x7f,0xe2,0x1, 0xc4,0x7f,0x16,0x1, 0xe0,0xe, +0x8c,0x9f,0xf0,0xe, 0x8a,0x2f,0x3e,0x18,0xe0,0x0, 0x1f,0x8d,0x14,0x0, 0x36,0x21, +0xf7,0xff,0x12,0xfd,0xf7,0xff,0x11,0xfd,0xf0,0x15,0x3a,0x99,0xf8,0x13,0x39,0x94, +0xc4,0xff,0xf1,0xff,0xc2,0x7f,0x3e,0x1f,0x3d,0xe8,0xf0,0x40,0x3b,0x68,0xf0,0x0, +0x13,0x81,0x0, 0x95,0xe8,0x40,0x3f,0x75,0x3, 0x17,0x15,0x81,0xe8,0x2a,0x3e,0x86, +0x2d,0x1e,0xe0,0x2e,0x3f,0x9, 0x2f,0x1b,0xe8,0x40,0x3e,0xf4,0xe8,0x40,0x3f,0x67, +0xc7,0x82,0xe0,0x6e,0x39,0xa8,0x3e,0x7f,0x3c,0x6e,0x1, 0x15,0x8f,0xf, 0x8e,0x9f, +0xe2,0x0, 0xcf,0x2, 0x2, 0xe8,0xe2,0x0, 0xce,0x82,0x5, 0x88,0xe8,0x40,0x3e,0xf3, +0xe8,0x40,0x3d,0x67,0xe0,0x6a,0x3b,0x2b,0x3d,0xea,0x2f,0x61,0xc7,0x82,0x3e,0x7f, +0x14,0x1, 0x1, 0xed,0x3c,0x5b,0xe2,0x1, 0xc4,0x7f,0x38,0x82,0x8, 0xb7,0xf8,0x0, +0xc, 0x3c,0xe0,0x3, 0x1a,0x99,0xdf,0xa9,0xe0,0x0, 0x19,0x8e,0xac,0x5, 0xf0,0x0, +0x8d,0x83,0x24,0x3, 0xf0,0x0, 0x2d,0xe6,0xe0,0x2, 0x1b,0xbc,0x17,0x80,0xaf,0x87, +0xaf,0x85,0xf0,0x0, 0x25,0xe3,0xf0,0x0, 0x15,0x80,0xe0,0x3, 0x1a,0x1c,0xf0,0x0, +0x1c,0x9a,0xe0,0x0, 0x1b,0xd, 0xf0,0x2, 0x1c,0x5e,0xf0,0x2, 0x1d,0x7f,0xe8,0x40, +0x39,0x6b,0x0, 0x8b,0xe8,0x0, 0x8f,0x8a,0x3f,0xf2,0x1, 0x9, 0xc1,0x1, 0x8f,0x83, +0xe2,0x1, 0xc1,0x7f,0x3f,0xf2,0x5, 0xb9,0x8f,0x84,0x2f,0xf5,0xe8,0x0, 0x8f,0x89, +0x2f,0xf6,0x3c,0x62,0xe0,0x1, 0xda,0x10,0xe0,0xf, 0x31,0x21,0x3f,0x96,0xf0,0x40, +0x3e,0x68,0x8c,0x9f,0x8c,0xf, 0xe0,0x1, 0xda,0x19,0xe0,0x43,0x3c,0x18,0xf0,0x40, +0x3e,0x78,0x4, 0x65,0x3c,0x62,0xe0,0x1, 0xd9,0xd8,0x24,0x61,0x17,0x8a,0x3f,0xb2, +0x17,0xa, 0xe0,0x0, 0xc7,0xfc,0x3f,0x96,0xe8,0xe, 0x3f,0x3b,0x94,0x8f,0x95,0x1f, +0x95,0xaf,0x96,0x3f,0x96,0xcf,0xe8,0xf, 0x3f,0x18,0xb4,0x8f,0xc1,0x1, 0xb5,0x1f, +0xe2,0x1, 0xc1,0x7f,0xb5,0xaf,0xf0,0x0, 0xc5,0x81,0xb6,0x3f,0xf2,0x1, 0xc5,0xff, +0xb6,0xcf,0x8f,0x83,0x3f,0xf2,0x2, 0xc9,0x87,0x5, 0xaf,0x7, 0xe0,0x0, 0x1f,0x7, +0xaf,0x8e,0xe0,0x2, 0x1f,0xdf,0xf0,0x0, 0xad,0x8f,0xf8,0x0, 0xe, 0x28,0xb, 0xe1, +0xe0,0x2, 0x1b,0xbc,0xe7,0xff,0x0, 0xa1,0xe8,0x40,0x3f,0xeb,0x0, 0xee,0xe7,0xff, +0x0, 0x87,0x0, 0x0, 0xe0,0x0, 0x1f,0x97,0xe0,0x0, 0x1d,0x96,0x16,0x7f,0x17,0x0, +0x16,0x83,0xae,0xf, 0xc7,0x84,0x3f,0xfb,0xe0,0x40,0xaf,0x3f,0xe0,0x40,0xae,0xaf, +0xe0,0x40,0xaf,0x1f,0x1, 0xf7,0x38,0x82,0xe0,0x0, 0x1f,0x8e,0x8f,0x8f,0x2f,0x86, +0xe0,0x2, 0x1f,0xdf,0x8f,0x8f,0x2f,0x82,0x0, 0xe6,0x38,0x82,0xe0,0x3, 0x1f,0x4, +0x3f,0xe8,0x94,0x5e,0xe2,0x10,0xc4,0x0, 0x24,0xc, 0xe0,0x0, 0x1f,0x8e,0x14,0x0, +0x8f,0x8f,0x2f,0x86,0xe0,0x2, 0x1f,0xdf,0x8f,0x8f,0xe0,0x1, 0x27,0x87,0x38,0x82, +0xe2,0x0, 0xcd,0xa, 0x2, 0xfd,0xf0,0x0, 0x1b,0x97,0x35,0x22,0xf0,0xe, 0x3b,0x9a, +0xe0,0x43,0x3c,0xf, 0x17,0x83,0xaf,0xae,0x3f,0x68,0xf0,0x2, 0x1b,0x7d,0xe0,0x1, +0x1f,0xf2,0xe8,0x0, 0x8d,0xd6,0xa6,0xf, 0x0, 0x85,0x97,0x8f,0xe2,0x3, 0xcf,0xf4, +0x5, 0x10,0x3e,0xee,0xe2,0x1, 0xc6,0xff,0x17,0x7f,0x3f,0x1d,0xe0,0x43,0x3f,0xe, +0xe0,0xf, 0x3f,0x3b,0xe2,0x0, 0xcf,0x0, 0x3f,0x99,0x37,0xa1,0x3f,0x9c,0x3, 0x6e, +0xf8,0x0, 0x8a,0xe6,0xf8,0x43,0x3b,0x5, 0x0, 0x85,0x97,0x8f,0xe2,0x3, 0xcf,0xf4, +0x5, 0x10,0x3f,0x68,0xe2,0x1, 0xc7,0x7f,0x14,0x1, 0x3c,0x1e,0xe0,0x43,0x3c,0x8, +0xe0,0xf, 0x3c,0x3b,0xf0,0x40,0x3b,0x78,0x3f,0x99,0x37,0xa1,0x3f,0x9c,0x2, 0x6e, +0xf1,0xff,0xc2,0xff,0xf0,0x40,0x3a,0xfe,0xe0,0x0, 0x1, 0x47,0x2e,0xb8,0xe0,0x43, +0x3c,0x89,0x3e,0xbb,0x3f,0xe9,0x0, 0x85,0x97,0xe, 0xe2,0x3, 0xcf,0x74,0x5, 0xf, +0x3c,0x6f,0xe2,0x1, 0xc4,0x7f,0x17,0xff,0x3f,0x98,0xe0,0x43,0x3f,0x8f,0xe0,0xe, +0x3f,0x9d,0xe2,0x0, 0xcf,0x80,0x37,0x21,0x3f,0x1c,0x3, 0x6f,0xe0,0x43,0x3d,0x8b, +0x0, 0x85,0x97,0x8f,0xe2,0x3, 0xcf,0xf4,0x5, 0xe, 0x3f,0x69,0xe2,0x1, 0xc7,0x7f, +0x14,0x81,0x3c,0x9e,0xe0,0x43,0x3c,0x89,0xe0,0xf, 0x3c,0x9d,0x3d,0xf9,0x37,0xa1, +0x3f,0x9c,0x2, 0x70,0x3f,0x28,0xe2,0x1, 0xc7,0x7f,0xe2,0x0, 0xcf,0x3, 0x5, 0x97, +0xe8,0xa, 0x3d,0x17,0x17,0x81,0xaf,0x9a,0x14,0x1, 0x38,0x82,0xe8,0xa, 0x3d,0x17, +0x17,0x80,0xaf,0x9a,0x14,0x0, 0x38,0x82,0x8, 0xb1,0xc0,0x7c,0x7c,0x1, 0xdf,0x4b, +0x64,0x1, 0xc0,0x4, 0x8, 0xe1,0x3e,0xee,0xe7,0xff,0x0, 0xbb,0xf0,0xf, 0x3b,0x9a, +0x8f,0x1f,0x27,0x6d,0x17,0x1, 0xaf,0x1f,0x14,0x1, 0x38,0x82,0xe0,0x0, 0x1f,0x8e, +0x14,0x0, 0xf0,0x0, 0x8b,0x8f,0xf2,0x0, 0xcb,0x84,0xe0,0x0, 0x2, 0xee,0xe0,0x1, +0x1f,0x89,0xe0,0x0, 0x1f,0xd, 0x8e,0x8f,0xe0,0x1, 0x1f,0x88,0x36,0xa8,0x8f,0x8f, +0xe0,0x1a,0x96,0x7e,0x3f,0xcd,0x3e,0x7f,0xe0,0x0, 0x5, 0x5f,0xf0,0x0, 0x23,0xde, +0x8, 0xb1,0xf0,0x0, 0x13,0x7f,0x3d,0x68,0x3c,0xe8,0xf8,0x40,0x3a,0xe6,0x8f,0x8e, +0xe8,0x40,0x3e,0x65,0x8e,0x9e,0xe2,0x1, 0xc6,0x7f,0x3f,0xfc,0xc4,0x1, 0x38,0xe9, +0xf8,0x40,0x38,0x66,0xf0,0x40,0x38,0xea,0xe4,0xb, 0x37,0xa8,0xe4,0xc, 0x36,0xa8, +0xe2,0x1, 0xc0,0xff,0xf2,0x1, 0xc0,0x7f,0xf2,0x1, 0xc0,0xff,0xe2,0x1, 0xc4,0x7f, +0xf0,0x40,0x39,0x6f,0xe4,0xb, 0x35,0xc8,0xf0,0x40,0x39,0xed,0xf0,0x40,0x3a,0x6d, +0xe4,0xc, 0x36,0x48,0xc7,0x2, 0x5, 0x83,0xf8,0x40,0x39,0x65,0x3d,0xf1,0xf8,0x40, +0x3a,0xe2,0xf2,0x1, 0xc2,0xff,0x3, 0x82,0x3f,0xe9,0xe8,0x40,0x3e,0xf0,0x3c,0xef, +0xe2,0x1, 0xc4,0xff,0x5, 0x83,0xf8,0x40,0x39,0xe6,0xe8,0x40,0x3e,0x71,0xf8,0x40, +0x3b,0x63,0xf2,0x1, 0xc3,0x7f,0x3, 0x83,0xf0,0x40,0x3a,0x6a,0xf0,0x40,0x3b,0xf8, +0xe8,0x40,0x3d,0x64,0xe2,0x1, 0xc5,0x7f,0xe7,0xff,0x1, 0xbb,0xe8,0x9, 0x3c,0xa5, +0xe8,0xa, 0x3d,0x26,0xe2,0x0, 0xcc,0x84,0x17,0x84,0xe0,0x2a,0x3f,0xaa,0x14,0x0, +0xe0,0x68,0x3d,0x2a,0x8, 0xe1,0x38,0x82,0x14,0x1, 0x38,0x82,0x8, 0xb7,0xf8,0x0, +0xc, 0x3a,0xc0,0x7c,0xe0,0x3, 0x19,0x84,0xe0,0x2, 0x1a,0xfd,0x97,0xd3,0xe0,0x0, +0x1b,0xe, 0x86,0x45,0x8e,0xd5,0x17,0x0, 0xe2,0xff,0xc7,0xff,0x8d,0x86,0x6f,0x4, +0xb7,0xd3,0x6f,0x5, 0x6e,0x6, 0x6e,0x87,0xe0,0x1, 0x25,0xfb,0xe0,0x1, 0x1f,0xd7, +0xe0,0x0, 0x19,0xd, 0xf0,0x0, 0x94,0x2f,0x93,0xdf,0xf0,0x1, 0x1d,0x72,0x12,0x0, +0x0, 0x89,0xf8,0x40,0x3c,0x79,0x4, 0x1e,0x8d,0x86,0x8e,0xd5,0x3a,0x7b,0xe0,0x1, +0x3, 0xed,0xe0,0xf, 0x32,0x21,0x3f,0x92,0x8c,0x8f,0x8d,0x1f,0x3e,0xb9,0xe8,0x0, +0xa7,0x8a,0x3e,0x9a,0x36,0xa1,0x3e,0x9f,0xe2,0x0, 0x7c,0x4, 0xf0,0x0, 0x94,0x8d, +0xc2,0x1, 0xef,0xff,0xd7,0xf6,0xe2,0x1, 0xc2,0x7f,0x2c,0x64,0xe8,0x40,0x3b,0xf9, +0x3, 0x64,0x8d,0x86,0x8e,0xd5,0x16,0x1, 0xe0,0x1a,0x9a,0x52,0xe0,0x1a,0x9f,0xe2, +0x97,0x53,0x9d,0x23,0x3f,0x94,0x36,0x2f,0xe2,0xf7,0xc7,0x7f,0xe0,0x2f,0x3f,0x9a, +0x37,0xaa,0x3f,0x4c,0xe0,0x3, 0x1a,0x8c,0x3f,0x4f,0xe0,0x4, 0xcf,0x0, 0x8f,0x85, +0xb7,0x53,0x27,0xbb,0xe0,0x2, 0x1e,0x27,0xe0,0x1, 0x1c,0xf2,0x8f,0xc, 0x8d,0x1c, +0x3f,0x3d,0xa4,0x9, 0x3f,0x1a,0x37,0x21,0xe0,0x2, 0x1d,0x30,0x3f,0x18,0x94,0x8a, +0x97,0xe, 0x9b,0x93,0x3f,0x29,0xe0,0x43,0x3f,0x1e,0xe4,0x9, 0x37,0xf, 0xe2,0xe, +0x3c,0xce,0x3f,0x29,0x3f,0x77,0xe0,0x0, 0x2, 0x78,0x13,0x7f,0x3b,0x1f,0xe2,0x1, +0xc3,0x7f,0x33,0x21,0x3b,0x1c,0x0, 0x95,0x8f,0x2f,0x8f,0xbf,0x3f,0x3d,0xe0,0x80, +0x94,0x9a,0x3f,0x1f,0x37,0x21,0x3f,0x18,0x97,0x8e,0x3f,0xa9,0xe0,0x43,0x3f,0x9f, +0xe4,0xe, 0x37,0x8f,0xe2,0xf, 0x3f,0x4f,0x3f,0xae,0x3f,0xf7,0xe0,0x0, 0x2, 0x5d, +0x3b,0x7c,0x3f,0xec,0xc6,0x2, 0x1, 0xe9,0x17,0x81,0x2d,0x82,0xad,0x85,0xe7,0xfb, +0x17,0x7f,0x92,0xd3,0x37,0xa9,0x3a,0xde,0x3a,0xcf,0xe7,0x7f,0x17,0xff,0x3a,0xdf, +0xe0,0x0, 0x1f,0x8c,0x8f,0x8f,0xb2,0xd3,0x27,0xa9,0xe0,0x1b,0x97,0x92,0xe0,0x17, +0xc7,0xb7,0xe3,0xff,0xc7,0xff,0xe2,0x14,0xcf,0xd8,0x2, 0x8c,0xe0,0x2, 0x1f,0xc0, +0xe0,0xa, 0x8f,0x8f,0xe0,0x0, 0x2f,0xe5,0xde,0xd2,0x2c,0x4, 0xe0,0x80,0xca,0x80, +0xb2,0xd3,0x16,0x83,0xe0,0x1, 0x1f,0xd7,0xe0,0x1b,0x97,0x42,0x97,0xef,0xe4,0x0, +0xc7,0x8a,0xe2,0x0, 0xcf,0x80,0x3e,0x9f,0xe0,0x6f,0x3c,0x2d,0x37,0x82,0x3f,0x7f, +0x3, 0x5, 0x97,0xd3,0xe0,0x40,0xcf,0x80,0xb7,0xd3,0x97,0xd3,0xe3,0xdf,0xc7,0xff, +0xb7,0xd3,0xe7,0xef,0x16,0xff,0xe0,0x2, 0x1f,0x7c,0x97,0xd3,0x9f,0xe, 0x3f,0xdd, +0x37,0x42,0xe7,0xfd,0x16,0xff,0x3f,0xdd,0x3f,0x74,0xb7,0xd3,0x4, 0x85,0xe0,0x1a, +0x9f,0xe2,0x3f,0xfe,0x5, 0x85,0x97,0xd3,0xe0,0x2, 0xcf,0x80,0xb7,0xd3,0xc0,0x4, +0xf8,0x0, 0xd, 0x28,0xb, 0xe1,0x25,0xa0,0x13,0xff,0x3b,0x9b,0xe2,0x1, 0xc3,0xff, +0xc3,0x81,0x33,0xa1,0xe0,0x0, 0x1f,0xd, 0xe0,0x2, 0x1b,0x2f,0xe0,0x2, 0x1e,0x27, +0x3b,0x92,0x8c,0x8e,0x8d,0x1e,0xe0,0xf, 0x3c,0xbd,0xc7,0x2, 0x3f,0x9a,0x37,0xa1, +0x3f,0x98,0x97,0x8f,0xc6,0x2, 0x3f,0x77,0xe0,0x40,0xac,0xac,0xe0,0x40,0xad,0x1c, +0xe0,0x80,0xb7,0x96,0x1, 0xef,0xad,0x85,0x17,0x80,0xe7,0xff,0x0, 0x88,0xe0,0x0, +0x19,0xd, 0x3e,0x6b,0xe7,0xfe,0x0, 0xb2,0x16,0x0, 0xe7,0xfe,0x0, 0xaf,0xe0,0x2, +0x1f,0xf7,0x17,0x7, 0xaf,0xf, 0x17,0x0, 0xe0,0x1, 0x1f,0xe9,0xaf,0xf, 0xe7,0xff, +0x0, 0xb2,0x0, 0x0, 0x8, 0xb7,0xc0,0x70,0xea,0x4e,0x7f,0xe4,0xe9,0xff,0xc7,0xff, +0xf0,0x0, 0x83,0xf, 0xf0,0x0, 0x83,0x9f,0x83,0xaf,0x83,0x3f,0x82,0xcf,0x82,0x5f, +0x81,0xef,0x81,0x7f,0xe0,0x1, 0x84,0xf, 0xe0,0x1, 0x84,0x9f,0xe0,0x1, 0x85,0x2f, +0xe0,0x1, 0x85,0xbf,0xe0,0x1, 0x86,0x4f,0xe0,0x1, 0x86,0xdf,0xe0,0x1, 0x87,0x6f, +0xe0,0x1, 0x87,0xff,0xf0,0x0, 0x6b,0x4, 0x6f,0x93,0xe0,0x0, 0x1f,0x8e,0xf0,0x0, +0x6b,0x85,0x6b,0x86,0x6b,0x7, 0x6a,0x88,0x6a,0x9, 0x69,0x8a,0x69,0xb, 0x6c,0xc, +0x6c,0x8d,0x6d,0xe, 0x6d,0x8f,0x6e,0x10,0x6e,0x91,0x6f,0x12,0x8f,0x8f,0xe0,0x1, +0x27,0x9c,0xe0,0x2, 0x1f,0xdd,0x89,0x8f,0xe0,0x1, 0x29,0x97,0xe0,0x0, 0x1b,0xd, +0xf0,0x2, 0x1a,0xfd,0xe0,0x1, 0x1f,0xf2,0x89,0x16,0x8b,0x86,0xe8,0x0, 0x8a,0xd5, +0xf7,0xff,0x13,0xff,0xf7,0xff,0x13,0x7f,0x14,0x81,0xa2,0xf, 0xe0,0x43,0x3e,0x97, +0x3d,0x63,0xf0,0x17,0x3b,0x92,0xf0,0x16,0x3b,0x15,0x3c,0x92,0xe0,0xb, 0x3e,0xb5, +0xe8,0x40,0x3f,0x67,0xe0,0xc, 0x3d,0x92,0x36,0x21,0x3e,0x14,0x96,0xc, 0x3f,0xe9, +0xe2,0x1, 0xc7,0x7f,0xe2,0x1, 0xc7,0xff,0x3f,0x1b,0x3f,0x9b,0xe2,0x1, 0xce,0x20, +0x37,0x21,0x37,0xa1,0xc6,0xff,0x16,0x1, 0x3f,0x14,0x3f,0x94,0xe0,0x43,0x3e,0x9d, +0x3e,0x13,0x5, 0x18,0x21,0x8, 0x94,0xe, 0x39,0xec,0x3d,0x18,0xe2,0x1, 0xc1,0xff, +0xe0,0x43,0x3d,0x1a,0xe8,0x40,0x39,0x76,0x17,0x1, 0x3f,0x13,0x3, 0x8, 0x94,0xf, +0x39,0xee,0x3d,0x18,0xe2,0x1, 0xc1,0xff,0xe0,0x43,0x3d,0x1a,0xe3,0xff,0xce,0xff, +0x1, 0xce,0xf8,0x0, 0x8b,0x45,0x16,0x1, 0xf7,0xff,0x13,0xff,0xf7,0xff,0x12,0xff, +0x14,0x81,0x3e,0x17,0xf0,0x17,0x3b,0x92,0xf0,0x15,0x3a,0x95,0x3c,0x92,0x3f,0xec, +0xe2,0x1, 0xc7,0xff,0xe0,0xd, 0x3f,0xb5,0xe8,0x40,0x3f,0x67,0x3f,0xe9,0xe2,0x1, +0xc7,0x7f,0xe2,0x1, 0xc7,0xff,0xe0,0xb, 0x3e,0x92,0x3f,0x1d,0x3f,0x9d,0xe0,0x43, +0x3e,0x9c,0xe8,0x40,0x3e,0xf6,0x35,0xa1,0x37,0x21,0x37,0xa1,0xf0,0x0, 0x12,0x1, +0x3d,0x94,0x3f,0x14,0x3f,0x94,0xc6,0x1, 0xf0,0x14,0x3a,0x13,0x3, 0x24,0x96,0x8b, +0xe3,0xff,0xc6,0x7f,0xe2,0x1, 0xce,0xa0,0x5, 0x1e,0x21,0x9, 0x94,0xe, 0xe8,0x40, +0x39,0xe4,0x3d,0x18,0xe2,0x1, 0xc1,0xff,0xe0,0x43,0x3d,0x1a,0xe8,0x40,0x39,0x75, +0x17,0x1, 0x3f,0x13,0x3, 0x4d,0x94,0xf, 0x39,0xee,0x3d,0x18,0xe2,0x1, 0xc1,0xff, +0xe0,0x43,0x3d,0x1a,0x0, 0xc5,0xea,0x12,0x7f,0xa7,0x17,0x0, 0xaf,0xf, 0x14,0x0, +0xc0,0x10,0xb, 0xe1,0xe4,0x8, 0x35,0xf, 0xe2,0xa, 0x3c,0x4a,0x3c,0xe3,0xe0,0x8, +0x3d,0x28,0xe0,0x4, 0xdc,0xd, 0xe2,0x0, 0xcc,0x64,0x2, 0x6e,0x29,0xe, 0xe0,0x0, +0x1f,0xc, 0xea,0x12,0x7f,0xa7,0x16,0x81,0x8f,0xe, 0xae,0x8f,0x14,0x1, 0x27,0x69, +0x17,0x3, 0xaf,0xf, 0x14,0x3, 0x0, 0xe5,0x16,0xff,0x3e,0x95,0x39,0x7d,0x1, 0x70, +0x17,0xff,0x3a,0xb7,0x3f,0x92,0xe2,0x0, 0xc9,0x8f,0xe2,0x1, 0xc7,0xff,0x16,0x3, +0x3f,0x95,0x17,0x0, 0xe0,0x6e,0x3a,0xac,0x37,0xa1,0x39,0x7d,0x3f,0x94,0x96,0xf, +0xe0,0x0, 0x4, 0x4d,0x17,0x84,0x15,0xf4,0x36,0x1, 0x3f,0x90,0xe0,0xb, 0x3d,0x90, +0xe0,0x1, 0x86,0xef,0x3e,0xfc,0x5, 0x6, 0xe0,0x1, 0x86,0xff,0x3f,0x1d,0xe3,0xff, +0xc7,0x7f,0xc7,0xfe,0x3d,0xff,0x1, 0xf5,0x39,0x15,0x31,0x21,0x3a,0x12,0x97,0x84, +0x16,0xa8,0xe4,0xc, 0x37,0x8f,0xe2,0xf, 0x3e,0x4f,0x3e,0x9e,0x3f,0xac,0xe2,0xb, +0xcf,0xdd,0x3f,0xed,0xe3,0xff,0xc7,0xff,0xe0,0x1a,0x96,0x76,0xe0,0x0, 0x1e,0xa1, +0xe0,0x6e,0x3b,0x2f,0x17,0xa8,0xe2,0xb, 0xce,0x5d,0x3f,0x9e,0x8e,0xd, 0xe3,0xff, +0xc7,0xff,0xe0,0x6e,0x3b,0x2f,0xe2,0x0, 0xce,0x1, 0x1, 0x25,0x3f,0xee,0xe3,0xff, +0xc7,0xff,0xe2,0x1, 0xcf,0xfa,0x2, 0x8f,0xea,0x12,0x7f,0xa7,0x8c,0xf, 0xe3,0xff, +0xc7,0x7f,0x3f,0x78,0xe7,0xff,0x5, 0x8e,0x3c,0x6e,0xe2,0x1, 0xc4,0x7f,0xac,0xf, +0xe7,0xff,0x0, 0x88,0xe0,0x1, 0x17,0x7a,0x0, 0xf0,0x17,0x81,0x3f,0x92,0xe2,0x1, +0xc7,0xff,0x3f,0x95,0x37,0xa1,0x3f,0x94,0x97,0x8f,0x3e,0x1f,0xe0,0x43,0x3e,0x1c, +0xe7,0xff,0x0, 0xaa,0xc7,0x28,0x17,0x80,0xaf,0x8d,0xe3,0xff,0xc7,0x7f,0x0, 0xd7, +0x8, 0xb6,0xe0,0x2, 0x19,0xc0,0xe0,0x3, 0x1a,0x2e,0xe0,0xa, 0x8f,0x83,0x17,0x1, +0xe2,0x0, 0xcf,0x81,0xaf,0x4, 0xe0,0x0, 0x1, 0x62,0xe0,0x1, 0x1b,0x7, 0xe0,0x1, +0x19,0x57,0x8f,0x86,0xe0,0x0, 0x12,0xee,0x37,0xc1,0xaf,0x92,0xb2,0x92,0xb2,0xa2, +0xef,0xfb,0xd3,0xd8,0xe0,0x0, 0x1f,0x8e,0xe0,0x0, 0x1f,0xd, 0x8f,0x8f,0x2f,0xaf, +0x17,0x80,0xaf,0x84,0xe0,0x1, 0x1f,0x89,0x8d,0xf, 0xe0,0x1, 0x1f,0x86,0x35,0x28, +0x8d,0x8f,0xe0,0x1, 0x1f,0x85,0x35,0xa8,0x8e,0xf, 0xe0,0x1, 0x1f,0x88,0x36,0x28, +0x8e,0x8f,0xe0,0x1, 0x1f,0x84,0x3e,0xca,0x8f,0xf, 0xe0,0x1, 0x1f,0x83,0x3f,0x4b, +0x8f,0x8f,0xe0,0x43,0x3f,0x1e,0x3f,0xcc,0xe0,0x43,0x3f,0x9f,0xe0,0xc, 0x36,0xc5, +0x85,0x6, 0xae,0x3, 0xe0,0x41,0x3d,0xcf,0xe0,0xc, 0x37,0x5, 0xad,0x12,0xb6,0x92, +0xb7,0x22,0xb7,0xf2,0xe0,0x1, 0xb5,0x82,0xae,0x13,0xb, 0x61,0xe2,0x0, 0xcf,0x88, +0x5, 0xa0,0xe0,0x1a,0x97,0xfe,0xe2,0x2, 0xcf,0xab,0x2, 0x32,0x8f,0x86,0x17,0x3, +0x37,0xc1,0xaf,0x92,0xe0,0x1, 0x17,0x96,0xaf,0x3, 0xb7,0xf2,0xe7,0xfe,0x17,0xea, +0xb2,0x92,0xb2,0xa2,0xe0,0x1, 0xb7,0x82,0xaf,0x13,0x8f,0x84,0xe7,0xff,0x27,0xbc, +0xe0,0x0, 0x1f,0xce,0x17,0x1, 0xaf,0xf, 0xb, 0x61,0x17,0x80,0xaf,0x84,0xb, 0x61, +0xe2,0x0, 0xcf,0x86,0x2, 0x93,0xe2,0x0, 0xcf,0x84,0x2, 0xa6,0xe2,0x0, 0xcf,0x82, +0xe7,0xff,0x5, 0xa8,0xe0,0x1a,0x97,0xfe,0xe2,0x5, 0xcf,0xbb,0xe7,0xff,0x2, 0x22, +0x17,0x84,0x86,0x86,0xe0,0x1, 0x17,0x1b,0x0, 0x8a,0xe0,0x1a,0x97,0xfe,0xe2,0x3, +0xcf,0x8f,0x2, 0x14,0x86,0x86,0x17,0x83,0xe0,0x0, 0x17,0x78,0xaf,0x83,0xb7,0x12, +0xb7,0x22,0xe0,0x1, 0x17,0x20,0xb7,0x72,0xe7,0xfe,0x17,0x60,0xae,0x92,0xe0,0x1, +0xb7,0x2, 0xaf,0x93,0x0, 0xcb,0xe0,0x1a,0x97,0xfe,0xe2,0x3, 0xcf,0xf3,0x2, 0x5d, +0x17,0x84,0x86,0x86,0xe0,0x1, 0x17,0x7, 0x0, 0xea,0x8, 0xb4,0xe0,0x2, 0x19,0xc0, +0xe0,0xa, 0x8f,0x83,0xe2,0x0, 0xcf,0x81,0xe0,0x1, 0x1, 0x0, 0xe0,0x1, 0x19,0x57, +0xe0,0x3, 0x8f,0xe2,0xe2,0x0, 0xcf,0x81,0xe0,0x0, 0x1, 0x4f,0xe0,0x3, 0x1a,0x2e, +0x17,0xff,0xaf,0x84,0xdf,0x46,0x8f,0x84,0xe0,0x1, 0x27,0x99,0xe0,0x1, 0x8f,0xb3, +0x27,0xa1,0x9f,0x12,0x97,0xa2,0x96,0xf2,0xe4,0x0, 0xc7,0xa, 0xe4,0x0, 0xc7,0x8a, +0x37,0x3, 0xe4,0x0, 0xc6,0x8a,0xe3,0xff,0xc7,0x7f,0x37,0x83,0xe0,0x43,0x3e,0x1f, +0x36,0x83,0xe0,0xb, 0x37,0x45,0xad,0x83,0xe0,0x41,0x3f,0xcf,0xe0,0x41,0x3d,0x4d, +0xe0,0xb, 0x36,0x5, 0xb7,0x12,0xb6,0x22,0xb7,0xb2,0xb6,0xf2,0xe0,0x1, 0xb5,0x2, +0xad,0x93,0x8f,0xc3,0xe2,0x1, 0xcf,0xaa,0x1, 0x13,0xe0,0x1, 0x1f,0x82,0x8e,0xf, +0xe0,0x1, 0x1f,0x81,0x36,0x28,0x8e,0x8f,0xe0,0x1, 0x1f,0x80,0x36,0xa8,0x8f,0xf, +0xe0,0x0, 0x1f,0xff,0x3f,0x4c,0x8f,0x8f,0xb7,0x42,0x3f,0xcd,0xb7,0xd2,0xe0,0x0, +0x1f,0xfe,0x8f,0xf, 0xe0,0x0, 0x1f,0xfd,0x37,0x28,0x8f,0x8f,0x3f,0xce,0xe0,0x41, +0x3f,0xcf,0xb7,0xb2,0xa, 0x61,0xe0,0x0, 0x1f,0xfc,0xe0,0x1, 0x1f,0x3, 0x8e,0xf, +0xe0,0x1, 0x1f,0x85,0x8f,0xe, 0x8e,0x8f,0xe0,0x0, 0x1f,0xfb,0x36,0xa8,0x8f,0x8f, +0x3f,0x4d,0x16,0x84,0x36,0x28,0xae,0x83,0xe0,0x1, 0x16,0x96,0xe0,0x1, 0x1d,0x87, +0x3f,0xcc,0xb6,0x92,0xe0,0x0, 0x16,0xf8,0xe0,0x41,0x3f,0xcf,0x85,0x8b,0xb6,0xa2, +0x16,0x0, 0xe0,0x3, 0x1e,0xae,0xe0,0x1, 0xb7,0x82,0x17,0x83,0xad,0x92,0xae,0xd, +0xb7,0x72,0xaf,0x93,0xe7,0xff,0x0, 0x94,0xe0,0x0, 0x1f,0xfc,0xe0,0x1, 0x1f,0x3, +0x8e,0xf, 0xe0,0x1, 0x1f,0x85,0x8f,0xe, 0x8e,0x8f,0xe0,0x0, 0x1f,0xfb,0x36,0xa8, +0x8f,0x8f,0xe0,0x1, 0x19,0x57,0x3f,0x4d,0x16,0x89,0x36,0x28,0xae,0x83,0xe0,0x2, +0x16,0xac,0xe0,0x1, 0x1d,0x87,0x3f,0xcc,0xb6,0x92,0xe0,0x2, 0x16,0x8e,0xe0,0x41, +0x3f,0xcf,0x85,0x8b,0xb6,0xa2,0x16,0x0, 0xe0,0x3, 0x1e,0xae,0xe0,0x1, 0xb7,0x82, +0x17,0x88,0xad,0x92,0xae,0xd, 0xb7,0x72,0xaf,0x93,0xe0,0x2, 0x1f,0xdf,0x8f,0x8f, +0xe7,0xfe,0x2f,0xe6,0xe0,0x3, 0x8f,0xe2,0xe7,0xfe,0x2f,0xe2,0xe0,0x0, 0x1f,0xfa, +0x8f,0xf, 0xe0,0x0, 0x1f,0xf9,0x37,0x28,0x8f,0x8f,0x3f,0xce,0xb7,0x92,0xe7,0xfe, +0x0, 0xd7,0x8, 0xb4,0x17,0x9c,0xe0,0x2, 0x19,0xac,0x3f,0xb8,0x3a,0x68,0x3f,0x93, +0xe0,0x1, 0x8c,0xf, 0xe0,0x2, 0x1f,0x9e,0x11,0x1, 0xa9,0xf, 0xef,0xfc,0xd6,0x7b, +0xe0,0x0, 0x1f,0xb3,0xaa,0x3, 0xa9,0xf, 0xa, 0x61,0xe0,0x1, 0x1e,0xc7,0x17,0x0, +0x3f,0xed,0xe1,0x80,0xb7,0x1f,0xc7,0x82,0xb7,0x1d,0xe1,0x80,0xb7,0x1f,0xb7,0xf, +0x38,0x82,0x0, 0x0, 0x8, 0xb7,0xf8,0x0, 0xc, 0x3c,0xe1,0xff,0xc0,0x8, 0xe0,0x2, +0x1f,0x66,0xe0,0x2, 0x1f,0xfd,0x87,0xe, 0xe0,0x3, 0x8e,0xaf,0xe2,0x0, 0xc7,0x1, +0x3e,0xfe,0x3a,0x68,0xe0,0x0, 0x1, 0x68,0x8b,0xf, 0xf0,0x0, 0x8e,0x2f,0x3c,0x64, +0xe0,0x0, 0xd6,0x38,0xf0,0x0, 0x26,0x52,0x13,0xff,0xe8,0x7, 0x3b,0x9c,0x11,0xff, +0xe2,0x1, 0xc3,0xff,0x39,0x96,0xe0,0x4c,0xc3,0xa7,0xe2,0x1, 0xc1,0xff,0xf0,0x0, +0x14,0x4, 0xe0,0x1, 0x1f,0xff,0xf0,0x18,0x3c,0x10,0x33,0xa1,0x31,0xa1,0xe0,0x1, +0x1a,0xe4,0x3b,0x9f,0xf0,0x1c,0x36,0x21,0xe8,0x3, 0x39,0x98,0xf0,0x0, 0x15,0x3, +0xf0,0x0, 0x14,0xda,0xf0,0x0, 0x15,0x80,0xe0,0x80,0x97,0x95,0xe8,0x40,0x3c,0xea, +0xe4,0x8, 0x37,0x8f,0xe2,0xf, 0x3c,0x4f,0xe0,0x8, 0x3f,0xa8,0xe0,0x4, 0xd9,0xb8, +0xe2,0x0, 0xcc,0x5a,0xe8,0x40,0x3d,0x69,0xe0,0x6a,0x3b,0x28,0xe3,0xff,0xc5,0x7f, +0x23,0x21,0x11,0x2, 0x39,0x10,0x3f,0x62,0x3f,0xe4,0x96,0x8f,0xe8,0xf, 0x3f,0x9c, +0xe0,0x80,0xb6,0x9e,0x3f,0x73,0x1, 0xfa,0x3c,0xe6,0xe8,0x40,0x3c,0x68,0xe0,0x0, +0xd6,0x2f,0x3f,0xe4,0xe0,0x80,0x97,0x12,0x39,0x73,0xb7,0xf, 0xe8,0xf, 0x3f,0x9c, +0x1, 0xfa,0x3a,0xf7,0xc2,0x2, 0x1, 0xd1,0xe0,0x0, 0xc0,0x78,0xf8,0x0, 0xe, 0x28, +0xb, 0xe1,0xe8,0x40,0x3c,0xeb,0xe8,0x40,0x3c,0x68,0xd6,0x19,0x3a,0xf7,0xc2,0x2, +0x1, 0xc4,0x0, 0xf3,0x8b,0x1f,0xf0,0x0, 0x8e,0x3f,0xe7,0xff,0x0, 0x9a,0x0, 0x0, +0x8, 0xb7,0xf8,0x0, 0xc, 0x39,0xe1,0xe6,0xc0,0x58,0x3b,0xe8,0x3c,0x69,0x3b,0x69, +0xef,0xfe,0xd8,0x4b,0xe2,0x0, 0xcb,0x1, 0xe0,0x1, 0x1, 0x4d,0xe0,0x3, 0x19,0x4, +0xe0,0x1, 0x19,0xc7,0x97,0xd2,0x17,0x0, 0xe3,0xff,0xc7,0xdf,0xb7,0x3, 0x3a,0xe8, +0xb7,0xd2,0x3c,0x66,0xef,0xfe,0xd8,0x39,0xe2,0x0, 0xcc,0x0, 0x12,0x2, 0x3f,0xe4, +0xe0,0x6f,0x39,0x28,0x3b,0xff,0x1, 0x6, 0xe0,0x19,0xc0,0x28,0xf8,0x0, 0xc, 0xa8, +0xb, 0xe1,0xe0,0x0, 0x1f,0xbf,0xe0,0x0, 0x1f,0x78,0x8f,0x8f,0x8f,0xe, 0x3f,0x7f, +0xe0,0x2, 0x1, 0x42,0xe0,0x0, 0x1f,0x77,0x8f,0xe, 0x3f,0x7f,0xe0,0x2, 0x1, 0x46, +0xe0,0x0, 0x1f,0x76,0x8f,0xe, 0x3f,0x7f,0xe0,0x2, 0x1, 0x44,0x17,0x80,0x3a,0x6f, +0xe2,0x0, 0xcb,0x2, 0xe0,0x1, 0x1, 0x63,0xe4,0x0, 0xc7,0x9c,0xe0,0x2, 0x1f,0x2c, +0xe0,0x1, 0x1b,0x6e,0x3f,0x9e,0xf0,0x0, 0xa4,0x5f,0xa3,0xef,0xfb,0xe5,0x7c,0xf0, +0xe8,0x0, 0x8f,0x89,0x27,0x8c,0xe0,0x1, 0x22,0xcb,0xe0,0x1, 0x1c,0xf0,0xe0,0x1, +0x1c,0x7d,0xef,0xff,0xd3,0xa3,0x17,0x80,0xe8,0x0, 0xaf,0x89,0x15,0x81,0xe0,0x1, +0x1d,0x7e,0xe0,0x1, 0x1c,0xfd,0xe2,0x0, 0x7c,0x6, 0xef,0xff,0xd3,0x78,0xe0,0x2, +0x1f,0xfc,0x15,0x8c,0x9f,0x8f,0xe0,0x1, 0x1c,0xfd,0x3d,0x9f,0xe0,0x1, 0x1d,0x7e, +0xe3,0xff,0xc5,0xff,0xe0,0xe, 0x37,0xa1,0xe0,0xd, 0x3c,0x9e,0xe0,0xc, 0x3d,0x1e, +0x96,0x8d,0x96,0xc, 0xc7,0x81,0xe2,0x0, 0x7c,0x6, 0xe3,0xff,0xc7,0xff,0x3f,0x18, +0x3e,0xac,0x3f,0xfb,0xb6,0x8e,0x1, 0xef,0x22,0xad,0xe0,0x2, 0x1f,0xea,0x8f,0x8f, +0x3f,0xf4,0xe0,0x1, 0x1, 0x53,0x3c,0xe6,0xe2,0xc, 0x7c,0x5a,0xe8,0x40,0x3d,0x68, +0xef,0xff,0xd3,0x2d,0xe0,0x1, 0x1c,0xf0,0x3d,0x67,0xe2,0x0, 0x7c,0x6, 0xef,0xff, +0xd3,0x26,0xe2,0xc, 0x7c,0xda,0x3c,0x69,0xe2,0x0, 0x7d,0x6, 0x15,0x81,0xef,0xff, +0xd3,0x3e,0xe0,0x1, 0x1d,0x7e,0xe0,0x1, 0x1c,0xfd,0xe2,0x0, 0x7c,0x6, 0x15,0x81, +0xef,0xff,0xd3,0x35,0xe2,0x0, 0x7d,0x6, 0xe2,0xc, 0x7c,0xda,0x3c,0x6a,0xef,0xff, +0xd3,0xe, 0xe2,0x0, 0x7c,0x6, 0xef,0xff,0xd3,0x67,0xe0,0x43,0x3f,0x98,0xe2,0x0, +0xcf,0x80,0xe0,0xff,0x17,0xff,0xe0,0x6f,0x3b,0x28,0x3c,0x6f,0xe0,0x0, 0x1f,0xf5, +0x8f,0x8f,0xb4,0x3, 0xe0,0xe, 0x37,0xa8,0xe0,0x0, 0x1f,0xf4,0x9e,0x83,0x8f,0x8f, +0x3f,0xce,0x3e,0xff,0x97,0xd2,0xe0,0x0, 0x5, 0xce,0xcf,0xa0,0xb7,0xd2,0xe7,0xfe, +0x2a,0xd5,0xe0,0x1, 0x1c,0xfe,0xe0,0x1, 0x1c,0x7d,0xef,0xff,0xd3,0x27,0xe7,0xfe, +0x0, 0xcd,0xe2,0x0, 0xcb,0x84,0xe7,0xfe,0x1, 0xc9,0xe0,0x1, 0x1c,0x63,0xde,0xa3, +0xe0,0x2, 0x1f,0xe6,0xe0,0x2, 0x1f,0x7d,0x87,0x8f,0xe0,0x3, 0x8e,0xae,0xe2,0x0, +0xc7,0x81,0x3e,0xff,0xe0,0x1, 0x1, 0xc, 0x97,0xde,0xc7,0x86,0xe3,0xff,0xc7,0xff, +0xe0,0x0, 0x27,0xd7,0xc7,0xff,0xe3,0xff,0xc7,0xff,0x17,0x0, 0x15,0x1, 0xe0,0x1, +0x1d,0xff,0x3d,0x1f,0x3e,0x6e,0x0, 0x91,0x9e,0x8f,0xe0,0x45,0x17,0xc2,0x3f,0x9e, +0x3e,0xfc,0x37,0xa1,0x3f,0x9b,0x5, 0x6, 0x96,0x8f,0x9e,0xf, 0xe2,0x0, 0xce,0x80, +0x5, 0x2e,0xc7,0x1, 0x3f,0x7a,0x1, 0x30,0xe0,0x45,0x17,0xc2,0x3f,0x9e,0x37,0xa1, +0x3f,0x9b,0x96,0x8f,0xe2,0x0, 0xce,0x80,0x2, 0x68,0x96,0x8f,0xe0,0x41,0x3e,0xcd, +0x0, 0xe5,0xe3,0xff,0xc7,0xdf,0xb7,0xd2,0xe7,0xff,0x0, 0xb3,0xe0,0x1, 0x1c,0x7d, +0x3c,0xe6,0xef,0xff,0xd2,0xdb,0xe7,0xfe,0x0, 0xb8,0x17,0x1, 0x3f,0x1f,0xe0,0x2, +0x1e,0xac,0xe4,0x0, 0xc7,0x1c,0xe4,0x0, 0xc7,0x9c,0x3f,0x1d,0x3f,0x9d,0xf0,0x0, +0xa4,0xe, 0xa3,0xef,0xe0,0x1, 0x1b,0x6d,0xe7,0xfe,0x0, 0x9a,0xe0,0x41,0x3e,0x4c, +0xe3,0xff,0xc6,0x7f,0x0, 0xcf,0xe0,0x43,0x3f,0x9c,0xe4,0x0, 0xc6,0x5, 0xe2,0x0, +0xcf,0x80,0xe3,0xff,0xc6,0x7f,0xe0,0xff,0x17,0xfb,0xe0,0x6f,0x3b,0x2c,0xe0,0x1, +0x1e,0xc7,0xe0,0x0, 0x1f,0x75,0x8f,0xe, 0xb7,0x8d,0x37,0x28,0xe0,0x0, 0x1f,0xf4, +0x9e,0x8d,0x8f,0x8f,0x3f,0xce,0x3e,0xff,0xe0,0x3, 0x1f,0x4, 0x97,0xde,0x5, 0x96, +0xcf,0xa0,0xb7,0xde,0xe7,0xfd,0x0, 0xca,0xe0,0x1, 0x1d,0x70,0x3c,0xe6,0xe2,0xc, +0x7c,0x5a,0x15,0x81,0xef,0xff,0xd2,0x7b,0xe2,0x0, 0x7c,0x86,0xe2,0xc, 0x7d,0x5a, +0x3c,0x69,0xef,0xff,0xd2,0x54,0xe7,0xfe,0x0, 0xc6,0xe3,0xff,0xc7,0xdf,0xb7,0xde, +0xe7,0xfd,0x0, 0xb4,0x12,0x0, 0x3f,0xe4,0xe7,0xfd,0x0, 0xcc,0x97,0xee,0xc7,0x86, +0xe3,0xff,0xc7,0xff,0xe7,0xfe,0x0, 0xf6,0x12,0x1, 0x3f,0xe4,0xe7,0xfd,0x0, 0xc2, +0x3f,0xe4,0xe7,0xfd,0x0, 0xbf,0xe0,0x1, 0x1f,0x4d,0xe0,0x1, 0x1f,0xc7,0x34,0x22, +0x3c,0x1e,0x9e,0x88,0x97,0x2f,0x16,0x7d,0xe2,0x0, 0xc6,0x82,0x3f,0x5c,0x3f,0x4d, +0xb7,0x2f,0x16,0x7e,0x96,0x88,0x97,0x2f,0xe2,0x0, 0xc6,0x81,0x3f,0x5c,0x3f,0x4d, +0xb7,0x2f,0xe4,0x0, 0xc4,0x85,0x9f,0x18,0xe0,0x3, 0x1e,0xb0,0xe4,0x0, 0xc7,0x5, +0x3c,0x9d,0x86,0x89,0xb7,0x1f,0xe0,0x0, 0x1f,0xbf,0xae,0x8f,0x38,0x82,0x0, 0x0, +0x8, 0xb3,0xe0,0x2, 0x19,0x2c,0x39,0xe8,0x8f,0xb2,0x2f,0xab,0xe0,0x0, 0x1f,0xa4, +0xe0,0x0, 0x1e,0xa3,0xe0,0x0, 0x17,0x0, 0xe0,0x80,0xaf,0x1f,0x3e,0xff,0x1, 0xfd, +0x17,0x80,0x16,0xff,0xaf,0x12,0xaf,0x22,0xaf,0x42,0xaf,0x32,0xae,0xd2,0xb7,0xd2, +0xb7,0xe2,0xe0,0x1, 0xaf,0x12,0xe0,0x2, 0xb7,0xb2,0xe0,0x2, 0xb7,0xc2,0xe0,0x4, +0xaf,0x52,0xe0,0x4, 0xb7,0x92,0xe0,0x4, 0xb7,0xa2,0xe0,0x8, 0xaf,0x12,0x21,0x88, +0xe0,0x2, 0x1f,0x7b,0x17,0x87,0xaf,0x8e,0xe0,0x2, 0x1f,0x77,0xaf,0x8e,0x9, 0xe1, +0x8f,0x82,0x17,0x1, 0xe4,0x0, 0xc7,0x9c,0x3f,0x92,0xe0,0x1, 0x8c,0xf, 0xe0,0x2, +0x1f,0xc8,0x87,0x8f,0xe0,0x2, 0x1f,0x9e,0xaf,0xf, 0xef,0xfc,0xd4,0x4, 0x0, 0xc7, +0x8, 0xb1,0x14,0x1, 0xdf,0xbe,0xe0,0x2, 0x1f,0xac,0x15,0x0, 0x8c,0x8f,0xe0,0x0, +0x1c,0x78,0xf0,0x2, 0x19,0xc8,0xf0,0x3, 0x1a,0x30,0x3f,0x6f,0xf0,0x40,0x3a,0xef, +0x3d,0xef,0x3e,0xea,0xf0,0x0, 0x13,0x1, 0xe8,0x0, 0x8f,0x83,0xe1,0x80,0x8e,0x18, +0xe4,0x0, 0xc7,0x85,0xf0,0x0, 0x13,0x81,0xe8,0xf, 0x3f,0x94,0x8f,0x8f,0xf0,0x17, +0x3b,0x9d,0x3f,0xfc,0xe0,0x1, 0xae,0xb, 0xe0,0x6d,0x39,0xa9,0x3c,0xed,0x3f,0xfc, +0xe8,0x40,0x3e,0xe7,0xe2,0x1, 0xc6,0xff,0xe8,0x40,0x3f,0xe6,0xe0,0x6f,0x39,0xaa, +0xe2,0x0, 0xce,0x83,0xc5,0x9c,0x3d,0x6f,0x1, 0xe0,0xe0,0x0, 0x2f,0xd1,0xf8,0x0, +0x8b,0x85,0xf2,0x0, 0xcb,0x82,0x5, 0x86,0x17,0x80,0xe8,0x0, 0xaf,0x85,0xf0,0x0, +0x13,0x80,0xe0,0x0, 0x1f,0xc6,0xf0,0xb, 0x33,0xa2,0xf0,0x3, 0x1b,0x33,0xe0,0x0, +0x1e,0x4b,0xf0,0x1, 0x18,0xee,0xf0,0x1, 0x19,0x70,0xf0,0x1, 0x19,0xef,0xf0,0x1, +0x1a,0x6d,0x3d,0x9f,0x16,0x80,0xf0,0x40,0x3b,0xfd,0x1, 0x26,0x8f,0x8b,0xe0,0xc, +0x14,0x52,0xe4,0x32,0xc7,0xc8,0xe0,0x25,0x14,0xf6,0xe0,0x19,0x15,0x24,0x3c,0x1f, +0x3c,0x9f,0x3d,0x1f,0x3c,0x1c,0x3f,0x9c,0x3c,0x9c,0x3d,0x1c,0xf0,0x0, 0xbb,0x4e, +0xbf,0xde,0xbc,0x6e,0xe0,0x1, 0xbc,0x8e,0xbd,0x7e,0xc6,0x81,0xe2,0x1, 0xc6,0xff, +0xe2,0x0, 0xce,0x83,0xc7,0x1c,0xc5,0x81,0x1, 0xdf,0xe8,0x0, 0x87,0x5, 0xe0,0x2, +0x1f,0xea,0xaf,0xf, 0x8, 0xe1,0xf0,0x0, 0xbb,0x4e,0xf0,0x0, 0xb8,0xde,0xf0,0x0, +0xb9,0x6e,0xf0,0x1, 0xb9,0x8e,0xf0,0x0, 0xba,0x7e,0x0, 0xe8,0xe8,0x0, 0xac,0x85, +0xe7,0xff,0x0, 0xaf,0xe0,0x2, 0x1f,0x6a,0x16,0x81,0x17,0x80,0x8d,0x8e,0xe0,0x2, +0x1c,0xfb,0xe0,0x2, 0x1f,0x2c,0xe0,0x2, 0x1d,0x77,0xe0,0x8, 0x36,0xb8,0x3e,0x6d, +0xf0,0x40,0x3b,0xef,0x3d,0xff,0x1, 0x13,0x8e,0x89,0x3e,0xd8,0x26,0x83,0xe0,0x1, +0xae,0x7e,0x8e,0x8a,0x3e,0xd8,0x26,0x83,0xe0,0x1, 0xae,0x7e,0xc7,0x81,0xe2,0x1, +0xc7,0xff,0xe2,0x0, 0xcf,0x83,0xc7,0x1c,0x1, 0xee,0x38,0x82,0xf0,0x1, 0xab,0xfe, +0x0, 0xf6,0xe0,0x2, 0x1f,0x6a,0xe0,0x2, 0x1d,0xac,0x16,0x81,0x17,0x80,0xe0,0x2, +0x1c,0xfb,0x8d,0xe, 0xe0,0x8, 0x36,0xb8,0x3f,0x6b,0x3e,0x6d,0xf0,0x40,0x3b,0xef, +0x3d,0x7f,0x1, 0x18,0x8e,0x89,0x3e,0xd8,0x26,0x85,0xe0,0x1, 0xae,0x6e,0xe0,0x1, +0xae,0x7e,0xc7,0x81,0xe2,0x1, 0xc7,0xff,0xe2,0x0, 0xcf,0x83,0xc7,0x1c,0x1, 0xf1, +0x17,0x80,0xe0,0x1, 0xaf,0xeb,0x14,0x1, 0xe0,0x5, 0xaf,0xab,0xe0,0x8, 0xaf,0xeb, +0x38,0x82,0xf0,0x1, 0xab,0xee,0xf0,0x1, 0xab,0xfe,0x0, 0xec,0x8, 0xb7,0xf8,0x0, +0xc, 0x39,0xe0,0x2, 0x1a,0xac,0x11,0x81,0xe0,0x2, 0x1a,0x2b,0xf0,0x2, 0x1c,0x9e, +0x3b,0xe8,0x39,0x65,0xdf,0xa0,0x13,0x0, 0xf0,0x40,0x3c,0x63,0xe0,0x1, 0x8f,0xf2, +0x2f,0x98,0xc1,0x1c,0xef,0xfe,0xd5,0xe3,0x2c,0x2c,0x39,0x74,0x1, 0xf8,0x11,0x1, +0x23,0xc, 0x8f,0x85,0xe0,0x2, 0x1f,0x1e,0xe4,0x0, 0xc7,0x9c,0xa9,0xe, 0x3a,0x9f, +0xe0,0x1, 0x8c,0x5, 0xef,0xfc,0xd2,0xff,0x3c,0x62,0xf8,0x0, 0xc, 0xa8,0xb, 0xe1, +0x3c,0x63,0xef,0xfd,0xd3,0x39,0xe0,0x1, 0x8c,0x2, 0xf8,0x0, 0xac,0x9, 0xef,0xfc, +0xd2,0xf2,0xe2,0x0, 0xcb,0x82,0x1, 0x1c,0xa4,0x52,0xe0,0x1, 0xa5,0x2, 0xa4,0xe2, +0x3d,0xe7,0xef,0xfa,0xd8,0xc3,0x3b,0x63,0xc1,0x1c,0xef,0xfe,0xd5,0xb8,0x24,0x56, +0x11,0x0, 0x23,0x63,0x8f,0x85,0x17,0x1, 0xe4,0x0, 0xc7,0x9c,0x3a,0x9f,0xe0,0x1, +0x8c,0x5, 0xe0,0x2, 0x1f,0x9e,0xaf,0xf, 0xef,0xfc,0xd2,0xd5,0x0, 0xd6,0xa4,0x72, +0x0, 0xe5,0x8, 0xb7,0xf8,0x0, 0xc, 0x3b,0x17,0xe, 0x3f,0x38,0xe0,0x3, 0x1f,0xac, +0x3a,0xe8,0x3f,0x9e,0xf0,0x0, 0x8c,0x3f,0x89,0x9f,0xef,0xfe,0xd5,0x2e,0xe2,0x0, +0xca,0x82,0xe0,0x1, 0x1a,0x6e,0xe0,0x1, 0x1f,0xed,0xe0,0x2, 0x19,0x2c,0xe0,0x2, +0x1b,0x2b,0xf0,0x1, 0x1d,0xef,0xf0,0x1, 0x1d,0x70,0xe8,0x3, 0x39,0xc8,0xf0,0x40, +0x3c,0xe8,0xe0,0x64,0x39,0x2f,0x13,0x81,0xf0,0x0, 0x14,0x0, 0xe0,0x1, 0x8f,0xf2, +0x27,0x8f,0xe2,0x0, 0xca,0x82,0x1, 0x23,0xa4,0xd2,0x3d,0xe7,0x3d,0x64,0x3c,0x69, +0xef,0xff,0xd0,0x95,0xf0,0x0, 0x2c,0x8b,0x29,0x91,0xf0,0x1, 0xac,0x72,0xc1,0x1c, +0x39,0x76,0x1, 0xed,0xf8,0x0, 0xd, 0xa8,0xb, 0xe1,0xa4,0xe2,0x3d,0xe7,0xe8,0x40, +0x3d,0x6a,0x3c,0x69,0xef,0xff,0xd0,0x83,0x21,0xf1,0xe0,0x1, 0xa4,0x82,0x3d,0xe7, +0xe8,0x40,0x3d,0x6b,0x3c,0x69,0xef,0xff,0xd0,0x7a,0x0, 0xe8,0xa4,0xf2,0x0, 0xde, +0xe0,0x2, 0x1f,0xfa,0x8f,0x8f,0x27,0xac,0xe0,0x0, 0x1f,0xbf,0x8f,0xf, 0xe0,0x0, +0x1f,0xf8,0x8f,0x8f,0x3f,0xfe,0xe0,0x0, 0x1, 0x47,0xe0,0x0, 0x1f,0xf7,0x8f,0x8f, +0x3f,0xfe,0xe0,0x0, 0x1, 0x43,0xe0,0x0, 0x1f,0xf6,0x8f,0x8f,0xe0,0x2f,0x3f,0x8e, +0x37,0xa1,0xe0,0x2, 0x1f,0x6a,0x8f,0xe, 0x3f,0x7f,0x1, 0x12,0x2c,0x12,0x17,0x1c, +0xe0,0x2, 0x1e,0xac,0x3f,0x3f,0xe2,0x0, 0xcc,0x82,0x3f,0x1d,0xa5,0x5e,0x1, 0x1e, +0xe0,0x1, 0x1f,0xf2,0x15,0x80,0xa4,0x8f,0x3c,0x69,0xe7,0xe0,0x0, 0xc8,0x38,0x82, +0x17,0x7e,0x3f,0x18,0xe2,0x0, 0xcf,0x1, 0x5, 0x97,0x15,0x1, 0xe0,0x2a,0x3c,0xa, +0x2d,0x5, 0x17,0x4, 0xe0,0x28,0x3c,0xe, 0x24,0x6c,0xe4,0x0, 0xc7,0x9c,0xe0,0x2, +0x1f,0x2c,0x3f,0x9e,0xe0,0x1, 0xa5,0xf, 0x0, 0xe4,0xc7,0x81,0xe4,0x0, 0xc7,0x9c, +0x3f,0x9d,0xa5,0xf, 0x0, 0xde,0xe4,0x0, 0xc7,0x9c,0xe0,0x2, 0x1f,0x2c,0x3f,0x9e, +0xa5,0x6f,0x0, 0xd7,0x17,0x80,0x0, 0xc6,0x17,0x81,0x0, 0xc4,0xe0,0x2, 0x1f,0xac, +0xe4,0x0, 0xc4,0x9c,0x17,0x1, 0x3c,0x9f,0xe0,0x1, 0x8c,0x9, 0xe0,0x2, 0x1f,0x9e, +0xaf,0xf, 0xe7,0x84,0x0, 0xa0,0x8, 0xb3,0xe0,0x2, 0x1f,0x66,0xe0,0x2, 0x19,0x9e, +0x17,0x80,0x8f,0xe, 0xaf,0x83,0x27,0xa, 0xe0,0x2, 0x19,0x2c,0x8f,0x32,0xe2,0x0, +0xcf,0x2, 0x1, 0x19,0xe2,0x0, 0xcf,0x3, 0x1, 0x2, 0x9, 0xe1,0x8c,0x52,0x8f,0x82, +0xe2,0x1, 0xcc,0x7f,0x1, 0x30,0x17,0x2, 0xe1,0x2f,0x3f,0x9e,0x2f,0x85,0xe1,0x2e, +0x3c,0x1e,0x2f,0x2, 0xdb,0x77,0x17,0x80,0xaf,0xc2,0x17,0xff,0xaf,0xd2,0x17,0x80, +0xaf,0xb2,0x9, 0xe1,0xe0,0x1, 0x1e,0x51,0x16,0x9c,0x8f,0xc, 0x3e,0xbe,0x3e,0x92, +0xe0,0x1, 0x8d,0x9d,0x25,0xe3,0xc7,0x1, 0xe2,0x1, 0xc7,0x7f,0xe2,0x0, 0xcf,0x2, +0xe0,0x1, 0xaf,0x9d,0x2, 0x8d,0xaf,0xc, 0xe4,0x0, 0xc7,0x1c,0x17,0x81,0x3f,0x12, +0xe0,0x1, 0x8c,0xe, 0xaf,0x83,0xef,0xfc,0xd1,0xde,0x8f,0x32,0x0, 0xcc,0xaf,0x8c, +0x17,0x0, 0x0, 0xf3,0xe4,0x0, 0xc7,0x9c,0x17,0x1, 0x3f,0x92,0xe0,0x1, 0x8c,0xf, +0xaf,0x3, 0xef,0xfc,0xd1,0xd0,0x0, 0xd4,0xe0,0x2, 0x1f,0xac,0x8c,0x4f,0x38,0x82, +0xe0,0x2, 0x1f,0xfa,0x8f,0x8f,0xe0,0x0, 0x27,0xdf,0xe0,0x2, 0x1f,0xc0,0xe0,0x4, +0x8f,0xdf,0xe2,0x0, 0xcf,0x81,0xe0,0x0, 0x1, 0x57,0x8, 0xb5,0xe2,0x0, 0xcc,0x1, +0x39,0x68,0x39,0xe9,0x17,0x84,0x1, 0x9, 0xef,0xfe,0xd4,0x1f,0xe2,0x0, 0xcc,0x0, +0x17,0x2, 0xe0,0x6e,0x39,0x28,0x3f,0xee,0x39,0xff,0xe0,0x2, 0x1a,0x2c,0xe0,0x1, +0x1, 0x54,0x8f,0xb4,0x2f,0xa0,0xe0,0x0, 0x1e,0xa4,0xe0,0x0, 0x1d,0xa3,0x17,0x80, +0xe0,0x80,0x8e,0x1d,0x17,0x1, 0x3f,0x1f,0xe2,0x0, 0xce,0x1, 0xe2,0x1, 0xc7,0x7f, +0xe0,0x6f,0x39,0x2e,0x3d,0xfd,0x1, 0xf5,0xe2,0x0, 0xcf,0x87,0xea,0x12,0x7f,0xa8, +0xe0,0x1, 0x2, 0xe0,0x8f,0xf, 0xe2,0x0, 0xcf,0x1f,0x5, 0x85,0x17,0x20,0xaf,0xf, +0x17,0x80,0xaf,0xc4,0x3c,0xe2,0x3c,0x63,0xef,0xfd,0xd2,0x14,0x8a,0xb4,0xe2,0x0, +0xca,0x81,0xe0,0x1, 0x1, 0x5, 0xe2,0x0, 0xca,0x82,0x1, 0x94,0xe2,0x0, 0xc9,0x1, +0xe0,0x1, 0x1, 0x44,0x3c,0x62,0xef,0xfe,0xd3,0xe0,0xe2,0x0, 0xcc,0x0, 0x17,0x80, +0xe0,0x65,0x39,0x28,0x3c,0x65,0xe1,0x2f,0x39,0x8f,0x27,0x86,0xe1,0x29,0x39,0x88, +0x24,0x83,0xa, 0xe1,0x38,0x82,0x8f,0x94,0x16,0x9c,0x3e,0xbf,0xe0,0xc, 0x3a,0x1d, +0xe0,0x1, 0x87,0x1c,0xc7,0x1, 0xe2,0x1, 0xc7,0x7f,0xe2,0x0, 0xcf,0x1, 0xe0,0x1, +0xaf,0x1c,0x5, 0xf0,0xe0,0x1, 0x1d,0xc7,0x9d,0x5c,0x9f,0xb, 0x3f,0x1a,0xe2,0xff, +0xcf,0x7e,0xe0,0x1, 0x5, 0x34,0xe0,0xff,0x17,0x7f,0xb7,0x5c,0x3e,0x94,0x9f,0xb, +0x9e,0x6d,0x3e,0x7e,0x3, 0x83,0x9f,0xb, 0xb7,0x6d,0xc7,0x81,0xe2,0x1, 0xc7,0xff, +0xe2,0x0, 0xcf,0x82,0xe0,0x1, 0x2, 0xac,0xaf,0x94,0x8d,0x84,0x3f,0xfb,0xe0,0x1, +0x1, 0x2c,0x8f,0xa4,0xe0,0x0, 0x1f,0x73,0x8f,0xe, 0x3f,0x7f,0x2, 0xcb,0x14,0x0, +0xe0,0x2, 0x1f,0x2c,0x3c,0xe8,0xe1,0xff,0x16,0x7f,0x3f,0xe8,0x9e,0xde,0x15,0x1, +0x3e,0xfc,0x3d,0x1f,0x3, 0x84,0x9c,0x6e,0x3c,0xef,0x3e,0x6d,0x3f,0xea,0xe2,0x1, +0xc7,0xff,0xe2,0x0, 0xcf,0x83,0xc7,0x1c,0x1, 0xf2,0x3d,0xf9,0x1, 0x1a,0xe4,0x0, +0xc5,0x9c,0xe0,0xf, 0x3a,0x1b,0x9f,0xdf,0xe0,0xe, 0x37,0xc2,0xe4,0x0, 0xc7,0x3, +0x3f,0x7c,0x5, 0x8b,0xe0,0x0, 0x1f,0x75,0x8e,0x8e,0xe0,0x0, 0x1f,0x74,0x36,0xa8, +0x8f,0xe, 0x3f,0x4d,0x3f,0x78,0x2, 0x87,0x37,0xc1,0x3f,0xfc,0xe0,0x0, 0x2, 0xfc, +0xe0,0x1, 0x14,0xff,0x17,0x83,0xac,0xd4,0xaf,0xb4,0xa, 0xe1,0xe0,0x0, 0x1f,0xbb, +0xe0,0x6, 0x8f,0xdf,0xc7,0xff,0x3c,0x7f,0xe7,0xff,0x1, 0x8d,0x17,0x80,0x8e,0x84, +0xb7,0xd4,0x17,0x0, 0xb7,0xe4,0x16,0x7f,0xe0,0x1, 0xaf,0x94,0xe0,0x2, 0xb7,0xb4, +0xe0,0x2, 0xb7,0xc4,0xe0,0x4, 0xb7,0x94,0xe0,0x4, 0xb7,0xa4,0xe0,0x1, 0x1f,0xd1, +0xae,0x94,0xae,0x8f,0x17,0x82,0xaf,0x24,0xae,0x54,0xe0,0x4, 0xaf,0x54,0xe0,0x8, +0xaf,0x14,0xaf,0xb4,0xa, 0xe1,0x8f,0x34,0xe7,0xfe,0x2f,0x4e,0xea,0x12,0x7e,0xa9, +0x87,0x8d,0xc7,0x81,0xe2,0x1, 0xc7,0xff,0xe2,0x0, 0xcf,0x93,0x2, 0xac,0xaf,0x8d, +0xe0,0x0, 0x1f,0x75,0xe0,0x1, 0x1e,0x47,0x8e,0x8e,0xe0,0x0, 0x1f,0x74,0x9e,0xc, +0x8f,0xe, 0x36,0xa8,0x3f,0x4d,0x3e,0x7e,0xe0,0x0, 0x1f,0x22,0x3f,0x9e,0x5, 0xa3, +0x17,0x1, 0xaf,0xf, 0xe7,0xfe,0x0, 0x91,0x17,0x85,0x14,0x4, 0xe7,0xfe,0x0, 0xc5, +0xe0,0x0, 0x1c,0x22,0x17,0x1, 0x16,0x80,0x15,0x14,0x14,0x80,0xae,0x8f,0xaf,0x44, +0xaf,0x34,0xe0,0x4, 0xd4,0xd9,0xe0,0x0, 0x1f,0x91,0xe0,0x2, 0x17,0x68,0xb7,0xf, +0xe7,0xfe,0x0, 0x9a,0xaf,0xd, 0x3f,0xee,0x0, 0xd4,0x9f,0xb, 0x3d,0x1e,0xb5,0x5c, +0xe7,0xfe,0x0, 0xce,0x17,0x0, 0xaf,0xf, 0xe7,0xfd,0x0, 0xef,0x17,0x80,0xaf,0x94, +0x17,0x80,0xe7,0xfe,0x0, 0xd4,0x87,0xa4,0xc7,0x81,0xe2,0x1, 0xc7,0xff,0xaf,0xa4, +0xe7,0xfe,0x0, 0xd2,0xe0,0x0, 0x1f,0xf5,0x3d,0x94,0x8f,0xf, 0xe0,0x0, 0x1f,0xf4, +0x37,0x28,0x8f,0x8f,0x9e,0xeb,0x3f,0xce,0x3e,0xff,0xe0,0x1, 0x17,0xff,0xe0,0x6f, +0x3a,0xa9,0x3c,0xef,0xe7,0xfe,0x0, 0xf8,0xe0,0x2, 0x1f,0xac,0xe0,0x1, 0x8f,0xf, +0x3f,0x78,0x1, 0xd, 0xe0,0x4, 0x8f,0x4f,0x3f,0x78,0x1, 0x9, 0xe0,0x8, 0x8f,0xf, +0x3f,0x78,0x1, 0x5, 0xe0,0x1, 0xac,0xf, 0x14,0x1, 0x38,0x82,0x14,0x0, 0x38,0x82, +0xe2,0x1, 0xcc,0x80,0xe0,0x2, 0x1f,0xac,0x1, 0x1f,0xe2,0x1, 0xcc,0x81,0x1, 0x2b, +0xe2,0x0, 0xcc,0x82,0x5, 0x82,0x14,0x80,0x8f,0x8f,0x3c,0xff,0x1, 0x4, 0xe2,0x0, +0xcf,0x82,0x5, 0x86,0xe0,0x2, 0x1f,0x93,0xe0,0x1, 0xac,0xaf,0x38,0x82,0x8, 0xb1, +0xc0,0x7c,0x3c,0x69,0x7c,0x81,0xd9,0xbe,0x64,0x81,0xe0,0x2, 0x1f,0x93,0xe0,0x1, +0xac,0xaf,0xc0,0x4, 0x8, 0xe1,0xe0,0x1, 0x8f,0xf, 0xe0,0x4, 0x8e,0xcf,0x14,0x80, +0x3f,0x7d,0x3, 0x9b,0xe0,0x8, 0x8e,0x8f,0x3e,0xfe,0x17,0x2, 0xe0,0x6e,0x3a,0xa9, +0x3c,0xee,0x0, 0xdb,0xe0,0x1, 0x8f,0xf, 0xe0,0x4, 0x8e,0xcf,0x14,0x80,0x3f,0x7d, +0x5, 0x89,0xe0,0x8, 0x8e,0x8f,0x3e,0xfe,0x17,0x2, 0xe0,0x6e,0x3c,0xa9,0x3c,0xee, +0x0, 0xcc,0x3f,0x6d,0x14,0x81,0x0, 0xf6,0x3f,0x6d,0x14,0x81,0x0, 0xe4,0x0, 0x0, +0x8, 0xb7,0xe0,0x2, 0x1f,0x7d,0x8f,0xfe,0x89,0x6e,0x8a,0x5e,0x27,0xad,0x12,0xff, +0x3a,0x9f,0xe2,0x1, 0xc2,0xff,0xe0,0x4c,0xc2,0xa7,0xe0,0x1, 0x1f,0xff,0x32,0xa1, +0xe0,0x1, 0x1b,0x64,0x39,0xe8,0x3a,0x9f,0xe0,0x0, 0x13,0x80,0x21,0x1e,0x14,0x0, +0x3f,0x67,0x3e,0x64,0xe3,0xff,0xc7,0x7f,0xe0,0x40,0x3f,0xe8,0xe0,0xd, 0x37,0x21, +0xc7,0x81,0x3e,0x93,0xe2,0x1, 0xc7,0xff,0x96,0x8d,0x39,0x7f,0x3f,0x1c,0x3c,0x1d, +0xe3,0xff,0xc7,0x7f,0x1, 0xf4,0x3c,0xe2,0xe0,0x4, 0xd3,0x82,0xe0,0x80,0xb4,0x16, +0x3a,0xf6,0xc3,0x81,0x1, 0xe4,0xb, 0xe1,0x3c,0x62,0x3c,0xe2,0xe0,0x4, 0xd3,0x78, +0xe0,0x80,0xb4,0x16,0x3a,0xf6,0xc3,0x81,0x1, 0xda,0x0, 0xf6,0xe0,0x0, 0x24,0xd3, +0x8, 0xb3,0x16,0x7f,0x3e,0x19,0xe2,0x1, 0xc6,0x7f,0x11,0x7e,0x39,0x18,0x36,0x21, +0x3e,0x18,0x39,0xe2,0xe0,0x0, 0x14,0x0, 0xe0,0x43,0x3d,0x9a,0xe0,0x80,0x97,0x13, +0xe4,0xd, 0x37,0xf, 0xe2,0xf, 0x3e,0xce,0x3f,0xad,0xe0,0x43,0x3f,0x9f,0x3f,0xfa, +0xe0,0x6f,0x3a,0x2b,0x3e,0x73,0x3c,0x1f,0x1, 0xf2,0xe0,0x4, 0xd3,0x51,0xe2,0x0, +0xcc,0x8, 0x15,0x88,0xe0,0x6b,0x3b,0x28,0xe7,0xfe,0x16,0x2f,0xe0,0x0, 0x15,0x6d, +0x0, 0x91,0xe0,0xe, 0x3f,0xab,0xe0,0x2d,0x3f,0xac,0xe0,0x43,0x3f,0x1e,0x26,0x99, +0xe0,0x2d,0x3e,0x1e,0x26,0x96,0xe0,0xf, 0x37,0x2, 0xe0,0x80,0xb7,0x92,0x39,0xf2, +0x1, 0x18,0xe0,0x0, 0x97,0x92,0xe2,0x0, 0xcf,0x87,0x2, 0x6c,0xe3,0xff,0xcf,0xf9, +0x3, 0x75,0xe0,0xe, 0x3d,0x9f,0xe0,0x2d,0x3f,0xac,0xe0,0x43,0x3f,0x1e,0x2e,0xe9, +0xe0,0x2f,0x3d,0x2f,0x27,0x84,0xe0,0x2f,0x3f,0x1a,0x2f,0xe6,0x3f,0xee,0x0, 0xe6, +0x9, 0xe1,0x38,0x82,0x8, 0xb7,0xf8,0x0, 0xc, 0x39,0xe0,0x2, 0x1f,0xfd,0xe0,0x1, +0x1b,0x72,0x8a,0x6f,0xa4,0x86,0xe0,0x1, 0x1c,0x62,0xe7,0x0, 0x16,0x0, 0xe0,0xff, +0x15,0xff,0x15,0x0, 0x8a,0xff,0xef,0xfe,0xde,0x8, 0x22,0x2f,0xc2,0x7f,0xe2,0x1, +0xc2,0x7f,0xe0,0x4b,0xc2,0x6b,0xe0,0x1, 0x1f,0xff,0x32,0x21,0xe0,0x1, 0x19,0xe1, +0xe0,0x19,0x32,0xa1,0x3a,0x1f,0x11,0x0, 0xf0,0x0, 0x14,0x3, 0xe0,0x0, 0x13,0xda, +0xe0,0x80,0x97,0x93,0xe8,0x40,0x3c,0xe8,0xe4,0x8, 0x37,0x8f,0xe2,0xf, 0x3c,0x4f, +0xe0,0x8, 0x3f,0xa8,0xe0,0x4, 0xd2,0xec,0xe2,0x0, 0xcc,0x5a,0xa7,0x86,0x3d,0x67, +0xe0,0x6a,0x3b,0x28,0xe3,0xff,0xc5,0x7f,0xe0,0x8, 0x3f,0x92,0x3c,0xe5,0xdf,0x6f, +0x3a,0x73,0xe8,0x2, 0x39,0x19,0x1, 0xe5,0xf8,0x0, 0xc, 0xa8,0xb, 0xe1,0x0, 0x0, +0x8, 0xb7,0xf8,0x0, 0xc, 0x3c,0xe1,0xff,0xc0,0x8, 0xe0,0x2, 0x1f,0xfd,0xf0,0x1, +0x1e,0x7f,0x8a,0x7f,0xe8,0x40,0x3c,0x6c,0x8b,0x6f,0xef,0xff,0xdf,0x1b,0xe0,0x0, +0x22,0x4f,0x13,0xff,0x3b,0x94,0x11,0xff,0xe2,0x1, 0xc3,0xff,0x39,0x96,0xe0,0x4c, +0xc3,0xa7,0xe2,0x1, 0xc1,0xff,0xf0,0x0, 0x14,0x4, 0xf0,0x18,0x3c,0x10,0x33,0xa1, +0x31,0xa1,0xe0,0x1, 0x1a,0xe4,0xe8,0x7, 0x3b,0x9c,0x32,0x21,0xe8,0x3, 0x39,0x98, +0xf0,0x0, 0x15,0x3, 0xf0,0x0, 0x14,0xda,0xf0,0x0, 0x15,0x80,0xe0,0x80,0x97,0x95, +0xe8,0x40,0x3c,0xea,0xe4,0x8, 0x37,0x8f,0xe2,0xf, 0x3c,0x4f,0xe0,0x8, 0x3f,0xa8, +0xe0,0x4, 0xd2,0x9e,0xe2,0x0, 0xcc,0x5a,0xe8,0x40,0x3d,0x69,0xe0,0x6a,0x3b,0x28, +0xe3,0xff,0xc5,0x7f,0x23,0x21,0x11,0x2, 0x39,0x10,0x3f,0x62,0xe8,0x40,0x3f,0xec, +0x96,0x8f,0x3f,0x94,0xe0,0x80,0xb6,0x9e,0x3f,0x73,0x1, 0xfb,0x3c,0xe6,0xe8,0x40, +0x3c,0x68,0xdf,0x15,0xe8,0x40,0x3f,0xec,0xe0,0x80,0x97,0x12,0x39,0x73,0xb7,0xf, +0x3f,0x94,0x1, 0xfb,0x3a,0xf7,0xf0,0x0, 0xc6,0x2, 0x1, 0xd1,0xe0,0x0, 0xc0,0x78, +0xf8,0x0, 0xe, 0x28,0xb, 0xe1,0xe8,0x40,0x3c,0xeb,0xe8,0x40,0x3c,0x68,0xde,0xff, +0x3a,0xf7,0xf0,0x0, 0xc6,0x2, 0x1, 0xc3,0x0, 0xf2,0x0, 0x0, 0x8, 0xb7,0xf8,0x0, +0xc, 0x3e,0xc0,0x68,0xe0,0x3, 0x1f,0xc7,0xf0,0x2, 0x1e,0x7d,0x8f,0xf, 0xe8,0x0, +0x8e,0x4c,0xe8,0x0, 0x8e,0xdc,0xe2,0x0, 0xcf,0x1, 0x7e,0x4, 0x3a,0x68,0x7e,0x85, +0x39,0xe9,0xe0,0x2, 0x1, 0x77,0x8f,0x8f,0xe0,0x1, 0x1f,0x8, 0xe2,0x0, 0xcf,0x83, +0xe0,0x1, 0x1f,0x89,0x8f,0x8f,0xe0,0x2, 0x1, 0x73,0xf0,0x0, 0x8d,0xe, 0x37,0xa8, +0xf0,0x1a,0x3d,0x4f,0xf0,0x0, 0x7d,0x1, 0xe0,0x2, 0x22,0x1f,0x67,0x4, 0x12,0x80, +0x3f,0xee,0xc7,0xff,0x7f,0x86,0xf0,0x40,0x3f,0x65,0xf0,0x0, 0x1e,0x8d,0xf0,0x2, +0x1c,0xbc,0xe0,0x1, 0x1b,0xff,0x13,0x3, 0xe0,0x1, 0x29,0x8e,0xe8,0x0, 0x8f,0x8d, +0xf8,0x0, 0x8d,0x9d,0x3f,0xfe,0xe0,0x0, 0x1, 0x76,0xe8,0x0, 0x8f,0x9, 0xe2,0x0, +0xcf,0x1, 0xe0,0x1, 0x1, 0x7, 0xe8,0x0, 0x89,0x5c,0x66,0x1, 0x39,0x3f,0xe8,0x2, +0x39,0x1b,0xf0,0x40,0x3d,0xe2,0xf3,0xff,0xc5,0xff,0xf0,0xe, 0x35,0xa1,0x3f,0x17, +0x96,0x8e,0xe4,0x9, 0x36,0x8f,0xe2,0xe, 0x3c,0xcd,0x3f,0x29,0x3f,0x7c,0xe0,0x0, +0x2, 0x5a,0xe0,0x1, 0x2f,0x96,0x67,0x84,0x39,0x65,0xe2,0x0, 0xcf,0x81,0xe0,0x2, +0x2, 0x47,0xe2,0x0, 0xce,0x80,0xe0,0x1, 0x4, 0x26,0x3f,0xe5,0xe3,0xff,0xc7,0xff, +0x37,0xcf,0xe0,0x1, 0x27,0xad,0x3f,0xe2,0xe3,0xff,0xc7,0xff,0x37,0xcf,0xe0,0x1, +0x27,0xa7,0x17,0x8e,0xe8,0xf, 0x3f,0x9b,0x37,0xa1,0xe8,0xf, 0x3f,0x9c,0x9c,0xf, +0x3c,0xe6,0xe0,0x4, 0xd2,0x30,0x11,0x7c,0xe8,0x2, 0x39,0x1b,0xf0,0x40,0x3c,0x68, +0xf3,0xff,0xc4,0x7f,0xe3,0xff,0xc1,0x7f,0x17,0x7f,0xe8,0xe, 0x3f,0x1b,0xf0,0x40, +0x3d,0x6e,0xf3,0xff,0xc5,0x7f,0x17,0x8e,0xe8,0xf, 0x3f,0x9a,0x37,0xa1,0x3c,0xe6, +0xe8,0xf, 0x3f,0x9c,0xf0,0x2, 0x25,0x8e,0xf0,0x40,0x3d,0x72,0xe0,0x1, 0x1, 0x31, +0x9c,0xf, 0xe0,0x4, 0xd2,0x10,0xe3,0xff,0xc4,0x7f,0xf0,0x40,0x3c,0x78,0xe0,0x1, +0x1, 0xfb,0xf8,0x40,0x3d,0xea,0x0, 0xe1,0x17,0xff,0x3f,0x92,0x39,0x6f,0xe2,0x1, +0xc1,0x7f,0xe0,0x1, 0x29,0x49,0x29,0x86,0x14,0x80,0xe8,0x40,0x3c,0x6e,0xe0,0x0, +0xdc,0x1d,0x16,0x1, 0xe8,0xc, 0x3e,0x1e,0xf0,0x40,0x3f,0x6c,0xf2,0x1, 0xc7,0x7f, +0xe8,0x40,0x3a,0x7e,0xf0,0x0, 0xc6,0x82,0xe0,0x1, 0x1, 0x7, 0xe8,0x0, 0x8f,0x4c, +0xe7,0xfe,0x21,0xf6,0xe8,0x7, 0x8f,0xcd,0xf8,0x7, 0x8d,0xdd,0xe7,0xfe,0x0, 0xf4, +0x27,0xe9,0xe0,0x1, 0x1e,0x42,0xe0,0xe, 0x8f,0x1c,0xc7,0x7f,0xe0,0x2e,0x3f,0xf, +0x2f,0x61,0xf0,0x2e,0x3d,0x8e,0x2f,0x5e,0xe0,0xe, 0x8f,0x2c,0xc7,0x7f,0xf0,0x40, +0x3d,0xfe,0x1, 0x58,0xe8,0x0, 0x89,0x5c,0x66,0x1, 0x39,0x3f,0xe8,0x2, 0x39,0x1b, +0xf0,0x40,0x3d,0xe2,0xf3,0xff,0xc5,0xff,0xf0,0xe, 0x35,0xa1,0x3f,0x17,0x96,0x8e, +0xe4,0x9, 0x36,0x8f,0xe2,0xe, 0x3c,0xcd,0x3f,0x29,0x3f,0x7c,0x2, 0x43,0x66,0x5, +0xf0,0x9, 0x3d,0xac,0x66,0x6, 0x34,0xa1,0x3e,0x7f,0x3c,0x97,0x91,0x9, 0xe0,0x1, +0x5, 0x38,0x64,0x85,0xe2,0x0, 0xcf,0x80,0xe8,0x9, 0x3c,0x9b,0x34,0xa1,0x3c,0x97, +0x92,0x89,0x3f,0xe5,0xe0,0x6f,0x39,0xa2,0xe2,0x0, 0xce,0x80,0x39,0x6f,0xe7,0xfe, +0x3, 0x5e,0xe0,0x41,0x3f,0x82,0xe3,0xff,0xc7,0xff,0x37,0xcf,0x27,0x88,0xe0,0x41, +0x3f,0x85,0xe3,0xff,0xc7,0xff,0x37,0xcf,0xe7,0xfe,0x2f,0xdd,0xe4,0x0, 0xc7,0xa, +0xe1,0xff,0x14,0x7e,0x3c,0x5e,0x14,0x9e,0xe0,0x4, 0xd1,0x8d,0xe4,0xe, 0x31,0xf, +0xe2,0xf, 0x3f,0x42,0x3f,0xae,0xe3,0xff,0xc4,0x7f,0xe3,0xff,0xc7,0xff,0xe1,0x2f, +0x3c,0x1f,0xe7,0xff,0x27,0x88,0xe4,0xe, 0x32,0x8f,0xe2,0xf, 0x3f,0x45,0x3f,0xae, +0xe3,0xff,0xc7,0xff,0xe1,0x2f,0x3c,0x1f,0xe7,0xfe,0x2f,0xbd,0x16,0x1, 0xe8,0xc, +0x3e,0x1e,0xf0,0x40,0x3f,0x6c,0xf2,0x1, 0xc7,0x7f,0xe8,0x40,0x3a,0x7e,0xf0,0x0, +0xc6,0x82,0xe7,0xfe,0x1, 0xfd,0xc0,0x18,0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0x79,0x3, +0xf0,0xd, 0x35,0x21,0xe8,0x0, 0x9f,0x5c,0xc6,0x9a,0x7f,0x2, 0xf0,0x1b,0x3e,0x1d, +0x11,0x1, 0xe8,0x80,0x9c,0x1b,0x3c,0xe6,0xe0,0x4, 0xd1,0x55,0xe3,0xff,0xc4,0x7f, +0xf0,0x40,0x3c,0x78,0xf0,0x0, 0x13,0x81,0x14,0x81,0xf0,0x17,0x3b,0x92,0xe8,0x9, +0x3c,0x9a,0xe7,0xfe,0x1, 0xc3,0x67,0x82,0xe8,0x40,0x3f,0xfa,0xf0,0x40,0x3d,0x69, +0xf3,0xff,0xc5,0x7f,0x5, 0x88,0xe8,0x40,0x39,0x67,0xe2,0x1, 0xc1,0x7f,0xe2,0x0, +0xc9,0x5, 0x1, 0xe0,0x16,0xff,0x3e,0x92,0x67,0x83,0x66,0x3, 0xe2,0x1, 0xc6,0xff, +0x37,0xa1,0x3e,0x9c,0xc7,0xfe,0x36,0xa1,0x3f,0x97,0x3e,0x97,0x97,0x1f,0x37,0x2, +0xe0,0x80,0xb7,0x1f,0x3f,0xfd,0x1, 0xfb,0xe7,0xfe,0x29,0xad,0xe7,0xfe,0x0, 0xa6, +0xe0,0x1, 0x1f,0xd7,0x9f,0xaf,0x7f,0x81,0xe7,0xfd,0x0, 0x98,0x8c,0xe, 0x37,0xa8, +0x3c,0x4f,0x14,0x8a,0x34,0x23,0xe0,0x4, 0xd0,0xd3,0xe3,0xff,0xc4,0x7f,0x7c,0x1, +0xe7,0xfd,0x0, 0x8c,0xf0,0x0, 0x7d,0x83,0xf8,0x40,0x3d,0x6b,0xe7,0xff,0x0, 0xaa, +0xf8,0x40,0x3d,0x6b,0xf0,0x0, 0x7d,0x83,0xe7,0xff,0x0, 0xa4,0x67,0x85,0xe8,0xf, +0x3f,0x9b,0x37,0xa1,0x3f,0x97,0x92,0x8f,0x39,0x65,0xe7,0xfd,0x0, 0xb4,0x3e,0x62, +0xe0,0x6c,0x39,0xa5,0x3a,0xec,0xe7,0xfd,0x0, 0xae,0xe0,0x3, 0x1f,0xc7,0x8f,0x8f, +0xe2,0x0, 0xcf,0x83,0x1, 0x2, 0x38,0x82,0x8, 0xb1,0xe0,0x1, 0x1f,0x7, 0xe0,0x1, +0x1f,0xd7,0x86,0x8e,0xe0,0x0, 0x17,0x5a,0xb7,0x1f,0xb7,0x2f,0xe7,0xff,0x17,0x26, +0xae,0x9f,0xb7,0x3f,0xef,0xfa,0xd9,0x6, 0xe0,0x0, 0x1f,0x8e,0x8c,0xf, 0x2c,0xa, +0xe0,0x0, 0x1f,0x8c,0x8c,0xf, 0x2c,0x2, 0x8, 0xe1,0x14,0x81,0x8, 0xa1,0xe7,0xfc, +0x0, 0xa7,0x14,0x80,0xde,0x24,0x0, 0xf5,0xe0,0x3, 0x1f,0xc7,0x8f,0x8f,0xe2,0x0, +0xcf,0x81,0x1, 0x2, 0x38,0x82,0xe0,0x0, 0x1f,0x8e,0x8c,0xf, 0x24,0x7c,0x14,0x80, +0xe7,0xfc,0x0, 0x96,0x8, 0xb7,0xe1,0xff,0xc0,0x30,0x12,0x8c,0x3a,0x90,0xe0,0x0, +0x15,0x48,0x14,0x80,0x3c,0x65,0xe0,0x4, 0xd1,0xf, 0xef,0xfa,0xd8,0xdb,0xe0,0x2, +0x1f,0xe6,0xe0,0x2, 0x1a,0x7d,0x87,0x8f,0xe0,0x3, 0x8f,0x24,0xe2,0x0, 0xc7,0x81, +0x3f,0x7f,0xe0,0x2, 0x1, 0x45,0x87,0xa4,0x89,0x4, 0xe4,0xf, 0x37,0xa8,0xe4,0xe, +0x37,0xc8,0xe2,0x0, 0xcf,0x21,0xea,0x40,0xcf,0x0, 0xe0,0x6f,0x3b,0xae,0xe4,0xf, +0x37,0xc8,0x39,0xef,0xe0,0x2, 0x27,0xba,0xf7,0xff,0x12,0x7f,0xf0,0x14,0x3a,0x1f, +0xfa,0x4e,0x7b,0xf4,0xe0,0x1, 0x1f,0xf2,0x8d,0x54,0xf9,0xff,0xc3,0xff,0xf3,0xff, +0xc2,0x7f,0xf0,0x0, 0xa3,0xf, 0x3d,0xe2,0xf8,0x14,0x3a,0x17,0x35,0x21,0x17,0x80, +0xf0,0x40,0x3a,0xe5,0x25,0x9a,0x14,0x98,0x3c,0xbf,0xe8,0x40,0x3f,0x66,0xf0,0xf, +0x3a,0x99,0xe0,0x1, 0x9c,0x1f,0xa6,0x8f,0x17,0x80,0xc7,0x81,0xe3,0xff,0xc7,0xff, +0x96,0xe, 0x3f,0xfb,0x3e,0x9c,0x3f,0x1a,0x1, 0xf9,0xf0,0xf, 0x3a,0x99,0xe0,0xe, +0x3d,0x98,0xbe,0x8f,0xe0,0x1, 0xb7,0x1f,0xf8,0x40,0x3a,0x77,0xf0,0x0, 0xc3,0x2, +0x1, 0x4, 0xe8,0x80,0x8f,0x97,0x0, 0xdf,0x64,0x3, 0x5c,0x8f,0x12,0x8c,0x3a,0x90, +0xe0,0x4, 0xd0,0x16,0xb4,0x65,0xe0,0x2, 0x9c,0xd5,0xa4,0x65,0xe0,0x4, 0xd0,0x10, +0xe0,0x2, 0xb4,0x25,0xe0,0x4, 0x9c,0x95,0xe0,0x1, 0xa4,0x45,0xe0,0x4, 0xd0,0x8, +0xe0,0x3, 0xb4,0x65,0xe0,0x0, 0x21,0xd9,0xf7,0xff,0x10,0xff,0xe0,0x1, 0x1f,0xf2, +0xfa,0x4e,0x79,0xf4,0xf0,0x11,0x38,0x93,0xf0,0x0, 0x8a,0x54,0xf9,0xff,0xc1,0xff, +0xf3,0xff,0xc0,0xff,0x3c,0xe2,0xf0,0x0, 0xa1,0xf, 0xe2,0x1, 0xc4,0xff,0xf8,0x11, +0x38,0x93,0xf0,0x14,0x32,0x21,0x15,0x0, 0x24,0xb7,0xe4,0x0, 0xc5,0x18,0xf0,0x0, +0x13,0x8, 0x3d,0x15,0xf0,0x0, 0x13,0x96,0x14,0x4, 0xf0,0x0, 0x92,0xea,0xf0,0x16, +0x3b,0x1a,0xf0,0x17,0x3b,0x9a,0x3c,0x1a,0xe8,0x40,0x3f,0x62,0x17,0x80,0xc5,0x14, +0x0, 0x8e,0xa5,0x88,0x96,0xa, 0xc7,0x81,0xe3,0xff,0xc7,0xff,0x3e,0x9b,0xc6,0x1, +0x3f,0xf9,0xbe,0x88,0xe8,0xe, 0x3f,0x14,0xb6,0xa, 0x1, 0x16,0x96,0x8e,0xe8,0x40, +0x3e,0xf5,0x5, 0x70,0xe8,0x0, 0xa5,0x86,0xe8,0x0, 0x96,0x7, 0xc7,0x81,0xe3,0xff, +0xc7,0xff,0x3e,0x9b,0xc6,0x1, 0x3f,0xf9,0xe8,0x0, 0xbe,0x86,0xe8,0xe, 0x3f,0x14, +0xe8,0x0, 0xb6,0x7, 0x1, 0xec,0xf8,0x40,0x39,0xf1,0xf0,0x0, 0xc1,0x2, 0x1, 0x4, +0xe8,0x80,0x8d,0x13,0x0, 0xc2,0x13,0xc, 0x3b,0x10,0xe0,0x0, 0x13,0xd4,0x3b,0x90, +0x3a,0xe6,0xe0,0x1, 0x9f,0xa5,0x3c,0xef,0xe0,0x0, 0x27,0xfc,0xa4,0x15,0xe0,0x3, +0xdf,0x9f,0xb4,0x75,0xe0,0x1, 0x9f,0xb5,0x3c,0xef,0xe0,0x0, 0x27,0xef,0xa4,0x25, +0xe0,0x3, 0xdf,0x96,0xe0,0x1, 0xb4,0x5, 0xc2,0x98,0x3b,0xf5,0x1, 0xeb,0xe0,0x0, +0x1f,0x8d,0x17,0x4, 0x3f,0x10,0xe0,0x1b,0x95,0x1f,0x3d,0xee,0x17,0x80,0xe0,0x1, +0x14,0x16,0xe7,0xfe,0x14,0xea,0xe3,0xfe,0xcd,0x38,0xe0,0x0, 0x3, 0x45,0xe0,0x1, +0x9e,0xb6,0xe2,0x0, 0xce,0xe3,0x5, 0xbf,0xe0,0x1, 0x96,0x86,0xe0,0xc, 0x37,0xa1, +0xe3,0xfe,0xce,0xea,0xb6,0x8e,0x3e,0x1b,0x3, 0x3e,0xb4,0x8c,0xc7,0x81,0xe2,0x0, +0xcf,0x83,0xc3,0x18,0xc7,0x2, 0x1, 0xe8,0xe0,0x0, 0x21,0xc7,0xe0,0x1, 0x1f,0xf2, +0xea,0x4e,0x7a,0xf4,0xc1,0xff,0xe9,0xff,0xc2,0xff,0xe3,0xff,0xc1,0xff,0xa4,0x8f, +0xe2,0x1, 0xc1,0x7f,0x39,0x95,0x3c,0x65,0xe0,0x0, 0x17,0x80,0xe0,0xb, 0x3c,0x25, +0x21,0x15,0xe2,0x0, 0x7f,0x4, 0x37,0xa1,0x3f,0x9e,0x9d,0xf, 0x17,0x0, 0x8f,0xd4, +0x3f,0xbe,0xc7,0x1, 0x3f,0x9b,0x37,0xa1,0x3f,0x99,0x96,0x8f,0x3e,0x6e,0xe3,0xff, +0xc6,0x7f,0x3e,0xaa,0x3e,0x72,0xb6,0x8f,0x4, 0xf3,0x3c,0x73,0x1, 0x1d,0xe0,0x80, +0x8f,0x98,0x0, 0xe5,0x96,0xf6,0xe0,0xc, 0x37,0xa1,0xe3,0xfe,0xce,0xea,0xb6,0x8e, +0x3e,0x1b,0x4, 0x44,0xe2,0x1, 0xce,0x96,0xe0,0xd, 0x37,0xa1,0x3e,0x9b,0xe7,0xff, +0x5, 0x3f,0xb4,0xd, 0xe7,0xff,0x0, 0xbc,0xe0,0x1, 0xb7,0x85,0xe7,0xff,0x0, 0x96, +0xb7,0xf5,0xe7,0xff,0x0, 0x89,0xe0,0x0, 0xc0,0x50,0xb, 0xe1,0x14,0x80,0x3c,0x69, +0x39,0x69,0x39,0xe9,0xe7,0xfe,0x0, 0x84,0x3c,0xef,0x3c,0x6f,0x39,0xef,0xe7,0xfd, +0x0, 0xff,0x8, 0xb1,0xe0,0x1, 0x1f,0xf2,0xe0,0x1, 0x1c,0x7b,0xa4,0x8f,0xef,0xfe, +0xd9,0x8d,0xde,0x91,0xdb,0xf0,0xdc,0x35,0xe0,0x1, 0xd5,0x7d,0x2c,0x5, 0xe0,0x3, +0x1f,0xc0,0xac,0xf, 0x8, 0xe1,0xe0,0x3, 0x1f,0xc0,0x17,0x1, 0xaf,0xf, 0x8, 0xe1, +0xea,0x12,0x7f,0xb4,0xe0,0x1, 0x17,0x2a,0xe0,0x2e,0x3c,0xe, 0xa6,0x8f,0x27,0x2, +0x26,0x89,0xe2,0x0, 0xce,0x81,0xe0,0x1, 0x1f,0x58,0x1, 0xe, 0x17,0xea,0xaf,0x8e, +0x38,0x82,0xe0,0x1, 0x1f,0x58,0x8e,0x8e,0xc6,0xff,0xae,0x8e,0x16,0x80,0xbe,0x8f, +0x17,0xea,0xaf,0x8e,0x38,0x82,0xe2,0x0, 0xcc,0x9, 0x1, 0xf9,0x16,0x82,0xbe,0x8f, +0x0, 0xee,0xe0,0x2, 0x1f,0xb6,0xea,0x12,0x7f,0x32,0x8c,0xf, 0xe0,0xd, 0x34,0x22, +0x9f,0x8e,0xc6,0x81,0x3f,0xfd,0x5, 0x4, 0xe0,0x1, 0x14,0x7f,0x38,0x82,0xc7,0x81, +0xe3,0xff,0xc7,0xff,0xe2,0x0, 0xcf,0x81,0xb7,0x8e,0x1, 0xb, 0xe2,0x0, 0xcf,0x82, +0x1, 0x76,0xe0,0x3, 0x1f,0x39,0xa7,0xe, 0x3f,0x9e,0xe0,0x40,0x8c,0x3f,0x38,0x82, +0xe0,0x2, 0x1f,0xc0,0xe0,0xa, 0x8c,0x3f,0x38,0x82,0xe0,0x2, 0x1e,0x93,0x17,0x6, +0xac,0xd, 0x9f,0x8d,0x37,0xcc,0xe2,0x0, 0xc7,0x87,0x3f,0x1f,0xe2,0x0, 0xc7,0x5, +0x27,0xc, 0xe2,0x0, 0xcf,0x81,0xe0,0x2, 0x1f,0xc0,0x17,0x1, 0xe0,0x4, 0xaf,0x7f, +0x5, 0x8a,0x17,0x80,0xaf,0x8d,0x38,0x82,0xe0,0x2, 0x1f,0xc0,0x17,0x3, 0xe0,0x4, +0xaf,0x7f,0x38,0x82,0x38,0x82,0x8, 0xb3,0x39,0xe9,0x2c,0x1d,0xe0,0x0, 0x1f,0x30, +0x8f,0xe, 0xe2,0x0, 0xcf,0x1, 0x1, 0x3a,0xe0,0x2, 0x1e,0x93,0x17,0x6, 0xa9,0x8d, +0x9f,0x8d,0x37,0xcc,0xe2,0x0, 0xc7,0x87,0x3f,0x1f,0xe2,0x0, 0xc7,0x5, 0x2f,0x23, +0xe0,0x2, 0x1f,0xc0,0x17,0x3, 0xe0,0x4, 0xaf,0x7f,0x17,0x1, 0xe0,0x3, 0x1f,0x9a, +0xaf,0xf, 0x9, 0xe1,0x17,0x95,0x3f,0x98,0xe2,0x1, 0xc7,0xff,0xe2,0x0, 0xcf,0x81, +0x39,0x68,0x5, 0xa1,0xe4,0x1, 0xcc,0x0, 0xe2,0x0, 0xcc,0x6f,0x5, 0xa3,0xe2,0x1, +0xc9,0x7c,0x1, 0x23,0xe2,0x1, 0xc9,0x7d,0x1, 0x19,0xe0,0x3, 0x1f,0x9a,0x17,0x1, +0xaf,0xf, 0x9, 0xe1,0xe2,0x0, 0xcf,0x81,0xe0,0x2, 0x1f,0xc0,0x17,0x1, 0xe0,0x4, +0xaf,0x7f,0x5, 0xf4,0x17,0x80,0xaf,0x8d,0x0, 0xf1,0xe0,0x2, 0x1f,0x66,0x8f,0xe, +0x2f,0x44,0x9, 0xe1,0x3c,0x69,0xdf,0x55,0x0, 0xe6,0xe0,0x0, 0x1f,0xad,0xa9,0x8f, +0x9, 0xe1,0xe0,0x0, 0xd8,0x73,0x0, 0xdc,0x3c,0x63,0x9, 0xa1,0xe7,0x7e,0x0, 0xe0, +0xe0,0x0, 0x24,0x52,0xe2,0x0, 0xcc,0x3, 0x2, 0x91,0xe0,0x0, 0x1f,0x9b,0x8f,0x8f, +0xe0,0x0, 0x2f,0xcf,0xe0,0x0, 0x1f,0x18,0xe0,0x2, 0x1e,0xb1,0x3f,0xee,0xbf,0xd, +0x3c,0x1f,0xe0,0x40,0x8f,0x98,0x3c,0x6f,0x38,0x82,0xe2,0x0, 0xcc,0x5f,0xe0,0x0, +0x5, 0xc8,0x17,0xad,0x3f,0x98,0xe2,0x1, 0xc7,0xff,0xe2,0x0, 0xcf,0x81,0xe0,0x0, +0x5, 0xc5,0x17,0x95,0x3f,0x98,0xe2,0x1, 0xc7,0xff,0xe2,0x0, 0xcf,0x81,0xe0,0x0, +0x5, 0xd5,0xe0,0x0, 0x17,0xe7,0x3f,0x98,0xe2,0x1, 0xc7,0xff,0xe2,0x0, 0xcf,0x81, +0xe0,0x0, 0x5, 0xe6,0xe7,0xff,0x17,0x80,0x3f,0x98,0x3f,0x6f,0xe2,0x1, 0xc7,0x7f, +0xe2,0x0, 0xcf,0x6f,0x5, 0xb4,0xe2,0x1, 0xcc,0x7c,0xe0,0x1, 0x1, 0xb, 0xe2,0x1, +0xcc,0x7d,0xe0,0x1, 0x1, 0xd, 0xe2,0x1, 0xcc,0x7e,0xe0,0x1, 0x17,0xff,0x1, 0x8e, +0xe0,0x2, 0x1f,0xc8,0x17,0x5, 0x8f,0x8f,0x3f,0x3f,0xe0,0x3, 0x1f,0xb0,0x3f,0x9e, +0x8f,0x8f,0x0, 0x84,0xe0,0x2, 0x1f,0x93,0x8f,0x8f,0x3c,0x6f,0x38,0x82,0xe0,0x1, +0x1f,0x5a,0xe0,0x2, 0x1e,0xb1,0x3f,0xee,0xbf,0xd, 0xe7,0xff,0x0, 0xb3,0xe0,0x2, +0x1f,0xb1,0xa7,0x8f,0xe7,0xff,0x0, 0xae,0xe2,0x1, 0xcc,0x53,0x1, 0x11,0xe0,0x1, +0x1f,0x58,0x8f,0x8e,0xc7,0xff,0xaf,0x8e,0xe7,0xfd,0x0, 0xfd,0xe2,0x1, 0xcc,0x0, +0xe0,0x0, 0x1, 0x63,0xe0,0x2, 0x1f,0x40,0x3f,0x9e,0x8f,0x8f,0x0, 0xdf,0xea,0x12, +0x7f,0xb2,0x17,0x0, 0xb7,0xf, 0x0, 0xf1,0xe2,0x1, 0xcc,0x6b,0xe0,0x0, 0x1, 0x44, +0xea,0x12,0x7f,0x30,0x8e,0xe, 0x16,0x81,0x3e,0x9c,0xea,0x4f,0x7f,0x94,0xe2,0x1, +0xc6,0xff,0xe9,0xff,0xc7,0xff,0xe2,0x0, 0xce,0x83,0x3f,0x9c,0x8f,0x8f,0x1, 0x25, +0xae,0x8e,0x16,0xeb,0xe0,0x1, 0x1f,0x58,0xae,0x8e,0x0, 0xc0,0xe0,0x2, 0x1f,0x40, +0x16,0xe0,0xe0,0x2, 0x8f,0x8e,0x3e,0x9f,0xe2,0x0, 0xce,0x9f,0x2, 0x9d,0xe0,0x1, +0x1e,0xd3,0x3f,0x9d,0xe0,0x44,0x8f,0x8f,0xe0,0x2, 0x8e,0x8e,0xe2,0x1, 0xcc,0x1a, +0xc6,0x81,0xe0,0x2, 0xae,0x8e,0xe7,0xff,0x1, 0xaa,0xe0,0x1, 0x1f,0x58,0xe7,0xff, +0x16,0x99,0xae,0x8e,0xe7,0xff,0x0, 0xa3,0xea,0x12,0x7e,0xb4,0x16,0x0, 0xae,0xe, +0x17,0x0, 0xbf,0xd, 0x0, 0xd7,0xe0,0x2, 0x8e,0x8e,0xe0,0x1, 0x1f,0xc2,0x3f,0x9d, +0x8f,0x8f,0x0, 0xe3,0xea,0x12,0x7f,0xb0,0x17,0x1, 0xaf,0xf, 0x3f,0xe8,0x0, 0xca, +0xe0,0x2, 0x1f,0xc0,0xe0,0x4, 0x8f,0xff,0xe7,0xff,0x0, 0x89,0xe0,0x0, 0x1f,0xad, +0x8f,0x8f,0xe7,0xff,0x0, 0x84,0xe7,0xda,0x0, 0xc6,0xe0,0x2, 0x1f,0x93,0x9f,0x8f, +0x37,0xcc,0xe2,0x0, 0xc7,0x87,0x27,0x86,0xe2,0x0, 0xcf,0x84,0x1, 0x5, 0x14,0x0, +0x38,0x82,0xe7,0xfe,0x0, 0x9f,0xe7,0x6f,0x0, 0xe8,0xe0,0x2, 0x1f,0x93,0x9f,0x8f, +0x37,0xcc,0xe2,0x0, 0xc7,0x87,0x27,0x85,0xe2,0x0, 0xcf,0x84,0x1, 0x4, 0x38,0x82, +0xe7,0xfd,0x0, 0xbb,0xe7,0x6a,0x0, 0xde,0x8, 0xb4,0xe0,0x0, 0x1f,0xbd,0xa1,0xf, +0xa7,0x82,0xe2,0x0, 0xc7,0x81,0x27,0x97,0xa7,0x2, 0x17,0xfe,0x3f,0x5f,0xea,0x12, +0x7f,0xba,0xbf,0x2, 0x8f,0xf, 0x27,0x22,0xe0,0x0, 0x1a,0x30,0xe0,0x1, 0x19,0xd8, +0x17,0x81,0x8c,0xf2,0xaf,0x84,0x8c,0x3, 0xdf,0xd9,0x17,0x0, 0xaf,0x4, 0x8f,0x83, +0xc7,0x81,0xaf,0x83,0xa7,0x82,0x37,0xc1,0xe2,0x0, 0xc7,0x81,0x2f,0x82,0xa, 0x61, +0xa7,0x2, 0x16,0xfd,0xe0,0x1, 0x1f,0xd8,0x3f,0x5d,0xbf,0x2, 0x8f,0xf, 0xc7,0x1, +0xaf,0xf, 0x8c,0xf, 0xdf,0xb3,0xac,0x72,0xa, 0x61,0x17,0x1, 0xaf,0xf, 0x87,0x72, +0xe0,0x1, 0x1f,0xd8,0xaf,0xf, 0x8c,0xf, 0xdf,0xa9,0xac,0x72,0xa, 0x61,0xe0,0x0, +0x1f,0xbd,0x16,0x7e,0xa6,0x8f,0xea,0x12,0x7f,0xba,0xa7,0x3d,0x3f,0x5c,0xbf,0x3d, +0x17,0x0, 0xaf,0xf, 0x38,0x82,0x8, 0xb4,0xe0,0x1, 0x1a,0x5a,0xe0,0x2, 0x19,0x93, +0x11,0x0, 0x15,0x3e,0xe0,0x1, 0x14,0xff,0x3c,0x64,0xa9,0x3, 0xe0,0x3, 0xdd,0x9c, +0xe0,0x0, 0x1c,0x18,0x15,0x3e,0xe0,0x1, 0x14,0xff,0xe0,0x3, 0xdd,0x95,0xe0,0x2, +0x1f,0xb1,0xba,0xf, 0xef,0xfc,0xdc,0xd7,0xea,0x12,0x7f,0xba,0xe0,0x1, 0x1f,0x58, +0xa9,0xf, 0xe0,0x0, 0x1f,0xbd,0xa9,0xe, 0xa7,0x8f,0x81,0x83,0xa9,0xff,0xa, 0x61, +0x8, 0xb2,0xe0,0x0, 0x14,0x50,0xe0,0x3, 0xd6,0x85,0xe0,0x0, 0x14,0xda,0x39,0x68, +0xe0,0x0, 0x14,0x50,0xe0,0x3, 0xd6,0x9c,0xe1,0xd, 0x14,0x6, 0xe0,0x3, 0xd6,0x7a, +0xe0,0x0, 0x14,0xff,0x3c,0xd8,0xe0,0x1, 0xcc,0x80,0xe1,0xd, 0x14,0x6, 0xe0,0x3, +0xd6,0x8f,0xe2,0x0, 0xc9,0x5a,0x1, 0x6, 0x14,0x80,0xe0,0x0, 0x14,0x50,0xe0,0x3, +0xd6,0x87,0xe0,0x0, 0x14,0xda,0x14,0x4, 0xe0,0x3, 0xd6,0x82,0xe0,0x0, 0x14,0xda, +0x14,0x5, 0x9, 0x21,0xe0,0x6c,0x0, 0xfc,0x8, 0xb4,0xe0,0x2, 0x19,0xb8,0x15,0x4, +0x3c,0xe3,0x14,0x0, 0xef,0xfd,0xd1,0xf6,0x9d,0x13,0x17,0xf8,0x3f,0x9a,0xe2,0x1e, +0xcf,0xf7,0x12,0x0, 0x2, 0x96,0x11,0x7e,0x39,0x1a,0xe3,0xff,0xc1,0x7f,0x3c,0xe3, +0x3d,0x62,0x14,0x2, 0x99,0x83,0xef,0xfd,0xd1,0xe5,0xe0,0x2, 0x1c,0x37,0x3d,0xe4, +0x3d,0x64,0xe0,0x9, 0x31,0x41,0x34,0x41,0xe0,0x3, 0xda,0xda,0xe0,0x24,0x39,0x88, +0x3c,0x64,0xa, 0x61,0xe0,0x2, 0x1f,0xe6,0x8f,0x8f,0x27,0x8f,0x8, 0xb2,0xe0,0x0, +0x19,0x37,0xdf,0xd3,0xac,0x2, 0x8f,0x82,0x2f,0x87,0xdf,0xcf,0xac,0x2, 0x8f,0x82, +0x2f,0x83,0xdf,0xcb,0xac,0x2, 0x9, 0x61,0x38,0x82,0x8, 0xb4,0xe0,0x2, 0x1f,0x91, +0x39,0xe8,0xa1,0xf, 0xe0,0x0, 0x14,0x50,0xa7,0x92,0xcf,0x90,0xbf,0x92,0xe0,0x3, +0xd6,0x19,0x3a,0x68,0xe0,0x0, 0x14,0xda,0xe0,0x0, 0x14,0x50,0xe0,0x3, 0xd6,0x30, +0x3c,0xe3,0xe2,0x1, 0xc4,0xff,0xe1,0x20,0x14,0x0, 0xe0,0x3, 0xd6,0x29,0xe0,0x9, +0x31,0xc8,0xe2,0x0, 0xc4,0x83,0xe1,0x20,0x14,0x1, 0xe0,0x3, 0xd6,0x21,0x14,0x8a, +0xe1,0x23,0x14,0x4, 0xe0,0x3, 0xd6,0x1c,0xe2,0x0, 0xca,0x5a,0x1, 0x6, 0x14,0x80, +0xe0,0x0, 0x14,0x50,0xe0,0x3, 0xd6,0x14,0xa7,0x92,0x17,0x6f,0x3f,0xde,0xbf,0x92, +0xa, 0x61,0x8, 0xb4,0xe0,0x2, 0x1f,0x91,0xe0,0x0, 0x14,0x50,0xa1,0x8f,0xa7,0x93, +0xcf,0x90,0xbf,0x93,0xe0,0x3, 0xd5,0xe6,0xe0,0x0, 0x14,0xda,0x3a,0x68,0xe0,0x0, +0x14,0x50,0xe0,0x3, 0xd5,0xfd,0xe1,0x20,0x14,0x1, 0xe0,0x3, 0xd5,0xdb,0x39,0x68, +0xe1,0x20,0x14,0x0, 0xe0,0x3, 0xd5,0xd6,0x31,0x28,0xe2,0x6, 0xc1,0x0, 0xe2,0x0, +0xca,0x5a,0x39,0x48,0xe3,0xff,0xc1,0x7f,0x1, 0x6, 0x14,0x80,0xe0,0x0, 0x14,0x50, +0xe0,0x3, 0xd5,0xe6,0xa7,0x93,0x17,0x6f,0x3f,0xde,0x3c,0x62,0xbf,0x93,0xa, 0x61, +0xe0,0x3, 0x1f,0xb8,0xa7,0x8f,0xa7,0xcf,0xe2,0x0, 0xc7,0x81,0x27,0x8a,0xe0,0x2, +0x1f,0xba,0x87,0x8f,0xc7,0xff,0xe2,0x1, 0xc7,0xff,0xe2,0x0, 0xcf,0x81,0x5, 0x82, +0x38,0x82,0xe0,0x2, 0x1f,0xc8,0x8f,0x8f,0xe2,0x0, 0xcf,0x81,0x1, 0xfa,0x8, 0xb2, +0xe0,0x3, 0x19,0x37,0x9f,0x82,0xe2,0x0, 0xcf,0x82,0x2, 0x82,0x9, 0x61,0xe0,0x0, +0x1f,0xaa,0x9c,0xf, 0xe0,0x3, 0xdc,0xd3,0xe0,0x3, 0xdc,0xd5,0xe0,0x0, 0x14,0xd3, +0xe0,0x3, 0xdc,0x25,0xeb,0xe6,0x7f,0x4, 0xe3,0xff,0xc4,0x7f,0xe0,0x1, 0x17,0xbc, +0x3f,0x98,0x9e,0x8e,0xe3,0xff,0xc7,0xff,0xea,0x12,0x7e,0x3c,0x3f,0xfd,0xb7,0x8c, +0x3, 0x98,0xc6,0xf9,0x3f,0xfd,0x4, 0xf, 0xe0,0x1, 0x17,0xb4,0x3f,0x98,0xe3,0xff, +0xc7,0xff,0xe2,0x1, 0xcf,0xbb,0x2, 0x86,0xe0,0x2, 0x17,0x87,0x3f,0x98,0xe3,0xff, +0xc7,0xff,0xb7,0x8c,0x3c,0x6f,0xb7,0x8e,0xdf,0x51,0x17,0x80,0xb7,0x82,0x9, 0x61, +0xc6,0x87,0x3f,0xfd,0x2, 0x78,0xe0,0x1, 0x17,0xc4,0x3f,0x98,0xe3,0xff,0xc7,0xff, +0xe2,0x2, 0xcf,0x8e,0x5, 0xef,0xe0,0x0, 0x17,0xf1,0x3f,0x98,0xe3,0xff,0xc7,0xff, +0xb7,0x8c,0x0, 0xe9,0xe0,0x3, 0x1f,0xb8,0xa7,0x8f,0xa7,0xcf,0xe2,0x0, 0xc7,0x81, +0x27,0x8a,0xe0,0x2, 0x1f,0xba,0x87,0x8f,0xc7,0xff,0xe2,0x1, 0xc7,0xff,0xe2,0x0, +0xcf,0x81,0x5, 0x82,0x38,0x82,0xe0,0x2, 0x1f,0xc8,0x8f,0x8f,0xe2,0x0, 0xcf,0x81, +0x1, 0xfa,0x8, 0xb5,0x39,0x68,0xe0,0x1, 0x14,0x4e,0xdf,0x20,0xe0,0x3, 0x1a,0x37, +0x17,0x80,0xb7,0x84,0x11,0x83,0x12,0x90,0x21,0xc, 0x9f,0x84,0x3c,0x65,0xe2,0x0, +0xcf,0x82,0x2, 0x87,0xc1,0xff,0xe2,0x1, 0xc1,0xff,0xef,0xfd,0xd6,0x5f,0x29,0xf6, +0xa, 0xe1,0xe0,0x3, 0x1f,0xb8,0xa7,0x8f,0xa7,0xcf,0xe2,0x0, 0xc7,0x81,0x27,0x8b, +0xe0,0x2, 0x1f,0xba,0x8f,0x8f,0xe2,0x0, 0xcf,0x82,0x1, 0x6, 0x27,0x8c,0xe2,0x0, +0xcf,0x81,0x1, 0xe, 0x38,0x82,0xe0,0x3, 0x1f,0xc3,0x8f,0x8f,0xe2,0x0, 0xcf,0x81, +0x1, 0x7, 0x2f,0xf9,0xe0,0x1, 0x14,0xc8,0x14,0x0, 0xe0,0x69,0x0, 0xb6,0xe0,0x1, +0x14,0xc8,0x14,0x1, 0xe0,0x69,0x0, 0xb1,0x8, 0xb7,0xf8,0x0, 0xc, 0x3e,0xe0,0x1, +0x1f,0xdc,0xe0,0x2, 0x1f,0x23,0x16,0x0, 0xa7,0x8f,0xae,0xe, 0xe0,0x1, 0xa7,0xff, +0x37,0xc2,0xe2,0x0, 0xc7,0x81,0x27,0x95,0xe0,0x2, 0x1f,0x91,0xe0,0x3, 0x1e,0xb1, +0xa7,0x8f,0xa6,0xd, 0xa6,0x9f,0xce,0x90,0xbe,0x9f,0xe0,0x0, 0x16,0xd4,0xb6,0xdc, +0x8e,0xfc,0x16,0x6f,0xe2,0x0, 0xc6,0x83,0xae,0x8e,0xa6,0x9f,0x3e,0xdc,0xbe,0x9f, +0xe0,0x2, 0x1b,0xe6,0x8f,0x87,0xe2,0x0, 0xcf,0x81,0xe0,0x1, 0x1, 0x5d,0x8f,0xe, +0xe0,0x1, 0x27,0x1b,0xe0,0x0, 0x1f,0x37,0x8a,0xe, 0xe0,0x0, 0x22,0x72,0xe0,0x2, +0x1f,0x91,0x12,0x3, 0xa2,0x8f,0xe0,0x3, 0x1f,0xb1,0xe0,0x2, 0x19,0xb8,0xa1,0xf, +0xf0,0x0, 0x17,0x54,0xf0,0x40,0x3e,0xe4,0xf0,0x0, 0x14,0x50,0xf0,0x0, 0x16,0x5a, +0x13,0x5, 0xf7,0x24,0x15,0x82,0xf7,0x24,0x15,0x3, 0xf7,0x24,0x14,0x84,0xa7,0x95, +0xcf,0x90,0xbf,0x95,0x17,0xf8,0x9c,0x3, 0x3f,0x98,0xe2,0x1e,0xcf,0xf8,0xe0,0x1, +0x2, 0x96,0xf0,0x0, 0xb7,0x52,0xc4,0x7e,0xf0,0x0, 0xae,0xb2,0xe3,0xff,0xc4,0x7f, +0xf0,0x0, 0xb4,0x52,0xe2,0x0, 0xcc,0x8, 0xf0,0x0, 0xae,0x32,0xe0,0x0, 0x5, 0xeb, +0x16,0x80,0xf7,0xff,0x13,0xfd,0x3f,0x6d,0x17,0x88,0x3e,0x6d,0xf0,0x17,0x3b,0x98, +0x26,0x21,0xc6,0x1, 0xe3,0xff,0xc6,0x7f,0xf0,0x40,0x3b,0x6c,0xe0,0xb, 0x39,0x9f, +0x8c,0x8b,0x15,0x83,0x15,0x1, 0x3d,0x9d,0xb7,0x52,0x3d,0x1e,0xe8,0x40,0x3d,0xf6, +0xc7,0x81,0x3f,0x6a,0xac,0xb2,0xe3,0xff,0xc7,0x7f,0xe3,0xff,0xc7,0xff,0xe0,0x0, +0x3, 0x47,0xf0,0x2e,0x3b,0x9f,0xe0,0x0, 0x27,0x46,0xe1,0x2e,0x3c,0x1f,0xe0,0x0, +0x27,0x42,0xe0,0xc, 0x39,0x9f,0x8d,0xc, 0x8d,0xac,0x8f,0x1c,0x8e,0xbc,0x35,0x28, +0xe0,0xc, 0x35,0xa8,0x3e,0x9c,0x3f,0x1a,0xc7,0x84,0xe3,0xff,0xc7,0x7f,0xe3,0xff, +0xc6,0xff,0xe3,0xff,0xc7,0xff,0xf0,0x40,0x3b,0x66,0x16,0x5, 0x0, 0xd0,0xe0,0x2, +0x1f,0x11,0xa2,0x8e,0xe0,0x3, 0x1f,0x31,0xa1,0xe, 0xe0,0x0, 0x2f,0xcc,0xa7,0x15, +0xe0,0x0, 0x16,0xd0,0xcf,0x10,0xbf,0x15,0xe0,0x0, 0x16,0x5a,0xb6,0xd2,0xe7,0x24, +0x17,0x10,0xae,0x32,0xb7,0x52,0xaf,0xb2,0xb6,0xd2,0x17,0x6f,0xaf,0xb2,0xa7,0x95, +0x3f,0xde,0xbf,0x95,0x22,0x9, 0xdf,0x1e,0xe0,0x2, 0x1f,0x7b,0x17,0x87,0xaf,0x8e, +0xe0,0x2, 0x1f,0x77,0xaf,0x8e,0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0x3c,0x7f,0xe7,0xff, +0x2, 0xa1,0xf0,0x0, 0xb5,0xd2,0xe7,0x24,0x16,0x5, 0x8f,0xf2,0xf0,0x0, 0xb5,0x52, +0xe4,0xd, 0x37,0xa8,0x8f,0xf2,0xf0,0x0, 0xb4,0xd2,0xe4,0xf, 0x37,0xa0,0x8f,0x72, +0xb6,0x52,0x3f,0x9d,0x8e,0xf2,0x37,0x28,0x3f,0x9d,0xa6,0x93,0x3f,0x9e,0xf0,0x0, +0xb4,0x52,0x17,0x0, 0x3f,0xfd,0xaf,0x32,0x1, 0x22,0xa7,0x95,0x17,0x6f,0x3f,0xde, +0xc2,0x7f,0xbf,0x95,0xe2,0x1, 0xc2,0x7f,0xe7,0xfe,0x2a,0x5b,0x8f,0x87,0xe7,0xff, +0x27,0xb8,0xa7,0x95,0xe0,0x0, 0x17,0x50,0xcf,0x90,0xbf,0x95,0xe0,0x0, 0x16,0x5a, +0xb7,0x52,0xe7,0x24,0x16,0x90,0xae,0x32,0x17,0x80,0xb6,0xd2,0xaf,0xb2,0xb7,0x52, +0xe7,0xff,0x0, 0xb5,0x86,0xe, 0xae,0xe, 0xe7,0xfe,0x0, 0xa3,0xe0,0x0, 0x17,0xf0, +0xb7,0xd2,0x16,0x2a,0xae,0x32,0x3c,0x66,0xef,0xfd,0xd5,0x28,0xe0,0x0, 0x16,0xf6, +0xb6,0xd2,0xe0,0x0, 0x17,0x75,0x8f,0xf2,0xb7,0x52,0x37,0xa8,0x8e,0xf2,0x9f,0x13, +0x3f,0x9d,0xe3,0xff,0xc7,0xff,0x3f,0x7f,0x1, 0xc9,0xa7,0x95,0x17,0x6f,0x3f,0xde, +0xbf,0x95,0x12,0x1, 0x8f,0x87,0x0, 0xcc,0x8, 0xb3,0x39,0x68,0xe0,0x0, 0x14,0x50, +0xe0,0x3, 0xd3,0xe0,0x39,0xe8,0xe0,0x0, 0x14,0xda,0xe0,0x0, 0x14,0x50,0xe0,0x3, +0xd3,0xf7,0x3c,0x62,0xe0,0x3, 0xd3,0x61,0xe2,0x0, 0xc9,0xda,0x39,0x68,0x1, 0x6, +0x14,0x80,0xe0,0x0, 0x14,0x50,0xe0,0x3, 0xd3,0xeb,0x3c,0x62,0x9, 0xe1,0x8, 0xb1, +0xc0,0x7c,0x15,0x2, 0x14,0x86,0x3c,0x90,0x3c,0x6a,0xef,0xfc,0xdf,0x63,0x5c,0x3, +0x15,0x2, 0xe2,0x0, 0x7c,0x84,0xef,0xfc,0xdf,0x5d,0x4f,0x4, 0x4f,0x85,0xe0,0xd, +0x3f,0x1f,0xe2,0x1, 0xce,0xff,0x1, 0x8, 0xe0,0x2, 0x1f,0xc0,0x17,0x7f,0xe0,0xc, +0xaf,0x4f,0xc0,0x4, 0x8, 0xe1,0xe0,0x2, 0x1f,0xc0,0xe0,0xc, 0xaf,0x4f,0xc0,0x4, +0x8, 0xe1,0xe0,0x0, 0x1f,0xad,0x8f,0x8f,0xe2,0x0, 0xcf,0xda,0x1, 0x2, 0x38,0x82, +0xe0,0x3, 0x1f,0xb8,0xa7,0x8f,0xa7,0xcf,0x37,0xcf,0xe2,0x0, 0xc7,0x81,0x2f,0xf8, +0xe7,0xfa,0x0, 0x90,0xe0,0x1, 0x1f,0xc2,0xe0,0xa, 0x8f,0xdf,0x27,0xb1,0xe0,0x1, +0x1f,0xc4,0x8f,0x8f,0xe2,0x0, 0xcf,0x81,0xe0,0x2, 0x1f,0xfd,0xe0,0x0, 0x1, 0x6b, +0x8f,0xef,0x37,0xa6,0xc7,0xff,0xe3,0xff,0xc7,0xff,0xe2,0x0, 0xcc,0x3f,0x2, 0xa1, +0xe0,0x0, 0x1f,0xf2,0xe0,0x0, 0x1f,0x71,0x8f,0x8f,0x8f,0xe, 0xe0,0xd, 0x37,0xa8, +0x17,0xbf,0xe0,0x8, 0x3f,0xa8,0xe0,0xf, 0x3f,0x4d,0x3c,0x3f,0xe0,0x0, 0x1f,0xf0, +0x34,0x48,0x8f,0x8f,0x3c,0x7f,0x3f,0x6f,0xe0,0x6e,0x3d,0xa8,0x3f,0xae,0xe2,0x5, +0xcf,0xcf,0xe0,0x5, 0x14,0x4f,0xe0,0x68,0x3d,0xaf,0xe3,0xff,0xc4,0x7f,0x38,0x82, +0xe0,0x1, 0x1f,0x31,0xe0,0x1, 0x1e,0xb0,0x8f,0xe, 0xc7,0xc1,0x8e,0x8d,0x3c,0x7f, +0x37,0x28,0xe0,0xc, 0x3e,0xce,0x3, 0x3d,0xe0,0x0, 0x1f,0xef,0x8d,0x8f,0xe0,0x0, +0x1f,0xee,0x35,0xa8,0x8f,0xf, 0xe0,0x0, 0x1f,0xed,0x37,0x28,0x8e,0x8f,0xe0,0x0, +0x1f,0xec,0x3e,0xcb,0x8f,0x8f,0x3c,0x7d,0x3f,0xce,0xe0,0x0, 0x3, 0x45,0xe0,0x0, +0x1f,0x6b,0xc6,0xff,0x8d,0x8e,0xe0,0x0, 0x1f,0x6a,0x35,0xa8,0x8f,0xe, 0xe0,0x8, +0x3e,0xa8,0xe0,0xd, 0x3f,0x4b,0x3c,0x3d,0xc7,0xff,0x34,0x48,0x3f,0xa8,0xe0,0x0, +0x1f,0x70,0x8c,0xe, 0x3f,0xf8,0x4, 0xca,0xe0,0x0, 0x1f,0x69,0x8f,0xe, 0xe0,0xe, +0x3e,0x2e,0x3e,0xee,0xe3,0xff,0xc6,0xff,0x3f,0xfd,0xe0,0x6f,0x3a,0xae,0xe7,0xff, +0x0, 0xb8,0x8f,0xff,0x37,0xa6,0xc7,0xff,0xe3,0xff,0xc7,0xff,0xe7,0xff,0x0, 0x97, +0xe0,0x0, 0x1f,0x68,0xe0,0xf, 0x3c,0x2f,0x8e,0x8e,0xe0,0x0, 0x1f,0x67,0x36,0xa8, +0x8f,0xe, 0xe0,0x8, 0x3f,0x4d,0xe0,0x0, 0x1f,0x69,0x3f,0xb8,0x8f,0xe, 0x37,0xc8, +0x3f,0xfe,0x16,0xff,0x3e,0x9e,0xe0,0x6f,0x3b,0xad,0xe0,0xe, 0x3e,0x2e,0x3f,0x9e, +0xe7,0xff,0x0, 0x97,0xe0,0x0, 0x1f,0x66,0x3c,0x2d,0x8d,0x8e,0xe0,0x0, 0x1f,0x65, +0x35,0xa8,0x8f,0xe, 0xe0,0xd, 0x3f,0x4b,0x3c,0x3d,0xe0,0xd, 0x34,0x48,0x3f,0x9d, +0xe7,0xff,0x0, 0xbf,0xe0,0x1, 0x1f,0xc2,0x3e,0xe8,0xe0,0xa, 0x8f,0xdf,0x27,0xaa, +0xe0,0x1, 0x1f,0xc4,0x8f,0x8f,0xe2,0x0, 0xcf,0x81,0xe0,0x2, 0x1f,0xfd,0xe0,0x0, +0x1, 0x58,0x8f,0x7f,0x37,0x26,0xc7,0x7f,0xe3,0xff,0xc7,0x7f,0xe2,0x0, 0xce,0xbf, +0x2, 0x9a,0xe0,0x0, 0x1f,0xe4,0xe0,0x0, 0x1f,0x63,0x8f,0x8f,0x8c,0xe, 0x37,0xa8, +0x17,0x3f,0x3f,0x2d,0xe0,0xd, 0x3c,0x4f,0xe0,0x0, 0x1f,0xe2,0x3f,0x3d,0x8c,0xf, +0x37,0x8, 0x3f,0x78,0x3f,0xe8,0xe0,0x6f,0x3d,0x2e,0x3c,0x2f,0xe3,0xff,0xc4,0x7f, +0x38,0x82,0x38,0x82,0xe0,0x1, 0x1e,0x2e,0xe0,0x1, 0x1f,0xaf,0x8c,0xc, 0x16,0x41, +0x8f,0x8f,0x3e,0x1e,0x3e,0xfc,0x37,0xa8,0xe0,0xb, 0x3c,0x4f,0x3, 0x30,0xe0,0x0, +0x1f,0xe1,0x8e,0xf, 0xe0,0x0, 0x1f,0xe0,0x36,0x28,0x8c,0xf, 0xe0,0x0, 0x1f,0xdf, +0x34,0x28,0x8f,0xf, 0xe0,0x0, 0x1f,0xde,0x3f,0x4c,0x8f,0x8f,0x3e,0xfe,0x3f,0xc8, +0xe0,0x0, 0x3, 0x4a,0xe0,0x0, 0x1e,0x5d,0xe0,0x0, 0x1d,0x5c,0x8e,0xc, 0x8c,0xa, +0x36,0x28,0x3c,0x4c,0x3f,0x2d,0x3f,0x38,0x14,0x7f,0x3c,0x1f,0x37,0x8, 0x3c,0x2e, +0xe0,0x0, 0x1f,0xe2,0x8f,0x8f,0x3c,0x7f,0x3, 0x2b,0x3c,0x6f,0x38,0x82,0x8f,0x6f, +0x37,0x26,0xc7,0x7f,0xe3,0xff,0xc7,0x7f,0xe7,0xff,0x0, 0xaa,0x17,0xe2,0x3f,0x9e, +0x3e,0xff,0x14,0x0, 0xe7,0xff,0x3, 0x3f,0xe0,0x0, 0x1f,0xdb,0xe0,0x0, 0x1e,0x5a, +0x8f,0x8f,0x8c,0xc, 0xc7,0x40,0x37,0xa8,0xe0,0xe, 0x3e,0xae,0x3c,0x4f,0xe0,0x0, +0x1f,0xd9,0x3f,0x38,0x8f,0x8f,0x37,0x8, 0x3f,0x7f,0x16,0xff,0x3e,0x9f,0xe0,0x6e, +0x3b,0x2d,0xe0,0x8, 0x3d,0xaf,0x3c,0x1e,0xe3,0xff,0xc4,0x7f,0x38,0x82,0xe0,0x0, +0x1f,0xd9,0x8f,0x8f,0xe0,0xf, 0x3d,0xaf,0x3f,0xf8,0xe0,0x68,0x3d,0x2f,0xe3,0xff, +0xc4,0x7f,0x38,0x82,0xe0,0x0, 0x1e,0x58,0xe0,0x0, 0x1d,0x57,0x8e,0xc, 0x8c,0xa, +0x36,0x28,0x3c,0x4c,0xe0,0xe, 0x3e,0xae,0x3f,0x38,0xe0,0x8, 0x37,0x8, 0x3c,0x1f, +0xe7,0xff,0x0, 0xb8,0x8, 0xb5,0xe0,0x2, 0x1a,0xdf,0xe0,0x2, 0x1a,0x5e,0x8f,0x85, +0xe0,0x0, 0x2f,0xc5,0xe0,0x2, 0x1f,0x5d,0xe0,0x2, 0x1e,0xd5,0x8f,0xe, 0xaf,0x8d, +0xe0,0x0, 0x2f,0x4b,0xe0,0x1, 0x1f,0x8e,0x15,0xa, 0x89,0x8f,0xe0,0x2, 0x1c,0xde, +0x3d,0x33,0xe0,0x2, 0x1c,0x58,0xe0,0x3, 0xd8,0xed,0xe0,0x1, 0x1f,0xc2,0xe0,0xa, +0x8f,0xdf,0x27,0xab,0x21,0x96,0xc1,0xff,0xe2,0x1, 0xc1,0xff,0xc1,0x81,0xe4,0x0, +0xc1,0x8a,0xe0,0x2, 0x19,0x5e,0x39,0x94,0x9c,0x2, 0xc1,0xa, 0xde,0x84,0xe0,0x5, +0xb4,0x52,0xe0,0x40,0x9c,0x42,0xdf,0x27,0x39,0xf2,0xe0,0x5, 0xb4,0x62,0x1, 0xf5, +0xe0,0x19,0x9f,0x84,0xe2,0x2, 0xcf,0x81,0x1, 0x28,0xe2,0x2, 0xcf,0x80,0xe0,0x0, +0x1, 0x4c,0x8f,0x85,0x2f,0x8a,0xe0,0x0, 0x1f,0x34,0xb7,0x8e,0xe0,0x2, 0x1f,0x1b, +0xb7,0x8e,0xe0,0x1, 0x1f,0x59,0xaf,0x8e,0xa, 0xe1,0xe0,0x2, 0x1f,0x5d,0xe0,0x2, +0x1e,0xd5,0x17,0x81,0x8f,0xe, 0xaf,0x8d,0xe7,0xff,0x2f,0x3e,0xe0,0x2, 0x1f,0x5b, +0xaf,0x8e,0xe7,0xff,0x0, 0xb9,0xe0,0x2, 0x1f,0x54,0x16,0x81,0xae,0x8e,0xe0,0x2, +0x1f,0x53,0xaf,0x8e,0xe7,0xff,0x0, 0xb0,0xe0,0x0, 0x1f,0xb4,0xe0,0x2, 0x1f,0x1b, +0xe0,0x6, 0x9e,0x24,0x9f,0xe, 0xe0,0x6, 0x9e,0xb4,0x9f,0x8f,0xe0,0xe, 0x3e,0xae, +0xe0,0xf, 0x3e,0x2f,0xe4,0xa, 0x37,0x8f,0xe4,0xb, 0x37,0xf, 0xe2,0xf, 0x3d,0x4f, +0xe2,0xe, 0x3d,0xce,0x3f,0x2b,0x3f,0xaa,0x3f,0x9e,0xe0,0x0, 0x1f,0x26,0xe2,0x1, +0xcf,0x96,0xb6,0xe, 0xe0,0x0, 0x1f,0x20,0xb6,0x8e,0x5, 0x47,0xe0,0x1, 0x1f,0xd9, +0x17,0x1, 0xaf,0xf, 0xa, 0xe1,0xe0,0x6, 0x9f,0x24,0xe0,0x0, 0x1e,0xa6,0xe0,0x6, +0x9f,0xb4,0xb7,0xd, 0xe0,0x0, 0x1e,0xa0,0xb7,0x8d,0xe0,0x0, 0x1e,0xb4,0xb7,0xd, +0xe0,0x2, 0x1f,0x1b,0xb7,0x8e,0xa, 0xe1,0xe0,0x3, 0x1f,0x80,0x17,0x0, 0xb7,0x1f, +0xaf,0xf, 0xaf,0x1f,0x38,0x82,0x0, 0x0, 0xe0,0x2, 0x1f,0xc0,0xe0,0xa, 0x8f,0x8f, +0xe0,0x3, 0x2f,0xba,0x8, 0xb7,0xf8,0x0, 0xc, 0x3c,0xf0,0x3, 0x18,0x0, 0xe8,0x0, +0x9f,0x90,0x2f,0x93,0xea,0x12,0x7f,0x47,0xe0,0x0, 0x19,0xe, 0xaf,0x8e,0x8f,0x82, +0xe0,0x0, 0x19,0x8d,0x2f,0x93,0xea,0x12,0x7f,0xc6,0x8f,0xf, 0x27,0x3, 0xc7,0x7f, +0xaf,0xf, 0xf8,0x0, 0xe, 0x28,0xb, 0xe1,0xe0,0x0, 0x19,0xe, 0xc7,0xff,0xe8,0x0, +0xb7,0x90,0x8f,0x82,0xe0,0x0, 0x19,0x8d,0x27,0xef,0xe0,0x0, 0x1f,0x56,0xe0,0x0, +0x1e,0xd5,0x8f,0xe, 0xf0,0x0, 0x88,0x8d,0x37,0x28,0xf0,0x11,0x38,0xce,0xe0,0x1a, +0x97,0x73,0xf8,0x43,0x38,0x91,0xe0,0x2, 0x1e,0xfd,0xf0,0x40,0x38,0xfe,0x8c,0x4d, +0x8e,0x5d,0x5, 0xa, 0xe0,0x1, 0x1e,0xd7,0x37,0x1, 0xe0,0x3, 0x8e,0xbd,0xe2,0x0, +0xce,0x82,0xe0,0x71,0x39,0xae,0xf7,0xff,0x11,0x7f,0xf0,0x12,0x39,0x1f,0xe0,0x1, +0x1f,0xf2,0xf2,0x1, 0xc1,0x7f,0xa4,0x8f,0xe0,0x0, 0x1f,0xd4,0xf0,0x0, 0xc1,0x1, +0xf0,0x12,0x31,0x21,0x10,0xff,0x12,0x7f,0x8a,0x8f,0xf0,0x0, 0x1b,0xd, 0xf0,0x12, +0x39,0x13,0x38,0x98,0xe0,0x4, 0x3a,0x1c,0xf8,0x0, 0x8a,0x6, 0xf8,0x0, 0x89,0x96, +0xf0,0xf, 0x3a,0x3c,0xe8,0xf, 0x3f,0x93,0x37,0xa1,0x3f,0x99,0x95,0x8f,0xe8,0x40, +0x3d,0xf1,0xe0,0x2, 0x4, 0x1a,0xf1,0x2f,0x3a,0x28,0xe0,0x2, 0x2f,0x96,0xf1,0x2d, +0x39,0xac,0xe0,0x2, 0x2e,0x92,0xe8,0x43,0x3b,0x3, 0xf0,0x0, 0x12,0x81,0xe2,0x0, +0xcb,0x0, 0xe0,0xa, 0x35,0x82,0xe0,0xf, 0x35,0x81,0xf8,0x15,0x3a,0x94,0xf8,0x43, +0x3b,0x84,0x3d,0x1f,0xf2,0x1, 0xc2,0xff,0xf0,0x40,0x3c,0xe6,0xf8,0x40,0x3d,0x67, +0xe0,0x0, 0x4, 0x75,0xf2,0x0, 0xcb,0x80,0x4, 0x37,0xe8,0x40,0x3f,0x67,0x13,0x80, +0x0, 0x92,0x27,0xa7,0xe8,0x40,0x3e,0xe8,0xe8,0x40,0x3b,0xec,0xe3,0xff,0xc6,0xff, +0xe2,0x1, 0xc3,0xff,0xf0,0x40,0x3d,0x6e,0xc7,0x7f,0xe0,0x43,0x3f,0xe, 0xe3,0xff, +0xcf,0x7f,0x1, 0x1a,0xe0,0xf, 0x3f,0x3c,0xf0,0x0, 0x14,0x1, 0xe8,0xf, 0x3f,0x99, +0x37,0xa1,0x3f,0x99,0xe0,0x0, 0x97,0x8f,0xf0,0x0, 0x16,0x1, 0xe0,0x3b,0x3f,0xaa, +0xf0,0x18,0x3c,0x1d,0xf0,0x1c,0x3e,0x17,0xe0,0x2f,0x3d,0xaf,0xf7,0xff,0x2d,0xdb, +0xe8,0x40,0x3f,0x7a,0x2, 0x62,0x23,0x88,0xf1,0xff,0xc4,0xff,0xf8,0x43,0x3c,0x89, +0xf3,0xff,0xcc,0xff,0x1, 0xc8,0xf0,0x40,0x3a,0x71,0x3, 0x38,0xf8,0x40,0x3c,0xe5, +0xe8,0x40,0x3c,0x75,0x5, 0xb3,0xe8,0x40,0x3f,0x65,0x13,0x80,0x0, 0x91,0x27,0xa4, +0xe8,0x40,0x3e,0xe8,0xe8,0x40,0x3b,0xeb,0xe3,0xff,0xc6,0xff,0xe2,0x1, 0xc3,0xff, +0xf0,0x40,0x3c,0xee,0xc7,0x1, 0xe2,0x1, 0xc7,0x7f,0x3c,0x7e,0x5, 0x98,0xe0,0xf, +0x3f,0x3c,0xf0,0x0, 0x14,0x1, 0x3f,0x96,0x37,0xa1,0x3f,0x99,0x97,0x8f,0xf0,0x0, +0x15,0x81,0xe0,0x3a,0x3f,0xaa,0xf0,0x18,0x3c,0x1d,0xf0,0x1b,0x3d,0x97,0xe0,0x2f, +0x3d,0xaf,0xf7,0xff,0x2d,0x5e,0xe8,0x40,0x3f,0x79,0x4, 0xe5,0x23,0x87,0xc3,0x7f, +0xe0,0x43,0x3b,0x6, 0xe3,0xff,0xcb,0x7f,0x1, 0xcc,0xf0,0x40,0x39,0xf4,0xe0,0x1, +0x3, 0x1, 0x13,0x1, 0xe8,0x6, 0x3b,0x13,0xe2,0x1, 0xc3,0x7f,0xe0,0x40,0x3e,0x76, +0xf0,0x40,0x3c,0xe6,0xf8,0x40,0x3d,0x67,0xe0,0x0, 0x5, 0xf4,0xf2,0x0, 0xcb,0x80, +0x4, 0x37,0xe8,0x40,0x3f,0x67,0x13,0x80,0x0, 0x92,0x27,0xa7,0xe8,0x40,0x3e,0xe8, +0xe8,0x40,0x3b,0xec,0xe3,0xff,0xc6,0xff,0xe2,0x1, 0xc3,0xff,0xf0,0x40,0x3d,0x6e, +0xc7,0x7f,0xe0,0x43,0x3f,0xe, 0xe3,0xff,0xcf,0x7f,0x1, 0x1a,0xe0,0xf, 0x3f,0x3c, +0xf0,0x0, 0x14,0x1, 0xe8,0xf, 0x3f,0x99,0x37,0xa1,0x3f,0x99,0xe0,0x0, 0x97,0x8f, +0xf0,0x0, 0x16,0x1, 0xe0,0x3b,0x3f,0xaa,0xf0,0x18,0x3c,0x1d,0xf0,0x1c,0x3e,0x17, +0xe0,0x2f,0x3d,0xaf,0xf7,0xff,0x2d,0xdb,0xe8,0x40,0x3f,0x7a,0x2, 0x62,0x23,0x88, +0xf0,0x0, 0xc4,0x81,0xf2,0x1, 0xc4,0xff,0xe8,0x40,0x3e,0x79,0x2, 0xc8,0xf0,0x40, +0x3a,0x71,0x3, 0x37,0xf8,0x40,0x3c,0x65,0xe8,0x40,0x3c,0x75,0x5, 0xb2,0xe8,0x40, +0x3f,0x65,0x13,0x80,0x0, 0x91,0x27,0xa4,0xe8,0x40,0x3e,0xe7,0xe8,0x40,0x3b,0xea, +0xe3,0xff,0xc6,0xff,0xe2,0x1, 0xc3,0xff,0xf0,0x40,0x3c,0x6e,0xc7,0x1, 0xe2,0x1, +0xc7,0x7f,0x3c,0x7e,0x5, 0x98,0xe0,0xf, 0x3f,0x3c,0xf0,0x0, 0x13,0x81,0x3f,0x96, +0x37,0xa1,0x3f,0x99,0x97,0x8f,0xf0,0x0, 0x15,0x1, 0xe0,0x39,0x3f,0xaa,0xf0,0x17, +0x3b,0x9d,0xf0,0x1a,0x3d,0x17,0xe0,0x2f,0x3d,0xaf,0xf7,0xff,0x2c,0xde,0xe8,0x40, +0x3f,0x78,0x4, 0xe5,0x23,0x86,0xc3,0x1, 0xe2,0x1, 0xc3,0x7f,0x3e,0x76,0x2, 0xcd, +0x3a,0xfd,0xe0,0x0, 0x5, 0xd3,0xf0,0x0, 0xc3,0x2, 0xf8,0x40,0x39,0x76,0xe7,0xfd, +0x1, 0xd5,0xe8,0x0, 0x9f,0x90,0x27,0x88,0xc7,0xff,0xe8,0x0, 0xb7,0x90,0xea,0x12, +0x7f,0xc7,0x17,0x1, 0xaf,0xf, 0xe0,0xf, 0x3e,0x38,0xe0,0x1a,0x9f,0x53,0xe0,0x1a, +0x9e,0xe3,0xe0,0xc, 0x37,0x81,0xe0,0xb, 0x3f,0x1d,0x3d,0xfc,0x2, 0x1d,0x37,0x82, +0xe0,0x2d,0x3e,0x9f,0x2e,0x99,0xe0,0x2f,0x3f,0x1f,0x2f,0x96,0xea,0x12,0x7f,0xc7, +0x8f,0x8f,0xe2,0x0, 0xcf,0x81,0x1, 0x10,0xea,0x12,0x7e,0xc5,0x8f,0x8d,0xe2,0x0, +0xcf,0x81,0xe7,0xfc,0x1, 0xe8,0xea,0x12,0x7f,0xc6,0x8f,0xf, 0x2f,0xc, 0xaf,0xd, +0xe7,0xfc,0x0, 0xe1,0x38,0x82,0xea,0x12,0x7f,0x45,0xea,0x12,0x7f,0xc6,0x16,0x81, +0xae,0x8e,0x17,0x14,0xc7,0x7f,0x8e,0x82,0xaf,0xf, 0xe7,0xfc,0x26,0xd4,0x11,0x80, +0x3a,0x63,0x3c,0x63,0x3c,0xe4,0xd0,0x99,0xc1,0x81,0x8f,0x82,0xe2,0x1, 0xc1,0xff, +0x3f,0xf3,0x2, 0xf8,0xe7,0xfc,0x0, 0xc7,0xe0,0x0, 0x1f,0xd3,0x8f,0xf, 0xe0,0x0, +0x1f,0xd2,0x37,0x28,0x8f,0x8f,0xf8,0x0, 0xaa,0x0, 0x3f,0xce,0xf8,0x0, 0xa9,0x90, +0xe8,0x0, 0xb7,0x90,0xe7,0xff,0x0, 0xad,0xe0,0x0, 0x1e,0x4e,0x8f,0x8c,0x2f,0x97, +0xea,0x12,0x7f,0xc8,0x9e,0x8f,0xe0,0x1, 0x1f,0x57,0x2e,0x8a,0xe0,0x1, 0x1e,0x89, +0x8e,0xd, 0xe0,0x1, 0x1e,0x88,0x36,0x28,0x8e,0x8d,0x3e,0xcc,0xb6,0x8f,0xe0,0x2, +0x1e,0xdf,0x8e,0x8d,0x26,0xa0,0x97,0x8f,0xb7,0x9e,0x38,0x82,0xe0,0x2, 0x1f,0xc0, +0xe0,0x1, 0x1f,0x57,0x8e,0x8f,0x8c,0x1f,0x8c,0xaf,0x8d,0x3f,0x8d,0xdf,0xea,0x12, +0x7f,0xc8,0x36,0xa5,0x34,0x25,0x34,0xa5,0x35,0x25,0x35,0xa5,0xf0,0x0, 0x13,0x80, +0xf0,0x0, 0xab,0x8c,0xb6,0x9e,0xb4,0x2e,0xb4,0xce,0xb5,0x5e,0xe0,0x1, 0xb5,0x9e, +0xb6,0x8f,0x0, 0xd4,0xe0,0x0, 0x1f,0xfa,0x8e,0x8f,0xe0,0x0, 0x1f,0xf9,0x36,0xa8, +0x8f,0x8f,0x3f,0xcd,0xb7,0x9e,0x38,0x82,0x17,0xdd,0x3f,0x98,0xe2,0x1, 0xc7,0xff, +0xe2,0x0, 0xcf,0x8c,0x2, 0x9b,0x17,0x1, 0xe0,0xf, 0x37,0x3f,0xe2,0x30,0xc7,0xa9, +0x2f,0x9d,0xe2,0x0, 0xcc,0x25,0x1, 0x92,0xe0,0x0, 0x1f,0xb0,0x8f,0x8f,0x3f,0xfe, +0x1, 0x16,0xe0,0x2, 0x1f,0x40,0x17,0x81,0xe0,0x4, 0xac,0xde,0xe0,0x0, 0x1f,0x4e, +0xaf,0x8e,0xe0,0x2, 0x1f,0x60,0xaf,0x8e,0x38,0x82,0xe0,0x2, 0x1f,0xc0,0x17,0x1, +0x3c,0x1f,0xe0,0x0, 0x1f,0xce,0xac,0x88,0xaf,0xf, 0x38,0x82,0xe0,0x2, 0x1f,0xe6, +0x8f,0x8f,0x2f,0xe8,0x0, 0xfb,0xe0,0x0, 0x1f,0xd, 0xe0,0xf, 0x34,0x43,0x3f,0x1f, +0xe0,0x0, 0x1f,0xc7,0xe2,0x0, 0xc4,0x7, 0x3f,0x98,0x87,0x8f,0xe0,0xf, 0x84,0xe, +0x3c,0x5f,0xe2,0x1, 0xc4,0x7f,0x38,0x82,0x17,0x7, 0xe0,0x0, 0x1f,0xc7,0x3f,0x58, +0x3f,0x9e,0xe0,0x0, 0x1f,0xd, 0x34,0x43,0x3c,0x1e,0x8f,0x8f,0xe0,0xf, 0x87,0x8, +0x2c,0x86,0xe3,0xf, 0x3f,0x5f,0xe0,0xf, 0xaf,0x88,0x38,0x82,0x3f,0xce,0xe0,0xf, +0xaf,0x88,0x38,0x82,0xe0,0x0, 0x1f,0x8d,0xe0,0x2, 0x1f,0x7d,0x34,0x21,0x3c,0x1f, +0x8f,0x88,0x8e,0xde,0x8f,0x18,0x3f,0xbd,0x3f,0x9e,0xe0,0x1, 0x1f,0x72,0x37,0xa1, +0xa7,0xe, 0x3f,0x9e,0x94,0xf, 0x38,0x82,0xe0,0x2, 0x1f,0xfd,0xe0,0x1, 0x1f,0x57, +0x8e,0xef,0x9f,0x9e,0x3e,0xf8,0x2, 0x82,0x9f,0xce,0xe0,0x2, 0x1f,0x3c,0x8f,0xe, +0xe2,0x0, 0xcf,0x1, 0x1, 0x3, 0x3c,0x6f,0x38,0x82,0x2c,0x5, 0xe0,0x1, 0x17,0x87, +0x3c,0x6f,0x38,0x82,0xe0,0x1, 0x1e,0xc2,0xe0,0xe, 0x8f,0x1d,0xc7,0x7f,0xe0,0x28, +0x3f,0x8, 0x2c,0x75,0xe0,0x28,0x3c,0x88,0x2c,0x72,0xe0,0xe, 0x8f,0x2d,0xc7,0x7f, +0x3c,0xfe,0xe0,0x1, 0x17,0x7, 0xe0,0x6e,0x39,0xaf,0x3f,0xee,0x0, 0xe5,0x0, 0x0, +0xf0,0x0, 0x1a,0x8e,0xe8,0x0, 0x8e,0x5, 0x26,0x3d,0x16,0x0, 0xe0,0x0, 0x1d,0x8d, +0xf0,0x0, 0x1b,0x47,0xe0,0x40,0x3f,0xec,0xe0,0xd, 0x37,0xc3,0x15,0x7, 0x3d,0x5f, +0xe2,0x0, 0xc6,0x9f,0x3e,0x9b,0xe8,0xa, 0x3d,0x16,0x85,0xa, 0xe0,0xf, 0x86,0x8d, +0xe0,0xe, 0x37,0xa1,0x3e,0xda,0xe0,0x17,0x3d,0x9e,0x14,0x7, 0xe0,0xe, 0x36,0x43, +0xe0,0x9, 0x36,0x21,0x3c,0x5c,0xe2,0x0, 0xc7,0x1f,0xc7,0x81,0x15,0x1, 0xe2,0x1, +0xc6,0xff,0x3c,0x9b,0x3f,0x1b,0xe8,0x8, 0x3c,0x16,0xe2,0x1, 0xc7,0xff,0x3d,0x1c, +0x26,0x8d,0xe8,0x0, 0x9e,0x7, 0x86,0x88,0xb6,0x9, 0x3e,0x6a,0xe0,0xf, 0x85,0xe, +0xe2,0x1, 0xc6,0x7f,0x3e,0xca,0xe0,0xf, 0xae,0x8e,0xe8,0x0, 0x8f,0x5, 0x3f,0x7f, +0x2, 0xcc,0xe8,0x0, 0xae,0x5, 0x38,0x82,0x8, 0xb5,0xe0,0x0, 0x19,0x41,0xe0,0x3, +0x1a,0x45,0x17,0x81,0xe0,0x1, 0x19,0xd2,0xaf,0x82,0xaf,0x84,0x17,0x80,0xaf,0x83, +0xef,0xff,0xdf,0xb0,0xe0,0x0, 0x1f,0x8e,0xe0,0x0, 0x1c,0x8d,0x8d,0xf, 0xe0,0x1, +0x25,0x46,0xf7,0xff,0x13,0xff,0xe0,0x2, 0x1f,0xfd,0xf0,0x17,0x3b,0x9a,0xf2,0x1, +0xc3,0xff,0xf0,0x0, 0x89,0x4f,0xe0,0x1, 0x1f,0x72,0xf0,0x0, 0xc3,0x81,0xf0,0x0, +0x11,0x80,0xf0,0x17,0x33,0xa1,0x12,0xfe,0xa0,0x8e,0xe8,0x5, 0x3a,0x92,0xf0,0x0, +0x88,0x5f,0xf0,0x0, 0x88,0x82,0x8d,0x84,0x3f,0x69,0xf0,0x17,0x3b,0x99,0xe8,0x40, +0x3e,0xe3,0xe8,0x40,0x3e,0x63,0xf8,0x40,0x3b,0x63,0xf1,0xff,0xc1,0x7f,0xf0,0x0, +0x12,0x1, 0xf8,0x40,0x3a,0xe3,0x0, 0xb1,0x3f,0xf5,0x14,0x1, 0xe8,0x8, 0x3c,0x16, +0x3, 0x38,0xf0,0x40,0x3b,0x68,0xf2,0x1, 0xc3,0x7f,0xf0,0x40,0x39,0x7f,0xe8,0x40, +0x3c,0x64,0xe8,0x68,0x3d,0x23,0xf0,0x40,0x39,0x7f,0xf0,0x40,0x39,0xe8,0xe8,0x40, +0x3c,0x65,0xe8,0x68,0x3d,0x21,0xf0,0x40,0x38,0xe8,0x8c,0x1e,0xe8,0xf, 0x3f,0xb0, +0xc7,0x2, 0x3f,0x98,0x37,0xa1,0x3f,0x91,0x97,0x8f,0xe8,0x40,0x3c,0x64,0xe2,0x3, +0xcf,0xf3,0xe8,0x40,0x3f,0xe5,0xe0,0x68,0x3a,0x2d,0xe0,0x6f,0x3a,0x2b,0xf0,0x40, +0x3b,0xfe,0x3e,0xe8,0x3d,0xef,0x1, 0x15,0x8f,0x8e,0xe2,0x0, 0xcf,0x82,0x2, 0xcd, +0x14,0x1, 0x3c,0x1c,0x1, 0xa, 0x3e,0x68,0xe2,0x1, 0xc6,0x7f,0x27,0xdf,0x0, 0xce, +0xc6,0x1, 0xe2,0x1, 0xc6,0x7f,0x0, 0xca,0xe2,0x0, 0xca,0x82,0x5, 0x75,0x0, 0xc6, +0xe0,0x0, 0x2c,0x7d,0xf0,0x0, 0x29,0xf7,0x8f,0x4, 0xf1,0xff,0xc3,0x7f,0xe2,0x0, +0xcf,0x1, 0xe0,0x0, 0x1, 0x63,0x17,0x1, 0xf2,0x1, 0xc3,0x7f,0xe9,0x2f,0x3f,0x26, +0xe1,0x2c,0x3e,0x1e,0x3e,0x5f,0xe0,0x0, 0x26,0x46,0xe0,0x3, 0x1f,0x86,0x16,0x80, +0x87,0xf, 0xae,0x82,0xc7,0x1, 0xe2,0x1, 0xc7,0x7f,0xaf,0xf, 0xe0,0x0, 0x27,0x43, +0x17,0x0, 0xaf,0xf, 0x17,0x81,0xaf,0x83,0xe0,0x3, 0x17,0x74,0xe0,0x3, 0x1f,0xb5, +0x10,0x81,0xb7,0xf, 0x25,0x2a,0xe0,0x2, 0x1f,0xfd,0xe0,0x0, 0x1e,0xd, 0x89,0x4f, +0xe0,0x0, 0x1c,0x47,0xc1,0x7f,0x17,0x80,0xe0,0xe, 0x37,0xc3,0x16,0x87,0x8d,0x8c, +0x3e,0xdf,0xe2,0x0, 0xc7,0x1f,0xc7,0x81,0x3f,0x19,0x3e,0x98,0xe2,0x1, 0xc7,0xff, +0xc6,0x2, 0x25,0x83,0x3d,0xf2,0x4, 0x8, 0xe0,0xf, 0x85,0x8e,0x86,0x8d,0xe3,0xd, +0x3d,0xdd,0xe0,0xf, 0xae,0x8e,0x3f,0xfa,0x4, 0xe8,0x28,0x87,0xe0,0x3, 0x1f,0x35, +0x9f,0x8e,0x27,0x83,0xc7,0xff,0xb7,0x8e,0xa, 0xe1,0x8f,0x84,0xe2,0x0, 0xcf,0x81, +0x1, 0x1f,0xe0,0x3, 0x1f,0x86,0x8f,0xf, 0x2f,0x44,0x8f,0x2, 0xe2,0x0, 0xcf,0x1, +0x1, 0x40,0x88,0x83,0xe2,0x0, 0xc8,0x81,0x1, 0x1c,0xe0,0x3, 0x1f,0xb5,0x9f,0x8f, +0x27,0xec,0x2d,0x42,0x20,0xe4,0x0, 0xe9,0xf2,0x1, 0xc3,0x7f,0xe9,0x2f,0x3f,0x26, +0xe1,0x2c,0x3e,0x1e,0x3e,0x5f,0x17,0x80,0xaf,0x82,0xe7,0xff,0x0, 0x9e,0x3e,0x6a, +0x0, 0xfb,0xf0,0x0, 0xa8,0x82,0xe7,0xff,0x0, 0x89,0xaf,0x84,0xe7,0xff,0x0, 0x84, +0xe7,0xff,0x2d,0x2b,0xa, 0xe1,0x0, 0x0, 0x8, 0xb7,0xf8,0x0, 0xc, 0x3e,0xe1,0xfe, +0xc0,0x7c,0xe0,0x0, 0x1f,0xe, 0x11,0x90,0xf0,0x0, 0x8e,0xe, 0x39,0x90,0xe0,0x0, +0x1c,0x8d,0xf0,0xa, 0x36,0x21,0x3c,0x63,0xe0,0x3, 0xd4,0x4c,0xea,0x12,0x7f,0xce, +0x89,0xf, 0xea,0x12,0x7a,0xd0,0xe0,0x2, 0x21,0x7a,0xe0,0x1, 0x1f,0xf2,0xa7,0x8f, +0x7a,0x83,0xf0,0x0, 0x16,0x80,0x7f,0x81,0xe8,0x40,0x3b,0xed,0xe0,0x2, 0x1f,0xfd, +0xf0,0x0, 0x1c,0x8d,0x8f,0xdf,0xe0,0x0, 0x1a,0xc7,0x63,0x3, 0xe0,0x0, 0x7f,0x82, +0xf0,0x7, 0x14,0x7f,0xf0,0x1, 0x26,0xb, 0x14,0x90,0x3c,0x90,0xe8,0x40,0x3c,0x68, +0xf0,0x1, 0x13,0x7f,0xe0,0x0, 0x16,0x80,0xe0,0xf, 0x36,0xc3,0xf0,0x0, 0x12,0x87, +0xf0,0x15,0x3a,0xdd,0xe2,0x0, 0xc7,0x9f,0xe8,0xf, 0x3f,0x99,0xf0,0x15,0x3a,0x95, +0xe0,0xf, 0x87,0x8f,0xf8,0x0, 0x82,0x85,0xf0,0x0, 0x12,0x1, 0xe8,0xf, 0x3f,0xd5, +0xe2,0x1, 0xc7,0xff,0xf0,0x14,0x3a,0x1d,0x27,0xb7,0x8f,0x89,0xe2,0x1, 0xcf,0xff, +0xf0,0x40,0x39,0xef,0x1, 0x31,0xf0,0x0, 0x88,0x6, 0xf0,0x0, 0x89,0x19,0xf0,0x0, +0x88,0x96,0xf0,0xf, 0x38,0x2f,0xe3,0xff,0xc7,0xff,0xe0,0x43,0x38,0x9f,0xf8,0x15, +0x38,0xa2,0xf3,0xff,0xc2,0xff,0xe2,0x0, 0xc8,0x80,0xf8,0x13,0x39,0xa0,0xf3,0xff, +0xc1,0xff,0xf8,0x43,0x38,0x15,0xe8,0x6f,0x3d,0x23,0xf8,0x12,0x39,0x21,0xf2,0x0, +0xc8,0x0, 0xf3,0xff,0xc1,0x7f,0xe8,0x75,0x3d,0x22,0xe8,0xf, 0x3f,0x95,0xe3,0xff, +0xc7,0xff,0x3f,0xf8,0xf0,0x40,0x3a,0xe8,0xe0,0x75,0x3c,0xaf,0x3f,0xf8,0xe8,0x40, +0x3c,0x65,0xe0,0x76,0x3c,0xad,0xe8,0x40,0x3e,0xe4,0xe2,0x1, 0xc6,0xff,0xf0,0x40, +0x3e,0x7d,0xc4,0x82,0xe7,0xff,0x1, 0xaa,0xf2,0x1, 0xcb,0x7f,0x1, 0x27,0xf0,0x16, +0x33,0x21,0xf2,0x0, 0x7d,0x10,0xf8,0x1a,0x3d,0x16,0xe8,0x0, 0x8a,0xa, 0xe8,0x0, +0x89,0x9a,0x3c,0x64,0x3c,0xe3,0xdd,0xe9,0x67,0x82,0x67,0x1, 0x3f,0xb4,0xe0,0x43, +0x3c,0x18,0x3f,0x93,0x37,0xa1,0x3f,0x9e,0x97,0x8f,0x3f,0xf8,0x4, 0xf, 0xf0,0xf, +0x36,0xa1,0xe2,0x0, 0x7f,0x4c,0x3f,0x9e,0xf0,0x0, 0xc6,0x81,0xaa,0xf, 0xf2,0x1, +0xc6,0xff,0xa9,0x9f,0x17,0xff,0xe8,0x0, 0xaf,0x8a,0xf0,0x0, 0x13,0x81,0xf0,0x17, +0x3b,0x97,0xe8,0x40,0x3b,0xe7,0xe2,0x1, 0xc3,0xff,0x3b,0xf2,0xc3,0x2, 0xe7,0xfe, +0x1, 0xeb,0xe0,0x1, 0x1f,0x8e,0xf0,0x0, 0x8c,0xf, 0xf8,0x40,0x3c,0x7d,0xe0,0x0, +0x5, 0xed,0xe0,0x1, 0x1f,0xf2,0xe0,0x0, 0x1c,0x8d,0xf0,0x0, 0xa3,0x8f,0xe0,0x2, +0x1f,0xfd,0xe0,0x0, 0x1d,0x47,0x89,0xdf,0xe8,0x40,0x3a,0x6d,0xf0,0x1, 0x12,0xff, +0xf0,0x0, 0x13,0x0, 0xf7,0xff,0x12,0x7f,0xf0,0x0, 0x26,0x51,0x15,0x90,0x3d,0x90, +0xe8,0x40,0x3c,0x65,0xe8,0x40,0x39,0x66,0xe0,0x0, 0x16,0x0, 0xe0,0xf, 0x36,0x43, +0x16,0x87,0x3e,0xdc,0xe2,0x0, 0xc7,0x9f,0x3e,0x9a,0x3f,0x99,0xf0,0x0, 0x81,0x8d, +0xe0,0xf, 0x87,0x8f,0x16,0x81,0xe8,0xf, 0x3f,0xd3,0xe2,0x1, 0xc7,0xff,0x3e,0x9c, +0x27,0x98,0xf0,0x0, 0x89,0x8b,0xf2,0x1, 0xc9,0xff,0xf0,0xf, 0x39,0xb3,0x1, 0x11, +0xf0,0x0, 0x89,0x1b,0xe8,0xf, 0x3f,0x92,0x37,0xa1,0xe8,0xf, 0x3f,0x97,0x97,0x8f, +0x3f,0xf2,0x5, 0x7, 0x3c,0x6c,0xf8,0x40,0x3d,0xe2,0xf8,0x40,0x3f,0x63,0x39,0x6f, +0x3e,0x6d,0xe2,0x1, 0xc6,0x7f,0xf0,0x40,0x3e,0x7c,0xc5,0x82,0x1, 0xd0,0xe2,0x1, +0xcc,0x7f,0x1, 0x14,0xf0,0xf, 0x36,0xa1,0xe2,0x0, 0x7f,0x4c,0x3f,0x9e,0x34,0x21, +0xe2,0x0, 0x7f,0x10,0x3c,0x1e,0xf0,0x0, 0xc6,0x81,0xf0,0x0, 0xaf,0xf, 0xf2,0x1, +0xc6,0xff,0xf0,0x0, 0xad,0x9f,0xf0,0x0, 0xaa,0x8, 0xc2,0x1, 0xe2,0x1, 0xc2,0x7f, +0xf0,0x40,0x3c,0x74,0xe7,0xff,0x1, 0xaa,0xe0,0x1, 0x1f,0xc3,0xe0,0x0, 0x14,0xcc, +0x8d,0xf, 0x3c,0x90,0x35,0x21,0xe2,0x0, 0x7c,0x10,0xe0,0x3, 0xd3,0x1b,0x64,0x3, +0xf0,0xa, 0x34,0x21,0xe0,0x1, 0x14,0xff,0xe0,0x3, 0xd3,0x4e,0xf0,0x0, 0x2e,0x8f, +0xe0,0x0, 0x1f,0xe, 0xea,0x12,0x7f,0xce,0xf0,0x0, 0xae,0x8f,0xf0,0x0, 0xae,0x8e, +0xe0,0x1, 0xc0,0x4, 0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0xf0,0x2, 0x36,0xa1,0xe0,0x0, +0x1c,0xd, 0x3d,0x62,0xe2,0x0, 0x7c,0x90,0xe0,0x3, 0xd2,0xfc,0x64,0x3, 0x3d,0x62, +0xe2,0x0, 0x7c,0x90,0xe0,0x3, 0xd2,0xf6,0xe0,0x0, 0x1c,0x8d,0xe0,0x0, 0x1d,0x47, +0xe0,0x0, 0x17,0x80,0xe0,0xe, 0x37,0xc3,0x16,0x7, 0x3e,0x5f,0xe2,0x0, 0xc7,0x1f, +0x3f,0x19,0x3e,0x1a,0xe0,0xf, 0x85,0x8e,0x86,0x8c,0xc7,0x81,0xe2,0x1, 0xc7,0xff, +0x3e,0xcb,0xe8,0x40,0x3f,0xfd,0xe0,0xf, 0xae,0x8e,0x1, 0xed,0xea,0x12,0x7f,0x4e, +0xf0,0x40,0x3c,0x7f,0xaf,0x8e,0xe8,0x6f,0x3c,0xa8,0xe0,0x0, 0x1f,0xe, 0xaf,0x8e, +0xe0,0x1, 0xc0,0x4, 0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0xf0,0x40,0x3e,0xe2,0x7a,0x83, +0xe7,0xfe,0x0, 0xb1,0x8, 0xb1,0xe0,0x0, 0xd8,0xdd,0x8, 0xa1,0xe7,0xfa,0x0, 0x9a, +0xe0,0x2, 0x1f,0xc8,0x17,0x1, 0x8f,0x8f,0xe0,0x2f,0x3f,0x8e,0xe0,0x1, 0x27,0x87, +0xe0,0x1, 0x2c,0x5, 0xe0,0x0, 0x1f,0x93,0xf0,0x0, 0x88,0x8f,0xf0,0x1, 0x28,0x81, +0xe0,0x0, 0x1f,0x8e,0xf0,0x0, 0x8a,0x8f,0xf0,0x40,0x3a,0xfe,0xe0,0x0, 0x5, 0xf9, +0xe0,0x0, 0x8, 0xb1,0xf7,0xff,0x10,0x7f,0xf0,0x0, 0x1a,0xd, 0xf8,0x10,0x38,0x15, +0xe8,0x40,0x3d,0x61,0xe8,0x40,0x3d,0xe1,0xf8,0x40,0x38,0xf0,0xe0,0x0, 0x3, 0x5e, +0xf0,0xf, 0x30,0xa1,0xf0,0x0, 0xc0,0x81,0xf2,0x1, 0xc0,0xff,0xf8,0x40,0x3a,0xf1, +0xe8,0xf, 0x3f,0x94,0x8c,0xf, 0xe0,0x0, 0x8c,0x9f,0x5, 0xef,0xf0,0x40,0x39,0x68, +0xf0,0x40,0x39,0xe9,0xe8,0x40,0x3e,0x61,0xe0,0xe, 0x36,0x21,0xe8,0xe, 0x3f,0x14, +0x8f,0x8e,0x8e,0x9e,0xe8,0xe, 0x3f,0xa2,0xe2,0x0, 0xcf,0x0, 0xe0,0xe, 0x3f,0xa8, +0xe0,0xf, 0x3c,0x2f,0xe8,0x1, 0x3e,0xa3,0xe2,0x1, 0xc7,0xff,0xe2,0x1, 0xc7,0x7f, +0xe0,0x6e,0x3d,0x2f,0xe2,0x0, 0xc8,0x80,0xe0,0xf, 0x3e,0xa9,0xe0,0xd, 0x3c,0xad, +0xe2,0x1, 0xc6,0xff,0xe2,0x1, 0xc7,0xff,0xe0,0x6f,0x3d,0x2d,0x38,0xee,0x3e,0xeb, +0xe2,0x1, 0xc0,0xff,0xe2,0x1, 0xc6,0xff,0x38,0xfd,0xc6,0x1, 0xf0,0x40,0x3b,0xea, +0xf0,0x40,0x3b,0x6f,0xf2,0x1, 0xc3,0xff,0xe2,0x1, 0xc6,0x7f,0xf2,0x1, 0xc3,0x7f, +0x3, 0x82,0x3f,0x6b,0xf8,0x40,0x3b,0x77,0x3d,0xee,0xe2,0x1, 0xc5,0xff,0x3, 0x82, +0x3f,0xea,0xf0,0x40,0x3a,0xfc,0x3d,0x6f,0xe2,0x1, 0xc5,0x7f,0xe7,0xff,0x1, 0xbe, +0xf8,0x40,0x38,0xf0,0xe7,0xff,0x4, 0x26,0x14,0x4, 0xe1,0x2a,0x3c,0x2a,0x14,0x3, +0xe1,0x2b,0x3c,0x2b,0xe0,0x8, 0x3d,0x5b,0x8, 0xe1,0x14,0x0, 0x38,0x82,0x38,0x82, +0xe0,0x0, 0x1f,0x8e,0x8e,0x8f,0xe0,0x1, 0x26,0xcf,0x8, 0xb7,0xf8,0x0, 0xc, 0x3e, +0xc0,0x70,0xe0,0x1, 0x1f,0xf2,0xe0,0x0, 0x1a,0xd, 0xf0,0x0, 0xa4,0xf, 0xe0,0x2, +0x1f,0xfd,0xe0,0x1, 0x12,0xff,0x8b,0xdf,0xf0,0x40,0x3e,0xe9,0xf0,0x40,0x3f,0x68, +0x3d,0xe8,0x3e,0x69,0xf0,0x40,0x3e,0x64,0x3b,0x65,0xf0,0x40,0x3c,0xe5,0x3f,0x65, +0xe0,0x0, 0x11,0x80,0xf8,0x0, 0x8d,0xc, 0xf8,0x0, 0x8d,0x9c,0xf0,0xf, 0x3d,0x2b, +0xe2,0x0, 0xcf,0x80,0xf8,0x2, 0x3d,0x2e,0xf8,0xf, 0x3f,0x2a,0xe2,0x1, 0xc7,0xff, +0xe2,0x1, 0xc1,0x7f,0xe0,0x62,0x3d,0x2f,0xf0,0xa, 0x3d,0xac,0xe2,0x0, 0xcd,0x0, +0x3f,0xe2,0xf8,0xa, 0x3e,0xab,0xf8,0x2, 0x3d,0xad,0xe2,0x1, 0xc1,0x7f,0xe2,0x1, +0xc5,0x7f,0xe0,0x62,0x3d,0x2a,0x39,0x1f,0x39,0x7e,0xe8,0x40,0x3c,0x6a,0xe8,0x40, +0x3c,0xeb,0xf0,0x0, 0xc6,0x2, 0x3, 0x1f,0x7d,0x82,0x7e,0x1, 0x7e,0x83,0x7f,0x4, +0xdc,0xc, 0xf0,0xf, 0x3d,0x37,0xe0,0x43,0x3c,0x18,0xe8,0xf, 0x3f,0x9b,0x37,0xa1, +0xe8,0xf, 0x3f,0x98,0x97,0x8f,0x65,0x82,0x3f,0xf8,0x66,0x1, 0x66,0x83,0x67,0x4, +0x5, 0xa, 0x3f,0x62,0xf0,0x40,0x3c,0xe3,0xe2,0x1, 0xc7,0x7f,0xe8,0x40,0x3a,0xeb, +0xe8,0x40,0x3b,0x6a,0xc1,0x81,0xe2,0x1, 0xc1,0xff,0x39,0xfd,0xe7,0xff,0x1, 0xb4, +0xe0,0xa, 0x3b,0x37,0xf0,0x2, 0x1b,0xff,0x3d,0x15,0x35,0x21,0xf8,0x0, 0xac,0x87, +0xe8,0xa, 0x3d,0x18,0x16,0x80,0x11,0x1, 0x14,0x2, 0x14,0x84,0x0, 0x8e,0x27,0x3e, +0x97,0xc, 0x97,0x8a,0x3f,0x7f,0xe0,0x0, 0x2, 0x49,0xc6,0x81,0xe2,0x1, 0xc6,0xff, +0x39,0xfd,0xc2,0x2, 0xe0,0x0, 0x1, 0x44,0xf0,0x40,0x3c,0xfd,0x1, 0x77,0x8d,0x84, +0xf0,0x0, 0x8b,0x14,0xe0,0xe, 0x3d,0xa6,0xf0,0x43,0x3a,0x1e,0xf2,0x0, 0xca,0x0, +0xf0,0xf, 0x3b,0x25,0xe0,0x15,0x3b,0x2b,0xf2,0x1, 0xc2,0xff,0xf0,0x43,0x3a,0x1f, +0xe2,0x1, 0xc7,0x7f,0xe8,0x6e,0x3d,0x25,0xe0,0xc, 0x3d,0xb7,0xe8,0x15,0x3a,0xa6, +0xf2,0x0, 0xca,0x0, 0xf2,0x1, 0xc2,0xff,0xe2,0x1, 0xc7,0xff,0xe8,0x6f,0x3d,0x25, +0xe8,0xc, 0x3e,0x16,0x36,0x21,0xe1,0x35,0x3c,0x2f,0xe8,0xc, 0x3e,0x18,0xe1,0x2f, +0x3c,0xaf,0xe1,0x2e,0x39,0x2e,0xf7,0xff,0x2a,0xc4,0x3d,0xb7,0x27,0xc7,0xe8,0xb, +0x3d,0x96,0x35,0xa1,0xe8,0xb, 0x3d,0x98,0x27,0x41,0x97,0x8a,0x97,0xb, 0xe0,0x1, +0xc7,0xc8,0x3f,0x7f,0xe7,0xff,0x5, 0x3b,0xe8,0x0, 0xae,0x87,0xc0,0x10,0xf8,0x0, +0xf, 0x28,0xb, 0xe1,0xe0,0x2, 0x1f,0xff,0x17,0x7f,0xaf,0xf, 0x38,0x82,0x0, 0x0, +0xe0,0x2, 0x1f,0xdd,0xe0,0x2, 0x1e,0xde,0x8f,0xf, 0xe0,0x0, 0x2f,0x56,0xe0,0x0, +0x1f,0x8e,0xf0,0x0, 0x1a,0x8d,0xf0,0x0, 0x8b,0xf, 0xf0,0x0, 0x23,0x4d,0xe0,0x1, +0x1f,0xf2,0xf0,0x0, 0x18,0x8b,0xf0,0x0, 0xa1,0x8f,0xe0,0x2, 0x1f,0xfd,0xf0,0x0, +0x19,0xa, 0xf0,0x0, 0x8a,0x5f,0xe8,0x40,0x3e,0x65,0x3e,0xee,0xe0,0x1, 0x14,0x7f, +0xf0,0x40,0x3b,0xee,0x8d,0xc, 0x8d,0x9c,0xe8,0xf, 0x3d,0x34,0x14,0x81,0x3f,0x9b, +0x37,0xa1,0xe8,0xf, 0x3f,0x93,0x97,0x8f,0x3c,0x9d,0xe8,0x40,0x3f,0xf7,0xc6,0x2, +0x5, 0x8, 0xe8,0x0, 0xad,0x1, 0x3c,0x6d,0xe8,0x0, 0xad,0x82,0xf0,0x40,0x3b,0xef, +0x3e,0xe9,0xe2,0x1, 0xc6,0xff,0xe8,0x40,0x3e,0xf6,0x1, 0xe5,0xe0,0x0, 0x1d,0x47, +0x15,0x81,0xe0,0xf, 0x37,0x43,0x16,0x7, 0x3d,0x9e,0x3c,0x7e,0x3e,0x5e,0xe2,0x0, +0xc7,0x9f,0x3f,0x6b,0xe8,0xf, 0x3f,0x95,0x3e,0x1a,0xe2,0x1, 0xc7,0x7f,0x1, 0x8, +0xe0,0xf, 0x85,0x8f,0x86,0xc, 0xe3,0xc, 0x3d,0xdc,0xe0,0xf, 0xae,0xf, 0x3e,0xfe, +0x1, 0xe8,0x38,0x82,0x38,0x82,0xe0,0x1, 0x8c,0x8d,0x8c,0x7d,0xe7,0xfd,0x0, 0xca, +0xe0,0x0, 0x1f,0x8e,0xe0,0x1, 0x1c,0xce,0x8d,0xf, 0x17,0x80,0xaf,0x89,0xea,0x12, +0x7f,0xcd,0x2d,0xd, 0xe0,0x2, 0x1f,0x48,0xad,0xf, 0x8f,0xe, 0xe2,0x0, 0xcf,0x1, +0x1, 0x15,0xea,0x12,0x7f,0xcc,0x17,0x0, 0xaf,0xf, 0x38,0x82,0x87,0xf, 0xc7,0x1, +0xe2,0x1, 0xc7,0x7f,0xe2,0x0, 0xcf,0x6, 0x5, 0x82,0x17,0x6, 0xaf,0xf, 0xe0,0x2, +0x1f,0x48,0x8f,0xe, 0xe2,0x0, 0xcf,0x1, 0x1, 0xed,0x8, 0xb3,0xe0,0x2, 0x1e,0xeb, +0xe0,0x3, 0x19,0x1c,0x16,0x0, 0x8f,0xd, 0xae,0x2, 0xe0,0x0, 0x2f,0x5a,0xe2,0x0, +0xcd,0xf, 0xe0,0x0, 0x2, 0xd1,0xe2,0x0, 0xcd,0x1, 0xe0,0x0, 0x5, 0xd6,0x8f,0x8f, +0xe2,0x0, 0xcf,0x85,0xe0,0x0, 0x2, 0xd1,0xfa,0x12,0x78,0xcc,0xf8,0x0, 0x89,0x81, +0xf0,0x1, 0x29,0xd9,0xf7,0xff,0x11,0x7f,0xf0,0x0, 0x1a,0x8d,0xf0,0x12,0x39,0x1a, +0xe8,0x40,0x3e,0xe3,0xf8,0x40,0x39,0xf2,0xe0,0x1, 0x3, 0x2e,0xf0,0xf, 0x31,0xa1, +0xf0,0x0, 0xc1,0x81,0xf2,0x1, 0xc1,0xff,0xe8,0x40,0x3d,0x73,0xe8,0xf, 0x3f,0x95, +0xf0,0x0, 0x8b,0x1f,0x5, 0xf0,0xf8,0x40,0x3a,0x66,0xe8,0x40,0x3f,0xe3,0x0, 0x89, +0x3d,0xfd,0xe8,0x6d,0x3a,0x27,0xc7,0x81,0xe2,0x1, 0xc7,0xff,0x3d,0x7f,0x1, 0x63, +0xe0,0xe, 0x37,0xa1,0xe8,0xe, 0x3f,0x15,0x8f,0x1e,0xe8,0xc, 0x3f,0x24,0xe8,0xb, +0x3f,0x26,0xe2,0x0, 0xce,0x0, 0xf0,0x40,0x3b,0xeb,0xf2,0x1, 0xc3,0xff,0x2, 0x69, +0xe0,0x41,0x3e,0x4c,0x3e,0x7d,0xf0,0xe, 0x3b,0x2e,0xe2,0x1, 0xc7,0x7f,0xe0,0x6d, +0x3a,0x2e,0x0, 0xe2,0xea,0x12,0x7f,0xcc,0x17,0x0, 0xaf,0xf, 0x9, 0xe1,0xc7,0x7f, +0xaf,0xd, 0xe7,0xff,0x0, 0xa6,0xea,0x12,0x7f,0xcc,0x8f,0xf, 0x27,0x3, 0xc7,0x7f, +0xaf,0xf, 0xe0,0x0, 0x1f,0x93,0xe0,0x0, 0x1f,0x12,0x89,0x8f,0x3d,0x73,0x5, 0x96, +0xe0,0x0, 0x21,0xfd,0xe2,0x0, 0xc9,0x81,0xe0,0x1, 0x1, 0x7, 0xe0,0x1, 0x1f,0xe8, +0x17,0x3, 0x8f,0x8f,0xaf,0x9, 0xe0,0x0, 0x27,0xfb,0xe2,0x0, 0xcf,0x82,0x1, 0xdf, +0xe0,0x0, 0x1f,0x38,0xaf,0x8e,0xe0,0x0, 0x9, 0xe1,0xe0,0x0, 0x4, 0xd5,0xe2,0x0, +0xcd,0x1, 0x5, 0xd5,0xf0,0x0, 0x1b,0x8d,0xf0,0x0, 0x11,0x1, 0xf8,0x40,0x38,0xe7, +0xf0,0x0, 0x13,0x2, 0xe8,0x0, 0x8c,0x1, 0xe8,0x0, 0x8d,0x91,0xf0,0x40,0x39,0xe8, +0xf0,0x40,0x3a,0x6b,0xe8,0x40,0x3e,0x62,0xe0,0xf, 0x36,0x21,0xf0,0xe, 0x3b,0x9f, +0x8e,0x8e,0x8f,0x1e,0xf0,0xf, 0x39,0xad,0xe2,0x0, 0xcf,0x80,0xe0,0xf, 0x3c,0x2d, +0x3e,0xa8,0xe2,0x1, 0xc6,0xff,0xf0,0x15,0x3a,0x2e,0xe2,0x1, 0xc7,0xff,0xe0,0x6f, +0x3d,0x2d,0xe0,0xd, 0x3d,0xae,0xf2,0x0, 0xca,0x80,0x3f,0x2b,0xe2,0x1, 0xc7,0x7f, +0xe2,0x1, 0xc6,0xff,0xc6,0x1, 0xe0,0x6d,0x3d,0x2e,0xf1,0x2f,0x3b,0x2f,0xe2,0x1, +0xc6,0x7f,0xf1,0x2e,0x3b,0x2d,0x27,0x83,0xe7,0xff,0x2f,0x32,0x3d,0x7c,0x2, 0xd5, +0xf0,0x0, 0xc1,0x1, 0xf2,0x1, 0xc1,0x7f,0xe8,0x40,0x3d,0x72,0xf0,0x0, 0xc0,0x82, +0x1, 0xc2,0x9, 0xe1,0xe2,0x0, 0xce,0x85,0xe7,0xff,0x5, 0x95,0x17,0x81,0xe8,0x0, +0xaf,0x81,0x9, 0xe1,0xe2,0x0, 0xcd,0x1, 0xe7,0xff,0x1, 0x9a,0xe0,0x2, 0x1f,0xdd, +0x8f,0x8f,0xe2,0x0, 0xcf,0x81,0xe7,0xff,0x1, 0x93,0xe0,0x1, 0x1f,0xc7,0x9f,0x8f, +0xe2,0x1, 0xcf,0xc8,0xe7,0xff,0x5, 0x8c,0x9, 0xe1,0xde,0x8b,0x17,0x81,0xaf,0x82, +0x9, 0xe1,0xf1,0xff,0xc1,0xff,0xf8,0x0, 0xa9,0x81,0x9, 0xe1,0xe0,0x0, 0x1f,0xb8, +0x17,0x1, 0xaf,0xf, 0x9, 0xe1,0x8c,0x9e,0x8c,0xe, 0xdd,0xa3,0xa9,0x82,0x9, 0xe1, +0x8, 0xb1,0xe0,0x1, 0x1f,0xf2,0xe0,0x1, 0x15,0x48,0xa4,0xf, 0x14,0xa8,0xef,0xfd, +0xda,0x96,0xe0,0x0, 0x1d,0x8d,0xe0,0x1a,0x97,0xfb,0xe2,0x1b,0xcf,0xac,0xe0,0x0, +0x1f,0x8e,0x8d,0xf, 0x2, 0x6, 0xe0,0x1b,0x97,0x9b,0xe3,0xe4,0xcf,0xd4,0x3, 0x19, +0x25,0x17,0xe0,0x0, 0x1c,0xc7,0x16,0x80,0x3f,0xed,0xe2,0x1, 0xc7,0xff,0xe0,0xe, +0x37,0xc3,0xe2,0x0, 0xc7,0x87,0x3f,0x1b,0x3f,0x99,0xe0,0xf, 0x86,0xe, 0x87,0x8f, +0xc6,0x81,0xe3,0xf, 0x3e,0x5f,0x3e,0xfa,0xe0,0xf, 0xaf,0x8e,0x1, 0xee,0x8, 0xe1, +0xe0,0xf, 0x35,0x24,0x3c,0x7f,0x5, 0x7c,0xe0,0x3, 0x1f,0xae,0x8f,0x8f,0xe2,0x0, +0xcf,0x81,0x1, 0x5f,0x8, 0xe1,0xe0,0x0, 0x1f,0xbb,0xe0,0x2, 0x8f,0xf, 0x3f,0x9e, +0xe0,0x6, 0x8c,0x8f,0xe0,0x1, 0x1f,0xe9,0x8f,0x8f,0xe2,0x0, 0xcf,0x81,0x1, 0x2, +0x38,0x82,0xe2,0x1, 0xc4,0xfd,0x2c,0xfd,0x8, 0xb1,0xe0,0x1, 0x1f,0xf1,0xe0,0x13, +0x15,0x44,0xa4,0xf, 0xef,0xfd,0xda,0x4b,0xe2,0x0, 0xcc,0x64,0x5, 0x87,0xe0,0x1, +0x1f,0xdc,0x17,0x7f,0xa7,0x8f,0xe0,0x7, 0xaf,0x3f,0x8, 0xe1,0x8, 0xb2,0xe0,0x1, +0x1f,0xd7,0xe0,0x3, 0x8f,0xaf,0x27,0xb1,0xe0,0x0, 0x19,0xe, 0xdf,0x9a,0xd9,0xc1, +0xd9,0xc0,0xef,0xff,0xd7,0x3, 0xd9,0xbd,0xe0,0x0, 0x1f,0xa7,0x87,0x2, 0xaf,0xf, +0xd5,0x78,0xd9,0xb7,0xd9,0xb6,0x8f,0x82,0xe2,0x0, 0xcf,0x81,0x1, 0x9, 0xd9,0xf5, +0xd9,0xb0,0xda,0xfb,0xe0,0x0, 0x1f,0xb8,0x8f,0x8f,0x27,0x93,0x9, 0x61,0xe0,0x3, +0x1f,0x6, 0x16,0x80,0xae,0x8e,0x17,0x80,0xe0,0x3, 0x1f,0x35,0xb7,0x8e,0xe0,0x0, +0x1f,0x41,0xaf,0x8e,0xd9,0x9e,0xda,0xe9,0xe0,0x0, 0x1f,0xb8,0x8f,0x8f,0x2f,0xef, +0xde,0x48,0x9, 0x21,0xe7,0xf3,0x0, 0x96,0xef,0xfe,0xde,0x50,0xd9,0x92,0x0, 0xcd, +0x8, 0xb6,0xc0,0x74,0x3c,0x7a,0xe4,0xf, 0x35,0x28,0xe4,0xe, 0x34,0x28,0x39,0x68, +0x4, 0x82,0x39,0x6a,0x3f,0x7f,0x3f,0xe8,0xe0,0x6f,0x3d,0xaa,0x3c,0xfb,0x38,0xef, +0xe2,0x1, 0xc1,0x7f,0xe2,0x1, 0xc0,0xff,0x39,0xeb,0xe4,0xf, 0x35,0xa8,0xe4,0xe, +0x34,0xa8,0x3, 0x82,0x39,0xe9,0x3f,0x7f,0xe2,0x1, 0xc1,0xff,0x3f,0xe9,0xe0,0x6f, +0x3d,0xab,0x3c,0xf3,0xf0,0x40,0x3b,0x6f,0xf2,0x1, 0xc3,0x7f,0xe0,0x1, 0x1, 0x1e, +0x3d,0x72,0xe0,0x1, 0x2, 0x9e,0xf0,0x40,0x3a,0xe2,0xf0,0x0, 0x11,0x81,0xe0,0x1, +0x1f,0xf2,0xf0,0x0, 0x11,0x1, 0xf0,0x0, 0xa2,0xf, 0xe0,0x2, 0x1f,0xfd,0xe0,0x0, +0x1a,0x29,0xf0,0x0, 0x8b,0xdf,0xf8,0x12,0x39,0x16,0x3c,0xe3,0x15,0x0, 0xf0,0x1, +0x10,0x7f,0xf7,0x0, 0x10,0x81,0x14,0x7f,0xf0,0x40,0x39,0x79,0xe0,0x0, 0x1, 0x62, +0xe8,0x40,0x3c,0xf6,0xf0,0x1, 0x21,0x83,0xe0,0x1, 0x3, 0x65,0x17,0x1, 0x3f,0x19, +0xf0,0x40,0x3a,0xf1,0xf0,0x0, 0x6a,0x84,0x6f,0x5, 0xe0,0x1, 0x3, 0x61,0x17,0x81, +0xe8,0xf, 0x3f,0x95,0xe2,0x1, 0xc7,0xff,0x6f,0x88,0x6c,0x89,0x6f,0x8c,0x6f,0xd, +0x17,0x4, 0x3f,0x10,0xe8,0x40,0x3e,0x60,0xe8,0x40,0x3b,0x61,0x16,0x80,0x8d,0x8e, +0x12,0x81,0xe2,0x1, 0xcd,0xff,0x3a,0x9d,0xe8,0xf, 0x3d,0xb7,0x1, 0x10,0x8d,0x9e, +0x3f,0x9b,0xe2,0x1, 0xcd,0xff,0x37,0xa1,0xe8,0xf, 0x3f,0x94,0x1, 0x8, 0x97,0x8f, +0x3f,0xf6,0xe0,0x6c,0x3a,0x2d,0x3f,0xf6,0xe0,0x66,0x3a,0x2f,0x3e,0xe5,0xe2,0x1, +0xc6,0xff,0xe2,0x0, 0xce,0x83,0xc7,0x4, 0x1, 0xe3,0xe0,0xf, 0x36,0x22,0xe2,0x0, +0x7f,0x4, 0x3f,0x1f,0x8e,0x9e,0xf0,0x40,0x3b,0x7d,0xe0,0x1, 0x1, 0x34,0xe8,0x40, +0x39,0xf6,0xe0,0x1, 0x1, 0x30,0xe2,0x1, 0xce,0x7f,0xe7,0xff,0x1, 0x2f,0xe0,0xe, +0x35,0x21,0x3c,0xed,0x3f,0x14,0xe2,0x0, 0x7e,0x4, 0xf0,0x40,0x39,0x79,0x3f,0x9c, +0xc5,0x1, 0xb3,0xe, 0xe2,0x1, 0xc5,0x7f,0xf0,0x0, 0x8a,0x8f,0xe7,0xff,0x1, 0xa2, +0xe0,0xff,0x14,0x7f,0x25,0x18,0x17,0xff,0x3f,0x9a,0x3d,0x6f,0xe2,0x1, 0xc5,0x7f, +0xe0,0x0, 0x1e,0xa9,0xe0,0xf, 0x35,0x21,0xe0,0x0, 0x1f,0x28,0xe0,0xf, 0x3f,0x9d, +0xe0,0xff,0x14,0x7f,0xe0,0x80,0x96,0x9e,0x3e,0xf8,0xe0,0x6d,0x3a,0x28,0x3f,0x7f, +0x3c,0x6d,0x1, 0xf9,0xc0,0xc, 0xb, 0x61,0x3c,0x72,0xe7,0xfe,0x5, 0xe6,0xf0,0x40, +0x3a,0xe1,0xf0,0x0, 0x11,0x80,0xe7,0xfe,0x0, 0xe4,0xe0,0x0, 0x3, 0x59,0x17,0x1, +0x3f,0x19,0xe8,0x40,0x39,0x75,0xf0,0x0, 0x6a,0x84,0x6f,0x5, 0xe0,0x0, 0x3, 0x55, +0x17,0xff,0xe8,0xf, 0x3f,0x95,0xe2,0x1, 0xc7,0xff,0x6f,0x88,0x6c,0x89,0x6f,0x8c, +0x6f,0xd, 0x17,0x4, 0x3f,0x10,0xe8,0x40,0x3e,0xe3,0xe8,0x40,0x3e,0x60,0xe8,0x40, +0x3b,0x61,0x8d,0x8e,0x12,0x81,0xe2,0x1, 0xcd,0xff,0x3a,0x9d,0xe8,0xf, 0x3d,0xb7, +0x1, 0x10,0x8d,0x9e,0x3f,0x9b,0xe2,0x1, 0xcd,0xff,0x37,0xa1,0xe8,0xf, 0x3f,0x94, +0x1, 0x8, 0x97,0x8f,0x3f,0xf6,0xe0,0x6c,0x3a,0x2d,0x3f,0xf6,0xe0,0x66,0x3a,0x2f, +0x3e,0xe5,0xe2,0x1, 0xc6,0xff,0xe2,0x0, 0xce,0x83,0xc7,0x4, 0x1, 0xe3,0xe0,0xf, +0x36,0x22,0xe2,0x0, 0x7f,0x4, 0x3f,0x1f,0x8e,0x9e,0xf0,0x40,0x3b,0x7d,0x1, 0x2d, +0xe8,0x40,0x39,0xf6,0x1, 0x2a,0xe2,0x1, 0xce,0x7f,0xe7,0xfe,0x1, 0x2f,0xe0,0xe, +0x35,0x21,0xe2,0x0, 0x7e,0x4, 0x3f,0x9c,0x3f,0x14,0xc5,0x1, 0xf0,0x0, 0x8a,0x8f, +0xb3,0xe, 0xe2,0x1, 0xc5,0x7f,0x3c,0xed,0xe7,0xfe,0x0, 0xa0,0xf0,0x40,0x3a,0xf2, +0x6c,0x4, 0x6c,0x5, 0x2, 0x23,0x6c,0x8, 0x6c,0x9, 0x6c,0xc, 0x6c,0xd, 0xe7,0xff, +0x0, 0xb2,0xe8,0x40,0x38,0xf5,0x6c,0x4, 0x6c,0x5, 0x2, 0x12,0x6c,0x8, 0x6c,0x9, +0x6c,0xc, 0x6c,0xd, 0xe7,0xfe,0x0, 0xa6,0x8f,0xe, 0x3f,0x72,0x1, 0xd5,0xe7,0xfe, +0x0, 0xe9,0x8f,0xe, 0x3f,0x71,0xe7,0xfe,0x1, 0xd0,0xe7,0xfe,0x0, 0xe3,0x17,0x81, +0xe8,0xf, 0x3f,0x95,0x6f,0x88,0x6c,0x89,0x0, 0xec,0x17,0xff,0xe8,0xf, 0x3f,0x95, +0x6f,0x88,0x6c,0x89,0x0, 0xdb,0x0, 0x0, 0x8, 0xb3,0xf7,0xff,0x12,0x7f,0xf0,0x43, +0x38,0x8, 0xf0,0x14,0x3a,0x18,0xf0,0x0, 0x10,0x81,0xf8,0x43,0x3a,0x4, 0xf8,0x11, +0x38,0x90,0xe0,0x2, 0x1f,0xfd,0xf8,0x40,0x3a,0x71,0x80,0xef,0xf0,0x0, 0x82,0xff, +0xe0,0x0, 0x2, 0x65,0xe0,0x1, 0x1f,0x72,0xf7,0xff,0x11,0x7f,0xf0,0x0, 0x11,0x81, +0xf0,0x13,0x39,0x98,0xf0,0x43,0x3b,0x89,0xf0,0x12,0x39,0x19,0x15,0x1, 0x11,0x81, +0xf0,0x0, 0xa3,0xe, 0x89,0x5f,0xf8,0x43,0x39,0x2, 0xe8,0xa, 0x3d,0x17,0xf2,0x1, +0xc1,0xff,0xe7,0x0, 0x14,0x1, 0x39,0x99,0xf2,0x0, 0xca,0x0, 0xe8,0x43,0x3f,0x83, +0xe8,0x40,0x3d,0xe4,0xe0,0x6b,0x3c,0x2f,0xe8,0x40,0x38,0xf4,0xe0,0x6b,0x3d,0x2f, +0xe8,0x40,0x3d,0x72,0x4, 0x2e,0x3e,0x63,0xe0,0x9, 0x39,0x3b,0xe2,0x1, 0xc6,0x7f, +0xe8,0x2b,0x3d,0x80,0xe8,0x40,0x3f,0xe2,0x0, 0x84,0x25,0x9c,0x3f,0xfa,0x2, 0x21, +0xe2,0x0, 0xcf,0x80,0xe0,0x43,0x3e,0x8c,0x3f,0x6f,0xe0,0x6e,0x3c,0x2d,0xf0,0x40, +0x3a,0xff,0xc6,0x7f,0xe0,0x6e,0x3d,0x2d,0xe0,0xd, 0x3f,0x19,0xc7,0x81,0x36,0xa1, +0xe8,0x2e,0x3f,0x7, 0xe0,0x43,0x3f,0x8f,0xe8,0xd, 0x3e,0x96,0xe2,0x1, 0xc6,0x7f, +0x2f,0x65,0x97,0xd, 0x3f,0x78,0xe0,0x6e,0x3c,0x28,0x3f,0xfa,0x3c,0x6e,0x5, 0x61, +0xf0,0x0, 0xc2,0x1, 0xf8,0x43,0x3a,0x4, 0xf8,0x40,0x3a,0x71,0xf1,0xff,0xc1,0xff, +0xf2,0x1, 0xc1,0xff,0xe7,0xff,0x5, 0x3a,0x9, 0xe1,0xe7,0x0, 0x14,0x1, 0x9, 0xe1, +0x8, 0xb4,0xc0,0x78,0x39,0xea,0x3a,0x6b,0x7e,0x2, 0x7e,0x81,0xdf,0x7e,0x39,0x68, +0x3c,0xe4,0x3c,0x63,0xdf,0x7a,0x39,0x18,0xe4,0x8, 0x31,0x4f,0x3c,0x12,0x34,0x1, +0x66,0x81,0x3f,0xe8,0xe3,0xff,0xc6,0xff,0xe3,0xff,0xc7,0xff,0xe0,0xe, 0x3e,0xaf, +0xe0,0x43,0x3f,0x1e,0x66,0x2, 0xe2,0x0, 0xcf,0x0, 0xe0,0x8, 0x3e,0xa8,0xe0,0xe, +0x3f,0xad,0xe3,0xff,0xc6,0x7f,0xe0,0x43,0x3f,0x1e,0xe0,0x43,0x3c,0x18,0xe0,0xf, +0x3e,0xac,0xe0,0x68,0x3d,0x2e,0xe0,0x2, 0x1f,0x41,0xe0,0x43,0x3f,0x9f,0x3e,0x2d, +0xe2,0x0, 0xcf,0x80,0x9f,0xe, 0xe0,0x43,0x3e,0x1c,0xe0,0x6f,0x3d,0x2c,0xe2,0x0, +0xcf,0xb, 0x16,0x86,0x17,0x3, 0xe0,0x6e,0x3c,0xad,0x3f,0x38,0x3f,0xfe,0x5, 0xa, +0xe0,0x0, 0x17,0x64,0xe0,0x2f,0x3f,0x9e,0xe0,0x28,0x3c,0x1e,0x3c,0x5f,0xc0,0x8, +0xa, 0x61,0x14,0x0, 0xc0,0x8, 0xa, 0x61,0x8, 0xb1,0xc0,0x44,0x15,0x3c,0x14,0x80, +0xe2,0x0, 0x7c,0x4, 0xe0,0x2, 0xdd,0x50,0xe0,0x0, 0x1f,0x8e,0x14,0x0, 0x8d,0x8f, +0xe2,0x0, 0xcd,0x82,0xe0,0x0, 0x5, 0xc8,0x15,0x7f,0x3d,0x1b,0xe2,0x1, 0xc5,0x7f, +0xc5,0x1, 0xe0,0x0, 0x1f,0x8d,0xf2,0x0, 0x7b,0x4, 0x35,0x21,0x3d,0x1f,0xe8,0x40, +0x3f,0x66,0x86,0xf, 0x86,0x9f,0xc7,0x82,0xae,0xe, 0x3f,0xfa,0xc7,0x2, 0xe0,0x40, +0xae,0x9e,0x1, 0xf8,0xf0,0x0, 0x13,0x80,0xe8,0x40,0x3e,0xe7,0xf0,0x0, 0xc3,0x81, +0xf2,0x1, 0xc3,0xff,0xe8,0x40,0x3d,0xf7,0x14,0x1, 0x1, 0x25,0xe8,0x0, 0x8c,0x86, +0xe8,0x0, 0x8d,0x16,0xe8,0x40,0x3f,0xe7,0xe0,0xe, 0x37,0xa1,0xe2,0x0, 0x7e,0x4, +0x3f,0x1c,0x8e,0xe, 0x8f,0x1e,0x3e,0x79,0x3e,0x6d,0xe0,0x6c,0x39,0xa8,0xc7,0x81, +0x3f,0x7a,0xe2,0x1, 0xc7,0xff,0x3f,0x6d,0xe0,0x6e,0x39,0xac,0x3d,0xff,0x3c,0x6e, +0x1, 0xec,0xf0,0x0, 0xc3,0x81,0xf2,0x1, 0xc3,0xff,0xe8,0x40,0x3d,0xf7,0xf0,0x0, +0xc3,0x2, 0x1, 0xdd,0xc0,0x3c,0x8, 0xe1,0x8, 0xb7,0xf8,0x0, 0xc, 0x3e,0xc0,0x40, +0xe0,0x0, 0x1f,0xe, 0xe0,0x1, 0x1f,0xc3,0x8f,0xe, 0xea,0x4f,0x7d,0x98,0x89,0xf, +0xe9,0xff,0xc5,0xff,0xe0,0x2, 0x1e,0x3b,0x7f,0xa, 0x17,0x80,0xe0,0x2, 0x1f,0x22, +0xf0,0x40,0x38,0xe8,0xf0,0x2, 0x1c,0xc3,0xa4,0xb, 0xaf,0x8e,0x3d,0x62,0xaf,0x8c, +0x14,0x80,0xf0,0x0, 0x78,0x81,0xe8,0x7, 0xaf,0xd9,0xe8,0x7, 0xaf,0xe9,0xe0,0x2, +0xdc,0xdb,0xe0,0xa, 0x31,0x21,0x14,0x80,0xe8,0x40,0x3c,0x69,0xe0,0x2, 0xdc,0xd4, +0x67,0xa, 0xf0,0x0, 0x60,0x81,0xe2,0x0, 0xcf,0x1, 0xe0,0x2, 0x5, 0xe1,0xea,0x4f, +0x7f,0x98,0xe9,0xff,0xc7,0xff,0xf0,0x0, 0xa6,0x8f,0xf0,0x0, 0x15,0x81,0xf8,0xe, +0x3d,0xad,0xf0,0x0, 0x18,0x3, 0xf8,0x40,0x3e,0x6b,0x7f,0xe, 0xf2,0x0, 0xcd,0x81, +0xf8,0x40,0x8c,0x30,0xe8,0x40,0x8b,0xa0,0xe0,0x2, 0x1, 0x43,0xe8,0x0, 0x8f,0xd, +0xe0,0x2, 0x27,0x3f,0x67,0x8a,0xf0,0x40,0x3d,0xff,0xe0,0x2, 0x3, 0xc1,0x3b,0x6f, +0xc3,0x7f,0xe2,0x1, 0xc3,0x7f,0x67,0xe, 0xe8,0x17,0x3b,0x2b,0xe8,0xe, 0x3f,0x1d, +0xf2,0x1, 0xc3,0xff,0xf0,0x17,0x3b,0x9e,0xf0,0x17,0x33,0xa1,0xe0,0x0, 0x1f,0x8d, +0x17,0x1, 0xf0,0x0, 0xc3,0x83,0xe0,0x3, 0x1d,0x85,0xe8,0xe, 0x3f,0x1d,0xc3,0x1, +0xf0,0x17,0x3b,0x9f,0x7f,0x9, 0x3a,0x6e,0xf0,0x0, 0x7d,0x8b,0xf8,0x40,0x3a,0xe8, +0xe8,0x40,0x3a,0xe0,0x17,0x5, 0x3b,0x1b,0xf8,0x40,0x3d,0xe7,0xf0,0x0, 0x78,0xc, +0xf0,0x40,0x3f,0x67,0x0, 0x9e,0xe0,0x0, 0x27,0xc9,0x16,0x81,0xe8,0xd, 0x3e,0xd1, +0xe0,0x0, 0x26,0xc4,0xe0,0x2, 0x1e,0x3b,0xe8,0x7, 0x87,0xd9,0x86,0x8c,0xc7,0x81, +0xc6,0x81,0xae,0x8c,0xe8,0x7, 0xaf,0xd9,0x8e,0x4, 0xe0,0x2, 0x2e,0x6, 0xe8,0x0, +0x8f,0x8d,0xaf,0x84,0xc2,0x82,0xf0,0x40,0x3d,0xf5,0xc2,0x1, 0xe0,0x1, 0x1, 0x60, +0xf0,0x40,0x8d,0x15,0xf0,0x0, 0x88,0x5, 0xf8,0xf, 0x3a,0xaa,0xe2,0x0, 0xcf,0x80, +0xf8,0x2, 0x3c,0x2a,0xf8,0xf, 0x3d,0x28,0xe2,0x1, 0xc7,0xff,0xf8,0xd, 0x3f,0x20, +0xe2,0x1, 0xc1,0x7f,0xe0,0x62,0x3d,0x2f,0xe8,0x3, 0x3b,0xa0,0xe2,0x0, 0xce,0x80, +0xf0,0xf, 0x38,0x27,0xe2,0x1, 0xc1,0xff,0xe2,0x1, 0xc7,0xff,0xe1,0x2d,0x39,0x1e, +0xe0,0x63,0x3d,0x2f,0x2e,0xd8,0xe1,0x2f,0x39,0x9e,0x2f,0xd5,0xf1,0x2d,0x3e,0x23, +0xf1,0x2f,0x3e,0x22,0xe7,0xff,0x2e,0xb9,0xe9,0x2d,0x39,0x1c,0x2e,0x84,0xe9,0x2d, +0x39,0x9c,0x26,0xc9,0x16,0x82,0xe8,0xd, 0x3e,0xd1,0x26,0xc5,0xe0,0x2, 0x1d,0xfd, +0xe0,0x1, 0x1e,0x72,0x8e,0xdb,0xa5,0x8c,0xf0,0xc, 0x3c,0x3d,0xe8,0xd, 0x3e,0xba, +0x3e,0x17,0xe8,0xd, 0x3e,0x90,0x36,0x21,0x36,0xa1,0x3e,0x1b,0x3e,0x9b,0xf0,0x0, +0x91,0xc, 0xf0,0x0, 0x92,0xd, 0x16,0x82,0xe1,0x2c,0x3e,0xa2,0xe8,0x40,0x3d,0xe0, +0xe8,0x40,0x3d,0x6a,0xe1,0x2d,0x3e,0xa3,0x3c,0xe7,0xe8,0x40,0x3c,0x68,0x7f,0x3, +0x7f,0x84,0xf0,0x0, 0x78,0x81,0xf0,0x0, 0x7a,0x82,0x7e,0x8, 0x7e,0x8d,0xf0,0x0, +0x78,0x7, 0xf0,0x0, 0x79,0x6, 0xf0,0x0, 0x7a,0x5, 0xdc,0x8b,0xf0,0x0, 0x61,0x6, +0xf0,0x0, 0x62,0x5, 0xe2,0xff,0xcc,0x7f,0xf8,0xc, 0x39,0x14,0xe4,0xd, 0x36,0x4f, +0xf0,0x0, 0x60,0x7, 0x3e,0x9c,0x16,0x0, 0xe0,0x6c,0x39,0xa8,0x36,0x81,0xf8,0x40, +0x39,0x74,0xe8,0x40,0x3d,0xe0,0xe8,0x40,0x3d,0x6a,0xe0,0x43,0x3e,0x9d,0xf8,0x40, +0x3d,0x64,0x3c,0xe7,0xe8,0x40,0x3c,0x68,0xe8,0x7a,0x3b,0x22,0x7e,0x7, 0xde,0x39, +0x65,0x8d,0x66,0x88,0x7c,0x10,0x3e,0xdb,0x7e,0x8f,0xde,0x7f,0x67,0x3, 0x67,0x84, +0xf0,0x0, 0x60,0x81,0xf0,0x0, 0x61,0x6, 0xf0,0x0, 0x61,0x87,0xf0,0x0, 0x62,0x5, +0xf0,0x0, 0x62,0x82,0xe0,0x1, 0x24,0x1d,0xf8,0x40,0x3a,0x6a,0xe0,0x2, 0x1e,0xc1, +0xe0,0x0, 0x1d,0xb1,0x9e,0xd, 0x9e,0x8b,0xe2,0x0, 0xce,0xb, 0xe8,0x7a,0x3c,0xa4, +0xe2,0x0, 0xce,0x8a,0xf8,0x40,0x3a,0x6a,0xe0,0x0, 0x2, 0xee,0xe0,0x2, 0x1e,0x5d, +0xe0,0x0, 0x14,0x51,0x8e,0x8c,0xe2,0x0, 0xce,0x81,0xe0,0x1, 0x1, 0xa, 0xe8,0x8, +0x3c,0x34,0xe0,0x0, 0x14,0xe4,0x7f,0x3, 0xf0,0x0, 0x78,0x81,0xf0,0x0, 0x79,0x87, +0xf0,0x0, 0x7a,0x82,0xe0,0x2, 0xdb,0x4, 0xf0,0x0, 0x61,0x87,0x67,0x3, 0xf0,0x40, +0x39,0xf8,0xf0,0x0, 0x60,0x81,0xf0,0x0, 0x62,0x82,0xe7,0xfe,0x5, 0x2d,0x65,0x90, +0x17,0x80,0x66,0xf, 0xe1,0x3a,0x3d,0x8f,0xf0,0x40,0x3d,0x7c,0xe7,0xfe,0x5, 0x9e, +0xc2,0x82,0xf0,0x40,0x3d,0xf5,0xc2,0x1, 0xe7,0xfe,0x1, 0xa4,0xf0,0x0, 0x65,0x8b, +0x17,0x81,0xf0,0x0, 0x60,0xc, 0xe8,0xf, 0x3f,0x9b,0xf0,0x40,0x3d,0xef,0xf0,0x0, +0xc0,0x2, 0xf2,0x1, 0xc5,0xff,0xf0,0x0, 0x66,0x89,0xe7,0xfd,0x0, 0xb9,0x67,0x8a, +0xf8,0x0, 0xad,0x8d,0xf0,0x40,0x3d,0xff,0xe7,0xfd,0x4, 0xc3,0xe0,0x0, 0xc0,0x40, +0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0xe8,0x0, 0x8e,0x8d,0x3f,0xec,0xe2,0x1, 0xc7,0xff, +0x3f,0xfd,0x3d,0xec,0x5, 0x82,0x3d,0xed,0xea,0x4f,0x7e,0x98,0xe9,0xff,0xc6,0xff, +0xe2,0x1, 0xc5,0xff,0xa7,0x8d,0x0, 0x8a,0xe8,0x0, 0x8e,0xd, 0x3e,0x7d,0x1, 0x9, +0xc7,0x81,0x3b,0x7f,0xe7,0xfd,0x1, 0x68,0x8e,0x4, 0x8e,0x8f,0x3e,0xfc,0x1, 0xf5, +0xad,0x8f,0x0, 0xf7,0xe0,0x2, 0x1d,0xdd,0xe0,0x0, 0x14,0x51,0x8e,0x8b,0xe2,0x0, +0xce,0x81,0xe7,0xff,0x1, 0x96,0x15,0x80,0x16,0xbc,0x7d,0x90,0x66,0xf, 0x2e,0x16, +0x16,0x3, 0xe1,0x2c,0x3e,0x23,0x26,0x16,0x65,0x88,0x25,0x94,0x16,0xb4,0x27,0x85, +0x67,0x8d,0x14,0x1e,0xe7,0xff,0x2f,0x85,0x3c,0x6d,0xe7,0xff,0x0, 0x82,0xf8,0x40, +0x39,0x74,0xe8,0x74,0x3d,0x22,0xe7,0xfe,0x0, 0xe3,0x16,0xb2,0x0, 0xf1,0x3e,0xe8, +0x0, 0xe6,0x16,0x4, 0xe1,0x23,0x3e,0x23,0x21,0x85,0x66,0x8, 0x26,0x3, 0x16,0xba, +0x0, 0xe7,0xe2,0x0, 0xc9,0x2, 0x14,0x3c,0xe7,0xfe,0x5, 0xeb,0x0, 0xe1,0x0, 0x0, +0x8, 0xb7,0xf8,0x0, 0xc, 0x38,0xe0,0x0, 0x1f,0x8e,0xf0,0x0, 0x8c,0xf, 0xf0,0x1, +0x24,0x5c,0xe0,0x0, 0x1e,0xd, 0xe0,0x2, 0x1f,0xfd,0x8b,0xc, 0x8a,0xdf,0x89,0x1c, +0xe0,0xf, 0x3b,0x35,0xe0,0x1, 0x1f,0x72,0x14,0xff,0xa2,0xe, 0x3f,0x92,0xe8,0x9, +0x3c,0x98,0x37,0xa1,0xe2,0x1, 0xc4,0xff,0x3f,0x94,0x34,0xa1,0x94,0xf, 0x39,0xe6, +0x3b,0xe2,0x3c,0x9c,0xe0,0x0, 0x0, 0xc5,0x3e,0x79,0xe0,0x0, 0x1, 0x50,0x8f,0x2c, +0x8f,0xbc,0xe0,0xd, 0x3f,0x35,0x3d,0x6e,0x3e,0x9f,0x36,0xa1,0x3e,0x94,0x96,0x8d, +0xe4,0xb, 0x37,0x28,0x3e,0xf8,0xe0,0x6d,0x3a,0x28,0x3c,0x6d,0x3e,0xe6,0xe2,0x1, +0xc6,0xff,0x3f,0x7d,0x5, 0x82,0x3d,0x66,0x3e,0xe3,0xe4,0xb, 0x35,0xc8,0xe2,0x1, +0xc6,0xff,0x3d,0xfd,0x3b,0x6a,0xe2,0x1, 0xc3,0x7f,0x3, 0x82,0x3f,0x63,0x39,0xee, +0x3f,0x62,0xe2,0x1, 0xc7,0x7f,0x3f,0xfe,0xe2,0x1, 0xc1,0xff,0x3d,0xef,0xe4,0xd, +0x37,0xa8,0x5, 0x82,0x3d,0xe2,0x3f,0x67,0xe4,0xd, 0x36,0xc8,0xe2,0x1, 0xc7,0x7f, +0x3e,0xfe,0x39,0x6b,0xe2,0x1, 0xc1,0x7f,0x3, 0x82,0x3f,0xe7,0xe0,0xe, 0x39,0xa6, +0xe2,0x0, 0xcf,0x7, 0x3b,0xef,0xe2,0x1, 0xc3,0xff,0xc6,0x2, 0x2, 0x7, 0xe0,0xf, +0x3b,0xa2,0xe2,0x0, 0xcf,0x87,0xe7,0xff,0x5, 0x39,0xe0,0x2, 0x1f,0xc1,0xe0,0x3, +0x17,0x74,0xb7,0xf, 0xf8,0x0, 0xc, 0x28,0xb, 0xe1,0x14,0x83,0x34,0x21,0xe0,0x2, +0xd9,0xff,0x3b,0xf2,0x15,0x80,0xe0,0x43,0x3c,0x18,0x3e,0xeb,0x4, 0xa1,0x39,0xf6, +0x4, 0x9a,0x3f,0x66,0xe0,0xf, 0x3f,0x35,0x16,0x1, 0x3f,0x92,0x37,0xa1,0x3f,0x94, +0x97,0x8f,0x3e,0x1d,0x3f,0xf8,0xc7,0x1, 0x3f,0xec,0xe2,0x1, 0xc7,0xff,0x16,0x1, +0xe2,0x1, 0xc7,0x7f,0x3e,0x1b,0xe0,0x6d,0x3a,0x2f,0x3f,0x73,0x3d,0xec,0xe2,0x1, +0xc5,0xff,0x5, 0xe9,0xc1,0x1, 0xe2,0x1, 0xc1,0x7f,0x39,0x77,0x5, 0xe1,0xe0,0x2, +0x1f,0xdd,0x8f,0x8f,0xe2,0x0, 0xcf,0x82,0x5, 0xa0,0xe0,0x2, 0x1f,0x41,0x9f,0x8e, +0xe2,0x7, 0xcf,0xe7,0x2, 0x83,0xc7,0x81,0xb7,0x8e,0xf7,0xff,0x24,0x45,0xe4,0x0, +0xc6,0x83,0xe0,0xf, 0x35,0xa1,0x3e,0xff,0x5, 0x20,0xe0,0x0, 0x1f,0x31,0xe0,0x2, +0x1e,0xc1,0x9f,0x8e,0x16,0x0, 0xe2,0x3, 0xcf,0xf3,0xb6,0xd, 0xe7,0xff,0x2, 0xb4, +0xc7,0x81,0xb7,0x8e,0xe7,0xff,0x0, 0xb0,0x1, 0x69,0xe0,0x2, 0x1f,0x41,0x9f,0x8e, +0xe2,0x0, 0xcf,0x82,0x5, 0x83,0xc7,0xfe,0xb7,0x8e,0xe0,0x0, 0x1f,0x31,0x9f,0x8e, +0xe2,0x3, 0xcf,0xf3,0x2, 0xdb,0x0, 0xd8,0xe0,0x2, 0x1f,0x41,0x9f,0x8e,0xe2,0x7, +0xcf,0xe7,0x2, 0x83,0xc7,0x82,0xb7,0x8e,0x17,0x0, 0xe0,0x0, 0x1f,0xb1,0xb7,0xf, +0xf8,0x0, 0xc, 0x28,0xb, 0xe1,0xe8,0x40,0x3d,0xe8,0xe8,0x40,0x3e,0xe8,0xe7,0xff, +0x0, 0xb8,0xe0,0x2, 0x1f,0xc1,0x9c,0xf, 0x17,0x8a,0xe1,0x28,0x3c,0x1f,0x38,0x82, +0x8, 0xb7,0xf8,0x0, 0xc, 0x3e,0xc0,0x7c,0xe0,0x2, 0x1b,0xc3,0x17,0x80,0xe0,0x7, +0xaf,0xc7,0xe0,0x2, 0x1f,0xdd,0xe0,0x0, 0x1a,0xe, 0x8b,0xf, 0xdf,0x2, 0x8f,0x84, +0xe2,0x0, 0xcf,0x81,0xe0,0x2, 0x5, 0xf4,0x14,0x3, 0xdd,0xf, 0xeb,0xe6,0x7f,0x90, +0x7f,0x81,0xe0,0x2, 0x23,0x2b,0xe2,0x0, 0xcb,0x1, 0x5, 0x86,0x8f,0x8f,0xe2,0x0, +0xcf,0x86,0xe0,0x2, 0x2, 0xa3,0xf0,0x0, 0x88,0x84,0xe0,0x0, 0x1a,0x8d,0xe8,0x40, +0x3b,0x71,0xe0,0x2, 0x1, 0x70,0xe0,0x7, 0x8f,0xd7,0xfa,0x13,0x7c,0x11,0xf0,0xf, +0x38,0xaf,0xc7,0x81,0x3b,0x7f,0xe0,0x3, 0x1, 0x1a,0xe0,0x2, 0x1f,0xbb,0x8f,0x8f, +0xe8,0x0, 0x8f,0x8, 0xf0,0xf, 0x38,0xaf,0xc7,0x81,0x3f,0x7f,0x14,0x3, 0xe0,0x2, +0x1, 0x76,0xf0,0x3, 0x20,0x84,0x16,0x7f,0xe8,0xc, 0x3e,0x11,0xf0,0x3, 0x1c,0x85, +0xe2,0x1, 0xc6,0x7f,0xe0,0x0, 0xc6,0x1, 0xe8,0xc, 0x3e,0x19,0xf8,0x40,0x3b,0xe9, +0xf0,0x0, 0x13,0x0, 0xe9,0x80,0x8f,0x17,0xe8,0x40,0x3f,0xe6,0xe2,0x1, 0xc7,0xff, +0x3f,0x7f,0x3e,0xee,0x3, 0x83,0xe8,0x40,0x3e,0xe6,0xe8,0x40,0x3e,0x77,0xf0,0x40, +0x3b,0x6d,0xf2,0x1, 0xc3,0x7f,0x1, 0xef,0xf8,0x40,0x38,0xe6,0xf0,0x2, 0x23,0x5f, +0xe0,0x1, 0x1f,0xf2,0xfb,0xe6,0x7e,0x12,0xfb,0xe6,0x7d,0x91,0xf0,0x0, 0xa2,0xf, +0xe0,0x2, 0x1f,0xfd,0xf8,0x0, 0x89,0xc, 0xf8,0x0, 0x88,0xb, 0xf0,0x0, 0x10,0x80, +0xf0,0x0, 0x8a,0xdf,0xe8,0x40,0x3b,0x62,0xe8,0x40,0x38,0xe0,0x16,0x1, 0xf0,0x1, +0x11,0xff,0xf8,0x40,0x3d,0x61,0x3d,0x62,0xe0,0x0, 0x1f,0xd, 0xe8,0x40,0x3f,0xe9, +0xf8,0x40,0x3e,0xea,0x15,0x80,0x0, 0x85,0xf0,0x40,0x3b,0xff,0xc7,0x2, 0x1, 0x2b, +0xe1,0x80,0x8e,0x9f,0x3e,0xfc,0x1, 0xf9,0x8c,0x8e,0xc5,0x81,0xe2,0x1, 0xc5,0xff, +0xe2,0x0, 0xcd,0x81,0x8c,0x1e,0xe8,0xd, 0x3c,0xb5,0xe0,0x6a,0x39,0x28,0x3e,0x98, +0xe0,0x63,0x39,0x29,0xf2,0x0, 0xcb,0x1, 0x36,0xa1,0xe8,0xd, 0x3e,0x94,0xe0,0x1, +0x1, 0x25,0x96,0x8d,0xc7,0x2, 0xe8,0x40,0x3e,0xfd,0xe0,0x6a,0x3a,0x28,0xe8,0x40, +0x3e,0xfd,0xe0,0x63,0x3a,0x29,0xe8,0x40,0x3e,0xfd,0xe0,0x7d,0x3a,0x2d,0xf0,0x40, +0x3b,0xff,0x1, 0xd7,0x25,0x8a,0xf0,0xf, 0x30,0xa1,0x3f,0x97,0xf0,0x0, 0xc0,0x81, +0xa9,0x8f,0xf2,0x1, 0xc0,0xff,0xad,0x1f,0xc6,0x1, 0xe2,0x1, 0xc6,0x7f,0xe8,0x40, +0x3e,0x76,0xe7,0xff,0x5, 0xbb,0xf2,0x0, 0xc8,0x81,0xf0,0xa, 0x30,0xa1,0xe0,0x1, +0x1, 0x6b,0x17,0xff,0xe8,0x0, 0xaf,0x8c,0xe8,0x0, 0xaf,0x8b,0xe0,0x2, 0x1c,0xc3, +0xe0,0x0, 0x1c,0xd, 0xf0,0x7, 0xa8,0xc7,0xf0,0x0, 0xa8,0x84,0xe0,0x2, 0xd9,0xa, +0x88,0x84,0xe8,0x0, 0xa8,0x88,0xe0,0x1, 0x20,0xdf,0x12,0x0, 0xc2,0x1, 0xe2,0x1, +0xc2,0x7f,0x38,0xf4,0xe0,0x0, 0x1b,0xd, 0xe0,0x0, 0x15,0xe4,0xe0,0x0, 0x1, 0x4a, +0x8c,0x86,0x8d,0x16,0x3b,0xe9,0x39,0xea,0xe0,0x40,0x3e,0x64,0xe0,0xf, 0x36,0x21, +0xe0,0xe, 0x3a,0x9f,0x8e,0x8e,0x8f,0x1e,0xe0,0x8, 0x3b,0xad,0xe2,0x0, 0xcc,0x0, +0xe0,0xf, 0x3c,0xad,0x3e,0xa9,0xe0,0x8, 0x39,0xae,0xe2,0x1, 0xc6,0xff,0xe2,0x1, +0xc7,0xff,0xe0,0x6f,0x3d,0x2d,0xe2,0x0, 0xcc,0x0, 0xe0,0xd, 0x3d,0x2e,0x3f,0x2a, +0xe2,0x1, 0xc7,0x7f,0xe2,0x1, 0xc6,0xff,0xe0,0x6d,0x3d,0x2e,0x3c,0x6d,0x39,0x6f, +0xe2,0x1, 0xc1,0x7f,0xe2,0x1, 0xc4,0x7f,0x39,0x78,0x3f,0x6d,0xc6,0x1, 0x3e,0xeb, +0xe2,0x1, 0xc6,0xff,0xe2,0x1, 0xc6,0x7f,0x3, 0x82,0x3f,0xee,0x3f,0x6f,0xe2,0x1, +0xc7,0x7f,0x3f,0x7d,0x5, 0x82,0x3f,0xeb,0x38,0xfc,0x3d,0xef,0xe2,0x1, 0xc5,0xff, +0x1, 0xc6,0xc2,0x1, 0xe2,0x1, 0xc2,0x7f,0x38,0xf4,0xc3,0x2, 0xe7,0xff,0x1, 0xba, +0xe2,0x0, 0xcd,0xe4,0x17,0x80,0xe0,0x6f,0x39,0xab,0x3d,0xef,0x67,0x1, 0xad,0x8e, +0xc0,0x4, 0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0xfa,0x13,0x7c,0x11,0xf0,0x0, 0x88,0x84, +0xe0,0x0, 0x1a,0x8d,0xe7,0xfd,0x0, 0xf7,0xf2,0x1, 0xc9,0x7f,0xe7,0xfe,0x1, 0x5b, +0xe0,0xd, 0x3c,0xa6,0xe0,0x43,0x3e,0x9d,0xe2,0x0, 0xce,0x80,0xf0,0x2, 0x39,0x29, +0xe8,0xd, 0x3c,0xa2,0xe2,0x1, 0xc1,0x7f,0xe0,0x1e,0x3c,0x21,0xe2,0x1, 0xc6,0xff, +0xe0,0x6d,0x3d,0x22,0xf8,0x43,0x3f,0x1e,0x39,0x6d,0xf2,0x0, 0xcf,0x0, 0xe8,0xd, +0x3c,0x20,0xf0,0x1e,0x38,0x28,0xe2,0x1, 0xc6,0xff,0xf2,0x1, 0xc7,0x7f,0xe8,0x6d, +0x3d,0x2e,0x3e,0x92,0xe2,0x1, 0xc6,0xff,0xe8,0x40,0x3e,0xf3,0xe8,0x40,0x39,0x63, +0xe0,0x62,0x3c,0xad,0xe8,0x40,0x3e,0xf3,0xe0,0x6a,0x3c,0xa8,0xe8,0x40,0x3e,0xf3, +0xf0,0x40,0x39,0xe2,0xe0,0x63,0x3c,0xa9,0xe7,0xfe,0x0, 0x88,0xeb,0xe6,0x7d,0x90, +0xea,0x13,0x7e,0x11,0xeb,0xe6,0x7e,0x92,0xeb,0xe6,0x7f,0x11,0x15,0x7f,0xe0,0x0, +0x14,0xe4,0xac,0x8b,0xaf,0x8c,0xad,0xd, 0xad,0xe, 0xc0,0x4, 0xf8,0x0, 0xf, 0x28, +0xb, 0xe1,0xe0,0x0, 0x1f,0x85,0x8f,0x8f,0x27,0x96,0xe0,0x10,0x8f,0x25,0xe2,0x0, +0xcf,0x10,0x2, 0xae,0xc7,0xff,0xe2,0x1, 0xc7,0xff,0xe4,0x0, 0xc7,0x8a,0x3f,0x65, +0x3f,0x95,0x0, 0x86,0xe0,0x10,0x8e,0xae,0xe2,0x0, 0xce,0x90,0x2, 0xa1,0x3f,0x7f, +0xc7,0xa, 0x1, 0xf9,0xfa,0x13,0x7c,0x11,0x14,0x1, 0xdb,0x6f,0xf0,0x0, 0x88,0x84, +0xe7,0xfd,0x0, 0x89,0x87,0x7, 0x87,0x97,0xe8,0x0, 0xaf,0xc, 0xe8,0x0, 0xaf,0x8b, +0xe7,0xfe,0x0, 0x96,0x3d,0xe1,0xe7,0xfe,0x0, 0xfb,0xfb,0xe6,0x7e,0x12,0xfb,0xe6, +0x7d,0x91,0xe8,0x40,0x3d,0x61,0xe7,0xfe,0x0, 0x86,0x14,0x1, 0x0, 0xe7,0xfa,0x13, +0x7c,0x11,0x14,0x3, 0x0, 0xe3,0x0, 0x0, 0xe0,0x1, 0x1f,0x8e,0x8f,0x8f,0xe0,0x1, +0x27,0x82,0x8, 0xb4,0xf7,0xff,0x11,0x7f,0xf0,0x12,0x39,0x1f,0xf0,0x0, 0x12,0x1, +0xf2,0x1, 0xc1,0x7f,0xf0,0x14,0x3a,0x19,0xf0,0x0, 0x10,0xa, 0xe0,0x2, 0x1a,0x5e, +0xf4,0x0, 0xc1,0xa, 0xf2,0x1, 0xc2,0x7f,0x11,0xa, 0xf0,0x10,0x38,0x39,0xe8,0x2, +0x39,0x34,0x10,0xff,0xf0,0x1, 0xc1,0x52,0xf0,0x10,0x38,0x14,0x38,0x9a,0xf0,0x2, +0x19,0xd9,0xf0,0x12,0x39,0x14,0x39,0x14,0xe0,0x1, 0x11,0xff,0xf0,0x0, 0xc0,0x4, +0x38,0xa9,0x3c,0xfa,0x3, 0xa4,0xe8,0x0, 0x8e,0x43,0xe8,0x0, 0x8f,0x80,0xf8,0x40, +0x38,0xe3,0xe0,0x2f,0x3f,0x8c,0xf0,0x40,0x3b,0xe9,0xe1,0x35,0x3e,0x3, 0x27,0x83, +0xf0,0x0, 0x2a,0x9c,0xf0,0x40,0x3b,0x61,0xf2,0x1, 0xc3,0x7f,0x3e,0xe2,0x17,0x0, +0x0, 0x89,0x8f,0xcd,0xc7,0x1, 0xe0,0x2f,0x3f,0x8c,0xe8,0xf, 0x3f,0xd5,0xc6,0x8a, +0x2f,0x8c,0xe8,0x40,0x3f,0x76,0xe8,0x17,0x3f,0x14,0x1, 0xf4,0xf0,0x0, 0xc1,0x8a, +0xf8,0x40,0x39,0xf2,0x1, 0xd7,0xa, 0x61,0x17,0x8a,0x3f,0xbc,0xf4,0x0, 0xc3,0x8a, +0x3f,0x94,0xe0,0x2, 0xc7,0xac,0x8f,0x8f,0x2f,0x83,0xe8,0x11,0x3a,0x17,0x17,0xa, +0x3f,0x38,0xe8,0x0, 0x8f,0xc1,0x3f,0x1b,0xaf,0xce,0xe8,0xf, 0x3a,0x17,0xe8,0x0, +0x9e,0x91,0xe8,0x0, 0x9e,0x1, 0xb6,0x9e,0xf0,0x0, 0xc1,0x8a,0xb6,0xe, 0xf8,0x40, +0x39,0xf2,0x8e,0xdf,0xc4,0x1, 0xae,0xde,0xe2,0x1, 0xc4,0x7f,0x8e,0xef,0xae,0xee, +0x8e,0xff,0xae,0xfe,0xe0,0x1, 0x8f,0x8f,0xe0,0x1, 0xaf,0x8e,0xe7,0xff,0x1, 0xab, +0x0, 0xd3,0x38,0x82,0xe0,0x2, 0x1f,0xdd,0xe0,0x2, 0x1f,0x52,0x8f,0x8f,0x8f,0xe, +0x2f,0x9a,0x2f,0x19,0xe0,0x0, 0x1f,0xe, 0x8e,0x8e,0xe0,0x0, 0x1f,0x13,0x8f,0xe, +0x3e,0xfe,0x5, 0x90,0xe0,0x2, 0x1f,0x51,0xe0,0x2, 0x1e,0xd0,0x8e,0xe, 0xe0,0x2, +0x1f,0x5f,0xae,0xd, 0x8e,0xe, 0x3e,0x7f,0x2, 0xa2,0xea,0x22,0x7f,0xba,0x17,0x0, +0xaf,0xf, 0x38,0x82,0xe0,0x0, 0x1e,0x8e,0xe0,0x0, 0x1d,0x8d,0x8e,0xd, 0xe0,0x0, +0x1e,0x93,0x8e,0x8d,0x3e,0xfc,0xe0,0x2, 0x1e,0xd0,0x3, 0x86,0x15,0x1, 0xe2,0x0, +0xce,0x1, 0xad,0xd, 0x1, 0x1a,0xe0,0x2, 0x1e,0x51,0x8e,0xc, 0x3e,0x7e,0x3, 0xe0, +0xaf,0xd, 0xe0,0x2, 0x1f,0x5f,0x8e,0xe, 0x3e,0x7f,0x5, 0xe0,0xea,0x22,0x7e,0x3a, +0x8d,0x8c,0x8e,0x8d,0x3e,0xfb,0x5, 0xde,0xaf,0x8e,0xc5,0x81,0xe0,0x0, 0x1f,0xbe, +0xad,0x8c,0x17,0x1, 0xaf,0xf, 0x38,0x82,0x8d,0xb, 0xe2,0x0, 0xcd,0x1, 0x5, 0x87, +0xe0,0x2, 0x1e,0x7d,0x8e,0x4c,0xc6,0x7e,0x3e,0x7a,0x2, 0x5e,0x8d,0x9b,0xe2,0x0, +0xcd,0x81,0x5, 0x87,0xe0,0x2, 0x1e,0x7d,0x8e,0x5c,0xc6,0x7e,0x3e,0x7b,0x2, 0x54, +0x16,0x0, 0xae,0xd, 0x0, 0xd1,0xe0,0x2, 0x1f,0xdd,0xe0,0x2, 0x1e,0x5f,0x8d,0x8f, +0x8f,0xc, 0xe0,0x0, 0x1e,0xbe,0x17,0x80,0x3f,0x7b,0xaf,0x8d,0x3, 0x9e,0xe0,0x2, +0x1f,0xd2,0xe0,0x2, 0x1f,0x51,0x8f,0x8f,0x8f,0xe, 0xe0,0x2, 0x1d,0x50,0x3f,0xfe, +0x5, 0x9b,0xaf,0x8a,0x2f,0x84,0x17,0x81,0xaf,0x8a,0x17,0x81,0xea,0x22,0x7f,0x3b, +0x8d,0xe, 0x3d,0x7f,0x3, 0x94,0xad,0x8c,0x17,0x81,0xe0,0x2, 0x1e,0x4f,0xc5,0x1, +0xaf,0x8c,0xad,0xe, 0xaf,0x8d,0x38,0x82,0xea,0x22,0x7f,0x3b,0xaf,0x8e,0xe0,0x2, +0x1f,0x4f,0xaf,0x8e,0x38,0x82,0x3f,0xee,0xaf,0xa, 0x0, 0xe5,0x17,0x80,0xaf,0x8e, +0x38,0x82,0xe0,0x3, 0x1f,0x17,0x8f,0x8e,0xe2,0x1, 0xcf,0xf9,0x2, 0x83,0xc7,0x81, +0xaf,0x8e,0x38,0x82,0xe0,0x3, 0x1c,0x3d,0xe0,0x4, 0x15,0x6a,0x14,0x80,0xe0,0x4e, +0x0, 0xa3,0x0, 0x0, 0xe0,0x3, 0x1c,0xbd,0xe0,0x2, 0x1f,0x5f,0x8d,0x9, 0x8c,0xe, +0xe0,0xf, 0x3c,0x9a,0x17,0x0, 0xaf,0x2f,0x24,0x1b,0x15,0xff,0x3d,0x98,0xe2,0x1, +0xc5,0xff,0xc5,0x81,0x17,0x28,0x3f,0x3a,0xe4,0x0, 0xc5,0x8a,0xe0,0x2, 0x1f,0xde, +0x3f,0x19,0x3d,0x9f,0x96,0xf, 0x96,0x9f,0xc7,0x8a,0xe0,0x1, 0xb6,0x1e,0x3f,0xfb, +0xc7,0x4, 0xe0,0x1, 0xb6,0x8e,0x1, 0xf7,0xe0,0xf, 0x3c,0x9a,0xac,0x2f,0xc5,0x1, +0xe2,0x1, 0xc5,0x7f,0xe2,0x0, 0xcd,0xf, 0x1, 0x18,0xad,0x9, 0xe0,0x0, 0x16,0x0, +0xe0,0x3, 0x1f,0x3c,0xe0,0x3, 0x1d,0x3b,0xe1,0x80,0x8e,0x9e,0x3f,0xec,0xe2,0x1, +0xc7,0xff,0x3e,0xff,0x3d,0xed,0x3, 0x82,0x3d,0xec,0x3f,0x7a,0x3e,0x6b,0xe2,0x1, +0xc6,0x7f,0x1, 0xf3,0xae,0x19,0x38,0x82,0x17,0x80,0xaf,0x89,0x0, 0xe8,0xf0,0x3, +0x1b,0x3c,0xf0,0x3, 0x1a,0x3a,0xf0,0x3, 0x19,0x3b,0xf0,0x3, 0x19,0xbd,0xf0,0x0, +0x12,0x80,0xf0,0x0, 0x13,0xcf,0xe9,0x80,0x8f,0x96,0x27,0xb5,0x15,0x7f,0x3d,0x1f, +0xe2,0x1, 0xc5,0x7f,0xe8,0xa, 0x3d,0x15,0x35,0x22,0xc5,0x16,0xe8,0xa, 0x3d,0x13, +0xe8,0x40,0x3d,0xe4,0x0, 0x83,0x3d,0x7b,0x1, 0x26,0x9e,0xb, 0x9e,0x9b,0xe0,0xf, +0x3c,0x2c,0xe3,0xff,0xc7,0xff,0xf0,0x43,0x38,0x9f,0xe0,0xe, 0x3c,0xad,0xf2,0x0, +0xc8,0x80,0xe3,0xff,0xc7,0x7f,0x3e,0x28,0xf0,0x43,0x38,0x9e,0xe3,0xff,0xc6,0x7f, +0xe0,0x6f,0x3d,0x2c,0x3e,0xa9,0xf2,0x0, 0xc8,0x80,0xe3,0xff,0xc6,0xff,0xe0,0x6e, +0x3d,0x2d,0xf1,0x2f,0x3b,0xaf,0xc5,0x84,0xf1,0x2e,0x3b,0xae,0x27,0xdd,0x27,0x5c, +0x14,0x1, 0x38,0x82,0xf8,0x40,0x3b,0x72,0xf0,0x0, 0xc2,0x28,0xf0,0x0, 0xc2,0x8a, +0x1, 0xc3,0x14,0x0, 0x38,0x82,0x0, 0x0, 0x8, 0xb7,0xf8,0x0, 0xc, 0x3e,0xe1,0xfd, +0xc0,0x60,0xe0,0x2, 0x1e,0xdf,0xea,0x22,0x7f,0xb8,0xf0,0x0, 0x8d,0xd, 0x7f,0x8b, +0xf0,0x0, 0x25,0xf, 0x97,0x8f,0xc7,0x81,0xe3,0xff,0xc7,0xff,0xe2,0x0, 0xcf,0xe4, +0xe0,0x3, 0x5, 0xc1,0x66,0x8b,0xe0,0x0, 0x17,0xe4,0xb7,0x8d,0x0, 0x83,0xf0,0x0, +0xb5,0xf, 0xe0,0x2, 0x1f,0xc0,0xe0,0x4, 0x8f,0xdf,0xe2,0x0, 0xcf,0x81,0xea,0x22, +0x7f,0xb6,0x7f,0x8a,0xe0,0x8, 0x1, 0xc, 0x8f,0x8f,0xe0,0x3, 0x2f,0xa7,0xe0,0x2, +0x1f,0xcf,0x8f,0x8f,0x7f,0x87,0xe0,0x3, 0x2f,0x9c,0xe0,0x0, 0x1f,0xaa,0xe0,0x2, +0x1e,0xe2,0x9e,0xf, 0x9f,0xd, 0x9e,0xf, 0x9d,0x8f,0xe0,0xe, 0x3e,0x2e,0xe2,0x1, +0xc7,0x7f,0xe0,0x1, 0x1f,0xe8,0x7f,0x5, 0x8e,0xf, 0x67,0x5, 0xe2,0x0, 0xce,0x2, +0xc7,0x2, 0x66,0x5, 0xe2,0x1, 0xc7,0x7f,0xb5,0x8d,0x17,0x80,0xe0,0x2, 0x1e,0xc9, +0xe0,0x6c,0x39,0x2e,0x17,0x0, 0x7e,0x5, 0xaf,0xd, 0x7f,0xa6,0x7f,0xa7,0x7f,0xa8, +0x7f,0xa9,0x7f,0xaa,0x7f,0xab,0x7f,0xac,0x7f,0xad,0x7f,0xae,0x7f,0xaf,0xf0,0x2, +0x2d,0x7e,0xe0,0x1, 0x1f,0x8e,0x89,0xf, 0x7f,0x91,0xe0,0xb, 0x21,0x66,0x11,0xff, +0xea,0x21,0x7f,0x14,0x39,0x92,0xf0,0x40,0x3c,0xee,0xea,0x22,0x7f,0xac,0xe2,0x1, +0xc1,0xff,0xea,0x22,0x7e,0xa0,0xea,0x22,0x7d,0xc, 0xea,0x21,0x7d,0xf8,0xea,0x21, +0x7e,0x8, 0xc1,0x81,0xe8,0x40,0x3f,0x69,0x39,0x9f,0x14,0x80,0x14,0x0, 0x12,0xff, +0xe0,0x0, 0x12,0x1, 0xe1,0x80,0xac,0x9f,0xc7,0xa, 0x3f,0xf3,0xe0,0x40,0xaa,0xee, +0xe1,0x80,0xac,0x9d,0xe1,0x80,0xb4,0x1a,0xe1,0x80,0xb4,0x1b,0xe1,0x80,0xaa,0x1c, +0x1, 0xf2,0xe0,0x0, 0x1f,0x51,0x7f,0x17,0xac,0x8e,0xf0,0xb, 0x25,0x3c,0x67,0x85, +0x66,0x85,0x37,0xa3,0xc7,0x94,0x7f,0x98,0xea,0x22,0x7f,0xa0,0x3b,0x6f,0xea,0x22, +0x7f,0x8c,0x7f,0x89,0xea,0x22,0x7f,0xac,0xe4,0x0, 0xc6,0x9e,0xf0,0x0, 0x63,0x7, +0x7f,0x8d,0xea,0x21,0x7f,0x88,0xf0,0x2, 0x1c,0x5e,0x7e,0x99,0x7f,0x93,0xe8,0x40, +0x3a,0x66,0xf8,0x40,0x3f,0x69,0x17,0x8a,0x3f,0xb4,0xf0,0xe, 0x3c,0x1f,0x81,0xce, +0xe2,0x0, 0xc1,0x8f,0x39,0xf2,0x3, 0xbd,0xf0,0x0, 0x14,0x8a,0xf0,0x19,0x3c,0xb3, +0xf8,0xb, 0x3c,0x19,0xe0,0x2, 0xc5,0xac,0x8c,0xb, 0xe2,0x0, 0xcc,0x1, 0xe0,0x4, +0x1, 0x28,0x64,0x89,0xe0,0x5, 0x31,0xa1,0x3c,0x95,0x95,0x89,0xc5,0x81,0xb5,0x89, +0x2c,0x10,0xea,0x20,0x7d,0xe0,0xea,0x21,0x7d,0x78,0xe0,0x9, 0x31,0xa2,0xf0,0x0, +0x93,0xe, 0x93,0x9e,0x3d,0x99,0x3d,0x15,0xf0,0x0, 0xb3,0xb, 0xb3,0x9b,0xb4,0xa, +0x21,0x18,0xe8,0x0, 0x8a,0xce,0xe8,0x40,0x3d,0xee,0x39,0xf5,0x17,0x1, 0x1, 0x89, +0xe0,0xa, 0x0, 0xda,0xe0,0x1, 0x8e,0xeb,0xc5,0x8a,0x39,0xfd,0xe0,0x2, 0x1, 0x31, +0x3e,0xee,0xe2,0x1, 0xc6,0xff,0x3e,0xf2,0x3d,0x6e,0x17,0x1, 0x3f,0x1a,0x4, 0xf3, +0xc2,0x1, 0xe2,0x1, 0xc2,0x7f,0xf0,0x40,0x3d,0x74,0xe7,0xff,0x2, 0xb6,0x12,0x8a, +0x3a,0xb2,0xe0,0x1, 0x14,0x40,0xe0,0x2, 0x1c,0xde,0x3d,0x65,0x3c,0x10,0xf8,0x40, +0x3c,0xee,0xe0,0x2, 0xd5,0x4f,0xf0,0xb, 0x25,0x77,0xe0,0x2, 0x1f,0xfd,0x12,0x7f, +0xe8,0x4, 0x3a,0x1a,0x8b,0xcf,0x8b,0x5f,0xe2,0x1, 0xc2,0x7f,0xc2,0x1, 0x33,0xa6, +0x33,0x26,0xe4,0x0, 0xc2,0xa, 0xea,0x22,0x7e,0xa0,0xc3,0xe0,0xc3,0x60,0x39,0xed, +0xea,0x16,0x7c,0x4c,0xe0,0x2, 0x1c,0xde,0xe0,0x43,0x3b,0x97,0xe0,0x43,0x3b,0x16, +0xe8,0x4, 0x3a,0x18,0xf0,0x0, 0x13,0xa0,0x8d,0x49,0xe0,0xf, 0x39,0x9a,0x8d,0x8f, +0xe0,0x0, 0x25,0xc6,0xe0,0x0, 0x21,0x44,0xe8,0x40,0x3f,0x69,0x3e,0xe8,0x17,0x80, +0x0, 0x8d,0xe2,0x0, 0xcd,0x82,0xe0,0x1, 0x1, 0x37,0xc7,0x81,0x3e,0x6f,0xe2,0x1, +0xc6,0x7f,0x3e,0x72,0xc7,0xa, 0xc6,0x8a,0x3, 0xb2,0xe2,0x0, 0xcd,0x81,0x1, 0xf2, +0x8e,0x4e,0x3e,0x7a,0x1, 0xf3,0xe4,0x0, 0xc7,0x8a,0x35,0x22,0xe2,0x1, 0x7e,0x98, +0x3e,0x9a,0xf0,0xe, 0x3c,0x9f,0x96,0xd, 0x97,0xe, 0xe8,0x40,0x3e,0xe7,0x3f,0x1c, +0xe0,0x43,0x3f,0x1e,0xe2,0x0, 0xcf,0x1f,0x5, 0x5, 0x3b,0xfe,0x3e,0xee,0xe0,0x6d, +0x3d,0x27,0xe2,0x1, 0x7f,0x18,0xe8,0xf, 0x3f,0x99,0x3d,0x1e,0x97,0x1a,0x97,0x9f, +0xb6,0x89,0x3f,0x9e,0xe0,0x43,0x3f,0x9f,0xe2,0x0, 0xcf,0x9f,0xe8,0x40,0x3f,0x67, +0x5, 0x5, 0x3b,0x7f,0x3f,0x6f,0xe0,0x6e,0x3d,0x26,0xb7,0x19,0xc4,0x8a,0x3a,0x79, +0xe7,0xff,0x1, 0xb4,0xe8,0x40,0x3c,0xe9,0x3d,0x65,0xe0,0x2, 0xd4,0xdb,0xe0,0x1, +0x14,0xc0,0x3d,0x65,0x3c,0x90,0xe8,0x40,0x3c,0x69,0xe0,0x2, 0xd4,0xd3,0xe0,0x0, +0x21,0x40,0x12,0x7f,0x3a,0x12,0xe2,0x1, 0xc2,0x7f,0xc2,0x1, 0xe4,0x0, 0xc2,0xa, +0xe0,0x2, 0x1a,0xde,0xe8,0x40,0x3e,0xe9,0xe8,0x4, 0x3a,0x19,0xf7,0xff,0x13,0xfd, +0x13,0x80,0x13,0x0, 0xf7,0xff,0x13,0x7f,0x8f,0x4d,0x17,0x8a,0x3f,0xbe,0x3f,0x72, +0x3f,0x95,0xe0,0x2, 0xc7,0xac,0x3, 0xa1,0x87,0x8f,0xea,0x22,0x7c,0x2c,0xe8,0xf, +0x3f,0xd7,0xe2,0x1, 0xc7,0xfd,0xea,0x22,0x7c,0xa0,0xea,0x22,0x7d,0xc, 0xea,0x21, +0x7d,0xf8,0xea,0x21,0x7e,0x8, 0xe2,0x0, 0xcf,0x81,0xe0,0x3, 0x37,0x21,0x3c,0x1e, +0x3c,0x9e,0x3d,0x13,0x3d,0x93,0x3f,0x1c,0x1, 0x88,0xf0,0x0, 0xab,0x4d,0xab,0x88, +0xab,0x89,0xb3,0xa, 0xb3,0xb, 0xaf,0x8e,0xc6,0x8a,0x3e,0xf4,0x1, 0xd6,0xe0,0x2, +0x1f,0xdf,0x17,0x0, 0xf0,0x0, 0xad,0xf, 0xe0,0x3, 0x1f,0x97,0xaf,0xf, 0xe0,0x2, +0xc0,0x20,0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0x66,0x8a,0xc7,0xff,0xaf,0x8d,0xe7,0xfc, +0x0, 0xd8,0x67,0xb, 0xb7,0x8e,0xe7,0xfc,0x0, 0xc6,0xe0,0x2, 0x1f,0x5d,0x8f,0xe, +0xe0,0x6, 0x2f,0x44,0xe0,0x1, 0x1f,0xe, 0x89,0xe, 0x7f,0x11,0xe7,0xfd,0x29,0x1, +0xe0,0x0, 0x1e,0xd1,0xea,0x21,0x7f,0x14,0xf0,0x40,0x3c,0xee,0x7e,0x97,0xa9,0xd, +0xe7,0xfd,0x0, 0xa7,0x8e,0x4d,0x3e,0x7a,0xe7,0xfe,0x1, 0xc9,0xe4,0x0, 0xc7,0x8a, +0x35,0x22,0xe2,0x1, 0x7e,0x98,0x3e,0x9a,0xe0,0xe, 0x3c,0x1f,0x96,0xd, 0x97,0xe, +0xe8,0x40,0x3e,0xe7,0x3f,0x1c,0xe0,0x43,0x3f,0x1e,0xe2,0x0, 0xcf,0x1f,0xe0,0x5, +0x2, 0x46,0xe2,0x1, 0x7f,0x18,0x3f,0x98,0x3d,0x1e,0x97,0x1a,0x97,0x9f,0xb6,0x89, +0x3f,0x9e,0xe0,0x43,0x3f,0x9f,0xe2,0x0, 0xcf,0x9f,0xe8,0x40,0x3f,0x67,0xe7,0xfe, +0x5, 0x5e,0x3f,0xf6,0x3f,0x66,0xe0,0x6e,0x3d,0x2f,0xe7,0xfe,0x0, 0xd8,0x3a,0xe3, +0xf0,0x0, 0x15,0x8a,0xf0,0x1b,0x3d,0xba,0xe8,0x1d,0x3f,0x98,0xf8,0xe, 0x3f,0x1b, +0xe0,0x0, 0x11,0x78,0x9d,0x9e,0x9d,0xe, 0xe8,0x0, 0x9c,0x9d,0xe8,0x0, 0x9c,0xd, +0x39,0x35,0xea,0x17,0x7f,0x30,0xe0,0x1c,0x39,0x1e,0x7f,0x81,0xef,0xfc,0xdf,0x8, +0xe0,0xe, 0x32,0xa2,0xea,0x20,0x7d,0xe0,0x3d,0x6e,0x3d,0x1b,0x9d,0x9a,0x3b,0xe8, +0x9d,0xa, 0xe8,0x0, 0x9c,0x9d,0xe8,0x0, 0x9c,0xd, 0x7f,0x10,0xef,0xfc,0xde,0xf8, +0xea,0x21,0x7d,0xf8,0xe0,0x16,0x32,0xa1,0xe8,0xb, 0x3d,0x96,0x91,0xb, 0x7c,0x14, +0x39,0x17,0xe3,0xff,0xc1,0x7f,0xe2,0x1f,0xc9,0x20,0x67,0x81,0xe0,0x3, 0x2, 0xd9, +0xb1,0xb, 0xf8,0xa, 0x3f,0x1b,0x65,0x8d,0xe8,0x0, 0x9e,0x9d,0xf8,0x0, 0x9d,0x8d, +0x94,0xa, 0x95,0x1a,0x3d,0x95,0xf8,0x0, 0x8e,0xed,0x8c,0x8b,0xf0,0x8, 0x3d,0xa8, +0x65,0x89,0xe0,0xa, 0x3e,0xaa,0xe0,0x43,0x3c,0x18,0xe0,0x43,0x3d,0x1a,0xe8,0xb, +0x3d,0x96,0xf0,0x0, 0x7e,0x8e,0x7e,0x86,0x7c,0x15,0x7d,0x16,0xf0,0x0, 0x9e,0x8b, +0xe0,0x1, 0x24,0x9d,0x15,0x98,0x3d,0xb9,0xf7,0xff,0x12,0xe8,0xe8,0xb, 0x3d,0x9c, +0xf0,0x15,0x3a,0x9b,0xe0,0x0, 0x15,0x68,0xf8,0x15,0x8, 0x5, 0x3d,0x10,0xe2,0x0, +0xcc,0x81,0xf8,0xa, 0x8, 0x15,0xf0,0x0, 0x9b,0x5a,0xe0,0x8, 0x5, 0xf9,0xf7,0xff, +0x12,0xd0,0xf0,0x15,0x3a,0x9b,0xf8,0x15,0x8, 0x5, 0xe0,0x1, 0x15,0x80,0x3d,0x90, +0xf8,0xb, 0x8, 0x15,0xf8,0x40,0x3a,0xec,0x65,0x7, 0x14,0x0, 0xc5,0x1, 0xe8,0x0, +0x97,0x55,0xe2,0x1, 0xc5,0x7f,0x3c,0xfa,0x3c,0x1e,0xe3,0xff,0xc4,0x7f,0xf0,0x0, +0xc2,0x98,0x2, 0xf5,0x7f,0x81,0xf0,0x0, 0x7b,0x4, 0xe0,0x2, 0xd3,0x49,0x65,0x93, +0xe3,0xff,0xc4,0x7f,0x3d,0x95,0x8d,0x8b,0x7c,0xf, 0x67,0x81,0xf0,0x0, 0x63,0x4, +0xe0,0x0, 0x2d,0xf1,0x67,0x18,0xe8,0x40,0x3d,0xe6,0xf0,0x40,0x3b,0x7e,0x5, 0x5, +0x66,0x98,0x3e,0xf7,0xe0,0x4, 0x4, 0x79,0xe0,0x0, 0x4d,0x68,0x5c,0xb9,0xe4,0x0, +0xc5,0x5, 0x16,0x80,0x3c,0xfa,0x7e,0x92,0x5, 0xa, 0xe0,0x1, 0x4d,0x0, 0xe0,0x0, +0x5c,0xc5,0xe4,0x0, 0xc5,0x5, 0x3c,0xfa,0xe0,0x4, 0x2, 0x60,0x65,0x19,0x3d,0x1b, +0x3d,0x77,0xe0,0x3, 0x4, 0x38,0xe4,0x0, 0xc5,0x83,0xe0,0x2b,0x3b,0x9b,0xe0,0x4, +0x25,0xe2,0xe0,0x0, 0x15,0xe4,0xe1,0x2b,0x3b,0x9b,0xe0,0x4, 0x25,0xdc,0x66,0x92, +0xe0,0x6, 0x2e,0xdd,0xe0,0x1, 0x17,0x48,0x7f,0xc, 0xe0,0x3, 0x0, 0xa7,0xea,0x21, +0x7f,0x78,0xe0,0x7, 0x31,0xa1,0xea,0x22,0x7d,0x2c,0xea,0x22,0x7d,0x8c,0xea,0x21, +0x7f,0x88,0xc2,0x1, 0x14,0x80,0x3f,0x17,0xe2,0x1, 0xc2,0x7f,0x12,0x80,0x3d,0x13, +0xe0,0x16,0x3b,0x13,0x3d,0x97,0xf8,0x17,0x3f,0x19,0x3f,0x93,0xb4,0x8e,0xf0,0x40, +0x3d,0x74,0x17,0x7f,0xaa,0x8a,0xe8,0x0, 0xaa,0x86,0xb4,0x8b,0xe8,0x0, 0xaf,0x47, +0xac,0xf, 0xe7,0xfb,0x2, 0xa2,0xe7,0xfb,0x0, 0xec,0x65,0x93,0x7c,0x9a,0x3d,0x95, +0x8d,0x8b,0x7c,0x9b,0x7c,0x9c,0x7c,0x9d,0x7c,0x9e,0x7c,0x9f,0x7c,0xa0,0x7c,0xa1, +0x7c,0xa2,0x7c,0xa3,0x7c,0xa4,0x7c,0xa5,0xe0,0x3, 0x25,0xfb,0xf0,0x40,0x3b,0x69, +0x7c,0x8f,0xe0,0xa, 0x3b,0x15,0x67,0x7, 0x64,0x93,0xc5,0xff,0x3c,0x95,0x7f,0x12, +0xe0,0x0, 0x16,0xf8,0x17,0x1, 0x8d,0xa, 0xad,0x89,0xe0,0x1, 0x15,0xb4,0x7e,0x8c, +0x7f,0x8, 0xe0,0x1, 0x2d,0x51,0xe1,0x2b,0x3b,0x9b,0xe0,0x1, 0x25,0xc5,0x66,0x88, +0xe0,0x1, 0x26,0xc2,0xf0,0x0, 0x62,0x85,0xe0,0xb, 0x3b,0x15,0x14,0x81,0xac,0x8b, +0xf2,0x1, 0xc2,0xff,0xf0,0x40,0x3b,0x6a,0xe0,0x0, 0x15,0xe4,0xe8,0xb, 0x3d,0xb5, +0xe3,0xff,0xc5,0xfc,0xe2,0x5, 0xcd,0x80,0x5, 0x8a,0x66,0x8a,0x8d,0xd, 0xe2,0x0, +0xcd,0x0, 0xe0,0x5, 0x15,0x0, 0xe0,0x6a,0x39,0xab,0x3d,0xea,0x3d,0xf7,0xe0,0x1, +0x3, 0x98,0xf2,0x0, 0xce,0x82,0xe0,0x1, 0x5, 0x94,0xf8,0xb, 0x3c,0x19,0xe0,0x2, +0xc5,0xac,0xe0,0x9, 0x3b,0x15,0x14,0x0, 0x8d,0xb, 0xac,0x9, 0xe0,0x2, 0x2d,0x39, +0x15,0x3, 0xad,0xb, 0x15,0x8a,0x3d,0xb5,0x15,0x3, 0xe8,0xb, 0x3d,0x98,0xe0,0x2, +0xc5,0xad,0xad,0xb, 0xf0,0x0, 0x25,0x3d,0x16,0xff,0xe8,0xd, 0x3e,0x9a,0xf0,0x40, +0x3d,0x6d,0xf2,0x1, 0xc5,0x7f,0x15,0x8a,0xe8,0xb, 0x3d,0xba,0xe8,0xf, 0x3f,0x98, +0xe8,0xb, 0x3d,0x98,0xf0,0x0, 0x91,0xab,0xf0,0x0, 0x92,0x3b,0xf0,0x0, 0x90,0xb, +0xf0,0x0, 0x91,0x1b,0xf0,0x0, 0x90,0xcb,0xf0,0x0, 0x9a,0x8f,0xf0,0x0, 0x9b,0x1f, +0xf0,0x0, 0x8b,0xcf,0x89,0xdf,0x8c,0x6f,0x8c,0xff,0xe0,0x1, 0x8d,0xf, 0xf0,0x0, +0xb0,0xf, 0xc2,0x7f,0xf0,0x0, 0xb1,0x1f,0xe2,0x1, 0xc2,0x7f,0xf0,0x0, 0xb1,0xaf, +0xf0,0x0, 0xb2,0x3f,0xf0,0x0, 0xb0,0xcf,0xf0,0x0, 0xb2,0x8b,0xf0,0x0, 0xb3,0x1b, +0xf0,0x0, 0xab,0xcb,0xa9,0xdb,0xac,0x6b,0xac,0xfb,0xe0,0x1, 0xad,0xb, 0xe0,0xf, +0x3b,0x15,0x8f,0x8f,0xe2,0x0, 0xcf,0x81,0xe0,0x1, 0x1, 0x43,0xe2,0x0, 0xcf,0x82, +0xe0,0x3, 0x1, 0x7, 0x67,0x8d,0x3a,0x9f,0x8d,0x85,0xe2,0x0, 0xcd,0x85,0xe0,0x0, +0x1, 0x74,0x17,0x98,0x3f,0xbb,0x66,0x8c,0xf0,0xe, 0x3e,0x1f,0x67,0x85,0xae,0x9e, +0xc2,0x1, 0xaf,0x8e,0xe2,0x1, 0xc2,0x7f,0x67,0x8e,0x66,0x92,0xaf,0xae,0xc5,0x81, +0xae,0xbe,0xf0,0x40,0x3d,0x74,0x67,0x88,0x66,0x95,0xaf,0xce,0xb6,0xbe,0x67,0x96, +0x66,0x94,0xb7,0xce,0xb6,0xee,0x67,0x86,0x66,0x8f,0xe0,0x1, 0xb1,0x3e,0xb3,0xde, +0xf0,0x0, 0xb5,0xfe,0xe0,0x1, 0xb7,0x8e,0xf0,0x1, 0xb6,0x9e,0xe0,0x1, 0xb6,0xae, +0x67,0x11,0xad,0x85,0x89,0xe, 0xe7,0xf9,0x2, 0xc0,0xe7,0xfa,0x0, 0x8a,0xf7,0xff, +0x23,0x40,0xe7,0xfe,0x0, 0xec,0x15,0x0, 0xe0,0x0, 0x17,0x6e,0x16,0x80,0xad,0xb, +0x7f,0xc, 0x7e,0x88,0xf0,0x0, 0x13,0x0, 0xf0,0x0, 0x62,0x85,0xf2,0x1, 0xc2,0xff, +0xe7,0xfe,0x0, 0xc4,0xe2,0x0, 0xcd,0x1, 0xe0,0x2, 0x1, 0x52,0xe2,0x0, 0xcd,0x2, +0x1, 0xf2,0xf0,0x0, 0x62,0x85,0xe0,0x1, 0x4c,0x80,0xe0,0x0, 0x5c,0x45,0xf2,0x1, +0xc2,0xff,0x7f,0x81,0xf0,0x0, 0x7a,0x82,0xe0,0x2, 0xd1,0xda,0xf0,0x0, 0x62,0x82, +0xe0,0xa, 0x34,0x1, 0xe8,0xa, 0x3d,0x35,0xe0,0xb, 0x3b,0x15,0xe3,0xff,0xc5,0x7f, +0xe1,0x36,0x3d,0x17,0x15,0x0, 0xad,0xb, 0x67,0x81,0xe7,0xfe,0x0, 0x9f,0xe0,0x1f, +0x15,0x20,0xb5,0xb, 0xe0,0x1f,0x11,0x20,0xe7,0xfc,0x0, 0xa5,0x67,0xa, 0x17,0x83, +0xaf,0x8e,0xe7,0xf7,0x0, 0xf6,0xe0,0x0, 0x12,0xe0,0xf8,0x40,0x3c,0xec,0xe8,0x5, +0x3a,0x9c,0x11,0x98,0xe8,0x40,0x3c,0x69,0xf0,0x0, 0xc4,0x98,0x3d,0x63,0xe8,0x40, +0x3c,0xe9,0xe0,0x2, 0xd2,0xf, 0xe8,0x40,0x3a,0xf9,0x1, 0xf5,0x66,0x85,0x67,0xc, +0x67,0x8e,0xe8,0xc, 0xae,0x8c,0xc2,0x1, 0x66,0x92,0xe8,0xc, 0xaf,0x1c,0xe2,0x1, +0xc2,0x7f,0x67,0x8, 0xe8,0xc, 0xaf,0xac,0xf0,0x40,0x3d,0x74,0x67,0x95,0xe8,0xc, +0xae,0xbc,0x66,0x96,0xe8,0xc, 0xaf,0x4c,0x67,0x14,0xe8,0x6, 0xb7,0xbc,0xe8,0x6, +0xb6,0xcc,0x67,0x86,0x66,0x8f,0xe8,0x6, 0xb7,0x6c,0x67,0x11,0xe8,0x7, 0xb1,0x3c, +0xe8,0x6, 0xb3,0xdc,0xf8,0x6, 0xb5,0xfc,0xe8,0x7, 0xb7,0x8c,0xf8,0x7, 0xb6,0x9c, +0xe8,0x7, 0xb6,0xac,0x89,0xe, 0xe7,0xf8,0x2, 0xb8,0xe7,0xf9,0x0, 0x82,0x67,0x8c, +0xe2,0x0, 0xcf,0xf8,0xe7,0xfe,0x1, 0x40,0x66,0x90,0x55,0xb7,0x57,0xb8,0xf2,0x1, +0x7c,0x98,0xf0,0x19,0x3c,0x9d,0xe8,0x0, 0xb5,0x89,0xe8,0x0, 0xb7,0x99,0xe7,0xfe, +0x0, 0xb3,0xe0,0x0, 0x16,0xe4,0x7e,0x8c,0x67,0xf, 0xe2,0x0, 0xcf,0xa, 0x2, 0xbc, +0x16,0x81,0x7e,0x88,0x66,0x97,0x8d,0x8d,0xe2,0x0, 0xcd,0x81,0xe0,0xb, 0x3b,0x15, +0xe7,0xfe,0x1, 0x5b,0x8d,0xb, 0xe0,0x0, 0x15,0xe4,0xe7,0xfd,0x0, 0x94,0x67,0x11, +0x15,0x1, 0x8c,0xe, 0xad,0xb, 0xe7,0xfd,0x24,0x47,0xe8,0x19,0x8d,0xc8,0x3d,0xf3, +0xe0,0x4, 0x1, 0x26,0xe0,0x2, 0x1d,0x5e,0x15,0x81,0x3f,0x6b,0xe2,0x1, 0xc7,0x7f, +0x3c,0x7e,0xf0,0x40,0x3b,0xeb,0xc5,0x81,0xe7,0xfd,0x5, 0xb6,0xe0,0x1a,0x8f,0x6a, +0xc5,0xa, 0x39,0xfe,0x1, 0xf3,0x15,0x8a,0xe8,0xb, 0x3d,0xb7,0x15,0x7f,0xe8,0xb, +0x3d,0x98,0xe0,0x19,0xad,0x4b,0xe7,0xfd,0x0, 0xa7,0x3f,0x77,0x3e,0xe7,0xe0,0x6d, +0x3d,0x2e,0xe7,0xfa,0x0, 0xb8,0xf0,0x0, 0x5a,0xbe,0x17,0x1, 0xf2,0x0, 0xca,0x8a, +0x7f,0x8, 0x5, 0xc1,0xe0,0x0, 0x5d,0xca,0xe2,0x0, 0xcd,0x8a,0xe7,0xff,0x5, 0xbc, +0x55,0xbc,0x54,0x38,0x55,0x37,0x3d,0x98,0xe0,0x43,0x3d,0x9b,0x54,0xbb,0xe2,0x0, +0xcd,0x80,0x3c,0x9a,0xe0,0x43,0x3c,0x99,0x3d,0x6b,0xe0,0x4, 0x4, 0x2, 0xe2,0x0, +0xcc,0x80,0x3d,0xea,0xe3,0xff,0xc5,0xff,0x3d,0x69,0xe0,0x3, 0x4, 0x77,0x64,0x86, +0xe3,0xff,0xc5,0x7f,0xe8,0x40,0x3c,0x6b,0x7f,0x81,0xf0,0x0, 0x7a,0x82,0xf0,0x0, +0x7b,0x4, 0xef,0xfc,0xdc,0x3d,0x5d,0xbf,0xe0,0x43,0x3c,0x18,0xe2,0x1f,0xcd,0x9f, +0x67,0x81,0xf0,0x0, 0x62,0x82,0xf0,0x0, 0x63,0x4, 0xe0,0x3, 0x5, 0xcd,0x15,0x8f, +0xe8,0xb, 0x3d,0xb5,0xe3,0xff,0xc5,0xff,0x3c,0x7b,0x67,0xc, 0xe0,0x28,0x3c,0x2b, +0x15,0xa8,0xe0,0x6b,0x3b,0x2e,0x7c,0x8, 0x7d,0x8c,0xe7,0xfe,0x0, 0xfd,0xf0,0x40, +0x3b,0x6b,0x7d,0x8f,0xe7,0xfb,0x0, 0xa2,0xe0,0x0, 0x1f,0x51,0xe0,0x1, 0x1e,0x8e, +0x7f,0x17,0xea,0x21,0x7f,0x14,0x7e,0x91,0xf0,0x40,0x3c,0xee,0x66,0x97,0x67,0x11, +0xaf,0x8d,0x89,0xe, 0xe7,0xf6,0x0, 0xe5,0x5c,0xbe,0x15,0x14,0xe1,0x2a,0x3c,0x9a, +0x7d,0x12,0xe7,0xfb,0x0, 0x9d,0xe0,0x2, 0x1f,0x49,0x15,0x1, 0xad,0xe, 0xe7,0xfb, +0x0, 0x85,0x17,0x14,0x16,0x80,0x7f,0xc, 0x7e,0x88,0xe7,0xfe,0x0, 0xd5,0xe0,0x0, +0x4f,0xe9,0xe2,0x0, 0xcf,0xf8,0xe7,0xfc,0x1, 0x77,0xe0,0x0, 0x55,0xc3,0xe0,0x0, +0x57,0xc4,0x67,0x10,0xf2,0x1, 0x7c,0x98,0xf0,0x19,0x3c,0x9e,0x35,0xa1,0x37,0xa1, +0xe8,0x0, 0xb5,0x89,0xe8,0x0, 0xb7,0x99,0xe7,0xfc,0x0, 0xe6,0xe0,0x0, 0x5d,0x4a, +0xe2,0x0, 0xcd,0x2, 0x2, 0x98,0x5c,0xb9,0xe2,0x0, 0xcc,0xcf,0x2, 0x94,0xf2,0x0, +0xce,0x93,0xe0,0x0, 0x2, 0xc9,0xe0,0x0, 0x5c,0xc6,0xe2,0x0, 0xcc,0x9d,0x2, 0x8b, +0x5c,0xba,0xe2,0x0, 0xcc,0xcf,0x2, 0x87,0xf0,0x0, 0x62,0x85,0xf2,0x1, 0xc2,0xff, +0xe0,0x1, 0x0, 0xb7,0xf2,0x0, 0xce,0x89,0x2, 0xb6,0xf0,0x0, 0x5a,0x3e,0xf2,0x0, +0xca,0x8, 0x5, 0xbe,0x67,0xe, 0xe2,0x0, 0xcf,0xe, 0x2, 0xaf,0xe0,0x0, 0x4d,0x68, +0xe8,0x40,0x3c,0x66,0x3c,0xea,0x7d,0x4, 0x7d,0x83,0x7f,0x81,0xe0,0x2, 0xd0,0x68, +0xf0,0x0, 0x62,0x85,0xe0,0x16,0x34,0x2, 0xf2,0x1, 0xc2,0xff,0xf8,0x16,0x3b,0x35, +0x65,0x4, 0xf3,0xff,0xc3,0x7f,0xf2,0x0, 0xcb,0x78,0x65,0x83,0x67,0x81,0xe0,0x2, +0x2, 0xb3,0xe2,0x0, 0xcd,0xa, 0xe0,0x1, 0x5, 0x8c,0xf2,0x0, 0xcb,0x4f,0xe8,0x40, +0x3d,0x66,0x2, 0x83,0xe0,0x0, 0x15,0x50,0xf0,0x40,0x3b,0x6a,0xf3,0xff,0xc3,0x7f, +0xe0,0x0, 0x0, 0xff,0xf0,0x0, 0x5a,0x3e,0x14,0x8f,0xf1,0x28,0x3a,0x19,0x24,0x8, +0xe1,0x2a,0x3d,0x19,0x25,0x5, 0x66,0x8e,0xe2,0x0, 0xce,0x89,0x5, 0xc8,0xe0,0x1, +0x4d,0x3, 0x25,0x20,0xe0,0x1, 0x1d,0x4e,0x8d,0xa, 0x25,0x1c,0xf0,0x0, 0x62,0x85, +0xf2,0x1, 0xc2,0xff,0xe1,0x2b,0x3b,0x9b,0xe0,0x1, 0x25,0xd0,0x66,0x88,0xe0,0x1, +0x26,0xcd,0xe0,0xb, 0x3b,0x15,0x15,0x3, 0xf2,0x0, 0xce,0x9d,0xad,0xb, 0xf0,0x0, +0x13,0x0, 0xe0,0x1, 0x5, 0xc8,0xe0,0xb, 0x3b,0x15,0x15,0x1, 0xad,0xb, 0xe7,0xfa, +0x0, 0xed,0xf0,0x0, 0x62,0x85,0xe0,0x0, 0x4c,0xe8,0x5c,0x39,0xf2,0x1, 0xc2,0xff, +0x7d,0x83,0x7f,0x81,0xf0,0x0, 0x7a,0x4, 0xf0,0x0, 0x7a,0x82,0xe0,0x2, 0xd0,0x8, +0xe0,0x0, 0x4c,0xea,0xf0,0x0, 0x62,0x82,0xe0,0xa, 0x34,0x1, 0x67,0xe, 0xe8,0xa, +0x3d,0x35,0x34,0xa1,0xe0,0x29,0x3f,0x19,0xe3,0xff,0xc5,0x7f,0x65,0x83,0x67,0x81, +0xf0,0x0, 0x62,0x4, 0x24,0xa0,0x14,0x9d,0xe9,0x34,0x3c,0xa4,0xf0,0x0, 0x22,0x1c, +0xe0,0x2, 0x1c,0xce,0x8c,0x89,0x2c,0x97,0xe0,0x1, 0x4c,0x82,0xe0,0x9, 0x3f,0x29, +0xe0,0x43,0x3c,0x19,0xe2,0x0, 0xcc,0x0, 0x5, 0xb, 0xe2,0x0, 0xcc,0x85,0x5, 0xb, +0xe2,0x1, 0xcd,0x47,0xf0,0x40,0x3b,0x6a,0x2, 0x91,0xe0,0x0, 0x0, 0xc7,0xe3,0xff, +0xcc,0x7b,0x4, 0x77,0x66,0x8e,0xf0,0x40,0x3b,0x6a,0xe2,0x0, 0xce,0x8f,0x2, 0xba, +0xe2,0x0, 0xcd,0x78,0x5, 0x83,0xf0,0x0, 0x13,0x78,0xf3,0xff,0xc3,0x7f,0xf0,0x40, +0x3b,0x77,0xe7,0xff,0x5, 0x99,0xf2,0x0, 0xce,0x87,0x2, 0xb2,0xe2,0x0, 0xcb,0x94, +0xe0,0x0, 0x5, 0xc0,0xe0,0xb, 0x3b,0x15,0x15,0x2, 0xad,0xb, 0xf0,0x0, 0x13,0x0, +0xe7,0xfa,0x0, 0x8c,0x15,0x0, 0xe7,0xf7,0x0, 0xdd,0x16,0x8a,0x17,0x0, 0x7e,0x8c, +0x7f,0x8, 0xe7,0xfc,0x0, 0xd1,0xe0,0x0, 0x1f,0xd1,0xfa,0x21,0x7c,0x94,0xf0,0x0, +0xad,0xf, 0x12,0x8a,0x3a,0xb2,0xe0,0x2, 0x1c,0xde,0xe0,0x1, 0x14,0x40,0x3d,0x65, +0x3c,0x10,0xe0,0x1, 0xdf,0xff,0xea,0x16,0x7c,0x4c,0xf0,0x0, 0x65,0x7, 0xe7,0xf6, +0x0, 0x9b,0xe2,0x1, 0xcd,0x48,0x5, 0xca,0xf0,0x1, 0x13,0x48,0x0, 0xc7,0xe0,0x0, +0x5d,0xc6,0xe2,0x0, 0xcd,0xe4,0x5, 0x8d,0x15,0x94,0xe1,0x2b,0x3b,0x9b,0x25,0x89, +0x15,0x93,0xe9,0x2b,0x3d,0xad,0x25,0x85,0x67,0xe, 0xe2,0x0, 0xcf,0x13,0x5, 0xc3, +0xf0,0x0, 0x13,0x1, 0xe0,0x0, 0x5d,0xc8,0xe0,0x0, 0x5d,0x47,0x64,0x86,0xe8,0x40, +0x3c,0x6b,0x7f,0x81,0xf0,0x0, 0x7a,0x82,0xf0,0x0, 0x7b,0x4, 0xef,0xfc,0xda,0xb8, +0xe2,0x0, 0xcc,0x3b,0x67,0x81,0xf0,0x0, 0x62,0x82,0xf0,0x0, 0x63,0x4, 0x2, 0x87, +0x65,0x8d,0x15,0x0, 0x3d,0x95,0xad,0xb, 0xf0,0x0, 0x13,0x0, 0xe0,0xb, 0x3b,0x15, +0x15,0x0, 0xad,0xb, 0xe7,0xf9,0x0, 0xb2,0xf2,0x0, 0xce,0x9d,0xf0,0x0, 0x13,0x0, +0x2, 0xda,0xe0,0x3, 0x1f,0x3d,0x8d,0x9e,0xe2,0x0, 0xcd,0x82,0xe0,0x0, 0x5d,0xc6, +0x5, 0x96,0xe0,0x0, 0x4d,0x6b,0x2d,0x13,0xe2,0x0, 0xcd,0x9d,0xf0,0x40,0x3b,0x6a, +0xe0,0x0, 0x5, 0xc2,0xe0,0xb, 0x3b,0x15,0x8d,0x8b,0xe2,0x0, 0xcd,0x81,0x1, 0x43, +0xe2,0x0, 0xcd,0x83,0xe7,0xf9,0x1, 0x92,0xe7,0xfe,0x0, 0x9f,0xe2,0x0, 0xcd,0x9d, +0xf0,0x0, 0x13,0x0, 0x2, 0xf0,0x66,0x94,0xe2,0x0, 0xce,0x9d,0x2, 0xec,0x67,0xb, +0x9d,0x8e,0xe2,0x0, 0xcd,0xf7,0x2, 0xe7,0xe0,0x2, 0x1d,0xce,0x8d,0x8b,0xe8,0x36, +0x3d,0x86,0x0, 0xe1,0xf0,0x0, 0x13,0x78,0xe7,0xfe,0x0, 0xdb,0xf0,0x0, 0x13,0x80, +0xe7,0xfb,0x0, 0xeb,0x15,0x9, 0x15,0x86,0x66,0x8e,0xe8,0xa, 0x3d,0x35,0xe8,0xb, +0x3d,0xb5,0xe2,0x0, 0xce,0x8b,0xe3,0xff,0xc5,0xfe,0xe3,0xff,0xc5,0x7f,0xe0,0x6a, +0x3c,0xab,0x3d,0xea,0xe7,0xfc,0x0, 0xaa,0x15,0x0, 0xe7,0xfc,0x0, 0x8a,0x15,0x0, +0xe7,0xfb,0x0, 0xff,0x64,0x86,0xe8,0x40,0x3c,0x6b,0x7f,0x81,0xf0,0x0, 0x7a,0x82, +0xd8,0xbf,0xf0,0x40,0x3b,0x68,0x67,0x81,0xf0,0x0, 0x62,0x82,0xe7,0xff,0x24,0x34, +0xe7,0xfe,0x0, 0xba,0xea,0x16,0x7c,0x4c,0xe7,0xf4,0x0, 0xf6,0x15,0x80,0x7d,0xa0, +0x7d,0xa1,0x7d,0xa2,0x7d,0xa3,0x7d,0xa4,0x7d,0xa5,0xe7,0xf7,0x0, 0x8d,0x8, 0xb2, +0xe0,0x1, 0x1f,0x8e,0xea,0x22,0x7c,0x40,0x89,0xf, 0x14,0x80,0x31,0x21,0x3d,0x62, +0xe0,0x1, 0xdf,0x7a,0xea,0x22,0x7c,0x54,0x3d,0x62,0x14,0x80,0x9, 0x21,0xe0,0x3e, +0x0, 0xf3,0x0, 0x0, 0x8, 0xb7,0xf8,0x0, 0xc, 0x3e,0xe1,0xfe,0xc0,0x64,0xe0,0x2, +0x19,0x5f,0xea,0x16,0x7d,0xca,0xf0,0x0, 0x8e,0x82,0xf0,0x2, 0x1d,0x5e,0x8f,0x8b, +0xf0,0x0, 0x2e,0x90,0xe0,0x3, 0x27,0xa4,0xe0,0x2, 0x1f,0x4f,0x7f,0xa, 0xf0,0x0, +0xae,0x8e,0xef,0xff,0xdf,0xd6,0xf0,0x1, 0x1e,0xe, 0xe8,0x0, 0x89,0x8c,0x0, 0xb1, +0xf0,0x1, 0x1e,0xe, 0xe8,0x0, 0x89,0x8c,0x2f,0x93,0x21,0x92,0x17,0x7f,0x3f,0x13, +0xe2,0x1, 0xc7,0x7f,0xc7,0x1, 0xe4,0x0, 0xc7,0xa, 0xe8,0x40,0x3f,0xea,0xe8,0xe, +0x3f,0x1a,0x16,0xff,0xe0,0x19,0xae,0xcf,0xc7,0x8a,0x3f,0x7f,0x1, 0xfc,0x15,0xff, +0xe8,0xb, 0x3d,0x9d,0xe2,0x1, 0xc5,0xff,0xc5,0x81,0xe4,0x0, 0xc5,0x8a,0xe0,0x2, +0x1f,0xde,0xe8,0xb, 0x3d,0x9a,0x96,0x8f,0x97,0x1f,0x36,0xa4,0xb6,0x8f,0xc7,0x8a, +0x37,0x24,0x3d,0xff,0xe0,0x40,0xb7,0x4f,0x1, 0xf7,0xe0,0x2, 0x1f,0xcf,0x7f,0x8a, +0x12,0xa, 0x3a,0x33,0xe0,0x1, 0x14,0xff,0x3d,0x64,0xe2,0x0, 0x7c,0x3c,0xe0,0x1, +0xdf,0x1b,0x14,0x80,0xe2,0x0, 0x7d,0xbc,0xe8,0x40,0x3d,0x6d,0x3c,0x69,0xef,0xff, +0xd6,0xc5,0x3d,0x63,0xe8,0x40,0x3c,0xed,0xe2,0x0, 0x7d,0xbc,0xef,0xff,0xd6,0xbe, +0xe0,0x2, 0x1c,0xde,0x15,0x0, 0xe2,0x0, 0x78,0xbc,0x21,0xad,0x24,0x11,0x8e,0x49, +0x8f,0xc1,0x3f,0xfc,0x1, 0x21,0x3f,0x61,0x17,0x80,0x0, 0x84,0x8e,0xce,0x3e,0xfc, +0x1, 0x1b,0xc7,0x81,0xe2,0x1, 0xc7,0xff,0x3f,0xf8,0xc7,0xa, 0x1, 0xf8,0x17,0xa, +0x3f,0x3a,0x17,0x8a,0xe8,0xe, 0x3f,0x1a,0x3f,0xb8,0x92,0x8e,0x95,0x9e,0x96,0x2e, +0x96,0xbe,0x97,0x4e,0x3f,0x91,0xc4,0x1, 0xb2,0x8f,0xe2,0x1, 0xc4,0x7f,0xb5,0x9f, +0xb6,0x2f,0xb6,0xbf,0xb7,0x4f,0xc5,0x1, 0x3f,0xea,0xe2,0x1, 0xc7,0xff,0x3f,0xf3, +0xc4,0x8a,0x4, 0xd5,0xe0,0x2, 0x1c,0x59,0x14,0xbc,0x3d,0x64,0x3c,0x90,0xe0,0x1, +0xde,0x99,0x66,0x8a,0xf0,0x2, 0x19,0x5e,0x8f,0x8d,0xe0,0x5, 0x2f,0x89,0xea,0x16, +0x7d,0xca,0x8f,0xb, 0xe0,0x5, 0x27,0xa, 0xf0,0x5, 0x26,0x94,0xf7,0xff,0x12,0x7f, +0xe0,0x1, 0x1f,0xd7,0xf8,0x14,0x3a,0x1d,0xf2,0x1, 0xc2,0x7f,0xf0,0x1, 0x99,0x9f, +0xf0,0x0, 0xc2,0x1, 0xe0,0x2, 0x1f,0xcd,0xf4,0x0, 0xc2,0xa, 0xf8,0x19,0x88,0xca, +0xf0,0x0, 0x88,0xf, 0x89,0x2, 0xfa,0x22,0x7b,0x40,0xf8,0x14,0x3a,0x1a,0xea,0x22, +0x7d,0xd4,0xf8,0x40,0x3f,0x66,0xf8,0x0, 0x8c,0xc, 0xf8,0x40,0x3d,0x62,0x79,0xe, +0xf8,0x40,0x3d,0xe2,0xe0,0x0, 0x7d,0x8b,0xf7,0xff,0x12,0xfc,0xf0,0x0, 0x7e,0x8c, +0xe8,0x40,0x3a,0x63,0xe8,0x40,0x3b,0xe0,0xe8,0x40,0x3a,0xe1,0xe8,0x40,0x3b,0x64, +0xf0,0x0, 0x7e,0xd, 0xf0,0x0, 0x24,0x19,0xe8,0x0, 0x8e,0x4b,0x3e,0x75,0xe0,0x1, +0x1, 0x54,0xe8,0x40,0x3f,0x62,0x17,0x81,0x0, 0x87,0xe0,0x1a,0x8e,0xee,0xc7,0xa, +0x3e,0x7d,0xe0,0x1, 0x1, 0x4d,0x3e,0xef,0xe2,0x1, 0xc6,0xff,0xf0,0x40,0x3c,0x7d, +0x3d,0xef,0xc7,0x81,0x2, 0xf3,0xf0,0x0, 0x66,0x8c,0xf0,0x0, 0x66,0xd, 0xe0,0x2, +0x1f,0xdd,0x8f,0x8f,0x2f,0x89,0xea,0x16,0x7c,0x40,0xe8,0x40,0x3d,0x68,0xe0,0x1, +0x14,0xff,0xe0,0x1, 0xde,0x69,0xf0,0x0, 0x14,0x80,0xf0,0x1, 0x24,0x20,0xfa,0x16, +0x7d,0xc0,0x11,0x3, 0xe8,0x40,0x3a,0x69,0xe0,0x0, 0x0, 0xd3,0xf0,0xc, 0x3d,0x93, +0x8f,0xc, 0x34,0x44,0xe2,0x1, 0xcf,0x7f,0x34,0xc4,0xe0,0x3, 0x1, 0x69,0xe2,0x0, +0xcf,0x2, 0xe0,0x3, 0x2, 0xdf,0x13,0x81,0x3b,0x9e,0xe2,0x1, 0xc3,0xff,0x13,0x1e, +0xe4,0x0, 0xc7,0xa, 0x3b,0x33,0xea,0x14,0x7e,0x14,0x65,0x8a,0xe0,0xf, 0x3f,0x16, +0x3f,0x9c,0x8f,0xb, 0xb4,0xf, 0xb4,0x9f,0xe0,0x3, 0x2f,0x46,0x3b,0x1c,0x97,0x56, +0x94,0x6, 0xe0,0x1, 0x97,0xa6,0x3c,0x1e,0x3c,0x1f,0x3c,0xe2,0x12,0x8a,0xe3,0xff, +0xc4,0x7f,0xf0,0x18,0x3d,0x1d,0x3a,0x96,0xe0,0x1, 0xdd,0xd5,0xf0,0x0, 0x17,0x14, +0x96,0x95,0xf0,0x1e,0x3f,0x16,0x97,0x96,0xe8,0x0, 0x97,0x1e,0x3f,0x9d,0x3f,0x9e, +0xe8,0x0, 0xb4,0x8, 0x3c,0x6f,0x3c,0xe2,0xe3,0xff,0xc4,0x7f,0xe0,0x1, 0xdd,0xc3, +0xe8,0x0, 0xb4,0x18,0xe8,0x3, 0x39,0x9b,0xab,0x83,0xf0,0x0, 0xc4,0x81,0xf8,0x0, +0x8c,0xc, 0xf2,0x1, 0xc4,0xff,0xf8,0x40,0x3c,0x79,0xe0,0x0, 0x5, 0xc8,0x16,0x8a, +0xe8,0xd, 0x3e,0xb9,0xf8,0x40,0x3e,0xf9,0xf0,0xf, 0x3d,0x1d,0xe0,0x19,0x89,0xcf, +0xe0,0xc, 0x9c,0x4f,0xa9,0xcf,0xe0,0xc, 0x9c,0xdf,0x5, 0x87,0x9e,0xf, 0x9f,0x1f, +0x36,0x44,0x37,0x44,0xb6,0xf, 0xb7,0x1f,0xf0,0xf, 0x3d,0x1d,0xe0,0x19,0x85,0x5f, +0xe0,0x19,0x85,0xef,0xe0,0x19,0x86,0x7f,0xe0,0x1a,0x87,0xf, 0xe2,0x0, 0xc1,0x8f, +0xe8,0x40,0x39,0xf8,0xad,0x5f,0xad,0xef,0xae,0x7f,0xe0,0x1, 0xaf,0xf, 0x3, 0x4e, +0x17,0xa, 0x3f,0x33,0xe8,0xe, 0x3f,0x1a,0xe0,0x2, 0xc7,0x2c,0x8f,0xe, 0xe2,0x0, +0xcf,0x3, 0x1, 0x44,0xe2,0x0, 0xcf,0x1, 0xe7,0xfe,0x1, 0xfa,0xea,0x16,0x7f,0xc0, +0xf0,0x0, 0xc4,0x81,0xf8,0x0, 0x8c,0xc, 0xf2,0x1, 0xc4,0xff,0x3f,0x93,0x17,0x7f, +0xf8,0x40,0x3c,0x79,0xaf,0xf, 0xe7,0xff,0x2, 0xbc,0xea,0x16,0x7e,0xca,0xf0,0x0, +0xae,0x8d,0xe0,0x1, 0xc0,0x1c,0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0xe0,0x2, 0x1e,0xcf, +0x7e,0x8a,0xe7,0xfc,0x0, 0xe0,0x3e,0x65,0xe0,0x0, 0x15,0x80,0xf0,0x0, 0x14,0x8a, +0xf0,0x19,0x3c,0xbb,0xf8,0x0, 0x9e,0x9b,0xf8,0xf, 0x3d,0x19,0xe0,0xc, 0x9e,0xdf, +0xe0,0xc, 0x99,0x4f,0xe8,0x0, 0x99,0x8b,0xf0,0xf, 0x3e,0xad,0x3d,0x6f,0xe0,0xe, +0x39,0xa2,0x17,0x8a,0xe3,0xff,0xc7,0x7f,0x3f,0xbc,0xf0,0x43,0x3e,0x1e,0xf2,0x0, +0xce,0x0, 0xe3,0xff,0xc5,0x7f,0xe0,0x8, 0x39,0x23,0xe8,0xf, 0x3f,0x9a,0xe3,0xff, +0xc4,0x7f,0xf0,0x43,0x3b,0x9a,0x3c,0xee,0xe0,0x2, 0xc7,0xac,0xe0,0x69,0x3d,0x28, +0x8f,0x8f,0xf2,0x0, 0xcb,0x80,0xe8,0x8, 0x3e,0xad,0xf0,0x40,0x39,0xea,0xe3,0xff, +0xc4,0x7f,0xe0,0x73,0x3d,0x28,0xe2,0x0, 0xcf,0x81,0xf0,0x13,0x39,0x99,0xf3,0xff, +0xc1,0xff,0x36,0x21,0xe0,0x1, 0x1, 0x37,0xf0,0x40,0x39,0xf4,0xf0,0xf, 0x3f,0x1c, +0xe0,0x0, 0x3, 0xff,0x9f,0x8f,0xf0,0x8, 0x31,0xa8,0x3c,0xe4,0x7d,0x6, 0x7e,0x2, +0x7e,0x87,0x7f,0x8, 0x7f,0x89,0xf0,0x0, 0x79,0x3, 0xf0,0x0, 0x79,0x84,0xf0,0x0, +0x7a,0x81,0xf0,0x0, 0x7b,0x85,0xe0,0x1, 0xdd,0x6, 0xe3,0xff,0xc4,0x7f,0xe2,0x0, +0xcc,0xf, 0x65,0x6, 0x66,0x2, 0x66,0x87,0x67,0x8, 0x67,0x89,0xf0,0x0, 0x61,0x3, +0xf0,0x0, 0x61,0x84,0xf0,0x0, 0x62,0x81,0xf0,0x0, 0x63,0x85,0xe0,0x2, 0x2, 0x80, +0xf0,0x40,0x39,0xff,0xe0,0x1, 0x3, 0xbf,0xf0,0x0, 0x60,0xb, 0xf0,0x10,0x38,0x1c, +0xe8,0x0, 0x9c,0x0, 0xe8,0xc, 0x3e,0x1e,0xf0,0x0, 0xb1,0x8c,0xe0,0x0, 0x2b,0xe0, +0x3e,0x68,0xe3,0xff,0xc6,0x7f,0xe2,0x2, 0xce,0x0, 0x3f,0xe8,0x5, 0x83,0xe0,0x2, +0x17,0x80,0xe3,0xff,0xc7,0xff,0xf2,0x0, 0xce,0x0, 0xe0,0xc, 0x39,0x23,0xe3,0xff, +0xc6,0x7f,0xe0,0x6e,0x3d,0x2c,0x3f,0x3f,0x39,0xf2,0x37,0x48,0xe8,0xe, 0x3f,0x55, +0xe3,0xff,0xc7,0x7c,0xf8,0xc, 0x3d,0x19,0xe0,0x0, 0x5, 0xd3,0x3f,0x12,0xe0,0xc, +0xb7,0x4c,0xf2,0x0, 0xcb,0x80,0xe8,0xe, 0x3e,0xad,0xe3,0xff,0xc7,0x7f,0xe0,0x6a, +0x3d,0x2e,0x3f,0xba,0xf0,0x40,0x3e,0xfd,0x37,0xc8,0xe8,0xf, 0x3f,0xd5,0xe3,0xff, +0xc7,0xfc,0xf8,0xb, 0x3d,0x19,0xe0,0x0, 0x2, 0xc2,0xe0,0xf, 0x3e,0xaf,0xe0,0xc, +0xb7,0xdb,0xf0,0x0, 0xc5,0x8a,0xf0,0x40,0x3d,0xf6,0xe7,0xfc,0x1, 0xed,0xf0,0x0, +0x66,0xd, 0xf0,0x0, 0x66,0x8c,0xf8,0x0, 0x8c,0xc, 0xe7,0xfd,0x0, 0x82,0x9f,0x8f, +0xe8,0x40,0x3f,0xf3,0xe7,0xff,0x2, 0xaa,0xfa,0x22,0x78,0x54,0xf0,0x10,0x38,0x1c, +0xe0,0x2, 0x17,0x80,0xe8,0xc, 0x3e,0x1e,0xe8,0x0, 0xb7,0x80,0xe0,0x2, 0x17,0x80, +0xf0,0x0, 0xb1,0x8c,0xe7,0xff,0x23,0xb1,0xe0,0x2, 0x14,0x0, 0x67,0x8e,0xe2,0x0, +0xcf,0x81,0xe7,0xff,0x1, 0x9f,0xe8,0x0, 0x8f,0xeb,0xe0,0xc, 0x34,0x41,0xe2,0x0, +0xcf,0x8f,0xe3,0xff,0xc6,0x7f,0xe0,0x68,0x3b,0xac,0xe7,0xff,0x0, 0x93,0xe0,0xe, +0x39,0x2e,0xe0,0xc, 0xb7,0x4c,0xe7,0xff,0x0, 0xae,0x3f,0x9d,0xe0,0xc, 0xb7,0xdb, +0x0, 0xc1,0xf0,0x0, 0x60,0xb, 0x15,0x80,0xf0,0x9, 0x38,0x1c,0xf0,0xf, 0x3f,0x1c, +0xf0,0x40,0x39,0xf4,0xb5,0x89,0xb5,0x8f,0x3, 0xca,0xf0,0x8, 0x31,0xa8,0x3c,0xe4, +0x7d,0x6, 0x7e,0x2, 0x7e,0x87,0x7f,0x8, 0xf0,0x0, 0x78,0x9, 0xf0,0x0, 0x79,0x3, +0xf0,0x0, 0x79,0x84,0xf0,0x0, 0x7a,0x81,0xf0,0x0, 0x7b,0x85,0xe0,0x1, 0xdc,0x4b, +0xe3,0xff,0xc4,0x7f,0xe2,0x0, 0xcc,0xf, 0x65,0x6, 0x66,0x2, 0x66,0x87,0x67,0x8, +0xf0,0x0, 0x60,0x9, 0xf0,0x0, 0x61,0x3, 0xf0,0x0, 0x61,0x84,0xf0,0x0, 0x62,0x81, +0xf0,0x0, 0x63,0x85,0x5, 0x89,0xf0,0x10,0x38,0x1c,0xe8,0x0, 0xb4,0x0, 0xe7,0xfe, +0x0, 0xcb,0xfa,0x22,0x78,0x54,0xf0,0x10,0x38,0x1c,0x15,0x90,0xe8,0xc, 0x3e,0x1e, +0xe8,0x0, 0xb5,0x80,0x17,0x90,0xf0,0x0, 0xb1,0x8c,0xe7,0xfe,0x23,0xce,0x14,0x10, +0xe7,0xff,0x0, 0x9e,0xf0,0xf, 0x3d,0x1d,0xb4,0xf, 0xb4,0x9f,0xe7,0xfc,0x0, 0xdc, +0x17,0x0, 0xaf,0xc, 0x13,0x81,0x3f,0x64,0xe7,0xfc,0x0, 0xa3,0x17,0x1e,0x3f,0x33, +0xea,0x14,0x7e,0x94,0x15,0x81,0x3f,0x1d,0xad,0x8c,0x16,0x83,0xb4,0xf, 0xb4,0x9f, +0xc7,0xa, 0x94,0xf, 0x94,0x9f,0x95,0x2f,0x95,0xbf,0x96,0x4f,0xe0,0x40,0xb4,0x5e, +0xc6,0xff,0xe0,0x40,0xb4,0xce,0xe2,0x1, 0xc6,0xff,0xe0,0x40,0xb5,0x3e,0xe0,0x40, +0xb5,0xae,0xe0,0x40,0xb6,0x1e,0x2e,0xed,0xe7,0xfc,0x0, 0xb9,0xf0,0x40,0x39,0xff, +0xe7,0xfe,0x4, 0x84,0xfa,0x22,0x78,0x54,0xe7,0xff,0x0, 0xb7,0xf8,0x0, 0x8c,0xc, +0xf7,0xfb,0x26,0xd3,0xe7,0xfb,0x0, 0xcd,0xf8,0x0, 0x8c,0xc, 0x15,0xa, 0xe8,0xa, +0x3d,0x38,0xe0,0x2, 0x1c,0x59,0xe8,0x40,0x3c,0xe2,0xe0,0x1, 0xdb,0xfb,0x0, 0xf1, +0xf8,0x0, 0x8c,0xc, 0xe7,0xfb,0x0, 0xc1,0x8, 0xb1,0xe0,0x2, 0x1c,0x6d,0x15,0xa, +0x14,0x99,0xe0,0x1, 0xdc,0x29,0xe0,0x2, 0x1e,0x8e,0x17,0x0, 0x3f,0xed,0xe1,0x80, +0xaf,0x1f,0xc7,0x81,0xaf,0x1d,0xe1,0x80,0xaf,0x1f,0xe1,0x80,0xaf,0x1f,0xe1,0x80, +0xaf,0x1f,0xe1,0x80,0xaf,0x1f,0xe1,0x80,0xaf,0x1f,0xe1,0x80,0xaf,0x1f,0xe1,0x80, +0xaf,0x1f,0xaf,0xf, 0x8, 0xe1,0x0, 0x0, 0x8, 0xb7,0xf8,0x0, 0xc, 0x3e,0xc0,0x58, +0xf0,0x2, 0x19,0xdf,0xe8,0x0, 0x89,0x3, 0xe0,0x3, 0x21,0x69,0xe0,0x1, 0x1f,0x8e, +0xe0,0x1, 0x1f,0x42,0x8f,0x8f,0xe0,0x0, 0x27,0xf3,0x13,0xff,0x3b,0x9f,0xe2,0x1, +0xc3,0xff,0xf0,0xe, 0x8c,0x9e,0xf0,0xe, 0x8c,0x2e,0xc3,0x81,0xe4,0x0, 0xc3,0x8a, +0xe0,0x2, 0x19,0xde,0xea,0x13,0x7c,0xba,0xfa,0x13,0x7f,0x3c,0xf0,0x19,0x34,0xa6, +0xf0,0x18,0x34,0x26,0xf0,0x0, 0x10,0x80,0xea,0x13,0x7d,0xf0,0xfa,0x13,0x7a,0xe4, +0xfa,0x13,0x7b,0x7c,0xfa,0x14,0x7b,0x88,0xf0,0x0, 0x8e,0x89,0xf0,0x2, 0x1e,0x57, +0xf0,0x2, 0x19,0x6d,0xf1,0xff,0xc4,0xe0,0xf1,0xff,0xc4,0x60,0x3b,0x93,0xf8,0x40, +0x38,0x61,0x7d,0x8a,0xf8,0x40,0x3a,0x6e,0x0, 0x8a,0xea,0x13,0x7f,0x3c,0x31,0x22, +0x3f,0x12,0xb2,0xe, 0xb7,0x9e,0xc1,0x8a,0x3b,0xf3,0x1, 0x37,0x89,0x43,0xe2,0x1, +0xc9,0x7f,0x1, 0x7a,0x9a,0x3, 0x17,0xa, 0x3f,0x32,0xe2,0x0, 0xca,0x21,0x9f,0x93, +0xe8,0x2d,0x3a,0x29,0xe8,0xe, 0x3f,0x1c,0x15,0x81,0xe0,0x6b,0x3b,0xad,0x8f,0xe, +0xe2,0x0, 0xcf,0xa1,0xe8,0x2d,0x3f,0xa8,0x16,0x1, 0xe0,0x6c,0x3b,0xad,0xe2,0x0, +0xcf,0x2, 0x1, 0x21,0x27,0x5b,0xe2,0x0, 0xcf,0x1, 0x1, 0xde,0x66,0x8a,0xea,0x14, +0x7d,0x88,0xea,0x13,0x7e,0x7c,0xea,0x13,0x7f,0xe4,0x3d,0x92,0x3e,0x12,0x3e,0x92, +0xc1,0x8a,0x39,0x1f,0xf0,0x0, 0xa8,0xb, 0x3b,0xf3,0xf0,0x0, 0xa8,0xc, 0xe0,0x0, +0xaf,0xd, 0xf0,0x0, 0xa8,0x2, 0x1, 0xcb,0xf0,0x3, 0x28,0xd0,0xc0,0x28,0xf8,0x0, +0xf, 0x28,0xb, 0xe1,0xe0,0x6, 0x31,0x22,0xf0,0xe, 0x3a,0x16,0xf0,0x0, 0x9d,0xe, +0xf0,0x0, 0x9d,0x9e,0xe8,0xe, 0x3a,0x2a,0xe3,0xff,0xc7,0x7f,0xe0,0x43,0x3c,0x1e, +0xe8,0xd, 0x3f,0xab,0xe3,0xff,0xc6,0xff,0xe0,0x41,0x3c,0xce,0xe2,0x0, 0xcc,0x0, +0xf0,0x43,0x3f,0x1d,0xe3,0xff,0xc4,0xff,0xf0,0x1, 0x3a,0x92,0xe0,0x41,0x3d,0x4d, +0xe0,0x6e,0x3d,0x29,0xf2,0x0, 0xcf,0x0, 0x8c,0x81,0xe3,0xff,0xc5,0x7f,0xe0,0x6d, +0x3d,0x2a,0xe2,0x0, 0xcc,0xe3,0x2, 0x83,0xc4,0x81,0xac,0x81,0xe8,0x0, 0x8d,0x3, +0xe2,0x0, 0xcd,0x7, 0xe0,0x2, 0x5, 0x8a,0xf0,0xa, 0x3b,0x92,0x88,0x8a,0x15,0xa, +0xf0,0x0, 0x26,0x89,0xf1,0xff,0xc6,0xff,0xf2,0x1, 0xc6,0xff,0xf0,0x0, 0x10,0x81, +0x15,0xa, 0xf0,0x9, 0x39,0x12,0x8a,0x89,0x3d,0x75,0x5, 0x83,0xad,0x9, 0x3a,0xea, +0x28,0x99,0xf0,0xa, 0x3a,0x92,0x8d,0xa, 0xe2,0x0, 0xcd,0x11,0x2, 0x8d,0x8d,0x53, +0x14,0xa2,0xe1,0x2a,0x3c,0xaa,0xe0,0x2, 0x2d,0x3, 0x8c,0xe3,0x15,0x7, 0xe1,0x2a, +0x3d,0x29,0xe0,0x1, 0x2d,0x7d,0xe0,0xa, 0x3f,0x1d,0xe2,0x0, 0xcd,0x3, 0xe0,0x2, +0x5, 0x0, 0x3d,0x65,0xe3,0xff,0xc5,0x7f,0xe1,0x29,0x3d,0x1e,0xe0,0x0, 0x24,0xdb, +0xe1,0x2a,0x3d,0x1d,0xe0,0x0, 0x25,0x57,0x2d,0x83,0xf0,0x0, 0xb5,0x3, 0x2e,0x3, +0xf0,0x0, 0xb5,0x93,0xe0,0x2, 0x1f,0xe, 0x3f,0x12,0x87,0x8e,0xc7,0x81,0xe2,0x1, +0xc7,0xff,0xe2,0x0, 0xcf,0x9d,0xaf,0x8e,0xe7,0xfe,0x5, 0xc7,0x8c,0x53,0x14,0x83, +0xf0,0x0, 0x78,0x7, 0xf0,0x0, 0x78,0x85,0xf0,0x0, 0x79,0x6, 0xf0,0x0, 0x79,0x88, +0xf0,0x0, 0x7a,0x4, 0xf0,0x0, 0x7a,0x83,0xf0,0x0, 0x7b,0x2, 0xf0,0x0, 0x7b,0x81, +0xe0,0x1, 0xda,0xa1,0x3f,0xe8,0xe2,0x1, 0xc7,0xff,0xe2,0x0, 0xcf,0x9e,0xf0,0x0, +0x60,0x7, 0xf0,0x0, 0x60,0x85,0xf0,0x0, 0x61,0x6, 0xf0,0x0, 0x61,0x88,0xf0,0x0, +0x62,0x4, 0xf0,0x0, 0x62,0x83,0xf0,0x0, 0x63,0x2, 0xf0,0x0, 0x63,0x81,0xe0,0x2, +0x2, 0x84,0x3f,0xe8,0xe2,0x1, 0xc7,0xff,0xe2,0x0, 0xcf,0x8e,0x3f,0x6f,0xe0,0x2, +0x5, 0x85,0x3f,0xee,0xe2,0x1, 0xc7,0xff,0x3f,0xf5,0x5, 0x85,0xf0,0xf, 0x39,0x12, +0xc2,0x81,0xaa,0x8f,0xea,0x13,0x7f,0xfc,0x39,0x1f,0x15,0x81,0xad,0x82,0xe7,0xfe, +0x0, 0x84,0xf0,0xc, 0x3b,0x12,0x8e,0xc, 0x26,0x1c,0x14,0x94,0xe1,0x2c,0x3f,0x19, +0xe0,0x1, 0x2e,0x1b,0xe1,0x2c,0x3e,0x99,0xe0,0x1, 0x2e,0x17,0x14,0x89,0xe1,0x2c, +0x3f,0x19,0xe0,0x1, 0x2e,0x6c,0xe1,0x2c,0x3e,0x99,0xe0,0x1, 0x2e,0x68,0x15,0x84, +0xe1,0x2e,0x3f,0x1b,0xe0,0x1, 0x2f,0x69,0xe1,0x2d,0x3e,0x9b,0xe0,0x1, 0x2e,0xe5, +0x66,0x8a,0xe0,0xe, 0x3e,0x92,0x8f,0xe, 0xe2,0x0, 0xcf,0x1, 0x5, 0xbc,0x17,0xff, +0x3f,0x9e,0xe2,0x1, 0xc7,0xff,0x3f,0x6f,0x3e,0x92,0xaf,0x8d,0x3c,0xee,0xf0,0x0, +0x78,0x7, 0xf0,0x0, 0x78,0x85,0xf0,0x0, 0x79,0x6, 0xf0,0x0, 0x79,0x88,0xf0,0x0, +0x7a,0x4, 0xf0,0x0, 0x7a,0x83,0xf0,0x0, 0x7b,0x2, 0xf0,0x0, 0x7b,0x81,0x7f,0x9, +0xe0,0x1, 0xd9,0xee,0xf0,0x4, 0x3d,0x18,0x67,0x9, 0xe3,0xff,0xc2,0x7f,0xb2,0x3, +0x3c,0xee,0xe8,0x40,0x3c,0x6e,0xe0,0x1, 0xd9,0xe3,0xf0,0xf, 0x3d,0x98,0xe3,0xff, +0xc7,0xff,0xf0,0x0, 0x63,0x81,0xf0,0x0, 0x63,0x2, 0xf0,0x0, 0x62,0x83,0xf0,0x0, +0x62,0x4, 0xf0,0x0, 0x61,0x88,0xf0,0x0, 0x61,0x6, 0xf0,0x0, 0x60,0x85,0xf0,0x0, +0x60,0x7, 0xb7,0x93,0xe8,0x6, 0x3b,0x14,0xf0,0xd, 0x3b,0x92,0xf0,0xe, 0x3b,0x12, +0x16,0x1, 0xe2,0x0, 0xca,0x8e,0xae,0xd, 0xf0,0x0, 0xa8,0xe, 0xb2,0x6, 0xb7,0x96, +0x5, 0x95,0xf0,0xf, 0x39,0x12,0x17,0x5, 0xaf,0xf, 0xe0,0x2, 0x1f,0x8e,0x39,0x1f, +0xf0,0x0, 0xa8,0x2, 0xe7,0xfd,0x0, 0x89,0xe2,0x0, 0xcd,0x2, 0x5, 0x8f,0xf0,0xa, +0x3b,0x92,0x88,0x8a,0x15,0x9, 0xe7,0xfd,0x0, 0xf5,0xe2,0x0, 0xca,0x81,0x5, 0xee, +0xf0,0xf, 0x39,0x12,0xc2,0xff,0xaa,0x8f,0x0, 0xe9,0xe0,0x0, 0x1, 0x4e,0xf0,0x0, +0x26,0xbe,0xf0,0xa, 0x3b,0x92,0x88,0x8a,0xe7,0xfd,0x0, 0xe6,0x14,0x9f,0xe1,0x2a, +0x3c,0xae,0xe7,0xfe,0x25,0x2, 0xe1,0x2a,0x3c,0xad,0xe7,0xfd,0x25,0x7e,0x16,0x80, +0x3f,0x6d,0xe7,0xfe,0x0, 0x80,0x8f,0x53,0xe2,0x0, 0xcf,0x3c,0x5, 0xaf,0xea,0x13, +0x7e,0xf0,0x17,0xb, 0x3f,0xee,0xe7,0xff,0x0, 0x81,0xdd,0xef,0xea,0x14,0x7f,0x8, +0xea,0x13,0x7f,0xfc,0x3e,0x6e,0x3e,0xef,0xe1,0x80,0xb9,0x1c,0xea,0x13,0x7c,0x70, +0xe1,0x80,0xb9,0x1d,0x15,0xa, 0xb9,0x1e,0x14,0x81,0xb9,0x1f,0xb1,0x2c,0xb1,0x2d, +0xe0,0x1, 0xda,0xa, 0xea,0x13,0x7f,0xe4,0x3f,0x6f,0xe1,0x80,0xb9,0x1e,0xb9,0x1f, +0xb1,0x2e,0xc0,0x28,0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0xf0,0x9, 0x39,0x12,0xf0,0xa, +0x3b,0x92,0x8a,0x89,0x88,0x8a,0xe7,0xfd,0x0, 0xb5,0x66,0x8a,0x15,0x81,0x3e,0x92, +0xad,0x8d,0xe7,0xff,0x0, 0x89,0x8d,0x53,0xe2,0x0, 0xcd,0x3c,0xe7,0xff,0x5, 0xb1, +0xf0,0xa, 0x3b,0x92,0x88,0x8a,0x20,0xa6,0xf7,0xfd,0x2e,0x96,0xf0,0xa, 0x39,0x12, +0x8a,0x8a,0xe7,0xfd,0x0, 0xb8,0x14,0x1e,0x3f,0xe8,0xe2,0x1, 0xc7,0xff,0xe2,0x0, +0xcf,0x8e,0x3f,0x6f,0xe7,0xfd,0x2, 0xff,0x17,0xf, 0x3f,0xee,0xe2,0x1, 0xc7,0xff, +0x3f,0xf5,0xe7,0xfe,0x5, 0x81,0xe7,0xfd,0x0, 0xfb,0xea,0x13,0x7e,0xf0,0x17,0x5, +0x3f,0xee,0xe7,0xfe,0x0, 0xab,0xea,0x13,0x7e,0xf0,0x17,0x2, 0x3f,0xee,0xe7,0xfe, +0x0, 0xa5,0x15,0x12,0xe7,0xfc,0x0, 0xee,0xea,0x13,0x7c,0xba,0xf0,0x0, 0xae,0x89, +0xe7,0xfc,0x0, 0xae,0xe0,0x2, 0x1f,0x40,0xe0,0x2, 0x1f,0xc8,0xe0,0xa, 0x8f,0xe, +0xe2,0x0, 0xcf,0x1, 0xe0,0x0, 0x1, 0x77,0x8f,0x8f,0xe2,0x0, 0xcf,0x82,0xe0,0x0, +0x1, 0x75,0xea,0x13,0x7f,0xb8,0x8f,0xf, 0x27,0x37,0xe2,0x0, 0xcf,0x1, 0xe0,0x1, +0x1e,0xc7,0xe0,0x1, 0x1, 0xb, 0xe0,0x2, 0x1f,0xd1,0x17,0x0, 0xaf,0xf, 0x9f,0x8d, +0xe2,0x1, 0xcf,0x96,0xe0,0x0, 0x5, 0xce,0xea,0x13,0x7f,0x36,0x87,0x8e,0xc7,0x81, +0xe2,0x1, 0xc7,0xff,0xe2,0x0, 0xcf,0x81,0xaf,0x8e,0xe0,0x1, 0x5, 0x97,0xe0,0x2, +0x1e,0xda,0x16,0x28,0xe2,0x0, 0xcf,0x83,0xae,0xd, 0xe0,0x0, 0x5, 0xed,0x17,0x80, +0xe0,0x2, 0x1e,0x4e,0xe0,0x2, 0x1d,0x4d,0xaf,0x8e,0xe0,0x0, 0x15,0xf7,0x17,0x1e, +0xaf,0xc, 0x17,0xa8,0x17,0x1e,0xad,0x8a,0x27,0x3, 0xc7,0x7f,0xaf,0xc, 0x27,0xb9, +0xc7,0xff,0xaf,0x8d,0x38,0x82,0xe0,0x2, 0x1e,0xdd,0x8e,0x8d,0xe0,0x0, 0x26,0xd0, +0xe0,0x1, 0x1e,0xc7,0x9e,0xd, 0xe2,0x3, 0xce,0x10,0xe0,0x0, 0x5, 0xe1,0xea,0x13, +0x7d,0xb7,0x86,0xb, 0xc6,0x1, 0xe2,0x1, 0xc6,0x7f,0xe2,0x0, 0xce,0x1, 0xae,0xb, +0xe7,0xff,0x5, 0xbb,0xea,0x13,0x7e,0x39,0xaf,0xc, 0x17,0x1, 0xaf,0xf, 0x17,0x4, +0xe0,0x2, 0x1f,0xd1,0xaf,0xf, 0x9f,0x8d,0xe2,0x1, 0xcf,0x96,0xe7,0xff,0x2, 0xb6, +0xea,0x13,0x7f,0xb6,0xe0,0x2, 0x1e,0xda,0x17,0x0, 0xaf,0xf, 0x8f,0x8d,0xe0,0x2, +0x1d,0x4d,0xe0,0x2, 0x1e,0x4e,0x8f,0xa, 0xe0,0x0, 0x2f,0x4d,0x8f,0xc, 0x0, 0xc5, +0x38,0x82,0x8f,0xf, 0xe7,0xff,0x2f,0xa, 0xea,0x13,0x7f,0x36,0x17,0x80,0xaf,0x8e, +0xea,0x13,0x7d,0xb9,0xe0,0x2, 0x1f,0x51,0xea,0x13,0x7e,0x38,0xaf,0x8e,0xea,0x13, +0x7e,0xb7,0xe0,0x2, 0x1f,0x4d,0xaf,0x8e,0xe0,0x2, 0x1f,0x4e,0xaf,0x8e,0xe0,0x2, +0x1f,0x5a,0xaf,0x8b,0xaf,0x8c,0xaf,0x8d,0xaf,0x8e,0x38,0x82,0xe0,0x1, 0x1e,0xc7, +0xe7,0xfe,0x0, 0xfb,0x17,0xa8,0x0, 0xd4,0x9f,0xd, 0xe2,0x2, 0xcf,0x2b,0x2, 0x94, +0xea,0x13,0x7e,0x39,0x87,0xc, 0xc7,0x1, 0xe2,0x1, 0xc7,0x7f,0xe2,0x0, 0xcf,0x32, +0x5, 0x91,0x17,0x0, 0xaf,0xc, 0xaf,0xf, 0xe7,0xfe,0x0, 0xe7,0xea,0x13,0x7f,0xb7, +0xaf,0xf, 0xe7,0xfe,0x0, 0xe2,0xea,0x13,0x7f,0xb9,0x17,0x0, 0xaf,0xf, 0xe7,0xff, +0x0, 0xa8,0xaf,0xc, 0xe7,0xff,0x0, 0xa5,0xe0,0x2, 0x1e,0xda,0x8f,0x8d,0xe7,0xff, +0x0, 0xb0,0x15,0xff,0x3d,0x9e,0xe2,0x1, 0xc5,0xff,0x8f,0xc, 0xad,0x8a,0xe7,0xfe, +0x0, 0xf5,0x8, 0xb1,0xe2,0x0, 0xcc,0x2, 0x1, 0x21,0xe2,0x0, 0xcc,0x3, 0x1, 0x16, +0xe2,0x0, 0xcc,0x1, 0x1, 0x2, 0x8, 0xe1,0xef,0xfc,0xdb,0x56,0xe0,0x2, 0x1f,0xd2, +0xac,0xf, 0xe0,0x2, 0x1f,0x84,0x24,0x20,0x17,0x0, 0xaf,0xf, 0x17,0xa, 0xe0,0x2, +0x1f,0x88,0xb7,0xf, 0x8, 0xa1,0xe7,0xfe,0x0, 0x97,0xef,0xff,0xd2,0x3f,0xef,0xff, +0xd1,0xab,0xdc,0xbb,0x8, 0xa1,0xe7,0xf2,0x0, 0xd7,0xe0,0x2, 0x1f,0xd0,0x17,0x0, +0xaf,0xf, 0xef,0xff,0xd1,0x5a,0xe0,0x2, 0x1f,0xc0,0xe0,0xa, 0x8f,0x8f,0x2f,0xdc, +0x8, 0xa1,0xe7,0xe1,0x0, 0xf1,0x8f,0xf, 0xe2,0x0, 0xcf,0x1, 0x1, 0xe4,0x0, 0xdd, +0xe0,0x1, 0x1f,0x8e,0x8f,0x8f,0x27,0x9b,0x16,0x7f,0x3e,0x1f,0xe2,0x1, 0xc6,0x7f, +0xc6,0x1, 0xe4,0x0, 0xc6,0xa, 0x16,0x83,0x3e,0x18,0xe0,0xff,0x17,0x7f,0x17,0x80, +0xae,0x88,0xc4,0xa, 0x3c,0x7c,0xe0,0x41,0xae,0x98,0xe0,0x40,0xb7,0x48,0xe0,0x40, +0xb7,0x38,0xe0,0x40,0xaf,0xc8,0xe0,0x40,0xaf,0xa8,0x1, 0xf3,0x38,0x82,0x0, 0x0, +0xe0,0x1, 0x1f,0x8e,0xc4,0xff,0x8e,0xf, 0xe0,0x2, 0x1f,0xdf,0x8e,0x8f,0x17,0x80, +0xe0,0x0, 0x26,0x41,0xf0,0x2, 0x1b,0xde,0xf0,0x40,0x3a,0x6f,0xf0,0x0, 0x12,0x82, +0xf0,0x0, 0x13,0x3, 0x15,0xfd,0x15,0x1, 0x0, 0x8f,0x8f,0x78,0x27,0x17,0xf0,0x0, +0xab,0x8, 0x17,0x3, 0xc7,0x81,0xe2,0x1, 0xc7,0xff,0xaf,0x18,0x3f,0xfc,0xc4,0xa, +0xe0,0x40,0xaf,0x38,0x1, 0x27,0xe0,0x80,0x8f,0x19,0xe2,0x0, 0xcf,0x1, 0x1, 0x11, +0x87,0x18,0x3f,0x5b,0xe2,0x1, 0xc7,0x7d,0x2f,0x69,0x17,0xa, 0x3f,0x3d,0xad,0x8, +0xe8,0xe, 0x3f,0x17,0xc6,0x81,0xaf,0xce,0xe2,0x1, 0xc6,0xff,0x8f,0x8, 0x0, 0xe3, +0x8f,0x18,0xe2,0x0, 0xcf,0x1, 0x1, 0xf, 0xe2,0x0, 0xcf,0x3, 0x1, 0xe, 0x2f,0x5, +0xf0,0x0, 0xaa,0x88,0x17,0x2, 0x0, 0xd7,0xe2,0x0, 0xcf,0x2, 0x1, 0xf0,0xaf,0x8, +0x0, 0xd2,0x38,0x82,0xf0,0x0, 0xab,0x18,0x17,0x0, 0xf0,0x0, 0xaa,0x8, 0x0, 0xcb, +0x8, 0xb6,0xc0,0x4c,0xe0,0x1, 0x1a,0x8e,0xe0,0x2, 0x1f,0xfd,0x8d,0x5, 0xf0,0x0, +0x8a,0x6f,0xf0,0x0, 0x89,0x7f,0xe0,0x3, 0x25,0x6b,0x14,0x7f,0x3c,0x1a,0xe2,0x1, +0xc4,0x7f,0xc4,0x1, 0xe0,0x2, 0x19,0x5e,0xe4,0x0, 0xc4,0xa, 0x14,0x9c,0x15,0x84, +0x16,0x10,0x3f,0xe2,0x3c,0x90,0x3d,0x90,0x3e,0x10,0x3c,0x12,0x16,0xff,0x17,0x0, +0xae,0xcf,0xc7,0x8a,0x3f,0xf8,0xe1,0x80,0xae,0x99,0xe1,0x80,0xaf,0x1b,0xe1,0x80, +0xaf,0x1c,0x1, 0xf7,0xe0,0x2, 0x1a,0x5f,0xea,0x23,0x79,0x94,0xf0,0x0, 0x8b,0x4, +0xf0,0x0, 0x2b,0x22,0x8f,0x83,0x27,0x97,0xe0,0x3, 0x25,0x50,0x17,0x7f,0x3f,0x1a, +0xe2,0x1, 0xc7,0x7f,0xc7,0x1, 0xe4,0x0, 0xc7,0xa, 0xe0,0x2, 0x1f,0xde,0x39,0x1e, +0xe0,0xff,0x17,0x7f,0xe0,0x12,0xb7,0x7f,0xc7,0x8a,0x39,0x7f,0xe0,0x12,0xb7,0x3f, +0x1, 0xfa,0x8f,0x84,0xe0,0x2, 0x1c,0x57,0x14,0x84,0x3c,0x90,0xaf,0x83,0xdf,0x61, +0xc0,0x34,0xb, 0x61,0xf0,0x0, 0x8b,0x83,0xf0,0x2, 0x23,0x8f,0xe0,0x3, 0x25,0x31, +0x16,0xff,0x3e,0x9a,0xe2,0x1, 0xc6,0xff,0xe0,0x1, 0x1f,0x7f,0xf0,0x1, 0x1a,0xe5, +0xe0,0x26,0xc6,0xb6,0x36,0xa2,0x3e,0x9e,0xe8,0x40,0x3f,0xe5,0xe0,0xff,0x17,0x7f, +0xb7,0xf, 0xc7,0x84,0x3f,0xfd,0xe0,0x40,0xb7,0x1f,0xe0,0x2, 0xb7,0x2f,0xe0,0x2, +0xb7,0x3f,0x1, 0xf7,0x17,0x81,0xf0,0x13,0x32,0x26,0xf0,0x14,0x31,0x26,0xf9,0x31, +0x3b,0x96,0xf1,0x2e,0x3b,0x9f,0xf1,0xff,0xc1,0xdf,0xf1,0xff,0xc2,0x5f,0x14,0x0, +0xf0,0x11,0x38,0xde,0xf8,0x43,0x39,0x93,0xf8,0x43,0x3a,0x14,0xf0,0x40,0x39,0x6f, +0xf0,0x40,0x38,0x68,0x25,0x19,0x17,0x80,0x16,0x10,0xe0,0x2, 0x1f,0x57,0x3e,0x10, +0x3e,0xef,0x9d,0x9e,0xe4,0xd, 0x36,0xc8,0xe2,0xff,0xcd,0xff,0x1, 0x4, 0x8c,0x8c, +0xe0,0x1, 0x24,0xec,0xc7,0x81,0xe4,0xd, 0x37,0xa8,0xe4,0xb, 0x36,0xc8,0x3d,0x7b, +0xc7,0xa, 0xc6,0x1, 0x2, 0xef,0xc4,0x1, 0x3f,0xe8,0xe2,0x1, 0xc7,0xff,0xf0,0x40, +0x3b,0xff,0xf0,0x0, 0xc2,0x84,0x2, 0xdf,0xe0,0x0, 0x25,0x40,0x14,0x7f,0x3c,0x1a, +0xe2,0x1, 0xc4,0x7f,0xc4,0x1, 0x14,0x8a,0x3c,0xb8,0xea,0x23,0x7e,0x80,0xea,0x22, +0x7f,0x6c,0xe0,0x2, 0x1f,0xde,0x3c,0x92,0xe0,0x12,0x95,0xff,0xe0,0x13,0x96,0xf, +0xc7,0x8a,0x3f,0xf9,0xe1,0x80,0xb5,0x9d,0xe1,0x80,0xb6,0x1e,0x1, 0xf6,0x15,0x9c, +0x3d,0x90,0x3c,0x1b,0x10,0x81,0x13,0x0, 0x0, 0x84,0xc5,0x81,0x3d,0xf8,0x1, 0x1d, +0x8f,0x8b,0xe2,0x1, 0xcf,0xff,0x1, 0xfa,0x4f,0x10,0x16,0x91,0x3e,0x90,0x17,0x81, +0xe0,0x2, 0x27,0x29,0x3f,0x6f,0xe2,0x1, 0xc7,0x7f,0x3f,0x7a,0x3c,0xef,0x3, 0xee, +0xe1,0x80,0x8e,0x1d,0xc7,0x81,0x2e,0x77,0xaf,0xb, 0xe2,0x0, 0x7e,0x90,0xc5,0x81, +0x3c,0x9d,0x3d,0xf8,0xa8,0x89,0x1, 0xe5,0x15,0xff,0xe8,0xb, 0x3d,0x96,0xe2,0x1, +0xc5,0xff,0xc5,0x81,0xe4,0x0, 0xc5,0x8a,0xe0,0x2, 0x1f,0xde,0xe0,0x1, 0x1f,0x66, +0x3d,0x92,0x96,0xf, 0x96,0x9f,0xc7,0x8a,0xb6,0xe, 0x3f,0xfb,0xc7,0x4, 0xe0,0x40, +0xb6,0x9e,0x1, 0xf8,0xe0,0x1, 0x1e,0xe0,0xe0,0x1, 0x1f,0x5f,0xe0,0x1, 0x1f,0xf9, +0x36,0xc1,0x37,0xc1,0x37,0x41,0xe2,0x0, 0x7c,0x28,0x7f,0x8d,0x7e,0x8b,0x7f,0xc, +0xf0,0x0, 0x6b,0xa8,0xf0,0x0, 0x6b,0x29,0xe0,0x1, 0xd2,0x36,0x8f,0x84,0x8c,0x5, +0x27,0xae,0x15,0x7f,0xe0,0x1, 0x1f,0xf8,0x3d,0x18,0xe2,0x1, 0xc5,0x7f,0xe0,0x4d, +0xc5,0x12,0x9a,0x8f,0xe0,0x1, 0x1f,0xff,0x35,0x21,0x14,0x80,0xf0,0x2, 0x1b,0xd7, +0x3d,0x1f,0xf0,0x0, 0x13,0x1, 0x38,0xe9,0x24,0x14,0x3d,0xe9,0xe2,0x1, 0xc5,0xff, +0x3a,0xfb,0xe0,0x1, 0x1f,0x78,0x17,0x81,0x1, 0x88,0xe0,0x1, 0x0, 0x9d,0xe0,0x80, +0x9e,0x9e,0x3e,0xfb,0xe0,0x1, 0x1, 0x1a,0x3d,0x7e,0x3e,0x6f,0xc7,0x81,0x1, 0xf8, +0xc4,0x81,0x8f,0x84,0xe2,0x1, 0xc4,0xff,0x3f,0xf9,0x2, 0xe7,0xe7,0xfe,0x24,0x3, +0x16,0xff,0x3e,0x98,0xe2,0x1, 0xc6,0xff,0x17,0x4, 0x3f,0x10,0xc6,0x81,0xe0,0x2, +0x1f,0xde,0x3e,0x9e,0xe0,0xff,0x15,0xff,0xe1,0x80,0x8e,0x1e,0xe2,0x0, 0xce,0x1, +0x1, 0x5, 0xe0,0x12,0xb5,0xff,0xe0,0x13,0xb5,0x8f,0x3e,0xfe,0xc7,0x8a,0x1, 0xf5, +0x8f,0x84,0xe7,0xfd,0x0, 0xe9,0xe0,0x2, 0x1c,0xd7,0x15,0x1, 0x17,0x8a,0xe8,0xf, +0x3f,0xb7,0x16,0x1, 0xe0,0xe, 0x39,0x1f,0x96,0x8e,0x95,0x9e,0x3f,0x99,0xb6,0x9f, +0xe8,0xc, 0x3e,0x17,0xb5,0xaf,0xe2,0x0, 0x7e,0x84,0xe8,0xd, 0x3e,0x97,0x8f,0x84, +0xf0,0x0, 0xab,0xce,0xf0,0x40,0x3b,0xec,0xf2,0x1, 0xc3,0xff,0xe8,0x40,0x3f,0xf7, +0xad,0xd, 0x2, 0xe5,0xe7,0xfd,0x0, 0xc8,0xf0,0x0, 0x28,0x9c,0x97,0x2e,0xe8,0x0, +0xb5,0x85,0xe8,0x0, 0xb7,0x15,0xe2,0x0, 0x7f,0x1c,0xe2,0x0, 0x7e,0x10,0x3f,0x18, +0x3f,0x9c,0xc4,0x1, 0xf0,0x0, 0xa9,0xf, 0x3f,0xe8,0xe2,0x1, 0xc7,0xff,0xf0,0x40, +0x3b,0xff,0xae,0x8e,0xf0,0x0, 0xc2,0x84,0xe7,0xfd,0x2, 0xee,0xe7,0xfe,0x0, 0x8e, +0xea,0x23,0x7e,0x0, 0xe0,0x6, 0x37,0xa1,0x3e,0x16,0x98,0x8c,0xe2,0xff,0xc8,0xff, +0x1, 0x5e,0xea,0x22,0x7c,0xec,0x9e,0x2e,0xe0,0xe, 0x35,0xa1,0x3c,0x96,0x3f,0x21, +0x95,0x89,0xe0,0x43,0x3f,0x1e,0x36,0x21,0xe2,0x0, 0xcf,0x0, 0x3e,0x2b,0xe0,0x43, +0x3e,0x1c,0x3d,0xee,0xe0,0x0, 0x4, 0x43,0xe2,0x0, 0xce,0x0, 0xe0,0x43,0x3d,0x9b, +0x3f,0x6c,0x4, 0x39,0xf0,0x40,0x39,0xfb,0xe0,0x43,0x3f,0x1e,0xe8,0x6b,0x3d,0x23, +0xf0,0x40,0x3a,0x7e,0xe8,0x0, 0xb5,0x85,0xe8,0x6e,0x3d,0x24,0xe8,0x0, 0xb7,0x15, +0xe7,0xff,0x0, 0xbb,0xe0,0x40,0x3e,0x61,0xe2,0x0, 0x7f,0x9c,0x3e,0x1f,0x8f,0x8c, +0xe2,0x1, 0xcf,0xff,0xe7,0xfe,0x1, 0x66,0x17,0xa, 0x3f,0x39,0x16,0x8a,0x3f,0x12, +0x3e,0xbf,0x96,0x1e,0x95,0x8e,0xaf,0xce,0xe8,0xe, 0x3e,0x97,0xe2,0x0, 0x7e,0x84, +0x3f,0x9d,0xb5,0x9e,0xc4,0x81,0xb6,0x2e,0xe2,0x1, 0xc4,0xff,0xf0,0x0, 0xab,0xf, +0x8f,0x84,0x3f,0xf9,0xe7,0xfe,0x2, 0xba,0xe7,0xfe,0x0, 0xd2,0xe0,0x2, 0x19,0x5e, +0xe7,0xfc,0x0, 0xb2,0xe8,0x40,0x3f,0x60,0x0, 0xc6,0xe8,0x40,0x3d,0xe0,0xe7,0xff, +0x0, 0xbd,0x3c,0xe6,0xe7,0xfd,0x0, 0xe2,0x3f,0xea,0xe7,0xfc,0x0, 0xc5,0xf0,0x1, +0x1a,0xe5,0xe7,0xfc,0x0, 0xe9,0x8, 0xb3,0x3f,0x83,0xef,0xfa,0xdf,0xa, 0x14,0x0, +0xef,0xfa,0xde,0xe6,0xef,0xfb,0xd2,0x56,0xef,0xfa,0xdf,0x46,0xef,0xfa,0xd8,0x96, +0xef,0xfa,0xd9,0xf2,0xef,0xfa,0xdf,0x71,0xea,0x23,0x7f,0x18,0x16,0x80,0xea,0x23, +0x7f,0x96,0xb6,0x8e,0xe0,0x13,0x17,0x44,0xb7,0xf, 0xef,0xfa,0xdf,0x20,0xe0,0x2, +0x19,0xe6,0xef,0xfb,0xd1,0x2a,0xef,0xfa,0xdf,0x40,0xef,0xfa,0xdf,0x93,0x17,0x83, +0xaf,0x83,0xef,0xfd,0xd8,0x6a,0xef,0xfa,0xdf,0xbc,0xef,0xfb,0xd2,0xe1,0xef,0xfb, +0xd1,0xda,0x3b,0x0, 0xe0,0x1, 0x19,0x42,0xef,0xfa,0xda,0x2a,0xe0,0xe, 0x8c,0xa2, +0xe0,0xe, 0x8c,0x12,0xe0,0x1, 0x15,0x78,0xe0,0x0, 0xdf,0xa0,0x87,0x83,0xe0,0x10, +0x8f,0x72,0xe2,0x0, 0xc7,0x81,0x3f,0x7f,0x1, 0x11,0xe0,0xe, 0x8d,0x82,0xe0,0xd, +0x8d,0x62,0xe0,0xd, 0x8c,0xf2,0xe0,0xd, 0x8c,0x52,0x16,0x18,0xe0,0x0, 0xdf,0xa6, +0xe0,0x3, 0x1f,0xb4,0x17,0x0, 0xaf,0xf, 0x9, 0xe1,0xe0,0xd, 0x8d,0xf2,0xe0,0xd, +0x8d,0x52,0xe0,0xe, 0x8c,0x82,0xe0,0xd, 0x8c,0x62,0x16,0x18,0xe0,0x0, 0xdf,0x96, +0xe0,0x3, 0x1f,0xb4,0x17,0x0, 0xaf,0xf, 0x9, 0xe1,0xea,0x23,0x7f,0x18,0xea,0x23, +0x7f,0x96,0x16,0x80,0xb6,0x8e,0xb4,0xf, 0x38,0x82,0xea,0x23,0x7f,0x18,0x97,0x8e, +0xea,0x23,0x7e,0x96,0xc7,0x81,0x9e,0x8d,0xe3,0xff,0xc7,0xff,0x3e,0xff,0xb7,0x8e, +0x2, 0x82,0x38,0x82,0xe7,0x5e,0x0, 0xe1,0xe0,0x2, 0x1f,0xdf,0xe0,0x2, 0x1e,0xde, +0x8f,0xf, 0xe2,0x0, 0xcf,0x1, 0x1, 0xd, 0xea,0x23,0x7f,0x32,0x16,0x0, 0xea,0x23, +0x7e,0xb3,0xeb,0xff,0x7f,0xd8,0xae,0xe, 0x17,0x1e,0xae,0xd, 0xaf,0xf, 0x38,0x82, +0xfa,0x23,0x7b,0x33,0xe8,0x0, 0x8f,0x86,0x2f,0x96,0xe0,0x19,0x9f,0x8d,0xe2,0x2, +0xcf,0x80,0xe0,0x6, 0x9f,0xbd,0xe0,0x1, 0x1, 0x17,0xe0,0x6, 0x9e,0x2d,0xea,0x23, +0x7d,0xb2,0x8f,0xb, 0xe2,0x0, 0xcf,0x1, 0x1, 0x36,0xea,0x23,0x7f,0x1c,0xb6,0xe, +0xb7,0x9e,0x38,0x82,0xe2,0x0, 0xcf,0x81,0x1, 0xf, 0xea,0x23,0x7d,0xb2,0x8f,0x8b, +0xe2,0x0, 0xcf,0x81,0xe0,0x1, 0x1, 0x69,0xea,0x23,0x7f,0x1c,0xe0,0x6, 0x9f,0xbd, +0xe0,0x6, 0x9e,0x2d,0x0, 0xed,0xe0,0x19,0x9f,0x8d,0xf0,0x6, 0x9a,0x3d,0xe2,0x2, +0xcf,0x81,0xf0,0x6, 0x99,0xad,0xe0,0x1, 0x1, 0x16,0xea,0x23,0x7d,0xb2,0x8f,0x8b, +0xe2,0x0, 0xcf,0x81,0xe0,0x1, 0x1, 0x6d,0xf2,0xa, 0xca,0x50,0xe0,0x1, 0x2, 0xd9, +0xeb,0xff,0x7c,0x58,0x17,0x81,0xaf,0x8b,0x17,0x1d,0x17,0x9d,0xaf,0x88,0xf0,0x40, +0x3b,0xee,0x0, 0x8b,0xeb,0xff,0x7c,0x58,0xf0,0x0, 0x8b,0x88,0xf0,0x40,0x3a,0x6f, +0xe8,0x40,0x3f,0x67,0xf0,0x40,0x39,0xec,0xe0,0x1, 0x1f,0xd5,0xe0,0x0, 0x14,0xc0, +0x3f,0x9e,0xea,0x23,0x7f,0x1c,0x8f,0x8f,0x9d,0xe, 0xf0,0x0, 0x9a,0x9e,0x3c,0xaf, +0xe0,0xc, 0x3d,0x3f,0xf0,0x12,0x39,0xb9,0xe8,0xf, 0x3f,0xb5,0xe8,0x9, 0x3c,0xb4, +0xe8,0xc, 0x3e,0x12,0x3f,0x99,0x36,0x46,0x37,0xc6,0xe3,0xff,0xc6,0x7f,0xe3,0xff, +0xc7,0xff,0x14,0x80,0xe8,0x0, 0xac,0x86,0xe0,0x6, 0xb6,0x2d,0xe0,0x6, 0xb7,0xbd, +0xf0,0x0, 0x2b,0x86,0xf0,0x0, 0xab,0x8b,0xe7,0xff,0x0, 0x9b,0xf0,0xa, 0x39,0xaa, +0xe0,0x43,0x3d,0x1a,0xe4,0xb, 0x35,0xf, 0xe2,0xd, 0x3d,0xca,0x3e,0xab,0xe0,0x43, +0x3e,0x9d,0x15,0x82,0xe0,0x2d,0x3e,0x9b,0x2e,0x90,0xf8,0xd, 0x3a,0x25,0xe0,0x43, +0x3e,0x9d,0xe4,0xa, 0x36,0x8f,0xe2,0xd, 0x3d,0x4d,0x3e,0xaa,0xe0,0x43,0x3e,0x9d, +0xe0,0x2d,0x3e,0x9b,0xe7,0xfe,0x26,0xfd,0xf1,0xff,0xc3,0xff,0xf0,0x0, 0xab,0x88, +0xe7,0xfe,0x0, 0xf7,0xe7,0xf5,0x16,0x2f,0x3e,0x1f,0xe2,0x0, 0xce,0x4e,0xe0,0x6, +0x9e,0x2d,0xe7,0xfe,0x2, 0xe6,0xe7,0xff,0x15,0xaf,0x3d,0x9c,0xe2,0x4, 0xcd,0xa4, +0xe7,0xfe,0x2, 0xdf,0xea,0x23,0x7d,0xb2,0x8c,0x8b,0xea,0x23,0x7d,0x28,0xeb,0xff, +0x7c,0x58,0xe8,0x0, 0xaf,0x6, 0xe2,0x0, 0xcc,0x81,0x17,0x1e,0xb6,0xa, 0xb7,0x9a, +0xaf,0x8, 0xe7,0xfe,0x1, 0xd4,0xf0,0x40,0x39,0xec,0xf0,0x40,0x3a,0x6f,0xe7,0xfe, +0x0, 0xfd,0xe7,0xf5,0x17,0xaf,0xe8,0xf, 0x3f,0x94,0xe2,0x0, 0xcf,0xce,0xe7,0xfe, +0x2, 0xe6,0xea,0x23,0x7f,0xa8,0xf0,0x0, 0x9b,0x8f,0x9c,0x1f,0xf8,0xb, 0x39,0xa7, +0xe0,0x43,0x3d,0x9b,0xe4,0xe, 0x35,0x8f,0xf0,0xc, 0x3a,0x28,0xe0,0x43,0x3e,0x1c, +0xe2,0xf, 0x3f,0x4b,0xe4,0x9, 0x36,0xf, 0x3f,0xae,0xe0,0x43,0x3f,0x9f,0xe2,0xe, +0x3c,0xcc,0xe0,0x0, 0x15,0x63,0x3f,0x29,0xe0,0x29,0x3d,0x2f,0xe0,0x43,0x3f,0x1e, +0x24,0xaf,0xe0,0x2a,0x3d,0x2e,0x25,0x2c,0x3f,0x9e,0xe2,0x1, 0xcf,0x95,0x2, 0x28, +0x35,0x82,0x36,0x2, 0xe8,0xb, 0x3d,0x97,0x3e,0x18,0xf0,0x40,0x39,0xeb,0xf0,0x40, +0x3a,0x6c,0xf3,0xff,0xc1,0xff,0xf3,0xff,0xc2,0x7f,0xf0,0x6, 0xb1,0xad,0xf0,0x6, +0xb2,0x3d,0xe7,0xfe,0x0, 0xac,0xeb,0xff,0x7c,0x58,0xf0,0x0, 0x8b,0x88,0xf0,0x6, +0x99,0xad,0xe8,0x40,0x3f,0x67,0xf0,0x6, 0x9a,0x3d,0xe7,0xfe,0x0, 0xbf,0xea,0x23, +0x7f,0x1c,0xe8,0x40,0x3f,0xe4,0xe8,0x40,0x3e,0x63,0xe7,0xfd,0x0, 0xfa,0xea,0x23, +0x7d,0xb2,0xeb,0xff,0x7c,0x58,0x17,0x81,0xaf,0x8b,0xe7,0xfe,0x0, 0x9f,0xeb,0xff, +0x7c,0x58,0xe7,0xfe,0x0, 0x9b,0xf0,0x2, 0x1b,0x5e,0xe4,0x0, 0xc5,0xa, 0xf0,0x1, +0x1a,0xd7,0xf0,0xe, 0x3b,0x1a,0xf0,0xd, 0x8b,0x8e,0xe8,0x0, 0x8e,0x85,0xe0,0xd, +0x87,0xae,0xe8,0x40,0x3e,0xf7,0xe4,0xf, 0x37,0xac,0xe0,0xd, 0x8f,0x1e,0xe4,0xf, +0x37,0xc8,0x5, 0x9a,0xe0,0x2, 0x1e,0xcf,0xe0,0x2, 0x1d,0xa6,0x8e,0x8d,0x26,0xa2, +0xe0,0x0, 0x1e,0x4f,0xe8,0xe, 0x3d,0x97,0xe8,0xf, 0x3e,0x17,0x8f,0xe, 0x8f,0x8f, +0x16,0x8a,0xe8,0xd, 0x3e,0xb7,0xe8,0xd, 0x3e,0x96,0xe0,0x2, 0xc6,0xac,0x8e,0x8d, +0xe2,0x0, 0xce,0x81,0x1, 0x31,0xe8,0x2, 0x8e,0xe5,0xe2,0x1, 0xce,0xff,0x1, 0x87, +0xe8,0xa, 0x3d,0x16,0xe0,0xd, 0x8f,0xa, 0xe1,0x2e,0x3f,0xd, 0xaf,0x8, 0xaf,0x89, +0x38,0x82,0xe8,0xc, 0x3d,0x97,0x8e,0x8c,0x2e,0xa9,0xaf,0xc, 0xe0,0x0, 0x1e,0x4f, +0xe8,0x14,0x3e,0x17,0xe8,0x0, 0x8e,0x84,0x26,0xb9,0xe0,0x13,0x3f,0xad,0xf8,0x43, +0x39,0x13,0xf2,0x0, 0xc9,0x0, 0xf8,0x41,0x39,0x42,0xe8,0x73,0x3d,0x22,0xf2,0x0, +0xc9,0xa0,0x5, 0x30,0x3f,0xfd,0x5, 0xa6,0x17,0x90,0x3f,0x9d,0xe2,0x1, 0xc7,0xff, +0xe8,0x0, 0xaf,0x84,0x0, 0xc6,0x16,0x80,0xe8,0xb, 0x3d,0x97,0xe8,0xc, 0x3e,0x17, +0x17,0x80,0xae,0x8b,0x3f,0x6f,0xae,0x8c,0x0, 0xc7,0xe0,0x14,0x3f,0x2d,0xf8,0x43, +0x39,0x94,0xf2,0x0, 0xc9,0x80,0xf8,0x41,0x39,0xc3,0xe8,0x74,0x3d,0x23,0xf2,0x0, +0xca,0xf, 0x5, 0x13,0x3f,0x7d,0x5, 0x94,0x17,0x1, 0x3f,0x1d,0xe2,0x1, 0xc7,0x7f, +0x0, 0xc5,0x17,0xf0,0x3f,0x9d,0xe2,0x1, 0xc7,0xff,0xe8,0x0, 0xaf,0x84,0xe7,0xff, +0x0, 0xa1,0x3f,0xed,0xe7,0xff,0x0, 0x9e,0x3f,0x6d,0xe7,0xff,0x0, 0xb9,0x17,0x7f, +0x3f,0x1d,0xe2,0x1, 0xc7,0x7f,0xaf,0xc, 0xe7,0xff,0x0, 0xb2,0xe0,0x2, 0x1e,0xde, +0xe0,0x19,0x9f,0x8d,0xe2,0x0, 0xcf,0x81,0x1, 0x1f,0xe0,0x2, 0x1f,0xcc,0x8f,0xf, +0x27,0x1a,0xe0,0x0, 0x1f,0xc5,0xe0,0x2, 0x1e,0x58,0x94,0xf, 0x94,0x9f,0x95,0x2f, +0x95,0xbf,0x97,0xcf,0xe0,0x6, 0xb4,0x2d,0xe2,0x0, 0xcf,0x3, 0xb4,0x9c,0xb5,0x2c, +0xb5,0xbc,0xb7,0xcc,0x1, 0x27,0xe2,0x0, 0xcf,0x1, 0x1, 0x2, 0x17,0x2, 0xe0,0x2, +0x1f,0xd7,0xaf,0xf, 0x38,0x82,0xe0,0x2, 0x1f,0xcb,0x87,0x8f,0xc7,0xff,0xe2,0x1, +0xc7,0xff,0xe2,0x0, 0xcf,0xba,0x2, 0xda,0xe0,0x0, 0x1f,0xc5,0xe0,0x2, 0x1f,0x58, +0x94,0x8f,0x95,0x1f,0x95,0xaf,0x96,0x3f,0xe0,0x2, 0x1c,0x4c,0x97,0xcf,0xe0,0x6, +0xb4,0xad,0xf0,0x0, 0x13,0x83,0xf0,0x0, 0xab,0x88,0xb5,0x1e,0xb5,0xae,0xb6,0x3e, +0xb7,0xce,0x17,0x0, 0xe0,0x2, 0x1f,0xd7,0xaf,0xf, 0x38,0x82,0x8, 0xb7,0xf8,0x0, +0xc, 0x3e,0xc0,0x5c,0xe0,0x2, 0x18,0xc0,0xe0,0x1, 0x1e,0xda,0x17,0x80,0xe0,0xa, +0x8f,0x1, 0x6f,0xa6,0x7c,0x8, 0x6f,0xa7,0xaf,0x9d,0xe0,0x4, 0x27,0x5a,0xe0,0x2, +0x1a,0xdc,0xf0,0x2, 0x1f,0x5e,0x7a,0x86,0xef,0xfc,0xd3,0xb8,0xe0,0x1, 0x1b,0xd7, +0xdf,0x9e,0x8a,0x7, 0xe0,0x0, 0x22,0x4a,0xf0,0x1, 0x1e,0x8e,0xfa,0x23,0x7c,0x38, +0xe8,0x0, 0x8c,0x8d,0xe0,0x2, 0x1e,0x5e,0xe0,0x2, 0x18,0xd7,0x16,0x80,0x0, 0x87, +0xc6,0x81,0x3f,0xed,0xe2,0x1, 0xc7,0xff,0x3f,0xf4,0x3, 0xbb,0xe0,0xd, 0x8f,0x8c, +0x15,0x8a,0x3f,0xf9,0xc6,0xa, 0x3d,0xbf,0x3, 0xf4,0xe0,0xa, 0x3d,0x91,0x8f,0xa, +0xe2,0x0, 0xcf,0x1, 0x1, 0xee,0xf0,0x2, 0x3c,0x1f,0x8f,0x2, 0x2f,0x6a,0xe0,0x1, +0x87,0xa, 0xc7,0x7f,0xe2,0x1, 0xc7,0x7f,0xe2,0x0, 0xcf,0x3a,0x2, 0xe2,0xea,0x23, +0x7e,0x34,0xe4,0x0, 0xc6,0x8a,0x14,0x83,0xac,0x82,0xe0,0x0, 0xc6,0xe4,0xaf,0x8c, +0xe8,0xd, 0x3e,0x9e,0xe0,0x0, 0x1e,0x45,0x3d,0x9c,0x94,0x9b,0x91,0xb, 0x90,0xab, +0x94,0x3b,0x96,0x4b,0xb4,0x9d,0x14,0x83,0xb1,0xd, 0xb0,0xad,0xb4,0x3d,0xb6,0x4d, +0x16,0x80,0xae,0x8a,0xe0,0x6, 0x0, 0xcd,0xfa,0x23,0x7c,0x38,0xf0,0x1, 0x1e,0x8e, +0xea,0x23,0x7f,0xb4,0x8f,0x8f,0xf0,0xd, 0x3c,0x1f,0x8c,0x8d,0xe0,0x6, 0x2c,0x98, +0xe0,0x2, 0x1e,0xd5,0xe0,0x2, 0x1f,0x54,0x8f,0x8d,0x7e,0x87,0x7f,0x5, 0xe0,0x4, +0x27,0x86,0xe0,0x2, 0x1e,0x4c,0x89,0xc, 0x7e,0x3, 0xe0,0x4, 0x29,0xe, 0xe0,0x0, +0x1f,0x1b,0xf0,0x0, 0x1c,0x98,0x8f,0x8e,0x15,0x3e,0xe2,0x0, 0xcf,0x80,0xe0,0x1, +0x1f,0xda,0xe0,0x1, 0x14,0xff,0xe0,0x79,0x39,0x2f,0xe8,0x40,0x3c,0x69,0xf0,0x0, +0x7c,0x82,0xe0,0x1, 0xd3,0x11,0xe0,0x4, 0x22,0x65,0x12,0x0, 0xf0,0x2, 0x1c,0xd7, +0xf0,0x0, 0x1d,0x17,0xf0,0x0, 0x7c,0x4, 0xf0,0x40,0x3e,0x64,0xf8,0x40,0x3c,0x6d, +0x39,0xe4,0x39,0x64,0xf8,0x40,0x3e,0xee,0xf0,0x0, 0x17,0xa, 0xf0,0x1e,0x3f,0x33, +0xe8,0x0, 0x8e,0x8, 0xf8,0xe, 0x3e,0x9e,0xe0,0xd, 0x8d,0xe, 0x3d,0x7c,0xe0,0x1, +0x3, 0x90,0x17,0x8f,0xe0,0x6, 0x35,0x22,0x3f,0xda,0xe4,0x0, 0xc7,0x8a,0xf0,0xd, +0x3d,0x16,0x8c,0xbd,0xe8,0xf, 0x3f,0x99,0x8a,0x8f,0x24,0xb8,0xe0,0x6, 0x9c,0x2e, +0x2c,0x4, 0xe0,0x6, 0x9f,0xbe,0x27,0xb2,0xe2,0x0, 0xcc,0x84,0x10,0xb8,0x2, 0x8d, +0x10,0xb0,0x1, 0xb, 0xe2,0x0, 0xcc,0x83,0x10,0xa0,0x1, 0x7, 0xe2,0x0, 0xcc,0x82, +0x10,0x98,0x17,0x90,0xe0,0x61,0x39,0xaf,0x26,0x1d,0xf0,0x2, 0x1b,0x98,0xe8,0x0, +0x87,0xc7,0xe2,0x0, 0xc7,0x8f,0x3f,0xfa,0xe0,0x2, 0x1, 0x6d,0xe0,0x2, 0x1e,0x98, +0x17,0x81,0x0, 0x89,0xe0,0x1, 0x87,0x6d,0xc6,0x8a,0xe2,0x0, 0xc7,0xf, 0x3f,0x7a, +0xe0,0x2, 0x1, 0x62,0x3f,0x6f,0xe2,0x1, 0xc7,0x7f,0x3e,0x7e,0x3d,0xef,0xc7,0x81, +0x2, 0xf2,0xf0,0xf, 0x3d,0x16,0xc4,0xff,0xac,0xbf,0x17,0xa, 0x3f,0x3a,0xf0,0xf, +0x3c,0x9e,0x8e,0x8f,0xe2,0x0, 0xce,0x81,0xe0,0x1, 0x1, 0x2, 0xe0,0x1, 0x2a,0x8c, +0x66,0x84,0x3e,0x9a,0x8e,0x8d,0xe0,0x1, 0x2e,0xdf,0x62,0x83,0x8e,0x85,0xe0,0x1, +0x2e,0xdb,0xf8,0xd, 0x3e,0x9e,0xe0,0x6, 0x9e,0xad,0xe2,0x0, 0xce,0x9e,0xe0,0x3, +0x2, 0x96,0xf8,0x9, 0x3e,0x9e,0xe0,0x6, 0x9e,0x39,0xe2,0x0, 0xce,0x13,0xe0,0x3, +0x5, 0x9b,0xe0,0x1, 0x18,0xaf,0xe0,0x1, 0x1a,0xae,0x8c,0x1, 0x8d,0x85,0x34,0x28, +0x3d,0xc8,0xc5,0xed,0x3d,0xfc,0xe0,0x3, 0x5, 0xf, 0xe0,0x2, 0x1d,0xfd,0xe0,0xd, +0x8c,0x39,0x8d,0xdb,0xe0,0xd, 0x8c,0xc9,0x3d,0xb8,0xe0,0x1, 0x18,0xf2,0x3d,0x99, +0xa0,0x81,0x35,0xa1,0x3d,0x91,0x95,0x8b,0xe2,0x1, 0xcd,0xc7,0xe0,0x6, 0x2, 0x4f, +0xe2,0x0, 0xce,0x9e,0xe0,0x6, 0x2, 0xbe,0x17,0x3, 0xaf,0xf, 0xaf,0x1f,0xc1,0x81, +0x8f,0x87,0xe2,0x1, 0xc1,0xff,0x3f,0xf3,0xe7,0xfe,0x2, 0xe0,0xe0,0x2, 0x1f,0x40, +0xe0,0x2, 0x1e,0x4a,0xe0,0xa, 0x8f,0x8e,0xf0,0x0, 0x63,0x82,0x86,0xc, 0xe2,0x0, +0xcf,0x81,0xe8,0x0, 0xa9,0x17,0xf8,0x40,0x3e,0xe8,0xe8,0x0, 0xae,0x7, 0xe0,0x4, +0x1, 0x71,0xe0,0x3, 0x22,0x2d,0x62,0x88,0x11,0x1, 0xe0,0x5, 0x2a,0xaa,0x66,0x5, +0x8f,0x8c,0xe0,0x2, 0x2f,0xaf,0xe8,0x0, 0x89,0x8d,0x67,0x7, 0xe4,0x0, 0xc1,0x8a, +0xf0,0x0, 0x63,0x85,0x62,0x86,0xe0,0x2, 0x1c,0xd8,0xe0,0x2, 0x1c,0x18,0x17,0x80, +0x3d,0x63,0xaf,0x8e,0xe8,0x0, 0xaf,0x87,0xaf,0x85,0xe0,0x1, 0xd1,0xf3,0xe0,0x3, +0x22,0x33,0x3c,0x62,0xc0,0x24,0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0x66,0x84,0x3e,0x9a, +0x8e,0x8d,0x2e,0x87,0xf0,0x0, 0x63,0x83,0xe8,0x0, 0x8e,0x87,0xe0,0x2, 0x26,0x93, +0xe0,0x0, 0x22,0xda,0xe2,0x0, 0xca,0x83,0xe7,0xff,0x1, 0x33,0xe2,0x0, 0xca,0x81, +0xf8,0xf, 0x3e,0x9e,0xe0,0x6, 0x9b,0x2f,0xf0,0x6, 0x9d,0xbf,0xe0,0x1, 0x1, 0x18, +0x14,0xa7,0x14,0x26,0x3d,0xe2,0x3d,0x63,0x3c,0x90,0x3c,0x10,0x7f,0x81,0xdd,0x84, +0x67,0x81,0xf2,0x1f,0xc5,0xff,0xe0,0xd, 0x8f,0x8f,0xe2,0x1f,0xc3,0x7f,0xe0,0xe, +0x37,0xac,0xe2,0x1, 0xcf,0xff,0xf0,0x1b,0x3d,0x9e,0xf3,0xff,0xc5,0xff,0xe0,0x0, +0x1, 0x79,0xe4,0x5, 0x32,0xae,0xe4,0x5, 0x32,0xc0,0xf0,0x0, 0x13,0x81,0xf0,0x17, +0x3b,0x92,0xe8,0x40,0x39,0x67,0xe2,0x1, 0xc1,0x7f,0xc2,0x1, 0x3b,0x15,0xe2,0x1, +0xc2,0x7f,0xe3,0xff,0xc3,0x7f,0x17,0x86,0xe8,0xf, 0x3f,0xbc,0x66,0x82,0xf0,0xe, +0x35,0xc8,0x3f,0x9d,0xaf,0x4f,0xe0,0xd, 0x33,0x48,0x47,0x26,0xae,0xaf,0xc1,0x81, +0xaf,0x6f,0xe2,0x1, 0xc1,0xff,0x47,0x27,0xab,0x3f,0xf0,0x0, 0xc6,0x1, 0xf0,0x0, +0xad,0xdf,0xf2,0x1, 0xc6,0x7f,0xaf,0x7f,0x8f,0x87,0x3f,0xf3,0xe7,0xfd,0x2, 0xc6, +0xe7,0xfe,0x0, 0xe6,0xf8,0xf, 0x3e,0x9e,0xe0,0x6, 0x9b,0x2f,0xf0,0x6, 0x9d,0xbf, +0x14,0xa7,0x14,0x26,0x3d,0xe2,0x3d,0x63,0x3c,0x90,0x3c,0x10,0xdd,0x35,0xf8,0x1e, +0x3f,0x1d,0xe8,0xd, 0x8f,0x8e,0xf2,0x1f,0xc5,0xff,0xe0,0xe, 0x37,0xac,0xe2,0x1, +0xcf,0xff,0xf0,0x1b,0x3d,0x9e,0xe2,0x1f,0xc3,0x7f,0xf3,0xff,0xc5,0xff,0x1, 0x29, +0x12,0x80,0xe7,0xff,0x0, 0xb4,0x15,0x80,0xe4,0x0, 0xc5,0x8a,0xe0,0x2, 0x1e,0x18, +0x3d,0x9c,0x9b,0xb, 0xf0,0x0, 0x9d,0x9b,0x14,0xa7,0x14,0x26,0x3d,0xe2,0x3d,0x63, +0x3c,0x90,0x3c,0x10,0xef,0xff,0xdd,0x11,0xf8,0x1e,0x3f,0x1d,0xe8,0xd, 0x8f,0x8e, +0xf2,0x1f,0xc5,0xff,0xe0,0xe, 0x37,0xac,0xe2,0x1, 0xcf,0xff,0xf0,0x1b,0x3d,0x9e, +0xe2,0x1f,0xc3,0x7f,0xf3,0xff,0xc5,0xff,0xe0,0x80,0x12,0x80,0xe7,0xff,0x1, 0x97, +0xe1,0x80,0xc3,0x0, 0xe3,0xff,0xc3,0x7f,0xe7,0xff,0x0, 0x97,0x26,0x5e,0xe0,0x2, +0x1c,0x98,0x87,0xc9,0xe2,0x0, 0xc7,0x8f,0x3d,0x7f,0x1, 0x4e,0xe0,0x2, 0x1e,0x98, +0x3f,0xe5,0x0, 0x88,0xe0,0x1, 0x87,0x6d,0xc6,0x8a,0xe2,0x0, 0xc7,0xf, 0x3f,0x7a, +0x1, 0x44,0x3f,0x6f,0xe2,0x1, 0xc7,0x7f,0x3e,0x7e,0x3d,0xef,0xc7,0x81,0x2, 0xf3, +0x0, 0xc4,0x15,0x80,0xe0,0x2, 0x1f,0x18,0xe4,0x0, 0xc5,0x8a,0xf8,0xd, 0x3e,0x9e, +0x3d,0x9e,0xf0,0x6, 0x9a,0xbd,0x9f,0xb, 0x9f,0x9b,0xe0,0x0, 0x15,0xc0,0x3d,0xa1, +0x3c,0x3b,0x3f,0x31,0x3f,0xb1,0xe8,0xb, 0x3d,0xb5,0x3f,0x18,0x3f,0x9b,0x37,0x46, +0x37,0xc6,0xe0,0x6, 0xb7,0x2d,0xe0,0x6, 0xb7,0xbd,0xe7,0xfd,0x0, 0x8c,0xe0,0x2, +0x1f,0x4a,0xf0,0x2, 0x1f,0x5e,0x8f,0x8e,0xe0,0x1, 0x27,0xca,0xe0,0x2, 0x1e,0xdc, +0x17,0x81,0x7e,0x86,0xaf,0x8d,0x16,0xb7,0xe0,0x0, 0x1f,0x8d,0xe0,0x1a,0x9f,0xdf, +0xe1,0x2f,0x3f,0x9d,0xaf,0x8e,0xe7,0xfb,0x0, 0x99,0x62,0x85,0x8f,0x85,0xe7,0xfb, +0x2f,0xfa,0x66,0x6, 0x8c,0x8c,0xe7,0xfb,0x2c,0xf6,0xe0,0x2, 0x1a,0xcc,0x89,0x5, +0x7a,0x83,0xe0,0x4, 0x21,0x7e,0x66,0x83,0xc1,0x7f,0xa9,0xd, 0xe7,0xfb,0x0, 0xf1, +0x66,0x83,0x8f,0x8d,0xe7,0xfd,0x2f,0xd1,0xe0,0x2, 0x1c,0x57,0xd8,0x5a,0xe7,0xfd, +0x0, 0xcc,0xf0,0xb, 0x3d,0x16,0xae,0xbb,0xe0,0x2, 0x1d,0xef,0xe0,0x1, 0xae,0x8f, +0xae,0x8b,0xe7,0xfd,0x2a,0xe9,0xe7,0xfc,0x0, 0xe2,0xe0,0x1, 0x1c,0xb1,0xf0,0x1, +0x1b,0xb0,0x8d,0x89,0xe8,0x0, 0x8e,0x7, 0x35,0xa8,0x3e,0x4b,0xc6,0x62,0x3e,0xfc, +0xe7,0xfc,0x3, 0x61,0xe0,0x1, 0x8d,0x8f,0xe0,0x1, 0x25,0x87,0xe0,0x2, 0x1e,0x6f, +0x8e,0xc, 0xe0,0x1, 0x2e,0x2, 0xe0,0x0, 0x1c,0xc5,0xe0,0xc, 0x3c,0x9e,0x9d,0x8c, +0x9c,0x1c,0x2d,0x82,0x24,0x2b,0xf8,0x1, 0x3e,0x9e,0xe0,0x6, 0x9e,0x31,0xe0,0xb, +0x3e,0xab,0xe0,0xd, 0x3e,0x28,0xe4,0x8, 0x36,0x8f,0xe4,0xc, 0x35,0x8f,0xe2,0xd, +0x3c,0x4d,0xe2,0xb, 0x3e,0x4b,0x3e,0xa8,0xe0,0xc, 0x3d,0xac,0x3e,0x9c,0xe2,0x2, +0xce,0xac,0x2, 0x14,0x3f,0x19,0x94,0xe, 0x94,0x9e,0x95,0xae,0x96,0x3e,0x96,0xce, +0xe0,0x0, 0x17,0x64,0xe0,0x6, 0xb4,0x21,0x3f,0x11,0xf0,0x8, 0x3d,0x16,0x10,0x85, +0xa8,0xb8,0xb4,0x9e,0xb5,0xae,0xb6,0x3e,0xb6,0xce,0x17,0x3c,0xe0,0x1, 0xaf,0xf, +0xf8,0xe, 0x3e,0x9e,0xe0,0xd, 0x8c,0x3e,0xe0,0xd, 0x8c,0xce,0xe0,0x0, 0x0, 0xd1, +0xf0,0x2, 0x1b,0xc0,0xe0,0x2, 0x1e,0xca,0xe8,0xa, 0x8f,0x87,0x62,0x82,0x86,0x8d, +0xe2,0x0, 0xcf,0x81,0xaa,0x15,0xae,0x85,0xe0,0x1, 0x1, 0x44,0xf0,0x0, 0x63,0x86, +0xe8,0x0, 0x8f,0x87,0xe0,0x1, 0x2f,0xf8,0xf0,0x0, 0x63,0x85,0xe8,0x0, 0x89,0x7, +0xe0,0x2, 0x21,0x3a,0x62,0x83,0x89,0x5, 0xe0,0x4, 0x21,0x15,0xe8,0x0, 0x89,0x8d, +0x66,0x87,0xe4,0x0, 0xc1,0x8a,0x67,0x5, 0xf0,0x0, 0x63,0x86,0xe0,0x2, 0x1c,0xd8, +0xe0,0x2, 0x1c,0x18,0x3d,0x63,0xaf,0x8d,0x39,0x6f,0xaf,0x8e,0xe8,0x0, 0xaf,0x87, +0xe0,0x1, 0xd0,0x40,0xe0,0x2, 0x1c,0x18,0x3d,0x63,0xe0,0x1, 0x14,0xff,0xe0,0x1, +0xd0,0x73,0x3c,0x62,0xc0,0x24,0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0xe0,0x2, 0x1e,0x5c, +0x7e,0x6, 0xe7,0xfe,0x0, 0xba,0xf8,0xc, 0x3e,0x9e,0xe0,0x6, 0x9c,0xbc,0xe2,0x0, +0xcc,0xbc,0xe0,0x1, 0x5, 0x9c,0xe0,0xd, 0x8c,0x3c,0xe0,0xd, 0x8c,0xcc,0x7f,0x81, +0xef,0xfc,0xd0,0x8e,0xe0,0x2, 0x1e,0x8b,0xe2,0x0, 0xcc,0x1, 0xac,0xd, 0x67,0x81, +0xe0,0x3, 0x1, 0x0, 0xf8,0xd, 0x3e,0x9e,0xe0,0x6, 0x9b,0x2d,0xe2,0x0, 0xcb,0x1e, +0xe0,0x1, 0x5, 0xc5,0xe0,0x1, 0x1d,0xb1,0xf0,0x1, 0x1b,0xb0,0x8e,0xb, 0xe8,0x0, +0x8f,0x7, 0x36,0x28,0x3f,0x4c,0xc7,0x62,0x3b,0x7e,0xf0,0x6, 0x9d,0xbd,0xe0,0x2, +0x4, 0x7f,0xf2,0x0, 0xcd,0x94,0x5, 0x94,0xe0,0x1, 0x1f,0x2f,0xf0,0x1, 0x1b,0xae, +0x8e,0x8e,0xe8,0x0, 0x8f,0x7, 0x36,0xa8,0x3f,0x4d,0x16,0xec,0x3e,0x9e,0xf0,0x2d, +0x3d,0xad,0xe7,0xfc,0x26,0xef,0xe9,0x2e,0x3f,0x2b,0xe7,0xfc,0x27,0x6b,0x8f,0x6f, +0xe7,0xfc,0x2f,0x68,0x17,0x2, 0xaf,0x6f,0xe7,0xfc,0x0, 0xe4,0xe2,0x0, 0xcc,0x83, +0xe0,0x3, 0x1, 0x6b,0x22,0x1a,0xe8,0xd, 0x8e,0x8e,0xe2,0x1, 0xce,0xff,0xe0,0x3, +0x1, 0x3e,0xe0,0x2, 0x1e,0x5e,0x16,0x81,0x0, 0x89,0xe0,0xe, 0x8d,0xac,0xc6,0xa, +0xe2,0x1, 0xcd,0xff,0xe0,0x1, 0x1, 0x11,0x3e,0xee,0x3f,0x6d,0xe2,0x1, 0xc7,0x7f, +0x3f,0x74,0x17,0x1, 0x3f,0x1d,0x4, 0xf2,0xe2,0x0, 0xcc,0x81,0x15,0x8a,0x3d,0xbf, +0xe0,0x1, 0x1, 0x1c,0xe0,0x2, 0x1e,0xd7,0x3d,0x9d,0x16,0x82,0xae,0x8b,0xe0,0x2, +0x1a,0xd5,0x8e,0x85,0x7a,0x87,0xe0,0x2, 0x2e,0x98,0xe0,0x2, 0x1f,0x54,0x8e,0x8e, +0x7f,0x5, 0x26,0x9c,0xe7,0xf9,0x24,0xbf,0xe0,0x2, 0x1e,0x4c,0xe8,0xf, 0x3f,0x98, +0xc4,0xff,0x89,0xc, 0xac,0x8f,0x7e,0x3, 0xe7,0xf9,0x21,0x3b,0xe7,0xfd,0x0, 0xc5, +0x62,0x86,0x89,0x5, 0xe2,0x0, 0xc9,0x1, 0xe0,0x1, 0x1, 0x11,0x66,0x5, 0x11,0x0, +0x8f,0x8c,0xe7,0xfb,0x27,0x92,0xe7,0xfd,0x0, 0xbd,0xf0,0x0, 0x63,0x86,0xe8,0x0, +0x8e,0x87,0x2e,0xe1,0x2c,0xe2,0xe7,0xfd,0x0, 0xaa,0xe0,0x1, 0x18,0xb1,0xe0,0x1, +0x1a,0xb0,0x8c,0x1, 0x8c,0x85,0x34,0x28,0x3c,0xc8,0x3e,0xf9,0xe7,0xfe,0x2, 0x5d, +0xe0,0x0, 0x1c,0xac,0x8e,0x89,0xe2,0x0, 0xce,0x81,0xe7,0xfe,0x1, 0xd6,0xe0,0x2, +0x25,0xe2,0xe2,0x0, 0xcd,0xbb,0x2, 0x84,0xc5,0x81,0xe0,0x1, 0xad,0x8f,0x17,0x3, +0xaf,0xf, 0xaf,0x1f,0x17,0x80,0xaf,0x89,0x17,0x1, 0xe0,0x2, 0x1f,0xef,0xaf,0xf, +0xe7,0xfa,0x0, 0xbf,0x62,0x88,0x12,0x0, 0x11,0x1, 0xe7,0xfa,0x22,0xda,0xe0,0x0, +0x1c,0x9b,0x16,0x80,0x8f,0x89,0xe0,0x2f,0x3f,0x8d,0xaf,0x89,0xef,0xfa,0xd8,0x10, +0xe0,0x1, 0x1f,0xdc,0x16,0x7b,0xa6,0x8f,0xa7,0xcd,0x3f,0xdc,0xbf,0xcd,0x66,0x5, +0x8f,0x8c,0xe7,0xfa,0x27,0xca,0xe7,0xfc,0x0, 0xf5,0xf0,0x6, 0x9d,0xbd,0xf2,0x0, +0xcd,0x94,0xe7,0xfe,0x5, 0xde,0xe0,0x1, 0x18,0xaf,0xe0,0x1, 0x1a,0xae,0x8e,0x81, +0x8f,0x5, 0xe7,0xfe,0x0, 0xca,0xe4,0x0, 0xc6,0x8a,0xe0,0x0, 0xc6,0xe4,0x15,0x8a, +0x3d,0xbf,0xe0,0x0, 0x1e,0x45,0xe8,0xd, 0x3e,0x9e,0x3e,0x1b,0x91,0xc, 0x90,0x9c, +0x94,0x2c,0x95,0x3c,0x96,0x4c,0xe2,0x0, 0xcc,0x81,0xb1,0xd, 0xb0,0x9d,0xb4,0x2d, +0xb5,0x3d,0xb6,0x4d,0xe7,0xfe,0x1, 0xe8,0xe0,0x2, 0x1e,0xd7,0x3d,0x9d,0xac,0x8b, +0xe7,0xfe,0x0, 0xe7,0xe8,0x0, 0x89,0x8d,0x66,0x7, 0xe4,0x0, 0xc1,0x8a,0x66,0x85, +0x67,0x6, 0xe0,0x2, 0x1c,0xd8,0xe0,0x2, 0x1c,0x18,0x3d,0x63,0xa9,0xc, 0xa9,0xd, +0xa9,0xe, 0xe0,0x0, 0xdf,0xf, 0xe7,0xfd,0x0, 0xcf,0xe0,0x2, 0x1f,0x96,0x14,0x85, +0x66,0x8, 0xac,0x8f,0xe7,0xf9,0x26,0x7d,0xef,0xfa,0xd7,0xba,0xe0,0x0, 0x1e,0x9b, +0x16,0x0, 0x8f,0x8d,0xe0,0x1, 0x1e,0xdc,0xe0,0x0, 0x1f,0x1b,0xe0,0x2f,0x3f,0x8c, +0xa6,0x8d,0xaf,0x8e,0x16,0x7b,0xa7,0xcd,0x3f,0xdc,0xbf,0xcd,0xe7,0xf9,0x0, 0xe9, +0xe0,0x1, 0x1d,0xb1,0xf0,0x1, 0x1b,0xb0,0x88,0x8b,0xe8,0x0, 0x8d,0x87,0x30,0xa8, +0x3d,0xc1,0xc5,0xe2,0x3e,0xfb,0xe7,0xf9,0x3, 0x39,0xe0,0x1, 0x8d,0x8f,0xe0,0x0, +0x25,0xe5,0xe0,0x0, 0x18,0xc5,0x38,0x9e,0xf0,0x0, 0x92,0x81,0xf0,0x0, 0x9a,0x11, +0xe8,0x40,0x3a,0xe5,0xe3,0xff,0xc2,0xff,0xe0,0xe, 0x3e,0xa5,0xe8,0xc, 0x3e,0x24, +0xe4,0xb, 0x37,0xf, 0xe4,0x13,0x36,0xf, 0xe2,0xe, 0x3d,0xce,0xf2,0xc, 0x39,0xcc, +0xe0,0xb, 0x3f,0x2b,0xe8,0xe, 0x3e,0x23,0x3f,0x1b,0xe2,0x0, 0xcf,0x31,0xe0,0x1, +0x2, 0x5, 0xe2,0x0, 0xce,0x9e,0x5, 0x8d,0xe0,0x1, 0x18,0xb1,0xe0,0x1, 0x1a,0xb0, +0x8e,0x1, 0x8f,0x5, 0x36,0x28,0x3f,0x4c,0xc7,0x62,0x3e,0xfe,0xe7,0xfd,0x4, 0x11, +0x7f,0x81,0xef,0xfb,0xdf,0x1d,0xe2,0x0, 0xcc,0x1, 0x67,0x81,0xe0,0x1, 0x1, 0x30, +0xe0,0x1, 0x8f,0xf, 0xe2,0x0, 0xcf,0x3b,0xe7,0xf8,0x2, 0xf8,0xc7,0x1, 0xe0,0x1, +0xaf,0xf, 0xe7,0xf8,0x0, 0xf3,0xe0,0x2, 0x1e,0x54,0x7e,0x5, 0xe7,0xfd,0x0, 0xee, +0xe8,0x6, 0x3b,0x1a,0x16,0x80,0x8f,0x6f,0xae,0xb6,0x27,0x15,0xe2,0x0, 0xcf,0x1, +0xe7,0xfa,0x2, 0x8a,0x16,0xbc,0xe0,0x2, 0x1c,0xbe,0x17,0x3, 0xe0,0x1, 0xae,0x8f, +0x16,0x81,0xae,0x89,0xaf,0xf, 0xaf,0x1f,0xe7,0xf8,0x0, 0xdb,0xf7,0xfd,0x2d,0x99, +0xe7,0xfa,0x0, 0x80,0xac,0x6f,0x0, 0xef,0xe0,0x0, 0x16,0xe4,0xe8,0xd, 0x3e,0x9e, +0xe8,0xd, 0x3e,0x9d,0x94,0xd, 0x94,0x9d,0x95,0x2d,0x95,0xbd,0x96,0x4d,0xe0,0x0, +0x1e,0xc5,0x3f,0x1d,0xb4,0xe, 0x16,0x83,0xb4,0x9e,0xb5,0x2e,0xb5,0xbe,0xb6,0x4e, +0x17,0x1, 0xe0,0x1, 0xaf,0xf, 0xae,0x8f,0xae,0x9f,0xe7,0xf8,0x0, 0xba,0xe0,0x2, +0x1c,0x57,0xef,0xff,0xd5,0xe7,0x16,0x8a,0xe8,0xd, 0x3e,0x98,0x3f,0xe2,0xe9,0x80, +0xaf,0x98,0xe8,0x40,0x3e,0xf8,0x1, 0xfc,0x66,0x8, 0x26,0x7, 0xe0,0x1, 0x1f,0xdc, +0xa6,0x8f,0xa7,0xcd,0xcf,0x84,0xbf,0xcd,0xe8,0x0, 0x89,0x8d,0xe0,0x2, 0x1c,0xd8, +0xe4,0x0, 0xc1,0x8a,0xe0,0x2, 0x1c,0x18,0x3d,0x63,0xe0,0x0, 0xde,0x43,0xe7,0xfc, +0x0, 0x83,0x3a,0x62,0xe7,0xfa,0x0, 0xea,0xe2,0x0, 0xce,0x9e,0xe0,0x0, 0x2, 0xce, +0xe8,0x5, 0x3a,0xc4,0xe7,0xfb,0x22,0xbb,0xe2,0x2, 0xcf,0x2c,0xe7,0xfb,0x2, 0x37, +0xf8,0xd, 0x3e,0x9e,0x94,0x11,0x94,0xa1,0x95,0xb1,0x96,0x41,0xe0,0x0, 0x17,0x64, +0x3f,0x1d,0xf0,0x6, 0xb2,0xad,0x10,0x85,0xf0,0xd, 0x3d,0x16,0xa8,0xbd,0xb4,0x1e, +0xb4,0xae,0xb5,0xbe,0xb6,0x4e,0xe7,0xfb,0x0, 0xa2,0xe0,0x0, 0x16,0xe4,0xe7,0xfd, +0x0, 0xe0,0xe0,0x0, 0x16,0x64,0xe8,0xc, 0x3e,0x1e,0xe8,0xc, 0x3e,0x1d,0x90,0x8c, +0x94,0x1c,0x94,0xac,0x95,0x3c,0x95,0xcc,0xe0,0x0, 0x1e,0x45,0xe0,0x1, 0xae,0x8f, +0x3f,0x1c,0xb0,0x8e,0x16,0x3, 0xb4,0x1e,0xb4,0xae,0xb5,0x3e,0xb5,0xce,0xe0,0x2, +0x1f,0x6f,0xae,0xf, 0xae,0x8e,0xae,0x1f,0xe7,0xf7,0x0, 0xd3,0x17,0x3c,0xe0,0x1, +0xaf,0xf, 0xe7,0xf7,0x0, 0xcb,0x15,0x8a,0x3d,0xbf,0xe0,0x2, 0x1d,0x57,0xe0,0x0, +0x16,0xe4,0x3d,0x1b,0xe7,0xf5,0x0, 0xd6,0xe0,0x1, 0x1e,0x31,0xf0,0x1, 0x1b,0xb0, +0x8d,0x8c,0xe8,0x0, 0x8e,0x7, 0x35,0xa8,0x3e,0x4b,0xc6,0x62,0x3e,0xfc,0xe7,0xff, +0x3, 0x29,0xe7,0xfb,0x0, 0xbe,0x14,0x1, 0xe7,0xf4,0x0, 0xf2,0x8, 0xb3,0xe0,0x3, +0x1f,0xb8,0x17,0x1, 0xa1,0xf, 0x16,0xfe,0xe0,0x1, 0xa7,0xe2,0x3f,0x58,0x3f,0xdd, +0x3f,0xce,0xe0,0x1, 0xbf,0xe2,0x2c,0x21,0xe0,0x2, 0x19,0xc8,0x17,0x3, 0x8f,0x83, +0x3f,0x3f,0xe0,0x2, 0x1f,0xc4,0x3f,0x9e,0x8c,0xf, 0xd4,0xa9,0xe0,0x2, 0xa7,0xd2, +0x17,0x43,0x3f,0xde,0xcf,0x9c,0xe0,0x2, 0xbf,0xd2,0x8e,0x83,0x8f,0x83,0xe0,0x3, +0x1f,0x30,0xe4,0x0, 0xc6,0x85,0xe4,0x0, 0xc7,0x85,0x3f,0x9e,0x3f,0x1d,0x8c,0xcf, +0x8c,0x3e,0x9, 0xa1,0xe0,0x5, 0x0, 0xee,0x14,0x28,0xd4,0x91,0xe0,0x2, 0xa7,0xd2, +0xe0,0x2, 0x1f,0x48,0xcf,0xbc,0xe0,0x2, 0xbf,0xd2,0x8e,0x8e,0x8f,0x8e,0xe0,0x3, +0x1f,0x30,0xe4,0x0, 0xc7,0x85,0xe4,0x0, 0xc6,0x85,0x3f,0x9e,0x84,0xcf,0x3f,0x1d, +0xc4,0xfc,0x8c,0x3e,0xe2,0x1, 0xc4,0xff,0x9, 0xa1,0xe0,0x5, 0x0, 0xd3,0x0, 0x0, +0x8, 0xb7,0xf8,0x0, 0xc, 0x3e,0xc0,0x64,0xe0,0x2, 0x1f,0x66,0xe0,0x2, 0x1f,0xfd, +0x87,0xe, 0xe0,0x3, 0x8e,0xaf,0xe2,0x0, 0xc7,0x1, 0x3e,0xfe,0xe0,0x4, 0x1, 0x7f, +0x8d,0x8f,0x89,0xaf,0x7d,0x85,0x3e,0x6b,0xe0,0x2, 0x1d,0xf9,0x99,0x5f,0x8f,0x1f, +0x8f,0xbf,0x3e,0xe3,0x7d,0x83,0x3d,0x6e,0x3d,0xec,0xe2,0x1, 0xc5,0x7f,0xe2,0x1, +0xc5,0xff,0x3d,0x7b,0x3, 0x82,0x3f,0x6c,0xf0,0x40,0x3d,0xee,0x3e,0x6f,0x3f,0x6d, +0xe2,0x1, 0xc6,0x7f,0xe2,0x1, 0xc7,0x7f,0x3e,0x7e,0xf2,0x1, 0xc5,0xff,0x3, 0x82, +0x3f,0xed,0xe0,0x0, 0x1f,0x43,0x15,0x80,0xf0,0x1, 0x1f,0x5e,0xb5,0x8e,0xe2,0x1, +0xc7,0xff,0xe0,0x2, 0x1f,0x46,0xe0,0x1, 0x1d,0xdd,0x7f,0x82,0xf8,0x40,0x3e,0x6e, +0xe0,0x1f,0x17,0xff,0xe8,0x80,0xb7,0x9c,0xf0,0x40,0x3e,0x7b,0xe0,0x80,0xb7,0x9e, +0x1, 0xfa,0x14,0x1, 0xef,0xf9,0xd9,0x90,0xef,0xfa,0xdc,0x30,0xef,0xf9,0xd6,0x90, +0xe0,0x2, 0x1e,0xc8,0x17,0x5, 0x8f,0x8d,0xf8,0x40,0x3c,0xeb,0x3f,0x3f,0xe0,0x3, +0x1f,0xb0,0x3f,0x9e,0x8f,0xbf,0xe0,0x0, 0x1f,0x44,0xe4,0x7, 0xc7,0xb0,0xf0,0x0, +0xa4,0xe, 0xf0,0x18,0x3c,0x1f,0xe8,0x40,0x3f,0x68,0xe0,0x6, 0xc7,0x48,0xf0,0x0, +0x7c,0x1, 0x7f,0x4, 0xf0,0x1, 0x25,0xe0,0xf0,0x40,0x3d,0xe3,0x62,0x5, 0xf2,0x1, +0xc5,0xff,0xf0,0x0, 0x7f,0x6, 0x13,0x81,0xe2,0x1, 0xc2,0x7f,0xe8,0x40,0x3b,0x6b, +0x12,0x80,0xf0,0x1, 0x1e,0xff,0xf8,0x40,0x3f,0x6b,0xf0,0x0, 0x7e,0x7, 0x0, 0x96, +0x14,0x1, 0xdf,0x35,0xef,0xf9,0xd9,0x7, 0x14,0x1, 0xef,0xf9,0xd9,0x55,0x17,0x81, +0xe8,0x40,0x3b,0xf9,0x3f,0x97,0xe8,0x6, 0x3b,0x1e,0xc2,0x81,0xe3,0xff,0xc7,0xff, +0xe3,0xff,0xc3,0x7f,0xe0,0x1, 0x3, 0xb4,0x3b,0xef,0xf0,0x40,0x3d,0xe5,0xf3,0xff, +0xc5,0xff,0xf0,0x40,0x3d,0xf4,0x3, 0xe5,0xe0,0x3, 0x1d,0xb8,0xe7,0xbf,0x16,0xff, +0xf0,0x0, 0xa4,0xb, 0xe0,0x0, 0x15,0x68,0xe8,0x1, 0xa7,0xe8,0xe0,0x1, 0x14,0xff, +0x3f,0xdd,0xe8,0x1, 0xbf,0xe8,0xf0,0x0, 0x16,0x0, 0x64,0x4, 0xe0,0x0, 0xdd,0x1c, +0xf0,0x0, 0x65,0x3, 0x29,0x6, 0x0, 0xa9,0x39,0x7d,0xf0,0x0, 0xc5,0x2, 0x5, 0xa5, +0xe8,0x40,0x3c,0x6c,0x3c,0xe3,0xe0,0x0, 0xdc,0x73,0xf0,0x0, 0xc6,0x1, 0x3c,0x75, +0xe8,0x40,0x3e,0xec,0xe3,0xff,0xc6,0xff,0x1, 0xf0,0xe8,0x0, 0x9f,0x8a,0x67,0x1, +0xc7,0x84,0xe0,0xc, 0x37,0x85,0x36,0x22,0x3e,0x1e,0xe0,0x1a,0xa5,0xac,0xe0,0x41, +0x3f,0x8f,0x17,0x1, 0xe0,0xf, 0x37,0x3f,0xe3,0xf, 0x3d,0xdf,0x39,0x7d,0xe0,0x1a, +0xbf,0xac,0xf0,0x0, 0xc5,0x2, 0x2, 0xdd,0xe8,0x1, 0xa7,0xe8,0x14,0x1, 0xe0,0x40, +0xcf,0x80,0xe8,0x1, 0xbf,0xe8,0xde,0xd3,0xef,0xf9,0xd8,0xa5,0x14,0x1, 0xef,0xf9, +0xd8,0xf3,0x14,0x0, 0xf0,0x40,0x3b,0x68,0xf0,0x0, 0x25,0xaa,0xf0,0xa, 0x3f,0x18, +0xe3,0xff,0xc5,0x7f,0xe0,0x40,0x3f,0xe8,0xf0,0x0, 0x27,0x17,0xe0,0xc, 0x17,0x52, +0x3f,0x1f,0xe0,0xd, 0x37,0xa1,0x37,0x21,0xe8,0xe, 0x3f,0x1d,0xe8,0xd, 0x3e,0x9d, +0x9d,0x8e,0x96,0xd, 0xc7,0x81,0x3d,0xfc,0xe3,0xff,0xc7,0xff,0x3, 0x3, 0x9f,0xe, +0xb7,0xd, 0x3f,0xfa,0x1, 0xec,0xf0,0x0, 0xc3,0x1, 0xf3,0xff,0xc3,0x7f,0xf8,0x40, +0x3b,0x7b,0xe8,0x8, 0x3c,0x1e,0xe3,0xff,0xc4,0x7f,0x1, 0xd9,0x3b,0xf4,0x3c,0x66, +0xf0,0x40,0x3b,0xe7,0xe7,0xfe,0x3, 0xed,0xf0,0xa, 0x3f,0x18,0xe3,0xff,0xc5,0x7f, +0xe0,0x40,0x3f,0xe8,0xf0,0x0, 0x27,0x17,0xe0,0xc, 0x17,0x52,0x3f,0x1f,0xe0,0xd, +0x37,0xa1,0x37,0x21,0xe8,0xe, 0x3f,0x1d,0xe8,0xd, 0x3e,0x9d,0x9d,0x8e,0x96,0xd, +0xc7,0x81,0x3d,0xfc,0xe3,0xff,0xc7,0xff,0x3, 0x3, 0x9f,0xe, 0xb7,0xd, 0x3f,0xfa, +0x1, 0xec,0xf0,0x0, 0xc3,0x81,0xf3,0xff,0xc3,0xff,0xf0,0x40,0x3b,0xf4,0xe8,0x8, +0x3c,0x1e,0xe3,0xff,0xc4,0x7f,0x1, 0xd9,0xe7,0xfe,0x0, 0xc3,0xf0,0x0, 0x67,0x6, +0xf0,0x0, 0x66,0x7, 0x67,0x82,0xf0,0x2, 0x1e,0xc5,0xe0,0x2, 0x27,0x95,0xf0,0x0, +0x65,0x5, 0xf0,0x40,0x3c,0xe3,0xf2,0x1, 0xc4,0xff,0xf2,0x1, 0xc5,0x7f,0xf8,0x7, +0x3c,0xba,0xf0,0x2, 0x1e,0xc5,0x3f,0xe7,0xe3,0xff,0xc7,0xff,0xf0,0x0, 0x7f,0x6, +0x12,0x81,0xf0,0x0, 0x7e,0x7, 0x3b,0x6f,0xf8,0x40,0x3e,0x69,0x7f,0x85,0x12,0x0, +0xf0,0x1, 0x1d,0xff,0xf8,0x40,0x3f,0x6a,0xf8,0x40,0x3c,0xed,0x0, 0x92,0x14,0x1, +0xde,0x46,0xef,0xf9,0xd8,0x18,0x14,0x1, 0xef,0xf9,0xd8,0x66,0x66,0x82,0x17,0x81, +0x3e,0xf5,0x3f,0x95,0xc2,0x1, 0xe3,0xff,0xc7,0xff,0xe0,0x1, 0x5, 0xdf,0x3a,0xef, +0xf0,0x40,0x3d,0x64,0xf3,0xff,0xc5,0x7f,0xf8,0x40,0x3d,0x7c,0x3, 0xe9,0xe0,0x3, +0x1d,0xb8,0xe7,0xbf,0x16,0xff,0xf0,0x0, 0xa6,0x8b,0xe0,0x0, 0x15,0x68,0xe8,0x1, +0xa7,0xed,0xe0,0x1, 0x14,0xff,0x3f,0xdd,0xe8,0x1, 0xbf,0xed,0xf0,0x0, 0x14,0x0, +0x64,0x4, 0xe0,0x0, 0xdc,0x31,0x63,0x83,0x29,0x5, 0x0, 0xa6,0x39,0x79,0xc3,0x82, +0x5, 0xa3,0xe8,0x40,0x3c,0x68,0x3c,0xe3,0xe0,0x0, 0xdb,0xb9,0xf0,0x0, 0xc4,0x1, +0x3c,0x74,0xe8,0x40,0x3c,0xe8,0xe3,0xff,0xc4,0xff,0x1, 0xf1,0x9f,0x7, 0x67,0x81, +0xc7,0x4, 0xe0,0x8, 0x37,0x5, 0x34,0x22,0x3c,0x1f,0xf0,0x1a,0xa3,0x28,0xe0,0x41, +0x3f,0xe, 0x15,0x81,0xe0,0xe, 0x35,0xbe,0xf3,0xe, 0x3b,0x5e,0x39,0x79,0xe0,0x1a, +0xbf,0x28,0xc3,0x82,0x2, 0xdf,0x17,0x80,0x3f,0x6f,0xe3,0xff,0xc7,0x7f,0xe8,0x40, +0x3f,0x7a,0xe0,0x1, 0x1, 0x68,0xc7,0x81,0xe2,0x0, 0xcf,0x86,0x1, 0xf6,0xe8,0x1, +0xa7,0xed,0x14,0x1, 0xe0,0x40,0xcf,0x80,0xe8,0x1, 0xbf,0xed,0xdd,0xe0,0xef,0xf9, +0xd7,0xb2,0x14,0x1, 0xef,0xf9,0xd8,0x0, 0xf0,0x0, 0x12,0x80,0xf0,0x0, 0x25,0x30, +0xe8,0x40,0x3f,0x65,0xe0,0x0, 0x15,0x0, 0xf0,0x0, 0x27,0x1f,0xe0,0xc, 0x17,0xd2, +0x3f,0x9e,0xe0,0x9, 0x37,0x21,0x37,0xa1,0xe8,0xf, 0x3f,0x9b,0xe8,0x9, 0x3c,0x99, +0x9c,0xf, 0xf0,0x0, 0x9b,0x9, 0xc5,0x1, 0xf0,0x40,0x3b,0x78,0xe8,0xe, 0x3f,0x1c, +0xe3,0xff,0xc5,0x7f,0xe3,0xff,0xc7,0x7f,0x5, 0x84,0x9f,0x8f,0xe0,0x0, 0xb7,0x89, +0xe8,0x40,0x3d,0x7e,0x1, 0xe4,0xf2,0x0, 0xca,0x85,0xe0,0x1, 0x5, 0x95,0xf0,0x0, +0xc2,0x81,0xf3,0xff,0xc2,0xff,0xf8,0x40,0x3a,0xfa,0x1, 0xd3,0xf0,0x40,0x3e,0x75, +0xf0,0x40,0x3b,0x65,0xe7,0xfe,0x5, 0xe4,0xe8,0x40,0x3f,0x66,0xe0,0x0, 0x15,0x0, +0xf0,0x0, 0x27,0x1e,0xe0,0xc, 0x17,0xd2,0x3f,0x9e,0xe0,0x9, 0x37,0x21,0x37,0xa1, +0xe8,0xf, 0x3f,0x9b,0xe8,0x9, 0x3c,0x99,0x9c,0xf, 0xf0,0x0, 0x9b,0x89,0xc5,0x1, +0xf0,0x40,0x3b,0xf8,0xe8,0xe, 0x3f,0x1c,0xe3,0xff,0xc5,0x7f,0xe3,0xff,0xc7,0x7f, +0x5, 0x83,0x9f,0x8f,0xb7,0x89,0xe8,0x40,0x3d,0x7e,0x1, 0xe5,0xf2,0x0, 0xcb,0x5, +0x2, 0x94,0xe8,0xf, 0x3b,0x16,0xe3,0xff,0xc7,0xff,0xe0,0xc, 0x17,0x52,0x3f,0x1f, +0x37,0x21,0x37,0xa1,0xe8,0xe, 0x3f,0x1b,0xe8,0xf, 0x3f,0x99,0x9d,0xe, 0x9c,0x8f, +0x3c,0xfa,0x5, 0x83,0x9f,0xe, 0xb7,0xf, 0xf0,0x0, 0xc3,0x1, 0xf3,0xff,0xc3,0x7f, +0xf8,0x40,0x3b,0x7c,0x1, 0xc2,0x66,0x82,0x17,0x81,0x3e,0xf5,0x3f,0x95,0xc2,0x1, +0xe3,0xff,0xc7,0xff,0xe7,0xfe,0x2, 0xa5,0xf0,0x0, 0x67,0x6, 0xf0,0x0, 0x66,0x7, +0xf8,0x40,0x3e,0xe9,0xe0,0x2, 0x1f,0xc5,0xe8,0x80,0x97,0x1e,0x9e,0x8f,0x3f,0x7d, +0x3, 0x2, 0xb7,0xf, 0xf8,0x40,0x3f,0x7c,0xc7,0x82,0x1, 0xf7,0xe0,0x2, 0x1f,0x93, +0x17,0x0, 0xe0,0x2, 0x1e,0xa5,0xe0,0x2, 0xaf,0xf, 0x14,0x0, 0xe0,0x1, 0xaf,0x7f, +0xf0,0x0, 0xbe,0x8d,0xdd,0x3c,0xe0,0x2, 0x1f,0x48,0x8c,0xe, 0xef,0xf9,0xd5,0xc8, +0xe0,0x2, 0x1f,0x7b,0x17,0x87,0xaf,0x8e,0xe0,0x2, 0x1f,0x77,0xaf,0x8e,0xc0,0x1c, +0xf8,0x0, 0xf, 0x28,0xb, 0xa1,0xe7,0x34,0x0, 0xe2,0x8e,0x9f,0xe0,0x2, 0x1f,0x78, +0x89,0xbf,0x7e,0x85,0x99,0x6f,0x8e,0xf, 0x8e,0xaf,0x7f,0x3, 0x3f,0xe3,0x67,0x5, +0xe7,0xfb,0x0, 0x83,0x67,0x85,0xe0,0xc, 0x17,0x52,0xe8,0xf, 0x3f,0x95,0xe3,0xff, +0xc7,0xff,0x3f,0x1f,0x37,0x21,0x37,0xa1,0xe8,0xe, 0x3f,0x1b,0xe8,0xf, 0x3f,0x99, +0x9d,0xe, 0x9c,0x8f,0x3c,0xfa,0xe7,0xfe,0x5, 0xdc,0x9f,0xe, 0xb7,0xf, 0xe7,0xfe, +0x0, 0xd8,0x17,0x1e,0xf2,0x0, 0xcd,0x2, 0x3f,0x2f,0x16,0x81,0xe0,0xe, 0x36,0xbe, +0x2, 0x8a,0x65,0x81,0xe0,0x1a,0xa5,0x2b,0xe3,0xe, 0x3d,0x5e,0xe0,0x1a,0xbf,0x2b, +0xe7,0xfe,0x0, 0x8b,0x66,0x81,0x17,0x1d,0xe0,0x1d,0xa5,0x3d,0x3f,0x2f,0x15,0x81, +0xe0,0xe, 0x35,0xbe,0xe3,0xe, 0x3d,0x5e,0xe0,0x1d,0xbf,0x3d,0xe7,0xfd,0x0, 0xfd, +0xe0,0x3, 0x1f,0xb8,0x16,0x80,0xa6,0xf, 0xe0,0x1, 0xa7,0x6c,0x37,0x4d,0xe2,0x0, +0xc7,0x1, 0x24,0x85,0xc4,0xff,0xe0,0x7, 0x16,0xff,0x3e,0xd9,0xe0,0x1, 0xa5,0xec, +0xe7,0xbf,0x17,0xff,0x3d,0xdf,0xe0,0x1, 0xbd,0xec,0xe4,0x7, 0xc4,0x30,0xe0,0x0, +0x1d,0xc4,0xe4,0xd, 0x36,0xa0,0xa5,0x8b,0x37,0x2d,0x3c,0x1b,0xa5,0x8, 0xe0,0x3, +0x1d,0xd8,0x3d,0xda,0x3e,0xcb,0xbe,0x88,0xe0,0x1, 0xa6,0xec,0x3f,0xdd,0x3f,0xce, +0xe0,0x1, 0xbf,0xec,0x38,0x82,0xe0,0x3, 0x1f,0xb8,0xe0,0x0, 0x1d,0xc4,0xa7,0x8f, +0xe7,0xbf,0x16,0x7f,0xe0,0x1, 0xa7,0x6f,0xe0,0x1, 0xa6,0xef,0xa5,0x8b,0xe4,0x7, +0xc4,0x30,0x3e,0xdc,0xe0,0x1, 0xbe,0xef,0x3c,0x1b,0xa5,0x88,0xe2,0x0, 0xc4,0x8f, +0xe0,0xd, 0x34,0xab,0xe7,0xf, 0x14,0xff,0x3c,0xdb,0x3c,0xcd,0xbc,0x88,0xe2,0x40, +0xc7,0x0, 0xe0,0x1, 0xa6,0xef,0x3e,0x5d,0x3f,0x4c,0xe0,0x1, 0xbf,0x6f,0x38,0x82, +0xe0,0x3, 0x1f,0xb8,0xe0,0x0, 0x1d,0xc4,0xa7,0x8f,0xe7,0xbf,0x16,0x7f,0xe0,0x1, +0xa7,0x6f,0xe0,0x1, 0xa6,0xef,0xa5,0x8b,0xe4,0x7, 0xc4,0x30,0x3e,0xdc,0xe0,0x1, +0xbe,0xef,0x3c,0x1b,0xa5,0x88,0xe2,0x0, 0xc4,0x81,0xe0,0xd, 0x34,0xaa,0xe7,0xf7, +0x14,0xff,0x3c,0xdb,0x3c,0xcd,0xbc,0x88,0xe2,0x40,0xc7,0x0, 0xe0,0x1, 0xa6,0xef, +0x3e,0x5d,0x3f,0x4c,0xe0,0x1, 0xbf,0x6f,0x38,0x82,0xe0,0x3, 0x1f,0xb8,0xe0,0x0, +0x1d,0xc4,0xa7,0x8f,0xe7,0xbf,0x16,0x7f,0xe0,0x1, 0xa7,0x6f,0xe0,0x1, 0xa6,0xef, +0xa5,0x8b,0xe4,0x7, 0xc4,0x30,0x3e,0xdc,0xe0,0x1, 0xbe,0xef,0x3c,0x1b,0xe2,0x0, +0xc4,0x81,0xa5,0x88,0xe4,0xd, 0x34,0xac,0xe0,0x3, 0x1c,0xd9,0xe2,0x0, 0xc5,0x3, +0x3c,0xdb,0x3c,0xcd,0xbc,0x88,0xe4,0xd, 0x35,0x2a,0xa4,0x88,0xe0,0x3, 0x1d,0xda, +0xe2,0x40,0xc7,0x0, 0xe0,0xa, 0x3c,0xdb,0x3d,0x4d,0xbd,0x8, 0xe0,0x1, 0xa6,0xef, +0x3e,0x5d,0x3f,0x4c,0xe0,0x1, 0xbf,0x6f,0x38,0x82,0xe0,0x3, 0x1f,0xb8,0xe0,0x0, +0x1d,0xc4,0xa7,0x8f,0xe7,0xbf,0x16,0xff,0xe0,0x1, 0xa7,0x6f,0xe0,0x1, 0xa6,0x6f, +0xa5,0x8b,0xe4,0x7, 0xc4,0x30,0x3e,0x5d,0xe0,0x1, 0xbe,0x6f,0x3c,0x1b,0xa5,0xa8, +0xe7,0xf0,0x16,0x0, 0x3e,0x5b,0xe2,0xf, 0xc4,0xff,0x3c,0xcc,0xbc,0xa8,0xe2,0x40, +0xc7,0x0, 0xe0,0x1, 0xa6,0x6f,0x3e,0xdc,0x3f,0x4d,0xe0,0x1, 0xbf,0x6f,0x38,0x82, +0xe0,0x3, 0x1f,0xb8,0xe0,0x0, 0x1d,0xc4,0xa7,0x8f,0xe7,0xbf,0x16,0x7f,0xe0,0x1, +0xa7,0x6f,0xe0,0x1, 0xa6,0xef,0xa5,0x8b,0xe4,0x7, 0xc4,0x30,0x3e,0xdc,0xe0,0x1, +0xbe,0xef,0x3c,0x1b,0xe2,0xf, 0xc4,0xff,0xa5,0xb8,0xe4,0xd, 0x34,0xa0,0xe0,0x3, +0x1c,0xdb,0xe2,0x40,0xc7,0x0, 0x3c,0xdb,0x3c,0xcd,0xbc,0xb8,0xe0,0x1, 0xa6,0xef, +0x3e,0x5d,0x3f,0x4c,0xe0,0x1, 0xbf,0x6f,0x38,0x82,0xe0,0x3, 0x1f,0xb8,0xe0,0x0, +0x1d,0xc4,0xa7,0x8f,0xe7,0xbf,0x16,0x7f,0xe0,0x1, 0xa7,0x6f,0xe0,0x1, 0xa6,0xef, +0xa5,0x8b,0xe4,0x7, 0xc4,0x30,0x3e,0xdc,0xe0,0x1, 0xbe,0xef,0x3c,0x1b,0xa5,0xe8, +0xe2,0x0, 0xc4,0x87,0xe0,0xd, 0x34,0xa6,0xe7,0xfc,0x14,0xbf,0x3c,0xdb,0x3c,0xcd, +0xbc,0xe8,0xe2,0x0, 0xc5,0xf, 0xa4,0xe8,0x15,0xc3,0xe0,0xd, 0x35,0x22,0xe0,0xa, +0x3c,0xdb,0x3d,0x4d,0xbd,0x68,0xe2,0x40,0xc7,0x0, 0xe0,0x1, 0xa6,0xef,0x3e,0x5d, +0x3f,0x4c,0xe0,0x1, 0xbf,0x6f,0x38,0x82,0xe0,0x3, 0x1f,0xb8,0xe2,0x1f,0xc4,0x7f, +0xa7,0xf, 0xe7,0xe0,0x17,0x80,0xe0,0x4, 0xa6,0x8e,0x3f,0xdd,0x3c,0x4f,0xe0,0x4, +0xbc,0xe, 0x38,0x82,0xe0,0x3, 0x1f,0xb8,0xe2,0x0, 0xc4,0x1, 0xa7,0x8f,0x17,0x7b, +0xe0,0x1, 0xa6,0x6f,0xe0,0xd, 0x34,0x22,0x3f,0x5c,0x3f,0x4d,0xe0,0x1, 0xbf,0x6f, +0x17,0x7d,0xe0,0x1, 0xa6,0xef,0x34,0x21,0x3f,0x5d,0x3c,0x4e,0xe0,0x1, 0xbc,0x6f, +0xe2,0x0, 0xc4,0x8f,0xe0,0x2, 0xa6,0x3f,0xe7,0xfe,0x17,0xf, 0xe0,0xd, 0x34,0xa4, +0x3f,0x5c,0x3f,0x4d,0xe0,0x2, 0xbf,0x3f,0x17,0x70,0xe0,0x2, 0xa6,0xbf,0x3f,0x5d, +0x3c,0xce,0xe0,0x2, 0xbc,0xbf,0x38,0x82,0xe0,0x3, 0x1f,0xb8,0xe2,0x0, 0xc4,0x1, +0xa7,0xf, 0xe7,0xdf,0x16,0xff,0xe0,0x1, 0xa6,0x6e,0xe0,0xf, 0x34,0x2c,0xe0,0x8, +0x3e,0x5d,0x3c,0x4f,0xe0,0x1, 0xbc,0x6e,0xe7,0xf0,0x17,0x80,0xe0,0x2, 0xa6,0xce, +0xe2,0xf, 0xc4,0xff,0x3f,0xdd,0x3c,0xcf,0xe0,0x2, 0xbc,0xce,0x38,0x82,0xe0,0x3, +0x1f,0xb8,0xe2,0x0, 0xc4,0x1, 0xa7,0xf, 0xe7,0xef,0x16,0xff,0xe0,0x1, 0xa6,0x6e, +0xe0,0xf, 0x34,0x2b,0xe0,0x8, 0x3e,0x5d,0x3c,0x4f,0xe0,0x1, 0xbc,0x6e,0xe0,0x4, +0xb4,0xde,0x38,0x82,0xe0,0x3, 0x1f,0xb8,0xe7,0xe0,0x17,0x0, 0xa7,0x8f,0xe2,0x1f, +0xc4,0x7f,0xe0,0x3, 0xa6,0x8f,0x3f,0x5d,0x3c,0x4e,0xe0,0x3, 0xbc,0xf, 0xe0,0x6, +0xb4,0xbf,0xe0,0x6, 0xb5,0x5f,0x38,0x82,0xe0,0x3, 0x1f,0xb8,0xe7,0xe0,0x17,0x0, +0xa7,0x8f,0xe2,0x1f,0xc4,0x7f,0xe0,0x3, 0xa6,0xbf,0x3f,0x5d,0x3c,0x4e,0xe0,0x3, +0xbc,0x3f,0xe0,0x7, 0xb4,0x9f,0xe0,0x7, 0xb5,0x3f,0x38,0x82,0xe0,0x3, 0x1f,0xb8, +0xe7,0xbf,0x15,0x7f,0xa7,0x8f,0xe0,0xb, 0x34,0x46,0xe0,0x1, 0xa6,0xef,0xe0,0x1, +0xa7,0x6f,0x35,0xa2,0x3f,0x5a,0xe0,0x1, 0xbf,0x6f,0x17,0x73,0xe0,0x2, 0xa6,0x6f, +0xe2,0x40,0xc6,0x80,0x3e,0x5e,0x3e,0x4b,0xe0,0x2, 0xbe,0x6f,0xe0,0xb, 0x34,0x26, +0xe0,0x2, 0xa6,0x6f,0xe7,0xe7,0x17,0x7f,0xe2,0x18,0xc5,0x80,0x3e,0x5e,0x3e,0x4b, +0xe0,0x2, 0xbe,0x6f,0x34,0x42,0xe0,0x2, 0xa5,0xef,0x17,0x3, 0x16,0x7c,0x3f,0x58, +0xe0,0x8, 0x3d,0xdc,0x3c,0x4e,0xe0,0x2, 0xbc,0x6f,0xe0,0x1, 0xa7,0x6f,0x3f,0x5a, +0x3f,0x4d,0xe0,0x1, 0xbf,0x6f,0x38,0x82,0xe0,0x3, 0x1f,0xb8,0xe0,0x0, 0x1f,0x44, +0xa6,0x8f,0xe7,0xbf,0x15,0xff,0xe0,0x1, 0xa6,0x6d,0xe0,0x1, 0xa7,0xed,0xa7,0xe, +0xe4,0x7, 0xc4,0x30,0x3f,0xdb,0xe0,0x1, 0xbf,0xed,0x3c,0x1e,0xa5,0x28,0xe0,0xe, +0x34,0xc2,0xe0,0x3, 0x1f,0xdc,0xe2,0x0, 0xc7,0x3, 0xe4,0xe, 0x37,0x2d,0x3f,0xda, +0x3f,0xce,0xbf,0xa8,0xe0,0xe, 0x34,0xc6,0xa5,0x28,0xe0,0x3, 0x1f,0xdd,0xe4,0xe, +0x37,0x2b,0x3f,0xda,0x3f,0xce,0xbf,0xa8,0x34,0xc4,0xa5,0x28,0xe0,0x3, 0x1f,0x5e, +0xe2,0x0, 0xc4,0x83,0xe4,0xf, 0x34,0xa9,0xe0,0x9, 0x3d,0x5e,0x3c,0xcf,0xbc,0xa8, +0xe2,0x40,0xc6,0x0, 0xe0,0x1, 0xa7,0xed,0x3d,0xdf,0x3e,0x4b,0xe0,0x1, 0xbe,0x6d, +0x38,0x82,0xe0,0x3, 0x1f,0xb8,0xe0,0x0, 0x1f,0x44,0xa6,0x8f,0xe7,0xbf,0x15,0xff, +0xe0,0x1, 0xa6,0x6d,0xe0,0x1, 0xa7,0xed,0xa7,0xe, 0xe4,0x7, 0xc4,0x30,0x3f,0xdb, +0xe0,0x1, 0xbf,0xed,0x3c,0x1e,0xa5,0x28,0xe0,0xe, 0x34,0xc2,0xe0,0x3, 0x1f,0xdf, +0xe2,0x0, 0xc7,0x3, 0xe4,0xe, 0x37,0x27,0x3f,0xda,0x3f,0xce,0xbf,0xa8,0xe0,0xe, +0x34,0xc6,0xa5,0x28,0xe0,0x3, 0x1f,0xe0,0xe4,0xe, 0x37,0x25,0x3f,0xda,0x3f,0xce, +0xbf,0xa8,0x34,0xc4,0xa5,0x28,0xe0,0x3, 0x1f,0x61,0xe2,0x0, 0xc4,0x83,0xe4,0xf, +0x34,0xa3,0xe0,0x9, 0x3d,0x5e,0x3c,0xcf,0xbc,0xa8,0xe2,0x40,0xc6,0x0, 0xe0,0x1, +0xa7,0xed,0x3d,0xdf,0x3e,0x4b,0xe0,0x1, 0xbe,0x6d,0x38,0x82,0xe0,0x3, 0x1f,0xb8, +0xe2,0x0, 0xc4,0x1, 0xa6,0x8f,0x17,0x77,0xe0,0x1, 0xa6,0x6d,0xe0,0xf, 0x34,0x23, +0xe0,0x8, 0x3e,0x5e,0x3c,0x4f,0xe0,0x1, 0xbc,0x6d,0x38,0x82,0xe0,0x3, 0x1f,0xb8, +0xe2,0x0, 0xc4,0x1, 0xa7,0xf, 0xe7,0xfb,0x16,0xff,0xe0,0x1, 0xa6,0x6e,0xe0,0xf, +0x34,0x29,0xe0,0x8, 0x3e,0x5d,0x3c,0x4f,0xe0,0x1, 0xbc,0x6e,0xe2,0x0, 0xc4,0x81, +0xe0,0x1, 0xa6,0x6e,0xe7,0xf7,0x16,0xff,0xe0,0xf, 0x34,0xaa,0xe0,0x9, 0x3e,0x5d, +0x3c,0xcf,0xe0,0x1, 0xbc,0xee,0x38,0x82,0xe0,0x3, 0x1f,0xb8,0xa7,0xf, 0xe7,0xf8, +0x17,0x80,0xe0,0x1, 0xa6,0xfe,0x3f,0xdd,0x3c,0x4f,0xe0,0x1, 0xbc,0x7e,0x38,0x82, +0xe0,0x3, 0x1f,0xb8,0xe7,0xe0,0x17,0x0, 0xa7,0x8f,0xe2,0x1f,0xc4,0x7f,0xe0,0x2, +0xa6,0x8f,0xe2,0x1f,0xc4,0xff,0x3e,0xde,0x3c,0x4d,0xe0,0x2, 0xbc,0xf, 0xe0,0x2, +0xa6,0x9f,0x3f,0x5d,0x3f,0x49,0xe0,0x2, 0xbf,0x1f,0x38,0x82,0xe0,0x3, 0x1f,0xb8, +0xa6,0x8f,0xa7,0x3d,0x37,0x4c,0xe2,0x0, 0xc7,0x1, 0xe0,0x61,0x3e,0x2, 0xe7,0xfe, +0x17,0xff,0x3f,0xdc,0xe0,0x61,0x3f,0x92,0xa7,0x8d,0x37,0xcc,0xe2,0x0, 0xc7,0x81, +0x27,0x85,0xa7,0x9d,0xe0,0x20,0xcf,0x80,0xbf,0x9d,0xe7,0xdf,0x17,0xff,0xa6,0x3d, +0x37,0x2c,0x3f,0xdc,0x3f,0xce,0xbf,0xbd,0xe0,0x61,0x3f,0x82,0xe0,0x1, 0xcf,0x80, +0xe0,0x61,0x3f,0x92,0x38,0x82,0xe0,0x61,0x3f,0x2, 0xe7,0xfe,0x17,0xff,0x3f,0xde, +0xe0,0x61,0x3f,0x92,0xe0,0x3, 0x1f,0xb8,0xe2,0x0, 0xc4,0x1, 0xa6,0x8f,0xe7,0xdf, +0x17,0x7f,0xa6,0x3d,0xe0,0xf, 0x34,0x2c,0xe0,0x8, 0x3e,0x5e,0x3c,0x4f,0xbc,0x3d, +0xe0,0x61,0x3f,0x82,0xe0,0x1, 0xcf,0x80,0xe0,0x61,0x3f,0x92,0x38,0x82,0xe0,0x3, +0x1f,0xb8,0xf0,0x3, 0x1b,0x62,0xf0,0x0, 0xa2,0xf, 0xe7,0xbf,0x17,0xff,0xf8,0x1, +0xa1,0xe4,0xe8,0x1, 0xa7,0x64,0xf0,0x13,0x31,0xcd,0x3f,0xde,0xe8,0x1, 0xbf,0xe4, +0xf2,0x0, 0xc1,0x81,0x87,0x88,0xe8,0x1, 0xa6,0xd4,0xe2,0x0, 0xc7,0x87,0xe0,0xe, +0x37,0xac,0xe7,0x1f,0x17,0xff,0x3f,0xdd,0x3f,0xce,0xe0,0x0, 0x1f,0x44,0xf0,0x3, +0x1b,0xe3,0xf0,0x0, 0xa2,0x8e,0xe0,0x3, 0x1c,0xe4,0xe8,0x1, 0xbf,0xd4,0xf0,0x0, +0x10,0x80,0x15,0x78,0xe7,0xfe,0x15,0x87,0xe7,0xf7,0x16,0x7f,0xf0,0x0, 0x11,0x2, +0xf8,0x12,0x39,0x11,0xf0,0x10,0x30,0xa2,0xf0,0x12,0x31,0x21,0xf0,0x12,0x39,0x18, +0xf8,0x10,0x38,0x16,0xe8,0x0, 0xa7,0x0, 0xe8,0x0, 0x8f,0x82,0x3f,0x5a,0x37,0xc5, +0x3f,0x4f,0xe8,0x0, 0xbf,0x0, 0xe4,0x7, 0xc7,0xb0,0xe8,0x0, 0x86,0x82,0xe8,0x0, +0xa7,0x0, 0xe2,0x0, 0xc6,0x9f,0x36,0xa3,0x3f,0x5b,0x3f,0x4d,0xe8,0x0, 0xbf,0x0, +0xe8,0xf, 0x3f,0x95,0xe8,0x0, 0x8e,0x92,0xa7,0xf, 0x36,0xc6,0xe2,0x0, 0xc6,0x81, +0xe4,0xd, 0x36,0xac,0xe8,0xe, 0x3f,0x57,0x3f,0x4d,0xbf,0xf, 0xf0,0x0, 0xc0,0x81, +0xe8,0x0, 0x8e,0x92,0xa7,0xf, 0x36,0xc3,0xe2,0x0, 0xc6,0x83,0xe4,0xd, 0x36,0xaa, +0x3f,0x59,0x3f,0x4d,0xbf,0xf, 0xf2,0x1, 0xc0,0xff,0xe8,0x0, 0x8e,0x92,0xa7,0xf, +0x36,0xc7,0x36,0xaa,0x3f,0x5c,0x3f,0x4d,0xbf,0xf, 0x8f,0x88,0xe8,0x40,0x3f,0xf1, +0xe7,0xff,0x3, 0xb6,0xe8,0x1, 0xa7,0x64,0xe7,0xbf,0x17,0xff,0xf0,0x13,0x31,0xad, +0x3f,0xde,0xf0,0x13,0x39,0xcf,0xf8,0x1, 0xb9,0xe4,0x38,0x82,0xe0,0x0, 0x1f,0x99, +0x17,0x1, 0xaf,0xf, 0xe0,0x3, 0x1f,0xb8,0xe0,0x2, 0x1e,0xb3,0xa7,0x8f,0xaf,0xd, +0x17,0x7d,0xa6,0xdf,0x3f,0x5d,0xbf,0x5f,0xa7,0x5f,0xcf,0x4, 0xbf,0x5f,0x38,0x82, +0xe0,0x0, 0x1f,0x19,0x17,0x81,0xaf,0x8e,0xe0,0x2, 0x1f,0x33,0xaf,0x8e,0xe0,0x0, +0x1f,0x10,0xaf,0x8e,0x38,0x82,0x8, 0xb2,0x39,0x68,0x15,0x4, 0xe1,0xf, 0x14,0x0, +0x3c,0xe2,0xd0,0xac,0xa7,0x82,0xa7,0x2, 0xa4,0x2, 0x37,0xc5,0xe4,0xe, 0x37,0x45, +0xe2,0x0, 0xc7,0x7, 0xea,0x2, 0xc4,0x0, 0xe2,0x0, 0xc7,0x88,0x3f,0xce,0xe4,0x8, +0x34,0x48,0x3c,0x1f,0x9, 0x61,0xe0,0x3, 0x1e,0xb8,0xe0,0x2, 0x1e,0x68,0xa6,0x8d, +0xa7,0xc, 0xa7,0x8c,0xa6,0xcd,0xe2,0x0, 0xc6,0x81,0x26,0xab,0x37,0x48,0xe4,0xf, +0x37,0xc5,0xe2,0x0, 0xc7,0x1, 0xa6,0x8c,0x37,0x23,0xe2,0x0, 0xc7,0x87,0x3f,0xce, +0xea,0x2, 0xcf,0x0, 0x3f,0x5d,0x16,0x85,0xe0,0x2f,0x3f,0x9d,0xe4,0xe, 0x37,0x48, +0x27,0x98,0x27,0x17,0x8, 0xb4,0x11,0x0, 0xe0,0x23,0x3c,0x2, 0x3a,0x69,0x14,0x9, +0x3c,0xe3,0xd0,0x55,0x14,0x9, 0xd0,0x35,0x39,0xf8,0x14,0x5, 0x1, 0xc, 0xc1,0x1, +0xef,0xfa,0xd1,0x48,0xe3,0xff,0xc1,0x7f,0x3a,0x72,0x3, 0xf5,0x14,0x0, 0xa, 0x61, +0x14,0x0, 0x38,0x82,0x14,0x1, 0xa, 0x61,0xe0,0x0, 0x1f,0x99,0x8c,0xf, 0x8f,0xf, +0x27,0x1f,0xe0,0x3, 0x1f,0x38,0x16,0x80,0xa5,0x8e,0xe0,0x0, 0x1f,0x10,0xae,0x8e, +0xa6,0x5b,0xe0,0x1, 0x1f,0x5c,0xce,0x1, 0xa7,0xe, 0xbe,0x5b,0xe0,0x1, 0xa6,0x6e, +0xe0,0x4, 0xce,0x0, 0xe0,0x1, 0xbe,0x6e,0xe7,0xfb,0x16,0x7f,0xe0,0x1, 0xa5,0xee, +0x3e,0x5b,0xe0,0x1, 0xbe,0x6e,0xae,0x8f,0xe0,0x2, 0x1f,0xb3,0xae,0x8f,0x38,0x82, +0x8, 0xb3,0xe0,0x3, 0x1f,0xb8,0x39,0xe8,0xa7,0x8f,0x14,0x0, 0xa1,0x3f,0xde,0xc4, +0xe0,0x2, 0x1f,0x91,0xe0,0x3, 0x1f,0x31,0xa7,0x8f,0xa6,0x8e,0xa7,0x1f,0x31,0x4c, +0xcf,0x10,0xbf,0x1f,0xe2,0x0, 0xc1,0x1, 0xb1,0xdd,0x3c,0x62,0x89,0x7d,0xa6,0x9f, +0x17,0x6f,0x3f,0x5d,0xbf,0x1f,0xde,0xb0,0x3c,0x62,0x9, 0xe1,0x8, 0xb4,0xe0,0x3, +0x1f,0xb8,0x3a,0x68,0xa7,0x8f,0x14,0x0, 0xa1,0x3f,0x39,0xe9,0xde,0xa5,0xe0,0x2, +0x1f,0x91,0xe0,0x3, 0x1f,0x31,0xa7,0x8f,0xa6,0x8e,0xa7,0x1f,0x31,0x4c,0xcf,0x10, +0xbf,0x1f,0xe2,0x0, 0xc1,0x1, 0xb2,0x5d,0x17,0x6f,0xa9,0xbd,0x3c,0x62,0xa6,0x9f, +0x3f,0x5d,0xbf,0x1f,0xa, 0x21,0xe7,0xfd,0x0, 0x90,0x8, 0xb5,0xe0,0x3, 0x1f,0xb8, +0x39,0x68,0xa7,0x8f,0x14,0x0, 0xa7,0xbf,0x12,0x81,0x37,0xcc,0x3a,0xdf,0x39,0xe9, +0x3a,0x6a,0xde,0x82,0xe0,0x2, 0x1f,0x91,0xa6,0x8f,0xa7,0x9d,0xcf,0x90,0xbf,0x9d, +0x22,0x13,0xe0,0x3, 0x1f,0xb1,0xe0,0xa, 0x39,0x14,0x14,0xff,0xa7,0x8f,0x3c,0x93, +0xe3,0xff,0xc5,0x7f,0xb1,0x5f,0xc1,0x1, 0x8f,0x7f,0xe3,0xff,0xc1,0x7f,0x39,0x7a, +0xe0,0x80,0xaf,0x19,0x1, 0xf8,0xa7,0x1d,0x17,0xef,0x3f,0xde,0x3c,0x65,0xbf,0x9d, +0xa, 0xa1,0xe7,0xfc,0x0, 0xe2,0x8, 0xb5,0xe0,0x3, 0x1f,0xb8,0x39,0x68,0xa7,0x8f, +0x14,0x0, 0xa7,0xbf,0x12,0x81,0x37,0xcc,0x3a,0xdf,0x39,0xe9,0x3a,0x6a,0xde,0x54, +0xe0,0x2, 0x1f,0x91,0xa6,0x8f,0xa7,0x9d,0xcf,0x90,0xbf,0x9d,0x22,0x15,0xe0,0x3, +0x1f,0xb1,0xe0,0xa, 0x39,0x14,0x14,0xff,0xa7,0x8f,0x3c,0x93,0xe3,0xff,0xc5,0x7f, +0x17,0x1, 0x3f,0x12,0xb1,0x5f,0x39,0x6e,0xe3,0xff,0xc1,0x7f,0xe0,0x80,0x87,0x19, +0x39,0x7a,0xaf,0x3f,0x1, 0xf6,0xa7,0x1d,0x17,0xef,0x3f,0xde,0x3c,0x65,0xbf,0x9d, +0xa, 0xa1,0xe7,0xfc,0x0, 0xb2,0x0, 0x0, 0xe0,0x2, 0x1f,0x91,0xe0,0x3, 0x1f,0x3, +0xa7,0x8f,0xa7,0xe, 0xa6,0x9f,0x34,0x28,0xe0,0x40,0xce,0x80,0xbe,0x9f,0x16,0xa1, +0xb6,0xbe,0x3c,0x98,0xe0,0x6, 0xb4,0xbe,0xe0,0x2, 0xb5,0x5e,0xe7,0xbf,0x17,0x7f, +0xa6,0x9f,0x3f,0x5d,0xbf,0x1f,0x38,0x82,0xe0,0x2, 0x1f,0x91,0xe0,0x3, 0x1f,0x3, +0xa7,0x8f,0xa7,0xe, 0xa6,0x9f,0x34,0x28,0xe0,0x40,0xce,0x80,0xbe,0x9f,0x3c,0x98, +0x35,0x28,0xe0,0x7, 0xb4,0xfe,0x3d,0x9a,0xe0,0x8, 0xb5,0x9e,0xe0,0x7, 0xb6,0x5e, +0xe7,0xbf,0x17,0x7f,0xa6,0x9f,0x3f,0x5d,0xbf,0x1f,0x38,0x82,0xe0,0x3, 0x1f,0x83, +0xe0,0x0, 0x1d,0x95,0xa7,0xf, 0x8e,0xb, 0x9f,0x9e,0x16,0x80,0xcf,0x81,0x3c,0x4f, +0xb4,0x1e,0x0, 0x85,0x9f,0x9e,0xe2,0x0, 0xc7,0x88,0x2f,0x8e,0xe0,0x7, 0x97,0x9e, +0xe2,0x0, 0xcf,0x80,0x3, 0x78,0x2e,0x8e,0x9f,0x9e,0xe0,0x80,0xcf,0x80,0xb7,0x9e, +0x17,0x80,0xb7,0x9e,0x38,0x82,0x9f,0x9e,0x16,0x1, 0xcf,0x84,0xb7,0x9e,0x3e,0xec, +0x0, 0xee,0xae,0xb, 0x0, 0xf2,0x8, 0xb2,0xe0,0x2, 0x1f,0x91,0x16,0x0, 0xa1,0xf, +0xe0,0x3, 0x1f,0x83,0xa6,0x92,0xa7,0xf, 0xe0,0x40,0xce,0x80,0xbe,0x92,0x3f,0xe8, +0x96,0xd8,0xb6,0xde,0x96,0xf8,0xb6,0xfe,0xe0,0x1, 0x96,0x98,0xe0,0x1, 0xb6,0x9e, +0xe0,0x0, 0x1e,0x95,0xae,0xd, 0x8e,0x88,0x8e,0x18,0x36,0xa8,0x3e,0x9c,0xe0,0x1, +0xb6,0xde,0x96,0xa8,0xe0,0x1, 0x9c,0x28,0xe0,0x9, 0xb6,0xde,0x8e,0xaf,0xe0,0x1, +0xb6,0xfe,0x87,0xbf,0xe2,0x0, 0xc7,0x81,0xe4,0xf, 0x37,0xa8,0xe4,0xf, 0x37,0xc0, +0xb7,0x9e,0xdf,0xad,0xa7,0x12,0xe7,0xbf,0x17,0xff,0x3f,0xde,0xbf,0x92,0x9, 0x61, +0x8, 0xb2,0xe0,0x2, 0x1f,0x91,0x3f,0x68,0xa1,0xf, 0xe0,0x3, 0x1f,0x83,0xa6,0x92, +0xa7,0x8f,0xe0,0x40,0xce,0x80,0xbe,0x92,0xe0,0x0, 0x14,0x40,0x96,0xde,0xb6,0xdf, +0xe0,0x1, 0x96,0x9e,0xe0,0x1, 0xb6,0x9f,0x8e,0x8e,0x8e,0x1e,0x36,0xa8,0x3e,0x9c, +0xe0,0x1, 0xb6,0xdf,0x96,0xae,0xe0,0x9, 0xb6,0xdf,0x8f,0x2e,0xe0,0x1, 0xb7,0x7f, +0x17,0x0, 0xe0,0x1, 0xb4,0xbf,0xb7,0x1f,0xdf,0x82,0xa7,0x12,0xe7,0xbf,0x17,0xff, +0x3f,0xde,0xbf,0x92,0x9, 0x61,0x8, 0xb4,0xe0,0x2, 0x1f,0x91,0x39,0xe9,0xa2,0xf, +0xe0,0x3, 0x1f,0x83,0xa7,0x14,0xa1,0xf, 0xe0,0x40,0xcf,0x0, 0xbf,0x14,0x3f,0xe8, +0xa7,0x14,0xe0,0x1, 0x14,0x20,0xe0,0x40,0xcf,0x0, 0xbf,0x14,0x97,0x3f,0xb7,0x52, +0x97,0x7f,0xb7,0x72,0x97,0x5f,0xe0,0x1, 0xb7,0x12,0x8f,0x1f,0x8e,0x8f,0x37,0x28, +0x3f,0x1d,0xe0,0x1, 0xb7,0x52,0x8f,0x2f,0xe0,0x1, 0xb7,0x32,0x17,0x0, 0xe0,0x9, +0xb7,0x52,0xe0,0x1, 0x97,0xf, 0xe0,0x1, 0xb7,0x72,0xe0,0x1, 0x97,0x1f,0xe0,0x2, +0xb7,0x12,0xe0,0x1, 0x97,0x2f,0xe0,0x2, 0xb7,0x32,0xe0,0x1, 0x97,0x3f,0xe0,0x6, +0xb7,0x12,0x8f,0xbf,0x37,0xa8,0xb7,0x92,0xdf,0x42,0xe0,0x3, 0x9f,0xb2,0xaf,0x83, +0xe0,0x3, 0x9f,0xd2,0xaf,0x93,0xe0,0x2, 0x9d,0x72,0xe0,0x3, 0x9d,0x92,0xe0,0x4, +0x9e,0x32,0xe0,0x4, 0x9e,0xd2,0xe0,0x3, 0x9f,0x72,0xe0,0x4, 0x9f,0x92,0xb5,0x13, +0xb7,0xe3,0xe7,0xbf,0x17,0xff,0xb5,0xa3,0xb6,0x33,0xb6,0xc3,0xb7,0x53,0xa7,0x14, +0x3f,0xde,0xbf,0x94,0xa, 0x61,0x8, 0xb2,0xe0,0x2, 0x1f,0x91,0xa1,0xf, 0xe0,0x3, +0x1f,0x83,0xa6,0x92,0xa7,0xf, 0xe0,0x40,0xce,0x80,0xbe,0x92,0x3f,0xe8,0x96,0xdf, +0xe0,0x1, 0x14,0x40,0xb6,0xde,0x96,0xff,0xe0,0x1, 0xb6,0x9e,0x8e,0xbf,0x8e,0x2f, +0x36,0xa8,0x3e,0x9c,0xe0,0x1, 0xb6,0xde,0x8e,0x9f,0x8e,0xf, 0x36,0xa8,0x3e,0x9c, +0xe0,0x1, 0xb6,0xbe,0x8e,0xcf,0xe0,0x1, 0xb6,0xfe,0x16,0x80,0xe0,0x9, 0xb6,0xde, +0x87,0xdf,0xe2,0x0, 0xc7,0x83,0x37,0xa8,0xb7,0x9e,0xde,0xf9,0xa7,0x12,0xe7,0xbf, +0x17,0xff,0x3f,0xde,0xbf,0x92,0x9, 0x61,0x8, 0xb2,0xe0,0x2, 0x1f,0x91,0x3e,0xe8, +0xa1,0xf, 0xe0,0x3, 0x1f,0x83,0xa7,0x12,0xa7,0x8f,0xe0,0x40,0xcf,0x0, 0xbf,0x12, +0x16,0x0, 0x97,0x38,0xb7,0x5f,0x97,0x58,0xb7,0x7f,0x97,0x78,0xe0,0x0, 0x14,0x60, +0xe0,0x1, 0xb7,0x1f,0x8f,0xd, 0x8e,0x9d,0x37,0x28,0x3f,0x1d,0xe0,0x1, 0xb7,0x5f, +0xe0,0x9, 0xb6,0x5f,0xb6,0x1f,0xde,0xd3,0xa7,0x12,0xe7,0xbf,0x17,0xff,0x3f,0xde, +0xbf,0x92,0x9, 0x61,0x8, 0xb5,0x8f,0x8, 0x8f,0x98,0x39,0x68,0xa4,0x38,0x3f,0x7f, +0x34,0x21,0xe0,0x6f,0x3b,0xae,0xe0,0x1, 0x14,0xff,0xe0,0x1, 0x15,0x72,0xe8,0x0, +0xc4,0x2, 0x3a,0xef,0xd4,0xe8,0xe0,0x2, 0x1f,0x91,0x17,0x0, 0xa1,0x8f,0xe0,0x3, +0x1f,0x83,0xe0,0x0, 0x14,0x60,0xa2,0xf, 0xa7,0x93,0xe2,0x1, 0xc2,0xff,0xe0,0x40, +0xcf,0x80,0xbf,0x93,0x97,0xb2,0xb7,0xd4,0x97,0xd2,0xb7,0xf4,0x97,0xf2,0xe0,0x1, +0xb7,0x94,0x8f,0x82,0x8e,0x92,0x37,0xa8,0x3f,0x9d,0xe0,0x1, 0xb7,0xd4,0xe0,0x9, +0xb7,0x54,0xb7,0x14,0xde,0x9c,0x87,0x2, 0xa4,0xb2,0x3f,0xee,0xe2,0x1, 0xc7,0xff, +0x27,0xa8,0xe0,0xb, 0x34,0xa1,0x87,0x92,0x15,0x0, 0xe8,0x0, 0xc5,0x82,0x3e,0xef, +0xe2,0x1, 0xc6,0xff,0x26,0x96,0x16,0xb, 0x3e,0x3a,0x17,0x0, 0xe0,0xf, 0x3f,0x1c, +0x37,0xa1,0x3f,0x9b,0x96,0x8f,0xc7,0x1, 0xe0,0x41,0x3e,0x8d,0xb6,0x8f,0xe2,0x1, +0xc7,0x7f,0x87,0x92,0x3e,0xef,0xe2,0x1, 0xc6,0xff,0x3e,0xfe,0x2, 0xf0,0x87,0x2, +0xc5,0x1, 0x3e,0xee,0xe2,0x1, 0xc5,0x7f,0xe2,0x1, 0xc6,0xff,0x3e,0xfa,0x2, 0xe0, +0xe4,0x2, 0xc2,0x81,0xb4,0xd4,0x17,0x80,0xe0,0x1, 0xb2,0xd4,0xe0,0x1, 0x14,0x50, +0xb7,0x94,0xde,0x65,0xa5,0x32,0x17,0x0, 0x15,0xf0,0x3f,0xee,0x35,0x21,0x0, 0x92, +0xe2,0x0, 0xcf,0x87,0x2, 0xb2,0xe0,0x5, 0x9e,0x14,0x36,0x1b,0xe2,0x0, 0xc6,0xf, +0xb6,0xd, 0xc7,0x81,0xe2,0x1, 0xc7,0xff,0xe2,0x0, 0xcf,0x8b,0xc7,0x2, 0xc5,0x84, +0x1, 0x1e,0xe2,0x0, 0xcf,0x83,0xe0,0xd, 0x3f,0x1a,0xe8,0x0, 0xc6,0x82,0x2, 0xe9, +0xe0,0x4, 0x9e,0x74,0xe0,0xd, 0x37,0x21,0xc7,0x81,0xe0,0x9, 0x3f,0x1a,0xe0,0xd, +0x36,0x1d,0xe2,0x1, 0xc7,0xff,0xea,0x0, 0xce,0x2, 0x3e,0x19,0xe2,0x0, 0xc6,0x8f, +0xe2,0x0, 0xcf,0x8b,0xb6,0x8c,0xc7,0x2, 0xc5,0x84,0x1, 0xe4,0xa7,0x13,0xe7,0xbf, +0x17,0xff,0x3f,0xde,0xbf,0x93,0xa, 0xe1,0xe0,0x5, 0x9e,0xb4,0x14,0xf0,0x3c,0x9b, +0xe0,0xc, 0x3f,0x1a,0x36,0x99,0xe8,0x0, 0xc6,0x2, 0xe2,0x0, 0xc6,0x8f,0xb6,0x8c, +0x0, 0xc9,0x8, 0xb2,0xe0,0x2, 0x1f,0x91,0x3f,0x68,0xa1,0xf, 0xe0,0x3, 0x1f,0x83, +0xa6,0x92,0xa7,0x8f,0xe0,0x40,0xce,0x80,0xbe,0x92,0xe7,0xbf,0x16,0x7f,0x96,0xd8, +0xb6,0xdf,0x96,0xf8,0xb6,0xff,0xe0,0x1, 0x96,0x98,0xe0,0x1, 0x14,0x60,0xe0,0x1, +0xb6,0x9f,0x8e,0x8e,0x8d,0x9e,0x36,0xa8,0x3e,0x9b,0xe0,0x1, 0xb6,0xdf,0x96,0xae, +0xe0,0x9, 0xb6,0xdf,0x8e,0xae,0xe0,0x1, 0xb6,0xff,0xe0,0x7, 0x9e,0x9f,0x3e,0xdc, +0xe0,0x7, 0xb6,0x9f,0x8f,0x3e,0xe0,0x7, 0x9e,0x9f,0x37,0x2d,0x3f,0x4d,0xe0,0x7, +0xb7,0x1f,0x9f,0x1f,0x3e,0x5e,0xb6,0x1f,0xdd,0xea,0xa7,0x12,0xe7,0xbf,0x17,0xff, +0x3f,0xde,0xbf,0x92,0x9, 0x61,0x8, 0xb2,0xe0,0x2, 0x1f,0x91,0x3f,0x68,0xa1,0xf, +0xe0,0x3, 0x1f,0x83,0xa6,0x92,0xa7,0x8f,0xe0,0x40,0xce,0x80,0xbe,0x92,0xe0,0x1, +0x14,0x60,0x96,0xde,0xb6,0xdf,0x96,0xfe,0xb6,0xff,0xe0,0x1, 0x96,0x9e,0xe0,0x1, +0xb6,0x9f,0x8e,0x8e,0x8e,0x1e,0x36,0xa8,0x3e,0x9c,0xe0,0x1, 0xb6,0xdf,0x96,0xae, +0xe0,0x9, 0xb6,0xdf,0x8f,0x2e,0xe0,0x1, 0xb7,0x7f,0x9f,0x1f,0xe0,0x40,0xcf,0x0, +0xb7,0x1f,0xdd,0xbd,0xa7,0x12,0xe7,0xbf,0x17,0xff,0x3f,0xde,0xbf,0x92,0x9, 0x61, +0x8, 0xb2,0xe0,0x2, 0x1f,0x91,0x3f,0x68,0xa1,0xf, 0xe0,0x3, 0x1f,0x83,0xa6,0x92, +0xa7,0x8f,0xe0,0x40,0xce,0x80,0xbe,0x92,0x16,0x0, 0x96,0xd8,0x34,0xa8,0xb6,0xdf, +0x3d,0x49,0x96,0xf8,0xb6,0xff,0xe0,0x1, 0x96,0x98,0xe0,0x1, 0xb6,0x9f,0x8e,0x88, +0x8d,0x98,0x36,0xa8,0x3e,0x9b,0xe0,0x1, 0xb6,0xdf,0x96,0xa8,0x14,0x30,0xe0,0x9, +0xb6,0xdf,0xe0,0x7, 0x9e,0x9f,0xe3,0x7f,0xc6,0xff,0xe0,0x7, 0xb6,0x9f,0x8f,0x3e, +0xe0,0x7, 0x9e,0x9f,0x37,0x2e,0x3f,0x4d,0xe0,0x7, 0xb7,0x1f,0xe0,0x1, 0xb6,0x7f, +0xe0,0x2, 0xb5,0x1f,0xe0,0x1, 0x9f,0x7f,0xe0,0x1, 0xcf,0x3, 0xe0,0x1, 0xb7,0x7f, +0xe0,0x1, 0xb6,0x3f,0xb6,0x1f,0xdd,0x7b,0xa7,0x12,0xe7,0xbf,0x17,0xff,0x3f,0xde, +0xbf,0x92,0x9, 0x61,0x8, 0xb2,0xe0,0x2, 0x1f,0x91,0x3f,0x68,0xa1,0xf, 0xe0,0x3, +0x1f,0x83,0xa6,0x92,0xa7,0x8f,0xe0,0x40,0xce,0x80,0xbe,0x92,0x15,0x80,0x96,0xd8, +0xb6,0xdf,0x96,0xf8,0xb6,0xff,0xe0,0x1, 0x96,0x98,0x14,0x30,0xe0,0x1, 0xb6,0x9f, +0x8e,0x8e,0x8e,0x1e,0x36,0xa8,0x3e,0x9c,0xe0,0x1, 0xb6,0xdf,0x96,0xae,0xe0,0x9, +0xb6,0xdf,0xe0,0x7, 0x9e,0x9f,0xe3,0x7f,0xc6,0xff,0xe0,0x7, 0xb6,0x9f,0x8e,0xbe, +0xe0,0x7, 0x9e,0x1f,0x36,0xae,0x3e,0xcc,0xe0,0x7, 0xb6,0x9f,0xe0,0x1, 0xb5,0xff, +0xe0,0x2, 0xb4,0x9f,0xe0,0x1, 0x9e,0xff,0xe0,0x1, 0xce,0x83,0xe0,0x1, 0xb6,0xff, +0xe0,0x1, 0xb5,0xbf,0xe0,0x2, 0x8f,0x7e,0x9e,0x9f,0x37,0x2a,0x3f,0x4d,0xb7,0x1f, +0xdd,0x36,0xa7,0x12,0xe7,0xbf,0x17,0xff,0x3f,0xde,0xbf,0x92,0x9, 0x61,0x8, 0xb2, +0xe0,0x2, 0x1f,0x91,0x3f,0x68,0xa1,0xf, 0xe0,0x3, 0x1f,0x83,0xa6,0x92,0xa7,0x8f, +0xe0,0x40,0xce,0x80,0xbe,0x92,0x14,0x0, 0x96,0xde,0xb6,0xdf,0xe0,0x1, 0x96,0x9e, +0xe0,0x1, 0xb6,0x9f,0x8e,0x8e,0x8e,0x1e,0x36,0xa8,0x3e,0x9c,0xe0,0x1, 0xb6,0xdf, +0x96,0xae,0xe0,0x9, 0xb6,0xdf,0xe0,0x1, 0xb4,0xff,0xe0,0x2, 0xb5,0x1f,0xe0,0x2, +0x8e,0x7e,0xe0,0x2, 0x8e,0xee,0x8f,0x3e,0x36,0x2a,0x36,0xa9,0x3e,0xcc,0x37,0x28, +0x3f,0x4d,0xb7,0x1f,0x9f,0x1f,0xe1,0x0, 0xcf,0x0, 0xb7,0x1f,0xdd,0x0, 0xa7,0x12, +0xe7,0xbf,0x17,0xff,0x3f,0xde,0xbf,0x92,0x9, 0x61,0x8, 0xb2,0xe0,0x2, 0x1f,0x91, +0xa1,0xf, 0xe0,0x3, 0x1f,0x83,0xa6,0x92,0xa7,0xf, 0xe0,0x40,0xce,0x80,0xbe,0x92, +0x3f,0xe8,0x96,0xd8,0xb6,0xde,0xe0,0x1, 0x96,0x98,0xe0,0x1, 0x9c,0x28,0xe0,0x1, +0xb6,0x9e,0x8e,0x8f,0x8e,0x1f,0x36,0xa8,0x3e,0x9c,0xe0,0x1, 0xb6,0xde,0x96,0xaf, +0xe0,0x9, 0xb6,0xde,0xe0,0x2, 0x8e,0x7f,0xe0,0x2, 0x8e,0xef,0x8f,0xbf,0x36,0x2a, +0x36,0xa9,0x3e,0xcc,0x37,0xa8,0x3f,0xcd,0xb7,0x9e,0x9f,0x9e,0xe1,0x0, 0xcf,0x80, +0xb7,0x9e,0xdc,0xcd,0xa7,0x12,0xe7,0xbf,0x17,0xff,0x3f,0xde,0xbf,0x92,0x9, 0x61, +0x8, 0xb2,0xe0,0x2, 0x1f,0x91,0xa1,0xf, 0xe0,0x3, 0x1f,0x83,0xa6,0x92,0xa7,0xf, +0xe0,0x40,0xce,0x80,0xbe,0x92,0x3f,0xe8,0x96,0xdf,0x14,0x30,0xb6,0xde,0x96,0xff, +0xb6,0xfe,0xe0,0x1, 0x96,0x9f,0xe0,0x1, 0xb6,0x9e,0x8e,0x8f,0x8e,0x1f,0x36,0xa8, +0x3e,0x9c,0xe0,0x1, 0xb6,0xde,0x96,0xaf,0xe0,0x9, 0xb6,0xde,0xe0,0x2, 0x8e,0x7f, +0xe0,0x2, 0x8e,0xef,0x8f,0xbf,0x36,0x2a,0x36,0xa9,0x3e,0xcc,0x37,0xa8,0x3f,0xcd, +0xb7,0x9e,0x9f,0x9e,0xe1,0x0, 0xcf,0x80,0xb7,0x9e,0xdc,0x99,0xa7,0x12,0xe7,0xbf, +0x17,0xff,0x3f,0xde,0xbf,0x92,0x9, 0x61,0x8, 0xb3,0xe0,0x2, 0x1f,0x91,0x3f,0x68, +0xa1,0x8f,0xe0,0x3, 0x1f,0x83,0xe0,0x0, 0x14,0x40,0xa1,0xf, 0xa7,0x93,0xe0,0x40, +0xcf,0x80,0xbf,0x93,0x97,0xde,0xb7,0xd2,0x8f,0x8e,0x8e,0x9e,0x37,0xa8,0x97,0x2e, +0x3f,0x9d,0xe0,0x1, 0xb7,0xd2,0x17,0x80,0xe0,0x9, 0xb7,0x52,0xe0,0x1, 0xb5,0x72, +0xe0,0x2, 0xb4,0x92,0xb7,0x92,0x9f,0x92,0xe1,0x0, 0xcf,0x80,0xb7,0x92,0xdc,0x6f, +0xe0,0x7, 0x9c,0x32,0xa7,0x13,0xe7,0xbf,0x17,0xff,0x3f,0xde,0xbf,0x93,0x9, 0xe1, +0x8, 0xb3,0xe0,0x2, 0x1f,0x91,0x16,0x80,0xa1,0x8f,0xe0,0x3, 0x1f,0x83,0xa7,0x13, +0xa1,0xf, 0xe0,0x40,0xcf,0x0, 0xbf,0x13,0x3f,0xe8,0x97,0x58,0xb7,0x52,0x97,0x78, +0xb7,0x72,0xe0,0x1, 0x97,0x18,0x14,0x0, 0xe0,0x1, 0xb7,0x12,0xe0,0x0, 0x1f,0x15, +0xae,0x8e,0x8f,0xf, 0x8e,0x9f,0x37,0x28,0x3f,0x1d,0xe0,0x1, 0xb7,0x52,0x8f,0x2f, +0xe0,0x1, 0xb7,0x72,0x97,0x2f,0xe0,0x9, 0xb7,0x52,0x87,0xbf,0xe2,0x0, 0xc7,0x81, +0xe4,0xf, 0x37,0xa8,0xe4,0xf, 0x37,0xc0,0xb7,0x92,0xdc,0x39,0xe0,0x6, 0x9c,0x72, +0xa7,0x13,0xe7,0xbf,0x17,0xff,0x3f,0xde,0xbf,0x93,0x9, 0xe1,0x8, 0xb3,0xe0,0x2, +0x1f,0x91,0xe2,0x0, 0xc5,0x3, 0xa1,0x8f,0xa7,0x93,0xe0,0x40,0xcf,0x80,0xbf,0x93, +0xe0,0x3, 0x1f,0x83,0xa1,0xf, 0x2d,0x17,0xe0,0x9, 0xb5,0x52,0x35,0xaa,0xb4,0x52, +0x35,0x28,0xe0,0x1, 0xb4,0xd2,0xe0,0x1, 0x14,0x10,0xb5,0x92,0x9f,0x92,0x3d,0x4f, +0xb5,0x12,0xdc,0x15,0xe0,0x5, 0x9c,0x52,0xa7,0x13,0xe7,0xbf,0x17,0xff,0x3f,0xde, +0xbf,0x93,0x9, 0xe1,0x17,0x82,0xe0,0x9, 0xb7,0xd2,0x0, 0xe9,0xe0,0x2, 0x1f,0x91, +0x34,0xa3,0xa6,0xf, 0xe0,0x3, 0x1f,0x83,0xf0,0x0, 0x1b,0x95,0xa7,0xf, 0xa7,0x9c, +0xa6,0x9c,0xe0,0x40,0xce,0x80,0xbe,0x9c,0x96,0xd8,0xe8,0x0, 0x8d,0x7, 0xe0,0x8, +0xb6,0xfe,0x96,0xf8,0xe0,0x9, 0xb6,0x9e,0xe0,0x1, 0x96,0x98,0xe0,0x9, 0xb6,0xbe, +0x8e,0xc8,0x8d,0xd8,0x36,0xa8,0x3e,0x9b,0xe0,0x8, 0xb6,0xbe,0xe0,0xd, 0x37,0xcd, +0x8f,0xe8,0x8d,0xf8,0x37,0xa8,0xe0,0x1, 0x94,0x28,0x3f,0x9b,0xe0,0x8, 0xb7,0xde, +0xe2,0x0, 0xc6,0x81,0xe0,0x9, 0xb4,0x5e,0x15,0x80,0xe0,0x7, 0x9f,0x9e,0xe3,0xfe, +0xc7,0x80,0xe0,0x7, 0xb7,0x9e,0xe0,0x7, 0x9f,0x9e,0x3c,0xcf,0xe0,0x7, 0xb4,0x9e, +0xe0,0x7, 0x9f,0x9e,0xcf,0x90,0xe0,0x7, 0xb7,0x9e,0xe0,0x7, 0x9f,0x9e,0xcf,0x81, +0xe0,0x7, 0xb7,0x9e,0x0, 0x86,0xe0,0x7, 0x9f,0x9e,0xe2,0x0, 0xc7,0xa0,0x2f,0x9a, +0xe0,0x7, 0x9f,0x9e,0xe2,0x1, 0xc7,0x80,0x27,0xf7,0x2d,0x9c,0xe0,0x7, 0x9f,0x9e, +0x36,0xad,0xcf,0x84,0xe0,0x7, 0xb7,0x9e,0xe0,0x7, 0x9f,0x9e,0xe3,0xfe,0xc7,0x80, +0xe0,0x7, 0xb7,0x9e,0xe7,0xbf,0x17,0xff,0xa7,0x1c,0x3f,0xde,0x3f,0xcd,0xbf,0x9c, +0x38,0x82,0xe0,0x7, 0x9f,0x9e,0x15,0x1, 0xcf,0x82,0xe0,0x7, 0xb7,0x9e,0x3d,0xea, +0x0, 0xe0,0xe8,0x0, 0xad,0x7, 0x0, 0xe3,0x8, 0xb2,0xe0,0x2, 0x1f,0x91,0xa1,0xf, +0xe0,0x3, 0x1f,0x83,0xa6,0x92,0xa7,0xf, 0xe0,0x40,0xce,0x80,0xbe,0x92,0x3f,0xe8, +0x96,0xd8,0xb6,0xde,0x96,0xf8,0xb6,0xfe,0xe0,0x1, 0x96,0x98,0xe0,0x1, 0x9c,0x28, +0xe0,0x1, 0xb6,0x9e,0x8e,0x8f,0x8e,0x1f,0x36,0xa8,0x97,0xaf,0x3e,0x9c,0xe0,0x1, +0xb6,0xde,0xe0,0x9, 0xb7,0xde,0x17,0x80,0xb7,0x9e,0xdb,0x79,0xa7,0x12,0xe7,0xbf, +0x17,0xff,0x3f,0xde,0xbf,0x92,0x9, 0x61,0xe0,0x1, 0x1f,0xdc,0x14,0x3, 0xa7,0xf, +0xe0,0x1, 0xa7,0x8e,0x37,0xc8,0xe2,0x0, 0xc7,0x81,0x2f,0x82,0x38,0x82,0xe0,0x1, +0xa4,0xe, 0x34,0x49,0xe2,0x0, 0xc4,0x1, 0x38,0x82,0xe0,0x2, 0x1f,0xf0,0xa7,0xf, +0xe0,0x1, 0x1f,0xdc,0xa6,0x8f,0x17,0x80,0xe0,0x1, 0xaf,0xbe,0xa7,0x9e,0xe2,0x0, +0xc7,0x81,0x27,0xfd,0xe0,0x1, 0xa7,0x8d,0x37,0xc1,0xe2,0x0, 0xc7,0x81,0x27,0xf7, +0xa6,0x9e,0x17,0xfe,0x3f,0xdd,0xbf,0x9e,0xe0,0x1, 0x8c,0x3e,0x38,0x82,0xe0,0x2, +0x1f,0xf0,0xa7,0xf, 0xe0,0x1, 0x1f,0xdc,0xe0,0x1, 0xac,0x3e,0xa6,0x8f,0xa7,0x9e, +0xe2,0x0, 0xc7,0x81,0x27,0xfd,0xe0,0x1, 0xa7,0x8d,0x37,0xc1,0xe2,0x0, 0xc7,0x81, +0x27,0xf7,0xa6,0x9e,0x17,0xfe,0x3f,0xdd,0xbf,0x9e,0x38,0x82,0x24,0xa6,0x17,0xff, +0xe0,0x2, 0x1f,0x70,0xe0,0x1, 0x1e,0xdc,0x3f,0x99,0xe3,0xff,0xc7,0xff,0x16,0x7f, +0xa7,0xe, 0xa6,0x8d,0x3e,0x18,0xe0,0xb, 0x3c,0x1f,0x14,0x80,0x15,0x7e,0xe0,0x1, +0xac,0xbe,0xa7,0x9e,0xe2,0x0, 0xc7,0x81,0x27,0xfd,0xe0,0x1, 0xa7,0x8d,0x37,0xc1, +0xe2,0x0, 0xc7,0x81,0x27,0xf7,0xa7,0x9e,0x3f,0xda,0xbf,0x9e,0xe0,0x1, 0x8f,0xbe, +0xe0,0x80,0xaf,0x9c,0x3e,0x7b,0x1, 0xec,0x38,0x82,0x24,0xa3,0x17,0xff,0xe0,0x2, +0x1f,0x70,0xe0,0x1, 0x1e,0xdc,0x3f,0x99,0xe3,0xff,0xc7,0xff,0x16,0x7f,0xa7,0xe, +0xa6,0x8d,0x3e,0x18,0xe0,0xb, 0x3c,0x1f,0x15,0x7e,0xe0,0x80,0x87,0x9c,0xe0,0x1, +0xaf,0xbe,0xa7,0x9e,0xe2,0x0, 0xc7,0x81,0x27,0xfd,0xe0,0x1, 0xa7,0x8d,0x37,0xc1, +0xe2,0x0, 0xc7,0x81,0x27,0xf7,0xa7,0x9e,0x3e,0x7b,0x3f,0xda,0xbf,0x9e,0x1, 0xee, +0x38,0x82,0xe0,0x2, 0x1f,0xf0,0x17,0x1, 0xa7,0x8f,0x3f,0x58,0xa5,0xbf,0x16,0xfb, +0xe0,0xc, 0x37,0x22,0x3e,0xdb,0x3e,0xcc,0xbe,0xbf,0x15,0xef,0xa6,0xbf,0xe0,0xc, +0x37,0x24,0x3e,0xdb,0x3e,0xcc,0xbe,0xbf,0x16,0xf7,0xa5,0xf, 0xe0,0xc, 0x37,0x23, +0x3e,0xda,0x3e,0xcc,0xbe,0x8f,0x16,0xfe,0xa6,0x3f,0x3e,0xdc,0x3f,0x4d,0xbf,0x3f, +0xe0,0x2, 0x1f,0x66,0x8f,0xe, 0xe2,0x0, 0xcf,0x1, 0x1, 0xc, 0x2f,0xa, 0xa6,0x8f, +0xe0,0x2e,0x3c,0xe, 0xe0,0x8, 0x37,0x24,0xe0,0xe, 0x3e,0xdb,0x3f,0x48,0xbf,0xf, +0x38,0x82,0xa7,0xf, 0xcf,0x40,0xbf,0xf, 0x24,0x7, 0xa6,0x8f,0xe7,0xfe,0x17,0x7f, +0x3f,0x5d,0xbf,0xf, 0x38,0x82,0xa7,0xf, 0xe0,0x1, 0xcf,0x0, 0xbf,0xf, 0xe7,0xff, +0x17,0x3f,0xa6,0x8f,0x3f,0x5d,0xbf,0xf, 0x38,0x82,0xe0,0x2, 0x1f,0x70,0x97,0x88, +0xa6,0x8e,0xe2,0xff,0xc7,0xff,0xe0,0x1, 0xb7,0x9d,0x97,0x98,0xe2,0x7f,0xc7,0xff, +0xe0,0x1, 0xb7,0xbd,0x17,0xf7,0x9f,0x8, 0xa6,0x3d,0x37,0x4f,0x37,0x23,0x3f,0xdc, +0x3f,0xce,0xbf,0xbd,0x17,0xfc,0x9f,0x18,0xa6,0x6d,0x37,0x4e,0x3f,0xdc,0x3f,0xce, +0xbf,0xed,0x38,0x82,0xe0,0x2, 0x1e,0x94,0xe0,0x2, 0x1f,0x70,0x87,0xcd,0xa7,0xe, +0xcf,0x82,0xaf,0xcd,0xa7,0xbe,0xcf,0x82,0xbf,0xbe,0x38,0x82,0xe0,0x2, 0x1f,0x14, +0x9f,0xae,0x37,0xc9,0xe2,0x0, 0xc7,0x81,0x2f,0xfc,0x38,0x82,0xe0,0xd, 0x3c,0x49, +0xe2,0x0, 0xce,0x8f,0x3f,0xe8,0x3f,0x69,0x2, 0x8a,0xea,0x4f,0x7c,0x9c,0xe9,0xff, +0xc4,0xff,0x3c,0x9e,0x37,0xa4,0x3f,0x99,0x8c,0xf, 0x38,0x82,0x8, 0xb2,0xe2,0x0, +0xcc,0x0, 0x3, 0x17,0xe2,0x0, 0xcc,0x80,0xe0,0x41,0x3f,0xc8,0x3, 0xb, 0x11,0x1, +0x15,0x0, 0xe0,0x41,0x3c,0xce,0x3c,0x6f,0xd0,0x27,0x29,0x3, 0xe0,0x41,0x3c,0x48, +0x9, 0x61,0x15,0x0, 0x3c,0x6f,0xd0,0x20,0x0, 0xfa,0x15,0x0, 0x9, 0x21,0x0, 0x9c, +0xe2,0x0, 0xcc,0x80,0x3, 0x7b,0x11,0x0, 0x0, 0xec,0x8, 0xb2,0xe2,0x0, 0xcc,0x0, +0x3, 0xf, 0xe0,0x41,0x3c,0x48,0x11,0x1, 0xe2,0x0, 0xcc,0x80,0x3, 0x3, 0xe0,0x41, +0x3c,0xc9,0x15,0x1, 0xd0,0x9, 0x21,0x3, 0xe0,0x41,0x3c,0x48,0x9, 0x61,0x11,0x0, +0x0, 0xf4,0x15,0x0, 0x0, 0x81,0x17,0x81,0x17,0x0, 0xe1,0x2d,0x3c,0x19,0x26,0x84, +0xe1,0x2d,0x3f,0x8e,0x2e,0x88,0x17,0x0, 0x2f,0x8c,0xe2,0x0, 0xcd,0x0, 0xe0,0x68, +0x39,0x2e,0x38,0x82,0xe2,0x0, 0xcc,0x80,0x4, 0x77,0x34,0xa1,0x37,0xa1,0x0, 0xee, +0x3c,0x79,0x4, 0x83,0x3c,0x29,0x3f,0x4f,0x37,0xc1,0x34,0xc1,0x0, 0xee,0x0, 0x0, +0x3d,0xe8,0xe2,0x0, 0xcd,0x3, 0x5, 0xad,0xe0,0xc, 0x3c,0x49,0xe2,0x0, 0xc6,0x3, +0x2e,0x28,0xc5,0x7c,0xe0,0xc, 0x35,0x21,0xe2,0x0, 0xc6,0x18,0xe1,0x80,0xa7,0x99, +0x26,0x8, 0xea,0x0, 0xce,0x81,0xe0,0x7e,0xce,0xe4,0x3e,0xac,0x3f,0x6f,0x3e,0x82, +0xc5,0x70,0x6, 0x93,0xe1,0x80,0xa7,0x19,0xe1,0x80,0xbf,0x9b,0xe1,0x80,0xa7,0x99, +0xe1,0x80,0xbf,0x1b,0xe1,0x80,0xa7,0x19,0xe1,0x80,0xbf,0x9b,0xe1,0x80,0xa7,0x99, +0xc5,0x70,0xe1,0x80,0xbf,0x1b,0x6, 0x6f,0xe1,0x80,0xbf,0x9b,0xe2,0x0, 0xc5,0x3, +0xc5,0x7f,0x6, 0x87,0xe1,0x80,0x86,0x19,0xc5,0x7f,0xe1,0x80,0xae,0x1b,0x6, 0x7b, +0x38,0x82,0x0, 0x0, 0xe2,0x0, 0xcd,0x3, 0x5, 0xb1,0xe2,0x1, 0xc4,0xff,0xe0,0xc, +0x34,0xa8,0x3c,0xcc,0xe4,0xc, 0x34,0xa0,0x3c,0xcc,0xe0,0x41,0x3e,0x48,0xe2,0x0, +0xc6,0x3, 0xe0,0xb, 0x3e,0x18,0xe0,0xd, 0x3d,0x2c,0x3e,0x6d,0xe2,0x0, 0xc6,0xc, +0x26,0x7, 0xea,0x0, 0xcf,0x81,0xe0,0x7f,0xcf,0xd4,0x3f,0xac,0x3f,0x82,0xe1,0xff, +0xc6,0xf0,0x6, 0x8b,0xe1,0x80,0xbc,0x9b,0xe1,0x80,0xbc,0x9b,0xe1,0x80,0xbc,0x9b, +0xc6,0xf0,0xe1,0x80,0xbc,0x9b,0x6, 0x77,0x3d,0x18,0xe0,0xc0,0xac,0xba,0xac,0x9a, +0xac,0xaa,0xac,0x88,0xac,0x98,0xac,0xa8,0x38,0x82,0x3d,0xe8,0xc5,0x7f,0x6, 0x85, +0xe1,0x80,0xac,0x9b,0xc5,0x7f,0x6, 0x7d,0x38,0x82,0xe0,0x3, 0x1f,0x8b,0xbc,0xf, +0x38,0x82,0xe0,0x3, 0x1f,0xb, 0xe0,0x3, 0x1c,0x65,0xa7,0x8e,0x3f,0xb8,0xe0,0x3, +0x1c,0x66,0x3f,0x98,0xe0,0x3, 0x1c,0x67,0xbf,0x8e,0x3c,0x5f,0x38,0x82,0x8, 0xb1, +0xe0,0x60,0x3c,0x87,0xea,0x24,0x7f,0xf8,0xe0,0x0, 0x15,0x60,0x3c,0x6f,0xdf,0x71, +0xe0,0x60,0x3c,0x17,0x8, 0xe1,0x0, 0x0, 0x0, 0x0, 0x16,0x98,0x0, 0x0, 0x16,0x56, +0x0, 0x0, 0x15,0xdc,0x0, 0x0, 0x16,0x56,0x0, 0x0, 0x16,0x4c,0x0, 0x0, 0x16,0xba, +0x0, 0x0, 0x16,0xb0,0x0, 0x0, 0x15,0xe0,0x0, 0x0, 0x16,0xb0,0x0, 0x0, 0x16,0x4c, +0x0, 0x0, 0x2d,0xee,0x0, 0x0, 0x2d,0xf6,0x0, 0x0, 0x2d,0xe8,0x0, 0x0, 0x2d,0xe8, +0x0, 0x0, 0x2d,0xe8,0x0, 0x0, 0x2d,0xe8,0x0, 0x0, 0x2d,0xe8,0x0, 0x0, 0x2d,0xe8, +0x0, 0x0, 0x2d,0xe8,0x0, 0x0, 0x2d,0xe8,0x0, 0x0, 0x2d,0xfc,0x0, 0x0, 0x2e,0xc, +0x0, 0x0, 0x2e,0x1c,0x0, 0x0, 0x2e,0x1c,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98, +0x0, 0x0, 0x2e,0x8e,0x0, 0x0, 0x2e,0x8e,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98, +0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2e,0x8e,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98, +0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2e,0x8e,0x0, 0x0, 0x2e,0x8e,0x0, 0x0, 0x2e,0x8e, +0x0, 0x0, 0x2e,0x8e,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98, +0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98, +0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98, +0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98, +0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98, +0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2e,0x8e, +0x0, 0x0, 0x2e,0x8e,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98, +0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2e,0x8e,0x0, 0x0, 0x2e,0x8e,0x0, 0x0, 0x2f,0x98, +0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98, +0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2e,0x8e,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2e,0x8e, +0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98, +0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98, +0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98, +0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98, +0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98, +0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98, +0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2e,0x8e,0x0, 0x0, 0x2e,0x8e, +0x0, 0x0, 0x2e,0x8e,0x0, 0x0, 0x2e,0x8e,0x0, 0x0, 0x30,0x86,0x0, 0x0, 0x2f,0xce, +0x0, 0x0, 0x2f,0xce,0x0, 0x0, 0x2f,0xce,0x0, 0x0, 0x2f,0xce,0x0, 0x0, 0x2f,0xce, +0x0, 0x0, 0x2f,0xce,0x0, 0x0, 0x2f,0xce,0x0, 0x0, 0x2f,0xce,0x0, 0x0, 0x2f,0xce, +0x0, 0x0, 0x2f,0xce,0x0, 0x0, 0x2f,0xce,0x0, 0x0, 0x2f,0xce,0x0, 0x0, 0x2f,0xce, +0x0, 0x0, 0x2f,0xce,0x0, 0x0, 0x2f,0xce,0x0, 0x0, 0x2f,0xce,0x0, 0x0, 0x30,0x70, +0x0, 0x0, 0x2f,0xce,0x0, 0x0, 0x30,0x54,0x0, 0x0, 0x2f,0xce,0x0, 0x0, 0x30,0x3c, +0x0, 0x0, 0x30,0x2e,0x0, 0x0, 0x30,0x2e,0x0, 0x0, 0x30,0x20,0x0, 0x0, 0x30,0x20, +0x0, 0x0, 0x30,0x20,0x0, 0x0, 0x2f,0xce,0x0, 0x0, 0x30,0xe, 0x0, 0x0, 0x2f,0xce, +0x0, 0x0, 0x2f,0xce,0x0, 0x0, 0x2f,0xce,0x0, 0x0, 0x30,0xc8,0x0, 0x0, 0x30,0xc8, +0x0, 0x0, 0x30,0xc8,0x0, 0x0, 0x2f,0xce,0x0, 0x0, 0x2f,0xce,0x0, 0x0, 0x2f,0xce, +0x0, 0x0, 0x2f,0xce,0x0, 0x0, 0x2f,0xce,0x0, 0x0, 0x33,0xe, 0x0, 0x0, 0x30,0xba, +0x0, 0x0, 0x30,0xac,0x0, 0x0, 0x30,0x0, 0x0, 0x0, 0x2f,0xf2,0x0, 0x0, 0x2f,0xce, +0x0, 0x0, 0x2f,0xce,0x0, 0x0, 0x30,0xd8,0x80,0x0, 0xd, 0x0, 0x80,0x0, 0xb, 0x0, +0x80,0x0, 0xa, 0x0, 0x80,0x0, 0x7, 0x0, 0x80,0x0, 0x5, 0x0, 0x80,0x0, 0x4, 0x0, +0x80,0x0, 0x3, 0x0, 0x80,0x0, 0x2, 0x0, 0x80,0x0, 0x1, 0x0, 0x80,0x0, 0x0, 0x0, +0x80,0x1, 0x20,0x0, 0x0, 0x3, 0x86,0x60,0x0, 0x3, 0x80,0x0, 0x80,0x1, 0x40,0x0, +0x80,0x1, 0x10,0x0, 0x80,0x0, 0x6, 0x0, 0x80,0x0, 0x8, 0x0, 0x50,0x1, 0x32,0x2, +0x0, 0x3, 0xf0,0x4, 0xce,0x5, 0x9c,0x6, 0x84,0x7, 0x81,0x8, 0x0, 0x2, 0x1, 0x0, +0x2, 0x1, 0x0, 0x2, 0x1, 0x0, 0x2, 0x1, 0x0, 0x2, 0x1, 0x0, 0x2, 0x1, 0x0, 0x2, +0x1, 0x0, 0x2, 0x1, 0x0, 0x2, 0x1, 0x0, 0x2, 0x1, 0x0, 0x2, 0xeb,0xaa,0x8, 0x0, +0x0, 0x3, 0x6, 0xa8,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x2, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0x2, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0x3, 0x2, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0x3, 0x2, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0x4, 0x2, 0x2, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x9, 0x4, 0x3, 0x2, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0x5, 0x3, 0x2, 0x2, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0x5, 0x3, 0x2, 0x2, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, +0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 0x6, 0x4, 0x3, 0x2, 0x2, 0x1, 0x1, 0x1, 0x1, 0x1, +0x1, 0x0, 0x0, 0x0, 0x0, 0xd, 0x6, 0x4, 0x3, 0x2, 0x2, 0x1, 0x1, 0x1, 0x1, 0x1, +0x1, 0x1, 0x0, 0x0, 0x0, 0xe, 0x7, 0x4, 0x3, 0x2, 0x2, 0x2, 0x1, 0x1, 0x1, 0x1, +0x1, 0x1, 0x1, 0x0, 0x0, 0xf, 0x7, 0x5, 0x3, 0x3, 0x2, 0x2, 0x1, 0x1, 0x1, 0x1, +0x1, 0x1, 0x1, 0x1, 0xff,0x40,0x0, 0x0, 0x0, 0x2, 0x2e,0x70,0x2, 0x0, 0x0, 0x0, +0x72,0x8d,0x0, 0xff,0xda,0x25,0x4, 0xa7,0x24,0x87,0x55,0x56,0x72,0x8d,0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x34,0x34,0x33,0x35,0x33,0x32,0x30,0x32,0x44,0x31,0x30,0x30,0x33,0x31,0x30,0x30, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x30,0x30,0x31,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, +0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x1, 0x1, 0x12,0x0, 0x20, +0x0, 0x12,0x20,0x12,0x20,0x0, 0x0, 0x2, 0x40,0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x3, +0x1b,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x1b,0x3, 0x1a,0x3, 0x19,0x3, +0x18,0x3, 0x17,0x3, 0x16,0x3, 0x15,0x3, 0x14,0x3, 0x13,0x3, 0x12,0x3, 0x11,0x3, +0x10,0x3, 0xf, 0x3, 0xe, 0x3, 0xd, 0x3, 0xc, 0x3, 0xb, 0x3, 0xa, 0x3, 0x9, 0x3, +0x8, 0x3, 0x7, 0x3, 0x6, 0x3, 0x5, 0x3, 0x4, 0x3, 0x3, 0x3, 0x2, 0x3, 0x1, 0x3, +0x0, 0x2, 0xff,0x2, 0xfe,0x2, 0xfd,0x2, 0xfc,0x2, 0xf4,0x2, 0xf3,0x2, 0xf2,0x2, +0xf1,0x2, 0xf0,0x2, 0xef,0x2, 0xee,0x2, 0xed,0x2, 0xec,0x2, 0xeb,0x2, 0xea,0x2, +0xe9,0x2, 0xe8,0x2, 0xe7,0x2, 0xe6,0x2, 0xe5,0x2, 0xe4,0x2, 0xe3,0x2, 0xe2,0x2, +0xe1,0x2, 0xe0,0x2, 0xdf,0x2, 0xde,0x2, 0xdd,0x2, 0xdc,0x2, 0xdb,0x2, 0xda,0x2, +0xd9,0x2, 0xd8,0x2, 0xd7,0x2, 0xd6,0x2, 0xd5,0x2, 0xcd,0x2, 0xcc,0x2, 0xcb,0x2, +0xca,0x2, 0xc9,0x2, 0xc8,0x2, 0xc7,0x2, 0xc6,0x2, 0xc5,0x2, 0xc4,0x2, 0xc3,0x2, +0xc2,0x2, 0xc1,0x2, 0xc0,0x2, 0xbf,0x2, 0xbe,0x2, 0xbd,0x2, 0xbc,0x2, 0xbb,0x2, +0xba,0x2, 0xb9,0x2, 0xb8,0x2, 0xb7,0x2, 0xb6,0x2, 0xb5,0x2, 0xb4,0x2, 0xb3,0x2, +0xb2,0x2, 0xb1,0x2, 0xb0,0x2, 0xaf,0x2, 0xae,0x2, 0xa3,0x2, 0xa2,0x2, 0xa1,0x2, +0xa0,0x2, 0x9f,0x2, 0x9e,0x2, 0x9d,0x2, 0x9c,0x2, 0x9b,0x2, 0x9a,0x2, 0x99,0x2, +0x98,0x2, 0x97,0x2, 0x96,0x2, 0x95,0x2, 0x94,0x2, 0x93,0x2, 0x92,0x2, 0x91,0x2, +0x90,0x2, 0x8f,0x2, 0x8e,0x2, 0x8d,0x2, 0x8c,0x2, 0x8b,0x2, 0x8a,0x2, 0x89,0x2, +0x88,0x2, 0x87,0x2, 0x86,0x2, 0x85,0x2, 0x84,0x2, 0x7c,0x2, 0x7b,0x2, 0x7a,0x2, +0x79,0x2, 0x78,0x2, 0x77,0x2, 0x76,0x2, 0x75,0x2, 0x74,0x2, 0x73,0x2, 0x72,0x2, +0x71,0x2, 0x70,0x2, 0x6f,0x2, 0x6e,0x2, 0x6d,0x2, 0x6c,0x2, 0x6b,0x2, 0x6a,0x2, +0x69,0x2, 0x68,0x2, 0x67,0x2, 0x66,0x2, 0x65,0x2, 0x64,0x2, 0x63,0x2, 0x62,0x2, +0x61,0x2, 0x60,0x2, 0x5f,0x2, 0x5e,0x2, 0x5d,0x2, 0x55,0x2, 0x54,0x2, 0x53,0x2, +0x52,0x2, 0x51,0x2, 0x50,0x2, 0x4f,0x2, 0x4e,0x2, 0x4d,0x2, 0x4c,0x2, 0x4b,0x2, +0x4a,0x2, 0x49,0x2, 0x48,0x2, 0x47,0x2, 0x46,0x2, 0x45,0x2, 0x44,0x2, 0x43,0x2, +0x42,0x2, 0x41,0x2, 0x40,0x2, 0x3f,0x2, 0x3e,0x2, 0x3d,0x2, 0x3c,0x2, 0x3b,0x2, +0x3a,0x2, 0x39,0x2, 0x38,0x2, 0x37,0x2, 0x36,0x2, 0x2b,0x2, 0x2a,0x2, 0x29,0x2, +0x28,0x2, 0x27,0x2, 0x26,0x2, 0x25,0x2, 0x24,0x2, 0x23,0x2, 0x22,0x2, 0x21,0x2, +0x20,0x2, 0x1f,0x2, 0x1e,0x2, 0x1d,0x2, 0x1c,0x2, 0x1b,0x2, 0x1a,0x2, 0x19,0x2, +0x18,0x2, 0x17,0x2, 0x16,0x2, 0x15,0x2, 0x14,0x2, 0x13,0x2, 0x12,0x2, 0x11,0x2, +0x10,0x2, 0xf, 0x2, 0xe, 0x2, 0xd, 0x2, 0xc, 0x2, 0x4, 0x2, 0x3, 0x2, 0x2, 0x2, +0x1, 0x2, 0x0, 0x1, 0xff,0x1, 0xfe,0x1, 0xfd,0x1, 0xfc,0x1, 0xfb,0x1, 0xfa,0x1, +0xf9,0x1, 0xf8,0x1, 0xf7,0x1, 0xf6,0x1, 0xf5,0x1, 0xf4,0x1, 0xf3,0x1, 0xf2,0x1, +0xf1,0x1, 0xf0,0x1, 0xef,0x1, 0xee,0x1, 0xed,0x1, 0xec,0x1, 0xeb,0x1, 0xea,0x1, +0xe9,0x1, 0xe8,0x1, 0xe7,0x1, 0xe6,0x1, 0xe5,0x1, 0xdd,0x1, 0xdc,0x1, 0xdb,0x1, +0xda,0x1, 0xd9,0x1, 0xd8,0x1, 0xd7,0x1, 0xd6,0x1, 0xd5,0x1, 0xd4,0x1, 0xd3,0x1, +0xd2,0x1, 0xd1,0x1, 0xd0,0x1, 0xcf,0x1, 0xce,0x1, 0xcd,0x1, 0xcc,0x1, 0xcb,0x1, +0xca,0x1, 0xc9,0x1, 0xc8,0x1, 0xc7,0x1, 0xc6,0x1, 0xc5,0x1, 0xc4,0x1, 0xc3,0x1, +0xc2,0x1, 0xc1,0x1, 0xc0,0x1, 0xbf,0x1, 0xbe,0x1, 0x62,0x1, 0x61,0x1, 0x60,0x1, +0x5f,0x1, 0x5e,0x1, 0x5d,0x1, 0x5c,0x1, 0x5b,0x1, 0x5a,0x1, 0x59,0x1, 0x58,0x1, +0x57,0x1, 0x56,0x1, 0x55,0x1, 0x54,0x1, 0x53,0x1, 0x52,0x1, 0x51,0x1, 0x50,0x1, +0x4f,0x1, 0x4e,0x1, 0x4d,0x1, 0x4c,0x1, 0x4b,0x1, 0x4a,0x1, 0x49,0x1, 0x48,0x1, +0x47,0x1, 0x46,0x1, 0x45,0x1, 0x44,0x1, 0x43,0x1, 0x3b,0x1, 0x3a,0x1, 0x39,0x1, +0x38,0x1, 0x37,0x1, 0x36,0x1, 0x35,0x1, 0x34,0x1, 0x33,0x1, 0x32,0x1, 0x31,0x1, +0x30,0x1, 0x2f,0x1, 0x2e,0x1, 0x2d,0x1, 0x2c,0x1, 0x2b,0x1, 0x2a,0x1, 0x29,0x1, +0x28,0x1, 0x27,0x1, 0x26,0x1, 0x25,0x1, 0x24,0x1, 0x23,0x1, 0x22,0x1, 0x21,0x1, +0x20,0x1, 0x1f,0x1, 0x1e,0x1, 0x1d,0x1, 0x1c,0x1, 0x14,0x1, 0x13,0x1, 0x12,0x1, +0x11,0x1, 0x10,0x1, 0xf, 0x1, 0xe, 0x1, 0xd, 0x1, 0xc, 0x1, 0xb, 0x1, 0xa, 0x1, +0x9, 0x1, 0x8, 0x1, 0x7, 0x1, 0x6, 0x1, 0x5, 0x1, 0x4, 0x1, 0x3, 0x1, 0x2, 0x1, +0x1, 0x1, 0x0, 0x0, 0xff,0x0, 0xfe,0x0, 0xfd,0x0, 0xfc,0x0, 0xfb,0x0, 0xfa,0x0, +0xf9,0x0, 0xf8,0x0, 0xf7,0x0, 0xf6,0x0, 0xf5,0x0, 0xea,0x0, 0xe9,0x0, 0xe8,0x0, +0xe7,0x0, 0xe6,0x0, 0xe5,0x0, 0xe4,0x0, 0xe3,0x0, 0xe2,0x0, 0xe1,0x0, 0xe0,0x0, +0xdf,0x0, 0xde,0x0, 0xdd,0x0, 0xdc,0x0, 0xdb,0x0, 0xda,0x0, 0xd9,0x0, 0xd8,0x0, +0xd7,0x0, 0xd6,0x0, 0xd5,0x0, 0xd4,0x0, 0xd3,0x0, 0xd2,0x0, 0xd1,0x0, 0xd0,0x0, +0xcf,0x0, 0xce,0x0, 0xcd,0x0, 0xcc,0x0, 0xcb,0x0, 0xc3,0x0, 0xc2,0x0, 0xc1,0x0, +0xc0,0x0, 0xbf,0x0, 0xbe,0x0, 0xbd,0x0, 0xbc,0x0, 0xbb,0x0, 0xba,0x0, 0xb9,0x0, +0xb8,0x0, 0xb7,0x0, 0xb6,0x0, 0xb5,0x0, 0xb4,0x0, 0xb3,0x0, 0xb2,0x0, 0xb1,0x0, +0xb0,0x0, 0xaf,0x0, 0xae,0x0, 0xad,0x0, 0xac,0x0, 0xab,0x0, 0xaa,0x0, 0xa9,0x0, +0xa8,0x0, 0xa7,0x0, 0xa6,0x0, 0xa5,0x0, 0xa4,0x0, 0x9c,0x0, 0x9b,0x0, 0x9a,0x0, +0x99,0x0, 0x98,0x0, 0x97,0x0, 0x96,0x0, 0x95,0x0, 0x94,0x0, 0x93,0x0, 0x92,0x0, +0x91,0x0, 0x90,0x0, 0x8f,0x0, 0x8e,0x0, 0x8d,0x0, 0x8c,0x0, 0x8b,0x0, 0x8a,0x0, +0x89,0x0, 0x88,0x0, 0x87,0x0, 0x86,0x0, 0x85,0x0, 0x84,0x0, 0x83,0x0, 0x82,0x0, +0x81,0x0, 0x80,0x0, 0x7f,0x0, 0x7e,0x0, 0x7d,0x0, 0x72,0x0, 0x71,0x0, 0x70,0x0, +0x6f,0x0, 0x6e,0x0, 0x6d,0x0, 0x6c,0x0, 0x6b,0x0, 0x6a,0x0, 0x69,0x0, 0x68,0x0, +0x67,0x0, 0x66,0x0, 0x65,0x0, 0x64,0x0, 0x63,0x0, 0x62,0x0, 0x61,0x0, 0x60,0x0, +0x5f,0x0, 0x5e,0x0, 0x5d,0x0, 0x5c,0x0, 0x5b,0x0, 0x5a,0x0, 0x59,0x0, 0x58,0x0, +0x57,0x0, 0x56,0x0, 0x55,0x0, 0x54,0x0, 0x53,0x0, 0x4b,0x0, 0x4a,0x0, 0x49,0x0, +0x48,0x0, 0x47,0x0, 0x46,0x0, 0x45,0x0, 0x44,0x0, 0x43,0x0, 0x42,0x0, 0x41,0x0, +0x40,0x0, 0x3f,0x0, 0x3e,0x0, 0x3d,0x0, 0x3c,0x0, 0x3b,0x0, 0x3a,0x0, 0x39,0x0, +0x38,0x0, 0x37,0x0, 0x36,0x0, 0x35,0x0, 0x34,0x0, 0x33,0x0, 0x32,0x0, 0x31,0x0, +0x30,0x0, 0x2f,0x0, 0x2e,0x0, 0x2d,0x0, 0x2c,0x0, 0x24,0x0, 0x23,0x0, 0x22,0x0, +0x21,0x0, 0x20,0x0, 0x1f,0x0, 0x1e,0x0, 0x1d,0x0, 0x1c,0x0, 0x1b,0x0, 0x1a,0x0, +0x19,0x0, 0x18,0x0, 0x17,0x0, 0x16,0x0, 0x15,0x0, 0x14,0x0, 0x13,0x0, 0x12,0x0, +0x11,0x0, 0x10,0x0, 0xf, 0x0, 0xe, 0x0, 0xd, 0x0, 0xc, 0x0, 0xb, 0x0, 0xa, 0x0, +0x9, 0x0, 0x8, 0x0, 0x7, 0x0, 0x6, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x1b,0x3, 0x1a,0x3, 0x19,0x3, +0x18,0x3, 0x17,0x3, 0x16,0x3, 0x15,0x3, 0x14,0x3, 0x13,0x3, 0x12,0x3, 0x11,0x3, +0x10,0x3, 0xf, 0x3, 0xe, 0x3, 0xd, 0x3, 0xc, 0x3, 0xb, 0x3, 0xa, 0x3, 0x9, 0x3, +0x8, 0x3, 0x7, 0x3, 0x6, 0x3, 0x5, 0x3, 0x4, 0x3, 0x3, 0x3, 0x2, 0x3, 0x1, 0x3, +0x0, 0x2, 0xff,0x2, 0xfe,0x2, 0xfd,0x2, 0xfc,0x2, 0xf4,0x2, 0xf3,0x2, 0xf2,0x2, +0xf1,0x2, 0xf0,0x2, 0xef,0x2, 0xee,0x2, 0xed,0x2, 0xec,0x2, 0xeb,0x2, 0xea,0x2, +0xe9,0x2, 0xe8,0x2, 0xe7,0x2, 0xe6,0x2, 0xe5,0x2, 0xe4,0x2, 0xe3,0x2, 0xe2,0x2, +0xe1,0x2, 0xe0,0x2, 0xdf,0x2, 0xde,0x2, 0xdd,0x2, 0xdc,0x2, 0xdb,0x2, 0xda,0x2, +0xd9,0x2, 0xd8,0x2, 0xd7,0x2, 0xd6,0x2, 0xd5,0x2, 0xcd,0x2, 0xcc,0x2, 0xcb,0x2, +0xca,0x2, 0xc9,0x2, 0xc8,0x2, 0xc7,0x2, 0xc6,0x2, 0xc5,0x2, 0xc4,0x2, 0xc3,0x2, +0xc2,0x2, 0xc1,0x2, 0xc0,0x2, 0xbf,0x2, 0xbe,0x2, 0xbd,0x2, 0xbc,0x2, 0xbb,0x2, +0xba,0x2, 0xb9,0x2, 0xb8,0x2, 0xb7,0x2, 0xb6,0x2, 0xb5,0x2, 0xb4,0x2, 0xb3,0x2, +0xb2,0x2, 0xb1,0x2, 0xb0,0x2, 0xaf,0x2, 0xae,0x2, 0xa3,0x2, 0xa2,0x2, 0xa1,0x2, +0xa0,0x2, 0x9f,0x2, 0x9e,0x2, 0x9d,0x2, 0x9c,0x2, 0x9b,0x2, 0x9a,0x2, 0x99,0x2, +0x98,0x2, 0x97,0x2, 0x96,0x2, 0x95,0x2, 0x94,0x2, 0x93,0x2, 0x92,0x2, 0x91,0x2, +0x90,0x2, 0x8f,0x2, 0x8e,0x2, 0x8d,0x2, 0x8c,0x2, 0x8b,0x2, 0x8a,0x2, 0x89,0x2, +0x88,0x2, 0x87,0x2, 0x86,0x2, 0x85,0x2, 0x84,0x2, 0x7c,0x2, 0x7b,0x2, 0x7a,0x2, +0x79,0x2, 0x78,0x2, 0x77,0x2, 0x76,0x2, 0x75,0x2, 0x74,0x2, 0x73,0x2, 0x72,0x2, +0x71,0x2, 0x70,0x2, 0x6f,0x2, 0x6e,0x2, 0x6d,0x2, 0x6c,0x2, 0x6b,0x2, 0x6a,0x2, +0x69,0x2, 0x68,0x2, 0x67,0x2, 0x66,0x2, 0x65,0x2, 0x64,0x2, 0x63,0x2, 0x62,0x2, +0x61,0x2, 0x60,0x2, 0x5f,0x2, 0x5e,0x2, 0x5d,0x2, 0x55,0x2, 0x54,0x2, 0x53,0x2, +0x52,0x2, 0x51,0x2, 0x50,0x2, 0x4f,0x2, 0x4e,0x2, 0x4d,0x2, 0x4c,0x2, 0x4b,0x2, +0x4a,0x2, 0x49,0x2, 0x48,0x2, 0x47,0x2, 0x46,0x2, 0x45,0x2, 0x44,0x2, 0x43,0x2, +0x42,0x2, 0x41,0x2, 0x40,0x2, 0x3f,0x2, 0x3e,0x2, 0x3d,0x2, 0x3c,0x2, 0x3b,0x2, +0x3a,0x2, 0x39,0x2, 0x38,0x2, 0x37,0x2, 0x36,0x2, 0x2b,0x2, 0x2a,0x2, 0x29,0x2, +0x28,0x2, 0x27,0x2, 0x26,0x2, 0x25,0x2, 0x24,0x2, 0x23,0x2, 0x22,0x2, 0x21,0x2, +0x20,0x2, 0x1f,0x2, 0x1e,0x2, 0x1d,0x2, 0x1c,0x2, 0x1b,0x2, 0x1a,0x2, 0x19,0x2, +0x18,0x2, 0x17,0x2, 0x16,0x2, 0x15,0x2, 0x14,0x2, 0x13,0x2, 0x12,0x2, 0x11,0x2, +0x10,0x2, 0xf, 0x2, 0xe, 0x2, 0xd, 0x2, 0xc, 0x2, 0x4, 0x2, 0x3, 0x2, 0x2, 0x2, +0x1, 0x2, 0x0, 0x1, 0xff,0x1, 0xfe,0x1, 0xfd,0x1, 0xfc,0x1, 0xfb,0x1, 0xfa,0x1, +0xf9,0x1, 0xf8,0x1, 0xf7,0x1, 0xf6,0x1, 0xf5,0x1, 0xf4,0x1, 0xf3,0x1, 0xf2,0x1, +0xf1,0x1, 0xf0,0x1, 0xef,0x1, 0xee,0x1, 0xed,0x1, 0xec,0x1, 0xeb,0x1, 0xea,0x1, +0xe9,0x1, 0xe8,0x1, 0xe7,0x1, 0xe6,0x1, 0xe5,0x1, 0xdd,0x1, 0xdc,0x1, 0xdb,0x1, +0xda,0x1, 0xd9,0x1, 0xd8,0x1, 0xd7,0x1, 0xd6,0x1, 0xd5,0x1, 0xd4,0x1, 0xd3,0x1, +0xd2,0x1, 0xd1,0x1, 0xd0,0x1, 0xcf,0x1, 0xce,0x1, 0xcd,0x1, 0xcc,0x1, 0xcb,0x1, +0xca,0x1, 0xc9,0x1, 0xc8,0x1, 0xc7,0x1, 0xc6,0x1, 0xc5,0x1, 0xc4,0x1, 0xc3,0x1, +0xc2,0x1, 0xc1,0x1, 0xc0,0x1, 0xbf,0x1, 0xbe,0x1, 0x62,0x1, 0x61,0x1, 0x60,0x1, +0x5f,0x1, 0x5e,0x1, 0x5d,0x1, 0x5c,0x1, 0x5b,0x1, 0x5a,0x1, 0x59,0x1, 0x58,0x1, +0x57,0x1, 0x56,0x1, 0x55,0x1, 0x54,0x1, 0x53,0x1, 0x52,0x1, 0x51,0x1, 0x50,0x1, +0x4f,0x1, 0x4e,0x1, 0x4d,0x1, 0x4c,0x1, 0x4b,0x1, 0x4a,0x1, 0x49,0x1, 0x48,0x1, +0x47,0x1, 0x46,0x1, 0x45,0x1, 0x44,0x1, 0x43,0x1, 0x3b,0x1, 0x3a,0x1, 0x39,0x1, +0x38,0x1, 0x37,0x1, 0x36,0x1, 0x35,0x1, 0x34,0x1, 0x33,0x1, 0x32,0x1, 0x31,0x1, +0x30,0x1, 0x2f,0x1, 0x2e,0x1, 0x2d,0x1, 0x2c,0x1, 0x2b,0x1, 0x2a,0x1, 0x29,0x1, +0x28,0x1, 0x27,0x1, 0x26,0x1, 0x25,0x1, 0x24,0x1, 0x23,0x1, 0x22,0x1, 0x21,0x1, +0x20,0x1, 0x1f,0x1, 0x1e,0x1, 0x1d,0x1, 0x1c,0x1, 0x14,0x1, 0x13,0x1, 0x12,0x1, +0x11,0x1, 0x10,0x1, 0xf, 0x1, 0xe, 0x1, 0xd, 0x1, 0xc, 0x1, 0xb, 0x1, 0xa, 0x1, +0x9, 0x1, 0x8, 0x1, 0x7, 0x1, 0x6, 0x1, 0x5, 0x1, 0x4, 0x1, 0x3, 0x1, 0x2, 0x1, +0x1, 0x1, 0x0, 0x0, 0xff,0x0, 0xfe,0x0, 0xfd,0x0, 0xfc,0x0, 0xfb,0x0, 0xfa,0x0, +0xf9,0x0, 0xf8,0x0, 0xf7,0x0, 0xf6,0x0, 0xf5,0x0, 0xea,0x0, 0xe9,0x0, 0xe8,0x0, +0xe7,0x0, 0xe6,0x0, 0xe5,0x0, 0xe4,0x0, 0xe3,0x0, 0xe2,0x0, 0xe1,0x0, 0xe0,0x0, +0xdf,0x0, 0xde,0x0, 0xdd,0x0, 0xdc,0x0, 0xdb,0x0, 0xda,0x0, 0xd9,0x0, 0xd8,0x0, +0xd7,0x0, 0xd6,0x0, 0xd5,0x0, 0xd4,0x0, 0xd3,0x0, 0xd2,0x0, 0xd1,0x0, 0xd0,0x0, +0xcf,0x0, 0xce,0x0, 0xcd,0x0, 0xcc,0x0, 0xcb,0x0, 0xc3,0x0, 0xc2,0x0, 0xc1,0x0, +0xc0,0x0, 0xbf,0x0, 0xbe,0x0, 0xbd,0x0, 0xbc,0x0, 0xbb,0x0, 0xba,0x0, 0xb9,0x0, +0xb8,0x0, 0xb7,0x0, 0xb6,0x0, 0xb5,0x0, 0xb4,0x0, 0xb3,0x0, 0xb2,0x0, 0xb1,0x0, +0xb0,0x0, 0xaf,0x0, 0xae,0x0, 0xad,0x0, 0xac,0x0, 0xab,0x0, 0xaa,0x0, 0xa9,0x0, +0xa8,0x0, 0xa7,0x0, 0xa6,0x0, 0xa5,0x0, 0xa4,0x0, 0x9c,0x0, 0x9b,0x0, 0x9a,0x0, +0x99,0x0, 0x98,0x0, 0x97,0x0, 0x96,0x0, 0x95,0x0, 0x94,0x0, 0x93,0x0, 0x92,0x0, +0x91,0x0, 0x90,0x0, 0x8f,0x0, 0x8e,0x0, 0x8d,0x0, 0x8c,0x0, 0x8b,0x0, 0x8a,0x0, +0x89,0x0, 0x88,0x0, 0x87,0x0, 0x86,0x0, 0x85,0x0, 0x84,0x0, 0x83,0x0, 0x82,0x0, +0x81,0x0, 0x80,0x0, 0x7f,0x0, 0x7e,0x0, 0x7d,0x0, 0x72,0x0, 0x71,0x0, 0x70,0x0, +0x6f,0x0, 0x6e,0x0, 0x6d,0x0, 0x6c,0x0, 0x6b,0x0, 0x6a,0x0, 0x69,0x0, 0x68,0x0, +0x67,0x0, 0x66,0x0, 0x65,0x0, 0x64,0x0, 0x63,0x0, 0x62,0x0, 0x61,0x0, 0x60,0x0, +0x5f,0x0, 0x5e,0x0, 0x5d,0x0, 0x5c,0x0, 0x5b,0x0, 0x5a,0x0, 0x59,0x0, 0x58,0x0, +0x57,0x0, 0x56,0x0, 0x55,0x0, 0x54,0x0, 0x53,0x0, 0x4b,0x0, 0x4a,0x0, 0x49,0x0, +0x48,0x0, 0x47,0x0, 0x46,0x0, 0x45,0x0, 0x44,0x0, 0x43,0x0, 0x42,0x0, 0x41,0x0, +0x40,0x0, 0x3f,0x0, 0x3e,0x0, 0x3d,0x0, 0x3c,0x0, 0x3b,0x0, 0x3a,0x0, 0x39,0x0, +0x38,0x0, 0x37,0x0, 0x36,0x0, 0x35,0x0, 0x34,0x0, 0x33,0x0, 0x32,0x0, 0x31,0x0, +0x30,0x0, 0x2f,0x0, 0x2e,0x0, 0x2d,0x0, 0x2c,0x0, 0x24,0x0, 0x23,0x0, 0x22,0x0, +0x21,0x0, 0x20,0x0, 0x1f,0x0, 0x1e,0x0, 0x1d,0x0, 0x1c,0x0, 0x1b,0x0, 0x1a,0x0, +0x19,0x0, 0x18,0x0, 0x17,0x0, 0x16,0x0, 0x15,0x0, 0x14,0x0, 0x13,0x0, 0x12,0x0, +0x11,0x0, 0x10,0x0, 0xf, 0x0, 0xe, 0x0, 0xd, 0x0, 0xc, 0x0, 0xb, 0x0, 0xa, 0x0, +0x9, 0x0, 0x8, 0x0, 0x7, 0x0, 0x6, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x17,0x3, 0x5, 0x0, 0xd, 0x17,0x3, +0x5, 0x1, 0xe, 0x17,0x3, 0x5, 0x2, 0x10,0x2, 0x1, 0xa, 0x1e,0x24,0x14,0x0, 0x64, +0xd, 0xac,0x0, 0xc8,0x1, 0x4, 0x0, 0x87,0x0, 0xd2,0x1, 0xf4,0x1, 0x90,0x1, 0x90, +0x1, 0x2c,0x1, 0x2c,0xa, 0x0, 0x2, 0x56,0x1, 0x5, 0xc, 0x1e,0x3c,0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x6, 0x1, 0x0, 0x1, 0x80,0x1, 0x0, 0x14,0x1, 0xda,0x0, 0x1, 0x0, 0x16,0x1, +0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0xeb,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x1d,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x3, 0x3, 0x0, 0xff,0xff,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x1, 0xc8,0xb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x2, 0x40,0x4, 0x0, 0x2, 0xd5,0x1, 0x68,0x28,0x28,0x1, 0x9a,0x1, +0xb8,0x0, 0xa0,0x0, 0xa2,0x5, 0xa0,0x2, 0xd0,0x2e,0x2e,0x1, 0x98,0x1, 0x7a,0x0, +0xb4,0x0, 0xb4,0x12,0x0, 0xb4,0x1, 0x68,0x2, 0x1c,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xa8,0x1, 0x2c, +0x0, 0x48,0x0, 0x1, 0x1, 0x5, 0x1, 0x2, 0x2, 0x4, 0x4, 0x6, 0x80,0x0, 0x64,0x7, +0xd0,0x8, 0x5, 0x6, 0x1, 0x2c,0x2, 0x58,0x1, 0x90,0x1f,0x40,0x23,0x1, 0x86,0x1, +0x86,0x0, 0xc, 0x17,0x11,0x12,0x1, 0x2c,0x1, 0x4, 0x4, 0x10,0x2, 0x8, 0x3, 0xa, +0xa, 0x0, 0x50,0x2, 0x85,0x0, 0x50,0x5, 0x50,0x0, 0x32,0x1, 0x5e,0x1, 0x5e,0x3, +0x20,0x0, 0xc8,0x0, 0x28,0x0, 0x1e,0x0, 0x80,0x0, 0xb5,0x2, 0xd0,0x0, 0x3c,0x3, +0xe8,0x1, 0x68,0x1, 0x6a,0x0, 0x3c,0x3, 0xe8,0x0, 0x20,0x2, 0xb5,0x0, 0x0, 0x5, +0xa0,0x0, 0x64,0x0, 0xa0,0x0, 0xa0,0x13,0x88,0x1, 0x2c,0x0, 0x0, 0x2, 0x3f,0x0, +0x1, 0x4, 0x0, 0x5, 0x0, 0x20,0x1, 0x0, 0x0, 0x5c,0x5c,0x0, 0x5c,0x5c,0x0, 0x5c, +0x5c,0x0, 0x0, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, +0xff,0x0, 0x1, 0x2, 0x0, 0xff,0x1, 0x2, 0x0, 0x1, 0xff,0x2, 0x0, 0x1, 0x2, 0xff, +0x7f,0xff,0x1, 0x1, 0x1, 0x2, 0x4, 0x8, 0x10,0x20,0x40,0x80,0x64,0xff,0xff,0xff, +0x30,0x0, 0x0, 0x0, 0x40,0x33,0x2d,0x24,0x1e,0x18,0x10,0xa, 0xa, 0xe, 0x15,0x1e, +0x24,0x2b,0x32,0x35,0x2f,0x28,0x22,0x1a,0x13,0xa, 0x3, 0x0, 0x1, 0x4, 0xa, 0x12, +0x1b,0x25,0x2c,0x31,0x9, 0x0, 0x0, 0x2, 0x4, 0x8, 0xf, 0x19,0x20,0x27,0x2b,0x2d, +0x2e,0x2e,0x2e,0x2c,0x2c,0x2d,0x2e,0x32,0x35,0x3b,0x43,0x4d,0x56,0x5d,0x62,0x67, +0x6a,0x6d,0x6e,0x70,0xda,0xe1,0xff,0x55,0x35,0x2e,0x27,0x22,0x1f,0x1b,0x16,0x10, +0xc, 0x8, 0x6, 0x4, 0x2, 0x0, 0x0, 0x0, 0x1, 0x3, 0x6, 0xb, 0xe, 0x12,0x17,0x1d, +0x22,0x26,0x2a,0x30,0x35,0x39,0x3d,0x3f,0x0, 0x0, 0x1, 0x4, 0x6, 0x8, 0xb, 0x10, +0x16,0x1b,0x1f,0x23,0x28,0x2d,0x32,0x36,0x3b,0x40,0x44,0x48,0x4a,0x4b,0x4c,0x4b, +0x4a,0x48,0x46,0x43,0x40,0x3e,0x3c,0x3a,0x3c,0x9c,0x34,0x55,0x40,0x39,0x34,0x2f, +0x2a,0x24,0x20,0x1b,0x15,0x10,0xb, 0x7, 0x3, 0x1, 0x0, 0x0, 0x0, 0x1, 0x2, 0x3, +0x4, 0x7, 0xa, 0xc, 0x10,0x15,0x19,0x1d,0x22,0x28,0x2d,0x31,0x4, 0x0, 0x0, 0x0, +0x1, 0x4, 0x6, 0x9, 0xd, 0x11,0x16,0x1b,0x21,0x27,0x2c,0x30,0x35,0x3c,0x42,0x46, +0x4a,0x51,0x57,0x5b,0x60,0x63,0x65,0x64,0x61,0x5d,0x59,0x56,0x89,0x65,0x34,0x55, +0x0, 0x3, 0x4, 0x6, 0x7, 0x9, 0x9, 0xb, 0xd, 0xf, 0x13,0x16,0x19,0x1d,0x20,0x22, +0x26,0x29,0x2b,0x2b,0x2d,0x2e,0x30,0x31,0x33,0x34,0x36,0x38,0x3a,0x3c,0x3e,0x3f, +0x13,0x19,0x1e,0x22,0x26,0x29,0x2c,0x31,0x35,0x39,0x3c,0x3e,0x3f,0x3e,0x3b,0x38, +0x35,0x32,0x2f,0x2c,0x28,0x24,0x20,0x1c,0x19,0x16,0x12,0xe, 0xa, 0x6, 0x3, 0x1, +0x97,0xae,0xff,0x55,0x14,0x1a,0x1f,0x25,0x2a,0x2d,0x2d,0x28,0x24,0x1f,0x1b,0x17, +0x12,0xe, 0xc, 0xa, 0x8, 0x8, 0x8, 0x8, 0xa, 0xe, 0x13,0x17,0x1b,0x20,0x26,0x2c, +0x32,0x36,0x3c,0x3d,0x2c,0x2b,0x2a,0x27,0x24,0x21,0x1c,0x1a,0x1a,0x1c,0x1e,0x20, +0x25,0x2a,0x2e,0x32,0x37,0x3b,0x3f,0x43,0x47,0x4c,0x50,0x51,0x53,0x54,0x55,0x56, +0x57,0x57,0x57,0x57,0xdd,0x4, 0x33,0x55,0xe, 0x15,0x1b,0x21,0x26,0x2a,0x30,0x36, +0x3a,0x3d,0x3e,0x3d,0x3a,0x36,0x32,0x2d,0x28,0x1c,0x16,0x10,0xa, 0x6, 0x3, 0x1, +0x0, 0x0, 0x3, 0xa, 0x15,0x29,0x39,0x39,0x37,0x35,0x32,0x2f,0x2c,0x29,0x24,0x1e, +0x18,0x12,0xd, 0x9, 0x5, 0x1, 0x0, 0x0, 0x0, 0x5, 0x9, 0xe, 0x14,0x1c,0x24,0x2c, +0x35,0x3e,0x45,0x4a,0x4b,0x45,0x3f,0x3f,0xf3,0x41,0x33,0x55,0xa, 0x12,0x1a,0x1e, +0x23,0x26,0x25,0x1f,0x1b,0x12,0xa, 0x8, 0x4, 0x2, 0x0, 0x0, 0x0, 0x2, 0x6, 0x11, +0x19,0x1d,0x26,0x31,0x36,0x3d,0x3d,0x3d,0x3d,0x3d,0x3d,0x3d,0x33,0x2c,0x23,0x1e, +0x16,0xe, 0x9, 0x1, 0x1, 0x6, 0x11,0x16,0x1f,0x25,0x2e,0x39,0x3e,0x46,0x49,0x48, +0x43,0x3f,0x35,0x2a,0x25,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xa2,0x28,0x33,0x55, +0x3, 0xb, 0x10,0x15,0x1a,0x1e,0x21,0x27,0x29,0x28,0x25,0x20,0x1b,0xe, 0x9, 0x7, +0x5, 0x3, 0x1, 0x0, 0x0, 0x1, 0x3, 0x5, 0x9, 0x16,0x1f,0x29,0x33,0x36,0x36,0x36, +0x22,0x20,0x1f,0x1e,0x1b,0x18,0x15,0xc, 0x7, 0x2, 0x0, 0x0, 0x2, 0xb, 0x10,0x14, +0x18,0x1c,0x21,0x2b,0x2f,0x33,0x37,0x3b,0x3d,0x3f,0x3f,0x3e,0x3c,0x3b,0x3b,0x3b, +0x6, 0x43,0x33,0x55,0x4, 0xc, 0x13,0x1a,0x20,0x26,0x2c,0x32,0x34,0x31,0x2b,0x24, +0x1b,0x14,0xd, 0x6, 0x3, 0x1, 0x0, 0x0, 0x0, 0x2, 0x7, 0xe, 0x16,0x1d,0x23,0x29, +0x30,0x36,0x3d,0x3e,0x1b,0x1c,0x1d,0x1d,0x1d,0x1c,0x1a,0x16,0x10,0x9, 0x3, 0x0, +0x0, 0x3, 0xa, 0x12,0x19,0x1f,0x25,0x2c,0x32,0x39,0x3f,0x44,0x47,0x48,0x47,0x46, +0x43,0x3f,0x3b,0x3a,0x7c,0x49,0x33,0x55,0xb, 0x14,0x1b,0x23,0x2e,0x34,0x38,0x39, +0x36,0x32,0x2b,0x24,0x18,0x12,0xd, 0x9, 0x4, 0x2, 0x0, 0x0, 0x2, 0x6, 0xd, 0x13, +0x1f,0x25,0x2c,0x33,0x3e,0x3f,0x3f,0x3f,0x24,0x26,0x26,0x26,0x25,0x22,0x1d,0x16, +0xb, 0x5, 0x2, 0x0, 0x2, 0x6, 0xc, 0x13,0x1d,0x23,0x29,0x2f,0x3a,0x40,0x45,0x47, +0x49,0x49,0x48,0x46,0x42,0x41,0x41,0x41,0xd3,0x80,0x33,0x55,0x0, 0x8, 0x10,0x16, +0x1d,0x23,0x2b,0x30,0x32,0x32,0x30,0x2c,0x26,0x1e,0x18,0x11,0xb, 0x9, 0x6, 0x5, +0x4, 0x4, 0x6, 0xa, 0x11,0x19,0x21,0x28,0x2f,0x36,0x3c,0x3f,0x1f,0x21,0x22,0x22, +0x21,0x20,0x1d,0x18,0x12,0xc, 0x6, 0x2, 0x0, 0x0, 0x3, 0x9, 0x12,0x19,0x20,0x26, +0x2c,0x34,0x3b,0x41,0x45,0x48,0x49,0x48,0x46,0x42,0x3e,0x3c,0xdb,0x35,0x33,0x55, +0x4, 0xb, 0x13,0x1b,0x23,0x2a,0x29,0x1f,0x16,0xe, 0x6, 0x2, 0x0, 0x0, 0x3, 0x7, +0x10,0x19,0x22,0x2b,0x33,0x38,0x3c,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f, +0x2c,0x27,0x21,0x1b,0x15,0xd, 0x4, 0x0, 0x1, 0x5, 0xc, 0x14,0x1d,0x28,0x32,0x36, +0x3d,0x3f,0x3e,0x3c,0x36,0x2e,0x26,0x1e,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d, +0xb5,0x6c,0x33,0x55,0x17,0x1c,0x20,0x27,0x2b,0x30,0x39,0x3d,0x3f,0x3d,0x3a,0x35, +0x2b,0x25,0x20,0x17,0x13,0xe, 0x6, 0x3, 0x0, 0x0, 0x2, 0x9, 0xd, 0x11,0x19,0x1a, +0x1a,0x1a,0x1a,0x1a,0xa, 0x11,0x16,0x1d,0x20,0x23,0x23,0x1f,0x1a,0x10,0xb, 0x7, +0x1, 0x0, 0x0, 0x2, 0x4, 0x7, 0x10,0x16,0x21,0x26,0x2b,0x35,0x39,0x3c,0x3f,0x40, +0x40,0x40,0x40,0x40,0x68,0xc0,0x33,0x55,0xa, 0x10,0x1a,0x1e,0x26,0x2c,0x2d,0x2c, +0x29,0x20,0x15,0xf, 0x6, 0x3, 0x0, 0x0, 0x0, 0x3, 0x7, 0x10,0x1c,0x22,0x2d,0x37, +0x3c,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x2b,0x29,0x24,0x21,0x1a,0x12,0xe, 0x5, +0x2, 0x0, 0x1, 0x3, 0xb, 0x10,0x1a,0x25,0x29,0x32,0x36,0x3d,0x3f,0x3e,0x3a,0x33, +0x2e,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x1e,0x4d,0x33,0x55,0x0, 0x1, 0x3, 0x5, +0x6, 0x8, 0xb, 0xd, 0x11,0x13,0x16,0x16,0x1a,0x1f,0x21,0x24,0x26,0x28,0x2a,0x2f, +0x35,0x36,0x38,0x39,0x3a,0x3c,0x3e,0x3e,0x3e,0x3e,0x3e,0x3e,0x42,0x37,0x2d,0x23, +0x1d,0x12,0x7, 0x1, 0x9, 0x13,0x1f,0x25,0x31,0x3b,0x36,0x2c,0x20,0x1a,0xf, 0x2, +0x9, 0x11,0x20,0x2d,0x35,0x40,0x47,0x47,0x47,0x47,0x47,0x47,0xff,0x1f,0x32,0x55, +0x0, 0x0, 0x2, 0x3, 0x6, 0x9, 0xc, 0xf, 0x13,0x18,0x1c,0x1d,0x1e,0x1e,0x1e,0x1d, +0x1d,0x23,0x26,0x2a,0x2d,0x32,0x38,0x3d,0x3f,0x3f,0x3e,0x3c,0x3b,0x3a,0x3a,0x3a, +0x40,0x35,0x2f,0x28,0x21,0x1a,0x13,0xd, 0x7, 0x1, 0x4, 0xb, 0x11,0x17,0x1d,0x24, +0x2b,0x2a,0x22,0x1c,0x15,0xf, 0x8, 0x3, 0x8, 0xf, 0x16,0x1d,0x23,0x29,0x31,0x32, +0xa5,0xf2,0x32,0x55,0x4, 0x2, 0x0, 0x0, 0x0, 0x0, 0x2, 0x6, 0xe, 0x13,0x16,0x18, +0x1b,0x1e,0x1e,0x1e,0x1f,0x1f,0x21,0x24,0x2c,0x30,0x35,0x3a,0x3c,0x3f,0x3f,0x3f, +0x3f,0x3f,0x3f,0x3f,0x40,0x39,0x30,0x27,0x22,0x19,0x10,0xd, 0x13,0x1c,0x25,0x2a, +0x33,0x32,0x2d,0x23,0x18,0x12,0x9, 0x1, 0x3, 0x9, 0x13,0x1e,0x23,0x26,0x26,0x26, +0x26,0x26,0x26,0x26,0x7b,0x12,0x32,0x55,0x19,0x14,0x11,0xc, 0x9, 0x5, 0x2, 0x0, +0x4, 0x9, 0xd, 0x11,0x1b,0x20,0x22,0x23,0x23,0x23,0x26,0x27,0x2a,0x2d,0x30,0x37, +0x39,0x3c,0x3d,0x3f,0x3f,0x3f,0x3f,0x3f,0x0, 0x8, 0x10,0x1d,0x23,0x2e,0x36,0x3d, +0x35,0x27,0x1e,0x16,0xe, 0x14,0x21,0x28,0x34,0x39,0x30,0x29,0x1d,0x16,0x10,0x16, +0x1d,0x2c,0x34,0x3f,0x3f,0x3f,0x3f,0x3f,0xe1,0xb1,0x32,0x55,0xb, 0x6, 0x4, 0x2, +0x0, 0x0, 0x0, 0x1, 0x5, 0xf, 0x13,0x17,0x1b,0x1e,0x21,0x20,0x1d,0x19,0x17,0x16, +0x16,0x19,0x1e,0x23,0x28,0x31,0x35,0x39,0x3c,0x3f,0x3f,0x3f,0x40,0x3a,0x35,0x30, +0x2b,0x25,0x20,0x1b,0x17,0x16,0x1a,0x1e,0x23,0x27,0x2a,0x27,0x22,0x17,0x12,0xd, +0x8, 0x4, 0x1, 0x0, 0x0, 0x7, 0xb, 0xf, 0x13,0x15,0x15,0x15,0x4b,0xbb,0x32,0x55, +0x0, 0x3, 0x8, 0xa, 0x11,0x14,0x1c,0x20,0x24,0x25,0x25,0x24,0x23,0x25,0x27,0x2d, +0x30,0x36,0x3b,0x3f,0x3f,0x3f,0x3f,0x3e,0x3e,0x3d,0x3d,0x3d,0x3d,0x3d,0x3d,0x3d, +0x29,0x22,0x18,0x12,0x8, 0x4, 0x0, 0x1, 0xc, 0x12,0x1c,0x22,0x2b,0x2a,0x24,0x18, +0x12,0xa, 0x8, 0xf, 0x14,0x1e,0x23,0x2e,0x34,0x3d,0x3e,0x3e,0x3e,0x3e,0x3e,0x3e, +0xc6,0x28,0x32,0x55,0x1f,0x1b,0x17,0x14,0x13,0x12,0x11,0x11,0x12,0x14,0x1a,0x1d, +0x21,0x23,0x24,0x24,0x25,0x24,0x24,0x23,0x21,0x21,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e, +0x1e,0x1e,0x1e,0x1e,0x1a,0x1d,0x23,0x29,0x2c,0x34,0x3b,0x3e,0x47,0x4e,0x53,0x51, +0x4b,0x44,0x42,0x3c,0x35,0x32,0x2c,0x25,0x1e,0x1c,0x19,0x19,0x19,0x19,0x19,0x19, +0x19,0x19,0x19,0x19,0xfa,0xf6,0x30,0x55,0x23,0x1e,0x1c,0x1a,0x18,0x17,0x16,0x15, +0x15,0x14,0x14,0x14,0x14,0x16,0x19,0x1d,0x21,0x25,0x28,0x2a,0x2b,0x2c,0x2d,0x2d, +0x2c,0x2b,0x2a,0x29,0x28,0x27,0x27,0x27,0x2f,0x36,0x3a,0x3e,0x43,0x48,0x4d,0x52, +0x56,0x5b,0x60,0x65,0x6a,0x6e,0x71,0x72,0x72,0x70,0x6c,0x67,0x62,0x5d,0x57,0x51, +0x4c,0x47,0x43,0x3e,0x38,0x34,0x31,0x31,0xe4,0xae,0x30,0x55,0x7, 0x5, 0x4, 0x4, +0x5, 0x6, 0xd, 0x14,0x1c,0x22,0x28,0x2f,0x34,0x37,0x39,0x3a,0x39,0x38,0x36,0x32, +0x2c,0x26,0x1a,0x14,0xe, 0xb, 0x8, 0x6, 0x6, 0x5, 0x5, 0x5, 0x33,0x3d,0x43,0x4b, +0x51,0x58,0x64,0x69,0x68,0x65,0x61,0x55,0x4d,0x43,0x3b,0x32,0x22,0x1a,0x13,0xb, +0x7, 0x5, 0x8, 0xf, 0x16,0x1e,0x24,0x30,0x37,0x3c,0x3c,0x3c,0x71,0x75,0x30,0x55, +0x3, 0x0, 0x0, 0x0, 0x0, 0x3, 0x7, 0xe, 0x1b,0x22,0x2d,0x32,0x37,0x3a,0x3c,0x3d, +0x3c,0x3a,0x38,0x34,0x29,0x21,0x15,0xc, 0x7, 0x2, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, +0x2a,0x34,0x3c,0x47,0x4d,0x59,0x60,0x66,0x67,0x66,0x5e,0x58,0x51,0x45,0x3e,0x30, +0x29,0x22,0x17,0xf, 0x5, 0x3, 0x6, 0xb, 0x11,0x1b,0x21,0x2d,0x2e,0x2e,0x2e,0x2e, +0x6a,0x73,0x30,0x55,0xc, 0x5, 0x2, 0x0, 0x0, 0x0, 0x0, 0x2, 0x5, 0xc, 0x13,0x1e, +0x25,0x30,0x35,0x3b,0x3d,0x3f,0x3f,0x3d,0x3c,0x38,0x33,0x28,0x22,0x18,0x12,0xe, +0xd, 0xd, 0xd, 0xd, 0x11,0x19,0x1f,0x2a,0x30,0x3c,0x42,0x4f,0x55,0x5f,0x63,0x64, +0x61,0x59,0x51,0x44,0x3d,0x2e,0x26,0x1c,0x16,0xa, 0x3, 0x0, 0x0, 0x4, 0x8, 0xe, +0xf, 0xf, 0xf, 0xf, 0x7d,0xd0,0x30,0x55,0x15,0xd, 0x8, 0x4, 0x2, 0x0, 0x0, 0x0, +0x0, 0x1, 0x8, 0xf, 0x17,0x1f,0x2d,0x34,0x39,0x3c,0x3d,0x3f,0x3f,0x3e,0x3a,0x32, +0x2c,0x26,0x20,0x19,0xf, 0xc, 0xc, 0xc, 0x3, 0x9, 0xf, 0x17,0x1e,0x28,0x2e,0x35, +0x3b,0x42,0x50,0x56,0x57,0x56,0x50,0x49,0x41,0x39,0x31,0x25,0x1e,0x17,0xf, 0x5, +0x1, 0x0, 0x0, 0x1, 0x7, 0x9, 0x9, 0x9, 0xca,0xac,0x30,0x55,0x2c,0x23,0x1f,0x19, +0x13,0xc, 0x7, 0x3, 0x0, 0x0, 0x0, 0x1, 0x5, 0xa, 0xf, 0x16,0x1d,0x23,0x2a,0x30, +0x36,0x3b,0x3e,0x40,0x3f,0x3e,0x3b,0x38,0x33,0x2f,0x2b,0x28,0x9, 0x1, 0x0, 0x1, +0x3, 0x9, 0xe, 0x14,0x1b,0x21,0x27,0x2e,0x36,0x3b,0x3e,0x41,0x41,0x40,0x3d,0x3a, +0x36,0x2f,0x2b,0x26,0x20,0x1c,0x16,0x10,0xc, 0xa, 0x9, 0xb, 0x36,0xdc,0x30,0x55, +0x21,0x13,0xc, 0x8, 0x5, 0x2, 0x1, 0x0, 0x0, 0x1, 0x3, 0x8, 0xf, 0x17,0x1e,0x24, +0x2b,0x32,0x39,0x3d,0x3e,0x3f,0x3f,0x3d,0x3a,0x36,0x30,0x29,0x21,0x1a,0x16,0x13, +0x5, 0x9, 0xe, 0x14,0x1a,0x22,0x29,0x30,0x38,0x3f,0x47,0x4d,0x51,0x51,0x4f,0x4d, +0x49,0x42,0x39,0x31,0x2b,0x25,0x1e,0x17,0x10,0x8, 0x3, 0x0, 0x0, 0x1, 0x3, 0x5, +0xaf,0x13,0x30,0x55,0x3e,0x3b,0x38,0x33,0x2b,0x24,0x1d,0x16,0x10,0x7, 0x3, 0x1, +0x0, 0x0, 0x0, 0x1, 0x1, 0x3, 0x6, 0xc, 0x15,0x1c,0x23,0x29,0x2f,0x35,0x38,0x3b, +0x3c,0x3e,0x3f,0x3f,0x1f,0x10,0xa, 0x6, 0x0, 0x0, 0x0, 0x2, 0x4, 0xc, 0x12,0x18, +0x1e,0x25,0x2c,0x35,0x3c,0x42,0x4a,0x51,0x56,0x56,0x53,0x4e,0x49,0x40,0x3a,0x33, +0x2c,0x25,0x1f,0x1c,0xf9,0xa2,0x30,0x55,0x1c,0x2a,0x33,0x39,0x3c,0x3e,0x3f,0x3f, +0x3e,0x3d,0x3a,0x35,0x2e,0x28,0x23,0x1c,0x15,0xf, 0x9, 0x4, 0x1, 0x0, 0x0, 0x1, +0x1, 0x4, 0x8, 0xd, 0x13,0x19,0x1e,0x22,0x40,0x3e,0x3a,0x33,0x2f,0x29,0x22,0x1b, +0x15,0x10,0xa, 0x5, 0x1, 0x0, 0x0, 0x1, 0x2, 0x5, 0xa, 0x11,0x17,0x1c,0x24,0x2a, +0x30,0x35,0x3b,0x40,0x43,0x44,0x45,0x45,0xcb,0xc6,0x30,0x55,0x5, 0x3, 0x4, 0x7, +0xa, 0x10,0x17,0x21,0x28,0x2e,0x33,0x38,0x3c,0x3e,0x3f,0x3f,0x3e,0x3b,0x38,0x31, +0x29,0x21,0x18,0xf, 0x9, 0x4, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x26,0x35,0x3d,0x45, +0x4b,0x51,0x53,0x52,0x4f,0x4c,0x46,0x41,0x3b,0x34,0x2e,0x25,0x1e,0x17,0x11,0x9, +0x3, 0x0, 0x0, 0x2, 0x6, 0xc, 0x12,0x18,0x1e,0x24,0x2c,0x31,0xf4,0xb6,0x30,0x55, +0x7, 0x3, 0x3, 0x3, 0x4, 0x7, 0xf, 0x17,0x20,0x28,0x30,0x36,0x3b,0x3d,0x3f,0x3f, +0x3d,0x39,0x36,0x2d,0x25,0x1d,0x16,0xd, 0x8, 0x2, 0x0, 0x0, 0x1, 0x2, 0x3, 0x5, +0x2e,0x3f,0x48,0x50,0x59,0x5f,0x67,0x68,0x63,0x5d,0x52,0x4a,0x3e,0x35,0x2b,0x20, +0x18,0x10,0xa, 0x3, 0x0, 0x0, 0x1, 0x7, 0xe, 0x19,0x22,0x2b,0x31,0x3a,0x42,0x47, +0xef,0xc9,0x30,0x55,0x37,0x38,0x37,0x34,0x2d,0x26,0x1c,0x16,0xe, 0x9, 0x4, 0x2, +0x0, 0x0, 0x0, 0x1, 0x2, 0x5, 0xa, 0x10,0x17,0x20,0x26,0x2e,0x35,0x3a,0x3c,0x3e, +0x3f,0x3f,0x3e,0x3e,0x30,0x40,0x49,0x50,0x59,0x5e,0x60,0x5d,0x56,0x50,0x47,0x41, +0x39,0x33,0x2a,0x20,0x1a,0x10,0xa, 0x5, 0x1, 0x0, 0x0, 0x3, 0x8, 0x10,0x17,0x1f, +0x25,0x2f,0x38,0x3c,0x37,0xc3,0x57,0x55,0x3b,0x3d,0x3d,0x3b,0x38,0x32,0x27,0x1c, +0x13,0xe, 0x8, 0x3, 0x0, 0x0, 0x0, 0x1, 0x3, 0x7, 0xb, 0x12,0x18,0x20,0x28,0x31, +0x39,0x3d,0x3f,0x40,0x3f,0x3f,0x3e,0x3e,0x33,0x45,0x4e,0x57,0x5d,0x65,0x6c,0x6a, +0x66,0x63,0x5c,0x53,0x4a,0x40,0x38,0x2e,0x25,0x1a,0x11,0x8, 0x4, 0x0, 0x0, 0x2, +0x9, 0x10,0x19,0x21,0x2a,0x32,0x39,0x3e,0x7, 0x90,0x57,0x55,0x18,0x2c,0x34,0x39, +0x3c,0x3d,0x3f,0x3f,0x3f,0x3d,0x3b,0x36,0x30,0x2a,0x24,0x1c,0x16,0xd, 0x6, 0x1, +0x0, 0x0, 0x0, 0x1, 0x1, 0x3, 0x5, 0x9, 0xf, 0x17,0x1e,0x24,0x1, 0x2, 0x8, 0xe, +0x14,0x1a,0x21,0x28,0x30,0x37,0x40,0x49,0x50,0x55,0x59,0x5c,0x5c,0x58,0x51,0x48, +0x3f,0x38,0x31,0x2b,0x25,0x1d,0x17,0x11,0xa, 0x4, 0x1, 0x1, 0x9d,0xbf,0x57,0x55, +0x16,0x7, 0x2, 0x0, 0x0, 0x0, 0x0, 0x1, 0x4, 0x8, 0xe, 0x16,0x1f,0x28,0x30,0x38, +0x3c,0x3e,0x3f,0x40,0x3f,0x3f,0x3d,0x3b,0x37,0x32,0x2c,0x25,0x1d,0x16,0xf, 0xc, +0x53,0x46,0x3e,0x35,0x2e,0x27,0x20,0x1a,0x14,0xd, 0x6, 0x1, 0x0, 0x0, 0x3, 0xa, +0x13,0x1a,0x20,0x27,0x2d,0x33,0x3a,0x40,0x48,0x4f,0x54,0x58,0x5a,0x5a,0x58,0x57, +0xc6,0x55,0x57,0x55,0x7, 0x1, 0x4, 0xa, 0x10,0x18,0x20,0x2a,0x32,0x38,0x3c,0x3e, +0x3f,0x3e,0x3d,0x3b,0x39,0x35,0x30,0x27,0x21,0x19,0x12,0xb, 0x6, 0x3, 0x1, 0x0, +0x0, 0x0, 0x0, 0x0, 0x32,0x1d,0x12,0x9, 0x5, 0x1, 0x0, 0x0, 0x1, 0x5, 0xd, 0x17, +0x20,0x2a,0x32,0x3b,0x45,0x4e,0x58,0x63,0x69,0x6b,0x6a,0x64,0x5d,0x57,0x4f,0x47, +0x40,0x38,0x32,0x2f,0x1a,0xb5,0x57,0x55,0x0, 0xb, 0x14,0x1b,0x21,0x28,0x2f,0x37, +0x3d,0x3f,0x3e,0x3c,0x39,0x33,0x2b,0x23,0x1c,0x15,0xc, 0x5, 0x3, 0x3, 0x6, 0x9, +0xd, 0x12,0x18,0x1e,0x24,0x2c,0x33,0x36,0x19,0x13,0x10,0x10,0xf, 0xf, 0x11,0x16, +0x1c,0x25,0x2d,0x33,0x39,0x40,0x47,0x4a,0x4c,0x4c,0x49,0x43,0x3b,0x33,0x2d,0x26, +0x20,0x1a,0x14,0xe, 0xa, 0x5, 0x1, 0x0, 0xb0,0xb5,0x57,0x55,0x2, 0x9, 0xf, 0x1a, +0x1f,0x29,0x2f,0x38,0x3b,0x3e,0x3f,0x3f,0x3b,0x37,0x2e,0x29,0x1e,0x18,0xe, 0xa, +0x3, 0x1, 0x0, 0x0, 0x0, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x1, 0x0, 0x0, 0x3, +0x5, 0x9, 0xd, 0x18,0x1e,0x27,0x2d,0x32,0x3c,0x3f,0x45,0x46,0x45,0x44,0x3e,0x39, +0x2f,0x2a,0x25,0x1a,0x14,0xc, 0x9, 0x9, 0x9, 0x9, 0x9, 0x9, 0x2b,0x77,0x57,0x55, +0x0, 0x1, 0x2, 0x4, 0x5, 0x8, 0xa, 0xf, 0x12,0x15,0x18,0x1a,0x1f,0x22,0x24,0x25, +0x26,0x26,0x28,0x2a,0x2c,0x2f,0x33,0x36,0x37,0x39,0x3a,0x3c,0x3e,0x3f,0x3f,0x3f, +0x1, 0xf, 0x1b,0x2d,0x3d,0x52,0x5f,0x6a,0x60,0x4a,0x39,0x2a,0x17,0xb, 0x4, 0xe, +0x1e,0x2e,0x42,0x50,0x62,0x6b,0x65,0x53,0x43,0x31,0x23,0x13,0x7, 0x2, 0x2, 0x2, +0xa2,0x22,0x31,0x55,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x2, 0x6, 0xa, 0xe, +0x12,0x15,0x18,0x1a,0x1e,0x21,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x29,0x2f,0x34, +0x3a,0x3e,0x3e,0x3e,0x1, 0xa, 0x11,0x17,0x1e,0x24,0x29,0x2e,0x34,0x34,0x2d,0x24, +0x1c,0x14,0xe, 0x8, 0x3, 0x9, 0x10,0x19,0x22,0x2a,0x31,0x36,0x3b,0x38,0x2f,0x24, +0x19,0x11,0x11,0x11,0x4c,0x9f,0x31,0x55,0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x2, 0xa, +0xc, 0x10,0x15,0x19,0x1b,0x1f,0x1e,0x1e,0x1d,0x1c,0x1c,0x1e,0x21,0x29,0x31,0x3a, +0x3e,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x0, 0x8, 0x14,0x1d,0x23,0x2d,0x34,0x2d, +0x29,0x1e,0x13,0xb, 0x6, 0x6, 0x10,0x19,0x1e,0x29,0x32,0x3c,0x3e,0x34,0x28,0x1b, +0x14,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0xef,0x5, 0x31,0x55,0x0, 0x2, 0x4, 0x5, +0x6, 0x7, 0x9, 0xa, 0xd, 0xf, 0x11,0x12,0x14,0x16,0x19,0x1c,0x1f,0x22,0x24,0x24, +0x26,0x29,0x2f,0x31,0x33,0x35,0x37,0x39,0x3a,0x3c,0x3e,0x3e,0x6, 0x10,0x17,0x1d, +0x23,0x2a,0x31,0x39,0x3c,0x36,0x2f,0x28,0x21,0x1a,0x13,0x10,0x16,0x22,0x29,0x2f, +0x36,0x3d,0x3b,0x34,0x2e,0x27,0x21,0x1a,0x13,0xc, 0x4, 0x2, 0x56,0x3f,0x31,0x55, +0x0, 0x2, 0x5, 0x7, 0xa, 0xc, 0xe, 0x14,0x17,0x1b,0x1f,0x25,0x27,0x28,0x28,0x29, +0x29,0x2d,0x30,0x33,0x36,0x39,0x3c,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f, +0x8, 0xf, 0x18,0x23,0x2d,0x37,0x40,0x41,0x3d,0x34,0x2b,0x24,0x2d,0x35,0x3e,0x47, +0x4a,0x42,0x38,0x2c,0x20,0x15,0xb, 0x2, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, +0xf6,0x5, 0x31,0x55,0x0, 0x1, 0x3, 0x5, 0x6, 0x7, 0x9, 0xa, 0xc, 0xd, 0xf, 0x13, +0x14,0x15,0x18,0x1a,0x21,0x25,0x26,0x27,0x27,0x27,0x2c,0x2f,0x36,0x3a,0x3d,0x3f, +0x3f,0x3f,0x3f,0x3f,0x0, 0x6, 0xb, 0x14,0x1a,0x1f,0x29,0x2e,0x37,0x3b,0x3e,0x37, +0x32,0x2e,0x25,0x20,0x18,0x1c,0x21,0x29,0x2d,0x31,0x33,0x2d,0x21,0x1b,0x15,0x10, +0x10,0x10,0x10,0x10,0x22,0x55,0x31,0x55,0x0, 0x0, 0x0, 0x1, 0x2, 0x3, 0x4, 0x7, +0xc, 0x10,0x13,0x16,0x19,0x1b,0x1f,0x22,0x22,0x23,0x23,0x23,0x23,0x26,0x2c,0x31, +0x34,0x36,0x38,0x3a,0x3b,0x3d,0x3f,0x3f,0xa, 0x12,0x1b,0x24,0x2d,0x34,0x3c,0x43, +0x42,0x3b,0x33,0x2b,0x22,0x1c,0x15,0x15,0x1b,0x26,0x2d,0x34,0x3a,0x41,0x41,0x3b, +0x33,0x2b,0x22,0x1a,0x11,0xa, 0x2, 0x1, 0xfa,0x31,0x31,0x55,0x2, 0x2, 0x1, 0x1, +0x0, 0x0, 0x0, 0x6, 0xa, 0x12,0x15,0x1b,0x1d,0x1f,0x1e,0x1e,0x1d,0x1d,0x1d,0x1f, +0x23,0x2a,0x2f,0x36,0x39,0x3e,0x3e,0x3e,0x3e,0x3e,0x3e,0x3e,0x0, 0x8, 0xe, 0x19, +0x1e,0x29,0x2e,0x30,0x2d,0x23,0x1d,0x13,0xe, 0x13,0x17,0x21,0x25,0x30,0x35,0x3e, +0x3f,0x3a,0x35,0x2b,0x27,0x1e,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0xc8,0x46,0x31,0x55, +0x0, 0x3, 0x5, 0xc, 0x11,0x18,0x1c,0x1f,0x1f,0x1e,0x1e,0x1d,0x1d,0x23,0x26,0x2e, +0x32,0x3b,0x3d,0x3f,0x3f,0x3f,0x40,0x40,0x3f,0x3e,0x3d,0x3d,0x3d,0x3d,0x3d,0x3d, +0x1e,0x25,0x29,0x31,0x36,0x3d,0x3f,0x39,0x35,0x2c,0x27,0x1c,0x17,0x1b,0x1f,0x2a, +0x2f,0x37,0x34,0x2b,0x27,0x1f,0x1b,0x11,0xc, 0x2, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, +0x5, 0xb3,0x31,0x55,0x1e,0x0, 0x0, 0x0, 0x2, 0x4, 0x6, 0x8, 0xa, 0xc, 0xe, 0x10, +0x12,0x14,0x16,0x18,0x1a,0x1c,0x1e,0x20,0x22,0x24,0x26,0x28,0x2a,0x2c,0x2e,0x30, +0x32,0x34,0x36,0x38,0x3a,0x3c,0x1, 0x3, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x62,0x33,0x0, 0x2, 0x62,0xac, +0x0, 0x2, 0x63,0xee,0x0, 0x2, 0x63,0xec,0x0, 0x2, 0x63,0xed,0x0, 0x2, 0x63,0xe5, +0x0, 0x2, 0x63,0xe4,0x0, 0x2, 0x63,0xe1,0x0, 0x2, 0x63,0xe0,0x0, 0x2, 0x63,0xd9, +0x0, 0x2, 0x62,0x30,0x0, 0x2, 0x63,0xd8,0x0, 0x2, 0x0, 0x8, 0x0, 0x2, 0x2d,0x4d, +0x0, 0x2, 0x24,0xb2,0x0, 0x2, 0x63,0xf0,0x0, 0x2, 0x65,0x98,0x0, 0x0, 0x62,0xd0, +0x0, 0x3, 0x11,0x64,0x0, 0x3, 0x9, 0x88,0x0, 0x3, 0x9, 0x60,0x0, 0x3, 0x9, 0x88, +0x0, 0x2, 0x2d,0x4e,0x0, 0x3, 0x6, 0x5c,0x0, 0x2, 0x2d,0x4c,0x0, 0x2, 0x3e,0xfa, +0x0, 0x2, 0x38,0xa8,0x0, 0x2, 0x32,0x58,0x0, 0x2, 0x38,0xaa,0x0, 0x3, 0x5, 0xe0, +0x0, 0x2, 0x24,0x6f,0x0, 0x2, 0x74,0xcc,0x0, 0x2, 0x74,0xdf,0x0, 0x2, 0x74,0xcb, +0x0, 0x2, 0x2e,0x60,0x0, 0x3, 0x5, 0xe2,0x0, 0x3, 0x6, 0x5d,0x0, 0x2, 0x25,0x1e, +0x0, 0x2, 0x25,0x20,0x0, 0x2, 0x24,0x7e,0x0, 0x2, 0x24,0x62,0x0, 0x3, 0x6, 0xc8, +0x0, 0x2, 0x24,0xc0,0x0, 0x2, 0x24,0x67,0x0, 0x1, 0x42,0xac,0x0, 0x2, 0x24,0xc1, +0x0, 0x2, 0x25,0x1a,0x0, 0x2, 0x5f,0xa0,0x0, 0x2, 0x24,0xb4,0x0, 0x3, 0x5, 0xe4, +0x0, 0x0, 0x63,0xa2,0x0, 0x0, 0x63,0x94,0x0, 0x2, 0x24,0xc7,0x0, 0x2, 0x4b,0xbc, +0x0, 0x2, 0x4b,0xbd,0x0, 0x1, 0x42,0xd4,0x0, 0x2, 0x5e,0xb4,0x0, 0x2, 0x24,0x6a, +0x0, 0x1, 0x42,0xbc,0x0, 0x2, 0x2c,0xc6,0x0, 0x2, 0x74,0xe0,0x0, 0x2, 0xe, 0x60, +0x0, 0x2, 0xe, 0x8f,0x0, 0x1, 0x42,0xb0,0x0, 0x3, 0xa, 0xf0,0x0, 0x1, 0x42,0xdc, +0x0, 0x3, 0x9, 0xc8,0x0, 0x2, 0xe, 0x7c,0x0, 0x2, 0xe, 0x90,0x0, 0x2, 0x3e,0xfc, +0x0, 0x0, 0x62,0xc4,0x0, 0x2, 0xe, 0x58,0x0, 0x2, 0x75,0x54,0x0, 0x2, 0x2e,0x62, +0x0, 0x2, 0x24,0x83,0x0, 0x2, 0x24,0xd3,0x0, 0x3, 0xa, 0x2c,0x0, 0x2, 0x2e,0x64, +0x0, 0x2, 0x2c,0xc4,0x0, 0x2, 0xe, 0xe, 0x0, 0x2, 0xe, 0xd, 0x0, 0x2, 0xe, 0x8, +0x0, 0x2, 0xe, 0xa, 0x0, 0x2, 0xe, 0x9, 0x0, 0x2, 0xd, 0xce,0x0, 0x2, 0xd, 0xcd, +0x0, 0x2, 0xd, 0xc6,0x0, 0x2, 0xd, 0xca,0x0, 0x2, 0xd, 0xc9,0x0, 0x2, 0xd, 0xcc, +0x0, 0x2, 0xd, 0xcb,0x0, 0x2, 0xd, 0xc4,0x0, 0x2, 0xd, 0xb2,0x0, 0x2, 0xd, 0xc3, +0x0, 0x2, 0xd, 0xb1,0x0, 0x2, 0xd, 0xc5,0x0, 0x2, 0xd, 0xc8,0x0, 0x2, 0xd, 0xc7, +0x0, 0x2, 0xd, 0xc0,0x0, 0x2, 0xd, 0xbf,0x0, 0x2, 0xd, 0xbc,0x0, 0x2, 0xd, 0xbb, +0x0, 0x2, 0xd, 0xb8,0x0, 0x2, 0xd, 0xbe,0x0, 0x2, 0xd, 0xbd,0x0, 0x2, 0xd, 0xb6, +0x0, 0x2, 0xd, 0xb0,0x0, 0x2, 0xd, 0xb5,0x0, 0x2, 0xd, 0xaf,0x0, 0x2, 0xd, 0xb7, +0x0, 0x2, 0xd, 0xba,0x0, 0x2, 0xd, 0xb9,0x0, 0x2, 0xe, 0x1a,0x0, 0x2, 0xe, 0x13, +0x0, 0x2, 0xe, 0x12,0x0, 0x2, 0xe, 0x11,0x0, 0x2, 0xe, 0x10,0x0, 0x2, 0xe, 0xf, +0x0, 0x2, 0xd, 0x43,0x0, 0x2, 0xd, 0x42,0x0, 0x2, 0xd, 0x3f,0x0, 0x2, 0xd, 0x3e, +0x0, 0x2, 0xd, 0x35,0x0, 0x2, 0xd, 0x34,0x0, 0x2, 0xd, 0x39,0x0, 0x2, 0xd, 0x37, +0x0, 0x2, 0xd, 0x38,0x0, 0x2, 0xd, 0x36,0x0, 0x2, 0xd, 0x3d,0x0, 0x2, 0xd, 0x33, +0x0, 0x2, 0xd, 0x3c,0x0, 0x2, 0xd, 0x32,0x0, 0x2, 0xd, 0x28,0x0, 0x2, 0xd, 0x31, +0x0, 0x2, 0xd, 0x30,0x0, 0x2, 0xd, 0x44,0x0, 0x2, 0x0, 0x79,0x0, 0x2, 0xe, 0x19, +0x0, 0x2, 0xe, 0x18,0x0, 0x2, 0xd, 0x26,0x0, 0x2, 0xd, 0xf0,0x0, 0x2, 0xd, 0xef, +0x0, 0x2, 0xd, 0xee,0x0, 0x2, 0xd, 0x2f,0x0, 0x2, 0xd, 0x2e,0x0, 0x2, 0xe, 0x36, +0x0, 0x2, 0xe, 0x35,0x0, 0x2, 0xe, 0x3a,0x0, 0x2, 0xe, 0x39,0x0, 0x2, 0xe, 0x3c, +0x0, 0x2, 0xe, 0x3b,0x0, 0x2, 0xe, 0x38,0x0, 0x2, 0xe, 0x37,0x0, 0x2, 0xe, 0x4e, +0x0, 0x2, 0xe, 0x4d,0x0, 0x2, 0xe, 0x42,0x0, 0x2, 0xe, 0x41,0x0, 0x2, 0xe, 0x43, +0x0, 0x2, 0xe, 0x44,0x0, 0x2, 0xe, 0x3e,0x0, 0x2, 0xe, 0x3d,0x0, 0x2, 0xe, 0x40, +0x0, 0x2, 0xe, 0x3f,0x0, 0x2, 0xe, 0x34,0x0, 0x2, 0xe, 0x32,0x0, 0x2, 0xe, 0x52, +0x0, 0x2, 0xe, 0x51,0x0, 0x2, 0xe, 0x50,0x0, 0x2, 0xe, 0x4f,0x0, 0x2, 0xe, 0x54, +0x0, 0x2, 0xe, 0x53,0x0, 0x2, 0xd, 0xc2,0x0, 0x2, 0xd, 0xc1,0x0, 0x2, 0xd, 0xb4, +0x0, 0x2, 0xd, 0xb3,0x0, 0x2, 0xe, 0x1c,0x0, 0x2, 0xe, 0x2e,0x0, 0x2, 0xe, 0x2d, +0x0, 0x2, 0xe, 0x1b,0x0, 0x2, 0xe, 0x26,0x0, 0x2, 0xe, 0x2a,0x0, 0x2, 0xe, 0x25, +0x0, 0x2, 0xe, 0x29,0x0, 0x2, 0xe, 0x24,0x0, 0x2, 0xe, 0x23,0x0, 0x2, 0xe, 0x22, +0x0, 0x2, 0xe, 0x21,0x0, 0x2, 0xe, 0x20,0x0, 0x2, 0xe, 0x1f,0x0, 0x2, 0xe, 0x1e, +0x0, 0x2, 0xe, 0x1d,0x0, 0x2, 0x0, 0xc, 0x0, 0x2, 0xd, 0x27,0x0, 0x2, 0xd, 0xae, +0x0, 0x2, 0x24,0xab,0x0, 0x2, 0xe, 0x74,0x0, 0x2, 0x74,0xe4,0x0, 0x2, 0x61,0x52, +0x0, 0x2, 0x60,0x0, 0x0, 0x2, 0x5f,0xe8,0x0, 0x0, 0x63,0xb0,0x0, 0x2, 0x24,0x7d, +0x0, 0x3, 0x11,0x4c,0x0, 0x3, 0x6, 0x5e,0x0, 0x2, 0x24,0x5e,0x0, 0x0, 0x5e,0x9c, +0x0, 0x2, 0x24,0xb5,0x0, 0x2, 0x25,0x18,0x0, 0x2, 0x65,0xb0,0x0, 0x2, 0x5f,0x18, +0x0, 0x2, 0x1b,0x64,0x0, 0x2, 0x5f,0xa4,0x0, 0x2, 0x65,0xd0,0x0, 0x2, 0xf6,0x0, +0x0, 0x2, 0x24,0xcc,0x0, 0x3, 0xa, 0x38,0x0, 0x2, 0x2e,0x6c,0x0, 0x1, 0x42,0xc8, +0x0, 0x2, 0xae,0x34,0x0, 0x2, 0xa7,0xe2,0x0, 0x0, 0xf4,0xe0,0x0, 0x0, 0xf4,0xb8, +0x0, 0x2, 0xf3,0xb8,0x0, 0x2, 0xf3,0xba,0x0, 0x2, 0xed,0x68,0x0, 0x2, 0xf4,0x30, +0x0, 0x2, 0xf4,0xb8,0x0, 0x2, 0xf4,0xe0,0x0, 0x2, 0xd4,0x22,0x0, 0x2, 0xf5,0xfb, +0x0, 0x2, 0xf5,0xfa,0x0, 0x0, 0xda,0x74,0x0, 0x0, 0xdd,0x9c,0x0, 0x2, 0xf5,0x6, +0x0, 0x2, 0xcd,0xd0,0x0, 0x2, 0xc1,0x2c,0x0, 0x2, 0xe7,0x16,0x0, 0x2, 0xc7,0x7e, +0x0, 0x2, 0xf4,0xac,0x0, 0x2, 0xf4,0xb4,0x0, 0x2, 0xf5,0x12,0x0, 0x2, 0xf5,0xe, +0x0, 0x2, 0xf5,0xa, 0x0, 0x2, 0xf5,0x10,0x0, 0x2, 0xf5,0xc, 0x0, 0x2, 0xf5,0x8, +0x0, 0x0, 0xf5,0x8, 0x0, 0x0, 0xd4,0x22,0x0, 0x2, 0xae,0x36,0x0, 0x2, 0xe0,0xc4, +0x0, 0x2, 0xba,0xda,0x0, 0x2, 0xb4,0x88,0x0, 0x2, 0xa7,0xe4,0x0, 0x0, 0xae,0x36, +0x0, 0x2, 0xf4,0xb0,0x0, 0x0, 0x63,0x78,0x0, 0x2, 0x2e,0x66,0x0, 0x2, 0x24,0x6e, +0x0, 0x2, 0x5f,0x4c,0x0, 0x2, 0xe, 0x9c,0x0, 0x2, 0x24,0x86,0x0, 0x2, 0x24,0x6c, +0x0, 0x2, 0x45,0x52,0x0, 0x2, 0x3f,0x0, 0x0, 0x2, 0x2d,0x4b,0x0, 0x2, 0x24,0x61, +0x0, 0x2, 0x24,0x5d,0x0, 0x3, 0x6, 0xcc,0x0, 0x2, 0x24,0xc9,0x0, 0x1, 0x42,0xc0, +0x0, 0x1, 0x42,0xcc,0x0, 0x2, 0x5f,0xc4,0x0, 0x2, 0xf6,0x4, 0x0, 0x3, 0x11,0x68, +0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x24,0x85,0x0, 0x2, 0x4b,0xa4,0x0, 0x3, 0xa, 0x78, +0x0, 0x2, 0x24,0x76,0x0, 0x2, 0x24,0x71,0x0, 0x3, 0x5, 0xe6,0x0, 0x2, 0x61,0x3c, +0x0, 0x0, 0x62,0xde,0x0, 0x2, 0x24,0xb6,0x0, 0x2, 0x5f,0xe3,0x0, 0x2, 0x5f,0xe2, +0x0, 0x2, 0x5f,0xe0,0x0, 0x3, 0x6, 0x64,0x0, 0x2, 0x24,0xc6,0x0, 0x1, 0x42,0xb4, +0x0, 0x3, 0xa, 0xf4,0x0, 0x3, 0xa, 0xdc,0x0, 0x2, 0x74,0x50,0x0, 0x2, 0xe, 0x9b, +0x0, 0x2, 0xe, 0xa0,0x0, 0x0, 0x65,0x60,0x0, 0x2, 0x75,0x40,0x0, 0x2, 0x74,0xec, +0x0, 0x2, 0x2e,0x68,0x0, 0x2, 0x2e,0x70,0x0, 0x2, 0x74,0x8a,0x0, 0x2, 0x74,0x8c, +0x0, 0x3, 0xa, 0xe8,0x0, 0x2, 0xe, 0x5e,0x0, 0x2, 0x1b,0x82,0x0, 0x2, 0x24,0x89, +0x0, 0x2, 0x2e,0x6a,0x0, 0x2, 0x24,0x54,0x0, 0x0, 0xf6,0x60,0x0, 0x2, 0xf6,0x60, +0x0, 0x2, 0x24,0x7a,0x0, 0x2, 0x5f,0xc6,0x0, 0x3, 0x6, 0x65,0x0, 0x2, 0x24,0xad, +0x0, 0x2, 0x24,0x70,0x0, 0x2, 0x2d,0x4a,0x0, 0x3, 0x5, 0xf2,0x0, 0x3, 0x5, 0xec, +0x0, 0x2, 0x25,0x1c,0x0, 0x2, 0x24,0x80,0x0, 0x3, 0x6, 0x68,0x0, 0x2, 0xe, 0x64, +0x0, 0x3, 0xa, 0xf8,0x0, 0x3, 0xa, 0xf6,0x0, 0x2, 0x24,0x64,0x0, 0x2, 0xe, 0x62, +0x0, 0x2, 0x2c,0xc5,0x0, 0x2, 0x67,0x82,0x0, 0x2, 0x67,0x24,0x0, 0x2, 0x67,0x91, +0x0, 0x2, 0x67,0x8d,0x0, 0x2, 0x67,0x8e,0x0, 0x2, 0x67,0x87,0x0, 0x2, 0x67,0x8a, +0x0, 0x2, 0x67,0x8c,0x0, 0x2, 0x67,0x8b,0x0, 0x2, 0x67,0x88,0x0, 0x2, 0x67,0x85, +0x0, 0x2, 0x67,0x89,0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x67,0x1c,0x0, 0x2, 0x66,0x54, +0x0, 0x2, 0x66,0xb8,0x0, 0x2, 0x67,0x8f,0x0, 0x2, 0x67,0x84,0x0, 0x2, 0x67,0x86, +0x0, 0x2, 0x67,0x81,0x0, 0x2, 0x65,0xf0,0x0, 0x2, 0x67,0x80,0x0, 0x2, 0x24,0xd2, +0x0, 0x0, 0x63,0x6a,0x0, 0x3, 0x6, 0xd6,0x0, 0x2, 0x4b,0xa8,0x0, 0x1, 0x42,0xc4, +0x0, 0x0, 0x62,0xa0,0x0, 0x2, 0x1b,0x83,0x0, 0x2, 0x24,0xc8,0x0, 0x3, 0x11,0x60, +0x0, 0x2, 0x24,0x72,0x0, 0x2, 0x24,0xb7,0x0, 0x2, 0x24,0x66,0x0, 0x2, 0x5f,0xc8, +0x0, 0x3, 0x6, 0xd8,0x0, 0x0, 0x63,0xe0,0x0, 0x3, 0xa, 0xec,0x0, 0x1, 0x42,0xa8, +0x0, 0x2, 0x5f,0x5c,0x0, 0x2, 0x4b,0xac,0x0, 0x2, 0x74,0x36,0x0, 0x2, 0x74,0x3c, +0x0, 0x2, 0x74,0x3a,0x0, 0x2, 0x74,0x38,0x0, 0x2, 0x74,0x32,0x0, 0x2, 0x6d,0xf0, +0x0, 0x2, 0x67,0xb0,0x0, 0x2, 0x74,0x30,0x0, 0x2, 0x74,0x31,0x0, 0x2, 0x74,0x34, +0x0, 0x2, 0x67,0x94,0x0, 0x2, 0x24,0x88,0x0, 0x3, 0x6, 0x5f,0x0, 0x3, 0x5, 0xe8, +0x0, 0x1, 0x42,0xb8,0x0, 0x2, 0x5f,0x9c,0x0, 0x1, 0x42,0xe4,0x0, 0x2, 0x74,0x40, +0x0, 0x3, 0x6, 0xa8,0x0, 0x2, 0x25,0x14,0x0, 0x2, 0x32,0x48,0x0, 0x2, 0x32,0x30, +0x0, 0x2, 0x4b,0xae,0x0, 0x1, 0x42,0xd8,0x0, 0x2, 0x1b,0x84,0x0, 0x2, 0x24,0xae, +0x0, 0x2, 0x24,0x5c,0x0, 0x2, 0xe, 0x70,0x0, 0x2, 0x24,0x84,0x0, 0x2, 0x4b,0xc0, +0x0, 0x0, 0x62,0xb8,0x0, 0x2, 0xe, 0x5d,0x0, 0x2, 0x4b,0xb0,0x0, 0x0, 0x63,0xc8, +0x0, 0x2, 0x4b,0xb4,0x0, 0x2, 0x24,0x82,0x0, 0x2, 0x2c,0xf0,0x0, 0x2, 0x24,0x74, +0x0, 0x2, 0x24,0xac,0x0, 0x2, 0xe, 0x5c,0x0, 0x2, 0x4b,0xb8,0x0, 0x3, 0x6, 0x61, +0x0, 0x2, 0x5f,0xcc,0x0, 0x2, 0x24,0x7c,0x0, 0x2, 0x5f,0x7, 0x0, 0x2, 0x5f,0x6, +0x0, 0x2, 0x5f,0x5, 0x0, 0x2, 0x5f,0x4, 0x0, 0x2, 0x5f,0x3, 0x0, 0x2, 0x5f,0x2, +0x0, 0x2, 0x5f,0x1, 0x0, 0x2, 0x5f,0x0, 0x0, 0x2, 0x5e,0xff,0x0, 0x2, 0x5e,0xfe, +0x0, 0x2, 0x5e,0xfd,0x0, 0x2, 0x5e,0xfc,0x0, 0x2, 0x5e,0xfa,0x0, 0x2, 0x5e,0xec, +0x0, 0x2, 0x24,0x78,0x0, 0x2, 0x74,0xc8,0x0, 0x2, 0x5f,0xdf,0x0, 0x2, 0x5f,0xd0, +0x0, 0x1, 0x42,0xe8,0x0, 0x2, 0x5b,0x8e,0x0, 0x2, 0x58,0x68,0x0, 0x0, 0x1, 0x0, +0x0, 0x2, 0x25,0x16,0x0, 0x2, 0x24,0x87,0x0, 0x2, 0x24,0xca,0x0, 0x1, 0x42,0xe0, +0x0, 0x2, 0x0, 0x4, 0x0, 0x3, 0x6, 0xf6,0x0, 0x3, 0x6, 0xf5,0x0, 0x3, 0x6, 0xe6, +0x0, 0x3, 0x6, 0xe4,0x0, 0x2, 0x52,0x14,0x0, 0x1, 0x42,0xd0,0x0, 0x2, 0x24,0x1, +0x0, 0x2, 0x24,0x60,0x0, 0x0, 0x63,0x86,0x0, 0x2, 0x5f,0xce,0x0, 0x2, 0x75,0x48, +0x0, 0x2, 0xe, 0x8e,0x0, 0x2, 0x24,0x68,0x0, 0x3, 0x9, 0x5d,0xf, 0xff,0xff,0xff, +0xf0,0xff,0xff,0xff,0xff,0xc0,0xff,0xff,0x55,0x50,0x47,0x52,0x41,0x44,0x45,0x20, +0x66,0xcc,0x99,0x33,0x46,0x4c,0x41,0x47,0xa0,0x0, 0x3, 0xff,0x8, 0x0, 0x0, 0x8, +0x0, 0x82,0x52,0x1, 0x6, 0xc3,0x14,0x5, 0x8, 0x5, 0x8, 0x5, 0x6, 0xc3,0x18,0x6, +0x8, 0x6, 0x8, 0x6, 0x3, 0x28,0x0, 0xfa,0x3, 0x28,0x1, 0x2c,0xfc,0x0, 0xff,0xff, +0xef,0xff,0xff,0xff,0xf3,0xff,0xff,0xff,0xf8,0x0, 0xff,0xff,0x9f,0xff,0xff,0xff, +0xe7,0xff,0xff,0xff,0xf9,0xff,0xff,0xff,0xfe,0x7f,0xff,0xff,0xff,0x9f,0xff,0xff, +0xff,0xe7,0xff,0xff,0x80,0x1, 0x10,0x20,0xef,0xff,0xff,0xff,0xf3,0xff,0xff,0xff, +0x0, 0x19,0x66,0xd, 0x3c,0x6e,0xf3,0x5f,0x7f,0xff,0xff,0xff, \ No newline at end of file diff --git a/drivers/input/touchscreen/FT8006m/include/firmware/white_all.i b/drivers/input/touchscreen/FT8006m/include/firmware/white_all.i new file mode 100644 index 0000000000000..cc3688aa98db6 --- /dev/null +++ b/drivers/input/touchscreen/FT8006m/include/firmware/white_all.i @@ -0,0 +1,7029 @@ +0x10,0x71,0x4, 0x3e,0x16,0xd9,0x0, 0x9d,0xbf,0x10,0x84,0x0, 0x0, 0x2, 0xc8,0x0, +0x84,0x80,0x0, 0x26,0x5a,0x51,0xb5,0x2a,0x6c,0xc5,0x4a,0x1, 0x60,0xe1,0xf, 0xc1, +0x10,0xc, 0x30,0x4b,0x0, 0x0, 0x42,0xa, 0xe3,0x29,0x99,0xf0,0xb9,0xe1,0x6b,0x68, +0x5f,0x81,0x26,0x0, 0xa1,0x80,0x8, 0x20,0x6, 0x0, 0x85,0x0, 0x0, 0x2c,0xb8,0x71, +0x3, 0x0, 0x8, 0x10,0x1b,0x27,0x35,0x38,0x6a,0x2d,0x72,0xbb,0x7b,0x94,0x62,0x5c, +0x4a,0x38,0x25,0x15,0x6, 0x0, 0x8, 0x10,0x1b,0x27,0x35,0x38,0x6a,0x2d,0x72,0xbb, +0x7b,0x94,0x62,0x5c,0x4a,0x38,0x25,0x15,0x0, 0x0, 0x85,0x80,0x0, 0x12,0x0, 0x0, +0x20,0x44,0x8, 0x0, 0x60,0x47,0x0, 0x0, 0x10,0x22,0x4, 0x0, 0xb0,0x23,0x15,0x0, +0x86,0x0, 0x0, 0x30,0xfa,0x68,0x68,0x1, 0x2d,0x6e,0x10,0x4, 0x0, 0x60,0x15,0x0, +0x50,0x15,0x56,0x51,0x15,0x55,0x61,0x15,0x0, 0x60,0x15,0x0, 0x50,0x15,0x56,0x51, +0x15,0x55,0x61,0x95,0xab,0x18,0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x80,0x4c,0x29,0x84, +0x52,0x1, 0x9, 0x0, 0x86,0x80,0x0, 0xe, 0xf0,0xb1,0x71,0xef,0x49,0xc0,0x80,0x1a, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x87,0x0, 0x0, 0xc, 0xff,0x81,0x68,0xac,0xb4,0x6d, +0x24,0x0, 0x0, 0x0, 0x0, 0x0, 0x87,0x80,0x0, 0x17,0x19,0xc6,0x3e,0x20,0x1c,0x58, +0x64,0x10,0x53,0x33,0xe8,0x50,0x1, 0x32,0x8c,0x8c,0x24,0x69,0x81,0x71,0x44,0x7c, +0x14,0x88,0x0, 0x0, 0x1f,0x0, 0x80,0x3, 0xe7,0x1f,0x17,0x0, 0x48,0x40,0x2, 0xcf, +0x18,0x30,0x88,0x41,0x8a,0x39,0x28,0xa9,0xc5,0x9a,0x7b,0xf0,0x7, 0x7e,0xe0,0x7, +0x7e,0x20,0x10,0x0, 0x88,0x80,0x0, 0x79,0x43,0x77,0x3, 0x40,0x8a,0xf1,0xff,0x43, +0x30,0x8, 0xc1,0x46,0xa0,0x80,0x24,0x18,0x30,0x6, 0x64,0xc1,0x80,0x11,0x7, 0xc4, +0xe1,0xd0,0x68,0x40,0x20,0x1d,0x4, 0x48,0x40,0x40,0x28,0x10,0x60,0x70,0x38,0x1a, +0x10,0x47,0x3, 0xe2,0x20,0x0, 0x10,0x80,0x50,0x30,0x0, 0xe0,0xe1,0x1, 0x0, 0x28, +0xe, 0x6, 0xc3,0xcc,0xcc,0xcc,0xcc,0xcc,0x8c,0x88,0x88,0x88,0x88,0x88,0xc8,0x8, +0x86,0xc6,0xe3,0x81,0x0, 0x20,0x0, 0x21,0x42,0x88,0x0, 0x0, 0x0, 0x0, 0x40,0x0, +0x0, 0x31,0x4, 0x41,0x6, 0x0, 0x0, 0x0, 0x0, 0x92,0x4, 0x0, 0x92,0x4, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x85,0x11,0xc, 0x0, 0x0, 0x40,0x0, 0x0, 0x0, 0x0, 0x5e, +0x0, 0x89,0x0, 0x0, 0x19,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x89,0x80, +0x0, 0x13,0x1, 0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0x0, 0x1, 0x7, 0x1, 0x5, 0x44,0xc, +0xce,0xe7,0x62,0xe, 0x0, 0x8a,0x0, 0x0, 0x80,0x91,0x1, 0x88,0xa6,0xe8,0xef,0xf7, +0xfb,0xfd,0x7e,0x0, 0x0, 0x0, 0x68,0xc5,0x7, 0xe8,0x3c,0x20,0x36,0x40,0xe7,0x1, +0x71,0x1, 0x3a,0xf, 0x88,0x9, 0xd0,0x79,0x80,0x39,0xbc,0xdf,0x8, 0xcc,0x20,0x83, +0x46,0x0, 0x18,0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x1c,0xad,0xd1,0x2a,0x0, 0x40,0xa1,0x50,0x78,0x7, 0xa0,0xf3,0x80,0x73, +0x0, 0x6f,0x0, 0x74,0x1e,0x70,0xe, 0xe0,0x5, 0x80,0xce,0x3, 0xce,0x1, 0xbc,0x2, +0xd0,0x79,0xc0,0x39,0x80,0x77,0x1, 0x3a,0xf, 0x38,0x7, 0xf0,0x26,0x40,0xe7,0x1, +0xe7,0x0, 0xde,0x3, 0xe8,0x3c,0xe0,0x1c,0xc0,0x5b,0x0, 0x9d,0x7, 0x9c,0x3, 0x0, +0x1, 0xbf,0x1f,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8a,0x80,0x0, 0x80,0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd1, +0x6a,0xc4,0xa8,0xd5,0x96,0xa2,0xe0,0x1f,0x31,0x6a,0xb5,0xa5,0x28,0x78,0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x13,0x0, 0xf0,0x0, 0x94,0xd6,0xc, 0x2d,0x49,0x30,0x14, +0xc7,0x4, 0xd5,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0x4d,0x15,0xa2,0x18,0x84, +0x0, 0x4c,0x30,0x6c,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xd6,0xc, 0x29,0x8, 0x20, +0x10,0xc6,0x4, 0xd5,0xb6,0x6d,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0x4d,0x55,0xb2,0x1c, +0xc5,0x10,0x4c,0x30,0x6c,0xdb,0xb6,0x6d,0xdb,0xb6,0x6d,0x5b,0x10,0x8b,0x0, 0x0, +0x16,0x0, 0x0, 0x2, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0xd0,0x40,0x8c,0x0, 0x0, 0x3f,0xef,0xbd,0xf7,0xde,0x7b, +0xef,0xbd,0x7, 0x8, 0x8, 0xa, 0xc, 0xc, 0xc, 0xc, 0xc, 0xc, 0xc, 0xc, 0x5c,0x9, +0xa8,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0x5a,0x59,0x59,0x59,0x59,0x59, +0x59,0x59,0x59,0x59,0x59,0x59,0x9, 0x4, 0xff,0x5, 0x80,0x80,0x0, 0x4, 0x20,0x0, +0x1, 0x8, 0x40,0x0, 0x2, 0x10,0x80,0x0, 0x4, 0xf, 0x8c,0x80,0x0, 0x27,0xea,0xd3, +0xc6,0xb8,0xaf,0xa6,0x9e,0x98,0x92,0x8e,0x8a,0x85,0x0, 0x60,0xf6,0xcf,0xfc,0x6f, +0xf6,0xef,0xcf,0xaf,0xf, 0xff,0xaf,0xb5,0x71,0xe, 0x6c,0x4a,0x69,0x8, 0x0, 0x0, +0x44,0x0, 0x0, 0x0, 0x0, 0x8d,0x0, 0x0, 0x80,0x0, 0x4, 0x8, 0xc, 0x50,0x10,0x14, +0x18,0x1c,0xa5,0x20,0x28,0x30,0x39,0x3e,0x41,0x49,0x51,0x59,0x54,0x61,0x69,0x71, +0x79,0xaa,0x81,0x89,0x91,0x99,0x5a,0xa1,0xa9,0xb1,0xb9,0x1, 0xc0,0xc8,0xd0,0xd8, +0x6f,0xe0,0xe7,0xef,0xf7,0x5c,0xfb,0xfd,0xfe,0x0, 0x0, 0x4, 0x7, 0xb, 0xf0,0xf, +0x13,0x17,0x1b,0x6b,0x1f,0x27,0x2f,0x36,0xc1,0x3e,0x46,0x4e,0x56,0x1a,0x5e,0x65, +0x6d,0x75,0xac,0x7d,0x85,0x8d,0x95,0x16,0x9d,0xa4,0xac,0xb4,0xbc,0xbc,0xc4,0xcc, +0xd4,0x5a,0xdc,0xe4,0xec,0xf3,0xc1,0xf7,0xf9,0xfa,0x3f,0x0, 0x4, 0x8, 0xc, 0x0, +0x10,0x14,0x18,0x1c,0x55,0x20,0x28,0x30,0x38,0x55,0x40,0x48,0x50,0x58,0x55,0x60, +0x68,0x70,0x78,0x1, 0x7f,0x87,0x8f,0x97,0xaf,0x8d,0x80,0x0, 0x14,0x9f,0xa7,0xaf, +0xb7,0x55,0xbf,0xc7,0xcf,0xd7,0x0, 0xdf,0xe7,0xef,0xf7,0xe5,0xfb,0xfe,0xff,0x3, +0x0, 0x90,0x0, 0x0, 0x7, 0x8b,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x91,0x0, 0x0, 0xd, +0x2d,0xd3,0x0, 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x1f,0x0, 0x91,0x80,0x0, +0x19,0x1, 0x5, 0x0, 0x5, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x1, 0xff,0xf, 0x0, 0x0, 0x2c,0x1, 0x0, 0x0, 0x0, 0x92,0x0, 0x0, 0x10,0x0, 0x3, +0x0, 0x9d,0xbf,0x10,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd9,0x16,0xb, 0xf4, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x72,0x8d,0x0, 0xff,0xda,0x25,0x4, 0xa7,0x24,0x87,0x55,0x56,0x72,0x8d,0x1, 0xfe, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc8,0x37, +0x34,0x34,0x33,0x35,0x33,0x31,0x30,0x32,0x44,0x31,0x30,0x30,0x33,0x31,0x30,0x30, +0x0, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x30,0x30,0x31,0x0, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x0, 0x0, 0x0, 0x60,0x0, 0x1, 0x79,0x84,0x0, 0x1, 0x79,0x86,0x0, 0x1, 0x79,0x86, +0x0, 0x1, 0x79,0x86,0x0, 0x1, 0x79,0x86,0x0, 0x1, 0x79,0x86,0x0, 0x1, 0x79,0x86, +0x0, 0x1, 0x79,0x86,0x0, 0x1, 0x79,0x86,0x0, 0x1, 0x79,0x86,0x0, 0x1, 0x79,0x86, +0x0, 0x1, 0x79,0x86,0x0, 0x1, 0x79,0x86,0x0, 0x1, 0x79,0x86,0x0, 0x1, 0x79,0x86, +0x0, 0x1, 0x79,0x86,0x0, 0x1, 0x79,0x86,0x0, 0x1, 0x79,0x86,0x0, 0x1, 0x79,0x86, +0x0, 0x1, 0x79,0x86,0x0, 0x1, 0x79,0x86,0x0, 0x1, 0x79,0x86,0x0, 0x1, 0x79,0x86, +0xe0,0x60,0x3c,0x0, 0xcc,0x2, 0xe0,0x60,0x3c,0x10,0xea,0x0, 0xc8,0x3, 0xe0,0xff, +0xc8,0x7c,0xfa,0x0, 0xcf,0x82,0xf0,0x0, 0xcf,0x80,0xea,0x0, 0xcc,0x0, 0xe0,0x0, +0xcc,0x0, 0xe0,0x60,0x3c,0x17,0xea,0x0, 0xcc,0x2, 0xe0,0x0, 0xcc,0x0, 0xea,0x0, +0xcc,0x80,0xe0,0x32,0xcc,0xe8,0x3c,0x79,0x1, 0x8, 0xea,0x0, 0xcd,0x2, 0xe0,0x1, +0xcd,0x34,0x3d,0x28,0xe0,0x0, 0xdb,0xe2,0xea,0x0, 0xcc,0x0, 0xe0,0x2e,0xcc,0x60, +0x3c,0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x56,0x31,0x2e,0x34,0x30,0x53,0x65,0x70,0x20,0x20,0x31,0x20,0x32,0x30,0x31,0x37, +0x46,0x54,0x38,0x30,0x30,0x36,0x5f,0x42,0x4f,0x4f,0x54,0x4c,0x4f,0x41,0x44,0x45, +0x26,0x40,0xd9,0xbf,0x38,0xce,0xc7,0x31,0xd5,0xbe,0x2a,0x41,0xff,0x0, 0xff,0x0, +0x0, 0x0, 0x0, 0x0, 0xff,0xff,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80,0xb6, +0x72,0x8d,0x0, 0xff,0xda,0x25,0x4, 0xa7,0x24,0x87,0x55,0x56,0x72,0x8d,0x1, 0xfe, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc8,0x37, +0x34,0x34,0x33,0x35,0x33,0x31,0x30,0x32,0x44,0x31,0x30,0x30,0x33,0x31,0x30,0x30, +0x0, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x30,0x30,0x31,0x0, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xe8,0x2, 0x4f,0xa1,0xe2,0x0, 0xcf,0xe6,0x1, 0x35,0x2, 0x88,0xe2,0x0, 0xcf,0x83, +0x1, 0x2b,0xe2,0x0, 0xcf,0x85,0x1, 0x14,0x0, 0xbd,0xe2,0x1, 0xcf,0x90,0x1, 0x8, +0xe2,0x1, 0xcf,0xcc,0x1, 0x27,0xe2,0x0, 0xcf,0xea,0x1, 0xb4,0x0, 0xa6,0xe2,0x0, +0xcc,0x1, 0x2, 0xb0,0xea,0x0, 0x7f,0xd0,0x3c,0x1f,0x8c,0x8, 0x38,0x82,0x2c,0x4, +0xe8,0x0, 0x64,0x46,0x0, 0xa4,0xe2,0x0, 0xcc,0x1, 0x1, 0x86,0xe8,0x0, 0x67,0xc6, +0xe0,0x8, 0x37,0xc8,0x0, 0x9c,0xe2,0x0, 0xcc,0x2, 0x1, 0x9c,0xe8,0x0, 0x67,0xc6, +0xe4,0x8, 0x37,0xc0,0x0, 0x94,0xe8,0x2, 0x67,0xca,0x3c,0x1f,0xe0,0x1, 0x8c,0x8, +0x38,0x82,0xe8,0x2, 0x4c,0x38,0x38,0x82,0x2c,0x5, 0xe8,0x1, 0x5c,0xe, 0x34,0x48, +0x38,0x82,0xe2,0x0, 0xcc,0x1, 0x1, 0x86,0xe8,0x1, 0x5c,0xe, 0xe2,0x1, 0xc4,0x7f, +0x38,0x82,0xe0,0x1, 0x14,0x6b,0x38,0x82,0x17,0x0, 0xe8,0x2, 0x6f,0x23,0xe8,0x2, +0x4f,0xa1,0xe2,0x0, 0xcf,0xe4,0xe0,0x2, 0x1, 0x2, 0x2, 0xa6,0xe2,0x0, 0xcf,0x87, +0xe0,0x1, 0x1, 0x5a,0x2, 0x8f,0xe2,0x0, 0xcf,0x83,0xe0,0x1, 0x1, 0x27,0xe2,0x0, +0xcf,0x85,0xe0,0x1, 0x1, 0x70,0xe2,0x0, 0xcf,0x81,0xe0,0x2, 0x1, 0xa3,0xe0,0x1, +0x0, 0xea,0xe2,0x0, 0xcf,0x90,0xe0,0x1, 0x1, 0x63,0x2, 0x86,0xe2,0x0, 0xcf,0x89, +0xe0,0x1, 0x1, 0x52,0x38,0x82,0xe2,0x0, 0xcf,0xd5,0x1, 0x25,0xe2,0x0, 0xcf,0xe1, +0xe0,0x2, 0x1, 0x8, 0x38,0x82,0xe2,0x1, 0xcf,0x90,0x1, 0x20,0x2, 0x8c,0xe2,0x0, +0xcf,0xe6,0xe0,0x1, 0x1, 0x50,0xe0,0x1, 0x4, 0xd8,0xe2,0x0, 0xcf,0xea,0xe0,0x1, +0x1, 0x4a,0x38,0x82,0xe2,0x1, 0xcf,0xb0,0x1, 0x1f,0x2, 0x85,0xe2,0x1, 0xcf,0xaa, +0x1, 0xa, 0x38,0x82,0xe2,0x1, 0xcf,0xbf,0x1, 0x32,0xe2,0x1, 0xcf,0xcc,0xe0,0x1, +0x1, 0x3a,0x38,0x82,0xe8,0x2, 0x6f,0x38,0x38,0x82,0xe2,0x0, 0xcc,0x3, 0xe0,0x1, +0x2, 0xe9,0xe0,0x0, 0x1f,0x93,0xe8,0x2, 0x6f,0x38,0x3f,0x98,0xac,0x8f,0xe0,0x1, +0x24,0x2a,0xe0,0x1, 0x0, 0xdf,0xe2,0x0, 0xcc,0x3, 0xe0,0x1, 0x2, 0xdb,0xea,0x6, +0x7f,0x8e,0xe9,0xff,0xc7,0xfe,0x3c,0x1f,0x8c,0x8, 0x3c,0x1f,0x3c,0x2, 0x4, 0x4, +0xa, 0x18,0xe4,0x9, 0x34,0xa0,0x0, 0x85,0xe8,0x0, 0x67,0xc5,0x34,0xa8,0x3c,0x9f, +0xe8,0x0, 0x7c,0xc5,0x38,0x82,0xe8,0x0, 0x67,0xc5,0x0, 0xfa,0xe2,0x0, 0xcc,0x5, +0x2, 0xa3,0xea,0x6, 0x7f,0xc4,0xe9,0xff,0xc7,0xfe,0x34,0x21,0x3c,0x1f,0x9c,0x8, +0x3c,0x1f,0x3c,0x2, 0x1, 0x6c,0x0, 0x78,0x0, 0x98,0x0, 0xc, 0x0, 0x18,0x0, 0x22, +0xe8,0x2, 0x67,0x4a,0xa7,0x8e,0x3c,0x9f,0xbc,0x8e,0x38,0x82,0x34,0xa8,0xe8,0x2, +0x67,0xca,0xe0,0x1, 0x0, 0x96,0xe8,0x2, 0x67,0xca,0x9f,0x2f,0x3c,0x9e,0xb4,0xaf, +0x17,0x0, 0xb7,0x3f,0x38,0x82,0xe8,0x2, 0x67,0xca,0x16,0x81,0x9f,0x3f,0x3e,0x9e, +0xb6,0xbf,0x3f,0x1f,0xe0,0x1, 0xac,0x8e,0x9e,0xbf,0x9f,0x2f,0x3e,0xfe,0xe0,0x1, +0x4, 0x91,0xe8,0xa, 0x4e,0xa6,0x17,0x0, 0xe0,0x2e,0x3e,0x8e,0xe8,0x2, 0x7f,0xc6, +0x17,0x82,0xe8,0xa, 0x6f,0x26,0x0, 0xac,0xe2,0x0, 0xcc,0x2, 0x1, 0x18,0xe2,0x0, +0xcc,0x3, 0x1, 0x1b,0xe2,0x0, 0xcc,0x1, 0xe0,0x0, 0x1, 0xfc,0xe8,0xa, 0x4f,0xa6, +0x27,0x84,0xe0,0x0, 0x1f,0x8f,0x0, 0x83,0xe0,0x0, 0x1f,0x8e,0xe8,0x2, 0x7f,0xca, +0xe4,0x9, 0x34,0xa0,0xe8,0x2, 0x67,0xca,0xe0,0x0, 0x0, 0xd8,0xe8,0x2, 0x67,0x4a, +0x34,0xa8,0xa7,0x8e,0xe7,0xff,0x0, 0xb9,0xe8,0x2, 0x67,0xca,0xa7,0xf, 0x3c,0x9e, +0xbc,0x8f,0x17,0x1, 0xe8,0x2, 0x7f,0xc6,0x17,0x81,0xe8,0x2, 0x6f,0x23,0xe8,0x0, +0x7f,0xc2,0x38,0x82,0xe8,0x0, 0x67,0x9f,0x17,0x0, 0xe0,0x3, 0xb7,0x1f,0x17,0x80, +0xe0,0x2, 0x17,0x4, 0xbf,0x8e,0xe0,0x2, 0x17,0x8, 0xbf,0x8e,0x17,0x81,0xe8,0x2, +0x6f,0xa0,0x38,0x82,0xe2,0x0, 0xcc,0x1, 0x1, 0x84,0xe8,0x0, 0x6c,0xd3,0x38,0x82, +0xe2,0x0, 0xcc,0x2, 0x1, 0xbe,0xe8,0x2, 0x6c,0x9f,0x38,0x82,0xe8,0x2, 0x6c,0x9e, +0x38,0x82,0x17,0x1, 0xe8,0x2, 0x6f,0x23,0x38,0x82,0xe8,0x2, 0x6f,0x38,0x17,0x80, +0xe8,0x0, 0x7f,0xc4,0x38,0x82,0xc4,0x7f,0xe2,0x0, 0xcc,0x4, 0x2, 0xaa,0xea,0x8, +0x7f,0xf2,0xe9,0xff,0xc7,0xfe,0x3c,0x1f,0x8c,0x8, 0x3c,0x1f,0xe8,0x2, 0x67,0xca, +0x3c,0x2, 0x6, 0xc, 0x12,0x1a,0x20,0x0, 0xe4,0x9, 0x34,0xa0,0x0, 0x86,0xa7,0xf, +0x34,0xa8,0x0, 0x82,0xa7,0xf, 0x3c,0x9e,0xbc,0x8f,0x38,0x82,0x34,0xa8,0xb4,0xaf, +0x38,0x82,0x9f,0x2f,0x3c,0x9e,0xb4,0xaf,0x17,0x3, 0xe8,0x0, 0x7f,0x42,0x38,0x82, +0x17,0x84,0xe8,0x0, 0x7f,0xc2,0xe8,0x2, 0x6f,0x38,0x17,0x0, 0xe8,0x0, 0x7f,0x44, +0x38,0x82,0x8, 0xb2,0xe8,0x0, 0xc, 0x37,0xf8,0x0, 0xf, 0xbf,0x17,0x81,0xe8,0x0, +0x61,0x1c,0xe8,0x0, 0x6f,0xd4,0xa7,0x82,0xe2,0x0, 0xc7,0x81,0x27,0x99,0xa7,0x2, +0x17,0xfe,0x3f,0xde,0xbf,0x82,0x8c,0xf2,0xe8,0x2, 0x4f,0xa2,0x2f,0x83,0xe8,0x2, +0x6c,0xa1,0xe8,0x2, 0x4c,0x22,0xde,0xa9,0xe8,0x2, 0x4f,0xa2,0xc7,0x81,0xe8,0x2, +0x6f,0xa2,0xe8,0x2, 0x4f,0xa3,0x27,0x84,0x14,0x0, 0xde,0x53,0xac,0x72,0xa7,0x82, +0x37,0xc1,0xe2,0x0, 0xc7,0x81,0x27,0x8e,0xa7,0x2, 0x17,0xfd,0x3f,0xde,0xbf,0x82, +0xe8,0x2, 0x4f,0xa2,0xc7,0x81,0xe8,0x2, 0x6f,0xa2,0xe8,0x2, 0x4c,0x22,0xde,0x41, +0xac,0x72,0x17,0x88,0xe0,0x61,0x3f,0x91,0xf8,0x0, 0xf, 0xaf,0xf0,0x0, 0xb, 0xa8, +0x9, 0x21,0x38,0x0, 0xe, 0xbf,0xe8,0x0, 0x67,0x1c,0x17,0xfe,0xa6,0xbe,0x3f,0xdd, +0xbf,0xbe,0x17,0x80,0xe8,0x2, 0x6f,0xa2,0x17,0x90,0xe0,0x61,0x3f,0x91,0xf, 0xad, +0x38,0x0, 0x8, 0xb6,0xe1,0xff,0xc0,0x0, 0xe8,0x0, 0x67,0xc4,0x39,0xe8,0x3f,0x99, +0x39,0x69,0x3b,0x6a,0xe8,0x0, 0x7f,0xc4,0x21,0x27,0xe2,0x0, 0xc9,0x7f,0x2, 0x85, +0x3a,0xe2,0xe2,0x1, 0xc2,0xff,0x0, 0x83,0xe0,0x1, 0x12,0x80,0x3a,0x65,0xe2,0x1, +0xc2,0x7f,0x3c,0x63,0x3d,0x64,0xe2,0x0, 0x7c,0x84,0xd7,0xb0,0x39,0x24,0x8f,0x86, +0xe3,0xff,0xc1,0x7f,0x39,0x95,0xe2,0x0, 0x7e,0x84,0x17,0x0, 0xc7,0x1, 0xe1,0x80, +0x8e,0x1d,0xe3,0xff,0xc7,0x7f,0x3a,0x7e,0xe2,0xf, 0x3e,0x4f,0xe2,0x1, 0xc7,0xff, +0x2, 0xf6,0xaf,0x86,0x0, 0xda,0xe0,0x1, 0xc0,0x0, 0xb, 0x61,0xe8,0x0, 0x4f,0xd3, +0xe2,0x0, 0xcf,0x8b,0xe0,0x0, 0x1, 0xd1,0x8, 0xb6,0xe2,0x9f,0xcc,0x7f,0x3a,0xe8, +0xe0,0x0, 0x5, 0xca,0xe8,0x0, 0x67,0x45,0xe2,0xf0,0x17,0x80,0x3f,0x7f,0xe0,0x0, +0x2, 0xc3,0xe8,0x0, 0x67,0xc4,0x3b,0x69,0x39,0xea,0x2f,0x83,0xe8,0x2, 0x6f,0x84, +0xe8,0x0, 0x67,0xc4,0xe8,0x2, 0x4a,0x4, 0x3f,0x93,0xe2,0x0, 0xca,0x3, 0xe8,0x0, +0x7f,0xc4,0x2, 0x9a,0x17,0x84,0xe0,0x2, 0x3f,0xa4,0xe2,0x1, 0xc1,0x7f,0x39,0xf2, +0x3, 0x84,0x39,0x63,0xe2,0x1, 0xc1,0x7f,0xea,0x2, 0x7c,0x0, 0x3c,0xe6,0x3c,0x14, +0x3d,0x62,0x3a,0x12,0x39,0xa2,0xe0,0x0, 0xd9,0x21,0x3a,0x92,0xe8,0x2, 0x6a,0x4, +0x3b,0x12,0xe3,0xff,0xc1,0xff,0x21,0x85,0x3d,0x63,0x3c,0xe6,0x3c,0x65,0xd6,0xf7, +0xe8,0x0, 0x67,0x44,0xe8,0x0, 0x67,0xc5,0x3f,0x7f,0x1, 0x8d,0x15,0x4, 0xea,0x2, +0x7c,0x80,0xe0,0xa0,0x14,0x0, 0xd6,0xeb,0x17,0x80,0xe8,0x0, 0x7f,0xc4,0xb, 0x21, +0xe0,0x9, 0x0, 0x9f,0xb, 0x61,0x38,0x82,0x8, 0xb1,0xe8,0x0, 0x67,0xc2,0xc7,0xff, +0xe2,0x0, 0xcf,0x83,0xe0,0x0, 0x2, 0xe4,0xea,0xd, 0x7f,0xe, 0xe9,0xff,0xc7,0x7e, +0x3f,0x9e,0x8f,0x8f,0x3f,0x9e,0x17,0x0, 0xe8,0x0, 0x7f,0x42,0x3f,0x82,0x4c,0x4, +0x70,0x8e,0xe8,0x1, 0x77,0xe, 0xe8,0x0, 0x4f,0xd3,0xe8,0x2, 0x64,0xc6,0xe2,0x0, +0xcf,0x8b,0x1, 0x86,0xa4,0x9, 0x9d,0x29,0xc4,0x88,0xdf,0x89,0x0, 0x8b,0xa7,0x89, +0x9f,0x29,0x3f,0x9e,0xe2,0x20,0xcf,0x80,0x2, 0x85,0xa4,0x9, 0x9d,0x29,0xc4,0x88, +0xd6,0xb6,0xe8,0x2, 0x67,0xc6,0xa4,0xf, 0x9c,0xaf,0xe0,0x0, 0xd8,0xa9,0xe0,0x20, +0xc4,0x0, 0xe8,0x1, 0x74,0xe, 0xd5,0x23,0x0, 0xb2,0xe8,0x2, 0x64,0xc6,0xe0,0x2, +0x15,0x0, 0xe1,0x80,0xa4,0x29,0xd7,0x2, 0xe8,0x0, 0x4f,0xd4,0x27,0xa8,0xe8,0x2, +0x67,0x46,0xe8,0x0, 0x67,0x9c,0xe0,0x1, 0x87,0xe, 0xaf,0x7f,0x0, 0xa0,0xe8,0x2, +0x67,0xc6,0xe8,0x1, 0x77,0xe, 0xea,0x2, 0x7d,0x38,0xa4,0xf, 0x9c,0xaf,0xdf,0x22, +0xd5,0x6, 0xe7,0xe0,0x17,0x55,0xe8,0x1, 0x77,0xe, 0x0, 0x91,0xe8,0x1, 0x77,0xe, +0xe8,0x0, 0x4f,0xd3,0xe2,0x0, 0xcf,0x8b,0x1, 0x83,0xd3,0x49,0x0, 0x83,0x14,0x0, +0xd6,0xbb,0xd4,0xf5,0xe7,0xe1,0x17,0xaa,0xe8,0x1, 0x77,0x8e,0xe8,0x2, 0x4f,0xa0, +0x27,0x89,0xe0,0x27,0x14,0x8, 0xd4,0xdc,0xe8,0x0, 0x67,0x9f,0x17,0x7f,0xe0,0x7, +0xaf,0x3f,0x8, 0xe1,0xe0,0x0, 0x1f,0x83,0xe0,0x2, 0x8f,0xf, 0xe0,0x2, 0x8e,0x9f, +0x3e,0x9e,0xe2,0x1, 0xce,0xff,0x1, 0x84,0xe2,0x0, 0xcf,0x4, 0x5, 0x8e,0xe0,0x0, +0x1f,0x88,0xe0,0x2, 0x8f,0xf, 0xe0,0x2, 0x8e,0x9f,0x3e,0x9e,0xe2,0x1, 0xce,0xff, +0x1, 0x9c,0xe2,0x0, 0xcf,0x4, 0x2, 0x99,0xe0,0x2, 0x8e,0x2f,0xe0,0x2, 0x8e,0xbf, +0x3e,0x9c,0xe2,0x1, 0xce,0xff,0x1, 0x91,0xe0,0x2, 0x8e,0xcf,0xe0,0x2, 0x8f,0xdf, +0x3f,0x9d,0xe2,0x1, 0xcf,0xff,0x1, 0x89,0xe8,0x2, 0x6f,0x26,0x14,0x1, 0xe8,0x2, +0x6e,0x25,0xe8,0x2, 0x6e,0xa4,0x38,0x82,0x14,0x0, 0x38,0x82,0xc0,0x78,0xe8,0x0, +0x66,0xa0,0xe0,0x0, 0x17,0x50,0xa7,0x9d,0x16,0x4, 0xcf,0x90,0xbf,0x9d,0x3e,0x10, +0xe8,0x0, 0x67,0x99,0xe1,0x2, 0x15,0x5, 0xb7,0x5f,0x8d,0xff,0xb7,0x5f,0xe0,0x0, +0x17,0x5a,0xaf,0x3f,0xe0,0x0, 0x17,0x51,0xb7,0x5f,0x17,0x2, 0xaf,0x3f,0xe1,0x2, +0x17,0x0, 0xb7,0x5f,0xc7,0x1, 0x8c,0xff,0xe3,0xff,0xc7,0x7f,0x3f,0x7a,0xe1,0x80, +0xac,0x9c,0x1, 0xf8,0xe2,0x0, 0xcd,0xda,0x1, 0x6, 0xe0,0x0, 0x17,0x50,0xb7,0x5f, +0x17,0x0, 0xaf,0x3f,0x17,0xef,0xa7,0x1d,0x3f,0xde,0xbf,0x9d,0xe2,0x0, 0x7f,0x88, +0x3c,0x1f,0xe0,0x40,0x8c,0x48,0xc0,0x8, 0x38,0x82,0x16,0x80,0xe8,0x0, 0x67,0x9f, +0xae,0x88,0xe0,0x1, 0xa7,0xff,0x37,0xc3,0xe2,0x0, 0xc7,0x81,0x27,0x93,0xe8,0x0, +0x67,0xa0,0xe0,0x0, 0x16,0xd4,0xa7,0x1f,0xcf,0x10,0xbf,0x1f,0xe8,0x0, 0x67,0x19, +0xb6,0xde,0x8f,0x7e,0xe2,0x0, 0xc7,0x3, 0xaf,0x8, 0x17,0x6f,0xa6,0x9f,0x3f,0x5d, +0xbf,0x1f,0x38,0x82,0x8, 0xb5,0xc0,0x7c,0xdf,0x76,0x2c,0x4, 0x12,0x82,0x14,0x0, +0x0, 0x90,0xe8,0x2, 0x4c,0x26,0xdf,0xa3,0xe8,0x2, 0x6c,0x27,0xe8,0x2, 0x4f,0x27, +0xe8,0x2, 0x4f,0xa4,0x3f,0x7f,0x1, 0xf3,0xe0,0xf, 0x12,0xc2,0xe0,0xf, 0x14,0x40, +0x15,0x4, 0xe2,0x0, 0x7c,0x84,0xd6,0x2a,0x49,0x6, 0x4f,0x87,0x31,0x28,0x39,0x1f, +0xe3,0xff,0xc1,0x7f,0x17,0xf8,0x3f,0x92,0xe2,0x1e,0xcf,0xf7,0x2, 0xa3,0xc1,0x7e, +0xe3,0xff,0xc1,0x7f,0xe0,0x0, 0x1c,0x8d,0x3c,0x65,0x3d,0x62,0x4a,0x4, 0x49,0x85, +0xe8,0x1, 0x71,0x16,0xd6,0x13,0xe0,0x0, 0x1c,0xc, 0x32,0x28,0x34,0x41,0x15,0x0, +0xe0,0x9, 0x31,0x41,0xe3,0xff,0xc4,0x7f,0x39,0x94,0xe0,0xb, 0xd7,0xeb,0xe3,0xff, +0xc1,0xff,0x39,0xf8,0xe0,0x0, 0x1a,0x8d,0x1, 0x7, 0x14,0x0, 0xbc,0x5, 0xbc,0x15, +0x0, 0x84,0x14,0x0, 0x0, 0x82,0x14,0x1, 0xc0,0x4, 0xa, 0xe1,0x8, 0xb2,0x11,0x3, +0xdf,0xb2,0xe8,0x2, 0x6c,0x2e,0xe8,0x2, 0x4f,0xae,0x2f,0x85,0xc1,0x7f,0xe2,0x1, +0xc1,0x7f,0x29,0x77,0x9, 0x61,0xe8,0x0, 0x67,0x20,0xe0,0x0, 0x16,0xd0,0xa7,0x9e, +0xe0,0x0, 0x16,0x5a,0xcf,0x90,0xbf,0x9e,0xe8,0x0, 0x67,0x99,0xb6,0xdf,0x8d,0xff, +0xb6,0xdf,0xe2,0x0, 0xcd,0xda,0xae,0x3f,0xe7,0x24,0x16,0x10,0xb6,0x5f,0x16,0x0, +0xae,0x3f,0x1, 0x3, 0xb6,0xdf,0xae,0x3f,0x17,0xef,0xa6,0x9e,0x3f,0xdd,0xbf,0x9e, +0x38,0x82,0x8, 0xb3,0xe8,0x0, 0x61,0x19,0xe0,0x0, 0x16,0xd4,0xb6,0xd2,0x17,0x3, +0xaf,0x32,0x8f,0x88,0x8f,0x18,0x37,0xa8,0x3f,0x9e,0xe3,0xff,0xc7,0xff,0x17,0x74, +0x3f,0x1f,0xe2,0x1e,0xcf,0x74,0x5, 0x84,0x14,0x1, 0xe0,0x0, 0x0, 0xfb,0xe0,0x0, +0x16,0xd0,0xc7,0xfe,0xb6,0xd2,0xe0,0x0, 0x17,0x5a,0x16,0x0, 0xe3,0xff,0xc7,0xff, +0x15,0x7d,0xaf,0x32,0x3e,0xec,0x3d,0xec,0x17,0x8, 0x3d,0x1f,0x2d,0x93,0xe0,0xb, +0x3c,0x1e,0x8e,0x8b,0x8e,0x1b,0x36,0xa8,0x3e,0x9c,0x8e,0x2b,0x8d,0xbb,0x36,0x28, +0x3e,0x1b,0xc7,0x4, 0xe3,0xff,0xc6,0xff,0xe3,0xff,0xc6,0x7f,0xe3,0xff,0xc7,0x7f, +0x15,0x84,0xe0,0x9, 0x3c,0x1e,0x8c,0x89,0xb6,0xd2,0xc5,0x81,0xac,0xb2,0x14,0x83, +0xe3,0xff,0xc5,0xff,0x3c,0x9c,0x3c,0xfb,0xc6,0x81,0xc7,0x1, 0xe3,0xff,0xc6,0xff, +0xe3,0xff,0xc7,0x7f,0x3, 0x5, 0x3d,0x7e,0x2, 0x2, 0x3f,0x6f,0x15,0x80,0x3f,0xfe, +0x2, 0xd6,0xe7,0x24,0x17,0x82,0xb7,0xd2,0xe7,0x24,0x16,0x83,0x8f,0x72,0xe7,0x24, +0x17,0x84,0xb6,0xd2,0xe4,0xc, 0x37,0x28,0xe7,0x24,0x16,0x85,0x8f,0x72,0xb7,0xd2, +0xe4,0xe, 0x37,0x20,0x8f,0xf2,0xb6,0xd2,0x3f,0x1c,0x8e,0xf2,0x37,0xa8,0x3f,0x1d, +0x3f,0x9e,0xa7,0x18,0xe0,0x0, 0x16,0xd0,0xb6,0xd2,0x3f,0xfe,0x16,0x80,0xae,0xb2, +0xe7,0xff,0x1, 0xa4,0xe0,0x0, 0x17,0xf0,0xb7,0xd2,0x17,0x2a,0xae,0xb2,0x39,0xe8, +0xb7,0xd2,0xe0,0x27,0x14,0x8, 0xaf,0x32,0xd3,0x5b,0xe0,0x0, 0x17,0xf6,0xb7,0xd2, +0xe0,0x0, 0x16,0xf5,0x8c,0x72,0xb6,0xd2,0x34,0x28,0x8f,0x23,0x8f,0xf2,0xe0,0xd, +0x37,0x28,0x8f,0x33,0x3c,0x1f,0x3f,0x1d,0xe3,0xff,0xc4,0x7f,0xe1,0x28,0x3f,0x8, +0x9, 0xe1,0x8, 0xb5,0xe8,0x0, 0x61,0xa0,0x3a,0x68,0x11,0x3, 0x12,0xef,0xa7,0x93, +0x3c,0x64,0xcf,0x90,0xbf,0x93,0xdf,0x66,0xa7,0x93,0x3f,0xd5,0xbf,0x93,0x24,0x5, +0xc1,0x7f,0xe2,0x1, 0xc1,0x7f,0x29,0x74,0xa, 0xe1,0x8, 0xb4,0xe8,0x0, 0x4f,0xd9, +0x39,0x68,0xe2,0x0, 0xcf,0x81,0x1, 0xaa,0xe1,0x11,0x14,0x2a,0xe0,0xb, 0xd8,0x56, +0xe0,0xb, 0xd7,0x54,0x3a,0x68,0x2c,0x7d,0xe8,0x0, 0x61,0x9f,0xe0,0x1, 0x14,0x14, +0xe0,0x2, 0x9f,0x93,0xe3,0xff,0xc7,0xfe,0xe0,0x2, 0xb7,0x93,0xe0,0xb, 0xd7,0x2c, +0x3c,0x64,0xe0,0xb, 0xd7,0x29,0xac,0x2, 0xe8,0x2, 0x4f,0xae,0x27,0x85,0xe8,0x2, +0x4f,0x29,0x8f,0x82,0x3f,0xce,0xaf,0x82,0x8c,0x2, 0xe0,0xb, 0xd7,0x1d,0xe0,0x2, +0x9f,0x93,0xcf,0x81,0xe0,0x2, 0xb7,0x93,0x0, 0xac,0x2f,0xa8,0xe1,0x11,0x14,0x2a, +0xe0,0xb, 0xd8,0x2c,0xe8,0x0, 0x67,0x9f,0xe0,0x2, 0x9f,0x1f,0xe2,0xff,0xc7,0x7f, +0xe0,0x2, 0xb7,0x1f,0xe0,0x2, 0x9f,0x1f,0xcf,0x4, 0xe0,0x2, 0xb7,0x1f,0xe8,0x2, +0x4f,0x49,0x27,0x7e,0x17,0x0, 0xe8,0x2, 0x6f,0x49,0xe0,0x2, 0x9f,0x1f,0xe1,0x0, +0xcf,0x0, 0xe0,0x2, 0xb7,0x1f,0xe0,0x2, 0x9f,0x1f,0xe3,0xff,0xc7,0x7b,0xe0,0x2, +0xb7,0x1f,0xe0,0x0, 0x1f,0x84,0x87,0x8f,0x0, 0x83,0xe8,0x2, 0x47,0xa9,0xaf,0x82, +0xa, 0x61,0x8, 0xb7,0xf8,0x0, 0xc, 0x3d,0xc0,0x7c,0x17,0x80,0xe2,0x0, 0x79,0x4, +0xe0,0x80,0xaf,0xb2,0xde,0xcc,0xea,0x2, 0x7c,0x29,0xde,0x60,0x3c,0x62,0xdf,0x96, +0x4f,0x87,0xe0,0x0, 0x27,0xf9,0xe8,0x0, 0x4f,0xd9,0xe2,0x0, 0xcf,0x81,0x1, 0x10, +0xe0,0x0, 0x1c,0xd, 0xdf,0x77,0xe8,0x2, 0x6c,0x29,0x14,0x7, 0x3c,0x10,0xdf,0x86, +0xe8,0x0, 0x4f,0xd8,0xe0,0x0, 0x27,0xe8,0xde,0xbf,0xe0,0x0, 0x0, 0xe5,0xe0,0x0, +0x1a,0xc, 0x11,0x80,0x32,0x42,0xe8,0x0, 0x61,0x17,0xe3,0xff,0xc2,0x7f,0xe0,0x7, +0x13,0x60,0x13,0xfc,0xf0,0xe, 0x14,0x41,0xf0,0x0, 0x14,0x9f,0xf0,0x0, 0x15,0x60, +0xf0,0x40,0x3d,0xe3,0xf0,0xe, 0x16,0x1, 0xe1,0x33,0x14,0x3b,0xe0,0xb, 0xd7,0xc6, +0xe0,0xb, 0xd6,0xc4,0x2c,0x7e,0xe0,0x1, 0xb2,0x12,0xe0,0x1, 0xb3,0x32,0xa7,0xe2, +0x3f,0xd7,0xcf,0x82,0xbf,0xe2,0xf0,0x0, 0xbc,0x2, 0xf0,0x0, 0xbc,0xb2,0xa7,0x92, +0x37,0xca,0xe2,0x0, 0xc7,0x81,0x27,0xfc,0xa7,0x12,0x17,0xfe,0x3f,0xde,0xbf,0x92, +0xa7,0x82,0xe0,0x1, 0xcf,0x80,0xbf,0x82,0xe0,0xb, 0xd6,0xa8,0x24,0x7e,0xf0,0x0, +0xbd,0x12,0xf0,0x0, 0xbd,0xb2,0xf0,0x0, 0xbe,0x2, 0xe0,0xb, 0xd6,0x9f,0x3a,0xe8, +0x2c,0x7d,0xf8,0x0, 0x66,0x9f,0x14,0x5, 0xe8,0x2, 0x9f,0x9d,0xc1,0x81,0xe3,0xff, +0xc7,0xfe,0xe8,0x2, 0xb7,0x9d,0xe0,0xb, 0xd6,0x77,0x3c,0x65,0xe0,0xb, 0xd6,0x74, +0xe8,0x2, 0x9f,0x9d,0xe0,0x28,0x3c,0x5, 0xcf,0x81,0xe8,0x2, 0xb7,0x9d,0xe2,0x1, +0xc1,0xff,0xe7,0xff,0x24,0x17,0x17,0x82,0xe1,0x2f,0x3f,0xa3,0xe7,0xff,0x2f,0xb6, +0xe7,0xff,0x0, 0x90,0xc0,0x4, 0xf8,0x0, 0xe, 0xa8,0xb, 0xe1,0x8, 0xb7,0xf8,0x0, +0xc, 0x3c,0xc0,0x7c,0xe8,0x0, 0x61,0x1f,0xe2,0x0, 0x79,0x84,0x17,0x80,0xe0,0x80, +0xaf,0xb3,0xea,0x2, 0x7c,0x28,0xe0,0x2, 0x9f,0x92,0xe1,0x0, 0xcf,0x80,0xe0,0x2, +0xb7,0x92,0xdd,0xcc,0x3c,0x63,0xdf,0x2, 0x4f,0x87,0xe0,0x1, 0x27,0x86,0xe0,0x0, +0x1a,0xc, 0xe8,0x0, 0x61,0x97,0x32,0x42,0xe3,0xff,0xc2,0x7f,0x12,0x83,0xf0,0x7, +0x14,0x60,0xf7,0xff,0x14,0xfc,0xf0,0xe, 0x15,0x0, 0xe7,0x0, 0x13,0x0, 0x13,0xfb, +0xf0,0x0, 0x15,0xe0,0xf0,0x1e,0x16,0x10,0xe1,0x33,0x14,0x3b,0xe0,0xb, 0xd7,0x46, +0xe0,0x1, 0xb2,0x13,0xf0,0x1, 0xb4,0x33,0xa7,0xe3,0xe8,0xf, 0x3f,0xd9,0xcf,0x82, +0xbf,0xe3,0x17,0x97,0xf0,0x0, 0xbd,0x3, 0xbf,0xb3,0xa7,0x83,0xe0,0x10,0xcf,0x80, +0xbf,0x83,0xe0,0x2, 0x9f,0x92,0xe2,0xff,0xc7,0xff,0xe0,0x2, 0xb7,0x92,0xe0,0x2, +0x9f,0x92,0xcf,0x84,0xe0,0x2, 0xb7,0x92,0xa7,0x93,0x37,0xca,0xe2,0x0, 0xc7,0x81, +0x27,0xfc,0xa7,0x93,0x37,0xc8,0xe2,0x0, 0xc7,0x81,0x2f,0x84,0x17,0x81,0xe8,0x2, +0x6f,0xaa,0xe0,0x2, 0x9f,0x92,0x3f,0xc6,0xe0,0x2, 0xb7,0x92,0xe0,0x2, 0x9f,0x92, +0x3f,0xd7,0xe0,0x2, 0xb7,0x92,0x17,0x80,0xf0,0x0, 0xbd,0x93,0xbf,0xb3,0xf0,0x0, +0xbe,0x3, 0xe8,0x2, 0x6f,0xc9,0xe0,0x2, 0x9f,0x92,0xe2,0xff,0xc7,0xff,0xe0,0x2, +0xb7,0x92,0xe0,0x2, 0x9f,0x92,0xcf,0x84,0xe0,0x2, 0xb7,0x92,0xe8,0x2, 0x4f,0xc9, +0x27,0xfe,0x17,0x80,0xe8,0x2, 0x6f,0xc9,0xe0,0x2, 0x9f,0x92,0x3f,0xc6,0xe0,0x2, +0xb7,0x92,0xe0,0x2, 0x9f,0x92,0x3f,0xd7,0xe0,0x2, 0xb7,0x92,0xe8,0x2, 0x4f,0xaa, +0x2f,0x84,0xc2,0xff,0xe7,0xff,0x2a,0xa2,0xe8,0x2, 0x4f,0xaa,0x27,0x8d,0xe0,0x0, +0x1c,0xd, 0x17,0x80,0xe8,0x2, 0x6f,0xaa,0xde,0x6d,0xe8,0x2, 0x6c,0x28,0xdd,0xbc, +0x14,0x7, 0x3c,0x10,0xde,0x7b,0xc0,0x4, 0xf8,0x0, 0xe, 0x28,0xb, 0xe1,0xe8,0x0, +0x4f,0xd9,0x2f,0x83,0xe7,0xfe,0x0, 0xdc,0xe7,0xfd,0x0, 0xcd,0x8, 0xb2,0x11,0x5, +0x3c,0x62,0xc1,0x1, 0xd3,0x71,0xe2,0x1, 0xc1,0x7f,0xe2,0x0, 0xc9,0x1d,0x1, 0xf9, +0x9, 0x61,0xe2,0xff,0x17,0xf0,0xa7,0xf, 0xe0,0x0, 0x1f,0xa1,0x3f,0x7f,0x1, 0x97, +0xe2,0xff,0x17,0xf4,0xa7,0xf, 0xe0,0x0, 0x1f,0xa2,0x3f,0x7f,0x1, 0x90,0xe2,0xff, +0x17,0xf8,0xa7,0xf, 0xe0,0x0, 0x1f,0xa3,0x3f,0x7f,0x1, 0x89,0xe2,0xff,0x17,0xfc, +0xa4,0xf, 0xe0,0x0, 0x1f,0xa4,0xe0,0x28,0x3c,0xf, 0x38,0x82,0x14,0x0, 0x38,0x82, +0xe8,0x0, 0x4f,0xd9,0x27,0x9b,0x8, 0xb1,0xe8,0x0, 0x67,0x9f,0xe0,0x1, 0xa7,0xef, +0x37,0xc8,0xe2,0x0, 0xc7,0x81,0x27,0x85,0xe2,0xff,0x17,0xf8,0x17,0x0, 0xbf,0xf, +0xdf,0xd1,0x24,0x9, 0xe2,0xff,0x17,0xf8,0x17,0x0, 0xbf,0xf, 0x17,0x81,0xe8,0x2, +0x6f,0xb0,0x0, 0x83,0xe8,0x2, 0x6c,0x30,0x8, 0xe1,0x38,0x82,0xe8,0x2, 0x4c,0x30, +0x38,0x82,0x8, 0xb1,0xd5,0x7d,0xe0,0x60,0x3f,0x87,0xe0,0x0, 0x1f,0x9, 0xe0,0x1, +0xbf,0x3f,0xe0,0x0, 0x1f,0x11,0xe0,0x1, 0xbf,0x4f,0xe0,0x0, 0x1f,0x5, 0xe0,0x1, +0xbf,0x6f,0xe0,0x0, 0x1f,0x6, 0xe0,0x2, 0xbf,0x4f,0x8, 0xe1,0xe0,0x0, 0x1e,0xa5, +0xe0,0x2, 0x9f,0x9d,0xe2,0x2, 0xc7,0x80,0xe4,0xf, 0x37,0xa0,0xe4,0xf, 0x37,0xc0, +0x27,0x93,0xe0,0x2, 0x9f,0x9d,0x37,0xc9,0xe2,0x0, 0xc7,0x81,0xe8,0x0, 0x6f,0xd9, +0xe4,0x0, 0xcf,0x81,0xa6,0xd, 0xe0,0xe, 0x37,0xa9,0xe7,0xfb,0x17,0xff,0x3f,0xdc, +0x3f,0xce,0xbf,0x8d,0x38,0x82,0x17,0x83,0xe8,0x0, 0x6f,0xd9,0x38,0x82,0xe0,0x0, +0x1f,0xa5,0x17,0x7f,0xb7,0x5f,0xe0,0x1, 0xb7,0x5f,0xe0,0x1e,0x17,0x3, 0xb7,0x3f, +0xe8,0x0, 0x4f,0x59,0x27,0xf, 0xe0,0xa0,0x17,0x14,0xb7,0x7f,0xe0,0x20,0x17,0x4, +0xe0,0x1, 0xb7,0x1f,0xe0,0x1, 0x9f,0x7f,0xe3,0xff,0xc7,0x7b,0xe0,0x1, 0xb7,0x7f, +0x0, 0x90,0x17,0x4, 0xb7,0x7f,0xe0,0x1, 0xb7,0x1f,0xe0,0x1, 0x9f,0x7f,0xcf,0x4, +0xe0,0x1, 0xb7,0x7f,0xe0,0x2, 0x9f,0x1f,0xe3,0xff,0xc7,0x7b,0xe0,0x2, 0xb7,0x1f, +0xa7,0xf, 0xe0,0x10,0xcf,0x0, 0xbf,0xf, 0x17,0x7b,0xe0,0x1, 0xb7,0x3f,0xeb,0x0, +0xcf,0x80,0xa6,0xaf,0x17,0x78,0x3f,0x5d,0xbf,0x2f,0xe1,0x80,0x17,0xb, 0xbf,0x1f, +0x38,0x82,0x8f,0x8, 0x8f,0x98,0xe0,0x1, 0x14,0x7f,0x3f,0x9e,0xe0,0x28,0x3f,0x88, +0x38,0x82,0x8, 0xb4,0xe0,0x0, 0x19,0x83,0x39,0x68,0x39,0x98,0x3c,0x63,0x3a,0x69, +0xdf,0xf1,0x24,0x3, 0x8f,0x83,0x0, 0x88,0xe0,0x0, 0x1f,0x88,0x39,0x1f,0x3c,0x62, +0xdf,0xe9,0x24,0x3, 0x8f,0x82,0xaf,0x84,0xa, 0x61,0xe8,0x0, 0x4f,0xd9,0x27,0x97, +0x8, 0xb1,0xe0,0x0, 0x1c,0x83,0x15,0x16,0xe0,0x1f,0x14,0x0, 0xd2,0xb7,0xe0,0x0, +0x1c,0x88,0x15,0x16,0xe0,0x22,0x14,0x20,0xd2,0xb1,0xea,0x0, 0x7c,0xda,0x14,0x0, +0xdf,0xd9,0xea,0x0, 0x7c,0xd8,0x14,0xe, 0x8, 0xa1,0x0, 0xd4,0x38,0x82,0xe8,0x0, +0x4f,0xd9,0x27,0x9e,0x8, 0xb1,0xc0,0x7c,0x14,0x86,0x15,0x2, 0x3c,0x90,0xe0,0x1f, +0x14,0x0, 0xd2,0x9c,0x5f,0x3, 0xe1,0xff,0x17,0xff,0x3f,0x7f,0x1, 0x8f,0xe0,0x0, +0x1c,0x88,0xe0,0x1, 0x15,0x0, 0xe0,0xa2,0x14,0x20,0xd2,0x90,0xe0,0x0, 0x1c,0x88, +0xe0,0x1, 0x15,0x0, 0xe0,0x1f,0x14,0x0, 0xd2,0x2a,0xc0,0x4, 0x8, 0xe1,0x38,0x82, +0xe0,0x0, 0x1f,0xa6,0x17,0x0, 0xaf,0x7f,0x17,0x7c,0xa6,0x8f,0x3f,0x5d,0xbf,0xf, +0x17,0x88,0xe0,0x61,0x3f,0x91,0x17,0x90,0xe0,0x61,0x3f,0x91,0x38,0x82,0x8, 0xb1, +0xeb,0x0, 0xcf,0x0, 0xa7,0x9e,0xcf,0xc0,0xbf,0x9e,0xdf,0xeb,0xe8,0x0, 0x4f,0xd9, +0x27,0x92,0xe8,0x0, 0x47,0xda,0xe0,0x0, 0x1f,0x26,0xe2,0x1, 0xc7,0xfe,0xe0,0x1, +0xaf,0xbe,0xe0,0x61,0x3f,0x82,0xcf,0x88,0xe0,0x61,0x3f,0x92,0xe0,0x61,0x3f,0x82, +0xcf,0x90,0x0, 0x8b,0xe0,0x61,0x3f,0x2, 0x17,0xf7,0x3f,0xde,0xe0,0x61,0x3f,0x92, +0xe0,0x61,0x3f,0x2, 0x17,0xef,0x3f,0xde,0xe0,0x61,0x3f,0x92,0x8, 0xe1,0xe, 0xbf, +0xe8,0x0, 0x67,0xcf,0xe0,0x0, 0x1f,0x27,0xc7,0x81,0xe8,0x0, 0x7f,0xcf,0x17,0xdf, +0xa6,0xbe,0x3f,0xdd,0xbf,0xbe,0xe0,0x20,0x17,0x80,0xe0,0x61,0x3f,0x91,0xf, 0xad, +0x38,0x0, 0xe0,0x0, 0x1f,0x27,0x17,0x80,0xe8,0x0, 0x7f,0xcf,0x17,0x81,0xbf,0xbe, +0x17,0xfc,0xa6,0xae,0x3f,0xdd,0xcf,0x82,0xbf,0xae,0xe0,0x2, 0x17,0x80,0xb7,0x9e, +0xe0,0x20,0x17,0x80,0xe0,0x61,0x3f,0x91,0xe0,0x61,0x3f,0x82,0xe0,0x20,0xcf,0x80, +0xe0,0x61,0x3f,0x92,0x38,0x82,0xe0,0x0, 0x1f,0xa7,0x17,0x6f,0xa6,0xbf,0x3f,0x5d, +0xbf,0x3f,0x17,0x0, 0xe8,0x0, 0x7f,0x4f,0xa7,0x3f,0xcf,0x10,0xbf,0x3f,0x38,0x82, +0xe0,0x0, 0x1f,0x27,0x17,0xef,0xa6,0xbe,0x3f,0xdd,0xbf,0xbe,0x17,0x80,0xe8,0x0, +0x7f,0xcf,0x38,0x82,0xe0,0x0, 0x1f,0xa7,0x17,0x0, 0xbf,0x3f,0xb7,0x1f,0x17,0x7c, +0xa6,0xaf,0x3f,0x5d,0xbf,0x2f,0xe0,0x20,0x17,0x80,0xe0,0x61,0x3f,0x91,0xe0,0x61, +0x3f,0x2, 0xe7,0xdf,0x17,0xff,0x3f,0xde,0xe0,0x61,0x3f,0x92,0x38,0x82,0xe1,0xff, +0x17,0x7f,0xc4,0x7f,0xe3,0xff,0xc4,0x7f,0x3c,0x7e,0x1, 0x8, 0x17,0x89,0xc7,0xff, +0xe2,0x1, 0xc7,0xff,0x27,0xf7,0x0, 0x0, 0x0, 0xfb,0x38,0x82,0xc0,0x7c,0xe0,0xa0, +0x17,0x80,0x7f,0x81,0xe8,0x2, 0x4f,0x9e,0x27,0x93,0xe0,0x0, 0x1f,0xa5,0xe0,0x1, +0x9f,0x1f,0xe3,0xff,0xc7,0x7b,0xe0,0x1, 0xb7,0x1f,0x16,0xff,0x67,0x1, 0x3e,0x9e, +0x7e,0x81,0x2f,0x7c,0xe0,0x1, 0x9f,0x1f,0xcf,0x4, 0xe0,0x1, 0xb7,0x1f,0xc0,0x4, +0x38,0x82,0xe0,0x0, 0x1f,0xa8,0xa7,0x2f,0xe2,0x0, 0xc7,0x7f,0x27,0xd, 0xa6,0xaf, +0xe7,0xff,0x17,0x0, 0x3f,0x5d,0xcf,0x60,0xbf,0x2f,0xa7,0x3f,0xcf,0x10,0xbf,0x3f, +0xa7,0xf, 0xcf,0x40,0xbf,0xf, 0x38,0x82,0xe0,0x0, 0x1f,0xa8,0xa7,0x1f,0xcf,0x1, +0xbf,0x1f,0xe7,0xff,0x17,0x3f,0xa6,0x8f,0x3f,0x5d,0xbf,0xf, 0x38,0x82,0x8, 0xb1, +0xdf,0xf4,0xe8,0x0, 0x4f,0xd9,0x27,0x96,0xe0,0x0, 0x1f,0xa8,0xa7,0x2f,0xe0,0x1, +0xcf,0x0, 0xbf,0x2f,0xe7,0xff,0x17,0x0, 0xa6,0xaf,0x3f,0x5d,0xcf,0x60,0xbf,0x2f, +0xa7,0x1f,0xcf,0x2, 0xbf,0x1f,0xa7,0x3f,0xcf,0x10,0xbf,0x3f,0xa7,0xf, 0xcf,0x40, +0xbf,0xf, 0xe0,0x61,0x3f,0x2, 0xe7,0xf7,0x17,0xff,0x3f,0xde,0xe0,0x61,0x3f,0x92, +0x8, 0xe1,0xe0,0x0, 0x1d,0x8b,0x17,0x80,0x16,0x1, 0xe0,0xe, 0x3d,0x9f,0xc7,0x81, +0xe2,0x0, 0xcf,0x90,0xae,0xe, 0xe0,0x0, 0x1e,0x8b,0x1, 0xf8,0x17,0x83,0xaf,0xbd, +0x17,0x2, 0xaf,0xcd,0x14,0x1, 0xaf,0x6d,0x17,0x0, 0xe0,0x0, 0x1d,0x10,0x3c,0xee, +0xe0,0xf, 0x37,0x22,0x3f,0x9a,0xbc,0x8f,0x16,0x0, 0xe0,0x17,0x3e,0x9e,0xe0,0xb, +0x3e,0x9c,0xf0,0x0, 0x8b,0xb, 0xe8,0x0, 0x8d,0x87,0xf0,0x40,0x3b,0x7b,0x5, 0x87, +0xa5,0x8f,0xe0,0x16,0x34,0x3c,0xe8,0xb, 0x3d,0xc6,0xbd,0x8f,0xc6,0x1, 0xe2,0x0, +0xce,0x10,0x1, 0xee,0xc7,0x1, 0xe2,0x0, 0xcf,0x10,0x1, 0xe3,0xe0,0x0, 0x1f,0x8a, +0x17,0x0, 0xe0,0x6, 0xaf,0xf, 0x38,0x82,0xe8,0x0, 0x4f,0xd9,0x27,0x98,0xe8,0x0, +0x67,0x20,0xa7,0x9e,0xcf,0x81,0xbf,0x9e,0xe8,0x0, 0x67,0x1f,0x9f,0xbe,0xe0,0x1e, +0xcf,0x80,0xb7,0xbe,0xe0,0x61,0x3f,0x2, 0xe7,0xef,0x17,0xff,0x3f,0xde,0xe0,0x61, +0x3f,0x92,0xe8,0x0, 0x67,0x9a,0xe0,0x6, 0x17,0x6, 0xbf,0xf, 0x38,0x82,0xe8,0x0, +0x67,0x9a,0x17,0x0, 0xaf,0x7f,0xa7,0xf, 0x37,0x4e,0xe2,0x0, 0xc7,0x1, 0x27,0x7c, +0xa6,0x8f,0xe7,0x7f,0x17,0x7f,0x3f,0x5d,0xbf,0xf, 0x8c,0x7f,0x38,0x82,0x8, 0xb2, +0xe8,0x0, 0x61,0x1a,0x17,0xfb,0xa7,0x2, 0xe2,0x0, 0xcc,0x1, 0x3f,0xde,0xbf,0x82, +0x1, 0x83,0x14,0x6, 0x0, 0x82,0x14,0x4, 0xe0,0xb, 0xd2,0xa4,0xa7,0x82,0xcf,0x84, +0xbf,0x82,0x9, 0x61,0x8, 0xb2,0xe8,0x0, 0x61,0x1a,0x17,0xfb,0xa7,0x2, 0x14,0x5, +0x3f,0xde,0xbf,0x82,0xe0,0xb, 0xd2,0x96,0xdf,0xd3,0xa7,0x82,0xe2,0x0, 0xc4,0x1, +0xcf,0x84,0xbf,0x82,0x9, 0x61,0x8, 0xb4,0xe8,0x0, 0x61,0x9a,0x17,0xfb,0xa7,0x3, +0xe0,0x1, 0x14,0x1f,0x3f,0xde,0xbf,0x83,0xe0,0xb, 0xd2,0x84,0xdf,0xc1,0x3a,0x68, +0xdf,0xbf,0xe4,0x2, 0x34,0x28,0xe4,0x2, 0x31,0x40,0xdf,0xba,0xa7,0x83,0x3c,0x42, +0xe4,0x4, 0x32,0x20,0xe3,0xff,0xc4,0x7f,0xcf,0x84,0x3c,0x14,0xbf,0x83,0xa, 0x61, +0x8, 0xb4,0xe8,0x0, 0x67,0x1f,0x14,0x1, 0xe0,0x1, 0x9f,0x9e,0x11,0xfb,0xe0,0x80, +0xcf,0x80,0xe0,0x1, 0xb7,0x9e,0xdf,0xb4,0xe8,0x0, 0x61,0x1a,0x14,0x5, 0xa7,0x82, +0x3f,0xd3,0xbf,0x82,0xe0,0xb, 0xd2,0x5e,0xdf,0x9b,0xa7,0x82,0x3a,0x68,0xcf,0x84, +0xbf,0x82,0x14,0x6, 0xa7,0x82,0x3f,0xd3,0xbf,0x82,0xe0,0xb, 0xd2,0x53,0xa7,0x82, +0x14,0x1, 0xcf,0x84,0xbf,0x82,0xa7,0x82,0x39,0xdf,0xb9,0x82,0xe0,0xb, 0xd2,0x4a, +0xe0,0x1, 0x14,0x3, 0x3c,0x54,0xe0,0xb, 0xd2,0x45,0xa7,0x82,0xcf,0x84,0xbf,0x82, +0xdf,0xa2,0x2c,0x7f,0xa, 0x61,0x8, 0xb2,0xe8,0x0, 0x67,0x1a,0x17,0xfb,0xa6,0x8e, +0x39,0x69,0x3f,0xdd,0xbf,0x8e,0xe0,0xb, 0xd2,0x35,0xe4,0xf, 0x31,0x40,0x3c,0x6f, +0xe2,0x1, 0xc4,0x7f,0xe0,0xb, 0xd2,0x2e,0xe0,0xf, 0x31,0x48,0x3c,0x6f,0xe2,0x1, +0xc4,0x7f,0xe0,0xb, 0xd2,0x27,0x3c,0x62,0xe2,0x1, 0xc4,0x7f,0x9, 0x21,0xe1,0x64, +0x0, 0xa1,0x8, 0xb4,0x3a,0x68,0x14,0x1, 0x39,0x69,0x39,0xea,0xdf,0x69,0x3c,0xe4, +0x14,0x2, 0xdf,0xda,0xe8,0x0, 0x67,0x9a,0x3c,0xe2,0x39,0x92,0xe7,0x7f,0x16,0xff, +0x3c,0xf3,0x1, 0xd, 0xe1,0x80,0x87,0x19,0xaf,0x7f,0xa7,0xf, 0x37,0x4e,0xe2,0x0, +0xc7,0x1, 0x27,0x7c,0xa7,0xf, 0x3f,0x5d,0xbf,0xf, 0x0, 0xf3,0xa7,0xf, 0xcf,0x4, +0xbf,0xf, 0xde,0x52,0xdf,0x60,0x24,0x6, 0xe8,0x0, 0x67,0xcf,0xe2,0x0, 0xcf,0xb2, +0x5, 0xfa,0xe8,0x0, 0x67,0xcf,0xe2,0x0, 0xcf,0xb2,0x2, 0x84,0xa, 0x21,0xe7,0xfc, +0x0, 0xd1,0xe0,0x27,0x14,0x8, 0xa, 0x21,0xe7,0xfc,0x0, 0xeb,0x8, 0xb7,0xe0,0x1, +0x11,0x7f,0x39,0x58,0xe0,0x2, 0x17,0x80,0xe0,0x2, 0x3f,0xa2,0xe3,0xff,0xc1,0x7f, +0x39,0x7a,0x3, 0xaf,0x39,0xea,0x3d,0x62,0x3a,0xe9,0x3a,0x68,0xdf,0xbb,0xe0,0xa, +0x39,0xa2,0x39,0xea,0x3a,0x12,0xe3,0xff,0xc1,0xff,0x39,0x15,0x3b,0x62,0x3a,0xe3, +0xe0,0x7, 0x3a,0x22,0xe2,0x1, 0xca,0xff,0xe0,0x8, 0x3b,0x17,0x5, 0x8c,0x3c,0xe6, +0xe0,0x2, 0x15,0x0, 0xe1,0xfe,0xc2,0x80,0xdf,0xa5,0xe3,0xff,0xc2,0xff,0xe0,0x2, +0xc3,0x0, 0x0, 0xf1,0xe0,0xf, 0x31,0xc8,0xe7,0xfe,0x15,0x0, 0x3d,0x3f,0xe0,0x9, +0x37,0xa8,0x3d,0x13,0xe3,0xff,0xc5,0x7f,0xe0,0x8, 0x3a,0x19,0x3c,0x92,0x25,0x2, +0xdf,0x91,0x14,0x1, 0xb, 0xe1,0x8, 0xb2,0x39,0x68,0x14,0x1, 0xde,0xf9,0xe0,0x9, +0x31,0x2c,0x14,0x20,0xdf,0x69,0xe8,0x0, 0x67,0x1a,0xa7,0x8e,0xcf,0x84,0xbf,0x8e, +0xdd,0xf3,0xdf,0x1, 0x24,0x6, 0xe8,0x0, 0x67,0xcf,0xe2,0x3, 0xcf,0xf4,0x5, 0xfa, +0xe8,0x0, 0x67,0xcf,0xe2,0x3, 0xcf,0xf4,0x2, 0x84,0x9, 0x21,0xe7,0xfb,0x0, 0xf2, +0xe0,0x27,0x14,0x8, 0x9, 0x21,0xe7,0xfc,0x0, 0x8c,0x8, 0xb3,0x39,0x69,0x39,0xea, +0xe0,0xb, 0xd1,0x97,0xe8,0x0, 0x67,0x9a,0x39,0x92,0x16,0x80,0xe7,0x7f,0x16,0x7f, +0x39,0x73,0x1, 0xe, 0xae,0xff,0xa7,0xf, 0x37,0x4e,0xe2,0x0, 0xc7,0x1, 0x27,0x7c, +0xa7,0xf, 0x3f,0x5c,0xbf,0xf, 0x8f,0x7f,0xe1,0x80,0xaf,0x12,0x0, 0xf2,0xa7,0xf, +0xcf,0x4, 0xbf,0xf, 0x9, 0xe1,0x8, 0xb1,0xe0,0x0, 0x1c,0x87,0xe0,0xa2,0x14,0x0, +0x15,0x16,0xdf,0xdc,0xe0,0x0, 0x1f,0x87,0xe1,0xff,0x17,0x7f,0x9c,0xf, 0x9e,0x9f, +0x3e,0x98,0x3e,0xfe,0x1, 0x9f,0xe0,0x1, 0x9f,0x1f,0xe0,0x1, 0x9e,0x2f,0x3e,0x1e, +0x3e,0x7d,0x1, 0x98,0x24,0x18,0x9d,0xaf,0x9e,0xbf,0x3e,0x9b,0x3e,0xfc,0x1, 0x92, +0x9e,0x4f,0x9f,0xdf,0x3f,0x9c,0x3f,0xfd,0x1, 0x8d,0xe4,0xe, 0x37,0x20,0x3c,0x4e, +0xe8,0x0, 0x7c,0x4d,0xe2,0xf0,0x17,0x80,0xe8,0x0, 0x64,0x4d,0xe1,0x28,0x3f,0xa8, +0x0, 0x82,0x14,0x0, 0x8, 0xe1,0xe8,0x0, 0x67,0x20,0xa7,0x9e,0xe0,0x80,0xcf,0x80, +0xbf,0x9e,0xe0,0x0, 0x17,0x60,0xe8,0x0, 0x67,0x97,0xbf,0x1f,0x17,0x0, 0xbf,0x3f, +0xe8,0x0, 0x4f,0x59,0xe2,0x0, 0xcf,0x1, 0x1, 0x8d,0x17,0x35,0xe0,0x3, 0xaf,0x7f, +0xe0,0xe, 0x17,0x1, 0xbf,0xf, 0xe0,0x61,0x3f,0x2, 0xe7,0xff,0x17,0xbf,0x3f,0xde, +0x0, 0x88,0x2f,0x9, 0xe0,0x1e,0x17,0x10,0xbf,0xf, 0xe0,0x61,0x3f,0x82,0xcf,0xc0, +0xe0,0x61,0x3f,0x92,0xe0,0x0, 0x17,0xc0,0xe0,0x61,0x3f,0x91,0x38,0x82,0x8, 0xb7, +0xf8,0x0, 0xc, 0x3d,0xe8,0x0, 0x4f,0xd9,0xe8,0x0, 0x61,0x9f,0xe2,0x0, 0xcf,0x81, +0xe0,0x1, 0x1, 0xae,0xe0,0x3, 0x9f,0x93,0xe2,0x1, 0xc7,0xf0,0xe2,0x1, 0xcf,0xf0, +0xe0,0x1, 0x1, 0x26,0xe0,0x2, 0x12,0x80,0xe0,0x2, 0x17,0x82,0x9f,0x5, 0x9f,0x8f, +0x3f,0x9e,0xe1,0xff,0x17,0x7f,0x3f,0xfe,0x1, 0xd, 0xe0,0x2, 0x17,0x9c,0xa7,0xf, +0xe3,0xff,0xc7,0x7f,0xbf,0xf, 0xa7,0xf, 0xe8,0xab,0xcf,0x3b,0xbf,0xf, 0xe0,0x1, +0x0, 0x8f,0xe8,0x0, 0x61,0x17,0x13,0x0, 0x13,0xfe,0xf0,0xe, 0x15,0x41,0xf7,0xff, +0x15,0xfc,0xf0,0x0, 0x14,0xe0,0xf0,0xe, 0x14,0x1, 0x9a,0x5, 0x32,0x42,0xe0,0x1d, +0x32,0x48,0xe2,0x1, 0xc2,0x7f,0xf2,0xf, 0x3e,0xc4,0xe2,0x6, 0x3b,0x4f,0xe2,0x1, +0xc3,0x7f,0xe0,0xb, 0xd1,0x7b,0xf0,0x40,0x3e,0x68,0x2c,0x7c,0xe0,0x2, 0x9f,0x93, +0x14,0xd, 0x3f,0xd7,0xe0,0x2, 0xb7,0x93,0xe0,0xb, 0xd1,0x56,0x14,0x5, 0xe0,0xb, +0xd1,0x53,0xe8,0x40,0x3c,0x6c,0xe0,0xb, 0xd1,0x4f,0xe8,0x40,0x3c,0x6c,0xe0,0xb, +0xd1,0x4b,0xe8,0x40,0x3c,0x6d,0xe0,0xb, 0xd1,0x47,0x3c,0x64,0xe0,0xb, 0xd1,0x44, +0x3c,0x66,0xe0,0xb, 0xd1,0x41,0x14,0xe, 0xe0,0xb, 0xd1,0x3e,0xe0,0x1, 0x14,0x1, +0xe0,0xb, 0xd1,0x3a,0xe8,0x40,0x3c,0x6c,0xe0,0xb, 0xd1,0x36,0xe0,0x2, 0x9f,0x93, +0xcf,0x81,0xe0,0x2, 0xb7,0x93,0x24,0x20,0xa7,0xb2,0xcf,0x81,0xbf,0xb2,0xf0,0x0, +0xbd,0x2, 0xf0,0x1, 0xb6,0x12,0x9f,0x85,0x37,0xc2,0xe0,0x1, 0xb7,0xb2,0xa7,0xe2, +0xe8,0xf, 0x3f,0xdb,0xcf,0x81,0xbf,0xe2,0x17,0x9f,0xbf,0xb2,0xa7,0x92,0x37,0xca, +0xe2,0x0, 0xc7,0x81,0x27,0xfc,0xa7,0x12,0x17,0xfe,0x3f,0xde,0xbf,0x92,0xa7,0x82, +0xe0,0x1, 0xcf,0x80,0xbf,0x82,0xe0,0xb, 0xd1,0x29,0x3a,0x68,0x2c,0x7d,0xe8,0x0, +0x67,0x97,0xf0,0x0, 0xbc,0x9f,0xbc,0x3f,0x14,0xf, 0xf0,0x0, 0xbc,0xf, 0xe0,0x2, +0x9f,0x93,0x3f,0xd7,0xe0,0x2, 0xb7,0x93,0xe0,0xb, 0xd0,0xfe,0xe0,0x1, 0x14,0x1, +0xe0,0xb, 0xd0,0xfa,0x3c,0x64,0xe0,0xb, 0xd0,0xf7,0xe0,0x2, 0x9f,0x93,0xcf,0x81, +0xe0,0x2, 0xb7,0x93,0xe7,0xff,0x24,0x3, 0xe7,0xfe,0x0, 0xe9,0xe0,0xef,0x14,0x19, +0xe0,0xb, 0xd2,0x4, 0x17,0x80,0xe0,0x3, 0xb7,0x93,0xf8,0x0, 0xe, 0xa8,0xb, 0xe1, +0xea,0x0, 0xcc,0x2, 0xe0,0x2, 0xcc,0x0, 0x14,0x80,0xea,0x0, 0xcd,0x2, 0xe0,0x2c, +0xcd,0x58,0x3d,0x28,0xd0,0xb4,0xea,0x0, 0xcc,0x0, 0xe0,0x0, 0xcc,0x0, 0x24,0x2, +0x3c,0x1, 0x14,0x0, 0x14,0x80,0xd0,0x3e,0x3a,0x80,0x0, 0x0, 0x3a,0x80,0xe0,0x40, +0x17,0x80,0xe2,0xb0,0x16,0x80,0xa6,0xf, 0xe0,0xe, 0x3f,0x9d,0xc7,0x84,0xe2,0x4f, +0xcf,0xf0,0xbe,0xe, 0x1, 0xf9,0x38,0x82,0x8, 0xb1,0x3f,0x83,0xdb,0x68,0xdb,0x88, +0xdf,0xef,0xe0,0x61,0x3f,0x2, 0x17,0xf7,0x3f,0xde,0xe0,0x61,0x3f,0x92,0xe0,0x61, +0x3f,0x2, 0x17,0xef,0x3f,0xde,0xe0,0x61,0x3f,0x92,0xdd,0x3f,0xde,0xdd,0xdb,0xce, +0xdc,0x51,0xdb,0x40,0xdc,0xff,0x3b,0x0, 0xdb,0x1c,0x8, 0xa1,0xe7,0xf9,0x0, 0xd9, +0xe8,0x0, 0x4f,0xd9,0x27,0x8e,0x8, 0xb1,0xdb,0x32,0x24,0xa, 0xdd,0x7d,0xe8,0x0, +0x7c,0x46,0xdd,0x97,0xdc,0x5, 0xef,0xff,0xd7,0x39,0xdc,0xac,0x0, 0xfd,0x8, 0xe1, +0x38,0x82,0x8, 0xb1,0xdf,0xd2,0xde,0xec,0xdc,0xa5,0xde,0xbe,0xda,0xd1,0xdf,0xe9, +0xdc,0x62,0xdc,0xa0,0xde,0xb9,0xe0,0xb, 0xd2,0xfc,0x0, 0x80,0x15,0x0, 0x0, 0x81, +0x3c,0xf8,0x17,0x81,0x3, 0x90,0xe2,0x0, 0xcc,0x80,0x4, 0xd, 0x16,0x0, 0x34,0xa1, +0x37,0xa1,0xe1,0x2e,0x3c,0x19,0xe1,0x2d,0x3f,0x8c,0x27,0x13,0x26,0x92,0xe2,0x0, +0xcc,0x80,0x3, 0x76,0x17,0x0, 0x3c,0x79,0x4, 0x83,0x3c,0x29,0x3f,0x4f,0x37,0xc1, +0x34,0xc1,0x2f,0xfa,0xe2,0x0, 0xcd,0x0, 0xe0,0x6e,0x39,0xa8,0x3c,0x6e,0x38,0x82, +0x3f,0x6f,0x2f,0xf1,0x0, 0xf8,0x0, 0x0, 0x3d,0xe8,0xe2,0x0, 0xcd,0x3, 0x5, 0xad, +0xe0,0xc, 0x3c,0x49,0xe2,0x0, 0xc6,0x3, 0x2e,0x28,0xc5,0x7c,0xe0,0xc, 0x35,0x21, +0xea,0x0, 0xce,0x80,0xe0,0x31,0xce,0xbc,0xe2,0x0, 0xc6,0x18,0xe1,0x80,0xa7,0x19, +0x3e,0xac,0xe0,0xc, 0x35,0x44,0x3f,0xee,0xe0,0x0, 0x3e,0x82,0xe1,0x80,0xa7,0x19, +0xe1,0x80,0xbf,0x9b,0xe1,0x80,0xa7,0x99,0xe1,0x80,0xbf,0x1b,0xe1,0x80,0xa7,0x19, +0xe1,0x80,0xbf,0x9b,0xe1,0x80,0xa7,0x99,0xe1,0x80,0xbf,0x1b,0xc6,0x7f,0x6, 0x6f, +0xe1,0x80,0xbf,0x9b,0xe2,0x0, 0xc5,0x3, 0xc5,0x7f,0x6, 0x87,0xe1,0x80,0x86,0x19, +0xc5,0x7f,0xe1,0x80,0xae,0x1b,0x6, 0x7b,0x38,0x82,0x0, 0x0, 0xe2,0x0, 0xcd,0x3, +0x5, 0xaf,0xe2,0x1, 0xc4,0xff,0xe0,0xc, 0x34,0xa8,0x3c,0xcc,0xe4,0xc, 0x34,0xa0, +0x3c,0xcc,0xe0,0x41,0x3e,0x48,0xe2,0x0, 0xc6,0x3, 0xe0,0xb, 0x3e,0x18,0xe0,0xc, +0x3d,0x2c,0xe0,0xd, 0x36,0x44,0xe2,0x0, 0xc6,0xc, 0xea,0x0, 0xcf,0x80,0xe0,0x32, +0xcf,0xa8,0x3f,0xac,0xe0,0x0, 0x3f,0x82,0xe1,0x80,0xbc,0x9b,0xe1,0x80,0xbc,0x9b, +0xe1,0x80,0xbc,0x9b,0xe1,0x80,0xbc,0x9b,0xc6,0xff,0x6, 0x77,0x3d,0x18,0xe0,0xc0, +0xac,0xba,0xac,0x9a,0xac,0xaa,0xac,0x88,0xac,0x98,0xac,0xa8,0x38,0x82,0x3d,0xe8, +0xc5,0x7f,0x6, 0x85,0xe1,0x80,0xac,0x9b,0xc5,0x7f,0x6, 0x7d,0x38,0x82,0x8, 0xb1, +0xe0,0x60,0x3c,0x87,0xea,0x4, 0x7f,0x80,0xe0,0x0, 0x15,0x60,0x3c,0x6f,0xdf,0x85, +0xe0,0x60,0x3c,0x17,0x8, 0xe1,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x14,0xc4,0x0, 0x2, 0x16,0x48,0x0, 0x1, 0x79,0x88, +0x0, 0x0, 0x10,0x4e,0x0, 0x2, 0x14,0xac,0x0, 0x2, 0x15,0x44,0x0, 0x0, 0x4, 0xb2, +0x0, 0x2, 0x15,0xc4,0x0, 0x2, 0x15,0xf8,0x0, 0x0, 0x5, 0x2c,0x0, 0x2, 0x5, 0x2c, +0x0, 0x2, 0x3, 0x0, 0x0, 0x2, 0x4, 0xc, 0x0, 0x2, 0x16,0x8, 0x0, 0x0, 0x5, 0x34, +0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x5, 0x1c,0x80,0xb6,0x80,0xb, 0x1, 0x0, 0x0, 0x0, +0x1, 0x3, 0x70,0x0, 0x80,0x0, 0xd, 0x0, 0x80,0x0, 0x9, 0x0, 0x80,0x0, 0x8, 0x0, +0x80,0x0, 0x7, 0x0, 0x80,0x0, 0x6, 0x0, 0x80,0x0, 0x4, 0x0, 0x80,0x0, 0x3, 0x0, +0x80,0x0, 0x2, 0x0, 0x80,0x0, 0x1, 0x0, 0x80,0x0, 0x0, 0x0, 0x55,0x50,0x47,0x52, +0x41,0x44,0x45,0x20,0x66,0xcc,0x99,0x33,0x46,0x4c,0x41,0x47,0x80,0x0, 0x1, 0x0, +0x80,0x0, 0x4, 0x0, 0x80,0x0, 0x2, 0x0, 0x80,0x0, 0x3, 0x0, 0x55,0x50,0x47,0x52, +0x41,0x44,0x45,0x20,0x66,0xcc,0x99,0x33,0x46,0x4c,0x41,0x47,0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0xe8,0x0, 0x67,0x1a,0xac,0x7e,0xa7,0x8e,0x37,0xce,0xe2,0x0, 0xc7,0x81,0x27,0xfc, +0xa6,0x8e,0xe7,0x7f,0x17,0xff,0x3f,0xdd,0xbf,0x8e,0x14,0x1, 0x38,0x82,0x8, 0xb2, +0xe8,0x0, 0x67,0x1a,0x17,0xfb,0xa6,0x8e,0x39,0x68,0x3f,0xdd,0xbf,0x8e,0x14,0xb, +0xdf,0xe8,0xe4,0xf, 0x31,0x40,0x3c,0x6f,0xe2,0x1, 0xc4,0x7f,0xdf,0xe2,0xe0,0xf, +0x31,0x48,0x3c,0x6f,0xe2,0x1, 0xc4,0x7f,0xdf,0xdc,0x3c,0x62,0xe2,0x1, 0xc4,0x7f, +0xdf,0xd8,0x14,0x0, 0x9, 0x21,0x0, 0xd5,0x8, 0xb3,0xc0,0x7c,0x39,0x6a,0x39,0xe9, +0xdf,0xdf,0x16,0x8, 0xe8,0x0, 0x67,0x9a,0xe0,0xa, 0x31,0x42,0x3e,0x10,0x15,0x80, +0xe7,0x7f,0x14,0xff,0xc5,0x7f,0xe3,0xff,0xcd,0x7f,0x1, 0x15,0xe2,0x0, 0x7f,0x4, +0xad,0xff,0xa6,0x8f,0xe2,0x80,0xc6,0x80,0x26,0xfd,0xa6,0x8f,0x3e,0xd9,0xbe,0x8f, +0x8e,0xff,0xe1,0x80,0xae,0x9e,0x3f,0x7c,0x1, 0xf4,0x67,0x1, 0xc1,0x84,0xe0,0x40, +0xbf,0x13,0x0, 0xe9,0xa7,0xf, 0x14,0x1, 0xcf,0x4, 0xbf,0xf, 0xc0,0x4, 0x9, 0xe1, +0xe8,0x0, 0x66,0xa0,0xe2,0x0, 0xcd,0x1, 0xa7,0x9d,0xe0,0x40,0xcf,0x80,0xbf,0x9d, +0xe8,0x0, 0x67,0x9b,0x1, 0x83,0x17,0x2, 0x0, 0x82,0x17,0x0, 0xe0,0x9, 0xb7,0x5f, +0x17,0x21,0xb4,0x5f,0x35,0x28,0xe0,0x1, 0xb4,0xdf,0xe0,0x1, 0xcd,0x11,0xb7,0x3f, +0x17,0x18,0xe0,0x2, 0xb7,0x5f,0xb5,0x1f,0xe0,0x7, 0x97,0x1f,0xe2,0x0, 0xcf,0x0, +0x9f,0x1f,0x4, 0xc, 0xe2,0x0, 0xc7,0x8, 0xe4,0xe, 0x37,0x20,0xe4,0xe, 0x37,0x40, +0x27,0x74,0x9f,0x1f,0xcf,0x4, 0xb7,0x1f,0x0, 0xf0,0xe0,0x80,0xcf,0x0, 0xb7,0x1f, +0x17,0x0, 0xb7,0x1f,0xe0,0x5, 0x9c,0x5f,0xa7,0x1d,0xe7,0xbf,0x17,0xff,0x3f,0xde, +0xbf,0x9d,0x38,0x82,0xe8,0x0, 0x67,0x17,0xe0,0x1, 0xac,0x3e,0xa7,0x9e,0xe2,0x0, +0xc7,0x81,0x27,0xfd,0xe8,0x0, 0x66,0x9f,0xe0,0x2, 0x9f,0x9d,0xe2,0x0, 0xc7,0x82, +0xe4,0xf, 0x37,0xa0,0xe4,0xf, 0x37,0xc0,0x27,0xf8,0xa6,0x9e,0x17,0xfe,0x3f,0xdd, +0xbf,0x9e,0xe0,0x1, 0x8c,0x3e,0x38,0x82,0xe8,0x0, 0x67,0x9f,0xe0,0x6, 0x8f,0x7f, +0xe0,0x2, 0x9c,0x1f,0xe2,0x1, 0xcf,0x2b,0x1, 0x87,0x17,0x80,0xe2,0x0, 0xc4,0x4, +0xe0,0x28,0x3c,0xf, 0x38,0x82,0xe3,0x0, 0xc4,0x0, 0xe4,0x8, 0x34,0x20,0xe4,0x8, +0x34,0x40,0x38,0x82,0x0, 0x80,0x0, 0x80,0xe, 0x3f,0xe8,0x0, 0x4f,0xd9,0xe0,0x1, +0x2f,0x88,0xe8,0x0, 0x66,0x97,0xa7,0xbd,0xe2,0x0, 0xc7,0x81,0xe0,0x1, 0x2f,0x81, +0xa7,0x9d,0xe2,0x0, 0xc7,0x81,0xe0,0x0, 0x27,0xfc,0xa7,0x1d,0x17,0xfe,0x3f,0xde, +0xbf,0x9d,0xe8,0x2, 0x4f,0xc4,0xe0,0x1, 0x8e,0x3d,0x2f,0x85,0xe8,0x2, 0x6e,0x43, +0xe8,0x2, 0x6f,0xc2,0xe8,0x2, 0x4f,0x43,0xe2,0x1, 0xcf,0x2, 0x1, 0x19,0x2, 0x86, +0xe2,0x0, 0xcf,0x5, 0x1, 0xa, 0xe0,0x0, 0x0, 0xc7,0xe2,0x1, 0xcf,0x14,0x1, 0x21, +0xe2,0x1, 0xcf,0x21,0x1, 0x2e,0x0, 0xbf,0x2f,0x87,0xe8,0x2, 0x46,0x2a,0x17,0x2, +0xe0,0x1, 0xae,0x3d,0x0, 0xa8,0xe2,0x0, 0xcf,0x81,0x1, 0xba,0x0, 0xa0,0x2f,0x88, +0x17,0x1, 0xe8,0x2, 0x6f,0x40,0xe8,0x2, 0x6f,0x41,0x17,0x1, 0x0, 0xb2,0xe2,0x0, +0xcf,0x81,0x1, 0xae,0xe0,0x0, 0x1f,0x4, 0xe8,0x2, 0x6f,0xc2,0xae,0xe, 0x0, 0xa8, +0x2f,0x86,0xe8,0x2, 0x47,0x28,0xe0,0x1, 0xaf,0x3d,0x0, 0x8c,0xe2,0x0, 0xcf,0x82, +0x1, 0x9f,0xe0,0x0, 0x1f,0x4, 0xe0,0x1, 0x86,0x3d,0xae,0xe, 0x17,0x1, 0x0, 0x96, +0x2f,0x86,0x17,0x3, 0xe8,0x2, 0x6f,0x41,0x3f,0x6f,0x0, 0x93,0xe0,0x0, 0x1f,0x4, +0xe0,0x1, 0x86,0x3d,0x3f,0x1f,0xae,0xe, 0xe8,0x2, 0x4f,0x41,0x3f,0x7f,0x5, 0xef, +0x17,0x0, 0x0, 0x8b,0x17,0x1, 0xe8,0x2, 0x6f,0x41,0xe8,0x2, 0x6f,0x42,0x17,0x0, +0xe8,0x2, 0x4e,0x41,0x3e,0x7f,0x5, 0x84,0xc7,0x81,0xe8,0x2, 0x6f,0xc4,0xe8,0x2, +0x4f,0xc2,0x27,0x89,0x17,0x80,0xe8,0x2, 0x6f,0xc4,0xe8,0x2, 0x6f,0xc3,0x17,0x81, +0xe8,0x2, 0x6f,0xc9,0x2f,0x5, 0xa7,0x8d,0xe0,0x10,0xcf,0x80,0xbf,0x8d,0xe0,0x0, +0x17,0xc0,0xe0,0x61,0x3f,0x91,0xf, 0xac,0x38,0x0, 0x8, 0xb2,0x99,0xa, 0x9f,0x9a, +0xe1,0xff,0x17,0x7f,0x3f,0x92,0x3f,0xfe,0x1, 0x8c,0x34,0xc1,0x34,0x41,0x15,0x1, +0xe3,0xff,0xc4,0xff,0xe3,0xff,0xc4,0x7f,0xde,0xf4,0xe0,0x28,0x39,0x8, 0x0, 0x82, +0x14,0x0, 0x9, 0x61,0x8, 0xb2,0xe0,0x2, 0x11,0x0, 0xe0,0x2, 0x15,0x4, 0x3c,0xe2, +0x14,0x0, 0xdf,0xe4,0x24,0x26,0xe0,0x2, 0x17,0x92,0x9c,0x8f,0xe0,0x2, 0x17,0x94, +0x9f,0xf, 0xe1,0xff,0x16,0x7f,0x3f,0x19,0xe0,0x2, 0x16,0x82,0x3f,0x7c,0x9f,0x82, +0x9e,0x8d,0x1, 0x97,0x3e,0x9f,0x3e,0xfe,0x1, 0x94,0xe4,0x9, 0x34,0xa0,0x3c,0xcf, +0xe2,0xf0,0x17,0x80,0x3c,0xff,0x2, 0x8d,0x17,0x83,0x3f,0xd9,0x2f,0x8a,0xe0,0x2, +0x15,0x8, 0xe1,0xfc,0xc4,0xe0,0xe0,0x3, 0x14,0x20,0x9, 0x21,0xe7,0xff,0x0, 0xbf, +0x14,0x0, 0x9, 0x61,0x8, 0xb2,0x11,0x3, 0xe8,0x0, 0x65,0x4d,0x14,0x80,0xe0,0xa0, +0x14,0x0, 0xde,0x8b,0xdf,0xc8,0x2c,0x7, 0xc1,0x7f,0xe2,0x1, 0xc1,0x7f,0x29,0x75, +0x3c,0x62,0x0, 0x82,0x14,0x1, 0x9, 0x61,0x8, 0xb5,0xe8,0x0, 0x4f,0xd9,0x3a,0x68, +0xe2,0x0, 0xcf,0x81,0xe2,0x1, 0xc2,0x7f,0xe0,0x2, 0x34,0x48,0x1, 0x96,0xe8,0x0, +0x61,0x9f,0x12,0xfe,0xe0,0x2, 0x9f,0x93,0xe0,0x1, 0x14,0x2, 0x3f,0xd5,0xe0,0x2, +0xb7,0x93,0xde,0xd1,0x3c,0x62,0xde,0xcf,0xe0,0x2, 0x9f,0x93,0x3a,0x78,0xcf,0x81, +0xe0,0x2, 0xb7,0x93,0x1, 0xf0,0x0, 0xa9,0x2f,0xa8,0xe8,0x0, 0x67,0x1f,0xe8,0x2, +0x6f,0xc9,0xe0,0x2, 0x9e,0x9e,0xe0,0x0, 0x1e,0x4, 0xe1,0x0, 0xce,0x80,0xe0,0x2, +0xb6,0x9e,0xe0,0x2, 0x9e,0x9e,0xe3,0xff,0xc6,0xfb,0xe0,0x2, 0xb6,0x9e,0xe8,0x0, +0x67,0x17,0xe8,0x2, 0x4e,0xc0,0x26,0xfe,0xe8,0x2, 0x6f,0xc0,0xe0,0x1, 0xaa,0x3e, +0xa6,0x8e,0xe0,0x10,0xce,0x80,0xbe,0x8e,0xe8,0x2, 0x4e,0xc9,0x26,0xfe,0xe8,0x2, +0x6f,0xc9,0x8e,0x8c,0x39,0x7d,0x1, 0xee,0xa, 0xe1,0x8, 0xb7,0xf8,0x0, 0xc, 0x3e, +0xe8,0x0, 0x61,0x17,0xe8,0x0, 0x61,0x9f,0x13,0x3, 0x12,0x82,0xf0,0x0, 0x14,0x0, +0x13,0xfc,0xf0,0x1e,0x14,0x80,0xf0,0x0, 0x15,0x17,0xf7,0x0, 0x15,0x80,0xf7,0xef, +0x16,0x7f,0xf0,0xe, 0x16,0xc1,0xe8,0x0, 0x4f,0xd9,0xe2,0x0, 0xcf,0x81,0xe0,0x0, +0x1, 0xce,0xde,0x9b,0x2c,0x7f,0xe8,0x0, 0x67,0xcd,0xe8,0x0, 0x62,0x4d,0xe2,0x20, +0xcf,0x80,0x5, 0x83,0x32,0x43,0x3a,0x57,0x3d,0x64,0x14,0x80,0xe0,0xa0,0x14,0x0, +0xde,0xc, 0xf8,0x0, 0x67,0x17,0xe0,0xa0,0x14,0x0, 0xe8,0x0, 0xa7,0xee,0x3c,0xe4, +0x3f,0xd7,0xcf,0x81,0xe8,0x0, 0xbf,0xee,0x3c,0x14,0xf8,0x1, 0xb4,0x1e,0xe8,0x0, +0x67,0xcd,0x37,0xc2,0xe8,0x1, 0xb7,0xbe,0x17,0x9f,0xf8,0x0, 0xbe,0x8e,0xe8,0x0, +0xbf,0xbe,0xe8,0x0, 0x65,0x4d,0x3d,0x24,0xdd,0xf0,0xe8,0x0, 0xa7,0x9e,0x37,0xca, +0xe2,0x0, 0xc7,0x81,0x27,0xfb,0xdf,0x27,0xe2,0x0, 0xcc,0x0, 0x17,0x80,0xe0,0x6f, +0x39,0xa5,0x3a,0xef,0xde,0x62,0x24,0x7f,0xe8,0x0, 0x67,0x9f,0xe0,0x2, 0x9f,0x9f, +0xe2,0x0, 0xc7,0x82,0xe4,0xf, 0x37,0xa0,0xe4,0xf, 0x37,0xc0,0xe2,0x0, 0xcf,0x80, +0x17,0x81,0xe0,0x6f,0x39,0x25,0x3a,0xef,0x0, 0xb7,0xe8,0x0, 0x67,0xcd,0x37,0xc2, +0xe0,0x1, 0xb7,0xb2,0xf0,0x1, 0xb4,0x12,0xa7,0xe2,0x3f,0xd7,0xcf,0x81,0xbf,0xe2, +0xf0,0x0, 0xbc,0x82,0xf0,0x0, 0xbd,0x32,0xe0,0x2, 0x9f,0x93,0xe2,0xff,0xc7,0xff, +0xe0,0x2, 0xb7,0x93,0xe0,0x2, 0x9f,0x93,0xcf,0x84,0xe0,0x2, 0xb7,0x93,0xa7,0x92, +0x37,0xca,0xe2,0x0, 0xc7,0x81,0x27,0xfc,0xde,0xee,0xa7,0x82,0x24,0x6, 0xe0,0x10, +0xcf,0x80,0xbf,0x82,0x12,0x81,0x0, 0x84,0xe8,0xf, 0x3f,0xdc,0xbf,0x82,0xe0,0x2, +0x9f,0x93,0xe8,0xf, 0x3f,0xcb,0xe0,0x2, 0xb7,0x93,0xe0,0x2, 0x9f,0x93,0xe3,0xff, +0xc7,0xfb,0xe0,0x2, 0xb7,0x93,0xc3,0x7f,0xe2,0x1, 0xc3,0x7f,0x23,0x5, 0xe2,0x0, +0xca,0x81,0xe7,0xfe,0x1, 0xf2,0x3c,0x65,0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0x8, 0xb2, +0xe8,0x0, 0x4c,0x59,0x24,0x5, 0xef,0xf4,0xdb,0xf0,0xe0,0x0, 0x24,0x4c,0xe8,0x0, +0x4f,0xd9,0xe2,0x0, 0xcf,0x83,0x1, 0x84,0x9, 0x21,0xe7,0xfd,0x0, 0xed,0xe2,0x0, +0xcf,0x81,0x1, 0xa9,0xe1,0x76,0x14,0x55,0xde,0xf8,0xe8,0x0, 0x61,0x1f,0xe0,0x1, +0x14,0x21,0xe0,0x2, 0x9f,0x92,0xe3,0xff,0xc7,0xfe,0xe0,0x2, 0xb7,0x92,0xdd,0xd3, +0xe8,0x0, 0x67,0xcd,0xe4,0xf, 0x37,0xc0,0x3c,0x6f,0xe2,0x1, 0xc4,0x7f,0xdd,0xcb, +0xe8,0x0, 0x67,0xcd,0x37,0xc8,0x3c,0x6f,0xe2,0x1, 0xc4,0x7f,0xdd,0xc4,0xe8,0x0, +0x64,0x4d,0xe2,0x1, 0xc4,0x7f,0xdd,0xbf,0xe0,0x2, 0x9f,0x92,0xcf,0x81,0xe0,0x2, +0xb7,0x92,0x0, 0x95,0x2f,0x97,0xe1,0x76,0x14,0x55,0xde,0xcf,0xe8,0x2, 0x4f,0xc9, +0x27,0xfe,0x17,0x80,0xe0,0x0, 0x1f,0x4, 0xe8,0x2, 0x6f,0xc9,0xaf,0x8e,0x9f,0x8e, +0x9f,0x1e,0xe4,0xf, 0x37,0xa0,0x3f,0xce,0xe8,0x0, 0x7f,0xcd,0x9, 0x21,0xe7,0xfe, +0x0, 0x86,0x9, 0x61,0xe0,0x0, 0x1f,0x29,0xe2,0xff,0x17,0xf0,0xbf,0xf, 0xe2,0xff, +0x17,0xf4,0xe0,0x0, 0x1f,0x2a,0xbf,0xf, 0xe2,0xff,0x17,0xf8,0xe0,0x0, 0x1f,0x2b, +0xbf,0xf, 0xe2,0xff,0x17,0xfc,0xe0,0x0, 0x1f,0x2c,0xbf,0xf, 0x38,0x82,0x8, 0xb1, +0xdf,0x97,0xe8,0x0, 0x4f,0xd9,0x27,0x93,0xe2,0x0, 0xcc,0x1, 0x1, 0xa, 0x17,0x80, +0xe0,0x2, 0x17,0x4, 0xbf,0x8e,0xe0,0x2, 0x17,0x8, 0xbf,0x8e,0x2c,0x2, 0xdf,0xdb, +0x3f,0x83,0xe8,0x0, 0x67,0x9f,0x17,0x7f,0xe0,0x7, 0xaf,0x3f,0x0, 0x80,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x0, 0x0, 0x0, 0x60,0x0, 0x0, 0x7b,0xf4,0x0, 0x0, 0x7b,0xf4,0x0, 0x0, 0x7b,0xf4, +0x0, 0x0, 0x7b,0xf4,0x0, 0x0, 0x7b,0xf4,0x0, 0x0, 0x7b,0xf4,0x0, 0x0, 0x7b,0xf4, +0x0, 0x0, 0x7b,0xf4,0x0, 0x0, 0x7b,0xf4,0x0, 0x0, 0x7b,0xf4,0x0, 0x0, 0x7b,0xf4, +0x0, 0x0, 0x7b,0xf4,0x0, 0x0, 0x7b,0xf4,0x0, 0x0, 0x7b,0xf4,0x0, 0x0, 0x7b,0xf4, +0x0, 0x0, 0x7b,0xf4,0x0, 0x0, 0x7b,0xf4,0x0, 0x0, 0x7b,0xf4,0x0, 0x0, 0x7b,0xf4, +0x0, 0x0, 0x7b,0xf4,0x0, 0x0, 0x7b,0xf4,0x0, 0x0, 0x7b,0xf4,0x0, 0x0, 0x7b,0xf4, +0xe0,0x60,0x3c,0x0, 0xcc,0x2, 0xe0,0x60,0x3c,0x10,0xea,0x0, 0xc8,0x3, 0xe0,0xff, +0xc8,0x7c,0xfa,0x0, 0xcf,0x82,0xf0,0x37,0xcf,0x88,0xea,0x0, 0xcc,0x0, 0xe0,0x0, +0xcc,0x0, 0xe0,0x60,0x3c,0x17,0xea,0x0, 0xcc,0x2, 0xe0,0x0, 0xcc,0x0, 0xea,0x0, +0xcc,0x81,0xe0,0x88,0xcc,0xa4,0x3c,0x79,0x1, 0x8, 0xea,0x0, 0xcd,0x2, 0xe0,0x46, +0xcd,0x28,0x3d,0x28,0xe0,0x9, 0xdf,0x36,0xea,0x0, 0xcc,0x0, 0xe0,0xf7,0xcc,0x44, +0x3c,0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x67,0x4c,0x98,0xb3,0xec,0x7c,0x13,0x83,0xa9,0x3a,0x56,0xc5,0xda,0x25,0x14,0xeb, +0x0, 0x0, 0x0, 0x1, 0xff,0xfe,0x0, 0x0, 0x0, 0x0, 0xc8,0x37,0x0, 0x0, 0x80,0xa6, +0x72,0x8d,0x0, 0xff,0xda,0x25,0x4, 0xa7,0x24,0x87,0x55,0x56,0x72,0x8d,0x1, 0xfe, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc8,0x37, +0x34,0x34,0x33,0x35,0x33,0x31,0x30,0x32,0x44,0x31,0x30,0x30,0x33,0x31,0x30,0x30, +0x0, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x30,0x30,0x31,0x0, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x8, 0xb5,0xc0,0x68,0xe0,0x3, 0x1f,0x84,0x15,0x80,0x95,0x3f,0xe0,0x2, 0x1f,0xfd, +0x3e,0x6a,0xe3,0xff,0xc6,0x7f,0xf0,0x0, 0x8b,0x4f,0xf0,0x0, 0x8b,0xdf,0xe0,0x2, +0x1f,0xfc,0xe4,0x3, 0x36,0x22,0x7d,0x81,0xe4,0x3, 0x31,0xc0,0x7d,0x82,0x7d,0x83, +0x7d,0x84,0x7d,0x85,0x7d,0x86,0x99,0xf, 0x24,0x39,0xe2,0x0, 0xcc,0x1, 0x1, 0x3, +0xc0,0x18,0xa, 0xe1,0xf0,0x0, 0x23,0x74,0x14,0xff,0xe0,0x2, 0x1f,0x81,0xe8,0x9, +0x3c,0x97,0xa4,0xf, 0xe2,0x1, 0xc4,0xff,0x34,0xa1,0xf0,0x4, 0x33,0xa1,0x3d,0x68, +0xe0,0x0, 0xc4,0x82,0xf0,0x0, 0x23,0x8b,0xe0,0xd, 0x3c,0x9a,0x3f,0xea,0x97,0xf, +0x3f,0x1c,0xe1,0x80,0xb7,0x1f,0x3e,0xff,0x1, 0xfb,0xc5,0x81,0xe2,0x1, 0xc5,0xff, +0xf0,0x40,0x3b,0x7b,0x3d,0x14,0x1, 0xef,0x16,0x8c,0x3e,0x92,0xe3,0xff,0xc6,0xff, +0xe0,0xf, 0x31,0x21,0x3f,0x98,0x97,0xf, 0xc1,0x1, 0xe3,0xff,0xc1,0x7f,0x3f,0x13, +0x39,0x7d,0xb7,0xf, 0x1, 0xf6,0xc0,0x18,0xa, 0xe1,0xe0,0x2, 0x1a,0x81,0xe0,0x2, +0x1f,0x0, 0xa7,0x85,0xe2,0x1, 0xc5,0x7f,0xe9,0xff,0xc7,0xfe,0x37,0xc1,0x3c,0xea, +0x37,0x41,0xe2,0x0, 0x7c,0x4, 0xf0,0x0, 0x6b,0x85,0xe0,0x43,0x3a,0x13,0xf0,0x0, +0x6b,0x4, 0x7f,0x3, 0x7f,0x84,0x7f,0x85,0xe0,0x9, 0xda,0xa4,0x15,0x8c,0x3d,0x92, +0xa6,0x5, 0xe0,0x1, 0x1d,0x7f,0xe3,0xff,0xc5,0xff,0xe0,0x41,0x3c,0xc4,0x0, 0x8a, +0x97,0xf, 0x3f,0x13,0xb7,0xf, 0xc1,0x1, 0xe3,0xff,0xc1,0x7f,0x39,0x7b,0xe7,0xff, +0x1, 0x21,0xe0,0x6, 0x17,0xa8,0x3f,0x92,0x37,0xa1,0x3f,0x9a,0x96,0x9f,0xe0,0xe, +0x31,0x21,0x3a,0x7d,0x3f,0xee,0x3f,0x9c,0x4, 0x6c,0x3e,0xf9,0xe0,0xf, 0x31,0x21, +0x3f,0x9c,0x3, 0x6a,0x97,0xf, 0x3f,0x23,0xb7,0xf, 0x0, 0xe6,0xe0,0x2, 0x1f,0x81, +0xa4,0xf, 0xe7,0xff,0x0, 0xab,0x0, 0x0, 0x8, 0xb7,0xf8,0x0, 0xc, 0x3a,0xe0,0x2, +0x1f,0xe6,0xe0,0x2, 0x1e,0xfd,0x87,0xf, 0x39,0xeb,0xe0,0x3, 0x8e,0x2d,0x15,0x8e, +0x3d,0xb3,0xe0,0x3, 0x1f,0xac,0xe2,0x0, 0xc7,0x1, 0x3e,0x7e,0x3f,0x9b,0x3a,0x68, +0x3a,0xe9,0x3b,0x6a,0x8b,0x9f,0xf0,0x0, 0x8d,0x3f,0xe0,0x1, 0x1, 0x3b,0x99,0x5d, +0x3c,0x63,0xe0,0x3, 0xdc,0x72,0xf0,0x40,0x3c,0x68,0xe0,0x2, 0xd9,0xf4,0xe0,0xc, +0x15,0x52,0x14,0x80,0x3c,0x64,0xe0,0x9, 0xde,0x2f,0xf0,0x1, 0x2c,0x23,0xe8,0x7, +0x3b,0xca,0xe0,0x0, 0x2b,0xec,0xe0,0x3, 0x1f,0xb8,0xe0,0x2, 0x1e,0x92,0xa7,0x8f, +0xe7,0xff,0x16,0x3f,0xa7,0x4f,0x97,0x8d,0x37,0x44,0xe2,0x0, 0xc7,0x40,0x3f,0xdc, +0x3f,0xce,0xb7,0x8d,0xc1,0x5, 0xf0,0x0, 0x14,0x80,0x3c,0xe3,0xe8,0x40,0x3c,0x69, +0xe0,0x2, 0xda,0x7b,0x24,0x7b,0xe0,0x1, 0x1d,0xfe,0x17,0x80,0xe0,0xe, 0x37,0xa1, +0xe0,0xd, 0x3a,0x1e,0x3f,0x1b,0x9f,0xe, 0x96,0xd, 0xc7,0x81,0xe3,0xff,0xc7,0xff, +0x3f,0x1c,0x3f,0xf2,0xb7,0xd, 0x5, 0x73,0x14,0x1, 0xe0,0x2, 0xda,0xd, 0xf0,0x0, +0x24,0x27,0xe0,0x1, 0x1d,0xfd,0x17,0x80,0xe0,0xe, 0x37,0xa1,0xe0,0xd, 0x3a,0x9e, +0x3f,0x1b,0x9f,0xe, 0x96,0xd, 0xc7,0x81,0xe3,0xff,0xc7,0xff,0x3f,0x1c,0x3f,0xf2, +0xb7,0xd, 0x5, 0x73,0xe0,0x3, 0x19,0x30,0xe4,0x0, 0xc1,0x85,0x3c,0x64,0xe0,0xf, +0x39,0x13,0x8c,0xcf,0xe0,0x2, 0xdb,0x3c,0x2b,0x95,0x39,0x13,0x8c,0xc2,0x3c,0x65, +0xe0,0x2, 0xdb,0x36,0x14,0x1, 0xf8,0x0, 0xd, 0x28,0xb, 0xe1,0xe0,0x3, 0x19,0x30, +0xe4,0x0, 0xc1,0x85,0x3c,0x64,0xe0,0xf, 0x39,0x13,0x8c,0xcf,0xe0,0x2, 0xdb,0x28, +0x23,0xf2,0xe0,0xf, 0x39,0x13,0x8c,0xcf,0x3c,0x66,0xe0,0x2, 0xdb,0x21,0xf7,0xff, +0x2c,0x66,0x14,0x1, 0xf8,0x0, 0xd, 0x28,0xb, 0xe1,0xe0,0xc, 0x15,0x52,0x14,0x80, +0x3c,0x66,0xe0,0x9, 0xdd,0xb9,0xe0,0x3, 0x1f,0xb8,0xe0,0x2, 0x1e,0x92,0xa7,0x8f, +0xe7,0xff,0x16,0x3f,0xa7,0x4f,0x97,0x8d,0x37,0x44,0xe2,0x0, 0xc7,0x40,0x3f,0xdc, +0x3f,0xce,0xb7,0x8d,0xf0,0x0, 0x14,0x84,0xf7,0xff,0x25,0xe, 0x3c,0xe3,0xe8,0x40, +0x3c,0x69,0xe0,0x2, 0xda,0xa, 0x24,0x7b,0xe0,0x1, 0x1d,0xfc,0xc1,0x5, 0x17,0x80, +0xe0,0xe, 0x37,0xa1,0xe0,0xd, 0x3b,0x1e,0x3f,0x1b,0x9f,0xe, 0x96,0xd, 0xc7,0x81, +0xe3,0xff,0xc7,0xff,0x3f,0x1c,0x3f,0xf2,0xb7,0xd, 0x5, 0x73,0xe7,0xfe,0x0, 0xf5, +0xe0,0xc, 0x15,0x52,0x14,0x80,0x3c,0x65,0xe0,0x9, 0xdd,0x86,0xe7,0xfe,0x0, 0xd9, +0x99,0x6d,0xe7,0xfe,0x0, 0xc7,0xe0,0x2, 0x1f,0x81,0xe0,0x1, 0x1d,0x7b,0xa4,0x8f, +0x3c,0x69,0xe0,0x8e,0x0, 0x9c,0xe0,0x0, 0x1f,0x8e,0xf0,0x40,0x3a,0x68,0xf0,0x0, +0x88,0x8f,0xe0,0x1, 0x14,0x7f,0xf0,0x0, 0x20,0xe5,0xf0,0x0, 0x1b,0xd, 0xf0,0x40, +0x3a,0xe8,0x17,0x0, 0xf0,0x0, 0x11,0x1, 0xf0,0x0, 0x11,0x82,0xf0,0x0, 0x10,0x3, +0x0, 0x9e,0xf1,0x2c,0x39,0xad,0xe0,0x0, 0x26,0x43,0xf0,0x0, 0x12,0x82,0xe8,0x40, +0x3e,0xe5,0x3f,0xe8,0xe2,0x1, 0xc6,0xff,0xe2,0x1, 0xc7,0xff,0x3e,0xff,0xe8,0x40, +0x3e,0x65,0x5, 0x82,0x3e,0x68,0x3c,0x6c,0xe2,0x1, 0xc4,0x7f,0xc7,0x1, 0xe2,0x1, +0xc7,0x7f,0xe8,0x40,0x3f,0x71,0xf0,0x0, 0xc3,0x2, 0x1, 0x38,0x3d,0x7e,0x1, 0x77, +0xe8,0x0, 0x8e,0x86,0xe8,0x0, 0x8e,0x16,0xf0,0xf, 0x3a,0x2d,0xe2,0x0, 0xcf,0x80, +0xe8,0x17,0x3e,0xa4,0xf2,0x1, 0xc3,0xff,0xe0,0xd, 0x3c,0xac,0xe2,0x1, 0xc7,0xff, +0xe8,0x6f,0x3d,0x27,0x3e,0x29,0xe2,0x0, 0xce,0x80,0xe2,0x1, 0xc6,0x7f,0xe2,0x1, +0xc6,0xff,0xf1,0x37,0x39,0x2f,0xe0,0x6d,0x3d,0x2c,0xf0,0x0, 0x23,0x85,0xf1,0x2c, +0x39,0x2d,0x2e,0x15,0xf1,0x2c,0x39,0xaf,0xe7,0xff,0x2e,0x3d,0x25,0xc1,0xf1,0x2f, +0x38,0x2f,0xe7,0xff,0x27,0xbe,0xf0,0x40,0x38,0x7d,0xe8,0x40,0x3f,0xe0,0xe8,0x6f, +0x3c,0xa5,0xf0,0x40,0x3a,0xef,0xe7,0xff,0x0, 0xb4,0x38,0x82,0x14,0x1, 0x38,0x82, +0x38,0x82,0x0, 0x0, 0x8, 0xb7,0xf8,0x0, 0xc, 0x3e,0xe1,0xff,0xc0,0x30,0xf0,0x40, +0x3e,0x6a,0xe0,0xf, 0x35,0x21,0xe0,0x0, 0x1d,0xd, 0xe4,0x0, 0xc5,0x8a,0x3e,0xea, +0x3e,0x9b,0x3f,0x9a,0x16,0x0, 0xe0,0x2, 0x1f,0x7d,0xe0,0x10,0xae,0x1d,0xf0,0x40, +0x3c,0xe8,0xe0,0x10,0xae,0x2d,0xe8,0x40,0x3c,0x6c,0x8e,0xf, 0x8f,0x9f,0x89,0x4e, +0x89,0xde,0x7d,0x90,0xf0,0x40,0x3f,0x69,0x7e,0xa, 0x7f,0x88,0xe0,0x6, 0xd6,0xc4, +0x14,0x83,0xe0,0x9, 0xdc,0x45,0xe0,0x1, 0x1e,0xd7,0xe0,0x43,0x3c,0x18,0xe0,0x1, +0x93,0xcd,0x67,0xa, 0x3b,0xf8,0xe0,0x67,0x3c,0x28,0xe8,0x40,0x3f,0x79,0xe0,0x3, +0x3, 0xa9,0x67,0x8a,0x17,0x1, 0xe8,0xe, 0x3f,0x19,0x3f,0x1f,0x17,0x80,0xe2,0x1, +0xc7,0x7f,0x3b,0x6f,0x66,0x88,0xe8,0x40,0x3e,0xfe,0xe0,0x3, 0x3, 0x87,0x66,0x88, +0x11,0x1, 0xe8,0x2, 0x39,0x1e,0x39,0x1d,0x16,0x80,0xe2,0x1, 0xc1,0x7f,0x7e,0x89, +0x3f,0x9d,0xe0,0x1, 0x1e,0xfa,0x37,0xa1,0x3f,0x9d,0xe0,0x1, 0x1e,0xd7,0x37,0xc1, +0x65,0x89,0x86,0x1d,0x7f,0x93,0xe0,0xa, 0x3f,0x16,0x67,0x89,0xe0,0x1, 0x1e,0xf9, +0x3d,0x92,0x36,0xc1,0xe2,0x1, 0xc5,0x7f,0xe2,0x1, 0xc5,0xff,0xe0,0x0, 0x6f,0xc4, +0xe2,0x0, 0x7c,0x44,0x17,0x80,0x7e,0x94,0xe0,0x0, 0x6f,0x47,0xe0,0x0, 0x6e,0x48, +0xe0,0x0, 0x6f,0xc9,0x7d,0xb, 0x7d,0x8c,0xe0,0x0, 0x6b,0x45,0xe0,0x0, 0x69,0x46, +0xe0,0x9, 0xd7,0x43,0xe0,0x1, 0x1f,0xf8,0x66,0xb, 0xf0,0x0, 0x9c,0xf, 0xe0,0x1, +0x1f,0xf7,0x3e,0x76,0xf0,0x0, 0x9d,0x8f,0xe0,0x1, 0x1f,0xf6,0xf4,0x18,0x34,0x20, +0xf0,0x0, 0x9d,0xf, 0xe0,0x1, 0x1f,0xf5,0xf4,0x1b,0x35,0xa0,0x9e,0x8f,0xe0,0x1, +0x1f,0xf4,0xf4,0x1a,0x35,0x20,0x9f,0xf, 0xe0,0x1, 0x1f,0xf3,0xf0,0x18,0x3c,0x1d, +0x9f,0x8f,0xf0,0x1b,0x3d,0x9e,0xf0,0x1a,0x3d,0x1f,0x16,0x80,0xe0,0x1, 0x5, 0xcc, +0xe0,0xe, 0x39,0xb6,0x66,0x89,0xe0,0x1, 0x1d,0x57,0xe0,0x2c,0xc7,0x1f,0x3f,0x1d, +0x37,0x21,0x8a,0x9a,0xe0,0x1, 0x1d,0x7f,0xc7,0x7e,0x3f,0x1a,0x67,0x8a,0xc1,0x7f, +0xe2,0x1, 0xc1,0x7f,0x7f,0x6, 0x16,0x2, 0x67,0x9, 0x65,0x8, 0xe0,0xb, 0x3b,0x2f, +0x31,0xa1,0xe0,0xf, 0x31,0x21,0x3f,0x9c,0xf1,0x39,0x3c,0x9c,0x79,0x8d,0xe3,0xff, +0xc5,0xff,0xe4,0x3, 0x33,0x28,0x3f,0x2a,0xf1,0x2c,0x3f,0x1c,0x16,0x80,0x7d,0x87, +0x3a,0x63,0x7f,0xe, 0x7f,0x8f,0xf0,0x0, 0x7c,0x82,0x7e,0x5, 0xe4,0x4, 0x32,0x48, +0x66,0xc, 0x67,0x9, 0x3e,0x7e,0xe0,0x1, 0x5, 0x85,0x67,0x86,0x61,0xf, 0xf0,0x40, +0x3f,0x6f,0x39,0x1f,0x67,0x8a,0x67,0xe, 0xf0,0x0, 0x66,0x89,0xe0,0xf, 0x3b,0x2f, +0x66,0x7, 0xe3,0xff,0xc7,0x7f,0x7f,0x83,0xe8,0x40,0x3f,0xee,0xe0,0x43,0x39,0x9c, +0xf8,0x40,0x3f,0x6d,0xf0,0x40,0x3c,0xee,0x7b,0x4, 0xf0,0x40,0x3e,0xef,0x0, 0xbb, +0x67,0x3, 0xe2,0x0, 0xcf,0x1, 0xe0,0x0, 0x5, 0x52,0x66,0x2, 0xe0,0x0, 0x26,0x5e, +0x67,0x5, 0x15,0x81,0xe0,0x0, 0x27,0x5a,0xe8,0x40,0x3d,0x6c,0x3c,0x64,0x7e,0x81, +0xde,0x93,0x15,0x7e,0x3d,0x18,0xe2,0x1, 0xc5,0x7f,0xe0,0xb, 0x33,0x1, 0xe2,0x0, +0xcd,0x1, 0xc4,0x7f,0xe0,0x43,0x3d,0x9b,0xe2,0x1, 0xc4,0x7f,0xe0,0x66,0x3d,0xab, +0xe2,0x0, 0xcc,0x2, 0x66,0x81,0x2, 0x8b,0x65,0x4, 0xe8,0xb, 0x3b,0x3e,0x3d,0x36, +0xf0,0x1a,0x3d,0x2b,0xf0,0x1b,0x3d,0xaa,0xf0,0x18,0x3c,0x26,0x17,0x1, 0xe8,0xe, +0x3f,0x19,0xf0,0x40,0x3e,0xf2,0xf0,0x40,0x3c,0xee,0xf3,0xff,0xc4,0xff,0xf0,0x0, +0xc7,0x1, 0x1, 0x2e,0xe8,0x80,0x97,0x9d,0xe8,0x40,0x3c,0xee,0x3f,0xa5,0xe0,0x43, +0x3b,0x1f,0xe2,0x0, 0xcb,0x0, 0xe2,0x1, 0xc4,0xff,0x5, 0x69,0x15,0x81,0x3d,0x9d, +0x3b,0xf6,0xe2,0x1, 0xc5,0xff,0xe0,0x6d,0x3d,0x2b,0xe2,0x0, 0xc9,0x80,0xe7,0xff, +0x2, 0x31,0xe3,0xff,0xc9,0xff,0xe7,0xff,0x4, 0x32,0xe8,0x43,0x3d,0x99,0xe2,0x0, +0xcd,0x80,0xe0,0x0, 0x5, 0x7d,0x67,0x88,0xf0,0xb, 0x3f,0x2f,0xe2,0x0, 0xcd,0x81, +0x5, 0x4e,0x66,0x2, 0xe7,0xff,0x2e,0x26,0x15,0x80,0xe7,0xff,0x0, 0xa7,0x63,0x4, +0x66,0x6, 0x65,0xd, 0x67,0x7, 0x3e,0x1a,0xc3,0x1, 0xe4,0x4, 0x33,0x28,0x7e,0x6, +0xc7,0x1, 0x66,0xb, 0xe4,0xf, 0x32,0x48,0xe3,0xff,0xc7,0x7f,0x3e,0x7f,0x7f,0x7, +0xe7,0xfe,0x2, 0xe6,0xf2,0x0, 0xcc,0x0, 0x11,0x81,0x3d,0x63,0xe8,0x6a,0x39,0xa8, +0x3c,0xea,0xf0,0x8, 0x35,0xa6,0xf0,0x40,0x3c,0x6a,0x7e,0x81,0xe0,0x9, 0xdb,0x3b, +0x66,0x10,0xe0,0x0, 0x19,0xd, 0xc4,0x20,0x39,0x1c,0xe0,0x7, 0xb4,0x62,0xe8,0x40, +0x3c,0xe8,0xf0,0x8, 0x35,0x26,0xe0,0x9, 0xdb,0x2e,0x17,0xa0,0x3f,0x98,0xe0,0x7, +0xb7,0xf2,0xe8,0x40,0x3c,0x6c,0xe0,0x6, 0xd5,0x5f,0xe2,0x0, 0xcc,0x0, 0x39,0x68, +0x66,0x81,0xe0,0x1, 0x5, 0x0, 0xe0,0x1, 0x1f,0x57,0xe0,0x43,0x39,0x12,0xe0,0x2, +0x8c,0xfe,0x2c,0x85,0x17,0x94,0xe0,0x2, 0xaf,0xfe,0x14,0x94,0xe8,0x40,0x3c,0x68, +0x7e,0x81,0xe0,0x9, 0xdb,0x10,0x3c,0x72,0x3c,0xe2,0xe0,0x62,0x3d,0xa8,0xe0,0x0, +0x14,0x7f,0x3c,0x32,0x66,0x10,0xe0,0x0, 0x19,0xd, 0x39,0x1c,0xe0,0x9, 0xdb,0x3, +0xe0,0x10,0xac,0x12,0x66,0x81,0x67,0xa, 0x67,0x88,0xe2,0x0, 0xce,0xad,0xe0,0x10, +0xae,0xa2,0xe0,0x10,0xaf,0x32,0xe0,0x10,0xaf,0xc2,0x5, 0x84,0x17,0xad,0xe0,0x10, +0xaf,0xa2,0xe0,0x0, 0xc0,0x50,0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0xe3,0xff,0xcd,0xff, +0xe7,0xfe,0x3, 0x56,0xe7,0xfe,0x0, 0xab,0x16,0xff,0x3e,0x93,0x66,0x8, 0xe8,0xd, +0x3e,0xae,0x3e,0x7d,0x2, 0x31,0x3e,0xec,0xf0,0x2, 0x37,0x21,0xe8,0xd, 0x3e,0xae, +0xc1,0x1, 0xe2,0x1, 0xc6,0xff,0x7e,0x89,0xe2,0x1, 0xc1,0x7f,0xe7,0xfc,0x0, 0xf2, +0x17,0xff,0x3f,0x92,0xe8,0xf, 0x3f,0xa9,0x3f,0x7f,0x2, 0xf, 0x63,0xa, 0xf0,0xe, +0x34,0xa1,0xe8,0x6, 0x3b,0x29,0xc7,0x1, 0xe2,0x1, 0xc3,0x7f,0xe2,0x1, 0xc7,0x7f, +0xe0,0xf, 0x3b,0x33,0xe7,0xfc,0x0, 0xd0,0x63,0xa, 0x66,0xa, 0xe8,0x6, 0x3b,0x29, +0xe8,0xe, 0x39,0x19,0xe2,0x1, 0xc3,0x7f,0x3f,0x2c,0xe0,0xf, 0x3b,0x33,0xe2,0x1, +0xc7,0x7f,0xe7,0xfc,0x0, 0xc1,0x66,0x88,0x66,0x8, 0xe8,0x2, 0x39,0x9e,0xe8,0xd, +0x3e,0xae,0x39,0x2c,0xe2,0x1, 0xc6,0xff,0x7e,0x89,0xe2,0x1, 0xc1,0x7f,0xe7,0xfc, +0x0, 0xc1,0x39,0x63,0xe7,0xff,0x0, 0x81,0x8, 0xb7,0xf8,0x0, 0xc, 0x3e,0xe1,0xff, +0xc0,0x34,0xf0,0x40,0x3e,0x6a,0xe0,0xf, 0x35,0x21,0xe0,0x0, 0x1d,0xd, 0xe4,0x0, +0xc5,0x8a,0x3e,0xea,0x3e,0x9b,0x3f,0x9a,0x16,0x0, 0xe0,0x2, 0x1f,0x7d,0xe0,0x10, +0xae,0x1d,0xf0,0x40,0x3c,0xe8,0xe0,0x10,0xae,0x2d,0xe8,0x40,0x3c,0x6c,0x8e,0xf, +0x8f,0x9f,0x89,0x4e,0x89,0xde,0x7d,0x8f,0xf0,0x40,0x3f,0x69,0x7e,0xa, 0x7f,0x88, +0xe0,0x6, 0xd4,0xb2,0x14,0x83,0xe0,0x9, 0xda,0x33,0xe0,0x1, 0x1e,0xd7,0xe0,0x43, +0x3c,0x18,0xe0,0x1, 0x93,0xcd,0x67,0xa, 0x3b,0xf8,0xe0,0x67,0x3c,0x28,0xe8,0x40, +0x3f,0x79,0xe0,0x3, 0x3, 0xa1,0x17,0x81,0x66,0xa, 0xe8,0xf, 0x3f,0x99,0x3f,0x9c, +0x17,0x0, 0xe2,0x1, 0xc7,0xff,0x3b,0x6e,0x66,0x8, 0xe8,0x40,0x3e,0x7e,0xe0,0x3, +0x3, 0x81,0x66,0x8, 0x16,0x81,0xe8,0xd, 0x3e,0x9e,0x3e,0x9c,0x16,0x0, 0xe2,0x1, +0xc6,0xff,0x7e,0x9, 0x3e,0x1e,0xe0,0x1, 0x1a,0x72,0x36,0x21,0xa7,0x4, 0xe0,0xa, +0x3f,0x96,0x3f,0x1c,0xe0,0x1, 0x1e,0x57,0xe9,0xff,0xc7,0x7e,0x85,0x9c,0x37,0x41, +0xe0,0x1, 0x1e,0x79,0x61,0x9, 0x7f,0x12,0x36,0x41,0x67,0x9, 0xe2,0x1, 0xc5,0x7f, +0xe0,0x0, 0x6f,0xc3,0xe2,0x0, 0x7c,0x40,0x17,0x80,0x39,0x1d,0xe0,0x0, 0x6f,0x40, +0xe2,0x1, 0xc1,0x7f,0xe0,0x0, 0x6e,0xc2,0xe0,0x0, 0x6f,0xc5,0x7d,0xb, 0x7e,0x13, +0xe0,0x0, 0x6b,0x41,0xe0,0x0, 0x6d,0xc4,0xe0,0x9, 0xd5,0x2f,0xe0,0x1, 0x1f,0xf8, +0xf0,0x0, 0x9c,0xf, 0xe0,0x1, 0x1f,0xf7,0xf4,0x18,0x34,0x20,0xf0,0x0, 0x9d,0x8f, +0xe0,0x1, 0x1f,0xf6,0xf4,0x1b,0x35,0xa0,0xf0,0x0, 0x9d,0xf, 0xe0,0x1, 0x1f,0xf5, +0xf4,0x1a,0x35,0x20,0x9e,0x8f,0xe0,0x1, 0x1f,0xf4,0xf0,0x18,0x3c,0x1d,0x9f,0xf, +0xe0,0x1, 0x1f,0xf3,0xf0,0x1b,0x3d,0x9e,0x9f,0x8f,0x16,0x80,0xf0,0x1a,0x3d,0x1f, +0x67,0x8b,0x3f,0xf6,0xe0,0x1, 0x5, 0xc4,0xe0,0xf, 0x3b,0x33,0x66,0x89,0xa5,0x84, +0x3f,0x9d,0x66,0x8a,0x37,0xa1,0xe0,0xc, 0x3b,0x2d,0xe3,0xff,0xc6,0x7f,0x3d,0x9f, +0x7e,0x7, 0x17,0x2, 0x66,0x9, 0x67,0x88,0xe0,0x1, 0x1d,0x57,0x3e,0x2f,0x7e,0xd, +0x31,0xa1,0x66,0x9, 0xf1,0x39,0x3c,0x9e,0x79,0x8c,0xe4,0xc, 0x36,0x28,0xe4,0x3, +0x33,0x28,0xf1,0x2e,0x3f,0x1e,0x8a,0x9a,0x16,0x80,0x7d,0x86,0x3a,0x63,0x7e,0xe, +0xf0,0x0, 0x7c,0x82,0xe0,0x0, 0x7f,0x5, 0xe4,0x4, 0x32,0x48,0x67,0x9, 0x39,0x7e, +0xe0,0x1, 0x5, 0x84,0xf0,0x0, 0x67,0x6, 0x67,0x87,0x67,0xd, 0x66,0xa, 0xf0,0x0, +0x66,0x89,0xe3,0xff,0xc7,0x7f,0xe0,0x43,0x39,0x9f,0xe0,0xc, 0x3b,0x2c,0xe8,0x40, +0x3f,0xee,0x64,0x8e,0xf8,0x40,0x3f,0x6d,0x7e,0x3, 0xf0,0x40,0x3c,0xee,0x7b,0x4, +0xf0,0x40,0x3e,0xef,0x0, 0xbe,0x66,0x3, 0xe2,0x0, 0xce,0x1, 0xe0,0x0, 0x5, 0x53, +0x67,0x82,0xe0,0x0, 0x27,0xdf,0x66,0x5, 0x15,0x81,0xe0,0x0, 0x26,0x5b,0xe8,0x40, +0x3d,0x6c,0x3c,0x64,0x7e,0x81,0xdc,0x88,0x15,0x7e,0x3d,0x18,0xe2,0x1, 0xc5,0x7f, +0xe0,0xb, 0x33,0x1, 0xe2,0x0, 0xcd,0x1, 0xc4,0x7f,0xe0,0x43,0x3d,0x9b,0xe2,0x1, +0xc4,0x7f,0xe0,0x66,0x3d,0xab,0xe2,0x0, 0xcc,0x2, 0x66,0x81,0x2, 0x8b,0x65,0x4, +0xe8,0xb, 0x3b,0x3e,0x3d,0x36,0xf0,0x1a,0x3d,0x2b,0xf0,0x1b,0x3d,0xaa,0xf0,0x18, +0x3c,0x26,0xf0,0x0, 0xc7,0x1, 0xf4,0x9, 0x37,0x28,0x17,0x1, 0xe4,0xf, 0x34,0xc8, +0xe8,0xe, 0x3f,0x19,0x39,0x7f,0xf0,0x40,0x3c,0xee,0xf3,0xff,0xc4,0xff,0x5, 0xac, +0xe9,0x80,0x97,0x9d,0xe4,0x9, 0x34,0xc8,0x3f,0xa5,0xe0,0x43,0x3b,0x1f,0xe2,0x0, +0xcb,0x0, 0x5, 0x68,0x15,0x81,0x3d,0x9d,0x3b,0xf6,0xe2,0x1, 0xc5,0xff,0xe0,0x6d, +0x3d,0x2b,0xe2,0x0, 0xc9,0x80,0xe7,0xff,0x2, 0x30,0xe3,0xff,0xc9,0xff,0xe7,0xff, +0x4, 0x31,0xe8,0x43,0x3d,0x99,0xe2,0x0, 0xcd,0x80,0xe0,0x0, 0x5, 0x7d,0x67,0x8, +0xf0,0xb, 0x3f,0x2e,0xe2,0x0, 0xcd,0x81,0x5, 0x4d,0x67,0x82,0xe7,0xff,0x2f,0xa5, +0x15,0x80,0xe7,0xff,0x0, 0xa6,0x63,0x4, 0x66,0x6, 0x65,0xc, 0x67,0x7, 0x3e,0x1a, +0xc3,0x1, 0xe4,0x4, 0x33,0x28,0x7e,0x6, 0xc7,0x1, 0x66,0xb, 0xe4,0xf, 0x32,0x48, +0xe3,0xff,0xc7,0x7f,0x3e,0x7f,0x7f,0x7, 0xe7,0xfe,0x2, 0xe8,0xf2,0x0, 0xcc,0x0, +0x11,0x81,0x3f,0x63,0xe8,0x6e,0x39,0xa8,0x3c,0xee,0xf0,0x8, 0x35,0xa6,0xf0,0x40, +0x3c,0x6e,0x7e,0x81,0xe0,0x9, 0xd9,0x2f,0x67,0x8f,0xe0,0x0, 0x19,0xd, 0xc4,0x20, +0x39,0x1f,0xe0,0x7, 0xb4,0x62,0xe8,0x40,0x3c,0xe8,0xf0,0x8, 0x35,0x26,0xe0,0x9, +0xd9,0x22,0x17,0xa0,0x3f,0x98,0xe0,0x7, 0xb7,0xf2,0xe8,0x40,0x3c,0x6c,0xe0,0x6, +0xd3,0x53,0xe2,0x0, 0xcc,0x0, 0x39,0x68,0x66,0x81,0xe0,0x0, 0x5, 0x7e,0xe0,0x1, +0x1d,0x57,0xe0,0x43,0x39,0x12,0xe0,0x2, 0x8c,0xfa,0x2c,0x85,0x17,0x94,0xe0,0x2, +0xaf,0xfa,0x14,0x94,0xe8,0x40,0x3c,0x68,0x7e,0x81,0xe0,0x9, 0xd9,0x4, 0x3c,0x72, +0x3c,0xe2,0xe0,0x62,0x3d,0xa8,0xe0,0x0, 0x14,0x7f,0x3c,0x32,0x66,0xf, 0xe0,0x0, +0x19,0xd, 0x39,0x1c,0xe0,0x9, 0xd8,0xf7,0xe0,0x10,0xac,0x12,0x66,0x81,0x67,0xa, +0x67,0x88,0xe2,0x0, 0xce,0xad,0xe0,0x10,0xae,0xa2,0xe0,0x10,0xaf,0x32,0xe0,0x10, +0xaf,0xc2,0x5, 0x84,0x17,0xad,0xe0,0x10,0xaf,0xa2,0xe0,0x0, 0xc0,0x4c,0xf8,0x0, +0xf, 0x28,0xb, 0xe1,0xe3,0xff,0xcd,0xff,0xe7,0xfe,0x3, 0x55,0xe7,0xfe,0x0, 0xaa, +0x16,0xff,0x3e,0x93,0xe8,0xd, 0x3e,0xae,0x3e,0x7d,0x2, 0x30,0xf0,0xd, 0x37,0x21, +0xe8,0xc, 0x3e,0x2e,0xc6,0x81,0xe2,0x1, 0xc6,0x7f,0x7e,0x9, 0xe2,0x1, 0xc6,0xff, +0xe7,0xfc,0x0, 0xfa,0x17,0xff,0x3f,0x92,0xe8,0xf, 0x3f,0xa9,0x3f,0x7f,0x2, 0xf, +0x3b,0x6e,0xf0,0xf, 0x34,0xa1,0xe8,0x6, 0x3b,0x29,0xc7,0x81,0xe2,0x1, 0xc3,0x7f, +0xe2,0x1, 0xc7,0xff,0xe0,0xe, 0x3b,0x33,0xe7,0xfc,0x0, 0xd8,0x63,0xa, 0x66,0x8a, +0xe8,0x6, 0x3b,0x29,0xe8,0xf, 0x39,0x19,0xe2,0x1, 0xc3,0x7f,0x3f,0xad,0xe0,0xe, +0x3b,0x33,0xe2,0x1, 0xc7,0xff,0xe7,0xfc,0x0, 0xc9,0x66,0x8, 0x65,0x8, 0xe8,0xd, +0x39,0x9e,0xe8,0xc, 0x3e,0x2e,0x3e,0xaa,0xe2,0x1, 0xc6,0x7f,0x7e,0x9, 0xe2,0x1, +0xc6,0xff,0xe7,0xfc,0x0, 0xc9,0x39,0x63,0xe7,0xff,0x0, 0x83,0xe2,0x0, 0xcc,0x1, +0x1, 0x11,0x4, 0x9b,0xc4,0x7c,0xe2,0x0, 0xcc,0x1, 0x5, 0x8c,0xe0,0x1, 0x1f,0x7d, +0xe0,0x1, 0x1f,0xf1,0xbf,0xf, 0xe0,0x1, 0x1f,0x70,0xe0,0x2, 0x1f,0x81,0xbf,0xf, +0x38,0x82,0xe0,0x1, 0x1f,0x7c,0xe0,0x1, 0x1f,0xf1,0xbf,0xf, 0xe0,0x1, 0x1f,0x6f, +0xe0,0x2, 0x1f,0x81,0xbf,0xf, 0x38,0x82,0xe0,0x1, 0x1f,0x7e,0xe0,0x1, 0x1f,0xf1, +0xe2,0x0, 0xcc,0x82,0xbf,0xf, 0x1, 0x7, 0xe0,0x1, 0x1f,0x6e,0xe0,0x2, 0x1f,0x81, +0xbf,0xf, 0x38,0x82,0xe0,0x1, 0x1f,0x6d,0xe0,0x2, 0x1f,0x81,0xbf,0xf, 0x38,0x82, +0x8, 0xb5,0xe0,0x2, 0x19,0x7a,0x8f,0x82,0x2f,0xb6,0xe0,0x1, 0x19,0xf1,0xe0,0x1, +0x1a,0x72,0xa4,0x83,0xa4,0x4, 0xe0,0x2, 0x1a,0x81,0xe0,0x4, 0xd2,0x8f,0xe0,0x2, +0x1f,0xfc,0x14,0x8c,0x9f,0x8f,0xa5,0x4, 0x3c,0x9f,0xa5,0x83,0xa4,0x5, 0xe3,0xff, +0xc4,0xff,0x0, 0x88,0xc7,0x81,0x9e,0x8c,0xe3,0xff,0xc7,0xff,0x3f,0xf9,0xb6,0x8e, +0x1, 0x19,0x8e,0x82,0xe0,0xe, 0x37,0xa1,0xe2,0x0, 0xce,0x81,0xe0,0xc, 0x3d,0x9e, +0x3f,0x1a,0x1, 0xf1,0xe0,0xe, 0x37,0xa1,0x3e,0xec,0xe0,0xc, 0x3c,0x1e,0x9e,0x8d, +0x96,0xc, 0xc7,0x81,0xe3,0xff,0xc7,0xff,0x3f,0x1a,0x3e,0xac,0x3f,0xf9,0xb6,0x8e, +0x1, 0xe9,0xa, 0xe1,0xe0,0x2, 0x1a,0x81,0xe0,0x1, 0x19,0xf1,0xe0,0x1, 0x1a,0x72, +0xa5,0x5, 0xa4,0x83,0xa4,0x4, 0x15,0x81,0xe0,0x4, 0xd2,0x39,0x0, 0xc9,0xe0,0x0, +0x1f,0x8e,0x8f,0x8f,0x27,0xbc,0x14,0x7f,0x3c,0x1f,0xe0,0x2, 0x1f,0xfd,0xe2,0x1, +0xc4,0x7f,0xf0,0x0, 0x8b,0x5f,0xc4,0x1, 0xe0,0x0, 0x1e,0x8d,0xe0,0x1, 0x1f,0xf2, +0x34,0x21,0xf7,0xff,0x12,0xff,0xf0,0x0, 0xa3,0x8f,0xf8,0x15,0x3a,0x96,0x3c,0x1d, +0x14,0x80,0x0, 0x88,0x3e,0x7b,0x4, 0x1e,0xc7,0x7f,0xaf,0x1d,0xc6,0x82,0x3c,0x7d, +0x1, 0x1e,0x8f,0x8d,0x8f,0x1d,0xe8,0xf, 0x3f,0xb6,0x3e,0x69,0x3f,0x9e,0x37,0xa1, +0xf0,0xb, 0x3b,0x9f,0x95,0xb, 0x27,0x3, 0xe0,0x40,0x96,0x1b,0xe8,0x40,0x3f,0x75, +0x3d,0xe9,0x3, 0x4, 0xe8,0xf, 0x3f,0x97,0x95,0x9f,0x3d,0x7c,0x4, 0x64,0x3d,0x7b, +0x3, 0x66,0xc7,0x1, 0xaf,0x1d,0xc6,0x82,0x3c,0x7d,0x1, 0xe4,0x38,0x82,0x0, 0x0, +0x8, 0xb4,0xe1,0xff,0xc0,0x18,0xe0,0x1, 0x1f,0xc3,0x17,0x0, 0x8d,0x8f,0xe0,0x0, +0x19,0xd, 0xe0,0xc, 0x35,0xc3,0x3f,0xee,0x3e,0xee,0xc7,0x81,0xe2,0x1, 0xc7,0xff, +0x3f,0x12,0x3f,0xfc,0xe0,0xf, 0xae,0x8e,0x3f,0x6f,0x5, 0x78,0xe0,0x1, 0x1e,0x57, +0xe0,0x1, 0x1f,0xf2,0xe0,0x2, 0x1d,0x7d,0xf0,0x1, 0x93,0xc, 0xa7,0xf, 0xf0,0x0, +0x91,0xac,0xf0,0x0, 0x92,0x3c,0xf0,0x0, 0x92,0xfc,0xe0,0x3, 0x1e,0x40,0xf0,0x0, +0x80,0xca,0xf0,0x0, 0x81,0x5a,0xe4,0x0, 0x17,0x80,0xe2,0x0, 0x7c,0xae,0xe0,0x1, +0x1d,0x79,0xf0,0x0, 0x83,0x8c,0xe0,0x0, 0x1a,0xe, 0xe0,0x0, 0x19,0x8c,0x3f,0x1f, +0x3f,0x99,0x16,0x0, 0x37,0x41,0x37,0xc1,0x35,0x41,0xc5,0xff,0xe2,0x0, 0x7c,0x84, +0xe2,0x0, 0x7c,0x14,0xae,0x84,0xae,0x83,0xe0,0x1a,0xb6,0x52,0xe0,0x1a,0xb6,0x62, +0xe0,0x1a,0xb6,0x72,0xe0,0x1b,0xb6,0x12,0x7f,0x6, 0x7f,0x88,0x7d,0x7, 0xf0,0x0, +0x73,0x15,0x6d,0x96,0xf0,0x0, 0x6b,0x97,0xf0,0x0, 0x68,0x95,0xf0,0x0, 0x69,0x14, +0xf0,0x0, 0x71,0x92,0xf0,0x0, 0x72,0x13,0xf0,0x0, 0x72,0x94,0xe0,0x9, 0xd2,0x2d, +0x55,0x7, 0x5f,0x8, 0xe0,0x1a,0xb5,0x72,0xe0,0xb, 0x37,0x48,0xe0,0x0, 0x1d,0xb, +0x5f,0x86,0xaf,0xa, 0xe0,0xd, 0x37,0xc8,0xe0,0x0, 0x1f,0xa, 0xf0,0x0, 0x4b,0x84, +0xad,0x8e,0xe0,0x0, 0x1f,0x9, 0x4c,0x5, 0xf0,0x0, 0x53,0x3, 0x54,0x84,0x56,0x5, +0xaf,0x8e,0xe0,0x0, 0x1f,0x88,0xf0,0x0, 0xab,0x84,0xac,0x3, 0xf0,0x1a,0xb3,0x52, +0xe0,0x1a,0xb4,0xe2,0xe0,0x1b,0xb6,0x12,0xae,0x8f,0xf0,0x0, 0x23,0xa5,0xe0,0x1, +0x1d,0x6c,0xe0,0x0, 0x1e,0xd, 0x17,0x80,0xf0,0x0, 0x13,0x1, 0xe0,0xe, 0x37,0xc3, +0xe2,0x0, 0xc7,0x1f,0x3f,0x12,0x16,0x87,0xe0,0xf, 0x84,0x8e,0x3e,0xdf,0xe0,0x80, +0x9d,0x9a,0xf0,0xd, 0x33,0x3d,0x3e,0xc9,0xc7,0x81,0xe0,0xf, 0xae,0x8e,0xe2,0x1, +0xc7,0xff,0xe0,0xe, 0x35,0xc8,0xaf,0xc, 0xf0,0x40,0x3b,0xff,0xc6,0x2, 0xe0,0x40, +0xad,0x9c,0x1, 0xe5,0x24,0x19,0x15,0xff,0x3d,0x98,0xe2,0x1, 0xc5,0xff,0x35,0xa1, +0xe2,0x0, 0x7e,0xae,0xe0,0x0, 0x1f,0x8d,0xe2,0x0, 0x7f,0x2c,0xe0,0xb, 0x3d,0x9d, +0xe0,0x80,0x9e,0x9e,0xc7,0x82,0xe0,0xc, 0x36,0xc8,0x3d,0xfe,0xe0,0x7, 0xae,0x2f, +0xe0,0x7, 0xae,0xbf,0x1, 0xf6,0xe0,0x0, 0xc0,0x68,0xa, 0x61,0xe0,0x2, 0x1f,0xfd, +0xf0,0x0, 0x89,0xdf,0xf0,0xa, 0x31,0xc1,0xf0,0x0, 0x21,0xde,0xe0,0x1, 0x1f,0x72, +0x14,0x0, 0xf0,0x0, 0xa2,0x8e,0x8d,0xef,0xf0,0x1, 0x19,0x7f,0xf0,0x17,0x31,0xa1, +0x35,0x21,0xf8,0x40,0x3a,0x65,0x3c,0xe8,0xf0,0x40,0x3b,0x68,0x17,0x81,0xe8,0xf, +0x3f,0xd6,0x27,0xa6,0x25,0x97,0xe0,0x1, 0x17,0x7e,0xe8,0xe, 0x3f,0x56,0xe0,0x65, +0xc7,0x10,0xe8,0xe, 0x3f,0x12,0xe8,0x40,0x3e,0xe5,0x17,0x80,0xc7,0x81,0x96,0xd, +0xe2,0x1, 0xc7,0xff,0x3f,0xfb,0xb6,0xe, 0x3c,0x9c,0xe8,0xd, 0x3e,0x97,0x3f,0x1a, +0x1, 0xf6,0xf0,0x0, 0xc3,0x1, 0xf2,0x1, 0xc3,0x7f,0xf8,0x40,0x39,0xf6,0xf0,0x0, +0xc2,0x82,0xf0,0x0, 0xc2,0x2, 0x1, 0xdb,0xe0,0x28,0x3c,0x19,0x38,0x82,0x25,0xf2, +0xe0,0x1, 0x17,0x7e,0xe8,0xe, 0x3f,0x56,0xe0,0x6b,0xc7,0x38,0xe8,0xe, 0x3f,0x12, +0xe8,0x40,0x3e,0xe4,0xc7,0x81,0x96,0xd, 0xe2,0x1, 0xc7,0xff,0x3f,0xfb,0xb6,0xe, +0x3c,0x1c,0xe8,0xd, 0x3e,0x97,0x3f,0x1a,0x1, 0xf6,0xf0,0x0, 0xc3,0x1, 0xf2,0x1, +0xc3,0x7f,0xf8,0x40,0x39,0xf6,0xf0,0x0, 0xc2,0x82,0xf0,0x0, 0xc2,0x2, 0xe7,0xff, +0x1, 0xb7,0x0, 0xdb,0xe8,0x40,0x3c,0x63,0x38,0x82,0x0, 0x0, 0x8, 0xb6,0xe1,0xff, +0xc0,0x18,0xe0,0x1, 0x1f,0xc3,0x17,0x0, 0x8d,0x8f,0xe0,0x0, 0x19,0x8d,0x39,0x68, +0xe0,0xc, 0x35,0xc3,0x3f,0xee,0x3e,0xee,0xc7,0x81,0xe2,0x1, 0xc7,0xff,0x3f,0x13, +0x3f,0xfc,0xe0,0xf, 0xae,0x8e,0x3f,0x6f,0x5, 0x78,0xe0,0x0, 0x1b,0xe, 0xe0,0x0, +0x1a,0x8c,0x17,0x80,0xae,0x86,0xae,0x85,0xe0,0x1a,0xb7,0xd3,0xe0,0x1a,0xb7,0xe3, +0xe0,0x1a,0xb7,0xf3,0xe0,0x1b,0xb7,0x93,0xe0,0x1, 0x21,0x7f,0xe0,0x1, 0x1f,0xeb, +0x37,0xc1,0x7f,0x86,0xe2,0x0, 0x7e,0x2e,0xe0,0x2, 0x1e,0xfd,0xe0,0x1, 0x1a,0x42, +0x8f,0x5d,0xe0,0x1, 0x1f,0xd7,0xf0,0x0, 0x81,0xcd,0xe0,0xe, 0x8c,0xa4,0xe0,0x1, +0x1e,0xf9,0xf0,0x0, 0x92,0x2f,0xf0,0x0, 0x92,0xbf,0xf0,0x0, 0x93,0x7f,0xf0,0x1, +0x93,0x8f,0xe0,0xe, 0x8c,0x14,0xe0,0xf, 0x37,0x41,0xe9,0xff,0xc6,0x7e,0x36,0x41, +0x36,0xc1,0xc5,0xff,0xe0,0x1, 0x15,0x78,0x34,0xc1,0x6f,0x94,0x17,0x81,0x7e,0x8, +0x7e,0x87,0xf0,0x0, 0x69,0x95,0xf0,0x0, 0x72,0x12,0xf0,0x0, 0x72,0x93,0xf0,0x0, +0x73,0x14,0x6d,0x96,0x6f,0x97,0xf0,0x0, 0x73,0x95,0xe0,0x9, 0xd0,0x47,0xe2,0x0, +0x7c,0x84,0xe2,0x0, 0x7c,0x14,0xe0,0x9, 0xd0,0xf8,0xe0,0xe, 0x8c,0xa4,0xe0,0xe, +0x8c,0x14,0xe0,0x1, 0x15,0x78,0xe0,0x9, 0xd0,0x39,0x56,0x7, 0x5f,0x8, 0x5f,0x86, +0xe0,0x1a,0xb6,0x73,0xe0,0x16,0x37,0x47,0xe0,0x0, 0x1e,0xb, 0x4c,0x84,0x4d,0x5, +0x54,0x3, 0x55,0x84,0xf0,0x0, 0x1a,0xa, 0x56,0x85,0xe0,0x15,0x37,0xc7,0xf0,0x0, +0x19,0x88,0xaf,0xc, 0xf2,0x1, 0xc3,0x7e,0xe0,0x0, 0x1f,0x9, 0xf2,0x1, 0xc2,0xfe, +0xac,0x86,0xad,0x5, 0xe0,0x1a,0xb4,0x53,0xe0,0x1a,0xb5,0xe3,0xf8,0x0, 0xab,0x4, +0xe0,0x1b,0xb6,0x93,0xaf,0x8e,0xf8,0x0, 0xaa,0x83,0xe0,0x0, 0x29,0x4d,0x24,0xa5, +0xf0,0x1, 0x1b,0xec,0xe0,0x0, 0x1e,0xd, 0x3c,0x62,0x11,0x1, 0xe0,0xf, 0x34,0x43, +0xe2,0x0, 0xc7,0x9f,0x3f,0x93,0x17,0x7, 0xe0,0xf, 0x85,0x8f,0x3f,0x58,0xe8,0x80, +0x9e,0x97,0xe0,0xe, 0x31,0x3e,0x3f,0x4b,0xc4,0x1, 0xe0,0xf, 0xaf,0xf, 0xe0,0xb, +0x36,0xa1,0x17,0x81,0x36,0xc8,0xe2,0x1, 0xc4,0x7f,0xae,0x8c,0x3f,0x9b,0xc6,0x2, +0x3c,0xf8,0xe0,0x40,0xaf,0x9c,0x1, 0xe3,0x25,0x1b,0x15,0xff,0x3d,0x9a,0xe2,0x1, +0xc5,0xff,0x35,0xa1,0xe2,0x0, 0x7f,0xae,0xe0,0x0, 0x1f,0xd, 0xe2,0x0, 0x7e,0x2c, +0xe0,0xb, 0x3d,0x9f,0xe0,0x80,0x9f,0x9c,0xc7,0x2, 0xe0,0xd, 0x37,0xa1,0xc6,0x81, +0x37,0xc8,0x3d,0xfc,0xe0,0x7, 0xaf,0xae,0xe0,0x7, 0xae,0xbe,0x1, 0xf4,0xf0,0x0, +0xc3,0x1, 0xf0,0x0, 0xc2,0x81,0xf8,0x0, 0xab,0x4, 0xf8,0x0, 0xaa,0x83,0xe0,0x0, +0xc0,0x68,0xb, 0x61,0x24,0xa4,0xe0,0x1, 0x1c,0x6c,0xe0,0x0, 0x1d,0x8d,0x17,0x80, +0xf0,0x0, 0x13,0x81,0xe0,0xe, 0x37,0xc3,0xe2,0x0, 0xc7,0x1f,0x3f,0x13,0x16,0x87, +0xe0,0xf, 0x81,0xe, 0x3e,0xdf,0xe0,0x80,0x9e,0x18,0xf0,0xd, 0x33,0xbd,0x3e,0xc2, +0xc7,0x81,0xe0,0xf, 0xae,0x8e,0xe2,0x1, 0xc7,0xff,0xe0,0xe, 0x36,0x48,0xaf,0xb, +0x36,0x21,0xc5,0x82,0x3c,0xff,0xe0,0x40,0xae,0x1b,0x1, 0xe5,0x25,0x59,0x15,0xff, +0x3d,0x9a,0xe2,0x1, 0xc5,0xff,0x35,0xa1,0xe2,0x0, 0x7f,0xae,0xe0,0x0, 0x1f,0xd, +0xe2,0x0, 0x7e,0xac,0xe0,0xb, 0x3d,0x9f,0xe0,0x80,0x9f,0x9d,0xc7,0x2, 0xe0,0xc, +0x37,0xc8,0x3d,0xfd,0x37,0xa1,0xe0,0x7, 0xae,0x2e,0xe0,0x7, 0xaf,0xbe,0x1, 0xf5, +0xe0,0x0, 0xc0,0x68,0xb, 0x61,0xe0,0x1, 0x1f,0xea,0x37,0xc1,0x7f,0x86,0xe7,0xfe, +0x0, 0x83,0x8, 0xb4,0xe0,0x0, 0x1f,0x87,0x17,0x0, 0xaf,0xf, 0xdd,0xa2,0xe0,0x3, +0x1f,0xc7,0xea,0x10,0x79,0x78,0x8f,0x8f,0xe2,0x0, 0xcf,0x81,0x1, 0x21,0xe0,0x0, +0x1f,0x8e,0x8f,0xf, 0x27,0x10,0x87,0x82,0xc7,0x81,0xe2,0x1, 0xc7,0xff,0xe2,0x0, +0xcf,0xb2,0x2, 0x94,0xaf,0x82,0xe0,0x1, 0x1f,0xe9,0x8f,0x8f,0xe2,0x0, 0xcf,0x81, +0x1, 0x9, 0xa, 0x61,0xe0,0x1, 0x1f,0xe9,0xaf,0x2, 0x8f,0x8f,0xe2,0x0, 0xcf,0x81, +0x1, 0xf9,0xe0,0x0, 0x1f,0x86,0xaf,0xf, 0xa, 0x61,0x17,0xb2,0x0, 0xec,0x8c,0x2, +0xe0,0x0, 0x19,0x8e,0xe0,0x6, 0xd2,0xae,0xe0,0x0, 0x1f,0x93,0x8f,0x3, 0x8f,0x8f, +0xe0,0x0, 0x1e,0x9a,0x3f,0x7f,0xac,0xd, 0x1, 0x56,0x8e,0x82,0x17,0xb1,0xe1,0x2f, +0x3f,0xad,0x27,0xd1,0x2c,0x50,0xe0,0x1, 0x1f,0xe8,0x87,0x8f,0xe2,0x1, 0xc7,0xfd, +0x2f,0xca,0xe0,0x2, 0x1a,0x48,0x8f,0x84,0xe2,0x0, 0xcf,0x81,0x1, 0xc, 0x8f,0x84, +0xe2,0x0, 0xcf,0x81,0x1, 0x4, 0x8f,0x3, 0xe7,0xff,0x0, 0xbe,0xdd,0x11,0x8f,0x3, +0xe7,0xff,0x0, 0xba,0xde,0x14,0xde,0x7b,0x0, 0xf3,0xea,0x10,0x7f,0xfe,0xea,0x11, +0x7f,0x2, 0x97,0x8f,0x9e,0x8e,0xe4,0x8, 0x34,0x23,0xe0,0xe, 0x3f,0xad,0xe0,0x43, +0x3f,0x1e,0xe2,0x0, 0xcf,0x0, 0xe0,0x43,0x3e,0x9d,0x3f,0xad,0xe0,0x41,0x3f,0x4e, +0xe4,0x8, 0x34,0x40,0xe0,0x6f,0x3d,0x2e,0x3f,0xf8,0x2, 0x17,0xea,0x10,0x7f,0xfc, +0xea,0x11,0x7f,0x0, 0x97,0x8f,0x9e,0x8e,0xe0,0xe, 0x3f,0xad,0xe0,0x43,0x3f,0x1e, +0xe2,0x0, 0xcf,0x0, 0xe0,0x43,0x3e,0x9d,0x3f,0xad,0xe0,0x41,0x3f,0x4e,0xe0,0x6f, +0x3d,0x2e,0xe0,0x28,0x3c,0x2f,0x38,0x82,0x14,0x0, 0x38,0x82,0xea,0x10,0x7f,0xfa, +0x17,0x0, 0xaf,0xf, 0x38,0x82,0xea,0x11,0x7c,0x4, 0xe0,0x7d,0x0, 0xdb,0x0, 0x0, +0x8, 0xb6,0xea,0x10,0x79,0x7a,0xe0,0x2, 0x1f,0xdf,0x8e,0x82,0xe0,0x2, 0x1f,0x5e, +0x8e,0xf, 0x26,0x8f,0xea,0x11,0x79,0x84,0x9f,0x83,0x27,0x85,0x17,0x81,0xe1,0x2f, +0x3e,0x1f,0x27,0x96,0x14,0x0, 0x17,0x80,0xaf,0x82,0x17,0x80,0xb7,0x83,0xb, 0x61, +0xe0,0x2, 0x1f,0xdd,0xe2,0x0, 0xce,0x1, 0x8c,0xf, 0x1, 0x15,0xea,0x49,0x7f,0xb0, +0xe9,0xff,0xc7,0xff,0xe0,0xe, 0x36,0xa2,0x3f,0x9e,0xa7,0x8f,0x3f,0x82,0xe0,0x2, +0x1d,0xdd,0xe2,0x0, 0xce,0x1, 0xe0,0x0, 0x8c,0xb, 0xe0,0x1, 0x1, 0xa5,0xe2,0x0, +0xce,0x84,0x1, 0x61,0xe0,0x1, 0x1f,0xc1,0xe0,0x6, 0x9a,0x2e,0x8d,0x8f,0xe0,0x1, +0x1f,0xc0,0x35,0xa8,0x8f,0x8f,0x3f,0xcb,0x3a,0x7f,0xe0,0x1, 0x5, 0x91,0xe0,0x1, +0x1f,0xbf,0x8d,0x8f,0xe0,0x1, 0x1f,0xbe,0x35,0xa8,0x8f,0x8f,0x3f,0xcb,0x3a,0x7f, +0xe0,0x1, 0x3, 0x86,0xe0,0x1, 0x1f,0xbd,0xe0,0x6, 0x9a,0xbe,0x8d,0x8f,0xe0,0x1, +0x1f,0xbc,0x35,0xa8,0x8f,0x8f,0x3f,0xcb,0x3a,0xff,0xe0,0x0, 0x5, 0xf9,0xe0,0x1, +0x1f,0xbb,0x8f,0xf, 0xe0,0x1, 0x1f,0xba,0x37,0x28,0x8f,0x8f,0x3f,0xce,0x3a,0xff, +0xe0,0x0, 0x3, 0xee,0xe2,0x0, 0xce,0x84,0xe0,0x1, 0x2, 0x9d,0xea,0x49,0x7f,0xc4, +0xe9,0xff,0xc7,0xff,0x36,0xa2,0x3f,0x9d,0xa7,0x8f,0x3f,0x82,0x12,0x80,0x3a,0x65, +0x17,0x81,0xe0,0x2c,0x3e,0xf, 0xe0,0x0, 0x26,0x59,0xe0,0x0, 0x2c,0x57,0xea,0x10, +0x7f,0xfc,0xea,0x10,0x7f,0x7e,0xb2,0x8f,0xe0,0x1, 0x1f,0xb9,0xb2,0xe, 0xea,0x11, +0x79,0x84,0x8e,0x8f,0xe0,0x1, 0x1f,0xb8,0x8f,0xf, 0xe0,0x1, 0x1f,0xb7,0x37,0x28, +0x8b,0xf, 0xe0,0x1, 0x1f,0xb6,0x36,0xa8,0x8f,0x8f,0x3b,0x4d,0x3f,0xce,0x9f,0x3, +0xe0,0xf, 0x3b,0x2f,0x3f,0x7f,0xe7,0xfe,0x2, 0x7f,0xe0,0x1, 0x1f,0xb5,0x8c,0xf, +0xdf,0x2d,0xe7,0xfe,0x24,0x79,0xea,0x11,0x7f,0x80,0xea,0x11,0x7f,0x2, 0x14,0x0, +0xb2,0x8f,0x17,0x83,0xb2,0xe, 0xaf,0x82,0xb3,0x3, 0xb, 0x61,0xea,0x11,0x79,0x84, +0x14,0x24,0xe7,0xfe,0x0, 0xea,0x2e,0x14,0xe2,0x0, 0xce,0x81,0xe0,0x0, 0x1, 0x44, +0xe0,0x1, 0x1f,0xb4,0x3c,0x6c,0x8e,0x8f,0xe0,0x1, 0x1f,0xb3,0x36,0xa8,0x8f,0xf, +0xea,0x11,0x7f,0x84,0x3f,0x4d,0x16,0x84,0xae,0x82,0xb7,0xf, 0xb, 0x61,0x12,0x80, +0x3a,0x65,0xe0,0x1, 0x1e,0xb2,0xea,0x10,0x7f,0x7e,0xea,0x10,0x7f,0xfc,0x8c,0xd, +0xb2,0xe, 0xb2,0x8f,0xde,0xfb,0x24,0x3, 0x14,0x0, 0xb, 0x61,0xea,0x11,0x79,0x84, +0xe7,0xfe,0x0, 0xc2,0xe2,0x0, 0xce,0x84,0xe7,0xfe,0x5, 0xca,0xe7,0xfe,0x0, 0xbc, +0xe0,0x43,0x3a,0x14,0xe0,0x43,0x3a,0x95,0x0, 0xe5,0x2c,0x6f,0xea,0x11,0x7f,0x0, +0xea,0x11,0x7f,0x82,0xb2,0x8e,0xe0,0x1, 0x1f,0x39,0xb2,0xf, 0xea,0x11,0x7f,0x84, +0x8e,0x8e,0xe0,0x1, 0x1f,0x37,0x36,0xa8,0x8f,0xe, 0x3f,0x4d,0x16,0x81,0xae,0x82, +0xb7,0xf, 0xb, 0x61,0xe0,0x1, 0x1f,0xb9,0x3c,0x6c,0x8e,0x8f,0xe0,0x1, 0x1f,0xb7, +0x36,0xa8,0x8f,0xf, 0xea,0x11,0x7f,0x84,0x3f,0x4d,0x16,0x82,0xae,0x82,0xb7,0xf, +0xb, 0x61,0xea,0x11,0x79,0x84,0x14,0x0, 0xe7,0xfe,0x0, 0x8f,0x8, 0xb7,0xf8,0x0, +0xc, 0x3e,0xe2,0x0, 0xcc,0x1, 0x39,0x69,0xe0,0x0, 0x5, 0xd1,0x12,0xfe,0xf0,0x0, +0x1d,0xd0,0x3a,0x98,0xe0,0x0, 0x1f,0xcc,0xea,0x11,0x7a,0xc, 0xe2,0x1, 0xc2,0xff, +0xfa,0x11,0x7f,0x2c,0xc2,0x81,0xf0,0x0, 0x14,0x80,0xe8,0x0, 0x93,0x8b,0x93,0xf, +0x3a,0x94,0xf8,0x40,0x3e,0x69,0xf0,0x0, 0x14,0x1, 0x8c,0x4, 0xf0,0x80,0x8e,0x94, +0xe8,0x0, 0x8c,0x8e,0xf8,0x80,0x8d,0x1e,0xe8,0x8, 0x3c,0x2d,0xe8,0x9, 0x3c,0xaa, +0x34,0x24,0xe0,0x9, 0xd3,0x75,0x39,0xe8,0x8c,0x14,0xe8,0x0, 0x8c,0x9e,0xf0,0x8, +0x3e,0xa8,0xf0,0x9, 0x3d,0x29,0x34,0x24,0xe0,0x9, 0xd3,0x6a,0xe0,0xf, 0x39,0xa8, +0x16,0x85,0x3e,0x9f,0x17,0x1, 0x3f,0x12,0xe2,0x0, 0xce,0x8b,0xe2,0x1, 0xc7,0x7f, +0xe0,0x62,0x3b,0xae,0x3f,0xf7,0x39,0xef,0x5, 0x5, 0xe0,0x43,0x3b,0x9f,0xf8,0x40, +0x3e,0x68,0x3f,0xf6,0x3, 0x5, 0xe0,0x43,0x3b,0x13,0xf8,0x40,0x3c,0xe8,0x3a,0x75, +0x1, 0xcd,0xf0,0x0, 0x2e,0x8, 0xf0,0x0, 0x2c,0x89,0x3c,0x62,0xf8,0x0, 0xf, 0x28, +0xb, 0xe1,0xe8,0x0, 0xb3,0x8b,0x0, 0xf8,0xe0,0x0, 0x1f,0xcc,0xb3,0xf, 0x0, 0xf6, +0x8, 0xb7,0x12,0x0, 0x16,0xff,0xf0,0x0, 0x13,0x9f,0x3e,0x98,0xf0,0x17,0x3b,0x98, +0xc4,0xff,0x3d,0x64,0x3c,0x64,0x3d,0xe4,0xe0,0x40,0x3e,0x64,0xe0,0x80,0x8f,0x9d, +0xe0,0x80,0x8f,0x19,0xe0,0x3, 0x3f,0xbf,0xe0,0x5, 0x3f,0x3e,0xe0,0x2, 0x3f,0x3f, +0xf0,0x40,0x3b,0xfd,0x3e,0x1e,0x3d,0x9f,0x3c,0x15,0x3d,0x13,0x3a,0x12,0x1, 0xef, +0xe0,0x2, 0x36,0x5, 0xe4,0x0, 0xc4,0x64,0xe0,0x0, 0x12,0xe4,0x3a,0xba,0xe0,0x4, +0x14,0xb5,0xe0,0x6, 0x39,0x32,0xe0,0x3, 0x35,0x85,0xe0,0x9, 0xd3,0x11,0xe0,0x6, +0x3c,0x26,0xe0,0x4, 0x14,0xb5,0x3c,0x65,0xe0,0x9, 0xd3,0xa, 0xe0,0x7, 0x39,0xb3, +0x17,0x80,0xe0,0x2f,0x3b,0xf, 0xe0,0x7, 0x3c,0x27,0xe0,0x0, 0x14,0x64,0x2f,0x9d, +0xe0,0x25,0x3b,0x8f,0x2a,0x9a,0x3c,0x34,0xe0,0x4, 0x14,0xb5,0x39,0x33,0xe0,0x9, +0xd2,0xf7,0xe0,0x2, 0x3c,0x22,0xe0,0x0, 0x14,0x64,0x3c,0x32,0x3c,0xe6,0xe0,0x9, +0xd2,0xef,0x3c,0x32,0x3c,0xe7,0xe0,0x9, 0xd2,0xeb,0xe0,0x43,0x3f,0x98,0xe2,0x0, +0xcf,0x80,0x4, 0x6, 0xe0,0x43,0x3c,0x18,0xe2,0x1, 0xc4,0x7f,0xb, 0xe1,0x3c,0x65, +0x0, 0xfa,0x8, 0xb1,0xea,0x11,0x7f,0x87,0x8f,0x8f,0xe0,0xe, 0x34,0xa1,0xe0,0xd, +0x35,0x21,0x3f,0x18,0xc7,0xff,0x3c,0x1d,0x86,0x9e,0x3c,0xff,0x16,0x0, 0x38,0xed, +0x85,0x98,0xe0,0x61,0x39,0xac,0x3e,0x61,0x2d,0x88,0x3c,0xfa,0xb6,0x88,0x1, 0x2, +0xb5,0x8e,0x3c,0xff,0x1, 0xb, 0x8, 0xe1,0x3c,0xfa,0x1, 0x7c,0x3e,0x9b,0x36,0x81, +0xb6,0x88,0x3c,0xff,0x16,0x80,0xb6,0x8e,0x1, 0xf7,0xb6,0x8, 0x8, 0xe1,0x0, 0x0, +0x8, 0xb7,0xf8,0x0, 0xc, 0x3e,0xe1,0xff,0xc0,0xc, 0xea,0x11,0x7b,0xab,0xea,0x11, +0x7e,0xb, 0x16,0xa0,0x7e,0x6, 0xc4,0x7e,0xc4,0xfe,0x3e,0x97,0xe0,0x40,0x3f,0xec, +0xe0,0x80,0x97,0x18,0xe0,0x80,0xaf,0x17,0x3e,0xf7,0xe0,0x80,0x97,0x19,0xe0,0x80, +0xaf,0x1f,0x1, 0xf7,0xe0,0x2, 0x1f,0x86,0x8a,0xf, 0xe0,0x4, 0x22,0x5c,0xfa,0x11, +0x79,0xac,0xf8,0x40,0x3c,0x63,0xe0,0x2, 0x1f,0x29,0xf8,0x0, 0x8d,0x88,0x17,0x80, +0xf0,0x40,0x3d,0x6e,0x7f,0x9, 0xf0,0xc, 0x35,0xa4,0xe0,0x7, 0x17,0x68,0xf0,0x0, +0x16,0xd3,0xe8,0x40,0x39,0xea,0x7f,0x87,0xf0,0x40,0x3c,0xef,0x7e,0xb, 0xf0,0x1d, +0x3e,0x90,0x7f,0x88,0xf0,0x40,0x3e,0x6f,0x7f,0x8a,0x13,0x20,0xe0,0x0, 0x7f,0xc, +0xf0,0x40,0x3d,0x67,0xe0,0x0, 0x15,0x44,0x3c,0xe3,0xe2,0x0, 0x7c,0x34,0xe0,0x9, +0xd2,0xd1,0xe0,0x0, 0x1f,0xcc,0xe0,0xff,0x16,0x7f,0xe0,0x0, 0x1f,0x50,0xb6,0xf, +0x16,0x33,0x17,0x80,0x15,0x0, 0x3e,0x10,0xb7,0x8e,0xe8,0x40,0x3d,0xe8,0xe8,0x40, +0x3c,0x6d,0x64,0x86,0xf8,0x40,0x3b,0x68,0xe8,0x40,0x3e,0xeb,0xe8,0x40,0x3a,0xec, +0xe8,0x40,0x39,0x6c,0xe8,0x40,0x3b,0xec,0xf8,0x40,0x3f,0x6c,0x0, 0x83,0xe8,0x80, +0x8e,0x96,0xf0,0x80,0x8b,0x9c,0xe3,0xff,0xc6,0xff,0xf0,0xe, 0x3b,0xad,0xe0,0x43, +0x3f,0x9e,0xe8,0xd, 0x3e,0xa7,0xe2,0x0, 0xcf,0x80,0xe0,0x43,0x3e,0x9d,0xe0,0x6f, +0x3d,0x2d,0xf0,0x80,0x8b,0x98,0xe0,0x80,0x8e,0x99,0xe8,0x40,0x3f,0xfe,0xf0,0xe, +0x3b,0xad,0xe0,0x7e,0x3b,0x2f,0xe2,0x0, 0xcf,0x0, 0xe8,0xd, 0x3e,0xa7,0xe0,0x6e, +0x3d,0x2d,0xf0,0x40,0x3b,0xee,0xf3,0xff,0xc3,0xff,0xe3,0xff,0xc7,0xff,0xe8,0xd, +0x3f,0x97,0x3f,0x77,0xe8,0x5, 0x3a,0x97,0xf0,0x43,0x3b,0x9d,0xe0,0x67,0x3b,0x2e, +0xf0,0x40,0x3b,0xfa,0x3f,0x92,0xe0,0x43,0x39,0x1f,0xe0,0x43,0x3a,0x95,0x3, 0x2, +0x3e,0xea,0xf0,0x40,0x3e,0xfc,0xe0,0x43,0x3d,0x1d,0x1, 0xc2,0xe8,0x40,0x3e,0x6b, +0x17,0x0, 0xe0,0x0, 0x16,0xff,0x0, 0x83,0xe0,0x80,0x8e,0x1b,0xe4,0xf, 0x36,0x28, +0xf0,0x40,0x3b,0xed,0xe4,0x8, 0x37,0xc8,0xf2,0x1, 0xc3,0xff,0xf0,0x40,0x3b,0xf8, +0x3c,0xee,0xe2,0x1, 0xc4,0xff,0x3f,0xe8,0x5, 0x82,0x3e,0xec,0x3c,0xff,0xe2,0x1, +0xc6,0xff,0x3, 0x82,0x3f,0x6c,0xf0,0x40,0x3d,0x7b,0xe2,0x1, 0xc7,0x7f,0x1, 0xe5, +0xf0,0x2f,0x3f,0x16,0xe0,0x1, 0x27,0xdc,0xe0,0x2f,0x3b,0x96,0xe0,0x1, 0x27,0xd8, +0xf0,0x0, 0xc4,0x81,0xf2,0x1, 0xc4,0xff,0xf0,0x40,0x3c,0xf4,0xe0,0x0, 0xc1,0xc4, +0xe7,0xfe,0x1, 0xea,0xe0,0x9, 0x3f,0x2d,0x64,0xb, 0xe2,0x1, 0xc4,0xff,0xe0,0x9, +0xd1,0xd7,0x67,0x88,0x3a,0x68,0xc7,0xff,0x3f,0x6f,0xe2,0x1, 0xc7,0x7f,0xe0,0x1, +0x17,0xfd,0xe1,0x2f,0x3f,0xae,0xe2,0x1, 0xc2,0x7f,0xe0,0x2, 0x27,0xc9,0x66,0xa, +0xe0,0x0, 0x17,0xc5,0xe1,0x2f,0x3e,0x1f,0xe0,0x2, 0x27,0xc2,0x67,0x87,0xeb,0xc8, +0x79,0x78,0xea,0x11,0x79,0x88,0x67,0x8, 0xc7,0x81,0xf0,0x0, 0x66,0x7, 0xaf,0x82, +0xaf,0x3, 0xe0,0x0, 0x17,0xc4,0xe8,0xf, 0x3f,0xbc,0x67,0x9, 0x3f,0x1f,0xe0,0x8, +0x87,0x2e,0xc7,0x4f,0xe2,0x1, 0xc7,0x7f,0xe2,0x0, 0xcf,0x1, 0xe0,0x2, 0x5, 0x9c, +0x67,0x8, 0xe2,0x0, 0xcf,0x31,0xe0,0x2, 0x1, 0x0, 0x67,0x8, 0xe2,0x0, 0xcf,0x50, +0xe0,0x2, 0x1, 0x58,0x67,0x88,0xe2,0x0, 0xcf,0xb3,0xe0,0x1, 0x1, 0x84,0xe2,0x0, +0xca,0x8, 0xe0,0x0, 0x2, 0xfb,0x14,0x80,0x14,0x1e,0xdd,0xf1,0xe0,0x0, 0x1f,0xcc, +0x97,0x8f,0xe3,0xff,0xcf,0xca,0xe0,0x2, 0x3, 0x55,0xf0,0x2, 0x1a,0xad,0xf0,0x2, +0x1a,0x3, 0xf0,0x2, 0x19,0x35,0xf0,0x0, 0x18,0xa5,0xea,0x11,0x7d,0x2c,0x12,0x0, +0x17,0x80,0xea,0x11,0x7c,0x8c,0xf0,0x0, 0x13,0x9d,0xe8,0x0, 0xb7,0x85,0xe8,0x0, +0xb7,0x84,0xf0,0x17,0x3b,0x9a,0xe8,0x0, 0xb7,0x82,0x3a,0xe4,0xe8,0x0, 0xb7,0x81, +0xf0,0x40,0x39,0xe4,0x3c,0x64,0xf0,0x40,0x3b,0x64,0x3b,0x64,0xf0,0x40,0x3c,0x64, +0xf0,0x40,0x38,0x64,0x3e,0xe4,0x13,0x81,0x0, 0x90,0xe2,0x0, 0xcd,0x80,0xe0,0x43, +0x3a,0x9e,0x3a,0x67,0xe0,0xe, 0x3f,0x96,0x4, 0x28,0xe0,0x43,0x3b,0x1e,0xf0,0x40, +0x3b,0x67,0xf0,0x40,0x3b,0xfa,0x1, 0x29,0x8d,0x8a,0x8f,0x1a,0x8f,0x99,0xf0,0x0, +0x8c,0x89,0x3f,0x2b,0x3e,0x6e,0xe8,0xf, 0x3f,0xa9,0xe2,0x0, 0xcf,0x0, 0xe3,0xff, +0xc7,0xff,0xe3,0xff,0xc6,0x7f,0xc5,0x1, 0xe0,0x43,0x3d,0x9f,0xc4,0x81,0xe0,0xe, +0x3e,0x15,0x3, 0x5c,0xe2,0x0, 0xcd,0x80,0x3e,0x18,0xe0,0x43,0x3c,0x1c,0xf0,0x40, +0x39,0xe7,0xe0,0xe, 0x3f,0x96,0x3, 0x5a,0x3f,0x9d,0xe0,0x43,0x3e,0x9f,0xf0,0x40, +0x38,0x6d,0xf0,0x40,0x3c,0x67,0x0, 0xd6,0xf0,0x2, 0x2c,0x11,0xf0,0x0, 0x23,0x4, +0xe8,0x0, 0xb3,0x2, 0xf0,0x0, 0x21,0x84,0xe8,0x0, 0xb4,0x4, 0x22,0x3, 0xe8,0x0, +0xb2,0x85,0xe3,0xff,0xce,0xe3,0x4, 0x6, 0xe0,0x0, 0x17,0xfc,0xaf,0x82,0x17,0x80, +0xaf,0x83,0xe0,0x0, 0xc0,0x74,0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0x16,0x30,0xf0,0x2f, +0x3f,0x1c,0xe7,0xfe,0x2f,0xa7,0xe0,0x2f,0x3b,0x9c,0xe7,0xfe,0x2f,0xa3,0xe2,0x6, +0xc9,0x0, 0xe7,0xfe,0x2, 0x1f,0xeb,0xc8,0x7f,0xf9,0x8f,0x8f,0x16,0xc, 0x3e,0x3f, +0x3a,0xfc,0xe7,0xfe,0x2, 0x17,0xe8,0x40,0x3c,0xe8,0xe2,0x0, 0x7c,0x34,0x7e,0x82, +0x7f,0x1, 0x7d,0x3, 0x7f,0x84,0xdd,0xb5,0xea,0x11,0x7c,0x8c,0x3d,0xe8,0xe2,0x0, +0x7c,0x54,0x7d,0x85,0xdd,0xae,0x16,0x3b,0xe1,0x29,0x3e,0x28,0x65,0x85,0x66,0x82, +0x67,0x1, 0xe7,0xfd,0x2c,0xff,0xe1,0x2c,0x3e,0x2b,0xe7,0xfd,0x2e,0x7b,0xe0,0x16, +0x3d,0xbb,0xe0,0xc, 0x3c,0x38,0xe0,0x9, 0x3d,0x98,0xf0,0x8, 0x3b,0x1c,0xe0,0x9, +0xd1,0x1a,0x3d,0xe8,0xe2,0x1, 0xc5,0xff,0xe2,0x0, 0xcd,0xd9,0x65,0x3, 0x66,0x82, +0x67,0x1, 0x67,0x84,0xe0,0x0, 0x5, 0xd9,0xe0,0x0, 0x16,0x64,0xf0,0xf, 0x3f,0x17, +0x3e,0x2b,0x36,0x21,0x3f,0x9a,0x3f,0x9c,0x66,0xc, 0xe0,0x43,0x3f,0x9f,0x3f,0xfc, +0x3, 0x8, 0xe0,0x0, 0x4e,0x76,0x7f,0x8c,0x7e,0x8, 0x7d,0x8a,0xf0,0x0, 0x7c,0x87, +0xe0,0x0, 0x17,0xc5,0x66,0xa, 0xe1,0x2f,0x3e,0x1f,0xe7,0xfd,0x27,0xcb,0x66,0x8, +0xe0,0x1, 0x17,0xff,0xe0,0x2f,0x3e,0xf, 0xe7,0xfd,0x27,0xc4,0x17,0x80,0x7f,0x88, +0x7f,0x8a,0xe7,0xfd,0x0, 0xbf,0x66,0x9, 0x3f,0x9c,0xe0,0x8, 0x8f,0xf, 0xe2,0x0, +0xcf,0x5, 0xe7,0xff,0x1, 0x88,0xe0,0x8, 0x8f,0x9f,0xe2,0x1, 0xcf,0xb3,0xe7,0xff, +0x1, 0x82,0x14,0x80,0x14,0xa, 0xdc,0xf3,0xe2,0x0, 0xcc,0x2, 0xe7,0xfe,0x2, 0xfb, +0xe7,0xfe,0x0, 0xf4,0xea,0x11,0x7f,0x6, 0x87,0xe, 0xe2,0x0, 0xcf,0x2, 0xe7,0xfd, +0x5, 0x61,0xe0,0x0, 0x17,0x7c,0xaf,0x2, 0xe7,0xfd,0x0, 0xdc,0xf0,0x0, 0x66,0x7, +0xea,0x11,0x79,0x88,0xeb,0xc8,0x79,0x78,0x8e,0x3, 0xe0,0x0, 0x17,0xfc,0x7e,0x8, +0xaf,0x82,0xe7,0xfd,0x0, 0xc0,0xf2,0x0, 0xcf,0x1f,0xe7,0xff,0x2, 0x3b,0xe0,0xc, +0x37,0x81,0x3b,0xfc,0xe7,0xff,0x3, 0x36,0xf2,0x0, 0xcf,0xf, 0x5, 0x6, 0xe0,0xc, +0x37,0x82,0x3b,0xfc,0xe7,0xff,0x3, 0x2e,0xe2,0x1, 0xc9,0x7f,0x2, 0x39,0x14,0x86, +0xe0,0x8, 0x37,0xa5,0x7d,0x3, 0x7d,0x85,0x7e,0x82,0x7f,0x1, 0xe0,0x9, 0xd0,0x58, +0xe0,0x28,0x3c,0x15,0x65,0x3, 0x65,0x85,0x66,0x82,0x67,0x1, 0xe7,0xff,0x24,0x1a, +0xe0,0x0, 0x17,0xc5,0xe1,0x2f,0x3d,0x9f,0xe7,0xff,0x27,0x94,0xe7,0xfe,0x0, 0xfe, +0x14,0x80,0x14,0xa, 0xdc,0xa4,0xe2,0x0, 0xcc,0x6, 0xe7,0xfe,0x2, 0xac,0xe7,0xfe, +0x0, 0xa5,0xe0,0x2, 0x1f,0xa9,0xf0,0x40,0x3e,0x64,0x7f,0x89,0xe7,0xff,0x0, 0xba, +0xe0,0x0, 0x1e,0xd0,0xe4,0xe, 0x37,0x8f,0xe2,0xf, 0x3f,0x4f,0x96,0x8d,0x3f,0xae, +0x3f,0x9d,0xe2,0x1, 0xcf,0x95,0xe7,0xfd,0x2, 0x22,0xe7,0xfe,0x0, 0x8f,0xe0,0xc, +0x37,0xa2,0xe0,0x2c,0x3a,0xac,0xe7,0xfe,0x2e,0x6d,0xe0,0x2, 0x16,0x54,0xe0,0x22, +0x39,0x1c,0xe7,0xfe,0x29,0x67,0xe7,0xff,0x0, 0xbc,0xf8,0x0, 0xb0,0x1, 0xe7,0xfd, +0x0, 0xef,0x0, 0x0, 0x8, 0xb7,0xf8,0x0, 0xc, 0x3e,0xe1,0xf4,0xc0,0x58,0xea,0x11, +0x79,0x87,0x3a,0x6a,0xeb,0xc8,0x79,0x78,0xe2,0x1, 0xc2,0x7f,0x17,0xff,0xaa,0x3, +0xaf,0x82,0xe0,0x0, 0x25,0x65,0x16,0x7f,0x3e,0x1a,0xe3,0xff,0xc6,0x7f,0xc6,0x1, +0x36,0x22,0xe0,0x3, 0x17,0x6a,0xe0,0x7, 0x17,0xca,0x3f,0x10,0x3f,0x90,0x3e,0x18, +0x96,0x88,0xc4,0x4, 0xe0,0x80,0xb6,0x9e,0x3e,0x78,0xe0,0x40,0x96,0x98,0xe0,0x80, +0xb6,0x9f,0x1, 0xf7,0xe2,0x0, 0xca,0x4, 0xe0,0x0, 0x5, 0xca,0xf0,0x1, 0x94,0x69, +0xf0,0x1, 0x94,0xf9,0xf8,0x40,0x3c,0x79,0xe0,0x0, 0x4, 0x57,0xe8,0x40,0x3c,0xe9, +0xf0,0x2, 0x24,0xaf,0xe8,0x40,0x3c,0x68,0xe0,0x8, 0xdf,0xda,0xeb,0xc8,0x7b,0x79, +0xe0,0x0, 0x17,0xc0,0xe0,0x43,0x3a,0x88,0xaf,0x86,0xea,0x11,0x7f,0x86,0xe2,0x0, +0xca,0x84,0xaa,0x8f,0xe0,0x0, 0x5, 0x60,0xe0,0x0, 0x17,0xfd,0xaf,0x82,0x14,0x87, +0xe0,0x1, 0x1f,0xb1,0xe0,0x1, 0x1f,0x30,0x8f,0x8f,0x8c,0xe, 0x37,0xa8,0x3c,0x4f, +0x34,0x21,0xe0,0x8, 0xdf,0xbd,0xe8,0x40,0x3c,0x78,0xe0,0x2, 0x5, 0x2, 0xe0,0x1, +0x1f,0xaf,0xe0,0x1, 0x1f,0x2e,0x8f,0x8f,0x8c,0xe, 0x37,0xa8,0x14,0x86,0x3c,0x4f, +0xe0,0x8, 0xdf,0xf1,0xe3,0xff,0xc4,0x7f,0xf0,0x40,0x3c,0xf8,0xe0,0x1, 0x3, 0x71, +0xe0,0x0, 0x17,0xfd,0xaf,0x82,0xe0,0x0, 0x16,0xfd,0x0, 0x86,0xe0,0x0, 0x17,0xff, +0xaf,0x82,0xe0,0x0, 0x16,0xff,0xe0,0x2, 0x1f,0x86,0x17,0x0, 0x87,0x8f,0xaf,0x3, +0x3f,0xfd,0x14,0x0, 0x4, 0x4, 0xea,0x11,0x7f,0x88,0x8c,0xf, 0xe0,0xb, 0xc0,0x28, +0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0xf0,0x7, 0x34,0x21,0xf0,0x1, 0x24,0x5f,0xe8,0x40, +0x3c,0xe8,0xe8,0x40,0x3c,0x69,0xe0,0x8, 0xdf,0x83,0xf0,0x40,0x3c,0xf7,0xe0,0x43, +0x3a,0x88,0xeb,0xc8,0x7b,0x79,0xe0,0x1, 0x3, 0x47,0x3c,0xe7,0xf0,0x8, 0x34,0xa7, +0xe0,0x8, 0xdf,0xb9,0xea,0x11,0x7f,0x86,0xe2,0x0, 0xca,0x84,0xac,0x6, 0xaa,0x8f, +0xe7,0xff,0x2, 0x24,0xe0,0x3, 0x1f,0x88,0xf0,0x0, 0x15,0x1, 0xe0,0x1, 0x9f,0x6f, +0xe0,0x1, 0x9e,0xff,0xe2,0x0, 0xcf,0x0, 0xf8,0x40,0x3d,0xea,0xe0,0x7b,0x39,0xae, +0x8b,0x6, 0xe0,0x3, 0x12,0xec,0xe2,0x0, 0xce,0x80,0xf0,0x7, 0x16,0xcc,0xe0,0x1, +0x9f,0xf, 0x3a,0x90,0xf0,0x1d,0x3e,0x90,0xf0,0x0, 0x9e,0x7f,0x7b,0x2, 0xe0,0x7a, +0x39,0xad,0x7f,0x1, 0xe8,0x40,0x3b,0xed,0x3b,0x65,0xf0,0x0, 0x17,0x0, 0x67,0x81, +0x94,0x6, 0xe8,0x40,0x3c,0xeb,0x3c,0x2f,0x34,0x26,0xe0,0x8, 0xdf,0x84,0x97,0x87, +0xe1,0x80,0xb4,0x16,0xe8,0xf, 0x3f,0xac,0x64,0x2, 0xe8,0x40,0x3c,0xea,0x3c,0x3f, +0xe0,0x8, 0xdf,0x79,0x15,0x1, 0xe8,0xa, 0x3d,0x1e,0xf0,0x40,0x3f,0x6a,0xf2,0x1, +0xc7,0x7f,0xe8,0x40,0x3a,0x7e,0xe1,0x80,0xb4,0x17,0x1, 0xe2,0xe0,0x3, 0x53,0x66, +0xe0,0x3, 0x4b,0xed,0xf0,0x0, 0x11,0x8c,0xf0,0x1, 0x12,0x7c,0x12,0x1, 0xf0,0x13, +0x39,0x90,0xf0,0x14,0x3a,0x10,0xe2,0x1, 0xc3,0x7f,0xe8,0x0, 0xab,0x83,0xf8,0x40, +0x3b,0x6d,0xe8,0x0, 0xab,0x4, 0xf0,0x40,0x3b,0xe5,0x3c,0x64,0xf0,0x40,0x3a,0xe4, +0xf0,0x0, 0x11,0x7, 0xf0,0x0, 0x10,0x83,0x0, 0x8b,0xe8,0x2f,0x3d,0x95,0x2f,0xaf, +0xc4,0x1, 0xe2,0x1, 0xc4,0x7f,0xe8,0x40,0x3c,0x7e,0xe0,0x1, 0x1, 0x23,0xe8,0x80, +0x94,0x97,0xf8,0x80,0x90,0x16,0xe2,0x1, 0xc4,0xff,0xe0,0xd, 0x3c,0xa7,0xe2,0x1, +0xc6,0xff,0xf2,0x1, 0xc0,0x7f,0xe0,0x43,0x3e,0xd, 0xf0,0xf, 0x38,0x26,0xe2,0x0, +0xce,0x0, 0xe2,0x1, 0xc7,0xff,0xe0,0x41,0x3e,0xcd,0xe0,0x43,0x3d,0x8f,0xe0,0x43, +0x3e,0x8d,0xe0,0x6c,0x3c,0x2d,0xe0,0x41,0x3f,0xcf,0xe2,0x0, 0xcd,0x80,0xe0,0x43, +0x3f,0x8f,0xe8,0x2d,0x3e,0x15,0xe0,0x6b,0x3c,0x2f,0x26,0xd0,0xe2,0x1, 0xca,0x6c, +0xe0,0x1, 0x2, 0xc5,0xe8,0x2f,0x3e,0x12,0x2f,0xad,0xe8,0x2f,0x3d,0x92,0x2f,0xaa, +0xe8,0x2c,0x3e,0x11,0xe0,0x0, 0x2e,0x5d,0xe8,0x2b,0x3d,0x91,0xe0,0x0, 0x2d,0xd9, +0xf0,0xd, 0x39,0x94,0xf0,0xf, 0x3a,0x14,0xc2,0x1, 0xac,0x8d,0xe2,0x1, 0xc2,0x7f, +0xf0,0x0, 0xa8,0xf, 0xe8,0x40,0x3b,0x60,0x3b,0xe9,0xe7,0xff,0x0, 0xb3,0x86,0x82, +0xe7,0xfe,0x0, 0x9b,0xe7,0xff,0x17,0x80,0xaf,0x86,0xe7,0xfd,0x0, 0xe0,0x14,0x81, +0xf0,0x40,0x3c,0xe9,0xe7,0xfd,0x0, 0xd0,0x13,0x82,0xf0,0x0, 0x14,0x1, 0xe7,0xfe, +0x0, 0xa0,0x17,0x81,0x3f,0x94,0xe0,0xb, 0x3b,0x99,0xe8,0xc, 0x3b,0x10,0xe2,0x1, +0xc7,0xff,0x35,0x81,0x36,0x1, 0x16,0xff,0xf0,0x1b,0x39,0x9f,0xf0,0x1a,0x3a,0x1f, +0x3e,0x9f,0x3b,0x9b,0x3b,0x1c,0xe8,0x0, 0xad,0x8b,0xf0,0x1c,0x39,0x9d,0xe8,0x0, +0xae,0xa, 0xe0,0xb, 0x33,0x81,0xe8,0xd, 0x3e,0x94,0xe0,0xc, 0x33,0x1, 0xe8,0x0, +0xad,0x8c,0xc7,0x81,0xae,0xd, 0xf0,0xb, 0x39,0x9f,0xe8,0x0, 0x8e,0xb, 0xe8,0x0, +0x8e,0x8a,0x3e,0x19,0xe8,0xd, 0x3e,0x90,0x36,0x1, 0xe8,0xf, 0x3f,0x94,0x36,0x81, +0xc2,0x3, 0xae,0xb, 0xe2,0x1, 0xc2,0x7f,0xae,0x8f,0xe7,0xff,0x0, 0xab,0xe0,0xd, +0x3b,0x99,0xe8,0xf, 0x3b,0x10,0xf0,0xb, 0x39,0x94,0xf0,0xc, 0x3a,0x14,0x36,0x81, +0x37,0x81,0xc2,0x1, 0xae,0x8b,0xe2,0x1, 0xc2,0x7f,0xaf,0x8c,0xe7,0xff,0x0, 0x9a, +0xe2,0x0, 0xca,0x1, 0xaa,0x3, 0x1, 0x1a,0x15,0x7e,0x3d,0x14,0xe2,0x1, 0xc5,0x7f, +0x17,0x8c,0x3f,0x90,0xc5,0x1, 0xe0,0x1, 0x16,0xfc,0x3e,0x90,0xe0,0xa, 0x3d,0x1f, +0xe0,0x80,0x8d,0x9f,0xe0,0x80,0x8e,0x1d,0x3f,0xfa,0xe0,0x80,0xb5,0x95,0xe8,0x80, +0xb6,0x1d,0x1, 0xf7,0xe2,0x0, 0xca,0x1f,0x2, 0x86,0xe0,0x0, 0x17,0xfe,0xaf,0x82, +0xe7,0xfc,0x0, 0xf7,0x12,0x82,0xf0,0x40,0x3d,0x65,0x3c,0xe4,0xe0,0x8, 0x32,0xa5, +0xe0,0x8, 0xde,0x79,0xe2,0x0, 0xcc,0x2, 0xe8,0x40,0x3b,0x6a,0xe0,0x66,0x3b,0xa8, +0x13,0xff,0x3b,0x95,0xc3,0x7f,0xe2,0x1, 0xc3,0xff,0xe2,0x1, 0xc3,0x7f,0x3c,0xe7, +0x3d,0x66,0xe2,0x3, 0x7c,0x6c,0xdb,0x46,0x3d,0x66,0x3c,0xe7,0xe2,0x7, 0x7c,0x4c, +0xc2,0x81,0xdb,0x40,0xe2,0x1, 0xc2,0xff,0x3a,0xf4,0x5, 0xe0,0xe2,0x7, 0x7c,0xcc, +0xe2,0x3, 0x7c,0x6c,0xdb,0x5e,0xe7,0xfc,0x0, 0xcc,0xaa,0x3, 0xe7,0xff,0x0, 0xb6, +0xf0,0x2, 0x1b,0x36,0xe8,0x0, 0x8d,0x6, 0xe2,0x1, 0xcd,0x6f,0x2, 0x90,0xf0,0x2, +0x1b,0xae,0xe0,0xf, 0x35,0x22,0xc5,0x1, 0xf0,0x17,0x3b,0x9f,0xe2,0x1, 0xc5,0x7f, +0xe8,0x0, 0xb4,0x7, 0xe8,0x0, 0xb4,0x97,0xe8,0x0, 0xad,0x6, 0xe0,0x3, 0x1f,0x88, +0xe0,0x1, 0x9f,0xf, 0x3f,0x78,0xe0,0x1, 0x5, 0xa5,0xe0,0x1, 0xb4,0xf, 0xe0,0x1, +0xb4,0x9f,0x9f,0x7f,0x3f,0x79,0xe0,0x1, 0x5, 0x83,0xb4,0xff,0xb4,0x6f,0xe2,0x0, +0xcd,0xa, 0xe0,0x1, 0x1, 0xa, 0xe2,0x0, 0xcd,0x14,0xe0,0x1, 0x1, 0x1b,0xe2,0x1, +0xcd,0x6f,0xe0,0x1, 0x5, 0xa7,0x8, 0xb1,0xf0,0x0, 0x19,0x8f,0xf0,0x2, 0x1b,0xae, +0xe8,0x0, 0x8c,0x83,0xf0,0x0, 0x12,0x80,0xf0,0x0, 0x12,0x1, 0xe8,0x40,0x3c,0x67, +0xe2,0x0, 0xcc,0x9f,0x2, 0x86,0xc4,0x81,0xe2,0x1, 0xc4,0xff,0xf8,0x40,0x3a,0xe4, +0x17,0xfe,0x3f,0x9a,0xe2,0x1, 0xc7,0xff,0xc7,0x81,0x37,0xa2,0xe8,0x0, 0x98,0x87, +0xf8,0x0, 0x99,0x17,0xe0,0x2, 0x1e,0xae,0xe0,0x10,0x3c,0x1f,0xf0,0x40,0x3b,0xe8, +0x15,0x0, 0x0, 0xad,0xe8,0xe, 0x3f,0x22,0xe3,0xff,0xc7,0x7f,0xe0,0x43,0x3e,0x1e, +0xe2,0x0, 0xce,0x0, 0xe2,0x1, 0xc7,0xff,0x5, 0x30,0xe2,0x1, 0xc7,0x7f,0xf0,0x40, +0x38,0xef,0x3e,0x6e,0xf2,0x1, 0xc0,0xff,0xe2,0x1, 0xc6,0x7f,0xf0,0x40,0x38,0xfc, +0x3, 0x82,0x3f,0xee,0xe2,0x1, 0xc7,0xff,0x3f,0xf9,0x4, 0x8d,0xc5,0x1, 0xe2,0x1, +0xc5,0x7f,0xf0,0x0, 0x99,0x3d,0xe0,0xf, 0x35,0x22,0x3f,0x98,0xb5,0x8f,0x38,0xeb, +0xf0,0x0, 0xb1,0x1f,0xc6,0x84,0xe8,0x40,0x3e,0xf0,0x1, 0x12,0x9d,0xad,0x9f,0x3d, +0xe0,0xf, 0x3d,0xa1,0xe3,0xff,0xc7,0xff,0xe0,0x43,0x3e,0x1f,0xe2,0x0, 0xce,0x0, +0x2, 0x4a,0xe0,0x41,0x3f,0xcf,0x0, 0xc7,0xe0,0x41,0x3f,0x4e,0x0, 0xcf,0xe2,0x0, +0xcc,0x9f,0xc5,0x1, 0xe2,0x1, 0xc5,0x7f,0x2, 0x85,0xe2,0x1, 0xcd,0x6b,0xe7,0xff, +0x2, 0xa1,0xf0,0x0, 0x2a,0xb4,0xe8,0x0, 0xad,0x6, 0x8, 0xe1,0xe0,0x1, 0x9f,0x3f, +0x3f,0x79,0xe7,0xfe,0x3, 0xfe,0xe2,0x0, 0xcd,0xa, 0xe0,0x1, 0xb4,0xbf,0xe0,0x1, +0xb4,0x2f,0xe7,0xfe,0x1, 0xfa,0x96,0xcf,0xe0,0x1, 0x95,0x8f,0xe0,0x1, 0x97,0x3f, +0x96,0x7f,0x3e,0xab,0x3f,0x2c,0xe0,0x2, 0xb6,0x8f,0xe0,0x2, 0xb7,0x1f,0x38,0x82, +0x9f,0x4f,0x3f,0x78,0xe7,0xfe,0x3, 0xdf,0xb4,0x4f,0xb4,0xdf,0xe7,0xfe,0x0, 0xdb, +0x96,0xcf,0xe0,0x1, 0x95,0x8f,0xe0,0x1, 0x97,0x3f,0x96,0x7f,0x3e,0xab,0x3f,0x2c, +0xe0,0x2, 0xb6,0xaf,0xe0,0x2, 0xb7,0x3f,0x38,0x82,0xe8,0x0, 0xac,0x83,0x0, 0xcc, +0x38,0x82,0xe0,0x1, 0x1c,0x5b,0xe0,0x6e,0x0, 0xe5,0x0, 0x0, 0x17,0xe0,0x3f,0x98, +0xe2,0x0, 0xcf,0x83,0x5, 0x96,0x24,0x14,0xe0,0x2, 0x1e,0xb6,0x16,0x6, 0xe0,0x3, +0x1f,0x88,0xe0,0x2, 0x1f,0x2e,0xe0,0x3, 0x1d,0x87,0xae,0xd, 0xc7,0x84,0x96,0xf, +0x96,0x9f,0xb6,0xe, 0x3f,0xfb,0xc7,0x4, 0xe0,0x40,0xb6,0x9e,0x1, 0xf8,0x38,0x82, +0xe0,0x3, 0x1f,0x8, 0xe0,0x2, 0x1f,0xae,0x95,0xae,0x96,0x3e,0xe0,0x1, 0x96,0xce, +0xe0,0x2, 0x1d,0x36,0xe0,0x1, 0x97,0x5e,0x14,0x82,0xac,0x8a,0xb5,0x8f,0xb6,0x1f, +0xb6,0xaf,0xb7,0x3f,0x38,0x82,0x0, 0x0, 0x8, 0xb7,0xf8,0x0, 0xc, 0x39,0xe0,0x2, +0x1f,0xdf,0xe0,0x2, 0x1f,0x5d,0x8f,0x8f,0x8e,0xe, 0xe2,0x0, 0xcf,0x81,0xe0,0x0, +0x5, 0xfa,0xe0,0x1, 0x1f,0x5b,0x9e,0x8e,0xe0,0x0, 0x26,0xe6,0xe0,0x3, 0x19,0x8, +0x8d,0x82,0x2f,0x95,0x16,0x81,0xe0,0x2d,0x3e,0xd, 0x26,0x91,0x9f,0x8e,0xe2,0x0, +0xcd,0x83,0xb7,0x92,0xe0,0x1, 0x1, 0x61,0xe0,0x2, 0x1f,0xc0,0x17,0x7e,0xe0,0xa, +0xaf,0x3f,0x17,0x80,0xaf,0x82,0xf8,0x0, 0xc, 0xa8,0xb, 0xe1,0xe0,0x2, 0x1f,0x5e, +0xe0,0xd, 0x8e,0x8e,0xe2,0x0, 0xce,0x81,0x1, 0x70,0xe0,0x6, 0x9a,0xae,0xe0,0x6, +0x9a,0x3e,0xe0,0x0, 0x25,0xfb,0xe2,0x0, 0xcd,0x81,0xe0,0x1, 0x1, 0x55,0xea,0x11, +0x7b,0x50,0xea,0x11,0x7b,0xce,0x97,0x86,0x94,0x87,0xe2,0x0, 0xcd,0x83,0xe0,0xf, +0x3a,0xaf,0xe0,0x9, 0x3a,0x29,0xe3,0xff,0xc7,0xff,0xe3,0xff,0xc4,0xff,0xe0,0x2, +0x1, 0x14,0xe0,0x43,0x3e,0x9f,0xe0,0x43,0x3f,0x19,0xe2,0x1, 0xc7,0xff,0xe2,0x1, +0xc4,0xff,0xe2,0x0, 0xce,0x80,0xf0,0x0, 0x1c,0xf, 0xe0,0x1, 0x5, 0x20,0xe2,0x0, +0xcf,0x0, 0xe0,0x1, 0x5, 0x2b,0x3e,0xef,0x3f,0x69,0xe2,0x1, 0xc6,0xff,0xe2,0x1, +0xc7,0x7f,0x3e,0xfe,0x3, 0x82,0x3f,0xe9,0xe8,0x0, 0x8f,0x8, 0xe2,0x1, 0xc7,0xff, +0x3f,0x7f,0xe7,0xff,0x3, 0xba,0x3c,0xe4,0x3c,0x65,0xde,0x83,0xb2,0x86,0xb2,0x7, +0xe7,0xff,0x0, 0xb3,0xe0,0x2, 0x1f,0x87,0x17,0x1, 0xaf,0xf, 0x17,0x7e,0xe0,0x2, +0x1f,0xc0,0xe0,0xa, 0xaf,0x3f,0xe0,0x3, 0x1f,0x88,0xae,0x8f,0xf8,0x0, 0xc, 0xa8, +0xb, 0xe1,0xe0,0x0, 0x1f,0xd, 0xe0,0x1a,0x9f,0x5e,0xe2,0x0, 0xcf,0x1e,0xe7,0xff, +0x2, 0x82,0xe0,0x3, 0x19,0x8, 0x8d,0x82,0xe0,0x1, 0x25,0xdd,0xe0,0x1, 0x1f,0x5b, +0x9e,0x8e,0xe7,0xff,0x2e,0x80,0xe0,0x2, 0x1f,0x87,0x17,0x1, 0xaf,0xf, 0x17,0x7e, +0xe0,0x2, 0x1f,0xc0,0xae,0x82,0xe0,0xa, 0xaf,0x3f,0xf8,0x0, 0xc, 0xa8,0xb, 0xe1, +0xe0,0x2, 0x1f,0x5e,0xe0,0xd, 0x8e,0x8e,0xe2,0x0, 0xce,0x81,0xe7,0xfe,0x1, 0x76, +0xe0,0x6, 0x9a,0xae,0xe0,0x6, 0x9a,0x3e,0x11,0x80,0xe7,0xfe,0x2e,0x76,0xf0,0x0, +0x14,0x81,0xe8,0x2f,0x3f,0x89,0xe7,0xfe,0x27,0xf0,0xe0,0x3, 0x1c,0x8, 0x15,0x28, +0x3c,0xe3,0xe0,0x8, 0xdc,0xe1,0xe0,0x2, 0x1c,0x2e,0xe0,0x7, 0x15,0x40,0x3c,0xe3, +0xe0,0x8, 0xdc,0xda,0xe0,0x1, 0x1f,0xad,0xea,0x11,0x7b,0x50,0x8f,0xf, 0xe0,0x1, +0x1f,0xac,0x37,0x28,0x8f,0x8f,0xea,0x11,0x7b,0xce,0x3f,0xce,0xe0,0x2, 0x1f,0x40, +0xf0,0x0, 0x1c,0xf, 0xe0,0xa, 0xa9,0xbe,0x3c,0xe4,0xe0,0x1, 0x1f,0x5b,0xb7,0x8e, +0xe0,0x2, 0x1f,0xb6,0x3c,0x65,0xa9,0x8f,0x17,0x82,0xe8,0x0, 0xaf,0x88,0xb2,0xa2, +0xb2,0x32,0xb2,0xc2,0xb2,0xe2,0xe0,0x1, 0xb2,0x82,0xe0,0x1, 0xb2,0xa2,0xb2,0x52, +0xb2,0x72,0xe0,0x1, 0xb2,0x12,0xe0,0x1, 0xb2,0x32,0xb2,0x86,0xb2,0x7, 0xde,0x1, +0x3c,0xe3,0xf0,0x0, 0xac,0x82,0x3f,0x63,0x3f,0xe3,0xe0,0x41,0x3f,0xcf,0xe2,0x1, +0xc7,0xff,0xe7,0xfe,0x0, 0xde,0x2f,0xbb,0xaf,0x82,0x17,0x7e,0xe0,0x2, 0x1f,0xc0, +0xe0,0xa, 0xaf,0x3f,0xe7,0xfe,0x0, 0xa1,0xe0,0x41,0x3c,0xc9,0xe2,0x1, 0xc4,0xff, +0xe7,0xfe,0x0, 0xd3,0xe0,0x1, 0x1f,0xab,0x9f,0x42,0x8e,0x8f,0xe0,0x1, 0x1f,0xaa, +0xe0,0x1, 0x9e,0x2, 0x8f,0x8f,0x36,0xa8,0x3f,0x2c,0x3f,0xcd,0x3f,0x7f,0xea,0x11, +0x7b,0x50,0xea,0x11,0x7b,0xce,0x2, 0x26,0xe0,0x1, 0x1f,0xa9,0xe0,0x1, 0x9f,0x32, +0x8e,0x8f,0xe0,0x1, 0x1f,0xa8,0x9e,0x72,0x8f,0x8f,0x36,0xa8,0x3f,0x2c,0x3f,0xcd, +0x3f,0x7f,0x2, 0x18,0x97,0x86,0x94,0x87,0xe0,0xf, 0x3a,0xaf,0xe0,0x9, 0x3a,0x29, +0xe3,0xff,0xc7,0xff,0xe3,0xff,0xc4,0xff,0xe7,0xfe,0x0, 0x95,0xe0,0x1, 0x9c,0xd2, +0xe0,0x1, 0x9c,0x42,0x17,0x84,0xaf,0x82,0xf8,0x0, 0xc, 0xa8,0xb, 0xa1,0xe7,0xfb, +0x0, 0xb1,0x97,0x86,0x94,0x87,0xe0,0xf, 0x3a,0xaf,0xe0,0x9, 0x3a,0x29,0xe3,0xff, +0xc7,0xff,0xe3,0xff,0xc4,0xff,0x17,0x3, 0xaf,0x2, 0xe0,0x43,0x3e,0x9f,0xe0,0x43, +0x3f,0x19,0xe0,0x1, 0xb2,0xc2,0xe2,0x1, 0xc7,0xff,0xe0,0x1, 0xb2,0x52,0xe2,0x1, +0xc4,0xff,0xe7,0xfd,0x0, 0xf8,0xe0,0x43,0x3e,0x9f,0xe0,0x43,0x3f,0x19,0xe0,0x1, +0xb2,0xc2,0xe2,0x1, 0xc7,0xff,0xe0,0x1, 0xb2,0x52,0xe2,0x1, 0xc4,0xff,0xe7,0xfd, +0x0, 0xea,0x17,0x1, 0xe0,0x2e,0x3e,0xe, 0xe7,0xfe,0x27,0x34,0x3f,0x6f,0xe4,0x0, +0xcf,0x1, 0xe2,0x0, 0xc7,0x1, 0xe7,0xfe,0x27,0x2d,0xe0,0x1, 0x1f,0xdb,0x97,0x8f, +0xb7,0x92,0xe7,0xfd,0x0, 0xa3,0x8, 0xb4,0xe0,0x2, 0x19,0xc0,0xe0,0xa, 0x8f,0x83, +0x27,0x93,0xe0,0x3, 0x19,0x8, 0xde,0x79,0x8f,0x82,0xe2,0x0, 0xcf,0x84,0x1, 0x12, +0xef,0xff,0xd6,0xd0,0x3a,0x68,0x22,0x7, 0xe0,0x2, 0x1f,0xdc,0x17,0x1, 0xe0,0xa, +0xaa,0x33,0xaf,0xf, 0xa, 0x61,0xe0,0x3, 0x1f,0x8, 0xaf,0x8e,0xa, 0x21,0xe7,0xed, +0x0, 0xb7,0x97,0x42,0xe0,0x1, 0x96,0x2, 0xe0,0x1, 0x97,0xb2,0x96,0xf2,0x3f,0x2c, +0x3f,0xad,0xe0,0x1, 0xb7,0x62,0xe0,0x1, 0xb7,0xf2,0xd2,0x7d,0x3a,0x68,0x24,0xc, +0xe2,0x1, 0xca,0x7f,0x17,0x80,0xe0,0x6f,0x39,0xa4,0x3a,0x6f,0x3c,0x64,0xde,0x1f, +0x17,0x80,0xaf,0x82,0x0, 0xd9,0xe0,0x2, 0x1f,0xb6,0xe0,0x2, 0x1c,0x2e,0x8d,0xf, +0x3c,0xe2,0xdb,0x31,0x3a,0x68,0x0, 0xf3,0x8, 0xb4,0xe2,0x0, 0xcc,0x1, 0x39,0xe8, +0x39,0x68,0x17,0x80,0x5, 0x89,0x31,0x41,0xe2,0x0, 0xc9,0x1, 0xc7,0x81,0xe2,0x1, +0xc7,0xff,0x1, 0xfa,0x37,0xc1,0x31,0x3f,0xe4,0x0, 0xc1,0x3, 0x12,0x1, 0x31,0x54, +0x3c,0xe2,0x3c,0x63,0xe0,0x8, 0xdb,0x6f,0x3c,0x12,0x34,0x41,0xe0,0x2, 0x3c,0x22, +0xe0,0x43,0x3f,0x92,0xe0,0x41,0x3f,0x4f,0xe2,0x0, 0xcf,0x80,0xe1,0x2e,0x3f,0x14, +0xe1,0x2f,0x39,0x14,0xe0,0x6f,0x3d,0x2e,0x39,0x68,0x2f,0xeb,0xa, 0x61,0xe0,0x2, +0x1f,0xae,0x34,0x22,0x34,0xa2,0x3c,0x9f,0x3c,0x1f,0x9f,0x88,0x9f,0x9, 0x9c,0x18, +0x3f,0xae,0x9f,0x19,0xe0,0x43,0x3e,0x9f,0xe2,0x0, 0xce,0x80,0x3c,0x2e,0xe0,0x43, +0x3f,0x18,0xe0,0x41,0x3e,0xcd,0xe0,0x6f,0x3d,0x2d,0xe2,0x0, 0xcf,0x0, 0xe0,0x41, +0x3f,0x4e,0xe0,0x68,0x3d,0x2e,0x3f,0xbf,0x3c,0x38,0x3c,0x1f,0xe2,0x0, 0xcc,0x5, +0x2, 0x88,0xe2,0x0, 0xcc,0x2, 0xe0,0xf, 0x34,0x41,0xe0,0x68,0x3b,0xaf,0x38,0x82, +0xe7,0xff,0x0, 0xac,0x8, 0xb7,0xf8,0x0, 0xc, 0x3e,0xc0,0x7c,0xe0,0x1, 0x1f,0xa7, +0x13,0x0, 0xf0,0x0, 0x8e,0xf, 0xe0,0x1, 0x1f,0xa6,0x3a,0x68,0x8f,0x8f,0xf0,0x0, +0x14,0x81,0x7f,0x81,0xf0,0x40,0x3d,0x66,0xf0,0x40,0x3d,0xe6,0xe0,0x0, 0x11,0xa8, +0xe2,0x0, 0xca,0x1, 0xf0,0x0, 0x14,0x0, 0x5, 0xba,0x11,0x1, 0xf8,0x40,0x3e,0xe8, +0xe8,0x40,0x3a,0xe8,0x0, 0x8b,0xe8,0x40,0x3a,0xed,0x3b,0xe8,0xf0,0x40,0x3e,0xe2, +0xc1,0x1, 0xe2,0x1, 0xc1,0x7f,0x3a,0x72,0x1, 0x2a,0xe8,0x40,0x3c,0xed,0x3c,0x62, +0xdf,0xa7,0x3c,0x73,0xf0,0x40,0x3f,0x68,0x4, 0xf4,0xf7,0xff,0x26,0xee,0x3c,0xe2, +0x3c,0x65,0xdf,0x9e,0xe8,0x8, 0x3c,0x1c,0xe8,0xe, 0x3b,0x9e,0x3f,0x78,0x4, 0xbe, +0xe2,0x0, 0xcb,0x5, 0x17,0x1, 0xe8,0xe, 0x3f,0x18,0xe0,0x0, 0x2, 0xe8,0xe8,0x40, +0x3a,0xed,0xf0,0x40,0x3e,0xe2,0xc1,0x1, 0xe2,0x1, 0xc1,0x7f,0x3a,0x72,0xf0,0x40, +0x3c,0x6e,0xf2,0x1, 0xc4,0x7f,0xe8,0x40,0x3b,0xee,0x1, 0xd8,0xe2,0x0, 0xcb,0x5, +0x3f,0x66,0xe2,0x1, 0xc7,0x7f,0xc1,0x8a,0x2, 0xb3,0xe8,0x40,0x3e,0xe8,0xe8,0x40, +0x3f,0xeb,0xe2,0x1, 0xc6,0xff,0xe2,0x1, 0xc7,0xff,0x3e,0xff,0xe2,0x1, 0xc1,0xff, +0x3, 0x83,0xf8,0x40,0x3c,0x6b,0xe2,0x0, 0xcf,0x5, 0xf8,0x40,0x3d,0xe8,0xf2,0x1, +0xc5,0xff,0xe0,0x0, 0x1, 0x59,0xf2,0x0, 0xcc,0x8c,0x1, 0x27,0xf0,0x0, 0xc4,0x81, +0xc3,0x1, 0xf2,0x1, 0xc4,0xff,0xe7,0xff,0x0, 0x9d,0xe2,0x0, 0xcb,0x5, 0xe8,0x40, +0x3f,0xed,0xe0,0x6f,0x3a,0xa5,0x3a,0xef,0x3f,0xe2,0xe0,0x7e,0x3a,0xa7,0xe8,0x6f, +0x3a,0xad,0xe8,0x40,0x3b,0xee,0xf0,0x40,0x3e,0xef,0xe7,0xff,0x0, 0x9b,0xe2,0x1, +0xc1,0xff,0xf0,0x0, 0x2d,0xaa,0xf0,0x0, 0x2d,0x10,0xf2,0x0, 0xcc,0x8c,0xf8,0x40, +0x3d,0xea,0xf0,0x0, 0x66,0x1, 0x1, 0xdb,0xf2,0x0, 0xcd,0x8a,0x2, 0x95,0xf0,0x0, +0x2d,0xa8,0xf0,0x0, 0x25,0x6, 0xf0,0x0, 0xc5,0x10,0xf2,0x1, 0xc5,0x7f,0xe8,0x40, +0x3c,0x6a,0xc0,0x4, 0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0xf0,0x0, 0xc5,0x1, 0xf2,0x1, +0xc5,0x7f,0xe7,0xfe,0x0, 0xf7,0xf0,0x0, 0x15,0xf, 0xe8,0x40,0x3c,0x6a,0xc0,0x4, +0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0xf2,0x0, 0xcd,0x8b,0xf0,0x0, 0x15,0xf, 0xe8,0x7a, +0x3c,0xab,0xe8,0x40,0x3c,0x6a,0xc0,0x4, 0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0xf8,0x40, +0x3d,0x6b,0x0, 0xde,0x11,0xb2,0xe7,0xff,0x0, 0xab,0xf0,0x3, 0x1a,0x8, 0xf8,0x0, +0x9b,0xb4,0xe8,0x1, 0x9c,0xd4,0xe8,0x0, 0x9e,0x44,0xf0,0xa, 0x3b,0xa9,0xf0,0x40, +0x39,0x6a,0xe8,0x1, 0x9f,0x4, 0xf3,0xff,0xc1,0x7f,0xe8,0x43,0x3e,0x92,0xe0,0xf, +0x3e,0x2e,0xe2,0x0, 0xce,0x80,0xe8,0xd, 0x3c,0xa7,0xf8,0x1, 0x9b,0x34,0xf8,0x0, +0x9a,0xf4,0xf0,0x40,0x39,0xef,0xe3,0xff,0xc6,0xff,0xf3,0xff,0xc1,0xff,0xe0,0x72, +0x3d,0x2d,0xe0,0x1, 0x1e,0xa5,0xe8,0x43,0x3d,0x93,0xf8,0x8, 0x3b,0x25,0xe2,0x0, +0xcd,0x80,0x3f,0xe8,0x8d,0x8d,0xe0,0x1, 0x1e,0xa4,0xe3,0xff,0xc7,0xff,0x3f,0x2c, +0xe0,0x43,0x3d,0x1f,0xe3,0xff,0xc7,0x7f,0x8e,0x8d,0xe0,0x73,0x3d,0x2e,0xf8,0xc, +0x3a,0xa6,0xe2,0x0, 0xcd,0x0, 0xe0,0xe, 0x35,0xa8,0xe3,0xff,0xc6,0x7f,0x3f,0x4d, +0xe0,0x6f,0x3d,0x2c,0xf0,0x40,0x39,0xfe,0x14,0x0, 0xe0,0x0, 0x3, 0xd2,0xe0,0x1, +0x1f,0x23,0xe0,0x1, 0x1e,0xa2,0x8f,0xe, 0x8e,0x8d,0x37,0x28,0x3f,0x4d,0xe1,0x2d, +0x3f,0x9e,0xe0,0x0, 0x26,0xc5,0xe9,0x2f,0x3f,0x93,0xe0,0x0, 0x27,0xc1,0xe8,0x0, +0x8c,0x14,0x2c,0x3d,0xe0,0x1, 0x1f,0xad,0xe0,0x1, 0x1e,0xa1,0x8d,0x8f,0xe0,0x1, +0x1f,0xa0,0x8e,0x8d,0x8e,0xf, 0xe0,0x1, 0x1f,0xac,0x36,0x28,0x8f,0x8f,0x35,0xa8, +0x3e,0xcc,0x3f,0xcb,0xe8,0x0, 0x9e,0x14,0xe0,0xd, 0x3f,0xad,0x3e,0x7d,0x5, 0x28, +0xe0,0x1, 0x1e,0x9f,0x8d,0x8d,0xe0,0x1, 0x1e,0x9e,0x35,0xa8,0x8e,0x8d,0x3e,0xcb, +0x3f,0xad,0xe0,0x2f,0x3f,0x9c,0x27,0x9c,0xf1,0x2f,0x39,0x1e,0x27,0x99,0xe0,0x1, +0x1f,0x9d,0xe0,0x1, 0x1f,0x1c,0x8f,0x8f,0x8f,0xe, 0xf0,0x40,0x3b,0xf9,0x37,0xa8, +0x3f,0x4f,0x3, 0x8f,0xf8,0xf, 0x3b,0xa5,0x3f,0xfe,0x3, 0xa, 0xf0,0xf, 0x3b,0x29, +0x3f,0x7f,0x17,0xa3,0xe0,0x6f,0x3d,0x28,0x3c,0x6f,0x38,0x82,0x14,0x0, 0x38,0x82, +0xe8,0xf, 0x3c,0xa5,0x3f,0xfe,0x3, 0x7c,0xf8,0xf, 0x3b,0x27,0x3f,0x7f,0x17,0xa2, +0xe0,0x6f,0x3d,0x28,0x3c,0x6f,0x38,0x82,0xe0,0x3, 0x1e,0x8, 0xf0,0x0, 0x9b,0xac, +0xf0,0x1, 0x9a,0xcc,0xf0,0x0, 0x9a,0x4c,0xf0,0x1, 0x9b,0xc, 0xf8,0xd, 0x3b,0xa5, +0xe3,0xff,0xc6,0xff,0xe0,0x43,0x3f,0x1d,0xf8,0xf, 0x3a,0x26,0xe2,0x0, 0xcf,0x0, +0xe3,0xff,0xc7,0xff,0xf8,0xa, 0x3a,0xa7,0xe0,0x43,0x3c,0x9f,0xe0,0x1, 0x9c,0x3c, +0x9d,0xfc,0xe3,0xff,0xc5,0x7f,0xe0,0x6d,0x3d,0x2a,0xe2,0x0, 0xcc,0x80,0xf8,0xa, +0x3b,0x24,0xe0,0xe, 0x3c,0x2b,0xe3,0xff,0xc5,0x7f,0xe0,0x1, 0x1c,0x9b,0xe3,0xff, +0xc7,0x7f,0xe0,0x6f,0x3d,0x2a,0xe0,0x1, 0x1d,0x1a,0xf0,0x43,0x39,0x9e,0x8c,0x89, +0x3d,0xa8,0xf2,0x0, 0xc9,0x80,0x8d,0xa, 0xe3,0xff,0xc5,0xff,0x34,0xa8,0xe0,0x6e, +0x3d,0x2b,0xe0,0xb, 0x3d,0x49,0xe1,0x2b,0x3d,0x9e,0xe0,0x0, 0x25,0xcd,0xe1,0x2f, +0x3f,0x9e,0xe0,0x0, 0x27,0xc9,0x8c,0x1c,0xe0,0x0, 0x2c,0x46,0xe0,0x1, 0x1f,0xad, +0x9e,0x1c,0x8d,0xf, 0xe0,0x1, 0x1f,0x99,0x35,0x28,0x8d,0x8f,0xe0,0x1, 0x1f,0xac, +0x35,0xa8,0x8f,0xf, 0xe0,0x1, 0x1f,0x98,0x3f,0x4a,0x8f,0x8f,0x3f,0xcb,0xe0,0xf, +0x3f,0x2f,0x3e,0x7f,0x5, 0x31,0xe0,0x1, 0x1f,0x97,0x8d,0x8f,0xe0,0x1, 0x1f,0x96, +0x35,0xa8,0x8f,0x8f,0x3f,0xcb,0x3f,0x2f,0x3e,0x7e,0x3, 0x26,0xe0,0x1, 0x1f,0x95, +0x8f,0xf, 0xe0,0x1, 0x1f,0x94,0x37,0x28,0x8f,0x8f,0x3f,0xce,0x3e,0xff,0x5, 0x9c, +0xe0,0x1, 0x1f,0x9d,0xf8,0x40,0x3b,0xf5,0x8f,0xf, 0xe0,0x1, 0x1f,0x9c,0x37,0x28, +0x8f,0x8f,0x3f,0xce,0x37,0xc1,0x5, 0x91,0xf8,0x16,0x3a,0xa6,0xf0,0x40,0x3b,0x7f, +0x3, 0xb, 0xf8,0x17,0x3a,0x27,0xe8,0x40,0x3f,0xf7,0x17,0xa0,0xe0,0x6f,0x3d,0x28, +0x3c,0x6f,0x38,0x82,0x14,0x0, 0x38,0x82,0xf8,0x17,0x3b,0xa6,0xf0,0x40,0x3b,0xff, +0x3, 0x7b,0xf8,0x15,0x3a,0x25,0xe8,0x40,0x3f,0xf5,0x17,0xa1,0xe0,0x6f,0x3d,0x28, +0x3c,0x6f,0x38,0x82,0x8, 0xb1,0xe0,0x2, 0x1f,0xb6,0x84,0xf, 0xc4,0x7f,0xe2,0x1, +0xc4,0x7f,0xdd,0xe9,0x17,0x80,0x2c,0xc, 0xde,0xb1,0x3f,0xe8,0x2c,0x9, 0xdf,0x55, +0xe2,0x0, 0xcc,0x0, 0xe0,0x1, 0x17,0x7f,0xe0,0x6e,0x39,0xa8,0x3f,0xee,0x3c,0x6f, +0x8, 0xe1,0xe0,0x2, 0x1f,0x91,0xe6,0x1, 0x16,0xff,0xa7,0x8f,0x34,0x28,0xa7,0x5f, +0x3f,0x5d,0xbf,0x5f,0xa7,0x5f,0x3c,0x4e,0xbc,0x5f,0x38,0x82,0xe0,0x2, 0x1e,0xfd, +0xe0,0x3, 0x1f,0x13,0x8f,0xdd,0x8e,0x4d,0xe0,0x2, 0x1e,0x93,0x3f,0xbc,0x37,0xa1, +0xb7,0x8e,0x9f,0x8e,0x37,0xc9,0xe0,0x3, 0xaf,0xcd,0x9f,0x8e,0x37,0xc1,0xe0,0x3, +0xaf,0xdd,0x38,0x82,0x8, 0xb2,0xe0,0x2, 0x19,0x13,0xe0,0x6, 0x8c,0x12,0xe0,0x6, +0x8c,0xa2,0xe0,0x2, 0xd7,0x4f,0xe4,0x8, 0x34,0x21,0xe0,0x3, 0x9f,0xc2,0xe4,0x8, +0x34,0x40,0x3c,0x7f,0x3, 0x88,0xe0,0x1, 0x1f,0x4f,0xe0,0x3, 0xb4,0x42,0x9f,0x8e, +0xcf,0xa0,0xb7,0x8e,0x9, 0x61,0x8, 0xb2,0xe0,0x1, 0x1f,0xc2,0xe0,0x1a,0x17,0x20, +0x3f,0x1f,0x8f,0xe, 0xe0,0x1a,0xc7,0xa1,0x8c,0xf, 0x37,0x28,0xe0,0x2, 0x19,0x13, +0x3c,0x4e,0x17,0x81,0xaf,0xc2,0xe0,0x7, 0xd3,0x42,0x14,0x1, 0xe0,0x4, 0xd0,0xa2, +0xe0,0x2, 0x1f,0xfd,0xe0,0x19,0x16,0x9d,0x17,0x7, 0x3e,0x9f,0xaf,0xd, 0xe0,0x19, +0xc7,0x9e,0xaf,0xf, 0xe0,0x1, 0xd8,0x2b,0x17,0x82,0xaf,0xc2,0x9, 0x61,0xe0,0x3, +0x1f,0x38,0xe0,0x3, 0x1f,0x9d,0xa6,0xe, 0x15,0xfe,0xa6,0xcc,0x97,0xf, 0xe2,0x0, +0xc6,0x81,0x3f,0x5b,0x3f,0x4d,0xb7,0xf, 0x15,0xfd,0xa6,0xcc,0x97,0xf, 0x36,0xc9, +0xe2,0x0, 0xc6,0x82,0x3f,0x5b,0x3f,0x4d,0xb7,0xf, 0x15,0x77,0x97,0xf, 0x3d,0xe8, +0xe3,0xff,0xc7,0x7b,0xb7,0xf, 0xe7,0xff,0x17,0x10,0xa6,0x4c,0x96,0x8f,0x3f,0x18, +0x36,0x4c,0xe2,0x0, 0xc6,0x8, 0x3e,0xda,0xe2,0x1, 0xc7,0x7f,0x3e,0xcc,0xe2,0x0, +0xcf,0xd, 0xb6,0x8f,0x9e,0x8f,0x2, 0x89,0xea,0x49,0x7f,0xd8,0xe9,0xff,0xc7,0xff, +0x37,0x22,0x3f,0x1f,0xa7,0x8e,0x3f,0x82,0xe0,0x1, 0x14,0x7f,0x38,0x82,0x3c,0x6d, +0xe2,0x1, 0xc4,0x7f,0x38,0x82,0xe0,0x8, 0x36,0xc8,0x38,0x82,0xe0,0x1, 0x1f,0xdc, +0xa7,0x8f,0xe0,0x1, 0xa4,0x7f,0xe2,0x1, 0xc4,0x7f,0x38,0x82,0xe0,0x2, 0x1f,0x91, +0xa7,0x8f,0xa4,0x5f,0x34,0x48,0xe2,0x1, 0xc4,0x7f,0x38,0x82,0xe0,0x2, 0x1e,0x9a, +0x16,0x1, 0x8f,0xd, 0xe0,0x2, 0x1f,0x93,0x3e,0x1e,0xae,0xd, 0xe0,0x1, 0x1e,0xd6, +0x3e,0x9e,0xe0,0x4, 0x8f,0x4f,0x8c,0xd, 0xc7,0x1, 0xe0,0x4, 0xaf,0x4f,0xe0,0x4, +0x8f,0x4f,0x2f,0x6, 0xe0,0x4, 0x8f,0x3f,0xc7,0x1, 0xe0,0x4, 0xaf,0x3f,0xe2,0x0, +0xcd,0xfd,0x1, 0xcd,0xe0,0x1, 0x1f,0xd8,0xe0,0x0, 0x17,0x7c,0xaf,0xf, 0x38,0x82, +0x8, 0xb1,0x2c,0x17,0xe0,0x0, 0x1f,0xb0,0x8f,0x8f,0xe2,0x0, 0xcf,0x81,0xe0,0x0, +0x1, 0x48,0x3c,0x69,0xe0,0x4, 0xd9,0x33,0xe0,0x1, 0x1f,0xcf,0x9f,0x8f,0x27,0x88, +0xe0,0x2, 0x1f,0x13,0xe0,0x1, 0x8f,0xee,0xcf,0x82,0xe0,0x1, 0xaf,0xee,0x8, 0xe1, +0xe2,0x0, 0xcc,0xf, 0x1, 0x3b,0xe2,0x0, 0xcc,0x12,0xe0,0x0, 0x1, 0x52,0xe2,0x0, +0xcc,0x13,0xe0,0x0, 0x1, 0x53,0xe2,0x0, 0xcc,0x11,0x1, 0x3e,0xe2,0x0, 0xcc,0x1, +0xe0,0x2, 0x1, 0x1b,0xe2,0x0, 0xcc,0x9, 0xe0,0x2, 0x1, 0x35,0xe2,0x0, 0xcc,0x5b, +0xe0,0x0, 0x5, 0xce,0xe7,0xff,0x17,0x94,0x3f,0x98,0xe2,0x0, 0xcf,0x81,0xe0,0x2, +0x5, 0xdb,0xe7,0xff,0x17,0x92,0x3f,0x98,0xe2,0x0, 0xcf,0x81,0xe0,0x3, 0x5, 0xb9, +0xe7,0xff,0x17,0x90,0xe0,0xf, 0x3f,0x98,0xe2,0x0, 0xcf,0x8f,0xe0,0x2, 0x2, 0xe8, +0xe2,0x0, 0xcc,0x7b,0xe0,0x3, 0x1, 0x5e,0xe0,0x1, 0x1f,0xcf,0x0, 0xc0,0xe0,0x2, +0x1f,0xe6,0x8f,0x8f,0xe7,0xff,0x2f,0xb7,0x8, 0xe1,0xe0,0x0, 0x1f,0xb0,0x8f,0x8f, +0xe2,0x0, 0xcf,0x81,0x1, 0x1f,0xe0,0x2, 0x1f,0x93,0x17,0x1, 0xe0,0x1, 0xaf,0x7f, +0xe0,0x2, 0xaf,0xf, 0x8, 0xe1,0xe2,0x0, 0xcc,0x81,0x1, 0x29,0xe7,0xff,0x2c,0xb1, +0xe0,0x1, 0x1f,0xf2,0xa7,0xf, 0xe0,0x2, 0x1f,0xe3,0xbf,0xf, 0x8, 0xe1,0xe0,0x2, +0x1f,0x93,0xe0,0x2, 0xac,0xaf,0x8, 0xe1,0xe0,0x2, 0x1f,0x93,0xe0,0x2, 0xac,0xbf, +0x8, 0xe1,0xe0,0x2, 0x1f,0xe6,0x8f,0x8f,0x2f,0xdf,0x8, 0xe1,0xe2,0x0, 0xcc,0x30, +0xe0,0x1, 0x1, 0x6f,0xe2,0x0, 0xcc,0x53,0x2, 0x98,0xea,0x4a,0x7f,0x90,0xe9,0xff, +0xc7,0xff,0xe0,0xe, 0x34,0x22,0x3f,0x9e,0xa7,0x8f,0x3f,0x82,0xe0,0x2, 0x1f,0x93, +0xe0,0x2, 0x8f,0x1f,0xe7,0xff,0x2f,0x5, 0xe0,0x2, 0xac,0x9f,0xe7,0xff,0x16,0x80, +0x87,0xf, 0x3f,0x4d,0xaf,0xf, 0x8, 0xe1,0xe0,0x0, 0x1f,0xb0,0x3e,0xe8,0x8f,0x8f, +0xe2,0x0, 0xcf,0x81,0xe0,0x1, 0x1, 0x62,0x17,0xf8,0xe0,0x2, 0x1f,0x13,0x3f,0x98, +0xe2,0x1, 0xc7,0xff,0x3e,0x9e,0xe2,0x0, 0xcf,0xaf,0xac,0x8d,0x2, 0x89,0xea,0x4c, +0x7e,0xe0,0xe9,0xff,0xc6,0xff,0x37,0xa2,0x3f,0x9d,0xa7,0x8f,0x3f,0x82,0xe0,0x1, +0x1f,0xcf,0x17,0x48,0x3f,0x18,0xe2,0x0, 0xcf,0x1e,0xe0,0x2, 0x5, 0x99,0xe2,0x0, +0xcc,0x57,0xe0,0x2, 0x5, 0x99,0x9f,0xf, 0xe0,0x4, 0xcf,0x0, 0xb7,0xf, 0xe7,0xfe, +0x0, 0xc7,0xe0,0x1, 0x1f,0xcf,0x9f,0xf, 0xcf,0x8, 0xb7,0xf, 0xe7,0xfe,0x0, 0xc0, +0xe0,0x1, 0x1f,0xcf,0x9f,0xf, 0xcf,0x4, 0xb7,0xf, 0xe7,0xfe,0x0, 0xb9,0xe0,0x4, +0x87,0xbe,0xe0,0x2, 0x1f,0x1a,0xe0,0x1, 0x1f,0xcf,0xac,0x8e,0xe7,0xfe,0x0, 0xb0, +0xe0,0x1, 0x1f,0xcf,0x9f,0xf, 0xe0,0x40,0xcf,0x0, 0xb7,0xf, 0x0, 0xd3,0xe0,0x1, +0x1f,0xcf,0x9f,0xf, 0xe0,0x80,0xcf,0x0, 0xb7,0xf, 0x0, 0xcc,0xe0,0x3, 0x8f,0xce, +0xe0,0x3, 0x1f,0x13,0x37,0xa8,0x3f,0x99,0x37,0xa1,0xb7,0x8e,0xe0,0x1, 0x1f,0xcf, +0xe7,0xfe,0x0, 0x96,0xe0,0x3, 0x8f,0xae,0xe0,0x2, 0x1f,0x72,0x37,0xa8,0x3f,0x99, +0x37,0xa1,0xb7,0x8e,0x97,0xe, 0xe0,0x0, 0x1f,0xc8,0xb7,0xf, 0xe7,0xfe,0x0, 0xc6, +0xe0,0x3, 0x8f,0x8e,0x37,0xa8,0x3c,0x9f,0xe0,0x3, 0x1f,0x89,0xb4,0x8f,0xe0,0x1, +0x1f,0xcf,0xe7,0xfd,0x0, 0xfd,0xe0,0x1, 0x1f,0xdc,0x15,0xfb,0xa6,0xf, 0xe0,0x1, +0x1f,0xcf,0xa7,0x4c,0xa6,0xcc,0x37,0x42,0xe2,0x0, 0xc7,0x1, 0xe4,0x0, 0xcf,0x1, +0x37,0x22,0x3e,0xdb,0x3f,0x4d,0xbf,0x4c,0xe7,0xfd,0x0, 0xea,0xe0,0x1, 0x1f,0xcf, +0x9f,0xf, 0xcf,0x2, 0xb7,0xf, 0xe7,0xfd,0x0, 0xe3,0xe0,0x1, 0x1f,0xcf,0x9f,0xf, +0xcf,0x1, 0xb7,0xf, 0xe7,0xfd,0x0, 0xdc,0xe0,0x1, 0x1f,0xcf,0x9f,0xf, 0xe0,0x2, +0xcf,0x0, 0xb7,0xf, 0xe7,0xfe,0x0, 0xff,0xe0,0x1, 0x1f,0xcf,0x9f,0xf, 0xcf,0x10, +0xb7,0xf, 0xe7,0xfd,0x0, 0xcd,0xe0,0x2, 0x1f,0x8d,0x8f,0x8f,0x2f,0x87,0xe0,0x1, +0x1f,0xf2,0xa7,0xf, 0xe0,0x2, 0x1f,0xe3,0xbf,0xf, 0x17,0x0, 0xe0,0x3, 0x1f,0x93, +0xe0,0x2, 0x1e,0x93,0xb7,0xf, 0xe2,0x1, 0xcc,0xad,0xac,0x9d,0xe7,0xff,0x1, 0x2f, +0xe2,0x1, 0xcc,0xae,0xe7,0xfd,0x1, 0xf2,0xdd,0xe2,0xe0,0x1, 0x1f,0xcf,0xe7,0xfd, +0x0, 0xaf,0xe2,0x0, 0xcc,0x85,0xe7,0xfd,0x2, 0xb4,0xe0,0x2, 0x1f,0x13,0xe0,0x1, +0xac,0x9e,0xe0,0x0, 0x2c,0xfb,0xe0,0x2, 0xac,0xde,0xe7,0xfd,0x0, 0xdf,0xe0,0x2, +0x1f,0x13,0xe0,0x6, 0x8f,0x8e,0xe0,0x2f,0x3c,0x8f,0xe7,0xfd,0x2f,0xa2,0x17,0x82, +0xe1,0x2f,0x3c,0x9f,0xe7,0xfd,0x2f,0x9d,0xe0,0x0, 0x1f,0xb0,0x16,0xb0,0x8f,0x8f, +0xe2,0x0, 0xcf,0x81,0xe0,0x1, 0x1, 0xd3,0xe0,0x2, 0x1f,0xe6,0x8f,0x8f,0xe7,0xfe, +0x2f,0x9d,0xe2,0x0, 0xcc,0x4, 0xe7,0xfd,0x1, 0xc, 0xe2,0x0, 0xcc,0x30,0xe7,0xfe, +0x1, 0x95,0x8, 0xe1,0xe0,0x1, 0x1f,0xcf,0xe0,0x0, 0x1e,0x48,0x9f,0xf, 0x15,0x81, +0xe0,0x1, 0xcf,0x0, 0xb7,0xf, 0xe2,0x0, 0xcc,0x6d,0xe0,0x3, 0x1f,0x15,0x9e,0x8c, +0xa7,0xe, 0x3d,0x9d,0xb5,0x8c,0x3f,0x1d,0xac,0x8e,0xe7,0xfc,0x1, 0xe9,0xe0,0x1, +0x1f,0x58,0xe0,0x0, 0x16,0xec,0xae,0x8e,0xe7,0xfc,0x0, 0xe2,0xe2,0x1, 0xcc,0x6, +0xe0,0x0, 0x1, 0x7e,0xe2,0x1, 0xcc,0x7, 0xe0,0x1, 0x1, 0x11,0xe2,0x1, 0xcc,0x8, +0xe7,0xfd,0x1, 0x14,0xe2,0x1, 0xcc,0xb, 0xe0,0x1, 0x1, 0x23,0xe2,0x1, 0xcc,0xc, +0xe0,0x1, 0x1, 0x33,0xe2,0x1, 0xcc,0xd, 0xe0,0x1, 0x1f,0xcf,0xe7,0xfc,0x1, 0xc8, +0xe0,0x3, 0x1f,0x38,0x16,0x60,0xa6,0x8e,0xe2,0x0, 0xc4,0x9f,0xe0,0x1, 0xa7,0x5d, +0x3f,0x5c,0x3f,0x49,0xe0,0x1, 0xbf,0x5d,0xe7,0xfc,0x0, 0xba,0x17,0x1, 0x3f,0x58, +0xe0,0x0, 0x2f,0x4b,0xe2,0x0, 0xcc,0xa, 0xe7,0xfc,0x1, 0xb2,0x9f,0xf, 0xe0,0x8, +0xcf,0x0, 0xb7,0xf, 0xe7,0xfc,0x0, 0xac,0xe2,0x0, 0xcc,0x82,0xe0,0x0, 0x1, 0x58, +0xe0,0x1, 0x17,0xfd,0x3f,0xd9,0xe2,0x0, 0xcf,0x81,0x1, 0x6, 0xe2,0x0, 0xcc,0x84, +0xe7,0xfc,0x1, 0xdc,0x17,0x82,0xe0,0x2, 0xaf,0xde,0xe7,0xfc,0x0, 0xd7,0xe0,0x1, +0x1f,0xcf,0xe0,0x2, 0x1e,0x93,0x9f,0xf, 0xcf,0x40,0xb7,0xf, 0xe0,0x3, 0x8f,0xd, +0xe0,0x3, 0x8d,0x9d,0xe0,0x3, 0x8e,0x1d,0x37,0x28,0xc6,0x1, 0xe0,0x3, 0xae,0x1d, +0x3f,0x1b,0xe0,0x3, 0x8e,0x1d,0xe3,0xff,0xc7,0x7f,0x2e,0x6, 0xe0,0x3, 0x8e,0xd, +0xc6,0x1, 0xe0,0x3, 0xae,0xd, 0xe2,0x0, 0xcc,0x6f,0xe0,0x3, 0x1e,0x9b,0xa6,0x8d, +0x3f,0x1d,0xac,0x8e,0xe7,0xfb,0x1, 0xf4,0xe0,0x1, 0x1f,0x58,0xe0,0x0, 0x16,0xee, +0xae,0x8e,0xe7,0xfb,0x0, 0xed,0x9f,0xf, 0xcf,0x20,0xb7,0xf, 0xe7,0xfb,0x0, 0xe8, +0x3c,0x69,0xdd,0x8, 0xe0,0x1, 0x1f,0xcf,0xe7,0xfb,0x0, 0xe2,0xe0,0x1, 0x1f,0xdc, +0x16,0x78,0xa6,0x8f,0xe2,0x0, 0xc4,0x87,0xe0,0x1, 0xa7,0x2d,0xe0,0x1, 0x1f,0xcf, +0x3f,0x5c,0x3f,0x49,0xe0,0x1, 0xbf,0x2d,0xe7,0xfb,0x0, 0xd2,0x16,0x83,0xe0,0x2, +0xae,0xde,0xe0,0x1, 0x1f,0xcf,0xe7,0xfb,0x0, 0xcb,0xe0,0x1, 0x1f,0xdc,0x17,0x3, +0xa6,0x8f,0x3f,0x59,0xe0,0x1, 0xa7,0xad,0xe7,0x9f,0x16,0x7f,0x37,0x2c,0x3f,0xdc, +0x3f,0xce,0xe0,0x1, 0xbf,0xad,0xe7,0xfb,0x0, 0xf9,0xe0,0x6, 0xac,0x8e,0xe0,0x1, +0x1f,0xcf,0x9f,0xf, 0xe1,0x0, 0xcf,0x0, 0xb7,0xf, 0xe7,0xfb,0x0, 0xb1,0xe0,0x1, +0x1f,0xdc,0x15,0xe0,0xa7,0xf, 0x16,0x9f,0xe0,0x1, 0xa6,0x3e,0x3e,0xd9,0x3e,0x5b, +0xe0,0x1, 0xbe,0x3e,0xe0,0x1, 0xa6,0x3e,0xe0,0x1, 0x1f,0xcf,0x3e,0xcc,0xe0,0x1, +0xbe,0xbe,0xe7,0xfb,0x0, 0x9d,0xe0,0x3, 0x1f,0x8d,0x3c,0x69,0xac,0x8f,0xe0,0x2, +0xd1,0x75,0xe7,0xfb,0x0, 0xd3,0xe2,0x0, 0xcc,0x5b,0x3f,0xe8,0xe0,0x0, 0x5, 0xf4, +0xe7,0xff,0x17,0x16,0x3f,0x18,0xe2,0x0, 0xcf,0x1, 0xe0,0x0, 0x5, 0xf2,0xe0,0x0, +0x17,0x64,0x3f,0x18,0xe2,0x1, 0xc7,0x7f,0xe2,0x0, 0xcf,0x1, 0xe0,0x1, 0x5, 0x8c, +0xe7,0xff,0x17,0x12,0x3f,0x18,0xe2,0x0, 0xcf,0x1, 0xe0,0x1, 0x5, 0x99,0xe7,0xff, +0x17,0x14,0x3f,0x18,0xe2,0x0, 0xcf,0x1, 0xe0,0x0, 0x5, 0xea,0xe7,0xff,0x17,0x18, +0x3f,0x18,0xe2,0x0, 0xcf,0x1, 0xe0,0x1, 0x5, 0xc3,0xe0,0x0, 0x17,0x77,0x3f,0x18, +0xe2,0x1, 0xc7,0x7f,0xe2,0x0, 0xcf,0x1, 0xe0,0x1, 0x5, 0xe0,0xe7,0xff,0x17,0x10, +0x3f,0x18,0xe2,0x0, 0xcf,0xf, 0xe0,0x1, 0x5, 0xee,0xe0,0x0, 0x17,0x7f,0x3f,0x18, +0xe2,0x1, 0xc7,0x7f,0xe2,0x0, 0xcf,0x1, 0xe0,0x1, 0x5, 0x8c,0xe2,0x1, 0xcc,0x6, +0xe0,0x1, 0x1, 0x63,0xe2,0x1, 0xcc,0x7, 0xe0,0x1, 0x1, 0x6f,0xe2,0x1, 0xcc,0x8, +0xe0,0x2, 0x1, 0x3, 0xe2,0x1, 0xcc,0xb, 0xe0,0x2, 0x1, 0x1, 0xe2,0x1, 0xcc,0xc, +0xe0,0x2, 0x1, 0x5, 0xe2,0x1, 0xcc,0xd, 0xe0,0x2, 0x1, 0x5, 0xe0,0x0, 0x17,0x70, +0x3f,0x18,0xe2,0x1, 0xc7,0x7f,0xe2,0x0, 0xcf,0x4, 0xe0,0x1, 0x2, 0xdf,0xe2,0x1, +0xcc,0x12,0xe0,0x2, 0x1, 0x12,0xe0,0x1, 0x5, 0xfe,0xe2,0x1, 0xcc,0x13,0xe0,0x2, +0x1, 0x2, 0xe2,0x1, 0xcc,0x14,0xe0,0x2, 0x1, 0x83,0xe0,0x1, 0x1f,0xd6,0xe0,0x2, +0x8c,0x7f,0x38,0x82,0xe0,0x2, 0x1f,0x13,0x3f,0x9e,0x8c,0xf, 0x38,0x82,0xe0,0x3, +0x1e,0x13,0xe0,0x2, 0x1f,0x63,0x9e,0x8c,0xa7,0xe, 0x15,0x81,0x3d,0x9d,0xe2,0x0, +0xcf,0xeb,0xb5,0x8c,0x3f,0x1d,0x8c,0xe, 0x1, 0x3e,0x38,0x82,0xe0,0x2, 0x1e,0x72, +0xe0,0x3, 0x1f,0x15,0x9e,0x8c,0xa7,0xe, 0x15,0x81,0x3d,0x9d,0xe2,0x0, 0xcf,0xed, +0xb5,0x8c,0x3f,0x1d,0x8c,0xe, 0x1, 0xf2,0xe0,0x1, 0x1f,0xd8,0xe0,0x0, 0x17,0x6c, +0xaf,0xf, 0x38,0x82,0xe0,0x2, 0x1e,0x17,0xe0,0x0, 0x1f,0x4a,0x9e,0x8c,0xa7,0xe, +0x15,0x81,0x3d,0x9d,0xe2,0x1, 0xcf,0x9d,0xb5,0x8c,0x3f,0x1d,0x8c,0xe, 0x1, 0xde, +0xe0,0x1, 0x1f,0xd8,0xe7,0xff,0x17,0x1c,0xaf,0xf, 0x38,0x82,0xe0,0x3, 0x1e,0x9, +0xe0,0x3, 0x1f,0x1b,0x9e,0x8c,0xa7,0xe, 0x15,0x81,0x3d,0x9d,0xe2,0x0, 0xcf,0xef, +0xb5,0x8c,0x3f,0x1d,0x8c,0xe, 0x1, 0xca,0xe0,0x1, 0x1f,0xd8,0xe0,0x0, 0x17,0x6e, +0xaf,0xf, 0x38,0x82,0xe0,0x1, 0x1f,0xd8,0xe0,0x0, 0x17,0x6a,0xaf,0xf, 0x38,0x82, +0xe0,0x2, 0x1f,0x13,0x16,0x60,0xe0,0x2, 0x8e,0xfe,0x3e,0x1d,0xe2,0x0, 0xce,0x1f, +0xe0,0x0, 0x2, 0xdb,0xe0,0x1, 0x1e,0x53,0x3e,0x9c,0xe0,0x44,0x8c,0xd, 0xe0,0x2, +0x8e,0xfe,0xe2,0x1, 0xcf,0x82,0xc6,0x81,0xe0,0x2, 0xae,0xfe,0xe7,0xff,0x1, 0xa7, +0xe0,0x1, 0x1f,0xd8,0xe7,0xff,0x17,0x1, 0xaf,0xf, 0x38,0x82,0xe0,0x2, 0x1e,0x72, +0xe0,0x3, 0x1f,0x15,0x9e,0x8c,0xa7,0xe, 0xe1,0xff,0x15,0xfe,0x3d,0xdd,0x3f,0x1b, +0x97,0xe, 0xe2,0x0, 0xc6,0x81,0xc7,0x1, 0xe3,0xff,0xc7,0x7f,0xe2,0x0, 0xce,0x80, +0x9d,0x8c,0x3c,0x6e,0xe2,0x1, 0xc4,0x7f,0x37,0x48,0x16,0x81,0x3e,0x9b,0xe0,0x68, +0x39,0x2e,0xe2,0x0, 0xcf,0xe9,0xb6,0x8c,0xe7,0xff,0x1, 0x81,0xe0,0x1, 0x1f,0xd8, +0xe0,0x0, 0x17,0x68,0xaf,0xf, 0x38,0x82,0xe0,0x0, 0x1e,0x43,0xe0,0x2, 0x1f,0x25, +0x9e,0x8c,0xa7,0xe, 0x15,0x81,0x3d,0x9d,0xe2,0x1, 0xcf,0x8a,0xb5,0x8c,0x3f,0x1d, +0x8c,0xe, 0xe7,0xfe,0x1, 0xec,0xe0,0x1, 0x1f,0xd8,0xe7,0xff,0x17,0x9, 0xaf,0xf, +0x38,0x82,0xe7,0xf7,0x0, 0xee,0xe0,0x1, 0x1f,0xdc,0xa7,0x8f,0xe0,0x1, 0xa4,0x2f, +0xe2,0x0, 0xc4,0x7, 0x38,0x82,0xe0,0x2, 0x8e,0x7e,0xe0,0x1, 0x1e,0xc2,0x3e,0x9c, +0x8c,0xd, 0xe7,0xff,0x0, 0xa6,0xe0,0x1, 0x1f,0xdc,0xa7,0x8f,0xe0,0x1, 0xa4,0x2f, +0x34,0x4c,0xe2,0x0, 0xc4,0x3, 0x38,0x82,0xe2,0x1, 0xcf,0xfe,0x14,0x0, 0xe7,0xfe, +0x1, 0xc6,0xe0,0x2, 0x1f,0xc8,0x17,0x5, 0x8f,0x8f,0x3f,0x3f,0xe0,0x3, 0x1f,0xb0, +0x3f,0x9e,0x8c,0xf, 0x38,0x82,0x14,0x0, 0x38,0x82,0xe0,0x1, 0x1f,0xdc,0xa7,0x8f, +0xe0,0x1, 0xa4,0x3f,0xe2,0x0, 0xc4,0x1f,0x38,0x82,0xe0,0x3, 0x1f,0x8d,0x8c,0xf, +0x38,0x82,0xe0,0x3, 0x1f,0xb8,0xa7,0x8f,0xe0,0x1, 0xa4,0x5f,0xe2,0x0, 0xc4,0x1f, +0x38,0x82,0xe2,0x1, 0xcc,0x11,0x1, 0x8b,0xe0,0x1, 0x1f,0xd6,0xe0,0x2, 0x8c,0x4f, +0x38,0x82,0xe0,0x1, 0x1f,0xd6,0xe0,0x2, 0x8c,0x6f,0x38,0x82,0xe0,0x1, 0x1f,0xd6, +0xe0,0x2, 0x8c,0x3f,0x38,0x82,0xe0,0x1, 0x1f,0xd6,0xe0,0x2, 0x8c,0x5f,0x38,0x82, +0x8, 0xb3,0xe0,0x2, 0x19,0x13,0xe0,0x2, 0x19,0xfd,0xe0,0x3, 0x8f,0xe2,0xe0,0x1, +0x8f,0x3, 0x3f,0x7f,0x1, 0x16,0xe0,0x3, 0x8f,0xe2,0xe0,0x1, 0x8c,0x93,0xe2,0x0, +0xc7,0xbf,0xe0,0x3, 0xaf,0xe2,0xe0,0x3, 0x8f,0xe2,0x3c,0x6f,0xe0,0x1, 0xaf,0x83, +0xe0,0x3, 0xd1,0x2e,0xe0,0x2, 0x1f,0xe6,0x87,0x8f,0xe2,0x0, 0xc7,0x81,0x2f,0xa2, +0xe0,0x3, 0x8f,0xf2,0xe0,0x1, 0x8f,0x13,0x3f,0x7f,0x1, 0x16,0xe0,0x3, 0x8f,0xf2, +0xe0,0x1, 0x8c,0x3, 0xe2,0x0, 0xc7,0xbf,0xe0,0x3, 0xaf,0xf2,0xe0,0x3, 0x8f,0xf2, +0x3c,0xef,0xe0,0x1, 0xaf,0x93,0xe0,0x3, 0xd1,0x13,0xe0,0x2, 0x1f,0xe6,0x87,0x8f, +0xe2,0x0, 0xc7,0x81,0x27,0x82,0x9, 0xe1,0xe0,0x1, 0x8c,0x13,0x9, 0xa1,0xe0,0xe, +0x0, 0x9f,0xe0,0x1, 0x8c,0x3, 0xd7,0x1b,0x0, 0xdc,0x8, 0xb2,0xe0,0x2, 0x1f,0x93, +0x16,0x85,0xe0,0x5, 0x8f,0x1f,0x3e,0xb8,0xe0,0x3, 0x1f,0xb0,0x39,0x68,0x3f,0x9d, +0x8c,0x3f,0xe0,0x3, 0x1f,0x8e,0x3c,0xee,0x3f,0x92,0xaf,0xf, 0xe0,0x7, 0xd9,0x75, +0xe2,0x0, 0xc9,0x1, 0x1, 0x2, 0x9, 0x61,0x14,0x80,0x14,0x3, 0xe0,0x7, 0xd9,0x6d, +0x14,0x80,0x14,0x4, 0xe0,0x7, 0xd9,0x69,0x14,0x80,0x14,0x0, 0xe0,0x7, 0xd9,0x65, +0x9, 0x61,0x8, 0xb5,0xe0,0x3, 0x19,0x30,0xe0,0x3, 0x1a,0xaf,0x3a,0x68,0xe0,0x3, +0x34,0x23,0x8c,0x32,0xaa,0x2, 0x3c,0xe3,0xe0,0x7, 0xd9,0xd1,0xc1,0x5, 0x39,0x75, +0x1, 0xf9,0x3c,0xe3,0x14,0x3, 0xe0,0x7, 0xd9,0xca,0x3c,0xe3,0x14,0x4, 0xa, 0xa1, +0xe0,0xf3,0x0, 0xc5,0x8, 0xb5,0xe0,0x3, 0x19,0x30,0xe0,0x3, 0x1a,0xaf,0x3a,0x68, +0xe0,0x3, 0x34,0x23,0x8c,0x32,0xaa,0x12,0x3c,0xe3,0xe0,0x7, 0xd9,0xdb,0xc1,0x5, +0x39,0x75,0x1, 0xf9,0x3c,0xe3,0x14,0x3, 0xe0,0x7, 0xd9,0xd4,0x3c,0xe3,0x14,0x4, +0xa, 0xa1,0xe0,0xf3,0x0, 0xcf,0x8, 0xb4,0xe0,0x3, 0x19,0x30,0xe0,0x3, 0x1a,0x2f, +0x39,0xe8,0x8c,0x32,0xa9,0xa2,0x3d,0x63,0x3c,0xe3,0xe0,0x7, 0xd9,0xe8,0xc1,0x5, +0x39,0x74,0x1, 0xf8,0x3d,0x63,0x3c,0xe3,0x14,0x3, 0xe0,0x7, 0xd9,0xe0,0x3d,0x63, +0x3c,0xe3,0x14,0x4, 0xa, 0x21,0xe0,0xf3,0x0, 0xda,0x8, 0xb2,0xe0,0x0, 0x1f,0xcd, +0x39,0x68,0x8f,0x8f,0x2f,0xa2,0xe0,0x2, 0x1f,0x93,0x16,0x85,0xe0,0x3, 0x9f,0x4f, +0x3e,0xb2,0xe0,0x3, 0x1f,0xb0,0xe2,0x1, 0xc7,0x7f,0x3f,0x9d,0x8c,0x3f,0x3c,0xee, +0xaf,0x4f,0xe0,0x7, 0xd8,0xd7,0xe2,0x0, 0xc9,0x1, 0x1, 0x2, 0x9, 0x61,0x14,0x8a, +0x14,0x3, 0xe0,0x7, 0xd8,0xcf,0x14,0x8a,0x14,0x4, 0xe0,0x7, 0xd8,0xcb,0x14,0x85, +0x14,0x0, 0x9, 0x21,0xe0,0xf1,0x0, 0xc6,0xda,0x7e,0x0, 0xde,0x16,0x83,0xe0,0x2, +0x1f,0xc4,0x3e,0xb8,0xe0,0x2, 0x1f,0x13,0xe0,0xc, 0x3f,0x9d,0xe0,0x4, 0x8d,0x8e, +0x8d,0xc, 0x3d,0x7b,0x1, 0x4, 0xe0,0x4, 0x8d,0x8e,0xad,0x8c,0xe0,0xc, 0x3f,0x9d, +0xe0,0x4, 0x8d,0x9e,0x8d,0x1c,0x3d,0x7b,0x1, 0x4, 0xe0,0x4, 0x8d,0x9e,0xad,0x9c, +0x3f,0x9d,0x8e,0x2f,0xe0,0x4, 0x8e,0xae,0x3e,0x7d,0x1, 0x4, 0xe0,0x4, 0x8f,0x2e, +0xaf,0x2f,0xe0,0x10,0x0, 0x8b,0x8, 0xb3,0xe0,0x3, 0x1f,0x38,0xe0,0x2, 0x19,0x48, +0xa7,0x8e,0xa7,0xcf,0xe2,0x0, 0xc7,0x81,0x27,0x86,0x8f,0x82,0xe2,0x0, 0xcf,0x82, +0x1, 0x2, 0x17,0x81,0xe0,0x0, 0x19,0xcd,0xaf,0x82,0xaf,0x83,0x8c,0x82,0x24,0x94, +0xe2,0x0, 0xcc,0x82,0x1, 0x89,0xa7,0x8e,0xa7,0xcf,0xe2,0x0, 0xc7,0x81,0x27,0x83, +0xac,0x82,0xac,0x83,0x9, 0xe1,0x14,0x81,0x14,0x0, 0xe0,0x0, 0xd8,0x1c,0x17,0x81, +0xaf,0x82,0xaf,0x83,0x9, 0xe1,0x3c,0x69,0x9, 0xa1,0xe0,0x10,0x0, 0x94,0x0, 0x0, +0x8, 0xb3,0xe0,0x1, 0x1f,0xf2,0xe0,0x2, 0x19,0x13,0xa6,0x8f,0xe0,0x2, 0x1f,0x63, +0xe0,0x2, 0x8f,0xd2,0xbe,0x8e,0xe0,0x0, 0x27,0xfd,0xe0,0x2, 0x8f,0xd2,0xe2,0x0, +0xcf,0x81,0xe0,0x0, 0x1, 0x77,0xe0,0x2, 0x8f,0xd2,0xe0,0x2, 0x19,0xc8,0xe2,0x0, +0xcf,0x83,0x1, 0x86,0xe0,0x3, 0x1f,0x33,0xe0,0x3, 0x1f,0x9b,0xbf,0xf, 0x16,0x0, +0xe0,0x2, 0x1f,0xe6,0xe0,0x2, 0x1f,0x7d,0x87,0x8f,0xe0,0x3, 0x8f,0x2e,0xe2,0x0, +0xc7,0x81,0xe0,0x3, 0x1e,0x89,0x3f,0x7f,0xb6,0xd, 0xe0,0x0, 0x1, 0x69,0xe0,0x2, +0x1f,0x79,0xe0,0x3, 0x1f,0x95,0xbf,0xf, 0x16,0x0, 0x8f,0x3, 0xe0,0x3, 0x1f,0xb0, +0xe4,0x0, 0xc7,0x5, 0x3f,0x1f,0x87,0xe, 0xe0,0x6, 0xaf,0x12,0x8f,0x3, 0xe4,0x0, +0xc7,0x5, 0x3f,0x1f,0x87,0x1e,0xe0,0x6, 0xaf,0x22,0x8f,0x3, 0xe4,0x0, 0xc7,0x5, +0x3f,0x1f,0x87,0x2e,0xe0,0x6, 0xaf,0x42,0x8f,0x3, 0xe4,0x0, 0xc7,0x5, 0x3f,0x1f, +0x87,0x3e,0xe0,0x6, 0xaf,0x52,0x8f,0x3, 0xe4,0x0, 0xc7,0x5, 0x3f,0x9e,0x8f,0xcf, +0xe0,0x3, 0xb7,0xc2,0x17,0x80,0xe0,0x6, 0xaf,0xb2,0xe0,0x3, 0xb6,0x32,0x8f,0x3, +0xe0,0x3, 0x1f,0x8e,0x8c,0x3, 0x3f,0x9e,0x87,0x8f,0xe0,0x5, 0xaf,0x92,0xd7,0x75, +0x8f,0x3, 0xe0,0x2, 0x1f,0xc4,0xe4,0x0, 0xc7,0x3, 0x3f,0x1f,0x87,0xe, 0xe0,0x4, +0xaf,0x2, 0x8f,0x3, 0xe4,0x0, 0xc7,0x3, 0x3f,0x1f,0x87,0x1e,0xe0,0x4, 0xaf,0x12, +0x8f,0x3, 0xe4,0x0, 0xc7,0x3, 0x3f,0x9e,0x87,0xaf,0xe0,0x4, 0xaf,0xa2,0x81,0x83, +0xe0,0x0, 0x1f,0xcd,0xe0,0x6, 0xa9,0x82,0x87,0x8f,0xe0,0x1, 0xaf,0xc2,0x9, 0xe1, +0xe0,0x2, 0x19,0xc8,0x8f,0x83,0xe2,0x0, 0xcf,0x82,0xe7,0xff,0x1, 0x8d,0xe0,0x3, +0x1f,0x32,0xe0,0x3, 0x1f,0x9b,0xbf,0xf, 0xe7,0xff,0x0, 0x8b,0xe0,0x2, 0x1f,0x78, +0xe0,0x3, 0x1f,0x95,0xbf,0xf, 0xe7,0xff,0x0, 0x99,0x8, 0xb1,0xe0,0x3, 0x1f,0x93, +0x17,0x0, 0x14,0x1, 0xb7,0xf, 0xe0,0x0, 0xde,0xd7,0xdf,0x2e,0xe0,0x0, 0x1f,0xcd, +0x8c,0xf, 0xe0,0x0, 0xdd,0x3d,0x8, 0xa1,0xe7,0xfe,0x0, 0xd4,0x8, 0xb7,0xf8,0x0, +0xc, 0x38,0xe0,0x2, 0x1f,0xc8,0xe0,0x2, 0x19,0x93,0x8a,0xf, 0xe0,0x1, 0x19,0x4f, +0x13,0x5, 0xe0,0x3, 0x1a,0xb0,0x3b,0x34,0xe0,0x6, 0x8d,0x13,0xe0,0x6, 0x8d,0xa3, +0xe0,0x6, 0x8e,0x43,0xe0,0x3, 0x9e,0xc3,0x9f,0x2, 0xe0,0xf, 0x3a,0x96,0x8b,0x8f, +0xf0,0x0, 0x8c,0x1f,0xad,0xf, 0xe2,0x2, 0xc7,0x0, 0xad,0x9f,0xae,0x2f,0xae,0xcf, +0xe0,0x1, 0x2f,0x72,0x9f,0x82,0xe2,0x0, 0xc7,0x81,0x27,0x91,0x9f,0x82,0xe3,0xff, +0xc7,0xfe,0xb7,0x82,0xe0,0x6, 0x8f,0x93,0x37,0xa3,0xe2,0x0, 0xcf,0x86,0xe0,0x0, +0x2, 0x76,0xe0,0xf, 0x3a,0x96,0xab,0x8f,0xe0,0x6, 0xab,0x93,0x9f,0x82,0xe2,0x0, +0xc7,0x82,0x27,0x91,0x9f,0x82,0xe3,0xff,0xc7,0xfd,0xb7,0x82,0xe0,0x6, 0x8f,0xa3, +0x37,0xa3,0xe2,0x0, 0xcf,0x8b,0xe0,0x0, 0x2, 0x73,0x3a,0x96,0xf0,0x0, 0xac,0x15, +0xf0,0x6, 0xac,0x23,0x9f,0x82,0xe2,0x0, 0xc7,0x84,0xe0,0x0, 0x2f,0xfe,0x9f,0x82, +0xe2,0x0, 0xc7,0x88,0xe0,0x1, 0x2f,0x88,0x9f,0x82,0xe2,0x0, 0xc7,0xa0,0xe0,0x1, +0x2f,0x8f,0x9f,0x82,0xe2,0x0, 0xc7,0xc0,0xe0,0x1, 0x2f,0x9d,0x9f,0x82,0xe2,0x1, +0xc7,0x80,0xe0,0x1, 0x2f,0xaa,0x9f,0x82,0xe2,0x4, 0xc7,0x80,0x27,0xa6,0x9f,0x82, +0xe0,0x3, 0x1f,0x38,0xe3,0xfb,0xc7,0xff,0xa6,0x8e,0xb7,0x82,0xe7,0xbf,0x17,0x7f, +0xe0,0x1, 0xa7,0xed,0xe7,0xc0,0x15,0x80,0x3f,0xde,0xe0,0x1, 0xbf,0xed,0xe0,0x0, +0x1f,0xc4,0xe0,0xb, 0x8f,0x23,0xa6,0xf, 0xe4,0x0, 0xc7,0x32,0xe0,0x1d,0xc6,0x40, +0xa7,0xfc,0xe2,0x3f,0xc7,0x7e,0x3f,0xdb,0x3f,0xce,0xbf,0xfc,0xe0,0x1, 0xa7,0xed, +0xe0,0x40,0xcf,0x80,0xe0,0x1, 0xbf,0xed,0x9f,0x82,0xe2,0x8, 0xc7,0x80,0xe0,0x1, +0x2f,0x93,0x9f,0x82,0xe2,0x20,0xc7,0x80,0x27,0x85,0x9f,0x82,0xe3,0xdf,0xc7,0xff, +0xb7,0x82,0x9f,0x82,0xe2,0x40,0xc7,0x80,0xe0,0x0, 0x2f,0xfe,0x9f,0x82,0xe2,0x80, +0xc7,0x80,0x2f,0xa0,0xf8,0x0, 0xc, 0x28,0xb, 0xe1,0xe0,0x6, 0x8c,0x13,0xe0,0x3, +0xdd,0x6d,0xe7,0xff,0x24,0x8, 0xe0,0x6, 0x8c,0x13,0xdd,0xdc,0xe0,0x0, 0x1f,0xcd, +0x8f,0x8f,0xe7,0xff,0x27,0x85,0xd8,0xc7,0xe7,0xff,0x0, 0x82,0xe0,0x6, 0x8c,0x23, +0xdd,0xea,0xe0,0x0, 0x1f,0xcd,0x8f,0x8f,0xe7,0xff,0x27,0x8e,0xd8,0xbc,0xe7,0xff, +0x0, 0x8b,0x9f,0x82,0x3c,0x64,0xe3,0x7f,0xc7,0xff,0xb7,0x82,0xf8,0x0, 0xc, 0x28, +0xb, 0xa1,0xe7,0xfa,0x0, 0xd7,0x9f,0x82,0x3c,0x64,0xe3,0xff,0xc7,0xfb,0xb7,0x82, +0x9f,0x82,0xe0,0x20,0xcf,0x80,0xb7,0x82,0xde,0x1, 0x9f,0x82,0xe2,0x0, 0xc7,0x88, +0xe7,0xfe,0x27,0xfc,0x9f,0x82,0xe3,0xff,0xc7,0xf7,0xb7,0x82,0xe0,0x6, 0x8c,0x43, +0xdd,0xdb,0x9f,0x82,0xe2,0x0, 0xc7,0xa0,0xe7,0xfe,0x27,0xf5,0x9f,0x82,0x3c,0x64, +0xe3,0xff,0xc7,0xdf,0xb7,0x82,0x9f,0x82,0xe0,0x4, 0xcf,0x80,0xb7,0x82,0x9f,0x82, +0xe0,0x20,0xcf,0x80,0xb7,0x82,0xdd,0xe2,0x9f,0x82,0xe2,0x0, 0xc7,0xc0,0xe7,0xfe, +0x27,0xe7,0xe0,0x2, 0x1f,0xac,0x9f,0x2, 0x8e,0x8f,0xe3,0xff,0xc7,0x3f,0xe4,0x0, +0xc6,0x9c,0x3c,0xe4,0x3f,0x9d,0xa4,0x4f,0xb7,0x2, 0xd4,0xc7,0x9f,0x82,0xe2,0x1, +0xc7,0x80,0xe7,0xfe,0x27,0xda,0x9f,0x82,0xe3,0xfe,0xc7,0xff,0xb7,0x82,0xd5,0xc4, +0xe7,0xfe,0x0, 0xd3,0x9f,0x82,0x3c,0x64,0xe3,0xfd,0xc7,0xff,0xb7,0x82,0xdd,0x4e, +0xe7,0xfe,0x0, 0x8a,0x9f,0x82,0x3c,0x64,0xe3,0xbf,0xc7,0xff,0xb7,0x82,0xdd,0xdf, +0xe7,0xfe,0x0, 0xfe,0x9f,0x82,0x3c,0x64,0xe3,0xf7,0xc7,0xff,0xb7,0x82,0xe0,0x1, +0x8c,0xa3,0xe0,0x3, 0xdc,0xff,0xe7,0xfe,0x0, 0xe6,0x8, 0xb4,0xe0,0x2, 0x19,0x13, +0x8f,0xc2,0xe2,0x0, 0xcf,0x85,0x1, 0x21,0xe2,0x0, 0xcf,0x84,0x1, 0x36,0xe0,0x1, +0x8f,0xf2,0x2f,0x98,0xe0,0x1, 0x1a,0x4f,0x99,0x84,0x29,0x82,0xa, 0x61,0x14,0x1, +0xe0,0x0, 0xdd,0x8a,0xe0,0x43,0x39,0x93,0xe2,0x0, 0xc9,0x80,0x4, 0x13,0xde,0xb7, +0xe0,0x1, 0x8f,0xe2,0xe2,0x1, 0xc7,0xfd,0xe0,0x1, 0xaf,0xe2,0xa, 0x21,0xe0,0x1a, +0x0, 0xaa,0xe0,0x7, 0xd3,0x9f,0x0, 0xe7,0x17,0x81,0xaf,0xc2,0x17,0x82,0xaf,0xc2, +0x0, 0xdf,0x9f,0x84,0xe0,0x2, 0x1f,0x48,0xe2,0xff,0xc7,0xff,0xb7,0x84,0xe0,0x6, +0x8e,0x82,0x8f,0x8e,0x3e,0xff,0x1, 0x64,0xe0,0x6, 0x87,0x82,0xaf,0x8e,0xde,0x86, +0x14,0x1, 0xe0,0x3, 0xd8,0xdf,0x0, 0xdc,0xd8,0x27,0x0, 0xca,0xe0,0x2, 0x1f,0x93, +0xe0,0x2, 0x8f,0x5f,0x27,0x12,0xe0,0x2, 0x8f,0x5f,0xe2,0x0, 0xcf,0x1, 0x1, 0xd, +0xe0,0x2, 0x8f,0x5f,0xe2,0x0, 0xcf,0x3, 0x1, 0x1d,0xe0,0x0, 0x1f,0x33,0x8e,0x8e, +0xe2,0x0, 0xce,0x81,0x1, 0x27,0x38,0x82,0xe0,0x2, 0x1f,0x48,0x8f,0xe, 0xe2,0x0, +0xcf,0x2, 0xe0,0x2, 0x1f,0x2c,0x8e,0x8e,0xe4,0x0, 0xc6,0x9c,0x3f,0x1d,0x1, 0x2f, +0xa6,0xce,0xe0,0x3, 0x1f,0x1b,0xbe,0x8e,0xe0,0x2, 0x8f,0x5f,0xe2,0x0, 0xcf,0x3, +0x1, 0xe5,0xe0,0x2, 0x1f,0x2c,0x8e,0x8e,0xe4,0x0, 0xc6,0x9c,0x3f,0x1d,0xa6,0xce, +0xe0,0x3, 0x1f,0x1b,0xbe,0x8e,0xe0,0x0, 0x1f,0x33,0x8e,0x8e,0xe2,0x0, 0xce,0x81, +0x1, 0xdb,0xe0,0x2, 0x1d,0xc8,0xe0,0x3, 0x1e,0x30,0x8e,0x8b,0xe4,0x0, 0xc6,0x85, +0x3e,0x9c,0x86,0x8d,0xe0,0x6, 0xae,0x9f,0x8e,0x8b,0xe4,0x0, 0xc6,0x85,0x3e,0x1d, +0x86,0x1c,0xe0,0x6, 0xae,0x2f,0x17,0x80,0xaf,0x8e,0x38,0x82,0xa7,0x4e,0xe0,0x3, +0x1e,0x9b,0xe0,0x6, 0xc7,0x26,0xbf,0xd, 0xe7,0xff,0x0, 0xb4,0x8, 0xb1,0xe0,0x2, +0x1e,0xc0,0xe0,0x2, 0x1e,0x12,0x17,0x80,0xe0,0x4, 0xaf,0xdd,0x17,0x80,0x97,0xc, +0xe3,0xfe,0xc7,0x7f,0xb7,0xc, 0xe0,0x3, 0x1f,0x13,0xe0,0x4, 0x8e,0xdd,0xb7,0x8e, +0xe0,0x2, 0x1f,0x72,0xb7,0x8e,0xe0,0x0, 0x1f,0x48,0xb7,0x8e,0xe0,0x2, 0x1f,0x93, +0x8f,0x6f,0xe0,0x0, 0x1f,0xae,0xae,0x8f,0xe0,0x2, 0x1f,0xfa,0xaf,0xf, 0xe0,0x1, +0xdf,0x41,0xdd,0x67,0x14,0x0, 0xe0,0x3, 0xd8,0x5d,0xe0,0x1, 0x1f,0xf2,0xe0,0xc, +0x15,0x52,0xa4,0xf, 0xe0,0x2, 0x1f,0x81,0xa4,0x8f,0xe0,0x8, 0xd0,0x8b,0xe0,0x3, +0xd6,0x1e,0xe0,0x2, 0x1f,0xf7,0xe0,0x2, 0x1f,0x48,0x8f,0x8f,0x8f,0xe, 0x37,0xde, +0xe2,0x0, 0xc7,0x81,0x27,0x82,0x8, 0xe1,0x8, 0xa1,0xe0,0x18,0x0, 0xf4,0xe0,0x0, +0x1f,0xcd,0xe0,0x2, 0x1f,0x13,0x87,0x8f,0xe0,0x1, 0x1e,0xcc,0xe0,0x1, 0xaf,0xce, +0x14,0x3, 0x86,0x8d,0xe0,0x2, 0x1f,0xde,0xae,0xfe,0xe0,0x3, 0x16,0x91,0x8d,0xee, +0xe0,0x2, 0x1e,0x7a,0x17,0x0, 0x3e,0x9f,0xe0,0x3, 0xc7,0x90,0xad,0x8c,0xaf,0xd, +0xaf,0xf, 0xe0,0x3, 0x0, 0xa8,0x0, 0x0, 0x8, 0xb1,0xe0,0x1, 0x1f,0xf2,0xe0,0x0, +0x1c,0x1f,0xa4,0x8f,0xe0,0xc, 0x15,0x52,0xe0,0x8, 0xd0,0x54,0xe0,0x0, 0x1e,0x1e, +0xe0,0x0, 0x1f,0x1d,0xe0,0x0, 0x1d,0x1c,0x9f,0x9e,0xe0,0x43,0x3d,0x9f,0xe2,0x0, +0xcd,0x80,0xe0,0x41,0x3e,0xcf,0xe3,0xff,0xc6,0xff,0xe0,0x6f,0x3d,0x2d,0xe0,0x80, +0xb7,0x9e,0x9e,0x8c,0x3e,0xff,0x3, 0x82,0xb7,0x8c,0x3f,0x7a,0xc6,0x2, 0x1, 0xed, +0x8, 0xe1,0x0, 0x0, 0x8, 0xb6,0xea,0x11,0x7b,0x52,0xe0,0x2, 0x1a,0x13,0x99,0x6, +0xe0,0x2, 0xa9,0x44,0xe0,0x2, 0x8f,0x94,0xe2,0x0, 0xcf,0x81,0x1, 0xa, 0x21,0x8, +0xe0,0x2, 0x1f,0x12,0x16,0x80,0x97,0x8e,0xb6,0x86,0xcf,0x84,0xb7,0x8e,0xb, 0x61, +0x87,0x84,0xe7,0xff,0x17,0x0, 0x3f,0xce,0xe2,0x0, 0xc9,0x5, 0xaf,0x84,0x2, 0x9d, +0xe0,0x0, 0x1c,0x1e,0xe0,0xc, 0x15,0x52,0x14,0x80,0xe0,0x8, 0xd0,0x4d,0xe0,0x2, +0x1c,0xa, 0xe0,0xc, 0x15,0x52,0x14,0x80,0xe0,0x8, 0xd0,0x46,0xe0,0x0, 0x1c,0x1f, +0xe0,0xc, 0x15,0x52,0x14,0x80,0xe0,0x8, 0xd0,0x3f,0xe0,0x2, 0x1c,0x9, 0xe0,0xc, +0x15,0x52,0x14,0x80,0xe0,0x8, 0xd0,0x38,0xc1,0x1, 0xe3,0xff,0xc1,0x7f,0xe2,0x0, +0xc9,0x5, 0xb1,0x6, 0x2, 0xb8,0xe0,0x2, 0x8f,0xb4,0xe0,0x2, 0x8f,0x24,0x37,0xa8, +0x3f,0x9e,0xc7,0x85,0x39,0x7f,0x1, 0xcc,0xe0,0x3, 0x1f,0x13,0x17,0x80,0xe0,0x2, +0x1e,0x97,0xb7,0x8e,0x11,0x0, 0xb7,0x8d,0x12,0x8a,0xe0,0x0, 0x1f,0x1e,0xe0,0x2, +0xaf,0x94,0x39,0xee,0xe0,0x2, 0x1f,0xe3,0xbf,0xf, 0x9a,0x3, 0xe2,0x0, 0xca,0x46, +0x5, 0x8c,0x21,0x1b,0xe0,0x40,0x9f,0x93,0x9c,0x13,0x3c,0xe5,0x3c,0x1f,0xe0,0x7, +0xdf,0x9e,0xe0,0x8, 0x3a,0x28,0xb4,0x3, 0xc1,0x1, 0xe3,0xff,0xc1,0x7f,0xe2,0x6, +0xc9,0x29,0xc1,0x82,0x1, 0xeb,0x17,0x80,0xb7,0x86,0x17,0x1, 0xe0,0x2, 0x1f,0x8d, +0xaf,0xf, 0xb, 0x61,0xdf,0x62,0x0, 0xc8,0x3f,0xe2,0x0, 0xe7,0x8, 0xb7,0xf8,0x0, +0xc, 0x3b,0xe0,0x3, 0x19,0xc7,0xde,0xfb,0x8f,0x83,0xe2,0x0, 0xcf,0x83,0xe0,0x0, +0x1, 0xc0,0xe0,0x2, 0x19,0x13,0xe0,0x2, 0x1b,0xfa,0xe0,0x2, 0x1a,0xe6,0xf0,0x1, +0x1d,0xf2,0xf0,0x2, 0x1d,0x9, 0xe0,0x13,0x12,0x44,0x13,0x1, 0xf0,0x0, 0x14,0x0, +0xf0,0xc, 0x14,0xd2,0x0, 0x86,0xdf,0x24,0x8f,0x83,0xe2,0x0, 0xcf,0x83,0x1, 0xa8, +0xde,0x45,0xe0,0x0, 0xde,0xf4,0xde,0x83,0x3c,0x64,0xe0,0x6, 0xd9,0xf8,0x8f,0x82, +0x37,0xc7,0x27,0xf2,0x3c,0x66,0xe0,0x0, 0xdb,0xd7,0xe0,0x1, 0xde,0x77,0xe0,0x2, +0xdb,0x9f,0x8f,0x87,0xe2,0x0, 0xcf,0x81,0x1, 0x1d,0xe0,0x2, 0x8f,0x92,0x2f,0x9a, +0x8f,0x85,0x27,0x82,0xdf,0x48,0xe0,0x2, 0x8f,0x92,0x2f,0xde,0x87,0x82,0xe2,0x0, +0xc7,0xff,0xaf,0x82,0xde,0xfd,0x8f,0x83,0xe2,0x0, 0xcf,0x83,0x1, 0x5a,0xe0,0x1, +0x1f,0xc5,0x17,0x1, 0x14,0x1, 0xaf,0xf, 0xf8,0x0, 0xd, 0xa8,0xb, 0xa1,0xe0,0x17, +0x0, 0xb3,0x8f,0x85,0x27,0xe9,0xe0,0x3, 0xdf,0xee,0xe0,0x2, 0x8f,0x92,0xe2,0x0, +0xcf,0x81,0x1, 0xc, 0xe0,0x3, 0xde,0x4b,0xef,0xfe,0xd9,0xbd,0xe0,0x1, 0xdf,0xcc, +0xe8,0x40,0x3c,0x68,0xe0,0x4, 0xdf,0xe4,0x0, 0xd4,0xe8,0x0, 0xa4,0x8b,0xe8,0x40, +0x3d,0x69,0xe8,0x40,0x3c,0x6a,0xe0,0x7, 0xdf,0x4d,0x0, 0xed,0x8, 0xb1,0xe2,0x0, +0xcc,0x66,0x1, 0x2f,0x5, 0x98,0xe2,0x1, 0xcc,0x8, 0x1, 0x9, 0xe2,0x1, 0xcc,0x2a, +0x1, 0xa3,0xe0,0x3, 0x1f,0x9a,0x17,0x5, 0xaf,0xf, 0x8, 0xe1,0xe0,0x3, 0x1f,0x9a, +0x8f,0x8f,0xe2,0x0, 0xcf,0x85,0x1, 0xfa,0x14,0x1, 0xe0,0x1, 0xd9,0x9f,0x8, 0xa1, +0xe0,0x32,0x0, 0xf6,0xe2,0x0, 0xcc,0x55,0x1, 0x8f,0xe0,0x3, 0x1f,0x9a,0x8f,0x8f, +0xe2,0x0, 0xcf,0x85,0x1, 0xeb,0x14,0x1, 0xe0,0x1, 0xd9,0x90,0xe0,0x1, 0xd9,0x42, +0x8, 0xa1,0xe0,0x32,0x0, 0xd4,0xe0,0x3, 0x1f,0x9a,0x17,0x1, 0xaf,0xf, 0x8, 0xe1, +0xe0,0x3, 0x1f,0x9a,0x8f,0x8f,0xe2,0x0, 0xcf,0x85,0x1, 0xd8,0x14,0x1, 0xe0,0x1, +0xd9,0x7d,0xe0,0x1, 0x1f,0xdc,0x17,0x7f,0xa7,0x8f,0xe0,0x7, 0xaf,0x3f,0x8, 0xe1, +0x8, 0xb4,0xe0,0x1, 0x1a,0x72,0xe0,0xc, 0x11,0xd2,0xa4,0x84,0xe0,0x3, 0x1c,0x10, +0x3d,0x63,0xe0,0x7, 0xde,0xff,0xe0,0x4, 0xdc,0x37,0xe0,0x0, 0x1c,0x8d,0xe0,0x0, +0x1c,0x12,0xe0,0x3, 0x19,0x3e,0xe0,0x3, 0x15,0x40,0xe0,0x7, 0xde,0xf3,0x3d,0x63, +0x14,0x80,0x3c,0x62,0xe0,0x7, 0xdf,0x28,0xa4,0x84,0x3d,0x63,0x3c,0x62,0xe0,0x7, +0xde,0xe9,0x17,0xac,0xb7,0x82,0xa, 0x61,0x8, 0xb1,0xe0,0x1, 0x1f,0xf2,0xe0,0x3, +0x1c,0x10,0xa4,0x8f,0xe0,0xc, 0x15,0x52,0xe0,0x7, 0xde,0xdc,0xe0,0x0, 0x1c,0x8d, +0xe0,0x0, 0x1c,0x12,0xe0,0x3, 0x15,0x40,0xe0,0x7, 0xde,0xd4,0x8, 0xe1,0x8, 0xb1, +0xe0,0x1, 0x1f,0xf2,0xe0,0x3, 0x1c,0x90,0xa4,0xf, 0xe0,0xc, 0x15,0x52,0xe0,0x7, +0xde,0xc9,0xe0,0x1, 0x1f,0xd7,0xe0,0x3, 0x8f,0xbf,0x2f,0x85,0xe0,0x3, 0xd3,0x7f, +0xef,0xfe,0xd9,0x21,0x14,0x1, 0xe0,0x6, 0xd6,0xe, 0x14,0x1, 0x8, 0xa1,0xe0,0x9e, +0x0, 0xc7,0xe0,0x2, 0x1f,0x40,0xe0,0x3, 0x1f,0xc7,0xe0,0x4, 0x87,0x7e,0xaf,0xf, +0x38,0x82,0x8, 0xb2,0xe0,0x2, 0x1f,0xc0,0x17,0x0, 0xe0,0x4, 0xaf,0x5f,0x17,0x0, +0xe0,0x4, 0x8e,0x5f,0xe0,0x0, 0x1e,0xae,0xe0,0x2, 0x1f,0xec,0xe0,0x2, 0x19,0x7d, +0xae,0xd, 0xb7,0xf, 0xe0,0x19,0x17,0x1c,0xe0,0x2, 0x1e,0xc8,0x3f,0x12,0x17,0x81, +0xaf,0x8d,0xaf,0x8e,0xe0,0x1, 0xdd,0x3e,0xdb,0x64,0xe0,0x1b,0x14,0x2c,0xe0,0x6, +0xd8,0xf6,0xe0,0x6, 0xd2,0x9b,0xe0,0x3, 0xd4,0x22,0x14,0x1, 0xe0,0x3, 0xd6,0x52, +0xe0,0x5, 0xd7,0x9a,0xe0,0x19,0x17,0x1d,0x17,0x87,0x3f,0x12,0xaf,0x8e,0xe0,0x19, +0xc1,0x1e,0xaf,0x82,0x9, 0x61,0x0, 0x0, 0x8, 0xb7,0xf8,0x0, 0xc, 0x3e,0xe0,0x1, +0x1f,0xc5,0xe0,0x2, 0x19,0x40,0x8f,0x8f,0x27,0x87,0xe0,0xd, 0x8f,0xe2,0xe2,0x0, +0xcf,0x81,0xe0,0x2, 0x1, 0x19,0xdf,0xbe,0xe0,0x3, 0x19,0xc7,0xe0,0x0, 0x1b,0xb8, +0xf0,0x0, 0x1d,0x9a,0xe0,0x0, 0x1a,0x39,0xe0,0x0, 0x1a,0xbc,0xf0,0x1, 0x1d,0x13, +0xf0,0x1, 0x1c,0x92,0xf0,0x2, 0x1c,0x66,0xe0,0x1, 0x1b,0x69,0xf0,0x1, 0x1e,0x68, +0x8f,0x83,0xe2,0x0, 0xcf,0x81,0xe0,0x1, 0x1, 0x96,0x87,0x84,0x17,0x0, 0xc7,0x81, +0xe2,0x1, 0xc7,0xff,0xe0,0x2, 0xaf,0x92,0xe0,0xa, 0x8e,0x82,0xaf,0x7, 0xe8,0x0, +0xaf,0xb, 0xaf,0x84,0xe0,0x1, 0x2e,0x98,0x9f,0x85,0xe2,0x0, 0xcf,0xe3,0xe0,0x1, +0x2, 0x93,0x9f,0x85,0xc7,0x81,0xb7,0x85,0xe0,0x1, 0xd3,0x77,0xe0,0x4, 0xd7,0xbe, +0xe0,0x0, 0xdd,0x95,0xe8,0x0, 0x8f,0x8a,0xe8,0x0, 0x8c,0x9, 0x37,0xa8,0x3c,0x4f, +0xe0,0x6, 0xd8,0x95,0xe0,0x2, 0xd9,0x94,0xe0,0x4, 0xde,0x97,0xe8,0x0, 0x8f,0x88, +0xe0,0x0, 0x27,0xfe,0x8f,0x86,0xe0,0x0, 0x27,0xdb,0xe0,0x3, 0xde,0xac,0xe8,0x0, +0x8f,0x8c,0xe2,0x0, 0xcf,0x84,0xe0,0x1, 0x1, 0x15,0xf0,0x1, 0x1f,0x57,0xe8,0x3, +0x8f,0xbe,0xe0,0x0, 0x27,0xf7,0xf0,0x2, 0x1e,0xc8,0xe0,0x1, 0xde,0x85,0xe8,0x0, +0x8c,0x8d,0xe8,0x0, 0x8c,0xc, 0xe0,0x2, 0xd9,0x56,0xe8,0x0, 0x8f,0xd, 0xe8,0x0, +0x8f,0x8d,0xe2,0x0, 0xcf,0x81,0xe0,0x0, 0x1, 0x6b,0xe0,0x0, 0x1f,0x93,0x17,0x0, +0xaf,0xf, 0x8f,0x86,0x27,0xb4,0x14,0x1, 0xe0,0x6, 0xd5,0x4d,0x14,0x0, 0xe0,0x4, +0xde,0x87,0x8f,0x87,0xe2,0x0, 0xcf,0x81,0xe0,0x1, 0x1, 0x23,0xe2,0x0, 0xcf,0x82, +0xe7,0xff,0x1, 0x18,0xe8,0x0, 0x8f,0x8d,0xe2,0x0, 0xcf,0x82,0xe0,0x1, 0x1, 0x1d, +0xe0,0x4, 0x8f,0xc2,0xe2,0x0, 0xcf,0x81,0xe0,0x1, 0x1, 0x6, 0xe0,0x2, 0xd6,0xb2, +0xe0,0x2, 0xde,0x2f,0x14,0x2, 0xe0,0x6, 0xd5,0x2e,0xe0,0x6, 0xd5,0xd3,0x14,0x3, +0xe0,0x6, 0xd5,0x29,0xe0,0x4, 0xd4,0xd0,0x14,0x4, 0xe0,0x6, 0xd5,0x24,0xe0,0x6, +0xd8,0x4d,0xef,0xff,0xd1,0xea,0x8f,0x86,0xe0,0x0, 0x2f,0xca,0x87,0x83,0xe0,0x5, +0xd6,0xd2,0xe0,0x4, 0x87,0xf2,0xaf,0x83,0x8f,0x83,0xe2,0x0, 0xcf,0x81,0xe7,0xfe, +0x1, 0x6e,0x14,0x1, 0xe0,0x0, 0xda,0x8, 0xe0,0x4, 0x8f,0xc2,0xe2,0x0, 0xcf,0x81, +0x1, 0x87,0xe0,0x1, 0x1f,0xdc,0xa7,0xf, 0xa7,0xce,0xcf,0x84,0xbf,0xce,0xf8,0x0, +0xf, 0x28,0xb, 0xe1,0x17,0x80,0xb7,0x85,0xe7,0xfe,0x0, 0xf0,0x8f,0x86,0xe7,0xfe, +0x27,0xd1,0xe0,0x1, 0xd6,0x4a,0xe0,0x4, 0x87,0xf2,0xaf,0x83,0xe7,0xfe,0x0, 0xca, +0xe0,0x3, 0xd2,0x5d,0xef,0xfe,0xd7,0xff,0xe7,0xff,0x0, 0x87,0xe8,0x0, 0x8f,0x8c, +0x16,0x84,0xe0,0x2f,0x3f,0x8d,0xe7,0xff,0x27,0x96,0xe0,0x3, 0x1f,0xac,0xe4,0x0, +0xc7,0xe, 0x3f,0x1f,0x8f,0xbe,0xe7,0xff,0x27,0x8e,0xde,0x83,0xe7,0xff,0x0, 0x8b, +0xe0,0x3, 0x1f,0xc0,0x17,0x1, 0xaf,0xf, 0xe7,0xfe,0x0, 0xe9,0xe0,0x6, 0xdf,0xa5, +0xe0,0x0, 0x1f,0x87,0xe8,0x3, 0x87,0x3e,0x86,0xf, 0xe0,0x2, 0x1f,0xdf,0x86,0x8f, +0xe0,0x0, 0x1f,0x85,0xae,0xf, 0xe0,0x2, 0x1f,0xdd,0xae,0x8f,0x16,0x80,0xe0,0x2, +0x1f,0xdb,0xae,0x8f,0xe0,0x1, 0x1f,0xcc,0x87,0x8f,0xe0,0x5, 0xaf,0xb2,0xe0,0x2, +0x1f,0xa8,0xaf,0xf, 0xe0,0x1, 0xd6,0x9, 0xef,0xfe,0xdf,0xcd,0xef,0xfe,0xd8,0x55, +0xe7,0xff,0x0, 0xbb,0xe0,0x1, 0x1f,0xdc,0xa7,0xf, 0xa7,0xce,0xcf,0x84,0xbf,0xce, +0xe7,0xfe,0x0, 0xf6,0xe0,0x2, 0x1f,0x7a,0xaf,0x8e,0xe7,0xfd,0x0, 0xe7,0xde,0x80, +0x8f,0x87,0xe7,0xfe,0x0, 0xdd,0xde,0x69,0xe7,0xfe,0x0, 0xe4,0x8, 0xb2,0xe0,0x2, +0x1f,0x40,0x16,0x81,0xe0,0x4, 0xae,0xfe,0x14,0x2, 0xe0,0x4, 0x87,0x7e,0xe0,0x3, +0x1e,0xc7,0xe0,0x2, 0x1f,0xfd,0xaf,0xd, 0x16,0x80,0xe0,0x2, 0x1f,0x13,0xe0,0x1, +0x1e,0x5c,0xae,0x8e,0xe0,0x19,0x16,0x9d,0x3e,0x9f,0x17,0x7, 0xa1,0xc, 0xaf,0xd, +0xe0,0x19,0xc7,0x9e,0xaf,0xf, 0x17,0x7b,0xa7,0xc2,0x3f,0xde,0xbf,0xc2,0xe0,0x1, +0xd7,0x95,0xa7,0xc2,0xcf,0x84,0xbf,0xc2,0x9, 0x61,0x0, 0x0, 0x8, 0xb2,0xe0,0x2, +0x19,0x40,0xe0,0x6, 0xd7,0x22,0xe0,0x2, 0xda,0xa7,0xe0,0x2, 0xdb,0xf8,0xe0,0x1, +0xdb,0xbb,0xe0,0x4, 0xd0,0x21,0xe0,0x4, 0xd1,0x49,0xdf,0xc9,0xe0,0x4, 0x8f,0xf2, +0xe2,0x0, 0xcf,0x81,0x1, 0xa, 0xe2,0x0, 0xcf,0x83,0x1, 0xf9,0xdd,0x50,0xe0,0x4, +0x8f,0xf2,0xe2,0x0, 0xcf,0x81,0x1, 0xf8,0xde,0x88,0x0, 0xf1,0xe0,0xe, 0x34,0x22, +0xe0,0xf, 0x34,0x42,0xe0,0x43,0x3f,0xe, 0xe0,0x3, 0x1d,0xb8,0x16,0x4, 0x16,0x81, +0x3e,0xdf,0x3e,0x5e,0xf0,0x0, 0xa3,0x8b,0x3e,0x4d,0xe2,0x0, 0xc4,0x12,0x16,0x88, +0xe2,0x0, 0xc7,0x20,0x3e,0xdf,0x3e,0x48,0xe0,0x0, 0x1f,0xc4,0xe8,0x1, 0xa5,0xe7, +0x3e,0x4e,0x3e,0xcc,0xa7,0x8f,0xe7,0xbf,0x17,0x7f,0x3f,0x5b,0xe4,0xd, 0x36,0xa5, +0xe0,0x24,0x15,0xf0,0xe0,0x3, 0x1c,0xc8,0xe0,0x3, 0x1d,0x49,0xe8,0x1, 0xbf,0x67, +0xe4,0xc, 0x36,0x2c,0xea,0xe, 0xc6,0x80,0x3d,0x9f,0xe0,0x1a,0xa7,0x2f,0xe0,0x7, +0xc7,0xb0,0x3f,0x59,0xe0,0x43,0xbf,0x2f,0x3f,0xfb,0xe0,0x43,0xa7,0x2f,0x3f,0x4c, +0xe0,0x43,0xbf,0x2f,0xe0,0x40,0xa7,0x1f,0x3f,0x5a,0xe0,0x40,0xbf,0x1f,0xe0,0x40, +0xa7,0x1f,0x3f,0x4d,0xe0,0x40,0xbf,0x1f,0x1, 0xe9,0xe8,0x1, 0xa7,0xe7,0xe0,0x40, +0xcf,0x80,0xe8,0x1, 0xbf,0xe7,0x38,0x82,0x8, 0xb7,0xf8,0x0, 0xc, 0x3b,0xe0,0x2, +0x1f,0x66,0xe0,0x2, 0x1f,0xfd,0x87,0xe, 0x15,0x85,0xe0,0x3, 0x8e,0x2f,0x3d,0xb9, +0xe0,0x3, 0x1e,0xb0,0xe2,0x0, 0xc7,0x1, 0x3e,0x7e,0x3e,0x9b,0xf0,0x40,0x3d,0x69, +0xf0,0x40,0x3c,0xe8,0x8a,0xbd,0xe0,0x1, 0x1, 0x69,0x9b,0x5f,0xe0,0x1, 0x8a,0xf, +0xf0,0x2, 0x1d,0xf9,0xe0,0x3, 0x1f,0xb8,0xe4,0x7, 0xc2,0xb0,0xa1,0x8f,0xe0,0x0, +0x1f,0xc4,0xe7,0xbf,0x17,0x7f,0xa1,0xf, 0xe0,0x1, 0xa7,0xe3,0x3a,0x92,0x13,0xa0, +0x3f,0xde,0xf2,0x0, 0xcd,0x2, 0x3b,0x95,0xe0,0x6, 0x17,0x26,0xe8,0xe, 0x3f,0x19, +0xe0,0x6, 0x15,0x28,0x14,0x80,0xe0,0x1, 0xbf,0xe3,0x3c,0x67,0xf0,0x6, 0x14,0x48, +0xe0,0x79,0x39,0x2e,0xf0,0x18,0x3c,0x15,0xe0,0x7, 0xdc,0xae,0xe0,0x0, 0x15,0x68, +0x14,0x80,0xe8,0x40,0x3c,0x68,0xe0,0x7, 0xdc,0xa7,0x23,0x2e,0x14,0x7f,0x3c,0x16, +0xe3,0xff,0xc4,0x7f,0x14,0xfe,0x15,0x7f,0xe8,0x9, 0x3c,0x9b,0xe8,0xa, 0x3d,0x19, +0xe8,0x8, 0x3c,0x19,0xf0,0x0, 0x13,0x81,0xe0,0x80,0x9f,0x19,0x17,0x84,0x3f,0x9e, +0xe0,0xd, 0x37,0x82,0x36,0xa2,0xe0,0x80,0x8d,0x9a,0x3e,0x97,0xe0,0x41,0x3f,0xe, +0xa6,0xd, 0x37,0x23,0x35,0xbe,0xe0,0xe, 0x37,0x85,0x3e,0x4b,0x37,0x22,0xbe,0xd, +0xe8,0xe, 0x3f,0x18,0xa6,0x8e,0xe0,0x41,0x3f,0x8f,0xf0,0xf, 0x33,0xbf,0x3f,0xcd, +0x3c,0x7a,0xbf,0x8e,0x1, 0xe2,0xe0,0x1, 0xa6,0x5, 0xe0,0x1a,0xa6,0x95,0xe8,0x6, +0x3b,0x19,0x17,0x90,0xe1,0x80,0x8f,0x16,0x37,0x3f,0x3e,0x4e,0xe0,0x1, 0xbe,0x5, +0x8f,0x26,0x37,0x3f,0xc7,0xf8,0x3e,0xce,0xe3,0xff,0xcf,0xf8,0xe0,0x1a,0xbe,0x95, +0x1, 0xf2,0xf2,0x0, 0xcd,0x1, 0x1, 0xe, 0xe0,0x1, 0xa7,0xe3,0x3c,0x64,0xe0,0x40, +0xcf,0x80,0xe0,0x1, 0xbf,0xe3,0xf8,0x0, 0xd, 0xa8,0xb, 0xa1,0xe7,0xfe,0x0, 0x98, +0x3d,0x2, 0x16,0x9c,0x3e,0x95,0xe0,0x16,0x15,0x90,0x3e,0x6d,0x17,0x0, 0x3d,0x92, +0x17,0x88,0x3f,0x9e,0x37,0xa2,0xc7,0x1, 0xe0,0x80,0xa5,0x1c,0x3f,0x9b,0xe2,0x1, +0xcf,0x4a,0xbd,0xf, 0x1, 0xf6,0xe0,0x6, 0xc2,0xc4,0xe0,0x16,0x15,0x90,0x3e,0x65, +0x17,0x0, 0x3d,0x92,0xe0,0x1, 0x17,0xd2,0x3f,0x9e,0x37,0xa2,0xc7,0x1, 0xe0,0x80, +0xa5,0x1c,0x3f,0x9b,0xe2,0x0, 0xcf,0x1a,0xbd,0xf, 0x1, 0xf5,0xe0,0x1d,0x15,0xc0, +0x3e,0x6d,0x17,0x0, 0x3d,0x92,0x17,0x88,0x3f,0x9e,0x37,0xa2,0xc7,0x1, 0xe0,0x80, +0xa5,0x1c,0x3f,0x9b,0xe2,0x1, 0xcf,0x4a,0xbd,0xf, 0x1, 0xf6,0xe0,0x1d,0x15,0xc0, +0x3e,0x65,0x17,0x0, 0xe0,0xb, 0x3d,0x92,0xe0,0x1, 0x17,0xd2,0x3f,0x9e,0x37,0xa2, +0xc7,0x1, 0xe0,0x80,0xa5,0x1c,0x3f,0x9b,0xe2,0x0, 0xcf,0x1a,0xbd,0xf, 0x1, 0xf5, +0x17,0x0, 0x17,0x88,0x3f,0x9e,0x37,0xa2,0xc7,0x1, 0xe0,0x80,0xa6,0x1d,0x3f,0x92, +0xe2,0x1, 0xcf,0x4a,0xbe,0xf, 0x1, 0xf6,0xe0,0x0, 0x17,0x0, 0xe0,0x1, 0x17,0xd2, +0x3f,0x9e,0x37,0xa2,0xc7,0x1, 0xe0,0x80,0xa6,0x95,0x3f,0x92,0xe2,0x0, 0xcf,0x1a, +0xbe,0x8f,0x1, 0xf5,0xe7,0xff,0x0, 0x92,0x9b,0x6f,0xe0,0x1, 0x8a,0x1f,0xf0,0x2, +0x1d,0xf8,0xe7,0xfe,0x0, 0x99,0x8, 0xb5,0xe0,0x2, 0x1f,0xe6,0xe0,0x2, 0x1f,0x7d, +0x87,0x8f,0xe0,0x3, 0x8e,0xae,0xe2,0x0, 0xc7,0x81,0x3e,0xff,0xe0,0x0, 0x1, 0x49, +0x9a,0x5e,0xe0,0x2, 0x19,0x79,0xe0,0x3, 0x1f,0xb8,0xe7,0xbf,0x17,0x7f,0xa2,0x8f, +0xe0,0xc, 0x15,0x40,0xe0,0x1, 0xa7,0xe5,0x14,0x80,0x3f,0xde,0xe0,0x3, 0x1f,0x3f, +0xe0,0x1, 0xbf,0xe5,0xa1,0x8e,0xe0,0xc, 0xc1,0xd0,0x3c,0x63,0xe0,0x7, 0xdb,0xc4, +0x3e,0x62,0x16,0x80,0x2a,0xe, 0x0, 0xa5,0x9d,0x8c,0xa7,0xf, 0xc6,0x81,0xe4,0xb, +0x35,0xa0,0xe3,0xff,0xc6,0xff,0x3f,0x4b,0x3a,0x7d,0xbf,0xf, 0xc6,0x2, 0x1, 0x19, +0xe0,0xf, 0x36,0xc1,0x3f,0x6f,0x15,0x81,0xe3,0xff,0xc7,0xff,0xe3,0xff,0xc7,0x7f, +0x37,0xa2,0x3d,0xdd,0x37,0x22,0x3f,0x93,0x25,0xe8,0x3f,0x13,0x9d,0x8c,0xa7,0x8e, +0xc6,0x81,0xe3,0xff,0xc6,0xff,0x3f,0xcb,0x3a,0x7d,0xbf,0x8e,0xc6,0x2, 0x1, 0xe9, +0xe0,0x1, 0xa7,0xe5,0xe0,0x40,0xcf,0x80,0xe0,0x1, 0xbf,0xe5,0xa, 0xe1,0x9a,0x6e, +0xe0,0x2, 0x19,0x78,0xe7,0xff,0x0, 0xb9,0x8, 0xb5,0x11,0x3, 0x39,0x38,0xe0,0x2, +0x1a,0x44,0x17,0x5, 0x3f,0x38,0x39,0x14,0xe0,0x3, 0x1f,0xb0,0x39,0xe8,0x8c,0x2, +0x3f,0x9e,0x8a,0xbf,0xe0,0x7, 0xd2,0x2c,0x8c,0x92,0x3c,0x65,0xe0,0x7, 0xd2,0x5e, +0x8c,0xa2,0x3c,0x65,0xe0,0x7, 0xd2,0x97,0xe2,0x0, 0xc9,0x81,0x1, 0x2, 0xa, 0xe1, +0x8c,0xc4,0x14,0x3, 0xe0,0x7, 0xd2,0x52,0x8c,0xd4,0x14,0x3, 0xe0,0x7, 0xd2,0x8b, +0x8c,0xc4,0x14,0x4, 0xe0,0x7, 0xd2,0x4a,0x8c,0xd4,0x14,0x4, 0xe0,0x7, 0xd2,0x83, +0x8c,0xc4,0x14,0x0, 0xe0,0x7, 0xd2,0x42,0x8c,0xd4,0x14,0x0, 0xa, 0xa1,0xe0,0xe4, +0x0, 0xfa,0xe2,0x0, 0xcc,0x82,0xe0,0x0, 0x2, 0xe1,0x8, 0xb5,0x17,0xfd,0x3f,0x98, +0xe2,0x0, 0xcf,0x81,0x39,0x68,0x3a,0x69,0xe0,0x1, 0x5, 0x88,0xe0,0x0, 0x2c,0x57, +0xe0,0x3, 0x1f,0xb8,0xe7,0xbf,0x16,0x7f,0xa6,0x8f,0xe0,0x0, 0x1f,0xc4,0xe0,0x1, +0xa7,0x6d,0xa7,0x8f,0x3f,0x5c,0xe0,0x1, 0xbf,0x6d,0xe2,0x0, 0xcc,0x81,0xa7,0x4f, +0xe6,0x7, 0x16,0x7f,0x3f,0x5c,0xe0,0x0, 0x1, 0x4a,0xe0,0x28,0xcf,0x0, 0xbf,0x4f, +0x16,0x40,0xa7,0x4f,0xe7,0xf8,0x15,0x80,0x3f,0x5c,0xcf,0x5, 0xbf,0x4f,0x12,0x85, +0xa7,0x5f,0xe0,0x3, 0x1e,0x4a,0x3a,0xb9,0x3f,0x5c,0xe8,0x0, 0xcf,0x5, 0xbf,0x5f, +0xa7,0x5f,0xe0,0x3, 0x19,0xb0,0x3f,0x5b,0xcf,0x5, 0xbf,0x5f,0xe0,0xc, 0x39,0x95, +0xe0,0x1, 0xa7,0xed,0xe0,0x40,0xcf,0x80,0xe0,0x1, 0xbf,0xed,0x8c,0xcc,0xe0,0x7, +0xd0,0x19,0xe0,0x3, 0x1f,0x8e,0x3c,0x62,0x3f,0x94,0x84,0x8f,0xe0,0x7, 0xd0,0x3d, +0x39,0x95,0x8d,0x23,0x3c,0x62,0x3c,0xea,0xe0,0x7, 0xd0,0xf9,0x8c,0x83,0x3c,0x62, +0x34,0xa3,0xe0,0x7, 0xd0,0xac,0x8c,0x93,0x3c,0x62,0x34,0xa3,0xe0,0x7, 0xd0,0xca, +0x3c,0x64,0xa, 0xa1,0xe7,0xfe,0x0, 0xea,0x38,0x82,0x12,0x85,0x3a,0xb9,0xe0,0x3, +0x19,0xb0,0xe0,0xf, 0x39,0x95,0x8c,0xcf,0x0, 0xdb,0xe0,0x50,0xcf,0x0, 0xbf,0x4f, +0x16,0x40,0xa7,0x4f,0x14,0x85,0x3f,0x5c,0xcf,0xa, 0xbf,0x4f,0x3a,0xe9,0xa7,0x5f, +0xe0,0x3, 0x1e,0x4a,0xe0,0x3, 0x19,0xb0,0x3f,0x5c,0xe8,0x0, 0xcf,0xa, 0xbf,0x5f, +0xe7,0xf8,0x16,0x0, 0xa7,0x5f,0x3f,0x5c,0xcf,0xa, 0xbf,0x5f,0xe0,0x1, 0xa7,0xed, +0xe0,0x40,0xcf,0x80,0xe0,0x1, 0xbf,0xed,0xe0,0x6, 0xdf,0xd4,0x3c,0xe2,0x3c,0x62, +0xe0,0x6, 0xdf,0xfb,0xe7,0xff,0x0, 0xbe,0x14,0x8a,0xe0,0x6, 0xdf,0xcb,0x14,0x80, +0x3c,0x62,0x12,0x85,0xe0,0x6, 0xdf,0xf1,0xe0,0x3, 0x19,0xb0,0x3a,0xb4,0xe7,0xff, +0x0, 0xb1,0x0, 0x0, 0xe0,0x2, 0x1f,0x66,0xe0,0x0, 0x1d,0x3b,0xe0,0x2, 0x1f,0xfd, +0x87,0xe, 0xf0,0x1, 0x8b,0xfa,0xe0,0x3, 0x8e,0xaf,0xe2,0x0, 0xc7,0x1, 0xe8,0xc, +0x3d,0x17,0x3e,0xfe,0xf0,0x6, 0x89,0xc, 0xe0,0x1, 0x1, 0x35,0xf0,0x0, 0x9a,0x5f, +0xf0,0x1, 0x89,0x8f,0xe0,0x1, 0x24,0x25,0xe0,0x0, 0x1f,0xba,0xf0,0x3, 0x1b,0x41, +0xa5,0x8f,0xe8,0x0, 0x8f,0x86,0xe0,0x1, 0x27,0xa5,0x8, 0xb2,0xe0,0x1, 0x1f,0xdc, +0xe7,0x7f,0x16,0xff,0xa4,0xf, 0xa7,0x88,0xa7,0x8, 0x37,0xce,0xe2,0x0, 0xc7,0x81, +0xe4,0x0, 0xcf,0x81,0x3f,0x5d,0x37,0xae,0x3f,0xce,0xbf,0x88,0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0xe0,0x1, 0x1f,0xcd,0xf0,0xe, 0x33,0xa2,0x96,0xfb,0x3f,0x9e,0xb6,0x8f, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe0,0x1, 0x97,0xb, 0xf0,0x0, 0x12,0x82,0xb7,0x1f, +0xf0,0x15,0x3a,0x9b,0xf0,0x2, 0x18,0xc8,0xf0,0x1, 0x18,0x7f,0xe8,0x40,0x3f,0x64, +0x16,0x0, 0x0, 0x96,0xe8,0x0, 0x8e,0x81,0xe0,0xf, 0x37,0x21,0xe2,0x0, 0xce,0x81, +0x3f,0x99,0xe0,0x0, 0x1, 0x49,0xe8,0x0, 0x96,0x85,0xb6,0x8f,0xc6,0x1, 0xe2,0x0, +0xce,0x6, 0xc7,0x1, 0xe3,0xff,0xc7,0x7f,0xf0,0x0, 0xc2,0x82,0x1, 0x13,0xf0,0xf, +0x31,0xdc,0xe0,0xd, 0x37,0x21,0xe2,0x0, 0xc7,0x81,0x3e,0x99,0x2f,0xe4,0xc6,0x1, +0xe2,0x0, 0xce,0x6, 0xc7,0x1, 0xb7,0x8d,0xe3,0xff,0xc7,0x7f,0xf0,0x0, 0xc2,0x82, +0x1, 0xef,0xe8,0x0, 0x8f,0x81,0xe2,0x0, 0xcf,0x81,0xe0,0x0, 0x1, 0x52,0xf0,0x0, +0x22,0x14,0x16,0x89,0xe8,0xd, 0x3e,0x94,0xe3,0xff,0xc6,0xff,0xe0,0x0, 0x17,0x89, +0xe0,0xe, 0x37,0xa1,0x3f,0x1b,0xc7,0x81,0xe3,0xff,0xc7,0xff,0x97,0xe, 0x3f,0xfd, +0xe1,0x80,0xb7,0x19,0x1, 0xf6,0xe0,0x6, 0x8f,0xda,0xc7,0xff,0xf0,0x40,0x3b,0xff, +0x4, 0x6, 0xa7,0x88,0xe7,0x7f,0x17,0x7f,0x3f,0xde,0xbf,0x88,0x17,0x0, 0xe8,0x0, +0xaf,0x6, 0x9, 0x61,0xf2,0x0, 0xc9,0x4, 0xe0,0xf, 0x37,0x21,0x3f,0x99,0xe7,0xff, +0x1, 0xb4,0xe0,0xf, 0x37,0x21,0x3f,0x99,0xe0,0x45,0x16,0xc2,0xe8,0x0, 0x98,0x85, +0x3e,0x9e,0x99,0xf, 0x36,0xa1,0x38,0xa2,0xe8,0xd, 0x3e,0x90,0xb0,0x8d,0x9e,0x8f, +0xe8,0x0, 0x98,0x85,0x3e,0x91,0x36,0xc1,0xb6,0x8f,0xe7,0xff,0x0, 0xa1,0xe0,0x3, +0x1f,0x8a,0xf0,0x3, 0x1b,0x41,0xa5,0x8f,0xe8,0x0, 0x8f,0x86,0xe7,0xfe,0x2f,0xdf, +0x38,0x82,0xf0,0x0, 0x9a,0x6f,0xf0,0x1, 0x89,0x9f,0xe7,0xfe,0x0, 0xcd,0xf2,0x0, +0xc9,0x4, 0x1, 0x17,0xf7,0xff,0x22,0x41,0xf0,0x0, 0xc2,0x9, 0xf3,0xff,0xc2,0x7f, +0xe0,0x0, 0x17,0x89,0xe0,0xe, 0x37,0xa1,0x3f,0x1b,0xc7,0x81,0xe3,0xff,0xc7,0xff, +0x97,0xe, 0xe8,0x40,0x3f,0xf4,0xe1,0x80,0xb7,0x19,0x1, 0xf5,0xe7,0xff,0x0, 0xad, +0xf0,0x0, 0x22,0x27,0xf7,0xff,0x11,0xff,0xf8,0x13,0x39,0x94,0xf3,0xff,0xc1,0xff, +0xf0,0x1, 0x19,0x7f,0xc5,0x92,0x3e,0xe9,0xf0,0x0, 0xc1,0x81,0xe0,0x0, 0x17,0x0, +0xe0,0x45,0x17,0xc2,0x9e,0xb, 0x3f,0x9e,0xf0,0x0, 0x9a,0x8d,0x37,0xa1,0xe8,0xc, +0x3e,0x25,0xe8,0xf, 0x3f,0x92,0xb6,0xf, 0xc7,0x1, 0x9f,0x8d,0xe1,0x80,0x9e,0x1b, +0xf0,0x40,0x39,0xfe,0x3f,0x9c,0x37,0xc1,0xe1,0x80,0xb7,0x9d,0x1, 0xea,0x17,0x86, +0xe0,0x3, 0x1f,0x44,0xf0,0xc, 0x33,0xa1,0xe8,0xf, 0x3f,0x94,0x16,0x80,0x3f,0x1c, +0x37,0xa1,0xb6,0x8e,0x3c,0x9f,0xb6,0x89,0xe7,0xfe,0x0, 0xf7,0xe0,0x2, 0x1f,0xba, +0x86,0xc8,0x8f,0x8f,0x87,0x68,0xe2,0x0, 0xcf,0x82,0xe0,0x1, 0x1f,0xcc,0x8f,0x8f, +0x1, 0x22,0x37,0xc1,0x16,0x60,0xc7,0x81,0x3e,0xdc,0xe2,0x0, 0xc7,0x9f,0x3f,0x5c, +0xce,0x81,0x3f,0xce,0xae,0xc8,0xaf,0xe8,0x15,0x80,0x87,0x48,0x87,0xe8,0x86,0x58, +0x86,0xf8,0xe2,0x0, 0xc7,0x1f,0xe2,0x0, 0xc7,0x9f,0xcf,0x20,0xce,0x40,0xcf,0xa0, +0xce,0xc0,0x15,0x1, 0xad,0x8, 0xad,0x98,0xad,0xb8,0xaf,0x48,0xae,0x58,0xaf,0xe8, +0xae,0xf8,0x38,0x82,0xc7,0x81,0x37,0x81,0x16,0x60,0xc7,0x81,0x3e,0xdc,0xe2,0x0, +0xc7,0x9f,0x3f,0x5c,0xce,0x82,0x3f,0xce,0xae,0xc8,0xaf,0xe8,0x0, 0xde,0xe0,0x2, +0x1f,0xba,0xf0,0x0, 0x11,0x81,0x8d,0x8f,0xe2,0x0, 0xcd,0x82,0x1, 0x4, 0xf0,0x0, +0x11,0x80,0x15,0x81,0xc4,0x82,0xe2,0x1, 0xc4,0xff,0x17,0x81,0xf0,0x1, 0x1a,0x4c, +0xac,0x88,0x17,0x0, 0xaf,0xb8,0x15,0x47,0xf7,0xff,0x13,0xe0,0xf7,0xff,0x12,0x80, +0xf7,0xff,0x13,0x3f,0x0, 0x92,0x87,0xc8,0x86,0xd8,0xe2,0x0, 0xc7,0x9f,0xcf,0xe0, +0xe8,0xf, 0x3f,0xd7,0xe8,0xd, 0x3e,0xd6,0xcf,0x81,0xae,0xd8,0xaf,0xc8,0xc7,0x1, +0xe2,0x1, 0xc7,0x7f,0x3c,0xfe,0x4, 0xac,0x17,0x82,0x3f,0x9e,0x37,0xa1,0x3f,0x98, +0x86,0x9f,0x3e,0xda,0xae,0x9f,0x27,0x68,0xe2,0x0, 0xcf,0x1, 0xf0,0x0, 0x11,0x1f, +0xf0,0x0, 0x10,0x81,0xf0,0x12,0x39,0x5b,0xce,0xc0,0xf0,0x11,0x38,0x9b,0x1, 0x19, +0x86,0xf, 0xe2,0x0, 0xcf,0x2, 0xe8,0xc, 0x3e,0x57,0xe8,0xc, 0x3e,0x42,0xe8,0x40, +0x3d,0xe1,0xae,0xf, 0xe2,0x0, 0xc6,0x1f,0xe2,0x1, 0xc5,0xff,0xce,0x20,0x1, 0x17, +0xc7,0x1, 0xe2,0x1, 0xc7,0x7f,0x3c,0xfe,0xae,0xf, 0xae,0x9f,0x3, 0xd6,0x38,0x82, +0x87,0xe8,0x86,0xf8,0xe2,0x0, 0xc7,0x9f,0xe8,0xf, 0x3f,0xc5,0xe8,0xf, 0x3f,0xd7, +0xe8,0xd, 0x3e,0xd6,0xcf,0x81,0xae,0xf8,0xaf,0xe8,0x0, 0xc2,0xe0,0x1, 0x86,0x98, +0xe0,0x1, 0x87,0x88,0xce,0xc0,0xe0,0x1, 0xae,0x98,0xe2,0x0, 0xc7,0x9f,0xe8,0x0, +0x8d,0x84,0xcf,0xa0,0xe8,0xb, 0x3d,0x93,0x35,0x81,0xc5,0x81,0xe0,0x1, 0xaf,0x88, +0xe2,0x1, 0xc5,0xff,0xe7,0xff,0x0, 0xad,0x17,0x0, 0x3f,0xe8,0xe1,0x80,0xaf,0x1f, +0xc7,0x81,0xaf,0x18,0xe1,0x80,0xaf,0x1f,0xe1,0x80,0xaf,0x1f,0xe1,0x80,0xaf,0x1f, +0xe1,0x80,0xaf,0x1f,0xe1,0x80,0xaf,0x1f,0xe1,0x80,0xaf,0x1f,0xe1,0x80,0xaf,0x1f, +0xe1,0x80,0xaf,0x1f,0xe1,0x80,0xaf,0x1f,0xe1,0x80,0xaf,0x1f,0xe1,0x80,0xaf,0x1f, +0xaf,0xf, 0xe7,0xfe,0x0, 0xe6,0xe0,0x2, 0x1f,0xba,0x16,0x82,0x8f,0x8f,0x87,0x58, +0xe0,0x2f,0x3f,0x8d,0xc7,0x81,0x16,0x80,0xcf,0x40,0xcf,0xa0,0xae,0x88,0xae,0x98, +0xae,0xb8,0xaf,0x58,0xaf,0xc8,0x38,0x82,0x8, 0xb2,0xe0,0x3, 0x19,0x2c,0x15,0x2a, +0x14,0x80,0x3c,0x62,0xe0,0x7, 0xd8,0xb0,0xe0,0x2, 0x1f,0xba,0x17,0x1, 0xaf,0x42, +0xe0,0x0, 0x17,0x41,0x8f,0x8f,0xe0,0x4, 0xaf,0x2, 0x2f,0x8c,0xe0,0x2, 0x87,0xa2, +0x17,0x60,0xe2,0x0, 0xc7,0x9f,0xcf,0xa0,0x3f,0xde,0xcf,0x81,0xe0,0x2, 0xaf,0xa2, +0x9, 0x61,0xe0,0x3, 0x1e,0xab,0x17,0x0, 0xe0,0x3, 0x1f,0xaa,0xaf,0xd, 0x3c,0x6d, +0xaf,0x1d,0xaf,0xf, 0xe0,0x3, 0x1f,0xa9,0xe0,0x3, 0x1e,0xc3,0xaf,0xf, 0xe0,0x3, +0x1f,0xa8,0x8c,0x8d,0xaf,0xf, 0xe0,0x3, 0x1f,0xa7,0xaf,0xf, 0xe0,0x3, 0x1f,0xa6, +0xaf,0xf, 0xe0,0x3, 0x1f,0xa5,0xaf,0xf, 0xe0,0x3, 0x1f,0xa4,0xaf,0xf, 0xe0,0x3, +0x1f,0xa3,0xaf,0xf, 0xe0,0x3, 0x1f,0xa2,0xaf,0xf, 0xe0,0x3, 0x1f,0xa1,0xaf,0xf, +0xe0,0x3, 0x1f,0xa0,0xaf,0xf, 0xe0,0x3, 0x1f,0x9f,0xaf,0xf, 0x9, 0x21,0xe7,0xfe, +0x0, 0x88,0xe0,0x0, 0x1f,0xbb,0x17,0x0, 0xaf,0xf, 0x16,0xff,0xaf,0x1f,0xae,0xaf, +0xaf,0x3f,0xaf,0x4f,0xaf,0x5f,0xaf,0x6f,0xaf,0x7f,0xe0,0x1, 0xaf,0xf, 0xe0,0x1, +0xaf,0x6f,0xe0,0x1, 0xae,0xff,0xe0,0x2, 0xaf,0xf, 0xe0,0x2, 0xaf,0x1f,0x38,0x82, +0xe0,0x0, 0x1f,0x3b,0x8e,0x8e,0xe0,0x0, 0x2e,0xdc,0x8f,0x8e,0x85,0x89,0x37,0xa5, +0x3f,0x9e,0xbc,0x6f,0xc5,0x81,0x8f,0x8e,0xe2,0x1, 0xc5,0xff,0x37,0xa5,0x3f,0x9e, +0x8c,0x39,0xe0,0x6, 0xad,0xdf,0x15,0x7f,0x3e,0x6d,0x8f,0x8e,0x37,0xa5,0x3f,0x9e, +0x3f,0x9d,0xe0,0x6, 0xad,0xf, 0x8f,0x8e,0x37,0xa3,0x3f,0x9d,0xc7,0x87,0x37,0xa2, +0xc6,0x81,0x3f,0x9e,0xe2,0x0, 0xce,0x85,0xbe,0xf, 0x1, 0xf0,0xe0,0x2, 0xae,0x2e, +0xe0,0x2, 0xae,0x3e,0xe0,0x2, 0xae,0x4e,0xe0,0x2, 0xae,0x5e,0xe0,0x2, 0xae,0x6e, +0xe0,0x2, 0x1f,0xc8,0xe0,0x2, 0xae,0x7e,0x8d,0xf, 0xe2,0x0, 0xcd,0x1, 0x1, 0x2a, +0x8f,0x8e,0x8e,0x99,0x37,0xa5,0x3f,0x9e,0xe0,0x6, 0xae,0xf, 0x3d,0xad,0xe0,0x2, +0xae,0x2e,0xe2,0x0, 0xcd,0x81,0x8f,0x8e,0xe0,0x1, 0x1e,0xfe,0x37,0xa5,0x3f,0x9e, +0xbe,0xff,0x5, 0x11,0x8f,0x8e,0x16,0x82,0x37,0xa5,0x3f,0x9e,0xe0,0x6, 0xae,0x9f, +0x17,0x81,0xe0,0x2, 0xaf,0xce,0x8f,0x8e,0xe0,0x1, 0x1e,0xfd,0xc7,0x81,0x37,0xa5, +0x3f,0x9e,0xbe,0x8f,0x14,0x0, 0x8f,0x8e,0xc7,0x81,0xaf,0x8e,0x38,0x82,0x14,0x1, +0x38,0x82,0xe0,0x0, 0x24,0x50,0x8f,0x8e,0xf0,0x1, 0x1b,0x7c,0x37,0xa5,0x3f,0x9e, +0xe0,0x6, 0xae,0x8f,0x16,0x84,0xe0,0x2, 0xae,0x7e,0x14,0x82,0x8f,0x8e,0x16,0x3, +0x37,0xa5,0x3f,0x9e,0xf0,0x0, 0xbb,0x7f,0xf0,0x40,0x3b,0xe9,0x8f,0x8e,0x37,0xa5, +0x3f,0x9e,0xe0,0x6, 0xae,0x9f,0xe0,0x2, 0xad,0x6e,0x8e,0x8e,0xc6,0x81,0x36,0xa5, +0x3e,0x9e,0xf0,0x0, 0xbb,0xd, 0x17,0x80,0x8e,0x8e,0x34,0x21,0x36,0xa5,0x3e,0x9e, +0x3e,0x99,0xe0,0x6, 0xaf,0x8d,0x3d,0xa8,0xf0,0x2, 0xab,0xae,0xe2,0x0, 0xcd,0x81, +0x8f,0x8e,0xe0,0x1, 0x1e,0xfe,0x37,0xa3,0x3f,0x99,0xc7,0x87,0x37,0xa2,0x3f,0x9e, +0xbe,0x8f,0x5, 0x41,0x8e,0x8e,0x17,0x82,0x36,0xa5,0x3e,0x9e,0x3e,0x9c,0xe0,0x6, +0xaf,0x8d,0x14,0x0, 0xe0,0x2, 0xae,0x4e,0x8f,0x8e,0xe0,0x1, 0x1e,0xfd,0x37,0xa3, +0x3f,0x9c,0xc7,0x87,0x37,0xa2,0x3f,0x9e,0xbe,0x8f,0x8f,0x8e,0xc7,0x81,0xaf,0x8e, +0x38,0x82,0xf0,0x40,0x3b,0xe8,0x3e,0x6a,0x3c,0xe8,0x0, 0xce,0xe2,0x0, 0xcc,0x4, +0x1, 0x20,0x5, 0x92,0xe2,0x0, 0xcc,0x6, 0x2, 0x9f,0x17,0x80,0x8f,0x39,0xaf,0x89, +0xaf,0x99,0x27,0x7, 0x87,0xd9,0xe2,0x1, 0xc7,0xbf,0xaf,0xd9,0x17,0xa1,0xaf,0xc9, +0x17,0x80,0xaf,0xb9,0x38,0x82,0xe2,0x0, 0xcc,0x3, 0x1, 0x8f,0x87,0xd9,0x17,0x47, +0x3f,0xde,0xcf,0x90,0x17,0x0, 0xaf,0x9, 0xaf,0x19,0xaf,0x39,0xaf,0xd9,0x38,0x82, +0x3c,0x69,0xe7,0xfb,0x0, 0xdd,0x38,0x82,0x38,0x82,0x0, 0x0, 0x8, 0xb4,0xc0,0x60, +0xe0,0x0, 0x19,0x3b,0x17,0x80,0xaf,0x82,0x17,0x7f,0xaf,0x92,0x11,0x94,0xaf,0x22, +0x39,0x90,0xaf,0xb2,0x3c,0x63,0xaf,0xc2,0xaf,0xd2,0xaf,0xe2,0xaf,0xf2,0xe0,0x1, +0xaf,0x82,0xe0,0x1, 0xaf,0xe2,0xe0,0x1, 0xaf,0x72,0x17,0xe, 0xe0,0x2, 0xaf,0x82, +0xe0,0x2, 0x1a,0x48,0xe0,0x2, 0xaf,0x92,0x8f,0x84,0x3f,0x3f,0xe0,0x3, 0x1f,0xac, +0x3f,0x9e,0xf0,0x0, 0x80,0x8f,0xf0,0x0, 0x81,0x1f,0xf0,0x0, 0x81,0xaf,0xf0,0x0, +0x82,0x3f,0xf0,0x0, 0x68,0x94,0xf0,0x0, 0x82,0xdf,0xf0,0x0, 0x83,0x6f,0xf0,0x0, +0x83,0xff,0xe0,0x1, 0x84,0x8f,0xe0,0x1, 0x85,0x1f,0xe0,0x1, 0x85,0xaf,0xe0,0x1, +0x86,0x3f,0xe0,0x1, 0x86,0xcf,0xe0,0x1, 0x87,0x5f,0x87,0xcf,0xf0,0x0, 0xa9,0x13, +0xf0,0x0, 0xa9,0xa3,0xf0,0x0, 0xaa,0x33,0xaf,0xc3,0xf0,0x0, 0xaa,0xd3,0xf0,0x0, +0xab,0x63,0xf0,0x0, 0xab,0xf3,0xe0,0x1, 0xac,0x83,0xe0,0x1, 0xad,0x13,0xe0,0x1, +0xad,0xa3,0xe0,0x1, 0xae,0x33,0xe0,0x1, 0xae,0xc3,0xe0,0x1, 0xaf,0x53,0xdd,0x7f, +0xf8,0x3, 0x8, 0x2, 0x17,0x84,0x3f,0x90,0xf8,0xf, 0x8, 0x12,0x3c,0xef,0x57,0x90, +0x14,0x4, 0x77,0x88,0xde,0xbe,0x17,0x80,0xe0,0xe, 0x39,0x1f,0x86,0x84,0xc7,0x81, +0xe2,0x0, 0xcf,0x85,0xe0,0x1, 0xae,0x9e,0x1, 0xf8,0x17,0x80,0xe0,0x2, 0xaf,0x92, +0x17,0x80,0xe0,0x0, 0x8f,0x2, 0x27,0x11,0xe0,0xe, 0x37,0xa5,0x3f,0x12,0xe0,0x6, +0x8f,0x5e,0xe0,0x2, 0x8e,0x92,0xc7,0x81,0x3f,0x1d,0xe0,0x2, 0xaf,0x12,0xe2,0x1, +0xc7,0xff,0x8f,0x2, 0x3f,0xfe,0x4, 0xf1,0xc0,0x20,0xa, 0x61,0x8, 0xb3,0xc0,0x60, +0xe0,0x0, 0x19,0x3b,0x17,0x0, 0xaf,0x2, 0x17,0xff,0xaf,0x12,0x16,0x8e,0xaf,0xa2, +0xaf,0x32,0xaf,0x42,0xaf,0x52,0xaf,0x62,0xaf,0x72,0xe0,0x1, 0xaf,0x2, 0xe0,0x1, +0xaf,0x62,0xe0,0x1, 0xaf,0xf2,0xe0,0x2, 0xaf,0x2, 0xe0,0x2, 0x19,0xc8,0xe0,0x2, +0xaf,0x12,0x8f,0x83,0x3e,0xbf,0xe0,0x3, 0x1f,0xac,0x3f,0x9d,0xf0,0x0, 0x81,0x2f, +0xf0,0x0, 0x81,0xcf,0xf0,0x0, 0x82,0x5f,0xf0,0x0, 0x82,0xef,0xf0,0x0, 0x83,0x7f, +0xf0,0x1, 0x83,0x8f,0x86,0xbf,0xe0,0x1, 0x84,0xaf,0xe0,0x1, 0x85,0x3f,0xe0,0x1, +0x85,0xcf,0xe0,0x1, 0x86,0x5f,0xe0,0x1, 0x84,0x1f,0xf0,0x0, 0x69,0x16,0x3f,0xed, +0xf0,0x0, 0x69,0x98,0xe2,0x1, 0xc7,0xff,0xf0,0x0, 0x6a,0x19,0xf0,0x0, 0x6a,0x9a, +0xf0,0x0, 0x6b,0x1b,0xf0,0x0, 0x6b,0x9c,0x6c,0x1d,0x6c,0x9e,0x6d,0x1f,0x6d,0xa0, +0x6e,0x21,0x6f,0x14,0x6f,0x15,0x27,0x87,0x57,0x8c,0xe2,0x1, 0xc7,0xbf,0xe0,0x42, +0xcf,0x80,0x77,0x8c,0x17,0x80,0xf0,0x0, 0x11,0x14,0x6f,0x97,0xf0,0x12,0x39,0x10, +0xf8,0x12,0x8, 0x2, 0x17,0x84,0x3f,0x90,0xf8,0xf, 0x8, 0x12,0x3c,0xef,0x57,0x90, +0x14,0x6, 0x77,0x88,0xef,0xff,0xde,0x36,0x17,0x80,0xe0,0xe, 0x39,0x1f,0x86,0x83, +0xc7,0x81,0xe2,0x0, 0xcf,0x85,0xe0,0x1, 0xae,0x9e,0x1, 0xf8,0x17,0x80,0xe0,0x2, +0xaf,0x92,0x17,0x80,0x8f,0x2, 0x27,0x11,0xe0,0xe, 0x37,0xa5,0x3f,0x12,0xe0,0x6, +0x8f,0x5e,0xe0,0x2, 0x8e,0x92,0xc7,0x81,0x3f,0x1d,0xe0,0x2, 0xaf,0x12,0xe2,0x1, +0xc7,0xff,0x8f,0x2, 0x3f,0xfe,0x4, 0xf1,0xc0,0x20,0x9, 0xe1,0x8, 0xb1,0xc0,0x70, +0xe0,0x3, 0x1f,0xac,0xe2,0x0, 0x7c,0x84,0xf0,0x0, 0x80,0xf, 0xf0,0x0, 0x80,0x9f, +0xf0,0x0, 0x81,0x2f,0xf0,0x0, 0x81,0xbf,0xf0,0x0, 0x82,0x4f,0xf0,0x0, 0x82,0xdf, +0xf0,0x0, 0x83,0x6f,0xf0,0x0, 0x83,0xff,0xe0,0x1, 0x85,0xf, 0xe0,0x1, 0x85,0x9f, +0xe0,0x1, 0x86,0x2f,0xe0,0x1, 0x86,0xbf,0xe0,0x1, 0x87,0x4f,0xe0,0x1, 0x87,0xdf, +0x14,0x0, 0x6f,0x10,0x6f,0x91,0xf0,0x0, 0x68,0x4, 0xf0,0x0, 0x68,0x85,0xf0,0x0, +0x69,0x6, 0xf0,0x0, 0x69,0x87,0xf0,0x0, 0x6a,0x8, 0xf0,0x0, 0x6a,0x89,0xf0,0x0, +0x6b,0xa, 0xf0,0x0, 0x6b,0x8b,0x6d,0xc, 0x6d,0x8d,0x6e,0xe, 0x6e,0x8f,0xdd,0xd9, +0xe0,0x0, 0x1f,0xbb,0x17,0x0, 0xe0,0x1, 0xaf,0x1f,0xe0,0x1, 0xaf,0x2f,0xe0,0x1, +0xaf,0x3f,0xe0,0x1, 0xaf,0x4f,0xe0,0x1, 0xaf,0x5f,0xc0,0x10,0x8, 0xe1,0x8, 0xb1, +0xc0,0x70,0xe0,0x3, 0x1f,0x2c,0x17,0x8e,0x3f,0x9e,0xf0,0x1, 0x80,0x6e,0xf0,0x0, +0x80,0x9f,0xf0,0x0, 0x81,0x2f,0xf0,0x0, 0x81,0xbf,0xf0,0x0, 0x82,0x4f,0xf0,0x0, +0x82,0xdf,0xf0,0x0, 0x83,0x6f,0xf0,0x0, 0x83,0xff,0xe0,0x1, 0x85,0xf, 0xe0,0x1, +0x85,0x9f,0xe0,0x1, 0x86,0x2f,0xe0,0x1, 0x86,0xbf,0xe0,0x1, 0x87,0x4f,0xe0,0x1, +0x87,0xdf,0xe2,0x0, 0x7c,0x84,0x14,0x1, 0x6f,0x10,0x6f,0x91,0xf0,0x0, 0x68,0x4, +0xf0,0x0, 0x68,0x85,0xf0,0x0, 0x69,0x6, 0xf0,0x0, 0x69,0x87,0xf0,0x0, 0x6a,0x8, +0xf0,0x0, 0x6a,0x89,0xf0,0x0, 0x6b,0xa, 0xf0,0x0, 0x6b,0x8b,0x6d,0xc, 0x6d,0x8d, +0x6e,0xe, 0x6e,0x8f,0xdd,0x8e,0xe0,0x0, 0x1f,0xbb,0x17,0x1, 0xe0,0x1, 0xaf,0x1f, +0xe0,0x1, 0xaf,0x2f,0xe0,0x1, 0xaf,0x3f,0xe0,0x1, 0xaf,0x4f,0xe0,0x1, 0xaf,0x5f, +0xc0,0x10,0x8, 0xe1,0x8, 0xb1,0xc0,0x70,0xe0,0x3, 0x1f,0x2c,0x17,0x9c,0x3f,0x9e, +0xf0,0x3, 0x80,0x4e,0xf0,0x0, 0x80,0x9f,0xf0,0x0, 0x81,0x2f,0xf0,0x0, 0x81,0xbf, +0xf0,0x0, 0x82,0x4f,0xf0,0x0, 0x82,0xdf,0xf0,0x0, 0x83,0x6f,0xf0,0x0, 0x83,0xff, +0xe0,0x1, 0x85,0xf, 0xe0,0x1, 0x85,0x9f,0xe0,0x1, 0x86,0x2f,0xe0,0x1, 0x86,0xbf, +0xe0,0x1, 0x87,0x4f,0xe0,0x1, 0x87,0xdf,0xe2,0x0, 0x7c,0x84,0x14,0x2, 0x6f,0x10, +0x6f,0x91,0xf0,0x0, 0x68,0x4, 0xf0,0x0, 0x68,0x85,0xf0,0x0, 0x69,0x6, 0xf0,0x0, +0x69,0x87,0xf0,0x0, 0x6a,0x8, 0xf0,0x0, 0x6a,0x89,0xf0,0x0, 0x6b,0xa, 0xf0,0x0, +0x6b,0x8b,0x6d,0xc, 0x6d,0x8d,0x6e,0xe, 0x6e,0x8f,0xdd,0x43,0xe0,0x0, 0x1f,0xbb, +0x17,0x2, 0xe0,0x1, 0xaf,0x1f,0xe0,0x1, 0xaf,0x2f,0xe0,0x1, 0xaf,0x3f,0xe0,0x1, +0xaf,0x4f,0xe0,0x1, 0xaf,0x5f,0xc0,0x10,0x8, 0xe1,0x0, 0x0, 0x8, 0xb2,0xe0,0x0, +0x19,0x3b,0x17,0x80,0xaf,0x82,0x17,0x7f,0xaf,0x92,0xe2,0x0, 0xcc,0x1, 0xaf,0x22, +0xaf,0xb2,0xaf,0xc2,0xaf,0xd2,0xaf,0xe2,0xaf,0xf2,0xe0,0x1, 0xaf,0x82,0xe0,0x1, +0xaf,0xe2,0xe0,0x1, 0xaf,0x72,0xe0,0x2, 0xaf,0x82,0xe0,0x2, 0xaf,0x92,0x1, 0x20, +0x4, 0x9d,0xe2,0x0, 0xcc,0x2, 0x1, 0x18,0x17,0x80,0xe0,0x2, 0xaf,0x92,0x17,0x80, +0x8f,0x2, 0x27,0x11,0xe0,0xe, 0x37,0xa5,0x3f,0x12,0xe0,0x6, 0x8f,0x5e,0xe0,0x2, +0x8e,0x92,0xc7,0x81,0x3f,0x1d,0xe0,0x2, 0xaf,0x12,0xe2,0x1, 0xc7,0xff,0x8f,0x2, +0x3f,0xfe,0x4, 0xf1,0x9, 0x61,0xdf,0x7f,0x0, 0xe8,0xde,0xe9,0x0, 0xe6,0xdf,0x30, +0x0, 0xe4,0x8, 0xb2,0xe0,0x0, 0x1f,0xbb,0xe0,0x2, 0x8f,0xcf,0x27,0x96,0xe0,0x2, +0x1f,0x3a,0x8f,0xe, 0xe2,0x0, 0xcf,0x2, 0x1, 0x27,0xe0,0x1, 0x1f,0x4c,0xc7,0x82, +0x8f,0xe, 0x37,0xa1,0x3f,0x98,0x86,0x8f,0x37,0x41,0xc7,0x1, 0x16,0x60,0xe2,0x0, +0xc7,0x1f,0x3e,0xdc,0x3f,0x4d,0xaf,0xf, 0xe0,0x2, 0x1f,0xc8,0x89,0xf, 0xe2,0x0, +0xc9,0x1, 0x1, 0x2, 0x9, 0x61,0xe0,0x2, 0x1f,0x12,0x9f,0x8e,0x37,0xcd,0xe2,0x0, +0xc7,0x81,0x2f,0x9b,0x14,0x8a,0x14,0x3, 0xe0,0x6, 0xda,0x24,0x14,0x8a,0x14,0x4, +0x9, 0x21,0xe0,0xd4,0x0, 0x9f,0x3f,0x1f,0xe0,0x1, 0x1f,0xcc,0x37,0x21,0x8f,0x8f, +0x3c,0x1e,0xc7,0x81,0x87,0x8, 0x37,0x81,0xc7,0x81,0x16,0xe0,0xe2,0x0, 0xc7,0x9f, +0x3f,0x5d,0x3f,0xce,0xaf,0x88,0x0, 0xd9,0x97,0x8e,0xe7,0x0, 0x16,0x80,0xe3,0xbf, +0xc7,0xff,0xb7,0x8e,0x3c,0xe2,0x97,0x8e,0x14,0x3, 0x3f,0xcd,0xb7,0x8e,0xe0,0x6, +0xda,0x1, 0x3c,0xe2,0x14,0x4, 0x9, 0x21,0xe0,0xd3,0x0, 0xfc,0x8, 0xb1,0xe0,0x0, +0x1f,0xcd,0x8f,0x8f,0x27,0x99,0xe0,0x2, 0x1f,0xba,0x8f,0x8f,0x27,0xaf,0xe0,0x2, +0x1f,0x48,0x16,0x82,0x8f,0x8e,0xe0,0x2f,0x3f,0x8d,0x2f,0xa8,0x17,0x83,0xe0,0x2f, +0x3c,0xf, 0x2f,0xa4,0x8f,0x8e,0x17,0x1, 0xe0,0x2f,0x3f,0x8e,0x2f,0x9f,0x17,0x86, +0xe0,0x28,0x3c,0xf, 0x2c,0x1b,0xe0,0x7, 0xd4,0x33,0xe0,0x0, 0xdd,0x61,0xe0,0x3, +0x1f,0xb8,0xe0,0x2, 0x1e,0x92,0xa7,0x8f,0xe7,0xfb,0x16,0x7f,0xa7,0x4f,0x97,0x8d, +0xe2,0x0, 0xc7,0x1, 0x37,0x29,0x3f,0xdc,0x3f,0xce,0xb7,0x8d,0x17,0x1, 0xe0,0x0, +0x1f,0xbb,0xaf,0x3f,0x8, 0xa1,0xe0,0xda,0x0, 0xb3,0xe0,0x7, 0xd4,0x19,0xe0,0x0, +0xdd,0x47,0xe0,0x3, 0x1f,0xb8,0xe0,0x2, 0x1e,0x92,0xa7,0x8f,0xe7,0xfb,0x16,0x7f, +0xa7,0x4f,0x97,0x8d,0xe2,0x0, 0xc7,0x1, 0x37,0x29,0x3f,0xdc,0x3f,0xce,0xb7,0x8d, +0x17,0x1, 0xe0,0x0, 0x1f,0xbb,0xaf,0x3f,0x8, 0xa1,0xe0,0xda,0x0, 0xab,0x8, 0xb3, +0xc0,0x70,0xe2,0x0, 0xcc,0x2, 0x39,0x68,0xe0,0x0, 0x5, 0xce,0xe2,0x0, 0xc9,0x6, +0x14,0x0, 0x5, 0x83,0xc0,0x10,0x9, 0xe1,0xe0,0x2, 0x1f,0xc8,0x17,0xe, 0x8f,0x8f, +0xe2,0x0, 0x7c,0x4, 0x3f,0x3f,0xe0,0x3, 0x1f,0xac,0x3f,0x9e,0xf0,0x0, 0x81,0xf, +0xf0,0x0, 0x81,0x9f,0xf0,0x0, 0x82,0x2f,0xf0,0x0, 0x82,0xbf,0xf0,0x0, 0x83,0x4f, +0xf0,0x0, 0x83,0xdf,0xe0,0x1, 0x85,0xf, 0xe0,0x1, 0x85,0x9f,0xe0,0x1, 0x86,0x2f, +0xe0,0x1, 0x86,0xbf,0xe0,0x1, 0x87,0x4f,0x81,0xef,0x84,0xff,0xe0,0x1, 0x87,0xdf, +0xf0,0x0, 0x69,0x4, 0xf0,0x0, 0x69,0x85,0xf0,0x0, 0x6a,0x6, 0xf0,0x0, 0x6a,0x87, +0xf0,0x0, 0x6b,0x8, 0xf0,0x0, 0x6b,0x89,0x6d,0xc, 0x6d,0x8d,0x6e,0xe, 0x6e,0x8f, +0x6f,0x10,0x6f,0x91,0x6c,0x8b,0x69,0x8a,0xdf,0x15,0xe2,0x0, 0x7c,0x84,0x3c,0x62, +0xdc,0xbe,0xe2,0x0, 0x7c,0x4, 0xe0,0x6, 0xdc,0x44,0x3c,0x62,0xdf,0x60,0x14,0x1, +0xc0,0x10,0x9, 0xe1,0x11,0x8e,0xe0,0x3, 0x1f,0xac,0x39,0xb8,0x39,0x9f,0x3c,0x63, +0xdf,0x1, 0x3c,0x63,0xe0,0x6, 0xdc,0x35,0x3c,0x62,0xdf,0x51,0x14,0x1, 0xc0,0x10, +0x9, 0xe1,0x8, 0xb2,0xe0,0x3, 0x1f,0x47,0xe0,0x2, 0x1f,0x94,0x8e,0x8e,0x87,0x6f, +0xe2,0x0, 0xc6,0x87,0x36,0xa5,0xe2,0x0, 0xc7,0x1f,0x3f,0x4d,0xaf,0x6f,0x16,0x60, +0x9f,0x3f,0x86,0xef,0x37,0x48,0xc7,0x1, 0xe2,0x0, 0xc7,0x1f,0x3e,0xdc,0x3f,0x4d, +0xaf,0x6f,0x9f,0x3f,0x37,0x48,0xe2,0x0, 0xc7,0x1f,0xe2,0x0, 0xcf,0x1f,0x1, 0x85, +0x87,0x6f,0x3f,0x5c,0xcf,0x4, 0xaf,0x6f,0x17,0x80,0xe0,0x0, 0x19,0x3b,0x17,0x7f, +0xaf,0xb2,0x14,0x0, 0xaf,0x92,0xaf,0x22,0xaf,0xc2,0xaf,0xd2,0xaf,0xe2,0xaf,0xf2, +0xe0,0x1, 0xaf,0x82,0xe0,0x1, 0xaf,0xe2,0xe0,0x1, 0xaf,0x72,0xe0,0x2, 0xaf,0x82, +0xe0,0x1, 0xd0,0xb2,0x8f,0x12,0x8f,0x82,0x3f,0x7f,0x4, 0x87,0x17,0x83,0x14,0x1, +0xaf,0xb2,0x9, 0x21,0xe0,0x21,0x0, 0xa8,0x8f,0x92,0x37,0xa5,0x3f,0x92,0xa4,0x6f, +0xe2,0x1, 0xc4,0x7f,0xdf,0x55,0xe2,0x0, 0xcc,0x1, 0x1, 0xf1,0x14,0x1, 0x9, 0x21, +0xe0,0x21,0x0, 0x9a,0x8, 0xb5,0xe0,0x0, 0x19,0x3b,0x3a,0xe8,0x8f,0xb2,0xe2,0x0, +0xcf,0x81,0x1, 0x97,0xe0,0x2, 0x19,0x92,0xe0,0x3, 0x1a,0x38,0x97,0x83,0xe2,0x0, +0xc7,0x81,0x2f,0x87,0xa7,0x84,0xe0,0x4, 0xa7,0xff,0xe2,0x0, 0xc7,0x81,0x27,0x83, +0xe0,0x1, 0xd0,0x48,0xe0,0x3, 0xd9,0x37,0x8f,0xb2,0xe2,0x0, 0xcf,0x81,0x1, 0x6f, +0x2a,0x82,0xa, 0xe1,0xa, 0xa1,0xe0,0xd6,0x0, 0xfb,0x8, 0xb1,0xe0,0x2, 0x1f,0x92, +0x97,0x8f,0xe2,0x0, 0xc7,0x81,0x2f,0xa0,0xe0,0x3, 0x1f,0xb8,0xa7,0x8f,0xe0,0x4, +0xa7,0xff,0xe2,0x0, 0xc7,0x81,0x2f,0x98,0xe0,0x3, 0xd9,0x1d,0xe0,0x0, 0x1f,0x3b, +0xe0,0x2, 0x8c,0x1e,0x24,0x10,0x8f,0xce,0x27,0x84,0x0, 0x91,0x8e,0xcc,0x2e,0x8f, +0xe0,0x2, 0x8e,0x9e,0xc7,0x81,0xe2,0x1, 0xc7,0xff,0x3e,0xff,0xe0,0xc, 0x3f,0x1f, +0x2, 0xf6,0x14,0x0, 0x8, 0xe1,0xe0,0x1, 0xd0,0x15,0x0, 0xe7,0x14,0x1, 0x8, 0xe1, +0xe2,0x0, 0xcc,0x5, 0x2, 0x87,0xe0,0x0, 0x1f,0xbb,0x3c,0x1f,0xe0,0x2, 0x8c,0x28, +0x38,0x82,0x14,0x0, 0x38,0x82,0x8, 0xb2,0xe0,0x2, 0x1f,0x92,0x39,0x68,0x97,0x8f, +0xe2,0x0, 0xc7,0x81,0x2f,0x9f,0xe0,0x3, 0x1f,0xb8,0xa7,0x8f,0xe0,0x4, 0xa7,0xff, +0xe2,0x0, 0xc7,0x81,0x2f,0x97,0xe0,0x3, 0xd8,0xe6,0xe2,0x0, 0xc9,0x5, 0xe0,0x0, +0x1f,0xbb,0x17,0x0, 0x2, 0x84,0x39,0x1f,0xe0,0x2, 0x8f,0x22,0xe0,0x2, 0x8e,0x9f, +0x14,0x1, 0x3e,0xfe,0x5, 0x86,0x3f,0x9e,0x8c,0x4f,0x17,0x80,0xe1,0x28,0x3c,0xf, +0x9, 0x61,0xe0,0x0, 0xdf,0xdf,0x0, 0xe8,0x8, 0xb1,0xe0,0x6, 0xdb,0x19,0xe0,0x0, +0x1f,0xbb,0x16,0x83,0xae,0xbf,0x17,0x2, 0xaf,0x4f,0x16,0x80,0xaf,0x5f,0xaf,0x6f, +0xaf,0x7f,0xe0,0x2, 0x1e,0x12,0xe0,0x1, 0xaf,0xf, 0x97,0x8c,0xe0,0x3, 0x1f,0x1d, +0xe3,0xff,0xc7,0xef,0xb7,0x8c,0x97,0x8e,0xe3,0xff,0xc7,0xdf,0xb7,0x8e,0xe0,0x2, +0x1f,0xb3,0xae,0x8f,0xe0,0x1, 0x1f,0xdc,0xa7,0xf, 0xe0,0x0, 0x1f,0x90,0xae,0x8f, +0xe7,0x7f,0x16,0xff,0xa7,0x8e,0x3f,0xdd,0xbf,0x8e,0x8, 0xe1,0xe0,0x0, 0x1f,0xbb, +0x8f,0x3f,0xe2,0x0, 0xcf,0x1, 0x1, 0x2, 0x38,0x82,0x87,0x1f,0xaf,0x2f,0xe0,0x1, +0x8f,0x7f,0xc7,0x1, 0xe0,0x1, 0xaf,0x7f,0xe0,0x1, 0x8f,0x6f,0xc7,0x1, 0xe0,0x1, +0xaf,0x6f,0xe0,0x1, 0x8e,0xef,0x8f,0x1f,0x37,0x25,0x3f,0x1f,0xe0,0x6, 0x8f,0x5e, +0x3e,0xfe,0x4, 0xeb,0x17,0x0, 0xe0,0x1, 0xaf,0x6f,0x8f,0x1f,0xc7,0x1, 0xaf,0x1f, +0x8e,0x9f,0x8f,0xf, 0x3e,0xfe,0x3, 0xe1,0x17,0x3, 0xaf,0x3f,0x38,0x82,0x0, 0x0, +0x8, 0xb4,0xc0,0x7c,0xe0,0x0, 0x19,0x3b,0xe0,0x1, 0x89,0xf2,0x8f,0xa2,0x8f,0x32, +0xe2,0x0, 0xcf,0x1, 0x1, 0x3, 0xc0,0x4, 0xa, 0x61,0x8e,0x22,0x8e,0x82,0x3e,0x7d, +0xe0,0x0, 0x3, 0xc7,0x37,0xa3,0x8e,0xa2,0x3f,0x93,0xc7,0x87,0x36,0xa5,0x37,0xa2, +0x3e,0x92,0x3f,0x92,0xe0,0xb, 0x39,0x13,0xa6,0x6d,0xa4,0x8f,0xe0,0x1, 0x8f,0x9b, +0xe0,0x3, 0x1e,0xac,0xe4,0x0, 0xc7,0x87,0x3f,0x93,0xc7,0x82,0x37,0xa1,0x3f,0x9d, +0x8c,0x1f,0xe0,0x4, 0x34,0x47,0x24,0xac,0xe0,0x1, 0x17,0xff,0x3f,0xdc,0xe0,0x3, +0x1e,0xc1,0xe2,0x0, 0xcf,0x86,0xaf,0xd, 0x2, 0xa3,0x37,0x3f,0xe2,0x0, 0xc7,0x57, +0x27,0x1f,0xe0,0x3, 0x1f,0xb8,0xa7,0x8f,0xa7,0xcf,0xe2,0x0, 0xc7,0x81,0x27,0x8a, +0xe0,0x2, 0x1f,0xba,0x87,0x8f,0xc7,0xff,0xe2,0x1, 0xc7,0xff,0xe2,0x0, 0xcf,0x81, +0x5, 0x9f,0x3c,0x64,0xd8,0x18,0xe0,0x2, 0x1f,0x92,0x39,0x92,0x9f,0x8f,0x37,0xc4, +0xe2,0x0, 0xc7,0x81,0x27,0x92,0x17,0x2, 0xaf,0x43,0xe0,0x6, 0xda,0x71,0x8f,0x12, +0x8f,0x82,0x3f,0x7f,0xe7,0xff,0x4, 0xb1,0x17,0x2, 0xe0,0x0, 0x1f,0x99,0xaf,0x32, +0x17,0x0, 0xaf,0xf, 0xc0,0x4, 0xa, 0x61,0x17,0x81,0xaf,0xc3,0x0, 0xef,0xe0,0x2, +0x1f,0xc8,0x8f,0x8f,0xe2,0x0, 0xcf,0x81,0x1, 0xdd,0x7c,0x81,0xe0,0x3, 0xd5,0xc3, +0xe0,0x1, 0x1f,0xd7,0x64,0x81,0xe0,0x1, 0xb4,0x2f,0x0, 0xd4,0x8, 0xb1,0xc0,0x68, +0xe0,0x2, 0x1f,0xfd,0xe9,0xff,0xc4,0x7e,0x87,0x5f,0x86,0xcf,0xe0,0xf, 0x34,0x41, +0x6f,0x5, 0x14,0x85,0x17,0x0, 0x7f,0x83,0xe2,0x0, 0x7c,0x4, 0x7f,0x85,0x17,0x80, +0x6e,0x84,0x6f,0x6, 0x77,0x84,0xe0,0x6, 0xdc,0xbd,0xc0,0x18,0x8, 0xe1,0x0, 0x0, +0xe0,0x2, 0x1f,0xe6,0xe0,0x2, 0x1f,0x7d,0x87,0x8f,0xe0,0x3, 0x8e,0xae,0xe2,0x0, +0xc7,0x81,0x3e,0xff,0x1, 0x2e,0x9f,0xde,0xe0,0x3, 0x1e,0xb3,0xe2,0x0, 0xcc,0x2, +0xe0,0x3, 0x1f,0x32,0x3d,0xed,0xe0,0x6b,0x39,0x2e,0xe2,0x0, 0xcc,0x85,0x16,0x1, +0x36,0x39,0x2, 0x12,0x27,0x91,0x15,0x7f,0x3d,0x1f,0xe3,0xff,0xc5,0x7f,0x17,0x7f, +0xe2,0x1, 0xc6,0x7f,0x3f,0x1b,0x3d,0x1b,0x86,0x9e,0x3e,0xcc,0xe0,0x80,0xae,0x9e, +0x3f,0x7a,0x1, 0xfb,0x0, 0x83,0xe2,0x1, 0xc6,0x7f,0x16,0x86,0x3e,0x9f,0x3e,0x9b, +0x3f,0x9b,0x87,0xf, 0x3f,0x4c,0xe1,0x80,0xaf,0x1f,0x3e,0xff,0x1, 0xfb,0x38,0x82, +0x9f,0xee,0x0, 0xd3,0xe0,0x2, 0x1f,0xe6,0xe0,0x2, 0x1f,0x7d,0x87,0x8f,0xe0,0x3, +0x8e,0xae,0xe2,0x0, 0xc7,0x81,0x3e,0xff,0x1, 0x3c,0x9f,0xde,0xe0,0x3, 0x1f,0x33, +0xe2,0x0, 0xcc,0x2, 0xe0,0x3, 0x1e,0xb2,0x3e,0x6e,0xe0,0x6c,0x39,0x2d,0xe2,0x0, +0xcc,0x85,0x14,0x1, 0x34,0x39,0x2, 0x18,0x27,0x97,0x14,0xff,0x3c,0x9f,0xe3,0xff, +0xc4,0xff,0xc4,0x81,0x3e,0xea,0x3f,0x6c,0x3c,0x9c,0xf0,0x41,0x3b,0x88,0x9d,0x8d, +0xc6,0x82,0xe2,0x9, 0xcd,0xaf,0x2, 0x85,0x85,0x8e,0xe8,0xb, 0x3d,0xd7,0xad,0x8e, +0xc7,0x1, 0x3f,0x79,0x1, 0xf5,0x17,0x6, 0xe0,0xd, 0x37,0xa1,0x3f,0x1f,0x3f,0x1c, +0x3f,0x9c,0x3d,0x1d,0xe0,0x41,0x3e,0x8, 0x9e,0x8a,0xc5,0x2, 0xe2,0x9, 0xce,0xaf, +0x2, 0x84,0x86,0x8f,0x3e,0xdc,0xae,0x8f,0xc7,0x81,0x3f,0x7f,0x1, 0xf6,0x38,0x82, +0x9f,0xee,0x0, 0xc5,0x8, 0xb7,0xf8,0x0, 0xc, 0x39,0x39,0x68,0xe0,0x1, 0xd0,0x3d, +0xe0,0x2, 0x1f,0xe6,0xe0,0x2, 0x1f,0x7d,0x87,0x8f,0xe0,0x3, 0x8e,0xae,0xe2,0x0, +0xc7,0x81,0x3e,0xff,0x3b,0x68,0xe0,0x0, 0x1, 0x77,0x95,0x5e,0xc5,0x6, 0xe3,0xff, +0xc5,0x7f,0xe2,0x0, 0xc9,0x2, 0xe0,0x3, 0x1c,0x32,0xe0,0x3, 0x1f,0xb3,0x14,0x80, +0xe0,0x68,0x39,0xaf,0xe0,0x7, 0xd1,0xe8,0xe0,0x0, 0x2b,0x62,0xe0,0x3, 0x1f,0xb8, +0xe0,0x2, 0x1e,0x92,0xa7,0x8f,0x16,0x5f,0xa7,0x4f,0x97,0x8d,0x37,0x45,0xe2,0x0, +0xc7,0x20,0x3f,0xdc,0x3f,0xce,0xe0,0x3, 0x1a,0xb3,0xf0,0x1, 0x1c,0x7e,0xf0,0x1, +0x1c,0xfd,0xb7,0x8d,0x11,0x85,0xe0,0x13,0x13,0xc4,0x12,0x1, 0x3c,0x67,0xe0,0x5, +0xdb,0xf6,0x3c,0xe3,0x3c,0x62,0xdf,0x3d,0x3c,0xe2,0x3c,0x65,0xef,0xff,0xd4,0xd6, +0xdd,0x81,0x23,0x2d,0x3c,0xe2,0x3c,0x64,0xde,0x27,0x24,0x7d,0xe8,0x40,0x3d,0x68, +0x3c,0xe3,0x3c,0x62,0xc1,0xff,0xdf,0x67,0xe0,0x43,0x39,0x83,0x3c,0xe3,0x3c,0x62, +0xdf,0x28,0x3c,0xe2,0x3c,0x65,0xef,0xff,0xd4,0xc1,0x3c,0x64,0xdd,0xbc,0xe8,0x40, +0x3d,0x69,0x3c,0xe3,0x3c,0x62,0xdf,0x57,0xe0,0x1, 0xd0,0x49,0x2c,0xd, 0xc1,0xff, +0xe0,0x43,0x39,0x83,0xe2,0x0, 0xc9,0x80,0x3, 0x52,0xe0,0x3, 0x1c,0x33,0x3c,0xe2, +0xef,0xff,0xd4,0xac,0x2b,0xc, 0xf8,0x0, 0xc, 0xa8,0xb, 0xe1,0x3c,0x64,0xdd,0xa3, +0xe8,0x40,0x3d,0x68,0x3c,0xe3,0x3c,0x62,0xdf,0x3e,0x0, 0xe7,0xe0,0x0, 0x1f,0xcd, +0x8c,0xf, 0xf8,0x0, 0xc, 0xa8,0xb, 0xa1,0xe7,0xf8,0x0, 0x82,0xda,0x10,0x13,0x1, +0xe7,0xff,0x0, 0x9e,0x95,0x6e,0xc5,0x6, 0xe3,0xff,0xc5,0x7f,0xe7,0xff,0x0, 0x8b, +0x8, 0xb3,0xe0,0x2, 0x1f,0xc2,0x17,0x0, 0x39,0xe8,0xb7,0xf, 0xe0,0x2, 0xd9,0xf3, +0xe2,0x0, 0xcc,0x1, 0x39,0x68,0x1, 0x3, 0x3c,0x62,0x9, 0xe1,0x3c,0x63,0xdf,0x63, +0x3c,0x62,0x9, 0xe1,0x8, 0xb4,0xe0,0x2, 0x1f,0xc8,0x89,0xf, 0xe0,0x1, 0xd0,0x7, +0x2c,0x19,0xe0,0x2, 0x19,0xfb,0x14,0x1, 0x8f,0x83,0x37,0xd2,0x3f,0xd8,0x2f,0x82, +0xa, 0x61,0xe0,0x2, 0x1f,0x77,0xe0,0x4, 0x34,0x32,0x8f,0x8e,0xe2,0x1, 0xc2,0x7f, +0x3f,0xc4,0xaf,0x8e,0xdd,0x60,0xe2,0x0, 0xc9,0x1, 0x1, 0x12,0x3c,0x62,0xdf,0xd1, +0x2c,0x3, 0x14,0x0, 0xa, 0x61,0xe0,0x0, 0xdf,0xea,0x2c,0x7c,0x8f,0x83,0xe3,0x4, +0x3f,0xd4,0xaa,0x3, 0xd6,0x41,0xe0,0x0, 0xdf,0x33,0x14,0x1, 0xa, 0x61,0x3c,0x62, +0xe0,0x3, 0xd4,0xe2,0xe0,0x2, 0x1f,0xe7,0xa9,0xf, 0x0, 0xe9,0x8, 0xb5,0xe0,0x2, +0x1f,0xc8,0x3a,0xe8,0x89,0xf, 0xe0,0x0, 0xdf,0xd2,0x2c,0x17,0xe0,0x2, 0x1a,0x77, +0x39,0xe8,0x8f,0x84,0x14,0x1, 0x37,0xd2,0x3f,0xd8,0x2f,0x82,0xa, 0xe1,0xdd,0x33, +0xe2,0x0, 0xc9,0x1, 0x1, 0x86,0xe0,0x2, 0x1f,0xe7,0x8f,0xf, 0x27,0x39,0xa9,0x8f, +0x3c,0x62,0xe0,0x2, 0xd9,0xc5,0x2c,0x3, 0x14,0x0, 0xa, 0xe1,0xe0,0x2, 0x1f,0xea, +0x3c,0x62,0x8c,0x8f,0xe0,0x2, 0xda,0xb4,0x3c,0xe2,0x14,0x0, 0xef,0xfd,0xd8,0x20, +0xe0,0x2, 0x1f,0x81,0xe0,0x1, 0x1d,0x6f,0xe0,0x1, 0x1c,0xf0,0xa4,0xf, 0x3d,0xe2, +0xef,0xfd,0xd2,0xac,0x24,0x6a,0xe0,0x2, 0x1f,0xac,0x3c,0x62,0x8c,0x8f,0xe0,0x2, +0xda,0x9f,0xe0,0x0, 0xdf,0x9c,0x2c,0x61,0x2a,0x97,0x3c,0x62,0xe0,0x2, 0xd9,0xf3, +0x14,0x0, 0xe0,0x2, 0xd8,0x7f,0x8f,0x84,0x11,0x81,0xe0,0x2, 0x31,0xb2,0xe3,0x2, +0x3f,0xd2,0xa9,0x4, 0xe0,0x0, 0xde,0xdc,0xd5,0xe7,0x3c,0x63,0xa, 0xe1,0x3c,0x62, +0xe0,0x3, 0xd4,0x8a,0x0, 0xc6,0xdc,0x9e,0x0, 0xe9,0x8, 0xb3,0xe0,0x3, 0xd4,0xd6, +0xe0,0x0, 0xdf,0x8c,0xe0,0x2, 0x1f,0xfb,0x8f,0x8f,0x27,0x8b,0xe0,0x13,0x11,0x44, +0x0, 0x86,0x3c,0x62,0xe0,0x5, 0xda,0xfb,0xe0,0x0, 0xdf,0x80,0xdf,0x64,0x24,0x7a, +0xe0,0x2, 0x1f,0xf7,0x11,0x1, 0x8f,0x8f,0xe0,0x13,0x11,0xc4,0x2f,0x87,0x0, 0x89, +0x3c,0x63,0xe0,0x5, 0xda,0xec,0xe0,0x0, 0xdf,0x71,0x3c,0x62,0xdf,0x88,0x24,0x79, +0x9, 0xe1,0xe0,0x2, 0x1f,0x91,0x16,0x7e,0xa6,0x8f,0xe0,0x0, 0x1f,0xbd,0xa7,0x1d, +0xa7,0x8f,0xcf,0x40,0xbf,0x1d,0x17,0x0, 0xaf,0x7f,0x15,0xfd,0xa7,0xf, 0xe0,0x1, +0x1e,0xdc,0x3f,0x5c,0xbf,0xf, 0xa7,0xf, 0xa6,0x8d,0x3f,0x5b,0xbf,0xf, 0xe0,0x1, +0xa7,0xd, 0x37,0x48,0xe2,0x0, 0xc7,0x1, 0x2f,0x1c,0xe0,0x1, 0x1f,0x42,0x87,0xe, +0xe2,0x1, 0xc7,0x7e,0xe0,0x1, 0xaf,0x3f,0x17,0x8, 0xe0,0x61,0x3f,0x11,0x17,0x10, +0xe0,0x61,0x3f,0x11,0xa7,0x4f,0xcf,0x10,0xbf,0x4f,0xe0,0x61,0x3f,0x82,0xcf,0x88, +0xe0,0x61,0x3f,0x92,0xe0,0x61,0x3f,0x82,0xcf,0x90,0xe0,0x61,0x3f,0x92,0x38,0x82, +0xe0,0x1, 0xa7,0xd, 0x37,0x49,0xe2,0x0, 0xc7,0x1, 0x2f,0x60,0xe0,0x1, 0x1f,0x42, +0xe0,0x1, 0x87,0x4e,0x3e,0x5e,0xe0,0x1, 0xae,0x3f,0x0, 0xdf,0xd, 0xbf,0xe0,0x2, +0x1f,0x91,0xa7,0x8f,0xa7,0x6f,0x37,0x49,0xe2,0x0, 0xc7,0x1, 0x27,0xb, 0xe0,0x1, +0x1f,0x5c,0xa6,0x8e,0xe0,0x2, 0xa7,0xd, 0x37,0x49,0xe2,0x0, 0xc7,0x1, 0xe0,0x3, +0x2f,0x57,0xa7,0x6f,0x37,0x41,0xe2,0x0, 0xc7,0x1, 0x27,0xb, 0xe0,0x1, 0x1f,0x5c, +0xa7,0xe, 0xe0,0x2, 0xa7,0xe, 0x37,0x41,0xe2,0x0, 0xc7,0x1, 0xe0,0x3, 0x2f,0x32, +0xa7,0x6f,0x37,0x4a,0xe2,0x0, 0xc7,0x1, 0x27,0xb, 0xe0,0x1, 0x1f,0x5c,0xa7,0xe, +0xe0,0x2, 0xa7,0xe, 0x37,0x4a,0xe2,0x0, 0xc7,0x1, 0xe0,0x3, 0x2f,0x16,0xa7,0x6f, +0xe2,0x0, 0xc7,0x1, 0x27,0xa, 0xe0,0x1, 0x1f,0x5c,0xa7,0xe, 0xe0,0x2, 0xa7,0xe, +0xe2,0x0, 0xc7,0x1, 0xe0,0x2, 0x2f,0x7e,0xa7,0x6f,0x37,0x48,0xe2,0x0, 0xc7,0x1, +0x27,0xb, 0xe0,0x1, 0x1f,0x5c,0xa7,0xe, 0xe0,0x2, 0xa7,0xe, 0x37,0x48,0xe2,0x0, +0xc7,0x1, 0xe0,0x2, 0x2f,0x62,0xa7,0x6f,0x37,0x43,0xe2,0x0, 0xc7,0x1, 0x27,0xb, +0xe0,0x1, 0x1f,0x5c,0xa7,0xe, 0xe0,0x2, 0xa7,0xe, 0x37,0x43,0xe2,0x0, 0xc7,0x1, +0xe0,0x2, 0x2f,0x48,0xa7,0x6f,0x37,0x42,0xe2,0x0, 0xc7,0x1, 0x27,0xb, 0xe0,0x1, +0x1f,0x5c,0xa7,0xe, 0xe0,0x2, 0xa7,0xe, 0x37,0x42,0xe2,0x0, 0xc7,0x1, 0xe0,0x2, +0x2f,0x25,0xa7,0x6f,0x37,0x47,0xe2,0x0, 0xc7,0x1, 0x27,0xb, 0xe0,0x1, 0x1f,0x5c, +0xa7,0xe, 0xe0,0x2, 0xa7,0xe, 0x37,0x47,0xe2,0x0, 0xc7,0x1, 0xe0,0x2, 0x2f,0x9, +0xa7,0x6f,0x37,0x4b,0xe2,0x0, 0xc7,0x1, 0x27,0xb, 0xe0,0x1, 0x1f,0x5c,0xa7,0xe, +0xe0,0x2, 0xa7,0xe, 0x37,0x4b,0xe2,0x0, 0xc7,0x1, 0xe0,0x1, 0x2f,0x60,0xa7,0x6f, +0x37,0x4c,0xe2,0x0, 0xc7,0x1, 0x27,0xb, 0xe0,0x1, 0x1f,0x5c,0xa7,0xe, 0xe0,0x2, +0xa7,0xe, 0x37,0x4d,0xe2,0x0, 0xc7,0x1, 0xe0,0x1, 0x2f,0x44,0xa7,0x6f,0x37,0x4d, +0xe2,0x0, 0xc7,0x1, 0x27,0xb, 0xe0,0x1, 0x1f,0x5c,0xa7,0xe, 0xe0,0x2, 0xa7,0xe, +0x37,0x4c,0xe2,0x0, 0xc7,0x1, 0xe0,0x1, 0x2f,0x28,0xa7,0x6f,0x37,0x4e,0xe2,0x0, +0xc7,0x1, 0x27,0xb, 0xe0,0x1, 0x1f,0x5c,0xa7,0xe, 0xe0,0x2, 0xa7,0xe, 0x37,0x4e, +0xe2,0x0, 0xc7,0x1, 0xe0,0x1, 0x2f,0xc, 0xa7,0x6f,0x37,0x4f,0xe2,0x0, 0xc7,0x1, +0x27,0xb, 0xe0,0x1, 0x1f,0x5c,0xa7,0xe, 0xe0,0x2, 0xa7,0xe, 0x37,0x4f,0xe2,0x0, +0xc7,0x1, 0xe0,0x0, 0x2f,0x69,0xa7,0x6f,0x37,0x44,0xe2,0x0, 0xc7,0x1, 0x27,0xb, +0xe0,0x1, 0x1f,0x5c,0xa7,0xe, 0xe0,0x2, 0xa7,0xe, 0x37,0x44,0xe2,0x0, 0xc7,0x1, +0xe0,0x0, 0x2f,0x4f,0xa7,0x6f,0x37,0x45,0xe2,0x0, 0xc7,0x1, 0x27,0xa, 0xe0,0x1, +0x1f,0x5c,0xa7,0xe, 0xe0,0x2, 0xa7,0xe, 0x37,0x45,0xe2,0x0, 0xc7,0x1, 0x2f,0x29, +0xa7,0x6f,0x37,0x46,0xe2,0x0, 0xc7,0x1, 0x27,0x1f,0xe0,0x1, 0x1f,0x5c,0xa7,0xe, +0xe0,0x2, 0xa7,0xe, 0x37,0x46,0xe2,0x0, 0xc7,0x1, 0x27,0x16,0xa7,0x5f,0xa6,0xdf, +0x37,0x46,0xe2,0x0, 0xc7,0x1, 0xe7,0xff,0x16,0x3f,0xe4,0x0, 0xcf,0x1, 0x3e,0xdc, +0x37,0x26,0x3f,0x4d,0xbf,0x5f,0xa7,0x6f,0xe0,0x2, 0x1e,0xe9,0x3f,0x5c,0xbf,0x6f, +0x9f,0x8d,0xcf,0xc0,0xb7,0x8d,0x17,0x81,0xe0,0x61,0x3f,0x91,0xf, 0xab,0x38,0x0, +0xa7,0x5f,0xa6,0xdf,0x37,0x47,0xe2,0x0, 0xc7,0x1, 0xe7,0xfe,0x16,0x7f,0xe4,0x0, +0xcf,0x1, 0x3e,0xdc,0x37,0x27,0x3f,0x4d,0xbf,0x5f,0x16,0x5f,0xa7,0x6f,0xe0,0x2, +0x1e,0xe9,0x3f,0x5c,0xbf,0x6f,0x9f,0xd, 0xcf,0x20,0xb7,0xd, 0x0, 0xc2,0xa7,0x6f, +0x16,0x6f,0xe0,0x2, 0x1e,0xe9,0x3f,0x5c,0xbf,0x6f,0x9f,0xd, 0xcf,0x10,0xb7,0xd, +0xe7,0xff,0x0, 0xaa,0xa7,0x6f,0xe6,0xff,0x16,0xff,0x3f,0x5d,0xe0,0x2, 0x1e,0xbd, +0xbf,0x6f,0x17,0x1, 0xe0,0x0, 0x1e,0x21,0xaf,0xd, 0xe0,0x2, 0x1e,0xe9,0xaf,0xc, +0x9f,0xd, 0xe1,0x0, 0xcf,0x0, 0xb7,0xd, 0xe7,0xff,0x0, 0x87,0xa7,0x6f,0xe7,0x7f, +0x16,0x7f,0xe0,0x2, 0x1e,0xe9,0x3f,0x5c,0xbf,0x6f,0x9f,0xd, 0xe0,0x80,0xcf,0x0, +0xb7,0xd, 0xe7,0xfe,0x0, 0xeb,0xa7,0x6f,0xe7,0xbf,0x16,0x7f,0xe0,0x2, 0x1e,0xe9, +0x3f,0x5c,0xbf,0x6f,0x9f,0xd, 0xe0,0x40,0xcf,0x0, 0xb7,0xd, 0xe7,0xfe,0x0, 0xcf, +0xa7,0x6f,0xe7,0xdf,0x16,0x7f,0xe0,0x2, 0x1e,0xe9,0x3f,0x5c,0xbf,0x6f,0x9f,0xd, +0xe0,0x20,0xcf,0x0, 0xb7,0xd, 0xe7,0xfe,0x0, 0xb3,0xa7,0x5f,0xa6,0xdf,0x37,0x4f, +0xe2,0x0, 0xc7,0x1, 0xe6,0xff,0x16,0x7f,0xe4,0x0, 0xcf,0x1, 0x3e,0xdc,0x37,0x2f, +0x3f,0x4d,0xbf,0x5f,0xe7,0xef,0x16,0x7f,0xa7,0x6f,0xe0,0x2, 0x1e,0xe9,0x3f,0x5c, +0xbf,0x6f,0x9f,0xd, 0xe0,0x10,0xcf,0x0, 0xb7,0xd, 0xe7,0xfe,0x0, 0x8a,0xa7,0x6f, +0xe7,0xfe,0x16,0x7f,0xe0,0x2, 0x1e,0xe9,0x3f,0x5c,0xbf,0x6f,0x9f,0xd, 0xe0,0x1, +0xcf,0x0, 0xb7,0xd, 0xe7,0xfd,0x0, 0xee,0xa6,0xef,0xe0,0x0, 0x1f,0x2f,0x16,0x7b, +0xa7,0xe, 0x3e,0xdc,0xbe,0xef,0xa6,0x9e,0xe0,0x2, 0x1e,0x69,0xce,0x81,0xbe,0x9e, +0xa6,0x9e,0xce,0x90,0xbe,0x9e,0x9f,0xc, 0xcf,0x4, 0xb7,0xc, 0xe7,0xfd,0x0, 0xcb, +0xa7,0x6f,0x16,0x77,0xe0,0x2, 0x1e,0xe9,0x3f,0x5c,0xbf,0x6f,0x9f,0xd, 0xcf,0x8, +0xb7,0xd, 0xe7,0xfd,0x0, 0xb1,0xa7,0x6f,0xe7,0xfd,0x16,0x7f,0xe0,0x2, 0x1e,0xe9, +0x3f,0x5c,0xbf,0x6f,0x9f,0xd, 0xe0,0x2, 0xcf,0x0, 0xb7,0xd, 0xe7,0xfd,0x0, 0x95, +0xa7,0x6f,0x16,0x7e,0xe0,0x2, 0x1e,0xe9,0x3f,0x5c,0xbf,0x6f,0x9f,0xd, 0xcf,0x1, +0xb7,0xd, 0xe7,0xfc,0x0, 0xfb,0xa7,0x6f,0xe7,0xf7,0x16,0x7f,0xe0,0x2, 0x1e,0xe9, +0x3f,0x5c,0xbf,0x6f,0x9f,0xd, 0xe0,0x8, 0xcf,0x0, 0xb7,0xd, 0xe7,0xfc,0x0, 0xe1, +0xe0,0x2, 0x1f,0xc, 0x16,0x81,0xae,0x8e,0x16,0x5f,0xe0,0x0, 0x1f,0x3d,0xa6,0x8e, +0xa7,0xd, 0x3f,0x5c,0xbf,0xd, 0x16,0x7d,0xa7,0x6f,0xe0,0x2, 0x1e,0xe9,0x3f,0x5c, +0xbf,0x6f,0x9f,0xd, 0xcf,0x2, 0xb7,0xd, 0xe7,0xfc,0x0, 0xbc,0xe0,0x1, 0xa7,0x6d, +0xe7,0xef,0x15,0xff,0xe0,0x10,0xcf,0x0, 0xe0,0x1, 0xbf,0x6d,0xe0,0x1, 0xa7,0x6d, +0xe0,0x2, 0x1e,0x69,0x3f,0x5b,0xe0,0x1, 0xbf,0x6d,0xe7,0xfb,0x16,0xff,0xa7,0x6f, +0x3f,0x5d,0xbf,0x6f,0x9f,0xc, 0xe0,0x4, 0xcf,0x0, 0xb7,0xc, 0xe7,0xfc,0x0, 0x93, +0xf, 0x3f,0xe0,0x2, 0x1f,0x14,0x97,0xde,0xe0,0x40,0xcf,0x80,0xb7,0xde,0x17,0x82, +0xe0,0x61,0x3f,0x91,0xf, 0xae,0x38,0x0, 0xf, 0xbf,0x17,0x84,0xe0,0x61,0x3f,0x91, +0xf, 0xaf,0x38,0x0, 0xf, 0xbf,0x17,0xa0,0xe0,0x61,0x3f,0x91,0xf, 0xaf,0x38,0x0, +0xf, 0xbf,0xe0,0x0, 0x17,0xc0,0xe0,0x61,0x3f,0x91,0xf, 0xaf,0x38,0x0, 0xe, 0x3f, +0xe0,0x2, 0x1f,0x42,0xe0,0x0, 0x1e,0xaa,0x9f,0x8e,0xe0,0x2, 0x1e,0x47,0xc7,0x81, +0xb7,0x8e,0x9f,0x8d,0x9f,0xc, 0xc7,0x81,0xb7,0x8d,0x27,0x3, 0xc7,0x7f,0xb7,0xc, +0xe0,0x3, 0x1f,0x96,0x8f,0xf, 0x27,0x4, 0x8f,0xf, 0xc7,0x7f,0xaf,0xf, 0x8f,0x8f, +0x2f,0x86,0xe0,0x2, 0x1f,0x12,0x97,0x8e,0xcf,0x88,0xb7,0x8e,0xe0,0x2, 0x1e,0xec, +0xe0,0x2, 0x1f,0x39,0x9f,0x8d,0xc7,0x81,0xb7,0x8d,0x9f,0x8e,0x27,0x84,0x9f,0x8e, +0xc7,0xff,0xb7,0x8e,0xe0,0x3, 0x1f,0xad,0x9f,0xf, 0x27,0x4, 0x9f,0xf, 0xc7,0x7f, +0xb7,0xf, 0xe0,0x3, 0x1f,0x81,0xe0,0x0, 0x1f,0x40,0xa7,0x8f,0x97,0xe, 0xb7,0x3f, +0xa7,0xf, 0xcf,0x1, 0xbf,0xf, 0xa7,0xf, 0xe0,0x1, 0xcf,0x0, 0xbf,0xf, 0xe0,0x2, +0x17,0x80,0xe0,0x61,0x3f,0x91,0xf, 0xac,0x38,0x0, 0xf, 0xbf,0xe0,0x4, 0x17,0x80, +0xe0,0x61,0x3f,0x91,0xf, 0xaf,0x38,0x0, 0xf, 0xbf,0xe0,0x8, 0x17,0x80,0xe0,0x61, +0x3f,0x91,0xf, 0xaf,0x38,0x0, 0xf, 0xbf,0xe0,0x10,0x17,0x80,0xe0,0x61,0x3f,0x91, +0xf, 0xaf,0x38,0x0, 0xf, 0xbf,0xe0,0x80,0x17,0x80,0xe0,0x61,0x3f,0x91,0xf, 0xaf, +0x38,0x0, 0xf, 0xbf,0xe0,0x20,0x17,0x80,0xe0,0x61,0x3f,0x91,0xf, 0xaf,0x38,0x0, +0x8, 0xb1,0xe8,0x0, 0xc, 0x37,0xe0,0x2, 0xdf,0xf9,0x17,0x88,0xe0,0x61,0x3f,0x91, +0xf0,0x0, 0xb, 0xa8,0x8, 0xa1,0x38,0x0, 0x8, 0xb1,0xe8,0x0, 0xc, 0x37,0xe0,0x3, +0xd0,0x28,0x17,0x90,0xe0,0x61,0x3f,0x91,0xf0,0x0, 0xb, 0xa8,0x8, 0xa1,0x38,0x0, +0x8, 0xb1,0xe8,0x0, 0xc, 0x37,0xe0,0x2, 0x1f,0xe4,0xe7,0xfe,0x16,0xff,0xa7,0xf, +0xa7,0xbe,0x3f,0xdd,0xbf,0xbe,0xe0,0x5, 0xd7,0xfa,0xe0,0x40,0x17,0x80,0xe0,0x61, +0x3f,0x91,0xf0,0x0, 0xb, 0xa8,0x8, 0xa1,0x38,0x0, 0x3f,0x83,0xe0,0x1, 0x1f,0xd4, +0xe0,0x6, 0x8f,0xf, 0xc7,0x7f,0xe0,0x6, 0xaf,0xf, 0xe0,0x6, 0x8f,0xf, 0x37,0x24, +0x3f,0x1f,0xa7,0xe, 0xe0,0x60,0x3f,0x19,0xe0,0x6, 0x8f,0xf, 0x37,0x24,0x3f,0x1f, +0xa7,0x1e,0xe0,0x60,0x3f,0x1a,0xe0,0x6, 0x8f,0xf, 0x37,0x24,0x3f,0x1f,0xa7,0x2e, +0xe0,0x60,0x3f,0x18,0xe0,0x6, 0x8f,0xf, 0x37,0x24,0x3f,0x9e,0xa7,0xbf,0xe0,0x61, +0x3f,0x92,0x3b,0x0, 0x38,0x82,0x0, 0x0, 0xe0,0x2, 0x1d,0x5, 0x16,0x84,0xae,0x8a, +0x17,0x81,0xaf,0x9a,0x17,0x2, 0xaf,0xaa,0xf0,0x0, 0x13,0x80,0xae,0xba,0xf8,0x40, +0x3a,0xe7,0xae,0xca,0x14,0x1, 0xaf,0x5a,0xaf,0x6a,0xaf,0x7a,0xe0,0x1, 0xaf,0xa, +0x17,0x3, 0xe0,0x1, 0xaf,0x9a,0xe0,0x1, 0xaf,0xaa,0xe0,0x1, 0xaf,0xba,0xe0,0x1, +0xaf,0xca,0xe0,0x1, 0xaf,0xda,0x17,0x80,0xe0,0x1, 0xaf,0x6a,0xf0,0x2, 0x1b,0x71, +0xe0,0x1, 0xaf,0xfa,0xf0,0xb, 0x33,0xa2,0xe8,0xb, 0x3d,0x96,0xf0,0x0, 0xba,0x8b, +0xe0,0x0, 0x17,0x80,0xe8,0x9, 0x3d,0x17,0xe0,0xe, 0x3d,0x1f,0x8e,0xe, 0x8e,0x89, +0xe0,0xe, 0x34,0x3f,0x3e,0x7d,0xc7,0x81,0x5, 0x84,0xa6,0x8b,0x3f,0x4d,0xbf,0xb, +0xe2,0x0, 0xcf,0x90,0x1, 0xf2,0xf0,0x0, 0xc3,0x81,0xf2,0x0, 0xcb,0x90,0x1, 0xe3, +0xe0,0x1, 0x1f,0xd4,0x17,0x0, 0xe0,0x6, 0xaf,0xf, 0x38,0x82,0xe0,0x2, 0x1f,0x71, +0xe0,0xf, 0x34,0x22,0x3f,0x1f,0xa7,0x8e,0x27,0xb3,0x3f,0x83,0xe0,0x1, 0x1f,0xd4, +0xe0,0x6, 0x8e,0x8f,0xe0,0x60,0x3e,0x9, 0x36,0xa4,0x3e,0x9f,0xbe,0xd, 0xe0,0x6, +0x8e,0x8f,0xe0,0x60,0x3e,0xa, 0x36,0xa4,0x3e,0x9f,0xbe,0x1d,0xe0,0x6, 0x8e,0x8f, +0xe0,0x60,0x3e,0x8, 0x36,0xa4,0x3e,0x9f,0xbe,0x2d,0xe0,0x6, 0x8e,0x8f,0xe0,0x61, +0x3e,0x2, 0x36,0xa4,0x3e,0x9f,0xbe,0x3d,0xe0,0x6, 0x8e,0x8f,0xc6,0x81,0xe0,0x6, +0xae,0x8f,0xa7,0x8e,0xe0,0x61,0x3f,0x92,0x17,0x81,0xe0,0x8, 0x37,0xb8,0xe0,0x61, +0x3c,0x11,0xe0,0x60,0x3f,0x80,0xcf,0x82,0xe0,0x60,0x3f,0x90,0x3b,0x0, 0x38,0x82, +0x8, 0xb4,0xe8,0x0, 0xc, 0x37,0xe0,0x3, 0x1f,0xb8,0xa1,0xf, 0xa7,0xb2,0x37,0xcf, +0xe2,0x0, 0xc7,0x81,0x27,0x87,0xa7,0x82,0x37,0xcf,0xe2,0x0, 0xc7,0x81,0xe0,0x0, +0x2f,0xf2,0xa7,0xb2,0xe2,0x0, 0xc7,0x81,0x27,0x86,0xa7,0x82,0xe2,0x0, 0xc7,0x81, +0xe0,0x0, 0x2f,0xf1,0xa7,0xb2,0x37,0xc1,0xe2,0x0, 0xc7,0x81,0x27,0x87,0xa7,0x82, +0x37,0xc1,0xe2,0x0, 0xc7,0x81,0xe0,0x0, 0x2f,0xed,0xa7,0xb2,0x37,0xca,0xe2,0x0, +0xc7,0x81,0x27,0x87,0xa7,0x82,0x37,0xca,0xe2,0x0, 0xc7,0x81,0xe0,0x0, 0x2f,0xe9, +0xa7,0xb2,0x37,0xcb,0xe2,0x0, 0xc7,0x81,0x27,0x86,0xa7,0x82,0x37,0xcb,0xe2,0x0, +0xc7,0x81,0x2f,0xbd,0xa7,0xb2,0x37,0xcc,0xe2,0x0, 0xc7,0x81,0x27,0x87,0xa7,0x82, +0x37,0xcc,0xe2,0x0, 0xc7,0x81,0xe0,0x0, 0x2f,0xe6,0xa7,0xb2,0x37,0xc7,0xe2,0x0, +0xc7,0x81,0x27,0xa5,0xa7,0x82,0x37,0xc7,0xe2,0x0, 0xc7,0x81,0x27,0xa0,0xa7,0x92, +0xe0,0x0, 0x1a,0x10,0xe0,0x1, 0xcf,0x80,0xbf,0x92,0x8f,0x84,0xe0,0x2, 0x19,0x92, +0x27,0x89,0x99,0x3, 0x31,0x4c,0xe2,0x0, 0xc1,0x1, 0x29,0x4, 0xe0,0x6, 0xd5,0x28, +0xa9,0x4, 0x97,0x83,0xe0,0x3, 0x1f,0x37,0xe3,0xdf,0xc7,0xff,0xb7,0x83,0x97,0x83, +0xe3,0xbf,0xc7,0xff,0xb7,0x83,0x9f,0x8e,0xc7,0x81,0xb7,0x8e,0xe0,0x1, 0x17,0x80, +0xe0,0x61,0x3f,0x91,0xf0,0x0, 0xb, 0xa8,0xa, 0x21,0x38,0x0, 0xa7,0x92,0xe0,0x3, +0x1f,0x1d,0xe0,0x10,0xcf,0x80,0xbf,0x92,0x97,0x8e,0xcf,0xa0,0xb7,0x8e,0xe7,0xff, +0x0, 0xbb,0xa7,0x92,0xe1,0x0, 0xcf,0x80,0xbf,0x92,0xe0,0x0, 0xd9,0x1f,0xe7,0xff, +0x0, 0x8a,0xa7,0x92,0xcf,0x81,0xbf,0x92,0xe0,0x0, 0xd9,0x5, 0xe7,0xff,0x0, 0x8c, +0xa7,0x92,0xcf,0x82,0xbf,0x92,0xe0,0x0, 0xd9,0x11,0xe7,0xff,0x0, 0x90,0xa7,0x92, +0xe0,0x2, 0x19,0x92,0xe0,0x8, 0xcf,0x80,0xbf,0x92,0x97,0x83,0xe0,0x2, 0x1f,0x14, +0xcf,0x82,0xb7,0x83,0x97,0xce,0xcf,0x88,0xb7,0xce,0xe0,0x0, 0xd8,0xdb,0xe7,0xff, +0x0, 0x89,0xa7,0x92,0x14,0x7, 0xe0,0x20,0xcf,0x80,0xbf,0x92,0xdf,0x18,0xe0,0x3, +0x1e,0x9d,0xe0,0x2, 0x19,0x92,0x9f,0xd, 0x97,0x83,0x16,0x6f,0x37,0x41,0xe2,0x0, +0xc7,0x10,0x3f,0xdc,0x3f,0xce,0xb7,0x83,0x97,0x8d,0xe3,0xff,0xc7,0xdf,0xb7,0x8d, +0xd9,0xe, 0xd9,0x37,0xa7,0x92,0xe0,0x2, 0x1f,0x14,0xe0,0x20,0xcf,0x80,0xbf,0x92, +0xe7,0x0, 0x16,0x80,0x97,0xde,0x3f,0xcd,0xb7,0xde,0xe0,0x2, 0x1f,0xf1,0xa7,0xff, +0x2f,0x87,0xe0,0x1, 0x17,0x80,0xe0,0x61,0x3f,0x91,0xe7,0xfe,0x0, 0xf0,0xde,0x7e, +0xe7,0xfe,0x0, 0xed,0x8, 0xb1,0xe0,0x6, 0xdc,0x84,0xe0,0x60,0x3f,0x87,0xe0,0x1, +0x1f,0x50,0xe0,0x1, 0xbf,0xf, 0xe0,0x2, 0x1f,0x65,0xe0,0x1, 0xbf,0x1f,0xe0,0x3, +0x1f,0x11,0xe0,0x1, 0xbf,0x2f,0xe0,0x1, 0x1f,0x4b,0xe0,0x1, 0xbf,0x3f,0xe0,0x3, +0x1f,0x14,0xe0,0x1, 0xbf,0x4f,0xe0,0x0, 0x1f,0x49,0xe0,0x1, 0xbf,0x5f,0xe0,0x0, +0x1f,0x14,0xe0,0x1, 0xbf,0x6f,0xe0,0x2, 0x1f,0x2a,0xe0,0x1, 0xbf,0x7f,0xe0,0x2, +0x1f,0x1d,0xe0,0x2, 0xbf,0xf, 0xe0,0x2, 0x1f,0x61,0xe0,0x2, 0xbf,0x1f,0xe0,0x2, +0x1f,0x2, 0xe0,0x2, 0xbf,0x2f,0xe0,0x3, 0x1f,0x42,0xe0,0x2, 0xbf,0x3f,0xe0,0x0, +0x1f,0x35,0xe0,0x2, 0xbf,0x4f,0xe0,0x2, 0x1f,0x6e,0xe0,0x2, 0xbf,0x5f,0xe0,0x0, +0x1f,0x36,0xe0,0x2, 0xbf,0x6f,0x8, 0xe1,0xe0,0x2, 0x1f,0x91,0xe7,0x7f,0x16,0x7f, +0xa7,0xf, 0xe0,0x1, 0x1f,0xdc,0xa6,0xae,0xa7,0x8f,0x3e,0xdc,0xbe,0xae,0xe0,0xa0, +0x17,0x0, 0x9e,0xbf,0xe0,0x1e,0xce,0x80,0xb6,0xbf,0xb7,0x7f,0xa7,0x4f,0x3f,0x5c, +0xbf,0x4f,0xa7,0x4f,0xe0,0x20,0xcf,0x0, 0xbf,0x4f,0x38,0x82,0xe0,0x2, 0x1f,0x91, +0xe7,0x7f,0x16,0x7f,0xa6,0x8f,0xe0,0x2, 0x1f,0xa4,0xa7,0x1d,0xa7,0x8f,0xcf,0x1, +0xbf,0x1d,0xe6,0xff,0x16,0xff,0xa7,0xf, 0x3f,0x5d,0xbf,0xf, 0xa6,0x8f,0xe0,0x1, +0x1f,0x5c,0x3e,0xdc,0xa7,0xe, 0xbe,0x8f,0x9e,0xbe,0xe0,0x1e,0xce,0x80,0xb6,0xbe, +0xe0,0x61,0x3e,0x82,0xe7,0xef,0x15,0xff,0x3e,0xdb,0xe0,0x61,0x3e,0x92,0xe0,0x46, +0x16,0x80,0xbe,0x8f,0x15,0xfe,0xa6,0x8f,0xce,0x84,0xbe,0x8f,0xa6,0x8f,0xce,0x82, +0xbe,0x8f,0xa6,0x8f,0x3e,0xdb,0xbe,0x8f,0xa7,0xce,0x3f,0xdc,0xbf,0xce,0x17,0x0, +0xe0,0x0, 0x1f,0xab,0xaf,0xf, 0x38,0x82,0xe0,0x2, 0x1f,0xa4,0x16,0xfb,0xa7,0x8f, +0xe4,0xc, 0x34,0x40,0xa7,0xf, 0xe2,0x1, 0xc6,0x7f,0x3f,0x5d,0xbf,0xf, 0xe0,0xd, +0x34,0x48,0x17,0xb, 0xaf,0x7f,0xe2,0x1, 0xc6,0xff,0xe2,0x1, 0xc4,0x7f,0xa7,0xf, +0x37,0x4e,0xe2,0x0, 0xc7,0x1, 0x27,0x7c,0xa7,0xf, 0xe7,0x7f,0x15,0xff,0x3f,0x5b, +0xbf,0xf, 0xae,0x7f,0xa7,0xf, 0x37,0x4e,0xe2,0x0, 0xc7,0x1, 0x27,0x7c,0xa7,0xf, +0xe7,0x7f,0x16,0x7f,0x3f,0x5c,0xbf,0xf, 0xae,0xff,0xa7,0xf, 0x37,0x4e,0xe2,0x0, +0xc7,0x1, 0x27,0x7c,0xa7,0xf, 0xe7,0x7f,0x16,0xff,0x3f,0x5d,0xbf,0xf, 0xac,0x7f, +0xa7,0xf, 0x37,0x4e,0xe2,0x0, 0xc7,0x1, 0x27,0x7c,0xa7,0xf, 0xe7,0x7f,0x16,0xff, +0x3f,0x5d,0xbf,0xf, 0x17,0x0, 0xaf,0x7f,0xa7,0xf, 0x37,0x4e,0xe2,0x0, 0xc7,0x1, +0x27,0x7c,0xa7,0xf, 0xe7,0x7f,0x16,0xff,0x3f,0x5d,0xbf,0xf, 0x38,0x82,0x0, 0x0, +0x8, 0xb3,0x39,0xea,0x39,0x69,0xdf,0xb1,0x21,0xa1,0xe0,0x2, 0x1f,0xa4,0xc1,0xff, +0xe3,0xff,0xc1,0xff,0x16,0xff,0xa7,0xf, 0x3e,0x92,0xe0,0xc, 0x39,0x13,0x15,0x0, +0xe7,0x7f,0x15,0xff,0xad,0x7e,0xa7,0x8e,0x37,0xce,0xe2,0x0, 0xc7,0x81,0x27,0xfc, +0xa7,0x8e,0x3f,0xdb,0xbf,0x8e,0x8f,0xfe,0xe0,0x80,0xaf,0x9d,0x3e,0xfc,0x1, 0xf3, +0xa7,0x8e,0x14,0x1, 0xcf,0x84,0xbf,0x8e,0x9, 0xe1,0xe0,0x2, 0x1f,0xa4,0x14,0x1, +0xa7,0xf, 0xa7,0x8e,0xcf,0x84,0xbf,0x8e,0x9, 0xe1,0x8, 0xb2,0x14,0x1, 0xef,0xff, +0xd7,0x3b,0xe0,0x1, 0x14,0xc8,0x14,0x0, 0xe0,0x6, 0xd3,0xcf,0x24,0x14,0xe0,0x2, +0x1f,0x48,0x17,0x82,0xe0,0x0, 0x19,0x4d,0xaf,0x8e,0xe0,0x2, 0x1f,0x12,0xaf,0x82, +0x97,0x8e,0xe0,0x20,0xcf,0x80,0xb7,0x8e,0x8c,0x2, 0xef,0xff,0xd5,0x91,0x9, 0x21, +0xe7,0xed,0x0, 0xd1,0xe0,0x2, 0x1f,0xc8,0x17,0x1, 0xe0,0x0, 0x19,0x4d,0xaf,0xf, +0x3c,0xe8,0xaf,0x2, 0x8f,0x8f,0xe0,0x3, 0x1c,0x2c,0xe4,0x0, 0xc7,0x8e,0x3c,0x1f, +0xef,0xff,0xd2,0x3b,0x0, 0xea,0x8, 0xb2,0xe0,0x2, 0x19,0x40,0xe0,0x1, 0x8c,0xa2, +0xe0,0x4, 0x8f,0xd2,0x2f,0x95,0xe0,0x0, 0x1f,0xcd,0x8f,0x8f,0xe0,0x0, 0x2f,0xcb, +0xe0,0x1, 0x8c,0x82,0x14,0x5, 0xe2,0x0, 0xcc,0x94,0x2, 0x98,0xe0,0x0, 0x14,0x64, +0x24,0x95,0xe0,0x0, 0x14,0x63,0x3c,0x19,0xe0,0x6, 0xda,0x4a,0x0, 0x8f,0xe0,0x0, +0x1f,0xcd,0x8f,0x8f,0x2f,0xa3,0xe0,0x1, 0x8f,0x92,0xe0,0x0, 0x14,0x7f,0xe0,0x43, +0x3f,0xf, 0xe2,0x0, 0xcf,0x0, 0xe0,0x68,0x3b,0x2f,0xe0,0x5, 0x8f,0xc2,0x14,0x98, +0x3c,0x3f,0xe0,0x6, 0xda,0x35,0xe0,0x0, 0x1f,0xb2,0xe0,0x3, 0x1f,0x16,0xac,0xf, +0x87,0x8f,0xaf,0x8e,0xe0,0x2, 0x1f,0x12,0x97,0x8e,0xe3,0xff,0xc7,0xf7,0xb7,0x8e, +0x17,0x0, 0xe0,0x2, 0x1f,0xc2,0xb7,0xf, 0x9, 0x61,0xe0,0x3, 0x1f,0xc6,0x8f,0x8f, +0xe2,0x0, 0xcf,0xb8,0x5, 0x87,0xe0,0x3, 0x1f,0xc3,0x8f,0x8f,0xe2,0x0, 0xcf,0x81, +0x1, 0x17,0xe0,0x7, 0x14,0x68,0xe0,0x6, 0xda,0x13,0xc4,0x7f,0xe2,0x1, 0xc4,0x7f, +0x0, 0xd5,0xe0,0x3, 0x1f,0xc3,0x8f,0x8f,0xe2,0x0, 0xcf,0x81,0x1, 0xf3,0xe0,0x3, +0x14,0x74,0xe0,0x6, 0xda,0x5, 0xc4,0x7e,0xe2,0x1, 0xc4,0x7f,0x0, 0xc7,0xe0,0x3, +0x14,0x74,0xe0,0x6, 0xd9,0xfd,0xc4,0x7f,0xe2,0x1, 0xc4,0x7f,0xe7,0xff,0x0, 0xbf, +0xe0,0x3, 0x1f,0xb8,0xa7,0x8f,0xa7,0xcf,0xe2,0x0, 0xc7,0x81,0x27,0xa0,0x8, 0xb4, +0xe0,0x2, 0x19,0x12,0x9f,0x82,0x37,0xc7,0xe2,0x0, 0xc7,0x81,0x27,0x96,0xe0,0x3, +0x1f,0x43,0x97,0x82,0x89,0x8e,0xe3,0xfe,0xc7,0xff,0xe2,0x0, 0xc9,0x81,0xb7,0x82, +0x1, 0x10,0x9f,0x82,0x37,0xce,0xe2,0x0, 0xc7,0x81,0x27,0x87,0x97,0x82,0x14,0x0, +0xe3,0x7f,0xc7,0xff,0xb7,0x82,0xa, 0x61,0x14,0x1, 0xa, 0x61,0x14,0x1, 0x38,0x82, +0x3c,0x63,0xef,0xff,0xd6,0x79,0xe0,0x1, 0x14,0xc8,0x3c,0x63,0xe0,0x6, 0xd3,0xd, +0xe0,0x0, 0x1a,0x4d,0x2c,0x5, 0x8c,0x4, 0xef,0xff,0xd4,0xda,0x0, 0xe3,0x97,0x82, +0xe0,0x2, 0x1f,0x48,0xe3,0xdf,0xc7,0xff,0xb7,0x82,0x3c,0xe3,0x97,0x82,0xe0,0x3, +0x1c,0x2c,0xe0,0x40,0xcf,0x80,0xb7,0x82,0xa9,0x8e,0xa9,0x84,0x8f,0x8e,0xe4,0x0, +0xc7,0x8e,0x3c,0x1f,0xef,0xff,0xd1,0x62,0x0, 0xe7,0x8, 0xb6,0xe0,0x0, 0x1f,0xbd, +0xe0,0x3, 0x19,0x36,0xa1,0x8f,0xa7,0x83,0x37,0xc3,0xe2,0x0, 0xc7,0x81,0x27,0x99, +0xe0,0x2, 0x1b,0x12,0xe7,0xff,0x12,0x81,0xe0,0x1, 0x12,0x7f,0x0, 0x8c,0x9f,0x86, +0x37,0xc3,0xe2,0x0, 0xc7,0x81,0x2f,0x8c,0xd4,0xbe,0xa7,0x83,0x37,0xc3,0xe2,0x0, +0xc7,0x81,0x27,0x87,0xaa,0x82,0xef,0xff,0xd6,0x5a,0x3c,0xe4,0x24,0x71,0xb, 0x61, +0xe0,0x1, 0x1f,0xdc,0xe7,0xef,0x16,0xff,0xa7,0x8f,0xe0,0x4, 0x14,0x89,0xe0,0x1, +0xa7,0x6f,0x14,0x2, 0xe0,0x10,0xcf,0x0, 0xe0,0x1, 0xbf,0x6f,0xe0,0x1, 0xa7,0x6f, +0x3f,0x5d,0xe0,0x1, 0xbf,0x6f,0xe7,0xff,0x17,0x81,0xaf,0x82,0xb, 0x21,0xe0,0x9, +0x0, 0x9b,0x0, 0x0, 0x8, 0xb2,0xe0,0x2, 0x19,0x12,0x9f,0x82,0x37,0xc3,0xe2,0x0, +0xc7,0x81,0x2f,0x8d,0x9f,0x82,0xe0,0xf, 0x37,0xc3,0xe2,0x0, 0xc7,0x81,0x2f,0x87, +0xdf,0xb5,0x9f,0x82,0x37,0xc3,0xe2,0x0, 0xc7,0x81,0x27,0xfb,0xef,0xff,0xd6,0x27, +0x24,0x3, 0x0, 0x85,0xdf,0xab,0xef,0xff,0xd6,0x22,0x24,0x7d,0x9, 0x61,0xe0,0x0, +0x1f,0xbd,0xa7,0x8f,0xa7,0x8f,0x37,0xc3,0xe2,0x0, 0xc7,0x81,0x2f,0x94,0xe0,0x3, +0x1e,0xb6,0xe0,0x2, 0x1f,0xc, 0xe7,0xff,0x16,0x1, 0xae,0xd, 0x8e,0x8e,0xe2,0x0, +0xce,0x81,0x1, 0xa, 0xe0,0x2, 0x1f,0xc7,0x9f,0x8f,0x2f,0x8c,0x14,0x83,0x14,0x1, +0xe0,0x8, 0x0, 0xe2,0x38,0x82,0xe0,0x2, 0x1e,0xc7,0xe0,0x1f,0x16,0x20,0xb6,0xd, +0xaf,0x8e,0xe0,0x4, 0x14,0x81,0x14,0x2, 0xe0,0x8, 0x0, 0xd6,0x8, 0xb5,0xef,0xff, +0xd5,0xf6,0xe0,0x0, 0x24,0x4b,0x14,0x0, 0xd6,0xa, 0xe0,0x2, 0x1f,0x91,0xe7,0xdf, +0x17,0x7f,0xa1,0xf, 0xe0,0x2, 0x1a,0x96,0xa7,0x92,0xe0,0x2, 0x19,0x92,0x3f,0xde, +0xbf,0x92,0xe7,0xfb,0x17,0x7f,0xa7,0x92,0xe0,0x2, 0x1a,0x40,0x3f,0xde,0xbf,0x92, +0xe7,0xfd,0x17,0x7f,0xa7,0x92,0x3f,0xde,0xbf,0x92,0xe7,0xfe,0x17,0x7f,0xa7,0xa2, +0x3f,0xde,0xbf,0xa2,0x9f,0x83,0x37,0xc3,0xe2,0x0, 0xc7,0x81,0x2f,0x8c,0xe0,0xa, +0x8f,0x84,0x27,0xa8,0x8f,0x85,0x2f,0xa6,0xdf,0xab,0x9f,0x83,0x37,0xc3,0xe2,0x0, +0xc7,0x81,0x27,0xf6,0x8f,0x85,0x27,0x84,0x8f,0x85,0xc7,0xff,0xaf,0x85,0x14,0x1, +0xa7,0x92,0xe0,0x20,0xcf,0x80,0xbf,0x92,0xa7,0x92,0xe0,0x4, 0xcf,0x80,0xbf,0x92, +0xa7,0x92,0xe0,0x2, 0xcf,0x80,0xbf,0x92,0xa7,0xa2,0xe0,0x1, 0xcf,0x80,0xbf,0xa2, +0xa, 0xa1,0xe0,0xb, 0x0, 0xc5,0xdf,0x32,0xef,0xff,0xd5,0xa9,0x24,0x7d,0xe7,0xff, +0x0, 0xb4,0xdf,0x2c,0x0, 0xd0,0x0, 0x0, 0x8, 0xb3,0x14,0x1, 0xef,0xff,0xd5,0x7c, +0xe0,0x0, 0x1f,0xbd,0xa7,0x8f,0xa1,0xf, 0x31,0x43,0xe2,0x0, 0xc1,0x1, 0x29,0x7c, +0x3c,0x62,0xd5,0xad,0xe0,0x2, 0x1f,0x91,0xe7,0xdf,0x17,0x7f,0xa1,0x8f,0x14,0x1, +0xa7,0x93,0x3c,0xe2,0x3f,0xde,0xbf,0x93,0xe7,0xfb,0x17,0x7f,0xa7,0x93,0x3f,0xde, +0xbf,0x93,0xe7,0xfd,0x17,0x7f,0xa7,0x93,0x3f,0xde,0xbf,0x93,0xe7,0xfe,0x17,0x7f, +0xa7,0xa3,0x3f,0xde,0xbf,0xa3,0xe7,0xff,0x17,0x1, 0xe0,0x3, 0x1f,0xb6,0xaf,0xf, +0xd3,0xd2,0xa7,0x93,0x14,0x1, 0xe0,0x20,0xcf,0x80,0xbf,0x93,0xa7,0x93,0xe0,0x4, +0xcf,0x80,0xbf,0x93,0xa7,0x93,0xe0,0x2, 0xcf,0x80,0xbf,0x93,0xa7,0xa3,0xe0,0x1, +0xcf,0x80,0xbf,0xa3,0x9, 0xa1,0xe0,0xa, 0x0, 0xfb,0x8, 0xb1,0xe0,0x1, 0x1f,0xc2, +0xe0,0x1a,0x17,0x20,0x3f,0x1f,0x8f,0xe, 0xe0,0x1a,0xc7,0xa1,0x8c,0xf, 0x37,0x28, +0x3c,0x4e,0xe0,0x5, 0xd3,0x4c,0xe0,0x5, 0xd2,0xe8,0xe0,0x1, 0xd7,0xc0,0xe0,0x2, +0x1f,0x40,0x17,0x81,0xe0,0x4, 0xaf,0xfe,0xe0,0x1b,0x14,0x2c,0xe0,0x3, 0x1f,0x47, +0xaf,0x8e,0xe0,0x5, 0xd3,0x3c,0xe0,0x2, 0x1f,0xfd,0xe0,0x19,0x16,0x9d,0x17,0x7, +0x3e,0x9f,0xaf,0xd, 0xe0,0x19,0xc7,0x9e,0xaf,0xf, 0x8, 0xe1,0x8, 0xb2,0xe0,0x2, +0x1f,0xc0,0x17,0x0, 0xe0,0x0, 0x1e,0xb2,0xe0,0x4, 0xaf,0x5f,0xe0,0x3, 0x1f,0x16, +0x8f,0x8d,0x8e,0xe, 0x37,0xc1,0x3f,0xfc,0x3, 0x9d,0x8e,0x8d,0x8f,0x8e,0x36,0xc1, +0x3f,0xad,0xe0,0x2, 0x19,0x12,0xaf,0x8e,0x17,0x0, 0xe0,0x2, 0x1f,0xec,0xb7,0xf, +0xe0,0x3, 0x1f,0xb8,0xa7,0x8f,0xa7,0xcf,0xe2,0x0, 0xc7,0x81,0x27,0x85,0x97,0x82, +0xe0,0x1, 0xcf,0x80,0xb7,0x82,0x9f,0x82,0x37,0xc7,0xe2,0x0, 0xc7,0x81,0x2f,0x88, +0x9, 0x61,0xe0,0x2, 0x19,0x12,0x97,0x82,0xcf,0x88,0xb7,0x82,0x0, 0xe6,0xd5,0x41, +0x97,0x82,0xcf,0x88,0xb7,0x82,0x97,0x82,0xe0,0x80,0xcf,0x80,0xb7,0x82,0x9, 0x61, +0xe0,0x2, 0x1f,0xc0,0xe0,0xa, 0x8f,0x8f,0x27,0x86,0xe0,0x2, 0x1f,0x87,0x8f,0x8f, +0x27,0x89,0x38,0x82,0x8, 0xb1,0xdf,0xbb,0xe0,0x2, 0x1f,0xeb,0x17,0x2, 0xaf,0xf, +0x8, 0xe1,0xe7,0xff,0x0, 0xb5,0x8, 0xb1,0xe0,0x1, 0x1f,0xc2,0xe0,0x1a,0x17,0x22, +0x3f,0x1f,0x8f,0xe, 0xe0,0x1a,0xc7,0xa3,0x8c,0xf, 0x37,0x28,0x3c,0x4e,0xe0,0x5, +0xd2,0xd6,0xdf,0x3b,0xdf,0x7b,0xdf,0xa3,0xde,0x14,0x8, 0xa1,0xe7,0xe8,0x0, 0xe3, +0x8, 0xb4,0xe0,0x2, 0x1f,0xba,0x12,0x3c,0x8f,0x8f,0x27,0x8a,0xe0,0x3, 0x1f,0xc3, +0x8f,0x8f,0xe2,0x0, 0xcf,0x80,0x17,0xb9,0xe0,0x6f,0x39,0x24,0x3a,0x6f,0xe0,0x2, +0x19,0x40,0xe0,0x3, 0x19,0x82,0xe0,0x4, 0x8f,0xd2,0xe2,0x0, 0xcf,0x81,0x1, 0x1b, +0x8f,0x3, 0xe0,0x4, 0x8f,0xd2,0xe2,0x0, 0xcf,0x81,0x1, 0x2, 0xa, 0x61,0xe0,0x0, +0x1f,0xcd,0x8f,0x8f,0x27,0xfc,0x3a,0x7e,0x1, 0x23,0x17,0x81,0x3f,0x9e,0xe2,0x1, +0xc7,0xff,0xe0,0x3, 0x1e,0xc6,0xe2,0x0, 0xcf,0xbc,0xaf,0xd, 0x5, 0x82,0x17,0x80, +0xaf,0x83,0xa, 0x61,0xe0,0x0, 0x1f,0xcd,0x8f,0x8f,0x27,0xe3,0x8f,0x3, 0x2f,0x62, +0xe0,0x3, 0x1f,0xb8,0xa7,0x8f,0xa7,0xcf,0xe2,0x0, 0xc7,0x81,0x27,0xdb,0xe0,0x3, +0x1f,0xc3,0x8f,0x8f,0xe2,0x0, 0xcf,0x81,0x1, 0xd5,0xdd,0x30,0x0, 0xd2,0xe0,0x3, +0x1f,0xb8,0xa7,0x8f,0xa7,0xcf,0xe2,0x0, 0xc7,0x81,0x27,0x87,0xe0,0x2, 0x1f,0x12, +0x97,0x8e,0xe0,0x1, 0xcf,0x80,0xb7,0x8e,0xdd,0xbc,0xef,0xff,0xd4,0xc, 0x8f,0x3, +0x0, 0xcd,0x8, 0xb4,0xe0,0x2, 0x1f,0xe0,0xe0,0x2, 0x19,0x40,0x8f,0xf, 0x27,0xd, +0x17,0x0, 0xe0,0x4, 0x8e,0xd2,0xaf,0xf, 0xe0,0x0, 0x26,0xce,0xe0,0x4, 0x8f,0xd2, +0xe2,0x0, 0xcf,0x81,0xe0,0x1, 0x1, 0x3, 0xe0,0x4, 0x8f,0xd2,0xe2,0x0, 0xcf,0x81, +0x1, 0x3b,0x4, 0x8b,0xe2,0x0, 0xcf,0x83,0x1, 0x84,0xa, 0x21,0xe7,0xfe,0x0, 0xf5, +0x17,0x81,0xe0,0x4, 0xaf,0xd2,0xa, 0x61,0xe0,0x2, 0x1f,0xdf,0x8f,0x8f,0x27,0xb6, +0xe0,0x2, 0x1e,0xec,0x17,0x0, 0xb7,0xd, 0x8f,0xe2,0xe2,0x0, 0xc7,0x81,0x27,0xf4, +0xe0,0xa, 0x8f,0x82,0xe2,0x0, 0xcf,0x81,0x1, 0xef,0xe0,0x2, 0x1f,0x87,0x8e,0xf, +0xe2,0x0, 0xce,0x1, 0x1, 0xe9,0xe0,0x4, 0xae,0x52,0xe0,0x3, 0x1d,0x16,0xe0,0x0, +0x1e,0x32,0xe0,0x2, 0x1d,0xf7,0x8e,0xc, 0x8c,0x8a,0xaf,0xf, 0x3e,0x19,0xae,0xa, +0xb7,0xd, 0xe0,0x3, 0x1f,0x82,0x8e,0x8b,0xaf,0xf, 0xce,0x84,0xe0,0x3, 0x1f,0xc6, +0xae,0x8b,0xaf,0xf, 0xa, 0x61,0xe0,0x2, 0x1f,0xdf,0x8f,0x8f,0x27,0xcd,0xa, 0x21, +0xe7,0xfe,0x0, 0xa8,0xde,0xec,0xe7,0xff,0x0, 0xb9,0x8f,0xe2,0xe2,0x0, 0xc7,0x81, +0x27,0xc3,0xe0,0x2, 0x19,0xec,0xe0,0x7, 0x14,0xe8,0x9c,0x3, 0x8a,0x72,0xe0,0x6, +0xd7,0x8a,0xe3,0xff,0xc4,0x7f,0x3c,0x74,0x3, 0x8c,0xe0,0xa, 0x8f,0x82,0xe2,0x0, +0xcf,0x81,0xe7,0xff,0x1, 0xb2,0x9f,0x83,0xe2,0x7, 0xcf,0xe7,0xe7,0xff,0x5, 0xad, +0x17,0x81,0xe0,0x4, 0xaf,0xd2,0x16,0x0, 0xe0,0x3, 0x1e,0x96,0xe0,0x0, 0x1f,0xb2, +0xe0,0x2, 0x1f,0x77,0x8f,0x8f,0x8d,0x8d,0x3f,0x9b,0xe0,0x2, 0x1d,0x87,0xaf,0x8d, +0x16,0x80,0xb6,0x3, 0xae,0x8b,0xe0,0x3, 0x1d,0x82,0x8f,0x8e,0xae,0xb, 0xcf,0x84, +0xe0,0x3, 0x1e,0x46,0xaf,0x8e,0xae,0x8c,0xa, 0x61,0xe0,0x4, 0xaf,0xd2,0x16,0x0, +0xe0,0x3, 0x1e,0x96,0xe0,0x0, 0x1f,0xb2,0x8f,0x8f,0x8d,0x8d,0x3f,0x9b,0xaf,0x8d, +0xe0,0x2, 0x1d,0x87,0xe0,0x2, 0x1f,0xec,0xe0,0x2, 0x1e,0xf7,0xb6,0xf, 0xaf,0xb, +0xe0,0x3, 0x1d,0x82,0x8f,0x8d,0xae,0xb, 0xcf,0x84,0xe0,0x3, 0x1e,0x46,0xaf,0x8d, +0xaf,0xc, 0xe7,0xfe,0x0, 0xe3,0x8, 0xb1,0xe0,0x2, 0x1f,0xe6,0x8f,0x8f,0x2f,0x8d, +0xe0,0x0, 0x1f,0xcd,0x8f,0x8f,0x27,0x85,0xdd,0x86,0x8, 0xa1,0xe7,0xfd,0x0, 0xea, +0xdd,0xc6,0x8, 0xa1,0xe7,0xfd,0x0, 0xe6,0xdf,0x3d,0x0, 0xf3,0xe0,0x3, 0x1f,0x2d, +0xe0,0x2, 0x1e,0x92,0x0, 0x86,0x9f,0x8d,0x37,0xc3,0xe2,0x0, 0xc7,0x81,0x2f,0x83, +0x9f,0x8e,0x2f,0xfa,0x17,0x87,0xb7,0x8e,0x38,0x82,0x0, 0x0, 0xe0,0x0, 0x1f,0xcd, +0x8f,0x8f,0x2f,0x9f,0x8, 0xb2,0xe0,0x2, 0x19,0x39,0x9f,0x82,0x2f,0xff,0xdc,0x6c, +0xe0,0x2, 0x1f,0xc0,0xe0,0x4, 0x8f,0x5f,0xe2,0x0, 0xcf,0x1, 0x1, 0x13,0xe0,0x1, +0x8c,0x8f,0xe0,0x0, 0x14,0x64,0xe0,0x6, 0xd6,0xc3,0xc4,0x7f,0xb4,0x2, 0xe0,0x2, +0x1f,0xb2,0x9e,0x82,0x9f,0xf, 0x3e,0xfe,0x5, 0x83,0x97,0x8f,0xb7,0x82,0x9, 0x61, +0x38,0x82,0xe0,0x1, 0x8f,0x9f,0xc7,0xff,0xb7,0x82,0x0, 0xf2,0xe0,0x2, 0x1f,0x91, +0xe7,0x7f,0x16,0xff,0xa7,0x8f,0xe2,0x0, 0xcc,0x7, 0xa7,0x1f,0xe1,0x0, 0xcf,0x0, +0xbf,0x1f,0xa7,0x2f,0x3f,0x5d,0xbf,0x2f,0xe7,0xdf,0x16,0xff,0xa7,0x2f,0x3f,0x5d, +0xbf,0x2f,0xe7,0xbf,0x16,0xff,0xa7,0x2f,0x3f,0x5d,0xbf,0x2f,0x2, 0x88,0xa7,0x2f, +0x16,0xf8,0xe2,0x0, 0xc4,0x7, 0x3f,0x5d,0x3c,0x4e,0xbc,0x2f,0x38,0x82,0xe0,0x2, +0x1f,0xe4,0x16,0xdf,0xa7,0xf, 0x15,0xfe,0xa7,0xbe,0x3f,0xdd,0xbf,0xbe,0xe7,0xfe, +0x16,0xff,0xa6,0x3e,0xe0,0x0, 0x1f,0xbd,0x3e,0x5d,0xa7,0x8f,0xbe,0x3e,0x17,0x0, +0xaf,0x7f,0x16,0xfd,0xa6,0xf, 0xe0,0x1, 0x1f,0x5c,0x3e,0x5b,0xbe,0xf, 0xa6,0xf, +0xa7,0xe, 0x3e,0x5d,0xbe,0xf, 0xa6,0xbf,0x3e,0xdb,0xbe,0xbf,0x16,0xfc,0xa7,0x8e, +0x3f,0xdd,0xbf,0x8e,0x17,0x80,0xe0,0x3, 0xb7,0x9e,0x17,0x80,0xe0,0x61,0x3f,0x92, +0xe1,0xff,0x17,0xff,0xe0,0x61,0x3f,0x91,0x38,0x82,0xe0,0x2, 0x1f,0xe4,0xe0,0x0, +0x1f,0x3d,0xa6,0x8f,0x16,0x7e,0xa7,0xbd,0xa7,0xe, 0x3f,0xdc,0xbf,0xbd,0xe7,0xff, +0x16,0xbf,0xa7,0x8e,0x3f,0xdd,0xbf,0x8e,0xe0,0x61,0x3f,0x82,0xcf,0x81,0xe0,0x61, +0x3f,0x92,0x38,0x82,0xe0,0x2, 0x1f,0x91,0xe0,0x1, 0x1f,0x5c,0xa6,0x8f,0x16,0x6f, +0xa7,0x9d,0xa7,0xe, 0x3f,0xdc,0xbf,0x9d,0xe0,0x1, 0xa7,0xee,0xe0,0x20,0xcf,0x80, +0xe0,0x1, 0xbf,0xee,0x38,0x82,0xe0,0x2, 0x1f,0x91,0xa6,0x8f,0xe0,0x2, 0x1f,0xe4, +0xa7,0x1d,0xa7,0x8f,0xcf,0x8, 0xbf,0x1d,0xe7,0xff,0x16,0xbf,0xa7,0x3f,0x3f,0x5d, +0xbf,0x3f,0xa7,0x2f,0xe2,0x1, 0xc7,0x4f,0xcf,0x20,0xbf,0x2f,0xe0,0x2, 0x17,0x0, +0xb7,0x3f,0xa7,0x3f,0xcf,0x40,0xbf,0x3f,0xe0,0x61,0x3f,0x82,0xe0,0x40,0xcf,0x80, +0xe0,0x61,0x3f,0x92,0x38,0x82,0x8, 0xb2,0xe0,0x1, 0x1f,0x5c,0x17,0xff,0xa1,0xe, +0xb7,0xd2,0xe0,0x1, 0xb7,0xd2,0xe0,0x6, 0xd5,0x11,0xe0,0x2, 0x1f,0xe6,0xe0,0x41, +0x3f,0x8, 0xac,0xf, 0xe7,0xfb,0x16,0xff,0xa7,0x82,0xe2,0x0, 0xc7,0x1, 0x37,0x29, +0x3f,0xdd,0x3f,0xce,0xbf,0x82,0xe0,0x1, 0x17,0xc3,0xb7,0xb2,0xda,0xa6,0xa7,0xb2, +0x16,0xef,0xcf,0x84,0xbf,0xb2,0x17,0xfb,0xa7,0x12,0x3f,0x5f,0xbf,0x12,0x17,0xf7, +0xa7,0x32,0xcf,0x8, 0xbf,0x32,0xa7,0x12,0x3f,0x5f,0xbf,0x12,0xa7,0x32,0xcf,0x10, +0xbf,0x32,0xa7,0x12,0x3f,0x5d,0xbf,0x12,0xa7,0xc2,0x3f,0xdd,0xbf,0xc2,0x9, 0x61, +0xe0,0x2, 0x1f,0x90,0xe7,0xff,0x16,0xbf,0xa7,0x8f,0xa7,0x1f,0xcf,0x1, 0xbf,0x1f, +0xa7,0xf, 0x3f,0x5d,0xbf,0xf, 0xe7,0xfe,0x16,0xff,0xa7,0x2f,0x3f,0x5d,0xbf,0x2f, +0x17,0x2f,0xbf,0x2f,0xa7,0x1f,0xcf,0x2, 0xbf,0x1f,0xa7,0x3f,0xcf,0x10,0xbf,0x3f, +0xa7,0xf, 0xcf,0x40,0xbf,0xf, 0xe0,0x61,0x3f,0x82,0xe7,0xf7,0x17,0x7f,0x3f,0xde, +0xe0,0x61,0x3f,0x92,0x38,0x82,0xe0,0x2, 0x1f,0x90,0xa7,0x8f,0xa7,0x2f,0x27,0x7, +0xa7,0x3f,0xcf,0x10,0xbf,0x3f,0xa7,0xf, 0xcf,0x40,0xbf,0xf, 0x38,0x82,0xe0,0x2, +0x1f,0x91,0xe0,0x0, 0x1e,0x40,0xa7,0xf, 0xe7,0xfe,0x15,0x7f,0xa7,0xbe,0xe0,0x0, +0x1d,0xc2,0xcf,0x81,0xbf,0xbe,0xa6,0x8e,0xe0,0x3, 0x1f,0x81,0xce,0x82,0xbe,0x8e, +0x16,0xa0,0xb6,0x8c,0xa6,0x9e,0xa7,0x8f,0x3e,0xda,0xbe,0x9e,0xa6,0x9e,0xa5,0x8b, +0xe0,0x8, 0xce,0x80,0xbe,0x9e,0x16,0xf7,0xa7,0xf, 0xcf,0x1, 0xbf,0xf, 0xa7,0xf, +0xcf,0x8, 0xbf,0xf, 0xa7,0xb, 0x3f,0x5d,0xbf,0xb, 0x17,0x0, 0xe0,0x1, 0xaf,0x3f, +0x96,0xc, 0xb6,0x3f,0xe0,0x61,0x3f,0x2, 0xe0,0x2, 0xcf,0x0, 0xe0,0x61,0x3f,0x12, +0xa7,0xf, 0xcf,0x1, 0xbf,0xf, 0xa7,0xf, 0xe0,0x1, 0xcf,0x0, 0xbf,0xf, 0x38,0x82, +0xe0,0x3, 0x1f,0x4b,0xe2,0xff,0x17,0xf0,0xbf,0xf, 0xe2,0xff,0x17,0xf4,0xe0,0x3, +0x1f,0x4c,0xbf,0xf, 0xe2,0xff,0x17,0xf8,0xe0,0x3, 0x1f,0x4d,0xbf,0xf, 0xe2,0xff, +0x17,0xfc,0xe0,0x3, 0x1f,0x4e,0xbf,0xf, 0x38,0x82,0xe0,0x1, 0x1f,0xdc,0x16,0x80, +0xa7,0x8f,0x17,0x0, 0xe0,0x3, 0xb6,0xbf,0xe0,0x2, 0x16,0x84,0xbf,0xd, 0xe0,0x2, +0x16,0x88,0xbf,0xd, 0x17,0x7f,0xe0,0x7, 0xaf,0x3f,0x38,0x82,0xe0,0x1, 0x1f,0xdc, +0xe0,0x0, 0x16,0xeb,0xa7,0x8f,0x17,0x0, 0xe0,0x3, 0xb6,0xbf,0xe0,0x2, 0x16,0x84, +0xbf,0xd, 0xe0,0x2, 0x16,0x88,0xbf,0xd, 0x17,0x7f,0xe0,0x7, 0xaf,0x3f,0x38,0x82, +0xc4,0x7f,0xe1,0xff,0x17,0x7f,0xe3,0xff,0xc4,0x7f,0x3c,0x7e,0x1, 0xc, 0x17,0x88, +0x0, 0x0, 0xc7,0xff,0xe2,0x1, 0xc7,0xff,0x2f,0xfc,0xc4,0x7f,0xe3,0xff,0xc4,0x7f, +0x3c,0x7e,0x1, 0xf6,0x38,0x82,0x0, 0x0, 0xc4,0x7f,0xe1,0xff,0x16,0x7f,0xe3,0xff, +0xc4,0x7f,0x3c,0x7c,0x1, 0x17,0x16,0x84,0xe0,0x1, 0x17,0x7a,0x17,0x88,0x0, 0x0, +0xc7,0xff,0xe2,0x1, 0xc7,0xff,0x2f,0xfc,0xc7,0x7f,0xe3,0xff,0xc7,0x7f,0x2f,0x77, +0xc6,0xff,0xe2,0x1, 0xc6,0xff,0x2e,0xf1,0xc4,0x7f,0xe3,0xff,0xc4,0x7f,0x3c,0x7c, +0x1, 0xeb,0x38,0x82,0xe0,0x3, 0x1f,0xb8,0xa7,0xf, 0xa7,0xce,0xe2,0x0, 0xc7,0x81, +0x27,0x98,0xe0,0x2, 0x1f,0x91,0xe7,0xff,0x16,0x3f,0xa7,0x8f,0xa6,0xdf,0xe0,0x1, +0xce,0x80,0xbe,0xdf,0xa6,0xdf,0x3e,0xdc,0xbe,0xdf,0xa7,0x4e,0x37,0x4a,0xe2,0x0, +0xc7,0x1, 0x2f,0x1e,0xa7,0x5f,0xe6,0xff,0x16,0xff,0x3f,0x5d,0xbf,0x5f,0x38,0x82, +0xa7,0xce,0x37,0xcf,0xe2,0x0, 0xc7,0x81,0x2f,0x98,0xe0,0x2, 0x1f,0x91,0xe7,0xff, +0x16,0x3f,0xa7,0x8f,0xa6,0xdf,0x3e,0xdc,0xbe,0xdf,0xe7,0xfe,0x16,0x7f,0xa6,0xdf, +0x3e,0xdc,0xbe,0xdf,0xa7,0x4e,0x37,0x4a,0xe2,0x0, 0xc7,0x1, 0x27,0x64,0xa7,0x5f, +0xe1,0x0, 0xcf,0x0, 0xbf,0x5f,0x38,0x82,0xe0,0x2, 0x1f,0x91,0xa7,0x8f,0xa6,0xdf, +0xce,0xc0,0x0, 0xeb,0x8, 0xb4,0xe0,0x3, 0x19,0x36,0x8f,0x82,0xe2,0x1, 0xcf,0x81, +0x1, 0x4, 0x17,0x80,0xaf,0x82,0xa, 0x61,0x24,0x2b,0xe2,0x0, 0xcc,0x1, 0x39,0xe9, +0x1, 0x30,0xe2,0x0, 0xcc,0x2, 0x1, 0xf6,0x3f,0x83,0xdf,0xad,0xe0,0x2, 0x1f,0x91, +0xe0,0x3, 0x1f,0x18,0xa7,0x8f,0x9f,0xe, 0xbf,0x6f,0x21,0x84,0xa4,0xef,0x3c,0xc3, +0xbc,0xef,0xe0,0x0, 0x1f,0x3d,0xa7,0xe, 0xa7,0xe, 0x37,0x43,0xe2,0x0, 0xc7,0x1, +0x2f,0xe, 0xa7,0x3f,0xcf,0x1, 0xbf,0x3f,0xa7,0xf, 0xe0,0x1, 0xcf,0x0, 0xbf,0xf, +0xa7,0x3f,0xcf,0x1, 0xbf,0x3f,0xa7,0xf, 0xcf,0x40,0xbf,0xf, 0x3b,0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x17,0x80,0xaf,0x82,0xa, 0x61, +0x3f,0x83,0x17,0x82,0x3f,0xd9,0x2f,0xae,0xdf,0x7e,0xe0,0x2, 0x1f,0x91,0xe0,0x3, +0x1f,0x18,0xa7,0x8f,0x9f,0xe, 0xbf,0x6f,0xe0,0x0, 0x1f,0x3d,0xa2,0xe, 0x29,0xb0, +0xa7,0x3f,0xe7,0xfe,0x16,0xff,0xcf,0x1, 0xbf,0x3f,0xa7,0xf, 0x3f,0x5d,0xbf,0xf, +0xa7,0x3f,0xcf,0x1, 0xbf,0x3f,0xa7,0xf, 0xcf,0x40,0xbf,0xf, 0x3b,0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa7,0x84,0x37,0xc5,0xe2,0x0, +0xc7,0x81,0xe7,0xff,0x27,0xa0,0xa7,0x84,0x17,0x5f,0x3f,0xde,0xbf,0x84,0xe7,0xff, +0x0, 0x9a,0xe0,0x0, 0x1f,0xbd,0xa2,0xf, 0xa7,0x84,0xcf,0xa0,0xbf,0x84,0xdf,0x4b, +0xe0,0x2, 0x1f,0x91,0xe0,0x3, 0x1f,0x18,0xa7,0x8f,0x9f,0xe, 0xbf,0x6f,0xa4,0xef, +0x3c,0xc3,0xbc,0xef,0x0, 0xce,0x8, 0xb1,0xe0,0x1, 0x1f,0xdc,0x17,0x0, 0xa6,0x8f, +0xe0,0x2, 0x1f,0x91,0xe0,0x2, 0xbf,0xd, 0x16,0x6f,0xa7,0x8f,0xbf,0x6f,0xa6,0xdf, +0xe0,0x80,0xce,0x80,0xbe,0xdf,0xa6,0xdf,0xe0,0x40,0xce,0x80,0xbe,0xdf,0xa6,0xdf, +0xe0,0x20,0xce,0x80,0xbe,0xdf,0xa6,0xef,0xce,0xc0,0xbe,0xef,0xa6,0xef,0xce,0xa0, +0xbe,0xef,0xa6,0xef,0x3e,0xdc,0xbe,0xef,0xe7,0x7f,0x16,0x7f,0xa6,0xef,0xe1,0x0, +0xce,0x80,0xbe,0xef,0xa6,0xef,0x3e,0xdc,0xbe,0xef,0xe7,0xbf,0x16,0x7f,0xa6,0xef, +0x3e,0xdc,0xbe,0xef,0xe7,0xdf,0x16,0x7f,0xa6,0xef,0x3e,0xdc,0xbe,0xef,0xa6,0xef, +0xe0,0x10,0xce,0x80,0xbe,0xef,0xe0,0x3, 0x1f,0x98,0xb7,0xf, 0xdf,0x4, 0xe0,0x61, +0x3f,0x82,0x17,0x7d,0x3f,0xde,0xe0,0x61,0x3f,0x92,0xe0,0x61,0x3f,0x82,0x17,0x7b, +0x3f,0xde,0xe0,0x61,0x3f,0x92,0x8, 0xe1,0xe0,0x1, 0x1f,0xdc,0xe2,0x0, 0xcc,0x2, +0xa7,0x8f,0xe0,0x0, 0x1, 0x57,0xe2,0x0, 0xcc,0x3, 0x1, 0x36,0xe2,0x0, 0xcc,0x1, +0x1, 0x19,0xa6,0x8f,0xe0,0x2, 0x1f,0x11,0x16,0x7b,0xa7,0xe, 0x3e,0xdc,0xbe,0x8f, +0xe6,0xff,0x16,0x7f,0xa6,0xce,0x3e,0xdc,0xbe,0xce,0x16,0x78,0xa6,0xce,0x3e,0xdc, +0xbe,0xce,0x16,0xf7,0xa7,0xf, 0x3f,0x5d,0xbf,0xf, 0x16,0x80,0xe0,0x1, 0xbe,0xbf, +0x38,0x82,0xa7,0xf, 0x16,0x77,0x3f,0x5c,0xbf,0xf, 0x17,0x0, 0xe0,0x1, 0xbf,0x3f, +0x16,0x78,0xa7,0xf, 0xe0,0x2, 0x1e,0x91,0xcf,0x4, 0xa6,0x8d,0xbf,0xf, 0xa7,0x4d, +0xe1,0x0, 0xcf,0x0, 0xbf,0x4d,0xa7,0x4d,0x3f,0x5c,0xcf,0x1, 0xbf,0x4d,0xa7,0x1f, +0xcf,0x8, 0xbf,0x1f,0x38,0x82,0xa7,0xf, 0xe0,0x2, 0x1e,0x91,0x16,0x7b,0x3f,0x5c, +0xa6,0x8d,0xbf,0xf, 0xe6,0xff,0x16,0x7f,0xa7,0x4d,0x3f,0x5c,0xbf,0x4d,0xa7,0xf, +0xcf,0x8, 0xbf,0xf, 0x17,0x0, 0xe0,0x1, 0xbf,0x3f,0xa7,0x1f,0xe0,0x20,0xcf,0x0, +0xbf,0x1f,0xa7,0x1f,0xcf,0x10,0xbf,0x1f,0xa7,0x1f,0xcf,0x8, 0xbf,0x1f,0x38,0x82, +0xa6,0x8f,0x16,0x77,0x3e,0xdc,0xbe,0x8f,0x16,0x80,0xe0,0x1, 0xbe,0xbf,0x16,0x78, +0xa6,0x8f,0xe0,0x2, 0x1f,0x11,0xce,0x84,0xa7,0xe, 0xbe,0x8f,0xa6,0xce,0xe1,0x0, +0xce,0x80,0xbe,0xce,0xa6,0xce,0x3e,0xdc,0xbe,0xce,0xa7,0x1f,0xcf,0x8, 0xbf,0x1f, +0x38,0x82,0x8, 0xb3,0xe0,0x2, 0x1f,0x91,0xa1,0x8f,0xe0,0x1, 0x1f,0xdc,0xa1,0xf, +0xa7,0xb3,0xcf,0x81,0xbf,0xb3,0xa7,0x83,0xcf,0x88,0xbf,0x83,0xe0,0x1, 0xa7,0x92, +0xcf,0x82,0xe0,0x1, 0xbf,0x92,0xe0,0x1, 0xa7,0x92,0xcf,0x81,0xe0,0x1, 0xbf,0x92, +0xe0,0x3, 0x1f,0x8d,0x8c,0xf, 0xdf,0x71,0xa7,0xd3,0x17,0x7d,0xcf,0x81,0xbf,0xd3, +0xa7,0xd3,0x3f,0xde,0xbf,0xd3,0x17,0x7b,0xa7,0xd3,0x3f,0xde,0xbf,0xd3,0x17,0x77, +0xa7,0xd3,0x3f,0xde,0xbf,0xd3,0x17,0x6f,0xa7,0xd3,0x3f,0xde,0xbf,0xd3,0xe6,0xff, +0x17,0x7f,0xa7,0xd3,0xcf,0xa0,0xbf,0xd3,0xe0,0x1, 0xa7,0xa2,0x3f,0xde,0xe0,0x1, +0xbf,0xa2,0x17,0x78,0xe0,0x1, 0xa7,0xa2,0xe0,0x60,0xcf,0x80,0xe0,0x1, 0xbf,0xa2, +0xe0,0x1, 0xa7,0xa2,0xcf,0x88,0xe0,0x1, 0xbf,0xa2,0xe0,0x1, 0xa7,0xa2,0x3f,0xde, +0xcf,0x85,0xe0,0x1, 0xbf,0xa2,0xe0,0x1, 0xa7,0xa2,0xe0,0x2, 0xcf,0x80,0xe0,0x1, +0xbf,0xa2,0xe0,0x1, 0xa7,0xa2,0xe0,0x4, 0xcf,0x80,0xe0,0x1, 0xbf,0xa2,0x9, 0xe1, +0xe0,0x2, 0x1f,0x91,0xe7,0xfd,0x16,0xff,0xa7,0x8f,0xa7,0x1f,0xe0,0x20,0xcf,0x0, +0xbf,0x1f,0xa7,0x1f,0xe0,0x2, 0xcf,0x0, 0xbf,0x1f,0xa7,0x2f,0x3f,0x5d,0xbf,0x2f, +0xe7,0xff,0x16,0xbf,0xa7,0x1f,0xe0,0x4, 0xcf,0x0, 0xbf,0x1f,0xa7,0x2f,0xe0,0x1, +0xcf,0x0, 0xbf,0x2f,0xa7,0x2f,0x3f,0x5d,0xbf,0x2f,0x16,0xef,0xa7,0x2f,0x3f,0x5d, +0xbf,0x2f,0x16,0xf7,0xa7,0x2f,0x3f,0x5d,0xbf,0x2f,0x38,0x82,0xe0,0x1, 0x1f,0xdc, +0x17,0x1, 0xa7,0x8f,0x3f,0x58,0xe0,0x1, 0xa6,0xaf,0x15,0xf7,0xe0,0xc, 0x37,0x23, +0x3e,0xdb,0x3e,0xcc,0xe0,0x1, 0xbe,0xaf,0xe7,0xfd,0x15,0xff,0xe0,0x1, 0xa6,0xaf, +0xe0,0xc, 0x37,0x28,0x3e,0xdb,0x3e,0xcc,0xe0,0x1, 0xbe,0xaf,0xe7,0xfb,0x16,0xff, +0xe0,0x1, 0xa4,0x2f,0x37,0x29,0x3c,0x5d,0x3c,0x4e,0xe0,0x1, 0xbc,0x2f,0x38,0x82, +0x8, 0xb1,0xe0,0x5, 0xdc,0x73,0x24,0x6, 0xe0,0x2, 0x1f,0x14,0x97,0xce,0xcf,0x82, +0xb7,0xce,0xe0,0x2, 0x1f,0xb3,0x8f,0x8f,0x27,0x82,0x8, 0xe1,0x8, 0xa1,0xe7,0xe0, +0x0, 0x95,0xe0,0x2, 0x1e,0x92,0xe0,0x2, 0x1f,0x14,0x97,0x8d,0xcf,0x81,0xb7,0x8d, +0x97,0xce,0xcf,0x84,0xb7,0xce,0xe0,0x3, 0x1f,0xb8,0xa7,0x8f,0xa7,0xcf,0xe2,0x0, +0xc7,0x81,0x2f,0x82,0x38,0x82,0x0, 0xdd,0xe0,0x2, 0x1f,0x12,0xe0,0x2, 0x1e,0x94, +0x97,0x8e,0xcf,0x81,0xb7,0x8e,0x97,0x4d,0xe0,0x3, 0x1f,0xb8,0xcf,0x4, 0xa7,0x8f, +0xb7,0x4d,0xa7,0x5f,0xcf,0x8, 0xbf,0x5f,0xa7,0xcf,0xe2,0x0, 0xc7,0x81,0x27,0x82, +0x38,0x82,0x0, 0xc7,0xe0,0x61,0x3f,0x82,0xe0,0x61,0x3f,0x2, 0xe7,0xfe,0x16,0xff, +0x3f,0x5d,0xe0,0x61,0x3f,0x12,0xe0,0x3, 0x1f,0x38,0x16,0x7e,0xa7,0xe, 0xe2,0x0, +0xc4,0x1, 0xa6,0xbe,0x15,0xfd,0x3e,0xdc,0x3e,0xc8,0xbe,0xbe,0xe0,0xc, 0x34,0x21, +0xa6,0xbe,0x34,0x2a,0x3e,0xdb,0x3e,0xcc,0xbe,0xbe,0xe7,0xf7,0x16,0x7f,0xa6,0xbe, +0x37,0xc7,0x3e,0xdc,0x3c,0x4d,0xbc,0x3e,0xe2,0x0, 0xc7,0x81,0x27,0x87,0xe0,0x61, +0x3f,0x82,0xe0,0x1, 0xcf,0x80,0xe0,0x61,0x3f,0x92,0x38,0x82,0x8, 0xb1,0xe0,0x1, +0x1f,0xdc,0xe7,0x7f,0x16,0xff,0xa7,0xf, 0xe7,0xfb,0x16,0x7f,0xa7,0x8e,0xe7,0xe0, +0x14,0x80,0x3f,0xdd,0xbf,0x8e,0xf0,0x1a,0x13,0x98,0xe0,0x1, 0xa6,0xee,0xe0,0x3, +0x1f,0xb8,0xe0,0x4, 0xce,0x80,0xe0,0x1, 0xbe,0xee,0xe0,0x1a,0x15,0x19,0xe0,0x1, +0xa6,0xee,0xa7,0x8f,0x3e,0xdc,0xe0,0x1, 0xbe,0xee,0x16,0x81,0xbe,0xdf,0xe7,0xf8, +0x16,0x0, 0xa6,0xef,0x17,0x0, 0xe3,0xfe,0xc6,0x9f,0xbe,0xef,0xe7,0x80,0x14,0x0, +0xa6,0xef,0xe0,0x1, 0x1d,0xc2,0xbe,0xef,0xf0,0x17,0x3b,0x9b,0xe0,0x1, 0xa6,0xdf, +0x3d,0x1b,0xe3,0xff,0xc6,0x80,0xe0,0x1, 0xbe,0xdf,0xe0,0x1, 0xa6,0xdf,0xe0,0x1, +0xbe,0xdf,0xe0,0x3, 0x16,0xe0,0xe0,0x1, 0xbe,0xef,0xe0,0x1, 0xa6,0xff,0x3e,0xdc, +0xe0,0x1, 0xbe,0xff,0xe7,0xf0,0x16,0x0, 0xe0,0x2, 0xa6,0x8f,0x3e,0xd9,0xe0,0x2, +0xbe,0x8f,0xe0,0x2, 0xa6,0x9f,0x3e,0xd9,0xe0,0x2, 0xbe,0x9f,0xe0,0x17,0x16,0xb8, +0xe0,0x4, 0xb6,0xdf,0xe0,0x2, 0xa6,0xcf,0x3e,0xdc,0xe0,0x2, 0xbe,0xcf,0xe0,0x9, +0x16,0x88,0xe0,0x2, 0xbe,0xbf,0xe0,0x12,0x16,0xdc,0xe0,0x2, 0xbe,0xdf,0xe1,0x20, +0x16,0x80,0xe0,0x2, 0xbf,0x6f,0xe0,0x2, 0xbe,0xff,0xe0,0x3, 0xa5,0xef,0x3d,0xd8, +0xcd,0xe4,0xe0,0x3, 0xbd,0xef,0xe0,0x3, 0xa6,0x7f,0x3e,0x58,0xce,0x64,0xe0,0x3, +0xbe,0x7f,0xe0,0x4, 0xa6,0x8f,0x3e,0xd9,0xe0,0x7, 0xce,0xe8,0xe0,0x4, 0xbe,0x8f, +0xe1,0xff,0x16,0xff,0xe0,0x4, 0xbf,0x1f,0xbe,0x9f,0xe1,0x39,0x16,0x83,0xbf,0x3f, +0xbe,0xbf,0xe0,0x2, 0x1e,0x92,0xb7,0xd, 0xa6,0xbf,0xbe,0xaf,0xe0,0x3, 0x1f,0x9d, +0xe8,0x0, 0x86,0x87,0xb7,0xf, 0xe0,0x2, 0x1f,0xba,0x87,0xa, 0xae,0x8f,0xe0,0x3, +0x1f,0xc3,0xaf,0xf, 0xef,0xfe,0xda,0x2f,0xe0,0x5, 0xda,0x42,0xe0,0x61,0x3f,0x82, +0xe0,0x1, 0xcf,0x80,0xe0,0x61,0x3f,0x92,0x8, 0xe1,0x8, 0xb1,0xf0,0x3, 0x18,0xb8, +0xe7,0xbf,0x16,0x7f,0xe8,0x0, 0xa7,0x1, 0xe0,0x2, 0x1e,0xfd,0xe0,0x1, 0xa7,0xee, +0xf0,0x3, 0x19,0xcf,0x3f,0xdc,0xe0,0x1, 0xbf,0xee,0xfa,0xd7,0xca,0xa8,0xe0,0x2, +0x1f,0xe6,0xe0,0x1, 0x9d,0x2d,0x85,0x8f,0xe0,0x1, 0x1f,0xc2,0xe0,0x1, 0x9e,0x1d, +0xf0,0x10,0x89,0x7f,0xe0,0x0, 0x1f,0xc4,0xe0,0x3, 0x1e,0xd0,0xe4,0xa, 0x35,0x20, +0xe4,0xc, 0x36,0x20,0xa7,0x8f,0xf0,0x3, 0x1b,0xd1,0xe0,0x3, 0x1c,0x52,0xe0,0x3, +0x1c,0xd3,0xe0,0x3, 0x18,0xd4,0xf0,0x3, 0x18,0x55,0xf0,0x3, 0x1a,0x56,0x17,0x0, +0xe2,0x0, 0xc5,0x81,0x3d,0x4d,0x3e,0x4d,0xf0,0xa9,0x13,0x15,0xe8,0x40,0x3d,0xf2, +0xf0,0x0, 0xb9,0x8f,0x1, 0x24,0xbe,0x1f,0x16,0xfd,0x3e,0x9e,0xe2,0x1, 0xc6,0xff, +0xf0,0x0, 0xba,0xaf,0xe2,0x0, 0xce,0x81,0xf0,0x0, 0xbb,0x3f,0x5, 0x9a,0xbc,0x4f, +0xbc,0xdf,0xf0,0x0, 0xbb,0xef,0xc7,0x1, 0xe2,0x1, 0xc7,0x7f,0xe2,0x0, 0xcf,0x5, +0xf0,0x0, 0xba,0x7f,0xe0,0x7, 0xc7,0xb0,0x1, 0xe2,0xe8,0x0, 0xa7,0x1, 0xe0,0x1, +0xa7,0xee,0xe0,0x40,0xcf,0x80,0xe0,0x1, 0xbf,0xee,0x8, 0xe1,0xbd,0x1f,0x0, 0xdd, +0xb8,0xcf,0xe2,0x0, 0xcf,0x4, 0xf0,0x0, 0xb8,0x5f,0xf0,0x0, 0xbb,0xef,0x1, 0xe4, +0xe0,0x3, 0x1f,0x57,0xbf,0x7f,0x0, 0xea,0x8, 0xb2,0xe0,0x2, 0x19,0x3d,0x8f,0x82, +0x27,0x8d,0xe0,0x0, 0x14,0xda,0x14,0x11,0xe0,0x5, 0xdb,0x3a,0xe0,0x0, 0x14,0xda, +0x14,0x29,0xe0,0x5, 0xdb,0x35,0x17,0x80,0xaf,0x82,0x9, 0x61,0xe0,0x2, 0x1f,0xec, +0x17,0x0, 0xb7,0xf, 0xe0,0x2, 0x1f,0x99,0xaf,0xf, 0x38,0x82,0xe0,0x2, 0x1f,0x19, +0x87,0x8e,0xc7,0x81,0xe2,0x1, 0xc7,0xff,0xe2,0x1, 0xcf,0xc8,0x5, 0x82,0x17,0xc8, +0xaf,0x8e,0x38,0x82,0xe0,0x0, 0x1f,0xcd,0x14,0x1, 0x8f,0x8f,0x2f,0x89,0xe0,0x2, +0x1f,0x99,0x8c,0xf, 0xe0,0x3, 0x1f,0x92,0x8f,0x8f,0xe1,0x28,0x3c,0x1f,0x38,0x82, +0x8, 0xb1,0x3c,0x98,0x34,0xa4,0xe1,0x77,0x14,0x0, 0xe0,0x6, 0xd1,0x49,0xe3,0xff, +0xc4,0x7f,0x8, 0xe1,0xea,0x0, 0xcc,0x2, 0xe0,0x48,0xcc,0x0, 0x14,0x80,0xea,0x0, +0xcd,0x3, 0xe0,0x22,0xcd,0x7c,0x3d,0x28,0xe0,0x6, 0xd1,0xd6,0xea,0x0, 0xcc,0x0, +0xe0,0x0, 0xcc,0x0, 0x24,0x2, 0x3c,0x1, 0x14,0x0, 0x14,0x80,0xef,0xfe,0xd4,0x70, +0x3a,0x80,0x0, 0x0, 0x3a,0x80,0xe0,0x3, 0x1f,0xc3,0xe0,0x1, 0x17,0x7d,0x8f,0x8f, +0x3f,0x58,0xe2,0x0, 0xcf,0x80,0x3c,0x6f,0x17,0x80,0xe1,0x2f,0x3f,0xf, 0xe0,0x68, +0x39,0xaf,0x38,0x82,0x8, 0xb3,0xe0,0x3, 0x19,0xb0,0x11,0x0, 0x8c,0x33,0x3c,0xe2, +0xc1,0x1, 0xef,0xfe,0xd6,0x58,0xe2,0x1, 0xc1,0x7f,0xe2,0x0, 0xc9,0x3, 0xc1,0x85, +0x1, 0xf6,0x14,0x81,0x3c,0x62,0xef,0xfe,0xd6,0x4e,0x14,0x81,0x14,0x4, 0xef,0xfe, +0xd6,0x4a,0xe0,0x2, 0x1f,0xc8,0x8c,0x8f,0x24,0x82,0x14,0x81,0x14,0x0, 0x9, 0xa1, +0xe7,0xcc,0x0, 0xc1,0x8, 0xb1,0xdf,0xa, 0xef,0xfe,0xd5,0xaf,0x8, 0xa1,0x0, 0xdb, +0x8, 0xb2,0xe0,0x3, 0x1f,0xb8,0xe0,0x0, 0x19,0x4d,0xa7,0x8f,0xa7,0xcf,0xe2,0x0, +0xc7,0x81,0x2f,0x95,0xe0,0x2, 0x1f,0x48,0xaf,0x82,0x3c,0xef,0xaf,0x8e,0x3c,0x6f, +0xe0,0x1, 0x1f,0x4c,0xaf,0x8e,0xe0,0x3, 0x1f,0x2, 0xaf,0x8e,0xef,0xfe,0xd6,0x23, +0xef,0xfe,0xd8,0xc4,0x8c,0x2, 0x9, 0x21,0xe7,0xd7,0x0, 0xf2,0x17,0x81,0xe0,0x2, +0x1f,0x48,0xe0,0x2, 0x1c,0x68,0xaf,0x82,0xaf,0x8e,0xe0,0x2, 0xd6,0x8f,0xe0,0x1, +0x1f,0xcc,0xe0,0x3, 0x1f,0x1e,0xac,0xf, 0x87,0x8f,0xaf,0x8e,0xe0,0x2, 0xd5,0x3b, +0x14,0x81,0x14,0x0, 0xef,0xfe,0xd6,0x7, 0x0, 0xe4,0x8, 0xb3,0x14,0x0, 0xde,0x3, +0xe0,0x2, 0x1f,0x92,0x14,0x1, 0x91,0x8f,0x99,0xf, 0x39,0xd8,0x31,0x58,0x39,0x58, +0xdd,0xfa,0xe0,0x8, 0x39,0xc2,0x9, 0xe1,0x8, 0xb2,0xe0,0x2, 0xd6,0xac,0xdf,0x2d, +0x14,0x0, 0xdd,0xf1,0xe0,0x2, 0x1f,0x12,0x9f,0x8e,0x37,0xc1,0xe2,0x0, 0xc7,0x81, +0x27,0x8b,0x97,0x8e,0xe0,0x2, 0x1e,0x94,0xe3,0xff,0xc7,0xfd,0xb7,0x8e,0x97,0xcd, +0xe3,0xff,0xc7,0xf7,0xb7,0xcd,0x97,0x8e,0xe0,0x2, 0x19,0x77,0xe2,0x0, 0xc7,0x81, +0x2f,0x97,0x14,0x1, 0xdd,0xd8,0xe0,0x2, 0x1f,0x48,0x8f,0x82,0x8e,0x8e,0x37,0xdd, +0xe2,0x0, 0xc7,0x81,0x2f,0x89,0xe0,0x2, 0x1f,0xfb,0x8f,0x8f,0x8f,0xe, 0x37,0xde, +0xe2,0x0, 0xc7,0x81,0x27,0x84,0x9, 0x21,0xe7,0xed,0x0, 0x8c,0x9, 0x61,0x97,0x8e, +0xe0,0x2, 0x1e,0x94,0xe3,0xff,0xc7,0xfe,0xb7,0x8e,0x97,0xcd,0xe3,0xff,0xc7,0xfb, +0xb7,0xcd,0xdf,0x7f,0xef,0xfd,0xdd,0xa6,0x14,0x1, 0xe0,0x1, 0xd8,0x9b,0xe0,0x2, +0x1f,0x7b,0x17,0x87,0xaf,0x8e,0xaf,0x82,0x0, 0xd5,0xe0,0x1, 0x1f,0xe8,0xe0,0x3, +0x1f,0x4, 0x8f,0x8f,0xe0,0x1, 0x8e,0xce,0xe2,0x0, 0xcf,0x85,0x2, 0x8c,0x26,0x9c, +0xe0,0x2, 0x1e,0x21,0xe0,0x1, 0x8d,0x9e,0x3f,0x9c,0x8e,0xf, 0x3d,0xfc,0x5, 0xb6, +0xc6,0x1, 0xae,0xf, 0xe2,0x0, 0xce,0x81,0x1, 0x1f,0xe0,0x2, 0x1f,0xb4,0x16,0x80, +0xae,0x8f,0xe0,0x1, 0x8f,0xee,0xe2,0x0, 0xcf,0x81,0xeb,0xe5,0x7f,0xeb,0x1, 0x9, +0x17,0x1, 0xaf,0xf, 0x38,0x82,0xe0,0x2, 0x1e,0x21,0x3f,0x9c,0xae,0x8f,0x0, 0xee, +0x8e,0x8f,0xe0,0x1, 0x8e,0xe, 0x3e,0x7d,0x5, 0xf4,0xc6,0x81,0x16,0x0, 0xe0,0x1, +0xae,0x6e,0xae,0x8f,0x38,0x82,0xe0,0x2, 0x1e,0x34,0xe0,0x1, 0x8e,0x9e,0x8f,0x8c, +0x15,0x80,0x3e,0xff,0xe0,0x1, 0xad,0xee,0x5, 0x8c,0x16,0x81,0x3e,0x9f,0xeb,0xe5, +0x7f,0xeb,0xe0,0x1, 0xad,0xce,0xae,0x8c,0x0, 0xdc,0x16,0x80,0xae,0x8f,0x0, 0xd2, +0xeb,0xe5,0x7f,0xeb,0xad,0x8c,0x0, 0xd5,0x8, 0xb5,0xe0,0x3, 0x19,0x4, 0x17,0x1, +0x9f,0xd2,0xe0,0x1, 0xaf,0x62,0xe0,0x43,0x3f,0x1f,0xe2,0x0, 0xcf,0x0, 0xe0,0x1, +0x4, 0x4a,0xe0,0x2, 0x1f,0x5d,0x8f,0xe, 0x27,0x4, 0x17,0x0, 0xe0,0x1, 0xaf,0x62, +0xe2,0x0, 0xc7,0xa0,0x27,0x84,0x17,0x80,0xe0,0x1, 0xaf,0xe2,0xe0,0x1, 0x19,0xe9, +0x8f,0x83,0x2f,0x83,0xe0,0x1, 0xaf,0xe2,0xe0,0x2, 0x1a,0x48,0xe0,0x2, 0x1a,0xc0, +0x8c,0x4, 0xde,0xca,0x24,0x7, 0xe0,0x4, 0x8f,0xd5,0xe2,0x0, 0xcf,0x81,0xe0,0x1, +0x1, 0x1e,0x9f,0x52,0x17,0x80,0xe0,0x80,0x16,0x80,0xe0,0x1, 0xaf,0xc2,0x3e,0xde, +0xe0,0x1, 0xaf,0xd2,0x26,0x84,0x17,0x81,0xe0,0x1, 0xaf,0xc2,0xe0,0x4, 0x17,0x80, +0x3f,0xde,0x2f,0x83,0xe0,0x1, 0xaf,0xc2,0xe0,0x1, 0x1f,0xc7,0x9f,0x8f,0xe2,0x4, +0xcf,0xd8,0xe0,0x2, 0x1f,0xfe,0xe0,0x0, 0x5, 0xe5,0x16,0x8f,0xae,0x8f,0x8e,0x84, +0xe2,0x0, 0xce,0x81,0xe0,0x0, 0x1, 0x68,0x16,0x80,0xae,0x8f,0x17,0xa0,0x3f,0xde, +0x27,0x84,0x17,0x80,0xe0,0x1, 0xaf,0xc2,0x8f,0x83,0x2f,0x83,0xe0,0x1, 0xaf,0xc2, +0xe0,0x1, 0x17,0x80,0x3f,0xde,0x27,0x84,0x17,0x80,0xe0,0x1, 0xaf,0xc2,0x11,0x84, +0xe0,0x1, 0x1f,0xd7,0x96,0xbf,0xe0,0x0, 0x1f,0x8d,0xe0,0x1b,0x96,0x1f,0xe0,0xf, +0x36,0xa1,0x3e,0x7f,0x4, 0x5, 0x3e,0x7d,0x11,0x83,0xe0,0x0, 0x3, 0x4e,0xe2,0x2, +0xc7,0x0, 0xe2,0x0, 0xcf,0x0, 0x17,0x84,0xe0,0x6f,0x39,0x23,0x39,0xef,0xe0,0x1, +0xda,0x3d,0xe0,0x1, 0x1f,0x91,0xe2,0x0, 0xcc,0x0, 0x8f,0xf, 0xe0,0x1, 0x1f,0x90, +0x37,0x28,0x8f,0x8f,0x16,0x81,0xe0,0x6d,0x39,0x23,0x3f,0xce,0xe0,0x1, 0x1f,0xf, +0x3f,0xbd,0xe0,0x0, 0x1e,0x8e,0x8f,0xe, 0xe0,0x43,0x3f,0x9f,0x8e,0x8d,0xb7,0xb2, +0xe0,0x1, 0xaf,0x2, 0x26,0x8a,0x96,0xd2,0xe2,0x0, 0xce,0x80,0x4, 0x6, 0xe2,0x0, +0xcf,0x81,0x5, 0x3d,0x37,0x81,0xb7,0xb2,0xe0,0x4, 0x8f,0xd5,0xe2,0x0, 0xcf,0x81, +0x1, 0x85,0x97,0xb2,0xe4,0x0, 0xc7,0x85,0xb7,0xb2,0xa, 0xa1,0xe7,0xfe,0x0, 0x87, +0x8e,0x8f,0xe7,0xff,0x26,0x9e,0xc6,0xff,0xae,0x8f,0x8e,0x84,0xe2,0x0, 0xce,0x81, +0xe7,0xff,0x1, 0x9c,0x16,0xa0,0x3e,0xde,0xe7,0xff,0x2e,0x9d,0x8f,0x8f,0xe7,0xff, +0x2f,0x9a,0xe7,0xff,0x0, 0x9b,0xe4,0xf, 0x36,0xcf,0x3f,0x9d,0x37,0x81,0xe0,0x2f, +0x3f,0x9c,0x11,0x81,0x39,0x9f,0xe7,0xff,0x0, 0xac,0xe0,0x3, 0x1f,0xc6,0x8f,0x8f, +0xe2,0x0, 0xcf,0xb8,0xe7,0xfe,0x2, 0xdf,0x17,0x80,0xe0,0x1, 0xaf,0xe2,0xe7,0xfe, +0x0, 0xda,0x17,0x0, 0xe0,0x1, 0xaf,0x62,0xe7,0xfe,0x0, 0xb5,0x37,0x21,0xe0,0x1, +0xaf,0x2, 0x0, 0xc3,0xe0,0x2, 0x1e,0xa1,0x17,0x0, 0x3f,0xed,0xe1,0x80,0xaf,0x1f, +0xc7,0x81,0xaf,0x1d,0xe1,0x80,0xaf,0x1f,0xe1,0x80,0xaf,0x1f,0xe1,0x80,0xaf,0x1f, +0xaf,0xf, 0x38,0x82,0x8, 0xb2,0xc0,0x7c,0xe0,0x1, 0xd1,0x1a,0xdf,0xe, 0xdd,0xcb, +0xe0,0x2, 0x1f,0x8f,0x2c,0x10,0x8f,0xf, 0xe0,0x3, 0x19,0x4, 0xe2,0x0, 0xcf,0x1, +0xe0,0x1, 0xac,0x42,0x1, 0x25,0xdd,0xbf,0x24,0x11,0xe0,0x1, 0x8f,0xe2,0x2f,0x9b, +0xc0,0x4, 0x9, 0x61,0x8f,0xf, 0xe0,0x3, 0x19,0x4, 0xe2,0x0, 0xcf,0x1, 0x1, 0x18, +0xe0,0x1, 0x8f,0xc2,0x2f,0x9a,0xdd,0xaf,0x2c,0x71,0x7c,0x1, 0xef,0xfc,0xd2,0x25, +0xe0,0x0, 0x1f,0x8e,0x64,0x1, 0xac,0xf, 0xe0,0x0, 0x1f,0x8c,0xac,0xf, 0xe0,0x1, +0x8f,0xe2,0x27,0xe7,0x14,0x0, 0xc0,0x4, 0x9, 0x21,0xe7,0x81,0x0, 0xa3,0x17,0x1, +0x16,0x0, 0xe0,0x1, 0xaf,0x42,0xae,0xf, 0x17,0x80,0xe0,0x2, 0x1e,0xa1,0xe0,0x2, +0x1f,0x20,0xaf,0x8d,0x16,0x7, 0xaf,0x9d,0xe0,0x2, 0x1e,0xf7,0xaf,0x8e,0xae,0xd, +0xe0,0x2, 0x1f,0x1f,0xe0,0x2, 0x1e,0xb4,0xaf,0x8e,0xaf,0x8d,0x0, 0xc5,0x0, 0x0, +0xe0,0x0, 0x1f,0x85,0x8f,0xf, 0xe0,0x0, 0x1f,0x8d,0xe0,0x0, 0x27,0x60,0xe0,0x0, +0x1f,0xe, 0x8e,0xe, 0xe2,0x0, 0xce,0x2, 0x1, 0x8, 0x17,0xa, 0x3f,0x38,0x3f,0x9e, +0xf0,0x10,0x8b,0xaf,0x5, 0xb4,0x38,0x82,0x8e,0xbf,0xf0,0x0, 0x8b,0x9f,0xf0,0x0, +0x8b,0xf, 0xf0,0xe, 0x3b,0xad,0x8d,0xaf,0xe2,0x0, 0xcf,0x0, 0xe8,0x17,0x3e,0xa7, +0xf2,0x1, 0xc3,0xff,0xf0,0xd, 0x3b,0x2b,0xe2,0x1, 0xc7,0x7f,0xe8,0x6e,0x3d,0x27, +0xe8,0xb, 0x3d,0xa6,0xe2,0x0, 0xce,0x80,0xe2,0x1, 0xc5,0xff,0xe2,0x1, 0xc6,0xff, +0xe0,0x6d,0x3d,0x2b,0xf0,0x40,0x3b,0xee,0x3d,0xed,0xf2,0x1, 0xc3,0xff,0xe2,0x1, +0xc5,0xff,0xf0,0x40,0x3b,0xfb,0x3, 0x82,0x3f,0x6d,0x15,0x8a,0x3d,0xb8,0x3e,0xee, +0xe0,0xf, 0x3f,0x9b,0xf0,0x10,0x8b,0xaf,0xe2,0x1, 0xc6,0xff,0xf2,0x0, 0xcb,0x94, +0x2, 0x99,0xf2,0x0, 0xcb,0x8a,0x2, 0xad,0xea,0x12,0x7f,0x4, 0xe0,0xf, 0x3f,0x18, +0x8d,0x89,0xf0,0x0, 0x8b,0xf, 0xe8,0x40,0x3d,0xf6,0x3, 0x86,0xf0,0x0, 0xab,0x9, +0x8f,0x8f,0xaf,0x8a,0x8d,0x89,0xe2,0x0, 0xce,0x2, 0x1, 0x1f,0x3f,0x18,0xad,0x8e, +0x38,0x82,0x17,0x85,0xaf,0x89,0xaf,0x8a,0x0, 0xe8,0xea,0x12,0x7e,0x84,0x3f,0xed, +0xe1,0x80,0xbf,0x1f,0xc7,0x84,0xbf,0x1d,0xe1,0x80,0xbf,0x1f,0xe1,0x80,0xbf,0x1f, +0xe1,0x80,0xbf,0x1f,0xe1,0x80,0xbf,0x1f,0xe1,0x80,0xbf,0x1f,0xb7,0xf, 0x38,0x82, +0x17,0x84,0xaf,0x89,0xaf,0x8a,0x0, 0xd1,0xe0,0xf, 0x36,0xc1,0xe2,0x1, 0xc7,0xff, +0x3f,0xfb,0x3, 0x8d,0xf2,0x0, 0xcb,0x95,0x16,0x83,0xe0,0x6d,0x3c,0xac,0x3e,0xff, +0xe0,0x6f,0x3b,0xad,0x3d,0xef,0xe2,0x1, 0xc5,0xff,0xad,0x89,0xad,0x8a,0x8d,0x89, +0x0, 0xce,0x0, 0x0, 0x8, 0xb3,0x39,0x68,0xe0,0x1, 0x1c,0x67,0x39,0xe9,0xe0,0xc, +0x15,0x52,0x14,0x80,0xe0,0x5, 0xde,0xe0,0xe0,0x2, 0x1f,0xfd,0x16,0x7a,0x8c,0x5f, +0x3e,0x12,0xf0,0x2c,0x13,0x99,0xe0,0xe, 0x3e,0x38,0xf0,0x17,0x3b,0x93,0xf0,0x17, +0x3b,0x9e,0x8c,0xcf,0xe0,0x1, 0x1f,0xff,0xf0,0x17,0x33,0xa1,0xf0,0x0, 0x12,0x87, +0x15,0xd, 0xf0,0x1, 0x1b,0x4a,0xe0,0x14,0x34,0x21,0xf0,0x17,0x3b,0x9f,0xf0,0x15, +0x3a,0x92,0xe0,0xa, 0x3d,0x13,0x3f,0xe3,0xe8,0x40,0x3e,0xe7,0xe8,0x40,0x3f,0x66, +0xe2,0x0, 0xce,0x0, 0x4, 0xc, 0x3c,0xfc,0x15,0xfa,0x3d,0x9f,0x5, 0x8, 0xe2,0x0, +0xcd,0x80,0x4, 0x5, 0x3c,0x7b,0x5, 0x3, 0x95,0x8e,0xb5,0x8d,0xc7,0x81,0x3f,0xfa, +0xc7,0x2, 0xc6,0x82,0x1, 0xee,0xc6,0x1, 0xe8,0x40,0x3e,0x75,0xf0,0x0, 0xc3,0x1a, +0xf8,0x17,0x3b,0x94,0x1, 0xe1,0x9, 0xe1,0xe0,0x0, 0x1f,0xe, 0xf0,0x2, 0x1a,0x1c, +0x17,0x80,0xf0,0x0, 0x89,0x8e,0xe8,0x7, 0xaf,0xc4,0xe8,0xf, 0xaf,0x94,0xe8,0x16, +0xaf,0xe4,0xe8,0x1e,0xaf,0xb4,0xf0,0x1, 0x21,0xb9,0x8, 0xb7,0x11,0x0, 0xe4,0x8, +0x34,0x29,0xe4,0x9, 0x34,0xa9,0xf0,0x0, 0x1b,0xd, 0xe4,0x8, 0x34,0x48,0xe4,0x9, +0x34,0xc8,0xf0,0x40,0x39,0x62,0x3a,0x62,0xf0,0x40,0x38,0xe2,0x3a,0xe2,0xf0,0x40, +0x38,0x62,0x39,0xe2,0x38,0xe2,0x3e,0xe2,0x3d,0x7d,0xe0,0x1, 0x1, 0xd, 0xe8,0x0, +0x8f,0x6, 0xe8,0x0, 0x8f,0x96,0xe4,0xe, 0x37,0x29,0xe4,0xf, 0x37,0xa9,0xe4,0xe, +0x37,0x48,0xe4,0xf, 0x37,0xc8,0xe0,0xb, 0x3f,0x18,0xe0,0xc, 0x3f,0x99,0xe4,0xb, +0x35,0xa7,0xe4,0xc, 0x36,0x27,0xe1,0x37,0x3c,0x2e,0xe4,0xb, 0x35,0xc8,0xe4,0xc, +0x36,0x48,0xe1,0x35,0x3c,0xaf,0xf0,0x0, 0x23,0x94,0xf0,0x0, 0x22,0x92,0xe1,0x26, +0x3c,0x2b,0xe1,0x27,0x3c,0xac,0x3b,0x57,0x23,0xb, 0xe0,0x3, 0x30,0xa1,0xe8,0x3, +0x39,0x94,0xc0,0x81,0xad,0x83,0xe2,0x1, 0xc0,0xff,0xae,0x13,0x39,0xe6,0xe1,0x2e, +0x3f,0x28,0xf0,0x0, 0x22,0x9e,0x27,0x1c,0xe1,0x35,0x3d,0xa8,0xe1,0x26,0x3c,0xac, +0xf0,0x15,0x3a,0xd6,0xf0,0x0, 0x22,0x95,0x12,0xbc,0xe8,0x5, 0x3a,0x90,0x32,0xa1, +0xf0,0x6, 0x30,0x21,0xe8,0x5, 0x3a,0x94,0xad,0xa5,0xf0,0x0, 0xc0,0x1, 0xf0,0x5, +0x3a,0x16,0xe0,0xf, 0xae,0x35,0xf2,0x1, 0xc0,0x7f,0xe8,0x40,0x3a,0xe5,0xe1,0x2f, +0x3f,0xa9,0xf0,0x0, 0x23,0x9e,0x27,0x9c,0xe1,0x37,0x3c,0x2b,0xe1,0x26,0x3e,0x29, +0xf0,0x17,0x3b,0xd6,0xf0,0x0, 0x23,0x95,0x12,0x1e,0xe8,0x4, 0x3a,0x11,0x32,0x21, +0xf0,0x6, 0x30,0xa1,0xe8,0x4, 0x3a,0x14,0xad,0x94,0xf0,0x0, 0xc0,0x81,0xf0,0x4, +0x3a,0x16,0xe0,0x7, 0xae,0x64,0xf2,0x1, 0xc0,0xff,0xe8,0x40,0x3a,0x67,0x27,0x1b, +0x27,0x9a,0xe1,0x2f,0x3d,0xa8,0xe1,0x2e,0x3e,0x29,0x3f,0xde,0x27,0x94,0xe0,0x0, +0x17,0x5a,0xe8,0xe, 0x3f,0x12,0x37,0x21,0xf0,0x2, 0x31,0x21,0xe8,0xe, 0x3f,0x14, +0xad,0xbe,0xf0,0x0, 0xc1,0x1, 0xf0,0xe, 0x3a,0x12,0xe0,0x17,0xae,0xe, 0xf2,0x1, +0xc1,0x7f,0x39,0x6f,0xc6,0x81,0xe2,0x1, 0xc6,0xff,0xe8,0x40,0x3e,0xf3,0xf0,0x0, +0xc3,0x2, 0xe7,0xfe,0x1, 0xeb,0x29,0x8a,0x22,0x83,0xf8,0x16,0xa8,0x64,0x22,0x3, +0xf8,0xf, 0xa8,0x94,0x29,0x6, 0xb, 0xe1,0x38,0x82,0xe8,0x7, 0xa8,0xc4,0x0, 0xf5, +0xf8,0x1e,0xa9,0x34,0xb, 0xe1,0x2c,0x2a,0x3f,0xe9,0x24,0x95,0x3f,0xe8,0x17,0xd, +0x3f,0x38,0x3f,0x19,0xe0,0xd, 0x37,0x21,0x3e,0x9b,0xe0,0x40,0x96,0x9d,0x3f,0x1a, +0xe2,0x0, 0xce,0x80,0xe0,0x0, 0x5, 0x47,0x16,0x81,0xe0,0x40,0xae,0x9e,0xe2,0x0, +0xcc,0xb, 0x2, 0x90,0x17,0x1, 0x3f,0x1f,0xe4,0x0, 0xc7,0xd, 0x3f,0x19,0xe0,0xd, +0x37,0x21,0x3e,0x9b,0x96,0x8d,0x3f,0x1a,0xe2,0x0, 0xce,0x80,0x5, 0x2d,0x16,0x81, +0xae,0x8e,0xe2,0x0, 0xcc,0x8b,0x5, 0x96,0x38,0x82,0x17,0x7f,0x3f,0x18,0xe4,0x0, +0xc7,0xd, 0x3f,0xe8,0x3f,0x19,0xe0,0xd, 0x37,0x21,0x3e,0x9b,0x96,0x8d,0x3f,0x1a, +0xe2,0x0, 0xce,0x80,0x5, 0x1c,0x16,0x81,0xae,0x8e,0x2c,0xca,0xe2,0x0, 0xcc,0xb, +0x5, 0xda,0xe4,0x0, 0xc7,0x8d,0x3f,0x99,0xc7,0x81,0xe0,0xe, 0x37,0xa1,0x3d,0x9e, +0x97,0xb, 0x3f,0x9a,0xe2,0x0, 0xcf,0x0, 0x5, 0x4, 0x17,0x1, 0xaf,0xf, 0x38,0x82, +0x17,0x2, 0xaf,0xf, 0x38,0x82,0x16,0x82,0xae,0x8e,0x0, 0xd4,0x16,0x82,0xae,0x8e, +0x0, 0xe5,0x16,0x82,0xe0,0x40,0xae,0x9e,0xe7,0xff,0x0, 0xbb,0x8, 0xb7,0xe1,0xfc, +0xc0,0x0, 0xe0,0x2, 0x1f,0xdd,0x17,0x1, 0x8f,0x8f,0xe0,0x2f,0x3f,0x8e,0xe0,0x1, +0x27,0x83,0x17,0x94,0xe1,0x28,0x3c,0x1f,0xe0,0x0, 0x24,0x7e,0xe0,0x1, 0x1f,0xca, +0x16,0x0, 0xe0,0xa, 0x97,0xcf,0xe2,0x7, 0xcf,0xe8,0xe0,0x0, 0x5, 0x79,0xe0,0x1, +0x1a,0x49,0x11,0x0, 0xe0,0x1, 0x1d,0xc8,0x39,0xe4,0x3c,0xe2,0x17,0xe6,0x3f,0x93, +0xe0,0x80,0x97,0x1f,0x16,0x81,0x3e,0x7e,0x3e,0x99,0x3, 0x5, 0x3c,0xed,0x39,0x1e, +0xe3,0xff,0xc4,0xff,0x3f,0xf3,0x1, 0xf5,0xc1,0x9a,0x39,0xfb,0x1, 0xf0,0x24,0x85, +0x3c,0x62,0xe0,0x5, 0xdc,0xe8,0x39,0x68,0xe0,0x2, 0x15,0x52,0x14,0x80,0xe2,0x1, +0x7c,0x30,0xe0,0x5, 0xdd,0x39,0xe2,0x1, 0x7d,0xb0,0x15,0x0, 0x17,0x66,0x3f,0x14, +0x3e,0x6b,0x0, 0x85,0xb7,0x8c,0x3f,0x74,0xc6,0x2, 0x1, 0x11,0xe0,0x80,0x96,0x9e, +0xe2,0x0, 0xce,0x80,0xe0,0xf, 0x3e,0xa2,0xe0,0x43,0x3f,0x9f,0x5, 0x75,0xe2,0x0, +0xcf,0x80,0x3, 0x71,0x3f,0x74,0xb5,0xc, 0xc6,0x2, 0x1, 0xf1,0x12,0x1a,0x3a,0x1e, +0x3a,0x73,0xc5,0x9a,0x1, 0xe4,0x13,0x4, 0x3b,0x10,0x14,0x80,0xe0,0x1, 0x15,0x29, +0x3c,0x66,0xe0,0x5, 0xdd,0x11,0x17,0x81,0x14,0x86,0xe0,0x0, 0x12,0xd7,0xe0,0xa, +0xaf,0xc6,0x3a,0x90,0x17,0x81,0x3b,0xe9,0x3a,0x69,0xe7,0xff,0x11,0xb3,0xe2,0x1, +0xc2,0x7f,0x39,0x95,0x39,0x67,0x0, 0x83,0xe0,0x9, 0x8f,0xe3,0xe2,0x0, 0xcf,0x81, +0xc1,0xf3,0x1, 0x19,0xc1,0x7f,0xe0,0x43,0x39,0x2, 0xe3,0xff,0xc9,0x7f,0x1, 0xf5, +0x14,0xff,0x3c,0x94,0xe0,0x43,0x3c,0x89,0xe3,0xff,0xcc,0xff,0x1, 0x15,0xe1,0xc0, +0x8f,0x95,0x0, 0xe3,0xe0,0x1, 0x1f,0xca,0xe0,0xa, 0x97,0xcf,0xe0,0xc, 0x37,0x82, +0xe7,0xff,0x0, 0x87,0x3c,0x62,0xe2,0x1, 0xc4,0x7f,0xe2,0x1, 0x7d,0xb0,0x3d,0x66, +0x3c,0xe4,0xdf,0xa, 0x0, 0xe0,0x12,0x8a,0x3a,0x90,0x14,0x86,0x13,0x7, 0x3a,0x69, +0xe2,0x1, 0xc2,0x7f,0x39,0x65,0x39,0xe6,0xe0,0xb, 0x8f,0xb2,0xc1,0xd, 0xe2,0x0, +0xcf,0x81,0xe0,0x2, 0x1, 0xa, 0x17,0x81,0x3f,0x93,0xe2,0x1, 0xc7,0xff,0xe2,0x0, +0xcf,0x8d,0xe0,0x43,0x39,0x8f,0x1, 0xf1,0x14,0xff,0x3c,0x94,0xe0,0x43,0x3c,0x89, +0xe3,0xff,0xcc,0xff,0xc2,0xff,0x1, 0xe4,0x12,0x8b,0x3a,0x90,0x3b,0x65,0x12,0x7, +0xe0,0x0, 0x13,0x86,0xe2,0x1, 0xc2,0x7f,0x39,0xe6,0x39,0x67,0xe0,0x9, 0x8f,0xe3, +0xc1,0xf3,0xe2,0x0, 0xcf,0x81,0xe0,0x1, 0x1, 0x5d,0xc1,0x7f,0xe0,0x43,0x39,0x2, +0xe3,0xff,0xc9,0x7f,0x1, 0xf4,0x17,0x81,0x3f,0x94,0xe2,0x1, 0xc7,0xff,0xe2,0x0, +0xcf,0x8d,0xc3,0x1, 0xe0,0x43,0x3a,0xf, 0x1, 0xe6,0x12,0x7, 0xe0,0x40,0x3b,0x64, +0xe2,0x1, 0xc2,0x7f,0x39,0x65,0x39,0xe6,0xe0,0xb, 0x8f,0xb2,0xc1,0xd, 0xe2,0x0, +0xcf,0x81,0xe0,0x1, 0x1, 0x55,0x17,0x81,0x3f,0x93,0xe2,0x1, 0xc7,0xff,0xe2,0x0, +0xcf,0x8d,0xe0,0x43,0x39,0x8f,0x1, 0xf1,0x17,0x81,0x3f,0x94,0xe2,0x1, 0xc7,0xff, +0xe2,0x0, 0xcf,0x8d,0xc2,0x81,0xe0,0x43,0x3a,0xf, 0x1, 0xe3,0x15,0x0, 0x14,0x11, +0x3c,0x10,0x39,0x6a,0x14,0x82,0x12,0x82,0x12,0x1, 0x39,0xea,0x17,0x72,0x3f,0x18, +0x3e,0xe8,0x3d,0xe2,0x8e,0x1e,0xe0,0x0, 0x2e,0x56,0xe0,0x1, 0x25,0x47,0xe0,0x43, +0x8f,0xad,0xe2,0x0, 0xcf,0x82,0xe0,0x0, 0x1, 0x6a,0xe0,0x0, 0x25,0xda,0x8f,0x8e, +0xe2,0x0, 0xcf,0x82,0xe0,0x1, 0x1, 0x0, 0xe2,0x0, 0xcd,0xc, 0xe0,0x1, 0x1, 0x5d, +0x8f,0x8d,0xe2,0x0, 0xcf,0x82,0xe0,0x1, 0x1, 0x46,0xe2,0x0, 0xcd,0x8c,0xe0,0x1, +0x1, 0xd8,0x17,0x81,0x3f,0x9a,0xe2,0x1, 0xc7,0xff,0xe2,0x0, 0xcf,0x8d,0xc4,0xd, +0xe0,0x43,0x3d,0xf, 0x1, 0xd4,0x16,0x10,0xe0,0x1, 0x15,0x39,0xe0,0x1, 0x1d,0xca, +0x3e,0x10,0x3d,0x10,0x17,0xf3,0x3f,0x9c,0xe0,0x40,0x3f,0x6b,0xe0,0x80,0x8e,0x9f, +0x2e,0x82,0xb6,0x8e,0x3f,0xfc,0xc7,0x2, 0x1, 0xfa,0x16,0xd, 0x3e,0x1f,0x3d,0x7c, +0xc5,0x9a,0x1, 0xf1,0xe0,0x4, 0xc0,0x0, 0xb, 0xe1,0xe2,0x0, 0xcd,0xc, 0x1, 0x6, +0x8f,0x8d,0xe2,0x0, 0xcf,0x82,0xe0,0x0, 0x1, 0x41,0x8f,0xae,0xe2,0x0, 0xcf,0x82, +0x1, 0x89,0x16,0x1, 0xc6,0x1, 0xe3,0xff,0xc6,0x7f,0xe2,0x0, 0xce,0x1, 0x5, 0x82, +0xac,0x9e,0x17,0x81,0x3f,0x9b,0xe2,0x1, 0xc7,0xff,0xe2,0x0, 0xcf,0x8d,0xc6,0x81, +0xc7,0x1, 0xe0,0x43,0x3d,0x8f,0xe7,0xff,0x1, 0x9f,0xe7,0xff,0x0, 0xbc,0xe2,0x0, +0xcd,0xc, 0xe0,0x0, 0x1, 0x5c,0x8f,0x8d,0xe2,0x0, 0xcf,0x82,0x8f,0xae,0x1, 0x5f, +0xe2,0x0, 0xcf,0x82,0x1, 0xe7,0x3e,0x6b,0x0, 0xde,0x25,0xd0,0x8f,0x8e,0xe2,0x0, +0xcf,0x82,0x1, 0x8, 0xe2,0x0, 0xcd,0xc, 0x1, 0x99,0xe2,0x0, 0xcd,0x8c,0x1, 0xce, +0x0, 0xd9,0xe2,0x0, 0xcd,0xc, 0x1, 0x6, 0x8f,0x8d,0xe2,0x0, 0xcf,0x82,0xe0,0x0, +0x1, 0x6a,0xe2,0x0, 0xcd,0x8c,0x1, 0x4d,0x8e,0x2e,0xe2,0x0, 0xce,0x2, 0x1, 0x43, +0xac,0x9e,0x0, 0xc8,0xe2,0x0, 0xcd,0xc, 0x1, 0x6, 0x8f,0x8d,0xe2,0x0, 0xcf,0x82, +0xe0,0x0, 0x1, 0x57,0xe2,0x0, 0xcd,0x8c,0xe7,0xff,0x1, 0xb1,0xe7,0xff,0x0, 0x83, +0x3c,0x62,0xe2,0x1, 0xc4,0x7f,0xe2,0x1, 0x7d,0xb0,0xe2,0x0, 0x7d,0x4, 0x3c,0xe4, +0xdd,0xf3,0xe7,0xfe,0x0, 0x9c,0x3c,0x63,0xe2,0x1, 0xc4,0x7f,0xe2,0x1, 0x7d,0xb0, +0xe2,0x0, 0x7d,0x4, 0x3c,0xe4,0xdd,0xe8,0xe7,0xfd,0x0, 0xef,0x3c,0x63,0xe2,0x1, +0xc4,0x7f,0xe2,0x1, 0x7d,0xb0,0xe2,0x0, 0x7d,0x4, 0x3c,0xe4,0xdd,0xdd,0xe7,0xfe, +0x0, 0xa4,0x8f,0x8d,0xe2,0x0, 0xcf,0x82,0x1, 0x1d,0x8f,0xae,0xe2,0x0, 0xcf,0x82, +0xe7,0xff,0x1, 0x91,0xe7,0xff,0x0, 0xa9,0x25,0xf5,0x8f,0x8e,0xe2,0x0, 0xcf,0x82, +0x8f,0x8d,0x1, 0x45,0xe2,0x0, 0xcf,0x82,0x1, 0xd, 0xe2,0x0, 0xcd,0x8c,0xe7,0xfe, +0x1, 0x4a,0x8f,0xae,0xe2,0x0, 0xcf,0x82,0xe7,0xfe,0x1, 0xfd,0x3e,0x6a,0xe7,0xfe, +0x0, 0xf3,0x3e,0x63,0xe2,0x0, 0xcd,0x8c,0xc6,0x1, 0xe3,0xff,0xc6,0x7f,0x1, 0x17, +0x8f,0xae,0xe2,0x0, 0xcf,0x82,0xe7,0xfe,0x1, 0xea,0xe7,0xfe,0x0, 0xe5,0x3e,0x64, +0x0, 0xf2,0x3e,0x65,0x0, 0xf0,0xe2,0x0, 0xcd,0x8c,0xe7,0xfe,0x1, 0x64,0x8f,0xae, +0xe2,0x0, 0xcf,0x82,0xe7,0xfe,0x1, 0xdf,0xe7,0xfe,0x0, 0xd6,0xe2,0x0, 0xce,0x1, +0xe7,0xfe,0x2, 0xd8,0xe7,0xfe,0x0, 0x9f,0x8, 0xb7,0xf8,0x0, 0xc, 0x3e,0xc0,0x64, +0xe0,0x2, 0x1e,0xfd,0x39,0x68,0x8e,0xdd,0xf0,0x40,0x3d,0x69,0x3f,0xed,0x7e,0x86, +0x3f,0xb8,0xe0,0x1, 0x1e,0xf2,0x3f,0x99,0xa7,0xd, 0x37,0xa1,0x3f,0x9e,0x94,0xf, +0x14,0x8a,0x7d,0x1, 0xe0,0x5, 0xda,0xb4,0xe0,0x2, 0x1f,0x7d,0x65,0x1, 0x8f,0x4e, +0xe0,0x43,0x39,0x98,0xe8,0x40,0x3c,0xea,0x3c,0x62,0x7f,0x3, 0xdc,0xa6,0xe8,0x43, +0x3f,0x8a,0xe2,0x0, 0xcf,0x80,0x7f,0x85,0xe0,0x5, 0x4, 0x7b,0xe0,0x2, 0x1e,0xdd, +0x17,0x0, 0x7e,0x84,0xf7,0xff,0x14,0x7a,0x7f,0x2, 0xf0,0x0, 0x16,0x86,0xe0,0x1, +0x1f,0xf2,0xe0,0x2, 0x1d,0x9c,0xe0,0x2, 0x1e,0xfd,0x67,0x4, 0x63,0x82,0xa2,0x8f, +0x8a,0x5d,0xe0,0x43,0x3f,0x82,0xe0,0x7, 0x8c,0xcb,0xf0,0x0, 0x8d,0x8e,0x60,0x85, +0x7f,0x87,0x3b,0x67,0x66,0x87,0xe2,0x0, 0xce,0x80,0xe0,0x1, 0x4, 0xc, 0x67,0x2, +0xf0,0x0, 0x11,0x80,0xf0,0x43,0x3c,0x8e,0xe8,0x14,0x38,0xaa,0xf8,0x3c,0x3c,0x19, +0xf8,0x3e,0x3c,0x9d,0xe0,0x8, 0x30,0xa1,0xf0,0x40,0x39,0x62,0xf8,0x40,0x38,0x63, +0xf8,0x43,0x3b,0x14,0xf0,0x0, 0xc4,0x86,0xe8,0x43,0x3d,0x2, 0xe0,0xf, 0x3d,0x34, +0x3f,0x91,0x37,0xa1,0x3f,0x95,0xf0,0x0, 0x90,0x8f,0x24,0xaa,0xe0,0x15,0x3d,0x22, +0x3e,0xe7,0x35,0x21,0x3f,0xe6,0xf8,0x43,0x3b,0x95,0x0, 0x8e,0xf2,0x0, 0xca,0x1, +0x2, 0x1d,0xf2,0x0, 0xcb,0x80,0xe0,0x0, 0x5, 0x4a,0xf2,0x0, 0xca,0x81,0x2, 0x16, +0x3c,0xff,0x3e,0xef,0x5, 0x15,0xe0,0xe, 0x36,0xa1,0x3f,0x1b,0x8e,0xe, 0xc7,0x81, +0x3e,0x7a,0xe0,0x43,0x3f,0x8f,0x4, 0x75,0x8f,0x1e,0x3c,0x7e,0x2, 0x72,0xf2,0x0, +0xcb,0x0, 0x2, 0x65,0xf3,0xff,0xcb,0x7f,0x3, 0x65,0x3c,0xfd,0x2, 0x35,0xe8,0x40, +0x39,0xf1,0xe0,0x0, 0x2, 0x51,0xe8,0x43,0x3f,0x83,0xf0,0x2e,0x3c,0x1f,0x2f,0x13, +0xf0,0x0, 0x2e,0x12,0xe8,0x2e,0x3f,0x9d,0x2f,0xe, 0xf0,0x0, 0x2f,0xd, 0xc7,0x86, +0xe4,0x0, 0xc7,0x8d,0xe0,0x1, 0x1e,0xca,0xe8,0xf, 0x3f,0x99,0x37,0xa1,0x3f,0x9d, +0xf0,0x0, 0xb0,0x8f,0xf0,0x0, 0xc0,0x1, 0xf3,0xff,0xc0,0x7f,0x17,0xff,0xe8,0xf, +0x3f,0x92,0xf1,0xff,0xc1,0xff,0xe2,0x1, 0xc7,0xff,0xf2,0x1, 0xc1,0xff,0xf0,0x0, +0x21,0xc, 0xf0,0x40,0x39,0x6f,0xe7,0xff,0x0, 0xa1,0xf3,0xff,0xcb,0xff,0xe7,0xff, +0x3, 0x39,0x3c,0xfd,0x5, 0x4d,0xf0,0x0, 0x20,0xe, 0x67,0x82,0xc0,0xff,0xc7,0xff, +0xe0,0x43,0x38,0x81,0xe2,0x1, 0xc7,0xff,0xe3,0xff,0xc8,0xff,0x7f,0x82,0xe7,0xfe, +0x1, 0xf3,0xf0,0x0, 0x61,0x83,0xf1,0xff,0xc1,0xff,0xe8,0x40,0x39,0x73,0x4, 0xf, +0x67,0x86,0xc7,0xff,0xe8,0x40,0x3f,0xfa,0xe0,0x1, 0x2, 0x3b,0xc0,0x1c,0xf8,0x0, +0xf, 0x28,0xb, 0xe1,0xf2,0x0, 0xcd,0x81,0x5, 0xca,0x0, 0xde,0x66,0x84,0xe0,0x1, +0x1f,0x72,0xe0,0x2, 0x1f,0xfd,0xf0,0x0, 0x15,0x81,0x8e,0x8d,0xf0,0x0, 0x13,0x0, +0xf0,0x1b,0x3d,0x92,0xf0,0x0, 0xa0,0x8e,0xf0,0x0, 0x8c,0xdf,0xe0,0x16,0x8d,0x6b, +0xf0,0x0, 0x62,0x85,0x7e,0x82,0xf2,0x1, 0xc5,0xff,0xf8,0x40,0x3e,0x66,0xf7,0xff, +0x16,0xfa,0xf0,0x0, 0x17,0x6, 0xf8,0x40,0x38,0x66,0x67,0x3, 0xe8,0x40,0x3f,0x7b, +0x5, 0xd0,0xe8,0x43,0x3f,0x86,0xe8,0x2d,0x3f,0x9e,0xf8,0x6, 0x3a,0xaa,0xf0,0x38, +0x3e,0x9f,0xc7,0x86,0xf0,0x8, 0x32,0xa1,0xe8,0x40,0x3b,0xeb,0xf0,0x0, 0x13,0x81, +0xf0,0x0, 0x12,0x0, 0xe0,0x43,0x38,0x96,0x7e,0x84,0x7f,0x85,0xe8,0xf, 0x3b,0xb9, +0xe8,0xf, 0x3f,0x95,0x37,0xa1,0xe8,0xf, 0x3f,0x91,0xf0,0x0, 0x91,0xf, 0x25,0x32, +0xe0,0x5, 0x3b,0xa2,0xe0,0x9, 0x33,0xa1,0xe8,0x40,0x3e,0x6c,0xe8,0x40,0x3f,0xe0, +0xe0,0x43,0x3a,0x15,0x0, 0x8e,0xe2,0x0, 0xcb,0x1, 0x2, 0x22,0xe2,0x0, 0xca,0x0, +0xe0,0x2, 0x5, 0xa, 0xe2,0x0, 0xca,0x81,0x2, 0x1b,0x3f,0xfa,0x3e,0x6f,0x3, 0x1a, +0x17,0x3c,0x3f,0x1c,0x37,0x21,0x3f,0x1b,0x8f,0x2e,0xe0,0xd, 0x36,0x21,0x3f,0x79, +0xc7,0x81,0x3e,0x9b,0xe0,0x43,0x3f,0x8f,0x2, 0x71,0xe0,0xf, 0x8f,0x3d,0x3c,0x7e, +0x2, 0x6d,0xe2,0x0, 0xc8,0x80,0x2, 0x60,0xe3,0xff,0xc8,0xff,0x3, 0x60,0x3e,0x7a, +0x4, 0x2b,0xe8,0x40,0x39,0xf2,0xe0,0x1, 0x2, 0x6d,0xe8,0x43,0x3f,0x87,0xf0,0x2e, +0x3e,0x9f,0x2f,0x13,0xf0,0x0, 0x2c,0x12,0xe8,0x2e,0x3f,0x9e,0x2f,0xe, 0x67,0x4, +0x2f,0xc, 0xc7,0x86,0xe4,0x0, 0xc7,0x8d,0x66,0x85,0xe0,0x1, 0x1f,0x4a,0x3f,0x9d, +0x37,0xa1,0x3f,0x9e,0xf0,0x0, 0xb1,0xf, 0xf0,0x0, 0xc2,0x1, 0xf3,0xff,0xc2,0x7f, +0xc3,0x81,0x66,0x83,0xe2,0x1, 0xc3,0xff,0x3e,0xf7,0xf0,0x0, 0xc3,0x81,0xf2,0x1, +0xc3,0xff,0xe7,0xff,0x2, 0x9d,0xf7,0xfe,0x22,0x55,0xf1,0xff,0xc2,0xff,0xf8,0x43, +0x3a,0x85,0xf3,0xff,0xca,0xff,0xf1,0xff,0xc3,0x7f,0xf2,0x1, 0xc3,0x7f,0xe7,0xfe, +0x1, 0xf6,0x67,0x86,0xc7,0xff,0xe8,0x40,0x3f,0xfa,0xe7,0xfe,0x5, 0x49,0x13,0x81, +0xe8,0x7, 0x3b,0x9a,0x67,0x6, 0xe2,0x1, 0xc3,0xff,0x3f,0x77,0xe7,0xfe,0x5, 0xc0, +0xe0,0x2, 0x1f,0xdd,0xe0,0x1, 0x1e,0xf2,0xe0,0x2, 0x1d,0x9c,0xe0,0x2, 0x1f,0x7d, +0x7f,0x84,0xf0,0x40,0x3b,0x67,0x8f,0x8f,0xf0,0x0, 0xa6,0xd, 0xf0,0x0, 0x8e,0xde, +0xe0,0x43,0x3e,0x82,0xe0,0xf, 0x8c,0x9b,0x7f,0x82,0xf0,0x0, 0x15,0x81,0x7e,0x85, +0xf0,0x0, 0x14,0x80,0xf7,0xff,0x17,0x7a,0xf0,0x0, 0x10,0x6, 0x67,0x5, 0xe2,0x0, +0xcf,0x0, 0xe0,0x1, 0x4, 0x23,0xe8,0x43,0x3f,0x8b,0xf0,0x0, 0x13,0x80,0xf8,0x6, +0x3b,0x2a,0xf0,0x38,0x3f,0x1f,0xe8,0x31,0x3f,0x90,0xc7,0x86,0xf0,0x8, 0x33,0x21, +0xf0,0x40,0x3a,0xe2,0xf8,0x40,0x3a,0x67,0xe0,0x43,0x38,0x96,0x7f,0x87,0xe8,0x43, +0x3d,0x5, 0xe8,0xf, 0x3d,0x3d,0xe8,0xf, 0x3f,0x96,0x37,0xa1,0xe8,0xf, 0x3f,0x9c, +0xf0,0x0, 0x91,0xf, 0x24,0xb2,0xe0,0x5, 0x3d,0x22,0xe8,0x40,0x3e,0x69,0x35,0x21, +0xe8,0x40,0x3f,0xe9,0xe0,0x43,0x3a,0x15,0x0, 0x8e,0xe2,0x0, 0xcb,0x1, 0x2, 0x22, +0xe2,0x0, 0xca,0x0, 0xe0,0x0, 0x5, 0x5d,0xe2,0x0, 0xca,0x81,0x2, 0x1b,0x3f,0xf9, +0x3e,0x6f,0x3, 0x1b,0x17,0x1e,0x3f,0x1c,0x37,0x21,0x3f,0x1b,0x8f,0x1e,0xe0,0xd, +0x36,0x21,0x3f,0x7a,0xc7,0x81,0x3e,0x9b,0xe0,0x43,0x3f,0x8f,0x4, 0x71,0xe0,0x7, +0x8f,0x6d,0x3c,0x7e,0x4, 0x6d,0xe2,0x0, 0xc8,0x80,0x2, 0x60,0xe3,0xff,0xc8,0xff, +0x3, 0x60,0x3e,0x79,0xe0,0x0, 0x4, 0x43,0xe8,0x40,0x39,0xf2,0xe0,0x1, 0x2, 0x4e, +0xe8,0x43,0x3f,0x87,0xf0,0x2e,0x3f,0x1f,0x2f,0x13,0xf0,0x0, 0x2c,0x12,0xe8,0x2e, +0x3f,0x90,0x2f,0xe, 0xf0,0x0, 0x28,0x8d,0xc7,0x86,0xe4,0x0, 0xc7,0x8d,0x66,0x87, +0xe0,0x1, 0x1f,0x4a,0x3f,0x9d,0x37,0xa1,0x3f,0x9e,0xf0,0x0, 0xb1,0xf, 0xf0,0x0, +0xc2,0x1, 0xf3,0xff,0xc2,0x7f,0x17,0xff,0xe8,0xf, 0x3f,0x95,0xf1,0xff,0xc3,0xff, +0xe2,0x1, 0xc7,0xff,0xf2,0x1, 0xc3,0xff,0xf0,0x0, 0x22,0x99,0xf0,0x40,0x3a,0xef, +0xe7,0xff,0x0, 0x97,0xe3,0xff,0xca,0x7f,0xe7,0xfd,0x3, 0x79,0xe7,0xfe,0x0, 0x91, +0x67,0x82,0xe2,0x0, 0xcf,0x81,0xe7,0xfe,0x5, 0xad,0xe7,0xfe,0x0, 0xb6,0xe3,0xff, +0xca,0x7f,0xe7,0xff,0x3, 0x26,0x3e,0x79,0x3, 0x40,0xf0,0x0, 0x22,0xf, 0xf0,0x0, +0xc3,0x1, 0x66,0x86,0xf2,0x1, 0xc3,0x7f,0xe8,0x40,0x3e,0xf6,0xf0,0x0, 0xc5,0x81, +0xf2,0x1, 0xc5,0xff,0xe7,0xfe,0x2, 0xdc,0xe8,0x40,0x39,0x73,0xe7,0xfc,0x3, 0x78, +0x66,0x84,0xe0,0x1, 0x1f,0x72,0xe0,0x2, 0x1f,0xfd,0xf0,0x0, 0x13,0x1, 0x8e,0x8d, +0xf0,0x16,0x3b,0x12,0xf0,0x0, 0xa6,0x8e,0xf0,0x0, 0x8f,0x5f,0xe0,0x1e,0x8d,0x3b, +0x7e,0x82,0xf2,0x1, 0xc3,0x7f,0x12,0x1, 0xf0,0x0, 0x10,0x80,0xf7,0xff,0x11,0x7a, +0xf0,0x0, 0x11,0x86,0x67,0x3, 0xe8,0x40,0x3f,0x76,0xe7,0xfc,0x5, 0xd9,0xe0,0x43, +0x38,0x84,0xe8,0x10,0x3b,0xaa,0xf0,0x3c,0x39,0x11,0xe8,0x3b,0x38,0x93,0xe0,0x17, +0x33,0xa1,0xe8,0x40,0x3c,0x66,0x13,0x1, 0x12,0x80,0xf8,0x43,0x3a,0x90,0xc0,0x86, +0xe8,0xf, 0x3c,0x3e,0x3f,0x97,0x37,0xa1,0xe8,0xf, 0x3f,0x9d,0xf0,0x0, 0x94,0xf, +0xe0,0x0, 0x25,0x51,0xe0,0x19,0x3c,0x22,0xe0,0x9, 0x34,0x21,0xe8,0x40,0x3e,0x61, +0xe8,0x40,0x3f,0xe1,0xf8,0x43,0x3a,0x19,0x0, 0x8d,0xf2,0x0, 0xc8,0x1, 0x2, 0x23, +0xf2,0x0, 0xca,0x0, 0x5, 0x39,0xf2,0x0, 0xcc,0x81,0x2, 0x1d,0x3f,0xfa,0x3e,0x6f, +0x3, 0x39,0xe0,0x0, 0x17,0x5a,0x3f,0x1c,0x37,0x21,0x3f,0x1b,0x8f,0x3e,0xe0,0xd, +0x36,0x21,0x3f,0x79,0xc7,0x81,0x3e,0x9b,0xe0,0x43,0x3f,0x8f,0x2, 0x70,0xe0,0x17, +0x8f,0xd, 0xf0,0x40,0x3b,0xfe,0x4, 0x6b,0xf2,0x0, 0xca,0x80,0x2, 0x5f,0xf3,0xff, +0xca,0xff,0x3, 0x5f,0x3e,0x7a,0x3, 0x1e,0xe7,0xfc,0x22,0x8a,0xc3,0x81,0x66,0x86, +0xe2,0x1, 0xc3,0xff,0x3e,0xf7,0xc2,0x1, 0xe2,0x1, 0xc2,0x7f,0xe7,0xff,0x2, 0xa4, +0xc0,0x1c,0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0x67,0x82,0xe2,0x0, 0xcf,0x81,0xe7,0xfe, +0x5, 0xcc,0xe7,0xfe,0x0, 0xec,0xf3,0xff,0xca,0x7f,0x4, 0x65,0x3f,0xfa,0x3e,0x6f, +0x4, 0x49,0xe8,0x40,0x39,0xf8,0x2, 0x26,0xe0,0x43,0x3f,0x86,0xf0,0x2e,0x39,0x1f, +0x2f,0x12,0xf0,0x0, 0x2e,0x11,0xe8,0x2e,0x3f,0x93,0x2f,0xd, 0xf0,0x0, 0x2d,0x8c, +0xc7,0x86,0xe4,0x0, 0xc7,0x8d,0xe0,0x1, 0x1e,0xca,0x3f,0x91,0x37,0xa1,0x3f,0x9d, +0xf0,0x0, 0xb4,0xf, 0xc2,0x81,0xe3,0xff,0xc2,0xff,0xc4,0x1, 0x67,0x83,0xe2,0x1, +0xc4,0x7f,0x3f,0xf8,0xc3,0x1, 0xe2,0x1, 0xc3,0x7f,0xe7,0xff,0x2, 0x83,0xe7,0xff, +0x0, 0xbd,0x67,0x2, 0xe2,0x0, 0xcf,0x1, 0x5, 0xf1,0xe7,0xff,0x0, 0xb7,0xf0,0x0, +0x61,0x83,0xf1,0xff,0xc1,0xff,0xe7,0xfb,0x0, 0xb5,0x8, 0xb7,0xf8,0x0, 0xc, 0x3e, +0xc0,0x70,0x3b,0xe8,0xe0,0x1, 0x1c,0x4a,0xe0,0x0, 0x4a,0xcf,0x39,0x6a,0xf0,0x40, +0x3c,0x69,0xe0,0x2, 0x15,0x52,0x14,0x80,0x39,0xec,0x3a,0x6d,0x3b,0x6b,0xe0,0x5, +0xd8,0x2b,0x3d,0xe5,0x3d,0x62,0x3c,0xe4,0x3c,0x63,0xdc,0xbf,0xe0,0x2, 0x1f,0xda, +0x8f,0x8f,0x27,0x87,0xe0,0x2, 0x1f,0xdd,0x8f,0x8f,0xe2,0x0, 0xcf,0x81,0x1, 0x11, +0x3c,0x65,0xda,0xa5,0x3c,0xe4,0x3c,0x63,0xd9,0x2e,0x3d,0xe6,0x3d,0x62,0xe8,0x40, +0x3c,0xe8,0x3c,0x67,0xc0,0x10,0xf8,0x0, 0xf, 0x28,0xb, 0xa1,0xe7,0x76,0x0, 0x84, +0xe0,0x0, 0x1f,0x8e,0xf0,0x2, 0x1f,0x5e,0x8f,0x8f,0xe2,0x0, 0xcf,0x81,0x1, 0x5, +0xe0,0x3, 0x1f,0x9c,0x8f,0x8f,0x27,0xe5,0xf0,0x0, 0x15,0x8a,0xf0,0x1b,0x3d,0xb6, +0x3c,0xe4,0x3c,0x63,0xd9,0x10,0xf0,0x0, 0x1e,0xd, 0xf0,0x0, 0x14,0xfc,0x3d,0x62, +0x3d,0xe6,0xe8,0x40,0x3c,0xe8,0x3c,0x67,0xf8,0x19,0x3c,0x9b,0xef,0xfb,0xda,0xe4, +0xf8,0x19,0x3c,0x9c,0xe8,0x0, 0x8f,0xd9,0x3c,0x65,0x7f,0x81,0xe8,0x0, 0x8f,0xe9, +0xf8,0x0, 0x9d,0x9, 0x7f,0x82,0xe8,0x0, 0x8f,0xf9,0xe8,0x0, 0x9a,0x99,0x7f,0x83, +0xe8,0x1, 0x8f,0x89,0xf8,0x0, 0x8e,0xc9,0x7f,0x84,0xda,0x61,0x3c,0xe4,0x3c,0x63, +0xd8,0xea,0x3d,0x62,0x3d,0xe6,0xe8,0x40,0x3c,0xe8,0x3c,0x67,0xef,0xfb,0xda,0xc4, +0xe8,0x0, 0x9c,0x8e,0xe8,0x0, 0x9d,0x1e,0xf0,0xe, 0x3d,0x29,0xe3,0xff,0xc7,0x7f, +0xf8,0xb, 0x3e,0x1b,0xe0,0x43,0x3e,0x9e,0xe0,0x7, 0x99,0xeb,0xe0,0xb, 0x3a,0xaa, +0xe2,0x0, 0xce,0x80,0xe3,0xff,0xc5,0xff,0xe8,0xd, 0x3c,0xaa,0xf8,0xf, 0x3e,0x1b, +0xe0,0x43,0x3a,0x1b,0xe0,0x7, 0x99,0x7f,0xe3,0xff,0xc6,0xff,0xe0,0xf, 0x39,0xa9, +0xe0,0x6e,0x3d,0x2d,0xe3,0xff,0xc7,0xff,0xe2,0x0, 0xca,0x0, 0xe0,0x8, 0x3d,0x25, +0xe0,0x43,0x3a,0x1f,0xe3,0xff,0xc4,0x7f,0xe0,0xd, 0x39,0x2a,0xe0,0x6b,0x3d,0x28, +0xe3,0xff,0xc6,0xff,0xe2,0x0, 0xca,0x0, 0x3c,0xa3,0xe0,0x43,0x3c,0x1d,0xe3,0xff, +0xc4,0xff,0xe0,0x6f,0x3d,0x29,0x3d,0x22,0xe2,0x0, 0xcc,0x0, 0xe3,0xff,0xc5,0x7f, +0xe0,0x6d,0x3d,0x2a,0x3f,0x1b,0x3f,0x9d,0xe3,0xff,0xc7,0x7f,0xe3,0xff,0xc7,0xff, +0x3f,0x7f,0x3, 0x93,0x67,0x81,0xf8,0x0, 0xb5,0x9, 0xe8,0x0, 0xaf,0xd9,0x67,0x82, +0xe8,0x0, 0xb2,0x99,0xe8,0x0, 0xaf,0xe9,0x67,0x83,0xf8,0x0, 0xae,0xc9,0xe8,0x0, +0xaf,0xf9,0x67,0x84,0xe8,0x1, 0xaf,0x89,0xc0,0x10,0xf8,0x0, 0xf, 0x28,0xb, 0xe1, +0x8, 0xb7,0xf8,0x0, 0xc, 0x3e,0xc0,0x6c,0xe0,0x2, 0x1f,0xdd,0xf0,0x0, 0x1e,0xe, +0x8f,0x8f,0x2f,0x9f,0xea,0x12,0x7a,0x3, 0xf8,0x0, 0x8d,0x8c,0xaf,0x84,0xf0,0x0, +0x25,0xa1,0x17,0x1, 0xaf,0x4, 0x17,0x4, 0xe1,0x2f,0x3f,0x2f,0x2f,0x9a,0x17,0x82, +0xe9,0x2f,0x3f,0xab,0x2f,0x96,0xe0,0x1, 0x1f,0x69,0xea,0x12,0x79,0x82,0x8f,0xe, +0xe2,0x0, 0xcf,0x1, 0xaf,0x83,0x1, 0x19,0xc0,0x14,0xf8,0x0, 0xf, 0x28,0xb, 0xe1, +0xf8,0x0, 0x8d,0x8c,0xf0,0x0, 0x2d,0xed,0xea,0x12,0x7a,0x3, 0xf0,0x0, 0xad,0x84, +0xea,0x12,0x79,0x82,0xe0,0x1, 0x1f,0xe9,0x8f,0x8f,0x17,0x1, 0xe2,0x0, 0xcf,0x81, +0xaf,0x3, 0x1, 0xeb,0xf0,0x0, 0x25,0xea,0xf0,0x0, 0x15,0x80,0xf0,0x3, 0x1e,0x9c, +0xe0,0x0, 0x1b,0xd, 0xe0,0x2, 0x1a,0xfd,0xf0,0x1, 0x1c,0x72,0xf0,0x1, 0x1c,0xd7, +0xf0,0x1, 0x1d,0x44,0xe0,0x2, 0x1b,0xff,0xe8,0x40,0x39,0x6b,0x0, 0x90,0x8f,0x87, +0x3f,0xf2,0x1, 0x10,0xf0,0x0, 0xc5,0x81,0xf2,0x1, 0xc5,0xff,0xc1,0x1, 0xe8,0x0, +0x8f,0x8c,0xe2,0x1, 0xc1,0x7f,0x3f,0xf2,0xe0,0x0, 0x5, 0xc8,0xe8,0x0, 0x8f,0x8d, +0x2f,0xef,0xe0,0xe, 0x31,0x21,0x3f,0x16,0x8e,0xe, 0x8f,0xd5,0x8e,0x9e,0x3f,0xbc, +0xe8,0x0, 0xa7,0x8, 0x3f,0x9d,0x37,0xa1,0x3f,0x9e,0x97,0xf, 0xe8,0x0, 0x97,0xa9, +0x3f,0x7f,0x4, 0x65,0x8f,0x83,0x2f,0xb7,0x17,0x83,0xe8,0x3, 0x8d,0xb9,0x6f,0x96, +0x6f,0x97,0x25,0xbd,0x17,0x84,0x14,0x84,0x6f,0x96,0x3c,0x69,0x6f,0x97,0xe8,0x40, +0x3d,0xeb,0x3d,0x62,0xef,0xfb,0xdb,0xf2,0xe8,0x0, 0x8f,0x8a,0xe2,0x0, 0xcf,0x81, +0x1, 0xca,0x17,0x8a,0xe8,0xf, 0x3f,0xbb,0x3f,0x96,0xe0,0x7, 0x9e,0xef,0xe0,0x7, +0x97,0x7f,0xe0,0x7, 0xb6,0xff,0xe0,0x7, 0xb7,0x6f,0xe7,0xff,0x0, 0xbd,0xea,0x12, +0x7a,0x3, 0x87,0x4, 0xc7,0x1, 0xe2,0x1, 0xc7,0x7f,0xe2,0x0, 0xcf,0x32,0xe7,0xfe, +0x5, 0xf3,0x17,0x32,0xe7,0xfe,0x0, 0xf0,0xf8,0x0, 0xad,0x8c,0xc0,0x14,0xf8,0x0, +0xf, 0x28,0xb, 0xe1,0x8f,0x4, 0x14,0x86,0x17,0x86,0x7f,0x1, 0xe8,0x40,0x3d,0xeb, +0x3d,0x62,0x3c,0x69,0x6f,0x96,0x6f,0x97,0xde,0x79,0x0, 0xcf,0x8f,0xf5,0x3c,0xed, +0x3c,0x6c,0x3d,0x62,0x7f,0x84,0x7e,0x3, 0x7e,0x82,0xf0,0x0, 0x8f,0x65,0xef,0xfb, +0xd9,0x34,0xe8,0x0, 0x8f,0x8c,0x66,0x3, 0xe2,0x0, 0xcf,0x83,0x66,0x82,0x5, 0x84, +0x17,0x82,0x6f,0x96,0x6f,0x97,0xe2,0x1, 0xcc,0x7f,0x1, 0x4, 0x17,0x82,0x6f,0x96, +0x6f,0x97,0xe2,0x0, 0xce,0x1, 0x5, 0x86,0xf1,0xff,0xc7,0x7e,0xe8,0x40,0x3e,0x7e, +0x4, 0x3, 0x17,0x82,0x6f,0x96,0xe2,0x0, 0xce,0x81,0x5, 0x85,0x67,0x84,0xc7,0xfe, +0x3e,0xff,0x4, 0x3, 0x17,0x82,0x6f,0x97,0x14,0x96,0x3c,0x90,0x3c,0x62,0xe2,0x0, +0x7d,0x17,0xef,0xff,0xd7,0x7, 0x4c,0x16,0x4c,0x97,0xe7,0xff,0x0, 0x92,0x8f,0x8, +0x3f,0xe8,0x3f,0x79,0x2, 0x8c,0x8f,0x28,0x14,0x0, 0x3f,0x79,0x5, 0x89,0x8f,0x1f, +0x3f,0x7a,0x2, 0x86,0x8c,0x3f,0xe1,0x28,0x3c,0x1a,0x38,0x82,0x14,0x0, 0x38,0x82, +0xe0,0x2, 0x1f,0x42,0x9f,0x88,0x9e,0x8e,0x3f,0xfd,0x2, 0x84,0x17,0x80,0xb7,0x88, +0x38,0x82,0x9f,0xe, 0x3f,0xae,0xb7,0x88,0x38,0x82,0x8, 0xb1,0xc0,0x68,0xe4,0x0, +0x17,0x80,0xe0,0x2, 0x1e,0xfd,0x3c,0x1f,0x17,0x0, 0x86,0x5d,0x3c,0x9f,0x86,0xcd, +0x3d,0x1f,0xe0,0xf, 0x34,0x41,0x7f,0x1, 0x34,0xc1,0x7f,0x6, 0x35,0x41,0x7f,0x85, +0xe2,0x0, 0x7c,0x4, 0x17,0x90,0x7f,0x2, 0x6e,0x5, 0x6e,0x84,0x7c,0x83,0x7d,0x4, +0x77,0x8c,0xe0,0x5, 0xd0,0x3a,0xc0,0x18,0x8, 0xe1,0x8, 0xb1,0xc0,0x68,0xe0,0x2, +0x1e,0xfd,0xe4,0x0, 0x17,0x80,0x17,0x0, 0x86,0x5d,0x3c,0x1f,0x86,0xcd,0x3c,0x9f, +0x3d,0x1f,0x7f,0x1, 0xe0,0xf, 0x34,0x41,0x34,0xc1,0x35,0x41,0xe2,0x0, 0x7c,0x4, +0x7f,0x2, 0x7f,0x6, 0x6e,0x5, 0x6e,0x84,0x7c,0x83,0x7d,0x4, 0x7f,0x85,0x6d,0x87, +0xe0,0x5, 0xd0,0x1b,0xc0,0x18,0x8, 0xe1,0x8, 0xb1,0xc0,0x68,0xe4,0x0, 0x17,0x80, +0xe0,0x2, 0x1e,0xfd,0x3c,0x1f,0x17,0x0, 0x86,0x5d,0x3c,0x9f,0x86,0xcd,0xe0,0xf, +0x34,0x41,0x7f,0x1, 0x34,0xc1,0x7f,0x6, 0xe2,0x0, 0x7c,0x4, 0x7f,0x85,0x17,0xa0, +0x7f,0x2, 0x7f,0x4, 0x6e,0x5, 0x6e,0x84,0x7c,0x83,0x77,0x8c,0xe0,0x4, 0xdf,0xfd, +0xc0,0x18,0x8, 0xe1,0x8, 0xb1,0xe1,0xff,0xc0,0x18,0xe0,0x1, 0x1f,0x57,0xe0,0x2, +0x1e,0xfd,0xe4,0x0, 0x17,0x80,0xe2,0x0, 0x7d,0xae,0x3c,0x1f,0xf0,0x0, 0x93,0x2e, +0xf0,0x0, 0x93,0xbe,0x95,0x7e,0x3f,0x9b,0xe0,0x1, 0x95,0x8e,0xe0,0x1, 0x1f,0x79, +0xf0,0x0, 0x82,0x4d,0xf0,0x0, 0x82,0xdd,0x16,0x1, 0xe0,0xd, 0x34,0x41,0x37,0xc1, +0x37,0x41,0xe2,0x0, 0x7c,0x14,0xe2,0x0, 0x7c,0x84,0x7e,0x86,0x7f,0x88,0x7f,0x7, +0x75,0x95,0x6e,0x16,0x6e,0x17,0xf0,0x0, 0x6a,0x15,0xf0,0x0, 0x6a,0x94,0xf0,0x0, +0x73,0x12,0xf0,0x0, 0x73,0x93,0x75,0x14,0xe0,0x5, 0xd0,0x27,0x5c,0x7, 0x5f,0x5, +0xe0,0x43,0x3f,0x98,0xe2,0x0, 0xcf,0x80,0xe0,0x41,0x3e,0x4f,0xe0,0x43,0x3e,0x9e, +0x3d,0xe8,0xe0,0x6b,0x3d,0x2c,0xe2,0x0, 0xce,0x80,0x5, 0x13,0x3d,0xfe,0x5, 0xd, +0xe0,0x41,0x3f,0x48,0xe2,0x0, 0xcf,0x80,0x3f,0xee,0xe3,0xff,0xc7,0xff,0xe0,0x68, +0x3d,0x2f,0xe0,0x0, 0xc0,0x68,0x8, 0xe1,0x3c,0x6e,0xe0,0x0, 0xc0,0x68,0x8, 0xe1, +0xe0,0x41,0x3e,0xcd,0x3d,0xfd,0x2, 0x6d,0xe0,0x41,0x3c,0x4e,0xe3,0xff,0xc4,0x7f, +0xe0,0x0, 0xc0,0x68,0x8, 0xe1,0x8, 0xb1,0xc0,0x68,0xe0,0x2, 0x1f,0x7d,0xe4,0x0, +0x17,0x80,0x16,0x80,0x3c,0x9f,0xf0,0x0, 0x81,0xde,0xf0,0x0, 0x82,0x4e,0x3f,0x98, +0xe0,0x16,0x35,0x41,0xe0,0x17,0x35,0x42,0x17,0x1, 0x7e,0x81,0xe0,0x15,0x34,0xc1, +0x7e,0x86,0x3f,0x5a,0x37,0xc1,0xf2,0x0, 0xc3,0x1, 0xf2,0x0, 0xc3,0x81,0x3d,0x6c, +0x3c,0xeb,0xe2,0x0, 0x7c,0x4, 0x7e,0x82,0x7e,0x84,0xf0,0x0, 0x69,0x85,0xf0,0x0, +0x6a,0x4, 0xf0,0x0, 0x7a,0x83,0x7f,0x85,0x6f,0x7, 0xf0,0x0, 0x6b,0x1a,0xf0,0x0, +0x6b,0x9b,0xe0,0x5, 0xd2,0x16,0xc0,0x18,0x8, 0xe1,0x8, 0xb1,0xc0,0x68,0xe0,0x2, +0x1f,0x7d,0x17,0x80,0x86,0x5e,0x86,0xce,0xe9,0xff,0xc4,0x7e,0x7f,0x81,0xe0,0xe, +0x34,0x41,0xe2,0x0, 0x7c,0x4, 0x7f,0x82,0x7f,0x84,0x7f,0x85,0x7f,0x86,0x6e,0x5, +0x6e,0x84,0x7f,0x3, 0xe0,0x5, 0xd2,0x9a,0xc0,0x18,0x8, 0xe1,0x8, 0xb2,0xc0,0x70, +0xf0,0x1, 0x1b,0xe6,0xf0,0x1, 0x1a,0xe5,0xe0,0x1, 0x19,0x78,0xe4,0x0, 0x17,0x80, +0xe0,0x1, 0x1f,0x7f,0xf0,0xc, 0x3a,0x9f,0xf0,0xd, 0x3b,0x9f,0xe8,0x0, 0xb4,0x5, +0x3f,0x92,0xf0,0x99,0x12,0xd6,0xf0,0x0, 0x13,0x1, 0xf0,0x15,0x3a,0x9e,0x36,0x41, +0x36,0xc1,0x37,0xc1,0xe0,0x99,0xc7,0x7e,0xe2,0x0, 0x7c,0x4, 0x7e,0x2, 0x7e,0x83, +0x7f,0x84,0xf0,0x0, 0x6b,0x4, 0xf0,0x0, 0x6b,0x5, 0xe8,0x0, 0xb4,0x85,0xe8,0x0, +0xb5,0x7, 0xb5,0x8e,0xe0,0x5, 0xd0,0xa, 0x9c,0x2, 0xc0,0x10,0x9, 0x61,0xe0,0x3, +0x1f,0xc7,0x8f,0x8f,0xe2,0x0, 0xcf,0x83,0x1, 0x3, 0x14,0x1, 0x38,0x82,0x8, 0xb2, +0x39,0x68,0x3c,0x69,0xef,0xff,0xd3,0x51,0xe0,0x2, 0x1f,0x93,0xe0,0x1, 0x8f,0x1f, +0xe2,0x0, 0xcf,0x5, 0x24,0x7, 0x1, 0x8, 0xe0,0x1, 0x8c,0x1f,0xe0,0x28,0x39,0x8, +0x9, 0x61,0x1, 0xfb,0x0, 0xfc,0xe2,0x1, 0xc1,0x7d,0x14,0x0, 0x29,0x7a,0xea,0x12, +0x7f,0xa2,0x8e,0xf, 0x17,0x1, 0x3f,0x1c,0xe0,0x1, 0x1e,0xc6,0xe2,0x1, 0xc7,0x7f, +0xe2,0x0, 0xcf,0x3, 0x3e,0x9c,0x8c,0xd, 0x2, 0x83,0xaf,0xf, 0x9, 0x61,0xa9,0xf, +0x9, 0x61,0xe0,0x3, 0x1f,0xac,0xe4,0x0, 0xc4,0x8e,0xe0,0xe, 0x3f,0x99,0x8f,0x1e, +0x27,0x5, 0x17,0x1, 0xe0,0x2e,0x3c,0xe, 0x2f,0xd, 0x3f,0x99,0x8f,0xbf,0x27,0x89, +0x17,0x84,0xe0,0x28,0x3c,0xf, 0x24,0x5, 0xe0,0x1, 0x1f,0xe9,0x17,0x0, 0xaf,0xf, +0x38,0x82,0xe0,0x1, 0x1f,0x69,0x16,0x80,0xae,0x8e,0x0, 0xf0,0x8, 0xb7,0xe0,0x2, +0x1b,0xc8,0x89,0x87,0xef,0xfe,0xd1,0x3, 0x24,0x7e,0xe0,0x0, 0x19,0x3b,0xe0,0x2, +0x8a,0x2, 0xe0,0xf, 0x39,0x14,0xe0,0x6, 0x8b,0xf, 0x8f,0x4f,0x2f,0x1f,0xe0,0x1, +0x1a,0xe9,0x8f,0x85,0xe2,0x0, 0xcf,0x81,0x1, 0x3f,0xe0,0x3, 0x1f,0xc7,0x8f,0x8f, +0xe2,0x0, 0xcf,0x83,0x1, 0x39,0xe0,0x2, 0x8f,0x2, 0xe0,0x2, 0x8f,0x92,0x3f,0x7f, +0xe0,0x0, 0x3, 0xe6,0xef,0xff,0xd2,0xac,0xef,0xff,0xd2,0xb6,0x24,0x6, 0xe0,0x2, +0x1f,0xe6,0x8f,0x8f,0xe0,0x0, 0x2f,0xd7,0xb, 0xe1,0x8f,0x4f,0xe0,0x2, 0x1e,0x93, +0xc7,0x7f,0xe0,0x5, 0xaf,0x3d,0x8f,0xcf,0xe0,0x1, 0x1a,0xe9,0xe2,0x0, 0xcf,0x81, +0xe0,0x0, 0x1, 0x5e,0x17,0x0, 0xaf,0x5, 0xe0,0xf, 0x39,0x14,0x17,0x0, 0xaf,0x4f, +0x3c,0x66,0xe0,0x1, 0x89,0x9f,0x3c,0xe3,0xef,0xfb,0xdb,0xa2,0x3c,0xe3,0x3c,0x64, +0xe0,0x0, 0xdb,0xf3,0xe0,0x2, 0x8f,0x82,0xc7,0x81,0xe0,0x2, 0xaf,0x82,0x8f,0x85, +0xe2,0x0, 0xcf,0x81,0x1, 0xc3,0xe0,0x2, 0x1f,0xe6,0x8f,0x8f,0x27,0xc5,0xe2,0x0, +0xcb,0x5, 0xe0,0x0, 0x1, 0x40,0x17,0x5, 0x3f,0x33,0xe0,0x3, 0x1f,0xb0,0x3f,0x9e, +0x8c,0xcf,0xe0,0x1, 0x1f,0xf1,0xa4,0xf, 0xef,0xfe,0xd1,0xca,0x3c,0xe3,0x3c,0x66, +0xdf,0x47,0x3a,0x68,0x3c,0xe3,0x3c,0x66,0xe0,0x0, 0xda,0x4c,0x2a,0x2f,0xe2,0x0, +0xcb,0x4, 0xe7,0xff,0x1, 0xaa,0xe0,0x2, 0x1f,0x12,0x9f,0x8e,0x37,0xcf,0xe7,0xff, +0x27,0xa4,0x97,0x8e,0xe2,0xff,0xc7,0xff,0xb7,0x8e,0x17,0x80,0xaf,0x85,0xe7,0xff, +0x0, 0x9c,0x3c,0xe6,0x3c,0x63,0xb, 0xa1,0xe0,0x1c,0x0, 0xd4,0xef,0xfe,0xd9,0xba, +0xac,0x5, 0xe0,0x1, 0xd8,0x43,0xe0,0x1, 0xd7,0x8d,0xef,0xff,0xd2,0xf7,0x8c,0x7, +0xe0,0x0, 0xdd,0xf3,0xef,0xfd,0xdf,0xff,0xe7,0xff,0x0, 0x8e,0xaf,0x85,0xe7,0xff, +0x0, 0xa5,0x17,0x0, 0xaf,0x5, 0xe7,0xff,0x0, 0x80,0xef,0xfb,0xdb,0x7b,0x3c,0xe3, +0x3c,0x66,0xe0,0x0, 0xdd,0x7f,0xe0,0x1, 0x1f,0xe8,0xab,0xf, 0xe0,0x2, 0x1f,0x93, +0xe0,0x5, 0xab,0x4f,0xe0,0x3, 0x1f,0x8f,0xa9,0x8f,0x0, 0xc2,0x8, 0xb3,0xe0,0x0, +0x19,0xbb,0x11,0x0, 0xdf,0x4c,0xc1,0x1, 0xe0,0x2, 0x8f,0x93,0xe2,0x1, 0xc1,0x7f, +0x39,0x7f,0x4, 0xf9,0xe0,0x2, 0x1f,0x93,0xe0,0x5, 0x8c,0x4f,0xe0,0x3, 0x1f,0x8f, +0x8c,0x8f,0x9, 0xa1,0xe7,0x76,0x0, 0xa4,0xe0,0x1, 0x1f,0x42,0xe0,0x2, 0x1f,0x93, +0xe0,0xe, 0x85,0x9e,0x16,0x0, 0xae,0xf, 0x15,0x2, 0xad,0xaf,0xe0,0x2, 0x1e,0xe6, +0xe0,0xe, 0x85,0xae,0x8e,0x8d,0xad,0xbf,0x3d,0x5d,0xe0,0xe, 0x85,0xde,0xe0,0x3, +0xad,0xef,0x2d,0x2d,0xe0,0x10,0x86,0x5e,0xe0,0x10,0x85,0xee,0x3e,0x1b,0xe0,0x2, +0xae,0x6f,0xe0,0xe, 0x86,0x6e,0xe0,0x3, 0xae,0x7f,0x16,0x3f,0x3e,0x5d,0xe0,0x11, +0x8e,0x8e,0xe0,0x10,0x8d,0xfe,0x36,0xa6,0x3e,0xcc,0xe0,0xc, 0x35,0xa7,0x3e,0xcc, +0xe0,0x4, 0xae,0xef,0x2d,0x9b,0xe0,0xd, 0x86,0x5e,0xe0,0xd, 0x86,0xfe,0xe0,0xa, +0xae,0xf, 0xe0,0xa, 0xae,0x9f,0xe0,0x0, 0x2d,0x72,0xe0,0xd, 0x85,0xee,0xe0,0xe, +0x87,0xe, 0xe0,0xa, 0xad,0xaf,0xe0,0xa, 0xaf,0x3f,0x0, 0x97,0xe0,0x10,0x85,0xde, +0xe0,0x2, 0xad,0xef,0xe0,0x3, 0xae,0x7f,0x0, 0xd9,0xe0,0xd, 0x86,0x6e,0xe0,0xe, +0x86,0x8e,0xe0,0xa, 0xae,0xf, 0xe0,0xa, 0xae,0x9f,0xe0,0x0, 0x25,0x4e,0x17,0x0, +0xe0,0xa, 0xaf,0x2f,0xe0,0xa, 0xaf,0x3f,0x17,0x0, 0xe0,0x1, 0x1e,0x8e,0xe0,0x2, +0x1e,0x44,0x86,0x8d,0x15,0x81,0xae,0xdf,0xaf,0x6f,0xe0,0x1, 0xaf,0x3f,0xe0,0x2, +0xaf,0xf, 0xe0,0x0, 0x1e,0xcd,0xe0,0x1, 0xaf,0x7f,0x86,0x8d,0xe0,0x1, 0xae,0xcf, +0xe0,0x1, 0xaf,0x5f,0x86,0xbc,0xe0,0x1, 0xaf,0x6f,0x87,0x4c,0xe0,0x4, 0xae,0x8f, +0xe0,0x4, 0xaf,0x1f,0xe0,0x1, 0x1f,0xd, 0x86,0x5c,0x8e,0x8e,0xe0,0x1, 0x1f,0xc, +0xe0,0x4, 0xae,0x2f,0x36,0xa8,0xe0,0x3, 0x1e,0xe, 0x8f,0xe, 0x86,0x1c,0x3f,0x4d, +0xe0,0x3, 0x1e,0xc3,0xe0,0x5, 0xae,0x1f,0xe0,0x6, 0xad,0x8f,0x8e,0x8d,0xe0,0x5, +0xb7,0x5f,0x26,0xa2,0xe0,0x3, 0x1f,0x38,0xa7,0xe, 0xa7,0x4e,0xe2,0x0, 0xc7,0x1, +0x27,0x1b,0x16,0x85,0xe0,0x1, 0xae,0x9f,0x17,0x0, 0xe0,0x2, 0xaf,0x5f,0xe0,0x2, +0xaf,0x1f,0xaf,0x4f,0x38,0x82,0xe0,0xd, 0x85,0xde,0xe0,0xd, 0x87,0x7e,0xe0,0xa, +0xad,0xaf,0xe0,0xa, 0xaf,0x3f,0xe7,0xff,0x0, 0xb1,0xe0,0xa, 0xad,0xaf,0xe0,0xa, +0xad,0xbf,0xe7,0xff,0x0, 0xab,0x16,0x0, 0xe0,0x1, 0xae,0x1f,0x17,0x0, 0xe0,0x2, +0xaf,0x5f,0xe0,0x2, 0xaf,0x1f,0xaf,0x4f,0x38,0x82,0x0, 0x0, 0xe0,0x2, 0x1f,0x76, +0x34,0xa6,0xf0,0x2, 0x1b,0xf5,0x3c,0x19,0x17,0x80,0xb4,0xe, 0x17,0x0, 0x3d,0xef, +0xe8,0x0, 0xaf,0x7, 0x3e,0xef,0x15,0x1, 0xe0,0xe, 0x34,0x1f,0x16,0x1, 0xe2,0x0, +0xc7,0x1, 0xc7,0x81,0x3e,0x1d,0x27,0x5, 0x3e,0xec,0xe2,0x1, 0xc6,0xff,0x3d,0xea, +0xe2,0x0, 0xcf,0x8c,0x1, 0xf2,0x2d,0x82,0x38,0x82,0xe8,0x0, 0xae,0x87,0x38,0x82, +0x8, 0xb1,0xf0,0x2, 0x1b,0xfd,0xe0,0x1, 0x1c,0x8b,0xe8,0x40,0x3c,0x67,0xe0,0x19, +0x15,0x1c,0xe0,0x5, 0xd2,0xef,0xe0,0x2, 0x1f,0xe6,0xf0,0x40,0x3b,0xe8,0x87,0x8f, +0xe2,0x0, 0xc7,0x82,0x2f,0xbe,0xe0,0x3, 0x8e,0x98,0xe0,0x3, 0x8f,0x88,0x97,0x58, +0x96,0x68,0x3f,0x9d,0xe0,0x2, 0x1e,0xfc,0x3f,0x1c,0xb7,0xd, 0xe0,0x2, 0x1f,0x74, +0xb7,0x8e,0x17,0x80,0xe0,0x1, 0x1e,0xc2,0xe0,0x2, 0x1c,0x75,0xe0,0xe, 0x8f,0x6d, +0xe0,0xe, 0x8d,0xdd,0x37,0x26,0x3d,0x9e,0xe0,0x2, 0x1f,0x76,0x3d,0x6f,0xb5,0x8e, +0x17,0x0, 0xaf,0x8, 0x3e,0xef,0x14,0x81,0xe0,0xe, 0x35,0x9f,0x16,0x1, 0xe2,0x0, +0xc7,0x1, 0xc7,0x81,0x3e,0x1d,0x27,0x5, 0x3e,0xec,0xe2,0x1, 0xc6,0xff,0x3d,0x69, +0xe2,0x0, 0xcf,0x8c,0x1, 0xf2,0x2d,0x1f,0xe0,0x1, 0x1f,0xc4,0x8f,0x8f,0x27,0x93, +0xe8,0x0, 0x8f,0xc7,0xe0,0x2, 0x1f,0x73,0x37,0xa6,0xc7,0xff,0xb7,0x8e,0x8, 0xe1, +0xe0,0x2, 0x1f,0xfc,0x96,0xd8,0xe0,0x3, 0x8f,0x8, 0xb6,0x8f,0xe0,0x2, 0x1f,0xf4, +0xb7,0xf, 0x0, 0xc8,0xe8,0x0, 0x8f,0xd7,0xe0,0x2, 0x1f,0x73,0x37,0xa6,0xc7,0xff, +0xb7,0x8e,0x8, 0xe1,0xae,0x88,0x0, 0xe1,0x8, 0xb3,0xe0,0x1, 0x19,0x7f,0xe0,0x1, +0x1f,0xee,0xe0,0xc, 0x11,0xd2,0xe0,0x99,0x16,0xcc,0xe0,0x99,0x17,0x50,0x3e,0x92, +0x3f,0x12,0x3d,0x63,0x3c,0x6f,0x14,0x80,0xbf,0x8d,0xb9,0xe, 0xe0,0x5, 0xd2,0xbc, +0x3d,0x63,0x14,0x80,0x3c,0x62,0xe0,0x5, 0xd2,0xb7,0xe0,0x9c,0xc1,0x16,0x17,0x80, +0xaf,0x82,0x9, 0xe1,0x8, 0xb2,0xe0,0x1, 0x1f,0xc2,0xe0,0x1a,0x17,0x24,0x3f,0x1f, +0xe0,0x1a,0x16,0x25,0xe0,0x1a,0x15,0x2a,0x8e,0x8e,0x3e,0x1f,0x3d,0x1f,0xe0,0x1a, +0x17,0x26,0x8d,0x8c,0x8c,0xa, 0x3f,0x1f,0xe0,0x1a,0x16,0x27,0xe0,0x1a,0x14,0xab, +0xe0,0x1a,0x15,0x2c,0x8f,0xe, 0x3c,0x9f,0x3d,0x1f,0x3e,0x1f,0x36,0xa8,0xe0,0x2, +0x19,0x40,0x8e,0xc, 0x3d,0xcd,0xf0,0x1a,0x13,0xad,0x8e,0x89,0x8c,0x8a,0xe0,0x1a, +0x15,0x34,0xf0,0x17,0x3b,0x9f,0x3d,0x1f,0x37,0x28,0x35,0xc5,0x8d,0xa, 0x3e,0x4e, +0x34,0x28,0xe8,0x0, 0x8f,0x7, 0xe0,0x1a,0xc7,0xb5,0xad,0x82,0x36,0x45,0x8f,0x8f, +0xe0,0xb, 0x34,0xa8,0x3e,0xc8,0xae,0x12,0x36,0xc5,0xe0,0xc, 0x35,0x28,0x3f,0x4b, +0xae,0xa2,0x37,0x45,0x3f,0xcc,0xe0,0x1, 0x1c,0x8a,0xe0,0x2, 0x1c,0x3f,0xaf,0x32, +0x37,0xc5,0xe0,0x0, 0x15,0x6a,0xaf,0xd2,0xe0,0x5, 0xd2,0x2c,0xe0,0x4, 0x8f,0xe2, +0xe0,0x1, 0x1c,0xd3,0xe0,0x41,0x3f,0x8f,0x15,0x20,0xe0,0x22,0x14,0x40,0xe0,0x6, +0xaf,0xc2,0xef,0xfe,0xd6,0xff,0x9, 0x21,0xe0,0x2f,0x0, 0x93,0x8, 0xb6,0xe0,0x1, +0x1f,0xc2,0xe0,0x1a,0x15,0xa8,0xe0,0x1a,0x16,0x2e,0xe0,0x1a,0x16,0xb2,0x3d,0x9f, +0x3e,0x1f,0x3e,0x9f,0xe0,0x1a,0x14,0x2a,0xe0,0x1a,0x14,0xac,0xe0,0x1a,0x15,0x30, +0x8a,0x8b,0x8a,0xc, 0x89,0x8d,0x3c,0x1f,0x3c,0x9f,0x3d,0x1f,0xe0,0x1a,0x11,0x24, +0xe0,0x1a,0x10,0xa6,0xe0,0x1a,0x15,0xa9,0xe0,0x1a,0x16,0x2f,0xe0,0x1a,0x16,0xb3, +0xf0,0x1a,0x13,0xa5,0xe0,0x1a,0x13,0x27,0xf0,0x0, 0x89,0x88,0xf0,0x0, 0x8a,0x9, +0xf0,0x0, 0x8a,0x8a,0xf0,0x17,0x3b,0x9f,0x3b,0x1f,0x39,0x1f,0x38,0x9f,0x3d,0x9f, +0x3e,0x1f,0x3e,0x9f,0xe0,0x1a,0x14,0x2b,0xe0,0x1a,0x14,0xad,0xe0,0x1a,0x15,0x31, +0xf8,0x0, 0x8b,0x7, 0x89,0x2, 0xf0,0x0, 0x8b,0x86,0x88,0x81,0x8d,0x8b,0x8e,0xc, +0x8e,0x8d,0x3c,0x1f,0x3c,0x9f,0x3d,0x1f,0xe0,0x1a,0x13,0x1a,0xf0,0x1a,0x10,0x1c, +0xf0,0x1a,0x10,0xe4,0xf0,0x1a,0x11,0x1d,0x8c,0x8, 0x8c,0x89,0x8d,0xa, 0x3b,0x1f, +0xf0,0x10,0x38,0x1f,0xf0,0x11,0x38,0x9f,0xf0,0x12,0x39,0x1f,0x32,0xa8,0x32,0x28, +0x31,0xa8,0xe0,0x1, 0x1f,0x57,0x83,0x6, 0xf8,0x0, 0x80,0x0, 0xf8,0x0, 0x88,0x81, +0xf8,0x0, 0x81,0x2, 0x31,0x28,0x30,0xa8,0x3d,0xc5,0xf0,0x13,0x31,0xa8,0xf0,0x14, +0x32,0x28,0x3e,0x44,0xf0,0x15,0x32,0xa8,0x3e,0xc3,0xf0,0x16,0x3b,0x42,0xf0,0x17, +0x3b,0xc1,0xe0,0x41,0x3d,0xcb,0xe0,0x41,0x3e,0x4c,0xe0,0x41,0x3e,0xcd,0xe8,0x8, +0x3c,0x43,0xe8,0x9, 0x3c,0xc4,0xe8,0xa, 0x3d,0x45,0xe0,0x1a,0x12,0x1e,0xe0,0x1a, +0x11,0xb4,0x3a,0x1f,0x39,0x9f,0xb6,0x6e,0xe0,0x1a,0x11,0x1f,0xe0,0x1, 0xb6,0x8e, +0x39,0x1f,0xab,0xe, 0xe0,0x1a,0xc7,0xb5,0xf0,0x0, 0xa8,0x1e,0x10,0x80,0xf0,0x0, +0xb3,0x1e,0xf0,0x0, 0xb3,0xae,0xb5,0xbe,0xb4,0x4e,0xb4,0xde,0xb5,0x7e,0xf0,0x2, +0xa8,0xee,0xf0,0x2, 0xa9,0x7e,0x8d,0x84,0x8e,0x3, 0x8e,0x82,0x8f,0x8f,0x35,0xa8, +0x36,0x28,0x3e,0xcb,0x3f,0xcc,0xe0,0x1, 0xb6,0xce,0xe0,0x1, 0xb7,0x9e,0xe0,0x3, +0xa8,0xae,0xe0,0x3, 0xa8,0xbe,0xb, 0x61,0x8, 0xb1,0xe0,0x0, 0x1c,0xd, 0xe0,0x3, +0x15,0x40,0x14,0x80,0xe0,0x5, 0xd1,0xa0,0xe0,0x1, 0x1f,0xc3,0xe0,0x0, 0x1c,0x4, +0x8d,0xf, 0xe0,0x1, 0x14,0xff,0xe4,0x0, 0xc5,0xa, 0x8, 0xa1,0xe0,0xa3,0x0, 0x94, +0x8, 0xb2,0xe0,0x1, 0x1f,0x8e,0xe0,0x2, 0x1c,0x5e,0x89,0xf, 0xe0,0x1, 0x14,0xff, +0xe4,0x0, 0xc1,0xa, 0x3d,0x62,0xe0,0x5, 0xd1,0x87,0xe0,0x2, 0x1c,0x59,0x3d,0x62, +0xe0,0x1, 0x14,0xff,0xe0,0x5, 0xd1,0x80,0xe0,0x2, 0x1c,0x58,0x3d,0x62,0xe0,0x1, +0x14,0xff,0xe0,0x5, 0xd1,0x79,0xe0,0x2, 0x1c,0x57,0xe0,0x3, 0xd8,0xc3,0xe0,0x2, +0x1e,0xdf,0x17,0x0, 0x3f,0xed,0xe1,0x80,0xb7,0x1f,0xc7,0x82,0xb7,0x1d,0xe1,0x80, +0xb7,0x1f,0xe1,0x80,0xb7,0x1f,0xe1,0x80,0xb7,0x1f,0xe1,0x80,0xb7,0x1f,0xe1,0x80, +0xb7,0x1f,0xe1,0x80,0xb7,0x1f,0xb7,0xf, 0x9, 0x61,0x8, 0xb4,0xdd,0x4e,0xde,0x29, +0xde,0x8c,0xe0,0x1, 0x1f,0xc2,0xe0,0x1a,0x15,0x89,0x3d,0x9f,0xe0,0x3, 0x1f,0x30, +0x82,0xb, 0xe0,0x1b,0x15,0x5e,0x3d,0x1f,0xe0,0x1a,0x16,0xe, 0x8c,0x8a,0x3e,0x1f, +0x84,0x1b,0xaa,0xe, 0xe0,0x1a,0x16,0x93,0x82,0x3b,0xf0,0x0, 0x82,0xab,0xf0,0x0, +0x83,0x4b,0xf0,0x0, 0x83,0x8c,0xe0,0x1b,0x15,0x5f,0x80,0xcc,0x3e,0x9f,0xaa,0x3e, +0x3d,0x1f,0x81,0x9c,0x81,0x3c,0xac,0x1e,0x15,0x85,0x84,0x2c,0x8d,0xa, 0xf0,0x0, +0x80,0xd, 0x3d,0x9e,0xf0,0x0, 0xab,0xde,0x16,0xa, 0xf0,0x0, 0xab,0x4e,0x3e,0x1e, +0xf0,0x0, 0xaa,0xae,0x34,0xa8,0xa8,0xcb,0x3d,0x49,0xf0,0x0, 0x80,0x9d,0xf0,0x0, +0x81,0x2d,0xf0,0x0, 0x81,0xbd,0xf0,0x0, 0x82,0x4d,0xa9,0x3b,0xf0,0x1b,0x12,0xe2, +0xac,0x2b,0xf0,0x15,0x3a,0x9f,0xa9,0x9b,0xf0,0x1b,0x13,0xe3,0xe0,0x3, 0x1e,0x84, +0xf0,0x1, 0xa8,0x2e,0xf0,0x17,0x3b,0x9f,0xf0,0x0, 0xa8,0x9c,0xe0,0x1b,0x14,0xe0, +0xf0,0x0, 0xa9,0x2c,0xf0,0x1b,0x13,0x61,0xf0,0x0, 0xa9,0xbc,0xe0,0x1b,0x14,0x64, +0xf0,0x0, 0xaa,0x4c,0xe7,0xef,0x16,0x7f,0xb5,0x1d,0xf0,0x16,0x3b,0x1f,0x97,0x5d, +0xe8,0x0, 0x8d,0x5, 0x3c,0x1f,0x3c,0x9f,0x3f,0x5c,0xe0,0x1b,0xc7,0xe5,0xe8,0x0, +0x8e,0x7, 0xf7,0xf7,0x13,0xff,0x35,0x28,0x8c,0x89,0xe8,0xe, 0x3f,0x57,0xf0,0x0, +0x83,0x88,0x84,0xf, 0xe7,0xfe,0x17,0xff,0xe8,0x0, 0x8d,0x86,0x3f,0xde,0xe0,0xe, +0x3e,0x4a,0xe7,0xff,0x16,0x3f,0x34,0xa8,0x3f,0xdc,0x3d,0xc9,0xb7,0xdd,0xb5,0xad, +0xb7,0x3d,0xf0,0x1, 0xab,0x8d,0xe0,0x1, 0xac,0x1d,0xef,0xff,0xd0,0xfd,0xde,0x7f, +0xdf,0x2c,0xdf,0x3f,0xe0,0x1, 0xd8,0x2a,0xef,0xfe,0xdf,0x3c,0xa, 0x21,0xe0,0x11, +0x0, 0x99,0xe0,0x1, 0x1f,0x89,0x8f,0xf, 0xe0,0x1, 0x1f,0x88,0x37,0x28,0x8f,0x8f, +0x3f,0xce,0xe2,0x1, 0xcf,0xdf,0x3c,0x6f,0x2, 0x83,0xe0,0x1, 0x14,0x60,0x34,0x45, +0xe2,0x1, 0xc4,0x7f,0x38,0x82,0x0, 0x0, 0xe0,0x0, 0x1f,0x8e,0x8c,0xf, 0xe0,0x0, +0x24,0x4e,0xe0,0x1, 0x1f,0xc2,0xc4,0x7f,0xe2,0x1, 0xc4,0x7f,0x16,0x1, 0xe0,0xe, +0x8c,0x9f,0xf0,0xe, 0x8a,0x2f,0x3e,0x18,0xe0,0x0, 0x1f,0x8d,0x14,0x0, 0x36,0x21, +0xf7,0xff,0x12,0xfd,0xf7,0xff,0x11,0xfd,0xf0,0x15,0x3a,0x99,0xf8,0x13,0x39,0x94, +0xc4,0xff,0xf1,0xff,0xc2,0x7f,0x3e,0x1f,0x3d,0xe8,0xf0,0x40,0x3b,0x68,0xf0,0x0, +0x13,0x81,0x0, 0x95,0xe8,0x40,0x3f,0x75,0x3, 0x17,0x15,0x81,0xe8,0x2a,0x3e,0x86, +0x2d,0x1e,0xe0,0x2e,0x3f,0x9, 0x2f,0x1b,0xe8,0x40,0x3e,0xf4,0xe8,0x40,0x3f,0x67, +0xc7,0x82,0xe0,0x6e,0x39,0xa8,0x3e,0x7f,0x3c,0x6e,0x1, 0x15,0x8f,0xf, 0x8e,0x9f, +0xe2,0x0, 0xcf,0x2, 0x2, 0xe8,0xe2,0x0, 0xce,0x82,0x5, 0x88,0xe8,0x40,0x3e,0xf3, +0xe8,0x40,0x3d,0x67,0xe0,0x6a,0x3b,0x2b,0x3d,0xea,0x2f,0x61,0xc7,0x82,0x3e,0x7f, +0x14,0x1, 0x1, 0xed,0x3c,0x5b,0xe2,0x1, 0xc4,0x7f,0x38,0x82,0x8, 0xb7,0xf8,0x0, +0xc, 0x3c,0xe0,0x3, 0x1a,0x99,0xdf,0xa9,0xe0,0x0, 0x19,0x8e,0xac,0x5, 0xf0,0x0, +0x8d,0x83,0x24,0x3, 0xf0,0x0, 0x2d,0xe6,0xe0,0x2, 0x1b,0xbc,0x17,0x80,0xaf,0x87, +0xaf,0x85,0xf0,0x0, 0x25,0xe3,0xf0,0x0, 0x15,0x80,0xe0,0x3, 0x1a,0x1c,0xf0,0x0, +0x1c,0x9a,0xe0,0x0, 0x1b,0xd, 0xf0,0x2, 0x1c,0x5e,0xf0,0x2, 0x1d,0x7f,0xe8,0x40, +0x39,0x6b,0x0, 0x8b,0xe8,0x0, 0x8f,0x8a,0x3f,0xf2,0x1, 0x9, 0xc1,0x1, 0x8f,0x83, +0xe2,0x1, 0xc1,0x7f,0x3f,0xf2,0x5, 0xb9,0x8f,0x84,0x2f,0xf5,0xe8,0x0, 0x8f,0x89, +0x2f,0xf6,0x3c,0x62,0xe0,0x1, 0xda,0x10,0xe0,0xf, 0x31,0x21,0x3f,0x96,0xf0,0x40, +0x3e,0x68,0x8c,0x9f,0x8c,0xf, 0xe0,0x1, 0xda,0x19,0xe0,0x43,0x3c,0x18,0xf0,0x40, +0x3e,0x78,0x4, 0x65,0x3c,0x62,0xe0,0x1, 0xd9,0xd8,0x24,0x61,0x17,0x8a,0x3f,0xb2, +0x17,0xa, 0xe0,0x0, 0xc7,0xfc,0x3f,0x96,0xe8,0xe, 0x3f,0x3b,0x94,0x8f,0x95,0x1f, +0x95,0xaf,0x96,0x3f,0x96,0xcf,0xe8,0xf, 0x3f,0x18,0xb4,0x8f,0xc1,0x1, 0xb5,0x1f, +0xe2,0x1, 0xc1,0x7f,0xb5,0xaf,0xf0,0x0, 0xc5,0x81,0xb6,0x3f,0xf2,0x1, 0xc5,0xff, +0xb6,0xcf,0x8f,0x83,0x3f,0xf2,0x2, 0xc9,0x87,0x5, 0xaf,0x7, 0xe0,0x0, 0x1f,0x7, +0xaf,0x8e,0xe0,0x2, 0x1f,0xdf,0xf0,0x0, 0xad,0x8f,0xf8,0x0, 0xe, 0x28,0xb, 0xe1, +0xe0,0x2, 0x1b,0xbc,0xe7,0xff,0x0, 0xa1,0xe8,0x40,0x3f,0xeb,0x0, 0xee,0xe7,0xff, +0x0, 0x87,0x0, 0x0, 0xe0,0x0, 0x1f,0x97,0xe0,0x0, 0x1d,0x96,0x16,0x7f,0x17,0x0, +0x16,0x83,0xae,0xf, 0xc7,0x84,0x3f,0xfb,0xe0,0x40,0xaf,0x3f,0xe0,0x40,0xae,0xaf, +0xe0,0x40,0xaf,0x1f,0x1, 0xf7,0x38,0x82,0xe0,0x0, 0x1f,0x8e,0x8f,0x8f,0x2f,0x86, +0xe0,0x2, 0x1f,0xdf,0x8f,0x8f,0x2f,0x82,0x0, 0xe6,0x38,0x82,0xe0,0x3, 0x1f,0x4, +0x3f,0xe8,0x94,0x5e,0xe2,0x10,0xc4,0x0, 0x24,0xc, 0xe0,0x0, 0x1f,0x8e,0x14,0x0, +0x8f,0x8f,0x2f,0x86,0xe0,0x2, 0x1f,0xdf,0x8f,0x8f,0xe0,0x1, 0x27,0x87,0x38,0x82, +0xe2,0x0, 0xcd,0xa, 0x2, 0xfd,0xf0,0x0, 0x1b,0x97,0x35,0x22,0xf0,0xe, 0x3b,0x9a, +0xe0,0x43,0x3c,0xf, 0x17,0x83,0xaf,0xae,0x3f,0x68,0xf0,0x2, 0x1b,0x7d,0xe0,0x1, +0x1f,0xf2,0xe8,0x0, 0x8d,0xd6,0xa6,0xf, 0x0, 0x85,0x97,0x8f,0xe2,0x3, 0xcf,0xf4, +0x5, 0x10,0x3e,0xee,0xe2,0x1, 0xc6,0xff,0x17,0x7f,0x3f,0x1d,0xe0,0x43,0x3f,0xe, +0xe0,0xf, 0x3f,0x3b,0xe2,0x0, 0xcf,0x0, 0x3f,0x99,0x37,0xa1,0x3f,0x9c,0x3, 0x6e, +0xf8,0x0, 0x8a,0xe6,0xf8,0x43,0x3b,0x5, 0x0, 0x85,0x97,0x8f,0xe2,0x3, 0xcf,0xf4, +0x5, 0x10,0x3f,0x68,0xe2,0x1, 0xc7,0x7f,0x14,0x1, 0x3c,0x1e,0xe0,0x43,0x3c,0x8, +0xe0,0xf, 0x3c,0x3b,0xf0,0x40,0x3b,0x78,0x3f,0x99,0x37,0xa1,0x3f,0x9c,0x2, 0x6e, +0xf1,0xff,0xc2,0xff,0xf0,0x40,0x3a,0xfe,0xe0,0x0, 0x1, 0x47,0x2e,0xb8,0xe0,0x43, +0x3c,0x89,0x3e,0xbb,0x3f,0xe9,0x0, 0x85,0x97,0xe, 0xe2,0x3, 0xcf,0x74,0x5, 0xf, +0x3c,0x6f,0xe2,0x1, 0xc4,0x7f,0x17,0xff,0x3f,0x98,0xe0,0x43,0x3f,0x8f,0xe0,0xe, +0x3f,0x9d,0xe2,0x0, 0xcf,0x80,0x37,0x21,0x3f,0x1c,0x3, 0x6f,0xe0,0x43,0x3d,0x8b, +0x0, 0x85,0x97,0x8f,0xe2,0x3, 0xcf,0xf4,0x5, 0xe, 0x3f,0x69,0xe2,0x1, 0xc7,0x7f, +0x14,0x81,0x3c,0x9e,0xe0,0x43,0x3c,0x89,0xe0,0xf, 0x3c,0x9d,0x3d,0xf9,0x37,0xa1, +0x3f,0x9c,0x2, 0x70,0x3f,0x28,0xe2,0x1, 0xc7,0x7f,0xe2,0x0, 0xcf,0x3, 0x5, 0x97, +0xe8,0xa, 0x3d,0x17,0x17,0x81,0xaf,0x9a,0x14,0x1, 0x38,0x82,0xe8,0xa, 0x3d,0x17, +0x17,0x80,0xaf,0x9a,0x14,0x0, 0x38,0x82,0x8, 0xb1,0xc0,0x7c,0x7c,0x1, 0xdf,0x4b, +0x64,0x1, 0xc0,0x4, 0x8, 0xe1,0x3e,0xee,0xe7,0xff,0x0, 0xbb,0xf0,0xf, 0x3b,0x9a, +0x8f,0x1f,0x27,0x6d,0x17,0x1, 0xaf,0x1f,0x14,0x1, 0x38,0x82,0xe0,0x0, 0x1f,0x8e, +0x14,0x0, 0xf0,0x0, 0x8b,0x8f,0xf2,0x0, 0xcb,0x84,0xe0,0x0, 0x2, 0xee,0xe0,0x1, +0x1f,0x89,0xe0,0x0, 0x1f,0xd, 0x8e,0x8f,0xe0,0x1, 0x1f,0x88,0x36,0xa8,0x8f,0x8f, +0xe0,0x1a,0x96,0x7e,0x3f,0xcd,0x3e,0x7f,0xe0,0x0, 0x5, 0x5f,0xf0,0x0, 0x23,0xde, +0x8, 0xb1,0xf0,0x0, 0x13,0x7f,0x3d,0x68,0x3c,0xe8,0xf8,0x40,0x3a,0xe6,0x8f,0x8e, +0xe8,0x40,0x3e,0x65,0x8e,0x9e,0xe2,0x1, 0xc6,0x7f,0x3f,0xfc,0xc4,0x1, 0x38,0xe9, +0xf8,0x40,0x38,0x66,0xf0,0x40,0x38,0xea,0xe4,0xb, 0x37,0xa8,0xe4,0xc, 0x36,0xa8, +0xe2,0x1, 0xc0,0xff,0xf2,0x1, 0xc0,0x7f,0xf2,0x1, 0xc0,0xff,0xe2,0x1, 0xc4,0x7f, +0xf0,0x40,0x39,0x6f,0xe4,0xb, 0x35,0xc8,0xf0,0x40,0x39,0xed,0xf0,0x40,0x3a,0x6d, +0xe4,0xc, 0x36,0x48,0xc7,0x2, 0x5, 0x83,0xf8,0x40,0x39,0x65,0x3d,0xf1,0xf8,0x40, +0x3a,0xe2,0xf2,0x1, 0xc2,0xff,0x3, 0x82,0x3f,0xe9,0xe8,0x40,0x3e,0xf0,0x3c,0xef, +0xe2,0x1, 0xc4,0xff,0x5, 0x83,0xf8,0x40,0x39,0xe6,0xe8,0x40,0x3e,0x71,0xf8,0x40, +0x3b,0x63,0xf2,0x1, 0xc3,0x7f,0x3, 0x83,0xf0,0x40,0x3a,0x6a,0xf0,0x40,0x3b,0xf8, +0xe8,0x40,0x3d,0x64,0xe2,0x1, 0xc5,0x7f,0xe7,0xff,0x1, 0xbb,0xe8,0x9, 0x3c,0xa5, +0xe8,0xa, 0x3d,0x26,0xe2,0x0, 0xcc,0x84,0x17,0x84,0xe0,0x2a,0x3f,0xaa,0x14,0x0, +0xe0,0x68,0x3d,0x2a,0x8, 0xe1,0x38,0x82,0x14,0x1, 0x38,0x82,0x8, 0xb7,0xf8,0x0, +0xc, 0x3a,0xc0,0x7c,0xe0,0x3, 0x19,0x84,0xe0,0x2, 0x1a,0xfd,0x97,0xd3,0xe0,0x0, +0x1b,0xe, 0x86,0x45,0x8e,0xd5,0x17,0x0, 0xe2,0xff,0xc7,0xff,0x8d,0x86,0x6f,0x4, +0xb7,0xd3,0x6f,0x5, 0x6e,0x6, 0x6e,0x87,0xe0,0x1, 0x25,0xfb,0xe0,0x1, 0x1f,0xd7, +0xe0,0x0, 0x19,0xd, 0xf0,0x0, 0x94,0x2f,0x93,0xdf,0xf0,0x1, 0x1d,0x72,0x12,0x0, +0x0, 0x89,0xf8,0x40,0x3c,0x79,0x4, 0x1e,0x8d,0x86,0x8e,0xd5,0x3a,0x7b,0xe0,0x1, +0x3, 0xed,0xe0,0xf, 0x32,0x21,0x3f,0x92,0x8c,0x8f,0x8d,0x1f,0x3e,0xb9,0xe8,0x0, +0xa7,0x8a,0x3e,0x9a,0x36,0xa1,0x3e,0x9f,0xe2,0x0, 0x7c,0x4, 0xf0,0x0, 0x94,0x8d, +0xc2,0x1, 0xef,0xff,0xd7,0xf6,0xe2,0x1, 0xc2,0x7f,0x2c,0x64,0xe8,0x40,0x3b,0xf9, +0x3, 0x64,0x8d,0x86,0x8e,0xd5,0x16,0x1, 0xe0,0x1a,0x9a,0x52,0xe0,0x1a,0x9f,0xe2, +0x97,0x53,0x9d,0x23,0x3f,0x94,0x36,0x2f,0xe2,0xf7,0xc7,0x7f,0xe0,0x2f,0x3f,0x9a, +0x37,0xaa,0x3f,0x4c,0xe0,0x3, 0x1a,0x8c,0x3f,0x4f,0xe0,0x4, 0xcf,0x0, 0x8f,0x85, +0xb7,0x53,0x27,0xbb,0xe0,0x2, 0x1e,0x27,0xe0,0x1, 0x1c,0xf2,0x8f,0xc, 0x8d,0x1c, +0x3f,0x3d,0xa4,0x9, 0x3f,0x1a,0x37,0x21,0xe0,0x2, 0x1d,0x30,0x3f,0x18,0x94,0x8a, +0x97,0xe, 0x9b,0x93,0x3f,0x29,0xe0,0x43,0x3f,0x1e,0xe4,0x9, 0x37,0xf, 0xe2,0xe, +0x3c,0xce,0x3f,0x29,0x3f,0x77,0xe0,0x0, 0x2, 0x78,0x13,0x7f,0x3b,0x1f,0xe2,0x1, +0xc3,0x7f,0x33,0x21,0x3b,0x1c,0x0, 0x95,0x8f,0x2f,0x8f,0xbf,0x3f,0x3d,0xe0,0x80, +0x94,0x9a,0x3f,0x1f,0x37,0x21,0x3f,0x18,0x97,0x8e,0x3f,0xa9,0xe0,0x43,0x3f,0x9f, +0xe4,0xe, 0x37,0x8f,0xe2,0xf, 0x3f,0x4f,0x3f,0xae,0x3f,0xf7,0xe0,0x0, 0x2, 0x5d, +0x3b,0x7c,0x3f,0xec,0xc6,0x2, 0x1, 0xe9,0x17,0x81,0x2d,0x82,0xad,0x85,0xe7,0xfb, +0x17,0x7f,0x92,0xd3,0x37,0xa9,0x3a,0xde,0x3a,0xcf,0xe7,0x7f,0x17,0xff,0x3a,0xdf, +0xe0,0x0, 0x1f,0x8c,0x8f,0x8f,0xb2,0xd3,0x27,0xa9,0xe0,0x1b,0x97,0x92,0xe0,0x17, +0xc7,0xb7,0xe3,0xff,0xc7,0xff,0xe2,0x14,0xcf,0xd8,0x2, 0x8c,0xe0,0x2, 0x1f,0xc0, +0xe0,0xa, 0x8f,0x8f,0xe0,0x0, 0x2f,0xe5,0xde,0xd2,0x2c,0x4, 0xe0,0x80,0xca,0x80, +0xb2,0xd3,0x16,0x83,0xe0,0x1, 0x1f,0xd7,0xe0,0x1b,0x97,0x42,0x97,0xef,0xe4,0x0, +0xc7,0x8a,0xe2,0x0, 0xcf,0x80,0x3e,0x9f,0xe0,0x6f,0x3c,0x2d,0x37,0x82,0x3f,0x7f, +0x3, 0x5, 0x97,0xd3,0xe0,0x40,0xcf,0x80,0xb7,0xd3,0x97,0xd3,0xe3,0xdf,0xc7,0xff, +0xb7,0xd3,0xe7,0xef,0x16,0xff,0xe0,0x2, 0x1f,0x7c,0x97,0xd3,0x9f,0xe, 0x3f,0xdd, +0x37,0x42,0xe7,0xfd,0x16,0xff,0x3f,0xdd,0x3f,0x74,0xb7,0xd3,0x4, 0x85,0xe0,0x1a, +0x9f,0xe2,0x3f,0xfe,0x5, 0x85,0x97,0xd3,0xe0,0x2, 0xcf,0x80,0xb7,0xd3,0xc0,0x4, +0xf8,0x0, 0xd, 0x28,0xb, 0xe1,0x25,0xa0,0x13,0xff,0x3b,0x9b,0xe2,0x1, 0xc3,0xff, +0xc3,0x81,0x33,0xa1,0xe0,0x0, 0x1f,0xd, 0xe0,0x2, 0x1b,0x2f,0xe0,0x2, 0x1e,0x27, +0x3b,0x92,0x8c,0x8e,0x8d,0x1e,0xe0,0xf, 0x3c,0xbd,0xc7,0x2, 0x3f,0x9a,0x37,0xa1, +0x3f,0x98,0x97,0x8f,0xc6,0x2, 0x3f,0x77,0xe0,0x40,0xac,0xac,0xe0,0x40,0xad,0x1c, +0xe0,0x80,0xb7,0x96,0x1, 0xef,0xad,0x85,0x17,0x80,0xe7,0xff,0x0, 0x88,0xe0,0x0, +0x19,0xd, 0x3e,0x6b,0xe7,0xfe,0x0, 0xb2,0x16,0x0, 0xe7,0xfe,0x0, 0xaf,0xe0,0x2, +0x1f,0xf7,0x17,0x7, 0xaf,0xf, 0x17,0x0, 0xe0,0x1, 0x1f,0xe9,0xaf,0xf, 0xe7,0xff, +0x0, 0xb2,0x0, 0x0, 0x8, 0xb7,0xc0,0x70,0xea,0x4e,0x7f,0xe4,0xe9,0xff,0xc7,0xff, +0xf0,0x0, 0x83,0xf, 0xf0,0x0, 0x83,0x9f,0x83,0xaf,0x83,0x3f,0x82,0xcf,0x82,0x5f, +0x81,0xef,0x81,0x7f,0xe0,0x1, 0x84,0xf, 0xe0,0x1, 0x84,0x9f,0xe0,0x1, 0x85,0x2f, +0xe0,0x1, 0x85,0xbf,0xe0,0x1, 0x86,0x4f,0xe0,0x1, 0x86,0xdf,0xe0,0x1, 0x87,0x6f, +0xe0,0x1, 0x87,0xff,0xf0,0x0, 0x6b,0x4, 0x6f,0x93,0xe0,0x0, 0x1f,0x8e,0xf0,0x0, +0x6b,0x85,0x6b,0x86,0x6b,0x7, 0x6a,0x88,0x6a,0x9, 0x69,0x8a,0x69,0xb, 0x6c,0xc, +0x6c,0x8d,0x6d,0xe, 0x6d,0x8f,0x6e,0x10,0x6e,0x91,0x6f,0x12,0x8f,0x8f,0xe0,0x1, +0x27,0x9c,0xe0,0x2, 0x1f,0xdd,0x89,0x8f,0xe0,0x1, 0x29,0x97,0xe0,0x0, 0x1b,0xd, +0xf0,0x2, 0x1a,0xfd,0xe0,0x1, 0x1f,0xf2,0x89,0x16,0x8b,0x86,0xe8,0x0, 0x8a,0xd5, +0xf7,0xff,0x13,0xff,0xf7,0xff,0x13,0x7f,0x14,0x81,0xa2,0xf, 0xe0,0x43,0x3e,0x97, +0x3d,0x63,0xf0,0x17,0x3b,0x92,0xf0,0x16,0x3b,0x15,0x3c,0x92,0xe0,0xb, 0x3e,0xb5, +0xe8,0x40,0x3f,0x67,0xe0,0xc, 0x3d,0x92,0x36,0x21,0x3e,0x14,0x96,0xc, 0x3f,0xe9, +0xe2,0x1, 0xc7,0x7f,0xe2,0x1, 0xc7,0xff,0x3f,0x1b,0x3f,0x9b,0xe2,0x1, 0xce,0x20, +0x37,0x21,0x37,0xa1,0xc6,0xff,0x16,0x1, 0x3f,0x14,0x3f,0x94,0xe0,0x43,0x3e,0x9d, +0x3e,0x13,0x5, 0x18,0x21,0x8, 0x94,0xe, 0x39,0xec,0x3d,0x18,0xe2,0x1, 0xc1,0xff, +0xe0,0x43,0x3d,0x1a,0xe8,0x40,0x39,0x76,0x17,0x1, 0x3f,0x13,0x3, 0x8, 0x94,0xf, +0x39,0xee,0x3d,0x18,0xe2,0x1, 0xc1,0xff,0xe0,0x43,0x3d,0x1a,0xe3,0xff,0xce,0xff, +0x1, 0xce,0xf8,0x0, 0x8b,0x45,0x16,0x1, 0xf7,0xff,0x13,0xff,0xf7,0xff,0x12,0xff, +0x14,0x81,0x3e,0x17,0xf0,0x17,0x3b,0x92,0xf0,0x15,0x3a,0x95,0x3c,0x92,0x3f,0xec, +0xe2,0x1, 0xc7,0xff,0xe0,0xd, 0x3f,0xb5,0xe8,0x40,0x3f,0x67,0x3f,0xe9,0xe2,0x1, +0xc7,0x7f,0xe2,0x1, 0xc7,0xff,0xe0,0xb, 0x3e,0x92,0x3f,0x1d,0x3f,0x9d,0xe0,0x43, +0x3e,0x9c,0xe8,0x40,0x3e,0xf6,0x35,0xa1,0x37,0x21,0x37,0xa1,0xf0,0x0, 0x12,0x1, +0x3d,0x94,0x3f,0x14,0x3f,0x94,0xc6,0x1, 0xf0,0x14,0x3a,0x13,0x3, 0x24,0x96,0x8b, +0xe3,0xff,0xc6,0x7f,0xe2,0x1, 0xce,0xa0,0x5, 0x1e,0x21,0x9, 0x94,0xe, 0xe8,0x40, +0x39,0xe4,0x3d,0x18,0xe2,0x1, 0xc1,0xff,0xe0,0x43,0x3d,0x1a,0xe8,0x40,0x39,0x75, +0x17,0x1, 0x3f,0x13,0x3, 0x4d,0x94,0xf, 0x39,0xee,0x3d,0x18,0xe2,0x1, 0xc1,0xff, +0xe0,0x43,0x3d,0x1a,0x0, 0xc5,0xea,0x12,0x7f,0xa7,0x17,0x0, 0xaf,0xf, 0x14,0x0, +0xc0,0x10,0xb, 0xe1,0xe4,0x8, 0x35,0xf, 0xe2,0xa, 0x3c,0x4a,0x3c,0xe3,0xe0,0x8, +0x3d,0x28,0xe0,0x4, 0xdc,0xd, 0xe2,0x0, 0xcc,0x64,0x2, 0x6e,0x29,0xe, 0xe0,0x0, +0x1f,0xc, 0xea,0x12,0x7f,0xa7,0x16,0x81,0x8f,0xe, 0xae,0x8f,0x14,0x1, 0x27,0x69, +0x17,0x3, 0xaf,0xf, 0x14,0x3, 0x0, 0xe5,0x16,0xff,0x3e,0x95,0x39,0x7d,0x1, 0x70, +0x17,0xff,0x3a,0xb7,0x3f,0x92,0xe2,0x0, 0xc9,0x8f,0xe2,0x1, 0xc7,0xff,0x16,0x3, +0x3f,0x95,0x17,0x0, 0xe0,0x6e,0x3a,0xac,0x37,0xa1,0x39,0x7d,0x3f,0x94,0x96,0xf, +0xe0,0x0, 0x4, 0x4d,0x17,0x84,0x15,0xf4,0x36,0x1, 0x3f,0x90,0xe0,0xb, 0x3d,0x90, +0xe0,0x1, 0x86,0xef,0x3e,0xfc,0x5, 0x6, 0xe0,0x1, 0x86,0xff,0x3f,0x1d,0xe3,0xff, +0xc7,0x7f,0xc7,0xfe,0x3d,0xff,0x1, 0xf5,0x39,0x15,0x31,0x21,0x3a,0x12,0x97,0x84, +0x16,0xa8,0xe4,0xc, 0x37,0x8f,0xe2,0xf, 0x3e,0x4f,0x3e,0x9e,0x3f,0xac,0xe2,0xb, +0xcf,0xdd,0x3f,0xed,0xe3,0xff,0xc7,0xff,0xe0,0x1a,0x96,0x76,0xe0,0x0, 0x1e,0xa1, +0xe0,0x6e,0x3b,0x2f,0x17,0xa8,0xe2,0xb, 0xce,0x5d,0x3f,0x9e,0x8e,0xd, 0xe3,0xff, +0xc7,0xff,0xe0,0x6e,0x3b,0x2f,0xe2,0x0, 0xce,0x1, 0x1, 0x25,0x3f,0xee,0xe3,0xff, +0xc7,0xff,0xe2,0x1, 0xcf,0xfa,0x2, 0x8f,0xea,0x12,0x7f,0xa7,0x8c,0xf, 0xe3,0xff, +0xc7,0x7f,0x3f,0x78,0xe7,0xff,0x5, 0x8e,0x3c,0x6e,0xe2,0x1, 0xc4,0x7f,0xac,0xf, +0xe7,0xff,0x0, 0x88,0xe0,0x1, 0x17,0x7a,0x0, 0xf0,0x17,0x81,0x3f,0x92,0xe2,0x1, +0xc7,0xff,0x3f,0x95,0x37,0xa1,0x3f,0x94,0x97,0x8f,0x3e,0x1f,0xe0,0x43,0x3e,0x1c, +0xe7,0xff,0x0, 0xaa,0xc7,0x28,0x17,0x80,0xaf,0x8d,0xe3,0xff,0xc7,0x7f,0x0, 0xd7, +0x8, 0xb6,0xe0,0x2, 0x19,0xc0,0xe0,0x3, 0x1a,0x2e,0xe0,0xa, 0x8f,0x83,0x17,0x1, +0xe2,0x0, 0xcf,0x81,0xaf,0x4, 0xe0,0x0, 0x1, 0x62,0xe0,0x1, 0x1b,0x7, 0xe0,0x1, +0x19,0x57,0x8f,0x86,0xe0,0x0, 0x12,0xee,0x37,0xc1,0xaf,0x92,0xb2,0x92,0xb2,0xa2, +0xef,0xfb,0xd3,0xd8,0xe0,0x0, 0x1f,0x8e,0xe0,0x0, 0x1f,0xd, 0x8f,0x8f,0x2f,0xaf, +0x17,0x80,0xaf,0x84,0xe0,0x1, 0x1f,0x89,0x8d,0xf, 0xe0,0x1, 0x1f,0x86,0x35,0x28, +0x8d,0x8f,0xe0,0x1, 0x1f,0x85,0x35,0xa8,0x8e,0xf, 0xe0,0x1, 0x1f,0x88,0x36,0x28, +0x8e,0x8f,0xe0,0x1, 0x1f,0x84,0x3e,0xca,0x8f,0xf, 0xe0,0x1, 0x1f,0x83,0x3f,0x4b, +0x8f,0x8f,0xe0,0x43,0x3f,0x1e,0x3f,0xcc,0xe0,0x43,0x3f,0x9f,0xe0,0xc, 0x36,0xc5, +0x85,0x6, 0xae,0x3, 0xe0,0x41,0x3d,0xcf,0xe0,0xc, 0x37,0x5, 0xad,0x12,0xb6,0x92, +0xb7,0x22,0xb7,0xf2,0xe0,0x1, 0xb5,0x82,0xae,0x13,0xb, 0x61,0xe2,0x0, 0xcf,0x88, +0x5, 0xa0,0xe0,0x1a,0x97,0xfe,0xe2,0x2, 0xcf,0xab,0x2, 0x32,0x8f,0x86,0x17,0x3, +0x37,0xc1,0xaf,0x92,0xe0,0x1, 0x17,0x96,0xaf,0x3, 0xb7,0xf2,0xe7,0xfe,0x17,0xea, +0xb2,0x92,0xb2,0xa2,0xe0,0x1, 0xb7,0x82,0xaf,0x13,0x8f,0x84,0xe7,0xff,0x27,0xbc, +0xe0,0x0, 0x1f,0xce,0x17,0x1, 0xaf,0xf, 0xb, 0x61,0x17,0x80,0xaf,0x84,0xb, 0x61, +0xe2,0x0, 0xcf,0x86,0x2, 0x93,0xe2,0x0, 0xcf,0x84,0x2, 0xa6,0xe2,0x0, 0xcf,0x82, +0xe7,0xff,0x5, 0xa8,0xe0,0x1a,0x97,0xfe,0xe2,0x5, 0xcf,0xbb,0xe7,0xff,0x2, 0x22, +0x17,0x84,0x86,0x86,0xe0,0x1, 0x17,0x1b,0x0, 0x8a,0xe0,0x1a,0x97,0xfe,0xe2,0x3, +0xcf,0x8f,0x2, 0x14,0x86,0x86,0x17,0x83,0xe0,0x0, 0x17,0x78,0xaf,0x83,0xb7,0x12, +0xb7,0x22,0xe0,0x1, 0x17,0x20,0xb7,0x72,0xe7,0xfe,0x17,0x60,0xae,0x92,0xe0,0x1, +0xb7,0x2, 0xaf,0x93,0x0, 0xcb,0xe0,0x1a,0x97,0xfe,0xe2,0x3, 0xcf,0xf3,0x2, 0x5d, +0x17,0x84,0x86,0x86,0xe0,0x1, 0x17,0x7, 0x0, 0xea,0x8, 0xb4,0xe0,0x2, 0x19,0xc0, +0xe0,0xa, 0x8f,0x83,0xe2,0x0, 0xcf,0x81,0xe0,0x1, 0x1, 0x0, 0xe0,0x1, 0x19,0x57, +0xe0,0x3, 0x8f,0xe2,0xe2,0x0, 0xcf,0x81,0xe0,0x0, 0x1, 0x4f,0xe0,0x3, 0x1a,0x2e, +0x17,0xff,0xaf,0x84,0xdf,0x46,0x8f,0x84,0xe0,0x1, 0x27,0x99,0xe0,0x1, 0x8f,0xb3, +0x27,0xa1,0x9f,0x12,0x97,0xa2,0x96,0xf2,0xe4,0x0, 0xc7,0xa, 0xe4,0x0, 0xc7,0x8a, +0x37,0x3, 0xe4,0x0, 0xc6,0x8a,0xe3,0xff,0xc7,0x7f,0x37,0x83,0xe0,0x43,0x3e,0x1f, +0x36,0x83,0xe0,0xb, 0x37,0x45,0xad,0x83,0xe0,0x41,0x3f,0xcf,0xe0,0x41,0x3d,0x4d, +0xe0,0xb, 0x36,0x5, 0xb7,0x12,0xb6,0x22,0xb7,0xb2,0xb6,0xf2,0xe0,0x1, 0xb5,0x2, +0xad,0x93,0x8f,0xc3,0xe2,0x1, 0xcf,0xaa,0x1, 0x13,0xe0,0x1, 0x1f,0x82,0x8e,0xf, +0xe0,0x1, 0x1f,0x81,0x36,0x28,0x8e,0x8f,0xe0,0x1, 0x1f,0x80,0x36,0xa8,0x8f,0xf, +0xe0,0x0, 0x1f,0xff,0x3f,0x4c,0x8f,0x8f,0xb7,0x42,0x3f,0xcd,0xb7,0xd2,0xe0,0x0, +0x1f,0xfe,0x8f,0xf, 0xe0,0x0, 0x1f,0xfd,0x37,0x28,0x8f,0x8f,0x3f,0xce,0xe0,0x41, +0x3f,0xcf,0xb7,0xb2,0xa, 0x61,0xe0,0x0, 0x1f,0xfc,0xe0,0x1, 0x1f,0x3, 0x8e,0xf, +0xe0,0x1, 0x1f,0x85,0x8f,0xe, 0x8e,0x8f,0xe0,0x0, 0x1f,0xfb,0x36,0xa8,0x8f,0x8f, +0x3f,0x4d,0x16,0x84,0x36,0x28,0xae,0x83,0xe0,0x1, 0x16,0x96,0xe0,0x1, 0x1d,0x87, +0x3f,0xcc,0xb6,0x92,0xe0,0x0, 0x16,0xf8,0xe0,0x41,0x3f,0xcf,0x85,0x8b,0xb6,0xa2, +0x16,0x0, 0xe0,0x3, 0x1e,0xae,0xe0,0x1, 0xb7,0x82,0x17,0x83,0xad,0x92,0xae,0xd, +0xb7,0x72,0xaf,0x93,0xe7,0xff,0x0, 0x94,0xe0,0x0, 0x1f,0xfc,0xe0,0x1, 0x1f,0x3, +0x8e,0xf, 0xe0,0x1, 0x1f,0x85,0x8f,0xe, 0x8e,0x8f,0xe0,0x0, 0x1f,0xfb,0x36,0xa8, +0x8f,0x8f,0xe0,0x1, 0x19,0x57,0x3f,0x4d,0x16,0x89,0x36,0x28,0xae,0x83,0xe0,0x2, +0x16,0xac,0xe0,0x1, 0x1d,0x87,0x3f,0xcc,0xb6,0x92,0xe0,0x2, 0x16,0x8e,0xe0,0x41, +0x3f,0xcf,0x85,0x8b,0xb6,0xa2,0x16,0x0, 0xe0,0x3, 0x1e,0xae,0xe0,0x1, 0xb7,0x82, +0x17,0x88,0xad,0x92,0xae,0xd, 0xb7,0x72,0xaf,0x93,0xe0,0x2, 0x1f,0xdf,0x8f,0x8f, +0xe7,0xfe,0x2f,0xe6,0xe0,0x3, 0x8f,0xe2,0xe7,0xfe,0x2f,0xe2,0xe0,0x0, 0x1f,0xfa, +0x8f,0xf, 0xe0,0x0, 0x1f,0xf9,0x37,0x28,0x8f,0x8f,0x3f,0xce,0xb7,0x92,0xe7,0xfe, +0x0, 0xd7,0x8, 0xb4,0x17,0x9c,0xe0,0x2, 0x19,0xac,0x3f,0xb8,0x3a,0x68,0x3f,0x93, +0xe0,0x1, 0x8c,0xf, 0xe0,0x2, 0x1f,0x9e,0x11,0x1, 0xa9,0xf, 0xef,0xfc,0xd6,0x7b, +0xe0,0x0, 0x1f,0xb3,0xaa,0x3, 0xa9,0xf, 0xa, 0x61,0xe0,0x1, 0x1e,0xc7,0x17,0x0, +0x3f,0xed,0xe1,0x80,0xb7,0x1f,0xc7,0x82,0xb7,0x1d,0xe1,0x80,0xb7,0x1f,0xb7,0xf, +0x38,0x82,0x0, 0x0, 0x8, 0xb7,0xf8,0x0, 0xc, 0x3c,0xe1,0xff,0xc0,0x8, 0xe0,0x2, +0x1f,0x66,0xe0,0x2, 0x1f,0xfd,0x87,0xe, 0xe0,0x3, 0x8e,0xaf,0xe2,0x0, 0xc7,0x1, +0x3e,0xfe,0x3a,0x68,0xe0,0x0, 0x1, 0x68,0x8b,0xf, 0xf0,0x0, 0x8e,0x2f,0x3c,0x64, +0xe0,0x0, 0xd6,0x38,0xf0,0x0, 0x26,0x52,0x13,0xff,0xe8,0x7, 0x3b,0x9c,0x11,0xff, +0xe2,0x1, 0xc3,0xff,0x39,0x96,0xe0,0x4c,0xc3,0xa7,0xe2,0x1, 0xc1,0xff,0xf0,0x0, +0x14,0x4, 0xe0,0x1, 0x1f,0xff,0xf0,0x18,0x3c,0x10,0x33,0xa1,0x31,0xa1,0xe0,0x1, +0x1a,0xe4,0x3b,0x9f,0xf0,0x1c,0x36,0x21,0xe8,0x3, 0x39,0x98,0xf0,0x0, 0x15,0x3, +0xf0,0x0, 0x14,0xda,0xf0,0x0, 0x15,0x80,0xe0,0x80,0x97,0x95,0xe8,0x40,0x3c,0xea, +0xe4,0x8, 0x37,0x8f,0xe2,0xf, 0x3c,0x4f,0xe0,0x8, 0x3f,0xa8,0xe0,0x4, 0xd9,0xb8, +0xe2,0x0, 0xcc,0x5a,0xe8,0x40,0x3d,0x69,0xe0,0x6a,0x3b,0x28,0xe3,0xff,0xc5,0x7f, +0x23,0x21,0x11,0x2, 0x39,0x10,0x3f,0x62,0x3f,0xe4,0x96,0x8f,0xe8,0xf, 0x3f,0x9c, +0xe0,0x80,0xb6,0x9e,0x3f,0x73,0x1, 0xfa,0x3c,0xe6,0xe8,0x40,0x3c,0x68,0xe0,0x0, +0xd6,0x2f,0x3f,0xe4,0xe0,0x80,0x97,0x12,0x39,0x73,0xb7,0xf, 0xe8,0xf, 0x3f,0x9c, +0x1, 0xfa,0x3a,0xf7,0xc2,0x2, 0x1, 0xd1,0xe0,0x0, 0xc0,0x78,0xf8,0x0, 0xe, 0x28, +0xb, 0xe1,0xe8,0x40,0x3c,0xeb,0xe8,0x40,0x3c,0x68,0xd6,0x19,0x3a,0xf7,0xc2,0x2, +0x1, 0xc4,0x0, 0xf3,0x8b,0x1f,0xf0,0x0, 0x8e,0x3f,0xe7,0xff,0x0, 0x9a,0x0, 0x0, +0x8, 0xb7,0xf8,0x0, 0xc, 0x39,0xe1,0xe6,0xc0,0x58,0x3b,0xe8,0x3c,0x69,0x3b,0x69, +0xef,0xfe,0xd8,0x4b,0xe2,0x0, 0xcb,0x1, 0xe0,0x1, 0x1, 0x4d,0xe0,0x3, 0x19,0x4, +0xe0,0x1, 0x19,0xc7,0x97,0xd2,0x17,0x0, 0xe3,0xff,0xc7,0xdf,0xb7,0x3, 0x3a,0xe8, +0xb7,0xd2,0x3c,0x66,0xef,0xfe,0xd8,0x39,0xe2,0x0, 0xcc,0x0, 0x12,0x2, 0x3f,0xe4, +0xe0,0x6f,0x39,0x28,0x3b,0xff,0x1, 0x6, 0xe0,0x19,0xc0,0x28,0xf8,0x0, 0xc, 0xa8, +0xb, 0xe1,0xe0,0x0, 0x1f,0xbf,0xe0,0x0, 0x1f,0x78,0x8f,0x8f,0x8f,0xe, 0x3f,0x7f, +0xe0,0x2, 0x1, 0x42,0xe0,0x0, 0x1f,0x77,0x8f,0xe, 0x3f,0x7f,0xe0,0x2, 0x1, 0x46, +0xe0,0x0, 0x1f,0x76,0x8f,0xe, 0x3f,0x7f,0xe0,0x2, 0x1, 0x44,0x17,0x80,0x3a,0x6f, +0xe2,0x0, 0xcb,0x2, 0xe0,0x1, 0x1, 0x63,0xe4,0x0, 0xc7,0x9c,0xe0,0x2, 0x1f,0x2c, +0xe0,0x1, 0x1b,0x6e,0x3f,0x9e,0xf0,0x0, 0xa4,0x5f,0xa3,0xef,0xfb,0xe5,0x7c,0xf0, +0xe8,0x0, 0x8f,0x89,0x27,0x8c,0xe0,0x1, 0x22,0xcb,0xe0,0x1, 0x1c,0xf0,0xe0,0x1, +0x1c,0x7d,0xef,0xff,0xd3,0xa3,0x17,0x80,0xe8,0x0, 0xaf,0x89,0x15,0x81,0xe0,0x1, +0x1d,0x7e,0xe0,0x1, 0x1c,0xfd,0xe2,0x0, 0x7c,0x6, 0xef,0xff,0xd3,0x78,0xe0,0x2, +0x1f,0xfc,0x15,0x8c,0x9f,0x8f,0xe0,0x1, 0x1c,0xfd,0x3d,0x9f,0xe0,0x1, 0x1d,0x7e, +0xe3,0xff,0xc5,0xff,0xe0,0xe, 0x37,0xa1,0xe0,0xd, 0x3c,0x9e,0xe0,0xc, 0x3d,0x1e, +0x96,0x8d,0x96,0xc, 0xc7,0x81,0xe2,0x0, 0x7c,0x6, 0xe3,0xff,0xc7,0xff,0x3f,0x18, +0x3e,0xac,0x3f,0xfb,0xb6,0x8e,0x1, 0xef,0x22,0xad,0xe0,0x2, 0x1f,0xea,0x8f,0x8f, +0x3f,0xf4,0xe0,0x1, 0x1, 0x53,0x3c,0xe6,0xe2,0xc, 0x7c,0x5a,0xe8,0x40,0x3d,0x68, +0xef,0xff,0xd3,0x2d,0xe0,0x1, 0x1c,0xf0,0x3d,0x67,0xe2,0x0, 0x7c,0x6, 0xef,0xff, +0xd3,0x26,0xe2,0xc, 0x7c,0xda,0x3c,0x69,0xe2,0x0, 0x7d,0x6, 0x15,0x81,0xef,0xff, +0xd3,0x3e,0xe0,0x1, 0x1d,0x7e,0xe0,0x1, 0x1c,0xfd,0xe2,0x0, 0x7c,0x6, 0x15,0x81, +0xef,0xff,0xd3,0x35,0xe2,0x0, 0x7d,0x6, 0xe2,0xc, 0x7c,0xda,0x3c,0x6a,0xef,0xff, +0xd3,0xe, 0xe2,0x0, 0x7c,0x6, 0xef,0xff,0xd3,0x67,0xe0,0x43,0x3f,0x98,0xe2,0x0, +0xcf,0x80,0xe0,0xff,0x17,0xff,0xe0,0x6f,0x3b,0x28,0x3c,0x6f,0xe0,0x0, 0x1f,0xf5, +0x8f,0x8f,0xb4,0x3, 0xe0,0xe, 0x37,0xa8,0xe0,0x0, 0x1f,0xf4,0x9e,0x83,0x8f,0x8f, +0x3f,0xce,0x3e,0xff,0x97,0xd2,0xe0,0x0, 0x5, 0xce,0xcf,0xa0,0xb7,0xd2,0xe7,0xfe, +0x2a,0xd5,0xe0,0x1, 0x1c,0xfe,0xe0,0x1, 0x1c,0x7d,0xef,0xff,0xd3,0x27,0xe7,0xfe, +0x0, 0xcd,0xe2,0x0, 0xcb,0x84,0xe7,0xfe,0x1, 0xc9,0xe0,0x1, 0x1c,0x63,0xde,0xa3, +0xe0,0x2, 0x1f,0xe6,0xe0,0x2, 0x1f,0x7d,0x87,0x8f,0xe0,0x3, 0x8e,0xae,0xe2,0x0, +0xc7,0x81,0x3e,0xff,0xe0,0x1, 0x1, 0xc, 0x97,0xde,0xc7,0x86,0xe3,0xff,0xc7,0xff, +0xe0,0x0, 0x27,0xd7,0xc7,0xff,0xe3,0xff,0xc7,0xff,0x17,0x0, 0x15,0x1, 0xe0,0x1, +0x1d,0xff,0x3d,0x1f,0x3e,0x6e,0x0, 0x91,0x9e,0x8f,0xe0,0x45,0x17,0xc2,0x3f,0x9e, +0x3e,0xfc,0x37,0xa1,0x3f,0x9b,0x5, 0x6, 0x96,0x8f,0x9e,0xf, 0xe2,0x0, 0xce,0x80, +0x5, 0x2e,0xc7,0x1, 0x3f,0x7a,0x1, 0x30,0xe0,0x45,0x17,0xc2,0x3f,0x9e,0x37,0xa1, +0x3f,0x9b,0x96,0x8f,0xe2,0x0, 0xce,0x80,0x2, 0x68,0x96,0x8f,0xe0,0x41,0x3e,0xcd, +0x0, 0xe5,0xe3,0xff,0xc7,0xdf,0xb7,0xd2,0xe7,0xff,0x0, 0xb3,0xe0,0x1, 0x1c,0x7d, +0x3c,0xe6,0xef,0xff,0xd2,0xdb,0xe7,0xfe,0x0, 0xb8,0x17,0x1, 0x3f,0x1f,0xe0,0x2, +0x1e,0xac,0xe4,0x0, 0xc7,0x1c,0xe4,0x0, 0xc7,0x9c,0x3f,0x1d,0x3f,0x9d,0xf0,0x0, +0xa4,0xe, 0xa3,0xef,0xe0,0x1, 0x1b,0x6d,0xe7,0xfe,0x0, 0x9a,0xe0,0x41,0x3e,0x4c, +0xe3,0xff,0xc6,0x7f,0x0, 0xcf,0xe0,0x43,0x3f,0x9c,0xe4,0x0, 0xc6,0x5, 0xe2,0x0, +0xcf,0x80,0xe3,0xff,0xc6,0x7f,0xe0,0xff,0x17,0xfb,0xe0,0x6f,0x3b,0x2c,0xe0,0x1, +0x1e,0xc7,0xe0,0x0, 0x1f,0x75,0x8f,0xe, 0xb7,0x8d,0x37,0x28,0xe0,0x0, 0x1f,0xf4, +0x9e,0x8d,0x8f,0x8f,0x3f,0xce,0x3e,0xff,0xe0,0x3, 0x1f,0x4, 0x97,0xde,0x5, 0x96, +0xcf,0xa0,0xb7,0xde,0xe7,0xfd,0x0, 0xca,0xe0,0x1, 0x1d,0x70,0x3c,0xe6,0xe2,0xc, +0x7c,0x5a,0x15,0x81,0xef,0xff,0xd2,0x7b,0xe2,0x0, 0x7c,0x86,0xe2,0xc, 0x7d,0x5a, +0x3c,0x69,0xef,0xff,0xd2,0x54,0xe7,0xfe,0x0, 0xc6,0xe3,0xff,0xc7,0xdf,0xb7,0xde, +0xe7,0xfd,0x0, 0xb4,0x12,0x0, 0x3f,0xe4,0xe7,0xfd,0x0, 0xcc,0x97,0xee,0xc7,0x86, +0xe3,0xff,0xc7,0xff,0xe7,0xfe,0x0, 0xf6,0x12,0x1, 0x3f,0xe4,0xe7,0xfd,0x0, 0xc2, +0x3f,0xe4,0xe7,0xfd,0x0, 0xbf,0xe0,0x1, 0x1f,0x4d,0xe0,0x1, 0x1f,0xc7,0x34,0x22, +0x3c,0x1e,0x9e,0x88,0x97,0x2f,0x16,0x7d,0xe2,0x0, 0xc6,0x82,0x3f,0x5c,0x3f,0x4d, +0xb7,0x2f,0x16,0x7e,0x96,0x88,0x97,0x2f,0xe2,0x0, 0xc6,0x81,0x3f,0x5c,0x3f,0x4d, +0xb7,0x2f,0xe4,0x0, 0xc4,0x85,0x9f,0x18,0xe0,0x3, 0x1e,0xb0,0xe4,0x0, 0xc7,0x5, +0x3c,0x9d,0x86,0x89,0xb7,0x1f,0xe0,0x0, 0x1f,0xbf,0xae,0x8f,0x38,0x82,0x0, 0x0, +0x8, 0xb3,0xe0,0x2, 0x19,0x2c,0x39,0xe8,0x8f,0xb2,0x2f,0xab,0xe0,0x0, 0x1f,0xa4, +0xe0,0x0, 0x1e,0xa3,0xe0,0x0, 0x17,0x0, 0xe0,0x80,0xaf,0x1f,0x3e,0xff,0x1, 0xfd, +0x17,0x80,0x16,0xff,0xaf,0x12,0xaf,0x22,0xaf,0x42,0xaf,0x32,0xae,0xd2,0xb7,0xd2, +0xb7,0xe2,0xe0,0x1, 0xaf,0x12,0xe0,0x2, 0xb7,0xb2,0xe0,0x2, 0xb7,0xc2,0xe0,0x4, +0xaf,0x52,0xe0,0x4, 0xb7,0x92,0xe0,0x4, 0xb7,0xa2,0xe0,0x8, 0xaf,0x12,0x21,0x88, +0xe0,0x2, 0x1f,0x7b,0x17,0x87,0xaf,0x8e,0xe0,0x2, 0x1f,0x77,0xaf,0x8e,0x9, 0xe1, +0x8f,0x82,0x17,0x1, 0xe4,0x0, 0xc7,0x9c,0x3f,0x92,0xe0,0x1, 0x8c,0xf, 0xe0,0x2, +0x1f,0xc8,0x87,0x8f,0xe0,0x2, 0x1f,0x9e,0xaf,0xf, 0xef,0xfc,0xd4,0x4, 0x0, 0xc7, +0x8, 0xb1,0x14,0x1, 0xdf,0xbe,0xe0,0x2, 0x1f,0xac,0x15,0x0, 0x8c,0x8f,0xe0,0x0, +0x1c,0x78,0xf0,0x2, 0x19,0xc8,0xf0,0x3, 0x1a,0x30,0x3f,0x6f,0xf0,0x40,0x3a,0xef, +0x3d,0xef,0x3e,0xea,0xf0,0x0, 0x13,0x1, 0xe8,0x0, 0x8f,0x83,0xe1,0x80,0x8e,0x18, +0xe4,0x0, 0xc7,0x85,0xf0,0x0, 0x13,0x81,0xe8,0xf, 0x3f,0x94,0x8f,0x8f,0xf0,0x17, +0x3b,0x9d,0x3f,0xfc,0xe0,0x1, 0xae,0xb, 0xe0,0x6d,0x39,0xa9,0x3c,0xed,0x3f,0xfc, +0xe8,0x40,0x3e,0xe7,0xe2,0x1, 0xc6,0xff,0xe8,0x40,0x3f,0xe6,0xe0,0x6f,0x39,0xaa, +0xe2,0x0, 0xce,0x83,0xc5,0x9c,0x3d,0x6f,0x1, 0xe0,0xe0,0x0, 0x2f,0xd1,0xf8,0x0, +0x8b,0x85,0xf2,0x0, 0xcb,0x82,0x5, 0x86,0x17,0x80,0xe8,0x0, 0xaf,0x85,0xf0,0x0, +0x13,0x80,0xe0,0x0, 0x1f,0xc6,0xf0,0xb, 0x33,0xa2,0xf0,0x3, 0x1b,0x33,0xe0,0x0, +0x1e,0x4b,0xf0,0x1, 0x18,0xee,0xf0,0x1, 0x19,0x70,0xf0,0x1, 0x19,0xef,0xf0,0x1, +0x1a,0x6d,0x3d,0x9f,0x16,0x80,0xf0,0x40,0x3b,0xfd,0x1, 0x26,0x8f,0x8b,0xe0,0xc, +0x14,0x52,0xe4,0x32,0xc7,0xc8,0xe0,0x25,0x14,0xf6,0xe0,0x19,0x15,0x24,0x3c,0x1f, +0x3c,0x9f,0x3d,0x1f,0x3c,0x1c,0x3f,0x9c,0x3c,0x9c,0x3d,0x1c,0xf0,0x0, 0xbb,0x4e, +0xbf,0xde,0xbc,0x6e,0xe0,0x1, 0xbc,0x8e,0xbd,0x7e,0xc6,0x81,0xe2,0x1, 0xc6,0xff, +0xe2,0x0, 0xce,0x83,0xc7,0x1c,0xc5,0x81,0x1, 0xdf,0xe8,0x0, 0x87,0x5, 0xe0,0x2, +0x1f,0xea,0xaf,0xf, 0x8, 0xe1,0xf0,0x0, 0xbb,0x4e,0xf0,0x0, 0xb8,0xde,0xf0,0x0, +0xb9,0x6e,0xf0,0x1, 0xb9,0x8e,0xf0,0x0, 0xba,0x7e,0x0, 0xe8,0xe8,0x0, 0xac,0x85, +0xe7,0xff,0x0, 0xaf,0xe0,0x2, 0x1f,0x6a,0x16,0x81,0x17,0x80,0x8d,0x8e,0xe0,0x2, +0x1c,0xfb,0xe0,0x2, 0x1f,0x2c,0xe0,0x2, 0x1d,0x77,0xe0,0x8, 0x36,0xb8,0x3e,0x6d, +0xf0,0x40,0x3b,0xef,0x3d,0xff,0x1, 0x13,0x8e,0x89,0x3e,0xd8,0x26,0x83,0xe0,0x1, +0xae,0x7e,0x8e,0x8a,0x3e,0xd8,0x26,0x83,0xe0,0x1, 0xae,0x7e,0xc7,0x81,0xe2,0x1, +0xc7,0xff,0xe2,0x0, 0xcf,0x83,0xc7,0x1c,0x1, 0xee,0x38,0x82,0xf0,0x1, 0xab,0xfe, +0x0, 0xf6,0xe0,0x2, 0x1f,0x6a,0xe0,0x2, 0x1d,0xac,0x16,0x81,0x17,0x80,0xe0,0x2, +0x1c,0xfb,0x8d,0xe, 0xe0,0x8, 0x36,0xb8,0x3f,0x6b,0x3e,0x6d,0xf0,0x40,0x3b,0xef, +0x3d,0x7f,0x1, 0x18,0x8e,0x89,0x3e,0xd8,0x26,0x85,0xe0,0x1, 0xae,0x6e,0xe0,0x1, +0xae,0x7e,0xc7,0x81,0xe2,0x1, 0xc7,0xff,0xe2,0x0, 0xcf,0x83,0xc7,0x1c,0x1, 0xf1, +0x17,0x80,0xe0,0x1, 0xaf,0xeb,0x14,0x1, 0xe0,0x5, 0xaf,0xab,0xe0,0x8, 0xaf,0xeb, +0x38,0x82,0xf0,0x1, 0xab,0xee,0xf0,0x1, 0xab,0xfe,0x0, 0xec,0x8, 0xb7,0xf8,0x0, +0xc, 0x39,0xe0,0x2, 0x1a,0xac,0x11,0x81,0xe0,0x2, 0x1a,0x2b,0xf0,0x2, 0x1c,0x9e, +0x3b,0xe8,0x39,0x65,0xdf,0xa0,0x13,0x0, 0xf0,0x40,0x3c,0x63,0xe0,0x1, 0x8f,0xf2, +0x2f,0x98,0xc1,0x1c,0xef,0xfe,0xd5,0xe3,0x2c,0x2c,0x39,0x74,0x1, 0xf8,0x11,0x1, +0x23,0xc, 0x8f,0x85,0xe0,0x2, 0x1f,0x1e,0xe4,0x0, 0xc7,0x9c,0xa9,0xe, 0x3a,0x9f, +0xe0,0x1, 0x8c,0x5, 0xef,0xfc,0xd2,0xff,0x3c,0x62,0xf8,0x0, 0xc, 0xa8,0xb, 0xe1, +0x3c,0x63,0xef,0xfd,0xd3,0x39,0xe0,0x1, 0x8c,0x2, 0xf8,0x0, 0xac,0x9, 0xef,0xfc, +0xd2,0xf2,0xe2,0x0, 0xcb,0x82,0x1, 0x1c,0xa4,0x52,0xe0,0x1, 0xa5,0x2, 0xa4,0xe2, +0x3d,0xe7,0xef,0xfa,0xd8,0xc3,0x3b,0x63,0xc1,0x1c,0xef,0xfe,0xd5,0xb8,0x24,0x56, +0x11,0x0, 0x23,0x63,0x8f,0x85,0x17,0x1, 0xe4,0x0, 0xc7,0x9c,0x3a,0x9f,0xe0,0x1, +0x8c,0x5, 0xe0,0x2, 0x1f,0x9e,0xaf,0xf, 0xef,0xfc,0xd2,0xd5,0x0, 0xd6,0xa4,0x72, +0x0, 0xe5,0x8, 0xb7,0xf8,0x0, 0xc, 0x3b,0x17,0xe, 0x3f,0x38,0xe0,0x3, 0x1f,0xac, +0x3a,0xe8,0x3f,0x9e,0xf0,0x0, 0x8c,0x3f,0x89,0x9f,0xef,0xfe,0xd5,0x2e,0xe2,0x0, +0xca,0x82,0xe0,0x1, 0x1a,0x6e,0xe0,0x1, 0x1f,0xed,0xe0,0x2, 0x19,0x2c,0xe0,0x2, +0x1b,0x2b,0xf0,0x1, 0x1d,0xef,0xf0,0x1, 0x1d,0x70,0xe8,0x3, 0x39,0xc8,0xf0,0x40, +0x3c,0xe8,0xe0,0x64,0x39,0x2f,0x13,0x81,0xf0,0x0, 0x14,0x0, 0xe0,0x1, 0x8f,0xf2, +0x27,0x8f,0xe2,0x0, 0xca,0x82,0x1, 0x23,0xa4,0xd2,0x3d,0xe7,0x3d,0x64,0x3c,0x69, +0xef,0xff,0xd0,0x95,0xf0,0x0, 0x2c,0x8b,0x29,0x91,0xf0,0x1, 0xac,0x72,0xc1,0x1c, +0x39,0x76,0x1, 0xed,0xf8,0x0, 0xd, 0xa8,0xb, 0xe1,0xa4,0xe2,0x3d,0xe7,0xe8,0x40, +0x3d,0x6a,0x3c,0x69,0xef,0xff,0xd0,0x83,0x21,0xf1,0xe0,0x1, 0xa4,0x82,0x3d,0xe7, +0xe8,0x40,0x3d,0x6b,0x3c,0x69,0xef,0xff,0xd0,0x7a,0x0, 0xe8,0xa4,0xf2,0x0, 0xde, +0xe0,0x2, 0x1f,0xfa,0x8f,0x8f,0x27,0xac,0xe0,0x0, 0x1f,0xbf,0x8f,0xf, 0xe0,0x0, +0x1f,0xf8,0x8f,0x8f,0x3f,0xfe,0xe0,0x0, 0x1, 0x47,0xe0,0x0, 0x1f,0xf7,0x8f,0x8f, +0x3f,0xfe,0xe0,0x0, 0x1, 0x43,0xe0,0x0, 0x1f,0xf6,0x8f,0x8f,0xe0,0x2f,0x3f,0x8e, +0x37,0xa1,0xe0,0x2, 0x1f,0x6a,0x8f,0xe, 0x3f,0x7f,0x1, 0x12,0x2c,0x12,0x17,0x1c, +0xe0,0x2, 0x1e,0xac,0x3f,0x3f,0xe2,0x0, 0xcc,0x82,0x3f,0x1d,0xa5,0x5e,0x1, 0x1e, +0xe0,0x1, 0x1f,0xf2,0x15,0x80,0xa4,0x8f,0x3c,0x69,0xe7,0xe0,0x0, 0xc8,0x38,0x82, +0x17,0x7e,0x3f,0x18,0xe2,0x0, 0xcf,0x1, 0x5, 0x97,0x15,0x1, 0xe0,0x2a,0x3c,0xa, +0x2d,0x5, 0x17,0x4, 0xe0,0x28,0x3c,0xe, 0x24,0x6c,0xe4,0x0, 0xc7,0x9c,0xe0,0x2, +0x1f,0x2c,0x3f,0x9e,0xe0,0x1, 0xa5,0xf, 0x0, 0xe4,0xc7,0x81,0xe4,0x0, 0xc7,0x9c, +0x3f,0x9d,0xa5,0xf, 0x0, 0xde,0xe4,0x0, 0xc7,0x9c,0xe0,0x2, 0x1f,0x2c,0x3f,0x9e, +0xa5,0x6f,0x0, 0xd7,0x17,0x80,0x0, 0xc6,0x17,0x81,0x0, 0xc4,0xe0,0x2, 0x1f,0xac, +0xe4,0x0, 0xc4,0x9c,0x17,0x1, 0x3c,0x9f,0xe0,0x1, 0x8c,0x9, 0xe0,0x2, 0x1f,0x9e, +0xaf,0xf, 0xe7,0x84,0x0, 0xa0,0x8, 0xb3,0xe0,0x2, 0x1f,0x66,0xe0,0x2, 0x19,0x9e, +0x17,0x80,0x8f,0xe, 0xaf,0x83,0x27,0xa, 0xe0,0x2, 0x19,0x2c,0x8f,0x32,0xe2,0x0, +0xcf,0x2, 0x1, 0x19,0xe2,0x0, 0xcf,0x3, 0x1, 0x2, 0x9, 0xe1,0x8c,0x52,0x8f,0x82, +0xe2,0x1, 0xcc,0x7f,0x1, 0x30,0x17,0x2, 0xe1,0x2f,0x3f,0x9e,0x2f,0x85,0xe1,0x2e, +0x3c,0x1e,0x2f,0x2, 0xdb,0x77,0x17,0x80,0xaf,0xc2,0x17,0xff,0xaf,0xd2,0x17,0x80, +0xaf,0xb2,0x9, 0xe1,0xe0,0x1, 0x1e,0x51,0x16,0x9c,0x8f,0xc, 0x3e,0xbe,0x3e,0x92, +0xe0,0x1, 0x8d,0x9d,0x25,0xe3,0xc7,0x1, 0xe2,0x1, 0xc7,0x7f,0xe2,0x0, 0xcf,0x2, +0xe0,0x1, 0xaf,0x9d,0x2, 0x8d,0xaf,0xc, 0xe4,0x0, 0xc7,0x1c,0x17,0x81,0x3f,0x12, +0xe0,0x1, 0x8c,0xe, 0xaf,0x83,0xef,0xfc,0xd1,0xde,0x8f,0x32,0x0, 0xcc,0xaf,0x8c, +0x17,0x0, 0x0, 0xf3,0xe4,0x0, 0xc7,0x9c,0x17,0x1, 0x3f,0x92,0xe0,0x1, 0x8c,0xf, +0xaf,0x3, 0xef,0xfc,0xd1,0xd0,0x0, 0xd4,0xe0,0x2, 0x1f,0xac,0x8c,0x4f,0x38,0x82, +0xe0,0x2, 0x1f,0xfa,0x8f,0x8f,0xe0,0x0, 0x27,0xdf,0xe0,0x2, 0x1f,0xc0,0xe0,0x4, +0x8f,0xdf,0xe2,0x0, 0xcf,0x81,0xe0,0x0, 0x1, 0x57,0x8, 0xb5,0xe2,0x0, 0xcc,0x1, +0x39,0x68,0x39,0xe9,0x17,0x84,0x1, 0x9, 0xef,0xfe,0xd4,0x1f,0xe2,0x0, 0xcc,0x0, +0x17,0x2, 0xe0,0x6e,0x39,0x28,0x3f,0xee,0x39,0xff,0xe0,0x2, 0x1a,0x2c,0xe0,0x1, +0x1, 0x54,0x8f,0xb4,0x2f,0xa0,0xe0,0x0, 0x1e,0xa4,0xe0,0x0, 0x1d,0xa3,0x17,0x80, +0xe0,0x80,0x8e,0x1d,0x17,0x1, 0x3f,0x1f,0xe2,0x0, 0xce,0x1, 0xe2,0x1, 0xc7,0x7f, +0xe0,0x6f,0x39,0x2e,0x3d,0xfd,0x1, 0xf5,0xe2,0x0, 0xcf,0x87,0xea,0x12,0x7f,0xa8, +0xe0,0x1, 0x2, 0xe0,0x8f,0xf, 0xe2,0x0, 0xcf,0x1f,0x5, 0x85,0x17,0x20,0xaf,0xf, +0x17,0x80,0xaf,0xc4,0x3c,0xe2,0x3c,0x63,0xef,0xfd,0xd2,0x14,0x8a,0xb4,0xe2,0x0, +0xca,0x81,0xe0,0x1, 0x1, 0x5, 0xe2,0x0, 0xca,0x82,0x1, 0x94,0xe2,0x0, 0xc9,0x1, +0xe0,0x1, 0x1, 0x44,0x3c,0x62,0xef,0xfe,0xd3,0xe0,0xe2,0x0, 0xcc,0x0, 0x17,0x80, +0xe0,0x65,0x39,0x28,0x3c,0x65,0xe1,0x2f,0x39,0x8f,0x27,0x86,0xe1,0x29,0x39,0x88, +0x24,0x83,0xa, 0xe1,0x38,0x82,0x8f,0x94,0x16,0x9c,0x3e,0xbf,0xe0,0xc, 0x3a,0x1d, +0xe0,0x1, 0x87,0x1c,0xc7,0x1, 0xe2,0x1, 0xc7,0x7f,0xe2,0x0, 0xcf,0x1, 0xe0,0x1, +0xaf,0x1c,0x5, 0xf0,0xe0,0x1, 0x1d,0xc7,0x9d,0x5c,0x9f,0xb, 0x3f,0x1a,0xe2,0xff, +0xcf,0x7e,0xe0,0x1, 0x5, 0x34,0xe0,0xff,0x17,0x7f,0xb7,0x5c,0x3e,0x94,0x9f,0xb, +0x9e,0x6d,0x3e,0x7e,0x3, 0x83,0x9f,0xb, 0xb7,0x6d,0xc7,0x81,0xe2,0x1, 0xc7,0xff, +0xe2,0x0, 0xcf,0x82,0xe0,0x1, 0x2, 0xac,0xaf,0x94,0x8d,0x84,0x3f,0xfb,0xe0,0x1, +0x1, 0x2c,0x8f,0xa4,0xe0,0x0, 0x1f,0x73,0x8f,0xe, 0x3f,0x7f,0x2, 0xcb,0x14,0x0, +0xe0,0x2, 0x1f,0x2c,0x3c,0xe8,0xe1,0xff,0x16,0x7f,0x3f,0xe8,0x9e,0xde,0x15,0x1, +0x3e,0xfc,0x3d,0x1f,0x3, 0x84,0x9c,0x6e,0x3c,0xef,0x3e,0x6d,0x3f,0xea,0xe2,0x1, +0xc7,0xff,0xe2,0x0, 0xcf,0x83,0xc7,0x1c,0x1, 0xf2,0x3d,0xf9,0x1, 0x1a,0xe4,0x0, +0xc5,0x9c,0xe0,0xf, 0x3a,0x1b,0x9f,0xdf,0xe0,0xe, 0x37,0xc2,0xe4,0x0, 0xc7,0x3, +0x3f,0x7c,0x5, 0x8b,0xe0,0x0, 0x1f,0x75,0x8e,0x8e,0xe0,0x0, 0x1f,0x74,0x36,0xa8, +0x8f,0xe, 0x3f,0x4d,0x3f,0x78,0x2, 0x87,0x37,0xc1,0x3f,0xfc,0xe0,0x0, 0x2, 0xfc, +0xe0,0x1, 0x14,0xff,0x17,0x83,0xac,0xd4,0xaf,0xb4,0xa, 0xe1,0xe0,0x0, 0x1f,0xbb, +0xe0,0x6, 0x8f,0xdf,0xc7,0xff,0x3c,0x7f,0xe7,0xff,0x1, 0x8d,0x17,0x80,0x8e,0x84, +0xb7,0xd4,0x17,0x0, 0xb7,0xe4,0x16,0x7f,0xe0,0x1, 0xaf,0x94,0xe0,0x2, 0xb7,0xb4, +0xe0,0x2, 0xb7,0xc4,0xe0,0x4, 0xb7,0x94,0xe0,0x4, 0xb7,0xa4,0xe0,0x1, 0x1f,0xd1, +0xae,0x94,0xae,0x8f,0x17,0x82,0xaf,0x24,0xae,0x54,0xe0,0x4, 0xaf,0x54,0xe0,0x8, +0xaf,0x14,0xaf,0xb4,0xa, 0xe1,0x8f,0x34,0xe7,0xfe,0x2f,0x4e,0xea,0x12,0x7e,0xa9, +0x87,0x8d,0xc7,0x81,0xe2,0x1, 0xc7,0xff,0xe2,0x0, 0xcf,0x93,0x2, 0xac,0xaf,0x8d, +0xe0,0x0, 0x1f,0x75,0xe0,0x1, 0x1e,0x47,0x8e,0x8e,0xe0,0x0, 0x1f,0x74,0x9e,0xc, +0x8f,0xe, 0x36,0xa8,0x3f,0x4d,0x3e,0x7e,0xe0,0x0, 0x1f,0x22,0x3f,0x9e,0x5, 0xa3, +0x17,0x1, 0xaf,0xf, 0xe7,0xfe,0x0, 0x91,0x17,0x85,0x14,0x4, 0xe7,0xfe,0x0, 0xc5, +0xe0,0x0, 0x1c,0x22,0x17,0x1, 0x16,0x80,0x15,0x14,0x14,0x80,0xae,0x8f,0xaf,0x44, +0xaf,0x34,0xe0,0x4, 0xd4,0xd9,0xe0,0x0, 0x1f,0x91,0xe0,0x2, 0x17,0x68,0xb7,0xf, +0xe7,0xfe,0x0, 0x9a,0xaf,0xd, 0x3f,0xee,0x0, 0xd4,0x9f,0xb, 0x3d,0x1e,0xb5,0x5c, +0xe7,0xfe,0x0, 0xce,0x17,0x0, 0xaf,0xf, 0xe7,0xfd,0x0, 0xef,0x17,0x80,0xaf,0x94, +0x17,0x80,0xe7,0xfe,0x0, 0xd4,0x87,0xa4,0xc7,0x81,0xe2,0x1, 0xc7,0xff,0xaf,0xa4, +0xe7,0xfe,0x0, 0xd2,0xe0,0x0, 0x1f,0xf5,0x3d,0x94,0x8f,0xf, 0xe0,0x0, 0x1f,0xf4, +0x37,0x28,0x8f,0x8f,0x9e,0xeb,0x3f,0xce,0x3e,0xff,0xe0,0x1, 0x17,0xff,0xe0,0x6f, +0x3a,0xa9,0x3c,0xef,0xe7,0xfe,0x0, 0xf8,0xe0,0x2, 0x1f,0xac,0xe0,0x1, 0x8f,0xf, +0x3f,0x78,0x1, 0xd, 0xe0,0x4, 0x8f,0x4f,0x3f,0x78,0x1, 0x9, 0xe0,0x8, 0x8f,0xf, +0x3f,0x78,0x1, 0x5, 0xe0,0x1, 0xac,0xf, 0x14,0x1, 0x38,0x82,0x14,0x0, 0x38,0x82, +0xe2,0x1, 0xcc,0x80,0xe0,0x2, 0x1f,0xac,0x1, 0x1f,0xe2,0x1, 0xcc,0x81,0x1, 0x2b, +0xe2,0x0, 0xcc,0x82,0x5, 0x82,0x14,0x80,0x8f,0x8f,0x3c,0xff,0x1, 0x4, 0xe2,0x0, +0xcf,0x82,0x5, 0x86,0xe0,0x2, 0x1f,0x93,0xe0,0x1, 0xac,0xaf,0x38,0x82,0x8, 0xb1, +0xc0,0x7c,0x3c,0x69,0x7c,0x81,0xd9,0xbe,0x64,0x81,0xe0,0x2, 0x1f,0x93,0xe0,0x1, +0xac,0xaf,0xc0,0x4, 0x8, 0xe1,0xe0,0x1, 0x8f,0xf, 0xe0,0x4, 0x8e,0xcf,0x14,0x80, +0x3f,0x7d,0x3, 0x9b,0xe0,0x8, 0x8e,0x8f,0x3e,0xfe,0x17,0x2, 0xe0,0x6e,0x3a,0xa9, +0x3c,0xee,0x0, 0xdb,0xe0,0x1, 0x8f,0xf, 0xe0,0x4, 0x8e,0xcf,0x14,0x80,0x3f,0x7d, +0x5, 0x89,0xe0,0x8, 0x8e,0x8f,0x3e,0xfe,0x17,0x2, 0xe0,0x6e,0x3c,0xa9,0x3c,0xee, +0x0, 0xcc,0x3f,0x6d,0x14,0x81,0x0, 0xf6,0x3f,0x6d,0x14,0x81,0x0, 0xe4,0x0, 0x0, +0x8, 0xb7,0xe0,0x2, 0x1f,0x7d,0x8f,0xfe,0x89,0x6e,0x8a,0x5e,0x27,0xad,0x12,0xff, +0x3a,0x9f,0xe2,0x1, 0xc2,0xff,0xe0,0x4c,0xc2,0xa7,0xe0,0x1, 0x1f,0xff,0x32,0xa1, +0xe0,0x1, 0x1b,0x64,0x39,0xe8,0x3a,0x9f,0xe0,0x0, 0x13,0x80,0x21,0x1e,0x14,0x0, +0x3f,0x67,0x3e,0x64,0xe3,0xff,0xc7,0x7f,0xe0,0x40,0x3f,0xe8,0xe0,0xd, 0x37,0x21, +0xc7,0x81,0x3e,0x93,0xe2,0x1, 0xc7,0xff,0x96,0x8d,0x39,0x7f,0x3f,0x1c,0x3c,0x1d, +0xe3,0xff,0xc7,0x7f,0x1, 0xf4,0x3c,0xe2,0xe0,0x4, 0xd3,0x82,0xe0,0x80,0xb4,0x16, +0x3a,0xf6,0xc3,0x81,0x1, 0xe4,0xb, 0xe1,0x3c,0x62,0x3c,0xe2,0xe0,0x4, 0xd3,0x78, +0xe0,0x80,0xb4,0x16,0x3a,0xf6,0xc3,0x81,0x1, 0xda,0x0, 0xf6,0xe0,0x0, 0x24,0xd3, +0x8, 0xb3,0x16,0x7f,0x3e,0x19,0xe2,0x1, 0xc6,0x7f,0x11,0x7e,0x39,0x18,0x36,0x21, +0x3e,0x18,0x39,0xe2,0xe0,0x0, 0x14,0x0, 0xe0,0x43,0x3d,0x9a,0xe0,0x80,0x97,0x13, +0xe4,0xd, 0x37,0xf, 0xe2,0xf, 0x3e,0xce,0x3f,0xad,0xe0,0x43,0x3f,0x9f,0x3f,0xfa, +0xe0,0x6f,0x3a,0x2b,0x3e,0x73,0x3c,0x1f,0x1, 0xf2,0xe0,0x4, 0xd3,0x51,0xe2,0x0, +0xcc,0x8, 0x15,0x88,0xe0,0x6b,0x3b,0x28,0xe7,0xfe,0x16,0x2f,0xe0,0x0, 0x15,0x6d, +0x0, 0x91,0xe0,0xe, 0x3f,0xab,0xe0,0x2d,0x3f,0xac,0xe0,0x43,0x3f,0x1e,0x26,0x99, +0xe0,0x2d,0x3e,0x1e,0x26,0x96,0xe0,0xf, 0x37,0x2, 0xe0,0x80,0xb7,0x92,0x39,0xf2, +0x1, 0x18,0xe0,0x0, 0x97,0x92,0xe2,0x0, 0xcf,0x87,0x2, 0x6c,0xe3,0xff,0xcf,0xf9, +0x3, 0x75,0xe0,0xe, 0x3d,0x9f,0xe0,0x2d,0x3f,0xac,0xe0,0x43,0x3f,0x1e,0x2e,0xe9, +0xe0,0x2f,0x3d,0x2f,0x27,0x84,0xe0,0x2f,0x3f,0x1a,0x2f,0xe6,0x3f,0xee,0x0, 0xe6, +0x9, 0xe1,0x38,0x82,0x8, 0xb7,0xf8,0x0, 0xc, 0x39,0xe0,0x2, 0x1f,0xfd,0xe0,0x1, +0x1b,0x72,0x8a,0x6f,0xa4,0x86,0xe0,0x1, 0x1c,0x62,0xe7,0x0, 0x16,0x0, 0xe0,0xff, +0x15,0xff,0x15,0x0, 0x8a,0xff,0xef,0xfe,0xde,0x8, 0x22,0x2f,0xc2,0x7f,0xe2,0x1, +0xc2,0x7f,0xe0,0x4b,0xc2,0x6b,0xe0,0x1, 0x1f,0xff,0x32,0x21,0xe0,0x1, 0x19,0xe1, +0xe0,0x19,0x32,0xa1,0x3a,0x1f,0x11,0x0, 0xf0,0x0, 0x14,0x3, 0xe0,0x0, 0x13,0xda, +0xe0,0x80,0x97,0x93,0xe8,0x40,0x3c,0xe8,0xe4,0x8, 0x37,0x8f,0xe2,0xf, 0x3c,0x4f, +0xe0,0x8, 0x3f,0xa8,0xe0,0x4, 0xd2,0xec,0xe2,0x0, 0xcc,0x5a,0xa7,0x86,0x3d,0x67, +0xe0,0x6a,0x3b,0x28,0xe3,0xff,0xc5,0x7f,0xe0,0x8, 0x3f,0x92,0x3c,0xe5,0xdf,0x6f, +0x3a,0x73,0xe8,0x2, 0x39,0x19,0x1, 0xe5,0xf8,0x0, 0xc, 0xa8,0xb, 0xe1,0x0, 0x0, +0x8, 0xb7,0xf8,0x0, 0xc, 0x3c,0xe1,0xff,0xc0,0x8, 0xe0,0x2, 0x1f,0xfd,0xf0,0x1, +0x1e,0x7f,0x8a,0x7f,0xe8,0x40,0x3c,0x6c,0x8b,0x6f,0xef,0xff,0xdf,0x1b,0xe0,0x0, +0x22,0x4f,0x13,0xff,0x3b,0x94,0x11,0xff,0xe2,0x1, 0xc3,0xff,0x39,0x96,0xe0,0x4c, +0xc3,0xa7,0xe2,0x1, 0xc1,0xff,0xf0,0x0, 0x14,0x4, 0xf0,0x18,0x3c,0x10,0x33,0xa1, +0x31,0xa1,0xe0,0x1, 0x1a,0xe4,0xe8,0x7, 0x3b,0x9c,0x32,0x21,0xe8,0x3, 0x39,0x98, +0xf0,0x0, 0x15,0x3, 0xf0,0x0, 0x14,0xda,0xf0,0x0, 0x15,0x80,0xe0,0x80,0x97,0x95, +0xe8,0x40,0x3c,0xea,0xe4,0x8, 0x37,0x8f,0xe2,0xf, 0x3c,0x4f,0xe0,0x8, 0x3f,0xa8, +0xe0,0x4, 0xd2,0x9e,0xe2,0x0, 0xcc,0x5a,0xe8,0x40,0x3d,0x69,0xe0,0x6a,0x3b,0x28, +0xe3,0xff,0xc5,0x7f,0x23,0x21,0x11,0x2, 0x39,0x10,0x3f,0x62,0xe8,0x40,0x3f,0xec, +0x96,0x8f,0x3f,0x94,0xe0,0x80,0xb6,0x9e,0x3f,0x73,0x1, 0xfb,0x3c,0xe6,0xe8,0x40, +0x3c,0x68,0xdf,0x15,0xe8,0x40,0x3f,0xec,0xe0,0x80,0x97,0x12,0x39,0x73,0xb7,0xf, +0x3f,0x94,0x1, 0xfb,0x3a,0xf7,0xf0,0x0, 0xc6,0x2, 0x1, 0xd1,0xe0,0x0, 0xc0,0x78, +0xf8,0x0, 0xe, 0x28,0xb, 0xe1,0xe8,0x40,0x3c,0xeb,0xe8,0x40,0x3c,0x68,0xde,0xff, +0x3a,0xf7,0xf0,0x0, 0xc6,0x2, 0x1, 0xc3,0x0, 0xf2,0x0, 0x0, 0x8, 0xb7,0xf8,0x0, +0xc, 0x3e,0xc0,0x68,0xe0,0x3, 0x1f,0xc7,0xf0,0x2, 0x1e,0x7d,0x8f,0xf, 0xe8,0x0, +0x8e,0x4c,0xe8,0x0, 0x8e,0xdc,0xe2,0x0, 0xcf,0x1, 0x7e,0x4, 0x3a,0x68,0x7e,0x85, +0x39,0xe9,0xe0,0x2, 0x1, 0x77,0x8f,0x8f,0xe0,0x1, 0x1f,0x8, 0xe2,0x0, 0xcf,0x83, +0xe0,0x1, 0x1f,0x89,0x8f,0x8f,0xe0,0x2, 0x1, 0x73,0xf0,0x0, 0x8d,0xe, 0x37,0xa8, +0xf0,0x1a,0x3d,0x4f,0xf0,0x0, 0x7d,0x1, 0xe0,0x2, 0x22,0x1f,0x67,0x4, 0x12,0x80, +0x3f,0xee,0xc7,0xff,0x7f,0x86,0xf0,0x40,0x3f,0x65,0xf0,0x0, 0x1e,0x8d,0xf0,0x2, +0x1c,0xbc,0xe0,0x1, 0x1b,0xff,0x13,0x3, 0xe0,0x1, 0x29,0x8e,0xe8,0x0, 0x8f,0x8d, +0xf8,0x0, 0x8d,0x9d,0x3f,0xfe,0xe0,0x0, 0x1, 0x76,0xe8,0x0, 0x8f,0x9, 0xe2,0x0, +0xcf,0x1, 0xe0,0x1, 0x1, 0x7, 0xe8,0x0, 0x89,0x5c,0x66,0x1, 0x39,0x3f,0xe8,0x2, +0x39,0x1b,0xf0,0x40,0x3d,0xe2,0xf3,0xff,0xc5,0xff,0xf0,0xe, 0x35,0xa1,0x3f,0x17, +0x96,0x8e,0xe4,0x9, 0x36,0x8f,0xe2,0xe, 0x3c,0xcd,0x3f,0x29,0x3f,0x7c,0xe0,0x0, +0x2, 0x5a,0xe0,0x1, 0x2f,0x96,0x67,0x84,0x39,0x65,0xe2,0x0, 0xcf,0x81,0xe0,0x2, +0x2, 0x47,0xe2,0x0, 0xce,0x80,0xe0,0x1, 0x4, 0x26,0x3f,0xe5,0xe3,0xff,0xc7,0xff, +0x37,0xcf,0xe0,0x1, 0x27,0xad,0x3f,0xe2,0xe3,0xff,0xc7,0xff,0x37,0xcf,0xe0,0x1, +0x27,0xa7,0x17,0x8e,0xe8,0xf, 0x3f,0x9b,0x37,0xa1,0xe8,0xf, 0x3f,0x9c,0x9c,0xf, +0x3c,0xe6,0xe0,0x4, 0xd2,0x30,0x11,0x7c,0xe8,0x2, 0x39,0x1b,0xf0,0x40,0x3c,0x68, +0xf3,0xff,0xc4,0x7f,0xe3,0xff,0xc1,0x7f,0x17,0x7f,0xe8,0xe, 0x3f,0x1b,0xf0,0x40, +0x3d,0x6e,0xf3,0xff,0xc5,0x7f,0x17,0x8e,0xe8,0xf, 0x3f,0x9a,0x37,0xa1,0x3c,0xe6, +0xe8,0xf, 0x3f,0x9c,0xf0,0x2, 0x25,0x8e,0xf0,0x40,0x3d,0x72,0xe0,0x1, 0x1, 0x31, +0x9c,0xf, 0xe0,0x4, 0xd2,0x10,0xe3,0xff,0xc4,0x7f,0xf0,0x40,0x3c,0x78,0xe0,0x1, +0x1, 0xfb,0xf8,0x40,0x3d,0xea,0x0, 0xe1,0x17,0xff,0x3f,0x92,0x39,0x6f,0xe2,0x1, +0xc1,0x7f,0xe0,0x1, 0x29,0x49,0x29,0x86,0x14,0x80,0xe8,0x40,0x3c,0x6e,0xe0,0x0, +0xdc,0x1d,0x16,0x1, 0xe8,0xc, 0x3e,0x1e,0xf0,0x40,0x3f,0x6c,0xf2,0x1, 0xc7,0x7f, +0xe8,0x40,0x3a,0x7e,0xf0,0x0, 0xc6,0x82,0xe0,0x1, 0x1, 0x7, 0xe8,0x0, 0x8f,0x4c, +0xe7,0xfe,0x21,0xf6,0xe8,0x7, 0x8f,0xcd,0xf8,0x7, 0x8d,0xdd,0xe7,0xfe,0x0, 0xf4, +0x27,0xe9,0xe0,0x1, 0x1e,0x42,0xe0,0xe, 0x8f,0x1c,0xc7,0x7f,0xe0,0x2e,0x3f,0xf, +0x2f,0x61,0xf0,0x2e,0x3d,0x8e,0x2f,0x5e,0xe0,0xe, 0x8f,0x2c,0xc7,0x7f,0xf0,0x40, +0x3d,0xfe,0x1, 0x58,0xe8,0x0, 0x89,0x5c,0x66,0x1, 0x39,0x3f,0xe8,0x2, 0x39,0x1b, +0xf0,0x40,0x3d,0xe2,0xf3,0xff,0xc5,0xff,0xf0,0xe, 0x35,0xa1,0x3f,0x17,0x96,0x8e, +0xe4,0x9, 0x36,0x8f,0xe2,0xe, 0x3c,0xcd,0x3f,0x29,0x3f,0x7c,0x2, 0x43,0x66,0x5, +0xf0,0x9, 0x3d,0xac,0x66,0x6, 0x34,0xa1,0x3e,0x7f,0x3c,0x97,0x91,0x9, 0xe0,0x1, +0x5, 0x38,0x64,0x85,0xe2,0x0, 0xcf,0x80,0xe8,0x9, 0x3c,0x9b,0x34,0xa1,0x3c,0x97, +0x92,0x89,0x3f,0xe5,0xe0,0x6f,0x39,0xa2,0xe2,0x0, 0xce,0x80,0x39,0x6f,0xe7,0xfe, +0x3, 0x5e,0xe0,0x41,0x3f,0x82,0xe3,0xff,0xc7,0xff,0x37,0xcf,0x27,0x88,0xe0,0x41, +0x3f,0x85,0xe3,0xff,0xc7,0xff,0x37,0xcf,0xe7,0xfe,0x2f,0xdd,0xe4,0x0, 0xc7,0xa, +0xe1,0xff,0x14,0x7e,0x3c,0x5e,0x14,0x9e,0xe0,0x4, 0xd1,0x8d,0xe4,0xe, 0x31,0xf, +0xe2,0xf, 0x3f,0x42,0x3f,0xae,0xe3,0xff,0xc4,0x7f,0xe3,0xff,0xc7,0xff,0xe1,0x2f, +0x3c,0x1f,0xe7,0xff,0x27,0x88,0xe4,0xe, 0x32,0x8f,0xe2,0xf, 0x3f,0x45,0x3f,0xae, +0xe3,0xff,0xc7,0xff,0xe1,0x2f,0x3c,0x1f,0xe7,0xfe,0x2f,0xbd,0x16,0x1, 0xe8,0xc, +0x3e,0x1e,0xf0,0x40,0x3f,0x6c,0xf2,0x1, 0xc7,0x7f,0xe8,0x40,0x3a,0x7e,0xf0,0x0, +0xc6,0x82,0xe7,0xfe,0x1, 0xfd,0xc0,0x18,0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0x79,0x3, +0xf0,0xd, 0x35,0x21,0xe8,0x0, 0x9f,0x5c,0xc6,0x9a,0x7f,0x2, 0xf0,0x1b,0x3e,0x1d, +0x11,0x1, 0xe8,0x80,0x9c,0x1b,0x3c,0xe6,0xe0,0x4, 0xd1,0x55,0xe3,0xff,0xc4,0x7f, +0xf0,0x40,0x3c,0x78,0xf0,0x0, 0x13,0x81,0x14,0x81,0xf0,0x17,0x3b,0x92,0xe8,0x9, +0x3c,0x9a,0xe7,0xfe,0x1, 0xc3,0x67,0x82,0xe8,0x40,0x3f,0xfa,0xf0,0x40,0x3d,0x69, +0xf3,0xff,0xc5,0x7f,0x5, 0x88,0xe8,0x40,0x39,0x67,0xe2,0x1, 0xc1,0x7f,0xe2,0x0, +0xc9,0x5, 0x1, 0xe0,0x16,0xff,0x3e,0x92,0x67,0x83,0x66,0x3, 0xe2,0x1, 0xc6,0xff, +0x37,0xa1,0x3e,0x9c,0xc7,0xfe,0x36,0xa1,0x3f,0x97,0x3e,0x97,0x97,0x1f,0x37,0x2, +0xe0,0x80,0xb7,0x1f,0x3f,0xfd,0x1, 0xfb,0xe7,0xfe,0x29,0xad,0xe7,0xfe,0x0, 0xa6, +0xe0,0x1, 0x1f,0xd7,0x9f,0xaf,0x7f,0x81,0xe7,0xfd,0x0, 0x98,0x8c,0xe, 0x37,0xa8, +0x3c,0x4f,0x14,0x8a,0x34,0x23,0xe0,0x4, 0xd0,0xd3,0xe3,0xff,0xc4,0x7f,0x7c,0x1, +0xe7,0xfd,0x0, 0x8c,0xf0,0x0, 0x7d,0x83,0xf8,0x40,0x3d,0x6b,0xe7,0xff,0x0, 0xaa, +0xf8,0x40,0x3d,0x6b,0xf0,0x0, 0x7d,0x83,0xe7,0xff,0x0, 0xa4,0x67,0x85,0xe8,0xf, +0x3f,0x9b,0x37,0xa1,0x3f,0x97,0x92,0x8f,0x39,0x65,0xe7,0xfd,0x0, 0xb4,0x3e,0x62, +0xe0,0x6c,0x39,0xa5,0x3a,0xec,0xe7,0xfd,0x0, 0xae,0xe0,0x3, 0x1f,0xc7,0x8f,0x8f, +0xe2,0x0, 0xcf,0x83,0x1, 0x2, 0x38,0x82,0x8, 0xb1,0xe0,0x1, 0x1f,0x7, 0xe0,0x1, +0x1f,0xd7,0x86,0x8e,0xe0,0x0, 0x17,0x5a,0xb7,0x1f,0xb7,0x2f,0xe7,0xff,0x17,0x26, +0xae,0x9f,0xb7,0x3f,0xef,0xfa,0xd9,0x6, 0xe0,0x0, 0x1f,0x8e,0x8c,0xf, 0x2c,0xa, +0xe0,0x0, 0x1f,0x8c,0x8c,0xf, 0x2c,0x2, 0x8, 0xe1,0x14,0x81,0x8, 0xa1,0xe7,0xfc, +0x0, 0xa7,0x14,0x80,0xde,0x24,0x0, 0xf5,0xe0,0x3, 0x1f,0xc7,0x8f,0x8f,0xe2,0x0, +0xcf,0x81,0x1, 0x2, 0x38,0x82,0xe0,0x0, 0x1f,0x8e,0x8c,0xf, 0x24,0x7c,0x14,0x80, +0xe7,0xfc,0x0, 0x96,0x8, 0xb7,0xe1,0xff,0xc0,0x30,0x12,0x8c,0x3a,0x90,0xe0,0x0, +0x15,0x48,0x14,0x80,0x3c,0x65,0xe0,0x4, 0xd1,0xf, 0xef,0xfa,0xd8,0xdb,0xe0,0x2, +0x1f,0xe6,0xe0,0x2, 0x1a,0x7d,0x87,0x8f,0xe0,0x3, 0x8f,0x24,0xe2,0x0, 0xc7,0x81, +0x3f,0x7f,0xe0,0x2, 0x1, 0x45,0x87,0xa4,0x89,0x4, 0xe4,0xf, 0x37,0xa8,0xe4,0xe, +0x37,0xc8,0xe2,0x0, 0xcf,0x21,0xea,0x40,0xcf,0x0, 0xe0,0x6f,0x3b,0xae,0xe4,0xf, +0x37,0xc8,0x39,0xef,0xe0,0x2, 0x27,0xba,0xf7,0xff,0x12,0x7f,0xf0,0x14,0x3a,0x1f, +0xfa,0x4e,0x7b,0xf4,0xe0,0x1, 0x1f,0xf2,0x8d,0x54,0xf9,0xff,0xc3,0xff,0xf3,0xff, +0xc2,0x7f,0xf0,0x0, 0xa3,0xf, 0x3d,0xe2,0xf8,0x14,0x3a,0x17,0x35,0x21,0x17,0x80, +0xf0,0x40,0x3a,0xe5,0x25,0x9a,0x14,0x98,0x3c,0xbf,0xe8,0x40,0x3f,0x66,0xf0,0xf, +0x3a,0x99,0xe0,0x1, 0x9c,0x1f,0xa6,0x8f,0x17,0x80,0xc7,0x81,0xe3,0xff,0xc7,0xff, +0x96,0xe, 0x3f,0xfb,0x3e,0x9c,0x3f,0x1a,0x1, 0xf9,0xf0,0xf, 0x3a,0x99,0xe0,0xe, +0x3d,0x98,0xbe,0x8f,0xe0,0x1, 0xb7,0x1f,0xf8,0x40,0x3a,0x77,0xf0,0x0, 0xc3,0x2, +0x1, 0x4, 0xe8,0x80,0x8f,0x97,0x0, 0xdf,0x64,0x3, 0x5c,0x8f,0x12,0x8c,0x3a,0x90, +0xe0,0x4, 0xd0,0x16,0xb4,0x65,0xe0,0x2, 0x9c,0xd5,0xa4,0x65,0xe0,0x4, 0xd0,0x10, +0xe0,0x2, 0xb4,0x25,0xe0,0x4, 0x9c,0x95,0xe0,0x1, 0xa4,0x45,0xe0,0x4, 0xd0,0x8, +0xe0,0x3, 0xb4,0x65,0xe0,0x0, 0x21,0xd9,0xf7,0xff,0x10,0xff,0xe0,0x1, 0x1f,0xf2, +0xfa,0x4e,0x79,0xf4,0xf0,0x11,0x38,0x93,0xf0,0x0, 0x8a,0x54,0xf9,0xff,0xc1,0xff, +0xf3,0xff,0xc0,0xff,0x3c,0xe2,0xf0,0x0, 0xa1,0xf, 0xe2,0x1, 0xc4,0xff,0xf8,0x11, +0x38,0x93,0xf0,0x14,0x32,0x21,0x15,0x0, 0x24,0xb7,0xe4,0x0, 0xc5,0x18,0xf0,0x0, +0x13,0x8, 0x3d,0x15,0xf0,0x0, 0x13,0x96,0x14,0x4, 0xf0,0x0, 0x92,0xea,0xf0,0x16, +0x3b,0x1a,0xf0,0x17,0x3b,0x9a,0x3c,0x1a,0xe8,0x40,0x3f,0x62,0x17,0x80,0xc5,0x14, +0x0, 0x8e,0xa5,0x88,0x96,0xa, 0xc7,0x81,0xe3,0xff,0xc7,0xff,0x3e,0x9b,0xc6,0x1, +0x3f,0xf9,0xbe,0x88,0xe8,0xe, 0x3f,0x14,0xb6,0xa, 0x1, 0x16,0x96,0x8e,0xe8,0x40, +0x3e,0xf5,0x5, 0x70,0xe8,0x0, 0xa5,0x86,0xe8,0x0, 0x96,0x7, 0xc7,0x81,0xe3,0xff, +0xc7,0xff,0x3e,0x9b,0xc6,0x1, 0x3f,0xf9,0xe8,0x0, 0xbe,0x86,0xe8,0xe, 0x3f,0x14, +0xe8,0x0, 0xb6,0x7, 0x1, 0xec,0xf8,0x40,0x39,0xf1,0xf0,0x0, 0xc1,0x2, 0x1, 0x4, +0xe8,0x80,0x8d,0x13,0x0, 0xc2,0x13,0xc, 0x3b,0x10,0xe0,0x0, 0x13,0xd4,0x3b,0x90, +0x3a,0xe6,0xe0,0x1, 0x9f,0xa5,0x3c,0xef,0xe0,0x0, 0x27,0xfc,0xa4,0x15,0xe0,0x3, +0xdf,0x9f,0xb4,0x75,0xe0,0x1, 0x9f,0xb5,0x3c,0xef,0xe0,0x0, 0x27,0xef,0xa4,0x25, +0xe0,0x3, 0xdf,0x96,0xe0,0x1, 0xb4,0x5, 0xc2,0x98,0x3b,0xf5,0x1, 0xeb,0xe0,0x0, +0x1f,0x8d,0x17,0x4, 0x3f,0x10,0xe0,0x1b,0x95,0x1f,0x3d,0xee,0x17,0x80,0xe0,0x1, +0x14,0x16,0xe7,0xfe,0x14,0xea,0xe3,0xfe,0xcd,0x38,0xe0,0x0, 0x3, 0x45,0xe0,0x1, +0x9e,0xb6,0xe2,0x0, 0xce,0xe3,0x5, 0xbf,0xe0,0x1, 0x96,0x86,0xe0,0xc, 0x37,0xa1, +0xe3,0xfe,0xce,0xea,0xb6,0x8e,0x3e,0x1b,0x3, 0x3e,0xb4,0x8c,0xc7,0x81,0xe2,0x0, +0xcf,0x83,0xc3,0x18,0xc7,0x2, 0x1, 0xe8,0xe0,0x0, 0x21,0xc7,0xe0,0x1, 0x1f,0xf2, +0xea,0x4e,0x7a,0xf4,0xc1,0xff,0xe9,0xff,0xc2,0xff,0xe3,0xff,0xc1,0xff,0xa4,0x8f, +0xe2,0x1, 0xc1,0x7f,0x39,0x95,0x3c,0x65,0xe0,0x0, 0x17,0x80,0xe0,0xb, 0x3c,0x25, +0x21,0x15,0xe2,0x0, 0x7f,0x4, 0x37,0xa1,0x3f,0x9e,0x9d,0xf, 0x17,0x0, 0x8f,0xd4, +0x3f,0xbe,0xc7,0x1, 0x3f,0x9b,0x37,0xa1,0x3f,0x99,0x96,0x8f,0x3e,0x6e,0xe3,0xff, +0xc6,0x7f,0x3e,0xaa,0x3e,0x72,0xb6,0x8f,0x4, 0xf3,0x3c,0x73,0x1, 0x1d,0xe0,0x80, +0x8f,0x98,0x0, 0xe5,0x96,0xf6,0xe0,0xc, 0x37,0xa1,0xe3,0xfe,0xce,0xea,0xb6,0x8e, +0x3e,0x1b,0x4, 0x44,0xe2,0x1, 0xce,0x96,0xe0,0xd, 0x37,0xa1,0x3e,0x9b,0xe7,0xff, +0x5, 0x3f,0xb4,0xd, 0xe7,0xff,0x0, 0xbc,0xe0,0x1, 0xb7,0x85,0xe7,0xff,0x0, 0x96, +0xb7,0xf5,0xe7,0xff,0x0, 0x89,0xe0,0x0, 0xc0,0x50,0xb, 0xe1,0x14,0x80,0x3c,0x69, +0x39,0x69,0x39,0xe9,0xe7,0xfe,0x0, 0x84,0x3c,0xef,0x3c,0x6f,0x39,0xef,0xe7,0xfd, +0x0, 0xff,0x8, 0xb1,0xe0,0x1, 0x1f,0xf2,0xe0,0x1, 0x1c,0x7b,0xa4,0x8f,0xef,0xfe, +0xd9,0x8d,0xde,0x91,0xdb,0xf0,0xdc,0x35,0xe0,0x1, 0xd5,0x7d,0x2c,0x5, 0xe0,0x3, +0x1f,0xc0,0xac,0xf, 0x8, 0xe1,0xe0,0x3, 0x1f,0xc0,0x17,0x1, 0xaf,0xf, 0x8, 0xe1, +0xea,0x12,0x7f,0xb4,0xe0,0x1, 0x17,0x2a,0xe0,0x2e,0x3c,0xe, 0xa6,0x8f,0x27,0x2, +0x26,0x89,0xe2,0x0, 0xce,0x81,0xe0,0x1, 0x1f,0x58,0x1, 0xe, 0x17,0xea,0xaf,0x8e, +0x38,0x82,0xe0,0x1, 0x1f,0x58,0x8e,0x8e,0xc6,0xff,0xae,0x8e,0x16,0x80,0xbe,0x8f, +0x17,0xea,0xaf,0x8e,0x38,0x82,0xe2,0x0, 0xcc,0x9, 0x1, 0xf9,0x16,0x82,0xbe,0x8f, +0x0, 0xee,0xe0,0x2, 0x1f,0xb6,0xea,0x12,0x7f,0x32,0x8c,0xf, 0xe0,0xd, 0x34,0x22, +0x9f,0x8e,0xc6,0x81,0x3f,0xfd,0x5, 0x4, 0xe0,0x1, 0x14,0x7f,0x38,0x82,0xc7,0x81, +0xe3,0xff,0xc7,0xff,0xe2,0x0, 0xcf,0x81,0xb7,0x8e,0x1, 0xb, 0xe2,0x0, 0xcf,0x82, +0x1, 0x76,0xe0,0x3, 0x1f,0x39,0xa7,0xe, 0x3f,0x9e,0xe0,0x40,0x8c,0x3f,0x38,0x82, +0xe0,0x2, 0x1f,0xc0,0xe0,0xa, 0x8c,0x3f,0x38,0x82,0xe0,0x2, 0x1e,0x93,0x17,0x6, +0xac,0xd, 0x9f,0x8d,0x37,0xcc,0xe2,0x0, 0xc7,0x87,0x3f,0x1f,0xe2,0x0, 0xc7,0x5, +0x27,0xc, 0xe2,0x0, 0xcf,0x81,0xe0,0x2, 0x1f,0xc0,0x17,0x1, 0xe0,0x4, 0xaf,0x7f, +0x5, 0x8a,0x17,0x80,0xaf,0x8d,0x38,0x82,0xe0,0x2, 0x1f,0xc0,0x17,0x3, 0xe0,0x4, +0xaf,0x7f,0x38,0x82,0x38,0x82,0x8, 0xb3,0x39,0xe9,0x2c,0x1d,0xe0,0x0, 0x1f,0x30, +0x8f,0xe, 0xe2,0x0, 0xcf,0x1, 0x1, 0x3a,0xe0,0x2, 0x1e,0x93,0x17,0x6, 0xa9,0x8d, +0x9f,0x8d,0x37,0xcc,0xe2,0x0, 0xc7,0x87,0x3f,0x1f,0xe2,0x0, 0xc7,0x5, 0x2f,0x23, +0xe0,0x2, 0x1f,0xc0,0x17,0x3, 0xe0,0x4, 0xaf,0x7f,0x17,0x1, 0xe0,0x3, 0x1f,0x9a, +0xaf,0xf, 0x9, 0xe1,0x17,0x95,0x3f,0x98,0xe2,0x1, 0xc7,0xff,0xe2,0x0, 0xcf,0x81, +0x39,0x68,0x5, 0xa1,0xe4,0x1, 0xcc,0x0, 0xe2,0x0, 0xcc,0x6f,0x5, 0xa3,0xe2,0x1, +0xc9,0x7c,0x1, 0x23,0xe2,0x1, 0xc9,0x7d,0x1, 0x19,0xe0,0x3, 0x1f,0x9a,0x17,0x1, +0xaf,0xf, 0x9, 0xe1,0xe2,0x0, 0xcf,0x81,0xe0,0x2, 0x1f,0xc0,0x17,0x1, 0xe0,0x4, +0xaf,0x7f,0x5, 0xf4,0x17,0x80,0xaf,0x8d,0x0, 0xf1,0xe0,0x2, 0x1f,0x66,0x8f,0xe, +0x2f,0x44,0x9, 0xe1,0x3c,0x69,0xdf,0x55,0x0, 0xe6,0xe0,0x0, 0x1f,0xad,0xa9,0x8f, +0x9, 0xe1,0xe0,0x0, 0xd8,0x73,0x0, 0xdc,0x3c,0x63,0x9, 0xa1,0xe7,0x7e,0x0, 0xe0, +0xe0,0x0, 0x24,0x52,0xe2,0x0, 0xcc,0x3, 0x2, 0x91,0xe0,0x0, 0x1f,0x9b,0x8f,0x8f, +0xe0,0x0, 0x2f,0xcf,0xe0,0x0, 0x1f,0x18,0xe0,0x2, 0x1e,0xb1,0x3f,0xee,0xbf,0xd, +0x3c,0x1f,0xe0,0x40,0x8f,0x98,0x3c,0x6f,0x38,0x82,0xe2,0x0, 0xcc,0x5f,0xe0,0x0, +0x5, 0xc8,0x17,0xad,0x3f,0x98,0xe2,0x1, 0xc7,0xff,0xe2,0x0, 0xcf,0x81,0xe0,0x0, +0x5, 0xc5,0x17,0x95,0x3f,0x98,0xe2,0x1, 0xc7,0xff,0xe2,0x0, 0xcf,0x81,0xe0,0x0, +0x5, 0xd5,0xe0,0x0, 0x17,0xe7,0x3f,0x98,0xe2,0x1, 0xc7,0xff,0xe2,0x0, 0xcf,0x81, +0xe0,0x0, 0x5, 0xe6,0xe7,0xff,0x17,0x80,0x3f,0x98,0x3f,0x6f,0xe2,0x1, 0xc7,0x7f, +0xe2,0x0, 0xcf,0x6f,0x5, 0xb4,0xe2,0x1, 0xcc,0x7c,0xe0,0x1, 0x1, 0xb, 0xe2,0x1, +0xcc,0x7d,0xe0,0x1, 0x1, 0xd, 0xe2,0x1, 0xcc,0x7e,0xe0,0x1, 0x17,0xff,0x1, 0x8e, +0xe0,0x2, 0x1f,0xc8,0x17,0x5, 0x8f,0x8f,0x3f,0x3f,0xe0,0x3, 0x1f,0xb0,0x3f,0x9e, +0x8f,0x8f,0x0, 0x84,0xe0,0x2, 0x1f,0x93,0x8f,0x8f,0x3c,0x6f,0x38,0x82,0xe0,0x1, +0x1f,0x5a,0xe0,0x2, 0x1e,0xb1,0x3f,0xee,0xbf,0xd, 0xe7,0xff,0x0, 0xb3,0xe0,0x2, +0x1f,0xb1,0xa7,0x8f,0xe7,0xff,0x0, 0xae,0xe2,0x1, 0xcc,0x53,0x1, 0x11,0xe0,0x1, +0x1f,0x58,0x8f,0x8e,0xc7,0xff,0xaf,0x8e,0xe7,0xfd,0x0, 0xfd,0xe2,0x1, 0xcc,0x0, +0xe0,0x0, 0x1, 0x63,0xe0,0x2, 0x1f,0x40,0x3f,0x9e,0x8f,0x8f,0x0, 0xdf,0xea,0x12, +0x7f,0xb2,0x17,0x0, 0xb7,0xf, 0x0, 0xf1,0xe2,0x1, 0xcc,0x6b,0xe0,0x0, 0x1, 0x44, +0xea,0x12,0x7f,0x30,0x8e,0xe, 0x16,0x81,0x3e,0x9c,0xea,0x4f,0x7f,0x94,0xe2,0x1, +0xc6,0xff,0xe9,0xff,0xc7,0xff,0xe2,0x0, 0xce,0x83,0x3f,0x9c,0x8f,0x8f,0x1, 0x25, +0xae,0x8e,0x16,0xeb,0xe0,0x1, 0x1f,0x58,0xae,0x8e,0x0, 0xc0,0xe0,0x2, 0x1f,0x40, +0x16,0xe0,0xe0,0x2, 0x8f,0x8e,0x3e,0x9f,0xe2,0x0, 0xce,0x9f,0x2, 0x9d,0xe0,0x1, +0x1e,0xd3,0x3f,0x9d,0xe0,0x44,0x8f,0x8f,0xe0,0x2, 0x8e,0x8e,0xe2,0x1, 0xcc,0x1a, +0xc6,0x81,0xe0,0x2, 0xae,0x8e,0xe7,0xff,0x1, 0xaa,0xe0,0x1, 0x1f,0x58,0xe7,0xff, +0x16,0x99,0xae,0x8e,0xe7,0xff,0x0, 0xa3,0xea,0x12,0x7e,0xb4,0x16,0x0, 0xae,0xe, +0x17,0x0, 0xbf,0xd, 0x0, 0xd7,0xe0,0x2, 0x8e,0x8e,0xe0,0x1, 0x1f,0xc2,0x3f,0x9d, +0x8f,0x8f,0x0, 0xe3,0xea,0x12,0x7f,0xb0,0x17,0x1, 0xaf,0xf, 0x3f,0xe8,0x0, 0xca, +0xe0,0x2, 0x1f,0xc0,0xe0,0x4, 0x8f,0xff,0xe7,0xff,0x0, 0x89,0xe0,0x0, 0x1f,0xad, +0x8f,0x8f,0xe7,0xff,0x0, 0x84,0xe7,0xda,0x0, 0xc6,0xe0,0x2, 0x1f,0x93,0x9f,0x8f, +0x37,0xcc,0xe2,0x0, 0xc7,0x87,0x27,0x86,0xe2,0x0, 0xcf,0x84,0x1, 0x5, 0x14,0x0, +0x38,0x82,0xe7,0xfe,0x0, 0x9f,0xe7,0x6f,0x0, 0xe8,0xe0,0x2, 0x1f,0x93,0x9f,0x8f, +0x37,0xcc,0xe2,0x0, 0xc7,0x87,0x27,0x85,0xe2,0x0, 0xcf,0x84,0x1, 0x4, 0x38,0x82, +0xe7,0xfd,0x0, 0xbb,0xe7,0x6a,0x0, 0xde,0x8, 0xb4,0xe0,0x0, 0x1f,0xbd,0xa1,0xf, +0xa7,0x82,0xe2,0x0, 0xc7,0x81,0x27,0x97,0xa7,0x2, 0x17,0xfe,0x3f,0x5f,0xea,0x12, +0x7f,0xba,0xbf,0x2, 0x8f,0xf, 0x27,0x22,0xe0,0x0, 0x1a,0x30,0xe0,0x1, 0x19,0xd8, +0x17,0x81,0x8c,0xf2,0xaf,0x84,0x8c,0x3, 0xdf,0xd9,0x17,0x0, 0xaf,0x4, 0x8f,0x83, +0xc7,0x81,0xaf,0x83,0xa7,0x82,0x37,0xc1,0xe2,0x0, 0xc7,0x81,0x2f,0x82,0xa, 0x61, +0xa7,0x2, 0x16,0xfd,0xe0,0x1, 0x1f,0xd8,0x3f,0x5d,0xbf,0x2, 0x8f,0xf, 0xc7,0x1, +0xaf,0xf, 0x8c,0xf, 0xdf,0xb3,0xac,0x72,0xa, 0x61,0x17,0x1, 0xaf,0xf, 0x87,0x72, +0xe0,0x1, 0x1f,0xd8,0xaf,0xf, 0x8c,0xf, 0xdf,0xa9,0xac,0x72,0xa, 0x61,0xe0,0x0, +0x1f,0xbd,0x16,0x7e,0xa6,0x8f,0xea,0x12,0x7f,0xba,0xa7,0x3d,0x3f,0x5c,0xbf,0x3d, +0x17,0x0, 0xaf,0xf, 0x38,0x82,0x8, 0xb4,0xe0,0x1, 0x1a,0x5a,0xe0,0x2, 0x19,0x93, +0x11,0x0, 0x15,0x3e,0xe0,0x1, 0x14,0xff,0x3c,0x64,0xa9,0x3, 0xe0,0x3, 0xdd,0x9c, +0xe0,0x0, 0x1c,0x18,0x15,0x3e,0xe0,0x1, 0x14,0xff,0xe0,0x3, 0xdd,0x95,0xe0,0x2, +0x1f,0xb1,0xba,0xf, 0xef,0xfc,0xdc,0xd7,0xea,0x12,0x7f,0xba,0xe0,0x1, 0x1f,0x58, +0xa9,0xf, 0xe0,0x0, 0x1f,0xbd,0xa9,0xe, 0xa7,0x8f,0x81,0x83,0xa9,0xff,0xa, 0x61, +0x8, 0xb2,0xe0,0x0, 0x14,0x50,0xe0,0x3, 0xd6,0x85,0xe0,0x0, 0x14,0xda,0x39,0x68, +0xe0,0x0, 0x14,0x50,0xe0,0x3, 0xd6,0x9c,0xe1,0xd, 0x14,0x6, 0xe0,0x3, 0xd6,0x7a, +0xe0,0x0, 0x14,0xff,0x3c,0xd8,0xe0,0x1, 0xcc,0x80,0xe1,0xd, 0x14,0x6, 0xe0,0x3, +0xd6,0x8f,0xe2,0x0, 0xc9,0x5a,0x1, 0x6, 0x14,0x80,0xe0,0x0, 0x14,0x50,0xe0,0x3, +0xd6,0x87,0xe0,0x0, 0x14,0xda,0x14,0x4, 0xe0,0x3, 0xd6,0x82,0xe0,0x0, 0x14,0xda, +0x14,0x5, 0x9, 0x21,0xe0,0x6c,0x0, 0xfc,0x8, 0xb4,0xe0,0x2, 0x19,0xb8,0x15,0x4, +0x3c,0xe3,0x14,0x0, 0xef,0xfd,0xd1,0xf6,0x9d,0x13,0x17,0xf8,0x3f,0x9a,0xe2,0x1e, +0xcf,0xf7,0x12,0x0, 0x2, 0x96,0x11,0x7e,0x39,0x1a,0xe3,0xff,0xc1,0x7f,0x3c,0xe3, +0x3d,0x62,0x14,0x2, 0x99,0x83,0xef,0xfd,0xd1,0xe5,0xe0,0x2, 0x1c,0x37,0x3d,0xe4, +0x3d,0x64,0xe0,0x9, 0x31,0x41,0x34,0x41,0xe0,0x3, 0xda,0xda,0xe0,0x24,0x39,0x88, +0x3c,0x64,0xa, 0x61,0xe0,0x2, 0x1f,0xe6,0x8f,0x8f,0x27,0x8f,0x8, 0xb2,0xe0,0x0, +0x19,0x37,0xdf,0xd3,0xac,0x2, 0x8f,0x82,0x2f,0x87,0xdf,0xcf,0xac,0x2, 0x8f,0x82, +0x2f,0x83,0xdf,0xcb,0xac,0x2, 0x9, 0x61,0x38,0x82,0x8, 0xb4,0xe0,0x2, 0x1f,0x91, +0x39,0xe8,0xa1,0xf, 0xe0,0x0, 0x14,0x50,0xa7,0x92,0xcf,0x90,0xbf,0x92,0xe0,0x3, +0xd6,0x19,0x3a,0x68,0xe0,0x0, 0x14,0xda,0xe0,0x0, 0x14,0x50,0xe0,0x3, 0xd6,0x30, +0x3c,0xe3,0xe2,0x1, 0xc4,0xff,0xe1,0x20,0x14,0x0, 0xe0,0x3, 0xd6,0x29,0xe0,0x9, +0x31,0xc8,0xe2,0x0, 0xc4,0x83,0xe1,0x20,0x14,0x1, 0xe0,0x3, 0xd6,0x21,0x14,0x8a, +0xe1,0x23,0x14,0x4, 0xe0,0x3, 0xd6,0x1c,0xe2,0x0, 0xca,0x5a,0x1, 0x6, 0x14,0x80, +0xe0,0x0, 0x14,0x50,0xe0,0x3, 0xd6,0x14,0xa7,0x92,0x17,0x6f,0x3f,0xde,0xbf,0x92, +0xa, 0x61,0x8, 0xb4,0xe0,0x2, 0x1f,0x91,0xe0,0x0, 0x14,0x50,0xa1,0x8f,0xa7,0x93, +0xcf,0x90,0xbf,0x93,0xe0,0x3, 0xd5,0xe6,0xe0,0x0, 0x14,0xda,0x3a,0x68,0xe0,0x0, +0x14,0x50,0xe0,0x3, 0xd5,0xfd,0xe1,0x20,0x14,0x1, 0xe0,0x3, 0xd5,0xdb,0x39,0x68, +0xe1,0x20,0x14,0x0, 0xe0,0x3, 0xd5,0xd6,0x31,0x28,0xe2,0x6, 0xc1,0x0, 0xe2,0x0, +0xca,0x5a,0x39,0x48,0xe3,0xff,0xc1,0x7f,0x1, 0x6, 0x14,0x80,0xe0,0x0, 0x14,0x50, +0xe0,0x3, 0xd5,0xe6,0xa7,0x93,0x17,0x6f,0x3f,0xde,0x3c,0x62,0xbf,0x93,0xa, 0x61, +0xe0,0x3, 0x1f,0xb8,0xa7,0x8f,0xa7,0xcf,0xe2,0x0, 0xc7,0x81,0x27,0x8a,0xe0,0x2, +0x1f,0xba,0x87,0x8f,0xc7,0xff,0xe2,0x1, 0xc7,0xff,0xe2,0x0, 0xcf,0x81,0x5, 0x82, +0x38,0x82,0xe0,0x2, 0x1f,0xc8,0x8f,0x8f,0xe2,0x0, 0xcf,0x81,0x1, 0xfa,0x8, 0xb2, +0xe0,0x3, 0x19,0x37,0x9f,0x82,0xe2,0x0, 0xcf,0x82,0x2, 0x82,0x9, 0x61,0xe0,0x0, +0x1f,0xaa,0x9c,0xf, 0xe0,0x3, 0xdc,0xd3,0xe0,0x3, 0xdc,0xd5,0xe0,0x0, 0x14,0xd3, +0xe0,0x3, 0xdc,0x25,0xeb,0xe6,0x7f,0x4, 0xe3,0xff,0xc4,0x7f,0xe0,0x1, 0x17,0xbc, +0x3f,0x98,0x9e,0x8e,0xe3,0xff,0xc7,0xff,0xea,0x12,0x7e,0x3c,0x3f,0xfd,0xb7,0x8c, +0x3, 0x98,0xc6,0xf9,0x3f,0xfd,0x4, 0xf, 0xe0,0x1, 0x17,0xb4,0x3f,0x98,0xe3,0xff, +0xc7,0xff,0xe2,0x1, 0xcf,0xbb,0x2, 0x86,0xe0,0x2, 0x17,0x87,0x3f,0x98,0xe3,0xff, +0xc7,0xff,0xb7,0x8c,0x3c,0x6f,0xb7,0x8e,0xdf,0x51,0x17,0x80,0xb7,0x82,0x9, 0x61, +0xc6,0x87,0x3f,0xfd,0x2, 0x78,0xe0,0x1, 0x17,0xc4,0x3f,0x98,0xe3,0xff,0xc7,0xff, +0xe2,0x2, 0xcf,0x8e,0x5, 0xef,0xe0,0x0, 0x17,0xf1,0x3f,0x98,0xe3,0xff,0xc7,0xff, +0xb7,0x8c,0x0, 0xe9,0xe0,0x3, 0x1f,0xb8,0xa7,0x8f,0xa7,0xcf,0xe2,0x0, 0xc7,0x81, +0x27,0x8a,0xe0,0x2, 0x1f,0xba,0x87,0x8f,0xc7,0xff,0xe2,0x1, 0xc7,0xff,0xe2,0x0, +0xcf,0x81,0x5, 0x82,0x38,0x82,0xe0,0x2, 0x1f,0xc8,0x8f,0x8f,0xe2,0x0, 0xcf,0x81, +0x1, 0xfa,0x8, 0xb5,0x39,0x68,0xe0,0x1, 0x14,0x4e,0xdf,0x20,0xe0,0x3, 0x1a,0x37, +0x17,0x80,0xb7,0x84,0x11,0x83,0x12,0x90,0x21,0xc, 0x9f,0x84,0x3c,0x65,0xe2,0x0, +0xcf,0x82,0x2, 0x87,0xc1,0xff,0xe2,0x1, 0xc1,0xff,0xef,0xfd,0xd6,0x5f,0x29,0xf6, +0xa, 0xe1,0xe0,0x3, 0x1f,0xb8,0xa7,0x8f,0xa7,0xcf,0xe2,0x0, 0xc7,0x81,0x27,0x8b, +0xe0,0x2, 0x1f,0xba,0x8f,0x8f,0xe2,0x0, 0xcf,0x82,0x1, 0x6, 0x27,0x8c,0xe2,0x0, +0xcf,0x81,0x1, 0xe, 0x38,0x82,0xe0,0x3, 0x1f,0xc3,0x8f,0x8f,0xe2,0x0, 0xcf,0x81, +0x1, 0x7, 0x2f,0xf9,0xe0,0x1, 0x14,0xc8,0x14,0x0, 0xe0,0x69,0x0, 0xb6,0xe0,0x1, +0x14,0xc8,0x14,0x1, 0xe0,0x69,0x0, 0xb1,0x8, 0xb7,0xf8,0x0, 0xc, 0x3e,0xe0,0x1, +0x1f,0xdc,0xe0,0x2, 0x1f,0x23,0x16,0x0, 0xa7,0x8f,0xae,0xe, 0xe0,0x1, 0xa7,0xff, +0x37,0xc2,0xe2,0x0, 0xc7,0x81,0x27,0x95,0xe0,0x2, 0x1f,0x91,0xe0,0x3, 0x1e,0xb1, +0xa7,0x8f,0xa6,0xd, 0xa6,0x9f,0xce,0x90,0xbe,0x9f,0xe0,0x0, 0x16,0xd4,0xb6,0xdc, +0x8e,0xfc,0x16,0x6f,0xe2,0x0, 0xc6,0x83,0xae,0x8e,0xa6,0x9f,0x3e,0xdc,0xbe,0x9f, +0xe0,0x2, 0x1b,0xe6,0x8f,0x87,0xe2,0x0, 0xcf,0x81,0xe0,0x1, 0x1, 0x5d,0x8f,0xe, +0xe0,0x1, 0x27,0x1b,0xe0,0x0, 0x1f,0x37,0x8a,0xe, 0xe0,0x0, 0x22,0x72,0xe0,0x2, +0x1f,0x91,0x12,0x3, 0xa2,0x8f,0xe0,0x3, 0x1f,0xb1,0xe0,0x2, 0x19,0xb8,0xa1,0xf, +0xf0,0x0, 0x17,0x54,0xf0,0x40,0x3e,0xe4,0xf0,0x0, 0x14,0x50,0xf0,0x0, 0x16,0x5a, +0x13,0x5, 0xf7,0x24,0x15,0x82,0xf7,0x24,0x15,0x3, 0xf7,0x24,0x14,0x84,0xa7,0x95, +0xcf,0x90,0xbf,0x95,0x17,0xf8,0x9c,0x3, 0x3f,0x98,0xe2,0x1e,0xcf,0xf8,0xe0,0x1, +0x2, 0x96,0xf0,0x0, 0xb7,0x52,0xc4,0x7e,0xf0,0x0, 0xae,0xb2,0xe3,0xff,0xc4,0x7f, +0xf0,0x0, 0xb4,0x52,0xe2,0x0, 0xcc,0x8, 0xf0,0x0, 0xae,0x32,0xe0,0x0, 0x5, 0xeb, +0x16,0x80,0xf7,0xff,0x13,0xfd,0x3f,0x6d,0x17,0x88,0x3e,0x6d,0xf0,0x17,0x3b,0x98, +0x26,0x21,0xc6,0x1, 0xe3,0xff,0xc6,0x7f,0xf0,0x40,0x3b,0x6c,0xe0,0xb, 0x39,0x9f, +0x8c,0x8b,0x15,0x83,0x15,0x1, 0x3d,0x9d,0xb7,0x52,0x3d,0x1e,0xe8,0x40,0x3d,0xf6, +0xc7,0x81,0x3f,0x6a,0xac,0xb2,0xe3,0xff,0xc7,0x7f,0xe3,0xff,0xc7,0xff,0xe0,0x0, +0x3, 0x47,0xf0,0x2e,0x3b,0x9f,0xe0,0x0, 0x27,0x46,0xe1,0x2e,0x3c,0x1f,0xe0,0x0, +0x27,0x42,0xe0,0xc, 0x39,0x9f,0x8d,0xc, 0x8d,0xac,0x8f,0x1c,0x8e,0xbc,0x35,0x28, +0xe0,0xc, 0x35,0xa8,0x3e,0x9c,0x3f,0x1a,0xc7,0x84,0xe3,0xff,0xc7,0x7f,0xe3,0xff, +0xc6,0xff,0xe3,0xff,0xc7,0xff,0xf0,0x40,0x3b,0x66,0x16,0x5, 0x0, 0xd0,0xe0,0x2, +0x1f,0x11,0xa2,0x8e,0xe0,0x3, 0x1f,0x31,0xa1,0xe, 0xe0,0x0, 0x2f,0xcc,0xa7,0x15, +0xe0,0x0, 0x16,0xd0,0xcf,0x10,0xbf,0x15,0xe0,0x0, 0x16,0x5a,0xb6,0xd2,0xe7,0x24, +0x17,0x10,0xae,0x32,0xb7,0x52,0xaf,0xb2,0xb6,0xd2,0x17,0x6f,0xaf,0xb2,0xa7,0x95, +0x3f,0xde,0xbf,0x95,0x22,0x9, 0xdf,0x1e,0xe0,0x2, 0x1f,0x7b,0x17,0x87,0xaf,0x8e, +0xe0,0x2, 0x1f,0x77,0xaf,0x8e,0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0x3c,0x7f,0xe7,0xff, +0x2, 0xa1,0xf0,0x0, 0xb5,0xd2,0xe7,0x24,0x16,0x5, 0x8f,0xf2,0xf0,0x0, 0xb5,0x52, +0xe4,0xd, 0x37,0xa8,0x8f,0xf2,0xf0,0x0, 0xb4,0xd2,0xe4,0xf, 0x37,0xa0,0x8f,0x72, +0xb6,0x52,0x3f,0x9d,0x8e,0xf2,0x37,0x28,0x3f,0x9d,0xa6,0x93,0x3f,0x9e,0xf0,0x0, +0xb4,0x52,0x17,0x0, 0x3f,0xfd,0xaf,0x32,0x1, 0x22,0xa7,0x95,0x17,0x6f,0x3f,0xde, +0xc2,0x7f,0xbf,0x95,0xe2,0x1, 0xc2,0x7f,0xe7,0xfe,0x2a,0x5b,0x8f,0x87,0xe7,0xff, +0x27,0xb8,0xa7,0x95,0xe0,0x0, 0x17,0x50,0xcf,0x90,0xbf,0x95,0xe0,0x0, 0x16,0x5a, +0xb7,0x52,0xe7,0x24,0x16,0x90,0xae,0x32,0x17,0x80,0xb6,0xd2,0xaf,0xb2,0xb7,0x52, +0xe7,0xff,0x0, 0xb5,0x86,0xe, 0xae,0xe, 0xe7,0xfe,0x0, 0xa3,0xe0,0x0, 0x17,0xf0, +0xb7,0xd2,0x16,0x2a,0xae,0x32,0x3c,0x66,0xef,0xfd,0xd5,0x28,0xe0,0x0, 0x16,0xf6, +0xb6,0xd2,0xe0,0x0, 0x17,0x75,0x8f,0xf2,0xb7,0x52,0x37,0xa8,0x8e,0xf2,0x9f,0x13, +0x3f,0x9d,0xe3,0xff,0xc7,0xff,0x3f,0x7f,0x1, 0xc9,0xa7,0x95,0x17,0x6f,0x3f,0xde, +0xbf,0x95,0x12,0x1, 0x8f,0x87,0x0, 0xcc,0x8, 0xb3,0x39,0x68,0xe0,0x0, 0x14,0x50, +0xe0,0x3, 0xd3,0xe0,0x39,0xe8,0xe0,0x0, 0x14,0xda,0xe0,0x0, 0x14,0x50,0xe0,0x3, +0xd3,0xf7,0x3c,0x62,0xe0,0x3, 0xd3,0x61,0xe2,0x0, 0xc9,0xda,0x39,0x68,0x1, 0x6, +0x14,0x80,0xe0,0x0, 0x14,0x50,0xe0,0x3, 0xd3,0xeb,0x3c,0x62,0x9, 0xe1,0x8, 0xb1, +0xc0,0x7c,0x15,0x2, 0x14,0x86,0x3c,0x90,0x3c,0x6a,0xef,0xfc,0xdf,0x63,0x5c,0x3, +0x15,0x2, 0xe2,0x0, 0x7c,0x84,0xef,0xfc,0xdf,0x5d,0x4f,0x4, 0x4f,0x85,0xe0,0xd, +0x3f,0x1f,0xe2,0x1, 0xce,0xff,0x1, 0x8, 0xe0,0x2, 0x1f,0xc0,0x17,0x7f,0xe0,0xc, +0xaf,0x4f,0xc0,0x4, 0x8, 0xe1,0xe0,0x2, 0x1f,0xc0,0xe0,0xc, 0xaf,0x4f,0xc0,0x4, +0x8, 0xe1,0xe0,0x0, 0x1f,0xad,0x8f,0x8f,0xe2,0x0, 0xcf,0xda,0x1, 0x2, 0x38,0x82, +0xe0,0x3, 0x1f,0xb8,0xa7,0x8f,0xa7,0xcf,0x37,0xcf,0xe2,0x0, 0xc7,0x81,0x2f,0xf8, +0xe7,0xfa,0x0, 0x90,0xe0,0x1, 0x1f,0xc2,0xe0,0xa, 0x8f,0xdf,0x27,0xb1,0xe0,0x1, +0x1f,0xc4,0x8f,0x8f,0xe2,0x0, 0xcf,0x81,0xe0,0x2, 0x1f,0xfd,0xe0,0x0, 0x1, 0x6b, +0x8f,0xef,0x37,0xa6,0xc7,0xff,0xe3,0xff,0xc7,0xff,0xe2,0x0, 0xcc,0x3f,0x2, 0xa1, +0xe0,0x0, 0x1f,0xf2,0xe0,0x0, 0x1f,0x71,0x8f,0x8f,0x8f,0xe, 0xe0,0xd, 0x37,0xa8, +0x17,0xbf,0xe0,0x8, 0x3f,0xa8,0xe0,0xf, 0x3f,0x4d,0x3c,0x3f,0xe0,0x0, 0x1f,0xf0, +0x34,0x48,0x8f,0x8f,0x3c,0x7f,0x3f,0x6f,0xe0,0x6e,0x3d,0xa8,0x3f,0xae,0xe2,0x5, +0xcf,0xcf,0xe0,0x5, 0x14,0x4f,0xe0,0x68,0x3d,0xaf,0xe3,0xff,0xc4,0x7f,0x38,0x82, +0xe0,0x1, 0x1f,0x31,0xe0,0x1, 0x1e,0xb0,0x8f,0xe, 0xc7,0xc1,0x8e,0x8d,0x3c,0x7f, +0x37,0x28,0xe0,0xc, 0x3e,0xce,0x3, 0x3d,0xe0,0x0, 0x1f,0xef,0x8d,0x8f,0xe0,0x0, +0x1f,0xee,0x35,0xa8,0x8f,0xf, 0xe0,0x0, 0x1f,0xed,0x37,0x28,0x8e,0x8f,0xe0,0x0, +0x1f,0xec,0x3e,0xcb,0x8f,0x8f,0x3c,0x7d,0x3f,0xce,0xe0,0x0, 0x3, 0x45,0xe0,0x0, +0x1f,0x6b,0xc6,0xff,0x8d,0x8e,0xe0,0x0, 0x1f,0x6a,0x35,0xa8,0x8f,0xe, 0xe0,0x8, +0x3e,0xa8,0xe0,0xd, 0x3f,0x4b,0x3c,0x3d,0xc7,0xff,0x34,0x48,0x3f,0xa8,0xe0,0x0, +0x1f,0x70,0x8c,0xe, 0x3f,0xf8,0x4, 0xca,0xe0,0x0, 0x1f,0x69,0x8f,0xe, 0xe0,0xe, +0x3e,0x2e,0x3e,0xee,0xe3,0xff,0xc6,0xff,0x3f,0xfd,0xe0,0x6f,0x3a,0xae,0xe7,0xff, +0x0, 0xb8,0x8f,0xff,0x37,0xa6,0xc7,0xff,0xe3,0xff,0xc7,0xff,0xe7,0xff,0x0, 0x97, +0xe0,0x0, 0x1f,0x68,0xe0,0xf, 0x3c,0x2f,0x8e,0x8e,0xe0,0x0, 0x1f,0x67,0x36,0xa8, +0x8f,0xe, 0xe0,0x8, 0x3f,0x4d,0xe0,0x0, 0x1f,0x69,0x3f,0xb8,0x8f,0xe, 0x37,0xc8, +0x3f,0xfe,0x16,0xff,0x3e,0x9e,0xe0,0x6f,0x3b,0xad,0xe0,0xe, 0x3e,0x2e,0x3f,0x9e, +0xe7,0xff,0x0, 0x97,0xe0,0x0, 0x1f,0x66,0x3c,0x2d,0x8d,0x8e,0xe0,0x0, 0x1f,0x65, +0x35,0xa8,0x8f,0xe, 0xe0,0xd, 0x3f,0x4b,0x3c,0x3d,0xe0,0xd, 0x34,0x48,0x3f,0x9d, +0xe7,0xff,0x0, 0xbf,0xe0,0x1, 0x1f,0xc2,0x3e,0xe8,0xe0,0xa, 0x8f,0xdf,0x27,0xaa, +0xe0,0x1, 0x1f,0xc4,0x8f,0x8f,0xe2,0x0, 0xcf,0x81,0xe0,0x2, 0x1f,0xfd,0xe0,0x0, +0x1, 0x58,0x8f,0x7f,0x37,0x26,0xc7,0x7f,0xe3,0xff,0xc7,0x7f,0xe2,0x0, 0xce,0xbf, +0x2, 0x9a,0xe0,0x0, 0x1f,0xe4,0xe0,0x0, 0x1f,0x63,0x8f,0x8f,0x8c,0xe, 0x37,0xa8, +0x17,0x3f,0x3f,0x2d,0xe0,0xd, 0x3c,0x4f,0xe0,0x0, 0x1f,0xe2,0x3f,0x3d,0x8c,0xf, +0x37,0x8, 0x3f,0x78,0x3f,0xe8,0xe0,0x6f,0x3d,0x2e,0x3c,0x2f,0xe3,0xff,0xc4,0x7f, +0x38,0x82,0x38,0x82,0xe0,0x1, 0x1e,0x2e,0xe0,0x1, 0x1f,0xaf,0x8c,0xc, 0x16,0x41, +0x8f,0x8f,0x3e,0x1e,0x3e,0xfc,0x37,0xa8,0xe0,0xb, 0x3c,0x4f,0x3, 0x30,0xe0,0x0, +0x1f,0xe1,0x8e,0xf, 0xe0,0x0, 0x1f,0xe0,0x36,0x28,0x8c,0xf, 0xe0,0x0, 0x1f,0xdf, +0x34,0x28,0x8f,0xf, 0xe0,0x0, 0x1f,0xde,0x3f,0x4c,0x8f,0x8f,0x3e,0xfe,0x3f,0xc8, +0xe0,0x0, 0x3, 0x4a,0xe0,0x0, 0x1e,0x5d,0xe0,0x0, 0x1d,0x5c,0x8e,0xc, 0x8c,0xa, +0x36,0x28,0x3c,0x4c,0x3f,0x2d,0x3f,0x38,0x14,0x7f,0x3c,0x1f,0x37,0x8, 0x3c,0x2e, +0xe0,0x0, 0x1f,0xe2,0x8f,0x8f,0x3c,0x7f,0x3, 0x2b,0x3c,0x6f,0x38,0x82,0x8f,0x6f, +0x37,0x26,0xc7,0x7f,0xe3,0xff,0xc7,0x7f,0xe7,0xff,0x0, 0xaa,0x17,0xe2,0x3f,0x9e, +0x3e,0xff,0x14,0x0, 0xe7,0xff,0x3, 0x3f,0xe0,0x0, 0x1f,0xdb,0xe0,0x0, 0x1e,0x5a, +0x8f,0x8f,0x8c,0xc, 0xc7,0x40,0x37,0xa8,0xe0,0xe, 0x3e,0xae,0x3c,0x4f,0xe0,0x0, +0x1f,0xd9,0x3f,0x38,0x8f,0x8f,0x37,0x8, 0x3f,0x7f,0x16,0xff,0x3e,0x9f,0xe0,0x6e, +0x3b,0x2d,0xe0,0x8, 0x3d,0xaf,0x3c,0x1e,0xe3,0xff,0xc4,0x7f,0x38,0x82,0xe0,0x0, +0x1f,0xd9,0x8f,0x8f,0xe0,0xf, 0x3d,0xaf,0x3f,0xf8,0xe0,0x68,0x3d,0x2f,0xe3,0xff, +0xc4,0x7f,0x38,0x82,0xe0,0x0, 0x1e,0x58,0xe0,0x0, 0x1d,0x57,0x8e,0xc, 0x8c,0xa, +0x36,0x28,0x3c,0x4c,0xe0,0xe, 0x3e,0xae,0x3f,0x38,0xe0,0x8, 0x37,0x8, 0x3c,0x1f, +0xe7,0xff,0x0, 0xb8,0x8, 0xb5,0xe0,0x2, 0x1a,0xdf,0xe0,0x2, 0x1a,0x5e,0x8f,0x85, +0xe0,0x0, 0x2f,0xc5,0xe0,0x2, 0x1f,0x5d,0xe0,0x2, 0x1e,0xd5,0x8f,0xe, 0xaf,0x8d, +0xe0,0x0, 0x2f,0x4b,0xe0,0x1, 0x1f,0x8e,0x15,0xa, 0x89,0x8f,0xe0,0x2, 0x1c,0xde, +0x3d,0x33,0xe0,0x2, 0x1c,0x58,0xe0,0x3, 0xd8,0xed,0xe0,0x1, 0x1f,0xc2,0xe0,0xa, +0x8f,0xdf,0x27,0xab,0x21,0x96,0xc1,0xff,0xe2,0x1, 0xc1,0xff,0xc1,0x81,0xe4,0x0, +0xc1,0x8a,0xe0,0x2, 0x19,0x5e,0x39,0x94,0x9c,0x2, 0xc1,0xa, 0xde,0x84,0xe0,0x5, +0xb4,0x52,0xe0,0x40,0x9c,0x42,0xdf,0x27,0x39,0xf2,0xe0,0x5, 0xb4,0x62,0x1, 0xf5, +0xe0,0x19,0x9f,0x84,0xe2,0x2, 0xcf,0x81,0x1, 0x28,0xe2,0x2, 0xcf,0x80,0xe0,0x0, +0x1, 0x4c,0x8f,0x85,0x2f,0x8a,0xe0,0x0, 0x1f,0x34,0xb7,0x8e,0xe0,0x2, 0x1f,0x1b, +0xb7,0x8e,0xe0,0x1, 0x1f,0x59,0xaf,0x8e,0xa, 0xe1,0xe0,0x2, 0x1f,0x5d,0xe0,0x2, +0x1e,0xd5,0x17,0x81,0x8f,0xe, 0xaf,0x8d,0xe7,0xff,0x2f,0x3e,0xe0,0x2, 0x1f,0x5b, +0xaf,0x8e,0xe7,0xff,0x0, 0xb9,0xe0,0x2, 0x1f,0x54,0x16,0x81,0xae,0x8e,0xe0,0x2, +0x1f,0x53,0xaf,0x8e,0xe7,0xff,0x0, 0xb0,0xe0,0x0, 0x1f,0xb4,0xe0,0x2, 0x1f,0x1b, +0xe0,0x6, 0x9e,0x24,0x9f,0xe, 0xe0,0x6, 0x9e,0xb4,0x9f,0x8f,0xe0,0xe, 0x3e,0xae, +0xe0,0xf, 0x3e,0x2f,0xe4,0xa, 0x37,0x8f,0xe4,0xb, 0x37,0xf, 0xe2,0xf, 0x3d,0x4f, +0xe2,0xe, 0x3d,0xce,0x3f,0x2b,0x3f,0xaa,0x3f,0x9e,0xe0,0x0, 0x1f,0x26,0xe2,0x1, +0xcf,0x96,0xb6,0xe, 0xe0,0x0, 0x1f,0x20,0xb6,0x8e,0x5, 0x47,0xe0,0x1, 0x1f,0xd9, +0x17,0x1, 0xaf,0xf, 0xa, 0xe1,0xe0,0x6, 0x9f,0x24,0xe0,0x0, 0x1e,0xa6,0xe0,0x6, +0x9f,0xb4,0xb7,0xd, 0xe0,0x0, 0x1e,0xa0,0xb7,0x8d,0xe0,0x0, 0x1e,0xb4,0xb7,0xd, +0xe0,0x2, 0x1f,0x1b,0xb7,0x8e,0xa, 0xe1,0xe0,0x3, 0x1f,0x80,0x17,0x0, 0xb7,0x1f, +0xaf,0xf, 0xaf,0x1f,0x38,0x82,0x0, 0x0, 0xe0,0x2, 0x1f,0xc0,0xe0,0xa, 0x8f,0x8f, +0xe0,0x3, 0x2f,0xba,0x8, 0xb7,0xf8,0x0, 0xc, 0x3c,0xf0,0x3, 0x18,0x0, 0xe8,0x0, +0x9f,0x90,0x2f,0x93,0xea,0x12,0x7f,0x47,0xe0,0x0, 0x19,0xe, 0xaf,0x8e,0x8f,0x82, +0xe0,0x0, 0x19,0x8d,0x2f,0x93,0xea,0x12,0x7f,0xc6,0x8f,0xf, 0x27,0x3, 0xc7,0x7f, +0xaf,0xf, 0xf8,0x0, 0xe, 0x28,0xb, 0xe1,0xe0,0x0, 0x19,0xe, 0xc7,0xff,0xe8,0x0, +0xb7,0x90,0x8f,0x82,0xe0,0x0, 0x19,0x8d,0x27,0xef,0xe0,0x0, 0x1f,0x56,0xe0,0x0, +0x1e,0xd5,0x8f,0xe, 0xf0,0x0, 0x88,0x8d,0x37,0x28,0xf0,0x11,0x38,0xce,0xe0,0x1a, +0x97,0x73,0xf8,0x43,0x38,0x91,0xe0,0x2, 0x1e,0xfd,0xf0,0x40,0x38,0xfe,0x8c,0x4d, +0x8e,0x5d,0x5, 0xa, 0xe0,0x1, 0x1e,0xd7,0x37,0x1, 0xe0,0x3, 0x8e,0xbd,0xe2,0x0, +0xce,0x82,0xe0,0x71,0x39,0xae,0xf7,0xff,0x11,0x7f,0xf0,0x12,0x39,0x1f,0xe0,0x1, +0x1f,0xf2,0xf2,0x1, 0xc1,0x7f,0xa4,0x8f,0xe0,0x0, 0x1f,0xd4,0xf0,0x0, 0xc1,0x1, +0xf0,0x12,0x31,0x21,0x10,0xff,0x12,0x7f,0x8a,0x8f,0xf0,0x0, 0x1b,0xd, 0xf0,0x12, +0x39,0x13,0x38,0x98,0xe0,0x4, 0x3a,0x1c,0xf8,0x0, 0x8a,0x6, 0xf8,0x0, 0x89,0x96, +0xf0,0xf, 0x3a,0x3c,0xe8,0xf, 0x3f,0x93,0x37,0xa1,0x3f,0x99,0x95,0x8f,0xe8,0x40, +0x3d,0xf1,0xe0,0x2, 0x4, 0x1a,0xf1,0x2f,0x3a,0x28,0xe0,0x2, 0x2f,0x96,0xf1,0x2d, +0x39,0xac,0xe0,0x2, 0x2e,0x92,0xe8,0x43,0x3b,0x3, 0xf0,0x0, 0x12,0x81,0xe2,0x0, +0xcb,0x0, 0xe0,0xa, 0x35,0x82,0xe0,0xf, 0x35,0x81,0xf8,0x15,0x3a,0x94,0xf8,0x43, +0x3b,0x84,0x3d,0x1f,0xf2,0x1, 0xc2,0xff,0xf0,0x40,0x3c,0xe6,0xf8,0x40,0x3d,0x67, +0xe0,0x0, 0x4, 0x75,0xf2,0x0, 0xcb,0x80,0x4, 0x37,0xe8,0x40,0x3f,0x67,0x13,0x80, +0x0, 0x92,0x27,0xa7,0xe8,0x40,0x3e,0xe8,0xe8,0x40,0x3b,0xec,0xe3,0xff,0xc6,0xff, +0xe2,0x1, 0xc3,0xff,0xf0,0x40,0x3d,0x6e,0xc7,0x7f,0xe0,0x43,0x3f,0xe, 0xe3,0xff, +0xcf,0x7f,0x1, 0x1a,0xe0,0xf, 0x3f,0x3c,0xf0,0x0, 0x14,0x1, 0xe8,0xf, 0x3f,0x99, +0x37,0xa1,0x3f,0x99,0xe0,0x0, 0x97,0x8f,0xf0,0x0, 0x16,0x1, 0xe0,0x3b,0x3f,0xaa, +0xf0,0x18,0x3c,0x1d,0xf0,0x1c,0x3e,0x17,0xe0,0x2f,0x3d,0xaf,0xf7,0xff,0x2d,0xdb, +0xe8,0x40,0x3f,0x7a,0x2, 0x62,0x23,0x88,0xf1,0xff,0xc4,0xff,0xf8,0x43,0x3c,0x89, +0xf3,0xff,0xcc,0xff,0x1, 0xc8,0xf0,0x40,0x3a,0x71,0x3, 0x38,0xf8,0x40,0x3c,0xe5, +0xe8,0x40,0x3c,0x75,0x5, 0xb3,0xe8,0x40,0x3f,0x65,0x13,0x80,0x0, 0x91,0x27,0xa4, +0xe8,0x40,0x3e,0xe8,0xe8,0x40,0x3b,0xeb,0xe3,0xff,0xc6,0xff,0xe2,0x1, 0xc3,0xff, +0xf0,0x40,0x3c,0xee,0xc7,0x1, 0xe2,0x1, 0xc7,0x7f,0x3c,0x7e,0x5, 0x98,0xe0,0xf, +0x3f,0x3c,0xf0,0x0, 0x14,0x1, 0x3f,0x96,0x37,0xa1,0x3f,0x99,0x97,0x8f,0xf0,0x0, +0x15,0x81,0xe0,0x3a,0x3f,0xaa,0xf0,0x18,0x3c,0x1d,0xf0,0x1b,0x3d,0x97,0xe0,0x2f, +0x3d,0xaf,0xf7,0xff,0x2d,0x5e,0xe8,0x40,0x3f,0x79,0x4, 0xe5,0x23,0x87,0xc3,0x7f, +0xe0,0x43,0x3b,0x6, 0xe3,0xff,0xcb,0x7f,0x1, 0xcc,0xf0,0x40,0x39,0xf4,0xe0,0x1, +0x3, 0x1, 0x13,0x1, 0xe8,0x6, 0x3b,0x13,0xe2,0x1, 0xc3,0x7f,0xe0,0x40,0x3e,0x76, +0xf0,0x40,0x3c,0xe6,0xf8,0x40,0x3d,0x67,0xe0,0x0, 0x5, 0xf4,0xf2,0x0, 0xcb,0x80, +0x4, 0x37,0xe8,0x40,0x3f,0x67,0x13,0x80,0x0, 0x92,0x27,0xa7,0xe8,0x40,0x3e,0xe8, +0xe8,0x40,0x3b,0xec,0xe3,0xff,0xc6,0xff,0xe2,0x1, 0xc3,0xff,0xf0,0x40,0x3d,0x6e, +0xc7,0x7f,0xe0,0x43,0x3f,0xe, 0xe3,0xff,0xcf,0x7f,0x1, 0x1a,0xe0,0xf, 0x3f,0x3c, +0xf0,0x0, 0x14,0x1, 0xe8,0xf, 0x3f,0x99,0x37,0xa1,0x3f,0x99,0xe0,0x0, 0x97,0x8f, +0xf0,0x0, 0x16,0x1, 0xe0,0x3b,0x3f,0xaa,0xf0,0x18,0x3c,0x1d,0xf0,0x1c,0x3e,0x17, +0xe0,0x2f,0x3d,0xaf,0xf7,0xff,0x2d,0xdb,0xe8,0x40,0x3f,0x7a,0x2, 0x62,0x23,0x88, +0xf0,0x0, 0xc4,0x81,0xf2,0x1, 0xc4,0xff,0xe8,0x40,0x3e,0x79,0x2, 0xc8,0xf0,0x40, +0x3a,0x71,0x3, 0x37,0xf8,0x40,0x3c,0x65,0xe8,0x40,0x3c,0x75,0x5, 0xb2,0xe8,0x40, +0x3f,0x65,0x13,0x80,0x0, 0x91,0x27,0xa4,0xe8,0x40,0x3e,0xe7,0xe8,0x40,0x3b,0xea, +0xe3,0xff,0xc6,0xff,0xe2,0x1, 0xc3,0xff,0xf0,0x40,0x3c,0x6e,0xc7,0x1, 0xe2,0x1, +0xc7,0x7f,0x3c,0x7e,0x5, 0x98,0xe0,0xf, 0x3f,0x3c,0xf0,0x0, 0x13,0x81,0x3f,0x96, +0x37,0xa1,0x3f,0x99,0x97,0x8f,0xf0,0x0, 0x15,0x1, 0xe0,0x39,0x3f,0xaa,0xf0,0x17, +0x3b,0x9d,0xf0,0x1a,0x3d,0x17,0xe0,0x2f,0x3d,0xaf,0xf7,0xff,0x2c,0xde,0xe8,0x40, +0x3f,0x78,0x4, 0xe5,0x23,0x86,0xc3,0x1, 0xe2,0x1, 0xc3,0x7f,0x3e,0x76,0x2, 0xcd, +0x3a,0xfd,0xe0,0x0, 0x5, 0xd3,0xf0,0x0, 0xc3,0x2, 0xf8,0x40,0x39,0x76,0xe7,0xfd, +0x1, 0xd5,0xe8,0x0, 0x9f,0x90,0x27,0x88,0xc7,0xff,0xe8,0x0, 0xb7,0x90,0xea,0x12, +0x7f,0xc7,0x17,0x1, 0xaf,0xf, 0xe0,0xf, 0x3e,0x38,0xe0,0x1a,0x9f,0x53,0xe0,0x1a, +0x9e,0xe3,0xe0,0xc, 0x37,0x81,0xe0,0xb, 0x3f,0x1d,0x3d,0xfc,0x2, 0x1d,0x37,0x82, +0xe0,0x2d,0x3e,0x9f,0x2e,0x99,0xe0,0x2f,0x3f,0x1f,0x2f,0x96,0xea,0x12,0x7f,0xc7, +0x8f,0x8f,0xe2,0x0, 0xcf,0x81,0x1, 0x10,0xea,0x12,0x7e,0xc5,0x8f,0x8d,0xe2,0x0, +0xcf,0x81,0xe7,0xfc,0x1, 0xe8,0xea,0x12,0x7f,0xc6,0x8f,0xf, 0x2f,0xc, 0xaf,0xd, +0xe7,0xfc,0x0, 0xe1,0x38,0x82,0xea,0x12,0x7f,0x45,0xea,0x12,0x7f,0xc6,0x16,0x81, +0xae,0x8e,0x17,0x14,0xc7,0x7f,0x8e,0x82,0xaf,0xf, 0xe7,0xfc,0x26,0xd4,0x11,0x80, +0x3a,0x63,0x3c,0x63,0x3c,0xe4,0xd0,0x99,0xc1,0x81,0x8f,0x82,0xe2,0x1, 0xc1,0xff, +0x3f,0xf3,0x2, 0xf8,0xe7,0xfc,0x0, 0xc7,0xe0,0x0, 0x1f,0xd3,0x8f,0xf, 0xe0,0x0, +0x1f,0xd2,0x37,0x28,0x8f,0x8f,0xf8,0x0, 0xaa,0x0, 0x3f,0xce,0xf8,0x0, 0xa9,0x90, +0xe8,0x0, 0xb7,0x90,0xe7,0xff,0x0, 0xad,0xe0,0x0, 0x1e,0x4e,0x8f,0x8c,0x2f,0x97, +0xea,0x12,0x7f,0xc8,0x9e,0x8f,0xe0,0x1, 0x1f,0x57,0x2e,0x8a,0xe0,0x1, 0x1e,0x89, +0x8e,0xd, 0xe0,0x1, 0x1e,0x88,0x36,0x28,0x8e,0x8d,0x3e,0xcc,0xb6,0x8f,0xe0,0x2, +0x1e,0xdf,0x8e,0x8d,0x26,0xa0,0x97,0x8f,0xb7,0x9e,0x38,0x82,0xe0,0x2, 0x1f,0xc0, +0xe0,0x1, 0x1f,0x57,0x8e,0x8f,0x8c,0x1f,0x8c,0xaf,0x8d,0x3f,0x8d,0xdf,0xea,0x12, +0x7f,0xc8,0x36,0xa5,0x34,0x25,0x34,0xa5,0x35,0x25,0x35,0xa5,0xf0,0x0, 0x13,0x80, +0xf0,0x0, 0xab,0x8c,0xb6,0x9e,0xb4,0x2e,0xb4,0xce,0xb5,0x5e,0xe0,0x1, 0xb5,0x9e, +0xb6,0x8f,0x0, 0xd4,0xe0,0x0, 0x1f,0xfa,0x8e,0x8f,0xe0,0x0, 0x1f,0xf9,0x36,0xa8, +0x8f,0x8f,0x3f,0xcd,0xb7,0x9e,0x38,0x82,0x17,0xdd,0x3f,0x98,0xe2,0x1, 0xc7,0xff, +0xe2,0x0, 0xcf,0x8c,0x2, 0x9b,0x17,0x1, 0xe0,0xf, 0x37,0x3f,0xe2,0x30,0xc7,0xa9, +0x2f,0x9d,0xe2,0x0, 0xcc,0x25,0x1, 0x92,0xe0,0x0, 0x1f,0xb0,0x8f,0x8f,0x3f,0xfe, +0x1, 0x16,0xe0,0x2, 0x1f,0x40,0x17,0x81,0xe0,0x4, 0xac,0xde,0xe0,0x0, 0x1f,0x4e, +0xaf,0x8e,0xe0,0x2, 0x1f,0x60,0xaf,0x8e,0x38,0x82,0xe0,0x2, 0x1f,0xc0,0x17,0x1, +0x3c,0x1f,0xe0,0x0, 0x1f,0xce,0xac,0x88,0xaf,0xf, 0x38,0x82,0xe0,0x2, 0x1f,0xe6, +0x8f,0x8f,0x2f,0xe8,0x0, 0xfb,0xe0,0x0, 0x1f,0xd, 0xe0,0xf, 0x34,0x43,0x3f,0x1f, +0xe0,0x0, 0x1f,0xc7,0xe2,0x0, 0xc4,0x7, 0x3f,0x98,0x87,0x8f,0xe0,0xf, 0x84,0xe, +0x3c,0x5f,0xe2,0x1, 0xc4,0x7f,0x38,0x82,0x17,0x7, 0xe0,0x0, 0x1f,0xc7,0x3f,0x58, +0x3f,0x9e,0xe0,0x0, 0x1f,0xd, 0x34,0x43,0x3c,0x1e,0x8f,0x8f,0xe0,0xf, 0x87,0x8, +0x2c,0x86,0xe3,0xf, 0x3f,0x5f,0xe0,0xf, 0xaf,0x88,0x38,0x82,0x3f,0xce,0xe0,0xf, +0xaf,0x88,0x38,0x82,0xe0,0x0, 0x1f,0x8d,0xe0,0x2, 0x1f,0x7d,0x34,0x21,0x3c,0x1f, +0x8f,0x88,0x8e,0xde,0x8f,0x18,0x3f,0xbd,0x3f,0x9e,0xe0,0x1, 0x1f,0x72,0x37,0xa1, +0xa7,0xe, 0x3f,0x9e,0x94,0xf, 0x38,0x82,0xe0,0x2, 0x1f,0xfd,0xe0,0x1, 0x1f,0x57, +0x8e,0xef,0x9f,0x9e,0x3e,0xf8,0x2, 0x82,0x9f,0xce,0xe0,0x2, 0x1f,0x3c,0x8f,0xe, +0xe2,0x0, 0xcf,0x1, 0x1, 0x3, 0x3c,0x6f,0x38,0x82,0x2c,0x5, 0xe0,0x1, 0x17,0x87, +0x3c,0x6f,0x38,0x82,0xe0,0x1, 0x1e,0xc2,0xe0,0xe, 0x8f,0x1d,0xc7,0x7f,0xe0,0x28, +0x3f,0x8, 0x2c,0x75,0xe0,0x28,0x3c,0x88,0x2c,0x72,0xe0,0xe, 0x8f,0x2d,0xc7,0x7f, +0x3c,0xfe,0xe0,0x1, 0x17,0x7, 0xe0,0x6e,0x39,0xaf,0x3f,0xee,0x0, 0xe5,0x0, 0x0, +0xf0,0x0, 0x1a,0x8e,0xe8,0x0, 0x8e,0x5, 0x26,0x3d,0x16,0x0, 0xe0,0x0, 0x1d,0x8d, +0xf0,0x0, 0x1b,0x47,0xe0,0x40,0x3f,0xec,0xe0,0xd, 0x37,0xc3,0x15,0x7, 0x3d,0x5f, +0xe2,0x0, 0xc6,0x9f,0x3e,0x9b,0xe8,0xa, 0x3d,0x16,0x85,0xa, 0xe0,0xf, 0x86,0x8d, +0xe0,0xe, 0x37,0xa1,0x3e,0xda,0xe0,0x17,0x3d,0x9e,0x14,0x7, 0xe0,0xe, 0x36,0x43, +0xe0,0x9, 0x36,0x21,0x3c,0x5c,0xe2,0x0, 0xc7,0x1f,0xc7,0x81,0x15,0x1, 0xe2,0x1, +0xc6,0xff,0x3c,0x9b,0x3f,0x1b,0xe8,0x8, 0x3c,0x16,0xe2,0x1, 0xc7,0xff,0x3d,0x1c, +0x26,0x8d,0xe8,0x0, 0x9e,0x7, 0x86,0x88,0xb6,0x9, 0x3e,0x6a,0xe0,0xf, 0x85,0xe, +0xe2,0x1, 0xc6,0x7f,0x3e,0xca,0xe0,0xf, 0xae,0x8e,0xe8,0x0, 0x8f,0x5, 0x3f,0x7f, +0x2, 0xcc,0xe8,0x0, 0xae,0x5, 0x38,0x82,0x8, 0xb5,0xe0,0x0, 0x19,0x41,0xe0,0x3, +0x1a,0x45,0x17,0x81,0xe0,0x1, 0x19,0xd2,0xaf,0x82,0xaf,0x84,0x17,0x80,0xaf,0x83, +0xef,0xff,0xdf,0xb0,0xe0,0x0, 0x1f,0x8e,0xe0,0x0, 0x1c,0x8d,0x8d,0xf, 0xe0,0x1, +0x25,0x46,0xf7,0xff,0x13,0xff,0xe0,0x2, 0x1f,0xfd,0xf0,0x17,0x3b,0x9a,0xf2,0x1, +0xc3,0xff,0xf0,0x0, 0x89,0x4f,0xe0,0x1, 0x1f,0x72,0xf0,0x0, 0xc3,0x81,0xf0,0x0, +0x11,0x80,0xf0,0x17,0x33,0xa1,0x12,0xfe,0xa0,0x8e,0xe8,0x5, 0x3a,0x92,0xf0,0x0, +0x88,0x5f,0xf0,0x0, 0x88,0x82,0x8d,0x84,0x3f,0x69,0xf0,0x17,0x3b,0x99,0xe8,0x40, +0x3e,0xe3,0xe8,0x40,0x3e,0x63,0xf8,0x40,0x3b,0x63,0xf1,0xff,0xc1,0x7f,0xf0,0x0, +0x12,0x1, 0xf8,0x40,0x3a,0xe3,0x0, 0xb1,0x3f,0xf5,0x14,0x1, 0xe8,0x8, 0x3c,0x16, +0x3, 0x38,0xf0,0x40,0x3b,0x68,0xf2,0x1, 0xc3,0x7f,0xf0,0x40,0x39,0x7f,0xe8,0x40, +0x3c,0x64,0xe8,0x68,0x3d,0x23,0xf0,0x40,0x39,0x7f,0xf0,0x40,0x39,0xe8,0xe8,0x40, +0x3c,0x65,0xe8,0x68,0x3d,0x21,0xf0,0x40,0x38,0xe8,0x8c,0x1e,0xe8,0xf, 0x3f,0xb0, +0xc7,0x2, 0x3f,0x98,0x37,0xa1,0x3f,0x91,0x97,0x8f,0xe8,0x40,0x3c,0x64,0xe2,0x3, +0xcf,0xf3,0xe8,0x40,0x3f,0xe5,0xe0,0x68,0x3a,0x2d,0xe0,0x6f,0x3a,0x2b,0xf0,0x40, +0x3b,0xfe,0x3e,0xe8,0x3d,0xef,0x1, 0x15,0x8f,0x8e,0xe2,0x0, 0xcf,0x82,0x2, 0xcd, +0x14,0x1, 0x3c,0x1c,0x1, 0xa, 0x3e,0x68,0xe2,0x1, 0xc6,0x7f,0x27,0xdf,0x0, 0xce, +0xc6,0x1, 0xe2,0x1, 0xc6,0x7f,0x0, 0xca,0xe2,0x0, 0xca,0x82,0x5, 0x75,0x0, 0xc6, +0xe0,0x0, 0x2c,0x7d,0xf0,0x0, 0x29,0xf7,0x8f,0x4, 0xf1,0xff,0xc3,0x7f,0xe2,0x0, +0xcf,0x1, 0xe0,0x0, 0x1, 0x63,0x17,0x1, 0xf2,0x1, 0xc3,0x7f,0xe9,0x2f,0x3f,0x26, +0xe1,0x2c,0x3e,0x1e,0x3e,0x5f,0xe0,0x0, 0x26,0x46,0xe0,0x3, 0x1f,0x86,0x16,0x80, +0x87,0xf, 0xae,0x82,0xc7,0x1, 0xe2,0x1, 0xc7,0x7f,0xaf,0xf, 0xe0,0x0, 0x27,0x43, +0x17,0x0, 0xaf,0xf, 0x17,0x81,0xaf,0x83,0xe0,0x3, 0x17,0x74,0xe0,0x3, 0x1f,0xb5, +0x10,0x81,0xb7,0xf, 0x25,0x2a,0xe0,0x2, 0x1f,0xfd,0xe0,0x0, 0x1e,0xd, 0x89,0x4f, +0xe0,0x0, 0x1c,0x47,0xc1,0x7f,0x17,0x80,0xe0,0xe, 0x37,0xc3,0x16,0x87,0x8d,0x8c, +0x3e,0xdf,0xe2,0x0, 0xc7,0x1f,0xc7,0x81,0x3f,0x19,0x3e,0x98,0xe2,0x1, 0xc7,0xff, +0xc6,0x2, 0x25,0x83,0x3d,0xf2,0x4, 0x8, 0xe0,0xf, 0x85,0x8e,0x86,0x8d,0xe3,0xd, +0x3d,0xdd,0xe0,0xf, 0xae,0x8e,0x3f,0xfa,0x4, 0xe8,0x28,0x87,0xe0,0x3, 0x1f,0x35, +0x9f,0x8e,0x27,0x83,0xc7,0xff,0xb7,0x8e,0xa, 0xe1,0x8f,0x84,0xe2,0x0, 0xcf,0x81, +0x1, 0x1f,0xe0,0x3, 0x1f,0x86,0x8f,0xf, 0x2f,0x44,0x8f,0x2, 0xe2,0x0, 0xcf,0x1, +0x1, 0x40,0x88,0x83,0xe2,0x0, 0xc8,0x81,0x1, 0x1c,0xe0,0x3, 0x1f,0xb5,0x9f,0x8f, +0x27,0xec,0x2d,0x42,0x20,0xe4,0x0, 0xe9,0xf2,0x1, 0xc3,0x7f,0xe9,0x2f,0x3f,0x26, +0xe1,0x2c,0x3e,0x1e,0x3e,0x5f,0x17,0x80,0xaf,0x82,0xe7,0xff,0x0, 0x9e,0x3e,0x6a, +0x0, 0xfb,0xf0,0x0, 0xa8,0x82,0xe7,0xff,0x0, 0x89,0xaf,0x84,0xe7,0xff,0x0, 0x84, +0xe7,0xff,0x2d,0x2b,0xa, 0xe1,0x0, 0x0, 0x8, 0xb7,0xf8,0x0, 0xc, 0x3e,0xe1,0xfe, +0xc0,0x7c,0xe0,0x0, 0x1f,0xe, 0x11,0x90,0xf0,0x0, 0x8e,0xe, 0x39,0x90,0xe0,0x0, +0x1c,0x8d,0xf0,0xa, 0x36,0x21,0x3c,0x63,0xe0,0x3, 0xd4,0x4c,0xea,0x12,0x7f,0xce, +0x89,0xf, 0xea,0x12,0x7a,0xd0,0xe0,0x2, 0x21,0x7a,0xe0,0x1, 0x1f,0xf2,0xa7,0x8f, +0x7a,0x83,0xf0,0x0, 0x16,0x80,0x7f,0x81,0xe8,0x40,0x3b,0xed,0xe0,0x2, 0x1f,0xfd, +0xf0,0x0, 0x1c,0x8d,0x8f,0xdf,0xe0,0x0, 0x1a,0xc7,0x63,0x3, 0xe0,0x0, 0x7f,0x82, +0xf0,0x7, 0x14,0x7f,0xf0,0x1, 0x26,0xb, 0x14,0x90,0x3c,0x90,0xe8,0x40,0x3c,0x68, +0xf0,0x1, 0x13,0x7f,0xe0,0x0, 0x16,0x80,0xe0,0xf, 0x36,0xc3,0xf0,0x0, 0x12,0x87, +0xf0,0x15,0x3a,0xdd,0xe2,0x0, 0xc7,0x9f,0xe8,0xf, 0x3f,0x99,0xf0,0x15,0x3a,0x95, +0xe0,0xf, 0x87,0x8f,0xf8,0x0, 0x82,0x85,0xf0,0x0, 0x12,0x1, 0xe8,0xf, 0x3f,0xd5, +0xe2,0x1, 0xc7,0xff,0xf0,0x14,0x3a,0x1d,0x27,0xb7,0x8f,0x89,0xe2,0x1, 0xcf,0xff, +0xf0,0x40,0x39,0xef,0x1, 0x31,0xf0,0x0, 0x88,0x6, 0xf0,0x0, 0x89,0x19,0xf0,0x0, +0x88,0x96,0xf0,0xf, 0x38,0x2f,0xe3,0xff,0xc7,0xff,0xe0,0x43,0x38,0x9f,0xf8,0x15, +0x38,0xa2,0xf3,0xff,0xc2,0xff,0xe2,0x0, 0xc8,0x80,0xf8,0x13,0x39,0xa0,0xf3,0xff, +0xc1,0xff,0xf8,0x43,0x38,0x15,0xe8,0x6f,0x3d,0x23,0xf8,0x12,0x39,0x21,0xf2,0x0, +0xc8,0x0, 0xf3,0xff,0xc1,0x7f,0xe8,0x75,0x3d,0x22,0xe8,0xf, 0x3f,0x95,0xe3,0xff, +0xc7,0xff,0x3f,0xf8,0xf0,0x40,0x3a,0xe8,0xe0,0x75,0x3c,0xaf,0x3f,0xf8,0xe8,0x40, +0x3c,0x65,0xe0,0x76,0x3c,0xad,0xe8,0x40,0x3e,0xe4,0xe2,0x1, 0xc6,0xff,0xf0,0x40, +0x3e,0x7d,0xc4,0x82,0xe7,0xff,0x1, 0xaa,0xf2,0x1, 0xcb,0x7f,0x1, 0x27,0xf0,0x16, +0x33,0x21,0xf2,0x0, 0x7d,0x10,0xf8,0x1a,0x3d,0x16,0xe8,0x0, 0x8a,0xa, 0xe8,0x0, +0x89,0x9a,0x3c,0x64,0x3c,0xe3,0xdd,0xe9,0x67,0x82,0x67,0x1, 0x3f,0xb4,0xe0,0x43, +0x3c,0x18,0x3f,0x93,0x37,0xa1,0x3f,0x9e,0x97,0x8f,0x3f,0xf8,0x4, 0xf, 0xf0,0xf, +0x36,0xa1,0xe2,0x0, 0x7f,0x4c,0x3f,0x9e,0xf0,0x0, 0xc6,0x81,0xaa,0xf, 0xf2,0x1, +0xc6,0xff,0xa9,0x9f,0x17,0xff,0xe8,0x0, 0xaf,0x8a,0xf0,0x0, 0x13,0x81,0xf0,0x17, +0x3b,0x97,0xe8,0x40,0x3b,0xe7,0xe2,0x1, 0xc3,0xff,0x3b,0xf2,0xc3,0x2, 0xe7,0xfe, +0x1, 0xeb,0xe0,0x1, 0x1f,0x8e,0xf0,0x0, 0x8c,0xf, 0xf8,0x40,0x3c,0x7d,0xe0,0x0, +0x5, 0xed,0xe0,0x1, 0x1f,0xf2,0xe0,0x0, 0x1c,0x8d,0xf0,0x0, 0xa3,0x8f,0xe0,0x2, +0x1f,0xfd,0xe0,0x0, 0x1d,0x47,0x89,0xdf,0xe8,0x40,0x3a,0x6d,0xf0,0x1, 0x12,0xff, +0xf0,0x0, 0x13,0x0, 0xf7,0xff,0x12,0x7f,0xf0,0x0, 0x26,0x51,0x15,0x90,0x3d,0x90, +0xe8,0x40,0x3c,0x65,0xe8,0x40,0x39,0x66,0xe0,0x0, 0x16,0x0, 0xe0,0xf, 0x36,0x43, +0x16,0x87,0x3e,0xdc,0xe2,0x0, 0xc7,0x9f,0x3e,0x9a,0x3f,0x99,0xf0,0x0, 0x81,0x8d, +0xe0,0xf, 0x87,0x8f,0x16,0x81,0xe8,0xf, 0x3f,0xd3,0xe2,0x1, 0xc7,0xff,0x3e,0x9c, +0x27,0x98,0xf0,0x0, 0x89,0x8b,0xf2,0x1, 0xc9,0xff,0xf0,0xf, 0x39,0xb3,0x1, 0x11, +0xf0,0x0, 0x89,0x1b,0xe8,0xf, 0x3f,0x92,0x37,0xa1,0xe8,0xf, 0x3f,0x97,0x97,0x8f, +0x3f,0xf2,0x5, 0x7, 0x3c,0x6c,0xf8,0x40,0x3d,0xe2,0xf8,0x40,0x3f,0x63,0x39,0x6f, +0x3e,0x6d,0xe2,0x1, 0xc6,0x7f,0xf0,0x40,0x3e,0x7c,0xc5,0x82,0x1, 0xd0,0xe2,0x1, +0xcc,0x7f,0x1, 0x14,0xf0,0xf, 0x36,0xa1,0xe2,0x0, 0x7f,0x4c,0x3f,0x9e,0x34,0x21, +0xe2,0x0, 0x7f,0x10,0x3c,0x1e,0xf0,0x0, 0xc6,0x81,0xf0,0x0, 0xaf,0xf, 0xf2,0x1, +0xc6,0xff,0xf0,0x0, 0xad,0x9f,0xf0,0x0, 0xaa,0x8, 0xc2,0x1, 0xe2,0x1, 0xc2,0x7f, +0xf0,0x40,0x3c,0x74,0xe7,0xff,0x1, 0xaa,0xe0,0x1, 0x1f,0xc3,0xe0,0x0, 0x14,0xcc, +0x8d,0xf, 0x3c,0x90,0x35,0x21,0xe2,0x0, 0x7c,0x10,0xe0,0x3, 0xd3,0x1b,0x64,0x3, +0xf0,0xa, 0x34,0x21,0xe0,0x1, 0x14,0xff,0xe0,0x3, 0xd3,0x4e,0xf0,0x0, 0x2e,0x8f, +0xe0,0x0, 0x1f,0xe, 0xea,0x12,0x7f,0xce,0xf0,0x0, 0xae,0x8f,0xf0,0x0, 0xae,0x8e, +0xe0,0x1, 0xc0,0x4, 0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0xf0,0x2, 0x36,0xa1,0xe0,0x0, +0x1c,0xd, 0x3d,0x62,0xe2,0x0, 0x7c,0x90,0xe0,0x3, 0xd2,0xfc,0x64,0x3, 0x3d,0x62, +0xe2,0x0, 0x7c,0x90,0xe0,0x3, 0xd2,0xf6,0xe0,0x0, 0x1c,0x8d,0xe0,0x0, 0x1d,0x47, +0xe0,0x0, 0x17,0x80,0xe0,0xe, 0x37,0xc3,0x16,0x7, 0x3e,0x5f,0xe2,0x0, 0xc7,0x1f, +0x3f,0x19,0x3e,0x1a,0xe0,0xf, 0x85,0x8e,0x86,0x8c,0xc7,0x81,0xe2,0x1, 0xc7,0xff, +0x3e,0xcb,0xe8,0x40,0x3f,0xfd,0xe0,0xf, 0xae,0x8e,0x1, 0xed,0xea,0x12,0x7f,0x4e, +0xf0,0x40,0x3c,0x7f,0xaf,0x8e,0xe8,0x6f,0x3c,0xa8,0xe0,0x0, 0x1f,0xe, 0xaf,0x8e, +0xe0,0x1, 0xc0,0x4, 0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0xf0,0x40,0x3e,0xe2,0x7a,0x83, +0xe7,0xfe,0x0, 0xb1,0x8, 0xb1,0xe0,0x0, 0xd8,0xdd,0x8, 0xa1,0xe7,0xfa,0x0, 0x9a, +0xe0,0x2, 0x1f,0xc8,0x17,0x1, 0x8f,0x8f,0xe0,0x2f,0x3f,0x8e,0xe0,0x1, 0x27,0x87, +0xe0,0x1, 0x2c,0x5, 0xe0,0x0, 0x1f,0x93,0xf0,0x0, 0x88,0x8f,0xf0,0x1, 0x28,0x81, +0xe0,0x0, 0x1f,0x8e,0xf0,0x0, 0x8a,0x8f,0xf0,0x40,0x3a,0xfe,0xe0,0x0, 0x5, 0xf9, +0xe0,0x0, 0x8, 0xb1,0xf7,0xff,0x10,0x7f,0xf0,0x0, 0x1a,0xd, 0xf8,0x10,0x38,0x15, +0xe8,0x40,0x3d,0x61,0xe8,0x40,0x3d,0xe1,0xf8,0x40,0x38,0xf0,0xe0,0x0, 0x3, 0x5e, +0xf0,0xf, 0x30,0xa1,0xf0,0x0, 0xc0,0x81,0xf2,0x1, 0xc0,0xff,0xf8,0x40,0x3a,0xf1, +0xe8,0xf, 0x3f,0x94,0x8c,0xf, 0xe0,0x0, 0x8c,0x9f,0x5, 0xef,0xf0,0x40,0x39,0x68, +0xf0,0x40,0x39,0xe9,0xe8,0x40,0x3e,0x61,0xe0,0xe, 0x36,0x21,0xe8,0xe, 0x3f,0x14, +0x8f,0x8e,0x8e,0x9e,0xe8,0xe, 0x3f,0xa2,0xe2,0x0, 0xcf,0x0, 0xe0,0xe, 0x3f,0xa8, +0xe0,0xf, 0x3c,0x2f,0xe8,0x1, 0x3e,0xa3,0xe2,0x1, 0xc7,0xff,0xe2,0x1, 0xc7,0x7f, +0xe0,0x6e,0x3d,0x2f,0xe2,0x0, 0xc8,0x80,0xe0,0xf, 0x3e,0xa9,0xe0,0xd, 0x3c,0xad, +0xe2,0x1, 0xc6,0xff,0xe2,0x1, 0xc7,0xff,0xe0,0x6f,0x3d,0x2d,0x38,0xee,0x3e,0xeb, +0xe2,0x1, 0xc0,0xff,0xe2,0x1, 0xc6,0xff,0x38,0xfd,0xc6,0x1, 0xf0,0x40,0x3b,0xea, +0xf0,0x40,0x3b,0x6f,0xf2,0x1, 0xc3,0xff,0xe2,0x1, 0xc6,0x7f,0xf2,0x1, 0xc3,0x7f, +0x3, 0x82,0x3f,0x6b,0xf8,0x40,0x3b,0x77,0x3d,0xee,0xe2,0x1, 0xc5,0xff,0x3, 0x82, +0x3f,0xea,0xf0,0x40,0x3a,0xfc,0x3d,0x6f,0xe2,0x1, 0xc5,0x7f,0xe7,0xff,0x1, 0xbe, +0xf8,0x40,0x38,0xf0,0xe7,0xff,0x4, 0x26,0x14,0x4, 0xe1,0x2a,0x3c,0x2a,0x14,0x3, +0xe1,0x2b,0x3c,0x2b,0xe0,0x8, 0x3d,0x5b,0x8, 0xe1,0x14,0x0, 0x38,0x82,0x38,0x82, +0xe0,0x0, 0x1f,0x8e,0x8e,0x8f,0xe0,0x1, 0x26,0xcf,0x8, 0xb7,0xf8,0x0, 0xc, 0x3e, +0xc0,0x70,0xe0,0x1, 0x1f,0xf2,0xe0,0x0, 0x1a,0xd, 0xf0,0x0, 0xa4,0xf, 0xe0,0x2, +0x1f,0xfd,0xe0,0x1, 0x12,0xff,0x8b,0xdf,0xf0,0x40,0x3e,0xe9,0xf0,0x40,0x3f,0x68, +0x3d,0xe8,0x3e,0x69,0xf0,0x40,0x3e,0x64,0x3b,0x65,0xf0,0x40,0x3c,0xe5,0x3f,0x65, +0xe0,0x0, 0x11,0x80,0xf8,0x0, 0x8d,0xc, 0xf8,0x0, 0x8d,0x9c,0xf0,0xf, 0x3d,0x2b, +0xe2,0x0, 0xcf,0x80,0xf8,0x2, 0x3d,0x2e,0xf8,0xf, 0x3f,0x2a,0xe2,0x1, 0xc7,0xff, +0xe2,0x1, 0xc1,0x7f,0xe0,0x62,0x3d,0x2f,0xf0,0xa, 0x3d,0xac,0xe2,0x0, 0xcd,0x0, +0x3f,0xe2,0xf8,0xa, 0x3e,0xab,0xf8,0x2, 0x3d,0xad,0xe2,0x1, 0xc1,0x7f,0xe2,0x1, +0xc5,0x7f,0xe0,0x62,0x3d,0x2a,0x39,0x1f,0x39,0x7e,0xe8,0x40,0x3c,0x6a,0xe8,0x40, +0x3c,0xeb,0xf0,0x0, 0xc6,0x2, 0x3, 0x1f,0x7d,0x82,0x7e,0x1, 0x7e,0x83,0x7f,0x4, +0xdc,0xc, 0xf0,0xf, 0x3d,0x37,0xe0,0x43,0x3c,0x18,0xe8,0xf, 0x3f,0x9b,0x37,0xa1, +0xe8,0xf, 0x3f,0x98,0x97,0x8f,0x65,0x82,0x3f,0xf8,0x66,0x1, 0x66,0x83,0x67,0x4, +0x5, 0xa, 0x3f,0x62,0xf0,0x40,0x3c,0xe3,0xe2,0x1, 0xc7,0x7f,0xe8,0x40,0x3a,0xeb, +0xe8,0x40,0x3b,0x6a,0xc1,0x81,0xe2,0x1, 0xc1,0xff,0x39,0xfd,0xe7,0xff,0x1, 0xb4, +0xe0,0xa, 0x3b,0x37,0xf0,0x2, 0x1b,0xff,0x3d,0x15,0x35,0x21,0xf8,0x0, 0xac,0x87, +0xe8,0xa, 0x3d,0x18,0x16,0x80,0x11,0x1, 0x14,0x2, 0x14,0x84,0x0, 0x8e,0x27,0x3e, +0x97,0xc, 0x97,0x8a,0x3f,0x7f,0xe0,0x0, 0x2, 0x49,0xc6,0x81,0xe2,0x1, 0xc6,0xff, +0x39,0xfd,0xc2,0x2, 0xe0,0x0, 0x1, 0x44,0xf0,0x40,0x3c,0xfd,0x1, 0x77,0x8d,0x84, +0xf0,0x0, 0x8b,0x14,0xe0,0xe, 0x3d,0xa6,0xf0,0x43,0x3a,0x1e,0xf2,0x0, 0xca,0x0, +0xf0,0xf, 0x3b,0x25,0xe0,0x15,0x3b,0x2b,0xf2,0x1, 0xc2,0xff,0xf0,0x43,0x3a,0x1f, +0xe2,0x1, 0xc7,0x7f,0xe8,0x6e,0x3d,0x25,0xe0,0xc, 0x3d,0xb7,0xe8,0x15,0x3a,0xa6, +0xf2,0x0, 0xca,0x0, 0xf2,0x1, 0xc2,0xff,0xe2,0x1, 0xc7,0xff,0xe8,0x6f,0x3d,0x25, +0xe8,0xc, 0x3e,0x16,0x36,0x21,0xe1,0x35,0x3c,0x2f,0xe8,0xc, 0x3e,0x18,0xe1,0x2f, +0x3c,0xaf,0xe1,0x2e,0x39,0x2e,0xf7,0xff,0x2a,0xc4,0x3d,0xb7,0x27,0xc7,0xe8,0xb, +0x3d,0x96,0x35,0xa1,0xe8,0xb, 0x3d,0x98,0x27,0x41,0x97,0x8a,0x97,0xb, 0xe0,0x1, +0xc7,0xc8,0x3f,0x7f,0xe7,0xff,0x5, 0x3b,0xe8,0x0, 0xae,0x87,0xc0,0x10,0xf8,0x0, +0xf, 0x28,0xb, 0xe1,0xe0,0x2, 0x1f,0xff,0x17,0x7f,0xaf,0xf, 0x38,0x82,0x0, 0x0, +0xe0,0x2, 0x1f,0xdd,0xe0,0x2, 0x1e,0xde,0x8f,0xf, 0xe0,0x0, 0x2f,0x56,0xe0,0x0, +0x1f,0x8e,0xf0,0x0, 0x1a,0x8d,0xf0,0x0, 0x8b,0xf, 0xf0,0x0, 0x23,0x4d,0xe0,0x1, +0x1f,0xf2,0xf0,0x0, 0x18,0x8b,0xf0,0x0, 0xa1,0x8f,0xe0,0x2, 0x1f,0xfd,0xf0,0x0, +0x19,0xa, 0xf0,0x0, 0x8a,0x5f,0xe8,0x40,0x3e,0x65,0x3e,0xee,0xe0,0x1, 0x14,0x7f, +0xf0,0x40,0x3b,0xee,0x8d,0xc, 0x8d,0x9c,0xe8,0xf, 0x3d,0x34,0x14,0x81,0x3f,0x9b, +0x37,0xa1,0xe8,0xf, 0x3f,0x93,0x97,0x8f,0x3c,0x9d,0xe8,0x40,0x3f,0xf7,0xc6,0x2, +0x5, 0x8, 0xe8,0x0, 0xad,0x1, 0x3c,0x6d,0xe8,0x0, 0xad,0x82,0xf0,0x40,0x3b,0xef, +0x3e,0xe9,0xe2,0x1, 0xc6,0xff,0xe8,0x40,0x3e,0xf6,0x1, 0xe5,0xe0,0x0, 0x1d,0x47, +0x15,0x81,0xe0,0xf, 0x37,0x43,0x16,0x7, 0x3d,0x9e,0x3c,0x7e,0x3e,0x5e,0xe2,0x0, +0xc7,0x9f,0x3f,0x6b,0xe8,0xf, 0x3f,0x95,0x3e,0x1a,0xe2,0x1, 0xc7,0x7f,0x1, 0x8, +0xe0,0xf, 0x85,0x8f,0x86,0xc, 0xe3,0xc, 0x3d,0xdc,0xe0,0xf, 0xae,0xf, 0x3e,0xfe, +0x1, 0xe8,0x38,0x82,0x38,0x82,0xe0,0x1, 0x8c,0x8d,0x8c,0x7d,0xe7,0xfd,0x0, 0xca, +0xe0,0x0, 0x1f,0x8e,0xe0,0x1, 0x1c,0xce,0x8d,0xf, 0x17,0x80,0xaf,0x89,0xea,0x12, +0x7f,0xcd,0x2d,0xd, 0xe0,0x2, 0x1f,0x48,0xad,0xf, 0x8f,0xe, 0xe2,0x0, 0xcf,0x1, +0x1, 0x15,0xea,0x12,0x7f,0xcc,0x17,0x0, 0xaf,0xf, 0x38,0x82,0x87,0xf, 0xc7,0x1, +0xe2,0x1, 0xc7,0x7f,0xe2,0x0, 0xcf,0x6, 0x5, 0x82,0x17,0x6, 0xaf,0xf, 0xe0,0x2, +0x1f,0x48,0x8f,0xe, 0xe2,0x0, 0xcf,0x1, 0x1, 0xed,0x8, 0xb3,0xe0,0x2, 0x1e,0xeb, +0xe0,0x3, 0x19,0x1c,0x16,0x0, 0x8f,0xd, 0xae,0x2, 0xe0,0x0, 0x2f,0x5a,0xe2,0x0, +0xcd,0xf, 0xe0,0x0, 0x2, 0xd1,0xe2,0x0, 0xcd,0x1, 0xe0,0x0, 0x5, 0xd6,0x8f,0x8f, +0xe2,0x0, 0xcf,0x85,0xe0,0x0, 0x2, 0xd1,0xfa,0x12,0x78,0xcc,0xf8,0x0, 0x89,0x81, +0xf0,0x1, 0x29,0xd9,0xf7,0xff,0x11,0x7f,0xf0,0x0, 0x1a,0x8d,0xf0,0x12,0x39,0x1a, +0xe8,0x40,0x3e,0xe3,0xf8,0x40,0x39,0xf2,0xe0,0x1, 0x3, 0x2e,0xf0,0xf, 0x31,0xa1, +0xf0,0x0, 0xc1,0x81,0xf2,0x1, 0xc1,0xff,0xe8,0x40,0x3d,0x73,0xe8,0xf, 0x3f,0x95, +0xf0,0x0, 0x8b,0x1f,0x5, 0xf0,0xf8,0x40,0x3a,0x66,0xe8,0x40,0x3f,0xe3,0x0, 0x89, +0x3d,0xfd,0xe8,0x6d,0x3a,0x27,0xc7,0x81,0xe2,0x1, 0xc7,0xff,0x3d,0x7f,0x1, 0x63, +0xe0,0xe, 0x37,0xa1,0xe8,0xe, 0x3f,0x15,0x8f,0x1e,0xe8,0xc, 0x3f,0x24,0xe8,0xb, +0x3f,0x26,0xe2,0x0, 0xce,0x0, 0xf0,0x40,0x3b,0xeb,0xf2,0x1, 0xc3,0xff,0x2, 0x69, +0xe0,0x41,0x3e,0x4c,0x3e,0x7d,0xf0,0xe, 0x3b,0x2e,0xe2,0x1, 0xc7,0x7f,0xe0,0x6d, +0x3a,0x2e,0x0, 0xe2,0xea,0x12,0x7f,0xcc,0x17,0x0, 0xaf,0xf, 0x9, 0xe1,0xc7,0x7f, +0xaf,0xd, 0xe7,0xff,0x0, 0xa6,0xea,0x12,0x7f,0xcc,0x8f,0xf, 0x27,0x3, 0xc7,0x7f, +0xaf,0xf, 0xe0,0x0, 0x1f,0x93,0xe0,0x0, 0x1f,0x12,0x89,0x8f,0x3d,0x73,0x5, 0x96, +0xe0,0x0, 0x21,0xfd,0xe2,0x0, 0xc9,0x81,0xe0,0x1, 0x1, 0x7, 0xe0,0x1, 0x1f,0xe8, +0x17,0x3, 0x8f,0x8f,0xaf,0x9, 0xe0,0x0, 0x27,0xfb,0xe2,0x0, 0xcf,0x82,0x1, 0xdf, +0xe0,0x0, 0x1f,0x38,0xaf,0x8e,0xe0,0x0, 0x9, 0xe1,0xe0,0x0, 0x4, 0xd5,0xe2,0x0, +0xcd,0x1, 0x5, 0xd5,0xf0,0x0, 0x1b,0x8d,0xf0,0x0, 0x11,0x1, 0xf8,0x40,0x38,0xe7, +0xf0,0x0, 0x13,0x2, 0xe8,0x0, 0x8c,0x1, 0xe8,0x0, 0x8d,0x91,0xf0,0x40,0x39,0xe8, +0xf0,0x40,0x3a,0x6b,0xe8,0x40,0x3e,0x62,0xe0,0xf, 0x36,0x21,0xf0,0xe, 0x3b,0x9f, +0x8e,0x8e,0x8f,0x1e,0xf0,0xf, 0x39,0xad,0xe2,0x0, 0xcf,0x80,0xe0,0xf, 0x3c,0x2d, +0x3e,0xa8,0xe2,0x1, 0xc6,0xff,0xf0,0x15,0x3a,0x2e,0xe2,0x1, 0xc7,0xff,0xe0,0x6f, +0x3d,0x2d,0xe0,0xd, 0x3d,0xae,0xf2,0x0, 0xca,0x80,0x3f,0x2b,0xe2,0x1, 0xc7,0x7f, +0xe2,0x1, 0xc6,0xff,0xc6,0x1, 0xe0,0x6d,0x3d,0x2e,0xf1,0x2f,0x3b,0x2f,0xe2,0x1, +0xc6,0x7f,0xf1,0x2e,0x3b,0x2d,0x27,0x83,0xe7,0xff,0x2f,0x32,0x3d,0x7c,0x2, 0xd5, +0xf0,0x0, 0xc1,0x1, 0xf2,0x1, 0xc1,0x7f,0xe8,0x40,0x3d,0x72,0xf0,0x0, 0xc0,0x82, +0x1, 0xc2,0x9, 0xe1,0xe2,0x0, 0xce,0x85,0xe7,0xff,0x5, 0x95,0x17,0x81,0xe8,0x0, +0xaf,0x81,0x9, 0xe1,0xe2,0x0, 0xcd,0x1, 0xe7,0xff,0x1, 0x9a,0xe0,0x2, 0x1f,0xdd, +0x8f,0x8f,0xe2,0x0, 0xcf,0x81,0xe7,0xff,0x1, 0x93,0xe0,0x1, 0x1f,0xc7,0x9f,0x8f, +0xe2,0x1, 0xcf,0xc8,0xe7,0xff,0x5, 0x8c,0x9, 0xe1,0xde,0x8b,0x17,0x81,0xaf,0x82, +0x9, 0xe1,0xf1,0xff,0xc1,0xff,0xf8,0x0, 0xa9,0x81,0x9, 0xe1,0xe0,0x0, 0x1f,0xb8, +0x17,0x1, 0xaf,0xf, 0x9, 0xe1,0x8c,0x9e,0x8c,0xe, 0xdd,0xa3,0xa9,0x82,0x9, 0xe1, +0x8, 0xb1,0xe0,0x1, 0x1f,0xf2,0xe0,0x1, 0x15,0x48,0xa4,0xf, 0x14,0xa8,0xef,0xfd, +0xda,0x96,0xe0,0x0, 0x1d,0x8d,0xe0,0x1a,0x97,0xfb,0xe2,0x1b,0xcf,0xac,0xe0,0x0, +0x1f,0x8e,0x8d,0xf, 0x2, 0x6, 0xe0,0x1b,0x97,0x9b,0xe3,0xe4,0xcf,0xd4,0x3, 0x19, +0x25,0x17,0xe0,0x0, 0x1c,0xc7,0x16,0x80,0x3f,0xed,0xe2,0x1, 0xc7,0xff,0xe0,0xe, +0x37,0xc3,0xe2,0x0, 0xc7,0x87,0x3f,0x1b,0x3f,0x99,0xe0,0xf, 0x86,0xe, 0x87,0x8f, +0xc6,0x81,0xe3,0xf, 0x3e,0x5f,0x3e,0xfa,0xe0,0xf, 0xaf,0x8e,0x1, 0xee,0x8, 0xe1, +0xe0,0xf, 0x35,0x24,0x3c,0x7f,0x5, 0x7c,0xe0,0x3, 0x1f,0xae,0x8f,0x8f,0xe2,0x0, +0xcf,0x81,0x1, 0x5f,0x8, 0xe1,0xe0,0x0, 0x1f,0xbb,0xe0,0x2, 0x8f,0xf, 0x3f,0x9e, +0xe0,0x6, 0x8c,0x8f,0xe0,0x1, 0x1f,0xe9,0x8f,0x8f,0xe2,0x0, 0xcf,0x81,0x1, 0x2, +0x38,0x82,0xe2,0x1, 0xc4,0xfd,0x2c,0xfd,0x8, 0xb1,0xe0,0x1, 0x1f,0xf1,0xe0,0x13, +0x15,0x44,0xa4,0xf, 0xef,0xfd,0xda,0x4b,0xe2,0x0, 0xcc,0x64,0x5, 0x87,0xe0,0x1, +0x1f,0xdc,0x17,0x7f,0xa7,0x8f,0xe0,0x7, 0xaf,0x3f,0x8, 0xe1,0x8, 0xb2,0xe0,0x1, +0x1f,0xd7,0xe0,0x3, 0x8f,0xaf,0x27,0xb1,0xe0,0x0, 0x19,0xe, 0xdf,0x9a,0xd9,0xc1, +0xd9,0xc0,0xef,0xff,0xd7,0x3, 0xd9,0xbd,0xe0,0x0, 0x1f,0xa7,0x87,0x2, 0xaf,0xf, +0xd5,0x78,0xd9,0xb7,0xd9,0xb6,0x8f,0x82,0xe2,0x0, 0xcf,0x81,0x1, 0x9, 0xd9,0xf5, +0xd9,0xb0,0xda,0xfb,0xe0,0x0, 0x1f,0xb8,0x8f,0x8f,0x27,0x93,0x9, 0x61,0xe0,0x3, +0x1f,0x6, 0x16,0x80,0xae,0x8e,0x17,0x80,0xe0,0x3, 0x1f,0x35,0xb7,0x8e,0xe0,0x0, +0x1f,0x41,0xaf,0x8e,0xd9,0x9e,0xda,0xe9,0xe0,0x0, 0x1f,0xb8,0x8f,0x8f,0x2f,0xef, +0xde,0x48,0x9, 0x21,0xe7,0xf3,0x0, 0x96,0xef,0xfe,0xde,0x50,0xd9,0x92,0x0, 0xcd, +0x8, 0xb6,0xc0,0x74,0x3c,0x7a,0xe4,0xf, 0x35,0x28,0xe4,0xe, 0x34,0x28,0x39,0x68, +0x4, 0x82,0x39,0x6a,0x3f,0x7f,0x3f,0xe8,0xe0,0x6f,0x3d,0xaa,0x3c,0xfb,0x38,0xef, +0xe2,0x1, 0xc1,0x7f,0xe2,0x1, 0xc0,0xff,0x39,0xeb,0xe4,0xf, 0x35,0xa8,0xe4,0xe, +0x34,0xa8,0x3, 0x82,0x39,0xe9,0x3f,0x7f,0xe2,0x1, 0xc1,0xff,0x3f,0xe9,0xe0,0x6f, +0x3d,0xab,0x3c,0xf3,0xf0,0x40,0x3b,0x6f,0xf2,0x1, 0xc3,0x7f,0xe0,0x1, 0x1, 0x1e, +0x3d,0x72,0xe0,0x1, 0x2, 0x9e,0xf0,0x40,0x3a,0xe2,0xf0,0x0, 0x11,0x81,0xe0,0x1, +0x1f,0xf2,0xf0,0x0, 0x11,0x1, 0xf0,0x0, 0xa2,0xf, 0xe0,0x2, 0x1f,0xfd,0xe0,0x0, +0x1a,0x29,0xf0,0x0, 0x8b,0xdf,0xf8,0x12,0x39,0x16,0x3c,0xe3,0x15,0x0, 0xf0,0x1, +0x10,0x7f,0xf7,0x0, 0x10,0x81,0x14,0x7f,0xf0,0x40,0x39,0x79,0xe0,0x0, 0x1, 0x62, +0xe8,0x40,0x3c,0xf6,0xf0,0x1, 0x21,0x83,0xe0,0x1, 0x3, 0x65,0x17,0x1, 0x3f,0x19, +0xf0,0x40,0x3a,0xf1,0xf0,0x0, 0x6a,0x84,0x6f,0x5, 0xe0,0x1, 0x3, 0x61,0x17,0x81, +0xe8,0xf, 0x3f,0x95,0xe2,0x1, 0xc7,0xff,0x6f,0x88,0x6c,0x89,0x6f,0x8c,0x6f,0xd, +0x17,0x4, 0x3f,0x10,0xe8,0x40,0x3e,0x60,0xe8,0x40,0x3b,0x61,0x16,0x80,0x8d,0x8e, +0x12,0x81,0xe2,0x1, 0xcd,0xff,0x3a,0x9d,0xe8,0xf, 0x3d,0xb7,0x1, 0x10,0x8d,0x9e, +0x3f,0x9b,0xe2,0x1, 0xcd,0xff,0x37,0xa1,0xe8,0xf, 0x3f,0x94,0x1, 0x8, 0x97,0x8f, +0x3f,0xf6,0xe0,0x6c,0x3a,0x2d,0x3f,0xf6,0xe0,0x66,0x3a,0x2f,0x3e,0xe5,0xe2,0x1, +0xc6,0xff,0xe2,0x0, 0xce,0x83,0xc7,0x4, 0x1, 0xe3,0xe0,0xf, 0x36,0x22,0xe2,0x0, +0x7f,0x4, 0x3f,0x1f,0x8e,0x9e,0xf0,0x40,0x3b,0x7d,0xe0,0x1, 0x1, 0x34,0xe8,0x40, +0x39,0xf6,0xe0,0x1, 0x1, 0x30,0xe2,0x1, 0xce,0x7f,0xe7,0xff,0x1, 0x2f,0xe0,0xe, +0x35,0x21,0x3c,0xed,0x3f,0x14,0xe2,0x0, 0x7e,0x4, 0xf0,0x40,0x39,0x79,0x3f,0x9c, +0xc5,0x1, 0xb3,0xe, 0xe2,0x1, 0xc5,0x7f,0xf0,0x0, 0x8a,0x8f,0xe7,0xff,0x1, 0xa2, +0xe0,0xff,0x14,0x7f,0x25,0x18,0x17,0xff,0x3f,0x9a,0x3d,0x6f,0xe2,0x1, 0xc5,0x7f, +0xe0,0x0, 0x1e,0xa9,0xe0,0xf, 0x35,0x21,0xe0,0x0, 0x1f,0x28,0xe0,0xf, 0x3f,0x9d, +0xe0,0xff,0x14,0x7f,0xe0,0x80,0x96,0x9e,0x3e,0xf8,0xe0,0x6d,0x3a,0x28,0x3f,0x7f, +0x3c,0x6d,0x1, 0xf9,0xc0,0xc, 0xb, 0x61,0x3c,0x72,0xe7,0xfe,0x5, 0xe6,0xf0,0x40, +0x3a,0xe1,0xf0,0x0, 0x11,0x80,0xe7,0xfe,0x0, 0xe4,0xe0,0x0, 0x3, 0x59,0x17,0x1, +0x3f,0x19,0xe8,0x40,0x39,0x75,0xf0,0x0, 0x6a,0x84,0x6f,0x5, 0xe0,0x0, 0x3, 0x55, +0x17,0xff,0xe8,0xf, 0x3f,0x95,0xe2,0x1, 0xc7,0xff,0x6f,0x88,0x6c,0x89,0x6f,0x8c, +0x6f,0xd, 0x17,0x4, 0x3f,0x10,0xe8,0x40,0x3e,0xe3,0xe8,0x40,0x3e,0x60,0xe8,0x40, +0x3b,0x61,0x8d,0x8e,0x12,0x81,0xe2,0x1, 0xcd,0xff,0x3a,0x9d,0xe8,0xf, 0x3d,0xb7, +0x1, 0x10,0x8d,0x9e,0x3f,0x9b,0xe2,0x1, 0xcd,0xff,0x37,0xa1,0xe8,0xf, 0x3f,0x94, +0x1, 0x8, 0x97,0x8f,0x3f,0xf6,0xe0,0x6c,0x3a,0x2d,0x3f,0xf6,0xe0,0x66,0x3a,0x2f, +0x3e,0xe5,0xe2,0x1, 0xc6,0xff,0xe2,0x0, 0xce,0x83,0xc7,0x4, 0x1, 0xe3,0xe0,0xf, +0x36,0x22,0xe2,0x0, 0x7f,0x4, 0x3f,0x1f,0x8e,0x9e,0xf0,0x40,0x3b,0x7d,0x1, 0x2d, +0xe8,0x40,0x39,0xf6,0x1, 0x2a,0xe2,0x1, 0xce,0x7f,0xe7,0xfe,0x1, 0x2f,0xe0,0xe, +0x35,0x21,0xe2,0x0, 0x7e,0x4, 0x3f,0x9c,0x3f,0x14,0xc5,0x1, 0xf0,0x0, 0x8a,0x8f, +0xb3,0xe, 0xe2,0x1, 0xc5,0x7f,0x3c,0xed,0xe7,0xfe,0x0, 0xa0,0xf0,0x40,0x3a,0xf2, +0x6c,0x4, 0x6c,0x5, 0x2, 0x23,0x6c,0x8, 0x6c,0x9, 0x6c,0xc, 0x6c,0xd, 0xe7,0xff, +0x0, 0xb2,0xe8,0x40,0x38,0xf5,0x6c,0x4, 0x6c,0x5, 0x2, 0x12,0x6c,0x8, 0x6c,0x9, +0x6c,0xc, 0x6c,0xd, 0xe7,0xfe,0x0, 0xa6,0x8f,0xe, 0x3f,0x72,0x1, 0xd5,0xe7,0xfe, +0x0, 0xe9,0x8f,0xe, 0x3f,0x71,0xe7,0xfe,0x1, 0xd0,0xe7,0xfe,0x0, 0xe3,0x17,0x81, +0xe8,0xf, 0x3f,0x95,0x6f,0x88,0x6c,0x89,0x0, 0xec,0x17,0xff,0xe8,0xf, 0x3f,0x95, +0x6f,0x88,0x6c,0x89,0x0, 0xdb,0x0, 0x0, 0x8, 0xb3,0xf7,0xff,0x12,0x7f,0xf0,0x43, +0x38,0x8, 0xf0,0x14,0x3a,0x18,0xf0,0x0, 0x10,0x81,0xf8,0x43,0x3a,0x4, 0xf8,0x11, +0x38,0x90,0xe0,0x2, 0x1f,0xfd,0xf8,0x40,0x3a,0x71,0x80,0xef,0xf0,0x0, 0x82,0xff, +0xe0,0x0, 0x2, 0x65,0xe0,0x1, 0x1f,0x72,0xf7,0xff,0x11,0x7f,0xf0,0x0, 0x11,0x81, +0xf0,0x13,0x39,0x98,0xf0,0x43,0x3b,0x89,0xf0,0x12,0x39,0x19,0x15,0x1, 0x11,0x81, +0xf0,0x0, 0xa3,0xe, 0x89,0x5f,0xf8,0x43,0x39,0x2, 0xe8,0xa, 0x3d,0x17,0xf2,0x1, +0xc1,0xff,0xe7,0x0, 0x14,0x1, 0x39,0x99,0xf2,0x0, 0xca,0x0, 0xe8,0x43,0x3f,0x83, +0xe8,0x40,0x3d,0xe4,0xe0,0x6b,0x3c,0x2f,0xe8,0x40,0x38,0xf4,0xe0,0x6b,0x3d,0x2f, +0xe8,0x40,0x3d,0x72,0x4, 0x2e,0x3e,0x63,0xe0,0x9, 0x39,0x3b,0xe2,0x1, 0xc6,0x7f, +0xe8,0x2b,0x3d,0x80,0xe8,0x40,0x3f,0xe2,0x0, 0x84,0x25,0x9c,0x3f,0xfa,0x2, 0x21, +0xe2,0x0, 0xcf,0x80,0xe0,0x43,0x3e,0x8c,0x3f,0x6f,0xe0,0x6e,0x3c,0x2d,0xf0,0x40, +0x3a,0xff,0xc6,0x7f,0xe0,0x6e,0x3d,0x2d,0xe0,0xd, 0x3f,0x19,0xc7,0x81,0x36,0xa1, +0xe8,0x2e,0x3f,0x7, 0xe0,0x43,0x3f,0x8f,0xe8,0xd, 0x3e,0x96,0xe2,0x1, 0xc6,0x7f, +0x2f,0x65,0x97,0xd, 0x3f,0x78,0xe0,0x6e,0x3c,0x28,0x3f,0xfa,0x3c,0x6e,0x5, 0x61, +0xf0,0x0, 0xc2,0x1, 0xf8,0x43,0x3a,0x4, 0xf8,0x40,0x3a,0x71,0xf1,0xff,0xc1,0xff, +0xf2,0x1, 0xc1,0xff,0xe7,0xff,0x5, 0x3a,0x9, 0xe1,0xe7,0x0, 0x14,0x1, 0x9, 0xe1, +0x8, 0xb4,0xc0,0x78,0x39,0xea,0x3a,0x6b,0x7e,0x2, 0x7e,0x81,0xdf,0x7e,0x39,0x68, +0x3c,0xe4,0x3c,0x63,0xdf,0x7a,0x39,0x18,0xe4,0x8, 0x31,0x4f,0x3c,0x12,0x34,0x1, +0x66,0x81,0x3f,0xe8,0xe3,0xff,0xc6,0xff,0xe3,0xff,0xc7,0xff,0xe0,0xe, 0x3e,0xaf, +0xe0,0x43,0x3f,0x1e,0x66,0x2, 0xe2,0x0, 0xcf,0x0, 0xe0,0x8, 0x3e,0xa8,0xe0,0xe, +0x3f,0xad,0xe3,0xff,0xc6,0x7f,0xe0,0x43,0x3f,0x1e,0xe0,0x43,0x3c,0x18,0xe0,0xf, +0x3e,0xac,0xe0,0x68,0x3d,0x2e,0xe0,0x2, 0x1f,0x41,0xe0,0x43,0x3f,0x9f,0x3e,0x2d, +0xe2,0x0, 0xcf,0x80,0x9f,0xe, 0xe0,0x43,0x3e,0x1c,0xe0,0x6f,0x3d,0x2c,0xe2,0x0, +0xcf,0xb, 0x16,0x86,0x17,0x3, 0xe0,0x6e,0x3c,0xad,0x3f,0x38,0x3f,0xfe,0x5, 0xa, +0xe0,0x0, 0x17,0x64,0xe0,0x2f,0x3f,0x9e,0xe0,0x28,0x3c,0x1e,0x3c,0x5f,0xc0,0x8, +0xa, 0x61,0x14,0x0, 0xc0,0x8, 0xa, 0x61,0x8, 0xb1,0xc0,0x44,0x15,0x3c,0x14,0x80, +0xe2,0x0, 0x7c,0x4, 0xe0,0x2, 0xdd,0x50,0xe0,0x0, 0x1f,0x8e,0x14,0x0, 0x8d,0x8f, +0xe2,0x0, 0xcd,0x82,0xe0,0x0, 0x5, 0xc8,0x15,0x7f,0x3d,0x1b,0xe2,0x1, 0xc5,0x7f, +0xc5,0x1, 0xe0,0x0, 0x1f,0x8d,0xf2,0x0, 0x7b,0x4, 0x35,0x21,0x3d,0x1f,0xe8,0x40, +0x3f,0x66,0x86,0xf, 0x86,0x9f,0xc7,0x82,0xae,0xe, 0x3f,0xfa,0xc7,0x2, 0xe0,0x40, +0xae,0x9e,0x1, 0xf8,0xf0,0x0, 0x13,0x80,0xe8,0x40,0x3e,0xe7,0xf0,0x0, 0xc3,0x81, +0xf2,0x1, 0xc3,0xff,0xe8,0x40,0x3d,0xf7,0x14,0x1, 0x1, 0x25,0xe8,0x0, 0x8c,0x86, +0xe8,0x0, 0x8d,0x16,0xe8,0x40,0x3f,0xe7,0xe0,0xe, 0x37,0xa1,0xe2,0x0, 0x7e,0x4, +0x3f,0x1c,0x8e,0xe, 0x8f,0x1e,0x3e,0x79,0x3e,0x6d,0xe0,0x6c,0x39,0xa8,0xc7,0x81, +0x3f,0x7a,0xe2,0x1, 0xc7,0xff,0x3f,0x6d,0xe0,0x6e,0x39,0xac,0x3d,0xff,0x3c,0x6e, +0x1, 0xec,0xf0,0x0, 0xc3,0x81,0xf2,0x1, 0xc3,0xff,0xe8,0x40,0x3d,0xf7,0xf0,0x0, +0xc3,0x2, 0x1, 0xdd,0xc0,0x3c,0x8, 0xe1,0x8, 0xb7,0xf8,0x0, 0xc, 0x3e,0xc0,0x40, +0xe0,0x0, 0x1f,0xe, 0xe0,0x1, 0x1f,0xc3,0x8f,0xe, 0xea,0x4f,0x7d,0x98,0x89,0xf, +0xe9,0xff,0xc5,0xff,0xe0,0x2, 0x1e,0x3b,0x7f,0xa, 0x17,0x80,0xe0,0x2, 0x1f,0x22, +0xf0,0x40,0x38,0xe8,0xf0,0x2, 0x1c,0xc3,0xa4,0xb, 0xaf,0x8e,0x3d,0x62,0xaf,0x8c, +0x14,0x80,0xf0,0x0, 0x78,0x81,0xe8,0x7, 0xaf,0xd9,0xe8,0x7, 0xaf,0xe9,0xe0,0x2, +0xdc,0xdb,0xe0,0xa, 0x31,0x21,0x14,0x80,0xe8,0x40,0x3c,0x69,0xe0,0x2, 0xdc,0xd4, +0x67,0xa, 0xf0,0x0, 0x60,0x81,0xe2,0x0, 0xcf,0x1, 0xe0,0x2, 0x5, 0xe1,0xea,0x4f, +0x7f,0x98,0xe9,0xff,0xc7,0xff,0xf0,0x0, 0xa6,0x8f,0xf0,0x0, 0x15,0x81,0xf8,0xe, +0x3d,0xad,0xf0,0x0, 0x18,0x3, 0xf8,0x40,0x3e,0x6b,0x7f,0xe, 0xf2,0x0, 0xcd,0x81, +0xf8,0x40,0x8c,0x30,0xe8,0x40,0x8b,0xa0,0xe0,0x2, 0x1, 0x43,0xe8,0x0, 0x8f,0xd, +0xe0,0x2, 0x27,0x3f,0x67,0x8a,0xf0,0x40,0x3d,0xff,0xe0,0x2, 0x3, 0xc1,0x3b,0x6f, +0xc3,0x7f,0xe2,0x1, 0xc3,0x7f,0x67,0xe, 0xe8,0x17,0x3b,0x2b,0xe8,0xe, 0x3f,0x1d, +0xf2,0x1, 0xc3,0xff,0xf0,0x17,0x3b,0x9e,0xf0,0x17,0x33,0xa1,0xe0,0x0, 0x1f,0x8d, +0x17,0x1, 0xf0,0x0, 0xc3,0x83,0xe0,0x3, 0x1d,0x85,0xe8,0xe, 0x3f,0x1d,0xc3,0x1, +0xf0,0x17,0x3b,0x9f,0x7f,0x9, 0x3a,0x6e,0xf0,0x0, 0x7d,0x8b,0xf8,0x40,0x3a,0xe8, +0xe8,0x40,0x3a,0xe0,0x17,0x5, 0x3b,0x1b,0xf8,0x40,0x3d,0xe7,0xf0,0x0, 0x78,0xc, +0xf0,0x40,0x3f,0x67,0x0, 0x9e,0xe0,0x0, 0x27,0xc9,0x16,0x81,0xe8,0xd, 0x3e,0xd1, +0xe0,0x0, 0x26,0xc4,0xe0,0x2, 0x1e,0x3b,0xe8,0x7, 0x87,0xd9,0x86,0x8c,0xc7,0x81, +0xc6,0x81,0xae,0x8c,0xe8,0x7, 0xaf,0xd9,0x8e,0x4, 0xe0,0x2, 0x2e,0x6, 0xe8,0x0, +0x8f,0x8d,0xaf,0x84,0xc2,0x82,0xf0,0x40,0x3d,0xf5,0xc2,0x1, 0xe0,0x1, 0x1, 0x60, +0xf0,0x40,0x8d,0x15,0xf0,0x0, 0x88,0x5, 0xf8,0xf, 0x3a,0xaa,0xe2,0x0, 0xcf,0x80, +0xf8,0x2, 0x3c,0x2a,0xf8,0xf, 0x3d,0x28,0xe2,0x1, 0xc7,0xff,0xf8,0xd, 0x3f,0x20, +0xe2,0x1, 0xc1,0x7f,0xe0,0x62,0x3d,0x2f,0xe8,0x3, 0x3b,0xa0,0xe2,0x0, 0xce,0x80, +0xf0,0xf, 0x38,0x27,0xe2,0x1, 0xc1,0xff,0xe2,0x1, 0xc7,0xff,0xe1,0x2d,0x39,0x1e, +0xe0,0x63,0x3d,0x2f,0x2e,0xd8,0xe1,0x2f,0x39,0x9e,0x2f,0xd5,0xf1,0x2d,0x3e,0x23, +0xf1,0x2f,0x3e,0x22,0xe7,0xff,0x2e,0xb9,0xe9,0x2d,0x39,0x1c,0x2e,0x84,0xe9,0x2d, +0x39,0x9c,0x26,0xc9,0x16,0x82,0xe8,0xd, 0x3e,0xd1,0x26,0xc5,0xe0,0x2, 0x1d,0xfd, +0xe0,0x1, 0x1e,0x72,0x8e,0xdb,0xa5,0x8c,0xf0,0xc, 0x3c,0x3d,0xe8,0xd, 0x3e,0xba, +0x3e,0x17,0xe8,0xd, 0x3e,0x90,0x36,0x21,0x36,0xa1,0x3e,0x1b,0x3e,0x9b,0xf0,0x0, +0x91,0xc, 0xf0,0x0, 0x92,0xd, 0x16,0x82,0xe1,0x2c,0x3e,0xa2,0xe8,0x40,0x3d,0xe0, +0xe8,0x40,0x3d,0x6a,0xe1,0x2d,0x3e,0xa3,0x3c,0xe7,0xe8,0x40,0x3c,0x68,0x7f,0x3, +0x7f,0x84,0xf0,0x0, 0x78,0x81,0xf0,0x0, 0x7a,0x82,0x7e,0x8, 0x7e,0x8d,0xf0,0x0, +0x78,0x7, 0xf0,0x0, 0x79,0x6, 0xf0,0x0, 0x7a,0x5, 0xdc,0x8b,0xf0,0x0, 0x61,0x6, +0xf0,0x0, 0x62,0x5, 0xe2,0xff,0xcc,0x7f,0xf8,0xc, 0x39,0x14,0xe4,0xd, 0x36,0x4f, +0xf0,0x0, 0x60,0x7, 0x3e,0x9c,0x16,0x0, 0xe0,0x6c,0x39,0xa8,0x36,0x81,0xf8,0x40, +0x39,0x74,0xe8,0x40,0x3d,0xe0,0xe8,0x40,0x3d,0x6a,0xe0,0x43,0x3e,0x9d,0xf8,0x40, +0x3d,0x64,0x3c,0xe7,0xe8,0x40,0x3c,0x68,0xe8,0x7a,0x3b,0x22,0x7e,0x7, 0xde,0x39, +0x65,0x8d,0x66,0x88,0x7c,0x10,0x3e,0xdb,0x7e,0x8f,0xde,0x7f,0x67,0x3, 0x67,0x84, +0xf0,0x0, 0x60,0x81,0xf0,0x0, 0x61,0x6, 0xf0,0x0, 0x61,0x87,0xf0,0x0, 0x62,0x5, +0xf0,0x0, 0x62,0x82,0xe0,0x1, 0x24,0x1d,0xf8,0x40,0x3a,0x6a,0xe0,0x2, 0x1e,0xc1, +0xe0,0x0, 0x1d,0xb1,0x9e,0xd, 0x9e,0x8b,0xe2,0x0, 0xce,0xb, 0xe8,0x7a,0x3c,0xa4, +0xe2,0x0, 0xce,0x8a,0xf8,0x40,0x3a,0x6a,0xe0,0x0, 0x2, 0xee,0xe0,0x2, 0x1e,0x5d, +0xe0,0x0, 0x14,0x51,0x8e,0x8c,0xe2,0x0, 0xce,0x81,0xe0,0x1, 0x1, 0xa, 0xe8,0x8, +0x3c,0x34,0xe0,0x0, 0x14,0xe4,0x7f,0x3, 0xf0,0x0, 0x78,0x81,0xf0,0x0, 0x79,0x87, +0xf0,0x0, 0x7a,0x82,0xe0,0x2, 0xdb,0x4, 0xf0,0x0, 0x61,0x87,0x67,0x3, 0xf0,0x40, +0x39,0xf8,0xf0,0x0, 0x60,0x81,0xf0,0x0, 0x62,0x82,0xe7,0xfe,0x5, 0x2d,0x65,0x90, +0x17,0x80,0x66,0xf, 0xe1,0x3a,0x3d,0x8f,0xf0,0x40,0x3d,0x7c,0xe7,0xfe,0x5, 0x9e, +0xc2,0x82,0xf0,0x40,0x3d,0xf5,0xc2,0x1, 0xe7,0xfe,0x1, 0xa4,0xf0,0x0, 0x65,0x8b, +0x17,0x81,0xf0,0x0, 0x60,0xc, 0xe8,0xf, 0x3f,0x9b,0xf0,0x40,0x3d,0xef,0xf0,0x0, +0xc0,0x2, 0xf2,0x1, 0xc5,0xff,0xf0,0x0, 0x66,0x89,0xe7,0xfd,0x0, 0xb9,0x67,0x8a, +0xf8,0x0, 0xad,0x8d,0xf0,0x40,0x3d,0xff,0xe7,0xfd,0x4, 0xc3,0xe0,0x0, 0xc0,0x40, +0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0xe8,0x0, 0x8e,0x8d,0x3f,0xec,0xe2,0x1, 0xc7,0xff, +0x3f,0xfd,0x3d,0xec,0x5, 0x82,0x3d,0xed,0xea,0x4f,0x7e,0x98,0xe9,0xff,0xc6,0xff, +0xe2,0x1, 0xc5,0xff,0xa7,0x8d,0x0, 0x8a,0xe8,0x0, 0x8e,0xd, 0x3e,0x7d,0x1, 0x9, +0xc7,0x81,0x3b,0x7f,0xe7,0xfd,0x1, 0x68,0x8e,0x4, 0x8e,0x8f,0x3e,0xfc,0x1, 0xf5, +0xad,0x8f,0x0, 0xf7,0xe0,0x2, 0x1d,0xdd,0xe0,0x0, 0x14,0x51,0x8e,0x8b,0xe2,0x0, +0xce,0x81,0xe7,0xff,0x1, 0x96,0x15,0x80,0x16,0xbc,0x7d,0x90,0x66,0xf, 0x2e,0x16, +0x16,0x3, 0xe1,0x2c,0x3e,0x23,0x26,0x16,0x65,0x88,0x25,0x94,0x16,0xb4,0x27,0x85, +0x67,0x8d,0x14,0x1e,0xe7,0xff,0x2f,0x85,0x3c,0x6d,0xe7,0xff,0x0, 0x82,0xf8,0x40, +0x39,0x74,0xe8,0x74,0x3d,0x22,0xe7,0xfe,0x0, 0xe3,0x16,0xb2,0x0, 0xf1,0x3e,0xe8, +0x0, 0xe6,0x16,0x4, 0xe1,0x23,0x3e,0x23,0x21,0x85,0x66,0x8, 0x26,0x3, 0x16,0xba, +0x0, 0xe7,0xe2,0x0, 0xc9,0x2, 0x14,0x3c,0xe7,0xfe,0x5, 0xeb,0x0, 0xe1,0x0, 0x0, +0x8, 0xb7,0xf8,0x0, 0xc, 0x38,0xe0,0x0, 0x1f,0x8e,0xf0,0x0, 0x8c,0xf, 0xf0,0x1, +0x24,0x5c,0xe0,0x0, 0x1e,0xd, 0xe0,0x2, 0x1f,0xfd,0x8b,0xc, 0x8a,0xdf,0x89,0x1c, +0xe0,0xf, 0x3b,0x35,0xe0,0x1, 0x1f,0x72,0x14,0xff,0xa2,0xe, 0x3f,0x92,0xe8,0x9, +0x3c,0x98,0x37,0xa1,0xe2,0x1, 0xc4,0xff,0x3f,0x94,0x34,0xa1,0x94,0xf, 0x39,0xe6, +0x3b,0xe2,0x3c,0x9c,0xe0,0x0, 0x0, 0xc5,0x3e,0x79,0xe0,0x0, 0x1, 0x50,0x8f,0x2c, +0x8f,0xbc,0xe0,0xd, 0x3f,0x35,0x3d,0x6e,0x3e,0x9f,0x36,0xa1,0x3e,0x94,0x96,0x8d, +0xe4,0xb, 0x37,0x28,0x3e,0xf8,0xe0,0x6d,0x3a,0x28,0x3c,0x6d,0x3e,0xe6,0xe2,0x1, +0xc6,0xff,0x3f,0x7d,0x5, 0x82,0x3d,0x66,0x3e,0xe3,0xe4,0xb, 0x35,0xc8,0xe2,0x1, +0xc6,0xff,0x3d,0xfd,0x3b,0x6a,0xe2,0x1, 0xc3,0x7f,0x3, 0x82,0x3f,0x63,0x39,0xee, +0x3f,0x62,0xe2,0x1, 0xc7,0x7f,0x3f,0xfe,0xe2,0x1, 0xc1,0xff,0x3d,0xef,0xe4,0xd, +0x37,0xa8,0x5, 0x82,0x3d,0xe2,0x3f,0x67,0xe4,0xd, 0x36,0xc8,0xe2,0x1, 0xc7,0x7f, +0x3e,0xfe,0x39,0x6b,0xe2,0x1, 0xc1,0x7f,0x3, 0x82,0x3f,0xe7,0xe0,0xe, 0x39,0xa6, +0xe2,0x0, 0xcf,0x7, 0x3b,0xef,0xe2,0x1, 0xc3,0xff,0xc6,0x2, 0x2, 0x7, 0xe0,0xf, +0x3b,0xa2,0xe2,0x0, 0xcf,0x87,0xe7,0xff,0x5, 0x39,0xe0,0x2, 0x1f,0xc1,0xe0,0x3, +0x17,0x74,0xb7,0xf, 0xf8,0x0, 0xc, 0x28,0xb, 0xe1,0x14,0x83,0x34,0x21,0xe0,0x2, +0xd9,0xff,0x3b,0xf2,0x15,0x80,0xe0,0x43,0x3c,0x18,0x3e,0xeb,0x4, 0xa1,0x39,0xf6, +0x4, 0x9a,0x3f,0x66,0xe0,0xf, 0x3f,0x35,0x16,0x1, 0x3f,0x92,0x37,0xa1,0x3f,0x94, +0x97,0x8f,0x3e,0x1d,0x3f,0xf8,0xc7,0x1, 0x3f,0xec,0xe2,0x1, 0xc7,0xff,0x16,0x1, +0xe2,0x1, 0xc7,0x7f,0x3e,0x1b,0xe0,0x6d,0x3a,0x2f,0x3f,0x73,0x3d,0xec,0xe2,0x1, +0xc5,0xff,0x5, 0xe9,0xc1,0x1, 0xe2,0x1, 0xc1,0x7f,0x39,0x77,0x5, 0xe1,0xe0,0x2, +0x1f,0xdd,0x8f,0x8f,0xe2,0x0, 0xcf,0x82,0x5, 0xa0,0xe0,0x2, 0x1f,0x41,0x9f,0x8e, +0xe2,0x7, 0xcf,0xe7,0x2, 0x83,0xc7,0x81,0xb7,0x8e,0xf7,0xff,0x24,0x45,0xe4,0x0, +0xc6,0x83,0xe0,0xf, 0x35,0xa1,0x3e,0xff,0x5, 0x20,0xe0,0x0, 0x1f,0x31,0xe0,0x2, +0x1e,0xc1,0x9f,0x8e,0x16,0x0, 0xe2,0x3, 0xcf,0xf3,0xb6,0xd, 0xe7,0xff,0x2, 0xb4, +0xc7,0x81,0xb7,0x8e,0xe7,0xff,0x0, 0xb0,0x1, 0x69,0xe0,0x2, 0x1f,0x41,0x9f,0x8e, +0xe2,0x0, 0xcf,0x82,0x5, 0x83,0xc7,0xfe,0xb7,0x8e,0xe0,0x0, 0x1f,0x31,0x9f,0x8e, +0xe2,0x3, 0xcf,0xf3,0x2, 0xdb,0x0, 0xd8,0xe0,0x2, 0x1f,0x41,0x9f,0x8e,0xe2,0x7, +0xcf,0xe7,0x2, 0x83,0xc7,0x82,0xb7,0x8e,0x17,0x0, 0xe0,0x0, 0x1f,0xb1,0xb7,0xf, +0xf8,0x0, 0xc, 0x28,0xb, 0xe1,0xe8,0x40,0x3d,0xe8,0xe8,0x40,0x3e,0xe8,0xe7,0xff, +0x0, 0xb8,0xe0,0x2, 0x1f,0xc1,0x9c,0xf, 0x17,0x8a,0xe1,0x28,0x3c,0x1f,0x38,0x82, +0x8, 0xb7,0xf8,0x0, 0xc, 0x3e,0xc0,0x7c,0xe0,0x2, 0x1b,0xc3,0x17,0x80,0xe0,0x7, +0xaf,0xc7,0xe0,0x2, 0x1f,0xdd,0xe0,0x0, 0x1a,0xe, 0x8b,0xf, 0xdf,0x2, 0x8f,0x84, +0xe2,0x0, 0xcf,0x81,0xe0,0x2, 0x5, 0xf4,0x14,0x3, 0xdd,0xf, 0xeb,0xe6,0x7f,0x90, +0x7f,0x81,0xe0,0x2, 0x23,0x2b,0xe2,0x0, 0xcb,0x1, 0x5, 0x86,0x8f,0x8f,0xe2,0x0, +0xcf,0x86,0xe0,0x2, 0x2, 0xa3,0xf0,0x0, 0x88,0x84,0xe0,0x0, 0x1a,0x8d,0xe8,0x40, +0x3b,0x71,0xe0,0x2, 0x1, 0x70,0xe0,0x7, 0x8f,0xd7,0xfa,0x13,0x7c,0x11,0xf0,0xf, +0x38,0xaf,0xc7,0x81,0x3b,0x7f,0xe0,0x3, 0x1, 0x1a,0xe0,0x2, 0x1f,0xbb,0x8f,0x8f, +0xe8,0x0, 0x8f,0x8, 0xf0,0xf, 0x38,0xaf,0xc7,0x81,0x3f,0x7f,0x14,0x3, 0xe0,0x2, +0x1, 0x76,0xf0,0x3, 0x20,0x84,0x16,0x7f,0xe8,0xc, 0x3e,0x11,0xf0,0x3, 0x1c,0x85, +0xe2,0x1, 0xc6,0x7f,0xe0,0x0, 0xc6,0x1, 0xe8,0xc, 0x3e,0x19,0xf8,0x40,0x3b,0xe9, +0xf0,0x0, 0x13,0x0, 0xe9,0x80,0x8f,0x17,0xe8,0x40,0x3f,0xe6,0xe2,0x1, 0xc7,0xff, +0x3f,0x7f,0x3e,0xee,0x3, 0x83,0xe8,0x40,0x3e,0xe6,0xe8,0x40,0x3e,0x77,0xf0,0x40, +0x3b,0x6d,0xf2,0x1, 0xc3,0x7f,0x1, 0xef,0xf8,0x40,0x38,0xe6,0xf0,0x2, 0x23,0x5f, +0xe0,0x1, 0x1f,0xf2,0xfb,0xe6,0x7e,0x12,0xfb,0xe6,0x7d,0x91,0xf0,0x0, 0xa2,0xf, +0xe0,0x2, 0x1f,0xfd,0xf8,0x0, 0x89,0xc, 0xf8,0x0, 0x88,0xb, 0xf0,0x0, 0x10,0x80, +0xf0,0x0, 0x8a,0xdf,0xe8,0x40,0x3b,0x62,0xe8,0x40,0x38,0xe0,0x16,0x1, 0xf0,0x1, +0x11,0xff,0xf8,0x40,0x3d,0x61,0x3d,0x62,0xe0,0x0, 0x1f,0xd, 0xe8,0x40,0x3f,0xe9, +0xf8,0x40,0x3e,0xea,0x15,0x80,0x0, 0x85,0xf0,0x40,0x3b,0xff,0xc7,0x2, 0x1, 0x2b, +0xe1,0x80,0x8e,0x9f,0x3e,0xfc,0x1, 0xf9,0x8c,0x8e,0xc5,0x81,0xe2,0x1, 0xc5,0xff, +0xe2,0x0, 0xcd,0x81,0x8c,0x1e,0xe8,0xd, 0x3c,0xb5,0xe0,0x6a,0x39,0x28,0x3e,0x98, +0xe0,0x63,0x39,0x29,0xf2,0x0, 0xcb,0x1, 0x36,0xa1,0xe8,0xd, 0x3e,0x94,0xe0,0x1, +0x1, 0x25,0x96,0x8d,0xc7,0x2, 0xe8,0x40,0x3e,0xfd,0xe0,0x6a,0x3a,0x28,0xe8,0x40, +0x3e,0xfd,0xe0,0x63,0x3a,0x29,0xe8,0x40,0x3e,0xfd,0xe0,0x7d,0x3a,0x2d,0xf0,0x40, +0x3b,0xff,0x1, 0xd7,0x25,0x8a,0xf0,0xf, 0x30,0xa1,0x3f,0x97,0xf0,0x0, 0xc0,0x81, +0xa9,0x8f,0xf2,0x1, 0xc0,0xff,0xad,0x1f,0xc6,0x1, 0xe2,0x1, 0xc6,0x7f,0xe8,0x40, +0x3e,0x76,0xe7,0xff,0x5, 0xbb,0xf2,0x0, 0xc8,0x81,0xf0,0xa, 0x30,0xa1,0xe0,0x1, +0x1, 0x6b,0x17,0xff,0xe8,0x0, 0xaf,0x8c,0xe8,0x0, 0xaf,0x8b,0xe0,0x2, 0x1c,0xc3, +0xe0,0x0, 0x1c,0xd, 0xf0,0x7, 0xa8,0xc7,0xf0,0x0, 0xa8,0x84,0xe0,0x2, 0xd9,0xa, +0x88,0x84,0xe8,0x0, 0xa8,0x88,0xe0,0x1, 0x20,0xdf,0x12,0x0, 0xc2,0x1, 0xe2,0x1, +0xc2,0x7f,0x38,0xf4,0xe0,0x0, 0x1b,0xd, 0xe0,0x0, 0x15,0xe4,0xe0,0x0, 0x1, 0x4a, +0x8c,0x86,0x8d,0x16,0x3b,0xe9,0x39,0xea,0xe0,0x40,0x3e,0x64,0xe0,0xf, 0x36,0x21, +0xe0,0xe, 0x3a,0x9f,0x8e,0x8e,0x8f,0x1e,0xe0,0x8, 0x3b,0xad,0xe2,0x0, 0xcc,0x0, +0xe0,0xf, 0x3c,0xad,0x3e,0xa9,0xe0,0x8, 0x39,0xae,0xe2,0x1, 0xc6,0xff,0xe2,0x1, +0xc7,0xff,0xe0,0x6f,0x3d,0x2d,0xe2,0x0, 0xcc,0x0, 0xe0,0xd, 0x3d,0x2e,0x3f,0x2a, +0xe2,0x1, 0xc7,0x7f,0xe2,0x1, 0xc6,0xff,0xe0,0x6d,0x3d,0x2e,0x3c,0x6d,0x39,0x6f, +0xe2,0x1, 0xc1,0x7f,0xe2,0x1, 0xc4,0x7f,0x39,0x78,0x3f,0x6d,0xc6,0x1, 0x3e,0xeb, +0xe2,0x1, 0xc6,0xff,0xe2,0x1, 0xc6,0x7f,0x3, 0x82,0x3f,0xee,0x3f,0x6f,0xe2,0x1, +0xc7,0x7f,0x3f,0x7d,0x5, 0x82,0x3f,0xeb,0x38,0xfc,0x3d,0xef,0xe2,0x1, 0xc5,0xff, +0x1, 0xc6,0xc2,0x1, 0xe2,0x1, 0xc2,0x7f,0x38,0xf4,0xc3,0x2, 0xe7,0xff,0x1, 0xba, +0xe2,0x0, 0xcd,0xe4,0x17,0x80,0xe0,0x6f,0x39,0xab,0x3d,0xef,0x67,0x1, 0xad,0x8e, +0xc0,0x4, 0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0xfa,0x13,0x7c,0x11,0xf0,0x0, 0x88,0x84, +0xe0,0x0, 0x1a,0x8d,0xe7,0xfd,0x0, 0xf7,0xf2,0x1, 0xc9,0x7f,0xe7,0xfe,0x1, 0x5b, +0xe0,0xd, 0x3c,0xa6,0xe0,0x43,0x3e,0x9d,0xe2,0x0, 0xce,0x80,0xf0,0x2, 0x39,0x29, +0xe8,0xd, 0x3c,0xa2,0xe2,0x1, 0xc1,0x7f,0xe0,0x1e,0x3c,0x21,0xe2,0x1, 0xc6,0xff, +0xe0,0x6d,0x3d,0x22,0xf8,0x43,0x3f,0x1e,0x39,0x6d,0xf2,0x0, 0xcf,0x0, 0xe8,0xd, +0x3c,0x20,0xf0,0x1e,0x38,0x28,0xe2,0x1, 0xc6,0xff,0xf2,0x1, 0xc7,0x7f,0xe8,0x6d, +0x3d,0x2e,0x3e,0x92,0xe2,0x1, 0xc6,0xff,0xe8,0x40,0x3e,0xf3,0xe8,0x40,0x39,0x63, +0xe0,0x62,0x3c,0xad,0xe8,0x40,0x3e,0xf3,0xe0,0x6a,0x3c,0xa8,0xe8,0x40,0x3e,0xf3, +0xf0,0x40,0x39,0xe2,0xe0,0x63,0x3c,0xa9,0xe7,0xfe,0x0, 0x88,0xeb,0xe6,0x7d,0x90, +0xea,0x13,0x7e,0x11,0xeb,0xe6,0x7e,0x92,0xeb,0xe6,0x7f,0x11,0x15,0x7f,0xe0,0x0, +0x14,0xe4,0xac,0x8b,0xaf,0x8c,0xad,0xd, 0xad,0xe, 0xc0,0x4, 0xf8,0x0, 0xf, 0x28, +0xb, 0xe1,0xe0,0x0, 0x1f,0x85,0x8f,0x8f,0x27,0x96,0xe0,0x10,0x8f,0x25,0xe2,0x0, +0xcf,0x10,0x2, 0xae,0xc7,0xff,0xe2,0x1, 0xc7,0xff,0xe4,0x0, 0xc7,0x8a,0x3f,0x65, +0x3f,0x95,0x0, 0x86,0xe0,0x10,0x8e,0xae,0xe2,0x0, 0xce,0x90,0x2, 0xa1,0x3f,0x7f, +0xc7,0xa, 0x1, 0xf9,0xfa,0x13,0x7c,0x11,0x14,0x1, 0xdb,0x6f,0xf0,0x0, 0x88,0x84, +0xe7,0xfd,0x0, 0x89,0x87,0x7, 0x87,0x97,0xe8,0x0, 0xaf,0xc, 0xe8,0x0, 0xaf,0x8b, +0xe7,0xfe,0x0, 0x96,0x3d,0xe1,0xe7,0xfe,0x0, 0xfb,0xfb,0xe6,0x7e,0x12,0xfb,0xe6, +0x7d,0x91,0xe8,0x40,0x3d,0x61,0xe7,0xfe,0x0, 0x86,0x14,0x1, 0x0, 0xe7,0xfa,0x13, +0x7c,0x11,0x14,0x3, 0x0, 0xe3,0x0, 0x0, 0xe0,0x1, 0x1f,0x8e,0x8f,0x8f,0xe0,0x1, +0x27,0x82,0x8, 0xb4,0xf7,0xff,0x11,0x7f,0xf0,0x12,0x39,0x1f,0xf0,0x0, 0x12,0x1, +0xf2,0x1, 0xc1,0x7f,0xf0,0x14,0x3a,0x19,0xf0,0x0, 0x10,0xa, 0xe0,0x2, 0x1a,0x5e, +0xf4,0x0, 0xc1,0xa, 0xf2,0x1, 0xc2,0x7f,0x11,0xa, 0xf0,0x10,0x38,0x39,0xe8,0x2, +0x39,0x34,0x10,0xff,0xf0,0x1, 0xc1,0x52,0xf0,0x10,0x38,0x14,0x38,0x9a,0xf0,0x2, +0x19,0xd9,0xf0,0x12,0x39,0x14,0x39,0x14,0xe0,0x1, 0x11,0xff,0xf0,0x0, 0xc0,0x4, +0x38,0xa9,0x3c,0xfa,0x3, 0xa4,0xe8,0x0, 0x8e,0x43,0xe8,0x0, 0x8f,0x80,0xf8,0x40, +0x38,0xe3,0xe0,0x2f,0x3f,0x8c,0xf0,0x40,0x3b,0xe9,0xe1,0x35,0x3e,0x3, 0x27,0x83, +0xf0,0x0, 0x2a,0x9c,0xf0,0x40,0x3b,0x61,0xf2,0x1, 0xc3,0x7f,0x3e,0xe2,0x17,0x0, +0x0, 0x89,0x8f,0xcd,0xc7,0x1, 0xe0,0x2f,0x3f,0x8c,0xe8,0xf, 0x3f,0xd5,0xc6,0x8a, +0x2f,0x8c,0xe8,0x40,0x3f,0x76,0xe8,0x17,0x3f,0x14,0x1, 0xf4,0xf0,0x0, 0xc1,0x8a, +0xf8,0x40,0x39,0xf2,0x1, 0xd7,0xa, 0x61,0x17,0x8a,0x3f,0xbc,0xf4,0x0, 0xc3,0x8a, +0x3f,0x94,0xe0,0x2, 0xc7,0xac,0x8f,0x8f,0x2f,0x83,0xe8,0x11,0x3a,0x17,0x17,0xa, +0x3f,0x38,0xe8,0x0, 0x8f,0xc1,0x3f,0x1b,0xaf,0xce,0xe8,0xf, 0x3a,0x17,0xe8,0x0, +0x9e,0x91,0xe8,0x0, 0x9e,0x1, 0xb6,0x9e,0xf0,0x0, 0xc1,0x8a,0xb6,0xe, 0xf8,0x40, +0x39,0xf2,0x8e,0xdf,0xc4,0x1, 0xae,0xde,0xe2,0x1, 0xc4,0x7f,0x8e,0xef,0xae,0xee, +0x8e,0xff,0xae,0xfe,0xe0,0x1, 0x8f,0x8f,0xe0,0x1, 0xaf,0x8e,0xe7,0xff,0x1, 0xab, +0x0, 0xd3,0x38,0x82,0xe0,0x2, 0x1f,0xdd,0xe0,0x2, 0x1f,0x52,0x8f,0x8f,0x8f,0xe, +0x2f,0x9a,0x2f,0x19,0xe0,0x0, 0x1f,0xe, 0x8e,0x8e,0xe0,0x0, 0x1f,0x13,0x8f,0xe, +0x3e,0xfe,0x5, 0x90,0xe0,0x2, 0x1f,0x51,0xe0,0x2, 0x1e,0xd0,0x8e,0xe, 0xe0,0x2, +0x1f,0x5f,0xae,0xd, 0x8e,0xe, 0x3e,0x7f,0x2, 0xa2,0xea,0x22,0x7f,0xba,0x17,0x0, +0xaf,0xf, 0x38,0x82,0xe0,0x0, 0x1e,0x8e,0xe0,0x0, 0x1d,0x8d,0x8e,0xd, 0xe0,0x0, +0x1e,0x93,0x8e,0x8d,0x3e,0xfc,0xe0,0x2, 0x1e,0xd0,0x3, 0x86,0x15,0x1, 0xe2,0x0, +0xce,0x1, 0xad,0xd, 0x1, 0x1a,0xe0,0x2, 0x1e,0x51,0x8e,0xc, 0x3e,0x7e,0x3, 0xe0, +0xaf,0xd, 0xe0,0x2, 0x1f,0x5f,0x8e,0xe, 0x3e,0x7f,0x5, 0xe0,0xea,0x22,0x7e,0x3a, +0x8d,0x8c,0x8e,0x8d,0x3e,0xfb,0x5, 0xde,0xaf,0x8e,0xc5,0x81,0xe0,0x0, 0x1f,0xbe, +0xad,0x8c,0x17,0x1, 0xaf,0xf, 0x38,0x82,0x8d,0xb, 0xe2,0x0, 0xcd,0x1, 0x5, 0x87, +0xe0,0x2, 0x1e,0x7d,0x8e,0x4c,0xc6,0x7e,0x3e,0x7a,0x2, 0x5e,0x8d,0x9b,0xe2,0x0, +0xcd,0x81,0x5, 0x87,0xe0,0x2, 0x1e,0x7d,0x8e,0x5c,0xc6,0x7e,0x3e,0x7b,0x2, 0x54, +0x16,0x0, 0xae,0xd, 0x0, 0xd1,0xe0,0x2, 0x1f,0xdd,0xe0,0x2, 0x1e,0x5f,0x8d,0x8f, +0x8f,0xc, 0xe0,0x0, 0x1e,0xbe,0x17,0x80,0x3f,0x7b,0xaf,0x8d,0x3, 0x9e,0xe0,0x2, +0x1f,0xd2,0xe0,0x2, 0x1f,0x51,0x8f,0x8f,0x8f,0xe, 0xe0,0x2, 0x1d,0x50,0x3f,0xfe, +0x5, 0x9b,0xaf,0x8a,0x2f,0x84,0x17,0x81,0xaf,0x8a,0x17,0x81,0xea,0x22,0x7f,0x3b, +0x8d,0xe, 0x3d,0x7f,0x3, 0x94,0xad,0x8c,0x17,0x81,0xe0,0x2, 0x1e,0x4f,0xc5,0x1, +0xaf,0x8c,0xad,0xe, 0xaf,0x8d,0x38,0x82,0xea,0x22,0x7f,0x3b,0xaf,0x8e,0xe0,0x2, +0x1f,0x4f,0xaf,0x8e,0x38,0x82,0x3f,0xee,0xaf,0xa, 0x0, 0xe5,0x17,0x80,0xaf,0x8e, +0x38,0x82,0xe0,0x3, 0x1f,0x17,0x8f,0x8e,0xe2,0x1, 0xcf,0xf9,0x2, 0x83,0xc7,0x81, +0xaf,0x8e,0x38,0x82,0xe0,0x3, 0x1c,0x3d,0xe0,0x4, 0x15,0x6a,0x14,0x80,0xe0,0x4e, +0x0, 0xa3,0x0, 0x0, 0xe0,0x3, 0x1c,0xbd,0xe0,0x2, 0x1f,0x5f,0x8d,0x9, 0x8c,0xe, +0xe0,0xf, 0x3c,0x9a,0x17,0x0, 0xaf,0x2f,0x24,0x1b,0x15,0xff,0x3d,0x98,0xe2,0x1, +0xc5,0xff,0xc5,0x81,0x17,0x28,0x3f,0x3a,0xe4,0x0, 0xc5,0x8a,0xe0,0x2, 0x1f,0xde, +0x3f,0x19,0x3d,0x9f,0x96,0xf, 0x96,0x9f,0xc7,0x8a,0xe0,0x1, 0xb6,0x1e,0x3f,0xfb, +0xc7,0x4, 0xe0,0x1, 0xb6,0x8e,0x1, 0xf7,0xe0,0xf, 0x3c,0x9a,0xac,0x2f,0xc5,0x1, +0xe2,0x1, 0xc5,0x7f,0xe2,0x0, 0xcd,0xf, 0x1, 0x18,0xad,0x9, 0xe0,0x0, 0x16,0x0, +0xe0,0x3, 0x1f,0x3c,0xe0,0x3, 0x1d,0x3b,0xe1,0x80,0x8e,0x9e,0x3f,0xec,0xe2,0x1, +0xc7,0xff,0x3e,0xff,0x3d,0xed,0x3, 0x82,0x3d,0xec,0x3f,0x7a,0x3e,0x6b,0xe2,0x1, +0xc6,0x7f,0x1, 0xf3,0xae,0x19,0x38,0x82,0x17,0x80,0xaf,0x89,0x0, 0xe8,0xf0,0x3, +0x1b,0x3c,0xf0,0x3, 0x1a,0x3a,0xf0,0x3, 0x19,0x3b,0xf0,0x3, 0x19,0xbd,0xf0,0x0, +0x12,0x80,0xf0,0x0, 0x13,0xcf,0xe9,0x80,0x8f,0x96,0x27,0xb5,0x15,0x7f,0x3d,0x1f, +0xe2,0x1, 0xc5,0x7f,0xe8,0xa, 0x3d,0x15,0x35,0x22,0xc5,0x16,0xe8,0xa, 0x3d,0x13, +0xe8,0x40,0x3d,0xe4,0x0, 0x83,0x3d,0x7b,0x1, 0x26,0x9e,0xb, 0x9e,0x9b,0xe0,0xf, +0x3c,0x2c,0xe3,0xff,0xc7,0xff,0xf0,0x43,0x38,0x9f,0xe0,0xe, 0x3c,0xad,0xf2,0x0, +0xc8,0x80,0xe3,0xff,0xc7,0x7f,0x3e,0x28,0xf0,0x43,0x38,0x9e,0xe3,0xff,0xc6,0x7f, +0xe0,0x6f,0x3d,0x2c,0x3e,0xa9,0xf2,0x0, 0xc8,0x80,0xe3,0xff,0xc6,0xff,0xe0,0x6e, +0x3d,0x2d,0xf1,0x2f,0x3b,0xaf,0xc5,0x84,0xf1,0x2e,0x3b,0xae,0x27,0xdd,0x27,0x5c, +0x14,0x1, 0x38,0x82,0xf8,0x40,0x3b,0x72,0xf0,0x0, 0xc2,0x28,0xf0,0x0, 0xc2,0x8a, +0x1, 0xc3,0x14,0x0, 0x38,0x82,0x0, 0x0, 0x8, 0xb7,0xf8,0x0, 0xc, 0x3e,0xe1,0xfd, +0xc0,0x60,0xe0,0x2, 0x1e,0xdf,0xea,0x22,0x7f,0xb8,0xf0,0x0, 0x8d,0xd, 0x7f,0x8b, +0xf0,0x0, 0x25,0xf, 0x97,0x8f,0xc7,0x81,0xe3,0xff,0xc7,0xff,0xe2,0x0, 0xcf,0xe4, +0xe0,0x3, 0x5, 0xc1,0x66,0x8b,0xe0,0x0, 0x17,0xe4,0xb7,0x8d,0x0, 0x83,0xf0,0x0, +0xb5,0xf, 0xe0,0x2, 0x1f,0xc0,0xe0,0x4, 0x8f,0xdf,0xe2,0x0, 0xcf,0x81,0xea,0x22, +0x7f,0xb6,0x7f,0x8a,0xe0,0x8, 0x1, 0xc, 0x8f,0x8f,0xe0,0x3, 0x2f,0xa7,0xe0,0x2, +0x1f,0xcf,0x8f,0x8f,0x7f,0x87,0xe0,0x3, 0x2f,0x9c,0xe0,0x0, 0x1f,0xaa,0xe0,0x2, +0x1e,0xe2,0x9e,0xf, 0x9f,0xd, 0x9e,0xf, 0x9d,0x8f,0xe0,0xe, 0x3e,0x2e,0xe2,0x1, +0xc7,0x7f,0xe0,0x1, 0x1f,0xe8,0x7f,0x5, 0x8e,0xf, 0x67,0x5, 0xe2,0x0, 0xce,0x2, +0xc7,0x2, 0x66,0x5, 0xe2,0x1, 0xc7,0x7f,0xb5,0x8d,0x17,0x80,0xe0,0x2, 0x1e,0xc9, +0xe0,0x6c,0x39,0x2e,0x17,0x0, 0x7e,0x5, 0xaf,0xd, 0x7f,0xa6,0x7f,0xa7,0x7f,0xa8, +0x7f,0xa9,0x7f,0xaa,0x7f,0xab,0x7f,0xac,0x7f,0xad,0x7f,0xae,0x7f,0xaf,0xf0,0x2, +0x2d,0x7e,0xe0,0x1, 0x1f,0x8e,0x89,0xf, 0x7f,0x91,0xe0,0xb, 0x21,0x66,0x11,0xff, +0xea,0x21,0x7f,0x14,0x39,0x92,0xf0,0x40,0x3c,0xee,0xea,0x22,0x7f,0xac,0xe2,0x1, +0xc1,0xff,0xea,0x22,0x7e,0xa0,0xea,0x22,0x7d,0xc, 0xea,0x21,0x7d,0xf8,0xea,0x21, +0x7e,0x8, 0xc1,0x81,0xe8,0x40,0x3f,0x69,0x39,0x9f,0x14,0x80,0x14,0x0, 0x12,0xff, +0xe0,0x0, 0x12,0x1, 0xe1,0x80,0xac,0x9f,0xc7,0xa, 0x3f,0xf3,0xe0,0x40,0xaa,0xee, +0xe1,0x80,0xac,0x9d,0xe1,0x80,0xb4,0x1a,0xe1,0x80,0xb4,0x1b,0xe1,0x80,0xaa,0x1c, +0x1, 0xf2,0xe0,0x0, 0x1f,0x51,0x7f,0x17,0xac,0x8e,0xf0,0xb, 0x25,0x3c,0x67,0x85, +0x66,0x85,0x37,0xa3,0xc7,0x94,0x7f,0x98,0xea,0x22,0x7f,0xa0,0x3b,0x6f,0xea,0x22, +0x7f,0x8c,0x7f,0x89,0xea,0x22,0x7f,0xac,0xe4,0x0, 0xc6,0x9e,0xf0,0x0, 0x63,0x7, +0x7f,0x8d,0xea,0x21,0x7f,0x88,0xf0,0x2, 0x1c,0x5e,0x7e,0x99,0x7f,0x93,0xe8,0x40, +0x3a,0x66,0xf8,0x40,0x3f,0x69,0x17,0x8a,0x3f,0xb4,0xf0,0xe, 0x3c,0x1f,0x81,0xce, +0xe2,0x0, 0xc1,0x8f,0x39,0xf2,0x3, 0xbd,0xf0,0x0, 0x14,0x8a,0xf0,0x19,0x3c,0xb3, +0xf8,0xb, 0x3c,0x19,0xe0,0x2, 0xc5,0xac,0x8c,0xb, 0xe2,0x0, 0xcc,0x1, 0xe0,0x4, +0x1, 0x28,0x64,0x89,0xe0,0x5, 0x31,0xa1,0x3c,0x95,0x95,0x89,0xc5,0x81,0xb5,0x89, +0x2c,0x10,0xea,0x20,0x7d,0xe0,0xea,0x21,0x7d,0x78,0xe0,0x9, 0x31,0xa2,0xf0,0x0, +0x93,0xe, 0x93,0x9e,0x3d,0x99,0x3d,0x15,0xf0,0x0, 0xb3,0xb, 0xb3,0x9b,0xb4,0xa, +0x21,0x18,0xe8,0x0, 0x8a,0xce,0xe8,0x40,0x3d,0xee,0x39,0xf5,0x17,0x1, 0x1, 0x89, +0xe0,0xa, 0x0, 0xda,0xe0,0x1, 0x8e,0xeb,0xc5,0x8a,0x39,0xfd,0xe0,0x2, 0x1, 0x31, +0x3e,0xee,0xe2,0x1, 0xc6,0xff,0x3e,0xf2,0x3d,0x6e,0x17,0x1, 0x3f,0x1a,0x4, 0xf3, +0xc2,0x1, 0xe2,0x1, 0xc2,0x7f,0xf0,0x40,0x3d,0x74,0xe7,0xff,0x2, 0xb6,0x12,0x8a, +0x3a,0xb2,0xe0,0x1, 0x14,0x40,0xe0,0x2, 0x1c,0xde,0x3d,0x65,0x3c,0x10,0xf8,0x40, +0x3c,0xee,0xe0,0x2, 0xd5,0x4f,0xf0,0xb, 0x25,0x77,0xe0,0x2, 0x1f,0xfd,0x12,0x7f, +0xe8,0x4, 0x3a,0x1a,0x8b,0xcf,0x8b,0x5f,0xe2,0x1, 0xc2,0x7f,0xc2,0x1, 0x33,0xa6, +0x33,0x26,0xe4,0x0, 0xc2,0xa, 0xea,0x22,0x7e,0xa0,0xc3,0xe0,0xc3,0x60,0x39,0xed, +0xea,0x16,0x7c,0x4c,0xe0,0x2, 0x1c,0xde,0xe0,0x43,0x3b,0x97,0xe0,0x43,0x3b,0x16, +0xe8,0x4, 0x3a,0x18,0xf0,0x0, 0x13,0xa0,0x8d,0x49,0xe0,0xf, 0x39,0x9a,0x8d,0x8f, +0xe0,0x0, 0x25,0xc6,0xe0,0x0, 0x21,0x44,0xe8,0x40,0x3f,0x69,0x3e,0xe8,0x17,0x80, +0x0, 0x8d,0xe2,0x0, 0xcd,0x82,0xe0,0x1, 0x1, 0x37,0xc7,0x81,0x3e,0x6f,0xe2,0x1, +0xc6,0x7f,0x3e,0x72,0xc7,0xa, 0xc6,0x8a,0x3, 0xb2,0xe2,0x0, 0xcd,0x81,0x1, 0xf2, +0x8e,0x4e,0x3e,0x7a,0x1, 0xf3,0xe4,0x0, 0xc7,0x8a,0x35,0x22,0xe2,0x1, 0x7e,0x98, +0x3e,0x9a,0xf0,0xe, 0x3c,0x9f,0x96,0xd, 0x97,0xe, 0xe8,0x40,0x3e,0xe7,0x3f,0x1c, +0xe0,0x43,0x3f,0x1e,0xe2,0x0, 0xcf,0x1f,0x5, 0x5, 0x3b,0xfe,0x3e,0xee,0xe0,0x6d, +0x3d,0x27,0xe2,0x1, 0x7f,0x18,0xe8,0xf, 0x3f,0x99,0x3d,0x1e,0x97,0x1a,0x97,0x9f, +0xb6,0x89,0x3f,0x9e,0xe0,0x43,0x3f,0x9f,0xe2,0x0, 0xcf,0x9f,0xe8,0x40,0x3f,0x67, +0x5, 0x5, 0x3b,0x7f,0x3f,0x6f,0xe0,0x6e,0x3d,0x26,0xb7,0x19,0xc4,0x8a,0x3a,0x79, +0xe7,0xff,0x1, 0xb4,0xe8,0x40,0x3c,0xe9,0x3d,0x65,0xe0,0x2, 0xd4,0xdb,0xe0,0x1, +0x14,0xc0,0x3d,0x65,0x3c,0x90,0xe8,0x40,0x3c,0x69,0xe0,0x2, 0xd4,0xd3,0xe0,0x0, +0x21,0x40,0x12,0x7f,0x3a,0x12,0xe2,0x1, 0xc2,0x7f,0xc2,0x1, 0xe4,0x0, 0xc2,0xa, +0xe0,0x2, 0x1a,0xde,0xe8,0x40,0x3e,0xe9,0xe8,0x4, 0x3a,0x19,0xf7,0xff,0x13,0xfd, +0x13,0x80,0x13,0x0, 0xf7,0xff,0x13,0x7f,0x8f,0x4d,0x17,0x8a,0x3f,0xbe,0x3f,0x72, +0x3f,0x95,0xe0,0x2, 0xc7,0xac,0x3, 0xa1,0x87,0x8f,0xea,0x22,0x7c,0x2c,0xe8,0xf, +0x3f,0xd7,0xe2,0x1, 0xc7,0xfd,0xea,0x22,0x7c,0xa0,0xea,0x22,0x7d,0xc, 0xea,0x21, +0x7d,0xf8,0xea,0x21,0x7e,0x8, 0xe2,0x0, 0xcf,0x81,0xe0,0x3, 0x37,0x21,0x3c,0x1e, +0x3c,0x9e,0x3d,0x13,0x3d,0x93,0x3f,0x1c,0x1, 0x88,0xf0,0x0, 0xab,0x4d,0xab,0x88, +0xab,0x89,0xb3,0xa, 0xb3,0xb, 0xaf,0x8e,0xc6,0x8a,0x3e,0xf4,0x1, 0xd6,0xe0,0x2, +0x1f,0xdf,0x17,0x0, 0xf0,0x0, 0xad,0xf, 0xe0,0x3, 0x1f,0x97,0xaf,0xf, 0xe0,0x2, +0xc0,0x20,0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0x66,0x8a,0xc7,0xff,0xaf,0x8d,0xe7,0xfc, +0x0, 0xd8,0x67,0xb, 0xb7,0x8e,0xe7,0xfc,0x0, 0xc6,0xe0,0x2, 0x1f,0x5d,0x8f,0xe, +0xe0,0x6, 0x2f,0x44,0xe0,0x1, 0x1f,0xe, 0x89,0xe, 0x7f,0x11,0xe7,0xfd,0x29,0x1, +0xe0,0x0, 0x1e,0xd1,0xea,0x21,0x7f,0x14,0xf0,0x40,0x3c,0xee,0x7e,0x97,0xa9,0xd, +0xe7,0xfd,0x0, 0xa7,0x8e,0x4d,0x3e,0x7a,0xe7,0xfe,0x1, 0xc9,0xe4,0x0, 0xc7,0x8a, +0x35,0x22,0xe2,0x1, 0x7e,0x98,0x3e,0x9a,0xe0,0xe, 0x3c,0x1f,0x96,0xd, 0x97,0xe, +0xe8,0x40,0x3e,0xe7,0x3f,0x1c,0xe0,0x43,0x3f,0x1e,0xe2,0x0, 0xcf,0x1f,0xe0,0x5, +0x2, 0x46,0xe2,0x1, 0x7f,0x18,0x3f,0x98,0x3d,0x1e,0x97,0x1a,0x97,0x9f,0xb6,0x89, +0x3f,0x9e,0xe0,0x43,0x3f,0x9f,0xe2,0x0, 0xcf,0x9f,0xe8,0x40,0x3f,0x67,0xe7,0xfe, +0x5, 0x5e,0x3f,0xf6,0x3f,0x66,0xe0,0x6e,0x3d,0x2f,0xe7,0xfe,0x0, 0xd8,0x3a,0xe3, +0xf0,0x0, 0x15,0x8a,0xf0,0x1b,0x3d,0xba,0xe8,0x1d,0x3f,0x98,0xf8,0xe, 0x3f,0x1b, +0xe0,0x0, 0x11,0x78,0x9d,0x9e,0x9d,0xe, 0xe8,0x0, 0x9c,0x9d,0xe8,0x0, 0x9c,0xd, +0x39,0x35,0xea,0x17,0x7f,0x30,0xe0,0x1c,0x39,0x1e,0x7f,0x81,0xef,0xfc,0xdf,0x8, +0xe0,0xe, 0x32,0xa2,0xea,0x20,0x7d,0xe0,0x3d,0x6e,0x3d,0x1b,0x9d,0x9a,0x3b,0xe8, +0x9d,0xa, 0xe8,0x0, 0x9c,0x9d,0xe8,0x0, 0x9c,0xd, 0x7f,0x10,0xef,0xfc,0xde,0xf8, +0xea,0x21,0x7d,0xf8,0xe0,0x16,0x32,0xa1,0xe8,0xb, 0x3d,0x96,0x91,0xb, 0x7c,0x14, +0x39,0x17,0xe3,0xff,0xc1,0x7f,0xe2,0x1f,0xc9,0x20,0x67,0x81,0xe0,0x3, 0x2, 0xd9, +0xb1,0xb, 0xf8,0xa, 0x3f,0x1b,0x65,0x8d,0xe8,0x0, 0x9e,0x9d,0xf8,0x0, 0x9d,0x8d, +0x94,0xa, 0x95,0x1a,0x3d,0x95,0xf8,0x0, 0x8e,0xed,0x8c,0x8b,0xf0,0x8, 0x3d,0xa8, +0x65,0x89,0xe0,0xa, 0x3e,0xaa,0xe0,0x43,0x3c,0x18,0xe0,0x43,0x3d,0x1a,0xe8,0xb, +0x3d,0x96,0xf0,0x0, 0x7e,0x8e,0x7e,0x86,0x7c,0x15,0x7d,0x16,0xf0,0x0, 0x9e,0x8b, +0xe0,0x1, 0x24,0x9d,0x15,0x98,0x3d,0xb9,0xf7,0xff,0x12,0xe8,0xe8,0xb, 0x3d,0x9c, +0xf0,0x15,0x3a,0x9b,0xe0,0x0, 0x15,0x68,0xf8,0x15,0x8, 0x5, 0x3d,0x10,0xe2,0x0, +0xcc,0x81,0xf8,0xa, 0x8, 0x15,0xf0,0x0, 0x9b,0x5a,0xe0,0x8, 0x5, 0xf9,0xf7,0xff, +0x12,0xd0,0xf0,0x15,0x3a,0x9b,0xf8,0x15,0x8, 0x5, 0xe0,0x1, 0x15,0x80,0x3d,0x90, +0xf8,0xb, 0x8, 0x15,0xf8,0x40,0x3a,0xec,0x65,0x7, 0x14,0x0, 0xc5,0x1, 0xe8,0x0, +0x97,0x55,0xe2,0x1, 0xc5,0x7f,0x3c,0xfa,0x3c,0x1e,0xe3,0xff,0xc4,0x7f,0xf0,0x0, +0xc2,0x98,0x2, 0xf5,0x7f,0x81,0xf0,0x0, 0x7b,0x4, 0xe0,0x2, 0xd3,0x49,0x65,0x93, +0xe3,0xff,0xc4,0x7f,0x3d,0x95,0x8d,0x8b,0x7c,0xf, 0x67,0x81,0xf0,0x0, 0x63,0x4, +0xe0,0x0, 0x2d,0xf1,0x67,0x18,0xe8,0x40,0x3d,0xe6,0xf0,0x40,0x3b,0x7e,0x5, 0x5, +0x66,0x98,0x3e,0xf7,0xe0,0x4, 0x4, 0x79,0xe0,0x0, 0x4d,0x68,0x5c,0xb9,0xe4,0x0, +0xc5,0x5, 0x16,0x80,0x3c,0xfa,0x7e,0x92,0x5, 0xa, 0xe0,0x1, 0x4d,0x0, 0xe0,0x0, +0x5c,0xc5,0xe4,0x0, 0xc5,0x5, 0x3c,0xfa,0xe0,0x4, 0x2, 0x60,0x65,0x19,0x3d,0x1b, +0x3d,0x77,0xe0,0x3, 0x4, 0x38,0xe4,0x0, 0xc5,0x83,0xe0,0x2b,0x3b,0x9b,0xe0,0x4, +0x25,0xe2,0xe0,0x0, 0x15,0xe4,0xe1,0x2b,0x3b,0x9b,0xe0,0x4, 0x25,0xdc,0x66,0x92, +0xe0,0x6, 0x2e,0xdd,0xe0,0x1, 0x17,0x48,0x7f,0xc, 0xe0,0x3, 0x0, 0xa7,0xea,0x21, +0x7f,0x78,0xe0,0x7, 0x31,0xa1,0xea,0x22,0x7d,0x2c,0xea,0x22,0x7d,0x8c,0xea,0x21, +0x7f,0x88,0xc2,0x1, 0x14,0x80,0x3f,0x17,0xe2,0x1, 0xc2,0x7f,0x12,0x80,0x3d,0x13, +0xe0,0x16,0x3b,0x13,0x3d,0x97,0xf8,0x17,0x3f,0x19,0x3f,0x93,0xb4,0x8e,0xf0,0x40, +0x3d,0x74,0x17,0x7f,0xaa,0x8a,0xe8,0x0, 0xaa,0x86,0xb4,0x8b,0xe8,0x0, 0xaf,0x47, +0xac,0xf, 0xe7,0xfb,0x2, 0xa2,0xe7,0xfb,0x0, 0xec,0x65,0x93,0x7c,0x9a,0x3d,0x95, +0x8d,0x8b,0x7c,0x9b,0x7c,0x9c,0x7c,0x9d,0x7c,0x9e,0x7c,0x9f,0x7c,0xa0,0x7c,0xa1, +0x7c,0xa2,0x7c,0xa3,0x7c,0xa4,0x7c,0xa5,0xe0,0x3, 0x25,0xfb,0xf0,0x40,0x3b,0x69, +0x7c,0x8f,0xe0,0xa, 0x3b,0x15,0x67,0x7, 0x64,0x93,0xc5,0xff,0x3c,0x95,0x7f,0x12, +0xe0,0x0, 0x16,0xf8,0x17,0x1, 0x8d,0xa, 0xad,0x89,0xe0,0x1, 0x15,0xb4,0x7e,0x8c, +0x7f,0x8, 0xe0,0x1, 0x2d,0x51,0xe1,0x2b,0x3b,0x9b,0xe0,0x1, 0x25,0xc5,0x66,0x88, +0xe0,0x1, 0x26,0xc2,0xf0,0x0, 0x62,0x85,0xe0,0xb, 0x3b,0x15,0x14,0x81,0xac,0x8b, +0xf2,0x1, 0xc2,0xff,0xf0,0x40,0x3b,0x6a,0xe0,0x0, 0x15,0xe4,0xe8,0xb, 0x3d,0xb5, +0xe3,0xff,0xc5,0xfc,0xe2,0x5, 0xcd,0x80,0x5, 0x8a,0x66,0x8a,0x8d,0xd, 0xe2,0x0, +0xcd,0x0, 0xe0,0x5, 0x15,0x0, 0xe0,0x6a,0x39,0xab,0x3d,0xea,0x3d,0xf7,0xe0,0x1, +0x3, 0x98,0xf2,0x0, 0xce,0x82,0xe0,0x1, 0x5, 0x94,0xf8,0xb, 0x3c,0x19,0xe0,0x2, +0xc5,0xac,0xe0,0x9, 0x3b,0x15,0x14,0x0, 0x8d,0xb, 0xac,0x9, 0xe0,0x2, 0x2d,0x39, +0x15,0x3, 0xad,0xb, 0x15,0x8a,0x3d,0xb5,0x15,0x3, 0xe8,0xb, 0x3d,0x98,0xe0,0x2, +0xc5,0xad,0xad,0xb, 0xf0,0x0, 0x25,0x3d,0x16,0xff,0xe8,0xd, 0x3e,0x9a,0xf0,0x40, +0x3d,0x6d,0xf2,0x1, 0xc5,0x7f,0x15,0x8a,0xe8,0xb, 0x3d,0xba,0xe8,0xf, 0x3f,0x98, +0xe8,0xb, 0x3d,0x98,0xf0,0x0, 0x91,0xab,0xf0,0x0, 0x92,0x3b,0xf0,0x0, 0x90,0xb, +0xf0,0x0, 0x91,0x1b,0xf0,0x0, 0x90,0xcb,0xf0,0x0, 0x9a,0x8f,0xf0,0x0, 0x9b,0x1f, +0xf0,0x0, 0x8b,0xcf,0x89,0xdf,0x8c,0x6f,0x8c,0xff,0xe0,0x1, 0x8d,0xf, 0xf0,0x0, +0xb0,0xf, 0xc2,0x7f,0xf0,0x0, 0xb1,0x1f,0xe2,0x1, 0xc2,0x7f,0xf0,0x0, 0xb1,0xaf, +0xf0,0x0, 0xb2,0x3f,0xf0,0x0, 0xb0,0xcf,0xf0,0x0, 0xb2,0x8b,0xf0,0x0, 0xb3,0x1b, +0xf0,0x0, 0xab,0xcb,0xa9,0xdb,0xac,0x6b,0xac,0xfb,0xe0,0x1, 0xad,0xb, 0xe0,0xf, +0x3b,0x15,0x8f,0x8f,0xe2,0x0, 0xcf,0x81,0xe0,0x1, 0x1, 0x43,0xe2,0x0, 0xcf,0x82, +0xe0,0x3, 0x1, 0x7, 0x67,0x8d,0x3a,0x9f,0x8d,0x85,0xe2,0x0, 0xcd,0x85,0xe0,0x0, +0x1, 0x74,0x17,0x98,0x3f,0xbb,0x66,0x8c,0xf0,0xe, 0x3e,0x1f,0x67,0x85,0xae,0x9e, +0xc2,0x1, 0xaf,0x8e,0xe2,0x1, 0xc2,0x7f,0x67,0x8e,0x66,0x92,0xaf,0xae,0xc5,0x81, +0xae,0xbe,0xf0,0x40,0x3d,0x74,0x67,0x88,0x66,0x95,0xaf,0xce,0xb6,0xbe,0x67,0x96, +0x66,0x94,0xb7,0xce,0xb6,0xee,0x67,0x86,0x66,0x8f,0xe0,0x1, 0xb1,0x3e,0xb3,0xde, +0xf0,0x0, 0xb5,0xfe,0xe0,0x1, 0xb7,0x8e,0xf0,0x1, 0xb6,0x9e,0xe0,0x1, 0xb6,0xae, +0x67,0x11,0xad,0x85,0x89,0xe, 0xe7,0xf9,0x2, 0xc0,0xe7,0xfa,0x0, 0x8a,0xf7,0xff, +0x23,0x40,0xe7,0xfe,0x0, 0xec,0x15,0x0, 0xe0,0x0, 0x17,0x6e,0x16,0x80,0xad,0xb, +0x7f,0xc, 0x7e,0x88,0xf0,0x0, 0x13,0x0, 0xf0,0x0, 0x62,0x85,0xf2,0x1, 0xc2,0xff, +0xe7,0xfe,0x0, 0xc4,0xe2,0x0, 0xcd,0x1, 0xe0,0x2, 0x1, 0x52,0xe2,0x0, 0xcd,0x2, +0x1, 0xf2,0xf0,0x0, 0x62,0x85,0xe0,0x1, 0x4c,0x80,0xe0,0x0, 0x5c,0x45,0xf2,0x1, +0xc2,0xff,0x7f,0x81,0xf0,0x0, 0x7a,0x82,0xe0,0x2, 0xd1,0xda,0xf0,0x0, 0x62,0x82, +0xe0,0xa, 0x34,0x1, 0xe8,0xa, 0x3d,0x35,0xe0,0xb, 0x3b,0x15,0xe3,0xff,0xc5,0x7f, +0xe1,0x36,0x3d,0x17,0x15,0x0, 0xad,0xb, 0x67,0x81,0xe7,0xfe,0x0, 0x9f,0xe0,0x1f, +0x15,0x20,0xb5,0xb, 0xe0,0x1f,0x11,0x20,0xe7,0xfc,0x0, 0xa5,0x67,0xa, 0x17,0x83, +0xaf,0x8e,0xe7,0xf7,0x0, 0xf6,0xe0,0x0, 0x12,0xe0,0xf8,0x40,0x3c,0xec,0xe8,0x5, +0x3a,0x9c,0x11,0x98,0xe8,0x40,0x3c,0x69,0xf0,0x0, 0xc4,0x98,0x3d,0x63,0xe8,0x40, +0x3c,0xe9,0xe0,0x2, 0xd2,0xf, 0xe8,0x40,0x3a,0xf9,0x1, 0xf5,0x66,0x85,0x67,0xc, +0x67,0x8e,0xe8,0xc, 0xae,0x8c,0xc2,0x1, 0x66,0x92,0xe8,0xc, 0xaf,0x1c,0xe2,0x1, +0xc2,0x7f,0x67,0x8, 0xe8,0xc, 0xaf,0xac,0xf0,0x40,0x3d,0x74,0x67,0x95,0xe8,0xc, +0xae,0xbc,0x66,0x96,0xe8,0xc, 0xaf,0x4c,0x67,0x14,0xe8,0x6, 0xb7,0xbc,0xe8,0x6, +0xb6,0xcc,0x67,0x86,0x66,0x8f,0xe8,0x6, 0xb7,0x6c,0x67,0x11,0xe8,0x7, 0xb1,0x3c, +0xe8,0x6, 0xb3,0xdc,0xf8,0x6, 0xb5,0xfc,0xe8,0x7, 0xb7,0x8c,0xf8,0x7, 0xb6,0x9c, +0xe8,0x7, 0xb6,0xac,0x89,0xe, 0xe7,0xf8,0x2, 0xb8,0xe7,0xf9,0x0, 0x82,0x67,0x8c, +0xe2,0x0, 0xcf,0xf8,0xe7,0xfe,0x1, 0x40,0x66,0x90,0x55,0xb7,0x57,0xb8,0xf2,0x1, +0x7c,0x98,0xf0,0x19,0x3c,0x9d,0xe8,0x0, 0xb5,0x89,0xe8,0x0, 0xb7,0x99,0xe7,0xfe, +0x0, 0xb3,0xe0,0x0, 0x16,0xe4,0x7e,0x8c,0x67,0xf, 0xe2,0x0, 0xcf,0xa, 0x2, 0xbc, +0x16,0x81,0x7e,0x88,0x66,0x97,0x8d,0x8d,0xe2,0x0, 0xcd,0x81,0xe0,0xb, 0x3b,0x15, +0xe7,0xfe,0x1, 0x5b,0x8d,0xb, 0xe0,0x0, 0x15,0xe4,0xe7,0xfd,0x0, 0x94,0x67,0x11, +0x15,0x1, 0x8c,0xe, 0xad,0xb, 0xe7,0xfd,0x24,0x47,0xe8,0x19,0x8d,0xc8,0x3d,0xf3, +0xe0,0x4, 0x1, 0x26,0xe0,0x2, 0x1d,0x5e,0x15,0x81,0x3f,0x6b,0xe2,0x1, 0xc7,0x7f, +0x3c,0x7e,0xf0,0x40,0x3b,0xeb,0xc5,0x81,0xe7,0xfd,0x5, 0xb6,0xe0,0x1a,0x8f,0x6a, +0xc5,0xa, 0x39,0xfe,0x1, 0xf3,0x15,0x8a,0xe8,0xb, 0x3d,0xb7,0x15,0x7f,0xe8,0xb, +0x3d,0x98,0xe0,0x19,0xad,0x4b,0xe7,0xfd,0x0, 0xa7,0x3f,0x77,0x3e,0xe7,0xe0,0x6d, +0x3d,0x2e,0xe7,0xfa,0x0, 0xb8,0xf0,0x0, 0x5a,0xbe,0x17,0x1, 0xf2,0x0, 0xca,0x8a, +0x7f,0x8, 0x5, 0xc1,0xe0,0x0, 0x5d,0xca,0xe2,0x0, 0xcd,0x8a,0xe7,0xff,0x5, 0xbc, +0x55,0xbc,0x54,0x38,0x55,0x37,0x3d,0x98,0xe0,0x43,0x3d,0x9b,0x54,0xbb,0xe2,0x0, +0xcd,0x80,0x3c,0x9a,0xe0,0x43,0x3c,0x99,0x3d,0x6b,0xe0,0x4, 0x4, 0x2, 0xe2,0x0, +0xcc,0x80,0x3d,0xea,0xe3,0xff,0xc5,0xff,0x3d,0x69,0xe0,0x3, 0x4, 0x77,0x64,0x86, +0xe3,0xff,0xc5,0x7f,0xe8,0x40,0x3c,0x6b,0x7f,0x81,0xf0,0x0, 0x7a,0x82,0xf0,0x0, +0x7b,0x4, 0xef,0xfc,0xdc,0x3d,0x5d,0xbf,0xe0,0x43,0x3c,0x18,0xe2,0x1f,0xcd,0x9f, +0x67,0x81,0xf0,0x0, 0x62,0x82,0xf0,0x0, 0x63,0x4, 0xe0,0x3, 0x5, 0xcd,0x15,0x8f, +0xe8,0xb, 0x3d,0xb5,0xe3,0xff,0xc5,0xff,0x3c,0x7b,0x67,0xc, 0xe0,0x28,0x3c,0x2b, +0x15,0xa8,0xe0,0x6b,0x3b,0x2e,0x7c,0x8, 0x7d,0x8c,0xe7,0xfe,0x0, 0xfd,0xf0,0x40, +0x3b,0x6b,0x7d,0x8f,0xe7,0xfb,0x0, 0xa2,0xe0,0x0, 0x1f,0x51,0xe0,0x1, 0x1e,0x8e, +0x7f,0x17,0xea,0x21,0x7f,0x14,0x7e,0x91,0xf0,0x40,0x3c,0xee,0x66,0x97,0x67,0x11, +0xaf,0x8d,0x89,0xe, 0xe7,0xf6,0x0, 0xe5,0x5c,0xbe,0x15,0x14,0xe1,0x2a,0x3c,0x9a, +0x7d,0x12,0xe7,0xfb,0x0, 0x9d,0xe0,0x2, 0x1f,0x49,0x15,0x1, 0xad,0xe, 0xe7,0xfb, +0x0, 0x85,0x17,0x14,0x16,0x80,0x7f,0xc, 0x7e,0x88,0xe7,0xfe,0x0, 0xd5,0xe0,0x0, +0x4f,0xe9,0xe2,0x0, 0xcf,0xf8,0xe7,0xfc,0x1, 0x77,0xe0,0x0, 0x55,0xc3,0xe0,0x0, +0x57,0xc4,0x67,0x10,0xf2,0x1, 0x7c,0x98,0xf0,0x19,0x3c,0x9e,0x35,0xa1,0x37,0xa1, +0xe8,0x0, 0xb5,0x89,0xe8,0x0, 0xb7,0x99,0xe7,0xfc,0x0, 0xe6,0xe0,0x0, 0x5d,0x4a, +0xe2,0x0, 0xcd,0x2, 0x2, 0x98,0x5c,0xb9,0xe2,0x0, 0xcc,0xcf,0x2, 0x94,0xf2,0x0, +0xce,0x93,0xe0,0x0, 0x2, 0xc9,0xe0,0x0, 0x5c,0xc6,0xe2,0x0, 0xcc,0x9d,0x2, 0x8b, +0x5c,0xba,0xe2,0x0, 0xcc,0xcf,0x2, 0x87,0xf0,0x0, 0x62,0x85,0xf2,0x1, 0xc2,0xff, +0xe0,0x1, 0x0, 0xb7,0xf2,0x0, 0xce,0x89,0x2, 0xb6,0xf0,0x0, 0x5a,0x3e,0xf2,0x0, +0xca,0x8, 0x5, 0xbe,0x67,0xe, 0xe2,0x0, 0xcf,0xe, 0x2, 0xaf,0xe0,0x0, 0x4d,0x68, +0xe8,0x40,0x3c,0x66,0x3c,0xea,0x7d,0x4, 0x7d,0x83,0x7f,0x81,0xe0,0x2, 0xd0,0x68, +0xf0,0x0, 0x62,0x85,0xe0,0x16,0x34,0x2, 0xf2,0x1, 0xc2,0xff,0xf8,0x16,0x3b,0x35, +0x65,0x4, 0xf3,0xff,0xc3,0x7f,0xf2,0x0, 0xcb,0x78,0x65,0x83,0x67,0x81,0xe0,0x2, +0x2, 0xb3,0xe2,0x0, 0xcd,0xa, 0xe0,0x1, 0x5, 0x8c,0xf2,0x0, 0xcb,0x4f,0xe8,0x40, +0x3d,0x66,0x2, 0x83,0xe0,0x0, 0x15,0x50,0xf0,0x40,0x3b,0x6a,0xf3,0xff,0xc3,0x7f, +0xe0,0x0, 0x0, 0xff,0xf0,0x0, 0x5a,0x3e,0x14,0x8f,0xf1,0x28,0x3a,0x19,0x24,0x8, +0xe1,0x2a,0x3d,0x19,0x25,0x5, 0x66,0x8e,0xe2,0x0, 0xce,0x89,0x5, 0xc8,0xe0,0x1, +0x4d,0x3, 0x25,0x20,0xe0,0x1, 0x1d,0x4e,0x8d,0xa, 0x25,0x1c,0xf0,0x0, 0x62,0x85, +0xf2,0x1, 0xc2,0xff,0xe1,0x2b,0x3b,0x9b,0xe0,0x1, 0x25,0xd0,0x66,0x88,0xe0,0x1, +0x26,0xcd,0xe0,0xb, 0x3b,0x15,0x15,0x3, 0xf2,0x0, 0xce,0x9d,0xad,0xb, 0xf0,0x0, +0x13,0x0, 0xe0,0x1, 0x5, 0xc8,0xe0,0xb, 0x3b,0x15,0x15,0x1, 0xad,0xb, 0xe7,0xfa, +0x0, 0xed,0xf0,0x0, 0x62,0x85,0xe0,0x0, 0x4c,0xe8,0x5c,0x39,0xf2,0x1, 0xc2,0xff, +0x7d,0x83,0x7f,0x81,0xf0,0x0, 0x7a,0x4, 0xf0,0x0, 0x7a,0x82,0xe0,0x2, 0xd0,0x8, +0xe0,0x0, 0x4c,0xea,0xf0,0x0, 0x62,0x82,0xe0,0xa, 0x34,0x1, 0x67,0xe, 0xe8,0xa, +0x3d,0x35,0x34,0xa1,0xe0,0x29,0x3f,0x19,0xe3,0xff,0xc5,0x7f,0x65,0x83,0x67,0x81, +0xf0,0x0, 0x62,0x4, 0x24,0xa0,0x14,0x9d,0xe9,0x34,0x3c,0xa4,0xf0,0x0, 0x22,0x1c, +0xe0,0x2, 0x1c,0xce,0x8c,0x89,0x2c,0x97,0xe0,0x1, 0x4c,0x82,0xe0,0x9, 0x3f,0x29, +0xe0,0x43,0x3c,0x19,0xe2,0x0, 0xcc,0x0, 0x5, 0xb, 0xe2,0x0, 0xcc,0x85,0x5, 0xb, +0xe2,0x1, 0xcd,0x47,0xf0,0x40,0x3b,0x6a,0x2, 0x91,0xe0,0x0, 0x0, 0xc7,0xe3,0xff, +0xcc,0x7b,0x4, 0x77,0x66,0x8e,0xf0,0x40,0x3b,0x6a,0xe2,0x0, 0xce,0x8f,0x2, 0xba, +0xe2,0x0, 0xcd,0x78,0x5, 0x83,0xf0,0x0, 0x13,0x78,0xf3,0xff,0xc3,0x7f,0xf0,0x40, +0x3b,0x77,0xe7,0xff,0x5, 0x99,0xf2,0x0, 0xce,0x87,0x2, 0xb2,0xe2,0x0, 0xcb,0x94, +0xe0,0x0, 0x5, 0xc0,0xe0,0xb, 0x3b,0x15,0x15,0x2, 0xad,0xb, 0xf0,0x0, 0x13,0x0, +0xe7,0xfa,0x0, 0x8c,0x15,0x0, 0xe7,0xf7,0x0, 0xdd,0x16,0x8a,0x17,0x0, 0x7e,0x8c, +0x7f,0x8, 0xe7,0xfc,0x0, 0xd1,0xe0,0x0, 0x1f,0xd1,0xfa,0x21,0x7c,0x94,0xf0,0x0, +0xad,0xf, 0x12,0x8a,0x3a,0xb2,0xe0,0x2, 0x1c,0xde,0xe0,0x1, 0x14,0x40,0x3d,0x65, +0x3c,0x10,0xe0,0x1, 0xdf,0xff,0xea,0x16,0x7c,0x4c,0xf0,0x0, 0x65,0x7, 0xe7,0xf6, +0x0, 0x9b,0xe2,0x1, 0xcd,0x48,0x5, 0xca,0xf0,0x1, 0x13,0x48,0x0, 0xc7,0xe0,0x0, +0x5d,0xc6,0xe2,0x0, 0xcd,0xe4,0x5, 0x8d,0x15,0x94,0xe1,0x2b,0x3b,0x9b,0x25,0x89, +0x15,0x93,0xe9,0x2b,0x3d,0xad,0x25,0x85,0x67,0xe, 0xe2,0x0, 0xcf,0x13,0x5, 0xc3, +0xf0,0x0, 0x13,0x1, 0xe0,0x0, 0x5d,0xc8,0xe0,0x0, 0x5d,0x47,0x64,0x86,0xe8,0x40, +0x3c,0x6b,0x7f,0x81,0xf0,0x0, 0x7a,0x82,0xf0,0x0, 0x7b,0x4, 0xef,0xfc,0xda,0xb8, +0xe2,0x0, 0xcc,0x3b,0x67,0x81,0xf0,0x0, 0x62,0x82,0xf0,0x0, 0x63,0x4, 0x2, 0x87, +0x65,0x8d,0x15,0x0, 0x3d,0x95,0xad,0xb, 0xf0,0x0, 0x13,0x0, 0xe0,0xb, 0x3b,0x15, +0x15,0x0, 0xad,0xb, 0xe7,0xf9,0x0, 0xb2,0xf2,0x0, 0xce,0x9d,0xf0,0x0, 0x13,0x0, +0x2, 0xda,0xe0,0x3, 0x1f,0x3d,0x8d,0x9e,0xe2,0x0, 0xcd,0x82,0xe0,0x0, 0x5d,0xc6, +0x5, 0x96,0xe0,0x0, 0x4d,0x6b,0x2d,0x13,0xe2,0x0, 0xcd,0x9d,0xf0,0x40,0x3b,0x6a, +0xe0,0x0, 0x5, 0xc2,0xe0,0xb, 0x3b,0x15,0x8d,0x8b,0xe2,0x0, 0xcd,0x81,0x1, 0x43, +0xe2,0x0, 0xcd,0x83,0xe7,0xf9,0x1, 0x92,0xe7,0xfe,0x0, 0x9f,0xe2,0x0, 0xcd,0x9d, +0xf0,0x0, 0x13,0x0, 0x2, 0xf0,0x66,0x94,0xe2,0x0, 0xce,0x9d,0x2, 0xec,0x67,0xb, +0x9d,0x8e,0xe2,0x0, 0xcd,0xf7,0x2, 0xe7,0xe0,0x2, 0x1d,0xce,0x8d,0x8b,0xe8,0x36, +0x3d,0x86,0x0, 0xe1,0xf0,0x0, 0x13,0x78,0xe7,0xfe,0x0, 0xdb,0xf0,0x0, 0x13,0x80, +0xe7,0xfb,0x0, 0xeb,0x15,0x9, 0x15,0x86,0x66,0x8e,0xe8,0xa, 0x3d,0x35,0xe8,0xb, +0x3d,0xb5,0xe2,0x0, 0xce,0x8b,0xe3,0xff,0xc5,0xfe,0xe3,0xff,0xc5,0x7f,0xe0,0x6a, +0x3c,0xab,0x3d,0xea,0xe7,0xfc,0x0, 0xaa,0x15,0x0, 0xe7,0xfc,0x0, 0x8a,0x15,0x0, +0xe7,0xfb,0x0, 0xff,0x64,0x86,0xe8,0x40,0x3c,0x6b,0x7f,0x81,0xf0,0x0, 0x7a,0x82, +0xd8,0xbf,0xf0,0x40,0x3b,0x68,0x67,0x81,0xf0,0x0, 0x62,0x82,0xe7,0xff,0x24,0x34, +0xe7,0xfe,0x0, 0xba,0xea,0x16,0x7c,0x4c,0xe7,0xf4,0x0, 0xf6,0x15,0x80,0x7d,0xa0, +0x7d,0xa1,0x7d,0xa2,0x7d,0xa3,0x7d,0xa4,0x7d,0xa5,0xe7,0xf7,0x0, 0x8d,0x8, 0xb2, +0xe0,0x1, 0x1f,0x8e,0xea,0x22,0x7c,0x40,0x89,0xf, 0x14,0x80,0x31,0x21,0x3d,0x62, +0xe0,0x1, 0xdf,0x7a,0xea,0x22,0x7c,0x54,0x3d,0x62,0x14,0x80,0x9, 0x21,0xe0,0x3e, +0x0, 0xf3,0x0, 0x0, 0x8, 0xb7,0xf8,0x0, 0xc, 0x3e,0xe1,0xfe,0xc0,0x64,0xe0,0x2, +0x19,0x5f,0xea,0x16,0x7d,0xca,0xf0,0x0, 0x8e,0x82,0xf0,0x2, 0x1d,0x5e,0x8f,0x8b, +0xf0,0x0, 0x2e,0x90,0xe0,0x3, 0x27,0xa4,0xe0,0x2, 0x1f,0x4f,0x7f,0xa, 0xf0,0x0, +0xae,0x8e,0xef,0xff,0xdf,0xd6,0xf0,0x1, 0x1e,0xe, 0xe8,0x0, 0x89,0x8c,0x0, 0xb1, +0xf0,0x1, 0x1e,0xe, 0xe8,0x0, 0x89,0x8c,0x2f,0x93,0x21,0x92,0x17,0x7f,0x3f,0x13, +0xe2,0x1, 0xc7,0x7f,0xc7,0x1, 0xe4,0x0, 0xc7,0xa, 0xe8,0x40,0x3f,0xea,0xe8,0xe, +0x3f,0x1a,0x16,0xff,0xe0,0x19,0xae,0xcf,0xc7,0x8a,0x3f,0x7f,0x1, 0xfc,0x15,0xff, +0xe8,0xb, 0x3d,0x9d,0xe2,0x1, 0xc5,0xff,0xc5,0x81,0xe4,0x0, 0xc5,0x8a,0xe0,0x2, +0x1f,0xde,0xe8,0xb, 0x3d,0x9a,0x96,0x8f,0x97,0x1f,0x36,0xa4,0xb6,0x8f,0xc7,0x8a, +0x37,0x24,0x3d,0xff,0xe0,0x40,0xb7,0x4f,0x1, 0xf7,0xe0,0x2, 0x1f,0xcf,0x7f,0x8a, +0x12,0xa, 0x3a,0x33,0xe0,0x1, 0x14,0xff,0x3d,0x64,0xe2,0x0, 0x7c,0x3c,0xe0,0x1, +0xdf,0x1b,0x14,0x80,0xe2,0x0, 0x7d,0xbc,0xe8,0x40,0x3d,0x6d,0x3c,0x69,0xef,0xff, +0xd6,0xc5,0x3d,0x63,0xe8,0x40,0x3c,0xed,0xe2,0x0, 0x7d,0xbc,0xef,0xff,0xd6,0xbe, +0xe0,0x2, 0x1c,0xde,0x15,0x0, 0xe2,0x0, 0x78,0xbc,0x21,0xad,0x24,0x11,0x8e,0x49, +0x8f,0xc1,0x3f,0xfc,0x1, 0x21,0x3f,0x61,0x17,0x80,0x0, 0x84,0x8e,0xce,0x3e,0xfc, +0x1, 0x1b,0xc7,0x81,0xe2,0x1, 0xc7,0xff,0x3f,0xf8,0xc7,0xa, 0x1, 0xf8,0x17,0xa, +0x3f,0x3a,0x17,0x8a,0xe8,0xe, 0x3f,0x1a,0x3f,0xb8,0x92,0x8e,0x95,0x9e,0x96,0x2e, +0x96,0xbe,0x97,0x4e,0x3f,0x91,0xc4,0x1, 0xb2,0x8f,0xe2,0x1, 0xc4,0x7f,0xb5,0x9f, +0xb6,0x2f,0xb6,0xbf,0xb7,0x4f,0xc5,0x1, 0x3f,0xea,0xe2,0x1, 0xc7,0xff,0x3f,0xf3, +0xc4,0x8a,0x4, 0xd5,0xe0,0x2, 0x1c,0x59,0x14,0xbc,0x3d,0x64,0x3c,0x90,0xe0,0x1, +0xde,0x99,0x66,0x8a,0xf0,0x2, 0x19,0x5e,0x8f,0x8d,0xe0,0x5, 0x2f,0x89,0xea,0x16, +0x7d,0xca,0x8f,0xb, 0xe0,0x5, 0x27,0xa, 0xf0,0x5, 0x26,0x94,0xf7,0xff,0x12,0x7f, +0xe0,0x1, 0x1f,0xd7,0xf8,0x14,0x3a,0x1d,0xf2,0x1, 0xc2,0x7f,0xf0,0x1, 0x99,0x9f, +0xf0,0x0, 0xc2,0x1, 0xe0,0x2, 0x1f,0xcd,0xf4,0x0, 0xc2,0xa, 0xf8,0x19,0x88,0xca, +0xf0,0x0, 0x88,0xf, 0x89,0x2, 0xfa,0x22,0x7b,0x40,0xf8,0x14,0x3a,0x1a,0xea,0x22, +0x7d,0xd4,0xf8,0x40,0x3f,0x66,0xf8,0x0, 0x8c,0xc, 0xf8,0x40,0x3d,0x62,0x79,0xe, +0xf8,0x40,0x3d,0xe2,0xe0,0x0, 0x7d,0x8b,0xf7,0xff,0x12,0xfc,0xf0,0x0, 0x7e,0x8c, +0xe8,0x40,0x3a,0x63,0xe8,0x40,0x3b,0xe0,0xe8,0x40,0x3a,0xe1,0xe8,0x40,0x3b,0x64, +0xf0,0x0, 0x7e,0xd, 0xf0,0x0, 0x24,0x19,0xe8,0x0, 0x8e,0x4b,0x3e,0x75,0xe0,0x1, +0x1, 0x54,0xe8,0x40,0x3f,0x62,0x17,0x81,0x0, 0x87,0xe0,0x1a,0x8e,0xee,0xc7,0xa, +0x3e,0x7d,0xe0,0x1, 0x1, 0x4d,0x3e,0xef,0xe2,0x1, 0xc6,0xff,0xf0,0x40,0x3c,0x7d, +0x3d,0xef,0xc7,0x81,0x2, 0xf3,0xf0,0x0, 0x66,0x8c,0xf0,0x0, 0x66,0xd, 0xe0,0x2, +0x1f,0xdd,0x8f,0x8f,0x2f,0x89,0xea,0x16,0x7c,0x40,0xe8,0x40,0x3d,0x68,0xe0,0x1, +0x14,0xff,0xe0,0x1, 0xde,0x69,0xf0,0x0, 0x14,0x80,0xf0,0x1, 0x24,0x20,0xfa,0x16, +0x7d,0xc0,0x11,0x3, 0xe8,0x40,0x3a,0x69,0xe0,0x0, 0x0, 0xd3,0xf0,0xc, 0x3d,0x93, +0x8f,0xc, 0x34,0x44,0xe2,0x1, 0xcf,0x7f,0x34,0xc4,0xe0,0x3, 0x1, 0x69,0xe2,0x0, +0xcf,0x2, 0xe0,0x3, 0x2, 0xdf,0x13,0x81,0x3b,0x9e,0xe2,0x1, 0xc3,0xff,0x13,0x1e, +0xe4,0x0, 0xc7,0xa, 0x3b,0x33,0xea,0x14,0x7e,0x14,0x65,0x8a,0xe0,0xf, 0x3f,0x16, +0x3f,0x9c,0x8f,0xb, 0xb4,0xf, 0xb4,0x9f,0xe0,0x3, 0x2f,0x46,0x3b,0x1c,0x97,0x56, +0x94,0x6, 0xe0,0x1, 0x97,0xa6,0x3c,0x1e,0x3c,0x1f,0x3c,0xe2,0x12,0x8a,0xe3,0xff, +0xc4,0x7f,0xf0,0x18,0x3d,0x1d,0x3a,0x96,0xe0,0x1, 0xdd,0xd5,0xf0,0x0, 0x17,0x14, +0x96,0x95,0xf0,0x1e,0x3f,0x16,0x97,0x96,0xe8,0x0, 0x97,0x1e,0x3f,0x9d,0x3f,0x9e, +0xe8,0x0, 0xb4,0x8, 0x3c,0x6f,0x3c,0xe2,0xe3,0xff,0xc4,0x7f,0xe0,0x1, 0xdd,0xc3, +0xe8,0x0, 0xb4,0x18,0xe8,0x3, 0x39,0x9b,0xab,0x83,0xf0,0x0, 0xc4,0x81,0xf8,0x0, +0x8c,0xc, 0xf2,0x1, 0xc4,0xff,0xf8,0x40,0x3c,0x79,0xe0,0x0, 0x5, 0xc8,0x16,0x8a, +0xe8,0xd, 0x3e,0xb9,0xf8,0x40,0x3e,0xf9,0xf0,0xf, 0x3d,0x1d,0xe0,0x19,0x89,0xcf, +0xe0,0xc, 0x9c,0x4f,0xa9,0xcf,0xe0,0xc, 0x9c,0xdf,0x5, 0x87,0x9e,0xf, 0x9f,0x1f, +0x36,0x44,0x37,0x44,0xb6,0xf, 0xb7,0x1f,0xf0,0xf, 0x3d,0x1d,0xe0,0x19,0x85,0x5f, +0xe0,0x19,0x85,0xef,0xe0,0x19,0x86,0x7f,0xe0,0x1a,0x87,0xf, 0xe2,0x0, 0xc1,0x8f, +0xe8,0x40,0x39,0xf8,0xad,0x5f,0xad,0xef,0xae,0x7f,0xe0,0x1, 0xaf,0xf, 0x3, 0x4e, +0x17,0xa, 0x3f,0x33,0xe8,0xe, 0x3f,0x1a,0xe0,0x2, 0xc7,0x2c,0x8f,0xe, 0xe2,0x0, +0xcf,0x3, 0x1, 0x44,0xe2,0x0, 0xcf,0x1, 0xe7,0xfe,0x1, 0xfa,0xea,0x16,0x7f,0xc0, +0xf0,0x0, 0xc4,0x81,0xf8,0x0, 0x8c,0xc, 0xf2,0x1, 0xc4,0xff,0x3f,0x93,0x17,0x7f, +0xf8,0x40,0x3c,0x79,0xaf,0xf, 0xe7,0xff,0x2, 0xbc,0xea,0x16,0x7e,0xca,0xf0,0x0, +0xae,0x8d,0xe0,0x1, 0xc0,0x1c,0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0xe0,0x2, 0x1e,0xcf, +0x7e,0x8a,0xe7,0xfc,0x0, 0xe0,0x3e,0x65,0xe0,0x0, 0x15,0x80,0xf0,0x0, 0x14,0x8a, +0xf0,0x19,0x3c,0xbb,0xf8,0x0, 0x9e,0x9b,0xf8,0xf, 0x3d,0x19,0xe0,0xc, 0x9e,0xdf, +0xe0,0xc, 0x99,0x4f,0xe8,0x0, 0x99,0x8b,0xf0,0xf, 0x3e,0xad,0x3d,0x6f,0xe0,0xe, +0x39,0xa2,0x17,0x8a,0xe3,0xff,0xc7,0x7f,0x3f,0xbc,0xf0,0x43,0x3e,0x1e,0xf2,0x0, +0xce,0x0, 0xe3,0xff,0xc5,0x7f,0xe0,0x8, 0x39,0x23,0xe8,0xf, 0x3f,0x9a,0xe3,0xff, +0xc4,0x7f,0xf0,0x43,0x3b,0x9a,0x3c,0xee,0xe0,0x2, 0xc7,0xac,0xe0,0x69,0x3d,0x28, +0x8f,0x8f,0xf2,0x0, 0xcb,0x80,0xe8,0x8, 0x3e,0xad,0xf0,0x40,0x39,0xea,0xe3,0xff, +0xc4,0x7f,0xe0,0x73,0x3d,0x28,0xe2,0x0, 0xcf,0x81,0xf0,0x13,0x39,0x99,0xf3,0xff, +0xc1,0xff,0x36,0x21,0xe0,0x1, 0x1, 0x37,0xf0,0x40,0x39,0xf4,0xf0,0xf, 0x3f,0x1c, +0xe0,0x0, 0x3, 0xff,0x9f,0x8f,0xf0,0x8, 0x31,0xa8,0x3c,0xe4,0x7d,0x6, 0x7e,0x2, +0x7e,0x87,0x7f,0x8, 0x7f,0x89,0xf0,0x0, 0x79,0x3, 0xf0,0x0, 0x79,0x84,0xf0,0x0, +0x7a,0x81,0xf0,0x0, 0x7b,0x85,0xe0,0x1, 0xdd,0x6, 0xe3,0xff,0xc4,0x7f,0xe2,0x0, +0xcc,0xf, 0x65,0x6, 0x66,0x2, 0x66,0x87,0x67,0x8, 0x67,0x89,0xf0,0x0, 0x61,0x3, +0xf0,0x0, 0x61,0x84,0xf0,0x0, 0x62,0x81,0xf0,0x0, 0x63,0x85,0xe0,0x2, 0x2, 0x80, +0xf0,0x40,0x39,0xff,0xe0,0x1, 0x3, 0xbf,0xf0,0x0, 0x60,0xb, 0xf0,0x10,0x38,0x1c, +0xe8,0x0, 0x9c,0x0, 0xe8,0xc, 0x3e,0x1e,0xf0,0x0, 0xb1,0x8c,0xe0,0x0, 0x2b,0xe0, +0x3e,0x68,0xe3,0xff,0xc6,0x7f,0xe2,0x2, 0xce,0x0, 0x3f,0xe8,0x5, 0x83,0xe0,0x2, +0x17,0x80,0xe3,0xff,0xc7,0xff,0xf2,0x0, 0xce,0x0, 0xe0,0xc, 0x39,0x23,0xe3,0xff, +0xc6,0x7f,0xe0,0x6e,0x3d,0x2c,0x3f,0x3f,0x39,0xf2,0x37,0x48,0xe8,0xe, 0x3f,0x55, +0xe3,0xff,0xc7,0x7c,0xf8,0xc, 0x3d,0x19,0xe0,0x0, 0x5, 0xd3,0x3f,0x12,0xe0,0xc, +0xb7,0x4c,0xf2,0x0, 0xcb,0x80,0xe8,0xe, 0x3e,0xad,0xe3,0xff,0xc7,0x7f,0xe0,0x6a, +0x3d,0x2e,0x3f,0xba,0xf0,0x40,0x3e,0xfd,0x37,0xc8,0xe8,0xf, 0x3f,0xd5,0xe3,0xff, +0xc7,0xfc,0xf8,0xb, 0x3d,0x19,0xe0,0x0, 0x2, 0xc2,0xe0,0xf, 0x3e,0xaf,0xe0,0xc, +0xb7,0xdb,0xf0,0x0, 0xc5,0x8a,0xf0,0x40,0x3d,0xf6,0xe7,0xfc,0x1, 0xed,0xf0,0x0, +0x66,0xd, 0xf0,0x0, 0x66,0x8c,0xf8,0x0, 0x8c,0xc, 0xe7,0xfd,0x0, 0x82,0x9f,0x8f, +0xe8,0x40,0x3f,0xf3,0xe7,0xff,0x2, 0xaa,0xfa,0x22,0x78,0x54,0xf0,0x10,0x38,0x1c, +0xe0,0x2, 0x17,0x80,0xe8,0xc, 0x3e,0x1e,0xe8,0x0, 0xb7,0x80,0xe0,0x2, 0x17,0x80, +0xf0,0x0, 0xb1,0x8c,0xe7,0xff,0x23,0xb1,0xe0,0x2, 0x14,0x0, 0x67,0x8e,0xe2,0x0, +0xcf,0x81,0xe7,0xff,0x1, 0x9f,0xe8,0x0, 0x8f,0xeb,0xe0,0xc, 0x34,0x41,0xe2,0x0, +0xcf,0x8f,0xe3,0xff,0xc6,0x7f,0xe0,0x68,0x3b,0xac,0xe7,0xff,0x0, 0x93,0xe0,0xe, +0x39,0x2e,0xe0,0xc, 0xb7,0x4c,0xe7,0xff,0x0, 0xae,0x3f,0x9d,0xe0,0xc, 0xb7,0xdb, +0x0, 0xc1,0xf0,0x0, 0x60,0xb, 0x15,0x80,0xf0,0x9, 0x38,0x1c,0xf0,0xf, 0x3f,0x1c, +0xf0,0x40,0x39,0xf4,0xb5,0x89,0xb5,0x8f,0x3, 0xca,0xf0,0x8, 0x31,0xa8,0x3c,0xe4, +0x7d,0x6, 0x7e,0x2, 0x7e,0x87,0x7f,0x8, 0xf0,0x0, 0x78,0x9, 0xf0,0x0, 0x79,0x3, +0xf0,0x0, 0x79,0x84,0xf0,0x0, 0x7a,0x81,0xf0,0x0, 0x7b,0x85,0xe0,0x1, 0xdc,0x4b, +0xe3,0xff,0xc4,0x7f,0xe2,0x0, 0xcc,0xf, 0x65,0x6, 0x66,0x2, 0x66,0x87,0x67,0x8, +0xf0,0x0, 0x60,0x9, 0xf0,0x0, 0x61,0x3, 0xf0,0x0, 0x61,0x84,0xf0,0x0, 0x62,0x81, +0xf0,0x0, 0x63,0x85,0x5, 0x89,0xf0,0x10,0x38,0x1c,0xe8,0x0, 0xb4,0x0, 0xe7,0xfe, +0x0, 0xcb,0xfa,0x22,0x78,0x54,0xf0,0x10,0x38,0x1c,0x15,0x90,0xe8,0xc, 0x3e,0x1e, +0xe8,0x0, 0xb5,0x80,0x17,0x90,0xf0,0x0, 0xb1,0x8c,0xe7,0xfe,0x23,0xce,0x14,0x10, +0xe7,0xff,0x0, 0x9e,0xf0,0xf, 0x3d,0x1d,0xb4,0xf, 0xb4,0x9f,0xe7,0xfc,0x0, 0xdc, +0x17,0x0, 0xaf,0xc, 0x13,0x81,0x3f,0x64,0xe7,0xfc,0x0, 0xa3,0x17,0x1e,0x3f,0x33, +0xea,0x14,0x7e,0x94,0x15,0x81,0x3f,0x1d,0xad,0x8c,0x16,0x83,0xb4,0xf, 0xb4,0x9f, +0xc7,0xa, 0x94,0xf, 0x94,0x9f,0x95,0x2f,0x95,0xbf,0x96,0x4f,0xe0,0x40,0xb4,0x5e, +0xc6,0xff,0xe0,0x40,0xb4,0xce,0xe2,0x1, 0xc6,0xff,0xe0,0x40,0xb5,0x3e,0xe0,0x40, +0xb5,0xae,0xe0,0x40,0xb6,0x1e,0x2e,0xed,0xe7,0xfc,0x0, 0xb9,0xf0,0x40,0x39,0xff, +0xe7,0xfe,0x4, 0x84,0xfa,0x22,0x78,0x54,0xe7,0xff,0x0, 0xb7,0xf8,0x0, 0x8c,0xc, +0xf7,0xfb,0x26,0xd3,0xe7,0xfb,0x0, 0xcd,0xf8,0x0, 0x8c,0xc, 0x15,0xa, 0xe8,0xa, +0x3d,0x38,0xe0,0x2, 0x1c,0x59,0xe8,0x40,0x3c,0xe2,0xe0,0x1, 0xdb,0xfb,0x0, 0xf1, +0xf8,0x0, 0x8c,0xc, 0xe7,0xfb,0x0, 0xc1,0x8, 0xb1,0xe0,0x2, 0x1c,0x6d,0x15,0xa, +0x14,0x99,0xe0,0x1, 0xdc,0x29,0xe0,0x2, 0x1e,0x8e,0x17,0x0, 0x3f,0xed,0xe1,0x80, +0xaf,0x1f,0xc7,0x81,0xaf,0x1d,0xe1,0x80,0xaf,0x1f,0xe1,0x80,0xaf,0x1f,0xe1,0x80, +0xaf,0x1f,0xe1,0x80,0xaf,0x1f,0xe1,0x80,0xaf,0x1f,0xe1,0x80,0xaf,0x1f,0xe1,0x80, +0xaf,0x1f,0xaf,0xf, 0x8, 0xe1,0x0, 0x0, 0x8, 0xb7,0xf8,0x0, 0xc, 0x3e,0xc0,0x58, +0xf0,0x2, 0x19,0xdf,0xe8,0x0, 0x89,0x3, 0xe0,0x3, 0x21,0x69,0xe0,0x1, 0x1f,0x8e, +0xe0,0x1, 0x1f,0x42,0x8f,0x8f,0xe0,0x0, 0x27,0xf3,0x13,0xff,0x3b,0x9f,0xe2,0x1, +0xc3,0xff,0xf0,0xe, 0x8c,0x9e,0xf0,0xe, 0x8c,0x2e,0xc3,0x81,0xe4,0x0, 0xc3,0x8a, +0xe0,0x2, 0x19,0xde,0xea,0x13,0x7c,0xba,0xfa,0x13,0x7f,0x3c,0xf0,0x19,0x34,0xa6, +0xf0,0x18,0x34,0x26,0xf0,0x0, 0x10,0x80,0xea,0x13,0x7d,0xf0,0xfa,0x13,0x7a,0xe4, +0xfa,0x13,0x7b,0x7c,0xfa,0x14,0x7b,0x88,0xf0,0x0, 0x8e,0x89,0xf0,0x2, 0x1e,0x57, +0xf0,0x2, 0x19,0x6d,0xf1,0xff,0xc4,0xe0,0xf1,0xff,0xc4,0x60,0x3b,0x93,0xf8,0x40, +0x38,0x61,0x7d,0x8a,0xf8,0x40,0x3a,0x6e,0x0, 0x8a,0xea,0x13,0x7f,0x3c,0x31,0x22, +0x3f,0x12,0xb2,0xe, 0xb7,0x9e,0xc1,0x8a,0x3b,0xf3,0x1, 0x37,0x89,0x43,0xe2,0x1, +0xc9,0x7f,0x1, 0x7a,0x9a,0x3, 0x17,0xa, 0x3f,0x32,0xe2,0x0, 0xca,0x21,0x9f,0x93, +0xe8,0x2d,0x3a,0x29,0xe8,0xe, 0x3f,0x1c,0x15,0x81,0xe0,0x6b,0x3b,0xad,0x8f,0xe, +0xe2,0x0, 0xcf,0xa1,0xe8,0x2d,0x3f,0xa8,0x16,0x1, 0xe0,0x6c,0x3b,0xad,0xe2,0x0, +0xcf,0x2, 0x1, 0x21,0x27,0x5b,0xe2,0x0, 0xcf,0x1, 0x1, 0xde,0x66,0x8a,0xea,0x14, +0x7d,0x88,0xea,0x13,0x7e,0x7c,0xea,0x13,0x7f,0xe4,0x3d,0x92,0x3e,0x12,0x3e,0x92, +0xc1,0x8a,0x39,0x1f,0xf0,0x0, 0xa8,0xb, 0x3b,0xf3,0xf0,0x0, 0xa8,0xc, 0xe0,0x0, +0xaf,0xd, 0xf0,0x0, 0xa8,0x2, 0x1, 0xcb,0xf0,0x3, 0x28,0xd0,0xc0,0x28,0xf8,0x0, +0xf, 0x28,0xb, 0xe1,0xe0,0x6, 0x31,0x22,0xf0,0xe, 0x3a,0x16,0xf0,0x0, 0x9d,0xe, +0xf0,0x0, 0x9d,0x9e,0xe8,0xe, 0x3a,0x2a,0xe3,0xff,0xc7,0x7f,0xe0,0x43,0x3c,0x1e, +0xe8,0xd, 0x3f,0xab,0xe3,0xff,0xc6,0xff,0xe0,0x41,0x3c,0xce,0xe2,0x0, 0xcc,0x0, +0xf0,0x43,0x3f,0x1d,0xe3,0xff,0xc4,0xff,0xf0,0x1, 0x3a,0x92,0xe0,0x41,0x3d,0x4d, +0xe0,0x6e,0x3d,0x29,0xf2,0x0, 0xcf,0x0, 0x8c,0x81,0xe3,0xff,0xc5,0x7f,0xe0,0x6d, +0x3d,0x2a,0xe2,0x0, 0xcc,0xe3,0x2, 0x83,0xc4,0x81,0xac,0x81,0xe8,0x0, 0x8d,0x3, +0xe2,0x0, 0xcd,0x7, 0xe0,0x2, 0x5, 0x8a,0xf0,0xa, 0x3b,0x92,0x88,0x8a,0x15,0xa, +0xf0,0x0, 0x26,0x89,0xf1,0xff,0xc6,0xff,0xf2,0x1, 0xc6,0xff,0xf0,0x0, 0x10,0x81, +0x15,0xa, 0xf0,0x9, 0x39,0x12,0x8a,0x89,0x3d,0x75,0x5, 0x83,0xad,0x9, 0x3a,0xea, +0x28,0x99,0xf0,0xa, 0x3a,0x92,0x8d,0xa, 0xe2,0x0, 0xcd,0x11,0x2, 0x8d,0x8d,0x53, +0x14,0xa2,0xe1,0x2a,0x3c,0xaa,0xe0,0x2, 0x2d,0x3, 0x8c,0xe3,0x15,0x7, 0xe1,0x2a, +0x3d,0x29,0xe0,0x1, 0x2d,0x7d,0xe0,0xa, 0x3f,0x1d,0xe2,0x0, 0xcd,0x3, 0xe0,0x2, +0x5, 0x0, 0x3d,0x65,0xe3,0xff,0xc5,0x7f,0xe1,0x29,0x3d,0x1e,0xe0,0x0, 0x24,0xdb, +0xe1,0x2a,0x3d,0x1d,0xe0,0x0, 0x25,0x57,0x2d,0x83,0xf0,0x0, 0xb5,0x3, 0x2e,0x3, +0xf0,0x0, 0xb5,0x93,0xe0,0x2, 0x1f,0xe, 0x3f,0x12,0x87,0x8e,0xc7,0x81,0xe2,0x1, +0xc7,0xff,0xe2,0x0, 0xcf,0x9d,0xaf,0x8e,0xe7,0xfe,0x5, 0xc7,0x8c,0x53,0x14,0x83, +0xf0,0x0, 0x78,0x7, 0xf0,0x0, 0x78,0x85,0xf0,0x0, 0x79,0x6, 0xf0,0x0, 0x79,0x88, +0xf0,0x0, 0x7a,0x4, 0xf0,0x0, 0x7a,0x83,0xf0,0x0, 0x7b,0x2, 0xf0,0x0, 0x7b,0x81, +0xe0,0x1, 0xda,0xa1,0x3f,0xe8,0xe2,0x1, 0xc7,0xff,0xe2,0x0, 0xcf,0x9e,0xf0,0x0, +0x60,0x7, 0xf0,0x0, 0x60,0x85,0xf0,0x0, 0x61,0x6, 0xf0,0x0, 0x61,0x88,0xf0,0x0, +0x62,0x4, 0xf0,0x0, 0x62,0x83,0xf0,0x0, 0x63,0x2, 0xf0,0x0, 0x63,0x81,0xe0,0x2, +0x2, 0x84,0x3f,0xe8,0xe2,0x1, 0xc7,0xff,0xe2,0x0, 0xcf,0x8e,0x3f,0x6f,0xe0,0x2, +0x5, 0x85,0x3f,0xee,0xe2,0x1, 0xc7,0xff,0x3f,0xf5,0x5, 0x85,0xf0,0xf, 0x39,0x12, +0xc2,0x81,0xaa,0x8f,0xea,0x13,0x7f,0xfc,0x39,0x1f,0x15,0x81,0xad,0x82,0xe7,0xfe, +0x0, 0x84,0xf0,0xc, 0x3b,0x12,0x8e,0xc, 0x26,0x1c,0x14,0x94,0xe1,0x2c,0x3f,0x19, +0xe0,0x1, 0x2e,0x1b,0xe1,0x2c,0x3e,0x99,0xe0,0x1, 0x2e,0x17,0x14,0x89,0xe1,0x2c, +0x3f,0x19,0xe0,0x1, 0x2e,0x6c,0xe1,0x2c,0x3e,0x99,0xe0,0x1, 0x2e,0x68,0x15,0x84, +0xe1,0x2e,0x3f,0x1b,0xe0,0x1, 0x2f,0x69,0xe1,0x2d,0x3e,0x9b,0xe0,0x1, 0x2e,0xe5, +0x66,0x8a,0xe0,0xe, 0x3e,0x92,0x8f,0xe, 0xe2,0x0, 0xcf,0x1, 0x5, 0xbc,0x17,0xff, +0x3f,0x9e,0xe2,0x1, 0xc7,0xff,0x3f,0x6f,0x3e,0x92,0xaf,0x8d,0x3c,0xee,0xf0,0x0, +0x78,0x7, 0xf0,0x0, 0x78,0x85,0xf0,0x0, 0x79,0x6, 0xf0,0x0, 0x79,0x88,0xf0,0x0, +0x7a,0x4, 0xf0,0x0, 0x7a,0x83,0xf0,0x0, 0x7b,0x2, 0xf0,0x0, 0x7b,0x81,0x7f,0x9, +0xe0,0x1, 0xd9,0xee,0xf0,0x4, 0x3d,0x18,0x67,0x9, 0xe3,0xff,0xc2,0x7f,0xb2,0x3, +0x3c,0xee,0xe8,0x40,0x3c,0x6e,0xe0,0x1, 0xd9,0xe3,0xf0,0xf, 0x3d,0x98,0xe3,0xff, +0xc7,0xff,0xf0,0x0, 0x63,0x81,0xf0,0x0, 0x63,0x2, 0xf0,0x0, 0x62,0x83,0xf0,0x0, +0x62,0x4, 0xf0,0x0, 0x61,0x88,0xf0,0x0, 0x61,0x6, 0xf0,0x0, 0x60,0x85,0xf0,0x0, +0x60,0x7, 0xb7,0x93,0xe8,0x6, 0x3b,0x14,0xf0,0xd, 0x3b,0x92,0xf0,0xe, 0x3b,0x12, +0x16,0x1, 0xe2,0x0, 0xca,0x8e,0xae,0xd, 0xf0,0x0, 0xa8,0xe, 0xb2,0x6, 0xb7,0x96, +0x5, 0x95,0xf0,0xf, 0x39,0x12,0x17,0x5, 0xaf,0xf, 0xe0,0x2, 0x1f,0x8e,0x39,0x1f, +0xf0,0x0, 0xa8,0x2, 0xe7,0xfd,0x0, 0x89,0xe2,0x0, 0xcd,0x2, 0x5, 0x8f,0xf0,0xa, +0x3b,0x92,0x88,0x8a,0x15,0x9, 0xe7,0xfd,0x0, 0xf5,0xe2,0x0, 0xca,0x81,0x5, 0xee, +0xf0,0xf, 0x39,0x12,0xc2,0xff,0xaa,0x8f,0x0, 0xe9,0xe0,0x0, 0x1, 0x4e,0xf0,0x0, +0x26,0xbe,0xf0,0xa, 0x3b,0x92,0x88,0x8a,0xe7,0xfd,0x0, 0xe6,0x14,0x9f,0xe1,0x2a, +0x3c,0xae,0xe7,0xfe,0x25,0x2, 0xe1,0x2a,0x3c,0xad,0xe7,0xfd,0x25,0x7e,0x16,0x80, +0x3f,0x6d,0xe7,0xfe,0x0, 0x80,0x8f,0x53,0xe2,0x0, 0xcf,0x3c,0x5, 0xaf,0xea,0x13, +0x7e,0xf0,0x17,0xb, 0x3f,0xee,0xe7,0xff,0x0, 0x81,0xdd,0xef,0xea,0x14,0x7f,0x8, +0xea,0x13,0x7f,0xfc,0x3e,0x6e,0x3e,0xef,0xe1,0x80,0xb9,0x1c,0xea,0x13,0x7c,0x70, +0xe1,0x80,0xb9,0x1d,0x15,0xa, 0xb9,0x1e,0x14,0x81,0xb9,0x1f,0xb1,0x2c,0xb1,0x2d, +0xe0,0x1, 0xda,0xa, 0xea,0x13,0x7f,0xe4,0x3f,0x6f,0xe1,0x80,0xb9,0x1e,0xb9,0x1f, +0xb1,0x2e,0xc0,0x28,0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0xf0,0x9, 0x39,0x12,0xf0,0xa, +0x3b,0x92,0x8a,0x89,0x88,0x8a,0xe7,0xfd,0x0, 0xb5,0x66,0x8a,0x15,0x81,0x3e,0x92, +0xad,0x8d,0xe7,0xff,0x0, 0x89,0x8d,0x53,0xe2,0x0, 0xcd,0x3c,0xe7,0xff,0x5, 0xb1, +0xf0,0xa, 0x3b,0x92,0x88,0x8a,0x20,0xa6,0xf7,0xfd,0x2e,0x96,0xf0,0xa, 0x39,0x12, +0x8a,0x8a,0xe7,0xfd,0x0, 0xb8,0x14,0x1e,0x3f,0xe8,0xe2,0x1, 0xc7,0xff,0xe2,0x0, +0xcf,0x8e,0x3f,0x6f,0xe7,0xfd,0x2, 0xff,0x17,0xf, 0x3f,0xee,0xe2,0x1, 0xc7,0xff, +0x3f,0xf5,0xe7,0xfe,0x5, 0x81,0xe7,0xfd,0x0, 0xfb,0xea,0x13,0x7e,0xf0,0x17,0x5, +0x3f,0xee,0xe7,0xfe,0x0, 0xab,0xea,0x13,0x7e,0xf0,0x17,0x2, 0x3f,0xee,0xe7,0xfe, +0x0, 0xa5,0x15,0x12,0xe7,0xfc,0x0, 0xee,0xea,0x13,0x7c,0xba,0xf0,0x0, 0xae,0x89, +0xe7,0xfc,0x0, 0xae,0xe0,0x2, 0x1f,0x40,0xe0,0x2, 0x1f,0xc8,0xe0,0xa, 0x8f,0xe, +0xe2,0x0, 0xcf,0x1, 0xe0,0x0, 0x1, 0x77,0x8f,0x8f,0xe2,0x0, 0xcf,0x82,0xe0,0x0, +0x1, 0x75,0xea,0x13,0x7f,0xb8,0x8f,0xf, 0x27,0x37,0xe2,0x0, 0xcf,0x1, 0xe0,0x1, +0x1e,0xc7,0xe0,0x1, 0x1, 0xb, 0xe0,0x2, 0x1f,0xd1,0x17,0x0, 0xaf,0xf, 0x9f,0x8d, +0xe2,0x1, 0xcf,0x96,0xe0,0x0, 0x5, 0xce,0xea,0x13,0x7f,0x36,0x87,0x8e,0xc7,0x81, +0xe2,0x1, 0xc7,0xff,0xe2,0x0, 0xcf,0x81,0xaf,0x8e,0xe0,0x1, 0x5, 0x97,0xe0,0x2, +0x1e,0xda,0x16,0x28,0xe2,0x0, 0xcf,0x83,0xae,0xd, 0xe0,0x0, 0x5, 0xed,0x17,0x80, +0xe0,0x2, 0x1e,0x4e,0xe0,0x2, 0x1d,0x4d,0xaf,0x8e,0xe0,0x0, 0x15,0xf7,0x17,0x1e, +0xaf,0xc, 0x17,0xa8,0x17,0x1e,0xad,0x8a,0x27,0x3, 0xc7,0x7f,0xaf,0xc, 0x27,0xb9, +0xc7,0xff,0xaf,0x8d,0x38,0x82,0xe0,0x2, 0x1e,0xdd,0x8e,0x8d,0xe0,0x0, 0x26,0xd0, +0xe0,0x1, 0x1e,0xc7,0x9e,0xd, 0xe2,0x3, 0xce,0x10,0xe0,0x0, 0x5, 0xe1,0xea,0x13, +0x7d,0xb7,0x86,0xb, 0xc6,0x1, 0xe2,0x1, 0xc6,0x7f,0xe2,0x0, 0xce,0x1, 0xae,0xb, +0xe7,0xff,0x5, 0xbb,0xea,0x13,0x7e,0x39,0xaf,0xc, 0x17,0x1, 0xaf,0xf, 0x17,0x4, +0xe0,0x2, 0x1f,0xd1,0xaf,0xf, 0x9f,0x8d,0xe2,0x1, 0xcf,0x96,0xe7,0xff,0x2, 0xb6, +0xea,0x13,0x7f,0xb6,0xe0,0x2, 0x1e,0xda,0x17,0x0, 0xaf,0xf, 0x8f,0x8d,0xe0,0x2, +0x1d,0x4d,0xe0,0x2, 0x1e,0x4e,0x8f,0xa, 0xe0,0x0, 0x2f,0x4d,0x8f,0xc, 0x0, 0xc5, +0x38,0x82,0x8f,0xf, 0xe7,0xff,0x2f,0xa, 0xea,0x13,0x7f,0x36,0x17,0x80,0xaf,0x8e, +0xea,0x13,0x7d,0xb9,0xe0,0x2, 0x1f,0x51,0xea,0x13,0x7e,0x38,0xaf,0x8e,0xea,0x13, +0x7e,0xb7,0xe0,0x2, 0x1f,0x4d,0xaf,0x8e,0xe0,0x2, 0x1f,0x4e,0xaf,0x8e,0xe0,0x2, +0x1f,0x5a,0xaf,0x8b,0xaf,0x8c,0xaf,0x8d,0xaf,0x8e,0x38,0x82,0xe0,0x1, 0x1e,0xc7, +0xe7,0xfe,0x0, 0xfb,0x17,0xa8,0x0, 0xd4,0x9f,0xd, 0xe2,0x2, 0xcf,0x2b,0x2, 0x94, +0xea,0x13,0x7e,0x39,0x87,0xc, 0xc7,0x1, 0xe2,0x1, 0xc7,0x7f,0xe2,0x0, 0xcf,0x32, +0x5, 0x91,0x17,0x0, 0xaf,0xc, 0xaf,0xf, 0xe7,0xfe,0x0, 0xe7,0xea,0x13,0x7f,0xb7, +0xaf,0xf, 0xe7,0xfe,0x0, 0xe2,0xea,0x13,0x7f,0xb9,0x17,0x0, 0xaf,0xf, 0xe7,0xff, +0x0, 0xa8,0xaf,0xc, 0xe7,0xff,0x0, 0xa5,0xe0,0x2, 0x1e,0xda,0x8f,0x8d,0xe7,0xff, +0x0, 0xb0,0x15,0xff,0x3d,0x9e,0xe2,0x1, 0xc5,0xff,0x8f,0xc, 0xad,0x8a,0xe7,0xfe, +0x0, 0xf5,0x8, 0xb1,0xe2,0x0, 0xcc,0x2, 0x1, 0x21,0xe2,0x0, 0xcc,0x3, 0x1, 0x16, +0xe2,0x0, 0xcc,0x1, 0x1, 0x2, 0x8, 0xe1,0xef,0xfc,0xdb,0x56,0xe0,0x2, 0x1f,0xd2, +0xac,0xf, 0xe0,0x2, 0x1f,0x84,0x24,0x20,0x17,0x0, 0xaf,0xf, 0x17,0xa, 0xe0,0x2, +0x1f,0x88,0xb7,0xf, 0x8, 0xa1,0xe7,0xfe,0x0, 0x97,0xef,0xff,0xd2,0x3f,0xef,0xff, +0xd1,0xab,0xdc,0xbb,0x8, 0xa1,0xe7,0xf2,0x0, 0xd7,0xe0,0x2, 0x1f,0xd0,0x17,0x0, +0xaf,0xf, 0xef,0xff,0xd1,0x5a,0xe0,0x2, 0x1f,0xc0,0xe0,0xa, 0x8f,0x8f,0x2f,0xdc, +0x8, 0xa1,0xe7,0xe1,0x0, 0xf1,0x8f,0xf, 0xe2,0x0, 0xcf,0x1, 0x1, 0xe4,0x0, 0xdd, +0xe0,0x1, 0x1f,0x8e,0x8f,0x8f,0x27,0x9b,0x16,0x7f,0x3e,0x1f,0xe2,0x1, 0xc6,0x7f, +0xc6,0x1, 0xe4,0x0, 0xc6,0xa, 0x16,0x83,0x3e,0x18,0xe0,0xff,0x17,0x7f,0x17,0x80, +0xae,0x88,0xc4,0xa, 0x3c,0x7c,0xe0,0x41,0xae,0x98,0xe0,0x40,0xb7,0x48,0xe0,0x40, +0xb7,0x38,0xe0,0x40,0xaf,0xc8,0xe0,0x40,0xaf,0xa8,0x1, 0xf3,0x38,0x82,0x0, 0x0, +0xe0,0x1, 0x1f,0x8e,0xc4,0xff,0x8e,0xf, 0xe0,0x2, 0x1f,0xdf,0x8e,0x8f,0x17,0x80, +0xe0,0x0, 0x26,0x41,0xf0,0x2, 0x1b,0xde,0xf0,0x40,0x3a,0x6f,0xf0,0x0, 0x12,0x82, +0xf0,0x0, 0x13,0x3, 0x15,0xfd,0x15,0x1, 0x0, 0x8f,0x8f,0x78,0x27,0x17,0xf0,0x0, +0xab,0x8, 0x17,0x3, 0xc7,0x81,0xe2,0x1, 0xc7,0xff,0xaf,0x18,0x3f,0xfc,0xc4,0xa, +0xe0,0x40,0xaf,0x38,0x1, 0x27,0xe0,0x80,0x8f,0x19,0xe2,0x0, 0xcf,0x1, 0x1, 0x11, +0x87,0x18,0x3f,0x5b,0xe2,0x1, 0xc7,0x7d,0x2f,0x69,0x17,0xa, 0x3f,0x3d,0xad,0x8, +0xe8,0xe, 0x3f,0x17,0xc6,0x81,0xaf,0xce,0xe2,0x1, 0xc6,0xff,0x8f,0x8, 0x0, 0xe3, +0x8f,0x18,0xe2,0x0, 0xcf,0x1, 0x1, 0xf, 0xe2,0x0, 0xcf,0x3, 0x1, 0xe, 0x2f,0x5, +0xf0,0x0, 0xaa,0x88,0x17,0x2, 0x0, 0xd7,0xe2,0x0, 0xcf,0x2, 0x1, 0xf0,0xaf,0x8, +0x0, 0xd2,0x38,0x82,0xf0,0x0, 0xab,0x18,0x17,0x0, 0xf0,0x0, 0xaa,0x8, 0x0, 0xcb, +0x8, 0xb6,0xc0,0x4c,0xe0,0x1, 0x1a,0x8e,0xe0,0x2, 0x1f,0xfd,0x8d,0x5, 0xf0,0x0, +0x8a,0x6f,0xf0,0x0, 0x89,0x7f,0xe0,0x3, 0x25,0x6b,0x14,0x7f,0x3c,0x1a,0xe2,0x1, +0xc4,0x7f,0xc4,0x1, 0xe0,0x2, 0x19,0x5e,0xe4,0x0, 0xc4,0xa, 0x14,0x9c,0x15,0x84, +0x16,0x10,0x3f,0xe2,0x3c,0x90,0x3d,0x90,0x3e,0x10,0x3c,0x12,0x16,0xff,0x17,0x0, +0xae,0xcf,0xc7,0x8a,0x3f,0xf8,0xe1,0x80,0xae,0x99,0xe1,0x80,0xaf,0x1b,0xe1,0x80, +0xaf,0x1c,0x1, 0xf7,0xe0,0x2, 0x1a,0x5f,0xea,0x23,0x79,0x94,0xf0,0x0, 0x8b,0x4, +0xf0,0x0, 0x2b,0x22,0x8f,0x83,0x27,0x97,0xe0,0x3, 0x25,0x50,0x17,0x7f,0x3f,0x1a, +0xe2,0x1, 0xc7,0x7f,0xc7,0x1, 0xe4,0x0, 0xc7,0xa, 0xe0,0x2, 0x1f,0xde,0x39,0x1e, +0xe0,0xff,0x17,0x7f,0xe0,0x12,0xb7,0x7f,0xc7,0x8a,0x39,0x7f,0xe0,0x12,0xb7,0x3f, +0x1, 0xfa,0x8f,0x84,0xe0,0x2, 0x1c,0x57,0x14,0x84,0x3c,0x90,0xaf,0x83,0xdf,0x61, +0xc0,0x34,0xb, 0x61,0xf0,0x0, 0x8b,0x83,0xf0,0x2, 0x23,0x8f,0xe0,0x3, 0x25,0x31, +0x16,0xff,0x3e,0x9a,0xe2,0x1, 0xc6,0xff,0xe0,0x1, 0x1f,0x7f,0xf0,0x1, 0x1a,0xe5, +0xe0,0x26,0xc6,0xb6,0x36,0xa2,0x3e,0x9e,0xe8,0x40,0x3f,0xe5,0xe0,0xff,0x17,0x7f, +0xb7,0xf, 0xc7,0x84,0x3f,0xfd,0xe0,0x40,0xb7,0x1f,0xe0,0x2, 0xb7,0x2f,0xe0,0x2, +0xb7,0x3f,0x1, 0xf7,0x17,0x81,0xf0,0x13,0x32,0x26,0xf0,0x14,0x31,0x26,0xf9,0x31, +0x3b,0x96,0xf1,0x2e,0x3b,0x9f,0xf1,0xff,0xc1,0xdf,0xf1,0xff,0xc2,0x5f,0x14,0x0, +0xf0,0x11,0x38,0xde,0xf8,0x43,0x39,0x93,0xf8,0x43,0x3a,0x14,0xf0,0x40,0x39,0x6f, +0xf0,0x40,0x38,0x68,0x25,0x19,0x17,0x80,0x16,0x10,0xe0,0x2, 0x1f,0x57,0x3e,0x10, +0x3e,0xef,0x9d,0x9e,0xe4,0xd, 0x36,0xc8,0xe2,0xff,0xcd,0xff,0x1, 0x4, 0x8c,0x8c, +0xe0,0x1, 0x24,0xec,0xc7,0x81,0xe4,0xd, 0x37,0xa8,0xe4,0xb, 0x36,0xc8,0x3d,0x7b, +0xc7,0xa, 0xc6,0x1, 0x2, 0xef,0xc4,0x1, 0x3f,0xe8,0xe2,0x1, 0xc7,0xff,0xf0,0x40, +0x3b,0xff,0xf0,0x0, 0xc2,0x84,0x2, 0xdf,0xe0,0x0, 0x25,0x40,0x14,0x7f,0x3c,0x1a, +0xe2,0x1, 0xc4,0x7f,0xc4,0x1, 0x14,0x8a,0x3c,0xb8,0xea,0x23,0x7e,0x80,0xea,0x22, +0x7f,0x6c,0xe0,0x2, 0x1f,0xde,0x3c,0x92,0xe0,0x12,0x95,0xff,0xe0,0x13,0x96,0xf, +0xc7,0x8a,0x3f,0xf9,0xe1,0x80,0xb5,0x9d,0xe1,0x80,0xb6,0x1e,0x1, 0xf6,0x15,0x9c, +0x3d,0x90,0x3c,0x1b,0x10,0x81,0x13,0x0, 0x0, 0x84,0xc5,0x81,0x3d,0xf8,0x1, 0x1d, +0x8f,0x8b,0xe2,0x1, 0xcf,0xff,0x1, 0xfa,0x4f,0x10,0x16,0x91,0x3e,0x90,0x17,0x81, +0xe0,0x2, 0x27,0x29,0x3f,0x6f,0xe2,0x1, 0xc7,0x7f,0x3f,0x7a,0x3c,0xef,0x3, 0xee, +0xe1,0x80,0x8e,0x1d,0xc7,0x81,0x2e,0x77,0xaf,0xb, 0xe2,0x0, 0x7e,0x90,0xc5,0x81, +0x3c,0x9d,0x3d,0xf8,0xa8,0x89,0x1, 0xe5,0x15,0xff,0xe8,0xb, 0x3d,0x96,0xe2,0x1, +0xc5,0xff,0xc5,0x81,0xe4,0x0, 0xc5,0x8a,0xe0,0x2, 0x1f,0xde,0xe0,0x1, 0x1f,0x66, +0x3d,0x92,0x96,0xf, 0x96,0x9f,0xc7,0x8a,0xb6,0xe, 0x3f,0xfb,0xc7,0x4, 0xe0,0x40, +0xb6,0x9e,0x1, 0xf8,0xe0,0x1, 0x1e,0xe0,0xe0,0x1, 0x1f,0x5f,0xe0,0x1, 0x1f,0xf9, +0x36,0xc1,0x37,0xc1,0x37,0x41,0xe2,0x0, 0x7c,0x28,0x7f,0x8d,0x7e,0x8b,0x7f,0xc, +0xf0,0x0, 0x6b,0xa8,0xf0,0x0, 0x6b,0x29,0xe0,0x1, 0xd2,0x36,0x8f,0x84,0x8c,0x5, +0x27,0xae,0x15,0x7f,0xe0,0x1, 0x1f,0xf8,0x3d,0x18,0xe2,0x1, 0xc5,0x7f,0xe0,0x4d, +0xc5,0x12,0x9a,0x8f,0xe0,0x1, 0x1f,0xff,0x35,0x21,0x14,0x80,0xf0,0x2, 0x1b,0xd7, +0x3d,0x1f,0xf0,0x0, 0x13,0x1, 0x38,0xe9,0x24,0x14,0x3d,0xe9,0xe2,0x1, 0xc5,0xff, +0x3a,0xfb,0xe0,0x1, 0x1f,0x78,0x17,0x81,0x1, 0x88,0xe0,0x1, 0x0, 0x9d,0xe0,0x80, +0x9e,0x9e,0x3e,0xfb,0xe0,0x1, 0x1, 0x1a,0x3d,0x7e,0x3e,0x6f,0xc7,0x81,0x1, 0xf8, +0xc4,0x81,0x8f,0x84,0xe2,0x1, 0xc4,0xff,0x3f,0xf9,0x2, 0xe7,0xe7,0xfe,0x24,0x3, +0x16,0xff,0x3e,0x98,0xe2,0x1, 0xc6,0xff,0x17,0x4, 0x3f,0x10,0xc6,0x81,0xe0,0x2, +0x1f,0xde,0x3e,0x9e,0xe0,0xff,0x15,0xff,0xe1,0x80,0x8e,0x1e,0xe2,0x0, 0xce,0x1, +0x1, 0x5, 0xe0,0x12,0xb5,0xff,0xe0,0x13,0xb5,0x8f,0x3e,0xfe,0xc7,0x8a,0x1, 0xf5, +0x8f,0x84,0xe7,0xfd,0x0, 0xe9,0xe0,0x2, 0x1c,0xd7,0x15,0x1, 0x17,0x8a,0xe8,0xf, +0x3f,0xb7,0x16,0x1, 0xe0,0xe, 0x39,0x1f,0x96,0x8e,0x95,0x9e,0x3f,0x99,0xb6,0x9f, +0xe8,0xc, 0x3e,0x17,0xb5,0xaf,0xe2,0x0, 0x7e,0x84,0xe8,0xd, 0x3e,0x97,0x8f,0x84, +0xf0,0x0, 0xab,0xce,0xf0,0x40,0x3b,0xec,0xf2,0x1, 0xc3,0xff,0xe8,0x40,0x3f,0xf7, +0xad,0xd, 0x2, 0xe5,0xe7,0xfd,0x0, 0xc8,0xf0,0x0, 0x28,0x9c,0x97,0x2e,0xe8,0x0, +0xb5,0x85,0xe8,0x0, 0xb7,0x15,0xe2,0x0, 0x7f,0x1c,0xe2,0x0, 0x7e,0x10,0x3f,0x18, +0x3f,0x9c,0xc4,0x1, 0xf0,0x0, 0xa9,0xf, 0x3f,0xe8,0xe2,0x1, 0xc7,0xff,0xf0,0x40, +0x3b,0xff,0xae,0x8e,0xf0,0x0, 0xc2,0x84,0xe7,0xfd,0x2, 0xee,0xe7,0xfe,0x0, 0x8e, +0xea,0x23,0x7e,0x0, 0xe0,0x6, 0x37,0xa1,0x3e,0x16,0x98,0x8c,0xe2,0xff,0xc8,0xff, +0x1, 0x5e,0xea,0x22,0x7c,0xec,0x9e,0x2e,0xe0,0xe, 0x35,0xa1,0x3c,0x96,0x3f,0x21, +0x95,0x89,0xe0,0x43,0x3f,0x1e,0x36,0x21,0xe2,0x0, 0xcf,0x0, 0x3e,0x2b,0xe0,0x43, +0x3e,0x1c,0x3d,0xee,0xe0,0x0, 0x4, 0x43,0xe2,0x0, 0xce,0x0, 0xe0,0x43,0x3d,0x9b, +0x3f,0x6c,0x4, 0x39,0xf0,0x40,0x39,0xfb,0xe0,0x43,0x3f,0x1e,0xe8,0x6b,0x3d,0x23, +0xf0,0x40,0x3a,0x7e,0xe8,0x0, 0xb5,0x85,0xe8,0x6e,0x3d,0x24,0xe8,0x0, 0xb7,0x15, +0xe7,0xff,0x0, 0xbb,0xe0,0x40,0x3e,0x61,0xe2,0x0, 0x7f,0x9c,0x3e,0x1f,0x8f,0x8c, +0xe2,0x1, 0xcf,0xff,0xe7,0xfe,0x1, 0x66,0x17,0xa, 0x3f,0x39,0x16,0x8a,0x3f,0x12, +0x3e,0xbf,0x96,0x1e,0x95,0x8e,0xaf,0xce,0xe8,0xe, 0x3e,0x97,0xe2,0x0, 0x7e,0x84, +0x3f,0x9d,0xb5,0x9e,0xc4,0x81,0xb6,0x2e,0xe2,0x1, 0xc4,0xff,0xf0,0x0, 0xab,0xf, +0x8f,0x84,0x3f,0xf9,0xe7,0xfe,0x2, 0xba,0xe7,0xfe,0x0, 0xd2,0xe0,0x2, 0x19,0x5e, +0xe7,0xfc,0x0, 0xb2,0xe8,0x40,0x3f,0x60,0x0, 0xc6,0xe8,0x40,0x3d,0xe0,0xe7,0xff, +0x0, 0xbd,0x3c,0xe6,0xe7,0xfd,0x0, 0xe2,0x3f,0xea,0xe7,0xfc,0x0, 0xc5,0xf0,0x1, +0x1a,0xe5,0xe7,0xfc,0x0, 0xe9,0x8, 0xb3,0x3f,0x83,0xef,0xfa,0xdf,0xa, 0x14,0x0, +0xef,0xfa,0xde,0xe6,0xef,0xfb,0xd2,0x56,0xef,0xfa,0xdf,0x46,0xef,0xfa,0xd8,0x96, +0xef,0xfa,0xd9,0xf2,0xef,0xfa,0xdf,0x71,0xea,0x23,0x7f,0x18,0x16,0x80,0xea,0x23, +0x7f,0x96,0xb6,0x8e,0xe0,0x13,0x17,0x44,0xb7,0xf, 0xef,0xfa,0xdf,0x20,0xe0,0x2, +0x19,0xe6,0xef,0xfb,0xd1,0x2a,0xef,0xfa,0xdf,0x40,0xef,0xfa,0xdf,0x93,0x17,0x83, +0xaf,0x83,0xef,0xfd,0xd8,0x6a,0xef,0xfa,0xdf,0xbc,0xef,0xfb,0xd2,0xe1,0xef,0xfb, +0xd1,0xda,0x3b,0x0, 0xe0,0x1, 0x19,0x42,0xef,0xfa,0xda,0x2a,0xe0,0xe, 0x8c,0xa2, +0xe0,0xe, 0x8c,0x12,0xe0,0x1, 0x15,0x78,0xe0,0x0, 0xdf,0xa0,0x87,0x83,0xe0,0x10, +0x8f,0x72,0xe2,0x0, 0xc7,0x81,0x3f,0x7f,0x1, 0x11,0xe0,0xe, 0x8d,0x82,0xe0,0xd, +0x8d,0x62,0xe0,0xd, 0x8c,0xf2,0xe0,0xd, 0x8c,0x52,0x16,0x18,0xe0,0x0, 0xdf,0xa6, +0xe0,0x3, 0x1f,0xb4,0x17,0x0, 0xaf,0xf, 0x9, 0xe1,0xe0,0xd, 0x8d,0xf2,0xe0,0xd, +0x8d,0x52,0xe0,0xe, 0x8c,0x82,0xe0,0xd, 0x8c,0x62,0x16,0x18,0xe0,0x0, 0xdf,0x96, +0xe0,0x3, 0x1f,0xb4,0x17,0x0, 0xaf,0xf, 0x9, 0xe1,0xea,0x23,0x7f,0x18,0xea,0x23, +0x7f,0x96,0x16,0x80,0xb6,0x8e,0xb4,0xf, 0x38,0x82,0xea,0x23,0x7f,0x18,0x97,0x8e, +0xea,0x23,0x7e,0x96,0xc7,0x81,0x9e,0x8d,0xe3,0xff,0xc7,0xff,0x3e,0xff,0xb7,0x8e, +0x2, 0x82,0x38,0x82,0xe7,0x5e,0x0, 0xe1,0xe0,0x2, 0x1f,0xdf,0xe0,0x2, 0x1e,0xde, +0x8f,0xf, 0xe2,0x0, 0xcf,0x1, 0x1, 0xd, 0xea,0x23,0x7f,0x32,0x16,0x0, 0xea,0x23, +0x7e,0xb3,0xeb,0xff,0x7f,0xd8,0xae,0xe, 0x17,0x1e,0xae,0xd, 0xaf,0xf, 0x38,0x82, +0xfa,0x23,0x7b,0x33,0xe8,0x0, 0x8f,0x86,0x2f,0x96,0xe0,0x19,0x9f,0x8d,0xe2,0x2, +0xcf,0x80,0xe0,0x6, 0x9f,0xbd,0xe0,0x1, 0x1, 0x17,0xe0,0x6, 0x9e,0x2d,0xea,0x23, +0x7d,0xb2,0x8f,0xb, 0xe2,0x0, 0xcf,0x1, 0x1, 0x36,0xea,0x23,0x7f,0x1c,0xb6,0xe, +0xb7,0x9e,0x38,0x82,0xe2,0x0, 0xcf,0x81,0x1, 0xf, 0xea,0x23,0x7d,0xb2,0x8f,0x8b, +0xe2,0x0, 0xcf,0x81,0xe0,0x1, 0x1, 0x69,0xea,0x23,0x7f,0x1c,0xe0,0x6, 0x9f,0xbd, +0xe0,0x6, 0x9e,0x2d,0x0, 0xed,0xe0,0x19,0x9f,0x8d,0xf0,0x6, 0x9a,0x3d,0xe2,0x2, +0xcf,0x81,0xf0,0x6, 0x99,0xad,0xe0,0x1, 0x1, 0x16,0xea,0x23,0x7d,0xb2,0x8f,0x8b, +0xe2,0x0, 0xcf,0x81,0xe0,0x1, 0x1, 0x6d,0xf2,0xa, 0xca,0x50,0xe0,0x1, 0x2, 0xd9, +0xeb,0xff,0x7c,0x58,0x17,0x81,0xaf,0x8b,0x17,0x1d,0x17,0x9d,0xaf,0x88,0xf0,0x40, +0x3b,0xee,0x0, 0x8b,0xeb,0xff,0x7c,0x58,0xf0,0x0, 0x8b,0x88,0xf0,0x40,0x3a,0x6f, +0xe8,0x40,0x3f,0x67,0xf0,0x40,0x39,0xec,0xe0,0x1, 0x1f,0xd5,0xe0,0x0, 0x14,0xc0, +0x3f,0x9e,0xea,0x23,0x7f,0x1c,0x8f,0x8f,0x9d,0xe, 0xf0,0x0, 0x9a,0x9e,0x3c,0xaf, +0xe0,0xc, 0x3d,0x3f,0xf0,0x12,0x39,0xb9,0xe8,0xf, 0x3f,0xb5,0xe8,0x9, 0x3c,0xb4, +0xe8,0xc, 0x3e,0x12,0x3f,0x99,0x36,0x46,0x37,0xc6,0xe3,0xff,0xc6,0x7f,0xe3,0xff, +0xc7,0xff,0x14,0x80,0xe8,0x0, 0xac,0x86,0xe0,0x6, 0xb6,0x2d,0xe0,0x6, 0xb7,0xbd, +0xf0,0x0, 0x2b,0x86,0xf0,0x0, 0xab,0x8b,0xe7,0xff,0x0, 0x9b,0xf0,0xa, 0x39,0xaa, +0xe0,0x43,0x3d,0x1a,0xe4,0xb, 0x35,0xf, 0xe2,0xd, 0x3d,0xca,0x3e,0xab,0xe0,0x43, +0x3e,0x9d,0x15,0x82,0xe0,0x2d,0x3e,0x9b,0x2e,0x90,0xf8,0xd, 0x3a,0x25,0xe0,0x43, +0x3e,0x9d,0xe4,0xa, 0x36,0x8f,0xe2,0xd, 0x3d,0x4d,0x3e,0xaa,0xe0,0x43,0x3e,0x9d, +0xe0,0x2d,0x3e,0x9b,0xe7,0xfe,0x26,0xfd,0xf1,0xff,0xc3,0xff,0xf0,0x0, 0xab,0x88, +0xe7,0xfe,0x0, 0xf7,0xe7,0xf5,0x16,0x2f,0x3e,0x1f,0xe2,0x0, 0xce,0x4e,0xe0,0x6, +0x9e,0x2d,0xe7,0xfe,0x2, 0xe6,0xe7,0xff,0x15,0xaf,0x3d,0x9c,0xe2,0x4, 0xcd,0xa4, +0xe7,0xfe,0x2, 0xdf,0xea,0x23,0x7d,0xb2,0x8c,0x8b,0xea,0x23,0x7d,0x28,0xeb,0xff, +0x7c,0x58,0xe8,0x0, 0xaf,0x6, 0xe2,0x0, 0xcc,0x81,0x17,0x1e,0xb6,0xa, 0xb7,0x9a, +0xaf,0x8, 0xe7,0xfe,0x1, 0xd4,0xf0,0x40,0x39,0xec,0xf0,0x40,0x3a,0x6f,0xe7,0xfe, +0x0, 0xfd,0xe7,0xf5,0x17,0xaf,0xe8,0xf, 0x3f,0x94,0xe2,0x0, 0xcf,0xce,0xe7,0xfe, +0x2, 0xe6,0xea,0x23,0x7f,0xa8,0xf0,0x0, 0x9b,0x8f,0x9c,0x1f,0xf8,0xb, 0x39,0xa7, +0xe0,0x43,0x3d,0x9b,0xe4,0xe, 0x35,0x8f,0xf0,0xc, 0x3a,0x28,0xe0,0x43,0x3e,0x1c, +0xe2,0xf, 0x3f,0x4b,0xe4,0x9, 0x36,0xf, 0x3f,0xae,0xe0,0x43,0x3f,0x9f,0xe2,0xe, +0x3c,0xcc,0xe0,0x0, 0x15,0x63,0x3f,0x29,0xe0,0x29,0x3d,0x2f,0xe0,0x43,0x3f,0x1e, +0x24,0xaf,0xe0,0x2a,0x3d,0x2e,0x25,0x2c,0x3f,0x9e,0xe2,0x1, 0xcf,0x95,0x2, 0x28, +0x35,0x82,0x36,0x2, 0xe8,0xb, 0x3d,0x97,0x3e,0x18,0xf0,0x40,0x39,0xeb,0xf0,0x40, +0x3a,0x6c,0xf3,0xff,0xc1,0xff,0xf3,0xff,0xc2,0x7f,0xf0,0x6, 0xb1,0xad,0xf0,0x6, +0xb2,0x3d,0xe7,0xfe,0x0, 0xac,0xeb,0xff,0x7c,0x58,0xf0,0x0, 0x8b,0x88,0xf0,0x6, +0x99,0xad,0xe8,0x40,0x3f,0x67,0xf0,0x6, 0x9a,0x3d,0xe7,0xfe,0x0, 0xbf,0xea,0x23, +0x7f,0x1c,0xe8,0x40,0x3f,0xe4,0xe8,0x40,0x3e,0x63,0xe7,0xfd,0x0, 0xfa,0xea,0x23, +0x7d,0xb2,0xeb,0xff,0x7c,0x58,0x17,0x81,0xaf,0x8b,0xe7,0xfe,0x0, 0x9f,0xeb,0xff, +0x7c,0x58,0xe7,0xfe,0x0, 0x9b,0xf0,0x2, 0x1b,0x5e,0xe4,0x0, 0xc5,0xa, 0xf0,0x1, +0x1a,0xd7,0xf0,0xe, 0x3b,0x1a,0xf0,0xd, 0x8b,0x8e,0xe8,0x0, 0x8e,0x85,0xe0,0xd, +0x87,0xae,0xe8,0x40,0x3e,0xf7,0xe4,0xf, 0x37,0xac,0xe0,0xd, 0x8f,0x1e,0xe4,0xf, +0x37,0xc8,0x5, 0x9a,0xe0,0x2, 0x1e,0xcf,0xe0,0x2, 0x1d,0xa6,0x8e,0x8d,0x26,0xa2, +0xe0,0x0, 0x1e,0x4f,0xe8,0xe, 0x3d,0x97,0xe8,0xf, 0x3e,0x17,0x8f,0xe, 0x8f,0x8f, +0x16,0x8a,0xe8,0xd, 0x3e,0xb7,0xe8,0xd, 0x3e,0x96,0xe0,0x2, 0xc6,0xac,0x8e,0x8d, +0xe2,0x0, 0xce,0x81,0x1, 0x31,0xe8,0x2, 0x8e,0xe5,0xe2,0x1, 0xce,0xff,0x1, 0x87, +0xe8,0xa, 0x3d,0x16,0xe0,0xd, 0x8f,0xa, 0xe1,0x2e,0x3f,0xd, 0xaf,0x8, 0xaf,0x89, +0x38,0x82,0xe8,0xc, 0x3d,0x97,0x8e,0x8c,0x2e,0xa9,0xaf,0xc, 0xe0,0x0, 0x1e,0x4f, +0xe8,0x14,0x3e,0x17,0xe8,0x0, 0x8e,0x84,0x26,0xb9,0xe0,0x13,0x3f,0xad,0xf8,0x43, +0x39,0x13,0xf2,0x0, 0xc9,0x0, 0xf8,0x41,0x39,0x42,0xe8,0x73,0x3d,0x22,0xf2,0x0, +0xc9,0xa0,0x5, 0x30,0x3f,0xfd,0x5, 0xa6,0x17,0x90,0x3f,0x9d,0xe2,0x1, 0xc7,0xff, +0xe8,0x0, 0xaf,0x84,0x0, 0xc6,0x16,0x80,0xe8,0xb, 0x3d,0x97,0xe8,0xc, 0x3e,0x17, +0x17,0x80,0xae,0x8b,0x3f,0x6f,0xae,0x8c,0x0, 0xc7,0xe0,0x14,0x3f,0x2d,0xf8,0x43, +0x39,0x94,0xf2,0x0, 0xc9,0x80,0xf8,0x41,0x39,0xc3,0xe8,0x74,0x3d,0x23,0xf2,0x0, +0xca,0xf, 0x5, 0x13,0x3f,0x7d,0x5, 0x94,0x17,0x1, 0x3f,0x1d,0xe2,0x1, 0xc7,0x7f, +0x0, 0xc5,0x17,0xf0,0x3f,0x9d,0xe2,0x1, 0xc7,0xff,0xe8,0x0, 0xaf,0x84,0xe7,0xff, +0x0, 0xa1,0x3f,0xed,0xe7,0xff,0x0, 0x9e,0x3f,0x6d,0xe7,0xff,0x0, 0xb9,0x17,0x7f, +0x3f,0x1d,0xe2,0x1, 0xc7,0x7f,0xaf,0xc, 0xe7,0xff,0x0, 0xb2,0xe0,0x2, 0x1e,0xde, +0xe0,0x19,0x9f,0x8d,0xe2,0x0, 0xcf,0x81,0x1, 0x1f,0xe0,0x2, 0x1f,0xcc,0x8f,0xf, +0x27,0x1a,0xe0,0x0, 0x1f,0xc5,0xe0,0x2, 0x1e,0x58,0x94,0xf, 0x94,0x9f,0x95,0x2f, +0x95,0xbf,0x97,0xcf,0xe0,0x6, 0xb4,0x2d,0xe2,0x0, 0xcf,0x3, 0xb4,0x9c,0xb5,0x2c, +0xb5,0xbc,0xb7,0xcc,0x1, 0x27,0xe2,0x0, 0xcf,0x1, 0x1, 0x2, 0x17,0x2, 0xe0,0x2, +0x1f,0xd7,0xaf,0xf, 0x38,0x82,0xe0,0x2, 0x1f,0xcb,0x87,0x8f,0xc7,0xff,0xe2,0x1, +0xc7,0xff,0xe2,0x0, 0xcf,0xba,0x2, 0xda,0xe0,0x0, 0x1f,0xc5,0xe0,0x2, 0x1f,0x58, +0x94,0x8f,0x95,0x1f,0x95,0xaf,0x96,0x3f,0xe0,0x2, 0x1c,0x4c,0x97,0xcf,0xe0,0x6, +0xb4,0xad,0xf0,0x0, 0x13,0x83,0xf0,0x0, 0xab,0x88,0xb5,0x1e,0xb5,0xae,0xb6,0x3e, +0xb7,0xce,0x17,0x0, 0xe0,0x2, 0x1f,0xd7,0xaf,0xf, 0x38,0x82,0x8, 0xb7,0xf8,0x0, +0xc, 0x3e,0xc0,0x5c,0xe0,0x2, 0x18,0xc0,0xe0,0x1, 0x1e,0xda,0x17,0x80,0xe0,0xa, +0x8f,0x1, 0x6f,0xa6,0x7c,0x8, 0x6f,0xa7,0xaf,0x9d,0xe0,0x4, 0x27,0x5a,0xe0,0x2, +0x1a,0xdc,0xf0,0x2, 0x1f,0x5e,0x7a,0x86,0xef,0xfc,0xd3,0xb8,0xe0,0x1, 0x1b,0xd7, +0xdf,0x9e,0x8a,0x7, 0xe0,0x0, 0x22,0x4a,0xf0,0x1, 0x1e,0x8e,0xfa,0x23,0x7c,0x38, +0xe8,0x0, 0x8c,0x8d,0xe0,0x2, 0x1e,0x5e,0xe0,0x2, 0x18,0xd7,0x16,0x80,0x0, 0x87, +0xc6,0x81,0x3f,0xed,0xe2,0x1, 0xc7,0xff,0x3f,0xf4,0x3, 0xbb,0xe0,0xd, 0x8f,0x8c, +0x15,0x8a,0x3f,0xf9,0xc6,0xa, 0x3d,0xbf,0x3, 0xf4,0xe0,0xa, 0x3d,0x91,0x8f,0xa, +0xe2,0x0, 0xcf,0x1, 0x1, 0xee,0xf0,0x2, 0x3c,0x1f,0x8f,0x2, 0x2f,0x6a,0xe0,0x1, +0x87,0xa, 0xc7,0x7f,0xe2,0x1, 0xc7,0x7f,0xe2,0x0, 0xcf,0x3a,0x2, 0xe2,0xea,0x23, +0x7e,0x34,0xe4,0x0, 0xc6,0x8a,0x14,0x83,0xac,0x82,0xe0,0x0, 0xc6,0xe4,0xaf,0x8c, +0xe8,0xd, 0x3e,0x9e,0xe0,0x0, 0x1e,0x45,0x3d,0x9c,0x94,0x9b,0x91,0xb, 0x90,0xab, +0x94,0x3b,0x96,0x4b,0xb4,0x9d,0x14,0x83,0xb1,0xd, 0xb0,0xad,0xb4,0x3d,0xb6,0x4d, +0x16,0x80,0xae,0x8a,0xe0,0x6, 0x0, 0xcd,0xfa,0x23,0x7c,0x38,0xf0,0x1, 0x1e,0x8e, +0xea,0x23,0x7f,0xb4,0x8f,0x8f,0xf0,0xd, 0x3c,0x1f,0x8c,0x8d,0xe0,0x6, 0x2c,0x98, +0xe0,0x2, 0x1e,0xd5,0xe0,0x2, 0x1f,0x54,0x8f,0x8d,0x7e,0x87,0x7f,0x5, 0xe0,0x4, +0x27,0x86,0xe0,0x2, 0x1e,0x4c,0x89,0xc, 0x7e,0x3, 0xe0,0x4, 0x29,0xe, 0xe0,0x0, +0x1f,0x1b,0xf0,0x0, 0x1c,0x98,0x8f,0x8e,0x15,0x3e,0xe2,0x0, 0xcf,0x80,0xe0,0x1, +0x1f,0xda,0xe0,0x1, 0x14,0xff,0xe0,0x79,0x39,0x2f,0xe8,0x40,0x3c,0x69,0xf0,0x0, +0x7c,0x82,0xe0,0x1, 0xd3,0x11,0xe0,0x4, 0x22,0x65,0x12,0x0, 0xf0,0x2, 0x1c,0xd7, +0xf0,0x0, 0x1d,0x17,0xf0,0x0, 0x7c,0x4, 0xf0,0x40,0x3e,0x64,0xf8,0x40,0x3c,0x6d, +0x39,0xe4,0x39,0x64,0xf8,0x40,0x3e,0xee,0xf0,0x0, 0x17,0xa, 0xf0,0x1e,0x3f,0x33, +0xe8,0x0, 0x8e,0x8, 0xf8,0xe, 0x3e,0x9e,0xe0,0xd, 0x8d,0xe, 0x3d,0x7c,0xe0,0x1, +0x3, 0x90,0x17,0x8f,0xe0,0x6, 0x35,0x22,0x3f,0xda,0xe4,0x0, 0xc7,0x8a,0xf0,0xd, +0x3d,0x16,0x8c,0xbd,0xe8,0xf, 0x3f,0x99,0x8a,0x8f,0x24,0xb8,0xe0,0x6, 0x9c,0x2e, +0x2c,0x4, 0xe0,0x6, 0x9f,0xbe,0x27,0xb2,0xe2,0x0, 0xcc,0x84,0x10,0xb8,0x2, 0x8d, +0x10,0xb0,0x1, 0xb, 0xe2,0x0, 0xcc,0x83,0x10,0xa0,0x1, 0x7, 0xe2,0x0, 0xcc,0x82, +0x10,0x98,0x17,0x90,0xe0,0x61,0x39,0xaf,0x26,0x1d,0xf0,0x2, 0x1b,0x98,0xe8,0x0, +0x87,0xc7,0xe2,0x0, 0xc7,0x8f,0x3f,0xfa,0xe0,0x2, 0x1, 0x6d,0xe0,0x2, 0x1e,0x98, +0x17,0x81,0x0, 0x89,0xe0,0x1, 0x87,0x6d,0xc6,0x8a,0xe2,0x0, 0xc7,0xf, 0x3f,0x7a, +0xe0,0x2, 0x1, 0x62,0x3f,0x6f,0xe2,0x1, 0xc7,0x7f,0x3e,0x7e,0x3d,0xef,0xc7,0x81, +0x2, 0xf2,0xf0,0xf, 0x3d,0x16,0xc4,0xff,0xac,0xbf,0x17,0xa, 0x3f,0x3a,0xf0,0xf, +0x3c,0x9e,0x8e,0x8f,0xe2,0x0, 0xce,0x81,0xe0,0x1, 0x1, 0x2, 0xe0,0x1, 0x2a,0x8c, +0x66,0x84,0x3e,0x9a,0x8e,0x8d,0xe0,0x1, 0x2e,0xdf,0x62,0x83,0x8e,0x85,0xe0,0x1, +0x2e,0xdb,0xf8,0xd, 0x3e,0x9e,0xe0,0x6, 0x9e,0xad,0xe2,0x0, 0xce,0x9e,0xe0,0x3, +0x2, 0x96,0xf8,0x9, 0x3e,0x9e,0xe0,0x6, 0x9e,0x39,0xe2,0x0, 0xce,0x13,0xe0,0x3, +0x5, 0x9b,0xe0,0x1, 0x18,0xaf,0xe0,0x1, 0x1a,0xae,0x8c,0x1, 0x8d,0x85,0x34,0x28, +0x3d,0xc8,0xc5,0xed,0x3d,0xfc,0xe0,0x3, 0x5, 0xf, 0xe0,0x2, 0x1d,0xfd,0xe0,0xd, +0x8c,0x39,0x8d,0xdb,0xe0,0xd, 0x8c,0xc9,0x3d,0xb8,0xe0,0x1, 0x18,0xf2,0x3d,0x99, +0xa0,0x81,0x35,0xa1,0x3d,0x91,0x95,0x8b,0xe2,0x1, 0xcd,0xc7,0xe0,0x6, 0x2, 0x4f, +0xe2,0x0, 0xce,0x9e,0xe0,0x6, 0x2, 0xbe,0x17,0x3, 0xaf,0xf, 0xaf,0x1f,0xc1,0x81, +0x8f,0x87,0xe2,0x1, 0xc1,0xff,0x3f,0xf3,0xe7,0xfe,0x2, 0xe0,0xe0,0x2, 0x1f,0x40, +0xe0,0x2, 0x1e,0x4a,0xe0,0xa, 0x8f,0x8e,0xf0,0x0, 0x63,0x82,0x86,0xc, 0xe2,0x0, +0xcf,0x81,0xe8,0x0, 0xa9,0x17,0xf8,0x40,0x3e,0xe8,0xe8,0x0, 0xae,0x7, 0xe0,0x4, +0x1, 0x71,0xe0,0x3, 0x22,0x2d,0x62,0x88,0x11,0x1, 0xe0,0x5, 0x2a,0xaa,0x66,0x5, +0x8f,0x8c,0xe0,0x2, 0x2f,0xaf,0xe8,0x0, 0x89,0x8d,0x67,0x7, 0xe4,0x0, 0xc1,0x8a, +0xf0,0x0, 0x63,0x85,0x62,0x86,0xe0,0x2, 0x1c,0xd8,0xe0,0x2, 0x1c,0x18,0x17,0x80, +0x3d,0x63,0xaf,0x8e,0xe8,0x0, 0xaf,0x87,0xaf,0x85,0xe0,0x1, 0xd1,0xf3,0xe0,0x3, +0x22,0x33,0x3c,0x62,0xc0,0x24,0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0x66,0x84,0x3e,0x9a, +0x8e,0x8d,0x2e,0x87,0xf0,0x0, 0x63,0x83,0xe8,0x0, 0x8e,0x87,0xe0,0x2, 0x26,0x93, +0xe0,0x0, 0x22,0xda,0xe2,0x0, 0xca,0x83,0xe7,0xff,0x1, 0x33,0xe2,0x0, 0xca,0x81, +0xf8,0xf, 0x3e,0x9e,0xe0,0x6, 0x9b,0x2f,0xf0,0x6, 0x9d,0xbf,0xe0,0x1, 0x1, 0x18, +0x14,0xa7,0x14,0x26,0x3d,0xe2,0x3d,0x63,0x3c,0x90,0x3c,0x10,0x7f,0x81,0xdd,0x84, +0x67,0x81,0xf2,0x1f,0xc5,0xff,0xe0,0xd, 0x8f,0x8f,0xe2,0x1f,0xc3,0x7f,0xe0,0xe, +0x37,0xac,0xe2,0x1, 0xcf,0xff,0xf0,0x1b,0x3d,0x9e,0xf3,0xff,0xc5,0xff,0xe0,0x0, +0x1, 0x79,0xe4,0x5, 0x32,0xae,0xe4,0x5, 0x32,0xc0,0xf0,0x0, 0x13,0x81,0xf0,0x17, +0x3b,0x92,0xe8,0x40,0x39,0x67,0xe2,0x1, 0xc1,0x7f,0xc2,0x1, 0x3b,0x15,0xe2,0x1, +0xc2,0x7f,0xe3,0xff,0xc3,0x7f,0x17,0x86,0xe8,0xf, 0x3f,0xbc,0x66,0x82,0xf0,0xe, +0x35,0xc8,0x3f,0x9d,0xaf,0x4f,0xe0,0xd, 0x33,0x48,0x47,0x26,0xae,0xaf,0xc1,0x81, +0xaf,0x6f,0xe2,0x1, 0xc1,0xff,0x47,0x27,0xab,0x3f,0xf0,0x0, 0xc6,0x1, 0xf0,0x0, +0xad,0xdf,0xf2,0x1, 0xc6,0x7f,0xaf,0x7f,0x8f,0x87,0x3f,0xf3,0xe7,0xfd,0x2, 0xc6, +0xe7,0xfe,0x0, 0xe6,0xf8,0xf, 0x3e,0x9e,0xe0,0x6, 0x9b,0x2f,0xf0,0x6, 0x9d,0xbf, +0x14,0xa7,0x14,0x26,0x3d,0xe2,0x3d,0x63,0x3c,0x90,0x3c,0x10,0xdd,0x35,0xf8,0x1e, +0x3f,0x1d,0xe8,0xd, 0x8f,0x8e,0xf2,0x1f,0xc5,0xff,0xe0,0xe, 0x37,0xac,0xe2,0x1, +0xcf,0xff,0xf0,0x1b,0x3d,0x9e,0xe2,0x1f,0xc3,0x7f,0xf3,0xff,0xc5,0xff,0x1, 0x29, +0x12,0x80,0xe7,0xff,0x0, 0xb4,0x15,0x80,0xe4,0x0, 0xc5,0x8a,0xe0,0x2, 0x1e,0x18, +0x3d,0x9c,0x9b,0xb, 0xf0,0x0, 0x9d,0x9b,0x14,0xa7,0x14,0x26,0x3d,0xe2,0x3d,0x63, +0x3c,0x90,0x3c,0x10,0xef,0xff,0xdd,0x11,0xf8,0x1e,0x3f,0x1d,0xe8,0xd, 0x8f,0x8e, +0xf2,0x1f,0xc5,0xff,0xe0,0xe, 0x37,0xac,0xe2,0x1, 0xcf,0xff,0xf0,0x1b,0x3d,0x9e, +0xe2,0x1f,0xc3,0x7f,0xf3,0xff,0xc5,0xff,0xe0,0x80,0x12,0x80,0xe7,0xff,0x1, 0x97, +0xe1,0x80,0xc3,0x0, 0xe3,0xff,0xc3,0x7f,0xe7,0xff,0x0, 0x97,0x26,0x5e,0xe0,0x2, +0x1c,0x98,0x87,0xc9,0xe2,0x0, 0xc7,0x8f,0x3d,0x7f,0x1, 0x4e,0xe0,0x2, 0x1e,0x98, +0x3f,0xe5,0x0, 0x88,0xe0,0x1, 0x87,0x6d,0xc6,0x8a,0xe2,0x0, 0xc7,0xf, 0x3f,0x7a, +0x1, 0x44,0x3f,0x6f,0xe2,0x1, 0xc7,0x7f,0x3e,0x7e,0x3d,0xef,0xc7,0x81,0x2, 0xf3, +0x0, 0xc4,0x15,0x80,0xe0,0x2, 0x1f,0x18,0xe4,0x0, 0xc5,0x8a,0xf8,0xd, 0x3e,0x9e, +0x3d,0x9e,0xf0,0x6, 0x9a,0xbd,0x9f,0xb, 0x9f,0x9b,0xe0,0x0, 0x15,0xc0,0x3d,0xa1, +0x3c,0x3b,0x3f,0x31,0x3f,0xb1,0xe8,0xb, 0x3d,0xb5,0x3f,0x18,0x3f,0x9b,0x37,0x46, +0x37,0xc6,0xe0,0x6, 0xb7,0x2d,0xe0,0x6, 0xb7,0xbd,0xe7,0xfd,0x0, 0x8c,0xe0,0x2, +0x1f,0x4a,0xf0,0x2, 0x1f,0x5e,0x8f,0x8e,0xe0,0x1, 0x27,0xca,0xe0,0x2, 0x1e,0xdc, +0x17,0x81,0x7e,0x86,0xaf,0x8d,0x16,0xb7,0xe0,0x0, 0x1f,0x8d,0xe0,0x1a,0x9f,0xdf, +0xe1,0x2f,0x3f,0x9d,0xaf,0x8e,0xe7,0xfb,0x0, 0x99,0x62,0x85,0x8f,0x85,0xe7,0xfb, +0x2f,0xfa,0x66,0x6, 0x8c,0x8c,0xe7,0xfb,0x2c,0xf6,0xe0,0x2, 0x1a,0xcc,0x89,0x5, +0x7a,0x83,0xe0,0x4, 0x21,0x7e,0x66,0x83,0xc1,0x7f,0xa9,0xd, 0xe7,0xfb,0x0, 0xf1, +0x66,0x83,0x8f,0x8d,0xe7,0xfd,0x2f,0xd1,0xe0,0x2, 0x1c,0x57,0xd8,0x5a,0xe7,0xfd, +0x0, 0xcc,0xf0,0xb, 0x3d,0x16,0xae,0xbb,0xe0,0x2, 0x1d,0xef,0xe0,0x1, 0xae,0x8f, +0xae,0x8b,0xe7,0xfd,0x2a,0xe9,0xe7,0xfc,0x0, 0xe2,0xe0,0x1, 0x1c,0xb1,0xf0,0x1, +0x1b,0xb0,0x8d,0x89,0xe8,0x0, 0x8e,0x7, 0x35,0xa8,0x3e,0x4b,0xc6,0x62,0x3e,0xfc, +0xe7,0xfc,0x3, 0x61,0xe0,0x1, 0x8d,0x8f,0xe0,0x1, 0x25,0x87,0xe0,0x2, 0x1e,0x6f, +0x8e,0xc, 0xe0,0x1, 0x2e,0x2, 0xe0,0x0, 0x1c,0xc5,0xe0,0xc, 0x3c,0x9e,0x9d,0x8c, +0x9c,0x1c,0x2d,0x82,0x24,0x2b,0xf8,0x1, 0x3e,0x9e,0xe0,0x6, 0x9e,0x31,0xe0,0xb, +0x3e,0xab,0xe0,0xd, 0x3e,0x28,0xe4,0x8, 0x36,0x8f,0xe4,0xc, 0x35,0x8f,0xe2,0xd, +0x3c,0x4d,0xe2,0xb, 0x3e,0x4b,0x3e,0xa8,0xe0,0xc, 0x3d,0xac,0x3e,0x9c,0xe2,0x2, +0xce,0xac,0x2, 0x14,0x3f,0x19,0x94,0xe, 0x94,0x9e,0x95,0xae,0x96,0x3e,0x96,0xce, +0xe0,0x0, 0x17,0x64,0xe0,0x6, 0xb4,0x21,0x3f,0x11,0xf0,0x8, 0x3d,0x16,0x10,0x85, +0xa8,0xb8,0xb4,0x9e,0xb5,0xae,0xb6,0x3e,0xb6,0xce,0x17,0x3c,0xe0,0x1, 0xaf,0xf, +0xf8,0xe, 0x3e,0x9e,0xe0,0xd, 0x8c,0x3e,0xe0,0xd, 0x8c,0xce,0xe0,0x0, 0x0, 0xd1, +0xf0,0x2, 0x1b,0xc0,0xe0,0x2, 0x1e,0xca,0xe8,0xa, 0x8f,0x87,0x62,0x82,0x86,0x8d, +0xe2,0x0, 0xcf,0x81,0xaa,0x15,0xae,0x85,0xe0,0x1, 0x1, 0x44,0xf0,0x0, 0x63,0x86, +0xe8,0x0, 0x8f,0x87,0xe0,0x1, 0x2f,0xf8,0xf0,0x0, 0x63,0x85,0xe8,0x0, 0x89,0x7, +0xe0,0x2, 0x21,0x3a,0x62,0x83,0x89,0x5, 0xe0,0x4, 0x21,0x15,0xe8,0x0, 0x89,0x8d, +0x66,0x87,0xe4,0x0, 0xc1,0x8a,0x67,0x5, 0xf0,0x0, 0x63,0x86,0xe0,0x2, 0x1c,0xd8, +0xe0,0x2, 0x1c,0x18,0x3d,0x63,0xaf,0x8d,0x39,0x6f,0xaf,0x8e,0xe8,0x0, 0xaf,0x87, +0xe0,0x1, 0xd0,0x40,0xe0,0x2, 0x1c,0x18,0x3d,0x63,0xe0,0x1, 0x14,0xff,0xe0,0x1, +0xd0,0x73,0x3c,0x62,0xc0,0x24,0xf8,0x0, 0xf, 0x28,0xb, 0xe1,0xe0,0x2, 0x1e,0x5c, +0x7e,0x6, 0xe7,0xfe,0x0, 0xba,0xf8,0xc, 0x3e,0x9e,0xe0,0x6, 0x9c,0xbc,0xe2,0x0, +0xcc,0xbc,0xe0,0x1, 0x5, 0x9c,0xe0,0xd, 0x8c,0x3c,0xe0,0xd, 0x8c,0xcc,0x7f,0x81, +0xef,0xfc,0xd0,0x8e,0xe0,0x2, 0x1e,0x8b,0xe2,0x0, 0xcc,0x1, 0xac,0xd, 0x67,0x81, +0xe0,0x3, 0x1, 0x0, 0xf8,0xd, 0x3e,0x9e,0xe0,0x6, 0x9b,0x2d,0xe2,0x0, 0xcb,0x1e, +0xe0,0x1, 0x5, 0xc5,0xe0,0x1, 0x1d,0xb1,0xf0,0x1, 0x1b,0xb0,0x8e,0xb, 0xe8,0x0, +0x8f,0x7, 0x36,0x28,0x3f,0x4c,0xc7,0x62,0x3b,0x7e,0xf0,0x6, 0x9d,0xbd,0xe0,0x2, +0x4, 0x7f,0xf2,0x0, 0xcd,0x94,0x5, 0x94,0xe0,0x1, 0x1f,0x2f,0xf0,0x1, 0x1b,0xae, +0x8e,0x8e,0xe8,0x0, 0x8f,0x7, 0x36,0xa8,0x3f,0x4d,0x16,0xec,0x3e,0x9e,0xf0,0x2d, +0x3d,0xad,0xe7,0xfc,0x26,0xef,0xe9,0x2e,0x3f,0x2b,0xe7,0xfc,0x27,0x6b,0x8f,0x6f, +0xe7,0xfc,0x2f,0x68,0x17,0x2, 0xaf,0x6f,0xe7,0xfc,0x0, 0xe4,0xe2,0x0, 0xcc,0x83, +0xe0,0x3, 0x1, 0x6b,0x22,0x1a,0xe8,0xd, 0x8e,0x8e,0xe2,0x1, 0xce,0xff,0xe0,0x3, +0x1, 0x3e,0xe0,0x2, 0x1e,0x5e,0x16,0x81,0x0, 0x89,0xe0,0xe, 0x8d,0xac,0xc6,0xa, +0xe2,0x1, 0xcd,0xff,0xe0,0x1, 0x1, 0x11,0x3e,0xee,0x3f,0x6d,0xe2,0x1, 0xc7,0x7f, +0x3f,0x74,0x17,0x1, 0x3f,0x1d,0x4, 0xf2,0xe2,0x0, 0xcc,0x81,0x15,0x8a,0x3d,0xbf, +0xe0,0x1, 0x1, 0x1c,0xe0,0x2, 0x1e,0xd7,0x3d,0x9d,0x16,0x82,0xae,0x8b,0xe0,0x2, +0x1a,0xd5,0x8e,0x85,0x7a,0x87,0xe0,0x2, 0x2e,0x98,0xe0,0x2, 0x1f,0x54,0x8e,0x8e, +0x7f,0x5, 0x26,0x9c,0xe7,0xf9,0x24,0xbf,0xe0,0x2, 0x1e,0x4c,0xe8,0xf, 0x3f,0x98, +0xc4,0xff,0x89,0xc, 0xac,0x8f,0x7e,0x3, 0xe7,0xf9,0x21,0x3b,0xe7,0xfd,0x0, 0xc5, +0x62,0x86,0x89,0x5, 0xe2,0x0, 0xc9,0x1, 0xe0,0x1, 0x1, 0x11,0x66,0x5, 0x11,0x0, +0x8f,0x8c,0xe7,0xfb,0x27,0x92,0xe7,0xfd,0x0, 0xbd,0xf0,0x0, 0x63,0x86,0xe8,0x0, +0x8e,0x87,0x2e,0xe1,0x2c,0xe2,0xe7,0xfd,0x0, 0xaa,0xe0,0x1, 0x18,0xb1,0xe0,0x1, +0x1a,0xb0,0x8c,0x1, 0x8c,0x85,0x34,0x28,0x3c,0xc8,0x3e,0xf9,0xe7,0xfe,0x2, 0x5d, +0xe0,0x0, 0x1c,0xac,0x8e,0x89,0xe2,0x0, 0xce,0x81,0xe7,0xfe,0x1, 0xd6,0xe0,0x2, +0x25,0xe2,0xe2,0x0, 0xcd,0xbb,0x2, 0x84,0xc5,0x81,0xe0,0x1, 0xad,0x8f,0x17,0x3, +0xaf,0xf, 0xaf,0x1f,0x17,0x80,0xaf,0x89,0x17,0x1, 0xe0,0x2, 0x1f,0xef,0xaf,0xf, +0xe7,0xfa,0x0, 0xbf,0x62,0x88,0x12,0x0, 0x11,0x1, 0xe7,0xfa,0x22,0xda,0xe0,0x0, +0x1c,0x9b,0x16,0x80,0x8f,0x89,0xe0,0x2f,0x3f,0x8d,0xaf,0x89,0xef,0xfa,0xd8,0x10, +0xe0,0x1, 0x1f,0xdc,0x16,0x7b,0xa6,0x8f,0xa7,0xcd,0x3f,0xdc,0xbf,0xcd,0x66,0x5, +0x8f,0x8c,0xe7,0xfa,0x27,0xca,0xe7,0xfc,0x0, 0xf5,0xf0,0x6, 0x9d,0xbd,0xf2,0x0, +0xcd,0x94,0xe7,0xfe,0x5, 0xde,0xe0,0x1, 0x18,0xaf,0xe0,0x1, 0x1a,0xae,0x8e,0x81, +0x8f,0x5, 0xe7,0xfe,0x0, 0xca,0xe4,0x0, 0xc6,0x8a,0xe0,0x0, 0xc6,0xe4,0x15,0x8a, +0x3d,0xbf,0xe0,0x0, 0x1e,0x45,0xe8,0xd, 0x3e,0x9e,0x3e,0x1b,0x91,0xc, 0x90,0x9c, +0x94,0x2c,0x95,0x3c,0x96,0x4c,0xe2,0x0, 0xcc,0x81,0xb1,0xd, 0xb0,0x9d,0xb4,0x2d, +0xb5,0x3d,0xb6,0x4d,0xe7,0xfe,0x1, 0xe8,0xe0,0x2, 0x1e,0xd7,0x3d,0x9d,0xac,0x8b, +0xe7,0xfe,0x0, 0xe7,0xe8,0x0, 0x89,0x8d,0x66,0x7, 0xe4,0x0, 0xc1,0x8a,0x66,0x85, +0x67,0x6, 0xe0,0x2, 0x1c,0xd8,0xe0,0x2, 0x1c,0x18,0x3d,0x63,0xa9,0xc, 0xa9,0xd, +0xa9,0xe, 0xe0,0x0, 0xdf,0xf, 0xe7,0xfd,0x0, 0xcf,0xe0,0x2, 0x1f,0x96,0x14,0x85, +0x66,0x8, 0xac,0x8f,0xe7,0xf9,0x26,0x7d,0xef,0xfa,0xd7,0xba,0xe0,0x0, 0x1e,0x9b, +0x16,0x0, 0x8f,0x8d,0xe0,0x1, 0x1e,0xdc,0xe0,0x0, 0x1f,0x1b,0xe0,0x2f,0x3f,0x8c, +0xa6,0x8d,0xaf,0x8e,0x16,0x7b,0xa7,0xcd,0x3f,0xdc,0xbf,0xcd,0xe7,0xf9,0x0, 0xe9, +0xe0,0x1, 0x1d,0xb1,0xf0,0x1, 0x1b,0xb0,0x88,0x8b,0xe8,0x0, 0x8d,0x87,0x30,0xa8, +0x3d,0xc1,0xc5,0xe2,0x3e,0xfb,0xe7,0xf9,0x3, 0x39,0xe0,0x1, 0x8d,0x8f,0xe0,0x0, +0x25,0xe5,0xe0,0x0, 0x18,0xc5,0x38,0x9e,0xf0,0x0, 0x92,0x81,0xf0,0x0, 0x9a,0x11, +0xe8,0x40,0x3a,0xe5,0xe3,0xff,0xc2,0xff,0xe0,0xe, 0x3e,0xa5,0xe8,0xc, 0x3e,0x24, +0xe4,0xb, 0x37,0xf, 0xe4,0x13,0x36,0xf, 0xe2,0xe, 0x3d,0xce,0xf2,0xc, 0x39,0xcc, +0xe0,0xb, 0x3f,0x2b,0xe8,0xe, 0x3e,0x23,0x3f,0x1b,0xe2,0x0, 0xcf,0x31,0xe0,0x1, +0x2, 0x5, 0xe2,0x0, 0xce,0x9e,0x5, 0x8d,0xe0,0x1, 0x18,0xb1,0xe0,0x1, 0x1a,0xb0, +0x8e,0x1, 0x8f,0x5, 0x36,0x28,0x3f,0x4c,0xc7,0x62,0x3e,0xfe,0xe7,0xfd,0x4, 0x11, +0x7f,0x81,0xef,0xfb,0xdf,0x1d,0xe2,0x0, 0xcc,0x1, 0x67,0x81,0xe0,0x1, 0x1, 0x30, +0xe0,0x1, 0x8f,0xf, 0xe2,0x0, 0xcf,0x3b,0xe7,0xf8,0x2, 0xf8,0xc7,0x1, 0xe0,0x1, +0xaf,0xf, 0xe7,0xf8,0x0, 0xf3,0xe0,0x2, 0x1e,0x54,0x7e,0x5, 0xe7,0xfd,0x0, 0xee, +0xe8,0x6, 0x3b,0x1a,0x16,0x80,0x8f,0x6f,0xae,0xb6,0x27,0x15,0xe2,0x0, 0xcf,0x1, +0xe7,0xfa,0x2, 0x8a,0x16,0xbc,0xe0,0x2, 0x1c,0xbe,0x17,0x3, 0xe0,0x1, 0xae,0x8f, +0x16,0x81,0xae,0x89,0xaf,0xf, 0xaf,0x1f,0xe7,0xf8,0x0, 0xdb,0xf7,0xfd,0x2d,0x99, +0xe7,0xfa,0x0, 0x80,0xac,0x6f,0x0, 0xef,0xe0,0x0, 0x16,0xe4,0xe8,0xd, 0x3e,0x9e, +0xe8,0xd, 0x3e,0x9d,0x94,0xd, 0x94,0x9d,0x95,0x2d,0x95,0xbd,0x96,0x4d,0xe0,0x0, +0x1e,0xc5,0x3f,0x1d,0xb4,0xe, 0x16,0x83,0xb4,0x9e,0xb5,0x2e,0xb5,0xbe,0xb6,0x4e, +0x17,0x1, 0xe0,0x1, 0xaf,0xf, 0xae,0x8f,0xae,0x9f,0xe7,0xf8,0x0, 0xba,0xe0,0x2, +0x1c,0x57,0xef,0xff,0xd5,0xe7,0x16,0x8a,0xe8,0xd, 0x3e,0x98,0x3f,0xe2,0xe9,0x80, +0xaf,0x98,0xe8,0x40,0x3e,0xf8,0x1, 0xfc,0x66,0x8, 0x26,0x7, 0xe0,0x1, 0x1f,0xdc, +0xa6,0x8f,0xa7,0xcd,0xcf,0x84,0xbf,0xcd,0xe8,0x0, 0x89,0x8d,0xe0,0x2, 0x1c,0xd8, +0xe4,0x0, 0xc1,0x8a,0xe0,0x2, 0x1c,0x18,0x3d,0x63,0xe0,0x0, 0xde,0x43,0xe7,0xfc, +0x0, 0x83,0x3a,0x62,0xe7,0xfa,0x0, 0xea,0xe2,0x0, 0xce,0x9e,0xe0,0x0, 0x2, 0xce, +0xe8,0x5, 0x3a,0xc4,0xe7,0xfb,0x22,0xbb,0xe2,0x2, 0xcf,0x2c,0xe7,0xfb,0x2, 0x37, +0xf8,0xd, 0x3e,0x9e,0x94,0x11,0x94,0xa1,0x95,0xb1,0x96,0x41,0xe0,0x0, 0x17,0x64, +0x3f,0x1d,0xf0,0x6, 0xb2,0xad,0x10,0x85,0xf0,0xd, 0x3d,0x16,0xa8,0xbd,0xb4,0x1e, +0xb4,0xae,0xb5,0xbe,0xb6,0x4e,0xe7,0xfb,0x0, 0xa2,0xe0,0x0, 0x16,0xe4,0xe7,0xfd, +0x0, 0xe0,0xe0,0x0, 0x16,0x64,0xe8,0xc, 0x3e,0x1e,0xe8,0xc, 0x3e,0x1d,0x90,0x8c, +0x94,0x1c,0x94,0xac,0x95,0x3c,0x95,0xcc,0xe0,0x0, 0x1e,0x45,0xe0,0x1, 0xae,0x8f, +0x3f,0x1c,0xb0,0x8e,0x16,0x3, 0xb4,0x1e,0xb4,0xae,0xb5,0x3e,0xb5,0xce,0xe0,0x2, +0x1f,0x6f,0xae,0xf, 0xae,0x8e,0xae,0x1f,0xe7,0xf7,0x0, 0xd3,0x17,0x3c,0xe0,0x1, +0xaf,0xf, 0xe7,0xf7,0x0, 0xcb,0x15,0x8a,0x3d,0xbf,0xe0,0x2, 0x1d,0x57,0xe0,0x0, +0x16,0xe4,0x3d,0x1b,0xe7,0xf5,0x0, 0xd6,0xe0,0x1, 0x1e,0x31,0xf0,0x1, 0x1b,0xb0, +0x8d,0x8c,0xe8,0x0, 0x8e,0x7, 0x35,0xa8,0x3e,0x4b,0xc6,0x62,0x3e,0xfc,0xe7,0xff, +0x3, 0x29,0xe7,0xfb,0x0, 0xbe,0x14,0x1, 0xe7,0xf4,0x0, 0xf2,0x8, 0xb3,0xe0,0x3, +0x1f,0xb8,0x17,0x1, 0xa1,0xf, 0x16,0xfe,0xe0,0x1, 0xa7,0xe2,0x3f,0x58,0x3f,0xdd, +0x3f,0xce,0xe0,0x1, 0xbf,0xe2,0x2c,0x21,0xe0,0x2, 0x19,0xc8,0x17,0x3, 0x8f,0x83, +0x3f,0x3f,0xe0,0x2, 0x1f,0xc4,0x3f,0x9e,0x8c,0xf, 0xd4,0xa9,0xe0,0x2, 0xa7,0xd2, +0x17,0x43,0x3f,0xde,0xcf,0x9c,0xe0,0x2, 0xbf,0xd2,0x8e,0x83,0x8f,0x83,0xe0,0x3, +0x1f,0x30,0xe4,0x0, 0xc6,0x85,0xe4,0x0, 0xc7,0x85,0x3f,0x9e,0x3f,0x1d,0x8c,0xcf, +0x8c,0x3e,0x9, 0xa1,0xe0,0x5, 0x0, 0xee,0x14,0x28,0xd4,0x91,0xe0,0x2, 0xa7,0xd2, +0xe0,0x2, 0x1f,0x48,0xcf,0xbc,0xe0,0x2, 0xbf,0xd2,0x8e,0x8e,0x8f,0x8e,0xe0,0x3, +0x1f,0x30,0xe4,0x0, 0xc7,0x85,0xe4,0x0, 0xc6,0x85,0x3f,0x9e,0x84,0xcf,0x3f,0x1d, +0xc4,0xfc,0x8c,0x3e,0xe2,0x1, 0xc4,0xff,0x9, 0xa1,0xe0,0x5, 0x0, 0xd3,0x0, 0x0, +0x8, 0xb7,0xf8,0x0, 0xc, 0x3e,0xc0,0x64,0xe0,0x2, 0x1f,0x66,0xe0,0x2, 0x1f,0xfd, +0x87,0xe, 0xe0,0x3, 0x8e,0xaf,0xe2,0x0, 0xc7,0x1, 0x3e,0xfe,0xe0,0x4, 0x1, 0x7f, +0x8d,0x8f,0x89,0xaf,0x7d,0x85,0x3e,0x6b,0xe0,0x2, 0x1d,0xf9,0x99,0x5f,0x8f,0x1f, +0x8f,0xbf,0x3e,0xe3,0x7d,0x83,0x3d,0x6e,0x3d,0xec,0xe2,0x1, 0xc5,0x7f,0xe2,0x1, +0xc5,0xff,0x3d,0x7b,0x3, 0x82,0x3f,0x6c,0xf0,0x40,0x3d,0xee,0x3e,0x6f,0x3f,0x6d, +0xe2,0x1, 0xc6,0x7f,0xe2,0x1, 0xc7,0x7f,0x3e,0x7e,0xf2,0x1, 0xc5,0xff,0x3, 0x82, +0x3f,0xed,0xe0,0x0, 0x1f,0x43,0x15,0x80,0xf0,0x1, 0x1f,0x5e,0xb5,0x8e,0xe2,0x1, +0xc7,0xff,0xe0,0x2, 0x1f,0x46,0xe0,0x1, 0x1d,0xdd,0x7f,0x82,0xf8,0x40,0x3e,0x6e, +0xe0,0x1f,0x17,0xff,0xe8,0x80,0xb7,0x9c,0xf0,0x40,0x3e,0x7b,0xe0,0x80,0xb7,0x9e, +0x1, 0xfa,0x14,0x1, 0xef,0xf9,0xd9,0x90,0xef,0xfa,0xdc,0x30,0xef,0xf9,0xd6,0x90, +0xe0,0x2, 0x1e,0xc8,0x17,0x5, 0x8f,0x8d,0xf8,0x40,0x3c,0xeb,0x3f,0x3f,0xe0,0x3, +0x1f,0xb0,0x3f,0x9e,0x8f,0xbf,0xe0,0x0, 0x1f,0x44,0xe4,0x7, 0xc7,0xb0,0xf0,0x0, +0xa4,0xe, 0xf0,0x18,0x3c,0x1f,0xe8,0x40,0x3f,0x68,0xe0,0x6, 0xc7,0x48,0xf0,0x0, +0x7c,0x1, 0x7f,0x4, 0xf0,0x1, 0x25,0xe0,0xf0,0x40,0x3d,0xe3,0x62,0x5, 0xf2,0x1, +0xc5,0xff,0xf0,0x0, 0x7f,0x6, 0x13,0x81,0xe2,0x1, 0xc2,0x7f,0xe8,0x40,0x3b,0x6b, +0x12,0x80,0xf0,0x1, 0x1e,0xff,0xf8,0x40,0x3f,0x6b,0xf0,0x0, 0x7e,0x7, 0x0, 0x96, +0x14,0x1, 0xdf,0x35,0xef,0xf9,0xd9,0x7, 0x14,0x1, 0xef,0xf9,0xd9,0x55,0x17,0x81, +0xe8,0x40,0x3b,0xf9,0x3f,0x97,0xe8,0x6, 0x3b,0x1e,0xc2,0x81,0xe3,0xff,0xc7,0xff, +0xe3,0xff,0xc3,0x7f,0xe0,0x1, 0x3, 0xb4,0x3b,0xef,0xf0,0x40,0x3d,0xe5,0xf3,0xff, +0xc5,0xff,0xf0,0x40,0x3d,0xf4,0x3, 0xe5,0xe0,0x3, 0x1d,0xb8,0xe7,0xbf,0x16,0xff, +0xf0,0x0, 0xa4,0xb, 0xe0,0x0, 0x15,0x68,0xe8,0x1, 0xa7,0xe8,0xe0,0x1, 0x14,0xff, +0x3f,0xdd,0xe8,0x1, 0xbf,0xe8,0xf0,0x0, 0x16,0x0, 0x64,0x4, 0xe0,0x0, 0xdd,0x1c, +0xf0,0x0, 0x65,0x3, 0x29,0x6, 0x0, 0xa9,0x39,0x7d,0xf0,0x0, 0xc5,0x2, 0x5, 0xa5, +0xe8,0x40,0x3c,0x6c,0x3c,0xe3,0xe0,0x0, 0xdc,0x73,0xf0,0x0, 0xc6,0x1, 0x3c,0x75, +0xe8,0x40,0x3e,0xec,0xe3,0xff,0xc6,0xff,0x1, 0xf0,0xe8,0x0, 0x9f,0x8a,0x67,0x1, +0xc7,0x84,0xe0,0xc, 0x37,0x85,0x36,0x22,0x3e,0x1e,0xe0,0x1a,0xa5,0xac,0xe0,0x41, +0x3f,0x8f,0x17,0x1, 0xe0,0xf, 0x37,0x3f,0xe3,0xf, 0x3d,0xdf,0x39,0x7d,0xe0,0x1a, +0xbf,0xac,0xf0,0x0, 0xc5,0x2, 0x2, 0xdd,0xe8,0x1, 0xa7,0xe8,0x14,0x1, 0xe0,0x40, +0xcf,0x80,0xe8,0x1, 0xbf,0xe8,0xde,0xd3,0xef,0xf9,0xd8,0xa5,0x14,0x1, 0xef,0xf9, +0xd8,0xf3,0x14,0x0, 0xf0,0x40,0x3b,0x68,0xf0,0x0, 0x25,0xaa,0xf0,0xa, 0x3f,0x18, +0xe3,0xff,0xc5,0x7f,0xe0,0x40,0x3f,0xe8,0xf0,0x0, 0x27,0x17,0xe0,0xc, 0x17,0x52, +0x3f,0x1f,0xe0,0xd, 0x37,0xa1,0x37,0x21,0xe8,0xe, 0x3f,0x1d,0xe8,0xd, 0x3e,0x9d, +0x9d,0x8e,0x96,0xd, 0xc7,0x81,0x3d,0xfc,0xe3,0xff,0xc7,0xff,0x3, 0x3, 0x9f,0xe, +0xb7,0xd, 0x3f,0xfa,0x1, 0xec,0xf0,0x0, 0xc3,0x1, 0xf3,0xff,0xc3,0x7f,0xf8,0x40, +0x3b,0x7b,0xe8,0x8, 0x3c,0x1e,0xe3,0xff,0xc4,0x7f,0x1, 0xd9,0x3b,0xf4,0x3c,0x66, +0xf0,0x40,0x3b,0xe7,0xe7,0xfe,0x3, 0xed,0xf0,0xa, 0x3f,0x18,0xe3,0xff,0xc5,0x7f, +0xe0,0x40,0x3f,0xe8,0xf0,0x0, 0x27,0x17,0xe0,0xc, 0x17,0x52,0x3f,0x1f,0xe0,0xd, +0x37,0xa1,0x37,0x21,0xe8,0xe, 0x3f,0x1d,0xe8,0xd, 0x3e,0x9d,0x9d,0x8e,0x96,0xd, +0xc7,0x81,0x3d,0xfc,0xe3,0xff,0xc7,0xff,0x3, 0x3, 0x9f,0xe, 0xb7,0xd, 0x3f,0xfa, +0x1, 0xec,0xf0,0x0, 0xc3,0x81,0xf3,0xff,0xc3,0xff,0xf0,0x40,0x3b,0xf4,0xe8,0x8, +0x3c,0x1e,0xe3,0xff,0xc4,0x7f,0x1, 0xd9,0xe7,0xfe,0x0, 0xc3,0xf0,0x0, 0x67,0x6, +0xf0,0x0, 0x66,0x7, 0x67,0x82,0xf0,0x2, 0x1e,0xc5,0xe0,0x2, 0x27,0x95,0xf0,0x0, +0x65,0x5, 0xf0,0x40,0x3c,0xe3,0xf2,0x1, 0xc4,0xff,0xf2,0x1, 0xc5,0x7f,0xf8,0x7, +0x3c,0xba,0xf0,0x2, 0x1e,0xc5,0x3f,0xe7,0xe3,0xff,0xc7,0xff,0xf0,0x0, 0x7f,0x6, +0x12,0x81,0xf0,0x0, 0x7e,0x7, 0x3b,0x6f,0xf8,0x40,0x3e,0x69,0x7f,0x85,0x12,0x0, +0xf0,0x1, 0x1d,0xff,0xf8,0x40,0x3f,0x6a,0xf8,0x40,0x3c,0xed,0x0, 0x92,0x14,0x1, +0xde,0x46,0xef,0xf9,0xd8,0x18,0x14,0x1, 0xef,0xf9,0xd8,0x66,0x66,0x82,0x17,0x81, +0x3e,0xf5,0x3f,0x95,0xc2,0x1, 0xe3,0xff,0xc7,0xff,0xe0,0x1, 0x5, 0xdf,0x3a,0xef, +0xf0,0x40,0x3d,0x64,0xf3,0xff,0xc5,0x7f,0xf8,0x40,0x3d,0x7c,0x3, 0xe9,0xe0,0x3, +0x1d,0xb8,0xe7,0xbf,0x16,0xff,0xf0,0x0, 0xa6,0x8b,0xe0,0x0, 0x15,0x68,0xe8,0x1, +0xa7,0xed,0xe0,0x1, 0x14,0xff,0x3f,0xdd,0xe8,0x1, 0xbf,0xed,0xf0,0x0, 0x14,0x0, +0x64,0x4, 0xe0,0x0, 0xdc,0x31,0x63,0x83,0x29,0x5, 0x0, 0xa6,0x39,0x79,0xc3,0x82, +0x5, 0xa3,0xe8,0x40,0x3c,0x68,0x3c,0xe3,0xe0,0x0, 0xdb,0xb9,0xf0,0x0, 0xc4,0x1, +0x3c,0x74,0xe8,0x40,0x3c,0xe8,0xe3,0xff,0xc4,0xff,0x1, 0xf1,0x9f,0x7, 0x67,0x81, +0xc7,0x4, 0xe0,0x8, 0x37,0x5, 0x34,0x22,0x3c,0x1f,0xf0,0x1a,0xa3,0x28,0xe0,0x41, +0x3f,0xe, 0x15,0x81,0xe0,0xe, 0x35,0xbe,0xf3,0xe, 0x3b,0x5e,0x39,0x79,0xe0,0x1a, +0xbf,0x28,0xc3,0x82,0x2, 0xdf,0x17,0x80,0x3f,0x6f,0xe3,0xff,0xc7,0x7f,0xe8,0x40, +0x3f,0x7a,0xe0,0x1, 0x1, 0x68,0xc7,0x81,0xe2,0x0, 0xcf,0x86,0x1, 0xf6,0xe8,0x1, +0xa7,0xed,0x14,0x1, 0xe0,0x40,0xcf,0x80,0xe8,0x1, 0xbf,0xed,0xdd,0xe0,0xef,0xf9, +0xd7,0xb2,0x14,0x1, 0xef,0xf9,0xd8,0x0, 0xf0,0x0, 0x12,0x80,0xf0,0x0, 0x25,0x30, +0xe8,0x40,0x3f,0x65,0xe0,0x0, 0x15,0x0, 0xf0,0x0, 0x27,0x1f,0xe0,0xc, 0x17,0xd2, +0x3f,0x9e,0xe0,0x9, 0x37,0x21,0x37,0xa1,0xe8,0xf, 0x3f,0x9b,0xe8,0x9, 0x3c,0x99, +0x9c,0xf, 0xf0,0x0, 0x9b,0x9, 0xc5,0x1, 0xf0,0x40,0x3b,0x78,0xe8,0xe, 0x3f,0x1c, +0xe3,0xff,0xc5,0x7f,0xe3,0xff,0xc7,0x7f,0x5, 0x84,0x9f,0x8f,0xe0,0x0, 0xb7,0x89, +0xe8,0x40,0x3d,0x7e,0x1, 0xe4,0xf2,0x0, 0xca,0x85,0xe0,0x1, 0x5, 0x95,0xf0,0x0, +0xc2,0x81,0xf3,0xff,0xc2,0xff,0xf8,0x40,0x3a,0xfa,0x1, 0xd3,0xf0,0x40,0x3e,0x75, +0xf0,0x40,0x3b,0x65,0xe7,0xfe,0x5, 0xe4,0xe8,0x40,0x3f,0x66,0xe0,0x0, 0x15,0x0, +0xf0,0x0, 0x27,0x1e,0xe0,0xc, 0x17,0xd2,0x3f,0x9e,0xe0,0x9, 0x37,0x21,0x37,0xa1, +0xe8,0xf, 0x3f,0x9b,0xe8,0x9, 0x3c,0x99,0x9c,0xf, 0xf0,0x0, 0x9b,0x89,0xc5,0x1, +0xf0,0x40,0x3b,0xf8,0xe8,0xe, 0x3f,0x1c,0xe3,0xff,0xc5,0x7f,0xe3,0xff,0xc7,0x7f, +0x5, 0x83,0x9f,0x8f,0xb7,0x89,0xe8,0x40,0x3d,0x7e,0x1, 0xe5,0xf2,0x0, 0xcb,0x5, +0x2, 0x94,0xe8,0xf, 0x3b,0x16,0xe3,0xff,0xc7,0xff,0xe0,0xc, 0x17,0x52,0x3f,0x1f, +0x37,0x21,0x37,0xa1,0xe8,0xe, 0x3f,0x1b,0xe8,0xf, 0x3f,0x99,0x9d,0xe, 0x9c,0x8f, +0x3c,0xfa,0x5, 0x83,0x9f,0xe, 0xb7,0xf, 0xf0,0x0, 0xc3,0x1, 0xf3,0xff,0xc3,0x7f, +0xf8,0x40,0x3b,0x7c,0x1, 0xc2,0x66,0x82,0x17,0x81,0x3e,0xf5,0x3f,0x95,0xc2,0x1, +0xe3,0xff,0xc7,0xff,0xe7,0xfe,0x2, 0xa5,0xf0,0x0, 0x67,0x6, 0xf0,0x0, 0x66,0x7, +0xf8,0x40,0x3e,0xe9,0xe0,0x2, 0x1f,0xc5,0xe8,0x80,0x97,0x1e,0x9e,0x8f,0x3f,0x7d, +0x3, 0x2, 0xb7,0xf, 0xf8,0x40,0x3f,0x7c,0xc7,0x82,0x1, 0xf7,0xe0,0x2, 0x1f,0x93, +0x17,0x0, 0xe0,0x2, 0x1e,0xa5,0xe0,0x2, 0xaf,0xf, 0x14,0x0, 0xe0,0x1, 0xaf,0x7f, +0xf0,0x0, 0xbe,0x8d,0xdd,0x3c,0xe0,0x2, 0x1f,0x48,0x8c,0xe, 0xef,0xf9,0xd5,0xc8, +0xe0,0x2, 0x1f,0x7b,0x17,0x87,0xaf,0x8e,0xe0,0x2, 0x1f,0x77,0xaf,0x8e,0xc0,0x1c, +0xf8,0x0, 0xf, 0x28,0xb, 0xa1,0xe7,0x34,0x0, 0xe2,0x8e,0x9f,0xe0,0x2, 0x1f,0x78, +0x89,0xbf,0x7e,0x85,0x99,0x6f,0x8e,0xf, 0x8e,0xaf,0x7f,0x3, 0x3f,0xe3,0x67,0x5, +0xe7,0xfb,0x0, 0x83,0x67,0x85,0xe0,0xc, 0x17,0x52,0xe8,0xf, 0x3f,0x95,0xe3,0xff, +0xc7,0xff,0x3f,0x1f,0x37,0x21,0x37,0xa1,0xe8,0xe, 0x3f,0x1b,0xe8,0xf, 0x3f,0x99, +0x9d,0xe, 0x9c,0x8f,0x3c,0xfa,0xe7,0xfe,0x5, 0xdc,0x9f,0xe, 0xb7,0xf, 0xe7,0xfe, +0x0, 0xd8,0x17,0x1e,0xf2,0x0, 0xcd,0x2, 0x3f,0x2f,0x16,0x81,0xe0,0xe, 0x36,0xbe, +0x2, 0x8a,0x65,0x81,0xe0,0x1a,0xa5,0x2b,0xe3,0xe, 0x3d,0x5e,0xe0,0x1a,0xbf,0x2b, +0xe7,0xfe,0x0, 0x8b,0x66,0x81,0x17,0x1d,0xe0,0x1d,0xa5,0x3d,0x3f,0x2f,0x15,0x81, +0xe0,0xe, 0x35,0xbe,0xe3,0xe, 0x3d,0x5e,0xe0,0x1d,0xbf,0x3d,0xe7,0xfd,0x0, 0xfd, +0xe0,0x3, 0x1f,0xb8,0x16,0x80,0xa6,0xf, 0xe0,0x1, 0xa7,0x6c,0x37,0x4d,0xe2,0x0, +0xc7,0x1, 0x24,0x85,0xc4,0xff,0xe0,0x7, 0x16,0xff,0x3e,0xd9,0xe0,0x1, 0xa5,0xec, +0xe7,0xbf,0x17,0xff,0x3d,0xdf,0xe0,0x1, 0xbd,0xec,0xe4,0x7, 0xc4,0x30,0xe0,0x0, +0x1d,0xc4,0xe4,0xd, 0x36,0xa0,0xa5,0x8b,0x37,0x2d,0x3c,0x1b,0xa5,0x8, 0xe0,0x3, +0x1d,0xd8,0x3d,0xda,0x3e,0xcb,0xbe,0x88,0xe0,0x1, 0xa6,0xec,0x3f,0xdd,0x3f,0xce, +0xe0,0x1, 0xbf,0xec,0x38,0x82,0xe0,0x3, 0x1f,0xb8,0xe0,0x0, 0x1d,0xc4,0xa7,0x8f, +0xe7,0xbf,0x16,0x7f,0xe0,0x1, 0xa7,0x6f,0xe0,0x1, 0xa6,0xef,0xa5,0x8b,0xe4,0x7, +0xc4,0x30,0x3e,0xdc,0xe0,0x1, 0xbe,0xef,0x3c,0x1b,0xa5,0x88,0xe2,0x0, 0xc4,0x8f, +0xe0,0xd, 0x34,0xab,0xe7,0xf, 0x14,0xff,0x3c,0xdb,0x3c,0xcd,0xbc,0x88,0xe2,0x40, +0xc7,0x0, 0xe0,0x1, 0xa6,0xef,0x3e,0x5d,0x3f,0x4c,0xe0,0x1, 0xbf,0x6f,0x38,0x82, +0xe0,0x3, 0x1f,0xb8,0xe0,0x0, 0x1d,0xc4,0xa7,0x8f,0xe7,0xbf,0x16,0x7f,0xe0,0x1, +0xa7,0x6f,0xe0,0x1, 0xa6,0xef,0xa5,0x8b,0xe4,0x7, 0xc4,0x30,0x3e,0xdc,0xe0,0x1, +0xbe,0xef,0x3c,0x1b,0xa5,0x88,0xe2,0x0, 0xc4,0x81,0xe0,0xd, 0x34,0xaa,0xe7,0xf7, +0x14,0xff,0x3c,0xdb,0x3c,0xcd,0xbc,0x88,0xe2,0x40,0xc7,0x0, 0xe0,0x1, 0xa6,0xef, +0x3e,0x5d,0x3f,0x4c,0xe0,0x1, 0xbf,0x6f,0x38,0x82,0xe0,0x3, 0x1f,0xb8,0xe0,0x0, +0x1d,0xc4,0xa7,0x8f,0xe7,0xbf,0x16,0x7f,0xe0,0x1, 0xa7,0x6f,0xe0,0x1, 0xa6,0xef, +0xa5,0x8b,0xe4,0x7, 0xc4,0x30,0x3e,0xdc,0xe0,0x1, 0xbe,0xef,0x3c,0x1b,0xe2,0x0, +0xc4,0x81,0xa5,0x88,0xe4,0xd, 0x34,0xac,0xe0,0x3, 0x1c,0xd9,0xe2,0x0, 0xc5,0x3, +0x3c,0xdb,0x3c,0xcd,0xbc,0x88,0xe4,0xd, 0x35,0x2a,0xa4,0x88,0xe0,0x3, 0x1d,0xda, +0xe2,0x40,0xc7,0x0, 0xe0,0xa, 0x3c,0xdb,0x3d,0x4d,0xbd,0x8, 0xe0,0x1, 0xa6,0xef, +0x3e,0x5d,0x3f,0x4c,0xe0,0x1, 0xbf,0x6f,0x38,0x82,0xe0,0x3, 0x1f,0xb8,0xe0,0x0, +0x1d,0xc4,0xa7,0x8f,0xe7,0xbf,0x16,0xff,0xe0,0x1, 0xa7,0x6f,0xe0,0x1, 0xa6,0x6f, +0xa5,0x8b,0xe4,0x7, 0xc4,0x30,0x3e,0x5d,0xe0,0x1, 0xbe,0x6f,0x3c,0x1b,0xa5,0xa8, +0xe7,0xf0,0x16,0x0, 0x3e,0x5b,0xe2,0xf, 0xc4,0xff,0x3c,0xcc,0xbc,0xa8,0xe2,0x40, +0xc7,0x0, 0xe0,0x1, 0xa6,0x6f,0x3e,0xdc,0x3f,0x4d,0xe0,0x1, 0xbf,0x6f,0x38,0x82, +0xe0,0x3, 0x1f,0xb8,0xe0,0x0, 0x1d,0xc4,0xa7,0x8f,0xe7,0xbf,0x16,0x7f,0xe0,0x1, +0xa7,0x6f,0xe0,0x1, 0xa6,0xef,0xa5,0x8b,0xe4,0x7, 0xc4,0x30,0x3e,0xdc,0xe0,0x1, +0xbe,0xef,0x3c,0x1b,0xe2,0xf, 0xc4,0xff,0xa5,0xb8,0xe4,0xd, 0x34,0xa0,0xe0,0x3, +0x1c,0xdb,0xe2,0x40,0xc7,0x0, 0x3c,0xdb,0x3c,0xcd,0xbc,0xb8,0xe0,0x1, 0xa6,0xef, +0x3e,0x5d,0x3f,0x4c,0xe0,0x1, 0xbf,0x6f,0x38,0x82,0xe0,0x3, 0x1f,0xb8,0xe0,0x0, +0x1d,0xc4,0xa7,0x8f,0xe7,0xbf,0x16,0x7f,0xe0,0x1, 0xa7,0x6f,0xe0,0x1, 0xa6,0xef, +0xa5,0x8b,0xe4,0x7, 0xc4,0x30,0x3e,0xdc,0xe0,0x1, 0xbe,0xef,0x3c,0x1b,0xa5,0xe8, +0xe2,0x0, 0xc4,0x87,0xe0,0xd, 0x34,0xa6,0xe7,0xfc,0x14,0xbf,0x3c,0xdb,0x3c,0xcd, +0xbc,0xe8,0xe2,0x0, 0xc5,0xf, 0xa4,0xe8,0x15,0xc3,0xe0,0xd, 0x35,0x22,0xe0,0xa, +0x3c,0xdb,0x3d,0x4d,0xbd,0x68,0xe2,0x40,0xc7,0x0, 0xe0,0x1, 0xa6,0xef,0x3e,0x5d, +0x3f,0x4c,0xe0,0x1, 0xbf,0x6f,0x38,0x82,0xe0,0x3, 0x1f,0xb8,0xe2,0x1f,0xc4,0x7f, +0xa7,0xf, 0xe7,0xe0,0x17,0x80,0xe0,0x4, 0xa6,0x8e,0x3f,0xdd,0x3c,0x4f,0xe0,0x4, +0xbc,0xe, 0x38,0x82,0xe0,0x3, 0x1f,0xb8,0xe2,0x0, 0xc4,0x1, 0xa7,0x8f,0x17,0x7b, +0xe0,0x1, 0xa6,0x6f,0xe0,0xd, 0x34,0x22,0x3f,0x5c,0x3f,0x4d,0xe0,0x1, 0xbf,0x6f, +0x17,0x7d,0xe0,0x1, 0xa6,0xef,0x34,0x21,0x3f,0x5d,0x3c,0x4e,0xe0,0x1, 0xbc,0x6f, +0xe2,0x0, 0xc4,0x8f,0xe0,0x2, 0xa6,0x3f,0xe7,0xfe,0x17,0xf, 0xe0,0xd, 0x34,0xa4, +0x3f,0x5c,0x3f,0x4d,0xe0,0x2, 0xbf,0x3f,0x17,0x70,0xe0,0x2, 0xa6,0xbf,0x3f,0x5d, +0x3c,0xce,0xe0,0x2, 0xbc,0xbf,0x38,0x82,0xe0,0x3, 0x1f,0xb8,0xe2,0x0, 0xc4,0x1, +0xa7,0xf, 0xe7,0xdf,0x16,0xff,0xe0,0x1, 0xa6,0x6e,0xe0,0xf, 0x34,0x2c,0xe0,0x8, +0x3e,0x5d,0x3c,0x4f,0xe0,0x1, 0xbc,0x6e,0xe7,0xf0,0x17,0x80,0xe0,0x2, 0xa6,0xce, +0xe2,0xf, 0xc4,0xff,0x3f,0xdd,0x3c,0xcf,0xe0,0x2, 0xbc,0xce,0x38,0x82,0xe0,0x3, +0x1f,0xb8,0xe2,0x0, 0xc4,0x1, 0xa7,0xf, 0xe7,0xef,0x16,0xff,0xe0,0x1, 0xa6,0x6e, +0xe0,0xf, 0x34,0x2b,0xe0,0x8, 0x3e,0x5d,0x3c,0x4f,0xe0,0x1, 0xbc,0x6e,0xe0,0x4, +0xb4,0xde,0x38,0x82,0xe0,0x3, 0x1f,0xb8,0xe7,0xe0,0x17,0x0, 0xa7,0x8f,0xe2,0x1f, +0xc4,0x7f,0xe0,0x3, 0xa6,0x8f,0x3f,0x5d,0x3c,0x4e,0xe0,0x3, 0xbc,0xf, 0xe0,0x6, +0xb4,0xbf,0xe0,0x6, 0xb5,0x5f,0x38,0x82,0xe0,0x3, 0x1f,0xb8,0xe7,0xe0,0x17,0x0, +0xa7,0x8f,0xe2,0x1f,0xc4,0x7f,0xe0,0x3, 0xa6,0xbf,0x3f,0x5d,0x3c,0x4e,0xe0,0x3, +0xbc,0x3f,0xe0,0x7, 0xb4,0x9f,0xe0,0x7, 0xb5,0x3f,0x38,0x82,0xe0,0x3, 0x1f,0xb8, +0xe7,0xbf,0x15,0x7f,0xa7,0x8f,0xe0,0xb, 0x34,0x46,0xe0,0x1, 0xa6,0xef,0xe0,0x1, +0xa7,0x6f,0x35,0xa2,0x3f,0x5a,0xe0,0x1, 0xbf,0x6f,0x17,0x73,0xe0,0x2, 0xa6,0x6f, +0xe2,0x40,0xc6,0x80,0x3e,0x5e,0x3e,0x4b,0xe0,0x2, 0xbe,0x6f,0xe0,0xb, 0x34,0x26, +0xe0,0x2, 0xa6,0x6f,0xe7,0xe7,0x17,0x7f,0xe2,0x18,0xc5,0x80,0x3e,0x5e,0x3e,0x4b, +0xe0,0x2, 0xbe,0x6f,0x34,0x42,0xe0,0x2, 0xa5,0xef,0x17,0x3, 0x16,0x7c,0x3f,0x58, +0xe0,0x8, 0x3d,0xdc,0x3c,0x4e,0xe0,0x2, 0xbc,0x6f,0xe0,0x1, 0xa7,0x6f,0x3f,0x5a, +0x3f,0x4d,0xe0,0x1, 0xbf,0x6f,0x38,0x82,0xe0,0x3, 0x1f,0xb8,0xe0,0x0, 0x1f,0x44, +0xa6,0x8f,0xe7,0xbf,0x15,0xff,0xe0,0x1, 0xa6,0x6d,0xe0,0x1, 0xa7,0xed,0xa7,0xe, +0xe4,0x7, 0xc4,0x30,0x3f,0xdb,0xe0,0x1, 0xbf,0xed,0x3c,0x1e,0xa5,0x28,0xe0,0xe, +0x34,0xc2,0xe0,0x3, 0x1f,0xdc,0xe2,0x0, 0xc7,0x3, 0xe4,0xe, 0x37,0x2d,0x3f,0xda, +0x3f,0xce,0xbf,0xa8,0xe0,0xe, 0x34,0xc6,0xa5,0x28,0xe0,0x3, 0x1f,0xdd,0xe4,0xe, +0x37,0x2b,0x3f,0xda,0x3f,0xce,0xbf,0xa8,0x34,0xc4,0xa5,0x28,0xe0,0x3, 0x1f,0x5e, +0xe2,0x0, 0xc4,0x83,0xe4,0xf, 0x34,0xa9,0xe0,0x9, 0x3d,0x5e,0x3c,0xcf,0xbc,0xa8, +0xe2,0x40,0xc6,0x0, 0xe0,0x1, 0xa7,0xed,0x3d,0xdf,0x3e,0x4b,0xe0,0x1, 0xbe,0x6d, +0x38,0x82,0xe0,0x3, 0x1f,0xb8,0xe0,0x0, 0x1f,0x44,0xa6,0x8f,0xe7,0xbf,0x15,0xff, +0xe0,0x1, 0xa6,0x6d,0xe0,0x1, 0xa7,0xed,0xa7,0xe, 0xe4,0x7, 0xc4,0x30,0x3f,0xdb, +0xe0,0x1, 0xbf,0xed,0x3c,0x1e,0xa5,0x28,0xe0,0xe, 0x34,0xc2,0xe0,0x3, 0x1f,0xdf, +0xe2,0x0, 0xc7,0x3, 0xe4,0xe, 0x37,0x27,0x3f,0xda,0x3f,0xce,0xbf,0xa8,0xe0,0xe, +0x34,0xc6,0xa5,0x28,0xe0,0x3, 0x1f,0xe0,0xe4,0xe, 0x37,0x25,0x3f,0xda,0x3f,0xce, +0xbf,0xa8,0x34,0xc4,0xa5,0x28,0xe0,0x3, 0x1f,0x61,0xe2,0x0, 0xc4,0x83,0xe4,0xf, +0x34,0xa3,0xe0,0x9, 0x3d,0x5e,0x3c,0xcf,0xbc,0xa8,0xe2,0x40,0xc6,0x0, 0xe0,0x1, +0xa7,0xed,0x3d,0xdf,0x3e,0x4b,0xe0,0x1, 0xbe,0x6d,0x38,0x82,0xe0,0x3, 0x1f,0xb8, +0xe2,0x0, 0xc4,0x1, 0xa6,0x8f,0x17,0x77,0xe0,0x1, 0xa6,0x6d,0xe0,0xf, 0x34,0x23, +0xe0,0x8, 0x3e,0x5e,0x3c,0x4f,0xe0,0x1, 0xbc,0x6d,0x38,0x82,0xe0,0x3, 0x1f,0xb8, +0xe2,0x0, 0xc4,0x1, 0xa7,0xf, 0xe7,0xfb,0x16,0xff,0xe0,0x1, 0xa6,0x6e,0xe0,0xf, +0x34,0x29,0xe0,0x8, 0x3e,0x5d,0x3c,0x4f,0xe0,0x1, 0xbc,0x6e,0xe2,0x0, 0xc4,0x81, +0xe0,0x1, 0xa6,0x6e,0xe7,0xf7,0x16,0xff,0xe0,0xf, 0x34,0xaa,0xe0,0x9, 0x3e,0x5d, +0x3c,0xcf,0xe0,0x1, 0xbc,0xee,0x38,0x82,0xe0,0x3, 0x1f,0xb8,0xa7,0xf, 0xe7,0xf8, +0x17,0x80,0xe0,0x1, 0xa6,0xfe,0x3f,0xdd,0x3c,0x4f,0xe0,0x1, 0xbc,0x7e,0x38,0x82, +0xe0,0x3, 0x1f,0xb8,0xe7,0xe0,0x17,0x0, 0xa7,0x8f,0xe2,0x1f,0xc4,0x7f,0xe0,0x2, +0xa6,0x8f,0xe2,0x1f,0xc4,0xff,0x3e,0xde,0x3c,0x4d,0xe0,0x2, 0xbc,0xf, 0xe0,0x2, +0xa6,0x9f,0x3f,0x5d,0x3f,0x49,0xe0,0x2, 0xbf,0x1f,0x38,0x82,0xe0,0x3, 0x1f,0xb8, +0xa6,0x8f,0xa7,0x3d,0x37,0x4c,0xe2,0x0, 0xc7,0x1, 0xe0,0x61,0x3e,0x2, 0xe7,0xfe, +0x17,0xff,0x3f,0xdc,0xe0,0x61,0x3f,0x92,0xa7,0x8d,0x37,0xcc,0xe2,0x0, 0xc7,0x81, +0x27,0x85,0xa7,0x9d,0xe0,0x20,0xcf,0x80,0xbf,0x9d,0xe7,0xdf,0x17,0xff,0xa6,0x3d, +0x37,0x2c,0x3f,0xdc,0x3f,0xce,0xbf,0xbd,0xe0,0x61,0x3f,0x82,0xe0,0x1, 0xcf,0x80, +0xe0,0x61,0x3f,0x92,0x38,0x82,0xe0,0x61,0x3f,0x2, 0xe7,0xfe,0x17,0xff,0x3f,0xde, +0xe0,0x61,0x3f,0x92,0xe0,0x3, 0x1f,0xb8,0xe2,0x0, 0xc4,0x1, 0xa6,0x8f,0xe7,0xdf, +0x17,0x7f,0xa6,0x3d,0xe0,0xf, 0x34,0x2c,0xe0,0x8, 0x3e,0x5e,0x3c,0x4f,0xbc,0x3d, +0xe0,0x61,0x3f,0x82,0xe0,0x1, 0xcf,0x80,0xe0,0x61,0x3f,0x92,0x38,0x82,0xe0,0x3, +0x1f,0xb8,0xf0,0x3, 0x1b,0x62,0xf0,0x0, 0xa2,0xf, 0xe7,0xbf,0x17,0xff,0xf8,0x1, +0xa1,0xe4,0xe8,0x1, 0xa7,0x64,0xf0,0x13,0x31,0xcd,0x3f,0xde,0xe8,0x1, 0xbf,0xe4, +0xf2,0x0, 0xc1,0x81,0x87,0x88,0xe8,0x1, 0xa6,0xd4,0xe2,0x0, 0xc7,0x87,0xe0,0xe, +0x37,0xac,0xe7,0x1f,0x17,0xff,0x3f,0xdd,0x3f,0xce,0xe0,0x0, 0x1f,0x44,0xf0,0x3, +0x1b,0xe3,0xf0,0x0, 0xa2,0x8e,0xe0,0x3, 0x1c,0xe4,0xe8,0x1, 0xbf,0xd4,0xf0,0x0, +0x10,0x80,0x15,0x78,0xe7,0xfe,0x15,0x87,0xe7,0xf7,0x16,0x7f,0xf0,0x0, 0x11,0x2, +0xf8,0x12,0x39,0x11,0xf0,0x10,0x30,0xa2,0xf0,0x12,0x31,0x21,0xf0,0x12,0x39,0x18, +0xf8,0x10,0x38,0x16,0xe8,0x0, 0xa7,0x0, 0xe8,0x0, 0x8f,0x82,0x3f,0x5a,0x37,0xc5, +0x3f,0x4f,0xe8,0x0, 0xbf,0x0, 0xe4,0x7, 0xc7,0xb0,0xe8,0x0, 0x86,0x82,0xe8,0x0, +0xa7,0x0, 0xe2,0x0, 0xc6,0x9f,0x36,0xa3,0x3f,0x5b,0x3f,0x4d,0xe8,0x0, 0xbf,0x0, +0xe8,0xf, 0x3f,0x95,0xe8,0x0, 0x8e,0x92,0xa7,0xf, 0x36,0xc6,0xe2,0x0, 0xc6,0x81, +0xe4,0xd, 0x36,0xac,0xe8,0xe, 0x3f,0x57,0x3f,0x4d,0xbf,0xf, 0xf0,0x0, 0xc0,0x81, +0xe8,0x0, 0x8e,0x92,0xa7,0xf, 0x36,0xc3,0xe2,0x0, 0xc6,0x83,0xe4,0xd, 0x36,0xaa, +0x3f,0x59,0x3f,0x4d,0xbf,0xf, 0xf2,0x1, 0xc0,0xff,0xe8,0x0, 0x8e,0x92,0xa7,0xf, +0x36,0xc7,0x36,0xaa,0x3f,0x5c,0x3f,0x4d,0xbf,0xf, 0x8f,0x88,0xe8,0x40,0x3f,0xf1, +0xe7,0xff,0x3, 0xb6,0xe8,0x1, 0xa7,0x64,0xe7,0xbf,0x17,0xff,0xf0,0x13,0x31,0xad, +0x3f,0xde,0xf0,0x13,0x39,0xcf,0xf8,0x1, 0xb9,0xe4,0x38,0x82,0xe0,0x0, 0x1f,0x99, +0x17,0x1, 0xaf,0xf, 0xe0,0x3, 0x1f,0xb8,0xe0,0x2, 0x1e,0xb3,0xa7,0x8f,0xaf,0xd, +0x17,0x7d,0xa6,0xdf,0x3f,0x5d,0xbf,0x5f,0xa7,0x5f,0xcf,0x4, 0xbf,0x5f,0x38,0x82, +0xe0,0x0, 0x1f,0x19,0x17,0x81,0xaf,0x8e,0xe0,0x2, 0x1f,0x33,0xaf,0x8e,0xe0,0x0, +0x1f,0x10,0xaf,0x8e,0x38,0x82,0x8, 0xb2,0x39,0x68,0x15,0x4, 0xe1,0xf, 0x14,0x0, +0x3c,0xe2,0xd0,0xac,0xa7,0x82,0xa7,0x2, 0xa4,0x2, 0x37,0xc5,0xe4,0xe, 0x37,0x45, +0xe2,0x0, 0xc7,0x7, 0xea,0x2, 0xc4,0x0, 0xe2,0x0, 0xc7,0x88,0x3f,0xce,0xe4,0x8, +0x34,0x48,0x3c,0x1f,0x9, 0x61,0xe0,0x3, 0x1e,0xb8,0xe0,0x2, 0x1e,0x68,0xa6,0x8d, +0xa7,0xc, 0xa7,0x8c,0xa6,0xcd,0xe2,0x0, 0xc6,0x81,0x26,0xab,0x37,0x48,0xe4,0xf, +0x37,0xc5,0xe2,0x0, 0xc7,0x1, 0xa6,0x8c,0x37,0x23,0xe2,0x0, 0xc7,0x87,0x3f,0xce, +0xea,0x2, 0xcf,0x0, 0x3f,0x5d,0x16,0x85,0xe0,0x2f,0x3f,0x9d,0xe4,0xe, 0x37,0x48, +0x27,0x98,0x27,0x17,0x8, 0xb4,0x11,0x0, 0xe0,0x23,0x3c,0x2, 0x3a,0x69,0x14,0x9, +0x3c,0xe3,0xd0,0x55,0x14,0x9, 0xd0,0x35,0x39,0xf8,0x14,0x5, 0x1, 0xc, 0xc1,0x1, +0xef,0xfa,0xd1,0x48,0xe3,0xff,0xc1,0x7f,0x3a,0x72,0x3, 0xf5,0x14,0x0, 0xa, 0x61, +0x14,0x0, 0x38,0x82,0x14,0x1, 0xa, 0x61,0xe0,0x0, 0x1f,0x99,0x8c,0xf, 0x8f,0xf, +0x27,0x1f,0xe0,0x3, 0x1f,0x38,0x16,0x80,0xa5,0x8e,0xe0,0x0, 0x1f,0x10,0xae,0x8e, +0xa6,0x5b,0xe0,0x1, 0x1f,0x5c,0xce,0x1, 0xa7,0xe, 0xbe,0x5b,0xe0,0x1, 0xa6,0x6e, +0xe0,0x4, 0xce,0x0, 0xe0,0x1, 0xbe,0x6e,0xe7,0xfb,0x16,0x7f,0xe0,0x1, 0xa5,0xee, +0x3e,0x5b,0xe0,0x1, 0xbe,0x6e,0xae,0x8f,0xe0,0x2, 0x1f,0xb3,0xae,0x8f,0x38,0x82, +0x8, 0xb3,0xe0,0x3, 0x1f,0xb8,0x39,0xe8,0xa7,0x8f,0x14,0x0, 0xa1,0x3f,0xde,0xc4, +0xe0,0x2, 0x1f,0x91,0xe0,0x3, 0x1f,0x31,0xa7,0x8f,0xa6,0x8e,0xa7,0x1f,0x31,0x4c, +0xcf,0x10,0xbf,0x1f,0xe2,0x0, 0xc1,0x1, 0xb1,0xdd,0x3c,0x62,0x89,0x7d,0xa6,0x9f, +0x17,0x6f,0x3f,0x5d,0xbf,0x1f,0xde,0xb0,0x3c,0x62,0x9, 0xe1,0x8, 0xb4,0xe0,0x3, +0x1f,0xb8,0x3a,0x68,0xa7,0x8f,0x14,0x0, 0xa1,0x3f,0x39,0xe9,0xde,0xa5,0xe0,0x2, +0x1f,0x91,0xe0,0x3, 0x1f,0x31,0xa7,0x8f,0xa6,0x8e,0xa7,0x1f,0x31,0x4c,0xcf,0x10, +0xbf,0x1f,0xe2,0x0, 0xc1,0x1, 0xb2,0x5d,0x17,0x6f,0xa9,0xbd,0x3c,0x62,0xa6,0x9f, +0x3f,0x5d,0xbf,0x1f,0xa, 0x21,0xe7,0xfd,0x0, 0x90,0x8, 0xb5,0xe0,0x3, 0x1f,0xb8, +0x39,0x68,0xa7,0x8f,0x14,0x0, 0xa7,0xbf,0x12,0x81,0x37,0xcc,0x3a,0xdf,0x39,0xe9, +0x3a,0x6a,0xde,0x82,0xe0,0x2, 0x1f,0x91,0xa6,0x8f,0xa7,0x9d,0xcf,0x90,0xbf,0x9d, +0x22,0x13,0xe0,0x3, 0x1f,0xb1,0xe0,0xa, 0x39,0x14,0x14,0xff,0xa7,0x8f,0x3c,0x93, +0xe3,0xff,0xc5,0x7f,0xb1,0x5f,0xc1,0x1, 0x8f,0x7f,0xe3,0xff,0xc1,0x7f,0x39,0x7a, +0xe0,0x80,0xaf,0x19,0x1, 0xf8,0xa7,0x1d,0x17,0xef,0x3f,0xde,0x3c,0x65,0xbf,0x9d, +0xa, 0xa1,0xe7,0xfc,0x0, 0xe2,0x8, 0xb5,0xe0,0x3, 0x1f,0xb8,0x39,0x68,0xa7,0x8f, +0x14,0x0, 0xa7,0xbf,0x12,0x81,0x37,0xcc,0x3a,0xdf,0x39,0xe9,0x3a,0x6a,0xde,0x54, +0xe0,0x2, 0x1f,0x91,0xa6,0x8f,0xa7,0x9d,0xcf,0x90,0xbf,0x9d,0x22,0x15,0xe0,0x3, +0x1f,0xb1,0xe0,0xa, 0x39,0x14,0x14,0xff,0xa7,0x8f,0x3c,0x93,0xe3,0xff,0xc5,0x7f, +0x17,0x1, 0x3f,0x12,0xb1,0x5f,0x39,0x6e,0xe3,0xff,0xc1,0x7f,0xe0,0x80,0x87,0x19, +0x39,0x7a,0xaf,0x3f,0x1, 0xf6,0xa7,0x1d,0x17,0xef,0x3f,0xde,0x3c,0x65,0xbf,0x9d, +0xa, 0xa1,0xe7,0xfc,0x0, 0xb2,0x0, 0x0, 0xe0,0x2, 0x1f,0x91,0xe0,0x3, 0x1f,0x3, +0xa7,0x8f,0xa7,0xe, 0xa6,0x9f,0x34,0x28,0xe0,0x40,0xce,0x80,0xbe,0x9f,0x16,0xa1, +0xb6,0xbe,0x3c,0x98,0xe0,0x6, 0xb4,0xbe,0xe0,0x2, 0xb5,0x5e,0xe7,0xbf,0x17,0x7f, +0xa6,0x9f,0x3f,0x5d,0xbf,0x1f,0x38,0x82,0xe0,0x2, 0x1f,0x91,0xe0,0x3, 0x1f,0x3, +0xa7,0x8f,0xa7,0xe, 0xa6,0x9f,0x34,0x28,0xe0,0x40,0xce,0x80,0xbe,0x9f,0x3c,0x98, +0x35,0x28,0xe0,0x7, 0xb4,0xfe,0x3d,0x9a,0xe0,0x8, 0xb5,0x9e,0xe0,0x7, 0xb6,0x5e, +0xe7,0xbf,0x17,0x7f,0xa6,0x9f,0x3f,0x5d,0xbf,0x1f,0x38,0x82,0xe0,0x3, 0x1f,0x83, +0xe0,0x0, 0x1d,0x95,0xa7,0xf, 0x8e,0xb, 0x9f,0x9e,0x16,0x80,0xcf,0x81,0x3c,0x4f, +0xb4,0x1e,0x0, 0x85,0x9f,0x9e,0xe2,0x0, 0xc7,0x88,0x2f,0x8e,0xe0,0x7, 0x97,0x9e, +0xe2,0x0, 0xcf,0x80,0x3, 0x78,0x2e,0x8e,0x9f,0x9e,0xe0,0x80,0xcf,0x80,0xb7,0x9e, +0x17,0x80,0xb7,0x9e,0x38,0x82,0x9f,0x9e,0x16,0x1, 0xcf,0x84,0xb7,0x9e,0x3e,0xec, +0x0, 0xee,0xae,0xb, 0x0, 0xf2,0x8, 0xb2,0xe0,0x2, 0x1f,0x91,0x16,0x0, 0xa1,0xf, +0xe0,0x3, 0x1f,0x83,0xa6,0x92,0xa7,0xf, 0xe0,0x40,0xce,0x80,0xbe,0x92,0x3f,0xe8, +0x96,0xd8,0xb6,0xde,0x96,0xf8,0xb6,0xfe,0xe0,0x1, 0x96,0x98,0xe0,0x1, 0xb6,0x9e, +0xe0,0x0, 0x1e,0x95,0xae,0xd, 0x8e,0x88,0x8e,0x18,0x36,0xa8,0x3e,0x9c,0xe0,0x1, +0xb6,0xde,0x96,0xa8,0xe0,0x1, 0x9c,0x28,0xe0,0x9, 0xb6,0xde,0x8e,0xaf,0xe0,0x1, +0xb6,0xfe,0x87,0xbf,0xe2,0x0, 0xc7,0x81,0xe4,0xf, 0x37,0xa8,0xe4,0xf, 0x37,0xc0, +0xb7,0x9e,0xdf,0xad,0xa7,0x12,0xe7,0xbf,0x17,0xff,0x3f,0xde,0xbf,0x92,0x9, 0x61, +0x8, 0xb2,0xe0,0x2, 0x1f,0x91,0x3f,0x68,0xa1,0xf, 0xe0,0x3, 0x1f,0x83,0xa6,0x92, +0xa7,0x8f,0xe0,0x40,0xce,0x80,0xbe,0x92,0xe0,0x0, 0x14,0x40,0x96,0xde,0xb6,0xdf, +0xe0,0x1, 0x96,0x9e,0xe0,0x1, 0xb6,0x9f,0x8e,0x8e,0x8e,0x1e,0x36,0xa8,0x3e,0x9c, +0xe0,0x1, 0xb6,0xdf,0x96,0xae,0xe0,0x9, 0xb6,0xdf,0x8f,0x2e,0xe0,0x1, 0xb7,0x7f, +0x17,0x0, 0xe0,0x1, 0xb4,0xbf,0xb7,0x1f,0xdf,0x82,0xa7,0x12,0xe7,0xbf,0x17,0xff, +0x3f,0xde,0xbf,0x92,0x9, 0x61,0x8, 0xb4,0xe0,0x2, 0x1f,0x91,0x39,0xe9,0xa2,0xf, +0xe0,0x3, 0x1f,0x83,0xa7,0x14,0xa1,0xf, 0xe0,0x40,0xcf,0x0, 0xbf,0x14,0x3f,0xe8, +0xa7,0x14,0xe0,0x1, 0x14,0x20,0xe0,0x40,0xcf,0x0, 0xbf,0x14,0x97,0x3f,0xb7,0x52, +0x97,0x7f,0xb7,0x72,0x97,0x5f,0xe0,0x1, 0xb7,0x12,0x8f,0x1f,0x8e,0x8f,0x37,0x28, +0x3f,0x1d,0xe0,0x1, 0xb7,0x52,0x8f,0x2f,0xe0,0x1, 0xb7,0x32,0x17,0x0, 0xe0,0x9, +0xb7,0x52,0xe0,0x1, 0x97,0xf, 0xe0,0x1, 0xb7,0x72,0xe0,0x1, 0x97,0x1f,0xe0,0x2, +0xb7,0x12,0xe0,0x1, 0x97,0x2f,0xe0,0x2, 0xb7,0x32,0xe0,0x1, 0x97,0x3f,0xe0,0x6, +0xb7,0x12,0x8f,0xbf,0x37,0xa8,0xb7,0x92,0xdf,0x42,0xe0,0x3, 0x9f,0xb2,0xaf,0x83, +0xe0,0x3, 0x9f,0xd2,0xaf,0x93,0xe0,0x2, 0x9d,0x72,0xe0,0x3, 0x9d,0x92,0xe0,0x4, +0x9e,0x32,0xe0,0x4, 0x9e,0xd2,0xe0,0x3, 0x9f,0x72,0xe0,0x4, 0x9f,0x92,0xb5,0x13, +0xb7,0xe3,0xe7,0xbf,0x17,0xff,0xb5,0xa3,0xb6,0x33,0xb6,0xc3,0xb7,0x53,0xa7,0x14, +0x3f,0xde,0xbf,0x94,0xa, 0x61,0x8, 0xb2,0xe0,0x2, 0x1f,0x91,0xa1,0xf, 0xe0,0x3, +0x1f,0x83,0xa6,0x92,0xa7,0xf, 0xe0,0x40,0xce,0x80,0xbe,0x92,0x3f,0xe8,0x96,0xdf, +0xe0,0x1, 0x14,0x40,0xb6,0xde,0x96,0xff,0xe0,0x1, 0xb6,0x9e,0x8e,0xbf,0x8e,0x2f, +0x36,0xa8,0x3e,0x9c,0xe0,0x1, 0xb6,0xde,0x8e,0x9f,0x8e,0xf, 0x36,0xa8,0x3e,0x9c, +0xe0,0x1, 0xb6,0xbe,0x8e,0xcf,0xe0,0x1, 0xb6,0xfe,0x16,0x80,0xe0,0x9, 0xb6,0xde, +0x87,0xdf,0xe2,0x0, 0xc7,0x83,0x37,0xa8,0xb7,0x9e,0xde,0xf9,0xa7,0x12,0xe7,0xbf, +0x17,0xff,0x3f,0xde,0xbf,0x92,0x9, 0x61,0x8, 0xb2,0xe0,0x2, 0x1f,0x91,0x3e,0xe8, +0xa1,0xf, 0xe0,0x3, 0x1f,0x83,0xa7,0x12,0xa7,0x8f,0xe0,0x40,0xcf,0x0, 0xbf,0x12, +0x16,0x0, 0x97,0x38,0xb7,0x5f,0x97,0x58,0xb7,0x7f,0x97,0x78,0xe0,0x0, 0x14,0x60, +0xe0,0x1, 0xb7,0x1f,0x8f,0xd, 0x8e,0x9d,0x37,0x28,0x3f,0x1d,0xe0,0x1, 0xb7,0x5f, +0xe0,0x9, 0xb6,0x5f,0xb6,0x1f,0xde,0xd3,0xa7,0x12,0xe7,0xbf,0x17,0xff,0x3f,0xde, +0xbf,0x92,0x9, 0x61,0x8, 0xb5,0x8f,0x8, 0x8f,0x98,0x39,0x68,0xa4,0x38,0x3f,0x7f, +0x34,0x21,0xe0,0x6f,0x3b,0xae,0xe0,0x1, 0x14,0xff,0xe0,0x1, 0x15,0x72,0xe8,0x0, +0xc4,0x2, 0x3a,0xef,0xd4,0xe8,0xe0,0x2, 0x1f,0x91,0x17,0x0, 0xa1,0x8f,0xe0,0x3, +0x1f,0x83,0xe0,0x0, 0x14,0x60,0xa2,0xf, 0xa7,0x93,0xe2,0x1, 0xc2,0xff,0xe0,0x40, +0xcf,0x80,0xbf,0x93,0x97,0xb2,0xb7,0xd4,0x97,0xd2,0xb7,0xf4,0x97,0xf2,0xe0,0x1, +0xb7,0x94,0x8f,0x82,0x8e,0x92,0x37,0xa8,0x3f,0x9d,0xe0,0x1, 0xb7,0xd4,0xe0,0x9, +0xb7,0x54,0xb7,0x14,0xde,0x9c,0x87,0x2, 0xa4,0xb2,0x3f,0xee,0xe2,0x1, 0xc7,0xff, +0x27,0xa8,0xe0,0xb, 0x34,0xa1,0x87,0x92,0x15,0x0, 0xe8,0x0, 0xc5,0x82,0x3e,0xef, +0xe2,0x1, 0xc6,0xff,0x26,0x96,0x16,0xb, 0x3e,0x3a,0x17,0x0, 0xe0,0xf, 0x3f,0x1c, +0x37,0xa1,0x3f,0x9b,0x96,0x8f,0xc7,0x1, 0xe0,0x41,0x3e,0x8d,0xb6,0x8f,0xe2,0x1, +0xc7,0x7f,0x87,0x92,0x3e,0xef,0xe2,0x1, 0xc6,0xff,0x3e,0xfe,0x2, 0xf0,0x87,0x2, +0xc5,0x1, 0x3e,0xee,0xe2,0x1, 0xc5,0x7f,0xe2,0x1, 0xc6,0xff,0x3e,0xfa,0x2, 0xe0, +0xe4,0x2, 0xc2,0x81,0xb4,0xd4,0x17,0x80,0xe0,0x1, 0xb2,0xd4,0xe0,0x1, 0x14,0x50, +0xb7,0x94,0xde,0x65,0xa5,0x32,0x17,0x0, 0x15,0xf0,0x3f,0xee,0x35,0x21,0x0, 0x92, +0xe2,0x0, 0xcf,0x87,0x2, 0xb2,0xe0,0x5, 0x9e,0x14,0x36,0x1b,0xe2,0x0, 0xc6,0xf, +0xb6,0xd, 0xc7,0x81,0xe2,0x1, 0xc7,0xff,0xe2,0x0, 0xcf,0x8b,0xc7,0x2, 0xc5,0x84, +0x1, 0x1e,0xe2,0x0, 0xcf,0x83,0xe0,0xd, 0x3f,0x1a,0xe8,0x0, 0xc6,0x82,0x2, 0xe9, +0xe0,0x4, 0x9e,0x74,0xe0,0xd, 0x37,0x21,0xc7,0x81,0xe0,0x9, 0x3f,0x1a,0xe0,0xd, +0x36,0x1d,0xe2,0x1, 0xc7,0xff,0xea,0x0, 0xce,0x2, 0x3e,0x19,0xe2,0x0, 0xc6,0x8f, +0xe2,0x0, 0xcf,0x8b,0xb6,0x8c,0xc7,0x2, 0xc5,0x84,0x1, 0xe4,0xa7,0x13,0xe7,0xbf, +0x17,0xff,0x3f,0xde,0xbf,0x93,0xa, 0xe1,0xe0,0x5, 0x9e,0xb4,0x14,0xf0,0x3c,0x9b, +0xe0,0xc, 0x3f,0x1a,0x36,0x99,0xe8,0x0, 0xc6,0x2, 0xe2,0x0, 0xc6,0x8f,0xb6,0x8c, +0x0, 0xc9,0x8, 0xb2,0xe0,0x2, 0x1f,0x91,0x3f,0x68,0xa1,0xf, 0xe0,0x3, 0x1f,0x83, +0xa6,0x92,0xa7,0x8f,0xe0,0x40,0xce,0x80,0xbe,0x92,0xe7,0xbf,0x16,0x7f,0x96,0xd8, +0xb6,0xdf,0x96,0xf8,0xb6,0xff,0xe0,0x1, 0x96,0x98,0xe0,0x1, 0x14,0x60,0xe0,0x1, +0xb6,0x9f,0x8e,0x8e,0x8d,0x9e,0x36,0xa8,0x3e,0x9b,0xe0,0x1, 0xb6,0xdf,0x96,0xae, +0xe0,0x9, 0xb6,0xdf,0x8e,0xae,0xe0,0x1, 0xb6,0xff,0xe0,0x7, 0x9e,0x9f,0x3e,0xdc, +0xe0,0x7, 0xb6,0x9f,0x8f,0x3e,0xe0,0x7, 0x9e,0x9f,0x37,0x2d,0x3f,0x4d,0xe0,0x7, +0xb7,0x1f,0x9f,0x1f,0x3e,0x5e,0xb6,0x1f,0xdd,0xea,0xa7,0x12,0xe7,0xbf,0x17,0xff, +0x3f,0xde,0xbf,0x92,0x9, 0x61,0x8, 0xb2,0xe0,0x2, 0x1f,0x91,0x3f,0x68,0xa1,0xf, +0xe0,0x3, 0x1f,0x83,0xa6,0x92,0xa7,0x8f,0xe0,0x40,0xce,0x80,0xbe,0x92,0xe0,0x1, +0x14,0x60,0x96,0xde,0xb6,0xdf,0x96,0xfe,0xb6,0xff,0xe0,0x1, 0x96,0x9e,0xe0,0x1, +0xb6,0x9f,0x8e,0x8e,0x8e,0x1e,0x36,0xa8,0x3e,0x9c,0xe0,0x1, 0xb6,0xdf,0x96,0xae, +0xe0,0x9, 0xb6,0xdf,0x8f,0x2e,0xe0,0x1, 0xb7,0x7f,0x9f,0x1f,0xe0,0x40,0xcf,0x0, +0xb7,0x1f,0xdd,0xbd,0xa7,0x12,0xe7,0xbf,0x17,0xff,0x3f,0xde,0xbf,0x92,0x9, 0x61, +0x8, 0xb2,0xe0,0x2, 0x1f,0x91,0x3f,0x68,0xa1,0xf, 0xe0,0x3, 0x1f,0x83,0xa6,0x92, +0xa7,0x8f,0xe0,0x40,0xce,0x80,0xbe,0x92,0x16,0x0, 0x96,0xd8,0x34,0xa8,0xb6,0xdf, +0x3d,0x49,0x96,0xf8,0xb6,0xff,0xe0,0x1, 0x96,0x98,0xe0,0x1, 0xb6,0x9f,0x8e,0x88, +0x8d,0x98,0x36,0xa8,0x3e,0x9b,0xe0,0x1, 0xb6,0xdf,0x96,0xa8,0x14,0x30,0xe0,0x9, +0xb6,0xdf,0xe0,0x7, 0x9e,0x9f,0xe3,0x7f,0xc6,0xff,0xe0,0x7, 0xb6,0x9f,0x8f,0x3e, +0xe0,0x7, 0x9e,0x9f,0x37,0x2e,0x3f,0x4d,0xe0,0x7, 0xb7,0x1f,0xe0,0x1, 0xb6,0x7f, +0xe0,0x2, 0xb5,0x1f,0xe0,0x1, 0x9f,0x7f,0xe0,0x1, 0xcf,0x3, 0xe0,0x1, 0xb7,0x7f, +0xe0,0x1, 0xb6,0x3f,0xb6,0x1f,0xdd,0x7b,0xa7,0x12,0xe7,0xbf,0x17,0xff,0x3f,0xde, +0xbf,0x92,0x9, 0x61,0x8, 0xb2,0xe0,0x2, 0x1f,0x91,0x3f,0x68,0xa1,0xf, 0xe0,0x3, +0x1f,0x83,0xa6,0x92,0xa7,0x8f,0xe0,0x40,0xce,0x80,0xbe,0x92,0x15,0x80,0x96,0xd8, +0xb6,0xdf,0x96,0xf8,0xb6,0xff,0xe0,0x1, 0x96,0x98,0x14,0x30,0xe0,0x1, 0xb6,0x9f, +0x8e,0x8e,0x8e,0x1e,0x36,0xa8,0x3e,0x9c,0xe0,0x1, 0xb6,0xdf,0x96,0xae,0xe0,0x9, +0xb6,0xdf,0xe0,0x7, 0x9e,0x9f,0xe3,0x7f,0xc6,0xff,0xe0,0x7, 0xb6,0x9f,0x8e,0xbe, +0xe0,0x7, 0x9e,0x1f,0x36,0xae,0x3e,0xcc,0xe0,0x7, 0xb6,0x9f,0xe0,0x1, 0xb5,0xff, +0xe0,0x2, 0xb4,0x9f,0xe0,0x1, 0x9e,0xff,0xe0,0x1, 0xce,0x83,0xe0,0x1, 0xb6,0xff, +0xe0,0x1, 0xb5,0xbf,0xe0,0x2, 0x8f,0x7e,0x9e,0x9f,0x37,0x2a,0x3f,0x4d,0xb7,0x1f, +0xdd,0x36,0xa7,0x12,0xe7,0xbf,0x17,0xff,0x3f,0xde,0xbf,0x92,0x9, 0x61,0x8, 0xb2, +0xe0,0x2, 0x1f,0x91,0x3f,0x68,0xa1,0xf, 0xe0,0x3, 0x1f,0x83,0xa6,0x92,0xa7,0x8f, +0xe0,0x40,0xce,0x80,0xbe,0x92,0x14,0x0, 0x96,0xde,0xb6,0xdf,0xe0,0x1, 0x96,0x9e, +0xe0,0x1, 0xb6,0x9f,0x8e,0x8e,0x8e,0x1e,0x36,0xa8,0x3e,0x9c,0xe0,0x1, 0xb6,0xdf, +0x96,0xae,0xe0,0x9, 0xb6,0xdf,0xe0,0x1, 0xb4,0xff,0xe0,0x2, 0xb5,0x1f,0xe0,0x2, +0x8e,0x7e,0xe0,0x2, 0x8e,0xee,0x8f,0x3e,0x36,0x2a,0x36,0xa9,0x3e,0xcc,0x37,0x28, +0x3f,0x4d,0xb7,0x1f,0x9f,0x1f,0xe1,0x0, 0xcf,0x0, 0xb7,0x1f,0xdd,0x0, 0xa7,0x12, +0xe7,0xbf,0x17,0xff,0x3f,0xde,0xbf,0x92,0x9, 0x61,0x8, 0xb2,0xe0,0x2, 0x1f,0x91, +0xa1,0xf, 0xe0,0x3, 0x1f,0x83,0xa6,0x92,0xa7,0xf, 0xe0,0x40,0xce,0x80,0xbe,0x92, +0x3f,0xe8,0x96,0xd8,0xb6,0xde,0xe0,0x1, 0x96,0x98,0xe0,0x1, 0x9c,0x28,0xe0,0x1, +0xb6,0x9e,0x8e,0x8f,0x8e,0x1f,0x36,0xa8,0x3e,0x9c,0xe0,0x1, 0xb6,0xde,0x96,0xaf, +0xe0,0x9, 0xb6,0xde,0xe0,0x2, 0x8e,0x7f,0xe0,0x2, 0x8e,0xef,0x8f,0xbf,0x36,0x2a, +0x36,0xa9,0x3e,0xcc,0x37,0xa8,0x3f,0xcd,0xb7,0x9e,0x9f,0x9e,0xe1,0x0, 0xcf,0x80, +0xb7,0x9e,0xdc,0xcd,0xa7,0x12,0xe7,0xbf,0x17,0xff,0x3f,0xde,0xbf,0x92,0x9, 0x61, +0x8, 0xb2,0xe0,0x2, 0x1f,0x91,0xa1,0xf, 0xe0,0x3, 0x1f,0x83,0xa6,0x92,0xa7,0xf, +0xe0,0x40,0xce,0x80,0xbe,0x92,0x3f,0xe8,0x96,0xdf,0x14,0x30,0xb6,0xde,0x96,0xff, +0xb6,0xfe,0xe0,0x1, 0x96,0x9f,0xe0,0x1, 0xb6,0x9e,0x8e,0x8f,0x8e,0x1f,0x36,0xa8, +0x3e,0x9c,0xe0,0x1, 0xb6,0xde,0x96,0xaf,0xe0,0x9, 0xb6,0xde,0xe0,0x2, 0x8e,0x7f, +0xe0,0x2, 0x8e,0xef,0x8f,0xbf,0x36,0x2a,0x36,0xa9,0x3e,0xcc,0x37,0xa8,0x3f,0xcd, +0xb7,0x9e,0x9f,0x9e,0xe1,0x0, 0xcf,0x80,0xb7,0x9e,0xdc,0x99,0xa7,0x12,0xe7,0xbf, +0x17,0xff,0x3f,0xde,0xbf,0x92,0x9, 0x61,0x8, 0xb3,0xe0,0x2, 0x1f,0x91,0x3f,0x68, +0xa1,0x8f,0xe0,0x3, 0x1f,0x83,0xe0,0x0, 0x14,0x40,0xa1,0xf, 0xa7,0x93,0xe0,0x40, +0xcf,0x80,0xbf,0x93,0x97,0xde,0xb7,0xd2,0x8f,0x8e,0x8e,0x9e,0x37,0xa8,0x97,0x2e, +0x3f,0x9d,0xe0,0x1, 0xb7,0xd2,0x17,0x80,0xe0,0x9, 0xb7,0x52,0xe0,0x1, 0xb5,0x72, +0xe0,0x2, 0xb4,0x92,0xb7,0x92,0x9f,0x92,0xe1,0x0, 0xcf,0x80,0xb7,0x92,0xdc,0x6f, +0xe0,0x7, 0x9c,0x32,0xa7,0x13,0xe7,0xbf,0x17,0xff,0x3f,0xde,0xbf,0x93,0x9, 0xe1, +0x8, 0xb3,0xe0,0x2, 0x1f,0x91,0x16,0x80,0xa1,0x8f,0xe0,0x3, 0x1f,0x83,0xa7,0x13, +0xa1,0xf, 0xe0,0x40,0xcf,0x0, 0xbf,0x13,0x3f,0xe8,0x97,0x58,0xb7,0x52,0x97,0x78, +0xb7,0x72,0xe0,0x1, 0x97,0x18,0x14,0x0, 0xe0,0x1, 0xb7,0x12,0xe0,0x0, 0x1f,0x15, +0xae,0x8e,0x8f,0xf, 0x8e,0x9f,0x37,0x28,0x3f,0x1d,0xe0,0x1, 0xb7,0x52,0x8f,0x2f, +0xe0,0x1, 0xb7,0x72,0x97,0x2f,0xe0,0x9, 0xb7,0x52,0x87,0xbf,0xe2,0x0, 0xc7,0x81, +0xe4,0xf, 0x37,0xa8,0xe4,0xf, 0x37,0xc0,0xb7,0x92,0xdc,0x39,0xe0,0x6, 0x9c,0x72, +0xa7,0x13,0xe7,0xbf,0x17,0xff,0x3f,0xde,0xbf,0x93,0x9, 0xe1,0x8, 0xb3,0xe0,0x2, +0x1f,0x91,0xe2,0x0, 0xc5,0x3, 0xa1,0x8f,0xa7,0x93,0xe0,0x40,0xcf,0x80,0xbf,0x93, +0xe0,0x3, 0x1f,0x83,0xa1,0xf, 0x2d,0x17,0xe0,0x9, 0xb5,0x52,0x35,0xaa,0xb4,0x52, +0x35,0x28,0xe0,0x1, 0xb4,0xd2,0xe0,0x1, 0x14,0x10,0xb5,0x92,0x9f,0x92,0x3d,0x4f, +0xb5,0x12,0xdc,0x15,0xe0,0x5, 0x9c,0x52,0xa7,0x13,0xe7,0xbf,0x17,0xff,0x3f,0xde, +0xbf,0x93,0x9, 0xe1,0x17,0x82,0xe0,0x9, 0xb7,0xd2,0x0, 0xe9,0xe0,0x2, 0x1f,0x91, +0x34,0xa3,0xa6,0xf, 0xe0,0x3, 0x1f,0x83,0xf0,0x0, 0x1b,0x95,0xa7,0xf, 0xa7,0x9c, +0xa6,0x9c,0xe0,0x40,0xce,0x80,0xbe,0x9c,0x96,0xd8,0xe8,0x0, 0x8d,0x7, 0xe0,0x8, +0xb6,0xfe,0x96,0xf8,0xe0,0x9, 0xb6,0x9e,0xe0,0x1, 0x96,0x98,0xe0,0x9, 0xb6,0xbe, +0x8e,0xc8,0x8d,0xd8,0x36,0xa8,0x3e,0x9b,0xe0,0x8, 0xb6,0xbe,0xe0,0xd, 0x37,0xcd, +0x8f,0xe8,0x8d,0xf8,0x37,0xa8,0xe0,0x1, 0x94,0x28,0x3f,0x9b,0xe0,0x8, 0xb7,0xde, +0xe2,0x0, 0xc6,0x81,0xe0,0x9, 0xb4,0x5e,0x15,0x80,0xe0,0x7, 0x9f,0x9e,0xe3,0xfe, +0xc7,0x80,0xe0,0x7, 0xb7,0x9e,0xe0,0x7, 0x9f,0x9e,0x3c,0xcf,0xe0,0x7, 0xb4,0x9e, +0xe0,0x7, 0x9f,0x9e,0xcf,0x90,0xe0,0x7, 0xb7,0x9e,0xe0,0x7, 0x9f,0x9e,0xcf,0x81, +0xe0,0x7, 0xb7,0x9e,0x0, 0x86,0xe0,0x7, 0x9f,0x9e,0xe2,0x0, 0xc7,0xa0,0x2f,0x9a, +0xe0,0x7, 0x9f,0x9e,0xe2,0x1, 0xc7,0x80,0x27,0xf7,0x2d,0x9c,0xe0,0x7, 0x9f,0x9e, +0x36,0xad,0xcf,0x84,0xe0,0x7, 0xb7,0x9e,0xe0,0x7, 0x9f,0x9e,0xe3,0xfe,0xc7,0x80, +0xe0,0x7, 0xb7,0x9e,0xe7,0xbf,0x17,0xff,0xa7,0x1c,0x3f,0xde,0x3f,0xcd,0xbf,0x9c, +0x38,0x82,0xe0,0x7, 0x9f,0x9e,0x15,0x1, 0xcf,0x82,0xe0,0x7, 0xb7,0x9e,0x3d,0xea, +0x0, 0xe0,0xe8,0x0, 0xad,0x7, 0x0, 0xe3,0x8, 0xb2,0xe0,0x2, 0x1f,0x91,0xa1,0xf, +0xe0,0x3, 0x1f,0x83,0xa6,0x92,0xa7,0xf, 0xe0,0x40,0xce,0x80,0xbe,0x92,0x3f,0xe8, +0x96,0xd8,0xb6,0xde,0x96,0xf8,0xb6,0xfe,0xe0,0x1, 0x96,0x98,0xe0,0x1, 0x9c,0x28, +0xe0,0x1, 0xb6,0x9e,0x8e,0x8f,0x8e,0x1f,0x36,0xa8,0x97,0xaf,0x3e,0x9c,0xe0,0x1, +0xb6,0xde,0xe0,0x9, 0xb7,0xde,0x17,0x80,0xb7,0x9e,0xdb,0x79,0xa7,0x12,0xe7,0xbf, +0x17,0xff,0x3f,0xde,0xbf,0x92,0x9, 0x61,0xe0,0x1, 0x1f,0xdc,0x14,0x3, 0xa7,0xf, +0xe0,0x1, 0xa7,0x8e,0x37,0xc8,0xe2,0x0, 0xc7,0x81,0x2f,0x82,0x38,0x82,0xe0,0x1, +0xa4,0xe, 0x34,0x49,0xe2,0x0, 0xc4,0x1, 0x38,0x82,0xe0,0x2, 0x1f,0xf0,0xa7,0xf, +0xe0,0x1, 0x1f,0xdc,0xa6,0x8f,0x17,0x80,0xe0,0x1, 0xaf,0xbe,0xa7,0x9e,0xe2,0x0, +0xc7,0x81,0x27,0xfd,0xe0,0x1, 0xa7,0x8d,0x37,0xc1,0xe2,0x0, 0xc7,0x81,0x27,0xf7, +0xa6,0x9e,0x17,0xfe,0x3f,0xdd,0xbf,0x9e,0xe0,0x1, 0x8c,0x3e,0x38,0x82,0xe0,0x2, +0x1f,0xf0,0xa7,0xf, 0xe0,0x1, 0x1f,0xdc,0xe0,0x1, 0xac,0x3e,0xa6,0x8f,0xa7,0x9e, +0xe2,0x0, 0xc7,0x81,0x27,0xfd,0xe0,0x1, 0xa7,0x8d,0x37,0xc1,0xe2,0x0, 0xc7,0x81, +0x27,0xf7,0xa6,0x9e,0x17,0xfe,0x3f,0xdd,0xbf,0x9e,0x38,0x82,0x24,0xa6,0x17,0xff, +0xe0,0x2, 0x1f,0x70,0xe0,0x1, 0x1e,0xdc,0x3f,0x99,0xe3,0xff,0xc7,0xff,0x16,0x7f, +0xa7,0xe, 0xa6,0x8d,0x3e,0x18,0xe0,0xb, 0x3c,0x1f,0x14,0x80,0x15,0x7e,0xe0,0x1, +0xac,0xbe,0xa7,0x9e,0xe2,0x0, 0xc7,0x81,0x27,0xfd,0xe0,0x1, 0xa7,0x8d,0x37,0xc1, +0xe2,0x0, 0xc7,0x81,0x27,0xf7,0xa7,0x9e,0x3f,0xda,0xbf,0x9e,0xe0,0x1, 0x8f,0xbe, +0xe0,0x80,0xaf,0x9c,0x3e,0x7b,0x1, 0xec,0x38,0x82,0x24,0xa3,0x17,0xff,0xe0,0x2, +0x1f,0x70,0xe0,0x1, 0x1e,0xdc,0x3f,0x99,0xe3,0xff,0xc7,0xff,0x16,0x7f,0xa7,0xe, +0xa6,0x8d,0x3e,0x18,0xe0,0xb, 0x3c,0x1f,0x15,0x7e,0xe0,0x80,0x87,0x9c,0xe0,0x1, +0xaf,0xbe,0xa7,0x9e,0xe2,0x0, 0xc7,0x81,0x27,0xfd,0xe0,0x1, 0xa7,0x8d,0x37,0xc1, +0xe2,0x0, 0xc7,0x81,0x27,0xf7,0xa7,0x9e,0x3e,0x7b,0x3f,0xda,0xbf,0x9e,0x1, 0xee, +0x38,0x82,0xe0,0x2, 0x1f,0xf0,0x17,0x1, 0xa7,0x8f,0x3f,0x58,0xa5,0xbf,0x16,0xfb, +0xe0,0xc, 0x37,0x22,0x3e,0xdb,0x3e,0xcc,0xbe,0xbf,0x15,0xef,0xa6,0xbf,0xe0,0xc, +0x37,0x24,0x3e,0xdb,0x3e,0xcc,0xbe,0xbf,0x16,0xf7,0xa5,0xf, 0xe0,0xc, 0x37,0x23, +0x3e,0xda,0x3e,0xcc,0xbe,0x8f,0x16,0xfe,0xa6,0x3f,0x3e,0xdc,0x3f,0x4d,0xbf,0x3f, +0xe0,0x2, 0x1f,0x66,0x8f,0xe, 0xe2,0x0, 0xcf,0x1, 0x1, 0xc, 0x2f,0xa, 0xa6,0x8f, +0xe0,0x2e,0x3c,0xe, 0xe0,0x8, 0x37,0x24,0xe0,0xe, 0x3e,0xdb,0x3f,0x48,0xbf,0xf, +0x38,0x82,0xa7,0xf, 0xcf,0x40,0xbf,0xf, 0x24,0x7, 0xa6,0x8f,0xe7,0xfe,0x17,0x7f, +0x3f,0x5d,0xbf,0xf, 0x38,0x82,0xa7,0xf, 0xe0,0x1, 0xcf,0x0, 0xbf,0xf, 0xe7,0xff, +0x17,0x3f,0xa6,0x8f,0x3f,0x5d,0xbf,0xf, 0x38,0x82,0xe0,0x2, 0x1f,0x70,0x97,0x88, +0xa6,0x8e,0xe2,0xff,0xc7,0xff,0xe0,0x1, 0xb7,0x9d,0x97,0x98,0xe2,0x7f,0xc7,0xff, +0xe0,0x1, 0xb7,0xbd,0x17,0xf7,0x9f,0x8, 0xa6,0x3d,0x37,0x4f,0x37,0x23,0x3f,0xdc, +0x3f,0xce,0xbf,0xbd,0x17,0xfc,0x9f,0x18,0xa6,0x6d,0x37,0x4e,0x3f,0xdc,0x3f,0xce, +0xbf,0xed,0x38,0x82,0xe0,0x2, 0x1e,0x94,0xe0,0x2, 0x1f,0x70,0x87,0xcd,0xa7,0xe, +0xcf,0x82,0xaf,0xcd,0xa7,0xbe,0xcf,0x82,0xbf,0xbe,0x38,0x82,0xe0,0x2, 0x1f,0x14, +0x9f,0xae,0x37,0xc9,0xe2,0x0, 0xc7,0x81,0x2f,0xfc,0x38,0x82,0xe0,0xd, 0x3c,0x49, +0xe2,0x0, 0xce,0x8f,0x3f,0xe8,0x3f,0x69,0x2, 0x8a,0xea,0x4f,0x7c,0x9c,0xe9,0xff, +0xc4,0xff,0x3c,0x9e,0x37,0xa4,0x3f,0x99,0x8c,0xf, 0x38,0x82,0x8, 0xb2,0xe2,0x0, +0xcc,0x0, 0x3, 0x17,0xe2,0x0, 0xcc,0x80,0xe0,0x41,0x3f,0xc8,0x3, 0xb, 0x11,0x1, +0x15,0x0, 0xe0,0x41,0x3c,0xce,0x3c,0x6f,0xd0,0x27,0x29,0x3, 0xe0,0x41,0x3c,0x48, +0x9, 0x61,0x15,0x0, 0x3c,0x6f,0xd0,0x20,0x0, 0xfa,0x15,0x0, 0x9, 0x21,0x0, 0x9c, +0xe2,0x0, 0xcc,0x80,0x3, 0x7b,0x11,0x0, 0x0, 0xec,0x8, 0xb2,0xe2,0x0, 0xcc,0x0, +0x3, 0xf, 0xe0,0x41,0x3c,0x48,0x11,0x1, 0xe2,0x0, 0xcc,0x80,0x3, 0x3, 0xe0,0x41, +0x3c,0xc9,0x15,0x1, 0xd0,0x9, 0x21,0x3, 0xe0,0x41,0x3c,0x48,0x9, 0x61,0x11,0x0, +0x0, 0xf4,0x15,0x0, 0x0, 0x81,0x17,0x81,0x17,0x0, 0xe1,0x2d,0x3c,0x19,0x26,0x84, +0xe1,0x2d,0x3f,0x8e,0x2e,0x88,0x17,0x0, 0x2f,0x8c,0xe2,0x0, 0xcd,0x0, 0xe0,0x68, +0x39,0x2e,0x38,0x82,0xe2,0x0, 0xcc,0x80,0x4, 0x77,0x34,0xa1,0x37,0xa1,0x0, 0xee, +0x3c,0x79,0x4, 0x83,0x3c,0x29,0x3f,0x4f,0x37,0xc1,0x34,0xc1,0x0, 0xee,0x0, 0x0, +0x3d,0xe8,0xe2,0x0, 0xcd,0x3, 0x5, 0xad,0xe0,0xc, 0x3c,0x49,0xe2,0x0, 0xc6,0x3, +0x2e,0x28,0xc5,0x7c,0xe0,0xc, 0x35,0x21,0xe2,0x0, 0xc6,0x18,0xe1,0x80,0xa7,0x99, +0x26,0x8, 0xea,0x0, 0xce,0x81,0xe0,0x7e,0xce,0xe4,0x3e,0xac,0x3f,0x6f,0x3e,0x82, +0xc5,0x70,0x6, 0x93,0xe1,0x80,0xa7,0x19,0xe1,0x80,0xbf,0x9b,0xe1,0x80,0xa7,0x99, +0xe1,0x80,0xbf,0x1b,0xe1,0x80,0xa7,0x19,0xe1,0x80,0xbf,0x9b,0xe1,0x80,0xa7,0x99, +0xc5,0x70,0xe1,0x80,0xbf,0x1b,0x6, 0x6f,0xe1,0x80,0xbf,0x9b,0xe2,0x0, 0xc5,0x3, +0xc5,0x7f,0x6, 0x87,0xe1,0x80,0x86,0x19,0xc5,0x7f,0xe1,0x80,0xae,0x1b,0x6, 0x7b, +0x38,0x82,0x0, 0x0, 0xe2,0x0, 0xcd,0x3, 0x5, 0xb1,0xe2,0x1, 0xc4,0xff,0xe0,0xc, +0x34,0xa8,0x3c,0xcc,0xe4,0xc, 0x34,0xa0,0x3c,0xcc,0xe0,0x41,0x3e,0x48,0xe2,0x0, +0xc6,0x3, 0xe0,0xb, 0x3e,0x18,0xe0,0xd, 0x3d,0x2c,0x3e,0x6d,0xe2,0x0, 0xc6,0xc, +0x26,0x7, 0xea,0x0, 0xcf,0x81,0xe0,0x7f,0xcf,0xd4,0x3f,0xac,0x3f,0x82,0xe1,0xff, +0xc6,0xf0,0x6, 0x8b,0xe1,0x80,0xbc,0x9b,0xe1,0x80,0xbc,0x9b,0xe1,0x80,0xbc,0x9b, +0xc6,0xf0,0xe1,0x80,0xbc,0x9b,0x6, 0x77,0x3d,0x18,0xe0,0xc0,0xac,0xba,0xac,0x9a, +0xac,0xaa,0xac,0x88,0xac,0x98,0xac,0xa8,0x38,0x82,0x3d,0xe8,0xc5,0x7f,0x6, 0x85, +0xe1,0x80,0xac,0x9b,0xc5,0x7f,0x6, 0x7d,0x38,0x82,0xe0,0x3, 0x1f,0x8b,0xbc,0xf, +0x38,0x82,0xe0,0x3, 0x1f,0xb, 0xe0,0x3, 0x1c,0x65,0xa7,0x8e,0x3f,0xb8,0xe0,0x3, +0x1c,0x66,0x3f,0x98,0xe0,0x3, 0x1c,0x67,0xbf,0x8e,0x3c,0x5f,0x38,0x82,0x8, 0xb1, +0xe0,0x60,0x3c,0x87,0xea,0x24,0x7f,0xf8,0xe0,0x0, 0x15,0x60,0x3c,0x6f,0xdf,0x71, +0xe0,0x60,0x3c,0x17,0x8, 0xe1,0x0, 0x0, 0x0, 0x0, 0x16,0x98,0x0, 0x0, 0x16,0x56, +0x0, 0x0, 0x15,0xdc,0x0, 0x0, 0x16,0x56,0x0, 0x0, 0x16,0x4c,0x0, 0x0, 0x16,0xba, +0x0, 0x0, 0x16,0xb0,0x0, 0x0, 0x15,0xe0,0x0, 0x0, 0x16,0xb0,0x0, 0x0, 0x16,0x4c, +0x0, 0x0, 0x2d,0xee,0x0, 0x0, 0x2d,0xf6,0x0, 0x0, 0x2d,0xe8,0x0, 0x0, 0x2d,0xe8, +0x0, 0x0, 0x2d,0xe8,0x0, 0x0, 0x2d,0xe8,0x0, 0x0, 0x2d,0xe8,0x0, 0x0, 0x2d,0xe8, +0x0, 0x0, 0x2d,0xe8,0x0, 0x0, 0x2d,0xe8,0x0, 0x0, 0x2d,0xfc,0x0, 0x0, 0x2e,0xc, +0x0, 0x0, 0x2e,0x1c,0x0, 0x0, 0x2e,0x1c,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98, +0x0, 0x0, 0x2e,0x8e,0x0, 0x0, 0x2e,0x8e,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98, +0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2e,0x8e,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98, +0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2e,0x8e,0x0, 0x0, 0x2e,0x8e,0x0, 0x0, 0x2e,0x8e, +0x0, 0x0, 0x2e,0x8e,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98, +0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98, +0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98, +0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98, +0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98, +0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2e,0x8e, +0x0, 0x0, 0x2e,0x8e,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98, +0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2e,0x8e,0x0, 0x0, 0x2e,0x8e,0x0, 0x0, 0x2f,0x98, +0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98, +0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2e,0x8e,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2e,0x8e, +0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98, +0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98, +0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98, +0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98, +0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98, +0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98, +0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2f,0x98,0x0, 0x0, 0x2e,0x8e,0x0, 0x0, 0x2e,0x8e, +0x0, 0x0, 0x2e,0x8e,0x0, 0x0, 0x2e,0x8e,0x0, 0x0, 0x30,0x86,0x0, 0x0, 0x2f,0xce, +0x0, 0x0, 0x2f,0xce,0x0, 0x0, 0x2f,0xce,0x0, 0x0, 0x2f,0xce,0x0, 0x0, 0x2f,0xce, +0x0, 0x0, 0x2f,0xce,0x0, 0x0, 0x2f,0xce,0x0, 0x0, 0x2f,0xce,0x0, 0x0, 0x2f,0xce, +0x0, 0x0, 0x2f,0xce,0x0, 0x0, 0x2f,0xce,0x0, 0x0, 0x2f,0xce,0x0, 0x0, 0x2f,0xce, +0x0, 0x0, 0x2f,0xce,0x0, 0x0, 0x2f,0xce,0x0, 0x0, 0x2f,0xce,0x0, 0x0, 0x30,0x70, +0x0, 0x0, 0x2f,0xce,0x0, 0x0, 0x30,0x54,0x0, 0x0, 0x2f,0xce,0x0, 0x0, 0x30,0x3c, +0x0, 0x0, 0x30,0x2e,0x0, 0x0, 0x30,0x2e,0x0, 0x0, 0x30,0x20,0x0, 0x0, 0x30,0x20, +0x0, 0x0, 0x30,0x20,0x0, 0x0, 0x2f,0xce,0x0, 0x0, 0x30,0xe, 0x0, 0x0, 0x2f,0xce, +0x0, 0x0, 0x2f,0xce,0x0, 0x0, 0x2f,0xce,0x0, 0x0, 0x30,0xc8,0x0, 0x0, 0x30,0xc8, +0x0, 0x0, 0x30,0xc8,0x0, 0x0, 0x2f,0xce,0x0, 0x0, 0x2f,0xce,0x0, 0x0, 0x2f,0xce, +0x0, 0x0, 0x2f,0xce,0x0, 0x0, 0x2f,0xce,0x0, 0x0, 0x33,0xe, 0x0, 0x0, 0x30,0xba, +0x0, 0x0, 0x30,0xac,0x0, 0x0, 0x30,0x0, 0x0, 0x0, 0x2f,0xf2,0x0, 0x0, 0x2f,0xce, +0x0, 0x0, 0x2f,0xce,0x0, 0x0, 0x30,0xd8,0x80,0x0, 0xd, 0x0, 0x80,0x0, 0xb, 0x0, +0x80,0x0, 0xa, 0x0, 0x80,0x0, 0x7, 0x0, 0x80,0x0, 0x5, 0x0, 0x80,0x0, 0x4, 0x0, +0x80,0x0, 0x3, 0x0, 0x80,0x0, 0x2, 0x0, 0x80,0x0, 0x1, 0x0, 0x80,0x0, 0x0, 0x0, +0x80,0x1, 0x20,0x0, 0x0, 0x3, 0x86,0x60,0x0, 0x3, 0x80,0x0, 0x80,0x1, 0x40,0x0, +0x80,0x1, 0x10,0x0, 0x80,0x0, 0x6, 0x0, 0x80,0x0, 0x8, 0x0, 0x50,0x1, 0x32,0x2, +0x0, 0x3, 0xf0,0x4, 0xce,0x5, 0x9c,0x6, 0x84,0x7, 0x81,0x8, 0x0, 0x2, 0x1, 0x0, +0x2, 0x1, 0x0, 0x2, 0x1, 0x0, 0x2, 0x1, 0x0, 0x2, 0x1, 0x0, 0x2, 0x1, 0x0, 0x2, +0x1, 0x0, 0x2, 0x1, 0x0, 0x2, 0x1, 0x0, 0x2, 0x1, 0x0, 0x2, 0xeb,0xaa,0x8, 0x0, +0x0, 0x3, 0x6, 0xa8,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x2, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0x2, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0x3, 0x2, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0x3, 0x2, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0x4, 0x2, 0x2, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x9, 0x4, 0x3, 0x2, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0x5, 0x3, 0x2, 0x2, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0x5, 0x3, 0x2, 0x2, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, +0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 0x6, 0x4, 0x3, 0x2, 0x2, 0x1, 0x1, 0x1, 0x1, 0x1, +0x1, 0x0, 0x0, 0x0, 0x0, 0xd, 0x6, 0x4, 0x3, 0x2, 0x2, 0x1, 0x1, 0x1, 0x1, 0x1, +0x1, 0x1, 0x0, 0x0, 0x0, 0xe, 0x7, 0x4, 0x3, 0x2, 0x2, 0x2, 0x1, 0x1, 0x1, 0x1, +0x1, 0x1, 0x1, 0x0, 0x0, 0xf, 0x7, 0x5, 0x3, 0x3, 0x2, 0x2, 0x1, 0x1, 0x1, 0x1, +0x1, 0x1, 0x1, 0x1, 0xff,0x40,0x0, 0x0, 0x0, 0x2, 0x2e,0x70,0x2, 0x0, 0x0, 0x0, +0x72,0x8d,0x0, 0xff,0xda,0x25,0x4, 0xa7,0x24,0x87,0x55,0x56,0x72,0x8d,0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x34,0x34,0x33,0x35,0x33,0x31,0x30,0x32,0x44,0x31,0x30,0x30,0x33,0x31,0x30,0x30, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x30,0x30,0x31,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, +0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x1, 0x1, 0x12,0x0, 0x20, +0x0, 0x12,0x20,0x12,0x20,0x0, 0x0, 0x2, 0x40,0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x3, +0x1b,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x1b,0x3, 0x1a,0x3, 0x19,0x3, +0x18,0x3, 0x17,0x3, 0x16,0x3, 0x15,0x3, 0x14,0x3, 0x13,0x3, 0x12,0x3, 0x11,0x3, +0x10,0x3, 0xf, 0x3, 0xe, 0x3, 0xd, 0x3, 0xc, 0x3, 0xb, 0x3, 0xa, 0x3, 0x9, 0x3, +0x8, 0x3, 0x7, 0x3, 0x6, 0x3, 0x5, 0x3, 0x4, 0x3, 0x3, 0x3, 0x2, 0x3, 0x1, 0x3, +0x0, 0x2, 0xff,0x2, 0xfe,0x2, 0xfd,0x2, 0xfc,0x2, 0xf4,0x2, 0xf3,0x2, 0xf2,0x2, +0xf1,0x2, 0xf0,0x2, 0xef,0x2, 0xee,0x2, 0xed,0x2, 0xec,0x2, 0xeb,0x2, 0xea,0x2, +0xe9,0x2, 0xe8,0x2, 0xe7,0x2, 0xe6,0x2, 0xe5,0x2, 0xe4,0x2, 0xe3,0x2, 0xe2,0x2, +0xe1,0x2, 0xe0,0x2, 0xdf,0x2, 0xde,0x2, 0xdd,0x2, 0xdc,0x2, 0xdb,0x2, 0xda,0x2, +0xd9,0x2, 0xd8,0x2, 0xd7,0x2, 0xd6,0x2, 0xd5,0x2, 0xcd,0x2, 0xcc,0x2, 0xcb,0x2, +0xca,0x2, 0xc9,0x2, 0xc8,0x2, 0xc7,0x2, 0xc6,0x2, 0xc5,0x2, 0xc4,0x2, 0xc3,0x2, +0xc2,0x2, 0xc1,0x2, 0xc0,0x2, 0xbf,0x2, 0xbe,0x2, 0xbd,0x2, 0xbc,0x2, 0xbb,0x2, +0xba,0x2, 0xb9,0x2, 0xb8,0x2, 0xb7,0x2, 0xb6,0x2, 0xb5,0x2, 0xb4,0x2, 0xb3,0x2, +0xb2,0x2, 0xb1,0x2, 0xb0,0x2, 0xaf,0x2, 0xae,0x2, 0xa3,0x2, 0xa2,0x2, 0xa1,0x2, +0xa0,0x2, 0x9f,0x2, 0x9e,0x2, 0x9d,0x2, 0x9c,0x2, 0x9b,0x2, 0x9a,0x2, 0x99,0x2, +0x98,0x2, 0x97,0x2, 0x96,0x2, 0x95,0x2, 0x94,0x2, 0x93,0x2, 0x92,0x2, 0x91,0x2, +0x90,0x2, 0x8f,0x2, 0x8e,0x2, 0x8d,0x2, 0x8c,0x2, 0x8b,0x2, 0x8a,0x2, 0x89,0x2, +0x88,0x2, 0x87,0x2, 0x86,0x2, 0x85,0x2, 0x84,0x2, 0x7c,0x2, 0x7b,0x2, 0x7a,0x2, +0x79,0x2, 0x78,0x2, 0x77,0x2, 0x76,0x2, 0x75,0x2, 0x74,0x2, 0x73,0x2, 0x72,0x2, +0x71,0x2, 0x70,0x2, 0x6f,0x2, 0x6e,0x2, 0x6d,0x2, 0x6c,0x2, 0x6b,0x2, 0x6a,0x2, +0x69,0x2, 0x68,0x2, 0x67,0x2, 0x66,0x2, 0x65,0x2, 0x64,0x2, 0x63,0x2, 0x62,0x2, +0x61,0x2, 0x60,0x2, 0x5f,0x2, 0x5e,0x2, 0x5d,0x2, 0x55,0x2, 0x54,0x2, 0x53,0x2, +0x52,0x2, 0x51,0x2, 0x50,0x2, 0x4f,0x2, 0x4e,0x2, 0x4d,0x2, 0x4c,0x2, 0x4b,0x2, +0x4a,0x2, 0x49,0x2, 0x48,0x2, 0x47,0x2, 0x46,0x2, 0x45,0x2, 0x44,0x2, 0x43,0x2, +0x42,0x2, 0x41,0x2, 0x40,0x2, 0x3f,0x2, 0x3e,0x2, 0x3d,0x2, 0x3c,0x2, 0x3b,0x2, +0x3a,0x2, 0x39,0x2, 0x38,0x2, 0x37,0x2, 0x36,0x2, 0x2b,0x2, 0x2a,0x2, 0x29,0x2, +0x28,0x2, 0x27,0x2, 0x26,0x2, 0x25,0x2, 0x24,0x2, 0x23,0x2, 0x22,0x2, 0x21,0x2, +0x20,0x2, 0x1f,0x2, 0x1e,0x2, 0x1d,0x2, 0x1c,0x2, 0x1b,0x2, 0x1a,0x2, 0x19,0x2, +0x18,0x2, 0x17,0x2, 0x16,0x2, 0x15,0x2, 0x14,0x2, 0x13,0x2, 0x12,0x2, 0x11,0x2, +0x10,0x2, 0xf, 0x2, 0xe, 0x2, 0xd, 0x2, 0xc, 0x2, 0x4, 0x2, 0x3, 0x2, 0x2, 0x2, +0x1, 0x2, 0x0, 0x1, 0xff,0x1, 0xfe,0x1, 0xfd,0x1, 0xfc,0x1, 0xfb,0x1, 0xfa,0x1, +0xf9,0x1, 0xf8,0x1, 0xf7,0x1, 0xf6,0x1, 0xf5,0x1, 0xf4,0x1, 0xf3,0x1, 0xf2,0x1, +0xf1,0x1, 0xf0,0x1, 0xef,0x1, 0xee,0x1, 0xed,0x1, 0xec,0x1, 0xeb,0x1, 0xea,0x1, +0xe9,0x1, 0xe8,0x1, 0xe7,0x1, 0xe6,0x1, 0xe5,0x1, 0xdd,0x1, 0xdc,0x1, 0xdb,0x1, +0xda,0x1, 0xd9,0x1, 0xd8,0x1, 0xd7,0x1, 0xd6,0x1, 0xd5,0x1, 0xd4,0x1, 0xd3,0x1, +0xd2,0x1, 0xd1,0x1, 0xd0,0x1, 0xcf,0x1, 0xce,0x1, 0xcd,0x1, 0xcc,0x1, 0xcb,0x1, +0xca,0x1, 0xc9,0x1, 0xc8,0x1, 0xc7,0x1, 0xc6,0x1, 0xc5,0x1, 0xc4,0x1, 0xc3,0x1, +0xc2,0x1, 0xc1,0x1, 0xc0,0x1, 0xbf,0x1, 0xbe,0x1, 0x62,0x1, 0x61,0x1, 0x60,0x1, +0x5f,0x1, 0x5e,0x1, 0x5d,0x1, 0x5c,0x1, 0x5b,0x1, 0x5a,0x1, 0x59,0x1, 0x58,0x1, +0x57,0x1, 0x56,0x1, 0x55,0x1, 0x54,0x1, 0x53,0x1, 0x52,0x1, 0x51,0x1, 0x50,0x1, +0x4f,0x1, 0x4e,0x1, 0x4d,0x1, 0x4c,0x1, 0x4b,0x1, 0x4a,0x1, 0x49,0x1, 0x48,0x1, +0x47,0x1, 0x46,0x1, 0x45,0x1, 0x44,0x1, 0x43,0x1, 0x3b,0x1, 0x3a,0x1, 0x39,0x1, +0x38,0x1, 0x37,0x1, 0x36,0x1, 0x35,0x1, 0x34,0x1, 0x33,0x1, 0x32,0x1, 0x31,0x1, +0x30,0x1, 0x2f,0x1, 0x2e,0x1, 0x2d,0x1, 0x2c,0x1, 0x2b,0x1, 0x2a,0x1, 0x29,0x1, +0x28,0x1, 0x27,0x1, 0x26,0x1, 0x25,0x1, 0x24,0x1, 0x23,0x1, 0x22,0x1, 0x21,0x1, +0x20,0x1, 0x1f,0x1, 0x1e,0x1, 0x1d,0x1, 0x1c,0x1, 0x14,0x1, 0x13,0x1, 0x12,0x1, +0x11,0x1, 0x10,0x1, 0xf, 0x1, 0xe, 0x1, 0xd, 0x1, 0xc, 0x1, 0xb, 0x1, 0xa, 0x1, +0x9, 0x1, 0x8, 0x1, 0x7, 0x1, 0x6, 0x1, 0x5, 0x1, 0x4, 0x1, 0x3, 0x1, 0x2, 0x1, +0x1, 0x1, 0x0, 0x0, 0xff,0x0, 0xfe,0x0, 0xfd,0x0, 0xfc,0x0, 0xfb,0x0, 0xfa,0x0, +0xf9,0x0, 0xf8,0x0, 0xf7,0x0, 0xf6,0x0, 0xf5,0x0, 0xea,0x0, 0xe9,0x0, 0xe8,0x0, +0xe7,0x0, 0xe6,0x0, 0xe5,0x0, 0xe4,0x0, 0xe3,0x0, 0xe2,0x0, 0xe1,0x0, 0xe0,0x0, +0xdf,0x0, 0xde,0x0, 0xdd,0x0, 0xdc,0x0, 0xdb,0x0, 0xda,0x0, 0xd9,0x0, 0xd8,0x0, +0xd7,0x0, 0xd6,0x0, 0xd5,0x0, 0xd4,0x0, 0xd3,0x0, 0xd2,0x0, 0xd1,0x0, 0xd0,0x0, +0xcf,0x0, 0xce,0x0, 0xcd,0x0, 0xcc,0x0, 0xcb,0x0, 0xc3,0x0, 0xc2,0x0, 0xc1,0x0, +0xc0,0x0, 0xbf,0x0, 0xbe,0x0, 0xbd,0x0, 0xbc,0x0, 0xbb,0x0, 0xba,0x0, 0xb9,0x0, +0xb8,0x0, 0xb7,0x0, 0xb6,0x0, 0xb5,0x0, 0xb4,0x0, 0xb3,0x0, 0xb2,0x0, 0xb1,0x0, +0xb0,0x0, 0xaf,0x0, 0xae,0x0, 0xad,0x0, 0xac,0x0, 0xab,0x0, 0xaa,0x0, 0xa9,0x0, +0xa8,0x0, 0xa7,0x0, 0xa6,0x0, 0xa5,0x0, 0xa4,0x0, 0x9c,0x0, 0x9b,0x0, 0x9a,0x0, +0x99,0x0, 0x98,0x0, 0x97,0x0, 0x96,0x0, 0x95,0x0, 0x94,0x0, 0x93,0x0, 0x92,0x0, +0x91,0x0, 0x90,0x0, 0x8f,0x0, 0x8e,0x0, 0x8d,0x0, 0x8c,0x0, 0x8b,0x0, 0x8a,0x0, +0x89,0x0, 0x88,0x0, 0x87,0x0, 0x86,0x0, 0x85,0x0, 0x84,0x0, 0x83,0x0, 0x82,0x0, +0x81,0x0, 0x80,0x0, 0x7f,0x0, 0x7e,0x0, 0x7d,0x0, 0x72,0x0, 0x71,0x0, 0x70,0x0, +0x6f,0x0, 0x6e,0x0, 0x6d,0x0, 0x6c,0x0, 0x6b,0x0, 0x6a,0x0, 0x69,0x0, 0x68,0x0, +0x67,0x0, 0x66,0x0, 0x65,0x0, 0x64,0x0, 0x63,0x0, 0x62,0x0, 0x61,0x0, 0x60,0x0, +0x5f,0x0, 0x5e,0x0, 0x5d,0x0, 0x5c,0x0, 0x5b,0x0, 0x5a,0x0, 0x59,0x0, 0x58,0x0, +0x57,0x0, 0x56,0x0, 0x55,0x0, 0x54,0x0, 0x53,0x0, 0x4b,0x0, 0x4a,0x0, 0x49,0x0, +0x48,0x0, 0x47,0x0, 0x46,0x0, 0x45,0x0, 0x44,0x0, 0x43,0x0, 0x42,0x0, 0x41,0x0, +0x40,0x0, 0x3f,0x0, 0x3e,0x0, 0x3d,0x0, 0x3c,0x0, 0x3b,0x0, 0x3a,0x0, 0x39,0x0, +0x38,0x0, 0x37,0x0, 0x36,0x0, 0x35,0x0, 0x34,0x0, 0x33,0x0, 0x32,0x0, 0x31,0x0, +0x30,0x0, 0x2f,0x0, 0x2e,0x0, 0x2d,0x0, 0x2c,0x0, 0x24,0x0, 0x23,0x0, 0x22,0x0, +0x21,0x0, 0x20,0x0, 0x1f,0x0, 0x1e,0x0, 0x1d,0x0, 0x1c,0x0, 0x1b,0x0, 0x1a,0x0, +0x19,0x0, 0x18,0x0, 0x17,0x0, 0x16,0x0, 0x15,0x0, 0x14,0x0, 0x13,0x0, 0x12,0x0, +0x11,0x0, 0x10,0x0, 0xf, 0x0, 0xe, 0x0, 0xd, 0x0, 0xc, 0x0, 0xb, 0x0, 0xa, 0x0, +0x9, 0x0, 0x8, 0x0, 0x7, 0x0, 0x6, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x1b,0x3, 0x1a,0x3, 0x19,0x3, +0x18,0x3, 0x17,0x3, 0x16,0x3, 0x15,0x3, 0x14,0x3, 0x13,0x3, 0x12,0x3, 0x11,0x3, +0x10,0x3, 0xf, 0x3, 0xe, 0x3, 0xd, 0x3, 0xc, 0x3, 0xb, 0x3, 0xa, 0x3, 0x9, 0x3, +0x8, 0x3, 0x7, 0x3, 0x6, 0x3, 0x5, 0x3, 0x4, 0x3, 0x3, 0x3, 0x2, 0x3, 0x1, 0x3, +0x0, 0x2, 0xff,0x2, 0xfe,0x2, 0xfd,0x2, 0xfc,0x2, 0xf4,0x2, 0xf3,0x2, 0xf2,0x2, +0xf1,0x2, 0xf0,0x2, 0xef,0x2, 0xee,0x2, 0xed,0x2, 0xec,0x2, 0xeb,0x2, 0xea,0x2, +0xe9,0x2, 0xe8,0x2, 0xe7,0x2, 0xe6,0x2, 0xe5,0x2, 0xe4,0x2, 0xe3,0x2, 0xe2,0x2, +0xe1,0x2, 0xe0,0x2, 0xdf,0x2, 0xde,0x2, 0xdd,0x2, 0xdc,0x2, 0xdb,0x2, 0xda,0x2, +0xd9,0x2, 0xd8,0x2, 0xd7,0x2, 0xd6,0x2, 0xd5,0x2, 0xcd,0x2, 0xcc,0x2, 0xcb,0x2, +0xca,0x2, 0xc9,0x2, 0xc8,0x2, 0xc7,0x2, 0xc6,0x2, 0xc5,0x2, 0xc4,0x2, 0xc3,0x2, +0xc2,0x2, 0xc1,0x2, 0xc0,0x2, 0xbf,0x2, 0xbe,0x2, 0xbd,0x2, 0xbc,0x2, 0xbb,0x2, +0xba,0x2, 0xb9,0x2, 0xb8,0x2, 0xb7,0x2, 0xb6,0x2, 0xb5,0x2, 0xb4,0x2, 0xb3,0x2, +0xb2,0x2, 0xb1,0x2, 0xb0,0x2, 0xaf,0x2, 0xae,0x2, 0xa3,0x2, 0xa2,0x2, 0xa1,0x2, +0xa0,0x2, 0x9f,0x2, 0x9e,0x2, 0x9d,0x2, 0x9c,0x2, 0x9b,0x2, 0x9a,0x2, 0x99,0x2, +0x98,0x2, 0x97,0x2, 0x96,0x2, 0x95,0x2, 0x94,0x2, 0x93,0x2, 0x92,0x2, 0x91,0x2, +0x90,0x2, 0x8f,0x2, 0x8e,0x2, 0x8d,0x2, 0x8c,0x2, 0x8b,0x2, 0x8a,0x2, 0x89,0x2, +0x88,0x2, 0x87,0x2, 0x86,0x2, 0x85,0x2, 0x84,0x2, 0x7c,0x2, 0x7b,0x2, 0x7a,0x2, +0x79,0x2, 0x78,0x2, 0x77,0x2, 0x76,0x2, 0x75,0x2, 0x74,0x2, 0x73,0x2, 0x72,0x2, +0x71,0x2, 0x70,0x2, 0x6f,0x2, 0x6e,0x2, 0x6d,0x2, 0x6c,0x2, 0x6b,0x2, 0x6a,0x2, +0x69,0x2, 0x68,0x2, 0x67,0x2, 0x66,0x2, 0x65,0x2, 0x64,0x2, 0x63,0x2, 0x62,0x2, +0x61,0x2, 0x60,0x2, 0x5f,0x2, 0x5e,0x2, 0x5d,0x2, 0x55,0x2, 0x54,0x2, 0x53,0x2, +0x52,0x2, 0x51,0x2, 0x50,0x2, 0x4f,0x2, 0x4e,0x2, 0x4d,0x2, 0x4c,0x2, 0x4b,0x2, +0x4a,0x2, 0x49,0x2, 0x48,0x2, 0x47,0x2, 0x46,0x2, 0x45,0x2, 0x44,0x2, 0x43,0x2, +0x42,0x2, 0x41,0x2, 0x40,0x2, 0x3f,0x2, 0x3e,0x2, 0x3d,0x2, 0x3c,0x2, 0x3b,0x2, +0x3a,0x2, 0x39,0x2, 0x38,0x2, 0x37,0x2, 0x36,0x2, 0x2b,0x2, 0x2a,0x2, 0x29,0x2, +0x28,0x2, 0x27,0x2, 0x26,0x2, 0x25,0x2, 0x24,0x2, 0x23,0x2, 0x22,0x2, 0x21,0x2, +0x20,0x2, 0x1f,0x2, 0x1e,0x2, 0x1d,0x2, 0x1c,0x2, 0x1b,0x2, 0x1a,0x2, 0x19,0x2, +0x18,0x2, 0x17,0x2, 0x16,0x2, 0x15,0x2, 0x14,0x2, 0x13,0x2, 0x12,0x2, 0x11,0x2, +0x10,0x2, 0xf, 0x2, 0xe, 0x2, 0xd, 0x2, 0xc, 0x2, 0x4, 0x2, 0x3, 0x2, 0x2, 0x2, +0x1, 0x2, 0x0, 0x1, 0xff,0x1, 0xfe,0x1, 0xfd,0x1, 0xfc,0x1, 0xfb,0x1, 0xfa,0x1, +0xf9,0x1, 0xf8,0x1, 0xf7,0x1, 0xf6,0x1, 0xf5,0x1, 0xf4,0x1, 0xf3,0x1, 0xf2,0x1, +0xf1,0x1, 0xf0,0x1, 0xef,0x1, 0xee,0x1, 0xed,0x1, 0xec,0x1, 0xeb,0x1, 0xea,0x1, +0xe9,0x1, 0xe8,0x1, 0xe7,0x1, 0xe6,0x1, 0xe5,0x1, 0xdd,0x1, 0xdc,0x1, 0xdb,0x1, +0xda,0x1, 0xd9,0x1, 0xd8,0x1, 0xd7,0x1, 0xd6,0x1, 0xd5,0x1, 0xd4,0x1, 0xd3,0x1, +0xd2,0x1, 0xd1,0x1, 0xd0,0x1, 0xcf,0x1, 0xce,0x1, 0xcd,0x1, 0xcc,0x1, 0xcb,0x1, +0xca,0x1, 0xc9,0x1, 0xc8,0x1, 0xc7,0x1, 0xc6,0x1, 0xc5,0x1, 0xc4,0x1, 0xc3,0x1, +0xc2,0x1, 0xc1,0x1, 0xc0,0x1, 0xbf,0x1, 0xbe,0x1, 0x62,0x1, 0x61,0x1, 0x60,0x1, +0x5f,0x1, 0x5e,0x1, 0x5d,0x1, 0x5c,0x1, 0x5b,0x1, 0x5a,0x1, 0x59,0x1, 0x58,0x1, +0x57,0x1, 0x56,0x1, 0x55,0x1, 0x54,0x1, 0x53,0x1, 0x52,0x1, 0x51,0x1, 0x50,0x1, +0x4f,0x1, 0x4e,0x1, 0x4d,0x1, 0x4c,0x1, 0x4b,0x1, 0x4a,0x1, 0x49,0x1, 0x48,0x1, +0x47,0x1, 0x46,0x1, 0x45,0x1, 0x44,0x1, 0x43,0x1, 0x3b,0x1, 0x3a,0x1, 0x39,0x1, +0x38,0x1, 0x37,0x1, 0x36,0x1, 0x35,0x1, 0x34,0x1, 0x33,0x1, 0x32,0x1, 0x31,0x1, +0x30,0x1, 0x2f,0x1, 0x2e,0x1, 0x2d,0x1, 0x2c,0x1, 0x2b,0x1, 0x2a,0x1, 0x29,0x1, +0x28,0x1, 0x27,0x1, 0x26,0x1, 0x25,0x1, 0x24,0x1, 0x23,0x1, 0x22,0x1, 0x21,0x1, +0x20,0x1, 0x1f,0x1, 0x1e,0x1, 0x1d,0x1, 0x1c,0x1, 0x14,0x1, 0x13,0x1, 0x12,0x1, +0x11,0x1, 0x10,0x1, 0xf, 0x1, 0xe, 0x1, 0xd, 0x1, 0xc, 0x1, 0xb, 0x1, 0xa, 0x1, +0x9, 0x1, 0x8, 0x1, 0x7, 0x1, 0x6, 0x1, 0x5, 0x1, 0x4, 0x1, 0x3, 0x1, 0x2, 0x1, +0x1, 0x1, 0x0, 0x0, 0xff,0x0, 0xfe,0x0, 0xfd,0x0, 0xfc,0x0, 0xfb,0x0, 0xfa,0x0, +0xf9,0x0, 0xf8,0x0, 0xf7,0x0, 0xf6,0x0, 0xf5,0x0, 0xea,0x0, 0xe9,0x0, 0xe8,0x0, +0xe7,0x0, 0xe6,0x0, 0xe5,0x0, 0xe4,0x0, 0xe3,0x0, 0xe2,0x0, 0xe1,0x0, 0xe0,0x0, +0xdf,0x0, 0xde,0x0, 0xdd,0x0, 0xdc,0x0, 0xdb,0x0, 0xda,0x0, 0xd9,0x0, 0xd8,0x0, +0xd7,0x0, 0xd6,0x0, 0xd5,0x0, 0xd4,0x0, 0xd3,0x0, 0xd2,0x0, 0xd1,0x0, 0xd0,0x0, +0xcf,0x0, 0xce,0x0, 0xcd,0x0, 0xcc,0x0, 0xcb,0x0, 0xc3,0x0, 0xc2,0x0, 0xc1,0x0, +0xc0,0x0, 0xbf,0x0, 0xbe,0x0, 0xbd,0x0, 0xbc,0x0, 0xbb,0x0, 0xba,0x0, 0xb9,0x0, +0xb8,0x0, 0xb7,0x0, 0xb6,0x0, 0xb5,0x0, 0xb4,0x0, 0xb3,0x0, 0xb2,0x0, 0xb1,0x0, +0xb0,0x0, 0xaf,0x0, 0xae,0x0, 0xad,0x0, 0xac,0x0, 0xab,0x0, 0xaa,0x0, 0xa9,0x0, +0xa8,0x0, 0xa7,0x0, 0xa6,0x0, 0xa5,0x0, 0xa4,0x0, 0x9c,0x0, 0x9b,0x0, 0x9a,0x0, +0x99,0x0, 0x98,0x0, 0x97,0x0, 0x96,0x0, 0x95,0x0, 0x94,0x0, 0x93,0x0, 0x92,0x0, +0x91,0x0, 0x90,0x0, 0x8f,0x0, 0x8e,0x0, 0x8d,0x0, 0x8c,0x0, 0x8b,0x0, 0x8a,0x0, +0x89,0x0, 0x88,0x0, 0x87,0x0, 0x86,0x0, 0x85,0x0, 0x84,0x0, 0x83,0x0, 0x82,0x0, +0x81,0x0, 0x80,0x0, 0x7f,0x0, 0x7e,0x0, 0x7d,0x0, 0x72,0x0, 0x71,0x0, 0x70,0x0, +0x6f,0x0, 0x6e,0x0, 0x6d,0x0, 0x6c,0x0, 0x6b,0x0, 0x6a,0x0, 0x69,0x0, 0x68,0x0, +0x67,0x0, 0x66,0x0, 0x65,0x0, 0x64,0x0, 0x63,0x0, 0x62,0x0, 0x61,0x0, 0x60,0x0, +0x5f,0x0, 0x5e,0x0, 0x5d,0x0, 0x5c,0x0, 0x5b,0x0, 0x5a,0x0, 0x59,0x0, 0x58,0x0, +0x57,0x0, 0x56,0x0, 0x55,0x0, 0x54,0x0, 0x53,0x0, 0x4b,0x0, 0x4a,0x0, 0x49,0x0, +0x48,0x0, 0x47,0x0, 0x46,0x0, 0x45,0x0, 0x44,0x0, 0x43,0x0, 0x42,0x0, 0x41,0x0, +0x40,0x0, 0x3f,0x0, 0x3e,0x0, 0x3d,0x0, 0x3c,0x0, 0x3b,0x0, 0x3a,0x0, 0x39,0x0, +0x38,0x0, 0x37,0x0, 0x36,0x0, 0x35,0x0, 0x34,0x0, 0x33,0x0, 0x32,0x0, 0x31,0x0, +0x30,0x0, 0x2f,0x0, 0x2e,0x0, 0x2d,0x0, 0x2c,0x0, 0x24,0x0, 0x23,0x0, 0x22,0x0, +0x21,0x0, 0x20,0x0, 0x1f,0x0, 0x1e,0x0, 0x1d,0x0, 0x1c,0x0, 0x1b,0x0, 0x1a,0x0, +0x19,0x0, 0x18,0x0, 0x17,0x0, 0x16,0x0, 0x15,0x0, 0x14,0x0, 0x13,0x0, 0x12,0x0, +0x11,0x0, 0x10,0x0, 0xf, 0x0, 0xe, 0x0, 0xd, 0x0, 0xc, 0x0, 0xb, 0x0, 0xa, 0x0, +0x9, 0x0, 0x8, 0x0, 0x7, 0x0, 0x6, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x17,0x3, 0x5, 0x0, 0xd, 0x17,0x3, +0x5, 0x1, 0xe, 0x17,0x3, 0x5, 0x2, 0x10,0x2, 0x1, 0xa, 0x1e,0x24,0x14,0x0, 0x64, +0xd, 0xac,0x0, 0xc8,0x1, 0x4, 0x0, 0x87,0x0, 0xd2,0x1, 0xf4,0x1, 0x90,0x1, 0x90, +0x1, 0x2c,0x1, 0x2c,0xa, 0x0, 0x2, 0x56,0x1, 0x5, 0xc, 0x1e,0x3c,0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x6, 0x1, 0x0, 0x1, 0x80,0x1, 0x0, 0x14,0x1, 0xda,0x0, 0x1, 0x0, 0x16,0x1, +0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0xeb,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x1d,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x3, 0x3, 0x0, 0xff,0xff,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x1, 0xc8,0xb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x2, 0x40,0x4, 0x0, 0x2, 0xd5,0x1, 0x68,0x28,0x28,0x1, 0x9a,0x1, +0xb8,0x0, 0xa0,0x0, 0xa2,0x5, 0xa0,0x2, 0xd0,0x2e,0x2e,0x1, 0x98,0x1, 0x7a,0x0, +0xb4,0x0, 0xb4,0x12,0x0, 0xb4,0x1, 0x68,0x2, 0x1c,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xa8,0x1, 0x2c, +0x0, 0x48,0x0, 0x1, 0x1, 0x5, 0x1, 0x2, 0x2, 0x4, 0x4, 0x6, 0x80,0x0, 0x64,0x7, +0xd0,0x8, 0x5, 0x6, 0x1, 0x2c,0x2, 0x58,0x1, 0x90,0x1f,0x40,0x23,0x1, 0x86,0x1, +0x86,0x0, 0xc, 0x17,0x11,0x12,0x1, 0x2c,0x1, 0x4, 0x4, 0x10,0x2, 0x8, 0x3, 0xa, +0xa, 0x0, 0x50,0x2, 0x85,0x0, 0x50,0x5, 0x50,0x0, 0x32,0x1, 0x5e,0x1, 0x5e,0x3, +0x20,0x0, 0xc8,0x0, 0x28,0x0, 0x1e,0x0, 0x80,0x0, 0xb5,0x2, 0xd0,0x0, 0x3c,0x3, +0xe8,0x1, 0x68,0x1, 0x6a,0x0, 0x3c,0x3, 0xe8,0x0, 0x20,0x2, 0xb5,0x0, 0x0, 0x5, +0xa0,0x0, 0x64,0x0, 0xa0,0x0, 0xa0,0x13,0x88,0x1, 0x2c,0x0, 0x0, 0x2, 0x3f,0x0, +0x1, 0x4, 0x0, 0x5, 0x0, 0x20,0x1, 0x0, 0x0, 0x5c,0x5c,0x0, 0x5c,0x5c,0x0, 0x5c, +0x5c,0x0, 0x0, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, +0xff,0x0, 0x1, 0x2, 0x0, 0xff,0x1, 0x2, 0x0, 0x1, 0xff,0x2, 0x0, 0x1, 0x2, 0xff, +0x7f,0xff,0x1, 0x1, 0x1, 0x2, 0x4, 0x8, 0x10,0x20,0x40,0x80,0x64,0xff,0xff,0xff, +0x30,0x0, 0x0, 0x0, 0x40,0x33,0x2d,0x24,0x1e,0x18,0x10,0xa, 0xa, 0xe, 0x15,0x1e, +0x24,0x2b,0x32,0x35,0x2f,0x28,0x22,0x1a,0x13,0xa, 0x3, 0x0, 0x1, 0x4, 0xa, 0x12, +0x1b,0x25,0x2c,0x31,0x9, 0x0, 0x0, 0x2, 0x4, 0x8, 0xf, 0x19,0x20,0x27,0x2b,0x2d, +0x2e,0x2e,0x2e,0x2c,0x2c,0x2d,0x2e,0x32,0x35,0x3b,0x43,0x4d,0x56,0x5d,0x62,0x67, +0x6a,0x6d,0x6e,0x70,0xda,0xe1,0xff,0x55,0x35,0x2e,0x27,0x22,0x1f,0x1b,0x16,0x10, +0xc, 0x8, 0x6, 0x4, 0x2, 0x0, 0x0, 0x0, 0x1, 0x3, 0x6, 0xb, 0xe, 0x12,0x17,0x1d, +0x22,0x26,0x2a,0x30,0x35,0x39,0x3d,0x3f,0x0, 0x0, 0x1, 0x4, 0x6, 0x8, 0xb, 0x10, +0x16,0x1b,0x1f,0x23,0x28,0x2d,0x32,0x36,0x3b,0x40,0x44,0x48,0x4a,0x4b,0x4c,0x4b, +0x4a,0x48,0x46,0x43,0x40,0x3e,0x3c,0x3a,0x3c,0x9c,0x34,0x55,0x40,0x39,0x34,0x2f, +0x2a,0x24,0x20,0x1b,0x15,0x10,0xb, 0x7, 0x3, 0x1, 0x0, 0x0, 0x0, 0x1, 0x2, 0x3, +0x4, 0x7, 0xa, 0xc, 0x10,0x15,0x19,0x1d,0x22,0x28,0x2d,0x31,0x4, 0x0, 0x0, 0x0, +0x1, 0x4, 0x6, 0x9, 0xd, 0x11,0x16,0x1b,0x21,0x27,0x2c,0x30,0x35,0x3c,0x42,0x46, +0x4a,0x51,0x57,0x5b,0x60,0x63,0x65,0x64,0x61,0x5d,0x59,0x56,0x89,0x65,0x34,0x55, +0x0, 0x3, 0x4, 0x6, 0x7, 0x9, 0x9, 0xb, 0xd, 0xf, 0x13,0x16,0x19,0x1d,0x20,0x22, +0x26,0x29,0x2b,0x2b,0x2d,0x2e,0x30,0x31,0x33,0x34,0x36,0x38,0x3a,0x3c,0x3e,0x3f, +0x13,0x19,0x1e,0x22,0x26,0x29,0x2c,0x31,0x35,0x39,0x3c,0x3e,0x3f,0x3e,0x3b,0x38, +0x35,0x32,0x2f,0x2c,0x28,0x24,0x20,0x1c,0x19,0x16,0x12,0xe, 0xa, 0x6, 0x3, 0x1, +0x97,0xae,0xff,0x55,0x14,0x1a,0x1f,0x25,0x2a,0x2d,0x2d,0x28,0x24,0x1f,0x1b,0x17, +0x12,0xe, 0xc, 0xa, 0x8, 0x8, 0x8, 0x8, 0xa, 0xe, 0x13,0x17,0x1b,0x20,0x26,0x2c, +0x32,0x36,0x3c,0x3d,0x2c,0x2b,0x2a,0x27,0x24,0x21,0x1c,0x1a,0x1a,0x1c,0x1e,0x20, +0x25,0x2a,0x2e,0x32,0x37,0x3b,0x3f,0x43,0x47,0x4c,0x50,0x51,0x53,0x54,0x55,0x56, +0x57,0x57,0x57,0x57,0xdd,0x4, 0x33,0x55,0xe, 0x15,0x1b,0x21,0x26,0x2a,0x30,0x36, +0x3a,0x3d,0x3e,0x3d,0x3a,0x36,0x32,0x2d,0x28,0x1c,0x16,0x10,0xa, 0x6, 0x3, 0x1, +0x0, 0x0, 0x3, 0xa, 0x15,0x29,0x39,0x39,0x37,0x35,0x32,0x2f,0x2c,0x29,0x24,0x1e, +0x18,0x12,0xd, 0x9, 0x5, 0x1, 0x0, 0x0, 0x0, 0x5, 0x9, 0xe, 0x14,0x1c,0x24,0x2c, +0x35,0x3e,0x45,0x4a,0x4b,0x45,0x3f,0x3f,0xf3,0x41,0x33,0x55,0xa, 0x12,0x1a,0x1e, +0x23,0x26,0x25,0x1f,0x1b,0x12,0xa, 0x8, 0x4, 0x2, 0x0, 0x0, 0x0, 0x2, 0x6, 0x11, +0x19,0x1d,0x26,0x31,0x36,0x3d,0x3d,0x3d,0x3d,0x3d,0x3d,0x3d,0x33,0x2c,0x23,0x1e, +0x16,0xe, 0x9, 0x1, 0x1, 0x6, 0x11,0x16,0x1f,0x25,0x2e,0x39,0x3e,0x46,0x49,0x48, +0x43,0x3f,0x35,0x2a,0x25,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xa2,0x28,0x33,0x55, +0x3, 0xb, 0x10,0x15,0x1a,0x1e,0x21,0x27,0x29,0x28,0x25,0x20,0x1b,0xe, 0x9, 0x7, +0x5, 0x3, 0x1, 0x0, 0x0, 0x1, 0x3, 0x5, 0x9, 0x16,0x1f,0x29,0x33,0x36,0x36,0x36, +0x22,0x20,0x1f,0x1e,0x1b,0x18,0x15,0xc, 0x7, 0x2, 0x0, 0x0, 0x2, 0xb, 0x10,0x14, +0x18,0x1c,0x21,0x2b,0x2f,0x33,0x37,0x3b,0x3d,0x3f,0x3f,0x3e,0x3c,0x3b,0x3b,0x3b, +0x6, 0x43,0x33,0x55,0x4, 0xc, 0x13,0x1a,0x20,0x26,0x2c,0x32,0x34,0x31,0x2b,0x24, +0x1b,0x14,0xd, 0x6, 0x3, 0x1, 0x0, 0x0, 0x0, 0x2, 0x7, 0xe, 0x16,0x1d,0x23,0x29, +0x30,0x36,0x3d,0x3e,0x1b,0x1c,0x1d,0x1d,0x1d,0x1c,0x1a,0x16,0x10,0x9, 0x3, 0x0, +0x0, 0x3, 0xa, 0x12,0x19,0x1f,0x25,0x2c,0x32,0x39,0x3f,0x44,0x47,0x48,0x47,0x46, +0x43,0x3f,0x3b,0x3a,0x7c,0x49,0x33,0x55,0xb, 0x14,0x1b,0x23,0x2e,0x34,0x38,0x39, +0x36,0x32,0x2b,0x24,0x18,0x12,0xd, 0x9, 0x4, 0x2, 0x0, 0x0, 0x2, 0x6, 0xd, 0x13, +0x1f,0x25,0x2c,0x33,0x3e,0x3f,0x3f,0x3f,0x24,0x26,0x26,0x26,0x25,0x22,0x1d,0x16, +0xb, 0x5, 0x2, 0x0, 0x2, 0x6, 0xc, 0x13,0x1d,0x23,0x29,0x2f,0x3a,0x40,0x45,0x47, +0x49,0x49,0x48,0x46,0x42,0x41,0x41,0x41,0xd3,0x80,0x33,0x55,0x0, 0x8, 0x10,0x16, +0x1d,0x23,0x2b,0x30,0x32,0x32,0x30,0x2c,0x26,0x1e,0x18,0x11,0xb, 0x9, 0x6, 0x5, +0x4, 0x4, 0x6, 0xa, 0x11,0x19,0x21,0x28,0x2f,0x36,0x3c,0x3f,0x1f,0x21,0x22,0x22, +0x21,0x20,0x1d,0x18,0x12,0xc, 0x6, 0x2, 0x0, 0x0, 0x3, 0x9, 0x12,0x19,0x20,0x26, +0x2c,0x34,0x3b,0x41,0x45,0x48,0x49,0x48,0x46,0x42,0x3e,0x3c,0xdb,0x35,0x33,0x55, +0x4, 0xb, 0x13,0x1b,0x23,0x2a,0x29,0x1f,0x16,0xe, 0x6, 0x2, 0x0, 0x0, 0x3, 0x7, +0x10,0x19,0x22,0x2b,0x33,0x38,0x3c,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f, +0x2c,0x27,0x21,0x1b,0x15,0xd, 0x4, 0x0, 0x1, 0x5, 0xc, 0x14,0x1d,0x28,0x32,0x36, +0x3d,0x3f,0x3e,0x3c,0x36,0x2e,0x26,0x1e,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d, +0xb5,0x6c,0x33,0x55,0x17,0x1c,0x20,0x27,0x2b,0x30,0x39,0x3d,0x3f,0x3d,0x3a,0x35, +0x2b,0x25,0x20,0x17,0x13,0xe, 0x6, 0x3, 0x0, 0x0, 0x2, 0x9, 0xd, 0x11,0x19,0x1a, +0x1a,0x1a,0x1a,0x1a,0xa, 0x11,0x16,0x1d,0x20,0x23,0x23,0x1f,0x1a,0x10,0xb, 0x7, +0x1, 0x0, 0x0, 0x2, 0x4, 0x7, 0x10,0x16,0x21,0x26,0x2b,0x35,0x39,0x3c,0x3f,0x40, +0x40,0x40,0x40,0x40,0x68,0xc0,0x33,0x55,0xa, 0x10,0x1a,0x1e,0x26,0x2c,0x2d,0x2c, +0x29,0x20,0x15,0xf, 0x6, 0x3, 0x0, 0x0, 0x0, 0x3, 0x7, 0x10,0x1c,0x22,0x2d,0x37, +0x3c,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x2b,0x29,0x24,0x21,0x1a,0x12,0xe, 0x5, +0x2, 0x0, 0x1, 0x3, 0xb, 0x10,0x1a,0x25,0x29,0x32,0x36,0x3d,0x3f,0x3e,0x3a,0x33, +0x2e,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x1e,0x4d,0x33,0x55,0x0, 0x1, 0x3, 0x5, +0x6, 0x8, 0xb, 0xd, 0x11,0x13,0x16,0x16,0x1a,0x1f,0x21,0x24,0x26,0x28,0x2a,0x2f, +0x35,0x36,0x38,0x39,0x3a,0x3c,0x3e,0x3e,0x3e,0x3e,0x3e,0x3e,0x42,0x37,0x2d,0x23, +0x1d,0x12,0x7, 0x1, 0x9, 0x13,0x1f,0x25,0x31,0x3b,0x36,0x2c,0x20,0x1a,0xf, 0x2, +0x9, 0x11,0x20,0x2d,0x35,0x40,0x47,0x47,0x47,0x47,0x47,0x47,0xff,0x1f,0x32,0x55, +0x0, 0x0, 0x2, 0x3, 0x6, 0x9, 0xc, 0xf, 0x13,0x18,0x1c,0x1d,0x1e,0x1e,0x1e,0x1d, +0x1d,0x23,0x26,0x2a,0x2d,0x32,0x38,0x3d,0x3f,0x3f,0x3e,0x3c,0x3b,0x3a,0x3a,0x3a, +0x40,0x35,0x2f,0x28,0x21,0x1a,0x13,0xd, 0x7, 0x1, 0x4, 0xb, 0x11,0x17,0x1d,0x24, +0x2b,0x2a,0x22,0x1c,0x15,0xf, 0x8, 0x3, 0x8, 0xf, 0x16,0x1d,0x23,0x29,0x31,0x32, +0xa5,0xf2,0x32,0x55,0x4, 0x2, 0x0, 0x0, 0x0, 0x0, 0x2, 0x6, 0xe, 0x13,0x16,0x18, +0x1b,0x1e,0x1e,0x1e,0x1f,0x1f,0x21,0x24,0x2c,0x30,0x35,0x3a,0x3c,0x3f,0x3f,0x3f, +0x3f,0x3f,0x3f,0x3f,0x40,0x39,0x30,0x27,0x22,0x19,0x10,0xd, 0x13,0x1c,0x25,0x2a, +0x33,0x32,0x2d,0x23,0x18,0x12,0x9, 0x1, 0x3, 0x9, 0x13,0x1e,0x23,0x26,0x26,0x26, +0x26,0x26,0x26,0x26,0x7b,0x12,0x32,0x55,0x19,0x14,0x11,0xc, 0x9, 0x5, 0x2, 0x0, +0x4, 0x9, 0xd, 0x11,0x1b,0x20,0x22,0x23,0x23,0x23,0x26,0x27,0x2a,0x2d,0x30,0x37, +0x39,0x3c,0x3d,0x3f,0x3f,0x3f,0x3f,0x3f,0x0, 0x8, 0x10,0x1d,0x23,0x2e,0x36,0x3d, +0x35,0x27,0x1e,0x16,0xe, 0x14,0x21,0x28,0x34,0x39,0x30,0x29,0x1d,0x16,0x10,0x16, +0x1d,0x2c,0x34,0x3f,0x3f,0x3f,0x3f,0x3f,0xe1,0xb1,0x32,0x55,0xb, 0x6, 0x4, 0x2, +0x0, 0x0, 0x0, 0x1, 0x5, 0xf, 0x13,0x17,0x1b,0x1e,0x21,0x20,0x1d,0x19,0x17,0x16, +0x16,0x19,0x1e,0x23,0x28,0x31,0x35,0x39,0x3c,0x3f,0x3f,0x3f,0x40,0x3a,0x35,0x30, +0x2b,0x25,0x20,0x1b,0x17,0x16,0x1a,0x1e,0x23,0x27,0x2a,0x27,0x22,0x17,0x12,0xd, +0x8, 0x4, 0x1, 0x0, 0x0, 0x7, 0xb, 0xf, 0x13,0x15,0x15,0x15,0x4b,0xbb,0x32,0x55, +0x0, 0x3, 0x8, 0xa, 0x11,0x14,0x1c,0x20,0x24,0x25,0x25,0x24,0x23,0x25,0x27,0x2d, +0x30,0x36,0x3b,0x3f,0x3f,0x3f,0x3f,0x3e,0x3e,0x3d,0x3d,0x3d,0x3d,0x3d,0x3d,0x3d, +0x29,0x22,0x18,0x12,0x8, 0x4, 0x0, 0x1, 0xc, 0x12,0x1c,0x22,0x2b,0x2a,0x24,0x18, +0x12,0xa, 0x8, 0xf, 0x14,0x1e,0x23,0x2e,0x34,0x3d,0x3e,0x3e,0x3e,0x3e,0x3e,0x3e, +0xc6,0x28,0x32,0x55,0x1f,0x1b,0x17,0x14,0x13,0x12,0x11,0x11,0x12,0x14,0x1a,0x1d, +0x21,0x23,0x24,0x24,0x25,0x24,0x24,0x23,0x21,0x21,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e, +0x1e,0x1e,0x1e,0x1e,0x1a,0x1d,0x23,0x29,0x2c,0x34,0x3b,0x3e,0x47,0x4e,0x53,0x51, +0x4b,0x44,0x42,0x3c,0x35,0x32,0x2c,0x25,0x1e,0x1c,0x19,0x19,0x19,0x19,0x19,0x19, +0x19,0x19,0x19,0x19,0xfa,0xf6,0x30,0x55,0x23,0x1e,0x1c,0x1a,0x18,0x17,0x16,0x15, +0x15,0x14,0x14,0x14,0x14,0x16,0x19,0x1d,0x21,0x25,0x28,0x2a,0x2b,0x2c,0x2d,0x2d, +0x2c,0x2b,0x2a,0x29,0x28,0x27,0x27,0x27,0x2f,0x36,0x3a,0x3e,0x43,0x48,0x4d,0x52, +0x56,0x5b,0x60,0x65,0x6a,0x6e,0x71,0x72,0x72,0x70,0x6c,0x67,0x62,0x5d,0x57,0x51, +0x4c,0x47,0x43,0x3e,0x38,0x34,0x31,0x31,0xe4,0xae,0x30,0x55,0x7, 0x5, 0x4, 0x4, +0x5, 0x6, 0xd, 0x14,0x1c,0x22,0x28,0x2f,0x34,0x37,0x39,0x3a,0x39,0x38,0x36,0x32, +0x2c,0x26,0x1a,0x14,0xe, 0xb, 0x8, 0x6, 0x6, 0x5, 0x5, 0x5, 0x33,0x3d,0x43,0x4b, +0x51,0x58,0x64,0x69,0x68,0x65,0x61,0x55,0x4d,0x43,0x3b,0x32,0x22,0x1a,0x13,0xb, +0x7, 0x5, 0x8, 0xf, 0x16,0x1e,0x24,0x30,0x37,0x3c,0x3c,0x3c,0x71,0x75,0x30,0x55, +0x3, 0x0, 0x0, 0x0, 0x0, 0x3, 0x7, 0xe, 0x1b,0x22,0x2d,0x32,0x37,0x3a,0x3c,0x3d, +0x3c,0x3a,0x38,0x34,0x29,0x21,0x15,0xc, 0x7, 0x2, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, +0x2a,0x34,0x3c,0x47,0x4d,0x59,0x60,0x66,0x67,0x66,0x5e,0x58,0x51,0x45,0x3e,0x30, +0x29,0x22,0x17,0xf, 0x5, 0x3, 0x6, 0xb, 0x11,0x1b,0x21,0x2d,0x2e,0x2e,0x2e,0x2e, +0x6a,0x73,0x30,0x55,0xc, 0x5, 0x2, 0x0, 0x0, 0x0, 0x0, 0x2, 0x5, 0xc, 0x13,0x1e, +0x25,0x30,0x35,0x3b,0x3d,0x3f,0x3f,0x3d,0x3c,0x38,0x33,0x28,0x22,0x18,0x12,0xe, +0xd, 0xd, 0xd, 0xd, 0x11,0x19,0x1f,0x2a,0x30,0x3c,0x42,0x4f,0x55,0x5f,0x63,0x64, +0x61,0x59,0x51,0x44,0x3d,0x2e,0x26,0x1c,0x16,0xa, 0x3, 0x0, 0x0, 0x4, 0x8, 0xe, +0xf, 0xf, 0xf, 0xf, 0x7d,0xd0,0x30,0x55,0x15,0xd, 0x8, 0x4, 0x2, 0x0, 0x0, 0x0, +0x0, 0x1, 0x8, 0xf, 0x17,0x1f,0x2d,0x34,0x39,0x3c,0x3d,0x3f,0x3f,0x3e,0x3a,0x32, +0x2c,0x26,0x20,0x19,0xf, 0xc, 0xc, 0xc, 0x3, 0x9, 0xf, 0x17,0x1e,0x28,0x2e,0x35, +0x3b,0x42,0x50,0x56,0x57,0x56,0x50,0x49,0x41,0x39,0x31,0x25,0x1e,0x17,0xf, 0x5, +0x1, 0x0, 0x0, 0x1, 0x7, 0x9, 0x9, 0x9, 0xca,0xac,0x30,0x55,0x2c,0x23,0x1f,0x19, +0x13,0xc, 0x7, 0x3, 0x0, 0x0, 0x0, 0x1, 0x5, 0xa, 0xf, 0x16,0x1d,0x23,0x2a,0x30, +0x36,0x3b,0x3e,0x40,0x3f,0x3e,0x3b,0x38,0x33,0x2f,0x2b,0x28,0x9, 0x1, 0x0, 0x1, +0x3, 0x9, 0xe, 0x14,0x1b,0x21,0x27,0x2e,0x36,0x3b,0x3e,0x41,0x41,0x40,0x3d,0x3a, +0x36,0x2f,0x2b,0x26,0x20,0x1c,0x16,0x10,0xc, 0xa, 0x9, 0xb, 0x36,0xdc,0x30,0x55, +0x21,0x13,0xc, 0x8, 0x5, 0x2, 0x1, 0x0, 0x0, 0x1, 0x3, 0x8, 0xf, 0x17,0x1e,0x24, +0x2b,0x32,0x39,0x3d,0x3e,0x3f,0x3f,0x3d,0x3a,0x36,0x30,0x29,0x21,0x1a,0x16,0x13, +0x5, 0x9, 0xe, 0x14,0x1a,0x22,0x29,0x30,0x38,0x3f,0x47,0x4d,0x51,0x51,0x4f,0x4d, +0x49,0x42,0x39,0x31,0x2b,0x25,0x1e,0x17,0x10,0x8, 0x3, 0x0, 0x0, 0x1, 0x3, 0x5, +0xaf,0x13,0x30,0x55,0x3e,0x3b,0x38,0x33,0x2b,0x24,0x1d,0x16,0x10,0x7, 0x3, 0x1, +0x0, 0x0, 0x0, 0x1, 0x1, 0x3, 0x6, 0xc, 0x15,0x1c,0x23,0x29,0x2f,0x35,0x38,0x3b, +0x3c,0x3e,0x3f,0x3f,0x1f,0x10,0xa, 0x6, 0x0, 0x0, 0x0, 0x2, 0x4, 0xc, 0x12,0x18, +0x1e,0x25,0x2c,0x35,0x3c,0x42,0x4a,0x51,0x56,0x56,0x53,0x4e,0x49,0x40,0x3a,0x33, +0x2c,0x25,0x1f,0x1c,0xf9,0xa2,0x30,0x55,0x1c,0x2a,0x33,0x39,0x3c,0x3e,0x3f,0x3f, +0x3e,0x3d,0x3a,0x35,0x2e,0x28,0x23,0x1c,0x15,0xf, 0x9, 0x4, 0x1, 0x0, 0x0, 0x1, +0x1, 0x4, 0x8, 0xd, 0x13,0x19,0x1e,0x22,0x40,0x3e,0x3a,0x33,0x2f,0x29,0x22,0x1b, +0x15,0x10,0xa, 0x5, 0x1, 0x0, 0x0, 0x1, 0x2, 0x5, 0xa, 0x11,0x17,0x1c,0x24,0x2a, +0x30,0x35,0x3b,0x40,0x43,0x44,0x45,0x45,0xcb,0xc6,0x30,0x55,0x5, 0x3, 0x4, 0x7, +0xa, 0x10,0x17,0x21,0x28,0x2e,0x33,0x38,0x3c,0x3e,0x3f,0x3f,0x3e,0x3b,0x38,0x31, +0x29,0x21,0x18,0xf, 0x9, 0x4, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x26,0x35,0x3d,0x45, +0x4b,0x51,0x53,0x52,0x4f,0x4c,0x46,0x41,0x3b,0x34,0x2e,0x25,0x1e,0x17,0x11,0x9, +0x3, 0x0, 0x0, 0x2, 0x6, 0xc, 0x12,0x18,0x1e,0x24,0x2c,0x31,0xf4,0xb6,0x30,0x55, +0x7, 0x3, 0x3, 0x3, 0x4, 0x7, 0xf, 0x17,0x20,0x28,0x30,0x36,0x3b,0x3d,0x3f,0x3f, +0x3d,0x39,0x36,0x2d,0x25,0x1d,0x16,0xd, 0x8, 0x2, 0x0, 0x0, 0x1, 0x2, 0x3, 0x5, +0x2e,0x3f,0x48,0x50,0x59,0x5f,0x67,0x68,0x63,0x5d,0x52,0x4a,0x3e,0x35,0x2b,0x20, +0x18,0x10,0xa, 0x3, 0x0, 0x0, 0x1, 0x7, 0xe, 0x19,0x22,0x2b,0x31,0x3a,0x42,0x47, +0xef,0xc9,0x30,0x55,0x37,0x38,0x37,0x34,0x2d,0x26,0x1c,0x16,0xe, 0x9, 0x4, 0x2, +0x0, 0x0, 0x0, 0x1, 0x2, 0x5, 0xa, 0x10,0x17,0x20,0x26,0x2e,0x35,0x3a,0x3c,0x3e, +0x3f,0x3f,0x3e,0x3e,0x30,0x40,0x49,0x50,0x59,0x5e,0x60,0x5d,0x56,0x50,0x47,0x41, +0x39,0x33,0x2a,0x20,0x1a,0x10,0xa, 0x5, 0x1, 0x0, 0x0, 0x3, 0x8, 0x10,0x17,0x1f, +0x25,0x2f,0x38,0x3c,0x37,0xc3,0x57,0x55,0x3b,0x3d,0x3d,0x3b,0x38,0x32,0x27,0x1c, +0x13,0xe, 0x8, 0x3, 0x0, 0x0, 0x0, 0x1, 0x3, 0x7, 0xb, 0x12,0x18,0x20,0x28,0x31, +0x39,0x3d,0x3f,0x40,0x3f,0x3f,0x3e,0x3e,0x33,0x45,0x4e,0x57,0x5d,0x65,0x6c,0x6a, +0x66,0x63,0x5c,0x53,0x4a,0x40,0x38,0x2e,0x25,0x1a,0x11,0x8, 0x4, 0x0, 0x0, 0x2, +0x9, 0x10,0x19,0x21,0x2a,0x32,0x39,0x3e,0x7, 0x90,0x57,0x55,0x18,0x2c,0x34,0x39, +0x3c,0x3d,0x3f,0x3f,0x3f,0x3d,0x3b,0x36,0x30,0x2a,0x24,0x1c,0x16,0xd, 0x6, 0x1, +0x0, 0x0, 0x0, 0x1, 0x1, 0x3, 0x5, 0x9, 0xf, 0x17,0x1e,0x24,0x1, 0x2, 0x8, 0xe, +0x14,0x1a,0x21,0x28,0x30,0x37,0x40,0x49,0x50,0x55,0x59,0x5c,0x5c,0x58,0x51,0x48, +0x3f,0x38,0x31,0x2b,0x25,0x1d,0x17,0x11,0xa, 0x4, 0x1, 0x1, 0x9d,0xbf,0x57,0x55, +0x16,0x7, 0x2, 0x0, 0x0, 0x0, 0x0, 0x1, 0x4, 0x8, 0xe, 0x16,0x1f,0x28,0x30,0x38, +0x3c,0x3e,0x3f,0x40,0x3f,0x3f,0x3d,0x3b,0x37,0x32,0x2c,0x25,0x1d,0x16,0xf, 0xc, +0x53,0x46,0x3e,0x35,0x2e,0x27,0x20,0x1a,0x14,0xd, 0x6, 0x1, 0x0, 0x0, 0x3, 0xa, +0x13,0x1a,0x20,0x27,0x2d,0x33,0x3a,0x40,0x48,0x4f,0x54,0x58,0x5a,0x5a,0x58,0x57, +0xc6,0x55,0x57,0x55,0x7, 0x1, 0x4, 0xa, 0x10,0x18,0x20,0x2a,0x32,0x38,0x3c,0x3e, +0x3f,0x3e,0x3d,0x3b,0x39,0x35,0x30,0x27,0x21,0x19,0x12,0xb, 0x6, 0x3, 0x1, 0x0, +0x0, 0x0, 0x0, 0x0, 0x32,0x1d,0x12,0x9, 0x5, 0x1, 0x0, 0x0, 0x1, 0x5, 0xd, 0x17, +0x20,0x2a,0x32,0x3b,0x45,0x4e,0x58,0x63,0x69,0x6b,0x6a,0x64,0x5d,0x57,0x4f,0x47, +0x40,0x38,0x32,0x2f,0x1a,0xb5,0x57,0x55,0x0, 0xb, 0x14,0x1b,0x21,0x28,0x2f,0x37, +0x3d,0x3f,0x3e,0x3c,0x39,0x33,0x2b,0x23,0x1c,0x15,0xc, 0x5, 0x3, 0x3, 0x6, 0x9, +0xd, 0x12,0x18,0x1e,0x24,0x2c,0x33,0x36,0x19,0x13,0x10,0x10,0xf, 0xf, 0x11,0x16, +0x1c,0x25,0x2d,0x33,0x39,0x40,0x47,0x4a,0x4c,0x4c,0x49,0x43,0x3b,0x33,0x2d,0x26, +0x20,0x1a,0x14,0xe, 0xa, 0x5, 0x1, 0x0, 0xb0,0xb5,0x57,0x55,0x2, 0x9, 0xf, 0x1a, +0x1f,0x29,0x2f,0x38,0x3b,0x3e,0x3f,0x3f,0x3b,0x37,0x2e,0x29,0x1e,0x18,0xe, 0xa, +0x3, 0x1, 0x0, 0x0, 0x0, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x1, 0x0, 0x0, 0x3, +0x5, 0x9, 0xd, 0x18,0x1e,0x27,0x2d,0x32,0x3c,0x3f,0x45,0x46,0x45,0x44,0x3e,0x39, +0x2f,0x2a,0x25,0x1a,0x14,0xc, 0x9, 0x9, 0x9, 0x9, 0x9, 0x9, 0x2b,0x77,0x57,0x55, +0x0, 0x1, 0x2, 0x4, 0x5, 0x8, 0xa, 0xf, 0x12,0x15,0x18,0x1a,0x1f,0x22,0x24,0x25, +0x26,0x26,0x28,0x2a,0x2c,0x2f,0x33,0x36,0x37,0x39,0x3a,0x3c,0x3e,0x3f,0x3f,0x3f, +0x1, 0xf, 0x1b,0x2d,0x3d,0x52,0x5f,0x6a,0x60,0x4a,0x39,0x2a,0x17,0xb, 0x4, 0xe, +0x1e,0x2e,0x42,0x50,0x62,0x6b,0x65,0x53,0x43,0x31,0x23,0x13,0x7, 0x2, 0x2, 0x2, +0xa2,0x22,0x31,0x55,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x2, 0x6, 0xa, 0xe, +0x12,0x15,0x18,0x1a,0x1e,0x21,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x29,0x2f,0x34, +0x3a,0x3e,0x3e,0x3e,0x1, 0xa, 0x11,0x17,0x1e,0x24,0x29,0x2e,0x34,0x34,0x2d,0x24, +0x1c,0x14,0xe, 0x8, 0x3, 0x9, 0x10,0x19,0x22,0x2a,0x31,0x36,0x3b,0x38,0x2f,0x24, +0x19,0x11,0x11,0x11,0x4c,0x9f,0x31,0x55,0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x2, 0xa, +0xc, 0x10,0x15,0x19,0x1b,0x1f,0x1e,0x1e,0x1d,0x1c,0x1c,0x1e,0x21,0x29,0x31,0x3a, +0x3e,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x0, 0x8, 0x14,0x1d,0x23,0x2d,0x34,0x2d, +0x29,0x1e,0x13,0xb, 0x6, 0x6, 0x10,0x19,0x1e,0x29,0x32,0x3c,0x3e,0x34,0x28,0x1b, +0x14,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0xef,0x5, 0x31,0x55,0x0, 0x2, 0x4, 0x5, +0x6, 0x7, 0x9, 0xa, 0xd, 0xf, 0x11,0x12,0x14,0x16,0x19,0x1c,0x1f,0x22,0x24,0x24, +0x26,0x29,0x2f,0x31,0x33,0x35,0x37,0x39,0x3a,0x3c,0x3e,0x3e,0x6, 0x10,0x17,0x1d, +0x23,0x2a,0x31,0x39,0x3c,0x36,0x2f,0x28,0x21,0x1a,0x13,0x10,0x16,0x22,0x29,0x2f, +0x36,0x3d,0x3b,0x34,0x2e,0x27,0x21,0x1a,0x13,0xc, 0x4, 0x2, 0x56,0x3f,0x31,0x55, +0x0, 0x2, 0x5, 0x7, 0xa, 0xc, 0xe, 0x14,0x17,0x1b,0x1f,0x25,0x27,0x28,0x28,0x29, +0x29,0x2d,0x30,0x33,0x36,0x39,0x3c,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f, +0x8, 0xf, 0x18,0x23,0x2d,0x37,0x40,0x41,0x3d,0x34,0x2b,0x24,0x2d,0x35,0x3e,0x47, +0x4a,0x42,0x38,0x2c,0x20,0x15,0xb, 0x2, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, +0xf6,0x5, 0x31,0x55,0x0, 0x1, 0x3, 0x5, 0x6, 0x7, 0x9, 0xa, 0xc, 0xd, 0xf, 0x13, +0x14,0x15,0x18,0x1a,0x21,0x25,0x26,0x27,0x27,0x27,0x2c,0x2f,0x36,0x3a,0x3d,0x3f, +0x3f,0x3f,0x3f,0x3f,0x0, 0x6, 0xb, 0x14,0x1a,0x1f,0x29,0x2e,0x37,0x3b,0x3e,0x37, +0x32,0x2e,0x25,0x20,0x18,0x1c,0x21,0x29,0x2d,0x31,0x33,0x2d,0x21,0x1b,0x15,0x10, +0x10,0x10,0x10,0x10,0x22,0x55,0x31,0x55,0x0, 0x0, 0x0, 0x1, 0x2, 0x3, 0x4, 0x7, +0xc, 0x10,0x13,0x16,0x19,0x1b,0x1f,0x22,0x22,0x23,0x23,0x23,0x23,0x26,0x2c,0x31, +0x34,0x36,0x38,0x3a,0x3b,0x3d,0x3f,0x3f,0xa, 0x12,0x1b,0x24,0x2d,0x34,0x3c,0x43, +0x42,0x3b,0x33,0x2b,0x22,0x1c,0x15,0x15,0x1b,0x26,0x2d,0x34,0x3a,0x41,0x41,0x3b, +0x33,0x2b,0x22,0x1a,0x11,0xa, 0x2, 0x1, 0xfa,0x31,0x31,0x55,0x2, 0x2, 0x1, 0x1, +0x0, 0x0, 0x0, 0x6, 0xa, 0x12,0x15,0x1b,0x1d,0x1f,0x1e,0x1e,0x1d,0x1d,0x1d,0x1f, +0x23,0x2a,0x2f,0x36,0x39,0x3e,0x3e,0x3e,0x3e,0x3e,0x3e,0x3e,0x0, 0x8, 0xe, 0x19, +0x1e,0x29,0x2e,0x30,0x2d,0x23,0x1d,0x13,0xe, 0x13,0x17,0x21,0x25,0x30,0x35,0x3e, +0x3f,0x3a,0x35,0x2b,0x27,0x1e,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0xc8,0x46,0x31,0x55, +0x0, 0x3, 0x5, 0xc, 0x11,0x18,0x1c,0x1f,0x1f,0x1e,0x1e,0x1d,0x1d,0x23,0x26,0x2e, +0x32,0x3b,0x3d,0x3f,0x3f,0x3f,0x40,0x40,0x3f,0x3e,0x3d,0x3d,0x3d,0x3d,0x3d,0x3d, +0x1e,0x25,0x29,0x31,0x36,0x3d,0x3f,0x39,0x35,0x2c,0x27,0x1c,0x17,0x1b,0x1f,0x2a, +0x2f,0x37,0x34,0x2b,0x27,0x1f,0x1b,0x11,0xc, 0x2, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, +0x5, 0xb3,0x31,0x55,0x1e,0x0, 0x0, 0x0, 0x2, 0x4, 0x6, 0x8, 0xa, 0xc, 0xe, 0x10, +0x12,0x14,0x16,0x18,0x1a,0x1c,0x1e,0x20,0x22,0x24,0x26,0x28,0x2a,0x2c,0x2e,0x30, +0x32,0x34,0x36,0x38,0x3a,0x3c,0x1, 0x3, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x62,0x33,0x0, 0x2, 0x62,0xac, +0x0, 0x2, 0x63,0xee,0x0, 0x2, 0x63,0xec,0x0, 0x2, 0x63,0xed,0x0, 0x2, 0x63,0xe5, +0x0, 0x2, 0x63,0xe4,0x0, 0x2, 0x63,0xe1,0x0, 0x2, 0x63,0xe0,0x0, 0x2, 0x63,0xd9, +0x0, 0x2, 0x62,0x30,0x0, 0x2, 0x63,0xd8,0x0, 0x2, 0x0, 0x8, 0x0, 0x2, 0x2d,0x4d, +0x0, 0x2, 0x24,0xb2,0x0, 0x2, 0x63,0xf0,0x0, 0x2, 0x65,0x98,0x0, 0x0, 0x62,0xd0, +0x0, 0x3, 0x11,0x64,0x0, 0x3, 0x9, 0x88,0x0, 0x3, 0x9, 0x60,0x0, 0x3, 0x9, 0x88, +0x0, 0x2, 0x2d,0x4e,0x0, 0x3, 0x6, 0x5c,0x0, 0x2, 0x2d,0x4c,0x0, 0x2, 0x3e,0xfa, +0x0, 0x2, 0x38,0xa8,0x0, 0x2, 0x32,0x58,0x0, 0x2, 0x38,0xaa,0x0, 0x3, 0x5, 0xe0, +0x0, 0x2, 0x24,0x6f,0x0, 0x2, 0x74,0xcc,0x0, 0x2, 0x74,0xdf,0x0, 0x2, 0x74,0xcb, +0x0, 0x2, 0x2e,0x60,0x0, 0x3, 0x5, 0xe2,0x0, 0x3, 0x6, 0x5d,0x0, 0x2, 0x25,0x1e, +0x0, 0x2, 0x25,0x20,0x0, 0x2, 0x24,0x7e,0x0, 0x2, 0x24,0x62,0x0, 0x3, 0x6, 0xc8, +0x0, 0x2, 0x24,0xc0,0x0, 0x2, 0x24,0x67,0x0, 0x1, 0x42,0xac,0x0, 0x2, 0x24,0xc1, +0x0, 0x2, 0x25,0x1a,0x0, 0x2, 0x5f,0xa0,0x0, 0x2, 0x24,0xb4,0x0, 0x3, 0x5, 0xe4, +0x0, 0x0, 0x63,0xa2,0x0, 0x0, 0x63,0x94,0x0, 0x2, 0x24,0xc7,0x0, 0x2, 0x4b,0xbc, +0x0, 0x2, 0x4b,0xbd,0x0, 0x1, 0x42,0xd4,0x0, 0x2, 0x5e,0xb4,0x0, 0x2, 0x24,0x6a, +0x0, 0x1, 0x42,0xbc,0x0, 0x2, 0x2c,0xc6,0x0, 0x2, 0x74,0xe0,0x0, 0x2, 0xe, 0x60, +0x0, 0x2, 0xe, 0x8f,0x0, 0x1, 0x42,0xb0,0x0, 0x3, 0xa, 0xf0,0x0, 0x1, 0x42,0xdc, +0x0, 0x3, 0x9, 0xc8,0x0, 0x2, 0xe, 0x7c,0x0, 0x2, 0xe, 0x90,0x0, 0x2, 0x3e,0xfc, +0x0, 0x0, 0x62,0xc4,0x0, 0x2, 0xe, 0x58,0x0, 0x2, 0x75,0x54,0x0, 0x2, 0x2e,0x62, +0x0, 0x2, 0x24,0x83,0x0, 0x2, 0x24,0xd3,0x0, 0x3, 0xa, 0x2c,0x0, 0x2, 0x2e,0x64, +0x0, 0x2, 0x2c,0xc4,0x0, 0x2, 0xe, 0xe, 0x0, 0x2, 0xe, 0xd, 0x0, 0x2, 0xe, 0x8, +0x0, 0x2, 0xe, 0xa, 0x0, 0x2, 0xe, 0x9, 0x0, 0x2, 0xd, 0xce,0x0, 0x2, 0xd, 0xcd, +0x0, 0x2, 0xd, 0xc6,0x0, 0x2, 0xd, 0xca,0x0, 0x2, 0xd, 0xc9,0x0, 0x2, 0xd, 0xcc, +0x0, 0x2, 0xd, 0xcb,0x0, 0x2, 0xd, 0xc4,0x0, 0x2, 0xd, 0xb2,0x0, 0x2, 0xd, 0xc3, +0x0, 0x2, 0xd, 0xb1,0x0, 0x2, 0xd, 0xc5,0x0, 0x2, 0xd, 0xc8,0x0, 0x2, 0xd, 0xc7, +0x0, 0x2, 0xd, 0xc0,0x0, 0x2, 0xd, 0xbf,0x0, 0x2, 0xd, 0xbc,0x0, 0x2, 0xd, 0xbb, +0x0, 0x2, 0xd, 0xb8,0x0, 0x2, 0xd, 0xbe,0x0, 0x2, 0xd, 0xbd,0x0, 0x2, 0xd, 0xb6, +0x0, 0x2, 0xd, 0xb0,0x0, 0x2, 0xd, 0xb5,0x0, 0x2, 0xd, 0xaf,0x0, 0x2, 0xd, 0xb7, +0x0, 0x2, 0xd, 0xba,0x0, 0x2, 0xd, 0xb9,0x0, 0x2, 0xe, 0x1a,0x0, 0x2, 0xe, 0x13, +0x0, 0x2, 0xe, 0x12,0x0, 0x2, 0xe, 0x11,0x0, 0x2, 0xe, 0x10,0x0, 0x2, 0xe, 0xf, +0x0, 0x2, 0xd, 0x43,0x0, 0x2, 0xd, 0x42,0x0, 0x2, 0xd, 0x3f,0x0, 0x2, 0xd, 0x3e, +0x0, 0x2, 0xd, 0x35,0x0, 0x2, 0xd, 0x34,0x0, 0x2, 0xd, 0x39,0x0, 0x2, 0xd, 0x37, +0x0, 0x2, 0xd, 0x38,0x0, 0x2, 0xd, 0x36,0x0, 0x2, 0xd, 0x3d,0x0, 0x2, 0xd, 0x33, +0x0, 0x2, 0xd, 0x3c,0x0, 0x2, 0xd, 0x32,0x0, 0x2, 0xd, 0x28,0x0, 0x2, 0xd, 0x31, +0x0, 0x2, 0xd, 0x30,0x0, 0x2, 0xd, 0x44,0x0, 0x2, 0x0, 0x79,0x0, 0x2, 0xe, 0x19, +0x0, 0x2, 0xe, 0x18,0x0, 0x2, 0xd, 0x26,0x0, 0x2, 0xd, 0xf0,0x0, 0x2, 0xd, 0xef, +0x0, 0x2, 0xd, 0xee,0x0, 0x2, 0xd, 0x2f,0x0, 0x2, 0xd, 0x2e,0x0, 0x2, 0xe, 0x36, +0x0, 0x2, 0xe, 0x35,0x0, 0x2, 0xe, 0x3a,0x0, 0x2, 0xe, 0x39,0x0, 0x2, 0xe, 0x3c, +0x0, 0x2, 0xe, 0x3b,0x0, 0x2, 0xe, 0x38,0x0, 0x2, 0xe, 0x37,0x0, 0x2, 0xe, 0x4e, +0x0, 0x2, 0xe, 0x4d,0x0, 0x2, 0xe, 0x42,0x0, 0x2, 0xe, 0x41,0x0, 0x2, 0xe, 0x43, +0x0, 0x2, 0xe, 0x44,0x0, 0x2, 0xe, 0x3e,0x0, 0x2, 0xe, 0x3d,0x0, 0x2, 0xe, 0x40, +0x0, 0x2, 0xe, 0x3f,0x0, 0x2, 0xe, 0x34,0x0, 0x2, 0xe, 0x32,0x0, 0x2, 0xe, 0x52, +0x0, 0x2, 0xe, 0x51,0x0, 0x2, 0xe, 0x50,0x0, 0x2, 0xe, 0x4f,0x0, 0x2, 0xe, 0x54, +0x0, 0x2, 0xe, 0x53,0x0, 0x2, 0xd, 0xc2,0x0, 0x2, 0xd, 0xc1,0x0, 0x2, 0xd, 0xb4, +0x0, 0x2, 0xd, 0xb3,0x0, 0x2, 0xe, 0x1c,0x0, 0x2, 0xe, 0x2e,0x0, 0x2, 0xe, 0x2d, +0x0, 0x2, 0xe, 0x1b,0x0, 0x2, 0xe, 0x26,0x0, 0x2, 0xe, 0x2a,0x0, 0x2, 0xe, 0x25, +0x0, 0x2, 0xe, 0x29,0x0, 0x2, 0xe, 0x24,0x0, 0x2, 0xe, 0x23,0x0, 0x2, 0xe, 0x22, +0x0, 0x2, 0xe, 0x21,0x0, 0x2, 0xe, 0x20,0x0, 0x2, 0xe, 0x1f,0x0, 0x2, 0xe, 0x1e, +0x0, 0x2, 0xe, 0x1d,0x0, 0x2, 0x0, 0xc, 0x0, 0x2, 0xd, 0x27,0x0, 0x2, 0xd, 0xae, +0x0, 0x2, 0x24,0xab,0x0, 0x2, 0xe, 0x74,0x0, 0x2, 0x74,0xe4,0x0, 0x2, 0x61,0x52, +0x0, 0x2, 0x60,0x0, 0x0, 0x2, 0x5f,0xe8,0x0, 0x0, 0x63,0xb0,0x0, 0x2, 0x24,0x7d, +0x0, 0x3, 0x11,0x4c,0x0, 0x3, 0x6, 0x5e,0x0, 0x2, 0x24,0x5e,0x0, 0x0, 0x5e,0x9c, +0x0, 0x2, 0x24,0xb5,0x0, 0x2, 0x25,0x18,0x0, 0x2, 0x65,0xb0,0x0, 0x2, 0x5f,0x18, +0x0, 0x2, 0x1b,0x64,0x0, 0x2, 0x5f,0xa4,0x0, 0x2, 0x65,0xd0,0x0, 0x2, 0xf6,0x0, +0x0, 0x2, 0x24,0xcc,0x0, 0x3, 0xa, 0x38,0x0, 0x2, 0x2e,0x6c,0x0, 0x1, 0x42,0xc8, +0x0, 0x2, 0xae,0x34,0x0, 0x2, 0xa7,0xe2,0x0, 0x0, 0xf4,0xe0,0x0, 0x0, 0xf4,0xb8, +0x0, 0x2, 0xf3,0xb8,0x0, 0x2, 0xf3,0xba,0x0, 0x2, 0xed,0x68,0x0, 0x2, 0xf4,0x30, +0x0, 0x2, 0xf4,0xb8,0x0, 0x2, 0xf4,0xe0,0x0, 0x2, 0xd4,0x22,0x0, 0x2, 0xf5,0xfb, +0x0, 0x2, 0xf5,0xfa,0x0, 0x0, 0xda,0x74,0x0, 0x0, 0xdd,0x9c,0x0, 0x2, 0xf5,0x6, +0x0, 0x2, 0xcd,0xd0,0x0, 0x2, 0xc1,0x2c,0x0, 0x2, 0xe7,0x16,0x0, 0x2, 0xc7,0x7e, +0x0, 0x2, 0xf4,0xac,0x0, 0x2, 0xf4,0xb4,0x0, 0x2, 0xf5,0x12,0x0, 0x2, 0xf5,0xe, +0x0, 0x2, 0xf5,0xa, 0x0, 0x2, 0xf5,0x10,0x0, 0x2, 0xf5,0xc, 0x0, 0x2, 0xf5,0x8, +0x0, 0x0, 0xf5,0x8, 0x0, 0x0, 0xd4,0x22,0x0, 0x2, 0xae,0x36,0x0, 0x2, 0xe0,0xc4, +0x0, 0x2, 0xba,0xda,0x0, 0x2, 0xb4,0x88,0x0, 0x2, 0xa7,0xe4,0x0, 0x0, 0xae,0x36, +0x0, 0x2, 0xf4,0xb0,0x0, 0x0, 0x63,0x78,0x0, 0x2, 0x2e,0x66,0x0, 0x2, 0x24,0x6e, +0x0, 0x2, 0x5f,0x4c,0x0, 0x2, 0xe, 0x9c,0x0, 0x2, 0x24,0x86,0x0, 0x2, 0x24,0x6c, +0x0, 0x2, 0x45,0x52,0x0, 0x2, 0x3f,0x0, 0x0, 0x2, 0x2d,0x4b,0x0, 0x2, 0x24,0x61, +0x0, 0x2, 0x24,0x5d,0x0, 0x3, 0x6, 0xcc,0x0, 0x2, 0x24,0xc9,0x0, 0x1, 0x42,0xc0, +0x0, 0x1, 0x42,0xcc,0x0, 0x2, 0x5f,0xc4,0x0, 0x2, 0xf6,0x4, 0x0, 0x3, 0x11,0x68, +0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x24,0x85,0x0, 0x2, 0x4b,0xa4,0x0, 0x3, 0xa, 0x78, +0x0, 0x2, 0x24,0x76,0x0, 0x2, 0x24,0x71,0x0, 0x3, 0x5, 0xe6,0x0, 0x2, 0x61,0x3c, +0x0, 0x0, 0x62,0xde,0x0, 0x2, 0x24,0xb6,0x0, 0x2, 0x5f,0xe3,0x0, 0x2, 0x5f,0xe2, +0x0, 0x2, 0x5f,0xe0,0x0, 0x3, 0x6, 0x64,0x0, 0x2, 0x24,0xc6,0x0, 0x1, 0x42,0xb4, +0x0, 0x3, 0xa, 0xf4,0x0, 0x3, 0xa, 0xdc,0x0, 0x2, 0x74,0x50,0x0, 0x2, 0xe, 0x9b, +0x0, 0x2, 0xe, 0xa0,0x0, 0x0, 0x65,0x60,0x0, 0x2, 0x75,0x40,0x0, 0x2, 0x74,0xec, +0x0, 0x2, 0x2e,0x68,0x0, 0x2, 0x2e,0x70,0x0, 0x2, 0x74,0x8a,0x0, 0x2, 0x74,0x8c, +0x0, 0x3, 0xa, 0xe8,0x0, 0x2, 0xe, 0x5e,0x0, 0x2, 0x1b,0x82,0x0, 0x2, 0x24,0x89, +0x0, 0x2, 0x2e,0x6a,0x0, 0x2, 0x24,0x54,0x0, 0x0, 0xf6,0x60,0x0, 0x2, 0xf6,0x60, +0x0, 0x2, 0x24,0x7a,0x0, 0x2, 0x5f,0xc6,0x0, 0x3, 0x6, 0x65,0x0, 0x2, 0x24,0xad, +0x0, 0x2, 0x24,0x70,0x0, 0x2, 0x2d,0x4a,0x0, 0x3, 0x5, 0xf2,0x0, 0x3, 0x5, 0xec, +0x0, 0x2, 0x25,0x1c,0x0, 0x2, 0x24,0x80,0x0, 0x3, 0x6, 0x68,0x0, 0x2, 0xe, 0x64, +0x0, 0x3, 0xa, 0xf8,0x0, 0x3, 0xa, 0xf6,0x0, 0x2, 0x24,0x64,0x0, 0x2, 0xe, 0x62, +0x0, 0x2, 0x2c,0xc5,0x0, 0x2, 0x67,0x82,0x0, 0x2, 0x67,0x24,0x0, 0x2, 0x67,0x91, +0x0, 0x2, 0x67,0x8d,0x0, 0x2, 0x67,0x8e,0x0, 0x2, 0x67,0x87,0x0, 0x2, 0x67,0x8a, +0x0, 0x2, 0x67,0x8c,0x0, 0x2, 0x67,0x8b,0x0, 0x2, 0x67,0x88,0x0, 0x2, 0x67,0x85, +0x0, 0x2, 0x67,0x89,0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x67,0x1c,0x0, 0x2, 0x66,0x54, +0x0, 0x2, 0x66,0xb8,0x0, 0x2, 0x67,0x8f,0x0, 0x2, 0x67,0x84,0x0, 0x2, 0x67,0x86, +0x0, 0x2, 0x67,0x81,0x0, 0x2, 0x65,0xf0,0x0, 0x2, 0x67,0x80,0x0, 0x2, 0x24,0xd2, +0x0, 0x0, 0x63,0x6a,0x0, 0x3, 0x6, 0xd6,0x0, 0x2, 0x4b,0xa8,0x0, 0x1, 0x42,0xc4, +0x0, 0x0, 0x62,0xa0,0x0, 0x2, 0x1b,0x83,0x0, 0x2, 0x24,0xc8,0x0, 0x3, 0x11,0x60, +0x0, 0x2, 0x24,0x72,0x0, 0x2, 0x24,0xb7,0x0, 0x2, 0x24,0x66,0x0, 0x2, 0x5f,0xc8, +0x0, 0x3, 0x6, 0xd8,0x0, 0x0, 0x63,0xe0,0x0, 0x3, 0xa, 0xec,0x0, 0x1, 0x42,0xa8, +0x0, 0x2, 0x5f,0x5c,0x0, 0x2, 0x4b,0xac,0x0, 0x2, 0x74,0x36,0x0, 0x2, 0x74,0x3c, +0x0, 0x2, 0x74,0x3a,0x0, 0x2, 0x74,0x38,0x0, 0x2, 0x74,0x32,0x0, 0x2, 0x6d,0xf0, +0x0, 0x2, 0x67,0xb0,0x0, 0x2, 0x74,0x30,0x0, 0x2, 0x74,0x31,0x0, 0x2, 0x74,0x34, +0x0, 0x2, 0x67,0x94,0x0, 0x2, 0x24,0x88,0x0, 0x3, 0x6, 0x5f,0x0, 0x3, 0x5, 0xe8, +0x0, 0x1, 0x42,0xb8,0x0, 0x2, 0x5f,0x9c,0x0, 0x1, 0x42,0xe4,0x0, 0x2, 0x74,0x40, +0x0, 0x3, 0x6, 0xa8,0x0, 0x2, 0x25,0x14,0x0, 0x2, 0x32,0x48,0x0, 0x2, 0x32,0x30, +0x0, 0x2, 0x4b,0xae,0x0, 0x1, 0x42,0xd8,0x0, 0x2, 0x1b,0x84,0x0, 0x2, 0x24,0xae, +0x0, 0x2, 0x24,0x5c,0x0, 0x2, 0xe, 0x70,0x0, 0x2, 0x24,0x84,0x0, 0x2, 0x4b,0xc0, +0x0, 0x0, 0x62,0xb8,0x0, 0x2, 0xe, 0x5d,0x0, 0x2, 0x4b,0xb0,0x0, 0x0, 0x63,0xc8, +0x0, 0x2, 0x4b,0xb4,0x0, 0x2, 0x24,0x82,0x0, 0x2, 0x2c,0xf0,0x0, 0x2, 0x24,0x74, +0x0, 0x2, 0x24,0xac,0x0, 0x2, 0xe, 0x5c,0x0, 0x2, 0x4b,0xb8,0x0, 0x3, 0x6, 0x61, +0x0, 0x2, 0x5f,0xcc,0x0, 0x2, 0x24,0x7c,0x0, 0x2, 0x5f,0x7, 0x0, 0x2, 0x5f,0x6, +0x0, 0x2, 0x5f,0x5, 0x0, 0x2, 0x5f,0x4, 0x0, 0x2, 0x5f,0x3, 0x0, 0x2, 0x5f,0x2, +0x0, 0x2, 0x5f,0x1, 0x0, 0x2, 0x5f,0x0, 0x0, 0x2, 0x5e,0xff,0x0, 0x2, 0x5e,0xfe, +0x0, 0x2, 0x5e,0xfd,0x0, 0x2, 0x5e,0xfc,0x0, 0x2, 0x5e,0xfa,0x0, 0x2, 0x5e,0xec, +0x0, 0x2, 0x24,0x78,0x0, 0x2, 0x74,0xc8,0x0, 0x2, 0x5f,0xdf,0x0, 0x2, 0x5f,0xd0, +0x0, 0x1, 0x42,0xe8,0x0, 0x2, 0x5b,0x8e,0x0, 0x2, 0x58,0x68,0x0, 0x0, 0x1, 0x0, +0x0, 0x2, 0x25,0x16,0x0, 0x2, 0x24,0x87,0x0, 0x2, 0x24,0xca,0x0, 0x1, 0x42,0xe0, +0x0, 0x2, 0x0, 0x4, 0x0, 0x3, 0x6, 0xf6,0x0, 0x3, 0x6, 0xf5,0x0, 0x3, 0x6, 0xe6, +0x0, 0x3, 0x6, 0xe4,0x0, 0x2, 0x52,0x14,0x0, 0x1, 0x42,0xd0,0x0, 0x2, 0x24,0x1, +0x0, 0x2, 0x24,0x60,0x0, 0x0, 0x63,0x86,0x0, 0x2, 0x5f,0xce,0x0, 0x2, 0x75,0x48, +0x0, 0x2, 0xe, 0x8e,0x0, 0x2, 0x24,0x68,0x0, 0x3, 0x9, 0x5d,0xf, 0xff,0xff,0xff, +0xf0,0xff,0xff,0xff,0xff,0xc0,0xff,0xff,0x55,0x50,0x47,0x52,0x41,0x44,0x45,0x20, +0x66,0xcc,0x99,0x33,0x46,0x4c,0x41,0x47,0xa0,0x0, 0x3, 0xff,0x8, 0x0, 0x0, 0x8, +0x0, 0x82,0x52,0x1, 0x6, 0xc3,0x14,0x5, 0x8, 0x5, 0x8, 0x5, 0x6, 0xc3,0x18,0x6, +0x8, 0x6, 0x8, 0x6, 0x3, 0x28,0x0, 0xfa,0x3, 0x28,0x1, 0x2c,0xfc,0x0, 0xff,0xff, +0xef,0xff,0xff,0xff,0xf3,0xff,0xff,0xff,0xf8,0x0, 0xff,0xff,0x9f,0xff,0xff,0xff, +0xe7,0xff,0xff,0xff,0xf9,0xff,0xff,0xff,0xfe,0x7f,0xff,0xff,0xff,0x9f,0xff,0xff, +0xff,0xe7,0xff,0xff,0x80,0x1, 0x10,0x20,0xef,0xff,0xff,0xff,0xf3,0xff,0xff,0xff, +0x0, 0x19,0x66,0xd, 0x3c,0x6e,0xf3,0x5f,0x7f,0xff,0xff,0xff, \ No newline at end of file diff --git a/drivers/input/touchscreen/FT8006m/include/pramboot/FT8716_Pramboot_V0.5_20160723.i b/drivers/input/touchscreen/FT8006m/include/pramboot/FT8716_Pramboot_V0.5_20160723.i new file mode 100755 index 0000000000000..8c27370a9170b --- /dev/null +++ b/drivers/input/touchscreen/FT8006m/include/pramboot/FT8716_Pramboot_V0.5_20160723.i @@ -0,0 +1,246 @@ +0x2, 0x3, 0x83,0xca,0x39,0x12,0xf, 0x3c,0xda,0x39,0x32,0x2, 0x0, 0x3, 0x6d,0x22, +0x80,0x13,0x75,0xb5,0x0, 0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0xe5,0xb5,0x7a,0xb, +0xb0,0xb, 0x14,0xb, 0x24,0xbd,0x32,0x38,0xe9,0x22,0xff,0x2, 0xd, 0xf, 0xe5,0x33, +0xb4,0xc, 0xf, 0xc2,0x86,0xc2,0x87,0x7e,0x34,0x0, 0x64,0x12,0xe, 0x86,0xd2,0x86, +0xd2,0x87,0x22,0x2, 0x0, 0xf9,0xca,0x3b,0x7a,0xd, 0x10,0x7f,0x31,0xe5,0x24,0xb4, +0x80,0x2, 0x80,0x3, 0x2, 0x0, 0xdc,0x7f,0x13,0x5e,0x34,0x0, 0x7f,0x7d,0x23,0x7e, +0x34,0x0, 0x80,0x9d,0x32,0x7a,0x35,0x16,0x7e,0x35,0x14,0xbe,0x35,0x16,0x38,0x2, +0x80,0x5d,0x7e,0x35,0x16,0x7a,0x35,0x18,0x7f,0x13,0x7e,0xd, 0x10,0x12,0xa, 0xe6, +0x7e,0x35,0x14,0x9e,0x35,0x16,0x7a,0x35,0x14,0x7e,0x35,0x16,0x6d,0x22,0x2f,0x31, +0x7e,0x1d,0x10,0x2e,0x35,0x16,0x7a,0x1d,0x10,0x80,0x27,0x7e,0x34,0x0, 0x80,0x7a, +0x35,0x18,0x7f,0x13,0x7e,0xd, 0x10,0x12,0xa, 0xe6,0x7e,0x35,0x14,0x9e,0x34,0x0, +0x80,0x7a,0x35,0x14,0x7e,0x1d,0x10,0x2e,0x34,0x0, 0x80,0x7a,0x1d,0x10,0x2e,0x38, +0x0, 0x80,0x7e,0x35,0x14,0xbe,0x34,0x0, 0x80,0x50,0xd0,0x4d,0x33,0x68,0x26,0x7a, +0x35,0x18,0x7f,0x13,0x7e,0xd, 0x10,0x12,0xa, 0xe6,0x80,0x19,0x74,0x2, 0x12,0xa, +0x89,0x5e,0x70,0xf4,0x12,0xc, 0x86,0x7e,0x35,0x14,0x7a,0x35,0x18,0x7f,0x13,0x7e, +0xd, 0x10,0x12,0x8, 0xe, 0xd3,0xda,0x3b,0x22,0xa9,0xc0,0x93,0x75,0x39,0x0, 0x32, +0xf, 0x60,0xf0,0x9f,0x4c,0xf1,0xb3,0xe, 0xce,0xb9,0x31,0x46,0xff,0x0, 0xff,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x7c,0x6b,0xc2,0x2, 0xe5,0x22,0x14,0x78,0x3, 0x2, 0x2, 0xda,0x1b,0xb1,0x78,0x3, +0x2, 0x2, 0x3d,0x1b,0xb1,0x78,0x3, 0x2, 0x2, 0x89,0x1b,0xb1,0x78,0x3, 0x2, 0x2, +0x9a,0x1b,0xb1,0x78,0x3, 0x2, 0x2, 0xc1,0x24,0xf9,0x78,0x3, 0x2, 0x2, 0xd6,0x24, +0xaf,0x78,0x3, 0x2, 0x3, 0x3b,0x24,0xfd,0x68,0x3a,0x14,0x78,0x3, 0x2, 0x2, 0xdd, +0x14,0x78,0x3, 0x2, 0x2, 0xda,0x1b,0xb2,0x78,0x3, 0x2, 0x2, 0xda,0x24,0xda,0x68, +0x26,0x24,0xe6,0x68,0x1f,0x24,0xeb,0x68,0x3b,0x24,0xf3,0x78,0x3, 0x2, 0x2, 0xda, +0x24,0xe4,0x78,0x3, 0x2, 0x3, 0x46,0x14,0x78,0x3, 0x2, 0x2, 0xda,0x24,0x94,0x68, +0x3, 0x2, 0x3, 0x82,0x2, 0x3, 0x42,0xbe,0x60,0x4, 0x50,0xc, 0x75,0x3f,0x0, 0x7c, +0x16,0x2e,0x10,0x25,0x7c,0xb7,0xa5,0xf7,0xa5,0xbe,0x0, 0x2, 0x80,0x3, 0x2, 0x3, +0x82,0xd2,0x2, 0x22,0x7c,0xb6,0x24,0x0, 0x78,0x3, 0x2, 0x3, 0x82,0x1b,0xb1,0x68, +0x1e,0x14,0x68,0x1e,0x14,0x68,0x1e,0x14,0x68,0x1e,0xb, 0xb2,0x78,0x33,0x30,0x1, +0x7, 0x7e,0x8, 0x0, 0x44,0x2, 0x2, 0x5a,0x7e,0x8, 0x1, 0x50,0x2, 0x2, 0x5a,0x2, +0x2, 0xfb,0x2, 0x3, 0x2, 0x2, 0x3, 0x1a,0xa, 0x27,0x7e,0xd, 0x3a,0xb, 0x16,0xb, +0xa, 0x30,0x2d,0x32,0x1b,0xa, 0x30,0x6d,0x33,0x7e,0xd, 0x3a,0x79,0x30,0x0, 0x6, +0x22,0x7c,0xb7,0x62,0x3f,0x7e,0x2d,0x3a,0x2e,0x54,0x0, 0x6, 0xb, 0x2a,0x20,0x7d, +0x12,0xb, 0x14,0x1b,0x2a,0x10,0x7e,0xd, 0x3a,0x2d,0x12,0x39,0x70,0x0, 0x8, 0x7e, +0xd, 0x3a,0x69,0x50,0x0, 0x4, 0x69,0x20,0x0, 0x6, 0xbd,0x25,0x50,0x3, 0x2, 0x3, +0x82,0xb2,0x1, 0x7a,0xd, 0x34,0x7e,0x34,0x0, 0x2, 0x2, 0x3, 0x7f,0x7c,0xb6,0x1b, +0xb1,0x68,0x1d,0x14,0x68,0x1d,0xb, 0xb1,0x68,0x3, 0x2, 0x3, 0x82,0x30,0x1, 0x6, +0x7e,0x8, 0x0, 0x44,0x80,0x4, 0x7e,0x8, 0x1, 0x50,0x7a,0xd, 0x3a,0x2, 0x2, 0xf3, +0x2, 0x2, 0xfb,0xa, 0x57,0x6d,0x44,0x7e,0xd, 0x3a,0x69,0x30,0x0, 0x2, 0xb, 0xa, +0x20,0x2f,0x12,0x79,0x30,0x0, 0x2, 0x1b,0xa, 0x20,0x7e,0x1d,0x3a,0x7a,0x1d,0x34, +0xd2,0x2, 0x7e,0x34,0x0, 0x1, 0x2, 0x3, 0x7f,0xbe,0x60,0x1, 0x68,0x9, 0xa5,0xbe, +0x2, 0x5, 0x7a,0x71,0x3e,0xd2,0x3, 0xd2,0x2, 0x22,0x75,0xe6,0x0, 0xe4,0x7e,0x34, +0x1, 0x4, 0x7e,0x24,0x0, 0xff,0x7a,0x1b,0xb0,0x7e,0x34,0x1, 0x5, 0x7a,0x1b,0xb0, +0x7e,0x34,0x1, 0x8, 0x7a,0x1b,0xb0,0x7e,0x34,0x1, 0x9, 0x7a,0x1b,0xb0,0xd2,0x4, +0x22,0xa5,0xbe,0x1, 0x4, 0x7a,0x71,0x38,0x22,0xa5,0xbe,0x2, 0x2, 0x80,0x3, 0x2, +0x3, 0x82,0x7a,0x71,0x23,0x22,0x7a,0x71,0x33,0x22,0xd2,0x2, 0x22,0x7c,0xb6,0x1b, +0xb1,0x68,0x18,0x14,0x68,0x1c,0x14,0x68,0x31,0x14,0x68,0x3a,0xb, 0xb2,0x68,0x3, +0x2, 0x3, 0x82,0xa, 0x37,0x7d,0x3, 0x6d,0x11,0x80,0x59,0xa, 0x57,0x7c,0xab,0xe4, +0x80,0x2, 0xa, 0x57,0x6d,0x44,0x7e,0xd, 0x3a,0x69,0x30,0x0, 0x2, 0xb, 0xa, 0x20, +0x2f,0x12,0x79,0x30,0x0, 0x2, 0x1b,0xa, 0x20,0x22,0x7c,0x67,0x6c,0x77,0x7e,0xd, +0x3a,0x79,0x30,0x0, 0x4, 0x22,0xa, 0x27,0x7e,0xd, 0x3a,0xb, 0x16,0xb, 0xa, 0x30, +0x2d,0x32,0x1b,0xa, 0x30,0x7e,0x34,0x0, 0x3, 0x80,0x44,0x7e,0x34,0x0, 0x4, 0x7a, +0x35,0x2f,0x75,0x3f,0x0, 0x22,0x1b,0x61,0x68,0x15,0xb, 0x60,0x78,0x34,0x7c,0x27, +0x6c,0x33,0x6d,0x0, 0x7e,0x1d,0x3a,0x79,0x11,0x0, 0x2, 0x1b,0x1a,0x0, 0x22,0xa, +0x57,0x6d,0x44,0x7e,0xd, 0x3a,0x69,0x30,0x0, 0x2, 0xb, 0xa, 0x20,0x2f,0x12,0x79, +0x30,0x0, 0x2, 0x1b,0xa, 0x20,0xe4,0x7a,0xb3,0x2, 0xe4,0x7e,0x34,0x0, 0x5, 0x7a, +0x35,0x2f,0x22,0x75,0x84,0x1, 0x7e,0x44,0x1f,0xff,0xe4,0x7a,0x49,0xb0,0x1b,0x44, +0x78,0xf9,0x7e,0xf8,0x2, 0xe8,0xd2,0x7, 0xc2,0x8, 0x75,0x3f,0x0, 0x75,0x40,0x87, +0x75,0x41,0xa6,0x75,0x42,0x0, 0x75,0x43,0x0, 0xd2,0x0, 0xc2,0x2, 0xc2,0x3, 0xc2, +0x4, 0x75,0x22,0x0, 0x75,0x23,0x0, 0x75,0x24,0x80,0x75,0x2f,0x0, 0x75,0x30,0x0, +0x75,0x31,0x0, 0x75,0x32,0x0, 0x75,0x33,0x0, 0x75,0x38,0xb, 0x75,0x39,0x0, 0x75, +0x3e,0x1, 0x7e,0x4, 0x0, 0xff,0x7e,0x14,0xf, 0x50,0xb, 0xa, 0x40,0x5d,0x44,0x68, +0x1a,0x69,0x20,0x0, 0x2, 0xb, 0xe, 0xb, 0x44,0x80,0xa, 0x7e,0xb, 0xb0,0x7a,0x29, +0xb0,0xb, 0x24,0xb, 0xc, 0x1b,0x44,0x78,0xf2,0x80,0xdf,0x2, 0x4, 0x20,0xff,0xff, +0x56,0x30,0x2e,0x35,0x4a,0x75,0x6c,0x20,0x32,0x33,0x20,0x32,0x30,0x31,0x36,0x0, +0x46,0x54,0x53,0x38,0x37,0x31,0x36,0x5f,0x70,0x72,0x61,0x6d,0x62,0x6f,0x6f,0x74, +0x12,0xe, 0x63,0x2, 0x5, 0xbc,0x7e,0x35,0x2f,0x1b,0x34,0x68,0x60,0x1b,0x35,0x78, +0x3, 0x2, 0x4, 0xbc,0x1b,0x34,0x78,0x3, 0x2, 0x4, 0xe6,0x1b,0x34,0x78,0x3, 0x2, +0x5, 0x96,0x2e,0x34,0x0, 0x3, 0x68,0x3, 0x2, 0x5, 0xa8,0x6d,0x33,0x7a,0x35,0x2f, +0x7a,0x35,0x31,0x30,0x7, 0x5, 0x12,0x0, 0x2e,0xc2,0x7, 0x7e,0xd, 0x34,0x69,0x30, +0x0, 0x4, 0x7a,0x35,0x14,0x69,0x30,0x0, 0x2, 0xb, 0xa, 0x20,0x2e,0x14,0x0, 0x8, +0x12,0x0, 0x46,0xd2,0x7, 0x7e,0x2d,0x34,0x69,0x12,0x0, 0x4, 0x69,0x32,0x0, 0x2, +0xb, 0x2a,0x20,0x12,0xb, 0xe2,0x2e,0x34,0x10,0x0, 0x2, 0x5, 0x91,0x6d,0x33,0x7a, +0x35,0x2f,0x7e,0x34,0x1, 0x0, 0x7a,0x35,0x15,0x7e,0xd, 0x34,0x69,0x30,0x0, 0x2, +0xb, 0xa, 0x20,0x2e,0x14,0x0, 0x8, 0x12,0xe, 0xf2,0x20,0x0, 0x3, 0x2, 0x5, 0xa8, +0x7e,0x1d,0x34,0x29,0xb1,0x0, 0x8, 0xf5,0x91,0x2, 0x5, 0xa8,0x6d,0x33,0x7a,0x35, +0x2f,0x7a,0x35,0x31,0x7e,0x18,0x0, 0x3f,0x7a,0x1d,0xe, 0x7e,0xd, 0x34,0x69,0x30, +0x0, 0x2, 0xb, 0xa, 0x20,0x69,0x10,0x0, 0x4, 0x12,0x7, 0x62,0x12,0x0, 0x2e,0x7e, +0x34,0xf0,0x55,0x2, 0x5, 0x91,0x7e,0x18,0x10,0x0, 0x7a,0x1d,0x8, 0xd2,0x5, 0x6d, +0x33,0x7a,0x35,0x2f,0x7a,0x35,0x31,0xe5,0x38,0xb4,0xa, 0x17,0xe5,0x24,0xb4,0x80, +0xc, 0xe4,0x12,0xc, 0xd1,0x74,0x1, 0x12,0xc, 0xd1,0x2, 0x5, 0x7f,0x12,0x8, 0xa4, +0x2, 0x5, 0x7f,0xe5,0x38,0xb4,0xb, 0x27,0xe5,0x24,0xb4,0x80,0x11,0x7e,0xf0,0x1, +0x7c,0xbf,0x12,0x5, 0xc3,0xb, 0xf0,0xbe,0xf0,0x11,0x78,0xf4,0x80,0x51,0x7e,0xf0, +0x4, 0x7c,0xbf,0x12,0x5, 0xc3,0xb, 0xf0,0xbe,0xf0,0x40,0x78,0xf4,0x80,0x40,0xe5, +0x38,0xa, 0x3b,0x9e,0x34,0x0, 0x80,0x7c,0xe7,0xe5,0x24,0xb4,0x80,0x10,0xa, 0x3e, +0x6d,0x22,0x74,0xc, 0x2f,0x11,0x14,0x78,0xfb,0x7a,0x1d,0x8, 0x80,0xe, 0xa, 0x3e, +0x6d,0x22,0x74,0xa, 0x2f,0x11,0x14,0x78,0xfb,0x7a,0x1d,0x8, 0x6c,0xdd,0x80,0x9, +0x7c,0xbe,0x12,0x5, 0xc3,0xb, 0xe0,0xb, 0xd0,0xe5,0x23,0xbc,0xbd,0x38,0xf1,0x7e, +0x1d,0x8, 0x12,0xe, 0xd, 0x92,0x5, 0x12,0x0, 0x2e,0x30,0x5, 0x1b,0x7e,0x34,0xf0, +0xaa,0x7a,0x35,0x31,0x80,0x12,0x6d,0x33,0x7a,0x35,0x2f,0x7a,0x35,0x31,0x7e,0xd, +0x34,0x69,0x30,0x0, 0x2, 0x12,0x6, 0x98,0x30,0x4, 0x11,0x7e,0x34,0x13,0x88,0x12, +0xe, 0x86,0x7e,0x34,0x13,0x88,0x12,0xe, 0x86,0x75,0xe9,0xff,0x30,0x8, 0x3, 0x2, +0x4, 0x26,0x22,0xca,0xf8,0x7c,0xfb,0xe5,0x24,0xb4,0x80,0x4a,0xd2,0x6, 0x12,0xe, +0xdf,0x74,0x20,0xca,0xb8,0xa, 0x3f,0x6d,0x22,0x74,0xc, 0x2f,0x11,0x14,0x78,0xfb, +0xda,0xb8,0x12,0xd, 0xb3,0xa9,0xd2,0xb4,0x12,0xf, 0x32,0x12,0xe, 0xca,0x50,0x9, +0x7e,0x35,0x42,0xbe,0x34,0x1, 0xf4,0x28,0xf2,0x7e,0x35,0x42,0xbe,0x34,0x1, 0xf4, +0x38,0x6, 0x12,0xf, 0x4d,0x2, 0x6, 0x95,0xc2,0x86,0x7e,0x34,0x13,0x88,0x12,0xe, +0x86,0xd2,0x86,0x2, 0x6, 0x95,0x74,0x1, 0x12,0xa, 0x21,0x74,0x1, 0x6d,0x33,0x12, +0xc, 0x86,0xe4,0x12,0xa, 0x89,0x5e,0x34,0x80,0x0, 0x7c,0x4f,0x6c,0x55,0x3e,0x24, +0x4d,0x32,0x12,0xc, 0x86,0x74,0x4, 0x6d,0x33,0x12,0xc, 0x86,0x7e,0x34,0x0, 0x50, +0x12,0xc, 0x86,0x7e,0x34,0x0, 0x19,0x12,0xe, 0x86,0x74,0x4, 0x7e,0x34,0x0, 0x51, +0x12,0xc, 0x86,0x7e,0x34,0xa2,0x1c,0x12,0xe, 0x86,0x74,0x4, 0x7e,0x34,0x0, 0x11, +0x12,0xc, 0x86,0x7e,0x34,0x0, 0x19,0x12,0xe, 0x86,0x74,0x4, 0x7e,0x34,0x0, 0x10, +0x12,0xc, 0x86,0x7e,0x34,0x0, 0x19,0x12,0xe, 0x86,0x74,0x4, 0x6d,0x33,0x12,0xc, +0x86,0x7e,0x34,0x0, 0x5, 0x12,0xe, 0x86,0xe4,0x12,0xa, 0x21,0x74,0x4, 0x7e,0x34, +0xff,0xf7,0x12,0xc, 0x86,0xda,0xf8,0x22,0xca,0xf8,0xe4,0x7a,0xb3,0x2, 0xe4,0xe5, +0x24,0xbe,0xb0,0x80,0x68,0x9, 0x74,0x1, 0x7a,0xb3,0x2, 0xe4,0x2, 0x7, 0x5f,0xbe, +0x34,0xff,0xff,0x68,0x6, 0xbe,0x34,0x0, 0x12,0x50,0x4, 0x7e,0x34,0x0, 0x12,0x7d, +0x13,0x6d,0x0, 0x74,0xc, 0x2f,0x0, 0x14,0x78,0xfb,0x7a,0xd, 0xc, 0x7c,0xb7,0x12, +0x5, 0xc3,0x7e,0x1d,0xc, 0x12,0xe, 0xd, 0xe4,0x33,0x7c,0xfb,0xbe,0xf0,0x1, 0x78, +0xa, 0x7e,0xb3,0x2, 0xe4,0x44,0x2, 0x7a,0xb3,0x2, 0xe4,0x6c,0xaa,0xa, 0x3a,0x19, +0xa3,0x2, 0xdc,0xb, 0xa0,0xbe,0xa0,0x8, 0x78,0xf3,0x7e,0x34,0x0, 0x8, 0x7a,0x35, +0x14,0x7e,0x1d,0xc, 0x7e,0x8, 0x2, 0xdc,0x12,0x0, 0x46,0x6c,0xaa,0xe4,0xa, 0x4a, +0x19,0xb4,0x2, 0xdc,0xb, 0xa0,0xbe,0xa0,0x8, 0x78,0xf3,0x7e,0x34,0x0, 0x8, 0x7a, +0x35,0x15,0x7e,0x1d,0xc, 0x7e,0x8, 0x2, 0xdc,0x12,0xe, 0xf2,0x7e,0xf0,0x1, 0x6c, +0xaa,0xa, 0x3a,0x9, 0xb3,0x2, 0xdc,0xbc,0xba,0x68,0x4, 0x6c,0xff,0x80,0x7, 0xb, +0xa0,0xbe,0xa0,0x8, 0x40,0xeb,0xbe,0xf0,0x1, 0x78,0xa, 0x7e,0xb3,0x2, 0xe4,0x44, +0x4, 0x7a,0xb3,0x2, 0xe4,0x7e,0xb3,0x2, 0xe4,0x44,0x1, 0x7a,0xb3,0x2, 0xe4,0xda, +0xf8,0x22,0xca,0x3b,0x7a,0x15,0xc, 0x7f,0x31,0x75,0x12,0x0, 0x7e,0x35,0xc, 0xbe, +0x34,0x0, 0x0, 0x38,0x4f,0x7e,0x34,0xff,0xff,0x7a,0x35,0xc, 0x75,0x12,0x1, 0x80, +0x43,0x7e,0x34,0x0, 0x80,0x7a,0x35,0x15,0x7f,0x13,0x7e,0x8, 0x2, 0x5c,0x12,0xe, +0xf2,0x7e,0x35,0xc, 0x9e,0x34,0x0, 0x80,0x7a,0x35,0xc, 0x2e,0x38,0x0, 0x80,0x6d, +0x33,0x7a,0x35,0x13,0x7e,0x35,0x13,0x9, 0x63,0x2, 0x5c,0x7e,0xd, 0xe, 0x7e,0xb, +0x70,0x6c,0x76,0x7a,0xb, 0x70,0x7e,0x35,0x13,0xb, 0x34,0x7a,0x35,0x13,0xbe,0x34, +0x0, 0x80,0x78,0xe0,0x7e,0x35,0xc, 0xbe,0x34,0x0, 0x80,0x38,0xb4,0xe5,0x12,0x60, +0x5, 0xb, 0x34,0x7a,0x35,0xc, 0x7e,0x35,0xc, 0x7a,0x35,0x15,0x7f,0x13,0x7e,0x8, +0x2, 0x5c,0x12,0xe, 0xf2,0x6d,0x33,0x80,0x17,0x7e,0x35,0x13,0x9, 0x63,0x2, 0x5c, +0x7e,0xd, 0xe, 0x7e,0xb, 0x70,0x6c,0x76,0x7a,0xb, 0x70,0x7e,0x35,0x13,0xb, 0x34, +0x7a,0x35,0x13,0x7e,0x35,0xc, 0xbe,0x35,0x13,0x38,0xde,0xda,0x3b,0x22,0xca,0x3b, +0x7f,0x30,0x7c,0xb6,0xf5,0x1a,0x7c,0xb7,0xf5,0x1b,0x74,0x1, 0x7e,0x35,0x18,0x1e, +0x34,0x1b,0x34,0x4e,0x60,0x80,0x12,0xc, 0x86,0x12,0xa, 0x21,0xa9,0xc2,0xb4,0xa9, +0xc6,0xb3,0x75,0xb5,0x2, 0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0x75,0xb5,0x0, 0xa9, +0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0x85,0x1a,0xb5,0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3, +0x85,0x1b,0xb5,0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0x6d,0x33,0x80,0x2a,0x7f,0x13, +0x2e,0x35,0x1c,0x7e,0x1b,0xb0,0xf5,0xb5,0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0x7e, +0x35,0x1c,0x5e,0x34,0x0, 0x1, 0xbe,0x34,0x0, 0x1, 0x78,0x7, 0x7e,0x34,0x0, 0x78, +0x12,0xe, 0x86,0x7e,0x35,0x1c,0xb, 0x34,0x7a,0x35,0x1c,0x7e,0x35,0x18,0xbe,0x35, +0x1c,0x38,0xcb,0xa9,0xd2,0xb4,0x7e,0x34,0x0, 0x5, 0x12,0xe, 0x86,0xe4,0x12,0xa, +0x21,0xda,0x3b,0x22,0xe5,0x24,0xb4,0x80,0x16,0xd2,0x6, 0x12,0xe, 0xdf,0xa9,0xc2, +0xb4,0x74,0x60,0x12,0xf, 0x27,0xa9,0xd2,0xb4,0x12,0xe, 0xca,0x40,0xfb,0x22,0x74, +0x1, 0x12,0xa, 0x21,0xe4,0x6d,0x33,0x12,0xc, 0x86,0x74,0x1, 0x6d,0x33,0x12,0xc, +0x86,0x74,0x4, 0x6d,0x33,0x12,0xc, 0x86,0x7e,0x34,0x0, 0x54,0x12,0xc, 0x86,0x7e, +0x34,0x0, 0x19,0x12,0xe, 0x86,0x74,0x4, 0x7e,0x34,0x0, 0x55,0x12,0xc, 0x86,0x7e, +0x34,0xa2,0x1c,0x12,0xe, 0x86,0x74,0x4, 0x7e,0x34,0x0, 0x15,0x12,0xc, 0x86,0x7e, +0x34,0x0, 0xa0,0x12,0xe, 0x86,0x74,0x4, 0x7e,0x34,0x0, 0x14,0x12,0xc, 0x86,0x7e, +0x34,0x0, 0x19,0x12,0xe, 0x86,0x74,0x4, 0x7e,0x34,0x0, 0x4, 0x12,0xc, 0x86,0x7e, +0x34,0x0, 0x5, 0x12,0xe, 0x86,0xe4,0x12,0xa, 0x21,0x74,0x4, 0x7e,0x34,0xff,0xf7, +0x2, 0xc, 0x86,0x7c,0x7b,0x7e,0xa0,0xef,0xe5,0x22,0x24,0xfd,0x68,0x3c,0x1b,0xb1, +0x68,0x26,0x24,0x9f,0x68,0x41,0x1b,0xb2,0x68,0x42,0x24,0x9e,0x68,0x39,0x24,0xe3, +0x68,0x52,0x24,0x59,0x78,0x52,0xa5,0xbf,0x0, 0x5, 0x7e,0xa1,0x40,0x80,0x49,0xa5, +0xbf,0x1, 0x45,0x7e,0xa1,0x41,0x80,0x40,0xa5,0xbf,0x0, 0x5, 0x7e,0xa1,0x24,0x80, +0x37,0xa5,0xbf,0x1, 0x33,0x7e,0xa1,0x3e,0x80,0x2e,0xa, 0x17,0x7e,0x1d,0x3a,0x2d, +0x31,0x29,0xa1,0x0, 0x8, 0x80,0x21,0x7e,0xa1,0x3f,0x80,0x1c,0xa5,0xbf,0x0, 0x9, +0x7e,0x35,0x31,0xa, 0x56,0x7c,0xab,0x80,0xf, 0xa5,0xbf,0x1, 0xb, 0x7e,0x55,0x31, +0x7c,0xab,0x80,0x4, 0x7e,0xa3,0x2, 0xe4,0x7c,0xba,0x22,0xca,0x79,0x6c,0xee,0x7e, +0xf0,0x70,0x75,0x91,0x0, 0xc2,0x90,0xc2,0x91,0x30,0x8, 0x31,0x7e,0x34,0x0, 0x2, +0x7a,0x35,0x15,0x9f,0x11,0x7e,0x8, 0x0, 0xc, 0x12,0xe, 0xf2,0xe5,0xc, 0xbe,0xb0, +0xff,0x68,0x1a,0xe5,0xc, 0x60,0x16,0xe5,0xd, 0xa, 0x2b,0xe5,0xc, 0xa, 0x3b,0x2d, +0x32,0xbe,0x34,0x0, 0xff,0x78,0x6, 0x7e,0xf1,0xc, 0x7e,0xe0,0x1, 0x4c,0xee,0x78, +0x1c,0xa9,0xd1,0xcb,0xd2,0xcc,0x12,0xc, 0x35,0x7c,0xfb,0xc2,0xcc,0xa9,0xc1,0xcb, +0xbe,0xf0,0x2, 0x40,0x5, 0xbe,0xf0,0xfd,0x28,0x3, 0x7e,0xf0,0x70,0x7c,0xbf,0x54, +0xfe,0xf5,0x92,0xd2,0xe8,0xc2,0xc0,0xa9,0xd5,0xb7,0xd2,0xbd,0xd2,0xad,0xda,0x79, +0x22,0xca,0x79,0xbe,0xb0,0x0, 0x28,0x2e,0x74,0x6, 0x12,0xa, 0x89,0x7d,0x73,0x6c, +0xff,0x7e,0xf0,0xa5,0x7d,0x37,0x12,0xc, 0x86,0x6c,0xff,0x7e,0xf0,0xf, 0x7d,0x37, +0x12,0xc, 0x86,0x6c,0xff,0x7e,0xf0,0x6a,0x7d,0x37,0x12,0xc, 0x86,0x7e,0x34,0x0, +0x5, 0x12,0xe, 0x86,0x80,0x30,0x74,0x1, 0x7e,0x34,0xdf,0xff,0x12,0xc, 0x86,0x74, +0x6, 0x12,0xa, 0x89,0x7d,0x73,0x6c,0xff,0x7d,0x37,0x12,0xc, 0x86,0x7d,0x37,0x12, +0xc, 0x86,0x7d,0x37,0x12,0xc, 0x86,0x74,0x2, 0x12,0xa, 0x89,0x7d,0x73,0x4e,0xf0, +0x1, 0x7d,0x37,0x12,0xc, 0x86,0xda,0x79,0x22,0xa9,0xc2,0xb4,0xa9,0xc6,0xb3,0x75, +0xb5,0x5, 0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0x75,0xb5,0x0, 0xa9,0x36,0xb3,0xfc, +0xa9,0xc6,0xb3,0x75,0xb5,0x0, 0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0xf5,0xb5,0xa9, +0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0x75,0xb5,0x0, 0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3, +0x75,0xb5,0x0, 0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0x7e,0x71,0xb5,0x75,0xb5,0x0, +0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0x7e,0xa1,0xb5,0xa9,0xd2,0xb4,0x7c,0x47,0x6c, +0x55,0xa, 0x3a,0x4d,0x32,0x22,0x7f,0x70,0xd2,0x6, 0x12,0xe, 0xdf,0x74,0x2, 0x12, +0xd, 0xb3,0x6d,0x33,0x80,0x12,0x7f,0x7, 0x2d,0x13,0x7e,0xb, 0xb0,0xf5,0xb5,0xa9, +0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0xb, 0x34,0x7e,0x25,0x18,0xbd,0x23,0x38,0xe7,0xa9, +0xd2,0xb4,0x12,0xf, 0x32,0x12,0xe, 0xca,0x50,0x9, 0x7e,0x35,0x42,0xbe,0x34,0x1, +0xf4,0x28,0xf2,0x7e,0x35,0x42,0xbe,0x34,0x1, 0xf4,0x38,0x3, 0x2, 0xf, 0x4d,0xc2, +0x86,0x7e,0x34,0x13,0x88,0x12,0xe, 0x86,0xd2,0x86,0x22,0xa9,0xd1,0xcb,0xd2,0xcc, +0x7e,0x34,0x0, 0x4, 0x7e,0x8, 0x2, 0x5c,0x74,0xc, 0x12,0xb, 0x8f,0xa9,0xd1,0xcb, +0xc2,0xcc,0x6c,0xaa,0x7e,0x70,0x2, 0xac,0x7a,0x7e,0x8, 0x2, 0x5c,0x2d,0x13,0xb, +0xa, 0x30,0x7d,0x23,0x7c,0x45,0x6c,0x55,0xa, 0x36,0x4d,0x32,0x1b,0xa, 0x30,0xb, +0xa0,0xbe,0xa0,0xc, 0x78,0xde,0x7e,0x37,0x2, 0x6c,0x7d,0x23,0xa, 0x54,0x7c,0xa7, +0xb4,0xe7,0xb, 0xbe,0xa0,0x16,0x78,0x6, 0x75,0x40,0xe7,0x75,0x41,0xa6,0x22,0x7e, +0x24,0x0, 0x1, 0x7e,0x7f,0x2, 0xe5,0x79,0x27,0x0, 0x6, 0x7e,0x7f,0x2, 0xe5,0x69, +0x27,0x0, 0x6, 0x4d,0x22,0x78,0xf4,0x5e,0x60,0x7f,0x1b,0x7a,0x30,0x7e,0x1f,0x2, +0xe5,0x69,0x31,0x0, 0x8, 0x4d,0x33,0x68,0xf4,0x6c,0xaa,0x80,0x20,0x6d,0x44,0x7e, +0x1f,0x2, 0xe5,0x1b,0x1a,0x40,0x7e,0x1f,0x2, 0xe5,0x69,0x41,0x0, 0x8, 0x4d,0x44, +0x68,0xf4,0x69,0x41,0x0, 0x2, 0x1b,0xa, 0x40,0xb, 0x15,0xb, 0xa0,0xbc,0xba,0x38, +0xdc,0x22,0x6d,0x0, 0x74,0x10,0x4d,0x0, 0x78,0xb, 0x4d,0x22,0x78,0x27,0x8d,0x31, +0x7d,0x12,0x6d,0x22,0x22,0x7d,0x43,0x7d,0x32,0x6d,0x22,0x2f,0x11,0x2d,0x44,0x50, +0x2, 0xa5,0xf, 0xbf,0x10,0x40,0x4, 0x9f,0x10,0xb, 0x90,0x14,0x78,0xed,0x7f,0x1, +0x6d,0x22,0x7d,0x34,0x22,0x7d,0x41,0x7d,0x13,0x8d,0x24,0x7d,0x2, 0x2f,0x0, 0x40, +0x4, 0xbd,0x4, 0x40,0x4, 0x9d,0x4, 0xb, 0x14,0x14,0x78,0xf1,0x7d,0x23,0x7d,0x31, +0x7d,0x10,0x6d,0x0, 0x22,0x7e,0x34,0x0, 0x2, 0x7e,0xf, 0x2, 0xe5,0x79,0x30,0x0, +0x4, 0x7e,0x34,0x0, 0x1, 0x7e,0xf, 0x2, 0xe5,0x79,0x30,0x0, 0x6, 0x7e,0xf, 0x2, +0xe5,0x69,0x30,0x0, 0x6, 0x4d,0x33,0x78,0xf4,0x7e,0x34,0x0, 0x4, 0x1b,0xa, 0x30, +0x7e,0xf, 0x2, 0xe5,0x69,0x30,0x0, 0x8, 0x4d,0x33,0x68,0xf4,0x6d,0x33,0x1b,0xa, +0x30,0x7e,0x1f,0x2, 0xe5,0x69,0x11,0x0, 0x8, 0x4d,0x11,0x68,0xf4,0x69,0x51,0x0, +0x2, 0x5e,0x54,0x0, 0xfe,0x22,0x7d,0x23,0xa, 0x36,0x7c,0xa5,0xa9,0xc2,0xb4,0xa9, +0xc6,0xb3,0x75,0xb5,0x1, 0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0x75,0xb5,0x0, 0xa9, +0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0x75,0xb5,0x0, 0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3, +0xf5,0xb5,0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0x7a,0x71,0xb5,0xa9,0x36,0xb3,0xfc, +0xa9,0xc6,0xb3,0x7a,0xa1,0xb5,0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0xa9,0xd2,0xb4, +0x22,0x7c,0xab,0xd2,0x6, 0x12,0xe, 0xdf,0x74,0xd8,0xa, 0x3a,0x7d,0x23,0x6d,0x33, +0x12,0xd, 0xb3,0xa9,0xd2,0xb4,0x12,0xf, 0x32,0x12,0xe, 0xca,0x50,0x9, 0x7e,0x35, +0x42,0xbe,0x34,0x5, 0xdc,0x28,0xf2,0x7e,0x35,0x42,0xbe,0x34,0x5, 0xdc,0x38,0x3, +0x2, 0xf, 0x4d,0xc2,0x86,0x7e,0x34,0x13,0x88,0x12,0xe, 0x86,0xd2,0x86,0x22,0xca, +0x2b,0xca,0x1b,0xca,0xb, 0xd2,0x0, 0x30,0x90,0x1c,0xc2,0x90,0x7e,0x71,0x91,0xe5, +0x39,0x70,0x3, 0x7a,0x71,0x22,0xe5,0x39,0x12,0x1, 0x20,0x5, 0x39,0x30,0x2, 0x6, +0xe4,0x12,0x9, 0x33,0xf5,0x91,0x30,0x91,0xb, 0xc2,0x91,0x5, 0x39,0xe5,0x39,0x12, +0x9, 0x33,0xf5,0x91,0xda,0xb, 0xda,0x1b,0xda,0x2b,0x32,0xd2,0x6, 0x12,0xe, 0xdf, +0xa9,0xc2,0xb4,0x74,0x9f,0x12,0xf, 0x27,0x12,0xf, 0xe, 0xa9,0xd2,0xb4,0x60,0x3, +0xb4,0xff,0x1a,0x75,0x24,0x81,0xa9,0xd5,0xca,0xa9,0xd0,0xca,0x75,0xed,0x9f,0x75, +0xad,0x20,0xa9,0xd1,0xea,0xa9,0xc1,0xea,0x74,0x1, 0x2, 0xd, 0xe0,0x2, 0xd, 0x80, +0xd2,0x6, 0x12,0xe, 0xdf,0xa9,0xc2,0xb4,0x74,0x5, 0x12,0xf, 0x27,0x12,0xf, 0xe, +0x7c,0xab,0xa9,0xd2,0xb4,0xd2,0x6, 0x12,0xe, 0xdf,0x5e,0xa0,0xe3,0xa9,0xc2,0xb4, +0x74,0x1, 0x12,0xf, 0x27,0x7c,0xba,0x12,0xf, 0x27,0xa9,0xd2,0xb4,0x12,0xe, 0xca, +0x40,0xfb,0x22,0x7c,0xab,0x7d,0x12,0x7c,0xb3,0xf5,0x1c,0x7c,0x36,0x7c,0x25,0xa, +0x4, 0x7c,0xb3,0xf5,0x1b,0x7c,0xb7,0xf5,0x1a,0xa9,0xc2,0xb4,0x7c,0xba,0x12,0xf, +0x27,0xe5,0x1c,0x12,0xf, 0x27,0xe5,0x1b,0x12,0xf, 0x27,0xe5,0x1a,0x2, 0xf, 0x27, +0xca,0xf8,0x7c,0xfb,0xe5,0x24,0xb4,0x81,0x21,0x74,0x2, 0x12,0xa, 0x89,0x4c,0xff, +0x78,0x8, 0xa9,0xc0,0xca,0x5e,0x70,0xdf,0x80,0x6, 0xa9,0xd0,0xca,0x4e,0x70,0x20, +0x74,0x2, 0x12,0xc, 0x86,0x74,0x2, 0x12,0xa, 0x89,0xda,0xf8,0x22,0xd2,0x6, 0x7e, +0x14,0x0, 0x8, 0x7a,0x15,0x15,0x7e,0x8, 0x2, 0xdc,0x12,0xe, 0xf2,0x6c,0xaa,0xa, +0x3a,0x9, 0xb3,0x2, 0xdc,0xbe,0xb0,0xff,0x68,0x4, 0xc2,0x6, 0x80,0x7, 0xb, 0xa0, +0xbe,0xa0,0x8, 0x40,0xea,0xa2,0x6, 0x22,0x7d,0x52,0xf5,0x19,0x7c,0xb6,0x7c,0xa5, +0xa, 0x44,0xf5,0x18,0x7f,0x21,0xf5,0x17,0xa9,0xc2,0xb4,0x74,0xb, 0x12,0xf, 0x27, +0xe5,0x19,0x12,0xf, 0x27,0xe5,0x18,0x12,0xf, 0x27,0xe5,0x17,0x12,0xf, 0x27,0xe4, +0x2, 0xf, 0x27,0x12,0xe, 0xa9,0x12,0xb, 0x3b,0xa9,0xa6,0x94,0xb3,0x92,0x8, 0x30, +0x8, 0x6, 0x12,0xf, 0x1b,0x12,0xd, 0x4b,0x12,0x9, 0xab,0x12,0xf, 0x0, 0xd2,0xaf, +0x30,0x3, 0xfd,0x2, 0xf, 0x45,0x80,0x18,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0xe5,0x3e,0x70,0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x7d,0x23,0x1b,0x34,0x4d,0x22,0x78,0xe0,0x22,0xd2,0xcf,0x85,0x3e,0xcc,0x75,0xec, +0xff,0x75,0xee,0xff,0x75,0xeb,0x3, 0x75,0xac,0xc0,0xa9,0xc5,0xca,0x75,0xed,0xf, +0x75,0xad,0xb0,0xa9,0xd7,0x94,0xa9,0xd4,0x94,0x22,0xa9,0xc2,0xb4,0x74,0x5, 0x12, +0xf, 0x27,0x12,0xf, 0xe, 0xa9,0xd2,0xb4,0x30,0xe0,0x2, 0xd3,0x22,0xc3,0x22,0xa9, +0xc2,0xb4,0x30,0x6, 0x4, 0x74,0x6, 0x80,0x2, 0x74,0x4, 0x12,0xf, 0x27,0xa9,0xd2, +0xb4,0x22,0x12,0xe, 0x38,0x7e,0x35,0x15,0x12,0x0, 0xe, 0xa9,0xd2,0xb4,0xd3,0x22, +0xc2,0x8c,0x43,0x89,0x2, 0x75,0x8c,0x1, 0x75,0x8a,0x0, 0xd2,0xa9,0x22,0x75,0xb5, +0x0, 0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0xe5,0xb5,0x22,0xd2,0xc8,0x75,0xb3,0x13, +0xa9,0xd1,0xb4,0xa9,0xc0,0xb4,0x22,0xf5,0xb5,0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3, +0xd3,0x22,0xc2,0x8c,0x6d,0x33,0x7a,0x35,0x42,0xd2,0x8c,0x22,0x7e,0x35,0x42,0xb, +0x34,0x7a,0x35,0x42,0x22,0x85,0x3e,0xcc,0xe5,0x3e,0x2, 0xd, 0xe0,0x2, 0xf, 0x3c, +0x0, 0x1, 0x2, 0xe4,0x0, 0x0, 0x4, 0x2, 0xe5,0x0, 0x0, 0x9c,0x0, 0x0, 0x0, 0xff, diff --git a/drivers/input/touchscreen/FT8716/Kconfig b/drivers/input/touchscreen/FT8716/Kconfig new file mode 100755 index 0000000000000..15cf98981c357 --- /dev/null +++ b/drivers/input/touchscreen/FT8716/Kconfig @@ -0,0 +1,16 @@ +# +# Focaltech Touchscreen driver configuration +# + +config TOUCHSCREEN_FTS + bool "Focaltech Touchscreen" + depends on I2C + default n + help + Say Y here if you have Focaltech touch panel. + If unsure, say N. + +config TOUCHSCREEN_FTS_DIRECTORY + string "Focaltech ts directory name" + default "focaltech_touch" + depends on TOUCHSCREEN_FTS diff --git a/drivers/input/touchscreen/FT8716/Makefile b/drivers/input/touchscreen/FT8716/Makefile new file mode 100755 index 0000000000000..eaab65495f13f --- /dev/null +++ b/drivers/input/touchscreen/FT8716/Makefile @@ -0,0 +1,18 @@ +# +# Makefile for the focaltech touchscreen drivers. +# + +# Each configuration option enables a list of files. + +obj-$(CONFIG_TOUCHSCREEN_FTS) += focaltech_core.o +obj-$(CONFIG_TOUCHSCREEN_FTS) += focaltech_ex_fun.o +obj-$(CONFIG_TOUCHSCREEN_FTS) += focaltech_ex_mode.o +obj-$(CONFIG_TOUCHSCREEN_FTS) += focaltech_flash.o +obj-$(CONFIG_TOUCHSCREEN_FTS) += focaltech_gesture.o +obj-$(CONFIG_TOUCHSCREEN_FTS) += focaltech_esdcheck.o +obj-$(CONFIG_TOUCHSCREEN_FTS) += focaltech_i2c.o +obj-$(CONFIG_TOUCHSCREEN_FTS) += focaltech_sensor.o +obj-$(CONFIG_TOUCHSCREEN_FTS) += focaltech_point_report_check.o +obj-$(CONFIG_TOUCHSCREEN_FTS) += focaltech_flash/ +obj-$(CONFIG_TOUCHSCREEN_FTS) += focaltech_test/ + diff --git a/drivers/input/touchscreen/FT8716/focaltech_common.h b/drivers/input/touchscreen/FT8716/focaltech_common.h new file mode 100755 index 0000000000000..3f9abc44ba1d3 --- /dev/null +++ b/drivers/input/touchscreen/FT8716/focaltech_common.h @@ -0,0 +1,221 @@ +/* + * + * FocalTech fts TouchScreen driver. + * + * Copyright (c) 2010-2017, Focaltech Ltd. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ +/***************************************************************************** +* +* File Name: focaltech_common.h +* +* Author: Focaltech Driver Team +* +* Created: 2016-08-16 +* +* Abstract: +* +* Reference: +* +*****************************************************************************/ + +#ifndef __LINUX_FOCALTECH_COMMON_H__ +#define __LINUX_FOCALTECH_COMMON_H__ + +#include "focaltech_config.h" + +/***************************************************************************** +* Macro definitions using #define +*****************************************************************************/ +#define FTS_DRIVER_VERSION "Focaltech V1.3 20170306" + +#define FLAGBIT(x) (0x00000001 << (x)) +#define FLAGBITS(x, y) ((0xFFFFFFFF >> (32 - (y) - 1)) << (x)) + +#define FLAG_ICSERIALS_LEN 5 +#define FLAG_IDC_BIT 11 + +#define IC_SERIALS (FTS_CHIP_TYPE & FLAGBITS(0, FLAG_ICSERIALS_LEN-1)) +#define FTS_CHIP_IDC ((FTS_CHIP_TYPE & FLAGBIT(FLAG_IDC_BIT)) == FLAGBIT(FLAG_IDC_BIT)) + +#define FTS_CHIP_TYPE_MAPPING {{0x05, 0x86, 0x13, 0x87, 0x16, 0x87, 0xA6, 0x00, 0x00} } + +#define I2C_BUFFER_LENGTH_MAXINUM 256 +#define FILE_NAME_LENGTH 128 +#define ENABLE 1 +#define DISABLE 0 +/*register address*/ +#define FTS_REG_INT_CNT 0x8F +#define FTS_REG_FLOW_WORK_CNT 0x91 +#define FTS_REG_WORKMODE 0x00 +#define FTS_REG_WORKMODE_FACTORY_VALUE 0x40 +#define FTS_REG_WORKMODE_WORK_VALUE 0x00 +#define FTS_REG_CHIP_ID 0xA3 +#define FTS_REG_CHIP_ID2 0x9F +#define FTS_REG_POWER_MODE 0xA5 +#define FTS_REG_POWER_MODE_SLEEP_VALUE 0x03 +#define FTS_REG_FW_VER 0xA6 +#define FTS_REG_VENDOR_ID 0xA8 +#define FTS_REG_LCD_BUSY_NUM 0xAB +#define FTS_REG_FACE_DEC_MODE_EN 0xB0 +#define FTS_REG_GLOVE_MODE_EN 0xC0 +#define FTS_REG_COVER_MODE_EN 0xC1 +#define FTS_REG_CHARGER_MODE_EN 0x8B +#define FTS_REG_GESTURE_EN 0xD0 +#define FTS_REG_GESTURE_OUTPUT_ADDRESS 0xD3 +#define FTS_REG_ESD_SATURATE 0xED + + + +/***************************************************************************** +* Alternative mode (When something goes wrong, the modules may be able to solve the problem.) +*****************************************************************************/ +/* + * point report check + * default: disable + */ +#define FTS_POINT_REPORT_CHECK_EN 0 + + +/***************************************************************************** +* Global variable or extern global variabls/functions +*****************************************************************************/ +struct ft_chip_t { + unsigned long type; + unsigned char chip_idh; + unsigned char chip_idl; + unsigned char rom_idh; + unsigned char rom_idl; + unsigned char pramboot_idh; + unsigned char pramboot_idl; + unsigned char bootloader_idh; + unsigned char bootloader_idl; +}; + +/* i2c communication*/ +int fts_i2c_write_reg(struct i2c_client *client, u8 regaddr, u8 regvalue); +int fts_i2c_read_reg(struct i2c_client *client, u8 regaddr, u8 *regvalue); +int fts_i2c_read(struct i2c_client *client, char *writebuf, int writelen, char *readbuf, int readlen); +int fts_i2c_write(struct i2c_client *client, char *writebuf, int writelen); +int fts_i2c_init(void); +int fts_i2c_exit(void); + +/* Gesture functions */ +#if FTS_GESTURE_EN +int fts_gesture_init(struct input_dev *input_dev, struct i2c_client *client); +int fts_gesture_exit(struct i2c_client *client); +void fts_gesture_recovery(struct i2c_client *client); +int fts_gesture_readdata(struct i2c_client *client); +int fts_gesture_suspend(struct i2c_client *i2c_client); +int fts_gesture_resume(struct i2c_client *client); +#endif + +/* Apk and functions */ +#if FTS_APK_NODE_EN +int fts_create_apk_debug_channel(struct i2c_client *client); +void fts_release_apk_debug_channel(void); +#endif + +/* ADB functions */ +#if FTS_SYSFS_NODE_EN +int fts_create_sysfs(struct i2c_client *client); +int fts_remove_sysfs(struct i2c_client *client); +#endif + +/* ESD */ +#if FTS_ESDCHECK_EN +int fts_esdcheck_init(void); +int fts_esdcheck_exit(void); +int fts_esdcheck_switch(bool enable); +int fts_esdcheck_proc_busy(bool proc_debug); +int fts_esdcheck_set_intr(bool intr); +int fts_esdcheck_suspend(void); +int fts_esdcheck_resume(void); +int fts_esdcheck_get_status(void); +#endif + +/* Production test */ +#if FTS_TEST_EN +int fts_test_init(struct i2c_client *client); +int fts_test_exit(struct i2c_client *client); +#endif + +#if FTS_LOCK_DOWN_INFO +int fts_lockdown_init(struct i2c_client *client); +#endif + +#if FTS_CAT_RAWDATA +int fts_rawdata_init(struct i2c_client *client); +#endif +/* Point Report Check*/ +#if FTS_POINT_REPORT_CHECK_EN +int fts_point_report_check_init(void); +int fts_point_report_check_exit(void); +void fts_point_report_check_queue_work(void); +#endif + +/* Other */ +extern int g_show_log; +int fts_reset_proc(int hdelayms); +int fts_wait_tp_to_valid(struct i2c_client *client); +void fts_tp_state_recovery(struct i2c_client *client); +int fts_ex_mode_init(struct i2c_client *client); +int fts_ex_mode_exit(struct i2c_client *client); +int fts_ex_mode_recovery(struct i2c_client *client); + +void fts_irq_disable(void); +void fts_irq_enable(void); + +/***************************************************************************** +* DEBUG function define here +*****************************************************************************/ +#if FTS_DEBUG_EN +#define FTS_DEBUG_LEVEL 1 + +#if (FTS_DEBUG_LEVEL == 2) +#define FTS_DEBUG(fmt, args...) printk(KERN_ERR "[FTS][%s]"fmt"\n", __func__, ##args) +#define FTS_FUNC_ENTER() printk(KERN_ERR "[FTS]%s: Enter\n", __func__) +#define FTS_FUNC_EXIT() printk(KERN_ERR "[FTS]%s: Exit(%d)\n", __func__, __LINE__) +#else +#define FTS_DEBUG(fmt, args...) printk(KERN_ERR "[FTS]"fmt"\n", ##args) +#define FTS_FUNC_ENTER() +#define FTS_FUNC_EXIT() +#endif + +#else +#define FTS_DEBUG(fmt, args...) +#define FTS_FUNC_ENTER() +#define FTS_FUNC_EXIT() +#endif + +#define FTS_INFO(fmt, args...) do { \ + if (g_show_log) {printk(KERN_ERR "[FTS][Info]"fmt"\n", ##args); } \ + } while (0) + +#define FTS_ERROR(fmt, args...) do { \ + if (g_show_log) {printk(KERN_ERR "[FTS][Error]"fmt"\n", ##args); } \ + } while (0) + + +#if FTS_GESTURE_EN +#define GESTURE_NODE "onoff" +#define GESTURE_DATA "data" +#define DOUBLE_CLICK 143 +struct gesture_struct { + int gesture_all_switch; + unsigned long gesture_mask; +}; +#endif + +#endif /* __LINUX_FOCALTECH_COMMON_H__ */ + diff --git a/drivers/input/touchscreen/FT8716/focaltech_config.h b/drivers/input/touchscreen/FT8716/focaltech_config.h new file mode 100755 index 0000000000000..5892431914f81 --- /dev/null +++ b/drivers/input/touchscreen/FT8716/focaltech_config.h @@ -0,0 +1,261 @@ +/* + * + * FocalTech TouchScreen driver. + * + * Copyright (c) 2010-2017, FocalTech Systems, Ltd., all rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ +/************************************************************************ +* +* File Name: focaltech_config.h +* +* Author: Focaltech Driver Team +* +* Created: 2016-08-08 +* +* Abstract: global configurations +* +* Version: v1.0 +* +************************************************************************/ +#ifndef _LINUX_FOCLATECH_CONFIG_H_ +#define _LINUX_FOCLATECH_CONFIG_H_ + +/**************************************************/ +/****** G: A, I: B, S: C, U: D ******************/ +/****** chip type defines, do not modify *********/ +#define _FT8716 0x87160805 +#define _FT8736 0x87360806 +#define _FT8006 0x80060807 +#define _FT8606 0x86060808 +#define _FT8607 0x86070809 +#define _FTE716 0xE716080a + +#define _FT5416 0x54160002 +#define _FT5426 0x54260002 +#define _FT5435 0x54350002 +#define _FT5436 0x54360002 +#define _FT5526 0x55260002 +#define _FT5526I 0x5526B002 +#define _FT5446 0x54460002 +#define _FT5346 0x53460002 +#define _FT5446I 0x5446B002 +#define _FT5346I 0x5346B002 +#define _FT7661 0x76610002 +#define _FT7511 0x75110002 +#define _FT7421 0x74210002 +#define _FT7681 0x76810002 +#define _FT3C47U 0x3C47D002 +#define _FT3417 0x34170002 +#define _FT3517 0x35170002 +#define _FT3327 0x33270002 +#define _FT3427 0x34270002 + +#define _FT5626 0x56260001 +#define _FT5726 0x57260001 +#define _FT5826B 0x5826B001 +#define _FT5826S 0x5826C001 +#define _FT7811 0x78110001 +#define _FT3D47 0x3D470001 +#define _FT3617 0x36170001 +#define _FT3717 0x37170001 +#define _FT3817B 0x3817B001 + +#define _FT6236U 0x6236D003 +#define _FT6336G 0x6336A003 +#define _FT6336U 0x6336D003 +#define _FT6436U 0x6436D003 + +#define _FT3267 0x32670004 +#define _FT3367 0x33670004 + + + +/*************************************************/ + +/* + * choose your ic chip type of focaltech + */ +#define FTS_CHIP_TYPE _FT8716 + +/******************* Enables *********************/ +/*********** 1 to enable, 0 to disable ***********/ + +/* + * show debug log info + * enable it for debug, disable it for release + */ +#define FTS_DEBUG_EN 1 + +#define FTS_LOCK_DOWN_INFO 1 + +#define FTS_CAT_RAWDATA 1 + +/* + * Linux MultiTouch Protocol + * 1: Protocol B(default), 0: Protocol A + */ + +#define FTS_MT_PROTOCOL_B_EN 0 + + +/* + * Report Pressure in multitouch + * 1:enable(default),0:disable +*/ +#define FTS_REPORT_PRESSURE_EN 1 + +/* + * Force touch support + * different pressure for multitouch + * 1: true pressure for force touch + * 0: constant pressure(default) + */ +#define FTS_FORCE_TOUCH_EN 0 + +/* + * Gesture function enable + * default: disable + */ +#define FTS_GESTURE_EN 1 + +/* + * ESD check & protection + * default: disable + */ +#define FTS_ESDCHECK_EN 1 + +/* + * Production test enable + * 1: enable, 0:disable(default) + */ +#define FTS_TEST_EN 1 + +/* + * Glove mode enable + * 1: enable, 0:disable(default) + */ +#define FTS_GLOVE_EN 0 +/* + * cover enable + * 1: enable, 0:disable(default) + */ +#define FTS_COVER_EN 0 +/* + * Charger enable + * 1: enable, 0:disable(default) + */ +#define FTS_CHARGER_EN 0 + +/* + * Proximity sensor + * default: disable + */ +#define FTS_PSENSOR_EN 0 + +/* + * Nodes for tools, please keep enable + */ +#define FTS_SYSFS_NODE_EN 1 +#define FTS_APK_NODE_EN 1 + +/* + * Customer power enable + * enable it when customer need control TP power + * default: disable + */ +#define FTS_POWER_SOURCE_CUST_EN 1 + +/****************************************************/ + +/********************** Upgrade ****************************/ +/* + * auto upgrade, please keep enable + */ +#ifdef WT_COMPILE_FACTORY_VERSION + #define FTS_AUTO_UPGRADE_EN 0 +#else + #define FTS_AUTO_UPGRADE_EN 1 +#endif + +/* + * auto upgrade for lcd cfg + * default: 0 + */ +#define FTS_AUTO_UPGRADE_FOR_LCD_CFG_EN 0 + +/* auto cb check + * default: disable + */ +#define FTS_AUTO_CLB_EN 0 + +/* + * Check vendor_id number + * 0:No check vendor_id (default) + * 1/2/3: Check vendor_id for vendor compatibility + */ +#define FTS_GET_VENDOR_ID_NUM 0 + +/* + * vendor_id(s) for vendor(s) to be compatible with. + * a confirmation of vendor_id(s) is recommended. + * FTS_GET_VENDOR_ID_NUM == 0, no check vendor id, you may ignore them + * FTS_GET_VENDOR_ID_NUM >= 1, compatible with FTS_VENDOR_1_ID + * FTS_GET_VENDOR_ID_NUM >= 2, compatible with FTS_VENDOR_2_ID + * FTS_GET_VENDOR_ID_NUM == 3, compatible with FTS_VENDOR_3_ID + */ +#define FTS_VENDOR_1_ID 0x00 +#define FTS_VENDOR_2_ID 0x00 +#define FTS_VENDOR_3_ID 0x00 + +/* + * FW_APP.i file for auto upgrade, you must replace it with your own + * define your own fw_app, the sample one to be replaced is invalid + * NOTE: if FTS_GET_VENDOR_ID_NUM >= 1, it's the fw corresponding with FTS_VENDOR_1_ID + */ +#define FTS_UPGRADE_FW_APP_EBBG "include/firmware/FT8716_app_ebbg_sample.i" +#define FTS_UPGRADE_FW_APP_CSOT "include/firmware/FT8716_app_csot_sample.i" + + +/* + * if FTS_GET_VENDOR_ID_NUM >= 2, fw corrsponding with FTS_VENDOR_2_ID + * define your own fw_app, the sample one is invalid + */ +#define FTS_UPGRADE_FW2_APP "include/firmware/FT8716_app_sample.i" + +/* + * if FTS_GET_VENDOR_ID_NUM == 3, fw corrsponding with FTS_VENDOR_3_ID + * define your own fw_app, the sample one is invalid + */ +#define FTS_UPGRADE_FW3_APP "include/firmware/FT8716_app_sample.i" + +/* + * lcd_cfg.i file for lcd cfg upgrade + * define your own lcd_cfg.i, the sample one is invalid + */ + + + +/* + * upgrade stress test for debug + * enable it for upgrade debug if needed + * default: disable + */ +#define FTS_UPGRADE_STRESS_TEST 0 +/* stress test times, default: 1000 */ +#define FTS_UPGRADE_TEST_NUMBER 1000 + +/*********************************************************/ + +#endif /* _LINUX_FOCLATECH_CONFIG_H_ */ + diff --git a/drivers/input/touchscreen/FT8716/focaltech_core.c b/drivers/input/touchscreen/FT8716/focaltech_core.c new file mode 100755 index 0000000000000..23356e002722d --- /dev/null +++ b/drivers/input/touchscreen/FT8716/focaltech_core.c @@ -0,0 +1,1723 @@ +/* + * + * FocalTech TouchScreen driver. + * + * Copyright (c) 2010-2017, FocalTech Systems, Ltd., all rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ +/***************************************************************************** +* +* File Name: focaltech_core.c +* +* Author: Focaltech Driver Team +* +* Created: 2016-08-08 +* +* Abstract: +* +* Reference: +* +*****************************************************************************/ + +/***************************************************************************** +* Included header files +*****************************************************************************/ +#include "focaltech_core.h" +#if FTS_GESTURE_EN +extern struct gesture_struct gesture_data; +#define MXT_INPUT_EVENT_START 0 +#define MXT_INPUT_EVENT_SENSITIVE_MODE_OFF 0 +#define MXT_INPUT_EVENT_SENSITIVE_MODE_ON 1 +#define MXT_INPUT_EVENT_STYLUS_MODE_OFF 2 +#define MXT_INPUT_EVENT_STYLUS_MODE_ON 3 +#define MXT_INPUT_EVENT_WAKUP_MODE_OFF 4 +#define MXT_INPUT_EVENT_WAKUP_MODE_ON 5 +#define MXT_INPUT_EVENT_EDGE_DISABLE 6 +#define MXT_INPUT_EVENT_EDGE_FINGER 7 +#define MXT_INPUT_EVENT_EDGE_HANDGRIP 8 +#define MXT_INPUT_EVENT_EDGE_FINGER_HANDGRIP 9 +#define MXT_INPUT_EVENT_END 9 +#endif +#if defined(CONFIG_FB) +#include +#include +#elif defined(CONFIG_HAS_EARLYSUSPEND) +#include +#define FTS_SUSPEND_LEVEL 1 /* Early-suspend level */ +#endif +#include +/***************************************************************************** +* Private constant and macro definitions using #define +*****************************************************************************/ +#define FTS_DRIVER_NAME "fts_ts" +#define INTERVAL_READ_REG 20 +#define TIMEOUT_READ_REG 300 +#if FTS_POWER_SOURCE_CUST_EN +#define FTS_VTG_MIN_UV 1600000 +#define FTS_VTG_MAX_UV 2000000 +#define FTS_I2C_VTG_MIN_UV 1800000 +#define FTS_I2C_VTG_MAX_UV 1800000 +#endif +#define FTS_READ_TOUCH_BUFFER_DIVIDED 0 +/***************************************************************************** +* Global variable or extern global variabls/functions +******************************************************************************/ +struct i2c_client *fts_i2c_client; +struct fts_ts_data *fts_wq_data; +struct input_dev *fts_input_dev; +extern char Lcm_name[HARDWARE_MAX_ITEM_LONGTH]; + +#if FTS_DEBUG_EN +int g_show_log = 1; +#else +int g_show_log = 0; +#endif + +#if (FTS_DEBUG_EN && (FTS_DEBUG_LEVEL == 2)) +char g_sz_debug[1024] = {0}; +#endif + +/***************************************************************************** +* Static function prototypes +*****************************************************************************/ +static void fts_release_all_finger(void); +int fts_ts_suspend(struct device *dev); +static int fts_ts_resume(struct device *dev); + +#define PINCTRL_STATE_ACTIVE "pmx_ts_active" +#define PINCTRL_STATE_SUSPEND "pmx_ts_suspend" +#define PINCTRL_STATE_RELEASE "pmx_ts_release" + + +extern int panel_dead2tp; + +/***************************************************************************** +* Name: fts_wait_tp_to_valid +* Brief: Read chip id until TP FW become valid, need call when reset/power on/resume... +* 1. Read Chip ID per INTERVAL_READ_REG(20ms) +* 2. Timeout: TIMEOUT_READ_REG(300ms) +* Input: +* Output: +* Return: 0 - Get correct Device ID +*****************************************************************************/ +int fts_wait_tp_to_valid(struct i2c_client *client) +{ + int ret = 0; + int cnt = 0; + u8 reg_value = 0; + + do { + ret = fts_i2c_read_reg(client, FTS_REG_CHIP_ID, ®_value); + if ((ret < 0) || (reg_value != chip_types.chip_idh)) { + FTS_INFO("TP Not Ready, ReadData = 0x%x", reg_value); + } else if (reg_value == chip_types.chip_idh) { + FTS_INFO("TP Ready, Device ID = 0x%x", reg_value); + return 0; + } + cnt++; + msleep(INTERVAL_READ_REG); + } while ((cnt * INTERVAL_READ_REG) < TIMEOUT_READ_REG); + + /* error: not get correct reg data */ + return -EPERM; +} + +/***************************************************************************** +* Name: fts_recover_state +* Brief: Need execute this function when reset +* Input: +* Output: +* Return: +*****************************************************************************/ +void fts_tp_state_recovery(struct i2c_client *client) +{ + /* wait tp stable */ + fts_wait_tp_to_valid(client); + /* recover TP charger state 0x8B */ + /* recover TP glove state 0xC0 */ + /* recover TP cover state 0xC1 */ + fts_ex_mode_recovery(client); + /* recover TP gesture state 0xD0 */ +#if FTS_GESTURE_EN + if (gesture_data.gesture_all_switch) + fts_gesture_recovery(client); +#endif +} + + +/***************************************************************************** +* Name: fts_reset_proc +* Brief: Execute reset operation +* Input: hdelayms - delay time unit:ms +* Output: +* Return: +*****************************************************************************/ +int fts_reset_proc(int hdelayms) +{ + gpio_direction_output(fts_wq_data->pdata->reset_gpio, 0); + msleep(20); + gpio_direction_output(fts_wq_data->pdata->reset_gpio, 1); + msleep(hdelayms); + + return 0; +} + +/***************************************************************************** +* Name: fts_irq_disable +* Brief: disable irq +* Input: +* sync: +* Output: +* Return: +*****************************************************************************/ +void fts_irq_disable(void) +{ + unsigned long irqflags; + spin_lock_irqsave(&fts_wq_data->irq_lock, irqflags); + + if (!fts_wq_data->irq_disable) { + disable_irq_nosync(fts_wq_data->client->irq); + fts_wq_data->irq_disable = 1; + } + + spin_unlock_irqrestore(&fts_wq_data->irq_lock, irqflags); +} + +/***************************************************************************** +* Name: fts_irq_enable +* Brief: enable irq +* Input: +* Output: +* Return: +*****************************************************************************/ +void fts_irq_enable(void) +{ + unsigned long irqflags = 0; + spin_lock_irqsave(&fts_wq_data->irq_lock, irqflags); + + if (fts_wq_data->irq_disable) { + enable_irq(fts_wq_data->client->irq); + fts_wq_data->irq_disable = 0; + } + + spin_unlock_irqrestore(&fts_wq_data->irq_lock, irqflags); +} + +#if FTS_GESTURE_EN +static int fts_input_event(struct input_dev *dev, + unsigned int type, unsigned int code, int value) +{ + char buffer[16]; + + if (type == EV_SYN && code == SYN_CONFIG) { + sprintf(buffer, "%d", value); + + FTS_INFO("FTS:Gesture on/off : %d", value); + if (value >= MXT_INPUT_EVENT_START && value <= MXT_INPUT_EVENT_END) { + if (value == MXT_INPUT_EVENT_WAKUP_MODE_ON) { + gesture_data.gesture_all_switch = 1; + } else if (value == MXT_INPUT_EVENT_WAKUP_MODE_OFF) { + gesture_data.gesture_all_switch = 0; + } else { + gesture_data.gesture_all_switch = 0; + FTS_ERROR("Failed Open/Close Gesture Function!\n"); + return -ENOMEM; + } + } + } + + return 0; +} +#endif + +/***************************************************************************** +* Name: fts_input_dev_init +* Brief: input dev init +* Input: +* Output: +* Return: +*****************************************************************************/ +static int fts_input_dev_init(struct i2c_client *client, struct fts_ts_data *data, struct input_dev *input_dev, struct fts_ts_platform_data *pdata) +{ + int err, len; + + FTS_FUNC_ENTER(); + + /* Init and register Input device */ + input_dev->name = FTS_DRIVER_NAME; + input_dev->id.bustype = BUS_I2C; + input_dev->dev.parent = &client->dev; +#if FTS_GESTURE_EN + input_dev->event = fts_input_event; +#endif + + input_set_drvdata(input_dev, data); + i2c_set_clientdata(client, data); + + __set_bit(EV_KEY, input_dev->evbit); + if (data->pdata->have_key) { + FTS_DEBUG("set key capabilities"); + for (len = 0; len < data->pdata->key_number; len++) { + input_set_capability(input_dev, EV_KEY, data->pdata->keys[len]); + } + } + __set_bit(EV_ABS, input_dev->evbit); + __set_bit(BTN_TOUCH, input_dev->keybit); + __set_bit(INPUT_PROP_DIRECT, input_dev->propbit); + +#if FTS_MT_PROTOCOL_B_EN + input_mt_init_slots(input_dev, pdata->max_touch_number, INPUT_MT_DIRECT); +#else + input_set_abs_params(input_dev, ABS_MT_TRACKING_ID, 0, 0x0f, 0, 0); +#endif + input_set_abs_params(input_dev, ABS_MT_POSITION_X, pdata->x_min, pdata->x_max, 0, 0); + input_set_abs_params(input_dev, ABS_MT_POSITION_Y, pdata->y_min, pdata->y_max, 0, 0); + input_set_abs_params(input_dev, ABS_MT_TOUCH_MAJOR, 0, 0xFF, 0, 0); +#if FTS_REPORT_PRESSURE_EN + input_set_abs_params(input_dev, ABS_MT_PRESSURE, 0, 0xFF, 0, 0); +#endif + + err = input_register_device(input_dev); + if (err) { + FTS_ERROR("Input device registration failed"); + goto free_inputdev; + } + + FTS_FUNC_EXIT(); + + return 0; + +free_inputdev: + input_free_device(input_dev); + FTS_FUNC_EXIT(); + return err; + +} + +/***************************************************************************** +* Power Control +*****************************************************************************/ +#if FTS_POWER_SOURCE_CUST_EN +static int fts_power_source_init(struct fts_ts_data *data) +{ + int rc; + + FTS_FUNC_ENTER(); + + data->vcc_i2c = regulator_get(&data->client->dev, "vcc_i2c"); + if (IS_ERR(data->vcc_i2c)) { + rc = PTR_ERR(data->vcc_i2c); + FTS_ERROR("Regulator get failed vcc_i2c rc=%d", rc); + goto reg_vdd_set_vtg; + } + + data->lab = regulator_get(&data->client->dev, "lab"); + if (IS_ERR(data->lab)) { + rc = PTR_ERR(data->lab); + FTS_ERROR("Regulator get failed lab rc=%d", rc); + } + + data->ibb = regulator_get(&data->client->dev, "ibb"); + if (IS_ERR(data->ibb)) { + rc = PTR_ERR(data->ibb); + FTS_ERROR("Regulator get failed ibb rc=%d", rc); + } + data->panel_iovdd = regulator_get(&data->client->dev, "panel_iovdd"); + if (IS_ERR(data->panel_iovdd)) { + + FTS_ERROR("!!! panel_iovdd not present !!!"); + } + + FTS_FUNC_EXIT(); + return 0; + + + +reg_vdd_set_vtg: + if (regulator_count_voltages(data->vdd) > 0) + regulator_set_voltage(data->vdd, 0, FTS_VTG_MAX_UV); + + + FTS_FUNC_EXIT(); + return rc; +} + +static int fts_power_source_ctrl(struct fts_ts_data *data, int enable) +{ + int rc; + + FTS_FUNC_ENTER(); + if (enable) { + rc = regulator_enable(data->vcc_i2c); + if (rc) { + FTS_ERROR("Regulator vcc_i2c enable failed rc=%d", rc); + } + } else { + rc = regulator_disable(data->vcc_i2c); + if (rc) { + FTS_ERROR("Regulator vcc_i2c disable failed rc=%d", rc); + } + } + FTS_FUNC_EXIT(); + return 0; +} + +static int lcd_power_ctrl(struct fts_ts_data *data, int enable) +{ + int rc; + + FTS_FUNC_ENTER(); + if (enable) { + rc = regulator_enable(data->panel_iovdd); + if (rc) { + FTS_ERROR("Regulator panel_iovdd enable failed rc=%d\n", rc); + } + + rc = regulator_enable(data->lab); + if (rc) { + FTS_ERROR("Regulator labenable failed rc=%d\n", rc); + } + + rc = regulator_enable(data->ibb); + if (rc) { + FTS_ERROR("Regulator ibb enable failed rc=%d\n", rc); + } + } else { + rc = regulator_disable(data->lab); + if (rc) { + FTS_ERROR("Regulator lab disable failed rc=%d\n", rc); + } + + rc = regulator_disable(data->ibb); + if (rc) { + FTS_ERROR("Regulator ibb disable failed rc=%d\n", rc); + } + + mdelay(10); + rc = regulator_disable(data->panel_iovdd); + if (rc) { + FTS_ERROR("Regulator panel_iovdd disable failed rc=%d\n", rc); + } + + } + FTS_FUNC_EXIT(); + return 0; +} + + +#endif + + +/***************************************************************************** +* Reprot related +*****************************************************************************/ +/***************************************************************************** +* Name: fts_release_all_finger +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +static void fts_release_all_finger(void) +{ +#if FTS_MT_PROTOCOL_B_EN + unsigned int finger_count = 0; +#endif + + mutex_lock(&fts_wq_data->report_mutex); +#if FTS_MT_PROTOCOL_B_EN + for (finger_count = 0; finger_count < fts_wq_data->pdata->max_touch_number; finger_count++) { + input_mt_slot(fts_input_dev, finger_count); + input_mt_report_slot_state(fts_input_dev, MT_TOOL_FINGER, false); + } +#else + input_mt_sync(fts_input_dev); +#endif + input_report_key(fts_input_dev, BTN_TOUCH, 0); + input_sync(fts_input_dev); + mutex_unlock(&fts_wq_data->report_mutex); +} + + +#if (FTS_DEBUG_EN && (FTS_DEBUG_LEVEL == 2)) +static void fts_show_touch_buffer(u8 *buf, int point_num) +{ + int len = point_num * FTS_ONE_TCH_LEN; + int count = 0; + int i; + + memset(g_sz_debug, 0, 1024); + if (len > (POINT_READ_BUF-3)) { + len = POINT_READ_BUF-3; + } else if (len == 0) { + len += FTS_ONE_TCH_LEN; + } + count += sprintf(g_sz_debug, "%02X,%02X,%02X", buf[0], buf[1], buf[2]); + for (i = 0; i < len; i++) { + count += sprintf(g_sz_debug+count, ",%02X", buf[i+3]); + } + +} +#endif + +static int fts_input_dev_report_key_event(struct ts_event *event, struct fts_ts_data *data) +{ + int i; + + if (data->pdata->have_key) { + if ((1 == event->touch_point || 1 == event->point_num) && + (event->au16_y[0] == data->pdata->key_y_coord)) { + + if (event->point_num == 0) { + FTS_DEBUG("Keys All Up!"); + for (i = 0; i < data->pdata->key_number; i++) { + input_report_key(data->input_dev, data->pdata->keys[i], 0); + } + } else { + for (i = 0; i < data->pdata->key_number; i++) { + if (event->au16_x[0] > (data->pdata->key_x_coords[i] - FTS_KEY_WIDTH) && + event->au16_x[0] < (data->pdata->key_x_coords[i] + FTS_KEY_WIDTH)) { + + if (event->au8_touch_event[i] == 0 || + event->au8_touch_event[i] == 2) { + input_report_key(data->input_dev, data->pdata->keys[i], 1); + FTS_DEBUG("Key%d(%d, %d) DOWN!", i, event->au16_x[0], event->au16_y[0]); + } else { + input_report_key(data->input_dev, data->pdata->keys[i], 0); + FTS_DEBUG("Key%d(%d, %d) Up!", i, event->au16_x[0], event->au16_y[0]); + } + break; + } + } + } + input_sync(data->input_dev); + return 0; + } + } + + return -EPERM; +} + +#if FTS_MT_PROTOCOL_B_EN +static int fts_input_dev_report_b(struct ts_event *event, struct fts_ts_data *data) +{ + int i = 0; + int uppoint = 0; + int touchs = 0; + for (i = 0; i < event->touch_point; i++) { + if (event->au8_finger_id[i] >= data->pdata->max_touch_number) { + break; + } + input_mt_slot(data->input_dev, event->au8_finger_id[i]); + + if (event->au8_touch_event[i] == FTS_TOUCH_DOWN || event->au8_touch_event[i] == FTS_TOUCH_CONTACT) { + input_mt_report_slot_state(data->input_dev, MT_TOOL_FINGER, true); + +#if FTS_REPORT_PRESSURE_EN +#if FTS_FORCE_TOUCH_EN + if (event->pressure[i] <= 0) { + FTS_ERROR("[B]Illegal pressure: %d", event->pressure[i]); + event->pressure[i] = 1; + } +#else + event->pressure[i] = 0x3f; +#endif + input_report_abs(data->input_dev, ABS_MT_PRESSURE, event->pressure[i]); +#endif + + if (event->area[i] <= 0) { + FTS_ERROR("[B]Illegal touch-major: %d", event->area[i]); + event->area[i] = 1; + } + input_report_abs(data->input_dev, ABS_MT_TOUCH_MAJOR, event->area[i]); + + input_report_abs(data->input_dev, ABS_MT_POSITION_X, event->au16_x[i]); + input_report_abs(data->input_dev, ABS_MT_POSITION_Y, event->au16_y[i]); + touchs |= BIT(event->au8_finger_id[i]); + data->touchs |= BIT(event->au8_finger_id[i]); + +#if FTS_REPORT_PRESSURE_EN + + +#else + +#endif + } else { + uppoint++; + input_mt_report_slot_state(data->input_dev, MT_TOOL_FINGER, false); +#if FTS_REPORT_PRESSURE_EN + input_report_abs(data->input_dev, ABS_MT_PRESSURE, 0); +#endif + data->touchs &= ~BIT(event->au8_finger_id[i]); + + } + } + + if (unlikely(data->touchs ^ touchs)) { + for (i = 0; i < data->pdata->max_touch_number; i++) { + if (BIT(i) & (data->touchs ^ touchs)) { + + input_mt_slot(data->input_dev, i); + input_mt_report_slot_state(data->input_dev, MT_TOOL_FINGER, false); +#if FTS_REPORT_PRESSURE_EN + input_report_abs(data->input_dev, ABS_MT_PRESSURE, 0); +#endif + } + } + } + + data->touchs = touchs; + if (event->touch_point == uppoint) { + + input_report_key(data->input_dev, BTN_TOUCH, 0); + } else { + input_report_key(data->input_dev, BTN_TOUCH, event->touch_point > 0); + } + + input_sync(data->input_dev); + + return 0; + +} + +#else +static int fts_input_dev_report_a(struct ts_event *event, struct fts_ts_data *data) +{ + int i = 0; + int uppoint = 0; + int touchs = 0; + for (i = 0; i < event->touch_point; i++) { + + if (event->au8_touch_event[i] == FTS_TOUCH_DOWN || event->au8_touch_event[i] == FTS_TOUCH_CONTACT) { + input_report_abs(data->input_dev, ABS_MT_TRACKING_ID, event->au8_finger_id[i]); +#if FTS_REPORT_PRESSURE_EN +#if FTS_FORCE_TOUCH_EN + if (event->pressure[i] <= 0) { + FTS_ERROR("[B]Illegal pressure: %d", event->pressure[i]); + event->pressure[i] = 1; + } +#else + event->pressure[i] = 0x3f; +#endif + input_report_abs(data->input_dev, ABS_MT_PRESSURE, event->pressure[i]); +#endif + + if (event->area[i] <= 0) { + FTS_ERROR("[B]Illegal touch-major: %d", event->area[i]); + event->area[i] = 1; + } + input_report_abs(data->input_dev, ABS_MT_TOUCH_MAJOR, event->area[i]); + + input_report_abs(data->input_dev, ABS_MT_POSITION_X, event->au16_x[i]); + input_report_abs(data->input_dev, ABS_MT_POSITION_Y, event->au16_y[i]); + + input_mt_sync(data->input_dev); + +#if FTS_REPORT_PRESSURE_EN + + +#else + FTS_DEBUG("[B]P%d(%d, %d)[tm:%d] DOWN!", event->au8_finger_id[i], event->au16_x[i], event->au16_y[i], event->area[i]); +#endif + } else { + uppoint++; + } + } + + data->touchs = touchs; + if (event->touch_point == uppoint) { + + input_report_key(data->input_dev, BTN_TOUCH, 0); + input_mt_sync(data->input_dev); + } else { + input_report_key(data->input_dev, BTN_TOUCH, event->touch_point > 0); + } + + input_sync(data->input_dev); + + return 0; +} +#endif + +/***************************************************************************** +* Name: fts_read_touchdata +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +static int fts_read_touchdata(struct fts_ts_data *data) +{ + u8 buf[POINT_READ_BUF] = { 0 }; + u8 pointid = FTS_MAX_ID; + int ret = -1; + int i; + struct ts_event *event = &(data->event); + +#if FTS_GESTURE_EN + if (gesture_data.gesture_all_switch) { + u8 state; + if (data->suspended) { + fts_i2c_read_reg(data->client, FTS_REG_GESTURE_EN, &state); + if (state == 1) { + fts_gesture_readdata(data->client); + return 1; + } + } + } +#endif + +#if FTS_PSENSOR_EN + if ((fts_sensor_read_data(data) != 0) && (data->suspended == 1)) { + return 1; + } +#endif + + +#if FTS_READ_TOUCH_BUFFER_DIVIDED + memset(buf, 0xFF, POINT_READ_BUF); + memset(event, 0, sizeof(struct ts_event)); + + buf[0] = 0x00; + ret = fts_i2c_read(data->client, buf, 1, buf, (3 + FTS_ONE_TCH_LEN)); + if (ret < 0) { + FTS_ERROR("%s read touchdata failed.", __func__); + return ret; + } + event->touch_point = 0; + event->point_num = buf[FTS_TOUCH_POINT_NUM] & 0x0F; + if (event->point_num > data->pdata->max_touch_number) + event->point_num = data->pdata->max_touch_number; + + if (event->point_num > 1) { + buf[9] = 0x09; + fts_i2c_read(data->client, buf+9, 1, buf+9, (event->point_num - 1) * FTS_ONE_TCH_LEN); + } +#else + ret = fts_i2c_read(data->client, buf, 1, buf, POINT_READ_BUF); + if (ret < 0) { + FTS_ERROR("[B]Read touchdata failed, ret: %d", ret); + return ret; + } + +#if FTS_POINT_REPORT_CHECK_EN + fts_point_report_check_queue_work(); +#endif + + memset(event, 0, sizeof(struct ts_event)); + event->point_num = buf[FTS_TOUCH_POINT_NUM] & 0x0F; + if (event->point_num > data->pdata->max_touch_number) + event->point_num = data->pdata->max_touch_number; + event->touch_point = 0; +#endif + +#if (FTS_DEBUG_EN && (FTS_DEBUG_LEVEL == 2)) + fts_show_touch_buffer(buf, event->point_num); +#endif + + for (i = 0; i < data->pdata->max_touch_number; i++) { + pointid = (buf[FTS_TOUCH_ID_POS + FTS_ONE_TCH_LEN * i]) >> 4; + if (pointid >= FTS_MAX_ID) + break; + else + event->touch_point++; + + event->au16_x[i] = + (s16) (buf[FTS_TOUCH_X_H_POS + FTS_ONE_TCH_LEN * i] & 0x0F) << + 8 | (s16) buf[FTS_TOUCH_X_L_POS + FTS_ONE_TCH_LEN * i]; + event->au16_y[i] = + (s16) (buf[FTS_TOUCH_Y_H_POS + FTS_ONE_TCH_LEN * i] & 0x0F) << + 8 | (s16) buf[FTS_TOUCH_Y_L_POS + FTS_ONE_TCH_LEN * i]; + event->au8_touch_event[i] = + buf[FTS_TOUCH_EVENT_POS + FTS_ONE_TCH_LEN * i] >> 6; + event->au8_finger_id[i] = + (buf[FTS_TOUCH_ID_POS + FTS_ONE_TCH_LEN * i]) >> 4; + event->area[i] = + (buf[FTS_TOUCH_AREA_POS + FTS_ONE_TCH_LEN * i]) >> 4; + event->pressure[i] = + (s16) buf[FTS_TOUCH_PRE_POS + FTS_ONE_TCH_LEN * i]; + + if (0 == event->area[i]) + event->area[i] = 0x09; + + if (0 == event->pressure[i]) + event->pressure[i] = 0x3f; + + if ((event->au8_touch_event[i] == 0 || event->au8_touch_event[i] == 2) && (event->point_num == 0)) { + FTS_DEBUG("abnormal touch data from fw"); + return -EPERM; + } + } + if (event->touch_point == 0) { + return -EPERM; + } + return 0; +} + +/***************************************************************************** +* Name: fts_report_value +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +static void fts_report_value(struct fts_ts_data *data) +{ + struct ts_event *event = &data->event; + + + + + + if (0 == fts_input_dev_report_key_event(event, data)) { + return; + } + +#if FTS_MT_PROTOCOL_B_EN + fts_input_dev_report_b(event, data); +#else + fts_input_dev_report_a(event, data); +#endif + + + return; + +} + +/***************************************************************************** +* Name: fts_ts_interrupt +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +static irqreturn_t fts_ts_interrupt(int irq, void *dev_id) +{ + struct fts_ts_data *fts_ts = dev_id; + int ret = -1; + + if (!fts_ts) { + FTS_ERROR("[INTR]: Invalid fts_ts"); + return IRQ_HANDLED; + } + +#if FTS_ESDCHECK_EN + fts_esdcheck_set_intr(1); +#endif + + ret = fts_read_touchdata(fts_wq_data); + + if (ret == 0) { + mutex_lock(&fts_wq_data->report_mutex); + fts_report_value(fts_wq_data); + mutex_unlock(&fts_wq_data->report_mutex); + } + +#if FTS_ESDCHECK_EN + fts_esdcheck_set_intr(0); +#endif + + return IRQ_HANDLED; +} + +/***************************************************************************** +* Name: fts_gpio_configure +* Brief: Configure IRQ&RESET GPIO +* Input: +* Output: +* Return: +*****************************************************************************/ +static int fts_gpio_configure(struct fts_ts_data *data) +{ + int err = 0; + + FTS_FUNC_ENTER(); + /* request irq gpio */ + if (gpio_is_valid(data->pdata->irq_gpio)) { + err = gpio_request(data->pdata->irq_gpio, "fts_irq_gpio"); + if (err) { + FTS_ERROR("[GPIO]irq gpio request failed"); + goto err_irq_gpio_req; + } + + err = gpio_direction_input(data->pdata->irq_gpio); + if (err) { + FTS_ERROR("[GPIO]set_direction for irq gpio failed"); + goto err_irq_gpio_dir; + } + } + /* request reset gpio */ + if (gpio_is_valid(data->pdata->reset_gpio)) { + err = gpio_request(data->pdata->reset_gpio, "fts_reset_gpio"); + if (err) { + FTS_ERROR("[GPIO]reset gpio request failed"); + goto err_irq_gpio_dir; + } + + err = gpio_direction_output(data->pdata->reset_gpio, 1); + if (err) { + FTS_ERROR("[GPIO]set_direction for reset gpio failed"); + goto err_reset_gpio_dir; + } + } + + FTS_FUNC_EXIT(); + return 0; + +err_reset_gpio_dir: + if (gpio_is_valid(data->pdata->reset_gpio)) + gpio_free(data->pdata->reset_gpio); +err_irq_gpio_dir: + if (gpio_is_valid(data->pdata->irq_gpio)) + gpio_free(data->pdata->irq_gpio); +err_irq_gpio_req: + FTS_FUNC_EXIT(); + return err; +} + + +/***************************************************************************** +* Name: fts_get_dt_coords +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +static int fts_get_dt_coords(struct device *dev, char *name, + struct fts_ts_platform_data *pdata) { + u32 coords[FTS_COORDS_ARR_SIZE]; + struct property *prop; + struct device_node *np = dev->of_node; + int coords_size, rc; + + prop = of_find_property(np, name, NULL); + if (!prop) + return -EINVAL; + if (!prop->value) + return -ENODATA; + + + coords_size = prop->length / sizeof(u32); + if (coords_size != FTS_COORDS_ARR_SIZE) { + FTS_ERROR("invalid %s", name); + return -EINVAL; + } + + rc = of_property_read_u32_array(np, name, coords, coords_size); + if (rc && (rc != -EINVAL)) { + FTS_ERROR("Unable to read %s", name); + return rc; + } + + if (!strcmp(name, "focaltech,display-coords")) { + if (!strcmp(Lcm_name, "ft8613_ebbg_5p5_1080p_video")) { + pdata->x_min = 0; + pdata->y_min = 0; + pdata->x_max = 1080; + pdata->y_max = 1920; + } else { + pdata->x_min = coords[0]; + pdata->y_min = coords[1]; + pdata->x_max = coords[2]; + pdata->y_max = coords[3]; + } + FTS_INFO("Lcdname:%s \n", Lcm_name); + FTS_INFO("x_min:%d y_min:%d x_max:%d y_max:%d", pdata->x_min, pdata->y_min, pdata->x_max, pdata->y_max); + + } else { + FTS_ERROR("unsupported property %s", name); + return -EINVAL; + } + + return 0; +} + +/***************************************************************************** +* Name: fts_parse_dt +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +static int fts_parse_dt(struct device *dev, struct fts_ts_platform_data *pdata) +{ + int rc; + struct device_node *np = dev->of_node; + u32 temp_val; + + FTS_FUNC_ENTER(); + + rc = fts_get_dt_coords(dev, "focaltech,display-coords", pdata); + if (rc) + FTS_ERROR("Unable to get display-coords"); + + /* key */ + pdata->have_key = of_property_read_bool(np, "focaltech,have-key"); + if (pdata->have_key) { + rc = of_property_read_u32(np, "focaltech,key-number", &pdata->key_number); + if (rc) { + FTS_ERROR("Key number undefined!"); + } + rc = of_property_read_u32_array(np, "focaltech,keys", + pdata->keys, pdata->key_number); + if (rc) { + FTS_ERROR("Keys undefined!"); + } + rc = of_property_read_u32(np, "focaltech,key-y-coord", &pdata->key_y_coord); + if (rc) { + FTS_ERROR("Key Y Coord undefined!"); + } + rc = of_property_read_u32_array(np, "focaltech,key-x-coords", + pdata->key_x_coords, pdata->key_number); + if (rc) { + FTS_ERROR("Key X Coords undefined!"); + } + FTS_DEBUG("%d: (%d, %d, %d), [%d, %d, %d][%d]", + pdata->key_number, pdata->keys[0], pdata->keys[1], pdata->keys[2], + pdata->key_x_coords[0], pdata->key_x_coords[1], pdata->key_x_coords[2], + pdata->key_y_coord); + } + + /* reset, irq gpio info */ + pdata->reset_gpio = of_get_named_gpio_flags(np, "focaltech,reset-gpio", 0, &pdata->reset_gpio_flags); + if (pdata->reset_gpio < 0) { + FTS_ERROR("Unable to get reset_gpio"); + } + + pdata->irq_gpio = of_get_named_gpio_flags(np, "focaltech,irq-gpio", 0, &pdata->irq_gpio_flags); + if (pdata->irq_gpio < 0) { + FTS_ERROR("Unable to get irq_gpio"); + } + + rc = of_property_read_u32(np, "focaltech,max-touch-number", &temp_val); + if (!rc) { + pdata->max_touch_number = temp_val; + FTS_DEBUG("max_touch_number=%d", pdata->max_touch_number); + } else { + FTS_ERROR("Unable to get max-touch-number"); + pdata->max_touch_number = FTS_MAX_POINTS; + } + + + + FTS_FUNC_EXIT(); + return 0; +} + +#if defined(CONFIG_FB) +/***************************************************************************** +* Name: fb_notifier_callback +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +static int fb_notifier_callback(struct notifier_block *self, + unsigned long event, void *data) +{ + struct fb_event *evdata = data; + int *blank; + struct fts_ts_data *fts_data = + container_of(self, struct fts_ts_data, fb_notif); + + if (evdata && evdata->data && event == FB_EVENT_BLANK && + fts_data && fts_data->client) { + blank = evdata->data; + if (*blank == FB_BLANK_UNBLANK) + fts_ts_resume(&fts_data->client->dev); + else if (*blank == FB_BLANK_POWERDOWN) + fts_ts_suspend(&fts_data->client->dev); + } + + return 0; +} +#elif defined(CONFIG_HAS_EARLYSUSPEND) +/***************************************************************************** +* Name: fts_ts_early_suspend +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +static void fts_ts_early_suspend(struct early_suspend *handler) +{ + struct fts_ts_data *data = container_of(handler, + struct fts_ts_data, + early_suspend); + + fts_ts_suspend(&data->client->dev); +} + +/***************************************************************************** +* Name: fts_ts_late_resume +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +static void fts_ts_late_resume(struct early_suspend *handler) +{ + struct fts_ts_data *data = container_of(handler, + struct fts_ts_data, + early_suspend); + + fts_ts_resume(&data->client->dev); +} +#endif +#if 1 +static int fts_ts_pinctrl_init(struct fts_ts_data *data) +{ + int retval; + + /* Get pinctrl if target uses pinctrl */ + data->ts_pinctrl = devm_pinctrl_get(&(data->client->dev)); + if (IS_ERR_OR_NULL(data->ts_pinctrl)) { + retval = PTR_ERR(data->ts_pinctrl); + dev_dbg(&data->client->dev, + "Target does not use pinctrl %d\n", retval); + goto err_pinctrl_get; + } + + data->pinctrl_state_active + = pinctrl_lookup_state(data->ts_pinctrl, + PINCTRL_STATE_ACTIVE); + if (IS_ERR_OR_NULL(data->pinctrl_state_active)) { + retval = PTR_ERR(data->pinctrl_state_active); + dev_err(&data->client->dev, + "Can not lookup %s pinstate %d\n", + PINCTRL_STATE_ACTIVE, retval); + goto err_pinctrl_lookup; + } + + data->pinctrl_state_suspend + = pinctrl_lookup_state(data->ts_pinctrl, + PINCTRL_STATE_SUSPEND); + if (IS_ERR_OR_NULL(data->pinctrl_state_suspend)) { + retval = PTR_ERR(data->pinctrl_state_suspend); + dev_err(&data->client->dev, + "Can not lookup %s pinstate %d\n", + PINCTRL_STATE_SUSPEND, retval); + goto err_pinctrl_lookup; + } + + data->pinctrl_state_release + = pinctrl_lookup_state(data->ts_pinctrl, + PINCTRL_STATE_RELEASE); + if (IS_ERR_OR_NULL(data->pinctrl_state_release)) { + retval = PTR_ERR(data->pinctrl_state_release); + dev_dbg(&data->client->dev, + "Can not lookup %s pinstate %d\n", + PINCTRL_STATE_RELEASE, retval); + } + + return 0; + +err_pinctrl_lookup: + devm_pinctrl_put(data->ts_pinctrl); +err_pinctrl_get: + data->ts_pinctrl = NULL; + return retval; +} +#endif + +static void hardwareinfo_set(void *drv_data) +{ + char firmware_ver[HARDWARE_MAX_ITEM_LONGTH]; + char vendor_for_id[HARDWARE_MAX_ITEM_LONGTH]; + char ic_name[HARDWARE_MAX_ITEM_LONGTH]; + int err; + + u8 vendor_id; + u8 ic_type; + u8 fw_ver; + + fts_i2c_read_reg(fts_i2c_client, FTS_REG_VENDOR_ID, &vendor_id); + fts_i2c_read_reg(fts_i2c_client, FTS_REG_FW_VER, &fw_ver); + fts_i2c_read_reg(fts_i2c_client, FTS_REG_CHIP_ID, &ic_type); + + if (vendor_id == EBBG_VENDOR) { + snprintf(vendor_for_id, HARDWARE_MAX_ITEM_LONGTH, "EBBG"); + } else if (vendor_id == CSOT_VENDOR) { + snprintf(vendor_for_id, HARDWARE_MAX_ITEM_LONGTH, "CSOT"); + } else{ + snprintf(vendor_for_id, HARDWARE_MAX_ITEM_LONGTH, "Other vendor"); + } + + if (ic_type == TP_IC_FT8613) { + snprintf(ic_name, HARDWARE_MAX_ITEM_LONGTH, "FT8613"); + } else{ + snprintf(ic_name, HARDWARE_MAX_ITEM_LONGTH, "Other IC"); + } + + snprintf(firmware_ver, HARDWARE_MAX_ITEM_LONGTH, "%s, %s, FW:0x%x", vendor_for_id, ic_name, fw_ver); + FTS_INFO("firmware_ver=%s\n", firmware_ver); + + err = hardwareinfo_set_prop(HARDWARE_TP, firmware_ver); + if (err < 0) + return ; + + return ; + +} + + +#ifndef WT_COMPILE_FACTORY_VERSION +static int get_boot_mode(struct i2c_client *client) +{ + int ret; + char *cmdline_tp = NULL; + char *temp; + char cmd_line[15] = {'\0'}; + + cmdline_tp = strstr(saved_command_line, "androidboot.mode="); + if (cmdline_tp != NULL) { + temp = cmdline_tp + strlen("androidboot.mode="); + ret = strncmp(temp, "ffbm", strlen("ffbm")); + memcpy(cmd_line, temp, strlen("ffbm")); + FTS_INFO("cmd_line =%s \n", cmd_line); + if (ret == 0) { + FTS_INFO("mode: ffbm\n"); + return 1;/* factory mode*/ + } else { + FTS_INFO("mode: no ffbm\n"); + return 2;/* not factory mode*/ + } + } + FTS_INFO("Normal mode \n"); + + return 0; +} +#endif + +/***************************************************************************** +* Name: fts_ts_probe +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +static void fts_ts_shutdown(struct i2c_client *client) +{ + lcd_power_ctrl(fts_wq_data, 0); +} + +static int fts_ts_probe(struct i2c_client *client, const struct i2c_device_id *id) +{ + struct fts_ts_platform_data *pdata; + struct fts_ts_data *data; + struct input_dev *input_dev; + int err; + int i; + u8 reg_addr, reg_value; + + FTS_FUNC_ENTER(); + /* 1. Get Platform data */ + if (client->dev.of_node) { + pdata = devm_kzalloc(&client->dev, + sizeof(struct fts_ts_platform_data), + GFP_KERNEL); + if (!pdata) { + FTS_ERROR("[MEMORY]Failed to allocate memory"); + FTS_FUNC_EXIT(); + return -ENOMEM; + } + err = fts_parse_dt(&client->dev, pdata); + if (err) { + FTS_ERROR("[DTS]DT parsing failed"); + } + } else { + pdata = client->dev.platform_data; + } + + if (!pdata) { + FTS_ERROR("Invalid pdata"); + FTS_FUNC_EXIT(); + return -EINVAL; + } + + if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { + FTS_ERROR("I2C not supported"); + FTS_FUNC_EXIT(); + goto free_platform_data; + } + + data = devm_kzalloc(&client->dev, sizeof(struct fts_ts_data), GFP_KERNEL); + if (!data) { + FTS_ERROR("[MEMORY]Failed to allocate memory"); + FTS_FUNC_EXIT(); + return -ENOMEM; + } + + input_dev = input_allocate_device(); + if (!input_dev) { + FTS_ERROR("[INPUT]Failed to allocate input device"); + FTS_FUNC_EXIT(); + goto free_ts_data; + } + + + + data->input_dev = input_dev; + data->client = client; + data->pdata = pdata; + + fts_wq_data = data; + fts_i2c_client = client; + fts_input_dev = input_dev; + + spin_lock_init(&fts_wq_data->irq_lock); + mutex_init(&fts_wq_data->report_mutex); + + fts_input_dev_init(client, data, input_dev, pdata); + + fts_ctpm_get_upgrade_array(); + + err = fts_gpio_configure(data); + if (err < 0) { + FTS_ERROR("[GPIO]Failed to configure the gpios"); + goto input_destroy; + } + + msleep(1); + + +#if 1 + err = fts_ts_pinctrl_init(data); + if (!err && data->ts_pinctrl) { + /* + * Pinctrl handle is optional. If pinctrl handle is found + * let pins to be configured in active state. If not + * found continue further without error. + */ + err = pinctrl_select_state(data->ts_pinctrl, + data->pinctrl_state_active); + if (err < 0) { + dev_err(&client->dev, + "failed to select pin to active state"); + } + } +#endif + + +#if FTS_POWER_SOURCE_CUST_EN + fts_power_source_init(data); + fts_power_source_ctrl(data, 1); + lcd_power_ctrl(data, 1); +#endif + fts_reset_proc(200); + + + /* check the controller id */ + reg_addr = 0xA3; + for (i = 0; i < 5; i++) { + err = fts_i2c_read(client, ®_addr, 1, ®_value, 1); + if (err < 0) + msleep(5); + else + break; + + } + if (i >= 5) { + dev_err(&client->dev, "version read failed"); + goto free_gpio; + } + + fts_wait_tp_to_valid(client); + + err = request_threaded_irq(client->irq, NULL, fts_ts_interrupt, + /*pdata->irq_gpio_flags | */IRQF_ONESHOT | IRQF_TRIGGER_FALLING, + client->dev.driver->name, data); + if (err) { + FTS_ERROR("Request irq failed!"); + goto free_gpio; + } + + fts_irq_disable(); + +#if FTS_PSENSOR_EN + if (fts_sensor_init(data) != 0) { + FTS_ERROR("fts_sensor_init failed!"); + FTS_FUNC_EXIT(); + goto irq_free; + } +#endif + +#if FTS_APK_NODE_EN + fts_create_apk_debug_channel(client); +#endif + +#if FTS_SYSFS_NODE_EN + fts_create_sysfs(client); +#endif + +#if FTS_POINT_REPORT_CHECK_EN + fts_point_report_check_init(); +#endif + + fts_ex_mode_init(client); + +#if FTS_GESTURE_EN + fts_gesture_init(input_dev, client); +#endif + +#if FTS_ESDCHECK_EN + fts_esdcheck_init(); +#endif + + fts_irq_enable(); + fts_i2c_read_reg(client, FTS_REG_VENDOR_ID, &data->fw_vendor_id); + fts_i2c_read_reg(client, FTS_REG_FW_VER, data->fw_ver); + FTS_INFO("vendor_id=0x%x\n", data->fw_vendor_id); + FTS_INFO("tp_fw=0x%x\n", data->fw_ver[0]); +#if FTS_TEST_EN + fts_test_init(client); +#endif + +#if FTS_LOCK_DOWN_INFO + fts_lockdown_init(client); +#endif + +#if FTS_CAT_RAWDATA + fts_rawdata_init(client); +#endif + + +#if FTS_AUTO_UPGRADE_EN + err = get_boot_mode(client); + if (err == 0) { + fts_ctpm_upgrade_init(); + } else { + FTS_INFO("Not in normal mode!\n"); + } + +#endif + + +#if defined(CONFIG_FB) + data->fb_notif.notifier_call = fb_notifier_callback; + err = fb_register_client(&data->fb_notif); + if (err) + FTS_ERROR("[FB]Unable to register fb_notifier: %d", err); +#elif defined(CONFIG_HAS_EARLYSUSPEND) + data->early_suspend.level = EARLY_SUSPEND_LEVEL_BLANK_SCREEN + FTS_SUSPEND_LEVEL; + data->early_suspend.suspend = fts_ts_early_suspend; + data->early_suspend.resume = fts_ts_late_resume; + register_early_suspend(&data->early_suspend); +#endif + + hardwareinfo_tp_register(hardwareinfo_set, data); + + FTS_FUNC_EXIT(); + return 0; + +#if FTS_PSENSOR_EN +irq_free: + free_irq(client->irq, data); +#endif +free_gpio: + if (gpio_is_valid(pdata->reset_gpio)) + gpio_free(pdata->reset_gpio); + if (gpio_is_valid(pdata->irq_gpio)) + gpio_free(pdata->irq_gpio); + + lcd_power_ctrl(data, 0); +input_destroy: + input_unregister_device(input_dev); + input_dev = NULL; + input_free_device(input_dev); +free_ts_data: + devm_kfree(&client->dev, data); +free_platform_data: + devm_kfree(&client->dev, pdata); + + return err; + +} + +/***************************************************************************** +* Name: fts_ts_remove +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +static int fts_ts_remove(struct i2c_client *client) +{ + struct fts_ts_data *data = i2c_get_clientdata(client); + + FTS_FUNC_ENTER(); + cancel_work_sync(&data->touch_event_work); + +#if FTS_PSENSOR_EN + fts_sensor_remove(data); +#endif + +#if FTS_POINT_REPORT_CHECK_EN + fts_point_report_check_exit(); +#endif + +#if FTS_APK_NODE_EN + fts_release_apk_debug_channel(); +#endif + +#if FTS_SYSFS_NODE_EN + fts_remove_sysfs(client); +#endif + + fts_ex_mode_exit(client); + +#if FTS_AUTO_UPGRADE_EN + cancel_work_sync(&fw_update_work); +#endif + +#if defined(CONFIG_FB) + if (fb_unregister_client(&data->fb_notif)) + FTS_ERROR("Error occurred while unregistering fb_notifier."); +#elif defined(CONFIG_HAS_EARLYSUSPEND) + unregister_early_suspend(&data->early_suspend); +#endif + free_irq(client->irq, data); + + if (gpio_is_valid(data->pdata->reset_gpio)) + gpio_free(data->pdata->reset_gpio); + + if (gpio_is_valid(data->pdata->irq_gpio)) + gpio_free(data->pdata->irq_gpio); + + input_unregister_device(data->input_dev); + +#if FTS_TEST_EN + fts_test_exit(client); +#endif + +#if FTS_ESDCHECK_EN + fts_esdcheck_exit(); +#endif + + FTS_FUNC_EXIT(); + return 0; +} + +/***************************************************************************** +* Name: fts_ts_suspend +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +int fts_ts_suspend(struct device *dev) +{ + struct fts_ts_data *data = fts_wq_data; + int retval = 0, i = 0; + + FTS_FUNC_ENTER(); + if (data->suspended) { + FTS_INFO("Already in suspend state"); + FTS_FUNC_EXIT(); + return -EPERM; + } +#if FTS_ESDCHECK_EN + fts_esdcheck_suspend(); +#endif + +#if FTS_GESTURE_EN + if (gesture_data.gesture_all_switch) { + + if (panel_dead2tp) { + FTS_ERROR("%s: panel_dead2tp=%d", __func__, panel_dead2tp); + lcd_power_ctrl(data, 0); + data->suspended = true; + return 0; + } + + retval = fts_gesture_suspend(data->client); + if (retval == 0) { + /* Enter into gesture mode(suspend) */ + retval = enable_irq_wake(fts_wq_data->client->irq); + if (retval) + FTS_ERROR("%s: set_irq_wake failed", __func__); + data->suspended = true; + FTS_FUNC_EXIT(); + return 0; + } + } + +#endif + +#if FTS_PSENSOR_EN + if (fts_sensor_suspend(data) != 0) { + enable_irq_wake(data->client->irq); + data->suspended = true; + return 0; + } +#endif + + fts_irq_disable(); + + for (; i < 5; i++) { + /* TP enter sleep mode */ + retval = fts_i2c_write_reg(data->client, FTS_REG_POWER_MODE, FTS_REG_POWER_MODE_SLEEP_VALUE); + if (retval < 0) { + FTS_ERROR("Set TP to sleep mode fail, ret=%d!", retval); + } else { + FTS_INFO("go into sleep mode successfully\n"); + break; + } + msleep(20); + } + + +if (!(gesture_data.gesture_all_switch)) { + lcd_power_ctrl(data, 0); + } + + data->suspended = true; + + FTS_FUNC_EXIT(); + + return 0; +} +EXPORT_SYMBOL(fts_ts_suspend); +/***************************************************************************** +* Name: fts_ts_resume +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +static int fts_ts_resume(struct device *dev) +{ + struct fts_ts_data *data = dev_get_drvdata(dev); + + FTS_FUNC_ENTER(); + if (!data->suspended) { + FTS_DEBUG("Already in awake state"); + FTS_FUNC_EXIT(); + return -EPERM; + } + fts_release_all_finger(); + + + + if ((!(gesture_data.gesture_all_switch)) || panel_dead2tp) { + FTS_ERROR("%s:panel_dead2tp=%d", __func__, panel_dead2tp); + panel_dead2tp = 0; + lcd_power_ctrl(data, 1); + } + +#if (!FTS_CHIP_IDC) + fts_reset_proc(200); +#endif + + fts_tp_state_recovery(data->client); + +#if FTS_ESDCHECK_EN + fts_esdcheck_resume(); +#endif + +#if FTS_GESTURE_EN + if (gesture_data.gesture_all_switch) { + if (fts_gesture_resume(data->client) == 0) { + int err; + err = disable_irq_wake(data->client->irq); + if (err) + FTS_ERROR("%s: disable_irq_wake failed", __func__); + data->suspended = false; + FTS_FUNC_EXIT(); + return 0; + } + } + +#endif + +#if FTS_PSENSOR_EN + if (fts_sensor_resume(data) != 0) { + disable_irq_wake(data->client->irq); + data->suspended = false; + FTS_FUNC_EXIT(); + return 0; + } +#endif + + data->suspended = false; + + fts_irq_enable(); + + FTS_FUNC_EXIT(); + return 0; +} + +/***************************************************************************** +* I2C Driver +*****************************************************************************/ +static const struct i2c_device_id fts_ts_id[] = { + {FTS_DRIVER_NAME, 0}, + {}, +}; +MODULE_DEVICE_TABLE(i2c, fts_ts_id); + +static struct of_device_id fts_match_table[] = { + { .compatible = "focaltech,fts", }, + { }, +}; + +static struct i2c_driver fts_ts_driver = { + .probe = fts_ts_probe, + .remove = fts_ts_remove, + .shutdown = fts_ts_shutdown, + .driver = { + .name = FTS_DRIVER_NAME, + .owner = THIS_MODULE, + .of_match_table = fts_match_table, + }, + .id_table = fts_ts_id, +}; + +/***************************************************************************** +* Name: fts_ts_init +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +static int __init fts_ts_init(void) +{ + int ret = 0; + + FTS_FUNC_ENTER(); + ret = i2c_add_driver(&fts_ts_driver); + if (ret != 0) { + FTS_ERROR("Focaltech touch screen driver init failed!"); + } + FTS_FUNC_EXIT(); + return ret; +} + +/***************************************************************************** +* Name: fts_ts_exit +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +static void __exit fts_ts_exit(void) +{ + i2c_del_driver(&fts_ts_driver); +} + +module_init(fts_ts_init); +module_exit(fts_ts_exit); + +MODULE_AUTHOR("FocalTech Driver Team"); +MODULE_DESCRIPTION("FocalTech Touchscreen Driver"); +MODULE_LICENSE("GPL v2"); diff --git a/drivers/input/touchscreen/FT8716/focaltech_core.h b/drivers/input/touchscreen/FT8716/focaltech_core.h new file mode 100755 index 0000000000000..b249d71fcfb1f --- /dev/null +++ b/drivers/input/touchscreen/FT8716/focaltech_core.h @@ -0,0 +1,212 @@ +/* + * + * FocalTech TouchScreen driver. + * + * Copyright (c) 2010-2017, Focaltech Ltd. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ +/***************************************************************************** +* +* File Name: focaltech_core.h + +* Author: Focaltech Driver Team +* +* Created: 2016-08-08 +* +* Abstract: +* +* Reference: +* +*****************************************************************************/ + +#ifndef __LINUX_FOCALTECH_CORE_H__ +#define __LINUX_FOCALTECH_CORE_H__ +/***************************************************************************** +* Included header files +*****************************************************************************/ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "focaltech_common.h" +#include "focaltech_flash.h" +#if FTS_PSENSOR_EN +#include +#endif +/***************************************************************************** +* Private constant and macro definitions using #define +*****************************************************************************/ +#define LEN_FLASH_ECC_MAX 0xFFFE + +#define FTS_WORKQUEUE_NAME "fts_wq" + +#define FTS_MAX_POINTS 10 +#define FTS_KEY_WIDTH 50 +#define FTS_ONE_TCH_LEN 6 +#define POINT_READ_BUF (3 + FTS_ONE_TCH_LEN * FTS_MAX_POINTS) + +#define FTS_MAX_ID 0x0F +#define FTS_TOUCH_X_H_POS 3 +#define FTS_TOUCH_X_L_POS 4 +#define FTS_TOUCH_Y_H_POS 5 +#define FTS_TOUCH_Y_L_POS 6 +#define FTS_TOUCH_PRE_POS 7 +#define FTS_TOUCH_AREA_POS 8 +#define FTS_TOUCH_POINT_NUM 2 +#define FTS_TOUCH_EVENT_POS 3 +#define FTS_TOUCH_ID_POS 5 +#define FTS_COORDS_ARR_SIZE 4 + +#define FTS_TOUCH_DOWN 0 +#define FTS_TOUCH_UP 1 +#define FTS_TOUCH_CONTACT 2 + +#define FTS_SYSFS_ECHO_ON(buf) ((strnicmp(buf, "1", 1) == 0) || \ + (strnicmp(buf, "on", 2) == 0)) +#define FTS_SYSFS_ECHO_OFF(buf) ((strnicmp(buf, "0", 1) == 0) || \ + (strnicmp(buf, "off", 3) == 0)) + +/***************************************************************************** +* Private enumerations, structures and unions using typedef +*****************************************************************************/ + + +struct fts_ts_platform_data { + u32 irq_gpio; + u32 irq_gpio_flags; + u32 reset_gpio; + u32 reset_gpio_flags; + bool have_key; + u32 key_number; + u32 keys[4]; + u32 key_y_coord; + u32 key_x_coords[4]; + u32 x_max; + u32 y_max; + u32 x_min; + u32 y_min; + u32 max_touch_number; +}; + +struct ts_event { + u16 au16_x[FTS_MAX_POINTS]; /*x coordinate */ + u16 au16_y[FTS_MAX_POINTS]; /*y coordinate */ + u16 pressure[FTS_MAX_POINTS]; + u8 au8_touch_event[FTS_MAX_POINTS]; /* touch event: 0 -- down; 1-- up; 2 -- contact */ + u8 au8_finger_id[FTS_MAX_POINTS]; /*touch ID */ + u8 area[FTS_MAX_POINTS]; + u8 touch_point; + u8 point_num; +}; + +struct fts_ts_data { + struct i2c_client *client; + struct input_dev *input_dev; + struct ts_event event; + const struct fts_ts_platform_data *pdata; +#if FTS_PSENSOR_EN + struct fts_psensor_platform_data *psensor_pdata; +#endif + struct work_struct touch_event_work; + struct workqueue_struct *ts_workqueue; + struct regulator *vdd; + struct regulator *vcc_i2c; + struct regulator *lab; + struct regulator *ibb; + struct regulator *panel_iovdd; + spinlock_t irq_lock; + struct mutex report_mutex; + u16 addr; + bool suspended; + u8 fw_ver[3]; + u8 fw_vendor_id; + int touchs; + int irq_disable; + +#if defined(CONFIG_FB) + struct notifier_block fb_notif; +#elif defined(CONFIG_HAS_EARLYSUSPEND) + struct early_suspend early_suspend; +#endif + struct pinctrl *ts_pinctrl; + struct pinctrl_state *pinctrl_state_active; + struct pinctrl_state *pinctrl_state_suspend; + struct pinctrl_state *pinctrl_state_release; +}; + + +#if FTS_PSENSOR_EN +struct fts_psensor_platform_data { + struct input_dev *input_psensor_dev; + struct sensors_classdev ps_cdev; + int tp_psensor_opened; + char tp_psensor_data; /* 0 near, 1 far */ + struct fts_ts_data *data; +}; + +int fts_sensor_init(struct fts_ts_data *data); +int fts_sensor_read_data(struct fts_ts_data *data); +int fts_sensor_suspend(struct fts_ts_data *data); +int fts_sensor_resume(struct fts_ts_data *data); +int fts_sensor_remove(struct fts_ts_data *data); +#endif + +/***************************************************************************** +* Static variables +*****************************************************************************/ +extern struct i2c_client *fts_i2c_client; +extern struct fts_ts_data *fts_wq_data; +extern struct input_dev *fts_input_dev; + + +#define EACHOPTO_VENDOR 0x80 +#define OFILM_VENDOR 0x51 +#define JUNDA_VENDOR 0x85 +#define HOLITECH_VENDOR 0x82 +#define TXD_VENDOR 0xe9 +#define EBBG_VENDOR 0xd0 +#define CSOT_VENDOR 0x89 +#define FW_NO_UPGRADE 0 +#define FW_UPGRADING 1 +#define FW_UPGRADED 2 +#define TP_IC_FT8716 0x87 +#define TP_IC_FT8613 0x86 +extern u8 fw_upgrade_status; +#endif /* __LINUX_FOCALTECH_CORE_H__ */ diff --git a/drivers/input/touchscreen/FT8716/focaltech_esdcheck.c b/drivers/input/touchscreen/FT8716/focaltech_esdcheck.c new file mode 100755 index 0000000000000..92b05f0afcce9 --- /dev/null +++ b/drivers/input/touchscreen/FT8716/focaltech_esdcheck.c @@ -0,0 +1,466 @@ +/* + * + * FocalTech TouchScreen driver. + * + * Copyright (c) 2010-2017, FocalTech Systems, Ltd., all rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +/***************************************************************************** +* +* File Name: focaltech_esdcheck.c +* +* Author: luoguojin +* +* Created: 2016-08-03 +* +* Abstract: ESD check function +* +* Version: v1.0 +* +* Revision History: +* v1.0: +* First release. By luougojin 2016-08-03 +* v1.1: By luougojin 2017-02-15 +* 1. Add LCD_ESD_PATCH to control idc_esdcheck_lcderror +*****************************************************************************/ + +/***************************************************************************** +* Included header files +*****************************************************************************/ +#include "focaltech_core.h" + +#if FTS_ESDCHECK_EN +/***************************************************************************** +* Private constant and macro definitions using #define +*****************************************************************************/ +#define ESDCHECK_WAIT_TIME 4000 +#define LCD_ESD_PATCH 0 + +/***************************************************************************** +* Private enumerations, structures and unions using typedef +*****************************************************************************/ +struct fts_esdcheck_st { + u8 active:1; /* 1- esd check active, need check esd 0- no esd check */ + u8 suspend:1; + u8 proc_debug:1; /* apk or adb is accessing I2C */ + u8 intr:1; /* 1- Interrupt trigger */ + u8 unused:4; + u8 flow_work_hold_cnt; /* Flow Work Cnt(reg0x91) keep a same value for x times. >=5 times is ESD, need reset */ + u8 flow_work_cnt_last; /* Save Flow Work Cnt(reg0x91) value */ + u32 hardware_reset_cnt; + u32 i2c_nack_cnt; + u32 i2c_dataerror_cnt; +}; + +/***************************************************************************** +* Static variables +*****************************************************************************/ +static struct delayed_work fts_esdcheck_work; +static struct workqueue_struct *fts_esdcheck_workqueue; +static struct fts_esdcheck_st fts_esdcheck_data; + +/***************************************************************************** +* Global variable or extern global variabls/functions +*****************************************************************************/ + +/***************************************************************************** +* Static function prototypes +*****************************************************************************/ + +/***************************************************************************** +* functions body +*****************************************************************************/ +#if LCD_ESD_PATCH +/***************************************************************************** +* Name: lcd_esdcheck +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +int lcd_need_reset; +static int tp_need_recovery; /* LCD reset cause Tp reset */ +int idc_esdcheck_lcderror(void) +{ + u8 val; + int ret; + + FTS_DEBUG("[ESD]Check LCD ESD"); + if ((tp_need_recovery == 1) && (lcd_need_reset == 0)) { + tp_need_recovery = 0; + /* LCD reset, need recover TP state */ + fts_tp_state_recovery(fts_i2c_client); + } + + ret = fts_i2c_read_reg(fts_i2c_client, FTS_REG_ESD_SATURATE, &val); + if (ret < 0) { + FTS_ERROR("[ESD]: Read ESD_SATURATE(0xED) failed ret=%d!", ret); + return -EIO; + } + + if (val == 0xAA) { + /* + * 1. Set flag lcd_need_reset = 1; + * 2. LCD driver need reset(recovery) LCD and set lcd_need_reset to 0 + * 3. recover TP state + */ + FTS_INFO("LCD ESD, Execute LCD reset!"); + lcd_need_reset = 1; + tp_need_recovery = 1; + } + + return 0; +} +#endif + +/***************************************************************************** +* Name: fts_esdcheck_tp_reset +* Brief: esd check algorithm +* Input: +* Output: +* Return: +*****************************************************************************/ +static int fts_esdcheck_tp_reset(void) +{ + FTS_FUNC_ENTER(); + + fts_esdcheck_data.flow_work_hold_cnt = 0; + fts_esdcheck_data.hardware_reset_cnt++; + + fts_reset_proc(200); + fts_tp_state_recovery(fts_i2c_client); + + FTS_FUNC_EXIT(); + return 0; +} + +/***************************************************************************** +* Name: get_chip_id +* Brief: Read Chip Id 3 times +* Input: +* Output: +* Return: 1 - Read Chip Id 3 times failed +* 0 - Read Chip Id pass +*****************************************************************************/ +static bool get_chip_id(void) +{ + int err = 0; + int i = 0; + u8 reg_value = 0; + u8 reg_addr = 0; + + for (i = 0; i < 3; i++) { + reg_addr = FTS_REG_CHIP_ID; + err = fts_i2c_read(fts_i2c_client, ®_addr, 1, ®_value, 1); + + if (err < 0) { + FTS_ERROR("[ESD]: Read Reg 0xA3 failed ret = %d!!", err); + fts_esdcheck_data.i2c_nack_cnt++; + } else { + if ((reg_value == chip_types.chip_idh) || (reg_value == 0xEF)) {/* Upgrade sometimes can't detect */ + break; + } else { + fts_esdcheck_data.i2c_dataerror_cnt++; + } + } + } + + /* if can't get correct data in 3 times, then need hardware reset */ + if (i >= 3) { + FTS_ERROR("[ESD]: Read Chip id 3 times failed, need execute TP reset!!"); + return 1; + } + + return 0; +} + +/***************************************************************************** +* Name: get_flow_cnt +* Brief: Read flow cnt(0x91) +* Input: +* Output: +* Return: 1 - Reg 0x91(flow cnt) abnormal: hold a value for 5 times +* 0 - Reg 0x91(flow cnt) normal +*****************************************************************************/ +static bool get_flow_cnt(void) +{ + int err = 0; + u8 reg_value = 0; + u8 reg_addr = 0; + + reg_addr = FTS_REG_FLOW_WORK_CNT; + err = fts_i2c_read(fts_i2c_client, ®_addr, 1, ®_value, 1); + if (err < 0) { + FTS_ERROR("[ESD]: Read Reg 0x91 failed ret = %d!!", err); + fts_esdcheck_data.i2c_nack_cnt++; + } else { + if (reg_value == fts_esdcheck_data.flow_work_cnt_last) { + fts_esdcheck_data.flow_work_hold_cnt++; + } else { + fts_esdcheck_data.flow_work_hold_cnt = 0; + } + + fts_esdcheck_data.flow_work_cnt_last = reg_value; + } + + /* if read flow work cnt 5 times and the value are all the same, then need hardware_reset */ + if (fts_esdcheck_data.flow_work_hold_cnt >= 5) { + FTS_DEBUG("[ESD]: Flow Work Cnt(reg0x91) keep a value for 5 times, need execute TP reset!!"); + return 1; + } + + return 0; +} + +extern int panel_dead2tp; +/***************************************************************************** +* Name: esdcheck_algorithm +* Brief: esd check algorithm +* Input: +* Output: +* Return: +*****************************************************************************/ +static int esdcheck_algorithm(void) +{ + int err = 0; + u8 reg_value = 0; + u8 reg_addr = 0; + bool hardware_reset = 0; + + /* 1. esdcheck is interrupt, then return */ + if (fts_esdcheck_data.intr == 1) { + FTS_INFO("[ESD]: In interrupt state, not check esd, return immediately!!"); + return 0; + } + + /* 2. check power state, if suspend, no need check esd */ + if (fts_esdcheck_data.suspend == 1) { + FTS_INFO("[ESD]: In suspend, not check esd, return immediately!!"); + /* because in suspend state, adb can be used, when upgrade FW, will active ESD check(active = 1) + * But in suspend, then will don't queue_delayed_work, when resume, don't check ESD again + */ + fts_esdcheck_data.active = 0; + return 0; + } + + /* 3. check fts_esdcheck_data.proc_debug state, if 1-proc busy, no need check esd*/ + if (fts_esdcheck_data.proc_debug == 1) { + FTS_INFO("[ESD]: In apk or adb command mode, not check esd, return immediately!!"); + return 0; + } + + /* 4. In factory mode, can't check esd */ + reg_addr = FTS_REG_WORKMODE; + err = fts_i2c_read(fts_i2c_client, ®_addr, 1, ®_value, 1); + if (err < 0) { + fts_esdcheck_data.i2c_nack_cnt++; + } else if ((reg_value & 0x70) == FTS_REG_WORKMODE_FACTORY_VALUE) { + FTS_INFO("[ESD]: In factory mode, not check esd, return immediately!!"); + return 0; + } + + /* 5. IDC esd check lcd default:close */ +#if LCD_ESD_PATCH + idc_esdcheck_lcderror(); +#endif + + /* 6. Get Chip ID */ + hardware_reset = get_chip_id(); + + /* 7. get Flow work cnt: 0x91 If no change for 5 times, then ESD and reset */ + if (!hardware_reset) { + + hardware_reset = get_flow_cnt(); + } + +reg_addr = 0xED; +fts_i2c_read(fts_i2c_client, ®_addr, 1, ®_value, 1); +if (reg_value == 0xAA) { + panel_dead2tp = 1; + printk("FTS:change panel_dead2tp:%d\n", panel_dead2tp); +} + /* 8. If need hardware reset, then handle it here */ + if (hardware_reset == 1) { + fts_esdcheck_tp_reset(); + } + + + return 0; +} + +/***************************************************************************** +* Name: fts_esdcheck_func +* Brief: fts_esdcheck_func +* Input: +* Output: +* Return: +*****************************************************************************/ +static void esdcheck_func(struct work_struct *work) +{ + FTS_FUNC_ENTER(); + + esdcheck_algorithm(); + + if (fts_esdcheck_data.suspend == 0) { + queue_delayed_work(fts_esdcheck_workqueue, &fts_esdcheck_work, msecs_to_jiffies(ESDCHECK_WAIT_TIME)); + } + + FTS_FUNC_EXIT(); +} + +/***************************************************************************** +* Name: fts_esdcheck_set_intr +* Brief: interrupt flag (main used in interrupt tp report) +* Input: +* Output: +* Return: +*****************************************************************************/ +int fts_esdcheck_set_intr(bool intr) +{ + /* interrupt don't add debug message */ + fts_esdcheck_data.intr = intr; + return 0; +} + +/***************************************************************************** +* Name: fts_esdcheck_get_status(void) +* Brief: get current status +* Input: +* Output: +* Return: +*****************************************************************************/ +int fts_esdcheck_get_status(void) +{ + /* interrupt don't add debug message */ + return fts_esdcheck_data.active; +} + +/***************************************************************************** +* Name: fts_esdcheck_proc_busy +* Brief: When APK or ADB command access TP via driver, then need set proc_debug, +* then will not check ESD. +* Input: +* Output: +* Return: +*****************************************************************************/ +int fts_esdcheck_proc_busy(bool proc_debug) +{ + fts_esdcheck_data.proc_debug = proc_debug; + return 0; +} + +/***************************************************************************** +* Name: fts_esdcheck_switch +* Brief: FTS esd check function switch. +* Input: enable: 1 - Enable esd check +* 0 - Disable esd check +* Output: +* Return: +*****************************************************************************/ +int fts_esdcheck_switch(bool enable) +{ + FTS_FUNC_ENTER(); + if (enable == 1) { + if (fts_esdcheck_data.active == 0) { + FTS_INFO("[ESD]: ESD check start!!"); + fts_esdcheck_data.active = 1; + queue_delayed_work(fts_esdcheck_workqueue, &fts_esdcheck_work, msecs_to_jiffies(ESDCHECK_WAIT_TIME)); + } + } else { + if (fts_esdcheck_data.active == 1) { + FTS_INFO("[ESD]: ESD check stop!!"); + fts_esdcheck_data.active = 0; + cancel_delayed_work_sync(&fts_esdcheck_work); + } + } + + FTS_FUNC_EXIT(); + return 0; +} + +/***************************************************************************** +* Name: fts_esdcheck_suspend +* Brief: Run when tp enter into suspend +* Input: +* Output: +* Return: +*****************************************************************************/ +int fts_esdcheck_suspend(void) +{ + FTS_FUNC_ENTER(); + fts_esdcheck_switch(DISABLE); + fts_esdcheck_data.suspend = 1; + FTS_FUNC_EXIT(); + return 0; +} + +/***************************************************************************** +* Name: fts_esdcheck_resume +* Brief: Run when tp resume +* Input: +* Output: +* Return: +*****************************************************************************/ +int fts_esdcheck_resume(void) +{ + FTS_FUNC_ENTER(); + fts_esdcheck_switch(ENABLE); + fts_esdcheck_data.suspend = 0; + FTS_FUNC_EXIT(); + return 0; +} + + +/***************************************************************************** +* Name: fts_esdcheck_init +* Brief: Init and create a queue work to check esd +* Input: +* Output: +* Return: < 0: Fail to create esd check queue +*****************************************************************************/ +int fts_esdcheck_init(void) +{ + FTS_FUNC_ENTER(); + + INIT_DELAYED_WORK(&fts_esdcheck_work, esdcheck_func); + fts_esdcheck_workqueue = create_workqueue("fts_esdcheck_wq"); + if (fts_esdcheck_workqueue == NULL) { + FTS_INFO("[ESD]: Failed to create esd work queue!!"); + } + + memset((u8 *)&fts_esdcheck_data, 0, sizeof(struct fts_esdcheck_st)); + + fts_esdcheck_switch(ENABLE); + FTS_FUNC_EXIT(); + return 0; +} + +/***************************************************************************** +* Name: fts_esdcheck_exit +* Brief: When FTS TP driver is removed, then call this function to destory work queue +* Input: +* Output: +* Return: +*****************************************************************************/ +int fts_esdcheck_exit(void) +{ + FTS_FUNC_ENTER(); + + destroy_workqueue(fts_esdcheck_workqueue); + + FTS_FUNC_EXIT(); + return 0; +} +#endif /* FTS_ESDCHECK_EN */ + diff --git a/drivers/input/touchscreen/FT8716/focaltech_ex_fun.c b/drivers/input/touchscreen/FT8716/focaltech_ex_fun.c new file mode 100755 index 0000000000000..007ff7314009e --- /dev/null +++ b/drivers/input/touchscreen/FT8716/focaltech_ex_fun.c @@ -0,0 +1,1230 @@ +/* + * + * FocalTech TouchScreen driver. + * + * Copyright (c) 2010-2017, Focaltech Ltd. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +/***************************************************************************** +* +* File Name: Focaltech_ex_fun.c +* +* Author: Focaltech Driver Team +* +* Created: 2016-08-08 +* +* Abstract: +* +* Reference: +* +*****************************************************************************/ + +/***************************************************************************** +* 1.Included header files +*****************************************************************************/ +#include "focaltech_core.h" + +/***************************************************************************** +* Private constant and macro definitions using #define +*****************************************************************************/ +/*create apk debug channel*/ +#define PROC_UPGRADE 0 +#define PROC_READ_REGISTER 1 +#define PROC_WRITE_REGISTER 2 +#define PROC_AUTOCLB 4 +#define PROC_UPGRADE_INFO 5 +#define PROC_WRITE_DATA 6 +#define PROC_READ_DATA 7 +#define PROC_SET_TEST_FLAG 8 +#define PROC_SET_SLAVE_ADDR 10 +#define PROC_HW_RESET 11 +#define PROC_NAME "ftxxxx-debug" +#define WRITE_BUF_SIZE 512 +#define READ_BUF_SIZE 512 + +/***************************************************************************** +* Private enumerations, structures and unions using typedef +*****************************************************************************/ + +/***************************************************************************** +* Static variables +*****************************************************************************/ +static unsigned char proc_operate_mode = PROC_UPGRADE; +static struct proc_dir_entry *fts_proc_entry; +static struct +{ + int op; + int reg; + int value; + int result; +} g_rwreg_result; + +/***************************************************************************** +* Global variable or extern global variabls/functions +*****************************************************************************/ + +/***************************************************************************** +* Static function prototypes +*****************************************************************************/ +#if FTS_ESDCHECK_EN +static void esd_process(u8 *writebuf, int buflen, bool flag) +{ + if (flag) { + if ((writebuf[1] == 0xFC) && (writebuf[2] == 0x55) && (buflen == 0x03)) { + /* Upgrade command */ + FTS_DEBUG("[ESD]: Upgrade command(%x %x %x)!!", writebuf[0], writebuf[1], writebuf[2]); + fts_esdcheck_switch(DISABLE); + } else if ((writebuf[1] == 0x00) && (writebuf[2] == 0x40) && (buflen == 0x03)) { + /* factory mode bit 4 5 6 */ + FTS_DEBUG("[ESD]: Entry factory mode(%x %x %x)!!", writebuf[0], writebuf[1], writebuf[2]); + fts_esdcheck_switch(DISABLE); + } else if ((writebuf[1] == 0x00) && (writebuf[2] == 0x00) && (buflen == 0x03)) { + /* normal mode bit 4 5 6 */ + FTS_DEBUG("[ESD]: Exit factory mode(%x %x %x)!!", writebuf[0], writebuf[1], writebuf[2]); + fts_esdcheck_switch(ENABLE); + } else { + fts_esdcheck_proc_busy(1); + } + } else { + if ((writebuf[1] == 0x07) && (buflen == 0x02)) { + FTS_DEBUG("[ESD]: Upgrade finish-trigger reset(07)(%x %x)!!", writebuf[0], writebuf[1]); + fts_esdcheck_switch(ENABLE); + } else { + fts_esdcheck_proc_busy(0); + } + } +} +#endif +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0)) +/*interface of write proc*/ +/************************************************************************ +* Name: fts_debug_write +* Brief:interface of write proc +* Input: file point, data buf, data len, no use +* Output: no +* Return: data len +***********************************************************************/ +static ssize_t fts_debug_write(struct file *filp, const char __user *buff, size_t count, loff_t *ppos) +{ + unsigned char writebuf[WRITE_BUF_SIZE]; + int buflen = count; + int writelen = 0; + int ret = 0; + char tmp[25]; + + if (copy_from_user(&writebuf, buff, buflen)) { + FTS_DEBUG("[APK]: copy from user error!!"); + return -EFAULT; + } +#if FTS_ESDCHECK_EN + esd_process(writebuf, buflen, 1); +#endif + proc_operate_mode = writebuf[0]; + switch (proc_operate_mode) { + case PROC_UPGRADE: + { + char upgrade_file_path[FILE_NAME_LENGTH]; + memset(upgrade_file_path, 0, sizeof(upgrade_file_path)); + sprintf(upgrade_file_path, "%s", writebuf + 1); + upgrade_file_path[buflen-1] = '\0'; + FTS_DEBUG("%s\n", upgrade_file_path); + fts_irq_disable(); +#if FTS_ESDCHECK_EN + fts_esdcheck_switch(DISABLE); +#endif + if (fts_updatefun_curr.upgrade_with_app_bin_file) + ret = fts_updatefun_curr.upgrade_with_app_bin_file(fts_i2c_client, upgrade_file_path); +#if FTS_ESDCHECK_EN + fts_esdcheck_switch(ENABLE); +#endif + fts_irq_enable(); + if (ret < 0) { + FTS_ERROR("[APK]: upgrade failed!!"); + } + } + break; + + case PROC_SET_TEST_FLAG: + FTS_DEBUG("[APK]: PROC_SET_TEST_FLAG = %x!!", writebuf[1]); +#if FTS_ESDCHECK_EN + if (writebuf[1] == 0) { + fts_esdcheck_switch(DISABLE); + } else { + fts_esdcheck_switch(ENABLE); + } +#endif + break; + case PROC_READ_REGISTER: + writelen = 1; + ret = fts_i2c_write(fts_i2c_client, writebuf + 1, writelen); + if (ret < 0) { + FTS_ERROR("[APK]: write iic error!!"); + } + break; + case PROC_WRITE_REGISTER: + writelen = 2; + ret = fts_i2c_write(fts_i2c_client, writebuf + 1, writelen); + if (ret < 0) { + FTS_ERROR("[APK]: write iic error!!"); + } + break; + case PROC_SET_SLAVE_ADDR: + + ret = fts_i2c_client->addr; + FTS_DEBUG("Original i2c addr 0x%x ", ret<<1); + if (writebuf[1] != fts_i2c_client->addr) { + fts_i2c_client->addr = writebuf[1]; + FTS_DEBUG("Change i2c addr 0x%x to 0x%x", ret<<1, writebuf[1]<<1); + + } + break; + + case PROC_HW_RESET: + + sprintf(tmp, "%s", writebuf + 1); + tmp[buflen - 1] = '\0'; + if (strncmp(tmp, "focal_driver", 12) == 0) { + FTS_DEBUG("Begin HW Reset"); + fts_reset_proc(1); + } + + break; + + case PROC_AUTOCLB: + FTS_DEBUG("[APK]: autoclb!!"); + fts_ctpm_auto_clb(fts_i2c_client); + break; + case PROC_READ_DATA: + case PROC_WRITE_DATA: + writelen = count - 1; + if (writelen > 0) { + ret = fts_i2c_write(fts_i2c_client, writebuf + 1, writelen); + if (ret < 0) { + FTS_ERROR("[APK]: write iic error!!"); + } + } + break; + default: + break; + } + +#if FTS_ESDCHECK_EN + esd_process(writebuf, buflen, 0); +#endif + + if (ret < 0) { + return ret; + } else { + return count; + } +} + +/* interface of read proc */ +/************************************************************************ +* Name: fts_debug_read +* Brief:interface of read proc +* Input: point to the data, no use, no use, read len, no use, no use +* Output: page point to data +* Return: read char number +***********************************************************************/ +static ssize_t fts_debug_read(struct file *filp, char __user *buff, size_t count, loff_t *ppos) +{ + int ret = 0; + int num_read_chars = 0; + int readlen = 0; + u8 regvalue = 0x00, regaddr = 0x00; + unsigned char buf[READ_BUF_SIZE]; + +#if FTS_ESDCHECK_EN + fts_esdcheck_proc_busy(1); +#endif + switch (proc_operate_mode) { + case PROC_UPGRADE: + + regaddr = FTS_REG_FW_VER; + ret = fts_i2c_read_reg(fts_i2c_client, regaddr, ®value); + if (ret < 0) + num_read_chars = sprintf(buf, "%s", "get fw version failed.\n"); + else + num_read_chars = sprintf(buf, "current fw version:0x%02x\n", regvalue); + break; + case PROC_READ_REGISTER: + readlen = 1; + ret = fts_i2c_read(fts_i2c_client, NULL, 0, buf, readlen); + if (ret < 0) { +#if FTS_ESDCHECK_EN + fts_esdcheck_proc_busy(0); +#endif + FTS_ERROR("[APK]: read iic error!!"); + return ret; + } + num_read_chars = 1; + break; + case PROC_READ_DATA: + readlen = count; + ret = fts_i2c_read(fts_i2c_client, NULL, 0, buf, readlen); + if (ret < 0) { +#if FTS_ESDCHECK_EN + fts_esdcheck_proc_busy(0); +#endif + FTS_ERROR("[APK]: read iic error!!"); + return ret; + } + + num_read_chars = readlen; + break; + case PROC_WRITE_DATA: + break; + default: + break; + } + +#if FTS_ESDCHECK_EN + fts_esdcheck_proc_busy(0); +#endif + + if (copy_to_user(buff, buf, num_read_chars)) { + FTS_ERROR("[APK]: copy to user error!!"); + return -EFAULT; + } + + return num_read_chars; +} +static const struct file_operations fts_proc_fops = { + .owner = THIS_MODULE, + .read = fts_debug_read, + .write = fts_debug_write, +}; +#else +/* interface of write proc */ +/************************************************************************ +* Name: fts_debug_write +* Brief:interface of write proc +* Input: file point, data buf, data len, no use +* Output: no +* Return: data len +***********************************************************************/ +static int fts_debug_write(struct file *filp, + const char __user *buff, unsigned long len, void *data) +{ + unsigned char writebuf[WRITE_BUF_SIZE]; + int buflen = len; + int writelen = 0; + int ret = 0; + char tmp[25]; + + if (copy_from_user(&writebuf, buff, buflen)) { + FTS_ERROR("[APK]: copy from user error!!"); + return -EFAULT; + } +#if FTS_ESDCHECK_EN + esd_process(writebuf, buflen, 1); +#endif + proc_operate_mode = writebuf[0]; + switch (proc_operate_mode) { + + case PROC_UPGRADE: + { + char upgrade_file_path[FILE_NAME_LENGTH]; + memset(upgrade_file_path, 0, sizeof(upgrade_file_path)); + sprintf(upgrade_file_path, "%s", writebuf + 1); + upgrade_file_path[buflen-1] = '\0'; + FTS_DEBUG("%s\n", upgrade_file_path); + fts_irq_disable(); +#if FTS_ESDCHECK_EN + fts_esdcheck_switch(DISABLE); +#endif + if (fts_updatefun_curr.upgrade_with_app_bin_file) + ret = fts_updatefun_curr.upgrade_with_app_bin_file(fts_i2c_client, upgrade_file_path); +#if FTS_ESDCHECK_EN + fts_esdcheck_switch(ENABLE); +#endif + fts_irq_enable(); + if (ret < 0) { + FTS_ERROR("[APK]: upgrade failed!!"); + } + } + break; + case PROC_SET_TEST_FLAG: + FTS_DEBUG("[APK]: PROC_SET_TEST_FLAG = %x!!", writebuf[1]); +#if FTS_ESDCHECK_EN + if (writebuf[1] == 0) { + fts_esdcheck_switch(DISABLE); + } else { + fts_esdcheck_switch(ENABLE); + } +#endif + break; + case PROC_READ_REGISTER: + writelen = 1; + ret = fts_i2c_write(fts_i2c_client, writebuf + 1, writelen); + if (ret < 0) { + FTS_ERROR("[APK]: write iic error!!n"); + } + break; + case PROC_WRITE_REGISTER: + writelen = 2; + ret = fts_i2c_write(fts_i2c_client, writebuf + 1, writelen); + if (ret < 0) { + FTS_ERROR("[APK]: write iic error!!"); + } + break; + case PROC_SET_SLAVE_ADDR: + + ret = fts_i2c_client->addr; + FTS_DEBUG("Original i2c addr 0x%x ", ret<<1); + if (writebuf[1] != fts_i2c_client->addr) { + fts_i2c_client->addr = writebuf[1]; + FTS_DEBUG("Change i2c addr 0x%x to 0x%x", ret<<1, writebuf[1]<<1); + } + break; + + case PROC_HW_RESET: + + sprintf(tmp, "%s", writebuf + 1); + tmp[buflen - 1] = '\0'; + if (strncmp(tmp, "focal_driver", 12) == 0) { + FTS_DEBUG("Begin HW Reset"); + fts_reset_proc(1); + } + + break; + + case PROC_AUTOCLB: + FTS_DEBUG("[APK]: autoclb!!"); + fts_ctpm_auto_clb(fts_i2c_client); + break; + case PROC_READ_DATA: + case PROC_WRITE_DATA: + writelen = len - 1; + if (writelen > 0) { + ret = fts_i2c_write(fts_i2c_client, writebuf + 1, writelen); + if (ret < 0) { + FTS_ERROR("[APK]: write iic error!!"); + } + } + break; + default: + break; + } + +#if FTS_ESDCHECK_EN + esd_process(writebuf, buflen, 0); +#endif + + if (ret < 0) { + return ret; + } else { + return len; + } +} + +/* interface of read proc */ +/************************************************************************ +* Name: fts_debug_read +* Brief:interface of read proc +* Input: point to the data, no use, no use, read len, no use, no use +* Output: page point to data +* Return: read char number +***********************************************************************/ +static int fts_debug_read(char *page, char **start, + off_t off, int count, int *eof, void *data) +{ + int ret = 0; + unsigned char buf[READ_BUF_SIZE]; + int num_read_chars = 0; + int readlen = 0; + u8 regvalue = 0x00, regaddr = 0x00; + +#if FTS_ESDCHECK_EN + fts_esdcheck_proc_busy(1); +#endif + switch (proc_operate_mode) { + case PROC_UPGRADE: + regaddr = FTS_REG_FW_VER; + ret = fts_i2c_read_reg(fts_i2c_client, regaddr, ®value); + if (ret < 0) + num_read_chars = sprintf(buf, "%s", "get fw version failed.\n"); + else + num_read_chars = sprintf(buf, "current fw version:0x%02x\n", regvalue); + break; + case PROC_READ_REGISTER: + readlen = 1; + ret = fts_i2c_read(fts_i2c_client, NULL, 0, buf, readlen); + if (ret < 0) { +#if FTS_ESDCHECK_EN + fts_esdcheck_proc_busy(0); +#endif + FTS_ERROR("[APK]: read iic error!!"); + return ret; + } + num_read_chars = 1; + break; + case PROC_READ_DATA: + readlen = count; + ret = fts_i2c_read(fts_i2c_client, NULL, 0, buf, readlen); + if (ret < 0) { +#if FTS_ESDCHECK_EN + fts_esdcheck_proc_busy(0); +#endif + FTS_ERROR("[APK]: read iic error!!"); + return ret; + } + + num_read_chars = readlen; + break; + case PROC_WRITE_DATA: + break; + default: + break; + } + +#if FTS_ESDCHECK_EN + fts_esdcheck_proc_busy(0); +#endif + + memcpy(page, buf, num_read_chars); + return num_read_chars; +} +#endif +/************************************************************************ +* Name: fts_create_apk_debug_channel +* Brief: create apk debug channel +* Input: i2c info +* Output: no +* Return: success =0 +***********************************************************************/ +int fts_create_apk_debug_channel(struct i2c_client *client) +{ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0)) + fts_proc_entry = proc_create(PROC_NAME, 0777, NULL, &fts_proc_fops); +#else + fts_proc_entry = create_proc_entry(PROC_NAME, 0777, NULL); +#endif + if (NULL == fts_proc_entry) { + FTS_ERROR("Couldn't create proc entry!"); + return -ENOMEM; + } else { + FTS_INFO("Create proc entry success!"); + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)) + fts_proc_entry->write_proc = fts_debug_write; + fts_proc_entry->read_proc = fts_debug_read; +#endif + } + return 0; +} +/************************************************************************ +* Name: fts_release_apk_debug_channel +* Brief: release apk debug channel +* Input: no +* Output: no +* Return: no +***********************************************************************/ +void fts_release_apk_debug_channel(void) +{ + + if (fts_proc_entry) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0)) + proc_remove(fts_proc_entry); +#else + remove_proc_entry(PROC_NAME, NULL); +#endif +} + +/* + * fts_hw_reset interface + */ +static ssize_t fts_hw_reset_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) +{ + return -EPERM; +} +static ssize_t fts_hw_reset_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + ssize_t count = 0; + + fts_reset_proc(200); + + count = snprintf(buf, PAGE_SIZE, "hw reset executed\n"); + + return count; +} + +/* + * fts_irq interface + */ +static ssize_t fts_irq_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) +{ + if (FTS_SYSFS_ECHO_ON(buf)) { + FTS_INFO("[EX-FUN]enable irq"); + fts_irq_enable(); + } else if (FTS_SYSFS_ECHO_OFF(buf)) { + FTS_INFO("[EX-FUN]disable irq"); + fts_irq_disable(); + } + return count; +} + +static ssize_t fts_irq_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + return -EPERM; +} + +/************************************************************************ +* Name: fts_tpfwver_show +* Brief: show tp fw vwersion +* Input: device, device attribute, char buf +* Output: no +* Return: char number +***********************************************************************/ +static ssize_t fts_tpfwver_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + ssize_t num_read_chars = 0; + u8 fwver = 0; + + mutex_lock(&fts_input_dev->mutex); + +#if FTS_ESDCHECK_EN + fts_esdcheck_proc_busy(1); +#endif + if (fts_i2c_read_reg(fts_i2c_client, FTS_REG_FW_VER, &fwver) < 0) { + num_read_chars = snprintf(buf, PAGE_SIZE, "I2c transfer error!\n"); + } +#if FTS_ESDCHECK_EN + fts_esdcheck_proc_busy(0); +#endif + if (fwver == 255) + num_read_chars = snprintf(buf, PAGE_SIZE, "get tp fw version fail!\n"); + else { + num_read_chars = snprintf(buf, PAGE_SIZE, "%02X\n", fwver); + } + + mutex_unlock(&fts_input_dev->mutex); + + return num_read_chars; +} +/************************************************************************ +* Name: fts_tpfwver_store +* Brief: no +* Input: device, device attribute, char buf, char count +* Output: no +* Return: EPERM +***********************************************************************/ +static ssize_t fts_tpfwver_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) +{ + /* place holder for future use */ + return -EPERM; +} + +static int fts_is_hex_char(const char ch) +{ + int result = 0; + if (ch >= '0' && ch <= '9') { + result = 1; + } else if (ch >= 'a' && ch <= 'f') { + result = 1; + } else if (ch >= 'A' && ch <= 'F') { + result = 1; + } else { + result = 0; + } + + return result; +} + +static int fts_hex_char_to_int(const char ch) +{ + int result = 0; + if (ch >= '0' && ch <= '9') { + result = (int)(ch - '0'); + } else if (ch >= 'a' && ch <= 'f') { + result = (int)(ch - 'a') + 10; + } else if (ch >= 'A' && ch <= 'F') { + result = (int)(ch - 'A') + 10; + } else { + result = -1; + } + + return result; +} + +static int fts_hex_to_str(char *hex, int iHexLen, char *ch, int *iChLen) +{ + int high = 0; + int low = 0; + int tmp = 0; + int i = 0; + int iCharLen = 0; + if (hex == NULL || ch == NULL) { + return -EPERM; + } + + FTS_DEBUG("iHexLen: %d in function:%s!!\n\n", iHexLen, __func__); + + if (iHexLen % 2 == 1) { + return -ENOENT; + } + + for (i = 0; i < iHexLen; i += 2) { + high = fts_hex_char_to_int(hex[i]); + if (high < 0) { + ch[iCharLen] = '\0'; + return -ESRCH; + } + + low = fts_hex_char_to_int(hex[i+1]); + if (low < 0) { + ch[iCharLen] = '\0'; + return -ESRCH; + } + tmp = (high << 4) + low; + ch[iCharLen++] = (char)tmp; + } + ch[iCharLen] = '\0'; + *iChLen = iCharLen; + FTS_DEBUG("iCharLen: %d, iChLen: %d in function:%s!!\n\n", iCharLen, *iChLen, __func__); + return 0; +} + +static void fts_str_to_bytes(char *bufStr, int iLen, char *uBytes, int *iBytesLen) +{ + int i = 0; + int iNumChLen = 0; + + *iBytesLen = 0; + + for (i = 0; i < iLen; i++) { + if (fts_is_hex_char(bufStr[i])) { + bufStr[iNumChLen++] = bufStr[i]; + } + } + + bufStr[iNumChLen] = '\0'; + + fts_hex_to_str(bufStr, iNumChLen, uBytes, iBytesLen); +} +/************************************************************************ +* Name: fts_tprwreg_show +* Brief: no +* Input: device, device attribute, char buf +* Output: no +* Return: EPERM +***********************************************************************/ +static ssize_t fts_tprwreg_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + int count; + + mutex_lock(&fts_input_dev->mutex); + + if (!g_rwreg_result.op) { + if (g_rwreg_result.result == 0) { + count = sprintf(buf, "Read %02X: %02X\n", g_rwreg_result.reg, g_rwreg_result.value); + } else { + count = sprintf(buf, "Read %02X failed, ret: %d\n", g_rwreg_result.reg, g_rwreg_result.result); + } + } else { + if (g_rwreg_result.result == 0) { + count = sprintf(buf, "Write %02X, %02X success\n", g_rwreg_result.reg, g_rwreg_result.value); + } else { + count = sprintf(buf, "Write %02X failed, ret: %d\n", g_rwreg_result.reg, g_rwreg_result.result); + } + } + mutex_unlock(&fts_input_dev->mutex); + + return count; +} +/************************************************************************ +* Name: fts_tprwreg_store +* Brief: read/write register +* Input: device, device attribute, char buf, char count +* Output: print register value +* Return: char count +***********************************************************************/ +static ssize_t fts_tprwreg_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) +{ + struct i2c_client *client = container_of(dev, struct i2c_client, dev); + ssize_t num_read_chars = 0; + int retval; + long unsigned int wmreg = 0; + u8 regaddr = 0xff, regvalue = 0xff; + u8 valbuf[5] = {0}; + + memset(valbuf, 0, sizeof(valbuf)); + mutex_lock(&fts_input_dev->mutex); + num_read_chars = count - 1; + if (num_read_chars != 2) { + if (num_read_chars != 4) { + FTS_ERROR("please input 2 or 4 character"); + goto error_return; + } + } + memcpy(valbuf, buf, num_read_chars); + retval = kstrtoul(valbuf, 16, &wmreg); + fts_str_to_bytes((char *)buf, num_read_chars, valbuf, &retval); + + if (1 == retval) { + regaddr = valbuf[0]; + retval = 0; + } else if (2 == retval) { + regaddr = valbuf[0]; + regvalue = valbuf[1]; + retval = 0; + } else + retval = -1; + + if (0 != retval) { + FTS_ERROR("%s() - ERROR: Could not convert the given input to a number. The given input was: \"%s\"", __FUNCTION__, buf); + goto error_return; + } +#if FTS_ESDCHECK_EN + fts_esdcheck_proc_busy(1); +#endif + if (2 == num_read_chars) { + g_rwreg_result.op = 0; + g_rwreg_result.reg = regaddr; + /*read register*/ + regaddr = wmreg; + g_rwreg_result.result = fts_i2c_read_reg(client, regaddr, ®value); + if (g_rwreg_result.result < 0) { + FTS_ERROR("Could not read the register(0x%02x)", regaddr); + } else { + FTS_INFO("the register(0x%02x) is 0x%02x", regaddr, regvalue); + g_rwreg_result.value = regvalue; + g_rwreg_result.result = 0; + } + } else { + regaddr = wmreg>>8; + regvalue = wmreg; + + g_rwreg_result.op = 1; + g_rwreg_result.reg = regaddr; + g_rwreg_result.value = regvalue; + g_rwreg_result.result = fts_i2c_write_reg(client, regaddr, regvalue); + if (g_rwreg_result.result < 0) { + FTS_ERROR("Could not write the register(0x%02x)", regaddr); + + } else { + FTS_INFO("Write 0x%02x into register(0x%02x) successful", regvalue, regaddr); + g_rwreg_result.result = 0; + } + } +#if FTS_ESDCHECK_EN + fts_esdcheck_proc_busy(0); +#endif +error_return: + mutex_unlock(&fts_input_dev->mutex); + + return count; +} +/************************************************************************ +* Name: fts_fwupdate_show +* Brief: no +* Input: device, device attribute, char buf +* Output: no +* Return: EPERM +***********************************************************************/ +static ssize_t fts_fwupdate_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + /* place holder for future use */ + return -EPERM; +} + +/************************************************************************ +* Name: fts_fwupdate_store +* Brief: upgrade from *.i +* Input: device, device attribute, char buf, char count +* Output: no +* Return: char count +***********************************************************************/ +static ssize_t fts_fwupdate_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) +{ + struct i2c_client *client = container_of(dev, struct i2c_client, dev); + + mutex_lock(&fts_input_dev->mutex); + fts_irq_disable(); +#if FTS_ESDCHECK_EN + fts_esdcheck_switch(DISABLE); +#endif + if (fts_updatefun_curr.upgrade_with_app_i_file) + fts_updatefun_curr.upgrade_with_app_i_file(client); +#if FTS_ESDCHECK_EN + fts_esdcheck_switch(ENABLE); +#endif + fts_irq_enable(); + mutex_unlock(&fts_input_dev->mutex); + + return count; +} +/************************************************************************ +* Name: fts_fwupgradeapp_show +* Brief: no +* Input: device, device attribute, char buf +* Output: no +* Return: EPERM +***********************************************************************/ +static ssize_t fts_fwupgradeapp_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + /* place holder for future use */ + return -EPERM; +} + +/************************************************************************ +* Name: fts_fwupgradeapp_store +* Brief: upgrade from app.bin +* Input: device, device attribute, char buf, char count +* Output: no +* Return: char count +***********************************************************************/ +static ssize_t fts_fwupgradeapp_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) +{ + char fwname[FILE_NAME_LENGTH]; + struct i2c_client *client = container_of(dev, struct i2c_client, dev); + + memset(fwname, 0, sizeof(fwname)); + sprintf(fwname, "%s", buf); + fwname[count-1] = '\0'; + + mutex_lock(&fts_input_dev->mutex); + fts_irq_disable(); +#if FTS_ESDCHECK_EN + fts_esdcheck_switch(DISABLE); +#endif + if (fts_updatefun_curr.upgrade_with_app_bin_file) + fts_updatefun_curr.upgrade_with_app_bin_file(client, fwname); +#if FTS_ESDCHECK_EN + fts_esdcheck_switch(ENABLE); +#endif + fts_irq_enable(); + mutex_unlock(&fts_input_dev->mutex); + + return count; +} +/************************************************************************ +* Name: fts_driverversion_show +* Brief: no +* Input: device, device attribute, char buf +* Output: no +* Return: EPERM +***********************************************************************/ +static ssize_t fts_driverversion_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + int count; + + mutex_lock(&fts_input_dev->mutex); + + count = sprintf(buf, FTS_DRIVER_VERSION "\n"); + + mutex_unlock(&fts_input_dev->mutex); + + return count; +} +/************************************************************************ +* Name: fts_driverversion_store +* Brief: no +* Input: device, device attribute, char buf, char count +* Output: no +* Return: EPERM +***********************************************************************/ +static ssize_t fts_driverversion_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) +{ + /* place holder for future use */ + return -EPERM; +} + +#if FTS_ESDCHECK_EN +/************************************************************************ +* Name: fts_esdcheck_store +* Brief: no +* Input: device, device attribute, char buf, char count +* Output: no +* Return: EPERM +***********************************************************************/ +static ssize_t fts_esdcheck_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) +{ + mutex_lock(&fts_input_dev->mutex); + if (FTS_SYSFS_ECHO_ON(buf)) { + FTS_DEBUG("enable esdcheck"); + fts_esdcheck_switch(ENABLE); + } else if (FTS_SYSFS_ECHO_OFF(buf)) { + FTS_DEBUG("disable esdcheck"); + fts_esdcheck_switch(DISABLE); + } + mutex_unlock(&fts_input_dev->mutex); + + return -EPERM; +} + +/************************************************************************ +* Name: fts_esdcheck_show +* Brief: no +* Input: device, device attribute, char buf +* Output: no +* Return: EPERM +***********************************************************************/ +static ssize_t fts_esdcheck_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + int count; + + mutex_lock(&fts_input_dev->mutex); + + count = sprintf(buf, "Esd check: %s\n", fts_esdcheck_get_status() ? "On" : "Off"); + + mutex_unlock(&fts_input_dev->mutex); + + return count; +} +#endif +/************************************************************************ +* Name: fts_module_config_show +* Brief: no +* Input: device, device attribute, char buf +* Output: no +* Return: EPERM +***********************************************************************/ +static ssize_t fts_module_config_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + int count = 0; + + mutex_lock(&fts_input_dev->mutex); + + count += sprintf(buf, "FTS_CHIP_TYPE: \t\t\t%04X\n", FTS_CHIP_TYPE); + count += sprintf(buf+count, "FTS_DEBUG_EN: \t\t\t%s\n", FTS_DEBUG_EN ? "ON" : "OFF"); +#if defined(FTS_MT_PROTOCOL_B_EN) + count += sprintf(buf+count, "TS_MT_PROTOCOL_B_EN: \t\t%s\n", FTS_MT_PROTOCOL_B_EN ? "ON" : "OFF"); +#endif + count += sprintf(buf+count, "FTS_GESTURE_EN: \t\t%s\n", FTS_GESTURE_EN ? "ON" : "OFF"); + count += sprintf(buf+count, "FTS_ESDCHECK_EN: \t\t%s\n", FTS_ESDCHECK_EN ? "ON" : "OFF"); +#if defined(FTS_PSENSOR_EN) + count += sprintf(buf+count, "FTS_PSENSOR_EN: \t\t%s\n", FTS_PSENSOR_EN ? "ON" : "OFF"); +#endif + count += sprintf(buf+count, "FTS_GLOVE_EN: \t\t\t%s\n", FTS_GLOVE_EN ? "ON" : "OFF"); + count += sprintf(buf+count, "FTS_COVER_EN: \t\t%s\n", FTS_COVER_EN ? "ON" : "OFF"); + count += sprintf(buf+count, "FTS_CHARGER_EN: \t\t\t%s\n", FTS_CHARGER_EN ? "ON" : "OFF"); + + count += sprintf(buf+count, "FTS_REPORT_PRESSURE_EN: \t\t%s\n", FTS_REPORT_PRESSURE_EN ? "ON" : "OFF"); + count += sprintf(buf+count, "FTS_FORCE_TOUCH_EN: \t\t%s\n", FTS_FORCE_TOUCH_EN ? "ON" : "OFF"); + + count += sprintf(buf+count, "FTS_TEST_EN: \t\t\t%s\n", FTS_TEST_EN ? "ON" : "OFF"); + count += sprintf(buf+count, "FTS_APK_NODE_EN: \t\t%s\n", FTS_APK_NODE_EN ? "ON" : "OFF"); + count += sprintf(buf+count, "FTS_POWER_SOURCE_CUST_EN: \t%s\n", FTS_POWER_SOURCE_CUST_EN ? "ON" : "OFF"); + count += sprintf(buf+count, "FTS_AUTO_UPGRADE_EN: \t\t%s\n", FTS_AUTO_UPGRADE_EN ? "ON" : "OFF"); + + mutex_unlock(&fts_input_dev->mutex); + + return count; +} +/************************************************************************ +* Name: fts_module_config_store +* Brief: no +* Input: device, device attribute, char buf, char count +* Output: no +* Return: EPERM +***********************************************************************/ +static ssize_t fts_module_config_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) +{ + /* place holder for future use */ + return -EPERM; +} + +/************************************************************************ +* Name: fts_show_log_show +* Brief: no +* Input: device, device attribute, char buf +* Output: no +* Return: EPERM +***********************************************************************/ +static ssize_t fts_show_log_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + int count; + + mutex_lock(&fts_input_dev->mutex); + + count = sprintf(buf, "Log: %s\n", g_show_log ? "On" : "Off"); + + mutex_unlock(&fts_input_dev->mutex); + + return count; +} +/************************************************************************ +* Name: fts_show_log_store +* Brief: no +* Input: device, device attribute, char buf, char count +* Output: no +* Return: EPERM +***********************************************************************/ +static ssize_t fts_show_log_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) +{ + /* place holder for future use */ + + mutex_lock(&fts_input_dev->mutex); + if (FTS_SYSFS_ECHO_ON(buf)) { + FTS_DEBUG("enable show log info/error"); + g_show_log = 1; + } else if (FTS_SYSFS_ECHO_OFF(buf)) { + FTS_DEBUG("disable show log info/error"); + g_show_log = 0; + } + mutex_unlock(&fts_input_dev->mutex); + return count; +} +/************************************************************************ +* Name: fts_dumpreg_store +* Brief: no +* Input: device, device attribute, char buf, char count +* Output: no +* Return: EPERM +***********************************************************************/ +static ssize_t fts_dumpreg_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) +{ + /* place holder for future use */ + return -EPERM; +} + +/************************************************************************ +* Name: fts_dumpreg_show +* Brief: no +* Input: device, device attribute, char buf +* Output: no +* Return: EPERM +***********************************************************************/ +static ssize_t fts_dumpreg_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + char tmp[256]; + int count = 0; + u8 regvalue = 0; + struct i2c_client *client; + + mutex_lock(&fts_input_dev->mutex); +#if FTS_ESDCHECK_EN + fts_esdcheck_proc_busy(1); +#endif + client = container_of(dev, struct i2c_client, dev); + fts_i2c_read_reg(client, FTS_REG_POWER_MODE, ®value); + count += sprintf(tmp + count, "Power Mode:0x%02x\n", regvalue); + + fts_i2c_read_reg(client, FTS_REG_FW_VER, ®value); + count += sprintf(tmp + count, "FW Ver:0x%02x\n", regvalue); + + fts_i2c_read_reg(client, FTS_REG_VENDOR_ID, ®value); + count += sprintf(tmp + count, "Vendor ID:0x%02x\n", regvalue); + + fts_i2c_read_reg(client, FTS_REG_LCD_BUSY_NUM, ®value); + count += sprintf(tmp + count, "LCD Busy Number:0x%02x\n", regvalue); + + fts_i2c_read_reg(client, FTS_REG_GESTURE_EN, ®value); + count += sprintf(tmp + count, "Gesture Mode:0x%02x\n", regvalue); + + fts_i2c_read_reg(client, FTS_REG_CHARGER_MODE_EN, ®value); + count += sprintf(tmp + count, "charge stat:0x%02x\n", regvalue); + + fts_i2c_read_reg(client, FTS_REG_INT_CNT, ®value); + count += sprintf(tmp + count, "INT count:0x%02x\n", regvalue); + + fts_i2c_read_reg(client, FTS_REG_FLOW_WORK_CNT, ®value); + count += sprintf(tmp + count, "ESD count:0x%02x\n", regvalue); +#if FTS_ESDCHECK_EN + fts_esdcheck_proc_busy(0); +#endif + memcpy(buf, tmp, count); + mutex_unlock(&fts_input_dev->mutex); + return count; +} + +/****************************************/ +/* sysfs */ +/* get the fw version +* example:cat fw_version +*/ +static DEVICE_ATTR(fts_fw_version, S_IRUGO|S_IWUSR, fts_tpfwver_show, fts_tpfwver_store); + +/* upgrade from *.i +* example: echo 1 > fw_update +*/ +static DEVICE_ATTR(fts_fw_update, S_IRUGO|S_IWUSR, fts_fwupdate_show, fts_fwupdate_store); +/* read and write register +* read example: echo 88 > rw_reg ---read register 0x88 +* write example:echo 8807 > rw_reg ---write 0x07 into register 0x88 +* +* note:the number of input must be 2 or 4.if it not enough,please fill in the 0. +*/ +static DEVICE_ATTR(fts_rw_reg, S_IRUGO|S_IWUSR, fts_tprwreg_show, fts_tprwreg_store); +/* upgrade from app.bin +* example:echo "*_app.bin" > upgrade_app +*/ +static DEVICE_ATTR(fts_upgrade_app, S_IRUGO|S_IWUSR, fts_fwupgradeapp_show, fts_fwupgradeapp_store); +static DEVICE_ATTR(fts_driver_version, S_IRUGO|S_IWUSR, fts_driverversion_show, fts_driverversion_store); +static DEVICE_ATTR(fts_dump_reg, S_IRUGO|S_IWUSR, fts_dumpreg_show, fts_dumpreg_store); +static DEVICE_ATTR(fts_show_log, S_IRUGO|S_IWUSR, fts_show_log_show, fts_show_log_store); +static DEVICE_ATTR(fts_module_config, S_IRUGO|S_IWUSR, fts_module_config_show, fts_module_config_store); +static DEVICE_ATTR(fts_hw_reset, S_IRUGO|S_IWUSR, fts_hw_reset_show, fts_hw_reset_store); +static DEVICE_ATTR(fts_irq, S_IRUGO|S_IWUSR, fts_irq_show, fts_irq_store); + +#if FTS_ESDCHECK_EN +static DEVICE_ATTR(fts_esd_check, S_IRUGO|S_IWUSR, fts_esdcheck_show, fts_esdcheck_store); +#endif + +/* add your attr in here*/ +static struct attribute *fts_attributes[] = { + &dev_attr_fts_fw_version.attr, + &dev_attr_fts_fw_update.attr, + &dev_attr_fts_rw_reg.attr, + &dev_attr_fts_dump_reg.attr, + &dev_attr_fts_upgrade_app.attr, + &dev_attr_fts_driver_version.attr, + &dev_attr_fts_show_log.attr, + &dev_attr_fts_module_config.attr, + &dev_attr_fts_hw_reset.attr, + &dev_attr_fts_irq.attr, +#if FTS_ESDCHECK_EN + &dev_attr_fts_esd_check.attr, +#endif + NULL +}; + +static struct attribute_group fts_attribute_group = { + .attrs = fts_attributes +}; + +/************************************************************************ +* Name: fts_create_sysfs +* Brief: create sysfs for debug +* Input: i2c info +* Output: no +* Return: success =0 +***********************************************************************/ +int fts_create_sysfs(struct i2c_client *client) +{ + int err; + err = sysfs_create_group(&client->dev.kobj, &fts_attribute_group); + if (0 != err) { + FTS_ERROR("[EX]: sysfs_create_group() failed!!"); + sysfs_remove_group(&client->dev.kobj, &fts_attribute_group); + return -EIO; + } else { + FTS_INFO("[EX]: sysfs_create_group() succeeded!!"); + } + return err; +} +/************************************************************************ +* Name: fts_remove_sysfs +* Brief: remove sys +* Input: i2c info +* Output: no +* Return: no +***********************************************************************/ +int fts_remove_sysfs(struct i2c_client *client) +{ + sysfs_remove_group(&client->dev.kobj, &fts_attribute_group); + return 0; +} diff --git a/drivers/input/touchscreen/FT8716/focaltech_ex_mode.c b/drivers/input/touchscreen/FT8716/focaltech_ex_mode.c new file mode 100755 index 0000000000000..9bd3e9a28290f --- /dev/null +++ b/drivers/input/touchscreen/FT8716/focaltech_ex_mode.c @@ -0,0 +1,347 @@ +/* + * + * FocalTech ftxxxx TouchScreen driver. + * + * Copyright (c) 2010-2017, Focaltech Ltd. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +/***************************************************************************** +* +* File Name: focaltech_ex_mode.c +* +* Author: Liu WeiGuang +* +* Created: 2016-08-31 +* +* Abstract: +* +* Reference: +* +*****************************************************************************/ + +/***************************************************************************** +* 1.Included header files +*****************************************************************************/ +#include "focaltech_core.h" + +/***************************************************************************** +* 2.Private constant and macro definitions using #define +*****************************************************************************/ + +/***************************************************************************** +* 3.Private enumerations, structures and unions using typedef +*****************************************************************************/ +struct fts_mode_flag { + int fts_glove_mode_flag; + int fts_cover_mode_flag; + int fts_charger_mode_flag; +}; + +struct fts_mode_flag g_fts_mode_flag; + +/***************************************************************************** +* 4.Static variables +*****************************************************************************/ + +/***************************************************************************** +* 5.Global variable or extern global variabls/functions +*****************************************************************************/ +int fts_enter_glove_mode(struct i2c_client *client, int mode); +int fts_glove_init(struct i2c_client *client); +int fts_glove_exit(struct i2c_client *client); + +int fts_enter_cover_mode(struct i2c_client *client, int mode); +int fts_cover_init(struct i2c_client *client); +int fts_cover_exit(struct i2c_client *client); + +int fts_enter_charger_mode(struct i2c_client *client, int mode); +int fts_charger_init(struct i2c_client *client); +int fts_charger_exit(struct i2c_client *client); + +/***************************************************************************** +* 6.Static function prototypes +*******************************************************************************/ + +#if FTS_GLOVE_EN +static ssize_t fts_touch_glove_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + return snprintf(buf, PAGE_SIZE, "Glove: %s\n", g_fts_mode_flag.fts_glove_mode_flag ? "On" : "Off"); +} + +static ssize_t fts_touch_glove_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) +{ + int ret; + + if (FTS_SYSFS_ECHO_ON(buf)) { + if (!g_fts_mode_flag.fts_glove_mode_flag) { + FTS_INFO("[Mode]enter glove mode"); + ret = fts_enter_glove_mode(fts_i2c_client, true); + if (ret >= 0) { + g_fts_mode_flag.fts_glove_mode_flag = true; + } + } + } else if (FTS_SYSFS_ECHO_OFF(buf)) { + if (g_fts_mode_flag.fts_glove_mode_flag) { + FTS_INFO("[Mode]exit glove mode"); + ret = fts_enter_glove_mode(fts_i2c_client, false); + if (ret >= 0) { + g_fts_mode_flag.fts_glove_mode_flag = false; + } + } + } + FTS_INFO("[Mode]glove mode status: %d", g_fts_mode_flag.fts_glove_mode_flag); + return count; +} + +/************************************************************************ +* Name: fts_enter_glove_mode +* Brief: change glove mode +* Input: glove mode +* Output: no +* Return: success >=0, otherwise failed +***********************************************************************/ +int fts_enter_glove_mode(struct i2c_client *client, int mode) +{ + int ret = 0; + static u8 buf_addr[2] = { 0 }; + static u8 buf_value[2] = { 0 }; + buf_addr[0] = FTS_REG_GLOVE_MODE_EN; + + if (mode) + buf_value[0] = 0x01; + else + buf_value[0] = 0x00; + + ret = fts_i2c_write_reg(client, buf_addr[0], buf_value[0]); + if (ret < 0) { + FTS_ERROR("[Mode]fts_enter_glove_mode write value fail"); + } + + return ret ; + +} + +/* read and write glove mode +* read example: cat fts_touch_glove_mode---read glove mode +* write example:echo 01 > fts_touch_glove_mode ---write glove mode to 01 +* +*/ +static DEVICE_ATTR (fts_glove_mode, S_IRUGO|S_IWUSR, fts_touch_glove_show, fts_touch_glove_store); + +#endif + +#if FTS_COVER_EN +static ssize_t fts_touch_cover_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + return snprintf(buf, PAGE_SIZE, "Cover: %s\n", g_fts_mode_flag.fts_cover_mode_flag ? "On" : "Off"); +} + +static ssize_t fts_touch_cover_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) +{ + int ret; + + if (FTS_SYSFS_ECHO_ON(buf)) { + if (!g_fts_mode_flag.fts_cover_mode_flag) { + FTS_INFO("[Mode]enter cover mode"); + ret = fts_enter_cover_mode(fts_i2c_client, true); + if (ret >= 0) { + g_fts_mode_flag.fts_cover_mode_flag = true; + } + } + } else if (FTS_SYSFS_ECHO_OFF(buf)) { + if (g_fts_mode_flag.fts_cover_mode_flag) { + FTS_INFO("[Mode]exit cover mode"); + ret = fts_enter_cover_mode(fts_i2c_client, false); + if (ret >= 0) { + g_fts_mode_flag.fts_cover_mode_flag = false; + } + } + } + FTS_INFO("[Mode]cover mode status: %d", g_fts_mode_flag.fts_cover_mode_flag); + return count; +} + +/************************************************************************ +* Name: fts_enter_cover_mode +* Brief: change cover mode +* Input: cover mode +* Output: no +* Return: success >=0, otherwise failed +***********************************************************************/ +int fts_enter_cover_mode(struct i2c_client *client, int mode) +{ + int ret = 0; + static u8 buf_addr[2] = { 0 }; + static u8 buf_value[2] = { 0 }; + buf_addr[0] = FTS_REG_COVER_MODE_EN; + + if (mode) + buf_value[0] = 0x01; + else + buf_value[0] = 0x00; + + ret = fts_i2c_write_reg(client, buf_addr[0], buf_value[0]); + if (ret < 0) { + FTS_ERROR("[Mode] fts_enter_cover_mode write value fail \n"); + } + + return ret ; + +} + +/* read and write cover mode +* read example: cat fts_touch_cover_mode---read cover mode +* write example:echo 01 > fts_touch_cover_mode ---write cover mode to 01 +* +*/ +static DEVICE_ATTR (fts_cover_mode, S_IRUGO|S_IWUSR, fts_touch_cover_show, fts_touch_cover_store); + +#endif + +#if FTS_CHARGER_EN +static ssize_t fts_touch_charger_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + return snprintf(buf, PAGE_SIZE, "Charger: %s\n", g_fts_mode_flag.fts_charger_mode_flag ? "On" : "Off"); +} + +static ssize_t fts_touch_charger_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) +{ + int ret; + + if (FTS_SYSFS_ECHO_ON(buf)) { + if (!g_fts_mode_flag.fts_charger_mode_flag) { + FTS_INFO("[Mode]enter charger mode"); + ret = fts_enter_charger_mode(fts_i2c_client, true); + if (ret >= 0) { + g_fts_mode_flag.fts_charger_mode_flag = true; + } + } + } else if (FTS_SYSFS_ECHO_OFF(buf)) { + if (g_fts_mode_flag.fts_charger_mode_flag) { + FTS_INFO("[Mode]exit charger mode"); + ret = fts_enter_charger_mode(fts_i2c_client, false); + if (ret >= 0) { + g_fts_mode_flag.fts_charger_mode_flag = false; + } + } + } + FTS_INFO("[Mode]charger mode status: %d", g_fts_mode_flag.fts_charger_mode_flag); + return count; +} + +/************************************************************************ +* Name: fts_enter_charger_mode +* Brief: change charger mode +* Input: charger mode +* Output: no +* Return: success >=0, otherwise failed +***********************************************************************/ +int fts_enter_charger_mode(struct i2c_client *client, int mode) +{ + int ret = 0; + static u8 buf_addr[2] = { 0 }; + static u8 buf_value[2] = { 0 }; + buf_addr[0] = FTS_REG_CHARGER_MODE_EN; + + if (mode) + buf_value[0] = 0x01; + else + buf_value[0] = 0x00; + + ret = fts_i2c_write_reg(client, buf_addr[0], buf_value[0]); + if (ret < 0) { + FTS_DEBUG("[Mode]fts_enter_charger_mode write value fail"); + } + + return ret ; + +} + +/* read and write charger mode +* read example: cat fts_touch_charger_mode---read charger mode +* write example:echo 01 > fts_touch_charger_mode ---write charger mode to 01 +* +*/ +static DEVICE_ATTR (fts_charger_mode, S_IRUGO|S_IWUSR, fts_touch_charger_show, fts_touch_charger_store); + +#endif + +static struct attribute *fts_touch_mode_attrs[] = { +#if FTS_GLOVE_EN + &dev_attr_fts_glove_mode.attr, +#endif + +#if FTS_COVER_EN + &dev_attr_fts_cover_mode.attr, +#endif + +#if FTS_CHARGER_EN + &dev_attr_fts_charger_mode.attr, +#endif + + NULL, +}; + +static struct attribute_group fts_touch_mode_group = { + .attrs = fts_touch_mode_attrs, +}; + +int fts_ex_mode_init(struct i2c_client *client) +{ + int err = 0; + + g_fts_mode_flag.fts_glove_mode_flag = false; + g_fts_mode_flag.fts_cover_mode_flag = false; + g_fts_mode_flag.fts_charger_mode_flag = false; + + err = sysfs_create_group(&client->dev.kobj, &fts_touch_mode_group); + if (0 != err) { + FTS_ERROR("[Mode]create sysfs failed."); + sysfs_remove_group(&client->dev.kobj, &fts_touch_mode_group); + return -EIO; + } else { + FTS_DEBUG("[Mode]create sysfs succeeded"); + } + + return err; + +} + +int fts_ex_mode_exit(struct i2c_client *client) +{ + sysfs_remove_group(&client->dev.kobj, &fts_touch_mode_group); + return 0; +} + +int fts_ex_mode_recovery(struct i2c_client *client) +{ + int ret = 0; +#if FTS_GLOVE_EN + if (g_fts_mode_flag.fts_glove_mode_flag) + ret = fts_enter_glove_mode(client, true); +#endif + +#if FTS_COVER_EN + if (g_fts_mode_flag.fts_cover_mode_flag) + ret = fts_enter_cover_mode(client, true); +#endif + +#if FTS_CHARGER_EN + if (g_fts_mode_flag.fts_charger_mode_flag) + ret = fts_enter_charger_mode(client, true); +#endif + + return ret; +} + diff --git a/drivers/input/touchscreen/FT8716/focaltech_flash.c b/drivers/input/touchscreen/FT8716/focaltech_flash.c new file mode 100755 index 0000000000000..f9055208b55f7 --- /dev/null +++ b/drivers/input/touchscreen/FT8716/focaltech_flash.c @@ -0,0 +1,723 @@ +/* + * + * FocalTech fts TouchScreen driver. + * + * Copyright (c) 2010-2017, Focaltech Ltd. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +/***************************************************************************** +* +* File Name: focaltech_flash.c +* +* Author: fupeipei +* +* Created: 2016-08-08 +* +* Abstract: +* +* Reference: +* +*****************************************************************************/ + +/***************************************************************************** +* 1.Included header files +*****************************************************************************/ +#include "focaltech_core.h" +#include "focaltech_flash.h" + +/***************************************************************************** +* Static variables +*****************************************************************************/ +struct ft_chip_t chip_types; +u8 fw_upgrade_status = FW_NO_UPGRADE; + +/***************************************************************************** +* Global variable or extern global variabls/functions +*****************************************************************************/ +/* Upgrade FW/PRAMBOOT/LCD CFG */ +u8 CTPM_FW[] = { +#include FTS_UPGRADE_FW_APP_EBBG +}; + +u8 CTPM_FW1[] = { +#include FTS_UPGRADE_FW_APP_CSOT +}; + +#if (FTS_GET_VENDOR_ID_NUM >= 2) +u8 CTPM_FW2[] = { +#include FTS_UPGRADE_FW2_APP +}; +#endif + +#if (FTS_GET_VENDOR_ID_NUM >= 3) +u8 CTPM_FW3[] = { +#include FTS_UPGRADE_FW3_APP +}; +#endif + +u8 aucFW_PRAM_BOOT[] = { +#ifdef FTS_UPGRADE_PRAMBOOT +#include FTS_UPGRADE_PRAMBOOT +#endif +}; + +u8 CTPM_LCD_CFG[] = { +#ifdef FTS_UPGRADE_LCD_CFG +#include FTS_UPGRADE_LCD_CFG +#endif +}; + +struct fts_upgrade_fun fts_updatefun_curr; +struct workqueue_struct *touch_wq; +struct work_struct fw_update_work; +u8 *g_fw_file; +int g_fw_len; +/***************************************************************************** +* Static function prototypes +*****************************************************************************/ + +/************************************************************************ +* Name: fts_ctpm_upgrade_delay +* Brief: 0 +* Input: 0 +* Output: 0 +* Return: 0 +***********************************************************************/ +void fts_ctpm_upgrade_delay(u32 i) +{ + do { + i--; + } while (i > 0); +} + +/************************************************************************ +* Name: fts_ctpm_i2c_hid2std +* Brief: HID to I2C +* Input: i2c info +* Output: no +* Return: fail =0 +***********************************************************************/ +int fts_ctpm_i2c_hid2std(struct i2c_client *client) +{ +#if (FTS_CHIP_IDC) + return 0; +#else + u8 buf[5] = {0}; + int bRet = 0; + + buf[0] = 0xeb; + buf[1] = 0xaa; + buf[2] = 0x09; + bRet = fts_i2c_write(client, buf, 3); + msleep(10); + buf[0] = buf[1] = buf[2] = 0; + fts_i2c_read(client, buf, 0, buf, 3); + + if ((0xeb == buf[0]) && (0xaa == buf[1]) && (0x08 == buf[2])) { + FTS_DEBUG("hidi2c change to stdi2c successful!!"); + bRet = 1; + } else { + FTS_ERROR("hidi2c change to stdi2c error!!"); + bRet = 0; + } + + return bRet; +#endif +} + +/************************************************************************ +* Name: fts_get_chip_types +* Brief: get correct chip information +* Input: +* Output: +* Return: +***********************************************************************/ +void fts_get_chip_types(void) +{ + struct ft_chip_t ctype[] = FTS_CHIP_TYPE_MAPPING; + int ic_type = 0; + + if (sizeof(ctype) != sizeof(struct ft_chip_t)) /* only one array */ + ic_type = IC_SERIALS - 1; + + chip_types = ctype[ic_type]; + + FTS_INFO("CHIP TYPE ID = 0x%02x%02x", chip_types.chip_idh, chip_types.chip_idl); +} + +/************************************************************************ +* Name: fts_ctpm_get_upgrade_array +* Brief: decide which ic +* Input: no +* Output: get ic info in fts_updateinfo_curr +* Return: no +***********************************************************************/ +void fts_ctpm_get_upgrade_array(void) +{ + + FTS_FUNC_ENTER(); + + fts_get_chip_types(); + + fts_ctpm_i2c_hid2std(fts_i2c_client); + + /* Get functin pointer */ + memcpy(&fts_updatefun_curr, &fts_updatefun, sizeof(struct fts_upgrade_fun)); + + FTS_FUNC_EXIT(); +} + +/************************************************************************ +* Name: fts_ctpm_rom_or_pram_reset +* Brief: RST CMD(07), reset to romboot(maybe->bootloader) +* Input: +* Output: +* Return: +***********************************************************************/ +void fts_ctpm_rom_or_pram_reset(struct i2c_client *client) +{ + u8 rst_cmd = FTS_REG_RESET_FW; + + FTS_INFO("[UPGRADE]******Reset to romboot/bootloader******"); + fts_i2c_write(client, &rst_cmd, 1); + /* The delay can't be changed */ + msleep(300); +} + +/************************************************************************ +* Name: fts_ctpm_auto_clb +* Brief: auto calibration +* Input: i2c info +* Output: no +* Return: 0 +***********************************************************************/ +int fts_ctpm_auto_clb(struct i2c_client *client) +{ +#if FTS_AUTO_CLB_EN + u8 uc_temp = 0x00; + u8 i = 0; + + /*start auto CLB */ + msleep(200); + + fts_i2c_write_reg(client, 0, FTS_REG_WORKMODE_FACTORY_VALUE); + /*make sure already enter factory mode */ + msleep(100); + /*write command to start calibration */ + fts_i2c_write_reg(client, 2, 0x4); + msleep(300); + if ((chip_types.chip_idh == 0x11) || (chip_types.chip_idh == 0x12) || (chip_types.chip_idh == 0x13) || (chip_types.chip_idh == 0x14)) { + for (i = 0; i < 100; i++) { + fts_i2c_read_reg(client, 0x02, &uc_temp); + if (0x02 == uc_temp || + 0xFF == uc_temp) { + break; + } + msleep(20); + } + } else { + for (i = 0; i < 100; i++) { + fts_i2c_read_reg(client, 0, &uc_temp); + if (0x0 == ((uc_temp&0x70)>>4)) { + break; + } + msleep(20); + } + } + fts_i2c_write_reg(client, 0, 0x40); + msleep(200); + fts_i2c_write_reg(client, 2, 0x5); + msleep(300); + fts_i2c_write_reg(client, 0, FTS_REG_WORKMODE_WORK_VALUE); + msleep(300); +#endif + + return 0; +} + +/************************************************************************ +* Name: fts_GetFirmwareSize +* Brief: get file size +* Input: file name +* Output: no +* Return: file size +***********************************************************************/ +int fts_GetFirmwareSize(char *firmware_name) +{ + struct file *pfile = NULL; + struct inode *inode; + unsigned long magic; + off_t fsize = 0; + char filepath[FILE_NAME_LENGTH]; + + memset(filepath, 0, sizeof(filepath)); + sprintf(filepath, "%s%s", FTXXXX_INI_FILEPATH_CONFIG, firmware_name); + if (NULL == pfile) { + pfile = filp_open(filepath, O_RDONLY, 0); + } + if (IS_ERR(pfile)) { + FTS_ERROR("error occured while opening file %s", filepath); + return -EIO; + } + inode = pfile->f_dentry->d_inode; + magic = inode->i_sb->s_magic; + fsize = inode->i_size; + filp_close(pfile, NULL); + return fsize; +} + +/************************************************************************ +* Name: fts_ReadFirmware +* Brief: read firmware buf for .bin file. +* Input: file name, data buf +* Output: data buf +* Return: 0 +***********************************************************************/ +int fts_ReadFirmware(char *firmware_name, u8 *firmware_buf) +{ + struct file *pfile = NULL; + struct inode *inode; + unsigned long magic; + off_t fsize; + char filepath[FILE_NAME_LENGTH]; + loff_t pos; + mm_segment_t old_fs; + + memset(filepath, 0, sizeof(filepath)); + sprintf(filepath, "%s%s", FTXXXX_INI_FILEPATH_CONFIG, firmware_name); + if (NULL == pfile) { + pfile = filp_open(filepath, O_RDONLY, 0); + } + if (IS_ERR(pfile)) { + FTS_ERROR("[UPGRADE] Error occured while opening file %s.\n", filepath); + return -EIO; + } + inode = pfile->f_dentry->d_inode; + magic = inode->i_sb->s_magic; + fsize = inode->i_size; + old_fs = get_fs(); + set_fs(KERNEL_DS); + pos = 0; + vfs_read(pfile, firmware_buf, fsize, &pos); + filp_close(pfile, NULL); + set_fs(old_fs); + return 0; +} + +/************************************************************************ +* Name: fts_getsize +* Brief: Get different file's size +* Input: +* Output: +* Return: file's size +***********************************************************************/ +u32 fts_getsize(u8 fw_type) +{ + int fw_len = 0; + + if (fw_type == FW_SIZE) + fw_len = sizeof(CTPM_FW); + if (fw_type == FW1_SIZE) + fw_len = sizeof(CTPM_FW1); +#if (FTS_GET_VENDOR_ID_NUM >= 2) + else if (fw_type == FW2_SIZE) + fw_len = sizeof(CTPM_FW2); +#endif +#if (FTS_GET_VENDOR_ID_NUM >= 3) + else if (fw_type == FW3_SIZE) + fw_len = sizeof(CTPM_FW3); +#endif +#if FTS_CHIP_IDC + else if (fw_type == PRAMBOOT_SIZE) + fw_len = sizeof(aucFW_PRAM_BOOT); +#endif +#if (FTS_CHIP_TYPE == _FT8006) + else if (fw_type == LCD_CFG_SIZE) + fw_len = sizeof(CTPM_LCD_CFG); +#endif + + return fw_len; +} + +/************************************************************************ +* Name: fts_ctpm_get_pram_or_rom_id +* Brief: 0 +* Input: 0 +* Output: 0 +* Return: 0 +***********************************************************************/ +enum FW_STATUS fts_ctpm_get_pram_or_rom_id(struct i2c_client *client) +{ + u8 buf[4]; + u8 reg_val[2] = {0}; + enum FW_STATUS inRomBoot = FTS_RUN_IN_ERROR; + + fts_ctpm_i2c_hid2std(client); + + /*Enter upgrade mode*/ + /*send 0x55 in time windows*/ + buf[0] = FTS_UPGRADE_55; + buf[1] = FTS_UPGRADE_AA; + fts_i2c_write(client, buf, 2); + + msleep(20); + + buf[0] = 0x90; + buf[1] = buf[2] = buf[3] = 0x00; + fts_i2c_read(client, buf, 4, reg_val, 2); + + FTS_DEBUG("[UPGRADE] Read ROM/PRAM/Bootloader id:0x%02x%02x", reg_val[0], reg_val[1]); + if ((reg_val[0] == 0x00) || (reg_val[0] == 0xFF)) { + inRomBoot = FTS_RUN_IN_ERROR; + } else if (reg_val[0] == chip_types.pramboot_idh && reg_val[1] == chip_types.pramboot_idl) { + inRomBoot = FTS_RUN_IN_PRAM; + } else if (reg_val[0] == chip_types.rom_idh && reg_val[1] == chip_types.rom_idl) { + inRomBoot = FTS_RUN_IN_ROM; + } else if (reg_val[0] == chip_types.bootloader_idh && reg_val[1] == chip_types.bootloader_idl) { + inRomBoot = FTS_RUN_IN_BOOTLOADER; + } + + return inRomBoot; +} + +/************************************************************************ +* Name: fts_ctpm_get_app_file +* Brief: get app file by Vendor ID +* Input: +* Output: +* Return: <0: vendor id not correct,not upgrade +***********************************************************************/ +int fts_ctpm_get_i_file(struct i2c_client *client, int fw_valid) +{ + int ret; + + if (fts_updatefun_curr.get_i_file) + ret = fts_updatefun_curr.get_i_file(client, fw_valid); + else + ret = -EIO; + + return ret; +} + +/************************************************************************ +* Name: fts_ctpm_get_app_ver +* Brief: get app file version +* Input: +* Output: +* Return: fw version +***********************************************************************/ +int fts_ctpm_get_app_ver(void) +{ + int i_ret = 0; + + if (fts_updatefun_curr.get_app_i_file_ver) + i_ret = fts_updatefun_curr.get_app_i_file_ver(); + + return i_ret; +} + +/************************************************************************ +* Name: fts_ctpm_fw_upgrade +* Brief: fw upgrade entry funciotn +* Input: +* Output: +* Return: 0 - upgrade successfully +* <0 - upgrade failed +***********************************************************************/ +int fts_ctpm_fw_upgrade(struct i2c_client *client) +{ + int i_ret = 0; + + if (fts_updatefun_curr.upgrade_with_app_i_file) + i_ret = fts_updatefun_curr.upgrade_with_app_i_file(client); + + return i_ret; +} + +/************************************************************************ +* Name: fts_ctpm_fw_upgrade +* Brief: fw upgrade entry funciotn +* Input: +* Output: +* Return: 0 - upgrade successfully +* <0 - upgrade failed +***********************************************************************/ +int fts_ctpm_lcd_cfg_upgrade(struct i2c_client *client) +{ + int i_ret = 0; + + if (fts_updatefun_curr.upgrade_with_lcd_cfg_i_file) + i_ret = fts_updatefun_curr.upgrade_with_lcd_cfg_i_file(client); + + return i_ret; +} + +#if (!(FTS_UPGRADE_STRESS_TEST)) +/************************************************************************ +* Name: fts_ctpm_check_fw_status +* Brief: Check App is valid or not +* Input: +* Output: +* Return: -EIO - I2C communication error +* FTS_RUN_IN_APP - APP valid +* 0 - APP invalid +***********************************************************************/ +static int fts_ctpm_check_fw_status(struct i2c_client *client) +{ + u8 chip_id1 = 0; + u8 chip_id2 = 0; + int fw_status = FTS_RUN_IN_ERROR; + int i = 0; + int ret = 0; + int i2c_noack_retry = 0; + + for (i = 0; i < 5; i++) { + ret = fts_i2c_read_reg(client, FTS_REG_CHIP_ID, &chip_id1); + if (ret < 0) { + i2c_noack_retry++; + continue; + } + ret = fts_i2c_read_reg(client, FTS_REG_CHIP_ID2, &chip_id2); + if (ret < 0) { + i2c_noack_retry++; + continue; + } + + if (((chip_id1 == chip_types.chip_idh) || (chip_id1 == 87)) +#if FTS_CHIP_IDC + && ((chip_id2 == chip_types.chip_idl) || (chip_id2 == 16)) +#endif + ) { + fw_status = FTS_RUN_IN_APP; + break; + } + } + + FTS_DEBUG("[UPGRADE]: chip_id = %02x%02x, chip_types.chip_idh = %02x%02x", + chip_id1, chip_id2, chip_types.chip_idh, chip_types.chip_idl); + + /* I2C No ACK 5 times, then return -EIO */ + if (i2c_noack_retry >= 5) + return -EIO; + + /* I2C communication ok, but not get correct ID, need check pram/rom/bootloader */ + if (i >= 5) { + fw_status = fts_ctpm_get_pram_or_rom_id(client); + } + + return fw_status; +} + +/************************************************************************ +* Name: fts_ctpm_check_fw_ver +* Brief: Check vendor id is valid or not +* Input: +* Output: +* Return: 1 - vendor id valid +* 0 - vendor id invalid +***********************************************************************/ +static int fts_ctpm_check_fw_ver(struct i2c_client *client) +{ + u8 uc_tp_fm_ver; + u8 uc_host_fm_ver = 0; + + fts_i2c_read_reg(client, FTS_REG_FW_VER, &uc_tp_fm_ver); + uc_host_fm_ver = fts_ctpm_get_app_ver(); + + FTS_DEBUG("[UPGRADE]: uc_tp_fm_ver = 0x%x, uc_host_fm_ver = 0x%x!!", uc_tp_fm_ver, uc_host_fm_ver); + if (uc_tp_fm_ver < uc_host_fm_ver) { + return 1; + } else { + return 0; + } +} + +/************************************************************************ +* Name: fts_ctpm_check_need_upgrade +* Brief: +* Input: +* Output: +* Return: 1 - Need upgrade +* 0 - No upgrade +***********************************************************************/ +static int fts_ctpm_check_need_upgrade(struct i2c_client *client) +{ + int fw_status = 0; + int bUpgradeFlag = false; + + FTS_FUNC_ENTER(); + + /* 1. veriry FW APP is valid or not */ + fw_status = fts_ctpm_check_fw_status(client); + FTS_DEBUG("[UPGRADE]: fw_status = %d!!", fw_status); + if (fw_status < 0) { + /* I2C no ACK, return immediately */ + FTS_ERROR("[UPGRADE]******I2C NO ACK,exit upgrade******"); + return -EIO; + } else if (fw_status == FTS_RUN_IN_ERROR) { + FTS_ERROR("[UPGRADE]******IC Type Fail******"); + } else if (fw_status == FTS_RUN_IN_APP) { + FTS_INFO("[UPGRADE]**********FW APP valid**********"); + + if (fts_ctpm_get_i_file(client, 1) != 0) { + FTS_DEBUG("[UPGRADE]******Get upgrade file(fw) fail******"); + return -EIO; + } + + if (fts_ctpm_check_fw_ver(client) == 1) { + FTS_DEBUG("[UPGRADE]**********need upgrade fw**********"); + bUpgradeFlag = true; + } else { + FTS_DEBUG("[UPGRADE]**********Don't need upgrade fw**********"); + bUpgradeFlag = false; + } + } else { + /* if app is invalid, reset to run ROM */ + FTS_INFO("[UPGRADE]**********FW APP invalid**********"); + fts_ctpm_rom_or_pram_reset(client); + if (fts_ctpm_get_i_file(client, 0) != 0) { + FTS_DEBUG("[UPGRADE]******Get upgrade file(flash) fail******"); + fts_ctpm_rom_or_pram_reset(client); + return -EIO; + } + fts_ctpm_rom_or_pram_reset(client); + bUpgradeFlag = true; + } + + FTS_FUNC_EXIT(); + + return bUpgradeFlag; +} + +/************************************************************************ +* Name: fts_ctpm_auto_upgrade +* Brief: auto upgrade +* Input: +* Output: +* Return: 0 - no upgrade +***********************************************************************/ +int fts_ctpm_auto_upgrade(struct i2c_client *client) +{ + u8 uc_tp_fm_ver; + int i_ret = 0; + int bUpgradeFlag = false; + u8 uc_upgrade_times = 0; + + FTS_DEBUG("[UPGRADE]********************check upgrade need or not********************"); + bUpgradeFlag = fts_ctpm_check_need_upgrade(client); + FTS_DEBUG("[UPGRADE]**********bUpgradeFlag = 0x%x**********", bUpgradeFlag); + if (bUpgradeFlag <= 0) { + FTS_DEBUG("[UPGRADE]**********No Upgrade, exit**********"); + return 0; + } else { + /* FW Upgrade */ + fw_upgrade_status = FW_UPGRADING; + do { + uc_upgrade_times++; + FTS_DEBUG("[UPGRADE]********************star upgrade(%d)********************", uc_upgrade_times); + + i_ret = fts_ctpm_fw_upgrade(client); + if (i_ret == 0) { + /* upgrade success */ + fts_i2c_read_reg(client, FTS_REG_FW_VER, &uc_tp_fm_ver); + FTS_DEBUG("[UPGRADE]********************Success upgrade to new fw version 0x%x********************", uc_tp_fm_ver); + + fts_ctpm_auto_clb(client); + break; + } else { + /* upgrade fail, reset to run ROM BOOT.. + * if app in flash is ok, TP will work success + */ + FTS_ERROR("[UPGRADE]********************upgrade fail, reset now********************"); + fts_ctpm_rom_or_pram_reset(client); + } + } while (uc_upgrade_times < 2); /* if upgrade fail, upgrade again. then return */ + fw_upgrade_status = FW_UPGRADED; + } + + return i_ret; +} +#endif + +#if FTS_AUTO_UPGRADE_EN +static void fts_ctpm_update_work_func(struct work_struct *work) +{ + int i_ret = 0; + + FTS_DEBUG("[UPGRADE]******************************FTS enter upgrade******************************"); + fts_irq_disable(); + + /* esd check */ +#if FTS_ESDCHECK_EN + fts_esdcheck_switch(DISABLE); +#endif + + i_ret = fts_ctpm_auto_upgrade(fts_i2c_client); + if (i_ret < 0) + FTS_ERROR("[UPGRADE]**********TP FW upgrade failed**********"); + +#if FTS_AUTO_UPGRADE_FOR_LCD_CFG_EN + msleep(2000); + + /* lcd_cfg upgrade */ + i_ret = fts_ctpm_lcd_cfg_upgrade(fts_i2c_client); + if (i_ret < 0) + FTS_ERROR("[UPGRADE]**********LCD cfg upgrade failed*********"); +#endif + +#if FTS_ESDCHECK_EN + fts_esdcheck_switch(ENABLE); +#endif + fts_irq_enable(); + + FTS_DEBUG("[UPGRADE]******************************FTS exit upgrade******************************"); +} + +/***************************************************************************** +* Name: fts_ctpm_upgrade_init +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +void fts_ctpm_upgrade_init(void) +{ + FTS_FUNC_ENTER(); + + touch_wq = create_singlethread_workqueue("touch_wq"); + if (touch_wq) { + INIT_WORK(&fw_update_work, fts_ctpm_update_work_func); + queue_work(touch_wq, &fw_update_work); + } else { + FTS_ERROR("[UPGRADE]create_singlethread_workqueue failed\n"); + } + + FTS_FUNC_EXIT(); +} + +/***************************************************************************** +* Name: fts_ctpm_upgrade_exit +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +void fts_ctpm_upgrade_exit(void) +{ + FTS_FUNC_ENTER(); + destroy_workqueue(touch_wq); + FTS_FUNC_EXIT(); +} + +#endif /* #if FTS_AUTO_UPGRADE_EN */ diff --git a/drivers/input/touchscreen/FT8716/focaltech_flash.h b/drivers/input/touchscreen/FT8716/focaltech_flash.h new file mode 100755 index 0000000000000..fe65ce4b7663e --- /dev/null +++ b/drivers/input/touchscreen/FT8716/focaltech_flash.h @@ -0,0 +1,131 @@ +/************************************************************************ +* Copyright (C) 2010-2017, Focaltech Systems (R)£¬All Rights Reserved. +* Copyright (C) 2018 XiaoMi, Inc. +* +* File Name: focaltech_flash.h +* +* Author: fupeipei +* +* Created: 2016-08-07 +* +* Abstract: +* +************************************************************************/ +#ifndef __LINUX_FOCALTECH_FLASH_H__ +#define __LINUX_FOCALTECH_FLASH_H__ + +/***************************************************************************** +* 1.Included header files +*****************************************************************************/ +#include "focaltech_flash/focaltech_upgrade_common.h" + +/***************************************************************************** +* Private constant and macro definitions using #define +*****************************************************************************/ +#define FTS_REG_ECC 0xCC +#define FTS_RST_CMD_REG2 0xBC +#define FTS_READ_ID_REG 0x90 +#define FTS_ERASE_APP_REG 0x61 +#define FTS_ERASE_PARAMS_CMD 0x63 +#define FTS_FW_WRITE_CMD 0xBF +#define FTS_REG_RESET_FW 0x07 +#define FTS_RST_CMD_REG1 0xFC +#define LEN_FLASH_ECC_MAX 0xFFFE + +#define FTS_PACKET_LENGTH 128 +#define FTS_SETTING_BUF_LEN 128 + +#define FTS_UPGRADE_LOOP 30 +#define AUTO_CLB_NEED 1 +#define AUTO_CLB_NONEED 0 +#define FTS_UPGRADE_AA 0xAA +#define FTS_UPGRADE_55 0x55 +#define FTXXXX_INI_FILEPATH_CONFIG "/sdcard/" + +enum FW_STATUS { + FTS_RUN_IN_ERROR, + FTS_RUN_IN_APP, + FTS_RUN_IN_ROM, + FTS_RUN_IN_PRAM, + FTS_RUN_IN_BOOTLOADER +}; + +enum FILE_SIZE_TYPE { + FW_SIZE, + FW1_SIZE, + FW2_SIZE, + FW3_SIZE, + PRAMBOOT_SIZE, + LCD_CFG_SIZE +}; + +/* pramboot for 8716 */ +#define FTS_PRAMBOOT_8716 "include/pramboot/FT8716_Pramboot_V0.5_20160723.i" +#define FTS_UPGRADE_PRAMBOOT FTS_PRAMBOOT_8716 + + +#define FTS_PRAMBOOT_E716 "include/pramboot/FT8716_Pramboot_V0.5_20160723.i" +#define FTS_UPGRADE_PRAMBOOT FTS_PRAMBOOT_8716 + + + + +/***************************************************************************** +* Private enumerations, structures and unions using typedef +*****************************************************************************/ +/* IC info */ + +struct fts_upgrade_fun { + int (*get_i_file)(struct i2c_client *, int); + int (*get_app_bin_file_ver)(char *); + int (*get_app_i_file_ver)(void); + int (*upgrade_with_app_i_file)(struct i2c_client *); + int (*upgrade_with_app_bin_file)(struct i2c_client *, char *); + int (*upgrade_with_lcd_cfg_i_file)(struct i2c_client *); + int (*upgrade_with_lcd_cfg_bin_file)(struct i2c_client *, char *); +}; +extern struct fts_upgrade_fun fts_updatefun; + +/***************************************************************************** +* Static variables +*****************************************************************************/ + +/***************************************************************************** +* Global variable or extern global variabls/functions +*****************************************************************************/ +extern u8 CTPM_FW[]; +extern u8 CTPM_FW1[]; +extern u8 CTPM_FW2[]; +extern u8 CTPM_FW3[]; +extern u8 aucFW_PRAM_BOOT[]; +extern u8 CTPM_LCD_CFG[]; +extern u8 *g_fw_file; +extern int g_fw_len; +extern struct fts_upgrade_fun fts_updatefun_curr; +extern struct ft_chip_t chip_types; + +#if FTS_AUTO_UPGRADE_EN +extern struct workqueue_struct *touch_wq; +extern struct work_struct fw_update_work; +#endif + +void fts_ctpm_upgrade_init(void); +void fts_ctpm_upgrade_exit(void); +void fts_ctpm_upgrade_delay(u32 i); +void fts_ctpm_get_upgrade_array(void); +int fts_ctpm_auto_upgrade(struct i2c_client *client); +int fts_fw_upgrade(struct device *dev, bool force); +int fts_ctpm_auto_clb(struct i2c_client *client); + +/***************************************************************************** +* Static function prototypes +*****************************************************************************/ +u32 fts_getsize(u8 fw_type); +int fts_GetFirmwareSize(char *firmware_name); +int fts_ctpm_i2c_hid2std(struct i2c_client *client); +int fts_ReadFirmware(char *firmware_name, u8 *firmware_buf); +void fts_ctpm_rom_or_pram_reset(struct i2c_client *client); +enum FW_STATUS fts_ctpm_get_pram_or_rom_id(struct i2c_client *client); +#endif + + diff --git a/drivers/input/touchscreen/FT8716/focaltech_flash/Makefile b/drivers/input/touchscreen/FT8716/focaltech_flash/Makefile new file mode 100755 index 0000000000000..af1e9ce00953f --- /dev/null +++ b/drivers/input/touchscreen/FT8716/focaltech_flash/Makefile @@ -0,0 +1,10 @@ +# +# Makefile for the focaltech touchscreen drivers. +# + +# Each configuration option enables a list of files. + + +obj-$(CONFIG_TOUCHSCREEN_FTS) += focaltech_upgrade_idc.o +obj-$(CONFIG_TOUCHSCREEN_FTS) += focaltech_upgrade_ft8716.o +obj-$(CONFIG_TOUCHSCREEN_FTS) += focaltech_upgrade_test.o diff --git a/drivers/input/touchscreen/FT8716/focaltech_flash/focaltech_upgrade_common.h b/drivers/input/touchscreen/FT8716/focaltech_flash/focaltech_upgrade_common.h new file mode 100755 index 0000000000000..9d433fb072af4 --- /dev/null +++ b/drivers/input/touchscreen/FT8716/focaltech_flash/focaltech_upgrade_common.h @@ -0,0 +1,57 @@ +/************************************************************************ +* Copyright (C) 2010-2017, Focaltech Systems (R)£¬All Rights Reserved. +* +* File Name: focaltech_upgrade_common.h +* +* Author: fupeipei +* +* Created: 2016-08-16 +* +* Abstract: +* +************************************************************************/ +#ifndef __LINUX_FOCALTECH_UPGRADE_COMMON_H__ +#define __LINUX_FOCALTECH_UPGRADE_COMMON_H__ + +/***************************************************************************** +* 1.Included header files +*****************************************************************************/ +#include "../focaltech_flash.h" + +/***************************************************************************** +* Private constant and macro definitions using #define +*****************************************************************************/ + +/***************************************************************************** +* Private enumerations, structures and unions using typedef +*****************************************************************************/ + +/***************************************************************************** +* Static variables +*****************************************************************************/ + +/***************************************************************************** +* Global variable or extern global variabls/functions +*****************************************************************************/ + +/***************************************************************************** +* Static function prototypes +*****************************************************************************/ +int fts_ctpm_erase_flash(struct i2c_client *client); +int fts_ctpm_pramboot_ecc(struct i2c_client *client); +bool fts_ctpm_check_run_state(struct i2c_client *client, int state); +void fts_ctpm_start_pramboot(struct i2c_client *client); +int fts_ctpm_start_fw_upgrade(struct i2c_client *client); +bool fts_ctpm_check_in_pramboot(struct i2c_client *client); +int fts_ctpm_upgrade_idc_init(struct i2c_client *client); +int fts_ctpm_write_app_for_idc(struct i2c_client *client, u32 length, u8 *readbuf); +int fts_ctpm_upgrade_ecc(struct i2c_client *client, u32 startaddr, u32 length); +int fts_ctpm_write_pramboot_for_idc(struct i2c_client *client, u32 length, u8 *readbuf); +int fts_writeflash(struct i2c_client *client, u32 writeaddr, u32 length, u8 *readbuf, u32 cnt); +bool fts_check_app_bin_valid_idc(u8 *pbt_buf); + +int fts_ctpm_get_app_ver(void); +int fts_ctpm_fw_upgrade(struct i2c_client *client); +int fts_ctpm_lcd_cfg_upgrade(struct i2c_client *client); + +#endif diff --git a/drivers/input/touchscreen/FT8716/focaltech_flash/focaltech_upgrade_ft8716.c b/drivers/input/touchscreen/FT8716/focaltech_flash/focaltech_upgrade_ft8716.c new file mode 100755 index 0000000000000..629a1398a24d7 --- /dev/null +++ b/drivers/input/touchscreen/FT8716/focaltech_flash/focaltech_upgrade_ft8716.c @@ -0,0 +1,497 @@ +/* + * + * FocalTech fts TouchScreen driver. + * + * Copyright (c) 2010-2017, Focaltech Ltd. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +/***************************************************************************** +* +* File Name: focaltech_upgrade_ft8716.c +* +* Author: fupeipei +* +* Created: 2016-08-15 +* +* Abstract: +* +* Reference: +* +*****************************************************************************/ + +/***************************************************************************** +* 1.Included header files +*****************************************************************************/ +#include "../focaltech_core.h" + +#if ((FTS_CHIP_TYPE == _FT8716) || (FTS_CHIP_TYPE == _FTE716)) +#include "../focaltech_flash.h" +#include "focaltech_upgrade_common.h" + +/***************************************************************************** +* Static variables +*****************************************************************************/ +#define APP_FILE_MAX_SIZE (64 * 1024) +#define APP_FILE_MIN_SIZE (8) +#define APP_FILE_VER_MAPPING (0x10E) +#define APP_FILE_VENDORID_MAPPING (0x10C) +#define APP_FILE_CHIPID_MAPPING (0x11E) +#define CONFIG_START_ADDR (0x0000) +#define CONFIG_VENDOR_ID_OFFSET (0x04) +#define CONFIG_PROJECT_ID_OFFSET (0x20) +#define CONFIG_VENDOR_ID_ADDR (CONFIG_START_ADDR+CONFIG_VENDOR_ID_OFFSET) +#define CONFIG_PROJECT_ID_ADDR (CONFIG_START_ADDR+CONFIG_PROJECT_ID_OFFSET) +extern char Lcm_name[64]; + + +/***************************************************************************** +* Global variable or extern global variabls/functions +*****************************************************************************/ +static int fts_ctpm_get_i_file(struct i2c_client *client, int fw_valid); +static int fts_ctpm_get_app_i_file_ver(void); +static int fts_ctpm_get_app_bin_file_ver(char *firmware_name); +static int fts_ctpm_write_pram(struct i2c_client *client, u8 *pbt_buf, u32 dw_lenth); +static int fts_ctpm_fw_upgrade_with_app_i_file(struct i2c_client *client); +static int fts_ctpm_fw_upgrade_with_app_bin_file(struct i2c_client *client, char *firmware_name); + +struct fts_upgrade_fun fts_updatefun = { + .get_i_file = fts_ctpm_get_i_file, + .get_app_bin_file_ver = fts_ctpm_get_app_bin_file_ver, + .get_app_i_file_ver = fts_ctpm_get_app_i_file_ver, + .upgrade_with_app_i_file = fts_ctpm_fw_upgrade_with_app_i_file, + .upgrade_with_app_bin_file = fts_ctpm_fw_upgrade_with_app_bin_file, + .upgrade_with_lcd_cfg_i_file = NULL, + .upgrade_with_lcd_cfg_bin_file = NULL, +}; + +/***************************************************************************** +* Static function prototypes +*****************************************************************************/ +#if (FTS_GET_VENDOR_ID_NUM != 0) +/************************************************************************ +* Name: fts_ctpm_get_vendor_id_flash +* Brief: +* Input: +* Output: +* Return: +***********************************************************************/ +static int fts_ctpm_get_vendor_id_flash(struct i2c_client *client, u8 *vendor_id) +{ + u8 rw_buf[10]; + int i_ret; + int fw_len; + bool inpram = false; + + FTS_FUNC_ENTER(); + + /*write pramboot*/ + fw_len = fts_getsize(PRAMBOOT_SIZE); + FTS_DEBUG("[UPGRADE]: pramboot size : %d!!", fw_len); + i_ret = fts_ctpm_write_pram(client, aucFW_PRAM_BOOT, fw_len); + if (i_ret != 0) { + FTS_ERROR("[UPGRADE]: write pram failed!!"); + return -EIO; + } + + /*check run in pramboot or not! if not rum in pramboot, can not upgrade*/ + inpram = fts_ctpm_check_run_state(client, FTS_RUN_IN_PRAM); + if (!inpram) { + FTS_ERROR("[UPGRADE]: not run in pram, upgrade fail!!"); + return -EIO; + } + + /*read vendor id*/ + rw_buf[0] = 0x03; + rw_buf[1] = 0x00; + rw_buf[2] = (u8)(CONFIG_VENDOR_ID_ADDR >> 8); + rw_buf[3] = (u8)(CONFIG_VENDOR_ID_ADDR); + i_ret = fts_i2c_write(client, rw_buf, 4); + msleep(10); /* must wait, otherwise read vendor id wrong */ + i_ret = fts_i2c_read(client, NULL, 0, vendor_id, 1); + if (i_ret < 0) { + return -EIO; + } + FTS_DEBUG("Vendor ID from Flash:%x", *vendor_id); + return 0; +} +#endif + +/************************************************************************ +* Name: fts_ctpm_get_i_file +* Brief: get .i file +* Input: +* Output: +* Return: 0 - ok +* <0 - fail +***********************************************************************/ +static int fts_ctpm_get_i_file(struct i2c_client *client, int fw_valid) +{ + int ret = 0; + +#if (FTS_GET_VENDOR_ID_NUM != 0) + u8 vendor_id = 0; + + if (fw_valid) { + ret = fts_i2c_read_reg(client, FTS_REG_VENDOR_ID, &vendor_id); + } else { + ret = fts_i2c_read_reg(client, FTS_REG_VENDOR_ID, &vendor_id); + if ((ret < 0) || (vendor_id == 0xEF) || (vendor_id == 0xED)) { + /* 8736 can't read vendor id from A8 command */ + ret = fts_ctpm_get_vendor_id_flash(client, &vendor_id); + } + } + if (ret < 0) { + FTS_ERROR("Get upgrade file fail because of Vendor ID wrong"); + return ret; + } + FTS_INFO("[UPGRADE] vendor id in tp=%x", vendor_id); + FTS_INFO("[UPGRADE] vendor id in driver:%x, FTS_VENDOR_ID:%02x %02x %02x", + vendor_id, FTS_VENDOR_1_ID, FTS_VENDOR_2_ID, FTS_VENDOR_3_ID); + + ret = 0; + switch (vendor_id) { +#if (FTS_GET_VENDOR_ID_NUM >= 1) + case FTS_VENDOR_1_ID: + g_fw_file = CTPM_FW; + g_fw_len = fts_getsize(FW_SIZE); + FTS_DEBUG("[UPGRADE]FW FILE:CTPM_FW, SIZE:%x", g_fw_len); + break; +#endif +#if (FTS_GET_VENDOR_ID_NUM >= 2) + case FTS_VENDOR_2_ID: + g_fw_file = CTPM_FW2; + g_fw_len = fts_getsize(FW2_SIZE); + FTS_DEBUG("[UPGRADE]FW FILE:CTPM_FW2, SIZE:%x", g_fw_len); + break; +#endif +#if (FTS_GET_VENDOR_ID_NUM >= 3) + case FTS_VENDOR_3_ID: + g_fw_file = CTPM_FW3; + g_fw_len = fts_getsize(FW3_SIZE); + FTS_DEBUG("[UPGRADE]FW FILE:CTPM_FW3, SIZE:%x", g_fw_len); + break; +#endif + default: + FTS_ERROR("[UPGRADE]Vendor ID check fail, get fw file fail"); + ret = -EIO; + break; + } +#else + /* (FTS_GET_VENDOR_ID_NUM == 0) */ + if (strstr(Lcm_name, "ebbg")) { + g_fw_file = CTPM_FW; + g_fw_len = fts_getsize(FW_SIZE); + } else if (strstr(Lcm_name, "csot")) { + g_fw_file = CTPM_FW1; + g_fw_len = fts_getsize(FW1_SIZE); + } + FTS_DEBUG("[UPGRADE]FW FILE:CTPM_FW, SIZE:%x", g_fw_len); +#endif + if (!g_fw_len) + return -EIO; + + return ret; +} + +/************************************************************************ +* Name: fts_ctpm_get_app_bin_file_ver +* Brief: get .i file version +* Input: no +* Output: no +* Return: fw version +***********************************************************************/ +static int fts_ctpm_get_app_bin_file_ver(char *firmware_name) +{ + u8 *pbt_buf = NULL; + int fwsize = 0; + int fw_ver = 0; + + FTS_FUNC_ENTER(); + + fwsize = fts_GetFirmwareSize(firmware_name); + if (fwsize < APP_FILE_MIN_SIZE || fwsize > APP_FILE_MAX_SIZE) { + FTS_ERROR("[UPGRADE]: FW length(%x) error", fwsize); + return -EIO; + } + + pbt_buf = (unsigned char *)kmalloc(fwsize + 1, GFP_KERNEL); + if (fts_ReadFirmware(firmware_name, pbt_buf)) { + FTS_ERROR("[UPGRADE]: request_firmware failed!!"); + kfree(pbt_buf); + return -EIO; + } + + fw_ver = pbt_buf[APP_FILE_VER_MAPPING]; + + kfree(pbt_buf); + FTS_FUNC_EXIT(); + + return fw_ver; +} + +/************************************************************************ +* Name: fts_ctpm_get_app_i_file_ver +* Brief: get .i file version +* Input: no +* Output: no +* Return: fw version +***********************************************************************/ +static int fts_ctpm_get_app_i_file_ver(void) +{ + int fwsize = g_fw_len; + + if (fwsize < APP_FILE_MIN_SIZE || fwsize > APP_FILE_MAX_SIZE) { + FTS_ERROR("[UPGRADE]: FW length(%x) error", fwsize); + return 0; + } + + return g_fw_file[APP_FILE_VER_MAPPING]; +} + +/************************************************************************ +* Name: fts_ctpm_write_pram +* Brief: fw upgrade +* Input: i2c info, file buf, file len +* Output: no +* Return: fail <0 +***********************************************************************/ +static int fts_ctpm_write_pram(struct i2c_client *client, u8 *pbt_buf, u32 dw_lenth) +{ + int i_ret; + bool inrom = false; + + FTS_FUNC_ENTER(); + + /*check the length of the pramboot*/ + if (dw_lenth > APP_FILE_MAX_SIZE || dw_lenth < APP_FILE_MIN_SIZE) { + FTS_ERROR("[UPGRADE] pramboot length(%d) fail", dw_lenth); + return -EIO; + } + + /*send comond to FW, reset and start write pramboot*/ + i_ret = fts_ctpm_start_fw_upgrade(client); + if (i_ret < 0) { + FTS_ERROR("[UPGRADE]: send upgrade cmd to FW error!!"); + return i_ret; + } + + /*check run in rom or not! if run in rom, will write pramboot*/ + inrom = fts_ctpm_check_run_state(client, FTS_RUN_IN_ROM); + if (!inrom) { + FTS_ERROR("[UPGRADE]: not run in rom, write pramboot fail!!"); + return -EIO; + } + + /*write pramboot to pram*/ + i_ret = fts_ctpm_write_pramboot_for_idc(client, dw_lenth, aucFW_PRAM_BOOT); + if (i_ret < 0) { + return i_ret; + FTS_ERROR("[UPGRADE]: write pramboot fail!!"); + } + + /*read out checksum*/ + i_ret = fts_ctpm_pramboot_ecc(client); + if (i_ret < 0) { + return i_ret; + FTS_ERROR("[UPGRADE]: write pramboot ecc error!!"); + } + + /*start pram*/ + fts_ctpm_start_pramboot(client); + + FTS_FUNC_EXIT(); + + return 0; +} + +/************************************************************************ +* Name: fts_ctpm_write_app +* Brief: fw upgrade +* Input: i2c info, file buf, file len +* Output: no +* Return: fail <0 +***********************************************************************/ +static int fts_ctpm_write_app(struct i2c_client *client, u8 *pbt_buf, u32 dw_lenth) +{ + u32 temp; + int i_ret; + bool inpram = false; + + FTS_FUNC_ENTER(); + + /*check run in pramboot or not! if not rum in pramboot, can not upgrade*/ + inpram = fts_ctpm_check_run_state(client, FTS_RUN_IN_PRAM); + if (!inpram) { + FTS_ERROR("[UPGRADE]: not run in pram, upgrade fail!!"); + return -EIO; + } + + /*upgrade init*/ + i_ret = fts_ctpm_upgrade_idc_init(client); + if (i_ret < 0) { + FTS_ERROR("[UPGRADE]: upgrade init error, upgrade fail!!"); + return i_ret; + } + + /*erase the app erea in flash*/ + i_ret = fts_ctpm_erase_flash(client); + if (i_ret < 0) { + FTS_ERROR("[UPGRADE]: erase flash error!!"); + return i_ret; + } + + /*start to write app*/ + i_ret = fts_ctpm_write_app_for_idc(client, dw_lenth, pbt_buf); + if (i_ret < 0) { + FTS_ERROR("[UPGRADE]: write app error!!"); + return i_ret; + } + + /*read check sum*/ + temp = 0x1000; + i_ret = fts_ctpm_upgrade_ecc(client, temp, dw_lenth); + if (i_ret < 0) { + FTS_ERROR("[UPGRADE]: ecc error!!"); + return i_ret; + } + + /*upgrade success, reset the FW*/ + fts_ctpm_rom_or_pram_reset(client); + + FTS_FUNC_EXIT(); + + return 0; +} + +/************************************************************************ +* Name: fts_ctpm_fw_upgrade_use_buf +* Brief: fw upgrade +* Input: i2c info, file buf, file len +* Output: no +* Return: fail <0 +* success =0 +***********************************************************************/ +static int fts_ctpm_fw_upgrade_use_buf(struct i2c_client *client, u8 *pbt_buf, u32 fwsize) +{ + int i_ret = 0; + int fw_len; + + FTS_FUNC_ENTER(); + + /*write pramboot*/ + fw_len = fts_getsize(PRAMBOOT_SIZE); + FTS_DEBUG("[UPGRADE]: pramboot size : %d!!", fw_len); + i_ret = fts_ctpm_write_pram(client, aucFW_PRAM_BOOT, fw_len); + if (i_ret != 0) { + FTS_ERROR("[UPGRADE]: write pram failed!!"); + return -EIO; + } + + /*write app*/ + i_ret = fts_ctpm_write_app(client, pbt_buf, fwsize); + + FTS_FUNC_EXIT(); + + return i_ret; +} + +/************************************************************************ +* Name: fts_ctpm_fw_upgrade_with_app_i_file +* Brief: upgrade with *.i file +* Input: i2c info +* Output: +* Return: fail < 0 +***********************************************************************/ +static int fts_ctpm_fw_upgrade_with_app_i_file(struct i2c_client *client) +{ + int i_ret = 0; + u32 fw_len; + u8 *fw_buf; + + FTS_INFO("[UPGRADE]**********start upgrade with app.i**********"); + + fw_len = g_fw_len; + fw_buf = g_fw_file; + if (fw_len < APP_FILE_MIN_SIZE || fw_len > APP_FILE_MAX_SIZE) { + FTS_ERROR("[UPGRADE]: FW length(%x) error", fw_len); + return -EIO; + } + + i_ret = fts_ctpm_fw_upgrade_use_buf(client, fw_buf, fw_len); + if (i_ret != 0) { + FTS_ERROR("[UPGRADE] upgrade app.i failed"); + } else { + FTS_INFO("[UPGRADE]: upgrade app.i succeed"); + } + + return i_ret; +} + +/************************************************************************ +* Name: fts_ctpm_fw_upgrade_with_app_bin_file +* Brief: upgrade with *.bin file +* Input: i2c info, file name +* Output: no +* Return: success =0 +***********************************************************************/ +static int fts_ctpm_fw_upgrade_with_app_bin_file(struct i2c_client *client, char *firmware_name) +{ + u8 *pbt_buf = NULL; + int i_ret = 0; + bool ecc_ok = false; + int fwsize = 0; + + FTS_INFO("[UPGRADE]**********start upgrade with app.bin**********"); + + fwsize = fts_GetFirmwareSize(firmware_name); + if (fwsize < APP_FILE_MIN_SIZE || fwsize > APP_FILE_MAX_SIZE) { + FTS_ERROR("[UPGRADE]: app.bin length(%x) error, upgrade fail", fwsize); + return -EIO; + } + + pbt_buf = (unsigned char *)kmalloc(fwsize + 1, GFP_KERNEL); + if (NULL == pbt_buf) { + FTS_ERROR(" malloc pbt_buf failed "); + goto ERROR_BIN; + } + + if (fts_ReadFirmware(firmware_name, pbt_buf)) { + FTS_ERROR("[UPGRADE]: request_firmware failed!!"); + goto ERROR_BIN; + } + + /*check the app.bin invalid or not*/ + ecc_ok = fts_check_app_bin_valid_idc(pbt_buf); + + if (ecc_ok) { + FTS_INFO("[UPGRADE] app.bin ecc ok"); + i_ret = fts_ctpm_fw_upgrade_use_buf(client, pbt_buf, fwsize); + if (i_ret != 0) { + FTS_ERROR("[UPGRADE]: upgrade app.bin failed"); + goto ERROR_BIN; + } else { + FTS_INFO("[UPGRADE]: upgrade app.bin succeed"); + } + } else { + FTS_ERROR("[UPGRADE] app.bin ecc failed"); + goto ERROR_BIN; + } + + kfree(pbt_buf); + return i_ret; +ERROR_BIN: + kfree(pbt_buf); + return -EIO; +} +#endif /* #if (FTS_CHIP_TYPE == _FT8716) */ diff --git a/drivers/input/touchscreen/FT8716/focaltech_flash/focaltech_upgrade_idc.c b/drivers/input/touchscreen/FT8716/focaltech_flash/focaltech_upgrade_idc.c new file mode 100755 index 0000000000000..606abe2c9b0f8 --- /dev/null +++ b/drivers/input/touchscreen/FT8716/focaltech_flash/focaltech_upgrade_idc.c @@ -0,0 +1,575 @@ +/* + * + * FocalTech fts TouchScreen driver. + * + * Copyright (c) 2010-2017, Focaltech Ltd. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +/***************************************************************************** +* +* File Name: focaltech_upgrade_idc.c +* +* Author: fupeipei +* +* Created: 2016-08-22 +* +* Abstract: +* +* Reference: +* +*****************************************************************************/ + +/***************************************************************************** +* 1.Included header files +*****************************************************************************/ +#include "../focaltech_core.h" + +#if (FTS_CHIP_IDC == 1) +#include "../focaltech_flash.h" + +/***************************************************************************** +* Static variables +*****************************************************************************/ + +/***************************************************************************** +* Global variable or extern global variabls/functions +*****************************************************************************/ +u8 upgrade_ecc; + +/***************************************************************************** +* Static function prototypes +*****************************************************************************/ + +/************************************************************************ +* Name: fts_ctpm_upgrade_idc_init +* Brief: +* Input: +* Output: +* Return: +***********************************************************************/ +int fts_ctpm_upgrade_idc_init(struct i2c_client *client) +{ + int i_ret = 0; + u8 reg_val_id[4] = {0}; + u8 auc_i2c_write_buf[10]; + + FTS_INFO("[UPGRADE]**********Upgrade setting Init**********"); + + /*read flash ID*/ + auc_i2c_write_buf[0] = 0x05; + reg_val_id[0] = 0x00; + i_ret = fts_i2c_read(client, auc_i2c_write_buf, 1, reg_val_id, 1); + if (i_ret < 0) { + return -EIO; + } + + /*set flash clk*/ + auc_i2c_write_buf[0] = 0x05; + auc_i2c_write_buf[1] = reg_val_id[0]; + auc_i2c_write_buf[2] = 0x00; + fts_i2c_write(client, auc_i2c_write_buf, 3); + + /*send upgrade type to reg 0x09: 0x0B: upgrade; 0x0A: download*/ + auc_i2c_write_buf[0] = 0x09; + auc_i2c_write_buf[1] = 0x0B; + fts_i2c_write(client, auc_i2c_write_buf, 2); + + return 0; +} + +/************************************************************************ +* Name: fts_ctpm_start_pramboot +* Brief: +* Input: +* Output: +* Return: +***********************************************************************/ +void fts_ctpm_start_pramboot(struct i2c_client *client) +{ + u8 auc_i2c_write_buf[10]; + + FTS_INFO("[UPGRADE]**********start pramboot**********"); + auc_i2c_write_buf[0] = 0x08; + fts_i2c_write(client, auc_i2c_write_buf, 1); + msleep(20); +} + +/************************************************************************ +* Name: fts_ctpm_start_fw_upgrade +* Brief: +* Input: +* Output: +* Return: +***********************************************************************/ +int fts_ctpm_start_fw_upgrade(struct i2c_client *client) +{ + int i_ret = 0; + + /*send the soft upgrade commond to FW, and start upgrade*/ + FTS_INFO("[UPGRADE]**********send 0xAA and 0x55 to FW, start upgrade**********"); + + i_ret = fts_i2c_write_reg(client, FTS_RST_CMD_REG1, FTS_UPGRADE_AA); + msleep(10); + i_ret = fts_i2c_write_reg(client, FTS_RST_CMD_REG1, FTS_UPGRADE_55); + msleep(200); + + return i_ret; +} + +/************************************************************************ +* Name: fts_ctpm_check_run_state +* Brief: +* Input: +* Output: +* Return: +***********************************************************************/ +bool fts_ctpm_check_run_state(struct i2c_client *client, int rstate) +{ + int i = 0; + enum FW_STATUS cstate = FTS_RUN_IN_ERROR; + + for (i = 0; i < FTS_UPGRADE_LOOP; i++) { + cstate = fts_ctpm_get_pram_or_rom_id(client); + FTS_DEBUG("[UPGRADE]: run state = %d", cstate); + + if (cstate == rstate) + return true; + msleep(20); + } + + return false; +} + +/************************************************************************ +* Name: fts_ctpm_pramboot_ecc +* Brief: +* Input: +* Output: +* Return: +***********************************************************************/ +int fts_ctpm_pramboot_ecc(struct i2c_client *client) +{ + u8 auc_i2c_write_buf[10]; + u8 reg_val[4] = {0}; + + FTS_FUNC_ENTER(); + + /*read out checksum, if pramboot checksum != host checksum, upgrade fail*/ + FTS_INFO("[UPGRADE]******read out pramboot checksum******"); + auc_i2c_write_buf[0] = 0xcc; + msleep(2); + fts_i2c_read(client, auc_i2c_write_buf, 1, reg_val, 1); + if (reg_val[0] != upgrade_ecc) { /*pramboot checksum != host checksum, upgrade fail*/ + FTS_ERROR("[UPGRADE]: checksum fail : pramboot_ecc = %X, host_ecc = %X!!", reg_val[0], upgrade_ecc); + return -EIO; + } + FTS_DEBUG("[UPGRADE]: checksum success : pramboot_ecc = %X, host_ecc = %X!!", reg_val[0], upgrade_ecc); + msleep(100); + + FTS_FUNC_EXIT(); + + return 0; +} + +/************************************************************************ +* Name: fts_ctpm_upgrade_ecc +* Brief: +* Input: +* Output: +* Return: +***********************************************************************/ +int fts_ctpm_upgrade_ecc(struct i2c_client *client, u32 startaddr, u32 length) +{ + u32 i = 0; + u8 auc_i2c_write_buf[10]; + u32 temp; + u8 reg_val[4] = {0}; + int i_ret = 0; + + FTS_INFO("[UPGRADE]**********read out checksum**********"); + + /*check sum init*/ + auc_i2c_write_buf[0] = 0x64; + fts_i2c_write(client, auc_i2c_write_buf, 1); + msleep(300); + + /*send commond to pramboot to start checksum*/ + auc_i2c_write_buf[0] = 0x65; + auc_i2c_write_buf[1] = (u8)(startaddr >> 16); + auc_i2c_write_buf[2] = (u8)(startaddr >> 8); + auc_i2c_write_buf[3] = (u8)(startaddr); + + if (length > LEN_FLASH_ECC_MAX) { + temp = LEN_FLASH_ECC_MAX; + } else { + temp = length; + } + + auc_i2c_write_buf[4] = (u8)(temp >> 8); + auc_i2c_write_buf[5] = (u8)(temp); + i_ret = fts_i2c_write(client, auc_i2c_write_buf, 6); + msleep(length/256); + + /*read status : if check sum is finished?*/ + for (i = 0; i < 100; i++) { + auc_i2c_write_buf[0] = 0x6a; + reg_val[0] = reg_val[1] = 0x00; + fts_i2c_read(client, auc_i2c_write_buf, 1, reg_val, 2); + + if (0xF0 == reg_val[0] && 0x55 == reg_val[1]) { + break; + } + msleep(1); + + } + + if (length > LEN_FLASH_ECC_MAX) { + temp = LEN_FLASH_ECC_MAX; + auc_i2c_write_buf[0] = 0x65; + auc_i2c_write_buf[1] = (u8)(temp >> 16); + auc_i2c_write_buf[2] = (u8)(temp >> 8); + auc_i2c_write_buf[3] = (u8)(temp); + temp = length-LEN_FLASH_ECC_MAX; + auc_i2c_write_buf[4] = (u8)(temp >> 8); + auc_i2c_write_buf[5] = (u8)(temp); + i_ret = fts_i2c_write(client, auc_i2c_write_buf, 6); + + msleep(length/256); + + for (i = 0; i < 100; i++) { + auc_i2c_write_buf[0] = 0x6a; + reg_val[0] = reg_val[1] = 0x00; + fts_i2c_read(client, auc_i2c_write_buf, 1, reg_val, 2); + + if (0xF0 == reg_val[0] && 0x55 == reg_val[1]) { + break; + } + msleep(1); + } + } + + /*read out check sum*/ + auc_i2c_write_buf[0] = 0x66; + i_ret = fts_i2c_read(client, auc_i2c_write_buf, 1, reg_val, 1); + if (reg_val[0] != upgrade_ecc) /*if check sum fail, upgrade fail*/ { + FTS_ERROR("[UPGRADE]: ecc error! FW=%02x upgrade_ecc=%02x!!", reg_val[0], upgrade_ecc); + return -EIO; + } + + FTS_DEBUG("[UPGRADE]: ecc success : FW=%02x upgrade_ecc=%02x!!", reg_val[0], upgrade_ecc); + + upgrade_ecc = 0; + + return i_ret; +} + +/************************************************************************ +* Name: fts_ctpm_erase_flash +* Brief: +* Input: +* Output: +* Return: +***********************************************************************/ +int fts_ctpm_erase_flash(struct i2c_client *client) +{ + u32 i = 0; + u8 auc_i2c_write_buf[10]; + u8 reg_val[4] = {0}; + + FTS_INFO("[UPGRADE]**********erase app now**********"); + + /*send to erase flash*/ + auc_i2c_write_buf[0] = 0x61; + fts_i2c_write(client, auc_i2c_write_buf, 1); + msleep(1350); + + for (i = 0; i < 15; i++) { + /*get the erase app status, if get 0xF0AA£¬erase flash success*/ + auc_i2c_write_buf[0] = 0x6a; + reg_val[0] = reg_val[1] = 0x00; + fts_i2c_read(client, auc_i2c_write_buf, 1, reg_val, 2); + + if (0xF0 == reg_val[0] && 0xAA == reg_val[1]) /*erase flash success*/ { + break; + } + msleep(50); + } + + if ((0xF0 != reg_val[0] || 0xAA != reg_val[1]) && (i >= 15)) /*erase flash fail*/ { + FTS_ERROR("[UPGRADE]: erase app error.reset tp and reload FW!!"); + return -EIO; + } + FTS_DEBUG("[UPGRADE]: erase app ok!!"); + + return 0; +} + +/************************************************************************ +* Name: fts_ctpm_write_pramboot_for_idc +* Brief: +* Input: +* Output: +* Return: +***********************************************************************/ +int fts_ctpm_write_pramboot_for_idc(struct i2c_client *client, u32 length, u8 *readbuf) +{ + u32 i = 0; + u32 j; + u32 temp; + u32 packet_number; + u8 packet_buf[FTS_PACKET_LENGTH + 6]; + + upgrade_ecc = 0; + FTS_INFO("[UPGRADE]**********write pramboot to pram**********"); + + temp = 0; + packet_number = (length) / FTS_PACKET_LENGTH; + if ((length) % FTS_PACKET_LENGTH > 0) { + packet_number++; + } + packet_buf[0] = 0xae; + packet_buf[1] = 0x00; + + for (j = 0; j < packet_number; j++) { + temp = j * FTS_PACKET_LENGTH; + packet_buf[2] = (u8) (temp >> 8); + packet_buf[3] = (u8) temp; + if (j < (packet_number-1)) { + temp = FTS_PACKET_LENGTH; + } else { + temp = (length) % FTS_PACKET_LENGTH; + } + packet_buf[4] = (u8) (temp >> 8); + packet_buf[5] = (u8) temp; + + for (i = 0; i < temp; i++) { + packet_buf[6 + i] = readbuf[j * FTS_PACKET_LENGTH + i]; + upgrade_ecc ^= packet_buf[6 + i]; + } + fts_i2c_write(client, packet_buf, temp + 6); + } + + return 0; +} + +/************************************************************************ +* Name: fts_ctpm_write_app_for_idc +* Brief: +* Input: +* Output: +* Return: +***********************************************************************/ +int fts_ctpm_write_app_for_idc(struct i2c_client *client, u32 length, u8 *readbuf) +{ + u32 j; + u32 i = 0; + u32 packet_number; + u32 temp; + u32 writelenght; + u8 packet_buf[FTS_PACKET_LENGTH + 6]; + u8 auc_i2c_write_buf[10]; + u8 reg_val[4] = {0}; + + FTS_INFO("[UPGRADE]**********write app to flash**********"); + + upgrade_ecc = 0; + + packet_number = (length) / FTS_PACKET_LENGTH; + if (((length) % FTS_PACKET_LENGTH) > 0) { + packet_number++; + } + + packet_buf[0] = 0xbf; + + for (j = 0; j < packet_number; j++) { + temp = 0x1000+j * FTS_PACKET_LENGTH; + + if (j < (packet_number-1)) { + writelenght = FTS_PACKET_LENGTH; + } else { + writelenght = ((length) % FTS_PACKET_LENGTH); + } + packet_buf[1] = (u8) (temp >> 16); + packet_buf[2] = (u8) (temp >> 8); + packet_buf[3] = (u8) temp; + packet_buf[4] = (u8) (writelenght >> 8); + packet_buf[5] = (u8) writelenght; + + for (i = 0; i < writelenght; i++) { + packet_buf[6 + i] = readbuf[(temp - 0x1000+i)]; + upgrade_ecc ^= packet_buf[6 + i]; + } + + fts_i2c_write(client, packet_buf, (writelenght + 6)); + + for (i = 0; i < 30; i++) { + /*read status and check if the app writting is finished*/ + auc_i2c_write_buf[0] = 0x6a; + reg_val[0] = reg_val[1] = 0x00; + fts_i2c_read(client, auc_i2c_write_buf, 1, reg_val, 2); + + if ((j + 0x20+0x1000) == (((reg_val[0]) << 8) | reg_val[1])) { + break; + } + + fts_ctpm_upgrade_delay(1000); + } + } + msleep(50); + + return 0; +} + + +typedef enum { + APP_LEN = 0x00, + APP_LEN_NE = 0x02, + APP_P1_ECC = 0x04, + APP_P1_ECC_NE = 0x06, + APP_P2_ECC = 0x08, + APP_P2_ECC_NE = 0x0A, + APP_LEN_H = 0x12, + APP_LEN_H_NE = 0x14, + APP_BLR_ID = 0x1C, + APP_BLR_ID_NE = 0x1D, + PBOOT_ID_H = 0x1E, + PBOOT_ID_L = 0x1F +} ENUM_APP_INFO; + +#define AL2_FCS_COEF ((1 << 15) + (1 << 10) + (1 << 3)) + +#if ((FTS_CHIP_TYPE == _FT8006) || (FTS_CHIP_TYPE == _FT8736)) +#define FW_CFG_TOTAL_SIZE 0x80 +#else +#define FW_CFG_TOTAL_SIZE 0x00 +#endif +#define APP1_START 0x00 +#define APP1_LEN 0x100 +#define APP_VERIF_ADDR (APP1_START + APP1_LEN) +#define APP_VERIF_LEN 0x20 +#define APP1_ECC_ADDR (APP_VERIF_ADDR + APP_P1_ECC) +#define APP2_START (APP_VERIF_ADDR + APP_VERIF_LEN + FW_CFG_TOTAL_SIZE) +#define APP2_ECC_ADDR (APP_VERIF_ADDR + APP_P2_ECC) +/***************************************************************************** +* Name: DrvReadPram16 +* Brief: Get Word +* Input: +* Output: +* Return: +*****************************************************************************/ +static u16 data_word(u8 *pbt_buf, u32 addr) +{ + return (((u16)pbt_buf[addr]<<8) + pbt_buf[addr+1]); +} + +/****************************************************************************** +* Name: GetCrc16 +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +u16 crc_calc(u8 *pbt_buf, u32 addr, u16 length) +{ + u16 cFcs = 0; + u16 i, j; + + FTS_DEBUG("[UPGRADE][ECC] : %04x data:%04x, len:%04x!!", (addr), data_word(pbt_buf, (addr)), length); + for (i = 0; i < length; i++) { + cFcs ^= data_word(pbt_buf, (addr+i*2)); + for (j = 0; j < 16; j++) { + if (cFcs & 1) { + cFcs = (u16)((cFcs >> 1) ^ AL2_FCS_COEF); + } else { + cFcs >>= 1; + } + } + } + return cFcs; +} + +/***************************************************************************** +* Name: task_check_mem +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +bool ecc_check(u8 *pbt_buf, u32 star_addr, u32 len, u16 ecc_addr) +{ + u16 ecc1; + u16 ecc2; + u16 cal_ecc; + + ecc1 = data_word(pbt_buf, ecc_addr); + ecc2 = data_word(pbt_buf, ecc_addr+2); + + if ((ecc1 + ecc2) != 0xFFFF) { + return false; + } + + cal_ecc = crc_calc(pbt_buf, star_addr, (len/2)); + + FTS_DEBUG("[UPGRADE][ECC] : ecc1 = %x, cal_ecc = %x", ecc1, cal_ecc); + if (ecc1 != cal_ecc) { + FTS_DEBUG("[UPGRADE][ECC] : ecc error!!"); + return false; + } + return true; +} + +/***************************************************************************** +* Name: fts_check_app_bin_valid_idc +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +bool fts_check_app_bin_valid_idc(u8 *pbt_buf) +{ + u32 len; +#if (FTS_CHIP_TYPE != _FT8006) + /* 1. First Byte */ + if (pbt_buf[0] != 0x02) { + FTS_DEBUG("[UPGRADE]APP.BIN Verify- the first byte(%x) error", pbt_buf[0]); + return false; + } +#endif + /* 2 PART1 ECC */ + if (!ecc_check(pbt_buf, APP1_START, APP1_LEN, APP1_ECC_ADDR)) { + FTS_DEBUG("[UPGRADE]APP.BIN Verify- ecc1 error"); + return false; + } + + /* 3. PART2 ECC */ + if ((data_word(pbt_buf, APP_VERIF_ADDR+APP_LEN) + data_word(pbt_buf, APP_VERIF_ADDR+APP_LEN_NE)) != 0xFFFF) { + FTS_DEBUG("[UPGRADE]APP.BIN Verify- Length XOR error"); + return false; + } + len = data_word(pbt_buf, APP_VERIF_ADDR+APP_LEN); +#if (FTS_CHIP_TYPE == _FT8006) + if ((data_word(pbt_buf, APP_VERIF_ADDR+APP_LEN_H) + data_word(pbt_buf, APP_VERIF_ADDR+APP_LEN_H_NE)) != 0xFFFF) { + FTS_DEBUG("[UPGRADE]APP.BIN Verify- Length2 XOR error"); + return false; + } + len += ((u32)data_word(pbt_buf, APP_VERIF_ADDR+APP_LEN_H) << 16); +#endif + FTS_DEBUG("%x %x %x %x", APP2_START, len, ((u32)data_word(pbt_buf, APP_VERIF_ADDR+APP_LEN_H) << 16), data_word(pbt_buf, APP_VERIF_ADDR+APP_LEN)); + len -= APP2_START; + + return ecc_check(pbt_buf, APP2_START, len, APP2_ECC_ADDR); +} + + +#endif /* IDC */ diff --git a/drivers/input/touchscreen/FT8716/focaltech_flash/focaltech_upgrade_test.c b/drivers/input/touchscreen/FT8716/focaltech_flash/focaltech_upgrade_test.c new file mode 100755 index 0000000000000..2535d02aa16f7 --- /dev/null +++ b/drivers/input/touchscreen/FT8716/focaltech_flash/focaltech_upgrade_test.c @@ -0,0 +1,167 @@ +/* + * + * FocalTech fts TouchScreen driver. + * + * Copyright (c) 2010-2017, Focaltech Ltd. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +/***************************************************************************** +* +* File Name: focaltech_upgrade_test.c +* +* Author: fupeipei +* +* Created: 2016-08-22 +* +* Abstract: +* +* Reference: +* +*****************************************************************************/ + +/***************************************************************************** +* 1.Included header files +*****************************************************************************/ +#include "../focaltech_core.h" +#include "../focaltech_flash.h" +#include +#include + +/***************************************************************************** +* Static variables +*****************************************************************************/ +#define FTS_GET_UPGRADE_TIME 0 + +/***************************************************************************** +* Global variable or extern global variabls/functions +*****************************************************************************/ +struct wake_lock ps_lock; + +#define FTS_DEBUG_UPGRADE(fmt, args...) do {\ + printk(KERN_ERR "[FTS][UPGRADE]:##############################################################################\n");\ + printk(KERN_ERR "[FTS][UPGRADE]: "fmt"\n", ##args);\ + printk(KERN_ERR "[FTS][UPGRADE]:##############################################################################\n");\ + } while (0)\ + +/***************************************************************************** +* Static function prototypes +*****************************************************************************/ +#if (FTS_UPGRADE_STRESS_TEST) +/************************************************************************ +* Name: fts_ctpm_auto_upgrade_pingpong +* Brief: 0 +* Input: 0 +* Output: 0 +* Return: 0 +***********************************************************************/ +static int fts_ctpm_auto_upgrade_pingpong(struct i2c_client *client) +{ + u8 uc_tp_fm_ver; + int i_ret = 0; + u8 uc_upgrade_times = 0; + + FTS_FUNC_ENTER(); + + /* pingpong test mode, need upgrade */ + FTS_INFO("[UPGRADE]: pingpong test mode, need upgrade!!"); + do { + uc_upgrade_times++; + + /* fw upgrade */ + i_ret = fts_ctpm_fw_upgrade(client); + + if (i_ret == 0) /* upgrade success */ { + fts_i2c_read_reg(client, FTS_REG_FW_VER, &uc_tp_fm_ver); + FTS_DEBUG("[UPGRADE]: upgrade to new version 0x%x", uc_tp_fm_ver); + } else /* upgrade fail */ { + /* if upgrade fail, reset to run ROM. if app in flash is ok. TP will work success */ + FTS_INFO("[UPGRADE]: upgrade fail, reset now!!"); + fts_ctpm_rom_or_pram_reset(client); + } + } while ((i_ret != 0) && (uc_upgrade_times < 2)); /* if upgrade fail, upgrade again. then return */ + + FTS_FUNC_EXIT(); + return i_ret; +} + +/************************************************************************ +* Name: fts_ctpm_auto_upgrade +* Brief: 0 +* Input: 0 +* Output: 0 +* Return: 0 +***********************************************************************/ +void fts_ctpm_display_upgrade_time(bool start_time) +{ +#if FTS_GET_UPGRADE_TIME + static struct timeval tpend; + static struct timeval tpstart; + static int timeuse; + + if (start_time) { + do_gettimeofday(&tpstart); + } else { + do_gettimeofday(&tpend); + timeuse = 1000000 * (tpend.tv_sec-tpstart.tv_sec) + tpend.tv_usec-tpstart.tv_usec; + timeuse /= 1000000; + FTS_DEBUG("[UPGRADE]: upgrade success : Use time: %d Seconds!!", timeuse); + } +#endif +} + +/************************************************************************ +* Name: fts_ctpm_auto_upgrade +* Brief: 0 +* Input: 0 +* Output: 0 +* Return: 0 +***********************************************************************/ +int fts_ctpm_auto_upgrade(struct i2c_client *client) +{ + int i_ret = 0; + static int uc_ErrorTimes + static int uc_UpgradeTimes + + wake_lock_init(&ps_lock, WAKE_LOCK_SUSPEND, "tp_wakelock"); + + wake_lock(&ps_lock); + + /* (FTS_GET_VENDOR_ID_NUM == 0) */ + g_fw_file = CTPM_FW; + g_fw_len = fts_getsize(FW_SIZE); + FTS_DEBUG("[UPGRADE]FW FILE:CTPM_FW, SIZE:%x", g_fw_len); + + do { + uc_UpgradeTimes++; + + FTS_DEBUG_UPGRADE("start to upgrade %d times !!", uc_UpgradeTimes); + + fts_ctpm_display_upgrade_time(true); + + i_ret = fts_ctpm_auto_upgrade_pingpong(client); + if (i_ret == 0) { + fts_ctpm_display_upgrade_time(false); + } else { + uc_ErrorTimes++; + } + + FTS_DEBUG_UPGRADE("upgrade %d times, error %d times!!", uc_UpgradeTimes, uc_ErrorTimes); + } while (uc_UpgradeTimes < (FTS_UPGRADE_TEST_NUMBER)); + + wake_unlock(&ps_lock); + + return 0; +} +#endif + diff --git a/drivers/input/touchscreen/FT8716/focaltech_gesture.c b/drivers/input/touchscreen/FT8716/focaltech_gesture.c new file mode 100755 index 0000000000000..b0a6df7e68cdd --- /dev/null +++ b/drivers/input/touchscreen/FT8716/focaltech_gesture.c @@ -0,0 +1,683 @@ +/* + * + * FocalTech TouchScreen driver. + * + * Copyright (c) 2010-2017, Focaltech Ltd. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +/***************************************************************************** +* +* File Name: focaltech_gestrue.c +* +* Author: Focaltech Driver Team +* +* Created: 2016-08-08 +* +* Abstract: +* +* Reference: +* +*****************************************************************************/ + +/***************************************************************************** +* 1.Included header files +*****************************************************************************/ +#include "focaltech_core.h" +#if FTS_GESTURE_EN +/****************************************************************************** +* Private constant and macro definitions using #define +*****************************************************************************/ +#define KEY_GESTURE_U KEY_U +#define KEY_GESTURE_UP KEY_UP +#define KEY_GESTURE_DOWN KEY_DOWN +#define KEY_GESTURE_LEFT KEY_LEFT +#define KEY_GESTURE_RIGHT KEY_RIGHT +#define KEY_GESTURE_O KEY_O +#define KEY_GESTURE_E KEY_E +#define KEY_GESTURE_M KEY_M +#define KEY_GESTURE_L KEY_L +#define KEY_GESTURE_W KEY_W +#define KEY_GESTURE_S KEY_S +#define KEY_GESTURE_V KEY_V +#define KEY_GESTURE_C KEY_C +#define KEY_GESTURE_Z KEY_Z + +#define GESTURE_LEFT 0x20 +#define GESTURE_RIGHT 0x21 +#define GESTURE_UP 0x22 +#define GESTURE_DOWN 0x23 +#define GESTURE_DOUBLECLICK 0x24 +#define GESTURE_O 0x30 +#define GESTURE_W 0x31 +#define GESTURE_M 0x32 +#define GESTURE_E 0x33 +#define GESTURE_L 0x44 +#define GESTURE_S 0x46 +#define GESTURE_V 0x54 +#define GESTURE_Z 0x41 +#define GESTURE_C 0x34 +#define FTS_GESTRUE_POINTS 255 +#define FTS_GESTRUE_POINTS_HEADER 8 + +/***************************************************************************** +* Private enumerations, structures and unions using typedef +*****************************************************************************/ +/* +* header - byte0:gesture id +* byte1:pointnum +* byte2~7:reserved +* coordinate_x - All gesture point x coordinate +* coordinate_y - All gesture point y coordinate +* mode - 1:enable gesture function(default) +* - 0:disable +* active - 1:enter into gesture(suspend) +* 0:gesture disable or resume +*/ +struct fts_gesture_st { + u8 header[FTS_GESTRUE_POINTS_HEADER]; + u16 coordinate_x[FTS_GESTRUE_POINTS]; + u16 coordinate_y[FTS_GESTRUE_POINTS]; + u8 mode; + u8 active; +}; + + + +struct gesture_struct gesture_data = {0, 0}; + +/***************************************************************************** +* Static variables +*****************************************************************************/ +static struct fts_gesture_st fts_gesture_data; + +/***************************************************************************** +* Global variable or extern global variabls/functions +*****************************************************************************/ + +/***************************************************************************** +* Static function prototypes +*****************************************************************************/ +static ssize_t fts_gesture_show(struct device *dev, struct device_attribute *attr, char *buf); +static ssize_t fts_gesture_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count); +static ssize_t fts_gesture_buf_show(struct device *dev, struct device_attribute *attr, char *buf); +static ssize_t fts_gesture_buf_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count); + +/* sysfs gesture node + * read example: cat fts_gesture_mode ---read gesture mode + * write example:echo 01 > fts_gesture_mode ---write gesture mode to 01 + * + */ +static DEVICE_ATTR (fts_gesture_mode, S_IRUGO|S_IWUSR, fts_gesture_show, fts_gesture_store); +/* + * read example: cat fts_gesture_buf ---read gesture buf + */ +static DEVICE_ATTR (fts_gesture_buf, S_IRUGO|S_IWUSR, fts_gesture_buf_show, fts_gesture_buf_store); +static struct attribute *fts_gesture_mode_attrs[] = { + + &dev_attr_fts_gesture_mode.attr, + &dev_attr_fts_gesture_buf.attr, + NULL, +}; + +static struct attribute_group fts_gesture_group = { + .attrs = fts_gesture_mode_attrs, +}; + +/************************************************************************ +* Name: fts_gesture_show +* Brief: +* Input: device, device attribute, char buf +* Output: +* Return: +***********************************************************************/ +static ssize_t fts_gesture_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + int count; + u8 val; + struct i2c_client *client = container_of(dev, struct i2c_client, dev); + + mutex_lock(&fts_input_dev->mutex); + fts_i2c_read_reg(client, FTS_REG_GESTURE_EN, &val); + count = sprintf(buf, "Gesture Mode: %s\n", fts_gesture_data.mode ? "On" : "Off"); + count += sprintf(buf + count, "Reg(0xD0) = %d\n", val); + mutex_unlock(&fts_input_dev->mutex); + + return count; +} + +/************************************************************************ +* Name: fts_gesture_store +* Brief: +* Input: device, device attribute, char buf, char count +* Output: +* Return: +***********************************************************************/ +static ssize_t fts_gesture_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) +{ + mutex_lock(&fts_input_dev->mutex); + + if (FTS_SYSFS_ECHO_ON(buf)) { + FTS_INFO("[GESTURE]enable gesture"); + fts_gesture_data.mode = ENABLE; + } else if (FTS_SYSFS_ECHO_OFF(buf)) { + FTS_INFO("[GESTURE]disable gesture"); + fts_gesture_data.mode = DISABLE; + } + + mutex_unlock(&fts_input_dev->mutex); + + return count; +} + +/************************************************************************ +* Name: fts_gesture_buf_show +* Brief: +* Input: device, device attribute, char buf +* Output: +* Return: +***********************************************************************/ +static ssize_t fts_gesture_buf_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + int count; + int i = 0; + + mutex_lock(&fts_input_dev->mutex); + count = snprintf(buf, PAGE_SIZE, "Gesture ID: 0x%x\n", fts_gesture_data.header[0]); + count += snprintf(buf + count, PAGE_SIZE, "Gesture PointNum: %d\n", fts_gesture_data.header[1]); + count += snprintf(buf + count, PAGE_SIZE, "Gesture Point Buf:\n"); + for (i = 0; i < fts_gesture_data.header[1]; i++) { + count += snprintf(buf + count, PAGE_SIZE, "%3d(%4d,%4d) ", i, fts_gesture_data.coordinate_x[i], fts_gesture_data.coordinate_y[i]); + if ((i + 1)%4 == 0) + count += snprintf(buf + count, PAGE_SIZE, "\n"); + } + count += snprintf(buf + count, PAGE_SIZE, "\n"); + mutex_unlock(&fts_input_dev->mutex); + + return count; +} + +/************************************************************************ +* Name: fts_gesture_buf_store +* Brief: +* Input: device, device attribute, char buf, char count +* Output: +* Return: +***********************************************************************/ +static ssize_t fts_gesture_buf_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) +{ + /* place holder for future use */ + return -EPERM; +} + +/***************************************************************************** +* Name: fts_create_gesture_sysfs +* Brief: +* Input: +* Output: +* Return: 0-success or others-error +*****************************************************************************/ +int fts_create_gesture_sysfs(struct i2c_client *client) +{ + int ret = 0; + + ret = sysfs_create_group(&client->dev.kobj, &fts_gesture_group); + if (ret != 0) { + FTS_ERROR("[GESTURE]fts_gesture_mode_group(sysfs) create failed!"); + sysfs_remove_group(&client->dev.kobj, &fts_gesture_group); + return ret; + } + return 0; +} + +/***************************************************************************** +* Name: fts_gesture_report +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +static void fts_gesture_report(struct input_dev *input_dev, int gesture_id) +{ + int gesture; + + FTS_FUNC_ENTER(); + FTS_DEBUG("fts gesture_id==0x%x ", gesture_id); + switch (gesture_id) { + case GESTURE_LEFT: + gesture = KEY_GESTURE_LEFT; + break; + case GESTURE_RIGHT: + gesture = KEY_GESTURE_RIGHT; + break; + case GESTURE_UP: + gesture = KEY_GESTURE_UP; + break; + case GESTURE_DOWN: + gesture = KEY_GESTURE_DOWN; + break; + case GESTURE_DOUBLECLICK: + gesture = KEY_GESTURE_U; + break; + case GESTURE_O: + gesture = KEY_GESTURE_O; + break; + case GESTURE_W: + gesture = KEY_GESTURE_W; + break; + case GESTURE_M: + gesture = KEY_GESTURE_M; + break; + case GESTURE_E: + gesture = KEY_GESTURE_E; + break; + case GESTURE_L: + gesture = KEY_GESTURE_L; + break; + case GESTURE_S: + gesture = KEY_GESTURE_S; + break; + case GESTURE_V: + gesture = KEY_GESTURE_V; + break; + case GESTURE_Z: + gesture = KEY_GESTURE_Z; + break; + case GESTURE_C: + gesture = KEY_GESTURE_C; + break; + default: + gesture = -1; + break; + } + /* report event key */ + if (gesture != -1) { + if (gesture_id == GESTURE_DOUBLECLICK) { + FTS_DEBUG("Gesture Code=%d", gesture); + input_report_key(input_dev, DOUBLE_CLICK, 1); + input_sync(input_dev); + input_report_key(input_dev, DOUBLE_CLICK, 0); + input_sync(input_dev); + } + } + + FTS_FUNC_EXIT(); +} + +/************************************************************************ +* Name: fts_gesture_readdata +* Brief: read data from TP register +* Input: +* Output: +* Return: fail <0 +***********************************************************************/ +static int fts_gesture_read_buffer(struct i2c_client *client, u8 *buf, int read_bytes) +{ + int remain_bytes; + int ret; + int i; + if (read_bytes <= I2C_BUFFER_LENGTH_MAXINUM) { + ret = fts_i2c_read(client, buf, 1, buf, read_bytes); + } else { + ret = fts_i2c_read(client, buf, 1, buf, I2C_BUFFER_LENGTH_MAXINUM); + remain_bytes = read_bytes - I2C_BUFFER_LENGTH_MAXINUM; + for (i = 1; remain_bytes > 0; i++) { + if (remain_bytes <= I2C_BUFFER_LENGTH_MAXINUM) + ret = fts_i2c_read(client, buf, 0, buf + I2C_BUFFER_LENGTH_MAXINUM * i, remain_bytes); + else + ret = fts_i2c_read(client, buf, 0, buf + I2C_BUFFER_LENGTH_MAXINUM * i, I2C_BUFFER_LENGTH_MAXINUM); + remain_bytes -= I2C_BUFFER_LENGTH_MAXINUM; + } + } + + return ret; +} + +/************************************************************************ +* Name: fts_gesture_fw +* Brief: Check IC's gesture recognise by FW or not +* Input: +* Output: +* Return: 1- FW 0- Driver +***********************************************************************/ +static int fts_gesture_fw(void) +{ + int ret = 0; + + switch (chip_types.chip_idh) { + case 0x54: + case 0x58: + case 0x64: + case 0x87: + case 0x86: + case 0x80: + case 0xE7: + ret = 1; + break; + default: + ret = 0; + break; + } + return ret; +} + +/************************************************************************ +* Name: fts_gesture_readdata +* Brief: read data from TP register +* Input: +* Output: +* Return: fail <0 +***********************************************************************/ +int fts_gesture_readdata(struct i2c_client *client) +{ + u8 buf[FTS_GESTRUE_POINTS * 4] = { 0 }; + int ret = -1; + int i = 0; + int gestrue_id = 0; + int read_bytes = 0; + u8 pointnum; + + FTS_FUNC_ENTER(); + /* init variable before read gesture point */ + memset(fts_gesture_data.header, 0, FTS_GESTRUE_POINTS_HEADER); + memset(fts_gesture_data.coordinate_x, 0, FTS_GESTRUE_POINTS * sizeof(u16)); + memset(fts_gesture_data.coordinate_y, 0, FTS_GESTRUE_POINTS * sizeof(u16)); + + buf[0] = FTS_REG_GESTURE_OUTPUT_ADDRESS; + ret = fts_i2c_read(client, buf, 1, buf, FTS_GESTRUE_POINTS_HEADER); + if (ret < 0) { + FTS_ERROR("[GESTURE]Read gesture header data failed!!"); + FTS_FUNC_EXIT(); + return ret; + } + + /* FW recognize gesture */ + if (fts_gesture_fw()) { + memcpy(fts_gesture_data.header, buf, FTS_GESTRUE_POINTS_HEADER); + gestrue_id = buf[0]; + pointnum = buf[1]; + read_bytes = ((int)pointnum) * 4 + 2; + buf[0] = FTS_REG_GESTURE_OUTPUT_ADDRESS; + FTS_DEBUG("[GESTURE]PointNum=%d", pointnum); + ret = fts_gesture_read_buffer(client, buf, read_bytes); + if (ret < 0) { + FTS_ERROR("[GESTURE]Read gesture touch data failed!!"); + FTS_FUNC_EXIT(); + return ret; + } + + fts_gesture_report(fts_input_dev, gestrue_id); + for (i = 0; i < pointnum; i++) { + fts_gesture_data.coordinate_x[i] = (((s16) buf[0 + (4 * i + 2)]) & 0x0F) << 8 + | (((s16) buf[1 + (4 * i + 2)]) & 0xFF); + fts_gesture_data.coordinate_y[i] = (((s16) buf[2 + (4 * i + 2)]) & 0x0F) << 8 + | (((s16) buf[3 + (4 * i + 2)]) & 0xFF); + } + FTS_FUNC_EXIT(); + return 0; + } else { + FTS_ERROR("[GESTURE]IC 0x%x need gesture lib to support gestures.", chip_types.chip_idh); + return 0; + } +} + +/***************************************************************************** +* Name: fts_gesture_recovery +* Brief: recovery gesture state when reset or power on +* Input: +* Output: +* Return: +*****************************************************************************/ +void fts_gesture_recovery(struct i2c_client *client) +{ + if (fts_gesture_data.mode && fts_gesture_data.active) { + fts_i2c_write_reg(client, 0xD1, 0xff); + fts_i2c_write_reg(client, 0xD2, 0xff); + fts_i2c_write_reg(client, 0xD5, 0xff); + fts_i2c_write_reg(client, 0xD6, 0xff); + fts_i2c_write_reg(client, 0xD7, 0xff); + fts_i2c_write_reg(client, 0xD8, 0xff); + fts_i2c_write_reg(client, FTS_REG_GESTURE_EN, ENABLE); + } +} + +/***************************************************************************** +* Name: fts_gesture_suspend +* Brief: +* Input: +* Output: None +* Return: None +*****************************************************************************/ +int fts_gesture_suspend(struct i2c_client *i2c_client) +{ + int i; + u8 state; + + FTS_FUNC_ENTER(); + + /* gesture not enable, return immediately */ + if (fts_gesture_data.mode == 0) { + FTS_DEBUG("gesture is disabled"); + FTS_FUNC_EXIT(); + return -EPERM; + } + + for (i = 0; i < 5; i++) { + fts_i2c_write_reg(i2c_client, 0xd1, 0xff); + fts_i2c_write_reg(i2c_client, 0xd2, 0xff); + fts_i2c_write_reg(i2c_client, 0xd5, 0xff); + fts_i2c_write_reg(i2c_client, 0xd6, 0xff); + fts_i2c_write_reg(i2c_client, 0xd7, 0xff); + fts_i2c_write_reg(i2c_client, 0xd8, 0xff); + fts_i2c_write_reg(i2c_client, FTS_REG_GESTURE_EN, 0x01); + msleep(1); + fts_i2c_read_reg(i2c_client, FTS_REG_GESTURE_EN, &state); + if (state == 1) + break; + } + + if (i >= 5) { + FTS_ERROR("[GESTURE]Enter into gesture(suspend) failed!\n"); + FTS_FUNC_EXIT(); + return -EPERM; + } + + fts_gesture_data.active = 1; + FTS_DEBUG("[GESTURE]Enter into gesture(suspend) successfully!"); + FTS_FUNC_EXIT(); + return 0; +} + +/***************************************************************************** +* Name: fts_gesture_resume +* Brief: +* Input: +* Output: None +* Return: None +*****************************************************************************/ +int fts_gesture_resume(struct i2c_client *client) +{ + int i; + u8 state; + FTS_FUNC_ENTER(); + + /* gesture not enable, return immediately */ + if (fts_gesture_data.mode == 0) { + FTS_DEBUG("gesture is disabled"); + FTS_FUNC_EXIT(); + return -EPERM; + } + + if (fts_gesture_data.active == 0) { + FTS_DEBUG("gesture is unactive"); + FTS_FUNC_EXIT(); + return -EPERM; + } + + fts_gesture_data.active = 0; + for (i = 0; i < 5; i++) { + fts_i2c_write_reg(client, FTS_REG_GESTURE_EN, 0x00); + msleep(1); + fts_i2c_read_reg(client, FTS_REG_GESTURE_EN, &state); + if (state == 0) + break; + } + + if (i >= 5) { + FTS_ERROR("[GESTURE]Clear gesture(resume) failed!\n"); + } + + FTS_FUNC_EXIT(); + return 0; +} +extern int tp_gesture_onoff; + + +static ssize_t gesture_read(struct file *file, char __user *page, size_t size, loff_t *ppos) +{ + int num; + + if (*ppos) + return 0; + + num = sprintf(page, "%d\n", gesture_data.gesture_all_switch); + *ppos += num; + + return num; +} + +static ssize_t gesture_write(struct file *filp, const char __user *buff, size_t len, loff_t *off) +{ + int ret; + char temp[20] = ""; + + ret = copy_from_user(temp, buff, len); + if (ret) { + FTS_ERROR("<%s> copy_from_user failed.\n", __func__); + return -EPERM; + } + + FTS_DEBUG("%s copy_from_user :%s\n", __func__, temp); +#if 0 + if (strnstr(temp, "on", strlen(temp))) + gesture_data.gesture_all_switch = 1; + else + gesture_data.gesture_all_switch = 0; +#else + ret = kstrtouint(temp, 0, &gesture_data.gesture_all_switch); + if (ret) { + FTS_ERROR("kstrtouint failed.\n"); + return -EFAULT; + } +#endif + + FTS_DEBUG("%s gesture_data.gesture_all_switch :%d\n", __func__, gesture_data.gesture_all_switch); + tp_gesture_onoff = gesture_data.gesture_all_switch; + + return len; +} +static const struct file_operations gesture_fops = { + .owner = THIS_MODULE, + .read = gesture_read, + .write = gesture_write, +}; + +static ssize_t gesture_data_read(struct file *file, char __user *page, size_t size, loff_t *ppos) +{ + int num; + + if (*ppos) + return 0; + + num = sprintf(page, "K\n"); + *ppos += num; + + return num; +} + +static ssize_t gesture_data_write(struct file *filp, const char __user *buff, size_t len, loff_t *off) +{ + return len; +} + +static const struct file_operations gesture_data_fops = { + .owner = THIS_MODULE, + .read = gesture_data_read, + .write = gesture_data_write, +}; + +int gesture_init(struct input_dev *input_dev) +{ + struct proc_dir_entry *proc_entry = NULL; + struct proc_dir_entry *proc_data = NULL; + struct proc_dir_entry *parent; + + parent = proc_mkdir("gesture", NULL); + if (!parent) { + pr_err("%s: failed to create proc entry\n", __func__); + return -ENOMEM; + } + + proc_entry = proc_create(GESTURE_NODE, 0666, parent, &gesture_fops); + if (proc_entry == NULL) { + FTS_ERROR("CAN't create proc entry /proc/%s !", GESTURE_NODE); + return -EPERM; + } else { + FTS_DEBUG("Created proc entry /proc/%s !", GESTURE_NODE); + } + + proc_data = proc_create(GESTURE_DATA, 0666, parent, &gesture_data_fops); + if (proc_data == NULL) { + FTS_ERROR("CAN't create proc entry /proc/%s !", GESTURE_DATA); + return -EPERM; + } else { + FTS_DEBUG("Created proc entry /proc/%s !", GESTURE_DATA); + } + input_set_capability(input_dev, EV_KEY, DOUBLE_CLICK); + __set_bit(DOUBLE_CLICK, input_dev->keybit); + + return 0; +} +/***************************************************************************** +* Name: fts_gesture_init +* Brief: +* Input: +* Output: None +* Return: None +*****************************************************************************/ +int fts_gesture_init(struct input_dev *input_dev, struct i2c_client *client) +{ + FTS_FUNC_ENTER(); + gesture_init(input_dev); + fts_gesture_data.mode = 1; + fts_gesture_data.active = 0; + FTS_FUNC_EXIT(); + return 0; +} + +/************************************************************************ +* Name: fts_gesture_exit +* Brief: call when driver removed +* Input: +* Output: +* Return: +***********************************************************************/ +int fts_gesture_exit(struct i2c_client *client) +{ + FTS_FUNC_ENTER(); + sysfs_remove_group(&client->dev.kobj, &fts_gesture_group); + FTS_FUNC_EXIT(); + return 0; +} + +#endif diff --git a/drivers/input/touchscreen/FT8716/focaltech_i2c.c b/drivers/input/touchscreen/FT8716/focaltech_i2c.c new file mode 100755 index 0000000000000..a68549d08471a --- /dev/null +++ b/drivers/input/touchscreen/FT8716/focaltech_i2c.c @@ -0,0 +1,206 @@ +/* + * + * FocalTech TouchScreen driver. + * + * Copyright (c) 2010-2017, FocalTech Systems, Ltd., all rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +/************************************************************************ +* +* File Name: focaltech_i2c.c +* +* Author: fupeipei +* +* Created: 2016-08-04 +* +* Abstract: i2c communication with TP +* +* Version: v1.0 +* +* Revision History: +* v1.0: +* First release. By fupeipei 2016-08-04 +************************************************************************/ + +/***************************************************************************** +* Included header files +*****************************************************************************/ +#include "focaltech_core.h" + +/***************************************************************************** +* Private constant and macro definitions using #define +*****************************************************************************/ + +/***************************************************************************** +* Private enumerations, structures and unions using typedef +*****************************************************************************/ + +/***************************************************************************** +* Static variables +*****************************************************************************/ +static DEFINE_MUTEX(i2c_rw_access); + +/***************************************************************************** +* Global variable or extern global variabls/functions +*****************************************************************************/ + +/***************************************************************************** +* Static function prototypes +*****************************************************************************/ + +/***************************************************************************** +* functions body +*****************************************************************************/ + +/************************************************************************ +* Name: fts_i2c_read +* Brief: i2c read +* Input: i2c info, write buf, write len, read buf, read len +* Output: get data in the 3rd buf +* Return: fail <0 +***********************************************************************/ +int fts_i2c_read(struct i2c_client *client, char *writebuf, int writelen, char *readbuf, int readlen) +{ + int ret; + + mutex_lock(&i2c_rw_access); + + if (readlen > 0) { + if (writelen > 0) { + struct i2c_msg msgs[] = { + { + .addr = client->addr, + .flags = 0, + .len = writelen, + .buf = writebuf, + }, + { + .addr = client->addr, + .flags = I2C_M_RD, + .len = readlen, + .buf = readbuf, + }, + }; + ret = i2c_transfer(client->adapter, msgs, 2); + if (ret < 0) { + FTS_ERROR("[IIC]: i2c_transfer(write) error, ret=%d!!", ret); + } + } else { + struct i2c_msg msgs[] = { + { + .addr = client->addr, + .flags = I2C_M_RD, + .len = readlen, + .buf = readbuf, + }, + }; + ret = i2c_transfer(client->adapter, msgs, 1); + if (ret < 0) { + FTS_ERROR("[IIC]: i2c_transfer(read) error, ret=%d!!", ret); + } + } + } + + mutex_unlock(&i2c_rw_access); + return ret; +} + +/************************************************************************ +* Name: fts_i2c_write +* Brief: i2c write +* Input: i2c info, write buf, write len +* Output: no +* Return: fail <0 +***********************************************************************/ +int fts_i2c_write(struct i2c_client *client, char *writebuf, int writelen) +{ + int ret = 0; + + mutex_lock(&i2c_rw_access); + if (writelen > 0) { + struct i2c_msg msgs[] = { + { + .addr = client->addr, + .flags = 0, + .len = writelen, + .buf = writebuf, + }, + }; + ret = i2c_transfer(client->adapter, msgs, 1); + if (ret < 0) { + FTS_ERROR("%s: i2c_transfer(write) error, ret=%d", __func__, ret); + } + } + mutex_unlock(&i2c_rw_access); + + return ret; +} + +/************************************************************************ +* Name: fts_i2c_write_reg +* Brief: write register +* Input: i2c info, reg address, reg value +* Output: no +* Return: fail <0 +***********************************************************************/ +int fts_i2c_write_reg(struct i2c_client *client, u8 regaddr, u8 regvalue) +{ + u8 buf[2] = {0}; + + buf[0] = regaddr; + buf[1] = regvalue; + return fts_i2c_write(client, buf, sizeof(buf)); +} + +/************************************************************************ +* Name: fts_i2c_read_reg +* Brief: read register +* Input: i2c info, reg address, reg value +* Output: get reg value +* Return: fail <0 +***********************************************************************/ +int fts_i2c_read_reg(struct i2c_client *client, u8 regaddr, u8 *regvalue) +{ + return fts_i2c_read(client, ®addr, 1, regvalue, 1); +} + +/************************************************************************ +* Name: fts_i2c_init +* Brief: fts i2c init +* Input: +* Output: +* Return: +***********************************************************************/ +int fts_i2c_init(void) +{ + FTS_FUNC_ENTER(); + + FTS_FUNC_EXIT(); + return 0; +} +/************************************************************************ +* Name: fts_i2c_exit +* Brief: fts i2c exit +* Input: +* Output: +* Return: +***********************************************************************/ +int fts_i2c_exit(void) +{ + FTS_FUNC_ENTER(); + + FTS_FUNC_EXIT(); + return 0; +} + diff --git a/drivers/input/touchscreen/FT8716/focaltech_point_report_check.c b/drivers/input/touchscreen/FT8716/focaltech_point_report_check.c new file mode 100755 index 0000000000000..6801b882dd242 --- /dev/null +++ b/drivers/input/touchscreen/FT8716/focaltech_point_report_check.c @@ -0,0 +1,150 @@ +/* + * + * FocalTech TouchScreen driver. + * + * Copyright (c) 2010-2017, FocalTech Systems, Ltd., all rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +/***************************************************************************** +* +* File Name: focaltech_point_report_check.c +* +* Author: WangTao +* +* Created: 2016-11-16 +* +* Abstract: point report check function +* +* Version: v1.0 +* +* Revision History: +* v1.0: +* First release. By WangTao 2016-11-16 +*****************************************************************************/ + +/***************************************************************************** +* Included header files +*****************************************************************************/ +#include "focaltech_core.h" + +#if FTS_POINT_REPORT_CHECK_EN +/***************************************************************************** +* Private constant and macro definitions using #define +*****************************************************************************/ +#define POINT_REPORT_CHECK_WAIT_TIME 200 + +/***************************************************************************** +* Private enumerations, structures and unions using typedef +*****************************************************************************/ + +/***************************************************************************** +* Static variables +*****************************************************************************/ +static struct delayed_work fts_point_report_check_work; +static struct workqueue_struct *fts_point_report_check_workqueue + +/***************************************************************************** +* Global variable or extern global variabls/functions +*****************************************************************************/ + +/***************************************************************************** +* Static function prototypes +*****************************************************************************/ + +/***************************************************************************** +* functions body +*****************************************************************************/ + + +/***************************************************************************** +* Name: fts_point_report_check_func +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +static void fts_point_report_check_func(struct work_struct *work) +{ + +#if FTS_MT_PROTOCOL_B_EN + unsigned int finger_count = 0; +#endif + + FTS_FUNC_ENTER(); + mutex_lock(&fts_wq_data->report_mutex); + +#if FTS_MT_PROTOCOL_B_EN + for (finger_count = 0; finger_count < fts_wq_data->pdata->max_touch_number; finger_count++) { + input_mt_slot(fts_input_dev, finger_count); + input_mt_report_slot_state(fts_input_dev, MT_TOOL_FINGER, false); + } +#else + input_mt_sync(fts_input_dev); +#endif + input_report_key(fts_input_dev, BTN_TOUCH, 0); + input_sync(fts_input_dev); + + mutex_unlock(&fts_wq_data->report_mutex); + + FTS_FUNC_EXIT(); +} + +void fts_point_report_check_queue_work(void) +{ + cancel_delayed_work(&fts_point_report_check_work); + queue_delayed_work(fts_point_report_check_workqueue, &fts_point_report_check_work, msecs_to_jiffies(POINT_REPORT_CHECK_WAIT_TIME)); +} + +/***************************************************************************** +* Name: fts_point_report_check_init +* Brief: +* Input: +* Output: +* Return: < 0: Fail to create esd check queue +*****************************************************************************/ +int fts_point_report_check_init(void) +{ + FTS_FUNC_ENTER(); + + INIT_DELAYED_WORK(&fts_point_report_check_work, fts_point_report_check_func); + fts_point_report_check_workqueue = create_workqueue("fts_point_report_check_func_wq"); + if (fts_point_report_check_workqueue == NULL) { + FTS_ERROR("[POINT_REPORT]: Failed to create fts_point_report_check_workqueue!!"); + } else { + FTS_DEBUG("[POINT_REPORT]: Success to create fts_point_report_check_workqueue!!"); + } + + FTS_FUNC_EXIT(); + + return 0; +} + +/***************************************************************************** +* Name: fts_point_report_check_exit +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +int fts_point_report_check_exit(void) +{ + FTS_FUNC_ENTER(); + + destroy_workqueue(fts_point_report_check_workqueue); + + FTS_FUNC_EXIT(); + return 0; +} +#endif /* FTS_POINT_REPORT_CHECK_EN */ + diff --git a/drivers/input/touchscreen/FT8716/focaltech_sensor.c b/drivers/input/touchscreen/FT8716/focaltech_sensor.c new file mode 100755 index 0000000000000..30a130b1a7be6 --- /dev/null +++ b/drivers/input/touchscreen/FT8716/focaltech_sensor.c @@ -0,0 +1,314 @@ +/* + * + * FocalTech TouchScreen driver. + * + * Copyright (c) 2010-2017, FocalTech Systems, Ltd., all rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +/***************************************************************************** +* +* File Name: focaltech_esdcheck.c +* +* Author: Focaltech Driver Team +* +* Created: 2016-08-03 +* +* Abstract: Sensor +* +* Version: v1.0 +* +* Revision History: +* v1.0: +* First release. By luougojin 2016-08-03 +*****************************************************************************/ + +/***************************************************************************** +* Included header files +*****************************************************************************/ +#include "focaltech_core.h" + +#if FTS_PSENSOR_EN +/***************************************************************************** +* Private constant and macro definitions using #define +*****************************************************************************/ +/* psensor register address*/ +#define FTS_REG_PSENSOR_ENABLE 0xB0 +#define FTS_REG_PSENSOR_STATUS 0x01 + +/* psensor register bits*/ +#define FTS_PSENSOR_ENABLE_MASK 0x01 +#define FTS_PSENSOR_STATUS_NEAR 0xC0 +#define FTS_PSENSOR_STATUS_FAR 0xE0 +#define FTS_PSENSOR_FAR_TO_NEAR 0 +#define FTS_PSENSOR_NEAR_TO_FAR 1 +#define FTS_PSENSOR_ORIGINAL_STATE_FAR 1 +#define FTS_PSENSOR_WAKEUP_TIMEOUT 500 + +/***************************************************************************** +* Static variables +*****************************************************************************/ +static struct sensors_classdev __maybe_unused sensors_proximity_cdev = { + .name = "fts-proximity", + .vendor = "FocalTech", + .version = 1, + .handle = SENSORS_PROXIMITY_HANDLE, + .type = SENSOR_TYPE_PROXIMITY, + .max_range = "5.0", + .resolution = "5.0", + .sensor_power = "0.1", + .min_delay = 0, + .fifo_reserved_event_count = 0, + .fifo_max_event_count = 0, + .enabled = 0, + .delay_msec = 200, + .sensors_enable = NULL, + .sensors_poll_delay = NULL, +}; + +/***************************************************************************** +* functions body +*****************************************************************************/ +/***************************************************************************** +* Name: fts_psensor_support_enabled +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +static inline bool fts_psensor_support_enabled(void) +{ + /*return config_enabled(CONFIG_TOUCHSCREEN_FTS_PSENSOR);*/ + return FTS_PSENSOR_EN; +} + +/***************************************************************************** +* Name: fts_psensor_enable +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +static void fts_psensor_enable(struct fts_ts_data *data, int enable) +{ + u8 state; + int ret = -1; + + if (data->client == NULL) + return; + + fts_i2c_read_reg(data->client, FTS_REG_PSENSOR_ENABLE, &state); + if (enable) + state |= FTS_PSENSOR_ENABLE_MASK; + else + state &= ~FTS_PSENSOR_ENABLE_MASK; + + ret = fts_i2c_write_reg(data->client, FTS_REG_PSENSOR_ENABLE, state); + if (ret < 0) + FTS_ERROR("write psensor switch command failed"); + return; +} + +/***************************************************************************** +* Name: fts_psensor_enable_set +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +static int fts_psensor_enable_set(struct sensors_classdev *sensors_cdev, + unsigned int enable) +{ + struct fts_psensor_platform_data *psensor_pdata = + container_of(sensors_cdev, + struct fts_psensor_platform_data, ps_cdev); + struct fts_ts_data *data = psensor_pdata->data; + struct input_dev *input_dev = data->psensor_pdata->input_psensor_dev; + + mutex_lock(&input_dev->mutex); + fts_psensor_enable(data, enable); + psensor_pdata->tp_psensor_data = FTS_PSENSOR_ORIGINAL_STATE_FAR; + if (enable) + psensor_pdata->tp_psensor_opened = 1; + else + psensor_pdata->tp_psensor_opened = 0; + mutex_unlock(&input_dev->mutex); + return enable; +} + +/***************************************************************************** +* Name: fts_read_tp_psensor_data +* Brief: +* Input: +* Output: +* Return: +*****************************************************************************/ +static int fts_read_tp_psensor_data(struct fts_ts_data *data) +{ + u8 psensor_status; + char tmp; + int ret = 1; + + fts_i2c_read_reg(data->client, + FTS_REG_PSENSOR_STATUS, &psensor_status); + + tmp = data->psensor_pdata->tp_psensor_data; + if (psensor_status == FTS_PSENSOR_STATUS_NEAR) + data->psensor_pdata->tp_psensor_data = + FTS_PSENSOR_FAR_TO_NEAR; + else if (psensor_status == FTS_PSENSOR_STATUS_FAR) + data->psensor_pdata->tp_psensor_data = + FTS_PSENSOR_NEAR_TO_FAR; + + if (tmp != data->psensor_pdata->tp_psensor_data) { + FTS_ERROR("%s sensor data changed", __func__); + ret = 0; + } + return ret; +} + + +int fts_sensor_read_data(struct fts_ts_data *data) +{ + int ret = 0; + if (fts_psensor_support_enabled() && data->psensor_pdata->tp_psensor_opened) { + ret = fts_read_tp_psensor_data(data); + if (!ret) { + if (data->suspended) { + pm_wakeup_event(&data->client->dev, FTS_PSENSOR_WAKEUP_TIMEOUT); + } + input_report_abs(data->psensor_pdata->input_psensor_dev, + ABS_DISTANCE, + data->psensor_pdata->tp_psensor_data); + input_sync(data->psensor_pdata->input_psensor_dev); + } + return 1; + } + return 0; +} + +int fts_sensor_suspend(struct fts_ts_data *data) +{ + int ret = 0; + + if (fts_psensor_support_enabled() && + device_may_wakeup(&data->client->dev) && + data->psensor_pdata->tp_psensor_opened) { + ret = enable_irq_wake(data->client->irq); + if (ret != 0) { + FTS_ERROR("%s: set_irq_wake failed", __func__); + } + data->suspended = true; + return 1; + } + + return 0; +} + + +int fts_sensor_resume(struct fts_ts_data *data) +{ + int ret = 0; + + if (fts_psensor_support_enabled() && + device_may_wakeup(&data->client->dev) && data->psensor_pdata->tp_psensor_opened) { + ret = disable_irq_wake(data->client->irq); + if (ret) { + FTS_ERROR("%s: disable_irq_wake failed", __func__); + } + data->suspended = false; + return 1; + } + + return 0; +} + + +int fts_sensor_init(struct fts_ts_data *data) +{ + struct fts_psensor_platform_data *psensor_pdata; + struct input_dev *psensor_input_dev; + int err; + + if (fts_psensor_support_enabled()) { + device_init_wakeup(&data->client->dev, 1); + psensor_pdata = devm_kzalloc(&data->client->dev, + sizeof(struct fts_psensor_platform_data), + GFP_KERNEL); + if (!psensor_pdata) { + FTS_ERROR("Failed to allocate memory"); + goto irq_free; + } + data->psensor_pdata = psensor_pdata; + + psensor_input_dev = input_allocate_device(); + if (!psensor_input_dev) { + FTS_ERROR("Failed to allocate device"); + goto free_psensor_pdata; + } + + __set_bit(EV_ABS, psensor_input_dev->evbit); + input_set_abs_params(psensor_input_dev, ABS_DISTANCE, 0, 1, 0, 0); + psensor_input_dev->name = "proximity"; + psensor_input_dev->id.bustype = BUS_I2C; + psensor_input_dev->dev.parent = &data->client->dev; + data->psensor_pdata->input_psensor_dev = psensor_input_dev; + + err = input_register_device(psensor_input_dev); + if (err) { + FTS_ERROR("Unable to register device, err=%d", err); + goto free_psensor_input_dev; + } + + psensor_pdata->ps_cdev = sensors_proximity_cdev; + psensor_pdata->ps_cdev.sensors_enable = fts_psensor_enable_set; + psensor_pdata->data = data; + + err = sensors_classdev_register(&data->client->dev, &psensor_pdata->ps_cdev); + if (err) { + goto unregister_psensor_input_device; + } + } + + return 0; +unregister_psensor_input_device: + if (fts_psensor_support_enabled()) + input_unregister_device(data->psensor_pdata->input_psensor_dev); +free_psensor_input_dev: + if (fts_psensor_support_enabled()) + input_free_device(data->psensor_pdata->input_psensor_dev); +free_psensor_pdata: + if (fts_psensor_support_enabled()) { + devm_kfree(&data->client->dev, psensor_pdata); + data->psensor_pdata = NULL; + } +irq_free: + if (fts_psensor_support_enabled()) + device_init_wakeup(&data->client->dev, 0); + free_irq(data->client->irq, data); + + return 1; +} + +int fts_sensor_remove(struct fts_ts_data *data) +{ + if (fts_psensor_support_enabled()) { + device_init_wakeup(&data->client->dev, 0); + sensors_classdev_unregister(&data->psensor_pdata->ps_cdev); + input_unregister_device(data->psensor_pdata->input_psensor_dev); + devm_kfree(&data->client->dev, data->psensor_pdata); + data->psensor_pdata = NULL; + } + return 0; +} +#endif /* FTS_PSENSOR_EN */ diff --git a/drivers/input/touchscreen/FT8716/focaltech_test/Makefile b/drivers/input/touchscreen/FT8716/focaltech_test/Makefile new file mode 100755 index 0000000000000..410b854ae591e --- /dev/null +++ b/drivers/input/touchscreen/FT8716/focaltech_test/Makefile @@ -0,0 +1,10 @@ +#drivers/input/touchscreen/focaltech_touch/focaltech_test +# +#Makefile for test module +# + + + +obj-$(CONFIG_TOUCHSCREEN_FTS) += src/ +obj-$(CONFIG_TOUCHSCREEN_FTS) += supported_ic/ + diff --git a/drivers/input/touchscreen/FT8716/focaltech_test/focaltech_test_config.h b/drivers/input/touchscreen/FT8716/focaltech_test/focaltech_test_config.h new file mode 100755 index 0000000000000..394e5eaa86485 --- /dev/null +++ b/drivers/input/touchscreen/FT8716/focaltech_test/focaltech_test_config.h @@ -0,0 +1,63 @@ +/************************************************************************ +* Copyright (C) 2012-2017, Focaltech Systems (R)£¬All Rights Reserved. + * Copyright (C) 2018 XiaoMi, Inc. +* +* File Name: focaltech_test_config.h +* +* Author: Software Development Team, AE +* +* Created: 2016-08-01 +* +* Abstract: global function for test +* +************************************************************************/ +#include "../focaltech_core.h" + + +/*----------------------------------------------------------- +IC Type Test +-----------------------------------------------------------*/ +#define FT5X46_TEST 0x20 +#define FT6X36_TEST 0x40 +#define FT5822_TEST 0x70 +#define FT8606_TEST 0x90 +#define FT8716_TEST 0xA0 +#define FT3C47_TEST 0xB0 +#define FT8607_TEST 0xC0 +#define FT8736_TEST 0xE0 +#define FT3D47_TEST 0xF0 +#define FTE716_TEST 0x100 +#define FTE736_TEST 0x140 +#define FT8006_TEST 0x130 + + +#ifdef FTS_CHIP_TYPE + +#if (FTS_CHIP_TYPE == _FT8716) +#define FTS_CHIP_TEST_TYPE FT8716_TEST +#elif(FTS_CHIP_TYPE == _FT8736) +#define FTS_CHIP_TEST_TYPE FT8736_TEST +#elif(FTS_CHIP_TYPE == _FT8006) +#define FTS_CHIP_TEST_TYPE FT8006_TEST +#elif(FTS_CHIP_TYPE == _FT8606) +#define FTS_CHIP_TEST_TYPE FT8606_TEST +#elif(FTS_CHIP_TYPE == _FT8607) +#define FTS_CHIP_TEST_TYPE FT8607_TEST +#elif(FTS_CHIP_TYPE == _FTE716) +#define FTS_CHIP_TEST_TYPE FTE716_TEST +#elif(FTS_CHIP_TYPE == _FT3D47) +#define FTS_CHIP_TEST_TYPE FT3D47_TEST +#elif(IC_SERIALS == 0x01) +#define FTS_CHIP_TEST_TYPE FT5822_TEST +#elif(FTS_CHIP_TYPE == _FT3C47U) +#define FTS_CHIP_TEST_TYPE FT3C47_TEST +#elif(IC_SERIALS == 0x02) +#define FTS_CHIP_TEST_TYPE FT5X46_TEST +#elif((IC_SERIALS == 0x03) || (IC_SERIALS == 0x04)) +#define FTS_CHIP_TEST_TYPE FT6X36_TEST +#endif + +#else +#define FTS_CHIP_TEST_TYPE FT8716_TEST + +#endif diff --git a/drivers/input/touchscreen/FT8716/focaltech_test/include/focaltech_ic_table.h b/drivers/input/touchscreen/FT8716/focaltech_test/include/focaltech_ic_table.h new file mode 100755 index 0000000000000..bfb5ab7510479 --- /dev/null +++ b/drivers/input/touchscreen/FT8716/focaltech_test/include/focaltech_ic_table.h @@ -0,0 +1,115 @@ +/* + * + * FocalTech TouchScreen driver. + * + * Copyright (c) 2010-2017, FocalTech Systems, Ltd., all rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#ifndef __FOCALTECH_IC_TABLE_H__ +#define __FOCALTECH_IC_TABLE_H__ +/***************************************************************************** +* +* File Name: focaltech_ic_table.h +* +* Author: Xu YF & ZR, Software Department, FocalTech +* +* Created: 2016-03-17 +* +* Modify: +* +* Abstract: +* +* Reference: +* +*****************************************************************************/ + +/***************************************************************************** +* 1.Included header files +*****************************************************************************/ + +/*----------------------------------------------------------- +IC corresponding code, each of the IC code is 8 bit, high 4 bit on behalf of the same series, low 4 bit on behalf of the specific IC +-----------------------------------------------------------*/ +enum IC_Type { + IC_FT5X36 = 0x10, + IC_FT5X36i = 0x11, + IC_FT3X16 = 0x12, + IC_FT3X26 = 0x13, + + IC_FT5X46 = 0x21, + IC_FT5X46i = 0x22, + IC_FT5526 = 0x23, + IC_FT3X17 = 0x24, + IC_FT5436 = 0x25, + IC_FT3X27 = 0x26, + IC_FT5526I = 0x27, + IC_FT5416 = 0x28, + IC_FT5426 = 0x29, + IC_FT5435 = 0x2A, + IC_FT7681 = 0x2B, + IC_FT7661 = 0x2C, + IC_FT7511 = 0x2D, + IC_FT7421 = 0x2E, + IC_FT6X06 = 0x30, + IC_FT3X06 = 0x31, + IC_FT6X36 = 0x40, + IC_FT3X07 = 0x41, + IC_FT6416 = 0x42, + IC_FT6426 = 0x43, + IC_FT7401 = 0x44, + IC_FT3407U = 0x45, + IC_FT6236U = 0x46, + IC_FT6436U = 0x47, + IC_FT3267 = 0x48, + IC_FT3367 = 0x49, + IC_FT5X16 = 0x50, + IC_FT5X12 = 0x51, + IC_FT5506 = 0x60, + IC_FT5606 = 0x61, + IC_FT5816 = 0x62, + IC_FT5822 = 0x70, + IC_FT5626 = 0x71, + IC_FT5726 = 0x72, + IC_FT5826B = 0x73, + IC_FT3617 = 0x74, + IC_FT3717 = 0x75, + IC_FT7811 = 0x76, + IC_FT5826S = 0x77, + IC_FT5306 = 0x80, + IC_FT5406 = 0x81, + IC_FT8606 = 0x90, + IC_FT8716 = 0xA0, + IC_FT3C47U = 0xB0, + IC_FT8607 = 0xC0, + IC_FT8707 = 0xD0, + IC_FT8736 = 0xE0, + IC_FT3D47 = 0xF0, + IC_FTE716 = 0x100, + IC_FT5442 = 0x110, + IC_FT3428U = 0x120, + IC_FT8201 = 0x130, + IC_FT8006M = 0x131, + IC_FTE736 = 0x140 +}; + + + +extern unsigned int fts_ic_table_get_ic_code_from_ic_name(char *strIcName); +extern void fts_ic_table_get_ic_name_from_ic_code(unsigned int ic_code, char *strIcName); + +extern unsigned int fts_ic_table_get_ic_code_from_chip_id(unsigned char chip_id, unsigned char chip_id2); +extern unsigned int fts_ic_table_get_chip_id_from_ic_code(unsigned int ic_code, unsigned char *chip_id, unsigned char *chip_id2); +extern int fts_ic_table_need_chip_id2(unsigned int chip_id); + +#endif diff --git a/drivers/input/touchscreen/FT8716/focaltech_test/include/focaltech_test_detail_threshold.h b/drivers/input/touchscreen/FT8716/focaltech_test/include/focaltech_test_detail_threshold.h new file mode 100755 index 0000000000000..c93ca27592419 --- /dev/null +++ b/drivers/input/touchscreen/FT8716/focaltech_test/include/focaltech_test_detail_threshold.h @@ -0,0 +1,131 @@ +/************************************************************************ +* Copyright (C) 2012-2017, Focaltech Systems (R)£¬All Rights Reserved. +* Copyright (C) 2018 XiaoMi, Inc. +* +* File Name: focaltech_test_detail_threshold.h +* +* Author: Software Development Team, AE +* +* Created: 2016-08-01 +* +* Abstract: Set Detail Threshold for all IC +* +************************************************************************/ + +#ifndef _DETAIL_THRESHOLD_H +#define _DETAIL_THRESHOLD_H + +#define TX_NUM_MAX 60 +#define RX_NUM_MAX 60 +#define NUM_MAX (TX_NUM_MAX)*(RX_NUM_MAX) +#define MAX_PATH 256 + +#define BUFFER_LENGTH 512 +#define MAX_TEST_ITEM 20 +#define MAX_GRAPH_ITEM 20 +#define MAX_CHANNEL_NUM 144 + +#define FORCETOUCH_ROW 1 + +struct stCfg_Incell_DetailThreshold { + unsigned char (*InvalidNode)[RX_NUM_MAX]; + + + int (*RawDataTest_Min)[RX_NUM_MAX]; + int (*RawDataTest_Max)[RX_NUM_MAX]; + + int (*CBTest_Min)[RX_NUM_MAX]; + int (*CBTest_Max)[RX_NUM_MAX]; + + int (*CBUniformityTest_CHX_Linearity)[RX_NUM_MAX]; + int (*CBUniformityTest_CHY_Linearity)[RX_NUM_MAX]; + +}; + +struct stCfg_MCap_DetailThreshold { + unsigned char (*InvalidNode)[RX_NUM_MAX]; + unsigned char (*InvalidNode_SC)[RX_NUM_MAX]; + + int (*RawDataTest_Min)[RX_NUM_MAX]; + int (*RawDataTest_Max)[RX_NUM_MAX]; + int (*RawDataTest_Low_Min)[RX_NUM_MAX]; + int (*RawDataTest_Low_Max)[RX_NUM_MAX]; + int (*RawDataTest_High_Min)[RX_NUM_MAX]; + int (*RawDataTest_High_Max)[RX_NUM_MAX]; + int (*RxLinearityTest_Max)[RX_NUM_MAX]; + int (*TxLinearityTest_Max)[RX_NUM_MAX]; + int (*PanelDifferTest_Max)[RX_NUM_MAX]; + int (*PanelDifferTest_Min)[RX_NUM_MAX]; + int (*SCapRawDataTest_ON_Max)[RX_NUM_MAX]; + int (*SCapRawDataTest_ON_Min)[RX_NUM_MAX]; + int (*SCapRawDataTest_OFF_Max)[RX_NUM_MAX]; + int (*SCapRawDataTest_OFF_Min)[RX_NUM_MAX]; + short (*SCapCbTest_ON_Max)[RX_NUM_MAX]; + short (*SCapCbTest_ON_Min)[RX_NUM_MAX]; + short (*SCapCbTest_OFF_Max)[RX_NUM_MAX]; + short (*SCapCbTest_OFF_Min)[RX_NUM_MAX]; + int (*NoistTest_Coefficient)[RX_NUM_MAX]; + int (*LCDNoistTest_Coefficient)[RX_NUM_MAX]; + + int ForceTouch_SCapRawDataTest_ON_Max[FORCETOUCH_ROW][RX_NUM_MAX]; + int ForceTouch_SCapRawDataTest_ON_Min[FORCETOUCH_ROW][RX_NUM_MAX]; + int ForceTouch_SCapRawDataTest_OFF_Max[FORCETOUCH_ROW][RX_NUM_MAX]; + int ForceTouch_SCapRawDataTest_OFF_Min[FORCETOUCH_ROW][RX_NUM_MAX]; + int ForceTouch_SCapCbTest_ON_Max[FORCETOUCH_ROW][RX_NUM_MAX]; + int ForceTouch_SCapCbTest_ON_Min[FORCETOUCH_ROW][RX_NUM_MAX]; + int ForceTouch_SCapCbTest_OFF_Max[FORCETOUCH_ROW][RX_NUM_MAX]; + int ForceTouch_SCapCbTest_OFF_Min[FORCETOUCH_ROW][RX_NUM_MAX]; +}; + +struct stCfg_SCap_DetailThreshold { + int TempData[MAX_CHANNEL_NUM]; + int RawDataTest_Max[MAX_CHANNEL_NUM]; + int RawDataTest_Min[MAX_CHANNEL_NUM]; + int CiTest_Max[MAX_CHANNEL_NUM]; + int CiTest_Min[MAX_CHANNEL_NUM]; + int DeltaCiTest_Base[MAX_CHANNEL_NUM]; + int DeltaCiTest_AnotherBase1[MAX_CHANNEL_NUM]; + int DeltaCiTest_AnotherBase2[MAX_CHANNEL_NUM]; + int CiDeviationTest_Base[MAX_CHANNEL_NUM]; + + int NoiseTest_Max[MAX_CHANNEL_NUM]; + int DeltaCxTest_Sort[MAX_CHANNEL_NUM]; + int DeltaCxTest_Area[MAX_CHANNEL_NUM]; + + int CbTest_Max[MAX_CHANNEL_NUM]; + int CbTest_Min[MAX_CHANNEL_NUM]; + int DeltaCbTest_Base[MAX_CHANNEL_NUM]; + int DifferTest_Base[MAX_CHANNEL_NUM]; + int CBDeviationTest_Base[MAX_CHANNEL_NUM]; + int K1DifferTest_Base[MAX_CHANNEL_NUM]; +}; + +void OnInit_MCap_DetailThreshold(char *strIniFile); +void OnInit_SCap_DetailThreshold(char *strIniFile); +void OnInit_Incell_DetailThreshold(char *strIniFile); + +void set_max_channel_num(void); + +void OnInit_InvalidNode(char *strIniFile); +void OnInit_DThreshold_RawDataTest(char *strIniFile); +void OnInit_DThreshold_SCapRawDataTest(char *strIniFile); +void OnInit_DThreshold_SCapCbTest(char *strIniFile); + +void OnInit_DThreshold_ForceTouch_SCapRawDataTest(char *strIniFile); +void OnInit_DThreshold_ForceTouch_SCapCbTest(char *strIniFile); + + +void OnInit_DThreshold_RxLinearityTest(char *strIniFile); +void OnInit_DThreshold_TxLinearityTest(char *strIniFile); + +void OnInit_DThreshold_PanelDifferTest(char *strIniFile); + +void OnInit_DThreshold_CBTest(char *strIniFile); +void OnInit_DThreshold_AllButtonCBTest(char *strIniFile); +void OnThreshold_VkAndVaRawDataSeparateTest(char *strIniFile); + +void OnGetTestItemParam(char *strItemName, char *strIniFile, int iDefautValue); + +int malloc_struct_DetailThreshold(void); +void free_struct_DetailThreshold(void); +#endif diff --git a/drivers/input/touchscreen/FT8716/focaltech_test/include/focaltech_test_ini.h b/drivers/input/touchscreen/FT8716/focaltech_test/include/focaltech_test_ini.h new file mode 100755 index 0000000000000..2385d63f72272 --- /dev/null +++ b/drivers/input/touchscreen/FT8716/focaltech_test/include/focaltech_test_ini.h @@ -0,0 +1,66 @@ +/************************************************************************ +* Copyright (C) 2012-2017, Focaltech Systems (R)£¬All Rights Reserved. + * Copyright (C) 2018 XiaoMi, Inc. +* +* File Name: focaltech_test_ini.h +* +* Author: Software Development Team, AE +* +* Created: 2016-08-01 +* +* Abstract: parsing function of INI file +* +************************************************************************/ +#ifndef INI_H +#define INI_H + +#define MAX_KEY_NUM 300 +#define MAX_KEY_NAME_LEN 50 +#define MAX_KEY_VALUE_LEN 360 + +#define MAX_CFG_BUF 480 +#define SUCCESS 0 +/* return value */ +#define CFG_OK SUCCESS +#define CFG_SECTION_NOT_FOUND -1 +#define CFG_KEY_NOT_FOUND -2 +#define CFG_ERR -10 + +#define CFG_ERR_OPEN_FILE -10 +#define CFG_ERR_CREATE_FILE -11 +#define CFG_ERR_READ_FILE -12 +#define CFG_ERR_WRITE_FILE -13 +#define CFG_ERR_FILE_FORMAT -14 +#define CFG_ERR_TOO_MANY_KEY_NUM -15 +#define CFG_ERR_OUT_OF_LEN -16 + +#define CFG_ERR_EXCEED_BUF_SIZE -22 + +#define COPYF_OK SUCCESS +#define COPYF_ERR_OPEN_FILE -10 +#define COPYF_ERR_CREATE_FILE -11 +#define COPYF_ERR_READ_FILE -12 +#define COPYF_ERR_WRITE_FILE -13 + +typedef struct _ST_INI_FILE_DATA { + char pSectionName[MAX_KEY_NAME_LEN]; + char pKeyName[MAX_KEY_NAME_LEN]; + char pKeyValue[MAX_KEY_VALUE_LEN]; + int iSectionNameLen; + int iKeyNameLen; + int iKeyValueLen; +} ST_INI_FILE_DATA; + + + +int ini_get_key(char *filedata, char *section, char *key, char *value); + + +int fts_atoi(char *nptr); +char *ini_str_trim_r(char *buf); +char *ini_str_trim_l(char *buf); + +int init_key_data(void); +int ini_get_key_data(char *filedata); +int release_key_data(void); +#endif diff --git a/drivers/input/touchscreen/FT8716/focaltech_test/include/focaltech_test_main.h b/drivers/input/touchscreen/FT8716/focaltech_test/include/focaltech_test_main.h new file mode 100755 index 0000000000000..5b22edfd3d87f --- /dev/null +++ b/drivers/input/touchscreen/FT8716/focaltech_test/include/focaltech_test_main.h @@ -0,0 +1,240 @@ +/************************************************************************ +* Copyright (C) 2012-2017, Focaltech Systems (R)£¬All Rights Reserved. +* Copyright (C) 2018 XiaoMi, Inc. +* +* File Name: focaltech_test_main.h +* +* Author: Software Development Team, AE +* +* Created: 2016-08-01 +* +* Abstract: test entry for all IC +* +************************************************************************/ +#ifndef _TEST_LIB_H +#define _TEST_LIB_H + +#include "focaltech_test_detail_threshold.h" +#include "../focaltech_test_config.h" + +#define boolean unsigned char +#define bool unsigned char +#define BYTE unsigned char +#define false 0 +#define true 1 + +enum NodeType { + NODE_INVALID_TYPE = 0, + NODE_VALID_TYPE = 1, + NODE_KEY_TYPE = 2, + NODE_AST_TYPE = 3, +}; + + +typedef int (*FTS_I2C_READ_FUNCTION)(unsigned char *, int , unsigned char *, int); +typedef int (*FTS_I2C_WRITE_FUNCTION)(unsigned char *, int); + +extern FTS_I2C_READ_FUNCTION fts_i2c_read_test; +extern FTS_I2C_WRITE_FUNCTION fts_i2c_write_test; + +extern int init_i2c_read_func(FTS_I2C_READ_FUNCTION fpI2C_Read); +extern int init_i2c_write_func(FTS_I2C_WRITE_FUNCTION fpI2C_Write); + + + + + + +int set_param_data(char *TestParamData); +boolean start_test_tp(void); +int get_test_data(char *pTestData); + + +int focaltech_test_main_init(void); +int focaltech_test_main_exit(void); + + +#define MIN_HOLE_LEVEL (-1) +#define MAX_HOLE_LEVEL 0x7F +/*----------------------------------------------------------- +Error Code for Comm +-----------------------------------------------------------*/ +#define ERROR_CODE_OK 0x00 +#define ERROR_CODE_CHECKSUM_ERROR 0x01 +#define ERROR_CODE_INVALID_COMMAND 0x02 +#define ERROR_CODE_INVALID_PARAM 0x03 +#define ERROR_CODE_IIC_WRITE_ERROR 0x04 +#define ERROR_CODE_IIC_READ_ERROR 0x05 +#define ERROR_CODE_WRITE_USB_ERROR 0x06 +#define ERROR_CODE_WAIT_RESPONSE_TIMEOUT 0x07 +#define ERROR_CODE_PACKET_RE_ERROR 0x08 +#define ERROR_CODE_NO_DEVICE 0x09 +#define ERROR_CODE_WAIT_WRITE_TIMEOUT 0x0a +#define ERROR_CODE_READ_USB_ERROR 0x0b +#define ERROR_CODE_COMM_ERROR 0x0c +#define ERROR_CODE_ALLOCATE_BUFFER_ERROR 0x0d +#define ERROR_CODE_DEVICE_OPENED 0x0e +#define ERROR_CODE_DEVICE_CLOSED 0x0f + +/*----------------------------------------------------------- +Test Status +-----------------------------------------------------------*/ +#define RESULT_NULL 0 +#define RESULT_PASS 1 +#define RESULT_NG 2 +#define RESULT_TESTING 3 +#define RESULT_TBD 4 +#define RESULT_REPLACE 5 +#define RESULT_CONNECTING 6 + +/*----------------------------------------------------------- + +read write max bytes per time +-----------------------------------------------------------*/ + +#define BYTES_PER_TIME 128 + +extern void fts_test_funcs(void); +struct StTestFuncs { + void (*OnInit_TestItem)(char *); + void (*OnInit_BasicThreshold)(char *) ; + void (*SetTestItem)(void) ; + boolean (*Start_Test)(void); + int (*Get_test_data)(char *); +}; +extern struct StTestFuncs g_stTestFuncs; + +struct StruScreenSeting { + int iSelectedIC; + int iTxNum; + int iRxNum; + int isNormalize; + int iUsedMaxTxNum; + int iUsedMaxRxNum; + + unsigned char iChannelsNum; + unsigned char iKeyNum; +}; +extern struct StruScreenSeting g_ScreenSetParam; +struct stTestItem { + unsigned char ItemType; + unsigned char TestNum; + unsigned char TestResult; + unsigned char ItemCode; + + +}; +extern struct stTestItem g_stTestItem[1][MAX_TEST_ITEM]; + +struct structSCapConfEx { + unsigned char ChannelXNum; + unsigned char ChannelYNum; + unsigned char KeyNum; + unsigned char KeyNumTotal; + bool bLeftKey1; + bool bLeftKey2; + bool bLeftKey3; + bool bRightKey1; + bool bRightKey2; + bool bRightKey3; +}; +extern struct structSCapConfEx g_stSCapConfEx; + +enum NORMALIZE_Type { + Overall_Normalize = 0, + Auto_Normalize = 1, +}; + +enum PROOF_TYPE { + Proof_Normal, + Proof_Level0, + Proof_NoWaterProof, +}; + +/*----------------------------------------------------------- +IC Capacitance Type 0:Self Capacitance, 1:Mutual Capacitance, 2:IDC +-----------------------------------------------------------*/ +enum enum_Report_Protocol_Type { + Self_Capacitance = 0, + Mutual_Capacitance = 1, + IDC_Capacitance = 2, +}; + +#if (FTS_CHIP_TEST_TYPE == FT6X36_TEST) +#define IC_Capacitance_Type 0 +#elif ((FTS_CHIP_TEST_TYPE == FT3C47_TEST) || (FTS_CHIP_TEST_TYPE == FT5822_TEST) || (FTS_CHIP_TEST_TYPE == FT5X46_TEST) || (FTS_CHIP_TEST_TYPE == FT3D47_TEST)) +#define IC_Capacitance_Type 1 +#elif ((FTS_CHIP_TEST_TYPE == FT8606_TEST) || (FTS_CHIP_TEST_TYPE == FT8607_TEST) || (FTS_CHIP_TEST_TYPE == FT8716_TEST) || (FTS_CHIP_TEST_TYPE == FT8736_TEST) || (FTS_CHIP_TEST_TYPE == FTE716_TEST) || (FTS_CHIP_TEST_TYPE == FTE736_TEST) || (FTS_CHIP_TEST_TYPE == FT8006_TEST)) +#define IC_Capacitance_Type 2 +#endif + + + + +extern struct stCfg_MCap_DetailThreshold g_stCfg_MCap_DetailThreshold; +extern struct stCfg_SCap_DetailThreshold g_stCfg_SCap_DetailThreshold; +extern struct stCfg_Incell_DetailThreshold g_stCfg_Incell_DetailThreshold; + + +extern int g_TestItemNum;/*test item num*/ +extern char g_strIcName[20];/*IC Name*/ +extern char *g_pStoreAllData; + +int GetPrivateProfileString(char *section, char *ItemName, char *defaultvalue, char *returnValue, char *IniFile); +void focal_msleep(int ms); +void SysDelay(int ms); +int focal_abs(int value); + + +void OnInit_InterfaceCfg(char *strIniFile); + +int ReadReg(unsigned char RegAddr, unsigned char *RegData); +int WriteReg(unsigned char RegAddr, unsigned char RegData); +unsigned char Comm_Base_IIC_IO(unsigned char *pWriteBuffer, int iBytesToWrite, unsigned char *pReadBuffer, int iBytesToRead); + +unsigned char EnterWork(void); +unsigned char EnterFactory(void); + +void fts_SetTestItemCodeName(unsigned char ucitemcode); + +extern void *fts_malloc(size_t size); +extern void fts_free(void *p); + +extern int InitTest(void); +extern void FinishTest(void); +extern void InitStoreParamOfTestData(void); +extern void MergeAllTestData(void); +extern int AllocateMemory(void); +extern void FreeMemory(void); + +extern char *g_pTmpBuff; +extern char *g_pStoreMsgArea; +extern int g_lenStoreMsgArea; +extern char *g_pMsgAreaLine2; +extern int g_lenMsgAreaLine2; +extern char *g_pStoreDataArea; +extern int g_lenStoreDataArea; +extern unsigned char m_ucTestItemCode; +extern int m_iStartLine; +extern int m_iTestDataCount; + +extern char *TestResult ; +extern int TestResultLen; + +#define FOCAL_TEST_DEBUG_EN 0 +#if (FOCAL_TEST_DEBUG_EN) +#define FTS_TEST_DBG(fmt, args...) do {printk(KERN_ERR "[FTS] [TEST]%s. line: %d. "fmt"\n", __FUNCTION__, __LINE__, ##args); } while (0) +#define FTS_TEST_FUNC_ENTER() printk(KERN_ERR "[FTS][TEST]%s: Enter(%d)\n", __func__, __LINE__) +#define FTS_TEST_FUNC_EXIT() printk(KERN_ERR "[FTS][TEST]%s: Exit(%d)\n", __func__, __LINE__) +#else +#define FTS_TEST_DBG(fmt, args...) do {} while (0) +#define FTS_TEST_FUNC_ENTER() +#define FTS_TEST_FUNC_EXIT() +#endif + +#define FTS_TEST_INFO(fmt, args...) do { printk(KERN_ERR "[FTS][TEST][Info]%s. line: %d. "fmt"\n", __FUNCTION__, __LINE__, ##args); } while (0) +#define FTS_TEST_ERROR(fmt, args...) do { printk(KERN_ERR "[FTS][TEST][Error]%s. line: %d. "fmt"\n", __FUNCTION__, __LINE__, ##args); } while (0) + + + +#endif diff --git a/drivers/input/touchscreen/FT8716/focaltech_test/include/focaltech_test_supported_ic.h b/drivers/input/touchscreen/FT8716/focaltech_test/include/focaltech_test_supported_ic.h new file mode 100755 index 0000000000000..7bd7ff7eb5c35 --- /dev/null +++ b/drivers/input/touchscreen/FT8716/focaltech_test/include/focaltech_test_supported_ic.h @@ -0,0 +1,1589 @@ +/************************************************************************ +* Copyright (C) 2010-2017, Focaltech Systems (R) All Rights Reserved. +* Copyright (C) 2018 XiaoMi, Inc. +* +* File Name: focaltech_test_supported_ic.h +* +* Author: Software Development Team, AE +* +* Created: 2016-08-01 +* +* Abstract: test entry for all IC +* +************************************************************************/ + +#include +#include + +#include "../focaltech_test_config.h" +#include "focaltech_test_main.h" + +#if (FTS_CHIP_TEST_TYPE == FT8716_TEST) + +struct stCfg_FT8716_TestItem { + bool FW_VERSION_TEST; + bool FACTORY_ID_TEST; + bool PROJECT_CODE_TEST; + bool IC_VERSION_TEST; + bool RAWDATA_TEST; + bool CHANNEL_NUM_TEST; + bool INT_PIN_TEST; + bool RESET_PIN_TEST; + bool NOISE_TEST; + bool CB_TEST; + bool SHORT_CIRCUIT_TEST; + bool OPEN_TEST; + bool CB_UNIFORMITY_TEST; + bool DIFFER_UNIFORMITY_TEST; + bool DIFFER2_UNIFORMITY_TEST; + bool LCD_NOISE_TEST; + +}; +struct stCfg_FT8716_BasicThreshold { + BYTE FW_VER_VALUE; + BYTE Factory_ID_Number; + char Project_Code[32]; + BYTE IC_Version; + bool bRawDataTest_VA_Check; + int RawDataTest_Min; + int RawDataTest_Max; + bool bRawDataTest_VKey_Check; + int RawDataTest_Min_VKey; + int RawDataTest_Max_VKey; + BYTE ChannelNumTest_ChannelXNum; + BYTE ChannelNumTest_ChannelYNum; + BYTE ChannelNumTest_KeyNum; + BYTE ResetPinTest_RegAddr; + BYTE IntPinTest_RegAddr; + int NoiseTest_Coefficient; + int NoiseTest_Frames; + int NoiseTest_Time; + BYTE NoiseTest_SampeMode; + BYTE NoiseTest_NoiseMode; + BYTE NoiseTest_ShowTip; + bool bCBTest_VA_Check; + int CbTest_Min; + int CbTest_Max; + bool bCBTest_VKey_Check; + int CbTest_Min_Vkey; + int CbTest_Max_Vkey; + + bool bCBTest_VKey_DCheck_Check; + int CbTest_Min_DCheck_Vkey; + int CbTest_Max_DCheck_Vkey; + + bool bLcdBusyAdjust; + int ShortCircuit_ResMin; + + int OpenTest_CBMin; + bool OpenTest_Check_K1; + int OpenTest_K1Threshold; + bool OpenTest_Check_K2; + int OpenTest_K2Threshold; + + bool CBUniformityTest_Check_CHX; + bool CBUniformityTest_Check_CHY; + bool CBUniformityTest_Check_MinMax; + int CBUniformityTest_CHX_Hole; + int CBUniformityTest_CHY_Hole; + int CBUniformityTest_MinMax_Hole; + + bool DifferUniformityTest_Check_CHX; + bool DifferUniformityTest_Check_CHY; + bool DifferUniformityTest_Check_MinMax; + int DifferUniformityTest_CHX_Hole; + int DifferUniformityTest_CHY_Hole; + int DifferUniformityTest_MinMax_Hole; + int DeltaVol; + + bool Differ2UniformityTest_Check_CHX; + bool Differ2UniformityTest_Check_CHY; + int Differ2UniformityTest_CHX_Hole; + int Differ2UniformityTest_CHY_Hole; + int Differ2UniformityTest_Differ_Min; + int Differ2UniformityTest_Differ_Max; + + + int LCDNoiseTest_FrameNum; + int LCDNoiseTest_Coefficient; + int LCDNoiseTest_Coefficient_Key; + BYTE LCDNoiseTest_NoiseMode; + int LCDNoiseTest_SequenceFrame; + int LCDNoiseTest_MaxFrame; + +}; +enum enumTestItem_FT8716 { + Code_FT8716_ENTER_FACTORY_MODE, + Code_FT8716_DOWNLOAD, + Code_FT8716_UPGRADE, + Code_FT8716_FACTORY_ID_TEST, + Code_FT8716_PROJECT_CODE_TEST, + Code_FT8716_FW_VERSION_TEST, + Code_FT8716_IC_VERSION_TEST, + Code_FT8716_RAWDATA_TEST, + Code_FT8716_CHANNEL_NUM_TEST, + + Code_FT8716_INT_PIN_TEST, + Code_FT8716_RESET_PIN_TEST, + Code_FT8716_NOISE_TEST, + Code_FT8716_CB_TEST, + + + Code_FT8716_WRITE_CONFIG, + + Code_FT8716_SHORT_CIRCUIT_TEST, + Code_FT8716_OPEN_TEST, + Code_FT8716_CB_UNIFORMITY_TEST, + Code_FT8716_DIFFER_UNIFORMITY_TEST, + Code_FT8716_DIFFER2_UNIFORMITY_TEST, + Code_FT8716_LCD_NOISE_TEST, +}; + +#elif (FTS_CHIP_TEST_TYPE == FT3D47_TEST) + +struct stCfg_FT3D47_TestItem { + bool FW_VERSION_TEST; + bool FACTORY_ID_TEST; + bool PROJECT_CODE_TEST; + bool IC_VERSION_TEST; + bool RAWDATA_TEST; + bool ADC_DETECT_TEST; + bool SCAP_CB_TEST; + bool SCAP_RAWDATA_TEST; + bool CHANNEL_NUM_TEST; + bool INT_PIN_TEST; + bool RESET_PIN_TEST; + bool NOISE_TEST; + bool WEAK_SHORT_CIRCUIT_TEST; + bool UNIFORMITY_TEST; + bool CM_TEST; + + bool RAWDATA_MARGIN_TEST; + bool PANEL_DIFFER_TEST; + bool PANEL_DIFFER_UNIFORMITY_TEST; + + bool LCM_ID_TEST; + + bool TE_TEST; + bool SITO_RAWDATA_UNIFORMITY_TEST; + bool PATTERN_TEST; + + bool FORCETOUCH_CHANNEL_NUM_TEST; + bool FORCETOUCH_RAWDATA_TEST; + bool FORCETOUCH_CB_TEST; + bool FORCETOUCH_WEAK_SHORT_CIRCUIT_TEST; + bool FORCETOUCH_FLATNESS_TEST; +}; + +struct stCfg_FT3D47_BasicThreshold { + BYTE FW_VER_VALUE; + BYTE Factory_ID_Number; + char Project_Code[32]; + BYTE IC_Version; + BYTE LCM_ID; + int RawDataTest_low_Min; + int RawDataTest_Low_Max; + int RawDataTest_high_Min; + int RawDataTest_high_Max; + BYTE RawDataTest_SetLowFreq; + BYTE RawDataTest_SetHighFreq; + int AdcDetect_Max; + + int SCapCbTest_OFF_Min; + int SCapCbTest_OFF_Max; + int SCapCbTest_ON_Min; + int SCapCbTest_ON_Max; + bool SCapCbTest_LetTx_Disable; + BYTE SCapCbTest_SetWaterproof_OFF; + BYTE SCapCbTest_SetWaterproof_ON; + int SCapRawDataTest_OFF_Min; + int SCapRawDataTest_OFF_Max; + int SCapRawDataTest_ON_Min; + int SCapRawDataTest_ON_Max; + bool SCapRawDataTest_LetTx_Disable; + BYTE SCapRawDataTest_SetWaterproof_OFF; + BYTE SCapRawDataTest_SetWaterproof_ON; + bool bChannelTestMapping; + bool bChannelTestNoMapping; + BYTE ChannelNumTest_TxNum; + BYTE ChannelNumTest_RxNum; + BYTE ChannelNumTest_TxNpNum; + BYTE ChannelNumTest_RxNpNum; + BYTE ResetPinTest_RegAddr; + BYTE IntPinTest_RegAddr; + BYTE IntPinTest_TestNum; + int NoiseTest_Max; + int GloveNoiseTest_Coefficient; + int NoiseTest_Frames; + int NoiseTest_Time; + BYTE NoiseTest_SampeMode; + BYTE NoiseTest_NoiseMode; + BYTE NoiseTest_ShowTip; + bool bNoiseTest_GloveMode; + int NoiseTest_RawdataMin; + unsigned char Set_Frequency; + bool bNoiseThreshold_Choose; + int NoiseTest_Threshold; + int NoiseTest_MinNgFrame; + int WeakShortTest_CG; + int WeakShortTest_CC; + int WeakShortTest_CC_Rsen; + bool WeakShortTest_CapShortTest; + + bool Uniformity_CheckTx; + bool Uniformity_CheckRx; + bool Uniformity_CheckMinMax; + int Uniformity_Tx_Hole; + int Uniformity_Rx_Hole; + int Uniformity_MinMax_Hole; + bool CMTest_CheckMin; + bool CMTest_CheckMax; + int CMTest_MinHole; + int CMTest_MaxHole; + + int RawdataMarginTest_Min; + int RawdataMarginTest_Max; + + int PanelDifferTest_Min; + int PanelDifferTest_Max; + + bool PanelDiffer_UniformityTest_Check_Tx; + bool PanelDiffer_UniformityTest_Check_Rx; + bool PanelDiffer_UniformityTest_Check_MinMax; + int PanelDiffer_UniformityTest_Tx_Hole; + int PanelDiffer_UniformityTest_Rx_Hole; + int PanelDiffer_UniformityTest_MinMax_Hole; + + bool SITO_RawdtaUniformityTest_Check_Tx; + bool SITO_RawdtaUniformityTest_Check_Rx; + int SITO_RawdtaUniformityTest_Tx_Hole; + int SITO_RawdtaUniformityTest_Rx_Hole; + + bool bPattern00; + bool bPatternFF; + bool bPattern55; + bool bPatternAA; + bool bPatternBin; + + int ForceTouch_ChannelNumTest_ChannelNum; + + int ForceTouch_SCapRawDataTest_OFF_Min; + int ForceTouch_SCapRawDataTest_OFF_Max; + int ForceTouch_SCapRawDataTest_ON_Min; + int ForceTouch_SCapRawDataTest_ON_Max; + BYTE ForceTouch_SCapRawDataTest_SetWaterproof_OFF; + BYTE ForceTouch_SCapRawDataTest_SetWaterproof_ON; + + int ForceTouch_SCapCbTest_OFF_Min; + int ForceTouch_SCapCbTest_OFF_Max; + int ForceTouch_SCapCbTest_ON_Min; + int ForceTouch_SCapCbTest_ON_Max; + BYTE ForceTouch_SCapCBTest_SetWaterproof_OFF; + BYTE ForceTouch_SCapCBTest_SetWaterproof_ON; + + int ForceTouch_WeakShortTest_CG; + int ForceTouch_WeakShortTest_CC; + bool bForceTouch_WeakShortTest_CapShortTest; + + int ForceTouch_FlatnessTest_Differ_Threshold; + int ForceTouch_FlatnessTest_Differ_Coefficient; + bool ForceTouch_FlatnessTest_Differ_Threshold_Check; + bool ForceTouch_FlatnessTest_Differ_Coefficient_Check; + +}; +enum enumTestItem_FT3D47 { + Code_FT3D47_ENTER_FACTORY_MODE, + Code_FT3D47_DOWNLOAD, + Code_FT3D47_UPGRADE, + Code_FT3D47_FACTORY_ID_TEST, + Code_FT3D47_PROJECT_CODE_TEST, + Code_FT3D47_FW_VERSION_TEST, + Code_FT3D47_IC_VERSION_TEST, + Code_FT3D47_RAWDATA_TEST, + Code_FT3D47_ADCDETECT_TEST, + Code_FT3D47_SCAP_CB_TEST, + Code_FT3D47_SCAP_RAWDATA_TEST, + Code_FT3D47_CHANNEL_NUM_TEST, + Code_FT3D47_INT_PIN_TEST, + Code_FT3D47_RESET_PIN_TEST, + Code_FT3D47_NOISE_TEST, + Code_FT3D47_WEAK_SHORT_CIRCUIT_TEST, + Code_FT3D47_UNIFORMITY_TEST, + Code_FT3D47_CM_TEST, + Code_FT3D47_RAWDATA_MARGIN_TEST, + Code_FT3D47_WRITE_CONFIG, + Code_FT3D47_PANELDIFFER_TEST, + Code_FT3D47_PANELDIFFER_UNIFORMITY_TEST, + Code_FT3D47_LCM_ID_TEST, + Code_FT3D47_JUDEG_NORMALIZE_TYPE, + Code_FT3D47_TE_TEST, + Code_FT3D47_SITO_RAWDATA_UNIFORMITY_TEST, + Code_FT3D47_PATTERN_TEST, + + Code_FT3D47_GPIO_TEST, + Code_FT3D47_LCD_NOISE_TEST, + Code_FT3D47_FORCE_TOUCH_CHANNEL_NUM_TEST, + Code_FT3D47_FORCE_TOUCH_SCAP_RAWDATA_TEST, + Code_FT3D47_FORCE_TOUCH_SCAP_CB_TEST, + Code_FT3D47_FORCE_TOUCH_WEAK_SHORT_CIRCUIT_TEST, + Code_FT3D47_FORCE_TOUCH_FLATNESS_TEST, +}; + + +#elif (FTS_CHIP_TEST_TYPE == FT8607_TEST) + +struct stCfg_FT8607_TESTItem { + bool FW_VERSION_TEST; + bool FACTORY_ID_TEST; + bool PROJECT_CODE_TEST; + bool IC_VERSION_TEST; + bool RAWDATA_TEST; + bool CHANNEL_NUM_TEST; + bool INT_PIN_TEST; + bool RESET_PIN_TEST; + bool NOISE_TEST; + bool CB_TEST; + bool SHORT_CIRCUIT_TEST; + bool LCD_NOISE_TEST; + bool OSC60MHZ_TEST; + bool OSCTRM_TEST; + bool SNR_TEST; + bool LPWG_RAWDATA_TEST; + bool LPWG_CB_TEST; + bool LPWG_NOISE_TEST; + bool DIFFER_TEST; + bool DIFFER_UNIFORMITY_TEST; + bool OPEN_TEST; +}; + +struct stCfg_FT8607_BasicThreshold { + BYTE FW_VER_VALUE; + BYTE Factory_ID_Number; + char Project_Code[32]; + BYTE IC_Version; + int RawDataTest_Min; + int RawDataTest_Max; + BYTE ChannelNumTest_ChannelXNum; + BYTE ChannelNumTest_ChannelYNum; + BYTE ChannelNumTest_KeyNum; + BYTE ResetPinTest_RegAddr; + BYTE IntPinTest_RegAddr; + int NoiseTest_Coefficient; + int NoiseTest_Frames; + int NoiseTest_Time; + BYTE NoiseTest_SampeMode; + BYTE NoiseTest_NoiseMode; + BYTE NoiseTest_ShowTip; + BYTE IsDifferMode; + bool bCBTest_VA_Check; + int CbTest_Min; + int CbTest_Max; + bool bCBTest_VKey_Check; + int CbTest_Min_Vkey; + int CbTest_Max_Vkey; + int ShortCircuit_ResMin; + int iLCDNoiseTestFrame; + int iLCDNoiseTestMax; + + int iLCDNoiseCoefficient; + int OSC60MHZTest_OSCMin; + int OSC60MHZTest_OSCMax; + + int OSCTRMTest_OSCMin; + int OSCTRMTest_OSCMax; + int OSCTRMTest_OSCDetMin; + int OSCTRMTest_OSCDetMax; + int SNRTest_FrameNum; + int SNRTest_Min; + + int DIFFERTest_FrameNum; + int DIFFERTest_DifferMax; + int DIFFERTest_DifferMin; + + bool DifferUniformityTest_Check_CHX; + bool DifferUniformityTest_Check_CHY; + bool DifferUniformityTest_Check_MinMax; + int DifferUniformityTest_CHX_Hole; + int DifferUniformityTest_CHY_Hole; + int DifferUniformityTest_MinMax_Hole; + + int LPWG_RawDataTest_Min; + int LPWG_RawDataTest_Max; + + bool bLPWG_CBTest_VA_Check; + int LPWG_CbTest_Min; + int LPWG_CbTest_Max; + bool bLPWG_CBTest_VKey_Check; + int LPWG_CbTest_Min_Vkey; + int LPWG_CbTest_Max_Vkey; + + int LPWG_NoiseTest_Coefficient; + int LPWG_NoiseTest_Frames; + int LPWG_NoiseTest_Time; + BYTE LPWG_NoiseTest_SampeMode; + BYTE LPWG_NoiseTest_NoiseMode; + BYTE LPWG_NoiseTest_ShowTip; + BYTE LPWG_IsDifferMode; + + int Open_Test_CBMin; +}; + + +enum enumTestItem_FT8607 { + Code_FT8607_ENTER_FACTORY_MODE, + Code_FT8607_DOWNLOAD, + Code_FT8607_UPGRADE, + Code_FT8607_FACTORY_ID_TEST, + Code_FT8607_PROJECT_CODE_TEST, + Code_FT8607_FW_VERSION_TEST, + Code_FT8607_IC_VERSION_TEST, + Code_FT8607_RAWDATA_TEST, + Code_FT8607_CHANNEL_NUM_TEST, + + Code_FT8607_INT_PIN_TEST, + Code_FT8607_RESET_PIN_TEST, + Code_FT8607_NOISE_TEST, + Code_FT8607_CB_TEST, + + + Code_FT8607_WRITE_CONFIG, + + Code_FT8607_SHORT_CIRCUIT_TEST, + Code_FT8607_LCD_NOISE_TEST, + + Code_FT8607_OSC60MHZ_TEST, + Code_FT8607_OSCTRM_TEST, + Code_FT8607_SNR_TEST, + Code_FT8607_DIFFER_TEST, + Code_FT8607_DIFFER_UNIFORMITY_TEST, + + Code_FT8607_LPWG_RAWDATA_TEST, + Code_FT8607_LPWG_CB_TEST, + Code_FT8607_LPWG_NOISE_TEST, + + Code_FT8607_OPEN_TEST, +}; + +#elif (FTS_CHIP_TEST_TYPE == FT5X46_TEST) +/*----------------------------------------------- +FT5X46 and FT5X22 is the same series of chips +FT5422\FT5X22 is the chip code for internally develope +FT5X46 is the chip code for market +------------------------------------------------*/ +struct stCfg_FT5X46_TestItem { + bool FW_VERSION_TEST; + bool FACTORY_ID_TEST; + bool PROJECT_CODE_TEST; + bool IC_VERSION_TEST; + bool RAWDATA_TEST; + bool ADC_DETECT_TEST; + bool SCAP_CB_TEST; + bool SCAP_RAWDATA_TEST; + bool CHANNEL_NUM_TEST; + bool INT_PIN_TEST; + bool RESET_PIN_TEST; + bool NOISE_TEST; + bool WEAK_SHORT_CIRCUIT_TEST; + bool UNIFORMITY_TEST; + bool CM_TEST; + + bool RAWDATA_MARGIN_TEST; + bool PANEL_DIFFER_TEST; + bool PANEL_DIFFER_UNIFORMITY_TEST; + + bool LCM_ID_TEST; + bool PANEL_ID_TEST; + + bool TE_TEST; + bool SITO_RAWDATA_UNIFORMITY_TEST; + bool PATTERN_TEST; + bool GPIO_TEST; + bool LCD_NOISE_TEST; +}; +struct stCfg_FT5X46_BasicThreshold { + BYTE FW_VER_VALUE; + BYTE Factory_ID_Number; + char Project_Code[32]; + BYTE IC_Version; + BYTE LCM_ID; + int RawDataTest_low_Min; + int RawDataTest_Low_Max; + int RawDataTest_high_Min; + int RawDataTest_high_Max; + BYTE RawDataTest_SetLowFreq; + BYTE RawDataTest_SetHighFreq; + int AdcDetect_Max; + + int SCapCbTest_OFF_Min; + int SCapCbTest_OFF_Max; + int SCapCbTest_ON_Min; + int SCapCbTest_ON_Max; + bool SCapCbTest_LetTx_Disable; + BYTE SCapCbTest_SetWaterproof_OFF; + BYTE SCapCbTest_SetWaterproof_ON; + int SCapRawDataTest_OFF_Min; + int SCapRawDataTest_OFF_Max; + int SCapRawDataTest_ON_Min; + int SCapRawDataTest_ON_Max; + bool SCapRawDataTest_LetTx_Disable; + BYTE SCapRawDataTest_SetWaterproof_OFF; + BYTE SCapRawDataTest_SetWaterproof_ON; + bool bChannelTestMapping; + bool bChannelTestNoMapping; + BYTE ChannelNumTest_TxNum; + BYTE ChannelNumTest_RxNum; + BYTE ChannelNumTest_TxNpNum; + BYTE ChannelNumTest_RxNpNum; + BYTE ResetPinTest_RegAddr; + BYTE IntPinTest_RegAddr; + BYTE IntPinTest_TestNum; + int NoiseTest_Max; + int GloveNoiseTest_Coefficient; + int NoiseTest_Frames; + int NoiseTest_Time; + BYTE NoiseTest_SampeMode; + BYTE NoiseTest_NoiseMode; + BYTE NoiseTest_ShowTip; + bool bNoiseTest_GloveMode; + int NoiseTest_RawdataMin; + unsigned char Set_Frequency; + bool bNoiseThreshold_Choose; + int NoiseTest_Threshold; + int NoiseTest_MinNgFrame; + int WeakShortTest_CG; + int WeakShortTest_CC; + int WeakShortTest_CC_Rsen; + bool WeakShortTest_CapShortTest; + + + bool Uniformity_CheckTx; + bool Uniformity_CheckRx; + bool Uniformity_CheckMinMax; + int Uniformity_Tx_Hole; + int Uniformity_Rx_Hole; + int Uniformity_MinMax_Hole; + bool CMTest_CheckMin; + bool CMTest_CheckMax; + int CMTest_MinHole; + int CMTest_MaxHole; + + int RawdataMarginTest_Min; + int RawdataMarginTest_Max; + + int PanelDifferTest_Min; + int PanelDifferTest_Max; + + bool PanelDiffer_UniformityTest_Check_Tx; + bool PanelDiffer_UniformityTest_Check_Rx; + bool PanelDiffer_UniformityTest_Check_MinMax; + int PanelDiffer_UniformityTest_Tx_Hole; + int PanelDiffer_UniformityTest_Rx_Hole; + int PanelDiffer_UniformityTest_MinMax_Hole; + + bool SITO_RawdtaUniformityTest_Check_Tx; + bool SITO_RawdtaUniformityTest_Check_Rx; + int SITO_RawdtaUniformityTest_Tx_Hole; + int SITO_RawdtaUniformityTest_Rx_Hole; + + bool bPattern00; + bool bPatternFF; + bool bPattern55; + bool bPatternAA; + bool bPatternBin; + + int Lcd_Noise_MaxFrame; + int Lcd_Noise_Conficient; + int Lcd_Noise_Noise_Mode; + int Lcd_Noise_MaxNgPoint; + int Lcd_Noise_FrameNum; + + bool Lcd_Noise_NoiseThresholdMode; + int Lcd_Noise_NoiseCoefficient; + int Lcd_Noise_NoiseMax; + int Lcd_Noise_SetFrequency; +}; +enum enumTestItem_FT5X46 { + Code_FT5X46_ENTER_FACTORY_MODE, + Code_FT5X46_DOWNLOAD, + Code_FT5X46_UPGRADE, + Code_FT5X46_FACTORY_ID_TEST, + Code_FT5X46_PROJECT_CODE_TEST, + Code_FT5X46_FW_VERSION_TEST, + Code_FT5X46_IC_VERSION_TEST, + Code_FT5X46_RAWDATA_TEST, + Code_FT5X46_ADCDETECT_TEST, + Code_FT5X46_SCAP_CB_TEST, + Code_FT5X46_SCAP_RAWDATA_TEST, + Code_FT5X46_CHANNEL_NUM_TEST, + Code_FT5X46_INT_PIN_TEST, + Code_FT5X46_RESET_PIN_TEST, + Code_FT5X46_NOISE_TEST, + Code_FT5X46_WEAK_SHORT_CIRCUIT_TEST, + Code_FT5X46_UNIFORMITY_TEST, + Code_FT5X46_CM_TEST, + Code_FT5X46_RAWDATA_MARGIN_TEST, + Code_FT5X46_WRITE_CONFIG, + Code_FT5X46_PANELDIFFER_TEST, + Code_FT5X46_PANELDIFFER_UNIFORMITY_TEST, + Code_FT5X46_LCM_ID_TEST, + Code_FT5X46_JUDEG_NORMALIZE_TYPE, + Code_FT5X46_TE_TEST, + Code_FT5X46_SITO_RAWDATA_UNIFORMITY_TEST, + Code_FT5X46_PATTERN_TEST, + Code_FT5X46_GPIO_TEST, + Code_FT5X46_LCD_NOISE_TEST, +}; + +#elif (FTS_CHIP_TEST_TYPE == FT6X36_TEST) + +struct stCfg_FT6X36_TestItem { + bool FW_VERSION_TEST; + bool FACTORY_ID_TEST; + bool PROJECT_CODE_TEST; + bool IC_VERSION_TEST; + bool RAWDATA_TEST; + bool CHANNEL_NUM_TEST; + bool CHANNEL_SHORT_TEST; + bool INT_PIN_TEST; + bool RESET_PIN_TEST; + bool NOISE_TEST; + bool CB_TEST; + bool DELTA_CB_TEST; + bool CHANNELS_DEVIATION_TEST; + bool TWO_SIDES_DEVIATION_TEST; + bool FPC_SHORT_TEST; + bool FPC_OPEN_TEST; + bool SREF_OPEN_TEST; + bool TE_TEST; + bool CB_DEVIATION_TEST; + bool DIFFER_TEST; + bool WEAK_SHORT_TEST; + bool DIFFER_TEST2; + bool K1_DIFFER_TEST; +}; + +struct stCfg_FT6X36_BasicThreshold { + BYTE FW_VER_VALUE; + BYTE Factory_ID_Number; + char Project_Code[32]; + BYTE IC_Version; + int RawDataTest_Min; + int RawDataTest_Max; + BYTE ChannelNumTest_ChannelNum; + BYTE ChannelNumTest_KeyNum; + int ChannelShortTest_K1; + int ChannelShortTest_K2; + int ChannelShortTest_CB; + BYTE ResetPinTest_RegAddr; + BYTE IntPinTest_RegAddr; + int WeakShortThreshold; + int NoiseTest_Max; + int NoiseTest_Frames; + int NoiseTest_Time; + BYTE NoiseTest_SampeMode; + BYTE NoiseTest_NoiseMode; + BYTE NoiseTest_ShowTip; + int FPCShort_CB_Min; + int FPCShort_CB_Max; + int FPCShort_RawData_Min; + int FPCShort_RawData_Max; + int FPCOpen_CB_Min; + int FPCOpen_CB_Max; + int FPCOpen_RawData_Min; + int FPCOpen_RawData_Max; + int SREFOpen_Hole_Base1; + int SREFOpen_Hole_Base2; + int SREFOpen_Hole; + int CBDeviationTest_Hole; + int Differ_Ave_Hole; + int Differ_Max_Hole; + int CbTest_Min; + int CbTest_Max; + int DeltaCbTest_Base; + int DeltaCbTest_Differ_Max; + bool DeltaCbTest_Include_Key_Test; + int DeltaCbTest_Key_Differ_Max; + int DeltaCbTest_Deviation_S1; + int DeltaCbTest_Deviation_S2; + int DeltaCbTest_Deviation_S3; + int DeltaCbTest_Deviation_S4; + int DeltaCbTest_Deviation_S5; + int DeltaCbTest_Deviation_S6; + bool DeltaCbTest_Set_Critical; + int DeltaCbTest_Critical_S1; + int DeltaCbTest_Critical_S2; + int DeltaCbTest_Critical_S3; + int DeltaCbTest_Critical_S4; + int DeltaCbTest_Critical_S5; + int DeltaCbTest_Critical_S6; + + int ChannelsDeviationTest_Deviation_S1; + int ChannelsDeviationTest_Deviation_S2; + int ChannelsDeviationTest_Deviation_S3; + int ChannelsDeviationTest_Deviation_S4; + int ChannelsDeviationTest_Deviation_S5; + int ChannelsDeviationTest_Deviation_S6; + bool ChannelsDeviationTest_Set_Critical; + int ChannelsDeviationTest_Critical_S1; + int ChannelsDeviationTest_Critical_S2; + int ChannelsDeviationTest_Critical_S3; + int ChannelsDeviationTest_Critical_S4; + int ChannelsDeviationTest_Critical_S5; + int ChannelsDeviationTest_Critical_S6; + + int TwoSidesDeviationTest_Deviation_S1; + int TwoSidesDeviationTest_Deviation_S2; + int TwoSidesDeviationTest_Deviation_S3; + int TwoSidesDeviationTest_Deviation_S4; + int TwoSidesDeviationTest_Deviation_S5; + int TwoSidesDeviationTest_Deviation_S6; + bool TwoSidesDeviationTest_Set_Critical; + int TwoSidesDeviationTest_Critical_S1; + int TwoSidesDeviationTest_Critical_S2; + int TwoSidesDeviationTest_Critical_S3; + int TwoSidesDeviationTest_Critical_S4; + int TwoSidesDeviationTest_Critical_S5; + int TwoSidesDeviationTest_Critical_S6; + + int DifferTest2_Data_H_Min; + int DifferTest2_Data_H_Max; + int DifferTest2_Data_M_Min; + int DifferTest2_Data_M_Max; + int DifferTest2_Data_L_Min; + int DifferTest2_Data_L_Max; + bool bDifferTest2_Data_H; + bool bDifferTest2_Data_M; + bool bDifferTest2_Data_L; + int K1DifferTest_StartK1; + int K1DifferTest_EndK1; + int K1DifferTest_MinHold2; + int K1DifferTest_MaxHold2; + int K1DifferTest_MinHold4; + int K1DifferTest_MaxHold4; + int K1DifferTest_Deviation2; + int K1DifferTest_Deviation4; +}; + +enum enumTestItem_FT6X36 { + Code_FT6X36_ENTER_FACTORY_MODE, + Code_FT6X36_DOWNLOAD, + Code_FT6X36_UPGRADE, + Code_FT6X36_FACTORY_ID_TEST, + Code_FT6X36_PROJECT_CODE_TEST, + Code_FT6X36_FW_VERSION_TEST, + Code_FT6X36_IC_VERSION_TEST, + Code_FT6X36_RAWDATA_TEST, + Code_FT6X36_CHANNEL_NUM_TEST, + Code_FT6X36_CHANNEL_SHORT_TEST, + Code_FT6X36_INT_PIN_TEST, + Code_FT6X36_RESET_PIN_TEST, + Code_FT6X36_NOISE_TEST, + Code_FT6X36_CB_TEST, + Code_FT6X36_DELTA_CB_TEST, + Code_FT6X36_CHANNELS_DEVIATION_TEST, + Code_FT6X36_TWO_SIDES_DEVIATION_TEST, + Code_FT6X36_FPC_SHORT_TEST, + Code_FT6X36_FPC_OPEN_TEST, + Code_FT6X36_SREF_OPEN_TEST, + Code_FT6X36_TE_TEST, + Code_FT6X36_CB_DEVIATION_TEST, + Code_FT6X36_WRITE_CONFIG, + Code_FT6X36_DIFFER_TEST, + Code_FT6X36_WEAK_SHORT_TEST, + Code_FT6X36_DIFFER_TEST2, + Code_FT6X36_K1_DIFFER_TEST, +}; + +#elif (FTS_CHIP_TEST_TYPE == FT5822_TEST) + +struct stCfg_FT5822_TestItem { + bool FW_VERSION_TEST; + bool FACTORY_ID_TEST; + bool PROJECT_CODE_TEST; + bool IC_VERSION_TEST; + bool RAWDATA_TEST; + bool ADC_DETECT_TEST; + bool SCAP_CB_TEST; + bool SCAP_RAWDATA_TEST; + bool CHANNEL_NUM_TEST; + bool INT_PIN_TEST; + bool RESET_PIN_TEST; + bool NOISE_TEST; + bool WEAK_SHORT_CIRCUIT_TEST; + bool UNIFORMITY_TEST; + bool CM_TEST; + + bool RAWDATA_MARGIN_TEST; + bool PANEL_DIFFER_TEST; + bool PANEL_DIFFER_UNIFORMITY_TEST; + + bool LCM_ID_TEST; + + bool TE_TEST; + bool SITO_RAWDATA_UNIFORMITY_TEST; + bool PATTERN_TEST; +}; +struct stCfg_FT5822_BasicThreshold { + BYTE FW_VER_VALUE; + BYTE Factory_ID_Number; + char Project_Code[32]; + BYTE IC_Version; + BYTE LCM_ID; + int RawDataTest_low_Min; + int RawDataTest_Low_Max; + int RawDataTest_high_Min; + int RawDataTest_high_Max; + BYTE RawDataTest_SetLowFreq; + BYTE RawDataTest_SetHighFreq; + int AdcDetect_Max; + + int SCapCbTest_OFF_Min; + int SCapCbTest_OFF_Max; + int SCapCbTest_ON_Min; + int SCapCbTest_ON_Max; + bool SCapCbTest_LetTx_Disable; + BYTE SCapCbTest_SetWaterproof_OFF; + BYTE SCapCbTest_SetWaterproof_ON; + int SCapRawDataTest_OFF_Min; + int SCapRawDataTest_OFF_Max; + int SCapRawDataTest_ON_Min; + int SCapRawDataTest_ON_Max; + bool SCapRawDataTest_LetTx_Disable; + BYTE SCapRawDataTest_SetWaterproof_OFF; + BYTE SCapRawDataTest_SetWaterproof_ON; + bool bChannelTestMapping; + bool bChannelTestNoMapping; + BYTE ChannelNumTest_TxNum; + BYTE ChannelNumTest_RxNum; + BYTE ChannelNumTest_TxNpNum; + BYTE ChannelNumTest_RxNpNum; + BYTE ResetPinTest_RegAddr; + BYTE IntPinTest_RegAddr; + BYTE IntPinTest_TestNum; + int NoiseTest_Max; + int GloveNoiseTest_Coefficient; + int NoiseTest_Frames; + int NoiseTest_Time; + BYTE NoiseTest_SampeMode; + BYTE NoiseTest_NoiseMode; + BYTE NoiseTest_ShowTip; + bool bNoiseTest_GloveMode; + int NoiseTest_RawdataMin; + unsigned char Set_Frequency; + bool bNoiseThreshold_Choose; + int NoiseTest_Threshold; + int NoiseTest_MinNgFrame; + int WeakShortTest_CG; + int WeakShortTest_CC; + + bool Uniformity_CheckTx; + bool Uniformity_CheckRx; + bool Uniformity_CheckMinMax; + int Uniformity_Tx_Hole; + int Uniformity_Rx_Hole; + int Uniformity_MinMax_Hole; + bool CMTest_CheckMin; + bool CMTest_CheckMax; + int CMTest_MinHole; + int CMTest_MaxHole; + + int RawdataMarginTest_Min; + int RawdataMarginTest_Max; + + int PanelDifferTest_Min; + int PanelDifferTest_Max; + + bool PanelDiffer_UniformityTest_Check_Tx; + bool PanelDiffer_UniformityTest_Check_Rx; + bool PanelDiffer_UniformityTest_Check_MinMax; + int PanelDiffer_UniformityTest_Tx_Hole; + int PanelDiffer_UniformityTest_Rx_Hole; + int PanelDiffer_UniformityTest_MinMax_Hole; + + bool SITO_RawdtaUniformityTest_Check_Tx; + bool SITO_RawdtaUniformityTest_Check_Rx; + int SITO_RawdtaUniformityTest_Tx_Hole; + int SITO_RawdtaUniformityTest_Rx_Hole; + + bool bPattern00; + bool bPatternFF; + bool bPattern55; + bool bPatternAA; + bool bPatternBin; +}; +enum enumTestItem_FT5822 { + Code_FT5822_ENTER_FACTORY_MODE, + Code_FT5822_DOWNLOAD, + Code_FT5822_UPGRADE, + Code_FT5822_FACTORY_ID_TEST, + Code_FT5822_PROJECT_CODE_TEST, + Code_FT5822_FW_VERSION_TEST, + Code_FT5822_IC_VERSION_TEST, + Code_FT5822_RAWDATA_TEST, + Code_FT5822_ADCDETECT_TEST, + Code_FT5822_SCAP_CB_TEST, + Code_FT5822_SCAP_RAWDATA_TEST, + Code_FT5822_CHANNEL_NUM_TEST, + Code_FT5822_INT_PIN_TEST, + Code_FT5822_RESET_PIN_TEST, + Code_FT5822_NOISE_TEST, + Code_FT5822_WEAK_SHORT_CIRCUIT_TEST, + Code_FT5822_UNIFORMITY_TEST, + Code_FT5822_CM_TEST, + Code_FT5822_RAWDATA_MARGIN_TEST, + Code_FT5822_WRITE_CONFIG, + Code_FT5822_PANELDIFFER_TEST, + Code_FT5822_PANELDIFFER_UNIFORMITY_TEST, + Code_FT5822_LCM_ID_TEST, + Code_FT5822_JUDEG_NORMALIZE_TYPE, + Code_FT5822_TE_TEST, + Code_FT5822_SITO_RAWDATA_UNIFORMITY_TEST, + Code_FT5822_PATTERN_TEST, +}; + +#elif (FTS_CHIP_TEST_TYPE == FT8006_TEST) + +struct stCfg_FT8006_TestItem { + bool FW_VERSION_TEST; + bool FACTORY_ID_TEST; + bool PROJECT_CODE_TEST; + bool IC_VERSION_TEST; + bool RAWDATA_TEST; + bool CHANNEL_NUM_TEST; + bool INT_PIN_TEST; + bool RESET_PIN_TEST; + bool NOISE_TEST; + bool CB_TEST; + bool SHORT_CIRCUIT_TEST; + bool LCD_NOISE_TEST; + bool OSC60MHZ_TEST; + bool OSCTRM_TEST; + bool SNR_TEST; + bool LPWG_RAWDATA_TEST; + bool LPWG_CB_TEST; + bool LPWG_NOISE_TEST; + bool DIFFER_TEST; + bool DIFFER_UNIFORMITY_TEST; + bool DIFFER2_TEST; + +}; +struct stCfg_FT8006_BasicThreshold { + BYTE FW_VER_VALUE; + BYTE Factory_ID_Number; + char Project_Code[32]; + BYTE IC_Version; + int RawDataTest_Min; + int RawDataTest_Max; + BYTE ChannelNumTest_ChannelXNum; + BYTE ChannelNumTest_ChannelYNum; + BYTE ChannelNumTest_KeyNum; + BYTE ResetPinTest_RegAddr; + BYTE IntPinTest_RegAddr; + int NoiseTest_Coefficient; + int NoiseTest_Frames; + int NoiseTest_Time; + BYTE NoiseTest_SampeMode; + BYTE NoiseTest_NoiseMode; + BYTE NoiseTest_ShowTip; + BYTE IsDifferMode; + bool bCBTest_VA_Check; + int CbTest_Min; + int CbTest_Max; + bool bCBTest_VKey_Check; + int CbTest_Min_Vkey; + int CbTest_Max_Vkey; + int ShortCircuit_ResMin; + int iLCDNoiseTestFrame; + int iLCDNoiseTestMaxScreen; + int iLCDNoiseTestMaxFrame; + int iLCDNoiseCoefficient; + + int OSC60MHZTest_OSCMin; + int OSC60MHZTest_OSCMax; + + int OSCTRMTest_OSCMin; + int OSCTRMTest_OSCMax; + int OSCTRMTest_OSCDetMin; + int OSCTRMTest_OSCDetMax; + int SNRTest_FrameNum; + int SNRTest_Min; + + int DIFFERTest_FrameNum; + int DIFFERTest_DifferMax; + int DIFFERTest_DifferMin; + + bool DifferUniformityTest_Check_CHX; + bool DifferUniformityTest_Check_CHY; + bool DifferUniformityTest_Check_MinMax; + int DifferUniformityTest_CHX_Hole; + int DifferUniformityTest_CHY_Hole; + int DifferUniformityTest_MinMax_Hole; + + int LPWG_RawDataTest_Min; + int LPWG_RawDataTest_Max; + + bool bLPWG_CBTest_VA_Check; + int LPWG_CbTest_Min; + int LPWG_CbTest_Max; + bool bLPWG_CBTest_VKey_Check; + int LPWG_CbTest_Min_Vkey; + int LPWG_CbTest_Max_Vkey; + + int LPWG_NoiseTest_Coefficient; + int LPWG_NoiseTest_Frames; + int LPWG_NoiseTest_Time; + BYTE LPWG_NoiseTest_SampeMode; + BYTE LPWG_NoiseTest_NoiseMode; + BYTE LPWG_NoiseTest_ShowTip; + BYTE LPWG_IsDifferMode; + + int Differ2Test_Min; + int Differ2Test_Max; + +}; +enum enumTestItem_FT8006 { + Code_FT8006_ENTER_FACTORY_MODE, + Code_FT8006_DOWNLOAD, + Code_FT8006_UPGRADE, + Code_FT8006_FACTORY_ID_TEST, + Code_FT8006_PROJECT_CODE_TEST, + Code_FT8006_FW_VERSION_TEST, + Code_FT8006_IC_VERSION_TEST, + Code_FT8006_RAWDATA_TEST, + Code_FT8006_CHANNEL_NUM_TEST, + Code_FT8006_INT_PIN_TEST, + Code_FT8006_RESET_PIN_TEST, + Code_FT8006_NOISE_TEST, + Code_FT8006_CB_TEST, + Code_FT8006_WRITE_CONFIG, + Code_FT8006_SHORT_CIRCUIT_TEST, + Code_FT8006_LCD_NOISE_TEST, + + Code_FT8006_OSC60MHZ_TEST, + Code_FT8006_OSCTRM_TEST, + Code_FT8006_SNR_TEST, + Code_FT8006_DIFFER_TEST, + Code_FT8006_DIFFER_UNIFORMITY_TEST, + + Code_FT8006_LPWG_RAWDATA_TEST, + Code_FT8006_LPWG_CB_TEST, + Code_FT8006_LPWG_NOISE_TEST, + Code_FT8006_DIFFER2_TEST, +}; + +#elif (FTS_CHIP_TEST_TYPE == FT8736_TEST) + +struct stCfg_FT8736_TestItem { + bool FW_VERSION_TEST; + bool FACTORY_ID_TEST; + bool PROJECT_CODE_TEST; + bool IC_VERSION_TEST; + bool ICTYPE_TEST; + bool RAWDATA_TEST; + bool CHANNEL_NUM_TEST; + bool INT_PIN_TEST; + bool RESET_PIN_TEST; + bool NOISE_TEST; + bool CB_TEST; + bool SHORT_CIRCUIT_TEST; + bool OPEN_TEST; + bool CB_UNIFORMITY_TEST; + bool DIFFER_UNIFORMITY_TEST; + bool DIFFER2_UNIFORMITY_TEST; + bool LCD_NOISE_TEST; + bool CB_DECREASE_TEST; + bool VREF_DECREASE_TEST; +}; +struct stCfg_FT8736_BasicThreshold { + BYTE FW_VER_VALUE; + BYTE Factory_ID_Number; + char Project_Code[32]; + BYTE IC_Version; + bool bRawDataTest_VA_Check; + int RawDataTest_Min; + int RawDataTest_Max; + bool bRawDataTest_VKey_Check; + int RawDataTest_Min_VKey; + int RawDataTest_Max_VKey; + BYTE ChannelNumTest_ChannelXNum; + BYTE ChannelNumTest_ChannelYNum; + BYTE ChannelNumTest_KeyNum; + BYTE ResetPinTest_RegAddr; + BYTE IntPinTest_RegAddr; + int NoiseTest_Coefficient; + int NoiseTest_Frames; + int NoiseTest_Time; + BYTE NoiseTest_SampeMode; + BYTE NoiseTest_NoiseMode; + BYTE NoiseTest_ShowTip; + bool bCBTest_VA_Check; + int CbTest_Min; + int CbTest_Max; + bool bCBTest_VKey_Check; + int CbTest_Min_Vkey; + int CbTest_Max_Vkey; + + int ShortCircuit_ResMin; + + int OpenTest_CBMin; + + bool CBUniformityTest_Check_CHX; + bool CBUniformityTest_Check_CHY; + bool CBUniformityTest_Check_MinMax; + int CBUniformityTest_CHX_Hole; + int CBUniformityTest_CHY_Hole; + int CBUniformityTest_MinMax_Hole; + + bool DifferUniformityTest_Check_CHX; + bool DifferUniformityTest_Check_CHY; + bool DifferUniformityTest_Check_MinMax; + int DifferUniformityTest_CHX_Hole; + int DifferUniformityTest_CHY_Hole; + int DifferUniformityTest_MinMax_Hole; + int DeltaVol; + + bool Differ2UniformityTest_Check_CHX; + bool Differ2UniformityTest_Check_CHY; + int Differ2UniformityTest_CHX_Hole; + int Differ2UniformityTest_CHY_Hole; + int Differ2UniformityTest_Differ_Min; + int Differ2UniformityTest_Differ_Max; + + int LCDNoiseTest_FrameNum; + int LCDNoiseTest_Coefficient; + int LCDNoiseTest_Coefficient_Key; + BYTE LCDNoiseTest_NoiseMode; + + int CBDecrease_Step; + int CBDecrease_OrgMin; + int CBDecrease_OrgMax; + int CBDecrease_CalcMin; + int CBDecrease_CalcMax; + + int VRefDecrease_StepBegin; + int VRefDecrease_StepEnd; + int VRefDecrease_OrgMin; + int VRefDecrease_OrgMax; + int VRefDecrease_CalcMin; + int VRefDecrease_CalcMax; +}; + +enum enumTestItem_FT8736 { + Code_FT8736_ENTER_FACTORY_MODE, + Code_FT8736_DOWNLOAD, + Code_FT8736_UPGRADE, + Code_FT8736_FACTORY_ID_TEST, + Code_FT8736_PROJECT_CODE_TEST, + Code_FT8736_FW_VERSION_TEST, + Code_FT8736_IC_VERSION_TEST, + Code_FT8736_RAWDATA_TEST, + Code_FT8736_CHANNEL_NUM_TEST, + + Code_FT8736_INT_PIN_TEST, + Code_FT8736_RESET_PIN_TEST, + Code_FT8736_NOISE_TEST, + Code_FT8736_CB_TEST, + + + Code_FT8736_WRITE_CONFIG, + + Code_FT8736_SHORT_CIRCUIT_TEST, + Code_FT8736_OPEN_TEST, + Code_FT8736_CB_UNIFORMITY_TEST, + Code_FT8736_DIFFER_UNIFORMITY_TEST, + Code_FT8736_DIFFER2_UNIFORMITY_TEST, + Code_FT8736_LCD_NOISE_TEST, + Code_FT8736_CB_DECREASE_TEST, + Code_FT8736_VREF_DECREASE_TEST, + Code_FT8736_IC_TYPE_TEST, +}; + +#elif (FTS_CHIP_TEST_TYPE == FTE716_TEST) +struct stCfg_FTE716_TestItem { + bool FW_VERSION_TEST; + bool FACTORY_ID_TEST; + bool PROJECT_CODE_TEST; + bool IC_VERSION_TEST; + bool ICTYPE_TEST; + bool RAWDATA_TEST; + bool CHANNEL_NUM_TEST; + bool INT_PIN_TEST; + bool RESET_PIN_TEST; + bool NOISE_TEST; + bool CB_TEST; + bool SHORT_CIRCUIT_TEST; + bool OPEN_TEST; + bool CB_UNIFORMITY_TEST; + bool DIFFER_UNIFORMITY_TEST; + bool DIFFER2_UNIFORMITY_TEST; + bool LCD_NOISE_TEST; + bool GPIO_TEST; +}; +struct stCfg_FTE716_BasicThreshold { + BYTE FW_VER_VALUE; + BYTE Factory_ID_Number; + char Project_Code[32]; + bool bOri_ProjectCode; + BYTE IC_Version; + bool bRawDataTest_VA_Check; + int RawDataTest_Min; + int RawDataTest_Max; + bool bRawDataTest_VKey_Check; + int RawDataTest_Min_VKey; + int RawDataTest_Max_VKey; + BYTE ChannelNumTest_ChannelXNum; + BYTE ChannelNumTest_ChannelYNum; + BYTE ChannelNumTest_KeyNum; + BYTE ResetPinTest_RegAddr; + BYTE IntPinTest_RegAddr; + int NoiseTest_Coefficient; + int NoiseTest_Frames; + int NoiseTest_Time; + BYTE NoiseTest_SampeMode; + BYTE NoiseTest_NoiseMode; + BYTE NoiseTest_ShowTip; + bool bCBTest_VA_Check; + int CbTest_Min; + int CbTest_Max; + bool bCBTest_VKey_Check; + int CbTest_Min_Vkey; + int CbTest_Max_Vkey; + + int ShortCircuit_ResMin; + + int OpenTest_CBMin; + bool OpenTest_Check_K1; + int OpenTest_K1Threshold; + bool OpenTest_Check_K2; + int OpenTest_K2Threshold; + + bool CBUniformityTest_Check_CHX; + bool CBUniformityTest_Check_CHY; + bool CBUniformityTest_Check_MinMax; + int CBUniformityTest_CHX_Hole; + int CBUniformityTest_CHY_Hole; + int CBUniformityTest_MinMax_Hole; + + bool DifferUniformityTest_Check_CHX; + bool DifferUniformityTest_Check_CHY; + bool DifferUniformityTest_Check_MinMax; + int DifferUniformityTest_CHX_Hole; + int DifferUniformityTest_CHY_Hole; + int DifferUniformityTest_MinMax_Hole; + int DeltaVol; + + bool Differ2UniformityTest_Check_CHX; + bool Differ2UniformityTest_Check_CHY; + int Differ2UniformityTest_CHX_Hole; + int Differ2UniformityTest_CHY_Hole; + int Differ2UniformityTest_Differ_Min; + int Differ2UniformityTest_Differ_Max; + + int LCDNoiseTest_FrameNum; + int LCDNoiseTest_Coefficient; + BYTE LCDNoiseTest_NoiseMode; +}; + +enum enumTestItem_FTE716 { + Code_FTE716_ENTER_FACTORY_MODE, + Code_FTE716_DOWNLOAD, + Code_FTE716_UPGRADE, + Code_FTE716_FACTORY_ID_TEST, + Code_FTE716_PROJECT_CODE_TEST, + Code_FTE716_FW_VERSION_TEST, + Code_FTE716_IC_VERSION_TEST, + Code_FTE716_RAWDATA_TEST, + Code_FTE716_CHANNEL_NUM_TEST, + + Code_FTE716_INT_PIN_TEST, + Code_FTE716_RESET_PIN_TEST, + Code_FTE716_NOISE_TEST, + Code_FTE716_CB_TEST, + + + Code_FTE716_WRITE_CONFIG, + + Code_FTE716_SHORT_CIRCUIT_TEST, + Code_FTE716_OPEN_TEST, + Code_FTE716_CB_UNIFORMITY_TEST, + Code_FTE716_DIFFER_UNIFORMITY_TEST, + Code_FTE716_DIFFER2_UNIFORMITY_TEST, + Code_FTE716_LCD_NOISE_TEST, + Code_FTE716_GPIO_TEST, + Code_FTE716_IC_TYPE_TEST, +}; +#elif(FTS_CHIP_TEST_TYPE == FT8606_TEST) + +struct stCfg_FT8606_TestItem { + bool FW_VERSION_TEST; + bool FACTORY_ID_TEST; + bool PROJECT_CODE_TEST; + bool IC_VERSION_TEST; + bool RAWDATA_TEST; + bool CHANNEL_NUM_TEST; + bool INT_PIN_TEST; + bool RESET_PIN_TEST; + bool NOISE_TEST; + bool CB_TEST; + bool SHORT_CIRCUIT_TEST; + bool LCD_NOISE_TEST; + bool OSC60MHZ_TEST; + bool OSCTRM_TEST; + bool IVSN_TEST; +}; +struct stCfg_FT8606_BasicThreshold { + BYTE FW_VER_VALUE; + BYTE Factory_ID_Number; + char Project_Code[32]; + BYTE IC_Version; + int RawDataTest_Min; + int RawDataTest_Max; + BYTE ChannelNumTest_ChannelXNum; + BYTE ChannelNumTest_ChannelYNum; + BYTE ChannelNumTest_KeyNum; + BYTE ResetPinTest_RegAddr; + BYTE IntPinTest_RegAddr; + int NoiseTest_Coefficient; + int NoiseTest_Frames; + int NoiseTest_Time; + BYTE NoiseTest_SampeMode; + BYTE NoiseTest_NoiseMode; + BYTE NoiseTest_ShowTip; + int CbTest_Min; + int CbTest_Max; + int ShortTest_Max; + int ShortTest_K2Value; + bool ShortTest_Tip; + bool IsDifferMode; + int iLCDNoiseTestFrame; + int iLCDNoiseTestMaxScreen; + int iLCDNoiseTestMaxFrame; + int iLCDNoiseCoefficient; + + int OSC60MHZTest_OSCMin; + int OSC60MHZTest_OSCMax; + + int OSCTRMTest_OSCMin; + int OSCTRMTest_OSCMax; + int OSCTRMTest_OSCDetMin; + int OSCTRMTest_OSCDetMax; +}; + + +enum enumTestItem_FT8606 { + Code_FT8606_ENTER_FACTORY_MODE, + Code_FT8606_DOWNLOAD, + Code_FT8606_UPGRADE, + Code_FT8606_FACTORY_ID_TEST, + Code_FT8606_PROJECT_CODE_TEST, + Code_FT8606_FW_VERSION_TEST, + Code_FT8606_IC_VERSION_TEST, + Code_FT8606_RAWDATA_TEST, + Code_FT8606_CHANNEL_NUM_TEST, + + Code_FT8606_INT_PIN_TEST, + Code_FT8606_RESET_PIN_TEST, + Code_FT8606_NOISE_TEST, + Code_FT8606_CB_TEST, + + + Code_FT8606_WRITE_CONFIG, + + Code_FT8606_SHORT_CIRCUIT_TEST, + Code_FT8606_LCD_NOISE_TEST, + Code_FT8606_OSC60MHZ_TEST, + Code_FT8606_OSCTRM_TEST, + Code_FT8606_IVSN_TEST, +}; +#elif(FTS_CHIP_TEST_TYPE == FT3C47_TEST) + +struct stCfg_FT3C47_TestItem { + bool FW_VERSION_TEST; + bool FACTORY_ID_TEST; + bool PROJECT_CODE_TEST; + bool IC_VERSION_TEST; + bool RAWDATA_TEST; + bool ADC_DETECT_TEST; + bool SCAP_CB_TEST; + bool SCAP_RAWDATA_TEST; + bool CHANNEL_NUM_TEST; + bool INT_PIN_TEST; + bool RESET_PIN_TEST; + bool NOISE_TEST; + bool WEAK_SHORT_CIRCUIT_TEST; + bool UNIFORMITY_TEST; + bool CM_TEST; + + bool RAWDATA_MARGIN_TEST; + bool PANEL_DIFFER_TEST; + bool PANEL_DIFFER_UNIFORMITY_TEST; + + bool LCM_ID_TEST; + + bool TE_TEST; + bool SITO_RAWDATA_UNIFORMITY_TEST; + bool PATTERN_TEST; + + bool FORCETOUCH_CHANNEL_NUM_TEST; + bool FORCETOUCH_RAWDATA_TEST; + bool FORCETOUCH_CB_TEST; + bool FORCETOUCH_WEAK_SHORT_CIRCUIT_TEST; + bool FORCETOUCH_FLATNESS_TEST; +}; + +struct stCfg_FT3C47_BasicThreshold { + BYTE FW_VER_VALUE; + BYTE Factory_ID_Number; + char Project_Code[32]; + BYTE IC_Version; + BYTE LCM_ID; + int RawDataTest_low_Min; + int RawDataTest_Low_Max; + int RawDataTest_high_Min; + int RawDataTest_high_Max; + BYTE RawDataTest_SetLowFreq; + BYTE RawDataTest_SetHighFreq; + int AdcDetect_Max; + + int SCapCbTest_OFF_Min; + int SCapCbTest_OFF_Max; + int SCapCbTest_ON_Min; + int SCapCbTest_ON_Max; + bool SCapCbTest_LetTx_Disable; + BYTE SCapCbTest_SetWaterproof_OFF; + BYTE SCapCbTest_SetWaterproof_ON; + int SCapRawDataTest_OFF_Min; + int SCapRawDataTest_OFF_Max; + int SCapRawDataTest_ON_Min; + int SCapRawDataTest_ON_Max; + bool SCapRawDataTest_LetTx_Disable; + BYTE SCapRawDataTest_SetWaterproof_OFF; + BYTE SCapRawDataTest_SetWaterproof_ON; + bool bChannelTestMapping; + bool bChannelTestNoMapping; + BYTE ChannelNumTest_TxNum; + BYTE ChannelNumTest_RxNum; + BYTE ChannelNumTest_TxNpNum; + BYTE ChannelNumTest_RxNpNum; + BYTE ResetPinTest_RegAddr; + BYTE IntPinTest_RegAddr; + BYTE IntPinTest_TestNum; + int NoiseTest_Max; + int GloveNoiseTest_Coefficient; + int NoiseTest_Frames; + int NoiseTest_Time; + BYTE NoiseTest_SampeMode; + BYTE NoiseTest_NoiseMode; + BYTE NoiseTest_ShowTip; + bool bNoiseTest_GloveMode; + int NoiseTest_RawdataMin; + unsigned char Set_Frequency; + bool bNoiseThreshold_Choose; + int NoiseTest_Threshold; + int NoiseTest_MinNgFrame; + int WeakShortTest_CG; + int WeakShortTest_CC; + int WeakShortTest_CC_Rsen; + bool WeakShortTest_CapShortTest; + + bool Uniformity_CheckTx; + bool Uniformity_CheckRx; + bool Uniformity_CheckMinMax; + int Uniformity_Tx_Hole; + int Uniformity_Rx_Hole; + int Uniformity_MinMax_Hole; + bool CMTest_CheckMin; + bool CMTest_CheckMax; + int CMTest_MinHole; + int CMTest_MaxHole; + + int RawdataMarginTest_Min; + int RawdataMarginTest_Max; + + int PanelDifferTest_Min; + int PanelDifferTest_Max; + + bool PanelDiffer_UniformityTest_Check_Tx; + bool PanelDiffer_UniformityTest_Check_Rx; + bool PanelDiffer_UniformityTest_Check_MinMax; + int PanelDiffer_UniformityTest_Tx_Hole; + int PanelDiffer_UniformityTest_Rx_Hole; + int PanelDiffer_UniformityTest_MinMax_Hole; + + bool SITO_RawdtaUniformityTest_Check_Tx; + bool SITO_RawdtaUniformityTest_Check_Rx; + int SITO_RawdtaUniformityTest_Tx_Hole; + int SITO_RawdtaUniformityTest_Rx_Hole; + + bool bPattern00; + bool bPatternFF; + bool bPattern55; + bool bPatternAA; + bool bPatternBin; + + int ForceTouch_ChannelNumTest_ChannelNum; + + int ForceTouch_SCapRawDataTest_OFF_Min; + int ForceTouch_SCapRawDataTest_OFF_Max; + int ForceTouch_SCapRawDataTest_ON_Min; + int ForceTouch_SCapRawDataTest_ON_Max; + BYTE ForceTouch_SCapRawDataTest_SetWaterproof_OFF; + BYTE ForceTouch_SCapRawDataTest_SetWaterproof_ON; + + int ForceTouch_SCapCbTest_OFF_Min; + int ForceTouch_SCapCbTest_OFF_Max; + int ForceTouch_SCapCbTest_ON_Min; + int ForceTouch_SCapCbTest_ON_Max; + BYTE ForceTouch_SCapCBTest_SetWaterproof_OFF; + BYTE ForceTouch_SCapCBTest_SetWaterproof_ON; + + int ForceTouch_WeakShortTest_CG; + int ForceTouch_WeakShortTest_CC; + bool bForceTouch_WeakShortTest_CapShortTest; + + int ForceTouch_FlatnessTest_Differ_Threshold; + int ForceTouch_FlatnessTest_Differ_Coefficient; + bool ForceTouch_FlatnessTest_Differ_Threshold_Check; + bool ForceTouch_FlatnessTest_Differ_Coefficient_Check; + +}; +enum enumTestItem_FT3C47 { + Code_FT3C47_ENTER_FACTORY_MODE, + Code_FT3C47_DOWNLOAD, + Code_FT3C47_UPGRADE, + Code_FT3C47_FACTORY_ID_TEST, + Code_FT3C47_PROJECT_CODE_TEST, + Code_FT3C47_FW_VERSION_TEST, + Code_FT3C47_IC_VERSION_TEST, + Code_FT3C47_RAWDATA_TEST, + Code_FT3C47_ADCDETECT_TEST, + Code_FT3C47_SCAP_CB_TEST, + Code_FT3C47_SCAP_RAWDATA_TEST, + Code_FT3C47_CHANNEL_NUM_TEST, + Code_FT3C47_INT_PIN_TEST, + Code_FT3C47_RESET_PIN_TEST, + Code_FT3C47_NOISE_TEST, + Code_FT3C47_WEAK_SHORT_CIRCUIT_TEST, + Code_FT3C47_UNIFORMITY_TEST, + Code_FT3C47_CM_TEST, + Code_FT3C47_RAWDATA_MARGIN_TEST, + Code_FT3C47_WRITE_CONFIG, + Code_FT3C47_PANELDIFFER_TEST, + Code_FT3C47_PANELDIFFER_UNIFORMITY_TEST, + Code_FT3C47_LCM_ID_TEST, + Code_FT3C47_JUDEG_NORMALIZE_TYPE, + Code_FT3C47_TE_TEST, + Code_FT3C47_SITO_RAWDATA_UNIFORMITY_TEST, + Code_FT3C47_PATTERN_TEST, + + Code_FT3C47_GPIO_TEST, + Code_FT3C47_LCD_NOISE_TEST, + Code_FT3C47_FORCE_TOUCH_CHANNEL_NUM_TEST, + Code_FT3C47_FORCE_TOUCH_SCAP_RAWDATA_TEST, + Code_FT3C47_FORCE_TOUCH_SCAP_CB_TEST, + Code_FT3C47_FORCE_TOUCH_WEAK_SHORT_CIRCUIT_TEST, + Code_FT3C47_FORCE_TOUCH_FLATNESS_TEST, +}; +#endif + + diff --git a/drivers/input/touchscreen/FT8716/focaltech_test/src/Makefile b/drivers/input/touchscreen/FT8716/focaltech_test/src/Makefile new file mode 100755 index 0000000000000..cb7b431f884c6 --- /dev/null +++ b/drivers/input/touchscreen/FT8716/focaltech_test/src/Makefile @@ -0,0 +1,12 @@ +#drivers/input/touchscreen/focaltech_touch/focaltech_test/src +# +# Makefile for test module +# +# Linux driver folder + +obj-$(CONFIG_TOUCHSCREEN_FTS) += focaltech_test.o +obj-$(CONFIG_TOUCHSCREEN_FTS) += focaltech_test_main.o +obj-$(CONFIG_TOUCHSCREEN_FTS) += focaltech_test_ini.o +obj-$(CONFIG_TOUCHSCREEN_FTS) += focaltech_test_global.o +obj-$(CONFIG_TOUCHSCREEN_FTS) += focaltech_test_detail_threshold.o +obj-$(CONFIG_TOUCHSCREEN_FTS) += focaltech_ic_table.o diff --git a/drivers/input/touchscreen/FT8716/focaltech_test/src/focaltech_ic_table.c b/drivers/input/touchscreen/FT8716/focaltech_test/src/focaltech_ic_table.c new file mode 100755 index 0000000000000..9c6db37efbfd1 --- /dev/null +++ b/drivers/input/touchscreen/FT8716/focaltech_test/src/focaltech_ic_table.c @@ -0,0 +1,534 @@ +/* + * + * FocalTech TouchScreen driver. + * + * Copyright (c) 2010-2017, FocalTech Systems, Ltd., all rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +/***************************************************************************** +* +* File Name: Focaltech_ic_table.c +* +* Author: Xu YF & ZR, Software Department, FocalTech +* +* Created: 2016-03-17 +* +* Modify: +* +* Abstract: +* +* Reference: +* +*****************************************************************************/ + +/***************************************************************************** +* 1.Included header files +*****************************************************************************/ + +#include +#include +#include "../include/focaltech_ic_table.h" + +/***************************************************************************** +* Private constant and macro definitions using #define +*****************************************************************************/ +#define FOCALTECH_IC_TABLE_INFO "File Version of focaltech_ic_table.c: V1.0.0 2016-03-22" + +/***************************************************************************** +* Private enumerations, structures and unions using typedef +*****************************************************************************/ + +/***************************************************************************** +* Static variables +*****************************************************************************/ + +/***************************************************************************** +* Global variable or extern global variabls/functions +*****************************************************************************/ + +/***************************************************************************** +* Static function prototypes +*****************************************************************************/ + + +/***************************************************************************** +* functions body +*****************************************************************************/ + + +unsigned int fts_ic_table_get_ic_code_from_ic_name(char *strIcName) +{ + + if (strncmp(strIcName, "FT5X36", 6) == 0) + return IC_FT5X36; + if (strncmp(strIcName, "FT5X36i", 7) == 0) + return IC_FT5X36i; + if (strncmp(strIcName, "FT3X16", 6) == 0) + return IC_FT3X16; + if (strncmp(strIcName, "FT3X26", 6) == 0) + return IC_FT3X26; + + if (strncmp(strIcName, "FT5X22", 6) == 0) + return IC_FT5X46; + if (strncmp(strIcName, "FT5X46", 6) == 0) + return IC_FT5X46; + if (strncmp(strIcName, "FT5X46i", 7) == 0) + return IC_FT5X46i; + if (strncmp(strIcName, "FT5526", 6) == 0) + return IC_FT5526; + if (strncmp(strIcName, "FT3X17", 6) == 0) + return IC_FT3X17; + if (strncmp(strIcName, "FT5436", 6) == 0) + return IC_FT5436; + if (strncmp(strIcName, "FT3X27", 6) == 0) + return IC_FT3X27; + if (strncmp(strIcName, "FT5526i", 7) == 0) + return IC_FT5526I; + if (strncmp(strIcName, "FT5416", 6) == 0) + return IC_FT5416; + if (strncmp(strIcName, "FT5426", 6) == 0) + return IC_FT5426; + if (strncmp(strIcName, "FT5435", 6) == 0) + return IC_FT5435; + if (strncmp(strIcName, "FT7681", 6) == 0) + return IC_FT7681; + if (strncmp(strIcName, "FT7661", 6) == 0) + return IC_FT7661; + if (strncmp(strIcName, "FT7511", 6) == 0) + return IC_FT7511; + if (strncmp(strIcName, "FT7421", 6) == 0) + return IC_FT7421; + + + if (strncmp(strIcName, "FT6X06", 6) == 0) + return IC_FT6X06; + if (strncmp(strIcName, "FT3X06", 6) == 0) + return IC_FT3X06; + + if (strncmp(strIcName, "FT6X36", 6) == 0) + return IC_FT6X36; + if (strncmp(strIcName, "FT3X07", 6) == 0) + return IC_FT3X07; + if (strncmp(strIcName, "FT6416", 6) == 0) + return IC_FT6416; + if (strncmp(strIcName, "FT6336G/U", 9) == 0) + return IC_FT6426; + if (strncmp(strIcName, "FT6236U", 7) == 0) + return IC_FT6236U; + if (strncmp(strIcName, "FT6436U", 7) == 0) + return IC_FT6436U; + if (strncmp(strIcName, "FT3267", 6) == 0) + return IC_FT3267; + if (strncmp(strIcName, "FT3367", 6) == 0) + return IC_FT3367; + if (strncmp(strIcName, "FT7401", 6) == 0) + return IC_FT7401; + if (strncmp(strIcName, "FT3407U", 7) == 0) + return IC_FT3407U; + + + + if (strncmp(strIcName, "FT5X16", 6) == 0) + return IC_FT5X16; + if (strncmp(strIcName, "FT5X12", 6) == 0) + return IC_FT5X12; + + if (strncmp(strIcName, "FT5506", 6) == 0) + return IC_FT5506; + if (strncmp(strIcName, "FT5606", 6) == 0) + return IC_FT5606; + if (strncmp(strIcName, "FT5816", 6) == 0) + return IC_FT5816; + + if (strncmp(strIcName, "FT5822", 6) == 0) + return IC_FT5822; + if (strncmp(strIcName, "FT5626", 6) == 0) + return IC_FT5626; + if (strncmp(strIcName, "FT5726", 6) == 0) + return IC_FT5726; + if (strncmp(strIcName, "FT5826B", 7) == 0) + return IC_FT5826B; + if (strncmp(strIcName, "FT3617", 6) == 0) + return IC_FT3617; + if (strncmp(strIcName, "FT3717", 6) == 0) + return IC_FT3717; + if (strncmp(strIcName, "FT7811", 6) == 0) + return IC_FT7811; + if (strncmp(strIcName, "FT5826S", 7) == 0) + return IC_FT5826S; + + if (strncmp(strIcName, "FT5306", 6) == 0) + return IC_FT5306; + if (strncmp(strIcName, "FT5406", 6) == 0) + return IC_FT5406; + + if (strncmp(strIcName, "FT8606", 6) == 0) + return IC_FT8606; + if (strncmp(strIcName, "FT8716", 6) == 0) + return IC_FT8716; + + if (strncmp(strIcName, "FT3C47U", 7) == 0) + return IC_FT3C47U; + + if (strncmp(strIcName, "FT8607", 6) == 0) + return IC_FT8607; + if (strncmp(strIcName, "FT8707", 6) == 0) + return IC_FT8707; + + + if (strncmp(strIcName, "FT8736", 6) == 0) + return IC_FT8736; + + if (strncmp(strIcName, "FT3D47", 6) == 0) + return IC_FT3D47; + + if (strncmp(strIcName, "FTE716", 6) == 0) + return IC_FTE716; + + if (strncmp(strIcName, "FT5442", 6) == 0) + return IC_FT5442; + + if (strncmp(strIcName, "FT3428U", 7) == 0) + return IC_FT3428U; + + if (strncmp(strIcName, "FT8006M", 7) == 0) + return IC_FT8006M; + + if (strncmp(strIcName, "FT8201", 6) == 0) + return IC_FT8201; + + if (strncmp(strIcName, "FTE736", 6) == 0) + return IC_FTE736; + + printk("%s. can NOT get ic code. ERROR !!! \n", __func__); + + return 0xff; +} + + +void fts_ic_table_get_ic_name_from_ic_code(unsigned int ucIcCode, char *strIcName) +{ + if (NULL == strIcName)return; + + sprintf(strIcName, "%s", "NA");/*if can't find IC , set 'NA'*/ + + if (ucIcCode == IC_FT5X36) + sprintf(strIcName, "%s", "FT5X36"); + if (ucIcCode == IC_FT5X36i) + sprintf(strIcName, "%s", "FT5X36i"); + if (ucIcCode == IC_FT3X16) + sprintf(strIcName, "%s", "FT3X16"); + if (ucIcCode == IC_FT3X26) + sprintf(strIcName, "%s", "FT3X26"); + + + if (ucIcCode == IC_FT5X46) + sprintf(strIcName, "%s", "FT5X46"); + if (ucIcCode == IC_FT5X46i) + sprintf(strIcName, "%s", "FT5X46i"); + if (ucIcCode == IC_FT5526) + sprintf(strIcName, "%s", "FT5526"); + if (ucIcCode == IC_FT3X17) + sprintf(strIcName, "%s", "FT3X17"); + if (ucIcCode == IC_FT5436) + sprintf(strIcName, "%s", "FT5436"); + if (ucIcCode == IC_FT3X27) + sprintf(strIcName, "%s", "FT3X27"); + if (ucIcCode == IC_FT5526I) + sprintf(strIcName, "%s", "FT5526i"); + if (ucIcCode == IC_FT5416) + sprintf(strIcName, "%s", "FT5416"); + if (ucIcCode == IC_FT5426) + sprintf(strIcName, "%s", "FT5426"); + if (ucIcCode == IC_FT5435) + sprintf(strIcName, "%s", "FT5435"); + if (ucIcCode == IC_FT7681) + sprintf(strIcName, "%s", "FT7681"); + if (ucIcCode == IC_FT7661) + sprintf(strIcName, "%s", "FT7661"); + if (ucIcCode == IC_FT7511) + sprintf(strIcName, "%s", "FT7511"); + if (ucIcCode == IC_FT7421) + sprintf(strIcName, "%s", "FT7421"); + + if (ucIcCode == IC_FT6X06) + sprintf(strIcName, "%s", "FT6X06"); + if (ucIcCode == IC_FT3X06) + sprintf(strIcName, "%s", "FT3X06"); + + if (ucIcCode == IC_FT6X36) + sprintf(strIcName, "%s", "FT6X36"); + if (ucIcCode == IC_FT3X07) + sprintf(strIcName, "%s", "FT3X07"); + if (ucIcCode == IC_FT6416) + sprintf(strIcName, "%s", "FT6416"); + if (ucIcCode == IC_FT6426) + sprintf(strIcName, "%s", "FT6336G/U"); + if (ucIcCode == IC_FT6236U) + sprintf(strIcName, "%s", "FT6236U"); + if (ucIcCode == IC_FT6436U) + sprintf(strIcName, "%s", "FT6436U"); + if (ucIcCode == IC_FT3267) + sprintf(strIcName, "%s", "FT3267"); + if (ucIcCode == IC_FT3367) + sprintf(strIcName, "%s", "FT3367"); + if (ucIcCode == IC_FT7401) + sprintf(strIcName, "%s", "FT7401"); + if (ucIcCode == IC_FT3407U) + sprintf(strIcName, "%s", "FT3407U"); + + if (ucIcCode == IC_FT5X16) + sprintf(strIcName, "%s", "FT5X16"); + if (ucIcCode == IC_FT5X12) + sprintf(strIcName, "%s", "FT5X12"); + + if (ucIcCode == IC_FT5506) + sprintf(strIcName, "%s", "FT5506"); + if (ucIcCode == IC_FT5606) + sprintf(strIcName, "%s", "FT5606"); + if (ucIcCode == IC_FT5816) + sprintf(strIcName, "%s", "FT5816"); + + if (ucIcCode == IC_FT5822) + sprintf(strIcName, "%s", "FT5822"); + if (ucIcCode == IC_FT5626) + sprintf(strIcName, "%s", "FT5626"); + if (ucIcCode == IC_FT5726) + sprintf(strIcName, "%s", "FT5726"); + if (ucIcCode == IC_FT5826B) + sprintf(strIcName, "%s", "FT5826B"); + if (ucIcCode == IC_FT3617) + sprintf(strIcName, "%s", "FT3617"); + if (ucIcCode == IC_FT3717) + sprintf(strIcName, "%s", "FT3717"); + if (ucIcCode == IC_FT7811) + sprintf(strIcName, "%s", "FT7811"); + if (ucIcCode == IC_FT5826S) + sprintf(strIcName, "%s", "FT5826S"); + + if (ucIcCode == IC_FT5306) + sprintf(strIcName, "%s", "FT5306"); + if (ucIcCode == IC_FT5406) + sprintf(strIcName, "%s", "FT5406"); + + if (ucIcCode == IC_FT8606) + sprintf(strIcName, "%s", "FT8606"); + if (ucIcCode == IC_FT8716) + sprintf(strIcName, "%s", "FT8716"); + + if (ucIcCode == IC_FT3C47U) + sprintf(strIcName, "%s", "FT3C47U"); + + if (ucIcCode == IC_FT8607) + sprintf(strIcName, "%s", "FT8607"); + if (ucIcCode == IC_FT8707) + sprintf(strIcName, "%s", "FT8707"); + if (ucIcCode == IC_FT8736) + sprintf(strIcName, "%s", "FT8736"); + + if (ucIcCode == IC_FT3D47) + sprintf(strIcName, "%s", "FT3D47"); + + if (ucIcCode == IC_FTE716) + sprintf(strIcName, "%s", "FTE716"); + + if (ucIcCode == IC_FT5442) + sprintf(strIcName, "%s", "FT5442"); + + if (ucIcCode == IC_FT3428U) + sprintf(strIcName, "%s", "FT3428U"); + + if (ucIcCode == IC_FT8006M) + sprintf(strIcName, "%s", "FT8006M"); + + if (ucIcCode == IC_FT8201) + sprintf(strIcName, "%s", "FT8201"); + + if (ucIcCode == IC_FTE736) + sprintf(strIcName, "%s", "FTE736"); + + + + return ; +} + + +unsigned int fts_ic_table_get_ic_code_from_chip_id(unsigned char chip_id, unsigned char chip_id2) +{ + unsigned int ic_code = 0; + switch (chip_id) { + case 0x55: + ic_code = IC_FT5306; + break; + case 0x08: + ic_code = IC_FT5606; + break; + case 0x0a: + ic_code = IC_FT5X16; + break; + case 0x06: + ic_code = IC_FT6X06; + break; + case 0x36: + ic_code = IC_FT6X36; + break; + case 0x14: + ic_code = IC_FT5X36; + break; + case 0x13: + ic_code = IC_FT3X16; + break; + case 0x12: + ic_code = IC_FT5X36i; + break; + case 0x11: + ic_code = IC_FT5X36i; + break; + case 0x54: + ic_code = IC_FT5X46; + break; + case 0x58: + ic_code = IC_FT5822; + break; + + + case 0x86: + if (0x06 == chip_id2) + ic_code = IC_FT8606; + else if (0x07 == chip_id2) + ic_code = IC_FT8607; + break; + case 0x87: + if (0x07 == chip_id2) + ic_code = IC_FT8707; + else if (0x16 == chip_id2) + ic_code = IC_FT8716; + else if (0x36 == chip_id2) + ic_code = IC_FT8736; + break; + case 0xE7: + if (0x16 == chip_id2) + ic_code = IC_FTE716; + else if (0x36 == chip_id2) + ic_code = IC_FTE736; + break; + default: + ic_code = 0; + break; + } + return ic_code; +} + +unsigned int fts_ic_table_get_chip_id_from_ic_code(unsigned int ic_code, unsigned char *chip_id, unsigned char *chip_id2) +{ + unsigned char uc_chip_id = 0; + unsigned char uc_chip_id2 = 0; + switch (ic_code>>4) { + case (IC_FT5306>>4): + uc_chip_id = 0x55; + break; + case (IC_FT5606>>4): + uc_chip_id = 0x08; + break; + case (IC_FT5X16>>4): + uc_chip_id = 0x0a; + break; + case (IC_FT6X06>>4): + uc_chip_id = 0x06; + break; + case (IC_FT6X36>>4): + uc_chip_id = 0x36; + break; + case (IC_FT5X36>>4): + switch (ic_code) { + case (IC_FT5X36): + uc_chip_id = 0x14; + break; + case (IC_FT3X26): + uc_chip_id = 0x13; + break; + case (IC_FT3X16): + uc_chip_id = 0x12; + break; + case (IC_FT5X36i): + uc_chip_id = 0x11; + break; + } + break; + case (IC_FT5X46>>4): + uc_chip_id = 0x54; + break; + case (IC_FT5822>>4): + uc_chip_id = 0x58; + break; + + + case (IC_FT8606>>4): + uc_chip_id = 0x86; + uc_chip_id2 = 0x06; + break; + case (IC_FT8607>>4): + uc_chip_id = 0x86; + uc_chip_id2 = 0x07; + break; + case (IC_FT8707>>4): + uc_chip_id = 0x87; + uc_chip_id2 = 0x07; + break; + case (IC_FT8716>>4): + uc_chip_id = 0x87; + uc_chip_id2 = 0x16; + break; + case (IC_FT8736>>4): + uc_chip_id = 0x87; + uc_chip_id2 = 0x36; + break; + case (IC_FTE716>>4): + uc_chip_id = 0xE7; + uc_chip_id2 = 0x16; + break; + case (IC_FTE736>>4): + uc_chip_id = 0xE7; + uc_chip_id2 = 0x36; + break; + + default: + uc_chip_id = 0; + break; + + } + + *chip_id = uc_chip_id; + *chip_id2 = uc_chip_id2; + + return 0; +} +int fts_ic_table_need_chip_id2(unsigned int chip_id) +{ + int b_need_id2 = -1; + switch (chip_id) { + case 0x86: + case 0x87: + case 0xE7: + b_need_id2 = 0; + printk("b_need_id2 = %d, chip_id = 0x%02x\n", b_need_id2, chip_id); + break; + default: + b_need_id2 = -1; + printk("b_need_id2 = %d, chip_id = 0x%02x\n", b_need_id2, chip_id); + break; + + } + return b_need_id2; +} diff --git a/drivers/input/touchscreen/FT8716/focaltech_test/src/focaltech_test.c b/drivers/input/touchscreen/FT8716/focaltech_test/src/focaltech_test.c new file mode 100755 index 0000000000000..3b3210f0b4118 --- /dev/null +++ b/drivers/input/touchscreen/FT8716/focaltech_test/src/focaltech_test.c @@ -0,0 +1,902 @@ +/* + * + * FocalTech TouchScreen driver. + * + * Copyright (c) 2010-2017, FocalTech Systems, Ltd., all rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +/************************************************************************ +* +* File Name: focaltech_test.c +* +* Author: Software Department, FocalTech +* +* Created: 2016-08-01 +* +* Modify: +* +* Abstract: create char device and proc node for the comm between APK and TP +* +************************************************************************/ + +/***************************************************************************** +* Included header files +*****************************************************************************/ +#include +#include +#include +#include +#include + +#include +#include + +#include "../../focaltech_core.h" +#include "../include/focaltech_test_main.h" +#include "../include/focaltech_test_ini.h" + +#include +#include +#define CTP_PARENT_PROC_NAME "touchscreen" +#define CTP_OPEN_PROC_NAME "ctp_openshort_test" + +#if FTS_LOCK_DOWN_INFO +static char tp_lockdown_info[128]; +#define FTS_PROC_LOCKDOWN_FILE "lockdown_info" +static int fts_lockdown_proc_show(struct seq_file *file, void *data) +{ + char temp[40] = {0}; + + sprintf(temp, "%s\n", tp_lockdown_info); + seq_printf(file, "%s\n", temp); + + return 0; +} + +static int fts_lockdown_proc_open (struct inode *inode, struct file *file) +{ + return single_open(file, fts_lockdown_proc_show, inode->i_private); +} + +static const struct file_operations fts_lockdown_proc_fops = { + .open = fts_lockdown_proc_open, + .read = seq_read, +}; + +#endif + +#if FTS_CAT_RAWDATA +#define FTS_PROC_RAWDATA "rawdata" +static u8 g_isdiff = 1; +/************************************************************************ +* Name: StartScan(Same function name as FT_MultipleTest) +* Brief: Scan TP, do it before read Raw Data +* Input: none +* Output: none +* Return: Comm Code. Code = 0x00 is OK, else fail. +***********************************************************************/ +static int StartScan(struct i2c_client *client) +{ + u8 RegVal = 0x00; + u8 times = 0; + const u8 MaxTimes = 20; + u8 ReCode = -1; + + ReCode = fts_i2c_write_reg(client, 0x00, 0xC0); + if (ReCode >= 0) { + while (times++ < MaxTimes) { + msleep(8); + ReCode = fts_i2c_read_reg(client, 0x00, &RegVal); + if (RegVal == 0x40) + break; + } + + if (times > MaxTimes) + return -EPERM; + } + return ReCode; +} + +int read_rawdata(struct i2c_client *client, int is_diff, s16 *data, int len) +{ + u8 reg = 0x6A; + u8 regdata[1280] = { 0 }; + int remain_bytes; + int pos = 0; + int i = 0; + + FTS_DEBUG("len=%d, is_diff=%d", len, is_diff); + fts_i2c_write_reg(client, 0x06, is_diff); + + if (StartScan(client) < 0) + return -EPERM; + + fts_i2c_write_reg(client, 0x01, 0xAD); + + if (len <= 256) + fts_i2c_read(client, ®, 1, regdata, len); + else { + fts_i2c_read(client, ®, 1, regdata, 256); + remain_bytes = len - 256; + for (i = 1; remain_bytes > 0; i++) { + if (remain_bytes > 256) + fts_i2c_read(client, ®, 0, regdata + i * 256, 256); + else + fts_i2c_read(client, ®, 0, regdata + i * 256, remain_bytes); + remain_bytes -= 256; + } + } + + for (i = 0; i < len;) { + data[pos++] = ((s16)(regdata[i]) << 8) + regdata[i+1]; + i += 2; + } + return 0; +} + +int get_rawdata(struct i2c_client *client, s16 *data, u8 *txlen, u8 *rxlen) +{ + u8 val; + int i; + + /* 0xEE = 1, not clb */ + fts_i2c_write_reg(client, 0xEE, 1); + + /* Enter Factory Mode */ + fts_i2c_write_reg(client, 0x00, 0x40); + do { + fts_i2c_read_reg(client, 0x00, &val); + if (val == 0x40) + break; + msleep(1); + } while (i < 10); + + /* Get Tx/Rx Num */ + fts_i2c_read_reg(client, 0x02, txlen); + fts_i2c_read_reg(client, 0x03, rxlen); + + /* read_rawdata */ + read_rawdata(client, g_isdiff, data, (*txlen) * (*rxlen) * 2); + + /* Enter in work mode */ + fts_i2c_write_reg(client, 0x00, 0x00); + do { + fts_i2c_read_reg(client, 0x00, &val); + if (val == 0x00) + break; + msleep(1); + } while (i < 10); + + return 0; +} + +static char temp[PAGE_SIZE] = {0}; + +static int fts_rawdata_proc_show(struct seq_file *file, void *buf) +{ + int count; + int i = 0, j = 0; + u8 val; + s16 data[600] = { 0 }; + u8 txlen = 0; + u8 rxlen = 0; + struct i2c_client *client = fts_i2c_client; + + if (fts_wq_data->suspended) { + FTS_INFO("Already in suspend state"); + return -EPERM; + } + mutex_lock(&fts_input_dev->mutex); + + get_rawdata(client, data, &txlen, &rxlen); + + fts_i2c_read_reg(client, 0xEE, &val); + count = snprintf(temp, PAGE_SIZE, "0xEE = %d\n", val); + count += snprintf(temp + count, PAGE_SIZE-count, "%s :\n", g_isdiff ? "DIFF DATA" : "RAWDATA"); + for (i = 0; i < txlen; i++) { + for (j = 0; j < rxlen; j++) { + count += snprintf(temp + count, PAGE_SIZE-count, "%5d ", data[i*rxlen + j]); + } + count += snprintf(temp + count, PAGE_SIZE-count, "\n"); + } + count += snprintf(temp + count, PAGE_SIZE-count, "\n\n"); + seq_printf(file, "%s\n", temp); + memset(temp, 0, PAGE_SIZE); + mutex_unlock(&fts_input_dev->mutex); + + return 0; +} + +static int fts_rawdata_proc_open (struct inode *inode, struct file *file) +{ + return single_open(file, fts_rawdata_proc_show, inode->i_private); +} + +static ssize_t fts_rawdata_proc_store(struct file *file, const char __user *buf, size_t count, loff_t *len) +{ + unsigned long val; + int ret; + char *buff[5] = {0}; + if (fts_wq_data->suspended) { + FTS_INFO("Already in suspend state"); + return -EPERM; + } + ret = copy_from_user(buff, buf, 5); + mutex_lock(&fts_input_dev->mutex); + val = simple_strtoul((char *)buff, NULL, 10); + if (val) + g_isdiff = 1; + else + g_isdiff = 0; + mutex_unlock(&fts_input_dev->mutex); + + return count; +} +static const struct file_operations fts_rawdata_proc_fops = { + .open = fts_rawdata_proc_open, + .read = seq_read, + .write = fts_rawdata_proc_store, +}; +#endif + +static ssize_t ctp_open_proc_read(struct file *file, char __user *buf, size_t count, loff_t *ppos); +static ssize_t ctp_open_proc_write(struct file *filp, const char __user *userbuf, size_t count, loff_t *ppos); +static const struct file_operations ctp_open_procs_fops = { + .write = ctp_open_proc_write, + .read = ctp_open_proc_read, + .owner = THIS_MODULE, +}; +static struct proc_dir_entry *ctp_device_proc; +/***************************************************************************** +* Private constant and macro definitions using #define +*****************************************************************************/ +#define IC_TEST_VERSION "Test version: V1.0.0--2016-12-28, (sync version of FT_MultipleTest: V4.0.0.0 ------ 2016-07-18)" + + +#define FTS_INI_FILE_PATH "/etc/" + +#define FTS_SAVE_DATA_FILE_PATH "/mnt/sdcard/" + + +#define FTS_TEST_BUFFER_SIZE 80*1024 +#define FTS_TEST_PRINT_SIZE 128 +/***************************************************************************** +* Private enumerations, structures and unions using typedef +*****************************************************************************/ + + +/***************************************************************************** +* Static variables +*****************************************************************************/ + +/***************************************************************************** +* Global variable or extern global variabls/functions +*****************************************************************************/ + + +/***************************************************************************** +* Static function prototypes +*****************************************************************************/ +static int fts_test_get_ini_size(char *config_name); +static int fts_test_read_ini_data(char *config_name, char *config_buf); +static int fts_test_save_test_data(char *file_name, char *data_buf, int iLen); +static int fts_test_get_testparam_from_ini(char *config_name); +static int fts_test_entry(char *ini_file_name); + +static int fts_test_i2c_read(unsigned char *writebuf, int writelen, unsigned char *readbuf, int readlen); +static int fts_test_i2c_write(unsigned char *writebuf, int writelen); + + +/***************************************************************************** +* functions body +*****************************************************************************/ +#if 0 + +extern struct i2c_client *fts_i2c_client; +extern int fts_i2c_read(struct i2c_client *client, char *writebuf, int writelen, char *readbuf, int readlen); +extern int fts_i2c_write(struct i2c_client *client, char *writebuf, int writelen); +#endif +static int fts_test_i2c_read(unsigned char *writebuf, int writelen, unsigned char *readbuf, int readlen) +{ + int iret = -1; +#if 1 + + + iret = fts_i2c_read(fts_i2c_client, writebuf, writelen, readbuf, readlen); +#else + iret = fts_i2c_read(writebuf, writelen, readbuf, readlen); +#endif + + return iret; + +} + +static int fts_test_i2c_write(unsigned char *writebuf, int writelen) +{ + int iret = -1; +#if 1 + + + iret = fts_i2c_write(fts_i2c_client, writebuf, writelen); +#else + iret = fts_i2c_write(writebuf, writelen); +#endif + + return iret; +} + + +static int fts_test_get_ini_size(char *config_name) +{ + struct file *pfile = NULL; + struct inode *inode = NULL; + + off_t fsize = 0; + char filepath[128]; + + FTS_TEST_FUNC_ENTER(); + + memset(filepath, 0, sizeof(filepath)); + + sprintf(filepath, "%s%s", FTS_INI_FILE_PATH, config_name); + + if (NULL == pfile) + pfile = filp_open(filepath, O_RDONLY, 0); + + if (IS_ERR(pfile)) { + FTS_TEST_ERROR("error occured while opening file %s.", filepath); + return -EIO; + } + + inode = pfile->f_dentry->d_inode; + + fsize = inode->i_size; + filp_close(pfile, NULL); + + FTS_TEST_FUNC_ENTER(); + + return fsize; +} + + +static int fts_test_read_ini_data(char *config_name, char *config_buf) +{ + struct file *pfile = NULL; + struct inode *inode = NULL; + + off_t fsize = 0; + char filepath[128]; + loff_t pos = 0; + mm_segment_t old_fs; + + FTS_TEST_FUNC_ENTER(); + + memset(filepath, 0, sizeof(filepath)); + sprintf(filepath, "%s%s", FTS_INI_FILE_PATH, config_name); + if (NULL == pfile) { + pfile = filp_open(filepath, O_RDONLY, 0); + } + if (IS_ERR(pfile)) { + FTS_TEST_ERROR("error occured while opening file %s.", filepath); + return -EIO; + } + + inode = pfile->f_dentry->d_inode; + + fsize = inode->i_size; + old_fs = get_fs(); + set_fs(KERNEL_DS); + pos = 0; + vfs_read(pfile, config_buf, fsize, &pos); + filp_close(pfile, NULL); + set_fs(old_fs); + + FTS_TEST_FUNC_EXIT(); + return 0; +} + + +static int fts_test_save_test_data(char *file_name, char *data_buf, int iLen) +{ + struct file *pfile = NULL; + + char filepath[128]; + loff_t pos; + mm_segment_t old_fs; + + FTS_TEST_FUNC_ENTER(); + + memset(filepath, 0, sizeof(filepath)); + sprintf(filepath, "%s%s", FTS_SAVE_DATA_FILE_PATH, file_name); + if (NULL == pfile) { + + pfile = filp_open(filepath, O_TRUNC|O_CREAT|O_RDWR, 0); + } + if (IS_ERR(pfile)) { + FTS_TEST_ERROR("error occured while opening file %s.", filepath); + return -EIO; + } + + old_fs = get_fs(); + set_fs(KERNEL_DS); + pos = 0; + vfs_write(pfile, data_buf, iLen, &pos); + filp_close(pfile, NULL); + set_fs(old_fs); + + FTS_TEST_FUNC_EXIT(); + return 0; +} + + +static int fts_test_get_testparam_from_ini(char *config_name) +{ + char *pcfiledata = NULL; + int ret = 0; + int inisize = 0; + + FTS_TEST_FUNC_ENTER(); + + inisize = fts_test_get_ini_size(config_name); + FTS_TEST_DBG("ini_size = %d ", inisize); + if (inisize <= 0) { + FTS_TEST_ERROR("%s ERROR:Get firmware size failed", __func__); + return -EIO; + } + + pcfiledata = fts_malloc(inisize + 1); + if (NULL == pcfiledata) { + FTS_TEST_ERROR("fts_malloc failed in function:%s", __func__); + return -EPERM; + } + + memset(pcfiledata, 0, inisize + 1); + + if (fts_test_read_ini_data(config_name, pcfiledata)) { + FTS_TEST_ERROR(" - ERROR: fts_test_read_ini_data failed"); + fts_free(pcfiledata); + pcfiledata = NULL; + + return -EIO; + } else { + FTS_TEST_DBG("fts_test_read_ini_data successful"); + } + + ret = set_param_data(pcfiledata); + + fts_free(pcfiledata); + pcfiledata = NULL; + + FTS_TEST_FUNC_EXIT(); + + if (ret < 0) + return ret; + + return 0; +} + + + + +static int fts_test_entry(char *ini_file_name) +{ + /* place holder for future use */ + char cfgname[128]; + char *testdata = NULL; + char *printdata = NULL; + int iTestDataLen = 0; + int ret = 0; + int icycle = 0, i = 0; + int print_index = 0; + + + FTS_TEST_FUNC_ENTER(); + FTS_TEST_DBG("ini_file_name:%s.", ini_file_name); + /*Used to obtain the test data stored in the library, pay attention to the size of the distribution space.*/ + FTS_TEST_DBG("Allocate memory, size: %d", FTS_TEST_BUFFER_SIZE); + testdata = fts_malloc(FTS_TEST_BUFFER_SIZE); + if (NULL == testdata) { + FTS_TEST_ERROR("fts_malloc failed in function:%s", __func__); + return -EPERM; + } + printdata = fts_malloc(FTS_TEST_PRINT_SIZE); + if (NULL == printdata) { + FTS_TEST_ERROR("fts_malloc failed in function:%s", __func__); + return -EPERM; + } + /*Initialize the platform related I2C read and write functions*/ + +#if 0 + init_i2c_write_func(fts_i2c_write); + init_i2c_read_func(fts_i2c_read); +#else + init_i2c_write_func(fts_test_i2c_write); + init_i2c_read_func(fts_test_i2c_read); +#endif + + /*Initialize pointer memory*/ + ret = focaltech_test_main_init(); + if (ret < 0) { + FTS_TEST_ERROR("focaltech_test_main_init() error."); + goto TEST_ERR; + } + + /*Read parse configuration file*/ + memset(cfgname, 0, sizeof(cfgname)); + sprintf(cfgname, "%s", ini_file_name); + FTS_TEST_DBG("ini_file_name = %s", cfgname); + + fts_test_funcs(); + + if (fts_test_get_testparam_from_ini(cfgname) < 0) { + FTS_TEST_ERROR("get testparam from ini failure"); + goto TEST_ERR; + } + + + if ((g_ScreenSetParam.iSelectedIC >> 4 != FTS_CHIP_TEST_TYPE >> 4)) { + FTS_TEST_ERROR("Select IC and Read IC from INI does not match "); + + } + + + /*Start testing according to the test configuration*/ + if (true == start_test_tp()) { + TestResultLen += sprintf(TestResult+TestResultLen, "Tp test pass. \n\n"); + FTS_TEST_INFO("tp test pass"); + ret = 0; + } + + else { + TestResultLen += sprintf(TestResult+TestResultLen, "Tp test failure. \n\n"); + FTS_TEST_INFO("tp test failure"); + ret = 1; + } + + + /*Gets the number of tests in the test library and saves it*/ + iTestDataLen = get_test_data(testdata); + + + icycle = 0; + /*Print test data packets */ + FTS_TEST_DBG("print test data: \n"); + for (i = 0; i < iTestDataLen; i++) { + if (('\0' == testdata[i]) + || (icycle == FTS_TEST_PRINT_SIZE - 2) + || (i == iTestDataLen-1) + ) { + if (icycle == 0) { + print_index++; + } else { + memcpy(printdata, testdata + print_index, icycle); + printdata[FTS_TEST_PRINT_SIZE-1] = '\0'; + FTS_TEST_DBG("%s", printdata); + print_index += icycle; + icycle = 0; + } + } else { + icycle++; + } + } + FTS_TEST_DBG("\n"); + + + + fts_test_save_test_data("testdata.csv", testdata, iTestDataLen); + fts_test_save_test_data("testresult.txt", TestResult, TestResultLen); + + + /*Release memory */ + focaltech_test_main_exit(); + + + + if (NULL != testdata) + fts_free(testdata); + if (NULL != printdata) + fts_free(printdata); + + FTS_TEST_FUNC_EXIT(); + + return ret; + +TEST_ERR: + if (NULL != testdata) + fts_free(testdata); + if (NULL != printdata) + fts_free(printdata); + + FTS_TEST_FUNC_EXIT(); + + return -EPERM; +} + +static int fts_set_ini_name(char *cfgname) +{ + int ret; + u8 vid; + + ret = fts_i2c_read_reg(fts_i2c_client, FTS_REG_VENDOR_ID, &vid); + FTS_TEST_DBG("vendor id:0x%x\n", vid); + if (vid == OFILM_VENDOR) { + sprintf(cfgname, "%s", "fts_ofilm.ini"); + } else if (vid == EACHOPTO_VENDOR) { + sprintf(cfgname, "%s", "fts_eachopto.ini"); + } else if (vid == TXD_VENDOR) { + + sprintf(cfgname, "%s", "fts_holitech.ini"); + } else if (vid == EBBG_VENDOR) { + sprintf(cfgname, "%s", "fts_ebbg.ini"); + } else if (vid == CSOT_VENDOR) { + sprintf(cfgname, "%s", "fts_csot.ini"); + } else{ + pr_err("ctp test not found test config \n"); + } + + return ret; +} + +#if FTS_AUTO_UPGRADE_EN +void waite_for_fw_upgrading(void) +{ + int vid = 0; + if (fw_upgrade_status == FW_UPGRADING) { + for (; fw_upgrade_status == FW_UPGRADING; ) { + + if ((vid%4) == 0) + FTS_TEST_DBG("tp firmware upgrading status:%d\n", fw_upgrade_status); + msleep(200); + vid++; + if (vid > 30) { + FTS_TEST_DBG("takes 6s tp still upgrading status:%d\n", fw_upgrade_status); + break; + } + } + } + return; +} +#endif + +static ssize_t ctp_open_proc_read(struct file *file, char __user *buf, size_t count, loff_t *ppos) +{ + char *ptr = buf; + char fwname[128] = {0}; + int ret; + u8 result = 0; + struct i2c_client *client = fts_i2c_client; + + FTS_TEST_FUNC_ENTER(); +#if FTS_AUTO_UPGRADE_EN + waite_for_fw_upgrading(); +#endif + + if (*ppos) { + FTS_TEST_ERROR("tp test again return\n"); + return 0; + } + *ppos += count; + + memset(fwname, 0, sizeof(fwname)); + fts_set_ini_name(fwname); + fwname[strlen(fwname)] = '\0'; + FTS_TEST_DBG("fwname:%s.", fwname); + + mutex_lock(&fts_input_dev->mutex); + + disable_irq(client->irq); + +#if defined(FTS_ESDCHECK_EN) && (FTS_ESDCHECK_EN) + fts_esdcheck_switch(DISABLE); +#endif + ret = fts_test_entry(fwname); + if (0 != ret) { + result = 0; + FTS_TEST_ERROR("fts open short test fail \n"); + } else { + result = 1; + FTS_TEST_ERROR("fts open short test success \n"); + } +#if defined(FTS_ESDCHECK_EN) && (FTS_ESDCHECK_EN) + fts_esdcheck_switch(ENABLE); +#endif + enable_irq(client->irq); + + mutex_unlock(&fts_input_dev->mutex); + + FTS_TEST_FUNC_EXIT(); + + return sprintf(ptr, "result=%d\n", result); +} + + +static ssize_t ctp_open_proc_write(struct file *filp, const char __user *userbuf, size_t count, loff_t *ppos) +{ + return -EPERM; +} + void create_ctp_proc(void) +{ + + + + + + struct proc_dir_entry *ctp_open_proc = NULL; + if (ctp_device_proc == NULL) { + ctp_device_proc = proc_mkdir(CTP_PARENT_PROC_NAME, NULL); + if (ctp_device_proc == NULL) { + FTS_TEST_ERROR("create parent_proc fail\n"); + return; + } + } + ctp_open_proc = proc_create(CTP_OPEN_PROC_NAME, 0777, ctp_device_proc, &ctp_open_procs_fops); + if (ctp_open_proc == NULL) { + FTS_TEST_ERROR("create open_proc fail\n"); + } +} +#if 0 +/************************************************************************ +* Name: fts_test_show +* Brief: no +* Input: device, device attribute, char buf +* Output: no +* Return: EPERM +***********************************************************************/ +static ssize_t fts_test_show(struct device *dev, struct device_attribute *attr, char *buf) +{ + char fwname[128] = {0}; + int ret; + struct i2c_client *client = fts_i2c_client; + + FTS_TEST_FUNC_ENTER(); + +#if FTS_AUTO_UPGRADE_EN + waite_for_fw_upgrading(); +#endif + memset(fwname, 0, sizeof(fwname)); + fts_set_ini_name(fwname); + fwname[strlen(fwname)] = '\0'; + FTS_TEST_DBG("fwname:%s.", fwname); + + mutex_lock(&fts_input_dev->mutex); + + disable_irq(client->irq); + +#if defined(FTS_ESDCHECK_EN) && (FTS_ESDCHECK_EN) + fts_esdcheck_switch(DISABLE); +#endif + ret = fts_test_entry(fwname); + +#if defined(FTS_ESDCHECK_EN) && (FTS_ESDCHECK_EN) + fts_esdcheck_switch(ENABLE); +#endif + enable_irq(client->irq); + + mutex_unlock(&fts_input_dev->mutex); + + FTS_TEST_FUNC_EXIT(); + + return sprintf(buf, "result=%d\n", ret); +} + +/************************************************************************ +* Name: fts_test_store +* Brief: upgrade from app.bin +* Input: device, device attribute, char buf, char count +* Output: no +* Return: char count +***********************************************************************/ +static ssize_t fts_test_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) +{ + + return count; +} +/* upgrade from app.bin +* example:echo "***.ini" > fts_test +*/ +static DEVICE_ATTR(fts_test, S_IRUGO|S_IWUSR, fts_test_show, fts_test_store); + +/* add your attr in here*/ +static struct attribute *fts_test_attributes[] = { + &dev_attr_fts_test.attr, + NULL +}; + +static struct attribute_group fts_test_attribute_group = { + .attrs = fts_test_attributes +}; +#endif + +int fts_test_init(struct i2c_client *client) +{ + int err = 0; + + FTS_TEST_FUNC_ENTER(); + + FTS_TEST_INFO("%s\n", IC_TEST_VERSION); + + create_ctp_proc(); + + FTS_TEST_FUNC_EXIT(); + + return err; +} +int fts_test_exit(struct i2c_client *client) +{ + FTS_TEST_FUNC_ENTER(); + + + FTS_TEST_FUNC_EXIT(); + return 0; +} + +#if FTS_LOCK_DOWN_INFO +int fts_lockdown_init(struct i2c_client *client) +{ + int err = 0; + unsigned char auc_i2c_write_buf[10]; + u8 r_buf[10] = {0}; + struct proc_dir_entry *fts_lockdown_status_proc = NULL; + err = fts_i2c_write_reg(client, 0x90, 0x20); + if (err < 0) + FTS_ERROR("[FTS] i2c write 0x90 err\n"); + + msleep(5); + auc_i2c_write_buf[0] = 0x99; + err = fts_i2c_read(client, auc_i2c_write_buf, 1, r_buf, 8); + if (err < 0) + FTS_ERROR("[FTS] i2c read 0x99 err\n"); + + sprintf(tp_lockdown_info, "%02x%02x%02x%02x%02x%02x%02x%02x", \ + r_buf[0], r_buf[1], r_buf[2], r_buf[3], r_buf[4], r_buf[5], r_buf[6], r_buf[7]); + FTS_INFO("tpd_probe, ft8716_ctpm_LockDownInfo_get_from_boot, tp_lockdown_info=%s\n", tp_lockdown_info); + + if (ctp_device_proc == NULL) { + ctp_device_proc = proc_mkdir(CTP_PARENT_PROC_NAME, NULL); + if (ctp_device_proc == NULL) { + FTS_TEST_ERROR("create parent_proc fail\n"); + return 1; + } + } + fts_lockdown_status_proc = proc_create(FTS_PROC_LOCKDOWN_FILE, 0644, ctp_device_proc, &fts_lockdown_proc_fops); + if (fts_lockdown_status_proc == NULL) { + FTS_ERROR("fts, create_proc_entry ctp_lockdown_status_proc failed\n"); + return 1; + } + return 0 ; +} +#endif + +#if FTS_CAT_RAWDATA +int fts_rawdata_init(struct i2c_client *client) +{ + + struct proc_dir_entry *fts_rawdata_status_proc = NULL; + + + if (ctp_device_proc == NULL) { + ctp_device_proc = proc_mkdir(CTP_PARENT_PROC_NAME, NULL); + if (ctp_device_proc == NULL) { + FTS_TEST_ERROR("create parent_proc fail\n"); + return 1; + } + } + fts_rawdata_status_proc = proc_create(FTS_PROC_RAWDATA, 0777, ctp_device_proc, &fts_rawdata_proc_fops); + if (fts_rawdata_status_proc == NULL) { + FTS_ERROR("fts, create_proc_entry ctp_lockdown_status_proc failed\n"); + return 1; + } + return 0 ; +} +#endif diff --git a/drivers/input/touchscreen/FT8716/focaltech_test/src/focaltech_test_detail_threshold.c b/drivers/input/touchscreen/FT8716/focaltech_test/src/focaltech_test_detail_threshold.c new file mode 100755 index 0000000000000..cb06aedc132a1 --- /dev/null +++ b/drivers/input/touchscreen/FT8716/focaltech_test/src/focaltech_test_detail_threshold.c @@ -0,0 +1,1812 @@ +/************************************************************************ +* Copyright (C) 2012-2017, Focaltech Systems (R)£¬All Rights Reserved. + * Copyright (C) 2018 XiaoMi, Inc. +* +* File Name: focaltech_test_detail_threshold.c +* +* Author: Software Development Team, AE +* +* Created: 2016-08-01 +* +* Abstract: Set Detail Threshold for all IC +* +************************************************************************/ +#include +#include +#include + +#include "../include/focaltech_test_ini.h" +#include "../include/focaltech_test_detail_threshold.h" +#include "../include/focaltech_test_main.h" +#include "../include/focaltech_ic_table.h" + + +struct stCfg_MCap_DetailThreshold g_stCfg_MCap_DetailThreshold; +struct stCfg_SCap_DetailThreshold g_stCfg_SCap_DetailThreshold; +struct stCfg_Incell_DetailThreshold g_stCfg_Incell_DetailThreshold; + +void set_max_channel_num(void) +{ + + FTS_TEST_FUNC_ENTER(); + switch (g_ScreenSetParam.iSelectedIC>>4) { + case IC_FT5822>>4: + case IC_FT8006M>>4: + case IC_FTE716>>4: + case IC_FT3D47>>4: + g_ScreenSetParam.iUsedMaxTxNum = TX_NUM_MAX; + g_ScreenSetParam.iUsedMaxRxNum = RX_NUM_MAX; + break; + default: + g_ScreenSetParam.iUsedMaxTxNum = 30; + g_ScreenSetParam.iUsedMaxRxNum = 32; + break; + } + + FTS_TEST_DBG("MaxTxNum = %d, MaxRxNum = %d. ", g_ScreenSetParam.iUsedMaxTxNum, g_ScreenSetParam.iUsedMaxRxNum); + + FTS_TEST_FUNC_EXIT(); + +} + +int malloc_struct_DetailThreshold(void) +{ + FTS_TEST_FUNC_ENTER(); + + + g_stCfg_MCap_DetailThreshold.InvalidNode = (unsigned char (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(unsigned char)); + if (NULL == g_stCfg_MCap_DetailThreshold.InvalidNode) + goto ERR; + + g_stCfg_MCap_DetailThreshold.InvalidNode_SC = (unsigned char (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(unsigned char)); + if (NULL == g_stCfg_MCap_DetailThreshold.InvalidNode_SC) + goto ERR; + + g_stCfg_MCap_DetailThreshold.RawDataTest_Min = (int (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == g_stCfg_MCap_DetailThreshold.RawDataTest_Min) + goto ERR; + + g_stCfg_MCap_DetailThreshold.RawDataTest_Max = (int (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == g_stCfg_MCap_DetailThreshold.RawDataTest_Max) + goto ERR; + + g_stCfg_MCap_DetailThreshold.RawDataTest_Low_Min = (int (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == g_stCfg_MCap_DetailThreshold.RawDataTest_Low_Min) + goto ERR; + + g_stCfg_MCap_DetailThreshold.RawDataTest_Low_Max = (int (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == g_stCfg_MCap_DetailThreshold.RawDataTest_Low_Max) + goto ERR; + + g_stCfg_MCap_DetailThreshold.RawDataTest_High_Min = (int (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == g_stCfg_MCap_DetailThreshold.RawDataTest_High_Min) + goto ERR; + + g_stCfg_MCap_DetailThreshold.RawDataTest_High_Max = (int (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == g_stCfg_MCap_DetailThreshold.RawDataTest_High_Max) + goto ERR; + + g_stCfg_MCap_DetailThreshold.RxLinearityTest_Max = (int (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == g_stCfg_MCap_DetailThreshold.RxLinearityTest_Max) + goto ERR; + + g_stCfg_MCap_DetailThreshold.TxLinearityTest_Max = (int (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == g_stCfg_MCap_DetailThreshold.TxLinearityTest_Max) + goto ERR; + + g_stCfg_MCap_DetailThreshold.SCapRawDataTest_ON_Max = (int (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == g_stCfg_MCap_DetailThreshold.SCapRawDataTest_ON_Max) + goto ERR; + + g_stCfg_MCap_DetailThreshold.SCapRawDataTest_ON_Min = (int (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == g_stCfg_MCap_DetailThreshold.SCapRawDataTest_ON_Min) + goto ERR; + + g_stCfg_MCap_DetailThreshold.SCapRawDataTest_OFF_Max = (int (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == g_stCfg_MCap_DetailThreshold.SCapRawDataTest_OFF_Max) + goto ERR; + + g_stCfg_MCap_DetailThreshold.SCapRawDataTest_OFF_Min = (int (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == g_stCfg_MCap_DetailThreshold.SCapRawDataTest_OFF_Min) + goto ERR; + + g_stCfg_MCap_DetailThreshold.SCapCbTest_ON_Max = (short (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(short)); + if (NULL == g_stCfg_MCap_DetailThreshold.SCapCbTest_ON_Max) + goto ERR; + + g_stCfg_MCap_DetailThreshold.SCapCbTest_ON_Min = (short (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(short)); + if (NULL == g_stCfg_MCap_DetailThreshold.SCapCbTest_ON_Min) + goto ERR; + + g_stCfg_MCap_DetailThreshold.SCapCbTest_OFF_Max = (short (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(short)); + if (NULL == g_stCfg_MCap_DetailThreshold.SCapCbTest_OFF_Max) + goto ERR; + + g_stCfg_MCap_DetailThreshold.SCapCbTest_OFF_Min = (short (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(short)); + if (NULL == g_stCfg_MCap_DetailThreshold.SCapCbTest_OFF_Min) + goto ERR; + + g_stCfg_MCap_DetailThreshold.NoistTest_Coefficient = (int (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == g_stCfg_MCap_DetailThreshold.NoistTest_Coefficient) + goto ERR; + + g_stCfg_MCap_DetailThreshold.PanelDifferTest_Max = (int (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == g_stCfg_MCap_DetailThreshold.PanelDifferTest_Max) + goto ERR; + g_stCfg_MCap_DetailThreshold.PanelDifferTest_Min = (int (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == g_stCfg_MCap_DetailThreshold.PanelDifferTest_Min) + goto ERR; + + + + g_stCfg_Incell_DetailThreshold.InvalidNode = (unsigned char (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(unsigned char)); + if (NULL == g_stCfg_Incell_DetailThreshold.InvalidNode) { + FTS_TEST_DBG("InvalidNode. \n"); + goto ERR; + } + + + g_stCfg_Incell_DetailThreshold.RawDataTest_Min = (int (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == g_stCfg_Incell_DetailThreshold.RawDataTest_Min) { + FTS_TEST_DBG("RawDataTest_Min. \n"); + goto ERR; + } + g_stCfg_Incell_DetailThreshold.RawDataTest_Max = (int (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == g_stCfg_Incell_DetailThreshold.RawDataTest_Max) { + FTS_TEST_DBG("RawDataTest_Max. \n"); + goto ERR; + } + g_stCfg_Incell_DetailThreshold.CBTest_Min = (int (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == g_stCfg_Incell_DetailThreshold.CBTest_Min) { + FTS_TEST_DBG("CBTest_Min. \n"); + goto ERR; + } + g_stCfg_Incell_DetailThreshold.CBTest_Max = (int (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == g_stCfg_Incell_DetailThreshold.CBTest_Max) { + FTS_TEST_DBG("CBTest_Max. \n"); + goto ERR; + } + + g_stCfg_Incell_DetailThreshold.CBUniformityTest_CHY_Linearity = (int (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == g_stCfg_Incell_DetailThreshold.CBUniformityTest_CHY_Linearity) { + FTS_TEST_DBG("CBUniformityTest_CHY_Linearity. \n"); + goto ERR; + } + g_stCfg_Incell_DetailThreshold.CBUniformityTest_CHX_Linearity = (int (*)[RX_NUM_MAX])fts_malloc(NUM_MAX*sizeof(int)); + if (NULL == g_stCfg_Incell_DetailThreshold.CBUniformityTest_CHX_Linearity) { + FTS_TEST_DBG("CBUniformityTest_CHX_Linearity. \n"); + goto ERR; + } + + FTS_TEST_FUNC_EXIT(); + + return 0; + +ERR: + FTS_TEST_ERROR("fts_malloc memory failed in function."); + return -EPERM; +} + +void free_struct_DetailThreshold(void) +{ + if (NULL != g_stCfg_MCap_DetailThreshold.InvalidNode) { + fts_free(g_stCfg_MCap_DetailThreshold.InvalidNode); + g_stCfg_MCap_DetailThreshold.InvalidNode = NULL; + } + if (NULL != g_stCfg_MCap_DetailThreshold.InvalidNode_SC) { + fts_free(g_stCfg_MCap_DetailThreshold.InvalidNode_SC); + g_stCfg_MCap_DetailThreshold.InvalidNode_SC = NULL; + } + if (NULL != g_stCfg_MCap_DetailThreshold.RawDataTest_Min) { + fts_free(g_stCfg_MCap_DetailThreshold.RawDataTest_Min); + } + if (NULL != g_stCfg_MCap_DetailThreshold.RawDataTest_Max) { + fts_free(g_stCfg_MCap_DetailThreshold.RawDataTest_Max); + } + if (NULL != g_stCfg_MCap_DetailThreshold.RawDataTest_Low_Min) { + fts_free(g_stCfg_MCap_DetailThreshold.RawDataTest_Low_Min); + } + if (NULL != g_stCfg_MCap_DetailThreshold.RawDataTest_Low_Max) { + fts_free(g_stCfg_MCap_DetailThreshold.RawDataTest_Low_Max); + } + if (NULL != g_stCfg_MCap_DetailThreshold.RawDataTest_High_Min) { + fts_free(g_stCfg_MCap_DetailThreshold.RawDataTest_High_Min); + } + if (NULL != g_stCfg_MCap_DetailThreshold.RawDataTest_High_Max) { + fts_free(g_stCfg_MCap_DetailThreshold.RawDataTest_High_Max); + } + if (NULL != g_stCfg_MCap_DetailThreshold.RxLinearityTest_Max) { + fts_free(g_stCfg_MCap_DetailThreshold.RxLinearityTest_Max); + } + if (NULL != g_stCfg_MCap_DetailThreshold.TxLinearityTest_Max) { + fts_free(g_stCfg_MCap_DetailThreshold.TxLinearityTest_Max); + } + if (NULL != g_stCfg_MCap_DetailThreshold.SCapRawDataTest_ON_Max) { + fts_free(g_stCfg_MCap_DetailThreshold.SCapRawDataTest_ON_Max); + } + if (NULL != g_stCfg_MCap_DetailThreshold.SCapRawDataTest_ON_Min) { + fts_free(g_stCfg_MCap_DetailThreshold.SCapRawDataTest_ON_Min); + } + if (NULL != g_stCfg_MCap_DetailThreshold.SCapRawDataTest_OFF_Max) { + fts_free(g_stCfg_MCap_DetailThreshold.SCapRawDataTest_OFF_Max); + } + if (NULL != g_stCfg_MCap_DetailThreshold.SCapRawDataTest_OFF_Min) { + fts_free(g_stCfg_MCap_DetailThreshold.SCapRawDataTest_OFF_Min); + } + if (NULL != g_stCfg_MCap_DetailThreshold.SCapCbTest_ON_Max) { + fts_free(g_stCfg_MCap_DetailThreshold.SCapCbTest_ON_Max); + } + if (NULL != g_stCfg_MCap_DetailThreshold.SCapCbTest_ON_Min) { + fts_free(g_stCfg_MCap_DetailThreshold.SCapCbTest_ON_Min); + } + if (NULL != g_stCfg_MCap_DetailThreshold.SCapCbTest_OFF_Max) { + fts_free(g_stCfg_MCap_DetailThreshold.SCapCbTest_OFF_Max); + } + if (NULL != g_stCfg_MCap_DetailThreshold.SCapCbTest_OFF_Min) { + fts_free(g_stCfg_MCap_DetailThreshold.SCapCbTest_OFF_Min); + } + if (NULL != g_stCfg_MCap_DetailThreshold.NoistTest_Coefficient) { + fts_free(g_stCfg_MCap_DetailThreshold.NoistTest_Coefficient); + g_stCfg_MCap_DetailThreshold.NoistTest_Coefficient = NULL; + } + + if (NULL != g_stCfg_MCap_DetailThreshold.PanelDifferTest_Max) { + fts_free(g_stCfg_MCap_DetailThreshold.PanelDifferTest_Max); + g_stCfg_MCap_DetailThreshold.PanelDifferTest_Max = NULL; + } + + if (NULL != g_stCfg_MCap_DetailThreshold.PanelDifferTest_Min) { + fts_free(g_stCfg_MCap_DetailThreshold.PanelDifferTest_Min); + g_stCfg_MCap_DetailThreshold.PanelDifferTest_Min = NULL; + } + + if (NULL != g_stCfg_Incell_DetailThreshold.InvalidNode) { + fts_free(g_stCfg_Incell_DetailThreshold.InvalidNode); + g_stCfg_Incell_DetailThreshold.InvalidNode = NULL; + } + + if (NULL != g_stCfg_Incell_DetailThreshold.RawDataTest_Min) { + fts_free(g_stCfg_Incell_DetailThreshold.RawDataTest_Min); + g_stCfg_Incell_DetailThreshold.RawDataTest_Min = NULL; + } + + if (NULL != g_stCfg_Incell_DetailThreshold.RawDataTest_Max) { + fts_free(g_stCfg_Incell_DetailThreshold.RawDataTest_Max); + g_stCfg_Incell_DetailThreshold.RawDataTest_Max = NULL; + } + + if (NULL != g_stCfg_Incell_DetailThreshold.RawDataTest_Max) { + fts_free(g_stCfg_Incell_DetailThreshold.RawDataTest_Max); + g_stCfg_Incell_DetailThreshold.RawDataTest_Max = NULL; + } + + if (NULL != g_stCfg_Incell_DetailThreshold.CBTest_Min) { + fts_free(g_stCfg_Incell_DetailThreshold.CBTest_Min); + g_stCfg_Incell_DetailThreshold.CBTest_Min = NULL; + } + + if (NULL != g_stCfg_Incell_DetailThreshold.CBTest_Max) { + fts_free(g_stCfg_Incell_DetailThreshold.CBTest_Max); + g_stCfg_Incell_DetailThreshold.CBTest_Max = NULL; + } + + if (NULL != g_stCfg_Incell_DetailThreshold.CBUniformityTest_CHX_Linearity) { + fts_free(g_stCfg_Incell_DetailThreshold.CBUniformityTest_CHX_Linearity); + g_stCfg_Incell_DetailThreshold.CBUniformityTest_CHX_Linearity = NULL; + } + + if (NULL != g_stCfg_Incell_DetailThreshold.CBUniformityTest_CHY_Linearity) { + fts_free(g_stCfg_Incell_DetailThreshold.CBUniformityTest_CHY_Linearity); + g_stCfg_Incell_DetailThreshold.CBUniformityTest_CHY_Linearity = NULL; + } + + + +} + +void OnInit_SCap_DetailThreshold(char *strIniFile) +{ + + FTS_TEST_FUNC_ENTER(); + + OnGetTestItemParam("RawDataTest_Max", strIniFile, 12500); + memcpy(g_stCfg_SCap_DetailThreshold.RawDataTest_Max, g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + OnGetTestItemParam("RawDataTest_Min", strIniFile, 16500); + memcpy(g_stCfg_SCap_DetailThreshold.RawDataTest_Min, g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + OnGetTestItemParam("CiTest_Max", strIniFile, 5); + memcpy(g_stCfg_SCap_DetailThreshold.CiTest_Max, g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + OnGetTestItemParam("CiTest_Min", strIniFile, 250); + memcpy(g_stCfg_SCap_DetailThreshold.CiTest_Min, g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + OnGetTestItemParam("DeltaCiTest_Base", strIniFile, 0); + memcpy(g_stCfg_SCap_DetailThreshold.DeltaCiTest_Base, g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + OnGetTestItemParam("DeltaCiTest_AnotherBase1", strIniFile, 0); + memcpy(g_stCfg_SCap_DetailThreshold.DeltaCiTest_AnotherBase1, g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + OnGetTestItemParam("DeltaCiTest_AnotherBase2", strIniFile, 0); + memcpy(g_stCfg_SCap_DetailThreshold.DeltaCiTest_AnotherBase2, g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + OnGetTestItemParam("NoiseTest_Max", strIniFile, 20); + memcpy(g_stCfg_SCap_DetailThreshold.NoiseTest_Max, g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + OnGetTestItemParam("CiDeviation_Base", strIniFile, 0); + memcpy(g_stCfg_SCap_DetailThreshold.CiDeviationTest_Base, g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + OnGetTestItemParam("DeltaCxTest_Sort", strIniFile, 1); + memcpy(g_stCfg_SCap_DetailThreshold.DeltaCxTest_Sort, g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + OnGetTestItemParam("DeltaCxTest_Area", strIniFile, 1); + memcpy(g_stCfg_SCap_DetailThreshold.DeltaCxTest_Area, g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + + + OnGetTestItemParam("CbTest_Max", strIniFile, 0); + memcpy(g_stCfg_SCap_DetailThreshold.CbTest_Max, g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + + OnGetTestItemParam("CbTest_Min", strIniFile, 0); + memcpy(g_stCfg_SCap_DetailThreshold.CbTest_Min, g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + + OnGetTestItemParam("DeltaCbTest_Base", strIniFile, 0); + memcpy(g_stCfg_SCap_DetailThreshold.DeltaCbTest_Base, g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + + OnGetTestItemParam("DifferTest_Base", strIniFile, 0); + memcpy(g_stCfg_SCap_DetailThreshold.DifferTest_Base, g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + + OnGetTestItemParam("CBDeviation_Base", strIniFile, 0); + memcpy(g_stCfg_SCap_DetailThreshold.CBDeviationTest_Base, g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + + OnGetTestItemParam("K1DifferTest_Base", strIniFile, 0); + memcpy(g_stCfg_SCap_DetailThreshold.K1DifferTest_Base, g_stCfg_SCap_DetailThreshold.TempData, MAX_CHANNEL_NUM*sizeof(int)); + + FTS_TEST_FUNC_EXIT(); +} + +void OnGetTestItemParam(char *strItemName, char *strIniFile, int iDefautValue) +{ + + char strValue[800]; + char str_tmp[128]; + int iValue = 0; + int dividerPos = 0; + int index = 0; + int i = 0, j = 0, k = 0; + memset(g_stCfg_SCap_DetailThreshold.TempData, 0, sizeof(g_stCfg_SCap_DetailThreshold.TempData)); + sprintf(str_tmp, "%d", iDefautValue); + GetPrivateProfileString("Basic_Threshold", strItemName, str_tmp, strValue, strIniFile); + iValue = fts_atoi(strValue); + for (i = 0; i < MAX_CHANNEL_NUM; i++) { + g_stCfg_SCap_DetailThreshold.TempData[i] = iValue; + } + + dividerPos = GetPrivateProfileString("SpecialSet", strItemName, "", strValue, strIniFile); + if (dividerPos > 0) { + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_SCap_DetailThreshold.TempData[k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } +} + +void OnInit_MCap_DetailThreshold(char *strIniFile) +{ + + FTS_TEST_FUNC_ENTER(); + + set_max_channel_num(); + + OnInit_InvalidNode(strIniFile); + OnInit_DThreshold_RawDataTest(strIniFile); + OnInit_DThreshold_SCapRawDataTest(strIniFile); + OnInit_DThreshold_SCapCbTest(strIniFile); + + OnInit_DThreshold_ForceTouch_SCapRawDataTest(strIniFile); + OnInit_DThreshold_ForceTouch_SCapCbTest(strIniFile); + + OnInit_DThreshold_RxLinearityTest(strIniFile); + OnInit_DThreshold_TxLinearityTest(strIniFile); + + OnInit_DThreshold_PanelDifferTest(strIniFile); + + FTS_TEST_FUNC_EXIT(); +} +void OnInit_InvalidNode(char *strIniFile) +{ + + char str[MAX_PATH] = {0}, strTemp[MAX_PATH] = {0}; + int i = 0, j = 0; + + + + FTS_TEST_FUNC_ENTER(); + + for (i = 0; i < TX_NUM_MAX; i++) { + for (j = 0; j < RX_NUM_MAX; j++) { + sprintf(strTemp, "InvalidNode[%d][%d]", (i+1), (j+1)); + + GetPrivateProfileString("INVALID_NODE", strTemp, "1", str, strIniFile); + if (fts_atoi(str) == 0) { + g_stCfg_MCap_DetailThreshold.InvalidNode[i][j] = 0; + g_stCfg_Incell_DetailThreshold.InvalidNode[i][j] = 0; + FTS_TEST_DBG("node (%d, %d) \n", (i+1), (j+1)); + + } else if (fts_atoi(str) == 2) { + g_stCfg_MCap_DetailThreshold.InvalidNode[i][j] = 2; + g_stCfg_Incell_DetailThreshold.InvalidNode[i][j] = 2; + } else { + g_stCfg_MCap_DetailThreshold.InvalidNode[i][j] = 1; + g_stCfg_Incell_DetailThreshold.InvalidNode[i][j] = 1; + } + + + + + } + } + + for (i = 0; i < 2; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + sprintf(strTemp, "InvalidNodeS[%d][%d]", (i+1), (j+1)); + GetPrivateProfileString("INVALID_NODES", strTemp, "1", str, strIniFile); + if (fts_atoi(str) == 0) { + g_stCfg_MCap_DetailThreshold.InvalidNode_SC[i][j] = 0; + } else if (fts_atoi(str) == 2) { + g_stCfg_MCap_DetailThreshold.InvalidNode_SC[i][j] = 2; + } else + g_stCfg_MCap_DetailThreshold.InvalidNode_SC[i][j] = 1; + } + + } + + FTS_TEST_FUNC_EXIT(); +} + +void OnInit_DThreshold_RawDataTest(char *strIniFile) +{ + char str[128], strTemp[MAX_PATH], strValue[MAX_PATH]; + int MaxValue, MinValue; + int dividerPos = 0; + char str_tmp[128]; + int index = 0; + int k = 0, i = 0, j = 0; + + FTS_TEST_FUNC_ENTER(); + + if ((g_ScreenSetParam.iSelectedIC >> 4 == IC_FT8716 >> 4) || (g_ScreenSetParam.iSelectedIC >> 4 == IC_FT8736 >> 4) || (g_ScreenSetParam.iSelectedIC >> 4 == IC_FTE716 >> 4)) { + return; + } + + + GetPrivateProfileString("Basic_Threshold", "RawDataTest_Max", "10000", str, strIniFile); + MaxValue = fts_atoi(str); + + + + for (i = 0; i < g_ScreenSetParam.iUsedMaxTxNum; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.RawDataTest_Max[i][j] = MaxValue; + g_stCfg_Incell_DetailThreshold.RawDataTest_Max[i][j] = MaxValue; + + } + } + + for (i = 0; i < g_ScreenSetParam.iUsedMaxTxNum; i++) { + sprintf(str, "RawData_Max_Tx%d", (i + 1)); + + dividerPos = GetPrivateProfileString("SpecialSet", str, "111", strTemp, strIniFile); + + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.RawDataTest_Max[i][k] = (short)(fts_atoi(str_tmp)); + g_stCfg_Incell_DetailThreshold.RawDataTest_Max[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + + } + + GetPrivateProfileString("Basic_Threshold", "RawDataTest_Min", "7000", str, strIniFile); + MinValue = fts_atoi(str); + + for (i = 0; i < g_ScreenSetParam.iUsedMaxTxNum; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.RawDataTest_Min[i][j] = MinValue; + g_stCfg_Incell_DetailThreshold.RawDataTest_Min[i][j] = MinValue; + } + } + for (i = 0; i < g_ScreenSetParam.iUsedMaxTxNum; i++) { + sprintf(str, "RawData_Min_Tx%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.RawDataTest_Min[i][k] = (short)(fts_atoi(str_tmp)); + g_stCfg_Incell_DetailThreshold.RawDataTest_Min[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + + GetPrivateProfileString("Basic_Threshold", "RawDataTest_Low_Max", "15000", str, strIniFile); + MaxValue = fts_atoi(str); + + for (i = 0; i < g_ScreenSetParam.iUsedMaxTxNum; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.RawDataTest_Low_Max[i][j] = MaxValue; + } + } + for (i = 0; i < g_ScreenSetParam.iUsedMaxTxNum; i++) { + sprintf(str, "RawData_Max_Low_Tx%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.RawDataTest_Low_Max[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + GetPrivateProfileString("Basic_Threshold", "RawDataTest_Low_Min", "3000", str, strIniFile); + MinValue = fts_atoi(str); + + for (i = 0; i < g_ScreenSetParam.iUsedMaxTxNum; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.RawDataTest_Low_Min[i][j] = MinValue; + } + } + for (i = 0; i < g_ScreenSetParam.iUsedMaxTxNum; i++) { + sprintf(str, "RawData_Min_Low_Tx%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.RawDataTest_Low_Min[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + + GetPrivateProfileString("Basic_Threshold", "RawDataTest_High_Max", "15000", str, strIniFile); + MaxValue = fts_atoi(str); + + for (i = 0; i < g_ScreenSetParam.iUsedMaxTxNum; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.RawDataTest_High_Max[i][j] = MaxValue; + } + } + GetPrivateProfileString("Basic_Threshold", "RawDataTest_High_Min", "3000", str, strIniFile); + MinValue = fts_atoi(str); + + for (i = 0; i < g_ScreenSetParam.iUsedMaxTxNum; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.RawDataTest_High_Min[i][j] = MinValue; + } + } + for (i = 0; i < g_ScreenSetParam.iUsedMaxTxNum; i++) { + sprintf(str, "RawData_Max_High_Tx%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.RawDataTest_High_Max[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + + for (i = 0; i < g_ScreenSetParam.iUsedMaxTxNum; i++) { + sprintf(str, "RawData_Min_High_Tx%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.RawDataTest_High_Min[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + FTS_TEST_FUNC_EXIT(); +} + +void OnInit_DThreshold_SCapRawDataTest(char *strIniFile) +{ + char str[128], strTemp[MAX_PATH], strValue[MAX_PATH]; + int MaxValue, MinValue; + int dividerPos = 0; + char str_tmp[128]; + int index = 0; + int k = 0, i = 0, j = 0; + + FTS_TEST_FUNC_ENTER(); + + + GetPrivateProfileString("Basic_Threshold", "SCapRawDataTest_OFF_Min", "150", str, strIniFile); + MinValue = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "SCapRawDataTest_OFF_Max", "1000", str, strIniFile); + MaxValue = fts_atoi(str); + + + for (i = 0; i < 2; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.SCapRawDataTest_OFF_Max[i][j] = MaxValue; + } + } + for (i = 0; i < 2; i++) { + sprintf(str, "ScapRawData_OFF_Max_%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.SCapRawDataTest_OFF_Max[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + for (i = 0; i < 2; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.SCapRawDataTest_OFF_Min[i][j] = MinValue; + } + } + for (i = 0; i < 2; i++) { + sprintf(str, "ScapRawData_OFF_Min_%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.SCapRawDataTest_OFF_Min[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + + GetPrivateProfileString("Basic_Threshold", "SCapRawDataTest_ON_Min", "150", str, strIniFile); + MinValue = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "SCapRawDataTest_ON_Max", "1000", str, strIniFile); + MaxValue = fts_atoi(str); + + + for (i = 0; i < 2; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.SCapRawDataTest_ON_Max[i][j] = MaxValue; + } + } + for (i = 0; i < 2; i++) { + sprintf(str, "ScapRawData_ON_Max_%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.SCapRawDataTest_ON_Max[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + for (i = 0; i < 2; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.SCapRawDataTest_ON_Min[i][j] = MinValue; + } + } + for (i = 0; i < 2; i++) { + sprintf(str, "ScapRawData_ON_Min_%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.SCapRawDataTest_ON_Min[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + FTS_TEST_FUNC_EXIT(); +} + +void OnInit_DThreshold_SCapCbTest(char *strIniFile) +{ + char str[128], strTemp[MAX_PATH], strValue[MAX_PATH]; + int MaxValue, MinValue; + int dividerPos = 0; + char str_tmp[128]; + int index = 0; + int k = 0, i = 0, j = 0; + + FTS_TEST_FUNC_ENTER(); + + + GetPrivateProfileString("Basic_Threshold", "SCapCbTest_ON_Min", "0", str, strIniFile); + MinValue = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "SCapCbTest_ON_Max", "240", str, strIniFile); + MaxValue = fts_atoi(str); + + + for (i = 0; i < 2; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.SCapCbTest_ON_Max[i][j] = MaxValue; + } + } + for (i = 0; i < 2; i++) { + sprintf(str, "ScapCB_ON_Max_%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.SCapCbTest_ON_Max[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + for (i = 0; i < 2; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.SCapCbTest_ON_Min[i][j] = MinValue; + } + } + for (i = 0; i < 2; i++) { + sprintf(str, "ScapCB_ON_Min_%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.SCapCbTest_ON_Min[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + + GetPrivateProfileString("Basic_Threshold", "SCapCbTest_OFF_Min", "0", str, strIniFile); + MinValue = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "SCapCbTest_OFF_Max", "240", str, strIniFile); + MaxValue = fts_atoi(str); + + for (i = 0; i < 2; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.SCapCbTest_OFF_Max[i][j] = MaxValue; + } + } + for (i = 0; i < 2; i++) { + sprintf(str, "ScapCB_OFF_Max_%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.SCapCbTest_OFF_Max[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + for (i = 0; i < 2; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.SCapCbTest_OFF_Min[i][j] = MinValue; + } + } + for (i = 0; i < 2; i++) { + sprintf(str, "ScapCB_OFF_Min_%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.SCapCbTest_OFF_Min[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + FTS_TEST_FUNC_EXIT(); +} + +void OnInit_DThreshold_PanelDifferTest(char *strIniFile) +{ + + char str[128], strTemp[MAX_PATH], strValue[MAX_PATH]; + int MaxValue, MinValue; + int dividerPos = 0; + int index = 0; + int k = 0, i = 0, j = 0; + char str_tmp[128]; + + FTS_TEST_FUNC_ENTER(); + + GetPrivateProfileString("Basic_Threshold", "PanelDifferTest_Max", "1000", str, strIniFile); + MaxValue = fts_atoi(str); + for (i = 0; i < TX_NUM_MAX; i++) { + for (j = 0; j < RX_NUM_MAX; j++) { + g_stCfg_MCap_DetailThreshold.PanelDifferTest_Max[i][j] = MaxValue; + } + } + + for (i = 0; i < TX_NUM_MAX; i++) { + sprintf(str, "Panel_Differ_Max_Tx%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.PanelDifferTest_Max[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + + GetPrivateProfileString("Basic_Threshold", "PanelDifferTest_Min", "150", str, strIniFile); + MinValue = fts_atoi(str); + for (i = 0; i < TX_NUM_MAX; i++) { + for (j = 0; j < RX_NUM_MAX; j++) { + g_stCfg_MCap_DetailThreshold.PanelDifferTest_Min[i][j] = MinValue; + } + } + + for (i = 0; i < TX_NUM_MAX; i++) { + sprintf(str, "Panel_Differ_Min_Tx%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.PanelDifferTest_Min[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + FTS_TEST_FUNC_EXIT(); + +} + + + +void OnInit_DThreshold_RxLinearityTest(char *strIniFile) +{ + char str[128], strTemp[MAX_PATH], strValue[MAX_PATH]; + int MaxValue = 0; + int dividerPos = 0; + char str_tmp[128]; + int index = 0; + int k = 0, i = 0, j = 0; + + FTS_TEST_FUNC_ENTER(); + + + GetPrivateProfileString("Basic_Threshold", "RxLinearityTest_Max", "50", str, strIniFile); + MaxValue = fts_atoi(str); + + + + for (i = 0; i < g_ScreenSetParam.iUsedMaxTxNum; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.RxLinearityTest_Max[i][j] = MaxValue; + } + } + + for (i = 0; i < g_ScreenSetParam.iUsedMaxTxNum; i++) { + sprintf(str, "Rx_Linearity_Max_Tx%d", (i + 1)); + + dividerPos = GetPrivateProfileString("SpecialSet", str, "111", strTemp, strIniFile); + + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.RxLinearityTest_Max[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + + } + + FTS_TEST_FUNC_EXIT(); +} + +void OnInit_DThreshold_TxLinearityTest(char *strIniFile) +{ + char str[128], strTemp[MAX_PATH], strValue[MAX_PATH]; + int MaxValue = 0; + int dividerPos = 0; + char str_tmp[128]; + int index = 0; + int k = 0, i = 0, j = 0; + + FTS_TEST_FUNC_ENTER(); + + + GetPrivateProfileString("Basic_Threshold", "TxLinearityTest_Max", "50", str, strIniFile); + MaxValue = fts_atoi(str); + + + + for (i = 0; i < g_ScreenSetParam.iUsedMaxTxNum; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.TxLinearityTest_Max[i][j] = MaxValue; + } + } + + for (i = 0; i < g_ScreenSetParam.iUsedMaxTxNum; i++) { + sprintf(str, "Tx_Linearity_Max_Tx%d", (i + 1)); + + dividerPos = GetPrivateProfileString("SpecialSet", str, "111", strTemp, strIniFile); + + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.TxLinearityTest_Max[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + + } + + FTS_TEST_FUNC_EXIT(); +} + +void OnInit_DThreshold_ForceTouch_SCapRawDataTest(char *strIniFile) +{ + char str[128], strTemp[MAX_PATH], strValue[MAX_PATH]; + int MaxValue, MinValue; + int dividerPos = 0; + char str_tmp[128]; + int index = 0; + int k = 0, i = 0, j = 0; + + FTS_TEST_FUNC_ENTER(); + + + GetPrivateProfileString("Basic_Threshold", "ForceTouch_SCapRawDataTest_OFF_Min", "150", str, strIniFile); + MinValue = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "ForceTouch_SCapRawDataTest_OFF_Max", "1000", str, strIniFile); + MaxValue = fts_atoi(str); + + + for (i = 0; i < 1; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.ForceTouch_SCapRawDataTest_OFF_Max[i][j] = MaxValue; + } + } + for (i = 0; i < 1; i++) { + sprintf(str, "ForceTouch_ScapRawData_OFF_Max_%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.ForceTouch_SCapRawDataTest_OFF_Max[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + for (i = 0; i < 1; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.ForceTouch_SCapRawDataTest_OFF_Min[i][j] = MinValue; + } + } + for (i = 0; i < 1; i++) { + sprintf(str, "ForceTouch_ScapRawData_OFF_Min_%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.ForceTouch_SCapRawDataTest_OFF_Min[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + + GetPrivateProfileString("Basic_Threshold", "ForceTouch_SCapRawDataTest_ON_Min", "150", str, strIniFile); + MinValue = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "ForceTouch_SCapRawDataTest_ON_Max", "1000", str, strIniFile); + MaxValue = fts_atoi(str); + + + for (i = 0; i < 1; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.ForceTouch_SCapRawDataTest_ON_Max[i][j] = MaxValue; + } + } + for (i = 0; i < 1; i++) { + sprintf(str, "ForceTouch_ScapRawData_ON_Max_%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.ForceTouch_SCapRawDataTest_ON_Max[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + for (i = 0; i < 1; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.ForceTouch_SCapRawDataTest_ON_Min[i][j] = MinValue; + } + } + for (i = 0; i < 1; i++) { + sprintf(str, "ForceTouch_ScapRawData_ON_Min_%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.ForceTouch_SCapRawDataTest_ON_Min[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + FTS_TEST_FUNC_EXIT(); +} + +void OnInit_DThreshold_ForceTouch_SCapCbTest(char *strIniFile) +{ + char str[128], strTemp[MAX_PATH], strValue[MAX_PATH]; + int MaxValue, MinValue; + int dividerPos = 0; + char str_tmp[128]; + int index = 0; + int k = 0, i = 0, j = 0; + + FTS_TEST_FUNC_ENTER(); + + + GetPrivateProfileString("Basic_Threshold", "ForceTouch_SCapCbTest_ON_Min", "0", str, strIniFile); + MinValue = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "ForceTouch_SCapCbTest_ON_Max", "240", str, strIniFile); + MaxValue = fts_atoi(str); + + + for (i = 0; i < 1; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.ForceTouch_SCapCbTest_ON_Max[i][j] = MaxValue; + } + } + for (i = 0; i < 1; i++) { + sprintf(str, "ForceTouch_ScapCB_ON_Max_%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.ForceTouch_SCapCbTest_ON_Max[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + for (i = 0; i < 1; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.ForceTouch_SCapCbTest_ON_Min[i][j] = MinValue; + } + } + for (i = 0; i < 1; i++) { + sprintf(str, "ForceTouch_ScapCB_ON_Min_%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + FTS_TEST_DBG("%s\r", strTemp); + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.ForceTouch_SCapCbTest_ON_Min[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + + GetPrivateProfileString("Basic_Threshold", "ForceTouch_SCapCbTest_OFF_Min", "0", str, strIniFile); + MinValue = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "ForceTouch_SCapCbTest_OFF_Max", "240", str, strIniFile); + MaxValue = fts_atoi(str); + + for (i = 0; i < 1; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.ForceTouch_SCapCbTest_OFF_Max[i][j] = MaxValue; + } + } + for (i = 0; i < 1; i++) { + sprintf(str, "ForceTouch_ScapCB_OFF_Max_%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.ForceTouch_SCapCbTest_OFF_Max[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + for (i = 0; i < 1; i++) { + for (j = 0; j < g_ScreenSetParam.iUsedMaxRxNum; j++) { + g_stCfg_MCap_DetailThreshold.ForceTouch_SCapCbTest_OFF_Min[i][j] = MinValue; + } + } + for (i = 0; i < 1; i++) { + sprintf(str, "ForceTouch_ScapCB_OFF_Min_%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_MCap_DetailThreshold.ForceTouch_SCapCbTest_OFF_Min[i][k] = (short)(fts_atoi(str_tmp)); + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + FTS_TEST_FUNC_EXIT(); +} + +void OnInit_Incell_DetailThreshold(char *strIniFile) +{ + + FTS_TEST_FUNC_ENTER(); + + set_max_channel_num(); + + OnInit_InvalidNode(strIniFile); + + OnInit_DThreshold_RawDataTest(strIniFile); + OnInit_DThreshold_CBTest(strIniFile); + OnInit_DThreshold_AllButtonCBTest(strIniFile); + OnThreshold_VkAndVaRawDataSeparateTest(strIniFile); + + FTS_TEST_FUNC_EXIT(); +} + +void OnInit_DThreshold_CBTest(char *strIniFile) +{ + char str[128], strTemp[MAX_PATH], strValue[MAX_PATH]; + int MaxValue, MinValue, MaxValue_Vkey, MinValue_Vkey; + int ChannelNumTest_ChannelXNum, ChannelNumTest_ChannelYNum; + int dividerPos = 0; + char str_tmp[128]; + int index = 0; + int k = 0, i = 0, j = 0; + + FTS_TEST_FUNC_ENTER(); + if (g_ScreenSetParam.iSelectedIC >> 4 == IC_FT8606 >> 4) { + return; + } + + GetPrivateProfileString("Basic_Threshold", "CBTest_Max", "100", str, strIniFile); + MaxValue = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "CBTest_Max_Vkey", "100", str, strIniFile); + MaxValue_Vkey = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "ChannelNumTest_ChannelX", "15", str, strIniFile); + ChannelNumTest_ChannelXNum = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "ChannelNumTest_ChannelY", "24", str, strIniFile); + ChannelNumTest_ChannelYNum = fts_atoi(str); + + for (i = 0; i < TX_NUM_MAX; i++) { + for (j = 0; j < RX_NUM_MAX; j++) { + g_stCfg_Incell_DetailThreshold.CBTest_Max[i][j] = MaxValue; + } + + if (i == ChannelNumTest_ChannelXNum) { + for (j = 0; j < RX_NUM_MAX; j++) { + g_stCfg_Incell_DetailThreshold.CBTest_Max[i][j] = MaxValue_Vkey; + } + } + } + + for (i = 0; i < TX_NUM_MAX; i++) { + sprintf(str, "CB_Max_Tx%d", (i + 1)); + + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_Incell_DetailThreshold.CBTest_Max[i][k] = (short)(fts_atoi(str_tmp)); + + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + + + GetPrivateProfileString("Basic_Threshold", "CBTest_Min", "3", str, strIniFile); + MinValue = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "CBTest_Min_Vkey", "3", str, strIniFile); + MinValue_Vkey = fts_atoi(str); + + for (i = 0; i < TX_NUM_MAX; i++) { + for (j = 0; j < RX_NUM_MAX; j++) { + g_stCfg_Incell_DetailThreshold.CBTest_Min[i][j] = MinValue; + } + + if (i == ChannelNumTest_ChannelXNum) { + for (j = 0; j < RX_NUM_MAX; j++) { + g_stCfg_Incell_DetailThreshold.CBTest_Min[i][j] = MinValue_Vkey; + } + } + } + + for (i = 0; i < TX_NUM_MAX; i++) { + sprintf(str, "CB_Min_Tx%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_Incell_DetailThreshold.CBTest_Min[i][k] = (short)(fts_atoi(str_tmp)); + + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + FTS_TEST_FUNC_EXIT(); +} + + +void OnInit_DThreshold_AllButtonCBTest(char *strIniFile) +{ + char str[128], strTemp[MAX_PATH], strValue[MAX_PATH]; + int MaxValue, MinValue; + int dividerPos = 0; + char str_tmp[128]; + int index = 0; + int k = 0, i = 0, j = 0; + + FTS_TEST_FUNC_ENTER(); + + if (g_ScreenSetParam.iSelectedIC >> 4 != IC_FT8606 >> 4) { + return; + } + + GetPrivateProfileString("Basic_Threshold", "CBTest_Max", "100", str, strIniFile); + MaxValue = fts_atoi(str); + + + for (i = 0; i < TX_NUM_MAX; i++) { + for (j = 0; j < RX_NUM_MAX; j++) { + g_stCfg_Incell_DetailThreshold.CBTest_Max[i][j] = MaxValue; + } + } + + for (i = 0; i < TX_NUM_MAX; i++) { + sprintf(str, "CB_Max_Tx%d", (i + 1)); + + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_Incell_DetailThreshold.CBTest_Max[i][k] = (short)(fts_atoi(str_tmp)); + + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + + + GetPrivateProfileString("Basic_Threshold", "CBTest_Min", "3", str, strIniFile); + MinValue = fts_atoi(str); + + for (i = 0; i < TX_NUM_MAX; i++) { + for (j = 0; j < RX_NUM_MAX; j++) { + g_stCfg_Incell_DetailThreshold.CBTest_Min[i][j] = MinValue; + } + } + + for (i = 0; i < TX_NUM_MAX; i++) { + sprintf(str, "CB_Min_Tx%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_Incell_DetailThreshold.CBTest_Min[i][k] = (short)(fts_atoi(str_tmp)); + + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + FTS_TEST_FUNC_EXIT(); +} + + +void OnThreshold_VkAndVaRawDataSeparateTest(char *strIniFile) +{ + char str[128], strTemp[MAX_PATH], strValue[MAX_PATH]; + int MaxValue, MinValue, MaxValue_Vkey, MinValue_Vkey; + int ChannelNumTest_ChannelXNum, ChannelNumTest_ChannelYNum; + int dividerPos = 0; + char str_tmp[128]; + int index = 0; + int k = 0, i = 0, j = 0; + + + FTS_TEST_FUNC_ENTER(); + + if ((g_ScreenSetParam.iSelectedIC >> 4 != IC_FT8716 >> 4) && (g_ScreenSetParam.iSelectedIC >> 4 != IC_FT8736 >> 4) && (g_ScreenSetParam.iSelectedIC >> 4 != IC_FTE716 >> 4)) { + return; + } + + GetPrivateProfileString("Basic_Threshold", "RawDataTest_Max", "11000", str, strIniFile); + MaxValue = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "RawDataTest_Max_VKey", "11000", str, strIniFile); + MaxValue_Vkey = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "ChannelNumTest_ChannelX", "15", str, strIniFile); + ChannelNumTest_ChannelXNum = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "ChannelNumTest_ChannelY", "24", str, strIniFile); + ChannelNumTest_ChannelYNum = fts_atoi(str); + + for (i = 0; i < TX_NUM_MAX; i++) { + for (j = 0; j < RX_NUM_MAX; j++) { + g_stCfg_Incell_DetailThreshold.RawDataTest_Max[i][j] = MaxValue; + } + + if (i == ChannelNumTest_ChannelXNum) { + for (j = 0; j < RX_NUM_MAX; j++) { + g_stCfg_Incell_DetailThreshold.RawDataTest_Max[i][j] = MaxValue_Vkey; + } + } + } + + + for (i = 0; i < TX_NUM_MAX; i++) { + sprintf(str, "RawData_Max_Tx%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_Incell_DetailThreshold.RawDataTest_Max[i][k] = (short)(fts_atoi(str_tmp)); + + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + + GetPrivateProfileString("Basic_Threshold", "RawDataTest_Min", "5000", str, strIniFile); + MinValue = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "RawDataTest_Min_VKey", "5000", str, strIniFile); + MinValue_Vkey = fts_atoi(str); + + for (i = 0; i < TX_NUM_MAX; i++) { + for (j = 0; j < RX_NUM_MAX; j++) { + g_stCfg_Incell_DetailThreshold.RawDataTest_Min[i][j] = MinValue; + } + + if (i == ChannelNumTest_ChannelXNum) { + for (j = 0; j < RX_NUM_MAX; j++) { + g_stCfg_Incell_DetailThreshold.RawDataTest_Min[i][j] = MinValue_Vkey; + } + } + } + + for (i = 0; i < TX_NUM_MAX; i++) { + sprintf(str, "RawData_Min_Tx%d", (i + 1)); + dividerPos = GetPrivateProfileString("SpecialSet", str, "NULL", strTemp, strIniFile); + sprintf(strValue, "%s", strTemp); + + if (0 == dividerPos) + continue; + index = 0; + k = 0; + memset(str_tmp, 0, sizeof(str_tmp)); + for (j = 0; j < dividerPos; j++) { + if (',' == strValue[j]) { + g_stCfg_Incell_DetailThreshold.RawDataTest_Min[i][k] = (short)(fts_atoi(str_tmp)); + + index = 0; + memset(str_tmp, 0x00, sizeof(str_tmp)); + k++; + } else { + if (' ' == strValue[j]) + continue; + str_tmp[index] = strValue[j]; + index++; + } + } + } + FTS_TEST_FUNC_EXIT(); +} + diff --git a/drivers/input/touchscreen/FT8716/focaltech_test/src/focaltech_test_global.c b/drivers/input/touchscreen/FT8716/focaltech_test/src/focaltech_test_global.c new file mode 100755 index 0000000000000..1ffd1a743b1af --- /dev/null +++ b/drivers/input/touchscreen/FT8716/focaltech_test/src/focaltech_test_global.c @@ -0,0 +1,499 @@ +/************************************************************************ +* Copyright (C) 2012-2017, Focaltech Systems (R)£¬All Rights Reserved. +* Copyright (C) 2018 XiaoMi, Inc. +* +* File Name: focaltech_test_global.c +* +* Author: Software Development Team, AE +* +* Created: 2016-08-01 +* +* Abstract: global function for test +* +************************************************************************/ + +#include +#include +#include +#include +#include +#include + +#include "../include/focaltech_test_ini.h" +#include "../focaltech_test_config.h" +#include "../include/focaltech_test_main.h" +#include "../include/focaltech_ic_table.h" + +#define DEVIDE_MODE_ADDR 0x00 + +/*buff length*/ +#define BUFF_LEN_STORE_MSG_AREA 1024*10 +#define BUFF_LEN_MSG_AREA_LINE2 1024*4 +#define BUFF_LEN_STORE_DATA_AREA 1024*80 +#define BUFF_LEN_TMP_BUFFER 1024*16 + + +char *g_pTmpBuff = NULL; +char *g_pStoreMsgArea = NULL; +int g_lenStoreMsgArea = 0; +char *g_pMsgAreaLine2 = NULL; +int g_lenMsgAreaLine2 = 0; +char *g_pStoreDataArea = NULL; +int g_lenStoreDataArea = 0; +unsigned char m_ucTestItemCode = 0; +int m_iStartLine = 0; +int m_iTestDataCount = 0; + +char *TestResult = NULL; +int TestResultLen = 0; + +/*ÄÚ´æÉêÇ뷽ʽ*/ +#define FTS_MALLOC_TYPE 1 +enum enum_malloc_mode { + kmalloc_mode = 0, + vmalloc_mode = 1, +}; + +struct StruScreenSeting g_ScreenSetParam; +struct stTestItem g_stTestItem[1][MAX_TEST_ITEM]; +struct structSCapConfEx g_stSCapConfEx; + +int g_TestItemNum = 0; +char g_strIcName[20] = {0}; +char *g_pStoreAllData = NULL; + +int GetPrivateProfileString(char *section, char *ItemName, char *defaultvalue, char *returnValue, char *IniFile) +{ + char value[512] = {0}; + int len = 0; + + if (NULL == returnValue) { + FTS_TEST_DBG("[FTS] returnValue==NULL in function %s.", __func__); + return 0; + } + + if (ini_get_key(IniFile, section, ItemName, value) < 0) { + if (NULL != defaultvalue) + memcpy(value, defaultvalue, strlen(defaultvalue)); + sprintf(returnValue, "%s", value); + return 0; + } else { + len = sprintf(returnValue, "%s", value); + } + + return len; +} + +void focal_msleep(int ms) +{ + msleep(ms); +} + +void SysDelay(int ms) +{ + msleep(ms); +} + +int focal_abs(int value) +{ + if (value < 0) + value = 0 - value; + + return value; +} + +void *fts_malloc(size_t size) +{ + if (FTS_MALLOC_TYPE == kmalloc_mode) { + return kmalloc(size, GFP_ATOMIC); + } else if (FTS_MALLOC_TYPE == vmalloc_mode) { + return vmalloc(size); + } else { + FTS_TEST_DBG("invalid malloc. \n"); + return NULL; + } + + return NULL; +} + +void fts_free(void *p) +{ + if (FTS_MALLOC_TYPE == kmalloc_mode) { + return kfree(p); + } else if (FTS_MALLOC_TYPE == vmalloc_mode) { + return vfree(p); + } else { + FTS_TEST_DBG("invalid free. \n"); + return ; + } + + return ; +} + +void OnInit_InterfaceCfg(char *strIniFile) +{ + char str[128] = {0}; + + FTS_TEST_FUNC_ENTER(); + + GetPrivateProfileString("Interface", "IC_Type", "FT5X36", str, strIniFile); + g_ScreenSetParam.iSelectedIC = fts_ic_table_get_ic_code_from_ic_name(str); + FTS_TEST_INFO(" IC code :0x%02x. ", g_ScreenSetParam.iSelectedIC); + + + GetPrivateProfileString("Interface", "Normalize_Type", 0, str, strIniFile); + g_ScreenSetParam.isNormalize = fts_atoi(str); + + FTS_TEST_FUNC_EXIT(); + +} +/************************************************************************ +* Name: ReadReg(Same function name as FT_MultipleTest) +* Brief: Read Register +* Input: RegAddr +* Output: RegData +* Return: Comm Code. Code = 0x00 is OK, else fail. +***********************************************************************/ +int ReadReg(unsigned char RegAddr, unsigned char *RegData) +{ + int iRet; + + if (NULL == fts_i2c_read_test) { + FTS_TEST_DBG("[focal] %s fts_i2c_read_test == NULL !!! ", __func__); + return (ERROR_CODE_INVALID_COMMAND); + } + + iRet = fts_i2c_read_test(&RegAddr, 1, RegData, 1); + + if (iRet >= 0) + return (ERROR_CODE_OK); + else + return (ERROR_CODE_COMM_ERROR); +} + +/************************************************************************ +* Name: WriteReg(Same function name as FT_MultipleTest) +* Brief: Write Register +* Input: RegAddr, RegData +* Output: null +* Return: Comm Code. Code = 0x00 is OK, else fail. +***********************************************************************/ +int WriteReg(unsigned char RegAddr, unsigned char RegData) +{ + int iRet; + unsigned char cmd[2] = {0}; + + if (NULL == fts_i2c_write_test) { + FTS_TEST_DBG("[focal] %s fts_i2c_write_test == NULL !!!", __func__); + return (ERROR_CODE_INVALID_COMMAND); + } + + cmd[0] = RegAddr; + cmd[1] = RegData; + iRet = fts_i2c_write_test(cmd, 2); + + if (iRet >= 0) + return (ERROR_CODE_OK); + else + return (ERROR_CODE_COMM_ERROR); +} +/************************************************************************ +* Name: Comm_Base_IIC_IO(Same function name as FT_MultipleTest) +* Brief: Write/Read Data by IIC +* Input: pWriteBuffer, iBytesToWrite, iBytesToRead +* Output: pReadBuffer +* Return: Comm Code. Code = 0x00 is OK, else fail. +***********************************************************************/ +unsigned char Comm_Base_IIC_IO(unsigned char *pWriteBuffer, int iBytesToWrite, unsigned char *pReadBuffer, int iBytesToRead) +{ + int iRet; + + if (NULL == fts_i2c_read_test) { + FTS_TEST_DBG("[focal] %s fts_i2c_read_test == NULL !!! ", __func__); + return (ERROR_CODE_INVALID_COMMAND); + } + + if (iBytesToRead > 0) { + iRet = fts_i2c_read_test(pWriteBuffer, iBytesToWrite, pReadBuffer, iBytesToRead); + } else { + iRet = fts_i2c_write_test(pWriteBuffer, iBytesToWrite); + } + + if (iRet >= 0) + return (ERROR_CODE_OK); + else + return (ERROR_CODE_COMM_ERROR); +} +/************************************************************************ +* Name: EnterWork(Same function name as FT_MultipleTest) +* Brief: Enter Work Mode +* Input: null +* Output: null +* Return: Comm Code. Code = 0x00 is OK, else fail. +***********************************************************************/ +unsigned char EnterWork(void) +{ + unsigned char RunState = 0; + unsigned char ReCode = ERROR_CODE_COMM_ERROR; + + FTS_TEST_FUNC_ENTER(); + ReCode = ReadReg(DEVIDE_MODE_ADDR, &RunState); + if (ReCode == ERROR_CODE_OK) { + if (((RunState>>4)&0x07) == 0x00) { + ReCode = ERROR_CODE_OK; + } else { + ReCode = WriteReg(DEVIDE_MODE_ADDR, 0); + if (ReCode == ERROR_CODE_OK) { + ReCode = ReadReg(DEVIDE_MODE_ADDR, &RunState); + if (ReCode == ERROR_CODE_OK) { + if (((RunState>>4)&0x07) == 0x00) { + ReCode = ERROR_CODE_OK; + } else { + ReCode = ERROR_CODE_COMM_ERROR; + } + } else + FTS_TEST_ERROR("EnterWork read DEVIDE_MODE_ADDR error 3."); + } else + FTS_TEST_ERROR("EnterWork write DEVIDE_MODE_ADDR error 2."); + } + } else + FTS_TEST_ERROR("EnterWork read DEVIDE_MODE_ADDR error 1."); + + FTS_TEST_FUNC_EXIT(); + + return ReCode; + +} +/************************************************************************ +* Name: EnterFactory +* Brief: enter Fcatory Mode +* Input: null +* Output: null +* Return: Comm Code. Code = 0 is OK, else fail. +***********************************************************************/ +unsigned char EnterFactory(void) +{ + unsigned char RunState = 0; + int index = 0; + unsigned char ReCode = ERROR_CODE_COMM_ERROR; + + FTS_TEST_FUNC_ENTER(); + ReCode = ReadReg(DEVIDE_MODE_ADDR, &RunState); + if (ReCode == ERROR_CODE_OK) { + if (((RunState>>4)&0x07) == 0x04) { + ReCode = ERROR_CODE_OK; + } else { + ReCode = WriteReg(DEVIDE_MODE_ADDR, 0x40); + if (ReCode == ERROR_CODE_OK) { + for (index = 0; index < 20; ++index) { + ReCode = ReadReg(DEVIDE_MODE_ADDR, &RunState); + if (ReCode == ERROR_CODE_OK) { + if (((RunState>>4)&0x07) == 0x04) { + ReCode = ERROR_CODE_OK; + break; + } else { + ReCode = ERROR_CODE_COMM_ERROR; + } + } + SysDelay(50); + } + if (ReCode != ERROR_CODE_OK) + FTS_TEST_ERROR("EnterFactory read DEVIDE_MODE_ADDR error 3."); + } else + FTS_TEST_ERROR("EnterFactory write DEVIDE_MODE_ADDR error 2."); + } + } else + FTS_TEST_ERROR("EnterFactory read DEVIDE_MODE_ADDR error 1."); + + FTS_TEST_FUNC_EXIT(); + return ReCode; +} + +/************************************************************************ +* Name: fts_SetTestItemCodeName +* Brief: set test item code and name +* Input: null +* Output: null +* Return: +**********************************************************************/ + +void fts_SetTestItemCodeName(unsigned char ucitemcode) +{ + g_stTestItem[0][g_TestItemNum].ItemCode = ucitemcode; + + g_stTestItem[0][g_TestItemNum].TestNum = g_TestItemNum; + g_stTestItem[0][g_TestItemNum].TestResult = RESULT_NULL; + g_TestItemNum++; +} + +/************************************************************************ +* Name: InitTest +* Brief: Init all param before test +* Input: none +* Output: none +* Return: none +***********************************************************************/ +int InitTest(void) +{ + int ret = 0; + ret = AllocateMemory(); + if (ret < 0) + return -EPERM; + + InitStoreParamOfTestData(); + + g_stSCapConfEx.ChannelXNum = 0; + g_stSCapConfEx.ChannelYNum = 0; + g_stSCapConfEx.KeyNum = 0; + g_stSCapConfEx.KeyNumTotal = 6; + + return 0; + +} + +/************************************************************************ +* Name: FinishTest +* Brief: Init all param before test +* Input: none +* Output: none +* Return: none +***********************************************************************/ +void FinishTest(void) +{ + MergeAllTestData(); + FreeMemory(); +} + + +/************************************************************************ +* Name: InitStoreParamOfTestData +* Brief: Init store param of test data +* Input: none +* Output: none +* Return: none +***********************************************************************/ +void InitStoreParamOfTestData(void) +{ + g_lenStoreMsgArea = 0; + + g_lenStoreMsgArea += sprintf(g_pStoreMsgArea, "ECC, 85, 170, IC Name, %s, IC Code, %x\n", g_strIcName, g_ScreenSetParam.iSelectedIC); + + + + g_lenMsgAreaLine2 = 0; + + + + g_lenStoreDataArea = 0; + m_iStartLine = 11; + + m_iTestDataCount = 0; +} +/************************************************************************ +* Name: MergeAllTestData +* Brief: Merge All Data of test result +* Input: none +* Output: none +* Return: none +***********************************************************************/ +void MergeAllTestData(void) +{ + int iLen = 0; + + + iLen = sprintf(g_pTmpBuff, "TestItem, %d, ", m_iTestDataCount); + memcpy(g_pStoreMsgArea+g_lenStoreMsgArea, g_pTmpBuff, iLen); + g_lenStoreMsgArea += iLen; + + + memcpy(g_pStoreMsgArea+g_lenStoreMsgArea, g_pMsgAreaLine2, g_lenMsgAreaLine2); + g_lenStoreMsgArea += g_lenMsgAreaLine2; + + + iLen = sprintf(g_pTmpBuff, "\n\n\n\n\n\n\n\n\n"); + memcpy(g_pStoreMsgArea+g_lenStoreMsgArea, g_pTmpBuff, iLen); + g_lenStoreMsgArea += iLen; + + + memcpy(g_pStoreAllData, g_pStoreMsgArea, g_lenStoreMsgArea); + + + if (0 != g_lenStoreDataArea) { + memcpy(g_pStoreAllData+g_lenStoreMsgArea, g_pStoreDataArea, g_lenStoreDataArea); + } + + FTS_TEST_DBG("lenStoreMsgArea=%d, lenStoreDataArea = %d", g_lenStoreMsgArea, g_lenStoreDataArea); +} + + + +/************************************************************************ +* Name: AllocateMemory +* Brief: Allocate pointer Memory +* Input: none +* Output: none +* Return: none +***********************************************************************/ +int AllocateMemory(void) +{ + + g_pStoreMsgArea = NULL; + if (NULL == g_pStoreMsgArea) + g_pStoreMsgArea = fts_malloc(BUFF_LEN_STORE_MSG_AREA); + if (NULL == g_pStoreMsgArea) + goto ERR; + + g_pMsgAreaLine2 = NULL; + if (NULL == g_pMsgAreaLine2) + g_pMsgAreaLine2 = fts_malloc(BUFF_LEN_MSG_AREA_LINE2); + if (NULL == g_pMsgAreaLine2) + goto ERR; + + g_pStoreDataArea = NULL; + if (NULL == g_pStoreDataArea) + g_pStoreDataArea = fts_malloc(BUFF_LEN_STORE_DATA_AREA); + if (NULL == g_pStoreDataArea) + goto ERR; + + g_pTmpBuff = NULL; + if (NULL == g_pTmpBuff) + g_pTmpBuff = fts_malloc(BUFF_LEN_TMP_BUFFER); + if (NULL == g_pTmpBuff) + goto ERR; + + TestResult = NULL; + if (NULL == TestResult) + TestResult = fts_malloc(BUFF_LEN_TMP_BUFFER); + if (NULL == TestResult) + goto ERR; + + return 0; + +ERR: + FTS_TEST_ERROR("fts_malloc memory failed in function."); + return -EPERM; + +} + +/************************************************************************ +* Name: FreeMemory +* Brief: Release pointer memory +* Input: none +* Output: none +* Return: none +***********************************************************************/ +void FreeMemory(void) +{ + + if (NULL != g_pStoreMsgArea) + fts_free(g_pStoreMsgArea); + + if (NULL != g_pMsgAreaLine2) + fts_free(g_pMsgAreaLine2); + + if (NULL != g_pStoreDataArea) + fts_free(g_pStoreDataArea); + + if (NULL != g_pTmpBuff) + fts_free(g_pTmpBuff); +} diff --git a/drivers/input/touchscreen/FT8716/focaltech_test/src/focaltech_test_ini.c b/drivers/input/touchscreen/FT8716/focaltech_test/src/focaltech_test_ini.c new file mode 100755 index 0000000000000..9641490fc8e90 --- /dev/null +++ b/drivers/input/touchscreen/FT8716/focaltech_test/src/focaltech_test_ini.c @@ -0,0 +1,433 @@ +/************************************************************************ +* Copyright (C) 2012-2017, Focaltech Systems (R)£¬All Rights Reserved. +* Copyright (C) 2018 XiaoMi, Inc. +* +* File Name: focaltech_test_ini.c +* +* Author: Software Development Team, AE +* +* Created: 2016-08-01 +* +* Abstract: parsing function of INI file +* +************************************************************************/ +#include +#include +#include +#include + +#include "../include/focaltech_test_ini.h" +#include "../include/focaltech_test_main.h" + + +char CFG_SSL = '['; /* Section Symbol --Can be defined according to the special need to change. For example {} */ +char CFG_SSR = ']'; /* Section Symbol --Can be defined according to the special need to change. For example {} */ +char CFG_NIS = ':'; /* Separator between name and index */ +char CFG_NTS = '#'; /* annotator */ +char CFG_EQS = '='; /* The equal sign */ + + +ST_INI_FILE_DATA *g_st_ini_file_data = NULL; +int g_used_key_num = 0; + + +static int ini_file_get_line(char *filedata, char *buffer, int maxlen); +static long fts_atol(char *nptr); + + +/* Works only for digits and letters, but small and fast */ +#define TOLOWER(x) ((x) | 0x20) + +int fts_strncmp(const char *cs, const char *ct, size_t count) +{ + unsigned char c1 = 0, c2 = 0; + + while (count) { + c1 = TOLOWER(*cs++); + c2 = TOLOWER(*ct++); + if (c1 != c2) + return c1 < c2 ? -1 : 1; + if (!c1) + break; + count--; + } + return 0; +} + +/************************************************************* +Function: Get the value of key +Input: char * filedata; char * section; char * key +Output: char * value¡¡key +Return: 0 SUCCESS + -1 can not find section + -2 can not find key + -10 File open failed + -12 File read failed + -14 File format error + -22 Out of buffer size +Note: +*************************************************************/ +int ini_get_key(char *filedata, char *section, char *key, char *value) +{ + int i = 0; + int ret = -2; + for (i = 0; i < g_used_key_num; i++) { + if (fts_strncmp(section, g_st_ini_file_data[i].pSectionName, + g_st_ini_file_data[i].iSectionNameLen) != 0) + continue; + + if (strlen(key) == g_st_ini_file_data[i].iKeyNameLen) { + if (fts_strncmp(key, g_st_ini_file_data[i].pKeyName, g_st_ini_file_data[i].iKeyNameLen) == 0) + + { + memcpy(value, g_st_ini_file_data[i].pKeyValue, g_st_ini_file_data[i].iKeyValueLen); + ret = 0; + break; + } + } + } + + return ret; +} + +/************************************************************* +Function: Remove empty character on the right side of the string +Input: char * buf --String pointer +Output: +Return: String pointer +Note: +*************************************************************/ +char *ini_str_trim_r(char *buf) +{ + int len, i; + char tmp[512]; + + memset(tmp, 0, sizeof(tmp)); + len = strlen(buf); + + + memset(tmp, 0x00, len); + for (i = 0; i < len; i++) { + if (buf[i] != ' ') + break; + } + if (i < len) { + strncpy(tmp, (buf+i), (len-i)); + } + strncpy(buf, tmp, len); + + return buf; +} + +/************************************************************* +Function: Remove empty character on the left side of the string +Input: char * buf --String pointer +Output: +Return: String pointer +Note: +*************************************************************/ +char *ini_str_trim_l(char *buf) +{ + int len, i; + char tmp[512]; + + memset(tmp, 0, sizeof(tmp)); + len = strlen(buf); + + + memset(tmp, 0x00, len); + + for (i = 0; i < len; i++) { + if (buf[len-i-1] != ' ') + break; + } + if (i < len) { + strncpy(tmp, buf, len-i); + } + strncpy(buf, tmp, len); + + return buf; +} + +/************************************************************* +Function: Read a line from file +Input: FILE *fp; int maxlen-- Maximum length of buffer +Output: char *buffer -- A string +Return: >0 Actual read length + -1 End of file + -2 Error reading file +Note: +*************************************************************/ +static int ini_file_get_line(char *filedata, char *buffer, int maxlen) +{ + int i = 0; + int j = 0; + int iRetNum = -1; + char ch1 = '\0'; + + for (i = 0, j = 0; i < maxlen; j++) { + ch1 = filedata[j]; + iRetNum = j+1; + if (ch1 == '\n' || ch1 == '\r') { + ch1 = filedata[j+1]; + if (ch1 == '\n' || ch1 == '\r') { + iRetNum++; + } + + break; + } else if (ch1 == 0x00) { + iRetNum = -1; + break; + } else { + buffer[i++] = ch1; /* ignore carriage return */ + } + } + buffer[i] = '\0'; + + return iRetNum; +} + +int my_fts_atoi(const char *str) +{ + int result = 0; + int signal = 1; /* The default is positive number*/ + if ((*str >= '0' && *str <= '9') || *str == '-' || *str == '+') { + if (*str == '-' || *str == '+') { + if (*str == '-') + signal = -1; /*enter negative number*/ + str++; + } + } else + return 0; + /*start transform*/ + while (*str >= '0' && *str <= '9') + result = result*10 + (*str++ - '0'); + + return signal*result; +} + +int isspace(int x) +{ + if (x == ' ' || x == '\t' || x == '\n' || x == '\f' || x == '\b' || x == '\r') + return 1; + else + return 0; +} + +int isdigit(int x) +{ + if (x <= '9' && x >= '0') + return 1; + else + return 0; + +} + +static long fts_atol(char *nptr) +{ + int c; /* current char */ + long total; /* current total */ + int sign; /* if ''-'', then negative, otherwise positive */ + /* skip whitespace */ + while (isspace((int)(unsigned char)*nptr)) + ++nptr; + c = (int)(unsigned char)*nptr++; + sign = c; /* save sign indication */ + if (c == '-' || c == '+') + c = (int)(unsigned char)*nptr++; /* skip sign */ + total = 0; + while (isdigit(c)) { + total = 10 * total + (c - '0'); /* accumulate digit */ + c = (int)(unsigned char)*nptr++; /* get next char */ + } + if (sign == '-') + return -total; + else + return total; /* return result, negated if necessary */ +} + +int fts_atoi(char *nptr) +{ + return (int)fts_atol(nptr); +} + +int init_key_data(void) +{ + int i = 0; + + FTS_TEST_FUNC_ENTER(); + + g_used_key_num = 0; + + g_st_ini_file_data = NULL; + if (NULL == g_st_ini_file_data) + g_st_ini_file_data = fts_malloc(sizeof(ST_INI_FILE_DATA)*MAX_KEY_NUM); + if (NULL == g_st_ini_file_data) { + FTS_TEST_ERROR("fts_malloc failed in function."); + return -EPERM; + } + for (i = 0; i < MAX_KEY_NUM; i++) { + memset(g_st_ini_file_data[i].pSectionName, 0, MAX_KEY_NAME_LEN); + memset(g_st_ini_file_data[i].pKeyName, 0, MAX_KEY_NAME_LEN); + memset(g_st_ini_file_data[i].pKeyValue, 0, MAX_KEY_VALUE_LEN); + g_st_ini_file_data[i].iSectionNameLen = 0; + g_st_ini_file_data[i].iKeyNameLen = 0; + g_st_ini_file_data[i].iKeyValueLen = 0; + } + + FTS_TEST_FUNC_EXIT(); + return 1; +} + +int release_key_data(void) +{ + if (NULL != g_st_ini_file_data) + fts_free(g_st_ini_file_data); + + return 0; +} +int print_key_data(void) +{ + int i = 0; + + + + FTS_TEST_DBG("g_used_key_num = %d", g_used_key_num); + for (i = 0; i < MAX_KEY_NUM; i++) { + + FTS_TEST_DBG("pSectionName_%d:%s, pKeyName_%d:%s\n,pKeyValue_%d:%s", + i, g_st_ini_file_data[i].pSectionName, + i, g_st_ini_file_data[i].pKeyName, + i, g_st_ini_file_data[i].pKeyValue + ); + + } + + return 1; +} +/************************************************************* +Function: Read all the parameters and values to the structure. +Return: Returns the number of key. If you go wrong, return a negative number. + -10 File open failed + -12 File read failed + -14 File format error +Note: +*************************************************************/ +int ini_get_key_data(char *filedata) +{ + + char buf1[MAX_CFG_BUF + 1] = {0}; + int n = 0; + int ret = 0; + int dataoff = 0; + int iEqualSign = 0; + int i = 0; + char tmpSectionName[MAX_CFG_BUF + 1] = {0}; + + + + FTS_TEST_FUNC_ENTER(); + + ret = init_key_data();/*init*/ + if (ret < 0) { + return -EPERM; + } + + g_used_key_num = 0; + while (1) { /*find section */ + ret = CFG_ERR_READ_FILE; + n = ini_file_get_line(filedata+dataoff, buf1, MAX_CFG_BUF); + + if (n < -1) + goto cfg_scts_end; + if (n < 0) + break;/* file end */ + if (n >= MAX_CFG_BUF) { + FTS_TEST_ERROR("Error Length:%d\n", n); + goto cfg_scts_end; + } + + dataoff += n; + + n = strlen(ini_str_trim_l(ini_str_trim_r(buf1))); + if (n == 0 || buf1[0] == CFG_NTS) + continue; /* A blank line or a comment line */ + ret = CFG_ERR_FILE_FORMAT; + + if (n > 2 && ((buf1[0] == CFG_SSL && buf1[n-1] != CFG_SSR))) { + FTS_TEST_ERROR("Bad Section:%s\n", buf1); + goto cfg_scts_end; + } + + + if (buf1[0] == CFG_SSL) { + g_st_ini_file_data[g_used_key_num].iSectionNameLen = n-2; + if (MAX_KEY_NAME_LEN < g_st_ini_file_data[g_used_key_num].iSectionNameLen) { + ret = CFG_ERR_OUT_OF_LEN; + FTS_TEST_ERROR("MAX_KEY_NAME_LEN: CFG_ERR_OUT_OF_LEN\n"); + goto cfg_scts_end; + } + + buf1[n-1] = 0x00; + strcpy((char *)tmpSectionName, buf1+1); + + + continue; + } + + + strcpy(g_st_ini_file_data[g_used_key_num].pSectionName, tmpSectionName); + g_st_ini_file_data[g_used_key_num].iSectionNameLen = strlen(tmpSectionName); + + iEqualSign = 0; + for (i = 0; i < n; i++) { + if (buf1[i] == CFG_EQS) { + iEqualSign = i; + break; + } + } + if (0 == iEqualSign) + continue; + /* before equal sign is assigned to the key name*/ + g_st_ini_file_data[g_used_key_num].iKeyNameLen = iEqualSign; + if (MAX_KEY_NAME_LEN < g_st_ini_file_data[g_used_key_num].iKeyNameLen) { + ret = CFG_ERR_OUT_OF_LEN; + FTS_TEST_ERROR("MAX_KEY_NAME_LEN: CFG_ERR_OUT_OF_LEN\n"); + goto cfg_scts_end; + } + memcpy(g_st_ini_file_data[g_used_key_num].pKeyName, + buf1, g_st_ini_file_data[g_used_key_num].iKeyNameLen); + + /* After equal sign is assigned to the key value*/ + g_st_ini_file_data[g_used_key_num].iKeyValueLen = n-iEqualSign-1; + if (MAX_KEY_VALUE_LEN < g_st_ini_file_data[g_used_key_num].iKeyValueLen) { + ret = CFG_ERR_OUT_OF_LEN; + FTS_TEST_ERROR("MAX_KEY_VALUE_LEN: CFG_ERR_OUT_OF_LEN\n"); + goto cfg_scts_end; + } + memcpy(g_st_ini_file_data[g_used_key_num].pKeyValue, + buf1 + iEqualSign + 1, g_st_ini_file_data[g_used_key_num].iKeyValueLen); + + + ret = g_used_key_num; + + g_used_key_num++; /*Parameter number accumulation*/ + if (MAX_KEY_NUM < g_used_key_num) { + ret = CFG_ERR_TOO_MANY_KEY_NUM; + FTS_TEST_ERROR("MAX_KEY_NUM: CFG_ERR_TOO_MANY_KEY_NUM\n"); + goto cfg_scts_end; + } + } + + + + FTS_TEST_FUNC_EXIT(); + + return 0; + +cfg_scts_end: + + FTS_TEST_FUNC_EXIT(); + return ret; +} + diff --git a/drivers/input/touchscreen/FT8716/focaltech_test/src/focaltech_test_main.c b/drivers/input/touchscreen/FT8716/focaltech_test/src/focaltech_test_main.c new file mode 100755 index 0000000000000..0342249e508ae --- /dev/null +++ b/drivers/input/touchscreen/FT8716/focaltech_test/src/focaltech_test_main.c @@ -0,0 +1,252 @@ +/************************************************************************ +* Copyright (C) 2010-2017, Focaltech Systems (R)£¬All Rights Reserved. +* Copyright (C) 2018 XiaoMi, Inc. +* +* File Name: focaltech_test_main.c +* +* Author: Software Development Team, AE +* +* Created: 2016-08-01 +* +* Abstract: test entry for all IC +* +************************************************************************/ +#include +#include +#include +#include + +#include "../../focaltech_core.h" +#include "../include/focaltech_test_main.h" +#include "../focaltech_test_config.h" +#include "../include/focaltech_test_supported_ic.h" +#include "../include/focaltech_test_ini.h" +#include "../include/focaltech_ic_table.h" + + +#define FTS_TEST_STORE_DATA_SIZE 80*1024 + + + +FTS_I2C_READ_FUNCTION fts_i2c_read_test; +FTS_I2C_WRITE_FUNCTION fts_i2c_write_test; + +char *g_testparamstring = NULL; + +struct StTestFuncs g_stTestFuncs; + + +int init_i2c_read_func(FTS_I2C_READ_FUNCTION fpI2C_Read) +{ + unsigned char value = 0; + unsigned char recode = 0; + + FTS_TEST_FUNC_ENTER(); + + fts_i2c_read_test = fpI2C_Read; + if (NULL == fts_i2c_read_test) { + FTS_TEST_DBG("[focal] %s fts_i2c_read_test == NULL ", __func__); + } + + + recode = ReadReg(0xa6, &value); + if (recode != ERROR_CODE_OK) { + FTS_TEST_ERROR("[focal] ReadReg Error, code: %d ", recode); + } else { + FTS_TEST_DBG("[focal] ReadReg successed, Addr: 0xa6, value: 0x%02x ", value); + } + + + FTS_TEST_FUNC_EXIT(); + return 0; +} + +int init_i2c_write_func(FTS_I2C_WRITE_FUNCTION fpI2C_Write) +{ + FTS_TEST_FUNC_ENTER(); + + fts_i2c_write_test = fpI2C_Write; + if (NULL == fts_i2c_write_test) { + FTS_TEST_ERROR("[focal] fts_i2c_read_test == NULL "); + } + + FTS_TEST_FUNC_EXIT(); + return 0; +} + + + +/************************************************************************ +* Name: set_param_data +* Brief: load Config. Set IC series, init test items, init basic threshold, int detailThreshold, and set order of test items +* Input: TestParamData, from ini file. +* Output: none +* Return: 0. No sense, just according to the old format. +***********************************************************************/ +int set_param_data(char *TestParamData) +{ + int ret = 0; + + FTS_TEST_FUNC_ENTER(); + g_testparamstring = TestParamData; + ret = ini_get_key_data(g_testparamstring); + if (ret < 0) { + FTS_TEST_ERROR("ini_get_key_data error."); + return ret; + } + + + + OnInit_InterfaceCfg(g_testparamstring); + + /*Get IC Name*/ + fts_ic_table_get_ic_name_from_ic_code(g_ScreenSetParam.iSelectedIC, g_strIcName); + + + + if (g_stTestFuncs.OnInit_TestItem) { + g_stTestFuncs.OnInit_TestItem(g_testparamstring); + + } + + if (g_stTestFuncs.OnInit_BasicThreshold) { + g_stTestFuncs.OnInit_BasicThreshold(g_testparamstring); + + + } + + if (IC_Capacitance_Type == Self_Capacitance) { + OnInit_SCap_DetailThreshold(g_testparamstring); + } else if (IC_Capacitance_Type == Mutual_Capacitance) { + OnInit_MCap_DetailThreshold(g_testparamstring); + } else if (IC_Capacitance_Type == IDC_Capacitance) { + OnInit_Incell_DetailThreshold(g_testparamstring); + } + + if (g_stTestFuncs.SetTestItem) { + + g_stTestFuncs.SetTestItem(); + + } + + FTS_TEST_FUNC_EXIT(); + return 0; +} + +/************************************************************************ +* Name: start_test_tp +* Brief: Test entry. Select test items based on IC series +* Input: none +* Output: none +* Return: Test Result, PASS or FAIL +***********************************************************************/ + +boolean start_test_tp(void) +{ + boolean bTestResult = false; + + FTS_TEST_FUNC_ENTER(); + FTS_TEST_DBG("IC_%s Test", g_strIcName); + + if (g_stTestFuncs.Start_Test) { + + bTestResult = g_stTestFuncs.Start_Test(); + + } else { + FTS_TEST_DBG("[Focal]Start_Test func null!\n"); + bTestResult = false; + } + + EnterWork(); + + FTS_TEST_FUNC_EXIT(); + + return bTestResult; +} +/************************************************************************ +* Name: get_test_data +* Brief: Get test data based on IC series +* Input: none +* Output: pTestData, External application for memory, buff size >= 1024*8 +* Return: the length of test data. if length > 0, got data;else ERR. +***********************************************************************/ +int get_test_data(char *pTestData) +{ + int iLen = 0; + FTS_TEST_DBG("[focal] %s start ", __func__); + + + if (g_stTestFuncs.Get_test_data) { + + iLen = g_stTestFuncs.Get_test_data(pTestData); + + } else { + FTS_TEST_DBG("[Focal]Get_test_data func null!\n"); + } + + FTS_TEST_FUNC_EXIT(); + return iLen; +} + +int focaltech_test_main_init(void) +{ + int ret = 0; + + FTS_TEST_FUNC_ENTER(); + + /*Allocate memory, storage test results*/ + g_pStoreAllData = NULL; + if (NULL == g_pStoreAllData) + g_pStoreAllData = fts_malloc(FTS_TEST_STORE_DATA_SIZE); + if (NULL == g_pStoreAllData) + return -EPERM; + + /* Allocate memory, assigned to detail threshold structure*/ + ret = malloc_struct_DetailThreshold(); + + FTS_TEST_FUNC_EXIT(); + + if (ret < 0) + return ret; + + return 0; +} +/************************************************************************ +* Name: free_test_param_data +* Brief: release printer memory +* Input: none +* Output: none +* Return: none. +***********************************************************************/ +int focaltech_test_main_exit(void) +{ + + FTS_TEST_DBG("[focal] release memory -start."); + + TestResultLen = 0; + + /* Release memory test results */ + if (NULL != g_pStoreAllData) { + FTS_TEST_DBG("[FTS] release memory g_pStoreAllData."); + fts_free(g_pStoreAllData); + g_pStoreAllData = NULL; + } + + + if (NULL != TestResult) { + FTS_TEST_DBG(" release memory TestResult."); + fts_free(TestResult); + TestResult = NULL; + } + + + /* Releasing the memory of the detailed threshold structure */ + FTS_TEST_DBG("[FTS] release memory free_struct_DetailThreshold."); + free_struct_DetailThreshold(); + + /* release memory of key data for ini file */ + release_key_data(); + FTS_TEST_DBG("[focal] release memory -end."); + return 0; +} + diff --git a/drivers/input/touchscreen/FT8716/focaltech_test/supported_ic/Makefile b/drivers/input/touchscreen/FT8716/focaltech_test/supported_ic/Makefile new file mode 100755 index 0000000000000..424ad8511446a --- /dev/null +++ b/drivers/input/touchscreen/FT8716/focaltech_test/supported_ic/Makefile @@ -0,0 +1,9 @@ +#drivers/input/touchscreen/focaltech_ts/focaltech_test +# +# Makefile for test module +# +# Linux driver folder +obj-$(CONFIG_TOUCHSCREEN_FTS) += focaltech_test_ft8716.o +obj-$(CONFIG_TOUCHSCREEN_FTS) += focaltech_test_config_ft8716.o +obj-$(CONFIG_TOUCHSCREEN_FTS) += focaltech_test_supported_ic.o + diff --git a/drivers/input/touchscreen/FT8716/focaltech_test/supported_ic/focaltech_test_config_ft8716.c b/drivers/input/touchscreen/FT8716/focaltech_test/supported_ic/focaltech_test_config_ft8716.c new file mode 100755 index 0000000000000..7af2ebcc095ee --- /dev/null +++ b/drivers/input/touchscreen/FT8716/focaltech_test/supported_ic/focaltech_test_config_ft8716.c @@ -0,0 +1,360 @@ +/************************************************************************ +* Copyright (C) 2012-2017, Focaltech Systems (R)£¬All Rights Reserved. + * Copyright (C) 2018 XiaoMi, Inc. +* +* File Name: Focaltech_test_config_ft8716.c +* +* Author: Software Development Team, AE +* +* Created: 2016-08-01 +* +* Abstract: Set Config for FT8716 +* +************************************************************************/ +#include +#include + +#include "../include/focaltech_test_ini.h" +#include "../include/focaltech_test_supported_ic.h" +#include "../focaltech_test_config.h" + +#if (FTS_CHIP_TEST_TYPE == FT8716_TEST) + + +struct stCfg_FT8716_TestItem g_stCfg_FT8716_TestItem; +struct stCfg_FT8716_BasicThreshold g_stCfg_FT8716_BasicThreshold; + +void OnInit_FT8716_TestItem(char *strIniFile) +{ + char str[512]; + + FTS_TEST_FUNC_ENTER(); + + + + GetPrivateProfileString("TestItem", "FW_VERSION_TEST", "0", str, strIniFile); + g_stCfg_FT8716_TestItem.FW_VERSION_TEST = fts_atoi(str); + + + GetPrivateProfileString("TestItem", "FACTORY_ID_TEST", "0", str, strIniFile); + g_stCfg_FT8716_TestItem.FACTORY_ID_TEST = fts_atoi(str); + + + GetPrivateProfileString("TestItem", "PROJECT_CODE_TEST", "0", str, strIniFile); + g_stCfg_FT8716_TestItem.PROJECT_CODE_TEST = fts_atoi(str); + + + GetPrivateProfileString("TestItem", "IC_VERSION_TEST", "0", str, strIniFile); + g_stCfg_FT8716_TestItem.IC_VERSION_TEST = fts_atoi(str); + + + GetPrivateProfileString("TestItem", "RAWDATA_TEST", "1", str, strIniFile); + g_stCfg_FT8716_TestItem.RAWDATA_TEST = fts_atoi(str); + + + GetPrivateProfileString("TestItem", "CHANNEL_NUM_TEST", "1", str, strIniFile); + g_stCfg_FT8716_TestItem.CHANNEL_NUM_TEST = fts_atoi(str); + + + GetPrivateProfileString("TestItem", "INT_PIN_TEST", "0", str, strIniFile); + g_stCfg_FT8716_TestItem.INT_PIN_TEST = fts_atoi(str); + + + GetPrivateProfileString("TestItem", "RESET_PIN_TEST", "0", str, strIniFile); + g_stCfg_FT8716_TestItem.RESET_PIN_TEST = fts_atoi(str); + + + GetPrivateProfileString("TestItem", "NOISE_TEST", "0", str, strIniFile); + g_stCfg_FT8716_TestItem.NOISE_TEST = fts_atoi(str); + + + GetPrivateProfileString("TestItem", "CB_TEST", "1", str, strIniFile); + g_stCfg_FT8716_TestItem.CB_TEST = fts_atoi(str); + + + GetPrivateProfileString("TestItem", "SHORT_CIRCUIT_TEST", "1", str, strIniFile); + g_stCfg_FT8716_TestItem.SHORT_CIRCUIT_TEST = fts_atoi(str); + + + GetPrivateProfileString("TestItem", "OPEN_TEST", "0", str, strIniFile); + g_stCfg_FT8716_TestItem.OPEN_TEST = fts_atoi(str); + + + GetPrivateProfileString("TestItem", "CB_UNIFORMITY_TEST", "1", str, strIniFile); + g_stCfg_FT8716_TestItem.CB_UNIFORMITY_TEST = fts_atoi(str); + + + GetPrivateProfileString("TestItem", "DIFFER_UNIFORMITY_TEST", "1", str, strIniFile); + g_stCfg_FT8716_TestItem.DIFFER_UNIFORMITY_TEST = fts_atoi(str); + + + GetPrivateProfileString("TestItem", "DIFFER2_UNIFORMITY_TEST", "0", str, strIniFile); + g_stCfg_FT8716_TestItem.DIFFER2_UNIFORMITY_TEST = fts_atoi(str); + + + GetPrivateProfileString("TestItem", "LCD_NOISE_TEST", "0", str, strIniFile); + g_stCfg_FT8716_TestItem.LCD_NOISE_TEST = fts_atoi(str); + + FTS_TEST_FUNC_EXIT(); +} + +void OnInit_FT8716_BasicThreshold(char *strIniFile) +{ + char str[512]; + + FTS_TEST_FUNC_ENTER(); + + + + GetPrivateProfileString("Basic_Threshold", "FW_VER_VALUE", "0", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.FW_VER_VALUE = fts_atoi(str); + + + GetPrivateProfileString("Basic_Threshold", "Factory_ID_Number", "255", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.Factory_ID_Number = fts_atoi(str); + + + GetPrivateProfileString("Basic_Threshold", "Project_Code", " ", str, strIniFile); + + sprintf(g_stCfg_FT8716_BasicThreshold.Project_Code, "%s", str); + + + GetPrivateProfileString("Basic_Threshold", "IC_Version", "3", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.IC_Version = fts_atoi(str); + + + GetPrivateProfileString("Basic_Threshold", "RawDataTest_VA_Check", "1", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.bRawDataTest_VA_Check = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "RawDataTest_Min", "5000", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.RawDataTest_Min = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "RawDataTest_Max", "11000", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.RawDataTest_Max = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "RawDataTest_VKey_Check", "1", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.bRawDataTest_VKey_Check = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "RawDataTest_Min_VKey", "5000", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.RawDataTest_Min_VKey = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "RawDataTest_Max_VKey", "11000", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.RawDataTest_Max_VKey = fts_atoi(str); + + + GetPrivateProfileString("Basic_Threshold", "ChannelNumTest_ChannelX", "15", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.ChannelNumTest_ChannelXNum = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "ChannelNumTest_ChannelY", "24", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.ChannelNumTest_ChannelYNum = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "ChannelNumTest_KeyNum", "0", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.ChannelNumTest_KeyNum = fts_atoi(str); + + + GetPrivateProfileString("Basic_Threshold", "ResetPinTest_RegAddr", "136", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.ResetPinTest_RegAddr = fts_atoi(str); + + + GetPrivateProfileString("Basic_Threshold", "IntPinTest_RegAddr", "175", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.IntPinTest_RegAddr = fts_atoi(str); + + + GetPrivateProfileString("Basic_Threshold", "NoiseTest_Coefficient", "50", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.NoiseTest_Coefficient = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "NoiseTest_Frames", "32", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.NoiseTest_Frames = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "NoiseTest_Time", "1", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.NoiseTest_Time = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "NoiseTest_SampeMode", "0", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.NoiseTest_SampeMode = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "NoiseTest_NoiseMode", "0", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.NoiseTest_NoiseMode = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "NoiseTest_NoiseMode", "0", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.NoiseTest_NoiseMode = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "NoiseTest_ShowTip", "0", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.NoiseTest_ShowTip = fts_atoi(str); + + + GetPrivateProfileString("Basic_Threshold", "CBTest_VA_Check", "1", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.bCBTest_VA_Check = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "CBTest_Min", "3", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.CbTest_Min = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "CBTest_Max", "100", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.CbTest_Max = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "CBTest_VKey_Check", "1", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.bCBTest_VKey_Check = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "CBTest_Min_Vkey", "3", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.CbTest_Min_Vkey = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "CBTest_Max_Vkey", "100", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.CbTest_Max_Vkey = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "CBTest_VKey_Double_Check", "0", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.bCBTest_VKey_DCheck_Check = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "CBTest_Min_DCheck_Vkey", "140", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.CbTest_Min_DCheck_Vkey = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "CBTest_Max_DCheck_Vkey", "180", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.CbTest_Max_DCheck_Vkey = fts_atoi(str); + + + GetPrivateProfileString("Basic_Threshold", "ShortCircuit_ResMin", "1200", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.ShortCircuit_ResMin = fts_atoi(str); + /*GetPrivateProfileString("Basic_Threshold","ShortCircuit_K2Value","150",str,strIniFile); + g_stCfg_FT8716_BasicThreshold.ShortTest_K2Value = fts_atoi(str);*/ + + + GetPrivateProfileString("Basic_Threshold", "OpenTest_CBMin", "100", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.OpenTest_CBMin = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "OpenTest_Check_K1", "0", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.OpenTest_Check_K1 = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "OpenTest_K1Threshold", "30", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.OpenTest_K1Threshold = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "OpenTest_Check_K2", "0", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.OpenTest_Check_K2 = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "OpenTest_K2Threshold", "5", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.OpenTest_K2Threshold = fts_atoi(str); + + + GetPrivateProfileString("Basic_Threshold", "CBUniformityTest_Check_CHX", "0", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.CBUniformityTest_Check_CHX = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "CBUniformityTest_Check_CHY", "0", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.CBUniformityTest_Check_CHY = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "CBUniformityTest_Check_MinMax", "0", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.CBUniformityTest_Check_MinMax = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "CBUniformityTest_CHX_Hole", "20", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.CBUniformityTest_CHX_Hole = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "CBUniformityTest_CHY_Hole", "20", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.CBUniformityTest_CHY_Hole = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "CBUniformityTest_MinMax_Hole", "70", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.CBUniformityTest_MinMax_Hole = fts_atoi(str); + + + GetPrivateProfileString("Basic_Threshold", "DifferUniformityTest_Delta_Vol", "1", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.DeltaVol = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "DifferUniformityTest_Check_CHX", "0", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.DifferUniformityTest_Check_CHX = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "DifferUniformityTest_Check_CHY", "0", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.DifferUniformityTest_Check_CHY = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "DifferUniformityTest_Check_MinMax", "0", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.DifferUniformityTest_Check_MinMax = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "DifferUniformityTest_CHX_Hole", "20", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.DifferUniformityTest_CHX_Hole = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "DifferUniformityTest_CHY_Hole", "20", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.DifferUniformityTest_CHY_Hole = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "DifferUniformityTest_MinMax_Hole", "70", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.DifferUniformityTest_MinMax_Hole = fts_atoi(str); + + + GetPrivateProfileString("Basic_Threshold", "Differ2UniformityTest_Check_CHX", "0", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.Differ2UniformityTest_Check_CHX = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "Differ2UniformityTest_Check_CHY", "0", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.Differ2UniformityTest_Check_CHY = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "Differ2UniformityTest_CHX_Hole", "20", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.Differ2UniformityTest_CHX_Hole = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "Differ2UniformityTest_CHY_Hole", "20", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.Differ2UniformityTest_CHY_Hole = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "Differ2UniformityTest_Differ_Min", "1000", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.Differ2UniformityTest_Differ_Min = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "Differ2UniformityTest_Differ_Max", "8000", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.Differ2UniformityTest_Differ_Max = fts_atoi(str); + + GetPrivateProfileString("Basic_Threshold", "LCDNoiseTest_FrameNum", "200", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.LCDNoiseTest_FrameNum = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "LCDNoiseTest_Coefficient", "60", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.LCDNoiseTest_Coefficient = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "LCDNoiseTest_Coefficient_Key", "60", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.LCDNoiseTest_Coefficient_Key = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "LCDNoiseTest_NoiseMode", "0", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.LCDNoiseTest_NoiseMode = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "LCDNoiseTest_SequenceFrame", "5", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.LCDNoiseTest_SequenceFrame = fts_atoi(str); + GetPrivateProfileString("Basic_Threshold", "LCDNoiseTest_MaxFrame", "6", str, strIniFile); + g_stCfg_FT8716_BasicThreshold.LCDNoiseTest_MaxFrame = fts_atoi(str); + + FTS_TEST_FUNC_EXIT(); + +} +void SetTestItem_FT8716(void) +{ + g_TestItemNum = 0; + + FTS_TEST_FUNC_ENTER(); + + + if (g_stCfg_FT8716_TestItem.FACTORY_ID_TEST == 1) { + fts_SetTestItemCodeName(Code_FT8716_FACTORY_ID_TEST); + } + + + if (g_stCfg_FT8716_TestItem.PROJECT_CODE_TEST == 1) { + fts_SetTestItemCodeName(Code_FT8716_PROJECT_CODE_TEST); + } + + + if (g_stCfg_FT8716_TestItem.FW_VERSION_TEST == 1) { + fts_SetTestItemCodeName(Code_FT8716_FW_VERSION_TEST); + } + + + if (g_stCfg_FT8716_TestItem.IC_VERSION_TEST == 1) { + fts_SetTestItemCodeName(Code_FT8716_IC_VERSION_TEST); + } + + + fts_SetTestItemCodeName(Code_FT8716_ENTER_FACTORY_MODE); + + + if (g_stCfg_FT8716_TestItem.CHANNEL_NUM_TEST == 1) { + fts_SetTestItemCodeName(Code_FT8716_CHANNEL_NUM_TEST); + } + + + if (g_stCfg_FT8716_TestItem.CB_TEST == 1) { + fts_SetTestItemCodeName(Code_FT8716_CB_TEST); + } + + + if (g_stCfg_FT8716_TestItem.CB_UNIFORMITY_TEST == 1) { + fts_SetTestItemCodeName(Code_FT8716_CB_UNIFORMITY_TEST); + } + + + if (g_stCfg_FT8716_TestItem.RAWDATA_TEST == 1) { + fts_SetTestItemCodeName(Code_FT8716_RAWDATA_TEST); + } + + + if (g_stCfg_FT8716_TestItem.NOISE_TEST == 1) { + fts_SetTestItemCodeName(Code_FT8716_NOISE_TEST); + } + + + if (g_stCfg_FT8716_TestItem.LCD_NOISE_TEST == 1) { + fts_SetTestItemCodeName(Code_FT8716_LCD_NOISE_TEST); + } + + + + if (g_stCfg_FT8716_TestItem.DIFFER_UNIFORMITY_TEST == 1) { + fts_SetTestItemCodeName(Code_FT8716_DIFFER_UNIFORMITY_TEST); + } + + + + if (g_stCfg_FT8716_TestItem.OPEN_TEST == 1) { + fts_SetTestItemCodeName(Code_FT8716_OPEN_TEST); + } + + + if (g_stCfg_FT8716_TestItem.SHORT_CIRCUIT_TEST == 1) { + fts_SetTestItemCodeName(Code_FT8716_SHORT_CIRCUIT_TEST) ; + } + + + if (g_stCfg_FT8716_TestItem.DIFFER2_UNIFORMITY_TEST == 1) { + fts_SetTestItemCodeName(Code_FT8716_DIFFER2_UNIFORMITY_TEST); + } + + FTS_TEST_FUNC_EXIT(); + +} + +#endif + diff --git a/drivers/input/touchscreen/FT8716/focaltech_test/supported_ic/focaltech_test_ft8716.c b/drivers/input/touchscreen/FT8716/focaltech_test/supported_ic/focaltech_test_ft8716.c new file mode 100755 index 0000000000000..862e1892617ff --- /dev/null +++ b/drivers/input/touchscreen/FT8716/focaltech_test/supported_ic/focaltech_test_ft8716.c @@ -0,0 +1,1450 @@ +/************************************************************************ +* Copyright (C) 2012-2017, Focaltech Systems (R)£¬All Rights Reserved. +* Copyright (C) 2018 XiaoMi, Inc. +* +* File Name: focaltech_test_ft8716.c +* +* Author: Software Development +* +* Created: 2016-08-01 +* +* Abstract: test item for FT8716 +* +************************************************************************/ + +/***************************************************************************** +* Included header files +*****************************************************************************/ +#include +#include +#include + +#include "../include/focaltech_test_detail_threshold.h" +#include "../include/focaltech_test_supported_ic.h" +#include "../include/focaltech_test_main.h" +#include "../focaltech_test_config.h" + +/***************************************************************************** +* Private constant and macro definitions using #define +*****************************************************************************/ +#if (FTS_CHIP_TEST_TYPE == FT8716_TEST) + + + + + +#define DEVIDE_MODE_ADDR 0x00 +#define REG_LINE_NUM 0x01 +#define REG_TX_NUM 0x02 +#define REG_RX_NUM 0x03 +#define FT8716_LEFT_KEY_REG 0X1E +#define FT8716_RIGHT_KEY_REG 0X1F + +#define REG_CbAddrH 0x18 +#define REG_CbAddrL 0x19 +#define REG_OrderAddrH 0x1A +#define REG_OrderAddrL 0x1B + +#define REG_RawBuf0 0x6A +#define REG_RawBuf1 0x6B +#define REG_OrderBuf0 0x6C +#define REG_CbBuf0 0x6E + +#define REG_K1Delay 0x31 +#define REG_K2Delay 0x32 +#define REG_SCChannelCf 0x34 +#define REG_LCD_NOISE_FRAME 0X12 +#define REG_LCD_NOISE_START 0X11 +#define REG_LCD_NOISE_NUMBER 0X13 +#define REG_LCD_NOISE_DATA_READY 0X00 +#define REG_FWVERSION 0xA6 +#define REG_FACTORYID 0xA8 +#define REG_FWCNT 0x17 +#define pre 1 +#define REG_CLB 0x04 + + +/***************************************************************************** +* Private enumerations, structures and unions using typedef +*****************************************************************************/ + +enum NOISE_TYPE { + NT_AvgData = 0, + NT_MaxData = 1, + NT_MaxDevication = 2, + NT_DifferData = 3, +}; + +unsigned char localbitWise; +void SetKeyBitVal(unsigned char val) +{ + + localbitWise = val; + +} + +bool IsKeyAutoFit(void) +{ + return ((localbitWise & 0x0f) == 1); +} + + +/***************************************************************************** +* Static variables +*****************************************************************************/ + +static int m_RawData[TX_NUM_MAX][RX_NUM_MAX] = {{0, 0} } ; +static int m_CBData[TX_NUM_MAX][RX_NUM_MAX] = {{0, 0} } ; +static BYTE m_ucTempData[TX_NUM_MAX * RX_NUM_MAX*2] = {0}; +static int m_iTempRawData[TX_NUM_MAX * RX_NUM_MAX] = {0}; + + + +static int LCD_Noise[TX_NUM_MAX][RX_NUM_MAX] = {{0} } ; + + + + + + + +/***************************************************************************** +* Global variable or extern global variabls/functions +*****************************************************************************/ +extern struct stCfg_FT8716_BasicThreshold g_stCfg_FT8716_BasicThreshold; + +/***************************************************************************** +* Static function prototypes +*****************************************************************************/ + + +static int StartScan(void); +static unsigned char ReadRawData(unsigned char Freq, unsigned char LineNum, int ByteNum, int *pRevBuffer); +static unsigned char GetPanelRows(unsigned char *pPanelRows); +static unsigned char GetPanelCols(unsigned char *pPanelCols); +static unsigned char GetTxRxCB(unsigned short StartNodeNo, unsigned short ReadNum, unsigned char *pReadBuffer); +static unsigned char GetRawData(void); +static unsigned char GetChannelNum(void); +static void Save_Test_Data(int iData[TX_NUM_MAX][RX_NUM_MAX], int iArrayIndex, unsigned char Row, unsigned char Col, unsigned char ItemCount); +static unsigned char ChipClb(unsigned char *pClbResult); + + + + + +boolean FT8716_StartTest(void); +int FT8716_get_test_data(char *pTestData); + +unsigned char FT8716_TestItem_EnterFactoryMode(void); +unsigned char FT8716_TestItem_RawDataTest(bool *bTestResult); +unsigned char FT8716_TestItem_CbTest(bool *bTestResult); +unsigned char FT8716_TestItem_ChannelsTest(bool *bTestResult); +unsigned char FT8716_TestItem_LCDNoiseTest(bool *bTestResult); +unsigned char FT8716_CheckItem_FactoryIdTest(bool *bTestResult); + +/************************************************************************ +* Name: FT8716_StartTest +* Brief: Test entry. Determine which test item to test +* Input: none +* Output: none +* Return: Test Result, PASS or FAIL +***********************************************************************/ + +boolean FT8716_StartTest() +{ + bool bTestResult = true, bTempResult = 1; + unsigned char ReCode; + unsigned char ucDevice = 0; + int iItemCount = 0; + + + + if (InitTest() < 0) { + FTS_TEST_ERROR("[focal] Failed to init test."); + return false; + } + + + if (0 == g_TestItemNum) + bTestResult = false; + + + for (iItemCount = 0; iItemCount < g_TestItemNum; iItemCount++) { + m_ucTestItemCode = g_stTestItem[ucDevice][iItemCount].ItemCode; + + + if (Code_FT8716_ENTER_FACTORY_MODE == g_stTestItem[ucDevice][iItemCount].ItemCode + ) { + ReCode = FT8716_TestItem_EnterFactoryMode(); + if (ERROR_CODE_OK != ReCode || (!bTempResult)) { + bTestResult = false; + g_stTestItem[ucDevice][iItemCount].TestResult = RESULT_NG; + break; + } else + g_stTestItem[ucDevice][iItemCount].TestResult = RESULT_PASS; + } + + + if (Code_FT8716_RAWDATA_TEST == g_stTestItem[ucDevice][iItemCount].ItemCode + ) { + ReCode = FT8716_TestItem_RawDataTest(&bTempResult); + if (ERROR_CODE_OK != ReCode || (!bTempResult)) { + bTestResult = false; + g_stTestItem[ucDevice][iItemCount].TestResult = RESULT_NG; + } else + g_stTestItem[ucDevice][iItemCount].TestResult = RESULT_PASS; + } + + + if (Code_FT8716_CB_TEST == g_stTestItem[ucDevice][iItemCount].ItemCode + ) { + ReCode = FT8716_TestItem_CbTest(&bTempResult); + if (ERROR_CODE_OK != ReCode || (!bTempResult)) { + bTestResult = false; + g_stTestItem[ucDevice][iItemCount].TestResult = RESULT_NG; + } else + g_stTestItem[ucDevice][iItemCount].TestResult = RESULT_PASS; + } + + + if (Code_FT8716_CHANNEL_NUM_TEST == g_stTestItem[ucDevice][iItemCount].ItemCode) { + ReCode = FT8716_TestItem_ChannelsTest(&bTempResult); + if (ERROR_CODE_OK != ReCode || (!bTempResult)) { + bTestResult = false; + g_stTestItem[ucDevice][iItemCount].TestResult = RESULT_NG; + break; + } else + g_stTestItem[ucDevice][iItemCount].TestResult = RESULT_PASS; + + } + + + if (Code_FT8716_LCD_NOISE_TEST == g_stTestItem[ucDevice][iItemCount].ItemCode) { + ReCode = FT8716_TestItem_LCDNoiseTest(&bTempResult); + if (ERROR_CODE_OK != ReCode || (!bTempResult)) { + bTestResult = false; + g_stTestItem[ucDevice][iItemCount].TestResult = RESULT_NG; + } else + g_stTestItem[ucDevice][iItemCount].TestResult = RESULT_PASS; + } + + + if (Code_FT8716_FACTORY_ID_TEST == g_stTestItem[ucDevice][iItemCount].ItemCode) { + ReCode = FT8716_CheckItem_FactoryIdTest(&bTempResult); + if (ERROR_CODE_OK != ReCode || (!bTempResult)) { + bTestResult = false; + g_stTestItem[ucDevice][iItemCount].TestResult = RESULT_NG; + } else + g_stTestItem[ucDevice][iItemCount].TestResult = RESULT_PASS; + } + + + } + + + FinishTest(); + + + return bTestResult; + +} + +/************************************************************************ +* Name: FT8716_TestItem_EnterFactoryMode +* Brief: Check whether TP can enter Factory Mode, and do some thing +* Input: none +* Output: none +* Return: Comm Code. Code = 0x00 is OK, else fail. +***********************************************************************/ +unsigned char FT8716_TestItem_EnterFactoryMode(void) +{ + + unsigned char ReCode = ERROR_CODE_INVALID_PARAM; + int iRedo = 5; + int i ; + unsigned char keyFit = 0; + SysDelay(150); + FTS_TEST_DBG("Enter factory mode..."); + for (i = 1; i <= iRedo; i++) { + ReCode = EnterFactory(); + if (ERROR_CODE_OK != ReCode) { + FTS_TEST_ERROR("Failed to Enter factory mode..."); + if (i < iRedo) { + SysDelay(50); + continue; + } + } else { + FTS_TEST_DBG(" success to Enter factory mode..."); + break; + } + + } + SysDelay(300); + + if (ReCode == ERROR_CODE_OK) { + ReCode = GetChannelNum(); + + ReCode = ReadReg(0xFC, &keyFit); + SetKeyBitVal(keyFit); + } + return ReCode; +} + +/************************************************************************ +* Name: FT8716_TestItem_RawDataTest +* Brief: TestItem: RawDataTest. Check if MCAP RawData is within the range. +* Input: bTestResult +* Output: bTestResult, PASS or FAIL +* Return: Comm Code. Code = 0x00 is OK, else fail. +***********************************************************************/ +unsigned char FT8716_TestItem_RawDataTest(bool *bTestResult) +{ + unsigned char ReCode; + bool btmpresult = true; + int RawDataMin; + int RawDataMax; + int iValue = 0; + int i = 0; + int iRow, iCol; + bool bIncludeKey = false; + + + + FTS_TEST_INFO("\n\n==============================Test Item: -------- Raw Data Test\n"); + + bIncludeKey = g_stCfg_FT8716_BasicThreshold.bRawDataTest_VKey_Check; + + + for (i = 0 ; i < 3; i++) { + ReCode = WriteReg(0x06, 0x00); + SysDelay(10); + ReCode = GetRawData(); + } + + if (ERROR_CODE_OK != ReCode) { + FTS_TEST_ERROR("Failed to get Raw Data!! Error Code: %d", ReCode); + return ReCode; + } + + + + FTS_TEST_DBG("\nVA Channels: "); + for (iRow = 0; iRow < g_stSCapConfEx.ChannelXNum; iRow++) { + FTS_TEST_DBG("\nCh_%02d: ", iRow+1); + for (iCol = 0; iCol < g_stSCapConfEx.ChannelYNum; iCol++) { + FTS_TEST_DBG("%5d, ", m_RawData[iRow][iCol]); + } + } + + FTS_TEST_DBG("\nKeys: "); + if (IsKeyAutoFit()) { + for (iCol = 0; iCol < g_stSCapConfEx.KeyNum; iCol++) + FTS_TEST_DBG("%5d, ", m_RawData[g_stSCapConfEx.ChannelXNum][iCol]); + } else { + for (iCol = 0; iCol < g_stSCapConfEx.KeyNumTotal; iCol++) { + FTS_TEST_DBG("%5d, ", m_RawData[g_stSCapConfEx.ChannelXNum][iCol]); + } + } + + + + + + for (iRow = 0; iRow < g_stSCapConfEx.ChannelXNum; iRow++) { + + for (iCol = 0; iCol < g_stSCapConfEx.ChannelYNum; iCol++) { + if (g_stCfg_Incell_DetailThreshold.InvalidNode[iRow][iCol] == 0) + continue; + RawDataMin = g_stCfg_Incell_DetailThreshold.RawDataTest_Min[iRow][iCol]; + RawDataMax = g_stCfg_Incell_DetailThreshold.RawDataTest_Max[iRow][iCol]; + iValue = m_RawData[iRow][iCol]; + + if (iValue < RawDataMin || iValue > RawDataMax) { + btmpresult = false; + FTS_TEST_ERROR("rawdata test failure. Node=(%d, %d), Get_value=%d, Set_Range=(%d, %d) ", \ + iRow+1, iCol+1, iValue, RawDataMin, RawDataMax); + } + } + } + + + if (bIncludeKey) { + + iRow = g_stSCapConfEx.ChannelXNum; + if (IsKeyAutoFit()) { + for (iCol = 0; iCol < g_stSCapConfEx.KeyNum; iCol++) { + if (g_stCfg_Incell_DetailThreshold.InvalidNode[iRow][iCol] == 0) + continue; + RawDataMin = g_stCfg_Incell_DetailThreshold.RawDataTest_Min[iRow][iCol]; + RawDataMax = g_stCfg_Incell_DetailThreshold.RawDataTest_Max[iRow][iCol]; + iValue = m_RawData[iRow][iCol]; + + if (iValue < RawDataMin || iValue > RawDataMax) { + btmpresult = false; + FTS_TEST_ERROR("rawdata test failure. Node=(%d, %d), Get_value=%d, Set_Range=(%d, %d) ", \ + iRow+1, iCol+1, iValue, RawDataMin, RawDataMax); + } + } + } else { + for (iCol = 0; iCol < g_stSCapConfEx.KeyNumTotal; iCol++) { + if (g_stCfg_Incell_DetailThreshold.InvalidNode[iRow][iCol] == 0) + continue; + RawDataMin = g_stCfg_Incell_DetailThreshold.RawDataTest_Min[iRow][iCol]; + RawDataMax = g_stCfg_Incell_DetailThreshold.RawDataTest_Max[iRow][iCol]; + iValue = m_RawData[iRow][iCol]; + + if (iValue < RawDataMin || iValue > RawDataMax) { + btmpresult = false; + FTS_TEST_ERROR("rawdata test failure. Node=(%d, %d), Get_value=%d, Set_Range=(%d, %d) ", \ + iRow+1, iCol+1, iValue, RawDataMin, RawDataMax); + } + } + } + } + + + Save_Test_Data(m_RawData, 0, g_stSCapConfEx.ChannelXNum+1, g_stSCapConfEx.ChannelYNum, 1); + + + TestResultLen += sprintf(TestResult+TestResultLen, "RawData Test is %s. \n\n", (btmpresult ? "OK" : "NG")); + + + if (btmpresult) { + *bTestResult = true; + FTS_TEST_INFO("\n\n//RawData Test is OK!"); + } else { + *bTestResult = false; + FTS_TEST_INFO("\n\n//RawData Test is NG!"); + } + return ReCode; +} + + +/************************************************************************ +* Name: FT8716_TestItem_CbTest +* Brief: TestItem: Cb Test. Check if Cb is within the range. +* Input: none +* Output: bTestResult, PASS or FAIL +* Return: Comm Code. Code = 0x00 is OK, else fail. +***********************************************************************/ +unsigned char FT8716_TestItem_CbTest(bool *bTestResult) +{ + bool btmpresult = true; + unsigned char ReCode = ERROR_CODE_OK; + int iRow = 0; + int iCol = 0; + int iMaxValue = 0; + int iMinValue = 0; + int iValue = 0; + bool bIncludeKey = false; + + unsigned char bClbResult = 0; + unsigned char ucBits = 0; + int ReadKeyLen = g_stSCapConfEx.KeyNumTotal; + + bIncludeKey = g_stCfg_FT8716_BasicThreshold.bCBTest_VKey_Check; + + FTS_TEST_INFO("\n\n==============================Test Item: -------- CB Test\n"); + + + ReCode = ChipClb(&bClbResult); + if (ERROR_CODE_OK != ReCode) { + btmpresult = false; + FTS_TEST_ERROR("\r\n//========= auto clb Failed!"); + } + + ReCode = ReadReg(0x0B, &ucBits); + if (ERROR_CODE_OK != ReCode) { + btmpresult = false; + FTS_TEST_ERROR("\r\n//========= Read Reg Failed!"); + } + + ReadKeyLen = g_stSCapConfEx.KeyNumTotal; + if (ucBits != 0) { + ReadKeyLen = g_stSCapConfEx.KeyNumTotal * 2; + } + + + + ReCode = GetTxRxCB(0, (short)(g_stSCapConfEx.ChannelXNum * g_stSCapConfEx.ChannelYNum + ReadKeyLen), m_ucTempData); + if (ERROR_CODE_OK != ReCode) { + btmpresult = false; + FTS_TEST_ERROR("Failed to get CB value..."); + goto TEST_ERR; + } + + memset(m_CBData, 0, sizeof(m_CBData)); + + for (iRow = 0; iRow < g_stSCapConfEx.ChannelXNum; ++iRow) { + for (iCol = 0; iCol < g_stSCapConfEx.ChannelYNum; ++iCol) { + m_CBData[iRow][iCol] = m_ucTempData[iRow * g_stSCapConfEx.ChannelYNum + iCol]; + } + } + + + for (iCol = 0; iCol < ReadKeyLen/*g_stSCapConfEx.KeyNumTotal*/; ++iCol) { + if (ucBits != 0) { + m_CBData[g_stSCapConfEx.ChannelXNum][iCol/2] = (short)((m_ucTempData[g_stSCapConfEx.ChannelXNum*g_stSCapConfEx.ChannelYNum + iCol] & 0x01)<<8) + m_ucTempData[g_stSCapConfEx.ChannelXNum*g_stSCapConfEx.ChannelYNum + iCol + 1]; + iCol++; + } else { + m_CBData[g_stSCapConfEx.ChannelXNum][iCol] = m_ucTempData[g_stSCapConfEx.ChannelXNum*g_stSCapConfEx.ChannelYNum + iCol]; + } + + } + + + + + + + FTS_TEST_DBG("\nVA Channels: "); + for (iRow = 0; iRow < g_stSCapConfEx.ChannelXNum; iRow++) { + FTS_TEST_DBG("\nCh_%02d: ", iRow+1); + for (iCol = 0; iCol < g_stSCapConfEx.ChannelYNum; iCol++) { + FTS_TEST_DBG("%3d, ", m_CBData[iRow][iCol]); + } + } + FTS_TEST_DBG("\nKeys: "); + if (IsKeyAutoFit()) { + for (iCol = 0; iCol < g_stSCapConfEx.KeyNum; iCol++) { + FTS_TEST_DBG("%3d, ", m_CBData[g_stSCapConfEx.ChannelXNum][iCol]); + + } + + } else { + for (iCol = 0; iCol < g_stSCapConfEx.KeyNumTotal; iCol++) { + FTS_TEST_DBG("%3d, ", m_CBData[g_stSCapConfEx.ChannelXNum][iCol]); + } + } + + + + for (iRow = 0; iRow < g_stSCapConfEx.ChannelXNum; iRow++) { + for (iCol = 0; iCol < g_stSCapConfEx.ChannelYNum; iCol++) { + if ((0 == g_stCfg_Incell_DetailThreshold.InvalidNode[iRow][iCol])) { + continue; + } + iMinValue = g_stCfg_Incell_DetailThreshold.CBTest_Min[iRow][iCol]; + iMaxValue = g_stCfg_Incell_DetailThreshold.CBTest_Max[iRow][iCol]; + iValue = focal_abs(m_CBData[iRow][iCol]); + + if (iValue < iMinValue || iValue > iMaxValue) { + btmpresult = false; + FTS_TEST_ERROR("CB test failure. Node=(%d, %d), Get_value=%d, Set_Range=(%d, %d) ", \ + iRow+1, iCol+1, iValue, iMinValue, iMaxValue); + } + } + } + + + if (bIncludeKey) { + + iRow = g_stSCapConfEx.ChannelXNum; + if (IsKeyAutoFit()) { + for (iCol = 0; iCol < g_stSCapConfEx.KeyNum; iCol++) { + if (g_stCfg_Incell_DetailThreshold.InvalidNode[iRow][iCol] == 0) { + continue; + } + iMinValue = g_stCfg_Incell_DetailThreshold.CBTest_Min[iRow][iCol]; + iMaxValue = g_stCfg_Incell_DetailThreshold.CBTest_Max[iRow][iCol]; + iValue = focal_abs(m_CBData[iRow][iCol]); + + if (iValue < iMinValue || iValue > iMaxValue) { + btmpresult = false; + FTS_TEST_ERROR("CB test failure. Node=(%d, %d), Get_value=%d, Set_Range=(%d, %d) ", \ + iRow+1, iCol+1, iValue, iMinValue, iMaxValue); + } + } + } else { + for (iCol = 0; iCol < g_stSCapConfEx.KeyNumTotal; iCol++) { + if (g_stCfg_Incell_DetailThreshold.InvalidNode[iRow][iCol] == 0) + continue; + iMinValue = g_stCfg_Incell_DetailThreshold.CBTest_Min[iRow][iCol]; + iMaxValue = g_stCfg_Incell_DetailThreshold.CBTest_Max[iRow][iCol]; + iValue = focal_abs(m_CBData[iRow][iCol]); + + if (iValue < iMinValue || iValue > iMaxValue) { + btmpresult = false; + FTS_TEST_ERROR("CB test failure. Node=(%d, %d), Get_value=%d, Set_Range=(%d, %d) ", \ + iRow+1, iCol+1, iValue, iMinValue, iMaxValue); + } + } + } + } + + + Save_Test_Data(m_CBData, 0, g_stSCapConfEx.ChannelXNum+1, g_stSCapConfEx.ChannelYNum, 1); + + TestResultLen += sprintf(TestResult+TestResultLen, "CB Test is %s. \n\n", (btmpresult ? "OK" : "NG")); + + + if (btmpresult) { + *bTestResult = true; + FTS_TEST_INFO("\n\n//CB Test is OK!"); + } else { + *bTestResult = false; + FTS_TEST_INFO("\n\n//CB Test is NG!"); + } + + return ReCode; + +TEST_ERR: + + *bTestResult = false; + FTS_TEST_INFO("\n\n//CB Test is NG!"); + + TestResultLen += sprintf(TestResult+TestResultLen, "CB Test is NG. \n\n"); + + return ReCode; +} + + +/************************************************************************ +* Name: FT8716_TestItem_ChannelsTest +* Brief: Check whether TP can enter Factory Mode, and do some thing +* Input: none +* Output: none +* Return: Comm Code. Code = 0x00 is OK, else fail. +***********************************************************************/ +unsigned char FT8716_TestItem_ChannelsTest(bool *bTestResult) +{ + unsigned char ReCode; + + FTS_TEST_DBG("\n\n==============================Test Item: -------- Channel Test "); + + ReCode = GetChannelNum(); + if (ReCode == ERROR_CODE_OK) { + if ((g_stCfg_FT8716_BasicThreshold.ChannelNumTest_ChannelXNum == g_stSCapConfEx.ChannelXNum) + && (g_stCfg_FT8716_BasicThreshold.ChannelNumTest_ChannelYNum == g_stSCapConfEx.ChannelYNum) + && (g_stCfg_FT8716_BasicThreshold.ChannelNumTest_KeyNum == g_stSCapConfEx.KeyNum)) { + *bTestResult = true; + FTS_TEST_DBG("\n\nGet channels: (CHx: %d, CHy: %d, Key: %d), Set channels: (CHx: %d, CHy: %d, Key: %d)", + g_stSCapConfEx.ChannelXNum, g_stSCapConfEx.ChannelYNum, g_stSCapConfEx.KeyNum, + g_stCfg_FT8716_BasicThreshold.ChannelNumTest_ChannelXNum, g_stCfg_FT8716_BasicThreshold.ChannelNumTest_ChannelYNum, g_stCfg_FT8716_BasicThreshold.ChannelNumTest_KeyNum); + + FTS_TEST_INFO("\n//Channel Test is OK!"); + } else { + *bTestResult = false; + FTS_TEST_ERROR("\n\nGet channels: (CHx: %d, CHy: %d, Key: %d), Set channels: (CHx: %d, CHy: %d, Key: %d)", + g_stSCapConfEx.ChannelXNum, g_stSCapConfEx.ChannelYNum, g_stSCapConfEx.KeyNum, + g_stCfg_FT8716_BasicThreshold.ChannelNumTest_ChannelXNum, g_stCfg_FT8716_BasicThreshold.ChannelNumTest_ChannelYNum, g_stCfg_FT8716_BasicThreshold.ChannelNumTest_KeyNum); + + FTS_TEST_INFO("\n//Channel Test is NG!"); + } + } + + + TestResultLen += sprintf(TestResult+TestResultLen, "Channel Test is %s. \n\n", (*bTestResult ? "OK" : "NG")); + + return ReCode; +} + +/************************************************************************ +* Name: SqrtNew +* Brief: calculate sqrt of input. +* Input: unsigned int n +* Output: none +* Return: sqrt of n. +***********************************************************************/ +unsigned int SqrtNew(unsigned int n) +{ + unsigned int val = 0, last = 0; + unsigned char i = 0;; + + if (n < 6) { + if (n < 2) { + return n; + } + return n/2; + } + val = n; + i = 0; + while (val > 1) { + val >>= 1; + i++; + } + val <<= (i >> 1); + val = (val + val + val) >> 1; + do { + last = val; + val = ((val + n/val) >> 1); + } while (focal_abs(val-last) > pre); + return val; +} + +/************************************************************************ +* Name: FT8716_TestItem_LCDNoiseTest +* Brief: obtain is differ mode the data and calculate the corresponding type of noise value. +* Input: none +* Output: none +* Return: Comm Code. Code = 0x00 is OK, else fail. +***********************************************************************/ +unsigned char FT8716_TestItem_LCDNoiseTest(bool *bTestResult) +{ + + unsigned char ReCode = ERROR_CODE_OK; + bool bResultFlag = true; + int FrameNum = 0; + int i = 0; + int iRow = 0; + int iCol = 0; + int iValueMin = 0; + int iValueMax = 0; + int iValue = 0; + int ikey = 0; + unsigned char regData = 0, oldMode = 0, chNewMod = 0, DataReady = 0; + unsigned char chNoiseValueVa = 0xff, chNoiseValueKey = 0xff; + + FTS_TEST_INFO("\r\n\r\n==============================Test Item: -------- LCD Noise Test \r\n"); + + ReCode = ReadReg(0x06, &oldMode); + ReCode = WriteReg(0x06, 0x01); + + + SysDelay(50); + ReCode = ReadReg(0x06, &chNewMod); + if (ReCode != ERROR_CODE_OK || chNewMod != 1) { + bResultFlag = false; + FTS_TEST_ERROR("\r\nSwitch Mode Failed!\r\n"); + goto TEST_ERR; + } + + FrameNum = g_stCfg_FT8716_BasicThreshold.LCDNoiseTest_FrameNum/4; + ReCode = WriteReg(REG_LCD_NOISE_FRAME, FrameNum); + + + SysDelay(50); + if (ReCode != ERROR_CODE_OK) { + bResultFlag = false; + FTS_TEST_ERROR("\r\nWrite Reg Failed!\r\n"); + goto TEST_ERR; + } + + ReCode = WriteReg(REG_LCD_NOISE_START, 0x01); + for (i = 0; i < 100; i++) { + SysDelay(50); + + ReCode = ReadReg(REG_LCD_NOISE_DATA_READY, &DataReady); + if (0x00 == (DataReady>>7)) { + SysDelay(5); + ReCode = ReadReg(REG_LCD_NOISE_START, &DataReady); + if (DataReady == 0x00) { + break; + } else { + continue; + } + } else { + continue; + } + + + if (99 == i) { + ReCode = WriteReg(REG_LCD_NOISE_START, 0x00); + if (ReCode != ERROR_CODE_OK) { + bResultFlag = false; + FTS_TEST_ERROR("\r\nRestore Failed!\r\n"); + goto TEST_ERR; + } + + bResultFlag = false; + FTS_TEST_ERROR("\r\nTime Over!\r\n"); + goto TEST_ERR; + } + } + + memset(m_RawData, 0, sizeof(m_RawData)); + memset(m_iTempRawData, 0, sizeof(m_iTempRawData)); + + + ReCode = ReadRawData(0, 0xAD, g_stSCapConfEx.ChannelXNum * g_stSCapConfEx.ChannelYNum * 2, m_iTempRawData); + for (iRow = 0; iRow < g_stSCapConfEx.ChannelXNum; ++iRow) { + for (iCol = 0; iCol < g_stSCapConfEx.ChannelYNum; ++iCol) { + m_RawData[iRow][iCol] = m_iTempRawData[iRow * g_stSCapConfEx.ChannelYNum + iCol]; + } + } + + + ReCode = ReadRawData(0, 0xAE, g_stSCapConfEx.KeyNumTotal * 2, m_iTempRawData); + for (iCol = 0; iCol < g_stSCapConfEx.KeyNumTotal; ++iCol) { + m_RawData[g_stSCapConfEx.ChannelXNum][iCol] = m_iTempRawData[iCol]; + } + + ReCode = WriteReg(REG_LCD_NOISE_START, 0x00); + if (ReCode != ERROR_CODE_OK) { + bResultFlag = false; + FTS_TEST_ERROR("\r\nRestore Failed!\r\n"); + goto TEST_ERR; + } + ReCode = ReadReg(REG_LCD_NOISE_NUMBER, ®Data); + if (regData <= 0) { + regData = 1; + } + + ReCode = WriteReg(0x06, oldMode); + if (ReCode != ERROR_CODE_OK) { + bResultFlag = false; + FTS_TEST_ERROR("\r\nWrite Reg Failed!\r\n"); + goto TEST_ERR; + } + + if (0 == g_stCfg_FT8716_BasicThreshold.LCDNoiseTest_NoiseMode) { + for (iRow = 0; iRow <= g_stSCapConfEx.ChannelXNum; ++iRow) { + for (iCol = 0; iCol < g_stSCapConfEx.ChannelYNum; ++iCol) { + LCD_Noise[iRow][iCol] = m_RawData[iRow][iCol]; + } + } + } + + if (1 == g_stCfg_FT8716_BasicThreshold.LCDNoiseTest_NoiseMode) { + for (iRow = 0; iRow <= g_stSCapConfEx.ChannelXNum; ++iRow) { + for (iCol = 0; iCol < g_stSCapConfEx.ChannelYNum; ++iCol) { + LCD_Noise[iRow][iCol] = SqrtNew(m_RawData[iRow][iCol] / regData); + } + } + } + + ReCode = EnterWork(); + SysDelay(100); + ReCode = ReadReg(0x80, &chNoiseValueVa); + ReCode = ReadReg(0x82, &chNoiseValueKey); + ReCode = EnterFactory(); + SysDelay(200); + if (ReCode != ERROR_CODE_OK) { + bResultFlag = false; + FTS_TEST_ERROR("\r\nEnter factory mode failed.\r\n"); + } + +#if 1 + FTS_TEST_DBG("\nVA Channels: "); + for (iRow = 0; iRow < g_stSCapConfEx.ChannelXNum+1; ++iRow) { + FTS_TEST_DBG("\nCh_%02d: ", iRow+1); + for (iCol = 0; iCol < g_stSCapConfEx.ChannelYNum; ++iCol) { + + FTS_TEST_DBG("%4d, ", LCD_Noise[iRow][iCol]); + } + } + FTS_TEST_DBG("\n"); +#endif + + + iValueMin = 0; + iValueMax = g_stCfg_FT8716_BasicThreshold.LCDNoiseTest_Coefficient * chNoiseValueVa * 32 / 100; + + for (iRow = 0; iRow < g_stSCapConfEx.ChannelXNum; iRow++) { + for (iCol = 0; iCol < g_stSCapConfEx.ChannelYNum; iCol++) { + if (g_stCfg_Incell_DetailThreshold.InvalidNode[iRow][iCol] == 0) + continue; + + iValue = LCD_Noise[iRow][iCol]; + if (iValue < iValueMin || iValue > iValueMax) { + bResultFlag = false; + FTS_TEST_ERROR(" LCD Noise test failure. Node=(%d, %d), Get_value=%d, Set_Range=(%d, %d). \n", + iRow+1, iCol+1, iValue, iValueMin, iValueMax); + } + } + } + + FTS_TEST_DBG(" Va_Set_Range=(%d, %d). ", iValueMin, iValueMax); + + + iValueMin = 0; + iValueMax = g_stCfg_FT8716_BasicThreshold.LCDNoiseTest_Coefficient_Key * chNoiseValueKey * 32 / 100; + for (ikey = 0; ikey < g_stSCapConfEx.KeyNumTotal; ikey++) { + if (g_stCfg_Incell_DetailThreshold.InvalidNode[g_stSCapConfEx.ChannelXNum][ikey] == 0) + continue; + iValue = LCD_Noise[g_stSCapConfEx.ChannelXNum][ikey]; + if (iValue < iValueMin || iValue > iValueMax) { + bResultFlag = false; + FTS_TEST_ERROR(" LCD Noise test failure. Node=(%d, %d), Get_value=%d, Set_Range=(%d, %d). \n", + g_stSCapConfEx.ChannelXNum+1, ikey+1, iValue, iValueMin, iValueMax); + } + } + + FTS_TEST_DBG("Key_Set_Range=(%d, %d). ", iValueMin, iValueMax); + + Save_Test_Data(LCD_Noise, 0, g_stSCapConfEx.ChannelXNum + 1, g_stSCapConfEx.ChannelYNum, 1); + + TestResultLen += sprintf(TestResult+TestResultLen, " LCD Noise Test is %s. \n\n", (bResultFlag ? "OK" : "NG")); + + if (bResultFlag) { + *bTestResult = true; + FTS_TEST_INFO("\n\n//LCD Noise Test is OK!"); + } else { + *bTestResult = false; + FTS_TEST_INFO("\n\n//LCD Noise Test is NG!"); + } + + return ReCode; + +TEST_ERR: + + *bTestResult = false; + FTS_TEST_INFO("\n\n//LCD Noise Test is NG!"); + + TestResultLen += sprintf(TestResult+TestResultLen, " LCD Noise Test is NG. \n\n"); + + return ReCode; + +} + + + +/************************************************************************ +* Name: FT8716_CheckItem_FactoryIdTest +* Brief: Factory Id Testt. +* Input: none +* Output: none +* Return: Comm Code. Code = 0x00 is OK, else fail. +***********************************************************************/ +unsigned char FT8716_CheckItem_FactoryIdTest(bool *bTestResult) +{ + unsigned char ReCode = ERROR_CODE_OK; + bool btmpresult = true; + unsigned char regData = 0; + unsigned char FactoryId = 0; + + FTS_TEST_INFO("\n\n==============================Test Item: -------- Factory Id Test\n"); + + ReCode = EnterWork(); + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR(" EnterWork failed.. Error Code: %d \n", ReCode); + btmpresult = false; + goto TEST_ERR; + } + + + SysDelay(60); + ReCode = ReadReg(REG_FACTORYID, ®Data); + + if (ReCode != ERROR_CODE_OK) { + FTS_TEST_ERROR(" Failed to Read Register: %x. Error Code: %d \n", REG_FACTORYID, ReCode); + goto TEST_ERR; + } + + FactoryId = g_stCfg_FT8716_BasicThreshold.Factory_ID_Number; + + FTS_TEST_DBG("\r\nGet FactoryId:0x%02x, Set FactoryId: 0x%02x \n", regData, FactoryId); + + if (FactoryId == regData) { + btmpresult = true; + + } else { + btmpresult = false; + } + + TestResultLen += sprintf(TestResult+TestResultLen, " FactoryId Test is %s. \n\n", (btmpresult ? "OK" : "NG")); + + if (btmpresult) { + *bTestResult = true; + FTS_TEST_INFO("\n\n//FactoryId Test is OK!"); + } else { + *bTestResult = false; + FTS_TEST_INFO("\n\n//FactoryId Test is NG!"); + } + return ReCode; + +TEST_ERR: + *bTestResult = false; + FTS_TEST_INFO("\n\n//FactoryId Test is NG!"); + + TestResultLen += sprintf(TestResult+TestResultLen, " FactoryId Test is NG. \n\n"); + + return ReCode; +} + + +static unsigned char ChipClb(unsigned char *pClbResult) +{ + unsigned char RegData = 0; + unsigned char TimeOutTimes = 50; + unsigned char ReCode = ERROR_CODE_OK; + + ReCode = WriteReg(REG_CLB, 4); + + if (ReCode == ERROR_CODE_OK) { + while (TimeOutTimes--) { + SysDelay(100); + ReCode = WriteReg(DEVIDE_MODE_ADDR, 0x04<<4); + ReCode = ReadReg(0x04, &RegData); + if (ReCode == ERROR_CODE_OK) { + if (RegData == 0x02) { + *pClbResult = 1; + break; + } + } else { + break; + } + } + + if (TimeOutTimes == 0) { + *pClbResult = 0; + } + } + return ReCode; +} +/************************************************************************ +* Name: FT8716_get_test_data +* Brief: get data of test result +* Input: none +* Output: pTestData, the returned buff +* Return: the length of test data. if length > 0, got data;else ERR. +***********************************************************************/ +int FT8716_get_test_data(char *pTestData) +{ + if (NULL == pTestData) { + FTS_TEST_ERROR(" pTestData == NULL "); + return -EPERM; + } + memcpy(pTestData, g_pStoreAllData, (g_lenStoreMsgArea+g_lenStoreDataArea)); + return (g_lenStoreMsgArea+g_lenStoreDataArea); +} + + +/************************************************************************ +* Name: Save_Test_Data +* Brief: Storage format of test data +* Input: int iData[TX_NUM_MAX][RX_NUM_MAX], int iArrayIndex, unsigned char Row, unsigned char Col, unsigned char ItemCount +* Output: none +* Return: none +***********************************************************************/ +static void Save_Test_Data(int iData[TX_NUM_MAX][RX_NUM_MAX], int iArrayIndex, unsigned char Row, unsigned char Col, unsigned char ItemCount) +{ + int iLen = 0; + int i = 0, j = 0; + + + iLen = sprintf(g_pTmpBuff, "NA, %d, %d, %d, %d, %d, ", \ + m_ucTestItemCode, Row, Col, m_iStartLine, ItemCount); + memcpy(g_pMsgAreaLine2+g_lenMsgAreaLine2, g_pTmpBuff, iLen); + g_lenMsgAreaLine2 += iLen; + + m_iStartLine += Row; + m_iTestDataCount++; + + + for (i = 0+iArrayIndex; (i < Row+iArrayIndex) && (i < TX_NUM_MAX); i++) { + for (j = 0; (j < Col) && (j < RX_NUM_MAX); j++) { + if (j == (Col - 1)) + iLen = sprintf(g_pTmpBuff, "%d, \n", iData[i][j]); + else + iLen = sprintf(g_pTmpBuff, "%d, ", iData[i][j]); + + memcpy(g_pStoreDataArea+g_lenStoreDataArea, g_pTmpBuff, iLen); + g_lenStoreDataArea += iLen; + } + } + +} + + +/************************************************************************ +* Name: StartScan(Same function name as FT_MultipleTest) +* Brief: Scan TP, do it before read Raw Data +* Input: none +* Output: none +* Return: Comm Code. Code = 0x00 is OK, else fail. +***********************************************************************/ +static int StartScan(void) +{ + unsigned char RegVal = 0x00; + unsigned char times = 0; + const unsigned char MaxTimes = 20; + unsigned char ReCode = ERROR_CODE_COMM_ERROR; + + + + ReCode = ReadReg(DEVIDE_MODE_ADDR, &RegVal); + printk("hb1 :RegVal:0x%x, ReCode:0x%x\n", RegVal, ReCode); + if (ReCode == ERROR_CODE_OK) { + RegVal |= 0x80; + ReCode = WriteReg(DEVIDE_MODE_ADDR, RegVal); + printk("hb2 :RegVal:0x%x, ReCode:0x%x\n", RegVal, ReCode); + if (ReCode == ERROR_CODE_OK) { + while (times++ < MaxTimes) { + SysDelay(8); + ReCode = ReadReg(DEVIDE_MODE_ADDR, &RegVal); + printk("hb3 :RegVal:0x%x, ReCode:0x%x, times:0x%x\n", RegVal, ReCode, times); + if (ReCode == ERROR_CODE_OK) { + if ((RegVal>>7) == 0) { + printk("hb4 :RegVal>>7:0x%x, ReCode:0x%x\n", RegVal>>7, ReCode); + break; + } + } else { + printk("hb5 :RegVal:0x%x, ReCode:0x%x\n", RegVal, ReCode); + break; + } + } + if (times < MaxTimes) { + printk("hb6 :times:0x%x, MaxTimes:0x%x ------OK\n", times, MaxTimes); + ReCode = ERROR_CODE_OK; + } + else{ + printk("hb6 :times:0x%x, MaxTimes:0x%x ------FAIL\n", times, MaxTimes); + ReCode = ERROR_CODE_COMM_ERROR; + } + } + } + return ReCode; + +} +/************************************************************************ +* Name: ReadRawData(Same function name as FT_MultipleTest) +* Brief: read Raw Data +* Input: Freq(No longer used, reserved), LineNum, ByteNum +* Output: pRevBuffer +* Return: Comm Code. Code = 0x00 is OK, else fail. +***********************************************************************/ +static unsigned char ReadRawData(unsigned char Freq, unsigned char LineNum, int ByteNum, int *pRevBuffer) +{ + unsigned char ReCode = ERROR_CODE_COMM_ERROR; + unsigned char I2C_wBuffer[3] = {0}; + unsigned char pReadData[ByteNum]; + + int i, iReadNum; + unsigned short BytesNumInTestMode1 = 0; + + iReadNum = ByteNum/BYTES_PER_TIME; + + if (0 != (ByteNum%BYTES_PER_TIME)) + iReadNum++; + + if (ByteNum <= BYTES_PER_TIME) { + BytesNumInTestMode1 = ByteNum; + } else { + BytesNumInTestMode1 = BYTES_PER_TIME; + } + + ReCode = WriteReg(REG_LINE_NUM, LineNum); + + + + I2C_wBuffer[0] = REG_RawBuf0; + if (ReCode == ERROR_CODE_OK) { + focal_msleep(10); + ReCode = Comm_Base_IIC_IO(I2C_wBuffer, 1, pReadData, BytesNumInTestMode1); + } + + for (i = 1; i < iReadNum; i++) { + if (ReCode != ERROR_CODE_OK) + break; + + if (i == iReadNum-1) { + focal_msleep(10); + ReCode = Comm_Base_IIC_IO(NULL, 0, pReadData+BYTES_PER_TIME*i, ByteNum-BYTES_PER_TIME*i); + } else { + focal_msleep(10); + ReCode = Comm_Base_IIC_IO(NULL, 0, pReadData+BYTES_PER_TIME*i, BYTES_PER_TIME); + } + + } + + if (ReCode == ERROR_CODE_OK) { + for (i = 0; i < (ByteNum>>1); i++) { + pRevBuffer[i] = (pReadData[i<<1]<<8)+pReadData[(i<<1)+1]; + + + + + } + } + + + return ReCode; + +} +/************************************************************************ +* Name: GetTxRxCB(Same function name as FT_MultipleTest) +* Brief: get CB of Tx/Rx +* Input: StartNodeNo, ReadNum +* Output: pReadBuffer +* Return: Comm Code. Code = 0x00 is OK, else fail. +***********************************************************************/ +static unsigned char GetTxRxCB(unsigned short StartNodeNo, unsigned short ReadNum, unsigned char *pReadBuffer) +{ + unsigned char ReCode = ERROR_CODE_OK; + unsigned short usReturnNum = 0; + unsigned short usTotalReturnNum = 0; + unsigned char wBuffer[4]; + int i, iReadNum; + + iReadNum = ReadNum/BYTES_PER_TIME; + + if (0 != (ReadNum%BYTES_PER_TIME)) + iReadNum++; + + wBuffer[0] = REG_CbBuf0; + + usTotalReturnNum = 0; + + for (i = 1; i <= iReadNum; i++) { + if (i*BYTES_PER_TIME > ReadNum) + usReturnNum = ReadNum - (i-1)*BYTES_PER_TIME; + else + usReturnNum = BYTES_PER_TIME; + + wBuffer[1] = (StartNodeNo+usTotalReturnNum) >> 8; + wBuffer[2] = (StartNodeNo+usTotalReturnNum)&0xff; + + ReCode = WriteReg(REG_CbAddrH, wBuffer[1]); + ReCode = WriteReg(REG_CbAddrL, wBuffer[2]); + + ReCode = Comm_Base_IIC_IO(wBuffer, 1, pReadBuffer+usTotalReturnNum, usReturnNum); + + usTotalReturnNum += usReturnNum; + + if (ReCode != ERROR_CODE_OK) + return ReCode; + + + } + + return ReCode; +} + + + + +static unsigned char GetPanelRows(unsigned char *pPanelRows) +{ + return ReadReg(REG_TX_NUM, pPanelRows); +} + + + + +static unsigned char GetPanelCols(unsigned char *pPanelCols) +{ + return ReadReg(REG_RX_NUM, pPanelCols); +} + + +/************************************************************************ +* Name: GetChannelNum +* Brief: Get Num of Ch_X, Ch_Y and key +* Input: none +* Output: none +* Return: Comm Code. Code = 0x00 is OK, else fail. +***********************************************************************/ +static unsigned char GetChannelNum(void) +{ + unsigned char ReCode; + + int i ; + unsigned char rBuffer[1]; + + + + for (i = 0; i < 3; i++) { + ReCode = GetPanelRows(rBuffer); + if (ReCode == ERROR_CODE_OK) { + if (0 < rBuffer[0] && rBuffer[0] < 80) { + g_stSCapConfEx.ChannelXNum = rBuffer[0]; + if (g_stSCapConfEx.ChannelXNum > g_ScreenSetParam.iUsedMaxTxNum) { + FTS_TEST_ERROR("Failed to get Channel X number, Get num = %d, UsedMaxNum = %d", + g_stSCapConfEx.ChannelXNum, g_ScreenSetParam.iUsedMaxTxNum); + g_stSCapConfEx.ChannelXNum = 0; + return ERROR_CODE_INVALID_PARAM; + } + + break; + } else { + SysDelay(150); + continue; + } + } else { + FTS_TEST_ERROR("Failed to get Channel X number"); + SysDelay(150); + } + } + + + for (i = 0; i < 3; i++) { + ReCode = GetPanelCols(rBuffer); + if (ReCode == ERROR_CODE_OK) { + if (0 < rBuffer[0] && rBuffer[0] < 80) { + g_stSCapConfEx.ChannelYNum = rBuffer[0]; + if (g_stSCapConfEx.ChannelYNum > g_ScreenSetParam.iUsedMaxRxNum) { + + FTS_TEST_ERROR("Failed to get Channel Y number, Get num = %d, UsedMaxNum = %d", + g_stSCapConfEx.ChannelYNum, g_ScreenSetParam.iUsedMaxRxNum); + g_stSCapConfEx.ChannelYNum = 0; + return ERROR_CODE_INVALID_PARAM; + } + break; + } else { + SysDelay(150); + continue; + } + } else { + FTS_TEST_ERROR("Failed to get Channel Y number"); + SysDelay(150); + } + } + + + for (i = 0; i < 3; i++) { + unsigned char regData = 0; + g_stSCapConfEx.KeyNum = 0; + ReCode = ReadReg(FT8716_LEFT_KEY_REG, ®Data); + if (ReCode == ERROR_CODE_OK) { + if (((regData >> 0) & 0x01)) { + g_stSCapConfEx.bLeftKey1 = true; + ++g_stSCapConfEx.KeyNum; + } + if (((regData >> 1) & 0x01)) { + g_stSCapConfEx.bLeftKey2 = true; + ++g_stSCapConfEx.KeyNum; + } + if (((regData >> 2) & 0x01)) { + g_stSCapConfEx.bLeftKey3 = true; + ++g_stSCapConfEx.KeyNum; + } + } else { + FTS_TEST_ERROR("Failed to get Key number"); + SysDelay(150); + continue; + } + ReCode = ReadReg(FT8716_RIGHT_KEY_REG, ®Data); + if (ReCode == ERROR_CODE_OK) { + if (((regData >> 0) & 0x01)) { + g_stSCapConfEx.bRightKey1 = true; + ++g_stSCapConfEx.KeyNum; + } + if (((regData >> 1) & 0x01)) { + g_stSCapConfEx.bRightKey2 = true; + ++g_stSCapConfEx.KeyNum; + } + if (((regData >> 2) & 0x01)) { + g_stSCapConfEx.bRightKey3 = true; + ++g_stSCapConfEx.KeyNum; + } + break; + } else { + FTS_TEST_ERROR("Failed to get Key number"); + SysDelay(150); + continue; + } + } + + + + FTS_TEST_DBG("CH_X = %d, CH_Y = %d, Key = %d", g_stSCapConfEx.ChannelXNum , g_stSCapConfEx.ChannelYNum, g_stSCapConfEx.KeyNum); + return ReCode; +} + +/************************************************************************ +* Name: GetRawData +* Brief: Get Raw Data of VA area and Key area +* Input: none +* Output: none +* Return: Comm Code. Code = 0x00 is OK, else fail. +***********************************************************************/ +static unsigned char GetRawData(void) +{ + int ReCode = ERROR_CODE_OK; + int iRow, iCol; + int i = 0; + + for (i = 0; i < 3; i++) { + + ReCode = EnterFactory(); + if (ERROR_CODE_OK != ReCode) { + FTS_TEST_ERROR("Failed to Enter Factory Mode..."); + return ReCode; + } + + + + if (0 == (g_stSCapConfEx.ChannelXNum + g_stSCapConfEx.ChannelYNum)) { + ReCode = GetChannelNum(); + if (ERROR_CODE_OK != ReCode) { + FTS_TEST_ERROR("Error Channel Num..."); + return ERROR_CODE_INVALID_PARAM; + } + } + + + + ReCode = StartScan(); + if (ERROR_CODE_OK == ReCode) { + FTS_TEST_INFO("scan pass..."); + break; + } + } + if (i >= 3) { + FTS_TEST_ERROR("scan fail..."); + return ReCode; + } + + + + + memset(m_RawData, 0, sizeof(m_RawData)); + memset(m_iTempRawData, 0, sizeof(m_iTempRawData)); + ReCode = ReadRawData(0, 0xAD, g_stSCapConfEx.ChannelXNum * g_stSCapConfEx.ChannelYNum * 2, m_iTempRawData); + if (ERROR_CODE_OK != ReCode) { + FTS_TEST_ERROR("Failed to Get RawData"); + return ReCode; + } + + for (iRow = 0; iRow < g_stSCapConfEx.ChannelXNum; ++iRow) { + for (iCol = 0; iCol < g_stSCapConfEx.ChannelYNum; ++iCol) { + m_RawData[iRow][iCol] = m_iTempRawData[iRow * g_stSCapConfEx.ChannelYNum + iCol]; + } + } + + + memset(m_iTempRawData, 0, sizeof(m_iTempRawData)); + ReCode = ReadRawData(0, 0xAE, g_stSCapConfEx.KeyNumTotal * 2, m_iTempRawData); + if (ERROR_CODE_OK != ReCode) { + FTS_TEST_ERROR("Failed to Get RawData"); + return ReCode; + } + + for (iCol = 0; iCol < g_stSCapConfEx.KeyNumTotal; ++iCol) { + m_RawData[g_stSCapConfEx.ChannelXNum][iCol] = m_iTempRawData[iCol]; + } + + return ReCode; + +} +unsigned char FT8716_GetTestResult(void) +{ + + unsigned char ucDevice = 0; + int iItemCount = 0; + unsigned char ucResultData = 0; + + + for (iItemCount = 0; iItemCount < g_TestItemNum; iItemCount++) { + + if (Code_FT8716_RAWDATA_TEST == g_stTestItem[ucDevice][iItemCount].ItemCode + ) { + if (RESULT_PASS == g_stTestItem[ucDevice][iItemCount].TestResult) + ucResultData |= 0x01<<2; + } + + + if (Code_FT8716_CB_TEST == g_stTestItem[ucDevice][iItemCount].ItemCode) { + if (RESULT_PASS == g_stTestItem[ucDevice][iItemCount].TestResult) + ucResultData |= 0x01<<1; + } + + + if (Code_FT8716_SHORT_CIRCUIT_TEST == g_stTestItem[ucDevice][iItemCount].ItemCode + ) { + if (RESULT_PASS == g_stTestItem[ucDevice][iItemCount].TestResult) + ucResultData |= 0x01; + } + } + + FTS_TEST_DBG("Test_result: 0x%02x", ucResultData); + + + + + + return ucResultData; +} + +#endif diff --git a/drivers/input/touchscreen/FT8716/focaltech_test/supported_ic/focaltech_test_supported_ic.c b/drivers/input/touchscreen/FT8716/focaltech_test/supported_ic/focaltech_test_supported_ic.c new file mode 100755 index 0000000000000..3ad6871654280 --- /dev/null +++ b/drivers/input/touchscreen/FT8716/focaltech_test/supported_ic/focaltech_test_supported_ic.c @@ -0,0 +1,268 @@ +/************************************************************************ +* Copyright (C) 2012-2017, Focaltech Systems (R)£¬All Rights Reserved. +* Copyright (C) 2018 XiaoMi, Inc. +* +* File Name: focaltech_test_supported_ic.c +* +* Author: Software Development +* +* Created: 2016-08-01 +* +* Abstract: test item for FT8716 +* +************************************************************************/ + +/***************************************************************************** +* Included header files +*****************************************************************************/ + + +#include "../include/focaltech_test_supported_ic.h" +#include "../focaltech_test_config.h" + + + +#if (FTS_CHIP_TEST_TYPE == FT8607_TEST) +void OnInit_FT8607_TestItem(char *strIniFile); +void OnInit_FT8607_BasicThreshold(char *strIniFile); +void SetTestItem_FT8607(void); +boolean FT8607_StartTest(void); +int FT8607_get_test_data(char *pTestData); + +void fts_test_funcs(void) +{ + FTS_TEST_FUNC_ENTER(); + + g_stTestFuncs.OnInit_TestItem = OnInit_FT8607_TestItem; + g_stTestFuncs.OnInit_BasicThreshold = OnInit_FT8607_BasicThreshold; + g_stTestFuncs.SetTestItem = SetTestItem_FT8607; + g_stTestFuncs.Start_Test = FT8607_StartTest; + g_stTestFuncs.Get_test_data = FT8607_get_test_data; + + FTS_TEST_FUNC_EXIT(); +} + + +#elif (FTS_CHIP_TEST_TYPE == FT8716_TEST) + +boolean FT8716_StartTest(void); +int FT8716_get_test_data(char *pTestData); + +void OnInit_FT8716_TestItem(char *strIniFile); +void OnInit_FT8716_BasicThreshold(char *strIniFile); +void SetTestItem_FT8716(void); + +void fts_test_funcs(void) +{ + FTS_TEST_FUNC_ENTER(); + + g_stTestFuncs.OnInit_TestItem = OnInit_FT8716_TestItem; + g_stTestFuncs.OnInit_BasicThreshold = OnInit_FT8716_BasicThreshold; + g_stTestFuncs.SetTestItem = SetTestItem_FT8716; + g_stTestFuncs.Start_Test = FT8716_StartTest; + g_stTestFuncs.Get_test_data = FT8716_get_test_data; + + FTS_TEST_FUNC_EXIT(); +} + +#elif (FTS_CHIP_TEST_TYPE == FT3D47_TEST) +boolean FT3D47_StartTest(void); + +int FT3D47_get_test_data(char *pTestData); + +void OnInit_FT3D47_TestItem(char *strIniFile); +void OnInit_FT3D47_BasicThreshold(char *strIniFile); +void SetTestItem_FT3D47(void); + +void fts_test_funcs(void) +{ + FTS_TEST_FUNC_ENTER(); + + g_stTestFuncs.OnInit_TestItem = OnInit_FT3D47_TestItem; + g_stTestFuncs.OnInit_BasicThreshold = OnInit_FT3D47_BasicThreshold; + g_stTestFuncs.SetTestItem = SetTestItem_FT3D47; + g_stTestFuncs.Start_Test = FT3D47_StartTest; + g_stTestFuncs.Get_test_data = FT3D47_get_test_data; + + FTS_TEST_FUNC_EXIT(); +} + +#elif (FTS_CHIP_TEST_TYPE == FT5X46_TEST) + +boolean FT5X46_StartTest(void); +int FT5X46_get_test_data(char *pTestData); + +void OnInit_FT5X46_TestItem(char *strIniFile); +void OnInit_FT5X46_BasicThreshold(char *strIniFile); +void SetTestItem_FT5X46(void); + +void fts_test_funcs(void) +{ + FTS_TEST_FUNC_ENTER(); + + g_stTestFuncs.OnInit_TestItem = OnInit_FT5X46_TestItem; + g_stTestFuncs.OnInit_BasicThreshold = OnInit_FT5X46_BasicThreshold; + g_stTestFuncs.SetTestItem = SetTestItem_FT5X46; + g_stTestFuncs.Start_Test = FT5X46_StartTest; + g_stTestFuncs.Get_test_data = FT5X46_get_test_data; + + FTS_TEST_FUNC_EXIT(); +} + +#elif (FTS_CHIP_TEST_TYPE == FT6X36_TEST) + +boolean FT6X36_StartTest(void); +int FT6X36_get_test_data(char *pTestData); + +void OnInit_FT6X36_TestItem(char *strIniFile); +void OnInit_FT6X36_BasicThreshold(char *strIniFile); +void SetTestItem_FT6X36(void); + +void fts_test_funcs(void) +{ + FTS_TEST_FUNC_ENTER(); + + g_stTestFuncs.OnInit_TestItem = OnInit_FT6X36_TestItem; + g_stTestFuncs.OnInit_BasicThreshold = OnInit_FT6X36_BasicThreshold; + g_stTestFuncs.SetTestItem = SetTestItem_FT6X36; + g_stTestFuncs.Start_Test = FT6X36_StartTest; + g_stTestFuncs.Get_test_data = FT6X36_get_test_data; + + FTS_TEST_FUNC_EXIT(); +} + +#elif (FTS_CHIP_TEST_TYPE == FT5822_TEST) + +boolean FT5822_StartTest(void); +int FT5822_get_test_data(char *pTestData); + +void OnInit_FT5822_TestItem(char *strIniFile); +void OnInit_FT5822_BasicThreshold(char *strIniFile); +void SetTestItem_FT5822(void); + +void fts_test_funcs(void) +{ + FTS_TEST_FUNC_ENTER(); + + g_stTestFuncs.OnInit_TestItem = OnInit_FT5822_TestItem; + g_stTestFuncs.OnInit_BasicThreshold = OnInit_FT5822_BasicThreshold; + g_stTestFuncs.SetTestItem = SetTestItem_FT5822; + g_stTestFuncs.Start_Test = FT5822_StartTest; + g_stTestFuncs.Get_test_data = FT5822_get_test_data; + + FTS_TEST_FUNC_EXIT(); +} + +#elif (FTS_CHIP_TEST_TYPE == FT8006_TEST) + +boolean FT8006_StartTest(void); +int FT8006_get_test_data(char *pTestData); + +void OnInit_FT8006_TestItem(char *strIniFile); +void OnInit_FT8006_BasicThreshold(char *strIniFile); +void SetTestItem_FT8006(void); + +void fts_test_funcs(void) +{ + FTS_TEST_FUNC_ENTER(); + + g_stTestFuncs.OnInit_TestItem = OnInit_FT8006_TestItem; + g_stTestFuncs.OnInit_BasicThreshold = OnInit_FT8006_BasicThreshold; + g_stTestFuncs.SetTestItem = SetTestItem_FT8006; + g_stTestFuncs.Start_Test = FT8006_StartTest; + g_stTestFuncs.Get_test_data = FT8006_get_test_data; + + FTS_TEST_FUNC_EXIT(); +} + + +#elif (FTS_CHIP_TEST_TYPE == FT8736_TEST) + +boolean FT8736_StartTest(void); +int FT8736_get_test_data(char *pTestData); + +void OnInit_FT8736_TestItem(char *strIniFile); +void OnInit_FT8736_BasicThreshold(char *strIniFile); +void SetTestItem_FT8736(void); + +void fts_test_funcs(void) +{ + FTS_TEST_FUNC_ENTER(); + + g_stTestFuncs.OnInit_TestItem = OnInit_FT8736_TestItem; + g_stTestFuncs.OnInit_BasicThreshold = OnInit_FT8736_BasicThreshold; + g_stTestFuncs.SetTestItem = SetTestItem_FT8736; + g_stTestFuncs.Start_Test = FT8736_StartTest; + g_stTestFuncs.Get_test_data = FT8736_get_test_data; + + FTS_TEST_FUNC_EXIT(); +} + +#elif (FTS_CHIP_TEST_TYPE == FTE716_TEST) + +boolean FTE716_StartTest(void); +int FTE716_get_test_data(char *pTestData); + +void OnInit_FTE716_TestItem(char *strIniFile); +void OnInit_FTE716_BasicThreshold(char *strIniFile); +void SetTestItem_FTE716(void); + +void fts_test_funcs(void) +{ + FTS_TEST_FUNC_ENTER(); + + g_stTestFuncs.OnInit_TestItem = OnInit_FTE716_TestItem; + g_stTestFuncs.OnInit_BasicThreshold = OnInit_FTE716_BasicThreshold; + g_stTestFuncs.SetTestItem = SetTestItem_FTE716; + g_stTestFuncs.Start_Test = FTE716_StartTest; + g_stTestFuncs.Get_test_data = FTE716_get_test_data; + + FTS_TEST_FUNC_EXIT(); +} + +#elif (FTS_CHIP_TEST_TYPE == FT8606_TEST) + +boolean FT8606_StartTest(void); +int FT8606_get_test_data(char *pTestData); + +void OnInit_FT8606_TestItem(char *strIniFile); +void OnInit_FT8606_BasicThreshold(char *strIniFile); +void SetTestItem_FT8606(void); + +void fts_test_funcs(void) +{ + FTS_TEST_FUNC_ENTER(); + + g_stTestFuncs.OnInit_TestItem = OnInit_FT8606_TestItem; + g_stTestFuncs.OnInit_BasicThreshold = OnInit_FT8606_BasicThreshold; + g_stTestFuncs.SetTestItem = SetTestItem_FT8606; + g_stTestFuncs.Start_Test = FT8606_StartTest; + g_stTestFuncs.Get_test_data = FT8606_get_test_data; + + FTS_TEST_FUNC_EXIT(); +} + +#elif (FTS_CHIP_TEST_TYPE == FT3C47_TEST) + +boolean FT3C47_StartTest(void); +int FT3C47_get_test_data(char *pTestData); + +void OnInit_FT3C47_TestItem(char *strIniFile); +void OnInit_FT3C47_BasicThreshold(char *strIniFile); +void SetTestItem_FT3C47(void); + +void fts_test_funcs(void) +{ + FTS_TEST_FUNC_ENTER(); + + g_stTestFuncs.OnInit_TestItem = OnInit_FT3C47_TestItem; + g_stTestFuncs.OnInit_BasicThreshold = OnInit_FT3C47_BasicThreshold; + g_stTestFuncs.SetTestItem = SetTestItem_FT3C47; + g_stTestFuncs.Start_Test = FT3C47_StartTest; + g_stTestFuncs.Get_test_data = FT3C47_get_test_data; + + FTS_TEST_FUNC_EXIT(); +} +#endif + + diff --git a/drivers/input/touchscreen/FT8716/include/firmware/FT8716_app_csot_sample.i b/drivers/input/touchscreen/FT8716/include/firmware/FT8716_app_csot_sample.i new file mode 100644 index 0000000000000..3887a224434b1 --- /dev/null +++ b/drivers/input/touchscreen/FT8716/include/firmware/FT8716_app_csot_sample.i @@ -0,0 +1,3694 @@ +0x2, 0x23,0x8a,0x2, 0xd2,0x5f,0x1b,0xa, 0x30,0x22,0x22,0x2, 0x0, 0x1a,0x0, 0x1, +0x1, 0x0, 0x22,0x2, 0x6b,0xd6,0xeb,0xaa,0x8, 0x22,0x32,0x2, 0x69,0x11,0x0, 0x0, +0x0, 0xff,0xff,0x2, 0x3c,0xff,0xc2,0x1c,0x22,0xff,0xff,0x2, 0x6f,0xf8,0xca,0x3b, +0x7d,0x72,0x7d,0x63,0x7d,0x27,0x12,0x6, 0x48,0x7d,0x36,0x7d,0x27,0x12,0x6, 0xc5, +0xda,0x3b,0x22,0x2, 0x70,0x10,0x7f,0x71,0xa9,0xd6,0xcb,0x69,0x30,0x0, 0x4, 0x7e, +0x6f,0x78,0x35,0x79,0x36,0x0, 0x4, 0x69,0x30,0x0, 0x6, 0x7e,0x6f,0x78,0x35,0x79, +0x36,0x0, 0x6, 0x69,0x30,0x0, 0x8, 0x7e,0x6f,0x78,0x35,0x79,0x36,0x0, 0x8, 0x7e, +0x7b,0xa0,0x7c,0x6a,0x6c,0x77,0x7e,0x6f,0x78,0x35,0x79,0x36,0x0, 0xe, 0x7c,0x4b, +0x6c,0x55,0xe5,0x26,0xa, 0x3b,0x4d,0x32,0x7e,0x2f,0x78,0x35,0x79,0x32,0x0, 0x10, +0x29,0x77,0x0, 0x2, 0xa, 0x37,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x29,0x57, +0x0, 0x4, 0x7c,0x46,0x4c,0x57,0x7e,0x2f,0x78,0x35,0x2e,0x54,0x0, 0xe, 0xb, 0x2a, +0x30,0x4d,0x32,0x1b,0x2a,0x30,0x29,0x77,0x0, 0x1, 0x7c,0x47,0x6c,0x55,0x29,0x77, +0x0, 0x3, 0x7c,0x64,0x7e,0x2f,0x78,0x35,0x79,0x32,0x0, 0xa, 0x7e,0xb, 0x70,0x7c, +0x47,0x29,0x70,0x0, 0x1, 0xa, 0x37,0x2d,0x32,0x7e,0xf, 0x78,0x35,0x79,0x30,0x0, +0xc, 0x6d,0x11,0x7e,0x1f,0x78,0x35,0x1b,0x1a,0x10,0x7e,0x34,0x0, 0x30,0x12,0xa, +0x5e,0xa9,0xc6,0xcb,0x22,0x1, 0x2, 0x4, 0x8, 0x10,0x20,0x40,0x80,0xb2,0x86,0x22, +0xe6,0xd6,0x19,0x29,0xce,0x79,0x31,0x86,0xdd,0xee,0x22,0x11,0x89,0x76,0xb, 0xf4, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x89,0x76,0xff,0xff,0x87,0xa6, +0xca,0x3b,0x7f,0x30,0x7e,0x3b,0xb0,0xf5,0x29,0x29,0xb3,0x0, 0x1, 0xbe,0xb1,0x29, +0x28,0x2, 0xf5,0x29,0x69,0x13,0x0, 0x6, 0x6d,0x0, 0x7e,0x34,0x0, 0xf2,0x74,0xff, +0x12,0x24,0x34,0x7f,0x3, 0x12,0xa, 0x6, 0xa9,0xd6,0xcb,0x75,0x27,0x0, 0x80,0x33, +0x75,0x28,0x0, 0x80,0x23,0x7e,0x11,0x27,0x74,0xb, 0xac,0x1b,0xe5,0x28,0xa, 0x1b, +0x2d,0x1, 0x3e,0x4, 0x69,0x13,0x0, 0x6, 0x2d,0x10,0x6d,0x0, 0xb, 0xa, 0x30,0x6e, +0x34,0xff,0xff,0x1b,0xa, 0x30,0x5, 0x28,0x29,0x73,0x0, 0x1, 0xbe,0x71,0x28,0x38, +0xd4,0x5, 0x27,0x7e,0x3b,0x70,0xbe,0x71,0x27,0x38,0xc5,0x69,0x33,0x0, 0x6, 0x7e, +0xf, 0x78,0x35,0x79,0x30,0x0, 0x4, 0xe5,0x29,0xa, 0x2b,0x7d,0x32,0x7c,0x67,0x6c, +0x77,0x2d,0x32,0x7e,0xf, 0x78,0x35,0x79,0x30,0x0, 0xc, 0x6d,0x11,0x7e,0x1f,0x78, +0x35,0x1b,0x1a,0x10,0x7e,0x34,0x0, 0xd0,0x12,0xa, 0x5e,0x75,0x27,0x0, 0xe5,0x27, +0xbe,0xb0,0x4, 0x50,0x17,0x7e,0xa1,0x27,0x74,0x4, 0xa4,0x7e,0x1f,0x78,0x35,0x69, +0x11,0x0, 0x26,0x60,0x44,0x1e,0x14,0x14,0x78,0xfb,0x80,0x3d,0xe5,0x27,0xbe,0xb0, +0x8, 0x50,0x1b,0xe5,0x27,0xa, 0x5b,0x1b,0x56,0x3e,0x54,0x3e,0x54,0x7e,0x1f,0x78, +0x35,0x69,0x11,0x0, 0x28,0x60,0x22,0x1e,0x14,0x14,0x78,0xfb,0x80,0x1b,0xe5,0x27, +0xa, 0x5b,0x9e,0x54,0x0, 0x8, 0x3e,0x54,0x3e,0x54,0x7e,0x1f,0x78,0x35,0x69,0x11, +0x0, 0x2a,0x60,0x5, 0x1e,0x14,0x14,0x78,0xfb,0x5e,0x14,0x0, 0xf, 0x7e,0xa1,0x27, +0x74,0x2, 0xa4,0x69,0x33,0x0, 0x6, 0x2d,0x35,0x6d,0x22,0x1b,0x1a,0x10,0x5, 0x27, +0xe5,0x27,0xbe,0xb0,0xb, 0x40,0x87,0xa9,0xc6,0xcb,0xda,0x3b,0x22,0x6d,0x33,0x7e, +0xf, 0x78,0x39,0x79,0x30,0x0, 0x12,0x7e,0xf, 0x78,0x39,0x2e,0x14,0x0, 0x14,0xb, +0xa, 0x30,0x5e,0x60,0x7f,0x1b,0xa, 0x30,0xe5,0x37,0x54,0x1f,0xa, 0x2b,0x7e,0xf, +0x78,0x39,0x2e,0x14,0x0, 0x12,0xb, 0xa, 0x30,0x4d,0x32,0x1b,0xa, 0x30,0xe5,0x38, +0x54,0x1, 0xa, 0x2b,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x7e,0xf, +0x78,0x39,0x2e,0x14,0x0, 0x12,0xb, 0xa, 0x30,0x4d,0x32,0x1b,0xa, 0x30,0xe5,0x39, +0x54,0x3, 0xa, 0x2b,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24, +0x7e,0xf, 0x78,0x39,0x2e,0x14,0x0, 0x12,0xb, 0xa, 0x30,0x4d,0x32,0x1b,0xa, 0x30, +0x7e,0x35,0x35,0xbe,0x34,0x0, 0x2, 0x78,0x63,0x7e,0xf, 0x78,0x39,0x2e,0x14,0x0, +0x14,0xb, 0xa, 0x30,0x4e,0x60,0x80,0x1b,0xa, 0x30,0xe5,0x3a,0x54,0x1f,0x7c,0x4b, +0x6c,0x55,0x7e,0xf, 0x78,0x39,0x2e,0x14,0x0, 0x12,0xb, 0xa, 0x30,0x4d,0x32,0x1b, +0xa, 0x30,0xe5,0x3b,0x54,0x1, 0xa, 0x5b,0xc4,0x23,0x54,0xe0,0x7c,0xab,0xe4,0x7e, +0xf, 0x78,0x39,0x2e,0x14,0x0, 0x12,0xb, 0xa, 0x30,0x4d,0x35,0x1b,0xa, 0x30,0xe5, +0x3c,0x54,0x3, 0xa, 0x5b,0x3, 0x3, 0x54,0xc0,0x7c,0xab,0xe4,0x7e,0xf, 0x78,0x39, +0x2e,0x14,0x0, 0x12,0xb, 0xa, 0x30,0x4d,0x35,0x1b,0xa, 0x30,0x22,0x7f,0x21,0xa9, +0xd6,0xcb,0x69,0x30,0x0, 0x4, 0x7e,0x7f,0x78,0x35,0x79,0x37,0x0, 0x4, 0x69,0x30, +0x0, 0x8, 0x7e,0x7f,0x78,0x35,0x79,0x37,0x0, 0x6, 0x69,0x30,0x0, 0x6, 0x7e,0x7f, +0x78,0x35,0x79,0x37,0x0, 0x8, 0x29,0x70,0x0, 0x1, 0x7c,0x47,0x6c,0x55,0x7e,0xb, +0x70,0xa, 0x37,0x2d,0x32,0x7e,0x7f,0x78,0x35,0x79,0x37,0x0, 0xc, 0x29,0x70,0x0, +0x2, 0xa, 0x37,0x1b,0x34,0x7e,0x7f,0x78,0x35,0x79,0x37,0x0, 0xa, 0x69,0x30,0x0, +0xa, 0x7e,0x7f,0x78,0x35,0x79,0x37,0x0, 0xe, 0x69,0x30,0x0, 0xc, 0x7e,0x7f,0x78, +0x35,0x79,0x37,0x0, 0x10,0x69,0x30,0x0, 0xe, 0x7e,0x7f,0x78,0x35,0x79,0x37,0x0, +0x12,0x69,0x30,0x0, 0x10,0x7e,0x7f,0x78,0x35,0x79,0x37,0x0, 0x30,0x29,0x70,0x0, +0x3, 0x7c,0x27,0x6c,0x33,0x7e,0x1f,0x78,0x35,0x1b,0x1a,0x10,0x7e,0x34,0x0, 0xa0, +0x12,0xa, 0x5e,0x7e,0x1f,0x78,0x35,0x69,0x11,0x0, 0x1a,0x7a,0x2b,0x30,0x69,0x11, +0x0, 0x1c,0x39,0x32,0x0, 0x1, 0x69,0x11,0x0, 0x16,0x79,0x12,0x0, 0x2, 0x69,0x11, +0x0, 0x18,0x79,0x12,0x0, 0x4, 0x69,0x11,0x0, 0x22,0x79,0x12,0x0, 0x6, 0x69,0x11, +0x0, 0x24,0x79,0x12,0x0, 0x8, 0x69,0x11,0x0, 0x1e,0x79,0x12,0x0, 0xa, 0x69,0x31, +0x0, 0x20,0x79,0x32,0x0, 0xc, 0xa9,0xc6,0xcb,0x22,0xca,0x3b,0x7a,0x25,0x4b,0x7f, +0x30,0x7a,0x35,0x49,0xa2,0xac,0x92,0x8, 0xc2,0xac,0x7e,0x1f,0x78,0x39,0x69,0x31, +0x0, 0x4, 0x5e,0x34,0x10,0x0, 0x7a,0x37,0x6b,0x32,0xc2,0x9, 0x12,0xc, 0x17,0xa2, +0x8, 0x92,0xac,0xa9,0xd3,0xcb,0xa9,0xd5,0xcb,0x7e,0x34,0x0, 0x1, 0x7e,0xf, 0x3, +0xf1,0x79,0x30,0x0, 0x6, 0x7e,0xf, 0x3, 0xf1,0x69,0x30,0x0, 0x6, 0x4d,0x33,0x78, +0xf4,0x7e,0x35,0x49,0x2e,0x34,0x80,0x0, 0x1b,0xa, 0x30,0x7e,0x1f,0x3, 0xf1,0x69, +0x31,0x0, 0x8, 0x4d,0x33,0x68,0xf4,0x6d,0x33,0x80,0x20,0x7d,0x23,0x3e,0x24,0x7f, +0x3, 0x2d,0x12,0xb, 0xa, 0x20,0x7e,0xf, 0x3, 0xf1,0x1b,0xa, 0x20,0x7e,0xf, 0x3, +0xf1,0x69,0x20,0x0, 0x8, 0x4d,0x22,0x68,0xf4,0xb, 0x34,0xbe,0x35,0x4b,0x40,0xdb, +0xa9,0xc5,0xcb,0xa9,0xc3,0xcb,0x7e,0x37,0x6b,0x32,0x2e,0x34,0xff,0xff,0x92,0x9, +0x12,0xc, 0x17,0xda,0x3b,0x22,0xca,0x3b,0x7a,0x25,0x4b,0x7f,0x30,0x7a,0x35,0x49, +0xa2,0xac,0x92,0x8, 0xc2,0xac,0x7e,0x1f,0x78,0x39,0x69,0x31,0x0, 0x4, 0x5e,0x34, +0x10,0x0, 0x7a,0x37,0x6b,0x32,0xc2,0x9, 0x12,0xc, 0x17,0xa2,0x8, 0x92,0xac,0xd2, +0xcd,0xa9,0xd5,0xcb,0x7e,0x34,0x0, 0x1, 0x7e,0xf, 0x3, 0xf5,0x79,0x30,0x0, 0x6, +0x7e,0xf, 0x3, 0xf5,0x69,0x30,0x0, 0x6, 0x4d,0x33,0x78,0xf4,0x7e,0x35,0x49,0x2e, +0x34,0x80,0x0, 0x1b,0xa, 0x30,0x7e,0x1f,0x3, 0xf5,0x69,0x31,0x0, 0x8, 0x4d,0x33, +0x68,0xf4,0x6d,0x33,0x80,0x20,0x7d,0x23,0x3e,0x24,0x7f,0x3, 0x2d,0x12,0xb, 0xa, +0x20,0x7e,0xf, 0x3, 0xf5,0x1b,0xa, 0x20,0x7e,0xf, 0x3, 0xf5,0x69,0x20,0x0, 0x8, +0x4d,0x22,0x68,0xf4,0xb, 0x34,0xbe,0x35,0x4b,0x40,0xdb,0xa9,0xc5,0xcb,0xc2,0xcd, +0x7e,0x37,0x6b,0x32,0x2e,0x34,0xff,0xff,0x92,0x9, 0x12,0xc, 0x17,0xda,0x3b,0x22, +0xca,0x79,0x7c,0xab,0x6d,0x77,0x7e,0xf, 0x78,0x39,0x69,0x30,0x0, 0x6, 0x5e,0x34, +0x0, 0x2, 0x68,0x18,0x2e,0x14,0x0, 0xe, 0xb, 0xa, 0x30,0x5e,0x70,0xfb,0x1b,0xa, +0x30,0x74,0x3, 0x7a,0xb3,0x77,0xe1,0x75,0x1e,0x3, 0x80,0x3, 0xe4,0x80,0x5a,0x4c, +0xaa,0x68,0x54,0x80,0x44,0x7e,0x1f,0x78,0x39,0x69,0x31,0x0, 0x6, 0x5e,0x34,0x0, +0x1, 0x78,0xa, 0xe4,0x7a,0xb3,0x77,0xe1,0x75,0x1e,0x0, 0x80,0x3c,0x7e,0x34,0x0, +0x1, 0x12,0x67,0x25,0xb, 0x74,0xbe,0x74,0x3, 0xe8,0x28,0x1d,0x7e,0xf, 0x78,0x39, +0x2e,0x14,0x0, 0xe, 0xb, 0xa, 0x30,0x4e,0x70,0x4, 0x1b,0xa, 0x30,0x74,0x2, 0x7a, +0xb3,0x77,0xe1,0x75,0x1e,0x2, 0xe4,0x80,0x10,0x7e,0x1f,0x78,0x39,0x69,0x31,0x0, +0xe, 0x5e,0x34,0x0, 0x3, 0x78,0xae,0x74,0x1, 0xda,0x79,0x22,0xca,0x79,0x7c,0xab, +0x6d,0x77,0x7e,0xf, 0x78,0x39,0x69,0x30,0x0, 0x6, 0x5e,0x34,0x0, 0x2, 0x68,0x18, +0x2e,0x14,0x0, 0xe, 0xb, 0xa, 0x30,0x4e,0x70,0x4, 0x1b,0xa, 0x30,0x74,0x2, 0x7a, +0xb3,0x77,0xe1,0x75,0x1e,0x2, 0x80,0x3, 0xe4,0x80,0x5a,0x4c,0xaa,0x68,0x54,0x80, +0x44,0x7e,0x1f,0x78,0x39,0x69,0x31,0x0, 0x6, 0x5e,0x34,0x0, 0x1, 0x78,0xa, 0xe4, +0x7a,0xb3,0x77,0xe1,0x75,0x1e,0x0, 0x80,0x3c,0x7e,0x34,0x0, 0x1, 0x12,0x67,0x25, +0xb, 0x74,0xbe,0x74,0x3, 0xe8,0x28,0x1d,0x7e,0xf, 0x78,0x39,0x2e,0x14,0x0, 0xe, +0xb, 0xa, 0x30,0x5e,0x70,0xfb,0x1b,0xa, 0x30,0x74,0x3, 0x7a,0xb3,0x77,0xe1,0x75, +0x1e,0x3, 0xe4,0x80,0x10,0x7e,0x1f,0x78,0x39,0x69,0x31,0x0, 0xe, 0x5e,0x34,0x0, +0x8, 0x68,0xae,0x74,0x1, 0xda,0x79,0x22,0xca,0x3b,0x7d,0x72,0x7d,0x63,0xa2,0xac, +0x92,0x3, 0xc2,0xac,0x7e,0x1f,0x78,0x39,0x69,0x31,0x0, 0x4, 0x5e,0x34,0x10,0x0, +0x7a,0x37,0x67,0x1e,0xc2,0x9, 0x12,0xc, 0x17,0xa2,0x3, 0x92,0xac,0xa9,0xd3,0xcb, +0xa9,0xd5,0xcb,0x7e,0x34,0x0, 0x1, 0x7e,0xf, 0x3, 0xf1,0x79,0x30,0x0, 0x6, 0x7e, +0xf, 0x3, 0xf1,0x69,0x30,0x0, 0x6, 0x4d,0x33,0x78,0xf4,0x7d,0x36,0x2e,0x34,0x80, +0x0, 0x1b,0xa, 0x30,0x7e,0x1f,0x3, 0xf1,0x69,0x11,0x0, 0x8, 0x4d,0x11,0x68,0xf4, +0x1b,0x1a,0x70,0x7e,0x1f,0x3, 0xf1,0x69,0x31,0x0, 0x8, 0x4d,0x33,0x68,0xf4,0xa9, +0xc5,0xcb,0xa9,0xc3,0xcb,0x7e,0x37,0x67,0x1e,0x2e,0x34,0xff,0xff,0x92,0x9, 0x12, +0xc, 0x17,0xda,0x3b,0x22,0xca,0x3b,0x7d,0x72,0x7d,0x63,0xa2,0xac,0x92,0x3, 0xc2, +0xac,0x7e,0x1f,0x78,0x39,0x69,0x31,0x0, 0x4, 0x5e,0x34,0x10,0x0, 0x7a,0x37,0x67, +0x1e,0xc2,0x9, 0x12,0xc, 0x17,0xa2,0x3, 0x92,0xac,0xd2,0xcd,0xa9,0xd5,0xcb,0x7e, +0x34,0x0, 0x1, 0x7e,0xf, 0x3, 0xf5,0x79,0x30,0x0, 0x6, 0x7e,0xf, 0x3, 0xf5,0x69, +0x30,0x0, 0x6, 0x4d,0x33,0x78,0xf4,0x7d,0x36,0x2e,0x34,0x80,0x0, 0x1b,0xa, 0x30, +0x7e,0x1f,0x3, 0xf5,0x69,0x11,0x0, 0x8, 0x4d,0x11,0x68,0xf4,0x1b,0x1a,0x70,0x7e, +0x1f,0x3, 0xf5,0x69,0x31,0x0, 0x8, 0x4d,0x33,0x68,0xf4,0xa9,0xc5,0xcb,0xc2,0xcd, +0x7e,0x37,0x67,0x1e,0x2e,0x34,0xff,0xff,0x92,0x9, 0x12,0xc, 0x17,0xda,0x3b,0x22, +0xca,0x3b,0x7d,0x73,0xa2,0xac,0x92,0x0, 0xc2,0xac,0x7e,0x1f,0x78,0x39,0x69,0x61, +0x0, 0x4, 0x5e,0x64,0x10,0x0, 0xc2,0x9, 0x12,0xc, 0x17,0xa2,0x0, 0x92,0xac,0xa9, +0xd3,0xcb,0xa9,0xd5,0xcb,0x7e,0x34,0x0, 0x1, 0x7e,0xf, 0x3, 0xf1,0x79,0x30,0x0, +0x6, 0x7e,0x1f,0x3, 0xf1,0x69,0x11,0x0, 0x6, 0x4d,0x11,0x78,0xf4,0x1b,0x1a,0x70, +0x7e,0xf, 0x3, 0xf1,0x69,0x30,0x0, 0x8, 0x4d,0x33,0x68,0xf4,0x6d,0x33,0x1b,0xa, +0x30,0x7e,0x1f,0x3, 0xf1,0x69,0x11,0x0, 0x8, 0x4d,0x11,0x68,0xf4,0x69,0x71,0x0, +0x2, 0xa9,0xc5,0xcb,0xa9,0xc3,0xcb,0x2e,0x64,0xff,0xff,0x92,0x9, 0x12,0xc, 0x17, +0x7d,0x37,0xda,0x3b,0x22,0x7e,0x8, 0x1, 0x7c,0x7e,0x34,0x0, 0x18,0xe4,0x12,0x24, +0x34,0xa9,0xd1,0xcb,0xd2,0xcc,0x7e,0x34,0x0, 0x4, 0x7e,0x8, 0x1, 0x7c,0x74,0xc, +0x12,0xa, 0xb5,0xa9,0xd1,0xcb,0xc2,0xcc,0x6c,0xaa,0x7e,0x70,0x2, 0xac,0x7a,0x7e, +0x8, 0x1, 0x7c,0x2d,0x13,0xb, 0xa, 0x20,0x7c,0x45,0x6c,0x55,0xb, 0xa, 0x30,0xa, +0x36,0x4d,0x32,0x1b,0xa, 0x30,0xb, 0xa0,0xbe,0xa0,0xc, 0x40,0xdd,0x22,0xff,0xff, +0xca,0x3b,0x7d,0x73,0xa2,0xac,0x92,0x0, 0xc2,0xac,0x7e,0x1f,0x78,0x39,0x69,0x61, +0x0, 0x4, 0x5e,0x64,0x10,0x0, 0xc2,0x9, 0x12,0xc, 0x17,0xa2,0x0, 0x92,0xac,0xd2, +0xcd,0xa9,0xd5,0xcb,0x7e,0x34,0x0, 0x1, 0x7e,0xf, 0x3, 0xf5,0x79,0x30,0x0, 0x6, +0x7e,0x1f,0x3, 0xf5,0x69,0x11,0x0, 0x6, 0x4d,0x11,0x78,0xf4,0x1b,0x1a,0x70,0x7e, +0xf, 0x3, 0xf5,0x69,0x30,0x0, 0x8, 0x4d,0x33,0x68,0xf4,0x6d,0x33,0x1b,0xa, 0x30, +0x7e,0x1f,0x3, 0xf5,0x69,0x11,0x0, 0x8, 0x4d,0x11,0x68,0xf4,0x69,0x71,0x0, 0x2, +0xa9,0xc5,0xcb,0xc2,0xcd,0x2e,0x64,0xff,0xff,0x92,0x9, 0x12,0xc, 0x17,0x7d,0x37, +0xda,0x3b,0x22,0xa9,0xd6,0xcb,0x69,0x30,0x0, 0x6, 0x7e,0x2f,0x78,0x35,0x79,0x32, +0x0, 0x4, 0x69,0x30,0x0, 0x8, 0x7e,0x2f,0x78,0x35,0x79,0x32,0x0, 0x8, 0x29,0x70, +0x0, 0x2, 0x7c,0x47,0x6c,0x55,0x29,0x70,0x0, 0x3, 0xa, 0x37,0x2d,0x32,0x7e,0x2f, +0x78,0x35,0x79,0x32,0x0, 0xc, 0x7e,0xb, 0x70,0x7c,0x47,0x29,0x70,0x0, 0x1, 0xa, +0x37,0x2d,0x32,0x7e,0x2f,0x78,0x35,0x79,0x32,0x0, 0xa, 0x29,0x70,0x0, 0x4, 0xa, +0x37,0x7e,0x2f,0x78,0x35,0x79,0x32,0x0, 0xe, 0x29,0xb0,0x0, 0x5, 0x54,0x1, 0x7c, +0x2b,0x6c,0x33,0x7e,0x1f,0x78,0x35,0x1b,0x1a,0x10,0x7e,0x34,0x0, 0xc0,0x12,0xa, +0x5e,0xa9,0xc6,0xcb,0x22,0xa9,0xd6,0xcb,0xc2,0x2f,0x69,0x30,0x0, 0x4, 0x7e,0x2f, +0x78,0x35,0x79,0x32,0x0, 0x4, 0x69,0x30,0x0, 0x6, 0x7e,0x2f,0x78,0x35,0x79,0x32, +0x0, 0x6, 0x69,0x30,0x0, 0x8, 0x7e,0x2f,0x78,0x35,0x79,0x32,0x0, 0x8, 0x7e,0xb, +0x70,0x7c,0x47,0x6c,0x55,0x29,0x70,0x0, 0x1, 0xa, 0x37,0x2d,0x32,0x7e,0x2f,0x78, +0x35,0x79,0x32,0x0, 0xc, 0x29,0x70,0x0, 0x2, 0xa, 0x37,0x7e,0x2f,0x78,0x35,0x79, +0x32,0x0, 0xe, 0x29,0xb0,0x0, 0x3, 0x54,0x1, 0xa, 0x5b,0x7c,0xab,0xe4,0x7e,0x1f, +0x78,0x35,0x1b,0x1a,0x50,0x69,0x30,0x0, 0xa, 0x12,0xa, 0x5e,0xa9,0xc6,0xcb,0x22, +0xa9,0xd6,0xcb,0x69,0x20,0x0, 0x4, 0x7e,0x2f,0x78,0x35,0x79,0x22,0x0, 0x4, 0x69, +0x20,0x0, 0x8, 0x7e,0x2f,0x78,0x35,0x79,0x22,0x0, 0x8, 0x7e,0xb, 0x50,0xa, 0x55, +0x7c,0xab,0xe4,0x29,0x50,0x0, 0x1, 0xa, 0x25,0x2d,0x25,0x7e,0x2f,0x78,0x35,0x79, +0x22,0x0, 0xc, 0x29,0x50,0x0, 0x2, 0xa, 0x25,0x7e,0xf, 0x78,0x35,0x79,0x20,0x0, +0xe, 0x7e,0xf, 0x78,0x35,0x79,0x30,0x0, 0xa, 0x6d,0x11,0x7e,0x1f,0x78,0x35,0x1b, +0x1a,0x10,0x7e,0x34,0x0, 0x40,0x12,0xa, 0x5e,0xa9,0xc6,0xcb,0x22,0xca,0x3b,0x6c, +0xaa,0x7e,0x90,0x2, 0xac,0x9a,0x7f,0x70,0x2d,0xf4,0xb, 0x7a,0x40,0x5e,0x80,0x3, +0x1b,0x7a,0x40,0x7e,0x90,0x6, 0xac,0x9a,0x7c,0xb9,0x7f,0x71,0x60,0xd, 0x1e,0xf4, +0x1e,0xe4,0x50,0x4, 0x4e,0xf4,0x80,0x0, 0x14,0x78,0xf3,0x7d,0x4f,0x5e,0x44,0x0, +0x3f,0x7d,0x74,0x7c,0xef,0x6c,0xff,0x3e,0x74,0x3e,0x74,0x7e,0xd0,0x2, 0xac,0xda, +0x7f,0x60,0x2d,0xd6,0xb, 0x6a,0xf0,0x4d,0xf7,0x1b,0x6a,0xf0,0xb, 0xa0,0xbe,0xa0, +0x4, 0x40,0xae,0xda,0x3b,0x22,0x7f,0x10,0xa9,0xd6,0xcb,0x69,0x11,0x0, 0x2, 0x7e, +0x2f,0x78,0x35,0x79,0x12,0x0, 0x4, 0x69,0x11,0x0, 0x4, 0x7e,0x2f,0x78,0x35,0x79, +0x12,0x0, 0x6, 0x69,0x11,0x0, 0x6, 0x7e,0x2f,0x78,0x35,0x79,0x12,0x0, 0x8, 0x7e, +0x1b,0x30,0xa, 0x3, 0x7e,0x14,0x1, 0x0, 0xad,0x10,0x29,0x71,0x0, 0x1, 0xa, 0x37, +0x2d,0x31,0x7e,0xf, 0x78,0x35,0x79,0x30,0x0, 0xc, 0x6d,0x11,0x7e,0x1f,0x78,0x35, +0x1b,0x1a,0x10,0x7e,0x34,0x0, 0x60,0x12,0xa, 0x5e,0xa9,0xc6,0xcb,0x22,0xa9,0xd7, +0xcb,0x7d,0x23,0x4e,0x50,0x1, 0x7e,0xf, 0x78,0x35,0xb, 0xa, 0x30,0x4d,0x32,0x1b, +0xa, 0x30,0x80,0x1e,0x7e,0xf, 0x78,0x35,0xb, 0xa, 0x30,0x7d,0x23,0x5e,0x24,0x0, +0x8, 0xbe,0x24,0x0, 0x8, 0x78,0xb, 0xa9,0xd7,0xcb,0x4e,0x70,0x4, 0x1b,0xa, 0x30, +0xd2,0x2f,0x7e,0xf, 0x78,0x35,0xb, 0xa, 0x30,0x7d,0x23,0x5e,0x24,0x80,0x0, 0xbe, +0x24,0x80,0x0, 0x78,0xcf,0x4e,0x60,0x40,0x1b,0xa, 0x30,0x6d,0x11,0x7e,0x1f,0x78, +0x35,0x1b,0x1a,0x10,0x22,0x7e,0x24,0x0, 0x1, 0x7e,0x7f,0x3, 0xf9,0x79,0x27,0x0, +0x6, 0x7e,0x7f,0x3, 0xf9,0x69,0x27,0x0, 0x6, 0x4d,0x22,0x78,0xf4,0x5e,0x60,0x7f, +0x1b,0x7a,0x30,0x7e,0x1f,0x3, 0xf9,0x69,0x31,0x0, 0x8, 0x4d,0x33,0x68,0xf4,0x6c, +0xaa,0x80,0x20,0x6d,0x44,0x7e,0x1f,0x3, 0xf9,0x1b,0x1a,0x40,0x7e,0x1f,0x3, 0xf9, +0x69,0x41,0x0, 0x8, 0x4d,0x44,0x68,0xf4,0x69,0x41,0x0, 0x2, 0x1b,0xa, 0x40,0xb, +0x15,0xb, 0xa0,0xbc,0xba,0x38,0xdc,0x22,0xca,0x79,0x7c,0xab,0x6c,0x99,0x80,0x2d, +0x7e,0xf0,0x2, 0xac,0xf9,0x7f,0x60,0x2d,0xd7,0xb, 0x6a,0xf0,0x5e,0xf4,0xfc,0x0, +0x1b,0x6a,0xf0,0x7f,0x71,0x2d,0xf7,0xb, 0x7a,0xe0,0x7e,0xf0,0x2, 0xac,0xf9,0x7f, +0x60,0x2d,0xd7,0xb, 0x6a,0xf0,0x4d,0xfe,0x1b,0x6a,0xf0,0xb, 0x90,0xbc,0xa9,0x38, +0xcf,0xda,0x79,0x22,0xb, 0x38,0x20,0x5e,0x50,0xc0,0x1b,0x38,0x20,0xb, 0xa, 0x20, +0x5e,0x40,0x7, 0x1b,0xa, 0x20,0xe5,0x29,0xa, 0x5b,0xb, 0x38,0x20,0x4d,0x25,0x1b, +0x38,0x20,0xe5,0x28,0xa, 0x3b,0x7d,0x23,0x7c,0x45,0x6c,0x55,0x3e,0x24,0x3e,0x24, +0x3e,0x24,0xb, 0xa, 0x30,0x4d,0x32,0x1b,0xa, 0x30,0x22,0xa9,0xd6,0xcb,0x54,0x3f, +0x5e,0x70,0x1f,0x7e,0x14,0x0, 0x1, 0x7e,0x7f,0x78,0x35,0x79,0x17,0x0, 0x2, 0x7c, +0x2b,0x6c,0x33,0xa, 0x37,0x2d,0x31,0x7e,0xf, 0x78,0x35,0x79,0x30,0x0, 0x32,0x7e, +0xf, 0x78,0x35,0x79,0x20,0x0, 0x14,0xa9,0xc6,0xcb,0x12,0x7, 0xb5,0x2, 0xd, 0x59, +0x30,0x28,0x31,0xa9,0xd2,0xea,0xa9,0xc2,0xea,0x6d,0x33,0x7e,0xf, 0x78,0x39,0x79, +0x30,0x0, 0x16,0x7e,0x34,0x1, 0x2c,0x7e,0xf, 0x78,0x39,0x79,0x30,0x0, 0x18,0xc2, +0x28,0x7e,0xf, 0x78,0x39,0x2e,0x14,0x0, 0x14,0xb, 0xa, 0x30,0x5e,0x70,0xfb,0x1b, +0xa, 0x30,0xc2,0x27,0x22,0xa2,0xac,0x92,0x8, 0x7e,0xf, 0x78,0x39,0xb, 0xa, 0x30, +0x5e,0x34,0x10,0x0, 0x68,0xb, 0xb, 0x15,0xb, 0xa, 0x30,0x4e,0x60,0x10,0x1b,0xa, +0x30,0xc2,0xac,0x7e,0xf, 0x78,0x39,0xb, 0x16,0xb, 0xa, 0x30,0x4e,0x60,0x10,0x1b, +0xa, 0x30,0xa2,0x8, 0x92,0xac,0x22,0xa2,0xac,0x92,0xa, 0xc2,0xac,0x7e,0xf, 0x78, +0x39,0x30,0x9, 0xa, 0xb, 0x16,0xb, 0xa, 0x30,0x4e,0x60,0x10,0x80,0x8, 0xb, 0x16, +0xb, 0xa, 0x30,0x5e,0x60,0xef,0x1b,0xa, 0x30,0xa2,0xa, 0x92,0xac,0x22,0xb, 0xa, +0x30,0x5e,0x34,0xfc,0x7f,0x1b,0xa, 0x30,0xa, 0x2b,0x5e,0x24,0x0, 0x7, 0x3e,0x24, +0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0xb, 0xa, 0x30,0x4d, +0x32,0x1b,0xa, 0x30,0x22,0xa9,0xd7,0xca,0x7e,0x24,0x0, 0x1, 0x7e,0xf, 0x78,0x3d, +0x1b,0xa, 0x20,0x7e,0x24,0x9, 0x60,0x7e,0xf, 0x78,0x3d,0x79,0x20,0x0, 0x2, 0x7e, +0xf, 0x78,0x3d,0x79,0x30,0x0, 0x4, 0x22,0xb, 0xa, 0x20,0x5e,0x24,0x80,0x1f,0x1b, +0xa, 0x20,0x7d,0x23,0x5e,0x40,0x3, 0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e, +0x24,0xb, 0xa, 0x30,0x2d,0x32,0x1b,0xa, 0x30,0x22,0xb, 0xa, 0x30,0x5e,0x60,0xc7, +0x1b,0xa, 0x30,0x54,0x7, 0xa, 0x3b,0x7d,0x23,0x7c,0x45,0x6c,0x55,0x3e,0x24,0x3e, +0x24,0x3e,0x24,0xb, 0xa, 0x30,0x4d,0x32,0x1b,0xa, 0x30,0x22,0xca,0x3b,0x7d,0x72, +0x7a,0xd, 0x28,0x7d,0x63,0x7e,0xd, 0x28,0x7d,0x27,0x12,0x3, 0xfa,0x7d,0x36,0x7e, +0xd, 0x28,0x7d,0x27,0x12,0x4, 0x96,0xda,0x3b,0x22,0xb, 0xa, 0x30,0x5e,0x60,0x9f, +0x1b,0xa, 0x30,0x54,0x3, 0xa, 0x5b,0xc4,0x23,0x54,0xe0,0x7c,0xab,0xe4,0xb, 0xa, +0x30,0x4d,0x35,0x1b,0xa, 0x30,0x22,0xb, 0xa, 0x30,0x5e,0x70,0xe7,0x1b,0xa, 0x30, +0x54,0x3, 0xa, 0x2b,0x3e,0x24,0x3e,0x24,0x3e,0x24,0xb, 0xa, 0x30,0x4d,0x32,0x1b, +0xa, 0x30,0x22,0x7c,0xa7,0xb, 0xa, 0x30,0x5e,0x60,0x40,0x60,0x3, 0x4e,0x60,0x80, +0x7c,0xba,0x54,0x3f,0x7c,0x4b,0x6c,0x55,0x4d,0x32,0x1b,0xa, 0x30,0x22,0xb, 0xa, +0x50,0x54,0xe0,0x1b,0xa, 0x50,0x7d,0x52,0x5e,0x54,0x0, 0x1f,0xb, 0xa, 0x20,0x4d, +0x25,0x1b,0xa, 0x20,0x79,0x30,0x0, 0x2, 0x22,0x7e,0xb3,0x1, 0x8c,0xb4,0xe7,0x12, +0x7e,0xb3,0x1, 0x8d,0xb4,0x16,0xb, 0x7e,0xb3,0x1, 0x89,0x54,0x1, 0xb4,0x1, 0x2, +0x80,0xfe,0x22,0xb, 0xa, 0x30,0x5e,0x60,0xf, 0x1b,0xa, 0x30,0xa, 0x5b,0xc4,0x54, +0xf0,0x7c,0xab,0xe4,0xb, 0xa, 0x30,0x4d,0x35,0x1b,0xa, 0x30,0x22,0xb, 0xa, 0x30, +0x5e,0x60,0xfc,0x1b,0xa, 0x30,0x54,0x3, 0x7c,0x4b,0x6c,0x55,0xb, 0xa, 0x30,0x4d, +0x32,0x1b,0xa, 0x30,0x22,0xb, 0xa, 0x20,0x5e,0x50,0xfc,0x1b,0xa, 0x20,0x7d,0x23, +0x5e,0x24,0x0, 0x3, 0xb, 0xa, 0x30,0x4d,0x32,0x1b,0xa, 0x30,0x22,0xd2,0x28,0xd2, +0x27,0x7e,0xf, 0x78,0x39,0x2e,0x14,0x0, 0x14,0xb, 0xa, 0x30,0x4e,0x70,0x2, 0x1b, +0xa, 0x30,0x22,0x7d,0x23,0xb, 0xa, 0x30,0x5e,0x34,0xf8,0x0, 0x1b,0xa, 0x30,0x4d, +0x32,0x1b,0xa, 0x30,0x22,0x7d,0x23,0xb, 0xa, 0x30,0x5e,0x34,0xf8,0x0, 0x1b,0xa, +0x30,0x4d,0x32,0x1b,0xa, 0x30,0x22,0xb, 0xa, 0x30,0x5e,0x70,0x3, 0x70,0x3, 0x4e, +0x70,0xc, 0x1b,0xa, 0x30,0x22,0x2, 0xd, 0x14,0x1b,0x21,0x25,0x2b,0x31,0x37,0x36, +0x33,0x2d,0x28,0x20,0x19,0x14,0xd, 0x8, 0x1, 0x2, 0x5, 0xb, 0x10,0x18,0x1e,0x23, +0x2a,0x30,0x35,0x3a,0x3e,0x3f,0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x4, +0x9, 0xf, 0x15,0x1d,0x24,0x2a,0x30,0x35,0x3b,0x3e,0x3f,0x40,0x3f,0x3e,0x3d,0x3d, +0x3c,0x3c,0x3b,0x3b,0x39,0x37,0x1a,0x2d,0x65,0x55,0x1b,0x29,0x27,0x1e,0x14,0x11, +0x1a,0x26,0x2e,0x37,0x3d,0x3f,0x3d,0x37,0x2e,0x21,0x16,0xc, 0x5, 0x1, 0x0, 0x0, +0x1, 0x3, 0xa, 0x13,0x1d,0x26,0x2e,0x33,0x38,0x3a,0x16,0x21,0x2b,0x32,0x30,0x2a, +0x27,0x2a,0x2f,0x2d,0x24,0x1a,0x10,0x7, 0x1, 0x0, 0x2, 0x7, 0x10,0x19,0x23,0x2d, +0x36,0x41,0x49,0x4c,0x4a,0x45,0x3c,0x34,0x2a,0x27,0x51,0x71,0x50,0x55,0x28,0x12, +0x11,0x18,0x23,0x29,0x2b,0x2a,0x2e,0x35,0x3c,0x3e,0x3f,0x39,0x31,0x28,0x1e,0x15, +0xe, 0x6, 0x3, 0x1, 0x0, 0x0, 0x3, 0xc, 0x16,0x20,0x2b,0x32,0x37,0x39,0x20,0x29, +0x32,0x37,0x31,0x28,0x21,0x2a,0x31,0x2d,0x23,0x1b,0x13,0x8, 0x1, 0x0, 0x1, 0x5, +0xc, 0x18,0x20,0x29,0x34,0x3e,0x47,0x4f,0x50,0x4d,0x45,0x3c,0x34,0x31,0x26,0xcb, +0x50,0x55,0x1d,0x2f,0x2c,0x25,0x1a,0x1b,0x20,0x29,0x31,0x31,0x2e,0x2d,0x35,0x3d, +0x3f,0x3d,0x38,0x2c,0x22,0x15,0xd, 0x6, 0x1, 0x0, 0x1, 0x6, 0x10,0x1b,0x24,0x2f, +0x38,0x3d,0xd, 0x1b,0x27,0x31,0x32,0x28,0x1e,0x14,0x15,0x1d,0x28,0x31,0x34,0x2a, +0x1f,0x14,0x9, 0x1, 0x0, 0x4, 0xd, 0x17,0x21,0x2c,0x35,0x40,0x47,0x47,0x44,0x3c, +0x34,0x30,0x1b,0x82,0x50,0x55,0x19,0x2e,0x2a,0x1f,0x18,0x1b,0x22,0x2d,0x30,0x2e, +0x2e,0x35,0x3d,0x3f,0x3d,0x3a,0x2f,0x24,0x18,0xf, 0x7, 0x1, 0x0, 0x0, 0x3, 0xb, +0x16,0x1e,0x29,0x32,0x3a,0x3d,0x11,0x1f,0x28,0x32,0x30,0x26,0x1b,0x14,0x1c,0x25, +0x2e,0x35,0x2e,0x23,0x19,0x11,0x4, 0x0, 0x1, 0x8, 0x10,0x1c,0x25,0x30,0x38,0x40, +0x42,0x3f,0x39,0x32,0x2c,0x27,0xc0,0xd1,0x50,0x55,0x18,0x2c,0x29,0x1e,0x14,0x13, +0x16,0x1e,0x29,0x30,0x2e,0x2c,0x2b,0x37,0x3d,0x3f,0x3e,0x39,0x30,0x25,0x1b,0x10, +0x8, 0x1, 0x0, 0x2, 0x9, 0x13,0x1f,0x2d,0x38,0x3c,0x11,0x1a,0x23,0x2f,0x33,0x29, +0x20,0x16,0xe, 0x13,0x1d,0x28,0x32,0x31,0x28,0x1e,0x16,0xb, 0x2, 0x0, 0x1, 0x8, +0x12,0x1e,0x29,0x33,0x3b,0x3f,0x3c,0x32,0x29,0x26,0x30,0x6e,0x50,0x55,0x16,0x2b, +0x24,0x17,0xd, 0xa, 0xe, 0x15,0x24,0x28,0x25,0x23,0x2b,0x36,0x3b,0x3d,0x3b,0x37, +0x2b,0x20,0x15,0xb, 0x4, 0x0, 0x0, 0x3, 0xe, 0x19,0x27,0x33,0x3d,0x3f,0x13,0x21, +0x2e,0x37,0x3a,0x31,0x27,0x1c,0x13,0x1c,0x28,0x34,0x3e,0x37,0x2d,0x22,0x18,0xc, +0x1, 0x0, 0x3, 0xd, 0x18,0x25,0x31,0x3c,0x47,0x48,0x42,0x38,0x2e,0x2a,0x31,0x62, +0x50,0x55,0x35,0x2e,0x27,0x22,0x1f,0x1b,0x16,0x10,0xc, 0x8, 0x6, 0x4, 0x2, 0x0, +0x0, 0x0, 0x1, 0x3, 0x6, 0xb, 0xe, 0x12,0x17,0x1d,0x22,0x26,0x2a,0x30,0x35,0x39, +0x3d,0x3f,0x0, 0x0, 0x1, 0x4, 0x6, 0x8, 0xb, 0x10,0x16,0x1b,0x1f,0x23,0x28,0x2d, +0x32,0x36,0x3b,0x40,0x44,0x48,0x4a,0x4b,0x4c,0x4b,0x4a,0x48,0x46,0x43,0x40,0x3e, +0x3c,0x3a,0x3c,0x9c,0x34,0x55,0x2d,0x28,0x24,0x22,0x1f,0x1c,0x19,0x16,0x13,0x10, +0xc, 0x8, 0x5, 0x2, 0x0, 0x3, 0x7, 0xa, 0xe, 0x11,0x16,0x19,0x1e,0x22,0x27,0x2c, +0x30,0x33,0x36,0x39,0x3d,0x40,0x0, 0x2, 0x6, 0x9, 0xb, 0xe, 0x11,0x14,0x16,0x18, +0x1b,0x1f,0x22,0x25,0x28,0x29,0x2b,0x2c,0x2d,0x2e,0x2f,0x30,0x32,0x33,0x35,0x36, +0x38,0x39,0x3b,0x3c,0x3e,0x40,0xac,0x6a,0x34,0x55,0x25,0x1e,0x1a,0x17,0x15,0x11, +0xe, 0xb, 0x9, 0x7, 0x4, 0x2, 0x1, 0x2, 0x5, 0x9, 0xd, 0x10,0x13,0x17,0x1b,0x1e, +0x21,0x25,0x29,0x2d,0x30,0x33,0x37,0x3b,0x3e,0x40,0x0, 0x6, 0xc, 0x10,0x13,0x19, +0x1f,0x23,0x27,0x2b,0x2f,0x33,0x36,0x38,0x3a,0x3a,0x3a,0x3b,0x3b,0x3b,0x3c,0x3c, +0x3c,0x3c,0x3c,0x3d,0x3d,0x3d,0x3e,0x3e,0x3f,0x40,0xca,0xd8,0x34,0x55,0x9, 0x17, +0x1d,0x26,0x2e,0x37,0x3c,0x3f,0x3b,0x33,0x2b,0x22,0x1a,0x11,0xb, 0x5, 0x3, 0x1, +0x1, 0x0, 0x0, 0x0, 0x1, 0x6, 0xa, 0x11,0x19,0x22,0x2a,0x32,0x39,0x3d,0x30,0x30, +0x2f,0x2c,0x26,0x1e,0x17,0xd, 0x5, 0x0, 0x0, 0x1, 0x6, 0xe, 0x15,0x1e,0x26,0x2c, +0x32,0x3a,0x41,0x48,0x50,0x5b,0x61,0x64,0x64,0x60,0x5b,0x56,0x51,0x4f,0xd8,0x2c, +0x33,0x55,0x6, 0x11,0x18,0x1e,0x22,0x27,0x2a,0x2c,0x29,0x25,0x1f,0x18,0x11,0xb, +0x5, 0x1, 0x0, 0x0, 0x1, 0x3, 0x6, 0xa, 0x11,0x18,0x20,0x26,0x2c,0x32,0x36,0x3b, +0x3d,0x3f,0x48,0x37,0x2e,0x24,0x1a,0x11,0xa, 0x4, 0x0, 0x0, 0x1, 0x5, 0xb, 0x12, +0x1b,0x21,0x28,0x30,0x37,0x41,0x47,0x4e,0x54,0x53,0x4e,0x48,0x41,0x3b,0x33,0x2c, +0x28,0x25,0xb, 0x67,0x33,0x55,0x6, 0xc, 0x15,0x19,0x22,0x2b,0x2f,0x36,0x3c,0x3e, +0x3f,0x39,0x34,0x29,0x25,0x1d,0x14,0xf, 0x7, 0x2, 0x0, 0x0, 0x0, 0x2, 0xc, 0x10, +0x10,0x10,0x10,0x10,0x10,0x10,0x36,0x35,0x32,0x31,0x2d,0x28,0x25,0x1f,0x18,0x13, +0xa, 0x2, 0x0, 0x0, 0x0, 0x3, 0x8, 0xc, 0x17,0x21,0x26,0x31,0x3b,0x3f,0x45,0x46, +0x46,0x46,0x46,0x46,0x46,0x46,0xf0,0x59,0x33,0x55,0x0, 0x6, 0xf, 0x19,0x21,0x2a, +0x2e,0x32,0x2a,0x21,0x18,0x14,0xc, 0x6, 0x2, 0x0, 0x1, 0xb, 0x13,0x1d,0x25,0x2a, +0x32,0x3a,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x23,0x1f,0x1b,0x17,0x13,0xc, +0x9, 0x1, 0x1, 0x6, 0xe, 0x12,0x1b,0x24,0x2d,0x37,0x3b,0x3f,0x3f,0x3d,0x39,0x36, +0x2e,0x25,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xf4,0x7b,0x33,0x55,0x5, 0xd, +0x19,0x23,0x2d,0x31,0x34,0x2c,0x22,0x1e,0x15,0xd, 0x8, 0x4, 0x2, 0x0, 0x2, 0xc, +0x10,0x19,0x21,0x2a,0x2e,0x37,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x1c,0x1b, +0x18,0x16,0x10,0xd, 0x4, 0x0, 0x3, 0x5, 0xc, 0x16,0x1e,0x26,0x2a,0x35,0x3d,0x3f, +0x3e,0x3c,0x3b,0x3a,0x39,0x38,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x8d,0x3a, +0x33,0x55,0x5, 0xd, 0x13,0x19,0x20,0x26,0x2e,0x35,0x3c,0x3d,0x37,0x2f,0x20,0x19, +0x11,0xb, 0x5, 0x2, 0x0, 0x0, 0x1, 0x6, 0xc, 0x17,0x1d,0x23,0x29,0x30,0x36,0x3b, +0x3e,0x3e,0x28,0x25,0x22,0x20,0x1d,0x18,0x14,0xf, 0x8, 0x2, 0x0, 0x0, 0x4, 0x7, +0xc, 0x11,0x18,0x1e,0x24,0x2c,0x33,0x3a,0x3e,0x3f,0x3e,0x3c,0x38,0x31,0x2a,0x21, +0x1a,0x1a,0x6, 0x33,0x33,0x55,0x26,0x1c,0x19,0x18,0x18,0x18,0x18,0x18,0x18,0x18, +0x17,0x17,0x15,0xf, 0x9, 0x4, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x4, 0xb, 0x12,0x18, +0x1f,0x28,0x31,0x37,0x3c,0x40,0x1, 0x7, 0xe, 0x14,0x1c,0x23,0x2c,0x34,0x3e,0x44, +0x4c,0x54,0x5b,0x60,0x5d,0x55,0x4f,0x49,0x43,0x3d,0x38,0x32,0x2b,0x26,0x22,0x1f, +0x1e,0x1c,0x1c,0x1c,0x1c,0x1d,0x66,0x54,0x74,0x55,0x3e,0x2c,0x21,0x1d,0x1d,0x1d, +0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1e,0x1e,0x1d,0x1a,0x11,0xc, 0x7, 0x2, +0x0, 0x0, 0x3, 0xa, 0x12,0x1c,0x23,0x2c,0x38,0x40,0xc, 0x0, 0x6, 0xf, 0x17,0x22, +0x29,0x32,0x3b,0x41,0x47,0x4f,0x55,0x5c,0x66,0x71,0x79,0x3e,0x76,0x6d,0x64,0x5a, +0x52,0x4b,0x42,0x39,0x35,0x33,0x32,0x32,0x31,0x31,0xf3,0xdb,0x74,0x55,0x9, 0x7, +0x6, 0x6, 0x5, 0x5, 0x4, 0x4, 0x4, 0x4, 0x3, 0x2, 0x2, 0x2, 0x1, 0x0, 0x0, 0x0, +0x0, 0x0, 0x3, 0xa, 0x10,0x14,0x1b,0x22,0x28,0x2e,0x34,0x39,0x3d,0x40,0x0, 0xb, +0x11,0x16,0x1b,0x22,0x28,0x2c,0x33,0x39,0x40,0x46,0x4d,0x52,0x56,0x5c,0x61,0x68, +0x6d,0x73,0x73,0x71,0x71,0x71,0x70,0x70,0x6f,0x6f,0x6f,0x6f,0x6d,0x6e,0x79,0x80, +0x44,0x55,0x17,0x13,0x12,0x12,0x11,0x10,0xf, 0xd, 0xc, 0xb, 0x9, 0x8, 0x7, 0x4, +0x3, 0x2, 0x1, 0x0, 0x0, 0x0, 0x1, 0x4, 0xb, 0x10,0x16,0x1d,0x24,0x29,0x31,0x39, +0x3d,0x40,0x0, 0xe, 0x16,0x1a,0x1f,0x24,0x29,0x2e,0x33,0x38,0x3e,0x43,0x47,0x50, +0x55,0x59,0x62,0x69,0x6e,0x75,0x7c,0xff,0x7d,0x7c,0x79,0x73,0x6d,0x68,0x60,0x5a, +0x57,0x56,0x5d,0x8, 0x44,0x55,0x0, 0x7, 0xb, 0xd, 0x10,0x12,0x16,0x17,0x17,0x18, +0x18,0x19,0x19,0x19,0x1c,0x1e,0x20,0x22,0x23,0x25,0x27,0x29,0x2b,0x30,0x32,0x33, +0x35,0x38,0x39,0x3b,0x3d,0x3f,0x3e,0x29,0x1f,0x18,0xf, 0x7, 0x6, 0xc, 0x12,0x1d, +0x25,0x2d,0x36,0x3e,0x3b,0x35,0x2c,0x26,0x20,0x19,0x11,0xa, 0x3, 0x3, 0x9, 0x10, +0x18,0x24,0x2c,0x33,0x3a,0x3e,0x60,0x9b,0x32,0x55,0x0, 0x5, 0x5, 0x5, 0x4, 0x3, +0x2, 0x3, 0x5, 0x7, 0xa, 0xe, 0x11,0x19,0x1b,0x1c,0x1d,0x1c,0x1c,0x1d,0x1f,0x22, +0x25,0x2a,0x31,0x33,0x35,0x37,0x38,0x39,0x3c,0x40,0x0, 0x12,0x1c,0x24,0x2b,0x34, +0x3c,0x39,0x2f,0x29,0x21,0x16,0xf, 0xd, 0x14,0x1e,0x2a,0x33,0x31,0x27,0x20,0x18, +0x10,0x7, 0xa, 0x10,0x1a,0x26,0x2f,0x37,0x3d,0x3f,0xfb,0x8f,0x32,0x55,0x0, 0x0, +0x1, 0x3, 0x8, 0xb, 0x12,0x18,0x1b,0x20,0x22,0x22,0x23,0x24,0x26,0x27,0x29,0x2b, +0x30,0x31,0x31,0x32,0x32,0x34,0x35,0x37,0x3b,0x3e,0x3f,0x3f,0x3f,0x3f,0x7b,0x6d, +0x5f,0x53,0x40,0x36,0x23,0x14,0xb, 0x3, 0xe, 0x1e,0x29,0x35,0x29,0x20,0x11,0x7, +0x6, 0x16,0x1f,0x2d,0x35,0x43,0x4c,0x59,0x68,0x72,0x74,0x74,0x74,0x74,0x90,0x27, +0x32,0x55,0x2c,0x23,0x1f,0x19,0x13,0xc, 0x7, 0x3, 0x0, 0x0, 0x0, 0x1, 0x5, 0xa, +0xf, 0x16,0x1d,0x23,0x2a,0x30,0x36,0x3b,0x3e,0x40,0x3f,0x3e,0x3b,0x38,0x33,0x2f, +0x2b,0x28,0x9, 0x1, 0x0, 0x1, 0x3, 0x9, 0xe, 0x14,0x1b,0x21,0x27,0x2e,0x36,0x3b, +0x3e,0x41,0x41,0x40,0x3d,0x3a,0x36,0x2f,0x2b,0x26,0x20,0x1c,0x16,0x10,0xc, 0xa, +0x9, 0xb, 0x36,0xdc,0x30,0x55,0x1a,0x9, 0x5, 0x1, 0x0, 0x0, 0x0, 0x2, 0x5, 0x9, +0xf, 0x16,0x1c,0x22,0x2a,0x31,0x36,0x39,0x3c,0x3e,0x3f,0x3f,0x3d,0x38,0x30,0x27, +0x1f,0x18,0x12,0xb, 0x6, 0x5, 0x7, 0x12,0x19,0x22,0x2c,0x36,0x3f,0x49,0x53,0x5c, +0x63,0x66,0x64,0x5f,0x58,0x4c,0x43,0x3d,0x34,0x2b,0x22,0x1b,0x15,0xb, 0x4, 0x0, +0x0, 0x1, 0x4, 0xb, 0x13,0x18,0xf1,0xc, 0x30,0x55,0x18,0x2c,0x34,0x39,0x3c,0x3d, +0x3f,0x3f,0x3f,0x3d,0x3b,0x36,0x30,0x2a,0x24,0x1c,0x16,0xd, 0x6, 0x1, 0x0, 0x0, +0x0, 0x1, 0x1, 0x3, 0x5, 0x9, 0xf, 0x17,0x1e,0x24,0x1, 0x2, 0x8, 0xe, 0x14,0x1a, +0x21,0x28,0x30,0x37,0x40,0x49,0x50,0x55,0x59,0x5c,0x5c,0x58,0x51,0x48,0x3f,0x38, +0x31,0x2b,0x25,0x1d,0x17,0x11,0xa, 0x4, 0x1, 0x1, 0x9d,0xbf,0x30,0x55,0x16,0x7, +0x2, 0x0, 0x0, 0x0, 0x0, 0x1, 0x4, 0x8, 0xe, 0x16,0x1f,0x28,0x30,0x38,0x3c,0x3e, +0x3f,0x40,0x3f,0x3f,0x3d,0x3b,0x37,0x32,0x2c,0x25,0x1d,0x16,0xf, 0xc, 0x53,0x46, +0x3e,0x35,0x2e,0x27,0x20,0x1a,0x14,0xd, 0x6, 0x1, 0x0, 0x0, 0x3, 0xa, 0x13,0x1a, +0x20,0x27,0x2d,0x33,0x3a,0x40,0x48,0x4f,0x54,0x58,0x5a,0x5a,0x58,0x57,0xc6,0x55, +0x30,0x55,0x7, 0x1, 0x4, 0xa, 0x10,0x18,0x20,0x2a,0x32,0x38,0x3c,0x3e,0x3f,0x3e, +0x3d,0x3b,0x39,0x35,0x30,0x27,0x21,0x19,0x12,0xb, 0x6, 0x3, 0x1, 0x0, 0x0, 0x0, +0x0, 0x0, 0x32,0x1d,0x12,0x9, 0x5, 0x1, 0x0, 0x0, 0x1, 0x5, 0xd, 0x17,0x20,0x2a, +0x32,0x3b,0x45,0x4e,0x58,0x63,0x69,0x6b,0x6a,0x64,0x5d,0x57,0x4f,0x47,0x40,0x38, +0x32,0x2f,0x1a,0xb5,0x30,0x55,0x21,0x13,0xc, 0x8, 0x5, 0x2, 0x1, 0x0, 0x0, 0x1, +0x3, 0x8, 0xf, 0x17,0x1e,0x24,0x2b,0x32,0x39,0x3d,0x3e,0x3f,0x3f,0x3d,0x3a,0x36, +0x30,0x29,0x21,0x1a,0x16,0x13,0x5, 0x9, 0xe, 0x14,0x1a,0x22,0x29,0x30,0x38,0x3f, +0x47,0x4d,0x51,0x51,0x4f,0x4d,0x49,0x42,0x39,0x31,0x2b,0x25,0x1e,0x17,0x10,0x8, +0x3, 0x0, 0x0, 0x1, 0x3, 0x5, 0xaf,0x13,0x30,0x55,0x38,0x3f,0x3d,0x3a,0x36,0x2e, +0x26,0x1f,0x14,0xb, 0x6, 0x2, 0x0, 0x0, 0x0, 0x1, 0x2, 0x5, 0x9, 0xe, 0x14,0x1c, +0x23,0x2a,0x34,0x38,0x3a,0x3b,0x3d,0x3d,0x3d,0x3d,0x29,0x1a,0x10,0x9, 0x4, 0x0, +0x0, 0x1, 0x4, 0xc, 0x14,0x1c,0x22,0x28,0x2f,0x37,0x3f,0x47,0x4f,0x56,0x5a,0x5b, +0x59,0x56,0x4e,0x47,0x40,0x37,0x30,0x28,0x22,0x1f,0x2a,0xa9,0x30,0x55,0x3e,0x3b, +0x38,0x33,0x2b,0x24,0x1d,0x16,0x10,0x7, 0x3, 0x1, 0x0, 0x0, 0x0, 0x1, 0x1, 0x3, +0x6, 0xc, 0x15,0x1c,0x23,0x29,0x2f,0x35,0x38,0x3b,0x3c,0x3e,0x3f,0x3f,0x1f,0x10, +0xa, 0x6, 0x0, 0x0, 0x0, 0x2, 0x4, 0xc, 0x12,0x18,0x1e,0x25,0x2c,0x35,0x3c,0x42, +0x4a,0x51,0x56,0x56,0x53,0x4e,0x49,0x40,0x3a,0x33,0x2c,0x25,0x1f,0x1c,0xf9,0xa2, +0x30,0x55,0x1f,0x2b,0x31,0x35,0x38,0x3b,0x3e,0x3f,0x3f,0x3d,0x3a,0x34,0x2d,0x27, +0x23,0x1d,0x17,0x10,0x9, 0x4, 0x1, 0x0, 0x0, 0x1, 0x3, 0x6, 0xa, 0xf, 0x15,0x1b, +0x20,0x23,0x45,0x42,0x3e,0x38,0x34,0x2d,0x24,0x1c,0x15,0x11,0xb, 0x6, 0x2, 0x0, +0x0, 0x0, 0x1, 0x3, 0x7, 0xd, 0x12,0x18,0x20,0x28,0x30,0x36,0x3c,0x42,0x47,0x48, +0x49,0x4a,0x65,0x9d,0x30,0x55,0x1c,0x2a,0x33,0x39,0x3c,0x3e,0x3f,0x3f,0x3e,0x3d, +0x3a,0x35,0x2e,0x28,0x23,0x1c,0x15,0xf, 0x9, 0x4, 0x1, 0x0, 0x0, 0x1, 0x1, 0x4, +0x8, 0xd, 0x13,0x19,0x1e,0x22,0x40,0x3e,0x3a,0x33,0x2f,0x29,0x22,0x1b,0x15,0x10, +0xa, 0x5, 0x1, 0x0, 0x0, 0x1, 0x2, 0x5, 0xa, 0x11,0x17,0x1c,0x24,0x2a,0x30,0x35, +0x3b,0x40,0x43,0x44,0x45,0x45,0xcb,0xc6,0x30,0x55,0x5, 0x3, 0x4, 0x7, 0xa, 0x10, +0x17,0x21,0x28,0x2e,0x33,0x38,0x3c,0x3e,0x3f,0x3f,0x3e,0x3b,0x38,0x31,0x29,0x21, +0x18,0xf, 0x9, 0x4, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x26,0x35,0x3d,0x45,0x4b,0x51, +0x53,0x52,0x4f,0x4c,0x46,0x41,0x3b,0x34,0x2e,0x25,0x1e,0x17,0x11,0x9, 0x3, 0x0, +0x0, 0x2, 0x6, 0xc, 0x12,0x18,0x1e,0x24,0x2c,0x31,0xf4,0xb6,0x30,0x55,0xa, 0x5, +0x5, 0x5, 0x8, 0xf, 0x16,0x20,0x29,0x31,0x36,0x3a,0x3c,0x3e,0x3f,0x3f,0x3e,0x3c, +0x3a,0x33,0x2d,0x24,0x1c,0x14,0xf, 0x8, 0x4, 0x0, 0x0, 0x0, 0x1, 0x2, 0x35,0x46, +0x4e,0x56,0x5d,0x65,0x68,0x66,0x60,0x57,0x4f,0x47,0x3f,0x37,0x2e,0x25,0x1e,0x16, +0x10,0x6, 0x2, 0x0, 0x1, 0x5, 0xb, 0x15,0x1d,0x28,0x2f,0x39,0x41,0x45,0xf0,0xbc, +0x30,0x55,0x7, 0x3, 0x3, 0x3, 0x4, 0x7, 0xf, 0x17,0x20,0x28,0x30,0x36,0x3b,0x3d, +0x3f,0x3f,0x3d,0x39,0x36,0x2d,0x25,0x1d,0x16,0xd, 0x8, 0x2, 0x0, 0x0, 0x1, 0x2, +0x3, 0x5, 0x2e,0x3f,0x48,0x50,0x59,0x5f,0x67,0x68,0x63,0x5d,0x52,0x4a,0x3e,0x35, +0x2b,0x20,0x18,0x10,0xa, 0x3, 0x0, 0x0, 0x1, 0x7, 0xe, 0x19,0x22,0x2b,0x31,0x3a, +0x42,0x47,0xef,0xc9,0x30,0x55,0x3b,0x3c,0x3c,0x3b,0x39,0x36,0x2f,0x27,0x21,0x19, +0x11,0xb, 0x5, 0x1, 0x0, 0x0, 0x1, 0x2, 0x4, 0x6, 0xa, 0x10,0x16,0x1f,0x26,0x2d, +0x33,0x39,0x3c,0x3e,0x3f,0x3f,0x22,0x31,0x3b,0x41,0x47,0x4d,0x56,0x59,0x5a,0x58, +0x55,0x51,0x4b,0x43,0x3d,0x35,0x29,0x20,0x18,0x11,0x9, 0x3, 0x0, 0x0, 0x1, 0x3, +0x7, 0xf, 0x15,0x1b,0x21,0x26,0x2b,0xa0,0x30,0x55,0x37,0x38,0x37,0x34,0x2d,0x26, +0x1c,0x16,0xe, 0x9, 0x4, 0x2, 0x0, 0x0, 0x0, 0x1, 0x2, 0x5, 0xa, 0x10,0x17,0x20, +0x26,0x2e,0x35,0x3a,0x3c,0x3e,0x3f,0x3f,0x3e,0x3e,0x30,0x40,0x49,0x50,0x59,0x5e, +0x60,0x5d,0x56,0x50,0x47,0x41,0x39,0x33,0x2a,0x20,0x1a,0x10,0xa, 0x5, 0x1, 0x0, +0x0, 0x3, 0x8, 0x10,0x17,0x1f,0x25,0x2f,0x38,0x3c,0x37,0xc3,0x30,0x55,0x3b,0x3d, +0x3d,0x3b,0x38,0x32,0x27,0x1c,0x13,0xe, 0x8, 0x3, 0x0, 0x0, 0x0, 0x1, 0x3, 0x7, +0xb, 0x12,0x18,0x20,0x28,0x31,0x39,0x3d,0x3f,0x40,0x3f,0x3f,0x3e,0x3e,0x33,0x45, +0x4e,0x57,0x5d,0x65,0x6c,0x6a,0x66,0x63,0x5c,0x53,0x4a,0x40,0x38,0x2e,0x25,0x1a, +0x11,0x8, 0x4, 0x0, 0x0, 0x2, 0x9, 0x10,0x19,0x21,0x2a,0x32,0x39,0x3e,0x7, 0x90, +0x30,0x55,0x8, 0x2, 0x0, 0x0, 0x0, 0x2, 0x5, 0x7, 0xc, 0x12,0x19,0x1f,0x2b,0x32, +0x37,0x3b,0x3d,0x3f,0x3f,0x3e,0x3d,0x3a,0x37,0x2f,0x29,0x23,0x1d,0x16,0xf, 0x9, +0x6, 0x6, 0x47,0x3d,0x36,0x2f,0x27,0x1e,0x16,0x10,0x9, 0x3, 0x0, 0x0, 0x1, 0x4, +0x7, 0xd, 0x14,0x1d,0x26,0x2d,0x33,0x3a,0x42,0x4e,0x53,0x55,0x56,0x54,0x4f,0x48, +0x42,0x42,0x43,0x9e,0x30,0x55,0x2, 0x0, 0x0, 0x1, 0x3, 0x7, 0xc, 0x13,0x1c,0x24, +0x2d,0x37,0x3f,0x3d,0x3b,0x39,0x36,0x34,0x31,0x2e,0x2b,0x27,0x20,0x16,0xe, 0x8, +0x3, 0x3, 0x3, 0x4, 0x4, 0x4, 0x5d,0x50,0x46,0x3e,0x36,0x2c,0x20,0x16,0xd, 0x6, +0x2, 0x0, 0xb, 0x16,0x22,0x2a,0x33,0x3c,0x44,0x4c,0x55,0x5d,0x69,0x79,0x7d,0x76, +0x6d,0x63,0x59,0x50,0x48,0x47,0x12,0x3e,0x30,0x55,0x3, 0x1, 0x2, 0x6, 0xa, 0x16, +0x20,0x25,0x30,0x39,0x3e,0x3f,0x3f,0x3c,0x3a,0x32,0x28,0x22,0x19,0xe, 0x5, 0x2, +0x0, 0x0, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x29,0x23,0x18,0xf, 0xb, 0x3, +0x0, 0x0, 0x1, 0x8, 0x11,0x17,0x21,0x2a,0x2f,0x3a,0x42,0x43,0x42,0x3e,0x38,0x34, +0x2c,0x24,0x1f,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x7f,0xd2,0x30,0x55,0x39,0x2b, +0x24,0x1c,0x15,0xe, 0x9, 0x6, 0x5, 0x6, 0x9, 0x10,0x19,0x22,0x27,0x2e,0x35,0x3b, +0x3e,0x3f,0x3d,0x38,0x32,0x2c,0x26,0x1f,0x19,0x13,0xb, 0x5, 0x1, 0x0, 0x6, 0x0, +0x1, 0x2, 0x6, 0xb, 0x11,0x17,0x1d,0x24,0x2a,0x2f,0x32,0x34,0x35,0x36,0x37,0x3b, +0x41,0x47,0x4e,0x56,0x5d,0x61,0x64,0x65,0x65,0x63,0x60,0x5c,0x57,0x54,0xd1,0x4a, +0x46,0x55,0x3c,0x37,0x33,0x2f,0x25,0x20,0x1b,0x10,0xc, 0x8, 0x2, 0x0, 0x0, 0x3, +0x7, 0xc, 0x16,0x1b,0x1f,0x2a,0x2f,0x33,0x3d,0x3d,0x39,0x2f,0x2b,0x28,0x28,0x28, +0x28,0x28,0x2, 0x0, 0x0, 0x0, 0x2, 0x4, 0x7, 0xc, 0xf, 0x13,0x1c,0x20,0x24,0x2d, +0x30,0x32,0x35,0x36,0x36,0x36,0x36,0x36,0x39,0x3d,0x42,0x48,0x4a,0x4b,0x4b,0x4b, +0x4b,0x4b,0x10,0xa2,0x46,0x55,0x32,0x2c,0x27,0x1c,0x16,0xc, 0x7, 0x3, 0x0, 0x0, +0x0, 0x2, 0x4, 0xd, 0x11,0x1a,0x1f,0x25,0x2f,0x33,0x3c,0x3d,0x34,0x2f,0x2a,0x21, +0x1d,0x1c,0x1c,0x1c,0x1c,0x1c,0x1, 0x0, 0x0, 0x0, 0x2, 0x6, 0xa, 0xe, 0x16,0x1a, +0x22,0x26,0x2b,0x31,0x32,0x35,0x36,0x38,0x3a,0x3b,0x3e,0x41,0x4a,0x4c,0x4d,0x4e, +0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x43,0x33,0x46,0x55,0x1a,0x13,0x10,0xd, 0xb, 0xa, +0xc, 0x11,0x16,0x20,0x25,0x29,0x2e,0x32,0x37,0x3c,0x3f,0x3c,0x38,0x33,0x2e,0x29, +0x24,0x1e,0x19,0xf, 0xb, 0x7, 0x2, 0x0, 0x0, 0x0, 0x0, 0x6, 0xb, 0x10,0x15,0x19, +0x1d,0x1e,0x1f,0x1e,0x1f,0x1f,0x20,0x21,0x24,0x29,0x2f,0x39,0x3e,0x41,0x44,0x47, +0x49,0x4b,0x4c,0x4e,0x4e,0x4f,0x4e,0x4d,0x4d,0x4d,0xa, 0x24,0x46,0x55,0x0, 0x1, +0x3, 0x5, 0x7, 0x8, 0xa, 0xb, 0xc, 0xe, 0xf, 0x11,0x12,0x14,0x16,0x1a,0x1e,0x22, +0x24,0x27,0x2a,0x2c,0x2e,0x31,0x33,0x36,0x38,0x3a,0x3c,0x3e,0x3f,0x3f,0x1, 0xe, +0x14,0x1b,0x23,0x28,0x2e,0x35,0x3a,0x40,0x48,0x4f,0x56,0x5d,0x62,0x61,0x5a,0x53, +0x4e,0x47,0x40,0x3b,0x35,0x2d,0x29,0x22,0x1b,0x17,0x10,0x9, 0x5, 0x1, 0x6d,0x7d, +0x54,0x55,0x40,0x39,0x38,0x36,0x35,0x33,0x31,0x2e,0x2c,0x2b,0x29,0x27,0x25,0x24, +0x22,0x1f,0x1d,0x1a,0x18,0x15,0x14,0x12,0xf, 0xc, 0x9, 0x7, 0x4, 0x2, 0x1, 0x0, +0x0, 0x0, 0x0, 0xd, 0x15,0x1d,0x23,0x2a,0x32,0x3b,0x43,0x48,0x50,0x57,0x5d,0x63, +0x68,0x65,0x5e,0x58,0x51,0x4a,0x45,0x3f,0x38,0x32,0x2b,0x26,0x1f,0x16,0x10,0x8, +0x4, 0x1, 0x6a,0xec,0x54,0x55,0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x1, 0x2, 0x4, 0x5, 0x7, 0x9, 0xd, 0x10,0x13,0x18,0x1f,0x24,0x27,0x2b,0x2e,0x31, +0x34,0x36,0x39,0x3c,0x3e,0x40,0x0, 0x7, 0xf, 0x13,0x16,0x1a,0x1e,0x22,0x25,0x28, +0x2f,0x36,0x3b,0x3f,0x43,0x47,0x4b,0x4c,0x4c,0x4c,0x49,0x46,0x43,0x3f,0x3a,0x35, +0x32,0x2d,0x27,0x21,0x1d,0x1a,0xb5,0xd0,0x54,0x55,0x0, 0x1, 0x1, 0x1, 0x2, 0x3, +0x3, 0x4, 0x5, 0x9, 0xf, 0x16,0x1d,0x22,0x28,0x2d,0x30,0x32,0x34,0x37,0x39,0x3a, +0x3c,0x3d,0x3e,0x3e,0x3f,0x3f,0x3e,0x3e,0x3c,0x3a,0x22,0x2e,0x36,0x3f,0x46,0x4c, +0x51,0x56,0x5b,0x5e,0x60,0x5e,0x5c,0x58,0x53,0x4d,0x49,0x45,0x41,0x3a,0x35,0x31, +0x2d,0x27,0x23,0x1f,0x19,0x11,0xd, 0x8, 0x3, 0x0, 0x3b,0x38,0x54,0x55,0x0, 0x2, +0x3, 0x5, 0x6, 0x8, 0xb, 0x10,0x13,0x16,0x17,0x19,0x1b,0x1d,0x1f,0x21,0x22,0x22, +0x22,0x22,0x23,0x25,0x28,0x2e,0x31,0x34,0x36,0x38,0x3a,0x3c,0x3e,0x3f,0x6, 0x17, +0x20,0x27,0x30,0x38,0x3e,0x39,0x32,0x2b,0x25,0x1e,0x18,0x10,0x9, 0x9, 0x10,0x18, +0x1f,0x26,0x2f,0x36,0x3c,0x38,0x2f,0x27,0x1f,0x18,0xf, 0x8, 0x1, 0x2, 0xc7,0x75, +0x31,0x55,0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x3, 0x8, 0xd, 0x12,0x15,0x17,0x18,0x1a, +0x1b,0x1c,0x1d,0x1d,0x1e,0x1f,0x22,0x27,0x2e,0x35,0x38,0x3b,0x3d,0x3e,0x3f,0x40, +0x3f,0x3e,0x6, 0x15,0x1b,0x23,0x29,0x2f,0x37,0x3c,0x37,0x2e,0x27,0x20,0x1a,0x13, +0xe, 0x14,0x1a,0x21,0x27,0x2f,0x38,0x3f,0x3d,0x35,0x2e,0x26,0x20,0x18,0x11,0xb, +0x3, 0x0, 0x67,0x3f,0x31,0x55,0xd, 0xd0,0x70,0x8f,0x0, 0xff,0x89,0x76,0x4, 0xa7, +0x24,0x87,0x2, 0xa9,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x53,0x42,0x32,0x1, 0xd1,0x0, 0x34,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x8, 0x43,0x53,0x4f,0x54,0x5f,0x35,0x50,0x37, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, +0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, +0x1, 0x0, 0x1, 0x8, 0x8, 0x10,0x20,0x10,0x20,0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, +0x3, 0x0, 0x3, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x3, 0x0, 0x4, 0x0, 0x5, 0x0, 0x6, +0x0, 0x7, 0x0, 0x8, 0x0, 0x9, 0x0, 0xa, 0x0, 0xb, 0x0, 0xc, 0x0, 0xd, 0x0, 0xe, +0x0, 0xf, 0x0, 0x10,0x0, 0x11,0x0, 0x12,0x0, 0x13,0x0, 0x14,0x0, 0x15,0x0, 0x16, +0x0, 0x17,0x0, 0x18,0x0, 0x19,0x0, 0x1a,0x0, 0x1b,0x0, 0x1c,0x0, 0x1d,0x0, 0x1e, +0x0, 0x1f,0x0, 0x20,0x0, 0x21,0x0, 0x22,0x0, 0x23,0x0, 0x24,0x0, 0x25,0x0, 0x26, +0x0, 0x27,0x0, 0x28,0x0, 0x29,0x0, 0x2a,0x0, 0x2b,0x0, 0x2c,0x0, 0x2d,0x0, 0x2e, +0x0, 0x2f,0x0, 0x30,0x0, 0x31,0x0, 0x32,0x0, 0x33,0x0, 0x34,0x0, 0x35,0x0, 0x36, +0x0, 0x37,0x0, 0x38,0x0, 0x39,0x0, 0x3a,0x0, 0x3b,0x0, 0x3c,0x0, 0x3d,0x0, 0x3e, +0x0, 0x3f,0x0, 0x40,0x0, 0x41,0x0, 0x42,0x0, 0x43,0x0, 0x44,0x0, 0x45,0x0, 0x46, +0x0, 0x47,0x0, 0x48,0x0, 0x49,0x0, 0x4a,0x0, 0x4b,0x0, 0x4c,0x0, 0x4d,0x0, 0x4e, +0x0, 0x4f,0x0, 0x50,0x0, 0x51,0x0, 0x52,0x0, 0x53,0x0, 0x54,0x0, 0x55,0x0, 0x56, +0x0, 0x57,0x0, 0x58,0x0, 0x59,0x0, 0x5a,0x0, 0x5b,0x0, 0x5c,0x0, 0x5d,0x0, 0x5e, +0x0, 0x5f,0x0, 0x60,0x0, 0x61,0x0, 0x62,0x0, 0x63,0x0, 0x64,0x0, 0x65,0x0, 0x66, +0x0, 0x67,0x0, 0x68,0x0, 0x69,0x0, 0x6a,0x0, 0x6b,0x0, 0x6c,0x0, 0x6d,0x0, 0x6e, +0x0, 0x6f,0x0, 0x70,0x0, 0x71,0x0, 0x72,0x0, 0x73,0x0, 0x74,0x0, 0x75,0x0, 0x76, +0x0, 0x77,0x0, 0x78,0x0, 0x79,0x0, 0x7a,0x0, 0x7b,0x0, 0x7c,0x0, 0x7d,0x0, 0x7e, +0x0, 0x7f,0x0, 0x80,0x0, 0x81,0x0, 0x82,0x0, 0x83,0x0, 0x84,0x0, 0x85,0x0, 0x86, +0x0, 0x87,0x0, 0x88,0x0, 0x89,0x0, 0x8a,0x0, 0x8b,0x0, 0x8c,0x0, 0x8d,0x0, 0x8e, +0x0, 0x8f,0x0, 0x90,0x0, 0x91,0x0, 0x92,0x0, 0x93,0x0, 0x94,0x0, 0x95,0x0, 0x96, +0x0, 0x97,0x0, 0x98,0x0, 0x99,0x0, 0x9a,0x0, 0x9b,0x0, 0x9c,0x0, 0x9d,0x0, 0x9e, +0x0, 0x9f,0x0, 0xa0,0x0, 0xa1,0x0, 0xa2,0x0, 0xa3,0x0, 0xa4,0x0, 0xa5,0x0, 0xa6, +0x0, 0xa7,0x0, 0xa8,0x0, 0xa9,0x0, 0xaa,0x0, 0xab,0x0, 0xac,0x0, 0xad,0x0, 0xae, +0x0, 0xaf,0x0, 0xb0,0x0, 0xb1,0x0, 0xb2,0x0, 0xb3,0x0, 0xb4,0x0, 0xb5,0x0, 0xb6, +0x0, 0xb7,0x0, 0xb8,0x0, 0xb9,0x0, 0xba,0x0, 0xbb,0x0, 0xbc,0x0, 0xbd,0x0, 0xbe, +0x0, 0xbf,0x0, 0xc0,0x0, 0xc1,0x0, 0xc2,0x0, 0xc3,0x0, 0xc4,0x0, 0xc5,0x0, 0xc6, +0x0, 0xc7,0x0, 0xc8,0x0, 0xc9,0x0, 0xca,0x0, 0xcb,0x0, 0xcc,0x0, 0xcd,0x0, 0xce, +0x0, 0xcf,0x0, 0xd0,0x0, 0xd1,0x0, 0xd2,0x0, 0xd3,0x0, 0xd4,0x0, 0xd5,0x0, 0xd6, +0x0, 0xd7,0x0, 0xd8,0x0, 0xd9,0x0, 0xda,0x0, 0xdb,0x0, 0xdc,0x0, 0xdd,0x0, 0xde, +0x0, 0xdf,0x0, 0xe0,0x0, 0xe1,0x0, 0xe2,0x0, 0xe3,0x0, 0xe4,0x0, 0xe5,0x0, 0xe6, +0x0, 0xe7,0x0, 0xe8,0x0, 0xe9,0x0, 0xea,0x0, 0xeb,0x0, 0xec,0x0, 0xed,0x0, 0xee, +0x0, 0xef,0x0, 0xf0,0x0, 0xf1,0x0, 0xf2,0x0, 0xf3,0x0, 0xf4,0x0, 0xf5,0x0, 0xf6, +0x0, 0xf7,0x0, 0xf8,0x0, 0xf9,0x0, 0xfa,0x0, 0xfb,0x0, 0xfc,0x0, 0xfd,0x0, 0xfe, +0x0, 0xff,0x1, 0x0, 0x1, 0x1, 0x1, 0x2, 0x1, 0x2, 0x1, 0x1, 0x1, 0x0, 0x0, 0xff, +0x0, 0xfe,0x0, 0xfd,0x0, 0xfc,0x0, 0xfb,0x0, 0xfa,0x0, 0xf9,0x0, 0xf8,0x0, 0xf7, +0x0, 0xf6,0x0, 0xf5,0x0, 0xf4,0x0, 0xf3,0x0, 0xf2,0x0, 0xf1,0x0, 0xf0,0x0, 0xef, +0x0, 0xee,0x0, 0xed,0x0, 0xec,0x0, 0xeb,0x0, 0xea,0x0, 0xe9,0x0, 0xe8,0x0, 0xe7, +0x0, 0xe6,0x0, 0xe5,0x0, 0xe4,0x0, 0xe3,0x0, 0xe2,0x0, 0xe1,0x0, 0xe0,0x0, 0xdf, +0x0, 0xde,0x0, 0xdd,0x0, 0xdc,0x0, 0xdb,0x0, 0xda,0x0, 0xd9,0x0, 0xd8,0x0, 0xd7, +0x0, 0xd6,0x0, 0xd5,0x0, 0xd4,0x0, 0xd3,0x0, 0xd2,0x0, 0xd1,0x0, 0xd0,0x0, 0xcf, +0x0, 0xce,0x0, 0xcd,0x0, 0xcc,0x0, 0xcb,0x0, 0xca,0x0, 0xc9,0x0, 0xc8,0x0, 0xc7, +0x0, 0xc6,0x0, 0xc5,0x0, 0xc4,0x0, 0xc3,0x0, 0xc2,0x0, 0xc1,0x0, 0xc0,0x0, 0xbf, +0x0, 0xbe,0x0, 0xbd,0x0, 0xbc,0x0, 0xbb,0x0, 0xba,0x0, 0xb9,0x0, 0xb8,0x0, 0xb7, +0x0, 0xb6,0x0, 0xb5,0x0, 0xb4,0x0, 0xb3,0x0, 0xb2,0x0, 0xb1,0x0, 0xb0,0x0, 0xaf, +0x0, 0xae,0x0, 0xad,0x0, 0xac,0x0, 0xab,0x0, 0xaa,0x0, 0xa9,0x0, 0xa8,0x0, 0xa7, +0x0, 0xa6,0x0, 0xa5,0x0, 0xa4,0x0, 0xa3,0x0, 0xa2,0x0, 0xa1,0x0, 0xa0,0x0, 0x9f, +0x0, 0x9e,0x0, 0x9d,0x0, 0x9c,0x0, 0x9b,0x0, 0x9a,0x0, 0x99,0x0, 0x98,0x0, 0x97, +0x0, 0x96,0x0, 0x95,0x0, 0x94,0x0, 0x93,0x0, 0x92,0x0, 0x91,0x0, 0x90,0x0, 0x8f, +0x0, 0x8e,0x0, 0x8d,0x0, 0x8c,0x0, 0x8b,0x0, 0x8a,0x0, 0x89,0x0, 0x88,0x0, 0x87, +0x0, 0x86,0x0, 0x85,0x0, 0x84,0x0, 0x83,0x0, 0x82,0x0, 0x81,0x0, 0x80,0x0, 0x7f, +0x0, 0x7e,0x0, 0x7d,0x0, 0x7c,0x0, 0x7b,0x0, 0x7a,0x0, 0x79,0x0, 0x78,0x0, 0x77, +0x0, 0x76,0x0, 0x75,0x0, 0x74,0x0, 0x73,0x0, 0x72,0x0, 0x71,0x0, 0x70,0x0, 0x6f, +0x0, 0x6e,0x0, 0x6d,0x0, 0x6c,0x0, 0x6b,0x0, 0x6a,0x0, 0x69,0x0, 0x68,0x0, 0x67, +0x0, 0x66,0x0, 0x65,0x0, 0x64,0x0, 0x63,0x0, 0x62,0x0, 0x61,0x0, 0x60,0x0, 0x5f, +0x0, 0x5e,0x0, 0x5d,0x0, 0x5c,0x0, 0x5b,0x0, 0x5a,0x0, 0x59,0x0, 0x58,0x0, 0x57, +0x0, 0x56,0x0, 0x55,0x0, 0x54,0x0, 0x53,0x0, 0x52,0x0, 0x51,0x0, 0x50,0x0, 0x4f, +0x0, 0x4e,0x0, 0x4d,0x0, 0x4c,0x0, 0x4b,0x0, 0x4a,0x0, 0x49,0x0, 0x48,0x0, 0x47, +0x0, 0x46,0x0, 0x45,0x0, 0x44,0x0, 0x43,0x0, 0x42,0x0, 0x41,0x0, 0x40,0x0, 0x3f, +0x0, 0x3e,0x0, 0x3d,0x0, 0x3c,0x0, 0x3b,0x0, 0x3a,0x0, 0x39,0x0, 0x38,0x0, 0x37, +0x0, 0x36,0x0, 0x35,0x0, 0x34,0x0, 0x33,0x0, 0x32,0x0, 0x31,0x0, 0x30,0x0, 0x2f, +0x0, 0x2e,0x0, 0x2d,0x0, 0x2c,0x0, 0x2b,0x0, 0x2a,0x0, 0x29,0x0, 0x28,0x0, 0x27, +0x0, 0x26,0x0, 0x25,0x0, 0x24,0x0, 0x23,0x0, 0x22,0x0, 0x21,0x0, 0x20,0x0, 0x1f, +0x0, 0x1e,0x0, 0x1d,0x0, 0x1c,0x0, 0x1b,0x0, 0x1a,0x0, 0x19,0x0, 0x18,0x0, 0x17, +0x0, 0x16,0x0, 0x15,0x0, 0x14,0x0, 0x13,0x0, 0x12,0x0, 0x11,0x0, 0x10,0x0, 0xf, +0x0, 0xe, 0x0, 0xd, 0x0, 0xc, 0x0, 0xb, 0x0, 0xa, 0x0, 0x9, 0x0, 0x8, 0x0, 0x7, +0x0, 0x6, 0x0, 0x5, 0x0, 0x4, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x18,0x19,0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0xb, 0x0, 0xb, 0x0, +0xb, 0x0, 0xb, 0x0, 0xb, 0x0, 0xb, 0x0, 0xb, 0x0, 0xb, 0x0, 0xb, 0x0, 0xb, 0x0, +0xb, 0x0, 0xb, 0x0, 0xb, 0x0, 0xb, 0x0, 0xb, 0x0, 0xb, 0x18,0x19,0x2, 0x5, 0x0, +0x0, 0x0, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, +0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, +0x0, 0x5, 0x18,0x19,0x2, 0x5, 0x1, 0x0, 0x0, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, +0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, +0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x18,0x19,0x2, 0x5, 0x2, 0x0, 0x0, +0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, +0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, +0x1, 0xa, 0x1e,0x50,0x14,0x0, 0x64,0xd, 0xac,0x0, 0xc8,0x1, 0x68,0x1, 0x18,0x1, +0x18,0x5, 0xdc,0x5, 0xdc,0x5, 0xdc,0x1, 0x90,0x1, 0x90,0xa, 0x0, 0x1, 0xc2,0x1, +0xa, 0x6, 0x21,0x3c,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x16,0x1, 0x0, 0x1, 0x87,0x1, 0x0, 0xb, +0x1, 0x89,0x0, 0x1, 0x0, 0x15,0x1, 0x1, 0x5, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1d,0x0, 0x0, 0x0, 0x0, 0x0, 0xff,0x0, +0x64,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x89,0x1, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x4, 0x0, 0x2, 0xda, +0x1, 0x68,0x2e,0x2d,0x1, 0x68,0x1, 0x18,0x0, 0xb3,0x0, 0xbb,0x5, 0xa0,0x2, 0xd0, +0x2d,0x2d,0x1, 0x36,0x1, 0x4a,0x0, 0xb4,0x0, 0xb4,0x10,0x0, 0xc8,0x2, 0x58,0x3, +0x20,0x2, 0xd0,0x7, 0xd0,0x1, 0x2c,0x0, 0x40,0x0, 0x4, 0x1, 0x5, 0x2, 0x2, 0x4, +0x4, 0x6, 0x80,0x0, 0xc8,0x13,0x88,0x10,0x3, 0x6, 0x1, 0x2c,0x2, 0x58,0x3, 0x20, +0x1f,0x40,0x28,0x1, 0x5e,0x2, 0xbc,0x0, 0x14,0x19,0x5, 0xf, 0x2, 0xd0,0x1, 0x68, +0x5, 0xa0,0x0, 0x64,0x4, 0xa, 0x5, 0x0, 0x64,0x2, 0x76,0x0, 0x64,0x5, 0x3c,0x0, +0x32,0x1, 0xf4,0x1, 0xf4,0x3, 0x20,0x0, 0xc8,0x0, 0x49,0x0, 0x1e,0x0, 0x80,0x1, +0x6d,0x1, 0x68,0x0, 0x64,0x7, 0xd0,0x1, 0x68,0x1, 0x6d,0x0, 0x64,0x7, 0xd0,0x0, +0x0, 0x2, 0xda,0x0, 0x0, 0x5, 0xa0,0x0, 0x64,0x0, 0xa0,0x0, 0xa0,0x9, 0xc4,0x1, +0x2c,0xc2,0xd5,0x7c,0xb4,0x30,0xe7,0x8, 0xb2,0xd5,0x6e,0x24,0xff,0xff,0xb, 0x24, +0x7c,0xb6,0x30,0xe7,0x12,0xb2,0xd5,0x6e,0x34,0xff,0xff,0xb, 0x34,0x8d,0x32,0x6e, +0x24,0xff,0xff,0xb, 0x24,0x80,0x2, 0x8d,0x32,0x30,0xd5,0x6, 0x6e,0x34,0xff,0xff, +0xb, 0x34,0x22,0x7d,0x51,0xad,0x3, 0x7d,0x2, 0x7d,0x21,0xad,0x5, 0x2d,0x12,0xad, +0x35,0x2d,0x21,0x22,0x7d,0x2, 0xad,0x31,0xad,0x10,0x2d,0x21,0x22,0x6d,0x0, 0x74, +0x10,0x4d,0x0, 0x78,0xb, 0x4d,0x22,0x78,0x27,0x8d,0x31,0x7d,0x12,0x6d,0x22,0x22, +0x7d,0x43,0x7d,0x32,0x6d,0x22,0x2f,0x11,0x2d,0x44,0x50,0x2, 0xa5,0xf, 0xbf,0x10, +0x40,0x4, 0x9f,0x10,0xb, 0x90,0x14,0x78,0xed,0x7f,0x1, 0x6d,0x22,0x7d,0x34,0x22, +0x7d,0x41,0x7d,0x13,0x8d,0x24,0x7d,0x2, 0x2f,0x0, 0x40,0x4, 0xbd,0x4, 0x40,0x4, +0x9d,0x4, 0xb, 0x14,0x14,0x78,0xf1,0x7d,0x23,0x7d,0x31,0x7d,0x10,0x6d,0x0, 0x22, +0xc2,0xd5,0x7c,0xb0,0x30,0xe7,0x8, 0xb2,0xd5,0x9f,0x22,0x9f,0x20,0x7f,0x2, 0x7c, +0xb4,0x30,0xe7,0x13,0xb2,0xd5,0x9f,0x22,0x9f,0x21,0x7f,0x12,0x12,0x22,0xbf,0x9f, +0x22,0x9f,0x20,0x7f,0x2, 0x80,0x3, 0x12,0x22,0xbf,0x30,0xd5,0x6, 0x9f,0x22,0x9f, +0x21,0x7f,0x12,0x22,0x6c,0xaa,0x4d,0x11,0x68,0x1a,0x1e,0x54,0x68,0xe, 0xb, 0x38, +0x20,0x1b,0x18,0x20,0xb, 0x35,0xb, 0x15,0x1b,0x54,0x78,0xf2,0x50,0x6, 0x7e,0x39, +0x40,0x7a,0x19,0x40,0x22,0x6c,0xaa,0x4d,0x11,0x68,0x1e,0x1e,0x54,0x50,0xc, 0x7e, +0x1b,0x0, 0x7a,0x19,0x0, 0x68,0x12,0xb, 0x1c,0xb, 0x14,0xb, 0x1a,0x0, 0x1b,0x18, +0x0, 0xb, 0x1d,0xb, 0x15,0x1b,0x54,0x78,0xf2,0x22,0x75,0x84,0x1, 0x7e,0x44,0x7f, +0xff,0xe4,0x7a,0x49,0xb0,0x1b,0x44,0x78,0xf9,0x7e,0xf8,0x78,0x44,0xc2,0x22,0xc2, +0x23,0xc2,0x24,0xc2,0x1e,0xc2,0x1f,0x75,0x12,0x0, 0xc2,0x29,0xc2,0x2a,0xc2,0x25, +0xc2,0x26,0x75,0x6b,0x0, 0xc2,0x2b,0xc2,0x15,0xc2,0x16,0xc2,0x17,0xd2,0x18,0xd2, +0x19,0xc2,0xb, 0xc2,0xc, 0xc2,0xd, 0xc2,0xe, 0xc2,0xf, 0xc2,0x10,0xc2,0x11,0xc2, +0x12,0xc2,0x13,0xc2,0x14,0xc2,0x2c,0xc2,0x2d,0xd2,0x27,0xc2,0x28,0x75,0x1e,0x0, +0x75,0x1f,0x1, 0x7e,0x4, 0x0, 0xff,0x7e,0x14,0x26,0xa2,0xb, 0xa, 0x40,0x5d,0x44, +0x68,0x1a,0x69,0x20,0x0, 0x2, 0xb, 0xe, 0xb, 0x44,0x80,0xa, 0x7e,0xb, 0xb0,0x7a, +0x29,0xb0,0xb, 0x24,0xb, 0xc, 0x1b,0x44,0x78,0xf2,0x80,0xdf,0x2, 0x2f,0xb9,0xca, +0xf8,0x7f,0x20,0x80,0xa, 0x7e,0x1b,0xf0,0x7a,0x2b,0xf0,0xb, 0x34,0xb, 0x54,0x69, +0xff,0xff,0xfc,0x7d,0xef,0x1b,0xe4,0x79,0xef,0xff,0xfc,0x4d,0xff,0x78,0xe6,0x7f, +0x10,0xda,0xf8,0x22,0x7d,0x43,0x7f,0x10,0x80,0x7, 0x1b,0x44,0x7a,0xb, 0xb0,0xb, +0x14,0x4d,0x44,0x78,0xf5,0x22,0xff,0x0, 0x1, 0x2, 0x0, 0xff,0x1, 0x2, 0x0, 0x1, +0xff,0x2, 0x0, 0x1, 0x2, 0xff,0x7d,0x23,0xbe,0x24,0x0, 0x0, 0x48,0x3, 0x7d,0x32, +0x22,0x6d,0x33,0x9d,0x32,0x22,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x1, 0x4a,0x60,0x1, 0x0, 0x1, 0x4a,0x66,0x1, 0x0, 0x1, 0x4a,0x68, +0x5, 0x0, 0x3, 0x4e,0x97,0x0, 0x0, 0x0, 0x0, 0x6, 0x4e,0x9a,0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x6, 0x4e,0xa0,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x3, 0xff, +0x1, 0x0, 0x1, 0x78,0x8, 0x0, 0x0, 0x1, 0x78,0x9, 0x0, 0x0, 0x2, 0x76,0xda,0x0, +0x0, 0x0, 0x1, 0x76,0x7, 0xff,0x0, 0xa, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0x29,0x82,0x5, 0x0, 0x0, 0x2, 0x0, 0x2, 0x0, 0x2, +0x0, 0xc, 0x29,0xb2,0x3, 0x3, 0x0, 0x3, 0x0, 0x0, 0x3, 0x0, 0x0, 0x3, 0x0, 0x0, +0x0, 0x1, 0x78,0x41,0x0, 0x0, 0x1, 0x77,0x70,0x0, 0x0, 0x1, 0x77,0x72,0x0, 0x0, +0x2, 0x3, 0xfd,0x0, 0x0, 0x0, 0x1, 0x3, 0xc8,0x0, 0x0, 0x1, 0x78,0x13,0x0, 0x0, +0x1, 0x5c,0xc3,0xff,0x0, 0x1, 0x5c,0xdc,0x0, 0x0, 0x2, 0x5c,0xdd,0x0, 0x0, 0x0, +0x4, 0x5c,0xdf,0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x62,0x29,0x0, 0x0, 0x2, 0x62,0x7a, +0x0, 0x0, 0x0, 0x1, 0x78,0x1e,0x1, 0x0, 0x1, 0x78,0x1f,0x0, 0x0, 0x1e,0x0, 0x4d, +0x2, 0x4, 0x6, 0x8, 0xa, 0xc, 0xe, 0x10,0x12,0x14,0x16,0x18,0x1a,0x1c,0x1e,0x20, +0x22,0x24,0x26,0x28,0x2a,0x2c,0x2e,0x30,0x32,0x34,0x36,0x38,0x3a,0x3c,0x0, 0x1, +0x77,0xb3,0x0, 0x0, 0x1, 0x77,0xcf,0x1e,0x0, 0x1, 0x78,0x27,0x0, 0x0, 0x2, 0x76, +0x5, 0x0, 0x0, 0x0, 0x6, 0x78,0x28,0x30,0x1f,0x50,0x11,0x20,0x10,0x0, 0x1, 0x78, +0x2e,0x34,0x0, 0x1, 0x75,0x8a,0x64,0x0, 0x1, 0x78,0x43,0x0, 0x0, 0x1, 0x77,0xd7, +0x0, 0x0, 0x1, 0x77,0xdc,0x5, 0x0, 0x1, 0x77,0xe0,0x4, 0x0, 0x1, 0x77,0xe1,0x1, +0x0, 0x1, 0x77,0xe5,0x0, 0x0, 0x1, 0x78,0x30,0x0, 0x0, 0x1, 0x78,0x34,0x1, 0x0, +0x1, 0x78,0x44,0x1, 0x0, 0x1, 0x77,0xfb,0x0, 0x0, 0x2, 0x25,0xb3,0x25,0xb9,0x0, +0x1, 0x27,0x49,0x2, 0x0, 0x1, 0x27,0x72,0x0, 0x0, 0x1, 0x77,0x2b,0xff,0x0, 0x1, +0x77,0x2c,0x0, 0x0, 0x1, 0x77,0x2d,0x0, 0x0, 0x1, 0x77,0x2e,0x40,0x0, 0x1, 0x77, +0x2f,0x40,0x0, 0x4, 0x78,0x35,0x0, 0x0, 0x90,0x0, 0x0, 0x4, 0x3, 0xf1,0x0, 0x0, +0x94,0x0, 0x0, 0x4, 0x3, 0xf5,0x0, 0x0, 0x98,0x0, 0x0, 0x4, 0x3, 0xf9,0x0, 0x0, +0x9c,0x0, 0x0, 0x4, 0x1, 0x78,0x0, 0x0, 0x80,0x0, 0x0, 0x4, 0x78,0x39,0x0, 0x0, +0x91,0x0, 0x0, 0x4, 0x78,0x3d,0x0, 0x0, 0x92,0x0, 0x0, 0x0, 0x3, 0xe8,0x0, 0x51, +0x0, 0x3, 0x3, 0x20,0x0, 0x50,0x0, 0x3, 0x2, 0x58,0x0, 0x4e,0x0, 0x4, 0x1, 0xc2, +0x0, 0x4b,0x0, 0x4, 0x1, 0x40,0x0, 0x47,0x0, 0x4, 0x0, 0xc8,0x0, 0x44,0x0, 0x4, +0x0, 0x78,0x0, 0x3e,0x0, 0x5, 0x0, 0x64,0x0, 0x3c,0x0, 0x5, 0x12,0xe5,0xf2,0xe4, +0x7a,0xb3,0x76,0x7c,0x2, 0x28,0x7c,0xd2,0x1, 0x12,0x28,0x8c,0x74,0x1f,0x7a,0xb3, +0x73,0x1f,0x7a,0xb3,0x73,0x20,0x22,0x12,0x66,0xc5,0xd2,0x1, 0xe4,0x7a,0xb3,0x74, +0x7f,0x7a,0xb3,0x74,0x80,0x6c,0xaa,0x12,0xc1,0xc0,0xbe,0xa0,0x3, 0x78,0xf8,0xe4, +0x7a,0xb3,0x74,0xf4,0x7a,0xb3,0x74,0x81,0x30,0x1, 0x3, 0x12,0x28,0x7c,0x22,0xca, +0x3b,0xc2,0x4, 0x12,0x37,0xba,0xc2,0xc, 0x30,0xb, 0x18,0xc2,0xb, 0x30,0xd, 0x4, +0xc2,0xd, 0x80,0x3, 0x12,0x59,0x3e,0x12,0x3c,0x27,0x12,0x47,0x1c,0x12,0x47,0xde, +0x12,0x28,0x77,0xd2,0x4, 0x12,0x37,0xba,0xc2,0x1, 0x12,0xd3,0x1d,0x30,0xe, 0x3c, +0xc2,0xe, 0x12,0xe6,0x81,0x7d,0x23,0x5e,0x24,0x0, 0x1, 0x68,0x2f,0x5e,0x34,0x0, +0x2, 0x68,0x5, 0x12,0xe4,0x93,0x80,0x11,0x75,0x1e,0x1, 0x74,0x1, 0x7a,0xb3,0x77, +0xe1,0x7f,0x3, 0x12,0x3f,0x7c,0x12,0x37,0xe1,0x12,0x47,0x1c,0xc2,0x1, 0x12,0x28, +0x8c,0xe5,0x1e,0x12,0x3b,0xdd,0x74,0x1f,0x7a,0xb3,0x73,0x20,0xd2,0x1, 0x12,0xd3, +0x1d,0xda,0x3b,0x22,0x74,0x5, 0x7a,0xb3,0x78,0x33,0x12,0x28,0xaf,0x7e,0xb3,0x73, +0x1f,0x60,0xd, 0x80,0x6, 0x12,0x2c,0x6f,0x12,0x28,0xaf,0x12,0x8b,0x5f,0x50,0xf5, +0x7e,0xb3,0x73,0x20,0x60,0xd, 0x80,0x6, 0x12,0x2c,0x6f,0x12,0x28,0xaf,0x12,0x35, +0xf7,0x50,0xf5,0x2, 0x29,0x56,0x7e,0x63,0x77,0xe1,0x7e,0x73,0x74,0x7e,0x74,0x26, +0xa5,0xbe,0x3, 0x8, 0xac,0xb7,0x49,0x15,0x74,0x96,0x80,0x6, 0xac,0xb7,0x49,0x15, +0x74,0x92,0x7d,0x21,0x7a,0x27,0x4a,0x6f,0x30,0x15,0x10,0x7e,0x24,0x0, 0x27,0xca, +0x29,0x12,0xe5,0x39,0x12,0x24,0xf, 0x1b,0xfd,0xc2,0x15,0x22,0x7e,0xa3,0x76,0x80, +0xbe,0xa0,0x5, 0x78,0x8, 0x74,0x1, 0x7a,0xb3,0x76,0x80,0x80,0x1b,0xbe,0xa0,0x4, +0x78,0x1c,0x74,0x1, 0x7a,0xb3,0x76,0x80,0x7e,0x34,0x21,0x57,0x12,0x29,0xdb,0x12, +0x2c,0x73,0x12,0x28,0x77,0x12,0x29,0x24,0x74,0x2, 0x7a,0xb3,0x76,0x80,0x22,0x7a, +0x37,0x6e,0x8d,0xe4,0x7a,0xb3,0x78,0x42,0x7e,0x34,0x21,0x67,0x7e,0x24,0x0, 0xff, +0xb, 0x1a,0x30,0x7a,0x37,0x6e,0x97,0x7e,0x34,0x21,0x69,0x7e,0x24,0x0, 0xff,0xb, +0x1a,0x30,0x22,0x90,0x21,0x51,0xe4,0x93,0x7a,0xb3,0x6e,0x89,0x12,0x2f,0x7d,0x7e, +0x34,0x21,0x5b,0x12,0x29,0xdb,0x7a,0x37,0x6e,0x8b,0x7e,0x34,0x21,0x5d,0x12,0x29, +0xdb,0x7a,0x37,0x6e,0x8d,0x7e,0x34,0x21,0x5f,0x12,0x29,0xdb,0x12,0x2b,0x49,0x7a, +0x37,0x6e,0x8f,0x7e,0x34,0x21,0x61,0x12,0x29,0xdb,0x12,0xe6,0x31,0x12,0x29,0xdb, +0x7a,0x37,0x6e,0x93,0x7e,0x34,0x21,0x65,0x12,0x29,0xdb,0x12,0x2b,0x49,0x7a,0x37, +0x6e,0x95,0x12,0x29,0xc8,0x12,0x2b,0x49,0x7a,0x37,0x6e,0x99,0x90,0x21,0x9b,0xe4, +0x93,0x7a,0xb3,0x6e,0x9d,0x90,0x21,0x54,0xe4,0x93,0x7a,0xb3,0x6e,0x9e,0x7e,0x34, +0x21,0x55,0x12,0x29,0xdb,0x7a,0x37,0x6e,0x9f,0x7e,0x34,0x21,0x6b,0x12,0x29,0xdb, +0x7a,0x37,0x6e,0x9b,0xe4,0x7a,0xb3,0x6e,0xa1,0x7a,0xb3,0x6e,0xa2,0x7a,0xb3,0x6e, +0xa3,0x7a,0xb3,0x6e,0xa4,0x7a,0xb3,0x6e,0xa5,0x7a,0xb3,0x6e,0xa6,0x7a,0xb3,0x6e, +0xa7,0x7a,0xb3,0x6e,0xa8,0x7a,0xb3,0x6e,0xa9,0x7a,0xb3,0x6e,0xaa,0x22,0x7e,0x34, +0x21,0x5b,0x12,0x29,0xdb,0x12,0x2f,0xae,0x7a,0x73,0x76,0xa, 0x7e,0x34,0x21,0x5d, +0x12,0x29,0xdb,0x12,0x2b,0x77,0x7a,0x73,0x76,0xb, 0x7e,0x34,0x21,0x63,0x12,0x29, +0xdb,0x12,0x2b,0x77,0x7a,0x73,0x76,0xc, 0x7e,0x34,0x21,0x63,0x12,0x29,0xdb,0x12, +0x2b,0x77,0x7a,0x73,0x76,0xd, 0x7e,0x34,0x21,0x6b,0x12,0x29,0xdb,0x12,0x2f,0xae, +0x7a,0x73,0x76,0xf, 0x7e,0x34,0x0, 0x6a,0xca,0x39,0x7e,0x34,0x21,0x6f,0x7e,0x24, +0x0, 0xff,0x7e,0x8, 0x76,0x10,0x12,0x24,0xf, 0x1b,0xfd,0x22,0x7e,0xb3,0x76,0x5a, +0xb4,0x1, 0x5, 0x12,0x2b,0x50,0x80,0xf, 0x7e,0xb3,0x6e,0xa3,0xb4,0x1, 0x5, 0x12, +0x2f,0x60,0x80,0x3, 0x12,0x6f,0x76,0x7e,0xb3,0x78,0x42,0x70,0x17,0x7e,0xb3,0x6e, +0x7c,0x70,0x11,0x7e,0xb3,0x6e,0xa3,0x70,0xb, 0x7e,0x34,0x21,0x6d,0x12,0x29,0xdb, +0x7a,0x37,0x6e,0x8b,0x12,0xca,0x84,0x68,0x11,0x7e,0x34,0x21,0x61,0x12,0x29,0xdb, +0x12,0xe6,0x31,0x12,0x29,0xdb,0x7a,0x37,0x6e,0x93,0x7e,0x34,0x21,0x5f,0x12,0x29, +0xdb,0x12,0x2b,0x49,0x7a,0x37,0x6e,0x8f,0x22,0x6e,0x34,0xff,0xff,0xb, 0x34,0x22, +0x7e,0x34,0x21,0x5b,0x12,0x29,0xdb,0x12,0x2f,0x79,0x7e,0x34,0x21,0x5d,0x12,0x29, +0xdb,0x12,0x29,0xbf,0x12,0x2f,0xa0,0x12,0x2b,0x6f,0x7a,0x73,0x76,0xb, 0x22,0x7a, +0x73,0x76,0xa, 0x7e,0x37,0x6e,0x8d,0xe, 0x34,0xe, 0x34,0xe, 0x34,0xe, 0x34,0xe, +0x34,0x22,0x30,0x29,0xf, 0x7e,0xb3,0x76,0x78,0xb4,0x1, 0x8, 0x74,0x1, 0x7a,0xb3, +0x73,0x1e,0x80,0x3, 0x12,0x52,0xda,0xc2,0x29,0x7e,0xb3,0x77,0xfa,0xb4,0x1, 0x2, +0x80,0x2, 0x81,0x36,0x12,0x68,0xda,0x12,0x8b,0xd2,0x12,0x4c,0x1f,0x12,0x29,0x24, +0x7e,0x34,0x21,0x59,0x12,0x29,0xdb,0x12,0x2c,0x73,0x12,0x8d,0x40,0x7e,0xb3,0x25, +0xae,0x70,0x2, 0x80,0x58,0x12,0xba,0x35,0x7e,0xb3,0x76,0x2e,0xb4,0x1, 0x2, 0xd2, +0x86,0x7e,0xb3,0x6e,0xa2,0x70,0x6, 0x12,0x2a,0xec,0x12,0xda,0xc3,0x12,0x74,0xa8, +0x7e,0xb3,0x25,0xae,0x70,0x2, 0x80,0x35,0x74,0x1, 0x12,0x2c,0x4b,0x12,0x2d,0xe, +0x12,0x99,0x25,0x12,0x9b,0x5b,0x74,0x2, 0x12,0x2c,0x4b,0x12,0x81,0xca,0x74,0x3, +0x12,0x2c,0x4b,0x12,0x9d,0x11,0x74,0x4, 0x12,0x2c,0x4b,0x12,0x67,0xf0,0x12,0xbb, +0xcf,0x12,0xa7,0x4e,0x12,0x70,0xd2,0x7e,0xb3,0x25,0xae,0x70,0xb, 0x12,0xb9,0xb9, +0x12,0x66,0x5a,0x12,0xd8,0x3a,0x61,0x99,0x12,0x79,0x53,0x12,0x68,0xb4,0x12,0x4f, +0x5a,0x12,0x66,0x63,0x61,0x99,0xd2,0x4, 0x12,0x36,0xe7,0x2, 0x2c,0x3e,0x12,0x0, +0x26,0x7e,0xb3,0x76,0x2e,0xb4,0x1, 0x2, 0xd2,0x86,0x22,0x1b,0xb1,0x68,0x10,0x14, +0x68,0x13,0x14,0x68,0x16,0x24,0x3, 0x78,0x15,0xe4,0x7a,0xb3,0x6e,0x86,0x22,0x12, +0x0, 0xa, 0x2, 0xb7,0xae,0x12,0xa7,0xed,0x2, 0x87,0x7, 0x2, 0xb4,0xeb,0x22,0x7e, +0x34,0x9, 0xc4,0x6d,0x22,0x7a,0x27,0x77,0xe9,0x7a,0x37,0x77,0xeb,0x22,0x12,0x52, +0x9c,0x7e,0xb3,0x77,0xfa,0xb4,0x3, 0x70,0x12,0x4e,0xc3,0x12,0x29,0x24,0x12,0x2c, +0x6f,0x7e,0xb3,0x76,0x7c,0x30,0xe7,0x5b,0x7e,0xb3,0x76,0x8d,0x70,0x5, 0xc2,0x4, +0x12,0x36,0xe7,0x12,0x28,0xaf,0x30,0x10,0x8, 0xc2,0x10,0x12,0x28,0x87,0x12,0x37, +0x94,0x7e,0xb3,0x76,0x8d,0x70,0x5, 0x12,0x8e,0x28,0x80,0x6, 0x12,0x8d,0x40,0x12, +0x8e,0x3f,0x7e,0xb3,0x73,0x1e,0xb4,0x1, 0x17,0x12,0xba,0x35,0x74,0x2, 0x12,0xca, +0x6, 0x12,0xda,0xc3,0x12,0x4f,0xf8,0x12,0xc9,0xfb,0x12,0x74,0xa8,0x12,0x2d,0xe, +0x12,0x51,0xa3,0x7e,0xb3,0x76,0x8d,0x70,0xa, 0x7e,0xb3,0x76,0x7c,0x54,0x7f,0x7a, +0xb3,0x76,0x7c,0x12,0x66,0x40,0x80,0x89,0xd2,0x29,0xd2,0x4, 0x12,0x36,0xe7,0x2, +0x2d,0x2, 0xe4,0x7a,0xb3,0x78,0x2f,0x6d,0x33,0x7a,0x37,0x78,0x31,0x22,0xc2,0x2a, +0x7e,0xb3,0x6e,0xa1,0x70,0x3, 0x12,0xc8,0x20,0x12,0x2f,0x20,0x12,0xbd,0xf2,0x12, +0x2f,0x20,0x12,0x55,0x9, 0x12,0x2f,0x20,0x12,0x5e,0xa3,0x12,0x2f,0x20,0x12,0x8f, +0xff,0x12,0x2f,0x20,0x2, 0x2d,0x37,0xca,0x3b,0xc2,0x0, 0x7e,0xd3,0x6c,0xde,0xa, +0x3d,0x3e,0x34,0xca,0x39,0x7e,0x18,0x6b,0x54,0x7e,0x8, 0x62,0xb8,0x12,0x24,0xf, +0x1b,0xfd,0x6c,0x11,0x75,0x26,0x0, 0x6c,0xcc,0xc1,0x11,0x7e,0x44,0x3, 0xff,0x7e, +0xe0,0xff,0x6c,0xff,0x80,0x5a,0x7c,0xbf,0x12,0x2f,0xde,0x60,0x51,0x12,0xe6,0x78, +0xbe,0x0, 0xff,0x68,0x49,0x9, 0x5, 0x62,0xb9,0xa, 0x10,0x7e,0x70,0x2, 0xac,0x7c, +0x9, 0x3, 0x77,0x77,0xa, 0x30,0x12,0x95,0x6b,0x8, 0x4, 0x9d,0x31,0x80,0x4, 0x6d, +0x33,0x9d,0x32,0x12,0xe6,0x78,0xa, 0xf0,0x74,0x2, 0xac,0xbc,0x9, 0x5, 0x77,0x76, +0xa, 0x10,0x7d,0x21,0x9d,0x2f,0xbe,0x24,0x0, 0x0, 0x8, 0x4, 0x9d,0x1f,0x80,0x4, +0x6d,0x11,0x9d,0x12,0x2d,0x13,0xbd,0x41,0x28,0x4, 0x7d,0x41,0x7c,0xef,0xb, 0xf0, +0xbc,0xdf,0x38,0xa2,0xbe,0xe0,0xff,0x68,0x46,0x7e,0x70,0x2, 0xac,0x7e,0x9, 0xb3, +0x62,0xb8,0x9, 0x73,0x62,0xb9,0x12,0x57,0x9, 0x7d,0x13,0x74,0x2, 0xac,0xbe,0x9, +0xb5,0x62,0xb8,0x12,0x97,0xf8,0xbd,0x13,0x48,0x25,0x7e,0x70,0x2, 0xac,0x7e,0x9, +0x3, 0x62,0xb8,0x7e,0xa1,0x26,0x74,0x2, 0xa4,0x19,0x5, 0x62,0xf4,0x9, 0x3, 0x62, +0xb9,0x19,0x5, 0x62,0xf5,0x74,0xff,0x19,0xb3,0x62,0xb8,0xb, 0x10,0x5, 0x26,0xb, +0xc0,0x7e,0x3, 0x77,0xb2,0xbc,0xc, 0x28,0x2, 0xa1,0x5b,0x7c,0xc1,0x80,0x76,0x6d, +0x0, 0x7e,0xe0,0xff,0x6c,0xff,0x80,0x40,0x7c,0xbf,0x12,0x2f,0xde,0x60,0x37,0x7e, +0x30,0x2, 0xac,0x3f,0x9, 0xb1,0x62,0xb8,0xbe,0xb0,0xff,0x68,0x29,0x9, 0x71,0x62, +0xb9,0x12,0x57,0x9, 0x7d,0x43,0xc2,0x0, 0xbd,0x4, 0x58,0x2, 0xd2,0x0, 0x30,0x0, +0x15,0x7e,0x70,0x2, 0xac,0x7f,0x9, 0xb3,0x62,0xb8,0xf5,0x27,0x9, 0xb3,0x62,0xb9, +0xf5,0x28,0x7d,0x4, 0x7c,0xef,0xb, 0xf0,0xbc,0xdf,0x38,0xbc,0xbe,0xe0,0xff,0x68, +0x22,0x7e,0xa1,0x27,0x7e,0x31,0x26,0x74,0x2, 0xac,0x3b,0x19,0xa1,0x62,0xf4,0xe5, +0x28,0x19,0xb1,0x62,0xf5,0x7e,0xa0,0xff,0x7e,0x30,0x2, 0xac,0x3e,0x19,0xa1,0x62, +0xb8,0x5, 0x26,0xb, 0xc0,0x90,0x21,0x51,0xe4,0x93,0xbc,0xbc,0x38,0x81,0x90,0x21, +0x52,0xe4,0x93,0x7c,0xab,0x74,0x2, 0xa4,0xca,0x59,0x7e,0x18,0x62,0xf4,0x7e,0x8, +0x62,0xb8,0x12,0x24,0xf, 0x1b,0xfd,0x7e,0xd1,0x26,0x12,0x54,0xc8,0x74,0x2, 0xac, +0x7b,0x7e,0x8, 0x77,0x76,0x74,0xff,0x12,0x24,0x34,0xbe,0xd0,0x0, 0x28,0x37,0xa, +0x3d,0x3e,0x34,0xca,0x39,0x7e,0x18,0x62,0xb8,0x7e,0x8, 0x6b,0x54,0x12,0x24,0xf, +0x1b,0xfd,0xa, 0x3d,0x3e,0x34,0xca,0x39,0x7e,0x18,0x62,0xb8,0x7e,0x8, 0x77,0x76, +0x12,0x24,0xf, 0x1b,0xfd,0x6c,0xcc,0x80,0x9, 0xd2,0x2, 0x7c,0xbc,0x12,0x57,0x49, +0xb, 0xc0,0xbc,0xdc,0x38,0xf3,0x7a,0xd3,0x77,0xb2,0x7a,0xd3,0x6c,0xde,0x90,0x21, +0x51,0xe4,0x93,0xbe,0xb3,0x6c,0xde,0x50,0x4, 0x7a,0xb3,0x6c,0xde,0xda,0x3b,0x22, +0xca,0x79,0x6c,0xff,0x6c,0xee,0x80,0x2c,0x7c,0xbe,0x12,0x2f,0xde,0x60,0x23,0x7e, +0x34,0x0, 0x2, 0xca,0x39,0xac,0x7e,0x2e,0x34,0x6b,0x54,0x6d,0x22,0x7e,0x30,0x2, +0xac,0x3f,0x2e,0x14,0x6b,0x54,0x6d,0x0, 0x12,0x24,0xf, 0x1b,0xfd,0xd2,0x2, 0x12, +0x57,0x3d,0xb, 0xe0,0x12,0x9d,0x0, 0x38,0xcf,0x7a,0xf3,0x6c,0xde,0xda,0x79,0x22, +0x7e,0x34,0x0, 0xaa,0x12,0x2f,0x79,0x7e,0x34,0x0, 0x64,0x12,0x29,0xbf,0x12,0x2f, +0xa0,0x12,0x2b,0x6f,0x7a,0x73,0x76,0xb, 0x22,0x7a,0x37,0x6e,0x8b,0x90,0x21,0x53, +0xe4,0x93,0x7a,0xb3,0x6e,0x8a,0x22,0x7e,0x34,0x21,0x57,0x12,0x29,0xdb,0x12,0x2c, +0x73,0x12,0x69,0x3f,0x12,0x54,0x1c,0x12,0xe5,0xf2,0x12,0x2f,0xf0,0x2, 0x28,0x7c, +0x6e,0x34,0xff,0xff,0xb, 0x34,0x7a,0x37,0x6e,0x99,0x7e,0x37,0x6e,0x8b,0x1e,0x34, +0x1e,0x34,0x1e,0x34,0x1e,0x34,0x1e,0x34,0x22,0x12,0x69,0x3f,0x12,0x2a,0x8e,0x12, +0x54,0x1c,0x12,0x59,0x32,0x12,0x28,0x6c,0x7e,0xb3,0x76,0x31,0x24,0xfd,0x68,0x9, +0xb, 0xb1,0x78,0xf4,0x12,0x2b,0x82,0x80,0xef,0x12,0x2c,0x7e,0x80,0xea,0x7c,0x7b, +0xc4,0x23,0x54,0x1f,0xa, 0x2b,0x9, 0xa2,0x6b,0xcc,0x12,0x6e,0x60,0x5c,0xba,0x22, +0x7e,0x34,0xd, 0xac,0x2, 0x2c,0x73,0x7e,0xb3,0x76,0xae,0x12,0x34,0xac,0x7e,0x37, +0x4a,0x6d,0x4e,0x60,0x1, 0x7a,0x37,0x4a,0x6d,0x4e,0x70,0x20,0x7a,0x37,0x4a,0x6d, +0xca,0x3b,0x7e,0xf3,0x77,0xe1,0x7e,0x30,0x27,0xac,0x3f,0x9, 0xb1,0x28,0xe6,0xf5, +0x26,0x9, 0xb1,0x28,0xe7,0xf5,0x27,0x7e,0x4, 0x0, 0x27,0xca,0x9, 0x2e,0x14,0x28, +0xe6,0x6d,0x0, 0x7e,0x18,0x76,0xad,0x12,0x24,0xf, 0x1b,0xfd,0x74,0x27,0xac,0xbf, +0x9, 0xe5,0x28,0xea,0x7e,0xd0,0xb5,0xac,0xde,0x2e,0x64,0x1, 0x0, 0xe4,0x12,0x35, +0x28,0x12,0x32,0x3e,0x5e,0x24,0x1, 0x0, 0x68,0xc, 0x5e,0x60,0xfe,0x7a,0x37,0x4a, +0x6d,0x7c,0xbf,0x12,0x38,0x20,0x12,0x32,0x3e,0x5e,0x24,0x0, 0x1, 0x68,0x2e,0x5e, +0x70,0xfe,0x7a,0x37,0x4a,0x6d,0x7e,0xb3,0x76,0xad,0x12,0x38,0x8, 0x50,0xc, 0x7e, +0xb3,0x76,0xad,0x12,0x38,0x81,0x12,0x32,0xb7,0x80,0x12,0x7e,0xa1,0x26,0x7e,0x70, +0x27,0xac,0x7f,0x19,0xa3,0x28,0xe6,0xe5,0x26,0x7a,0xb3,0x76,0xad,0x12,0x32,0x3e, +0x5e,0x24,0x0, 0x2, 0x68,0x37,0x5e,0x70,0xfd,0x7a,0x37,0x4a,0x6d,0x7e,0xb3,0x76, +0xae,0x12,0xc6,0x48,0x50,0x15,0x7e,0xb3,0x76,0xae,0x12,0x39,0x17,0x50,0xc, 0x7e, +0xb3,0x76,0xae,0x12,0x34,0xac,0x12,0x32,0xb7,0x80,0x12,0x7e,0xa1,0x27,0x7e,0x70, +0x27,0xac,0x7f,0x19,0xa3,0x28,0xe7,0xe5,0x27,0x7a,0xb3,0x76,0xae,0x12,0x32,0x3e, +0x5e,0x24,0x0, 0x4, 0x68,0x2d,0x5e,0x70,0xfb,0x12,0x32,0x71,0x7e,0x30,0x2c,0xac, +0x3e,0x12,0x33,0xde,0x74,0x1, 0x7e,0x70,0x27,0xac,0x7f,0x12,0x37,0xe8,0x12,0x33, +0xe5,0x12,0x32,0x45,0x12,0x34,0xf1,0x12,0x34,0xe2,0x7d,0x36,0x74,0x2c,0xac,0xbe, +0x12,0x8a,0xed,0x12,0x32,0x3e,0x5e,0x24,0x0, 0x8, 0x68,0xe, 0x5e,0x70,0xf7,0x7a, +0x37,0x4a,0x6d,0x7e,0xb3,0x76,0xb0,0x12,0x38,0xcd,0x12,0x32,0x3e,0x5e,0x24,0x0, +0x10,0x68,0xc, 0x5e,0x70,0xef,0x12,0x32,0x78,0x12,0x32,0x45,0x12,0x34,0xf1,0x12, +0x32,0x3e,0x5e,0x24,0x0, 0x20,0x68,0x37,0x5e,0x70,0xdf,0x7a,0x37,0x4a,0x6d,0x4e, +0x60,0x2, 0x12,0x32,0x71,0x12,0x33,0xe5,0x12,0x32,0x65,0x74,0xa, 0xac,0xbf,0x12, +0xe5,0xb0,0x12,0x32,0x65,0x7e,0x70,0x27,0xac,0x7f,0x12,0xe5,0xc7,0x7c,0xbf,0x12, +0xd8,0x46,0x12,0x34,0xe2,0x12,0x32,0x5f,0x7e,0x24,0x0, 0x10,0x12,0xc, 0xcc,0x12, +0x32,0x3e,0x5e,0x24,0x0, 0x40,0x68,0x20,0x5e,0x70,0xbf,0x7a,0x37,0x4a,0x6d,0xbe, +0xf0,0x3, 0x7c,0xbf,0x12,0x8f,0x6f,0x78,0x7, 0xac,0x67,0x12,0xe6,0x4c,0x80,0x5, +0xac,0x67,0x12,0x37,0xff,0x12,0x44,0x0, 0x12,0x32,0x3e,0x5e,0x24,0x0, 0x80,0x68, +0xa, 0x5e,0x70,0x7f,0x7a,0x37,0x4a,0x6d,0x12,0x5a,0x65,0x12,0x32,0x3e,0x5e,0x24, +0x2, 0x0, 0x68,0x3b,0x5e,0x60,0xfd,0x7a,0x37,0x4a,0x6d,0x74,0x27,0xac,0xbf,0x49, +0xe5,0x28,0xed,0xb, 0xe4,0x7e,0xf7,0x76,0xd6,0xad,0xef,0xbe,0x78,0x7f,0xff,0x28, +0x4, 0x7e,0x78,0x7f,0xff,0x7e,0x8, 0x0, 0x82,0x12,0x34,0xf8,0x7e,0x8, 0x0, 0xbe, +0x12,0x34,0xf8,0x7e,0x8, 0x0, 0x82,0x7d,0x3f,0x12,0xd8,0x90,0x12,0xc, 0xcc,0x12, +0x32,0x3e,0x5e,0x24,0x4, 0x0, 0x68,0xe, 0x5e,0x60,0xfb,0x7a,0x37,0x4a,0x6d,0x7e, +0xb3,0x76,0x86,0x12,0xc2,0x16,0x12,0x32,0x3e,0x5e,0x24,0x10,0x0, 0x68,0x7, 0x5e, +0x60,0xef,0x7a,0x37,0x4a,0x6d,0x12,0x32,0x3e,0x5e,0x24,0x20,0x0, 0x68,0xc, 0x5e, +0x60,0xdf,0x7a,0x37,0x4a,0x6d,0x7c,0xbf,0x12,0x57,0xfb,0xda,0x3b,0x22,0x7e,0x37, +0x4a,0x6d,0x7d,0x23,0x22,0x7e,0x30,0x2c,0xac,0x3e,0x2e,0x14,0x1, 0x0, 0x6d,0x0, +0x74,0xa, 0xac,0xbf,0x49,0x35,0x29,0x92,0x49,0x25,0x29,0x90,0x12,0x9, 0xad,0x7d, +0x36,0x2e,0x34,0x0, 0x6, 0x7e,0x30,0x2c,0xac,0x3e,0x2e,0x14,0x1, 0x0, 0x6d,0x0, +0x22,0x7a,0x37,0x4a,0x6d,0x4e,0x60,0x10,0x7a,0x37,0x4a,0x6d,0x7c,0xbf,0xca,0xf8, +0x7c,0xfb,0x12,0x32,0xb7,0x7e,0xa3,0x76,0xaf,0x7e,0x70,0x27,0xac,0x7f,0x19,0xa3, +0x28,0xe8,0x6c,0xaa,0x7e,0x50,0x2, 0xac,0x5a,0x49,0x42,0x76,0xb4,0x7e,0x70,0x27, +0xac,0x7f,0x2d,0x32,0x59,0x43,0x28,0xed,0xb, 0xa0,0xbe,0xa0,0x10,0x40,0xe5,0x7c, +0xbf,0x12,0x89,0x3a,0xda,0xf8,0x22,0x12,0x47,0xed,0x68,0x3a,0xe5,0x1e,0x60,0x36, +0x7e,0xb3,0x76,0xad,0x7e,0x73,0x76,0xae,0x12,0xd3,0x44,0x7d,0x23,0x7e,0x34,0x0, +0x3, 0xad,0x32,0x7e,0x24,0x0, 0xa, 0x8d,0x32,0x6c,0xaa,0x7e,0x50,0x2, 0xac,0x5a, +0x49,0x12,0x76,0xb4,0xbd,0x13,0x28,0x7, 0x59,0x32,0x76,0xb4,0x12,0xe5,0xe6,0xb, +0xa0,0xbe,0xa0,0x10,0x78,0xe5,0x22,0xca,0x79,0x7c,0xeb,0xbe,0xe0,0x4, 0x40,0x2, +0x61,0xcd,0x12,0xe6,0x43,0xbe,0xf0,0x3, 0x40,0x2, 0x61,0xcd,0x74,0x2, 0xac,0xbe, +0x9, 0xb5,0x29,0x83,0x54,0x3f,0xa, 0x3b,0x74,0x2c,0xac,0xbf,0x59,0x35,0x0, 0xf4, +0x74,0x2, 0xac,0xbe,0x9, 0xb5,0x29,0x82,0x54,0x1f,0x7c,0x6b,0x6c,0x77,0x12,0x33, +0xd2,0x74,0x2c,0xac,0xbf,0x59,0x35,0x0, 0xf6,0x12,0x33,0xd9,0x74,0x1, 0x7e,0x70, +0x27,0xac,0x7e,0x12,0x37,0xe8,0x7e,0x30,0x2c,0xac,0x3f,0x12,0x32,0x6a,0x7e,0x70, +0x27,0xac,0x7e,0x12,0xe5,0xc7,0x7e,0x30,0x2c,0xac,0x3f,0x12,0x38,0x7a,0x74,0x27, +0xac,0xbe,0x9, 0x75,0x28,0xe6,0x12,0x33,0xd0,0x12,0xd, 0xd3,0x7e,0x30,0x2c,0xac, +0x3f,0x12,0x34,0x9d,0x74,0x27,0xac,0xbe,0x9, 0x75,0x28,0xe7,0x12,0x33,0xd0,0x12, +0xd, 0xe5,0x7e,0x30,0x2c,0xac,0x3f,0x12,0x34,0x9d,0x74,0xa, 0xac,0xbe,0x12,0x33, +0xf4,0x7e,0x30,0x2c,0xac,0x3f,0x12,0x32,0x6a,0x74,0xa, 0xac,0xbe,0x12,0xe5,0xb0, +0x7e,0x30,0x2c,0xac,0x3f,0x2e,0x14,0x1, 0x8, 0x6d,0x0, 0x74,0x27,0xac,0xbe,0x9, +0xb5,0x28,0xe9,0x12,0xc, 0xaa,0xe4,0x12,0x35,0x28,0x7e,0x70,0xb5,0xac,0x7f,0x2e, +0x34,0x1, 0x0, 0x12,0x33,0xd9,0x7e,0x24,0x0, 0x16,0x12,0xc, 0xcc,0xda,0x79,0x22, +0xa, 0x37,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x22,0x7e,0x30,0x2c,0xac,0x3f,0x2e,0x14, +0x0, 0xf4,0x6d,0x0, 0x22,0x7e,0x30,0x2c,0xac,0x3e,0x2e,0x14,0x0, 0xf8,0x6d,0x0, +0x74,0xa, 0xac,0xbf,0x9, 0xb5,0x29,0x8a,0x2, 0xd, 0x73,0x12,0x34,0x94,0x7d,0x1, +0x5e,0x4, 0x0, 0x1, 0x78,0xa, 0xe4,0x7a,0xb3,0x77,0xe1,0x75,0x1e,0x0, 0x80,0x2f, +0x5e,0x14,0x0, 0x2, 0x78,0x5, 0x12,0x34,0xff,0x80,0x24,0x7e,0xb3,0x77,0xe1,0xbe, +0xb0,0x1, 0x68,0x2, 0x70,0x19,0x12,0x34,0x8b,0x68,0xb, 0x74,0x2, 0x7a,0xb3,0x77, +0xe1,0x75,0x1e,0x2, 0x80,0x9, 0x74,0x3, 0x7a,0xb3,0x77,0xe1,0x75,0x1e,0x3, 0x74, +0x1, 0x12,0x32,0xf7,0x7e,0xb3,0x77,0xe1,0x24,0x0, 0x68,0x2d,0x24,0xfd,0x68,0x16, +0x4, 0x78,0x2a,0x12,0x34,0x94,0x5e,0x14,0x0, 0x2, 0x68,0x2e,0x12,0x34,0x8b,0x78, +0x29,0x74,0x1, 0x2, 0x5, 0xbc,0x12,0x34,0x94,0x5e,0x14,0x0, 0x2, 0x68,0x1b,0x12, +0x34,0x8b,0x68,0x16,0x74,0x1, 0x2, 0x5, 0x30,0xe4,0x2, 0x32,0xf7,0x7e,0xf, 0x78, +0x39,0x12,0x3f,0x7c,0x12,0x37,0xe1,0x12,0x34,0xff,0x22,0x69,0x31,0x0, 0xe, 0x5e, +0x34,0x0, 0x8, 0x22,0x7e,0x1f,0x78,0x39,0x69,0x11,0x0, 0x6, 0x22,0x2e,0x14,0x0, +0xf8,0x6d,0x0, 0x22,0x74,0x26,0xac,0xbf,0x9, 0xb5,0x74,0x82,0xca,0x3b,0x7c,0xfb, +0x6c,0xee,0x74,0x27,0xac,0xbe,0x19,0xf5,0x28,0xe7,0xb, 0xe0,0xbe,0xe0,0x4, 0x78, +0xf1,0x7e,0x64,0x1, 0x0, 0x6c,0xee,0x7e,0x30,0x2c,0xac,0x3e,0x12,0x34,0x9d,0xa, +0x3f,0x12,0x33,0xd2,0x12,0xd, 0xe5,0x12,0x34,0xe2,0x12,0x38,0xc3,0x40,0xe8,0xda, +0x3b,0x22,0x7d,0x36,0xb, 0x35,0x74,0x2c,0xac,0xbe,0x49,0x25,0x0, 0xf8,0x2, 0x0, +0x2e,0x7e,0x24,0x0, 0x4, 0x2, 0xc, 0xcc,0x7e,0x37,0x76,0xd4,0x2, 0xc, 0x88,0x74, +0x1, 0x7a,0xb3,0x77,0xe1,0x75,0x1e,0x1, 0x22,0xca,0xf8,0x12,0xd3,0x56,0x7e,0xf0, +0x1, 0x7c,0xbf,0x12,0x32,0xf7,0xb, 0xf0,0xbe,0xf0,0x4, 0x78,0xf4,0xe5,0x1e,0x70, +0x4, 0xe4,0x12,0x32,0xf7,0xda,0xf8,0x22,0x7c,0xab,0x7e,0x8, 0x0, 0x7c,0x7c,0xba, +0x12,0xd, 0xf7,0x7e,0x8, 0x0, 0xb8,0x12,0xd, 0xf7,0x7e,0x34,0x0, 0x8, 0x7e,0x8, +0x0, 0x7c,0x12,0x5b,0x4d,0x7e,0x34,0x0, 0x8, 0x7e,0x8, 0x0, 0xb8,0x7e,0x24,0x0, +0x1, 0x2, 0x4, 0x96,0x7c,0xbf,0x7e,0x73,0x74,0x7e,0xca,0x79,0x7c,0xf7,0x7c,0xeb, +0xd2,0x17,0x12,0x34,0xa4,0xbe,0xe0,0x3, 0x7c,0xbe,0x7e,0x70,0x26,0x78,0x7, 0xac, +0x7f,0x12,0xe6,0x4c,0x80,0x5, 0xac,0x7f,0x12,0x37,0xff,0x12,0x44,0x0, 0xda,0x79, +0x22,0xca,0x79,0x7c,0xfb,0xc2,0x2, 0x7c,0xbf,0x12,0xc7,0x64,0xe5,0x1e,0x60,0x5d, +0x6c,0xee,0x74,0x26,0xac,0xbe,0x9, 0xb5,0x74,0x8f,0x60,0x38,0x12,0x8f,0x67,0x7c, +0x7e,0x12,0x35,0x5a,0xd2,0x2, 0xbe,0xf0,0x3, 0xa2,0x1, 0x92,0x3, 0x74,0x26,0x78, +0xc, 0xac,0xbe,0x49,0x15,0x74,0xa6,0x49,0x5, 0x74,0xa4,0x80,0xa, 0xac,0xbe,0x49, +0x15,0x74,0x9e,0x49,0x5, 0x74,0x9c,0x49,0x35,0x74,0xa2,0x49,0x25,0x74,0xa0,0x7c, +0xbf,0x12,0x36,0xff,0x20,0xb, 0x6, 0x20,0xc, 0x3, 0x30,0xe, 0x9, 0x30,0x2, 0x3, +0x12,0x35,0x54,0xc3,0x80,0xe, 0xb, 0xe0,0xbe,0xe0,0x3, 0x40,0xa5,0x30,0x2, 0x3, +0x12,0x35,0x54,0xd3,0xda,0x79,0x22,0xca,0xf8,0xc2,0x0, 0x7e,0xf3,0x77,0xe1,0x20, +0xb, 0x6, 0x20,0xc, 0x3, 0x30,0xe, 0x3, 0xc3,0xc1,0x99,0x7e,0x24,0x0, 0x1, 0x7c, +0xbf,0x60,0x5, 0x3e,0x24,0x14,0x78,0xfb,0x7e,0x73,0x73,0x20,0x6c,0x66,0x5c,0x75, +0x4d,0x33,0x68,0x74,0x7c,0xbf,0x12,0x8f,0x4b,0x50,0x2, 0xd2,0x0, 0xd2,0x4, 0x12, +0x36,0xe7,0xa2,0x0, 0x92,0x1, 0x7c,0xbf,0x12,0x35,0x81,0x40,0x3, 0xc3,0x80,0x59, +0x7c,0xbf,0x7e,0x73,0x75,0x6, 0x12,0x35,0x5a,0xe4,0x7c,0x7f,0x12,0x8e,0x47,0xa2, +0x0, 0x92,0x3, 0x7e,0xf, 0x24,0x64,0x7e,0x18,0x18,0x3c,0x7c,0xbf,0x12,0x36,0xff, +0x12,0x35,0x54,0x20,0xb, 0x6, 0x20,0xc, 0x3, 0x30,0xe, 0x3, 0xc3,0x80,0x2a,0x12, +0x37,0x94,0x12,0xc6,0x6c,0xc2,0x1, 0x12,0x28,0x8c,0x12,0x8b,0xcb,0x60,0x5, 0x3e, +0x34,0x14,0x78,0xfb,0x6e,0x70,0xff,0x5e,0x73,0x73,0x20,0x7a,0x73,0x73,0x20,0x12, +0x47,0xde,0x12,0x8b,0xd2,0xd3,0x80,0x1, 0xd3,0xda,0xf8,0x22,0xca,0xf8,0x7c,0xfb, +0xbe,0xf0,0x3, 0x50,0x1c,0xbe,0x70,0x3, 0x50,0x17,0xd2,0x4, 0x12,0x36,0xe7,0x12, +0x34,0xa4,0x7e,0xb3,0x77,0xe1,0x7c,0x7f,0x12,0x35,0x5a,0x7a,0xf3,0x74,0x7e,0xd2, +0x15,0xda,0xf8,0x22,0x7e,0x34,0x1, 0x16,0x7e,0x8, 0x62,0xb8,0x7e,0x24,0x0, 0x12, +0x12,0x3, 0xfa,0x7e,0x34,0x1, 0x16,0x7e,0x8, 0x62,0xdc,0x7e,0x24,0x0, 0x12,0x12, +0x4, 0x96,0x12,0x37,0x94,0xd2,0x4, 0x80,0x6, 0x30,0xb, 0x3, 0x12,0x3e,0xe7,0x7e, +0xb3,0x76,0xff,0xbe,0xb0,0x1, 0x68,0xf1,0x30,0x4, 0x3, 0x2, 0xb, 0xe5,0x22,0xca, +0x3b,0xf5,0x2a,0x7f,0x31,0x7a,0xd, 0x26,0x7e,0x18,0xc, 0x18,0x7a,0x1d,0x2d,0x12, +0x37,0x94,0x7e,0xd, 0x26,0x12,0x37,0xef,0x30,0x3, 0xc, 0x7e,0x18,0x10,0x24,0x7a, +0x1d,0x31,0x7f,0x3, 0x12,0x37,0xef,0xe4,0x68,0x3, 0x12,0x37,0x94,0xd2,0x4, 0x12, +0x36,0xe7,0x30,0x3, 0x23,0x6d,0x33,0x80,0x17,0x12,0x37,0xf7,0x7e,0xd, 0x31,0x2d, +0x12,0xb, 0xa, 0x50,0x7d,0x23,0x3e,0x24,0x12,0xc5,0x5, 0x1b,0xa, 0x20,0xb, 0x34, +0x7a,0x35,0x2b,0x12,0xe6,0xf, 0x38,0xe1,0x6d,0x33,0x80,0x1f,0x12,0x37,0xf7,0x7e, +0xd, 0x2d,0x2d,0x12,0xb, 0xa, 0x20,0x3e,0x34,0x7e,0xd, 0x26,0x2d,0x13,0xb, 0xa, +0x30,0x2d,0x32,0x1b,0xa, 0x30,0x7e,0x35,0x2b,0xb, 0x34,0x7a,0x35,0x2b,0x12,0xe6, +0xf, 0x38,0xd9,0x7e,0xd, 0x26,0x12,0x8c,0x97,0x30,0x3, 0x5, 0x7f,0x3, 0x12,0x8c, +0x97,0xda,0x3b,0x22,0xe4,0x7a,0xb3,0x76,0xff,0x12,0xe5,0xd2,0x12,0xe4,0xbb,0x12, +0x3c,0xf3,0x12,0x37,0xe1,0xc2,0x4, 0x12,0x37,0xba,0x12,0xd3,0xbf,0xbe,0xb0,0x1, +0x68,0x3, 0x12,0xd3,0xaf,0xd2,0x4, 0x2, 0x37,0xba,0xa2,0xac,0x92,0x5, 0xc2,0xac, +0x7e,0xf, 0x78,0x39,0x30,0x4, 0xa, 0xb, 0x16,0xb, 0xa, 0x30,0x4e,0x70,0x3, 0x80, +0x8, 0xb, 0x16,0xb, 0xa, 0x30,0x5e,0x70,0xfc,0x1b,0xa, 0x30,0xa2,0x5, 0x92,0xac, +0x22,0x5e,0x70,0xfb,0x1b,0xa, 0x30,0x22,0x9, 0x73,0x28,0xe8,0x2, 0xd, 0x23,0x7e, +0x34,0x4, 0xc, 0xe4,0x2, 0x24,0x34,0x7e,0x35,0x2b,0x7d,0x23,0x3e,0x24,0x22,0x49, +0x13,0x74,0x92,0x49,0x3, 0x74,0x90,0x22,0x7c,0x7b,0x74,0x8, 0xac,0x7b,0xbe,0x34, +0x0, 0x5a,0x38,0x2, 0xc3,0x22,0xbe,0x34,0x0, 0x1e,0x50,0x2, 0xc3,0x22,0xd3,0x22, +0x7c,0x7b,0x74,0x27,0xac,0xb7,0x9, 0x95,0x28,0xea,0x7e,0x63,0x76,0xa5,0x74,0x2, +0xac,0xb7,0x19,0x65,0x29,0x82,0x7e,0x63,0x76,0xa6,0x74,0x2, 0xac,0xb7,0x19,0x65, +0x29,0x83,0x74,0x2, 0xac,0x7b,0x2e,0x34,0x29,0x82,0x7e,0x14,0x0, 0x28,0x12,0x23, +0x44,0x7e,0x30,0x2c,0xac,0x39,0x7d,0x31,0x2e,0x34,0x0, 0xf4,0x12,0x38,0x7a,0x12, +0xb, 0x44,0x7e,0x70,0xb5,0xac,0x79,0x2e,0x34,0x1, 0x0, 0x7e,0x30,0x2c,0xac,0x39, +0x12,0x33,0xde,0x7e,0x24,0x0, 0x2, 0x2, 0xc, 0xcc,0x2e,0x14,0x0, 0xf6,0x6d,0x0, +0x22,0xca,0x3b,0x7c,0xfb,0x6c,0xee,0x74,0x27,0xac,0xbe,0x19,0xf5,0x28,0xe6,0xb, +0xe0,0xbe,0xe0,0x4, 0x78,0xf1,0x7e,0x64,0x1, 0x0, 0x6c,0xee,0x7e,0x30,0x2c,0xac, +0x3e,0x12,0x38,0x7a,0xa, 0x3f,0x12,0x33,0xd2,0x12,0xd, 0xd3,0x7d,0x36,0xb, 0x34, +0x74,0x2c,0xac,0xbe,0x49,0x25,0x0, 0xf6,0x12,0x0, 0x2e,0x12,0x38,0xc3,0x40,0xdc, +0xda,0x3b,0x22,0x2e,0x64,0x0, 0xb5,0xb, 0xe0,0xbe,0xe0,0x3, 0x22,0xca,0x3b,0x7c, +0xfb,0x6c,0xee,0x74,0x27,0xac,0xbe,0x19,0xf5,0x28,0xe9,0xb, 0xe0,0xbe,0xe0,0x4, +0x78,0xf1,0x7e,0x64,0x1, 0xa, 0x6c,0xee,0x7e,0x30,0x2c,0xac,0x3e,0x2e,0x14,0x1, +0x8, 0x6d,0x0, 0x7c,0xbf,0x12,0xc, 0xaa,0x12,0x39,0xc, 0x12,0x6, 0x48,0x12,0x39, +0xc, 0x12,0x6, 0xc5,0x12,0x38,0xc3,0x40,0xdf,0xda,0x3b,0x22,0x7d,0x36,0x74,0x2c, +0xac,0xbe,0x49,0x25,0x1, 0x8, 0x22,0x7c,0x7b,0x74,0x8, 0xac,0x7b,0xbe,0x34,0x0, +0x12,0x50,0x2, 0xc3,0x22,0xd3,0x22,0x7c,0x2b,0xa5,0xba,0xfa,0x5, 0x7e,0xb3,0x4a, +0x66,0x22,0xa5,0xba,0xfc,0x3, 0x74,0x1, 0x22,0xbe,0x20,0x5b,0x38,0x7, 0xa, 0x32, +0x9, 0xb3,0x76,0x7c,0x22,0xbe,0x20,0x6a,0x68,0x4, 0xa5,0xba,0x6b,0x1d,0x7e,0x37, +0x4a,0x63,0x7d,0x23,0xb, 0x24,0x7a,0x27,0x4a,0x63,0x2e,0x37,0x4e,0x7f,0x7e,0x39, +0x30,0xa5,0xba,0x6b,0x3, 0x75,0x1a,0x6a,0x7c,0xb3,0x22,0xbe,0x20,0x6e,0x68,0x4, +0xa5,0xba,0x6f,0x1d,0x7e,0x37,0x4a,0x61,0x7d,0x23,0xb, 0x24,0x7a,0x27,0x4a,0x61, +0x2e,0x37,0x4a,0x6f,0x7e,0x39,0x30,0xa5,0xba,0x6f,0x3, 0x75,0x1a,0x6e,0x7c,0xb3, +0x22,0xbe,0x20,0x6c,0x68,0x4, 0xa5,0xba,0x6d,0x1d,0x7e,0x37,0x4e,0x7d,0x7d,0x23, +0xb, 0x24,0x7a,0x27,0x4e,0x7d,0x2e,0x37,0x4a,0x6b,0x7e,0x39,0x30,0xa5,0xba,0x6d, +0x3, 0x75,0x1a,0x6c,0x7c,0xb3,0x22,0xbe,0x20,0x89,0x68,0x4, 0xa5,0xba,0x8a,0x1d, +0x7e,0x37,0x4e,0x83,0x7d,0x23,0xb, 0x24,0x7a,0x27,0x4e,0x83,0x2e,0x37,0x4e,0x81, +0x7e,0x39,0x30,0xa5,0xba,0x8a,0x3, 0x75,0x1a,0x89,0x7c,0xb3,0x22,0xbe,0x20,0x70, +0x40,0xa, 0xbe,0x20,0x7f,0x38,0x5, 0x7c,0xb2,0x2, 0x3a,0xa4,0xbe,0x20,0x81,0x68, +0x4, 0xa5,0xba,0x82,0x2a,0x7e,0xb3,0x76,0x93,0x7c,0xab,0xbe,0xa0,0x20,0x40,0xd, +0xbe,0xa0,0x40,0x50,0x8, 0xa, 0x3a,0x9, 0x33,0x6b,0x14,0x80,0x3, 0x12,0x6f,0xe6, +0x4, 0x7a,0xb3,0x76,0x93,0xa5,0xba,0x82,0x3, 0x75,0x1a,0x81,0x7c,0xb3,0x22,0xa5, +0xba,0x86,0x5, 0x7e,0xb3,0x4a,0x68,0x22,0xa5,0xba,0x87,0x5, 0x7e,0xb3,0x4a,0x60, +0x22,0xa5,0xba,0x88,0x19,0x7e,0x1f,0x78,0x39,0x69,0x31,0x0, 0x10,0x5e,0x34,0x38, +0x0, 0xa, 0x56,0x1e,0x54,0x1e,0x54,0x1e,0x54,0x5e,0x54,0x0, 0x7, 0x22,0xbe,0x20, +0x90,0x40,0xa, 0xbe,0x20,0x94,0x38,0x5, 0x7c,0xb2,0x2, 0x66,0x98,0xbe,0x20,0x99, +0x68,0x4, 0xa5,0xba,0x9a,0x1b,0x7e,0x33,0x4a,0x65,0x7c,0xb3,0x4, 0x7a,0xb3,0x4a, +0x65,0xa, 0x33,0x9, 0x33,0x4e,0x85,0xa5,0xba,0x9a,0x3, 0x75,0x1a,0x99,0x7c,0xb3, +0x22,0xa5,0xba,0x9b,0x5, 0x7e,0xb3,0x4a,0x67,0x22,0xa5,0xba,0xf6,0x5, 0x7e,0xb3, +0x78,0x2f,0x22,0xa5,0xba,0xf7,0xb, 0x7e,0x57,0x78,0x31,0x7e,0x44,0x0, 0x64,0x8d, +0x54,0x22,0xe4,0x22,0x7c,0x6b,0x7e,0x70,0xff,0x7c,0xb6,0x24,0x8c,0xbe,0xb0,0xa, +0x40,0x2, 0x61,0x50,0x7e,0xa0,0x3, 0xa4,0x90,0x3a,0xbc,0x73,0x2, 0x3a,0xfa,0x2, +0x3b,0x50,0x2, 0x3a,0xda,0x2, 0x3a,0xe8,0x2, 0x3a,0xf1,0x2, 0x3b,0x3, 0x2, 0x3b, +0x1f,0x2, 0x3b,0xe, 0x2, 0x3b,0x24,0x2, 0x3b,0x24,0x7e,0x1f,0x78,0x39,0x69,0x31, +0x0, 0xe, 0x5e,0x34,0x0, 0x4, 0x80,0x68,0x7e,0x1f,0x78,0x39,0x12,0x34,0x8b,0x80, +0x5f,0x12,0x3b,0x69,0x5e,0x34,0x0, 0x2, 0x80,0x56,0x12,0x3b,0x69,0x5e,0x34,0x0, +0x1, 0x80,0x4d,0x12,0x3b,0x69,0x5e,0x34,0x4, 0x0, 0xa, 0x36,0x80,0xb, 0x12,0x3b, +0x69,0x5e,0x34,0x8, 0x0, 0xa, 0x36,0x1e,0x34,0x1e,0x34,0x1e,0x34,0x80,0x31,0x7e, +0x71,0xef,0x80,0x2c,0x7e,0x73,0x77,0xd6,0x7c,0xb7,0x4, 0x7a,0xb3,0x77,0xd6,0xa, +0x27,0x9, 0x72,0x1, 0x7c,0x7e,0xb3,0x76,0xa0,0x4, 0x7a,0xb3,0x76,0xa0,0x70,0x9, +0x7e,0xb3,0x76,0x9f,0x4, 0x7a,0xb3,0x76,0x9f,0xa5,0xbe,0x7d,0x3, 0x75,0x1a,0x7c, +0x7c,0xb7,0x22,0x2e,0x14,0x0, 0x14,0xb, 0xa, 0x30,0x4e,0x70,0x1, 0x1b,0xa, 0x30, +0x75,0x1e,0x1, 0x74,0x1, 0x7a,0xb3,0x77,0xe1,0x7e,0x1f,0x78,0x39,0x69,0x31,0x0, +0x6, 0x22,0x30,0x1a,0x23,0xc2,0x1a,0xd2,0x1c,0x12,0x3b,0x69,0x5e,0x34,0x0, 0x2, +0x74,0x1, 0x68,0x5, 0x12,0x5, 0x30,0x80,0x3, 0x12,0x35,0x1, 0x7e,0x34,0x0, 0x1, +0x12,0x3b,0xd2,0xe5,0x1e,0x2, 0x3b,0xdd,0x30,0x1d,0x2c,0xc2,0x1d,0xc2,0x1c,0x12, +0x3b,0x69,0x5e,0x34,0x0, 0x2, 0x74,0x1, 0x68,0x5, 0x12,0x5, 0xbc,0x80,0x3, 0x12, +0x35,0x1, 0x7e,0xb3,0x77,0xd9,0xb4,0x1, 0x7, 0x7e,0x34,0x0, 0x2, 0x12,0x3b,0xd2, +0xe5,0x1e,0x12,0x3b,0xdd,0x80,0x7, 0x30,0x1c,0x4, 0xe5,0x1e,0x70,0x3, 0x2, 0x37, +0x94,0x22,0x7e,0xa1,0x1e,0x74,0x8, 0xa4,0x59,0x35,0x76,0xdc,0x22,0x7c,0xab,0x12, +0x8a,0x26,0x1b,0xa0,0x68,0x12,0x1b,0xa0,0x68,0x13,0x1b,0xa0,0x68,0x14,0x2e,0xa0, +0x3, 0x78,0x12,0x12,0x8f,0x80,0x80,0xd, 0x12,0x8f,0xac,0x80,0x8, 0x12,0x8f,0x99, +0x80,0x3, 0x12,0x8f,0xec,0x2, 0x3c,0x8, 0xe4,0x7a,0xb3,0x77,0x7, 0x6c,0xaa,0x80, +0xd, 0x12,0xd6,0xc9,0x2e,0xb3,0x77,0x7, 0x7a,0xb3,0x77,0x7, 0xb, 0xa0,0x7e,0xb3, +0x76,0xfc,0xbc,0xba,0x38,0xeb,0x22,0x7e,0xf, 0x78,0x39,0x69,0x30,0x0, 0x6, 0x5e, +0x34,0x0, 0x1, 0x68,0x18,0x12,0x3b,0x53,0x5e,0x34,0x0, 0x2, 0x68,0x3, 0x12,0xe4, +0x93,0x74,0x3, 0x12,0x3c,0x85,0x74,0x1, 0x12,0x32,0xf7,0x80,0x33,0x12,0x0, 0x26, +0x12,0xe6,0x8a,0x74,0x1, 0x12,0x3c,0x85,0xe4,0x12,0x32,0xf7,0x7e,0xf, 0x78,0x39, +0x2e,0x14,0x0, 0xa, 0xb, 0xa, 0x30,0x4e,0x60,0x10,0x1b,0xa, 0x30,0xe4,0x7a,0xb3, +0x77,0xd8,0x12,0x3c,0xf3,0x12,0x3c,0xbe,0x12,0x3f,0x52,0xe4,0x7a,0xb3,0x29,0xff, +0xe5,0x1e,0x2, 0x3b,0xdd,0xbe,0xb0,0x4, 0x50,0x33,0x7e,0x37,0x0, 0x9e,0x5e,0x70, +0xf0,0x7a,0x37,0x0, 0x9e,0xa, 0x3b,0x4e,0x37,0x0, 0x9e,0x7a,0x37,0x0, 0x9e,0x7a, +0x37,0x0, 0xda,0x7e,0x34,0x0, 0x19,0x7e,0x8, 0x0, 0x9e,0x12,0x5b,0x4d,0x7e,0x34, +0x0, 0x19,0x7e,0x8, 0x0, 0xda,0x7e,0x24,0x0, 0x1, 0x2, 0x4, 0x96,0x22,0x5e,0x70, +0xfe,0x1b,0xa, 0x30,0x22,0xca,0x3b,0x12,0xe6,0x81,0x5e,0x34,0x0, 0x1, 0x68,0x10, +0x7f,0x3, 0x12,0x3b,0x53,0x5e,0x34,0x0, 0x2, 0x68,0x13,0x12,0xe4,0x93,0x80,0xe, +0x12,0xe6,0x8a,0x7f,0x3, 0x12,0x3c,0xf7,0x12,0x3c,0xbe,0x12,0x3f,0x52,0xda,0x3b, +0x22,0xc2,0x28,0x7e,0xf, 0x78,0x39,0x2e,0x14,0x0, 0x14,0xb, 0xa, 0x30,0x22,0xca, +0x7b,0xca,0x6b,0xca,0x5b,0xca,0x4b,0xca,0x2b,0xca,0x1b,0xca,0xb, 0xc0,0xd0,0xc0, +0x83,0xc0,0x82,0x7e,0xf, 0x78,0x39,0x69,0x30,0x0, 0x4, 0x5e,0x34,0x80,0x0, 0x68, +0x2c,0xb, 0xa, 0x30,0x5e,0x34,0x80,0x0, 0x68,0x23,0x12,0x3f,0x7c,0x6e,0x70,0x40, +0x1b,0xa, 0x30,0x7e,0xf, 0x78,0x39,0xb, 0x15,0xb, 0xa, 0x30,0x4e,0x60,0x80,0x1b, +0xa, 0x30,0x12,0x3e,0xd6,0xd2,0xd, 0x12,0x3c,0xf3,0x12,0x3c,0xbe,0x7e,0xf, 0x78, +0x39,0x69,0x30,0x0, 0x4, 0x5e,0x34,0x0, 0x2, 0x68,0x1d,0xb, 0xa, 0x30,0x5e,0x34, +0x0, 0x2, 0x68,0x14,0xb, 0x15,0xb, 0xa, 0x30,0x4e,0x70,0x2, 0x1b,0xa, 0x30,0x12, +0x3e,0xd6,0x12,0x3c,0xf3,0x12,0x3c,0xbe,0x7e,0xf, 0x78,0x39,0x69,0x30,0x0, 0x4, +0x5e,0x34,0x0, 0x1, 0x68,0x20,0xb, 0xa, 0x30,0x5e,0x34,0x0, 0x1, 0x68,0x17,0xb, +0x15,0xb, 0xa, 0x30,0x4e,0x70,0x1, 0x1b,0xa, 0x30,0x12,0x3f,0x3c,0x12,0x3c,0xf3, +0x4e,0x70,0x1, 0x1b,0xa, 0x30,0x7e,0xf, 0x78,0x39,0x69,0x30,0x0, 0x4, 0x5e,0x34, +0x0, 0x8, 0x68,0x17,0xb, 0xa, 0x30,0x5e,0x34,0x0, 0x8, 0x68,0xe, 0xb, 0x15,0xb, +0xa, 0x30,0x4e,0x70,0x8, 0x1b,0xa, 0x30,0x12,0x3f,0x1a,0x7e,0xf, 0x78,0x39,0x69, +0x30,0x0, 0x4, 0x5e,0x34,0x0, 0x4, 0x68,0x17,0xb, 0xa, 0x30,0x5e,0x34,0x0, 0x4, +0x68,0xe, 0xb, 0x15,0xb, 0xa, 0x30,0x4e,0x70,0x4, 0x1b,0xa, 0x30,0x12,0x3e,0xff, +0x7e,0xf, 0x78,0x39,0x69,0x30,0x0, 0x4, 0x5e,0x34,0x40,0x0, 0x68,0x31,0xb, 0xa, +0x30,0x5e,0x34,0x40,0x0, 0x68,0x28,0xb, 0x15,0xb, 0xa, 0x30,0x4e,0x60,0x40,0x1b, +0xa, 0x30,0xd2,0xc, 0x7e,0xb3,0x77,0xd5,0xbe,0xb0,0xc8,0x50,0x5, 0x4, 0x7a,0xb3, +0x77,0xd5,0x7e,0xb3,0x77,0xd5,0xb4,0x1, 0x6, 0x12,0x28,0x7c,0x12,0x3e,0xe7,0x7e, +0xf, 0x78,0x39,0x69,0x30,0x0, 0x4, 0x5e,0x34,0x20,0x0, 0x68,0x19,0xb, 0xa, 0x30, +0x5e,0x34,0x20,0x0, 0x68,0x10,0xb, 0x15,0xb, 0xa, 0x30,0x4e,0x60,0x20,0x1b,0xa, +0x30,0xd2,0xc, 0x12,0x3e,0xe7,0x7e,0xf, 0x78,0x39,0x69,0x30,0x0, 0x4, 0x5e,0x34, +0x10,0x0, 0x68,0x26,0xb, 0xa, 0x30,0x7d,0x23,0x5e,0x24,0x10,0x0, 0x68,0x1b,0x5e, +0x34,0x8, 0x0, 0x2e,0x34,0xff,0xff,0x92,0x12,0xb, 0x15,0xb, 0xa, 0x30,0x4e,0x60, +0x8, 0x1b,0xa, 0x30,0x12,0xd3,0x70,0x12,0xd4,0x6d,0x7e,0xf, 0x78,0x39,0x69,0x30, +0x0, 0x4, 0x5e,0x34,0x0, 0x40,0x68,0x29,0xb, 0xa, 0x30,0x5e,0x34,0x0, 0x40,0x68, +0x20,0xb, 0x15,0xb, 0xa, 0x30,0x4e,0x70,0x40,0x1b,0xa, 0x30,0x7e,0x1f,0x78,0x39, +0x69,0x31,0x0, 0xa, 0x5e,0x34,0xf, 0xc0,0x12,0x2f,0xae,0x1e,0x34,0x7a,0x73,0x77, +0xd8,0xd0,0x82,0xd0,0x83,0xd0,0xd0,0xda,0xb, 0xda,0x1b,0xda,0x2b,0xda,0x4b,0xda, +0x5b,0xda,0x6b,0xda,0x7b,0x32,0xd2,0xb, 0xd2,0x10,0x12,0x3b,0x69,0x5e,0x34,0x0, +0x1, 0x78,0x3, 0x2, 0x3f,0x10,0x22,0x30,0x28,0x14,0xa9,0xd2,0xea,0xa9,0xc2,0xea, +0x12,0x6c,0x9b,0x12,0x3c,0xf1,0x12,0x37,0xe1,0xc2,0x27,0x2, 0x3f,0x2b,0x22,0xd2, +0xe, 0xd2,0x10,0x12,0x3b,0x69,0x5e,0x34,0x0, 0x2, 0x68,0x3, 0x2, 0x3f,0x10,0x22, +0x12,0xb, 0xb0,0x20,0x27,0x3, 0x2, 0x3f,0x2b,0x22,0xd2,0xe, 0xd2,0x10,0x12,0x3b, +0x69,0x5e,0x34,0x0, 0x2, 0x78,0x3, 0x2, 0x3f,0x10,0x22,0x12,0xb, 0xe5,0x12,0xd3, +0xaf,0x74,0x2, 0x7a,0xb3,0x77,0x0, 0x7a,0xb3,0x77,0x1, 0x22,0xd2,0xb, 0xd2,0x10, +0x12,0x3b,0x69,0x5e,0x34,0x0, 0x1, 0x68,0x8, 0xe4,0x7a,0xb3,0x77,0xd5,0x2, 0x3f, +0x10,0x22,0x7e,0xf, 0x78,0x39,0x12,0x3f,0x7c,0x12,0x3f,0xde,0x7e,0x70,0x1, 0x12, +0x3f,0x84,0x7e,0x70,0x1, 0x12,0x3f,0xd2,0x7e,0xb3,0x77,0xe1,0x7e,0x70,0x2, 0x12, +0x3f,0xe9,0x12,0x4c,0xff,0x5e,0x70,0xef,0x1b,0xa, 0x30,0x22,0x2e,0x14,0x0, 0xe, +0xb, 0xa, 0x30,0x22,0x12,0x3f,0x8c,0x7e,0xb3,0x77,0xe1,0x22,0x70,0xc, 0x12,0xe5, +0x2f,0x12,0xd, 0x8d,0x12,0x58,0x88,0x2, 0x4, 0x96,0x22,0x12,0x4c,0xff,0x12,0x3f, +0xde,0x7e,0x70,0x2, 0x12,0x3f,0xe9,0x74,0x14,0x12,0xd3,0x1, 0x7e,0xf, 0x78,0x39, +0x12,0x3f,0x7c,0x5e,0x70,0xef,0x12,0x3f,0xe1,0x7e,0x73,0x29,0xb2,0x12,0x3f,0xe9, +0x7e,0xb3,0x77,0xe1,0x7e,0x73,0x29,0xb3,0x12,0x3f,0x84,0x7e,0x73,0x29,0xb4,0x2, +0x3f,0xd2,0x70,0x9, 0x12,0xe5,0x2f,0x12,0x58,0x85,0x2, 0x4, 0x96,0x22,0x4e,0x70, +0x10,0x1b,0xa, 0x30,0x7e,0xb3,0x77,0xe1,0x22,0x70,0xc, 0x12,0xe5,0x2f,0x12,0xc, +0xea,0x12,0x58,0x88,0x2, 0x4, 0x96,0x22,0xca,0x3b,0x7e,0x73,0x6e,0xb3,0x7a,0x73, +0x62,0xb8,0x7e,0x73,0x6e,0xb4,0x7a,0x73,0x62,0xb9,0x7e,0xd3,0x76,0xae,0x7e,0xe3, +0x76,0xa5,0x7e,0xf3,0x76,0xa6,0x7e,0x8, 0x62,0xba,0x7e,0x34,0x0, 0x8, 0xe4,0x12, +0x24,0x34,0x7e,0x34,0x0, 0x20,0xca,0x39,0x7e,0x18,0x76,0xb4,0x7e,0x8, 0x62,0xc2, +0x12,0x24,0xf, 0x1b,0xfd,0x74,0x5, 0x7a,0xb3,0x76,0xae,0xe4,0x7a,0xb3,0x76,0xa5, +0x74,0x2, 0x7a,0xb3,0x76,0xa6,0x6c,0xcc,0x7e,0x34,0x0, 0x2, 0x74,0x2, 0xac,0xbc, +0x59,0x35,0x76,0xb4,0xb, 0xc0,0xbe,0xc0,0x10,0x78,0xf1,0x12,0x2f,0xf7,0x6c,0xcc, +0x4c,0xcc,0x78,0xd, 0x7e,0xb3,0x73,0x25,0x54,0x1, 0xb4,0x1, 0x4, 0x74,0x1, 0x80, +0x12,0xbe,0xc0,0x1, 0x78,0x14,0x7e,0xb3,0x73,0x25,0x54,0x2, 0x1e,0xb0,0xb4,0x1, +0x9, 0x74,0x4, 0x7a,0xb3,0x6e,0xb3,0xe4,0x80,0x34,0xbe,0xc0,0x2, 0x78,0x16,0x7e, +0xb3,0x73,0x25,0x54,0x4, 0x1e,0xb0,0x1e,0xb0,0xb4,0x1, 0x9, 0xe4,0x7a,0xb3,0x6e, +0xb3,0x74,0x1, 0x80,0x19,0xbe,0xc0,0x3, 0x78,0x46,0x7e,0xb3,0x73,0x25,0x54,0x8, +0xc4,0x23,0x54,0x1f,0xb4,0x1, 0x39,0xe4,0x7a,0xb3,0x6e,0xb3,0x74,0x4, 0x7a,0xb3, +0x6e,0xb4,0x7e,0x34,0x21,0x57,0x12,0x29,0xdb,0x12,0x2c,0x73,0x74,0x1f,0x7a,0xb3, +0x73,0x1f,0x12,0x29,0x24,0x7e,0x73,0x77,0xe1,0xa, 0x7, 0x12,0x41,0x5f,0xa, 0x3c, +0x2e,0x37,0x73,0x21,0x2d,0x31,0x9, 0x73,0x4e,0xa8,0xa, 0x2c,0x19,0x72,0x62,0xba, +0xb, 0xc0,0xbe,0xc0,0x4, 0x68,0x2, 0x1, 0x60,0x6c,0xcc,0xa, 0x3c,0x9, 0x73,0x62, +0xba,0x12,0x47,0xbd,0x12,0x41,0x5f,0xa, 0x2c,0x2e,0x27,0x73,0x21,0x2d,0x21,0x19, +0x72,0x4e,0xa8,0xb, 0xc0,0xbe,0xc0,0x4, 0x40,0xe1,0x7e,0x73,0x62,0xb8,0x7a,0x73, +0x6e,0xb3,0x7e,0x73,0x62,0xb9,0x7a,0x73,0x6e,0xb4,0x7a,0xd3,0x76,0xae,0x7a,0xe3, +0x76,0xa5,0x7a,0xf3,0x76,0xa6,0x7e,0x34,0x0, 0x20,0xca,0x39,0x7e,0x18,0x62,0xc2, +0x7e,0x8, 0x76,0xb4,0x12,0x24,0xf, 0x1b,0xfd,0x12,0x2f,0xf7,0xe4,0x7a,0xb3,0x76, +0xab,0x7a,0xb3,0x76,0xaa,0xda,0x3b,0x22,0x7e,0x35,0x28,0x7c,0x67,0xa, 0xf, 0x7e, +0x14,0x2, 0x3c,0xad,0x10,0x22,0xca,0x3b,0x7c,0xf7,0x7c,0xeb,0x75,0x27,0x7, 0x7e, +0x34,0x2, 0x0, 0x7a,0x35,0x2a,0x75,0x2c,0x0, 0x7e,0x34,0x24,0x66,0x7e,0x24,0x0, +0xff,0x7e,0x14,0x62,0xe2,0x7e,0x54,0x2, 0x3c,0x12,0x23,0x67,0x6d,0x66,0x80,0xe, +0x7e,0x34,0x7f,0xff,0x7d,0x26,0x3e,0x24,0x59,0x32,0x10,0x24,0xb, 0x64,0x7e,0x37, +0x73,0x21,0x7d,0x23,0xb, 0x26,0xbd,0x26,0x38,0xe6,0x2e,0x34,0x0, 0x8, 0x12,0x41, +0x5d,0x12,0x43,0xe4,0xe4,0x12,0x24,0x34,0x7e,0xb3,0x78,0x2f,0xb4,0x1, 0xa, 0x7e, +0x37,0x78,0x31,0x12,0x2f,0xb0,0x7a,0x35,0x2a,0x74,0xa, 0xac,0xbe,0x49,0x25,0x29, +0x8c,0x7e,0x35,0x2a,0xad,0x32,0x9, 0xb5,0x29,0x8a,0x60,0xc, 0x1e,0x34,0x1e,0x24, +0x50,0x3, 0x4e,0x60,0x80,0x14,0x78,0xf4,0x7a,0x35,0x2a,0xe5,0x27,0xa, 0x5b,0x1b, +0x54,0xf5,0x26,0x61,0x4c,0xe5,0x26,0x7e,0x34,0x0, 0x1, 0x60,0x5, 0x3e,0x34,0x14, +0x78,0xfb,0x7a,0x35,0x28,0x12,0x2c,0x6f,0xe5,0x26,0xbe,0xb0,0x7, 0x58,0x13,0x6d, +0x66,0x80,0xa, 0x12,0x41,0x58,0x7d,0x21,0x2d,0x26,0x12,0x46,0x26,0x12,0x43,0xeb, +0x38,0xf1,0x6d,0x66,0x12,0x41,0x58,0x7e,0x27,0x73,0x21,0x2d,0x26,0x2d,0x21,0x12, +0x46,0x26,0xbe,0x64,0x0, 0x4, 0x78,0xec,0x7c,0xbe,0x12,0x41,0x5d,0x12,0x43,0xe4, +0x12,0x44,0x0, 0x5, 0x2c,0xe5,0x2c,0x54,0x1, 0xb4,0x1, 0x8, 0x74,0x1, 0x7a,0xb3, +0x78,0x34,0x80,0xe, 0x7e,0x73,0x77,0xd8,0xa, 0x37,0x1e,0x34,0xb, 0x34,0x7a,0x73, +0x78,0x34,0x12,0x36,0xe2,0xe5,0x26,0xbe,0xb0,0x7, 0x58,0x66,0x6d,0x66,0x80,0x5d, +0x7d,0x56,0x3e,0x54,0x49,0x35,0xc, 0x18,0x7d,0x43,0x12,0x45,0xe6,0x8, 0x7, 0x7d, +0x23,0x9e,0x25,0x2a,0x80,0x4, 0x6d,0x22,0x9d,0x24,0x7a,0x25,0x2d,0x49,0x25,0x10, +0x24,0x7d,0x42,0x12,0x45,0xe6,0x8, 0x5, 0x9e,0x25,0x2a,0x80,0x4, 0x6d,0x22,0x9d, +0x24,0x7a,0x25,0x2f,0xbe,0x25,0x2d,0x40,0x13,0x59,0x35,0x10,0x24,0x12,0x41,0x5d, +0x7d,0x21,0x2d,0x26,0x9, 0x52,0x4e,0xa8,0x19,0x56,0x62,0xe2,0xbe,0x35,0x2a,0x50, +0xa, 0x12,0x43,0xf2,0x7d,0x23,0x2d,0x26,0x12,0x46,0x19,0xb, 0x64,0x12,0x43,0xeb, +0x38,0x9e,0x6d,0x66,0x7e,0x17,0x73,0x21,0x2d,0x16,0x7d,0x51,0x3e,0x54,0x49,0x5, +0xc, 0x18,0x7d,0x30,0x12,0x45,0xde,0x8, 0x7, 0x7d,0x40,0x9e,0x45,0x2a,0x80,0x4, +0x6d,0x44,0x9d,0x43,0x7a,0x45,0x2d,0x49,0x45,0x10,0x24,0x7d,0x34,0x12,0x45,0xde, +0x8, 0x5, 0x9e,0x45,0x2a,0x80,0x4, 0x6d,0x44,0x9d,0x43,0x7a,0x45,0x2f,0xbe,0x45, +0x2d,0x40,0x11,0x59,0x5, 0x10,0x24,0x12,0x43,0xf7,0x2d,0x31,0x9, 0x73,0x4e,0xa8, +0x19,0x71,0x62,0xe2,0xbe,0x5, 0x2a,0x50,0xa, 0x12,0x43,0xf2,0x7d,0x23,0x2d,0x21, +0x12,0x46,0x19,0xb, 0x64,0xbe,0x64,0x0, 0x4, 0x78,0x99,0x30,0xb, 0x2, 0x61,0xe1, +0x30,0xc, 0x2, 0x61,0xe1,0x30,0xe, 0x2, 0x61,0xe1,0x15,0x26,0xe5,0x26,0xbe,0xb0, +0x1, 0x48,0x2, 0x21,0xf5,0x7e,0xb3,0x76,0x9c,0xbe,0xb0,0x2, 0x68,0x6f,0x12,0x47, +0xed,0x68,0x6a,0x7e,0x8, 0x10,0x24,0x74,0xa, 0xac,0xbe,0x12,0x8c,0x9d,0x6d,0x66, +0x80,0x25,0x7d,0x26,0x3e,0x24,0x49,0x32,0x10,0x24,0xbe,0x34,0x3, 0xe8,0x28,0x15, +0xbe,0x34,0x3e,0x80,0x50,0xf, 0x9, 0x76,0x62,0xe2,0x12,0x41,0x5d,0x7d,0x21,0x2d, +0x26,0x19,0x72,0x4e,0xa8,0xb, 0x64,0x12,0x43,0xeb,0x38,0xd6,0x6d,0x66,0x7e,0x27, +0x73,0x21,0x2d,0x26,0x7d,0x12,0x3e,0x14,0x49,0x31,0x10,0x24,0xbe,0x34,0x3, 0xe8, +0x28,0x13,0xbe,0x34,0x3e,0x80,0x50,0xd, 0x9, 0x72,0x62,0xe2,0x12,0x41,0x5d,0x2d, +0x21,0x19,0x72,0x4e,0xa8,0xb, 0x64,0xbe,0x64,0x0, 0x4, 0x78,0xd1,0x74,0x1, 0x7a, +0xb3,0x78,0x34,0x7c,0xbe,0x12,0x41,0x5d,0x12,0x43,0xe4,0x12,0x44,0x0, 0x12,0x47, +0xde,0xda,0x3b,0x22,0x2e,0x14,0x4e,0xa8,0x6d,0x0, 0x22,0x7e,0x37,0x73,0x21,0xbd, +0x36,0x22,0x7e,0x55,0x28,0x64,0xff,0xa, 0x2f,0x7e,0x34,0x2, 0x3c,0xad,0x32,0x22, +0xca,0x3b,0x7f,0x30,0x7c,0xab,0xbe,0xa0,0x4, 0x40,0x2, 0xa1,0xaa,0x74,0x27,0xa4, +0x9, 0xb5,0x28,0xea,0xf5,0x37,0xe4,0x12,0x35,0x28,0x7e,0xf7,0x6e,0xb5,0x7e,0xe7, +0x6e,0xb7,0x2d,0xef,0x7a,0xe5,0x35,0x7e,0x8, 0x65,0x1e,0x12,0x64,0xb8,0x7e,0xb3, +0x6e,0xc1,0x60,0x62,0x6d,0xee,0x80,0x2e,0x7e,0xe5,0x31,0x3e,0xe4,0x49,0x3e,0x6e, +0xc2,0x7a,0x35,0x33,0x7f,0x3, 0x2e,0x15,0x31,0x7e,0xb, 0x50,0x19,0x53,0x2, 0xae, +0x12,0x45,0xd3,0x60,0x5, 0x3e,0x24,0x14,0x78,0xfb,0x12,0x2f,0xb0,0x3e,0x34,0x2e, +0x34,0x65,0x42,0x12,0x45,0xad,0x7a,0xe5,0x31,0xbe,0xf5,0x31,0x38,0xca,0x7a,0xf5, +0x31,0x80,0x19,0x12,0x45,0xbb,0x60,0x5, 0x3e,0x24,0x14,0x78,0xfb,0x12,0x2f,0xb0, +0x3e,0x34,0x2e,0x34,0x65,0x1e,0x12,0x45,0xad,0x7a,0xe5,0x31,0x7e,0xe5,0x35,0xbe, +0xe5,0x31,0x38,0xdf,0x80,0x67,0x6d,0xee,0x80,0x16,0x12,0x45,0xbb,0x60,0x5, 0x3e, +0x24,0x14,0x78,0xfb,0x12,0x2f,0xb0,0x3e,0x34,0x2e,0x34,0x65,0x1e,0x12,0x45,0xad, +0x7a,0xe5,0x31,0xbe,0xf5,0x31,0x38,0xe2,0x7a,0xf5,0x31,0x80,0x38,0x7e,0x35,0x31, +0x3e,0x34,0x49,0x23,0x6e,0xc2,0x7a,0x25,0x33,0x7f,0x3, 0x2e,0x15,0x31,0x7e,0xb, +0x70,0x19,0x72,0x2, 0xae,0x7d,0x52,0x12,0x64,0x78,0x60,0x5, 0x3e,0x14,0x14,0x78, +0xfb,0x12,0x64,0x83,0x3e,0x24,0x2e,0x24,0x65,0x42,0x12,0x47,0xf5,0x7e,0x35,0x31, +0xb, 0x34,0x7a,0x35,0x31,0x7e,0x35,0x35,0xbe,0x35,0x31,0x38,0xc0,0x7e,0x45,0x35, +0x12,0x46,0xd, 0x7a,0x73,0x1, 0x94,0x12,0x46,0x35,0x7a,0xb3,0x1, 0x95,0x12,0x45, +0xee,0x7a,0xb3,0x1, 0x96,0xb, 0x44,0x12,0x46,0xd, 0x7a,0x73,0x2, 0xae,0x12,0x46, +0x35,0x7a,0xb3,0x2, 0xaf,0x12,0x45,0xee,0x7a,0xb3,0x2, 0xb0,0x7e,0xb3,0x6e,0xb3, +0x54,0x5, 0xa, 0x3b,0x4e,0x37,0x65,0x1e,0x7a,0x37,0x65,0x1e,0x7e,0xb3,0x6e,0xb4, +0x54,0x5, 0xa, 0x3b,0x4e,0x37,0x65,0x42,0x7a,0x37,0x65,0x42,0x12,0x46,0x1, 0x2e, +0x74,0x0, 0x16,0x7d,0x37,0x7e,0x8, 0x65,0x1e,0x12,0x47,0xd0,0x7d,0x37,0x7e,0x8, +0x65,0x42,0x12,0x47,0xd7,0x12,0x46,0x1, 0x2e,0x74,0x0, 0x28,0x6d,0x33,0x7a,0x35, +0x31,0x7e,0x35,0x31,0x9, 0x53,0x1, 0x95,0x7c,0x25,0x6c,0x33,0x9, 0x53,0x1, 0x94, +0x12,0x46,0x45,0x40,0xec,0x12,0x45,0xf6,0x12,0x3, 0xfa,0x6d,0x33,0x7a,0x35,0x31, +0x7e,0x35,0x31,0x9, 0x53,0x2, 0xaf,0x7c,0x25,0x6c,0x33,0x9, 0x53,0x2, 0xae,0x12, +0x46,0x45,0x40,0xec,0x12,0x45,0xf6,0x12,0x4, 0x96,0xda,0x3b,0x22,0xb, 0x38,0xe0, +0x4d,0xe2,0x1b,0x38,0xe0,0x7e,0xe5,0x31,0xb, 0xe4,0x22,0x7e,0xe5,0x31,0x3e,0xe4, +0x49,0x3e,0x6e,0xc2,0x7a,0x35,0x33,0x7f,0x3, 0x2e,0x15,0x31,0x7e,0xb, 0x50,0x19, +0x53,0x1, 0x94,0x7d,0x53,0x5e,0x54,0x0, 0xf, 0x7e,0x24,0x0, 0x1, 0x22,0x9e,0x35, +0x2a,0xbe,0x34,0x0, 0x0, 0x22,0x9e,0x45,0x2a,0xbe,0x44,0x0, 0x0, 0x22,0x7c,0xba, +0x54,0xf0,0xc4,0x54,0xf, 0x22,0x7d,0x37,0x7e,0x8, 0x65,0x66,0x7e,0x24,0x0, 0x8d, +0x22,0x7e,0xf1,0x37,0x74,0xb5,0xac,0xfb,0x2e,0x74,0x1, 0x0, 0x22,0x7d,0x54,0xb, +0x44,0x7f,0x13,0x2d,0x35,0x7e,0x1b,0x70,0x22,0x2e,0x24,0x4e,0xa8,0x7e,0x29,0x70, +0x5c,0x7b,0x7a,0x29,0x70,0x22,0x2e,0x24,0x4e,0xa8,0x7e,0x29,0x70,0x4c,0x76,0x7a, +0x29,0x70,0xb, 0x64,0x22,0x7f,0x13,0x2d,0x34,0x7e,0x1b,0xa0,0x7c,0xba,0x54,0xf, +0x3e,0xb0,0x3e,0xb0,0x22,0xa, 0x25,0x2d,0x21,0x7d,0x13,0x1e,0x14,0x3e,0x14,0x59, +0x21,0x65,0x66,0xb, 0x35,0x7a,0x35,0x31,0xbe,0x34,0x1, 0x1a,0x22,0x7e,0xb3,0x74, +0x7e,0x7c,0xab,0x6c,0x77,0xbc,0xa7,0x78,0x2b,0x12,0x47,0xbd,0x12,0x41,0x5f,0x12, +0x46,0xf4,0x59,0x2, 0x74,0x94,0x7e,0x8, 0x14,0x30,0x59,0x12,0x74,0x9e,0x59,0x2, +0x74,0x9c,0x7e,0x8, 0x18,0x3c,0x59,0x12,0x74,0xa2,0x59,0x2, 0x74,0xa0,0x7e,0x8, +0x1c,0x48,0x80,0x4e,0x7e,0x50,0x4, 0xac,0x5a,0xa, 0x17,0x2d,0x21,0x2e,0x24,0x24, +0x46,0x12,0xc5,0x13,0x7c,0x6b,0x7e,0xb3,0x77,0xe1,0xa, 0xb, 0x12,0x41,0x5f,0x12, +0x46,0xf4,0x59,0x2, 0x74,0x94,0xa, 0x6, 0x7e,0x14,0xc, 0x24,0xad,0x10,0x7d,0xf1, +0x2e,0xf4,0x2a,0x0, 0x6d,0xee,0x59,0xf2,0x74,0x9e,0x59,0xe2,0x74,0x9c,0x7d,0xf1, +0x2e,0xf4,0x2e,0xc, 0x59,0xf2,0x74,0xa2,0x59,0xe2,0x74,0xa0,0x2e,0x14,0x32,0x18, +0x6d,0x0, 0x59,0x12,0x74,0xa6,0x59,0x2, 0x74,0xa4,0xb, 0x70,0xbe,0x70,0x3, 0x50, +0x2, 0xc1,0x65,0x22,0x2e,0x14,0x4e,0xa8,0x6d,0x0, 0x7e,0x50,0x26,0xac,0x57,0x59, +0x12,0x74,0x92,0x59,0x2, 0x74,0x90,0x7e,0x8, 0x57,0x98,0x59,0x12,0x74,0x9a,0x59, +0x2, 0x74,0x98,0x7e,0x8, 0x55,0x5c,0x59,0x12,0x74,0x96,0x22,0x12,0xe6,0xa5,0x12, +0x47,0xbd,0x12,0x41,0x5f,0x7d,0x21,0x2e,0x24,0x4e,0xa8,0x7a,0x27,0x4a,0x6f,0x6d, +0x22,0x7a,0x27,0x4a,0x61,0x7e,0x24,0x6e,0xc2,0x7a,0x27,0x4a,0x6b,0x7e,0x24,0x0, +0x27,0xca,0x29,0x12,0xe5,0x39,0x12,0x24,0xf, 0x1b,0xfd,0x7e,0x34,0x0, 0x2, 0xca, +0x39,0x7e,0x63,0x77,0xe1,0xac,0x67,0x2e,0x34,0x29,0x82,0x6d,0x22,0x7e,0x8, 0x76, +0xa5,0x12,0x24,0xf, 0x1b,0xfd,0x7e,0xa3,0x77,0xe1,0x74,0xa, 0xa4,0x49,0x35,0x29, +0x8e,0x7a,0x37,0x76,0xb2,0x7e,0xb3,0x77,0xe1,0x12,0xd8,0x75,0x7e,0xb3,0x77,0xe1, +0x12,0xd8,0x46,0x7e,0xb3,0x77,0xe1,0x12,0x58,0x67,0x12,0x47,0xc8,0x9, 0x75,0x29, +0xb2,0x7a,0x73,0x76,0x9c,0x12,0x47,0xc8,0x9, 0x75,0x29,0xb3,0x7a,0x73,0x76,0x9d, +0x12,0x47,0xc8,0x9, 0x75,0x29,0xb4,0x7a,0x73,0x76,0x9e,0x7e,0x73,0x77,0xe1,0x7a, +0x73,0x76,0xac,0x2, 0x47,0xb6,0xe5,0x1e,0x7a,0xb3,0x76,0x88,0x22,0x7e,0x63,0x77, +0xe1,0xa, 0x6, 0x22,0x7e,0x8, 0x0, 0x70,0x7e,0xa3,0x77,0xe1,0x74,0x3, 0xa4,0x22, +0x7e,0x24,0x0, 0x12,0x2, 0x3, 0xfa,0x7e,0x24,0x0, 0x12,0x2, 0x4, 0x96,0xe4,0x7a, +0xb3,0x77,0xe6,0x2, 0x47,0xe6,0x6d,0x33,0x7a,0x37,0x29,0xfd,0x22,0x7e,0xb3,0x76, +0xaa,0xbe,0xb0,0x1, 0x22,0xb, 0x28,0x30,0x4d,0x31,0x1b,0x28,0x30,0x22,0x7c,0x6b, +0xa5,0xbe,0xfa,0x4, 0x7a,0x73,0x4a,0x66,0xa5,0xbe,0x0, 0x7, 0x7c,0xb7,0x12,0x70, +0x1b,0x61,0xea,0xa5,0xbe,0xf, 0xd, 0x74,0x1, 0x7a,0xb3,0x76,0x8b,0x7a,0xb3,0x76, +0x8c,0xd2,0x22,0x22,0xa5,0xbe,0x2e,0xd, 0x74,0x1, 0x7a,0xb3,0x76,0xaa,0x7a,0xb3, +0x76,0xab,0xd2,0x22,0x22,0xa5,0xbe,0x12,0x5, 0x7a,0x73,0x76,0x8e,0x22,0xa5,0xbe, +0x11,0x25,0xa5,0xbf,0x1, 0x16,0x7e,0xb3,0x76,0x8d,0x60,0x2, 0x81,0x9, 0x74,0x1, +0x7a,0xb3,0x76,0x8d,0xe4,0x7a,0xb3,0x76,0x8f,0x2, 0x52,0x91,0xa5,0xbf,0x0, 0x2, +0x80,0x2, 0x81,0x9, 0x2, 0xe6,0xa5,0xbe,0x60,0x99,0x68,0x4, 0xa5,0xbe,0x9a,0x1d, +0x7e,0xa3,0x4a,0x67,0x7c,0xba,0x4, 0x7a,0xb3,0x4a,0x67,0xa, 0x2a,0x19,0x72,0x4e, +0x85,0xa5,0xbe,0x9a,0x2, 0x80,0x2, 0x81,0x9, 0x75,0x1a,0x99,0x22,0xa5,0xbe,0x9b, +0x9, 0x7a,0x73,0x4a,0x67,0x7a,0x73,0x4a,0x65,0x22,0xa5,0xbe,0x1, 0x11,0x6d,0x22, +0x7a,0x27,0x4a,0x63,0x7a,0x73,0x76,0x7d,0x7c,0xb7,0x12,0x66,0xf, 0x61,0xea,0xbe, +0x60,0x5b,0x28,0x2, 0x41,0xe3,0xa5,0xbe,0x30,0x11,0x7e,0x53,0x76,0xac,0xbc,0x57, +0x78,0x2, 0x81,0x9, 0xbe,0x70,0x4, 0x40,0x2, 0x81,0x9, 0xbe,0x60,0x20,0x40,0xc, +0xbe,0x60,0x22,0x38,0x7, 0xbe,0x70,0x3, 0x28,0x2, 0x81,0x9, 0x7c,0xb6,0x24,0xf9, +0xbe,0xb0,0x29,0x40,0x2, 0x21,0x6a,0x7e,0xa0,0x3, 0xa4,0x90,0x48,0xef,0x73,0x2, +0x4c,0x9, 0x2, 0x49,0x6a,0x2, 0x49,0x6a,0x2, 0x49,0x6a,0x2, 0x4c,0x9, 0x2, 0x4c, +0x9, 0x2, 0x4c,0x9, 0x2, 0x4c,0x9, 0x2, 0x49,0x6a,0x2, 0x4c,0x9, 0x2, 0x49,0x6a, +0x2, 0x49,0x6a,0x2, 0x49,0x6a,0x2, 0x49,0x6a,0x2, 0x49,0x6a,0x2, 0x49,0x6a,0x2, +0x49,0x6a,0x2, 0x49,0x6a,0x2, 0x49,0x6a,0x2, 0x49,0x6a,0x2, 0x49,0x6a,0x2, 0x49, +0x6a,0x2, 0x49,0x6a,0x2, 0x49,0x6a,0x2, 0x49,0x6a,0x2, 0x49,0x6a,0x2, 0x49,0x6a, +0x2, 0x49,0x6a,0x2, 0x49,0x6a,0x2, 0x49,0x6a,0x2, 0x49,0x6a,0x2, 0x49,0x6a,0x2, +0x49,0x6a,0x2, 0x49,0x6a,0x2, 0x49,0x6a,0x2, 0x49,0x6a,0x2, 0x4c,0x9, 0x2, 0x4c, +0x9, 0x2, 0x4c,0x9, 0x2, 0x49,0x6a,0x2, 0x4c,0x9, 0xa, 0x26,0x19,0x72,0x76,0x7c, +0x7c,0xb6,0x1b,0xb2,0xbe,0xb0,0x34,0x40,0x2, 0x41,0xa5,0x7e,0xa0,0x3, 0xa4,0x90, +0x49,0x83,0x73,0x2, 0x4a,0x1f,0x2, 0x4a,0xa5,0x2, 0x4a,0x1f,0x2, 0x4a,0xa5,0x2, +0x4a,0x23,0x2, 0x4a,0x1f,0x2, 0x4a,0xa5,0x2, 0x4a,0xa5,0x2, 0x4a,0xa5,0x2, 0x4a, +0xa5,0x2, 0x4a,0xa5,0x2, 0x4a,0xa5,0x2, 0x4a,0xa5,0x2, 0x4a,0xa5,0x2, 0x4a,0xa5, +0x2, 0x4a,0xa5,0x2, 0x4a,0xa5,0x2, 0x4a,0xa5,0x2, 0x4a,0xa5,0x2, 0x4a,0xa5,0x2, +0x4a,0xa5,0x2, 0x4a,0x6b,0x2, 0x4a,0xa5,0x2, 0x4a,0x78,0x2, 0x4a,0xa5,0x2, 0x4a, +0x8b,0x2, 0x4a,0x1f,0x2, 0x4a,0x1f,0x2, 0x4a,0x28,0x2, 0x4a,0x28,0x2, 0x4a,0x28, +0x2, 0x4a,0xa5,0x2, 0x4a,0x9a,0x2, 0x4a,0xa5,0x2, 0x4a,0xa5,0x2, 0x4a,0xa5,0x2, +0x4a,0x31,0x2, 0x4a,0x31,0x2, 0x4a,0x31,0x2, 0x4a,0xa5,0x2, 0x4a,0xa5,0x2, 0x4a, +0xa5,0x2, 0x4a,0xa5,0x2, 0x4a,0xa5,0x2, 0x4a,0x1f,0x2, 0x4a,0x3a,0x2, 0x4a,0x43, +0x2, 0x4a,0x4c,0x2, 0x4a,0x55,0x2, 0x4a,0xa5,0x2, 0x4a,0xa5,0x2, 0x4a,0x5e,0xd2, +0x22,0x41,0xa5,0x12,0x0, 0xfd,0x80,0x7d,0x7e,0x27,0x4a,0x6d,0x4e,0x40,0x20,0x80, +0x34,0x7e,0x27,0x4a,0x6d,0x4e,0x40,0x1, 0x80,0x2b,0x7e,0x27,0x4a,0x6d,0x4e,0x50, +0x1, 0x80,0x22,0x7e,0x27,0x4a,0x6d,0x4e,0x50,0x2, 0x80,0x19,0x7e,0x27,0x4a,0x6d, +0x4e,0x50,0x4, 0x80,0x10,0x7e,0x27,0x4a,0x6d,0x4e,0x50,0x8, 0x80,0x7, 0x7e,0x27, +0x4a,0x6d,0x4e,0x50,0x10,0x7a,0x27,0x4a,0x6d,0x80,0x3a,0x7e,0x53,0x76,0x94,0x12, +0x4c,0xa, 0x7a,0x27,0x4a,0x61,0x80,0x2d,0x7e,0x53,0x76,0x96,0x12,0x4c,0xa, 0x3e, +0x24,0x7a,0x27,0x4e,0x7d,0x7a,0x27,0x4a,0x69,0x80,0x1a,0x7e,0x53,0x76,0x98,0x12, +0x4c,0xa, 0x3e,0x24,0x7a,0x27,0x4a,0x63,0x80,0xb, 0x7e,0x53,0x76,0x9f,0x12,0x4c, +0xa, 0x7a,0x53,0x77,0xd6,0xbe,0x60,0x38,0x40,0x14,0xbe,0x60,0x56,0x38,0xf, 0xa, +0x26,0x5e,0x24,0x0, 0x1, 0xbe,0x24,0x0, 0x1, 0x78,0x3, 0x12,0xe5,0xe6,0xbe,0x60, +0x58,0x40,0xb, 0x7e,0x27,0x4a,0x6d,0x4e,0x40,0x2, 0x7a,0x27,0x4a,0x6d,0xa5,0xbe, +0xa, 0x2, 0x80,0x2, 0x61,0xea,0x7e,0x37,0x4a,0x6d,0x4e,0x60,0x4, 0x7a,0x37,0x4a, +0x6d,0x61,0xea,0xbe,0x60,0x6c,0x68,0x4, 0xa5,0xbe,0x6d,0x2b,0x7e,0x27,0x4a,0x6d, +0x4e,0x50,0x80,0x7a,0x27,0x4a,0x6d,0x7e,0x27,0x4a,0x69,0x7d,0x12,0xb, 0x14,0x7a, +0x17,0x4a,0x69,0x2e,0x27,0x4a,0x6b,0x7a,0x29,0x70,0xa5,0xbe,0x6d,0x2, 0x80,0x2, +0x61,0xea,0x75,0x1a,0x6c,0x61,0xea,0xbe,0x60,0x6e,0x68,0x4, 0xa5,0xbe,0x6f,0x43, +0x7e,0x27,0x4a,0x6d,0x4e,0x50,0x40,0x7a,0x27,0x4a,0x6d,0x7e,0x43,0x76,0x94,0x6c, +0x55,0x7e,0xb3,0x76,0x95,0xa, 0x1b,0x2d,0x12,0x4, 0x7a,0xb3,0x76,0x95,0x70,0x9, +0x7e,0xb3,0x76,0x94,0x4, 0x7a,0xb3,0x76,0x94,0x7a,0x17,0x4a,0x61,0x7e,0x27,0x4a, +0x6f,0x2d,0x21,0x7a,0x29,0x70,0xa5,0xbe,0x6f,0x2, 0x80,0x2, 0x61,0xea,0x75,0x1a, +0x6e,0x61,0xea,0xbe,0x60,0x70,0x40,0xc, 0xbe,0x60,0x7f,0x38,0x7, 0x7c,0xb6,0x12, +0x60,0x17,0x80,0x76,0xa5,0xbe,0x86,0xf, 0x7c,0xb7,0x54,0x7, 0x7a,0xb3,0x4a,0x68, +0x53,0xc3,0xf8,0x42,0xc3,0x80,0x63,0xa5,0xbe,0x87,0xf, 0x7c,0xb7,0x54,0x3, 0x7a, +0xb3,0x4a,0x60,0x53,0xc2,0xfc,0x42,0xc2,0x80,0x50,0xa5,0xbe,0x88,0x29,0x5e,0x70, +0x7, 0x7e,0xf, 0x78,0x39,0x2e,0x14,0x0, 0x10,0xb, 0xa, 0x20,0x5e,0x40,0xc7,0x1b, +0xa, 0x20,0xa, 0x37,0x7d,0x23,0x7c,0x45,0x6c,0x55,0x12,0x4c,0x18,0x12,0x4c,0xff, +0x4d,0x32,0x1b,0xa, 0x30,0x80,0x23,0xa5,0xbe,0xf6,0x13,0x7a,0x73,0x78,0x2f,0xa5, +0xbf,0x0, 0x3, 0xe4,0x80,0x2, 0x74,0x1, 0x7a,0xb3,0x78,0x30,0x80,0xc, 0xa5,0xbe, +0xf7,0x8, 0x74,0x64,0xac,0xb7,0x7a,0x57,0x78,0x31,0x30,0x22,0xa, 0x7e,0xb3,0x76, +0x8a,0x44,0x1, 0x7a,0xb3,0x76,0x8a,0x7e,0x37,0x4a,0x6d,0x4d,0x33,0x68,0xa, 0x7e, +0xb3,0x76,0x8a,0x44,0x2, 0x7a,0xb3,0x76,0x8a,0x22,0x7c,0x25,0x6c,0x33,0xa, 0x27, +0x2d,0x21,0x22,0xb, 0x18,0x20,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x22,0x7e, +0x34,0x76,0xa, 0x30,0x23,0x60,0xc2,0x23,0x7e,0x39,0x50,0xa, 0x25,0x12,0x4c,0x16, +0x3e,0x24,0x7a,0x27,0x6e,0x8b,0x9, 0x53,0x0, 0x1, 0xa, 0x25,0x12,0x4c,0x16,0x3e, +0x24,0x7a,0x27,0x6e,0x8d,0x7e,0xb3,0x76,0x8, 0xb4,0x3, 0x15,0x9, 0xa3,0x0, 0x3, +0xa, 0x2a,0x12,0x4c,0x16,0x3e,0x24,0x7a,0x27,0x6e,0x93,0x19,0xa3,0x0, 0x2, 0x80, +0x16,0xb4,0x2, 0x13,0x9, 0x53,0x0, 0x2, 0xa, 0x15,0x12,0x4f,0xef,0x3e,0x14,0x7a, +0x17,0x6e,0x93,0x19,0x53,0x0, 0x3, 0x9, 0x73,0x0, 0x5, 0x12,0x33,0xd0,0x3e,0x34, +0x3e,0x34,0x7a,0x37,0x6e,0x9b,0x7e,0x37,0x6e,0x8b,0x7a,0x37,0x76,0x7a,0x4d,0x33, +0x78,0xb, 0x7e,0x34,0x21,0x5b,0x12,0x29,0xdb,0x7a,0x37,0x76,0x7a,0x22,0x7c,0x67, +0x7c,0x7b,0xa5,0xbf,0x0, 0xd, 0xbe,0x60,0x0, 0x28,0x5, 0xe4,0x7a,0xb3,0x6e,0x83, +0x2, 0xb9,0x98,0xa5,0xbe,0x0, 0x17,0x6c,0xaa,0x80,0xe, 0x7e,0x60,0xff,0x7e,0x50, +0x9, 0xac,0x5a,0x19,0x62,0x6d,0xcc,0xb, 0xa0,0x12,0x4c,0xf7,0x38,0xed,0x6c,0xaa, +0x80,0x20,0x7e,0x30,0x9, 0xac,0x3a,0x2e,0x14,0x6d,0x14,0x12,0x4c,0x13,0x1b,0x18, +0x20,0x7e,0x30,0x9, 0xac,0x3a,0x2e,0x14,0x6d,0x16,0x12,0x4c,0x13,0x1b,0x18,0x20, +0xb, 0xa0,0xbc,0x7a,0x38,0xdc,0x22,0x90,0x21,0x51,0xe4,0x93,0xbc,0xba,0x22,0x7e, +0xf, 0x78,0x39,0x2e,0x14,0x0, 0x10,0xb, 0xa, 0x30,0x22,0x30,0x0, 0x5, 0x43,0xc3, +0x80,0x80,0x3, 0x53,0xc3,0x7f,0x30,0x0, 0x5, 0x43,0xc2,0x80,0x80,0x3, 0x53,0xc2, +0x7f,0x7e,0xf, 0x78,0x39,0x30,0x0, 0x8, 0x12,0x4d,0x3, 0x4e,0x60,0xc4,0x80,0x6, +0x12,0x4d,0x3, 0x5e,0x60,0x3b,0x1b,0xa, 0x30,0x22,0x12,0x4e,0x57,0x12,0x4f,0xc4, +0x12,0x4d,0xa5,0x12,0x4d,0x5e,0xa9,0xd6,0xeb,0x74,0x1, 0x7e,0x70,0x82,0x12,0x4d, +0xc1,0xa9,0xc6,0xeb,0xd2,0x0, 0x12,0x4d,0x5e,0xd2,0x0, 0x2, 0x4d,0xb, 0xa9,0xd0, +0xce,0x30,0x0, 0x4, 0xa9,0xd5,0xc9,0x22,0xa9,0xc5,0xc9,0x22,0x12,0x4e,0x92,0x40, +0x6, 0x12,0x4e,0x87,0x12,0x0, 0x12,0x12,0x4d,0xa5,0x12,0x4d,0xad,0x80,0xb, 0x7e, +0xb3,0x76,0x5a,0x60,0x2, 0x80,0x0, 0x12,0x4e,0x38,0x30,0x14,0xf2,0x7e,0xb3,0x77, +0xdd,0xbe,0xb0,0x0, 0x28,0x5, 0x14,0x7a,0xb3,0x77,0xdd,0xd2,0x0, 0x12,0x4d,0xad, +0xd2,0x0, 0x2, 0x4d,0xb, 0xc2,0x0, 0x12,0x4d,0xb, 0xc2,0x0, 0x22,0xa2,0x0, 0xa9, +0x92,0xcb,0xa2,0x0, 0xa9,0x92,0xca,0xa2,0x0, 0xa9,0x91,0xcb,0x22,0xe4,0x7e,0x70, +0xff,0x7c,0x6b,0x7e,0xb3,0x77,0xd7,0xb4,0x81,0x68,0xa5,0xbe,0x0, 0x2, 0x80,0x5c, +0xa5,0xbe,0x1, 0x22,0xc2,0xaf,0xa, 0x27,0x5e,0x24,0x0, 0x2, 0x68,0x2, 0xd2,0x95, +0x7a,0x71,0xcd,0xa9,0xd0,0xce,0xa9,0xc6,0xc9,0xa9,0xd0,0xce,0xa9,0xc7,0xc9,0xa9, +0xd1,0x87,0xd2,0xaf,0x80,0x36,0xa5,0xbe,0x2, 0x18,0x12,0x4e,0x7d,0x70,0xf, 0xa9, +0xd0,0xce,0xa9,0xc7,0xc9,0xa9,0xd0,0xce,0xa9,0xd6,0xc9,0xa9,0xd1,0x87,0xd2,0xaf, +0x80,0x1a,0xa5,0xbe,0x3, 0x1c,0x12,0x4e,0x7d,0x70,0xf, 0xa9,0xd0,0xce,0xa9,0xd7, +0xc9,0xa9,0xd0,0xce,0xa9,0xc6,0xc9,0xa9,0xd1,0x87,0xd2,0xaf,0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0xe4,0x7a,0xb3,0x77,0xd7,0x22,0x80,0xe, 0x12,0x4e,0x57,0x12,0x4e,0x92, +0x40,0x14,0x20,0x14,0x11,0x12,0x4d,0xbd,0x12,0x4e,0x82,0x70,0xed,0x12,0x4e,0x57, +0x12,0x4f,0xcf,0x2, 0x4d,0xc1,0x22,0x74,0x81,0x7a,0xb3,0x77,0xd7,0x22,0x80,0xe, +0x12,0x4e,0x57,0x12,0x4e,0x92,0x40,0x14,0x20,0x14,0x11,0x12,0x4d,0xbd,0x12,0x4e, +0x82,0x70,0xed,0x12,0x4e,0x57,0x12,0x4f,0xcf,0x2, 0x4d,0xc1,0x22,0xc2,0xaf,0x7a, +0x71,0xcd,0xa2,0x93,0xe4,0x33,0x22,0x80,0x3, 0x12,0x4e,0x5e,0x12,0x4e,0x92,0x50, +0xf8,0x22,0x30,0xb, 0x3, 0x12,0x3e,0xe7,0x7e,0xb3,0x77,0x0, 0x70,0x6, 0x7e,0xb3, +0x77,0x1, 0x60,0x2, 0xd3,0x22,0xc3,0x22,0x20,0x14,0x6, 0x12,0x4f,0xbb,0x12,0x0, +0x12,0x30,0x1c,0x3, 0x12,0x37,0x94,0x12,0x4e,0x92,0x40,0x6, 0x12,0x4e,0x87,0x2, +0x0, 0x12,0x22,0x30,0x22,0x76,0xc2,0x22,0x12,0x29,0x8c,0xd2,0x4, 0x12,0x36,0xe7, +0x7e,0x73,0x76,0xac,0xbe,0x73,0x77,0xe1,0x68,0x7, 0x7a,0x73,0x77,0xe1,0x12,0x28, +0x87,0x7e,0xb3,0x76,0x9a,0xbe,0xb3,0x6e,0xb3,0x68,0x14,0x54,0x5, 0x7a,0xb3,0x76, +0x9a,0x7e,0x73,0x76,0x9a,0x7a,0x73,0x6e,0xb3,0x12,0x4f,0xdb,0x12,0x65,0x51,0x7e, +0xb3,0x76,0x9b,0xbe,0xb3,0x6e,0xb4,0x68,0x14,0x54,0x5, 0x7a,0xb3,0x76,0x9b,0x7e, +0x73,0x76,0x9b,0x7a,0x73,0x6e,0xb4,0x12,0x4f,0xdb,0x12,0x65,0x51,0x7e,0xb3,0x76, +0x8a,0x54,0xfe,0x7a,0xb3,0x76,0x8a,0x7e,0xb3,0x76,0x8b,0x60,0x3, 0x12,0x60,0x35, +0x7e,0xb3,0x76,0xaa,0x60,0x3, 0x12,0x3f,0xf8,0x12,0x37,0x94,0x7e,0x37,0x4a,0x6d, +0x4d,0x33,0x68,0x15,0xd2,0x4, 0x12,0x36,0xe7,0x12,0x30,0x10,0x7e,0xb3,0x76,0x8a, +0x54,0xfd,0x7a,0xb3,0x76,0x8a,0x2, 0x37,0x94,0x22,0x12,0xd7,0x16,0xe5,0x1e,0x70, +0x5, 0x12,0x4d,0x6c,0x80,0x3, 0x12,0x4e,0xa8,0x2, 0x4f,0x6c,0x6c,0x77,0x7e,0x30, +0x3b,0x7e,0xa0,0x3c,0x7e,0xb3,0x76,0x2f,0xb4,0x1, 0xf, 0xe5,0x1e,0x60,0xb, 0x7e, +0x23,0x29,0xff,0xbc,0x27,0x78,0x3, 0x12,0xd7,0xf6,0x7e,0xb3,0x76,0x2f,0xb4,0x1, +0x29,0xe5,0x1e,0x60,0x25,0x7e,0xb3,0x29,0xff,0xbc,0xb3,0x78,0x3, 0x12,0xd7,0xd9, +0x7e,0xb3,0x29,0xff,0x7a,0xb3,0x29,0xfc,0x4, 0x7a,0xb3,0x29,0xff,0x7e,0x73,0x29, +0xff,0xbc,0x7a,0x28,0x5, 0xe4,0x7a,0xb3,0x29,0xff,0x22,0x80,0x3, 0x12,0x4e,0x5e, +0x30,0x14,0xfa,0x22,0xd2,0x4, 0x12,0x36,0xe7,0x12,0x4e,0x82,0x70,0xfb,0x22,0xa9, +0xd5,0xea,0xa9,0xc5,0xea,0x74,0x2, 0x7e,0x70,0x7, 0x22,0x7e,0xb3,0x6e,0xb3,0x7e, +0x73,0x6e,0xb4,0x12,0x88,0xe5,0x7e,0xb3,0x6e,0xb3,0x7e,0x73,0x6e,0xb4,0x22,0x3e, +0x14,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x22,0xca,0xf8,0x7e,0x14,0x0, 0x1e,0x7e,0x4, +0x0, 0xff,0x69,0x30,0x0, 0x1, 0x7e,0xb, 0x50,0x7a,0x37,0x62,0xb9,0x7a,0x53,0x62, +0xb8,0xc2,0x0, 0x6d,0xcc,0x7e,0xb4,0xff,0xff,0x20,0x21,0x2, 0x21,0x35,0x7e,0xd4, +0x4, 0xc, 0xca,0xd9,0x12,0x51,0x59,0x12,0x24,0xf, 0x1b,0xfd,0x6d,0xaa,0x7d,0xda, +0x80,0x26,0x7d,0x2d,0x3e,0x24,0x49,0x12,0x46,0x54,0xbe,0x14,0x0, 0x0, 0x8, 0x6, +0x49,0x32,0x46,0x54,0x80,0x4, 0x6d,0x33,0x9d,0x31,0x59,0x32,0x46,0x54,0xbd,0x3c, +0x28,0x4, 0x7d,0xc3,0x7d,0xbd,0xb, 0xd4,0x7e,0x37,0x73,0x21,0xbd,0x3d,0x38,0xd2, +0x7e,0x37,0x4e,0x95,0xbd,0x3c,0x50,0x4, 0x7a,0xc7,0x4e,0x95,0x7e,0x37,0x4e,0x8b, +0xbd,0x3c,0x50,0x10,0xbe,0xb4,0xff,0xff,0x68,0xa, 0x7e,0x37,0x4e,0x93,0xb, 0x34, +0x7a,0x37,0x4e,0x93,0x7e,0x73,0x6e,0xb0,0xa, 0x27,0x7d,0x3b,0x8d,0x32,0x7c,0xf5, +0xbe,0xf0,0x0, 0x40,0x7, 0xbe,0xf0,0x1d,0x38,0x2, 0xd2,0x0, 0x7d,0xda,0x7d,0x3d, +0x3e,0x34,0x49,0x23,0x4e,0x85,0xbd,0x2c,0x50,0x51,0xbe,0xb4,0xff,0xff,0x68,0x4b, +0x9, 0xbd,0x4e,0x97,0xb4,0x1, 0x25,0x49,0x23,0x4e,0xa0,0xbd,0x2b,0x78,0x10,0x7d, +0xa3,0x2e,0xa4,0x4e,0x9a,0xb, 0xa8,0x20,0xb, 0x24,0x1b,0xa8,0x20,0x80,0x32,0x4d, +0xdd,0x78,0x14,0x30,0x0, 0x25,0x80,0xf, 0x80,0x21,0x80,0xb, 0x4d,0xdd,0x78,0x7, +0x30,0x0, 0x18,0x80,0x2, 0x80,0x14,0x59,0xb3,0x4e,0xa0,0x7e,0x24,0x0, 0x1, 0x59, +0x23,0x4e,0x9a,0x74,0x1, 0x19,0xbd,0x4e,0x97,0x80,0x6, 0x74,0x1, 0x19,0xbd,0x62, +0xb8,0x49,0xa3,0x4e,0x8d,0x49,0x23,0x4e,0x9a,0xbd,0x2a,0x28,0x4, 0x59,0x23,0x4e, +0x8d,0x9, 0xbd,0x62,0xb8,0xb4,0x1, 0x11,0x6d,0x22,0x59,0x23,0x4e,0xa0,0x6d,0xaa, +0x59,0xa3,0x4e,0x9a,0xe4,0x19,0xbd,0x4e,0x97,0xb, 0xd4,0xbe,0xd4,0x0, 0x3, 0x68, +0x2, 0x1, 0x9e,0x80,0x1a,0x7e,0x8, 0x4e,0x97,0x7e,0x34,0x0, 0x3, 0xe4,0x12,0x24, +0x34,0x7e,0x8, 0x4e,0x9a,0x12,0x51,0x52,0x7e,0x8, 0x4e,0xa0,0x12,0x51,0x52,0xda, +0xf8,0x22,0x7e,0x34,0x0, 0x6, 0x2, 0x24,0x34,0x7e,0x1f,0x24,0x68,0x7e,0x8, 0x46, +0x54,0x22,0x7e,0x34,0x4, 0xc, 0xca,0x39,0x12,0x51,0x59,0x12,0x24,0xf, 0x1b,0xfd, +0x6d,0x33,0x7d,0x13,0x3e,0x14,0x49,0x1, 0x46,0x54,0xbe,0x4, 0x0, 0x0, 0x8, 0x6, +0x49,0x21,0x46,0x54,0x80,0x4, 0x6d,0x22,0x9d,0x20,0x59,0x21,0x46,0x54,0x49,0x1, +0x42,0x48,0xbd,0x20,0x28,0x4, 0x59,0x21,0x42,0x48,0xb, 0x34,0xbe,0x34,0x2, 0x6, +0x40,0xd0,0x22,0x7e,0x37,0x4e,0xa6,0x7a,0x73,0x76,0x90,0x7e,0xb3,0x76,0x8d,0xb4, +0x1, 0x2, 0x80,0x2, 0x41,0x7e,0x12,0x52,0x91,0x7e,0xa7,0x4e,0xa6,0xbe,0xa4,0x0, +0x5, 0x38,0x30,0x6d,0xdd,0x7a,0xd7,0x4e,0x95,0x7a,0xd7,0x4e,0x93,0x7e,0x8, 0x4e, +0x8d,0x7e,0x34,0x0, 0x6, 0xe4,0x12,0x24,0x34,0x7e,0x34,0x4, 0xc, 0x7d,0x1d,0xad, +0x13,0x2e,0x14,0x42,0x48,0x6d,0x0, 0xe4,0x12,0x24,0x34,0xb, 0xd4,0xbe,0xd4,0x0, +0x2, 0x78,0xe6,0x7e,0xa7,0x4e,0xa6,0xb, 0xa4,0x7a,0xa7,0x4e,0xa6,0xbe,0xa4,0x0, +0x5, 0x28,0x5, 0xd2,0x21,0x12,0x51,0x62,0x7e,0x73,0x76,0x8e,0xa, 0xa7,0x3e,0xa4, +0x3e,0xa4,0x2e,0xa4,0x0, 0x5, 0xbe,0xa7,0x4e,0xa6,0x78,0x74,0x6d,0xdd,0x4d,0xdd, +0x78,0x4, 0x6d,0xbb,0x80,0xa, 0x7d,0x3d,0x1b,0x34,0x3e,0x34,0x49,0xb3,0x42,0x48, +0xbe,0xd4,0x2, 0x6, 0x78,0x4, 0x6d,0xcc,0x80,0x8, 0x7d,0xcd,0x3e,0xc4,0x49,0xcc, +0x42,0x4a,0x7d,0x3b,0x2d,0x3c,0x7e,0x24,0x0, 0xa, 0x8d,0x32,0x7d,0x3d,0x3e,0x34, +0x2e,0x34,0x42,0x48,0xb, 0x38,0xa0,0x2d,0xa2,0x1b,0x38,0xa0,0xb, 0xd4,0xbe,0xd4, +0x2, 0x6, 0x78,0xba,0xc2,0x21,0xe4,0x7a,0xb3,0x76,0x8d,0x6d,0xaa,0x7a,0xa7,0x4a, +0x63,0x7e,0x34,0x42,0x48,0x7a,0x37,0x4e,0x7f,0x7a,0xa7,0x4e,0xa6,0x22,0xc2,0x21, +0x7e,0xa7,0x4e,0xa6,0x4d,0xaa,0x68,0x8, 0x6d,0xaa,0x7a,0xa7,0x4e,0xa6,0xd2,0x10, +0x22,0x7e,0xb3,0x76,0x7c,0x44,0x80,0x7a,0xb3,0x76,0x7c,0x22,0xe4,0x7a,0xb3,0x76, +0x2f,0x6d,0x33,0x7a,0x37,0x4e,0x7d,0x12,0x66,0x8f,0x12,0x53,0x1, 0x12,0x66,0xc5, +0xc2,0x1, 0x12,0x28,0x8c,0x7e,0x34,0x4, 0xc, 0xca,0x39,0x7e,0x1f,0x24,0x64,0x7e, +0xf, 0x24,0x68,0x12,0x24,0xf, 0x1b,0xfd,0x12,0x37,0x94,0x2, 0x52,0xce,0x7e,0x8, +0x74,0xfc,0x7e,0x34,0x0, 0xa, 0xe4,0x2, 0x24,0x34,0xe4,0x7a,0xb3,0x76,0x2f,0x74, +0x1, 0x7a,0xb3,0x77,0xe1,0x7a,0xb3,0x73,0x1e,0x12,0x6b,0x71,0x12,0x53,0x1, 0x12, +0x3c,0x27,0x12,0x47,0x1c,0x12,0x2f,0xf0,0x12,0xb4,0xd2,0x12,0x52,0xce,0x2, 0x28, +0x77,0x7e,0x8, 0x76,0xdc,0x7e,0x34,0x0, 0x20,0xe4,0x12,0x24,0x34,0x7e,0x34,0x0, +0x1, 0x7a,0x37,0x76,0xdc,0x7a,0xb3,0x76,0xde,0x74,0x1, 0x7a,0xb3,0x76,0xdf,0xe4, +0x7a,0xb3,0x76,0xe0,0x7e,0xb3,0x77,0xd9,0xb4,0x1, 0x31,0x7e,0x34,0x0, 0x2, 0x12, +0x53,0x9b,0x12,0x53,0x7f,0x7a,0x73,0x76,0xe9,0x74,0x1, 0x7a,0xb3,0x76,0xea,0xe4, +0x7a,0xb3,0x76,0xeb,0x7e,0x34,0x0, 0x2, 0x12,0x53,0x88,0x12,0x53,0x7f,0x7a,0x73, +0x76,0xf1,0x7a,0xb3,0x76,0xf2,0x7a,0xb3,0x76,0xf3,0x80,0xa, 0x7e,0x34,0x0, 0x1, +0x12,0x53,0x9b,0x12,0x53,0x88,0x7e,0x34,0x0, 0x1, 0x7a,0x37,0x76,0xf4,0x74,0x1, +0x7a,0xb3,0x76,0xf6,0x7a,0xb3,0x76,0xf7,0x74,0x2, 0x7a,0xb3,0x76,0xf8,0x22,0x7e, +0x73,0x77,0xd8,0x1e,0x34,0xb, 0x34,0x22,0x7a,0x37,0x76,0xec,0x74,0x1, 0x7a,0xb3, +0x76,0xee,0x7a,0xb3,0x76,0xef,0x7a,0xb3,0x76,0xf0,0x22,0x7a,0x37,0x76,0xe4,0x74, +0x1, 0x7a,0xb3,0x76,0xe6,0x7a,0xb3,0x76,0xe7,0xe4,0x7a,0xb3,0x76,0xe8,0x22,0x7e, +0x34,0x0, 0x27,0xca,0x39,0x7e,0x34,0x20,0xb4,0x7e,0x24,0x0, 0xff,0x7e,0x8, 0x28, +0xe6,0x12,0x24,0xf, 0x1b,0xfd,0x7e,0x34,0x0, 0x27,0xca,0x39,0x7e,0x34,0x20,0xdb, +0x7e,0x24,0x0, 0xff,0x7e,0x8, 0x29,0xd, 0x12,0x24,0xf, 0x1b,0xfd,0x7e,0x34,0x0, +0x27,0xca,0x39,0x7e,0x34,0x21,0x2, 0x7e,0x24,0x0, 0xff,0x7e,0x8, 0x29,0x34,0x12, +0x24,0xf, 0x1b,0xfd,0x7e,0x34,0x0, 0x27,0xca,0x39,0x7e,0x34,0x21,0x29,0x7e,0x24, +0x0, 0xff,0x7e,0x8, 0x29,0x5b,0x12,0x24,0xf, 0x1b,0xfd,0x6c,0x88,0x7c,0xb8,0x12, +0x89,0x3a,0xb, 0x80,0xbe,0x80,0x4, 0x40,0xf4,0x2, 0x53,0x1, 0x12,0x87,0xd7,0x12, +0x65,0xcc,0x12,0x88,0x5e,0x12,0x53,0xaf,0x12,0x88,0xa4,0x12,0x29,0xe3,0x12,0x88, +0x85,0x12,0x54,0x8a,0x12,0x54,0xd0,0x12,0x3c,0xc5,0x2, 0x54,0x3d,0xd2,0x1, 0x12, +0x28,0x8c,0x6c,0xaa,0x7e,0x63,0x77,0xe1,0x7e,0x70,0x27,0xac,0x67,0x9, 0x63,0x28, +0xe7,0xa, 0x2a,0x12,0xc5,0xf, 0x7c,0x7b,0xbc,0x67,0x78,0x4, 0x7a,0xa3,0x74,0x7e, +0x7e,0x50,0x26,0xac,0x5a,0x19,0x72,0x74,0x82,0xb, 0xa0,0xbe,0xa0,0x3, 0x78,0xd4, +0x7e,0x73,0x74,0x7e,0xbe,0x70,0x3, 0x40,0x5, 0xe4,0x7a,0xb3,0x74,0x7e,0x12,0x46, +0x5d,0x7e,0x73,0x74,0x7e,0x7a,0x73,0x75,0x6, 0x22,0x12,0x54,0xc8,0x74,0x9, 0xac, +0x7b,0x7e,0x8, 0x6d,0x14,0x12,0x54,0xc3,0x74,0x9, 0xac,0x7b,0x7e,0x8, 0x6d,0xc8, +0x12,0x54,0xc3,0x74,0x9, 0xac,0x7b,0x7e,0x8, 0x6d,0x6e,0x74,0xff,0x12,0x24,0x34, +0x7e,0x8, 0x6e,0x22,0x12,0x81,0x73,0x7e,0x8, 0x6e,0x7c,0x7e,0x34,0x0, 0xd, 0xe4, +0x2, 0x24,0x34,0x74,0xff,0x12,0x24,0x34,0x90,0x21,0x51,0xe4,0x93,0x7c,0x7b,0x22, +0x6d,0x33,0x7a,0x37,0x78,0x25,0xe4,0x7a,0xb3,0x78,0x23,0x7a,0xb3,0x78,0x24,0x7a, +0xb3,0x78,0x20,0x2, 0x54,0xe6,0x7a,0xb3,0x78,0x21,0x7a,0xb3,0x78,0x22,0x22,0x7e, +0x37,0x78,0x25,0xbe,0x34,0x0, 0x0, 0x28,0x7, 0x1b,0x34,0x7a,0x37,0x78,0x25,0x22, +0xe4,0x12,0x54,0xe6,0x7a,0xb3,0x78,0x20,0x22,0xca,0xf8,0xc2,0x0, 0xc2,0x1, 0x12, +0x92,0x25,0x68,0x76,0x7e,0xb3,0x76,0x5a,0x70,0x70,0x7e,0xb3,0x6c,0xde,0x70,0x5, +0x12,0x54,0xef,0x80,0x65,0x12,0x55,0x8d,0x92,0x1, 0x12,0xbe,0x41,0x92,0x0, 0x30, +0x0, 0x13,0x7e,0x34,0x22,0x27,0x12,0x29,0xdb,0x7a,0x37,0x78,0x25,0x74,0x1, 0x7a, +0xb3,0x78,0x21,0x80,0x14,0x30,0x1, 0x19,0x7e,0x34,0x22,0x27,0x12,0x29,0xdb,0x7a, +0x37,0x78,0x25,0x74,0x1, 0x7a,0xb3,0x78,0x22,0x74,0x1, 0x7a,0xb3,0x78,0x20,0x80, +0x3, 0x12,0x54,0xef,0x7e,0xb3,0x78,0x21,0x60,0xe, 0x6c,0xff,0x80,0x3, 0x12,0x57, +0x3b,0x12,0x57,0x1b,0x38,0xf8,0x80,0x12,0x7e,0xb3,0x78,0x22,0x60,0xc, 0x6c,0xff, +0x80,0x3, 0x12,0x57,0x3b,0x12,0x57,0x1b,0x38,0xf8,0xda,0xf8,0x22,0xca,0x3b,0x12, +0xda,0x48,0xc2,0x2, 0x7e,0x34,0x22,0x23,0x7e,0x24,0x0, 0xff,0xb, 0x1a,0xd0,0x7e, +0x17,0x6c,0xe4,0xbd,0x1d,0x58,0x4, 0x7d,0xd1,0xe, 0xd4,0x6c,0xcc,0xc1,0xf5,0x7e, +0x30,0x2, 0xac,0x3c,0x9, 0xb1,0x6b,0x54,0xf5,0x26,0x9, 0x71,0x6b,0x55,0x7a,0x71, +0x27,0x12,0x57,0x9, 0x7d,0xc3,0xbd,0xdc,0x8, 0x2, 0xc1,0xf3,0xbe,0xe1,0x26,0x38, +0x2, 0xc1,0xf3,0xbe,0xd1,0x27,0x38,0x2, 0xc1,0xf3,0x7d,0x1c,0xe, 0x14,0x7d,0xec, +0xe, 0xe4,0xe, 0xe4,0x2d,0xe1,0x6d,0xff,0x12,0x57,0xcd,0x85,0x27,0x2b,0x80,0x2d, +0x6c,0x99,0x7e,0xf1,0x26,0x80,0x1b,0x7c,0xbf,0x7e,0x71,0x2b,0x12,0x57,0x13,0x18, +0x9, 0xbd,0xc0,0x48,0x5, 0x12,0x57,0x2a,0x80,0x6, 0xe5,0x2a,0xbc,0xbf,0x58,0x7, +0x1b,0xf0,0xbe,0xf0,0x0, 0x58,0xe0,0x4c,0x99,0x68,0x9, 0x15,0x2b,0xe5,0x2b,0xbe, +0xb0,0x0, 0x58,0xcc,0x12,0x57,0xc2,0x58,0x36,0x85,0x27,0x2b,0x80,0x2a,0x12,0x57, +0xb7,0x80,0x1b,0x7c,0xb8,0x7e,0x71,0x2b,0x12,0x57,0x13,0x18,0x9, 0xbd,0xc0,0x48, +0x5, 0x12,0x57,0x22,0x80,0x6, 0xe5,0x29,0xbc,0xb8,0x28,0x6, 0xb, 0x80,0xbc,0xe8, +0x38,0xe1,0x4c,0x99,0x68,0x9, 0x15,0x2b,0xe5,0x2b,0xbe,0xb0,0x0, 0x58,0xcf,0x12, +0x57,0xcd,0xa, 0x3d,0x1b,0x34,0xe5,0x27,0xa, 0x1b,0xbd,0x13,0x58,0x6a,0x12,0x57, +0x32,0x80,0x2a,0x6c,0x99,0x7e,0xf1,0x26,0x80,0x18,0x7c,0xbf,0x12,0x57,0x10,0x18, +0x9, 0xbd,0xc0,0x48,0x5, 0x12,0x57,0x2a,0x80,0x6, 0xe5,0x2a,0xbc,0xbf,0x58,0x7, +0x1b,0xf0,0xbe,0xf0,0x0, 0x58,0xe3,0x4c,0x99,0x68,0x7, 0x5, 0x28,0xbe,0xd1,0x28, +0x38,0xd1,0x12,0x57,0xc2,0x58,0x31,0x12,0x57,0x32,0x80,0x27,0x12,0x57,0xb7,0x80, +0x18,0x7c,0xb8,0x12,0x57,0x10,0x18,0x9, 0xbd,0xc0,0x48,0x5, 0x12,0x57,0x22,0x80, +0x6, 0xe5,0x29,0xbc,0xb8,0x28,0x6, 0xb, 0x80,0xbc,0xe8,0x38,0xe4,0x4c,0x99,0x68, +0x7, 0x5, 0x28,0xbe,0xd1,0x28,0x38,0xd4,0x90,0x22,0x22,0xe4,0x93,0xa, 0x1b,0xbd, +0x1f,0x38,0x10,0xd2,0x2, 0xe5,0x26,0x7a,0xb3,0x78,0x23,0xe5,0x27,0x7a,0xb3,0x78, +0x24,0x80,0xc, 0xb, 0xc0,0x7e,0x73,0x6c,0xde,0xbc,0x7c,0x28,0x2, 0xa1,0xaf,0xa2, +0x2, 0xda,0x3b,0x22,0xe5,0x2a,0x7e,0x71,0x2b,0x12,0x57,0xd9,0xb, 0x1a,0x30,0x22, +0x7e,0x71,0x28,0x12,0x57,0x9, 0x7d,0x3, 0xbd,0xe0,0x22,0x7e,0x73,0x6c,0xde,0xbc, +0x7f,0x22,0xb, 0xf4,0xb, 0x90,0x7a,0x81,0x29,0x22,0xb, 0xf4,0xb, 0x90,0x7a,0xf1, +0x2a,0x22,0xe5,0x27,0xa, 0x5b,0xb, 0x54,0xf5,0x28,0x22,0xc2,0x2, 0x7c,0xbf,0x12, +0x57,0x49,0xb, 0xf0,0x22,0xc2,0x2, 0x7c,0xb1,0x7c,0x7b,0xc4,0x23,0x54,0x1f,0x7c, +0xab,0x12,0x6e,0x60,0x30,0x2, 0xf, 0xa, 0x3a,0x2e,0x34,0x6b,0xcc,0x7e,0x39,0xa0, +0x4c,0xba,0x7a,0x39,0xb0,0x22,0x64,0xff,0xa, 0x2a,0x2e,0x24,0x6b,0xcc,0x2, 0x46, +0x1d,0xca,0xd8,0xca,0x79,0x7d,0x43,0x7f,0x70,0x12,0xbe,0x39,0x28,0x33,0x6c,0xff, +0x80,0x2a,0x74,0x2, 0xac,0xbf,0x9, 0xe5,0x6b,0x54,0x9, 0xd5,0x6b,0x55,0x7c,0xbe, +0x7c,0x7d,0x12,0x57,0x9, 0x7d,0xd3,0x7f,0x7, 0x7c,0x7d,0x12,0xbf,0x5f,0x50,0x7, +0xbd,0x4d,0x58,0x6, 0xd3,0x80,0xb, 0xd3,0x80,0x8, 0xb, 0xf0,0x12,0x57,0x1b,0x38, +0xd1,0xc3,0xda,0x79,0xda,0xd8,0x22,0x6c,0x99,0xe5,0x26,0xa, 0x1b,0xb, 0x14,0x7c, +0x83,0x22,0xa, 0x3e,0x1b,0x34,0xe5,0x26,0xa, 0x1b,0xbd,0x13,0x22,0xe5,0x26,0xa, +0x5b,0xb, 0x54,0xf5,0x29,0x85,0x26,0x2a,0x22,0x12,0x57,0xe7,0x7d,0x13,0x3e,0x14, +0x7e,0x1f,0x24,0x68,0x2d,0x31,0x22,0x7c,0xa7,0x7e,0x73,0x6e,0xb0,0xac,0x7b,0xa, +0x2a,0x2d,0x32,0x22,0x7c,0xb9,0x7c,0x70,0x2, 0x57,0x9, 0x7c,0x9b,0x74,0x3, 0xac, +0xb9,0x9, 0x85,0x29,0xb2,0xbe,0x83,0x76,0x9c,0x68,0x8, 0x7e,0x83,0x76,0x9c,0x19, +0x85,0x29,0xb2,0x9, 0x85,0x29,0xb3,0xbe,0x83,0x76,0x9d,0x68,0x8, 0x7e,0x83,0x76, +0x9d,0x19,0x85,0x29,0xb3,0x9, 0x85,0x29,0xb4,0xbe,0x83,0x76,0x9e,0x68,0x8, 0x7e, +0x83,0x76,0x9e,0x19,0x85,0x29,0xb4,0x7e,0x8, 0x0, 0x70,0x12,0x58,0x48,0x9, 0xb5, +0x29,0xb4,0x12,0x58,0x85,0x2, 0x4, 0x96,0x9, 0xb5,0x29,0xb2,0x12,0xc, 0xea,0x7e, +0x8, 0x0, 0x70,0x74,0x3, 0xac,0xb9,0x9, 0xb5,0x29,0xb3,0x12,0xd, 0x8d,0x7e,0x8, +0x0, 0x70,0x74,0x3, 0xac,0xb9,0x22,0x7c,0x9b,0x12,0x58,0x5e,0x12,0x58,0x48,0x12, +0x58,0xac,0x4c,0x99,0x78,0x9, 0x7e,0x8, 0x0, 0x70,0x74,0x1, 0x12,0xc, 0xea,0x12, +0x58,0x88,0x2, 0x4, 0x96,0x12,0xd, 0x7, 0x7e,0x37,0x0, 0x70,0x7a,0x37,0x0, 0xac, +0x7e,0x34,0x0, 0x2, 0x7e,0x8, 0x0, 0x70,0x7e,0x24,0x0, 0x1, 0x12,0x3, 0xfa,0x7e, +0x34,0x0, 0x2, 0x7e,0x8, 0x0, 0xac,0x7e,0x24,0x0, 0x1, 0x22,0x9, 0xb5,0x29,0xb4, +0x2, 0xd, 0x7, 0x12,0x3c,0xf3,0x12,0x37,0xe1,0x12,0x5a,0xac,0x7e,0xb3,0x6e,0xc1, +0x7e,0x37,0x6e,0xbd,0x60,0xe, 0x7a,0x37,0x0, 0xba,0x7e,0x37,0x6e,0xbf,0x7a,0x37, +0x0, 0x7e,0x80,0xc, 0x7a,0x37,0x0, 0x7e,0x7e,0x37,0x6e,0xbf,0x7a,0x37,0x0, 0xba, +0x7e,0x37,0x0, 0x7c,0x4e,0x70,0x2, 0x7a,0x37,0x0, 0x7c,0x7e,0x37,0x0, 0xb8,0x4e, +0x70,0x2, 0x7a,0x37,0x0, 0xb8,0x12,0x47,0xc4,0x9, 0xb5,0x29,0xb2,0x12,0xc, 0xea, +0x12,0x47,0xc4,0x9, 0xb5,0x29,0xb3,0x12,0xd, 0x8d,0x12,0x47,0xc4,0x12,0x58,0xac, +0x7e,0x37,0x0, 0x70,0x7a,0x37,0x0, 0xac,0x6d,0x33,0x7e,0x8, 0x0, 0x6c,0x7e,0x24, +0x0, 0x1e,0x12,0x3, 0xfa,0x6d,0x33,0x7e,0x8, 0x0, 0xa8,0x7e,0x24,0x0, 0x1e,0x2, +0x4, 0x96,0x12,0x58,0xb3,0x12,0x59,0x3e,0x12,0x5a,0x62,0x2, 0x35,0x9, 0xca,0x3b, +0x7e,0x38,0x1, 0x7c,0x12,0x7, 0xb5,0x7e,0x63,0x1, 0x8c,0xbe,0x60,0xff,0x68,0x2a, +0x7e,0x73,0x1, 0x8d,0xbe,0x70,0xff,0x68,0x21,0x7e,0xa3,0x1, 0x8e,0xbe,0xa0,0xff, +0x68,0x18,0x4c,0x66,0x68,0x14,0x4c,0x77,0x68,0x10,0x4c,0xaa,0x68,0xc, 0x7a,0x63, +0x76,0x2d,0x7a,0x73,0x76,0x29,0x7a,0xa3,0x76,0x2a,0xc2,0xf, 0x7e,0x73,0x1, 0x8e, +0xbe,0x70,0x3, 0x28,0x35,0x74,0x4, 0x7a,0xb3,0x77,0xdc,0x7a,0xb3,0x4a,0x68,0x75, +0xc3,0x84,0x7e,0x34,0x1, 0x90,0x7a,0x37,0x0, 0x72,0x7a,0x37,0x0, 0xae,0x7e,0x34, +0x0, 0x3, 0x7e,0x8, 0x0, 0x72,0x12,0x5b,0x4d,0x7e,0x34,0x0, 0x3, 0x7e,0x8, 0x0, +0xae,0x7e,0x24,0x0, 0x1, 0x12,0x4, 0x96,0xd2,0xf, 0xc2,0x11,0x7e,0xb3,0x1, 0x8c, +0x54,0xf0,0xb4,0xe0,0x2, 0xd2,0x11,0x7e,0x8, 0x0, 0xa0,0x69,0x33,0x0, 0x4, 0x12, +0x5a,0x57,0x12,0x0, 0x6, 0x7e,0x8, 0x0, 0xa2,0x29,0xb3,0x0, 0x6, 0x12,0x5a,0x4c, +0x7e,0x8, 0x0, 0xdc,0x69,0x33,0x0, 0x1, 0x12,0x5a,0x57,0x12,0x0, 0x6, 0x7e,0x8, +0x0, 0xde,0x29,0xb3,0x0, 0x3, 0x12,0x5a,0x4c,0x7e,0x8, 0x0, 0xa4,0x69,0x33,0x0, +0xa, 0x12,0x5a,0x57,0x12,0x0, 0x6, 0x7e,0x8, 0x0, 0xa6,0x29,0xb3,0x0, 0xc, 0x12, +0x5a,0x4c,0x7e,0x8, 0x0, 0xe0,0x69,0x33,0x0, 0x7, 0x12,0x5a,0x57,0x12,0x0, 0x6, +0x7e,0x8, 0x0, 0xe2,0x29,0xb3,0x0, 0x9, 0x12,0x5a,0x4c,0x7e,0x34,0x0, 0x1a,0x7e, +0x8, 0x0, 0xa0,0x7e,0x24,0x0, 0x4, 0x12,0x3, 0xfa,0x7e,0x34,0x0, 0x1a,0x7e,0x8, +0x0, 0xdc,0x7e,0x24,0x0, 0x4, 0x12,0x4, 0x96,0xda,0x3b,0x22,0x54,0xc0,0x23,0x23, +0x54,0x3, 0xa, 0x3b,0x2, 0xd, 0xa5,0x7d,0x23,0x7c,0x45,0x6c,0x55,0xa, 0x36,0x4d, +0x32,0x22,0x2, 0x5a,0x65,0xca,0x3b,0x7e,0x67,0x6e,0xb5,0x7e,0x77,0x6e,0xb7,0x74, +0x1, 0x12,0x35,0x28,0x7e,0xb3,0x6e,0xc1,0x7e,0x34,0x1, 0x0, 0x7e,0x8, 0x6e,0xc2, +0x7d,0x26,0x60,0xb, 0x12,0x4, 0x96,0x12,0x5a,0x9b,0x12,0x3, 0xfa,0x80,0x9, 0x12, +0x3, 0xfa,0x12,0x5a,0x9b,0x12,0x4, 0x96,0xda,0x3b,0x22,0x7e,0x34,0x1, 0x0, 0x7d, +0x16,0x3e,0x14,0x2e,0x14,0x6e,0xc2,0x6d,0x0, 0x7d,0x27,0x22,0x7e,0x8, 0x0, 0x6c, +0x12,0x5b,0x54,0x7e,0x34,0x1, 0x5, 0x7a,0x37,0x0, 0x6c,0x7e,0x34,0x20,0x0, 0x7a, +0x37,0x0, 0x6e,0x6d,0x33,0x7a,0x37,0x0, 0x70,0x7e,0x34,0x1, 0xe0,0x7a,0x37,0x0, +0x72,0x7e,0x34,0x28,0x30,0x7a,0x37,0x0, 0x74,0x7e,0x34,0x18,0x1e,0x7a,0x37,0x0, +0x76,0x7e,0x34,0x66,0x6, 0x7a,0x37,0x0, 0x78,0x7e,0x34,0x73,0x0, 0x7a,0x37,0x0, +0x7a,0x7e,0x34,0x14,0x2, 0x7a,0x37,0x0, 0x7c,0x6d,0x33,0x7a,0x37,0x0, 0x80,0x7a, +0x37,0x0, 0x82,0x7a,0x37,0x0, 0x84,0x7a,0x37,0x0, 0x86,0x7a,0x37,0x0, 0x98,0x7e, +0x34,0x38,0x1, 0x7a,0x37,0x0, 0x9a,0x7e,0x34,0x4, 0x1, 0x7a,0x37,0x0, 0x9c,0x7e, +0x34,0x6, 0x3, 0x7a,0x37,0x0, 0x9e,0x6d,0x33,0x7a,0x37,0x0, 0xa0,0x7a,0x37,0x0, +0xa2,0x7a,0x37,0x0, 0xa4,0x7a,0x37,0x0, 0xa6,0x7e,0x34,0x0, 0x3c,0xca,0x39,0x7e, +0x18,0x0, 0x6c,0x7e,0x8, 0x0, 0xa8,0x12,0x24,0xf, 0x1b,0xfd,0x22,0x7e,0x24,0x0, +0x1, 0x2, 0x3, 0xfa,0x7e,0x34,0x0, 0x3c,0xe4,0x2, 0x24,0x34,0xd2,0x5, 0x7e,0x73, +0x6c,0xde,0xbe,0x70,0x3, 0x50,0x2, 0xc3,0x22,0x7e,0x8, 0x62,0xb8,0x12,0x5b,0x54, +0x6c,0xaa,0x80,0x17,0x7e,0x90,0x2, 0xac,0x9a,0x9, 0xb4,0x6b,0x54,0x19,0xb4,0x62, +0xb8,0x9, 0xb4,0x6b,0x55,0x19,0xb4,0x62,0xb9,0xb, 0xa0,0x7e,0x73,0x6c,0xde,0xbc, +0x7a,0x38,0xe1,0x6c,0xaa,0x80,0x36,0xa, 0x2a,0xb, 0x24,0x7c,0x65,0x80,0x28,0x7e, +0x50,0x2, 0xac,0x56,0x9, 0x12,0x62,0xb8,0x7e,0x30,0x2, 0xac,0x3a,0x9, 0xb1,0x62, +0xb8,0xbc,0xb1,0x78,0x2, 0xc2,0x5, 0x9, 0x52,0x62,0xb9,0x9, 0xb1,0x62,0xb9,0xbc, +0xb5,0x78,0x2, 0xc2,0x5, 0xb, 0x60,0xbc,0x76,0x38,0xd4,0xb, 0xa0,0xbc,0x7a,0x38, +0xc6,0xa2,0x5, 0x22,0xca,0x3b,0x7c,0xfb,0x12,0x5f,0xa8,0x7e,0x94,0x0, 0x51,0x7e, +0xe3,0x6c,0xde,0xe4,0x7a,0xb3,0x75,0x4a,0x7a,0xb3,0x75,0x4b,0x7a,0xb3,0x75,0xc, +0x7e,0x8, 0x75,0x4c,0x12,0x5f,0x7c,0xe4,0x12,0x24,0x34,0x12,0x5f,0x7c,0x3e,0x34, +0x7e,0x8, 0x75,0xd, 0xe4,0x12,0x24,0x34,0xbe,0xe0,0x2, 0x50,0x2, 0xc1,0x8a,0x6c, +0xdd,0xc1,0x84,0x74,0x2, 0x7c,0x7d,0xac,0x7b,0x12,0x5f,0xb7,0x4c,0xdd,0x68,0x8, +0xa, 0x8d,0x9, 0xb8,0x75,0x4c,0x70,0xa, 0xa, 0x3d,0xb, 0x34,0xa, 0x8d,0x19,0x78, +0x75,0x4c,0xa, 0x5d,0xb, 0x54,0xf5,0x26,0xc1,0x7b,0x7e,0xa1,0x26,0x74,0x2, 0x7c, +0x7a,0xac,0x7b,0x9, 0xa3,0x6b,0x54,0x7a,0xa1,0x2a,0x9, 0xb3,0x6b,0x55,0xf5,0x2b, +0xa, 0x2a,0xe5,0x28,0x12,0x5f,0x83,0x8, 0x6, 0x7d,0x50,0x9d,0x52,0x80,0x4, 0x6d, +0x55,0x9d,0x53,0xf5,0x2c,0xe5,0x2b,0xa, 0x2b,0xe5,0x29,0x12,0x5f,0x83,0x8, 0x6, +0x7d,0x80,0x9d,0x82,0x80,0x4, 0x6d,0x88,0x9d,0x83,0x7d,0x38,0x7c,0xc7,0xe5,0x2c, +0xbe,0xb0,0x6, 0x40,0x2, 0xc1,0x79,0xbe,0xc0,0x6, 0x40,0x2, 0xc1,0x79,0x12,0x5f, +0xaf,0x7a,0x35,0x2e,0x12,0x57,0x4, 0x7d,0x83,0x7e,0x25,0x2e,0xbd,0x28,0x8, 0x4, +0x7d,0x38,0x80,0x3, 0x7e,0x35,0x2e,0x7a,0x35,0x30,0xbd,0x28,0x58,0x4, 0x7d,0x38, +0x80,0x3, 0x7e,0x35,0x2e,0x7a,0x35,0x32,0x75,0x2d,0x0, 0xe5,0x2c,0xbe,0xb0,0x1, +0x38,0x21,0xbe,0xc0,0x1, 0x38,0x1c,0x7c,0xbf,0x30,0xe0,0x17,0x7e,0xb3,0x75,0xc, +0x4, 0x7a,0xb3,0x75,0xc, 0x75,0x2d,0x1, 0x7e,0xb3,0x75,0x4a,0x4, 0x7a,0xb3,0x75, +0x4a,0xc1,0x1d,0xe5,0x2c,0xbe,0xb0,0x1, 0x38,0x7, 0xbe,0xc0,0x1, 0x38,0x2, 0xc1, +0x1d,0xe5,0x2c,0xbe,0xb0,0x6, 0x40,0x2, 0xc1,0x1d,0xbe,0xc0,0x6, 0x40,0x2, 0xc1, +0x1d,0x7c,0xbf,0x20,0xe1,0x2, 0xc1,0x1d,0xc2,0x3, 0xe5,0x2c,0xbe,0xb0,0x2, 0x28, +0x5, 0xbe,0xc0,0x2, 0x38,0x2, 0xd2,0x3, 0x12,0x5f,0x8e,0x12,0xcf,0x28,0x12,0x5f, +0xa1,0x7a,0xd, 0x3a,0x7d,0x38,0x2e,0x35,0x2e,0x12,0x5f,0x9a,0x7a,0x35,0x34,0xc2, +0x2, 0xbe,0x8, 0x7f,0xff,0x78,0x5, 0x9f,0x11,0x7a,0x1d,0x3a,0x7e,0x35,0x34,0x7a, +0x35,0x43,0x12,0x5f,0x8e,0x7e,0xd, 0x3a,0x12,0xcd,0x84,0x92,0x4, 0x12,0x5b,0x5c, +0x92,0x1, 0x7e,0x35,0x32,0x12,0x5e,0x90,0x20,0x1, 0x1a,0xe5,0x2c,0xbe,0xb0,0x4, +0x38,0x13,0xbe,0xc0,0x4, 0x38,0xe, 0xa, 0x2c,0xe5,0x2c,0xa, 0x3b,0x12,0x5e,0x9c, +0x18,0x3, 0x12,0x5e,0x8d,0x85,0x29,0x43,0x85,0x2a,0x44,0x85,0x2b,0x45,0x7e,0x8, +0x0, 0x3e,0x7e,0x18,0x0, 0x40,0xe5,0x28,0x12,0xcd,0x2f,0xe5,0x2c,0xa, 0x4b,0xbe, +0x45,0x40,0x8, 0x7, 0xa, 0x3c,0xbe,0x35,0x40,0x18,0x8, 0x12,0x5e,0x98,0x18,0x3, +0x7e,0x95,0x3e,0x7e,0x5, 0x40,0xbe,0x4, 0x0, 0x3, 0x78,0x5, 0x7e,0x35,0x32,0x80, +0x14,0xbe,0x4, 0x0, 0x4, 0x78,0x5, 0x7e,0x35,0x34,0x80,0x9, 0xbe,0x4, 0x0, 0x5, +0x78,0x6, 0x7e,0x35,0x30,0x12,0x5e,0x90,0x7e,0xb3,0x76,0x5a,0xb4,0x1, 0x4, 0x7e, +0x94,0x0, 0x3c,0x7e,0xb3,0x6e,0xa2,0x60,0x18,0x12,0x5e,0x8d,0xe5,0x2c,0xbe,0xb0, +0x2, 0x38,0xe, 0xbe,0xc0,0x2, 0x38,0x9, 0x12,0x5e,0x98,0x18,0x4, 0x7e,0x94,0x0, +0x32,0x7d,0x19,0x1a,0x2, 0x1a,0x0, 0x7e,0x1d,0x36,0x12,0x22,0xa3,0x7e,0x8, 0x0, +0x64,0x12,0x23,0x10,0x7f,0x1, 0x7e,0x1d,0x3a,0xbf,0x10,0x8, 0x2, 0xd2,0x2, 0x30, +0x4, 0x5, 0x20,0x3, 0x2, 0xc2,0x2, 0x30,0x2, 0x3, 0x75,0x2d,0x2, 0xe5,0x2d,0xbe, +0xb0,0x0, 0x28,0x55,0xe5,0x26,0xa, 0x4b,0x9, 0x14,0x75,0x4c,0xa5,0xb9,0x0, 0xc, +0xa, 0x3d,0x9, 0xa3,0x75,0x4c,0x19,0xa4,0x75,0x4c,0x80,0x3d,0xa, 0x3d,0x9, 0x53, +0x75,0x4c,0x7a,0x51,0x42,0xbc,0x51,0x28,0x3, 0x7a,0x11,0x42,0x75,0x27,0x0, 0x80, +0x23,0x9, 0x64,0x75,0x4c,0xe5,0x27,0xa, 0xb, 0x9, 0x30,0x75,0x4c,0xbc,0x36,0x68, +0xa, 0xa, 0x3d,0x9, 0x63,0x75,0x4c,0xbc,0x36,0x78,0x7, 0x7e,0xa1,0x42,0x19,0xa0, +0x75,0x4c,0x5, 0x27,0xbe,0xe1,0x27,0x38,0xd8,0x5, 0x26,0xbe,0xe1,0x26,0x28,0x2, +0x81,0x3a,0xb, 0xd0,0xbc,0xed,0x28,0x2, 0x81,0x13,0xda,0x3b,0x22,0x7e,0x35,0x30, +0x1a,0x26,0x1a,0x24,0x7a,0x1d,0x36,0x22,0xa, 0x2c,0x7d,0x34,0x2d,0x32,0xbe,0x34, +0x0, 0x6, 0x22,0xca,0xd8,0xca,0x79,0xc2,0x0, 0x7e,0xe0,0x3, 0xe4,0x7a,0xb3,0x75, +0x49,0x7e,0xd3,0x6e,0x7d,0x12,0xd1,0x29,0x7e,0xf3,0x6c,0xde,0xbe,0xf0,0x1, 0x38, +0x2, 0xe1,0x6d,0x7c,0xbe,0x12,0x5b,0xd4,0x4c,0xdd,0x78,0x4, 0xc2,0x0, 0x80,0x5f, +0xbe,0xd0,0x1, 0x28,0xd, 0x7e,0x73,0x75,0x8a,0xbe,0x70,0x6, 0x28,0x4, 0xc2,0x0, +0x80,0x4d,0xc2,0x0, 0x7e,0x53,0x6c,0xde,0xbc,0x5d,0x78,0x11,0x12,0x5f,0xc4,0x50, +0x5, 0x7e,0xe0,0x3, 0x80,0x3, 0x7e,0xe0,0x1, 0xd2,0x0, 0x80,0x32,0x7e,0x43,0x75, +0x4a,0xa, 0x34,0xa, 0x25,0x7d,0x12,0x9d,0x13,0xb, 0x14,0xa, 0x3d,0xbd,0x31,0x78, +0x7, 0x7e,0xe0,0x1, 0xd2,0x0, 0x80,0x17,0x7e,0x73,0x75,0xc, 0xa, 0x37,0x9d,0x23, +0xb, 0x24,0x7e,0x73,0x75,0x8b,0xbd,0x32,0x78,0x5, 0x7e,0xe0,0x41,0xd2,0x0, 0x30, +0x0, 0x5, 0x7c,0xbe,0x12,0x5b,0xd4,0x7e,0x8, 0x75,0x4c,0x12,0xcc,0x63,0x7a,0xb3, +0x75,0x49,0x7e,0xa3,0x75,0x49,0x7a,0xa3,0x6c,0xde,0x74,0x2, 0xa4,0xca,0x59,0x7e, +0x18,0x75,0xd, 0x7e,0x8, 0x6b,0x54,0x12,0x24,0xf, 0x1b,0xfd,0x7e,0x73,0x6c,0xde, +0x7a,0x73,0x75,0x8b,0x12,0xce,0x9b,0x7a,0xb3,0x75,0x8a,0x80,0xa, 0x74,0x64,0x7a, +0xb3,0x75,0x8a,0x7a,0xf3,0x75,0x8b,0xda,0x79,0xda,0xd8,0x22,0x90,0x21,0x52,0x93, +0xa, 0x3b,0x22,0xa, 0xb, 0x7d,0x30,0x9d,0x32,0xbe,0x34,0x0, 0x0, 0x22,0xe5,0x28, +0x7e,0x71,0x29,0x7e,0x61,0x2a,0x7e,0x51,0x2b,0x22,0x7e,0x24,0x0, 0x2, 0x2, 0x22, +0x71,0x7d,0x13,0x1a,0x2, 0x1a,0x0, 0x22,0xc2,0x2, 0xc2,0x3, 0xc2,0x4, 0x22,0xe5, +0x28,0x7e,0x71,0x29,0x2, 0x57,0x9, 0x9, 0xb3,0x6b,0x54,0xf5,0x28,0x9, 0xb3,0x6b, +0x55,0xf5,0x29,0x22,0x6c,0xaa,0x80,0x12,0x7e,0x70,0x9, 0xac,0x7a,0x9, 0xb3,0x6b, +0xd6,0xbe,0xb0,0x10,0x28,0x2, 0xd3,0x22,0xb, 0xa0,0x7e,0xb3,0x6c,0xf4,0xbc,0xba, +0x38,0xe6,0xc3,0x22,0x6d,0x55,0x80,0x29,0x7d,0xf5,0x3e,0xf4,0x7f,0x61,0x2d,0xdf, +0xb, 0x6a,0x40,0xbe,0x44,0x0, 0x64,0x28,0x16,0x2d,0xf1,0x7d,0xe0,0xb, 0x7a,0xd0, +0xbe,0xd4,0x0, 0x64,0x50,0x2, 0x80,0x4, 0xbd,0xd4,0x28,0x3, 0x1b,0x7a,0x40,0xb, +0x54,0xbe,0x55,0x28,0x40,0xd2,0x22,0x24,0x8a,0x78,0x19,0x7e,0xf, 0x78,0x39,0xa5, +0xbf,0x0, 0x8, 0x12,0x3f,0x7c,0x5e,0x70,0xfb,0x80,0x6, 0x12,0x3f,0x7c,0x4e,0x70, +0x4, 0x1b,0xa, 0x30,0x22,0xca,0x3b,0x6d,0x33,0x7a,0x37,0x4e,0x83,0x7e,0x8, 0x4a, +0x71,0x12,0x37,0xef,0x12,0x35,0x28,0x7e,0x34,0x1, 0x0, 0x12,0x7, 0x40,0x7a,0x37, +0x63,0xa, 0x7e,0x34,0x1, 0x1, 0x12,0x7, 0x40,0x7a,0x37,0x63,0xe, 0x7e,0x34,0x1, +0x2, 0x12,0x7, 0x40,0x7a,0x37,0x63,0x10,0x7e,0x34,0x1, 0x6, 0x12,0x7, 0x40,0x7a, +0x37,0x63,0xc, 0x7e,0x34,0x1, 0x0, 0x6d,0x22,0x12,0x6, 0x48,0x7e,0x34,0x1, 0x0, +0x6d,0x22,0x12,0x6, 0xc5,0x12,0x65,0x6, 0x12,0x6, 0x48,0x12,0x65,0x6, 0x12,0x6, +0xc5,0x12,0x64,0xfd,0x12,0x6, 0x48,0x12,0x64,0xfd,0x12,0x6, 0xc5,0x12,0x65,0x35, +0x12,0x6, 0x48,0x12,0x65,0x35,0x12,0x6, 0xc5,0x6d,0x33,0x12,0x7, 0x40,0x7a,0x37, +0x63,0x0, 0x7e,0x34,0x0, 0x1, 0x12,0x7, 0x40,0x7a,0x37,0x63,0x2, 0x7e,0x34,0x0, +0x2, 0x12,0x7, 0x40,0x7a,0x37,0x63,0x4, 0x7e,0x34,0x0, 0x8, 0x12,0x7, 0x40,0x7a, +0x37,0x63,0x6, 0x7e,0x34,0x0, 0x17,0x12,0x7, 0x40,0x7a,0x37,0x63,0x8, 0x12,0x64, +0xad,0x5e,0x50,0xe0,0x4e,0x50,0xa, 0x12,0x64,0xaa,0x5e,0x50,0xe0,0x4e,0x50,0xa, +0x12,0x6, 0xc5,0x12,0x65,0x28,0x12,0x6, 0x48,0x12,0x65,0x28,0x12,0x6, 0xc5,0x12, +0x65,0x42,0x12,0x6, 0x48,0x12,0x65,0x42,0x12,0x6, 0xc5,0x12,0x65,0xf, 0x12,0x6, +0x48,0x12,0x65,0xf, 0x12,0x6, 0xc5,0x12,0x65,0x1b,0x12,0x6, 0x48,0x12,0x65,0x1b, +0x12,0x6, 0xc5,0x12,0x64,0xb4,0x6d,0x66,0x80,0x30,0x12,0x64,0xa1,0x7e,0xb3,0x6e, +0xc1,0x70,0x12,0x12,0x64,0x76,0x60,0x5, 0x3e,0x14,0x14,0x78,0xfb,0x12,0x64,0x81, +0x12,0x64,0x8c,0x80,0x10,0x12,0x64,0x76,0x60,0x5, 0x3e,0x14,0x14,0x78,0xfb,0x12, +0x64,0x81,0x12,0x64,0x93,0x12,0x47,0xf5,0xb, 0x64,0x12,0x64,0x9a,0xbd,0x36,0x38, +0xc9,0x7e,0xb3,0x6e,0xb3,0x54,0x1, 0xb4,0x1, 0xb, 0x7e,0x37,0x62,0xb8,0x4e,0x70, +0x1, 0x7a,0x37,0x62,0xb8,0x12,0x36,0xc4,0x7e,0x34,0x4, 0xc, 0xca,0x39,0x7e,0x18, +0xc, 0x18,0x7e,0x8, 0x4a,0x71,0x12,0x24,0xf, 0x1b,0xfd,0x7e,0x34,0x0, 0x1, 0x41, +0x35,0x12,0x64,0xb4,0x7e,0x73,0x6e,0xb0,0xa, 0x27,0x7e,0x35,0x26,0xad,0x32,0x7d, +0x63,0x80,0x59,0x12,0x64,0xa1,0x7e,0x73,0x6e,0xad,0xa, 0x37,0xbe,0x35,0x26,0x28, +0x1e,0x7e,0xb3,0x6e,0xc1,0x70,0xc, 0x12,0x64,0x76,0x60,0x35,0x3e,0x14,0x14,0x78, +0xfb,0x80,0x2e,0x12,0x64,0x76,0x60,0x17,0x3e,0x14,0x14,0x78,0xfb,0x80,0x10,0x7e, +0xb3,0x6e,0xc1,0x70,0x12,0x12,0x64,0x76,0x60,0x5, 0x3e,0x14,0x14,0x78,0xfb,0x12, +0x64,0x81,0x12,0x64,0x93,0x80,0x10,0x12,0x64,0x76,0x60,0x5, 0x3e,0x14,0x14,0x78, +0xfb,0x12,0x64,0x81,0x12,0x64,0x8c,0x12,0x47,0xf5,0xb, 0x64,0x7e,0x25,0x26,0xb, +0x24,0x12,0x64,0x9a,0xad,0x32,0xbd,0x36,0x38,0x99,0x7e,0xb3,0x6e,0xb3,0x54,0x4, +0xb4,0x4, 0xb, 0x7e,0x37,0x62,0xb8,0x4e,0x70,0x4, 0x7a,0x37,0x62,0xb8,0x12,0x36, +0xc4,0x7e,0x34,0x4, 0xc, 0xca,0x39,0x12,0x64,0xc0,0x12,0x24,0xf, 0x1b,0xfd,0x12, +0x64,0xc9,0x12,0x64,0xd9,0x7a,0x35,0x26,0x7e,0x73,0x6e,0xaf,0xa, 0x37,0xbe,0x35, +0x26,0x28,0x2, 0x21,0x91,0x6d,0x33,0x41,0xe2,0x12,0x64,0xb4,0x7e,0x65,0x26,0x80, +0x59,0x12,0x64,0xa1,0x7e,0x37,0x6e,0xb5,0xbd,0x36,0x28,0x1e,0x7e,0xb3,0x6e,0xc1, +0x70,0xc, 0x12,0x64,0x76,0x60,0x35,0x3e,0x14,0x14,0x78,0xfb,0x80,0x2e,0x12,0x64, +0x76,0x60,0x17,0x3e,0x14,0x14,0x78,0xfb,0x80,0x10,0x7e,0xb3,0x6e,0xc1,0x70,0x12, +0x12,0x64,0x76,0x60,0x5, 0x3e,0x14,0x14,0x78,0xfb,0x12,0x64,0x81,0x12,0x64,0x93, +0x80,0x10,0x12,0x64,0x76,0x60,0x5, 0x3e,0x14,0x14,0x78,0xfb,0x12,0x64,0x81,0x12, +0x64,0x8c,0x12,0x47,0xf5,0x12,0x64,0x9a,0x2d,0x63,0x7e,0xa3,0x6e,0xb0,0x7e,0xb3, +0x6e,0xaf,0xa4,0xbd,0x56,0x38,0x9a,0x7e,0xb3,0x6e,0xb4,0x54,0x1, 0xb4,0x1, 0xb, +0x7e,0x37,0x62,0xdc,0x4e,0x70,0x1, 0x7a,0x37,0x62,0xdc,0x12,0x36,0xc4,0x7e,0x34, +0x4, 0xc, 0xca,0x39,0x12,0x64,0xc0,0x12,0x24,0xf, 0x1b,0xfd,0x12,0x64,0xc9,0x12, +0x64,0xd9,0x7a,0x35,0x26,0x12,0x64,0x9a,0xbe,0x35,0x26,0x28,0x2, 0x41,0x49,0x12, +0x64,0xb4,0x7e,0xb3,0x6e,0xb4,0x54,0x4, 0xb4,0x4, 0xb, 0x7e,0x37,0x62,0xdc,0x4e, +0x70,0x4, 0x7a,0x37,0x62,0xdc,0x12,0x36,0xc4,0x7e,0x34,0x4, 0xc, 0xca,0x39,0x12, +0x64,0xc0,0x12,0x24,0xf, 0x1b,0xfd,0x12,0x64,0xc9,0x12,0x5f,0xe4,0x6d,0x66,0x7d, +0x26,0x3e,0x24,0x49,0x32,0x4a,0x71,0xbe,0x34,0x2, 0x0, 0x28,0xf, 0x7d,0x12,0x2e, +0x14,0x4a,0x71,0x9e,0x34,0x2, 0x0, 0x1b,0x18,0x30,0x80,0x6, 0x6d,0x33,0x59,0x32, +0x4a,0x71,0xb, 0x64,0xbe,0x64,0x2, 0x6, 0x78,0xd5,0x7e,0x34,0x4a,0x71,0x7a,0x37, +0x4e,0x81,0xe4,0x7a,0xb3,0x76,0x8c,0x7a,0xb3,0x76,0x8b,0x12,0x64,0xad,0x12,0x64, +0xaa,0x12,0x6, 0xc5,0x7e,0x34,0x0, 0x1, 0x7e,0x27,0x63,0x2, 0x12,0x6, 0x48,0x7e, +0x34,0x0, 0x1, 0x7e,0x27,0x63,0x2, 0x12,0x6, 0xc5,0x7e,0x34,0x0, 0x2, 0x7e,0x27, +0x63,0x4, 0x12,0x6, 0x48,0x7e,0x34,0x0, 0x2, 0x7e,0x27,0x63,0x4, 0x12,0x6, 0xc5, +0x7e,0x34,0x0, 0x8, 0x7e,0x27,0x63,0x6, 0x12,0x6, 0x48,0x7e,0x34,0x0, 0x8, 0x7e, +0x27,0x63,0x6, 0x12,0x6, 0xc5,0x7e,0x34,0x0, 0x17,0x7e,0x27,0x63,0x8, 0x12,0x6, +0x48,0x7e,0x34,0x0, 0x17,0x7e,0x27,0x63,0x8, 0x12,0x6, 0xc5,0x12,0x64,0xf4,0x12, +0x6, 0x48,0x12,0x64,0xf4,0x12,0x6, 0xc5,0x12,0x64,0xeb,0x12,0x6, 0x48,0x12,0x64, +0xeb,0x12,0x6, 0xc5,0x12,0x64,0xe2,0x12,0x6, 0x48,0x12,0x64,0xe2,0x12,0x6, 0xc5, +0x7e,0x34,0x1, 0x6, 0x7e,0x27,0x63,0xc, 0x12,0x6, 0x48,0x7e,0x34,0x1, 0x6, 0x7e, +0x27,0x63,0xc, 0x12,0x6, 0xc5,0x6d,0x66,0x80,0x56,0x12,0x64,0xa1,0x7e,0x37,0x6e, +0xb5,0xbd,0x36,0x28,0x1e,0x7e,0xb3,0x6e,0xc1,0x70,0xc, 0x12,0x64,0x76,0x60,0x35, +0x3e,0x14,0x14,0x78,0xfb,0x80,0x2e,0x12,0x64,0x76,0x60,0x17,0x3e,0x14,0x14,0x78, +0xfb,0x80,0x10,0x7e,0xb3,0x6e,0xc1,0x70,0x12,0x12,0x64,0x76,0x60,0x5, 0x3e,0x14, +0x14,0x78,0xfb,0x12,0x64,0x81,0x12,0x64,0x93,0x80,0x10,0x12,0x64,0x76,0x60,0x5, +0x3e,0x14,0x14,0x78,0xfb,0x12,0x64,0x81,0x12,0x64,0x8c,0x12,0x47,0xf5,0xb, 0x64, +0x12,0x65,0xc3,0xbd,0x36,0x38,0xa3,0x7e,0x34,0x1, 0x16,0x7e,0x8, 0x62,0xb8,0x12, +0x47,0xd0,0x7e,0x34,0x1, 0x16,0x7e,0x8, 0x62,0xdc,0x12,0x47,0xd7,0x12,0x4f,0xe6, +0x12,0x65,0x51,0xda,0x3b,0x22,0x7d,0x57,0x5e,0x54,0x0, 0xf, 0x7e,0x14,0x0, 0x1, +0x22,0x7d,0x27,0x1e,0x24,0x1e,0x24,0x1e,0x24,0x1e,0x24,0x22,0x3e,0x24,0x2e,0x24, +0x62,0xb8,0x22,0x3e,0x24,0x2e,0x24,0x62,0xdc,0x22,0x7e,0x73,0x6e,0xb0,0xa, 0x37, +0x22,0x7d,0x36,0x3e,0x34,0x49,0x73,0x6e,0xc2,0x22,0x12,0x6, 0x48,0x6d,0x33,0x7e, +0x27,0x63,0x0, 0x22,0x7e,0x8, 0x62,0xb8,0x7e,0x34,0x0, 0x48,0xe4,0x2, 0x24,0x34, +0x7e,0x18,0xc, 0x18,0x7e,0x8, 0x63,0x12,0x22,0x7e,0x34,0x2, 0x6, 0x7a,0x35,0x28, +0x7e,0x8, 0x4a,0x71,0x7e,0x18,0x63,0x12,0x22,0x12,0x5f,0xe4,0x7e,0x35,0x26,0xb, +0x34,0x22,0x7e,0x34,0x1, 0x2, 0x7e,0x27,0x63,0x10,0x22,0x7e,0x34,0x1, 0x1, 0x7e, +0x27,0x63,0xe, 0x22,0x7e,0x34,0x1, 0x0, 0x7e,0x27,0x63,0xa, 0x22,0x7e,0x34,0x1, +0x2, 0x7e,0x24,0x3, 0x3c,0x22,0x7e,0x34,0x1, 0x1, 0x7e,0x24,0x7, 0x8, 0x22,0x7e, +0x34,0x0, 0x8, 0x7e,0x27,0x63,0x6, 0x4e,0x40,0x40,0x22,0x7e,0x34,0x0, 0x17,0x7e, +0x27,0x63,0x8, 0x5e,0x24,0xe0,0x3f,0x22,0x7e,0x34,0x0, 0x1, 0x7e,0x27,0x63,0x2, +0x5e,0x24,0x80,0x0, 0x22,0x7e,0x34,0x1, 0x6, 0x7e,0x27,0x63,0xc, 0x5e,0x24,0xfc, +0x0, 0x22,0x7e,0x34,0x0, 0x2, 0x7e,0x27,0x63,0x4, 0x5e,0x40,0x9c,0x4e,0x40,0x21, +0x22,0xca,0xd8,0xca,0x79,0x7c,0xf7,0x7c,0xeb,0xe4,0x12,0x35,0x28,0x6c,0xdd,0x7e, +0x70,0xb5,0xac,0x7d,0x2e,0x34,0x1, 0x0, 0x2e,0x34,0x0, 0x16,0x7a,0x35,0x28,0x12, +0x7, 0x40,0x7a,0x35,0x2a,0x7e,0x35,0x28,0x12,0x8, 0x0, 0x7a,0x35,0x2c,0x7e,0x25, +0x2a,0x5e,0x50,0xf8,0x7a,0x25,0x2a,0x5e,0x70,0xf8,0x7a,0x35,0x2c,0x7c,0xbe,0x54, +0x5, 0xa, 0x3b,0x4e,0x35,0x2a,0x7a,0x35,0x2a,0x7c,0xbf,0x54,0x5, 0xa, 0x3b,0x4e, +0x35,0x2c,0x7a,0x35,0x2c,0x7e,0x35,0x28,0x7e,0x25,0x2a,0x12,0x6, 0x48,0x7e,0x35, +0x28,0x7e,0x25,0x2c,0x12,0x6, 0xc5,0xb, 0xd0,0xbe,0xd0,0x3, 0x40,0xa1,0xda,0x79, +0xda,0xd8,0x22,0x7e,0x37,0x6e,0xb7,0x2e,0x37,0x6e,0xb5,0x22,0x7e,0x34,0x4, 0x71, +0xca,0x39,0x7e,0x34,0x1c,0x43,0x7e,0x24,0x0, 0xff,0x7e,0x8, 0x6e,0xad,0x12,0x24, +0xf, 0x1b,0xfd,0x12,0x65,0xc3,0x7a,0x37,0x73,0x21,0xe4,0x7a,0xb3,0x6e,0xb3,0x7a, +0xb3,0x6e,0xb4,0x90,0x21,0xd9,0x93,0x70,0x6, 0x7e,0x63,0x6e,0xb0,0x80,0x4, 0x7e, +0x63,0x6e,0xaf,0x7e,0x70,0x40,0xac,0x67,0x1b,0x34,0x7a,0x37,0x73,0x23,0x22,0x24, +0x52,0x68,0xa, 0x4, 0x78,0x29,0x6d,0x33,0x7a,0x37,0x4a,0x63,0x22,0x7e,0x63,0x6e, +0xaf,0x7e,0x73,0x6e,0xb0,0xac,0x76,0x3e,0x34,0x7a,0x37,0x4a,0x63,0x1e,0x34,0xa, +0x36,0x7a,0x73,0x76,0x98,0x7e,0x37,0x4a,0x63,0x1e,0x34,0x7a,0x73,0x76,0x99,0x22, +0x12,0x47,0xb6,0x7e,0x73,0x77,0xd8,0x7a,0x73,0x76,0x83,0x12,0x66,0x8f,0xe4,0x7a, +0xb3,0x6e,0x7d,0x7a,0xb3,0x6e,0x7c,0x2, 0x66,0x5a,0x7e,0x73,0x76,0x31,0x7a,0x73, +0x77,0xfa,0x22,0x12,0x66,0x88,0x12,0x66,0x6c,0x2, 0x66,0x5a,0x7e,0x8, 0x78,0x4, +0x2, 0x66,0x73,0xb, 0xa, 0x30,0xbe,0x37,0x77,0xd0,0x28,0x6, 0x9e,0x37,0x77,0xd0, +0x80,0x2, 0x6d,0x33,0x1b,0xa, 0x30,0x22,0x7e,0x8, 0x25,0xb1,0x2, 0x66,0x73,0x7e, +0x73,0x76,0x82,0x7a,0x73,0x73,0x1e,0x22,0x24,0x6f,0x68,0x12,0x14,0x68,0x14,0x14, +0x68,0x16,0x14,0x68,0x18,0xb, 0xb2,0x78,0x19,0x7e,0xb3,0x1, 0x8f,0x22,0x7e,0xb3, +0x1, 0x90,0x22,0x7e,0xb3,0x1, 0x91,0x22,0x7e,0xb3,0x1, 0x92,0x22,0x7e,0xb3,0x1, +0x93,0x22,0x74,0xfe,0x22,0x6d,0x33,0x7a,0x37,0x4a,0x63,0xd2,0x4, 0x12,0x36,0xe7, +0x12,0x33,0xfb,0xe5,0x1e,0x12,0x3b,0xdd,0x2, 0x47,0x1c,0x24,0xab,0x68,0x10,0x24, +0xef,0x68,0x1c,0x24,0xde,0x68,0x26,0x24,0xde,0x78,0x2f,0x74,0x5, 0x80,0x2d,0x7e, +0xb3,0x3, 0xff,0xb4,0x5, 0x2a,0x12,0x67,0x21,0x12,0xd2,0xaa,0x2, 0x67,0x61,0x7e, +0xb3,0x3, 0xff,0xb4,0x5, 0x1a,0x12,0x67,0x21,0x75,0xe9,0xff,0x22,0x7e,0xb3,0x3, +0xff,0xb4,0x5, 0xc, 0x12,0x67,0x21,0x2, 0x67,0x44,0x74,0x1, 0x7a,0xb3,0x3, 0xff, +0x22,0x7e,0x34,0x0, 0x1, 0x7d,0x23,0x80,0x12,0x7e,0x30,0x4, 0x80,0x5, 0x74,0xfa, +0x12,0xd3,0x1, 0x7c,0x23,0x1b,0x30,0xa5,0xba,0x0, 0xf3,0x7d,0x32,0x1b,0x24,0x4d, +0x33,0x78,0xe6,0x22,0x2, 0x67,0x47,0x75,0xe7,0x6b,0xe4,0x7e,0x34,0x1, 0x4, 0x7e, +0x24,0x0, 0xff,0x7a,0x1b,0xb0,0x7e,0x34,0x1, 0x5, 0x7a,0x1b,0xb0,0x75,0xe9,0xff, +0x22,0x2, 0x67,0x47,0x7c,0xa7,0x7c,0x3b,0xa5,0xbb,0x0, 0x7, 0x7c,0xba,0x12,0x70, +0x1b,0x80,0x25,0xbe,0x30,0xeb,0x68,0x4, 0xa5,0xbb,0xec,0x9, 0x7c,0xb3,0x7c,0x7a, +0x12,0x70,0x46,0x80,0x13,0xbe,0x30,0x80,0x40,0xe, 0xbe,0x30,0xef,0x38,0x9, 0x7c, +0xb3,0x24,0x80,0x7c,0x7a,0x12,0x70,0xa1,0xa5,0xbb,0xfc,0x5, 0x7c,0xba,0x2, 0x66, +0xdb,0x74,0x1, 0x7a,0xb3,0x3, 0xff,0x22,0x7c,0x6b,0x12,0x67,0xe8,0x78,0x5, 0x7c, +0xb6,0x2, 0x67,0x64,0xb4,0x4, 0x5, 0x7c,0xb6,0x2, 0x47,0xfe,0x22,0x30,0x90,0x19, +0xc2,0x90,0xe5,0x13,0x70,0x9, 0x75,0x13,0x1, 0xe5,0x91,0xf5,0x1a,0x80,0x11,0x7e, +0x71,0x91,0xe5,0x1a,0x12,0x67,0xa8,0x5, 0x1a,0x30,0x91,0xb, 0xc2,0x91,0x5, 0x1a, +0xe5,0x1a,0x12,0x70,0x82,0xf5,0x91,0x22,0x7e,0xb3,0x76,0x7c,0xc4,0x54,0x7, 0x22, +0x7e,0xa3,0x6e,0x7c,0xbe,0xa0,0x0, 0x38,0x3, 0x2, 0x68,0xa6,0x7e,0xb3,0x78,0x9, +0xbe,0xb0,0x32,0x40,0x2, 0x1, 0x88,0x4, 0x7a,0xb3,0x78,0x9, 0xbe,0xa0,0x2, 0x28, +0xe, 0x7e,0xb3,0x78,0x9, 0x4, 0x7a,0xb3,0x78,0x9, 0x4, 0x7a,0xb3,0x78,0x9, 0x7e, +0xb3,0x78,0x8, 0x70,0x25,0x7e,0x37,0x6d,0x6e,0x7a,0x37,0x78,0xa, 0x7e,0x37,0x6d, +0x70,0x7a,0x37,0x78,0xc, 0x74,0x1, 0x7a,0xb3,0x78,0x8, 0xe4,0x7a,0xb3,0x78,0x7, +0x7e,0xb3,0x6d,0x72,0x7a,0xb3,0x78,0xe, 0x80,0x44,0x7e,0x27,0x6d,0x70,0x7d,0x32, +0x9e,0x37,0x78,0xc, 0xbe,0x34,0x0, 0x0, 0x8, 0x6, 0x9e,0x27,0x78,0xc, 0x80,0x4, +0x6d,0x22,0x9d,0x23,0x7e,0x37,0x6d,0x6e,0x7d,0x13,0x9e,0x17,0x78,0xa, 0xbe,0x14, +0x0, 0x0, 0x8, 0x6, 0x9e,0x37,0x78,0xa, 0x80,0x4, 0x6d,0x33,0x9d,0x31,0x2d,0x32, +0xbe,0x34,0x0, 0x32,0x28,0x8, 0x80,0x0, 0x74,0x1, 0x7a,0xb3,0x78,0x7, 0x7e,0xb3, +0x78,0x7, 0xb4,0x1, 0x1e,0xbe,0xa0,0x1, 0x78,0x19,0x7e,0x73,0x6d,0x72,0xbe,0x73, +0x78,0xe, 0x68,0xf, 0x80,0x0, 0xe4,0x7a,0xb3,0x78,0x8, 0x7a,0xb3,0x78,0x7, 0x7a, +0xb3,0x78,0x9, 0x22,0x7e,0x73,0x6c,0xf3,0x7a,0x73,0x6c,0xf4,0x7e,0x73,0x6e,0x7c, +0x7a,0x73,0x6e,0x7d,0xe4,0x7a,0xb3,0x6e,0x80,0x7e,0x73,0x77,0xd8,0x7a,0x73,0x76, +0x35,0x7e,0x73,0x6e,0xa2,0x7a,0x73,0x5c,0xc3,0x22,0x7e,0xb3,0x78,0x6, 0x4, 0x7a, +0xb3,0x78,0x6, 0x7e,0x73,0x78,0x6, 0x7a,0x73,0x76,0x1b,0x22,0x7e,0x37,0x77,0xe9, +0xb, 0x34,0x7a,0x37,0x77,0xe9,0x7e,0x37,0x77,0xeb,0xbe,0x37,0x77,0xe9,0x28,0x3, +0x2, 0x69,0x7, 0x22,0x2, 0x68,0xec,0xe5,0x9a,0x60,0x5, 0xd2,0x9c,0xa9,0xd6,0xdf, +0x22,0xca,0x7b,0xca,0x6b,0xca,0x5b,0xca,0x4b,0xca,0x2b,0xca,0x1b,0xca,0xb, 0xc0, +0xd0,0xc0,0x83,0xc0,0x82,0xc2,0x8f,0x12,0x69,0x4, 0xd0,0x82,0xd0,0x83,0xd0,0xd0, +0xda,0xb, 0xda,0x1b,0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda,0x7b,0x32,0xe4, +0x12,0x6c,0x6d,0x12,0x6b,0xbc,0x12,0x69,0xf0,0x12,0x69,0xe5,0x12,0x6b,0xa5,0x7e, +0x34,0x0, 0x1c,0x12,0xc, 0x65,0x12,0x2c,0x6f,0x12,0x6b,0x95,0x12,0x6b,0x84,0x12, +0x6b,0x8f,0x12,0x6b,0x89,0x12,0x6b,0xb0,0x12,0x6c,0x8b,0x12,0x6a,0xad,0x12,0x6c, +0xce,0x12,0x69,0xc0,0x12,0x6b,0x2, 0xd2,0xaf,0x12,0x6a,0x2a,0x12,0x6a,0x6, 0x90, +0x1c,0x45,0xe4,0x93,0xca,0xb8,0x90,0x1c,0x46,0xe4,0x93,0x7c,0x7b,0x7e,0x24,0x1, +0x33,0xda,0xb8,0x2, 0x69,0x96,0xca,0x79,0x7c,0xf7,0x7c,0xeb,0x7c,0x7f,0x12,0xb, +0x7b,0xa9,0xd6,0xcb,0x5e,0xe0,0x3f,0x5e,0xf0,0x3f,0x7c,0x4e,0x6c,0x55,0xa, 0x3f, +0x2d,0x32,0x7e,0xf, 0x78,0x35,0x79,0x30,0x0, 0x32,0xa9,0xc6,0xcb,0xda,0x79,0x22, +0x2, 0x69,0xc3,0xd2,0x0, 0x12,0x4d,0x5e,0xa9,0xd0,0xcb,0xa9,0xc6,0xca,0x12,0x6b, +0xc9,0xa9,0xd3,0x9e,0xa9,0xc3,0xb9,0xc2,0x8a,0xd2,0xaa,0x2, 0x69,0xde,0xa9,0xd0, +0x9e,0xa9,0xd7,0x9e,0x22,0xc2,0x8d,0xc2,0x8f,0x12,0x6a,0xfa,0xa9,0xc0,0x93,0x22, +0x75,0xec,0xff,0x75,0xee,0xff,0x75,0xeb,0x23,0x75,0xac,0xc0,0x12,0x6c,0x7b,0xa9, +0xd5,0xad,0xa9,0xc5,0xed,0x22,0x7e,0x8, 0x6b,0x34,0x12,0x6a,0x5f,0x7e,0x34,0x0, +0x20,0x7a,0x35,0x26,0x7e,0x18,0x0, 0x20,0x12,0x6a,0x69,0x2, 0x6a,0x1e,0xa9,0xc5, +0xca,0xa9,0xc7,0x94,0xe4,0x7a,0xb3,0x78,0x43,0x22,0x6c,0x77,0xa9,0xc7,0xb3,0xa9, +0xc6,0xb3,0xd2,0xc8,0x43,0xed,0xf, 0xc2,0xea,0xb, 0x70,0xbe,0x70,0x3, 0x28,0x3, +0x7e,0x70,0x3, 0xa, 0x57,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x2e,0x54,0x0, +0x3, 0xf5,0xb3,0xa9,0xd1,0xb4,0xa9,0xc0,0xb4,0x12,0x6a,0x5f,0x2, 0x6a,0x1e,0xa9, +0xd7,0x94,0x74,0xa5,0x7a,0xb3,0x78,0x43,0x22,0x12,0x6a,0x77,0x7e,0x35,0x26,0x12, +0x6c,0xb2,0xa9,0xd2,0xb4,0xd3,0x22,0x7d,0x52,0xf5,0x2a,0x7c,0xb6,0x7c,0xa5,0xa, +0x44,0xf5,0x29,0x7f,0x21,0xf5,0x28,0xa9,0xc2,0xb4,0x74,0xb, 0x12,0x6a,0xa2,0xe5, +0x2a,0x12,0x6a,0xa2,0xe5,0x29,0x12,0x6a,0xa2,0xe5,0x28,0x12,0x6a,0xa2,0xe4,0x2, +0x6a,0xa2,0xf5,0xb5,0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0xd3,0x22,0xe4,0x7a,0xb3, +0x76,0x7c,0x7e,0x8, 0x28,0x3b,0x12,0x6b,0x9c,0x7e,0x8, 0x28,0x79,0x7e,0x34,0x0, +0x3e,0x12,0x24,0x34,0x7e,0x18,0x28,0x3b,0x7a,0x1f,0x28,0xe0,0x12,0x6a,0xdf,0x2, +0x6a,0xd2,0x75,0x13,0x0, 0x75,0x1a,0x0, 0x7e,0xb3,0x76,0x7c,0xf5,0x91,0x22,0x2, +0x6a,0xe2,0xc2,0x92,0x12,0x6a,0xfa,0x90,0x1b,0xd8,0xe4,0x93,0x54,0xfe,0xf5,0x92, +0xd2,0xe8,0xc2,0xc0,0xa9,0xd4,0x95,0xd2,0xad,0x22,0x75,0x91,0x0, 0xc2,0x90,0xc2, +0x91,0x22,0xa9,0xd2,0xea,0xa9,0xc2,0xea,0x6d,0x33,0x7e,0xf, 0x78,0x39,0x79,0x30, +0x0, 0x10,0x12,0x4c,0xff,0x4e,0x34,0xdc,0xe, 0x1b,0xa, 0x30,0x7e,0x34,0x1, 0xc2, +0x7e,0xf, 0x78,0x39,0x79,0x30,0x0, 0x1e,0x7e,0xf, 0x78,0x39,0x12,0x3f,0x7c,0x4e, +0x70,0x10,0x1b,0xa, 0x30,0x12,0x6c,0x9b,0x12,0xb, 0xe5,0x7e,0x34,0xff,0xff,0x7e, +0xf, 0x78,0x39,0x79,0x30,0x0, 0x2, 0x6d,0x33,0x7e,0xf, 0x78,0x39,0x79,0x30,0x0, +0x14,0x12,0x6b,0x7b,0x7e,0x34,0xf0,0x4f,0x12,0x6b,0x7b,0xd2,0x4, 0x12,0x37,0xba, +0x53,0xc3,0xf8,0x75,0xc3,0x85,0x53,0xc2,0xfc,0x43,0xc2,0x81,0xd2,0xac,0x2, 0x6b, +0x71,0x90,0x21,0x50,0xe4,0x93,0x7a,0xb3,0x77,0xd9,0x22,0x7e,0xf, 0x78,0x39,0x79, +0x30,0x0, 0x4, 0x22,0xc2,0x88,0xd2,0xa8,0x22,0xa9,0xd5,0xcd,0xd2,0x99,0x22,0xa9, +0xd6,0xcd,0xd2,0x98,0x22,0xa9,0xd0,0x99,0xa9,0xc6,0xdf,0x22,0x7e,0x34,0x0, 0x3e, +0x74,0xff,0x2, 0x24,0x34,0xa9,0xc3,0xcb,0xc2,0xcd,0xc2,0xcc,0xa9,0xd6,0xea,0x22, +0x75,0x9a,0x2f,0xa9,0xd1,0x99,0xd2,0x9c,0xa9,0xd6,0xdf,0x22,0xa9,0xc5,0xcb,0xa9, +0xd1,0xcb,0xa9,0xd2,0xca,0xa9,0xd2,0xcb,0x22,0xa9,0xd0,0x9e,0xa9,0xd4,0x9e,0x75, +0x9d,0x0, 0x75,0x9c,0x20,0x22,0xca,0xb8,0xca,0x39,0x12,0x6b,0xc9,0x12,0x69,0xde, +0x7e,0x37,0x77,0xd0,0xb, 0x34,0x7a,0x37,0x77,0xd0,0x7e,0x37,0x77,0xe2,0xb, 0x34, +0x7a,0x37,0x77,0xe2,0x7e,0xb3,0x76,0x31,0xb4,0x1, 0x40,0x7e,0xb3,0x77,0xe4,0x4, +0x7a,0xb3,0x77,0xe4,0x7e,0x73,0x77,0xe4,0xbe,0x70,0xa, 0x28,0x2e,0xe4,0x7a,0xb3, +0x77,0xe4,0x7e,0x73,0x77,0xdb,0xbe,0x73,0x78,0x6, 0x78,0x8, 0x7e,0x37,0x77,0xd2, +0xb, 0x34,0x80,0xa, 0x7e,0x73,0x78,0x6, 0x7a,0x73,0x77,0xdb,0x6d,0x33,0x7a,0x37, +0x77,0xd2,0xbe,0x34,0x0, 0xfa,0x28,0x3, 0x75,0xe9,0xff,0x7e,0xb3,0x77,0xd4,0x60, +0x5, 0x14,0x7a,0xb3,0x77,0xd4,0x7e,0xb3,0x77,0xd4,0x70,0x2, 0xd2,0x14,0x7e,0x37, +0x29,0xfd,0xb, 0x34,0x7a,0x37,0x29,0xfd,0x7e,0x37,0x77,0xde,0xbe,0x34,0x0, 0x0, +0x28,0x6, 0x1b,0x34,0x7a,0x37,0x77,0xde,0xda,0x39,0xda,0xb8,0x32,0xa9,0xc5,0xca, +0xbe,0xb0,0x8, 0x50,0x2, 0xf5,0xcc,0x75,0xe6,0x0, 0x22,0xa9,0xc5,0xca,0x75,0xed, +0x8f,0x75,0xad,0xb0,0xa9,0xc7,0x94,0xa9,0xd4,0x94,0x22,0xc2,0x8e,0x43,0x89,0x20, +0x75,0x8d,0x1, 0x75,0x8b,0x0, 0xd2,0x8e,0xd2,0xab,0x22,0x6d,0x33,0x7e,0xf, 0x78, +0x39,0x79,0x30,0x0, 0x16,0x7e,0x34,0x1, 0x2c,0x7e,0xf, 0x78,0x39,0x79,0x30,0x0, +0x18,0x22,0x6d,0x22,0x80,0x13,0x75,0xb5,0x0, 0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3, +0xe5,0xb5,0x7a,0xb, 0xb0,0xb, 0x14,0xb, 0x24,0xbd,0x32,0x38,0xe9,0x22,0x75,0xb7, +0x0, 0x75,0xb8,0x0, 0x75,0xf7,0x0, 0x75,0xf8,0x0, 0xa9,0xd0,0xb7,0xd2,0xb8,0xa9, +0xd5,0xb7,0xd2,0xbd,0xa9,0xd0,0xf7,0xd2,0xf8,0xa9,0xd4,0xb7,0xc2,0xbc,0xa9,0xc2, +0xb7,0xc2,0xba,0xa9,0xc1,0xb7,0xc2,0xb9,0xa9,0xc3,0xb7,0xc2,0xbb,0x22,0x7e,0xa3, +0x27,0x72,0x7e,0x70,0x4, 0xac,0x7a,0xb, 0x34,0xbe,0x37,0x76,0xd8,0x40,0x39,0x7e, +0x37,0x76,0xd8,0xb, 0x34,0x7a,0x37,0x76,0xd8,0xbe,0x34,0x0, 0x1, 0x78,0x5, 0x7e, +0xb3,0x76,0x5d,0x22,0xbe,0x34,0x0, 0x2, 0x78,0x3, 0x7c,0xba,0x22,0xbe,0x34,0x0, +0x2, 0x50,0x9, 0x7d,0x23,0x1b,0x25,0x9, 0xb2,0x78,0x28,0x22,0x9e,0x34,0x0, 0x3, +0x2e,0x37,0x25,0xb3,0x7e,0x39,0xb0,0x22,0x74,0xff,0x22,0x7c,0x2b,0xa5,0xba,0xfa, +0x5, 0x7e,0xb3,0x4a,0x66,0x22,0xa5,0xba,0x0, 0x5, 0x7e,0xb3,0x76,0x7c,0x22,0xbe, +0x20,0x3, 0x38,0x13,0x30,0x20,0x6, 0x7e,0x18,0x28,0x3b,0x80,0x4, 0x7e,0x18,0x28, +0x79,0x7a,0x1f,0x28,0xe0,0x80,0x5, 0xbe,0x20,0x6e,0x38,0xe, 0xa, 0x2, 0x7e,0x1f, +0x28,0xe0,0x2d,0x30,0x1b,0x34,0x7e,0x1b,0xb0,0x22,0xbe,0x20,0xd3,0x68,0x4, 0xa5, +0xba,0xd4,0x11,0xa5,0xba,0xd3,0x8, 0x6d,0x33,0x7a,0x37,0x76,0xd8,0x80,0x2, 0x15, +0x1a,0x2, 0x6c,0xfe,0xa5,0xba,0xf6,0xc, 0x7e,0x34,0x1b,0xd6,0x7e,0x24,0x0, 0xff, +0xb, 0x1a,0x50,0x22,0xa5,0xba,0xf7,0xa, 0x7e,0x34,0x1b,0xd6,0x12,0x29,0xdb,0xa, +0x56,0x22,0xbe,0x20,0xf8,0x68,0x4, 0xa5,0xba,0xf9,0x1d,0xa5,0xba,0xf8,0x8, 0x6d, +0x33,0x7a,0x37,0x76,0xd8,0x80,0x2, 0x15,0x1a,0x7e,0x37,0x76,0xd8,0x7d,0x23,0xb, +0x24,0x7a,0x27,0x76,0xd8,0x2, 0x6e,0x57,0xbe,0x20,0xeb,0x68,0x4, 0xa5,0xba,0xec, +0x5, 0x7c,0xb2,0x2, 0x6f,0x9b,0xbe,0x20,0x99,0x68,0x4, 0xa5,0xba,0x9a,0x2a,0x7e, +0xb3,0x76,0x1a,0x7c,0xab,0xbe,0xa0,0x20,0x40,0xd, 0xbe,0xa0,0x40,0x50,0x8, 0xa, +0x3a,0x9, 0x33,0x6b,0x14,0x80,0x3, 0x12,0x6f,0xe6,0x4, 0x7a,0xb3,0x76,0x1a,0xa5, +0xba,0x9a,0x3, 0x75,0x1a,0x99,0x7c,0xb3,0x22,0xbe,0x20,0x80,0x40,0xc, 0xbe,0x20, +0xef,0x38,0x7, 0xa, 0x32,0x9, 0xb3,0x75,0x8a,0x22,0xa5,0xba,0xfc,0x5, 0x7e,0xb3, +0x76,0x31,0x22,0xa5,0xba,0xfe,0xd, 0x7e,0x23,0x77,0xe1,0x74,0x27,0xac,0xb2,0x9, +0xb5,0x28,0xe7,0x22,0x74,0xff,0x22,0x7e,0x24,0xe, 0x6, 0x2d,0x32,0x2, 0x6e,0x6a, +0x7c,0xb7,0x54,0x7, 0xa, 0x3b,0x2e,0x34,0x0, 0xf5,0x7a,0x71,0x82,0x7a,0x61,0x83, +0xe4,0x93,0x22,0x74,0x1, 0x7a,0xb3,0x78,0x42,0x7e,0xb3,0x76,0x5a,0xb4,0x1, 0x6, +0xe4,0x7a,0xb3,0x78,0x42,0x22,0x7e,0xb4,0x21,0x53,0x7d,0x3b,0x12,0x6e,0x6a,0x7c, +0x7b,0x1e,0x70,0x7a,0x73,0x6e,0x8a,0x7e,0xa4,0x0, 0x96,0x7a,0xa7,0x6e,0x8b,0x12, +0x6f,0xc4,0x12,0xda,0xdf,0x7e,0xa3,0x6c,0xde,0xbe,0xa0,0x0, 0x38,0x2, 0xe1,0x41, +0xbe,0xa0,0x8, 0x28,0x1f,0x7e,0x37,0x6c,0xe4,0xbe,0x34,0x1, 0x90,0x58,0x15,0x7d, +0x3b,0x12,0x6e,0x6a,0x1e,0xb0,0xa, 0x3b,0x7d,0x2a,0x7e,0x14,0x0, 0x8c,0x7e,0x4, +0x0, 0x82,0x80,0x66,0xbe,0xa0,0x6, 0x28,0x1b,0x7e,0x37,0x6c,0xe4,0xbe,0x34,0x1, +0xf4,0x58,0x11,0x7d,0x3b,0x12,0x6e,0x6a,0xa, 0x3b,0x7e,0x24,0x0, 0xa0,0x7d,0x1a, +0x7d,0xa, 0x80,0x46,0xbe,0xa0,0x4, 0x28,0x1f,0x7e,0xa7,0x6c,0xe4,0xbe,0xa4,0x2, +0x58,0x58,0x15,0x7d,0x3b,0x12,0x6e,0x6a,0xa, 0x3b,0x7e,0x24,0x0, 0xb4,0x7e,0x14, +0x0, 0xaa,0x7e,0x4, 0x0, 0xc8,0x80,0x22,0xbe,0xa0,0x2, 0x28,0x24,0x7e,0xa7,0x6c, +0xe4,0xbe,0xa4,0x3, 0x20,0x58,0x1a,0x7d,0x3b,0x12,0x6e,0x6a,0xa, 0x3b,0x7e,0x24, +0x0, 0xdc,0x7e,0x14,0x0, 0xd2,0x7e,0x4, 0x0, 0xe6,0x12,0x6f,0x7c,0x80,0x7, 0x80, +0x0, 0xe4,0x7a,0xb3,0x78,0x42,0x7e,0xb3,0x78,0x42,0x70,0x27,0x90,0x21,0x53,0xe4, +0x93,0xa, 0x3b,0x7e,0x14,0x21,0x5b,0x12,0x6f,0xd1,0x7e,0x14,0x21,0x5d,0x7e,0x4, +0x0, 0xff,0xb, 0xa, 0x10,0x7e,0x54,0x21,0x67,0x7e,0x44,0x0, 0xff,0xb, 0x2a,0x0, +0x2, 0x6f,0x7c,0xd2,0x23,0x22,0x12,0x6f,0xd9,0x2, 0x6e,0x73,0x7a,0x73,0x6e,0x8a, +0x7a,0x27,0x6e,0x8b,0x7a,0x17,0x6e,0x8d,0x7a,0x7, 0x6e,0x97,0x6d,0x33,0x9d,0x30, +0x12,0x2f,0xa6,0x12,0x2b,0x6f,0x7a,0x73,0x76,0xb, 0x22,0xb4,0xeb,0x3, 0x75,0x1b, +0x0, 0xe5,0x1b,0xa, 0x3b,0x2e,0x34,0x0, 0x16,0x12,0x6e,0x6a,0x7c,0xab,0x5, 0x1b, +0xe5,0x1b,0xb4,0x3, 0x9, 0x75,0x1b,0x0, 0x6d,0x33,0x7a,0x37,0x76,0xda,0x75,0x1a, +0xeb,0x7c,0xba,0x22,0x7e,0x34,0x0, 0x8c,0x7a,0x37,0x6e,0x8d,0x22,0x7e,0x14,0x21, +0xec,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0x20,0x22,0x7e,0x8, 0x78,0x42,0x7e,0x34,0x0, +0x1, 0x74,0xff,0x2, 0x24,0x34,0x7e,0x24,0x1b,0xd8,0xa, 0x3b,0x2d,0x32,0x6d,0x22, +0x2e,0x24,0x0, 0xff,0x7e,0x1b,0x30,0x22,0xca,0x2b,0xca,0x1b,0xca,0xb, 0xc0,0x83, +0xc0,0x82,0x12,0x67,0xbd,0xd0,0x82,0xd0,0x83,0xda,0xb, 0xda,0x1b,0xda,0x2b,0x32, +0x12,0x70,0x17,0x75,0x13,0x0, 0x32,0xa9,0xc0,0x93,0x22,0x7a,0xb3,0x76,0x7c,0xc4, +0x54,0x7, 0xbe,0xb0,0x4, 0x68,0x3, 0xb4,0x2, 0x4, 0x74,0x3, 0x80,0x7, 0x60,0x3, +0xb4,0x1, 0x7, 0x74,0x1, 0x7a,0xb3,0x76,0x31,0x22,0x74,0x1, 0x7a,0xb3,0x76,0x31, +0xe4,0x7a,0xb3,0x76,0x7c,0x22,0xbe,0xb0,0xeb,0x68,0x3, 0xb4,0xec,0x33,0x7e,0x27, +0x76,0xda,0x4d,0x22,0x78,0xe, 0xa5,0xbf,0xaa,0xa, 0x7e,0x24,0x0, 0x1, 0x7a,0x27, +0x76,0xda,0x15,0x1a,0x7e,0x27,0x76,0xda,0xbe,0x24,0x0, 0x1, 0x78,0x10,0xa5,0xbf, +0x9, 0x6, 0x7e,0x34,0x0, 0x2, 0x80,0x2, 0x6d,0x33,0x7a,0x37,0x76,0xda,0x75,0x1a, +0xea,0x22,0x7c,0x7b,0x6c,0xaa,0x12,0x67,0xe8,0x78,0x9, 0x7c,0xb7,0x12,0x6d,0x4b, +0x7c,0xab,0x80,0xa, 0xb4,0x4, 0x7, 0x7c,0xb7,0x12,0x39,0x27,0x7c,0xab,0x7c,0xba, +0x22,0x7c,0x6b,0x2e,0x60,0xdd,0x68,0x29,0x2e,0x60,0xfd,0x68,0x24,0x1b,0x61,0x68, +0x20,0x2e,0x60,0xfa,0x68,0x1b,0x1b,0x60,0x68,0x17,0x80,0x0, 0xa, 0x2b,0x19,0x72, +0x76,0xa, 0xd2,0x23,0x7a,0xb3,0x76,0x8, 0xb4,0x25,0x6, 0xd2,0x24,0x7a,0x73,0x76, +0x7, 0x22,0x7e,0x18,0x6e,0x22,0x6c,0x33,0x80,0x7e,0x7e,0x10,0x9, 0xac,0x13,0x9, +0x20,0x6d,0x72,0x90,0x21,0x51,0xe4,0x93,0xbc,0xb2,0x28,0x6a,0x7c,0xa2,0x5e,0xa0, +0xf, 0x74,0x9, 0xa4,0x2d,0x53,0x7d,0x42,0x7e,0x2b,0xa0,0x49,0x40,0x6d,0x70,0xbe, +0x44,0x0, 0x40,0x38,0x4c,0x49,0x40,0x6d,0x6e,0xbe,0x44,0x0, 0x0, 0x40,0x42,0x7e, +0xf4,0x21,0xde,0x12,0x9f,0x81,0xbd,0x40,0x38,0x37,0x4c,0xaa,0x78,0x38,0x7e,0xb3, +0x28,0xdf,0x70,0x32,0x7e,0xb3,0x6e,0x7c,0xb4,0x1, 0x2b,0x74,0x1, 0x7a,0xb3,0x28, +0xdf,0x7e,0x90,0x3, 0x7e,0x10,0x9, 0xac,0x12,0x7f,0x71,0x2d,0xf0,0x7a,0x7b,0x90, +0x74,0x3, 0x7f,0x71,0x2d,0xf0,0x39,0xb7,0x0, 0x1, 0xe4,0x7a,0xb3,0x25,0xae,0x80, +0x5, 0xe4,0x7a,0xb3,0x28,0xdf,0xb, 0x30,0x7e,0xb3,0x6e,0x89,0xbc,0xb3,0x28,0x2, +0x1, 0xda,0x7e,0xb3,0x6e,0x7c,0x70,0xa, 0x12,0x71,0x73,0x28,0x5, 0xe4,0x7a,0xb3, +0x28,0xdf,0x22,0x7e,0x73,0x6e,0x7d,0xbe,0x70,0x0, 0x22,0x74,0x1, 0x7a,0xb3,0x6d, +0x13,0x7e,0xb3,0x6c,0xff,0xb4,0x1, 0x5, 0xe4,0x7a,0xb3,0x6d,0x13,0x12,0x71,0x73, +0x28,0x5, 0xe4,0x7a,0xb3,0x6d,0x13,0x7e,0xb3,0x25,0xae,0x70,0x5, 0xe4,0x7a,0xb3, +0x6d,0x13,0x7e,0xb3,0x78,0x20,0xb4,0x1, 0x5, 0xe4,0x7a,0xb3,0x6d,0x13,0x7e,0x34, +0x22,0x32,0x12,0x29,0xdb,0xbe,0x37,0x75,0x2, 0x50,0x5, 0xe4,0x7a,0xb3,0x6d,0x13, +0x7e,0xb3,0x76,0x5a,0x70,0xa, 0x12,0xbe,0x39,0x28,0x5, 0xe4,0x7a,0xb3,0x6d,0x13, +0x7e,0xb3,0x76,0x2f,0xb4,0x1, 0x17,0x7e,0x73,0x29,0xfc,0xbe,0x70,0x3c,0x50,0xe, +0xbe,0x70,0x0, 0x28,0x9, 0xe5,0x1e,0x60,0x5, 0xe4,0x7a,0xb3,0x6d,0x13,0x22,0x12, +0x71,0x7b,0x12,0x73,0x24,0x12,0x73,0xff,0x2, 0x71,0xfb,0x7e,0xb3,0x6d,0xd, 0xb4, +0x1, 0x18,0x12,0x73,0xf5,0xbe,0x73,0x78,0x18,0x28,0xc, 0xe4,0x7a,0xb3,0x6d,0xd, +0x7e,0xb3,0x78,0x18,0x4, 0x80,0x4, 0xe4,0x80,0x1, 0xe4,0x7a,0xb3,0x78,0x18,0x7e, +0xb3,0x6d,0xd, 0x70,0x53,0x12,0x73,0x1d,0x78,0x15,0x7e,0xb3,0x6d,0xe, 0xb4,0x1, +0x7, 0x7e,0xb3,0x78,0x1a,0x4, 0x80,0x1, 0xe4,0x7a,0xb3,0x78,0x1a,0x80,0x18,0xbe, +0xa0,0x1, 0x78,0x13,0x7e,0xb3,0x6d,0xf, 0xb4,0x1, 0x7, 0x7e,0xb3,0x78,0x1b,0x4, +0x80,0x1, 0xe4,0x7a,0xb3,0x78,0x1b,0x7e,0x73,0x78,0x1a,0xbe,0x70,0x3, 0x50,0x9, +0x7e,0x73,0x78,0x1b,0xbe,0x70,0x3, 0x40,0xf, 0x74,0x1, 0x7a,0xb3,0x6d,0xd, 0xe4, +0x7a,0xb3,0x78,0x1a,0x7a,0xb3,0x78,0x1b,0x7e,0xb3,0x6d,0x10,0xb4,0x1, 0x18,0x12, +0x73,0xf5,0xbe,0x73,0x78,0x19,0x28,0xc, 0xe4,0x7a,0xb3,0x6d,0x10,0x7e,0xb3,0x78, +0x19,0x4, 0x80,0x4, 0xe4,0x80,0x1, 0xe4,0x7a,0xb3,0x78,0x19,0x7e,0xb3,0x6d,0x10, +0x70,0x53,0x12,0x73,0x1d,0x78,0x15,0x7e,0xb3,0x6d,0x11,0xb4,0x1, 0x7, 0x7e,0xb3, +0x78,0x1c,0x4, 0x80,0x1, 0xe4,0x7a,0xb3,0x78,0x1c,0x80,0x18,0xbe,0xa0,0x1, 0x78, +0x13,0x7e,0xb3,0x6d,0x12,0xb4,0x1, 0x7, 0x7e,0xb3,0x78,0x1d,0x4, 0x80,0x1, 0xe4, +0x7a,0xb3,0x78,0x1d,0x7e,0x73,0x78,0x1c,0xbe,0x70,0x3, 0x50,0x9, 0x7e,0x73,0x78, +0x1d,0xbe,0x70,0x3, 0x40,0xf, 0x74,0x1, 0x7a,0xb3,0x6d,0x10,0xe4,0x7a,0xb3,0x78, +0x1c,0x7a,0xb3,0x78,0x1d,0x7e,0xb3,0x6d,0x13,0xb4,0x1, 0x1a,0x7e,0x73,0x6c,0xfd, +0xbe,0x73,0x78,0x1e,0x28,0xc, 0xe4,0x7a,0xb3,0x6d,0x13,0x7e,0xb3,0x78,0x1e,0x4, +0x80,0x6, 0x74,0x1, 0x80,0x2, 0x74,0x1, 0x7a,0xb3,0x78,0x1e,0x22,0x7e,0xa3,0x25, +0xaf,0x4c,0xaa,0x22,0xd2,0x0, 0xe4,0x7a,0xb3,0x6d,0xd, 0x7a,0xb3,0x6d,0x10,0x7e, +0xb3,0x6d,0x0, 0xb4,0x1, 0x6, 0x74,0x1, 0x7a,0xb3,0x6d,0xd, 0x12,0x73,0x1d,0x78, +0x14,0xe4,0x7a,0xb3,0x6d,0xe, 0x7e,0xb3,0x6d,0x1, 0xb4,0x1, 0x1f,0x74,0x1, 0x7a, +0xb3,0x6d,0xe, 0x80,0x17,0xbe,0xa0,0x1, 0x78,0x12,0xe4,0x7a,0xb3,0x6d,0xf, 0x7e, +0xb3,0x6d,0x2, 0xb4,0x1, 0x6, 0x74,0x1, 0x7a,0xb3,0x6d,0xf, 0x7e,0xb3,0x6d,0x3, +0xb4,0x1, 0x6, 0x74,0x1, 0x7a,0xb3,0x6d,0x10,0x4c,0xaa,0x78,0x14,0xe4,0x7a,0xb3, +0x6d,0x11,0x7e,0xb3,0x6d,0x4, 0xb4,0x1, 0x1f,0x74,0x1, 0x7a,0xb3,0x6d,0x11,0x80, +0x17,0xbe,0xa0,0x1, 0x78,0x12,0xe4,0x7a,0xb3,0x6d,0x12,0x7e,0xb3,0x6d,0x5, 0xb4, +0x1, 0x6, 0x74,0x1, 0x7a,0xb3,0x6d,0x12,0x7e,0xb3,0x6d,0x9, 0x70,0x3, 0x12,0x73, +0xe9,0x7e,0xb3,0x25,0xae,0x70,0x3, 0x12,0x73,0xe9,0x7e,0xb3,0x6d,0xb, 0xb4,0x1, +0x3, 0x12,0x73,0xe9,0x7e,0x34,0x22,0x32,0x12,0x29,0xdb,0xbe,0x37,0x75,0x2, 0x50, +0x3, 0x12,0x73,0xe9,0x20,0x0, 0x11,0xe4,0x7a,0xb3,0x6d,0xe, 0x7a,0xb3,0x6d,0xf, +0x7a,0xb3,0x6d,0x11,0x7a,0xb3,0x6d,0x12,0x22,0xe4,0x7a,0xb3,0x6d,0xd, 0x7a,0xb3, +0x6d,0x10,0xc2,0x0, 0x22,0xe4,0x7a,0xb3,0x6d,0x13,0x7e,0x73,0x6c,0xfe,0x22,0x7e, +0x47,0x6c,0xe8,0x7e,0x7, 0x6e,0x8f,0x7e,0x34,0x0, 0x6, 0xad,0x30,0x7e,0x14,0x0, +0x4, 0x12,0x74,0xa0,0x8, 0x5, 0x7e,0xa0,0x4, 0x80,0x1d,0x7d,0x30,0x3e,0x34,0x12, +0x74,0x9e,0x8, 0x5, 0x7e,0xa0,0x3, 0x80,0xf, 0x7d,0x30,0x12,0x74,0x9e,0x8, 0x5, +0x7e,0xa0,0x2, 0x80,0x3, 0x7e,0xa0,0x1, 0x7e,0xb3,0x6d,0xa, 0x60,0x3, 0x7e,0xa0, +0x4, 0x12,0xc6,0x43,0x60,0x3, 0x7e,0xa0,0x1, 0xa, 0x2a,0x7e,0x14,0x22,0x9, 0x12, +0x9f,0x30,0xad,0x32,0x12,0x88,0xd7,0x7e,0xb3,0x6c,0xde,0xbe,0xb0,0x0, 0x28,0x28, +0x7e,0xb3,0x6c,0xff,0x70,0x22,0x7e,0x37,0x6c,0xfb,0xbe,0x34,0x0, 0x2, 0x48,0x9, +0x12,0x5f,0x9a,0x7a,0x37,0x6c,0xfb,0x80,0xf, 0x7e,0x63,0x6c,0xfd,0x7e,0x70,0x2, +0xac,0x67,0x7c,0xb7,0x7a,0xb3,0x6c,0xfd,0x7e,0xb3,0x76,0x2f,0xb4,0x1, 0xe, 0x7e, +0x27,0x6c,0xfb,0x7e,0x34,0x0, 0x5, 0xad,0x32,0x7a,0x37,0x6c,0xfb,0x22,0x3e,0x34, +0x7d,0x21,0x12,0x22,0x71,0xbd,0x34,0x22,0xca,0xf8,0x12,0x75,0x2d,0x12,0x71,0xef, +0x12,0x75,0x1b,0x40,0x5, 0xe4,0x7a,0xb3,0x6d,0xd, 0x7e,0xb3,0x6d,0xd, 0x60,0xb, +0xe4,0x7a,0xb3,0x78,0x18,0x74,0x1f,0x7a,0xb3,0x73,0x20,0x12,0x75,0x1b,0x40,0x6, +0x12,0x76,0xa1,0x12,0xdc,0x23,0x7e,0xb3,0x6d,0x10,0x60,0x6, 0x74,0x2, 0x7a,0xb3, +0x78,0x1f,0x7e,0xf3,0x78,0x1f,0xbe,0xf0,0x0, 0x28,0x23,0xe5,0x1e,0xb4,0x1, 0x14, +0x7e,0xb3,0x76,0x2f,0xb4,0x1, 0xd, 0x7e,0xb3,0x29,0xfc,0xbe,0xb0,0x3c,0x68,0x4, +0x70,0xc, 0x80,0x0, 0x7c,0xbf,0x14,0x7a,0xb3,0x78,0x1f,0x12,0xda,0x51,0x7e,0xb3, +0x6d,0x13,0x60,0x4, 0xe4,0x12,0xd9,0x50,0xda,0xf8,0x22,0xe5,0x1e,0x70,0xc, 0x7e, +0x73,0x77,0xe0,0xbe,0x73,0x77,0xe6,0x40,0x2, 0xc3,0x22,0xd3,0x22,0x12,0xbe,0x87, +0x12,0x75,0x5d,0x12,0xbf,0x55,0x2, 0x75,0x39,0x7e,0x27,0x73,0x21,0x1e,0x24,0x1e, +0x24,0xe4,0x7a,0xb3,0x6d,0xa, 0x7e,0x37,0x6c,0xe0,0xbd,0x32,0x38,0x8, 0x7e,0x37, +0x6c,0xe2,0xbd,0x32,0x28,0x6, 0x74,0x1, 0x7a,0xb3,0x6d,0xa, 0x22,0xe4,0x7a,0xb3, +0x6d,0x0, 0x7a,0xb3,0x6d,0x3, 0x12,0x76,0x80,0x7a,0xb3,0x6d,0x4, 0x7a,0xb3,0x6d, +0x5, 0x7e,0x73,0x6c,0xdf,0xbe,0x70,0x0, 0x28,0x2e,0x12,0x76,0x89,0x8, 0x6, 0x74, +0x1, 0x7a,0xb3,0x6d,0x0, 0x7e,0x7, 0x6e,0x95,0x7d,0x30,0x12,0x76,0x74,0x8, 0x3, +0x12,0x76,0x6d,0x7d,0x30,0x3e,0x34,0x3e,0x34,0x7d,0x21,0x12,0x76,0x78,0x8, 0x8, +0xd2,0x2b,0x6d,0x33,0x7a,0x37,0x76,0x5, 0x7e,0x37,0x6c,0xee,0xbe,0x34,0x1, 0xf4, +0x8, 0x2d,0x30,0x2a,0x2a,0x30,0x2b,0x1b,0x12,0x76,0x6d,0x7e,0x37,0x76,0x5, 0xb, +0x34,0x7a,0x37,0x76,0x5, 0xbe,0x34,0x0, 0x5, 0x28,0x8, 0xc2,0x2b,0x6d,0x33,0x7a, +0x37,0x76,0x5, 0x12,0x76,0xc1,0xbe,0x34,0x0, 0x64,0x28,0x3, 0x12,0x76,0x6d,0x7e, +0xa3,0x6c,0xdf,0xbe,0xa0,0x0, 0x28,0x42,0x12,0x76,0x89,0x8, 0x1a,0x7e,0x73,0x25, +0xaf,0xa5,0xbf,0x0, 0x8, 0x74,0x1, 0x7a,0xb3,0x6d,0x1, 0x80,0xa, 0xa5,0xbf,0x1, +0x6, 0x74,0x1, 0x7a,0xb3,0x6d,0x2, 0x7e,0x37,0x6e,0x95,0x12,0x76,0x74,0x8, 0x1a, +0x7e,0x73,0x25,0xaf,0xa5,0xbf,0x0, 0x8, 0x74,0x1, 0x7a,0xb3,0x6d,0x4, 0x80,0xa, +0xa5,0xbf,0x1, 0x6, 0x74,0x1, 0x7a,0xb3,0x6d,0x5, 0x7e,0xb3,0x6d,0x0, 0xbe,0xb0, +0x1, 0x68,0x10,0x7e,0xb3,0x6d,0x1, 0xbe,0xb0,0x1, 0x68,0x7, 0x7e,0xb3,0x6d,0x2, +0xb4,0x1, 0x24,0xbe,0xa0,0x0, 0x28,0x1f,0xbe,0xa0,0x3, 0x50,0x1a,0x7e,0xb3,0x6c, +0xde,0xb4,0x1, 0x13,0x90,0x21,0xfa,0xe4,0x93,0xbe,0xb3,0x6b,0x54,0x68,0x8, 0xe4, +0x7a,0xb3,0x6d,0x0, 0x12,0x76,0x80,0xe4,0x7a,0xb3,0x6d,0x6, 0x22,0x74,0x1, 0x7a, +0xb3,0x6d,0x3, 0x22,0xad,0x31,0x7d,0x24,0x12,0x22,0x71,0xbe,0x37,0x6c,0xee,0x22, +0x7a,0xb3,0x6d,0x1, 0x7a,0xb3,0x6d,0x2, 0x22,0x7e,0x37,0x6e,0x8f,0x7e,0x14,0x0, +0x6, 0xad,0x31,0x7e,0x44,0x0, 0x4, 0x7d,0x24,0x12,0x22,0x71,0xbe,0x37,0x6c,0xe8, +0x22,0x7e,0x18,0x8, 0xc, 0x7a,0x1d,0x33,0x7e,0x1f,0x24,0x64,0x7f,0x1, 0x2, 0x76, +0xb1,0x12,0x77,0xd4,0x12,0x77,0x92,0x7e,0x34,0x0, 0x10,0x12,0x77,0x89,0x2, 0x8, +0xe5,0x6d,0x22,0x7d,0x32,0x80,0x12,0x7d,0x52,0x12,0x76,0xe2,0xb, 0xa, 0x10,0xbe, +0x14,0xff,0xb0,0x58,0x2, 0xb, 0x34,0xb, 0x24,0x7e,0x17,0x73,0x21,0xbd,0x12,0x38, +0xe6,0x22,0x3e,0x54,0x7e,0xf, 0x24,0x68,0x2d,0x15,0x22,0xca,0xf8,0x7e,0xb3,0x73, +0x1e,0x70,0x8, 0x12,0x77,0x62,0x12,0x77,0x75,0x80,0xf, 0x7e,0x1f,0x24,0x64,0x7a, +0x1d,0x33,0x12,0x77,0x62,0x74,0x1, 0x12,0x77,0xa4,0x7e,0x37,0x73,0x21,0x90,0x1c, +0x2b,0xe4,0x93,0x70,0x13,0x6c,0xff,0x6d,0x22,0x7d,0x53,0x12,0x76,0xe2,0x1b,0xa, +0x20,0x12,0x77,0x5a,0x78,0xf1,0x80,0x2f,0x6c,0xff,0x7e,0xb3,0x73,0x1e,0xb4,0x1, +0x14,0x7d,0x53,0x3e,0x54,0x7e,0xf, 0x24,0x64,0x2d,0x15,0xb, 0xa, 0x40,0x12,0x77, +0x6b,0x9d,0x24,0x80,0x7, 0x7d,0x53,0x3e,0x54,0x12,0x77,0x6b,0x12,0x76,0xe4,0x1b, +0xa, 0x20,0x12,0x77,0x5a,0x78,0xd3,0xda,0xf8,0x22,0xb, 0x34,0xb, 0xf0,0xbe,0xf0, +0x4, 0x22,0x7e,0xf, 0x24,0x68,0x7e,0x1f,0x24,0x60,0x22,0x7e,0xf, 0x24,0x60,0x2d, +0x15,0xb, 0xa, 0x20,0x22,0x12,0x77,0xd4,0x7a,0x37,0x6a,0xd8,0x12,0x77,0x9d,0x7e, +0x34,0x0, 0x20,0x12,0x77,0x89,0x2, 0x8, 0xe5,0x7a,0x37,0x6a,0xde,0x7e,0x8, 0x6a, +0xd4,0x22,0x7a,0x37,0x6a,0xd8,0x7e,0x1d,0x33,0x7a,0x37,0x6a,0xda,0x7d,0x3f,0x7a, +0x37,0x6a,0xdc,0x22,0x7c,0xab,0x7f,0x61,0x7f,0x70,0x7e,0x8, 0x6a,0xd4,0x12,0xda, +0x40,0x7e,0xb3,0x6e,0xb0,0x7a,0xb3,0x6a,0xd5,0x7e,0xb3,0x6e,0xaf,0x7a,0xb3,0x6a, +0xd4,0xe4,0x12,0x77,0xf4,0x12,0x77,0x92,0x7a,0xa3,0x6a,0xd7,0x6d,0x33,0x12,0x77, +0x89,0x2, 0x8, 0xe5,0x7f,0x61,0x7f,0x70,0x7e,0x8, 0x6a,0xd4,0x7e,0x34,0x0, 0xc, +0xe4,0x12,0x24,0x34,0x7e,0x73,0x6e,0xb0,0x7a,0x73,0x6a,0xd5,0x7e,0x73,0x6e,0xaf, +0x7a,0x73,0x6a,0xd4,0x7a,0xb3,0x6a,0xd6,0x7d,0x3d,0x22,0xca,0x79,0x7c,0xfb,0x7f, +0x51,0x7f,0x40,0x74,0x9, 0xac,0xbf,0x9, 0xb5,0x6d,0x73,0xf5,0x3a,0x74,0x9, 0xac, +0xbf,0x9, 0xb5,0x6d,0x74,0xc4,0x54,0xf0,0xf5,0x3b,0x74,0x9, 0xac,0xbf,0x9, 0xe5, +0x6d,0x72,0x12,0x78,0xf0,0x28,0x58,0x7e,0xb3,0x6e,0x83,0x70,0x28,0x75,0x3c,0xf, +0x7e,0x8, 0x0, 0x3a,0xa, 0x3e,0x2e,0x34,0x28,0x27,0x6d,0x22,0x74,0x1, 0x12,0x78, +0xa9,0x75,0x3c,0x20,0x7e,0x8, 0x0, 0x3b,0xa, 0x3e,0x2e,0x34,0x28,0x31,0x74,0x10, +0x12,0x78,0xa9,0x80,0xe, 0xa, 0x3e,0x9, 0xb3,0x28,0x27,0xf5,0x3a,0x9, 0xb3,0x28, +0x31,0xf5,0x3b,0x74,0x9, 0xac,0xbe,0x9, 0xb5,0x6e,0x22,0xb4,0x1, 0x11,0xe4,0xa, +0x3e,0x19,0xb3,0x28,0x27,0x19,0xb3,0x28,0x31,0x75,0x3a,0x0, 0x75,0x3b,0x0, 0x7e, +0xb3,0x6e,0x9d,0xb4,0xff,0x16,0x85,0x39,0x3a,0x75,0x3a,0x0, 0x74,0x9, 0xac,0xbf, +0x9, 0xb5,0x6d,0x72,0xbe,0xb0,0xff,0x68,0x3, 0x75,0x3a,0x1, 0xe5,0x3a,0x7a,0x4b, +0xb0,0xe5,0x3b,0x7a,0x5b,0xb0,0xda,0x79,0x22,0x7c,0x9b,0x7e,0x1b,0xa0,0x4c,0xaa, +0x78,0x7, 0x7e,0xb, 0xb0,0x7a,0x1b,0xb0,0x22,0xa, 0xda,0x7e,0xb, 0x80,0xa, 0xe8, +0x7d,0xfe,0x9d,0xfd,0xbe,0xf4,0x0, 0x0, 0x8, 0x4, 0x9d,0xed,0x80,0x4, 0x6d,0xee, +0x9d,0xef,0xe5,0x3c,0xa, 0xfb,0xbd,0xef,0x8, 0xf, 0xbc,0x8a,0x7c,0xba,0x28,0x4, +0x2c,0xb9,0x80,0x2, 0x9c,0xb9,0x7a,0x1b,0xb0,0x7e,0x1b,0x70,0x7a,0xb, 0x70,0x22, +0x7e,0x73,0x6e,0x89,0xbc,0x7e,0x22,0x7e,0x68,0x6e,0x22,0x7e,0xb3,0x6e,0x7d,0xb4, +0x1, 0x1a,0x7e,0xb3,0x6e,0x7c,0x70,0x14,0x29,0x76,0x0, 0x8, 0xbe,0x70,0x2d,0x50, +0xb, 0xbe,0x70,0x0, 0x28,0x6, 0x74,0x3, 0x7a,0xb3,0x6e,0x88,0x7e,0x73,0x6e,0x88, +0xbe,0x70,0x0, 0x28,0x2d,0x7e,0x34,0x0, 0x9, 0xca,0x39,0x7e,0x18,0x27,0x73,0x7e, +0x8, 0x6d,0x6e,0x12,0x24,0xf, 0x1b,0xfd,0x7e,0xa3,0x6e,0x88,0xbe,0xa0,0x3, 0x78, +0x3, 0xe4,0x80,0xb, 0xbe,0xa0,0x1, 0x78,0x4, 0x74,0x1, 0x80,0x2, 0x74,0x2, 0x7a, +0x6b,0xb0,0x22,0xca,0x3b,0x75,0x27,0x0, 0x75,0x28,0x0, 0x75,0x29,0x0, 0x75,0x2a, +0x0, 0x75,0x2c,0x0, 0xc2,0x0, 0xc2,0x1, 0x7e,0x18,0x28,0x3b,0x7a,0x1d,0x31,0x7e, +0x18,0x6e,0x22,0x7a,0x1d,0x35,0xe4,0x7e,0x34,0x28,0x3c,0x7e,0x24,0x0, 0x0, 0x7a, +0x1b,0xb0,0x12,0xcc,0x31,0x12,0x78,0xf7,0x6c,0xee,0x80,0x39,0x74,0x9, 0xac,0xbe, +0x9, 0xf5,0x6d,0x72,0x12,0x9f,0x71,0x28,0x2a,0x12,0xe4,0x8b,0x2d,0x35,0x7e,0x1b, +0xb0,0xb4,0x1, 0x1f,0x12,0xe5,0xde,0x70,0x1a,0x29,0x1, 0x0, 0x8, 0xbe,0x0, 0x2d, +0x50,0x11,0xbe,0x0, 0x0, 0x28,0xc, 0x7a,0xe1,0x2b,0x74,0x3, 0xa5,0xf7,0x7a,0xf1, +0x12,0x80,0x7, 0xb, 0xe0,0x12,0x78,0xf0,0x38,0xc2,0x12,0xe5,0x10,0x38,0x2, 0x41, +0x4f,0xb4,0x3, 0x10,0x7e,0x34,0x0, 0x9, 0xca,0x39,0x12,0xe5,0xa2,0x7e,0x31,0x2b, +0xac,0x3b,0x80,0x19,0x6c,0xee,0x80,0x24,0x7e,0x30,0x9, 0xac,0x3e,0x9, 0xb1,0x6d, +0x72,0xb4,0xff,0x16,0x7e,0x4, 0x0, 0x9, 0xca,0x9, 0x12,0xe5,0xa2,0x2e,0x14,0x6d, +0x6e,0x6d,0x0, 0x12,0x24,0xf, 0x1b,0xfd,0x80,0x7, 0xb, 0xe0,0x12,0x78,0xf0,0x38, +0xd7,0x7e,0x11,0x12,0x2e,0x10,0x8, 0xa5,0xe7,0x7c,0xab,0xbe,0xa0,0x3, 0x78,0x13, +0x6c,0x33,0x7e,0x11,0x12,0x74,0x9, 0xac,0x1b,0x7e,0x1d,0x35,0x2d,0x30,0x7a,0x1b, +0x30,0x80,0x1c,0xbe,0xa0,0x1, 0x78,0x5, 0x7e,0xa0,0x1, 0x80,0x3, 0x7e,0xa0,0x2, +0x7e,0x31,0x12,0x74,0x9, 0xac,0x3b,0x7e,0x1d,0x35,0x2d,0x31,0x7a,0x1b,0xa0,0x7e, +0xb3,0x6e,0x85,0x70,0x1a,0x7e,0xb3,0x6e,0x81,0x70,0x14,0x7e,0xb3,0x6e,0x82,0x70, +0xe, 0x12,0xe5,0x10,0x38,0x9, 0x7e,0xb3,0x6e,0x88,0x70,0x3, 0x2, 0x81,0x15,0x12, +0xe5,0x10,0x28,0x3, 0x14,0xa5,0xf7,0x7e,0xb3,0x6e,0x88,0x60,0x5, 0x14,0x7a,0xb3, +0x6e,0x88,0x30,0x20,0x6, 0x7e,0x18,0x28,0x79,0x80,0x4, 0x7e,0x18,0x28,0x3b,0x7a, +0x1d,0x31,0x7e,0xd, 0x31,0x12,0x6b,0x9c,0x6c,0xee,0x2, 0x80,0xaf,0x7e,0x70,0x9, +0xac,0x7e,0x9, 0xf3,0x6d,0x72,0x12,0x9f,0x71,0x38,0x3, 0x2, 0x80,0xad,0x7c,0xaf, +0x5e,0xa0,0xf, 0x74,0x9, 0xa4,0x7e,0xd, 0x35,0x2d,0x15,0x7e,0xb, 0xc0,0x7e,0x90, +0x4, 0xac,0x9f,0x9, 0xa4,0x28,0xba,0x4c,0xaa,0x78,0x2, 0x61,0x84,0x49,0x23,0x6d, +0x6e,0x4d,0x22,0x78,0xa, 0x49,0x33,0x6d,0x70,0x4d,0x33,0x78,0x2, 0x61,0x84,0xbe, +0xa0,0x4, 0x28,0x5, 0x7e,0xd0,0x38,0x80,0x21,0xbe,0xa0,0x4, 0x78,0x5, 0x7e,0xd0, +0x30,0x80,0x17,0xbe,0xa0,0x3, 0x78,0x5, 0x7e,0xd0,0x20,0x80,0xd, 0xbe,0xa0,0x2, +0x78,0x5, 0x7e,0xd0,0x18,0x80,0x3, 0x7e,0xd0,0x10,0x75,0x26,0x0, 0x80,0x64,0x7e, +0x91,0x26,0x74,0x9, 0xac,0x9b,0x9, 0xb4,0x27,0xd1,0x54,0xf, 0xbc,0xbf,0x78,0x51, +0x74,0x9, 0xac,0xbe,0x49,0x35,0x6d,0x6e,0x12,0xe4,0xfc,0x49,0x34,0x27,0xcd,0x12, +0xe5,0x94,0x1e,0x34,0x1e,0x24,0x50,0x3, 0x4e,0x60,0x80,0x14,0x78,0xf4,0x74,0x9, +0xac,0xbe,0x59,0x35,0x6d,0x6e,0x7e,0x90,0x9, 0xac,0x9e,0x49,0x34,0x6d,0x70,0x12, +0xe4,0xfc,0x7e,0xa1,0x26,0x74,0x9, 0xa4,0x49,0x35,0x27,0xcf,0x12,0xe5,0x94,0x1e, +0x34,0x1e,0x24,0x50,0x3, 0x4e,0x60,0x80,0x14,0x78,0xf4,0x59,0x34,0x6d,0x70,0x80, +0x7, 0x5, 0x26,0x12,0x81,0xc1,0x38,0x97,0x7e,0x70,0x4, 0xac,0x7f,0x2e,0x34,0x28, +0xba,0x12,0xe6,0xc6,0x12,0xe4,0x8b,0x2d,0x35,0x7e,0x1b,0xb0,0xb4,0x1, 0x17,0x12, +0xe5,0xde,0x70,0x12,0x7e,0xb3,0x6e,0x88,0x70,0xc, 0xe4,0x39,0xb1,0x0, 0x8, 0x12, +0xe5,0xbb,0x7a,0xb3,0x28,0xe5,0x4c,0xcc,0x68,0x2, 0xe1,0xc6,0x12,0xe5,0xde,0x60, +0x2, 0xe1,0xc6,0x7e,0xb3,0x6e,0x88,0x60,0x2, 0xe1,0xc6,0x74,0x9, 0xac,0xbe,0x49, +0x35,0x6d,0x6e,0xbe,0x34,0x0, 0x14,0x38,0x10,0x12,0xe6,0x9c,0x40,0xb, 0x12,0x6f, +0xcd,0x9e,0x24,0x0, 0x14,0xbd,0x42,0x28,0x3b,0x7e,0x14,0x21,0xde,0x12,0xdd,0x9b, +0x7d,0x2c,0x9e,0x24,0x0, 0x14,0xbd,0x32,0x40,0x10,0x12,0xe6,0x9c,0x40,0xb, 0x12, +0x6f,0xcd,0x9e,0x24,0x0, 0x14,0xbd,0x42,0x28,0x1a,0x49,0xd5,0x6d,0x70,0xbe,0xd4, +0x0, 0x0, 0x28,0x2, 0xc1,0x7e,0xbe,0x34,0x0, 0x0, 0x50,0x2, 0xc1,0x7e,0xbd,0x3c, +0x28,0x2, 0xc1,0x7e,0x12,0xe5,0x86,0x12,0xe4,0xf5,0xbe,0x34,0x0, 0xc8,0x58,0x18, +0x12,0xe6,0x93,0xbe,0x44,0x0, 0x14,0x38,0xf, 0x12,0xe5,0x1c,0x40,0xa, 0x12,0xdd, +0x97,0x12,0xe6,0x8, 0x38,0x2, 0xa1,0x8c,0x12,0xe4,0xec,0xbe,0x34,0x0, 0xc8,0x58, +0x14,0x12,0xe4,0xa1,0x40,0xf, 0x12,0xe5,0x1c,0x40,0xa, 0x12,0xdd,0x97,0x12,0xe6, +0x8, 0x38,0x2, 0xa1,0x8c,0x12,0xe4,0xec,0xbe,0x34,0x0, 0x0, 0x58,0x25,0x74,0x9, +0xac,0xbe,0x49,0x45,0x6d,0x70,0xbe,0x44,0x0, 0x0, 0x38,0x17,0x49,0x35,0x6d,0x6e, +0xbe,0x34,0x0, 0x0, 0x40,0xd, 0x7e,0x14,0x21,0xde,0x12,0xdd,0x9b,0xbd,0x3c,0x38, +0x2, 0xa1,0x8c,0x12,0xe4,0x80,0x29,0xb1,0x0, 0x8, 0x70,0x2e,0x7e,0x4, 0x0, 0x9, +0xca,0x9, 0x7e,0x70,0x9, 0xac,0x7e,0x2e,0x34,0x6d,0x6e,0x6d,0x22,0x2e,0x14,0x27, +0x73,0x6d,0x0, 0x12,0x24,0xf, 0x1b,0xfd,0x12,0xe4,0x8b,0x2d,0x35,0x2e,0x34,0x0, +0x8, 0x7e,0x1b,0xb0,0x4, 0x7a,0x1b,0xb0,0xa1,0x8c,0x12,0xe4,0x21,0x2d,0xc3,0xbe, +0xc4,0x0, 0x32,0x58,0x42,0x7e,0x70,0x9, 0xac,0x7e,0x49,0x23,0x6d,0x6e,0xbe,0x24, +0x0, 0x14,0x38,0x33,0x49,0xc3,0x6d,0x70,0xbe,0xc4,0x0, 0x14,0x40,0x29,0x12,0x6f, +0xcd,0x9e,0x24,0x0, 0x14,0xbd,0xc2,0x38,0x1e,0x12,0xca,0x8c,0x50,0xa, 0x7e,0xa0, +0x2d,0x12,0xe4,0x80,0x39,0xa1,0x0, 0x8, 0x12,0xe4,0x8b,0x12,0xe5,0x25,0x40,0x2, +0xa1,0x8c,0x12,0xe5,0x7d,0xa1,0x8c,0x12,0xe4,0x21,0x2d,0xc3,0xbe,0xc4,0x0, 0x32, +0x58,0x31,0x12,0xe4,0xa1,0x40,0x2c,0x12,0xe5,0x1c,0x40,0x27,0x12,0xdd,0x97,0x12, +0xe6,0x8, 0x38,0x1f,0x12,0xe5,0x86,0x12,0xca,0x90,0x50,0xa, 0x7e,0xa0,0x2d,0x12, +0xe4,0x80,0x39,0xa1,0x0, 0x8, 0x12,0xe4,0x8b,0x12,0xe5,0x25,0x50,0x4e,0x12,0xe5, +0x7d,0x80,0x49,0x12,0xe4,0x21,0x2d,0xc3,0xbe,0xc4,0x0, 0x0, 0x58,0x4a,0x7e,0x70, +0x9, 0xac,0x7e,0x49,0x23,0x6d,0x70,0xbe,0x24,0x0, 0x0, 0x38,0x3b,0x49,0xc3,0x6d, +0x6e,0xbe,0xc4,0x0, 0x0, 0x40,0x31,0x7e,0x14,0x21,0xde,0x12,0x6f,0xd1,0xbd,0xc2, +0x38,0x26,0x12,0xca,0x8c,0x50,0xa, 0x7e,0xa0,0x2d,0x12,0xe4,0x80,0x39,0xa1,0x0, +0x8, 0x12,0xe4,0x8b,0x12,0xe5,0x25,0x50,0x3, 0x12,0xe5,0x7d,0x7e,0xc0,0x3, 0x12, +0xe4,0x70,0x39,0xa1,0x0, 0x1, 0xc1,0xc8,0x7e,0x50,0x9, 0xac,0x5e,0x49,0x42,0x6d, +0x6e,0xbe,0x44,0x0, 0x14,0x38,0x47,0x49,0x32,0x6d,0x70,0xbe,0x34,0x0, 0x14,0x40, +0x3d,0x7e,0x14,0x21,0xec,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0x50,0x9e,0x54,0x0, 0x14, +0xbd,0x35,0x38,0x2a,0x74,0x9, 0xac,0xbf,0x49,0xc5,0x27,0x73,0x4d,0xcc,0x78,0xa, +0x49,0xc5,0x27,0x75,0x4d,0xcc,0x78,0x2, 0xc1,0xbe,0x12,0xe4,0x2d,0x7d,0x53,0x2d, +0x5c,0xbe,0x54,0x1, 0x2c,0x8, 0x2, 0xc1,0xbe,0x12,0xe4,0x4d,0xc1,0xbe,0x7e,0x34, +0x21,0xde,0x7e,0x24,0x0, 0xff,0xb, 0x1a,0x0, 0x7d,0x10,0x9e,0x14,0x0, 0x14,0xbd, +0x41,0x40,0x4b,0x74,0x9, 0xac,0xbe,0x12,0xe5,0x1c,0x40,0x42,0x12,0x9f,0x89,0xb, +0x7a,0x20,0x9e,0x24,0x0, 0x14,0xbd,0x32,0x38,0x34,0x12,0xe5,0xfd,0x78,0xa, 0x49, +0x25,0x27,0x75,0x4d,0x22,0x78,0x2, 0xc1,0xbe,0x49,0x25,0x27,0x75,0x12,0xe6,0xce, +0x12,0xe4,0x38,0x2d,0x13,0xbe,0x14,0x1, 0x2c,0x8, 0x2, 0xc1,0xbe,0x7e,0xa0,0x5, +0x7e,0x30,0x4, 0xac,0x3f,0x19,0xa1,0x28,0xba,0x12,0xe4,0x59,0x80,0x70,0x74,0x9, +0xac,0xbe,0x12,0xe5,0x74,0x38,0x71,0xbe,0x44,0x0, 0x0, 0x40,0x6b,0xbd,0x40,0x38, +0x67,0x12,0xe5,0xfd,0x78,0x8, 0x49,0x25,0x27,0x75,0x4d,0x22,0x68,0x50,0x12,0xe4, +0x2d,0x2d,0xc3,0xbe,0xc4,0x1, 0x2c,0x18,0x45,0x12,0xe4,0x4d,0x80,0x40,0x7e,0x70, +0x9, 0xac,0x7f,0x7e,0xd, 0x35,0x2d,0x13,0x29,0x50,0x0, 0x8, 0xbe,0x50,0x0, 0x28, +0x37,0x7e,0xb3,0x28,0xe5,0x70,0x31,0x49,0x23,0x27,0x73,0x4d,0x22,0x78,0x8, 0x49, +0x23,0x27,0x75,0x4d,0x22,0x68,0x17,0x49,0x23,0x27,0x75,0x7d,0x3d,0x12,0xe6,0xce, +0x12,0xe4,0x38,0x2d,0x31,0xbe,0x34,0x1, 0x2c,0x18,0x3, 0x12,0xe4,0x4d,0x7e,0xa0, +0x2d,0x12,0xe4,0x80,0x39,0xa1,0x0, 0x8, 0x4c,0xcc,0x68,0x2, 0xe1,0xc6,0x7e,0x70, +0x9, 0xac,0x7e,0x12,0xca,0x8c,0x92,0x1e,0x30,0x1e,0x3c,0x12,0xe5,0xbb,0x12,0xe4, +0x8b,0x2d,0x35,0x29,0xb1,0x0, 0x6, 0x70,0x6, 0x74,0x1, 0x39,0xb1,0x0, 0x6, 0x12, +0xe4,0x8b,0x2d,0x35,0x29,0x31,0x0, 0x6, 0xbe,0x30,0x1, 0x28,0x2, 0xe1,0xc6,0x4c, +0xcc,0x78,0x3, 0x7e,0xc0,0x3, 0x74,0x2d,0x39,0xb1,0x0, 0x8, 0xd2,0x1f,0x12,0xe4, +0x70,0x39,0xa1,0x0, 0x1, 0xe1,0xc6,0x74,0x9, 0xac,0xbe,0x49,0x25,0x6d,0x6e,0xbe, +0x24,0x0, 0x14,0x28,0x14,0x7e,0x14,0x21,0xde,0x12,0x9f,0x30,0x9e,0x34,0x0, 0x14, +0xbd,0x23,0x50,0x5, 0x12,0xe5,0x74,0x38,0x7c,0xbe,0x24,0x0, 0x14,0x38,0xb, 0x12, +0xe5,0x74,0x40,0x6, 0xbe,0x34,0x0, 0x14,0x28,0x6b,0x7e,0x14,0x21,0xde,0x12,0x9f, +0x30,0x9e,0x34,0x0, 0x14,0xbd,0x23,0x40,0x14,0x74,0x9, 0xac,0xbe,0x49,0x15,0x6d, +0x70,0xbe,0x14,0x0, 0x0, 0x40,0x6, 0xbe,0x14,0x0, 0x14,0x28,0x48,0xbe,0x24,0x0, +0x14,0x38,0x21,0x74,0x9, 0xac,0xbe,0x49,0x5, 0x6d,0x70,0x7e,0x54,0x21,0xec,0x7e, +0x44,0x0, 0xff,0xb, 0x2a,0x10,0x7d,0x51,0x9e,0x54,0x0, 0x14,0xbd,0x5, 0x40,0x4, +0xbd,0x1, 0x28,0x21,0xbd,0x23,0x40,0x2e,0x74,0x9, 0xac,0xbe,0x49,0x25,0x6d,0x70, +0x7e,0x14,0x21,0xec,0x12,0x9f,0x30,0x7d,0x13,0x9e,0x14,0x0, 0x14,0xbd,0x21,0x40, +0x15,0xbd,0x23,0x38,0x11,0x12,0xe4,0x8b,0x2d,0x35,0x29,0xb1,0x0, 0x6, 0x70,0x6, +0x74,0x2, 0x39,0xb1,0x0, 0x6, 0xbe,0xc0,0x3, 0x78,0x3, 0x2, 0x80,0xad,0x12,0xe6, +0x93,0x7a,0x45,0x2d,0x49,0x35,0x6d,0x70,0x7a,0x35,0x2f,0xbe,0xc0,0x1, 0x78,0x3b, +0x6c,0xaa,0x7e,0x70,0x4, 0xac,0x7f,0x19,0xa3,0x28,0xb8,0x12,0xe4,0x80,0x39,0xa1, +0x0, 0x6, 0x75,0x26,0x0, 0x80,0x1f,0x12,0x85,0x95,0x9, 0xb3,0x27,0xd1,0x54,0xf, +0xbc,0xbf,0x78,0x10,0x49,0x23,0x27,0xcd,0x7a,0x25,0x2d,0x49,0x33,0x27,0xcf,0x7a, +0x35,0x2f,0x80,0x7, 0x5, 0x26,0x12,0x81,0xc1,0x38,0xdc,0x85,0x27,0x39,0x7e,0x8, +0x0, 0x29,0x7e,0x18,0x0, 0x2a,0x7c,0xbe,0x12,0x77,0xfb,0x7e,0x35,0x2d,0x5e,0x60, +0xf, 0x7a,0x35,0x2d,0x7e,0x35,0x2f,0x5e,0x60,0xf, 0x7a,0x35,0x2f,0x7e,0x90,0x9, +0xac,0x9e,0x9, 0x74,0x6d,0x72,0xa, 0x57,0xc4,0x54,0xf0,0x7c,0xab,0xe4,0x7d,0x25, +0x2e,0x25,0x2f,0x7a,0x25,0x2f,0xbe,0x70,0xff,0x68,0x19,0xbe,0xc0,0x1, 0x68,0x2, +0x5, 0x27,0x5, 0x2c,0xa, 0x5c,0x3, 0x3, 0x54,0xc0,0x7c,0xab,0xe4,0x7d,0x35,0x2e, +0x35,0x2d,0x80,0x7, 0x7e,0x35,0x2d,0x2e,0x34,0xc0,0x0, 0x7a,0x35,0x2d,0x12,0x81, +0x67,0x79,0x30,0x0, 0x2, 0x7e,0x35,0x2f,0x12,0x81,0x67,0x79,0x30,0x0, 0x4, 0x7e, +0xa1,0x29,0x7e,0x31,0x28,0x74,0x6, 0x12,0x81,0x5f,0x39,0xa1,0x0, 0x6, 0x7e,0xa1, +0x2a,0x7e,0x31,0x28,0x12,0x81,0x5f,0x39,0xa1,0x0, 0x7, 0x5, 0x28,0xb, 0xe0,0x12, +0x78,0xf0,0x28,0x3, 0x2, 0x7a,0x9d,0xe5,0x27,0x7e,0x1d,0x31,0x39,0xb1,0x0, 0x1, +0x7e,0x33,0x6e,0x7e,0x7e,0x1d,0x31,0x7a,0x1b,0x30,0x7e,0xb3,0x76,0x5a,0xb4,0x1, +0xf, 0x7e,0xb3,0x6e,0x82,0xb4,0x1, 0x1c,0x74,0x5, 0x7a,0xb3,0x77,0xdd,0x80,0xf, +0xe5,0x2c,0xbe,0xb0,0x0, 0x38,0x6, 0x7e,0xb3,0x6e,0x82,0x60,0x7, 0xb2,0x20,0xc2, +0x86,0x12,0x87,0xa3,0x7e,0xb3,0x6e,0x81,0x60,0xc, 0x7e,0xb3,0x6e,0x88,0x70,0x6, +0x7e,0xd, 0x35,0x12,0x81,0x73,0xe4,0x7a,0xb3,0x6e,0x85,0x7a,0xb3,0x6e,0x81,0x7a, +0xb3,0x6e,0x82,0x80,0x1e,0x7e,0xd, 0x35,0x12,0x81,0x73,0x6c,0xee,0x6c,0xaa,0x80, +0xb, 0x7c,0x1e,0x2e,0x10,0x8, 0x7c,0xba,0xa5,0xf7,0xb, 0xe0,0xbe,0xe0,0xa, 0x40, +0xf0,0xd2,0x86,0x12,0x87,0x98,0xca,0x59,0x7e,0x18,0x6d,0x6e,0x7e,0x8, 0x27,0xcd, +0x12,0x24,0xf, 0x1b,0xfd,0xe5,0x2c,0x70,0x10,0x12,0x54,0xc8,0x74,0x9, 0xac,0x7b, +0x7e,0x8, 0x27,0xcd,0x74,0xff,0x12,0x24,0x34,0x12,0x87,0xb5,0xda,0x3b,0x22,0xac, +0x3b,0x7e,0x1d,0x31,0x2d,0x31,0x22,0x7e,0xa1,0x28,0x74,0x6, 0xa4,0x7e,0xd, 0x31, +0x2d,0x15,0x22,0xca,0xf8,0x6c,0xaa,0x80,0x40,0x7e,0xf0,0x3, 0x7e,0x90,0x9, 0xac, +0x9a,0x7f,0x10,0x2d,0x34,0x7a,0x1b,0xf0,0x74,0x3, 0x7f,0x10,0x2d,0x34,0x39,0xb1, +0x0, 0x1, 0x7e,0x34,0x7f,0xff,0x7f,0x70,0x2d,0xf4,0x79,0x37,0x0, 0x2, 0x7f,0x70, +0x2d,0xf4,0x79,0x37,0x0, 0x4, 0xe4,0x7f,0x10,0x2d,0x34,0x39,0xb1,0x0, 0x6, 0x7f, +0x10,0x2d,0x34,0x39,0xb1,0x0, 0x8, 0xb, 0xa0,0x12,0x4c,0xf7,0x38,0xbb,0xda,0xf8, +0x22,0x90,0x21,0x51,0xe4,0x93,0xbe,0xb1,0x26,0x22,0xca,0x3b,0xc2,0x0, 0x7e,0x38, +0x6e,0x22,0x6c,0xaa,0x80,0x19,0x7e,0x70,0xff,0x12,0x85,0x7f,0x74,0xff,0xa, 0x4a, +0x19,0xb4,0x62,0xcc,0xe4,0x19,0xb4,0x62,0xb8,0x19,0xb4,0x62,0xc2,0xb, 0xa0,0x12, +0x4c,0xf7,0x38,0xe2,0x7e,0x73,0x6e,0x7c,0xa5,0xbf,0x0, 0x2e,0x7e,0xb3,0x3, 0xc8, +0x70,0x2, 0x81,0xbc,0x6c,0xaa,0x80,0x1b,0x7e,0x44,0x7f,0xff,0x7e,0x50,0x9, 0xac, +0x5a,0x7f,0x3, 0x2d,0x12,0x79,0x40,0x0, 0x2, 0x7f,0x3, 0x2d,0x12,0x79,0x40,0x0, +0x4, 0xb, 0xa0,0x12,0x4c,0xf7,0x38,0xe0,0x81,0xbc,0x7e,0xb3,0x3, 0xc8,0x70,0x3e, +0xbe,0x70,0x0, 0x28,0x39,0x6c,0xaa,0x80,0x2b,0x7e,0x90,0x9, 0xac,0x9a,0x49,0x34, +0x6d,0x14,0x7f,0x3, 0x2d,0x14,0x79,0x30,0x0, 0x2, 0x49,0x34,0x6d,0x16,0x7f,0x3, +0x2d,0x14,0x79,0x30,0x0, 0x4, 0x74,0x1, 0xa, 0x3a,0x19,0xb3,0x62,0xb8,0x19,0xa4, +0x6d,0x18,0xb, 0xa0,0x7e,0xb3,0x6e,0x7c,0xbc,0xba,0x38,0xcd,0x81,0xbc,0x6c,0xaa, +0x80,0x1d,0x7e,0x44,0x7f,0xff,0x7e,0x70,0x2, 0xac,0x7a,0x3e,0x34,0x59,0x43,0x24, +0x6c,0x59,0x43,0x24,0x6e,0x59,0x43,0x24,0x94,0x59,0x43,0x24,0x96,0xb, 0xa0,0x12, +0x4c,0xf7,0x38,0xde,0x7e,0xb3,0x3, 0xc8,0xbe,0xb3,0x6e,0x7c,0x28,0x9, 0xbe,0xb0, +0x2, 0x40,0x4, 0xd2,0x0, 0x80,0x2, 0xc2,0x0, 0x6c,0xaa,0x61,0x6a,0x75,0x26,0x0, +0x61,0x61,0x12,0x85,0x95,0x7f,0x73,0x2d,0xf3,0x69,0x17,0x0, 0x2, 0xbe,0x14,0x7f, +0xff,0x78,0x2, 0x61,0x5f,0xe5,0x26,0xa, 0x2b,0x9, 0xb2,0x62,0xc2,0x60,0x2, 0x61, +0x5f,0x30,0x0, 0x6c,0x7e,0x71,0x26,0x74,0x2, 0xac,0x7b,0x49,0x3, 0x3, 0xdd,0xbe, +0x4, 0x7f,0xff,0x68,0x5b,0x49,0xd3,0x3, 0xdd,0x69,0x7, 0x0, 0x2, 0x7d,0x40,0x9d, +0x4d,0x2d,0x40,0x49,0xd3,0x3, 0xc9,0x69,0x7, 0x0, 0x4, 0x7d,0x30,0x9d,0x3d,0x2d, +0x30,0xbe,0x44,0x0, 0x0, 0x58,0x2, 0x6d,0x44,0xbe,0x34,0x0, 0x0, 0x58,0x2, 0x6d, +0x33,0x7e,0x3, 0x6e,0xb1,0x12,0x85,0x89,0xbd,0xd4,0x18,0x6, 0x7d,0x40,0x9e,0x44, +0x0, 0x21,0x7e,0x3, 0x6e,0xb2,0x12,0x85,0x89,0xbd,0xd3,0x18,0x6, 0x7d,0x30,0x9e, +0x34,0x0, 0x21,0x12,0x85,0x63,0x59,0x40,0x24,0x6c,0x59,0x30,0x24,0x6e,0x80,0xf, +0x12,0x85,0x63,0x59,0x10,0x24,0x6c,0x69,0x17,0x0, 0x4, 0x59,0x10,0x24,0x6e,0xe5, +0x26,0xa, 0x1a,0x19,0xb1,0x62,0xcc,0x74,0x1, 0x19,0xb2,0x62,0xc2,0x80,0x9, 0x5, +0x26,0x12,0x81,0xc1,0x28,0x2, 0x41,0xb2,0xb, 0xa0,0x7e,0xb3,0x3, 0xc8,0xbc,0xba, +0x28,0x2, 0x41,0xad,0x6c,0xaa,0x80,0x1a,0x12,0x85,0x6b,0x69,0x30,0x0, 0x2, 0x7e, +0x50,0x2, 0xac,0x5a,0x59,0x32,0x3, 0xdd,0x69,0x30,0x0, 0x4, 0x59,0x32,0x3, 0xc9, +0xb, 0xa0,0x12,0x54,0xc8,0xbc,0x7a,0x38,0xdf,0x6c,0xaa,0x80,0x31,0xa, 0x2a,0x9, +0xb2,0x62,0xcc,0xb4,0xff,0x26,0x75,0x26,0x0, 0x80,0x1c,0xe5,0x26,0xa, 0x4b,0x9, +0xb4,0x62,0xc2,0x70,0x10,0xe5,0x26,0xa, 0x2a,0x19,0xb2,0x62,0xcc,0x74,0x1, 0x19, +0xb4,0x62,0xc2,0x80,0x7, 0x5, 0x26,0xbe,0x71,0x26,0x38,0xdf,0xb, 0xa0,0xbc,0x7a, +0x38,0xcb,0x6c,0xaa,0x80,0x1e,0x7e,0x70,0x9, 0xac,0x7a,0x49,0x43,0x6d,0x14,0x7e, +0x50,0x2, 0xac,0x5a,0x3e,0x24,0x59,0x42,0x24,0x94,0x49,0x33,0x6d,0x16,0x59,0x32, +0x24,0x96,0xb, 0xa0,0x7e,0xb3,0x6e,0x7c,0xbc,0xba,0x38,0xda,0x7e,0x34,0x24,0x6c, +0x7a,0x37,0x62,0xd8,0x7e,0x34,0x24,0x94,0x7a,0x37,0x62,0xda,0x7e,0x34,0x24,0xbc, +0x7a,0x37,0x62,0xdc,0x7e,0x73,0x3, 0xc8,0x7a,0x73,0x62,0xd6,0x7e,0x73,0x6e,0x7c, +0x7a,0x73,0x62,0xd7,0x7e,0x8, 0x62,0xd6,0x12,0x1, 0x20,0x6c,0xaa,0x80,0x5c,0x7e, +0x70,0xff,0x75,0x26,0x0, 0x80,0x1d,0x7e,0x51,0x26,0x74,0x2, 0xac,0x5b,0x49,0x12, +0x24,0xbc,0xa, 0x2a,0xbd,0x21,0x78,0xa, 0xe5,0x26,0xa, 0x3b,0x9, 0x73,0x62,0xcc, +0x80,0x7, 0x5, 0x26,0x12,0x81,0xc1,0x38,0xde,0xbe,0x70,0xff,0x68,0x2b,0x12,0x85, +0x7f,0x74,0x1, 0xa, 0x47,0x19,0xb4,0x62,0xb8,0x7e,0x50,0x9, 0xac,0x5a,0x49,0x42, +0x6d,0x14,0x12,0x85,0x75,0x79,0x40,0x0, 0x2, 0x7e,0x50,0x9, 0xac,0x5a,0x49,0x42, +0x6d,0x16,0x12,0x85,0x75,0x79,0x40,0x0, 0x4, 0xb, 0xa0,0x7e,0x63,0x6e,0x7c,0xbc, +0x6a,0x38,0x9c,0x6c,0xaa,0x80,0x20,0xa, 0x3a,0x9, 0xb3,0x62,0xb8,0xbe,0xb0,0x1, +0x68,0x13,0x7e,0x44,0x7f,0xff,0x12,0x85,0x6b,0x79,0x40,0x0, 0x2, 0x2d,0x37,0x7d, +0x26,0x79,0x41,0x0, 0x4, 0xb, 0xa0,0x12,0x4c,0xf7,0x38,0xdb,0x7e,0x73,0x6e,0x7c, +0x7a,0x73,0x3, 0xc8,0x7f,0x3, 0x7e,0x18,0x62,0xb8,0x12,0x84,0xd0,0xda,0x3b,0x22, +0xca,0x79,0x7e,0xa3,0x6e,0x7c,0x6c,0x99,0x80,0x77,0xa, 0xf9,0x2d,0xf3,0x7d,0xe2, +0x7e,0x7b,0xb0,0xb4,0x1, 0x27,0x12,0x85,0x59,0x29,0xb7,0x0, 0x1, 0xb4,0x1, 0x6, +0x74,0x3, 0x39,0xb7,0x0, 0x1, 0x12,0x85,0x59,0x29,0x87,0x0, 0x1, 0xbe,0x80,0x3, +0x78,0x3, 0xe4,0x80,0x32,0x4c,0x88,0x78,0x31,0x74,0x2, 0x80,0x2a,0x12,0x85,0x59, +0x29,0xb7,0x0, 0x1, 0xbe,0xb0,0x2, 0x68,0x8, 0x60,0x6, 0x29,0xb7,0x0, 0x7, 0x70, +0x14,0x74,0x1, 0x7a,0x7b,0xb0,0x7c,0x8a,0xb, 0xa0,0x7e,0xf0,0x9, 0xac,0xf8,0x19, +0x97,0x6d,0x18,0x80,0x5, 0x74,0x3, 0x7a,0x7b,0xb0,0x12,0x85,0x59,0x7e,0x7b,0xb0, +0x39,0xb7,0x0, 0x1, 0x12,0x85,0x59,0x29,0xb7,0x0, 0x1, 0x39,0xb7,0x0, 0x7, 0xb, +0x90,0x12,0x85,0x9d,0x38,0x84,0xda,0x79,0x22,0x7e,0xf0,0x9, 0xac,0xf9,0x7f,0x70, +0x2d,0xf7,0x22,0x7e,0x10,0x2, 0xac,0x1a,0x3e,0x4, 0x22,0x7e,0x70,0x9, 0xac,0x7a, +0x7f,0x3, 0x2d,0x13,0x22,0x7e,0x50,0x9, 0xac,0x57,0x7f,0x3, 0x2d,0x12,0x22,0x7e, +0x50,0x9, 0xac,0x5a,0x19,0x72,0x6d,0x18,0x22,0x7e,0x10,0x40,0xac,0x1, 0x7d,0xd0, +0x9e,0xd4,0x0, 0x20,0x22,0x7e,0x71,0x26,0x74,0x9, 0xac,0x7b,0x22,0x90,0x21,0x51, +0xe4,0x93,0xbc,0xb9,0x22,0x7e,0x8, 0x62,0xb8,0xca,0x69,0xca,0xf8,0x7f,0x70,0x7c, +0x86,0x7c,0xf7,0x7c,0xab,0x6c,0x99,0xc1,0x69,0x7c,0x3f,0xc1,0x61,0x7e,0x10,0x9, +0xac,0x19,0x9, 0x20,0x6d,0xcc,0x7e,0x10,0x9, 0xac,0x13,0x9, 0xb0,0x6d,0x18,0xbc, +0xb2,0x68,0x2, 0xc1,0x5f,0xbe,0x20,0xff,0x78,0x2, 0xc1,0x5f,0x7e,0xd0,0x9, 0xac, +0xd2,0x9, 0xb6,0x6e,0x22,0x70,0xa, 0x7d,0x30,0x2e,0x34,0x6d,0x14,0x6d,0x22,0x80, +0xb, 0x7e,0x70,0x9, 0xac,0x79,0x2e,0x34,0x6d,0xc8,0x6d,0x22,0x29,0x11,0x0, 0x4, +0x12,0x86,0x77,0x39,0x16,0x0, 0x4, 0xb, 0x1a,0x0, 0x12,0x86,0x77,0x1b,0x6a,0x0, +0x69,0x1, 0x0, 0x2, 0x12,0x86,0x77,0x79,0x6, 0x0, 0x2, 0x7e,0x10,0x9, 0xac,0x13, +0x9, 0x10,0x6d,0x19,0x12,0x86,0x77,0x39,0x16,0x0, 0x5, 0x7e,0x10,0x9, 0xac,0x13, +0x9, 0x10,0x6d,0x1a,0x12,0x86,0x77,0x39,0x16,0x0, 0x6, 0x7e,0x10,0x9, 0xac,0x13, +0x9, 0x10,0x6d,0x1b,0x12,0x86,0x77,0x39,0x16,0x0, 0x7, 0x7e,0x10,0x9, 0xac,0x13, +0x9, 0x10,0x6d,0x1c,0x12,0x86,0x77,0x39,0x16,0x0, 0x8, 0xb, 0xa0,0x80,0x8, 0xb, +0x30,0xbc,0x83,0x28,0x2, 0xa1,0xbd,0xb, 0x90,0x12,0x85,0x9d,0x28,0x2, 0xa1,0xb9, +0x7c,0xba,0xda,0xf8,0xda,0x69,0x22,0x7e,0xd0,0x9, 0xac,0xda,0x7f,0x67,0x2d,0xd6, +0x22,0xca,0x79,0x7c,0xeb,0x90,0x21,0x51,0xe4,0x93,0x7c,0xfb,0x7e,0x70,0x9, 0xac, +0x7f,0x7e,0x8, 0x62,0xb8,0x74,0xff,0x12,0x24,0x34,0xe4,0x6c,0x77,0x7c,0x6e,0x12, +0x85,0xa5,0x7c,0x7e,0x7c,0x6f,0x12,0x85,0xa5,0x7c,0x1b,0x6c,0x0, 0x80,0x3e,0x6c, +0x99,0x80,0x17,0x74,0x9, 0xac,0xb9,0x9, 0xa5,0x62,0xbc,0x7e,0x30,0x9, 0xac,0x30, +0x9, 0x81,0x6d,0x18,0xbc,0x8a,0x68,0x6, 0xb, 0x90,0xbc,0x19,0x38,0xe5,0xbc,0x19, +0x78,0x19,0x7e,0x70,0x9, 0xac,0x70,0x2e,0x34,0x6d,0x14,0x7e,0x30,0x9, 0xac,0x31, +0x2e,0x14,0x62,0xb8,0x74,0x9, 0x12,0x23,0x44,0xb, 0x10,0xb, 0x0, 0xbc,0xf0,0x38, +0xbe,0x74,0x9, 0xac,0xbf,0xca,0x59,0x7e,0x18,0x62,0xb8,0x7e,0x8, 0x6d,0xc8,0x12, +0x24,0xf, 0x1b,0xfd,0xda,0x79,0x22,0xca,0x79,0x7e,0xf3,0x6e,0x7c,0x7e,0xe3,0x6e, +0x7d,0x7c,0xbf,0x7c,0x7e,0x12,0x4c,0x9e,0x7c,0xbf,0x12,0x86,0x81,0x4c,0xee,0x78, +0x17,0x12,0x87,0x98,0xca,0x59,0x7e,0x18,0x6d,0x14,0x7e,0x8, 0x6d,0xc8,0x12,0x24, +0xf, 0x1b,0xfd,0x12,0x87,0x4e,0x80,0xe, 0x7e,0xb3,0x6e,0x83,0x70,0x8, 0x12,0x87, +0x4e,0x7c,0xbf,0x12,0xb0,0xa7,0x7c,0xbf,0x12,0xb9,0xc8,0xda,0x79,0x22,0x7e,0xa3, +0x6e,0x7c,0x6c,0x77,0x80,0x3d,0x7e,0x90,0x9, 0xac,0x97,0x9, 0x64,0x6d,0xcc,0x7e, +0x50,0x9, 0xac,0x56,0x9, 0xb2,0x6e,0x22,0x70,0x27,0x74,0x1, 0x19,0xb2,0x59,0xe1, +0x49,0x14,0x6d,0x14,0x59,0x12,0x59,0xe2,0x49,0x14,0x6d,0x16,0x59,0x12,0x59,0xe4, +0xe4,0x19,0xb2,0x59,0xe6,0x19,0xb2,0x59,0xde,0x19,0xb2,0x59,0xdf,0x19,0xb2,0x59, +0xe0,0xb, 0x70,0xbc,0xa7,0x38,0xbf,0x22,0x90,0x21,0x51,0xe4,0x93,0x7c,0xab,0x74, +0x9, 0xa4,0x22,0x7e,0xb3,0x28,0xe4,0x4, 0x7a,0xb3,0x28,0xe4,0x7e,0x73,0x28,0xe4, +0x7a,0x73,0x76,0x19,0x22,0x6c,0xaa,0x7e,0x70,0x4, 0xac,0x7a,0x9, 0xb3,0x28,0xb8, +0x60,0x8, 0x74,0x1, 0x7a,0xb3,0x6e,0x87,0x80,0x7, 0xb, 0xa0,0xbe,0xa0,0xa, 0x40, +0xe6,0xe4,0x7a,0xb3,0x6e,0x87,0x22,0xe4,0x7a,0xb3,0x76,0x7c,0x90,0x1c,0x45,0x93, +0x7a,0xb3,0x76,0x7e,0x90,0x1c,0x46,0xe4,0x93,0x7a,0xb3,0x76,0x7f,0x90,0x21,0x51, +0xe4,0x93,0x7a,0xb3,0x76,0x81,0xe4,0x7a,0xb3,0x76,0x82,0x7a,0xb3,0x76,0x87,0x12, +0x47,0xb6,0xe4,0x7a,0xb3,0x76,0x8a,0x7e,0x73,0x29,0xb5,0x7a,0x73,0x76,0x9c,0x7e, +0x73,0x29,0xb6,0x7a,0x73,0x76,0x9d,0x7e,0x73,0x29,0xb7,0x7a,0x73,0x76,0x9e,0x7e, +0x73,0x29,0x84,0x7a,0x73,0x76,0xa5,0x7e,0x73,0x29,0x85,0x7a,0x73,0x76,0xa6,0x90, +0x1c,0x49,0x93,0x7a,0xb3,0x76,0x9a,0x90,0x1c,0x4a,0xe4,0x93,0x7a,0xb3,0x76,0x9b, +0x74,0x1, 0x7a,0xb3,0x76,0xac,0x7e,0x34,0x22,0x32,0x12,0x29,0xdb,0x7a,0x37,0x76, +0xd6,0x74,0x2, 0x7a,0xb3,0x76,0x85,0x74,0x17,0x7a,0xb3,0x76,0xa9,0x22,0x7e,0x18, +0x14,0x30,0x7a,0x1f,0x24,0x64,0x7e,0x18,0x4, 0x0, 0x7a,0x1f,0x24,0x68,0x7e,0xf, +0x24,0x64,0x12,0x37,0xef,0x7e,0xf, 0x24,0x68,0x7e,0x34,0x4, 0xc, 0x12,0x24,0x34, +0x7a,0xb3,0x25,0xae,0x22,0x7e,0x8, 0x6b,0x54,0x7e,0x34,0x1, 0xa1,0xe4,0x12,0x24, +0x34,0x90,0x21,0x52,0x93,0x7c,0x7b,0x74,0x9, 0xac,0x7b,0x7e,0x8, 0x6b,0xd0,0x74, +0xff,0x2, 0x24,0x34,0x7e,0x34,0x22,0x5, 0x12,0x29,0xdb,0x7a,0x37,0x6c,0xf7,0x7e, +0x34,0x22,0x7, 0x12,0x29,0xdb,0x7a,0x37,0x6c,0xf9,0x7e,0x34,0x22,0x9, 0x12,0x29, +0xdb,0x12,0x88,0xd7,0x90,0x22,0xc, 0xe4,0x93,0x7a,0xb3,0x6c,0xfe,0xe4,0x7a,0xb3, +0x6d,0x7, 0x7a,0xb3,0x6d,0x8, 0x22,0x7a,0x37,0x6c,0xfb,0x90,0x22,0xb, 0xe4,0x93, +0x7a,0xb3,0x6c,0xfd,0x22,0x7c,0x6b,0x7c,0x56,0x5e,0x50,0x4, 0x1e,0x50,0xa, 0x45, +0x7c,0xb6,0x54,0x1, 0xa, 0x5b,0x2d,0x54,0x7c,0xab,0x7c,0x67,0x5e,0x60,0x4, 0x1e, +0x60,0xa, 0x26,0x7c,0xb7,0x54,0x1, 0xa, 0x3b,0x2d,0x32,0x7c,0xb7,0xa, 0x4b,0x3e, +0x44,0x3e,0x44,0xa, 0x5a,0x2d,0x54,0x7c,0xab,0x7a,0xa3,0x73,0x25,0xe4,0x7a,0xb3, +0x73,0x26,0x7e,0x70,0x4, 0x7c,0xba,0x30,0xe0,0x9, 0x7e,0xb3,0x73,0x26,0x4, 0x7a, +0xb3,0x73,0x26,0x1e,0xa0,0x1b,0x70,0x78,0xec,0x22,0x7c,0x9b,0x12,0xd8,0xab,0x7e, +0x50,0xa, 0xac,0x59,0x59,0x32,0x29,0x8c,0x74,0x27,0xac,0xb9,0x49,0x5, 0x28,0xeb, +0x59,0x2, 0x29,0x8e,0x49,0x15,0x28,0xed,0xb, 0x14,0xad,0x10,0x6d,0x0, 0x59,0x12, +0x29,0x92,0x59,0x2, 0x29,0x90,0x12,0x89,0x7f,0x19,0xa3,0x29,0x8a,0x74,0x27,0xac, +0xb9,0x49,0x35,0x28,0xed,0xb, 0x34,0x12,0x89,0x7f,0x19,0xa3,0x29,0x8b,0x22,0x12, +0x89,0x8a,0x7c,0xab,0x7e,0x70,0xa, 0xac,0x79,0x22,0xe4,0x80,0x5, 0xb, 0x34,0x1e, +0x34,0x4, 0xbe,0x34,0x0, 0x10,0x38,0xf5,0x22,0xca,0x3b,0x7c,0xeb,0xc2,0x2, 0x7e, +0x70,0x27,0xac,0x7e,0x9, 0xf3,0x28,0xea,0x12,0x8a,0x4f,0x4c,0xee,0x68,0x18,0xd2, +0x2, 0xe4,0x19,0xb3,0x28,0xe8,0x7c,0xbe,0x12,0x89,0x3a,0x12,0x8a,0x26,0x12,0x8a, +0x59,0x12,0x3c,0x8, 0x12,0x8a,0xa5,0xa2,0x2, 0xda,0x3b,0x22,0xca,0x79,0x7c,0xfb, +0xd2,0x0, 0xc2,0x1, 0x6d,0x33,0x7a,0x37,0x77,0xd0,0x74,0x27,0xac,0xbf,0x9, 0xe5, +0x28,0xe8,0x7c,0xbf,0x12,0x89,0x99,0x92,0x1, 0x7c,0xbf,0x12,0x8a,0x72,0x92,0x0, +0x30,0x0, 0x7, 0x7c,0xbf,0x7c,0x7f,0x12,0x41,0x66,0x7e,0xb3,0x76,0xaa,0x70,0xc, +0x7c,0xbf,0x12,0xd8,0xe2,0x92,0x2e,0x20,0x2e,0x2, 0xc2,0x0, 0x30,0x1, 0x12,0x74, +0x27,0xac,0xbf,0x19,0xe5,0x28,0xe8,0x7c,0xbf,0x12,0x89,0x3a,0x7c,0xbf,0x12,0x8a, +0x3a,0xa2,0x0, 0xda,0x79,0x22,0xe4,0x7a,0xb3,0x76,0xfc,0x12,0xe5,0xd2,0x7a,0xb3, +0x76,0xff,0x12,0xe4,0xbb,0x7a,0xb3,0x77,0x7, 0x22,0xca,0x3b,0x7c,0xeb,0x12,0xe6, +0x43,0x12,0x8a,0x4f,0xe5,0x1e,0x12,0x3b,0xdd,0x12,0x8a,0xa5,0xda,0x3b,0x22,0x7e, +0xd0,0xb5,0xac,0xdf,0x2e,0x64,0x1, 0x0, 0x22,0x7e,0x34,0x0, 0x4, 0x12,0x8f,0x77, +0x74,0x1, 0x12,0x8f,0xbf,0x7e,0x73,0x77,0xe1,0x7a,0x73,0x77,0x2, 0x7a,0x73,0x77, +0x3, 0x22,0xca,0xf8,0x7c,0xab,0xc2,0x2, 0x12,0x8f,0x6f,0xac,0x67,0x9, 0xf3,0x74, +0x82,0x7c,0xba,0x12,0x8a,0xf4,0x6c,0xaa,0x6c,0x77,0x7e,0x50,0x26,0xac,0x57,0x19, +0xa2,0x74,0x8e,0xb, 0x70,0xa5,0xbf,0x3, 0xf1,0x30,0x2, 0x5, 0x7c,0xbf,0x12,0x34, +0xac,0xd3,0xda,0xf8,0x22,0xe4,0x12,0x35,0x28,0x7e,0x30,0x2c,0xac,0x3f,0x2e,0x14, +0x0, 0xf4,0x6d,0x0, 0x74,0x1, 0x7e,0x70,0x27,0xac,0x7e,0x9, 0x73,0x28,0xe8,0x12, +0xd, 0x23,0x7e,0x30,0x2c,0xac,0x3f,0x2e,0x14,0x0, 0xf8,0x6d,0x0, 0x74,0xa, 0xac, +0xbe,0x9, 0xb5,0x29,0x8a,0x12,0xd, 0x73,0x7d,0x36,0xb, 0x35,0x74,0x2c,0xac,0xbf, +0x49,0x25,0x0, 0xf8,0x12,0x0, 0x2e,0x7d,0x36,0x74,0x2c,0xac,0xbf,0x49,0x25,0x0, +0xf4,0x2, 0x0, 0x2e,0x7c,0x9b,0x7e,0x24,0x0, 0x1, 0x7c,0xb9,0x60,0x5, 0x3e,0x24, +0x14,0x78,0xfb,0x7e,0x83,0x73,0x1f,0xa, 0x38,0x5d,0x32,0x68,0xb, 0x12,0x46,0x5d, +0x7e,0x83,0x74,0x7e,0x7a,0x83,0x75,0x6, 0x6c,0xaa,0x7e,0xb3,0x75,0x6, 0xbc,0xba, +0x78,0x8, 0x6c,0x88,0x12,0x8b,0x55,0xe4,0x80,0x1f,0x7e,0x24,0x0, 0x1, 0x7c,0xb9, +0x60,0x5, 0x3e,0x24,0x14,0x78,0xfb,0x7e,0xb3,0x73,0x1f,0xa, 0x3b,0x5d,0x32,0x68, +0xc, 0x7e,0x80,0x1, 0x12,0x8b,0x55,0x74,0x1, 0x19,0xb3,0x74,0x8f,0xb, 0xa0,0xbe, +0xa0,0x3, 0x40,0xc6,0x22,0x7e,0x70,0x26,0xac,0x7a,0x19,0x83,0x74,0x8e,0x22,0xca, +0xf8,0x7e,0xf3,0x77,0xe1,0x20,0xb, 0x6, 0x20,0xc, 0x3, 0x30,0xe, 0x3, 0xc3,0x80, +0x57,0x12,0x8b,0xcb,0x60,0x5, 0x3e,0x34,0x14,0x78,0xfb,0x7e,0x53,0x73,0x1f,0x6c, +0x44,0x5c,0x57,0x4d,0x22,0x68,0x40,0x7e,0xb3,0x76,0xaa,0x70,0x8, 0x4e,0x73,0x73, +0x20,0x7a,0x73,0x73,0x20,0x12,0x8f,0x67,0x12,0x89,0xcc,0x40,0x3, 0xc3,0x80,0x28, +0x20,0xb, 0x6, 0x20,0xc, 0x3, 0x30,0xe, 0x3, 0xc3,0x80,0x1c,0x12,0x8b,0xcb,0x60, +0x5, 0x3e,0x34,0x14,0x78,0xfb,0x6e,0x70,0xff,0x5e,0x73,0x73,0x1f,0x7a,0x73,0x73, +0x1f,0x12,0x8b,0xd2,0xd3,0x80,0x1, 0xd3,0xda,0xf8,0x22,0x7e,0x34,0x0, 0x1, 0x7c, +0xbf,0x22,0x7e,0x73,0x76,0x14,0x7e,0xb3,0x76,0x2f,0x70,0x3a,0xe5,0x1e,0x70,0x1d, +0x7e,0x63,0x76,0x12,0xbe,0x60,0x14,0x28,0x5, 0x7e,0x60,0x14,0x80,0x7, 0xa5,0xbe, +0x0, 0x3, 0x7e,0x60,0x1, 0xa, 0x26,0x7e,0x34,0x0, 0x64,0x80,0x74,0xe5,0x1e,0xb4, +0x3, 0x2, 0x80,0x44,0x12,0x8c,0x90,0xb4,0x1, 0x6, 0x7e,0x34,0x1, 0xf4,0x80,0x61, +0x7e,0x34,0x3, 0xe8,0x80,0x5b,0xe5,0x1e,0x70,0xe, 0x7e,0x63,0x76,0x13,0xbe,0x60, +0x7f,0x28,0x53,0x7e,0x60,0x7f,0x80,0x4e,0x7e,0x63,0x29,0xfc,0xbe,0x60,0x3b,0x40, +0x12,0x12,0x8c,0x90,0xb4,0x1, 0x6, 0x7e,0x34,0x1, 0xf4,0x80,0x26,0x7e,0x34,0x3, +0xe8,0x80,0x20,0xe5,0x1e,0xb4,0x3, 0x8, 0x7e,0x73,0x76,0x49,0xa, 0x37,0x80,0x15, +0x30,0x1a,0x18,0x12,0x8c,0x90,0xb4,0x1, 0x6, 0x7e,0x34,0x1, 0xf4,0x80,0x4, 0x7e, +0x34,0x3, 0xe8,0x8d,0x32,0x1b,0x34,0x7c,0x67,0x80,0xb, 0xa, 0x27,0x7e,0x34,0x3, +0xe8,0x12,0x22,0x71,0x7c,0x67,0x7e,0x73,0x76,0x36,0xac,0x67,0x7e,0x24,0x0, 0x18, +0x12,0x22,0x71,0x7a,0x73,0x77,0xd4,0xc2,0x14,0x6d,0x33,0x7a,0x37,0x77,0xd0,0x22, +0x7e,0xb3,0x77,0xd9,0xa, 0x27,0x22,0x7e,0xa1,0x2a,0x74,0xa, 0xa4,0x49,0x35,0x29, +0x8c,0x7d,0xb3,0x7f,0x70,0x7d,0x3b,0x12,0x89,0x8a,0x7c,0x7b,0xa, 0x57,0x2e,0x54, +0x0, 0xb, 0x7e,0x18,0x0, 0x1, 0x60,0x5, 0x2f,0x11,0x14,0x78,0xfb,0x74,0x4, 0x2f, +0x11,0x14,0x78,0xfb,0x7d,0x1b,0x12,0x22,0xbd,0x7f,0x61,0xbe,0xb4,0x0, 0x10,0x68, +0x6e,0x7e,0x73,0x6e,0xaf,0x7a,0x73,0x65,0x1e,0x7e,0x73,0x6e,0xb0,0x7a,0x73,0x65, +0x1f,0x74,0xb, 0x7a,0xb3,0x65,0x20,0x7d,0xaf,0x7a,0xa7,0x65,0x22,0x7a,0xa7,0x65, +0x26,0xbe,0xb4,0x0, 0x2, 0x38,0xd, 0xe4,0x7a,0xb3,0x65,0x20,0x7e,0xd4,0x0, 0x10, +0x8d,0xdb,0x6d,0xcc,0x7e,0x8, 0x65,0x1e,0x7d,0x3d,0x12,0x9, 0x50,0x7e,0x47,0x73, +0x21,0x7e,0xa0,0x4, 0x7d,0x34,0x3e,0x34,0x7f,0x57,0x2d,0xb3,0xb, 0x5a,0x10,0x7f, +0x16,0x12,0x22,0xb4,0x7e,0xb3,0x65,0x20,0x60,0xc, 0x1e,0x34,0x1e,0x24,0x50,0x3, +0x4e,0x60,0x80,0x14,0x78,0xf4,0x1b,0x5a,0x30,0xb, 0x44,0x1b,0xa0,0x78,0xd5,0x22, +0xca,0xd8,0xca,0x79,0xd2,0x0, 0x12,0x4e,0x92,0x50,0xfb,0x7e,0xe3,0x77,0x6, 0x7a, +0xe3,0x25,0xaf,0x7e,0xd3,0x77,0x7, 0xa, 0x3e,0x9, 0xb3,0x77,0x0, 0x60,0x38,0xa, +0x3b,0x1b,0x34,0x7c,0xa7,0x7a,0xa3,0x76,0xa7,0xb4,0x1, 0x4, 0x74,0x1, 0x80,0x1, +0xe4,0x7a,0xb3,0x25,0xae,0xe4,0xa, 0x3e,0x19,0xb3,0x77,0x0, 0x9, 0xf3,0x77,0x2, +0x7c,0xbe,0x7c,0x7f,0x12,0x8e,0x47,0x7c,0xbe,0x7c,0x7f,0x12,0xc5,0xd6,0x7e,0xb3, +0x77,0x6, 0x4, 0x7a,0xb3,0x77,0x6, 0x7e,0x73,0x77,0x7, 0xbe,0x73,0x77,0x6, 0x38, +0x9, 0x12,0x28,0xaf,0x12,0x8e,0xd4,0x12,0x3b,0x72,0x7e,0xb3,0x25,0xae,0xbe,0xb0, +0x1, 0x68,0x7, 0x7e,0xb3,0x77,0xfa,0xb4,0x3, 0x46,0x74,0xa, 0xac,0xbf,0x49,0x35, +0x29,0x8c,0x7e,0xf, 0x24,0x60,0x12,0x8c,0xa1,0x7c,0xbe,0x7c,0x7f,0x12,0x8e,0x78, +0x92,0x0, 0x7e,0xb3,0x77,0xd9,0x70,0xc, 0xbe,0xe0,0x1, 0x40,0x7, 0xe4,0x7a,0xb3, +0x25,0xae,0xc2,0x0, 0x7c,0xbe,0x7c,0x7f,0x12,0xc3,0x47,0x30,0x0, 0x12,0x12,0x76, +0xeb,0x7c,0xbe,0x7c,0x7f,0x12,0xc2,0x79,0x7a,0xe3,0x76,0xa8,0x7a,0xf3,0x77,0xe5, +0x7e,0xb3,0x77,0xfa,0xb4,0x1, 0x3, 0x12,0x92,0x2d,0x7c,0xbd,0x14,0xbc,0xbe,0x78, +0x3, 0x12,0xb, 0xe5,0x12,0xd2,0xf2,0x12,0x75,0x1b,0x50,0x7, 0x7c,0xbf,0x7c,0x7e, +0x12,0xc0,0xa1,0xda,0x79,0xda,0xd8,0x22,0xca,0xf8,0x6c,0xff,0x12,0x8d,0x40,0xb, +0xf0,0x7e,0x73,0x77,0x7, 0xbc,0x7f,0x38,0xf3,0x12,0x8e,0x3f,0xda,0xf8,0x22,0x7e, +0xb3,0x76,0xa8,0x7e,0x73,0x77,0xe5,0x14,0x68,0x1d,0x4, 0x78,0x1a,0x7e,0x8, 0xc, +0x18,0x7a,0xf, 0x24,0x60,0x7e,0x8, 0x14,0x30,0x7a,0xf, 0x24,0x64,0xa5,0xbf,0x3, +0x16,0x7e,0x18,0x1c,0x48,0x80,0xc, 0x7e,0x18,0x10,0x24,0x7a,0x1f,0x24,0x60,0x7e, +0x18,0x18,0x3c,0x7a,0x1f,0x24,0x64,0x22,0x7c,0x67,0x7c,0x7b,0xd2,0x1, 0x7e,0xb3, +0x77,0xfa,0xb4,0x3, 0x4c,0x7c,0xb6,0x12,0x8f,0x4b,0x50,0x45,0x7e,0xa3,0x76,0x85, +0xbe,0xa0,0x2, 0x40,0x32,0x7e,0xb3,0x76,0x8d,0x70,0x28,0x7e,0x63,0x78,0x41,0xa, +0x26,0x2e,0x24,0x0, 0xe, 0x12,0xc5,0x13,0x24,0xff,0x92,0x1, 0x7c,0xb6,0x4, 0x7a, +0xb3,0x78,0x41,0x7e,0x63,0x78,0x41,0xbe,0x60,0x4, 0x40,0x15,0xe4,0x7a,0xb3,0x78, +0x41,0x80,0xe, 0xd2,0x1, 0x80,0xa, 0xbc,0xa7,0x78,0x4, 0xd2,0x1, 0x80,0x2, 0xc2, +0x1, 0xa2,0x1, 0x22,0x12,0xc7,0xb7,0xc2,0x17,0x7e,0xb3,0x74,0x81,0x60,0x67,0x12, +0x8f,0x47,0x40,0x10,0x7e,0xa3,0x74,0x7f,0x74,0x26,0xa4,0x9, 0x75,0x74,0x83,0xbe, +0x70,0x1, 0x40,0x52,0x7e,0x73,0x74,0x7f,0xb, 0x70,0xbe,0x70,0x3, 0x40,0x2, 0x6c, +0x77,0x7e,0x14,0x0, 0x1, 0x7c,0xb7,0x60,0x5, 0x3e,0x14,0x14,0x78,0xfb,0x7e,0x63, +0x74,0x7b,0xa, 0x26,0x5d,0x21,0xbe,0x24,0x0, 0x0, 0x8, 0x9, 0xb, 0x70,0xbe,0x70, +0x3, 0x40,0x2, 0x6c,0x77,0x7e,0x63,0x74,0x7e,0xbc,0x67,0x78,0x9, 0x7e,0xb3,0x74, +0x80,0x4, 0x7a,0xb3,0x74,0x80,0x12,0xc1,0xa2,0x7e,0xb3,0x77,0xe1,0x38,0x4, 0x7c, +0x76,0x80,0x0, 0x2, 0x35,0x5a,0x22,0x7e,0xb3,0x77,0xe1,0x7c,0xab,0xd2,0x2, 0x7e, +0xb3,0x77,0xd9,0x70,0x4, 0xc2,0x2, 0x80,0xb, 0x4c,0xaa,0x68,0x5, 0xbe,0xa0,0x3, +0x78,0x2, 0xc2,0x2, 0xa2,0x2, 0x22,0xd2,0x4, 0x12,0x36,0xe7,0x7c,0xbf,0x22,0x7e, +0x63,0x74,0x7e,0x7e,0x70,0x26,0x22,0x7e,0x24,0xc, 0x18,0x7e,0x14,0x10,0x24,0x22, +0x6d,0x33,0x12,0x8f,0x77,0x7e,0x57,0x76,0xdc,0x12,0x8f,0xbf,0xe4,0x2, 0x8f,0x90, +0x7a,0xb3,0x77,0x2, 0x7a,0xb3,0x77,0x3, 0x22,0x7e,0x34,0x0, 0x2, 0x12,0x8f,0x77, +0x7e,0x57,0x76,0xec,0x12,0x8f,0xbf,0x74,0x2, 0x2, 0x8f,0x90,0x7e,0x34,0x0, 0x1, +0x12,0x8f,0x77,0x7e,0x57,0x76,0xe4,0x12,0x8f,0xbf,0x74,0x1, 0x2, 0x8f,0x90,0x7c, +0x1b,0x7d,0x43,0x7e,0xa3,0x76,0xfc,0xbe,0xa0,0x5, 0x50,0x1e,0x7e,0x70,0x7, 0xac, +0x7a,0x59,0x43,0x77,0x8, 0x59,0x23,0x77,0xa, 0x59,0x13,0x77,0xc, 0x19,0x13,0x77, +0xe, 0x7c,0xba,0x4, 0x7a,0xb3,0x76,0xfc,0xc3,0x22,0xd3,0x22,0x7e,0x34,0x0, 0x3, +0x12,0x8f,0x77,0x7e,0x57,0x76,0xf4,0x12,0x8f,0xbf,0x74,0x3, 0x2, 0x8f,0x90,0x7e, +0xb3,0x6e,0xa2,0x60,0x2, 0x41,0x6, 0x12,0x92,0x25,0x78,0x2, 0x41,0x6, 0x7e,0xa3, +0x6c,0xde,0xbe,0xa0,0x1, 0x78,0x1b,0x7e,0xb3,0x6c,0xf4,0x70,0x15,0x7e,0xb3,0x6b, +0x54,0x7a,0xb3,0x77,0x73,0x7e,0xb3,0x6b,0x55,0x7a,0xb3,0x77,0x74,0xe4,0x7a,0xb3, +0x77,0x75,0xbe,0xa0,0x0, 0x28,0x3e,0xc2,0x0, 0x6c,0x11,0x80,0x21,0x12,0x92,0x18, +0x7e,0x73,0x77,0x73,0xa, 0x27,0x1a,0x39,0x12,0x92,0xe, 0x58,0xf, 0x7e,0x73,0x77, +0x74,0xa, 0x27,0x1a,0x30,0x12,0x92,0xe, 0x58,0x2, 0xd2,0x0, 0xb, 0x10,0x12,0x92, +0x7, 0x38,0xda,0x30,0x0, 0xc, 0x7e,0xb3,0x77,0x75,0xbe,0xb0,0xc8,0x50,0xb, 0x4, +0x80,0x4, 0xe4,0x80,0x1, 0xe4,0x7a,0xb3,0x77,0x75,0x7e,0x73,0x6c,0xde,0xbe,0x70, +0x2, 0x50,0x2, 0x41,0x6, 0x7e,0xb3,0x6e,0x7d,0xb4,0x1, 0x2, 0x80,0x2, 0x41,0x6, +0x6d,0xee,0x6c,0x11,0x80,0x1a,0x12,0x92,0x18,0x12,0x57,0xf4,0x7d,0xd3,0xbd,0xde, +0x8, 0xc, 0x7d,0xed,0x7a,0x93,0x6c,0xe6,0x7a,0x3, 0x6c,0xe7,0x7c,0x81,0xb, 0x10, +0x12,0x92,0x7, 0x38,0xe1,0x6c,0x11,0x21,0xff,0xbc,0x81,0x78,0x2, 0x21,0xfd,0x7e, +0x30,0x2, 0xac,0x31,0x9, 0xb1,0x6b,0x54,0xf5,0x2a,0x9, 0xb1,0x6b,0x55,0xf5,0x2b, +0x7e,0xa3,0x6c,0xe6,0x7a,0xa1,0x2c,0x7e,0xb3,0x6c,0xe7,0xf5,0x2d,0xbe,0xa1,0x2a, +0x28,0x4, 0xe5,0x2a,0x80,0x2, 0xe5,0x2c,0xf5,0x26,0xe5,0x2c,0xbe,0xb1,0x2a,0x50, +0x4, 0xe5,0x2a,0x80,0x2, 0xe5,0x2c,0xf5,0x28,0xe5,0x2d,0xbe,0xb1,0x2b,0x28,0x4, +0xe5,0x2b,0x80,0x2, 0xe5,0x2d,0xf5,0x27,0xe5,0x2d,0xbe,0xb1,0x2b,0x50,0x5, 0x7e, +0xa1,0x2b,0x80,0x3, 0x7e,0xa1,0x2d,0x7a,0xa1,0x29,0xe5,0x26,0x1a,0xfb,0xe5,0x28, +0x1a,0x1b,0x9d,0x1f,0xb, 0x14,0x7c,0xb3,0xf5,0x2e,0xe5,0x27,0x1a,0x1b,0x1a,0x5a, +0x9d,0x51,0xb, 0x54,0xf5,0x2f,0x12,0x57,0x4, 0x7d,0xf3,0xe5,0x2f,0xbe,0xb1,0x2e, +0x50,0x50,0xe5,0x27,0xbe,0xb0,0x0, 0x8, 0x2, 0x15,0x27,0x7e,0x73,0x6e,0xb2,0xa, +0xc7,0x1b,0xc4,0xe5,0x29,0x1a,0x1b,0xbd,0x1c,0x58,0x2, 0x5, 0x29,0x7e,0x91,0x28, +0x12,0x57,0x4, 0x7d,0xe3,0x80,0x23,0x1b,0x90,0x6d,0xdd,0x7e,0x1, 0x29,0x80,0xe, +0x12,0x57,0xf4,0xbd,0x3d,0x8, 0x5, 0x12,0x57,0xf4,0x7d,0xd3,0x1b,0x0, 0xe5,0x27, +0xbc,0xb0,0x8, 0xec,0xbd,0xde,0x58,0x2, 0x7d,0xed,0xe5,0x26,0xbc,0xb9,0x48,0xd7, +0x80,0x4e,0xe5,0x26,0xbe,0xb0,0x0, 0x8, 0x2, 0x15,0x26,0x7e,0x73,0x6e,0xb1,0xa, +0xc7,0x1b,0xc4,0xe5,0x28,0x1a,0x1b,0xbd,0x1c,0x58,0x2, 0x5, 0x28,0x7e,0x1, 0x29, +0x12,0x57,0x4, 0x7d,0xe3,0x80,0x23,0x1b,0x0, 0x6d,0xdd,0x7e,0x91,0x28,0x80,0xe, +0x12,0x57,0xf4,0xbd,0x3d,0x8, 0x5, 0x12,0x57,0xf4,0x7d,0xd3,0x1b,0x90,0xe5,0x26, +0xbc,0xb9,0x8, 0xec,0xbd,0xde,0x58,0x2, 0x7d,0xed,0xe5,0x27,0xbc,0xb0,0x48,0xd7, +0x7d,0x3f,0x3e,0x34,0x3e,0x34,0x7e,0x24,0x0, 0xa, 0x12,0x22,0x71,0xbd,0x3e,0x58, +0xc, 0x7e,0x73,0x77,0x75,0xbe,0x70,0x28,0x50,0x3, 0x12,0x57,0x45,0xb, 0x10,0x12, +0x92,0x7, 0x28,0x2, 0x1, 0xb9,0x22,0x7e,0x73,0x6c,0xde,0xbc,0x71,0x22,0x9d,0x32, +0x12,0x24,0x56,0xbe,0x34,0x0, 0x2, 0x22,0x74,0x2, 0xac,0xb1,0x9, 0x95,0x6b,0x54, +0x9, 0x5, 0x6b,0x55,0x22,0x7e,0xb3,0x6e,0xa3,0xbe,0xb0,0x1, 0x22,0x6d,0x11,0x7d, +0x21,0x7d,0x31,0x80,0x1f,0x7d,0x1, 0x3e,0x4, 0x7e,0x2f,0x24,0x60,0x2d,0x50,0xb, +0x2a,0x0, 0xbe,0x4, 0x3a,0x98,0x28,0x2, 0xb, 0x24,0xbe,0x4, 0xb, 0xb8,0x50,0x2, +0xb, 0x34,0xb, 0x14,0x7e,0x7, 0x73,0x21,0xbd,0x1, 0x38,0xd9,0xbe,0x24,0x0, 0xb4, +0x28,0x7, 0x7e,0xb3,0x77,0x70,0x4, 0x80,0x1, 0xe4,0x7a,0xb3,0x77,0x70,0xbe,0x34, +0x0, 0x32,0x28,0x7, 0x7e,0xb3,0x77,0x72,0x4, 0x80,0x1, 0xe4,0x7a,0xb3,0x77,0x72, +0x7e,0xa3,0x77,0x70,0xbe,0xa0,0x2, 0x40,0x6, 0x74,0xaa,0x7a,0xb3,0x76,0x77,0xbe, +0xa0,0x4, 0x50,0x9, 0x7e,0x73,0x77,0x72,0xbe,0x70,0x4, 0x40,0x3, 0x75,0xe9,0xff, +0x22,0x7c,0xab,0x7e,0x70,0x2, 0xac,0x7a,0x9, 0xb3,0x6b,0x54,0x9, 0x73,0x6b,0x55, +0x2, 0x57,0x9, 0xca,0x3b,0x7c,0xf4,0x7a,0x51,0x2b,0x7c,0xe6,0x7c,0xd7,0x7c,0xcb, +0x75,0x35,0x0, 0x75,0x36,0x0, 0x75,0x37,0x0, 0x75,0x38,0x0, 0x75,0x39,0x0, 0x75, +0x3a,0x0, 0x75,0x3f,0x0, 0x7e,0x37,0x6e,0x9f,0x7a,0x35,0x40,0x6c,0xaa,0x7e,0x71, +0x2b,0x74,0x9, 0xac,0x7b,0x19,0xa3,0x6b,0xd5,0xe4,0x19,0xb3,0x6b,0xd6,0x7e,0x13, +0x6e,0xaf,0x7e,0xb3,0x6e,0xb0,0xf5,0x34,0x12,0xe6,0x19,0xf5,0x32,0x9, 0xb3,0x6b, +0x55,0xf5,0x33,0x7c,0xbe,0x12,0x92,0xa1,0x12,0x97,0x87,0x7a,0x35,0x40,0x7e,0x37, +0x6e,0x9f,0xbe,0x35,0x40,0x8, 0x3, 0x7a,0x35,0x40,0xe5,0x32,0x7c,0x71,0x7c,0x6c, +0x7e,0x8, 0x0, 0x37,0x12,0x95,0x74,0xf5,0x35,0xe5,0x33,0x7e,0x71,0x34,0x7c,0x6d, +0x7e,0x8, 0x0, 0x38,0x12,0x95,0x74,0xf5,0x36,0xbe,0xf0,0x1, 0xe5,0x37,0x7e,0x71, +0x38,0x78,0xb, 0x12,0x57,0xe7,0x3e,0x34,0x2e,0x34,0x20,0x54,0x80,0x3, 0x12,0x57, +0xd9,0x7a,0x35,0x3d,0x7a,0x37,0x62,0xbe,0x7e,0x34,0x24,0xbc,0x7a,0x37,0x62,0xc0, +0xe5,0x37,0x7a,0xb3,0x62,0xb8,0xe5,0x38,0x7a,0xb3,0x62,0xb9,0xe5,0x35,0x7a,0xb3, +0x62,0xba,0xe5,0x36,0x7a,0xb3,0x62,0xbb,0x7e,0x73,0x6e,0x8a,0x7a,0x73,0x62,0xbc, +0xe4,0x7a,0xb3,0x62,0xbd,0x7e,0x8, 0x62,0xb8,0x12,0x8, 0x73,0x7e,0x37,0x24,0xbc, +0x7d,0x23,0x6d,0x33,0x7e,0xb7,0x24,0xbe,0x6d,0xaa,0x2f,0x51,0x7e,0x37,0x24,0xc0, +0x6d,0x22,0x7d,0x3, 0x6d,0x11,0x7e,0x37,0x24,0xc2,0x2f,0x10,0x7a,0x1d,0x2c,0x7e, +0x37,0x24,0xc4,0x7d,0x23,0x6d,0x33,0x7e,0x97,0x24,0xc6,0x6d,0x88,0x2f,0x41,0x7f, +0x65,0xe5,0x35,0xa, 0x4b,0xe5,0x37,0xa, 0x5b,0x2d,0x54,0xf5,0x39,0xe5,0x36,0xa, +0x4b,0xe5,0x38,0xa, 0x5b,0x2d,0x54,0xf5,0x3a,0x85,0x37,0x30,0x81,0xc4,0x85,0x38, +0x31,0x81,0xb9,0xbe,0xf0,0x1, 0x78,0x15,0xe5,0x34,0x7e,0x71,0x30,0xac,0x7b,0xe5, +0x31,0xa, 0x2b,0x2d,0x32,0x3e,0x34,0x49,0x33,0x20,0x54,0x80,0x8, 0xe5,0x30,0x7e, +0x71,0x31,0x12,0x57,0x9, 0x7e,0x53,0x6e,0x8a,0xa, 0x25,0x9d,0x32,0x12,0xe6,0xae, +0x18,0x2, 0x81,0xb7,0x7e,0x35,0x40,0xbe,0x35,0x3b,0x18,0x2, 0x5, 0x3f,0xe5,0x32, +0xa, 0x1b,0xe5,0x30,0x12,0x95,0x69,0x8, 0x4, 0x9d,0x31,0x80,0x4, 0x6d,0x33,0x9d, +0x32,0xbe,0x34,0x0, 0x1, 0x18,0x19,0xe5,0x33,0xa, 0x1b,0xe5,0x31,0x12,0x95,0x69, +0x8, 0x4, 0x9d,0x31,0x80,0x4, 0x6d,0x33,0x9d,0x32,0xbe,0x34,0x0, 0x1, 0x8, 0x67, +0xbe,0xc0,0x3, 0x40,0x9, 0xbe,0xd0,0x3, 0x40,0x4, 0xd2,0x0, 0x80,0x2, 0xc2,0x0, +0xe5,0x30,0x7e,0x71,0x31,0x7c,0x6e,0x12,0x99,0x7f,0x7c,0x9b,0xbe,0x90,0x2, 0x68, +0x5, 0xbe,0x90,0x3, 0x78,0x8, 0x7e,0x35,0x3b,0xe, 0x34,0x7a,0x35,0x3b,0xbe,0x90, +0x2, 0x68,0xa, 0xbe,0x90,0x1, 0x68,0x5, 0xbe,0x90,0x3, 0x78,0x2a,0x7e,0xf5,0x3b, +0x12,0x95,0x53,0xe5,0x30,0x12,0x95,0x5a,0x7f,0x1, 0x7e,0x1d,0x2c,0x9f,0x10,0x7a, +0x1d,0x2c,0x12,0x95,0x53,0xe5,0x31,0x12,0x95,0x5a,0x9f,0x41,0x12,0x95,0x53,0x9f, +0x51,0x1a,0x26,0x1a,0x24,0x9f,0x61,0x5, 0x31,0xe5,0x3a,0xbe,0xb1,0x31,0x28,0x2, +0x61,0xe3,0x5, 0x30,0xe5,0x39,0xbe,0xb1,0x30,0x28,0x2, 0x61,0xde,0xbe,0x58,0x0, +0x0, 0x78,0x2, 0xb, 0x5c,0xbe,0x68,0x0, 0x0, 0x78,0x2, 0xb, 0x6c,0x74,0x6, 0x7e, +0x1d,0x2c,0x2f,0x11,0x14,0x78,0xfb,0x7a,0x1d,0x2c,0x7f,0x5, 0x12,0x95,0x61,0x7e, +0xf1,0x2b,0x74,0x9, 0xac,0xfb,0x59,0x37,0x6b,0xd0,0x74,0x6, 0x2f,0x44,0x14,0x78, +0xfb,0x7f,0x14,0x7f,0x6, 0x12,0x95,0x61,0x59,0x37,0x6b,0xd2,0x7e,0xb3,0x6e,0x9e, +0x60,0xd, 0x1e,0xd4,0x1e,0xc4,0x50,0x4, 0x4e,0xd4,0x80,0x0, 0x14,0x78,0xf3,0xbe, +0x68,0x0, 0x7f,0x28,0x4, 0x7e,0x68,0x0, 0x7f,0x7d,0x3d,0x19,0x77,0x6b,0xd5,0xe5, +0x3f,0x19,0xb7,0x6b,0xd6,0x9, 0x77,0x6b,0xd6,0xbe,0x70,0x2d,0x28,0x6, 0x74,0x2d, +0x19,0xb7,0x6b,0xd6,0xe5,0x32,0x19,0xb7,0x6b,0xd7,0xe5,0x33,0x19,0xb7,0x6b,0xd8, +0xda,0x3b,0x22,0x7d,0x3f,0x1a,0x26,0x1a,0x24,0x22,0xa, 0x1b,0x6d,0x0, 0x2, 0x22, +0xa3,0x12,0x22,0xbf,0x2e,0x18,0x0, 0x20,0x22,0xa, 0x3b,0x7d,0x23,0x9d,0x21,0xbe, +0x24,0x0, 0x0, 0x22,0xca,0xf8,0x7c,0xf6,0x7c,0x87,0x7c,0x9b,0xa, 0x2f,0x7d,0x32, +0x3e,0x34,0xb, 0x34,0x7c,0xb7,0xbc,0xf9,0x38,0x14,0xa, 0xf8,0x1b,0xf4,0xa, 0x3f, +0x9d,0xf3,0xa, 0x39,0xbd,0x3f,0x18,0x6, 0x7c,0xab,0xa, 0x39,0x80,0x1d,0xbc,0xf9, +0x28,0xd, 0xa, 0x39,0xa, 0x5f,0x2d,0x53,0xb, 0x54,0x7c,0xab,0xe4,0x80,0x10,0xa, +0x3f,0xa, 0x58,0x2d,0x53,0xa, 0x39,0x9d,0x53,0x7c,0xab,0x9d,0x32,0x7c,0xb7,0x7a, +0xb, 0xb0,0x7c,0xba,0xda,0xf8,0x22,0xca,0x3b,0x7c,0xf5,0x7c,0xe6,0x7c,0x6b,0x74, +0x2, 0xac,0xbe,0x9, 0xc5,0x6b,0x54,0x9, 0xd5,0x6b,0x55,0x7e,0x53,0x6c,0xde,0xbe, +0x50,0x2, 0x28,0x17,0x74,0x9, 0xac,0xbe,0x9, 0x55,0x6b,0xd6,0xbe,0x50,0xf, 0x50, +0xa, 0x7c,0xb6,0x7c,0x6e,0x7c,0x5f,0x6c,0x44,0x80,0x1d,0x7c,0xbc,0x7c,0x7d,0x12, +0x97,0x96,0x12,0x96,0x1e,0x7c,0xbc,0x7c,0x7d,0x12,0x9a,0x22,0x74,0x6, 0x7e,0x70, +0x6, 0x7c,0x6e,0x7c,0x5f,0x7e,0x40,0x1, 0x12,0x92,0xb3,0xda,0x3b,0x22,0xca,0x79, +0xc2,0x0, 0x7e,0x7, 0x73,0xcf,0xb, 0x4, 0x7d,0x40,0xe, 0x44,0xe, 0x44,0xe, 0x44, +0x9f,0x11,0x6d,0xff,0x6d,0x11,0x6c,0xee,0x6c,0xff,0x1a,0x5f,0x3e,0x54,0x1a,0xce, +0x7e,0xd4,0x0, 0x1a,0xad,0xdc,0x2d,0x5d,0x49,0xe5,0x73,0x27,0xbd,0x4e,0x58,0x10, +0xbd,0xe, 0x8, 0xc, 0x7d,0x5e,0x7d,0xde,0x1a,0x5a,0x1a,0xca,0x2f,0x16,0xb, 0x14, +0xb, 0xf0,0xbe,0xf0,0xd, 0x78,0xd3,0xb, 0xe0,0xbe,0xe0,0xd, 0x78,0xca,0xbe,0x14, +0x0, 0x0, 0x28,0x5, 0x12,0x22,0xbd,0x7d,0xf3,0x7e,0x8, 0x62,0xb8,0x12,0x97,0x8e, +0x6c,0xee,0x6c,0xff,0x1a,0xef,0x3e,0xe4,0x1a,0x2e,0x7e,0x34,0x0, 0x1a,0xad,0x32, +0x7d,0x23,0x2d,0x2e,0x49,0xe2,0x73,0x27,0xbe,0xe4,0x0, 0x0, 0x8, 0x10,0x7d,0x3e, +0x9d,0x3f,0xbe,0x34,0x0, 0x0, 0x58,0x2, 0x6d,0x33,0x59,0x32,0x62,0xb8,0xb, 0xf0, +0xbe,0xf0,0xd, 0x78,0xcf,0xb, 0xe0,0xbe,0xe0,0xd, 0x78,0xc6,0x7e,0x8, 0x64,0xa, +0x7e,0x34,0x0, 0xa9,0xe4,0x12,0x24,0x34,0x74,0x1, 0x7a,0xb3,0x64,0x5e,0x7e,0xf0, +0x6, 0x7e,0xe0,0x6, 0x12,0x97,0x76,0xb4,0x1, 0x3, 0x12,0x9a,0x94,0x1b,0xe0,0xbe, +0xe0,0x0, 0x58,0xf0,0x1b,0xf0,0xbe,0xf0,0x0, 0x58,0xe6,0x7e,0xf0,0x6, 0x7e,0xe0, +0x7, 0x12,0x97,0x76,0xb4,0x1, 0x3, 0x12,0x9a,0x94,0xb, 0xe0,0xbe,0xe0,0xd, 0x78, +0xf0,0x1b,0xf0,0xbe,0xf0,0x0, 0x58,0xe6,0x7e,0xf0,0x7, 0x7e,0xe0,0x6, 0x12,0x97, +0x76,0xb4,0x1, 0x3, 0x12,0x9a,0x94,0x1b,0xe0,0xbe,0xe0,0x0, 0x58,0xf0,0xb, 0xf0, +0xbe,0xf0,0xd, 0x78,0xe6,0x7e,0xf0,0x7, 0x7e,0xe0,0x7, 0x12,0x97,0x76,0xb4,0x1, +0x3, 0x12,0x9a,0x94,0xb, 0xe0,0xbe,0xe0,0xd, 0x78,0xf0,0xb, 0xf0,0xbe,0xf0,0xd, +0x78,0xe6,0x6c,0xee,0x6c,0xff,0x1a,0x2e,0x7e,0x34,0x0, 0xd, 0xad,0x32,0x1a,0x2f, +0x2d,0x32,0x9, 0xb3,0x64,0xa, 0x70,0xd, 0x6d,0x33,0x3e,0x24,0x1a,0xe, 0x12,0x97, +0xef,0x59,0x32,0x73,0x27,0xb, 0xf0,0xbe,0xf0,0xd, 0x78,0xda,0xb, 0xe0,0xbe,0xe0, +0xd, 0x48,0xd1,0xda,0x79,0x22,0x1a,0xe, 0x7e,0x14,0x0, 0xd, 0xad,0x10,0x1a,0x3f, +0x2d,0x31,0x9, 0xb3,0x64,0xa, 0x22,0x7e,0x24,0x0, 0x3, 0x2, 0x22,0x71,0x7e,0x34, +0x1, 0x52,0xe4,0x2, 0x24,0x34,0xca,0xf8,0x7c,0xa7,0x7c,0xfb,0x7e,0x8, 0x73,0x27, +0x12,0x97,0x8e,0x74,0xfa,0x7e,0x70,0xfa,0x12,0x9a,0x89,0x48,0x32,0x12,0x9a,0x80, +0x58,0x2d,0x1a,0x17,0xa, 0x4a,0x2d,0x41,0xbe,0x44,0x0, 0x0, 0x48,0x21,0x7e,0x63, +0x6e,0xb0,0xa, 0x16,0xbd,0x41,0x58,0x17,0xad,0x10,0x2d,0x41,0x3e,0x44,0x49,0x44, +0x4, 0x0, 0x1a,0x27,0x3e,0x24,0x1a,0xb, 0x12,0x97,0xef,0x59,0x42,0x73,0xcf,0xb, +0x70,0xbe,0x70,0x6, 0x8, 0xc2,0x4, 0xbe,0xb0,0x6, 0x8, 0xb9,0xda,0xf8,0x22,0x7e, +0x14,0x0, 0x1a,0xad,0x10,0x2d,0x21,0x22,0x7e,0x37,0x6e,0x8b,0x7e,0x53,0x6e,0xb1, +0xbc,0x5b,0x38,0x4, 0x7e,0x37,0x6e,0x91,0x22,0x7f,0x20,0xb, 0x2a,0x10,0xb, 0x1a, +0x0, 0x1b,0x2a,0x0, 0x1b,0x1a,0x10,0x22,0xca,0x3b,0x6c,0xff,0x6c,0xee,0x7e,0xb3, +0x6e,0xb1,0xf5,0x2a,0x7e,0xd3,0x6e,0xb2,0xe4,0x7a,0xb3,0x74,0x7a,0x7e,0xb3,0x25, +0xae,0xb4,0x1, 0x2, 0x80,0x2, 0x21,0x22,0x6c,0xcc,0x21,0x10,0x7e,0x70,0x2, 0xac, +0x7c,0x12,0x5f,0xb7,0x75,0x26,0x3, 0x75,0x27,0x3, 0x12,0x5f,0xaf,0xbe,0x37,0x6e, +0x8d,0x58,0x2, 0x21,0xe, 0x7e,0x73,0x6c,0xde,0xbe,0x70,0x5, 0x28,0x6, 0x75,0x26, +0x2, 0x75,0x27,0x2, 0xe5,0x28,0xbe,0xb0,0x1, 0x68,0x9, 0xe5,0x2a,0x24,0xfe,0xbe, +0xb1,0x28,0x78,0x3, 0x75,0x26,0x2, 0xe5,0x29,0xbe,0xb0,0x1, 0x68,0x9, 0x7c,0xbd, +0x24,0xfe,0xbe,0xb1,0x29,0x78,0x3, 0x75,0x27,0x2, 0xe5,0x28,0x60,0x8, 0xe5,0x2a, +0x14,0xbe,0xb1,0x28,0x78,0x3, 0x75,0x26,0x2, 0xe5,0x29,0x60,0x8, 0x7c,0xbd,0x14, +0xbe,0xb1,0x29,0x78,0x3, 0x75,0x27,0x2, 0xc2,0x0, 0xe5,0x28,0x7e,0x71,0x29,0x7c, +0x6c,0x12,0x99,0x7f,0xbe,0xb0,0xff,0x68,0x6, 0x75,0x26,0x2, 0x75,0x27,0x2, 0x7c, +0xbc,0x7e,0x8, 0x0, 0x26,0x7e,0x18,0x0, 0x27,0x12,0x99,0x28,0x7e,0xb3,0x6e,0xa2, +0x60,0x6, 0x75,0x26,0x4, 0x75,0x27,0x4, 0xe5,0x26,0x7e,0x71,0x27,0x7c,0x6c,0x7c, +0x5e,0x12,0x95,0xc7,0x7e,0x70,0x9, 0xac,0x7e,0x9, 0x53,0x6b,0xd6,0xbc,0x5f,0x28, +0x2, 0x7c,0xf5,0x90,0x21,0xd9,0xe4,0x93,0xb4,0x1, 0x11,0x7d,0x13,0x2e,0x14,0x6b, +0xd0,0x6d,0x0, 0x2e,0x34,0x6b,0xd2,0x6d,0x22,0x12,0x98,0x9, 0xb, 0xe0,0xb, 0xc0, +0x7e,0x73,0x6c,0xde,0xbc,0x7c,0x28,0x2, 0x1, 0x3c,0x7a,0xe3,0x6c,0xde,0x7a,0xf3, +0x74,0x7a,0xda,0x3b,0x22,0x2, 0x98,0x18,0x7c,0xab,0x7e,0xb3,0x6c,0xf4,0x7e,0x93, +0x6c,0xde,0x60,0x4a,0xb4,0x1, 0x5, 0xbe,0x90,0x2, 0x68,0x42,0x74,0x9, 0xa4,0x9, +0xa5,0x6b,0xd6,0xbe,0x90,0x1, 0x78,0x24,0xbe,0xa0,0x19,0x28,0x7, 0x74,0x6, 0x7a, +0xb, 0xb0,0x80,0x27,0xbe,0xa0,0x14,0x28,0x7, 0x74,0x5, 0x7a,0xb, 0xb0,0x80,0x1b, +0xbe,0xa0,0xa, 0x28,0x19,0x74,0x4, 0x7a,0xb, 0xb0,0x80,0xf, 0xbe,0x90,0x2, 0x78, +0xd, 0xbe,0xa0,0x14,0x28,0x8, 0x74,0x4, 0x7a,0xb, 0xb0,0x7a,0x1b,0xb0,0x22,0xca, +0x79,0x7c,0x5b,0x7e,0x40,0xff,0x7e,0xa0,0xff,0x6c,0x33,0x41,0x13,0xbc,0x63,0x78, +0x2, 0x41,0x11,0x7e,0x90,0x2, 0xac,0x93,0x9, 0x24,0x6b,0x54,0xa, 0xf2,0xa, 0x5, +0x9d,0xf, 0xbe,0x4, 0x0, 0x0, 0x8, 0xc, 0xa, 0xe2,0xa, 0xf5,0x9d,0xfe,0x7d,0x7f, +0x7c,0x2f,0x80,0x8, 0x6e,0x4, 0xff,0xff,0xb, 0x4, 0x7c,0x21,0x7e,0x10,0x2, 0xac, +0x13,0x9, 0xb0,0x6b,0x55,0xa, 0xb, 0xa, 0x47,0x9d,0x40,0xbe,0x44,0x0, 0x0, 0x8, +0x8, 0xa, 0xfb,0xa, 0x7, 0x9d,0xf, 0x80,0x4, 0x6d,0x0, 0x9d,0x4, 0xbe,0x20,0x1, +0x38,0xa, 0xbe,0x10,0x1, 0x38,0x5, 0x7e,0xa0,0x1, 0x80,0x31,0xbe,0x20,0x2, 0x38, +0xa, 0xbe,0x10,0x2, 0x38,0x5, 0x7e,0x40,0x2, 0x80,0x10,0x30,0x0, 0xd, 0xbe,0x20, +0x3, 0x38,0x8, 0xbe,0x10,0x3, 0x38,0x3, 0x7e,0x40,0x3, 0xbc,0x4a,0x50,0x2, 0x7c, +0xa4,0xb, 0x30,0x7e,0x3, 0x6c,0xde,0xbc,0x3, 0x28,0x2, 0x21,0x8d,0x7c,0xba,0xda, +0x79,0x22,0xca,0xf8,0x7c,0xa7,0x7c,0xfb,0x7e,0x8, 0x20,0x54,0x12,0x37,0xef,0x74, +0xfa,0x7e,0x70,0xfa,0x12,0x9a,0x89,0x48,0x37,0x12,0x9a,0x80,0x58,0x32,0x1a,0x17, +0xa, 0x2a,0x2d,0x21,0xbe,0x24,0x0, 0x0, 0x48,0x26,0x7e,0x63,0x6e,0xb0,0xa, 0x16, +0xbd,0x21,0x58,0x1c,0x1a,0x47,0x3e,0x44,0x1a,0xeb,0x7e,0xf4,0x0, 0x1a,0xad,0xfe, +0x2d,0x4f,0x49,0x44,0x73,0xcf,0xad,0x10,0x2d,0x21,0x3e,0x24,0x59,0x42,0x20,0x54, +0xb, 0x70,0xbe,0x70,0x6, 0x8, 0xbd,0x4, 0xbe,0xb0,0x6, 0x8, 0xb4,0xda,0xf8,0x22, +0x7e,0x63,0x6e,0xaf,0xa, 0x16,0xbd,0x1, 0x22,0x1a,0x1b,0xa, 0xf, 0x2d,0x1, 0xbe, +0x4, 0x0, 0x0, 0x22,0x7e,0x18,0x62,0xb8,0x7a,0x1d,0x2b,0x7c,0xbe,0x7c,0x7f,0x7e, +0x8, 0x64,0xa, 0x7c,0xa7,0x7c,0x5b,0xbe,0x50,0x0, 0x28,0x1f,0x12,0x9b,0x42,0x2d, +0xf3,0x2e,0xf4,0xff,0xe6,0x12,0x9b,0x53,0x8, 0x4, 0x74,0x1, 0x80,0x2, 0x74,0x2, +0x7f,0x70,0x2d,0xf4,0x2e,0xf4,0xff,0xf3,0x7a,0x7b,0xb0,0xbe,0xa0,0x0, 0x28,0x1b, +0x12,0x9b,0x42,0x2d,0xf3,0x1b,0xf5,0x12,0x9b,0x53,0x8, 0x4, 0x74,0x1, 0x80,0x2, +0x74,0x2, 0x7f,0x70,0x2d,0xf4,0x1b,0xf4,0x7a,0x7b,0xb0,0xbe,0x50,0xc, 0x50,0x1d, +0x12,0x9b,0x42,0x2d,0xf3,0x69,0x37,0x0, 0x1a,0xbe,0x34,0x0, 0x0, 0x8, 0x4, 0x74, +0x1, 0x80,0x2, 0x74,0x2, 0x7f,0x70,0x2d,0xf4,0x39,0xb7,0x0, 0xd, 0xbe,0xa0,0xc, +0x50,0x2f,0x7e,0x70,0xd, 0xac,0x75,0xa, 0x4a,0x2d,0x34,0x7d,0x43,0x3e,0x44,0x7e, +0x7d,0x2b,0x2d,0xf4,0x69,0x47,0x0, 0x2, 0xbe,0x44,0x0, 0x0, 0x8, 0x9, 0x74,0x1, +0x2d,0x13,0x39,0xb0,0x0, 0x1, 0x22,0x74,0x2, 0x2d,0x31,0x7d,0x20,0x39,0xb1,0x0, +0x1, 0x22,0x7e,0x90,0xd, 0xac,0x95,0xa, 0x3a,0x2d,0x43,0x7d,0x34,0x3e,0x34,0x7e, +0x7d,0x2b,0x22,0xb, 0x7a,0x30,0xbe,0x34,0x0, 0x0, 0x22,0x2, 0x9b,0x5e,0xca,0x3b, +0x6c,0xff,0xc2,0x0, 0x7e,0xb3,0x6e,0xa2,0x60,0x6, 0x7e,0xd4,0x1, 0xc2,0x80,0x4, +0x7e,0xd4,0x3, 0xe8,0x7e,0xb3,0x6e,0xa3,0xb4,0x1, 0x4, 0x7e,0xd4,0x0, 0xf0,0x7e, +0xc7,0x6c,0xe4,0x6c,0xee,0x81,0x1c,0xc2,0x0, 0x7c,0xbe,0x12,0x92,0xa1,0x7d,0xb3, +0x7e,0x90,0x2, 0xac,0x9e,0x9, 0xa4,0x6b,0x54,0x7c,0xda,0x9, 0xc4,0x6b,0x55,0x7d, +0xad,0x4c,0xdd,0x68,0x16,0x7e,0xb3,0x6e,0xb1,0x14,0xbc,0xbd,0x68,0xd, 0x4c,0xcc, +0x68,0x9, 0x7e,0xb3,0x6e,0xb2,0x14,0xbc,0xbc,0x78,0x8, 0x7d,0xad,0x1e,0xa4,0x2e, +0xa4,0x0, 0x64,0x7c,0xba,0x12,0x97,0xf8,0xbd,0x3b,0x58,0x4, 0xd2,0x0, 0x80,0x26, +0x7e,0x73,0x6e,0x7d,0xbe,0x73,0x6c,0xde,0x78,0x1c,0x7e,0x37,0x3, 0xfd,0xe, 0x34, +0xbd,0x3c,0x58,0x12,0x7c,0xbe,0x7e,0x70,0x1, 0x12,0x9c,0x32,0x7d,0x1a,0x6d,0x0, +0xbf,0x10,0x8, 0x2, 0xd2,0x0, 0x30,0x0, 0x21,0x7c,0xbe,0x12,0x2f,0xde,0x60,0x1a, +0x7e,0x34,0x0, 0x9, 0xca,0x39,0xac,0x7e,0x2e,0x34,0x6b,0xd0,0x6d,0x22,0x12,0x9d, +0x7, 0x6d,0x0, 0x12,0x24,0xf, 0x1b,0xfd,0xb, 0xf0,0xb, 0xe0,0x12,0x9d,0x0, 0x28, +0x2, 0x61,0x87,0x7a,0x73,0x6c,0xf3,0x7a,0xf3,0x6e,0x7c,0x7a,0xc7,0x3, 0xfd,0xda, +0x3b,0x22,0x7c,0x67,0x7c,0x7b,0x7e,0x50,0x2, 0xac,0x57,0x9, 0xa2,0x6b,0x54,0x9, +0x72,0x6b,0x55,0x90,0x21,0xfa,0xe4,0x93,0xbc,0xba,0x78,0x3, 0x9f,0x11,0x22,0x7c, +0xba,0x2, 0x9c,0x54,0x7c,0x16,0x7c,0x7, 0x7c,0x9b,0x7e,0xb3,0x6e,0xb1,0xf5,0x29, +0x7e,0xb3,0x6e,0xb2,0xf5,0x2a,0x9f,0x77,0xa, 0x31,0xa, 0x19,0x9d,0x13,0x7c,0x83, +0x80,0x7d,0x7a,0x81,0x27,0xbe,0x80,0x0, 0x58,0xc, 0x1a,0x58,0x1a,0x19,0x9d,0x15, +0xa, 0x59,0x2d,0x51,0xf5,0x27,0xe5,0x29,0xbc,0xb8,0x18,0xc, 0x1a,0x59,0x1a,0x18, +0x9d,0x15,0xa, 0x59,0x9d,0x51,0xf5,0x27,0xa, 0x11,0xa, 0x50,0x9d,0x51,0xf5,0x26, +0x80,0x3d,0x85,0x26,0x28,0xe5,0x26,0xbe,0xb0,0x0, 0x58,0xe, 0xe5,0x26,0x1a,0x5b, +0x1a,0x10,0x9d,0x15,0xa, 0x50,0x2d,0x51,0xf5,0x28,0xe5,0x2a,0xbe,0xb1,0x26,0x18, +0xe, 0x1a,0x30,0xe5,0x26,0x1a,0x1b,0x9d,0x13,0xa, 0x50,0x9d,0x51,0xf5,0x28,0xe5, +0x27,0x7e,0x71,0x28,0x12,0x57,0x9, 0x1a,0x26,0x1a,0x24,0x2f,0x71,0x5, 0x26,0xa, +0x21,0xa, 0x30,0x2d,0x32,0xe5,0x26,0x1a,0x1b,0xbd,0x13,0x8, 0xb5,0xb, 0x80,0xa, +0x11,0xa, 0x59,0x2d,0x51,0x1a,0x18,0xbd,0x15,0x18,0x2, 0x81,0x72,0x7f,0x17,0x22, +0x7e,0x73,0x6c,0xde,0xbc,0x7e,0x22,0x7e,0x30,0x9, 0xac,0x3f,0x2e,0x14,0x6d,0x14, +0x22,0xca,0xf8,0x7e,0xb3,0x6e,0x7c,0x70,0x17,0xe4,0x7a,0xb3,0x6e,0x85,0x12,0x71, +0x73,0x28,0x1f,0x74,0x1, 0x7a,0xb3,0x6e,0x81,0xe4,0x7a,0xb3,0x6e,0x84,0x80,0x12, +0x74,0x1, 0x7a,0xb3,0x6e,0x85,0x7e,0xb3,0x6e,0x7d,0x70,0x6, 0x74,0x1, 0x7a,0xb3, +0x6e,0x80,0x12,0x87,0x98,0xca,0x59,0x7e,0x18,0x6d,0x14,0x7e,0x8, 0x6d,0x6e,0x12, +0x24,0xf, 0x1b,0xfd,0x90,0x1c,0x2c,0xe4,0x93,0xbe,0xb0,0x0, 0x38,0x2, 0xc1,0x1a, +0x6c,0xff,0x80,0x24,0x74,0x9, 0xac,0xbf,0x49,0x35,0x6d,0x14,0x12,0x9f,0x92,0x74, +0x9, 0xac,0xbf,0x59,0x35,0x6d,0x6e,0x49,0x35,0x6d,0x16,0x12,0x9e,0x1d,0x74,0x9, +0xac,0xbf,0x59,0x35,0x6d,0x70,0xb, 0xf0,0x12,0x9f,0x71,0x38,0xd7,0x7e,0xa3,0x6e, +0x7c,0xbe,0xa0,0x1, 0x78,0x9, 0x7e,0xb3,0x6e,0x7d,0xb4,0x1, 0x2, 0x80,0xb, 0xbe, +0xa0,0x1, 0x78,0x16,0x7e,0xb3,0x6e,0x7d,0x70,0x10,0x7e,0x37,0x6d,0x6e,0x7a,0x37, +0x78,0x14,0x7e,0x37,0x6d,0x70,0x7a,0x37,0x78,0x16,0xbe,0xa0,0x1, 0x78,0x18,0x7e, +0xb3,0x6e,0x7d,0x70,0x12,0x7e,0x37,0x6d,0x6e,0x7a,0x37,0x78,0xf, 0x7e,0x37,0x6d, +0x70,0x7a,0x37,0x78,0x11,0x80,0x43,0xbe,0xa0,0x1, 0x78,0x2b,0x7e,0xb3,0x6e,0x7d, +0xb4,0x1, 0x24,0x7e,0x37,0x6d,0x70,0x9e,0x37,0x78,0x11,0x12,0x24,0x56,0x7d,0x13, +0x7e,0x37,0x6d,0x6e,0x9e,0x37,0x78,0xf, 0x12,0x24,0x56,0x2d,0x31,0xbe,0x34,0x0, +0x96,0x8, 0x17,0x74,0x1, 0x80,0xf, 0x4c,0xaa,0x78,0xf, 0x6d,0x33,0x7a,0x37,0x78, +0xf, 0x7a,0x37,0x78,0x11,0xe4,0x7a,0xb3,0x78,0x13,0xda,0xf8,0x22,0x7d,0x13,0x9f, +0x11,0x7e,0xf4,0x21,0xdc,0x12,0x9f,0x81,0x12,0x9f,0x89,0xb, 0x7a,0xf0,0x7e,0xd4, +0x21,0xee,0x7e,0xc4,0x0, 0xff,0xb, 0x6a,0xe0,0x90,0x1c,0x2c,0xe4,0x93,0x70,0x3, +0x7d,0x31,0x22,0x90,0x21,0xd9,0xe4,0x93,0xb4,0x1, 0x6, 0x7e,0x83,0x6e,0xb1,0x80, +0x4, 0x7e,0x83,0x6e,0xb2,0x12,0x9f,0x79,0xbe,0x14,0x0, 0x3f,0x38,0x21,0x7e,0x24, +0x0, 0x3f,0x9d,0x21,0x7e,0x14,0x21,0xf2,0x12,0x9f,0x30,0xad,0x32,0x6d,0x22,0x12, +0x9f,0x14,0x12,0x9f,0x1b,0x48,0x2, 0x7f,0x10,0x9f,0x1, 0x7f,0x10,0xe1,0x9, 0x7d, +0x54,0x9e,0x54,0x0, 0x3f,0xbd,0x51,0x38,0x35,0x7d,0x54,0x9e,0x54,0x0, 0x1f,0xbd, +0x51,0x40,0x76,0x7d,0x34,0x9e,0x34,0x0, 0x40,0x7d,0x21,0x9d,0x23,0x7e,0x14,0x21, +0xf4,0x12,0x9f,0x30,0xad,0x32,0x6d,0x22,0x12,0x9f,0x14,0x90,0x21,0xf1,0x12,0x9f, +0x1e,0x48,0x4, 0x7f,0x10,0x1b,0x1c,0x12,0x9f,0x27,0x2f,0x10,0x80,0x4b,0x7d,0x50, +0x1b,0x54,0xbd,0x51,0x40,0x19,0x7d,0x30,0x9d,0x31,0x6d,0x22,0x7e,0x14,0x21,0xf6, +0x12,0x9f,0xa, 0x7d,0x1e,0x1b,0x14,0x6d,0x0, 0x9f,0x1, 0x7f,0x10,0x80,0x13,0x7d, +0x31,0x9d,0x30,0x6d,0x22,0x7e,0x14,0x21,0xf8,0x12,0x9f,0xa, 0x7d,0x1e,0x6d,0x0, +0x2f,0x10,0x12,0x9f,0x1b,0x58,0x4, 0x7f,0x10,0x80,0xe, 0x90,0x21,0xf1,0xe4,0x93, +0x12,0x9f,0x27,0xbf,0x10,0x8, 0x2, 0x7f,0x10,0x22,0x7e,0x4, 0x0, 0xff,0xb, 0xa, +0x10,0x12,0x22,0xb4,0x7c,0x76,0x7c,0x65,0x1a,0x24,0x22,0x90,0x21,0xf0,0xe4,0x93, +0xa, 0x1b,0x6d,0x0, 0xbf,0x10,0x22,0xa, 0xb, 0x7d,0x1f,0x9d,0x10,0x6d,0x0, 0x22, +0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0x30,0x22,0x7d,0x13,0x7e,0x54,0x22,0x37,0x12,0x9f, +0x67,0x50,0x21,0x7e,0x54,0x22,0x39,0x12,0x9f,0x67,0x28,0x18,0x7e,0x14,0x22,0x3b, +0x12,0x9f,0x30,0xbd,0x32,0x50,0xd, 0x7e,0x14,0x22,0x3d,0x12,0x9f,0x30,0xbd,0x32, +0x28,0x2, 0xe4,0x22,0x74,0x1, 0x22,0x7e,0x44,0x0, 0xff,0xb, 0x2a,0x30,0xbd,0x31, +0x22,0x90,0x21,0x51,0xe4,0x93,0xbc,0xbf,0x22,0x7e,0x90,0x40,0xac,0x89,0x1b,0x44, +0x22,0x7e,0xe4,0x0, 0xff,0xb, 0x7a,0x0, 0x22,0x7e,0xf4,0x21,0xec,0x7e,0xe4,0x0, +0xff,0x22,0x7e,0x14,0x21,0xda,0x12,0x6f,0xd1,0x7e,0x14,0x21,0xde,0x7e,0x4, 0x0, +0xff,0xb, 0xa, 0xd0,0x7e,0x14,0x21,0xe0,0x12,0xdd,0x9b,0x90,0x1c,0x2c,0xe4,0x93, +0x70,0x1, 0x22,0x90,0x21,0xd9,0xe4,0x93,0xb4,0x1, 0x6, 0x7e,0x83,0x6e,0xb2,0x80, +0x4, 0x7e,0x83,0x6e,0xb1,0x12,0x9f,0x79,0xbe,0x34,0x0, 0x3f,0x38,0x21,0x7e,0xe4, +0x0, 0x3f,0x9d,0xe3,0x7e,0x34,0x21,0xe4,0x12,0xa0,0x77,0x12,0xa2,0x81,0x7f,0x71, +0x12,0xa2,0x79,0xbf,0x71,0x40,0x2, 0x7f,0x71,0x9f,0x17,0x7f,0x71,0x80,0x7b,0x7d, +0x54,0x9e,0x54,0x0, 0x3f,0xbd,0x53,0x38,0x26,0x7d,0xe3,0x9d,0xe5,0x7e,0x34,0x21, +0xe6,0x12,0xa0,0x77,0x12,0xa2,0x81,0x7f,0x71,0x90,0x21,0xe3,0xe4,0x93,0xa, 0x3b, +0xbf,0x71,0x40,0x4, 0x7f,0x71,0x1b,0x7c,0x12,0xa2,0x4b,0x2f,0x71,0x80,0x4b,0x7d, +0x52,0x1b,0x54,0xbd,0x53,0x40,0x17,0x7d,0xf5,0x9d,0xf3,0x6d,0xee,0x7e,0x34,0x21, +0xe8,0x12,0xa2,0x60,0x1b,0x34,0x6d,0x22,0x9f,0x17,0x7f,0x71,0x80,0x11,0x7d,0xf3, +0x9d,0xf2,0x6d,0xee,0x7e,0x34,0x21,0xea,0x12,0xa2,0x60,0x6d,0x22,0x2f,0x71,0x12, +0xa2,0x79,0x6d,0x22,0xbf,0x71,0x50,0x4, 0x7f,0x71,0x80,0xe, 0x90,0x21,0xe3,0xe4, +0x93,0x12,0xa2,0x4b,0xbf,0x71,0x28,0x2, 0x7f,0x71,0xbe,0x78,0x2, 0xce,0x28,0x4, +0x7e,0x78,0x2, 0xce,0x7d,0x3f,0x22,0x7e,0x24,0x0, 0xff,0xb, 0x1a,0xf0,0x22,0xca, +0xf8,0x6c,0xff,0x7e,0xb7,0x27,0x66,0x7e,0xc7,0x27,0x68,0x7e,0x97,0x27,0x4e,0x7e, +0xd7,0x27,0x50,0x7e,0xa7,0x27,0x62,0x7e,0xe7,0x27,0x64,0xe4,0x7e,0x73,0x27,0x72, +0x1b,0x70,0x7d,0x2b,0x7d,0x1c,0x12,0xa1,0xd2,0x40,0x2, 0x21,0xcd,0x7e,0x73,0x27, +0x72,0xbe,0x70,0xa, 0x28,0x13,0xe4,0x7e,0x70,0x9, 0x7e,0x27,0x27,0x6a,0x7e,0x17, +0x27,0x6c,0x12,0xa1,0xd2,0x40,0x2, 0x21,0xcd,0x7e,0x73,0x27,0x72,0xbe,0x70,0xf, +0x28,0x13,0xe4,0x7e,0x70,0xe, 0x7e,0x27,0x27,0x6e,0x7e,0x17,0x27,0x70,0x12,0xa1, +0xd2,0x40,0x2, 0x21,0xcd,0x7e,0x34,0x22,0x51,0x12,0xa0,0x77,0xbd,0xfc,0x28,0x50, +0x7e,0x34,0x22,0x4f,0x12,0xa0,0x77,0xbd,0xfb,0x50,0x45,0x7e,0x34,0x22,0x55,0x12, +0x29,0xdb,0x12,0xa2,0x54,0x7d,0x8f,0x9d,0x83,0xbe,0x87,0x27,0x4c,0x50,0x31,0x7e, +0x34,0x22,0x53,0x7e,0x24,0x0, 0xff,0xb, 0x1a,0x80,0x9d,0xf8,0xbe,0xf7,0x27,0x4c, +0x28,0x1e,0x7e,0x34,0x0, 0x3, 0xad,0x3c,0x7d,0xfb,0x3e,0xf4,0xbd,0xf3,0x38,0x2, +0x21,0xcd,0xbd,0xa9,0x50,0x5, 0x7e,0xf0,0x20,0x21,0xcd,0x7e,0xf0,0x21,0x21,0xcd, +0x7e,0x34,0x22,0x59,0x12,0xa0,0x77,0xbd,0xfb,0x38,0x2, 0x21,0xcd,0x7e,0x34,0x22, +0x57,0x12,0xa0,0x77,0xbd,0xfc,0x50,0x75,0x7e,0xb3,0x27,0x4b,0x70,0x6f,0x7e,0x34, +0x22,0x5d,0x12,0x29,0xdb,0x12,0xa2,0x54,0x7d,0xaf,0x9d,0xa3,0xbe,0xa7,0x27,0x4c, +0x50,0x5b,0x7e,0x34,0x22,0x5b,0x7e,0x24,0x0, 0xff,0xb, 0x1a,0xa0,0x9d,0xfa,0xbe, +0xf7,0x27,0x4c,0x28,0x48,0x7d,0xfb,0x3e,0xf4,0x7e,0x34,0x0, 0x3, 0xad,0x3c,0xbd, +0x3f,0x28,0x3a,0xbd,0xed,0x50,0x5, 0x7e,0xf0,0x22,0x80,0x31,0x7e,0xa3,0x27,0x72, +0x7e,0x10,0x4, 0xac,0x1a,0x49,0x30,0x25,0xb5,0x49,0x10,0x25,0xb7,0x49,0x20,0x25, +0xa5,0x49,0x0, 0x25,0xa7,0x9d,0x10,0xbe,0x14,0x0, 0x20,0x18,0xd, 0x9d,0x32,0xbe, +0x34,0x0, 0x10,0x48,0x5, 0xbe,0xa0,0x6, 0x50,0x3, 0x7e,0xf0,0x23,0x7c,0xbf,0xda, +0xf8,0x22,0x7d,0x41,0x7d,0x2, 0x7c,0x6b,0x74,0x4, 0xac,0xb6,0x49,0x15,0x25,0xb9, +0x49,0x25,0x25,0xbb,0x74,0x4, 0xac,0xb7,0x49,0xf5,0x25,0xb9,0x49,0x55,0x25,0xbb, +0x7d,0x31,0x9d,0x3f,0xbe,0x34,0x0, 0x0, 0x8, 0x4, 0x9d,0x1f,0x80,0x4, 0x6d,0x11, +0x9d,0x13,0x7d,0x32,0x9d,0x35,0xbe,0x34,0x0, 0x0, 0x8, 0x4, 0x9d,0x25,0x80,0x4, +0x6d,0x22,0x9d,0x23,0x9d,0x24,0x9d,0x10,0xbe,0x24,0x0, 0x0, 0x8, 0x4, 0x7d,0x32, +0x80,0x4, 0x6d,0x33,0x9d,0x32,0x7e,0x54,0x22,0x49,0x7e,0x44,0x0, 0xff,0xb, 0x2a, +0x20,0xbd,0x32,0x50,0x14,0xbe,0x14,0x0, 0x0, 0x8, 0x4, 0x7d,0x31,0x80,0x4, 0x6d, +0x33,0x9d,0x31,0xbd,0x32,0x50,0x2, 0xd3,0x22,0xc3,0x22,0xa, 0x2b,0x7d,0x3d,0x9d, +0x32,0x6d,0x22,0x22,0x7e,0x14,0x22,0x6d,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0xf0,0x22, +0x7e,0x24,0x0, 0xff,0xb, 0x1a,0x10,0x7f,0x17,0x12,0x22,0xb4,0x7f,0x71,0x7c,0x76, +0x7c,0x65,0xa, 0x24,0x7f,0x71,0x7d,0x3c,0x22,0x90,0x21,0xe2,0xe4,0x93,0xa, 0x3b, +0x22,0xad,0xfe,0x6d,0xee,0x7d,0x3f,0x7d,0x2e,0x7c,0x76,0x7c,0x65,0x22,0x12,0xa5, +0x93,0x7a,0x37,0x27,0x66,0x12,0xa5,0x1e,0x7a,0x37,0x27,0x68,0x12,0xa0,0x7f,0x60, +0x1, 0x22,0x7e,0x73,0x27,0x72,0xa, 0x37,0x7a,0x35,0x26,0x7e,0x8, 0x25,0xb9,0x7e, +0x18,0x27,0x4a,0x2, 0xa2,0xb6,0xca,0xf8,0x7e,0x45,0x26,0x7c,0xb9,0x7a,0xb3,0x77, +0x2c,0x74,0xff,0x7a,0xb3,0x77,0x2b,0x6d,0x55,0x80,0x1f,0x7d,0xf5,0x3e,0xf4,0x3e, +0xf4,0x7f,0x60,0x2d,0xdf,0xb, 0x6a,0xf0,0x7d,0xe5,0x3e,0xe4,0x59,0xfe,0x62,0xb8, +0x69,0xf6,0x0, 0x2, 0x59,0xfe,0x63,0x80,0xb, 0x54,0xbd,0x45,0x38,0xdd,0x7e,0x33, +0x77,0x2c,0xbe,0x30,0x4, 0x38,0x2, 0x61,0x7e,0x69,0xf1,0x0, 0x1c,0x69,0x11,0x0, +0x1e,0xbd,0x1f,0x18,0x19,0x4d,0x11,0x78,0x4, 0x7e,0x14,0x0, 0x1, 0x7d,0x3f,0x7d, +0x21,0x12,0x22,0x71,0x7c,0xf7,0x74,0x40,0x7a,0xb3,0x77,0x2f,0x80,0x43,0x4d,0xff, +0x78,0x4, 0x7e,0xf4,0x0, 0x1, 0x7d,0x31,0x7d,0x2f,0x12,0x22,0x71,0x7c,0xf7,0x74, +0x80,0x7a,0xb3,0x77,0x2f,0x7d,0xf, 0x2d,0xf, 0xbd,0x1, 0x8, 0x24,0x1a,0x2, 0x1a, +0x0, 0x7e,0x73,0x77,0x2f,0xa, 0x37,0x6d,0x22,0x12,0x22,0xa3,0x7d,0x5f,0x1a,0x4a, +0x1a,0x48,0x7d,0x1f,0x1a,0x2, 0x1a,0x0, 0x2f,0x2, 0x12,0x22,0xbf,0x7a,0x73,0x77, +0x2f,0xbe,0xf0,0x5, 0x58,0x14,0x12,0xa3,0x9d,0x12,0xe2,0x76,0x12,0xa3,0x9d,0x12, +0xa3,0xa6,0x12,0xa3,0x9d,0x12,0xe3,0x65,0x80,0xa, 0x74,0x7d,0x80,0x2, 0x74,0x7f, +0x7a,0xb3,0x77,0x2b,0xe4,0x7a,0xb3,0x77,0x2c,0x7e,0x73,0x78,0x2e,0xbe,0x73,0x77, +0x2b,0x48,0x6, 0x7e,0xb3,0x77,0x2d,0x80,0x1, 0xe4,0xda,0xf8,0x22,0x7e,0x8, 0x62, +0xb8,0x7e,0x18,0x63,0x80,0x22,0xca,0x3b,0x7f,0x71,0x7e,0x60,0x1, 0xb, 0xa, 0x20, +0xb, 0x7a,0x50,0x7c,0x4b,0x7a,0x53,0x64,0x48,0x7a,0x43,0x64,0xac,0x7e,0x70,0x1, +0x7e,0xa0,0x1, 0x81,0xc7,0x7e,0x90,0x2, 0xac,0x9a,0x7f,0x60,0x2d,0xd4,0xb, 0x6a, +0xd0,0x7d,0x7d,0x7c,0xbf,0xf5,0x28,0x7f,0x67,0x2d,0xd4,0xb, 0x6a,0x40,0xa, 0xd5, +0xa, 0xbb,0x7d,0xab,0x9d,0xad,0x7d,0x7a,0x7c,0x8f,0xbe,0x80,0x0, 0x58,0x5, 0x6e, +0x80,0xff,0xb, 0x80,0xa, 0xa4,0xa, 0x79,0x9d,0x7a,0xbe,0xf0,0x0, 0x58,0x5, 0x6e, +0xf0,0xff,0xb, 0xf0,0xbe,0x80,0x2, 0x58,0x7, 0xbe,0xf0,0x2, 0x58,0x2, 0x81,0xc5, +0xbe,0x60,0x0, 0x18,0x2, 0x81,0xad,0xbe,0x70,0xec,0x28,0x2, 0x81,0xd1,0xbe,0x80, +0x8, 0x58,0x5, 0xbe,0xf0,0x8, 0x48,0x61,0xa, 0xa7,0xb, 0xa4,0x7d,0x6a,0x7c,0x7d, +0xa, 0xa5,0x2d,0xab,0x12,0xa5,0x15,0x19,0xba,0x64,0x48,0xa, 0xd9,0xa, 0xa4,0x2d, +0xad,0x12,0xa5,0x15,0x19,0xba,0x64,0xac,0x9, 0xba,0x64,0x48,0xa, 0xdb,0xa, 0xc5, +0x2d,0xcd,0xe, 0xc4,0x7d,0x6c,0x7c,0xbd,0xa, 0xc7,0x19,0xbc,0x64,0x47,0x9, 0xbc, +0x64,0xac,0xa, 0xcb,0xa, 0xa4,0x2d,0xac,0x12,0xa5,0x15,0x19,0xba,0x64,0xab,0x2d, +0xdb,0x12,0xa5,0xc, 0x19,0xbd,0x64,0x49,0xa, 0xd9,0x12,0xa5,0xa, 0x19,0xbd,0x64, +0xad,0xb, 0xd5,0x7d,0x6d,0x7c,0x7d,0x80,0x24,0xbe,0x80,0x4, 0x58,0x5, 0xbe,0xf0, +0x4, 0x48,0x1a,0xe5,0x28,0xa, 0xcb,0xa, 0xd5,0x12,0xa5,0xa, 0x19,0xbd,0x64,0x48, +0xa, 0xc9,0xa, 0xd4,0x12,0xa5,0xa, 0x19,0xbd,0x64,0xac,0xb, 0x70,0xbe,0x70,0x64, +0x50,0x1f,0x7e,0x51,0x28,0x7c,0x49,0xe5,0x28,0xa, 0xd7,0x19,0xbd,0x64,0x48,0x19, +0x9d,0x64,0xac,0xb, 0x70,0xb, 0xa0,0x7e,0xb3,0x77,0x2c,0xbc,0xba,0x28,0x2, 0x61, +0xc5,0x7a,0x73,0x77,0x2c,0x7e,0xa0,0x1, 0x80,0x25,0xa, 0x3a,0x9, 0xb3,0x64,0x48, +0xa, 0x2b,0x7e,0x70,0x2, 0xac,0x7a,0x7f,0x60,0x2d,0xd3,0x1b,0x6a,0x20,0xa, 0x2a, +0x9, 0xb2,0x64,0xac,0xa, 0x4b,0x2d,0x3f,0x7d,0x2e,0x1b,0x1a,0x40,0xb, 0xa0,0x7e, +0xb3,0x77,0x2c,0xbc,0xba,0x38,0xd3,0xda,0x3b,0x22,0x2d,0xdc,0xe, 0xd4,0x7d,0x6d, +0x7c,0xbd,0xa, 0xd7,0x22,0xe, 0xa4,0x7d,0x6a,0x7c,0xbd,0xa, 0xa7,0x22,0x7e,0x37, +0x27,0x60,0x9e,0x37,0x27,0x58,0x22,0x7e,0x17,0x27,0x5a,0xbd,0x13,0x28,0xa, 0x7a, +0x37,0x27,0x5a,0x7a,0x27,0x27,0x5c,0x80,0x10,0x7e,0x17,0x27,0x52,0xbd,0x13,0x50, +0x8, 0x7a,0x37,0x27,0x52,0x7a,0x27,0x27,0x54,0x7e,0x17,0x27,0x58,0xbd,0x12,0x28, +0xa, 0x7a,0x27,0x27,0x58,0x7a,0x37,0x27,0x56,0x80,0x10,0x7e,0x17,0x27,0x60,0xbd, +0x12,0x50,0x8, 0x7a,0x27,0x27,0x60,0x7a,0x37,0x27,0x5e,0x7e,0xb3,0x27,0x72,0xb4, +0xa, 0xf, 0x12,0xa5,0x93,0x7a,0x37,0x27,0x6a,0x12,0xa5,0x1e,0x7a,0x37,0x27,0x6c, +0x22,0xb4,0xf, 0xe, 0x12,0xa5,0x93,0x7a,0x37,0x27,0x6e,0x12,0xa5,0x1e,0x7a,0x37, +0x27,0x70,0x22,0x7e,0x37,0x27,0x52,0x9e,0x37,0x27,0x5a,0x22,0x7d,0x3c,0x7d,0x2d, +0x7d,0x42,0x7d,0x13,0x7d,0x24,0x12,0xde,0x1f,0x7d,0x31,0x12,0xa5,0x27,0x2, 0xa5, +0xb1,0x7e,0x3, 0x27,0x72,0xbe,0x0, 0x64,0x50,0x2, 0xc1,0x46,0x80,0x7d,0x6c,0x99, +0x7e,0xb3,0x27,0x49,0xbe,0xb0,0x20,0x50,0x5, 0x4, 0x7a,0xb3,0x27,0x49,0x7e,0x1f, +0x25,0xb9,0x7a,0x1f,0x62,0xb8,0x7e,0x80,0x1, 0x80,0x45,0x74,0x4, 0xac,0xb8,0x49, +0x35,0x25,0xb9,0x49,0x25,0x25,0xbb,0x7e,0x17,0x62,0xb8,0x7e,0x7, 0x62,0xba,0x12, +0xa7,0x8d,0x7c,0x1b,0x7e,0x3, 0x27,0x49,0xbc,0x1, 0x38,0x22,0xb, 0x90,0x7e,0x70, +0x4, 0xac,0x78,0x2e,0x34,0x25,0xb9,0x7e,0x14,0x62,0xb8,0x74,0x4, 0x12,0xa7,0xce, +0x7e,0x30,0x4, 0xac,0x39,0x2e,0x14,0x25,0xb9,0x74,0x4, 0x12,0x23,0x44,0xb, 0x80, +0x7e,0x3, 0x27,0x72,0xbc,0x8, 0x38,0xb3,0xa, 0x59,0xb, 0x54,0x7c,0xb, 0x7a,0x3, +0x27,0x72,0x7e,0x3, 0x27,0x49,0xbe,0x0, 0x20,0x50,0xb, 0x7e,0x3, 0x27,0x72,0xbe, +0x0, 0xec,0x40,0x2, 0xa1,0xbe,0x22,0xca,0xf8,0x7e,0xa3,0x6e,0x7c,0x7e,0xb3,0x6e, +0x7d,0xc2,0x13,0xbe,0xa0,0x1, 0x38,0x21,0xbe,0xb0,0x1, 0x38,0x1c,0x7e,0x47,0x6c, +0xe0,0xbe,0x44,0x0, 0x1e,0x28,0x2, 0x80,0x10,0x7e,0xf3,0x27,0x4a,0x4c,0xff,0x68, +0xf, 0x7e,0x47,0x25,0xb1,0x4d,0x44,0x78,0x7, 0xd2,0x13,0x12,0xa7,0xc7,0x80,0x35, +0x4c,0xaa,0x78,0x36,0xb4,0x1, 0x33,0x7e,0x37,0x25,0xb1,0x7a,0x37,0x27,0x4c,0x7e, +0xb3,0x27,0x4a,0xb4,0x3, 0x1f,0x7e,0x37,0x25,0xb1,0xbe,0x34,0x0, 0x0, 0x28,0x15, +0x74,0x4, 0x7a,0xb3,0x27,0x4a,0x7e,0x37,0x27,0x62,0x7e,0x27,0x27,0x64,0x12,0xa5, +0xa0,0xe1,0x4b,0x80,0x0, 0x12,0xa7,0xe1,0xe1,0x4b,0x7e,0xc7,0x6d,0x6e,0x7e,0xd7, +0x6d,0x70,0x4c,0xff,0x78,0x19,0x70,0x57,0xbe,0xa0,0x1, 0x78,0x52,0x7d,0x3c,0x7d, +0x2d,0x12,0xde,0x44,0x12,0xa5,0x9c,0x74,0x1, 0x7a,0xb3,0x27,0x4a,0x80,0x40,0xbe, +0xf0,0x1, 0x78,0x2e,0x7e,0x27,0x27,0x52,0x9e,0x27,0x27,0x5a,0x7e,0x14,0x22,0x69, +0x12,0x9f,0x30,0xbd,0x23,0x38,0x13,0x7e,0x27,0x27,0x60,0x9e,0x27,0x27,0x58,0x7e, +0x14,0x22,0x6b,0x12,0x9f,0x30,0xbd,0x23,0x28,0x15,0x74,0x3, 0x7a,0xb3,0x27,0x4a, +0x80,0x5, 0xbe,0xf0,0x3, 0x78,0x8, 0x7a,0xc7,0x27,0x62,0x7a,0xd7,0x27,0x64,0x7e, +0xb3,0x27,0x4a,0x60,0x26,0x7d,0x3c,0x7d,0x2d,0x7e,0x17,0x25,0xb5,0x7e,0x7, 0x25, +0xb7,0x12,0xa7,0x8d,0xa, 0x2b,0x7e,0x73,0x27,0x49,0xa, 0x37,0xbd,0x32,0x58,0xb, +0x12,0xa5,0x9c,0x7a,0xc7,0x25,0xb5,0x7a,0xd7,0x25,0xb7,0xda,0xf8,0x22,0x7e,0xb3, +0x76,0x5a,0x70,0x6, 0x12,0xa7,0x87,0x2, 0xa7,0xc1,0x12,0xa6,0x47,0x12,0xa7,0xd6, +0x50,0xa, 0x12,0xa2,0x8e,0x7c,0x3b,0x12,0xa7,0x87,0x80,0x5, 0x12,0xdc,0x73,0x7c, +0x3b,0x4c,0x33,0x68,0x11,0x7c,0xb3,0x12,0xdd,0xa3,0x60,0xa, 0x7a,0x33,0x76,0x5d, +0x74,0x1, 0x7a,0xb3,0x6e,0x82,0x22,0xe4,0x7a,0xb3,0x27,0x4a,0x22,0x7d,0x51,0x7d, +0x12,0x7d,0x23,0x9d,0x25,0xbe,0x24,0x0, 0x0, 0x8, 0x4, 0x7d,0x52,0x80,0x4, 0x6d, +0x55,0x9d,0x52,0x7c,0xab,0x7d,0x21,0x9d,0x20,0xbe,0x24,0x0, 0x0, 0x8, 0x4, 0x7d, +0x32,0x80,0x4, 0x6d,0x33,0x9d,0x32,0x7c,0xb7,0xbc,0xba,0x50,0x3, 0x7c,0xba,0x22, +0x22,0xe4,0x7a,0xb3,0x77,0xfb,0x22,0x74,0x1, 0x7a,0xb3,0x76,0x2f,0x22,0x12,0x23, +0x44,0x7e,0x34,0x62,0xb8,0x22,0x7e,0xb3,0x27,0x4a,0xb4,0x4, 0x2, 0xd3,0x22,0xc3, +0x22,0x74,0xfe,0x7a,0xb3,0x76,0x5d,0xe4,0x7a,0xb3,0x27,0x4a,0x22,0xca,0x3b,0x6d, +0x33,0x7a,0x35,0x27,0x7a,0x35,0x29,0x7e,0x53,0x6e,0x7c,0x7a,0x51,0x40,0xbe,0x50, +0x0, 0x28,0x1a,0x7e,0x27,0x62,0x7a,0xb, 0x24,0x7a,0x27,0x62,0x7a,0xbe,0x24,0x0, +0x64,0x28,0xe, 0x7e,0x24,0x0, 0x64,0x7a,0x27,0x62,0x7a,0x80,0x4, 0x7a,0x37,0x62, +0x7a,0x7e,0xb3,0x76,0x2f,0xb4,0x1, 0x4, 0x74,0x3, 0x80,0x7, 0x7e,0xb3,0x62,0x29, +0x60,0x5, 0x14,0x7a,0xb3,0x62,0x29,0x7e,0xb3,0x6e,0x83,0x60,0x3, 0x2, 0xb0,0x9c, +0x7e,0x37,0x5a,0x42,0xbe,0x37,0x77,0xe2,0x28,0x12,0x7e,0x54,0xff,0xff,0x9e,0x57, +0x5a,0x42,0x2e,0x57,0x77,0xe2,0xb, 0x54,0xf5,0x3f,0x80,0xa, 0x7e,0x57,0x77,0xe2, +0x9e,0x57,0x5a,0x42,0xf5,0x3f,0x7e,0x37,0x77,0xe2,0x7a,0x37,0x5a,0x42,0xc2,0x26, +0x7e,0x34,0x6d,0x14,0x7a,0x35,0x2b,0xe5,0x40,0x60,0x6, 0x7e,0xb3,0x6e,0x7d,0x70, +0x39,0x6c,0xff,0x6c,0xaa,0x80,0x2e,0xa, 0x4f,0x19,0xa4,0x62,0x15,0xe4,0x19,0xb4, +0x62,0x1f,0x6d,0x33,0x7e,0x50,0x2, 0xac,0x5f,0x59,0x32,0x62,0x52,0x59,0x32,0x62, +0x66,0x7e,0x70,0xff,0x7e,0x50,0x9, 0xac,0x5f,0x19,0x72,0x5c,0xe7,0x74,0x1, 0x19, +0xb4,0x62,0x7c,0xb, 0xf0,0x12,0x9f,0x71,0x38,0xcd,0xc2,0x25,0x7e,0xb3,0x5c,0xc3, +0x60,0x6, 0x7e,0xb3,0x6e,0xa2,0x60,0x7, 0x12,0xb7,0xdb,0x50,0x2, 0xd2,0x25,0x6c, +0xff,0xe1,0x7c,0x7e,0x70,0x9, 0xac,0x7f,0x9, 0xe3,0x6d,0x18,0x5e,0xe0,0xf, 0x12, +0xb2,0x9d,0x38,0x2, 0xe1,0x7a,0x7e,0x90,0x9, 0xac,0x9e,0x9, 0xa4,0x6e,0x22,0xbe, +0xa0,0x1, 0x78,0x2, 0xe1,0x57,0x7e,0x50,0x2, 0xac,0x5e,0x7d,0x2, 0x2e,0x4, 0x62, +0x52,0xb, 0x8, 0x10,0xb, 0x14,0x1b,0x8, 0x10,0x4c,0xaa,0x78,0x1a,0x49,0x43,0x6d, +0x14,0x74,0x4, 0xac,0xbe,0x59,0x45,0x62,0x2a,0x49,0x33,0x6d,0x16,0x59,0x35,0x62, +0x2c,0x6d,0x33,0x59,0x32,0x62,0x66,0x6c,0xdd,0xe1,0x4e,0x7e,0x10,0x9, 0xac,0x1d, +0x9, 0xc0,0x5c,0xe7,0xbc,0xce,0x68,0x2, 0xe1,0x4c,0x7e,0x70,0x73,0xac,0x7c,0x2e, +0x34,0x5d,0x97,0x6d,0x22,0x7a,0x1d,0x33,0x12,0xe5,0x49,0x49,0x10,0x5c,0xe3,0x49, +0x0, 0x5c,0xe5,0x12,0xb8,0x77,0x7a,0x35,0x27,0x12,0xe5,0x49,0x74,0x4, 0xac,0xbc, +0x49,0x15,0x62,0x2a,0x49,0x5, 0x62,0x2c,0x12,0xb8,0x77,0x7a,0x35,0x31,0x74,0x2, +0xac,0xbc,0x7d,0x35,0x2e,0x34,0x62,0x66,0xb, 0x38,0x40,0x2e,0x45,0x27,0x1b,0x38, +0x40,0x49,0x45,0x62,0x66,0xbe,0x44,0xf, 0xa0,0x28,0x8, 0x7e,0x34,0xf, 0xa0,0x59, +0x35,0x62,0x66,0xe5,0x3f,0x7a,0xb3,0x63,0x1b,0x12,0xe5,0x6b,0x9, 0x73,0x0, 0x6, +0x7a,0x73,0x63,0x1d,0x7e,0x35,0x27,0x7a,0x37,0x63,0x24,0x7e,0x35,0x31,0x7a,0x37, +0x63,0x26,0x12,0xe5,0x6b,0xb, 0x38,0x30,0x7a,0x37,0x63,0x28,0x12,0xe5,0x6b,0x49, +0x33,0x0, 0x2, 0x7a,0x37,0x63,0x2a,0x74,0x2, 0xac,0xbc,0x49,0x35,0x62,0x52,0x7a, +0x37,0x63,0x2c,0x74,0x2, 0xac,0xbc,0x49,0x35,0x62,0x66,0x7a,0x37,0x63,0x30,0x74, +0x9, 0xac,0xbd,0x49,0x25,0x5c,0xe3,0x7e,0x37,0x63,0x28,0x9d,0x32,0x7a,0x37,0x63, +0x20,0x74,0x9, 0xac,0xbd,0x49,0x25,0x5c,0xe5,0x7e,0x37,0x63,0x2a,0x9d,0x32,0x7a, +0x37,0x63,0x22,0x12,0xe6,0x23,0xbe,0xa0,0x0, 0x28,0x1c,0x7e,0x34,0x0, 0x17,0xca, +0x39,0x12,0xe5,0x62,0x2e,0x34,0xff,0xe9,0x7e,0x8, 0x63,0x32,0x12,0x24,0xf, 0x1b, +0xfd,0x7e,0x37,0x63,0x3b,0x80,0x9, 0x7e,0x8, 0x63,0x32,0x12,0xe6,0x70,0x6d,0x33, +0x7a,0x35,0x29,0x12,0xe6,0x23,0xbe,0xa0,0x2, 0x40,0x18,0x7e,0x34,0x0, 0x17,0xca, +0x39,0x12,0xe5,0x62,0x2e,0x34,0xff,0xd2,0x7e,0x8, 0x63,0x49,0x12,0x24,0xf, 0x1b, +0xfd,0x80,0x7, 0x7e,0x8, 0x63,0x49,0x12,0xe6,0x70,0x6d,0x33,0x7a,0x35,0x2d,0x75, +0x26,0x0, 0x80,0x12,0x7e,0xa1,0x26,0x12,0xe5,0x62,0x69,0x31,0x0, 0x9, 0x2e,0x35, +0x2d,0x7a,0x35,0x2d,0x5, 0x26,0xa, 0x3c,0x9, 0x73,0x62,0x15,0xbe,0x71,0x26,0x38, +0xe3,0xbe,0x70,0x0, 0x28,0xa, 0xa, 0x27,0x7e,0x35,0x2d,0x8d,0x32,0x7a,0x35,0x2d, +0x7e,0x35,0x2d,0x7a,0x37,0x63,0x2e,0xc2,0x0, 0xc2,0x1, 0x12,0x5f,0xa8,0xa, 0x3c, +0x9, 0xb3,0x62,0x7c,0x60,0x2, 0x61,0xd8,0x7e,0x71,0x3f,0x74,0x8, 0xac,0x7b,0x2e, +0x34,0x0, 0x14,0xbe,0x35,0x29,0x50,0x7, 0xbe,0x35,0x27,0x50,0x2, 0xd2,0x26,0x7e, +0xa3,0x63,0x32,0x74,0x5, 0xa4,0xbe,0x57,0x63,0x3b,0x50,0x19,0x7e,0xa3,0x63,0x49, +0x74,0x5, 0xa4,0xbe,0x57,0x63,0x52,0x50,0xc, 0x7e,0x37,0x63,0x45,0xbe,0x34,0x0, +0x14,0x28,0x2, 0xd2,0x1, 0xa2,0x1, 0xe4,0x33,0x7a,0xb3,0x63,0x1e,0x7e,0x71,0x3f, +0x74,0x1e,0xac,0x7b,0x2e,0x35,0x29,0xbe,0x35,0x27,0x50,0x4, 0xd2,0x3, 0x80,0xe, +0x7e,0x35,0x29,0x2e,0x34,0x0, 0x40,0xbe,0x35,0x27,0x50,0x2, 0xd2,0x4, 0x30,0x3, +0x6, 0xd2,0x2, 0x74,0x64,0x80,0x14,0x30,0x4, 0xf, 0x30,0x1, 0x6, 0xc2,0x2, 0x74, +0xa, 0x80,0x8, 0xd2,0x2, 0x74,0xc8,0x80,0x2, 0x74,0x14,0x7a,0xb3,0x63,0x1c,0x20, +0x2, 0x2, 0x61,0xc4,0x7e,0x37,0x63,0x2e,0xbe,0x34,0x0, 0xa, 0x38,0x2, 0x61,0xc4, +0x7e,0x37,0x63,0x45,0xbe,0x34,0x0, 0xa, 0x28,0x7a,0x7e,0x37,0x63,0x5c,0xbe,0x34, +0x0, 0xa, 0x28,0x70,0x7e,0x37,0x63,0x37,0x2e,0x37,0x63,0x3f,0x7a,0x35,0x39,0xbe, +0x34,0x0, 0x0, 0x58,0x5, 0x6d,0x33,0x7a,0x35,0x39,0x7e,0x37,0x63,0x39,0x2e,0x37, +0x63,0x41,0x12,0xe6,0xae,0x58,0x5, 0x6d,0x33,0x7a,0x35,0x3b,0x12,0xe5,0x59,0x7e, +0x15,0x39,0x7e,0x5, 0x3b,0x12,0xb8,0x77,0x7a,0x35,0x39,0x7e,0x37,0x63,0x47,0xbe, +0x34,0xf, 0xa0,0x40,0xa, 0x7e,0x27,0x63,0x45,0x7e,0x34,0x0, 0xf, 0x80,0x13,0x12, +0xe6,0xb6,0x7e,0x27,0x63,0x45,0x28,0x6, 0x7e,0x34,0x0, 0x9, 0x80,0x4, 0x7e,0x34, +0x0, 0x6, 0xad,0x32,0x7a,0x35,0x2f,0xbe,0x35,0x39,0x28,0x8, 0xc2,0x2, 0x74,0x28, +0x7a,0xb3,0x63,0x1c,0x30,0x25,0xc, 0xc2,0x2, 0xe4,0x12,0xe4,0xe5,0x74,0x6e,0x7a, +0xb3,0x63,0x1c,0x12,0xe6,0xbe,0x80,0x19,0xa, 0x3c,0x2e,0x34,0x62,0x7c,0x12,0xe6, +0xc6,0x12,0xe6,0xbe,0x74,0x78,0x7a,0xb3,0x63,0x1c,0xd2,0x2, 0xe4,0x7a,0xb3,0x63, +0x1e,0xa2,0x2, 0xe4,0x33,0x7a,0xb3,0x63,0x1f,0xa, 0x3c,0x9, 0xa3,0x62,0x1f,0x4c, +0xaa,0x78,0x19,0x7e,0x35,0x3d,0xbe,0x35,0x27,0x40,0x2, 0xc1,0x33,0x20,0x2, 0x2, +0xc1,0x33,0x74,0x1, 0xa, 0x4c,0x19,0xb4,0x62,0x1f,0xc1,0x33,0xbe,0xa0,0x1, 0x68, +0x2, 0xc1,0x15,0x7e,0x7, 0x63,0x5c,0xbe,0x4, 0x0, 0x3, 0x50,0x30,0x7e,0x17,0x63, +0x3b,0xbe,0x14,0x0, 0x50,0x50,0x26,0x7e,0x17,0x63,0x2c,0xbe,0x14,0x0, 0x14,0x50, +0x1c,0x7e,0x17,0x63,0x54,0xbe,0x14,0x0, 0x1e,0x50,0x12,0x7e,0x17,0x63,0x3d,0xbe, +0x14,0x0, 0x50,0x50,0x8, 0x7e,0x15,0x29,0x7a,0x15,0x2f,0xa1,0x46,0x7e,0x17,0x63, +0x2c,0xbe,0x14,0x0, 0xa, 0x50,0x13,0x7e,0x17,0x63,0x45,0xbe,0x14,0x0, 0x8, 0x28, +0x9, 0x7e,0x73,0x63,0x1d,0xbe,0x70,0xf, 0x40,0x15,0x7e,0x17,0x63,0x45,0xbe,0x14, +0x0, 0xf, 0x28,0x42,0xbe,0x4, 0x0, 0xf, 0x28,0x3c,0x12,0xe6,0xb6,0x50,0x37,0x7e, +0xa3,0x63,0x32,0xa, 0x2a,0x7e,0x35,0x29,0x8d,0x32,0x7d,0x23,0x1e,0x24,0x12,0xe4, +0xd7,0xbe,0x34,0x0, 0x78,0x28,0x7, 0x7e,0x4, 0x0, 0x78,0x7a,0x5, 0x2f,0xbe,0xa0, +0xa, 0x38,0x2, 0xa1,0x46,0x7e,0x5, 0x2f,0xbe,0x4, 0x0, 0x50,0x40,0x2, 0xa1,0x46, +0x7e,0x4, 0x0, 0x50,0x80,0x8, 0x7e,0xb3,0x63,0x4c,0x60,0x7, 0x6d,0x0, 0x7a,0x5, +0x2f,0x80,0x73,0x7e,0x73,0x63,0x32,0xa, 0x27,0x7e,0x37,0x63,0x3b,0x12,0xe4,0xd3, +0x7e,0xa3,0x63,0x34,0x74,0x2, 0xa4,0x7e,0x73,0x63,0x1d,0xa, 0x27,0xbd,0x25,0x8, +0x31,0xbe,0x14,0x0, 0x1e,0x50,0x2b,0x7e,0x63,0x63,0x4b,0xa, 0x6, 0x12,0xcf,0x1f, +0x8, 0x4, 0x9d,0x20,0x80,0x4, 0x6d,0x22,0x9d,0x21,0xbe,0x24,0x0, 0x5, 0x8, 0x12, +0x7e,0x25,0x2f,0xbe,0x24,0x0, 0xc8,0x50,0x2d,0x7e,0x24,0x0, 0xc8,0x7a,0x25,0x2f, +0x80,0x24,0xbe,0x70,0xf, 0x28,0xf, 0x7e,0x35,0x2f,0xbe,0x34,0x0, 0xc8,0x28,0x16, +0x7e,0x34,0x0, 0xc8,0x80,0xd, 0x7e,0x35,0x2f,0xbe,0x34,0x0, 0x78,0x28,0x7, 0x7e, +0x34,0x0, 0x78,0x7a,0x35,0x2f,0x7e,0x35,0x2f,0xbe,0x35,0x27,0x28,0x42,0xd2,0x0, +0x7e,0x37,0x63,0x2c,0xbe,0x34,0x0, 0x8, 0x50,0x11,0x12,0xe6,0x67,0x28,0xc, 0x74, +0x2, 0xa, 0x2c,0x19,0xb2,0x62,0x1f,0xc2,0x0, 0x80,0x7b,0x7e,0x27,0x63,0x54,0xbe, +0x24,0x0, 0x64,0x28,0x71,0x12,0xe6,0x67,0x28,0x6c,0xbe,0x34,0x0, 0x14,0x50,0x66, +0x7e,0x73,0x63,0x1d,0xbe,0x70,0x14,0x50,0x5d,0x12,0xe4,0xe3,0xc2,0x0, 0x80,0x56, +0x7e,0x35,0x3d,0xbe,0x35,0x27,0x50,0x8, 0x30,0x2, 0x5, 0x74,0x3, 0x12,0xe4,0xe5, +0x7e,0x37,0x63,0x2c,0xbe,0x34,0x0, 0x1e,0x50,0x3c,0x7e,0x73,0x5a,0x5b,0xbe,0x70, +0x2, 0x28,0x18,0x7e,0xb3,0x63,0x35,0x70,0x12,0x12,0xe6,0x5e,0x50,0xd, 0x12,0xe5, +0x59,0x12,0xb9,0x31,0x50,0x20,0x12,0xe4,0xe3,0x80,0x1b,0x12,0xe6,0x5e,0x50,0x16, +0x7e,0x37,0x63,0x26,0xbe,0x34,0x0, 0x1e,0x50,0xc, 0x7e,0x37,0x62,0x7a,0xbe,0x34, +0x0, 0x78,0x50,0x2, 0xd2,0x0, 0x12,0xe6,0x2a,0xb4,0x1, 0x1f,0x12,0xe5,0x59,0x7e, +0x17,0x63,0x56,0x7e,0x7, 0x63,0x58,0x12,0xb8,0x77,0xbe,0x34,0x0, 0x3c,0x50,0x2f, +0xc2,0x0, 0xe4,0xa, 0x3c,0x19,0xb3,0x62,0x15,0x80,0x24,0x12,0xe6,0x2a,0xb4,0x3, +0x22,0x74,0x1, 0x80,0x1b,0x12,0xe6,0x2a,0xb4,0x2, 0x18,0x7e,0x73,0x63,0x49,0xa, +0x27,0x7e,0x37,0x63,0x52,0x12,0xe4,0xd3,0xbe,0x35,0x27,0x28,0x2, 0xd2,0x0, 0xe4, +0x12,0xe4,0xe5,0x7e,0xa1,0x3f,0x74,0x64,0xa4,0x7a,0x55,0x37,0xbe,0x54,0x2, 0x80, +0x28,0xd, 0x7e,0xb3,0x62,0x29,0x70,0x7, 0x7e,0x34,0x2, 0x80,0x7a,0x35,0x37,0x7e, +0x35,0x37,0xbe,0x35,0x27,0x50,0xc, 0x7e,0x37,0x63,0x2c,0xbe,0x34,0x0, 0x2, 0x28, +0x2, 0xd2,0x0, 0x20,0x0, 0x2, 0xc1,0xe6,0xe4,0x12,0xe4,0xe5,0x12,0xb2,0xa5,0x70, +0x8, 0x74,0x3, 0x19,0xb3,0x6e,0x22,0x80,0x25,0x74,0x1, 0x19,0xb3,0x6e,0x22,0x75, +0x26,0x0, 0x80,0x15,0x12,0x85,0x95,0x9, 0x53,0x6d,0xcc,0xbc,0x5e,0x78,0x8, 0x74, +0xff,0x19,0xb3,0x6d,0xcc,0x80,0x7, 0x5, 0x26,0x12,0x81,0xc1,0x38,0xe6,0x7e,0xa0, +0x3, 0x7e,0x70,0x9, 0xac,0x7c,0x19,0xa3,0x6e,0x23,0xe5,0x40,0xbe,0xb0,0x0, 0x28, +0x35,0x15,0x40,0x7e,0x70,0x9, 0xac,0x7f,0x2e,0x34,0x6d,0x14,0x7e,0x14,0x62,0xb8, +0x74,0x9, 0x12,0x23,0x44,0x7e,0x71,0x40,0x74,0x9, 0xac,0x7b,0x2e,0x34,0x6d,0x14, +0x12,0x9d,0x7, 0x12,0xa7,0xce,0x7e,0x31,0x40,0x74,0x9, 0xac,0x3b,0x2e,0x14,0x6d, +0x14,0x12,0x23,0x44,0x1b,0xf0,0xa, 0x3c,0x9, 0xb3,0x62,0x15,0xb4,0x5, 0x3d,0x75, +0x26,0x0, 0x80,0x19,0x7e,0x34,0x0, 0x17,0xca,0x39,0x7e,0xa1,0x26,0x12,0xe6,0x55, +0x7f,0x10,0x2e,0x34,0x0, 0x17,0x12,0x24,0xf, 0x1b,0xfd,0x5, 0x26,0xe5,0x26,0xbe, +0xb0,0x4, 0x40,0xe0,0x7e,0x34,0x0, 0x17,0xca,0x39,0x7e,0x18,0x63,0x1b,0x7e,0xd, +0x33,0x2e,0x14,0x0, 0x5c,0x12,0x24,0xf, 0x1b,0xfd,0x80,0x4e,0x7e,0x34,0x0, 0x17, +0xca,0x39,0x12,0xe6,0x23,0x12,0xe6,0x55,0x7e,0x18,0x63,0x1b,0x12,0x24,0xf, 0x1b, +0xfd,0xa, 0x3c,0x2e,0x34,0x62,0x15,0x12,0xc1,0x9a,0x80,0x2e,0xb, 0xd0,0x12,0xb0, +0x9f,0x28,0x2, 0x21,0x2b,0x80,0x23,0x12,0xb2,0xaf,0x6d,0x22,0x74,0x2, 0xac,0xbe, +0x59,0x25,0x62,0x52,0x59,0x25,0x62,0x66,0x7e,0xa0,0xff,0x7e,0x50,0x9, 0xac,0x5e, +0x19,0xa2,0x5c,0xe7,0x74,0x1, 0x19,0xb3,0x62,0x7c,0xb, 0xf0,0xe5,0x40,0xbc,0xbf, +0x28,0x2, 0x1, 0xd3,0x12,0x87,0x98,0xca,0x59,0x7e,0x18,0x6d,0x14,0x7e,0x8, 0x62, +0xc1,0x12,0x24,0xf, 0x1b,0xfd,0x6c,0xff,0x2, 0xb0,0x23,0x74,0x9, 0xac,0xbf,0x9, +0xe5,0x6d,0x18,0xa, 0x3e,0x9, 0x73,0x62,0x1f,0xbe,0x70,0x0, 0x28,0x73,0x6c,0xdd, +0x80,0x6a,0xa, 0x4e,0x9, 0xa4,0x62,0x1f,0xbe,0xa0,0x1, 0x78,0x2e,0x7e,0x70,0x9, +0xac,0x7d,0x9, 0xb3,0x5c,0xe7,0xbc,0xbe,0x78,0x50,0x49,0x33,0x5c,0xe3,0x7e,0x50, +0x9, 0xac,0x5f,0x59,0x32,0x6d,0x14,0x7e,0x70,0x9, 0xac,0x7d,0x49,0x33,0x5c,0xe5, +0x7e,0x50,0x9, 0xac,0x5f,0x59,0x32,0x6d,0x16,0x80,0x36,0xbe,0xa0,0x2, 0x78,0x2a, +0x74,0x9, 0xac,0xbd,0x9, 0x75,0x5d,0x41,0xbc,0x7e,0x78,0x1e,0x49,0x35,0x5d,0x3d, +0x74,0x9, 0xac,0xbf,0x59,0x35,0x6d,0x14,0x74,0x9, 0xac,0xbd,0x49,0x35,0x5d,0x3f, +0x74,0x9, 0xac,0xbf,0x59,0x35,0x6d,0x16,0x80,0x7, 0xb, 0xd0,0x12,0xb0,0x9f,0x38, +0x91,0xb, 0xf0,0xe5,0x40,0xbc,0xbf,0x28,0x3, 0x2, 0xaf,0x9b,0x12,0x87,0x98,0xca, +0x59,0x7e,0x18,0x5c,0xe3,0x7e,0x8, 0x5d,0x3d,0x12,0x24,0xf, 0x1b,0xfd,0x12,0x87, +0x98,0xca,0x59,0x7e,0x18,0x62,0xc1,0x7e,0x8, 0x5c,0xe3,0x12,0x24,0xf, 0x1b,0xfd, +0x6c,0xff,0x80,0x38,0x7e,0x50,0x9, 0xac,0x5f,0x9, 0xe2,0x5c,0xe7,0x12,0xb2,0x9d, +0x28,0x28,0x12,0xb2,0xa5,0xbe,0xb0,0x1, 0x68,0x3, 0xb4,0x3, 0x1d,0x12,0xb2,0xaf, +0x6d,0x11,0x74,0x2, 0xac,0xbe,0x59,0x15,0x62,0x52,0x59,0x15,0x62,0x66,0x74,0xff, +0x19,0xb2,0x5c,0xe7,0x74,0x1, 0x19,0xb3,0x62,0x7c,0xb, 0xf0,0x12,0x9f,0x71,0x38, +0xc3,0xe5,0x40,0x7a,0xb3,0x6e,0x7c,0xe4,0x7a,0xb3,0x5c,0xc4,0xda,0x3b,0x22,0x90, +0x21,0x51,0xe4,0x93,0xbc,0xbd,0x22,0xca,0x3b,0x7c,0xfb,0x6c,0xee,0x21,0x41,0x6c, +0xdd,0x80,0x16,0x74,0x9, 0xac,0xbd,0x9, 0x65,0x6d,0xcc,0x74,0x9, 0xac,0xbe,0x9, +0x75,0x6d,0x18,0xbc,0x67,0x68,0x7, 0xb, 0xd0,0x12,0xb0,0x9f,0x38,0xe5,0x12,0xb0, +0x9f,0x28,0x74,0x7e,0x50,0x9, 0xac,0x5d,0x9, 0xc2,0x6d,0xcc,0x49,0x42,0x6d,0xca, +0x74,0x9, 0xac,0xbe,0x49,0xa5,0x6d,0x16,0x7d,0x3a,0x9d,0x34,0xbe,0x34,0x0, 0x0, +0x8, 0x4, 0x9d,0xa4,0x80,0x4, 0x6d,0xaa,0x9d,0xa3,0x49,0x42,0x6d,0xc8,0x49,0xb5, +0x6d,0x14,0x7d,0x3b,0x9d,0x34,0xbe,0x34,0x0, 0x0, 0x8, 0x4, 0x9d,0xb4,0x80,0x4, +0x6d,0xbb,0x9d,0xb3,0x2d,0xba,0x74,0x9, 0xac,0xbc,0x9, 0xb5,0x6e,0x22,0xb4,0x1, +0xe, 0x6d,0xaa,0x74,0x2, 0xac,0xbc,0x59,0xa5,0x5a,0x44,0x59,0xa5,0x5c,0xc5,0x7d, +0x3b,0x7c,0xbd,0x7c,0x5e,0x7c,0x4c,0x12,0xb3,0xbc,0x7c,0xbd,0x12,0xb1,0x4a,0xb, +0xe0,0xbc,0xfe,0x28,0x2, 0x1, 0xaf,0xda,0x3b,0x22,0x2, 0xb1,0x4d,0xca,0x3b,0x7c, +0xd4,0x7c,0xe5,0x7c,0xfb,0x7d,0xf3,0x7e,0x17,0x6e,0x9b,0xbd,0x13,0x38,0x6, 0x7e, +0xd4,0x1, 0x0, 0x80,0x17,0x6d,0x22,0x7c,0x56,0x7c,0x67,0x6c,0x77,0x12,0x22,0xbd, +0x7d,0xd3,0xbe,0xd4,0x0, 0x10,0x50,0x4, 0x7e,0xd4,0x0, 0x10,0x74,0x2, 0xac,0xbd, +0x49,0x45,0x5c,0xc5,0xbd,0x4f,0x28,0x6, 0x49,0xd5,0x5a,0x44,0x80,0x4, 0x59,0xd5, +0x5a,0x44,0x59,0xf5,0x5c,0xc5,0xbe,0xd4,0x1, 0x0, 0x28,0x4, 0x7e,0xd4,0x1, 0x0, +0x7e,0xb3,0x6e,0xa2,0x60,0xb, 0x7e,0x73,0x6e,0x7c,0xbe,0x70,0x2, 0x40,0x2, 0x1e, +0xd4,0x7e,0x73,0x6e,0x7c,0xbe,0x70,0x5, 0x28,0x2, 0x1e,0xd4,0xbe,0xd4,0x0, 0x20, +0x50,0x11,0x7e,0x70,0x9, 0xac,0x7d,0x9, 0xb3,0x59,0xe6,0xb4,0x1, 0x5, 0xe4,0x19, +0xb3,0x59,0xe6,0xbe,0xd4,0x0, 0x40,0x28,0xc, 0x7e,0xa0,0x1, 0x7e,0x70,0x9, 0xac, +0x7d,0x19,0xa3,0x59,0xe6,0x7c,0xbe,0x7c,0x7d,0x12,0xb2,0xbb,0x7d,0x13,0x7e,0xb3, +0x6e,0xa2,0x60,0x2, 0x1e,0xd4,0x7e,0x70,0x9, 0xac,0x7f,0x49,0x3, 0x6d,0xc8,0x7e, +0xd0,0x9, 0xac,0xde,0x49,0x26,0x6d,0x14,0x7d,0xe2,0x9d,0xe0,0xbe,0xe4,0x0, 0x0, +0x8, 0x6, 0x7d,0xf2,0x9d,0xf0,0x80,0x4, 0x6d,0xff,0x9d,0xfe,0x12,0xb2,0x8e,0xbd, +0x20,0x28,0xf, 0x7d,0xe3,0x2e,0xe4,0x6d,0xc8,0x7d,0xc0,0x2d,0xcf,0x1b,0xe8,0xc0, +0x80,0xf, 0x74,0x9, 0xac,0xbf,0x7d,0xe5,0x2e,0xe4,0x6d,0xc8,0x9d,0xf, 0x1b,0xe8, +0x0, 0x7e,0x50,0x9, 0xac,0x5f,0x49,0x32,0x6d,0xca,0x7e,0xd0,0x9, 0xac,0xde,0x49, +0xe6,0x6d,0x16,0x7d,0xe, 0x9d,0x3, 0xbe,0x4, 0x0, 0x0, 0x8, 0x6, 0x7d,0xfe,0x9d, +0xf3,0x80,0x4, 0x6d,0xff,0x9d,0xf0,0x12,0xb2,0x8e,0xbd,0xe3,0x28,0xf, 0x7d,0xe2, +0x2e,0xe4,0x6d,0xca,0x7d,0x23,0x2d,0x2f,0x1b,0xe8,0x20,0x80,0xe, 0x7e,0x50,0x9, +0xac,0x5f,0x2e,0x24,0x6d,0xca,0x9d,0x3f,0x1b,0x28,0x30,0xda,0x3b,0x22,0x7d,0x5d, +0xad,0x5f,0x7c,0xba,0x7c,0xa9,0xa, 0x48,0x7d,0xf5,0x5d,0xf1,0x22,0x90,0x21,0x51, +0xe4,0x93,0xbc,0xbe,0x22,0x7e,0x70,0x9, 0xac,0x7e,0x9, 0xb3,0x6e,0x22,0x22,0xe4, +0xa, 0x3e,0x19,0xb3,0x62,0x15,0x19,0xb3,0x62,0x1f,0x22,0x7c,0x17,0x7c,0xab,0x7e, +0x14,0xff,0xfc,0x7e,0x3, 0x6e,0x7c,0x7e,0x90,0x9, 0xac,0x91,0x9, 0xb4,0x59,0xe1, +0xb4,0x1, 0x49,0xa5,0xb8,0x1, 0xc, 0xbe,0x14,0xff,0x0, 0x28,0x10,0x7e,0x14,0xff, +0x0, 0x80,0xa, 0xbe,0x14,0xff,0xe0,0x28,0x4, 0x7e,0x14,0xff,0xe0,0x49,0x34,0x59, +0xe2,0x7e,0x50,0x9, 0xac,0x5a,0x49,0x22,0x6d,0x14,0x12,0xb3,0xa6,0x8, 0x3, 0x12, +0xb3,0xb0,0x7e,0x70,0x9, 0xac,0x71,0x49,0x33,0x59,0xe4,0x7e,0x50,0x9, 0xac,0x5a, +0x49,0x22,0x6d,0x16,0x12,0xb3,0xa6,0x8, 0x3, 0x12,0xb3,0xb0,0x7e,0x70,0x9, 0xac, +0x71,0x49,0x23,0x59,0xe2,0x7e,0x70,0x9, 0xac,0x7a,0x49,0x33,0x6d,0x14,0x12,0xb3, +0x9c,0x18,0x16,0x74,0x9, 0xac,0x1b,0x49,0x20,0x59,0xe4,0x7e,0x70,0x9, 0xac,0x7a, +0x49,0x33,0x6d,0x16,0x12,0xb3,0x9c,0x8, 0x4, 0x7e,0x14,0xff,0xfc,0x7e,0x50,0x9, +0xac,0x5a,0x49,0x2, 0x6d,0x14,0xbe,0x4, 0x6, 0x50,0x40,0x39,0x7e,0x63,0x6e,0xb1, +0x7e,0x70,0x40,0xac,0x67,0x9e,0x34,0x0, 0x65,0x12,0x33,0xd2,0x3e,0x34,0xbd,0x3, +0x38,0x23,0x49,0x32,0x6d,0x16,0xbe,0x34,0x6, 0x50,0x40,0x19,0x7e,0x3, 0x6e,0xb2, +0x7e,0x10,0x40,0xac,0x1, 0x9e,0x4, 0x0, 0x65,0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x3e, +0x4, 0xbd,0x30,0x28,0x4, 0x7e,0x14,0xff,0xff,0x7d,0x31,0x22,0x9d,0x32,0x12,0x24, +0x56,0xbe,0x34,0x4, 0x0, 0x22,0x9d,0x32,0x12,0x24,0x56,0xbe,0x34,0x1, 0x0, 0x22, +0x6c,0x0, 0x7e,0x70,0x9, 0xac,0x71,0x19,0x3, 0x59,0xe1,0x22,0xca,0x3b,0x7c,0xab, +0x7d,0x3, 0x7e,0x20,0x10,0x7d,0x30,0x7e,0x90,0x9, 0xac,0x95,0x9, 0x34,0x6d,0x1a, +0xbe,0x30,0x10,0x28,0x2, 0x7c,0x23,0xbe,0x20,0x20,0x28,0x3, 0x7e,0x20,0x20,0x49, +0xe4,0x6d,0x14,0xbe,0xe4,0x6, 0x50,0x40,0x20,0x7e,0x33,0x6e,0xb1,0x12,0xb4,0xbe, +0xbd,0xef,0x38,0x15,0x49,0xe4,0x6d,0x16,0xbe,0xe4,0x6, 0x50,0x40,0xb, 0x7e,0x33, +0x6e,0xb2,0x12,0xb4,0xbe,0xbd,0xef,0x28,0x3, 0x7e,0x20,0x8, 0x7e,0xf0,0x10,0xac, +0xf2,0xbd,0x70,0x40,0x63,0x7e,0xf0,0x9, 0xac,0xf4,0x9, 0xb7,0x59,0xe6,0x70,0x58, +0x7e,0xd0,0x8, 0xac,0xd2,0xbd,0x60,0x50,0x3c,0x9, 0xb7,0x59,0xdf,0x70,0x1f,0x9, +0xb7,0x59,0xe0,0xbe,0xb0,0x0, 0x28,0xc, 0x7d,0x37,0x2e,0x34,0x59,0xe0,0x14,0x7a, +0x39,0xb0,0x80,0x6, 0x74,0x1, 0x19,0xb7,0x59,0xdf,0x6d,0x33,0x80,0x3a,0x9, 0xb7, +0x59,0xe0,0xbe,0xb0,0x14,0x50,0x31,0x7d,0x37,0x2e,0x34,0x59,0xe0,0x4, 0x7a,0x39, +0xb0,0x6d,0x33,0x80,0x23,0xe4,0x19,0xb7,0x59,0xe0,0x19,0xb7,0x59,0xdf,0x6d,0x33, +0x74,0x1, 0x7a,0xb3,0x5c,0xd9,0x80,0x10,0x6c,0x33,0x7e,0xf0,0x9, 0xac,0xf4,0x19, +0x37,0x59,0xe0,0xe4,0x19,0xb7,0x59,0xdf,0x7e,0x30,0x8, 0xac,0x23,0xbd,0x10,0x40, +0x2a,0x7e,0x70,0x9, 0xac,0x7a,0x49,0x33,0x6d,0xc8,0x59,0x34,0x6d,0x14,0x74,0x9, +0xa4,0x49,0x35,0x6d,0xca,0x74,0x9, 0xac,0xb5,0x59,0x35,0x6d,0x16,0x7e,0xa0,0x1, +0x7e,0x70,0x9, 0xac,0x74,0x19,0xa3,0x59,0xde,0x6d,0x33,0xda,0x3b,0x22,0x7e,0xf0, +0x40,0xac,0xf3,0x7d,0xf7,0x9e,0xf4,0x0, 0x65,0x3e,0xf4,0x3e,0xf4,0x3e,0xf4,0x3e, +0xf4,0x22,0x7e,0x8, 0x59,0xd4,0x7e,0x34,0x0, 0xa, 0x74,0x3, 0x12,0x24,0x34,0x7e, +0x8, 0x5a,0x38,0x7e,0x34,0x0, 0xa, 0xe4,0x2, 0x24,0x34,0xca,0x79,0x7e,0xb3,0x6e, +0x7c,0x7e,0x18,0x6e,0x22,0x70,0x11,0x12,0xb4,0xd2,0x7e,0x8, 0x62,0xae,0x7e,0x34, +0x0, 0xa, 0xe4,0x12,0x24,0x34,0xc1,0xec,0x6c,0xaa,0xc1,0xe5,0x7e,0xf0,0x9, 0xac, +0xfa,0x9, 0x37,0x6d,0x72,0xc2,0x0, 0xc2,0x1, 0x49,0xe7,0x6d,0x6e,0x4d,0xee,0x68, +0x11,0x7e,0xd4,0x21,0xde,0x7e,0xc4,0x0, 0xff,0xb, 0x6a,0xf0,0x1b,0xf4,0xbd,0xef, +0x78,0x2, 0xd2,0x0, 0x49,0xf7,0x6d,0x70,0x4d,0xff,0x68,0xd, 0x7e,0xd4,0x21,0xec, +0x12,0xb7,0x3, 0x1b,0x4, 0xbd,0xf0,0x78,0x2, 0xd2,0x1, 0xbe,0x30,0xff,0x78,0x2, +0xc1,0xe3,0x7e,0x10,0x9, 0xac,0x13,0x7f,0x61,0x2d,0xd0,0x7e,0x6b,0xb0,0xb4,0x2, +0x2, 0x80,0x2, 0xc1,0xb6,0x7e,0x10,0x4, 0xac,0x13,0x49,0xd0,0x62,0x86,0x7d,0xce, +0x9d,0xcd,0xbe,0xc4,0x0, 0x0, 0x8, 0x6, 0x7d,0x4e,0x9d,0x4d,0x80,0x4, 0x6d,0x44, +0x9d,0x4c,0x49,0xb0,0x62,0x88,0x7d,0xcf,0x9d,0xcb,0xbe,0xc4,0x0, 0x0, 0x8, 0x6, +0x7d,0xf, 0x9d,0xb, 0x80,0x4, 0x6d,0x0, 0x9d,0xc, 0x7e,0x23,0x6e,0x7c,0xbe,0x20, +0x8, 0x40,0x8, 0x74,0xf, 0xa, 0xca,0x19,0xbc,0x59,0xd4,0xa, 0xca,0x9, 0xbc,0x62, +0xae,0x70,0xe, 0x7d,0xc0,0x2d,0xc4,0xbe,0xc4,0x0, 0x4, 0x50,0x4, 0x6d,0x0, 0x7d, +0x40,0xa, 0xca,0x9, 0x2c,0x59,0xd4,0xa, 0xc2,0xbd,0xc4,0x28,0x52,0xbd,0xc0,0x28, +0x4e,0x20,0x0, 0x3, 0x12,0xb6,0xf9,0x20,0x1, 0x12,0x7e,0xf0,0x4, 0xac,0xf3,0x49, +0xb7,0x62,0x88,0x7e,0xf0,0x9, 0xac,0xfa,0x59,0xb7,0x6d,0x70,0xa, 0xba,0x2e,0xb4, +0x5a,0x38,0x7e,0xb9,0xb0,0x4, 0x7a,0xb9,0xb0,0xa, 0xba,0x9, 0xbb,0x5a,0x38,0xbe, +0xb0,0x32,0x50,0x2, 0xc1,0xe3,0xa, 0xba,0x9, 0xbb,0x59,0xd4,0xbe,0xb0,0x8, 0x40, +0x2, 0xc1,0xe3,0xa, 0xba,0x2e,0xb4,0x59,0xd4,0x4, 0x7a,0xb9,0xb0,0xc1,0xe3,0xbd, +0xc4,0x28,0x56,0xbd,0xc0,0x28,0x52,0x20,0x0, 0x4f,0x20,0x1, 0x4c,0x7e,0xb3,0x78, +0x13,0x70,0x46,0x12,0xb6,0xf9,0x7e,0xf0,0x4, 0xac,0xf3,0x49,0xd7,0x62,0x88,0x7e, +0xf0,0x9, 0xac,0xfa,0x59,0xd7,0x6d,0x70,0xa, 0xda,0x2e,0xd4,0x5a,0x38,0x7e,0xd9, +0xb0,0x4, 0x7a,0xd9,0xb0,0xa, 0xda,0x9, 0xbd,0x5a,0x38,0xbe,0xb0,0x32,0x50,0x2, +0xc1,0xe3,0xa, 0xda,0x9, 0xbd,0x59,0xd4,0xbe,0xb0,0x8, 0x50,0x76,0xa, 0xda,0x2e, +0xd4,0x59,0xd4,0x4, 0x7a,0xd9,0xb0,0x80,0x6a,0x74,0x1, 0xa, 0xda,0x19,0xbd,0x62, +0xae,0x12,0xb6,0xef,0x7e,0xf0,0x4, 0xac,0xf3,0x59,0xf7,0x62,0x88,0xbe,0x20,0x8, +0x40,0xa, 0x74,0x1, 0xa, 0xda,0x19,0xbd,0x59,0xd4,0x80,0x11,0xbe,0x20,0x1, 0x28, +0xc, 0xa, 0xda,0x2e,0xd4,0x59,0xd4,0x7c,0xb2,0x14,0x7a,0xd9,0xb0,0xe4,0xa, 0xda, +0x19,0xbd,0x5a,0x38,0x80,0x2d,0x7e,0xf0,0x9, 0xac,0xf3,0x7f,0x61,0x2d,0xd7,0x7e, +0x6b,0xb0,0x70,0x9, 0x12,0xb6,0xef,0x59,0xf7,0x62,0x88,0x80,0x16,0x7e,0xf0,0x9, +0xac,0xf3,0x7f,0x71,0x2d,0xf7,0x7e,0x7b,0xb0,0xb4,0x1, 0x7, 0xe4,0xa, 0xfa,0x19, +0xbf,0x62,0xae,0xb, 0xa0,0x12,0x4c,0xf7,0x28,0x2, 0xa1,0xc, 0xda,0x79,0x22,0x7e, +0xf0,0x4, 0xac,0xf3,0x59,0xe7,0x62,0x86,0x22,0x7e,0xf0,0x9, 0xac,0xfa,0x59,0xd7, +0x6d,0x6e,0x22,0x7e,0xc4,0x0, 0xff,0xb, 0x6a,0x0, 0x22,0x6c,0x77,0x7e,0xa0,0xff, +0x7e,0x78,0xff,0xff,0x6d,0x44,0x6c,0x66,0x7e,0x14,0x0, 0x1, 0x7c,0xb6,0x60,0x5, +0x3e,0x14,0x14,0x78,0xfb,0x7e,0xb3,0x74,0x7b,0xa, 0x2b,0x5d,0x21,0xbe,0x24,0x0, +0x0, 0x8, 0xd, 0x7e,0x24,0xff,0xff,0x7e,0x30,0x26,0xac,0x36,0x59,0x21,0x74,0x84, +0x12,0xb7,0xa4,0x6d,0x0, 0xbf,0x7, 0x50,0x8, 0x7f,0x70,0x49,0x42,0x74,0x86,0x7c, +0x76,0xb, 0x60,0xa5,0xbe,0x3, 0xc1,0x7e,0x63,0x74,0x7e,0xbc,0x67,0x68,0x42,0x12, +0xb7,0xa4,0x7d,0xc1,0x1e,0xc4,0x1e,0xc4,0x7e,0xd4,0x0, 0x3, 0xad,0xdc,0x6d,0xcc, +0xbf,0x76,0x50,0xb, 0x7e,0xd4,0x22,0x2c,0x12,0xb7,0x3, 0xbd,0x4, 0x38,0x20,0x1e, +0x14,0x6d,0x0, 0xbf,0x70,0x50,0x1a,0x7e,0x50,0x26,0xac,0x56,0x49,0x12,0x74,0x86, +0x7e,0xf4,0x22,0x2c,0x7e,0xe4,0x0, 0xff,0xb, 0x7a,0x20,0xbd,0x12,0x28,0x2, 0x7c, +0xa7,0x7c,0xba,0x22,0x7e,0x50,0x26,0xac,0x56,0x49,0x12,0x74,0x84,0x22,0x7e,0xa3, +0x6e,0x7d,0xbe,0xa0,0x0, 0x38,0x23,0xbe,0xa3,0x6e,0x7c,0x50,0x18,0x7e,0xb3,0x6e, +0x86,0xbe,0xb3,0x5c,0xdb,0x28,0x13,0x7e,0xb3,0x5c,0xdb,0x4, 0x7a,0xb3,0x5c,0xdb, +0x7a,0xa3,0x6e,0x7c,0x22,0xe4,0x7a,0xb3,0x5c,0xdb,0x22,0x7e,0x73,0x6e,0x7d,0xbe, +0x73,0x6e,0x7c,0x78,0x7d,0x7e,0xb3,0x6e,0x7c,0xb4,0x1, 0x76,0x7e,0xb3,0x5c,0xdc, +0xbe,0xb0,0x2, 0x38,0x13,0x4, 0x7a,0xb3,0x5c,0xdc,0x7e,0x37,0x6d,0x14,0x7a,0x37, +0x5c,0xdf,0x7e,0x37,0x6d,0x16,0x80,0x69,0x7e,0x37,0x5c,0xdd,0xbe,0x34,0x6, 0xa4, +0x50,0x4e,0x7e,0x27,0x6d,0x14,0x7d,0x12,0x9e,0x17,0x5c,0xdf,0xbe,0x14,0x0, 0x0, +0x8, 0x8, 0x7d,0x32,0x9e,0x37,0x5c,0xdf,0x80,0x4, 0x6d,0x33,0x9d,0x31,0x2e,0x37, +0x5c,0xdd,0x7a,0x37,0x5c,0xdd,0x7e,0x37,0x6d,0x16,0x7d,0x3, 0x9e,0x7, 0x5c,0xe1, +0xbe,0x4, 0x0, 0x0, 0x8, 0x8, 0x7d,0x13,0x9e,0x17,0x5c,0xe1,0x80,0x4, 0x6d,0x11, +0x9d,0x10,0x2e,0x17,0x5c,0xdd,0x7a,0x17,0x5c,0xdd,0x7a,0x27,0x5c,0xdf,0x80,0x11, +0xd3,0x22,0xe4,0x7a,0xb3,0x5c,0xdc,0x6d,0x33,0x7a,0x37,0x5c,0xdd,0x7a,0x37,0x5c, +0xdf,0x7a,0x37,0x5c,0xe1,0xc3,0x22,0xca,0x3b,0xbd,0x13,0x50,0x8, 0x7d,0x73,0x9d, +0x71,0x6d,0x66,0x80,0x6, 0x7d,0x71,0x9d,0x73,0x6d,0x66,0xbd,0x2, 0x50,0x8, 0x7d, +0x92,0x9d,0x90,0x6d,0x88,0x80,0x6, 0x7d,0x90,0x9d,0x92,0x6d,0x88,0x7f,0x13,0x7f, +0x3, 0x12,0x22,0xa3,0x7f,0x31,0x7f,0x14,0x7f,0x4, 0x12,0x22,0xa3,0x7f,0x41,0x7f, +0x13,0x2f,0x14,0x12,0xb8,0xb9,0xda,0x3b,0x22,0x7f,0x61,0xbe,0x68,0x0, 0x6, 0x50, +0x15,0xbe,0x68,0x0, 0x2, 0x50,0x3, 0x7f,0x16,0x22,0x7f,0x16,0x1e,0x34,0x1e,0x24, +0x50,0x3, 0x4e,0x60,0x80,0x22,0x7f,0x76,0xe4,0x80,0xe, 0x7f,0x17,0x1e,0x34,0xe, +0x24,0x50,0x3, 0x4e,0x60,0x80,0x7f,0x71,0x4, 0xbe,0x78,0x0, 0x1, 0x18,0xec,0x1e, +0xb0,0x60,0x5, 0x2f,0x77,0x14,0x78,0xfb,0x7f,0x17,0x2f,0x17,0x2f,0x17,0x1e,0x34, +0xe, 0x24,0x50,0x3, 0x4e,0x60,0x80,0x7f,0x71,0x7f,0x57,0x7f,0x16,0x7f,0x7, 0x12, +0x22,0xbf,0x2f,0x17,0x1e,0x34,0x1e,0x24,0x50,0x3, 0x4e,0x60,0x80,0x7f,0x71,0x7d, +0x2b,0x7d,0x3f,0x9d,0x32,0x12,0x24,0x56,0xbe,0x34,0x0, 0x1, 0x18,0xdb,0x7f,0x17, +0x22,0x6c,0xaa,0x6c,0x33,0x80,0x4e,0x7e,0x90,0x4, 0xac,0x93,0x7e,0x10,0x28,0xac, +0x1a,0x7d,0xe0,0x2d,0xe4,0x49,0xe, 0x5a,0x6b,0x7d,0xf3,0x9d,0xf0,0xbe,0xf4,0x0, +0x0, 0x8, 0x6, 0x7d,0x43,0x9d,0x40,0x80,0x4, 0x6d,0x44,0x9d,0x4f,0x49,0xde,0x5a, +0x6d,0x7d,0xf2,0x9d,0xfd,0xbe,0xf4,0x0, 0x0, 0x8, 0x6, 0x7d,0x2, 0x9d,0xd, 0x80, +0x4, 0x6d,0x0, 0x9d,0xf, 0xbe,0x44,0x0, 0x50,0x50,0x8, 0xbe,0x4, 0x0, 0x50,0x50, +0x2, 0xd3,0x22,0xb, 0x30,0xa, 0xfa,0x9, 0x2f,0x5a,0x5c,0xbc,0x23,0x38,0xa8,0xb, +0xa0,0xbe,0xa0,0xf, 0x40,0x9d,0xc3,0x22,0x12,0x54,0xc8,0x74,0x2, 0xac,0x7b,0x7e, +0x8, 0x5c,0xc5,0xe4,0x12,0x24,0x34,0x90,0x21,0x51,0x93,0x7c,0x7b,0x74,0x2, 0xac, +0x7b,0x7e,0x8, 0x5a,0x44,0xe4,0x2, 0x24,0x34,0x7e,0xb3,0x5c,0xc4,0xbe,0xb0,0xfa, +0x50,0x5, 0x4, 0x7a,0xb3,0x5c,0xc4,0x22,0x6c,0xaa,0x80,0x63,0x7e,0x50,0x9, 0xac, +0x5a,0x49,0x32,0x6d,0xc8,0x12,0x2f,0xb0,0x59,0x32,0x6d,0x14,0x7e,0x50,0x9, 0xac, +0x5a,0x49,0x32,0x6d,0xca,0x12,0x2f,0xb0,0x59,0x32,0x6d,0x16,0x7e,0x90,0x9, 0xac, +0x9a,0x9, 0xb4,0x6d,0xcc,0x19,0xb4,0x6d,0x18,0x7e,0x90,0x9, 0xac,0x9a,0x9, 0xb4, +0x6d,0xcd,0x19,0xb4,0x6d,0x19,0x7e,0x90,0x9, 0xac,0x9a,0x9, 0xb4,0x6d,0xce,0x19, +0xb4,0x6d,0x1a,0x7e,0x90,0x9, 0xac,0x9a,0x9, 0xb4,0x6d,0xcf,0x19,0xb4,0x6d,0x1b, +0x7e,0x90,0x9, 0xac,0x9a,0x9, 0xb4,0x6d,0xd0,0x19,0xb4,0x6d,0x1c,0xb, 0xa0,0x12, +0x4c,0xf7,0x38,0x98,0x22,0x12,0xbb,0x9b,0x12,0xbb,0xa5,0x12,0xba,0x48,0x2, 0xba, +0x41,0x74,0x1, 0x7a,0xb3,0x78,0x44,0x22,0xca,0x3b,0x7e,0xf3,0x6e,0xb0,0x7e,0xe3, +0x6e,0xb1,0x7e,0xd3,0x6e,0xb2,0x6d,0x88,0x6c,0xcc,0x80,0x15,0x7d,0x18,0x3e,0x14, +0x2e,0x14,0x4, 0x0, 0x6d,0x0, 0x7c,0xbd,0x12,0xba,0x78,0xa, 0x9f,0x2d,0x89,0xb, +0xc0,0xbc,0xec,0x38,0xe7,0xda,0x3b,0x22,0xca,0x79,0x7c,0xfb,0x7f,0x70,0xc2,0x0, +0x75,0x26,0x0, 0x9f,0x55,0x6d,0x11,0x7d,0xd1,0x7d,0xc1,0x7d,0x91,0x7e,0x4, 0x7f, +0xff,0x6c,0xee,0x80,0x26,0x74,0x2, 0xac,0xbe,0x7f,0x17,0x2d,0x35,0xb, 0x1a,0x30, +0x12,0x24,0x56,0x7d,0xc3,0xbd,0xdc,0x58,0x2, 0x7d,0xdc,0xbd,0xc, 0x8, 0x2, 0x7d, +0xc, 0x7d,0x3c,0x1a,0x26,0x1a,0x24,0x2f,0x51,0xb, 0xe0,0xbc,0xfe,0x38,0xd6,0xbe, +0xd4,0x0, 0x1e,0x58,0xa, 0x7e,0xb3,0x6c,0xf4,0x70,0x4, 0x6d,0x33,0x61,0x8e,0xbe, +0xd4,0x4, 0xb0,0x8, 0x2, 0xd2,0x0, 0xbe,0xd4,0x4, 0xb0,0x8, 0x11,0x7e,0xd4,0x0, +0xa0,0x7e,0xb3,0x76,0x5a,0xb4,0x1, 0x38,0x7e,0xd4,0x2, 0x58,0x80,0x32,0xbe,0xd4, +0x3, 0x20,0x8, 0x11,0x7e,0xd4,0x0, 0x96,0x7e,0xb3,0x76,0x5a,0xb4,0x1, 0x21,0x7e, +0xd4,0x2, 0x26,0x80,0x1b,0xbe,0xd4,0x0, 0x0, 0x8, 0x11,0x7e,0xd4,0x0, 0x8c,0x7e, +0xb3,0x76,0x5a,0xb4,0x1, 0xa, 0x7e,0xd4,0x1, 0xc2,0x80,0x4, 0x6d,0x33,0x80,0x6e, +0xbd,0xd, 0x8, 0x5, 0x30,0x0, 0x2, 0x7d,0xd0,0xa, 0x1f,0x12,0xbb,0x91,0x9f,0x55, +0x7f,0x27,0x6c,0xee,0x80,0x1c,0xb, 0x2a,0x90,0xb, 0x55,0x7d,0x39,0x12,0x24,0x56, +0x7d,0xc3,0xbd,0x1c,0x8, 0xa, 0x7d,0x39,0x1a,0x26,0x1a,0x24,0x2f,0x51,0x5, 0x26, +0xb, 0xe0,0xbc,0xfe,0x38,0xe0,0x6d,0x11,0xe5,0x26,0xbe,0xb0,0x0, 0x28,0x7, 0xe5, +0x26,0xa, 0x1b,0x12,0xbb,0x91,0xbd,0x1d,0x8, 0x4, 0x7d,0x1d,0x80,0xa, 0x6d,0x0, +0x9d,0xd, 0xbd,0x1, 0x8, 0x2, 0x7d,0x10,0x6c,0xee,0x80,0xc, 0xb, 0x7a,0x0, 0x9d, +0x1, 0x1b,0x7a,0x0, 0xb, 0xf5,0xb, 0xe0,0xbc,0xfe,0x38,0xf0,0x7d,0x31,0xda,0x79, +0x22,0x6d,0x0, 0x7f,0x15,0x12,0x23,0x10,0x7d,0x13,0x22,0xe4,0x7a,0xb3,0x6d,0xb, +0x7a,0xb3,0x6d,0xc, 0x22,0x7e,0x8, 0x8, 0xc, 0x7e,0x1f,0x24,0x68,0x12,0x77,0x75, +0x7e,0x37,0x73,0x21,0x7e,0x50,0x4, 0x7d,0x3, 0x3e,0x4, 0x7e,0x2f,0x24,0x68,0x2d, +0x50,0xb, 0x2a,0x10,0x59,0x10,0x8, 0xc, 0xb, 0x34,0x1b,0x50,0x78,0xe9,0x22,0xca, +0x79,0x7e,0x73,0x6e,0x7c,0x4c,0x77,0x68,0x5, 0xbe,0x70,0x1, 0x28,0xb, 0x12,0xbd, +0xe0,0x74,0x1e,0x7a,0xb3,0x77,0xcf,0xa1,0xd5,0x7e,0xb3,0x77,0xb3,0x70,0x4a,0x7e, +0xb3,0x6e,0x7d,0x70,0x44,0xa5,0xbf,0x1, 0x40,0x7e,0x57,0x6d,0x70,0xbe,0x54,0x5, +0x50,0x28,0x36,0xbe,0x54,0x5, 0xa0,0x50,0x30,0x7e,0xc7,0x6d,0x6e,0xbe,0xc4,0x0, +0x50,0x28,0x26,0xbe,0xc4,0x2, 0x76,0x50,0x20,0x7a,0xc7,0x77,0xc6,0x7a,0x57,0x77, +0xc8,0x7e,0xc7,0x77,0xc6,0x7a,0xc7,0x77,0xb4,0x7a,0x57,0x77,0xb6,0x74,0x1, 0x7a, +0xb3,0x77,0xb3,0x74,0x1e,0x7a,0xb3,0x77,0xcf,0x7e,0xa3,0x77,0xb3,0xbe,0xa0,0x1, +0x68,0x2, 0x81,0xd3,0x7e,0xb3,0x6e,0x7d,0xb4,0x1, 0x2, 0x80,0x2, 0x81,0xd3,0xa5, +0xbf,0x1, 0x2, 0x80,0x2, 0x81,0xd3,0x12,0xbd,0xe9,0x28,0x77,0xbe,0xc4,0x5, 0xa0, +0x50,0x71,0x7e,0xf7,0x6d,0x6e,0x7a,0xf7,0x77,0xc6,0x7a,0xc7,0x77,0xc8,0x7e,0xf7, +0x77,0xc6,0x9e,0xf7,0x77,0xb4,0x7d,0x4c,0x9e,0x47,0x77,0xb6,0xbe,0xf4,0x0, 0x0, +0x8, 0x6, 0x7d,0xcf,0x7d,0xdc,0x80,0x4, 0x6d,0xdd,0x9d,0xdf,0xbe,0x44,0x0, 0x0, +0x8, 0x6, 0x7d,0xc4,0x7d,0xec,0x80,0x4, 0x6d,0xee,0x9d,0xe4,0xbe,0xd4,0x0, 0x64, +0x58,0x2e,0xbe,0xe4,0x0, 0x64,0x58,0x28,0x7d,0xce,0x2d,0xcd,0xbe,0xc4,0x0, 0x96, +0x58,0x1e,0x7d,0xcf,0xe, 0xc4,0xe, 0xc4,0x2e,0xc7,0x77,0xb4,0x7a,0xc7,0x6d,0x6e, +0x7d,0xc4,0xe, 0xc4,0xe, 0xc4,0x2e,0xc7,0x77,0xb6,0x7a,0xc7,0x6d,0x70,0x80,0x3, +0x75,0x6b,0x1, 0xe5,0x6b,0xbe,0xb0,0x1, 0x68,0xe, 0x12,0xbd,0xe9,0x28,0x2, 0xa1, +0xc5,0xbe,0xa0,0x1, 0x68,0x2, 0xa1,0xc5,0x75,0x6b,0x1, 0xbe,0xa0,0x1, 0x78,0x6, +0x74,0x1d,0x7a,0xb3,0x77,0xcf,0xe4,0x7a,0xb3,0x77,0xb3,0x7e,0x37,0x6d,0x6e,0x7d, +0xf3,0x9e,0xf7,0x77,0xbd,0x7e,0x47,0x6d,0x70,0x9e,0x47,0x77,0xbf,0xbe,0xf4,0x0, +0x0, 0x8, 0x6, 0x7d,0x2f,0x7d,0xd2,0x80,0x4, 0x6d,0xdd,0x9d,0xdf,0xbe,0x44,0x0, +0x0, 0x8, 0x6, 0x7d,0x24,0x7d,0xe2,0x80,0x4, 0x6d,0xee,0x9d,0xe4,0x7e,0xf3,0x77, +0xcf,0x7c,0x1f,0x2e,0x10,0x4d,0xa5,0xe7,0x7c,0xeb,0xa, 0x9e,0x6d,0x88,0x7e,0x8, +0x0, 0x40,0x9f,0x4, 0x6d,0x22,0x12,0x22,0xa3,0x7f,0x51,0x7e,0x37,0x77,0xbd,0x6d, +0x22,0x7f,0x4, 0x12,0xbd,0xd8,0x1e,0x34,0x1e,0x24,0x50,0x3, 0x4e,0x60,0x80,0x14, +0x78,0xf4,0x7d,0x53,0x7a,0x57,0x6d,0x6e,0xa, 0x3e,0x6d,0x22,0x7e,0x8, 0x0, 0x40, +0x9f,0x1, 0x7e,0x37,0x6d,0x70,0x12,0x22,0xa3,0x7f,0x51,0xa, 0x1e,0x6d,0x0, 0x7e, +0x37,0x77,0xbf,0x6d,0x22,0x12,0xbd,0xd8,0x1e,0x34,0x1e,0x24,0x50,0x3, 0x4e,0x60, +0x80,0x14,0x78,0xf4,0x7d,0x53,0x7a,0x57,0x6d,0x70,0xbe,0xf0,0x0, 0x28,0x1f,0xbe, +0xd4,0x0, 0x2, 0x18,0x10,0xbe,0xe4,0x0, 0x2, 0x18,0xa, 0x7d,0x5e,0x2d,0x5d,0xbe, +0x54,0x0, 0x4, 0x8, 0x9, 0x7c,0xbf,0x14,0x7a,0xb3,0x77,0xcf,0x80,0x7, 0x4c,0xff, +0x78,0x3, 0x12,0xbd,0xe0,0x7e,0x57,0x6d,0x6e,0x7a,0x57,0x77,0xbd,0x7e,0x57,0x6d, +0x70,0x7a,0x57,0x77,0xbf,0xda,0x79,0x22,0x12,0x22,0xa3,0x2f,0x15,0x74,0x6, 0x22, +0xe4,0x7a,0xb3,0x77,0xb3,0x75,0x6b,0x0, 0x22,0x7e,0xc7,0x6d,0x70,0xbe,0xc4,0x5, +0x50,0x22,0x12,0xbe,0x39,0x28,0x3a,0x7e,0xb3,0x6e,0x7d,0x70,0x34,0x7e,0x37,0x6c, +0xe0,0xbe,0x34,0x0, 0x26,0x28,0x2f,0x7e,0xb3,0x78,0x27,0xbe,0xb0,0x2, 0x50,0x26, +0x4, 0x7a,0xb3,0x78,0x27,0x6c,0x33,0x80,0x9, 0xc2,0x2, 0x7c,0xb3,0x12,0x57,0x49, +0xb, 0x30,0x7e,0x23,0x6c,0xde,0xbc,0x23,0x38,0xef,0xe4,0x7a,0xb3,0x6c,0xde,0x80, +0x5, 0xe4,0x7a,0xb3,0x78,0x27,0x2, 0x2f,0x20,0x7e,0x73,0x6c,0xde,0xbe,0x70,0x0, +0x22,0x7e,0x63,0x6e,0xb0,0x7e,0x73,0x6e,0xaf,0xac,0x76,0x7d,0x13,0x1e,0x14,0x7e, +0x27,0x6c,0xe2,0x2e,0x27,0x6c,0xe0,0xbd,0x21,0x38,0x16,0x1e,0x34,0x1e,0x34,0x7d, +0x23,0x2e,0x24,0x0, 0x14,0xbe,0x27,0x6c,0xe0,0x40,0x6, 0xbe,0x37,0x6c,0xe2,0x50, +0x2, 0xd3,0x22,0xc3,0x22,0x7e,0x37,0x6c,0xe2,0x2e,0x37,0x6c,0xe0,0xbe,0x37,0x6c, +0xf9,0x28,0x2, 0xd3,0x22,0xc3,0x22,0xe4,0x7a,0xb3,0x6c,0xff,0x75,0x26,0x0, 0x75, +0x27,0x0, 0x7e,0xb3,0x6e,0xaf,0xf5,0x28,0x7e,0xb3,0x6e,0xb0,0xf5,0x29,0x7e,0x8, +0x0, 0x26,0x7e,0x37,0x6e,0x8d,0x12,0x57,0x71,0xe4,0x33,0x7a,0xb3,0x6c,0xff,0xe4, +0x7a,0xb3,0x6d,0x8, 0x12,0xbe,0x75,0x33,0x7a,0xb3,0x6d,0x8, 0x74,0x1, 0x7a,0xb3, +0x6d,0x9, 0x12,0xbe,0xcc,0xe4,0x33,0x7a,0xb3,0x6d,0x9, 0x22,0xd2,0x0, 0x6c,0x99, +0x80,0x31,0x74,0x2, 0xac,0xb9,0x9, 0x5, 0x75,0xc9,0x9, 0x15,0x75,0xca,0x12,0xbf, +0x49,0x49,0x25,0x75,0x8c,0x7d,0xf3,0x9d,0xf2,0xbe,0xf4,0x0, 0x0, 0x8, 0x4, 0x7d, +0x1f,0x80,0x4, 0x6d,0x11,0x9d,0x1f,0xbe,0x17,0x6c,0xf7,0x28,0x4, 0xc2,0x0, 0x80, +0xa, 0xb, 0x90,0x7e,0x83,0x75,0xc8,0xbc,0x89,0x38,0xc7,0x20,0x0, 0x2d,0x6c,0x99, +0x80,0x1d,0x74,0x2, 0xac,0xb9,0x9, 0x5, 0x6b,0x54,0x9, 0x15,0x6b,0x55,0x12,0xbf, +0x49,0x59,0x35,0x75,0x8c,0x19,0x5, 0x75,0xc9,0x19,0x15,0x75,0xca,0xb, 0x90,0x7e, +0x73,0x6c,0xde,0xbc,0x79,0x38,0xdb,0x7a,0x73,0x75,0xc8,0x7e,0xb3,0x6c,0xde,0x70, +0x5, 0xe4,0x7a,0xb3,0x75,0xc8,0xa2,0x0, 0x22,0x7c,0xb0,0x7c,0x71,0x12,0x57,0x9, +0x74,0x2, 0xac,0xb9,0x22,0xe4,0x7a,0xb3,0x6d,0x7, 0x7a,0xb3,0x6d,0x7, 0x22,0x7c, +0x67,0x7e,0xb, 0x70,0xbc,0x7b,0x38,0x1a,0x29,0x70,0x0, 0x2, 0xbc,0x7b,0x28,0x12, +0x29,0x70,0x0, 0x1, 0xbc,0x76,0x38,0xa, 0x29,0x70,0x0, 0x3, 0xbc,0x76,0x28,0x2, +0xd3,0x22,0xc3,0x22,0x6c,0x44,0xc2,0x1, 0x7e,0x47,0x75,0x0, 0x7e,0x7, 0x75,0x2, +0x12,0x8f,0x4b,0x40,0x4, 0xd2,0x1, 0x80,0x6, 0xa5,0xbf,0x1, 0x2, 0xd2,0x1, 0x7e, +0xb3,0x74,0x81,0x60,0x3, 0x2, 0xc0,0x34,0x7e,0xb3,0x75,0x9, 0x4, 0x7a,0xb3,0x75, +0x9, 0x7d,0x34,0x12,0xc0,0x80,0xbe,0xb0,0x1, 0x40,0x8, 0x4e,0x40,0x4, 0xe4,0x7a, +0xb3,0x75,0x9, 0xbe,0x44,0x0, 0x0, 0x28,0x10,0x7e,0x17,0x74,0x7c,0xbd,0x10,0x50, +0x8, 0x4e,0x40,0x2, 0xe4,0x7a,0xb3,0x75,0x9, 0x7e,0x17,0x74,0x7c,0xbd,0x10,0x50, +0x17,0x7e,0xb3,0x75,0x8, 0x4, 0x7a,0xb3,0x75,0x8, 0xbe,0x4, 0xb, 0xb8,0x28,0x16, +0x7e,0xb3,0x75,0x8, 0xb, 0xb2,0x80,0xa, 0x7e,0xb3,0x75,0x8, 0xbe,0xb0,0x0, 0x28, +0x5, 0x14,0x7a,0xb3,0x75,0x8, 0x7e,0x53,0x75,0x8, 0xbe,0x50,0xa, 0x40,0x11,0xe4, +0x7a,0xb3,0x75,0x8, 0x7a,0x43,0x74,0xf4,0x74,0x1, 0x7a,0xb3,0x74,0x81,0x80,0x14, +0x7e,0x73,0x75,0x9, 0xbe,0x70,0x20,0x40,0xb, 0x74,0x20,0x7a,0xb3,0x75,0x9, 0xe4, +0x7a,0xb3,0x74,0xf4,0x7d,0x34,0x7d,0x20,0x2, 0xc0,0x3b,0x7d,0x2, 0x12,0xc0,0x80, +0x7c,0x7b,0xbe,0x70,0x1, 0x40,0x1d,0x7e,0x34,0x22,0x32,0x7e,0x24,0x0, 0xff,0xb, +0x1a,0x20,0x7e,0x34,0x0, 0xa, 0xad,0x32,0x1e,0x34,0xbd,0x30,0x38,0x6, 0x74,0x1, +0x7a,0xb3,0x75,0x7, 0x7e,0xb3,0x75,0x7, 0xbe,0xb0,0x0, 0x28,0xa, 0x14,0x7a,0xb3, +0x75,0x7, 0xe4,0x7a,0xb3,0x25,0xae,0x30,0x17,0x3, 0xd2,0x19,0x22,0xc2,0x19,0x22, +0x6c,0xaa,0x6c,0x55,0x7e,0x14,0x0, 0x1, 0x7c,0xb5,0x60,0x5, 0x3e,0x14,0x14,0x78, +0xfb,0x5d,0x13,0x68,0x2, 0xb, 0xa0,0xb, 0x50,0xbe,0x50,0x10,0x40,0xe6,0x7c,0xba, +0x22,0x7c,0xa7,0x7c,0x3b,0x7e,0xb3,0x76,0x5a,0xbe,0xb0,0x1, 0x78,0x2, 0x21,0x99, +0xe5,0x1e,0x70,0x2, 0x21,0x99,0x7e,0xb3,0x73,0x1e,0x70,0x2, 0x21,0x99,0x12,0xc1, +0xac,0x7c,0xb3,0x7c,0x7a,0x12,0xbf,0x84,0x12,0xc1,0xe3,0x7e,0xb3,0x74,0x81,0x1b, +0xb1,0x68,0x20,0x4, 0x68,0x2, 0x21,0x99,0x7e,0x73,0x74,0x7e,0x7a,0x73,0x74,0x7f, +0xe4,0x7a,0xb3,0x74,0x80,0x6c,0xaa,0x12,0xc1,0xc0,0xbe,0xa0,0x3, 0x78,0xf8,0x74, +0x2, 0x21,0x95,0x7e,0x43,0x74,0x7f,0x7e,0x50,0x26,0xac,0x45,0x7d,0x32,0x2e,0x34, +0x74,0x83,0x12,0xc1,0x9a,0x9, 0x72,0x74,0x83,0xbe,0x70,0x2, 0x50,0x2, 0x21,0x99, +0xe4,0x19,0xb2,0x74,0x83,0x49,0x12,0x74,0x84,0x2e,0x17,0x74,0xfc,0xbe,0x14,0x7f, +0xff,0x50,0xb, 0x7d,0x32,0x2e,0x34,0x74,0x84,0x1b,0x38,0x10,0x80,0x8, 0x7e,0x34, +0x7f,0xff,0x59,0x32,0x74,0x84,0x49,0x32,0x74,0x86,0xbe,0x37,0x74,0xfc,0x50,0x8, +0x7e,0x37,0x74,0xfc,0x59,0x32,0x74,0x86,0x7e,0x37,0x75,0x0, 0x12,0xc0,0x80,0xa, +0x4b,0x7e,0xa3,0x74,0x7f,0x7e,0x50,0x26,0xac,0x5a,0x2e,0x24,0x74,0x88,0xb, 0x28, +0x30,0x2d,0x34,0x1b,0x28,0x30,0xbe,0xa0,0x2, 0x50,0x5, 0x7c,0xba,0x4, 0x80,0x1, +0xe4,0x7a,0xb3,0x74,0x7f,0x12,0xc1,0xa2,0x38,0x1f,0x12,0xb7,0xb, 0xbe,0xb0,0xff, +0x68,0x12,0x30,0x18,0xf, 0x7e,0x73,0x74,0x7e,0x12,0x36,0x9c,0x12,0x37,0x94,0xe4, +0x7a,0xb3,0x74,0xf4,0xe4,0x7a,0xb3,0x74,0x81,0x22,0x7e,0x39,0xb0,0x4, 0x7a,0x39, +0xb0,0x22,0x90,0x22,0x34,0xe4,0x93,0xbe,0xb3,0x74,0x80,0x22,0x7e,0x34,0x22,0x32, +0x12,0x29,0xdb,0x7a,0x37,0x74,0x7c,0x7e,0x34,0x5, 0xdc,0x7a,0x37,0x74,0xf8,0x22, +0x6d,0x33,0x7e,0x90,0x26,0xac,0x9a,0x59,0x34,0x74,0x84,0x59,0x34,0x74,0x86,0x59, +0x34,0x74,0x88,0x59,0x34,0x74,0x8a,0x59,0x34,0x74,0x8c,0xe4,0x19,0xb4,0x74,0x83, +0xb, 0xa0,0x22,0xc2,0x16,0xd2,0x18,0x7e,0x37,0x74,0xf8,0xbe,0x37,0x75,0x2, 0x50, +0x2, 0xd2,0x16,0x30,0x26,0x4, 0x74,0x64,0x80,0x7, 0x7e,0xb3,0x74,0xfa,0x60,0x5, +0x14,0x7a,0xb3,0x74,0xfa,0x30,0x16,0x5, 0xe4,0x7a,0xb3,0x74,0xfa,0x7e,0xb3,0x74, +0xfa,0x60,0x2, 0xc2,0x18,0x22,0xca,0xd8,0xca,0x79,0x7c,0xdb,0xbe,0xd0,0x80,0x78, +0x17,0x7e,0xe0,0xff,0x6c,0xff,0x12,0xc2,0x6e,0x38,0x4, 0x7c,0xe7,0x7c,0xdf,0xb, +0xf0,0xbe,0xf0,0x3, 0x78,0xf0,0x80,0x19,0xbe,0xd0,0x81,0x78,0x14,0x6c,0xee,0x6c, +0xff,0x12,0xc2,0x6e,0x40,0x4, 0x7c,0xe7,0x7c,0xdf,0xb, 0xf0,0xbe,0xf0,0x3, 0x78, +0xf0,0xbe,0xd0,0x3, 0x40,0x2, 0x6c,0xdd,0x7e,0x73,0x74,0x7e,0xbc,0x7d,0x68,0x5, +0x7c,0xbd,0x12,0x36,0x9c,0x7a,0xd3,0x76,0x86,0xda,0x79,0xda,0xd8,0x22,0x74,0x26, +0xac,0xbf,0x9, 0x75,0x74,0x82,0xbc,0x7e,0x22,0x7c,0x37,0x7c,0x2b,0x7e,0xb3,0x73, +0x1e,0x70,0x2, 0x61,0x1f,0x12,0xc3,0x20,0x7e,0xb3,0x75,0x6, 0xbc,0xba,0x78,0x2, +0x61,0x1f,0xa5,0xba,0x0, 0x1b,0x7e,0x90,0x26,0xac,0x9a,0x49,0xf4,0x74,0x9e,0x49, +0xe4,0x74,0x9c,0xa5,0xbb,0x3, 0x15,0x49,0xf4,0x74,0xa6,0x49,0xe4,0x74,0xa4,0x80, +0xb, 0x74,0x26,0xa4,0x49,0xf5,0x74,0xa2,0x49,0xe5,0x74,0xa0,0x7e,0x73,0x6e,0xb0, +0x7a,0x73,0x62,0xb9,0x7e,0x73,0x6e,0xaf,0x7a,0x73,0x62,0xb8,0xe4,0x7a,0xb3,0x62, +0xba,0x7a,0xb3,0x62,0xbb,0x6d,0x33,0x7a,0x37,0x62,0xc2,0x7e,0x1f,0x24,0x68,0x7a, +0x37,0x62,0xbc,0x7d,0x3f,0x7a,0x37,0x62,0xbe,0x7e,0x1f,0x24,0x68,0x7a,0x37,0x62, +0xc0,0x7e,0x8, 0x62,0xb8,0x12,0x8, 0xe5,0x7e,0x37,0x73,0x21,0x6c,0x55,0xa, 0x15, +0x2d,0x13,0x3e,0x14,0x7f,0x27,0x2d,0x51,0xb, 0x2a,0x0, 0x7e,0x2f,0x24,0x68,0x2d, +0x51,0xb, 0x2a,0x10,0x9d,0x10,0x1b,0x2a,0x10,0xb, 0x50,0xa5,0xbd,0x4, 0xdf,0x22, +0x7e,0xb3,0x74,0xfb,0x12,0xc3,0x2a,0x7c,0xab,0x22,0x7c,0x7b,0x6c,0xaa,0x6c,0x66, +0xa, 0x26,0x12,0xc5,0xf, 0xbc,0xb7,0x78,0x4, 0x7c,0xa6,0x80,0x7, 0xb, 0x60,0xbe, +0x60,0x3, 0x40,0xec,0x7c,0xba,0x22,0xca,0x3b,0x7c,0x67,0x7c,0x7b,0x6d,0x22,0x7a, +0x25,0x28,0x7e,0x27,0x73,0x21,0xb, 0x26,0x7a,0x25,0x2a,0x7c,0xb6,0x12,0x8f,0x4b, +0x92,0x1, 0x30,0x1, 0x6, 0x4c,0x77,0x78,0x2, 0x81,0xdb,0x12,0xc3,0x20,0x7a,0xa1, +0x32,0x74,0x26,0xa4,0x49,0xb5,0x74,0x9e,0x49,0xa5,0x74,0x9c,0x49,0x95,0x74,0xa2, +0x49,0x85,0x74,0xa0,0x7e,0x34,0x62,0xba,0x1e,0x34,0x3e,0x34,0x7d,0x73,0x6d,0x66, +0x7e,0x34,0x66,0xc8,0x1e,0x34,0x3e,0x34,0x6d,0x22,0x7a,0x1d,0x2c,0x7e,0x18,0xc, +0x18,0x7a,0x1d,0x33,0x7f,0x3, 0x7e,0x18,0x10,0x24,0x74,0x1, 0x12,0x77,0xa4,0x12, +0xc4,0xde,0x6d,0x33,0x7a,0x35,0x26,0x7e,0x35,0x30,0x7d,0x13,0x3e,0x14,0x49,0x1, +0xc, 0x18,0x49,0x21,0x10,0x24,0x9d,0x20,0x2d,0x17,0x7d,0x6, 0x12,0xc4,0xe6,0x78, +0xe6,0x20,0x1, 0x2, 0x81,0x54,0x7e,0x73,0x75,0x6, 0xbe,0x71,0x32,0x68,0x3a,0x6d, +0x33,0x80,0x29,0x7e,0x35,0x26,0x7d,0x23,0x3e,0x24,0x7f,0x4, 0x2d,0x12,0xb, 0xa, +0x50,0x49,0x42,0x18,0x3c,0x2d,0x45,0x7f,0x5, 0x2d,0x12,0xb, 0xa, 0x10,0x49,0x52, +0x14,0x30,0x2d,0x51,0x12,0xc5,0x3, 0x1b,0xa, 0x20,0xb, 0x34,0x7a,0x35,0x26,0x7e, +0x35,0x2a,0xbe,0x35,0x26,0x38,0xcc,0x80,0x3b,0x7e,0x18,0x18,0x3c,0x7a,0x1d,0x33, +0x7e,0xd, 0x2c,0x7e,0x18,0x14,0x30,0x74,0x1, 0x12,0x77,0xa4,0x7e,0x1d,0x2c,0x7a, +0x1d,0x33,0x7f,0x3, 0x7f,0x13,0x12,0x76,0xb1,0x12,0xc4,0xde,0x6d,0x33,0x7a,0x35, +0x26,0x12,0xc4,0xfb,0x49,0x42,0x18,0x3c,0x49,0x52,0x14,0x30,0x12,0xc5,0x3, 0x12, +0xc4,0xe6,0x78,0xed,0x7f,0x3, 0x12,0xc5,0x1c,0x7a,0x35,0x28,0x12,0xc4,0xde,0x6d, +0x33,0x7a,0x35,0x26,0x12,0xc4,0xfb,0x7f,0x23,0x2d,0x52,0xb, 0x2a,0x10,0xbe,0x14, +0x0, 0x0, 0x8, 0x5, 0xb, 0x2a,0x20,0x80,0x4, 0x6d,0x22,0x9d,0x21,0xbe,0x25,0x28, +0x28,0x12,0xbe,0x14,0x0, 0x0, 0x8, 0x5, 0xb, 0x2a,0x20,0x80,0x4, 0x6d,0x22,0x9d, +0x21,0x7a,0x25,0x28,0x12,0xc4,0xe9,0x78,0xcb,0x7e,0x35,0x28,0xbe,0x34,0x7f,0xff, +0x28,0x7, 0x7e,0x34,0x7f,0xff,0x7a,0x35,0x28,0x7e,0x35,0x28,0x7a,0x37,0x74,0xfc, +0x20,0x1, 0x28,0x7e,0x8, 0x10,0x24,0x7e,0x18,0xc, 0x18,0x12,0x77,0x75,0x12,0xc4, +0xde,0x6d,0x33,0x7a,0x35,0x26,0x7e,0x25,0x30,0x3e,0x24,0x49,0x32,0xc, 0x18,0x59, +0x32,0x10,0x24,0x7e,0x35,0x30,0x12,0xc4,0xe9,0x78,0xeb,0xda,0x3b,0x22,0x7e,0x37, +0x73,0x21,0x7a,0x35,0x30,0x22,0x1b,0xa, 0x20,0xb, 0x34,0x7a,0x35,0x30,0x7e,0x35, +0x26,0xb, 0x34,0x7a,0x35,0x26,0xbe,0x34,0x0, 0x4, 0x22,0x7e,0x35,0x30,0x7d,0x23, +0x3e,0x24,0x22,0x9d,0x54,0x7f,0x3, 0x2d,0x12,0xb, 0xa, 0x20,0x2d,0x25,0x22,0x2e, +0x24,0x22,0x29,0x7a,0x51,0x82,0x7a,0x41,0x83,0xe4,0x93,0x22,0x7e,0x34,0x6a,0xd6, +0x1e,0x34,0x3e,0x34,0x7a,0x17,0x6b,0x16,0x7a,0x37,0x6b,0x1a,0x7e,0x34,0x24,0xbc, +0x7a,0x37,0x6b,0x18,0x7e,0x73,0x6e,0xaf,0x7a,0x73,0x6b,0x13,0x7e,0x73,0x6e,0xb0, +0x7a,0x73,0x6b,0x12,0x7e,0x37,0x6e,0x8d,0x7a,0x37,0x6b,0x1c,0x7e,0x37,0x6e,0x8f, +0x7a,0x37,0x6b,0x1e,0x7e,0x37,0x6e,0x97,0x7a,0x37,0x6b,0x20,0x7e,0x37,0x6e,0x99, +0x7a,0x37,0x6b,0x22,0x74,0x1, 0x7a,0xb3,0x6b,0x14,0x7a,0xb3,0x6b,0x15,0x7e,0x8, +0x6b,0x12,0x7e,0x18,0x6b,0x24,0x12,0x3, 0x1d,0x7e,0x37,0x6b,0x30,0x7a,0x37,0x6e, +0xab,0x7e,0x27,0x6b,0x2a,0xbe,0x24,0x0, 0x0, 0x8, 0x6, 0x7e,0x7, 0x6b,0x2a,0x80, +0x6, 0x6d,0x0, 0x9e,0x7, 0x6b,0x2a,0x7e,0x37,0x6b,0x2e,0xbe,0x34,0x0, 0x0, 0x8, +0x6, 0x7e,0x17,0x6b,0x2e,0x80,0x6, 0x6d,0x11,0x9e,0x17,0x6b,0x2e,0xbd,0x10,0x8, +0x12,0xbe,0x34,0x0, 0x0, 0x8, 0x5, 0x7e,0x37,0x6b,0x2e,0x22,0x6d,0x33,0x9e,0x37, +0x6b,0x2e,0x22,0xbe,0x24,0x0, 0x0, 0x8, 0x6, 0x7e,0x37,0x6b,0x2a,0x80,0x6, 0x6d, +0x33,0x9e,0x37,0x6b,0x2a,0x22,0x7c,0xab,0x7e,0x50,0xa, 0xac,0x57,0x9, 0x62,0x29, +0x8b,0x7e,0x50,0x27,0xac,0x57,0x49,0x2, 0x28,0xed,0xb, 0x4, 0x7e,0x50,0x8, 0xac, +0x5a,0x49,0x22,0x0, 0xe6,0x7a,0x27,0x75,0x0, 0x7e,0x50,0x8, 0xac,0x5a,0x49,0x22, +0x0, 0xe4,0x7a,0x27,0x74,0xfe,0x7e,0x50,0x8, 0xac,0x5a,0x9, 0xb2,0x0, 0xea,0x7a, +0xb3,0x75,0x4, 0x7e,0x50,0x8, 0xac,0x5a,0x9, 0xb2,0x0, 0xeb,0x7a,0xb3,0x75,0x5, +0x74,0x8, 0xa4,0x49,0x15,0x0, 0xe8,0x7c,0xb6,0x60,0x5, 0x1e,0x4, 0x14,0x78,0xfb, +0x8d,0x10,0x7a,0x17,0x75,0x2, 0x74,0x27,0xac,0xb7,0x9, 0x75,0x28,0xe7,0x7a,0x73, +0x74,0xfb,0x22,0x7e,0xb3,0x74,0xf4,0x22,0x7c,0xab,0x6c,0x77,0x7e,0x50,0x26,0xac, +0x57,0x9, 0x62,0x74,0x82,0xbc,0x6a,0x68,0x7, 0xb, 0x70,0xbe,0x70,0x3, 0x40,0xec, +0xa5,0xbf,0x3, 0x6, 0x7a,0xa3,0x74,0x82,0xd3,0x22,0xc3,0x22,0xca,0x79,0x7e,0x68, +0x14,0x30,0x7e,0xb3,0x77,0xe1,0xb4,0x3, 0x4, 0x7e,0x68,0x1c,0x48,0x7e,0x73,0x6e, +0xb0,0x7a,0x73,0x62,0xe3,0x7e,0x73,0x6e,0xaf,0x7a,0x73,0x62,0xe2,0xe4,0x7a,0xb3, +0x62,0xe4,0x7a,0xb3,0x62,0xe5,0x6d,0x33,0x7a,0x37,0x62,0xec,0x6c,0xff,0x7e,0x70, +0x26,0xac,0x7f,0x9, 0xb3,0x74,0x8f,0x70,0x2, 0xe1,0x38,0x7e,0xb3,0x77,0xe1,0xb4, +0x3, 0xa, 0x49,0xf3,0x74,0xa6,0x49,0xe3,0x74,0xa4,0x80,0x8, 0x49,0xf3,0x74,0x9e, +0x49,0xe3,0x74,0x9c,0x7d,0x3f,0x7a,0x37,0x62,0xe6,0x7d,0x3d,0x7a,0x37,0x62,0xe8, +0x7d,0x3f,0x7a,0x37,0x62,0xea,0x12,0xc7,0x4d,0x7e,0xb7,0x73,0x21,0x6c,0xee,0xa, +0xe, 0x2d,0xb, 0x3e,0x4, 0x7f,0x16,0x2d,0x30,0xb, 0x1a,0x10,0x7f,0x17,0x12,0xc7, +0x54,0x78,0xec,0x12,0x8f,0x47,0x50,0x35,0x12,0xc7,0x44,0x7d,0xa3,0x7a,0xa7,0x62, +0xe6,0x7e,0xa4,0x18,0x3c,0x7a,0xa7,0x62,0xe8,0x12,0xc7,0x44,0x7d,0xa3,0x7a,0xa7, +0x62,0xea,0x12,0xc7,0x4d,0x6c,0xee,0xa, 0xe, 0x2d,0xb, 0x3e,0x4, 0x49,0x10,0x18, +0x3c,0x12,0xc7,0x44,0x49,0x25,0x74,0xa0,0x12,0xc7,0x54,0x78,0xea,0x6c,0xaa,0x7e, +0x70,0x26,0xac,0x7f,0x19,0xa3,0x74,0x8f,0xb, 0xf0,0xbe,0xf0,0x3, 0x50,0x2, 0xc1, +0x9e,0xda,0x79,0x22,0x74,0x26,0xac,0xbf,0x49,0x35,0x74,0xa2,0x22,0x7e,0x8, 0x62, +0xe2,0x2, 0x8, 0xe5,0x2d,0x30,0xb, 0x1a,0xa0,0x9d,0xa1,0x1b,0x1a,0xa0,0xb, 0xe0, +0xbe,0xe0,0x4, 0x22,0x7c,0xab,0x6c,0x77,0x7e,0x63,0x75,0x6, 0xbc,0x67,0x78,0x4, +0x6c,0x66,0x80,0x27,0x12,0xc7,0xb0,0x60,0x5, 0x3e,0x44,0x14,0x78,0xfb,0x7e,0x63, +0x73,0x1f,0xa, 0x26,0x5d,0x24,0x68,0x6, 0x7e,0x60,0x1, 0x12,0xc7,0xa6,0x7e,0x63, +0x73,0x20,0xa, 0x26,0x5d,0x24,0x68,0x6, 0x7e,0x60,0x1, 0x12,0xc7,0xa6,0xb, 0x70, +0xbe,0x70,0x3, 0x40,0xc3,0x22,0x7e,0x50,0x26,0xac,0x57,0x19,0x62,0x74,0x8f,0x22, +0x7e,0x44,0x0, 0x1, 0x7c,0xba,0x22,0x7e,0x27,0x75,0x2, 0x7e,0x37,0x74,0x7c,0xbd, +0x32,0x50,0x20,0x7e,0xa3,0x74,0x7f,0x12,0xc7,0xb0,0x60,0x5, 0x3e,0x44,0x14,0x78, +0xfb,0x7c,0xb9,0x4e,0xb3,0x74,0x7b,0x7a,0xb3,0x74,0x7b,0x74,0x5, 0xa, 0x3a,0x19, +0xb3,0x74,0xf5,0x6c,0xaa,0xa, 0x3a,0x9, 0xb3,0x74,0xf5,0xbe,0xb0,0x0, 0x28,0xa, +0xa, 0x4a,0x2e,0x44,0x74,0xf5,0x14,0x7a,0x49,0xb0,0xa, 0x3a,0x9, 0xb3,0x74,0xf5, +0x70,0x16,0x12,0xc7,0xb0,0x60,0x5, 0x3e,0x44,0x14,0x78,0xfb,0x7c,0xb9,0x64,0xff, +0x5e,0xb3,0x74,0x7b,0x7a,0xb3,0x74,0x7b,0xb, 0xa0,0xbe,0xa0,0x3, 0x40,0xc6,0x22, +0x7e,0xb3,0x77,0xfa,0xb4,0x1, 0x3, 0x2, 0xc8,0x2b,0x22,0xca,0x3b,0x7e,0xb3,0x6c, +0xde,0xf5,0x26,0x6c,0xcc,0x1, 0xeb,0x74,0x2, 0xac,0xbc,0x9, 0xf5,0x6b,0x54,0x9, +0xe5,0x6b,0x55,0x7e,0x73,0x6e,0xaf,0xbc,0x7f,0x78,0x2, 0x1, 0xe9,0x12,0xc9,0xab, +0x7d,0xd3,0x12,0xc9,0xcb,0x78,0x2, 0x6d,0xee,0x12,0xc9,0x95,0x78,0x2, 0x6d,0xff, +0x4c,0xee,0x78,0x2, 0x6d,0x0, 0x12,0xc9,0x8d,0x78,0x2, 0x6d,0x11,0xbe,0xe4,0x0, +0x46,0x8, 0x2, 0xb, 0xd0,0xbe,0xf4,0x0, 0x46,0x8, 0x2, 0xb, 0xd0,0xbe,0x4, 0x0, +0x46,0x8, 0x2, 0xb, 0xd0,0xbe,0x14,0x0, 0x46,0x8, 0x2, 0xb, 0xd0,0xbe,0xd0,0x2, +0x40,0x4, 0xd2,0x0, 0x80,0x2e,0x4c,0xff,0x68,0x16,0x7e,0xb3,0x6e,0xb1,0x14,0xbc, +0xbf,0x68,0xd, 0x4c,0xee,0x68,0x9, 0x7e,0xb3,0x6e,0xb2,0x14,0xbc,0xbe,0x78,0x14, +0xbe,0xd4,0x1, 0x2c,0x8, 0xe, 0xbe,0xd0,0x0, 0x28,0x9, 0x7e,0xb3,0x77,0xfa,0xb4, +0x1, 0x2, 0xd2,0x0, 0x20,0x0, 0x22,0x7d,0xc3,0x7e,0xb3,0x77,0xfa,0xb4,0x3, 0x4, +0x7d,0x5c,0x80,0xb, 0x7e,0xb3,0x77,0xfa,0xb4,0x1, 0xb, 0x7d,0x5c,0xe, 0x54,0xe, +0x54,0xe, 0x54,0x12,0xc9,0x9d,0x12,0xc9,0x86,0xb, 0xc0,0xe5,0x26,0xbc,0xbc,0x28, +0x2, 0x1, 0x37,0x7e,0xb3,0x77,0xfa,0xb4,0x3, 0x2, 0x80,0x2, 0x21,0x83,0x7e,0xb3, +0x6c,0xdf,0xf5,0x26,0x6c,0xcc,0x80,0x75,0x74,0x2, 0xac,0xbc,0x9, 0xf5,0x6b,0x90, +0x9, 0xe5,0x6b,0x91,0x7e,0x73,0x6e,0xaf,0xbc,0x7f,0x68,0x5f,0x12,0xc9,0xab,0x12, +0xc9,0xcb,0x78,0x2, 0x6d,0xee,0x12,0xc9,0x95,0x78,0x2, 0x6d,0xff,0x4c,0xee,0x78, +0x2, 0x6d,0x0, 0x12,0xc9,0x8d,0x78,0x2, 0x6d,0x11,0xbe,0xe4,0xff,0xba,0x58,0x2, +0xb, 0xd0,0xbe,0xf4,0xff,0xba,0x58,0x2, 0xb, 0xd0,0xbe,0x4, 0xff,0xba,0x58,0x2, +0xb, 0xd0,0xbe,0x14,0xff,0xba,0x58,0x2, 0xb, 0xd0,0xbe,0xd0,0x2, 0x40,0x2, 0xd2, +0x0, 0x20,0x0, 0x17,0x12,0x24,0x56,0x7d,0xc3,0x7d,0x5c,0xe, 0x54,0xe, 0x54,0x6e, +0x54,0xff,0xff,0xb, 0x54,0x12,0xc9,0x9d,0x12,0xc9,0x86,0xb, 0xc0,0xe5,0x26,0xbc, +0xbc,0x38,0x85,0xda,0x3b,0x22,0xc2,0x2, 0x7c,0xbc,0x2, 0x57,0x49,0x7e,0xb3,0x6e, +0xb0,0x14,0xbc,0xbe,0x22,0x7e,0xb3,0x6e,0xaf,0x14,0xbc,0xbf,0x22,0x7d,0xb4,0x3e, +0xb4,0x7e,0x1f,0x24,0x68,0x2d,0x3b,0x1b,0x1a,0x50,0x22,0x6c,0xdd,0xc2,0x0, 0x7e, +0x33,0x6e,0xb0,0x7c,0x9f,0xac,0x93,0xa, 0x5e,0x2d,0x45,0x7d,0x24,0x3e,0x24,0x7e, +0x5f,0x24,0x68,0x7f,0x75,0x2d,0xf2,0xb, 0x7a,0x30,0x22,0xa, 0x53,0x7d,0x14,0x9d, +0x15,0x3e,0x14,0x2d,0x1b,0x7d,0xa, 0xb, 0xa, 0xe0,0x2d,0x54,0x3e,0x54,0x7f,0x5, +0x2d,0x15,0xb, 0xa, 0xf0,0x7d,0x54,0x1b,0x54,0x3e,0x54,0x7f,0x5, 0x2d,0x15,0xb, +0xa, 0x0, 0x2d,0xb2,0x69,0x15,0x0, 0x2, 0x4c,0xff,0x22,0x7e,0xb3,0x77,0xfa,0xb4, +0x3, 0x3, 0x2, 0xc8,0x2b,0x22,0x7c,0xab,0xbe,0xa0,0x1, 0x78,0x3c,0x12,0x2f,0x7d, +0x7e,0x34,0x0, 0x96,0x7a,0x37,0x6e,0x8b,0x12,0x6f,0xc4,0x7e,0x34,0xff,0x38,0x7a, +0x37,0x6e,0x8f,0x7e,0x34,0x1, 0x2c,0x7a,0x37,0x6e,0x97,0x7e,0x34,0xfe,0xd4,0x7a, +0x37,0x6e,0x99,0x12,0xca,0x84,0x68,0x42,0x7e,0x34,0x2, 0x58,0x7a,0x37,0x6e,0x91, +0x7e,0x34,0x2, 0x26,0x7a,0x37,0x6e,0x93,0x22,0xbe,0xa0,0x2, 0x78,0x2c,0x7e,0xb3, +0x77,0xfa,0xb4,0x3, 0x13,0x74,0x5c,0x7a,0xb3,0x6e,0x8a,0x7e,0x34,0x0, 0x5c,0x12, +0xca,0x7b,0x7e,0x34,0xff,0xa4,0x80,0xe, 0x12,0x2f,0x7d,0x7e,0x34,0x1, 0x2c,0x12, +0xca,0x7b,0x7e,0x34,0xfe,0xd4,0x7a,0x37,0x6e,0x8f,0x22,0x7a,0x37,0x6e,0x8b,0x7a, +0x37,0x6e,0x8d,0x22,0x7e,0xb3,0x76,0xe, 0xbe,0xb0,0xaa,0x22,0x9, 0xb3,0x6d,0x75, +0x9, 0x73,0x6d,0x76,0x7c,0x6f,0xca,0x3b,0x7c,0x96,0x7c,0x6b,0x7e,0xd0,0xff,0x75, +0x3d,0xff,0x12,0x5f,0xa8,0xc2,0x5, 0x7e,0x24,0x1, 0xf4,0x7e,0xb3,0x6d,0x7, 0xb4, +0x1, 0x6, 0x12,0xcc,0x31,0xc3,0x61,0xed,0xbe,0x90,0xa, 0x28,0x3, 0xc3,0x61,0xed, +0x7e,0x10,0x3, 0x74,0x4, 0xac,0xb9,0x19,0x15,0x28,0xb9,0x7d,0xf2,0x7c,0xf6,0x7c, +0xe7,0xc2,0x3, 0xc2,0x4, 0x7c,0x1f,0x7a,0xf1,0x39,0x80,0x8, 0x12,0xcc,0xc, 0x8, +0x8, 0x7a,0x11,0x39,0x12,0xcb,0xfa,0x58,0xf3,0x7c,0x1f,0x7a,0xf1,0x3a,0x80,0x8, +0x12,0xcc,0xc, 0x8, 0x8, 0x7a,0x11,0x3a,0x12,0xcc,0x21,0x48,0xf3,0x75,0x3c,0x0, +0x7e,0xa3,0x6e,0xb1,0x7c,0xba,0x14,0xbe,0xb1,0x3a,0x78,0x8, 0xd2,0x4, 0xa, 0x6a, +0x1b,0x64,0x80,0x8, 0xe5,0x39,0x70,0x4, 0xd2,0x3, 0x6c,0xdd,0x7c,0xe, 0x7a,0xe1, +0x3b,0x20,0x4, 0xd, 0x30,0x3, 0x37,0x80,0x8, 0x12,0xcb,0xf0,0x8, 0x8, 0x7a,0x1, +0x3b,0x12,0xcc,0x3, 0x58,0xf3,0x7c,0xe, 0x7c,0x8e,0x80,0x7, 0x12,0xcb,0xf0,0x8, +0x13,0x7c,0x80,0x7c,0xb0,0x4, 0x7c,0xb, 0x1a,0x5b,0x7e,0x73,0x6e,0xb0,0x1a,0x17, +0xbd,0x51,0x48,0xe8,0xe5,0x3b,0xa, 0xeb,0xa, 0x58,0x9d,0x5e,0xf5,0x3c,0xc2,0x2, +0x7c,0xe, 0x7a,0xe1,0x3b,0x80,0xa, 0x7c,0xbf,0x12,0xcb,0xf2,0x8, 0x8, 0x7a,0x1, +0x3b,0x12,0xcc,0x3, 0x58,0xf1,0x75,0x3e,0x0, 0xe5,0x3b,0x70,0x4, 0xd2,0x2, 0xf5, +0x3d,0x7c,0x1f,0x7a,0xf1,0x39,0x30,0x2, 0x2f,0x80,0x8, 0x12,0xcc,0x16,0x8, 0x8, +0x7a,0x11,0x39,0x12,0xcb,0xfa,0x58,0xf3,0x7c,0x1f,0x7a,0xf1,0x3a,0x80,0x8, 0x12, +0xcc,0x16,0x8, 0x8, 0x7a,0x11,0x3a,0x12,0xcc,0x21,0x48,0xf3,0xe5,0x39,0xa, 0x1b, +0xe5,0x3a,0xa, 0x5b,0x9d,0x51,0xf5,0x3e,0x7e,0x30,0x4, 0xac,0x39,0x9, 0x81,0x28, +0xb9,0xbe,0x81,0x3c,0x40,0x16,0xbe,0x81,0x3e,0x50,0x2, 0x80,0xf, 0x9, 0xb1,0x28, +0xb8,0x60,0x13,0x20,0x4, 0x6, 0x20,0x3, 0x3, 0x30,0x2, 0xa, 0x74,0x1, 0x19,0xb1, +0x28,0xb8,0xd2,0x5, 0x80,0x5, 0xe4,0x19,0xb1,0x28,0xb8,0xa2,0x5, 0xda,0x3b,0x22, +0x7c,0xbd,0x7c,0x70,0x12,0x57,0x9, 0xbd,0x3f,0x22,0x7c,0xb1,0x14,0x7c,0x1b,0xbe, +0xb0,0x0, 0x22,0x7c,0xb0,0x14,0x7c,0xb, 0xbe,0xb0,0x0, 0x22,0x7c,0xb1,0x7c,0x7e, +0x12,0x57,0x9, 0xbd,0x3f,0x22,0x7c,0xb1,0x7e,0x71,0x3d,0x12,0x57,0x9, 0xbd,0x3f, +0x22,0x7c,0xb1,0x4, 0x7c,0x1b,0x1a,0xeb,0x7e,0x83,0x6e,0xb1,0x1a,0x18,0xbd,0xe1, +0x22,0x7e,0xb3,0x6c,0xde,0x70,0x2b,0x7e,0xb3,0x6e,0x7c,0x70,0x25,0x6c,0xaa,0x7e, +0x70,0xff,0x7e,0x90,0x4, 0xac,0x9a,0x19,0x74,0x28,0xb7,0xe4,0x19,0xb4,0x28,0xb8, +0x74,0x3, 0x19,0xb4,0x28,0xb9,0xe4,0x19,0xb4,0x28,0xba,0xb, 0xa0,0xbe,0xa0,0xa, +0x78,0xdd,0x22,0xca,0x79,0x7f,0x70,0x7e,0x3, 0x6e,0xb0,0x7e,0x93,0x6c,0xde,0x7e, +0x6f,0x24,0x68,0x6c,0x11,0x6c,0x88,0x6c,0xff,0x80,0xd, 0xa, 0x1f,0x12,0xcd,0x27, +0xbc,0x78,0x40,0x2, 0x7c,0x87,0xb, 0xf0,0xbc,0x9f,0x38,0xef,0x7e,0xf0,0x1, 0xa1, +0x14,0x75,0x28,0x0, 0x6d,0xbb,0x6d,0x99,0x7d,0xa9,0x6c,0xee,0x80,0x3a,0x7e,0x30, +0x2, 0xac,0x3e,0x9, 0xb1,0x6b,0x54,0xf5,0x26,0x9, 0xb1,0x6b,0x55,0xf5,0x27,0xa, +0x1e,0x12,0xcd,0x27,0xbc,0x7f,0x78,0x1e,0x5, 0x28,0xe5,0x26,0xa, 0x1b,0x2d,0xa1, +0xe5,0x27,0xa, 0x1b,0x2d,0x91,0xe5,0x26,0x7e,0x71,0x27,0x12,0x57,0x9, 0x7d,0x83, +0xbd,0xb8,0x58,0x2, 0x7d,0xb8,0xb, 0xe0,0xbc,0x9e,0x38,0xc2,0xe5,0x28,0xbe,0xb0, +0x0, 0x28,0x2f,0xe5,0x28,0xa, 0x8b,0x7d,0x3a,0x8d,0x38,0x7d,0xa3,0x8d,0x98,0x12, +0xcd,0x1f,0x19,0xa1,0x75,0xd, 0x7d,0x39,0x12,0xcd,0x1f,0x19,0xa1,0x75,0xe, 0xa, +0x30,0xad,0x3a,0x7d,0x13,0x2d,0x19,0x3e,0x14,0x7f,0x16,0x2d,0x31,0x1b,0x1a,0xb0, +0xb, 0x10,0xb, 0xf0,0xbc,0x8f,0x40,0x2, 0x81,0x91,0x7c,0xb1,0xda,0x79,0x22,0x7c, +0xa7,0x7e,0x30,0x2, 0xac,0x31,0x22,0x7f,0x17,0x2d,0x31,0x7e,0x1b,0x70,0x22,0x7c, +0x9b,0x7f,0x71,0x7f,0x60,0x7e,0x34,0x28,0x3c,0x7e,0x24,0x0, 0xff,0x7e,0x14,0x62, +0xb8,0x74,0x30,0x12,0x23,0x65,0x7e,0x58,0x62,0xb8,0x7c,0xb9,0x7e,0x71,0x43,0x12, +0x57,0x9, 0x7d,0x3, 0xe5,0x44,0x7e,0x71,0x45,0x12,0x57,0x9, 0x2d,0x30,0xe, 0x34, +0x7f,0x5, 0x7e,0x50,0x8, 0xb, 0xa, 0x50,0xbd,0x53,0x58,0xf, 0x69,0x30,0x0, 0x2, +0x1b,0x6a,0x30,0x69,0x30,0x0, 0x4, 0x1b,0x7a,0x30,0x22,0x2e,0x14,0x0, 0x6, 0x1b, +0x50,0x78,0xe2,0x22,0xca,0x79,0x7f,0x60,0x7c,0xf5,0x7c,0xe6,0x12,0xcd,0xeb,0x7d, +0xb3,0x7c,0xbe,0x7c,0x7f,0x12,0xcd,0xeb,0x2d,0x3b,0x12,0x5f,0x9a,0x7d,0xa3,0x7e, +0x25,0x43,0x7d,0x12,0x9d,0x1a,0xbe,0x14,0x0, 0x0, 0x8, 0x6, 0x7d,0x32,0x9d,0x3a, +0x80,0x4, 0x6d,0x33,0x9d,0x31,0x7d,0x12,0x1a,0x2, 0x1a,0x0, 0x9f,0x6, 0xbe,0x14, +0x0, 0x0, 0x8, 0x6, 0x7d,0xd, 0x9d,0x20,0x80,0x4, 0x6d,0x22,0x9d,0x21,0x7e,0x14, +0x0, 0x3, 0xad,0x13,0xbd,0x12,0x58,0xf, 0xbe,0x24,0x0, 0x64,0x8, 0x9, 0xbe,0x34, +0x0, 0x46,0x8, 0x3, 0xd3,0x80,0x1, 0xc3,0xda,0x79,0x22,0xca,0x79,0x7c,0x8b,0x7e, +0xb3,0x6e,0xb1,0xf5,0x48,0x7e,0x93,0x6e,0xb2,0x7e,0x4, 0x80,0x1, 0x7c,0xf7,0x1a, +0x18,0x1b,0x14,0x7c,0xe3,0xc1,0x8a,0x7a,0xe1,0x46,0xbe,0xe0,0x0, 0x58,0xc, 0x1a, +0x5e,0x1a,0x18,0x9d,0x15,0x1a,0x58,0x2d,0x51,0xf5,0x46,0xe5,0x48,0xbc,0xbe,0x18, +0xc, 0x1a,0x58,0x1a,0x1e,0x9d,0x15,0x1a,0x58,0x9d,0x51,0xf5,0x46,0x1a,0x5f,0x1b, +0x54,0xf5,0x45,0x80,0x47,0x85,0x45,0x47,0xe5,0x45,0xbe,0xb0,0x0, 0x58,0xe, 0xe5, +0x45,0x1a,0x5b,0x1a,0x1f,0x9d,0x15,0x1a,0x5f,0x2d,0x51,0xf5,0x47,0xbe,0x91,0x45, +0x18,0xe, 0x1a,0x3f,0xe5,0x45,0x1a,0x1b,0x9d,0x13,0x1a,0x5f,0x9d,0x51,0xf5,0x47, +0xbe,0x81,0x46,0x78,0x5, 0xbe,0xf1,0x47,0x68,0x10,0xe5,0x46,0x7e,0x71,0x47,0x12, +0x57,0x9, 0x7d,0xf3,0xbd,0xf0,0x8, 0x2, 0x7d,0xf, 0x5, 0x45,0x1a,0xef,0xb, 0xe4, +0xe5,0x45,0x1a,0x1b,0xbd,0x1e,0x8, 0xad,0xb, 0xe0,0x1a,0x58,0xb, 0x54,0x1a,0x1e, +0xbd,0x15,0x18,0x2, 0xc1,0x7, 0x7d,0x30,0xda,0x79,0x22,0xca,0x3b,0x7e,0xa0,0x64, +0x6c,0x77,0x80,0x67,0xa, 0x27,0xb, 0x24,0x7c,0x65,0x80,0x55,0x7e,0xf0,0x2, 0xac, +0xf6,0x9, 0xb7,0x6b,0x54,0xa, 0xb, 0x7e,0xd0,0x2, 0xac,0xd7,0x9, 0xb6,0x6b,0x54, +0xa, 0x2b,0x12,0xcf,0x1f,0x8, 0x4, 0x9d,0x20,0x80,0x4, 0x6d,0x22,0x9d,0x21,0x9, +0x47,0x6b,0x55,0xa, 0x44,0x9, 0x46,0x6b,0x55,0xa, 0x14,0x7d,0x1, 0x9d,0x4, 0xbe, +0x4, 0x0, 0x0, 0x8, 0x4, 0x9d,0x14,0x80,0x4, 0x6d,0x11,0x9d,0x10,0x7c,0x43,0xbc, +0x45,0x50,0x4, 0x7c,0x35,0x80,0x2, 0x7c,0x34,0xbc,0xa3,0x28,0x2, 0x7c,0xa3,0xb, +0x60,0x7e,0x23,0x6c,0xde,0xbc,0x26,0x38,0xa3,0xb, 0x70,0x7e,0xb3,0x6c,0xde,0xbc, +0xb7,0x38,0x91,0xbe,0xa0,0x64,0x78,0x2, 0x6c,0xaa,0x7c,0xba,0xda,0x3b,0x22,0x7d, +0x12,0x9d,0x10,0xbe,0x14,0x0, 0x0, 0x22,0xca,0x3b,0x7c,0x45,0x7c,0x57,0x7c,0x7b, +0x75,0x43,0x0, 0x7e,0xe0,0xff,0xc2,0x5, 0x7e,0xf4,0x7f,0xff,0xbc,0x67,0x28,0x4, +0x7c,0xd7,0x80,0x2, 0x7c,0xd6,0xbc,0x67,0x50,0x4, 0x7c,0xa7,0x80,0x2, 0x7c,0xa6, +0xbc,0x45,0x28,0x4, 0x7c,0xc5,0x80,0x2, 0x7c,0xc4,0xbc,0x45,0x50,0x4, 0x7c,0xb5, +0x80,0x2, 0x7c,0xb4,0xf5,0x44,0x7a,0xd1,0x45,0x7a,0xc1,0x46,0x7a,0xa1,0x47,0x85, +0x44,0x48,0xd2,0x5, 0xbe,0x51,0x46,0x78,0xa, 0xe5,0x45,0xbc,0xb7,0x50,0xc, 0xc2, +0x5, 0x80,0x8, 0xe5,0x45,0xbc,0xb6,0x50,0x2, 0xc2,0x5, 0x30,0x5, 0x3, 0x2, 0xd0, +0x8d,0x7c,0xda,0x2, 0xd0,0x8d,0x7e,0x8, 0x62,0xb8,0x7e,0x34,0x0, 0xc, 0x74,0xff, +0x12,0x24,0x34,0x30,0x5, 0x6c,0x12,0xd0,0xdc,0x18,0x3, 0x12,0xd1,0xe, 0xa, 0xd, +0xb, 0x4, 0xe5,0x47,0xa, 0x1b,0xbd,0x1, 0x18,0x7, 0xa, 0x5d,0xb, 0x54,0x12,0xd0, +0xd3,0xbd,0x1, 0x18,0xb, 0xbd,0x23,0x18,0x7, 0xa, 0x3d,0xb, 0x34,0x12,0xd1,0x1, +0x7e,0xe4,0x80,0x1, 0x6c,0xff,0x12,0xd0,0xf4,0x68,0xe, 0x12,0xd0,0xc3,0x68,0x9, +0x12,0xd1,0x1b,0x8, 0x4, 0x7d,0xe3,0x7c,0xef,0xb, 0xf0,0xbe,0xf0,0x3, 0x78,0xe6, +0x12,0xd0,0xe7,0x78,0x8, 0x12,0xd0,0xcb,0x78,0x3, 0x2, 0xd0,0x9c,0xe5,0x48,0xbe, +0xb1,0x46,0x78,0x7, 0x12,0xd0,0xcb,0x78,0x2, 0x1, 0x9c,0xbe,0xe0,0xff,0x68,0x7d, +0x80,0x65,0x12,0xd0,0xdc,0x18,0x3, 0x12,0xd1,0xe, 0xa, 0xd, 0x1b,0x4, 0xe5,0x45, +0xa, 0x1b,0xbd,0x1, 0x48,0x7, 0xa, 0x5d,0x1b,0x54,0x12,0xd0,0xd3,0xbd,0x1, 0x48, +0xb, 0xbd,0x23,0x18,0x7, 0xa, 0x3d,0x1b,0x34,0x12,0xd1,0x1, 0x7e,0xe4,0x80,0x1, +0x6c,0xff,0x12,0xd0,0xf4,0x68,0xe, 0x12,0xd0,0xc3,0x68,0x9, 0x12,0xd1,0x1b,0x8, +0x4, 0x7d,0xe3,0x7c,0xef,0xb, 0xf0,0xbe,0xf0,0x3, 0x78,0xe6,0x12,0xd0,0xe7,0x78, +0x5, 0x12,0xd0,0xbb,0x68,0x36,0xe5,0x48,0xbe,0xb1,0x46,0x78,0x5, 0x12,0xd0,0xbb, +0x68,0x2a,0xbe,0xe0,0xff,0x68,0x16,0x7e,0x71,0x43,0x74,0x2, 0xac,0x7b,0x59,0xe3, +0x75,0x6a,0x9, 0xd4,0x62,0xb8,0x7c,0xca,0x5, 0x43,0x7e,0xe0,0xff,0xe5,0x44,0xa, +0x2b,0xb, 0x24,0xa, 0x3c,0xbd,0x32,0x68,0x3, 0x2, 0xcf,0x96,0x6c,0xff,0x80,0x10, +0x74,0x2, 0xac,0xbf,0x49,0xe5,0x75,0x6a,0xbd,0xef,0x58,0x2, 0x7d,0xfe,0xb, 0xf0, +0xe5,0x43,0xbc,0xbf,0x38,0xea,0x7d,0x3f,0xda,0x3b,0x22,0x9, 0xb4,0x62,0xb8,0xbe, +0xb1,0x45,0x22,0x9, 0x72,0x62,0xb9,0xbe,0x70,0xff,0x22,0x9, 0xb4,0x62,0xb8,0xbe, +0xb1,0x47,0x22,0x7a,0xb3,0x62,0xbc,0x7a,0xc3,0x62,0xbd,0x22,0xa, 0x2c,0xb, 0x24, +0xe5,0x48,0xa, 0x3b,0xbd,0x23,0x22,0x7e,0x90,0x4, 0xac,0x9e,0x9, 0xa4,0x62,0xb9, +0xbe,0xa1,0x48,0x22,0x7e,0x50,0x4, 0xac,0x5f,0x9, 0xb2,0x62,0xb8,0xbe,0xb0,0xff, +0x22,0x7a,0x73,0x62,0xc0,0xa, 0x3c,0xb, 0x34,0x7a,0x73,0x62,0xc1,0x22,0x7a,0xd3, +0x62,0xb8,0xa, 0x1c,0xb, 0x14,0x7a,0x33,0x62,0xb9,0x22,0x12,0x57,0x9, 0x74,0x4, +0xac,0xbf,0x59,0x35,0x62,0xba,0xbd,0x3e,0x22,0xca,0x3b,0x75,0x28,0xff,0x6c,0xff, +0x7e,0xc0,0xff,0x6c,0xee,0x6c,0x99,0x6c,0x88,0x7e,0xf4,0x7f,0xff,0x6c,0xdd,0x80, +0x68,0x7e,0x70,0x2, 0xac,0x7d,0x9, 0xb3,0x6b,0x54,0xf5,0x26,0x9, 0x73,0x6b,0x55, +0x7a,0x71,0x27,0x12,0x57,0x9, 0x7d,0x3, 0xbd,0xf, 0x58,0x2, 0x7d,0xf0,0xe5,0x26, +0xbe,0xb1,0x28,0x50,0x3, 0x85,0x26,0x28,0xe5,0x26,0xbc,0xbf,0x28,0x3, 0x7e,0xf1, +0x26,0xe5,0x27,0xbc,0xbc,0x50,0x3, 0x7e,0xc1,0x27,0xe5,0x27,0xbc,0xbe,0x28,0x3, +0x7e,0xe1,0x27,0xe5,0x28,0xa, 0x5b,0xa, 0x1f,0x9d,0x15,0xbe,0x14,0x0, 0x7, 0x18, +0xc, 0xa, 0x5c,0xa, 0x1e,0x9d,0x15,0xbe,0x14,0x0, 0x7, 0x8, 0xa, 0x7e,0x14,0x1, +0xf4,0x7a,0x17,0x75,0x88,0x41,0x4a,0xb, 0xd0,0x7e,0x73,0x6c,0xde,0xbc,0x7d,0x38, +0x90,0x7d,0x3f,0x3e,0x34,0x12,0x97,0x87,0x7d,0x3, 0x7c,0xdc,0x80,0x1c,0x7e,0xc1, +0x28,0x80,0x11,0x7c,0xbc,0x7c,0x7d,0x12,0x57,0x9, 0xbd,0x30,0x8, 0x2, 0xb, 0x90, +0xb, 0x80,0xb, 0xc0,0xbc,0xfc,0x50,0xeb,0xb, 0xd0,0xbc,0xed,0x50,0xe0,0x7e,0x73, +0x6e,0x7d,0xbe,0x70,0x3, 0x40,0xd, 0x12,0xd2,0x4d,0x50,0x28,0xb, 0x14,0x7a,0x17, +0x75,0x88,0x80,0x20,0xbe,0x70,0x1, 0x38,0x1b,0x7e,0x17,0x75,0x88,0xbe,0x14,0x0, +0x2, 0x28,0x6, 0x1b,0x15,0x7a,0x17,0x75,0x88,0x12,0xd2,0x56,0x50,0x6, 0xb, 0x14, +0x7a,0x17,0x75,0xa, 0x7e,0x73,0x6c,0xde,0xbe,0x70,0x1, 0x40,0x2d,0x7e,0x30,0x2, +0xac,0x38,0x74,0x3, 0xac,0xb9,0xbd,0x51,0x8, 0xf, 0x6d,0x11,0x7a,0x17,0x75,0x88, +0x12,0xd2,0x56,0x50,0x15,0xb, 0x14,0x80,0xd, 0x12,0xd2,0x4d,0x50,0x6, 0xb, 0x15, +0x7a,0x17,0x75,0x88,0x6d,0x11,0x7a,0x17,0x75,0xa, 0xda,0x3b,0x22,0x7e,0x17,0x75, +0x88,0xbe,0x14,0x3, 0xe8,0x22,0x7e,0x17,0x75,0xa, 0xbe,0x14,0x1, 0xf4,0x22,0xa9, +0x31,0xcd,0xf, 0xa9,0x31,0xe5,0xb, 0xa9,0xd5,0xea,0xa9,0xc5,0xea,0xc2,0x95,0xa9, +0xc1,0xcd,0xa9,0x30,0xcd,0x7, 0xa9,0x30,0xe5,0x3, 0xa9,0xc0,0xcd,0xa9,0x32,0xcd, +0x7, 0xa9,0x32,0xe5,0x3, 0xa9,0xc2,0xcd,0xa9,0x35,0xcd,0x7, 0xa9,0x35,0xe5,0x3, +0xa9,0xc5,0xcd,0xa9,0x36,0xcd,0x7, 0xa9,0x36,0xe5,0x3, 0xa9,0xc6,0xcd,0xa9,0x37, +0xcd,0x7, 0xa9,0x37,0xe5,0x3, 0xa9,0xc7,0xcd,0x32,0x7e,0x14,0xf7,0xf0,0x7e,0x4, +0x0, 0xff,0x7e,0x34,0x47,0x52,0x7e,0x24,0x55,0x50,0x79,0x30,0x0, 0x2, 0x1b,0xa, +0x20,0x7e,0x34,0x45,0x20,0x7e,0x24,0x41,0x44,0x79,0x30,0x0, 0x6, 0x79,0x20,0x0, +0x4, 0x7e,0x34,0x99,0x33,0x7e,0x24,0x66,0xcc,0x79,0x30,0x0, 0xa, 0x79,0x20,0x0, +0x8, 0x7e,0x34,0x41,0x47,0x7e,0x24,0x46,0x4c,0x79,0x30,0x0, 0xe, 0x79,0x20,0x0, +0xc, 0x22,0x7e,0xb3,0x77,0xe6,0xbe,0xb0,0xc8,0x50,0x5, 0x4, 0x7a,0xb3,0x77,0xe6, +0x22,0x7c,0xab,0x80,0xf, 0x7e,0x70,0x2, 0x80,0x1, 0x0, 0x7c,0x67,0x1b,0x70,0xa5, +0xbe,0x0, 0xf7,0x0, 0x7c,0x6a,0x1b,0xa0,0xa5,0xbe,0x0, 0xe9,0x22,0xa2,0xac,0x92, +0x2, 0xc2,0xac,0x7e,0xf, 0x78,0x39,0x30,0x1, 0xa, 0xb, 0x16,0xb, 0xa, 0x30,0x4e, +0x70,0xc, 0x80,0x8, 0xb, 0x16,0xb, 0xa, 0x30,0x5e,0x70,0xf3,0x1b,0xa, 0x30,0xa2, +0x2, 0x92,0xac,0x22,0xa, 0x7, 0xa, 0x1b,0x2d,0x10,0x12,0x4f,0xef,0x6d,0x0, 0x7e, +0x18,0xbb,0x80,0x2, 0x23,0x10,0x6c,0xaa,0x7e,0x30,0x2c,0xac,0x3a,0x12,0x33,0xde, +0x7e,0x34,0x0, 0x2c,0xe4,0x12,0x24,0x34,0xb, 0xa0,0xbe,0xa0,0x3, 0x40,0xe9,0x22, +0x7e,0xb3,0x76,0xff,0xb4,0x1, 0x37,0x7e,0xa3,0x76,0xfd,0x7a,0xa3,0x76,0xfe,0x7e, +0xb3,0x77,0x5, 0x4, 0x7a,0xb3,0x77,0x5, 0x7e,0xb3,0x77,0x4, 0x4, 0x7a,0xb3,0x77, +0x4, 0x12,0xd6,0xc9,0xbe,0xb3,0x77,0x4, 0x38,0x14,0xe4,0x7a,0xb3,0x77,0x4, 0x7c, +0xba,0x4, 0x7a,0xb3,0x76,0xfd,0x12,0xd3,0xb6,0x28,0x3, 0x12,0xd3,0xaf,0x22,0x74, +0x3, 0x7a,0xb3,0x76,0xff,0x22,0x7e,0x73,0x76,0xfc,0xbe,0x73,0x76,0xfd,0x22,0x12, +0xd3,0xb6,0x38,0x2, 0xe4,0x22,0x7e,0xa3,0x76,0xfd,0x74,0x7, 0xa4,0x49,0x55,0x77, +0x8, 0x12,0xd3,0xd7,0xe4,0x33,0x22,0x7c,0x3b,0xd2,0x4, 0x12,0xd6,0xf0,0x12,0xd6, +0xd3,0x1b,0x30,0x68,0x1d,0x1b,0x30,0x68,0x23,0x1b,0x30,0x68,0x29,0x1b,0x30,0x68, +0x2f,0xb, 0x32,0x78,0x73,0x12,0x3f,0x9b,0x7e,0x1f,0x76,0xe0,0x7e,0xf, 0x76,0xdc, +0x80,0x52,0x7e,0x1f,0x76,0xe8,0x7e,0xf, 0x76,0xe4,0x80,0x48,0x7e,0x1f,0x76,0xf0, +0x7e,0xf, 0x76,0xec,0x80,0x3e,0x7e,0x1f,0x76,0xf8,0x7e,0xf, 0x76,0xf4,0x80,0x34, +0x7e,0x34,0x0, 0x8, 0xca,0x39,0x7e,0x71,0x1e,0x74,0x8, 0xac,0x7b,0x2e,0x34,0x76, +0xdc,0x6d,0x22,0x7e,0x8, 0x67,0x1e,0x12,0x24,0xf, 0x1b,0xfd,0x7e,0x34,0x0, 0x1, +0x7a,0x37,0x67,0x1e,0x7e,0x73,0x78,0x34,0x7a,0x73,0x67,0x20,0x7e,0x1f,0x67,0x22, +0x7e,0xf, 0x67,0x1e,0x7a,0x1d,0x39,0x7a,0xd, 0x35,0x12,0x2, 0x3d,0x74,0x1, 0x7a, +0xb3,0x76,0xff,0x12,0xd, 0xbd,0x80,0x2, 0xc2,0x4, 0xa2,0x4, 0x22,0x7e,0xb3,0x76, +0xff,0xb4,0x1, 0x2, 0x80,0x2, 0xa1,0xe, 0x7e,0x73,0x76,0xfc,0xbe,0x73,0x76,0xfe, +0x28,0x74,0x7e,0x63,0x76,0xfe,0x7e,0x70,0x7, 0xac,0x67,0x49,0x53,0x77,0x8, 0x7c, +0xab,0x7e,0x43,0x77,0x5, 0x7e,0x50,0x2, 0xac,0x45,0x2d,0x32,0x49,0x33,0x77,0xa, +0x7a,0x35,0x1c,0x4d,0x33,0x68,0x4f,0xd2,0x2d,0x1b,0xa0,0x68,0x10,0x1b,0xa0,0x68, +0xc, 0x1b,0xa0,0x68,0x8, 0x1b,0xa0,0x68,0x4, 0xb, 0xa2,0x78,0x39,0x12,0xd5,0xf, +0x30,0x12,0x4, 0x74,0x2, 0x80,0x2, 0x74,0x1, 0x7e,0xa3,0x77,0x5, 0xa, 0x3a,0x19, +0xb3,0x77,0x0, 0x7e,0xb3,0x77,0x5, 0x70,0xe, 0x7e,0x73,0x77,0x7, 0xbe,0x70,0x1, +0x28,0x5, 0x12,0xb, 0xe5,0x80,0xf, 0x7e,0xf, 0x78,0x39,0xb, 0x16,0xb, 0xa, 0x30, +0x5e,0x60,0xef,0x1b,0xa, 0x30,0x12,0xd3,0xb6,0x38,0x13,0x74,0x2, 0x7a,0xb3,0x76, +0xff,0x12,0x3c,0xf1,0x12,0x37,0xe1,0xe5,0x1e,0x70,0x3, 0x2, 0x3f,0x52,0x22,0xca, +0x3b,0x7e,0x95,0x1c,0x6d,0x88,0x7e,0xb3,0x77,0x5, 0xf5,0x4b,0x7e,0xb3,0x6e,0xc1, +0x60,0xa, 0x7e,0xc7,0x6e,0xb5,0x7e,0xd7,0x6e,0xb7,0x80,0x8, 0x7e,0xd7,0x6e,0xb5, +0x7e,0xc7,0x6e,0xb7,0x20,0x2d,0x2, 0xc1,0x80,0x7e,0xe7,0x73,0x21,0x7e,0xf4,0x0, +0xa, 0xa9,0xd7,0xea,0x7e,0x5f,0x1, 0x78,0x69,0x55,0x2, 0x64,0x69,0x75,0x0, 0xc, +0x4d,0x75,0x12,0xd6,0xa0,0x59,0x75,0x0, 0xe4,0x69,0x55,0x2, 0x5c,0x7e,0x5f,0x1, +0x78,0x69,0xb5,0x0, 0x4, 0x4d,0xb5,0x12,0xd6,0xa0,0x59,0xb5,0x0, 0xe6,0x7e,0x5f, +0x1, 0x78,0x69,0xb5,0x2, 0x5a,0x7e,0x3f,0x1, 0x78,0x69,0x53,0x0, 0x2, 0xbd,0x5b, +0x28,0xc, 0x7e,0x5f,0x1, 0x78,0x69,0x55,0x0, 0x2, 0x7d,0x45,0x80,0x8, 0x7e,0x2f, +0x1, 0x78,0x69,0x42,0x2, 0x5a,0x12,0xd6,0xa0,0x59,0x45,0x0, 0xe8,0x7e,0x2f,0x1, +0x78,0xb, 0x2a,0x50,0x12,0xd6,0xa7,0x19,0xa4,0x0, 0xea,0x7e,0x2f,0x1, 0x78,0x69, +0x52,0x2, 0x58,0x12,0xd6,0xa7,0x19,0xa4,0x0, 0xeb,0x6d,0xbb,0x7d,0x4b,0xbe,0x44, +0x0, 0x1, 0x78,0x4, 0xb, 0xf4,0x80,0x23,0x7c,0xb9,0x7e,0xa4,0x0, 0x1, 0x60,0x5, +0x3e,0xa4,0x14,0x78,0xfb,0x7e,0xb3,0x6e,0xb3,0xa, 0x5b,0x5d,0x5a,0x68,0x5, 0x12, +0xd6,0x83,0x80,0x7, 0x6d,0x55,0x12,0xd6,0x92,0xb, 0xf4,0xb, 0x44,0xbe,0x44,0x0, +0x3, 0x78,0xcb,0x7e,0xb3,0x6e,0xc1,0x60,0x5, 0x7a,0xc5,0x49,0x80,0x3, 0x7a,0xb5, +0x49,0x12,0xd6,0xb5,0x7d,0x4b,0x80,0xc, 0xb, 0xa, 0x50,0x1b,0x1a,0x50,0xb, 0x15, +0xb, 0x35,0xb, 0x44,0xbd,0xd4,0x38,0xf0,0x7d,0xfd,0x2e,0xf5,0x49,0x7a,0xf5,0x49, +0x7e,0xf4,0x1, 0x36,0x7d,0x4b,0xbe,0x44,0x0, 0x1, 0x78,0x4, 0xb, 0xf4,0x80,0x23, +0x7c,0xb9,0x7e,0xa4,0x0, 0x1, 0x60,0x5, 0x3e,0xa4,0x14,0x78,0xfb,0x7e,0xb3,0x6e, +0xb4,0xa, 0x5b,0x5d,0x5a,0x68,0x5, 0x12,0xd6,0x83,0x80,0x7, 0x6d,0x55,0x12,0xd6, +0x92,0xb, 0xf4,0xb, 0x44,0xbe,0x44,0x0, 0x3, 0x78,0xcb,0x7e,0xb3,0x6e,0xc1,0x60, +0x3, 0x7a,0xb5,0x49,0x12,0xd6,0xb5,0x7d,0x4b,0x80,0xc, 0xb, 0xa, 0x50,0x1b,0x1a, +0x50,0xb, 0x35,0xb, 0x15,0xb, 0x44,0xbd,0xc4,0x38,0xf0,0xa9,0xc7,0xea,0xc2,0x2d, +0xda,0x3b,0x22,0x7d,0x5f,0xb, 0xf4,0x3e,0x54,0x7e,0x3f,0x1, 0x78,0x2d,0x75,0xb, +0x3a,0x50,0x7d,0xae,0xb, 0xe4,0x3e,0xa4,0x7f,0x34,0x2d,0x7a,0x1b,0x3a,0x50,0x22, +0x7e,0xa1,0x4b,0x74,0x8, 0xa4,0x22,0x5e,0x54,0x0, 0x7f,0x7c,0xab,0x7e,0x91,0x4b, +0x74,0x8, 0xac,0x9b,0x22,0x7d,0xaf,0x3e,0xa4,0x7e,0xf, 0x1, 0x78,0x2d,0x1a,0x7e, +0xa5,0x49,0x3e,0xa4,0x7f,0x14,0x2d,0x3a,0x22,0x7e,0x70,0x7, 0xac,0x7a,0x9, 0xb3, +0x77,0xe, 0x22,0x6c,0xaa,0x7e,0xb3,0x77,0xd8,0xa, 0x3b,0x1e,0x34,0xb, 0x34,0x7e, +0x50,0x8, 0xac,0x5a,0x19,0x72,0x76,0xe1,0xb, 0xa0,0xbe,0xa0,0x4, 0x40,0xe6,0x22, +0xe5,0x1e,0x70,0x21,0x7e,0x37,0x77,0xde,0x4d,0x33,0x78,0xf8,0x12,0x8b,0xd2,0x7e, +0x34,0x0, 0x5, 0x7a,0x37,0x77,0xde,0xbe,0x34,0x0, 0x21,0x28,0x8, 0x7e,0x34,0x0, +0x21,0x7a,0x37,0x77,0xde,0x22,0x30,0x24,0x24,0xc2,0x24,0x7e,0x73,0x76,0x7, 0x7a, +0x73,0x76,0x2f,0x74,0xff,0x7a,0xb3,0x76,0x7, 0x7e,0xa3,0x76,0x2f,0x4c,0xaa,0x78, +0x5, 0x12,0xd7,0xcc,0x80,0x7, 0xbe,0xa0,0x1, 0x78,0x2, 0xd2,0x1b,0x30,0x1b,0x3, +0x12,0xd8,0x4, 0x7e,0xb3,0x76,0x2f,0x14,0x68,0x5b,0x1b,0xb1,0x68,0x5f,0x24,0x3, +0x78,0x6e,0x12,0xd7,0xc4,0x38,0x7, 0x7e,0xb3,0x78,0x20,0xb4,0x1, 0x16,0x12,0x47, +0xe6,0x7e,0xb3,0x76,0x10,0x30,0xe0,0x5b,0x7e,0xb3,0x76,0x5a,0xb4,0x1, 0x54,0x30, +0x13,0x51,0x80,0x2e,0x7e,0xb3,0x76,0x10,0x30,0xe0,0x48,0x7e,0x37,0x29,0xfd,0x7e, +0x44,0x3, 0xe8,0x7d,0x53,0x8d,0x54,0x7e,0x53,0x76,0x11,0xa, 0x15,0xbd,0x51,0x50, +0x11,0x7e,0xb3,0x76,0x5a,0xb4,0x1, 0x2b,0x7e,0x24,0x0, 0xc8,0x8d,0x32,0xbd,0x31, +0x40,0x21,0x2, 0xd8,0x4, 0x12,0xd7,0xc4,0x28,0x19,0x2, 0xd7,0xe7,0x7e,0x34,0x21, +0x59,0x12,0x29,0xdb,0x12,0x2c,0x73,0x12,0x4d,0x3a,0x12,0x2f,0x87,0x2, 0xd7,0xcc, +0x12,0xa7,0xc7,0x22,0x7e,0x73,0x6e,0x7c,0xbe,0x70,0x0, 0x22,0xe4,0x7a,0xb3,0x76, +0x2f,0xd2,0x14,0x12,0x47,0xe6,0x2, 0xd7,0xd9,0x12,0x3b,0x69,0x5e,0x34,0x0, 0x1, +0x68,0x4, 0xd2,0x1d,0xc2,0x1a,0x22,0x7e,0xb3,0x76,0x5a,0x60,0x5, 0x20,0x13,0x5, +0x80,0x0, 0x2, 0xd7,0xcc,0x22,0x12,0x3b,0x69,0x5e,0x34,0x0, 0x1, 0x68,0x4, 0xd2, +0x1a,0xc2,0x1d,0x22,0xe5,0x1e,0xb4,0x1, 0xc, 0x7e,0xb3,0x25,0xaf,0x60,0x6, 0xe4, +0x7a,0xb3,0x76,0x2f,0x22,0xc2,0x1b,0x12,0xa7,0xc7,0x12,0x47,0xe6,0xe4,0x7a,0xb3, +0x29,0xff,0x7a,0xb3,0x29,0xfc,0x12,0x3b,0x69,0x5e,0x34,0x0, 0x2, 0x68,0xa, 0x7e, +0xb3,0x73,0x20,0x44,0x8, 0x7a,0xb3,0x73,0x20,0x22,0x30,0x1c,0x8, 0xe5,0x1e,0xb4, +0x1, 0x3, 0x2, 0x37,0x94,0x22,0x7c,0xab,0x7e,0x8, 0x0, 0x86,0x7e,0x70,0xa, 0xac, +0x7a,0x9, 0xb3,0x29,0x8b,0x12,0xc, 0x3e,0x7e,0x8, 0x0, 0xc2,0x74,0xa, 0xa4,0x9, +0xb5,0x29,0x8b,0x12,0xc, 0x3e,0x7e,0x34,0x0, 0xd, 0x7e,0x8, 0x0, 0x86,0x7e,0x24, +0x0, 0x1, 0x2, 0xc, 0xcc,0x7c,0xab,0x74,0x27,0xa4,0x49,0x25,0x28,0xed,0xb, 0x24, +0x7e,0x37,0x76,0xd6,0xad,0x32,0x7e,0x8, 0x0, 0x82,0x12,0xd8,0x90,0x2, 0xc, 0xcc, +0x6d,0x22,0x12,0xd, 0x3e,0x7e,0x8, 0x0, 0xbe,0x6d,0x22,0x12,0xd, 0x3e,0x7e,0x34, +0x0, 0xb, 0x7e,0x8, 0x0, 0x82,0x7e,0x24,0x0, 0x2, 0x22,0x7c,0xab,0x6d,0x33,0xbe, +0xa0,0x4, 0x50,0x27,0x6c,0x55,0x80,0x16,0x7e,0x10,0x2, 0xac,0x15,0x7e,0x30,0x27, +0xac,0x3a,0x2d,0x10,0x49,0x11,0x28,0xed,0xb, 0x14,0x2d,0x31,0xb, 0x50,0x7e,0x30, +0x27,0xac,0x3a,0x9, 0x41,0x28,0xe8,0xbc,0x45,0x50,0xdd,0x4d,0x33,0x78,0x2, 0xb, +0x34,0x22,0x7c,0xab,0x7e,0x73,0x73,0x25,0xc2,0x2, 0x6d,0x22,0x7d,0x42,0x80,0x13, +0xa, 0xa, 0x12,0x41,0x5f,0x2d,0x14,0x9, 0xb1,0x4e,0xa8,0x70,0x4, 0xd2,0x2, 0x80, +0xa, 0xb, 0x44,0x7e,0x17,0x73,0x21,0xbd,0x14,0x38,0xe5,0x7d,0x42,0x7c,0xb7,0x54, +0x1, 0xb4,0x1, 0x17,0xa, 0xa, 0x12,0x41,0x5f,0x7e,0x27,0x73,0x21,0x2d,0x24,0x2d, +0x21,0x9, 0xb2,0x4e,0xa8,0x70,0x4, 0xd2,0x2, 0x80,0xa, 0x1e,0x70,0xb, 0x44,0xbe, +0x44,0x0, 0x4, 0x40,0xd8,0x30,0x2, 0x10,0x7e,0xb3,0x78,0x33,0xbe,0xb0,0x0, 0x28, +0xd, 0x14,0x7a,0xb3,0x78,0x33,0xc3,0x22,0x74,0x5, 0x7a,0xb3,0x78,0x33,0xd3,0x22, +0xca,0x3b,0x7c,0xcb,0x7e,0x8, 0x62,0xb8,0x12,0xda,0x40,0x7e,0x8, 0x62,0xc4,0x7e, +0x34,0x0, 0x5, 0x12,0x24,0x34,0x12,0xda,0x48,0x7e,0xb7,0x73,0x21,0x7e,0x97,0x6c, +0xfb,0x7d,0xa9,0x3e,0xa4,0x3e,0xa4,0x4c,0xcc,0x78,0x6c,0x7a,0xd3,0x62,0xb9,0x7a, +0xe3,0x62,0xb8,0x7e,0x84,0x8, 0xc, 0x7a,0x87,0x62,0xbc,0x7e,0x1f,0x24,0x64,0x7d, +0x83,0x7a,0x87,0x62,0xbe,0x7e,0x1f,0x24,0x64,0x7d,0x83,0x7a,0x87,0x62,0xc0,0x7d, +0x39,0x7c,0xb7,0xf5,0x26,0x7e,0x8, 0x62,0xb8,0x7e,0x18,0x62,0xc4,0x7d,0x59,0x12, +0x0, 0x46,0x6c,0xff,0x7d,0x3b,0x3e,0x34,0x49,0x83,0x8, 0xc, 0xbd,0xa8,0x58,0x10, +0x7e,0xf, 0x24,0x64,0x2d,0x13,0xb, 0xa, 0x20,0x2d,0x2a,0x1b,0xa, 0x20,0x80,0x10, +0x6d,0x22,0x9d,0x2a,0xbd,0x28,0x8, 0x8, 0x12,0xda,0x36,0x9d,0x3a,0x1b,0xa, 0x30, +0x12,0xda,0x2e,0x78,0xcf,0x80,0x44,0xbe,0xc0,0x1, 0x78,0x3f,0x6c,0xff,0x80,0x24, +0x6c,0x77,0x80,0x1a,0x7c,0xbf,0xac,0xbd,0xa, 0x87,0x2d,0x85,0x3e,0x84,0x7e,0xf, +0x24,0x64,0x2d,0x18,0xb, 0xa, 0x80,0x2d,0x89,0x1b,0xa, 0x80,0xb, 0x70,0xbc,0xd7, +0x38,0xe2,0xb, 0xf0,0xbc,0xef,0x38,0xd8,0x6c,0xff,0x7d,0x3b,0x3e,0x34,0x12,0xda, +0x36,0x2d,0x3a,0x1b,0xa, 0x30,0x12,0xda,0x2e,0x78,0xef,0xda,0x3b,0x22,0xb, 0xb4, +0xb, 0xf0,0xbe,0xf0,0x4, 0x22,0x7e,0xf, 0x24,0x64,0x2d,0x13,0xb, 0xa, 0x30,0x22, +0x7e,0x34,0x0, 0xc, 0xe4,0x2, 0x24,0x34,0x7e,0xe3,0x6e,0xaf,0x7e,0xd3,0x6e,0xb0, +0x22,0x7e,0x37,0x73,0x21,0x6c,0xaa,0x90,0x1c,0x49,0xe4,0x93,0x20,0xe0,0x4, 0x4c, +0xaa,0x68,0x25,0x1e,0xb0,0x1e,0xb0,0x20,0xe0,0x5, 0xbe,0xa0,0x1, 0x68,0x19,0x90, +0x1c,0x4a,0xe4,0x93,0x20,0xe0,0x5, 0xbe,0xa0,0x2, 0x68,0xc, 0x1e,0xb0,0x1e,0xb0, +0x20,0xe0,0x9, 0xbe,0xa0,0x3, 0x78,0x4, 0xb, 0x34,0x80,0x25,0x7d,0x23,0x3e,0x24, +0x49,0x42,0x8, 0xc, 0x12,0xda,0xb9,0x2d,0x24,0x1b,0xa, 0x20,0x7d,0x23,0x3e,0x24, +0x12,0xda,0xb9,0xbe,0x24,0xf, 0xa0,0x50,0x6, 0x74,0x1f,0x7a,0xb3,0x73,0x1f,0xb, +0x34,0xb, 0xa0,0xbe,0xa0,0x4, 0x40,0x9f,0x22,0x7e,0xf, 0x24,0x64,0x2d,0x12,0xb, +0xa, 0x20,0x22,0xe4,0x7a,0xb3,0x6c,0xf3,0x12,0xda,0xdf,0xe4,0x12,0x0, 0x19,0x7e, +0xb3,0x25,0xae,0xb4,0x1, 0x8, 0x7e,0x73,0x6c,0xde,0x7a,0x73,0x6c,0xf2,0x22,0x6c, +0x33,0x80,0x9, 0xe4,0xa, 0x33,0x19,0xb3,0x6b,0xcc,0xb, 0x30,0x90,0x21,0x52,0xe4, +0x93,0xc4,0x23,0x54,0x1f,0xa, 0x2b,0xb, 0x24,0xa, 0x33,0xbd,0x32,0x48,0xe4,0x12, +0xdc,0x23,0x6d,0x33,0x7a,0x37,0x6c,0xe0,0x7a,0x37,0x6c,0xe2,0x7a,0x37,0x6c,0xe4, +0x7a,0x37,0x6c,0xe8,0x7e,0xd4,0x62,0xba,0x1e,0xd4,0x3e,0xd4,0x6d,0xcc,0x7e,0x1f, +0x24,0x68,0x7a,0x37,0x62,0xfa,0x7d,0x3d,0x7a,0x37,0x62,0xfe,0x7e,0x34,0x24,0xbc, +0x7a,0x37,0x62,0xfc,0x7e,0x73,0x6e,0xaf,0x7a,0x73,0x62,0xf7,0x7e,0x73,0x6e,0xb0, +0x7a,0x73,0x62,0xf6,0x7e,0x37,0x6e,0x8d,0x7a,0x37,0x63,0x0, 0x7e,0x37,0x6e,0x8f, +0x7a,0x37,0x63,0x2, 0x7e,0x37,0x6e,0x97,0x7a,0x37,0x63,0x4, 0x7e,0x37,0x6e,0x99, +0x7a,0x37,0x63,0x6, 0x12,0x5f,0x7c,0x1b,0x34,0x7a,0x73,0x62,0xf8,0x7e,0x73,0x78, +0x44,0x7a,0x73,0x62,0xf9,0x7e,0x8, 0x62,0xf6,0x7e,0x18,0x63,0x8, 0x12,0x3, 0x1d, +0x7e,0x73,0x63,0x8, 0x7a,0x73,0x6c,0xde,0x7e,0x73,0x63,0x9, 0x7a,0x73,0x6c,0xdf, +0x7e,0x37,0x63,0xa, 0x7a,0x37,0x6c,0xe0,0x7e,0x37,0x63,0xc, 0x7a,0x37,0x6c,0xe2, +0x7e,0x37,0x63,0x12,0x7a,0x37,0x6c,0xe4,0x7e,0x37,0x63,0x14,0x7d,0x23,0x7a,0x53, +0x6c,0xe6,0xa, 0x36,0x7a,0x73,0x6c,0xe7,0x7e,0x37,0x63,0xe, 0x7a,0x37,0x6c,0xe8, +0x7e,0x37,0x63,0x10,0x7d,0x23,0x7a,0x53,0x6c,0xea,0xa, 0x36,0x7a,0x73,0x6c,0xeb, +0x6c,0x33,0x80,0x1f,0xd2,0x2, 0x7c,0xb3,0x12,0x57,0x49,0x74,0x2, 0xac,0xb3,0x49, +0x45,0x24,0xbc,0xa, 0x38,0x7c,0x27,0x19,0x25,0x6b,0x54,0x7c,0x29,0x19,0x25,0x6b, +0x55,0xb, 0x30,0x7e,0x23,0x6c,0xde,0xbc,0x23,0x38,0xd9,0x6c,0x33,0x80,0x1b,0x74, +0x2, 0xac,0xb3,0x7f,0x16,0x2d,0x35,0xb, 0x1a,0x40,0xa, 0x38,0x7c,0x27,0x19,0x25, +0x6b,0x90,0x7c,0x29,0x19,0x25,0x6b,0x91,0xb, 0x30,0x7e,0x23,0x6c,0xdf,0xbc,0x23, +0x38,0xdd,0x22,0xe4,0x7a,0xb3,0x6c,0xde,0x7a,0xb3,0x6c,0xdf,0x22,0x7d,0x23,0x12, +0x4c,0x18,0x7e,0x37,0x78,0x0, 0x7d,0x13,0x9e,0x17,0x77,0xfc,0xbe,0x14,0x0, 0x0, +0x8, 0x6, 0x9e,0x37,0x77,0xfc,0x80,0x4, 0x6d,0x33,0x9d,0x31,0xbd,0x32,0x38,0x21, +0x7e,0x37,0x78,0x2, 0x7d,0x13,0x9e,0x17,0x77,0xfe,0xbe,0x14,0x0, 0x0, 0x8, 0x6, +0x9e,0x37,0x77,0xfe,0x80,0x4, 0x6d,0x33,0x9d,0x31,0xbd,0x32,0x38,0x3, 0x74,0x1, +0x22,0xe4,0x22,0xca,0xd8,0xca,0x79,0x6c,0xff,0x6d,0xdd,0x7d,0xed,0x7d,0xfd,0x7e, +0xd3,0x6e,0x7c,0x7e,0xe3,0x6e,0x7d,0x7e,0xb3,0x77,0xfb,0x60,0x11,0x7e,0xc7,0x78, +0x4, 0x4d,0xcc,0x78,0x2, 0xa1,0x63,0xbe,0xd0,0x1, 0x28,0x2, 0xa1,0x63,0xbe,0xd0, +0x1, 0x78,0x1d,0xbe,0xb0,0x4, 0x78,0x2, 0xa1,0x63,0x7e,0xe7,0x6d,0x6e,0x7e,0xf7, +0x6d,0x70,0x7d,0x3e,0x7d,0x2f,0x12,0x9f,0x38,0xbe,0xb0,0x1, 0x78,0x2, 0xa1,0x63, +0x7e,0xa3,0x77,0xfb,0x7c,0xba,0x14,0x68,0x29,0x14,0x68,0x54,0x14,0x68,0x23,0x14, +0x78,0x2, 0xa1,0x60,0xb, 0xb2,0x68,0x2, 0xa1,0x63,0xbe,0xd0,0x1, 0x68,0x2, 0xa1, +0x72,0x4c,0xee,0x68,0x2, 0xa1,0x72,0x74,0x1, 0x7a,0xb3,0x77,0xfb,0x12,0xdd,0x85, +0x80,0x61,0x4c,0xdd,0x78,0x1d,0xbe,0xa0,0x1, 0x78,0xc, 0x74,0x2, 0x7a,0xb3,0x77, +0xfb,0x7e,0x34,0x22,0x43,0x80,0x50,0x74,0x4, 0x7a,0xb3,0x77,0xfb,0x7e,0x34,0x22, +0x47,0x80,0x44,0x12,0xdd,0x8e,0x90,0x22,0x36,0x12,0xdd,0x79,0x68,0x45,0x80,0x52, +0xbe,0xd0,0x1, 0x78,0x4d,0x4c,0xee,0x78,0x49,0x12,0xdd,0x8e,0x7e,0x34,0x22,0x3f, +0x12,0x29,0xdb,0x7e,0x14,0x22,0x43,0x12,0xdd,0x9b,0x9d,0xc3,0xbe,0xc7,0x78,0x4, +0x40,0x21,0x90,0x22,0x35,0x12,0xdd,0x79,0x68,0x19,0x12,0xdd,0x85,0x74,0x3, 0x7a, +0xb3,0x77,0xfb,0x7e,0x34,0x22,0x43,0x12,0x29,0xdb,0x7a,0x37,0x78,0x4, 0x80,0x12, +0x7e,0xf0,0x24,0xe4,0x7a,0xb3,0x77,0xfb,0x6d,0x33,0x7a,0x37,0x78,0x4, 0x7c,0xbf, +0x80,0x2, 0x7c,0xbf,0xda,0x79,0xda,0xd8,0x22,0xe4,0x93,0xa, 0x3b,0x12,0xdc,0x2d, +0xa, 0xdb,0x4d,0xdd,0x22,0x7a,0xe7,0x77,0xfc,0x7a,0xf7,0x77,0xfe,0x22,0x7a,0xe7, +0x78,0x0, 0x7a,0xf7,0x78,0x2, 0x22,0x7e,0x14,0x21,0xec,0x7e,0x4, 0x0, 0xff,0xb, +0xa, 0xc0,0x22,0x7c,0x7b,0xa, 0x57,0x9e,0x54,0x0, 0x20,0xe, 0x54,0xe, 0x54,0xe, +0x54,0xe, 0x54,0x7c,0xab,0x7c,0x67,0x5e,0x60,0xf0,0xa5,0xbe,0x20,0x1d,0x7c,0xb7, +0x54,0xf, 0x7e,0x24,0x0, 0x1, 0x60,0x5, 0x3e,0x24,0x14,0x78,0xfb,0x7e,0x73,0x78, +0x28,0xa, 0x47,0x5d,0x42,0x7e,0x73,0x76,0x5b,0x80,0x36,0xa5,0xbe,0x30,0x18,0x12, +0xde,0x16,0x60,0x5, 0x3e,0x34,0x14,0x78,0xfb,0x7e,0x53,0x78,0x29,0xa, 0x45,0x5d, +0x43,0x7e,0x73,0x76,0x5c,0x80,0x1a,0x12,0xde,0x16,0x60,0x5, 0x3e,0x34,0x14,0x78, +0xfb,0xa, 0x2a,0x9, 0xb2,0x78,0x28,0xa, 0x4b,0x5d,0x43,0xa, 0x5a,0x9, 0x75,0x76, +0x5d,0xa, 0x57,0x5d,0x54,0x22,0x7c,0xb7,0x54,0xf, 0x7e,0x34,0x0, 0x1, 0x22,0x7e, +0xa3,0x27,0x72,0xbe,0xa0,0x64,0x50,0x1b,0x74,0x4, 0xa4,0x59,0x35,0x25,0xb9,0x7e, +0xa3,0x27,0x72,0x74,0x4, 0xa4,0x59,0x25,0x25,0xbb,0x7e,0xb3,0x27,0x72,0x4, 0x7a, +0xb3,0x27,0x72,0x22,0x7d,0xf2,0x7d,0xe3,0x7e,0x8, 0x27,0x4a,0x7e,0x34,0x0, 0x28, +0xe4,0x12,0x24,0x34,0x7e,0x8, 0x25,0xb9,0x7e,0x34,0x1, 0x90,0x12,0x24,0x34,0x7a, +0xb3,0x76,0x5d,0x7e,0x34,0x22,0x6d,0x12,0x29,0xdb,0x7a,0x37,0x25,0xb1,0x7a,0xe7, +0x27,0x4e,0x7a,0xf7,0x27,0x50,0x7a,0xe7,0x27,0x52,0x7a,0xe7,0x27,0x56,0x7a,0xe7, +0x27,0x5a,0x7a,0xe7,0x27,0x5e,0x7a,0xf7,0x27,0x54,0x7a,0xf7,0x27,0x58,0x7a,0xf7, +0x27,0x5c,0x7a,0xf7,0x27,0x60,0x7a,0xe7,0x25,0xb5,0x7a,0xf7,0x25,0xb7,0x7a,0xb3, +0x27,0x72,0x74,0x2, 0x7a,0xb3,0x27,0x49,0x22,0xca,0x3b,0xf5,0x2c,0x7f,0x31,0x7a, +0xd, 0x28,0x75,0x34,0x0, 0x75,0x35,0x0, 0x75,0x36,0x0, 0x7e,0x34,0x3, 0xe8,0x7a, +0x35,0x3f,0x75,0x32,0x3c,0x75,0x33,0x46,0x75,0x2d,0x0, 0x2, 0xe0,0xcb,0x12,0xe2, +0x6e,0x28,0x1e,0x7e,0x34,0x0, 0x44,0xca,0x39,0x7e,0x71,0x2d,0x74,0x44,0xac,0x7b, +0x2e,0x34,0xe, 0x6, 0x7e,0x24,0x0, 0xff,0x7e,0x8, 0x64,0x52,0x12,0x24,0xf, 0x1b, +0xfd,0x6d,0x33,0x7a,0x37,0x64,0x48,0x7a,0x37,0x64,0x4a,0x7a,0x37,0x64,0x4c,0x7a, +0x37,0x64,0x4e,0x7a,0x37,0x64,0x50,0x7e,0x18,0x64,0x52,0x7a,0x1d,0x37,0x7e,0x18, +0x64,0x72,0x7a,0x1d,0x3b,0x75,0x2e,0x0, 0xe1,0xae,0xe5,0x2e,0xa, 0x5b,0x7e,0x1d, +0x28,0x2d,0x35,0x7e,0x1b,0x60,0xa, 0x26,0x7e,0xd, 0x37,0x2d,0x15,0x7e,0xb, 0x70, +0xa, 0xd7,0x7d,0xcd,0x9d,0xc2,0xbe,0xc4,0x0, 0x0, 0x8, 0x4, 0x9d,0xd2,0x80,0xa, +0xa, 0x26,0xa, 0x37,0x9d,0x32,0x6d,0xdd,0x9d,0xd3,0x7e,0xc7,0x64,0x4c,0xbd,0xcd, +0x58,0x4, 0x7a,0xd7,0x64,0x4c,0xe5,0x2e,0xa, 0xcb,0x7f,0x13,0x2d,0x3c,0x7e,0x1b, +0x70,0xa, 0x27,0xe5,0x2e,0xa, 0x3b,0x7e,0xd, 0x3b,0x2d,0x13,0x7e,0xb, 0x70,0xa, +0xc7,0x12,0x5f,0x87,0x8, 0x4, 0x9d,0xc2,0x80,0x4, 0x6d,0xcc,0x9d,0xc3,0x7e,0x37, +0x64,0x4e,0xbd,0x3c,0x58,0x4, 0x7a,0xc7,0x64,0x4e,0x7e,0x37,0x64,0x48,0x2d,0x3d, +0x7a,0x37,0x64,0x48,0x7e,0x37,0x64,0x4a,0x2d,0x3c,0x7a,0x37,0x64,0x4a,0x2d,0xcd, +0x7e,0x37,0x64,0x50,0xbd,0x3c,0x58,0x4, 0x7a,0xc7,0x64,0x50,0x5, 0x2e,0xe5,0x2c, +0xbe,0xb1,0x2e,0x28,0x2, 0xe1,0x1a,0xe5,0x2c,0xb4,0xa, 0x2f,0x7e,0x37,0x64,0x4c, +0xbe,0x34,0x0, 0x40,0x48,0xd, 0x7e,0x27,0x64,0x4e,0xbe,0x24,0x0, 0x40,0x48,0x3, +0x2, 0xe0,0xc9,0xbe,0x34,0x0, 0x60,0x8, 0x3, 0x2, 0xe0,0xc9,0x7e,0x37,0x64,0x4e, +0xbe,0x34,0x0, 0x60,0x8, 0x3, 0x2, 0xe0,0xc9,0x80,0x2a,0x7e,0x37,0x64,0x4c,0xbe, +0x34,0x0, 0x20,0x8, 0xc, 0x7e,0x27,0x64,0x4e,0xbe,0x24,0x0, 0x20,0x8, 0x2, 0x1, +0xc9,0xbe,0x34,0x0, 0x30,0x8, 0x2, 0x1, 0xc9,0x7e,0x37,0x64,0x4e,0xbe,0x34,0x0, +0x30,0x8, 0x2, 0x1, 0xc9,0x7e,0xa3,0x77,0x2e,0x74,0xc, 0xa4,0xbe,0x57,0x64,0x48, +0x58,0x2, 0x1, 0xc9,0x7e,0xa3,0x77,0x2f,0x74,0xc, 0xa4,0xbe,0x57,0x64,0x4a,0x58, +0x2, 0x1, 0xc9,0x7e,0xd, 0x37,0x7e,0x1d,0x28,0xe5,0x2c,0x12,0xe1,0x5, 0xf5,0x2f, +0x7e,0xd, 0x3b,0x7f,0x13,0xe5,0x2c,0x12,0xe1,0x5, 0xf5,0x30,0xe5,0x32,0xbe,0xb1, +0x2f,0x38,0x76,0xe5,0x32,0xbe,0xb1,0x30,0x38,0x6f,0xe5,0x30,0x7e,0x31,0x30,0xac, +0x3b,0x1a,0x2, 0x1a,0x0, 0xe5,0x2f,0x7e,0x71,0x2f,0xac,0x7b,0x1a,0x26,0x1a,0x24, +0x2f,0x10,0xe5,0x30,0xa, 0xfb,0x6d,0xee,0xe5,0x2f,0xa, 0x1b,0x6d,0x0, 0x2f,0x7, +0x12,0x22,0xbf,0x7c,0xb7,0xf5,0x31,0xe5,0x33,0xbe,0xb1,0x31,0x38,0x3b,0x7e,0x37, +0x64,0x4e,0x2e,0x37,0x64,0x4c,0x2e,0x37,0x64,0x50,0x7a,0x35,0x41,0xe5,0x31,0xa, +0x2b,0x7e,0x34,0x0, 0x64,0x9d,0x32,0x3e,0x34,0x2e,0x35,0x41,0x7a,0x35,0x41,0x7e, +0x35,0x3f,0xbe,0x35,0x41,0x8, 0x12,0x7e,0x35,0x41,0x7a,0x35,0x3f,0x85,0x31,0x35, +0x7e,0xb3,0x64,0x94,0xf5,0x36,0x85,0x2d,0x34,0x5, 0x2d,0x12,0xe2,0x6e,0x28,0x3, +0x2, 0xde,0xce,0xe5,0x33,0xbe,0xb1,0x35,0x38,0x20,0xe5,0x36,0xbe,0xb0,0x0, 0x28, +0x19,0xe5,0x36,0xbe,0xb0,0xff,0x50,0x12,0xe5,0x34,0xa, 0x3b,0xb, 0x34,0x7a,0x73, +0x77,0x2b,0xe5,0x36,0x7a,0xb3,0x77,0x2d,0x80,0x6, 0x74,0x7c,0x7a,0xb3,0x77,0x2b, +0xe5,0x35,0xda,0x3b,0x22,0xca,0x3b,0x7c,0xfb,0x7f,0x61,0x7f,0x40,0x9f,0x11,0x7f, +0x51,0x7f,0x71,0x7a,0x1f,0x64,0x96,0x7a,0x1f,0x64,0x9a,0x7a,0x1f,0x64,0x9e,0xbe, +0xf0,0xa, 0x78,0x6, 0x7e,0x54,0x1, 0x3c,0x80,0x4, 0x7e,0x54,0x2, 0x35,0x7a,0x55, +0x47,0x6c,0xee,0x80,0x66,0xa, 0x5e,0x7f,0x14,0x12,0xe2,0x66,0x7a,0x55,0x45,0xa, +0x5e,0x7f,0x16,0x12,0xe2,0x66,0x7a,0x55,0x43,0x7e,0x35,0x43,0x12,0x5f,0xa1,0x2f, +0x50,0x7e,0x65,0x45,0x7d,0x16,0x1a,0x2, 0x1a,0x0, 0x2f,0x70,0x12,0x5f,0xa1,0x12, +0xe2,0x5c,0x7e,0x1f,0x64,0x96,0x2f,0x10,0x7a,0x1f,0x64,0x96,0x7d,0x16,0x1a,0x2, +0x1a,0x0, 0x7e,0x35,0x45,0x12,0xe2,0x5c,0x7e,0x1f,0x64,0x9a,0x2f,0x10,0x7a,0x1f, +0x64,0x9a,0x7e,0x15,0x45,0x1a,0x2, 0x1a,0x0, 0x7e,0x35,0x43,0x12,0xe2,0x5c,0x7e, +0x1f,0x64,0x9e,0x2f,0x10,0x7a,0x1f,0x64,0x9e,0xb, 0xe0,0xbc,0xfe,0x38,0x96,0xa, +0xdf,0x6d,0xcc,0x7f,0x15,0x7f,0x6, 0x12,0x23,0x10,0x7f,0x51,0x7f,0x17,0x7f,0x6, +0x12,0x23,0x10,0x7f,0x71,0x7e,0x94,0x0, 0x64,0x7e,0x1f,0x64,0x96,0x7d,0x19,0x12, +0x22,0xb4,0x7e,0x85,0x47,0x7d,0x18,0x7d,0xd8,0x1a,0x12,0x1a,0xc2,0x7f,0x6, 0x12, +0x23,0x10,0x7a,0x1f,0x64,0x96,0x7e,0x1f,0x64,0x9a,0x7d,0x19,0x12,0x22,0xb4,0x7f, +0x6, 0x12,0x23,0x10,0x7a,0x1f,0x64,0x9a,0x7e,0x1f,0x64,0x9e,0x7d,0x19,0x12,0x22, +0xb4,0x7d,0x18,0x1a,0x2, 0x1a,0x0, 0x12,0x23,0x10,0x7a,0x1f,0x64,0x9e,0x7f,0x15, +0x7f,0x7, 0x12,0x22,0xa3,0x7e,0x6f,0x64,0x9e,0x9f,0x61,0x7f,0x15,0x7f,0x5, 0x12, +0x22,0xa3,0x7e,0x5f,0x64,0x96,0x9f,0x51,0x7f,0x17,0x7f,0x7, 0x12,0x22,0xa3,0x7e, +0x7f,0x64,0x9a,0x9f,0x71,0xbe,0x58,0x0, 0x0, 0x68,0x6, 0xbe,0x78,0x0, 0x0, 0x78, +0x6, 0x7e,0x44,0x0, 0x64,0x80,0x18,0x7f,0x16,0x7d,0x19,0x12,0x22,0xb4,0x7f,0x5, +0x12,0x23,0x10,0x7f,0x6, 0x12,0x22,0xa3,0x7f,0x7, 0x12,0x23,0x10,0x7d,0x43,0xbe, +0x44,0x0, 0x0, 0x18,0x2, 0x6d,0x44,0x7c,0xb9,0xda,0x3b,0x22,0x1a,0x26,0x1a,0x24, +0x12,0x22,0xa3,0x7f,0x1, 0x22,0x2d,0x35,0x7e,0x1b,0x70,0xa, 0x57,0x22,0x7e,0x73, +0x78,0x2e,0xbe,0x71,0x2d,0x22,0xca,0xf8,0x7f,0x51,0x7f,0x40,0x7e,0x37,0x27,0x5a, +0x7a,0x37,0x64,0x4c,0x7e,0x37,0x27,0x58,0x7a,0x37,0x64,0x4e,0x7e,0x37,0x27,0x66, +0x7a,0x37,0x64,0x48,0x7e,0x37,0x27,0x68,0x7a,0x37,0x64,0x4a,0x6c,0xff,0x80,0x1e, +0x7e,0x34,0x64,0x48,0x7e,0x14,0x0, 0x28,0x74,0x9, 0x12,0x23,0x44,0x74,0x2, 0xac, +0xbf,0x7f,0x4, 0x2d,0x15,0x7f,0x15,0x2d,0x35,0x12,0xe2,0xc9,0xb, 0xf0,0x7e,0x73, +0x77,0x2c,0xbc,0x7f,0x38,0xda,0xda,0xf8,0x22,0x7f,0x71,0x7f,0x60,0x7e,0x35,0x28, +0xbe,0x34,0x0, 0x0, 0x38,0x7, 0x7e,0x34,0x0, 0x1, 0x7a,0x35,0x28,0x7e,0x35,0x2a, +0xbe,0x34,0x0, 0x0, 0x38,0x7, 0x7e,0x34,0x0, 0x1, 0x7a,0x35,0x2a,0xb, 0x6a,0x30, +0x9e,0x35,0x2c,0x6d,0x22,0x7e,0x33,0x77,0x2e,0x12,0xe3,0x1e,0x7e,0x15,0x28,0x12, +0x22,0xbd,0x1b,0x6a,0x30,0xb, 0x7a,0x30,0x9e,0x35,0x2e,0x6d,0x22,0x7e,0x33,0x77, +0x2f,0x12,0xe3,0x1e,0x7e,0x15,0x2a,0x12,0x22,0xbd,0x1b,0x7a,0x30,0x22,0xa, 0x13, +0x6d,0x0, 0x2, 0x22,0xa3,0xca,0x79,0x6c,0xaa,0x7e,0x90,0x2, 0xac,0x9a,0x7f,0x70, +0x2d,0xf4,0xb, 0x7a,0xf0,0x7d,0x7f,0x7c,0xbf,0xa, 0xfa,0x19,0xbf,0x77,0x30,0x7f, +0x71,0x2d,0xf4,0xb, 0x7a,0x40,0x7c,0xb9,0xa, 0x4a,0x19,0xb4,0x77,0x50,0xb, 0xa0, +0xbe,0xa0,0x20,0x40,0xd4,0x7e,0x8, 0x77,0x30,0x7e,0x18,0x77,0x50,0x74,0x20,0x12, +0xde,0xa9,0xda,0x79,0x22,0xca,0x3b,0x7f,0x61,0x7f,0x50,0x7e,0x73,0x77,0x2c,0xbe, +0x70,0x20,0x40,0x52,0x7e,0xf0,0x2, 0x80,0x3c,0xa, 0x3f,0x6d,0x22,0x74,0x5, 0x2f, +0x11,0x14,0x78,0xfb,0x7e,0x33,0x77,0x2c,0xa, 0x13,0x6d,0x0, 0x12,0x22,0xbf,0x7c, +0xe7,0xbe,0xe0,0x2, 0x50,0x3, 0x7e,0xe0,0x2, 0xa, 0x6f,0x1b,0x64,0xa, 0x3e,0x1b, +0x34,0x7c,0xc7,0x7f,0x5, 0x7c,0xbd,0x12,0xe3,0xcf,0x7f,0x6, 0x7c,0xbd,0x7c,0x7c, +0x12,0xe3,0xcf,0xb, 0xf0,0x7e,0x73,0x77,0x2c,0xbc,0x7f,0x50,0xbc,0x7f,0x5, 0x7f, +0x16,0x12,0xe3,0x25,0x80,0x6, 0x74,0x7e,0x7a,0xb3,0x77,0x2b,0xda,0x3b,0x22,0x7c, +0x97,0x7c,0xab,0x7f,0x10,0x7e,0x30,0x2, 0xac,0x3a,0x2d,0x13,0x7d,0x2, 0xb, 0xa, +0x10,0x7e,0x10,0x2, 0xac,0x19,0x7f,0x71,0x2d,0xf0,0xb, 0x7a,0x0, 0x7c,0x21,0xa5, +0xba,0x0, 0x14,0xa, 0x3, 0x1b,0x7a,0x0, 0xbc,0x9a,0x68,0x24,0x6d,0x44,0x74,0x2, +0xa4,0x2d,0x35,0x1b,0x1a,0x40,0x22,0xbc,0x9a,0x68,0x15,0xa, 0x2, 0xa, 0x13,0x2d, +0x10,0xe, 0x14,0x1b,0x7a,0x10,0x6d,0x11,0x74,0x2, 0xa4,0x2d,0x35,0x1b,0x1a,0x10, +0x22,0x74,0x9, 0xac,0xbe,0x49,0x35,0x6d,0x70,0x74,0x9, 0xac,0xbf,0x49,0x25,0x27, +0x75,0x9d,0x32,0x12,0x24,0x56,0x7d,0xc3,0x74,0x9, 0xac,0xbe,0x49,0x35,0x6d,0x6e, +0x74,0x9, 0xac,0xbf,0x49,0x25,0x27,0x73,0x9d,0x32,0x2, 0x24,0x56,0x7e,0xa0,0x5, +0x7e,0x70,0x4, 0xac,0x7f,0x19,0xa3,0x28,0xba,0x7e,0x70,0x9, 0xac,0x7f,0x2e,0x34, +0x27,0x73,0x7e,0x30,0x9, 0xac,0x3e,0x2e,0x14,0x6d,0x6e,0x74,0x9, 0x2, 0x23,0x44, +0x7e,0xa0,0x3, 0x7e,0x30,0x9, 0xac,0x3f,0x7e,0x1d,0x35,0x2d,0x31,0x7a,0x1b,0xa0, +0x7e,0x30,0x9, 0xac,0x3f,0x7e,0x1d,0x35,0x2d,0x31,0x22,0x74,0x9, 0xac,0xbf,0x7e, +0x1d,0x35,0x22,0x75,0x1e,0x2, 0x74,0x2, 0x7a,0xb3,0x77,0xe1,0x74,0x1, 0x2, 0x5, +0xbc,0x74,0x9, 0xac,0xbe,0x49,0xc5,0x6d,0x6e,0x7e,0x34,0x21,0xde,0x7e,0x24,0x0, +0xff,0xb, 0x1a,0x40,0x9e,0x44,0x0, 0x14,0xbd,0xc4,0x22,0x7a,0xb3,0x77,0x0, 0x7a, +0xb3,0x77,0x1, 0x7a,0xb3,0x77,0x4, 0x74,0xff,0x7a,0xb3,0x77,0x5, 0xe4,0x7a,0xb3, +0x77,0x6, 0x22,0x8d,0x32,0x7d,0x23,0x1e,0x24,0xe5,0x3f,0xa, 0x3b,0xad,0x32,0x7a, +0x35,0x2f,0x22,0x74,0x2, 0xa, 0x3c,0x19,0xb3,0x62,0x1f,0x22,0x7e,0x70,0x9, 0xac, +0x7e,0x9, 0xb3,0x6d,0x75,0x9, 0x73,0x6d,0x76,0x2, 0x57,0x9, 0x6d,0x22,0xa, 0xd, +0x7e,0x14,0x0, 0x40,0x9d,0x10,0x1a,0x2, 0x1a,0x0, 0x12,0x22,0xa3,0x7f,0x71,0x22, +0x7e,0x11,0x12,0x2e,0x10,0x8, 0xa5,0xe7,0xbe,0xb0,0x0, 0x22,0x49,0x35,0x6d,0x70, +0xbe,0x34,0x0, 0x14,0x22,0x2d,0x35,0x29,0xb1,0x0, 0x8, 0xbe,0xb0,0x2d,0x22,0x5e, +0x70,0x3, 0x7e,0x8, 0x0, 0x70,0x7c,0xb7,0x22,0x7e,0x70,0x27,0xac,0x67,0x2e,0x34, +0x28,0xe6,0x6d,0x22,0x7e,0x8, 0x76,0xad,0x22,0x7e,0x50,0x9, 0xac,0x5f,0x2e,0x25, +0x2b,0xb, 0x28,0x30,0x49,0x22,0x0, 0x2, 0x22,0x7e,0x37,0x63,0x28,0x7e,0x27,0x63, +0x2a,0x22,0x74,0x17,0xa4,0x7e,0x1d,0x33,0x2d,0x35,0x22,0x7e,0x70,0x9, 0xac,0x7f, +0x2e,0x35,0x2b,0x22,0x49,0x35,0x6d,0x70,0xbe,0x34,0x0, 0x0, 0x22,0x2e,0x34,0x0, +0x8, 0x4, 0x7a,0x1b,0xb0,0x22,0x74,0x9, 0xac,0xbe,0x9, 0xb5,0x6d,0x75,0x7e,0x70, +0x9, 0xac,0x7e,0x22,0x6d,0x22,0xa, 0x1d,0x6d,0x0, 0x12,0x22,0xa3,0x2f,0x17,0x74, +0x6, 0x22,0x7e,0x71,0x12,0x74,0x9, 0xac,0x7b,0x2e,0x34,0x27,0x73,0x6d,0x22,0x22, +0x49,0x35,0x29,0x92,0x49,0x25,0x29,0x90,0x2, 0x9, 0xad,0x6c,0xaa,0x7e,0x70,0x4, +0xac,0x7f,0x19,0xa3,0x28,0xba,0x22,0x2e,0x34,0x28,0xed,0x6d,0x22,0x74,0x10,0x2, +0xb, 0x8, 0x7a,0xb3,0x76,0xfd,0x74,0xff,0x7a,0xb3,0x76,0xfe,0xe4,0x22,0x7c,0x1f, +0x2e,0x10,0x8, 0xa5,0xe7,0x22,0x7e,0x27,0x4a,0x6d,0x4e,0x50,0x20,0x7a,0x27,0x4a, +0x6d,0x22,0x74,0x1, 0x7a,0xb3,0x76,0x31,0x7a,0xb3,0x77,0xfa,0x22,0x74,0x9, 0xac, +0xbf,0x49,0x25,0x27,0x73,0x4d,0x22,0x22,0x9e,0xc4,0x0, 0x14,0xbd,0x3c,0x22,0x7e, +0x37,0x73,0x21,0xb, 0x36,0xbe,0x35,0x2b,0x22,0x7e,0x70,0x2, 0xac,0x7e,0x9, 0xb3, +0x6b,0x54,0x22,0xa, 0x3c,0x9, 0xa3,0x62,0x15,0x22,0xa, 0x3c,0x9, 0xb3,0x62,0x1f, +0x22,0x7a,0x37,0x6e,0x91,0x7e,0x34,0x21,0x63,0x22,0xb, 0xf5,0xb, 0x55,0xb, 0x15, +0x1b,0x34,0x22,0x74,0x27,0xac,0xbe,0x9, 0xf5,0x28,0xea,0x22,0x49,0x13,0x74,0x96, +0x49,0x3, 0x74,0x94,0x22,0x74,0x17,0xa4,0x7e,0xd, 0x33,0x2d,0x15,0x22,0x7e,0x37, +0x63,0x54,0xbe,0x34,0x0, 0x1e,0x22,0x7e,0x27,0x63,0x24,0xbe,0x24,0x0, 0x14,0x22, +0x7e,0x34,0x0, 0x17,0xe4,0x2, 0x24,0x34,0x74,0x2, 0xac,0xbf,0x9, 0x5, 0x62,0xb8, +0x22,0x7e,0x3f,0x78,0x39,0x69,0x33,0x0, 0x6, 0x22,0x75,0x1e,0x0, 0xe4,0x7a,0xb3, +0x77,0xe1,0x22,0x74,0x9, 0xac,0xbe,0x49,0x45,0x6d,0x6e,0x22,0x49,0x45,0x6d,0x70, +0xbe,0x44,0x0, 0x14,0x22,0x7e,0x1f,0x24,0x68,0x7a,0x37,0x4e,0x7f,0x22,0x7a,0x35, +0x3b,0xbe,0x34,0x0, 0x0, 0x22,0x7e,0x73,0x63,0x1d,0xbe,0x70,0xa, 0x22,0x7e,0x34, +0x0, 0x64,0x7a,0x35,0x3d,0x22,0x7e,0x39,0xb0,0x14,0x7a,0x39,0xb0,0x22,0x9d,0x32, +0x12,0x24,0x56,0x7d,0x13,0x22, \ No newline at end of file diff --git a/drivers/input/touchscreen/FT8716/include/firmware/FT8716_app_ebbg_sample.i b/drivers/input/touchscreen/FT8716/include/firmware/FT8716_app_ebbg_sample.i new file mode 100644 index 0000000000000..f66153565f32d --- /dev/null +++ b/drivers/input/touchscreen/FT8716/include/firmware/FT8716_app_ebbg_sample.i @@ -0,0 +1,3700 @@ +0x2, 0x23,0x8a,0x2, 0xd7,0xf5,0x1b,0xa, 0x30,0x22,0x22,0x2, 0x0, 0x1a,0x0, 0x1, +0x1, 0x0, 0x22,0x2, 0x77,0xf8,0xeb,0xaa,0x8, 0x22,0x32,0x2, 0x71,0x13,0x0, 0x0, +0x0, 0xff,0xff,0x2, 0x49,0xfa,0x2, 0x37,0x9e,0xff,0xff,0x2, 0x78,0xdc,0xca,0x3b, +0x7d,0x72,0x7d,0x63,0x7d,0x27,0x12,0x6, 0x48,0x7d,0x36,0x7d,0x27,0x12,0x6, 0xc5, +0xda,0x3b,0x22,0x2, 0x78,0xf4,0x7f,0x71,0xa9,0xd6,0xcb,0x69,0x30,0x0, 0x4, 0x7e, +0x6f,0x78,0xee,0x79,0x36,0x0, 0x4, 0x69,0x30,0x0, 0x6, 0x7e,0x6f,0x78,0xee,0x79, +0x36,0x0, 0x6, 0x69,0x30,0x0, 0x8, 0x7e,0x6f,0x78,0xee,0x79,0x36,0x0, 0x8, 0x7e, +0x7b,0xa0,0x7c,0x6a,0x6c,0x77,0x7e,0x6f,0x78,0xee,0x79,0x36,0x0, 0xe, 0x7c,0x4b, +0x6c,0x55,0xe5,0x27,0xa, 0x3b,0x4d,0x32,0x7e,0x2f,0x78,0xee,0x79,0x32,0x0, 0x10, +0x29,0x77,0x0, 0x2, 0xa, 0x37,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x29,0x57, +0x0, 0x4, 0x7c,0x46,0x4c,0x57,0x7e,0x2f,0x78,0xee,0x2e,0x54,0x0, 0xe, 0xb, 0x2a, +0x30,0x4d,0x32,0x1b,0x2a,0x30,0x29,0x77,0x0, 0x1, 0x7c,0x47,0x6c,0x55,0x29,0x77, +0x0, 0x3, 0x7c,0x64,0x7e,0x2f,0x78,0xee,0x79,0x32,0x0, 0xa, 0x7e,0xb, 0x70,0x7c, +0x47,0x29,0x70,0x0, 0x1, 0xa, 0x37,0x2d,0x32,0x7e,0xf, 0x78,0xee,0x79,0x30,0x0, +0xc, 0x6d,0x11,0x7e,0x1f,0x78,0xee,0x1b,0x1a,0x10,0x7e,0x34,0x0, 0x30,0x12,0xa, +0x5e,0xa9,0xc6,0xcb,0x22,0x1, 0x2, 0x4, 0x8, 0x10,0x20,0x40,0x80,0xb2,0x86,0x22, +0xe7,0x40,0x18,0xbf,0x4a,0xda,0xb5,0x25,0x7f,0x1d,0x80,0xe2,0xd0,0x2f,0x9, 0xf6, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x87,0xa6, +0xca,0x3b,0x7f,0x30,0x7e,0x3b,0xb0,0xf5,0x2a,0x29,0xb3,0x0, 0x1, 0xbe,0xb1,0x2a, +0x28,0x2, 0xf5,0x2a,0x69,0x13,0x0, 0x6, 0x6d,0x0, 0x7e,0x34,0x0, 0xf2,0x74,0xff, +0x12,0x24,0x38,0x7f,0x3, 0x12,0xa, 0x6, 0xa9,0xd6,0xcb,0x75,0x28,0x0, 0x80,0x33, +0x75,0x29,0x0, 0x80,0x23,0x7e,0x11,0x28,0x74,0xb, 0xac,0x1b,0xe5,0x29,0xa, 0x1b, +0x2d,0x1, 0x3e,0x4, 0x69,0x13,0x0, 0x6, 0x2d,0x10,0x6d,0x0, 0xb, 0xa, 0x30,0x6e, +0x34,0xff,0xff,0x1b,0xa, 0x30,0x5, 0x29,0x29,0x73,0x0, 0x1, 0xbe,0x71,0x29,0x38, +0xd4,0x5, 0x28,0x7e,0x3b,0x70,0xbe,0x71,0x28,0x38,0xc5,0x69,0x33,0x0, 0x6, 0x7e, +0xf, 0x78,0xee,0x79,0x30,0x0, 0x4, 0xe5,0x2a,0xa, 0x2b,0x7d,0x32,0x7c,0x67,0x6c, +0x77,0x2d,0x32,0x7e,0xf, 0x78,0xee,0x79,0x30,0x0, 0xc, 0x6d,0x11,0x7e,0x1f,0x78, +0xee,0x1b,0x1a,0x10,0x7e,0x34,0x0, 0xd0,0x12,0xa, 0x5e,0x75,0x28,0x0, 0xe5,0x28, +0xbe,0xb0,0x4, 0x50,0x17,0x7e,0xa1,0x28,0x74,0x4, 0xa4,0x7e,0x1f,0x78,0xee,0x69, +0x11,0x0, 0x26,0x60,0x44,0x1e,0x14,0x14,0x78,0xfb,0x80,0x3d,0xe5,0x28,0xbe,0xb0, +0x8, 0x50,0x1b,0xe5,0x28,0xa, 0x5b,0x1b,0x56,0x3e,0x54,0x3e,0x54,0x7e,0x1f,0x78, +0xee,0x69,0x11,0x0, 0x28,0x60,0x22,0x1e,0x14,0x14,0x78,0xfb,0x80,0x1b,0xe5,0x28, +0xa, 0x5b,0x9e,0x54,0x0, 0x8, 0x3e,0x54,0x3e,0x54,0x7e,0x1f,0x78,0xee,0x69,0x11, +0x0, 0x2a,0x60,0x5, 0x1e,0x14,0x14,0x78,0xfb,0x5e,0x14,0x0, 0xf, 0x7e,0xa1,0x28, +0x74,0x2, 0xa4,0x69,0x33,0x0, 0x6, 0x2d,0x35,0x6d,0x22,0x1b,0x1a,0x10,0x5, 0x28, +0xe5,0x28,0xbe,0xb0,0xb, 0x40,0x87,0xa9,0xc6,0xcb,0xda,0x3b,0x22,0x6d,0x33,0x7e, +0xf, 0x78,0xf2,0x79,0x30,0x0, 0x12,0x7e,0xf, 0x78,0xf2,0x2e,0x14,0x0, 0x14,0xb, +0xa, 0x30,0x5e,0x60,0x7f,0x1b,0xa, 0x30,0xe5,0x38,0x54,0x1f,0xa, 0x2b,0x7e,0xf, +0x78,0xf2,0x2e,0x14,0x0, 0x12,0xb, 0xa, 0x30,0x4d,0x32,0x1b,0xa, 0x30,0xe5,0x39, +0x54,0x1, 0xa, 0x2b,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x7e,0xf, +0x78,0xf2,0x2e,0x14,0x0, 0x12,0xb, 0xa, 0x30,0x4d,0x32,0x1b,0xa, 0x30,0xe5,0x3a, +0x54,0x3, 0xa, 0x2b,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24, +0x7e,0xf, 0x78,0xf2,0x2e,0x14,0x0, 0x12,0xb, 0xa, 0x30,0x4d,0x32,0x1b,0xa, 0x30, +0x7e,0x35,0x36,0xbe,0x34,0x0, 0x2, 0x78,0x63,0x7e,0xf, 0x78,0xf2,0x2e,0x14,0x0, +0x14,0xb, 0xa, 0x30,0x4e,0x60,0x80,0x1b,0xa, 0x30,0xe5,0x3b,0x54,0x1f,0x7c,0x4b, +0x6c,0x55,0x7e,0xf, 0x78,0xf2,0x2e,0x14,0x0, 0x12,0xb, 0xa, 0x30,0x4d,0x32,0x1b, +0xa, 0x30,0xe5,0x3c,0x54,0x1, 0xa, 0x5b,0xc4,0x23,0x54,0xe0,0x7c,0xab,0xe4,0x7e, +0xf, 0x78,0xf2,0x2e,0x14,0x0, 0x12,0xb, 0xa, 0x30,0x4d,0x35,0x1b,0xa, 0x30,0xe5, +0x3d,0x54,0x3, 0xa, 0x5b,0x3, 0x3, 0x54,0xc0,0x7c,0xab,0xe4,0x7e,0xf, 0x78,0xf2, +0x2e,0x14,0x0, 0x12,0xb, 0xa, 0x30,0x4d,0x35,0x1b,0xa, 0x30,0x22,0x7f,0x21,0xa9, +0xd6,0xcb,0x69,0x30,0x0, 0x4, 0x7e,0x7f,0x78,0xee,0x79,0x37,0x0, 0x4, 0x69,0x30, +0x0, 0x8, 0x7e,0x7f,0x78,0xee,0x79,0x37,0x0, 0x6, 0x69,0x30,0x0, 0x6, 0x7e,0x7f, +0x78,0xee,0x79,0x37,0x0, 0x8, 0x29,0x70,0x0, 0x1, 0x7c,0x47,0x6c,0x55,0x7e,0xb, +0x70,0xa, 0x37,0x2d,0x32,0x7e,0x7f,0x78,0xee,0x79,0x37,0x0, 0xc, 0x29,0x70,0x0, +0x2, 0xa, 0x37,0x1b,0x34,0x7e,0x7f,0x78,0xee,0x79,0x37,0x0, 0xa, 0x69,0x30,0x0, +0xa, 0x7e,0x7f,0x78,0xee,0x79,0x37,0x0, 0xe, 0x69,0x30,0x0, 0xc, 0x7e,0x7f,0x78, +0xee,0x79,0x37,0x0, 0x10,0x69,0x30,0x0, 0xe, 0x7e,0x7f,0x78,0xee,0x79,0x37,0x0, +0x12,0x69,0x30,0x0, 0x10,0x7e,0x7f,0x78,0xee,0x79,0x37,0x0, 0x30,0x29,0x70,0x0, +0x3, 0x7c,0x27,0x6c,0x33,0x7e,0x1f,0x78,0xee,0x1b,0x1a,0x10,0x7e,0x34,0x0, 0xa0, +0x12,0xa, 0x5e,0x7e,0x1f,0x78,0xee,0x69,0x11,0x0, 0x1a,0x7a,0x2b,0x30,0x69,0x11, +0x0, 0x1c,0x39,0x32,0x0, 0x1, 0x69,0x11,0x0, 0x16,0x79,0x12,0x0, 0x2, 0x69,0x11, +0x0, 0x18,0x79,0x12,0x0, 0x4, 0x69,0x11,0x0, 0x22,0x79,0x12,0x0, 0x6, 0x69,0x11, +0x0, 0x24,0x79,0x12,0x0, 0x8, 0x69,0x11,0x0, 0x1e,0x79,0x12,0x0, 0xa, 0x69,0x31, +0x0, 0x20,0x79,0x32,0x0, 0xc, 0xa9,0xc6,0xcb,0x22,0xca,0x3b,0x7a,0x25,0x4c,0x7f, +0x30,0x7a,0x35,0x4a,0xa2,0xac,0x92,0x9, 0xc2,0xac,0x7e,0x1f,0x78,0xf2,0x69,0x31, +0x0, 0x4, 0x5e,0x34,0x10,0x0, 0x7a,0x37,0x6b,0xe7,0xc2,0xa, 0x12,0xc, 0x17,0xa2, +0x9, 0x92,0xac,0xa9,0xd3,0xcb,0xa9,0xd5,0xcb,0x7e,0x34,0x0, 0x1, 0x7e,0xf, 0x3, +0xf2,0x79,0x30,0x0, 0x6, 0x7e,0xf, 0x3, 0xf2,0x69,0x30,0x0, 0x6, 0x4d,0x33,0x78, +0xf4,0x7e,0x35,0x4a,0x2e,0x34,0x80,0x0, 0x1b,0xa, 0x30,0x7e,0x1f,0x3, 0xf2,0x69, +0x31,0x0, 0x8, 0x4d,0x33,0x68,0xf4,0x6d,0x33,0x80,0x20,0x7d,0x23,0x3e,0x24,0x7f, +0x3, 0x2d,0x12,0xb, 0xa, 0x20,0x7e,0xf, 0x3, 0xf2,0x1b,0xa, 0x20,0x7e,0xf, 0x3, +0xf2,0x69,0x20,0x0, 0x8, 0x4d,0x22,0x68,0xf4,0xb, 0x34,0xbe,0x35,0x4c,0x40,0xdb, +0xa9,0xc5,0xcb,0xa9,0xc3,0xcb,0x7e,0x37,0x6b,0xe7,0x2e,0x34,0xff,0xff,0x92,0xa, +0x12,0xc, 0x17,0xda,0x3b,0x22,0xca,0x3b,0x7a,0x25,0x4c,0x7f,0x30,0x7a,0x35,0x4a, +0xa2,0xac,0x92,0x9, 0xc2,0xac,0x7e,0x1f,0x78,0xf2,0x69,0x31,0x0, 0x4, 0x5e,0x34, +0x10,0x0, 0x7a,0x37,0x6b,0xe7,0xc2,0xa, 0x12,0xc, 0x17,0xa2,0x9, 0x92,0xac,0xd2, +0xcd,0xa9,0xd5,0xcb,0x7e,0x34,0x0, 0x1, 0x7e,0xf, 0x3, 0xf6,0x79,0x30,0x0, 0x6, +0x7e,0xf, 0x3, 0xf6,0x69,0x30,0x0, 0x6, 0x4d,0x33,0x78,0xf4,0x7e,0x35,0x4a,0x2e, +0x34,0x80,0x0, 0x1b,0xa, 0x30,0x7e,0x1f,0x3, 0xf6,0x69,0x31,0x0, 0x8, 0x4d,0x33, +0x68,0xf4,0x6d,0x33,0x80,0x20,0x7d,0x23,0x3e,0x24,0x7f,0x3, 0x2d,0x12,0xb, 0xa, +0x20,0x7e,0xf, 0x3, 0xf6,0x1b,0xa, 0x20,0x7e,0xf, 0x3, 0xf6,0x69,0x20,0x0, 0x8, +0x4d,0x22,0x68,0xf4,0xb, 0x34,0xbe,0x35,0x4c,0x40,0xdb,0xa9,0xc5,0xcb,0xc2,0xcd, +0x7e,0x37,0x6b,0xe7,0x2e,0x34,0xff,0xff,0x92,0xa, 0x12,0xc, 0x17,0xda,0x3b,0x22, +0xca,0x79,0x7c,0xab,0x6d,0x77,0x7e,0xf, 0x78,0xf2,0x69,0x30,0x0, 0x6, 0x5e,0x34, +0x0, 0x2, 0x68,0x18,0x2e,0x14,0x0, 0xe, 0xb, 0xa, 0x30,0x5e,0x70,0xfb,0x1b,0xa, +0x30,0x74,0x3, 0x7a,0xb3,0x78,0x97,0x75,0x1e,0x3, 0x80,0x3, 0xe4,0x80,0x5a,0x4c, +0xaa,0x68,0x54,0x80,0x44,0x7e,0x1f,0x78,0xf2,0x69,0x31,0x0, 0x6, 0x5e,0x34,0x0, +0x1, 0x78,0xa, 0xe4,0x7a,0xb3,0x78,0x97,0x75,0x1e,0x0, 0x80,0x3c,0x7e,0x34,0x0, +0x1, 0x12,0x6a,0xa6,0xb, 0x74,0xbe,0x74,0x3, 0xe8,0x28,0x1d,0x7e,0xf, 0x78,0xf2, +0x2e,0x14,0x0, 0xe, 0xb, 0xa, 0x30,0x4e,0x70,0x4, 0x1b,0xa, 0x30,0x74,0x2, 0x7a, +0xb3,0x78,0x97,0x75,0x1e,0x2, 0xe4,0x80,0x10,0x7e,0x1f,0x78,0xf2,0x69,0x31,0x0, +0xe, 0x5e,0x34,0x0, 0x3, 0x78,0xae,0x74,0x1, 0xda,0x79,0x22,0xca,0x79,0x7c,0xab, +0x6d,0x77,0x7e,0xf, 0x78,0xf2,0x69,0x30,0x0, 0x6, 0x5e,0x34,0x0, 0x2, 0x68,0x18, +0x2e,0x14,0x0, 0xe, 0xb, 0xa, 0x30,0x4e,0x70,0x4, 0x1b,0xa, 0x30,0x74,0x2, 0x7a, +0xb3,0x78,0x97,0x75,0x1e,0x2, 0x80,0x3, 0xe4,0x80,0x5a,0x4c,0xaa,0x68,0x54,0x80, +0x44,0x7e,0x1f,0x78,0xf2,0x69,0x31,0x0, 0x6, 0x5e,0x34,0x0, 0x1, 0x78,0xa, 0xe4, +0x7a,0xb3,0x78,0x97,0x75,0x1e,0x0, 0x80,0x3c,0x7e,0x34,0x0, 0x1, 0x12,0x6a,0xa6, +0xb, 0x74,0xbe,0x74,0x3, 0xe8,0x28,0x1d,0x7e,0xf, 0x78,0xf2,0x2e,0x14,0x0, 0xe, +0xb, 0xa, 0x30,0x5e,0x70,0xfb,0x1b,0xa, 0x30,0x74,0x3, 0x7a,0xb3,0x78,0x97,0x75, +0x1e,0x3, 0xe4,0x80,0x10,0x7e,0x1f,0x78,0xf2,0x69,0x31,0x0, 0xe, 0x5e,0x34,0x0, +0x8, 0x68,0xae,0x74,0x1, 0xda,0x79,0x22,0xca,0x3b,0x7d,0x72,0x7d,0x63,0xa2,0xac, +0x92,0x3, 0xc2,0xac,0x7e,0x1f,0x78,0xf2,0x69,0x31,0x0, 0x4, 0x5e,0x34,0x10,0x0, +0x7a,0x37,0x67,0xd3,0xc2,0xa, 0x12,0xc, 0x17,0xa2,0x3, 0x92,0xac,0xa9,0xd3,0xcb, +0xa9,0xd5,0xcb,0x7e,0x34,0x0, 0x1, 0x7e,0xf, 0x3, 0xf2,0x79,0x30,0x0, 0x6, 0x7e, +0xf, 0x3, 0xf2,0x69,0x30,0x0, 0x6, 0x4d,0x33,0x78,0xf4,0x7d,0x36,0x2e,0x34,0x80, +0x0, 0x1b,0xa, 0x30,0x7e,0x1f,0x3, 0xf2,0x69,0x11,0x0, 0x8, 0x4d,0x11,0x68,0xf4, +0x1b,0x1a,0x70,0x7e,0x1f,0x3, 0xf2,0x69,0x31,0x0, 0x8, 0x4d,0x33,0x68,0xf4,0xa9, +0xc5,0xcb,0xa9,0xc3,0xcb,0x7e,0x37,0x67,0xd3,0x2e,0x34,0xff,0xff,0x92,0xa, 0x12, +0xc, 0x17,0xda,0x3b,0x22,0xca,0x3b,0x7d,0x72,0x7d,0x63,0xa2,0xac,0x92,0x3, 0xc2, +0xac,0x7e,0x1f,0x78,0xf2,0x69,0x31,0x0, 0x4, 0x5e,0x34,0x10,0x0, 0x7a,0x37,0x67, +0xd3,0xc2,0xa, 0x12,0xc, 0x17,0xa2,0x3, 0x92,0xac,0xd2,0xcd,0xa9,0xd5,0xcb,0x7e, +0x34,0x0, 0x1, 0x7e,0xf, 0x3, 0xf6,0x79,0x30,0x0, 0x6, 0x7e,0xf, 0x3, 0xf6,0x69, +0x30,0x0, 0x6, 0x4d,0x33,0x78,0xf4,0x7d,0x36,0x2e,0x34,0x80,0x0, 0x1b,0xa, 0x30, +0x7e,0x1f,0x3, 0xf6,0x69,0x11,0x0, 0x8, 0x4d,0x11,0x68,0xf4,0x1b,0x1a,0x70,0x7e, +0x1f,0x3, 0xf6,0x69,0x31,0x0, 0x8, 0x4d,0x33,0x68,0xf4,0xa9,0xc5,0xcb,0xc2,0xcd, +0x7e,0x37,0x67,0xd3,0x2e,0x34,0xff,0xff,0x92,0xa, 0x12,0xc, 0x17,0xda,0x3b,0x22, +0xca,0x3b,0x7d,0x73,0xa2,0xac,0x92,0x0, 0xc2,0xac,0x7e,0x1f,0x78,0xf2,0x69,0x61, +0x0, 0x4, 0x5e,0x64,0x10,0x0, 0xc2,0xa, 0x12,0xc, 0x17,0xa2,0x0, 0x92,0xac,0xa9, +0xd3,0xcb,0xa9,0xd5,0xcb,0x7e,0x34,0x0, 0x1, 0x7e,0xf, 0x3, 0xf2,0x79,0x30,0x0, +0x6, 0x7e,0x1f,0x3, 0xf2,0x69,0x11,0x0, 0x6, 0x4d,0x11,0x78,0xf4,0x1b,0x1a,0x70, +0x7e,0xf, 0x3, 0xf2,0x69,0x30,0x0, 0x8, 0x4d,0x33,0x68,0xf4,0x6d,0x33,0x1b,0xa, +0x30,0x7e,0x1f,0x3, 0xf2,0x69,0x11,0x0, 0x8, 0x4d,0x11,0x68,0xf4,0x69,0x71,0x0, +0x2, 0xa9,0xc5,0xcb,0xa9,0xc3,0xcb,0x2e,0x64,0xff,0xff,0x92,0xa, 0x12,0xc, 0x17, +0x7d,0x37,0xda,0x3b,0x22,0x7e,0x8, 0x1, 0x7d,0x7e,0x34,0x0, 0x18,0xe4,0x12,0x24, +0x38,0xa9,0xd1,0xcb,0xd2,0xcc,0x7e,0x34,0x0, 0x4, 0x7e,0x8, 0x1, 0x7d,0x74,0xc, +0x12,0xa, 0xb5,0xa9,0xd1,0xcb,0xc2,0xcc,0x6c,0xaa,0x7e,0x70,0x2, 0xac,0x7a,0x7e, +0x8, 0x1, 0x7d,0x2d,0x13,0xb, 0xa, 0x20,0x7c,0x45,0x6c,0x55,0xb, 0xa, 0x30,0xa, +0x36,0x4d,0x32,0x1b,0xa, 0x30,0xb, 0xa0,0xbe,0xa0,0xc, 0x40,0xdd,0x22,0xff,0xff, +0xca,0x3b,0x7d,0x73,0xa2,0xac,0x92,0x0, 0xc2,0xac,0x7e,0x1f,0x78,0xf2,0x69,0x61, +0x0, 0x4, 0x5e,0x64,0x10,0x0, 0xc2,0xa, 0x12,0xc, 0x17,0xa2,0x0, 0x92,0xac,0xd2, +0xcd,0xa9,0xd5,0xcb,0x7e,0x34,0x0, 0x1, 0x7e,0xf, 0x3, 0xf6,0x79,0x30,0x0, 0x6, +0x7e,0x1f,0x3, 0xf6,0x69,0x11,0x0, 0x6, 0x4d,0x11,0x78,0xf4,0x1b,0x1a,0x70,0x7e, +0xf, 0x3, 0xf6,0x69,0x30,0x0, 0x8, 0x4d,0x33,0x68,0xf4,0x6d,0x33,0x1b,0xa, 0x30, +0x7e,0x1f,0x3, 0xf6,0x69,0x11,0x0, 0x8, 0x4d,0x11,0x68,0xf4,0x69,0x71,0x0, 0x2, +0xa9,0xc5,0xcb,0xc2,0xcd,0x2e,0x64,0xff,0xff,0x92,0xa, 0x12,0xc, 0x17,0x7d,0x37, +0xda,0x3b,0x22,0xa9,0xd6,0xcb,0x69,0x30,0x0, 0x6, 0x7e,0x2f,0x78,0xee,0x79,0x32, +0x0, 0x4, 0x69,0x30,0x0, 0x8, 0x7e,0x2f,0x78,0xee,0x79,0x32,0x0, 0x8, 0x29,0x70, +0x0, 0x2, 0x7c,0x47,0x6c,0x55,0x29,0x70,0x0, 0x3, 0xa, 0x37,0x2d,0x32,0x7e,0x2f, +0x78,0xee,0x79,0x32,0x0, 0xc, 0x7e,0xb, 0x70,0x7c,0x47,0x29,0x70,0x0, 0x1, 0xa, +0x37,0x2d,0x32,0x7e,0x2f,0x78,0xee,0x79,0x32,0x0, 0xa, 0x29,0x70,0x0, 0x4, 0xa, +0x37,0x7e,0x2f,0x78,0xee,0x79,0x32,0x0, 0xe, 0x29,0xb0,0x0, 0x5, 0x54,0x1, 0x7c, +0x2b,0x6c,0x33,0x7e,0x1f,0x78,0xee,0x1b,0x1a,0x10,0x7e,0x34,0x0, 0xc0,0x12,0xa, +0x5e,0xa9,0xc6,0xcb,0x22,0xa9,0xd6,0xcb,0xc2,0x32,0x69,0x30,0x0, 0x4, 0x7e,0x2f, +0x78,0xee,0x79,0x32,0x0, 0x4, 0x69,0x30,0x0, 0x6, 0x7e,0x2f,0x78,0xee,0x79,0x32, +0x0, 0x6, 0x69,0x30,0x0, 0x8, 0x7e,0x2f,0x78,0xee,0x79,0x32,0x0, 0x8, 0x7e,0xb, +0x70,0x7c,0x47,0x6c,0x55,0x29,0x70,0x0, 0x1, 0xa, 0x37,0x2d,0x32,0x7e,0x2f,0x78, +0xee,0x79,0x32,0x0, 0xc, 0x29,0x70,0x0, 0x2, 0xa, 0x37,0x7e,0x2f,0x78,0xee,0x79, +0x32,0x0, 0xe, 0x29,0xb0,0x0, 0x3, 0x54,0x1, 0xa, 0x5b,0x7c,0xab,0xe4,0x7e,0x1f, +0x78,0xee,0x1b,0x1a,0x50,0x69,0x30,0x0, 0xa, 0x12,0xa, 0x5e,0xa9,0xc6,0xcb,0x22, +0xa9,0xd6,0xcb,0x69,0x20,0x0, 0x4, 0x7e,0x2f,0x78,0xee,0x79,0x22,0x0, 0x4, 0x69, +0x20,0x0, 0x8, 0x7e,0x2f,0x78,0xee,0x79,0x22,0x0, 0x8, 0x7e,0xb, 0x50,0xa, 0x55, +0x7c,0xab,0xe4,0x29,0x50,0x0, 0x1, 0xa, 0x25,0x2d,0x25,0x7e,0x2f,0x78,0xee,0x79, +0x22,0x0, 0xc, 0x29,0x50,0x0, 0x2, 0xa, 0x25,0x7e,0xf, 0x78,0xee,0x79,0x20,0x0, +0xe, 0x7e,0xf, 0x78,0xee,0x79,0x30,0x0, 0xa, 0x6d,0x11,0x7e,0x1f,0x78,0xee,0x1b, +0x1a,0x10,0x7e,0x34,0x0, 0x40,0x12,0xa, 0x5e,0xa9,0xc6,0xcb,0x22,0xca,0x3b,0x6c, +0xaa,0x7e,0x90,0x2, 0xac,0x9a,0x7f,0x70,0x2d,0xf4,0xb, 0x7a,0x40,0x5e,0x80,0x3, +0x1b,0x7a,0x40,0x7e,0x90,0x6, 0xac,0x9a,0x7c,0xb9,0x7f,0x71,0x60,0xd, 0x1e,0xf4, +0x1e,0xe4,0x50,0x4, 0x4e,0xf4,0x80,0x0, 0x14,0x78,0xf3,0x7d,0x4f,0x5e,0x44,0x0, +0x3f,0x7d,0x74,0x7c,0xef,0x6c,0xff,0x3e,0x74,0x3e,0x74,0x7e,0xd0,0x2, 0xac,0xda, +0x7f,0x60,0x2d,0xd6,0xb, 0x6a,0xf0,0x4d,0xf7,0x1b,0x6a,0xf0,0xb, 0xa0,0xbe,0xa0, +0x4, 0x40,0xae,0xda,0x3b,0x22,0x7f,0x10,0xa9,0xd6,0xcb,0x69,0x11,0x0, 0x2, 0x7e, +0x2f,0x78,0xee,0x79,0x12,0x0, 0x4, 0x69,0x11,0x0, 0x4, 0x7e,0x2f,0x78,0xee,0x79, +0x12,0x0, 0x6, 0x69,0x11,0x0, 0x6, 0x7e,0x2f,0x78,0xee,0x79,0x12,0x0, 0x8, 0x7e, +0x1b,0x30,0xa, 0x3, 0x7e,0x14,0x1, 0x0, 0xad,0x10,0x29,0x71,0x0, 0x1, 0xa, 0x37, +0x2d,0x31,0x7e,0xf, 0x78,0xee,0x79,0x30,0x0, 0xc, 0x6d,0x11,0x7e,0x1f,0x78,0xee, +0x1b,0x1a,0x10,0x7e,0x34,0x0, 0x60,0x12,0xa, 0x5e,0xa9,0xc6,0xcb,0x22,0xa9,0xd7, +0xcb,0x7d,0x23,0x4e,0x50,0x1, 0x7e,0xf, 0x78,0xee,0xb, 0xa, 0x30,0x4d,0x32,0x1b, +0xa, 0x30,0x80,0x1e,0x7e,0xf, 0x78,0xee,0xb, 0xa, 0x30,0x7d,0x23,0x5e,0x24,0x0, +0x8, 0xbe,0x24,0x0, 0x8, 0x78,0xb, 0xa9,0xd7,0xcb,0x4e,0x70,0x4, 0x1b,0xa, 0x30, +0xd2,0x32,0x7e,0xf, 0x78,0xee,0xb, 0xa, 0x30,0x7d,0x23,0x5e,0x24,0x80,0x0, 0xbe, +0x24,0x80,0x0, 0x78,0xcf,0x4e,0x60,0x40,0x1b,0xa, 0x30,0x6d,0x11,0x7e,0x1f,0x78, +0xee,0x1b,0x1a,0x10,0x22,0x7e,0x24,0x0, 0x1, 0x7e,0x7f,0x3, 0xfa,0x79,0x27,0x0, +0x6, 0x7e,0x7f,0x3, 0xfa,0x69,0x27,0x0, 0x6, 0x4d,0x22,0x78,0xf4,0x5e,0x60,0x7f, +0x1b,0x7a,0x30,0x7e,0x1f,0x3, 0xfa,0x69,0x31,0x0, 0x8, 0x4d,0x33,0x68,0xf4,0x6c, +0xaa,0x80,0x20,0x6d,0x44,0x7e,0x1f,0x3, 0xfa,0x1b,0x1a,0x40,0x7e,0x1f,0x3, 0xfa, +0x69,0x41,0x0, 0x8, 0x4d,0x44,0x68,0xf4,0x69,0x41,0x0, 0x2, 0x1b,0xa, 0x40,0xb, +0x15,0xb, 0xa0,0xbc,0xba,0x38,0xdc,0x22,0xca,0x79,0x7c,0xab,0x6c,0x99,0x80,0x2d, +0x7e,0xf0,0x2, 0xac,0xf9,0x7f,0x60,0x2d,0xd7,0xb, 0x6a,0xf0,0x5e,0xf4,0xfc,0x0, +0x1b,0x6a,0xf0,0x7f,0x71,0x2d,0xf7,0xb, 0x7a,0xe0,0x7e,0xf0,0x2, 0xac,0xf9,0x7f, +0x60,0x2d,0xd7,0xb, 0x6a,0xf0,0x4d,0xfe,0x1b,0x6a,0xf0,0xb, 0x90,0xbc,0xa9,0x38, +0xcf,0xda,0x79,0x22,0xb, 0x38,0x20,0x5e,0x50,0xc0,0x1b,0x38,0x20,0xb, 0xa, 0x20, +0x5e,0x40,0x7, 0x1b,0xa, 0x20,0xe5,0x2a,0xa, 0x5b,0xb, 0x38,0x20,0x4d,0x25,0x1b, +0x38,0x20,0xe5,0x29,0xa, 0x3b,0x7d,0x23,0x7c,0x45,0x6c,0x55,0x3e,0x24,0x3e,0x24, +0x3e,0x24,0xb, 0xa, 0x30,0x4d,0x32,0x1b,0xa, 0x30,0x22,0xa9,0xd6,0xcb,0x54,0x3f, +0x5e,0x70,0x1f,0x7e,0x14,0x0, 0x1, 0x7e,0x7f,0x78,0xee,0x79,0x17,0x0, 0x2, 0x7c, +0x2b,0x6c,0x33,0xa, 0x37,0x2d,0x31,0x7e,0xf, 0x78,0xee,0x79,0x30,0x0, 0x32,0x7e, +0xf, 0x78,0xee,0x79,0x20,0x0, 0x14,0xa9,0xc6,0xcb,0x12,0x7, 0xb5,0x2, 0xd, 0x59, +0x30,0x2a,0x31,0xa9,0xd2,0xea,0xa9,0xc2,0xea,0x6d,0x33,0x7e,0xf, 0x78,0xf2,0x79, +0x30,0x0, 0x16,0x7e,0x34,0x1, 0x2c,0x7e,0xf, 0x78,0xf2,0x79,0x30,0x0, 0x18,0xc2, +0x2a,0x7e,0xf, 0x78,0xf2,0x2e,0x14,0x0, 0x14,0xb, 0xa, 0x30,0x5e,0x70,0xfb,0x1b, +0xa, 0x30,0xc2,0x29,0x22,0xa2,0xac,0x92,0x9, 0x7e,0xf, 0x78,0xf2,0xb, 0xa, 0x30, +0x5e,0x34,0x10,0x0, 0x68,0xb, 0xb, 0x15,0xb, 0xa, 0x30,0x4e,0x60,0x10,0x1b,0xa, +0x30,0xc2,0xac,0x7e,0xf, 0x78,0xf2,0xb, 0x16,0xb, 0xa, 0x30,0x4e,0x60,0x10,0x1b, +0xa, 0x30,0xa2,0x9, 0x92,0xac,0x22,0xa2,0xac,0x92,0xb, 0xc2,0xac,0x7e,0xf, 0x78, +0xf2,0x30,0xa, 0xa, 0xb, 0x16,0xb, 0xa, 0x30,0x4e,0x60,0x10,0x80,0x8, 0xb, 0x16, +0xb, 0xa, 0x30,0x5e,0x60,0xef,0x1b,0xa, 0x30,0xa2,0xb, 0x92,0xac,0x22,0xb, 0xa, +0x30,0x5e,0x34,0xfc,0x7f,0x1b,0xa, 0x30,0xa, 0x2b,0x5e,0x24,0x0, 0x7, 0x3e,0x24, +0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0xb, 0xa, 0x30,0x4d, +0x32,0x1b,0xa, 0x30,0x22,0xa9,0xd7,0xca,0x7e,0x24,0x0, 0x1, 0x7e,0xf, 0x78,0xf6, +0x1b,0xa, 0x20,0x7e,0x24,0x9, 0x60,0x7e,0xf, 0x78,0xf6,0x79,0x20,0x0, 0x2, 0x7e, +0xf, 0x78,0xf6,0x79,0x30,0x0, 0x4, 0x22,0xb, 0xa, 0x20,0x5e,0x24,0x80,0x1f,0x1b, +0xa, 0x20,0x7d,0x23,0x5e,0x40,0x3, 0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e, +0x24,0xb, 0xa, 0x30,0x2d,0x32,0x1b,0xa, 0x30,0x22,0xb, 0xa, 0x30,0x5e,0x60,0xc7, +0x1b,0xa, 0x30,0x54,0x7, 0xa, 0x3b,0x7d,0x23,0x7c,0x45,0x6c,0x55,0x3e,0x24,0x3e, +0x24,0x3e,0x24,0xb, 0xa, 0x30,0x4d,0x32,0x1b,0xa, 0x30,0x22,0xca,0x3b,0x7d,0x72, +0x7a,0xd, 0x29,0x7d,0x63,0x7e,0xd, 0x29,0x7d,0x27,0x12,0x3, 0xfa,0x7d,0x36,0x7e, +0xd, 0x29,0x7d,0x27,0x12,0x4, 0x96,0xda,0x3b,0x22,0xb, 0xa, 0x30,0x5e,0x60,0x9f, +0x1b,0xa, 0x30,0x54,0x3, 0xa, 0x5b,0xc4,0x23,0x54,0xe0,0x7c,0xab,0xe4,0xb, 0xa, +0x30,0x4d,0x35,0x1b,0xa, 0x30,0x22,0xb, 0xa, 0x30,0x5e,0x70,0xe7,0x1b,0xa, 0x30, +0x54,0x3, 0xa, 0x2b,0x3e,0x24,0x3e,0x24,0x3e,0x24,0xb, 0xa, 0x30,0x4d,0x32,0x1b, +0xa, 0x30,0x22,0x7c,0xa7,0xb, 0xa, 0x30,0x5e,0x60,0x40,0x60,0x3, 0x4e,0x60,0x80, +0x7c,0xba,0x54,0x3f,0x7c,0x4b,0x6c,0x55,0x4d,0x32,0x1b,0xa, 0x30,0x22,0xb, 0xa, +0x50,0x54,0xe0,0x1b,0xa, 0x50,0x7d,0x52,0x5e,0x54,0x0, 0x1f,0xb, 0xa, 0x20,0x4d, +0x25,0x1b,0xa, 0x20,0x79,0x30,0x0, 0x2, 0x22,0x7e,0xb3,0x1, 0x8d,0xb4,0xe7,0x12, +0x7e,0xb3,0x1, 0x8e,0xb4,0x16,0xb, 0x7e,0xb3,0x1, 0x8a,0x54,0x1, 0xb4,0x1, 0x2, +0x80,0xfe,0x22,0xb, 0xa, 0x30,0x5e,0x60,0xf, 0x1b,0xa, 0x30,0xa, 0x5b,0xc4,0x54, +0xf0,0x7c,0xab,0xe4,0xb, 0xa, 0x30,0x4d,0x35,0x1b,0xa, 0x30,0x22,0xb, 0xa, 0x30, +0x5e,0x60,0xfc,0x1b,0xa, 0x30,0x54,0x3, 0x7c,0x4b,0x6c,0x55,0xb, 0xa, 0x30,0x4d, +0x32,0x1b,0xa, 0x30,0x22,0xb, 0xa, 0x20,0x5e,0x50,0xfc,0x1b,0xa, 0x20,0x7d,0x23, +0x5e,0x24,0x0, 0x3, 0xb, 0xa, 0x30,0x4d,0x32,0x1b,0xa, 0x30,0x22,0xd2,0x2a,0xd2, +0x29,0x7e,0xf, 0x78,0xf2,0x2e,0x14,0x0, 0x14,0xb, 0xa, 0x30,0x4e,0x70,0x2, 0x1b, +0xa, 0x30,0x22,0x7d,0x23,0xb, 0xa, 0x30,0x5e,0x34,0xf8,0x0, 0x1b,0xa, 0x30,0x4d, +0x32,0x1b,0xa, 0x30,0x22,0x7d,0x23,0xb, 0xa, 0x30,0x5e,0x34,0xf8,0x0, 0x1b,0xa, +0x30,0x4d,0x32,0x1b,0xa, 0x30,0x22,0xb, 0xa, 0x30,0x5e,0x70,0x3, 0x70,0x3, 0x4e, +0x70,0xc, 0x1b,0xa, 0x30,0x22,0x2, 0xd, 0x14,0x1b,0x21,0x25,0x2b,0x31,0x37,0x36, +0x33,0x2d,0x28,0x20,0x19,0x14,0xd, 0x8, 0x1, 0x2, 0x5, 0xb, 0x10,0x18,0x1e,0x23, +0x2a,0x30,0x35,0x3a,0x3e,0x3f,0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x4, +0x9, 0xf, 0x15,0x1d,0x24,0x2a,0x30,0x35,0x3b,0x3e,0x3f,0x40,0x3f,0x3e,0x3d,0x3d, +0x3c,0x3c,0x3b,0x3b,0x39,0x37,0x1a,0x2d,0x65,0x55,0x1b,0x29,0x27,0x1e,0x14,0x11, +0x1a,0x26,0x2e,0x37,0x3d,0x3f,0x3d,0x37,0x2e,0x21,0x16,0xc, 0x5, 0x1, 0x0, 0x0, +0x1, 0x3, 0xa, 0x13,0x1d,0x26,0x2e,0x33,0x38,0x3a,0x16,0x21,0x2b,0x32,0x30,0x2a, +0x27,0x2a,0x2f,0x2d,0x24,0x1a,0x10,0x7, 0x1, 0x0, 0x2, 0x7, 0x10,0x19,0x23,0x2d, +0x36,0x41,0x49,0x4c,0x4a,0x45,0x3c,0x34,0x2a,0x27,0x51,0x71,0x50,0x55,0x28,0x12, +0x11,0x18,0x23,0x29,0x2b,0x2a,0x2e,0x35,0x3c,0x3e,0x3f,0x39,0x31,0x28,0x1e,0x15, +0xe, 0x6, 0x3, 0x1, 0x0, 0x0, 0x3, 0xc, 0x16,0x20,0x2b,0x32,0x37,0x39,0x20,0x29, +0x32,0x37,0x31,0x28,0x21,0x2a,0x31,0x2d,0x23,0x1b,0x13,0x8, 0x1, 0x0, 0x1, 0x5, +0xc, 0x18,0x20,0x29,0x34,0x3e,0x47,0x4f,0x50,0x4d,0x45,0x3c,0x34,0x31,0x26,0xcb, +0x50,0x55,0x1d,0x2f,0x2c,0x25,0x1a,0x1b,0x20,0x29,0x31,0x31,0x2e,0x2d,0x35,0x3d, +0x3f,0x3d,0x38,0x2c,0x22,0x15,0xd, 0x6, 0x1, 0x0, 0x1, 0x6, 0x10,0x1b,0x24,0x2f, +0x38,0x3d,0xd, 0x1b,0x27,0x31,0x32,0x28,0x1e,0x14,0x15,0x1d,0x28,0x31,0x34,0x2a, +0x1f,0x14,0x9, 0x1, 0x0, 0x4, 0xd, 0x17,0x21,0x2c,0x35,0x40,0x47,0x47,0x44,0x3c, +0x34,0x30,0x1b,0x82,0x50,0x55,0x19,0x2e,0x2a,0x1f,0x18,0x1b,0x22,0x2d,0x30,0x2e, +0x2e,0x35,0x3d,0x3f,0x3d,0x3a,0x2f,0x24,0x18,0xf, 0x7, 0x1, 0x0, 0x0, 0x3, 0xb, +0x16,0x1e,0x29,0x32,0x3a,0x3d,0x11,0x1f,0x28,0x32,0x30,0x26,0x1b,0x14,0x1c,0x25, +0x2e,0x35,0x2e,0x23,0x19,0x11,0x4, 0x0, 0x1, 0x8, 0x10,0x1c,0x25,0x30,0x38,0x40, +0x42,0x3f,0x39,0x32,0x2c,0x27,0xc0,0xd1,0x50,0x55,0x18,0x2c,0x29,0x1e,0x14,0x13, +0x16,0x1e,0x29,0x30,0x2e,0x2c,0x2b,0x37,0x3d,0x3f,0x3e,0x39,0x30,0x25,0x1b,0x10, +0x8, 0x1, 0x0, 0x2, 0x9, 0x13,0x1f,0x2d,0x38,0x3c,0x11,0x1a,0x23,0x2f,0x33,0x29, +0x20,0x16,0xe, 0x13,0x1d,0x28,0x32,0x31,0x28,0x1e,0x16,0xb, 0x2, 0x0, 0x1, 0x8, +0x12,0x1e,0x29,0x33,0x3b,0x3f,0x3c,0x32,0x29,0x26,0x30,0x6e,0x50,0x55,0x16,0x2b, +0x24,0x17,0xd, 0xa, 0xe, 0x15,0x24,0x28,0x25,0x23,0x2b,0x36,0x3b,0x3d,0x3b,0x37, +0x2b,0x20,0x15,0xb, 0x4, 0x0, 0x0, 0x3, 0xe, 0x19,0x27,0x33,0x3d,0x3f,0x13,0x21, +0x2e,0x37,0x3a,0x31,0x27,0x1c,0x13,0x1c,0x28,0x34,0x3e,0x37,0x2d,0x22,0x18,0xc, +0x1, 0x0, 0x3, 0xd, 0x18,0x25,0x31,0x3c,0x47,0x48,0x42,0x38,0x2e,0x2a,0x31,0x62, +0x50,0x55,0x35,0x2e,0x27,0x22,0x1f,0x1b,0x16,0x10,0xc, 0x8, 0x6, 0x4, 0x2, 0x0, +0x0, 0x0, 0x1, 0x3, 0x6, 0xb, 0xe, 0x12,0x17,0x1d,0x22,0x26,0x2a,0x30,0x35,0x39, +0x3d,0x3f,0x0, 0x0, 0x1, 0x4, 0x6, 0x8, 0xb, 0x10,0x16,0x1b,0x1f,0x23,0x28,0x2d, +0x32,0x36,0x3b,0x40,0x44,0x48,0x4a,0x4b,0x4c,0x4b,0x4a,0x48,0x46,0x43,0x40,0x3e, +0x3c,0x3a,0x3c,0x9c,0x34,0x55,0x2d,0x28,0x24,0x22,0x1f,0x1c,0x19,0x16,0x13,0x10, +0xc, 0x8, 0x5, 0x2, 0x0, 0x3, 0x7, 0xa, 0xe, 0x11,0x16,0x19,0x1e,0x22,0x27,0x2c, +0x30,0x33,0x36,0x39,0x3d,0x40,0x0, 0x2, 0x6, 0x9, 0xb, 0xe, 0x11,0x14,0x16,0x18, +0x1b,0x1f,0x22,0x25,0x28,0x29,0x2b,0x2c,0x2d,0x2e,0x2f,0x30,0x32,0x33,0x35,0x36, +0x38,0x39,0x3b,0x3c,0x3e,0x40,0xac,0x6a,0x34,0x55,0x25,0x1e,0x1a,0x17,0x15,0x11, +0xe, 0xb, 0x9, 0x7, 0x4, 0x2, 0x1, 0x2, 0x5, 0x9, 0xd, 0x10,0x13,0x17,0x1b,0x1e, +0x21,0x25,0x29,0x2d,0x30,0x33,0x37,0x3b,0x3e,0x40,0x0, 0x6, 0xc, 0x10,0x13,0x19, +0x1f,0x23,0x27,0x2b,0x2f,0x33,0x36,0x38,0x3a,0x3a,0x3a,0x3b,0x3b,0x3b,0x3c,0x3c, +0x3c,0x3c,0x3c,0x3d,0x3d,0x3d,0x3e,0x3e,0x3f,0x40,0xca,0xd8,0x34,0x55,0x9, 0x17, +0x1d,0x26,0x2e,0x37,0x3c,0x3f,0x3b,0x33,0x2b,0x22,0x1a,0x11,0xb, 0x5, 0x3, 0x1, +0x1, 0x0, 0x0, 0x0, 0x1, 0x6, 0xa, 0x11,0x19,0x22,0x2a,0x32,0x39,0x3d,0x30,0x30, +0x2f,0x2c,0x26,0x1e,0x17,0xd, 0x5, 0x0, 0x0, 0x1, 0x6, 0xe, 0x15,0x1e,0x26,0x2c, +0x32,0x3a,0x41,0x48,0x50,0x5b,0x61,0x64,0x64,0x60,0x5b,0x56,0x51,0x4f,0xd8,0x2c, +0x33,0x55,0x6, 0x11,0x18,0x1e,0x22,0x27,0x2a,0x2c,0x29,0x25,0x1f,0x18,0x11,0xb, +0x5, 0x1, 0x0, 0x0, 0x1, 0x3, 0x6, 0xa, 0x11,0x18,0x20,0x26,0x2c,0x32,0x36,0x3b, +0x3d,0x3f,0x48,0x37,0x2e,0x24,0x1a,0x11,0xa, 0x4, 0x0, 0x0, 0x1, 0x5, 0xb, 0x12, +0x1b,0x21,0x28,0x30,0x37,0x41,0x47,0x4e,0x54,0x53,0x4e,0x48,0x41,0x3b,0x33,0x2c, +0x28,0x25,0xb, 0x67,0x33,0x55,0x6, 0xc, 0x15,0x19,0x22,0x2b,0x2f,0x36,0x3c,0x3e, +0x3f,0x39,0x34,0x29,0x25,0x1d,0x14,0xf, 0x7, 0x2, 0x0, 0x0, 0x0, 0x2, 0xc, 0x10, +0x10,0x10,0x10,0x10,0x10,0x10,0x36,0x35,0x32,0x31,0x2d,0x28,0x25,0x1f,0x18,0x13, +0xa, 0x2, 0x0, 0x0, 0x0, 0x3, 0x8, 0xc, 0x17,0x21,0x26,0x31,0x3b,0x3f,0x45,0x46, +0x46,0x46,0x46,0x46,0x46,0x46,0xf0,0x59,0x33,0x55,0x0, 0x6, 0xf, 0x19,0x21,0x2a, +0x2e,0x32,0x2a,0x21,0x18,0x14,0xc, 0x6, 0x2, 0x0, 0x1, 0xb, 0x13,0x1d,0x25,0x2a, +0x32,0x3a,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x23,0x1f,0x1b,0x17,0x13,0xc, +0x9, 0x1, 0x1, 0x6, 0xe, 0x12,0x1b,0x24,0x2d,0x37,0x3b,0x3f,0x3f,0x3d,0x39,0x36, +0x2e,0x25,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xf4,0x7b,0x33,0x55,0x5, 0xd, +0x19,0x23,0x2d,0x31,0x34,0x2c,0x22,0x1e,0x15,0xd, 0x8, 0x4, 0x2, 0x0, 0x2, 0xc, +0x10,0x19,0x21,0x2a,0x2e,0x37,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x1c,0x1b, +0x18,0x16,0x10,0xd, 0x4, 0x0, 0x3, 0x5, 0xc, 0x16,0x1e,0x26,0x2a,0x35,0x3d,0x3f, +0x3e,0x3c,0x3b,0x3a,0x39,0x38,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x8d,0x3a, +0x33,0x55,0x5, 0xd, 0x13,0x19,0x20,0x26,0x2e,0x35,0x3c,0x3d,0x37,0x2f,0x20,0x19, +0x11,0xb, 0x5, 0x2, 0x0, 0x0, 0x1, 0x6, 0xc, 0x17,0x1d,0x23,0x29,0x30,0x36,0x3b, +0x3e,0x3e,0x28,0x25,0x22,0x20,0x1d,0x18,0x14,0xf, 0x8, 0x2, 0x0, 0x0, 0x4, 0x7, +0xc, 0x11,0x18,0x1e,0x24,0x2c,0x33,0x3a,0x3e,0x3f,0x3e,0x3c,0x38,0x31,0x2a,0x21, +0x1a,0x1a,0x6, 0x33,0x33,0x55,0x26,0x1c,0x19,0x18,0x18,0x18,0x18,0x18,0x18,0x18, +0x17,0x17,0x15,0xf, 0x9, 0x4, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x4, 0xb, 0x12,0x18, +0x1f,0x28,0x31,0x37,0x3c,0x40,0x1, 0x7, 0xe, 0x14,0x1c,0x23,0x2c,0x34,0x3e,0x44, +0x4c,0x54,0x5b,0x60,0x5d,0x55,0x4f,0x49,0x43,0x3d,0x38,0x32,0x2b,0x26,0x22,0x1f, +0x1e,0x1c,0x1c,0x1c,0x1c,0x1d,0x66,0x54,0x74,0x55,0x3e,0x2c,0x21,0x1d,0x1d,0x1d, +0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1e,0x1e,0x1d,0x1a,0x11,0xc, 0x7, 0x2, +0x0, 0x0, 0x3, 0xa, 0x12,0x1c,0x23,0x2c,0x38,0x40,0xc, 0x0, 0x6, 0xf, 0x17,0x22, +0x29,0x32,0x3b,0x41,0x47,0x4f,0x55,0x5c,0x66,0x71,0x79,0x3e,0x76,0x6d,0x64,0x5a, +0x52,0x4b,0x42,0x39,0x35,0x33,0x32,0x32,0x31,0x31,0xf3,0xdb,0x74,0x55,0x9, 0x7, +0x6, 0x6, 0x5, 0x5, 0x4, 0x4, 0x4, 0x4, 0x3, 0x2, 0x2, 0x2, 0x1, 0x0, 0x0, 0x0, +0x0, 0x0, 0x3, 0xa, 0x10,0x14,0x1b,0x22,0x28,0x2e,0x34,0x39,0x3d,0x40,0x0, 0xb, +0x11,0x16,0x1b,0x22,0x28,0x2c,0x33,0x39,0x40,0x46,0x4d,0x52,0x56,0x5c,0x61,0x68, +0x6d,0x73,0x73,0x71,0x71,0x71,0x70,0x70,0x6f,0x6f,0x6f,0x6f,0x6d,0x6e,0x79,0x80, +0x44,0x55,0x17,0x13,0x12,0x12,0x11,0x10,0xf, 0xd, 0xc, 0xb, 0x9, 0x8, 0x7, 0x4, +0x3, 0x2, 0x1, 0x0, 0x0, 0x0, 0x1, 0x4, 0xb, 0x10,0x16,0x1d,0x24,0x29,0x31,0x39, +0x3d,0x40,0x0, 0xe, 0x16,0x1a,0x1f,0x24,0x29,0x2e,0x33,0x38,0x3e,0x43,0x47,0x50, +0x55,0x59,0x62,0x69,0x6e,0x75,0x7c,0xff,0x7d,0x7c,0x79,0x73,0x6d,0x68,0x60,0x5a, +0x57,0x56,0x5d,0x8, 0x44,0x55,0x0, 0x7, 0xb, 0xd, 0x10,0x12,0x16,0x17,0x17,0x18, +0x18,0x19,0x19,0x19,0x1c,0x1e,0x20,0x22,0x23,0x25,0x27,0x29,0x2b,0x30,0x32,0x33, +0x35,0x38,0x39,0x3b,0x3d,0x3f,0x3e,0x29,0x1f,0x18,0xf, 0x7, 0x6, 0xc, 0x12,0x1d, +0x25,0x2d,0x36,0x3e,0x3b,0x35,0x2c,0x26,0x20,0x19,0x11,0xa, 0x3, 0x3, 0x9, 0x10, +0x18,0x24,0x2c,0x33,0x3a,0x3e,0x60,0x9b,0x32,0x55,0x0, 0x5, 0x5, 0x5, 0x4, 0x3, +0x2, 0x3, 0x5, 0x7, 0xa, 0xe, 0x11,0x19,0x1b,0x1c,0x1d,0x1c,0x1c,0x1d,0x1f,0x22, +0x25,0x2a,0x31,0x33,0x35,0x37,0x38,0x39,0x3c,0x40,0x0, 0x12,0x1c,0x24,0x2b,0x34, +0x3c,0x39,0x2f,0x29,0x21,0x16,0xf, 0xd, 0x14,0x1e,0x2a,0x33,0x31,0x27,0x20,0x18, +0x10,0x7, 0xa, 0x10,0x1a,0x26,0x2f,0x37,0x3d,0x3f,0xfb,0x8f,0x32,0x55,0x0, 0x0, +0x1, 0x3, 0x8, 0xb, 0x12,0x18,0x1b,0x20,0x22,0x22,0x23,0x24,0x26,0x27,0x29,0x2b, +0x30,0x31,0x31,0x32,0x32,0x34,0x35,0x37,0x3b,0x3e,0x3f,0x3f,0x3f,0x3f,0x7b,0x6d, +0x5f,0x53,0x40,0x36,0x23,0x14,0xb, 0x3, 0xe, 0x1e,0x29,0x35,0x29,0x20,0x11,0x7, +0x6, 0x16,0x1f,0x2d,0x35,0x43,0x4c,0x59,0x68,0x72,0x74,0x74,0x74,0x74,0x90,0x27, +0x32,0x55,0x2c,0x23,0x1f,0x19,0x13,0xc, 0x7, 0x3, 0x0, 0x0, 0x0, 0x1, 0x5, 0xa, +0xf, 0x16,0x1d,0x23,0x2a,0x30,0x36,0x3b,0x3e,0x40,0x3f,0x3e,0x3b,0x38,0x33,0x2f, +0x2b,0x28,0x9, 0x1, 0x0, 0x1, 0x3, 0x9, 0xe, 0x14,0x1b,0x21,0x27,0x2e,0x36,0x3b, +0x3e,0x41,0x41,0x40,0x3d,0x3a,0x36,0x2f,0x2b,0x26,0x20,0x1c,0x16,0x10,0xc, 0xa, +0x9, 0xb, 0x36,0xdc,0x30,0x55,0x1a,0x9, 0x5, 0x1, 0x0, 0x0, 0x0, 0x2, 0x5, 0x9, +0xf, 0x16,0x1c,0x22,0x2a,0x31,0x36,0x39,0x3c,0x3e,0x3f,0x3f,0x3d,0x38,0x30,0x27, +0x1f,0x18,0x12,0xb, 0x6, 0x5, 0x7, 0x12,0x19,0x22,0x2c,0x36,0x3f,0x49,0x53,0x5c, +0x63,0x66,0x64,0x5f,0x58,0x4c,0x43,0x3d,0x34,0x2b,0x22,0x1b,0x15,0xb, 0x4, 0x0, +0x0, 0x1, 0x4, 0xb, 0x13,0x18,0xf1,0xc, 0x30,0x55,0x18,0x2c,0x34,0x39,0x3c,0x3d, +0x3f,0x3f,0x3f,0x3d,0x3b,0x36,0x30,0x2a,0x24,0x1c,0x16,0xd, 0x6, 0x1, 0x0, 0x0, +0x0, 0x1, 0x1, 0x3, 0x5, 0x9, 0xf, 0x17,0x1e,0x24,0x1, 0x2, 0x8, 0xe, 0x14,0x1a, +0x21,0x28,0x30,0x37,0x40,0x49,0x50,0x55,0x59,0x5c,0x5c,0x58,0x51,0x48,0x3f,0x38, +0x31,0x2b,0x25,0x1d,0x17,0x11,0xa, 0x4, 0x1, 0x1, 0x9d,0xbf,0x30,0x55,0x16,0x7, +0x2, 0x0, 0x0, 0x0, 0x0, 0x1, 0x4, 0x8, 0xe, 0x16,0x1f,0x28,0x30,0x38,0x3c,0x3e, +0x3f,0x40,0x3f,0x3f,0x3d,0x3b,0x37,0x32,0x2c,0x25,0x1d,0x16,0xf, 0xc, 0x53,0x46, +0x3e,0x35,0x2e,0x27,0x20,0x1a,0x14,0xd, 0x6, 0x1, 0x0, 0x0, 0x3, 0xa, 0x13,0x1a, +0x20,0x27,0x2d,0x33,0x3a,0x40,0x48,0x4f,0x54,0x58,0x5a,0x5a,0x58,0x57,0xc6,0x55, +0x30,0x55,0x7, 0x1, 0x4, 0xa, 0x10,0x18,0x20,0x2a,0x32,0x38,0x3c,0x3e,0x3f,0x3e, +0x3d,0x3b,0x39,0x35,0x30,0x27,0x21,0x19,0x12,0xb, 0x6, 0x3, 0x1, 0x0, 0x0, 0x0, +0x0, 0x0, 0x32,0x1d,0x12,0x9, 0x5, 0x1, 0x0, 0x0, 0x1, 0x5, 0xd, 0x17,0x20,0x2a, +0x32,0x3b,0x45,0x4e,0x58,0x63,0x69,0x6b,0x6a,0x64,0x5d,0x57,0x4f,0x47,0x40,0x38, +0x32,0x2f,0x1a,0xb5,0x30,0x55,0x21,0x13,0xc, 0x8, 0x5, 0x2, 0x1, 0x0, 0x0, 0x1, +0x3, 0x8, 0xf, 0x17,0x1e,0x24,0x2b,0x32,0x39,0x3d,0x3e,0x3f,0x3f,0x3d,0x3a,0x36, +0x30,0x29,0x21,0x1a,0x16,0x13,0x5, 0x9, 0xe, 0x14,0x1a,0x22,0x29,0x30,0x38,0x3f, +0x47,0x4d,0x51,0x51,0x4f,0x4d,0x49,0x42,0x39,0x31,0x2b,0x25,0x1e,0x17,0x10,0x8, +0x3, 0x0, 0x0, 0x1, 0x3, 0x5, 0xaf,0x13,0x30,0x55,0x38,0x3f,0x3d,0x3a,0x36,0x2e, +0x26,0x1f,0x14,0xb, 0x6, 0x2, 0x0, 0x0, 0x0, 0x1, 0x2, 0x5, 0x9, 0xe, 0x14,0x1c, +0x23,0x2a,0x34,0x38,0x3a,0x3b,0x3d,0x3d,0x3d,0x3d,0x29,0x1a,0x10,0x9, 0x4, 0x0, +0x0, 0x1, 0x4, 0xc, 0x14,0x1c,0x22,0x28,0x2f,0x37,0x3f,0x47,0x4f,0x56,0x5a,0x5b, +0x59,0x56,0x4e,0x47,0x40,0x37,0x30,0x28,0x22,0x1f,0x2a,0xa9,0x30,0x55,0x3e,0x3b, +0x38,0x33,0x2b,0x24,0x1d,0x16,0x10,0x7, 0x3, 0x1, 0x0, 0x0, 0x0, 0x1, 0x1, 0x3, +0x6, 0xc, 0x15,0x1c,0x23,0x29,0x2f,0x35,0x38,0x3b,0x3c,0x3e,0x3f,0x3f,0x1f,0x10, +0xa, 0x6, 0x0, 0x0, 0x0, 0x2, 0x4, 0xc, 0x12,0x18,0x1e,0x25,0x2c,0x35,0x3c,0x42, +0x4a,0x51,0x56,0x56,0x53,0x4e,0x49,0x40,0x3a,0x33,0x2c,0x25,0x1f,0x1c,0xf9,0xa2, +0x30,0x55,0x1f,0x2b,0x31,0x35,0x38,0x3b,0x3e,0x3f,0x3f,0x3d,0x3a,0x34,0x2d,0x27, +0x23,0x1d,0x17,0x10,0x9, 0x4, 0x1, 0x0, 0x0, 0x1, 0x3, 0x6, 0xa, 0xf, 0x15,0x1b, +0x20,0x23,0x45,0x42,0x3e,0x38,0x34,0x2d,0x24,0x1c,0x15,0x11,0xb, 0x6, 0x2, 0x0, +0x0, 0x0, 0x1, 0x3, 0x7, 0xd, 0x12,0x18,0x20,0x28,0x30,0x36,0x3c,0x42,0x47,0x48, +0x49,0x4a,0x65,0x9d,0x30,0x55,0x1c,0x2a,0x33,0x39,0x3c,0x3e,0x3f,0x3f,0x3e,0x3d, +0x3a,0x35,0x2e,0x28,0x23,0x1c,0x15,0xf, 0x9, 0x4, 0x1, 0x0, 0x0, 0x1, 0x1, 0x4, +0x8, 0xd, 0x13,0x19,0x1e,0x22,0x40,0x3e,0x3a,0x33,0x2f,0x29,0x22,0x1b,0x15,0x10, +0xa, 0x5, 0x1, 0x0, 0x0, 0x1, 0x2, 0x5, 0xa, 0x11,0x17,0x1c,0x24,0x2a,0x30,0x35, +0x3b,0x40,0x43,0x44,0x45,0x45,0xcb,0xc6,0x30,0x55,0x5, 0x3, 0x4, 0x7, 0xa, 0x10, +0x17,0x21,0x28,0x2e,0x33,0x38,0x3c,0x3e,0x3f,0x3f,0x3e,0x3b,0x38,0x31,0x29,0x21, +0x18,0xf, 0x9, 0x4, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x26,0x35,0x3d,0x45,0x4b,0x51, +0x53,0x52,0x4f,0x4c,0x46,0x41,0x3b,0x34,0x2e,0x25,0x1e,0x17,0x11,0x9, 0x3, 0x0, +0x0, 0x2, 0x6, 0xc, 0x12,0x18,0x1e,0x24,0x2c,0x31,0xf4,0xb6,0x30,0x55,0xa, 0x5, +0x5, 0x5, 0x8, 0xf, 0x16,0x20,0x29,0x31,0x36,0x3a,0x3c,0x3e,0x3f,0x3f,0x3e,0x3c, +0x3a,0x33,0x2d,0x24,0x1c,0x14,0xf, 0x8, 0x4, 0x0, 0x0, 0x0, 0x1, 0x2, 0x35,0x46, +0x4e,0x56,0x5d,0x65,0x68,0x66,0x60,0x57,0x4f,0x47,0x3f,0x37,0x2e,0x25,0x1e,0x16, +0x10,0x6, 0x2, 0x0, 0x1, 0x5, 0xb, 0x15,0x1d,0x28,0x2f,0x39,0x41,0x45,0xf0,0xbc, +0x30,0x55,0x7, 0x3, 0x3, 0x3, 0x4, 0x7, 0xf, 0x17,0x20,0x28,0x30,0x36,0x3b,0x3d, +0x3f,0x3f,0x3d,0x39,0x36,0x2d,0x25,0x1d,0x16,0xd, 0x8, 0x2, 0x0, 0x0, 0x1, 0x2, +0x3, 0x5, 0x2e,0x3f,0x48,0x50,0x59,0x5f,0x67,0x68,0x63,0x5d,0x52,0x4a,0x3e,0x35, +0x2b,0x20,0x18,0x10,0xa, 0x3, 0x0, 0x0, 0x1, 0x7, 0xe, 0x19,0x22,0x2b,0x31,0x3a, +0x42,0x47,0xef,0xc9,0x30,0x55,0x3b,0x3c,0x3c,0x3b,0x39,0x36,0x2f,0x27,0x21,0x19, +0x11,0xb, 0x5, 0x1, 0x0, 0x0, 0x1, 0x2, 0x4, 0x6, 0xa, 0x10,0x16,0x1f,0x26,0x2d, +0x33,0x39,0x3c,0x3e,0x3f,0x3f,0x22,0x31,0x3b,0x41,0x47,0x4d,0x56,0x59,0x5a,0x58, +0x55,0x51,0x4b,0x43,0x3d,0x35,0x29,0x20,0x18,0x11,0x9, 0x3, 0x0, 0x0, 0x1, 0x3, +0x7, 0xf, 0x15,0x1b,0x21,0x26,0x2b,0xa0,0x30,0x55,0x37,0x38,0x37,0x34,0x2d,0x26, +0x1c,0x16,0xe, 0x9, 0x4, 0x2, 0x0, 0x0, 0x0, 0x1, 0x2, 0x5, 0xa, 0x10,0x17,0x20, +0x26,0x2e,0x35,0x3a,0x3c,0x3e,0x3f,0x3f,0x3e,0x3e,0x30,0x40,0x49,0x50,0x59,0x5e, +0x60,0x5d,0x56,0x50,0x47,0x41,0x39,0x33,0x2a,0x20,0x1a,0x10,0xa, 0x5, 0x1, 0x0, +0x0, 0x3, 0x8, 0x10,0x17,0x1f,0x25,0x2f,0x38,0x3c,0x37,0xc3,0x30,0x55,0x3b,0x3d, +0x3d,0x3b,0x38,0x32,0x27,0x1c,0x13,0xe, 0x8, 0x3, 0x0, 0x0, 0x0, 0x1, 0x3, 0x7, +0xb, 0x12,0x18,0x20,0x28,0x31,0x39,0x3d,0x3f,0x40,0x3f,0x3f,0x3e,0x3e,0x33,0x45, +0x4e,0x57,0x5d,0x65,0x6c,0x6a,0x66,0x63,0x5c,0x53,0x4a,0x40,0x38,0x2e,0x25,0x1a, +0x11,0x8, 0x4, 0x0, 0x0, 0x2, 0x9, 0x10,0x19,0x21,0x2a,0x32,0x39,0x3e,0x7, 0x90, +0x30,0x55,0x8, 0x2, 0x0, 0x0, 0x0, 0x2, 0x5, 0x7, 0xc, 0x12,0x19,0x1f,0x2b,0x32, +0x37,0x3b,0x3d,0x3f,0x3f,0x3e,0x3d,0x3a,0x37,0x2f,0x29,0x23,0x1d,0x16,0xf, 0x9, +0x6, 0x6, 0x47,0x3d,0x36,0x2f,0x27,0x1e,0x16,0x10,0x9, 0x3, 0x0, 0x0, 0x1, 0x4, +0x7, 0xd, 0x14,0x1d,0x26,0x2d,0x33,0x3a,0x42,0x4e,0x53,0x55,0x56,0x54,0x4f,0x48, +0x42,0x42,0x43,0x9e,0x30,0x55,0x2, 0x0, 0x0, 0x1, 0x3, 0x7, 0xc, 0x13,0x1c,0x24, +0x2d,0x37,0x3f,0x3d,0x3b,0x39,0x36,0x34,0x31,0x2e,0x2b,0x27,0x20,0x16,0xe, 0x8, +0x3, 0x3, 0x3, 0x4, 0x4, 0x4, 0x5d,0x50,0x46,0x3e,0x36,0x2c,0x20,0x16,0xd, 0x6, +0x2, 0x0, 0xb, 0x16,0x22,0x2a,0x33,0x3c,0x44,0x4c,0x55,0x5d,0x69,0x79,0x7d,0x76, +0x6d,0x63,0x59,0x50,0x48,0x47,0x12,0x3e,0x30,0x55,0x3, 0x1, 0x2, 0x6, 0xa, 0x16, +0x20,0x25,0x30,0x39,0x3e,0x3f,0x3f,0x3c,0x3a,0x32,0x28,0x22,0x19,0xe, 0x5, 0x2, +0x0, 0x0, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x29,0x23,0x18,0xf, 0xb, 0x3, +0x0, 0x0, 0x1, 0x8, 0x11,0x17,0x21,0x2a,0x2f,0x3a,0x42,0x43,0x42,0x3e,0x38,0x34, +0x2c,0x24,0x1f,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x7f,0xd2,0x30,0x55,0x39,0x2b, +0x24,0x1c,0x15,0xe, 0x9, 0x6, 0x5, 0x6, 0x9, 0x10,0x19,0x22,0x27,0x2e,0x35,0x3b, +0x3e,0x3f,0x3d,0x38,0x32,0x2c,0x26,0x1f,0x19,0x13,0xb, 0x5, 0x1, 0x0, 0x6, 0x0, +0x1, 0x2, 0x6, 0xb, 0x11,0x17,0x1d,0x24,0x2a,0x2f,0x32,0x34,0x35,0x36,0x37,0x3b, +0x41,0x47,0x4e,0x56,0x5d,0x61,0x64,0x65,0x65,0x63,0x60,0x5c,0x57,0x54,0xd1,0x4a, +0x46,0x55,0x3c,0x37,0x33,0x2f,0x25,0x20,0x1b,0x10,0xc, 0x8, 0x2, 0x0, 0x0, 0x3, +0x7, 0xc, 0x16,0x1b,0x1f,0x2a,0x2f,0x33,0x3d,0x3d,0x39,0x2f,0x2b,0x28,0x28,0x28, +0x28,0x28,0x2, 0x0, 0x0, 0x0, 0x2, 0x4, 0x7, 0xc, 0xf, 0x13,0x1c,0x20,0x24,0x2d, +0x30,0x32,0x35,0x36,0x36,0x36,0x36,0x36,0x39,0x3d,0x42,0x48,0x4a,0x4b,0x4b,0x4b, +0x4b,0x4b,0x10,0xa2,0x46,0x55,0x32,0x2c,0x27,0x1c,0x16,0xc, 0x7, 0x3, 0x0, 0x0, +0x0, 0x2, 0x4, 0xd, 0x11,0x1a,0x1f,0x25,0x2f,0x33,0x3c,0x3d,0x34,0x2f,0x2a,0x21, +0x1d,0x1c,0x1c,0x1c,0x1c,0x1c,0x1, 0x0, 0x0, 0x0, 0x2, 0x6, 0xa, 0xe, 0x16,0x1a, +0x22,0x26,0x2b,0x31,0x32,0x35,0x36,0x38,0x3a,0x3b,0x3e,0x41,0x4a,0x4c,0x4d,0x4e, +0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x43,0x33,0x46,0x55,0x1a,0x13,0x10,0xd, 0xb, 0xa, +0xc, 0x11,0x16,0x20,0x25,0x29,0x2e,0x32,0x37,0x3c,0x3f,0x3c,0x38,0x33,0x2e,0x29, +0x24,0x1e,0x19,0xf, 0xb, 0x7, 0x2, 0x0, 0x0, 0x0, 0x0, 0x6, 0xb, 0x10,0x15,0x19, +0x1d,0x1e,0x1f,0x1e,0x1f,0x1f,0x20,0x21,0x24,0x29,0x2f,0x39,0x3e,0x41,0x44,0x47, +0x49,0x4b,0x4c,0x4e,0x4e,0x4f,0x4e,0x4d,0x4d,0x4d,0xa, 0x24,0x46,0x55,0x0, 0x1, +0x3, 0x5, 0x7, 0x8, 0xa, 0xb, 0xc, 0xe, 0xf, 0x11,0x12,0x14,0x16,0x1a,0x1e,0x22, +0x24,0x27,0x2a,0x2c,0x2e,0x31,0x33,0x36,0x38,0x3a,0x3c,0x3e,0x3f,0x3f,0x1, 0xe, +0x14,0x1b,0x23,0x28,0x2e,0x35,0x3a,0x40,0x48,0x4f,0x56,0x5d,0x62,0x61,0x5a,0x53, +0x4e,0x47,0x40,0x3b,0x35,0x2d,0x29,0x22,0x1b,0x17,0x10,0x9, 0x5, 0x1, 0x6d,0x7d, +0x54,0x55,0x40,0x39,0x38,0x36,0x35,0x33,0x31,0x2e,0x2c,0x2b,0x29,0x27,0x25,0x24, +0x22,0x1f,0x1d,0x1a,0x18,0x15,0x14,0x12,0xf, 0xc, 0x9, 0x7, 0x4, 0x2, 0x1, 0x0, +0x0, 0x0, 0x0, 0xd, 0x15,0x1d,0x23,0x2a,0x32,0x3b,0x43,0x48,0x50,0x57,0x5d,0x63, +0x68,0x65,0x5e,0x58,0x51,0x4a,0x45,0x3f,0x38,0x32,0x2b,0x26,0x1f,0x16,0x10,0x8, +0x4, 0x1, 0x6a,0xec,0x54,0x55,0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x1, 0x2, 0x4, 0x5, 0x7, 0x9, 0xd, 0x10,0x13,0x18,0x1f,0x24,0x27,0x2b,0x2e,0x31, +0x34,0x36,0x39,0x3c,0x3e,0x40,0x0, 0x7, 0xf, 0x13,0x16,0x1a,0x1e,0x22,0x25,0x28, +0x2f,0x36,0x3b,0x3f,0x43,0x47,0x4b,0x4c,0x4c,0x4c,0x49,0x46,0x43,0x3f,0x3a,0x35, +0x32,0x2d,0x27,0x21,0x1d,0x1a,0xb5,0xd0,0x54,0x55,0x0, 0x1, 0x1, 0x1, 0x2, 0x3, +0x3, 0x4, 0x5, 0x9, 0xf, 0x16,0x1d,0x22,0x28,0x2d,0x30,0x32,0x34,0x37,0x39,0x3a, +0x3c,0x3d,0x3e,0x3e,0x3f,0x3f,0x3e,0x3e,0x3c,0x3a,0x22,0x2e,0x36,0x3f,0x46,0x4c, +0x51,0x56,0x5b,0x5e,0x60,0x5e,0x5c,0x58,0x53,0x4d,0x49,0x45,0x41,0x3a,0x35,0x31, +0x2d,0x27,0x23,0x1f,0x19,0x11,0xd, 0x8, 0x3, 0x0, 0x3b,0x38,0x54,0x55,0x0, 0x2, +0x3, 0x5, 0x6, 0x8, 0xb, 0x10,0x13,0x16,0x17,0x19,0x1b,0x1d,0x1f,0x21,0x22,0x22, +0x22,0x22,0x23,0x25,0x28,0x2e,0x31,0x34,0x36,0x38,0x3a,0x3c,0x3e,0x3f,0x6, 0x17, +0x20,0x27,0x30,0x38,0x3e,0x39,0x32,0x2b,0x25,0x1e,0x18,0x10,0x9, 0x9, 0x10,0x18, +0x1f,0x26,0x2f,0x36,0x3c,0x38,0x2f,0x27,0x1f,0x18,0xf, 0x8, 0x1, 0x2, 0xc7,0x75, +0x31,0x55,0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x3, 0x8, 0xd, 0x12,0x15,0x17,0x18,0x1a, +0x1b,0x1c,0x1d,0x1d,0x1e,0x1f,0x22,0x27,0x2e,0x35,0x38,0x3b,0x3d,0x3e,0x3f,0x40, +0x3f,0x3e,0x6, 0x15,0x1b,0x23,0x29,0x2f,0x37,0x3c,0x37,0x2e,0x27,0x20,0x1a,0x13, +0xe, 0x14,0x1a,0x21,0x27,0x2f,0x38,0x3f,0x3d,0x35,0x2e,0x26,0x20,0x18,0x11,0xb, +0x3, 0x0, 0x67,0x3f,0x31,0x55,0xd, 0xd0,0x70,0x8f,0x0, 0xff,0xd0,0x2f,0x4, 0xa7, +0x24,0x87,0x2, 0xa9,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x41,0x37,0x31,0x1, 0xd1,0x0, 0x32,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x8, 0x30,0x30,0x31,0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, +0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, +0x1, 0x0, 0x1, 0x8, 0x8, 0x10,0x20,0x10,0x20,0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, +0x3, 0x0, 0x3, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x3, 0x0, 0x4, 0x0, 0x5, 0x0, 0x6, +0x0, 0x7, 0x0, 0x8, 0x0, 0x9, 0x0, 0xa, 0x0, 0xb, 0x0, 0xc, 0x0, 0xd, 0x0, 0xe, +0x0, 0xf, 0x0, 0x10,0x0, 0x11,0x0, 0x12,0x0, 0x13,0x0, 0x14,0x0, 0x15,0x0, 0x16, +0x0, 0x17,0x0, 0x18,0x0, 0x19,0x0, 0x1a,0x0, 0x1b,0x0, 0x1c,0x0, 0x1d,0x0, 0x1e, +0x0, 0x1f,0x0, 0x20,0x0, 0x21,0x0, 0x22,0x0, 0x23,0x0, 0x24,0x0, 0x25,0x0, 0x26, +0x0, 0x27,0x0, 0x28,0x0, 0x29,0x0, 0x2a,0x0, 0x2b,0x0, 0x2c,0x0, 0x2d,0x0, 0x2e, +0x0, 0x2f,0x0, 0x30,0x0, 0x31,0x0, 0x32,0x0, 0x33,0x0, 0x34,0x0, 0x35,0x0, 0x36, +0x0, 0x37,0x0, 0x38,0x0, 0x39,0x0, 0x3a,0x0, 0x3b,0x0, 0x3c,0x0, 0x3d,0x0, 0x3e, +0x0, 0x3f,0x0, 0x40,0x0, 0x41,0x0, 0x42,0x0, 0x43,0x0, 0x44,0x0, 0x45,0x0, 0x46, +0x0, 0x47,0x0, 0x48,0x0, 0x49,0x0, 0x4a,0x0, 0x4b,0x0, 0x4c,0x0, 0x4d,0x0, 0x4e, +0x0, 0x4f,0x0, 0x50,0x0, 0x51,0x0, 0x52,0x0, 0x53,0x0, 0x54,0x0, 0x55,0x0, 0x56, +0x0, 0x57,0x0, 0x58,0x0, 0x59,0x0, 0x5a,0x0, 0x5b,0x0, 0x5c,0x0, 0x5d,0x0, 0x5e, +0x0, 0x5f,0x0, 0x60,0x0, 0x61,0x0, 0x62,0x0, 0x63,0x0, 0x64,0x0, 0x65,0x0, 0x66, +0x0, 0x67,0x0, 0x68,0x0, 0x69,0x0, 0x6a,0x0, 0x6b,0x0, 0x6c,0x0, 0x6d,0x0, 0x6e, +0x0, 0x6f,0x0, 0x70,0x0, 0x71,0x0, 0x72,0x0, 0x73,0x0, 0x74,0x0, 0x75,0x0, 0x76, +0x0, 0x77,0x0, 0x78,0x0, 0x79,0x0, 0x7a,0x0, 0x7b,0x0, 0x7c,0x0, 0x7d,0x0, 0x7e, +0x0, 0x7f,0x0, 0x80,0x0, 0x81,0x0, 0x82,0x0, 0x83,0x0, 0x84,0x0, 0x85,0x0, 0x86, +0x0, 0x87,0x0, 0x88,0x0, 0x89,0x0, 0x8a,0x0, 0x8b,0x0, 0x8c,0x0, 0x8d,0x0, 0x8e, +0x0, 0x8f,0x0, 0x90,0x0, 0x91,0x0, 0x92,0x0, 0x93,0x0, 0x94,0x0, 0x95,0x0, 0x96, +0x0, 0x97,0x0, 0x98,0x0, 0x99,0x0, 0x9a,0x0, 0x9b,0x0, 0x9c,0x0, 0x9d,0x0, 0x9e, +0x0, 0x9f,0x0, 0xa0,0x0, 0xa1,0x0, 0xa2,0x0, 0xa3,0x0, 0xa4,0x0, 0xa5,0x0, 0xa6, +0x0, 0xa7,0x0, 0xa8,0x0, 0xa9,0x0, 0xaa,0x0, 0xab,0x0, 0xac,0x0, 0xad,0x0, 0xae, +0x0, 0xaf,0x0, 0xb0,0x0, 0xb1,0x0, 0xb2,0x0, 0xb3,0x0, 0xb4,0x0, 0xb5,0x0, 0xb6, +0x0, 0xb7,0x0, 0xb8,0x0, 0xb9,0x0, 0xba,0x0, 0xbb,0x0, 0xbc,0x0, 0xbd,0x0, 0xbe, +0x0, 0xbf,0x0, 0xc0,0x0, 0xc1,0x0, 0xc2,0x0, 0xc3,0x0, 0xc4,0x0, 0xc5,0x0, 0xc6, +0x0, 0xc7,0x0, 0xc8,0x0, 0xc9,0x0, 0xca,0x0, 0xcb,0x0, 0xcc,0x0, 0xcd,0x0, 0xce, +0x0, 0xcf,0x0, 0xd0,0x0, 0xd1,0x0, 0xd2,0x0, 0xd3,0x0, 0xd4,0x0, 0xd5,0x0, 0xd6, +0x0, 0xd7,0x0, 0xd8,0x0, 0xd9,0x0, 0xda,0x0, 0xdb,0x0, 0xdc,0x0, 0xdd,0x0, 0xde, +0x0, 0xdf,0x0, 0xe0,0x0, 0xe1,0x0, 0xe2,0x0, 0xe3,0x0, 0xe4,0x0, 0xe5,0x0, 0xe6, +0x0, 0xe7,0x0, 0xe8,0x0, 0xe9,0x0, 0xea,0x0, 0xeb,0x0, 0xec,0x0, 0xed,0x0, 0xee, +0x0, 0xef,0x0, 0xf0,0x0, 0xf1,0x0, 0xf2,0x0, 0xf3,0x0, 0xf4,0x0, 0xf5,0x0, 0xf6, +0x0, 0xf7,0x0, 0xf8,0x0, 0xf9,0x0, 0xfa,0x0, 0xfb,0x0, 0xfc,0x0, 0xfd,0x0, 0xfe, +0x0, 0xff,0x1, 0x0, 0x1, 0x1, 0x1, 0x2, 0x1, 0x2, 0x1, 0x1, 0x1, 0x0, 0x0, 0xff, +0x0, 0xfe,0x0, 0xfd,0x0, 0xfc,0x0, 0xfb,0x0, 0xfa,0x0, 0xf9,0x0, 0xf8,0x0, 0xf7, +0x0, 0xf6,0x0, 0xf5,0x0, 0xf4,0x0, 0xf3,0x0, 0xf2,0x0, 0xf1,0x0, 0xf0,0x0, 0xef, +0x0, 0xee,0x0, 0xed,0x0, 0xec,0x0, 0xeb,0x0, 0xea,0x0, 0xe9,0x0, 0xe8,0x0, 0xe7, +0x0, 0xe6,0x0, 0xe5,0x0, 0xe4,0x0, 0xe3,0x0, 0xe2,0x0, 0xe1,0x0, 0xe0,0x0, 0xdf, +0x0, 0xde,0x0, 0xdd,0x0, 0xdc,0x0, 0xdb,0x0, 0xda,0x0, 0xd9,0x0, 0xd8,0x0, 0xd7, +0x0, 0xd6,0x0, 0xd5,0x0, 0xd4,0x0, 0xd3,0x0, 0xd2,0x0, 0xd1,0x0, 0xd0,0x0, 0xcf, +0x0, 0xce,0x0, 0xcd,0x0, 0xcc,0x0, 0xcb,0x0, 0xca,0x0, 0xc9,0x0, 0xc8,0x0, 0xc7, +0x0, 0xc6,0x0, 0xc5,0x0, 0xc4,0x0, 0xc3,0x0, 0xc2,0x0, 0xc1,0x0, 0xc0,0x0, 0xbf, +0x0, 0xbe,0x0, 0xbd,0x0, 0xbc,0x0, 0xbb,0x0, 0xba,0x0, 0xb9,0x0, 0xb8,0x0, 0xb7, +0x0, 0xb6,0x0, 0xb5,0x0, 0xb4,0x0, 0xb3,0x0, 0xb2,0x0, 0xb1,0x0, 0xb0,0x0, 0xaf, +0x0, 0xae,0x0, 0xad,0x0, 0xac,0x0, 0xab,0x0, 0xaa,0x0, 0xa9,0x0, 0xa8,0x0, 0xa7, +0x0, 0xa6,0x0, 0xa5,0x0, 0xa4,0x0, 0xa3,0x0, 0xa2,0x0, 0xa1,0x0, 0xa0,0x0, 0x9f, +0x0, 0x9e,0x0, 0x9d,0x0, 0x9c,0x0, 0x9b,0x0, 0x9a,0x0, 0x99,0x0, 0x98,0x0, 0x97, +0x0, 0x96,0x0, 0x95,0x0, 0x94,0x0, 0x93,0x0, 0x92,0x0, 0x91,0x0, 0x90,0x0, 0x8f, +0x0, 0x8e,0x0, 0x8d,0x0, 0x8c,0x0, 0x8b,0x0, 0x8a,0x0, 0x89,0x0, 0x88,0x0, 0x87, +0x0, 0x86,0x0, 0x85,0x0, 0x84,0x0, 0x83,0x0, 0x82,0x0, 0x81,0x0, 0x80,0x0, 0x7f, +0x0, 0x7e,0x0, 0x7d,0x0, 0x7c,0x0, 0x7b,0x0, 0x7a,0x0, 0x79,0x0, 0x78,0x0, 0x77, +0x0, 0x76,0x0, 0x75,0x0, 0x74,0x0, 0x73,0x0, 0x72,0x0, 0x71,0x0, 0x70,0x0, 0x6f, +0x0, 0x6e,0x0, 0x6d,0x0, 0x6c,0x0, 0x6b,0x0, 0x6a,0x0, 0x69,0x0, 0x68,0x0, 0x67, +0x0, 0x66,0x0, 0x65,0x0, 0x64,0x0, 0x63,0x0, 0x62,0x0, 0x61,0x0, 0x60,0x0, 0x5f, +0x0, 0x5e,0x0, 0x5d,0x0, 0x5c,0x0, 0x5b,0x0, 0x5a,0x0, 0x59,0x0, 0x58,0x0, 0x57, +0x0, 0x56,0x0, 0x55,0x0, 0x54,0x0, 0x53,0x0, 0x52,0x0, 0x51,0x0, 0x50,0x0, 0x4f, +0x0, 0x4e,0x0, 0x4d,0x0, 0x4c,0x0, 0x4b,0x0, 0x4a,0x0, 0x49,0x0, 0x48,0x0, 0x47, +0x0, 0x46,0x0, 0x45,0x0, 0x44,0x0, 0x43,0x0, 0x42,0x0, 0x41,0x0, 0x40,0x0, 0x3f, +0x0, 0x3e,0x0, 0x3d,0x0, 0x3c,0x0, 0x3b,0x0, 0x3a,0x0, 0x39,0x0, 0x38,0x0, 0x37, +0x0, 0x36,0x0, 0x35,0x0, 0x34,0x0, 0x33,0x0, 0x32,0x0, 0x31,0x0, 0x30,0x0, 0x2f, +0x0, 0x2e,0x0, 0x2d,0x0, 0x2c,0x0, 0x2b,0x0, 0x2a,0x0, 0x29,0x0, 0x28,0x0, 0x27, +0x0, 0x26,0x0, 0x25,0x0, 0x24,0x0, 0x23,0x0, 0x22,0x0, 0x21,0x0, 0x20,0x0, 0x1f, +0x0, 0x1e,0x0, 0x1d,0x0, 0x1c,0x0, 0x1b,0x0, 0x1a,0x0, 0x19,0x0, 0x18,0x0, 0x17, +0x0, 0x16,0x0, 0x15,0x0, 0x14,0x0, 0x13,0x0, 0x12,0x0, 0x11,0x0, 0x10,0x0, 0xf, +0x0, 0xe, 0x0, 0xd, 0x0, 0xc, 0x0, 0xb, 0x0, 0xa, 0x0, 0x9, 0x0, 0x8, 0x0, 0x7, +0x0, 0x6, 0x0, 0x5, 0x0, 0x4, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x18,0x12,0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x6, 0x0, 0x6, 0x0, +0x6, 0x0, 0x6, 0x0, 0x6, 0x0, 0x6, 0x0, 0x6, 0x0, 0x6, 0x0, 0x6, 0x0, 0x6, 0x0, +0x6, 0x0, 0x6, 0x0, 0x6, 0x0, 0x6, 0x0, 0x6, 0x0, 0x6, 0x18,0x12,0x2, 0x5, 0x0, +0x0, 0x0, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, +0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, +0x0, 0x5, 0x18,0x12,0x2, 0x5, 0x1, 0x0, 0x0, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, +0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, +0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x18,0x12,0x2, 0x5, 0x2, 0x0, 0x0, +0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, +0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, 0x0, 0x5, +0x1, 0xa, 0x1e,0x40,0x8, 0x0, 0x64,0xd, 0xac,0x0, 0xc8,0x1, 0x9a,0x1, 0x36,0x1, +0x36,0x5, 0xdc,0x5, 0xdc,0x5, 0xdc,0x1, 0x90,0x1, 0x90,0xa, 0x0, 0x2, 0x0, 0x1, +0xa, 0x6, 0x21,0x3c,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x16,0x1, 0x0, 0x1, 0x87,0x1, 0x0, 0x9, +0x1, 0xd0,0x0, 0x1, 0x0, 0x15,0x1, 0x1, 0x4, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1d,0x0, 0x0, 0x0, 0x0, 0x0, 0xff,0x0, +0x64,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xd0,0x1, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x2, 0x0, 0x4, 0x0, 0x2, 0xd6, +0x1, 0x68,0x2d,0x2d,0x1, 0x68,0x1, 0x90,0x0, 0xb4,0x0, 0xb7,0x5, 0xa0,0x2, 0xd0, +0x2d,0x2d,0x1, 0x68,0x1, 0x68,0x0, 0xb4,0x0, 0xb4,0x10,0x0, 0xc8,0x2, 0x58,0x3, +0x20,0x2, 0xd0,0x7, 0xd0,0x1, 0x2c,0x0, 0x40,0x0, 0x4, 0x1, 0x5, 0x2, 0x2, 0x4, +0x4, 0x6, 0x80,0x0, 0xc8,0x13,0x88,0x10,0x3, 0x6, 0x1, 0x2c,0x2, 0x58,0x3, 0x20, +0x1f,0x40,0x28,0x1, 0x5e,0x2, 0xbc,0x0, 0x14,0x12,0x5, 0xf, 0x3, 0x34,0x1, 0x9a, +0x6, 0x68,0x0, 0x64,0x4, 0xa, 0x5, 0x0, 0x64,0x2, 0x72,0x0, 0x64,0x5, 0x3c,0x0, +0x32,0x1, 0xf4,0x1, 0xf4,0x3, 0x20,0x0, 0xc8,0x0, 0x48,0x0, 0x1e,0x0, 0x80,0x1, +0x6b,0x1, 0x68,0x0, 0x64,0x7, 0xd0,0x1, 0x68,0x1, 0x6b,0x0, 0x64,0x7, 0xd0,0x0, +0x0, 0x2, 0xd6,0x0, 0x0, 0x5, 0xa0,0x0, 0x64,0x0, 0xa0,0x0, 0xa0,0x9, 0xc4,0x1, +0x2c,0xc2,0xd5,0x7c,0xb4,0x30,0xe7,0x8, 0xb2,0xd5,0x6e,0x24,0xff,0xff,0xb, 0x24, +0x7c,0xb6,0x30,0xe7,0x12,0xb2,0xd5,0x6e,0x34,0xff,0xff,0xb, 0x34,0x8d,0x32,0x6e, +0x24,0xff,0xff,0xb, 0x24,0x80,0x2, 0x8d,0x32,0x30,0xd5,0x6, 0x6e,0x34,0xff,0xff, +0xb, 0x34,0x22,0x7d,0x51,0xad,0x3, 0x7d,0x2, 0x7d,0x21,0xad,0x5, 0x2d,0x12,0xad, +0x35,0x2d,0x21,0x22,0x7d,0x2, 0xad,0x31,0xad,0x10,0x2d,0x21,0x22,0x6d,0x0, 0x74, +0x10,0x4d,0x0, 0x78,0xb, 0x4d,0x22,0x78,0x27,0x8d,0x31,0x7d,0x12,0x6d,0x22,0x22, +0x7d,0x43,0x7d,0x32,0x6d,0x22,0x2f,0x11,0x2d,0x44,0x50,0x2, 0xa5,0xf, 0xbf,0x10, +0x40,0x4, 0x9f,0x10,0xb, 0x90,0x14,0x78,0xed,0x7f,0x1, 0x6d,0x22,0x7d,0x34,0x22, +0x7d,0x41,0x7d,0x13,0x8d,0x24,0x7d,0x2, 0x2f,0x0, 0x40,0x4, 0xbd,0x4, 0x40,0x4, +0x9d,0x4, 0xb, 0x14,0x14,0x78,0xf1,0x7d,0x23,0x7d,0x31,0x7d,0x10,0x6d,0x0, 0x22, +0xc2,0xd5,0x7c,0xb0,0x30,0xe7,0x8, 0xb2,0xd5,0x9f,0x22,0x9f,0x20,0x7f,0x2, 0x7c, +0xb4,0x30,0xe7,0x13,0xb2,0xd5,0x9f,0x22,0x9f,0x21,0x7f,0x12,0x12,0x22,0xbf,0x9f, +0x22,0x9f,0x20,0x7f,0x2, 0x80,0x3, 0x12,0x22,0xbf,0x30,0xd5,0x6, 0x9f,0x22,0x9f, +0x21,0x7f,0x12,0x22,0x6c,0xaa,0x4d,0x11,0x68,0x1a,0x1e,0x54,0x68,0xe, 0xb, 0x38, +0x20,0x1b,0x18,0x20,0xb, 0x35,0xb, 0x15,0x1b,0x54,0x78,0xf2,0x50,0x6, 0x7e,0x39, +0x40,0x7a,0x19,0x40,0x22,0x6c,0xaa,0x4d,0x11,0x68,0x1e,0x1e,0x54,0x50,0xc, 0x7e, +0x1b,0x0, 0x7a,0x19,0x0, 0x68,0x12,0xb, 0x1c,0xb, 0x14,0xb, 0x1a,0x0, 0x1b,0x18, +0x0, 0xb, 0x1d,0xb, 0x15,0x1b,0x54,0x78,0xf2,0x22,0x75,0x84,0x1, 0x7e,0x44,0x7f, +0xff,0xe4,0x7a,0x49,0xb0,0x1b,0x44,0x78,0xf9,0x7e,0xf8,0x78,0xfc,0xc2,0x26,0xc2, +0x27,0xc2,0x28,0xc2,0x1f,0xc2,0x20,0x75,0x12,0x0, 0xc2,0x2b,0xc2,0x2c,0xc2,0x2d, +0xc2,0x22,0xc2,0x23,0xc2,0x24,0x75,0x6c,0x0, 0xc2,0x2e,0xc2,0x16,0xc2,0x17,0xc2, +0x18,0xd2,0x19,0xd2,0x1a,0xc2,0xc, 0xc2,0xd, 0xc2,0xe, 0xc2,0xf, 0xc2,0x10,0xc2, +0x11,0xc2,0x12,0xc2,0x13,0xc2,0x14,0xc2,0x15,0xc2,0x2f,0xc2,0x30,0xd2,0x29,0xc2, +0x2a,0x75,0x1e,0x0, 0x75,0x1f,0x1, 0x7e,0x4, 0x0, 0xff,0x7e,0x14,0x24,0x6a,0xb, +0xa, 0x40,0x5d,0x44,0x68,0x1a,0x69,0x20,0x0, 0x2, 0xb, 0xe, 0xb, 0x44,0x80,0xa, +0x7e,0xb, 0xb0,0x7a,0x29,0xb0,0xb, 0x24,0xb, 0xc, 0x1b,0x44,0x78,0xf2,0x80,0xdf, +0x2, 0x2f,0xf9,0xca,0xf8,0x7f,0x20,0x80,0xa, 0x7e,0x1b,0xf0,0x7a,0x2b,0xf0,0xb, +0x34,0xb, 0x54,0x69,0xff,0xff,0xfc,0x7d,0xef,0x1b,0xe4,0x79,0xef,0xff,0xfc,0x4d, +0xff,0x78,0xe6,0x7f,0x10,0xda,0xf8,0x22,0x7d,0x43,0x7f,0x10,0x80,0x7, 0x1b,0x44, +0x7a,0xb, 0xb0,0xb, 0x14,0x4d,0x44,0x78,0xf5,0x22,0xff,0x0, 0x1, 0x2, 0x0, 0xff, +0x1, 0x2, 0x0, 0x1, 0xff,0x2, 0x0, 0x1, 0x2, 0xff,0x7d,0x23,0xbe,0x24,0x0, 0x0, +0x48,0x3, 0x7d,0x32,0x22,0x6d,0x33,0x9d,0x32,0x22,0x0, 0x1, 0x4a,0x60,0x1, 0x0, +0x1, 0x4a,0x66,0x1, 0x0, 0x1, 0x4a,0x68,0x5, 0x0, 0x3, 0x4e,0x97,0x0, 0x0, 0x0, +0x0, 0x6, 0x4e,0x9a,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0x4e,0xa0,0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x29,0xfe,0x1, 0x0, 0x1, 0x78,0xbe,0x0, 0x0, 0x1, +0x78,0xbf,0x0, 0x0, 0x2, 0x77,0x8f,0x0, 0x0, 0x0, 0x1, 0x76,0xbc,0xff,0x0, 0xa, +0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x28,0xe6, +0x0, 0x0, 0x8, 0x29,0x83,0x5, 0x0, 0x0, 0x2, 0x0, 0x2, 0x0, 0x2, 0x0, 0xc, 0x29, +0xb3,0x1, 0x3, 0x0, 0x3, 0x0, 0x0, 0x3, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x1, 0x29, +0xff,0x0, 0x0, 0x1, 0x78,0x25,0x0, 0x0, 0x1, 0x78,0x26,0x0, 0x0, 0x1, 0x78,0x28, +0x0, 0x0, 0x2, 0x3, 0xfe,0x0, 0x0, 0x0, 0x1, 0x3, 0xc9,0x0, 0x0, 0x1, 0x78,0xc9, +0x0, 0x0, 0x1, 0x5c,0xc3,0xff,0x0, 0x1, 0x5c,0xdc,0x0, 0x0, 0x3c,0x5c,0xdd,0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x78,0x5d,0x19,0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x5d,0x91,0x0, 0x0, 0x2, 0x5d,0x92, +0x0, 0x0, 0x0, 0x4, 0x5d,0x94,0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x62,0xde,0x0, 0x0, +0x2, 0x63,0x2f,0x0, 0x0, 0x0, 0x1, 0x78,0xd4,0x1, 0x0, 0x1, 0x78,0xd5,0x0, 0x0, +0x1e,0x0, 0x4e,0x2, 0x4, 0x6, 0x8, 0xa, 0xc, 0xe, 0x10,0x12,0x14,0x16,0x18,0x1a, +0x1c,0x1e,0x20,0x22,0x24,0x26,0x28,0x2a,0x2c,0x2e,0x30,0x32,0x34,0x36,0x38,0x3a, +0x3c,0x0, 0x1, 0x78,0x69,0x0, 0x0, 0x1, 0x78,0x85,0x1e,0x0, 0x1, 0x78,0xdd,0x0, +0x0, 0x2, 0x76,0xba,0x0, 0x0, 0x0, 0x6, 0x78,0xde,0x30,0x1f,0x50,0x11,0x20,0x10, +0x0, 0x1, 0x78,0xe4,0x34,0x0, 0x1, 0x76,0x3f,0x64,0x0, 0x1, 0x78,0xfb,0x0, 0x0, +0x1, 0x78,0x8d,0x0, 0x0, 0x1, 0x78,0x92,0x5, 0x0, 0x1, 0x78,0x96,0x4, 0x0, 0x1, +0x78,0x97,0x1, 0x0, 0x1, 0x78,0x9b,0x0, 0x0, 0x1, 0x78,0xe9,0x1, 0x0, 0x1, 0x78, +0xfc,0x1, 0x0, 0x1, 0x78,0xb1,0x0, 0x0, 0x2, 0x25,0xb3,0x25,0xb9,0x0, 0x1, 0x27, +0x49,0x2, 0x0, 0x1, 0x27,0x72,0x0, 0x0, 0x1, 0x77,0xe0,0xff,0x0, 0x1, 0x77,0xe1, +0x0, 0x0, 0x1, 0x77,0xe2,0x0, 0x0, 0x1, 0x77,0xe3,0x40,0x0, 0x1, 0x77,0xe4,0x40, +0x0, 0x4, 0x78,0xee,0x0, 0x0, 0x90,0x0, 0x0, 0x4, 0x3, 0xf2,0x0, 0x0, 0x94,0x0, +0x0, 0x4, 0x3, 0xf6,0x0, 0x0, 0x98,0x0, 0x0, 0x4, 0x3, 0xfa,0x0, 0x0, 0x9c,0x0, +0x0, 0x4, 0x1, 0x79,0x0, 0x0, 0x80,0x0, 0x0, 0x4, 0x78,0xf2,0x0, 0x0, 0x91,0x0, +0x0, 0x4, 0x78,0xf6,0x0, 0x0, 0x92,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xe8,0x0, 0x51,0x0, 0x3, 0x3, 0x20,0x0, 0x50, +0x0, 0x3, 0x2, 0x58,0x0, 0x4e,0x0, 0x4, 0x1, 0xc2,0x0, 0x4b,0x0, 0x4, 0x1, 0x40, +0x0, 0x47,0x0, 0x4, 0x0, 0xc8,0x0, 0x44,0x0, 0x4, 0x0, 0x78,0x0, 0x3e,0x0, 0x5, +0x0, 0x64,0x0, 0x3c,0x0, 0x5, 0x12,0x6f,0xa2,0x7a,0xb3,0x78,0xb0,0xe4,0x7a,0xb3, +0x77,0x31,0x2, 0x29,0x4a,0xd2,0x1, 0x12,0x29,0x5a,0x74,0x1f,0x7a,0xb3,0x73,0xd4, +0x7a,0xb3,0x73,0xd5,0x22,0x12,0x3d,0xdb,0xd2,0x1, 0xe4,0x7a,0xb3,0x75,0x34,0x7a, +0xb3,0x75,0x35,0x6c,0xaa,0x12,0xc7,0x3, 0xbe,0xa0,0x3, 0x78,0xf8,0xe4,0x7a,0xb3, +0x75,0xa9,0x7a,0xb3,0x75,0x36,0x30,0x1, 0x3, 0x12,0x29,0x4a,0x22,0xca,0x3b,0xc2, +0x4, 0x12,0x3c,0x2, 0xc2,0xd, 0x30,0xc, 0x18,0xc2,0xc, 0x30,0xe, 0x4, 0xc2,0xe, +0x80,0x3, 0x12,0xd9,0xba,0x12,0x49,0x61,0x12,0x3d,0xf1,0x12,0x54,0x92,0x12,0x29, +0x45,0xd2,0x4, 0x12,0x3c,0x2, 0xc2,0x1, 0x12,0xd8,0xd7,0x30,0xf, 0x3c,0xc2,0xf, +0x12,0xe6,0xe5,0x7d,0x23,0x5e,0x24,0x0, 0x1, 0x68,0x2f,0x5e,0x34,0x0, 0x2, 0x68, +0x5, 0x12,0x4f,0xe2,0x80,0x11,0x75,0x1e,0x1, 0x74,0x1, 0x7a,0xb3,0x78,0x97,0x7f, +0x3, 0x12,0x37,0xe2,0x12,0x37,0xf5,0x12,0x3d,0xf1,0xc2,0x1, 0x12,0x29,0x5a,0xe5, +0x1e,0x12,0x3c,0x29,0x74,0x1f,0x7a,0xb3,0x73,0xd5,0xd2,0x1, 0x12,0xd8,0xd7,0xda, +0x3b,0x22,0x74,0x5, 0x7a,0xb3,0x78,0xe8,0x12,0x29,0x7d,0x7e,0xb3,0x73,0xd4,0x60, +0xd, 0x80,0x6, 0x12,0x2d,0x3d,0x12,0x29,0x7d,0x12,0x52,0x8c,0x50,0xf5,0x7e,0xb3, +0x73,0xd5,0x60,0xd, 0x80,0x6, 0x12,0x2d,0x3d,0x12,0x29,0x7d,0x12,0x52,0xf5,0x50, +0xf5,0x2, 0x2a,0x24,0x7e,0x63,0x78,0x97,0x7e,0x73,0x75,0x33,0x74,0x26,0xa5,0xbe, +0x3, 0x8, 0xac,0xb7,0x49,0x15,0x75,0x4b,0x80,0x6, 0xac,0xb7,0x49,0x15,0x75,0x47, +0x7d,0x21,0x7a,0x27,0x4a,0x6f,0x30,0x16,0x10,0x7e,0x24,0x0, 0x27,0xca,0x29,0x12, +0xe6,0x5, 0x12,0x24,0x13,0x1b,0xfd,0xc2,0x16,0x22,0x7e,0xa3,0x77,0x35,0xbe,0xa0, +0x5, 0x78,0x8, 0x74,0x1, 0x7a,0xb3,0x77,0x35,0x80,0x1b,0xbe,0xa0,0x4, 0x78,0x1c, +0x74,0x1, 0x7a,0xb3,0x77,0x35,0x7e,0x34,0x21,0x57,0x12,0x2a,0xa9,0x12,0x2d,0x41, +0x12,0x29,0x45,0x12,0x29,0xf2,0x74,0x2, 0x7a,0xb3,0x77,0x35,0x22,0x7a,0x37,0x6f, +0x42,0xe4,0x7a,0xb3,0x78,0xfa,0x7e,0x34,0x21,0x67,0x7e,0x24,0x0, 0xff,0xb, 0x1a, +0x30,0x7a,0x37,0x6f,0x4c,0x7e,0x34,0x21,0x69,0x7e,0x24,0x0, 0xff,0xb, 0x1a,0x30, +0x22,0x90,0x21,0x51,0xe4,0x93,0x7a,0xb3,0x6f,0x3e,0x12,0x4e,0xb7,0x7e,0x34,0x21, +0x5b,0x12,0x2a,0xa9,0x7a,0x37,0x6f,0x40,0x7e,0x34,0x21,0x5d,0x12,0x2a,0xa9,0x7a, +0x37,0x6f,0x42,0x7e,0x34,0x21,0x5f,0x12,0x2a,0xa9,0x12,0x2c,0x17,0x7a,0x37,0x6f, +0x44,0x7e,0x34,0x21,0x61,0x12,0x2a,0xa9,0x12,0xe6,0xc1,0x12,0x2a,0xa9,0x7a,0x37, +0x6f,0x48,0x7e,0x34,0x21,0x65,0x12,0x2a,0xa9,0x12,0x2c,0x17,0x7a,0x37,0x6f,0x4a, +0x12,0x2a,0x96,0x12,0x2c,0x17,0x7a,0x37,0x6f,0x4e,0x90,0x21,0x9b,0xe4,0x93,0x7a, +0xb3,0x6f,0x52,0x90,0x21,0x54,0xe4,0x93,0x7a,0xb3,0x6f,0x53,0x7e,0x34,0x21,0x55, +0x12,0x2a,0xa9,0x7a,0x37,0x6f,0x54,0x7e,0x34,0x21,0x6b,0x12,0x2a,0xa9,0x7a,0x37, +0x6f,0x50,0xe4,0x7a,0xb3,0x6f,0x56,0x7a,0xb3,0x6f,0x57,0x7a,0xb3,0x6f,0x58,0x7a, +0xb3,0x6f,0x59,0x7a,0xb3,0x6f,0x5a,0x7a,0xb3,0x6f,0x5b,0x7a,0xb3,0x6f,0x5c,0x7a, +0xb3,0x6f,0x5d,0x7a,0xb3,0x6f,0x5e,0x7a,0xb3,0x6f,0x5f,0x22,0x7e,0x34,0x21,0x5b, +0x12,0x2a,0xa9,0x12,0x4c,0x5b,0x7a,0x73,0x76,0xbf,0x7e,0x34,0x21,0x5d,0x12,0x2a, +0xa9,0x12,0x2c,0x45,0x7a,0x73,0x76,0xc0,0x7e,0x34,0x21,0x63,0x12,0x2a,0xa9,0x12, +0x2c,0x45,0x7a,0x73,0x76,0xc1,0x7e,0x34,0x21,0x63,0x12,0x2a,0xa9,0x12,0x2c,0x45, +0x7a,0x73,0x76,0xc2,0x7e,0x34,0x21,0x6b,0x12,0x2a,0xa9,0x12,0x4c,0x5b,0x7a,0x73, +0x76,0xc4,0x7e,0x34,0x0, 0x6a,0xca,0x39,0x7e,0x34,0x21,0x6f,0x7e,0x24,0x0, 0xff, +0x7e,0x8, 0x76,0xc5,0x12,0x24,0x13,0x1b,0xfd,0x22,0x7e,0xb3,0x77,0xf, 0xb4,0x1, +0x5, 0x12,0x2c,0x1e,0x80,0xf, 0x7e,0xb3,0x6f,0x58,0xb4,0x1, 0x5, 0x12,0x4e,0x9a, +0x80,0x3, 0x12,0x6d,0xff,0x7e,0xb3,0x78,0xfa,0x70,0x17,0x7e,0xb3,0x6f,0x31,0x70, +0x11,0x7e,0xb3,0x6f,0x58,0x70,0xb, 0x7e,0x34,0x21,0x6d,0x12,0x2a,0xa9,0x7a,0x37, +0x6f,0x40,0x12,0xe7,0x20,0x68,0x11,0x7e,0x34,0x21,0x61,0x12,0x2a,0xa9,0x12,0xe6, +0xc1,0x12,0x2a,0xa9,0x7a,0x37,0x6f,0x48,0x7e,0x34,0x21,0x5f,0x12,0x2a,0xa9,0x12, +0x2c,0x17,0x7a,0x37,0x6f,0x44,0x22,0x6e,0x34,0xff,0xff,0xb, 0x34,0x22,0x7e,0x34, +0x21,0x5b,0x12,0x2a,0xa9,0x12,0x4e,0xb3,0x7e,0x34,0x21,0x5d,0x12,0x2a,0xa9,0x12, +0x2a,0x8d,0x12,0x4c,0x4d,0x12,0x2c,0x3d,0x7a,0x73,0x76,0xc0,0x22,0x7a,0x73,0x76, +0xbf,0x7e,0x37,0x6f,0x42,0xe, 0x34,0xe, 0x34,0xe, 0x34,0xe, 0x34,0xe, 0x34,0x22, +0x30,0x2b,0xf, 0x7e,0xb3,0x77,0x2d,0xb4,0x1, 0x8, 0x74,0x1, 0x7a,0xb3,0x73,0xd3, +0x80,0x3, 0x12,0x48,0x8c,0xc2,0x2b,0x7e,0xb3,0x78,0xb0,0xb4,0x1, 0x2, 0x80,0x2, +0xa1,0x4, 0x12,0x70,0xdc,0x12,0x51,0xc7,0x12,0x44,0x47,0x12,0x29,0xf2,0x7e,0x34, +0x21,0x59,0x12,0x2a,0xa9,0x12,0x2d,0x41,0x12,0x5b,0x38,0x7e,0xb3,0x25,0xae,0x70, +0x2, 0x80,0x58,0x12,0xc8,0xdc,0x7e,0xb3,0x76,0xe3,0xb4,0x1, 0x2, 0xd2,0x86,0x7e, +0xb3,0x6f,0x57,0x70,0x6, 0x12,0x2b,0xba,0x12,0xe1,0xd9,0x12,0x5d,0x5c,0x7e,0xb3, +0x25,0xae,0x70,0x2, 0x80,0x35,0x74,0x1, 0x12,0x2d,0x19,0x12,0x2d,0xe7,0x12,0xa9, +0x6d,0x12,0xa7,0xc3,0x74,0x2, 0x12,0x2d,0x19,0x12,0xaf,0xd8,0x74,0x3, 0x12,0x2d, +0x19,0x12,0x7a,0x15,0x74,0x4, 0x12,0x2d,0x19,0x12,0x6f,0xf2,0x12,0xca,0x76,0x12, +0x7f,0xc, 0x12,0x79,0x6c,0x7e,0xb3,0x25,0xae,0x70,0xb, 0x12,0xc8,0x59,0x12,0x68, +0xb2,0x12,0xdd,0xf1,0x81,0x67,0x12,0x88,0x65,0x12,0x70,0xb6,0x12,0x77,0x18,0x12, +0x68,0xbb,0x81,0x67,0xd2,0x4, 0x12,0x3c,0x96,0x2, 0x2d,0xc, 0x12,0x4f,0xf0,0x7e, +0xb3,0x76,0xe3,0xb4,0x1, 0x2, 0xd2,0x86,0x22,0x1b,0xb1,0x68,0x10,0x14,0x68,0x13, +0x14,0x68,0x16,0x24,0x3, 0x78,0x15,0xe4,0x7a,0xb3,0x6f,0x3b,0x22,0x12,0x0, 0xa, +0x2, 0xc0,0x15,0x12,0xb6,0x58,0x2, 0x90,0xd4,0x2, 0xc0,0xde,0x22,0x7e,0x34,0x9, +0xc4,0x6d,0x22,0x7a,0x27,0x78,0x9f,0x7a,0x37,0x78,0xa1,0x22,0x12,0x48,0x4e,0x7e, +0xb3,0x78,0xb0,0xb4,0x3, 0x7b,0x12,0x3d,0x44,0x12,0x29,0xf2,0x12,0x2d,0x3d,0x7e, +0xb3,0x77,0x31,0x30,0xe7,0x66,0x7e,0xb3,0x77,0x42,0x70,0x5, 0xc2,0x4, 0x12,0x3c, +0x96,0x12,0x29,0x7d,0x30,0x11,0x8, 0xc2,0x11,0x12,0x29,0x55,0x12,0x3b,0xdc,0x7e, +0xb3,0x77,0x42,0x70,0x5, 0x12,0x99,0x6, 0x80,0x6, 0x12,0x5b,0x38,0x12,0x99,0x1d, +0x7e,0xb3,0x25,0xae,0x70,0x5, 0x12,0x68,0xb2,0x80,0xb4,0x7e,0xb3,0x73,0xd3,0xb4, +0x1, 0x17,0x12,0xc8,0xdc,0x74,0x2, 0x12,0x4e,0xc1,0x12,0xe1,0xd9,0x12,0x46,0xeb, +0x12,0xd3,0x89,0x12,0x5d,0x5c,0x12,0x2d,0xe7,0x12,0x69,0x3a,0x7e,0xb3,0x77,0x42, +0x70,0xa, 0x7e,0xb3,0x77,0x31,0x54,0x7f,0x7a,0xb3,0x77,0x31,0x12,0x68,0x98,0xa1, +0x4f,0xd2,0x2b,0xd2,0x4, 0x12,0x3c,0x96,0x2, 0x2d,0xdb,0xe4,0x7a,0xb3,0x78,0xe5, +0x6d,0x33,0x7a,0x37,0x78,0xe6,0x22,0xc2,0x2d,0x7e,0xb3,0x6f,0x56,0x70,0x3, 0x12, +0xd1,0xb5,0x12,0x6e,0x17,0x12,0x6f,0x32,0x12,0x6e,0x17,0x12,0x6e,0x8d,0x12,0x6e, +0x17,0x12,0xac,0x5f,0x12,0x6e,0x17,0x12,0x99,0x56,0x12,0x6e,0x17,0x2, 0x2e,0x10, +0xca,0x3b,0xc2,0x0, 0x7e,0xd3,0x6d,0x93,0xa, 0x3d,0x3e,0x34,0xca,0x39,0x7e,0x18, +0x6c,0x9, 0x7e,0x8, 0x63,0x6d,0x12,0x24,0x13,0x1b,0xfd,0x6c,0x11,0x75,0x27,0x0, +0x6c,0xcc,0xc1,0xea,0x7e,0x44,0x3, 0xff,0x7e,0xe0,0xff,0x6c,0xff,0x80,0x5a,0x7c, +0xbf,0x12,0x6e,0x5, 0x60,0x51,0x12,0xe6,0xdc,0xbe,0x0, 0xff,0x68,0x49,0x9, 0x5, +0x63,0x6e,0xa, 0x10,0x7e,0x70,0x2, 0xac,0x7c,0x9, 0x3, 0x78,0x2d,0xa, 0x30,0x12, +0xa3,0x30,0x8, 0x4, 0x9d,0x31,0x80,0x4, 0x6d,0x33,0x9d,0x32,0x12,0xe6,0xdc,0xa, +0xf0,0x74,0x2, 0xac,0xbc,0x9, 0x5, 0x78,0x2c,0xa, 0x10,0x7d,0x21,0x9d,0x2f,0xbe, +0x24,0x0, 0x0, 0x8, 0x4, 0x9d,0x1f,0x80,0x4, 0x6d,0x11,0x9d,0x12,0x2d,0x13,0xbd, +0x41,0x28,0x4, 0x7d,0x41,0x7c,0xef,0xb, 0xf0,0xbc,0xdf,0x38,0xa2,0xbe,0xe0,0xff, +0x68,0x46,0x7e,0x70,0x2, 0xac,0x7e,0x9, 0xb3,0x63,0x6d,0x9, 0x73,0x63,0x6e,0x12, +0x9b,0x6a,0x7d,0x13,0x74,0x2, 0xac,0xbe,0x9, 0xb5,0x63,0x6d,0x12,0xa7,0xe9,0xbd, +0x13,0x48,0x25,0x7e,0x70,0x2, 0xac,0x7e,0x9, 0x3, 0x63,0x6d,0x7e,0xa1,0x27,0x74, +0x2, 0xa4,0x19,0x5, 0x63,0xa9,0x9, 0x3, 0x63,0x6e,0x19,0x5, 0x63,0xaa,0x74,0xff, +0x19,0xb3,0x63,0x6d,0xb, 0x10,0x5, 0x27,0xb, 0xc0,0x7e,0x3, 0x78,0x68,0xbc,0xc, +0x28,0x2, 0xc1,0x34,0x7c,0xc1,0x80,0x76,0x6d,0x0, 0x7e,0xe0,0xff,0x6c,0xff,0x80, +0x40,0x7c,0xbf,0x12,0x6e,0x5, 0x60,0x37,0x7e,0x30,0x2, 0xac,0x3f,0x9, 0xb1,0x63, +0x6d,0xbe,0xb0,0xff,0x68,0x29,0x9, 0x71,0x63,0x6e,0x12,0x9b,0x6a,0x7d,0x43,0xc2, +0x0, 0xbd,0x4, 0x58,0x2, 0xd2,0x0, 0x30,0x0, 0x15,0x7e,0x70,0x2, 0xac,0x7f,0x9, +0xb3,0x63,0x6d,0xf5,0x28,0x9, 0xb3,0x63,0x6e,0xf5,0x29,0x7d,0x4, 0x7c,0xef,0xb, +0xf0,0xbc,0xdf,0x38,0xbc,0xbe,0xe0,0xff,0x68,0x22,0x7e,0xa1,0x28,0x7e,0x31,0x27, +0x74,0x2, 0xac,0x3b,0x19,0xa1,0x63,0xa9,0xe5,0x29,0x19,0xb1,0x63,0xaa,0x7e,0xa0, +0xff,0x7e,0x30,0x2, 0xac,0x3e,0x19,0xa1,0x63,0x6d,0x5, 0x27,0xb, 0xc0,0x90,0x21, +0x51,0xe4,0x93,0xbc,0xbc,0x38,0x81,0x90,0x21,0x52,0xe4,0x93,0x7c,0xab,0x74,0x2, +0xa4,0xca,0x59,0x7e,0x18,0x63,0xa9,0x7e,0x8, 0x63,0x6d,0x12,0x24,0x13,0x1b,0xfd, +0x7e,0xd1,0x27,0x12,0x73,0x78,0x74,0x2, 0xac,0x7b,0x7e,0x8, 0x78,0x2c,0x74,0xff, +0x12,0x24,0x38,0xbe,0xd0,0x0, 0x28,0x37,0xa, 0x3d,0x3e,0x34,0xca,0x39,0x7e,0x18, +0x63,0x6d,0x7e,0x8, 0x6c,0x9, 0x12,0x24,0x13,0x1b,0xfd,0xa, 0x3d,0x3e,0x34,0xca, +0x39,0x7e,0x18,0x63,0x6d,0x7e,0x8, 0x78,0x2c,0x12,0x24,0x13,0x1b,0xfd,0x6c,0xcc, +0x80,0x9, 0xd2,0x2, 0x7c,0xbc,0x12,0x6e,0x5b,0xb, 0xc0,0xbc,0xdc,0x38,0xf3,0x7a, +0xd3,0x78,0x68,0x7a,0xd3,0x6d,0x93,0x90,0x21,0x51,0xe4,0x93,0xbe,0xb3,0x6d,0x93, +0x50,0x4, 0x7a,0xb3,0x6d,0x93,0xda,0x3b,0x22,0x12,0x71,0x41,0x12,0x2b,0x5c,0x12, +0x72,0xcc,0x12,0x30,0x1e,0x12,0x29,0x36,0x7e,0xb3,0x76,0xe6,0x24,0xfd,0x68,0x9, +0xb, 0xb1,0x78,0xf4,0x12,0x2c,0x50,0x80,0xef,0x12,0x2d,0x4c,0x80,0xea,0x12,0x3e, +0xc0,0x12,0xd9,0xba,0x12,0x0, 0x26,0x2, 0x30,0x2a,0xca,0xf8,0x12,0xda,0xb6,0x7e, +0xf0,0x1, 0x7c,0xbf,0x12,0x30,0x49,0xb, 0xf0,0xbe,0xf0,0x4, 0x78,0xf4,0xe5,0x1e, +0x70,0x4, 0xe4,0x12,0x30,0x49,0xda,0xf8,0x22,0xca,0x79,0x7c,0xeb,0xbe,0xe0,0x4, +0x40,0x2, 0x21,0x1f,0x12,0x67,0xf1,0xbe,0xf0,0x3, 0x40,0x2, 0x21,0x1f,0x74,0x2, +0xac,0xbe,0x9, 0xb5,0x29,0x84,0x54,0x3f,0xa, 0x3b,0x74,0x2c,0xac,0xbf,0x59,0x35, +0x0, 0xf5,0x74,0x2, 0xac,0xbe,0x9, 0xb5,0x29,0x83,0x54,0x1f,0x7c,0x6b,0x6c,0x77, +0x12,0x31,0x24,0x74,0x2c,0xac,0xbf,0x59,0x35,0x0, 0xf7,0x12,0x33,0xdf,0x74,0x1, +0x7e,0x70,0x27,0xac,0x7e,0x12,0x37,0xdb,0x7e,0x30,0x2c,0xac,0x3f,0x12,0x31,0x50, +0x7e,0x70,0x27,0xac,0x7e,0x12,0x37,0xfc,0x7e,0x30,0x2c,0xac,0x3f,0x12,0x38,0x79, +0x74,0x27,0xac,0xbe,0x9, 0x75,0x28,0xe7,0x12,0x31,0x22,0x12,0xd, 0xd3,0x7e,0x30, +0x2c,0xac,0x3f,0x12,0x35,0xad,0x74,0x27,0xac,0xbe,0x9, 0x75,0x28,0xe8,0x12,0x31, +0x22,0x12,0xd, 0xe5,0x7e,0x30,0x2c,0xac,0x3f,0x12,0x35,0xad,0x74,0xa, 0xac,0xbe, +0x12,0x33,0xfa,0x7e,0x30,0x2c,0xac,0x3f,0x12,0x31,0x50,0x74,0xa, 0xac,0xbe,0x12, +0x37,0xea,0x7e,0x30,0x2c,0xac,0x3f,0x2e,0x14,0x1, 0x9, 0x6d,0x0, 0x74,0x27,0xac, +0xbe,0x9, 0xb5,0x28,0xea,0x12,0xc, 0xaa,0xe4,0x12,0x67,0x91,0x7e,0x70,0xb5,0xac, +0x7f,0x2e,0x34,0x1, 0x0, 0x12,0x33,0xdf,0x7e,0x24,0x0, 0x16,0x12,0xc, 0xcc,0xda, +0x79,0x22,0xa, 0x37,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x22,0x7e,0x30,0x2c,0xac,0x3e, +0x2e,0x14,0x1, 0x1, 0x6d,0x0, 0x74,0xa, 0xac,0xbf,0x49,0x35,0x29,0x93,0x49,0x25, +0x29,0x91,0x12,0x9, 0xad,0x7d,0x36,0x2e,0x34,0x0, 0x6, 0x7e,0x30,0x2c,0xac,0x3e, +0x2e,0x14,0x1, 0x1, 0x6d,0x0, 0x22,0x7e,0xb3,0x77,0x63,0x12,0x34,0x9, 0x7e,0x37, +0x4a,0x6d,0x4e,0x60,0x1, 0x7a,0x37,0x4a,0x6d,0x4e,0x70,0x20,0x7a,0x37,0x4a,0x6d, +0xca,0x3b,0x7e,0xf3,0x78,0x97,0x7e,0x30,0x27,0xac,0x3f,0x9, 0xb1,0x28,0xe7,0xf5, +0x27,0x9, 0xb1,0x28,0xe8,0xf5,0x28,0x7e,0x4, 0x0, 0x27,0xca,0x9, 0x2e,0x14,0x28, +0xe7,0x6d,0x0, 0x7e,0x18,0x77,0x62,0x12,0x24,0x13,0x1b,0xfd,0x74,0x27,0xac,0xbf, +0x9, 0xe5,0x28,0xeb,0x7e,0xd0,0xb5,0xac,0xde,0x2e,0x64,0x1, 0x0, 0xe4,0x12,0x67, +0x91,0x12,0x33,0x92,0x5e,0x24,0x1, 0x0, 0x68,0xc, 0x5e,0x60,0xfe,0x7a,0x37,0x4a, +0x6d,0x7c,0xbf,0x12,0x38,0x1f,0x12,0x33,0x92,0x5e,0x24,0x0, 0x1, 0x68,0x2e,0x5e, +0x70,0xfe,0x7a,0x37,0x4a,0x6d,0x7e,0xb3,0x77,0x62,0x12,0x38,0x7, 0x50,0xc, 0x7e, +0xb3,0x77,0x62,0x12,0x38,0x80,0x12,0x35,0xc3,0x80,0x12,0x7e,0xa1,0x27,0x7e,0x70, +0x27,0xac,0x7f,0x19,0xa3,0x28,0xe7,0xe5,0x27,0x7a,0xb3,0x77,0x62,0x12,0x33,0x92, +0x5e,0x24,0x0, 0x2, 0x68,0x37,0x5e,0x70,0xfd,0x7a,0x37,0x4a,0x6d,0x7e,0xb3,0x77, +0x63,0x12,0xcf,0xd6,0x50,0x15,0x7e,0xb3,0x77,0x63,0x12,0x39,0x13,0x50,0xc, 0x7e, +0xb3,0x77,0x63,0x12,0x34,0x9, 0x12,0x35,0xc3,0x80,0x12,0x7e,0xa1,0x28,0x7e,0x70, +0x27,0xac,0x7f,0x19,0xa3,0x28,0xe8,0xe5,0x28,0x7a,0xb3,0x77,0x63,0x12,0x33,0x92, +0x5e,0x24,0x0, 0x4, 0x68,0x2a,0x5e,0x70,0xfb,0x12,0x33,0x99,0x7e,0x30,0x2c,0xac, +0x3e,0x12,0x33,0xe4,0x74,0x1, 0x7e,0x70,0x27,0xac,0x7f,0x12,0x37,0xdb,0x12,0x33, +0xeb,0x12,0x31,0x2b,0x12,0x36,0xa5,0x12,0x35,0xb4,0x12,0x37,0xd4,0x12,0x68,0x42, +0x12,0x33,0x92,0x5e,0x24,0x0, 0x8, 0x68,0xe, 0x5e,0x70,0xf7,0x7a,0x37,0x4a,0x6d, +0x7e,0xb3,0x77,0x65,0x12,0x38,0xcc,0x12,0x33,0x92,0x5e,0x24,0x0, 0x10,0x68,0xc, +0x5e,0x70,0xef,0x12,0x33,0xa0,0x12,0x31,0x2b,0x12,0x36,0xa5,0x12,0x33,0x92,0x5e, +0x24,0x0, 0x20,0x68,0x37,0x5e,0x70,0xdf,0x7a,0x37,0x4a,0x6d,0x4e,0x60,0x2, 0x12, +0x33,0x99,0x12,0x33,0xeb,0x12,0x31,0x4b,0x74,0xa, 0xac,0xbf,0x12,0x37,0xea,0x12, +0x31,0x4b,0x7e,0x70,0x27,0xac,0x7f,0x12,0x37,0xfc,0x7c,0xbf,0x12,0xdd,0xfd,0x12, +0x35,0xb4,0x12,0x31,0x45,0x7e,0x24,0x0, 0x10,0x12,0xc, 0xcc,0x12,0x33,0x92,0x5e, +0x24,0x0, 0x40,0x68,0x17,0x5e,0x70,0xbf,0x7a,0x37,0x4a,0x6d,0x12,0x3e,0xb3,0x78, +0x5, 0x12,0x37,0x6b,0x80,0x3, 0x12,0x37,0x60,0x12,0x4c,0x66,0x12,0x33,0x92,0x5e, +0x24,0x0, 0x80,0x68,0xa, 0x5e,0x70,0x7f,0x7a,0x37,0x4a,0x6d,0x12,0x37,0x9e,0x12, +0x33,0x92,0x5e,0x24,0x2, 0x0, 0x68,0x3b,0x5e,0x60,0xfd,0x7a,0x37,0x4a,0x6d,0x74, +0x27,0xac,0xbf,0x49,0xe5,0x28,0xee,0xb, 0xe4,0x7e,0xf7,0x77,0x8b,0xad,0xef,0xbe, +0x78,0x7f,0xff,0x28,0x4, 0x7e,0x78,0x7f,0xff,0x7e,0x8, 0x0, 0x83,0x12,0x36,0xac, +0x7e,0x8, 0x0, 0xbf,0x12,0x36,0xac,0x7e,0x8, 0x0, 0x83,0x7d,0x3f,0x12,0xde,0xb9, +0x12,0xc, 0xcc,0x12,0x33,0x92,0x5e,0x24,0x4, 0x0, 0x68,0xe, 0x5e,0x60,0xfb,0x7a, +0x37,0x4a,0x6d,0x7e,0xb3,0x77,0x3b,0x12,0xce,0xff,0x12,0x33,0x92,0x5e,0x24,0x10, +0x0, 0x68,0x7, 0x5e,0x60,0xef,0x7a,0x37,0x4a,0x6d,0x12,0x33,0x92,0x5e,0x24,0x20, +0x0, 0x68,0xc, 0x5e,0x60,0xdf,0x7a,0x37,0x4a,0x6d,0x7c,0xbf,0x12,0x4f,0xfa,0xda, +0x3b,0x22,0x7e,0x37,0x4a,0x6d,0x7d,0x23,0x22,0x7a,0x37,0x4a,0x6d,0x4e,0x60,0x10, +0x7a,0x37,0x4a,0x6d,0x7c,0xbf,0xca,0xf8,0x7c,0xfb,0x12,0x35,0xc3,0x7e,0xa3,0x77, +0x64,0x7e,0x70,0x27,0xac,0x7f,0x19,0xa3,0x28,0xe9,0x6c,0xaa,0x7e,0x50,0x2, 0xac, +0x5a,0x49,0x42,0x77,0x69,0x7e,0x70,0x27,0xac,0x7f,0x2d,0x32,0x59,0x43,0x28,0xee, +0xb, 0xa0,0xbe,0xa0,0x10,0x40,0xe5,0x7c,0xbf,0x12,0x66,0xf8,0xda,0xf8,0x22,0x7e, +0x30,0x2c,0xac,0x3f,0x2e,0x14,0x0, 0xf5,0x6d,0x0, 0x22,0x7e,0x30,0x2c,0xac,0x3e, +0x2e,0x14,0x0, 0xf9,0x6d,0x0, 0x74,0xa, 0xac,0xbf,0x9, 0xb5,0x29,0x8b,0x2, 0xd, +0x73,0x74,0x26,0xac,0xbf,0x9, 0xb5,0x75,0x37,0xca,0x3b,0x7c,0xfb,0x6c,0xee,0x74, +0x27,0xac,0xbe,0x19,0xf5,0x28,0xe8,0xb, 0xe0,0xbe,0xe0,0x4, 0x78,0xf1,0x7e,0x64, +0x1, 0x0, 0x6c,0xee,0x7e,0x30,0x2c,0xac,0x3e,0x12,0x35,0xad,0xa, 0x3f,0x12,0x31, +0x24,0x12,0xd, 0xe5,0x12,0x35,0xb4,0x12,0x38,0xc2,0x40,0xe8,0xda,0x3b,0x22,0xca, +0x3b,0x7e,0x73,0x6f,0x68,0x7a,0x73,0x63,0x6d,0x7e,0x73,0x6f,0x69,0x7a,0x73,0x63, +0x6e,0x7e,0xd3,0x77,0x63,0x7e,0xe3,0x77,0x5a,0x7e,0xf3,0x77,0x5b,0x7e,0x8, 0x63, +0x6f,0x7e,0x34,0x0, 0x8, 0xe4,0x12,0x24,0x38,0x7e,0x34,0x0, 0x20,0xca,0x39,0x7e, +0x18,0x77,0x69,0x7e,0x8, 0x63,0x77,0x12,0x24,0x13,0x1b,0xfd,0x74,0x5, 0x7a,0xb3, +0x77,0x63,0xe4,0x7a,0xb3,0x77,0x5a,0x74,0x2, 0x7a,0xb3,0x77,0x5b,0x6c,0xcc,0x7e, +0x34,0x0, 0x2, 0x74,0x2, 0xac,0xbc,0x59,0x35,0x77,0x69,0xb, 0xc0,0xbe,0xc0,0x10, +0x78,0xf1,0x12,0x31,0x57,0x6c,0xcc,0x4c,0xcc,0x78,0xd, 0x7e,0xb3,0x73,0xda,0x54, +0x1, 0xb4,0x1, 0x4, 0x74,0x1, 0x80,0x12,0xbe,0xc0,0x1, 0x78,0x14,0x7e,0xb3,0x73, +0xda,0x54,0x2, 0x1e,0xb0,0xb4,0x1, 0x9, 0x74,0x4, 0x7a,0xb3,0x6f,0x68,0xe4,0x80, +0x34,0xbe,0xc0,0x2, 0x78,0x16,0x7e,0xb3,0x73,0xda,0x54,0x4, 0x1e,0xb0,0x1e,0xb0, +0xb4,0x1, 0x9, 0xe4,0x7a,0xb3,0x6f,0x68,0x74,0x1, 0x80,0x19,0xbe,0xc0,0x3, 0x78, +0x46,0x7e,0xb3,0x73,0xda,0x54,0x8, 0xc4,0x23,0x54,0x1f,0xb4,0x1, 0x39,0xe4,0x7a, +0xb3,0x6f,0x68,0x74,0x4, 0x7a,0xb3,0x6f,0x69,0x7e,0x34,0x21,0x57,0x12,0x2a,0xa9, +0x12,0x2d,0x41,0x74,0x1f,0x7a,0xb3,0x73,0xd4,0x12,0x29,0xf2,0x7e,0x73,0x78,0x97, +0xa, 0x7, 0x12,0x35,0xa6,0xa, 0x3c,0x2e,0x37,0x73,0xd6,0x2d,0x31,0x9, 0x73,0x4e, +0xa8,0xa, 0x2c,0x19,0x72,0x63,0x6f,0xb, 0xc0,0xbe,0xc0,0x4, 0x68,0x2, 0x81,0xa7, +0x6c,0xcc,0xa, 0x3c,0x9, 0x73,0x63,0x6f,0x12,0x77,0x99,0x12,0x35,0xa6,0xa, 0x2c, +0x2e,0x27,0x73,0xd6,0x2d,0x21,0x19,0x72,0x4e,0xa8,0xb, 0xc0,0xbe,0xc0,0x4, 0x40, +0xe1,0x7e,0x73,0x63,0x6d,0x7a,0x73,0x6f,0x68,0x7e,0x73,0x63,0x6e,0x7a,0x73,0x6f, +0x69,0x7a,0xd3,0x77,0x63,0x7a,0xe3,0x77,0x5a,0x7a,0xf3,0x77,0x5b,0x7e,0x34,0x0, +0x20,0xca,0x39,0x7e,0x18,0x63,0x77,0x7e,0x8, 0x77,0x69,0x12,0x24,0x13,0x1b,0xfd, +0x12,0x31,0x57,0xe4,0x7a,0xb3,0x77,0x60,0x7a,0xb3,0x77,0x5f,0xda,0x3b,0x22,0x7e, +0x35,0x29,0x7c,0x67,0xa, 0xf, 0x7e,0x14,0x2, 0x3c,0xad,0x10,0x22,0x2e,0x14,0x0, +0xf9,0x6d,0x0, 0x22,0x7d,0x36,0xb, 0x35,0x74,0x2c,0xac,0xbe,0x49,0x25,0x0, 0xf9, +0x2, 0x0, 0x2e,0x12,0xe7,0x18,0x68,0x3a,0xe5,0x1e,0x60,0x36,0x7e,0xb3,0x77,0x62, +0x7e,0x73,0x77,0x63,0x12,0xd8,0xfe,0x7d,0x23,0x7e,0x34,0x0, 0x3, 0xad,0x32,0x7e, +0x24,0x0, 0xa, 0x8d,0x32,0x6c,0xaa,0x7e,0x50,0x2, 0xac,0x5a,0x49,0x12,0x77,0x69, +0xbd,0x13,0x28,0x7, 0x59,0x32,0x77,0x69,0x12,0xe6,0xae,0xb, 0xa0,0xbe,0xa0,0x10, +0x78,0xe5,0x22,0x12,0x36,0x9c,0x7d,0x1, 0x5e,0x4, 0x0, 0x1, 0x78,0xa, 0xe4,0x7a, +0xb3,0x78,0x97,0x75,0x1e,0x0, 0x80,0x2f,0x5e,0x14,0x0, 0x2, 0x78,0x5, 0x12,0x36, +0xb3,0x80,0x24,0x7e,0xb3,0x78,0x97,0xbe,0xb0,0x1, 0x68,0x2, 0x70,0x19,0x12,0x36, +0x93,0x68,0xb, 0x74,0x2, 0x7a,0xb3,0x78,0x97,0x75,0x1e,0x2, 0x80,0x9, 0x74,0x3, +0x7a,0xb3,0x78,0x97,0x75,0x1e,0x3, 0x74,0x1, 0x12,0x30,0x49,0x7e,0xb3,0x78,0x97, +0x24,0x0, 0x68,0x2d,0x24,0xfd,0x68,0x16,0x4, 0x78,0x2a,0x12,0x36,0x9c,0x5e,0x14, +0x0, 0x2, 0x68,0x2e,0x12,0x36,0x93,0x78,0x29,0x74,0x1, 0x2, 0x5, 0xbc,0x12,0x36, +0x9c,0x5e,0x14,0x0, 0x2, 0x68,0x1b,0x12,0x36,0x93,0x68,0x16,0x74,0x1, 0x2, 0x5, +0x30,0xe4,0x2, 0x30,0x49,0x7e,0xf, 0x78,0xf2,0x12,0x37,0xe2,0x12,0x37,0xf5,0x12, +0x36,0xb3,0x22,0x69,0x31,0x0, 0xe, 0x5e,0x34,0x0, 0x8, 0x22,0x7e,0x1f,0x78,0xf2, +0x69,0x11,0x0, 0x6, 0x22,0x7e,0x24,0x0, 0x4, 0x2, 0xc, 0xcc,0x7e,0x37,0x77,0x89, +0x2, 0xc, 0x88,0x74,0x1, 0x7a,0xb3,0x78,0x97,0x75,0x1e,0x1, 0x22,0x7c,0xbf,0x7e, +0x73,0x75,0x33,0xca,0x79,0x7c,0xf7,0x7c,0xeb,0xd2,0x18,0x12,0x34,0x1, 0xbe,0xe0, +0x3, 0x7c,0xbe,0x7e,0x70,0x26,0x78,0x7, 0xac,0x7f,0x12,0x37,0x6d,0x80,0x5, 0xac, +0x7f,0x12,0x37,0x62,0x12,0x4c,0x66,0xda,0x79,0x22,0xca,0x79,0x7c,0xfb,0xc2,0x2, +0x7c,0xbf,0x12,0xc6,0xa3,0xe5,0x1e,0x60,0x5d,0x6c,0xee,0x74,0x26,0xac,0xbe,0x9, +0xb5,0x75,0x44,0x60,0x38,0x12,0xe7,0x10,0x7c,0x7e,0x12,0x36,0xc3,0xd2,0x2, 0xbe, +0xf0,0x3, 0xa2,0x1, 0x92,0x3, 0x74,0x26,0x78,0xc, 0xac,0xbe,0x49,0x15,0x75,0x5b, +0x49,0x5, 0x75,0x59,0x80,0xa, 0xac,0xbe,0x49,0x15,0x75,0x53,0x49,0x5, 0x75,0x51, +0x49,0x35,0x75,0x57,0x49,0x25,0x75,0x55,0x7c,0xbf,0x12,0x65,0x99,0x20,0xc, 0x6, +0x20,0xd, 0x3, 0x30,0xf, 0x9, 0x30,0x2, 0x3, 0x12,0x36,0xbd,0xc3,0x80,0xe, 0xb, +0xe0,0xbe,0xe0,0x3, 0x40,0xa5,0x30,0x2, 0x3, 0x12,0x36,0xbd,0xd3,0xda,0x79,0x22, +0xac,0x67,0x49,0x13,0x75,0x47,0x49,0x3, 0x75,0x45,0x22,0xac,0x67,0x49,0x13,0x75, +0x4b,0x49,0x3, 0x75,0x49,0x22,0xca,0xf8,0x7c,0xfb,0xbe,0xf0,0x3, 0x50,0x1c,0xbe, +0x70,0x3, 0x50,0x17,0xd2,0x4, 0x12,0x3c,0x96,0x12,0x34,0x1, 0x7e,0xb3,0x78,0x97, +0x7c,0x7f,0x12,0x36,0xc3,0x7a,0xf3,0x75,0x33,0xd2,0x16,0xda,0xf8,0x22,0xca,0x3b, +0x7e,0x67,0x6f,0x6a,0x7e,0x77,0x6f,0x6c,0x74,0x1, 0x12,0x67,0x91,0x7e,0xb3,0x6f, +0x76,0x7e,0x34,0x1, 0x0, 0x7e,0x8, 0x6f,0x77,0x7d,0x26,0x60,0xb, 0x12,0x4, 0x96, +0x12,0xe5,0xea,0x12,0x3, 0xfa,0x80,0x9, 0x12,0x3, 0xfa,0x12,0xe5,0xea,0x12,0x4, +0x96,0xda,0x3b,0x22,0x7d,0x36,0x74,0x2c,0xac,0xbe,0x22,0x9, 0x73,0x28,0xe9,0x2, +0xd, 0x23,0x2e,0x14,0x0, 0xe, 0xb, 0xa, 0x30,0x22,0x49,0x35,0x29,0x93,0x49,0x25, +0x29,0x91,0x2, 0x9, 0xad,0x5e,0x70,0xfb,0x1b,0xa, 0x30,0x22,0x2e,0x34,0x28,0xee, +0x6d,0x22,0x74,0x10,0x2, 0xb, 0x8, 0x7c,0x7b,0x74,0x8, 0xac,0x7b,0xbe,0x34,0x0, +0x4e,0x38,0x2, 0xc3,0x22,0xbe,0x34,0x0, 0x1e,0x50,0x2, 0xc3,0x22,0xd3,0x22,0x7c, +0x7b,0x74,0x27,0xac,0xb7,0x9, 0x95,0x28,0xeb,0x7e,0x63,0x77,0x5a,0x74,0x2, 0xac, +0xb7,0x19,0x65,0x29,0x83,0x7e,0x63,0x77,0x5b,0x74,0x2, 0xac,0xb7,0x19,0x65,0x29, +0x84,0x74,0x2, 0xac,0x7b,0x2e,0x34,0x29,0x83,0x7e,0x14,0x0, 0x29,0x12,0x23,0x44, +0x7e,0x30,0x2c,0xac,0x39,0x7d,0x31,0x2e,0x34,0x0, 0xf5,0x12,0x38,0x79,0x12,0xb, +0x44,0x7e,0x70,0xb5,0xac,0x79,0x2e,0x34,0x1, 0x0, 0x7e,0x30,0x2c,0xac,0x39,0x12, +0x33,0xe4,0x7e,0x24,0x0, 0x2, 0x2, 0xc, 0xcc,0x2e,0x14,0x0, 0xf7,0x6d,0x0, 0x22, +0xca,0x3b,0x7c,0xfb,0x6c,0xee,0x74,0x27,0xac,0xbe,0x19,0xf5,0x28,0xe7,0xb, 0xe0, +0xbe,0xe0,0x4, 0x78,0xf1,0x7e,0x64,0x1, 0x0, 0x6c,0xee,0x7e,0x30,0x2c,0xac,0x3e, +0x12,0x38,0x79,0xa, 0x3f,0x12,0x31,0x24,0x12,0xd, 0xd3,0x7d,0x36,0xb, 0x34,0x74, +0x2c,0xac,0xbe,0x49,0x25,0x0, 0xf7,0x12,0x0, 0x2e,0x12,0x38,0xc2,0x40,0xdc,0xda, +0x3b,0x22,0x2e,0x64,0x0, 0xb5,0xb, 0xe0,0xbe,0xe0,0x3, 0x22,0xca,0x3b,0x7c,0xfb, +0x6c,0xee,0x74,0x27,0xac,0xbe,0x19,0xf5,0x28,0xea,0xb, 0xe0,0xbe,0xe0,0x4, 0x78, +0xf1,0x7e,0x64,0x1, 0xa, 0x6c,0xee,0x7e,0x30,0x2c,0xac,0x3e,0x2e,0x14,0x1, 0x9, +0x6d,0x0, 0x7c,0xbf,0x12,0xc, 0xaa,0x12,0x37,0xd4,0x49,0x25,0x1, 0x9, 0x12,0x6, +0x48,0x12,0x37,0xd4,0x49,0x25,0x1, 0x9, 0x12,0x6, 0xc5,0x12,0x38,0xc2,0x40,0xd7, +0xda,0x3b,0x22,0x7c,0x7b,0x74,0x8, 0xac,0x7b,0xbe,0x34,0x0, 0x12,0x50,0x2, 0xc3, +0x22,0xd3,0x22,0x7c,0x2b,0xa5,0xba,0xfa,0x5, 0x7e,0xb3,0x4a,0x66,0x22,0xa5,0xba, +0xfc,0x3, 0x74,0x1, 0x22,0xbe,0x20,0x5b,0x38,0x7, 0xa, 0x32,0x9, 0xb3,0x77,0x31, +0x22,0xbe,0x20,0x6a,0x68,0x4, 0xa5,0xba,0x6b,0x1d,0x7e,0x37,0x4a,0x63,0x7d,0x23, +0xb, 0x24,0x7a,0x27,0x4a,0x63,0x2e,0x37,0x4e,0x7f,0x7e,0x39,0x30,0xa5,0xba,0x6b, +0x3, 0x75,0x1a,0x6a,0x7c,0xb3,0x22,0xbe,0x20,0x6e,0x68,0x4, 0xa5,0xba,0x6f,0x1d, +0x7e,0x37,0x4a,0x61,0x7d,0x23,0xb, 0x24,0x7a,0x27,0x4a,0x61,0x2e,0x37,0x4a,0x6f, +0x7e,0x39,0x30,0xa5,0xba,0x6f,0x3, 0x75,0x1a,0x6e,0x7c,0xb3,0x22,0xbe,0x20,0x6c, +0x68,0x4, 0xa5,0xba,0x6d,0x1d,0x7e,0x37,0x4e,0x7d,0x7d,0x23,0xb, 0x24,0x7a,0x27, +0x4e,0x7d,0x2e,0x37,0x4a,0x6b,0x7e,0x39,0x30,0xa5,0xba,0x6d,0x3, 0x75,0x1a,0x6c, +0x7c,0xb3,0x22,0xbe,0x20,0x89,0x68,0x4, 0xa5,0xba,0x8a,0x1d,0x7e,0x37,0x4e,0x83, +0x7d,0x23,0xb, 0x24,0x7a,0x27,0x4e,0x83,0x2e,0x37,0x4e,0x81,0x7e,0x39,0x30,0xa5, +0xba,0x8a,0x3, 0x75,0x1a,0x89,0x7c,0xb3,0x22,0xbe,0x20,0x70,0x40,0xa, 0xbe,0x20, +0x7f,0x38,0x5, 0x7c,0xb2,0x2, 0x3a,0xa0,0xbe,0x20,0x81,0x68,0x4, 0xa5,0xba,0x82, +0x2a,0x7e,0xb3,0x77,0x48,0x7c,0xab,0xbe,0xa0,0x20,0x40,0xd, 0xbe,0xa0,0x40,0x50, +0x8, 0xa, 0x3a,0x9, 0x33,0x6b,0xc9,0x80,0x3, 0x12,0xe5,0xd8,0x4, 0x7a,0xb3,0x77, +0x48,0xa5,0xba,0x82,0x3, 0x75,0x1a,0x81,0x7c,0xb3,0x22,0xa5,0xba,0x86,0x5, 0x7e, +0xb3,0x4a,0x68,0x22,0xa5,0xba,0x87,0x5, 0x7e,0xb3,0x4a,0x60,0x22,0xa5,0xba,0x88, +0x19,0x7e,0x1f,0x78,0xf2,0x69,0x31,0x0, 0x10,0x5e,0x34,0x38,0x0, 0xa, 0x56,0x1e, +0x54,0x1e,0x54,0x1e,0x54,0x5e,0x54,0x0, 0x7, 0x22,0xbe,0x20,0x90,0x40,0xa, 0xbe, +0x20,0x94,0x38,0x5, 0x7c,0xb2,0x2, 0x6a,0x2f,0xbe,0x20,0x99,0x68,0x4, 0xa5,0xba, +0x9a,0x1b,0x7e,0x33,0x4a,0x65,0x7c,0xb3,0x4, 0x7a,0xb3,0x4a,0x65,0xa, 0x33,0x9, +0x33,0x4e,0x85,0xa5,0xba,0x9a,0x3, 0x75,0x1a,0x99,0x7c,0xb3,0x22,0xa5,0xba,0x9b, +0x5, 0x7e,0xb3,0x4a,0x67,0x22,0xa5,0xba,0xf6,0x5, 0x7e,0xb3,0x78,0xe5,0x22,0xa5, +0xba,0xf7,0xb, 0x7e,0x57,0x78,0xe6,0x7e,0x44,0x0, 0x64,0x8d,0x54,0x22,0xe4,0x22, +0x7c,0x6b,0x7e,0x70,0xff,0x7c,0xb6,0x24,0x8c,0xbe,0xb0,0xa, 0x40,0x2, 0x61,0x4c, +0x7e,0xa0,0x3, 0xa4,0x90,0x3a,0xb8,0x73,0x2, 0x3a,0xf6,0x2, 0x3b,0x4c,0x2, 0x3a, +0xd6,0x2, 0x3a,0xe4,0x2, 0x3a,0xed,0x2, 0x3a,0xff,0x2, 0x3b,0x1b,0x2, 0x3b,0xa, +0x2, 0x3b,0x20,0x2, 0x3b,0x20,0x7e,0x1f,0x78,0xf2,0x69,0x31,0x0, 0xe, 0x5e,0x34, +0x0, 0x4, 0x80,0x68,0x7e,0x1f,0x78,0xf2,0x12,0x36,0x93,0x80,0x5f,0x12,0x3b,0x65, +0x5e,0x34,0x0, 0x2, 0x80,0x56,0x12,0x3b,0x65,0x5e,0x34,0x0, 0x1, 0x80,0x4d,0x12, +0x3b,0x65,0x5e,0x34,0x4, 0x0, 0xa, 0x36,0x80,0xb, 0x12,0x3b,0x65,0x5e,0x34,0x8, +0x0, 0xa, 0x36,0x1e,0x34,0x1e,0x34,0x1e,0x34,0x80,0x31,0x7e,0x71,0xef,0x80,0x2c, +0x7e,0x73,0x78,0x8c,0x7c,0xb7,0x4, 0x7a,0xb3,0x78,0x8c,0xa, 0x27,0x9, 0x72,0x1, +0x7d,0x7e,0xb3,0x77,0x55,0x4, 0x7a,0xb3,0x77,0x55,0x70,0x9, 0x7e,0xb3,0x77,0x54, +0x4, 0x7a,0xb3,0x77,0x54,0xa5,0xbe,0x7d,0x3, 0x75,0x1a,0x7c,0x7c,0xb7,0x22,0x2e, +0x14,0x0, 0x14,0xb, 0xa, 0x30,0x4e,0x70,0x1, 0x1b,0xa, 0x30,0x75,0x1e,0x1, 0x74, +0x1, 0x7a,0xb3,0x78,0x97,0x7e,0x1f,0x78,0xf2,0x69,0x31,0x0, 0x6, 0x22,0x30,0x1b, +0x2a,0xc2,0x1b,0xd2,0x1d,0x12,0x3b,0x65,0x5e,0x34,0x0, 0x2, 0x74,0x1, 0x68,0x5, +0x12,0x5, 0x30,0x80,0x3, 0x12,0x36,0xb5,0x7e,0x34,0x0, 0x1, 0x7e,0xa1,0x1e,0x74, +0x8, 0xa4,0x59,0x35,0x77,0x91,0xe5,0x1e,0x2, 0x3c,0x29,0x30,0x1e,0x33,0xc2,0x1e, +0xc2,0x1d,0x12,0x3b,0x65,0x5e,0x34,0x0, 0x2, 0x74,0x1, 0x68,0x5, 0x12,0x5, 0xbc, +0x80,0x3, 0x12,0x36,0xb5,0x7e,0xb3,0x78,0x8f,0xb4,0x1, 0xe, 0x7e,0x34,0x0, 0x2, +0x7e,0xa1,0x1e,0x74,0x8, 0xa4,0x59,0x35,0x77,0x91,0xe5,0x1e,0x12,0x3c,0x29,0x80, +0x7, 0x30,0x1d,0x4, 0xe5,0x1e,0x70,0x3, 0x2, 0x3b,0xdc,0x22,0xe4,0x7a,0xb3,0x77, +0xb4,0x12,0xe6,0x8e,0x12,0xe5,0x70,0x12,0x3f,0xbd,0x12,0x37,0xf5,0xc2,0x4, 0x12, +0x3c,0x2, 0x12,0x51,0x89,0xbe,0xb0,0x1, 0x68,0x3, 0x12,0x4f,0xf3,0xd2,0x4, 0x2, +0x3c,0x2, 0xa2,0xac,0x92,0x5, 0xc2,0xac,0x7e,0xf, 0x78,0xf2,0x30,0x4, 0xa, 0xb, +0x16,0xb, 0xa, 0x30,0x4e,0x70,0x3, 0x80,0x8, 0xb, 0x16,0xb, 0xa, 0x30,0x5e,0x70, +0xfc,0x1b,0xa, 0x30,0xa2,0x5, 0x92,0xac,0x22,0x7c,0xab,0x12,0x67,0x7d,0x1b,0xa0, +0x68,0x12,0x1b,0xa0,0x68,0x13,0x1b,0xa0,0x68,0x14,0x2e,0xa0,0x3, 0x78,0x12,0x12, +0x3f,0xc9,0x80,0xd, 0x12,0xdd,0xb4,0x80,0x8, 0x12,0x3f,0xe2,0x80,0x3, 0x12,0xdd, +0xc7,0x2, 0x3c,0x54,0xe4,0x7a,0xb3,0x77,0xbc,0x6c,0xaa,0x80,0xd, 0x12,0xdd,0x8d, +0x2e,0xb3,0x77,0xbc,0x7a,0xb3,0x77,0xbc,0xb, 0xa0,0x7e,0xb3,0x77,0xb1,0xbc,0xba, +0x38,0xeb,0x22,0x7e,0x34,0x1, 0x16,0x7e,0x8, 0x63,0x6d,0x7e,0x24,0x0, 0x12,0x12, +0x3, 0xfa,0x7e,0x34,0x1, 0x16,0x7e,0x8, 0x63,0x91,0x7e,0x24,0x0, 0x12,0x12,0x4, +0x96,0x12,0x3b,0xdc,0xd2,0x4, 0x80,0x6, 0x30,0xc, 0x3, 0x12,0x4b,0xe2,0x7e,0xb3, +0x77,0xb4,0xbe,0xb0,0x1, 0x68,0xf1,0x30,0x4, 0x3, 0x12,0xb, 0xe5,0xc2,0x5, 0x2, +0x3c,0xb2,0xca,0xf8,0x7e,0x70,0x78,0x7e,0xb3,0x78,0x97,0x60,0x5b,0x30,0x5, 0x58, +0x7e,0xa3,0x78,0xb0,0xbe,0xa0,0x3, 0x68,0x4f,0x7e,0xb3,0x75,0x36,0x70,0x49,0x7e, +0xb3,0x28,0xe6,0x4, 0x7a,0xb3,0x28,0xe6,0xbc,0xb7,0x50,0x3, 0x30,0x2c,0x27,0xbe, +0xa0,0x1, 0x78,0x22,0x20,0x23,0x1f,0xc2,0x2c,0xd2,0x2f,0xe4,0x7a,0xb3,0x28,0xe6, +0x6c,0x77,0x12,0x3f,0xa8,0x7e,0x8, 0x57,0x98,0x12,0x4c,0x66,0x7e,0x73,0x78,0x97, +0x7a,0x73,0x29,0xbf,0x80,0x2c,0x30,0x2f,0x29,0x12,0x3e,0x9e,0x78,0x5, 0x12,0x37, +0x6b,0x80,0x1a,0x12,0x37,0x60,0x80,0x15,0xe4,0x7a,0xb3,0x28,0xe6,0x30,0x2f,0x12, +0x12,0x3e,0x9e,0x78,0x5, 0x12,0x37,0x6b,0x80,0x3, 0x12,0x37,0x60,0x12,0x4c,0x66, +0xc2,0x2f,0xda,0xf8,0x22,0x70,0xc, 0x12,0x50,0xe9,0x12,0xc, 0xea,0x12,0x50,0x87, +0x2, 0x4, 0x96,0x22,0x30,0x26,0x76,0xc2,0x26,0x12,0x2a,0x5a,0xd2,0x4, 0x12,0x3c, +0x96,0x7e,0x73,0x77,0x61,0xbe,0x73,0x78,0x97,0x68,0x7, 0x7a,0x73,0x78,0x97,0x12, +0x29,0x55,0x7e,0xb3,0x77,0x4f,0xbe,0xb3,0x6f,0x68,0x68,0x14,0x54,0x5, 0x7a,0xb3, +0x77,0x4f,0x7e,0x73,0x77,0x4f,0x7a,0x73,0x6f,0x68,0x12,0x3f,0x3f,0x12,0xde,0x2c, +0x7e,0xb3,0x77,0x50,0xbe,0xb3,0x6f,0x69,0x68,0x14,0x54,0x5, 0x7a,0xb3,0x77,0x50, +0x7e,0x73,0x77,0x50,0x7a,0x73,0x6f,0x69,0x12,0x3f,0x3f,0x12,0xde,0x2c,0x7e,0xb3, +0x77,0x3f,0x54,0xfe,0x7a,0xb3,0x77,0x3f,0x7e,0xb3,0x77,0x40,0x60,0x3, 0x12,0x60, +0x6c,0x7e,0xb3,0x77,0x5f,0x60,0x3, 0x12,0x34,0x3f,0x12,0x3b,0xdc,0x7e,0x37,0x4a, +0x6d,0x4d,0x33,0x68,0x15,0xd2,0x4, 0x12,0x3c,0x96,0x12,0x31,0x70,0x7e,0xb3,0x77, +0x3f,0x54,0xfd,0x7a,0xb3,0x77,0x3f,0x2, 0x3b,0xdc,0x22,0x6d,0x33,0x7a,0x37,0x4a, +0x63,0xd2,0x4, 0x12,0x3c,0x96,0x12,0x36,0x3, 0xe5,0x1e,0x12,0x3c,0x29,0x2, 0x3d, +0xf1,0x12,0xe7,0x0, 0x12,0x77,0x99,0x12,0x35,0xa6,0x7d,0x21,0x2e,0x24,0x4e,0xa8, +0x7a,0x27,0x4a,0x6f,0x6d,0x22,0x7a,0x27,0x4a,0x61,0x7e,0x24,0x6f,0x77,0x7a,0x27, +0x4a,0x6b,0x7e,0x24,0x0, 0x27,0xca,0x29,0x12,0xe6,0x5, 0x12,0x24,0x13,0x1b,0xfd, +0x7e,0x34,0x0, 0x2, 0xca,0x39,0x7e,0x63,0x78,0x97,0xac,0x67,0x2e,0x34,0x29,0x83, +0x6d,0x22,0x7e,0x8, 0x77,0x5a,0x12,0x24,0x13,0x1b,0xfd,0x7e,0xa3,0x78,0x97,0x74, +0xa, 0xa4,0x49,0x35,0x29,0x8f,0x7a,0x37,0x77,0x67,0x7e,0xb3,0x78,0x97,0x12,0xde, +0x9e,0x7e,0xb3,0x78,0x97,0x12,0xdd,0xfd,0x7e,0xb3,0x78,0x97,0x12,0x50,0x66,0x12, +0x3e,0x96,0x9, 0x75,0x29,0xb3,0x7a,0x73,0x77,0x51,0x12,0x3e,0x96,0x9, 0x75,0x29, +0xb4,0x7a,0x73,0x77,0x52,0x12,0x3e,0x96,0x9, 0x75,0x29,0xb5,0x7a,0x73,0x77,0x53, +0x7e,0x73,0x78,0x97,0x7a,0x73,0x77,0x61,0x2, 0x3e,0x8b,0xe5,0x1e,0x7a,0xb3,0x77, +0x3d,0x22,0x7e,0x8, 0x0, 0x71,0x7e,0xa3,0x78,0x97,0x74,0x3, 0xa4,0x22,0xe4,0x7e, +0x63,0x29,0xbf,0x7e,0x70,0x3, 0xac,0x67,0x9, 0x73,0x29,0xb3,0x12,0x3d,0x35,0x7e, +0xf3,0x29,0xbf,0xbe,0xf0,0x3, 0x7c,0xbf,0x7e,0x63,0x75,0x33,0x7e,0x70,0x26,0x22, +0x12,0x3f,0xbd,0x12,0x37,0xf5,0x12,0xd9,0x19,0x7e,0xb3,0x6f,0x76,0x7e,0x37,0x6f, +0x72,0x60,0xe, 0x7a,0x37,0x0, 0xbb,0x7e,0x37,0x6f,0x74,0x7a,0x37,0x0, 0x7f,0x80, +0xc, 0x7a,0x37,0x0, 0x7f,0x7e,0x37,0x6f,0x74,0x7a,0x37,0x0, 0xbb,0x7e,0x37,0x0, +0x7d,0x4e,0x70,0x2, 0x7a,0x37,0x0, 0x7d,0x7e,0x37,0x0, 0xb9,0x4e,0x70,0x2, 0x7a, +0x37,0x0, 0xb9,0x12,0x3e,0x92,0x9, 0xb5,0x29,0xb3,0x12,0xc, 0xea,0x12,0x3e,0x92, +0x9, 0xb5,0x29,0xb4,0x12,0xd, 0x8d,0x12,0x3e,0x92,0x12,0xe7,0x9, 0x7e,0x37,0x0, +0x71,0x7a,0x37,0x0, 0xad,0x6d,0x33,0x7e,0x8, 0x0, 0x6d,0x7e,0x24,0x0, 0x1e,0x12, +0x3, 0xfa,0x6d,0x33,0x7e,0x8, 0x0, 0xa9,0x7e,0x24,0x0, 0x1e,0x2, 0x4, 0x96,0x7e, +0xb3,0x6f,0x68,0x7e,0x73,0x6f,0x69,0x12,0x3f,0x53,0x7e,0xb3,0x6f,0x68,0x7e,0x73, +0x6f,0x69,0x22,0x7c,0x6b,0x7c,0x56,0x5e,0x50,0x4, 0x1e,0x50,0xa, 0x45,0x7c,0xb6, +0x54,0x1, 0xa, 0x5b,0x2d,0x54,0x7c,0xab,0x7c,0x67,0x5e,0x60,0x4, 0x1e,0x60,0xa, +0x26,0x7c,0xb7,0x54,0x1, 0xa, 0x3b,0x2d,0x32,0x7c,0xb7,0xa, 0x4b,0x3e,0x44,0x3e, +0x44,0xa, 0x5a,0x2d,0x54,0x7c,0xab,0x7a,0xa3,0x73,0xda,0xe4,0x7a,0xb3,0x73,0xdb, +0x7e,0x70,0x4, 0x7c,0xba,0x30,0xe0,0x9, 0x7e,0xb3,0x73,0xdb,0x4, 0x7a,0xb3,0x73, +0xdb,0x1e,0xa0,0x1b,0x70,0x78,0xec,0x22,0x12,0x3d,0x35,0x7e,0xb3,0x78,0x97,0x22, +0xd2,0x4, 0x12,0x3c,0x96,0x12,0x46,0xaa,0x70,0xfb,0x22,0xc2,0x2a,0x7e,0xf, 0x78, +0xf2,0x2e,0x14,0x0, 0x14,0xb, 0xa, 0x30,0x22,0x6d,0x33,0x12,0x3f,0xf5,0x7e,0x57, +0x77,0x91,0x12,0x3f,0xfe,0xe4,0x2, 0x3f,0xd9,0x7a,0xb3,0x77,0xb7,0x7a,0xb3,0x77, +0xb8,0x22,0x7e,0x34,0x0, 0x2, 0x12,0x3f,0xf5,0x7e,0x57,0x77,0xa1,0x12,0x3f,0xfe, +0x74,0x2, 0x2, 0x3f,0xd9,0x7e,0x24,0xc, 0x18,0x7e,0x14,0x10,0x24,0x22,0x7c,0x1b, +0x7d,0x43,0x7e,0xa3,0x77,0xb1,0xbe,0xa0,0x5, 0x50,0x1e,0x7e,0x70,0x7, 0xac,0x7a, +0x59,0x43,0x77,0xbd,0x59,0x23,0x77,0xbf,0x59,0x13,0x77,0xc1,0x19,0x13,0x77,0xc3, +0x7c,0xba,0x4, 0x7a,0xb3,0x77,0xb1,0xc3,0x22,0xd3,0x22,0x7c,0x6b,0xa5,0xbe,0xfa, +0x4, 0x7a,0x73,0x4a,0x66,0xa5,0xbe,0x0, 0x7, 0x7c,0xb7,0x12,0x6b,0x5a,0x81,0x12, +0xa5,0xbe,0xf, 0xd, 0x74,0x1, 0x7a,0xb3,0x77,0x40,0x7a,0xb3,0x77,0x41,0xd2,0x26, +0x22,0xa5,0xbe,0x2e,0xd, 0x74,0x1, 0x7a,0xb3,0x77,0x5f,0x7a,0xb3,0x77,0x60,0xd2, +0x26,0x22,0xa5,0xbe,0x12,0x5, 0x7a,0x73,0x77,0x43,0x22,0xa5,0xbe,0x11,0x2d,0xa5, +0xbf,0x1, 0x1e,0x7e,0xb3,0x77,0x42,0x60,0x2, 0x81,0x31,0x74,0x1, 0x7a,0xb3,0x77, +0x42,0xe4,0x7a,0xb3,0x77,0x44,0x7e,0xb3,0x77,0x31,0x44,0x80,0x7a,0xb3,0x77,0x31, +0x22,0xa5,0xbf,0x0, 0x2, 0x80,0x2, 0x81,0x31,0x2, 0xe7,0x0, 0xbe,0x60,0x99,0x68, +0x4, 0xa5,0xbe,0x9a,0x1d,0x7e,0xa3,0x4a,0x67,0x7c,0xba,0x4, 0x7a,0xb3,0x4a,0x67, +0xa, 0x2a,0x19,0x72,0x4e,0x85,0xa5,0xbe,0x9a,0x2, 0x80,0x2, 0x81,0x31,0x75,0x1a, +0x99,0x22,0xa5,0xbe,0x9b,0x9, 0x7a,0x73,0x4a,0x67,0x7a,0x73,0x4a,0x65,0x22,0xa5, +0xbe,0x1, 0x11,0x6d,0x22,0x7a,0x27,0x4a,0x63,0x7a,0x73,0x77,0x32,0x7c,0xb7,0x12, +0x68,0x67,0x81,0x12,0xbe,0x60,0x5b,0x28,0x2, 0x61,0x18,0xa5,0xbe,0x30,0x11,0x7e, +0x53,0x77,0x61,0xbc,0x57,0x78,0x2, 0x81,0x31,0xbe,0x70,0x4, 0x40,0x2, 0x81,0x31, +0xbe,0x60,0x20,0x40,0xc, 0xbe,0x60,0x22,0x38,0x7, 0xbe,0x70,0x3, 0x28,0x2, 0x81, +0x31,0x7c,0xb6,0x24,0xf9,0xbe,0xb0,0x29,0x40,0x2, 0x21,0x9f,0x7e,0xa0,0x3, 0xa4, +0x90,0x41,0x24,0x73,0x2, 0x44,0x31,0x2, 0x41,0x9f,0x2, 0x41,0x9f,0x2, 0x41,0x9f, +0x2, 0x44,0x31,0x2, 0x44,0x31,0x2, 0x44,0x31,0x2, 0x44,0x31,0x2, 0x41,0x9f,0x2, +0x44,0x31,0x2, 0x41,0x9f,0x2, 0x41,0x9f,0x2, 0x41,0x9f,0x2, 0x41,0x9f,0x2, 0x41, +0x9f,0x2, 0x41,0x9f,0x2, 0x41,0x9f,0x2, 0x41,0x9f,0x2, 0x41,0x9f,0x2, 0x41,0x9f, +0x2, 0x41,0x9f,0x2, 0x41,0x9f,0x2, 0x41,0x9f,0x2, 0x41,0x9f,0x2, 0x41,0x9f,0x2, +0x41,0x9f,0x2, 0x41,0x9f,0x2, 0x41,0x9f,0x2, 0x41,0x9f,0x2, 0x41,0x9f,0x2, 0x41, +0x9f,0x2, 0x41,0x9f,0x2, 0x41,0x9f,0x2, 0x41,0x9f,0x2, 0x41,0x9f,0x2, 0x41,0x9f, +0x2, 0x44,0x31,0x2, 0x44,0x31,0x2, 0x44,0x31,0x2, 0x41,0x9f,0x2, 0x44,0x31,0xa, +0x26,0x19,0x72,0x77,0x31,0x7c,0xb6,0x1b,0xb2,0xbe,0xb0,0x34,0x40,0x2, 0x41,0xda, +0x7e,0xa0,0x3, 0xa4,0x90,0x41,0xb8,0x73,0x2, 0x42,0x54,0x2, 0x42,0xda,0x2, 0x42, +0x54,0x2, 0x42,0xda,0x2, 0x42,0x58,0x2, 0x42,0x54,0x2, 0x42,0xda,0x2, 0x42,0xda, +0x2, 0x42,0xda,0x2, 0x42,0xda,0x2, 0x42,0xda,0x2, 0x42,0xda,0x2, 0x42,0xda,0x2, +0x42,0xda,0x2, 0x42,0xda,0x2, 0x42,0xda,0x2, 0x42,0xda,0x2, 0x42,0xda,0x2, 0x42, +0xda,0x2, 0x42,0xda,0x2, 0x42,0xda,0x2, 0x42,0xa0,0x2, 0x42,0xda,0x2, 0x42,0xad, +0x2, 0x42,0xda,0x2, 0x42,0xc0,0x2, 0x42,0x54,0x2, 0x42,0x54,0x2, 0x42,0x5d,0x2, +0x42,0x5d,0x2, 0x42,0x5d,0x2, 0x42,0xda,0x2, 0x42,0xcf,0x2, 0x42,0xda,0x2, 0x42, +0xda,0x2, 0x42,0xda,0x2, 0x42,0x66,0x2, 0x42,0x66,0x2, 0x42,0x66,0x2, 0x42,0xda, +0x2, 0x42,0xda,0x2, 0x42,0xda,0x2, 0x42,0xda,0x2, 0x42,0xda,0x2, 0x42,0x54,0x2, +0x42,0x6f,0x2, 0x42,0x78,0x2, 0x42,0x81,0x2, 0x42,0x8a,0x2, 0x42,0xda,0x2, 0x42, +0xda,0x2, 0x42,0x93,0xd2,0x26,0x41,0xda,0x12,0x0, 0xfd,0x80,0x7d,0x7e,0x27,0x4a, +0x6d,0x4e,0x40,0x20,0x80,0x34,0x7e,0x27,0x4a,0x6d,0x4e,0x40,0x1, 0x80,0x2b,0x7e, +0x27,0x4a,0x6d,0x4e,0x50,0x1, 0x80,0x22,0x7e,0x27,0x4a,0x6d,0x4e,0x50,0x2, 0x80, +0x19,0x7e,0x27,0x4a,0x6d,0x4e,0x50,0x4, 0x80,0x10,0x7e,0x27,0x4a,0x6d,0x4e,0x50, +0x8, 0x80,0x7, 0x7e,0x27,0x4a,0x6d,0x4e,0x50,0x10,0x7a,0x27,0x4a,0x6d,0x80,0x3a, +0x7e,0x53,0x77,0x49,0x12,0x44,0x32,0x7a,0x27,0x4a,0x61,0x80,0x2d,0x7e,0x53,0x77, +0x4b,0x12,0x44,0x32,0x3e,0x24,0x7a,0x27,0x4e,0x7d,0x7a,0x27,0x4a,0x69,0x80,0x1a, +0x7e,0x53,0x77,0x4d,0x12,0x44,0x32,0x3e,0x24,0x7a,0x27,0x4a,0x63,0x80,0xb, 0x7e, +0x53,0x77,0x54,0x12,0x44,0x32,0x7a,0x53,0x78,0x8c,0xbe,0x60,0x38,0x40,0x14,0xbe, +0x60,0x56,0x38,0xf, 0xa, 0x26,0x5e,0x24,0x0, 0x1, 0xbe,0x24,0x0, 0x1, 0x78,0x3, +0x12,0xe6,0xae,0xbe,0x60,0x58,0x40,0xb, 0x7e,0x27,0x4a,0x6d,0x4e,0x40,0x2, 0x7a, +0x27,0x4a,0x6d,0xa5,0xbe,0xa, 0x2, 0x80,0x2, 0x81,0x12,0x7e,0x37,0x4a,0x6d,0x4e, +0x60,0x4, 0x7a,0x37,0x4a,0x6d,0x81,0x12,0xbe,0x60,0x6c,0x68,0x4, 0xa5,0xbe,0x6d, +0x2b,0x7e,0x27,0x4a,0x6d,0x4e,0x50,0x80,0x7a,0x27,0x4a,0x6d,0x7e,0x27,0x4a,0x69, +0x7d,0x12,0xb, 0x14,0x7a,0x17,0x4a,0x69,0x2e,0x27,0x4a,0x6b,0x7a,0x29,0x70,0xa5, +0xbe,0x6d,0x2, 0x80,0x2, 0x81,0x12,0x75,0x1a,0x6c,0x81,0x12,0xbe,0x60,0x6e,0x68, +0x4, 0xa5,0xbe,0x6f,0x43,0x7e,0x27,0x4a,0x6d,0x4e,0x50,0x40,0x7a,0x27,0x4a,0x6d, +0x7e,0x43,0x77,0x49,0x6c,0x55,0x7e,0xb3,0x77,0x4a,0xa, 0x1b,0x2d,0x12,0x4, 0x7a, +0xb3,0x77,0x4a,0x70,0x9, 0x7e,0xb3,0x77,0x49,0x4, 0x7a,0xb3,0x77,0x49,0x7a,0x17, +0x4a,0x61,0x7e,0x27,0x4a,0x6f,0x2d,0x21,0x7a,0x29,0x70,0xa5,0xbe,0x6f,0x2, 0x80, +0x2, 0x81,0x12,0x75,0x1a,0x6e,0x80,0x7a,0xbe,0x60,0x70,0x40,0xc, 0xbe,0x60,0x7f, +0x38,0x7, 0x7c,0xb6,0x12,0x68,0x49,0x80,0x69,0xa5,0xbe,0x86,0xf, 0x7c,0xb7,0x54, +0x7, 0x7a,0xb3,0x4a,0x68,0x53,0xc3,0xf8,0x42,0xc3,0x80,0x56,0xa5,0xbe,0x87,0xf, +0x7c,0xb7,0x54,0x3, 0x7a,0xb3,0x4a,0x60,0x53,0xc2,0xfc,0x42,0xc2,0x80,0x43,0xa5, +0xbe,0x88,0x29,0x5e,0x70,0x7, 0x7e,0xf, 0x78,0xf2,0x2e,0x14,0x0, 0x10,0xb, 0xa, +0x20,0x5e,0x40,0xc7,0x1b,0xa, 0x20,0xa, 0x37,0x7d,0x23,0x7c,0x45,0x6c,0x55,0x12, +0x44,0x40,0x12,0x45,0x27,0x4d,0x32,0x1b,0xa, 0x30,0x80,0x16,0xa5,0xbe,0xf6,0x6, +0x7a,0x73,0x78,0xe5,0x80,0xc, 0xa5,0xbe,0xf7,0x8, 0x74,0x64,0xac,0xb7,0x7a,0x57, +0x78,0xe6,0x30,0x26,0xa, 0x7e,0xb3,0x77,0x3f,0x44,0x1, 0x7a,0xb3,0x77,0x3f,0x7e, +0x37,0x4a,0x6d,0x4d,0x33,0x68,0xa, 0x7e,0xb3,0x77,0x3f,0x44,0x2, 0x7a,0xb3,0x77, +0x3f,0x22,0x7c,0x25,0x6c,0x33,0xa, 0x27,0x2d,0x21,0x22,0xb, 0x18,0x20,0x3e,0x24, +0x3e,0x24,0x3e,0x24,0x3e,0x24,0x22,0x7e,0x34,0x76,0xbf,0x30,0x27,0x60,0xc2,0x27, +0x7e,0x39,0x50,0xa, 0x25,0x12,0x44,0x3e,0x3e,0x24,0x7a,0x27,0x6f,0x40,0x9, 0x53, +0x0, 0x1, 0xa, 0x25,0x12,0x44,0x3e,0x3e,0x24,0x7a,0x27,0x6f,0x42,0x7e,0xb3,0x76, +0xbd,0xb4,0x3, 0x15,0x9, 0xa3,0x0, 0x3, 0xa, 0x2a,0x12,0x44,0x3e,0x3e,0x24,0x7a, +0x27,0x6f,0x48,0x19,0xa3,0x0, 0x2, 0x80,0x16,0xb4,0x2, 0x13,0x9, 0x53,0x0, 0x2, +0xa, 0x15,0x12,0xd9,0x10,0x3e,0x14,0x7a,0x17,0x6f,0x48,0x19,0x53,0x0, 0x3, 0x9, +0x73,0x0, 0x5, 0x12,0x31,0x22,0x3e,0x34,0x3e,0x34,0x7a,0x37,0x6f,0x50,0x7e,0x37, +0x6f,0x40,0x7a,0x37,0x77,0x2f,0x4d,0x33,0x78,0xb, 0x7e,0x34,0x21,0x5b,0x12,0x2a, +0xa9,0x7a,0x37,0x77,0x2f,0x22,0x7c,0x67,0x7c,0x7b,0xa5,0xbf,0x0, 0xd, 0xbe,0x60, +0x0, 0x28,0x5, 0xe4,0x7a,0xb3,0x6f,0x38,0x2, 0xc8,0x38,0xa5,0xbe,0x0, 0x17,0x6c, +0xaa,0x80,0xe, 0x7e,0x60,0xff,0x7e,0x50,0x9, 0xac,0x5a,0x19,0x62,0x6e,0x81,0xb, +0xa0,0x12,0x45,0x1f,0x38,0xed,0x6c,0xaa,0x80,0x20,0x7e,0x30,0x9, 0xac,0x3a,0x2e, +0x14,0x6d,0xc9,0x12,0x44,0x3b,0x1b,0x18,0x20,0x7e,0x30,0x9, 0xac,0x3a,0x2e,0x14, +0x6d,0xcb,0x12,0x44,0x3b,0x1b,0x18,0x20,0xb, 0xa0,0xbc,0x7a,0x38,0xdc,0x22,0x90, +0x21,0x51,0xe4,0x93,0xbc,0xba,0x22,0x7e,0xf, 0x78,0xf2,0x2e,0x14,0x0, 0x10,0xb, +0xa, 0x30,0x22,0x30,0x0, 0x5, 0x43,0xc3,0x80,0x80,0x3, 0x53,0xc3,0x7f,0x30,0x0, +0x5, 0x43,0xc2,0x80,0x80,0x3, 0x53,0xc2,0x7f,0x7e,0xf, 0x78,0xf2,0x30,0x0, 0x8, +0x12,0x45,0x2b,0x4e,0x60,0xc4,0x80,0x6, 0x12,0x45,0x2b,0x5e,0x60,0x3b,0x1b,0xa, +0x30,0x22,0x12,0x46,0x7f,0x12,0x3f,0xb0,0x12,0x45,0xcd,0x12,0x45,0x86,0xa9,0xd6, +0xeb,0x74,0x1, 0x7e,0x70,0x82,0x12,0x45,0xe9,0xa9,0xc6,0xeb,0xd2,0x0, 0x12,0x45, +0x86,0xd2,0x0, 0x2, 0x45,0x33,0xa9,0xd0,0xce,0x30,0x0, 0x4, 0xa9,0xd5,0xc9,0x22, +0xa9,0xc5,0xc9,0x22,0x12,0x46,0xaf,0x40,0x6, 0x12,0x46,0xc5,0x12,0x0, 0x12,0x12, +0x45,0xcd,0x12,0x45,0xd5,0x80,0xb, 0x7e,0xb3,0x77,0xf, 0x60,0x2, 0x80,0x0, 0x12, +0x46,0x60,0x30,0x15,0xf2,0x7e,0xb3,0x78,0x93,0xbe,0xb0,0x0, 0x28,0x5, 0x14,0x7a, +0xb3,0x78,0x93,0xd2,0x0, 0x12,0x45,0xd5,0xd2,0x0, 0x2, 0x45,0x33,0xc2,0x0, 0x12, +0x45,0x33,0xc2,0x0, 0x22,0xa2,0x0, 0xa9,0x92,0xcb,0xa2,0x0, 0xa9,0x92,0xca,0xa2, +0x0, 0xa9,0x91,0xcb,0x22,0xe4,0x7e,0x70,0xff,0x7c,0x6b,0x7e,0xb3,0x78,0x8d,0xb4, +0x81,0x68,0xa5,0xbe,0x0, 0x2, 0x80,0x5c,0xa5,0xbe,0x1, 0x22,0xc2,0xaf,0xa, 0x27, +0x5e,0x24,0x0, 0x2, 0x68,0x2, 0xd2,0x95,0x7a,0x71,0xcd,0xa9,0xd0,0xce,0xa9,0xc6, +0xc9,0xa9,0xd0,0xce,0xa9,0xc7,0xc9,0xa9,0xd1,0x87,0xd2,0xaf,0x80,0x36,0xa5,0xbe, +0x2, 0x18,0x12,0x46,0xa5,0x70,0xf, 0xa9,0xd0,0xce,0xa9,0xc7,0xc9,0xa9,0xd0,0xce, +0xa9,0xd6,0xc9,0xa9,0xd1,0x87,0xd2,0xaf,0x80,0x1a,0xa5,0xbe,0x3, 0x1c,0x12,0x46, +0xa5,0x70,0xf, 0xa9,0xd0,0xce,0xa9,0xd7,0xc9,0xa9,0xd0,0xce,0xa9,0xc6,0xc9,0xa9, +0xd1,0x87,0xd2,0xaf,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe4,0x7a,0xb3,0x78,0x8d,0x22, +0x80,0xe, 0x12,0x46,0x7f,0x12,0x46,0xaf,0x40,0x14,0x20,0x15,0x11,0x12,0x45,0xe5, +0x12,0x46,0xaa,0x70,0xed,0x12,0x46,0x7f,0x12,0xe6,0x76,0x2, 0x45,0xe9,0x22,0x74, +0x81,0x7a,0xb3,0x78,0x8d,0x22,0x80,0xe, 0x12,0x46,0x7f,0x12,0x46,0xaf,0x40,0x14, +0x20,0x15,0x11,0x12,0x45,0xe5,0x12,0x46,0xaa,0x70,0xed,0x12,0x46,0x7f,0x12,0xe6, +0x76,0x2, 0x45,0xe9,0x22,0xc2,0xaf,0x7a,0x71,0xcd,0xa2,0x93,0xe4,0x33,0x22,0x30, +0xc, 0x3, 0x12,0x4b,0xe2,0x7e,0xb3,0x77,0xb5,0x70,0x6, 0x7e,0xb3,0x77,0xb6,0x60, +0x2, 0xd3,0x22,0xc3,0x22,0x80,0x3, 0x12,0x46,0x86,0x12,0x46,0xaf,0x50,0xf8,0x22, +0x20,0x15,0x6, 0x12,0xdd,0xda,0x12,0x0, 0x12,0x30,0x1d,0x3, 0x12,0x3b,0xdc,0x12, +0x46,0xaf,0x40,0x6, 0x12,0x46,0xc5,0x2, 0x0, 0x12,0x22,0xca,0xf8,0x7e,0x14,0x0, +0x1e,0x7e,0x4, 0x0, 0xff,0x69,0x30,0x0, 0x1, 0x7e,0xb, 0x50,0x7a,0x37,0x63,0x6e, +0x7a,0x53,0x63,0x6d,0xc2,0x0, 0x6d,0xcc,0x7e,0xb4,0xff,0xff,0x20,0x25,0x3, 0x2, +0x48,0x2a,0x7e,0xd4,0x4, 0xc, 0xca,0xd9,0x12,0x69,0x31,0x12,0x24,0x13,0x1b,0xfd, +0x6d,0xaa,0x7d,0xda,0x80,0x26,0x7d,0x2d,0x3e,0x24,0x49,0x12,0x46,0x54,0xbe,0x14, +0x0, 0x0, 0x8, 0x6, 0x49,0x32,0x46,0x54,0x80,0x4, 0x6d,0x33,0x9d,0x31,0x59,0x32, +0x46,0x54,0xbd,0x3c,0x28,0x4, 0x7d,0xc3,0x7d,0xbd,0xb, 0xd4,0x7e,0x37,0x73,0xd6, +0xbd,0x3d,0x38,0xd2,0x7e,0x37,0x4e,0x95,0xbd,0x3c,0x50,0x4, 0x7a,0xc7,0x4e,0x95, +0x7e,0x37,0x4e,0x8b,0xbd,0x3c,0x50,0x10,0xbe,0xb4,0xff,0xff,0x68,0xa, 0x7e,0x37, +0x4e,0x93,0xb, 0x34,0x7a,0x37,0x4e,0x93,0x7e,0x73,0x6f,0x65,0xa, 0x27,0x7d,0x3b, +0x8d,0x32,0x7c,0xf5,0xbe,0xf0,0x0, 0x40,0x7, 0xbe,0xf0,0x1d,0x38,0x2, 0xd2,0x0, +0x7d,0xda,0x7d,0x3d,0x3e,0x34,0x49,0x23,0x4e,0x85,0xbd,0x2c,0x50,0x51,0xbe,0xb4, +0xff,0xff,0x68,0x4b,0x9, 0xbd,0x4e,0x97,0xb4,0x1, 0x25,0x49,0x23,0x4e,0xa0,0xbd, +0x2b,0x78,0x10,0x7d,0xa3,0x2e,0xa4,0x4e,0x9a,0xb, 0xa8,0x20,0xb, 0x24,0x1b,0xa8, +0x20,0x80,0x32,0x4d,0xdd,0x78,0x14,0x30,0x0, 0x25,0x80,0xf, 0x80,0x21,0x80,0xb, +0x4d,0xdd,0x78,0x7, 0x30,0x0, 0x18,0x80,0x2, 0x80,0x14,0x59,0xb3,0x4e,0xa0,0x7e, +0x24,0x0, 0x1, 0x59,0x23,0x4e,0x9a,0x74,0x1, 0x19,0xbd,0x4e,0x97,0x80,0x6, 0x74, +0x1, 0x19,0xbd,0x63,0x6d,0x49,0xa3,0x4e,0x8d,0x49,0x23,0x4e,0x9a,0xbd,0x2a,0x28, +0x4, 0x59,0x23,0x4e,0x8d,0x9, 0xbd,0x63,0x6d,0xb4,0x1, 0x11,0x6d,0x22,0x59,0x23, +0x4e,0xa0,0x6d,0xaa,0x59,0xa3,0x4e,0x9a,0xe4,0x19,0xbd,0x4e,0x97,0xb, 0xd4,0xbe, +0xd4,0x0, 0x3, 0x68,0x3, 0x2, 0x47,0x92,0x80,0x1a,0x7e,0x8, 0x4e,0x97,0x7e,0x34, +0x0, 0x3, 0xe4,0x12,0x24,0x38,0x7e,0x8, 0x4e,0x9a,0x12,0x48,0x47,0x7e,0x8, 0x4e, +0xa0,0x12,0x48,0x47,0xda,0xf8,0x22,0x7e,0x34,0x0, 0x6, 0x2, 0x24,0x38,0xe4,0x7a, +0xb3,0x76,0xe4,0x6d,0x33,0x7a,0x37,0x4e,0x7d,0x12,0x68,0xe7,0x12,0x48,0xb3,0x12, +0x3d,0xdb,0xc2,0x1, 0x12,0x29,0x5a,0x7e,0x34,0x4, 0xc, 0xca,0x39,0x7e,0x1f,0x24, +0x64,0x7e,0xf, 0x24,0x68,0x12,0x24,0x13,0x1b,0xfd,0x12,0x3b,0xdc,0x2, 0x48,0x80, +0x7e,0x8, 0x75,0xb1,0x7e,0x34,0x0, 0xa, 0xe4,0x2, 0x24,0x38,0xe4,0x7a,0xb3,0x76, +0xe4,0x74,0x1, 0x7a,0xb3,0x78,0x97,0x7a,0xb3,0x73,0xd3,0x12,0x74,0xba,0x12,0x48, +0xb3,0x12,0x49,0x61,0x12,0x3d,0xf1,0x12,0x77,0xa0,0x12,0xbf,0xfc,0x12,0x48,0x80, +0x2, 0x29,0x45,0x7e,0x8, 0x77,0x91,0x7e,0x34,0x0, 0x20,0xe4,0x12,0x24,0x38,0x7e, +0x34,0x0, 0x1, 0x7a,0x37,0x77,0x91,0x7a,0xb3,0x77,0x93,0x74,0x1, 0x7a,0xb3,0x77, +0x94,0xe4,0x7a,0xb3,0x77,0x95,0x7e,0xb3,0x78,0x8f,0xb4,0x1, 0x31,0x7e,0x34,0x0, +0x2, 0x12,0x49,0x4d,0x12,0x49,0x31,0x7a,0x73,0x77,0x9e,0x74,0x1, 0x7a,0xb3,0x77, +0x9f,0xe4,0x7a,0xb3,0x77,0xa0,0x7e,0x34,0x0, 0x2, 0x12,0x49,0x3a,0x12,0x49,0x31, +0x7a,0x73,0x77,0xa6,0x7a,0xb3,0x77,0xa7,0x7a,0xb3,0x77,0xa8,0x80,0xa, 0x7e,0x34, +0x0, 0x1, 0x12,0x49,0x4d,0x12,0x49,0x3a,0x7e,0x34,0x0, 0x1, 0x7a,0x37,0x77,0xa9, +0x74,0x1, 0x7a,0xb3,0x77,0xab,0x7a,0xb3,0x77,0xac,0x74,0x2, 0x7a,0xb3,0x77,0xad, +0x22,0x7e,0x73,0x78,0x8e,0x1e,0x34,0xb, 0x34,0x22,0x7a,0x37,0x77,0xa1,0x74,0x1, +0x7a,0xb3,0x77,0xa3,0x7a,0xb3,0x77,0xa4,0x7a,0xb3,0x77,0xa5,0x22,0x7a,0x37,0x77, +0x99,0x74,0x1, 0x7a,0xb3,0x77,0x9b,0x7a,0xb3,0x77,0x9c,0xe4,0x7a,0xb3,0x77,0x9d, +0x22,0x7e,0xf, 0x78,0xf2,0x69,0x30,0x0, 0x6, 0x5e,0x34,0x0, 0x1, 0x68,0x18,0x12, +0x3b,0x4f,0x5e,0x34,0x0, 0x2, 0x68,0x3, 0x12,0x4f,0xe2,0x74,0x3, 0x12,0x49,0xba, +0x74,0x1, 0x12,0x30,0x49,0x80,0x2e,0x12,0x4f,0xf0,0x12,0x4f,0xd9,0x74,0x1, 0x12, +0x49,0xba,0xe4,0x12,0x30,0x49,0x7e,0xf, 0x78,0xf2,0x2e,0x14,0x0, 0xa, 0xb, 0xa, +0x30,0x4e,0x60,0x10,0x1b,0xa, 0x30,0xe4,0x7a,0xb3,0x78,0x8e,0x12,0x3f,0xbd,0x12, +0x49,0xf3,0x12,0x4f,0x8a,0xe5,0x1e,0x2, 0x3c,0x29,0xbe,0xb0,0x4, 0x50,0x33,0x7e, +0x37,0x0, 0x9f,0x5e,0x70,0xf0,0x7a,0x37,0x0, 0x9f,0xa, 0x3b,0x4e,0x37,0x0, 0x9f, +0x7a,0x37,0x0, 0x9f,0x7a,0x37,0x0, 0xdb,0x7e,0x34,0x0, 0x19,0x7e,0x8, 0x0, 0x9f, +0x12,0x67,0xea,0x7e,0x34,0x0, 0x19,0x7e,0x8, 0x0, 0xdb,0x7e,0x24,0x0, 0x1, 0x2, +0x4, 0x96,0x22,0x5e,0x70,0xfe,0x1b,0xa, 0x30,0x22,0xca,0x7b,0xca,0x6b,0xca,0x5b, +0xca,0x4b,0xca,0x2b,0xca,0x1b,0xca,0xb, 0xc0,0xd0,0xc0,0x83,0xc0,0x82,0x7e,0xf, +0x78,0xf2,0x69,0x30,0x0, 0x4, 0x5e,0x34,0x80,0x0, 0x68,0x2c,0xb, 0xa, 0x30,0x5e, +0x34,0x80,0x0, 0x68,0x23,0x12,0x37,0xe2,0x6e,0x70,0x40,0x1b,0xa, 0x30,0x7e,0xf, +0x78,0xf2,0xb, 0x15,0xb, 0xa, 0x30,0x4e,0x60,0x80,0x1b,0xa, 0x30,0x12,0x4b,0xd1, +0xd2,0xe, 0x12,0x3f,0xbd,0x12,0x49,0xf3,0x7e,0xf, 0x78,0xf2,0x69,0x30,0x0, 0x4, +0x5e,0x34,0x0, 0x2, 0x68,0x1d,0xb, 0xa, 0x30,0x5e,0x34,0x0, 0x2, 0x68,0x14,0xb, +0x15,0xb, 0xa, 0x30,0x4e,0x70,0x2, 0x1b,0xa, 0x30,0x12,0x4b,0xd1,0x12,0x3f,0xbd, +0x12,0x49,0xf3,0x7e,0xf, 0x78,0xf2,0x69,0x30,0x0, 0x4, 0x5e,0x34,0x0, 0x1, 0x68, +0x20,0xb, 0xa, 0x30,0x5e,0x34,0x0, 0x1, 0x68,0x17,0xb, 0x15,0xb, 0xa, 0x30,0x4e, +0x70,0x1, 0x1b,0xa, 0x30,0x12,0x4c,0x37,0x12,0x3f,0xbd,0x4e,0x70,0x1, 0x1b,0xa, +0x30,0x7e,0xf, 0x78,0xf2,0x69,0x30,0x0, 0x4, 0x5e,0x34,0x0, 0x8, 0x68,0x17,0xb, +0xa, 0x30,0x5e,0x34,0x0, 0x8, 0x68,0xe, 0xb, 0x15,0xb, 0xa, 0x30,0x4e,0x70,0x8, +0x1b,0xa, 0x30,0x12,0x4c,0x26,0x7e,0xf, 0x78,0xf2,0x69,0x30,0x0, 0x4, 0x5e,0x34, +0x0, 0x4, 0x68,0x17,0xb, 0xa, 0x30,0x5e,0x34,0x0, 0x4, 0x68,0xe, 0xb, 0x15,0xb, +0xa, 0x30,0x4e,0x70,0x4, 0x1b,0xa, 0x30,0x12,0x4c,0x15,0x7e,0xf, 0x78,0xf2,0x69, +0x30,0x0, 0x4, 0x5e,0x34,0x40,0x0, 0x68,0x31,0xb, 0xa, 0x30,0x5e,0x34,0x40,0x0, +0x68,0x28,0xb, 0x15,0xb, 0xa, 0x30,0x4e,0x60,0x40,0x1b,0xa, 0x30,0xd2,0xd, 0x7e, +0xb3,0x78,0x8b,0xbe,0xb0,0xc8,0x50,0x5, 0x4, 0x7a,0xb3,0x78,0x8b,0x7e,0xb3,0x78, +0x8b,0xb4,0x1, 0x6, 0x12,0x29,0x4a,0x12,0x4b,0xe2,0x7e,0xf, 0x78,0xf2,0x69,0x30, +0x0, 0x4, 0x5e,0x34,0x20,0x0, 0x68,0x19,0xb, 0xa, 0x30,0x5e,0x34,0x20,0x0, 0x68, +0x10,0xb, 0x15,0xb, 0xa, 0x30,0x4e,0x60,0x20,0x1b,0xa, 0x30,0xd2,0xd, 0x12,0x4b, +0xe2,0x7e,0xf, 0x78,0xf2,0x69,0x30,0x0, 0x4, 0x5e,0x34,0x10,0x0, 0x68,0x26,0xb, +0xa, 0x30,0x7d,0x23,0x5e,0x24,0x10,0x0, 0x68,0x1b,0x5e,0x34,0x8, 0x0, 0x2e,0x34, +0xff,0xff,0x92,0x13,0xb, 0x15,0xb, 0xa, 0x30,0x4e,0x60,0x8, 0x1b,0xa, 0x30,0x12, +0xda,0xe9,0x12,0xdb,0x31,0x7e,0xf, 0x78,0xf2,0x69,0x30,0x0, 0x4, 0x5e,0x34,0x0, +0x40,0x68,0x29,0xb, 0xa, 0x30,0x5e,0x34,0x0, 0x40,0x68,0x20,0xb, 0x15,0xb, 0xa, +0x30,0x4e,0x70,0x40,0x1b,0xa, 0x30,0x7e,0x1f,0x78,0xf2,0x69,0x31,0x0, 0xa, 0x5e, +0x34,0xf, 0xc0,0x12,0x4c,0x5b,0x1e,0x34,0x7a,0x73,0x78,0x8e,0xd0,0x82,0xd0,0x83, +0xd0,0xd0,0xda,0xb, 0xda,0x1b,0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda,0x7b, +0x32,0xd2,0xc, 0xd2,0x11,0x12,0x3b,0x65,0x5e,0x34,0x0, 0x1, 0x78,0x3, 0x2, 0x4b, +0xfa,0x22,0x30,0x2a,0x14,0xa9,0xd2,0xea,0xa9,0xc2,0xea,0x12,0xe5,0x88,0x12,0x3f, +0xbb,0x12,0x37,0xf5,0xc2,0x29,0x2, 0x4c,0x4, 0x22,0x12,0xb, 0xb0,0x20,0x29,0x3, +0x2, 0x4c,0x4, 0x22,0x12,0xb, 0xe5,0x12,0x4f,0xf3,0x74,0x2, 0x7a,0xb3,0x77,0xb5, +0x7a,0xb3,0x77,0xb6,0x22,0xd2,0xf, 0xd2,0x11,0x12,0x3b,0x65,0x5e,0x34,0x0, 0x2, +0x68,0x3, 0x2, 0x4b,0xfa,0x22,0xd2,0xf, 0xd2,0x11,0x12,0x3b,0x65,0x5e,0x34,0x0, +0x2, 0x78,0x3, 0x2, 0x4b,0xfa,0x22,0xd2,0xc, 0xd2,0x11,0x12,0x3b,0x65,0x5e,0x34, +0x0, 0x1, 0x68,0x8, 0xe4,0x7a,0xb3,0x78,0x8b,0x2, 0x4b,0xfa,0x22,0x6e,0x34,0xff, +0xff,0xb, 0x34,0x7a,0x37,0x6f,0x4e,0x7e,0x37,0x6f,0x40,0x1e,0x34,0x1e,0x34,0x1e, +0x34,0x1e,0x34,0x1e,0x34,0x22,0xca,0x3b,0x7f,0x30,0x7c,0xab,0xbe,0xa0,0x4, 0x40, +0x2, 0xc1,0x1e,0x74,0x27,0xa4,0x9, 0xb5,0x28,0xeb,0xf5,0x3c,0xe4,0x12,0x67,0x91, +0x7e,0xf7,0x6f,0x6a,0x7e,0xe7,0x6f,0x6c,0x2d,0xef,0x7a,0xe5,0x3a,0x7e,0x8, 0x67, +0xd3,0x12,0x64,0xf8,0x7e,0xb3,0x6f,0x76,0x60,0x62,0x6d,0xee,0x80,0x2e,0x7e,0xe5, +0x36,0x3e,0xe4,0x49,0x3e,0x6f,0x77,0x7a,0x35,0x38,0x7f,0x3, 0x2e,0x15,0x36,0x7e, +0xb, 0x50,0x19,0x53,0x2, 0xaf,0x12,0x4e,0x47,0x60,0x5, 0x3e,0x24,0x14,0x78,0xfb, +0x12,0x4c,0x5d,0x3e,0x34,0x2e,0x34,0x67,0xf7,0x12,0x4e,0x21,0x7a,0xe5,0x36,0xbe, +0xf5,0x36,0x38,0xca,0x7a,0xf5,0x36,0x80,0x19,0x12,0x4e,0x2f,0x60,0x5, 0x3e,0x24, +0x14,0x78,0xfb,0x12,0x4c,0x5d,0x3e,0x34,0x2e,0x34,0x67,0xd3,0x12,0x4e,0x21,0x7a, +0xe5,0x36,0x7e,0xe5,0x3a,0xbe,0xe5,0x36,0x38,0xdf,0x80,0x67,0x6d,0xee,0x80,0x16, +0x12,0x4e,0x2f,0x60,0x5, 0x3e,0x24,0x14,0x78,0xfb,0x12,0x4c,0x5d,0x3e,0x34,0x2e, +0x34,0x67,0xd3,0x12,0x4e,0x21,0x7a,0xe5,0x36,0xbe,0xf5,0x36,0x38,0xe2,0x7a,0xf5, +0x36,0x80,0x38,0x7e,0x35,0x36,0x3e,0x34,0x49,0x23,0x6f,0x77,0x7a,0x25,0x38,0x7f, +0x3, 0x2e,0x15,0x36,0x7e,0xb, 0x70,0x19,0x72,0x2, 0xaf,0x7d,0x52,0x12,0x64,0xaf, +0x60,0x5, 0x3e,0x14,0x14,0x78,0xfb,0x12,0x64,0xba,0x3e,0x24,0x2e,0x24,0x67,0xf7, +0x12,0x64,0xd8,0x7e,0x35,0x36,0xb, 0x34,0x7a,0x35,0x36,0x7e,0x35,0x3a,0xbe,0x35, +0x36,0x38,0xc0,0x7e,0x45,0x3a,0x12,0x4e,0x66,0x7a,0x73,0x1, 0x95,0x12,0x4e,0x72, +0x7a,0xb3,0x1, 0x96,0x12,0x4e,0x52,0x7a,0xb3,0x1, 0x97,0xb, 0x44,0x12,0x4e,0x66, +0x7a,0x73,0x2, 0xaf,0x12,0x4e,0x72,0x7a,0xb3,0x2, 0xb0,0x12,0x4e,0x52,0x7a,0xb3, +0x2, 0xb1,0x7e,0xb3,0x6f,0x68,0x54,0x5, 0xa, 0x3b,0x4e,0x37,0x67,0xd3,0x7a,0x37, +0x67,0xd3,0x7e,0xb3,0x6f,0x69,0x54,0x5, 0xa, 0x3b,0x4e,0x37,0x67,0xf7,0x7a,0x37, +0x67,0xf7,0x12,0x4e,0x5a,0x2e,0x74,0x0, 0x16,0x7d,0x37,0x7e,0x8, 0x67,0xd3,0x12, +0x67,0xdc,0x7d,0x37,0x7e,0x8, 0x67,0xf7,0x12,0x67,0xe3,0x12,0x4e,0x5a,0x2e,0x74, +0x0, 0x28,0x6d,0x33,0x7a,0x35,0x36,0x7e,0x35,0x36,0x9, 0x53,0x1, 0x96,0x7c,0x25, +0x6c,0x33,0x9, 0x53,0x1, 0x95,0x12,0x4e,0x82,0x40,0xec,0x7d,0x37,0x7e,0x8, 0x68, +0x1b,0x7e,0x24,0x0, 0x8d,0x12,0x3, 0xfa,0x6d,0x33,0x7a,0x35,0x36,0x7e,0x35,0x36, +0x9, 0x53,0x2, 0xb0,0x7c,0x25,0x6c,0x33,0x9, 0x53,0x2, 0xaf,0x12,0x4e,0x82,0x40, +0xec,0x7d,0x37,0x7e,0x8, 0x68,0x1b,0x7e,0x24,0x0, 0x8d,0x12,0x4, 0x96,0xda,0x3b, +0x22,0xb, 0x38,0xe0,0x4d,0xe2,0x1b,0x38,0xe0,0x7e,0xe5,0x36,0xb, 0xe4,0x22,0x7e, +0xe5,0x36,0x3e,0xe4,0x49,0x3e,0x6f,0x77,0x7a,0x35,0x38,0x7f,0x3, 0x2e,0x15,0x36, +0x7e,0xb, 0x50,0x19,0x53,0x1, 0x95,0x7d,0x53,0x5e,0x54,0x0, 0xf, 0x7e,0x24,0x0, +0x1, 0x22,0x7c,0xba,0x54,0xf0,0xc4,0x54,0xf, 0x22,0x7e,0xf1,0x3c,0x74,0xb5,0xac, +0xfb,0x2e,0x74,0x1, 0x0, 0x22,0x7d,0x54,0xb, 0x44,0x7f,0x13,0x2d,0x35,0x7e,0x1b, +0x70,0x22,0x7f,0x13,0x2d,0x34,0x7e,0x1b,0xa0,0x7c,0xba,0x54,0xf, 0x3e,0xb0,0x3e, +0xb0,0x22,0xa, 0x25,0x2d,0x21,0x7d,0x13,0x1e,0x14,0x3e,0x14,0x59,0x21,0x68,0x1b, +0xb, 0x35,0x7a,0x35,0x36,0xbe,0x34,0x1, 0x1a,0x22,0x7e,0x34,0x0, 0xaa,0x12,0x4e, +0xb3,0x7e,0x34,0x0, 0x64,0x12,0x2a,0x8d,0x12,0x4c,0x4d,0x12,0x2c,0x3d,0x7a,0x73, +0x76,0xc0,0x22,0x7a,0x37,0x6f,0x40,0x90,0x21,0x53,0xe4,0x93,0x7a,0xb3,0x6f,0x3f, +0x22,0x7c,0xab,0xbe,0xa0,0x1, 0x78,0x3c,0x12,0x4e,0xb7,0x7e,0x34,0x0, 0x96,0x7a, +0x37,0x6f,0x40,0x12,0x6f,0xc7,0x7e,0x34,0xff,0x38,0x7a,0x37,0x6f,0x44,0x7e,0x34, +0x1, 0x2c,0x7a,0x37,0x6f,0x4c,0x7e,0x34,0xfe,0xd4,0x7a,0x37,0x6f,0x4e,0x12,0xe7, +0x20,0x68,0x42,0x7e,0x34,0x2, 0x58,0x7a,0x37,0x6f,0x46,0x7e,0x34,0x2, 0x26,0x7a, +0x37,0x6f,0x48,0x22,0xbe,0xa0,0x2, 0x78,0x2c,0x7e,0xb3,0x78,0xb0,0xb4,0x3, 0x13, +0x74,0x5c,0x7a,0xb3,0x6f,0x3f,0x7e,0x34,0x0, 0x5c,0x12,0x4f,0x36,0x7e,0x34,0xff, +0xa4,0x80,0xe, 0x12,0x4e,0xb7,0x7e,0x34,0x1, 0x2c,0x12,0x4f,0x36,0x7e,0x34,0xfe, +0xd4,0x7a,0x37,0x6f,0x44,0x22,0x7a,0x37,0x6f,0x40,0x7a,0x37,0x6f,0x42,0x22,0x7a, +0x73,0x6f,0x3f,0x7a,0x27,0x6f,0x40,0x7a,0x17,0x6f,0x42,0x7a,0x7, 0x6f,0x4c,0x6d, +0x33,0x9d,0x30,0x12,0x4c,0x53,0x12,0x2c,0x3d,0x7a,0x73,0x76,0xc0,0x22,0xca,0x3b, +0x12,0xe6,0xe5,0x5e,0x34,0x0, 0x1, 0x68,0x10,0x7f,0x3, 0x12,0x3b,0x4f,0x5e,0x34, +0x0, 0x2, 0x68,0x13,0x12,0x4f,0xe2,0x80,0xe, 0x12,0x4f,0xd9,0x7f,0x3, 0x12,0x3f, +0xc1,0x12,0x49,0xf3,0x12,0x4f,0x8a,0xda,0x3b,0x22,0x7e,0xf, 0x78,0xf2,0x12,0x37, +0xe2,0x12,0x4f,0xce,0x7e,0x70,0x1, 0x12,0x50,0xe1,0x7e,0x70,0x1, 0x12,0x50,0xab, +0x7e,0xb3,0x78,0x97,0x7e,0x70,0x2, 0x12,0x3d,0x35,0x74,0x8c,0x12,0x6a,0xe5,0x7e, +0xf, 0x78,0xf2,0x12,0x37,0xe2,0x5e,0x70,0xef,0x1b,0xa, 0x30,0x12,0x6a,0xe5,0x12, +0x45,0x27,0x5e,0x70,0xef,0x12,0x4f,0xd1,0x7e,0x70,0x1, 0x2, 0x3d,0x35,0x4e,0x70, +0x10,0x1b,0xa, 0x30,0x7e,0xb3,0x78,0x97,0x22,0x75,0x1e,0x0, 0xe4,0x7a,0xb3,0x78, +0x97,0x22,0x75,0x1e,0x2, 0x74,0x2, 0x7a,0xb3,0x78,0x97,0x74,0x1, 0x2, 0x5, 0xbc, +0xc2,0x1d,0x22,0x74,0x3, 0x7a,0xb3,0x77,0xb4,0x22,0x7c,0x9b,0x74,0x3, 0xac,0xb9, +0x9, 0x85,0x29,0xb3,0xbe,0x83,0x77,0x51,0x68,0x8, 0x7e,0x83,0x77,0x51,0x19,0x85, +0x29,0xb3,0x9, 0x85,0x29,0xb4,0xbe,0x83,0x77,0x52,0x68,0x8, 0x7e,0x83,0x77,0x52, +0x19,0x85,0x29,0xb4,0x9, 0x85,0x29,0xb5,0xbe,0x83,0x77,0x53,0x68,0x8, 0x7e,0x83, +0x77,0x53,0x19,0x85,0x29,0xb5,0x7e,0x8, 0x0, 0x71,0x12,0x50,0x47,0x9, 0xb5,0x29, +0xb5,0x12,0x50,0x84,0x2, 0x4, 0x96,0x9, 0xb5,0x29,0xb3,0x12,0xc, 0xea,0x7e,0x8, +0x0, 0x71,0x74,0x3, 0xac,0xb9,0x9, 0xb5,0x29,0xb4,0x12,0xd, 0x8d,0x7e,0x8, 0x0, +0x71,0x74,0x3, 0xac,0xb9,0x22,0x7c,0x9b,0x12,0x50,0x5d,0x12,0x50,0x47,0x12,0xe7, +0x9, 0x4c,0x99,0x78,0x9, 0x7e,0x8, 0x0, 0x71,0x74,0x1, 0x12,0xc, 0xea,0x12,0x50, +0x87,0x2, 0x4, 0x96,0x12,0xd, 0x7, 0x7e,0x37,0x0, 0x71,0x7a,0x37,0x0, 0xad,0x7e, +0x34,0x0, 0x2, 0x7e,0x8, 0x0, 0x71,0x7e,0x24,0x0, 0x1, 0x12,0x3, 0xfa,0x7e,0x34, +0x0, 0x2, 0x7e,0x8, 0x0, 0xad,0x7e,0x24,0x0, 0x1, 0x22,0x70,0x9, 0x12,0x50,0xe9, +0x12,0x50,0x84,0x2, 0x4, 0x96,0x22,0x70,0xc, 0x12,0x50,0xe9,0x12,0xd, 0x8d,0x12, +0x50,0x87,0x2, 0x4, 0x96,0x22,0x12,0x45,0x27,0x12,0x4f,0xce,0x7e,0x73,0x29,0xb3, +0x12,0x3f,0xa8,0x7e,0x73,0x29,0xb4,0x12,0x50,0xe1,0x7e,0x73,0x29,0xb5,0x2, 0x50, +0xab,0x12,0x50,0xb7,0x7e,0xb3,0x78,0x97,0x22,0x5e,0x70,0x3, 0x7e,0x8, 0x0, 0x71, +0x7c,0xb7,0x22,0x7c,0x3b,0xd2,0x4, 0x12,0x51,0xa1,0x12,0xdd,0x97,0x1b,0x30,0x68, +0x1d,0x1b,0x30,0x68,0x23,0x1b,0x30,0x68,0x29,0x1b,0x30,0x68,0x2f,0xb, 0x32,0x78, +0x73,0x12,0x50,0xc6,0x7e,0x1f,0x77,0x95,0x7e,0xf, 0x77,0x91,0x80,0x52,0x7e,0x1f, +0x77,0x9d,0x7e,0xf, 0x77,0x99,0x80,0x48,0x7e,0x1f,0x77,0xa5,0x7e,0xf, 0x77,0xa1, +0x80,0x3e,0x7e,0x1f,0x77,0xad,0x7e,0xf, 0x77,0xa9,0x80,0x34,0x7e,0x34,0x0, 0x8, +0xca,0x39,0x7e,0x71,0x1e,0x74,0x8, 0xac,0x7b,0x2e,0x34,0x77,0x91,0x6d,0x22,0x7e, +0x8, 0x67,0xd3,0x12,0x24,0x13,0x1b,0xfd,0x7e,0x34,0x0, 0x1, 0x7a,0x37,0x67,0xd3, +0x7e,0x73,0x78,0xe9,0x7a,0x73,0x67,0xd5,0x7e,0x1f,0x67,0xd7,0x7e,0xf, 0x67,0xd3, +0x7a,0x1d,0x3a,0x7a,0xd, 0x36,0x12,0x2, 0x3d,0x74,0x1, 0x7a,0xb3,0x77,0xb4,0x12, +0xd, 0xbd,0x80,0x2, 0xc2,0x4, 0xa2,0x4, 0x22,0x12,0xdb,0x28,0x38,0x2, 0xe4,0x22, +0x7e,0xa3,0x77,0xb2,0x74,0x7, 0xa4,0x49,0x55,0x77,0xbd,0x12,0x50,0xf3,0xe4,0x33, +0x22,0xe5,0x1e,0x70,0x21,0x7e,0x37,0x78,0x94,0x4d,0x33,0x78,0xf8,0x12,0x51,0xc7, +0x7e,0x34,0x0, 0x5, 0x7a,0x37,0x78,0x94,0xbe,0x34,0x0, 0x21,0x28,0x8, 0x7e,0x34, +0x0, 0x21,0x7a,0x37,0x78,0x94,0x22,0x7e,0x73,0x76,0xc9,0x7e,0xb3,0x76,0xe4,0x70, +0x3a,0xe5,0x1e,0x70,0x1d,0x7e,0x63,0x76,0xc7,0xbe,0x60,0x14,0x28,0x5, 0x7e,0x60, +0x14,0x80,0x7, 0xa5,0xbe,0x0, 0x3, 0x7e,0x60,0x1, 0xa, 0x26,0x7e,0x34,0x0, 0x64, +0x80,0x74,0xe5,0x1e,0xb4,0x3, 0x2, 0x80,0x44,0x12,0x52,0x85,0xb4,0x1, 0x6, 0x7e, +0x34,0x1, 0xf4,0x80,0x61,0x7e,0x34,0x3, 0xe8,0x80,0x5b,0xe5,0x1e,0x70,0xe, 0x7e, +0x63,0x76,0xc8,0xbe,0x60,0x7f,0x28,0x53,0x7e,0x60,0x7f,0x80,0x4e,0x7e,0x63,0x78, +0xea,0xbe,0x60,0x3b,0x40,0x12,0x12,0x52,0x85,0xb4,0x1, 0x6, 0x7e,0x34,0x1, 0xf4, +0x80,0x26,0x7e,0x34,0x3, 0xe8,0x80,0x20,0xe5,0x1e,0xb4,0x3, 0x8, 0x7e,0x73,0x76, +0xfe,0xa, 0x37,0x80,0x15,0x30,0x1b,0x18,0x12,0x52,0x85,0xb4,0x1, 0x6, 0x7e,0x34, +0x1, 0xf4,0x80,0x4, 0x7e,0x34,0x3, 0xe8,0x8d,0x32,0x1b,0x34,0x7c,0x67,0x80,0xb, +0xa, 0x27,0x7e,0x34,0x3, 0xe8,0x12,0x22,0x71,0x7c,0x67,0x7e,0x73,0x76,0xeb,0xac, +0x67,0x7e,0x24,0x0, 0x18,0x12,0x22,0x71,0x7a,0x73,0x78,0x8a,0xc2,0x15,0x6d,0x33, +0x7a,0x37,0x78,0x86,0x22,0x7e,0xb3,0x78,0x8f,0xa, 0x27,0x22,0xca,0xf8,0x7e,0xf3, +0x78,0x97,0x20,0xc, 0x6, 0x20,0xd, 0x3, 0x30,0xf, 0x3, 0xc3,0x80,0x4d,0x12,0x52, +0xee,0x60,0x5, 0x3e,0x34,0x14,0x78,0xfb,0x12,0x57,0xd8,0x4d,0x22,0x68,0x3b,0x7e, +0xb3,0x77,0x5f,0x70,0x3, 0x12,0x57,0xcf,0x12,0xe7,0x10,0x12,0xdf,0xb, 0x40,0x3, +0xc3,0x80,0x28,0x20,0xc, 0x6, 0x20,0xd, 0x3, 0x30,0xf, 0x3, 0xc3,0x80,0x1c,0x12, +0x52,0xee,0x60,0x5, 0x3e,0x34,0x14,0x78,0xfb,0x6e,0x70,0xff,0x5e,0x73,0x73,0xd4, +0x7a,0x73,0x73,0xd4,0x12,0x51,0xc7,0xd3,0x80,0x1, 0xd3,0xda,0xf8,0x22,0x7e,0x34, +0x0, 0x1, 0x7c,0xbf,0x22,0xca,0xf8,0xc2,0x0, 0x7e,0xf3,0x78,0x97,0x20,0xc, 0x6, +0x20,0xd, 0x3, 0x30,0xf, 0x3, 0xc3,0x61,0x97,0x7e,0x24,0x0, 0x1, 0x7c,0xbf,0x60, +0x5, 0x3e,0x24,0x14,0x78,0xfb,0x7e,0x73,0x73,0xd5,0x6c,0x66,0x5c,0x75,0x4d,0x33, +0x68,0x74,0x7c,0xbf,0x12,0x58,0x1, 0x50,0x2, 0xd2,0x0, 0xd2,0x4, 0x12,0x3c,0x96, +0xa2,0x0, 0x92,0x1, 0x7c,0xbf,0x12,0x36,0xea,0x40,0x3, 0xc3,0x80,0x59,0x7c,0xbf, +0x7e,0x73,0x75,0xbb,0x12,0x36,0xc3,0xe4,0x7c,0x7f,0x12,0x99,0x25,0xa2,0x0, 0x92, +0x3, 0x7e,0xf, 0x24,0x64,0x7e,0x18,0x18,0x3c,0x7c,0xbf,0x12,0x65,0x99,0x12,0x36, +0xbd,0x20,0xc, 0x6, 0x20,0xd, 0x3, 0x30,0xf, 0x3, 0xc3,0x80,0x2a,0x12,0x3b,0xdc, +0x12,0x53,0x9a,0xc2,0x1, 0x12,0x29,0x5a,0x12,0x52,0xee,0x60,0x5, 0x3e,0x34,0x14, +0x78,0xfb,0x6e,0x70,0xff,0x5e,0x73,0x73,0xd5,0x7a,0x73,0x73,0xd5,0x12,0x54,0x92, +0x12,0x51,0xc7,0xd3,0x80,0x1, 0xd3,0xda,0xf8,0x22,0xca,0x79,0x7e,0x68,0x14,0x30, +0x7e,0xb3,0x78,0x97,0xb4,0x3, 0x4, 0x7e,0x68,0x1c,0x48,0x7e,0x73,0x6f,0x65,0x7a, +0x73,0x63,0x98,0x7e,0x73,0x6f,0x64,0x7a,0x73,0x63,0x97,0xe4,0x7a,0xb3,0x63,0x99, +0x7a,0xb3,0x63,0x9a,0x6d,0x33,0x7a,0x37,0x63,0xa1,0x6c,0xff,0x7e,0x70,0x26,0xac, +0x7f,0x9, 0xb3,0x75,0x44,0x70,0x2, 0x81,0x66,0x7e,0xb3,0x78,0x97,0xb4,0x3, 0xa, +0x49,0xf3,0x75,0x5b,0x49,0xe3,0x75,0x59,0x80,0x8, 0x49,0xf3,0x75,0x53,0x49,0xe3, +0x75,0x51,0x7d,0x3f,0x7a,0x37,0x63,0x9b,0x7d,0x3d,0x7a,0x37,0x63,0x9d,0x7d,0x3f, +0x7a,0x37,0x63,0x9f,0x12,0x54,0x7b,0x7e,0xb7,0x73,0xd6,0x6c,0xee,0xa, 0xe, 0x2d, +0xb, 0x3e,0x4, 0x7f,0x16,0x2d,0x30,0xb, 0x1a,0x10,0x7f,0x17,0x12,0x54,0x82,0x78, +0xec,0x12,0x57,0xfd,0x50,0x35,0x12,0x54,0x72,0x7d,0xa3,0x7a,0xa7,0x63,0x9b,0x7e, +0xa4,0x18,0x3c,0x7a,0xa7,0x63,0x9d,0x12,0x54,0x72,0x7d,0xa3,0x7a,0xa7,0x63,0x9f, +0x12,0x54,0x7b,0x6c,0xee,0xa, 0xe, 0x2d,0xb, 0x3e,0x4, 0x49,0x10,0x18,0x3c,0x12, +0x54,0x72,0x49,0x25,0x75,0x55,0x12,0x54,0x82,0x78,0xea,0x6c,0xaa,0x7e,0x70,0x26, +0xac,0x7f,0x19,0xa3,0x75,0x44,0xb, 0xf0,0xbe,0xf0,0x3, 0x50,0x2, 0x61,0xcc,0xda, +0x79,0x22,0x74,0x26,0xac,0xbf,0x49,0x35,0x75,0x57,0x22,0x7e,0x8, 0x63,0x97,0x2, +0x8, 0xe5,0x2d,0x30,0xb, 0x1a,0xa0,0x9d,0xa1,0x1b,0x1a,0xa0,0xb, 0xe0,0xbe,0xe0, +0x4, 0x22,0xe4,0x7a,0xb3,0x78,0x9c,0x2, 0x54,0x9a,0x6d,0x33,0x7a,0x37,0x78,0xeb, +0x22,0xca,0x3b,0x7c,0xf7,0x7c,0xeb,0x75,0x28,0x7, 0x7e,0x34,0x1, 0x77,0x7a,0x35, +0x2b,0x75,0x2d,0x0, 0x7e,0x34,0x26,0xca,0x7e,0x24,0x0, 0xff,0x7e,0x14,0x63,0x97, +0x7e,0x54,0x2, 0x3c,0x12,0x23,0x67,0x6d,0x66,0x80,0xe, 0x7e,0x34,0x7f,0xff,0x7d, +0x26,0x3e,0x24,0x59,0x32,0x10,0x24,0xb, 0x64,0x7e,0x37,0x73,0xd6,0x7d,0x23,0xb, +0x26,0xbd,0x26,0x38,0xe6,0x2e,0x34,0x0, 0x8, 0x12,0x35,0xa4,0x12,0x57,0x1f,0xe4, +0x12,0x24,0x38,0x7e,0xb3,0x78,0xe5,0xb4,0x1, 0xa, 0x7e,0x37,0x78,0xe6,0x12,0x4c, +0x5d,0x7a,0x35,0x2b,0x74,0xa, 0xac,0xbe,0x49,0x25,0x29,0x8d,0x7e,0x35,0x2b,0xad, +0x32,0x9, 0xb5,0x29,0x8b,0x60,0xc, 0x1e,0x34,0x1e,0x24,0x50,0x3, 0x4e,0x60,0x80, +0x14,0x78,0xf4,0x7a,0x35,0x2b,0xe5,0x28,0xa, 0x5b,0x1b,0x54,0xf5,0x27,0xc1,0x87, +0xe5,0x27,0x7e,0x34,0x0, 0x1, 0x60,0x5, 0x3e,0x34,0x14,0x78,0xfb,0x7a,0x35,0x29, +0x12,0x2d,0x3d,0xe5,0x27,0xbe,0xb0,0x7, 0x58,0x13,0x6d,0x66,0x80,0xa, 0x12,0x35, +0x9f,0x7d,0x21,0x2d,0x26,0x12,0x57,0xee,0x12,0x57,0x26,0x38,0xf1,0x6d,0x66,0x12, +0x35,0x9f,0x7e,0x27,0x73,0xd6,0x2d,0x26,0x2d,0x21,0x12,0x57,0xee,0xbe,0x64,0x0, +0x4, 0x78,0xec,0x7c,0xbe,0x12,0x35,0xa4,0x12,0x57,0x1f,0x12,0x4c,0x66,0x5, 0x2d, +0xe5,0x2d,0x54,0x1, 0xb4,0x1, 0x8, 0x74,0x1, 0x7a,0xb3,0x78,0xe9,0x80,0xe, 0x7e, +0x73,0x78,0x8e,0xa, 0x37,0x1e,0x34,0xb, 0x34,0x7a,0x73,0x78,0xe9,0x12,0x3c,0x91, +0xe5,0x27,0xbe,0xb0,0x7, 0x58,0x66,0x6d,0x66,0x80,0x5d,0x7d,0x56,0x3e,0x54,0x49, +0x35,0xc, 0x18,0x7d,0x43,0x12,0x57,0xc7,0x8, 0x7, 0x7d,0x23,0x9e,0x25,0x2b,0x80, +0x4, 0x6d,0x22,0x9d,0x24,0x7a,0x25,0x2e,0x49,0x25,0x10,0x24,0x7d,0x42,0x12,0x57, +0xc7,0x8, 0x5, 0x9e,0x25,0x2b,0x80,0x4, 0x6d,0x22,0x9d,0x24,0x7a,0x25,0x30,0xbe, +0x25,0x2e,0x40,0x13,0x59,0x35,0x10,0x24,0x12,0x35,0xa4,0x7d,0x21,0x2d,0x26,0x9, +0x52,0x4e,0xa8,0x19,0x56,0x63,0x97,0xbe,0x35,0x2b,0x50,0xa, 0x12,0x57,0x2d,0x7d, +0x23,0x2d,0x26,0x12,0x57,0xe1,0xb, 0x64,0x12,0x57,0x26,0x38,0x9e,0x6d,0x66,0x7e, +0x17,0x73,0xd6,0x2d,0x16,0x7d,0x51,0x3e,0x54,0x49,0x5, 0xc, 0x18,0x7d,0x30,0x12, +0x57,0xbf,0x8, 0x7, 0x7d,0x40,0x9e,0x45,0x2b,0x80,0x4, 0x6d,0x44,0x9d,0x43,0x7a, +0x45,0x2e,0x49,0x45,0x10,0x24,0x7d,0x34,0x12,0x57,0xbf,0x8, 0x5, 0x9e,0x45,0x2b, +0x80,0x4, 0x6d,0x44,0x9d,0x43,0x7a,0x45,0x30,0xbe,0x45,0x2e,0x40,0x11,0x59,0x5, +0x10,0x24,0x12,0x57,0x32,0x2d,0x31,0x9, 0x73,0x4e,0xa8,0x19,0x71,0x63,0x97,0xbe, +0x5, 0x2b,0x50,0xa, 0x12,0x57,0x2d,0x7d,0x23,0x2d,0x21,0x12,0x57,0xe1,0xb, 0x64, +0xbe,0x64,0x0, 0x4, 0x78,0x99,0x30,0xc, 0x2, 0xe1,0x1c,0x30,0xd, 0x2, 0xe1,0x1c, +0x30,0xf, 0x2, 0xe1,0x1c,0x15,0x27,0xe5,0x27,0xbe,0xb0,0x1, 0x48,0x2, 0xa1,0x30, +0x7e,0xb3,0x77,0x51,0xbe,0xb0,0x2, 0x68,0x6f,0x12,0xe7,0x18,0x68,0x6a,0x7e,0x8, +0x10,0x24,0x74,0xa, 0xac,0xbe,0x12,0x66,0x46,0x6d,0x66,0x80,0x25,0x7d,0x26,0x3e, +0x24,0x49,0x32,0x10,0x24,0xbe,0x34,0x3, 0xe8,0x28,0x15,0xbe,0x34,0x3e,0x80,0x50, +0xf, 0x9, 0x76,0x63,0x97,0x12,0x35,0xa4,0x7d,0x21,0x2d,0x26,0x19,0x72,0x4e,0xa8, +0xb, 0x64,0x12,0x57,0x26,0x38,0xd6,0x6d,0x66,0x7e,0x27,0x73,0xd6,0x2d,0x26,0x7d, +0x12,0x3e,0x14,0x49,0x31,0x10,0x24,0xbe,0x34,0x3, 0xe8,0x28,0x13,0xbe,0x34,0x3e, +0x80,0x50,0xd, 0x9, 0x72,0x63,0x97,0x12,0x35,0xa4,0x2d,0x21,0x19,0x72,0x4e,0xa8, +0xb, 0x64,0xbe,0x64,0x0, 0x4, 0x78,0xd1,0x74,0x1, 0x7a,0xb3,0x78,0xe9,0x7c,0xbe, +0x12,0x35,0xa4,0x12,0x57,0x1f,0x12,0x4c,0x66,0x12,0x54,0x92,0xda,0x3b,0x22,0x2e, +0x14,0x4e,0xa8,0x6d,0x0, 0x22,0x7e,0x37,0x73,0xd6,0xbd,0x36,0x22,0x7e,0x55,0x29, +0x64,0xff,0xa, 0x2f,0x7e,0x34,0x2, 0x3c,0xad,0x32,0x22,0xca,0x3b,0x7c,0xeb,0x7e, +0xd0,0x4, 0x7e,0xb3,0x76,0xe6,0xb4,0x1, 0x5, 0x7e,0xf0,0x2, 0x80,0x3, 0x7e,0xf0, +0x1, 0x4c,0xee,0x68,0x5f,0x6c,0xcc,0x80,0x4b,0x4c,0xcc,0x78,0xc, 0x7e,0xb3,0x76, +0xe6,0xb4,0x1, 0x5, 0xe4,0x6c,0x77,0x80,0xc, 0x7c,0xde,0xe4,0x7e,0x70,0x3, 0xac, +0x7e,0x9, 0x73,0x29,0xb3,0x12,0x3d,0x35,0x7e,0x34,0x0, 0x1, 0x7c,0xbd,0x60,0x5, +0x3e,0x34,0x14,0x78,0xfb,0x12,0x57,0xd8,0x4d,0x22,0x68,0xa, 0x12,0x57,0xcf,0x7c, +0xbe,0x7c,0x7d,0x12,0x54,0xa1,0x20,0xc, 0x6, 0x20,0xd, 0x3, 0x30,0xf, 0x3, 0xc3, +0x80,0x1a,0xb, 0xc0,0xbc,0xfc,0x38,0xb1,0x7e,0xb3,0x73,0xd4,0x54,0xef,0x7a,0xb3, +0x73,0xd4,0x80,0x7, 0x7c,0xbe,0x7c,0x7e,0x12,0x54,0xa1,0xd3,0xda,0x3b,0x22,0x9e, +0x35,0x2b,0xbe,0x34,0x0, 0x0, 0x22,0x9e,0x45,0x2b,0xbe,0x44,0x0, 0x0, 0x22,0x4e, +0x73,0x73,0xd5,0x7a,0x73,0x73,0xd5,0x22,0x7e,0x53,0x73,0xd4,0x6c,0x44,0x5c,0x57, +0x22,0x2e,0x24,0x4e,0xa8,0x7e,0x29,0x70,0x5c,0x7b,0x7a,0x29,0x70,0x22,0x2e,0x24, +0x4e,0xa8,0x7e,0x29,0x70,0x4c,0x76,0x7a,0x29,0x70,0xb, 0x64,0x22,0x7e,0xb3,0x78, +0x97,0x7c,0xab,0xd2,0x2, 0x7e,0xb3,0x78,0x8f,0x70,0x4, 0xc2,0x2, 0x80,0xb, 0x4c, +0xaa,0x68,0x5, 0xbe,0xa0,0x3, 0x78,0x2, 0xc2,0x2, 0xa2,0x2, 0x22,0xca,0x3b,0x7c, +0x67,0x7c,0x7b,0x6d,0x22,0x7a,0x25,0x29,0x7e,0x27,0x73,0xd6,0xb, 0x26,0x7a,0x25, +0x2b,0x7c,0xb6,0x12,0x58,0x1, 0x92,0x1, 0x30,0x1, 0x6, 0x4c,0x77,0x78,0x2, 0x21, +0xb1,0x12,0x5a,0x15,0x7a,0xa1,0x33,0x74,0x26,0xa4,0x49,0xb5,0x75,0x53,0x49,0xa5, +0x75,0x51,0x49,0x95,0x75,0x57,0x49,0x85,0x75,0x55,0x7e,0x34,0x63,0x6f,0x1e,0x34, +0x3e,0x34,0x7d,0x73,0x6d,0x66,0x7e,0x34,0x67,0x7d,0x1e,0x34,0x3e,0x34,0x6d,0x22, +0x7a,0x1d,0x2d,0x7e,0x18,0xc, 0x18,0x7a,0x1d,0x34,0x7f,0x3, 0x7e,0x18,0x10,0x24, +0x74,0x1, 0x12,0x59,0xe5,0x12,0x59,0xb4,0x6d,0x33,0x7a,0x35,0x27,0x7e,0x35,0x31, +0x7d,0x13,0x3e,0x14,0x49,0x1, 0xc, 0x18,0x49,0x21,0x10,0x24,0x9d,0x20,0x2d,0x17, +0x7d,0x6, 0x12,0x59,0xbc,0x78,0xe6,0x20,0x1, 0x2, 0x21,0x2a,0x7e,0x73,0x75,0xbb, +0xbe,0x71,0x33,0x68,0x3a,0x6d,0x33,0x80,0x29,0x7e,0x35,0x27,0x7d,0x23,0x3e,0x24, +0x7f,0x4, 0x2d,0x12,0xb, 0xa, 0x50,0x49,0x42,0x18,0x3c,0x2d,0x45,0x7f,0x5, 0x2d, +0x12,0xb, 0xa, 0x10,0x49,0x52,0x14,0x30,0x2d,0x51,0x12,0x59,0xd9,0x1b,0xa, 0x20, +0xb, 0x34,0x7a,0x35,0x27,0x7e,0x35,0x2b,0xbe,0x35,0x27,0x38,0xcc,0x80,0x3b,0x7e, +0x18,0x18,0x3c,0x7a,0x1d,0x34,0x7e,0xd, 0x2d,0x7e,0x18,0x14,0x30,0x74,0x1, 0x12, +0x59,0xe5,0x7e,0x1d,0x2d,0x7a,0x1d,0x34,0x7f,0x3, 0x7f,0x13,0x12,0x5a,0x3c,0x12, +0x59,0xb4,0x6d,0x33,0x7a,0x35,0x27,0x12,0x59,0xd1,0x49,0x42,0x18,0x3c,0x49,0x52, +0x14,0x30,0x12,0x59,0xd9,0x12,0x59,0xbc,0x78,0xed,0x7f,0x3, 0x12,0xd0,0x2d,0x7a, +0x35,0x29,0x12,0x59,0xb4,0x6d,0x33,0x7a,0x35,0x27,0x12,0x59,0xd1,0x7f,0x23,0x2d, +0x52,0xb, 0x2a,0x10,0xbe,0x14,0x0, 0x0, 0x8, 0x5, 0xb, 0x2a,0x20,0x80,0x4, 0x6d, +0x22,0x9d,0x21,0xbe,0x25,0x29,0x28,0x12,0xbe,0x14,0x0, 0x0, 0x8, 0x5, 0xb, 0x2a, +0x20,0x80,0x4, 0x6d,0x22,0x9d,0x21,0x7a,0x25,0x29,0x12,0x59,0xbf,0x78,0xcb,0x7e, +0x35,0x29,0xbe,0x34,0x7f,0xff,0x28,0x7, 0x7e,0x34,0x7f,0xff,0x7a,0x35,0x29,0x7e, +0x35,0x29,0x7a,0x37,0x75,0xb1,0x20,0x1, 0x28,0x7e,0x8, 0x10,0x24,0x7e,0x18,0xc, +0x18,0x12,0x5a,0x55,0x12,0x59,0xb4,0x6d,0x33,0x7a,0x35,0x27,0x7e,0x25,0x31,0x3e, +0x24,0x49,0x32,0xc, 0x18,0x59,0x32,0x10,0x24,0x7e,0x35,0x31,0x12,0x59,0xbf,0x78, +0xeb,0xda,0x3b,0x22,0x7e,0x37,0x73,0xd6,0x7a,0x35,0x31,0x22,0x1b,0xa, 0x20,0xb, +0x34,0x7a,0x35,0x31,0x7e,0x35,0x27,0xb, 0x34,0x7a,0x35,0x27,0xbe,0x34,0x0, 0x4, +0x22,0x7e,0x35,0x31,0x7d,0x23,0x3e,0x24,0x22,0x9d,0x54,0x7f,0x3, 0x2d,0x12,0xb, +0xa, 0x20,0x2d,0x25,0x22,0x7c,0xab,0x7f,0x61,0x7f,0x70,0x7e,0x8, 0x6b,0x89,0x12, +0x5f,0xef,0x7e,0xb3,0x6f,0x65,0x7a,0xb3,0x6b,0x8a,0x7e,0xb3,0x6f,0x64,0x7a,0xb3, +0x6b,0x89,0xe4,0x12,0x5a,0x9b,0x12,0x5a,0x69,0x7a,0xa3,0x6b,0x8c,0x6d,0x33,0x12, +0x5a,0x4c,0x2, 0x8, 0xe5,0x7e,0xb3,0x75,0xb0,0x12,0x5a,0x1f,0x7c,0xab,0x22,0x7c, +0x7b,0x6c,0xaa,0x6c,0x66,0xa, 0x26,0x12,0x5d,0x3d,0xbc,0xb7,0x78,0x4, 0x7c,0xa6, +0x80,0x7, 0xb, 0x60,0xbe,0x60,0x3, 0x40,0xec,0x7c,0xba,0x22,0x12,0x5a,0x7b,0x12, +0x5a,0x69,0x7e,0x34,0x0, 0x10,0x12,0x5a,0x4c,0x2, 0x8, 0xe5,0x7a,0x37,0x6b,0x93, +0x7e,0x8, 0x6b,0x89,0x22,0x12,0x5a,0x7b,0x7a,0x37,0x6b,0x8d,0x12,0x5a,0x74,0x7e, +0x34,0x0, 0x20,0x12,0x5a,0x4c,0x2, 0x8, 0xe5,0x7a,0x37,0x6b,0x8d,0x7e,0x1d,0x34, +0x7a,0x37,0x6b,0x8f,0x7d,0x3f,0x7a,0x37,0x6b,0x91,0x22,0x7f,0x61,0x7f,0x70,0x7e, +0x8, 0x6b,0x89,0x7e,0x34,0x0, 0xc, 0xe4,0x12,0x24,0x38,0x7e,0x73,0x6f,0x65,0x7a, +0x73,0x6b,0x8a,0x7e,0x73,0x6f,0x64,0x7a,0x73,0x6b,0x89,0x7a,0xb3,0x6b,0x8b,0x7d, +0x3d,0x22,0xca,0xf8,0x7e,0xb3,0x73,0xd3,0x70,0x8, 0x12,0x5b,0x2f,0x12,0x5a,0x55, +0x80,0xf, 0x7e,0x1f,0x24,0x64,0x7a,0x1d,0x34,0x12,0x5b,0x2f,0x74,0x1, 0x12,0x59, +0xe5,0x7e,0x37,0x73,0xd6,0x90,0x1c,0x2b,0xe4,0x93,0x70,0x13,0x6c,0xff,0x6d,0x22, +0x7d,0x53,0x12,0x5b,0x26,0x1b,0xa, 0x20,0x12,0x5b,0x15,0x78,0xf1,0x80,0x33,0x6c, +0xff,0x7e,0xb3,0x73,0xd3,0xb4,0x1, 0x17,0x7d,0x53,0x3e,0x54,0x7e,0xf, 0x24,0x64, +0x2d,0x15,0xb, 0xa, 0x40,0x12,0x5b,0x1f,0xb, 0xa, 0x20,0x9d,0x24,0x80,0x8, 0x7d, +0x53,0x12,0x5b,0x1d,0xb, 0xa, 0x20,0x12,0x5b,0x28,0x1b,0xa, 0x20,0x12,0x5b,0x15, +0x78,0xcf,0xda,0xf8,0x22,0xb, 0x34,0xb, 0xf0,0xbe,0xf0,0x4, 0x22,0x3e,0x54,0x7e, +0xf, 0x24,0x60,0x2d,0x15,0x22,0x3e,0x54,0x7e,0xf, 0x24,0x68,0x2d,0x15,0x22,0x7e, +0xf, 0x24,0x68,0x7e,0x1f,0x24,0x60,0x22,0xca,0x3b,0xd2,0x0, 0x12,0x46,0xaf,0x50, +0xfb,0xa2,0x2f,0xe4,0x33,0x7c,0xcb,0x7e,0xe3,0x77,0xbb,0x7a,0xe3,0x25,0xaf,0x7e, +0xd3,0x77,0xbc,0xa, 0x3e,0x9, 0xb3,0x77,0xb5,0x60,0x38,0xa, 0x3b,0x1b,0x34,0x7c, +0xa7,0x7a,0xa3,0x77,0x5c,0xb4,0x1, 0x4, 0x74,0x1, 0x80,0x1, 0xe4,0x7a,0xb3,0x25, +0xae,0xe4,0xa, 0x3e,0x19,0xb3,0x77,0xb5,0x9, 0xf3,0x77,0xb7,0x7c,0xbe,0x7c,0x7f, +0x12,0x99,0x25,0x7c,0xbe,0x7c,0x7f,0x12,0xcf,0x64,0x7e,0xb3,0x77,0xbb,0x4, 0x7a, +0xb3,0x77,0xbb,0x7e,0x73,0x77,0xbc,0xbe,0x73,0x77,0xbb,0x38,0x15,0x12,0x29,0x7d, +0x12,0xc5,0xc0,0x7e,0x73,0x77,0x2e,0x2e,0x70,0xff,0x92,0x5, 0x12,0x3c,0xb2,0x12, +0x3b,0x6e,0x7e,0xb3,0x25,0xae,0xbe,0xb0,0x1, 0x68,0x7, 0x7e,0xb3,0x78,0xb0,0xb4, +0x3, 0x46,0x74,0xa, 0xac,0xbf,0x49,0x35,0x29,0x8d,0x7e,0xf, 0x24,0x60,0x12,0x66, +0x4a,0x7c,0xbe,0x7c,0x7f,0x12,0x5c,0x3a,0x92,0x0, 0x7e,0xb3,0x78,0x8f,0x70,0xc, +0xbe,0xe0,0x1, 0x40,0x7, 0xe4,0x7a,0xb3,0x25,0xae,0xc2,0x0, 0x7c,0xbe,0x7c,0x7f, +0x12,0x58,0x1d,0x30,0x0, 0x12,0x12,0x5a,0xa2,0x7c,0xbe,0x7c,0x7f,0x12,0x5c,0x96, +0x7a,0xe3,0x77,0x5d,0x7a,0xf3,0x78,0x9b,0x7e,0xb3,0x78,0xb0,0xb4,0x1, 0x3, 0x12, +0x9f,0xf7,0x4c,0xcc,0x68,0x8, 0x12,0x5f,0xf7,0xe4,0x7a,0xb3,0x25,0xae,0x7c,0xbd, +0x14,0xbc,0xbe,0x78,0x3, 0x12,0xb, 0xe5,0x12,0xd8,0x88,0x12,0x5d,0x4a,0x50,0x7, +0x7c,0xbf,0x7c,0x7e,0x12,0xc3,0xa1,0xda,0x3b,0x22,0x7c,0x67,0x7c,0x7b,0xd2,0x1, +0x7e,0xb3,0x78,0xb0,0xb4,0x3, 0x4c,0x7c,0xb6,0x12,0x58,0x1, 0x50,0x45,0x7e,0xa3, +0x77,0x3a,0xbe,0xa0,0x2, 0x40,0x32,0x7e,0xb3,0x77,0x42,0x70,0x28,0x7e,0x63,0x29, +0xff,0xa, 0x26,0x2e,0x24,0x0, 0xe, 0x12,0x5d,0x41,0x24,0xff,0x92,0x1, 0x7c,0xb6, +0x4, 0x7a,0xb3,0x29,0xff,0x7e,0x63,0x29,0xff,0xbe,0x60,0x4, 0x40,0x15,0xe4,0x7a, +0xb3,0x29,0xff,0x80,0xe, 0xd2,0x1, 0x80,0xa, 0xbc,0xa7,0x78,0x4, 0xd2,0x1, 0x80, +0x2, 0xc2,0x1, 0xa2,0x1, 0x22,0x7c,0x37,0x7c,0x2b,0x7e,0xb3,0x73,0xd3,0x70,0x2, +0xa1,0x3c,0x12,0x5a,0x15,0x7e,0xb3,0x75,0xbb,0xbc,0xba,0x78,0x2, 0xa1,0x3c,0xa5, +0xba,0x0, 0x1b,0x7e,0x90,0x26,0xac,0x9a,0x49,0xf4,0x75,0x53,0x49,0xe4,0x75,0x51, +0xa5,0xbb,0x3, 0x15,0x49,0xf4,0x75,0x5b,0x49,0xe4,0x75,0x59,0x80,0xb, 0x74,0x26, +0xa4,0x49,0xf5,0x75,0x57,0x49,0xe5,0x75,0x55,0x7e,0x73,0x6f,0x65,0x7a,0x73,0x63, +0x6e,0x7e,0x73,0x6f,0x64,0x7a,0x73,0x63,0x6d,0xe4,0x7a,0xb3,0x63,0x6f,0x7a,0xb3, +0x63,0x70,0x6d,0x33,0x7a,0x37,0x63,0x77,0x7e,0x1f,0x24,0x68,0x7a,0x37,0x63,0x71, +0x7d,0x3f,0x7a,0x37,0x63,0x73,0x7e,0x1f,0x24,0x68,0x7a,0x37,0x63,0x75,0x7e,0x8, +0x63,0x6d,0x12,0x8, 0xe5,0x7e,0x37,0x73,0xd6,0x6c,0x55,0xa, 0x15,0x2d,0x13,0x3e, +0x14,0x7f,0x27,0x2d,0x51,0xb, 0x2a,0x0, 0x7e,0x2f,0x24,0x68,0x2d,0x51,0xb, 0x2a, +0x10,0x9d,0x10,0x1b,0x2a,0x10,0xb, 0x50,0xa5,0xbd,0x4, 0xdf,0x22,0x2e,0x24,0x22, +0x29,0x7a,0x51,0x82,0x7a,0x41,0x83,0xe4,0x93,0x22,0xe5,0x1e,0x70,0xc, 0x7e,0x73, +0x78,0x96,0xbe,0x73,0x78,0x9c,0x40,0x2, 0xc3,0x22,0xd3,0x22,0xca,0xf8,0x12,0xce, +0x27,0x12,0x5d,0xcf,0x12,0x5d,0x4a,0x40,0x5, 0xe4,0x7a,0xb3,0x6d,0xc2,0x7e,0xb3, +0x6d,0xc2,0x60,0xb, 0xe4,0x7a,0xb3,0x78,0xce,0x74,0x1f,0x7a,0xb3,0x73,0xd5,0x12, +0x5d,0x4a,0x40,0x6, 0x12,0x5f,0xdf,0x12,0xe3,0x39,0x7e,0xb3,0x6d,0xc5,0x60,0x6, +0x74,0x2, 0x7a,0xb3,0x78,0xd5,0x7e,0xf3,0x78,0xd5,0xbe,0xf0,0x0, 0x28,0x23,0xe5, +0x1e,0xb4,0x1, 0x14,0x7e,0xb3,0x76,0xe4,0xb4,0x1, 0xd, 0x7e,0xb3,0x78,0xea,0xbe, +0xb0,0x3c,0x68,0x4, 0x70,0xc, 0x80,0x0, 0x7c,0xbf,0x14,0x7a,0xb3,0x78,0xd5,0x12, +0xe1,0x67,0x7e,0xb3,0x6d,0xc8,0x60,0x4, 0xe4,0x12,0xe0,0x77,0xda,0xf8,0x22,0x12, +0xc8,0x68,0x12,0x5f,0x4, 0x12,0x7e,0x27,0x2, 0x5d,0xdb,0x7e,0xb3,0x6d,0xc2,0xb4, +0x1, 0x18,0x12,0x5f,0xd5,0xbe,0x73,0x78,0xce,0x28,0xc, 0xe4,0x7a,0xb3,0x6d,0xc2, +0x7e,0xb3,0x78,0xce,0x4, 0x80,0x4, 0xe4,0x80,0x1, 0xe4,0x7a,0xb3,0x78,0xce,0x7e, +0xb3,0x6d,0xc2,0x70,0x53,0x12,0x5e,0xfd,0x78,0x15,0x7e,0xb3,0x6d,0xc3,0xb4,0x1, +0x7, 0x7e,0xb3,0x78,0xd0,0x4, 0x80,0x1, 0xe4,0x7a,0xb3,0x78,0xd0,0x80,0x18,0xbe, +0xa0,0x1, 0x78,0x13,0x7e,0xb3,0x6d,0xc4,0xb4,0x1, 0x7, 0x7e,0xb3,0x78,0xd1,0x4, +0x80,0x1, 0xe4,0x7a,0xb3,0x78,0xd1,0x7e,0x73,0x78,0xd0,0xbe,0x70,0x3, 0x50,0x9, +0x7e,0x73,0x78,0xd1,0xbe,0x70,0x3, 0x40,0xf, 0x74,0x1, 0x7a,0xb3,0x6d,0xc2,0xe4, +0x7a,0xb3,0x78,0xd0,0x7a,0xb3,0x78,0xd1,0x7e,0xb3,0x6d,0xc5,0xb4,0x1, 0x18,0x12, +0x5f,0xd5,0xbe,0x73,0x78,0xcf,0x28,0xc, 0xe4,0x7a,0xb3,0x6d,0xc5,0x7e,0xb3,0x78, +0xcf,0x4, 0x80,0x4, 0xe4,0x80,0x1, 0xe4,0x7a,0xb3,0x78,0xcf,0x7e,0xb3,0x6d,0xc5, +0x70,0x53,0x12,0x5e,0xfd,0x78,0x15,0x7e,0xb3,0x6d,0xc6,0xb4,0x1, 0x7, 0x7e,0xb3, +0x78,0xd2,0x4, 0x80,0x1, 0xe4,0x7a,0xb3,0x78,0xd2,0x80,0x18,0xbe,0xa0,0x1, 0x78, +0x13,0x7e,0xb3,0x6d,0xc7,0xb4,0x1, 0x7, 0x7e,0xb3,0x78,0xd3,0x4, 0x80,0x1, 0xe4, +0x7a,0xb3,0x78,0xd3,0x7e,0x73,0x78,0xd2,0xbe,0x70,0x3, 0x50,0x9, 0x7e,0x73,0x78, +0xd3,0xbe,0x70,0x3, 0x40,0xf, 0x74,0x1, 0x7a,0xb3,0x6d,0xc5,0xe4,0x7a,0xb3,0x78, +0xd2,0x7a,0xb3,0x78,0xd3,0x7e,0xb3,0x6d,0xc8,0xb4,0x1, 0x1a,0x7e,0x73,0x6d,0xb2, +0xbe,0x73,0x78,0xd4,0x28,0xc, 0xe4,0x7a,0xb3,0x6d,0xc8,0x7e,0xb3,0x78,0xd4,0x4, +0x80,0x6, 0x74,0x1, 0x80,0x2, 0x74,0x1, 0x7a,0xb3,0x78,0xd4,0x22,0x7e,0xa3,0x25, +0xaf,0x4c,0xaa,0x22,0xd2,0x0, 0xe4,0x7a,0xb3,0x6d,0xc2,0x7a,0xb3,0x6d,0xc5,0x7e, +0xb3,0x6d,0xb5,0xb4,0x1, 0x6, 0x74,0x1, 0x7a,0xb3,0x6d,0xc2,0x12,0x5e,0xfd,0x78, +0x14,0xe4,0x7a,0xb3,0x6d,0xc3,0x7e,0xb3,0x6d,0xb6,0xb4,0x1, 0x1f,0x74,0x1, 0x7a, +0xb3,0x6d,0xc3,0x80,0x17,0xbe,0xa0,0x1, 0x78,0x12,0xe4,0x7a,0xb3,0x6d,0xc4,0x7e, +0xb3,0x6d,0xb7,0xb4,0x1, 0x6, 0x74,0x1, 0x7a,0xb3,0x6d,0xc4,0x7e,0xb3,0x6d,0xb8, +0xb4,0x1, 0x6, 0x74,0x1, 0x7a,0xb3,0x6d,0xc5,0x4c,0xaa,0x78,0x14,0xe4,0x7a,0xb3, +0x6d,0xc6,0x7e,0xb3,0x6d,0xb9,0xb4,0x1, 0x1f,0x74,0x1, 0x7a,0xb3,0x6d,0xc6,0x80, +0x17,0xbe,0xa0,0x1, 0x78,0x12,0xe4,0x7a,0xb3,0x6d,0xc7,0x7e,0xb3,0x6d,0xba,0xb4, +0x1, 0x6, 0x74,0x1, 0x7a,0xb3,0x6d,0xc7,0x7e,0xb3,0x6d,0xbe,0x70,0x3, 0x12,0x5f, +0xc9,0x7e,0xb3,0x25,0xae,0x70,0x3, 0x12,0x5f,0xc9,0x7e,0xb3,0x6d,0xc0,0xb4,0x1, +0x3, 0x12,0x5f,0xc9,0x7e,0x34,0x22,0x32,0x12,0x2a,0xa9,0xbe,0x37,0x75,0xb7,0x50, +0x3, 0x12,0x5f,0xc9,0x20,0x0, 0x11,0xe4,0x7a,0xb3,0x6d,0xc3,0x7a,0xb3,0x6d,0xc4, +0x7a,0xb3,0x6d,0xc6,0x7a,0xb3,0x6d,0xc7,0x22,0xe4,0x7a,0xb3,0x6d,0xc2,0x7a,0xb3, +0x6d,0xc5,0xc2,0x0, 0x22,0xe4,0x7a,0xb3,0x6d,0xc8,0x7e,0x73,0x6d,0xb3,0x22,0x7e, +0x18,0x8, 0xc, 0x7a,0x1d,0x34,0x7e,0x1f,0x24,0x64,0x7f,0x1, 0x2, 0x5a,0x3c,0x7e, +0x34,0x0, 0xc, 0xe4,0x2, 0x24,0x38,0x6d,0x22,0x7d,0x32,0x80,0x12,0x7d,0x52,0x12, +0x5b,0x1d,0xb, 0xa, 0x10,0xbe,0x14,0x27,0x10,0x40,0x2, 0xb, 0x34,0xb, 0x24,0x7e, +0x17,0x73,0xd6,0xbd,0x12,0x38,0xe6,0xbe,0x34,0x0, 0x6c,0x28,0x7, 0x7e,0xb3,0x78, +0x26,0x4, 0x80,0x1, 0xe4,0x7a,0xb3,0x78,0x26,0x7e,0x73,0x78,0x26,0xbe,0x70,0x2, +0x40,0x6, 0x74,0xaa,0x7a,0xb3,0x77,0x2c,0x22,0x6d,0x55,0x80,0x29,0x7d,0xf5,0x3e, +0xf4,0x7f,0x61,0x2d,0xdf,0xb, 0x6a,0x40,0xbe,0x44,0x0, 0x64,0x28,0x16,0x2d,0xf1, +0x7d,0xe0,0xb, 0x7a,0xd0,0xbe,0xd4,0x0, 0x64,0x50,0x2, 0x80,0x4, 0xbd,0xd4,0x28, +0x3, 0x1b,0x7a,0x40,0xb, 0x54,0xbe,0x55,0x29,0x40,0xd2,0x22,0xca,0x3b,0x6d,0x33, +0x7a,0x37,0x4e,0x83,0x7e,0x8, 0x4a,0x71,0x12,0x65,0x91,0x12,0x67,0x91,0x7e,0x34, +0x1, 0x0, 0x12,0x7, 0x40,0x7a,0x37,0x63,0xbf,0x7e,0x34,0x1, 0x1, 0x12,0x7, 0x40, +0x7a,0x37,0x63,0xc3,0x7e,0x34,0x1, 0x2, 0x12,0x7, 0x40,0x7a,0x37,0x63,0xc5,0x7e, +0x34,0x1, 0x6, 0x12,0x7, 0x40,0x7a,0x37,0x63,0xc1,0x7e,0x34,0x1, 0x0, 0x6d,0x22, +0x12,0x6, 0x48,0x7e,0x34,0x1, 0x0, 0x6d,0x22,0x12,0x6, 0xc5,0x12,0x65,0x46,0x12, +0x6, 0x48,0x12,0x65,0x46,0x12,0x6, 0xc5,0x12,0x65,0x3d,0x12,0x6, 0x48,0x12,0x65, +0x3d,0x12,0x6, 0xc5,0x12,0x65,0x75,0x12,0x6, 0x48,0x12,0x65,0x75,0x12,0x6, 0xc5, +0x6d,0x33,0x12,0x7, 0x40,0x7a,0x37,0x63,0xb5,0x7e,0x34,0x0, 0x1, 0x12,0x7, 0x40, +0x7a,0x37,0x63,0xb7,0x7e,0x34,0x0, 0x2, 0x12,0x7, 0x40,0x7a,0x37,0x63,0xb9,0x7e, +0x34,0x0, 0x8, 0x12,0x7, 0x40,0x7a,0x37,0x63,0xbb,0x7e,0x34,0x0, 0x17,0x12,0x7, +0x40,0x7a,0x37,0x63,0xbd,0x12,0x64,0xed,0x5e,0x50,0xe0,0x4e,0x50,0xa, 0x12,0x64, +0xea,0x5e,0x50,0xe0,0x4e,0x50,0xa, 0x12,0x6, 0xc5,0x12,0x65,0x68,0x12,0x6, 0x48, +0x12,0x65,0x68,0x12,0x6, 0xc5,0x12,0x65,0x82,0x12,0x6, 0x48,0x12,0x65,0x82,0x12, +0x6, 0xc5,0x12,0x65,0x4f,0x12,0x6, 0x48,0x12,0x65,0x4f,0x12,0x6, 0xc5,0x12,0x65, +0x5b,0x12,0x6, 0x48,0x12,0x65,0x5b,0x12,0x6, 0xc5,0x12,0x64,0xf4,0x6d,0x66,0x80, +0x30,0x12,0x64,0xe1,0x7e,0xb3,0x6f,0x76,0x70,0x12,0x12,0x64,0xad,0x60,0x5, 0x3e, +0x14,0x14,0x78,0xfb,0x12,0x64,0xb8,0x12,0x64,0xc3,0x80,0x10,0x12,0x64,0xad,0x60, +0x5, 0x3e,0x14,0x14,0x78,0xfb,0x12,0x64,0xb8,0x12,0x64,0xca,0x12,0x64,0xd8,0xb, +0x64,0x12,0x64,0xd1,0xbd,0x36,0x38,0xc9,0x7e,0xb3,0x6f,0x68,0x54,0x1, 0xb4,0x1, +0xb, 0x7e,0x37,0x63,0x6d,0x4e,0x70,0x1, 0x7a,0x37,0x63,0x6d,0x12,0x3c,0x73,0x7e, +0x34,0x4, 0xc, 0xca,0x39,0x7e,0x18,0xc, 0x18,0x7e,0x8, 0x4a,0x71,0x12,0x24,0x13, +0x1b,0xfd,0x7e,0x34,0x0, 0x1, 0x41,0x6c,0x12,0x64,0xf4,0x7e,0x73,0x6f,0x65,0xa, +0x27,0x7e,0x35,0x27,0xad,0x32,0x7d,0x63,0x80,0x59,0x12,0x64,0xe1,0x7e,0x73,0x6f, +0x62,0xa, 0x37,0xbe,0x35,0x27,0x28,0x1e,0x7e,0xb3,0x6f,0x76,0x70,0xc, 0x12,0x64, +0xad,0x60,0x35,0x3e,0x14,0x14,0x78,0xfb,0x80,0x2e,0x12,0x64,0xad,0x60,0x17,0x3e, +0x14,0x14,0x78,0xfb,0x80,0x10,0x7e,0xb3,0x6f,0x76,0x70,0x12,0x12,0x64,0xad,0x60, +0x5, 0x3e,0x14,0x14,0x78,0xfb,0x12,0x64,0xb8,0x12,0x64,0xca,0x80,0x10,0x12,0x64, +0xad,0x60,0x5, 0x3e,0x14,0x14,0x78,0xfb,0x12,0x64,0xb8,0x12,0x64,0xc3,0x12,0x64, +0xd8,0xb, 0x64,0x7e,0x25,0x27,0xb, 0x24,0x12,0x64,0xd1,0xad,0x32,0xbd,0x36,0x38, +0x99,0x7e,0xb3,0x6f,0x68,0x54,0x4, 0xb4,0x4, 0xb, 0x7e,0x37,0x63,0x6d,0x4e,0x70, +0x4, 0x7a,0x37,0x63,0x6d,0x12,0x3c,0x73,0x7e,0x34,0x4, 0xc, 0xca,0x39,0x12,0x65, +0x0, 0x12,0x24,0x13,0x1b,0xfd,0x12,0x65,0x12,0x12,0x65,0x9, 0x7a,0x35,0x27,0x7e, +0x73,0x6f,0x64,0xa, 0x37,0xbe,0x35,0x27,0x28,0x2, 0x21,0xc8,0x6d,0x33,0x61,0x19, +0x12,0x64,0xf4,0x7e,0x65,0x27,0x80,0x59,0x12,0x64,0xe1,0x7e,0x37,0x6f,0x6a,0xbd, +0x36,0x28,0x1e,0x7e,0xb3,0x6f,0x76,0x70,0xc, 0x12,0x64,0xad,0x60,0x35,0x3e,0x14, +0x14,0x78,0xfb,0x80,0x2e,0x12,0x64,0xad,0x60,0x17,0x3e,0x14,0x14,0x78,0xfb,0x80, +0x10,0x7e,0xb3,0x6f,0x76,0x70,0x12,0x12,0x64,0xad,0x60,0x5, 0x3e,0x14,0x14,0x78, +0xfb,0x12,0x64,0xb8,0x12,0x64,0xca,0x80,0x10,0x12,0x64,0xad,0x60,0x5, 0x3e,0x14, +0x14,0x78,0xfb,0x12,0x64,0xb8,0x12,0x64,0xc3,0x12,0x64,0xd8,0x12,0x64,0xd1,0x2d, +0x63,0x7e,0xa3,0x6f,0x65,0x7e,0xb3,0x6f,0x64,0xa4,0xbd,0x56,0x38,0x9a,0x7e,0xb3, +0x6f,0x69,0x54,0x1, 0xb4,0x1, 0xb, 0x7e,0x37,0x63,0x91,0x4e,0x70,0x1, 0x7a,0x37, +0x63,0x91,0x12,0x3c,0x73,0x7e,0x34,0x4, 0xc, 0xca,0x39,0x12,0x65,0x0, 0x12,0x24, +0x13,0x1b,0xfd,0x12,0x65,0x12,0x12,0x65,0x9, 0x7a,0x35,0x27,0x12,0x64,0xd1,0xbe, +0x35,0x27,0x28,0x2, 0x41,0x80,0x12,0x64,0xf4,0x7e,0xb3,0x6f,0x69,0x54,0x4, 0xb4, +0x4, 0xb, 0x7e,0x37,0x63,0x91,0x4e,0x70,0x4, 0x7a,0x37,0x63,0x91,0x12,0x3c,0x73, +0x7e,0x34,0x4, 0xc, 0xca,0x39,0x12,0x65,0x0, 0x12,0x24,0x13,0x1b,0xfd,0x12,0x65, +0x12,0x12,0x60,0x39,0x6d,0x66,0x7d,0x26,0x3e,0x24,0x49,0x32,0x4a,0x71,0xbe,0x34, +0x2, 0x0, 0x28,0xf, 0x7d,0x12,0x2e,0x14,0x4a,0x71,0x9e,0x34,0x2, 0x0, 0x1b,0x18, +0x30,0x80,0x6, 0x6d,0x33,0x59,0x32,0x4a,0x71,0xb, 0x64,0xbe,0x64,0x2, 0x6, 0x78, +0xd5,0x7e,0x34,0x4a,0x71,0x7a,0x37,0x4e,0x81,0xe4,0x7a,0xb3,0x77,0x41,0x7a,0xb3, +0x77,0x40,0x12,0x64,0xed,0x12,0x64,0xea,0x12,0x6, 0xc5,0x7e,0x34,0x0, 0x1, 0x7e, +0x27,0x63,0xb7,0x12,0x6, 0x48,0x7e,0x34,0x0, 0x1, 0x7e,0x27,0x63,0xb7,0x12,0x6, +0xc5,0x7e,0x34,0x0, 0x2, 0x7e,0x27,0x63,0xb9,0x12,0x6, 0x48,0x7e,0x34,0x0, 0x2, +0x7e,0x27,0x63,0xb9,0x12,0x6, 0xc5,0x7e,0x34,0x0, 0x8, 0x7e,0x27,0x63,0xbb,0x12, +0x6, 0x48,0x7e,0x34,0x0, 0x8, 0x7e,0x27,0x63,0xbb,0x12,0x6, 0xc5,0x7e,0x34,0x0, +0x17,0x7e,0x27,0x63,0xbd,0x12,0x6, 0x48,0x7e,0x34,0x0, 0x17,0x7e,0x27,0x63,0xbd, +0x12,0x6, 0xc5,0x12,0x65,0x34,0x12,0x6, 0x48,0x12,0x65,0x34,0x12,0x6, 0xc5,0x12, +0x65,0x2b,0x12,0x6, 0x48,0x12,0x65,0x2b,0x12,0x6, 0xc5,0x12,0x65,0x22,0x12,0x6, +0x48,0x12,0x65,0x22,0x12,0x6, 0xc5,0x7e,0x34,0x1, 0x6, 0x7e,0x27,0x63,0xc1,0x12, +0x6, 0x48,0x7e,0x34,0x1, 0x6, 0x7e,0x27,0x63,0xc1,0x12,0x6, 0xc5,0x6d,0x66,0x80, +0x56,0x12,0x64,0xe1,0x7e,0x37,0x6f,0x6a,0xbd,0x36,0x28,0x1e,0x7e,0xb3,0x6f,0x76, +0x70,0xc, 0x12,0x64,0xad,0x60,0x35,0x3e,0x14,0x14,0x78,0xfb,0x80,0x2e,0x12,0x64, +0xad,0x60,0x17,0x3e,0x14,0x14,0x78,0xfb,0x80,0x10,0x7e,0xb3,0x6f,0x76,0x70,0x12, +0x12,0x64,0xad,0x60,0x5, 0x3e,0x14,0x14,0x78,0xfb,0x12,0x64,0xb8,0x12,0x64,0xca, +0x80,0x10,0x12,0x64,0xad,0x60,0x5, 0x3e,0x14,0x14,0x78,0xfb,0x12,0x64,0xb8,0x12, +0x64,0xc3,0x12,0x64,0xd8,0xb, 0x64,0x12,0x77,0xb0,0xbd,0x36,0x38,0xa3,0x7e,0x34, +0x1, 0x16,0x7e,0x8, 0x63,0x6d,0x12,0x67,0xdc,0x7e,0x34,0x1, 0x16,0x7e,0x8, 0x63, +0x91,0x12,0x67,0xe3,0x12,0x3f,0x4a,0x12,0xde,0x2c,0xda,0x3b,0x22,0x7d,0x57,0x5e, +0x54,0x0, 0xf, 0x7e,0x14,0x0, 0x1, 0x22,0x7d,0x27,0x1e,0x24,0x1e,0x24,0x1e,0x24, +0x1e,0x24,0x22,0x3e,0x24,0x2e,0x24,0x63,0x6d,0x22,0x3e,0x24,0x2e,0x24,0x63,0x91, +0x22,0x7e,0x73,0x6f,0x65,0xa, 0x37,0x22,0xb, 0x28,0x30,0x4d,0x31,0x1b,0x28,0x30, +0x22,0x7d,0x36,0x3e,0x34,0x49,0x73,0x6f,0x77,0x22,0x12,0x6, 0x48,0x6d,0x33,0x7e, +0x27,0x63,0xb5,0x22,0x7e,0x8, 0x63,0x6d,0x7e,0x34,0x0, 0x48,0xe4,0x2, 0x24,0x38, +0x7e,0x18,0xc, 0x18,0x7e,0x8, 0x63,0xc7,0x22,0x12,0x60,0x39,0x7e,0x35,0x27,0xb, +0x34,0x22,0x7e,0x34,0x2, 0x6, 0x7a,0x35,0x29,0x7e,0x8, 0x4a,0x71,0x7e,0x18,0x63, +0xc7,0x22,0x7e,0x34,0x1, 0x2, 0x7e,0x27,0x63,0xc5,0x22,0x7e,0x34,0x1, 0x1, 0x7e, +0x27,0x63,0xc3,0x22,0x7e,0x34,0x1, 0x0, 0x7e,0x27,0x63,0xbf,0x22,0x7e,0x34,0x1, +0x2, 0x7e,0x24,0x6, 0xe9,0x22,0x7e,0x34,0x1, 0x1, 0x7e,0x24,0x7, 0x8, 0x22,0x7e, +0x34,0x0, 0x8, 0x7e,0x27,0x63,0xbb,0x4e,0x40,0x40,0x22,0x7e,0x34,0x0, 0x17,0x7e, +0x27,0x63,0xbd,0x5e,0x24,0xe0,0x3f,0x22,0x7e,0x34,0x0, 0x1, 0x7e,0x27,0x63,0xb7, +0x5e,0x24,0x80,0x0, 0x22,0x7e,0x34,0x1, 0x6, 0x7e,0x27,0x63,0xc1,0x5e,0x24,0xfc, +0x0, 0x22,0x7e,0x34,0x0, 0x2, 0x7e,0x27,0x63,0xb9,0x5e,0x40,0x9c,0x4e,0x40,0x21, +0x22,0x7e,0x34,0x4, 0xc, 0xe4,0x2, 0x24,0x38,0xca,0x3b,0xf5,0x2b,0x7f,0x31,0x7a, +0xd, 0x27,0x7e,0x18,0xc, 0x18,0x7a,0x1d,0x2e,0x12,0x3b,0xdc,0x7e,0xd, 0x27,0x12, +0x65,0x91,0x30,0x3, 0xc, 0x7e,0x18,0x10,0x24,0x7a,0x1d,0x32,0x7f,0x3, 0x12,0x65, +0x91,0xe4,0x68,0x3, 0x12,0x3b,0xdc,0xd2,0x4, 0x12,0x3c,0x96,0x30,0x3, 0x23,0x6d, +0x33,0x80,0x17,0x12,0x66,0x2e,0x7e,0xd, 0x32,0x2d,0x12,0xb, 0xa, 0x50,0x7d,0x23, +0x3e,0x24,0x12,0x59,0xdb,0x1b,0xa, 0x20,0xb, 0x34,0x7a,0x35,0x2c,0x12,0x66,0x36, +0x38,0xe1,0x6d,0x33,0x80,0x1f,0x12,0x66,0x2e,0x7e,0xd, 0x2e,0x2d,0x12,0xb, 0xa, +0x20,0x3e,0x34,0x7e,0xd, 0x27,0x2d,0x13,0xb, 0xa, 0x30,0x2d,0x32,0x1b,0xa, 0x30, +0x7e,0x35,0x2c,0xb, 0x34,0x7a,0x35,0x2c,0x12,0x66,0x36,0x38,0xd9,0x7e,0xd, 0x27, +0x12,0x66,0x40,0x30,0x3, 0x5, 0x7f,0x3, 0x12,0x66,0x40,0xda,0x3b,0x22,0x7e,0x35, +0x2c,0x7d,0x23,0x3e,0x24,0x22,0x7e,0x37,0x73,0xd6,0xb, 0x36,0xbe,0x35,0x2c,0x22, +0x7e,0xa1,0x2b,0x74,0xa, 0xa4,0x49,0x35,0x29,0x8d,0x7d,0xb3,0x7f,0x70,0x7d,0x3b, +0x12,0x66,0xe9,0x7c,0x7b,0xa, 0x57,0x2e,0x54,0x0, 0xb, 0x7e,0x18,0x0, 0x1, 0x60, +0x5, 0x2f,0x11,0x14,0x78,0xfb,0x74,0x4, 0x2f,0x11,0x14,0x78,0xfb,0x7d,0x1b,0x12, +0x22,0xbd,0x7f,0x61,0xbe,0xb4,0x0, 0x10,0x68,0x6e,0x7e,0x73,0x6f,0x64,0x7a,0x73, +0x65,0xd3,0x7e,0x73,0x6f,0x65,0x7a,0x73,0x65,0xd4,0x74,0xb, 0x7a,0xb3,0x65,0xd5, +0x7d,0xaf,0x7a,0xa7,0x65,0xd7,0x7a,0xa7,0x65,0xdb,0xbe,0xb4,0x0, 0x2, 0x38,0xd, +0xe4,0x7a,0xb3,0x65,0xd5,0x7e,0xd4,0x0, 0x10,0x8d,0xdb,0x6d,0xcc,0x7e,0x8, 0x65, +0xd3,0x7d,0x3d,0x12,0x9, 0x50,0x7e,0x47,0x73,0xd6,0x7e,0xa0,0x4, 0x7d,0x34,0x3e, +0x34,0x7f,0x57,0x2d,0xb3,0xb, 0x5a,0x10,0x7f,0x16,0x12,0x22,0xb4,0x7e,0xb3,0x65, +0xd5,0x60,0xc, 0x1e,0x34,0x1e,0x24,0x50,0x3, 0x4e,0x60,0x80,0x14,0x78,0xf4,0x1b, +0x5a,0x30,0xb, 0x44,0x1b,0xa0,0x78,0xd5,0x22,0xe4,0x80,0x5, 0xb, 0x34,0x1e,0x34, +0x4, 0xbe,0x34,0x0, 0x10,0x38,0xf5,0x22,0x7c,0x9b,0x12,0xde,0xd4,0x7e,0x50,0xa, +0xac,0x59,0x59,0x32,0x29,0x8d,0x74,0x27,0xac,0xb9,0x49,0x5, 0x28,0xec,0x59,0x2, +0x29,0x8f,0x49,0x15,0x28,0xee,0xb, 0x14,0xad,0x10,0x6d,0x0, 0x59,0x12,0x29,0x93, +0x59,0x2, 0x29,0x91,0x12,0x67,0x41,0xac,0x79,0x19,0xa3,0x29,0x8b,0x74,0x27,0xac, +0xb9,0x49,0x35,0x28,0xee,0xb, 0x34,0x12,0x67,0x41,0xac,0x79,0x19,0xa3,0x29,0x8c, +0x22,0x12,0x66,0xe9,0x7c,0xab,0x7e,0x70,0xa, 0x22,0xca,0x3b,0x7c,0xeb,0xc2,0x2, +0x7e,0x70,0x27,0xac,0x7e,0x9, 0xf3,0x28,0xeb,0x12,0x67,0xd2,0x4c,0xee,0x68,0x18, +0xd2,0x2, 0xe4,0x19,0xb3,0x28,0xe9,0x7c,0xbe,0x12,0x66,0xf8,0x12,0x67,0x7d,0x12, +0xda,0xd0,0x12,0x3c,0x54,0x12,0x67,0xfa,0xa2,0x2, 0xda,0x3b,0x22,0xe4,0x7a,0xb3, +0x77,0xb1,0x12,0xe6,0x8e,0x7a,0xb3,0x77,0xb4,0x12,0xe5,0x70,0x7a,0xb3,0x77,0xbc, +0x22,0x7c,0xab,0x7e,0x8, 0x0, 0x7d,0x7c,0xba,0x12,0xd, 0xf7,0x7e,0x8, 0x0, 0xb9, +0x12,0xd, 0xf7,0x7e,0x34,0x0, 0x8, 0x7e,0x8, 0x0, 0x7d,0x12,0x67,0xea,0x7e,0x34, +0x0, 0x8, 0x7e,0x8, 0x0, 0xb9,0x7e,0x24,0x0, 0x1, 0x2, 0x4, 0x96,0xca,0x3b,0x7c, +0xeb,0x12,0x67,0xf1,0x12,0x67,0xd2,0xe5,0x1e,0x12,0x3c,0x29,0x12,0x67,0xfa,0xda, +0x3b,0x22,0x7e,0xd0,0xb5,0xac,0xdf,0x2e,0x64,0x1, 0x0, 0x22,0x7e,0x24,0x0, 0x12, +0x2, 0x3, 0xfa,0x7e,0x24,0x0, 0x12,0x2, 0x4, 0x96,0x7e,0x24,0x0, 0x1, 0x2, 0x3, +0xfa,0x74,0x27,0xac,0xbe,0x9, 0xf5,0x28,0xeb,0x22,0xe4,0x12,0x67,0x91,0x7e,0x30, +0x2c,0xac,0x3f,0x2e,0x14,0x0, 0xf5,0x6d,0x0, 0x74,0x1, 0x7e,0x70,0x27,0xac,0x7e, +0x9, 0x73,0x28,0xe9,0x12,0xd, 0x23,0x7e,0x30,0x2c,0xac,0x3f,0x2e,0x14,0x0, 0xf9, +0x6d,0x0, 0x74,0xa, 0xac,0xbe,0x9, 0xb5,0x29,0x8b,0x12,0xd, 0x73,0x7d,0x36,0xb, +0x35,0x74,0x2c,0xac,0xbf,0x49,0x25,0x0, 0xf9,0x12,0x0, 0x2e,0x7d,0x36,0x74,0x2c, +0xac,0xbf,0x49,0x25,0x0, 0xf5,0x2, 0x0, 0x2e,0x24,0x8a,0x78,0x19,0x7e,0xf, 0x78, +0xf2,0xa5,0xbf,0x0, 0x8, 0x12,0x37,0xe2,0x5e,0x70,0xfb,0x80,0x6, 0x12,0x37,0xe2, +0x4e,0x70,0x4, 0x1b,0xa, 0x30,0x22,0x24,0x52,0x68,0xa, 0x4, 0x78,0x29,0x6d,0x33, +0x7a,0x37,0x4a,0x63,0x22,0x7e,0x63,0x6f,0x64,0x7e,0x73,0x6f,0x65,0xac,0x76,0x3e, +0x34,0x7a,0x37,0x4a,0x63,0x1e,0x34,0xa, 0x36,0x7a,0x73,0x77,0x4d,0x7e,0x37,0x4a, +0x63,0x1e,0x34,0x7a,0x73,0x77,0x4e,0x22,0x12,0x3e,0x8b,0x7e,0x73,0x78,0x8e,0x7a, +0x73,0x77,0x38,0x12,0x68,0xe7,0xe4,0x7a,0xb3,0x6f,0x32,0x7a,0xb3,0x6f,0x31,0x2, +0x68,0xb2,0x7e,0x73,0x76,0xe6,0x7a,0x73,0x78,0xb0,0x22,0x12,0x68,0xe0,0x12,0x68, +0xc4,0x2, 0x68,0xb2,0x7e,0x8, 0x78,0xba,0x2, 0x68,0xcb,0xb, 0xa, 0x30,0xbe,0x37, +0x78,0x86,0x28,0x6, 0x9e,0x37,0x78,0x86,0x80,0x2, 0x6d,0x33,0x1b,0xa, 0x30,0x22, +0x7e,0x8, 0x25,0xb1,0x2, 0x68,0xcb,0x7e,0x73,0x77,0x37,0x7a,0x73,0x73,0xd3,0x22, +0x7e,0x34,0x4, 0xc, 0xca,0x39,0x12,0x69,0x31,0x12,0x24,0x13,0x1b,0xfd,0x6d,0x33, +0x7d,0x13,0x3e,0x14,0x49,0x1, 0x46,0x54,0xbe,0x4, 0x0, 0x0, 0x8, 0x6, 0x49,0x21, +0x46,0x54,0x80,0x4, 0x6d,0x22,0x9d,0x20,0x59,0x21,0x46,0x54,0x49,0x1, 0x42,0x48, +0xbd,0x20,0x28,0x4, 0x59,0x21,0x42,0x48,0xb, 0x34,0xbe,0x34,0x2, 0x6, 0x40,0xd0, +0x22,0x7e,0x1f,0x24,0x68,0x7e,0x8, 0x46,0x54,0x22,0x7e,0x37,0x4e,0xa6,0x7a,0x73, +0x77,0x45,0x7e,0xb3,0x77,0x42,0xb4,0x1, 0x2, 0x80,0x2, 0x41,0x1c,0x7e,0xb3,0x77, +0x31,0x44,0x80,0x7a,0xb3,0x77,0x31,0x7e,0xa7,0x4e,0xa6,0xbe,0xa4,0x0, 0x5, 0x38, +0x30,0x6d,0xdd,0x7a,0xd7,0x4e,0x95,0x7a,0xd7,0x4e,0x93,0x7e,0x8, 0x4e,0x8d,0x7e, +0x34,0x0, 0x6, 0xe4,0x12,0x24,0x38,0x7e,0x34,0x4, 0xc, 0x7d,0x1d,0xad,0x13,0x2e, +0x14,0x42,0x48,0x6d,0x0, 0xe4,0x12,0x24,0x38,0xb, 0xd4,0xbe,0xd4,0x0, 0x2, 0x78, +0xe6,0x7e,0xa7,0x4e,0xa6,0xb, 0xa4,0x7a,0xa7,0x4e,0xa6,0xbe,0xa4,0x0, 0x5, 0x28, +0x5, 0xd2,0x25,0x12,0x68,0xf0,0x7e,0x73,0x77,0x43,0xa, 0xa7,0x3e,0xa4,0x3e,0xa4, +0x2e,0xa4,0x0, 0x5, 0xbe,0xa7,0x4e,0xa6,0x78,0x74,0x6d,0xdd,0x4d,0xdd,0x78,0x4, +0x6d,0xbb,0x80,0xa, 0x7d,0x3d,0x1b,0x34,0x3e,0x34,0x49,0xb3,0x42,0x48,0xbe,0xd4, +0x2, 0x6, 0x78,0x4, 0x6d,0xcc,0x80,0x8, 0x7d,0xcd,0x3e,0xc4,0x49,0xcc,0x42,0x4a, +0x7d,0x3b,0x2d,0x3c,0x7e,0x24,0x0, 0xa, 0x8d,0x32,0x7d,0x3d,0x3e,0x34,0x2e,0x34, +0x42,0x48,0xb, 0x38,0xa0,0x2d,0xa2,0x1b,0x38,0xa0,0xb, 0xd4,0xbe,0xd4,0x2, 0x6, +0x78,0xba,0xc2,0x25,0xe4,0x7a,0xb3,0x77,0x42,0x6d,0xaa,0x7a,0xa7,0x4a,0x63,0x7e, +0x34,0x42,0x48,0x7a,0x37,0x4e,0x7f,0x7a,0xa7,0x4e,0xa6,0x22,0xc2,0x25,0x7e,0xa7, +0x4e,0xa6,0x4d,0xaa,0x68,0x8, 0x6d,0xaa,0x7a,0xa7,0x4e,0xa6,0xd2,0x11,0x22,0x24, +0x6f,0x68,0x12,0x14,0x68,0x14,0x14,0x68,0x16,0x14,0x68,0x18,0xb, 0xb2,0x78,0x19, +0x7e,0xb3,0x1, 0x90,0x22,0x7e,0xb3,0x1, 0x91,0x22,0x7e,0xb3,0x1, 0x92,0x22,0x7e, +0xb3,0x1, 0x93,0x22,0x7e,0xb3,0x1, 0x94,0x22,0x74,0xfe,0x22,0x24,0xab,0x68,0x10, +0x24,0xef,0x68,0x1c,0x24,0xde,0x68,0x26,0x24,0xde,0x78,0x2f,0x74,0x5, 0x80,0x2d, +0x7e,0xb3,0x29,0xfe,0xb4,0x5, 0x2a,0x12,0x6a,0xa2,0x12,0xd8,0x40,0x2, 0x6a,0xe2, +0x7e,0xb3,0x29,0xfe,0xb4,0x5, 0x1a,0x12,0x6a,0xa2,0x75,0xe9,0xff,0x22,0x7e,0xb3, +0x29,0xfe,0xb4,0x5, 0xc, 0x12,0x6a,0xa2,0x2, 0x6a,0xc5,0x74,0x1, 0x7a,0xb3,0x29, +0xfe,0x22,0x7e,0x34,0x0, 0x1, 0x7d,0x23,0x80,0x12,0x7e,0x30,0x4, 0x80,0x5, 0x74, +0xfa,0x12,0x6a,0xe5,0x7c,0x23,0x1b,0x30,0xa5,0xba,0x0, 0xf3,0x7d,0x32,0x1b,0x24, +0x4d,0x33,0x78,0xe6,0x22,0x2, 0x6a,0xc8,0x75,0xe7,0x6b,0xe4,0x7e,0x34,0x1, 0x4, +0x7e,0x24,0x0, 0xff,0x7a,0x1b,0xb0,0x7e,0x34,0x1, 0x5, 0x7a,0x1b,0xb0,0x75,0xe9, +0xff,0x22,0x2, 0x6a,0xc8,0x7c,0xab,0x80,0xf, 0x7e,0x70,0x2, 0x80,0x1, 0x0, 0x7c, +0x67,0x1b,0x70,0xa5,0xbe,0x0, 0xf7,0x0, 0x7c,0x6a,0x1b,0xa0,0xa5,0xbe,0x0, 0xe9, +0x22,0x7c,0xa7,0x7c,0x3b,0xa5,0xbb,0x0, 0x7, 0x7c,0xba,0x12,0x6b,0x5a,0x80,0x25, +0xbe,0x30,0xeb,0x68,0x4, 0xa5,0xbb,0xec,0x9, 0x7c,0xb3,0x7c,0x7a,0x12,0x78,0xff, +0x80,0x13,0xbe,0x30,0x80,0x40,0xe, 0xbe,0x30,0xef,0x38,0x9, 0x7c,0xb3,0x24,0x80, +0x7c,0x7a,0x12,0x79,0x3b,0xa5,0xbb,0xfc,0x5, 0x7c,0xba,0x2, 0x6a,0x5c,0x74,0x1, +0x7a,0xb3,0x29,0xfe,0x22,0x7c,0x6b,0x12,0x6b,0xcc,0x78,0x5, 0x7c,0xb6,0x2, 0x6b, +0x1, 0xb4,0x4, 0x5, 0x7c,0xb6,0x2, 0x40,0x2b,0x22,0x7a,0xb3,0x77,0x31,0xc4,0x54, +0x7, 0xbe,0xb0,0x4, 0x68,0x3, 0xb4,0x2, 0x4, 0x74,0x3, 0x80,0x7, 0x60,0x3, 0xb4, +0x1, 0x7, 0x74,0x1, 0x7a,0xb3,0x76,0xe6,0x22,0x12,0x6f,0xa2,0xe4,0x7a,0xb3,0x77, +0x31,0x22,0x30,0x90,0x19,0xc2,0x90,0xe5,0x13,0x70,0x9, 0x75,0x13,0x1, 0xe5,0x91, +0xf5,0x1a,0x80,0x11,0x7e,0x71,0x91,0xe5,0x1a,0x12,0x6b,0x45,0x5, 0x1a,0x30,0x91, +0xb, 0xc2,0x91,0x5, 0x1a,0xe5,0x1a,0x12,0x6b,0xad,0xf5,0x91,0x22,0x7c,0x7b,0x6c, +0xaa,0x12,0x6b,0xcc,0x78,0x9, 0x7c,0xb7,0x12,0x6b,0xd4,0x7c,0xab,0x80,0xa, 0xb4, +0x4, 0x7, 0x7c,0xb7,0x12,0x39,0x23,0x7c,0xab,0x7c,0xba,0x22,0x7e,0xb3,0x77,0x31, +0xc4,0x54,0x7, 0x22,0x7c,0x2b,0xa5,0xba,0xfa,0x5, 0x7e,0xb3,0x4a,0x66,0x22,0xa5, +0xba,0x0, 0x5, 0x7e,0xb3,0x77,0x31,0x22,0xbe,0x20,0x3, 0x38,0x13,0x30,0x21,0x6, +0x7e,0x18,0x28,0x3b,0x80,0x4, 0x7e,0x18,0x28,0x79,0x7a,0x1f,0x28,0xe0,0x80,0x5, +0xbe,0x20,0x6e,0x38,0xe, 0xa, 0x2, 0x7e,0x1f,0x28,0xe0,0x2d,0x30,0x1b,0x34,0x7e, +0x1b,0xb0,0x22,0xbe,0x20,0xd3,0x68,0x4, 0xa5,0xba,0xd4,0x11,0xa5,0xba,0xd3,0x8, +0x6d,0x33,0x7a,0x37,0x77,0x8d,0x80,0x2, 0x15,0x1a,0x2, 0x78,0x8f,0xa5,0xba,0xf6, +0xc, 0x7e,0x34,0x1b,0xd6,0x7e,0x24,0x0, 0xff,0xb, 0x1a,0x50,0x22,0xa5,0xba,0xf7, +0xa, 0x7e,0x34,0x1b,0xd6,0x12,0x2a,0xa9,0xa, 0x56,0x22,0xbe,0x20,0xf8,0x68,0x4, +0xa5,0xba,0xf9,0x1d,0xa5,0xba,0xf8,0x8, 0x6d,0x33,0x7a,0x37,0x77,0x8d,0x80,0x2, +0x15,0x1a,0x7e,0x37,0x77,0x8d,0x7d,0x23,0xb, 0x24,0x7a,0x27,0x77,0x8d,0x2, 0x6c, +0xe0,0xbe,0x20,0xeb,0x68,0x4, 0xa5,0xba,0xec,0x5, 0x7c,0xb2,0x2, 0x6f,0x79,0xbe, +0x20,0x99,0x68,0x4, 0xa5,0xba,0x9a,0x2a,0x7e,0xb3,0x76,0xcf,0x7c,0xab,0xbe,0xa0, +0x20,0x40,0xd, 0xbe,0xa0,0x40,0x50,0x8, 0xa, 0x3a,0x9, 0x33,0x6b,0xc9,0x80,0x3, +0x12,0xe5,0xd8,0x4, 0x7a,0xb3,0x76,0xcf,0xa5,0xba,0x9a,0x3, 0x75,0x1a,0x99,0x7c, +0xb3,0x22,0xbe,0x20,0x80,0x40,0xc, 0xbe,0x20,0xef,0x38,0x7, 0xa, 0x32,0x9, 0xb3, +0x76,0x3f,0x22,0xa5,0xba,0xfc,0x5, 0x7e,0xb3,0x76,0xe6,0x22,0xa5,0xba,0xfe,0xd, +0x7e,0x23,0x78,0x97,0x74,0x27,0xac,0xb2,0x9, 0xb5,0x28,0xe8,0x22,0x74,0xff,0x22, +0x7e,0x24,0xe, 0x6, 0x2d,0x32,0x2, 0x6c,0xf3,0x7c,0xb7,0x54,0x7, 0xa, 0x3b,0x2e, +0x34,0x0, 0xf5,0x7a,0x71,0x82,0x7a,0x61,0x83,0xe4,0x93,0x22,0x74,0x1, 0x7a,0xb3, +0x78,0xfa,0x7e,0xb3,0x77,0xf, 0xb4,0x1, 0x6, 0xe4,0x7a,0xb3,0x78,0xfa,0x22,0x7e, +0xb4,0x21,0x53,0x7d,0x3b,0x12,0x6c,0xf3,0x7c,0x7b,0x1e,0x70,0x7a,0x73,0x6f,0x3f, +0x7e,0xa4,0x0, 0x96,0x7a,0xa7,0x6f,0x40,0x12,0x6f,0xc7,0x12,0xe1,0xf5,0x7e,0xa3, +0x6d,0x93,0xbe,0xa0,0x0, 0x38,0x2, 0xa1,0xca,0xbe,0xa0,0x8, 0x28,0x1f,0x7e,0x37, +0x6d,0x99,0xbe,0x34,0x1, 0x90,0x58,0x15,0x7d,0x3b,0x12,0x6c,0xf3,0x1e,0xb0,0xa, +0x3b,0x7d,0x2a,0x7e,0x14,0x0, 0x8c,0x7e,0x4, 0x0, 0x82,0x80,0x66,0xbe,0xa0,0x6, +0x28,0x1b,0x7e,0x37,0x6d,0x99,0xbe,0x34,0x1, 0xf4,0x58,0x11,0x7d,0x3b,0x12,0x6c, +0xf3,0xa, 0x3b,0x7e,0x24,0x0, 0xa0,0x7d,0x1a,0x7d,0xa, 0x80,0x46,0xbe,0xa0,0x4, +0x28,0x1f,0x7e,0xa7,0x6d,0x99,0xbe,0xa4,0x2, 0x58,0x58,0x15,0x7d,0x3b,0x12,0x6c, +0xf3,0xa, 0x3b,0x7e,0x24,0x0, 0xb4,0x7e,0x14,0x0, 0xaa,0x7e,0x4, 0x0, 0xc8,0x80, +0x22,0xbe,0xa0,0x2, 0x28,0x24,0x7e,0xa7,0x6d,0x99,0xbe,0xa4,0x3, 0x20,0x58,0x1a, +0x7d,0x3b,0x12,0x6c,0xf3,0xa, 0x3b,0x7e,0x24,0x0, 0xdc,0x7e,0x14,0x0, 0xd2,0x7e, +0x4, 0x0, 0xe6,0x12,0x4f,0x3f,0x80,0x7, 0x80,0x0, 0xe4,0x7a,0xb3,0x78,0xfa,0x7e, +0xb3,0x78,0xfa,0x70,0x27,0x90,0x21,0x53,0xe4,0x93,0xa, 0x3b,0x7e,0x14,0x21,0x5b, +0x12,0x6f,0xdd,0x7e,0x14,0x21,0x5d,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0x10,0x7e,0x54, +0x21,0x67,0x7e,0x44,0x0, 0xff,0xb, 0x2a,0x0, 0x2, 0x4f,0x3f,0xd2,0x27,0x22,0x12, +0x6f,0xe5,0x2, 0x6c,0xfc,0x7c,0x7b,0xc4,0x23,0x54,0x1f,0xa, 0x2b,0x9, 0xa2,0x6c, +0x81,0x12,0x6c,0xe9,0x5c,0xba,0x22,0xca,0x79,0x6c,0xff,0x6c,0xee,0x80,0x2c,0x7c, +0xbe,0x12,0x6e,0x5, 0x60,0x23,0x7e,0x34,0x0, 0x2, 0xca,0x39,0xac,0x7e,0x2e,0x34, +0x6c,0x9, 0x6d,0x22,0x7e,0x30,0x2, 0xac,0x3f,0x2e,0x14,0x6c,0x9, 0x6d,0x0, 0x12, +0x24,0x13,0x1b,0xfd,0xd2,0x2, 0x12,0x6e,0x85,0xb, 0xe0,0x12,0x6f,0xa9,0x38,0xcf, +0x7a,0xf3,0x6d,0x93,0xda,0x79,0x22,0xc2,0x2, 0x7c,0xb1,0x7c,0x7b,0xc4,0x23,0x54, +0x1f,0x7c,0xab,0x12,0x6c,0xe9,0x30,0x2, 0xf, 0xa, 0x3a,0x2e,0x34,0x6c,0x81,0x7e, +0x39,0xa0,0x4c,0xba,0x7a,0x39,0xb0,0x22,0x64,0xff,0xa, 0x2a,0x2e,0x24,0x6c,0x81, +0x2, 0x57,0xe5,0xc2,0x2, 0x7c,0xbf,0x12,0x6e,0x5b,0xb, 0xf0,0x22,0xca,0xf8,0xc2, +0x0, 0xc2,0x1, 0x12,0x6f,0xbf,0x68,0x76,0x7e,0xb3,0x77,0xf, 0x70,0x70,0x7e,0xb3, +0x6d,0x93,0x70,0x5, 0x12,0x6f,0x18,0x80,0x65,0x12,0x9b,0x71,0x92,0x1, 0x12,0xcc, +0xaf,0x92,0x0, 0x30,0x0, 0x13,0x7e,0x34,0x22,0x27,0x12,0x2a,0xa9,0x7a,0x37,0x78, +0xdb,0x74,0x1, 0x7a,0xb3,0x78,0xd7,0x80,0x14,0x30,0x1, 0x19,0x7e,0x34,0x22,0x27, +0x12,0x2a,0xa9,0x7a,0x37,0x78,0xdb,0x74,0x1, 0x7a,0xb3,0x78,0xd8,0x74,0x1, 0x7a, +0xb3,0x78,0xd6,0x80,0x3, 0x12,0x6f,0x18,0x7e,0xb3,0x78,0xd7,0x60,0xe, 0x6c,0xff, +0x80,0x3, 0x12,0x6e,0x83,0x12,0x6f,0x11,0x38,0xf8,0x80,0x12,0x7e,0xb3,0x78,0xd8, +0x60,0xc, 0x6c,0xff,0x80,0x3, 0x12,0x6e,0x83,0x12,0x6f,0x11,0x38,0xf8,0xda,0xf8, +0x22,0x7e,0x73,0x6d,0x93,0xbc,0x7f,0x22,0x7e,0x37,0x78,0xdb,0xbe,0x34,0x0, 0x0, +0x28,0x7, 0x1b,0x34,0x7a,0x37,0x78,0xdb,0x22,0xe4,0x12,0x6f,0xd0,0x7a,0xb3,0x78, +0xd6,0x22,0x12,0x6f,0xb7,0x28,0x3a,0x7e,0xb3,0x6f,0x32,0x70,0x34,0x7e,0x37,0x6d, +0x95,0xbe,0x34,0x0, 0x26,0x28,0x2f,0x7e,0xb3,0x78,0xdd,0xbe,0xb0,0x2, 0x50,0x26, +0x4, 0x7a,0xb3,0x78,0xdd,0x6c,0x33,0x80,0x9, 0xc2,0x2, 0x7c,0xb3,0x12,0x6e,0x5b, +0xb, 0x30,0x7e,0x23,0x6d,0x93,0xbc,0x23,0x38,0xef,0xe4,0x7a,0xb3,0x6d,0x93,0x80, +0x5, 0xe4,0x7a,0xb3,0x78,0xdd,0x2, 0x6e,0x17,0xb4,0xeb,0x3, 0x75,0x1b,0x0, 0xe5, +0x1b,0xa, 0x3b,0x2e,0x34,0x0, 0x16,0x12,0x6c,0xf3,0x7c,0xab,0x5, 0x1b,0xe5,0x1b, +0xb4,0x3, 0x9, 0x75,0x1b,0x0, 0x6d,0x33,0x7a,0x37,0x77,0x8f,0x75,0x1a,0xeb,0x7c, +0xba,0x22,0x74,0x1, 0x7a,0xb3,0x76,0xe6,0x22,0x7e,0x73,0x6d,0x93,0xbc,0x7e,0x22, +0xc2,0x2, 0x7c,0xbc,0x2, 0x6e,0x5b,0x7e,0x73,0x6d,0x93,0xbe,0x70,0x0, 0x22,0x7e, +0xb3,0x6f,0x58,0xbe,0xb0,0x1, 0x22,0x7e,0x34,0x0, 0x8c,0x7a,0x37,0x6f,0x42,0x22, +0x7a,0xb3,0x78,0xd7,0x7a,0xb3,0x78,0xd8,0x22,0x7e,0x14,0x21,0xec,0x7e,0x4, 0x0, +0xff,0xb, 0xa, 0x20,0x22,0x7e,0x8, 0x78,0xfa,0x7e,0x34,0x0, 0x1, 0x74,0xff,0x2, +0x24,0x38,0x7e,0xa3,0x6f,0x31,0xbe,0xa0,0x0, 0x38,0x3, 0x2, 0x70,0xa8,0x7e,0xb3, +0x78,0xbf,0xbe,0xb0,0x32,0x40,0x2, 0x1, 0x8a,0x4, 0x7a,0xb3,0x78,0xbf,0xbe,0xa0, +0x2, 0x28,0xe, 0x7e,0xb3,0x78,0xbf,0x4, 0x7a,0xb3,0x78,0xbf,0x4, 0x7a,0xb3,0x78, +0xbf,0x7e,0xb3,0x78,0xbe,0x70,0x25,0x7e,0x37,0x6e,0x23,0x7a,0x37,0x78,0xc0,0x7e, +0x37,0x6e,0x25,0x7a,0x37,0x78,0xc2,0x74,0x1, 0x7a,0xb3,0x78,0xbe,0xe4,0x7a,0xb3, +0x78,0xbd,0x7e,0xb3,0x6e,0x27,0x7a,0xb3,0x78,0xc4,0x80,0x44,0x7e,0x27,0x6e,0x25, +0x7d,0x32,0x9e,0x37,0x78,0xc2,0xbe,0x34,0x0, 0x0, 0x8, 0x6, 0x9e,0x27,0x78,0xc2, +0x80,0x4, 0x6d,0x22,0x9d,0x23,0x7e,0x37,0x6e,0x23,0x7d,0x13,0x9e,0x17,0x78,0xc0, +0xbe,0x14,0x0, 0x0, 0x8, 0x6, 0x9e,0x37,0x78,0xc0,0x80,0x4, 0x6d,0x33,0x9d,0x31, +0x2d,0x32,0xbe,0x34,0x0, 0x32,0x28,0x8, 0x80,0x0, 0x74,0x1, 0x7a,0xb3,0x78,0xbd, +0x7e,0xb3,0x78,0xbd,0xb4,0x1, 0x1e,0xbe,0xa0,0x1, 0x78,0x19,0x7e,0x73,0x6e,0x27, +0xbe,0x73,0x78,0xc4,0x68,0xf, 0x80,0x0, 0xe4,0x7a,0xb3,0x78,0xbe,0x7a,0xb3,0x78, +0xbd,0x7a,0xb3,0x78,0xbf,0x22,0x7e,0x73,0x6d,0xa8,0x7a,0x73,0x6d,0xa9,0x7e,0x73, +0x6f,0x31,0x7a,0x73,0x6f,0x32,0xe4,0x7a,0xb3,0x6f,0x35,0x7e,0x73,0x78,0x8e,0x7a, +0x73,0x76,0xea,0x7e,0x73,0x6f,0x57,0x7a,0x73,0x5c,0xc3,0x22,0x7e,0xb3,0x78,0xbc, +0x4, 0x7a,0xb3,0x78,0xbc,0x7e,0x73,0x78,0xbc,0x7a,0x73,0x76,0xd0,0x22,0x7e,0x37, +0x78,0x9f,0xb, 0x34,0x7a,0x37,0x78,0x9f,0x7e,0x37,0x78,0xa1,0xbe,0x37,0x78,0x9f, +0x28,0x3, 0x2, 0x71,0x9, 0x22,0x2, 0x70,0xee,0xe5,0x9a,0x60,0x5, 0xd2,0x9c,0xa9, +0xd6,0xdf,0x22,0xca,0x7b,0xca,0x6b,0xca,0x5b,0xca,0x4b,0xca,0x2b,0xca,0x1b,0xca, +0xb, 0xc0,0xd0,0xc0,0x83,0xc0,0x82,0xc2,0x8f,0x12,0x71,0x6, 0xd0,0x82,0xd0,0x83, +0xd0,0xd0,0xda,0xb, 0xda,0x1b,0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda,0x7b, +0x32,0xe4,0x12,0x77,0xea,0x12,0x77,0xd0,0x12,0x71,0xf2,0x12,0x71,0xe7,0x12,0x77, +0xb9,0x7e,0x34,0x0, 0x1c,0x12,0xc, 0x65,0x12,0x2d,0x3d,0x12,0x77,0x92,0x12,0x77, +0x81,0x12,0x77,0x8c,0x12,0x77,0x86,0x12,0x77,0xc4,0x12,0xd8,0x97,0x12,0x73,0x80, +0x12,0xd8,0xa7,0x12,0x71,0xc2,0x12,0x74,0x4b,0xd2,0xaf,0x12,0x72,0x2c,0x12,0x72, +0x8, 0x90,0x1c,0x45,0xe4,0x93,0xca,0xb8,0x90,0x1c,0x46,0xe4,0x93,0x7c,0x7b,0x7e, +0x24,0x1, 0x33,0xda,0xb8,0x2, 0x71,0x98,0xca,0x79,0x7c,0xf7,0x7c,0xeb,0x7c,0x7f, +0x12,0xb, 0x7b,0xa9,0xd6,0xcb,0x5e,0xe0,0x3f,0x5e,0xf0,0x3f,0x7c,0x4e,0x6c,0x55, +0xa, 0x3f,0x2d,0x32,0x7e,0xf, 0x78,0xee,0x79,0x30,0x0, 0x32,0xa9,0xc6,0xcb,0xda, +0x79,0x22,0x2, 0x71,0xc5,0xd2,0x0, 0x12,0x45,0x86,0xa9,0xd0,0xcb,0xa9,0xc6,0xca, +0x12,0x77,0xdd,0xa9,0xd3,0x9e,0xa9,0xc3,0xb9,0xc2,0x8a,0xd2,0xaa,0x2, 0x71,0xe0, +0xa9,0xd0,0x9e,0xa9,0xd7,0x9e,0x22,0xc2,0x8d,0xc2,0x8f,0x12,0x73,0xcd,0xa9,0xc0, +0x93,0x22,0x75,0xec,0xff,0x75,0xee,0xff,0x75,0xeb,0x23,0x75,0xac,0xc0,0x12,0xd7, +0xe5,0xa9,0xd5,0xad,0xa9,0xc5,0xed,0x22,0x7e,0x8, 0x6b,0xe9,0x12,0x72,0x61,0x7e, +0x34,0x0, 0x20,0x7a,0x35,0x27,0x7e,0x18,0x0, 0x20,0x12,0x72,0x6b,0x2, 0x72,0x20, +0xa9,0xc5,0xca,0xa9,0xc7,0x94,0xe4,0x7a,0xb3,0x78,0xfb,0x22,0x6c,0x77,0xa9,0xc7, +0xb3,0xa9,0xc6,0xb3,0xd2,0xc8,0x43,0xed,0xf, 0xc2,0xea,0xb, 0x70,0xbe,0x70,0x3, +0x28,0x3, 0x7e,0x70,0x3, 0xa, 0x57,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x2e, +0x54,0x0, 0x3, 0xf5,0xb3,0xa9,0xd1,0xb4,0xa9,0xc0,0xb4,0x12,0x72,0x61,0x2, 0x72, +0x20,0xa9,0xd7,0x94,0x74,0xa5,0x7a,0xb3,0x78,0xfb,0x22,0x12,0x72,0x79,0x7e,0x35, +0x27,0x12,0xd7,0xc9,0xa9,0xd2,0xb4,0xd3,0x22,0x7d,0x52,0xf5,0x2b,0x7c,0xb6,0x7c, +0xa5,0xa, 0x44,0xf5,0x2a,0x7f,0x21,0xf5,0x29,0xa9,0xc2,0xb4,0x74,0xb, 0x12,0x72, +0xa4,0xe5,0x2b,0x12,0x72,0xa4,0xe5,0x2a,0x12,0x72,0xa4,0xe5,0x29,0x12,0x72,0xa4, +0xe4,0x2, 0x72,0xa4,0xf5,0xb5,0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0xd3,0x22,0x7e, +0x34,0x21,0x57,0x12,0x2a,0xa9,0x12,0x2d,0x41,0x12,0x71,0x41,0x12,0x72,0xcc,0x12, +0x6f,0xa2,0x7a,0xb3,0x78,0xb0,0x12,0x77,0xa0,0x2, 0x29,0x4a,0x12,0x97,0xcc,0x12, +0x74,0x8, 0x12,0x98,0x53,0x12,0x98,0x99,0x12,0x73,0xd5,0x12,0x2a,0xb1,0x12,0x98, +0x7a,0x12,0x73,0x3a,0x12,0xcc,0x99,0x12,0x4f,0x5e,0x2, 0x72,0xed,0xd2,0x1, 0x12, +0x29,0x5a,0x6c,0xaa,0x7e,0x63,0x78,0x97,0x7e,0x70,0x27,0xac,0x67,0x9, 0x63,0x28, +0xe8,0xa, 0x2a,0x12,0x5d,0x3d,0x7c,0x7b,0xbc,0x67,0x78,0x4, 0x7a,0xa3,0x75,0x33, +0x7e,0x50,0x26,0xac,0x5a,0x19,0x72,0x75,0x37,0xb, 0xa0,0xbe,0xa0,0x3, 0x78,0xd4, +0x7e,0x73,0x75,0x33,0xbe,0x70,0x3, 0x40,0x5, 0xe4,0x7a,0xb3,0x75,0x33,0x12,0x74, +0xcd,0x7e,0x73,0x75,0x33,0x7a,0x73,0x75,0xbb,0x22,0x12,0x73,0x78,0x74,0x9, 0xac, +0x7b,0x7e,0x8, 0x6d,0xc9,0x12,0x73,0x73,0x74,0x9, 0xac,0x7b,0x7e,0x8, 0x6e,0x7d, +0x12,0x73,0x73,0x74,0x9, 0xac,0x7b,0x7e,0x8, 0x6e,0x23,0x74,0xff,0x12,0x24,0x38, +0x7e,0x8, 0x6e,0xd7,0x12,0x90,0x7b,0x7e,0x8, 0x6f,0x31,0x7e,0x34,0x0, 0xd, 0xe4, +0x2, 0x24,0x38,0x74,0xff,0x12,0x24,0x38,0x90,0x21,0x51,0xe4,0x93,0x7c,0x7b,0x22, +0xe4,0x7a,0xb3,0x77,0x31,0x7e,0x8, 0x28,0x3b,0x12,0x77,0xa7,0x7e,0x8, 0x28,0x79, +0x7e,0x34,0x0, 0x3e,0x12,0x24,0x38,0x7e,0x18,0x28,0x3b,0x7a,0x1f,0x28,0xe0,0x12, +0x73,0xb2,0x2, 0x73,0xa5,0x75,0x13,0x0, 0x75,0x1a,0x0, 0x7e,0xb3,0x77,0x31,0xf5, +0x91,0x22,0x2, 0x73,0xb5,0xc2,0x92,0x12,0x73,0xcd,0x90,0x1b,0xd8,0xe4,0x93,0x54, +0xfe,0xf5,0x92,0xd2,0xe8,0xc2,0xc0,0xa9,0xd4,0x95,0xd2,0xad,0x22,0x75,0x91,0x0, +0xc2,0x90,0xc2,0x91,0x22,0x7e,0x34,0x22,0x5, 0x12,0x2a,0xa9,0x7a,0x37,0x6d,0xac, +0x7e,0x34,0x22,0x7, 0x12,0x2a,0xa9,0x7a,0x37,0x6d,0xae,0x7e,0x34,0x22,0x9, 0x12, +0x2a,0xa9,0x12,0xe6,0x25,0x90,0x22,0xc, 0xe4,0x93,0x7a,0xb3,0x6d,0xb3,0xe4,0x7a, +0xb3,0x6d,0xbc,0x7a,0xb3,0x6d,0xbd,0x22,0x7e,0x34,0x4, 0x71,0xca,0x39,0x7e,0x34, +0x1c,0x43,0x7e,0x24,0x0, 0xff,0x7e,0x8, 0x6f,0x62,0x12,0x24,0x13,0x1b,0xfd,0x12, +0x77,0xb0,0x7a,0x37,0x73,0xd6,0xe4,0x7a,0xb3,0x6f,0x68,0x7a,0xb3,0x6f,0x69,0x90, +0x21,0xd9,0x93,0x70,0x6, 0x7e,0x63,0x6f,0x65,0x80,0x4, 0x7e,0x63,0x6f,0x64,0x7e, +0x70,0x40,0xac,0x67,0x1b,0x34,0x7a,0x37,0x73,0xd8,0x22,0xa9,0xd2,0xea,0xa9,0xc2, +0xea,0x6d,0x33,0x7e,0xf, 0x78,0xf2,0x79,0x30,0x0, 0x10,0x12,0x45,0x27,0x4e,0x34, +0xdc,0xe, 0x1b,0xa, 0x30,0x7e,0x34,0x1, 0xc2,0x7e,0xf, 0x78,0xf2,0x79,0x30,0x0, +0x1e,0x7e,0xf, 0x78,0xf2,0x12,0x37,0xe2,0x4e,0x70,0x10,0x1b,0xa, 0x30,0x12,0xe5, +0x88,0x12,0xb, 0xe5,0x7e,0x34,0xff,0xff,0x7e,0xf, 0x78,0xf2,0x79,0x30,0x0, 0x2, +0x6d,0x33,0x7e,0xf, 0x78,0xf2,0x79,0x30,0x0, 0x14,0x12,0x74,0xc4,0x7e,0x34,0xf0, +0x4f,0x12,0x74,0xc4,0xd2,0x4, 0x12,0x3c,0x2, 0x53,0xc3,0xf8,0x75,0xc3,0x85,0x53, +0xc2,0xfc,0x43,0xc2,0x81,0xd2,0xac,0x2, 0x74,0xba,0x90,0x21,0x50,0xe4,0x93,0x7a, +0xb3,0x78,0x8f,0x22,0x7e,0xf, 0x78,0xf2,0x79,0x30,0x0, 0x4, 0x22,0x7e,0xb3,0x75, +0x33,0x7c,0xab,0x6c,0x77,0xbc,0xa7,0x78,0x2b,0x12,0x77,0x99,0x12,0x35,0xa6,0x12, +0x75,0x64,0x59,0x2, 0x75,0x49,0x7e,0x8, 0x14,0x30,0x59,0x12,0x75,0x53,0x59,0x2, +0x75,0x51,0x7e,0x8, 0x18,0x3c,0x59,0x12,0x75,0x57,0x59,0x2, 0x75,0x55,0x7e,0x8, +0x1c,0x48,0x80,0x4e,0x7e,0x50,0x4, 0xac,0x5a,0xa, 0x17,0x2d,0x21,0x2e,0x24,0x24, +0x4a,0x12,0x5d,0x41,0x7c,0x6b,0x7e,0xb3,0x78,0x97,0xa, 0xb, 0x12,0x35,0xa6,0x12, +0x75,0x64,0x59,0x2, 0x75,0x49,0xa, 0x6, 0x7e,0x14,0xc, 0x24,0xad,0x10,0x7d,0xf1, +0x2e,0xf4,0x2a,0x0, 0x6d,0xee,0x59,0xf2,0x75,0x53,0x59,0xe2,0x75,0x51,0x7d,0xf1, +0x2e,0xf4,0x2e,0xc, 0x59,0xf2,0x75,0x57,0x59,0xe2,0x75,0x55,0x2e,0x14,0x32,0x18, +0x6d,0x0, 0x59,0x12,0x75,0x5b,0x59,0x2, 0x75,0x59,0xb, 0x70,0xbe,0x70,0x3, 0x50, +0x2, 0x81,0xd5,0x22,0x2e,0x14,0x4e,0xa8,0x6d,0x0, 0x7e,0x50,0x26,0xac,0x57,0x59, +0x12,0x75,0x47,0x59,0x2, 0x75,0x45,0x7e,0x8, 0x57,0x98,0x59,0x12,0x75,0x4f,0x59, +0x2, 0x75,0x4d,0x7e,0x8, 0x55,0x5c,0x59,0x12,0x75,0x4b,0x22,0x7c,0x9b,0x7e,0x24, +0x0, 0x1, 0x7c,0xb9,0x60,0x5, 0x3e,0x24,0x14,0x78,0xfb,0x7e,0x83,0x73,0xd4,0xa, +0x38,0x5d,0x32,0x68,0xb, 0x12,0x74,0xcd,0x7e,0x83,0x75,0x33,0x7a,0x83,0x75,0xbb, +0x6c,0xaa,0x7e,0xb3,0x75,0xbb,0xbc,0xba,0x78,0x8, 0x6c,0x88,0x12,0x75,0xed,0xe4, +0x80,0x1f,0x7e,0x24,0x0, 0x1, 0x7c,0xb9,0x60,0x5, 0x3e,0x24,0x14,0x78,0xfb,0x7e, +0xb3,0x73,0xd4,0xa, 0x3b,0x5d,0x32,0x68,0xc, 0x7e,0x80,0x1, 0x12,0x75,0xed,0x74, +0x1, 0x19,0xb3,0x75,0x44,0xb, 0xa0,0xbe,0xa0,0x3, 0x40,0xc6,0x22,0x7e,0x70,0x26, +0xac,0x7a,0x19,0x83,0x75,0x43,0x22,0x30,0x28,0x24,0xc2,0x28,0x7e,0x73,0x76,0xbc, +0x7a,0x73,0x76,0xe4,0x74,0xff,0x7a,0xb3,0x76,0xbc,0x7e,0xa3,0x76,0xe4,0x4c,0xaa, +0x78,0x5, 0x12,0x76,0xad,0x80,0x7, 0xbe,0xa0,0x1, 0x78,0x2, 0xd2,0x1c,0x30,0x1c, +0x3, 0x12,0x76,0xc8,0x7e,0xb3,0x76,0xe4,0x14,0x68,0x5b,0x1b,0xb1,0x68,0x5f,0x24, +0x3, 0x78,0x6e,0x12,0x76,0xa5,0x38,0x7, 0x7e,0xb3,0x78,0xd6,0xb4,0x1, 0x16,0x12, +0x54,0x9a,0x7e,0xb3,0x76,0xc5,0x30,0xe0,0x5b,0x7e,0xb3,0x77,0xf, 0xb4,0x1, 0x54, +0x30,0x14,0x51,0x80,0x2e,0x7e,0xb3,0x76,0xc5,0x30,0xe0,0x48,0x7e,0x37,0x78,0xeb, +0x7e,0x44,0x3, 0xe8,0x7d,0x53,0x8d,0x54,0x7e,0x53,0x76,0xc6,0xa, 0x15,0xbd,0x51, +0x50,0x11,0x7e,0xb3,0x77,0xf, 0xb4,0x1, 0x2b,0x7e,0x24,0x0, 0xc8,0x8d,0x32,0xbd, +0x31,0x40,0x21,0x2, 0x76,0xc8,0x12,0x76,0xa5,0x28,0x19,0x2, 0x77,0x9, 0x7e,0x34, +0x21,0x59,0x12,0x2a,0xa9,0x12,0x2d,0x41,0x12,0x45,0x62,0x12,0x72,0xaf,0x2, 0x76, +0xad,0x12,0x77,0x2, 0x22,0x7e,0x73,0x6f,0x31,0xbe,0x70,0x0, 0x22,0xe4,0x7a,0xb3, +0x76,0xe4,0xd2,0x15,0x12,0x54,0x9a,0x2, 0x76,0xba,0x12,0x3b,0x65,0x5e,0x34,0x0, +0x1, 0x68,0x4, 0xd2,0x1e,0xc2,0x1b,0x22,0xe5,0x1e,0xb4,0x1, 0xc, 0x7e,0xb3,0x25, +0xaf,0x60,0x6, 0xe4,0x7a,0xb3,0x76,0xe4,0x22,0xc2,0x1c,0x12,0x77,0x2, 0xe4,0x7a, +0xb3,0x28,0xe6,0x12,0x54,0x9a,0x7a,0xb3,0x78,0xed,0x7a,0xb3,0x78,0xea,0x12,0x3b, +0x65,0x5e,0x34,0x0, 0x2, 0x68,0xa, 0x7e,0xb3,0x73,0xd5,0x44,0x8, 0x7a,0xb3,0x73, +0xd5,0x22,0x74,0x1, 0x7a,0xb3,0x76,0xe4,0x22,0x7e,0xb3,0x77,0xf, 0x60,0x5, 0x20, +0x14,0x5, 0x80,0x0, 0x2, 0x76,0xad,0x22,0x12,0x75,0xf7,0xe5,0x1e,0x70,0x5, 0x12, +0x45,0x94,0x80,0x3, 0x12,0x46,0xd0,0x2, 0x77,0x2a,0x6c,0x77,0x7e,0x30,0x3b,0x7e, +0xa0,0x3c,0x7e,0xb3,0x76,0xe4,0xb4,0x1, 0xf, 0xe5,0x1e,0x60,0xb, 0x7e,0x23,0x78, +0xed,0xbc,0x27,0x78,0x3, 0x12,0xdd,0xe3,0x7e,0xb3,0x76,0xe4,0xb4,0x1, 0x31,0xe5, +0x1e,0x60,0x2d,0x7e,0xb3,0x78,0xed,0xbc,0xb3,0x78,0xb, 0x7e,0xb3,0x77,0x2e,0x60, +0x2, 0xd2,0x2c,0x12,0x76,0xba,0x7e,0xb3,0x78,0xed,0x7a,0xb3,0x78,0xea,0x4, 0x7a, +0xb3,0x78,0xed,0x7e,0x73,0x78,0xed,0xbc,0x7a,0x28,0x5, 0xe4,0x7a,0xb3,0x78,0xed, +0x22,0xc2,0x88,0xd2,0xa8,0x22,0xa9,0xd5,0xcd,0xd2,0x99,0x22,0xa9,0xd6,0xcd,0xd2, +0x98,0x22,0xa9,0xd0,0x99,0xa9,0xc6,0xdf,0x22,0x7e,0x63,0x78,0x97,0xa, 0x6, 0x22, +0x7e,0x34,0xd, 0xac,0x2, 0x2d,0x41,0x7e,0x34,0x0, 0x3e,0x74,0xff,0x2, 0x24,0x38, +0x7e,0x37,0x6f,0x6c,0x2e,0x37,0x6f,0x6a,0x22,0xa9,0xc3,0xcb,0xc2,0xcd,0xc2,0xcc, +0xa9,0xd6,0xea,0x22,0x75,0x9a,0x2f,0xa9,0xd1,0x99,0xd2,0x9c,0xa9,0xd6,0xdf,0x22, +0xa9,0xc5,0xcb,0xa9,0xd1,0xcb,0xa9,0xd2,0xca,0xa9,0xd2,0xcb,0x22,0xa9,0xd0,0x9e, +0xa9,0xd4,0x9e,0x75,0x9d,0x0, 0x75,0x9c,0x20,0x22,0xa9,0xc5,0xca,0xbe,0xb0,0x8, +0x50,0x2, 0xf5,0xcc,0x75,0xe6,0x0, 0x22,0xca,0xb8,0xca,0x39,0x12,0x77,0xdd,0x12, +0x71,0xe0,0x7e,0x37,0x78,0x86,0xb, 0x34,0x7a,0x37,0x78,0x86,0x7e,0x37,0x78,0x98, +0xb, 0x34,0x7a,0x37,0x78,0x98,0x7e,0xb3,0x76,0xe6,0xb4,0x1, 0x40,0x7e,0xb3,0x78, +0x9a,0x4, 0x7a,0xb3,0x78,0x9a,0x7e,0x73,0x78,0x9a,0xbe,0x70,0xa, 0x28,0x2e,0xe4, +0x7a,0xb3,0x78,0x9a,0x7e,0x73,0x78,0x91,0xbe,0x73,0x78,0xbc,0x78,0x8, 0x7e,0x37, +0x78,0x88,0xb, 0x34,0x80,0xa, 0x7e,0x73,0x78,0xbc,0x7a,0x73,0x78,0x91,0x6d,0x33, +0x7a,0x37,0x78,0x88,0xbe,0x34,0x0, 0xfa,0x28,0x3, 0x75,0xe9,0xff,0x7e,0xb3,0x78, +0x8a,0x60,0x5, 0x14,0x7a,0xb3,0x78,0x8a,0x7e,0xb3,0x78,0x8a,0x70,0x2, 0xd2,0x15, +0x7e,0x37,0x78,0xeb,0xb, 0x34,0x7a,0x37,0x78,0xeb,0x7e,0x37,0x78,0x94,0xbe,0x34, +0x0, 0x0, 0x28,0x6, 0x1b,0x34,0x7a,0x37,0x78,0x94,0xda,0x39,0xda,0xb8,0x32,0x7e, +0xa3,0x27,0x72,0x7e,0x70,0x4, 0xac,0x7a,0xb, 0x34,0xbe,0x37,0x77,0x8d,0x40,0x39, +0x7e,0x37,0x77,0x8d,0xb, 0x34,0x7a,0x37,0x77,0x8d,0xbe,0x34,0x0, 0x1, 0x78,0x5, +0x7e,0xb3,0x77,0x12,0x22,0xbe,0x34,0x0, 0x2, 0x78,0x3, 0x7c,0xba,0x22,0xbe,0x34, +0x0, 0x2, 0x50,0x9, 0x7d,0x23,0x1b,0x25,0x9, 0xb2,0x78,0xde,0x22,0x9e,0x34,0x0, +0x3, 0x2e,0x37,0x25,0xb3,0x7e,0x39,0xb0,0x22,0x74,0xff,0x22,0xca,0x2b,0xca,0x1b, +0xca,0xb, 0xc0,0x83,0xc0,0x82,0x12,0x6b,0x82,0xd0,0x82,0xd0,0x83,0xda,0xb, 0xda, +0x1b,0xda,0x2b,0x32,0x12,0x78,0xfb,0x75,0x13,0x0, 0x32,0xa9,0xc0,0x93,0x22,0xbe, +0xb0,0xeb,0x68,0x3, 0xb4,0xec,0x33,0x7e,0x27,0x77,0x8f,0x4d,0x22,0x78,0xe, 0xa5, +0xbf,0xaa,0xa, 0x7e,0x24,0x0, 0x1, 0x7a,0x27,0x77,0x8f,0x15,0x1a,0x7e,0x27,0x77, +0x8f,0xbe,0x24,0x0, 0x1, 0x78,0x10,0xa5,0xbf,0x9, 0x6, 0x7e,0x34,0x0, 0x2, 0x80, +0x2, 0x6d,0x33,0x7a,0x37,0x77,0x8f,0x75,0x1a,0xea,0x22,0x7c,0x6b,0x2e,0x60,0xdd, +0x68,0x29,0x2e,0x60,0xfd,0x68,0x24,0x1b,0x61,0x68,0x20,0x2e,0x60,0xfa,0x68,0x1b, +0x1b,0x60,0x68,0x17,0x80,0x0, 0xa, 0x2b,0x19,0x72,0x76,0xbf,0xd2,0x27,0x7a,0xb3, +0x76,0xbd,0xb4,0x25,0x6, 0xd2,0x28,0x7a,0x73,0x76,0xbc,0x22,0x7e,0x18,0x6e,0xd7, +0x6c,0x33,0x80,0x7e,0x7e,0x10,0x9, 0xac,0x13,0x9, 0x20,0x6e,0x27,0x90,0x21,0x51, +0xe4,0x93,0xbc,0xb2,0x28,0x6a,0x7c,0xa2,0x5e,0xa0,0xf, 0x74,0x9, 0xa4,0x2d,0x53, +0x7d,0x42,0x7e,0x2b,0xa0,0x49,0x40,0x6e,0x25,0xbe,0x44,0x0, 0x40,0x38,0x4c,0x49, +0x40,0x6e,0x23,0xbe,0x44,0x0, 0x0, 0x40,0x42,0x7e,0xf4,0x21,0xde,0x12,0x7e,0xd0, +0xbd,0x40,0x38,0x37,0x4c,0xaa,0x78,0x38,0x7e,0xb3,0x28,0xdf,0x70,0x32,0x7e,0xb3, +0x6f,0x31,0xb4,0x1, 0x2b,0x74,0x1, 0x7a,0xb3,0x28,0xdf,0x7e,0x90,0x3, 0x7e,0x10, +0x9, 0xac,0x12,0x7f,0x71,0x2d,0xf0,0x7a,0x7b,0x90,0x74,0x3, 0x7f,0x71,0x2d,0xf0, +0x39,0xb7,0x0, 0x1, 0xe4,0x7a,0xb3,0x25,0xae,0x80,0x5, 0xe4,0x7a,0xb3,0x28,0xdf, +0xb, 0x30,0x7e,0xb3,0x6f,0x3e,0xbc,0xb3,0x28,0x2, 0x21,0x74,0x7e,0xb3,0x6f,0x31, +0x70,0xa, 0x12,0x7a,0xd, 0x28,0x5, 0xe4,0x7a,0xb3,0x28,0xdf,0x22,0x7e,0x73,0x6f, +0x32,0xbe,0x70,0x0, 0x22,0xca,0xf8,0x7e,0xb3,0x6f,0x31,0x70,0x17,0xe4,0x7a,0xb3, +0x6f,0x3a,0x12,0x7a,0xd, 0x28,0x1f,0x74,0x1, 0x7a,0xb3,0x6f,0x36,0xe4,0x7a,0xb3, +0x6f,0x39,0x80,0x12,0x74,0x1, 0x7a,0xb3,0x6f,0x3a,0x7e,0xb3,0x6f,0x32,0x70,0x6, +0x74,0x1, 0x7a,0xb3,0x6f,0x35,0x12,0x90,0xc9,0xca,0x59,0x7e,0x18,0x6d,0xc9,0x7e, +0x8, 0x6e,0x23,0x12,0x24,0x13,0x1b,0xfd,0x90,0x1c,0x2c,0xe4,0x93,0xbe,0xb0,0x0, +0x38,0x2, 0x61,0x1e,0x6c,0xff,0x80,0x24,0x74,0x9, 0xac,0xbf,0x49,0x35,0x6d,0xc9, +0x12,0xb3,0xbd,0x74,0x9, 0xac,0xbf,0x59,0x35,0x6e,0x23,0x49,0x35,0x6d,0xcb,0x12, +0x7b,0x21,0x74,0x9, 0xac,0xbf,0x59,0x35,0x6e,0x25,0xb, 0xf0,0x12,0xbf,0xdc,0x38, +0xd7,0x7e,0xa3,0x6f,0x31,0xbe,0xa0,0x1, 0x78,0x9, 0x7e,0xb3,0x6f,0x32,0xb4,0x1, +0x2, 0x80,0xb, 0xbe,0xa0,0x1, 0x78,0x16,0x7e,0xb3,0x6f,0x32,0x70,0x10,0x7e,0x37, +0x6e,0x23,0x7a,0x37,0x78,0xca,0x7e,0x37,0x6e,0x25,0x7a,0x37,0x78,0xcc,0xbe,0xa0, +0x1, 0x78,0x18,0x7e,0xb3,0x6f,0x32,0x70,0x12,0x7e,0x37,0x6e,0x23,0x7a,0x37,0x78, +0xc5,0x7e,0x37,0x6e,0x25,0x7a,0x37,0x78,0xc7,0x80,0x43,0xbe,0xa0,0x1, 0x78,0x2b, +0x7e,0xb3,0x6f,0x32,0xb4,0x1, 0x24,0x7e,0x37,0x6e,0x25,0x9e,0x37,0x78,0xc7,0x12, +0x24,0x5a,0x7d,0x13,0x7e,0x37,0x6e,0x23,0x9e,0x37,0x78,0xc5,0x12,0x24,0x5a,0x2d, +0x31,0xbe,0x34,0x0, 0x96,0x8, 0x17,0x74,0x1, 0x80,0xf, 0x4c,0xaa,0x78,0xf, 0x6d, +0x33,0x7a,0x37,0x78,0xc5,0x7a,0x37,0x78,0xc7,0xe4,0x7a,0xb3,0x78,0xc9,0xda,0xf8, +0x22,0x7d,0x13,0x9f,0x11,0x7e,0xf4,0x21,0xdc,0x12,0x7e,0xd0,0x12,0xe6,0xd3,0xb, +0x7a,0xf0,0x7e,0xd4,0x21,0xee,0x7e,0xc4,0x0, 0xff,0xb, 0x6a,0xe0,0x90,0x1c,0x2c, +0xe4,0x93,0x70,0x3, 0x7d,0x31,0x22,0x90,0x21,0xd9,0xe4,0x93,0xb4,0x1, 0x6, 0x7e, +0x83,0x6f,0x66,0x80,0x4, 0x7e,0x83,0x6f,0x67,0x12,0xb4,0xda,0xbe,0x14,0x0, 0x3f, +0x38,0x21,0x7e,0x24,0x0, 0x3f,0x9d,0x21,0x7e,0x14,0x21,0xf2,0x12,0x7c,0x34,0xad, +0x32,0x6d,0x22,0x12,0x7c,0x18,0x12,0x7c,0x1f,0x48,0x2, 0x7f,0x10,0x9f,0x1, 0x7f, +0x10,0x81,0xd, 0x7d,0x54,0x9e,0x54,0x0, 0x3f,0xbd,0x51,0x38,0x35,0x7d,0x54,0x9e, +0x54,0x0, 0x1f,0xbd,0x51,0x40,0x76,0x7d,0x34,0x9e,0x34,0x0, 0x40,0x7d,0x21,0x9d, +0x23,0x7e,0x14,0x21,0xf4,0x12,0x7c,0x34,0xad,0x32,0x6d,0x22,0x12,0x7c,0x18,0x90, +0x21,0xf1,0x12,0x7c,0x22,0x48,0x4, 0x7f,0x10,0x1b,0x1c,0x12,0x7c,0x2b,0x2f,0x10, +0x80,0x4b,0x7d,0x50,0x1b,0x54,0xbd,0x51,0x40,0x19,0x7d,0x30,0x9d,0x31,0x6d,0x22, +0x7e,0x14,0x21,0xf6,0x12,0x7c,0xe, 0x7d,0x1e,0x1b,0x14,0x6d,0x0, 0x9f,0x1, 0x7f, +0x10,0x80,0x13,0x7d,0x31,0x9d,0x30,0x6d,0x22,0x7e,0x14,0x21,0xf8,0x12,0x7c,0xe, +0x7d,0x1e,0x6d,0x0, 0x2f,0x10,0x12,0x7c,0x1f,0x58,0x4, 0x7f,0x10,0x80,0xe, 0x90, +0x21,0xf1,0xe4,0x93,0x12,0x7c,0x2b,0xbf,0x10,0x8, 0x2, 0x7f,0x10,0x22,0x7e,0x4, +0x0, 0xff,0xb, 0xa, 0x10,0x12,0x22,0xb4,0x7c,0x76,0x7c,0x65,0x1a,0x24,0x22,0x90, +0x21,0xf0,0xe4,0x93,0xa, 0x1b,0x6d,0x0, 0xbf,0x10,0x22,0xa, 0xb, 0x7d,0x1f,0x9d, +0x10,0x6d,0x0, 0x22,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0x30,0x22,0xca,0xf8,0x7e,0xa3, +0x6f,0x31,0x7e,0xb3,0x6f,0x32,0xc2,0x14,0xbe,0xa0,0x1, 0x38,0x21,0xbe,0xb0,0x1, +0x38,0x1c,0x7e,0x47,0x6d,0x95,0xbe,0x44,0x0, 0x1e,0x28,0x2, 0x80,0x10,0x7e,0xf3, +0x27,0x4a,0x4c,0xff,0x68,0xf, 0x7e,0x47,0x25,0xb1,0x4d,0x44,0x78,0x7, 0xd2,0x14, +0x12,0x77,0x2, 0x80,0x35,0x4c,0xaa,0x78,0x36,0xb4,0x1, 0x33,0x7e,0x37,0x25,0xb1, +0x7a,0x37,0x27,0x4c,0x7e,0xb3,0x27,0x4a,0xb4,0x3, 0x1f,0x7e,0x37,0x25,0xb1,0xbe, +0x34,0x0, 0x0, 0x28,0x15,0x74,0x4, 0x7a,0xb3,0x27,0x4a,0x7e,0x37,0x27,0x62,0x7e, +0x27,0x27,0x64,0x12,0x7d,0x47,0xa1,0x40,0x80,0x0, 0x12,0xe4,0xd8,0xa1,0x40,0x7e, +0xc7,0x6e,0x23,0x7e,0xd7,0x6e,0x25,0x4c,0xff,0x78,0x19,0x70,0x57,0xbe,0xa0,0x1, +0x78,0x52,0x7d,0x3c,0x7d,0x2d,0x12,0xe4,0x73,0x12,0x7d,0x43,0x74,0x1, 0x7a,0xb3, +0x27,0x4a,0x80,0x40,0xbe,0xf0,0x1, 0x78,0x2e,0x7e,0x27,0x27,0x52,0x9e,0x27,0x27, +0x5a,0x7e,0x14,0x22,0x69,0x12,0x7c,0x34,0xbd,0x23,0x38,0x13,0x7e,0x27,0x27,0x60, +0x9e,0x27,0x27,0x58,0x7e,0x14,0x22,0x6b,0x12,0x7c,0x34,0xbd,0x23,0x28,0x15,0x74, +0x3, 0x7a,0xb3,0x27,0x4a,0x80,0x5, 0xbe,0xf0,0x3, 0x78,0x8, 0x7a,0xc7,0x27,0x62, +0x7a,0xd7,0x27,0x64,0x7e,0xb3,0x27,0x4a,0x60,0x26,0x7d,0x3c,0x7d,0x2d,0x7e,0x17, +0x25,0xb5,0x7e,0x7, 0x25,0xb7,0x12,0x7e,0xd8,0xa, 0x2b,0x7e,0x73,0x27,0x49,0xa, +0x37,0xbd,0x32,0x58,0xb, 0x12,0x7d,0x43,0x7a,0xc7,0x25,0xb5,0x7a,0xd7,0x25,0xb7, +0xda,0xf8,0x22,0x7d,0x3c,0x7d,0x2d,0x7d,0x42,0x7d,0x13,0x7d,0x24,0x12,0xe4,0x4e, +0x7d,0x31,0x12,0xe3,0xc5,0x2, 0x7d,0x58,0x7e,0x3, 0x27,0x72,0xbe,0x0, 0x64,0x50, +0x2, 0xa1,0xed,0x80,0x7d,0x6c,0x99,0x7e,0xb3,0x27,0x49,0xbe,0xb0,0x20,0x50,0x5, +0x4, 0x7a,0xb3,0x27,0x49,0x7e,0x1f,0x25,0xb9,0x7a,0x1f,0x63,0x6d,0x7e,0x80,0x1, +0x80,0x45,0x74,0x4, 0xac,0xb8,0x49,0x35,0x25,0xb9,0x49,0x25,0x25,0xbb,0x7e,0x17, +0x63,0x6d,0x7e,0x7, 0x63,0x6f,0x12,0x7e,0xd8,0x7c,0x1b,0x7e,0x3, 0x27,0x49,0xbc, +0x1, 0x38,0x22,0xb, 0x90,0x7e,0x70,0x4, 0xac,0x78,0x2e,0x34,0x25,0xb9,0x7e,0x14, +0x63,0x6d,0x74,0x4, 0x12,0xbf,0xe4,0x7e,0x30,0x4, 0xac,0x39,0x2e,0x14,0x25,0xb9, +0x74,0x4, 0x12,0x23,0x44,0xb, 0x80,0x7e,0x3, 0x27,0x72,0xbc,0x8, 0x38,0xb3,0xa, +0x59,0xb, 0x54,0x7c,0xb, 0x7a,0x3, 0x27,0x72,0x7e,0x3, 0x27,0x49,0xbe,0x0, 0x20, +0x50,0xb, 0x7e,0x3, 0x27,0x72,0xbe,0x0, 0xec,0x40,0x2, 0xa1,0x65,0x22,0x7d,0x13, +0x7e,0x54,0x22,0x37,0x12,0x7e,0x1d,0x50,0x21,0x7e,0x54,0x22,0x39,0x12,0x7e,0x1d, +0x28,0x18,0x7e,0x14,0x22,0x3b,0x12,0x7c,0x34,0xbd,0x32,0x50,0xd, 0x7e,0x14,0x22, +0x3d,0x12,0x7c,0x34,0xbd,0x32,0x28,0x2, 0xe4,0x22,0x74,0x1, 0x22,0x7e,0x44,0x0, +0xff,0xb, 0x2a,0x30,0xbd,0x31,0x22,0x7e,0x47,0x6d,0x9d,0x7e,0x7, 0x6f,0x44,0x7e, +0x34,0x0, 0x6, 0xad,0x30,0x7e,0x14,0x0, 0x4, 0x12,0x7e,0xc8,0x8, 0x5, 0x7e,0xa0, +0x4, 0x80,0x1d,0x7d,0x30,0x3e,0x34,0x12,0x7e,0xc6,0x8, 0x5, 0x7e,0xa0,0x3, 0x80, +0xf, 0x7d,0x30,0x12,0x7e,0xc6,0x8, 0x5, 0x7e,0xa0,0x2, 0x80,0x3, 0x7e,0xa0,0x1, +0x7e,0xb3,0x6d,0xbf,0x60,0x3, 0x7e,0xa0,0x4, 0x12,0xcf,0xd1,0x60,0x3, 0x7e,0xa0, +0x1, 0xa, 0x2a,0x7e,0x14,0x22,0x9, 0x12,0x7c,0x34,0xad,0x32,0x12,0xe6,0x25,0x7e, +0xb3,0x6d,0x93,0xbe,0xb0,0x0, 0x28,0x28,0x7e,0xb3,0x6d,0xb4,0x70,0x22,0x7e,0x37, +0x6d,0xb0,0xbe,0x34,0x0, 0x2, 0x48,0x9, 0x12,0xae,0x4f,0x7a,0x37,0x6d,0xb0,0x80, +0xf, 0x7e,0x63,0x6d,0xb2,0x7e,0x70,0x2, 0xac,0x67,0x7c,0xb7,0x7a,0xb3,0x6d,0xb2, +0x7e,0xb3,0x76,0xe4,0xb4,0x1, 0xe, 0x7e,0x27,0x6d,0xb0,0x7e,0x34,0x0, 0x5, 0xad, +0x32,0x7a,0x37,0x6d,0xb0,0x22,0x3e,0x34,0x7d,0x21,0x12,0x22,0x71,0xbd,0x34,0x22, +0x7e,0xe4,0x0, 0xff,0xb, 0x7a,0x0, 0x22,0x7d,0x51,0x7d,0x12,0x7d,0x23,0x9d,0x25, +0xbe,0x24,0x0, 0x0, 0x8, 0x4, 0x7d,0x52,0x80,0x4, 0x6d,0x55,0x9d,0x52,0x7c,0xab, +0x7d,0x21,0x9d,0x20,0xbe,0x24,0x0, 0x0, 0x8, 0x4, 0x7d,0x32,0x80,0x4, 0x6d,0x33, +0x9d,0x32,0x7c,0xb7,0xbc,0xba,0x50,0x3, 0x7c,0xba,0x22,0x22,0x7e,0xb3,0x77,0xf, +0x70,0x6, 0x12,0x7f,0x45,0x2, 0xe3,0x43,0x12,0x7c,0x3c,0x12,0xe4,0x43,0x50,0xa, +0x12,0x7f,0x4b,0x7c,0x3b,0x12,0x7f,0x45,0x80,0x5, 0x12,0xb4,0xee,0x7c,0x3b,0x4c, +0x33,0x68,0x11,0x7c,0xb3,0x12,0xe3,0x49,0x60,0xa, 0x7a,0x33,0x77,0x12,0x74,0x1, +0x7a,0xb3,0x6f,0x37,0x22,0xe4,0x7a,0xb3,0x27,0x4a,0x22,0x12,0xe4,0x3a,0x7a,0x37, +0x27,0x66,0x12,0xe4,0x31,0x7a,0x37,0x27,0x68,0x7e,0x73,0x27,0x72,0xa, 0x37,0x7a, +0x35,0x27,0x7e,0x8, 0x25,0xb9,0x7e,0x18,0x27,0x4a,0x2, 0x7f,0x6d,0xca,0xf8,0x7e, +0x45,0x27,0x7c,0xb9,0x7a,0xb3,0x77,0xe1,0x74,0xff,0x7a,0xb3,0x77,0xe0,0x6d,0x55, +0x80,0x1f,0x7d,0xf5,0x3e,0xf4,0x3e,0xf4,0x7f,0x60,0x2d,0xdf,0xb, 0x6a,0xf0,0x7d, +0xe5,0x3e,0xe4,0x59,0xfe,0x63,0x6d,0x69,0xf6,0x0, 0x2, 0x59,0xfe,0x64,0x35,0xb, +0x54,0xbd,0x45,0x38,0xdd,0x7e,0x33,0x77,0xe1,0xbe,0x30,0x4, 0x38,0x3, 0x2, 0x80, +0x36,0x69,0xf1,0x0, 0x1c,0x69,0x11,0x0, 0x1e,0xbd,0x1f,0x18,0x19,0x4d,0x11,0x78, +0x4, 0x7e,0x14,0x0, 0x1, 0x7d,0x3f,0x7d,0x21,0x12,0x22,0x71,0x7c,0xf7,0x74,0x40, +0x7a,0xb3,0x77,0xe4,0x80,0x43,0x4d,0xff,0x78,0x4, 0x7e,0xf4,0x0, 0x1, 0x7d,0x31, +0x7d,0x2f,0x12,0x22,0x71,0x7c,0xf7,0x74,0x80,0x7a,0xb3,0x77,0xe4,0x7d,0xf, 0x2d, +0xf, 0xbd,0x1, 0x8, 0x24,0x1a,0x2, 0x1a,0x0, 0x7e,0x73,0x77,0xe4,0xa, 0x37,0x6d, +0x22,0x12,0x22,0xa3,0x7d,0x5f,0x1a,0x4a,0x1a,0x48,0x7d,0x1f,0x1a,0x2, 0x1a,0x0, +0x2f,0x2, 0x12,0x22,0xbf,0x7a,0x73,0x77,0xe4,0xbe,0xf0,0x5, 0x58,0x14,0x12,0x80, +0x55,0x12,0x81,0xd6,0x12,0x80,0x55,0x12,0x80,0x5e,0x12,0x80,0x55,0x12,0x82,0x85, +0x80,0xa, 0x74,0x7d,0x80,0x2, 0x74,0x7f,0x7a,0xb3,0x77,0xe0,0xe4,0x7a,0xb3,0x77, +0xe1,0x7e,0x73,0x78,0xe4,0xbe,0x73,0x77,0xe0,0x48,0x6, 0x7e,0xb3,0x77,0xe2,0x80, +0x1, 0xe4,0xda,0xf8,0x22,0x7e,0x8, 0x63,0x6d,0x7e,0x18,0x64,0x35,0x22,0xca,0x3b, +0x7f,0x71,0x7e,0x60,0x1, 0xb, 0xa, 0x20,0xb, 0x7a,0x50,0x7c,0x4b,0x7a,0x53,0x64, +0xfd,0x7a,0x43,0x65,0x61,0x7e,0x70,0x1, 0x7e,0xa0,0x1, 0x21,0x7f,0x7e,0x90,0x2, +0xac,0x9a,0x7f,0x60,0x2d,0xd4,0xb, 0x6a,0xd0,0x7d,0x7d,0x7c,0xbf,0xf5,0x29,0x7f, +0x67,0x2d,0xd4,0xb, 0x6a,0x40,0xa, 0xd5,0xa, 0xbb,0x7d,0xab,0x9d,0xad,0x7d,0x7a, +0x7c,0x8f,0xbe,0x80,0x0, 0x58,0x5, 0x6e,0x80,0xff,0xb, 0x80,0xa, 0xa4,0xa, 0x79, +0x9d,0x7a,0xbe,0xf0,0x0, 0x58,0x5, 0x6e,0xf0,0xff,0xb, 0xf0,0xbe,0x80,0x2, 0x58, +0x7, 0xbe,0xf0,0x2, 0x58,0x2, 0x21,0x7d,0xbe,0x60,0x0, 0x18,0x2, 0x21,0x65,0xbe, +0x70,0xec,0x28,0x2, 0x21,0x89,0xbe,0x80,0x8, 0x58,0x5, 0xbe,0xf0,0x8, 0x48,0x61, +0xa, 0xa7,0xb, 0xa4,0x7d,0x6a,0x7c,0x7d,0xa, 0xa5,0x2d,0xab,0x12,0x81,0xcd,0x19, +0xba,0x64,0xfd,0xa, 0xd9,0xa, 0xa4,0x2d,0xad,0x12,0x81,0xcd,0x19,0xba,0x65,0x61, +0x9, 0xba,0x64,0xfd,0xa, 0xdb,0xa, 0xc5,0x2d,0xcd,0xe, 0xc4,0x7d,0x6c,0x7c,0xbd, +0xa, 0xc7,0x19,0xbc,0x64,0xfc,0x9, 0xbc,0x65,0x61,0xa, 0xcb,0xa, 0xa4,0x2d,0xac, +0x12,0x81,0xcd,0x19,0xba,0x65,0x60,0x2d,0xdb,0x12,0x81,0xc4,0x19,0xbd,0x64,0xfe, +0xa, 0xd9,0x12,0x81,0xc2,0x19,0xbd,0x65,0x62,0xb, 0xd5,0x7d,0x6d,0x7c,0x7d,0x80, +0x24,0xbe,0x80,0x4, 0x58,0x5, 0xbe,0xf0,0x4, 0x48,0x1a,0xe5,0x29,0xa, 0xcb,0xa, +0xd5,0x12,0x81,0xc2,0x19,0xbd,0x64,0xfd,0xa, 0xc9,0xa, 0xd4,0x12,0x81,0xc2,0x19, +0xbd,0x65,0x61,0xb, 0x70,0xbe,0x70,0x64,0x50,0x1f,0x7e,0x51,0x29,0x7c,0x49,0xe5, +0x29,0xa, 0xd7,0x19,0xbd,0x64,0xfd,0x19,0x9d,0x65,0x61,0xb, 0x70,0xb, 0xa0,0x7e, +0xb3,0x77,0xe1,0xbc,0xba,0x28,0x2, 0x1, 0x7d,0x7a,0x73,0x77,0xe1,0x7e,0xa0,0x1, +0x80,0x25,0xa, 0x3a,0x9, 0xb3,0x64,0xfd,0xa, 0x2b,0x7e,0x70,0x2, 0xac,0x7a,0x7f, +0x60,0x2d,0xd3,0x1b,0x6a,0x20,0xa, 0x2a,0x9, 0xb2,0x65,0x61,0xa, 0x4b,0x2d,0x3f, +0x7d,0x2e,0x1b,0x1a,0x40,0xb, 0xa0,0x7e,0xb3,0x77,0xe1,0xbc,0xba,0x38,0xd3,0xda, +0x3b,0x22,0x2d,0xdc,0xe, 0xd4,0x7d,0x6d,0x7c,0xbd,0xa, 0xd7,0x22,0xe, 0xa4,0x7d, +0x6a,0x7c,0xbd,0xa, 0xa7,0x22,0xca,0xf8,0x7f,0x51,0x7f,0x40,0x7e,0x37,0x27,0x5a, +0x7a,0x37,0x65,0x1, 0x7e,0x37,0x27,0x58,0x7a,0x37,0x65,0x3, 0x7e,0x37,0x27,0x66, +0x7a,0x37,0x64,0xfd,0x7e,0x37,0x27,0x68,0x7a,0x37,0x64,0xff,0x6c,0xff,0x80,0x1e, +0x7e,0x34,0x64,0xfd,0x7e,0x14,0x0, 0x29,0x74,0x9, 0x12,0x23,0x44,0x74,0x2, 0xac, +0xbf,0x7f,0x4, 0x2d,0x15,0x7f,0x15,0x2d,0x35,0x12,0x82,0x29,0xb, 0xf0,0x7e,0x73, +0x77,0xe1,0xbc,0x7f,0x38,0xda,0xda,0xf8,0x22,0x7f,0x71,0x7f,0x60,0x7e,0x35,0x29, +0xbe,0x34,0x0, 0x0, 0x38,0x7, 0x7e,0x34,0x0, 0x1, 0x7a,0x35,0x29,0x7e,0x35,0x2b, +0xbe,0x34,0x0, 0x0, 0x38,0x7, 0x7e,0x34,0x0, 0x1, 0x7a,0x35,0x2b,0xb, 0x6a,0x30, +0x9e,0x35,0x2d,0x6d,0x22,0x7e,0x33,0x77,0xe3,0x12,0x82,0x7e,0x7e,0x15,0x29,0x12, +0x22,0xbd,0x1b,0x6a,0x30,0xb, 0x7a,0x30,0x9e,0x35,0x2f,0x6d,0x22,0x7e,0x33,0x77, +0xe4,0x12,0x82,0x7e,0x7e,0x15,0x2b,0x12,0x22,0xbd,0x1b,0x7a,0x30,0x22,0xa, 0x13, +0x6d,0x0, 0x2, 0x22,0xa3,0xca,0x3b,0x7f,0x61,0x7f,0x50,0x7e,0x73,0x77,0xe1,0xbe, +0x70,0x20,0x40,0x52,0x7e,0xf0,0x2, 0x80,0x3c,0xa, 0x3f,0x6d,0x22,0x74,0x5, 0x2f, +0x11,0x14,0x78,0xfb,0x7e,0x33,0x77,0xe1,0xa, 0x13,0x6d,0x0, 0x12,0x22,0xbf,0x7c, +0xe7,0xbe,0xe0,0x2, 0x50,0x3, 0x7e,0xe0,0x2, 0xa, 0x6f,0x1b,0x64,0xa, 0x3e,0x1b, +0x34,0x7c,0xc7,0x7f,0x5, 0x7c,0xbd,0x12,0x82,0xef,0x7f,0x6, 0x7c,0xbd,0x7c,0x7c, +0x12,0x82,0xef,0xb, 0xf0,0x7e,0x73,0x77,0xe1,0xbc,0x7f,0x50,0xbc,0x7f,0x5, 0x7f, +0x16,0x12,0x83,0x41,0x80,0x6, 0x74,0x7e,0x7a,0xb3,0x77,0xe0,0xda,0x3b,0x22,0x7c, +0x97,0x7c,0xab,0x7f,0x10,0x7e,0x30,0x2, 0xac,0x3a,0x2d,0x13,0x7d,0x2, 0xb, 0xa, +0x10,0x7e,0x10,0x2, 0xac,0x19,0x7f,0x71,0x2d,0xf0,0xb, 0x7a,0x0, 0x7c,0x21,0xa5, +0xba,0x0, 0x14,0xa, 0x3, 0x1b,0x7a,0x0, 0xbc,0x9a,0x68,0x24,0x6d,0x44,0x74,0x2, +0xa4,0x2d,0x35,0x1b,0x1a,0x40,0x22,0xbc,0x9a,0x68,0x15,0xa, 0x2, 0xa, 0x13,0x2d, +0x10,0xe, 0x14,0x1b,0x7a,0x10,0x6d,0x11,0x74,0x2, 0xa4,0x2d,0x35,0x1b,0x1a,0x10, +0x22,0xca,0x79,0x6c,0xaa,0x7e,0x90,0x2, 0xac,0x9a,0x7f,0x70,0x2d,0xf4,0xb, 0x7a, +0xf0,0x7d,0x7f,0x7c,0xbf,0xa, 0xfa,0x19,0xbf,0x77,0xe5,0x7f,0x71,0x2d,0xf4,0xb, +0x7a,0x40,0x7c,0xb9,0xa, 0x4a,0x19,0xb4,0x78,0x5, 0xb, 0xa0,0xbe,0xa0,0x20,0x40, +0xd4,0x7e,0x8, 0x77,0xe5,0x7e,0x18,0x78,0x5, 0x74,0x20,0x12,0x83,0x81,0xda,0x79, +0x22,0xca,0x3b,0xf5,0x2d,0x7f,0x31,0x7a,0xd, 0x29,0x75,0x35,0x0, 0x75,0x36,0x0, +0x75,0x37,0x0, 0x7e,0x34,0x3, 0xe8,0x7a,0x35,0x40,0x75,0x33,0x3c,0x75,0x34,0x46, +0x75,0x2e,0x0, 0xa1,0x9f,0x12,0x85,0xd8,0x28,0x1e,0x7e,0x34,0x0, 0x44,0xca,0x39, +0x7e,0x71,0x2e,0x74,0x44,0xac,0x7b,0x2e,0x34,0xe, 0x6, 0x7e,0x24,0x0, 0xff,0x7e, +0x8, 0x65,0x7, 0x12,0x24,0x13,0x1b,0xfd,0x6d,0x33,0x7a,0x37,0x64,0xfd,0x7a,0x37, +0x64,0xff,0x7a,0x37,0x65,0x1, 0x7a,0x37,0x65,0x3, 0x7a,0x37,0x65,0x5, 0x7e,0x18, +0x65,0x7, 0x7a,0x1d,0x38,0x7e,0x18,0x65,0x27,0x7a,0x1d,0x3c,0x75,0x2f,0x0, 0x81, +0x85,0xe5,0x2f,0xa, 0x5b,0x7e,0x1d,0x29,0x2d,0x35,0x7e,0x1b,0x60,0xa, 0x26,0x7e, +0xd, 0x38,0x2d,0x15,0x7e,0xb, 0x70,0xa, 0xd7,0x7d,0xcd,0x9d,0xc2,0xbe,0xc4,0x0, +0x0, 0x8, 0x4, 0x9d,0xd2,0x80,0xa, 0xa, 0x26,0xa, 0x37,0x9d,0x32,0x6d,0xdd,0x9d, +0xd3,0x7e,0xc7,0x65,0x1, 0xbd,0xcd,0x58,0x4, 0x7a,0xd7,0x65,0x1, 0xe5,0x2f,0xa, +0xcb,0x7f,0x13,0x2d,0x3c,0x7e,0x1b,0x70,0xa, 0x27,0xe5,0x2f,0xa, 0x3b,0x7e,0xd, +0x3c,0x2d,0x13,0x7e,0xb, 0x70,0xa, 0xc7,0x12,0x85,0xe4,0x8, 0x4, 0x9d,0xc2,0x80, +0x4, 0x6d,0xcc,0x9d,0xc3,0x7e,0x37,0x65,0x3, 0xbd,0x3c,0x58,0x4, 0x7a,0xc7,0x65, +0x3, 0x7e,0x37,0x64,0xfd,0x2d,0x3d,0x7a,0x37,0x64,0xfd,0x7e,0x37,0x64,0xff,0x2d, +0x3c,0x7a,0x37,0x64,0xff,0x2d,0xcd,0x7e,0x37,0x65,0x5, 0xbd,0x3c,0x58,0x4, 0x7a, +0xc7,0x65,0x5, 0x5, 0x2f,0xe5,0x2d,0xbe,0xb1,0x2f,0x28,0x2, 0x61,0xf1,0xe5,0x2d, +0xb4,0xa, 0x2c,0x7e,0x37,0x65,0x1, 0xbe,0x34,0x0, 0x40,0x48,0xc, 0x7e,0x27,0x65, +0x3, 0xbe,0x24,0x0, 0x40,0x48,0x2, 0xa1,0x9d,0xbe,0x34,0x0, 0x60,0x8, 0x2, 0xa1, +0x9d,0x7e,0x37,0x65,0x3, 0xbe,0x34,0x0, 0x60,0x8, 0x2, 0xa1,0x9d,0x80,0x2a,0x7e, +0x37,0x65,0x1, 0xbe,0x34,0x0, 0x20,0x8, 0xc, 0x7e,0x27,0x65,0x3, 0xbe,0x24,0x0, +0x20,0x8, 0x2, 0xa1,0x9d,0xbe,0x34,0x0, 0x30,0x8, 0x2, 0xa1,0x9d,0x7e,0x37,0x65, +0x3, 0xbe,0x34,0x0, 0x30,0x8, 0x2, 0xa1,0x9d,0x7e,0xa3,0x77,0xe3,0x74,0xc, 0xa4, +0xbe,0x57,0x64,0xfd,0x58,0x2, 0xa1,0x9d,0x7e,0xa3,0x77,0xe4,0x74,0xc, 0xa4,0xbe, +0x57,0x64,0xff,0x58,0x2, 0xa1,0x9d,0x7e,0xd, 0x38,0x7e,0x1d,0x29,0xe5,0x2d,0x12, +0x85,0xeb,0xf5,0x30,0x7e,0xd, 0x3c,0x7f,0x13,0xe5,0x2d,0x12,0x85,0xeb,0xf5,0x31, +0xe5,0x33,0xbe,0xb1,0x30,0x38,0x76,0xe5,0x33,0xbe,0xb1,0x31,0x38,0x6f,0xe5,0x31, +0x7e,0x31,0x31,0xac,0x3b,0x1a,0x2, 0x1a,0x0, 0xe5,0x30,0x7e,0x71,0x30,0xac,0x7b, +0x1a,0x26,0x1a,0x24,0x2f,0x10,0xe5,0x31,0xa, 0xfb,0x6d,0xee,0xe5,0x30,0xa, 0x1b, +0x6d,0x0, 0x2f,0x7, 0x12,0x22,0xbf,0x7c,0xb7,0xf5,0x32,0xe5,0x34,0xbe,0xb1,0x32, +0x38,0x3b,0x7e,0x37,0x65,0x3, 0x2e,0x37,0x65,0x1, 0x2e,0x37,0x65,0x5, 0x7a,0x35, +0x42,0xe5,0x32,0xa, 0x2b,0x7e,0x34,0x0, 0x64,0x9d,0x32,0x3e,0x34,0x2e,0x35,0x42, +0x7a,0x35,0x42,0x7e,0x35,0x40,0xbe,0x35,0x42,0x8, 0x12,0x7e,0x35,0x42,0x7a,0x35, +0x40,0x85,0x32,0x36,0x7e,0xb3,0x65,0x49,0xf5,0x37,0x85,0x2e,0x35,0x5, 0x2e,0x12, +0x85,0xd8,0x28,0x2, 0x61,0xa5,0xe5,0x34,0xbe,0xb1,0x36,0x38,0x20,0xe5,0x37,0xbe, +0xb0,0x0, 0x28,0x19,0xe5,0x37,0xbe,0xb0,0xff,0x50,0x12,0xe5,0x35,0xa, 0x3b,0xb, +0x34,0x7a,0x73,0x77,0xe0,0xe5,0x37,0x7a,0xb3,0x77,0xe2,0x80,0x6, 0x74,0x7c,0x7a, +0xb3,0x77,0xe0,0xe5,0x36,0xda,0x3b,0x22,0x7e,0x73,0x78,0xe4,0xbe,0x71,0x2e,0x22, +0xa, 0xb, 0x7d,0x30,0x9d,0x32,0xbe,0x34,0x0, 0x0, 0x22,0xca,0x3b,0x7c,0xfb,0x7f, +0x61,0x7f,0x40,0x9f,0x11,0x7f,0x51,0x7f,0x71,0x7a,0x1f,0x65,0x4b,0x7a,0x1f,0x65, +0x4f,0x7a,0x1f,0x65,0x53,0xbe,0xf0,0xa, 0x78,0x6, 0x7e,0x54,0x1, 0x3c,0x80,0x4, +0x7e,0x54,0x2, 0x35,0x7a,0x55,0x48,0x6c,0xee,0x80,0x66,0xa, 0x5e,0x7f,0x14,0x12, +0x87,0x53,0x7a,0x55,0x46,0xa, 0x5e,0x7f,0x16,0x12,0x87,0x53,0x7a,0x55,0x44,0x7e, +0x35,0x44,0x12,0x87,0x4c,0x2f,0x50,0x7e,0x65,0x46,0x7d,0x16,0x1a,0x2, 0x1a,0x0, +0x2f,0x70,0x12,0x87,0x4c,0x12,0x87,0x42,0x7e,0x1f,0x65,0x4b,0x2f,0x10,0x7a,0x1f, +0x65,0x4b,0x7d,0x16,0x1a,0x2, 0x1a,0x0, 0x7e,0x35,0x46,0x12,0x87,0x42,0x7e,0x1f, +0x65,0x4f,0x2f,0x10,0x7a,0x1f,0x65,0x4f,0x7e,0x15,0x46,0x1a,0x2, 0x1a,0x0, 0x7e, +0x35,0x44,0x12,0x87,0x42,0x7e,0x1f,0x65,0x53,0x2f,0x10,0x7a,0x1f,0x65,0x53,0xb, +0xe0,0xbc,0xfe,0x38,0x96,0xa, 0xdf,0x6d,0xcc,0x7f,0x15,0x7f,0x6, 0x12,0x23,0x10, +0x7f,0x51,0x7f,0x17,0x7f,0x6, 0x12,0x23,0x10,0x7f,0x71,0x7e,0x94,0x0, 0x64,0x7e, +0x1f,0x65,0x4b,0x7d,0x19,0x12,0x22,0xb4,0x7e,0x85,0x48,0x7d,0x18,0x7d,0xd8,0x1a, +0x12,0x1a,0xc2,0x7f,0x6, 0x12,0x23,0x10,0x7a,0x1f,0x65,0x4b,0x7e,0x1f,0x65,0x4f, +0x7d,0x19,0x12,0x22,0xb4,0x7f,0x6, 0x12,0x23,0x10,0x7a,0x1f,0x65,0x4f,0x7e,0x1f, +0x65,0x53,0x7d,0x19,0x12,0x22,0xb4,0x7d,0x18,0x1a,0x2, 0x1a,0x0, 0x12,0x23,0x10, +0x7a,0x1f,0x65,0x53,0x7f,0x15,0x7f,0x7, 0x12,0x22,0xa3,0x7e,0x6f,0x65,0x53,0x9f, +0x61,0x7f,0x15,0x7f,0x5, 0x12,0x22,0xa3,0x7e,0x5f,0x65,0x4b,0x9f,0x51,0x7f,0x17, +0x7f,0x7, 0x12,0x22,0xa3,0x7e,0x7f,0x65,0x4f,0x9f,0x71,0xbe,0x58,0x0, 0x0, 0x68, +0x6, 0xbe,0x78,0x0, 0x0, 0x78,0x6, 0x7e,0x44,0x0, 0x64,0x80,0x18,0x7f,0x16,0x7d, +0x19,0x12,0x22,0xb4,0x7f,0x5, 0x12,0x23,0x10,0x7f,0x6, 0x12,0x22,0xa3,0x7f,0x7, +0x12,0x23,0x10,0x7d,0x43,0xbe,0x44,0x0, 0x0, 0x18,0x2, 0x6d,0x44,0x7c,0xb9,0xda, +0x3b,0x22,0x1a,0x26,0x1a,0x24,0x12,0x22,0xa3,0x7f,0x1, 0x22,0x7d,0x13,0x1a,0x2, +0x1a,0x0, 0x22,0x2d,0x35,0x7e,0x1b,0x70,0xa, 0x57,0x22,0xca,0x79,0x7c,0xfb,0x7f, +0x51,0x7f,0x40,0x74,0x9, 0xac,0xbf,0x9, 0xb5,0x6e,0x28,0xf5,0x3b,0x74,0x9, 0xac, +0xbf,0x9, 0xb5,0x6e,0x29,0xc4,0x54,0xf0,0xf5,0x3c,0x74,0x9, 0xac,0xbf,0x9, 0xe5, +0x6e,0x27,0x12,0xe6,0x6f,0x28,0x58,0x7e,0xb3,0x6f,0x38,0x70,0x28,0x75,0x3d,0xf, +0x7e,0x8, 0x0, 0x3b,0xa, 0x3e,0x2e,0x34,0x28,0x27,0x6d,0x22,0x74,0x1, 0x12,0x97, +0x85,0x75,0x3d,0x20,0x7e,0x8, 0x0, 0x3c,0xa, 0x3e,0x2e,0x34,0x28,0x31,0x74,0x10, +0x12,0x97,0x85,0x80,0xe, 0xa, 0x3e,0x9, 0xb3,0x28,0x27,0xf5,0x3b,0x9, 0xb3,0x28, +0x31,0xf5,0x3c,0x74,0x9, 0xac,0xbe,0x9, 0xb5,0x6e,0xd7,0xb4,0x1, 0x11,0xe4,0xa, +0x3e,0x19,0xb3,0x28,0x27,0x19,0xb3,0x28,0x31,0x75,0x3b,0x0, 0x75,0x3c,0x0, 0x7e, +0xb3,0x6f,0x52,0xb4,0xff,0x16,0x85,0x3a,0x3b,0x75,0x3b,0x0, 0x74,0x9, 0xac,0xbf, +0x9, 0xb5,0x6e,0x27,0xbe,0xb0,0xff,0x68,0x3, 0x75,0x3b,0x1, 0xe5,0x3b,0x7a,0x4b, +0xb0,0xe5,0x3c,0x7a,0x5b,0xb0,0xda,0x79,0x22,0x7e,0x68,0x6e,0xd7,0x7e,0xb3,0x6f, +0x32,0xb4,0x1, 0x1a,0x7e,0xb3,0x6f,0x31,0x70,0x14,0x29,0x76,0x0, 0x8, 0xbe,0x70, +0x2d,0x50,0xb, 0xbe,0x70,0x0, 0x28,0x6, 0x74,0x3, 0x7a,0xb3,0x6f,0x3d,0x7e,0x73, +0x6f,0x3d,0xbe,0x70,0x0, 0x28,0x2d,0x7e,0x34,0x0, 0x9, 0xca,0x39,0x7e,0x18,0x27, +0x73,0x7e,0x8, 0x6e,0x23,0x12,0x24,0x13,0x1b,0xfd,0x7e,0xa3,0x6f,0x3d,0xbe,0xa0, +0x3, 0x78,0x3, 0xe4,0x80,0xb, 0xbe,0xa0,0x1, 0x78,0x4, 0x74,0x1, 0x80,0x2, 0x74, +0x2, 0x7a,0x6b,0xb0,0x22,0xca,0x3b,0x75,0x28,0x0, 0x75,0x29,0x0, 0x75,0x2a,0x0, +0x75,0x2b,0x0, 0x75,0x2d,0x0, 0xc2,0x0, 0xc2,0x1, 0x7e,0x18,0x28,0x3b,0x7a,0x1d, +0x32,0x7e,0x18,0x6e,0xd7,0x7a,0x1d,0x36,0xe4,0x7e,0x34,0x28,0x3c,0x7e,0x24,0x0, +0x0, 0x7a,0x1b,0xb0,0x12,0xd3,0x94,0x12,0x88,0x9, 0x6c,0xee,0x80,0x39,0x74,0x9, +0xac,0xbe,0x9, 0xf5,0x6e,0x27,0x12,0xbf,0xdc,0x28,0x2a,0x12,0xe5,0x4e,0x2d,0x35, +0x7e,0x1b,0xb0,0xb4,0x1, 0x1f,0x12,0xe6,0xa6,0x70,0x1a,0x29,0x1, 0x0, 0x8, 0xbe, +0x0, 0x2d,0x50,0x11,0xbe,0x0, 0x0, 0x28,0xc, 0x7a,0xe1,0x2c,0x74,0x3, 0xa5,0xf7, +0x7a,0xf1,0x12,0x80,0x7, 0xb, 0xe0,0x12,0xe6,0x6f,0x38,0xc2,0x12,0xe5,0xc3,0x38, +0x2, 0x21,0x61,0xb4,0x3, 0x10,0x7e,0x34,0x0, 0x9, 0xca,0x39,0x12,0xe6,0x61,0x7e, +0x31,0x2c,0xac,0x3b,0x80,0x19,0x6c,0xee,0x80,0x24,0x7e,0x30,0x9, 0xac,0x3e,0x9, +0xb1,0x6e,0x27,0xb4,0xff,0x16,0x7e,0x4, 0x0, 0x9, 0xca,0x9, 0x12,0xe6,0x61,0x2e, +0x14,0x6e,0x23,0x6d,0x0, 0x12,0x24,0x13,0x1b,0xfd,0x80,0x7, 0xb, 0xe0,0x12,0xe6, +0x6f,0x38,0xd7,0x7e,0x11,0x12,0x2e,0x10,0x8, 0xa5,0xe7,0x7c,0xab,0xbe,0xa0,0x3, +0x78,0x13,0x6c,0x33,0x7e,0x11,0x12,0x74,0x9, 0xac,0x1b,0x7e,0x1d,0x36,0x2d,0x30, +0x7a,0x1b,0x30,0x80,0x1c,0xbe,0xa0,0x1, 0x78,0x5, 0x7e,0xa0,0x1, 0x80,0x3, 0x7e, +0xa0,0x2, 0x7e,0x31,0x12,0x74,0x9, 0xac,0x3b,0x7e,0x1d,0x36,0x2d,0x31,0x7a,0x1b, +0xa0,0x7e,0xb3,0x6f,0x3a,0x70,0x1a,0x7e,0xb3,0x6f,0x36,0x70,0x14,0x7e,0xb3,0x6f, +0x37,0x70,0xe, 0x12,0xe5,0xc3,0x38,0x9, 0x7e,0xb3,0x6f,0x3d,0x70,0x3, 0x2, 0x90, +0x31,0x12,0xe5,0xc3,0x28,0x3, 0x14,0xa5,0xf7,0x7e,0xb3,0x6f,0x3d,0x60,0x5, 0x14, +0x7a,0xb3,0x6f,0x3d,0x30,0x21,0x6, 0x7e,0x18,0x28,0x79,0x80,0x4, 0x7e,0x18,0x28, +0x3b,0x7a,0x1d,0x32,0x7e,0xd, 0x32,0x12,0x77,0xa7,0x6c,0xee,0xe1,0xcc,0x7e,0x70, +0x9, 0xac,0x7e,0x9, 0xf3,0x6e,0x27,0x12,0xbf,0xdc,0x38,0x2, 0xe1,0xca,0x7c,0xaf, +0x5e,0xa0,0xf, 0x74,0x9, 0xa4,0x7e,0xd, 0x36,0x2d,0x15,0x7e,0xb, 0xc0,0x7e,0x90, +0x4, 0xac,0x9f,0x9, 0xa4,0x28,0xba,0x4c,0xaa,0x78,0x2, 0x41,0x94,0x49,0x23,0x6e, +0x23,0x4d,0x22,0x78,0xa, 0x49,0x33,0x6e,0x25,0x4d,0x33,0x78,0x2, 0x41,0x94,0xbe, +0xa0,0x4, 0x28,0x5, 0x7e,0xd0,0x38,0x80,0x21,0xbe,0xa0,0x4, 0x78,0x5, 0x7e,0xd0, +0x30,0x80,0x17,0xbe,0xa0,0x3, 0x78,0x5, 0x7e,0xd0,0x20,0x80,0xd, 0xbe,0xa0,0x2, +0x78,0x5, 0x7e,0xd0,0x18,0x80,0x3, 0x7e,0xd0,0x10,0x75,0x27,0x0, 0x80,0x64,0x7e, +0x91,0x27,0x74,0x9, 0xac,0x9b,0x9, 0xb4,0x27,0xd1,0x54,0xf, 0xbc,0xbf,0x78,0x51, +0x74,0x9, 0xac,0xbe,0x49,0x35,0x6e,0x23,0x12,0xe5,0xaf,0x49,0x34,0x27,0xcd,0x12, +0xe6,0x53,0x1e,0x34,0x1e,0x24,0x50,0x3, 0x4e,0x60,0x80,0x14,0x78,0xf4,0x74,0x9, +0xac,0xbe,0x59,0x35,0x6e,0x23,0x7e,0x90,0x9, 0xac,0x9e,0x49,0x34,0x6e,0x25,0x12, +0xe5,0xaf,0x7e,0xa1,0x27,0x74,0x9, 0xa4,0x49,0x35,0x27,0xcf,0x12,0xe6,0x53,0x1e, +0x34,0x1e,0x24,0x50,0x3, 0x4e,0x60,0x80,0x14,0x78,0xf4,0x59,0x34,0x6e,0x25,0x80, +0x7, 0x5, 0x27,0x12,0xb3,0x6e,0x38,0x97,0x7e,0x70,0x4, 0xac,0x7f,0x2e,0x34,0x28, +0xba,0x12,0xe7,0x28,0x12,0xe5,0x4e,0x2d,0x35,0x7e,0x1b,0xb0,0xb4,0x1, 0x17,0x12, +0xe6,0xa6,0x70,0x12,0x7e,0xb3,0x6f,0x3d,0x70,0xc, 0xe4,0x39,0xb1,0x0, 0x8, 0x12, +0xe6,0x82,0x7a,0xb3,0x28,0xe5,0x4c,0xcc,0x68,0x2, 0xc1,0xe4,0x12,0xe6,0xa6,0x60, +0x2, 0xc1,0xe4,0x7e,0xb3,0x6f,0x3d,0x60,0x2, 0xc1,0xe4,0x74,0x9, 0xac,0xbe,0x49, +0x35,0x6e,0x23,0xbe,0x34,0x0, 0x14,0x38,0x10,0x12,0xe6,0xf7,0x40,0xb, 0x12,0x6f, +0xd9,0x9e,0x24,0x0, 0x14,0xbd,0x42,0x28,0x3b,0x7e,0x14,0x21,0xde,0x12,0xb4,0xe6, +0x7d,0x2c,0x9e,0x24,0x0, 0x14,0xbd,0x32,0x40,0x10,0x12,0xe6,0xf7,0x40,0xb, 0x12, +0x6f,0xd9,0x9e,0x24,0x0, 0x14,0xbd,0x42,0x28,0x1a,0x49,0xd5,0x6e,0x25,0xbe,0xd4, +0x0, 0x0, 0x28,0x2, 0xa1,0x9c,0xbe,0x34,0x0, 0x0, 0x50,0x2, 0xa1,0x9c,0xbd,0x3c, +0x28,0x2, 0xa1,0x9c,0x12,0xe6,0x45,0x12,0xe5,0xa8,0xbe,0x34,0x0, 0xc8,0x58,0x18, +0x12,0xe6,0xee,0xbe,0x44,0x0, 0x14,0x38,0xf, 0x12,0xe5,0xcf,0x40,0xa, 0x12,0xb4, +0xe2,0x12,0xe6,0xba,0x38,0x2, 0x81,0x9c,0x12,0xe5,0x9f,0xbe,0x34,0x0, 0xc8,0x58, +0x14,0x12,0xe5,0x56,0x40,0xf, 0x12,0xe5,0xcf,0x40,0xa, 0x12,0xb4,0xe2,0x12,0xe6, +0xba,0x38,0x2, 0x81,0x9c,0x12,0xe5,0x9f,0xbe,0x34,0x0, 0x0, 0x58,0x25,0x74,0x9, +0xac,0xbe,0x49,0x45,0x6e,0x25,0xbe,0x44,0x0, 0x0, 0x38,0x17,0x49,0x35,0x6e,0x23, +0xbe,0x34,0x0, 0x0, 0x40,0xd, 0x7e,0x14,0x21,0xde,0x12,0xb4,0xe6,0xbd,0x3c,0x38, +0x2, 0x81,0x9c,0x12,0xe5,0x43,0x29,0xb1,0x0, 0x8, 0x70,0x2e,0x7e,0x4, 0x0, 0x9, +0xca,0x9, 0x7e,0x70,0x9, 0xac,0x7e,0x2e,0x34,0x6e,0x23,0x6d,0x22,0x2e,0x14,0x27, +0x73,0x6d,0x0, 0x12,0x24,0x13,0x1b,0xfd,0x12,0xe5,0x4e,0x2d,0x35,0x2e,0x34,0x0, +0x8, 0x7e,0x1b,0xb0,0x4, 0x7a,0x1b,0xb0,0x81,0x9c,0x12,0xe4,0xe4,0x2d,0xc3,0xbe, +0xc4,0x0, 0x32,0x58,0x42,0x7e,0x70,0x9, 0xac,0x7e,0x49,0x23,0x6e,0x23,0xbe,0x24, +0x0, 0x14,0x38,0x33,0x49,0xc3,0x6e,0x25,0xbe,0xc4,0x0, 0x14,0x40,0x29,0x12,0x6f, +0xd9,0x9e,0x24,0x0, 0x14,0xbd,0xc2,0x38,0x1e,0x12,0x9c,0xfb,0x50,0xa, 0x7e,0xa0, +0x2d,0x12,0xe5,0x43,0x39,0xa1,0x0, 0x8, 0x12,0xe5,0x4e,0x12,0xe5,0xfb,0x40,0x2, +0x81,0x9c,0x12,0xe6,0x3c,0x81,0x9c,0x12,0xe4,0xe4,0x2d,0xc3,0xbe,0xc4,0x0, 0x32, +0x58,0x31,0x12,0xe5,0x56,0x40,0x2c,0x12,0xe5,0xcf,0x40,0x27,0x12,0xb4,0xe2,0x12, +0xe6,0xba,0x38,0x1f,0x12,0xe6,0x45,0x12,0x9c,0xff,0x50,0xa, 0x7e,0xa0,0x2d,0x12, +0xe5,0x43,0x39,0xa1,0x0, 0x8, 0x12,0xe5,0x4e,0x12,0xe5,0xfb,0x50,0x4e,0x12,0xe6, +0x3c,0x80,0x49,0x12,0xe4,0xe4,0x2d,0xc3,0xbe,0xc4,0x0, 0x0, 0x58,0x4a,0x7e,0x70, +0x9, 0xac,0x7e,0x49,0x23,0x6e,0x25,0xbe,0x24,0x0, 0x0, 0x38,0x3b,0x49,0xc3,0x6e, +0x23,0xbe,0xc4,0x0, 0x0, 0x40,0x31,0x7e,0x14,0x21,0xde,0x12,0x6f,0xdd,0xbd,0xc2, +0x38,0x26,0x12,0x9c,0xfb,0x50,0xa, 0x7e,0xa0,0x2d,0x12,0xe5,0x43,0x39,0xa1,0x0, +0x8, 0x12,0xe5,0x4e,0x12,0xe5,0xfb,0x50,0x3, 0x12,0xe6,0x3c,0x7e,0xc0,0x3, 0x12, +0xe5,0x33,0x39,0xa1,0x0, 0x1, 0xa1,0xe6,0x7e,0x50,0x9, 0xac,0x5e,0x49,0x42,0x6e, +0x23,0xbe,0x44,0x0, 0x14,0x38,0x47,0x49,0x32,0x6e,0x25,0xbe,0x34,0x0, 0x14,0x40, +0x3d,0x7e,0x14,0x21,0xec,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0x50,0x9e,0x54,0x0, 0x14, +0xbd,0x35,0x38,0x2a,0x74,0x9, 0xac,0xbf,0x49,0xc5,0x27,0x73,0x4d,0xcc,0x78,0xa, +0x49,0xc5,0x27,0x75,0x4d,0xcc,0x78,0x2, 0xa1,0xdc,0x12,0xe4,0xf0,0x7d,0x53,0x2d, +0x5c,0xbe,0x54,0x1, 0x2c,0x8, 0x2, 0xa1,0xdc,0x12,0xe5,0x10,0xa1,0xdc,0x7e,0x34, +0x21,0xde,0x7e,0x24,0x0, 0xff,0xb, 0x1a,0x0, 0x7d,0x10,0x9e,0x14,0x0, 0x14,0xbd, +0x41,0x40,0x52,0x74,0x9, 0xac,0xbe,0x12,0xe5,0xcf,0x40,0x49,0x12,0xe6,0xd3,0xb, +0x7a,0x20,0x9e,0x24,0x0, 0x14,0xbd,0x32,0x38,0x3b,0x74,0x9, 0xac,0xbf,0x49,0x25, +0x27,0x73,0x4d,0x22,0x78,0xa, 0x49,0x25,0x27,0x75,0x4d,0x22,0x78,0x2, 0xa1,0xdc, +0x49,0x25,0x27,0x75,0x12,0xe7,0x38,0x12,0xe4,0xfb,0x2d,0x13,0xbe,0x14,0x1, 0x2c, +0x8, 0x2, 0xa1,0xdc,0x7e,0xa0,0x5, 0x7e,0x30,0x4, 0xac,0x3f,0x19,0xa1,0x28,0xba, +0x12,0xe5,0x1c,0x80,0x77,0x74,0x9, 0xac,0xbe,0x12,0xe6,0x33,0x38,0x78,0xbe,0x44, +0x0, 0x0, 0x40,0x72,0xbd,0x40,0x38,0x6e,0x74,0x9, 0xac,0xbf,0x49,0x25,0x27,0x73, +0x4d,0x22,0x78,0x8, 0x49,0x25,0x27,0x75,0x4d,0x22,0x68,0x50,0x12,0xe4,0xf0,0x2d, +0xc3,0xbe,0xc4,0x1, 0x2c,0x18,0x45,0x12,0xe5,0x10,0x80,0x40,0x7e,0x70,0x9, 0xac, +0x7f,0x7e,0xd, 0x36,0x2d,0x13,0x29,0x50,0x0, 0x8, 0xbe,0x50,0x0, 0x28,0x37,0x7e, +0xb3,0x28,0xe5,0x70,0x31,0x49,0x23,0x27,0x73,0x4d,0x22,0x78,0x8, 0x49,0x23,0x27, +0x75,0x4d,0x22,0x68,0x17,0x49,0x23,0x27,0x75,0x7d,0x3d,0x12,0xe7,0x38,0x12,0xe4, +0xfb,0x2d,0x31,0xbe,0x34,0x1, 0x2c,0x18,0x3, 0x12,0xe5,0x10,0x7e,0xa0,0x2d,0x12, +0xe5,0x43,0x39,0xa1,0x0, 0x8, 0x4c,0xcc,0x68,0x2, 0xc1,0xe4,0x7e,0x70,0x9, 0xac, +0x7e,0x12,0x9c,0xfb,0x92,0x1f,0x30,0x1f,0x3c,0x12,0xe6,0x82,0x12,0xe5,0x4e,0x2d, +0x35,0x29,0xb1,0x0, 0x6, 0x70,0x6, 0x74,0x1, 0x39,0xb1,0x0, 0x6, 0x12,0xe5,0x4e, +0x2d,0x35,0x29,0x31,0x0, 0x6, 0xbe,0x30,0x1, 0x28,0x2, 0xc1,0xe4,0x4c,0xcc,0x78, +0x3, 0x7e,0xc0,0x3, 0x74,0x2d,0x39,0xb1,0x0, 0x8, 0xd2,0x20,0x12,0xe5,0x33,0x39, +0xa1,0x0, 0x1, 0xc1,0xe4,0x74,0x9, 0xac,0xbe,0x49,0x25,0x6e,0x23,0xbe,0x24,0x0, +0x14,0x28,0x14,0x7e,0x14,0x21,0xde,0x12,0x7c,0x34,0x9e,0x34,0x0, 0x14,0xbd,0x23, +0x50,0x5, 0x12,0xe6,0x33,0x38,0x7c,0xbe,0x24,0x0, 0x14,0x38,0xb, 0x12,0xe6,0x33, +0x40,0x6, 0xbe,0x34,0x0, 0x14,0x28,0x6b,0x7e,0x14,0x21,0xde,0x12,0x7c,0x34,0x9e, +0x34,0x0, 0x14,0xbd,0x23,0x40,0x14,0x74,0x9, 0xac,0xbe,0x49,0x15,0x6e,0x25,0xbe, +0x14,0x0, 0x0, 0x40,0x6, 0xbe,0x14,0x0, 0x14,0x28,0x48,0xbe,0x24,0x0, 0x14,0x38, +0x21,0x74,0x9, 0xac,0xbe,0x49,0x5, 0x6e,0x25,0x7e,0x54,0x21,0xec,0x7e,0x44,0x0, +0xff,0xb, 0x2a,0x10,0x7d,0x51,0x9e,0x54,0x0, 0x14,0xbd,0x5, 0x40,0x4, 0xbd,0x1, +0x28,0x21,0xbd,0x23,0x40,0x2e,0x74,0x9, 0xac,0xbe,0x49,0x25,0x6e,0x25,0x7e,0x14, +0x21,0xec,0x12,0x7c,0x34,0x7d,0x13,0x9e,0x14,0x0, 0x14,0xbd,0x21,0x40,0x15,0xbd, +0x23,0x38,0x11,0x12,0xe5,0x4e,0x2d,0x35,0x29,0xb1,0x0, 0x6, 0x70,0x6, 0x74,0x2, +0x39,0xb1,0x0, 0x6, 0xbe,0xc0,0x3, 0x78,0x2, 0xe1,0xca,0x12,0xe6,0xee,0x7a,0x45, +0x2e,0x49,0x35,0x6e,0x25,0x7a,0x35,0x30,0xbe,0xc0,0x1, 0x78,0x3b,0x6c,0xaa,0x7e, +0x70,0x4, 0xac,0x7f,0x19,0xa3,0x28,0xb8,0x12,0xe5,0x43,0x39,0xa1,0x0, 0x6, 0x75, +0x27,0x0, 0x80,0x1f,0x12,0xb3,0xa1,0x9, 0xb3,0x27,0xd1,0x54,0xf, 0xbc,0xbf,0x78, +0x10,0x49,0x23,0x27,0xcd,0x7a,0x25,0x2e,0x49,0x33,0x27,0xcf,0x7a,0x35,0x30,0x80, +0x7, 0x5, 0x27,0x12,0xb3,0x6e,0x38,0xdc,0x85,0x28,0x3a,0x7e,0x8, 0x0, 0x2a,0x7e, +0x18,0x0, 0x2b,0x7c,0xbe,0x12,0x87,0x5b,0x7e,0x35,0x2e,0x5e,0x60,0xf, 0x7a,0x35, +0x2e,0x7e,0x35,0x30,0x5e,0x60,0xf, 0x7a,0x35,0x30,0x7e,0x90,0x9, 0xac,0x9e,0x9, +0x74,0x6e,0x27,0xa, 0x57,0xc4,0x54,0xf0,0x7c,0xab,0xe4,0x7d,0x25,0x2e,0x25,0x30, +0x7a,0x25,0x30,0xbe,0x70,0xff,0x68,0x19,0xbe,0xc0,0x1, 0x68,0x2, 0x5, 0x28,0x5, +0x2d,0xa, 0x5c,0x3, 0x3, 0x54,0xc0,0x7c,0xab,0xe4,0x7d,0x35,0x2e,0x35,0x2e,0x80, +0x7, 0x7e,0x35,0x2e,0x2e,0x34,0xc0,0x0, 0x7a,0x35,0x2e,0x12,0xe6,0x9a,0x79,0x30, +0x0, 0x2, 0x7e,0x35,0x30,0x12,0xe6,0x9a,0x79,0x30,0x0, 0x4, 0x7e,0xa1,0x2a,0x7e, +0x31,0x29,0x74,0x6, 0x12,0xe7,0x30,0x39,0xa1,0x0, 0x6, 0x7e,0xa1,0x2b,0x7e,0x31, +0x29,0x12,0xe7,0x30,0x39,0xa1,0x0, 0x7, 0x5, 0x29,0xb, 0xe0,0x12,0xe6,0x6f,0x28, +0x2, 0x21,0xae,0xe5,0x28,0x7e,0x1d,0x32,0x39,0xb1,0x0, 0x1, 0x7e,0x33,0x6f,0x33, +0x7e,0x1d,0x32,0x7a,0x1b,0x30,0x7e,0xb3,0x77,0xf, 0xb4,0x1, 0xf, 0x7e,0xb3,0x6f, +0x37,0xb4,0x1, 0x1c,0x74,0x5, 0x7a,0xb3,0x78,0x93,0x80,0xf, 0xe5,0x2d,0xbe,0xb0, +0x0, 0x38,0x6, 0x7e,0xb3,0x6f,0x37,0x60,0x7, 0xb2,0x21,0xc2,0x86,0x12,0x96,0xe4, +0x7e,0xb3,0x6f,0x36,0x60,0xc, 0x7e,0xb3,0x6f,0x3d,0x70,0x6, 0x7e,0xd, 0x36,0x12, +0x90,0x7b,0xe4,0x7a,0xb3,0x6f,0x3a,0x7a,0xb3,0x6f,0x36,0x7a,0xb3,0x6f,0x37,0x80, +0x1e,0x7e,0xd, 0x36,0x12,0x90,0x7b,0x6c,0xee,0x6c,0xaa,0x80,0xb, 0x7c,0x1e,0x2e, +0x10,0x8, 0x7c,0xba,0xa5,0xf7,0xb, 0xe0,0xbe,0xe0,0xa, 0x40,0xf0,0xd2,0x86,0x12, +0x90,0xc9,0xca,0x59,0x7e,0x18,0x6e,0x23,0x7e,0x8, 0x27,0xcd,0x12,0x24,0x13,0x1b, +0xfd,0xe5,0x2d,0x70,0x10,0x12,0x73,0x78,0x74,0x9, 0xac,0x7b,0x7e,0x8, 0x27,0xcd, +0x74,0xff,0x12,0x24,0x38,0x12,0x96,0xf6,0xda,0x3b,0x22,0xca,0xf8,0x6c,0xaa,0x80, +0x40,0x7e,0xf0,0x3, 0x7e,0x90,0x9, 0xac,0x9a,0x7f,0x10,0x2d,0x34,0x7a,0x1b,0xf0, +0x74,0x3, 0x7f,0x10,0x2d,0x34,0x39,0xb1,0x0, 0x1, 0x7e,0x34,0x7f,0xff,0x7f,0x70, +0x2d,0xf4,0x79,0x37,0x0, 0x2, 0x7f,0x70,0x2d,0xf4,0x79,0x37,0x0, 0x4, 0xe4,0x7f, +0x10,0x2d,0x34,0x39,0xb1,0x0, 0x6, 0x7f,0x10,0x2d,0x34,0x39,0xb1,0x0, 0x8, 0xb, +0xa0,0x12,0x45,0x1f,0x38,0xbb,0xda,0xf8,0x22,0x90,0x21,0x51,0xe4,0x93,0x7c,0xab, +0x74,0x9, 0xa4,0x22,0xca,0x79,0x7e,0xf3,0x6f,0x31,0x7e,0xe3,0x6f,0x32,0x7c,0xbf, +0x7c,0x7e,0x12,0x44,0xc6,0x7c,0xbf,0x12,0x91,0x65,0x4c,0xee,0x78,0x17,0x12,0x90, +0xc9,0xca,0x59,0x7e,0x18,0x6d,0xc9,0x7e,0x8, 0x6e,0x7d,0x12,0x24,0x13,0x1b,0xfd, +0x12,0x91,0x1b,0x80,0xe, 0x7e,0xb3,0x6f,0x38,0x70,0x8, 0x12,0x91,0x1b,0x7c,0xbf, +0x12,0x92,0xc7,0x7c,0xbf,0x12,0x97,0x18,0xda,0x79,0x22,0x7e,0xa3,0x6f,0x31,0x6c, +0x77,0x80,0x3d,0x7e,0x90,0x9, 0xac,0x97,0x9, 0x64,0x6e,0x81,0x7e,0x50,0x9, 0xac, +0x56,0x9, 0xb2,0x6e,0xd7,0x70,0x27,0x74,0x1, 0x19,0xb2,0x59,0xe1,0x49,0x14,0x6d, +0xc9,0x59,0x12,0x59,0xe2,0x49,0x14,0x6d,0xcb,0x59,0x12,0x59,0xe4,0xe4,0x19,0xb2, +0x59,0xe6,0x19,0xb2,0x59,0xde,0x19,0xb2,0x59,0xdf,0x19,0xb2,0x59,0xe0,0xb, 0x70, +0xbc,0xa7,0x38,0xbf,0x22,0xca,0x79,0x7c,0xeb,0x90,0x21,0x51,0xe4,0x93,0x7c,0xfb, +0x7e,0x70,0x9, 0xac,0x7f,0x7e,0x8, 0x63,0x6d,0x74,0xff,0x12,0x24,0x38,0xe4,0x6c, +0x77,0x7c,0x6e,0x12,0x91,0xeb,0x7c,0x7e,0x7c,0x6f,0x12,0x91,0xeb,0x7c,0x1b,0x6c, +0x0, 0x80,0x3e,0x6c,0x99,0x80,0x17,0x74,0x9, 0xac,0xb9,0x9, 0xa5,0x63,0x71,0x7e, +0x30,0x9, 0xac,0x30,0x9, 0x81,0x6d,0xcd,0xbc,0x8a,0x68,0x6, 0xb, 0x90,0xbc,0x19, +0x38,0xe5,0xbc,0x19,0x78,0x19,0x7e,0x70,0x9, 0xac,0x70,0x2e,0x34,0x6d,0xc9,0x7e, +0x30,0x9, 0xac,0x31,0x2e,0x14,0x63,0x6d,0x74,0x9, 0x12,0x23,0x44,0xb, 0x10,0xb, +0x0, 0xbc,0xf0,0x38,0xbe,0x74,0x9, 0xac,0xbf,0xca,0x59,0x7e,0x18,0x63,0x6d,0x7e, +0x8, 0x6e,0x7d,0x12,0x24,0x13,0x1b,0xfd,0xda,0x79,0x22,0x7e,0x8, 0x63,0x6d,0xca, +0x69,0xca,0xf8,0x7f,0x70,0x7c,0x86,0x7c,0xf7,0x7c,0xab,0x6c,0x99,0x41,0xaf,0x7c, +0x3f,0x41,0xa7,0x7e,0x10,0x9, 0xac,0x19,0x9, 0x20,0x6e,0x81,0x7e,0x10,0x9, 0xac, +0x13,0x9, 0xb0,0x6d,0xcd,0xbc,0xb2,0x68,0x2, 0x41,0xa5,0xbe,0x20,0xff,0x78,0x2, +0x41,0xa5,0x7e,0xd0,0x9, 0xac,0xd2,0x9, 0xb6,0x6e,0xd7,0x70,0xa, 0x7d,0x30,0x2e, +0x34,0x6d,0xc9,0x6d,0x22,0x80,0xb, 0x7e,0x70,0x9, 0xac,0x79,0x2e,0x34,0x6e,0x7d, +0x6d,0x22,0x29,0x11,0x0, 0x4, 0x12,0x92,0xbd,0x39,0x16,0x0, 0x4, 0xb, 0x1a,0x0, +0x12,0x92,0xbd,0x1b,0x6a,0x0, 0x69,0x1, 0x0, 0x2, 0x12,0x92,0xbd,0x79,0x6, 0x0, +0x2, 0x7e,0x10,0x9, 0xac,0x13,0x9, 0x10,0x6d,0xce,0x12,0x92,0xbd,0x39,0x16,0x0, +0x5, 0x7e,0x10,0x9, 0xac,0x13,0x9, 0x10,0x6d,0xcf,0x12,0x92,0xbd,0x39,0x16,0x0, +0x6, 0x7e,0x10,0x9, 0xac,0x13,0x9, 0x10,0x6d,0xd0,0x12,0x92,0xbd,0x39,0x16,0x0, +0x7, 0x7e,0x10,0x9, 0xac,0x13,0x9, 0x10,0x6d,0xd1,0x12,0x92,0xbd,0x39,0x16,0x0, +0x8, 0xb, 0xa0,0x80,0x8, 0xb, 0x30,0xbc,0x83,0x28,0x2, 0x41,0x3, 0xb, 0x90,0x12, +0x96,0xdc,0x28,0x2, 0x21,0xff,0x7c,0xba,0xda,0xf8,0xda,0x69,0x22,0x7e,0xd0,0x9, +0xac,0xda,0x7f,0x67,0x2d,0xd6,0x22,0xca,0x3b,0x7c,0xfb,0x6c,0xee,0x61,0x61,0x6c, +0xdd,0x80,0x16,0x74,0x9, 0xac,0xbd,0x9, 0x65,0x6e,0x81,0x74,0x9, 0xac,0xbe,0x9, +0x75,0x6d,0xcd,0xbc,0x67,0x68,0x7, 0xb, 0xd0,0x12,0x94,0xbd,0x38,0xe5,0x12,0x94, +0xbd,0x28,0x74,0x7e,0x50,0x9, 0xac,0x5d,0x9, 0xc2,0x6e,0x81,0x49,0x42,0x6e,0x7f, +0x74,0x9, 0xac,0xbe,0x49,0xa5,0x6d,0xcb,0x7d,0x3a,0x9d,0x34,0xbe,0x34,0x0, 0x0, +0x8, 0x4, 0x9d,0xa4,0x80,0x4, 0x6d,0xaa,0x9d,0xa3,0x49,0x42,0x6e,0x7d,0x49,0xb5, +0x6d,0xc9,0x7d,0x3b,0x9d,0x34,0xbe,0x34,0x0, 0x0, 0x8, 0x4, 0x9d,0xb4,0x80,0x4, +0x6d,0xbb,0x9d,0xb3,0x2d,0xba,0x74,0x9, 0xac,0xbc,0x9, 0xb5,0x6e,0xd7,0xb4,0x1, +0xe, 0x6d,0xaa,0x74,0x2, 0xac,0xbc,0x59,0xa5,0x5a,0x44,0x59,0xa5,0x5c,0xc5,0x7d, +0x3b,0x7c,0xbd,0x7c,0x5e,0x7c,0x4c,0x12,0x95,0xc6,0x7c,0xbd,0x12,0x93,0x6a,0xb, +0xe0,0xbc,0xfe,0x28,0x2, 0x41,0xcf,0xda,0x3b,0x22,0x2, 0x93,0x6d,0xca,0x3b,0x7c, +0xd4,0x7c,0xe5,0x7c,0xfb,0x7d,0xf3,0x7e,0x17,0x6f,0x50,0xbd,0x13,0x38,0x6, 0x7e, +0xd4,0x1, 0x0, 0x80,0x17,0x6d,0x22,0x7c,0x56,0x7c,0x67,0x6c,0x77,0x12,0x22,0xbd, +0x7d,0xd3,0xbe,0xd4,0x0, 0x10,0x50,0x4, 0x7e,0xd4,0x0, 0x10,0x74,0x2, 0xac,0xbd, +0x49,0x45,0x5c,0xc5,0xbd,0x4f,0x28,0x6, 0x49,0xd5,0x5a,0x44,0x80,0x4, 0x59,0xd5, +0x5a,0x44,0x59,0xf5,0x5c,0xc5,0xbe,0xd4,0x1, 0x0, 0x28,0x4, 0x7e,0xd4,0x1, 0x0, +0x7e,0xb3,0x6f,0x57,0x60,0xb, 0x7e,0x73,0x6f,0x31,0xbe,0x70,0x2, 0x40,0x2, 0x1e, +0xd4,0x7e,0x73,0x6f,0x31,0xbe,0x70,0x5, 0x28,0x2, 0x1e,0xd4,0xbe,0xd4,0x0, 0x20, +0x50,0x11,0x7e,0x70,0x9, 0xac,0x7d,0x9, 0xb3,0x59,0xe6,0xb4,0x1, 0x5, 0xe4,0x19, +0xb3,0x59,0xe6,0xbe,0xd4,0x0, 0x40,0x28,0xc, 0x7e,0xa0,0x1, 0x7e,0x70,0x9, 0xac, +0x7d,0x19,0xa3,0x59,0xe6,0x7c,0xbe,0x7c,0x7d,0x12,0x94,0xc5,0x7d,0x13,0x7e,0xb3, +0x6f,0x57,0x60,0x2, 0x1e,0xd4,0x7e,0x70,0x9, 0xac,0x7f,0x49,0x3, 0x6e,0x7d,0x7e, +0xd0,0x9, 0xac,0xde,0x49,0x26,0x6d,0xc9,0x7d,0xe2,0x9d,0xe0,0xbe,0xe4,0x0, 0x0, +0x8, 0x6, 0x7d,0xf2,0x9d,0xf0,0x80,0x4, 0x6d,0xff,0x9d,0xfe,0x12,0x94,0xae,0xbd, +0x20,0x28,0xf, 0x7d,0xe3,0x2e,0xe4,0x6e,0x7d,0x7d,0xc0,0x2d,0xcf,0x1b,0xe8,0xc0, +0x80,0xf, 0x74,0x9, 0xac,0xbf,0x7d,0xe5,0x2e,0xe4,0x6e,0x7d,0x9d,0xf, 0x1b,0xe8, +0x0, 0x7e,0x50,0x9, 0xac,0x5f,0x49,0x32,0x6e,0x7f,0x7e,0xd0,0x9, 0xac,0xde,0x49, +0xe6,0x6d,0xcb,0x7d,0xe, 0x9d,0x3, 0xbe,0x4, 0x0, 0x0, 0x8, 0x6, 0x7d,0xfe,0x9d, +0xf3,0x80,0x4, 0x6d,0xff,0x9d,0xf0,0x12,0x94,0xae,0xbd,0xe3,0x28,0xf, 0x7d,0xe2, +0x2e,0xe4,0x6e,0x7f,0x7d,0x23,0x2d,0x2f,0x1b,0xe8,0x20,0x80,0xe, 0x7e,0x50,0x9, +0xac,0x5f,0x2e,0x24,0x6e,0x7f,0x9d,0x3f,0x1b,0x28,0x30,0xda,0x3b,0x22,0x7d,0x5d, +0xad,0x5f,0x7c,0xba,0x7c,0xa9,0xa, 0x48,0x7d,0xf5,0x5d,0xf1,0x22,0x90,0x21,0x51, +0xe4,0x93,0xbc,0xbd,0x22,0x7c,0x17,0x7c,0xab,0x7e,0x14,0xff,0xfc,0x7e,0x3, 0x6f, +0x31,0x7e,0x90,0x9, 0xac,0x91,0x9, 0xb4,0x59,0xe1,0xb4,0x1, 0x49,0xa5,0xb8,0x1, +0xc, 0xbe,0x14,0xff,0x0, 0x28,0x10,0x7e,0x14,0xff,0x0, 0x80,0xa, 0xbe,0x14,0xff, +0xe0,0x28,0x4, 0x7e,0x14,0xff,0xe0,0x49,0x34,0x59,0xe2,0x7e,0x50,0x9, 0xac,0x5a, +0x49,0x22,0x6d,0xc9,0x12,0x95,0xb0,0x8, 0x3, 0x12,0x95,0xba,0x7e,0x70,0x9, 0xac, +0x71,0x49,0x33,0x59,0xe4,0x7e,0x50,0x9, 0xac,0x5a,0x49,0x22,0x6d,0xcb,0x12,0x95, +0xb0,0x8, 0x3, 0x12,0x95,0xba,0x7e,0x70,0x9, 0xac,0x71,0x49,0x23,0x59,0xe2,0x7e, +0x70,0x9, 0xac,0x7a,0x49,0x33,0x6d,0xc9,0x12,0x95,0xa6,0x18,0x16,0x74,0x9, 0xac, +0x1b,0x49,0x20,0x59,0xe4,0x7e,0x70,0x9, 0xac,0x7a,0x49,0x33,0x6d,0xcb,0x12,0x95, +0xa6,0x8, 0x4, 0x7e,0x14,0xff,0xfc,0x7e,0x50,0x9, 0xac,0x5a,0x49,0x2, 0x6d,0xc9, +0xbe,0x4, 0x6, 0x50,0x40,0x39,0x7e,0x63,0x6f,0x66,0x7e,0x70,0x40,0xac,0x67,0x9e, +0x34,0x0, 0x65,0x12,0x31,0x24,0x3e,0x34,0xbd,0x3, 0x38,0x23,0x49,0x32,0x6d,0xcb, +0xbe,0x34,0x6, 0x50,0x40,0x19,0x7e,0x3, 0x6f,0x67,0x7e,0x10,0x40,0xac,0x1, 0x9e, +0x4, 0x0, 0x65,0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0xbd,0x30,0x28,0x4, 0x7e, +0x14,0xff,0xff,0x7d,0x31,0x22,0x9d,0x32,0x12,0x24,0x5a,0xbe,0x34,0x4, 0x0, 0x22, +0x9d,0x32,0x12,0x24,0x5a,0xbe,0x34,0x1, 0x0, 0x22,0x6c,0x0, 0x7e,0x70,0x9, 0xac, +0x71,0x19,0x3, 0x59,0xe1,0x22,0xca,0x3b,0x7c,0xab,0x7d,0x3, 0x7e,0x20,0x10,0x7d, +0x30,0x7e,0x90,0x9, 0xac,0x95,0x9, 0x34,0x6d,0xcf,0xbe,0x30,0x10,0x28,0x2, 0x7c, +0x23,0xbe,0x20,0x20,0x28,0x3, 0x7e,0x20,0x20,0x49,0xe4,0x6d,0xc9,0xbe,0xe4,0x6, +0x50,0x40,0x20,0x7e,0x33,0x6f,0x66,0x12,0x96,0xc8,0xbd,0xef,0x38,0x15,0x49,0xe4, +0x6d,0xcb,0xbe,0xe4,0x6, 0x50,0x40,0xb, 0x7e,0x33,0x6f,0x67,0x12,0x96,0xc8,0xbd, +0xef,0x28,0x3, 0x7e,0x20,0x8, 0x7e,0xf0,0x10,0xac,0xf2,0xbd,0x70,0x40,0x63,0x7e, +0xf0,0x9, 0xac,0xf4,0x9, 0xb7,0x59,0xe6,0x70,0x58,0x7e,0xd0,0x8, 0xac,0xd2,0xbd, +0x60,0x50,0x3c,0x9, 0xb7,0x59,0xdf,0x70,0x1f,0x9, 0xb7,0x59,0xe0,0xbe,0xb0,0x0, +0x28,0xc, 0x7d,0x37,0x2e,0x34,0x59,0xe0,0x14,0x7a,0x39,0xb0,0x80,0x6, 0x74,0x1, +0x19,0xb7,0x59,0xdf,0x6d,0x33,0x80,0x3a,0x9, 0xb7,0x59,0xe0,0xbe,0xb0,0x14,0x50, +0x31,0x7d,0x37,0x2e,0x34,0x59,0xe0,0x4, 0x7a,0x39,0xb0,0x6d,0x33,0x80,0x23,0xe4, +0x19,0xb7,0x59,0xe0,0x19,0xb7,0x59,0xdf,0x6d,0x33,0x74,0x1, 0x7a,0xb3,0x5c,0xd9, +0x80,0x10,0x6c,0x33,0x7e,0xf0,0x9, 0xac,0xf4,0x19,0x37,0x59,0xe0,0xe4,0x19,0xb7, +0x59,0xdf,0x7e,0x30,0x8, 0xac,0x23,0xbd,0x10,0x40,0x2a,0x7e,0x70,0x9, 0xac,0x7a, +0x49,0x33,0x6e,0x7d,0x59,0x34,0x6d,0xc9,0x74,0x9, 0xa4,0x49,0x35,0x6e,0x7f,0x74, +0x9, 0xac,0xb5,0x59,0x35,0x6d,0xcb,0x7e,0xa0,0x1, 0x7e,0x70,0x9, 0xac,0x74,0x19, +0xa3,0x59,0xde,0x6d,0x33,0xda,0x3b,0x22,0x7e,0xf0,0x40,0xac,0xf3,0x7d,0xf7,0x9e, +0xf4,0x0, 0x65,0x3e,0xf4,0x3e,0xf4,0x3e,0xf4,0x3e,0xf4,0x22,0x90,0x21,0x51,0xe4, +0x93,0xbc,0xb9,0x22,0x7e,0xb3,0x28,0xe4,0x4, 0x7a,0xb3,0x28,0xe4,0x7e,0x73,0x28, +0xe4,0x7a,0x73,0x76,0xce,0x22,0x6c,0xaa,0x7e,0x70,0x4, 0xac,0x7a,0x9, 0xb3,0x28, +0xb8,0x60,0x8, 0x74,0x1, 0x7a,0xb3,0x6f,0x3c,0x80,0x7, 0xb, 0xa0,0xbe,0xa0,0xa, +0x40,0xe6,0xe4,0x7a,0xb3,0x6f,0x3c,0x22,0x6c,0xaa,0x80,0x63,0x7e,0x50,0x9, 0xac, +0x5a,0x49,0x32,0x6e,0x7d,0x12,0x4c,0x5d,0x59,0x32,0x6d,0xc9,0x7e,0x50,0x9, 0xac, +0x5a,0x49,0x32,0x6e,0x7f,0x12,0x4c,0x5d,0x59,0x32,0x6d,0xcb,0x7e,0x90,0x9, 0xac, +0x9a,0x9, 0xb4,0x6e,0x81,0x19,0xb4,0x6d,0xcd,0x7e,0x90,0x9, 0xac,0x9a,0x9, 0xb4, +0x6e,0x82,0x19,0xb4,0x6d,0xce,0x7e,0x90,0x9, 0xac,0x9a,0x9, 0xb4,0x6e,0x83,0x19, +0xb4,0x6d,0xcf,0x7e,0x90,0x9, 0xac,0x9a,0x9, 0xb4,0x6e,0x84,0x19,0xb4,0x6d,0xd0, +0x7e,0x90,0x9, 0xac,0x9a,0x9, 0xb4,0x6e,0x85,0x19,0xb4,0x6d,0xd1,0xb, 0xa0,0x12, +0x45,0x1f,0x38,0x98,0x22,0x7c,0x9b,0x7e,0x1b,0xa0,0x4c,0xaa,0x78,0x7, 0x7e,0xb, +0xb0,0x7a,0x1b,0xb0,0x22,0xa, 0xda,0x7e,0xb, 0x80,0xa, 0xe8,0x7d,0xfe,0x9d,0xfd, +0xbe,0xf4,0x0, 0x0, 0x8, 0x4, 0x9d,0xed,0x80,0x4, 0x6d,0xee,0x9d,0xef,0xe5,0x3d, +0xa, 0xfb,0xbd,0xef,0x8, 0xf, 0xbc,0x8a,0x7c,0xba,0x28,0x4, 0x2c,0xb9,0x80,0x2, +0x9c,0xb9,0x7a,0x1b,0xb0,0x7e,0x1b,0x70,0x7a,0xb, 0x70,0x22,0xe4,0x7a,0xb3,0x77, +0x31,0x90,0x1c,0x45,0x93,0x7a,0xb3,0x77,0x33,0x90,0x1c,0x46,0xe4,0x93,0x7a,0xb3, +0x77,0x34,0x90,0x21,0x51,0xe4,0x93,0x7a,0xb3,0x77,0x36,0xe4,0x7a,0xb3,0x77,0x37, +0x7a,0xb3,0x77,0x3c,0x12,0x3e,0x8b,0xe4,0x7a,0xb3,0x77,0x3f,0x7e,0x73,0x29,0xb6, +0x7a,0x73,0x77,0x51,0x7e,0x73,0x29,0xb7,0x7a,0x73,0x77,0x52,0x7e,0x73,0x29,0xb8, +0x7a,0x73,0x77,0x53,0x7e,0x73,0x29,0x85,0x7a,0x73,0x77,0x5a,0x7e,0x73,0x29,0x86, +0x7a,0x73,0x77,0x5b,0x90,0x1c,0x49,0x93,0x7a,0xb3,0x77,0x4f,0x90,0x1c,0x4a,0xe4, +0x93,0x7a,0xb3,0x77,0x50,0x74,0x1, 0x7a,0xb3,0x77,0x61,0x7e,0x34,0x22,0x32,0x12, +0x2a,0xa9,0x7a,0x37,0x77,0x8b,0x74,0x2, 0x7a,0xb3,0x77,0x3a,0x74,0x17,0x7a,0xb3, +0x77,0x5e,0x22,0x7e,0x18,0x14,0x30,0x7a,0x1f,0x24,0x64,0x7e,0x18,0x4, 0x0, 0x7a, +0x1f,0x24,0x68,0x7e,0xf, 0x24,0x64,0x12,0x65,0x91,0x7e,0xf, 0x24,0x68,0x7e,0x34, +0x4, 0xc, 0x12,0x24,0x38,0x7a,0xb3,0x25,0xae,0x22,0x7e,0x8, 0x6c,0x9, 0x7e,0x34, +0x1, 0xa1,0xe4,0x12,0x24,0x38,0x90,0x21,0x52,0x93,0x7c,0x7b,0x74,0x9, 0xac,0x7b, +0x7e,0x8, 0x6c,0x85,0x74,0xff,0x2, 0x24,0x38,0x7e,0x34,0x0, 0x27,0xca,0x39,0x7e, +0x34,0x20,0xb4,0x7e,0x24,0x0, 0xff,0x7e,0x8, 0x28,0xe7,0x12,0x24,0x13,0x1b,0xfd, +0x7e,0x34,0x0, 0x27,0xca,0x39,0x7e,0x34,0x20,0xdb,0x7e,0x24,0x0, 0xff,0x7e,0x8, +0x29,0xe, 0x12,0x24,0x13,0x1b,0xfd,0x7e,0x34,0x0, 0x27,0xca,0x39,0x7e,0x34,0x21, +0x2, 0x7e,0x24,0x0, 0xff,0x7e,0x8, 0x29,0x35,0x12,0x24,0x13,0x1b,0xfd,0x7e,0x34, +0x0, 0x27,0xca,0x39,0x7e,0x34,0x21,0x29,0x7e,0x24,0x0, 0xff,0x7e,0x8, 0x29,0x5c, +0x12,0x24,0x13,0x1b,0xfd,0x6c,0x88,0x7c,0xb8,0x12,0x66,0xf8,0xb, 0x80,0xbe,0x80, +0x4, 0x40,0xf4,0x2, 0x48,0xb3,0xca,0xf8,0x6c,0xff,0x12,0x5b,0x38,0xb, 0xf0,0x7e, +0x73,0x77,0xbc,0xbc,0x7f,0x38,0xf3,0x12,0x99,0x1d,0xda,0xf8,0x22,0x7e,0xb3,0x77, +0x5d,0x7e,0x73,0x78,0x9b,0x14,0x68,0x1d,0x4, 0x78,0x1a,0x7e,0x8, 0xc, 0x18,0x7a, +0xf, 0x24,0x60,0x7e,0x8, 0x14,0x30,0x7a,0xf, 0x24,0x64,0xa5,0xbf,0x3, 0x16,0x7e, +0x18,0x1c,0x48,0x80,0xc, 0x7e,0x18,0x10,0x24,0x7a,0x1f,0x24,0x60,0x7e,0x18,0x18, +0x3c,0x7a,0x1f,0x24,0x64,0x22,0x7e,0xb3,0x6f,0x57,0x60,0x2, 0x61,0x5d,0x12,0x6f, +0xbf,0x78,0x2, 0x61,0x5d,0x7e,0xa3,0x6d,0x93,0xbe,0xa0,0x1, 0x78,0x1b,0x7e,0xb3, +0x6d,0xa9,0x70,0x15,0x7e,0xb3,0x6c,0x9, 0x7a,0xb3,0x78,0x29,0x7e,0xb3,0x6c,0xa, +0x7a,0xb3,0x78,0x2a,0xe4,0x7a,0xb3,0x78,0x2b,0xbe,0xa0,0x0, 0x28,0x3e,0xc2,0x0, +0x6c,0x11,0x80,0x21,0x12,0x9e,0xd9,0x7e,0x73,0x78,0x29,0xa, 0x27,0x1a,0x39,0x12, +0x9e,0xc3,0x58,0xf, 0x7e,0x73,0x78,0x2a,0xa, 0x27,0x1a,0x30,0x12,0x9e,0xc3,0x58, +0x2, 0xd2,0x0, 0xb, 0x10,0x12,0x9e,0x6d,0x38,0xda,0x30,0x0, 0xc, 0x7e,0xb3,0x78, +0x2b,0xbe,0xb0,0xc8,0x50,0xb, 0x4, 0x80,0x4, 0xe4,0x80,0x1, 0xe4,0x7a,0xb3,0x78, +0x2b,0x7e,0x73,0x6d,0x93,0xbe,0x70,0x2, 0x50,0x2, 0x61,0x5d,0x7e,0xb3,0x6f,0x32, +0xb4,0x1, 0x2, 0x80,0x2, 0x61,0x5d,0x6d,0xee,0x6c,0x11,0x80,0x1a,0x12,0x9e,0xd9, +0x12,0x9b,0x5e,0x7d,0xd3,0xbd,0xde,0x8, 0xc, 0x7d,0xed,0x7a,0x93,0x6d,0x9b,0x7a, +0x3, 0x6d,0x9c,0x7c,0x81,0xb, 0x10,0x12,0x9e,0x6d,0x38,0xe1,0x6c,0x11,0x61,0x56, +0xbc,0x81,0x78,0x2, 0x61,0x54,0x7e,0x30,0x2, 0xac,0x31,0x9, 0xb1,0x6c,0x9, 0xf5, +0x2b,0x9, 0xb1,0x6c,0xa, 0xf5,0x2c,0x7e,0xa3,0x6d,0x9b,0x7a,0xa1,0x2d,0x7e,0xb3, +0x6d,0x9c,0xf5,0x2e,0xbe,0xa1,0x2b,0x28,0x4, 0xe5,0x2b,0x80,0x2, 0xe5,0x2d,0xf5, +0x27,0xe5,0x2d,0xbe,0xb1,0x2b,0x50,0x4, 0xe5,0x2b,0x80,0x2, 0xe5,0x2d,0xf5,0x29, +0xe5,0x2e,0xbe,0xb1,0x2c,0x28,0x4, 0xe5,0x2c,0x80,0x2, 0xe5,0x2e,0xf5,0x28,0xe5, +0x2e,0xbe,0xb1,0x2c,0x50,0x5, 0x7e,0xa1,0x2c,0x80,0x3, 0x7e,0xa1,0x2e,0x7a,0xa1, +0x2a,0xe5,0x27,0x1a,0xfb,0xe5,0x29,0x1a,0x1b,0x9d,0x1f,0xb, 0x14,0x7c,0xb3,0xf5, +0x2f,0xe5,0x28,0x1a,0x1b,0x1a,0x5a,0x9d,0x51,0xb, 0x54,0xf5,0x30,0x12,0x9b,0x65, +0x7d,0xf3,0xe5,0x30,0xbe,0xb1,0x2f,0x50,0x50,0xe5,0x28,0xbe,0xb0,0x0, 0x8, 0x2, +0x15,0x28,0x7e,0x73,0x6f,0x67,0xa, 0xc7,0x1b,0xc4,0xe5,0x2a,0x1a,0x1b,0xbd,0x1c, +0x58,0x2, 0x5, 0x2a,0x7e,0x91,0x29,0x12,0x9b,0x65,0x7d,0xe3,0x80,0x23,0x1b,0x90, +0x6d,0xdd,0x7e,0x1, 0x2a,0x80,0xe, 0x12,0x9b,0x5e,0xbd,0x3d,0x8, 0x5, 0x12,0x9b, +0x5e,0x7d,0xd3,0x1b,0x0, 0xe5,0x28,0xbc,0xb0,0x8, 0xec,0xbd,0xde,0x58,0x2, 0x7d, +0xed,0xe5,0x27,0xbc,0xb9,0x48,0xd7,0x80,0x4e,0xe5,0x27,0xbe,0xb0,0x0, 0x8, 0x2, +0x15,0x27,0x7e,0x73,0x6f,0x66,0xa, 0xc7,0x1b,0xc4,0xe5,0x29,0x1a,0x1b,0xbd,0x1c, +0x58,0x2, 0x5, 0x29,0x7e,0x1, 0x2a,0x12,0x9b,0x65,0x7d,0xe3,0x80,0x23,0x1b,0x0, +0x6d,0xdd,0x7e,0x91,0x29,0x80,0xe, 0x12,0x9b,0x5e,0xbd,0x3d,0x8, 0x5, 0x12,0x9b, +0x5e,0x7d,0xd3,0x1b,0x90,0xe5,0x27,0xbc,0xb9,0x8, 0xec,0xbd,0xde,0x58,0x2, 0x7d, +0xed,0xe5,0x28,0xbc,0xb0,0x48,0xd7,0x7d,0x3f,0x3e,0x34,0x3e,0x34,0x7e,0x24,0x0, +0xa, 0x12,0x22,0x71,0xbd,0x3e,0x58,0xc, 0x7e,0x73,0x78,0x2b,0xbe,0x70,0x28,0x50, +0x3, 0x12,0x6e,0x57,0xb, 0x10,0x12,0x9e,0x6d,0x28,0x2, 0x41,0x10,0x22,0x7c,0xb9, +0x7c,0x70,0x2, 0x9b,0x6a,0xe5,0x2b,0x7e,0x71,0x2c,0x12,0x9f,0x7f,0xb, 0x1a,0x30, +0x22,0xca,0x3b,0x12,0x9f,0xee,0xc2,0x2, 0x7e,0x34,0x22,0x23,0x7e,0x24,0x0, 0xff, +0xb, 0x1a,0xd0,0x7e,0x17,0x6d,0x99,0xbd,0x1d,0x58,0x4, 0x7d,0xd1,0xe, 0xd4,0x6c, +0xcc,0x81,0xe1,0x7e,0x30,0x2, 0xac,0x3c,0x9, 0xb1,0x6c,0x9, 0xf5,0x27,0x9, 0x71, +0x6c,0xa, 0x7a,0x71,0x28,0x12,0x9b,0x6a,0x7d,0xc3,0xbd,0xdc,0x8, 0x2, 0x81,0xdf, +0xbe,0xe1,0x27,0x38,0x2, 0x81,0xdf,0xbe,0xd1,0x28,0x38,0x2, 0x81,0xdf,0x7d,0x1c, +0xe, 0x14,0x7d,0xec,0xe, 0xe4,0xe, 0xe4,0x2d,0xe1,0x6d,0xff,0x12,0x9e,0xcd,0x85, +0x28,0x2c,0x80,0x2d,0x6c,0x99,0x7e,0xf1,0x27,0x80,0x1b,0x7c,0xbf,0x7e,0x71,0x2c, +0x12,0x9c,0xf3,0x18,0x9, 0xbd,0xc0,0x48,0x5, 0x12,0x9e,0x8e,0x80,0x6, 0xe5,0x2b, +0xbc,0xbf,0x58,0x7, 0x1b,0xf0,0xbe,0xf0,0x0, 0x58,0xe0,0x4c,0x99,0x68,0x9, 0x15, +0x2c,0xe5,0x2c,0xbe,0xb0,0x0, 0x58,0xcc,0x12,0x9e,0xba,0xbd,0x13,0x58,0x38,0x85, +0x28,0x2c,0x80,0x2c,0x12,0x9e,0xa8,0x7c,0x83,0x80,0x1b,0x7c,0xb8,0x7e,0x71,0x2c, +0x12,0x9c,0xf3,0x18,0x9, 0xbd,0xc0,0x48,0x5, 0x12,0x9e,0x86,0x80,0x6, 0xe5,0x2a, +0xbc,0xb8,0x28,0x6, 0xb, 0x80,0xbc,0xe8,0x38,0xe1,0x4c,0x99,0x68,0x9, 0x15,0x2c, +0xe5,0x2c,0xbe,0xb0,0x0, 0x58,0xcd,0x12,0x9e,0xcd,0xa, 0x3d,0x1b,0x34,0xe5,0x28, +0xa, 0x1b,0xbd,0x13,0x58,0x6e,0x12,0x9e,0xb1,0x80,0x2a,0x6c,0x99,0x7e,0xf1,0x27, +0x80,0x18,0x7c,0xbf,0x12,0x9c,0xf0,0x18,0x9, 0xbd,0xc0,0x48,0x5, 0x12,0x9e,0x8e, +0x80,0x6, 0xe5,0x2b,0xbc,0xbf,0x58,0x7, 0x1b,0xf0,0xbe,0xf0,0x0, 0x58,0xe3,0x4c, +0x99,0x68,0x7, 0x5, 0x29,0xbe,0xd1,0x29,0x38,0xd1,0x12,0x9e,0xba,0xbd,0x13,0x58, +0x33,0x12,0x9e,0xb1,0x80,0x29,0x12,0x9e,0xa8,0x7c,0x83,0x80,0x18,0x7c,0xb8,0x12, +0x9c,0xf0,0x18,0x9, 0xbd,0xc0,0x48,0x5, 0x12,0x9e,0x86,0x80,0x6, 0xe5,0x2a,0xbc, +0xb8,0x28,0x6, 0xb, 0x80,0xbc,0xe8,0x38,0xe4,0x4c,0x99,0x68,0x7, 0x5, 0x29,0xbe, +0xd1,0x29,0x38,0xd2,0x90,0x22,0x22,0xe4,0x93,0xa, 0x1b,0xbd,0x1f,0x38,0x10,0xd2, +0x2, 0xe5,0x27,0x7a,0xb3,0x78,0xd9,0xe5,0x28,0x7a,0xb3,0x78,0xda,0x80,0xc, 0xb, +0xc0,0x7e,0x73,0x6d,0x93,0xbc,0x7c,0x28,0x2, 0x61,0x93,0xa2,0x2, 0xda,0x3b,0x22, +0x7e,0x71,0x29,0x12,0x9b,0x6a,0x7d,0x3, 0xbd,0xe0,0x22,0x9, 0xb3,0x6e,0x2a,0x9, +0x73,0x6e,0x2b,0x7c,0x6f,0xca,0x3b,0x7c,0x96,0x7c,0x6b,0x7e,0xd0,0xff,0x75,0x3e, +0xff,0x12,0x9f,0xdf,0xc2,0x5, 0x7e,0x24,0x1, 0xf4,0x7e,0xb3,0x6d,0xbc,0xb4,0x1, +0x6, 0x12,0xd3,0x94,0xc3,0xc1,0x60,0xbe,0x90,0xa, 0x28,0x3, 0xc3,0xc1,0x60,0x7e, +0x10,0x3, 0x74,0x4, 0xac,0xb9,0x19,0x15,0x28,0xb9,0x7d,0xf2,0x7c,0xf6,0x7c,0xe7, +0xc2,0x3, 0xc2,0x4, 0x7c,0x1f,0x7a,0xf1,0x3a,0x80,0x8, 0x12,0x9e,0x7c,0x8, 0x8, +0x7a,0x11,0x3a,0x12,0x9e,0x96,0x58,0xf3,0x7c,0x1f,0x7a,0xf1,0x3b,0x80,0x8, 0x12, +0x9e,0x7c,0x8, 0x8, 0x7a,0x11,0x3b,0x12,0x9e,0xe6,0x48,0xf3,0x75,0x3d,0x0, 0x7e, +0xa3,0x6f,0x66,0x7c,0xba,0x14,0xbe,0xb1,0x3b,0x78,0x8, 0xd2,0x4, 0xa, 0x6a,0x1b, +0x64,0x80,0x8, 0xe5,0x3a,0x70,0x4, 0xd2,0x3, 0x6c,0xdd,0x7c,0xe, 0x7a,0xe1,0x3c, +0x20,0x4, 0xd, 0x30,0x3, 0x37,0x80,0x8, 0x12,0x9e,0x63,0x8, 0x8, 0x7a,0x1, 0x3c, +0x12,0x9e,0x9f,0x58,0xf3,0x7c,0xe, 0x7c,0x8e,0x80,0x7, 0x12,0x9e,0x63,0x8, 0x13, +0x7c,0x80,0x7c,0xb0,0x4, 0x7c,0xb, 0x1a,0x5b,0x7e,0x73,0x6f,0x65,0x1a,0x17,0xbd, +0x51,0x48,0xe8,0xe5,0x3c,0xa, 0xeb,0xa, 0x58,0x9d,0x5e,0xf5,0x3d,0xc2,0x2, 0x7c, +0xe, 0x7a,0xe1,0x3c,0x80,0xa, 0x7c,0xbf,0x12,0x9e,0x65,0x8, 0x8, 0x7a,0x1, 0x3c, +0x12,0x9e,0x9f,0x58,0xf1,0x75,0x3f,0x0, 0xe5,0x3c,0x70,0x4, 0xd2,0x2, 0xf5,0x3e, +0x7c,0x1f,0x7a,0xf1,0x3a,0x30,0x2, 0x33,0x80,0xa, 0x12,0x9e,0x74,0xbd,0x3f,0x8, +0x8, 0x7a,0x11,0x3a,0x12,0x9e,0x96,0x58,0xf1,0x7c,0x1f,0x7a,0xf1,0x3b,0x80,0xa, +0x12,0x9e,0x74,0xbd,0x3f,0x8, 0x8, 0x7a,0x11,0x3b,0x12,0x9e,0xe6,0x48,0xf1,0xe5, +0x3a,0xa, 0x1b,0xe5,0x3b,0xa, 0x5b,0x9d,0x51,0xf5,0x3f,0x7e,0x30,0x4, 0xac,0x39, +0x9, 0x81,0x28,0xb9,0xbe,0x81,0x3d,0x40,0x16,0xbe,0x81,0x3f,0x50,0x2, 0x80,0xf, +0x9, 0xb1,0x28,0xb8,0x60,0x13,0x20,0x4, 0x6, 0x20,0x3, 0x3, 0x30,0x2, 0xa, 0x74, +0x1, 0x19,0xb1,0x28,0xb8,0xd2,0x5, 0x80,0x5, 0xe4,0x19,0xb1,0x28,0xb8,0xa2,0x5, +0xda,0x3b,0x22,0x7c,0xbd,0x7c,0x70,0x12,0x9b,0x6a,0xbd,0x3f,0x22,0x7e,0x73,0x6d, +0x93,0xbc,0x71,0x22,0x7c,0xb1,0x7e,0x71,0x3e,0x2, 0x9b,0x6a,0x7c,0xb1,0x7c,0x7e, +0x12,0x9b,0x6a,0xbd,0x3f,0x22,0xb, 0xf4,0xb, 0x90,0x7a,0x81,0x2a,0x22,0xb, 0xf4, +0xb, 0x90,0x7a,0xf1,0x2b,0x22,0x7c,0xb1,0x14,0x7c,0x1b,0xbe,0xb0,0x0, 0x22,0x7c, +0xb0,0x14,0x7c,0xb, 0xbe,0xb0,0x0, 0x22,0x6c,0x99,0xe5,0x27,0xa, 0x1b,0xb, 0x14, +0x22,0xe5,0x28,0xa, 0x5b,0xb, 0x54,0xf5,0x29,0x22,0xa, 0x3e,0x1b,0x34,0xe5,0x27, +0xa, 0x1b,0x22,0x9d,0x32,0x12,0x24,0x5a,0xbe,0x34,0x0, 0x2, 0x22,0xe5,0x27,0xa, +0x5b,0xb, 0x54,0xf5,0x2a,0x85,0x27,0x2b,0x22,0x74,0x2, 0xac,0xb1,0x9, 0x95,0x6c, +0x9, 0x9, 0x5, 0x6c,0xa, 0x22,0x7c,0xb1,0x4, 0x7c,0x1b,0x1a,0xeb,0x7e,0x83,0x6f, +0x66,0x1a,0x18,0xbd,0xe1,0x22,0xd2,0x0, 0x6c,0x99,0x80,0x31,0x74,0x2, 0xac,0xb9, +0x9, 0x5, 0x76,0x7e,0x9, 0x15,0x76,0x7f,0x12,0x9f,0x73,0x49,0x25,0x76,0x41,0x7d, +0xf3,0x9d,0xf2,0xbe,0xf4,0x0, 0x0, 0x8, 0x4, 0x7d,0x1f,0x80,0x4, 0x6d,0x11,0x9d, +0x1f,0xbe,0x17,0x6d,0xac,0x28,0x4, 0xc2,0x0, 0x80,0xa, 0xb, 0x90,0x7e,0x83,0x76, +0x7d,0xbc,0x89,0x38,0xc7,0x20,0x0, 0x2d,0x6c,0x99,0x80,0x1d,0x74,0x2, 0xac,0xb9, +0x9, 0x5, 0x6c,0x9, 0x9, 0x15,0x6c,0xa, 0x12,0x9f,0x73,0x59,0x35,0x76,0x41,0x19, +0x5, 0x76,0x7e,0x19,0x15,0x76,0x7f,0xb, 0x90,0x7e,0x73,0x6d,0x93,0xbc,0x79,0x38, +0xdb,0x7a,0x73,0x76,0x7d,0x7e,0xb3,0x6d,0x93,0x70,0x5, 0xe4,0x7a,0xb3,0x76,0x7d, +0xa2,0x0, 0x22,0x7c,0xb0,0x7c,0x71,0x12,0x9b,0x6a,0x74,0x2, 0xac,0xb9,0x22,0x12, +0x9f,0x8d,0x7d,0x13,0x3e,0x14,0x7e,0x1f,0x24,0x68,0x2d,0x31,0x22,0x7c,0xa7,0x7e, +0x73,0x6f,0x65,0xac,0x7b,0xa, 0x2a,0x2d,0x32,0x22,0xe4,0x7a,0xb3,0x6d,0xb4,0x75, +0x27,0x0, 0x75,0x28,0x0, 0x7e,0xb3,0x6f,0x64,0xf5,0x29,0x7e,0xb3,0x6f,0x65,0xf5, +0x2a,0x7e,0x8, 0x0, 0x27,0x7e,0x37,0x6f,0x42,0x12,0xce,0x94,0xe4,0x33,0x7a,0xb3, +0x6d,0xb4,0xe4,0x7a,0xb3,0x6d,0xbd,0x12,0xce,0x82,0x33,0x7a,0xb3,0x6d,0xbd,0x74, +0x1, 0x7a,0xb3,0x6d,0xbe,0x12,0x9e,0xf6,0xe4,0x33,0x7a,0xb3,0x6d,0xbe,0x22,0xc2, +0x2, 0xc2,0x3, 0xc2,0x4, 0x22,0xe5,0x29,0x7e,0x71,0x2a,0x2, 0x9b,0x6a,0x7e,0xe3, +0x6f,0x64,0x7e,0xd3,0x6f,0x65,0x22,0x6d,0x11,0x7d,0x21,0x7d,0x31,0x80,0x1f,0x7d, +0x1, 0x3e,0x4, 0x7e,0x2f,0x24,0x60,0x2d,0x50,0xb, 0x2a,0x0, 0xbe,0x4, 0x27,0x10, +0x28,0x2, 0xb, 0x24,0xbe,0x4, 0xb, 0xb8,0x50,0x2, 0xb, 0x34,0xb, 0x14,0x7e,0x7, +0x73,0xd6,0xbd,0x1, 0x38,0xd9,0xbe,0x24,0x0, 0xb4,0x28,0x7, 0x7e,0xb3,0x78,0x25, +0x4, 0x80,0x12,0xbe,0x34,0x0, 0x32,0x28,0xb, 0x7e,0xb3,0x78,0x28,0x4, 0x7a,0xb3, +0x78,0x28,0x80,0x5, 0xe4,0x7a,0xb3,0x78,0x25,0x7e,0x73,0x78,0x25,0xbe,0x70,0x2, +0x40,0x7, 0x74,0xaa,0x7a,0xb3,0x77,0x2c,0x22,0x7e,0x73,0x78,0x28,0xbe,0x70,0x4, +0x40,0x3, 0x75,0xe9,0xff,0x22,0x7c,0xab,0x7e,0x70,0x2, 0xac,0x7a,0x9, 0xb3,0x6c, +0x9, 0x9, 0x73,0x6c,0xa, 0x2, 0x9b,0x6a,0xca,0x3b,0x7c,0xf4,0x7a,0x51,0x2c,0x7c, +0xe6,0x7c,0xd7,0x7c,0xcb,0x75,0x36,0x0, 0x75,0x37,0x0, 0x75,0x38,0x0, 0x75,0x39, +0x0, 0x75,0x3a,0x0, 0x75,0x3b,0x0, 0x75,0x40,0x0, 0x7e,0x37,0x6f,0x54,0x7a,0x35, +0x41,0x6c,0xaa,0x7e,0x71,0x2c,0x74,0x9, 0xac,0x7b,0x19,0xa3,0x6c,0x8a,0xe4,0x19, +0xb3,0x6c,0x8b,0x7e,0x13,0x6f,0x64,0x7e,0xb3,0x6f,0x65,0xf5,0x35,0x12,0xa7,0xd5, +0xf5,0x33,0x9, 0xb3,0x6c,0xa, 0xf5,0x34,0x7c,0xbe,0x12,0xa0,0x66,0x12,0xa7,0xc6, +0x7a,0x35,0x41,0x7e,0x37,0x6f,0x54,0xbe,0x35,0x41,0x8, 0x3, 0x7a,0x35,0x41,0xe5, +0x33,0x7c,0x71,0x7c,0x6c,0x7e,0x8, 0x0, 0x38,0x12,0xa3,0x39,0xf5,0x36,0xe5,0x34, +0x7e,0x71,0x35,0x7c,0x6d,0x7e,0x8, 0x0, 0x39,0x12,0xa3,0x39,0xf5,0x37,0xbe,0xf0, +0x1, 0xe5,0x38,0x7e,0x71,0x39,0x78,0xb, 0x12,0x9f,0x8d,0x3e,0x34,0x2e,0x34,0x20, +0x54,0x80,0x3, 0x12,0x9f,0x7f,0x7a,0x35,0x3e,0x7a,0x37,0x63,0x73,0x7e,0x34,0x24, +0xbc,0x7a,0x37,0x63,0x75,0xe5,0x38,0x7a,0xb3,0x63,0x6d,0xe5,0x39,0x7a,0xb3,0x63, +0x6e,0xe5,0x36,0x7a,0xb3,0x63,0x6f,0xe5,0x37,0x7a,0xb3,0x63,0x70,0x7e,0x73,0x6f, +0x3f,0x7a,0x73,0x63,0x71,0xe4,0x7a,0xb3,0x63,0x72,0x7e,0x8, 0x63,0x6d,0x12,0x8, +0x73,0x7e,0x37,0x24,0xbc,0x7d,0x23,0x6d,0x33,0x7e,0xb7,0x24,0xbe,0x6d,0xaa,0x2f, +0x51,0x7e,0x37,0x24,0xc0,0x6d,0x22,0x7d,0x3, 0x6d,0x11,0x7e,0x37,0x24,0xc2,0x2f, +0x10,0x7a,0x1d,0x2d,0x7e,0x37,0x24,0xc4,0x7d,0x23,0x6d,0x33,0x7e,0x97,0x24,0xc6, +0x6d,0x88,0x2f,0x41,0x7f,0x65,0xe5,0x36,0xa, 0x4b,0xe5,0x38,0xa, 0x5b,0x2d,0x54, +0xf5,0x3a,0xe5,0x37,0xa, 0x4b,0xe5,0x39,0xa, 0x5b,0x2d,0x54,0xf5,0x3b,0x85,0x38, +0x31,0x41,0x89,0x85,0x39,0x32,0x41,0x7e,0xbe,0xf0,0x1, 0x78,0x15,0xe5,0x35,0x7e, +0x71,0x31,0xac,0x7b,0xe5,0x32,0xa, 0x2b,0x2d,0x32,0x3e,0x34,0x49,0x33,0x20,0x54, +0x80,0x8, 0xe5,0x31,0x7e,0x71,0x32,0x12,0x9b,0x6a,0x7e,0x53,0x6f,0x3f,0xa, 0x25, +0x9d,0x32,0x12,0xa7,0xcd,0x18,0x2, 0x41,0x7c,0x7e,0x35,0x41,0xbe,0x35,0x3c,0x18, +0x2, 0x5, 0x40,0xe5,0x33,0xa, 0x1b,0xe5,0x31,0x12,0xa3,0x2e,0x8, 0x4, 0x9d,0x31, +0x80,0x4, 0x6d,0x33,0x9d,0x32,0xbe,0x34,0x0, 0x1, 0x18,0x19,0xe5,0x34,0xa, 0x1b, +0xe5,0x32,0x12,0xa3,0x2e,0x8, 0x4, 0x9d,0x31,0x80,0x4, 0x6d,0x33,0x9d,0x32,0xbe, +0x34,0x0, 0x1, 0x8, 0x67,0xbe,0xc0,0x3, 0x40,0x9, 0xbe,0xd0,0x3, 0x40,0x4, 0xd2, +0x0, 0x80,0x2, 0xc2,0x0, 0xe5,0x31,0x7e,0x71,0x32,0x7c,0x6e,0x12,0xdf,0xd1,0x7c, +0x9b,0xbe,0x90,0x2, 0x68,0x5, 0xbe,0x90,0x3, 0x78,0x8, 0x7e,0x35,0x3c,0xe, 0x34, +0x7a,0x35,0x3c,0xbe,0x90,0x2, 0x68,0xa, 0xbe,0x90,0x1, 0x68,0x5, 0xbe,0x90,0x3, +0x78,0x2a,0x7e,0xf5,0x3c,0x12,0xa3,0x18,0xe5,0x31,0x12,0xa3,0x1f,0x7f,0x1, 0x7e, +0x1d,0x2d,0x9f,0x10,0x7a,0x1d,0x2d,0x12,0xa3,0x18,0xe5,0x32,0x12,0xa3,0x1f,0x9f, +0x41,0x12,0xa3,0x18,0x9f,0x51,0x1a,0x26,0x1a,0x24,0x9f,0x61,0x5, 0x32,0xe5,0x3b, +0xbe,0xb1,0x32,0x28,0x2, 0x21,0xa8,0x5, 0x31,0xe5,0x3a,0xbe,0xb1,0x31,0x28,0x2, +0x21,0xa3,0xbe,0x58,0x0, 0x0, 0x78,0x2, 0xb, 0x5c,0xbe,0x68,0x0, 0x0, 0x78,0x2, +0xb, 0x6c,0x74,0x6, 0x7e,0x1d,0x2d,0x2f,0x11,0x14,0x78,0xfb,0x7a,0x1d,0x2d,0x7f, +0x5, 0x12,0xa3,0x26,0x7e,0xf1,0x2c,0x74,0x9, 0xac,0xfb,0x59,0x37,0x6c,0x85,0x74, +0x6, 0x2f,0x44,0x14,0x78,0xfb,0x7f,0x14,0x7f,0x6, 0x12,0xa3,0x26,0x59,0x37,0x6c, +0x87,0x7e,0xb3,0x6f,0x53,0x60,0xd, 0x1e,0xd4,0x1e,0xc4,0x50,0x4, 0x4e,0xd4,0x80, +0x0, 0x14,0x78,0xf3,0xbe,0x68,0x0, 0x7f,0x28,0x4, 0x7e,0x68,0x0, 0x7f,0x7d,0x3d, +0x19,0x77,0x6c,0x8a,0xe5,0x40,0x19,0xb7,0x6c,0x8b,0x9, 0x77,0x6c,0x8b,0xbe,0x70, +0x2d,0x28,0x6, 0x74,0x2d,0x19,0xb7,0x6c,0x8b,0xe5,0x33,0x19,0xb7,0x6c,0x8c,0xe5, +0x34,0x19,0xb7,0x6c,0x8d,0xda,0x3b,0x22,0x7d,0x3f,0x1a,0x26,0x1a,0x24,0x22,0xa, +0x1b,0x6d,0x0, 0x2, 0x22,0xa3,0x12,0x22,0xbf,0x2e,0x18,0x0, 0x20,0x22,0xa, 0x3b, +0x7d,0x23,0x9d,0x21,0xbe,0x24,0x0, 0x0, 0x22,0xca,0xf8,0x7c,0xf6,0x7c,0x87,0x7c, +0x9b,0xa, 0x2f,0x7d,0x32,0x3e,0x34,0xb, 0x34,0x7c,0xb7,0xbc,0xf9,0x38,0x14,0xa, +0xf8,0x1b,0xf4,0xa, 0x3f,0x9d,0xf3,0xa, 0x39,0xbd,0x3f,0x18,0x6, 0x7c,0xab,0xa, +0x39,0x80,0x1d,0xbc,0xf9,0x28,0xd, 0xa, 0x39,0xa, 0x5f,0x2d,0x53,0xb, 0x54,0x7c, +0xab,0xe4,0x80,0x10,0xa, 0x3f,0xa, 0x58,0x2d,0x53,0xa, 0x39,0x9d,0x53,0x7c,0xab, +0x9d,0x32,0x7c,0xb7,0x7a,0xb, 0xb0,0x7c,0xba,0xda,0xf8,0x22,0xca,0x3b,0x7c,0xf5, +0x7c,0xe6,0x7c,0x6b,0x74,0x2, 0xac,0xbe,0x9, 0xc5,0x6c,0x9, 0x9, 0xd5,0x6c,0xa, +0x7e,0xb3,0x78,0xbd,0xb4,0x1, 0x18,0x7e,0x53,0x6d,0x93,0xbe,0x50,0x1, 0x68,0x5, +0xbe,0x50,0x2, 0x28,0xa, 0x7c,0xb6,0x7c,0x6e,0x7c,0x5f,0x6c,0x44,0x80,0x1d,0x7c, +0xbc,0x7c,0x7d,0x12,0xa6,0x10,0x12,0xa3,0xe2,0x7c,0xbc,0x7c,0x7d,0x12,0xa6,0x81, +0x74,0x6, 0x7e,0x70,0x6, 0x7c,0x6e,0x7c,0x5f,0x7e,0x40,0x1, 0x12,0xa0,0x78,0xda, +0x3b,0x22,0xca,0x79,0xc2,0x0, 0x7e,0x7, 0x74,0x84,0xb, 0x4, 0x7d,0x40,0xe, 0x44, +0xe, 0x44,0x9f,0x11,0x6d,0xff,0x6d,0x11,0x6c,0xee,0x6c,0xff,0x1a,0x5f,0x3e,0x54, +0x1a,0xce,0x7e,0xd4,0x0, 0x1a,0xad,0xdc,0x2d,0x5d,0x49,0xe5,0x73,0xdc,0xbd,0x4e, +0x58,0x10,0xbd,0xe, 0x8, 0xc, 0x7d,0x5e,0x7d,0xde,0x1a,0x5a,0x1a,0xca,0x2f,0x16, +0xb, 0x14,0xb, 0xf0,0xbe,0xf0,0xd, 0x78,0xd3,0xb, 0xe0,0xbe,0xe0,0xd, 0x78,0xca, +0xbe,0x14,0x0, 0x0, 0x28,0x5, 0x12,0x22,0xbd,0x7d,0xf3,0x7e,0x8, 0x63,0x6d,0x12, +0xa6,0x70,0x6c,0xee,0x6c,0xff,0x1a,0xef,0x3e,0xe4,0x1a,0x2e,0x7e,0x34,0x0, 0x1a, +0xad,0x32,0x7d,0x23,0x2d,0x2e,0x49,0xe2,0x73,0xdc,0xbe,0xe4,0x0, 0x0, 0x8, 0x10, +0x7d,0x3e,0x9d,0x3f,0xbe,0x34,0x0, 0x0, 0x58,0x2, 0x6d,0x33,0x59,0x32,0x63,0x6d, +0xb, 0xf0,0xbe,0xf0,0xd, 0x78,0xcf,0xb, 0xe0,0xbe,0xe0,0xd, 0x78,0xc6,0x7e,0x8, +0x64,0xbf,0x7e,0x34,0x0, 0xa9,0xe4,0x12,0x24,0x38,0x74,0x1, 0x7a,0xb3,0x65,0x13, +0x7e,0xf0,0x6, 0x7e,0xe0,0x6, 0x12,0xa5,0xe6,0xb4,0x1, 0x3, 0x12,0xa5,0x38,0x1b, +0xe0,0xbe,0xe0,0x0, 0x58,0xf0,0x1b,0xf0,0xbe,0xf0,0x0, 0x58,0xe6,0x7e,0xf0,0x6, +0x7e,0xe0,0x7, 0x12,0xa5,0xe6,0xb4,0x1, 0x3, 0x12,0xa5,0x38,0xb, 0xe0,0xbe,0xe0, +0xd, 0x78,0xf0,0x1b,0xf0,0xbe,0xf0,0x0, 0x58,0xe6,0x7e,0xf0,0x7, 0x7e,0xe0,0x6, +0x12,0xa5,0xe6,0xb4,0x1, 0x3, 0x12,0xa5,0x38,0x1b,0xe0,0xbe,0xe0,0x0, 0x58,0xf0, +0xb, 0xf0,0xbe,0xf0,0xd, 0x78,0xe6,0x7e,0xf0,0x7, 0x7e,0xe0,0x7, 0x12,0xa5,0xe6, +0xb4,0x1, 0x3, 0x12,0xa5,0x38,0xb, 0xe0,0xbe,0xe0,0xd, 0x78,0xf0,0xb, 0xf0,0xbe, +0xf0,0xd, 0x78,0xe6,0x6c,0xee,0x6c,0xff,0x1a,0x2e,0x7e,0x34,0x0, 0xd, 0xad,0x32, +0x1a,0x2f,0x2d,0x32,0x9, 0xb3,0x64,0xbf,0x70,0xd, 0x6d,0x33,0x3e,0x24,0x1a,0xe, +0x12,0xa6,0x78,0x59,0x32,0x73,0xdc,0xb, 0xf0,0xbe,0xf0,0xd, 0x78,0xda,0xb, 0xe0, +0xbe,0xe0,0xd, 0x48,0xd1,0xda,0x79,0x22,0x7e,0x18,0x63,0x6d,0x7a,0x1d,0x2c,0x7c, +0xbe,0x7c,0x7f,0x7e,0x8, 0x64,0xbf,0x7c,0xa7,0x7c,0x5b,0xbe,0x50,0x0, 0x28,0x1f, +0x12,0xa5,0xf7,0x2d,0xf3,0x2e,0xf4,0xff,0xe6,0x12,0xa6,0x8, 0x8, 0x4, 0x74,0x1, +0x80,0x2, 0x74,0x2, 0x7f,0x70,0x2d,0xf4,0x2e,0xf4,0xff,0xf3,0x7a,0x7b,0xb0,0xbe, +0xa0,0x0, 0x28,0x1b,0x12,0xa5,0xf7,0x2d,0xf3,0x1b,0xf5,0x12,0xa6,0x8, 0x8, 0x4, +0x74,0x1, 0x80,0x2, 0x74,0x2, 0x7f,0x70,0x2d,0xf4,0x1b,0xf4,0x7a,0x7b,0xb0,0xbe, +0x50,0xc, 0x50,0x1d,0x12,0xa5,0xf7,0x2d,0xf3,0x69,0x37,0x0, 0x1a,0xbe,0x34,0x0, +0x0, 0x8, 0x4, 0x74,0x1, 0x80,0x2, 0x74,0x2, 0x7f,0x70,0x2d,0xf4,0x39,0xb7,0x0, +0xd, 0xbe,0xa0,0xc, 0x50,0x2f,0x7e,0x70,0xd, 0xac,0x75,0xa, 0x4a,0x2d,0x34,0x7d, +0x43,0x3e,0x44,0x7e,0x7d,0x2c,0x2d,0xf4,0x69,0x47,0x0, 0x2, 0xbe,0x44,0x0, 0x0, +0x8, 0x9, 0x74,0x1, 0x2d,0x13,0x39,0xb0,0x0, 0x1, 0x22,0x74,0x2, 0x2d,0x31,0x7d, +0x20,0x39,0xb1,0x0, 0x1, 0x22,0x1a,0xe, 0x7e,0x14,0x0, 0xd, 0xad,0x10,0x1a,0x3f, +0x2d,0x31,0x9, 0xb3,0x64,0xbf,0x22,0x7e,0x90,0xd, 0xac,0x95,0xa, 0x3a,0x2d,0x43, +0x7d,0x34,0x3e,0x34,0x7e,0x7d,0x2c,0x22,0xb, 0x7a,0x30,0xbe,0x34,0x0, 0x0, 0x22, +0xca,0xf8,0x7c,0xa7,0x7c,0xfb,0x7e,0x8, 0x73,0xdc,0x12,0xa6,0x70,0x74,0xfa,0x7e, +0x70,0xfa,0x1a,0x1b,0xa, 0xf, 0x2d,0x1, 0xbe,0x4, 0x0, 0x0, 0x48,0x32,0x12,0xa6, +0xe6,0x58,0x2d,0x1a,0x17,0xa, 0x4a,0x2d,0x41,0xbe,0x44,0x0, 0x0, 0x48,0x21,0x7e, +0x63,0x6f,0x65,0xa, 0x16,0xbd,0x41,0x58,0x17,0xad,0x10,0x2d,0x41,0x3e,0x44,0x49, +0x44,0x4, 0x0, 0x1a,0x27,0x3e,0x24,0x1a,0xb, 0x12,0xa6,0x78,0x59,0x42,0x74,0x84, +0xb, 0x70,0xbe,0x70,0x6, 0x8, 0xbb,0x4, 0xbe,0xb0,0x6, 0x8, 0xb2,0xda,0xf8,0x22, +0x7e,0x34,0x1, 0x52,0xe4,0x2, 0x24,0x38,0x7e,0x14,0x0, 0x1a,0xad,0x10,0x2d,0x21, +0x22,0xca,0xf8,0x7c,0xa7,0x7c,0xfb,0x7e,0x8, 0x20,0x54,0x12,0x65,0x91,0x74,0xfa, +0x7e,0x70,0xfa,0x1a,0x1b,0xa, 0xf, 0x2d,0x1, 0xbe,0x4, 0x0, 0x0, 0x48,0x37,0x12, +0xa6,0xe6,0x58,0x32,0x1a,0x17,0xa, 0x2a,0x2d,0x21,0xbe,0x24,0x0, 0x0, 0x48,0x26, +0x7e,0x63,0x6f,0x65,0xa, 0x16,0xbd,0x21,0x58,0x1c,0x1a,0x47,0x3e,0x44,0x1a,0xeb, +0x7e,0xf4,0x0, 0x1a,0xad,0xfe,0x2d,0x4f,0x49,0x44,0x74,0x84,0xad,0x10,0x2d,0x21, +0x3e,0x24,0x59,0x42,0x20,0x54,0xb, 0x70,0xbe,0x70,0x6, 0x8, 0xb6,0x4, 0xbe,0xb0, +0x6, 0x8, 0xad,0xda,0xf8,0x22,0x7e,0x63,0x6f,0x64,0xa, 0x16,0xbd,0x1, 0x22,0xca, +0x3b,0x6c,0xff,0xc2,0x0, 0x7e,0xb3,0x6f,0x57,0x60,0x6, 0x7e,0xd4,0x1, 0xc2,0x80, +0x4, 0x7e,0xd4,0x3, 0xe8,0x7e,0xb3,0x6f,0x58,0xb4,0x1, 0x4, 0x7e,0xd4,0x0, 0xf0, +0x7e,0xc7,0x6d,0x99,0x6c,0xee,0xe1,0xad,0xc2,0x0, 0x7c,0xbe,0x12,0xa0,0x66,0x7d, +0xb3,0x7e,0x90,0x2, 0xac,0x9e,0x9, 0xa4,0x6c,0x9, 0x7c,0xda,0x9, 0xc4,0x6c,0xa, +0x7d,0xad,0x4c,0xdd,0x68,0x16,0x7e,0xb3,0x6f,0x66,0x14,0xbc,0xbd,0x68,0xd, 0x4c, +0xcc,0x68,0x9, 0x7e,0xb3,0x6f,0x67,0x14,0xbc,0xbc,0x78,0x8, 0x7d,0xad,0x1e,0xa4, +0x2e,0xa4,0x0, 0x64,0x7c,0xba,0x12,0xa7,0xe9,0xbd,0x3b,0x58,0x4, 0xd2,0x0, 0x80, +0x26,0x7e,0x73,0x6f,0x32,0xbe,0x73,0x6d,0x93,0x78,0x1c,0x7e,0x37,0x3, 0xfe,0xe, +0x34,0xbd,0x3c,0x58,0x12,0x7c,0xbe,0x7e,0x70,0x1, 0x12,0xd1,0x93,0x7d,0x1a,0x6d, +0x0, 0xbf,0x10,0x8, 0x2, 0xd2,0x0, 0x30,0x0, 0x21,0x7c,0xbe,0x12,0x6e,0x5, 0x60, +0x1a,0x7e,0x34,0x0, 0x9, 0xca,0x39,0xac,0x7e,0x2e,0x34,0x6c,0x85,0x6d,0x22,0x12, +0xa7,0xdf,0x6d,0x0, 0x12,0x24,0x13,0x1b,0xfd,0xb, 0xf0,0xb, 0xe0,0x12,0x6f,0xa9, +0x28,0x2, 0xe1,0x18,0x7a,0x73,0x6d,0xa8,0x7a,0xf3,0x6f,0x31,0x7a,0xc7,0x3, 0xfe, +0xda,0x3b,0x22,0x2, 0xa6,0xef,0x7e,0x24,0x0, 0x3, 0x2, 0x22,0x71,0x7a,0x35,0x3c, +0xbe,0x34,0x0, 0x0, 0x22,0x7e,0x70,0x2, 0xac,0x7e,0x9, 0xb3,0x6c,0x9, 0x22,0x7e, +0x30,0x9, 0xac,0x3f,0x2e,0x14,0x6d,0xc9,0x22,0x7e,0x37,0x6f,0x40,0x7e,0x53,0x6f, +0x66,0xbc,0x5b,0x38,0x4, 0x7e,0x37,0x6f,0x46,0x22,0x7f,0x20,0xb, 0x2a,0x10,0xb, +0x1a,0x0, 0x1b,0x2a,0x0, 0x1b,0x1a,0x10,0x22,0x7c,0xab,0x7e,0xb3,0x6d,0xa9,0x7e, +0x93,0x6d,0x93,0x60,0x4a,0xb4,0x1, 0x5, 0xbe,0x90,0x2, 0x68,0x42,0x74,0x9, 0xa4, +0x9, 0xa5,0x6c,0x8b,0xbe,0x90,0x1, 0x78,0x24,0xbe,0xa0,0x19,0x28,0x7, 0x74,0x6, +0x7a,0xb, 0xb0,0x80,0x27,0xbe,0xa0,0x14,0x28,0x7, 0x74,0x5, 0x7a,0xb, 0xb0,0x80, +0x1b,0xbe,0xa0,0xa, 0x28,0x19,0x74,0x4, 0x7a,0xb, 0xb0,0x80,0xf, 0xbe,0x90,0x2, +0x78,0xd, 0xbe,0xa0,0x14,0x28,0x8, 0x74,0x4, 0x7a,0xb, 0xb0,0x7a,0x1b,0xb0,0x22, +0xca,0x3b,0x6c,0xff,0x6c,0xee,0x7e,0xb3,0x6f,0x66,0xf5,0x2b,0x7e,0xd3,0x6f,0x67, +0xe4,0x7a,0xb3,0x75,0x2f,0x7e,0xb3,0x25,0xae,0xb4,0x1, 0x2, 0x80,0x2, 0x21,0x6a, +0x6c,0xcc,0x21,0x58,0x7e,0x70,0x2, 0xac,0x7c,0x12,0xa9,0x70,0x75,0x27,0x3, 0x75, +0x28,0x3, 0x12,0x9f,0xe6,0xbe,0x37,0x6f,0x42,0x58,0x2, 0x21,0x56,0x7e,0x73,0x6d, +0x93,0xbe,0x70,0x5, 0x28,0x6, 0x75,0x27,0x2, 0x75,0x28,0x2, 0xe5,0x29,0xbe,0xb0, +0x1, 0x68,0x9, 0xe5,0x2b,0x24,0xfe,0xbe,0xb1,0x29,0x78,0x3, 0x75,0x27,0x2, 0xe5, +0x2a,0xbe,0xb0,0x1, 0x68,0x9, 0x7c,0xbd,0x24,0xfe,0xbe,0xb1,0x2a,0x78,0x3, 0x75, +0x28,0x2, 0xe5,0x29,0x60,0x8, 0xe5,0x2b,0x14,0xbe,0xb1,0x29,0x78,0x3, 0x75,0x27, +0x2, 0xe5,0x2a,0x60,0x8, 0x7c,0xbd,0x14,0xbe,0xb1,0x2a,0x78,0x3, 0x75,0x28,0x2, +0xc2,0x0, 0xe5,0x29,0x7e,0x71,0x2a,0x7c,0x6c,0x12,0xdf,0xd1,0xbe,0xb0,0xff,0x68, +0x6, 0x75,0x27,0x2, 0x75,0x28,0x2, 0x7c,0xbc,0x7e,0x8, 0x0, 0x27,0x7e,0x18,0x0, +0x28,0x12,0xa8,0x9, 0x7e,0xb3,0x6f,0x57,0x60,0x6, 0x75,0x27,0x4, 0x75,0x28,0x4, +0xe5,0x27,0x7e,0x71,0x28,0x7c,0x6c,0x7c,0x5e,0x12,0xa3,0x8c,0x7e,0x70,0x9, 0xac, +0x7e,0x9, 0x53,0x6c,0x8b,0xbc,0x5f,0x28,0x2, 0x7c,0xf5,0x90,0x21,0xd9,0xe4,0x93, +0xb4,0x1, 0x11,0x7d,0x13,0x2e,0x14,0x6c,0x85,0x6d,0x0, 0x2e,0x34,0x6c,0x87,0x6d, +0x22,0x12,0xa7,0xfa,0xb, 0xe0,0xb, 0xc0,0x7e,0x73,0x6d,0x93,0xbc,0x7c,0x28,0x2, +0x1, 0x84,0x7a,0xe3,0x6d,0x93,0x7a,0xf3,0x75,0x2f,0xda,0x3b,0x22,0x2, 0xa8,0x60, +0x9, 0xb3,0x6c,0x9, 0xf5,0x29,0x9, 0xb3,0x6c,0xa, 0xf5,0x2a,0x22,0xca,0x3b,0x7c, +0xfb,0x12,0x9f,0xdf,0x7e,0x94,0x0, 0x51,0x7e,0xe3,0x6d,0x93,0xe4,0x7a,0xb3,0x75, +0xff,0x7a,0xb3,0x76,0x0, 0x7a,0xb3,0x75,0xc1,0x7e,0x8, 0x76,0x1, 0x12,0xac,0x4c, +0xe4,0x12,0x24,0x38,0x12,0xac,0x4c,0x3e,0x34,0x7e,0x8, 0x75,0xc2,0xe4,0x12,0x24, +0x38,0xbe,0xe0,0x2, 0x50,0x2, 0x81,0x33,0x6c,0xdd,0x81,0x2d,0x74,0x2, 0x7c,0x7d, +0xac,0x7b,0x12,0xa9,0x70,0x4c,0xdd,0x68,0x8, 0xa, 0x8d,0x9, 0xb8,0x76,0x1, 0x70, +0xa, 0xa, 0x3d,0xb, 0x34,0xa, 0x8d,0x19,0x78,0x76,0x1, 0xa, 0x5d,0xb, 0x54,0xf5, +0x27,0x81,0x24,0x7e,0xa1,0x27,0x74,0x2, 0x7c,0x7a,0xac,0x7b,0x9, 0xa3,0x6c,0x9, +0x7a,0xa1,0x2b,0x9, 0xb3,0x6c,0xa, 0xf5,0x2c,0xa, 0x2a,0xe5,0x29,0x12,0x85,0xe0, +0x8, 0x6, 0x7d,0x50,0x9d,0x52,0x80,0x4, 0x6d,0x55,0x9d,0x53,0xf5,0x2d,0xe5,0x2c, +0xa, 0x2b,0xe5,0x2a,0x12,0x85,0xe0,0x8, 0x6, 0x7d,0x80,0x9d,0x82,0x80,0x4, 0x6d, +0x88,0x9d,0x83,0x7d,0x38,0x7c,0xc7,0xe5,0x2d,0xbe,0xb0,0x6, 0x40,0x2, 0x81,0x22, +0xbe,0xc0,0x6, 0x40,0x2, 0x81,0x22,0x12,0x9f,0xe6,0x7a,0x35,0x2f,0x12,0x9b,0x65, +0x7d,0x83,0x7e,0x25,0x2f,0xbd,0x28,0x8, 0x4, 0x7d,0x38,0x80,0x3, 0x7e,0x35,0x2f, +0x7a,0x35,0x31,0xbd,0x28,0x58,0x4, 0x7d,0x38,0x80,0x3, 0x7e,0x35,0x2f,0x7a,0x35, +0x33,0x75,0x2e,0x0, 0xe5,0x2d,0xbe,0xb0,0x1, 0x38,0x21,0xbe,0xc0,0x1, 0x38,0x1c, +0x7c,0xbf,0x30,0xe0,0x17,0x7e,0xb3,0x75,0xc1,0x4, 0x7a,0xb3,0x75,0xc1,0x75,0x2e, +0x1, 0x7e,0xb3,0x75,0xff,0x4, 0x7a,0xb3,0x75,0xff,0x61,0xc6,0xe5,0x2d,0xbe,0xb0, +0x1, 0x38,0x7, 0xbe,0xc0,0x1, 0x38,0x2, 0x61,0xc6,0xe5,0x2d,0xbe,0xb0,0x6, 0x40, +0x2, 0x61,0xc6,0xbe,0xc0,0x6, 0x40,0x2, 0x61,0xc6,0x7c,0xbf,0x20,0xe1,0x2, 0x61, +0xc6,0xc2,0x3, 0xe5,0x2d,0xbe,0xb0,0x2, 0x28,0x5, 0xbe,0xc0,0x2, 0x38,0x2, 0xd2, +0x3, 0x12,0xac,0x53,0x12,0xd4,0x92,0x12,0x87,0x4c,0x7a,0xd, 0x3b,0x7d,0x38,0x2e, +0x35,0x2f,0x12,0xae,0x4f,0x7a,0x35,0x35,0xc2,0x2, 0xbe,0x8, 0x7f,0xff,0x78,0x5, +0x9f,0x11,0x7a,0x1d,0x3b,0x7e,0x35,0x35,0x7a,0x35,0x44,0x12,0xac,0x53,0x7e,0xd, +0x3b,0x12,0xad,0x38,0x92,0x4, 0x12,0xaf,0x58,0x92,0x1, 0x7e,0x35,0x33,0x12,0xac, +0x39,0x20,0x1, 0x1a,0xe5,0x2d,0xbe,0xb0,0x4, 0x38,0x13,0xbe,0xc0,0x4, 0x38,0xe, +0xa, 0x2c,0xe5,0x2d,0xa, 0x3b,0x12,0xac,0x45,0x18,0x3, 0x12,0xac,0x36,0x85,0x2a, +0x44,0x85,0x2b,0x45,0x85,0x2c,0x46,0x7e,0x8, 0x0, 0x3f,0x7e,0x18,0x0, 0x41,0xe5, +0x29,0x12,0xaf,0x3, 0xe5,0x2d,0xa, 0x4b,0xbe,0x45,0x41,0x8, 0x7, 0xa, 0x3c,0xbe, +0x35,0x41,0x18,0x8, 0x12,0xac,0x41,0x18,0x3, 0x7e,0x95,0x3f,0x7e,0x5, 0x41,0xbe, +0x4, 0x0, 0x3, 0x78,0x5, 0x7e,0x35,0x33,0x80,0x14,0xbe,0x4, 0x0, 0x4, 0x78,0x5, +0x7e,0x35,0x35,0x80,0x9, 0xbe,0x4, 0x0, 0x5, 0x78,0x6, 0x7e,0x35,0x31,0x12,0xac, +0x39,0x7e,0xb3,0x77,0xf, 0xb4,0x1, 0x4, 0x7e,0x94,0x0, 0x3c,0x7e,0xb3,0x6f,0x57, +0x60,0x18,0x12,0xac,0x36,0xe5,0x2d,0xbe,0xb0,0x2, 0x38,0xe, 0xbe,0xc0,0x2, 0x38, +0x9, 0x12,0xac,0x41,0x18,0x4, 0x7e,0x94,0x0, 0x32,0x7d,0x19,0x1a,0x2, 0x1a,0x0, +0x7e,0x1d,0x37,0x12,0x22,0xa3,0x7e,0x8, 0x0, 0x64,0x12,0x23,0x10,0x7f,0x1, 0x7e, +0x1d,0x3b,0xbf,0x10,0x8, 0x2, 0xd2,0x2, 0x30,0x4, 0x5, 0x20,0x3, 0x2, 0xc2,0x2, +0x30,0x2, 0x3, 0x75,0x2e,0x2, 0xe5,0x2e,0xbe,0xb0,0x0, 0x28,0x55,0xe5,0x27,0xa, +0x4b,0x9, 0x14,0x76,0x1, 0xa5,0xb9,0x0, 0xc, 0xa, 0x3d,0x9, 0xa3,0x76,0x1, 0x19, +0xa4,0x76,0x1, 0x80,0x3d,0xa, 0x3d,0x9, 0x53,0x76,0x1, 0x7a,0x51,0x43,0xbc,0x51, +0x28,0x3, 0x7a,0x11,0x43,0x75,0x28,0x0, 0x80,0x23,0x9, 0x64,0x76,0x1, 0xe5,0x28, +0xa, 0xb, 0x9, 0x30,0x76,0x1, 0xbc,0x36,0x68,0xa, 0xa, 0x3d,0x9, 0x63,0x76,0x1, +0xbc,0x36,0x78,0x7, 0x7e,0xa1,0x43,0x19,0xa0,0x76,0x1, 0x5, 0x28,0xbe,0xe1,0x28, +0x38,0xd8,0x5, 0x27,0xbe,0xe1,0x27,0x28,0x2, 0x21,0xe3,0xb, 0xd0,0xbc,0xed,0x28, +0x2, 0x21,0xbc,0xda,0x3b,0x22,0x7e,0x35,0x31,0x1a,0x26,0x1a,0x24,0x7a,0x1d,0x37, +0x22,0xa, 0x2c,0x7d,0x34,0x2d,0x32,0xbe,0x34,0x0, 0x6, 0x22,0x90,0x21,0x52,0x93, +0xa, 0x3b,0x22,0xe5,0x29,0x7e,0x71,0x2a,0x7e,0x61,0x2b,0x7e,0x51,0x2c,0x22,0xca, +0xd8,0xca,0x79,0xc2,0x0, 0x7e,0xe0,0x3, 0xe4,0x7a,0xb3,0x75,0xfe,0x7e,0xd3,0x6f, +0x32,0x12,0xd6,0x93,0x7e,0xf3,0x6d,0x93,0xbe,0xf0,0x1, 0x38,0x2, 0xa1,0x29,0x7c, +0xbe,0x12,0xa9,0x7d,0x4c,0xdd,0x78,0x4, 0xc2,0x0, 0x80,0x5f,0xbe,0xd0,0x1, 0x28, +0xd, 0x7e,0x73,0x76,0x3f,0xbe,0x70,0x6, 0x28,0x4, 0xc2,0x0, 0x80,0x4d,0xc2,0x0, +0x7e,0x53,0x6d,0x93,0xbc,0x5d,0x78,0x11,0x12,0xae,0xe3,0x50,0x5, 0x7e,0xe0,0x3, +0x80,0x3, 0x7e,0xe0,0x1, 0xd2,0x0, 0x80,0x32,0x7e,0x43,0x75,0xff,0xa, 0x34,0xa, +0x25,0x7d,0x12,0x9d,0x13,0xb, 0x14,0xa, 0x3d,0xbd,0x31,0x78,0x7, 0x7e,0xe0,0x1, +0xd2,0x0, 0x80,0x17,0x7e,0x73,0x75,0xc1,0xa, 0x37,0x9d,0x23,0xb, 0x24,0x7e,0x73, +0x76,0x40,0xbd,0x32,0x78,0x5, 0x7e,0xe0,0x41,0xd2,0x0, 0x30,0x0, 0x5, 0x7c,0xbe, +0x12,0xa9,0x7d,0x7e,0x8, 0x76,0x1, 0x12,0xd3,0xc6,0x7a,0xb3,0x75,0xfe,0x7e,0xa3, +0x75,0xfe,0x7a,0xa3,0x6d,0x93,0x74,0x2, 0xa4,0xca,0x59,0x7e,0x18,0x75,0xc2,0x7e, +0x8, 0x6c,0x9, 0x12,0x24,0x13,0x1b,0xfd,0x7e,0x73,0x6d,0x93,0x7a,0x73,0x76,0x40, +0x12,0xae,0x56,0x7a,0xb3,0x76,0x3f,0x80,0xa, 0x74,0x64,0x7a,0xb3,0x76,0x3f,0x7a, +0xf3,0x76,0x40,0xda,0x79,0xda,0xd8,0x22,0xca,0x79,0x7f,0x60,0x7c,0xf5,0x7c,0xe6, +0x12,0xad,0x9f,0x7d,0xb3,0x7c,0xbe,0x7c,0x7f,0x12,0xad,0x9f,0x2d,0x3b,0x12,0xae, +0x4f,0x7d,0xa3,0x7e,0x25,0x44,0x7d,0x12,0x9d,0x1a,0xbe,0x14,0x0, 0x0, 0x8, 0x6, +0x7d,0x32,0x9d,0x3a,0x80,0x4, 0x6d,0x33,0x9d,0x31,0x7d,0x12,0x1a,0x2, 0x1a,0x0, +0x9f,0x6, 0xbe,0x14,0x0, 0x0, 0x8, 0x6, 0x7d,0xd, 0x9d,0x20,0x80,0x4, 0x6d,0x22, +0x9d,0x21,0x7e,0x14,0x0, 0x3, 0xad,0x13,0xbd,0x12,0x58,0xf, 0xbe,0x24,0x0, 0x64, +0x8, 0x9, 0xbe,0x34,0x0, 0x46,0x8, 0x3, 0xd3,0x80,0x1, 0xc3,0xda,0x79,0x22,0xca, +0x79,0x7c,0x8b,0x7e,0xb3,0x6f,0x66,0xf5,0x49,0x7e,0x93,0x6f,0x67,0x7e,0x4, 0x80, +0x1, 0x7c,0xf7,0x1a,0x18,0x1b,0x14,0x7c,0xe3,0xc1,0x3e,0x7a,0xe1,0x47,0xbe,0xe0, +0x0, 0x58,0xc, 0x1a,0x5e,0x1a,0x18,0x9d,0x15,0x1a,0x58,0x2d,0x51,0xf5,0x47,0xe5, +0x49,0xbc,0xbe,0x18,0xc, 0x1a,0x58,0x1a,0x1e,0x9d,0x15,0x1a,0x58,0x9d,0x51,0xf5, +0x47,0x1a,0x5f,0x1b,0x54,0xf5,0x46,0x80,0x47,0x85,0x46,0x48,0xe5,0x46,0xbe,0xb0, +0x0, 0x58,0xe, 0xe5,0x46,0x1a,0x5b,0x1a,0x1f,0x9d,0x15,0x1a,0x5f,0x2d,0x51,0xf5, +0x48,0xbe,0x91,0x46,0x18,0xe, 0x1a,0x3f,0xe5,0x46,0x1a,0x1b,0x9d,0x13,0x1a,0x5f, +0x9d,0x51,0xf5,0x48,0xbe,0x81,0x47,0x78,0x5, 0xbe,0xf1,0x48,0x68,0x10,0xe5,0x47, +0x7e,0x71,0x48,0x12,0x9b,0x6a,0x7d,0xf3,0xbd,0xf0,0x8, 0x2, 0x7d,0xf, 0x5, 0x46, +0x1a,0xef,0xb, 0xe4,0xe5,0x46,0x1a,0x1b,0xbd,0x1e,0x8, 0xad,0xb, 0xe0,0x1a,0x58, +0xb, 0x54,0x1a,0x1e,0xbd,0x15,0x18,0x2, 0xa1,0xbb,0x7d,0x30,0xda,0x79,0x22,0x7e, +0x24,0x0, 0x2, 0x2, 0x22,0x71,0xca,0x3b,0x7e,0xa0,0x64,0x6c,0x77,0x80,0x67,0xa, +0x27,0xb, 0x24,0x7c,0x65,0x80,0x55,0x7e,0xf0,0x2, 0xac,0xf6,0x9, 0xb7,0x6c,0x9, +0xa, 0xb, 0x7e,0xd0,0x2, 0xac,0xd7,0x9, 0xb6,0x6c,0x9, 0xa, 0x2b,0x12,0xae,0xda, +0x8, 0x4, 0x9d,0x20,0x80,0x4, 0x6d,0x22,0x9d,0x21,0x9, 0x47,0x6c,0xa, 0xa, 0x44, +0x9, 0x46,0x6c,0xa, 0xa, 0x14,0x7d,0x1, 0x9d,0x4, 0xbe,0x4, 0x0, 0x0, 0x8, 0x4, +0x9d,0x14,0x80,0x4, 0x6d,0x11,0x9d,0x10,0x7c,0x43,0xbc,0x45,0x50,0x4, 0x7c,0x35, +0x80,0x2, 0x7c,0x34,0xbc,0xa3,0x28,0x2, 0x7c,0xa3,0xb, 0x60,0x7e,0x23,0x6d,0x93, +0xbc,0x26,0x38,0xa3,0xb, 0x70,0x7e,0xb3,0x6d,0x93,0xbc,0xb7,0x38,0x91,0xbe,0xa0, +0x64,0x78,0x2, 0x6c,0xaa,0x7c,0xba,0xda,0x3b,0x22,0x7d,0x12,0x9d,0x10,0xbe,0x14, +0x0, 0x0, 0x22,0x6c,0xaa,0x80,0x12,0x7e,0x70,0x9, 0xac,0x7a,0x9, 0xb3,0x6c,0x8b, +0xbe,0xb0,0x10,0x28,0x2, 0xd3,0x22,0xb, 0xa0,0x7e,0xb3,0x6d,0xa9,0xbc,0xba,0x38, +0xe6,0xc3,0x22,0x7c,0x9b,0x7f,0x71,0x7f,0x60,0x7e,0x34,0x29,0x6, 0x7e,0x24,0x0, +0xff,0x7e,0x14,0x63,0x6d,0x74,0x30,0x12,0x23,0x65,0x7e,0x58,0x63,0x6d,0x7c,0xb9, +0x7e,0x71,0x44,0x12,0x9b,0x6a,0x7d,0x3, 0xe5,0x45,0x7e,0x71,0x46,0x12,0x9b,0x6a, +0x2d,0x30,0xe, 0x34,0x7f,0x5, 0x7e,0x50,0x8, 0xb, 0xa, 0x50,0xbd,0x53,0x58,0xf, +0x69,0x30,0x0, 0x2, 0x1b,0x6a,0x30,0x69,0x30,0x0, 0x4, 0x1b,0x7a,0x30,0x22,0x2e, +0x14,0x0, 0x6, 0x1b,0x50,0x78,0xe2,0x22,0xd2,0x5, 0x7e,0x73,0x6d,0x93,0xbe,0x70, +0x3, 0x50,0x2, 0xc3,0x22,0x7e,0x8, 0x63,0x6d,0x12,0xaf,0xd0,0x6c,0xaa,0x80,0x17, +0x7e,0x90,0x2, 0xac,0x9a,0x9, 0xb4,0x6c,0x9, 0x19,0xb4,0x63,0x6d,0x9, 0xb4,0x6c, +0xa, 0x19,0xb4,0x63,0x6e,0xb, 0xa0,0x7e,0x73,0x6d,0x93,0xbc,0x7a,0x38,0xe1,0x6c, +0xaa,0x80,0x36,0xa, 0x2a,0xb, 0x24,0x7c,0x65,0x80,0x28,0x7e,0x50,0x2, 0xac,0x56, +0x9, 0x12,0x63,0x6d,0x7e,0x30,0x2, 0xac,0x3a,0x9, 0xb1,0x63,0x6d,0xbc,0xb1,0x78, +0x2, 0xc2,0x5, 0x9, 0x52,0x63,0x6e,0x9, 0xb1,0x63,0x6e,0xbc,0xb5,0x78,0x2, 0xc2, +0x5, 0xb, 0x60,0xbc,0x76,0x38,0xd4,0xb, 0xa0,0xbc,0x7a,0x38,0xc6,0xa2,0x5, 0x22, +0x7e,0x34,0x0, 0x3c,0xe4,0x2, 0x24,0x38,0xca,0x3b,0xc2,0x0, 0x7e,0x38,0x6e,0xd7, +0x6c,0xaa,0x80,0x19,0x7e,0x70,0xff,0x12,0xb3,0x97,0x74,0xff,0xa, 0x4a,0x19,0xb4, +0x63,0x81,0xe4,0x19,0xb4,0x63,0x6d,0x19,0xb4,0x63,0x77,0xb, 0xa0,0x12,0x45,0x1f, +0x38,0xe2,0x7e,0x73,0x6f,0x31,0xa5,0xbf,0x0, 0x2e,0x7e,0xb3,0x3, 0xc9,0x70,0x2, +0x41,0xb8,0x6c,0xaa,0x80,0x1b,0x7e,0x44,0x7f,0xff,0x7e,0x50,0x9, 0xac,0x5a,0x7f, +0x3, 0x2d,0x12,0x79,0x40,0x0, 0x2, 0x7f,0x3, 0x2d,0x12,0x79,0x40,0x0, 0x4, 0xb, +0xa0,0x12,0x45,0x1f,0x38,0xe0,0x41,0xb8,0x7e,0xb3,0x3, 0xc9,0x70,0x3b,0xbe,0x70, +0x0, 0x28,0x36,0x6c,0xaa,0x80,0x2b,0x7e,0x90,0x9, 0xac,0x9a,0x49,0x34,0x6d,0xc9, +0x7f,0x3, 0x2d,0x14,0x79,0x30,0x0, 0x2, 0x49,0x34,0x6d,0xcb,0x7f,0x3, 0x2d,0x14, +0x79,0x30,0x0, 0x4, 0x74,0x1, 0xa, 0x3a,0x19,0xb3,0x63,0x6d,0x19,0xa4,0x6d,0xcd, +0xb, 0xa0,0x12,0xb3,0x5f,0x38,0xd0,0x41,0xb8,0x6c,0xaa,0x80,0x1d,0x7e,0x44,0x7f, +0xff,0x7e,0x70,0x2, 0xac,0x7a,0x3e,0x34,0x59,0x43,0x24,0x6c,0x59,0x43,0x24,0x6e, +0x59,0x43,0x24,0x94,0x59,0x43,0x24,0x96,0xb, 0xa0,0x12,0x45,0x1f,0x38,0xde,0x7e, +0xb3,0x3, 0xc9,0xbe,0xb3,0x6f,0x31,0x28,0x9, 0xbe,0xb0,0x2, 0x40,0x4, 0xd2,0x0, +0x80,0x2, 0xc2,0x0, 0x6c,0xaa,0x21,0x75,0x75,0x27,0x0, 0x21,0x6c,0x12,0xb3,0xa1, +0x7f,0x73,0x2d,0xf3,0x69,0x17,0x0, 0x2, 0xbe,0x14,0x7f,0xff,0x78,0x2, 0x21,0x6a, +0xe5,0x27,0xa, 0x2b,0x9, 0xb2,0x63,0x77,0x60,0x2, 0x21,0x6a,0x30,0x0, 0x6c,0x7e, +0x71,0x27,0x74,0x2, 0xac,0x7b,0x49,0x3, 0x3, 0xde,0xbe,0x4, 0x7f,0xff,0x68,0x5b, +0x49,0xd3,0x3, 0xde,0x69,0x7, 0x0, 0x2, 0x7d,0x40,0x9d,0x4d,0x2d,0x40,0x49,0xd3, +0x3, 0xca,0x69,0x7, 0x0, 0x4, 0x7d,0x30,0x9d,0x3d,0x2d,0x30,0xbe,0x44,0x0, 0x0, +0x58,0x2, 0x6d,0x44,0xbe,0x34,0x0, 0x0, 0x58,0x2, 0x6d,0x33,0x7e,0x3, 0x6f,0x66, +0x12,0xb3,0x8b,0xbd,0xd4,0x18,0x6, 0x7d,0x40,0x9e,0x44,0x0, 0x21,0x7e,0x3, 0x6f, +0x67,0x12,0xb3,0x8b,0xbd,0xd3,0x18,0x6, 0x7d,0x30,0x9e,0x34,0x0, 0x21,0x12,0xb3, +0x66,0x59,0x40,0x24,0x6c,0x59,0x30,0x24,0x6e,0x80,0xf, 0x12,0xb3,0x66,0x59,0x10, +0x24,0x6c,0x69,0x17,0x0, 0x4, 0x59,0x10,0x24,0x6e,0xe5,0x27,0xa, 0x1a,0x19,0xb1, +0x63,0x81,0x74,0x1, 0x19,0xb2,0x63,0x77,0x80,0x9, 0x5, 0x27,0x12,0xb3,0x6e,0x28, +0x2, 0x1, 0xbd,0xb, 0xa0,0x7e,0xb3,0x3, 0xc9,0xbc,0xba,0x28,0x2, 0x1, 0xb8,0x6c, +0xaa,0x80,0x1a,0x12,0xb3,0x77,0x69,0x30,0x0, 0x2, 0x7e,0x50,0x2, 0xac,0x5a,0x59, +0x32,0x3, 0xde,0x69,0x30,0x0, 0x4, 0x59,0x32,0x3, 0xca,0xb, 0xa0,0x12,0x73,0x78, +0xbc,0x7a,0x38,0xdf,0x6c,0xaa,0x80,0x31,0xa, 0x2a,0x9, 0xb2,0x63,0x81,0xb4,0xff, +0x26,0x75,0x27,0x0, 0x80,0x1c,0xe5,0x27,0xa, 0x4b,0x9, 0xb4,0x63,0x77,0x70,0x10, +0xe5,0x27,0xa, 0x2a,0x19,0xb2,0x63,0x81,0x74,0x1, 0x19,0xb4,0x63,0x77,0x80,0x7, +0x5, 0x27,0xbe,0x71,0x27,0x38,0xdf,0xb, 0xa0,0xbc,0x7a,0x38,0xcb,0x6c,0xaa,0x80, +0x18,0x12,0xb3,0xb3,0x7e,0x50,0x2, 0xac,0x5a,0x3e,0x24,0x59,0x42,0x24,0x94,0x49, +0x33,0x6d,0xcb,0x59,0x32,0x24,0x96,0xb, 0xa0,0x12,0xb3,0x5f,0x38,0xe3,0x7e,0x34, +0x24,0x6c,0x7a,0x37,0x63,0x8d,0x7e,0x34,0x24,0x94,0x7a,0x37,0x63,0x8f,0x7e,0x34, +0x24,0xbc,0x7a,0x37,0x63,0x91,0x7e,0x73,0x3, 0xc9,0x7a,0x73,0x63,0x8b,0x7e,0x73, +0x6f,0x31,0x7a,0x73,0x63,0x8c,0x7e,0x8, 0x63,0x8b,0x12,0x1, 0x20,0x6c,0xaa,0x80, +0x56,0x7e,0x70,0xff,0x75,0x27,0x0, 0x80,0x1d,0x7e,0x51,0x27,0x74,0x2, 0xac,0x5b, +0x49,0x12,0x24,0xbc,0xa, 0x2a,0xbd,0x21,0x78,0xa, 0xe5,0x27,0xa, 0x3b,0x9, 0x73, +0x63,0x81,0x80,0x7, 0x5, 0x27,0x12,0xb3,0x6e,0x38,0xde,0xbe,0x70,0xff,0x68,0x25, +0x12,0xb3,0x97,0x74,0x1, 0xa, 0x47,0x19,0xb4,0x63,0x6d,0x7e,0x50,0x9, 0xac,0x5a, +0x49,0x42,0x6d,0xc9,0x12,0xb3,0x81,0x79,0x40,0x0, 0x2, 0x12,0xb3,0xa9,0x12,0xb3, +0x81,0x79,0x40,0x0, 0x4, 0xb, 0xa0,0x7e,0x63,0x6f,0x31,0xbc,0x6a,0x38,0xa2,0x6c, +0xaa,0x80,0x20,0xa, 0x3a,0x9, 0xb3,0x63,0x6d,0xbe,0xb0,0x1, 0x68,0x13,0x7e,0x44, +0x7f,0xff,0x12,0xb3,0x77,0x79,0x40,0x0, 0x2, 0x2d,0x37,0x7d,0x26,0x79,0x41,0x0, +0x4, 0xb, 0xa0,0x12,0x45,0x1f,0x38,0xdb,0x7e,0x73,0x6f,0x31,0x7a,0x73,0x3, 0xc9, +0x7f,0x3, 0x7e,0x18,0x63,0x6d,0x12,0xb2,0xcc,0xda,0x3b,0x22,0xca,0x79,0x7e,0xa3, +0x6f,0x31,0x6c,0x99,0x80,0x77,0xa, 0xf9,0x2d,0xf3,0x7d,0xe2,0x7e,0x7b,0xb0,0xb4, +0x1, 0x27,0x12,0xb3,0x55,0x29,0xb7,0x0, 0x1, 0xb4,0x1, 0x6, 0x74,0x3, 0x39,0xb7, +0x0, 0x1, 0x12,0xb3,0x55,0x29,0x87,0x0, 0x1, 0xbe,0x80,0x3, 0x78,0x3, 0xe4,0x80, +0x32,0x4c,0x88,0x78,0x31,0x74,0x2, 0x80,0x2a,0x12,0xb3,0x55,0x29,0xb7,0x0, 0x1, +0xbe,0xb0,0x2, 0x68,0x8, 0x60,0x6, 0x29,0xb7,0x0, 0x7, 0x70,0x14,0x74,0x1, 0x7a, +0x7b,0xb0,0x7c,0x8a,0xb, 0xa0,0x7e,0xf0,0x9, 0xac,0xf8,0x19,0x97,0x6d,0xcd,0x80, +0x5, 0x74,0x3, 0x7a,0x7b,0xb0,0x12,0xb3,0x55,0x7e,0x7b,0xb0,0x39,0xb7,0x0, 0x1, +0x12,0xb3,0x55,0x29,0xb7,0x0, 0x1, 0x39,0xb7,0x0, 0x7, 0xb, 0x90,0x12,0x96,0xdc, +0x38,0x84,0xda,0x79,0x22,0x7e,0xf0,0x9, 0xac,0xf9,0x7f,0x70,0x2d,0xf7,0x22,0x7e, +0xb3,0x6f,0x31,0xbc,0xba,0x22,0x7e,0x10,0x2, 0xac,0x1a,0x3e,0x4, 0x22,0x90,0x21, +0x51,0xe4,0x93,0xbe,0xb1,0x27,0x22,0x7e,0x70,0x9, 0xac,0x7a,0x7f,0x3, 0x2d,0x13, +0x22,0x7e,0x50,0x9, 0xac,0x57,0x7f,0x3, 0x2d,0x12,0x22,0x7e,0x10,0x40,0xac,0x1, +0x7d,0xd0,0x9e,0xd4,0x0, 0x20,0x22,0x7e,0x50,0x9, 0xac,0x5a,0x19,0x72,0x6d,0xcd, +0x22,0x7e,0x71,0x27,0x74,0x9, 0xac,0x7b,0x22,0x7e,0x50,0x9, 0xac,0x5a,0x49,0x42, +0x6d,0xcb,0x22,0x7e,0x70,0x9, 0xac,0x7a,0x49,0x43,0x6d,0xc9,0x22,0x7e,0x14,0x21, +0xda,0x12,0x6f,0xdd,0x7e,0x14,0x21,0xde,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0xd0,0x7e, +0x14,0x21,0xe0,0x12,0xb4,0xe6,0x90,0x1c,0x2c,0xe4,0x93,0x70,0x1, 0x22,0x90,0x21, +0xd9,0xe4,0x93,0xb4,0x1, 0x6, 0x7e,0x83,0x6f,0x67,0x80,0x4, 0x7e,0x83,0x6f,0x66, +0x12,0xb4,0xda,0xbe,0x34,0x0, 0x3f,0x38,0x1e,0x7e,0xe4,0x0, 0x3f,0x9d,0xe3,0x7e, +0x34,0x21,0xe4,0x12,0xb4,0xad,0x7f,0x71,0x12,0xb4,0x9c,0xbf,0x71,0x40,0x2, 0x7f, +0x71,0x9f,0x17,0x7f,0x71,0x80,0x78,0x7d,0x54,0x9e,0x54,0x0, 0x3f,0xbd,0x53,0x38, +0x23,0x7d,0xe3,0x9d,0xe5,0x7e,0x34,0x21,0xe6,0x12,0xb4,0xad,0x7f,0x71,0x90,0x21, +0xe3,0xe4,0x93,0xa, 0x3b,0xbf,0x71,0x40,0x4, 0x7f,0x71,0x1b,0x7c,0x12,0xb4,0xa4, +0x2f,0x71,0x80,0x4b,0x7d,0x52,0x1b,0x54,0xbd,0x53,0x40,0x17,0x7d,0xf5,0x9d,0xf3, +0x6d,0xee,0x7e,0x34,0x21,0xe8,0x12,0xb4,0xc1,0x1b,0x34,0x6d,0x22,0x9f,0x17,0x7f, +0x71,0x80,0x11,0x7d,0xf3,0x9d,0xf2,0x6d,0xee,0x7e,0x34,0x21,0xea,0x12,0xb4,0xc1, +0x6d,0x22,0x2f,0x71,0x12,0xb4,0x9c,0x6d,0x22,0xbf,0x71,0x50,0x4, 0x7f,0x71,0x80, +0xe, 0x90,0x21,0xe3,0xe4,0x93,0x12,0xb4,0xa4,0xbf,0x71,0x28,0x2, 0x7f,0x71,0xbe, +0x78,0x2, 0xcf,0x28,0x4, 0x7e,0x78,0x2, 0xcf,0x7d,0x3f,0x22,0x90,0x21,0xe2,0xe4, +0x93,0xa, 0x3b,0x22,0xa, 0x2b,0x7d,0x3d,0x9d,0x32,0x6d,0x22,0x22,0x7e,0x24,0x0, +0xff,0xb, 0x1a,0xf0,0xad,0xfe,0x6d,0xee,0x7d,0x3f,0x7d,0x2e,0x7c,0x76,0x7c,0x65, +0x22,0x7e,0x24,0x0, 0xff,0xb, 0x1a,0x10,0x7f,0x17,0x12,0x22,0xb4,0x7f,0x71,0x7c, +0x76,0x7c,0x65,0xa, 0x24,0x7f,0x71,0x7d,0x3c,0x22,0x7e,0x90,0x40,0xac,0x89,0x1b, +0x44,0x22,0x7e,0x14,0x21,0xec,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0xc0,0x22,0xca,0xd8, +0xca,0x79,0x6c,0xff,0x6d,0xdd,0x7d,0xed,0x7d,0xfd,0x7e,0xd3,0x6f,0x31,0x7e,0xe3, +0x6f,0x32,0x7e,0xb3,0x78,0xb1,0x60,0x11,0x7e,0xc7,0x78,0xba,0x4d,0xcc,0x78,0x2, +0xa1,0xde,0xbe,0xd0,0x1, 0x28,0x2, 0xa1,0xde,0xbe,0xd0,0x1, 0x78,0x1d,0xbe,0xb0, +0x4, 0x78,0x2, 0xa1,0xde,0x7e,0xe7,0x6e,0x23,0x7e,0xf7,0x6e,0x25,0x7d,0x3e,0x7d, +0x2f,0x12,0x7d,0xee,0xbe,0xb0,0x1, 0x78,0x2, 0xa1,0xde,0x7e,0xa3,0x78,0xb1,0x7c, +0xba,0x14,0x68,0x29,0x14,0x68,0x54,0x14,0x68,0x23,0x14,0x78,0x2, 0xa1,0xdb,0xb, +0xb2,0x68,0x2, 0xa1,0xde,0xbe,0xd0,0x1, 0x68,0x2, 0xa1,0xed,0x4c,0xee,0x68,0x2, +0xa1,0xed,0x74,0x1, 0x7a,0xb3,0x78,0xb1,0x12,0xb5,0xf4,0x80,0x61,0x4c,0xdd,0x78, +0x1d,0xbe,0xa0,0x1, 0x78,0xc, 0x74,0x2, 0x7a,0xb3,0x78,0xb1,0x7e,0x34,0x22,0x43, +0x80,0x50,0x74,0x4, 0x7a,0xb3,0x78,0xb1,0x7e,0x34,0x22,0x47,0x80,0x44,0x12,0xb5, +0xfd,0x90,0x22,0x36,0x12,0xb6,0x6, 0x68,0x45,0x80,0x52,0xbe,0xd0,0x1, 0x78,0x4d, +0x4c,0xee,0x78,0x49,0x12,0xb5,0xfd,0x7e,0x34,0x22,0x3f,0x12,0x2a,0xa9,0x7e,0x14, +0x22,0x43,0x12,0xb4,0xe6,0x9d,0xc3,0xbe,0xc7,0x78,0xba,0x40,0x21,0x90,0x22,0x35, +0x12,0xb6,0x6, 0x68,0x19,0x12,0xb5,0xf4,0x74,0x3, 0x7a,0xb3,0x78,0xb1,0x7e,0x34, +0x22,0x43,0x12,0x2a,0xa9,0x7a,0x37,0x78,0xba,0x80,0x12,0x7e,0xf0,0x24,0xe4,0x7a, +0xb3,0x78,0xb1,0x6d,0x33,0x7a,0x37,0x78,0xba,0x7c,0xbf,0x80,0x2, 0x7c,0xbf,0xda, +0x79,0xda,0xd8,0x22,0x7a,0xe7,0x78,0xb2,0x7a,0xf7,0x78,0xb4,0x22,0x7a,0xe7,0x78, +0xb6,0x7a,0xf7,0x78,0xb8,0x22,0xe4,0x93,0xa, 0x3b,0x12,0xb6,0x12,0xa, 0xdb,0x4d, +0xdd,0x22,0x7d,0x23,0x12,0x44,0x40,0x7e,0x37,0x78,0xb6,0x7d,0x13,0x9e,0x17,0x78, +0xb2,0xbe,0x14,0x0, 0x0, 0x8, 0x6, 0x9e,0x37,0x78,0xb2,0x80,0x4, 0x6d,0x33,0x9d, +0x31,0xbd,0x32,0x38,0x21,0x7e,0x37,0x78,0xb8,0x7d,0x13,0x9e,0x17,0x78,0xb4,0xbe, +0x14,0x0, 0x0, 0x8, 0x6, 0x9e,0x37,0x78,0xb4,0x80,0x4, 0x6d,0x33,0x9d,0x31,0xbd, +0x32,0x38,0x3, 0x74,0x1, 0x22,0xe4,0x22,0xca,0x3b,0x6d,0x33,0x7a,0x35,0x28,0x7a, +0x35,0x2a,0x7e,0x53,0x6f,0x31,0x7a,0x51,0x41,0xbe,0x50,0x0, 0x28,0x1a,0x7e,0x27, +0x63,0x2f,0xb, 0x24,0x7a,0x27,0x63,0x2f,0xbe,0x24,0x0, 0x64,0x28,0xe, 0x7e,0x24, +0x0, 0x64,0x7a,0x27,0x63,0x2f,0x80,0x4, 0x7a,0x37,0x63,0x2f,0x7e,0xb3,0x76,0xe4, +0xb4,0x1, 0x4, 0x74,0x3, 0x80,0x7, 0x7e,0xb3,0x62,0xde,0x60,0x5, 0x14,0x7a,0xb3, +0x62,0xde,0x7e,0xb3,0x6f,0x38,0x60,0x3, 0x2, 0xbf,0xc, 0x7e,0x37,0x5a,0x42,0xbe, +0x37,0x78,0x98,0x28,0x12,0x7e,0x54,0xff,0xff,0x9e,0x57,0x5a,0x42,0x2e,0x57,0x78, +0x98,0xb, 0x54,0xf5,0x40,0x80,0xa, 0x7e,0x57,0x78,0x98,0x9e,0x57,0x5a,0x42,0xf5, +0x40,0x7e,0x37,0x78,0x98,0x7a,0x37,0x5a,0x42,0xc2,0x24,0x7e,0x34,0x6d,0xc9,0x7a, +0x35,0x2c,0xe5,0x41,0x60,0x6, 0x7e,0xb3,0x6f,0x32,0x70,0x39,0x6c,0xff,0x6c,0xaa, +0x80,0x2e,0xa, 0x4f,0x19,0xa4,0x62,0xca,0xe4,0x19,0xb4,0x62,0xd4,0x6d,0x33,0x7e, +0x50,0x2, 0xac,0x5f,0x59,0x32,0x63,0x7, 0x59,0x32,0x63,0x1b,0x7e,0x70,0xff,0x7e, +0x50,0x9, 0xac,0x5f,0x19,0x72,0x5d,0x9c,0x74,0x1, 0x19,0xb4,0x63,0x31,0xb, 0xf0, +0x12,0xbf,0xdc,0x38,0xcd,0xc2,0x22,0x7e,0xb3,0x5c,0xc3,0x60,0x6, 0x7e,0xb3,0x6f, +0x57,0x60,0x7, 0x12,0xc0,0x42,0x50,0x2, 0xd2,0x22,0x6c,0xff,0x2, 0xbd,0xed,0x7e, +0x70,0x9, 0xac,0x7f,0x9, 0xe3,0x6d,0xcd,0x5e,0xe0,0xf, 0x12,0xbf,0xf4,0x38,0x3, +0x2, 0xbd,0xeb,0x7e,0x90,0x9, 0xac,0x9e,0x9, 0xa4,0x6e,0xd7,0xbe,0xa0,0x1, 0x78, +0x3, 0x2, 0xbd,0xc8,0x7e,0x50,0x2, 0xac,0x5e,0x7d,0x2, 0x2e,0x4, 0x63,0x7, 0xb, +0x8, 0x10,0xb, 0x14,0x1b,0x8, 0x10,0x4c,0xaa,0x78,0x1a,0x49,0x43,0x6d,0xc9,0x74, +0x4, 0xac,0xbe,0x59,0x45,0x62,0xdf,0x49,0x33,0x6d,0xcb,0x59,0x35,0x62,0xe1,0x6d, +0x33,0x59,0x32,0x63,0x1b,0x6c,0xdd,0x2, 0xbd,0xbe,0x7e,0x10,0x9, 0xac,0x1d,0x9, +0xc0,0x5d,0x9c,0xbc,0xce,0x68,0x3, 0x2, 0xbd,0xbc,0x7e,0x70,0x73,0xac,0x7c,0x2e, +0x34,0x5e,0x4c,0x6d,0x22,0x7a,0x1d,0x34,0x12,0xe6,0x15,0x49,0x10,0x5d,0x98,0x49, +0x0, 0x5d,0x9a,0x12,0xbf,0x9a,0x7a,0x35,0x28,0x12,0xe6,0x15,0x74,0x4, 0xac,0xbc, +0x49,0x15,0x62,0xdf,0x49,0x5, 0x62,0xe1,0x12,0xbf,0x9a,0x7a,0x35,0x32,0x74,0x2, +0xac,0xbc,0x7d,0x35,0x2e,0x34,0x63,0x1b,0xb, 0x38,0x40,0x2e,0x45,0x28,0x1b,0x38, +0x40,0x49,0x45,0x63,0x1b,0xbe,0x44,0xf, 0xa0,0x28,0x8, 0x7e,0x34,0xf, 0xa0,0x59, +0x35,0x63,0x1b,0xe5,0x40,0x7a,0xb3,0x63,0xd0,0x12,0xbf,0x38,0x9, 0x73,0x0, 0x6, +0x7a,0x73,0x63,0xd2,0x7e,0x35,0x28,0x7a,0x37,0x63,0xd9,0x7e,0x35,0x32,0x7a,0x37, +0x63,0xdb,0x12,0xbf,0x38,0xb, 0x38,0x30,0x7a,0x37,0x63,0xdd,0x12,0xbf,0x38,0x49, +0x33,0x0, 0x2, 0x7a,0x37,0x63,0xdf,0x74,0x2, 0xac,0xbc,0x49,0x35,0x63,0x7, 0x7a, +0x37,0x63,0xe1,0x74,0x2, 0xac,0xbc,0x49,0x35,0x63,0x1b,0x7a,0x37,0x63,0xe5,0x74, +0x9, 0xac,0xbd,0x49,0x25,0x5d,0x98,0x7e,0x37,0x63,0xdd,0x9d,0x32,0x7a,0x37,0x63, +0xd5,0x74,0x9, 0xac,0xbd,0x49,0x25,0x5d,0x9a,0x7e,0x37,0x63,0xdf,0x9d,0x32,0x7a, +0x37,0x63,0xd7,0x12,0xbf,0x18,0xbe,0xa0,0x0, 0x28,0x1c,0x7e,0x34,0x0, 0x17,0xca, +0x39,0x12,0xbf,0x2f,0x2e,0x34,0xff,0xe9,0x7e,0x8, 0x63,0xe7,0x12,0x24,0x13,0x1b, +0xfd,0x7e,0x37,0x63,0xf0,0x80,0x9, 0x7e,0x8, 0x63,0xe7,0x12,0xbf,0x51,0x6d,0x33, +0x7a,0x35,0x2a,0x12,0xbf,0x18,0xbe,0xa0,0x2, 0x40,0x18,0x7e,0x34,0x0, 0x17,0xca, +0x39,0x12,0xbf,0x2f,0x2e,0x34,0xff,0xd2,0x7e,0x8, 0x63,0xfe,0x12,0x24,0x13,0x1b, +0xfd,0x80,0x7, 0x7e,0x8, 0x63,0xfe,0x12,0xbf,0x51,0x6d,0x33,0x7a,0x35,0x2e,0x75, +0x27,0x0, 0x80,0x12,0x7e,0xa1,0x27,0x12,0xbf,0x2f,0x69,0x31,0x0, 0x9, 0x2e,0x35, +0x2e,0x7a,0x35,0x2e,0x5, 0x27,0xa, 0x3c,0x9, 0x73,0x62,0xca,0xbe,0x71,0x27,0x38, +0xe3,0xbe,0x70,0x0, 0x28,0xa, 0xa, 0x27,0x7e,0x35,0x2e,0x8d,0x32,0x7a,0x35,0x2e, +0x7e,0x35,0x2e,0x7a,0x37,0x63,0xe3,0xc2,0x0, 0xc2,0x1, 0x12,0x9f,0xdf,0xa, 0x3c, +0x9, 0xb3,0x63,0x31,0x60,0x2, 0x41,0x48,0x7e,0x71,0x40,0x74,0x8, 0xac,0x7b,0x2e, +0x34,0x0, 0x14,0xbe,0x35,0x2a,0x50,0x7, 0xbe,0x35,0x28,0x50,0x2, 0xd2,0x24,0x7e, +0xa3,0x63,0xe7,0x74,0x5, 0xa4,0xbe,0x57,0x63,0xf0,0x50,0x19,0x7e,0xa3,0x63,0xfe, +0x74,0x5, 0xa4,0xbe,0x57,0x64,0x7, 0x50,0xc, 0x7e,0x37,0x63,0xfa,0xbe,0x34,0x0, +0x14,0x28,0x2, 0xd2,0x1, 0xa2,0x1, 0xe4,0x33,0x7a,0xb3,0x63,0xd3,0x7e,0x71,0x40, +0x74,0x1e,0xac,0x7b,0x2e,0x35,0x2a,0xbe,0x35,0x28,0x50,0x4, 0xd2,0x3, 0x80,0xe, +0x7e,0x35,0x2a,0x2e,0x34,0x0, 0x40,0xbe,0x35,0x28,0x50,0x2, 0xd2,0x4, 0x30,0x3, +0x6, 0xd2,0x2, 0x74,0x64,0x80,0x14,0x30,0x4, 0xf, 0x30,0x1, 0x6, 0xc2,0x2, 0x74, +0xa, 0x80,0x8, 0xd2,0x2, 0x74,0xc8,0x80,0x2, 0x74,0x14,0x7a,0xb3,0x63,0xd1,0x20, +0x2, 0x2, 0x41,0x34,0x7e,0x37,0x63,0xe3,0xbe,0x34,0x0, 0xa, 0x38,0x2, 0x41,0x34, +0x7e,0x37,0x63,0xfa,0xbe,0x34,0x0, 0xa, 0x28,0x7a,0x7e,0x37,0x64,0x11,0xbe,0x34, +0x0, 0xa, 0x28,0x70,0x7e,0x37,0x63,0xec,0x2e,0x37,0x63,0xf4,0x7a,0x35,0x3a,0xbe, +0x34,0x0, 0x0, 0x58,0x5, 0x6d,0x33,0x7a,0x35,0x3a,0x7e,0x37,0x63,0xee,0x2e,0x37, +0x63,0xf6,0x12,0xa7,0xcd,0x58,0x5, 0x6d,0x33,0x7a,0x35,0x3c,0x12,0xbf,0x26,0x7e, +0x15,0x3a,0x7e,0x5, 0x3c,0x12,0xbf,0x9a,0x7a,0x35,0x3a,0x7e,0x37,0x63,0xfc,0xbe, +0x34,0xf, 0xa0,0x40,0xa, 0x7e,0x27,0x63,0xfa,0x7e,0x34,0x0, 0xf, 0x80,0x13,0x12, +0xbf,0x59,0x7e,0x27,0x63,0xfa,0x28,0x6, 0x7e,0x34,0x0, 0x9, 0x80,0x4, 0x7e,0x34, +0x0, 0x6, 0xad,0x32,0x7a,0x35,0x30,0xbe,0x35,0x3a,0x28,0x8, 0xc2,0x2, 0x74,0x28, +0x7a,0xb3,0x63,0xd1,0x30,0x22,0xc, 0xc2,0x2, 0xe4,0x12,0xbf,0x11,0x74,0x6e,0x7a, +0xb3,0x63,0xd1,0x12,0xbf,0x61,0x80,0x19,0xa, 0x3c,0x2e,0x34,0x63,0x31,0x12,0xe7, +0x28,0x12,0xbf,0x61,0x74,0x78,0x7a,0xb3,0x63,0xd1,0xd2,0x2, 0xe4,0x7a,0xb3,0x63, +0xd3,0xa2,0x2, 0xe4,0x33,0x7a,0xb3,0x63,0xd4,0xa, 0x3c,0x9, 0xa3,0x62,0xd4,0x4c, +0xaa,0x78,0x19,0x7e,0x35,0x3e,0xbe,0x35,0x28,0x40,0x2, 0x81,0xa3,0x20,0x2, 0x2, +0x81,0xa3,0x74,0x1, 0xa, 0x4c,0x19,0xb4,0x62,0xd4,0x81,0xa3,0xbe,0xa0,0x1, 0x68, +0x2, 0x81,0x85,0x7e,0x7, 0x64,0x11,0xbe,0x4, 0x0, 0x3, 0x50,0x30,0x7e,0x17,0x63, +0xf0,0xbe,0x14,0x0, 0x50,0x50,0x26,0x7e,0x17,0x63,0xe1,0xbe,0x14,0x0, 0x14,0x50, +0x1c,0x7e,0x17,0x64,0x9, 0xbe,0x14,0x0, 0x1e,0x50,0x12,0x7e,0x17,0x63,0xf2,0xbe, +0x14,0x0, 0x50,0x50,0x8, 0x7e,0x15,0x2a,0x7a,0x15,0x30,0x61,0xb6,0x7e,0x17,0x63, +0xe1,0xbe,0x14,0x0, 0xa, 0x50,0x13,0x7e,0x17,0x63,0xfa,0xbe,0x14,0x0, 0x8, 0x28, +0x9, 0x7e,0x73,0x63,0xd2,0xbe,0x70,0xf, 0x40,0x15,0x7e,0x17,0x63,0xfa,0xbe,0x14, +0x0, 0xf, 0x28,0x42,0xbe,0x4, 0x0, 0xf, 0x28,0x3c,0x12,0xbf,0x59,0x50,0x37,0x7e, +0xa3,0x63,0xe7,0xa, 0x2a,0x7e,0x35,0x2a,0x8d,0x32,0x7d,0x23,0x1e,0x24,0x12,0xbf, +0x45,0xbe,0x34,0x0, 0x78,0x28,0x7, 0x7e,0x4, 0x0, 0x78,0x7a,0x5, 0x30,0xbe,0xa0, +0xa, 0x38,0x2, 0x61,0xb6,0x7e,0x5, 0x30,0xbe,0x4, 0x0, 0x50,0x40,0x2, 0x61,0xb6, +0x7e,0x4, 0x0, 0x50,0x80,0x8, 0x7e,0xb3,0x64,0x1, 0x60,0x7, 0x6d,0x0, 0x7a,0x5, +0x30,0x80,0x73,0x7e,0x73,0x63,0xe7,0xa, 0x27,0x7e,0x37,0x63,0xf0,0x12,0xbf,0x41, +0x7e,0xa3,0x63,0xe9,0x74,0x2, 0xa4,0x7e,0x73,0x63,0xd2,0xa, 0x27,0xbd,0x25,0x8, +0x31,0xbe,0x14,0x0, 0x1e,0x50,0x2b,0x7e,0x63,0x64,0x0, 0xa, 0x6, 0x12,0xae,0xda, +0x8, 0x4, 0x9d,0x20,0x80,0x4, 0x6d,0x22,0x9d,0x21,0xbe,0x24,0x0, 0x5, 0x8, 0x12, +0x7e,0x25,0x30,0xbe,0x24,0x0, 0xc8,0x50,0x2d,0x7e,0x24,0x0, 0xc8,0x7a,0x25,0x30, +0x80,0x24,0xbe,0x70,0xf, 0x28,0xf, 0x7e,0x35,0x30,0xbe,0x34,0x0, 0xc8,0x28,0x16, +0x7e,0x34,0x0, 0xc8,0x80,0xd, 0x7e,0x35,0x30,0xbe,0x34,0x0, 0x78,0x28,0x7, 0x7e, +0x34,0x0, 0x78,0x7a,0x35,0x30,0x7e,0x35,0x30,0xbe,0x35,0x28,0x28,0x42,0xd2,0x0, +0x7e,0x37,0x63,0xe1,0xbe,0x34,0x0, 0x8, 0x50,0x11,0x12,0xbf,0x7b,0x28,0xc, 0x74, +0x2, 0xa, 0x2c,0x19,0xb2,0x62,0xd4,0xc2,0x0, 0x80,0x7b,0x7e,0x27,0x64,0x9, 0xbe, +0x24,0x0, 0x64,0x28,0x71,0x12,0xbf,0x7b,0x28,0x6c,0xbe,0x34,0x0, 0x14,0x50,0x66, +0x7e,0x73,0x63,0xd2,0xbe,0x70,0x14,0x50,0x5d,0x12,0xbf,0xf, 0xc2,0x0, 0x80,0x56, +0x7e,0x35,0x3e,0xbe,0x35,0x28,0x50,0x8, 0x30,0x2, 0x5, 0x74,0x3, 0x12,0xbf,0x11, +0x7e,0x37,0x63,0xe1,0xbe,0x34,0x0, 0x1e,0x50,0x3c,0x7e,0x73,0x5a,0x5b,0xbe,0x70, +0x2, 0x28,0x18,0x7e,0xb3,0x63,0xea,0x70,0x12,0x12,0xbf,0x72,0x50,0xd, 0x12,0xbf, +0x26,0x12,0xc7,0xd1,0x50,0x20,0x12,0xbf,0xf, 0x80,0x1b,0x12,0xbf,0x72,0x50,0x16, +0x7e,0x37,0x63,0xdb,0xbe,0x34,0x0, 0x1e,0x50,0xc, 0x7e,0x37,0x63,0x2f,0xbe,0x34, +0x0, 0x78,0x50,0x2, 0xd2,0x0, 0x12,0xbf,0x1f,0xb4,0x1, 0x1f,0x12,0xbf,0x26,0x7e, +0x17,0x64,0xb, 0x7e,0x7, 0x64,0xd, 0x12,0xbf,0x9a,0xbe,0x34,0x0, 0x3c,0x50,0x2f, +0xc2,0x0, 0xe4,0xa, 0x3c,0x19,0xb3,0x62,0xca,0x80,0x24,0x12,0xbf,0x1f,0xb4,0x3, +0x22,0x74,0x1, 0x80,0x1b,0x12,0xbf,0x1f,0xb4,0x2, 0x18,0x7e,0x73,0x63,0xfe,0xa, +0x27,0x7e,0x37,0x64,0x7, 0x12,0xbf,0x41,0xbe,0x35,0x28,0x28,0x2, 0xd2,0x0, 0xe4, +0x12,0xbf,0x11,0x7e,0xa1,0x40,0x74,0x64,0xa4,0x7a,0x55,0x38,0xbe,0x54,0x2, 0x80, +0x28,0xd, 0x7e,0xb3,0x62,0xde,0x70,0x7, 0x7e,0x34,0x2, 0x80,0x7a,0x35,0x38,0x7e, +0x35,0x38,0xbe,0x35,0x28,0x50,0xc, 0x7e,0x37,0x63,0xe1,0xbe,0x34,0x0, 0x2, 0x28, +0x2, 0xd2,0x0, 0x20,0x0, 0x2, 0xa1,0x56,0xe4,0x12,0xbf,0x11,0x12,0xbf,0x84,0x70, +0x8, 0x74,0x3, 0x19,0xb3,0x6e,0xd7,0x80,0x25,0x74,0x1, 0x19,0xb3,0x6e,0xd7,0x75, +0x27,0x0, 0x80,0x15,0x12,0xb3,0xa1,0x9, 0x53,0x6e,0x81,0xbc,0x5e,0x78,0x8, 0x74, +0xff,0x19,0xb3,0x6e,0x81,0x80,0x7, 0x5, 0x27,0x12,0xb3,0x6e,0x38,0xe6,0x7e,0xa0, +0x3, 0x7e,0x70,0x9, 0xac,0x7c,0x19,0xa3,0x6e,0xd8,0xe5,0x41,0xbe,0xb0,0x0, 0x28, +0x35,0x15,0x41,0x7e,0x70,0x9, 0xac,0x7f,0x2e,0x34,0x6d,0xc9,0x7e,0x14,0x63,0x6d, +0x74,0x9, 0x12,0x23,0x44,0x7e,0x71,0x41,0x74,0x9, 0xac,0x7b,0x2e,0x34,0x6d,0xc9, +0x12,0xa7,0xdf,0x12,0xbf,0xe4,0x7e,0x31,0x41,0x74,0x9, 0xac,0x3b,0x2e,0x14,0x6d, +0xc9,0x12,0x23,0x44,0x1b,0xf0,0xa, 0x3c,0x9, 0xb3,0x62,0xca,0xb4,0x5, 0x3d,0x75, +0x27,0x0, 0x80,0x19,0x7e,0x34,0x0, 0x17,0xca,0x39,0x7e,0xa1,0x27,0x12,0xbf,0x69, +0x7f,0x10,0x2e,0x34,0x0, 0x17,0x12,0x24,0x13,0x1b,0xfd,0x5, 0x27,0xe5,0x27,0xbe, +0xb0,0x4, 0x40,0xe0,0x7e,0x34,0x0, 0x17,0xca,0x39,0x7e,0x18,0x63,0xd0,0x7e,0xd, +0x34,0x2e,0x14,0x0, 0x5c,0x12,0x24,0x13,0x1b,0xfd,0x80,0x4f,0x7e,0x34,0x0, 0x17, +0xca,0x39,0x12,0xbf,0x18,0x12,0xbf,0x69,0x7e,0x18,0x63,0xd0,0x12,0x24,0x13,0x1b, +0xfd,0xa, 0x3c,0x2e,0x34,0x62,0xca,0x12,0xbf,0xec,0x80,0x2f,0xb, 0xd0,0x12,0x94, +0xbd,0x28,0x3, 0x2, 0xb7,0x9a,0x80,0x23,0x12,0xbf,0x8e,0x6d,0x22,0x74,0x2, 0xac, +0xbe,0x59,0x25,0x63,0x7, 0x59,0x25,0x63,0x1b,0x7e,0xa0,0xff,0x7e,0x50,0x9, 0xac, +0x5e,0x19,0xa2,0x5d,0x9c,0x74,0x1, 0x19,0xb3,0x63,0x31,0xb, 0xf0,0xe5,0x41,0xbc, +0xbf,0x28,0x3, 0x2, 0xb7,0x3f,0x12,0x90,0xc9,0xca,0x59,0x7e,0x18,0x6d,0xc9,0x7e, +0x8, 0x63,0x76,0x12,0x24,0x13,0x1b,0xfd,0x6c,0xff,0xc1,0x94,0x74,0x9, 0xac,0xbf, +0x9, 0xe5,0x6d,0xcd,0xa, 0x3e,0x9, 0x73,0x62,0xd4,0xbe,0x70,0x0, 0x28,0x73,0x6c, +0xdd,0x80,0x6a,0xa, 0x4e,0x9, 0xa4,0x62,0xd4,0xbe,0xa0,0x1, 0x78,0x2e,0x7e,0x70, +0x9, 0xac,0x7d,0x9, 0xb3,0x5d,0x9c,0xbc,0xbe,0x78,0x50,0x49,0x33,0x5d,0x98,0x7e, +0x50,0x9, 0xac,0x5f,0x59,0x32,0x6d,0xc9,0x7e,0x70,0x9, 0xac,0x7d,0x49,0x33,0x5d, +0x9a,0x7e,0x50,0x9, 0xac,0x5f,0x59,0x32,0x6d,0xcb,0x80,0x36,0xbe,0xa0,0x2, 0x78, +0x2a,0x74,0x9, 0xac,0xbd,0x9, 0x75,0x5d,0xf6,0xbc,0x7e,0x78,0x1e,0x49,0x35,0x5d, +0xf2,0x74,0x9, 0xac,0xbf,0x59,0x35,0x6d,0xc9,0x74,0x9, 0xac,0xbd,0x49,0x35,0x5d, +0xf4,0x74,0x9, 0xac,0xbf,0x59,0x35,0x6d,0xcb,0x80,0x7, 0xb, 0xd0,0x12,0x94,0xbd, +0x38,0x91,0xb, 0xf0,0xe5,0x41,0xbc,0xbf,0x28,0x2, 0xc1,0xc, 0x12,0x90,0xc9,0xca, +0x59,0x7e,0x18,0x5d,0x98,0x7e,0x8, 0x5d,0xf2,0x12,0x24,0x13,0x1b,0xfd,0x12,0x90, +0xc9,0xca,0x59,0x7e,0x18,0x63,0x76,0x7e,0x8, 0x5d,0x98,0x12,0x24,0x13,0x1b,0xfd, +0x6c,0xff,0x80,0x38,0x7e,0x50,0x9, 0xac,0x5f,0x9, 0xe2,0x5d,0x9c,0x12,0xbf,0xf4, +0x28,0x28,0x12,0xbf,0x84,0xbe,0xb0,0x1, 0x68,0x3, 0xb4,0x3, 0x1d,0x12,0xbf,0x8e, +0x6d,0x11,0x74,0x2, 0xac,0xbe,0x59,0x15,0x63,0x7, 0x59,0x15,0x63,0x1b,0x74,0xff, +0x19,0xb2,0x5d,0x9c,0x74,0x1, 0x19,0xb3,0x63,0x31,0xb, 0xf0,0x12,0xbf,0xdc,0x38, +0xc3,0xe5,0x41,0x7a,0xb3,0x6f,0x31,0xe4,0x7a,0xb3,0x5c,0xc4,0xda,0x3b,0x22,0x74, +0x2, 0xa, 0x3c,0x19,0xb3,0x62,0xd4,0x22,0xa, 0x3c,0x9, 0xa3,0x62,0xca,0x22,0xa, +0x3c,0x9, 0xb3,0x62,0xd4,0x22,0x7e,0x37,0x63,0xdd,0x7e,0x27,0x63,0xdf,0x22,0x74, +0x17,0xa4,0x7e,0x1d,0x34,0x2d,0x35,0x22,0x7e,0x70,0x9, 0xac,0x7f,0x2e,0x35,0x2c, +0x22,0x8d,0x32,0x7d,0x23,0x1e,0x24,0xe5,0x40,0xa, 0x3b,0xad,0x32,0x7a,0x35,0x30, +0x22,0x7e,0x34,0x0, 0x17,0xe4,0x2, 0x24,0x38,0x7e,0x73,0x63,0xd2,0xbe,0x70,0xa, +0x22,0x7e,0x34,0x0, 0x64,0x7a,0x35,0x3e,0x22,0x74,0x17,0xa4,0x7e,0xd, 0x34,0x2d, +0x15,0x22,0x7e,0x37,0x64,0x9, 0xbe,0x34,0x0, 0x1e,0x22,0x7e,0x27,0x63,0xd9,0xbe, +0x24,0x0, 0x14,0x22,0x7e,0x70,0x9, 0xac,0x7e,0x9, 0xb3,0x6e,0xd7,0x22,0xe4,0xa, +0x3e,0x19,0xb3,0x62,0xca,0x19,0xb3,0x62,0xd4,0x22,0xca,0x3b,0xbd,0x13,0x50,0x8, +0x7d,0x73,0x9d,0x71,0x6d,0x66,0x80,0x6, 0x7d,0x71,0x9d,0x73,0x6d,0x66,0xbd,0x2, +0x50,0x8, 0x7d,0x92,0x9d,0x90,0x6d,0x88,0x80,0x6, 0x7d,0x90,0x9d,0x92,0x6d,0x88, +0x7f,0x13,0x7f,0x3, 0x12,0x22,0xa3,0x7f,0x31,0x7f,0x14,0x7f,0x4, 0x12,0x22,0xa3, +0x7f,0x41,0x7f,0x13,0x2f,0x14,0x12,0xc7,0x59,0xda,0x3b,0x22,0x90,0x21,0x51,0xe4, +0x93,0xbc,0xbf,0x22,0x12,0x23,0x44,0x7e,0x34,0x63,0x6d,0x22,0x7e,0x39,0xb0,0x4, +0x7a,0x39,0xb0,0x22,0x90,0x21,0x51,0xe4,0x93,0xbc,0xbe,0x22,0x7e,0x8, 0x59,0xd4, +0x7e,0x34,0x0, 0xa, 0x74,0x3, 0x12,0x24,0x38,0x7e,0x8, 0x5a,0x38,0x7e,0x34,0x0, +0xa, 0xe4,0x2, 0x24,0x38,0x7e,0xa3,0x6f,0x32,0xbe,0xa0,0x0, 0x38,0x23,0xbe,0xa3, +0x6f,0x31,0x50,0x18,0x7e,0xb3,0x6f,0x3b,0xbe,0xb3,0x5c,0xdb,0x28,0x13,0x7e,0xb3, +0x5c,0xdb,0x4, 0x7a,0xb3,0x5c,0xdb,0x7a,0xa3,0x6f,0x31,0x22,0xe4,0x7a,0xb3,0x5c, +0xdb,0x22,0x7e,0x73,0x6f,0x32,0xbe,0x73,0x6f,0x31,0x78,0x7d,0x7e,0xb3,0x6f,0x31, +0xb4,0x1, 0x76,0x7e,0xb3,0x5d,0x91,0xbe,0xb0,0x2, 0x38,0x13,0x4, 0x7a,0xb3,0x5d, +0x91,0x7e,0x37,0x6d,0xc9,0x7a,0x37,0x5d,0x94,0x7e,0x37,0x6d,0xcb,0x80,0x69,0x7e, +0x37,0x5d,0x92,0xbe,0x34,0x6, 0xa4,0x50,0x4e,0x7e,0x27,0x6d,0xc9,0x7d,0x12,0x9e, +0x17,0x5d,0x94,0xbe,0x14,0x0, 0x0, 0x8, 0x8, 0x7d,0x32,0x9e,0x37,0x5d,0x94,0x80, +0x4, 0x6d,0x33,0x9d,0x31,0x2e,0x37,0x5d,0x92,0x7a,0x37,0x5d,0x92,0x7e,0x37,0x6d, +0xcb,0x7d,0x3, 0x9e,0x7, 0x5d,0x96,0xbe,0x4, 0x0, 0x0, 0x8, 0x8, 0x7d,0x13,0x9e, +0x17,0x5d,0x96,0x80,0x4, 0x6d,0x11,0x9d,0x10,0x2e,0x17,0x5d,0x92,0x7a,0x17,0x5d, +0x92,0x7a,0x27,0x5d,0x94,0x80,0x11,0xd3,0x22,0xe4,0x7a,0xb3,0x5d,0x91,0x6d,0x33, +0x7a,0x37,0x5d,0x92,0x7a,0x37,0x5d,0x94,0x7a,0x37,0x5d,0x96,0xc3,0x22,0xca,0x79, +0x7e,0xb3,0x6f,0x31,0x7e,0x18,0x6e,0xd7,0x70,0x11,0x12,0xbf,0xfc,0x7e,0x8, 0x63, +0x63,0x7e,0x34,0x0, 0xa, 0xe4,0x12,0x24,0x38,0x41,0xdf,0x6c,0xaa,0x41,0xd8,0x7e, +0xf0,0x9, 0xac,0xfa,0x9, 0x37,0x6e,0x27,0xc2,0x0, 0xc2,0x1, 0x49,0xe7,0x6e,0x23, +0x4d,0xee,0x68,0x11,0x7e,0xd4,0x21,0xde,0x7e,0xc4,0x0, 0xff,0xb, 0x6a,0xf0,0x1b, +0xf4,0xbd,0xef,0x78,0x2, 0xd2,0x0, 0x49,0xf7,0x6e,0x25,0x4d,0xff,0x68,0xd, 0x7e, +0xd4,0x21,0xec,0x12,0xc2,0xf6,0x1b,0x4, 0xbd,0xf0,0x78,0x2, 0xd2,0x1, 0xbe,0x30, +0xff,0x78,0x2, 0x41,0xd6,0x7e,0x10,0x9, 0xac,0x13,0x7f,0x61,0x2d,0xd0,0x7e,0x6b, +0xb0,0xb4,0x2, 0x2, 0x80,0x2, 0x41,0xa9,0x7e,0x10,0x4, 0xac,0x13,0x49,0xd0,0x63, +0x3b,0x7d,0xce,0x9d,0xcd,0xbe,0xc4,0x0, 0x0, 0x8, 0x6, 0x7d,0x4e,0x9d,0x4d,0x80, +0x4, 0x6d,0x44,0x9d,0x4c,0x49,0xb0,0x63,0x3d,0x7d,0xcf,0x9d,0xcb,0xbe,0xc4,0x0, +0x0, 0x8, 0x6, 0x7d,0xf, 0x9d,0xb, 0x80,0x4, 0x6d,0x0, 0x9d,0xc, 0x7e,0x23,0x6f, +0x31,0xbe,0x20,0x8, 0x40,0x8, 0x74,0xf, 0xa, 0xca,0x19,0xbc,0x59,0xd4,0xa, 0xca, +0x9, 0xbc,0x63,0x63,0x70,0xe, 0x7d,0xc0,0x2d,0xc4,0xbe,0xc4,0x0, 0x4, 0x50,0x4, +0x6d,0x0, 0x7d,0x40,0xa, 0xca,0x9, 0x2c,0x59,0xd4,0xa, 0xc2,0xbd,0xc4,0x28,0x52, +0xbd,0xc0,0x28,0x4e,0x20,0x0, 0x3, 0x12,0xc2,0xec,0x20,0x1, 0x12,0x7e,0xf0,0x4, +0xac,0xf3,0x49,0xb7,0x63,0x3d,0x7e,0xf0,0x9, 0xac,0xfa,0x59,0xb7,0x6e,0x25,0xa, +0xba,0x2e,0xb4,0x5a,0x38,0x7e,0xb9,0xb0,0x4, 0x7a,0xb9,0xb0,0xa, 0xba,0x9, 0xbb, +0x5a,0x38,0xbe,0xb0,0x32,0x50,0x2, 0x41,0xd6,0xa, 0xba,0x9, 0xbb,0x59,0xd4,0xbe, +0xb0,0x8, 0x40,0x2, 0x41,0xd6,0xa, 0xba,0x2e,0xb4,0x59,0xd4,0x4, 0x7a,0xb9,0xb0, +0x41,0xd6,0xbd,0xc4,0x28,0x56,0xbd,0xc0,0x28,0x52,0x20,0x0, 0x4f,0x20,0x1, 0x4c, +0x7e,0xb3,0x78,0xc9,0x70,0x46,0x12,0xc2,0xec,0x7e,0xf0,0x4, 0xac,0xf3,0x49,0xd7, +0x63,0x3d,0x7e,0xf0,0x9, 0xac,0xfa,0x59,0xd7,0x6e,0x25,0xa, 0xda,0x2e,0xd4,0x5a, +0x38,0x7e,0xd9,0xb0,0x4, 0x7a,0xd9,0xb0,0xa, 0xda,0x9, 0xbd,0x5a,0x38,0xbe,0xb0, +0x32,0x50,0x2, 0x41,0xd6,0xa, 0xda,0x9, 0xbd,0x59,0xd4,0xbe,0xb0,0x8, 0x50,0x76, +0xa, 0xda,0x2e,0xd4,0x59,0xd4,0x4, 0x7a,0xd9,0xb0,0x80,0x6a,0x74,0x1, 0xa, 0xda, +0x19,0xbd,0x63,0x63,0x12,0xc2,0xe2,0x7e,0xf0,0x4, 0xac,0xf3,0x59,0xf7,0x63,0x3d, +0xbe,0x20,0x8, 0x40,0xa, 0x74,0x1, 0xa, 0xda,0x19,0xbd,0x59,0xd4,0x80,0x11,0xbe, +0x20,0x1, 0x28,0xc, 0xa, 0xda,0x2e,0xd4,0x59,0xd4,0x7c,0xb2,0x14,0x7a,0xd9,0xb0, +0xe4,0xa, 0xda,0x19,0xbd,0x5a,0x38,0x80,0x2d,0x7e,0xf0,0x9, 0xac,0xf3,0x7f,0x61, +0x2d,0xd7,0x7e,0x6b,0xb0,0x70,0x9, 0x12,0xc2,0xe2,0x59,0xf7,0x63,0x3d,0x80,0x16, +0x7e,0xf0,0x9, 0xac,0xf3,0x7f,0x71,0x2d,0xf7,0x7e,0x7b,0xb0,0xb4,0x1, 0x7, 0xe4, +0xa, 0xfa,0x19,0xbf,0x63,0x63,0xb, 0xa0,0x12,0x45,0x1f,0x28,0x2, 0x1, 0xff,0xda, +0x79,0x22,0x7e,0xf0,0x4, 0xac,0xf3,0x59,0xe7,0x63,0x3b,0x22,0x7e,0xf0,0x9, 0xac, +0xfa,0x59,0xd7,0x6e,0x23,0x22,0x7e,0xc4,0x0, 0xff,0xb, 0x6a,0x0, 0x22,0x6c,0x77, +0x7e,0xa0,0xff,0x7e,0x78,0xff,0xff,0x6d,0x44,0x6c,0x66,0x7e,0x14,0x0, 0x1, 0x7c, +0xb6,0x60,0x5, 0x3e,0x14,0x14,0x78,0xfb,0x7e,0xb3,0x75,0x30,0xa, 0x2b,0x5d,0x21, +0xbe,0x24,0x0, 0x0, 0x8, 0xd, 0x7e,0x24,0xff,0xff,0x7e,0x30,0x26,0xac,0x36,0x59, +0x21,0x75,0x39,0x12,0xc3,0x97,0x6d,0x0, 0xbf,0x7, 0x50,0x8, 0x7f,0x70,0x49,0x42, +0x75,0x3b,0x7c,0x76,0xb, 0x60,0xa5,0xbe,0x3, 0xc1,0x7e,0x63,0x75,0x33,0xbc,0x67, +0x68,0x42,0x12,0xc3,0x97,0x7d,0xc1,0x1e,0xc4,0x1e,0xc4,0x7e,0xd4,0x0, 0x3, 0xad, +0xdc,0x6d,0xcc,0xbf,0x76,0x50,0xb, 0x7e,0xd4,0x22,0x2c,0x12,0xc2,0xf6,0xbd,0x4, +0x38,0x20,0x1e,0x14,0x6d,0x0, 0xbf,0x70,0x50,0x1a,0x7e,0x50,0x26,0xac,0x56,0x49, +0x12,0x75,0x3b,0x7e,0xf4,0x22,0x2c,0x7e,0xe4,0x0, 0xff,0xb, 0x7a,0x20,0xbd,0x12, +0x28,0x2, 0x7c,0xa7,0x7c,0xba,0x22,0x7e,0x50,0x26,0xac,0x56,0x49,0x12,0x75,0x39, +0x22,0x7c,0xa7,0x7c,0x3b,0x7e,0xb3,0x77,0xf, 0xbe,0xb0,0x1, 0x78,0x2, 0x81,0x99, +0xe5,0x1e,0x70,0x2, 0x81,0x99,0x7e,0xb3,0x73,0xd3,0x70,0x2, 0x81,0x99,0x12,0xc6, +0xef,0x7c,0xb3,0x7c,0x7a,0x12,0xc4,0x9a,0x12,0xc7,0x26,0x7e,0xb3,0x75,0x36,0x1b, +0xb1,0x68,0x20,0x4, 0x68,0x2, 0x81,0x99,0x7e,0x73,0x75,0x33,0x7a,0x73,0x75,0x34, +0xe4,0x7a,0xb3,0x75,0x35,0x6c,0xaa,0x12,0xc7,0x3, 0xbe,0xa0,0x3, 0x78,0xf8,0x74, +0x2, 0x81,0x95,0x7e,0x43,0x75,0x34,0x7e,0x50,0x26,0xac,0x45,0x7d,0x32,0x2e,0x34, +0x75,0x38,0x12,0xbf,0xec,0x9, 0x72,0x75,0x38,0xbe,0x70,0x2, 0x50,0x2, 0x81,0x99, +0xe4,0x19,0xb2,0x75,0x38,0x49,0x12,0x75,0x39,0x2e,0x17,0x75,0xb1,0xbe,0x14,0x7f, +0xff,0x50,0xb, 0x7d,0x32,0x2e,0x34,0x75,0x39,0x1b,0x38,0x10,0x80,0x8, 0x7e,0x34, +0x7f,0xff,0x59,0x32,0x75,0x39,0x49,0x32,0x75,0x3b,0xbe,0x37,0x75,0xb1,0x50,0x8, +0x7e,0x37,0x75,0xb1,0x59,0x32,0x75,0x3b,0x7e,0x37,0x75,0xb5,0x12,0xc5,0x95,0xa, +0x4b,0x7e,0xa3,0x75,0x34,0x7e,0x50,0x26,0xac,0x5a,0x2e,0x24,0x75,0x3d,0xb, 0x28, +0x30,0x2d,0x34,0x1b,0x28,0x30,0xbe,0xa0,0x2, 0x50,0x5, 0x7c,0xba,0x4, 0x80,0x1, +0xe4,0x7a,0xb3,0x75,0x34,0x12,0xc5,0xb6,0x38,0x1f,0x12,0xc2,0xfe,0xbe,0xb0,0xff, +0x68,0x12,0x30,0x19,0xf, 0x7e,0x73,0x75,0x33,0x12,0x37,0x76,0x12,0x3b,0xdc,0xe4, +0x7a,0xb3,0x75,0xa9,0xe4,0x7a,0xb3,0x75,0x36,0x22,0x6c,0x44,0xc2,0x1, 0x7e,0x47, +0x75,0xb5,0x7e,0x7, 0x75,0xb7,0x12,0x58,0x1, 0x40,0x4, 0xd2,0x1, 0x80,0x6, 0xa5, +0xbf,0x1, 0x2, 0xd2,0x1, 0x7e,0xb3,0x75,0x36,0x60,0x2, 0xa1,0x49,0x7e,0xb3,0x75, +0xbe,0x4, 0x7a,0xb3,0x75,0xbe,0x7d,0x34,0x12,0xc5,0x95,0xbe,0xb0,0x1, 0x40,0x8, +0x4e,0x40,0x4, 0xe4,0x7a,0xb3,0x75,0xbe,0xbe,0x44,0x0, 0x0, 0x28,0x10,0x7e,0x17, +0x75,0x31,0xbd,0x10,0x50,0x8, 0x4e,0x40,0x2, 0xe4,0x7a,0xb3,0x75,0xbe,0x7e,0x17, +0x75,0x31,0xbd,0x10,0x50,0x17,0x7e,0xb3,0x75,0xbd,0x4, 0x7a,0xb3,0x75,0xbd,0xbe, +0x4, 0xb, 0xb8,0x28,0x16,0x7e,0xb3,0x75,0xbd,0xb, 0xb2,0x80,0xa, 0x7e,0xb3,0x75, +0xbd,0xbe,0xb0,0x0, 0x28,0x5, 0x14,0x7a,0xb3,0x75,0xbd,0x7e,0x53,0x75,0xbd,0xbe, +0x50,0xa, 0x40,0x11,0xe4,0x7a,0xb3,0x75,0xbd,0x7a,0x43,0x75,0xa9,0x74,0x1, 0x7a, +0xb3,0x75,0x36,0x80,0x14,0x7e,0x73,0x75,0xbe,0xbe,0x70,0x20,0x40,0xb, 0x74,0x20, +0x7a,0xb3,0x75,0xbe,0xe4,0x7a,0xb3,0x75,0xa9,0x7d,0x34,0x7d,0x20,0x2, 0xc5,0x50, +0x7d,0x2, 0x12,0xc5,0x95,0x7c,0x7b,0xbe,0x70,0x1, 0x40,0x1d,0x7e,0x34,0x22,0x32, +0x7e,0x24,0x0, 0xff,0xb, 0x1a,0x20,0x7e,0x34,0x0, 0xa, 0xad,0x32,0x1e,0x34,0xbd, +0x30,0x38,0x6, 0x74,0x1, 0x7a,0xb3,0x75,0xbc,0x7e,0xb3,0x75,0xbc,0xbe,0xb0,0x0, +0x28,0xa, 0x14,0x7a,0xb3,0x75,0xbc,0xe4,0x7a,0xb3,0x25,0xae,0x30,0x18,0x3, 0xd2, +0x1a,0x22,0xc2,0x1a,0x22,0x6c,0xaa,0x6c,0x55,0x7e,0x14,0x0, 0x1, 0x7c,0xb5,0x60, +0x5, 0x3e,0x14,0x14,0x78,0xfb,0x5d,0x13,0x68,0x2, 0xb, 0xa0,0xb, 0x50,0xbe,0x50, +0x10,0x40,0xe6,0x7c,0xba,0x22,0x90,0x22,0x34,0xe4,0x93,0xbe,0xb3,0x75,0x35,0x22, +0x12,0xc6,0x33,0xc2,0x18,0x7e,0xb3,0x75,0x36,0x60,0x67,0x12,0x57,0xfd,0x40,0x10, +0x7e,0xa3,0x75,0x34,0x74,0x26,0xa4,0x9, 0x75,0x75,0x38,0xbe,0x70,0x1, 0x40,0x52, +0x7e,0x73,0x75,0x34,0xb, 0x70,0xbe,0x70,0x3, 0x40,0x2, 0x6c,0x77,0x7e,0x14,0x0, +0x1, 0x7c,0xb7,0x60,0x5, 0x3e,0x14,0x14,0x78,0xfb,0x7e,0x63,0x75,0x30,0xa, 0x26, +0x5d,0x21,0xbe,0x24,0x0, 0x0, 0x8, 0x9, 0xb, 0x70,0xbe,0x70,0x3, 0x40,0x2, 0x6c, +0x77,0x7e,0x63,0x75,0x33,0xbc,0x67,0x78,0x9, 0x7e,0xb3,0x75,0x35,0x4, 0x7a,0xb3, +0x75,0x35,0x12,0xc5,0xb6,0x7e,0xb3,0x78,0x97,0x38,0x4, 0x7c,0x76,0x80,0x0, 0x2, +0x36,0xc3,0x22,0x7e,0x27,0x75,0xb7,0x7e,0x37,0x75,0x31,0xbd,0x32,0x50,0x20,0x7e, +0xa3,0x75,0x34,0x12,0xc6,0x9c,0x60,0x5, 0x3e,0x44,0x14,0x78,0xfb,0x7c,0xb9,0x4e, +0xb3,0x75,0x30,0x7a,0xb3,0x75,0x30,0x74,0x5, 0xa, 0x3a,0x19,0xb3,0x75,0xaa,0x6c, +0xaa,0xa, 0x3a,0x9, 0xb3,0x75,0xaa,0xbe,0xb0,0x0, 0x28,0xa, 0xa, 0x4a,0x2e,0x44, +0x75,0xaa,0x14,0x7a,0x49,0xb0,0xa, 0x3a,0x9, 0xb3,0x75,0xaa,0x70,0x16,0x12,0xc6, +0x9c,0x60,0x5, 0x3e,0x44,0x14,0x78,0xfb,0x7c,0xb9,0x64,0xff,0x5e,0xb3,0x75,0x30, +0x7a,0xb3,0x75,0x30,0xb, 0xa0,0xbe,0xa0,0x3, 0x40,0xc6,0x22,0x7e,0x44,0x0, 0x1, +0x7c,0xba,0x22,0x7c,0xab,0x6c,0x77,0x7e,0x63,0x75,0xbb,0xbc,0x67,0x78,0x4, 0x6c, +0x66,0x80,0x27,0x12,0xc6,0x9c,0x60,0x5, 0x3e,0x44,0x14,0x78,0xfb,0x7e,0x63,0x73, +0xd4,0xa, 0x26,0x5d,0x24,0x68,0x6, 0x7e,0x60,0x1, 0x12,0xc6,0xe5,0x7e,0x63,0x73, +0xd5,0xa, 0x26,0x5d,0x24,0x68,0x6, 0x7e,0x60,0x1, 0x12,0xc6,0xe5,0xb, 0x70,0xbe, +0x70,0x3, 0x40,0xc3,0x22,0x7e,0x50,0x26,0xac,0x57,0x19,0x62,0x75,0x44,0x22,0x7e, +0x34,0x22,0x32,0x12,0x2a,0xa9,0x7a,0x37,0x75,0x31,0x7e,0x34,0x5, 0xdc,0x7a,0x37, +0x75,0xad,0x22,0x6d,0x33,0x7e,0x90,0x26,0xac,0x9a,0x59,0x34,0x75,0x39,0x59,0x34, +0x75,0x3b,0x59,0x34,0x75,0x3d,0x59,0x34,0x75,0x3f,0x59,0x34,0x75,0x41,0xe4,0x19, +0xb4,0x75,0x38,0xb, 0xa0,0x22,0xc2,0x17,0xd2,0x19,0x7e,0x37,0x75,0xad,0xbe,0x37, +0x75,0xb7,0x50,0x2, 0xd2,0x17,0x30,0x24,0x4, 0x74,0x64,0x80,0x7, 0x7e,0xb3,0x75, +0xaf,0x60,0x5, 0x14,0x7a,0xb3,0x75,0xaf,0x30,0x17,0x5, 0xe4,0x7a,0xb3,0x75,0xaf, +0x7e,0xb3,0x75,0xaf,0x60,0x2, 0xc2,0x19,0x22,0x7f,0x61,0xbe,0x68,0x0, 0x6, 0x50, +0x15,0xbe,0x68,0x0, 0x2, 0x50,0x3, 0x7f,0x16,0x22,0x7f,0x16,0x1e,0x34,0x1e,0x24, +0x50,0x3, 0x4e,0x60,0x80,0x22,0x7f,0x76,0xe4,0x80,0xe, 0x7f,0x17,0x1e,0x34,0xe, +0x24,0x50,0x3, 0x4e,0x60,0x80,0x7f,0x71,0x4, 0xbe,0x78,0x0, 0x1, 0x18,0xec,0x1e, +0xb0,0x60,0x5, 0x2f,0x77,0x14,0x78,0xfb,0x7f,0x17,0x2f,0x17,0x2f,0x17,0x1e,0x34, +0xe, 0x24,0x50,0x3, 0x4e,0x60,0x80,0x7f,0x71,0x7f,0x57,0x7f,0x16,0x7f,0x7, 0x12, +0x22,0xbf,0x2f,0x17,0x1e,0x34,0x1e,0x24,0x50,0x3, 0x4e,0x60,0x80,0x7f,0x71,0x7d, +0x2b,0x7d,0x3f,0x9d,0x32,0x12,0x24,0x5a,0xbe,0x34,0x0, 0x1, 0x18,0xdb,0x7f,0x17, +0x22,0x6c,0xaa,0x6c,0x33,0x80,0x4e,0x7e,0x90,0x4, 0xac,0x93,0x7e,0x10,0x28,0xac, +0x1a,0x7d,0xe0,0x2d,0xe4,0x49,0xe, 0x5a,0x6b,0x7d,0xf3,0x9d,0xf0,0xbe,0xf4,0x0, +0x0, 0x8, 0x6, 0x7d,0x43,0x9d,0x40,0x80,0x4, 0x6d,0x44,0x9d,0x4f,0x49,0xde,0x5a, +0x6d,0x7d,0xf2,0x9d,0xfd,0xbe,0xf4,0x0, 0x0, 0x8, 0x6, 0x7d,0x2, 0x9d,0xd, 0x80, +0x4, 0x6d,0x0, 0x9d,0xf, 0xbe,0x44,0x0, 0x50,0x50,0x8, 0xbe,0x4, 0x0, 0x50,0x50, +0x2, 0xd3,0x22,0xb, 0x30,0xa, 0xfa,0x9, 0x2f,0x5a,0x5c,0xbc,0x23,0x38,0xa8,0xb, +0xa0,0xbe,0xa0,0xf, 0x40,0x9d,0xc3,0x22,0x12,0x73,0x78,0x74,0x2, 0xac,0x7b,0x7e, +0x8, 0x5c,0xc5,0xe4,0x12,0x24,0x38,0x90,0x21,0x51,0x93,0x7c,0x7b,0x74,0x2, 0xac, +0x7b,0x7e,0x8, 0x5a,0x44,0xe4,0x2, 0x24,0x38,0x7e,0xb3,0x5c,0xc4,0xbe,0xb0,0xfa, +0x50,0x5, 0x4, 0x7a,0xb3,0x5c,0xc4,0x22,0x74,0x1, 0x7a,0xb3,0x6d,0xc8,0x7e,0xb3, +0x6d,0xb4,0xb4,0x1, 0x5, 0xe4,0x7a,0xb3,0x6d,0xc8,0x12,0x7a,0xd, 0x28,0x5, 0xe4, +0x7a,0xb3,0x6d,0xc8,0x7e,0xb3,0x25,0xae,0x70,0x5, 0xe4,0x7a,0xb3,0x6d,0xc8,0x7e, +0xb3,0x78,0xd6,0xb4,0x1, 0x5, 0xe4,0x7a,0xb3,0x6d,0xc8,0x7e,0x34,0x22,0x32,0x12, +0x2a,0xa9,0xbe,0x37,0x75,0xb7,0x50,0x5, 0xe4,0x7a,0xb3,0x6d,0xc8,0x7e,0xb3,0x77, +0xf, 0x70,0xa, 0x12,0x6f,0xb7,0x28,0x5, 0xe4,0x7a,0xb3,0x6d,0xc8,0x7e,0xb3,0x76, +0xe4,0xb4,0x1, 0x17,0x7e,0x73,0x78,0xea,0xbe,0x70,0x3c,0x50,0xe, 0xbe,0x70,0x0, +0x28,0x9, 0xe5,0x1e,0x60,0x5, 0xe4,0x7a,0xb3,0x6d,0xc8,0x22,0x12,0xca,0x42,0x12, +0xca,0x4c,0x12,0xc8,0xef,0x2, 0xc8,0xe8,0x74,0x1, 0x7a,0xb3,0x78,0xfc,0x22,0xca, +0x3b,0x7e,0xf3,0x6f,0x65,0x7e,0xe3,0x6f,0x66,0x7e,0xd3,0x6f,0x67,0x6d,0x88,0x6c, +0xcc,0x80,0x15,0x7d,0x18,0x3e,0x14,0x2e,0x14,0x4, 0x0, 0x6d,0x0, 0x7c,0xbd,0x12, +0xc9,0x1f,0xa, 0x9f,0x2d,0x89,0xb, 0xc0,0xbc,0xec,0x38,0xe7,0xda,0x3b,0x22,0xca, +0x79,0x7c,0xfb,0x7f,0x70,0xc2,0x0, 0x75,0x27,0x0, 0x9f,0x55,0x6d,0x11,0x7d,0xd1, +0x7d,0xc1,0x7d,0x91,0x7e,0x4, 0x7f,0xff,0x6c,0xee,0x80,0x26,0x74,0x2, 0xac,0xbe, +0x7f,0x17,0x2d,0x35,0xb, 0x1a,0x30,0x12,0x24,0x5a,0x7d,0xc3,0xbd,0xdc,0x58,0x2, +0x7d,0xdc,0xbd,0xc, 0x8, 0x2, 0x7d,0xc, 0x7d,0x3c,0x1a,0x26,0x1a,0x24,0x2f,0x51, +0xb, 0xe0,0xbc,0xfe,0x38,0xd6,0xbe,0xd4,0x0, 0x1e,0x58,0xa, 0x7e,0xb3,0x6d,0xa9, +0x70,0x4, 0x6d,0x33,0x41,0x35,0xbe,0xd4,0x4, 0xb0,0x8, 0x2, 0xd2,0x0, 0xbe,0xd4, +0x4, 0xb0,0x8, 0x11,0x7e,0xd4,0x0, 0xa0,0x7e,0xb3,0x77,0xf, 0xb4,0x1, 0x38,0x7e, +0xd4,0x2, 0x58,0x80,0x32,0xbe,0xd4,0x3, 0x20,0x8, 0x11,0x7e,0xd4,0x0, 0x96,0x7e, +0xb3,0x77,0xf, 0xb4,0x1, 0x21,0x7e,0xd4,0x2, 0x26,0x80,0x1b,0xbe,0xd4,0x0, 0x0, +0x8, 0x11,0x7e,0xd4,0x0, 0x8c,0x7e,0xb3,0x77,0xf, 0xb4,0x1, 0xa, 0x7e,0xd4,0x1, +0xc2,0x80,0x4, 0x6d,0x33,0x80,0x6e,0xbd,0xd, 0x8, 0x5, 0x30,0x0, 0x2, 0x7d,0xd0, +0xa, 0x1f,0x12,0xca,0x38,0x9f,0x55,0x7f,0x27,0x6c,0xee,0x80,0x1c,0xb, 0x2a,0x90, +0xb, 0x55,0x7d,0x39,0x12,0x24,0x5a,0x7d,0xc3,0xbd,0x1c,0x8, 0xa, 0x7d,0x39,0x1a, +0x26,0x1a,0x24,0x2f,0x51,0x5, 0x27,0xb, 0xe0,0xbc,0xfe,0x38,0xe0,0x6d,0x11,0xe5, +0x27,0xbe,0xb0,0x0, 0x28,0x7, 0xe5,0x27,0xa, 0x1b,0x12,0xca,0x38,0xbd,0x1d,0x8, +0x4, 0x7d,0x1d,0x80,0xa, 0x6d,0x0, 0x9d,0xd, 0xbd,0x1, 0x8, 0x2, 0x7d,0x10,0x6c, +0xee,0x80,0xc, 0xb, 0x7a,0x0, 0x9d,0x1, 0x1b,0x7a,0x0, 0xb, 0xf5,0xb, 0xe0,0xbc, +0xfe,0x38,0xf0,0x7d,0x31,0xda,0x79,0x22,0x6d,0x0, 0x7f,0x15,0x12,0x23,0x10,0x7d, +0x13,0x22,0xe4,0x7a,0xb3,0x6d,0xc0,0x7a,0xb3,0x6d,0xc1,0x22,0x7e,0x8, 0x8, 0xc, +0x7e,0x1f,0x24,0x68,0x12,0x5a,0x55,0x7e,0x37,0x73,0xd6,0x7e,0x50,0x4, 0x7d,0x3, +0x3e,0x4, 0x7e,0x2f,0x24,0x68,0x2d,0x50,0xb, 0x2a,0x10,0x59,0x10,0x8, 0xc, 0xb, +0x34,0x1b,0x50,0x78,0xe9,0x22,0xca,0x79,0x7e,0x73,0x6f,0x31,0x4c,0x77,0x68,0x5, +0xbe,0x70,0x1, 0x28,0xb, 0x12,0xcc,0x87,0x74,0x1e,0x7a,0xb3,0x78,0x85,0x81,0x7c, +0x7e,0xb3,0x78,0x69,0x70,0x4a,0x7e,0xb3,0x6f,0x32,0x70,0x44,0xa5,0xbf,0x1, 0x40, +0x7e,0x57,0x6e,0x25,0xbe,0x54,0x5, 0x50,0x28,0x36,0xbe,0x54,0x5, 0xa0,0x50,0x30, +0x7e,0xc7,0x6e,0x23,0xbe,0xc4,0x0, 0x50,0x28,0x26,0xbe,0xc4,0x2, 0x76,0x50,0x20, +0x7a,0xc7,0x78,0x7c,0x7a,0x57,0x78,0x7e,0x7e,0xc7,0x78,0x7c,0x7a,0xc7,0x78,0x6a, +0x7a,0x57,0x78,0x6c,0x74,0x1, 0x7a,0xb3,0x78,0x69,0x74,0x1e,0x7a,0xb3,0x78,0x85, +0x7e,0xa3,0x78,0x69,0xbe,0xa0,0x1, 0x68,0x2, 0x61,0x7a,0x7e,0xb3,0x6f,0x32,0xb4, +0x1, 0x2, 0x80,0x2, 0x61,0x7a,0xa5,0xbf,0x1, 0x2, 0x80,0x2, 0x61,0x7a,0x12,0xcc, +0x90,0x28,0x77,0xbe,0xc4,0x5, 0xa0,0x50,0x71,0x7e,0xf7,0x6e,0x23,0x7a,0xf7,0x78, +0x7c,0x7a,0xc7,0x78,0x7e,0x7e,0xf7,0x78,0x7c,0x9e,0xf7,0x78,0x6a,0x7d,0x4c,0x9e, +0x47,0x78,0x6c,0xbe,0xf4,0x0, 0x0, 0x8, 0x6, 0x7d,0xcf,0x7d,0xdc,0x80,0x4, 0x6d, +0xdd,0x9d,0xdf,0xbe,0x44,0x0, 0x0, 0x8, 0x6, 0x7d,0xc4,0x7d,0xec,0x80,0x4, 0x6d, +0xee,0x9d,0xe4,0xbe,0xd4,0x0, 0x64,0x58,0x2e,0xbe,0xe4,0x0, 0x64,0x58,0x28,0x7d, +0xce,0x2d,0xcd,0xbe,0xc4,0x0, 0x96,0x58,0x1e,0x7d,0xcf,0xe, 0xc4,0xe, 0xc4,0x2e, +0xc7,0x78,0x6a,0x7a,0xc7,0x6e,0x23,0x7d,0xc4,0xe, 0xc4,0xe, 0xc4,0x2e,0xc7,0x78, +0x6c,0x7a,0xc7,0x6e,0x25,0x80,0x3, 0x75,0x6c,0x1, 0xe5,0x6c,0xbe,0xb0,0x1, 0x68, +0xe, 0x12,0xcc,0x90,0x28,0x2, 0x81,0x6c,0xbe,0xa0,0x1, 0x68,0x2, 0x81,0x6c,0x75, +0x6c,0x1, 0xbe,0xa0,0x1, 0x78,0x6, 0x74,0x1d,0x7a,0xb3,0x78,0x85,0xe4,0x7a,0xb3, +0x78,0x69,0x7e,0x37,0x6e,0x23,0x7d,0xf3,0x9e,0xf7,0x78,0x73,0x7e,0x47,0x6e,0x25, +0x9e,0x47,0x78,0x75,0xbe,0xf4,0x0, 0x0, 0x8, 0x6, 0x7d,0x2f,0x7d,0xd2,0x80,0x4, +0x6d,0xdd,0x9d,0xdf,0xbe,0x44,0x0, 0x0, 0x8, 0x6, 0x7d,0x24,0x7d,0xe2,0x80,0x4, +0x6d,0xee,0x9d,0xe4,0x7e,0xf3,0x78,0x85,0x7c,0x1f,0x2e,0x10,0x4e,0xa5,0xe7,0x7c, +0xeb,0xa, 0x9e,0x6d,0x88,0x7e,0x8, 0x0, 0x40,0x9f,0x4, 0x6d,0x22,0x12,0x22,0xa3, +0x7f,0x51,0x7e,0x37,0x78,0x73,0x6d,0x22,0x7f,0x4, 0x12,0xcc,0x7f,0x1e,0x34,0x1e, +0x24,0x50,0x3, 0x4e,0x60,0x80,0x14,0x78,0xf4,0x7d,0x53,0x7a,0x57,0x6e,0x23,0xa, +0x3e,0x6d,0x22,0x7e,0x8, 0x0, 0x40,0x9f,0x1, 0x7e,0x37,0x6e,0x25,0x12,0x22,0xa3, +0x7f,0x51,0xa, 0x1e,0x6d,0x0, 0x7e,0x37,0x78,0x75,0x6d,0x22,0x12,0xcc,0x7f,0x1e, +0x34,0x1e,0x24,0x50,0x3, 0x4e,0x60,0x80,0x14,0x78,0xf4,0x7d,0x53,0x7a,0x57,0x6e, +0x25,0xbe,0xf0,0x0, 0x28,0x1f,0xbe,0xd4,0x0, 0x2, 0x18,0x10,0xbe,0xe4,0x0, 0x2, +0x18,0xa, 0x7d,0x5e,0x2d,0x5d,0xbe,0x54,0x0, 0x4, 0x8, 0x9, 0x7c,0xbf,0x14,0x7a, +0xb3,0x78,0x85,0x80,0x7, 0x4c,0xff,0x78,0x3, 0x12,0xcc,0x87,0x7e,0x57,0x6e,0x23, +0x7a,0x57,0x78,0x73,0x7e,0x57,0x6e,0x25,0x7a,0x57,0x78,0x75,0xda,0x79,0x22,0x12, +0x22,0xa3,0x2f,0x15,0x74,0x6, 0x22,0xe4,0x7a,0xb3,0x78,0x69,0x75,0x6c,0x0, 0x22, +0x7e,0xc7,0x6e,0x25,0xbe,0xc4,0x5, 0x50,0x22,0x6d,0x33,0x7a,0x37,0x78,0xdb,0xe4, +0x7a,0xb3,0x78,0xd9,0x7a,0xb3,0x78,0xda,0x7a,0xb3,0x78,0xd6,0x2, 0x6f,0xd0,0x7e, +0x63,0x6f,0x65,0x7e,0x73,0x6f,0x64,0xac,0x76,0x7d,0x13,0x1e,0x14,0x7e,0x27,0x6d, +0x97,0x2e,0x27,0x6d,0x95,0xbd,0x21,0x38,0x16,0x1e,0x34,0x1e,0x34,0x7d,0x23,0x2e, +0x24,0x0, 0x14,0xbe,0x27,0x6d,0x95,0x40,0x6, 0xbe,0x37,0x6d,0x97,0x50,0x2, 0xd3, +0x22,0xc3,0x22,0xe4,0x7a,0xb3,0x6d,0xb5,0x7a,0xb3,0x6d,0xb8,0x12,0xce,0x6, 0x7a, +0xb3,0x6d,0xb9,0x7a,0xb3,0x6d,0xba,0x7e,0x73,0x6d,0x94,0xbe,0x70,0x0, 0x28,0x2e, +0x12,0xce,0xf, 0x8, 0x6, 0x74,0x1, 0x7a,0xb3,0x6d,0xb5,0x7e,0x7, 0x6f,0x4a,0x7d, +0x30,0x12,0xcd,0xfa,0x8, 0x3, 0x12,0xcd,0xf3,0x7d,0x30,0x3e,0x34,0x3e,0x34,0x7d, +0x21,0x12,0xcd,0xfe,0x8, 0x8, 0xd2,0x2e,0x6d,0x33,0x7a,0x37,0x76,0xba,0x7e,0x37, +0x6d,0xa3,0xbe,0x34,0x1, 0xf4,0x8, 0x2d,0x30,0x2d,0x2a,0x30,0x2e,0x1b,0x12,0xcd, +0xf3,0x7e,0x37,0x76,0xba,0xb, 0x34,0x7a,0x37,0x76,0xba,0xbe,0x34,0x0, 0x5, 0x28, +0x8, 0xc2,0x2e,0x6d,0x33,0x7a,0x37,0x76,0xba,0x12,0xce,0x61,0xbe,0x34,0x0, 0x64, +0x28,0x3, 0x12,0xcd,0xf3,0x7e,0xa3,0x6d,0x94,0xbe,0xa0,0x0, 0x28,0x42,0x12,0xce, +0xf, 0x8, 0x1a,0x7e,0x73,0x25,0xaf,0xa5,0xbf,0x0, 0x8, 0x74,0x1, 0x7a,0xb3,0x6d, +0xb6,0x80,0xa, 0xa5,0xbf,0x1, 0x6, 0x74,0x1, 0x7a,0xb3,0x6d,0xb7,0x7e,0x37,0x6f, +0x4a,0x12,0xcd,0xfa,0x8, 0x1a,0x7e,0x73,0x25,0xaf,0xa5,0xbf,0x0, 0x8, 0x74,0x1, +0x7a,0xb3,0x6d,0xb9,0x80,0xa, 0xa5,0xbf,0x1, 0x6, 0x74,0x1, 0x7a,0xb3,0x6d,0xba, +0x7e,0xb3,0x6d,0xb5,0xbe,0xb0,0x1, 0x68,0x10,0x7e,0xb3,0x6d,0xb6,0xbe,0xb0,0x1, +0x68,0x7, 0x7e,0xb3,0x6d,0xb7,0xb4,0x1, 0x24,0xbe,0xa0,0x0, 0x28,0x1f,0xbe,0xa0, +0x3, 0x50,0x1a,0x7e,0xb3,0x6d,0x93,0xb4,0x1, 0x13,0x90,0x21,0xfa,0xe4,0x93,0xbe, +0xb3,0x6c,0x9, 0x68,0x8, 0xe4,0x7a,0xb3,0x6d,0xb5,0x12,0xce,0x6, 0xe4,0x7a,0xb3, +0x6d,0xbb,0x22,0x74,0x1, 0x7a,0xb3,0x6d,0xb8,0x22,0xad,0x31,0x7d,0x24,0x12,0x22, +0x71,0xbe,0x37,0x6d,0xa3,0x22,0x7a,0xb3,0x6d,0xb6,0x7a,0xb3,0x6d,0xb7,0x22,0x7e, +0x37,0x6f,0x44,0x7e,0x14,0x0, 0x6, 0xad,0x31,0x7e,0x44,0x0, 0x4, 0x7d,0x24,0x12, +0x22,0x71,0xbe,0x37,0x6d,0x9d,0x22,0x12,0x9f,0x9a,0x12,0xcc,0xe3,0x12,0xce,0x57, +0x2, 0xce,0x33,0x7e,0x27,0x73,0xd6,0x1e,0x24,0x1e,0x24,0xe4,0x7a,0xb3,0x6d,0xbf, +0x7e,0x37,0x6d,0x95,0xbd,0x32,0x38,0x8, 0x7e,0x37,0x6d,0x97,0xbd,0x32,0x28,0x6, +0x74,0x1, 0x7a,0xb3,0x6d,0xbf,0x22,0xe4,0x7a,0xb3,0x6d,0xbc,0x7a,0xb3,0x6d,0xbc, +0x22,0x6d,0x22,0x7d,0x32,0x80,0x12,0x7d,0x52,0x12,0x5b,0x26,0xb, 0xa, 0x10,0xbe, +0x14,0xff,0xb0,0x58,0x2, 0xb, 0x34,0xb, 0x24,0x7e,0x17,0x73,0xd6,0xbd,0x12,0x38, +0xe6,0x22,0x7e,0x37,0x6d,0x97,0x2e,0x37,0x6d,0x95,0xbe,0x37,0x6d,0xae,0x28,0x2, +0xd3,0x22,0xc3,0x22,0xca,0xd8,0xca,0x79,0x7d,0x43,0x7f,0x70,0x12,0x6f,0xb7,0x28, +0x33,0x6c,0xff,0x80,0x2a,0x74,0x2, 0xac,0xbf,0x9, 0xe5,0x6c,0x9, 0x9, 0xd5,0x6c, +0xa, 0x7c,0xbe,0x7c,0x7d,0x12,0x9b,0x6a,0x7d,0xd3,0x7f,0x7, 0x7c,0x7d,0x12,0xce, +0xda,0x50,0x7, 0xbd,0x4d,0x58,0x6, 0xd3,0x80,0xb, 0xd3,0x80,0x8, 0xb, 0xf0,0x12, +0x6f,0x11,0x38,0xd1,0xc3,0xda,0x79,0xda,0xd8,0x22,0x7c,0x67,0x7e,0xb, 0x70,0xbc, +0x7b,0x38,0x1a,0x29,0x70,0x0, 0x2, 0xbc,0x7b,0x28,0x12,0x29,0x70,0x0, 0x1, 0xbc, +0x76,0x38,0xa, 0x29,0x70,0x0, 0x3, 0xbc,0x76,0x28,0x2, 0xd3,0x22,0xc3,0x22,0xca, +0xd8,0xca,0x79,0x7c,0xdb,0xbe,0xd0,0x80,0x78,0x19,0x7e,0xe0,0xff,0x6c,0xff,0x12, +0xcf,0x5b,0xbc,0x7e,0x38,0x4, 0x7c,0xe7,0x7c,0xdf,0xb, 0xf0,0xbe,0xf0,0x3, 0x78, +0xee,0x80,0x1b,0xbe,0xd0,0x81,0x78,0x16,0x6c,0xee,0x6c,0xff,0x12,0xcf,0x5b,0xbc, +0x7e,0x40,0x4, 0x7c,0xe7,0x7c,0xdf,0xb, 0xf0,0xbe,0xf0,0x3, 0x78,0xee,0xbe,0xd0, +0x3, 0x40,0x2, 0x6c,0xdd,0x7e,0x73,0x75,0x33,0xbc,0x7d,0x68,0x5, 0x7c,0xbd,0x12, +0x37,0x76,0x7a,0xd3,0x77,0x3b,0xda,0x79,0xda,0xd8,0x22,0x74,0x26,0xac,0xbf,0x9, +0x75,0x75,0x37,0x22,0x7c,0xab,0x7e,0x50,0xa, 0xac,0x57,0x9, 0x62,0x29,0x8c,0x7e, +0x50,0x27,0xac,0x57,0x49,0x2, 0x28,0xee,0xb, 0x4, 0x7e,0x50,0x8, 0xac,0x5a,0x49, +0x22,0x0, 0xe7,0x7a,0x27,0x75,0xb5,0x7e,0x50,0x8, 0xac,0x5a,0x49,0x22,0x0, 0xe5, +0x7a,0x27,0x75,0xb3,0x7e,0x50,0x8, 0xac,0x5a,0x9, 0xb2,0x0, 0xeb,0x7a,0xb3,0x75, +0xb9,0x7e,0x50,0x8, 0xac,0x5a,0x9, 0xb2,0x0, 0xec,0x7a,0xb3,0x75,0xba,0x74,0x8, +0xa4,0x49,0x15,0x0, 0xe9,0x7c,0xb6,0x60,0x5, 0x1e,0x4, 0x14,0x78,0xfb,0x8d,0x10, +0x7a,0x17,0x75,0xb7,0x74,0x27,0xac,0xb7,0x9, 0x75,0x28,0xe8,0x7a,0x73,0x75,0xb0, +0x22,0x7e,0xb3,0x75,0xa9,0x22,0x7c,0xab,0x6c,0x77,0x7e,0x50,0x26,0xac,0x57,0x9, +0x62,0x75,0x37,0xbc,0x6a,0x68,0x7, 0xb, 0x70,0xbe,0x70,0x3, 0x40,0xec,0xa5,0xbf, +0x3, 0x6, 0x7a,0xa3,0x75,0x37,0xd3,0x22,0xc3,0x22,0xca,0xf8,0x7c,0xab,0xc2,0x2, +0x12,0x3e,0xb8,0xac,0x67,0x9, 0xf3,0x75,0x37,0x7c,0xba,0x12,0x75,0x8c,0x6c,0xaa, +0x6c,0x77,0x7e,0x50,0x26,0xac,0x57,0x19,0xa2,0x75,0x43,0xb, 0x70,0xa5,0xbf,0x3, +0xf1,0x30,0x2, 0x5, 0x7c,0xbf,0x12,0x34,0x9, 0xd3,0xda,0xf8,0x22,0x7e,0x34,0x6b, +0x8b,0x1e,0x34,0x3e,0x34,0x7a,0x17,0x6b,0xcb,0x7a,0x37,0x6b,0xcf,0x7e,0x34,0x24, +0xbc,0x7a,0x37,0x6b,0xcd,0x7e,0x73,0x6f,0x64,0x7a,0x73,0x6b,0xc8,0x7e,0x73,0x6f, +0x65,0x7a,0x73,0x6b,0xc7,0x7e,0x37,0x6f,0x42,0x7a,0x37,0x6b,0xd1,0x7e,0x37,0x6f, +0x44,0x7a,0x37,0x6b,0xd3,0x7e,0x37,0x6f,0x4c,0x7a,0x37,0x6b,0xd5,0x7e,0x37,0x6f, +0x4e,0x7a,0x37,0x6b,0xd7,0x74,0x1, 0x7a,0xb3,0x6b,0xc9,0x7a,0xb3,0x6b,0xca,0x7e, +0x8, 0x6b,0xc7,0x7e,0x18,0x6b,0xd9,0x12,0x3, 0x1d,0x7e,0x37,0x6b,0xe5,0x7a,0x37, +0x6f,0x60,0x7e,0x27,0x6b,0xdf,0xbe,0x24,0x0, 0x0, 0x8, 0x6, 0x7e,0x7, 0x6b,0xdf, +0x80,0x6, 0x6d,0x0, 0x9e,0x7, 0x6b,0xdf,0x7e,0x37,0x6b,0xe3,0xbe,0x34,0x0, 0x0, +0x8, 0x6, 0x7e,0x17,0x6b,0xe3,0x80,0x6, 0x6d,0x11,0x9e,0x17,0x6b,0xe3,0xbd,0x10, +0x8, 0x12,0xbe,0x34,0x0, 0x0, 0x8, 0x5, 0x7e,0x37,0x6b,0xe3,0x22,0x6d,0x33,0x9e, +0x37,0x6b,0xe3,0x22,0xbe,0x24,0x0, 0x0, 0x8, 0x6, 0x7e,0x37,0x6b,0xdf,0x80,0x6, +0x6d,0x33,0x9e,0x37,0x6b,0xdf,0x22,0x7c,0x16,0x7c,0x7, 0x7c,0x9b,0x7e,0xb3,0x6f, +0x66,0xf5,0x2a,0x7e,0xb3,0x6f,0x67,0xf5,0x2b,0x9f,0x77,0xa, 0x31,0xa, 0x19,0x9d, +0x13,0x7c,0x83,0x80,0x7d,0x7a,0x81,0x28,0xbe,0x80,0x0, 0x58,0xc, 0x1a,0x58,0x1a, +0x19,0x9d,0x15,0xa, 0x59,0x2d,0x51,0xf5,0x28,0xe5,0x2a,0xbc,0xb8,0x18,0xc, 0x1a, +0x59,0x1a,0x18,0x9d,0x15,0xa, 0x59,0x9d,0x51,0xf5,0x28,0xa, 0x11,0xa, 0x50,0x9d, +0x51,0xf5,0x27,0x80,0x3d,0x85,0x27,0x29,0xe5,0x27,0xbe,0xb0,0x0, 0x58,0xe, 0xe5, +0x27,0x1a,0x5b,0x1a,0x10,0x9d,0x15,0xa, 0x50,0x2d,0x51,0xf5,0x29,0xe5,0x2b,0xbe, +0xb1,0x27,0x18,0xe, 0x1a,0x30,0xe5,0x27,0x1a,0x1b,0x9d,0x13,0xa, 0x50,0x9d,0x51, +0xf5,0x29,0xe5,0x28,0x7e,0x71,0x29,0x12,0x9b,0x6a,0x1a,0x26,0x1a,0x24,0x2f,0x71, +0x5, 0x27,0xa, 0x21,0xa, 0x30,0x2d,0x32,0xe5,0x27,0x1a,0x1b,0xbd,0x13,0x8, 0xb5, +0xb, 0x80,0xa, 0x11,0xa, 0x59,0x2d,0x51,0x1a,0x18,0xbd,0x15,0x18,0x2, 0x21,0x5, +0x7f,0x17,0x22,0x7c,0x67,0x7c,0x7b,0x7e,0x50,0x2, 0xac,0x57,0x9, 0xa2,0x6c,0x9, +0x9, 0x72,0x6c,0xa, 0x90,0x21,0xfa,0xe4,0x93,0xbc,0xba,0x78,0x3, 0x9f,0x11,0x22, +0x7c,0xba,0x2, 0xd0,0xe7,0x7e,0xb3,0x78,0xb0,0xb4,0x1, 0x3, 0x2, 0xd1,0xc0,0x22, +0xca,0x3b,0x7e,0xb3,0x6d,0x93,0xf5,0x27,0x6c,0xcc,0x41,0x80,0x74,0x2, 0xac,0xbc, +0x9, 0xf5,0x6c,0x9, 0x9, 0xe5,0x6c,0xa, 0x7e,0x73,0x6f,0x64,0xbc,0x7f,0x78,0x2, +0x41,0x7e,0x12,0xd3,0x39,0x7d,0xd3,0x12,0xd3,0x59,0x78,0x2, 0x6d,0xee,0x12,0xd3, +0x23,0x78,0x2, 0x6d,0xff,0x4c,0xee,0x78,0x2, 0x6d,0x0, 0x12,0xd3,0x1b,0x78,0x2, +0x6d,0x11,0xbe,0xe4,0x0, 0x46,0x8, 0x2, 0xb, 0xd0,0xbe,0xf4,0x0, 0x46,0x8, 0x2, +0xb, 0xd0,0xbe,0x4, 0x0, 0x46,0x8, 0x2, 0xb, 0xd0,0xbe,0x14,0x0, 0x46,0x8, 0x2, +0xb, 0xd0,0xbe,0xd0,0x2, 0x40,0x4, 0xd2,0x0, 0x80,0x2e,0x4c,0xff,0x68,0x16,0x7e, +0xb3,0x6f,0x66,0x14,0xbc,0xbf,0x68,0xd, 0x4c,0xee,0x68,0x9, 0x7e,0xb3,0x6f,0x67, +0x14,0xbc,0xbe,0x78,0x14,0xbe,0xd4,0x1, 0x2c,0x8, 0xe, 0xbe,0xd0,0x0, 0x28,0x9, +0x7e,0xb3,0x78,0xb0,0xb4,0x1, 0x2, 0xd2,0x0, 0x20,0x0, 0x22,0x7d,0xc3,0x7e,0xb3, +0x78,0xb0,0xb4,0x3, 0x4, 0x7d,0x5c,0x80,0xb, 0x7e,0xb3,0x78,0xb0,0xb4,0x1, 0xb, +0x7d,0x5c,0xe, 0x54,0xe, 0x54,0xe, 0x54,0x12,0xd3,0x2b,0x12,0x6f,0xb0,0xb, 0xc0, +0xe5,0x27,0xbc,0xbc,0x28,0x2, 0x21,0xcc,0x7e,0xb3,0x78,0xb0,0xb4,0x3, 0x2, 0x80, +0x2, 0x61,0x18,0x7e,0xb3,0x6d,0x94,0xf5,0x27,0x6c,0xcc,0x80,0x75,0x74,0x2, 0xac, +0xbc,0x9, 0xf5,0x6c,0x45,0x9, 0xe5,0x6c,0x46,0x7e,0x73,0x6f,0x64,0xbc,0x7f,0x68, +0x5f,0x12,0xd3,0x39,0x12,0xd3,0x59,0x78,0x2, 0x6d,0xee,0x12,0xd3,0x23,0x78,0x2, +0x6d,0xff,0x4c,0xee,0x78,0x2, 0x6d,0x0, 0x12,0xd3,0x1b,0x78,0x2, 0x6d,0x11,0xbe, +0xe4,0xff,0xba,0x58,0x2, 0xb, 0xd0,0xbe,0xf4,0xff,0xba,0x58,0x2, 0xb, 0xd0,0xbe, +0x4, 0xff,0xba,0x58,0x2, 0xb, 0xd0,0xbe,0x14,0xff,0xba,0x58,0x2, 0xb, 0xd0,0xbe, +0xd0,0x2, 0x40,0x2, 0xd2,0x0, 0x20,0x0, 0x17,0x12,0x24,0x5a,0x7d,0xc3,0x7d,0x5c, +0xe, 0x54,0xe, 0x54,0x6e,0x54,0xff,0xff,0xb, 0x54,0x12,0xd3,0x2b,0x12,0x6f,0xb0, +0xb, 0xc0,0xe5,0x27,0xbc,0xbc,0x38,0x85,0xda,0x3b,0x22,0x7e,0xb3,0x6f,0x65,0x14, +0xbc,0xbe,0x22,0x7e,0xb3,0x6f,0x64,0x14,0xbc,0xbf,0x22,0x7d,0xb4,0x3e,0xb4,0x7e, +0x1f,0x24,0x68,0x2d,0x3b,0x1b,0x1a,0x50,0x22,0x6c,0xdd,0xc2,0x0, 0x7e,0x33,0x6f, +0x65,0x7c,0x9f,0xac,0x93,0xa, 0x5e,0x2d,0x45,0x7d,0x24,0x3e,0x24,0x7e,0x5f,0x24, +0x68,0x7f,0x75,0x2d,0xf2,0xb, 0x7a,0x30,0x22,0xa, 0x53,0x7d,0x14,0x9d,0x15,0x3e, +0x14,0x2d,0x1b,0x7d,0xa, 0xb, 0xa, 0xe0,0x2d,0x54,0x3e,0x54,0x7f,0x5, 0x2d,0x15, +0xb, 0xa, 0xf0,0x7d,0x54,0x1b,0x54,0x3e,0x54,0x7f,0x5, 0x2d,0x15,0xb, 0xa, 0x0, +0x2d,0xb2,0x69,0x15,0x0, 0x2, 0x4c,0xff,0x22,0x7e,0xb3,0x78,0xb0,0xb4,0x3, 0x3, +0x2, 0xd1,0xc0,0x22,0x7e,0xb3,0x6d,0x93,0x70,0x2b,0x7e,0xb3,0x6f,0x31,0x70,0x25, +0x6c,0xaa,0x7e,0x70,0xff,0x7e,0x90,0x4, 0xac,0x9a,0x19,0x74,0x28,0xb7,0xe4,0x19, +0xb4,0x28,0xb8,0x74,0x3, 0x19,0xb4,0x28,0xb9,0xe4,0x19,0xb4,0x28,0xba,0xb, 0xa0, +0xbe,0xa0,0xa, 0x78,0xdd,0x22,0xca,0x79,0x7f,0x70,0x7e,0x3, 0x6f,0x65,0x7e,0x93, +0x6d,0x93,0x7e,0x6f,0x24,0x68,0x6c,0x11,0x6c,0x88,0x6c,0xff,0x80,0xd, 0xa, 0x1f, +0x12,0xd4,0x8a,0xbc,0x78,0x40,0x2, 0x7c,0x87,0xb, 0xf0,0xbc,0x9f,0x38,0xef,0x7e, +0xf0,0x1, 0x81,0x77,0x75,0x29,0x0, 0x6d,0xbb,0x6d,0x99,0x7d,0xa9,0x6c,0xee,0x80, +0x3a,0x7e,0x30,0x2, 0xac,0x3e,0x9, 0xb1,0x6c,0x9, 0xf5,0x27,0x9, 0xb1,0x6c,0xa, +0xf5,0x28,0xa, 0x1e,0x12,0xd4,0x8a,0xbc,0x7f,0x78,0x1e,0x5, 0x29,0xe5,0x27,0xa, +0x1b,0x2d,0xa1,0xe5,0x28,0xa, 0x1b,0x2d,0x91,0xe5,0x27,0x7e,0x71,0x28,0x12,0x9b, +0x6a,0x7d,0x83,0xbd,0xb8,0x58,0x2, 0x7d,0xb8,0xb, 0xe0,0xbc,0x9e,0x38,0xc2,0xe5, +0x29,0xbe,0xb0,0x0, 0x28,0x2f,0xe5,0x29,0xa, 0x8b,0x7d,0x3a,0x8d,0x38,0x7d,0xa3, +0x8d,0x98,0x12,0xd4,0x82,0x19,0xa1,0x75,0xc2,0x7d,0x39,0x12,0xd4,0x82,0x19,0xa1, +0x75,0xc3,0xa, 0x30,0xad,0x3a,0x7d,0x13,0x2d,0x19,0x3e,0x14,0x7f,0x16,0x2d,0x31, +0x1b,0x1a,0xb0,0xb, 0x10,0xb, 0xf0,0xbc,0x8f,0x40,0x2, 0x61,0xf4,0x7c,0xb1,0xda, +0x79,0x22,0x7c,0xa7,0x7e,0x30,0x2, 0xac,0x31,0x22,0x7f,0x17,0x2d,0x31,0x7e,0x1b, +0x70,0x22,0xca,0x3b,0x7c,0x45,0x7c,0x57,0x7c,0x7b,0x75,0x44,0x0, 0x7e,0xe0,0xff, +0xc2,0x5, 0x7e,0xf4,0x7f,0xff,0xbc,0x67,0x28,0x4, 0x7c,0xd7,0x80,0x2, 0x7c,0xd6, +0xbc,0x67,0x50,0x4, 0x7c,0xa7,0x80,0x2, 0x7c,0xa6,0xbc,0x45,0x28,0x4, 0x7c,0xc5, +0x80,0x2, 0x7c,0xc4,0xbc,0x45,0x50,0x4, 0x7c,0xb5,0x80,0x2, 0x7c,0xb4,0xf5,0x45, +0x7a,0xd1,0x46,0x7a,0xc1,0x47,0x7a,0xa1,0x48,0x85,0x45,0x49,0xd2,0x5, 0xbe,0x51, +0x47,0x78,0xa, 0xe5,0x46,0xbc,0xb7,0x50,0xc, 0xc2,0x5, 0x80,0x8, 0xe5,0x46,0xbc, +0xb6,0x50,0x2, 0xc2,0x5, 0x30,0x5, 0x2, 0xa1,0xfa,0x7c,0xda,0xa1,0xfa,0x7e,0x8, +0x63,0x6d,0x7e,0x34,0x0, 0xc, 0x74,0xff,0x12,0x24,0x38,0x30,0x5, 0x6f,0x12,0xd6, +0x48,0xbd,0x23,0x18,0x3, 0x12,0xd6,0x78,0xa, 0xd, 0xb, 0x4, 0xe5,0x48,0xa, 0x1b, +0xbd,0x1, 0x18,0x7, 0xa, 0x5d,0xb, 0x54,0x12,0xd6,0x3f,0xbd,0x1, 0x18,0xb, 0xbd, +0x23,0x18,0x7, 0xa, 0x3d,0xb, 0x34,0x12,0xd6,0x6b,0x7e,0xe4,0x80,0x1, 0x6c,0xff, +0x12,0xd6,0x5e,0x68,0xe, 0x12,0xd6,0x2f,0x68,0x9, 0x12,0xd6,0x85,0x8, 0x4, 0x7d, +0xe3,0x7c,0xef,0xb, 0xf0,0xbe,0xf0,0x3, 0x78,0xe6,0x12,0xd6,0x51,0x78,0x7, 0x12, +0xd6,0x37,0x78,0x2, 0xc1,0x8, 0xe5,0x49,0xbe,0xb1,0x47,0x78,0x7, 0x12,0xd6,0x37, +0x78,0x2, 0xc1,0x8, 0xbe,0xe0,0xff,0x78,0x2, 0xa1,0xfa,0x80,0x67,0x12,0xd6,0x48, +0xbd,0x23,0x18,0x3, 0x12,0xd6,0x78,0xa, 0xd, 0x1b,0x4, 0xe5,0x46,0xa, 0x1b,0xbd, +0x1, 0x48,0x7, 0xa, 0x5d,0x1b,0x54,0x12,0xd6,0x3f,0xbd,0x1, 0x48,0xb, 0xbd,0x23, +0x18,0x7, 0xa, 0x3d,0x1b,0x34,0x12,0xd6,0x6b,0x7e,0xe4,0x80,0x1, 0x6c,0xff,0x12, +0xd6,0x5e,0x68,0xe, 0x12,0xd6,0x2f,0x68,0x9, 0x12,0xd6,0x85,0x8, 0x4, 0x7d,0xe3, +0x7c,0xef,0xb, 0xf0,0xbe,0xf0,0x3, 0x78,0xe6,0x12,0xd6,0x51,0x78,0x5, 0x12,0xd6, +0x27,0x68,0x35,0xe5,0x49,0xbe,0xb1,0x47,0x78,0x5, 0x12,0xd6,0x27,0x68,0x29,0xbe, +0xe0,0xff,0x68,0x16,0x7e,0x71,0x44,0x74,0x2, 0xac,0x7b,0x59,0xe3,0x76,0x1f,0x9, +0xd4,0x63,0x6d,0x7c,0xca,0x5, 0x44,0x7e,0xe0,0xff,0xe5,0x45,0xa, 0x2b,0xb, 0x24, +0xa, 0x3c,0xbd,0x32,0x68,0x2, 0x81,0xfe,0x6c,0xff,0x80,0x10,0x74,0x2, 0xac,0xbf, +0x49,0xe5,0x76,0x1f,0xbd,0xef,0x58,0x2, 0x7d,0xfe,0xb, 0xf0,0xe5,0x44,0xbc,0xbf, +0x38,0xea,0x7d,0x3f,0xda,0x3b,0x22,0x9, 0xb4,0x63,0x6d,0xbe,0xb1,0x46,0x22,0x9, +0x72,0x63,0x6e,0xbe,0x70,0xff,0x22,0x9, 0xb4,0x63,0x6d,0xbe,0xb1,0x48,0x22,0x7a, +0xb3,0x63,0x71,0x7a,0xc3,0x63,0x72,0x22,0xa, 0x2c,0xb, 0x24,0xe5,0x49,0xa, 0x3b, +0x22,0x7e,0x90,0x4, 0xac,0x9e,0x9, 0xa4,0x63,0x6e,0xbe,0xa1,0x49,0x22,0x7e,0x50, +0x4, 0xac,0x5f,0x9, 0xb2,0x63,0x6d,0xbe,0xb0,0xff,0x22,0x7a,0x73,0x63,0x75,0xa, +0x3c,0xb, 0x34,0x7a,0x73,0x63,0x76,0x22,0x7a,0xd3,0x63,0x6d,0xa, 0x1c,0xb, 0x14, +0x7a,0x33,0x63,0x6e,0x22,0x12,0x9b,0x6a,0x74,0x4, 0xac,0xbf,0x59,0x35,0x63,0x6f, +0xbd,0x3e,0x22,0xca,0x3b,0x75,0x29,0xff,0x6c,0xff,0x7e,0xc0,0xff,0x6c,0xee,0x6c, +0x99,0x6c,0x88,0x7e,0xf4,0x7f,0xff,0x6c,0xdd,0x80,0x68,0x7e,0x70,0x2, 0xac,0x7d, +0x9, 0xb3,0x6c,0x9, 0xf5,0x27,0x9, 0x73,0x6c,0xa, 0x7a,0x71,0x28,0x12,0x9b,0x6a, +0x7d,0x3, 0xbd,0xf, 0x58,0x2, 0x7d,0xf0,0xe5,0x27,0xbe,0xb1,0x29,0x50,0x3, 0x85, +0x27,0x29,0xe5,0x27,0xbc,0xbf,0x28,0x3, 0x7e,0xf1,0x27,0xe5,0x28,0xbc,0xbc,0x50, +0x3, 0x7e,0xc1,0x28,0xe5,0x28,0xbc,0xbe,0x28,0x3, 0x7e,0xe1,0x28,0xe5,0x29,0xa, +0x5b,0xa, 0x1f,0x9d,0x15,0xbe,0x14,0x0, 0x7, 0x18,0xc, 0xa, 0x5c,0xa, 0x1e,0x9d, +0x15,0xbe,0x14,0x0, 0x7, 0x8, 0xa, 0x7e,0x14,0x1, 0xf4,0x7a,0x17,0x76,0x3d,0xe1, +0xb4,0xb, 0xd0,0x7e,0x73,0x6d,0x93,0xbc,0x7d,0x38,0x90,0x7d,0x3f,0x3e,0x34,0x12, +0xa7,0xc6,0x7d,0x3, 0x7c,0xdc,0x80,0x1c,0x7e,0xc1,0x29,0x80,0x11,0x7c,0xbc,0x7c, +0x7d,0x12,0x9b,0x6a,0xbd,0x30,0x8, 0x2, 0xb, 0x90,0xb, 0x80,0xb, 0xc0,0xbc,0xfc, +0x50,0xeb,0xb, 0xd0,0xbc,0xed,0x50,0xe0,0x7e,0x73,0x6f,0x32,0xbe,0x70,0x3, 0x40, +0xd, 0x12,0xd7,0xb7,0x50,0x28,0xb, 0x14,0x7a,0x17,0x76,0x3d,0x80,0x20,0xbe,0x70, +0x1, 0x38,0x1b,0x7e,0x17,0x76,0x3d,0xbe,0x14,0x0, 0x2, 0x28,0x6, 0x1b,0x15,0x7a, +0x17,0x76,0x3d,0x12,0xd7,0xc0,0x50,0x6, 0xb, 0x14,0x7a,0x17,0x75,0xbf,0x7e,0x73, +0x6d,0x93,0xbe,0x70,0x1, 0x40,0x2d,0x7e,0x30,0x2, 0xac,0x38,0x74,0x3, 0xac,0xb9, +0xbd,0x51,0x8, 0xf, 0x6d,0x11,0x7a,0x17,0x76,0x3d,0x12,0xd7,0xc0,0x50,0x15,0xb, +0x14,0x80,0xd, 0x12,0xd7,0xb7,0x50,0x6, 0xb, 0x15,0x7a,0x17,0x76,0x3d,0x6d,0x11, +0x7a,0x17,0x75,0xbf,0xda,0x3b,0x22,0x7e,0x17,0x76,0x3d,0xbe,0x14,0x3, 0xe8,0x22, +0x7e,0x17,0x75,0xbf,0xbe,0x14,0x1, 0xf4,0x22,0x6d,0x22,0x80,0x13,0x75,0xb5,0x0, +0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0xe5,0xb5,0x7a,0xb, 0xb0,0xb, 0x14,0xb, 0x24, +0xbd,0x32,0x38,0xe9,0x22,0xa9,0xc5,0xca,0x75,0xed,0x8f,0x75,0xad,0xb0,0xa9,0xc7, +0x94,0xa9,0xd4,0x94,0x22,0xa9,0x31,0xcd,0xf, 0xa9,0x31,0xe5,0xb, 0xa9,0xd5,0xea, +0xa9,0xc5,0xea,0xc2,0x95,0xa9,0xc1,0xcd,0xa9,0x30,0xcd,0x7, 0xa9,0x30,0xe5,0x3, +0xa9,0xc0,0xcd,0xa9,0x32,0xcd,0x7, 0xa9,0x32,0xe5,0x3, 0xa9,0xc2,0xcd,0xa9,0x35, +0xcd,0x7, 0xa9,0x35,0xe5,0x3, 0xa9,0xc5,0xcd,0xa9,0x36,0xcd,0x7, 0xa9,0x36,0xe5, +0x3, 0xa9,0xc6,0xcd,0xa9,0x37,0xcd,0x7, 0xa9,0x37,0xe5,0x3, 0xa9,0xc7,0xcd,0x32, +0x7e,0x14,0xf7,0xf0,0x7e,0x4, 0x0, 0xff,0x7e,0x34,0x47,0x52,0x7e,0x24,0x55,0x50, +0x79,0x30,0x0, 0x2, 0x1b,0xa, 0x20,0x7e,0x34,0x45,0x20,0x7e,0x24,0x41,0x44,0x79, +0x30,0x0, 0x6, 0x79,0x20,0x0, 0x4, 0x7e,0x34,0x99,0x33,0x7e,0x24,0x66,0xcc,0x79, +0x30,0x0, 0xa, 0x79,0x20,0x0, 0x8, 0x7e,0x34,0x41,0x47,0x7e,0x24,0x46,0x4c,0x79, +0x30,0x0, 0xe, 0x79,0x20,0x0, 0xc, 0x22,0x7e,0xb3,0x78,0x9c,0xbe,0xb0,0xc8,0x50, +0x5, 0x4, 0x7a,0xb3,0x78,0x9c,0x22,0xc2,0x8e,0x43,0x89,0x20,0x75,0x8d,0x1, 0x75, +0x8b,0x0, 0xd2,0x8e,0xd2,0xab,0x22,0x75,0xb7,0x0, 0x75,0xb8,0x0, 0x75,0xf7,0x0, +0x75,0xf8,0x0, 0xa9,0xd0,0xb7,0xd2,0xb8,0xa9,0xd5,0xb7,0xd2,0xbd,0xa9,0xd0,0xf7, +0xd2,0xf8,0xa9,0xd4,0xb7,0xc2,0xbc,0xa9,0xc2,0xb7,0xc2,0xba,0xa9,0xc1,0xb7,0xc2, +0xb9,0xa9,0xc3,0xb7,0xc2,0xbb,0x22,0xa2,0xac,0x92,0x2, 0xc2,0xac,0x7e,0xf, 0x78, +0xf2,0x30,0x1, 0xa, 0xb, 0x16,0xb, 0xa, 0x30,0x4e,0x70,0xc, 0x80,0x8, 0xb, 0x16, +0xb, 0xa, 0x30,0x5e,0x70,0xf3,0x1b,0xa, 0x30,0xa2,0x2, 0x92,0xac,0x22,0xa, 0x7, +0xa, 0x1b,0x2d,0x10,0x12,0xd9,0x10,0x6d,0x0, 0x7e,0x18,0xbb,0x80,0x2, 0x23,0x10, +0x3e,0x14,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x22,0x7e,0x8, 0x0, 0x6d,0x12,0xaf,0xd0, +0x7e,0x34,0x1, 0x5, 0x7a,0x37,0x0, 0x6d,0x7e,0x34,0x20,0x0, 0x7a,0x37,0x0, 0x6f, +0x6d,0x33,0x7a,0x37,0x0, 0x71,0x7e,0x34,0x1, 0x80,0x7a,0x37,0x0, 0x73,0x7e,0x34, +0x28,0x30,0x7a,0x37,0x0, 0x75,0x7e,0x34,0x18,0x1e,0x7a,0x37,0x0, 0x77,0x7e,0x34, +0x66,0x6, 0x7a,0x37,0x0, 0x79,0x7e,0x34,0x73,0x0, 0x7a,0x37,0x0, 0x7b,0x7e,0x34, +0x14,0x2, 0x7a,0x37,0x0, 0x7d,0x6d,0x33,0x7a,0x37,0x0, 0x81,0x7a,0x37,0x0, 0x83, +0x7a,0x37,0x0, 0x85,0x7a,0x37,0x0, 0x87,0x7a,0x37,0x0, 0x99,0x7e,0x34,0x38,0x1, +0x7a,0x37,0x0, 0x9b,0x7e,0x34,0x4, 0x1, 0x7a,0x37,0x0, 0x9d,0x7e,0x34,0x6, 0x3, +0x7a,0x37,0x0, 0x9f,0x6d,0x33,0x7a,0x37,0x0, 0xa1,0x7a,0x37,0x0, 0xa3,0x7a,0x37, +0x0, 0xa5,0x7a,0x37,0x0, 0xa7,0x7e,0x34,0x0, 0x3c,0xca,0x39,0x7e,0x18,0x0, 0x6d, +0x7e,0x8, 0x0, 0xa9,0x12,0x24,0x13,0x1b,0xfd,0x22,0xca,0x3b,0x7e,0x38,0x1, 0x7d, +0x12,0x7, 0xb5,0x7e,0xa3,0x1, 0x8d,0xbe,0xa0,0xff,0x68,0x2a,0x7e,0x63,0x1, 0x8e, +0xbe,0x60,0xff,0x68,0x21,0x7e,0x73,0x1, 0x8f,0xbe,0x70,0xff,0x68,0x18,0x4c,0xaa, +0x68,0x14,0x4c,0x66,0x68,0x10,0x4c,0x77,0x68,0xc, 0x7a,0xa3,0x76,0xe2,0x7a,0x63, +0x76,0xde,0x7a,0x73,0x76,0xdf,0xc2,0x10,0x7e,0xb3,0x1, 0x8f,0xbe,0xb0,0x3, 0x28, +0xf, 0x74,0x4, 0x7a,0xb3,0x78,0x92,0x7a,0xb3,0x4a,0x68,0x75,0xc3,0x84,0xd2,0x10, +0xc2,0x12,0x7c,0xba,0x54,0xf0,0xb4,0xe0,0x2, 0xd2,0x12,0x7e,0x8, 0x0, 0xa1,0x69, +0x33,0x0, 0x4, 0x12,0xda,0xab,0x12,0x0, 0x6, 0x7e,0x8, 0x0, 0xa3,0x29,0xb3,0x0, +0x6, 0x12,0xda,0xa0,0x7e,0x8, 0x0, 0xdd,0x69,0x33,0x0, 0x1, 0x12,0xda,0xab,0x12, +0x0, 0x6, 0x7e,0x8, 0x0, 0xdf,0x29,0xb3,0x0, 0x3, 0x12,0xda,0xa0,0x7e,0x8, 0x0, +0xa5,0x69,0x33,0x0, 0xa, 0x12,0xda,0xab,0x12,0x0, 0x6, 0x7e,0x8, 0x0, 0xa7,0x29, +0xb3,0x0, 0xc, 0x12,0xda,0xa0,0x7e,0x8, 0x0, 0xe1,0x69,0x33,0x0, 0x7, 0x12,0xda, +0xab,0x12,0x0, 0x6, 0x7e,0x8, 0x0, 0xe3,0x29,0xb3,0x0, 0x9, 0x12,0xda,0xa0,0x7e, +0x34,0x0, 0x1a,0x7e,0x8, 0x0, 0xa1,0x7e,0x24,0x0, 0x4, 0x12,0x3, 0xfa,0x7e,0x34, +0x0, 0x1a,0x7e,0x8, 0x0, 0xdd,0x7e,0x24,0x0, 0x4, 0x12,0x4, 0x96,0xda,0x3b,0x22, +0x54,0xc0,0x23,0x23,0x54,0x3, 0xa, 0x3b,0x2, 0xd, 0xa5,0x7d,0x23,0x7c,0x45,0x6c, +0x55,0xa, 0x36,0x4d,0x32,0x22,0x6c,0xaa,0x7e,0x30,0x2c,0xac,0x3a,0x12,0x33,0xe4, +0x7e,0x34,0x0, 0x2c,0xe4,0x12,0x24,0x38,0xb, 0xa0,0xbe,0xa0,0x3, 0x40,0xe9,0x22, +0x7e,0x34,0x0, 0x4, 0x12,0x3f,0xf5,0x74,0x1, 0x12,0x3f,0xfe,0x7e,0x73,0x78,0x97, +0x7a,0x73,0x77,0xb7,0x7a,0x73,0x77,0xb8,0x22,0x7e,0xb3,0x77,0xb4,0xb4,0x1, 0x37, +0x7e,0xa3,0x77,0xb2,0x7a,0xa3,0x77,0xb3,0x7e,0xb3,0x77,0xba,0x4, 0x7a,0xb3,0x77, +0xba,0x7e,0xb3,0x77,0xb9,0x4, 0x7a,0xb3,0x77,0xb9,0x12,0xdd,0x8d,0xbe,0xb3,0x77, +0xb9,0x38,0x14,0xe4,0x7a,0xb3,0x77,0xb9,0x7c,0xba,0x4, 0x7a,0xb3,0x77,0xb2,0x12, +0xdb,0x28,0x28,0x3, 0x12,0x4f,0xf3,0x22,0x7e,0x73,0x77,0xb1,0xbe,0x73,0x77,0xb2, +0x22,0x7e,0xb3,0x77,0xb4,0xb4,0x1, 0x2, 0x80,0x2, 0x61,0xd2,0x7e,0x73,0x77,0xb1, +0xbe,0x73,0x77,0xb3,0x28,0x74,0x7e,0x63,0x77,0xb3,0x7e,0x70,0x7, 0xac,0x67,0x49, +0x53,0x77,0xbd,0x7c,0xab,0x7e,0x43,0x77,0xba,0x7e,0x50,0x2, 0xac,0x45,0x2d,0x32, +0x49,0x33,0x77,0xbf,0x7a,0x35,0x1c,0x4d,0x33,0x68,0x4f,0xd2,0x30,0x1b,0xa0,0x68, +0x10,0x1b,0xa0,0x68,0xc, 0x1b,0xa0,0x68,0x8, 0x1b,0xa0,0x68,0x4, 0xb, 0xa2,0x78, +0x39,0x12,0xdb,0xd3,0x30,0x13,0x4, 0x74,0x2, 0x80,0x2, 0x74,0x1, 0x7e,0xa3,0x77, +0xba,0xa, 0x3a,0x19,0xb3,0x77,0xb5,0x7e,0xb3,0x77,0xba,0x70,0xe, 0x7e,0x73,0x77, +0xbc,0xbe,0x70,0x1, 0x28,0x5, 0x12,0xb, 0xe5,0x80,0xf, 0x7e,0xf, 0x78,0xf2,0xb, +0x16,0xb, 0xa, 0x30,0x5e,0x60,0xef,0x1b,0xa, 0x30,0x12,0xdb,0x28,0x38,0x13,0x74, +0x2, 0x7a,0xb3,0x77,0xb4,0x12,0x3f,0xbb,0x12,0x37,0xf5,0xe5,0x1e,0x70,0x3, 0x2, +0x4f,0x8a,0x22,0xca,0x3b,0x7e,0x95,0x1c,0x6d,0x88,0x7e,0xb3,0x77,0xba,0xf5,0x4c, +0x7e,0xb3,0x6f,0x76,0x60,0xa, 0x7e,0xc7,0x6f,0x6a,0x7e,0xd7,0x6f,0x6c,0x80,0x8, +0x7e,0xd7,0x6f,0x6a,0x7e,0xc7,0x6f,0x6c,0x20,0x30,0x2, 0xa1,0x44,0x7e,0xe7,0x73, +0xd6,0x7e,0xf4,0x0, 0xa, 0xa9,0xd7,0xea,0x7e,0x5f,0x1, 0x79,0x69,0x55,0x2, 0x64, +0x69,0x75,0x0, 0xc, 0x4d,0x75,0x12,0xdd,0x64,0x59,0x75,0x0, 0xe5,0x69,0x55,0x2, +0x5c,0x7e,0x5f,0x1, 0x79,0x69,0xb5,0x0, 0x4, 0x4d,0xb5,0x12,0xdd,0x64,0x59,0xb5, +0x0, 0xe7,0x7e,0x5f,0x1, 0x79,0x69,0xb5,0x2, 0x5a,0x7e,0x3f,0x1, 0x79,0x69,0x53, +0x0, 0x2, 0xbd,0x5b,0x28,0xc, 0x7e,0x5f,0x1, 0x79,0x69,0x55,0x0, 0x2, 0x7d,0x45, +0x80,0x8, 0x7e,0x2f,0x1, 0x79,0x69,0x42,0x2, 0x5a,0x12,0xdd,0x64,0x59,0x45,0x0, +0xe9,0x7e,0x2f,0x1, 0x79,0xb, 0x2a,0x50,0x12,0xdd,0x6b,0x19,0xa4,0x0, 0xeb,0x7e, +0x2f,0x1, 0x79,0x69,0x52,0x2, 0x58,0x12,0xdd,0x6b,0x19,0xa4,0x0, 0xec,0x6d,0xbb, +0x7d,0x4b,0xbe,0x44,0x0, 0x1, 0x78,0x4, 0xb, 0xf4,0x80,0x23,0x7c,0xb9,0x7e,0xa4, +0x0, 0x1, 0x60,0x5, 0x3e,0xa4,0x14,0x78,0xfb,0x7e,0xb3,0x6f,0x68,0xa, 0x5b,0x5d, +0x5a,0x68,0x5, 0x12,0xdd,0x47,0x80,0x7, 0x6d,0x55,0x12,0xdd,0x56,0xb, 0xf4,0xb, +0x44,0xbe,0x44,0x0, 0x3, 0x78,0xcb,0x7e,0xb3,0x6f,0x76,0x60,0x5, 0x7a,0xc5,0x4a, +0x80,0x3, 0x7a,0xb5,0x4a,0x12,0xdd,0x79,0x7d,0x4b,0x80,0xc, 0xb, 0xa, 0x50,0x1b, +0x1a,0x50,0xb, 0x15,0xb, 0x35,0xb, 0x44,0xbd,0xd4,0x38,0xf0,0x7d,0xfd,0x2e,0xf5, +0x4a,0x7a,0xf5,0x4a,0x7e,0xf4,0x1, 0x36,0x7d,0x4b,0xbe,0x44,0x0, 0x1, 0x78,0x4, +0xb, 0xf4,0x80,0x23,0x7c,0xb9,0x7e,0xa4,0x0, 0x1, 0x60,0x5, 0x3e,0xa4,0x14,0x78, +0xfb,0x7e,0xb3,0x6f,0x69,0xa, 0x5b,0x5d,0x5a,0x68,0x5, 0x12,0xdd,0x47,0x80,0x7, +0x6d,0x55,0x12,0xdd,0x56,0xb, 0xf4,0xb, 0x44,0xbe,0x44,0x0, 0x3, 0x78,0xcb,0x7e, +0xb3,0x6f,0x76,0x60,0x3, 0x7a,0xb5,0x4a,0x12,0xdd,0x79,0x7d,0x4b,0x80,0xc, 0xb, +0xa, 0x50,0x1b,0x1a,0x50,0xb, 0x35,0xb, 0x15,0xb, 0x44,0xbd,0xc4,0x38,0xf0,0xa9, +0xc7,0xea,0xc2,0x30,0xda,0x3b,0x22,0x7d,0x5f,0xb, 0xf4,0x3e,0x54,0x7e,0x3f,0x1, +0x79,0x2d,0x75,0xb, 0x3a,0x50,0x7d,0xae,0xb, 0xe4,0x3e,0xa4,0x7f,0x34,0x2d,0x7a, +0x1b,0x3a,0x50,0x22,0x7e,0xa1,0x4c,0x74,0x8, 0xa4,0x22,0x5e,0x54,0x0, 0x7f,0x7c, +0xab,0x7e,0x91,0x4c,0x74,0x8, 0xac,0x9b,0x22,0x7d,0xaf,0x3e,0xa4,0x7e,0xf, 0x1, +0x79,0x2d,0x1a,0x7e,0xa5,0x4a,0x3e,0xa4,0x7f,0x14,0x2d,0x3a,0x22,0x7e,0x70,0x7, +0xac,0x7a,0x9, 0xb3,0x77,0xc3,0x22,0x6c,0xaa,0x7e,0xb3,0x78,0x8e,0xa, 0x3b,0x1e, +0x34,0xb, 0x34,0x7e,0x50,0x8, 0xac,0x5a,0x19,0x72,0x77,0x96,0xb, 0xa0,0xbe,0xa0, +0x4, 0x40,0xe6,0x22,0x7e,0x34,0x0, 0x1, 0x12,0x3f,0xf5,0x7e,0x57,0x77,0x99,0x12, +0x3f,0xfe,0x74,0x1, 0x2, 0x3f,0xd9,0x7e,0x34,0x0, 0x3, 0x12,0x3f,0xf5,0x7e,0x57, +0x77,0xa9,0x12,0x3f,0xfe,0x74,0x3, 0x2, 0x3f,0xd9,0x80,0x3, 0x12,0x46,0x86,0x30, +0x15,0xfa,0x22,0x12,0x3b,0x65,0x5e,0x34,0x0, 0x1, 0x68,0x4, 0xd2,0x1b,0xc2,0x1e, +0x22,0x30,0x1d,0x8, 0xe5,0x1e,0xb4,0x1, 0x3, 0x2, 0x3b,0xdc,0x22,0x7c,0xab,0x7e, +0x8, 0x0, 0x87,0x7e,0x70,0xa, 0xac,0x7a,0x9, 0xb3,0x29,0x8c,0x12,0xc, 0x3e,0x7e, +0x8, 0x0, 0xc3,0x74,0xa, 0xa4,0x9, 0xb5,0x29,0x8c,0x12,0xc, 0x3e,0x7e,0x34,0x0, +0xd, 0x7e,0x8, 0x0, 0x87,0x7e,0x24,0x0, 0x1, 0x2, 0xc, 0xcc,0xca,0xd8,0xca,0x79, +0x7c,0xf7,0x7c,0xeb,0xe4,0x12,0x67,0x91,0x6c,0xdd,0x7e,0x70,0xb5,0xac,0x7d,0x2e, +0x34,0x1, 0x0, 0x2e,0x34,0x0, 0x16,0x7a,0x35,0x29,0x12,0x7, 0x40,0x7a,0x35,0x2b, +0x7e,0x35,0x29,0x12,0x8, 0x0, 0x7a,0x35,0x2d,0x7e,0x25,0x2b,0x5e,0x50,0xf8,0x7a, +0x25,0x2b,0x5e,0x70,0xf8,0x7a,0x35,0x2d,0x7c,0xbe,0x54,0x5, 0xa, 0x3b,0x4e,0x35, +0x2b,0x7a,0x35,0x2b,0x7c,0xbf,0x54,0x5, 0xa, 0x3b,0x4e,0x35,0x2d,0x7a,0x35,0x2d, +0x7e,0x35,0x29,0x7e,0x25,0x2b,0x12,0x6, 0x48,0x7e,0x35,0x29,0x7e,0x25,0x2d,0x12, +0x6, 0xc5,0xb, 0xd0,0xbe,0xd0,0x3, 0x40,0xa1,0xda,0x79,0xda,0xd8,0x22,0x7c,0xab, +0x74,0x27,0xa4,0x49,0x25,0x28,0xee,0xb, 0x24,0x7e,0x37,0x77,0x8b,0xad,0x32,0x7e, +0x8, 0x0, 0x83,0x12,0xde,0xb9,0x2, 0xc, 0xcc,0x6d,0x22,0x12,0xd, 0x3e,0x7e,0x8, +0x0, 0xbf,0x6d,0x22,0x12,0xd, 0x3e,0x7e,0x34,0x0, 0xb, 0x7e,0x8, 0x0, 0x83,0x7e, +0x24,0x0, 0x2, 0x22,0x7c,0xab,0x6d,0x33,0xbe,0xa0,0x4, 0x50,0x27,0x6c,0x55,0x80, +0x16,0x7e,0x10,0x2, 0xac,0x15,0x7e,0x30,0x27,0xac,0x3a,0x2d,0x10,0x49,0x11,0x28, +0xee,0xb, 0x14,0x2d,0x31,0xb, 0x50,0x7e,0x30,0x27,0xac,0x3a,0x9, 0x41,0x28,0xe9, +0xbc,0x45,0x50,0xdd,0x4d,0x33,0x78,0x2, 0xb, 0x34,0x22,0xca,0x79,0x7c,0xfb,0xd2, +0x0, 0xc2,0x1, 0x6d,0x33,0x7a,0x37,0x78,0x86,0x74,0x27,0xac,0xbf,0x9, 0xe5,0x28, +0xe9,0x7c,0xbf,0x12,0x67,0x4a,0x92,0x1, 0x7c,0xbf,0x12,0xcf,0xfa,0x92,0x0, 0x30, +0x0, 0x5, 0x7c,0xbf,0x12,0x57,0x3b,0x7e,0xb3,0x77,0x5f,0x70,0xc, 0x7c,0xbf,0x12, +0xdf,0x63,0x92,0x31,0x20,0x31,0x2, 0xc2,0x0, 0x30,0x1, 0x12,0x74,0x27,0xac,0xbf, +0x19,0xe5,0x28,0xe9,0x7c,0xbf,0x12,0x66,0xf8,0x7c,0xbf,0x12,0x67,0xbd,0xa2,0x0, +0xda,0x79,0x22,0x7c,0xab,0x7e,0x73,0x73,0xda,0xc2,0x2, 0x6d,0x22,0x7d,0x42,0x80, +0x13,0xa, 0xa, 0x12,0x35,0xa6,0x2d,0x14,0x9, 0xb1,0x4e,0xa8,0x70,0x4, 0xd2,0x2, +0x80,0xa, 0xb, 0x44,0x7e,0x17,0x73,0xd6,0xbd,0x14,0x38,0xe5,0x7d,0x42,0x7c,0xb7, +0x54,0x1, 0xb4,0x1, 0x17,0xa, 0xa, 0x12,0x35,0xa6,0x7e,0x27,0x73,0xd6,0x2d,0x24, +0x2d,0x21,0x9, 0xb2,0x4e,0xa8,0x70,0x4, 0xd2,0x2, 0x80,0xa, 0x1e,0x70,0xb, 0x44, +0xbe,0x44,0x0, 0x4, 0x40,0xd8,0x30,0x2, 0x10,0x7e,0xb3,0x78,0xe8,0xbe,0xb0,0x0, +0x28,0xd, 0x14,0x7a,0xb3,0x78,0xe8,0xc3,0x22,0x74,0x5, 0x7a,0xb3,0x78,0xe8,0xd3, +0x22,0xca,0x79,0x7c,0x5b,0x7e,0x40,0xff,0x7e,0xa0,0xff,0x6c,0x33,0x2, 0xe0,0x67, +0xbc,0x63,0x78,0x3, 0x2, 0xe0,0x65,0x7e,0x90,0x2, 0xac,0x93,0x9, 0x24,0x6c,0x9, +0xa, 0xf2,0xa, 0x5, 0x9d,0xf, 0xbe,0x4, 0x0, 0x0, 0x8, 0xc, 0xa, 0xe2,0xa, 0xf5, +0x9d,0xfe,0x7d,0x7f,0x7c,0x2f,0x80,0x8, 0x6e,0x4, 0xff,0xff,0xb, 0x4, 0x7c,0x21, +0x7e,0x10,0x2, 0xac,0x13,0x9, 0xb0,0x6c,0xa, 0xa, 0xb, 0xa, 0x47,0x9d,0x40,0xbe, +0x44,0x0, 0x0, 0x8, 0x8, 0xa, 0xfb,0xa, 0x7, 0x9d,0xf, 0x80,0x4, 0x6d,0x0, 0x9d, +0x4, 0xbe,0x20,0x1, 0x38,0xa, 0xbe,0x10,0x1, 0x38,0x5, 0x7e,0xa0,0x1, 0x80,0x32, +0xbe,0x20,0x2, 0x38,0xa, 0xbe,0x10,0x2, 0x38,0x5, 0x7e,0x40,0x2, 0x80,0x10,0x30, +0x0, 0xd, 0xbe,0x20,0x3, 0x38,0x8, 0xbe,0x10,0x3, 0x38,0x3, 0x7e,0x40,0x3, 0xbc, +0x4a,0x50,0x2, 0x7c,0xa4,0xb, 0x30,0x7e,0x3, 0x6d,0x93,0xbc,0x3, 0x28,0x3, 0x2, +0xdf,0xe0,0x7c,0xba,0xda,0x79,0x22,0xca,0x3b,0x7c,0xcb,0x7e,0x8, 0x63,0x6d,0x12, +0x5f,0xef,0x7e,0x8, 0x63,0x79,0x7e,0x34,0x0, 0x5, 0x12,0x24,0x38,0x12,0x9f,0xee, +0x7e,0xb7,0x73,0xd6,0x7e,0x97,0x6d,0xb0,0x7d,0xa9,0x3e,0xa4,0x3e,0xa4,0x4c,0xcc, +0x78,0x6c,0x7a,0xd3,0x63,0x6e,0x7a,0xe3,0x63,0x6d,0x7e,0x84,0x8, 0xc, 0x7a,0x87, +0x63,0x71,0x7e,0x1f,0x24,0x64,0x7d,0x83,0x7a,0x87,0x63,0x73,0x7e,0x1f,0x24,0x64, +0x7d,0x83,0x7a,0x87,0x63,0x75,0x7d,0x39,0x7c,0xb7,0xf5,0x27,0x7e,0x8, 0x63,0x6d, +0x7e,0x18,0x63,0x79,0x7d,0x59,0x12,0x0, 0x46,0x6c,0xff,0x7d,0x3b,0x3e,0x34,0x49, +0x83,0x8, 0xc, 0xbd,0xa8,0x58,0x10,0x7e,0xf, 0x24,0x64,0x2d,0x13,0xb, 0xa, 0x20, +0x2d,0x2a,0x1b,0xa, 0x20,0x80,0x10,0x6d,0x22,0x9d,0x2a,0xbd,0x28,0x8, 0x8, 0x12, +0xe1,0x5d,0x9d,0x3a,0x1b,0xa, 0x30,0x12,0xe1,0x55,0x78,0xcf,0x80,0x44,0xbe,0xc0, +0x1, 0x78,0x3f,0x6c,0xff,0x80,0x24,0x6c,0x77,0x80,0x1a,0x7c,0xbf,0xac,0xbd,0xa, +0x87,0x2d,0x85,0x3e,0x84,0x7e,0xf, 0x24,0x64,0x2d,0x18,0xb, 0xa, 0x80,0x2d,0x89, +0x1b,0xa, 0x80,0xb, 0x70,0xbc,0xd7,0x38,0xe2,0xb, 0xf0,0xbc,0xef,0x38,0xd8,0x6c, +0xff,0x7d,0x3b,0x3e,0x34,0x12,0xe1,0x5d,0x2d,0x3a,0x1b,0xa, 0x30,0x12,0xe1,0x55, +0x78,0xef,0xda,0x3b,0x22,0xb, 0xb4,0xb, 0xf0,0xbe,0xf0,0x4, 0x22,0x7e,0xf, 0x24, +0x64,0x2d,0x13,0xb, 0xa, 0x30,0x22,0x7e,0x37,0x73,0xd6,0x6c,0xaa,0x90,0x1c,0x49, +0xe4,0x93,0x20,0xe0,0x4, 0x4c,0xaa,0x68,0x25,0x1e,0xb0,0x1e,0xb0,0x20,0xe0,0x5, +0xbe,0xa0,0x1, 0x68,0x19,0x90,0x1c,0x4a,0xe4,0x93,0x20,0xe0,0x5, 0xbe,0xa0,0x2, +0x68,0xc, 0x1e,0xb0,0x1e,0xb0,0x20,0xe0,0x9, 0xbe,0xa0,0x3, 0x78,0x4, 0xb, 0x34, +0x80,0x25,0x7d,0x23,0x3e,0x24,0x49,0x42,0x8, 0xc, 0x12,0xe1,0xcf,0x2d,0x24,0x1b, +0xa, 0x20,0x7d,0x23,0x3e,0x24,0x12,0xe1,0xcf,0xbe,0x24,0xf, 0xa0,0x50,0x6, 0x74, +0x1f,0x7a,0xb3,0x73,0xd4,0xb, 0x34,0xb, 0xa0,0xbe,0xa0,0x4, 0x40,0x9f,0x22,0x7e, +0xf, 0x24,0x64,0x2d,0x12,0xb, 0xa, 0x20,0x22,0xe4,0x7a,0xb3,0x6d,0xa8,0x12,0xe1, +0xf5,0xe4,0x12,0x0, 0x19,0x7e,0xb3,0x25,0xae,0xb4,0x1, 0x8, 0x7e,0x73,0x6d,0x93, +0x7a,0x73,0x6d,0xa7,0x22,0x6c,0x33,0x80,0x9, 0xe4,0xa, 0x33,0x19,0xb3,0x6c,0x81, +0xb, 0x30,0x90,0x21,0x52,0xe4,0x93,0xc4,0x23,0x54,0x1f,0xa, 0x2b,0xb, 0x24,0xa, +0x33,0xbd,0x32,0x48,0xe4,0x12,0xe3,0x39,0x6d,0x33,0x7a,0x37,0x6d,0x95,0x7a,0x37, +0x6d,0x97,0x7a,0x37,0x6d,0x99,0x7a,0x37,0x6d,0x9d,0x7e,0xd4,0x63,0x6f,0x1e,0xd4, +0x3e,0xd4,0x6d,0xcc,0x7e,0x1f,0x24,0x68,0x7a,0x37,0x63,0xaf,0x7d,0x3d,0x7a,0x37, +0x63,0xb3,0x7e,0x34,0x24,0xbc,0x7a,0x37,0x63,0xb1,0x7e,0x73,0x6f,0x64,0x7a,0x73, +0x63,0xac,0x7e,0x73,0x6f,0x65,0x7a,0x73,0x63,0xab,0x7e,0x37,0x6f,0x42,0x7a,0x37, +0x63,0xb5,0x7e,0x37,0x6f,0x44,0x7a,0x37,0x63,0xb7,0x7e,0x37,0x6f,0x4c,0x7a,0x37, +0x63,0xb9,0x7e,0x37,0x6f,0x4e,0x7a,0x37,0x63,0xbb,0x12,0xac,0x4c,0x1b,0x34,0x7a, +0x73,0x63,0xad,0x7e,0x73,0x78,0xfc,0x7a,0x73,0x63,0xae,0x7e,0x8, 0x63,0xab,0x7e, +0x18,0x63,0xbd,0x12,0x3, 0x1d,0x7e,0x73,0x63,0xbd,0x7a,0x73,0x6d,0x93,0x7e,0x73, +0x63,0xbe,0x7a,0x73,0x6d,0x94,0x7e,0x37,0x63,0xbf,0x7a,0x37,0x6d,0x95,0x7e,0x37, +0x63,0xc1,0x7a,0x37,0x6d,0x97,0x7e,0x37,0x63,0xc7,0x7a,0x37,0x6d,0x99,0x7e,0x37, +0x63,0xc9,0x7d,0x23,0x7a,0x53,0x6d,0x9b,0xa, 0x36,0x7a,0x73,0x6d,0x9c,0x7e,0x37, +0x63,0xc3,0x7a,0x37,0x6d,0x9d,0x7e,0x37,0x63,0xc5,0x7d,0x23,0x7a,0x53,0x6d,0x9f, +0xa, 0x36,0x7a,0x73,0x6d,0xa0,0x6c,0x33,0x80,0x1f,0xd2,0x2, 0x7c,0xb3,0x12,0x6e, +0x5b,0x74,0x2, 0xac,0xb3,0x49,0x45,0x24,0xbc,0xa, 0x38,0x7c,0x27,0x19,0x25,0x6c, +0x9, 0x7c,0x29,0x19,0x25,0x6c,0xa, 0xb, 0x30,0x7e,0x23,0x6d,0x93,0xbc,0x23,0x38, +0xd9,0x6c,0x33,0x80,0x1b,0x74,0x2, 0xac,0xb3,0x7f,0x16,0x2d,0x35,0xb, 0x1a,0x40, +0xa, 0x38,0x7c,0x27,0x19,0x25,0x6c,0x45,0x7c,0x29,0x19,0x25,0x6c,0x46,0xb, 0x30, +0x7e,0x23,0x6d,0x94,0xbc,0x23,0x38,0xdd,0x22,0xe4,0x7a,0xb3,0x6d,0x93,0x7a,0xb3, +0x6d,0x94,0x22,0xe4,0x7a,0xb3,0x78,0xb1,0x22,0x7c,0x7b,0xa, 0x57,0x9e,0x54,0x0, +0x20,0xe, 0x54,0xe, 0x54,0xe, 0x54,0xe, 0x54,0x7c,0xab,0x7c,0x67,0x5e,0x60,0xf0, +0xa5,0xbe,0x20,0x1d,0x7c,0xb7,0x54,0xf, 0x7e,0x24,0x0, 0x1, 0x60,0x5, 0x3e,0x24, +0x14,0x78,0xfb,0x7e,0x73,0x78,0xde,0xa, 0x47,0x5d,0x42,0x7e,0x73,0x77,0x10,0x80, +0x36,0xa5,0xbe,0x30,0x18,0x12,0xe3,0xbc,0x60,0x5, 0x3e,0x34,0x14,0x78,0xfb,0x7e, +0x53,0x78,0xdf,0xa, 0x45,0x5d,0x43,0x7e,0x73,0x77,0x11,0x80,0x1a,0x12,0xe3,0xbc, +0x60,0x5, 0x3e,0x34,0x14,0x78,0xfb,0xa, 0x2a,0x9, 0xb2,0x78,0xde,0xa, 0x4b,0x5d, +0x43,0xa, 0x5a,0x9, 0x75,0x77,0x12,0xa, 0x57,0x5d,0x54,0x22,0x7c,0xb7,0x54,0xf, +0x7e,0x34,0x0, 0x1, 0x22,0x7e,0x17,0x27,0x5a,0xbd,0x13,0x28,0xa, 0x7a,0x37,0x27, +0x5a,0x7a,0x27,0x27,0x5c,0x80,0x10,0x7e,0x17,0x27,0x52,0xbd,0x13,0x50,0x8, 0x7a, +0x37,0x27,0x52,0x7a,0x27,0x27,0x54,0x7e,0x17,0x27,0x58,0xbd,0x12,0x28,0xa, 0x7a, +0x27,0x27,0x58,0x7a,0x37,0x27,0x56,0x80,0x10,0x7e,0x17,0x27,0x60,0xbd,0x12,0x50, +0x8, 0x7a,0x27,0x27,0x60,0x7a,0x37,0x27,0x5e,0x7e,0xb3,0x27,0x72,0xb4,0xa, 0xf, +0x12,0xe4,0x3a,0x7a,0x37,0x27,0x6a,0x12,0xe4,0x31,0x7a,0x37,0x27,0x6c,0x22,0xb4, +0xf, 0xe, 0x12,0xe4,0x3a,0x7a,0x37,0x27,0x6e,0x12,0xe4,0x31,0x7a,0x37,0x27,0x70, +0x22,0x7e,0x37,0x27,0x60,0x9e,0x37,0x27,0x58,0x22,0x7e,0x37,0x27,0x52,0x9e,0x37, +0x27,0x5a,0x22,0x7e,0xb3,0x27,0x4a,0xb4,0x4, 0x2, 0xd3,0x22,0xc3,0x22,0x7e,0xa3, +0x27,0x72,0xbe,0xa0,0x64,0x50,0x1b,0x74,0x4, 0xa4,0x59,0x35,0x25,0xb9,0x7e,0xa3, +0x27,0x72,0x74,0x4, 0xa4,0x59,0x25,0x25,0xbb,0x7e,0xb3,0x27,0x72,0x4, 0x7a,0xb3, +0x27,0x72,0x22,0x7d,0xf2,0x7d,0xe3,0x7e,0x8, 0x27,0x4a,0x7e,0x34,0x0, 0x28,0xe4, +0x12,0x24,0x38,0x7e,0x8, 0x25,0xb9,0x7e,0x34,0x1, 0x90,0x12,0x24,0x38,0x7a,0xb3, +0x77,0x12,0x7e,0x34,0x22,0x6d,0x12,0x2a,0xa9,0x7a,0x37,0x25,0xb1,0x7a,0xe7,0x27, +0x4e,0x7a,0xf7,0x27,0x50,0x7a,0xe7,0x27,0x52,0x7a,0xe7,0x27,0x56,0x7a,0xe7,0x27, +0x5a,0x7a,0xe7,0x27,0x5e,0x7a,0xf7,0x27,0x54,0x7a,0xf7,0x27,0x58,0x7a,0xf7,0x27, +0x5c,0x7a,0xf7,0x27,0x60,0x7a,0xe7,0x25,0xb5,0x7a,0xf7,0x25,0xb7,0x7a,0xb3,0x27, +0x72,0x74,0x2, 0x7a,0xb3,0x27,0x49,0x22,0x74,0xfe,0x7a,0xb3,0x77,0x12,0xe4,0x7a, +0xb3,0x27,0x4a,0x22,0x74,0x9, 0xac,0xbe,0x49,0x35,0x6e,0x25,0x74,0x9, 0xac,0xbf, +0x49,0x25,0x27,0x75,0x9d,0x32,0x12,0x24,0x5a,0x7d,0xc3,0x74,0x9, 0xac,0xbe,0x49, +0x35,0x6e,0x23,0x74,0x9, 0xac,0xbf,0x49,0x25,0x27,0x73,0x9d,0x32,0x2, 0x24,0x5a, +0x7e,0xa0,0x5, 0x7e,0x70,0x4, 0xac,0x7f,0x19,0xa3,0x28,0xba,0x7e,0x70,0x9, 0xac, +0x7f,0x2e,0x34,0x27,0x73,0x7e,0x30,0x9, 0xac,0x3e,0x2e,0x14,0x6e,0x23,0x74,0x9, +0x2, 0x23,0x44,0x7e,0xa0,0x3, 0x7e,0x30,0x9, 0xac,0x3f,0x7e,0x1d,0x36,0x2d,0x31, +0x7a,0x1b,0xa0,0x7e,0x30,0x9, 0xac,0x3f,0x7e,0x1d,0x36,0x2d,0x31,0x22,0x74,0x9, +0xac,0xbf,0x7e,0x1d,0x36,0x22,0x74,0x9, 0xac,0xbe,0x49,0xc5,0x6e,0x23,0x7e,0x34, +0x21,0xde,0x7e,0x24,0x0, 0xff,0xb, 0x1a,0x40,0x9e,0x44,0x0, 0x14,0xbd,0xc4,0x22, +0x7a,0xb3,0x77,0xb5,0x7a,0xb3,0x77,0xb6,0x7a,0xb3,0x77,0xb9,0x74,0xff,0x7a,0xb3, +0x77,0xba,0xe4,0x7a,0xb3,0x77,0xbb,0x22,0x6d,0x33,0x7e,0xf, 0x78,0xf2,0x79,0x30, +0x0, 0x16,0x7e,0x34,0x1, 0x2c,0x7e,0xf, 0x78,0xf2,0x79,0x30,0x0, 0x18,0x22,0x7e, +0x70,0x9, 0xac,0x7e,0x9, 0xb3,0x6e,0x2a,0x9, 0x73,0x6e,0x2b,0x2, 0x9b,0x6a,0x6d, +0x22,0xa, 0xd, 0x7e,0x14,0x0, 0x40,0x9d,0x10,0x1a,0x2, 0x1a,0x0, 0x12,0x22,0xa3, +0x7f,0x71,0x22,0x7e,0x11,0x12,0x2e,0x10,0x8, 0xa5,0xe7,0xbe,0xb0,0x0, 0x22,0x49, +0x35,0x6e,0x25,0xbe,0x34,0x0, 0x14,0x22,0x7e,0x24,0x1b,0xd8,0xa, 0x3b,0x2d,0x32, +0x6d,0x22,0x2e,0x24,0x0, 0xff,0x7e,0x1b,0x30,0x22,0x7e,0x34,0x1, 0x0, 0x7d,0x16, +0x3e,0x14,0x2e,0x14,0x6f,0x77,0x6d,0x0, 0x7d,0x27,0x22,0x2d,0x35,0x29,0xb1,0x0, +0x8, 0xbe,0xb0,0x2d,0x22,0x7e,0x70,0x27,0xac,0x67,0x2e,0x34,0x28,0xe7,0x6d,0x22, +0x7e,0x8, 0x77,0x62,0x22,0x7e,0x50,0x9, 0xac,0x5f,0x2e,0x25,0x2c,0xb, 0x28,0x30, +0x49,0x22,0x0, 0x2, 0x22,0x7a,0x37,0x6d,0xb0,0x90,0x22,0xb, 0xe4,0x93,0x7a,0xb3, +0x6d,0xb2,0x22,0x49,0x35,0x6e,0x25,0xbe,0x34,0x0, 0x0, 0x22,0x2e,0x34,0x0, 0x8, +0x4, 0x7a,0x1b,0xb0,0x22,0x74,0x9, 0xac,0xbe,0x9, 0xb5,0x6e,0x2a,0x7e,0x70,0x9, +0xac,0x7e,0x22,0x6d,0x22,0xa, 0x1d,0x6d,0x0, 0x12,0x22,0xa3,0x2f,0x17,0x74,0x6, +0x22,0x7e,0x71,0x12,0x74,0x9, 0xac,0x7b,0x2e,0x34,0x27,0x73,0x6d,0x22,0x22,0x7e, +0x73,0x6f,0x3e,0xbc,0x7e,0x22,0xa9,0xd5,0xea,0xa9,0xc5,0xea,0x74,0x2, 0x7e,0x70, +0x7, 0x22,0x6c,0xaa,0x7e,0x70,0x4, 0xac,0x7f,0x19,0xa3,0x28,0xba,0x22,0x7a,0xb3, +0x77,0xb2,0x74,0xff,0x7a,0xb3,0x77,0xb3,0xe4,0x22,0x7e,0xa1,0x29,0x74,0x6, 0xa4, +0x7e,0xd, 0x32,0x2d,0x15,0x22,0x7c,0x1f,0x2e,0x10,0x8, 0xa5,0xe7,0x22,0x7e,0x27, +0x4a,0x6d,0x4e,0x50,0x20,0x7a,0x27,0x4a,0x6d,0x22,0x9e,0xc4,0x0, 0x14,0xbd,0x3c, +0x22,0x7a,0x37,0x6f,0x46,0x7e,0x34,0x21,0x63,0x22,0xb, 0xf5,0xb, 0x55,0xb, 0x15, +0x1b,0x34,0x22,0x7e,0xf4,0x21,0xec,0x7e,0xe4,0x0, 0xff,0x22,0x74,0x2, 0xac,0xbf, +0x9, 0x5, 0x63,0x6d,0x22,0x7e,0x3f,0x78,0xf2,0x69,0x33,0x0, 0x6, 0x22,0x74,0x9, +0xac,0xbe,0x49,0x45,0x6e,0x23,0x22,0x49,0x45,0x6e,0x25,0xbe,0x44,0x0, 0x14,0x22, +0x7e,0x1f,0x24,0x68,0x7a,0x37,0x4e,0x7f,0x22,0x9, 0xb5,0x29,0xb5,0x2, 0xd, 0x7, +0xd2,0x4, 0x12,0x3c,0x96,0x7c,0xbf,0x22,0x7e,0xb3,0x77,0x5f,0xbe,0xb0,0x1, 0x22, +0x7e,0xb3,0x76,0xc3,0xbe,0xb0,0xaa,0x22,0x7e,0x39,0xb0,0x14,0x7a,0x39,0xb0,0x22, +0xac,0x3b,0x7e,0x1d,0x32,0x2d,0x31,0x22,0x9d,0x32,0x12,0x24,0x5a,0x7d,0x13,0x22, diff --git a/drivers/input/touchscreen/FT8716/include/pramboot/FT8716_Pramboot_V0.5_20160723.i b/drivers/input/touchscreen/FT8716/include/pramboot/FT8716_Pramboot_V0.5_20160723.i new file mode 100755 index 0000000000000..8c27370a9170b --- /dev/null +++ b/drivers/input/touchscreen/FT8716/include/pramboot/FT8716_Pramboot_V0.5_20160723.i @@ -0,0 +1,246 @@ +0x2, 0x3, 0x83,0xca,0x39,0x12,0xf, 0x3c,0xda,0x39,0x32,0x2, 0x0, 0x3, 0x6d,0x22, +0x80,0x13,0x75,0xb5,0x0, 0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0xe5,0xb5,0x7a,0xb, +0xb0,0xb, 0x14,0xb, 0x24,0xbd,0x32,0x38,0xe9,0x22,0xff,0x2, 0xd, 0xf, 0xe5,0x33, +0xb4,0xc, 0xf, 0xc2,0x86,0xc2,0x87,0x7e,0x34,0x0, 0x64,0x12,0xe, 0x86,0xd2,0x86, +0xd2,0x87,0x22,0x2, 0x0, 0xf9,0xca,0x3b,0x7a,0xd, 0x10,0x7f,0x31,0xe5,0x24,0xb4, +0x80,0x2, 0x80,0x3, 0x2, 0x0, 0xdc,0x7f,0x13,0x5e,0x34,0x0, 0x7f,0x7d,0x23,0x7e, +0x34,0x0, 0x80,0x9d,0x32,0x7a,0x35,0x16,0x7e,0x35,0x14,0xbe,0x35,0x16,0x38,0x2, +0x80,0x5d,0x7e,0x35,0x16,0x7a,0x35,0x18,0x7f,0x13,0x7e,0xd, 0x10,0x12,0xa, 0xe6, +0x7e,0x35,0x14,0x9e,0x35,0x16,0x7a,0x35,0x14,0x7e,0x35,0x16,0x6d,0x22,0x2f,0x31, +0x7e,0x1d,0x10,0x2e,0x35,0x16,0x7a,0x1d,0x10,0x80,0x27,0x7e,0x34,0x0, 0x80,0x7a, +0x35,0x18,0x7f,0x13,0x7e,0xd, 0x10,0x12,0xa, 0xe6,0x7e,0x35,0x14,0x9e,0x34,0x0, +0x80,0x7a,0x35,0x14,0x7e,0x1d,0x10,0x2e,0x34,0x0, 0x80,0x7a,0x1d,0x10,0x2e,0x38, +0x0, 0x80,0x7e,0x35,0x14,0xbe,0x34,0x0, 0x80,0x50,0xd0,0x4d,0x33,0x68,0x26,0x7a, +0x35,0x18,0x7f,0x13,0x7e,0xd, 0x10,0x12,0xa, 0xe6,0x80,0x19,0x74,0x2, 0x12,0xa, +0x89,0x5e,0x70,0xf4,0x12,0xc, 0x86,0x7e,0x35,0x14,0x7a,0x35,0x18,0x7f,0x13,0x7e, +0xd, 0x10,0x12,0x8, 0xe, 0xd3,0xda,0x3b,0x22,0xa9,0xc0,0x93,0x75,0x39,0x0, 0x32, +0xf, 0x60,0xf0,0x9f,0x4c,0xf1,0xb3,0xe, 0xce,0xb9,0x31,0x46,0xff,0x0, 0xff,0x0, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x7c,0x6b,0xc2,0x2, 0xe5,0x22,0x14,0x78,0x3, 0x2, 0x2, 0xda,0x1b,0xb1,0x78,0x3, +0x2, 0x2, 0x3d,0x1b,0xb1,0x78,0x3, 0x2, 0x2, 0x89,0x1b,0xb1,0x78,0x3, 0x2, 0x2, +0x9a,0x1b,0xb1,0x78,0x3, 0x2, 0x2, 0xc1,0x24,0xf9,0x78,0x3, 0x2, 0x2, 0xd6,0x24, +0xaf,0x78,0x3, 0x2, 0x3, 0x3b,0x24,0xfd,0x68,0x3a,0x14,0x78,0x3, 0x2, 0x2, 0xdd, +0x14,0x78,0x3, 0x2, 0x2, 0xda,0x1b,0xb2,0x78,0x3, 0x2, 0x2, 0xda,0x24,0xda,0x68, +0x26,0x24,0xe6,0x68,0x1f,0x24,0xeb,0x68,0x3b,0x24,0xf3,0x78,0x3, 0x2, 0x2, 0xda, +0x24,0xe4,0x78,0x3, 0x2, 0x3, 0x46,0x14,0x78,0x3, 0x2, 0x2, 0xda,0x24,0x94,0x68, +0x3, 0x2, 0x3, 0x82,0x2, 0x3, 0x42,0xbe,0x60,0x4, 0x50,0xc, 0x75,0x3f,0x0, 0x7c, +0x16,0x2e,0x10,0x25,0x7c,0xb7,0xa5,0xf7,0xa5,0xbe,0x0, 0x2, 0x80,0x3, 0x2, 0x3, +0x82,0xd2,0x2, 0x22,0x7c,0xb6,0x24,0x0, 0x78,0x3, 0x2, 0x3, 0x82,0x1b,0xb1,0x68, +0x1e,0x14,0x68,0x1e,0x14,0x68,0x1e,0x14,0x68,0x1e,0xb, 0xb2,0x78,0x33,0x30,0x1, +0x7, 0x7e,0x8, 0x0, 0x44,0x2, 0x2, 0x5a,0x7e,0x8, 0x1, 0x50,0x2, 0x2, 0x5a,0x2, +0x2, 0xfb,0x2, 0x3, 0x2, 0x2, 0x3, 0x1a,0xa, 0x27,0x7e,0xd, 0x3a,0xb, 0x16,0xb, +0xa, 0x30,0x2d,0x32,0x1b,0xa, 0x30,0x6d,0x33,0x7e,0xd, 0x3a,0x79,0x30,0x0, 0x6, +0x22,0x7c,0xb7,0x62,0x3f,0x7e,0x2d,0x3a,0x2e,0x54,0x0, 0x6, 0xb, 0x2a,0x20,0x7d, +0x12,0xb, 0x14,0x1b,0x2a,0x10,0x7e,0xd, 0x3a,0x2d,0x12,0x39,0x70,0x0, 0x8, 0x7e, +0xd, 0x3a,0x69,0x50,0x0, 0x4, 0x69,0x20,0x0, 0x6, 0xbd,0x25,0x50,0x3, 0x2, 0x3, +0x82,0xb2,0x1, 0x7a,0xd, 0x34,0x7e,0x34,0x0, 0x2, 0x2, 0x3, 0x7f,0x7c,0xb6,0x1b, +0xb1,0x68,0x1d,0x14,0x68,0x1d,0xb, 0xb1,0x68,0x3, 0x2, 0x3, 0x82,0x30,0x1, 0x6, +0x7e,0x8, 0x0, 0x44,0x80,0x4, 0x7e,0x8, 0x1, 0x50,0x7a,0xd, 0x3a,0x2, 0x2, 0xf3, +0x2, 0x2, 0xfb,0xa, 0x57,0x6d,0x44,0x7e,0xd, 0x3a,0x69,0x30,0x0, 0x2, 0xb, 0xa, +0x20,0x2f,0x12,0x79,0x30,0x0, 0x2, 0x1b,0xa, 0x20,0x7e,0x1d,0x3a,0x7a,0x1d,0x34, +0xd2,0x2, 0x7e,0x34,0x0, 0x1, 0x2, 0x3, 0x7f,0xbe,0x60,0x1, 0x68,0x9, 0xa5,0xbe, +0x2, 0x5, 0x7a,0x71,0x3e,0xd2,0x3, 0xd2,0x2, 0x22,0x75,0xe6,0x0, 0xe4,0x7e,0x34, +0x1, 0x4, 0x7e,0x24,0x0, 0xff,0x7a,0x1b,0xb0,0x7e,0x34,0x1, 0x5, 0x7a,0x1b,0xb0, +0x7e,0x34,0x1, 0x8, 0x7a,0x1b,0xb0,0x7e,0x34,0x1, 0x9, 0x7a,0x1b,0xb0,0xd2,0x4, +0x22,0xa5,0xbe,0x1, 0x4, 0x7a,0x71,0x38,0x22,0xa5,0xbe,0x2, 0x2, 0x80,0x3, 0x2, +0x3, 0x82,0x7a,0x71,0x23,0x22,0x7a,0x71,0x33,0x22,0xd2,0x2, 0x22,0x7c,0xb6,0x1b, +0xb1,0x68,0x18,0x14,0x68,0x1c,0x14,0x68,0x31,0x14,0x68,0x3a,0xb, 0xb2,0x68,0x3, +0x2, 0x3, 0x82,0xa, 0x37,0x7d,0x3, 0x6d,0x11,0x80,0x59,0xa, 0x57,0x7c,0xab,0xe4, +0x80,0x2, 0xa, 0x57,0x6d,0x44,0x7e,0xd, 0x3a,0x69,0x30,0x0, 0x2, 0xb, 0xa, 0x20, +0x2f,0x12,0x79,0x30,0x0, 0x2, 0x1b,0xa, 0x20,0x22,0x7c,0x67,0x6c,0x77,0x7e,0xd, +0x3a,0x79,0x30,0x0, 0x4, 0x22,0xa, 0x27,0x7e,0xd, 0x3a,0xb, 0x16,0xb, 0xa, 0x30, +0x2d,0x32,0x1b,0xa, 0x30,0x7e,0x34,0x0, 0x3, 0x80,0x44,0x7e,0x34,0x0, 0x4, 0x7a, +0x35,0x2f,0x75,0x3f,0x0, 0x22,0x1b,0x61,0x68,0x15,0xb, 0x60,0x78,0x34,0x7c,0x27, +0x6c,0x33,0x6d,0x0, 0x7e,0x1d,0x3a,0x79,0x11,0x0, 0x2, 0x1b,0x1a,0x0, 0x22,0xa, +0x57,0x6d,0x44,0x7e,0xd, 0x3a,0x69,0x30,0x0, 0x2, 0xb, 0xa, 0x20,0x2f,0x12,0x79, +0x30,0x0, 0x2, 0x1b,0xa, 0x20,0xe4,0x7a,0xb3,0x2, 0xe4,0x7e,0x34,0x0, 0x5, 0x7a, +0x35,0x2f,0x22,0x75,0x84,0x1, 0x7e,0x44,0x1f,0xff,0xe4,0x7a,0x49,0xb0,0x1b,0x44, +0x78,0xf9,0x7e,0xf8,0x2, 0xe8,0xd2,0x7, 0xc2,0x8, 0x75,0x3f,0x0, 0x75,0x40,0x87, +0x75,0x41,0xa6,0x75,0x42,0x0, 0x75,0x43,0x0, 0xd2,0x0, 0xc2,0x2, 0xc2,0x3, 0xc2, +0x4, 0x75,0x22,0x0, 0x75,0x23,0x0, 0x75,0x24,0x80,0x75,0x2f,0x0, 0x75,0x30,0x0, +0x75,0x31,0x0, 0x75,0x32,0x0, 0x75,0x33,0x0, 0x75,0x38,0xb, 0x75,0x39,0x0, 0x75, +0x3e,0x1, 0x7e,0x4, 0x0, 0xff,0x7e,0x14,0xf, 0x50,0xb, 0xa, 0x40,0x5d,0x44,0x68, +0x1a,0x69,0x20,0x0, 0x2, 0xb, 0xe, 0xb, 0x44,0x80,0xa, 0x7e,0xb, 0xb0,0x7a,0x29, +0xb0,0xb, 0x24,0xb, 0xc, 0x1b,0x44,0x78,0xf2,0x80,0xdf,0x2, 0x4, 0x20,0xff,0xff, +0x56,0x30,0x2e,0x35,0x4a,0x75,0x6c,0x20,0x32,0x33,0x20,0x32,0x30,0x31,0x36,0x0, +0x46,0x54,0x53,0x38,0x37,0x31,0x36,0x5f,0x70,0x72,0x61,0x6d,0x62,0x6f,0x6f,0x74, +0x12,0xe, 0x63,0x2, 0x5, 0xbc,0x7e,0x35,0x2f,0x1b,0x34,0x68,0x60,0x1b,0x35,0x78, +0x3, 0x2, 0x4, 0xbc,0x1b,0x34,0x78,0x3, 0x2, 0x4, 0xe6,0x1b,0x34,0x78,0x3, 0x2, +0x5, 0x96,0x2e,0x34,0x0, 0x3, 0x68,0x3, 0x2, 0x5, 0xa8,0x6d,0x33,0x7a,0x35,0x2f, +0x7a,0x35,0x31,0x30,0x7, 0x5, 0x12,0x0, 0x2e,0xc2,0x7, 0x7e,0xd, 0x34,0x69,0x30, +0x0, 0x4, 0x7a,0x35,0x14,0x69,0x30,0x0, 0x2, 0xb, 0xa, 0x20,0x2e,0x14,0x0, 0x8, +0x12,0x0, 0x46,0xd2,0x7, 0x7e,0x2d,0x34,0x69,0x12,0x0, 0x4, 0x69,0x32,0x0, 0x2, +0xb, 0x2a,0x20,0x12,0xb, 0xe2,0x2e,0x34,0x10,0x0, 0x2, 0x5, 0x91,0x6d,0x33,0x7a, +0x35,0x2f,0x7e,0x34,0x1, 0x0, 0x7a,0x35,0x15,0x7e,0xd, 0x34,0x69,0x30,0x0, 0x2, +0xb, 0xa, 0x20,0x2e,0x14,0x0, 0x8, 0x12,0xe, 0xf2,0x20,0x0, 0x3, 0x2, 0x5, 0xa8, +0x7e,0x1d,0x34,0x29,0xb1,0x0, 0x8, 0xf5,0x91,0x2, 0x5, 0xa8,0x6d,0x33,0x7a,0x35, +0x2f,0x7a,0x35,0x31,0x7e,0x18,0x0, 0x3f,0x7a,0x1d,0xe, 0x7e,0xd, 0x34,0x69,0x30, +0x0, 0x2, 0xb, 0xa, 0x20,0x69,0x10,0x0, 0x4, 0x12,0x7, 0x62,0x12,0x0, 0x2e,0x7e, +0x34,0xf0,0x55,0x2, 0x5, 0x91,0x7e,0x18,0x10,0x0, 0x7a,0x1d,0x8, 0xd2,0x5, 0x6d, +0x33,0x7a,0x35,0x2f,0x7a,0x35,0x31,0xe5,0x38,0xb4,0xa, 0x17,0xe5,0x24,0xb4,0x80, +0xc, 0xe4,0x12,0xc, 0xd1,0x74,0x1, 0x12,0xc, 0xd1,0x2, 0x5, 0x7f,0x12,0x8, 0xa4, +0x2, 0x5, 0x7f,0xe5,0x38,0xb4,0xb, 0x27,0xe5,0x24,0xb4,0x80,0x11,0x7e,0xf0,0x1, +0x7c,0xbf,0x12,0x5, 0xc3,0xb, 0xf0,0xbe,0xf0,0x11,0x78,0xf4,0x80,0x51,0x7e,0xf0, +0x4, 0x7c,0xbf,0x12,0x5, 0xc3,0xb, 0xf0,0xbe,0xf0,0x40,0x78,0xf4,0x80,0x40,0xe5, +0x38,0xa, 0x3b,0x9e,0x34,0x0, 0x80,0x7c,0xe7,0xe5,0x24,0xb4,0x80,0x10,0xa, 0x3e, +0x6d,0x22,0x74,0xc, 0x2f,0x11,0x14,0x78,0xfb,0x7a,0x1d,0x8, 0x80,0xe, 0xa, 0x3e, +0x6d,0x22,0x74,0xa, 0x2f,0x11,0x14,0x78,0xfb,0x7a,0x1d,0x8, 0x6c,0xdd,0x80,0x9, +0x7c,0xbe,0x12,0x5, 0xc3,0xb, 0xe0,0xb, 0xd0,0xe5,0x23,0xbc,0xbd,0x38,0xf1,0x7e, +0x1d,0x8, 0x12,0xe, 0xd, 0x92,0x5, 0x12,0x0, 0x2e,0x30,0x5, 0x1b,0x7e,0x34,0xf0, +0xaa,0x7a,0x35,0x31,0x80,0x12,0x6d,0x33,0x7a,0x35,0x2f,0x7a,0x35,0x31,0x7e,0xd, +0x34,0x69,0x30,0x0, 0x2, 0x12,0x6, 0x98,0x30,0x4, 0x11,0x7e,0x34,0x13,0x88,0x12, +0xe, 0x86,0x7e,0x34,0x13,0x88,0x12,0xe, 0x86,0x75,0xe9,0xff,0x30,0x8, 0x3, 0x2, +0x4, 0x26,0x22,0xca,0xf8,0x7c,0xfb,0xe5,0x24,0xb4,0x80,0x4a,0xd2,0x6, 0x12,0xe, +0xdf,0x74,0x20,0xca,0xb8,0xa, 0x3f,0x6d,0x22,0x74,0xc, 0x2f,0x11,0x14,0x78,0xfb, +0xda,0xb8,0x12,0xd, 0xb3,0xa9,0xd2,0xb4,0x12,0xf, 0x32,0x12,0xe, 0xca,0x50,0x9, +0x7e,0x35,0x42,0xbe,0x34,0x1, 0xf4,0x28,0xf2,0x7e,0x35,0x42,0xbe,0x34,0x1, 0xf4, +0x38,0x6, 0x12,0xf, 0x4d,0x2, 0x6, 0x95,0xc2,0x86,0x7e,0x34,0x13,0x88,0x12,0xe, +0x86,0xd2,0x86,0x2, 0x6, 0x95,0x74,0x1, 0x12,0xa, 0x21,0x74,0x1, 0x6d,0x33,0x12, +0xc, 0x86,0xe4,0x12,0xa, 0x89,0x5e,0x34,0x80,0x0, 0x7c,0x4f,0x6c,0x55,0x3e,0x24, +0x4d,0x32,0x12,0xc, 0x86,0x74,0x4, 0x6d,0x33,0x12,0xc, 0x86,0x7e,0x34,0x0, 0x50, +0x12,0xc, 0x86,0x7e,0x34,0x0, 0x19,0x12,0xe, 0x86,0x74,0x4, 0x7e,0x34,0x0, 0x51, +0x12,0xc, 0x86,0x7e,0x34,0xa2,0x1c,0x12,0xe, 0x86,0x74,0x4, 0x7e,0x34,0x0, 0x11, +0x12,0xc, 0x86,0x7e,0x34,0x0, 0x19,0x12,0xe, 0x86,0x74,0x4, 0x7e,0x34,0x0, 0x10, +0x12,0xc, 0x86,0x7e,0x34,0x0, 0x19,0x12,0xe, 0x86,0x74,0x4, 0x6d,0x33,0x12,0xc, +0x86,0x7e,0x34,0x0, 0x5, 0x12,0xe, 0x86,0xe4,0x12,0xa, 0x21,0x74,0x4, 0x7e,0x34, +0xff,0xf7,0x12,0xc, 0x86,0xda,0xf8,0x22,0xca,0xf8,0xe4,0x7a,0xb3,0x2, 0xe4,0xe5, +0x24,0xbe,0xb0,0x80,0x68,0x9, 0x74,0x1, 0x7a,0xb3,0x2, 0xe4,0x2, 0x7, 0x5f,0xbe, +0x34,0xff,0xff,0x68,0x6, 0xbe,0x34,0x0, 0x12,0x50,0x4, 0x7e,0x34,0x0, 0x12,0x7d, +0x13,0x6d,0x0, 0x74,0xc, 0x2f,0x0, 0x14,0x78,0xfb,0x7a,0xd, 0xc, 0x7c,0xb7,0x12, +0x5, 0xc3,0x7e,0x1d,0xc, 0x12,0xe, 0xd, 0xe4,0x33,0x7c,0xfb,0xbe,0xf0,0x1, 0x78, +0xa, 0x7e,0xb3,0x2, 0xe4,0x44,0x2, 0x7a,0xb3,0x2, 0xe4,0x6c,0xaa,0xa, 0x3a,0x19, +0xa3,0x2, 0xdc,0xb, 0xa0,0xbe,0xa0,0x8, 0x78,0xf3,0x7e,0x34,0x0, 0x8, 0x7a,0x35, +0x14,0x7e,0x1d,0xc, 0x7e,0x8, 0x2, 0xdc,0x12,0x0, 0x46,0x6c,0xaa,0xe4,0xa, 0x4a, +0x19,0xb4,0x2, 0xdc,0xb, 0xa0,0xbe,0xa0,0x8, 0x78,0xf3,0x7e,0x34,0x0, 0x8, 0x7a, +0x35,0x15,0x7e,0x1d,0xc, 0x7e,0x8, 0x2, 0xdc,0x12,0xe, 0xf2,0x7e,0xf0,0x1, 0x6c, +0xaa,0xa, 0x3a,0x9, 0xb3,0x2, 0xdc,0xbc,0xba,0x68,0x4, 0x6c,0xff,0x80,0x7, 0xb, +0xa0,0xbe,0xa0,0x8, 0x40,0xeb,0xbe,0xf0,0x1, 0x78,0xa, 0x7e,0xb3,0x2, 0xe4,0x44, +0x4, 0x7a,0xb3,0x2, 0xe4,0x7e,0xb3,0x2, 0xe4,0x44,0x1, 0x7a,0xb3,0x2, 0xe4,0xda, +0xf8,0x22,0xca,0x3b,0x7a,0x15,0xc, 0x7f,0x31,0x75,0x12,0x0, 0x7e,0x35,0xc, 0xbe, +0x34,0x0, 0x0, 0x38,0x4f,0x7e,0x34,0xff,0xff,0x7a,0x35,0xc, 0x75,0x12,0x1, 0x80, +0x43,0x7e,0x34,0x0, 0x80,0x7a,0x35,0x15,0x7f,0x13,0x7e,0x8, 0x2, 0x5c,0x12,0xe, +0xf2,0x7e,0x35,0xc, 0x9e,0x34,0x0, 0x80,0x7a,0x35,0xc, 0x2e,0x38,0x0, 0x80,0x6d, +0x33,0x7a,0x35,0x13,0x7e,0x35,0x13,0x9, 0x63,0x2, 0x5c,0x7e,0xd, 0xe, 0x7e,0xb, +0x70,0x6c,0x76,0x7a,0xb, 0x70,0x7e,0x35,0x13,0xb, 0x34,0x7a,0x35,0x13,0xbe,0x34, +0x0, 0x80,0x78,0xe0,0x7e,0x35,0xc, 0xbe,0x34,0x0, 0x80,0x38,0xb4,0xe5,0x12,0x60, +0x5, 0xb, 0x34,0x7a,0x35,0xc, 0x7e,0x35,0xc, 0x7a,0x35,0x15,0x7f,0x13,0x7e,0x8, +0x2, 0x5c,0x12,0xe, 0xf2,0x6d,0x33,0x80,0x17,0x7e,0x35,0x13,0x9, 0x63,0x2, 0x5c, +0x7e,0xd, 0xe, 0x7e,0xb, 0x70,0x6c,0x76,0x7a,0xb, 0x70,0x7e,0x35,0x13,0xb, 0x34, +0x7a,0x35,0x13,0x7e,0x35,0xc, 0xbe,0x35,0x13,0x38,0xde,0xda,0x3b,0x22,0xca,0x3b, +0x7f,0x30,0x7c,0xb6,0xf5,0x1a,0x7c,0xb7,0xf5,0x1b,0x74,0x1, 0x7e,0x35,0x18,0x1e, +0x34,0x1b,0x34,0x4e,0x60,0x80,0x12,0xc, 0x86,0x12,0xa, 0x21,0xa9,0xc2,0xb4,0xa9, +0xc6,0xb3,0x75,0xb5,0x2, 0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0x75,0xb5,0x0, 0xa9, +0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0x85,0x1a,0xb5,0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3, +0x85,0x1b,0xb5,0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0x6d,0x33,0x80,0x2a,0x7f,0x13, +0x2e,0x35,0x1c,0x7e,0x1b,0xb0,0xf5,0xb5,0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0x7e, +0x35,0x1c,0x5e,0x34,0x0, 0x1, 0xbe,0x34,0x0, 0x1, 0x78,0x7, 0x7e,0x34,0x0, 0x78, +0x12,0xe, 0x86,0x7e,0x35,0x1c,0xb, 0x34,0x7a,0x35,0x1c,0x7e,0x35,0x18,0xbe,0x35, +0x1c,0x38,0xcb,0xa9,0xd2,0xb4,0x7e,0x34,0x0, 0x5, 0x12,0xe, 0x86,0xe4,0x12,0xa, +0x21,0xda,0x3b,0x22,0xe5,0x24,0xb4,0x80,0x16,0xd2,0x6, 0x12,0xe, 0xdf,0xa9,0xc2, +0xb4,0x74,0x60,0x12,0xf, 0x27,0xa9,0xd2,0xb4,0x12,0xe, 0xca,0x40,0xfb,0x22,0x74, +0x1, 0x12,0xa, 0x21,0xe4,0x6d,0x33,0x12,0xc, 0x86,0x74,0x1, 0x6d,0x33,0x12,0xc, +0x86,0x74,0x4, 0x6d,0x33,0x12,0xc, 0x86,0x7e,0x34,0x0, 0x54,0x12,0xc, 0x86,0x7e, +0x34,0x0, 0x19,0x12,0xe, 0x86,0x74,0x4, 0x7e,0x34,0x0, 0x55,0x12,0xc, 0x86,0x7e, +0x34,0xa2,0x1c,0x12,0xe, 0x86,0x74,0x4, 0x7e,0x34,0x0, 0x15,0x12,0xc, 0x86,0x7e, +0x34,0x0, 0xa0,0x12,0xe, 0x86,0x74,0x4, 0x7e,0x34,0x0, 0x14,0x12,0xc, 0x86,0x7e, +0x34,0x0, 0x19,0x12,0xe, 0x86,0x74,0x4, 0x7e,0x34,0x0, 0x4, 0x12,0xc, 0x86,0x7e, +0x34,0x0, 0x5, 0x12,0xe, 0x86,0xe4,0x12,0xa, 0x21,0x74,0x4, 0x7e,0x34,0xff,0xf7, +0x2, 0xc, 0x86,0x7c,0x7b,0x7e,0xa0,0xef,0xe5,0x22,0x24,0xfd,0x68,0x3c,0x1b,0xb1, +0x68,0x26,0x24,0x9f,0x68,0x41,0x1b,0xb2,0x68,0x42,0x24,0x9e,0x68,0x39,0x24,0xe3, +0x68,0x52,0x24,0x59,0x78,0x52,0xa5,0xbf,0x0, 0x5, 0x7e,0xa1,0x40,0x80,0x49,0xa5, +0xbf,0x1, 0x45,0x7e,0xa1,0x41,0x80,0x40,0xa5,0xbf,0x0, 0x5, 0x7e,0xa1,0x24,0x80, +0x37,0xa5,0xbf,0x1, 0x33,0x7e,0xa1,0x3e,0x80,0x2e,0xa, 0x17,0x7e,0x1d,0x3a,0x2d, +0x31,0x29,0xa1,0x0, 0x8, 0x80,0x21,0x7e,0xa1,0x3f,0x80,0x1c,0xa5,0xbf,0x0, 0x9, +0x7e,0x35,0x31,0xa, 0x56,0x7c,0xab,0x80,0xf, 0xa5,0xbf,0x1, 0xb, 0x7e,0x55,0x31, +0x7c,0xab,0x80,0x4, 0x7e,0xa3,0x2, 0xe4,0x7c,0xba,0x22,0xca,0x79,0x6c,0xee,0x7e, +0xf0,0x70,0x75,0x91,0x0, 0xc2,0x90,0xc2,0x91,0x30,0x8, 0x31,0x7e,0x34,0x0, 0x2, +0x7a,0x35,0x15,0x9f,0x11,0x7e,0x8, 0x0, 0xc, 0x12,0xe, 0xf2,0xe5,0xc, 0xbe,0xb0, +0xff,0x68,0x1a,0xe5,0xc, 0x60,0x16,0xe5,0xd, 0xa, 0x2b,0xe5,0xc, 0xa, 0x3b,0x2d, +0x32,0xbe,0x34,0x0, 0xff,0x78,0x6, 0x7e,0xf1,0xc, 0x7e,0xe0,0x1, 0x4c,0xee,0x78, +0x1c,0xa9,0xd1,0xcb,0xd2,0xcc,0x12,0xc, 0x35,0x7c,0xfb,0xc2,0xcc,0xa9,0xc1,0xcb, +0xbe,0xf0,0x2, 0x40,0x5, 0xbe,0xf0,0xfd,0x28,0x3, 0x7e,0xf0,0x70,0x7c,0xbf,0x54, +0xfe,0xf5,0x92,0xd2,0xe8,0xc2,0xc0,0xa9,0xd5,0xb7,0xd2,0xbd,0xd2,0xad,0xda,0x79, +0x22,0xca,0x79,0xbe,0xb0,0x0, 0x28,0x2e,0x74,0x6, 0x12,0xa, 0x89,0x7d,0x73,0x6c, +0xff,0x7e,0xf0,0xa5,0x7d,0x37,0x12,0xc, 0x86,0x6c,0xff,0x7e,0xf0,0xf, 0x7d,0x37, +0x12,0xc, 0x86,0x6c,0xff,0x7e,0xf0,0x6a,0x7d,0x37,0x12,0xc, 0x86,0x7e,0x34,0x0, +0x5, 0x12,0xe, 0x86,0x80,0x30,0x74,0x1, 0x7e,0x34,0xdf,0xff,0x12,0xc, 0x86,0x74, +0x6, 0x12,0xa, 0x89,0x7d,0x73,0x6c,0xff,0x7d,0x37,0x12,0xc, 0x86,0x7d,0x37,0x12, +0xc, 0x86,0x7d,0x37,0x12,0xc, 0x86,0x74,0x2, 0x12,0xa, 0x89,0x7d,0x73,0x4e,0xf0, +0x1, 0x7d,0x37,0x12,0xc, 0x86,0xda,0x79,0x22,0xa9,0xc2,0xb4,0xa9,0xc6,0xb3,0x75, +0xb5,0x5, 0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0x75,0xb5,0x0, 0xa9,0x36,0xb3,0xfc, +0xa9,0xc6,0xb3,0x75,0xb5,0x0, 0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0xf5,0xb5,0xa9, +0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0x75,0xb5,0x0, 0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3, +0x75,0xb5,0x0, 0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0x7e,0x71,0xb5,0x75,0xb5,0x0, +0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0x7e,0xa1,0xb5,0xa9,0xd2,0xb4,0x7c,0x47,0x6c, +0x55,0xa, 0x3a,0x4d,0x32,0x22,0x7f,0x70,0xd2,0x6, 0x12,0xe, 0xdf,0x74,0x2, 0x12, +0xd, 0xb3,0x6d,0x33,0x80,0x12,0x7f,0x7, 0x2d,0x13,0x7e,0xb, 0xb0,0xf5,0xb5,0xa9, +0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0xb, 0x34,0x7e,0x25,0x18,0xbd,0x23,0x38,0xe7,0xa9, +0xd2,0xb4,0x12,0xf, 0x32,0x12,0xe, 0xca,0x50,0x9, 0x7e,0x35,0x42,0xbe,0x34,0x1, +0xf4,0x28,0xf2,0x7e,0x35,0x42,0xbe,0x34,0x1, 0xf4,0x38,0x3, 0x2, 0xf, 0x4d,0xc2, +0x86,0x7e,0x34,0x13,0x88,0x12,0xe, 0x86,0xd2,0x86,0x22,0xa9,0xd1,0xcb,0xd2,0xcc, +0x7e,0x34,0x0, 0x4, 0x7e,0x8, 0x2, 0x5c,0x74,0xc, 0x12,0xb, 0x8f,0xa9,0xd1,0xcb, +0xc2,0xcc,0x6c,0xaa,0x7e,0x70,0x2, 0xac,0x7a,0x7e,0x8, 0x2, 0x5c,0x2d,0x13,0xb, +0xa, 0x30,0x7d,0x23,0x7c,0x45,0x6c,0x55,0xa, 0x36,0x4d,0x32,0x1b,0xa, 0x30,0xb, +0xa0,0xbe,0xa0,0xc, 0x78,0xde,0x7e,0x37,0x2, 0x6c,0x7d,0x23,0xa, 0x54,0x7c,0xa7, +0xb4,0xe7,0xb, 0xbe,0xa0,0x16,0x78,0x6, 0x75,0x40,0xe7,0x75,0x41,0xa6,0x22,0x7e, +0x24,0x0, 0x1, 0x7e,0x7f,0x2, 0xe5,0x79,0x27,0x0, 0x6, 0x7e,0x7f,0x2, 0xe5,0x69, +0x27,0x0, 0x6, 0x4d,0x22,0x78,0xf4,0x5e,0x60,0x7f,0x1b,0x7a,0x30,0x7e,0x1f,0x2, +0xe5,0x69,0x31,0x0, 0x8, 0x4d,0x33,0x68,0xf4,0x6c,0xaa,0x80,0x20,0x6d,0x44,0x7e, +0x1f,0x2, 0xe5,0x1b,0x1a,0x40,0x7e,0x1f,0x2, 0xe5,0x69,0x41,0x0, 0x8, 0x4d,0x44, +0x68,0xf4,0x69,0x41,0x0, 0x2, 0x1b,0xa, 0x40,0xb, 0x15,0xb, 0xa0,0xbc,0xba,0x38, +0xdc,0x22,0x6d,0x0, 0x74,0x10,0x4d,0x0, 0x78,0xb, 0x4d,0x22,0x78,0x27,0x8d,0x31, +0x7d,0x12,0x6d,0x22,0x22,0x7d,0x43,0x7d,0x32,0x6d,0x22,0x2f,0x11,0x2d,0x44,0x50, +0x2, 0xa5,0xf, 0xbf,0x10,0x40,0x4, 0x9f,0x10,0xb, 0x90,0x14,0x78,0xed,0x7f,0x1, +0x6d,0x22,0x7d,0x34,0x22,0x7d,0x41,0x7d,0x13,0x8d,0x24,0x7d,0x2, 0x2f,0x0, 0x40, +0x4, 0xbd,0x4, 0x40,0x4, 0x9d,0x4, 0xb, 0x14,0x14,0x78,0xf1,0x7d,0x23,0x7d,0x31, +0x7d,0x10,0x6d,0x0, 0x22,0x7e,0x34,0x0, 0x2, 0x7e,0xf, 0x2, 0xe5,0x79,0x30,0x0, +0x4, 0x7e,0x34,0x0, 0x1, 0x7e,0xf, 0x2, 0xe5,0x79,0x30,0x0, 0x6, 0x7e,0xf, 0x2, +0xe5,0x69,0x30,0x0, 0x6, 0x4d,0x33,0x78,0xf4,0x7e,0x34,0x0, 0x4, 0x1b,0xa, 0x30, +0x7e,0xf, 0x2, 0xe5,0x69,0x30,0x0, 0x8, 0x4d,0x33,0x68,0xf4,0x6d,0x33,0x1b,0xa, +0x30,0x7e,0x1f,0x2, 0xe5,0x69,0x11,0x0, 0x8, 0x4d,0x11,0x68,0xf4,0x69,0x51,0x0, +0x2, 0x5e,0x54,0x0, 0xfe,0x22,0x7d,0x23,0xa, 0x36,0x7c,0xa5,0xa9,0xc2,0xb4,0xa9, +0xc6,0xb3,0x75,0xb5,0x1, 0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0x75,0xb5,0x0, 0xa9, +0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0x75,0xb5,0x0, 0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3, +0xf5,0xb5,0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0x7a,0x71,0xb5,0xa9,0x36,0xb3,0xfc, +0xa9,0xc6,0xb3,0x7a,0xa1,0xb5,0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0xa9,0xd2,0xb4, +0x22,0x7c,0xab,0xd2,0x6, 0x12,0xe, 0xdf,0x74,0xd8,0xa, 0x3a,0x7d,0x23,0x6d,0x33, +0x12,0xd, 0xb3,0xa9,0xd2,0xb4,0x12,0xf, 0x32,0x12,0xe, 0xca,0x50,0x9, 0x7e,0x35, +0x42,0xbe,0x34,0x5, 0xdc,0x28,0xf2,0x7e,0x35,0x42,0xbe,0x34,0x5, 0xdc,0x38,0x3, +0x2, 0xf, 0x4d,0xc2,0x86,0x7e,0x34,0x13,0x88,0x12,0xe, 0x86,0xd2,0x86,0x22,0xca, +0x2b,0xca,0x1b,0xca,0xb, 0xd2,0x0, 0x30,0x90,0x1c,0xc2,0x90,0x7e,0x71,0x91,0xe5, +0x39,0x70,0x3, 0x7a,0x71,0x22,0xe5,0x39,0x12,0x1, 0x20,0x5, 0x39,0x30,0x2, 0x6, +0xe4,0x12,0x9, 0x33,0xf5,0x91,0x30,0x91,0xb, 0xc2,0x91,0x5, 0x39,0xe5,0x39,0x12, +0x9, 0x33,0xf5,0x91,0xda,0xb, 0xda,0x1b,0xda,0x2b,0x32,0xd2,0x6, 0x12,0xe, 0xdf, +0xa9,0xc2,0xb4,0x74,0x9f,0x12,0xf, 0x27,0x12,0xf, 0xe, 0xa9,0xd2,0xb4,0x60,0x3, +0xb4,0xff,0x1a,0x75,0x24,0x81,0xa9,0xd5,0xca,0xa9,0xd0,0xca,0x75,0xed,0x9f,0x75, +0xad,0x20,0xa9,0xd1,0xea,0xa9,0xc1,0xea,0x74,0x1, 0x2, 0xd, 0xe0,0x2, 0xd, 0x80, +0xd2,0x6, 0x12,0xe, 0xdf,0xa9,0xc2,0xb4,0x74,0x5, 0x12,0xf, 0x27,0x12,0xf, 0xe, +0x7c,0xab,0xa9,0xd2,0xb4,0xd2,0x6, 0x12,0xe, 0xdf,0x5e,0xa0,0xe3,0xa9,0xc2,0xb4, +0x74,0x1, 0x12,0xf, 0x27,0x7c,0xba,0x12,0xf, 0x27,0xa9,0xd2,0xb4,0x12,0xe, 0xca, +0x40,0xfb,0x22,0x7c,0xab,0x7d,0x12,0x7c,0xb3,0xf5,0x1c,0x7c,0x36,0x7c,0x25,0xa, +0x4, 0x7c,0xb3,0xf5,0x1b,0x7c,0xb7,0xf5,0x1a,0xa9,0xc2,0xb4,0x7c,0xba,0x12,0xf, +0x27,0xe5,0x1c,0x12,0xf, 0x27,0xe5,0x1b,0x12,0xf, 0x27,0xe5,0x1a,0x2, 0xf, 0x27, +0xca,0xf8,0x7c,0xfb,0xe5,0x24,0xb4,0x81,0x21,0x74,0x2, 0x12,0xa, 0x89,0x4c,0xff, +0x78,0x8, 0xa9,0xc0,0xca,0x5e,0x70,0xdf,0x80,0x6, 0xa9,0xd0,0xca,0x4e,0x70,0x20, +0x74,0x2, 0x12,0xc, 0x86,0x74,0x2, 0x12,0xa, 0x89,0xda,0xf8,0x22,0xd2,0x6, 0x7e, +0x14,0x0, 0x8, 0x7a,0x15,0x15,0x7e,0x8, 0x2, 0xdc,0x12,0xe, 0xf2,0x6c,0xaa,0xa, +0x3a,0x9, 0xb3,0x2, 0xdc,0xbe,0xb0,0xff,0x68,0x4, 0xc2,0x6, 0x80,0x7, 0xb, 0xa0, +0xbe,0xa0,0x8, 0x40,0xea,0xa2,0x6, 0x22,0x7d,0x52,0xf5,0x19,0x7c,0xb6,0x7c,0xa5, +0xa, 0x44,0xf5,0x18,0x7f,0x21,0xf5,0x17,0xa9,0xc2,0xb4,0x74,0xb, 0x12,0xf, 0x27, +0xe5,0x19,0x12,0xf, 0x27,0xe5,0x18,0x12,0xf, 0x27,0xe5,0x17,0x12,0xf, 0x27,0xe4, +0x2, 0xf, 0x27,0x12,0xe, 0xa9,0x12,0xb, 0x3b,0xa9,0xa6,0x94,0xb3,0x92,0x8, 0x30, +0x8, 0x6, 0x12,0xf, 0x1b,0x12,0xd, 0x4b,0x12,0x9, 0xab,0x12,0xf, 0x0, 0xd2,0xaf, +0x30,0x3, 0xfd,0x2, 0xf, 0x45,0x80,0x18,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0xe5,0x3e,0x70,0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x7d,0x23,0x1b,0x34,0x4d,0x22,0x78,0xe0,0x22,0xd2,0xcf,0x85,0x3e,0xcc,0x75,0xec, +0xff,0x75,0xee,0xff,0x75,0xeb,0x3, 0x75,0xac,0xc0,0xa9,0xc5,0xca,0x75,0xed,0xf, +0x75,0xad,0xb0,0xa9,0xd7,0x94,0xa9,0xd4,0x94,0x22,0xa9,0xc2,0xb4,0x74,0x5, 0x12, +0xf, 0x27,0x12,0xf, 0xe, 0xa9,0xd2,0xb4,0x30,0xe0,0x2, 0xd3,0x22,0xc3,0x22,0xa9, +0xc2,0xb4,0x30,0x6, 0x4, 0x74,0x6, 0x80,0x2, 0x74,0x4, 0x12,0xf, 0x27,0xa9,0xd2, +0xb4,0x22,0x12,0xe, 0x38,0x7e,0x35,0x15,0x12,0x0, 0xe, 0xa9,0xd2,0xb4,0xd3,0x22, +0xc2,0x8c,0x43,0x89,0x2, 0x75,0x8c,0x1, 0x75,0x8a,0x0, 0xd2,0xa9,0x22,0x75,0xb5, +0x0, 0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3,0xe5,0xb5,0x22,0xd2,0xc8,0x75,0xb3,0x13, +0xa9,0xd1,0xb4,0xa9,0xc0,0xb4,0x22,0xf5,0xb5,0xa9,0x36,0xb3,0xfc,0xa9,0xc6,0xb3, +0xd3,0x22,0xc2,0x8c,0x6d,0x33,0x7a,0x35,0x42,0xd2,0x8c,0x22,0x7e,0x35,0x42,0xb, +0x34,0x7a,0x35,0x42,0x22,0x85,0x3e,0xcc,0xe5,0x3e,0x2, 0xd, 0xe0,0x2, 0xf, 0x3c, +0x0, 0x1, 0x2, 0xe4,0x0, 0x0, 0x4, 0x2, 0xe5,0x0, 0x0, 0x9c,0x0, 0x0, 0x0, 0xff, diff --git a/drivers/input/touchscreen/GT915L/FW_BIEL.txt b/drivers/input/touchscreen/GT915L/FW_BIEL.txt new file mode 100644 index 0000000000000..17543129fde2c --- /dev/null +++ b/drivers/input/touchscreen/GT915L/FW_BIEL.txt @@ -0,0 +1,11265 @@ + 0x00,0x01,0x60,0x00,0x39,0x31,0x35,0x4C,0x00,0x00,0x00,0x00,0x80,0x02,0x80,0x00, + + 0x55,0x40,0xBD,0xDA,0xFD,0x24,0x34,0xDF,0x44,0x40,0xAF,0xF7,0x3A,0x7D,0xC8,0xB4, + + 0x25,0x41,0x8C,0x90,0x10,0xFB,0x22,0xB7,0xED,0x5E,0x08,0xB0,0x59,0x95,0x01,0x88, + + 0x86,0x02,0x72,0xFC,0x81,0xD9,0x39,0x25,0xC8,0xE2,0x39,0x87,0x57,0x45,0x09,0x05, + + 0x87,0x03,0xE9,0xD5,0x5F,0x2E,0x23,0xB6,0x6D,0x4B,0x36,0x4B,0x0C,0x9E,0x77,0xA2, + + 0x69,0x0B,0xB8,0x76,0xC3,0x50,0x10,0x13,0xC6,0x75,0xEA,0x3F,0xE5,0xE9,0x77,0xF5, + + 0xF8,0x0D,0xF5,0x4A,0xB0,0xA0,0x89,0x83,0xCF,0x48,0x48,0xDE,0x53,0x49,0x40,0x3E, + + 0xFE,0xF9,0xB9,0x77,0xE2,0xB9,0x2F,0x67,0x2B,0x22,0xFA,0x8E,0x62,0x22,0xCF,0xDB, + + 0x80,0xC7,0xDA,0xAF,0x07,0x28,0x27,0x93,0x6F,0x4A,0xAC,0x75,0xC8,0x30,0xC0,0xAC, + + 0x2C,0x48,0x98,0x22,0x39,0xB8,0x96,0xDE,0xC8,0x68,0x4D,0x24,0x76,0x2E,0x9A,0xBC, + + 0x2F,0x49,0xC2,0x8F,0xF8,0x26,0x3A,0x11,0xA8,0x2F,0xEA,0xE3,0xB6,0x28,0x4F,0x43, + + 0xC0,0xD3,0x43,0x5C,0x7B,0x2C,0xEB,0x21,0x17,0xC5,0x61,0xEB,0x7A,0x26,0xC8,0xD8, + + 0x2A,0x6E,0xEB,0xDD,0x5B,0x24,0xAF,0xD3,0x8A,0xAB,0x6E,0x3C,0x9D,0x5F,0x2C,0xAA, + + 0xAD,0x4D,0xFD,0x7E,0x6A,0xB3,0xC2,0xA8,0x52,0x71,0xD2,0x55,0xAB,0x18,0x24,0xBA, + + 0xBE,0x4C,0xE5,0x76,0xB8,0x59,0x22,0x70,0xAE,0x0C,0xF5,0x86,0xB2,0x62,0xEF,0xC3, + + 0x71,0xFE,0x7A,0x53,0x39,0xAB,0x45,0x6F,0x79,0x8A,0xAB,0x7F,0x07,0xB2,0xE3,0x8A, + + 0x7A,0x0C,0xB3,0x6F,0xE3,0xB3,0xAE,0x87,0xDF,0x72,0x76,0x96,0xE8,0x7D,0x04,0x80, + + 0x78,0xF8,0x25,0x21,0xAC,0xB3,0x74,0x61,0x40,0xDD,0x3F,0xBF,0xD3,0xF5,0xDE,0xB0, + + 0x26,0xE9,0xFA,0xD2,0x97,0x7D,0x6F,0x97,0x9E,0xDB,0x9C,0xB9,0x87,0x71,0x4F,0x28, + + 0x82,0x11,0x2E,0xFA,0x65,0x7C,0xCE,0xA0,0x6E,0x5B,0x06,0x5B,0xD4,0xE5,0x02,0x1D, + + 0x24,0xE6,0xF9,0x68,0x8F,0x71,0xCA,0x11,0x08,0x63,0x88,0xCA,0x29,0x7C,0x27,0x3A, + + 0xA2,0x74,0x97,0x3E,0x87,0xB1,0xF0,0x4C,0x89,0x30,0x95,0x9B,0x0E,0x8B,0x22,0xC5, + + 0xAE,0x98,0xB3,0xA6,0x41,0xAA,0xE8,0x12,0x47,0x5F,0x08,0x0F,0x82,0x16,0x85,0xC0, + + 0x6F,0x15,0xD2,0x9B,0xD8,0x39,0x6C,0x03,0x0B,0x59,0x6E,0x40,0x05,0xCB,0xAA,0x2E, + + 0x42,0xC1,0x5D,0x24,0x10,0x27,0x58,0x9A,0x8B,0x13,0xA6,0xBE,0xDD,0x4B,0xC6,0x58, + + 0xD1,0x03,0x82,0x87,0xC4,0x1B,0x5C,0x35,0x9F,0xD5,0xB4,0x53,0x80,0x77,0x71,0x1A, + + 0xA1,0x11,0x5E,0x18,0x31,0xCD,0x9D,0xE7,0x2A,0x55,0xC0,0x5E,0x69,0x84,0xF8,0xFB, + + 0x4F,0x04,0x47,0x8C,0x64,0xCF,0xF3,0x8E,0xC9,0x7A,0x07,0xDF,0x29,0x65,0xD0,0xDB, + + 0xDE,0xE3,0x50,0x95,0x3E,0x3C,0x09,0xDB,0xC8,0x4E,0x08,0x42,0x0C,0x18,0xBD,0xEC, + + 0xE3,0x13,0x98,0xCA,0x3A,0xC1,0x7F,0x1E,0x7A,0x99,0x96,0x3B,0x32,0x0A,0x36,0x8B, + + 0x88,0x02,0x35,0x87,0x15,0x81,0x5B,0x93,0x03,0x19,0xE5,0x73,0x88,0x40,0x3E,0xEE, + + 0x0B,0x0F,0x50,0x32,0x4F,0x5D,0x2F,0xCD,0x54,0x81,0xEA,0x63,0xFB,0x9E,0x71,0xDF, + + 0xE1,0x5B,0xE4,0x78,0x6A,0x93,0x76,0x1F,0x02,0x50,0x3E,0x16,0xA7,0x61,0xB0,0xA6, + + 0x04,0xC0,0x08,0x38,0x91,0x20,0x22,0x3A,0xD5,0xAC,0x10,0x28,0xD8,0xED,0x28,0x12, + + 0x05,0xC1,0x68,0xD2,0x91,0xA7,0x32,0x12,0xD4,0xA5,0x28,0x99,0xA2,0xA1,0x21,0x1F, + + 0x84,0x82,0x7E,0x77,0xE3,0xA2,0xE5,0x71,0x87,0x32,0x21,0xE7,0xD0,0x0F,0x29,0x9F, + + 0x85,0x83,0xA1,0xB8,0xF6,0x83,0x31,0x23,0x26,0x09,0x05,0x13,0x4D,0xA7,0xDE,0x4B, + + 0xA0,0x2A,0xB1,0x77,0xB5,0x1B,0x66,0x64,0xF5,0x89,0x4F,0x5B,0xA9,0x39,0x52,0xC8, + + 0xF4,0x58,0xFB,0x0D,0x7D,0xAA,0xE8,0x01,0xCB,0x94,0x87,0x0C,0x79,0x7A,0x5B,0x04, + + 0x5C,0x39,0xDC,0x58,0x35,0x23,0x0F,0x81,0xD6,0x8B,0x25,0x99,0x2F,0x85,0x39,0x24, + + 0xCD,0xC0,0x92,0x38,0x43,0xA8,0x07,0x74,0x7E,0xA1,0x44,0xD2,0x68,0xE5,0x22,0x0A, + + 0x0C,0xC8,0xDA,0xC8,0xA8,0xE6,0x12,0x2B,0x09,0x07,0x13,0x29,0xBD,0x8E,0x2A,0x1A, + + 0x0D,0xC9,0xA3,0x1A,0x60,0x19,0x3E,0x3E,0x0D,0xD9,0x88,0x14,0xFE,0x15,0x23,0x2A, + + 0x8C,0x8A,0x14,0xE7,0x54,0x61,0xDC,0x59,0x4C,0xBA,0x23,0x50,0x04,0xE5,0x24,0x0D, + + 0x8D,0x8B,0x88,0xBE,0x45,0xE8,0x7B,0x1B,0xCC,0xCF,0x98,0xDD,0x3D,0xFA,0x0C,0x38, + + 0x83,0x7A,0xD0,0xB0,0xA6,0xA3,0x0C,0x88,0xE2,0xF1,0x1C,0x6B,0xC4,0xE4,0xAA,0x5B, + + 0xC2,0xE1,0x45,0x0D,0xBC,0x7C,0x7E,0xFB,0xA6,0x89,0x7D,0xB4,0xB6,0x60,0x9C,0x39, + + 0x58,0x51,0x5E,0x50,0x3D,0x2B,0x97,0x4F,0x7D,0xB9,0xF1,0x00,0x44,0x91,0x51,0xC0, + + 0x74,0x02,0xC4,0xF6,0x68,0x22,0x6E,0x88,0x4B,0x62,0x86,0x91,0xFB,0xF4,0x1E,0x60, + + 0x88,0x6E,0x0C,0x24,0xEB,0xEF,0x3C,0x08,0x85,0xB6,0x4F,0xDC,0x5A,0x6F,0x2C,0x6F, + + 0x25,0x1C,0x0C,0x85,0x1B,0xD5,0x88,0x58,0x84,0xB7,0xB4,0xA7,0x86,0x2C,0x5E,0x5D, + + 0x13,0x89,0x0D,0x34,0x7C,0x31,0x81,0x4D,0x05,0xB4,0x0E,0x3C,0x05,0xE4,0xD5,0x9B, + + 0x7A,0x0C,0x76,0x95,0xCA,0x33,0x89,0xF9,0x2C,0x97,0xDA,0x49,0xA9,0x5D,0x3C,0xC6, + + 0x6C,0xF0,0x44,0x63,0xFF,0xF0,0x75,0x04,0x42,0x29,0xCC,0x94,0xEF,0xAB,0xD8,0x38, + + 0x86,0x39,0x89,0xA5,0xB3,0xA3,0x87,0x89,0x5D,0x6A,0xA2,0x14,0x75,0x08,0x5D,0x6B, + + 0x05,0xD7,0x00,0xBC,0x20,0x2B,0xE0,0x1C,0x13,0x85,0xCF,0xBD,0x49,0xB7,0x15,0xE2, + + 0x04,0x98,0xE5,0xCF,0x5C,0xF3,0x46,0x5B,0x14,0x96,0x6A,0x08,0x02,0x94,0x78,0xA8, + + 0xF9,0x33,0x4E,0x2C,0x98,0x3F,0x1F,0xE4,0xA5,0xBC,0xCE,0xC5,0x9D,0x24,0x1E,0x6B, + + 0x14,0x89,0x06,0x3C,0xE2,0x36,0x10,0xBC,0xFC,0x85,0xC0,0x5C,0x88,0x7D,0x26,0xD0, + + 0xC7,0xAA,0x73,0xA9,0x52,0xD9,0x9E,0x49,0x40,0xC6,0xC8,0x8B,0x05,0xE5,0x71,0x90, + + 0xAD,0x30,0x6F,0x9F,0xEB,0x65,0x11,0xBC,0x78,0x25,0xAF,0x79,0xAF,0x24,0x58,0xCC, + + 0x64,0xD8,0x5D,0x41,0xC9,0x01,0xDA,0x95,0xF0,0x23,0x0D,0x95,0x50,0x43,0x56,0x90, + + 0x1D,0x92,0x95,0xC3,0xF4,0xB2,0x1B,0x01,0x9E,0xCB,0x2A,0xB4,0x7D,0x13,0x3F,0xCF, + + 0xE4,0xFA,0x06,0x34,0x4F,0x88,0xCC,0x65,0x19,0x63,0xDC,0x4A,0x2F,0xE2,0x56,0xFF, + + 0x11,0xBF,0x05,0xAD,0x6A,0xC0,0x04,0xDF,0x5E,0x2B,0x79,0x70,0x0E,0xA9,0x39,0x8B, + + 0x01,0x50,0xAE,0x03,0xD9,0x2F,0x80,0x42,0xB3,0x25,0xE8,0x35,0xB0,0xE1,0xE9,0xEA, + + 0xB0,0x37,0x28,0x5E,0xB2,0x44,0xE3,0x17,0xE0,0xBE,0x20,0xCE,0xDE,0xD7,0x3E,0x8E, + + 0x7B,0x9F,0xAF,0x02,0x01,0x8E,0x29,0xDA,0x6C,0x4F,0x97,0xDE,0xE3,0x48,0x70,0x0C, + + 0x4A,0x0C,0xA7,0x12,0x58,0x2C,0x89,0x57,0x32,0x53,0x91,0x2D,0xE2,0x55,0x50,0xB4, + + 0x04,0xCF,0x7A,0x03,0x1C,0x9B,0x6C,0xE4,0x44,0xCC,0xD8,0x6D,0x54,0xEC,0x70,0xF0, + + 0xEE,0x45,0xE8,0xBE,0x66,0x33,0xBF,0x06,0x4D,0x27,0x08,0x76,0x3B,0x0B,0xAE,0xC3, + + 0x02,0xDF,0x6D,0x3A,0x48,0xAD,0xC8,0xA1,0xA1,0x5D,0x77,0x8D,0x4C,0xAD,0xE1,0x71, + + 0x6A,0x9D,0x81,0x45,0xA0,0x51,0x13,0xCC,0x3C,0xF8,0xE6,0xE6,0xE3,0xEC,0xEB,0x7A, + + 0xD1,0x77,0xAC,0x0B,0x89,0x84,0xAA,0xD3,0x58,0x05,0x28,0xEB,0x9A,0x48,0x23,0xF3, + + 0x2D,0xF4,0x2E,0xDE,0x9D,0xA4,0x8A,0x4A,0xC7,0xD6,0xBA,0xA8,0xA8,0xC2,0x39,0x53, + + 0x3F,0x87,0x23,0x47,0xBC,0x24,0xE8,0x21,0x6D,0xB5,0xDB,0x0C,0xBF,0x4A,0x86,0xE6, + + 0x7C,0x53,0x6F,0xFB,0x89,0xA0,0x41,0x38,0x47,0xF4,0xE3,0x2C,0x39,0xEA,0x1A,0x18, + + 0x39,0x67,0x18,0xE8,0x38,0x2D,0xBE,0x1B,0x55,0xFA,0xF2,0x86,0x2B,0x7A,0xB5,0x26, + + 0x29,0xE0,0xF6,0x3E,0x96,0x36,0xDF,0x3F,0xAA,0xBB,0x7C,0x7E,0x51,0x76,0xFB,0xB7, + + 0x9A,0x43,0xC5,0x6D,0xB6,0x6E,0x93,0x39,0xB7,0x44,0xDB,0x7C,0xDC,0xE6,0xCD,0x1E, + + 0x6A,0xF9,0x2E,0x2B,0x51,0xCE,0x9B,0x29,0xC6,0x47,0xE5,0xF9,0x9A,0x15,0x7A,0x62, + + 0x95,0xC6,0xBA,0xF0,0xBD,0x52,0x6D,0x84,0x91,0x9F,0xF5,0xD2,0x87,0x1E,0x84,0x72, + + 0x90,0x87,0x94,0x85,0x5A,0xD0,0xA7,0x46,0x71,0xAC,0x7B,0x42,0xF1,0xF1,0x8D,0x63, + + 0x19,0xA4,0xFB,0xAD,0x59,0x2B,0x14,0xDA,0x07,0x42,0x72,0xE5,0xB8,0xAF,0x03,0x73, + + 0x85,0x0E,0x89,0x68,0xB5,0x30,0xE7,0x95,0x10,0x5C,0xA7,0x5D,0x63,0xBC,0x54,0xD9, + + 0x24,0x4F,0x8C,0xCD,0x01,0x42,0xEF,0x7A,0x95,0xE1,0x4B,0x24,0x68,0x18,0x15,0xA7, + + 0x84,0x05,0xAA,0xE1,0xD4,0x2E,0xE3,0x6B,0x00,0x51,0xD6,0xB1,0x70,0x77,0x25,0x01, + + 0xB2,0x9B,0x7F,0xA5,0xF2,0x5A,0x44,0x19,0xE2,0x38,0xEF,0x76,0x97,0x34,0xB5,0xD3, + + 0x8F,0x0C,0x28,0xA3,0x90,0x77,0x24,0x8D,0x71,0x5F,0x84,0x6F,0x1A,0x96,0x1E,0x95, + + 0xD9,0x74,0x90,0x89,0x1A,0x79,0xA2,0xD3,0xCB,0x3D,0xCF,0x26,0x9D,0x16,0x71,0xE6, + + 0x27,0xC6,0x22,0x74,0xFF,0xF4,0x66,0x9C,0x98,0x16,0x76,0x89,0x98,0xB6,0xC3,0x73, + + 0x51,0x78,0x04,0xFE,0xD4,0x85,0xAC,0x4B,0x44,0xA7,0xF5,0xA1,0xF9,0xFA,0xB0,0x1C, + + 0x56,0x05,0xE8,0x6B,0xAB,0xF6,0x1E,0xC2,0x4E,0x4B,0xCF,0x88,0xEF,0x60,0xBE,0x38, + + 0x2E,0x53,0x2E,0xE5,0x18,0x0D,0xD7,0x00,0x8F,0x11,0x44,0x1A,0x9F,0x10,0xF0,0x3E, + + 0x3B,0x52,0xC6,0x34,0xE3,0xF0,0x0D,0xFA,0x29,0x31,0x80,0xE5,0x77,0x3C,0x67,0xED, + + 0x4B,0x05,0xDD,0xBE,0xE9,0x35,0x40,0x0F,0xF8,0x13,0xB5,0xFC,0xFB,0x6E,0x16,0x3F, + + 0x0E,0xBE,0x97,0x70,0xBD,0xB7,0x65,0x6A,0xDB,0x1D,0xE5,0x15,0x29,0xB0,0xDB,0x79, + + 0x1D,0x3F,0xA4,0x81,0xB3,0xB0,0x6A,0x26,0xCA,0x1F,0xB6,0xDD,0xA1,0x8E,0x95,0x8D, + + 0xEE,0x8E,0xA9,0xE6,0x19,0xC7,0xA8,0x50,0xF6,0xA4,0xDD,0x40,0x34,0xC1,0x1A,0x4B, + + 0x77,0xC3,0xFB,0x03,0x1A,0xED,0x6B,0x26,0x4A,0x3D,0xD6,0x67,0xC6,0xF9,0x90,0x8D, + + 0x80,0x8C,0x51,0xE7,0xD5,0xC8,0x01,0xD8,0x69,0xCE,0xA1,0x3E,0xB2,0xA3,0x9F,0x30, + + 0xD0,0x5B,0x1A,0x79,0x73,0x7F,0xF4,0x42,0x22,0x2E,0x5C,0x14,0x9C,0x2D,0x56,0x9E, + + 0x01,0x0D,0x0F,0xD2,0x56,0x5C,0x1E,0x47,0xA0,0xCE,0x7E,0xF2,0x16,0x01,0xCD,0x3C, + + 0x4C,0xFC,0xE1,0x80,0x7F,0xDC,0xDD,0x8B,0x58,0x0B,0x31,0x37,0xB1,0xEC,0xB6,0x93, + + 0xC7,0x52,0xA1,0xC7,0x1A,0x2A,0xF9,0xB5,0xFF,0xC4,0xA0,0xF8,0xB0,0xB7,0x1F,0x91, + + 0x09,0x87,0x90,0x3F,0x98,0x07,0xCB,0x0D,0xED,0xB7,0xF3,0x5D,0x30,0x29,0x30,0x18, + + 0x9F,0x21,0x0E,0xED,0x91,0xE8,0x82,0xD1,0x5D,0x84,0xE3,0xB5,0xBA,0xFB,0x18,0x7B, + + 0x0C,0x96,0x03,0x7C,0x3F,0x09,0xA3,0x4D,0x73,0xDA,0x49,0x2D,0xC6,0x67,0x53,0x3F, + + 0x30,0x7D,0x91,0xEC,0xF1,0x54,0xC2,0x33,0x68,0xB7,0x41,0x3D,0xD7,0xF0,0xAB,0x75, + + 0x11,0x97,0x84,0x3A,0xE5,0x21,0x67,0x0A,0x48,0x44,0xAB,0xE1,0xBB,0xE7,0x22,0xCB, + + 0xFA,0xC2,0xB3,0xAE,0xBA,0x1B,0x01,0x72,0xEA,0x72,0x6A,0x39,0xB6,0x97,0x5A,0xCF, + + 0xCF,0xD6,0x81,0x4F,0x6D,0xC2,0x3E,0x83,0x27,0x83,0xF1,0x9E,0x86,0xAE,0x6A,0x24, + + 0x28,0x8C,0xD0,0xDB,0xDE,0x77,0xD7,0x04,0x15,0x30,0x9D,0x0B,0xD9,0x67,0x58,0xA6, + + 0x95,0x99,0xC6,0x86,0xD3,0xAB,0x8F,0x44,0x74,0x2D,0xD5,0xD5,0x18,0x31,0xD3,0xEC, + + 0x0B,0x4E,0x12,0x8A,0x17,0x10,0x1A,0xB5,0xC6,0xDF,0x3C,0xC4,0x92,0xEA,0xA2,0xFC, + + 0x29,0xF1,0xC3,0xF1,0xA4,0xB1,0xCD,0x87,0x54,0x96,0x4F,0xD4,0xA7,0xFB,0x12,0x36, + + 0x5E,0x0E,0x2D,0x51,0xD5,0xFD,0x99,0x71,0x61,0x91,0xDC,0xC1,0x7A,0x75,0xF2,0x24, + + 0x83,0xFA,0x7D,0x86,0x32,0xB0,0x7E,0x16,0x65,0xD6,0x64,0x64,0xFE,0x2C,0x56,0x34, + + 0x05,0x94,0x97,0xDE,0x92,0x0A,0x1A,0xDA,0xC0,0xC7,0x3C,0x26,0x63,0xF3,0x07,0xC2, + + 0xA7,0x94,0x6B,0x2F,0x5F,0xFB,0xD9,0x0B,0x03,0x9B,0xCD,0xB7,0x76,0xF9,0xE8,0x57, + + 0x90,0x91,0x41,0xA4,0xA8,0x01,0xC5,0x61,0xE7,0x98,0xD9,0xAB,0x56,0xFE,0xF2,0x70, + + 0xBF,0xB7,0xB0,0x66,0xF6,0x73,0x34,0x51,0x6A,0x58,0xB7,0xEE,0x38,0x75,0x94,0x61, + + 0x3D,0x54,0xBE,0xAB,0x76,0xA2,0xFE,0xAA,0x96,0x54,0x2E,0x9E,0x51,0x39,0xB7,0xFD, + + 0x5F,0x8A,0xA3,0x87,0xDB,0x2B,0x48,0x2F,0xAC,0x65,0x4D,0x5E,0xA4,0xDA,0xD4,0x93, + + 0x48,0x64,0xA3,0xF9,0x4A,0x10,0xE3,0xC9,0x63,0xBE,0xAF,0x97,0xF1,0xFA,0x2E,0xDE, + + 0x45,0x2C,0x99,0xBD,0x29,0x2A,0x2F,0x65,0x09,0x8C,0xF5,0x9D,0x0B,0x92,0x7E,0xFA, + + 0x2B,0xB0,0x55,0xAE,0xBF,0xA2,0x3B,0x99,0x85,0x9F,0x3E,0x2F,0x75,0xF9,0x65,0x8D, + + 0xDE,0xDF,0x9C,0x08,0x47,0x48,0x2E,0x64,0x0B,0xD5,0x95,0x9F,0xFD,0x5E,0xAF,0x7B, + + 0x83,0xDF,0xD4,0xAF,0x3F,0xA9,0x75,0x32,0xDC,0x29,0x44,0xFB,0xF8,0x92,0x5E,0xA5, + + 0xBE,0xAB,0x40,0xC4,0x8C,0x5B,0xBD,0xA6,0xE1,0xE6,0x12,0x7A,0xF4,0x8D,0x9E,0x63, + + 0x6D,0x6D,0xF7,0xE9,0x40,0xFA,0x20,0xA3,0x3D,0x4B,0xE1,0xCB,0xDC,0xE7,0x53,0x81, + + 0x61,0xAD,0x09,0xE9,0x90,0xAF,0x41,0xA3,0x5D,0x64,0x55,0x7B,0xDE,0x7C,0x6F,0x75, + + 0x80,0x43,0x3C,0x91,0xC4,0x49,0x9F,0x42,0xBD,0x4C,0x91,0x75,0xD5,0x98,0x60,0x54, + + 0xCA,0xF5,0xC8,0x41,0x14,0x67,0xD0,0xA4,0xEF,0x06,0xC9,0xE0,0x7A,0x1A,0x16,0xE8, + + 0x03,0xA1,0x08,0x91,0x69,0x26,0x56,0x83,0x06,0x9E,0xFC,0x12,0x8D,0x77,0x15,0x52, + + 0xA0,0x45,0x54,0xC1,0xA1,0x26,0xC1,0xAA,0x0A,0x49,0x11,0x41,0xA0,0x7D,0xD5,0xE8, + + 0x7B,0x44,0xDE,0x50,0x95,0x24,0x7D,0x8C,0x42,0x1C,0x61,0xEB,0xD2,0xC7,0x0E,0x24, + + 0xE1,0x61,0xB8,0xFF,0x28,0x85,0xA6,0x5B,0x6A,0x47,0x45,0x5E,0xAF,0xC3,0x9F,0xE9, + + 0x48,0xB8,0xC2,0x00,0x1F,0x21,0x64,0x3E,0xA8,0xCA,0x98,0xCF,0x69,0xC4,0x7C,0xF1, + + 0x88,0x71,0x92,0x4A,0x52,0x43,0x49,0xAF,0xA0,0xAB,0x02,0xD2,0x84,0xD7,0xBC,0xA9, + + 0x7D,0x68,0xFE,0x2D,0xC0,0x69,0xAA,0xCA,0x45,0x46,0x8A,0xFA,0x07,0x61,0x71,0xE9, + + 0x0C,0x5C,0xC2,0xC8,0x15,0x33,0xA7,0x85,0x48,0xF7,0xE8,0xEE,0xC3,0xC6,0x32,0x5C, + + 0xEB,0xD8,0x7F,0x2D,0xAF,0xA4,0xD7,0xE9,0x34,0x6D,0x1A,0x35,0x05,0x2F,0x88,0x3A, + + 0xA7,0xA5,0x18,0xF2,0xE5,0xB1,0x32,0x91,0x56,0x0C,0xAB,0xE9,0xBD,0x69,0x33,0x68, + + 0xE9,0xA0,0xF1,0xA6,0x9D,0xF7,0x9B,0x41,0x2F,0xB4,0xC1,0xA1,0xFB,0x3D,0x22,0x21, + + 0x5C,0xB4,0x92,0x20,0xDB,0xA1,0x16,0x53,0x58,0x3C,0x05,0xB5,0x40,0x74,0x5C,0xE7, + + 0x3D,0x7D,0x19,0xD3,0xD8,0x72,0x42,0x99,0x21,0xDC,0xE2,0x10,0x9A,0x40,0xD5,0x21, + + 0x49,0xE3,0xBB,0x24,0xC6,0x9D,0x77,0xB1,0xE3,0x32,0x7F,0xD7,0x1B,0x51,0x37,0x02, + + 0x83,0xBC,0x6A,0x66,0xC5,0x9E,0x63,0x9D,0x29,0x62,0xE3,0x9D,0x18,0x62,0x7C,0xFD, + + 0xDD,0x12,0xE0,0x84,0x3E,0x35,0x51,0x92,0x99,0x16,0x57,0xE0,0xFA,0x41,0xE0,0x55, + + 0xD4,0xE8,0xBE,0xD0,0x7D,0x2E,0x7C,0xE9,0x1C,0x35,0x05,0x5B,0x4C,0x77,0xE8,0xDE, + + 0x03,0xC5,0xD2,0x5D,0x5B,0x2C,0xDE,0x24,0xA8,0xE6,0x8C,0xFF,0x16,0xCC,0x89,0x2E, + + 0x21,0x6B,0x17,0xB3,0xDB,0x2E,0x9D,0xC9,0x07,0x15,0x72,0x9A,0x2E,0xAB,0x56,0xFA, + + 0xE2,0xE9,0xD2,0x12,0xD3,0x89,0x07,0xDB,0x58,0x36,0x3A,0x3F,0x55,0x72,0xA3,0x1A, + + 0x88,0xBF,0xF0,0xA5,0xD2,0xE8,0x20,0x90,0x67,0xF6,0x61,0xFB,0xB3,0x28,0x79,0xB4, + + 0x25,0x1C,0xD7,0xFA,0xF0,0xB7,0x75,0xA9,0xE9,0x6A,0x50,0x29,0xF9,0x4D,0x5F,0x1B, + + 0x34,0xEF,0xB1,0xB0,0x9B,0xD6,0x0E,0xA8,0xDD,0x5F,0x97,0x39,0x10,0x2A,0x22,0xB6, + + 0x89,0x79,0x06,0xED,0xA5,0x7E,0x0C,0xC6,0x15,0x1C,0x6F,0xB2,0xF8,0x78,0xE3,0xC7, + + 0x88,0x78,0x76,0x43,0x29,0x70,0xDD,0xFD,0x6D,0x17,0xA1,0x04,0x7B,0xD9,0xF8,0x2B, + + 0x4B,0x18,0x57,0x75,0x89,0xF5,0x97,0xD1,0x0E,0x5D,0x1F,0x8F,0xB9,0x8E,0x37,0xFD, + + 0x17,0x9C,0x2C,0x9D,0xB7,0xB2,0xE3,0x7B,0x6B,0xC7,0xC5,0x45,0x33,0xD6,0xE0,0x5A, + + 0x4F,0x0D,0xA8,0xBD,0x54,0xAF,0x68,0x36,0xC6,0xBC,0xA2,0xD6,0x05,0xA2,0x56,0x3A, + + 0xEC,0x90,0x04,0x64,0xDF,0x70,0x66,0x8A,0x45,0x65,0x35,0xB2,0x54,0x96,0x5F,0xA2, + + 0x6F,0xC1,0xA7,0x2F,0x14,0xDF,0x92,0x41,0x84,0xCD,0xB9,0x88,0x2F,0x69,0x85,0x80, + + 0xA8,0x89,0xD7,0xB3,0x74,0x05,0xA5,0x8A,0x3D,0x12,0xAE,0xCC,0xB6,0x5B,0x32,0x3C, + + 0x6C,0xE7,0x2C,0xC2,0x61,0x40,0xF0,0xE6,0x36,0x01,0xF5,0xE4,0xCF,0x9F,0x6C,0x5B, + + 0x85,0xF9,0xF0,0x3B,0xFE,0x6C,0x27,0x71,0x65,0xE4,0x3E,0xAA,0xD5,0xE1,0x1F,0xE6, + + 0xCE,0x67,0x81,0x45,0xEB,0xAB,0xB1,0x9E,0x88,0x84,0xC9,0x07,0xDA,0xA4,0xCA,0x31, + + 0x08,0x01,0x14,0xBB,0x97,0xCB,0xE8,0xF7,0x8F,0x54,0x72,0x15,0x28,0x85,0xA3,0x8E, + + 0x0D,0x44,0xB5,0xFD,0x36,0x07,0x01,0x13,0x4A,0x98,0x72,0x6E,0xE2,0x59,0x3B,0x18, + + 0xF0,0x3C,0xCA,0x51,0x97,0xA4,0x61,0x3A,0x36,0xC1,0xB2,0x2B,0xA9,0xD8,0xE3,0x4B, + + 0x77,0x2A,0x34,0x1C,0xBA,0xA9,0xF8,0xAF,0xCD,0x27,0xCD,0x06,0x53,0x3C,0xB7,0x9F, + + 0x8C,0xB5,0x50,0x38,0x3C,0x54,0xFB,0x3F,0x9F,0x36,0x85,0x17,0x9F,0x44,0x4B,0x0A, + + 0x3A,0x01,0xDC,0x83,0x80,0x27,0x4C,0x73,0x6F,0xAD,0x36,0xEB,0x1D,0x1E,0x52,0xA4, + + 0xA3,0x80,0x8B,0x9E,0x73,0xEF,0x3E,0x86,0xF1,0x36,0xA2,0xE6,0x6C,0x25,0x1B,0xC9, + + 0x13,0xA8,0xC3,0xA5,0xF7,0xF4,0x9F,0xF9,0x82,0xC6,0xE3,0x0D,0xD4,0xAC,0x94,0xD9, + + 0x12,0x89,0x7B,0x51,0x99,0x8E,0x3B,0x96,0x5C,0x94,0x43,0x1F,0x97,0xEC,0x1C,0x11, + + 0x58,0x9A,0xA2,0xF4,0xDF,0xC1,0x4C,0x26,0x6D,0x30,0xA6,0xA2,0x83,0x0D,0x12,0xE6, + + 0xA8,0xF3,0x1F,0xAF,0x85,0xE0,0xFC,0xEF,0xD0,0x7C,0x7C,0xF6,0xB0,0xB3,0xB2,0x07, + + 0xA5,0x7F,0xDB,0xBF,0x5D,0x63,0x82,0x13,0x10,0xB1,0x59,0x39,0xF7,0xE2,0x52,0xD4, + + 0x58,0x25,0xAC,0x95,0xF1,0x6F,0xA1,0x5C,0xD2,0xD3,0xB5,0x4C,0xBD,0xC2,0xD5,0x67, + + 0xDA,0x17,0x9A,0x0E,0xBB,0x19,0x4C,0xC2,0x87,0xF5,0xA3,0x62,0x63,0x33,0x9E,0xF6, + + 0x07,0xF5,0xF8,0x55,0x34,0x84,0xD0,0x60,0x6B,0xDF,0x49,0x87,0xC3,0x7C,0xD6,0x66, + + 0xA0,0xCE,0x28,0x48,0x03,0xF4,0x15,0xA8,0x58,0xDB,0x2E,0x48,0x89,0xF4,0xE9,0x57, + + 0xB6,0x97,0x2D,0xF3,0x23,0xF5,0x3C,0x71,0x76,0x88,0xA2,0x77,0x84,0x80,0x7C,0x88, + + 0x9F,0x41,0x16,0xF9,0x32,0x64,0x01,0x86,0x13,0xDA,0xB0,0x86,0xFC,0xA6,0xB9,0x78, + + 0x81,0x34,0x90,0xA6,0xC9,0xC8,0xE6,0x3E,0x64,0x39,0xBE,0xFE,0x31,0x4C,0x46,0x4B, + + 0xF6,0x37,0x63,0x45,0x0F,0x05,0xEC,0x84,0xEA,0xA2,0x89,0x86,0x73,0x7C,0x7F,0x79, + + 0x20,0x9D,0x9E,0xB3,0xAD,0xBF,0xE0,0x3B,0x9A,0xAE,0xAA,0x3B,0xFC,0xC5,0xCE,0xCF, + + 0x28,0x84,0xF2,0xCD,0x3F,0xDC,0x4C,0x1B,0xCD,0xFC,0x36,0x2F,0x8E,0x71,0xB1,0xDF, + + 0x29,0x0C,0xA7,0x6C,0x37,0x8F,0xD2,0x89,0xCC,0x5B,0x6D,0x7A,0x19,0x5F,0x5A,0xEB, + + 0x86,0xEE,0xF7,0xF6,0xE8,0x13,0xB7,0xEF,0xDF,0x01,0x89,0x26,0xF8,0x0D,0xDD,0x5F, + + 0xCC,0xEB,0xB6,0xDC,0x1A,0x1E,0x80,0x85,0x2D,0xDF,0xAF,0x7E,0xBA,0xF9,0xAD,0x02, + + 0xA1,0xFF,0x9A,0x06,0xDA,0x2F,0x30,0xD9,0xE1,0xCA,0xC2,0x72,0xBB,0x04,0xB2,0xEE, + + 0x20,0x42,0x64,0x8F,0xE0,0xA8,0x07,0x14,0x47,0xDA,0xE0,0x20,0xB1,0xE0,0x19,0xA9, + + 0xB3,0x84,0x11,0xFB,0x3C,0x2F,0x96,0x41,0xCC,0x00,0x01,0x56,0xBC,0xC9,0x96,0x71, + + 0x9D,0x05,0xA9,0xFF,0x64,0xAA,0xF2,0xB5,0xC6,0xC0,0xB4,0xC6,0x55,0xEE,0x77,0x25, + + 0x71,0x04,0xE0,0xCE,0x11,0x64,0x28,0x47,0xBF,0x4B,0xEA,0x97,0x62,0xC9,0x59,0xB2, + + 0xAF,0xA8,0xDE,0x61,0xF8,0x61,0x49,0x92,0xEF,0xE8,0x90,0x1D,0x55,0x6D,0xC1,0x40, + + 0x68,0xAB,0xFD,0xA2,0xF1,0x60,0x6F,0x54,0xE6,0xEB,0xC0,0x22,0x18,0x0F,0x5C,0xB3, + + 0xA7,0x8C,0xF3,0xE5,0x27,0x88,0x4C,0x93,0xE7,0xEA,0x25,0x85,0x41,0x96,0xAF,0xF1, + + 0xA9,0x66,0xA2,0x86,0x3C,0x87,0x42,0xA0,0x10,0x53,0xC0,0x62,0x7C,0xC5,0x30,0xFA, + + 0x8B,0x75,0x58,0xDB,0xD3,0xD8,0xA2,0xD8,0x01,0x05,0xA8,0x0C,0x75,0xC6,0x61,0x19, + + 0x89,0x4A,0xD5,0x2A,0x39,0x85,0x4C,0x4F,0x8A,0x05,0x05,0xDC,0x7B,0xAA,0x2B,0x7B, + + 0xBA,0x8D,0xB5,0x21,0xF8,0x2F,0x5A,0xBD,0x88,0x6D,0x3B,0x4F,0xBB,0x17,0x96,0x79, + + 0x66,0xA3,0x66,0xBC,0x12,0x23,0xC3,0x8A,0xE6,0xE1,0xAC,0x6A,0x39,0xE8,0x34,0x5F, + + 0x2F,0xA9,0xAA,0x73,0x4F,0x6F,0xFA,0x0A,0x29,0x11,0xA1,0x5B,0xFA,0xD2,0xE3,0x3B, + + 0xE8,0xC2,0xFD,0x78,0xBB,0xFC,0xC6,0x8B,0xEE,0xE1,0x00,0x9E,0x56,0x63,0x1B,0x5F, + + 0x43,0xFE,0xC3,0x03,0x14,0xA9,0x25,0x7E,0xCF,0xCF,0x81,0x3F,0xA7,0xC0,0xBE,0x02, + + 0xBD,0x14,0x7F,0xC3,0xD9,0xA3,0x84,0xD3,0x0C,0x56,0x15,0x96,0x8F,0x1E,0xA4,0x0C, + + 0xC8,0x0B,0x59,0x0A,0xDA,0x42,0x9C,0xB4,0x29,0x52,0xE4,0xC4,0xF1,0x6E,0x7D,0x05, + + 0xA2,0x12,0x62,0x76,0xC2,0x9F,0x77,0x81,0x8B,0x5D,0xAB,0x68,0x2E,0xDF,0x55,0x80, + + 0x81,0xD1,0x1D,0xAA,0x9C,0xE8,0x23,0x84,0x63,0xD5,0xA3,0x79,0x90,0x77,0x56,0x38, + + 0xC9,0x50,0x9A,0x26,0x36,0x99,0xEF,0xC4,0x11,0x54,0x28,0x14,0x70,0x85,0xE8,0xF4, + + 0x40,0x8A,0x0C,0x94,0xB8,0x5B,0xCC,0x01,0xC0,0x15,0x0F,0x07,0xFF,0x79,0x7F,0x71, + + 0x3B,0xB9,0x53,0x47,0x0E,0x74,0x95,0xE0,0x2F,0xAB,0xAB,0xE3,0x91,0x01,0x5B,0xFC, + + 0x48,0x53,0xAF,0xDD,0x46,0xBE,0x63,0xC4,0xE5,0xF7,0x79,0xB7,0x77,0x1B,0x86,0x7B, + + 0x7B,0x03,0x86,0xF3,0x50,0xAB,0xC5,0x59,0xCB,0x18,0xF7,0x88,0x7E,0x38,0x16,0x91, + + 0x8C,0x98,0x5B,0x6F,0x07,0x78,0x1C,0xE6,0x9D,0x62,0x09,0x82,0x43,0x8C,0xDE,0xEF, + + 0xEB,0x15,0xF9,0x35,0x4D,0x99,0x97,0xB8,0xCA,0x18,0xD4,0xB3,0x8C,0x8E,0x77,0x7F, + + 0x0C,0x91,0xB1,0x25,0xD9,0xC4,0xA8,0x55,0x74,0xA6,0x4E,0x45,0xF9,0x3A,0x1C,0x77, + + 0x40,0x4D,0xE6,0x5E,0xBA,0x34,0x06,0x8A,0x4E,0x87,0x62,0x8E,0xA0,0x83,0xCE,0x26, + + 0xCA,0x66,0x58,0x2F,0xBF,0xB0,0xC6,0x17,0x5C,0x5D,0x5E,0x6D,0xF7,0xDF,0x39,0xCE, + + 0x8E,0x5C,0x44,0x3D,0x34,0x9F,0xE6,0x14,0x6C,0xF3,0xD1,0xEB,0x31,0x3A,0x0F,0x37, + + 0x10,0x00,0x9D,0xF3,0x50,0x5B,0x65,0x02,0xED,0x87,0x7F,0x9F,0x29,0x71,0xBA,0xE2, + + 0x40,0x86,0xD9,0x75,0x7E,0x29,0xF0,0xE2,0xD5,0xDB,0x20,0x55,0x38,0x41,0x50,0x90, + + 0x98,0x3A,0x3E,0xE7,0xB6,0xE1,0xC0,0x16,0xBA,0x5C,0x18,0x44,0x37,0xDD,0x8C,0xFA, + + 0xE7,0x02,0x81,0x8D,0xB0,0x0F,0x32,0x45,0x85,0xE2,0x89,0x17,0x9A,0x4D,0x11,0x54, + + 0x47,0x03,0xC9,0x85,0xA2,0xE3,0xEA,0xCD,0x38,0x62,0xC7,0x30,0xF1,0x4E,0xC4,0x66, + + 0x6D,0x8B,0xE1,0x38,0x77,0xA0,0xDB,0x92,0x57,0x35,0x50,0x96,0xDE,0x37,0x6E,0xF2, + + 0x34,0x21,0xB2,0xD5,0x7F,0x44,0xAB,0x81,0xCB,0x84,0x4C,0x14,0xDA,0x53,0xE1,0x30, + + 0xA8,0xC6,0x83,0x45,0x97,0x76,0x0F,0x65,0xA5,0xE0,0x8F,0x60,0x77,0x39,0xD1,0x63, + + 0x87,0x78,0x97,0x51,0x76,0x24,0xCA,0x9A,0x3B,0x9C,0x06,0x09,0x05,0x5B,0x6A,0x1E, + + 0xAD,0x08,0xA4,0xAE,0x7F,0x37,0x0A,0xD5,0xB9,0xAB,0x24,0x1F,0xFD,0x69,0x4A,0x55, + + 0x76,0x84,0xF0,0xA1,0x77,0xDA,0x44,0x3C,0x2E,0xBE,0xE8,0x75,0xB6,0x8D,0x5B,0x2B, + + 0xD8,0xA1,0xB5,0xB7,0x77,0xEE,0xC8,0xDB,0xCE,0x3B,0xE5,0xDC,0x58,0x67,0x29,0xF9, + + 0xBE,0x0D,0xD5,0x18,0xB9,0xC8,0xE8,0xC8,0x41,0xC6,0x2B,0x5D,0xB6,0xE4,0x23,0x2C, + + 0x2A,0x21,0x53,0xBD,0x92,0x27,0x48,0x90,0xB5,0xCA,0x4D,0x35,0xAD,0x82,0xBC,0x1D, + + 0xD1,0xCC,0xA8,0xA1,0xF6,0x4C,0xAF,0x45,0x3D,0x52,0xE0,0x7C,0x9D,0xE9,0xFF,0xDB, + + 0x71,0x23,0xE7,0xAD,0x77,0xE7,0x5A,0xDD,0xEA,0x1B,0xCC,0xFD,0xDE,0x73,0x55,0x82, + + 0xE7,0x82,0x47,0xC0,0x9C,0xCE,0x04,0xFF,0xCB,0x10,0xF3,0x56,0xD9,0xE7,0xA3,0x71, + + 0x49,0x3D,0xDA,0x3A,0xDD,0xC3,0x99,0xEC,0x91,0x8C,0xEE,0x63,0x1C,0x11,0xB2,0xF2, + + 0x39,0x3C,0x3C,0xE5,0x59,0x10,0x02,0x87,0x0E,0xDE,0x70,0x87,0x19,0xEE,0x6E,0x63, + + 0xE4,0x3F,0xF7,0x78,0x5F,0x01,0x0F,0x48,0x57,0x93,0xCC,0xD8,0x53,0x79,0x64,0x21, + + 0xA1,0x53,0x95,0xA7,0xA0,0x1C,0xBD,0x31,0x27,0x49,0x05,0x93,0x02,0xFE,0xE4,0xC7, + + 0xBE,0x39,0xBE,0xC7,0x95,0x3F,0xB8,0x90,0x8D,0x35,0x54,0x24,0xFA,0xFB,0x52,0x7F, + + 0x03,0x38,0x4C,0xA4,0x55,0xA9,0xE4,0xB2,0x63,0xF8,0xED,0xE7,0x43,0x58,0x36,0xF2, + + 0x07,0x69,0x9E,0xF6,0xDA,0x19,0x4B,0xD6,0x6B,0x70,0x41,0x98,0x55,0x56,0x3E,0xE3, + + 0xAF,0x38,0x93,0xD0,0x16,0x3E,0x83,0x02,0x44,0x97,0x6C,0x17,0xF3,0x57,0x1C,0x62, + + 0x47,0xD7,0x06,0xFC,0x5E,0x74,0xB6,0xBB,0x4E,0xC3,0xC9,0x56,0x7C,0xBA,0x35,0x1E, + + 0x10,0x2B,0x38,0xAF,0x9C,0x38,0x00,0x0B,0x0C,0xDD,0x1C,0xDC,0x86,0xB8,0x26,0x6D, + + 0xAA,0xA3,0xD9,0x88,0x98,0x17,0x93,0xCD,0x26,0x19,0xB3,0x1C,0x7E,0x36,0xEF,0xA7, + + 0xBE,0x9D,0xB6,0x6C,0x39,0x36,0x41,0x59,0xFF,0x96,0x08,0x5B,0x8A,0xFB,0xB5,0xB8, + + 0x0A,0xF9,0x62,0xAE,0x3A,0x91,0x48,0xDF,0xEC,0xA9,0xE3,0xEC,0xFC,0x5C,0x21,0x30, + + 0x4C,0x62,0x78,0x3C,0xDF,0x19,0x92,0x69,0x0A,0x56,0x56,0x5D,0x00,0x3D,0x1F,0x3B, + + 0x3E,0x3F,0x1B,0xBC,0x93,0x1A,0x37,0x6F,0xEF,0xF0,0x61,0xAC,0x1F,0xBF,0x97,0x9C, + + 0x8B,0x42,0x97,0xF6,0x54,0xEE,0x5F,0x11,0x1A,0x56,0x3F,0x3A,0x6B,0xBE,0x59,0x8B, + + 0xA5,0xAF,0xF9,0x66,0xD2,0x20,0x90,0x52,0xC2,0x5C,0xF0,0x6E,0xE6,0x6F,0x19,0x63, + + 0x12,0x88,0x08,0xFC,0x9F,0xEA,0x6A,0x34,0x51,0x03,0x99,0xB0,0x79,0x2A,0x97,0x09, + + 0x25,0xAD,0x89,0x0D,0xFB,0x38,0xE0,0xC3,0x29,0xA8,0xAF,0xF0,0x32,0x63,0x0D,0x71, + + 0xC1,0x8E,0x76,0x31,0x97,0x62,0x0D,0x3F,0xC0,0x23,0x91,0x30,0xBA,0x89,0x7A,0xA2, + + 0x26,0xA9,0xF8,0xBF,0x9F,0xD9,0x90,0x54,0xD2,0x90,0xD4,0x86,0xB3,0x7F,0xD6,0xB0, + + 0x4B,0xAA,0xC0,0xDC,0x20,0x71,0xC8,0xB6,0x60,0x05,0x57,0x96,0xD3,0xC5,0x0A,0xA1, + + 0x9A,0xAB,0xA6,0x3B,0x50,0x26,0x42,0x7E,0xBA,0x04,0x70,0x93,0x50,0x42,0x87,0xB9, + + 0xB4,0x48,0x13,0x54,0x95,0x66,0x45,0x55,0x8B,0x76,0xE3,0xF7,0x4A,0xCC,0x7C,0xDD, + + 0x2C,0x13,0xC5,0xCC,0x1C,0x00,0x4C,0xFD,0x44,0xE5,0xC2,0x5F,0x17,0xEF,0x68,0x19, + + 0x0A,0xD8,0x31,0xDB,0xC7,0x21,0xDA,0x19,0xDD,0x43,0x42,0xFC,0x49,0xC2,0x61,0x7F, + + 0x77,0x64,0x07,0x2A,0x39,0xD5,0xDD,0x9B,0xC4,0xFA,0xC3,0x34,0xDE,0x4B,0x52,0xD7, + + 0x2C,0x82,0x0B,0x5C,0x95,0x3B,0x1A,0xC8,0x86,0xCB,0x55,0x7D,0x38,0x6D,0x78,0xBB, + + 0x59,0xA3,0xC9,0x3F,0x2E,0x23,0x08,0x28,0x22,0x5D,0xAA,0x13,0x79,0x5E,0xC1,0x3A, + + 0x2A,0x4D,0x0A,0x78,0x0C,0x80,0xCC,0x9A,0xA2,0x57,0xC2,0xF9,0xF7,0x60,0xDD,0x6D, + + 0x08,0x2A,0x77,0x3E,0xA6,0x21,0x93,0x48,0x6E,0xE3,0xB3,0x26,0xB1,0x63,0x57,0x83, + + 0x6A,0x14,0xD8,0xBF,0x37,0x82,0x29,0x7D,0xD7,0xC4,0xD9,0x9F,0x7A,0x01,0x1C,0x84, + + 0x08,0x18,0xDD,0x68,0x95,0x3B,0x11,0x22,0xF1,0x07,0xBD,0x0A,0xD1,0x1E,0x14,0x94, + + 0x09,0x0D,0x42,0x44,0x6D,0x38,0x14,0xB4,0x49,0x4D,0x1C,0xED,0x39,0xDC,0x3B,0x54, + + 0xE3,0x1D,0x05,0xC4,0xBC,0x9F,0x2D,0x66,0x22,0xF2,0xF7,0xB4,0xF1,0x12,0x33,0x44, + + 0x82,0x63,0x0D,0xB4,0x20,0x9E,0x23,0x64,0x80,0x73,0x53,0xC5,0xF3,0x7A,0x64,0xD1, + + 0x11,0xC6,0x40,0x84,0x3E,0xB9,0x47,0x64,0x4A,0x02,0xD0,0x66,0xEB,0xB6,0x5D,0xCD, + + 0xC2,0xBA,0xC6,0xD6,0xD8,0xD4,0xB4,0x74,0x4B,0x03,0x5A,0x87,0x1E,0x7A,0x1F,0xC4, + + 0x05,0xBD,0xBB,0xEC,0x5B,0x07,0xEA,0x03,0xE4,0x17,0xED,0x94,0x9F,0x7F,0x58,0xA2, + + 0xB0,0x9E,0xF3,0xA0,0x92,0x57,0xE2,0x13,0xAB,0x46,0x84,0xFB,0x94,0x57,0xC6,0xA9, + + 0xBC,0x10,0x48,0x6C,0x24,0x7A,0x0E,0xBC,0x81,0xB2,0x90,0xDF,0x37,0xFF,0xCE,0xBC, + + 0x81,0x94,0xD0,0x49,0x3B,0x7B,0x47,0x3F,0x2D,0x5F,0x1C,0x38,0x5D,0xCB,0x85,0x78, + + 0xE7,0x3A,0x93,0x69,0xB9,0xFA,0x0D,0xAC,0xCB,0x99,0xC7,0xA8,0xCB,0x1C,0x56,0x9B, + + 0x0E,0x0B,0x1F,0xBE,0x58,0x20,0x3F,0x59,0x48,0xA4,0x97,0x8C,0x55,0x76,0x42,0x28, + + 0x2E,0x35,0x4A,0xF9,0x38,0x27,0x50,0xC0,0x6C,0x1D,0x8F,0xE2,0x9F,0xFB,0xCE,0xB9, + + 0x4F,0x90,0xCA,0xBC,0x6F,0x3B,0x66,0x03,0x97,0x2C,0x55,0x8F,0x17,0x72,0xD5,0xBA, + + 0xF9,0x15,0xE0,0xBB,0x45,0xB7,0x5C,0x8B,0x19,0x3B,0xD3,0xF9,0x78,0x5A,0x31,0xEC, + + 0x98,0x78,0xE2,0x2C,0x1A,0x36,0xEC,0xD5,0xED,0x55,0x8F,0xE1,0xE3,0x64,0x26,0x62, + + 0x68,0x2D,0x1A,0x66,0x10,0x88,0x0A,0xA0,0xD5,0x97,0x99,0x88,0xF7,0x4D,0x3C,0x61, + + 0x56,0x8A,0xA4,0x13,0x13,0xE0,0xBF,0xCD,0x24,0x81,0xA2,0x16,0x74,0x81,0x6A,0x91, + + 0x8C,0x88,0x25,0x27,0xC2,0xE2,0x49,0x50,0x8B,0x48,0x7F,0xF7,0x88,0x1D,0xAD,0x6C, + + 0xA4,0x23,0x9A,0xD7,0x91,0x8B,0x21,0x36,0x3B,0x43,0x4E,0x77,0x91,0xE5,0xC1,0xB4, + + 0xEF,0x1E,0xF7,0xA4,0x5E,0x45,0x78,0x53,0x76,0x86,0x92,0x77,0x57,0x34,0x30,0xDA, + + 0x34,0x31,0xEE,0x7E,0x74,0xAD,0x58,0x90,0x0F,0xD4,0x80,0x51,0xF4,0xE1,0x39,0xDB, + + 0x6F,0x6F,0xED,0x9B,0x6A,0xB7,0x65,0x45,0x67,0x4E,0xCB,0xE5,0x4F,0x4D,0xD3,0xB3, + + 0x89,0x9C,0x7E,0xD3,0xBF,0xE2,0xB9,0x52,0x59,0x6A,0xFF,0x05,0x55,0xDB,0x72,0x92, + + 0x08,0xA9,0x26,0xFF,0x0F,0xE8,0xB0,0xA8,0xDD,0x9F,0x9B,0x80,0xFD,0x68,0xAE,0xF2, + + 0x3A,0xC6,0x52,0xF6,0x93,0x62,0xF4,0x88,0x0D,0x69,0xB2,0x2F,0x5B,0xC8,0x0A,0x78, + + 0xE1,0x83,0xFA,0x6B,0xFF,0x0A,0x0B,0x3B,0x6F,0x67,0xCB,0x5C,0x93,0x6D,0x15,0xC3, + + 0xEC,0xAB,0x54,0x6D,0x3E,0xEA,0xFB,0x1A,0x59,0xC1,0x1A,0xFF,0xC5,0xED,0xA1,0x2C, + + 0x2D,0xEC,0xDC,0x3B,0xBD,0xAA,0xE7,0x88,0xA7,0x9D,0x28,0x8C,0xDC,0xF0,0xCB,0xAE, + + 0x07,0x96,0xD0,0x46,0x9D,0x91,0x02,0xFE,0x67,0xBB,0xE2,0x6B,0xB6,0x0C,0xE3,0x8F, + + 0xDB,0x95,0xC3,0x17,0x3F,0xAF,0xB3,0x4A,0x58,0x33,0x06,0x0D,0xB7,0x0F,0xA8,0x3D, + + 0xCD,0xC0,0x27,0x3D,0x12,0x29,0x45,0x42,0x6C,0x62,0x83,0x97,0x4B,0x24,0xDC,0x00, + + 0xA4,0x9B,0x84,0x60,0x24,0xFF,0x8E,0x65,0xBA,0xDA,0x4B,0xD8,0xFB,0x06,0xA9,0x10, + + 0xA5,0xFA,0x53,0x7E,0xBB,0x7C,0x35,0x11,0xE7,0xCD,0xE4,0x3F,0x46,0xAA,0xE5,0xA7, + + 0x84,0x9A,0xC5,0x85,0x9B,0xBF,0x20,0xD1,0x1B,0x90,0xFD,0x3E,0x1D,0x1B,0x15,0x6C, + + 0x50,0x65,0x01,0x08,0xB4,0xF3,0x44,0xCD,0x39,0xDC,0x05,0x48,0xD4,0x91,0xDC,0x3D, + + 0xCF,0x75,0x71,0xB5,0x6D,0xBF,0x4B,0x60,0xE6,0x3E,0x55,0x90,0x94,0xD4,0x70,0xE6, + + 0x21,0xD4,0x78,0x93,0x5B,0xBD,0x1B,0x8C,0xA5,0xD5,0x6C,0xB0,0x0B,0xB7,0xC9,0x5C, + + 0xA7,0xD6,0xE7,0xB4,0x8E,0xBF,0x4D,0x18,0x6B,0x2B,0x71,0x63,0xB5,0xA6,0x85,0x33, + + 0xA3,0xBE,0x8D,0xD5,0xE2,0xBA,0x35,0x6B,0xE1,0x96,0x74,0x81,0xC4,0x55,0x2E,0x8E, + + 0x25,0xF8,0xAA,0x8B,0xD5,0x52,0xF6,0xAE,0x6B,0xDE,0x76,0x8A,0x8C,0xF0,0x29,0x1E, + + 0x05,0xCD,0xBA,0x7A,0x3E,0xA9,0x92,0x38,0xFC,0xE6,0x01,0xEE,0x7E,0xB6,0x19,0x5E, + + 0x4E,0xBA,0xD5,0x0F,0xE4,0xF8,0x17,0x4A,0x4D,0x25,0x34,0x5E,0xEF,0xBA,0x67,0x93, + + 0xC6,0x71,0xF1,0x4A,0x9D,0x36,0x07,0x24,0x6F,0xC7,0xE6,0x38,0x9A,0x24,0xF6,0xB8, + + 0xD5,0x69,0x1D,0x9C,0x30,0xDE,0xBF,0x88,0x9D,0xB9,0x4E,0xD3,0xD9,0xEE,0xCD,0xF6, + + 0xF3,0xEC,0xAF,0x1B,0x53,0xB2,0xCD,0xC2,0x69,0xD7,0x69,0x7A,0x6A,0x30,0xF1,0x4F, + + 0xCA,0x8A,0xAD,0xCA,0x9C,0xB3,0x4F,0x10,0x12,0x6F,0x4F,0x53,0x59,0xB0,0x30,0xDA, + + 0x53,0x7E,0x8F,0x94,0xD4,0x34,0x40,0x79,0x6F,0xC5,0xA6,0x6A,0x5A,0x0E,0xF8,0x88, + + 0xA5,0xD3,0xAE,0xBF,0xF9,0x31,0xAB,0xD3,0x74,0x5B,0x2A,0xC4,0x56,0x22,0x30,0x00, + + 0xA2,0x07,0xAA,0xE7,0x7D,0x3A,0x0D,0x77,0x9F,0x4B,0xC1,0xCD,0xB4,0xC8,0xF9,0x83, + + 0x49,0xDD,0xF9,0xF4,0x33,0xD2,0xD1,0x47,0x3F,0xEF,0x1C,0xCA,0x0C,0x83,0x27,0xAB, + + 0x20,0x0A,0xA9,0x61,0xB0,0x41,0x99,0x2E,0xF9,0xEE,0x0F,0x55,0x95,0xA6,0xF8,0x04, + + 0x3A,0x00,0xBA,0xA4,0x55,0x89,0xDB,0x02,0x61,0xE7,0xEA,0x9F,0xA2,0x6D,0x72,0xAF, + + 0x83,0x67,0x93,0xA7,0x97,0xA8,0x48,0x60,0xE2,0xC7,0x90,0xC0,0xA2,0xC1,0x80,0xB0, + + 0xBA,0x26,0x57,0x74,0x33,0xA7,0x0B,0x5D,0xFA,0x04,0xEA,0xA2,0x18,0x4F,0x77,0x78, + + 0xC0,0x08,0x9B,0x1E,0x95,0x06,0x21,0x81,0xB7,0xE6,0x45,0x97,0x33,0xB2,0x50,0x8A, + + 0xC1,0xD7,0xBC,0x39,0x2B,0x93,0x83,0xAD,0x46,0xC2,0x04,0x5E,0x6B,0x08,0x53,0x88, + + 0xAC,0xD6,0xD1,0xE8,0x11,0x32,0x12,0x15,0xA0,0xF0,0x18,0xD4,0x55,0x24,0x3B,0xBB, + + 0xC8,0xBB,0x19,0x6D,0xC8,0x31,0xC4,0x6E,0x02,0x7B,0x6B,0x5E,0x8B,0x63,0x0A,0x7F, + + 0x76,0x49,0xD4,0x2B,0xF5,0xA6,0x7D,0x41,0x44,0x50,0x8D,0x55,0x7E,0x6D,0x5A,0x51, + + 0xEB,0xA3,0x5F,0x8B,0xD0,0x5D,0x43,0xEC,0x6A,0xCC,0xAA,0x80,0x5A,0xCD,0x5C,0x6D, + + 0x0D,0x0C,0xC2,0x2E,0xF0,0x3C,0xCC,0x47,0x7B,0x0F,0x09,0x8F,0x37,0x98,0x56,0xB6, + + 0xE9,0x19,0x78,0xDE,0xAE,0x26,0x6B,0x79,0x69,0xFB,0x18,0x9E,0xEA,0x33,0x83,0x2B, + + 0x28,0x84,0x0B,0x7D,0xCE,0x22,0x56,0x76,0xCD,0x4E,0x10,0x02,0x54,0xC9,0x5D,0x14, + + 0x87,0x00,0xDF,0x90,0xD5,0x5C,0x4D,0x2D,0xC7,0x54,0x95,0xC2,0x9B,0x01,0xCC,0x38, + + 0x96,0xBA,0xEC,0x96,0x4A,0x3C,0xE4,0x58,0x41,0x1C,0xED,0x85,0x1D,0x33,0xFD,0x03, + + 0x7D,0x9F,0xE7,0x95,0xB1,0x53,0x17,0xD3,0xD3,0x12,0xAF,0x56,0x9C,0xF9,0x18,0x6E, + + 0x92,0xA8,0xC7,0x35,0x4E,0xC4,0xE2,0x59,0xFF,0x1E,0x8D,0x71,0x50,0x7A,0x4C,0xC4, + + 0x8B,0xAE,0x7C,0x3B,0x01,0x4C,0xAB,0x93,0x52,0x38,0xB4,0xE6,0xA3,0x79,0x35,0xB6, + + 0x00,0x55,0x33,0x16,0x92,0x2A,0x11,0x83,0x5B,0xDF,0xD4,0xE4,0x40,0xC1,0x1F,0xCB, + + 0xCA,0xF7,0x7D,0x3B,0x4F,0xEE,0xB2,0x21,0xE6,0x7B,0x2A,0x9E,0x7D,0x80,0x71,0x18, + + 0xC0,0x6D,0x72,0x33,0x33,0x07,0xDA,0x91,0xEF,0x3D,0x07,0xF4,0x0A,0xD6,0xBC,0x77, + + 0x17,0x29,0xC6,0x95,0xD1,0xA2,0x14,0x4E,0xE7,0xAE,0x59,0x5C,0x0C,0xD9,0xB6,0x87, + + 0x19,0x02,0x96,0x8D,0x0A,0xA2,0x24,0x5E,0x6F,0x31,0xA6,0x5C,0x32,0xF2,0x58,0x08, + + 0xAE,0x4B,0xDF,0x9D,0x51,0xD3,0x5F,0xAD,0x40,0x61,0x01,0x29,0xD8,0xFA,0x2F,0xEF, + + 0x56,0x60,0x4D,0x9F,0xE9,0xB6,0x61,0xA6,0xD1,0x8F,0x07,0x8C,0x95,0x64,0x50,0xFD, + + 0x2C,0x1D,0xC0,0xE4,0xD3,0x2D,0x43,0x0A,0xB7,0x61,0x43,0x1F,0x46,0xF1,0x16,0xDC, + + 0xA2,0x02,0x62,0xCD,0x57,0x11,0x71,0x93,0xB2,0xA8,0xD8,0xD5,0xFB,0x7B,0x45,0xAB, + + 0x11,0x91,0x6B,0x5F,0xE6,0x36,0xF8,0x6D,0xE9,0xCE,0x81,0xC1,0x11,0x2F,0x15,0xBD, + + 0x93,0x00,0x1A,0xF9,0x52,0x85,0xC9,0x7D,0xEE,0x38,0xBF,0xFF,0x22,0x72,0xAA,0xBD, + + 0x37,0x42,0xF9,0x03,0xB3,0xBB,0x92,0xB4,0xAF,0x21,0x9E,0xC0,0xF5,0x1F,0xD7,0x96, + + 0x40,0x76,0x57,0x51,0xDF,0x90,0xAE,0xF2,0x13,0xDA,0x5F,0x76,0x1D,0x6C,0x99,0xFD, + + 0x94,0xCF,0x66,0x61,0xFC,0x93,0x0F,0x0B,0x49,0x64,0xE8,0x22,0x71,0x8E,0x70,0xEF, + + 0x60,0xEF,0xE1,0x13,0xEA,0x5C,0xB9,0x55,0x85,0x8C,0x41,0xB3,0xDA,0xCD,0xF8,0x73, + + 0x6A,0x9B,0xB8,0x7A,0x10,0xA5,0xA5,0x1D,0xE5,0x4F,0x3F,0xA6,0x40,0x6F,0x43,0x63, + + 0x6B,0xC7,0x7B,0x67,0x27,0xE7,0xB0,0x00,0xE4,0x65,0x58,0x86,0xA9,0x46,0x5F,0x6A, + + 0x21,0x0D,0x34,0x38,0x35,0x2D,0x00,0x4A,0xC0,0xC7,0x8A,0x56,0xE6,0x49,0x79,0xE4, + + 0x7A,0x88,0xF9,0x47,0xF4,0x87,0x32,0x83,0xD8,0x66,0x6F,0x84,0x5B,0xEA,0x44,0x73, + + 0x0D,0xC8,0x9C,0x22,0x93,0x5E,0x50,0x2B,0x4D,0x6A,0x22,0xDF,0x68,0xE8,0x04,0xE4, + + 0xAE,0x92,0x10,0xFE,0x5D,0x69,0xC5,0xBE,0x73,0x88,0xF3,0xDE,0x45,0xF2,0x91,0x73, + + 0x6D,0x8C,0xAB,0xBE,0xAF,0x31,0x0D,0x03,0xA4,0x53,0x95,0xFB,0xE0,0x47,0x69,0xFD, + + 0x9D,0xC4,0xF2,0x1A,0x3A,0xB0,0xFB,0xFE,0x46,0x46,0xB1,0x59,0x36,0xBA,0x64,0x7F, + + 0xE7,0x6D,0x9A,0x75,0x72,0x59,0xE4,0xEE,0x6E,0x4C,0xE5,0x95,0x16,0xFD,0x50,0xA9, + + 0x63,0x20,0xB0,0x3A,0x77,0xBC,0x78,0x6B,0x7F,0xC9,0xFC,0x4B,0x03,0xE9,0x79,0x56, + + 0xAD,0x7A,0xF2,0xCB,0x8B,0x6A,0x29,0x94,0x6D,0xCA,0xCD,0x47,0xFD,0xAE,0xFD,0x1C, + + 0x45,0xB5,0x92,0x35,0x1E,0xA2,0x8D,0x93,0x61,0x82,0xC3,0x67,0x5F,0x63,0x31,0xF0, + + 0xDF,0xD2,0xFD,0x7E,0xD3,0x1D,0x25,0xD0,0x9B,0xCB,0x0C,0x55,0x4C,0x7B,0x12,0xA7, + + 0xC6,0x98,0x6C,0x3B,0x11,0xB7,0x5C,0xE1,0x9F,0xDC,0xAC,0x01,0xD4,0x0E,0xB4,0xE5, + + 0x78,0x73,0xB4,0xB6,0xC5,0x4D,0x6E,0xD5,0xC5,0xC2,0x9E,0x96,0x98,0xB0,0xA9,0x80, + + 0xC9,0x82,0x83,0x38,0x14,0x4C,0x91,0x20,0xD5,0x2C,0x83,0x9E,0xD6,0x61,0xDC,0x31, + + 0x1E,0x8F,0xBA,0x24,0x32,0x31,0x2E,0xE8,0x0E,0x35,0x0B,0x21,0x9F,0x85,0xC0,0x4D, + + 0x26,0x2F,0x79,0xA4,0xDC,0x84,0x0D,0xDB,0x61,0xD4,0xFC,0xB6,0x37,0xEE,0x91,0xA5, + + 0x59,0xAB,0xC3,0x25,0x82,0x19,0x0C,0x85,0x19,0x5D,0x12,0x94,0xC2,0x70,0x53,0xFA, + + 0xE4,0x98,0xD3,0xFE,0x3A,0x11,0xB5,0x8C,0x44,0x5C,0xDA,0x03,0xFF,0xB6,0x7F,0x88, + + 0xC9,0x33,0x98,0xA7,0xB3,0x4E,0x89,0x6D,0xAE,0x98,0x5E,0x32,0x4F,0xEF,0x77,0x1F, + + 0x88,0x68,0x9E,0x76,0x39,0xF4,0xC5,0x7A,0x2D,0x54,0x06,0xDE,0x71,0x04,0x5F,0x96, + + 0x4C,0x65,0xAF,0x8A,0xBA,0x62,0x3F,0xA2,0x11,0x5C,0x0F,0x4F,0xF8,0xE8,0xD0,0x1F, + + 0xF4,0x9C,0xF7,0x0A,0x8E,0x20,0x66,0x43,0x0A,0xDD,0xA7,0xAA,0xCE,0x5C,0x3E,0x1F, + + 0xC5,0x8D,0xA9,0x0E,0x07,0x37,0xEE,0xC3,0xDD,0x71,0x96,0xAA,0x21,0x77,0x50,0xF2, + + 0xA2,0x6B,0x56,0xBE,0x64,0x48,0x24,0x37,0x07,0x3C,0xF2,0x7C,0x7A,0x99,0x3E,0x6C, + + 0x0B,0x61,0xC6,0xFE,0x86,0xA1,0x62,0x0D,0x47,0xE4,0x73,0x0D,0xF8,0x16,0x27,0x66, + + 0xA9,0x9E,0xFA,0x5B,0xFC,0x53,0xBF,0xDB,0xAF,0xD2,0xA5,0xEF,0x5C,0xBE,0xA7,0x2D, + + 0x87,0xF1,0x7F,0x7E,0x3E,0xFF,0x72,0x31,0x43,0xA0,0xE8,0x35,0x20,0x64,0xB0,0xC0, + + 0xA2,0x6F,0x6B,0x54,0x01,0x8C,0x1E,0x70,0x15,0x2F,0xD6,0xB9,0x32,0x41,0x5B,0x65, + + 0xFC,0x1D,0x6D,0x6A,0x4E,0x7F,0xD1,0x00,0xA0,0xC4,0xFD,0x1A,0xA4,0x20,0x6B,0x91, + + 0x80,0x43,0xD9,0x44,0xED,0x28,0x40,0x7D,0x64,0x35,0x42,0x35,0x61,0x12,0xC2,0xC4, + + 0x7C,0x0B,0x64,0xC0,0x52,0xF8,0x8A,0x7D,0x71,0xC0,0xEE,0xC0,0x98,0xB7,0x2E,0x28, + + 0x00,0x85,0xE8,0x12,0x5B,0x94,0xFF,0x92,0x83,0xEA,0xA1,0x07,0x79,0xEC,0x18,0xBC, + + 0x67,0x68,0xC7,0xE5,0xDA,0xF7,0xEB,0x9E,0x2B,0x2F,0xEF,0xDC,0xB3,0x62,0x77,0x29, + + 0xC3,0xC8,0xE9,0xDA,0x11,0xEB,0xCE,0x02,0xEE,0xB3,0xF9,0xFF,0xF7,0x3B,0x16,0x93, + + 0xF4,0x79,0x02,0x2D,0xC2,0x95,0x53,0x4E,0xDE,0x40,0x93,0x2E,0x10,0x04,0x0E,0xE4, + + 0x09,0x1C,0x0A,0x5B,0x37,0xF5,0x19,0xFF,0x7A,0x43,0xF3,0xD7,0x5F,0x68,0xC3,0x58, + + 0xE8,0x81,0x28,0x77,0x4D,0x31,0x53,0x6F,0xB4,0x4E,0x47,0x73,0xF6,0xB6,0x9E,0x11, + + 0x09,0xAB,0x5F,0x43,0x0A,0x14,0xA3,0xB6,0xDB,0x06,0xA3,0x19,0x38,0x70,0xEE,0x3B, + + 0x73,0x17,0x78,0x3F,0x6B,0x23,0x2A,0x7A,0xA3,0x43,0x69,0x22,0xC7,0x91,0xB1,0xB0, + + 0x74,0xC0,0x97,0x40,0xB6,0x48,0x64,0x1D,0x23,0xBC,0x81,0x7C,0xFA,0xB2,0xE1,0xDF, + + 0x75,0x8C,0x77,0x3E,0xE3,0x21,0x4B,0x6D,0x82,0xBF,0x7E,0x1E,0xB6,0xD1,0xE7,0xC7, + + 0x8A,0x8F,0xB3,0xB5,0xC7,0x62,0x19,0x6A,0xB7,0x40,0x6F,0x1F,0x24,0x2F,0x3A,0x21, + + 0x62,0xEF,0x13,0x76,0xC7,0x2B,0xEF,0xA9,0x8D,0x4B,0x2E,0x63,0xB2,0x20,0x04,0x94, + + 0x09,0x02,0x8D,0xF2,0x6E,0x7E,0xC8,0xEE,0xF2,0x6E,0xC5,0xB4,0x12,0x81,0x3B,0xB9, + + 0x2D,0xE4,0x73,0xE3,0xE7,0x7D,0x95,0xE6,0xCE,0x8E,0x9D,0xB0,0x97,0x22,0x33,0xA9, + + 0xE1,0xBC,0x1D,0x17,0x0D,0x31,0xE2,0x49,0xE1,0xE8,0x65,0x31,0xCB,0xB3,0xBE,0x28, + + 0xAA,0xD9,0x3F,0xBB,0x5A,0x39,0xAB,0x93,0x40,0x3A,0x42,0x66,0x82,0x36,0x15,0xD6, + + 0xC6,0x13,0x96,0x54,0x4F,0x9A,0x0C,0x82,0x88,0x84,0xDA,0x54,0xD2,0x34,0x25,0x61, + + 0xBA,0x19,0x3A,0xBB,0x9C,0xE9,0xB2,0xA1,0xE6,0xA2,0x8B,0x07,0xF6,0x34,0x1D,0xCC, + + 0x00,0x7B,0x6D,0x25,0x0D,0xE4,0x63,0xCD,0x6E,0xF1,0x87,0x4E,0x8F,0xD8,0x11,0xFB, + + 0x50,0x74,0xBE,0x7F,0x4C,0x93,0x92,0x2C,0x60,0xB4,0xF6,0x0C,0x60,0x75,0x1A,0x28, + + 0x4A,0x1B,0x22,0x0F,0x13,0x33,0xFD,0xF8,0x22,0xF4,0x1C,0xCE,0x4A,0xBD,0x61,0x28, + + 0xA9,0x5A,0x94,0x8C,0x51,0xAB,0xFB,0xC6,0x36,0x07,0xCE,0x50,0x1F,0x36,0x19,0xA1, + + 0xAF,0x1A,0x9E,0x6D,0xBB,0x9A,0x4F,0xE8,0x95,0x50,0x65,0x55,0xFD,0x34,0x1F,0x35, + + 0xCF,0xBA,0xB8,0xCB,0x1E,0x27,0xC1,0x28,0x04,0x1E,0x76,0x9E,0x18,0x40,0x6E,0x5C, + + 0x19,0xC1,0x03,0xAF,0x2C,0xB4,0x76,0xFE,0x6D,0xDD,0xA0,0x49,0xD7,0x70,0x5C,0x3A, + + 0xD2,0x05,0x37,0x0A,0x1F,0x98,0x06,0xDF,0x6B,0x3A,0xA9,0xEA,0xDE,0x73,0x16,0x5C, + + 0x42,0x10,0xEF,0x2E,0x18,0x2D,0x6A,0x93,0x6A,0x52,0xA1,0x55,0x74,0xD9,0x8C,0xA7, + + 0xD1,0xE3,0x5F,0xC1,0xA9,0x56,0xD1,0x62,0x40,0x8C,0x16,0xD0,0xD9,0x4D,0x71,0xA5, + + 0xA0,0x5B,0x96,0xDF,0x9A,0xBA,0xB8,0xD2,0x14,0x34,0xAF,0xDE,0xD9,0xA3,0x8A,0xC9, + + 0x3F,0x7D,0x18,0x99,0x95,0xB2,0xA6,0x50,0xEE,0x4B,0xAE,0xB4,0xA5,0x4D,0x57,0x2E, + + 0x95,0xCE,0xCB,0x81,0x96,0x1A,0xAA,0xB7,0xCE,0x48,0xE8,0x69,0x1D,0xEC,0xDF,0x72, + + 0xF1,0x4B,0x54,0xA4,0xBA,0x2F,0x52,0x8A,0x86,0x0B,0xF4,0x31,0xD4,0x71,0x31,0x51, + + 0xE0,0x78,0x8D,0x34,0xE8,0xBE,0x6F,0x01,0x3F,0xA9,0x38,0x67,0x75,0xE8,0x38,0xBE, + + 0x63,0x79,0xE5,0xA5,0x90,0xB5,0x4B,0x90,0xE4,0x69,0x72,0x96,0x75,0xA6,0x30,0x45, + + 0xE3,0xBC,0x2D,0x31,0x60,0x5A,0x20,0x61,0x01,0xCD,0x69,0x04,0xBB,0x46,0xED,0xF9, + + 0x2E,0x03,0xA4,0x37,0x14,0x82,0x8D,0x6D,0x8E,0x48,0x25,0xC6,0x5C,0x63,0x3A,0x0A, + + 0xAC,0x26,0xFA,0x23,0x1B,0x04,0x28,0xA8,0x0D,0xC1,0xA2,0x2E,0xFA,0xF2,0xB0,0x3A, + + 0xB0,0xC8,0xA5,0x37,0x94,0xA2,0x3B,0x13,0xCA,0xEB,0x34,0xC9,0x35,0x1B,0x7F,0x69, + + 0x66,0x1A,0xFB,0xED,0x62,0x06,0x2D,0xD2,0x11,0x26,0x1F,0x2B,0xEE,0x8F,0xC2,0xBD, + + 0x2C,0x4C,0x71,0xCC,0xDB,0xD1,0x3D,0xEE,0x7C,0x09,0xCA,0x5E,0x34,0x43,0x33,0x59, + + 0xE8,0x96,0xD4,0xEF,0x77,0x5C,0x7A,0x7A,0x4F,0xA1,0x84,0x79,0xFE,0x32,0x60,0xA3, + + 0x0A,0x43,0x9B,0x6B,0xE9,0xAE,0xB3,0x7B,0x2B,0xCE,0x53,0x1D,0xBC,0xD2,0xB4,0x2D, + + 0xBC,0xCB,0x14,0x21,0xF5,0x2C,0x45,0x1E,0x05,0x3E,0x4F,0x1D,0xFB,0x42,0x26,0xE0, + + 0xDB,0x1B,0xB7,0x02,0x14,0x30,0xBB,0x86,0x57,0x24,0xED,0x2B,0xD3,0xF3,0x3C,0x82, + + 0x84,0x2E,0x1B,0xAA,0x33,0x99,0xC3,0x75,0xD8,0x27,0x3B,0xD4,0xF8,0xEA,0x65,0xB2, + + 0xDC,0xD0,0x9D,0x74,0xCC,0x0D,0x8F,0x5D,0xF4,0x1F,0xB2,0x2A,0x76,0xF1,0xED,0x2E, + + 0x79,0xEF,0x33,0x67,0xAA,0x12,0x84,0x2D,0xE4,0xDB,0x62,0x21,0xCE,0x37,0x9C,0x46, + + 0x3B,0xEB,0x5C,0xB6,0xB6,0x12,0x49,0xA0,0xC7,0x59,0x24,0x95,0x5C,0x7D,0x56,0x3A, + + 0x3D,0xDA,0xB2,0x34,0x33,0xB3,0x07,0x02,0x4F,0x74,0xE6,0xF4,0xE5,0xB4,0x3C,0x3A, + + 0x5B,0x59,0x9D,0xE3,0x5F,0x57,0xAA,0xE2,0x11,0x69,0xD5,0x0D,0x1F,0x15,0x0D,0xD1, + + 0x23,0x9A,0xDE,0x57,0xB3,0x17,0x2D,0x19,0x42,0xE8,0xA4,0xAA,0x56,0x08,0x99,0xC5, + + 0xB9,0x45,0xB1,0x0A,0x1C,0x38,0x08,0x0A,0x25,0x29,0x48,0x46,0xB8,0x35,0x16,0xAB, + + 0x8C,0x36,0x3D,0xAF,0x01,0xFB,0x99,0xCC,0x9E,0xC9,0xC4,0xAE,0x9A,0xF4,0x8E,0xF8, + + 0x90,0x3B,0xFD,0x70,0x1F,0x31,0x6F,0x07,0xC8,0xC1,0x48,0x0F,0x11,0xCA,0xBC,0x1F, + + 0x85,0x8A,0xBF,0x8F,0x1C,0x39,0x85,0x40,0x85,0xD6,0xE6,0x42,0x1A,0xB5,0x3F,0xD8, + + 0xC9,0x51,0xB6,0xBD,0x0E,0x1D,0x0F,0x6E,0x2E,0x95,0x42,0x8C,0xA3,0xB3,0x37,0xC8, + + 0xCA,0xF3,0x4E,0xAC,0x5D,0x81,0x46,0x10,0x69,0x5D,0x12,0x8D,0x49,0x5B,0x3F,0xCF, + + 0xC9,0xBE,0xDF,0xFF,0xCD,0x11,0x1F,0x89,0x55,0xD0,0xF6,0x90,0x59,0xBF,0x0D,0xC6, + + 0xAE,0xDF,0x91,0xD8,0x9B,0xD1,0xBA,0x39,0x6B,0xD1,0xAC,0x8C,0xC1,0x76,0x20,0xEA, + + 0xE9,0x33,0xE6,0x29,0xE5,0x86,0x28,0xDF,0xEC,0x4D,0x6F,0x00,0x63,0xBC,0x1E,0x72, + + 0x61,0xA6,0x61,0x72,0x32,0x81,0x19,0x4F,0xA6,0x00,0xA2,0xCF,0x57,0x02,0x1B,0x03, + + 0x12,0x43,0x10,0xC5,0x84,0x39,0x48,0x3E,0x1D,0x8D,0x29,0xDA,0xEF,0x9D,0x77,0x17, + + 0x60,0x80,0x21,0x29,0xEE,0xDC,0x21,0xC2,0xB9,0x26,0xBA,0x2A,0xBD,0x78,0xF9,0x50, + + 0xB9,0xFB,0x71,0xA5,0xFB,0xDD,0xD0,0xA4,0x71,0xA0,0x0A,0x64,0x61,0xF6,0x7F,0x79, + + 0x05,0x25,0x91,0x44,0xB6,0xA4,0x3E,0x03,0x76,0xCC,0x5D,0xCC,0x60,0x81,0x9A,0x41, + + 0x72,0x17,0x99,0x41,0x26,0x2D,0xEB,0x01,0xC6,0x6B,0x69,0x75,0x75,0x65,0x3F,0x23, + + 0x70,0xB8,0x36,0xAA,0x72,0xA4,0x5D,0x11,0xC7,0x6A,0x03,0x74,0x56,0xE7,0xA8,0x2C, + + 0xF7,0x85,0x12,0x2C,0x24,0xF1,0x2A,0xDB,0x3C,0x09,0x39,0x4A,0xA7,0x13,0x9F,0x87, + + 0xFC,0x80,0x0D,0xE3,0x6E,0x29,0x0C,0x5A,0x21,0x44,0x4E,0x26,0xC4,0x94,0xD7,0xF7, + + 0x07,0xA7,0xDA,0x56,0x3D,0xA0,0x48,0x67,0xB3,0x21,0x97,0xD4,0x80,0x28,0x2B,0xF3, + + 0xEA,0x0F,0xD2,0xDF,0x3C,0xB4,0xE6,0x1D,0x20,0x08,0x36,0x7A,0x64,0xCD,0x7C,0x75, + + 0x76,0xA3,0x3D,0xB2,0xE2,0x55,0xDA,0x1B,0x37,0x47,0x12,0xA9,0x55,0x68,0x34,0x64, + + 0xF2,0xAE,0xBC,0x23,0x2F,0x92,0x10,0x67,0x78,0xED,0x83,0xF0,0xFE,0x92,0xD4,0x3A, + + 0xFE,0xDD,0x98,0x4D,0x9C,0x0E,0x11,0x56,0xE9,0x0C,0x87,0xE9,0xD5,0x04,0x5C,0xAA, + + 0xF3,0x92,0xF0,0xE1,0x68,0x52,0xE4,0x9F,0x37,0x64,0x82,0x6A,0x3E,0x03,0x3C,0x7B, + + 0xAD,0x51,0xE2,0xAC,0x33,0x00,0x54,0xA4,0x28,0x53,0x93,0xCA,0xFF,0x06,0x4D,0xF6, + + 0x43,0xAE,0x37,0x07,0x05,0x39,0x62,0xB6,0x80,0xD2,0x3B,0x30,0x03,0xE6,0xBD,0xB1, + + 0xA0,0x6D,0x29,0xFA,0x7A,0x43,0x03,0xC3,0x80,0xB0,0x9D,0xB9,0xF6,0xE1,0xF4,0x56, + + 0x58,0x65,0x09,0x68,0x46,0x72,0x30,0x95,0x63,0x2F,0x95,0xB0,0x8E,0xAC,0xE9,0xBF, + + 0xBF,0x48,0xE4,0xD8,0xDB,0x6D,0x6E,0x45,0x9D,0x4F,0x0F,0x92,0x8D,0x36,0x35,0xEF, + + 0x5F,0xC0,0x92,0x9D,0x3F,0x31,0x62,0x8D,0xA2,0x36,0xB4,0xF2,0xF0,0x11,0xFE,0x8F, + + 0x43,0x29,0xDB,0xA8,0x91,0x96,0xDE,0x87,0xBF,0xA9,0x5C,0xD4,0x71,0x78,0xDE,0x55, + + 0xAF,0x23,0x49,0x24,0xAA,0x17,0x89,0x21,0x62,0xAF,0xB5,0x17,0x70,0x7A,0x3D,0x06, + + 0x0C,0xB5,0xDF,0x4A,0x9D,0xE7,0xB2,0xCA,0x03,0x09,0x06,0x20,0xF8,0xC5,0x30,0x28, + + 0x07,0xC6,0xE8,0xB1,0xCC,0x9F,0x4D,0x4B,0xD6,0x05,0x0B,0x4F,0x05,0xD6,0x51,0xB8, + + 0x09,0xE5,0x86,0xEB,0x47,0x54,0x17,0x5A,0xD4,0x18,0xAD,0x5E,0xCC,0xD5,0xB0,0xA9, + + 0xAB,0x5A,0x1E,0x5D,0xA1,0xC6,0xA4,0xF7,0x00,0x41,0x0C,0x4E,0x81,0xD4,0xD6,0x8A, + + 0x8B,0x10,0xF8,0xA0,0x78,0xC3,0x5C,0x48,0xD5,0xE9,0x06,0x6E,0x58,0x8E,0xEE,0x9A, + + 0xA8,0xB6,0xC3,0x58,0x26,0xB5,0x14,0x13,0x58,0xFD,0xBE,0x5C,0x21,0xF6,0x3F,0x8B, + + 0x26,0x12,0x07,0x0C,0xC8,0x8B,0xCB,0xD6,0xD7,0x1C,0xEF,0xBD,0xFE,0x71,0x27,0x59, + + 0x89,0x0F,0x0F,0x1D,0x0F,0x92,0xE7,0x06,0xD8,0xBF,0xDB,0x1F,0x79,0x7C,0x41,0x26, + + 0x67,0x45,0xA1,0x60,0xEF,0xE2,0x26,0x40,0xBB,0x6D,0x26,0xE1,0x96,0x80,0x7A,0x44, + + 0xEE,0xE5,0xCE,0x74,0xEE,0x3E,0x58,0x65,0xE6,0x81,0x28,0x44,0xE2,0xBC,0x36,0xF0, + + 0x00,0x0F,0xA5,0xB4,0x61,0xC1,0x65,0x86,0x33,0x83,0xB9,0x22,0xAB,0x3D,0xB9,0x97, + + 0x81,0x8C,0xF0,0x07,0x93,0x23,0x3B,0x18,0x5C,0x7E,0x15,0xA4,0xB9,0xE9,0x36,0x7A, + + 0xED,0x15,0xF6,0x24,0xDE,0xDD,0xB0,0xB2,0x3E,0xDF,0x17,0xA6,0x4A,0xA6,0xFF,0x6C, + + 0x73,0x30,0xD7,0xC9,0xE8,0x38,0xB8,0x4D,0x6C,0x87,0xE0,0x9E,0x9B,0x25,0xE0,0x41, + + 0x74,0x73,0x99,0x75,0x69,0xCA,0xF7,0x1C,0x61,0xC2,0xBB,0xFC,0xD0,0x35,0x7E,0x69, + + 0xF7,0x9C,0x8F,0xB5,0x60,0x12,0x33,0x6C,0xF4,0x27,0xD9,0x7E,0xE4,0x03,0x18,0xE7, + + 0x7C,0xD3,0x2D,0x10,0x2C,0x5C,0x1F,0x64,0xB9,0x94,0x31,0xAA,0x2E,0x1C,0xAA,0x0A, + + 0x7B,0x26,0x51,0x16,0xB8,0x56,0x5A,0x6D,0xEE,0x89,0x3E,0xC3,0xAA,0xA8,0x27,0xE0, + + 0x3F,0xE4,0xB6,0xE7,0x5F,0xE7,0x9E,0x54,0x51,0x8B,0x73,0x97,0x2E,0xE2,0x8F,0x79, + + 0x7E,0xEE,0x47,0x8C,0xA5,0x76,0x39,0x38,0x4F,0xBE,0x3A,0x3D,0x2C,0xB0,0xE6,0xCE, + + 0x4E,0xC5,0x7E,0xB6,0x1E,0xEE,0xCD,0x8C,0xB2,0xC7,0x28,0x6E,0xD9,0x6C,0x4D,0x63, + + 0xDF,0x1C,0x51,0xB8,0x0F,0x50,0x7C,0x05,0xE8,0x8F,0x2C,0x42,0x6C,0x09,0xC4,0x76, + + 0x5A,0x5F,0xE7,0xFC,0xAD,0xFE,0xB3,0xBB,0xB6,0xD5,0x33,0x33,0x2F,0xAC,0xD8,0x77, + + 0x73,0xFE,0x13,0xAE,0x86,0xAF,0x76,0xC4,0x6B,0x8D,0x41,0x9F,0x93,0xF4,0x5A,0x84, + + 0xC5,0x13,0x41,0xF8,0xA2,0xB8,0x6C,0x22,0x57,0x48,0xA7,0x88,0x18,0xAD,0x76,0x98, + + 0x4D,0x70,0xF5,0xC9,0x90,0x31,0x84,0x41,0x59,0xCA,0x7C,0x0E,0xA9,0xAC,0x8F,0x70, + + 0x28,0xD3,0xE1,0x27,0xC0,0x62,0x8D,0x50,0xD0,0xC2,0x59,0x28,0xF7,0x01,0x53,0x95, + + 0x44,0x10,0xF3,0x75,0xA5,0x36,0xCC,0xD5,0x52,0xC3,0x7D,0xA6,0xD7,0xFE,0x24,0x04, + + 0x6E,0xD6,0x7D,0x01,0xFC,0xCD,0xCC,0x19,0x0D,0x0C,0x33,0x84,0x37,0xD4,0x56,0x2D, + + 0x21,0xED,0x2C,0x13,0xDE,0x1E,0x32,0xE3,0x54,0xAE,0xC6,0x14,0xF5,0xBD,0x29,0x7B, + + 0xDD,0x92,0xED,0xA7,0x57,0x49,0x75,0xCC,0xCB,0x94,0x8D,0x65,0xD4,0x24,0x67,0x15, + + 0xE7,0xBA,0x74,0xD7,0x30,0xB5,0xC7,0x1C,0x0E,0xAE,0x37,0x07,0xFB,0xF8,0x8C,0x79, + + 0xA0,0xD9,0xC6,0xC1,0xB4,0xB7,0x8E,0x45,0x5F,0xD6,0xC8,0x86,0xD0,0xF5,0xD1,0x5D, + + 0xE7,0xDA,0xF7,0xC0,0x98,0x39,0xC1,0xFD,0xF3,0x04,0xC0,0x93,0x94,0xE8,0x1F,0x75, + + 0x00,0x97,0x87,0x8B,0x39,0x6B,0x8F,0x55,0xFC,0x97,0xC9,0x86,0x94,0x8B,0x94,0x08, + + 0x87,0xDA,0xF1,0x7D,0xAD,0x3E,0xDE,0xFB,0xB5,0x26,0xE9,0x93,0x16,0xAA,0xCC,0x48, + + 0x0C,0xD8,0x0E,0xDE,0x0D,0xC7,0xD3,0x08,0x8E,0x78,0xCC,0x11,0x78,0x96,0x91,0x58, + + 0xE2,0x11,0x11,0x36,0x00,0x70,0x27,0xF2,0x86,0xD2,0xE1,0x13,0x3E,0x70,0x5F,0x35, + + 0x02,0x93,0x65,0x27,0xFE,0xF3,0xEB,0x09,0x0E,0x21,0xC9,0x13,0x37,0x05,0xD4,0xC4, + + 0x0C,0xDD,0x43,0x40,0xBE,0x77,0x87,0xF3,0x12,0x90,0x80,0xFB,0xBC,0xC8,0x5A,0x3C, + + 0x68,0xE1,0x40,0xC4,0xE9,0x4E,0x40,0x53,0x67,0xEB,0xB0,0xD7,0xF3,0x72,0xBD,0xE3, + + 0x8D,0x40,0xEA,0x15,0x35,0xAA,0xB5,0xC3,0xC5,0xCC,0xE0,0x10,0xDE,0xCC,0x7F,0x07, + + 0x61,0x81,0x3E,0x97,0x90,0xFF,0x69,0x35,0x20,0xC3,0x29,0x55,0x50,0xC4,0x77,0x16, + + 0x34,0x0C,0xFE,0x24,0xFD,0x3C,0x4B,0x7F,0xE5,0xEE,0x54,0xA6,0xE1,0xCE,0x1A,0x42, + + 0x90,0x45,0x75,0xC0,0x47,0xB5,0x2E,0x66,0xA3,0xC7,0xEE,0x4D,0x90,0x54,0xFC,0x77, + + 0xA2,0x9A,0x5E,0x13,0xD9,0x1F,0x5A,0x73,0x70,0xD9,0x74,0x0B,0x91,0x60,0xE4,0x47, + + 0x16,0x62,0xFB,0xB6,0xFE,0x8B,0xF8,0x92,0x4E,0x06,0xD9,0x61,0x52,0x7E,0xFD,0x33, + + 0xA7,0x5C,0xC1,0x51,0x1B,0xB5,0xE1,0x8E,0x4E,0x5C,0x62,0xE7,0xD3,0x6D,0xB6,0x67, + + 0xAB,0xB5,0x3A,0xF3,0x7B,0x42,0xCA,0xD9,0xEB,0x88,0x04,0x5C,0xD8,0x77,0xBF,0x8F, + + 0x0F,0xA9,0x72,0x38,0xB8,0x96,0xBA,0x4A,0x2B,0x35,0xFB,0x18,0xA6,0xBC,0x5D,0xEB, + + 0x8C,0x0C,0x95,0x38,0x2B,0xD7,0x21,0x19,0xA0,0xE5,0xAD,0xE1,0xB9,0x6E,0x5B,0x7B, + + 0xAD,0x97,0x4B,0xCD,0x25,0xD6,0x8B,0xC9,0x8E,0x3A,0x8A,0x2C,0xE9,0xE0,0xF7,0xA5, + + 0x08,0xA7,0x98,0x81,0x72,0xCD,0x3E,0x0E,0x94,0xC7,0xD1,0x1F,0x6E,0xEA,0x11,0x5A, + + 0x74,0x2D,0xB4,0x74,0xF8,0x26,0xC9,0x8B,0xCF,0xC0,0x5E,0x3C,0x5F,0x69,0x15,0x48, + + 0xF1,0x0E,0x03,0x6D,0xDA,0x23,0x73,0x4D,0xA9,0xCB,0xFB,0x1E,0xE2,0xE8,0xDB,0xDB, + + 0x0B,0x44,0x4B,0x5E,0x89,0xA4,0x09,0x33,0x20,0x2B,0x0F,0xBA,0x32,0x3E,0x8C,0x27, + + 0xDC,0x01,0xBC,0x7F,0xCD,0x71,0x82,0x51,0xC3,0x10,0x04,0xCB,0x8F,0xAB,0x2D,0xA1, + + 0x4D,0x0E,0xA1,0x67,0xBD,0x70,0x1A,0x10,0x02,0x3A,0x24,0x4F,0x77,0x51,0xC5,0x41, + + 0xF0,0x99,0xFB,0x83,0x51,0xB1,0x75,0x33,0x06,0x12,0x95,0xC3,0x03,0x62,0xB5,0x6E, + + 0xC2,0x04,0xF3,0x93,0x50,0xB0,0x8A,0x42,0x65,0xDE,0xEB,0xCB,0x0E,0x32,0xBB,0x3C, + + 0x22,0x8F,0x8C,0xC0,0x1B,0xF9,0x6C,0x13,0x44,0x31,0xEA,0xC9,0xFD,0xF2,0x48,0x63, + + 0xAC,0x54,0xB8,0x13,0xDA,0x64,0xF1,0x8F,0xFE,0x09,0x5A,0x87,0x4F,0x1B,0x45,0x38, + + 0xB6,0x54,0x72,0xED,0xB4,0x2E,0x6D,0x12,0xCC,0x17,0xC7,0xA5,0xAC,0x72,0x73,0xE4, + + 0xCB,0x1A,0xAF,0x37,0x5A,0x06,0xE6,0xBF,0x02,0x68,0xBF,0x77,0xF2,0xB5,0x10,0xA0, + + 0xC3,0x5C,0xAB,0x7F,0xB4,0x79,0x44,0xE6,0x83,0x3C,0xA8,0x85,0x18,0x58,0xAA,0xBC, + + 0xC0,0xF8,0xBC,0xA5,0xC6,0x94,0x60,0xBE,0x88,0xDA,0x0E,0xDA,0x05,0x36,0x3D,0x39, + + 0x3D,0xB5,0xB4,0x6F,0x53,0x35,0x87,0x59,0x2B,0x6B,0x68,0xDF,0xD6,0xA5,0x19,0xFB, + + 0xC9,0xB8,0xF7,0x25,0x4E,0x7A,0xB5,0x4A,0x65,0x1A,0xDE,0xDB,0x9B,0x7B,0x54,0x7C, + + 0xC1,0x58,0xA4,0xCC,0x39,0x2C,0x2F,0xCC,0x09,0x36,0x8C,0xD0,0x12,0x6D,0xEA,0xFC, + + 0xC2,0xFC,0xAC,0xDC,0x3A,0x7D,0xCE,0x10,0x79,0x10,0x9C,0x1E,0x18,0x07,0x7D,0x79, + + 0x3F,0xB1,0x78,0x5F,0x19,0xE3,0x41,0xDC,0x59,0x13,0x17,0xCD,0xBA,0x73,0x59,0xBB, + + 0xCB,0x95,0x27,0x54,0x02,0xB5,0xA0,0x8A,0xC6,0xAB,0xC9,0xC8,0xFD,0x7E,0x1F,0x58, + + 0x99,0x7D,0xDE,0xE4,0xF4,0xE1,0x4E,0x24,0xA5,0x43,0xB8,0x1A,0xBF,0xA4,0xA8,0x90, + + 0xB9,0xBA,0x57,0x92,0x1E,0x2A,0x62,0x43,0x79,0x6E,0x1C,0x12,0xA2,0x1C,0x8C,0x6C, + + 0xEF,0x8D,0x9F,0x3B,0xF4,0xE2,0x1C,0xD0,0x48,0x83,0x8B,0x97,0x5C,0x4D,0xE9,0x02, + + 0xA7,0x8E,0x16,0x50,0xB1,0x08,0x99,0x41,0xA7,0xFF,0xAF,0x55,0x2A,0x3E,0x58,0xBD, + + 0x35,0xE2,0x78,0x77,0x26,0xBB,0xE0,0x10,0x75,0xA2,0x17,0x15,0x6E,0x32,0xF8,0x30, + + 0x70,0x85,0x1C,0x34,0xFC,0x34,0x00,0x55,0xE4,0x84,0xD7,0x2C,0xA2,0x79,0xDB,0xBD, + + 0x0B,0x70,0x59,0xAC,0x90,0xA7,0x8B,0xE1,0x57,0xD9,0xF9,0x7F,0x0F,0x1B,0x40,0x28, + + 0x16,0x97,0xDE,0x7F,0x6B,0x46,0x19,0x38,0x8C,0xCA,0x4E,0x5B,0x23,0xD6,0xB2,0x75, + + 0x67,0x87,0xDA,0x0A,0xF5,0xB9,0x4C,0x2D,0x68,0x43,0x66,0xD0,0x3F,0xE4,0xAA,0x0B, + + 0x2F,0x3C,0xD2,0x39,0xE0,0xA6,0x9A,0x48,0x2F,0xF5,0x9E,0x82,0xB6,0x8D,0xA3,0x89, + + 0x30,0x39,0x63,0x1E,0xBE,0x77,0x18,0x1A,0xFC,0x65,0x24,0xDC,0x58,0x61,0x3A,0x24, + + 0xE1,0xC9,0x3B,0x7D,0x6E,0xCE,0x45,0x3C,0xE9,0x66,0x83,0xC1,0x71,0xE6,0xF2,0xB3, + + 0xB4,0x57,0x22,0x1B,0x1E,0x78,0x70,0x88,0xEF,0xA0,0xD2,0x7E,0xA6,0xBD,0xE5,0x0D, + + 0xF2,0xCC,0xD4,0x72,0xDD,0xA5,0x82,0x72,0xA6,0x04,0x9A,0x61,0x63,0x40,0x43,0xB6, + + 0xC3,0xCC,0xF6,0x50,0xAA,0xC2,0x11,0x6F,0xEA,0x43,0xC0,0x46,0xD8,0xC4,0x0B,0x59, + + 0xF2,0x82,0xD5,0x76,0x5D,0xAF,0x83,0x5F,0x24,0xAB,0xE8,0x5F,0x72,0xDF,0x5A,0x84, + + 0xC5,0x13,0x64,0x56,0x15,0xDE,0xCB,0x4A,0x8A,0x9D,0x4C,0x82,0xE8,0xFF,0x12,0xA7, + + 0x4D,0x9C,0xCE,0x92,0x11,0x1E,0xB3,0x54,0x41,0x93,0x2F,0x45,0x01,0x7C,0x08,0x70, + + 0x28,0xD3,0x1A,0x15,0xB4,0x6F,0xBE,0x45,0xF4,0x9F,0x87,0xD4,0x57,0x53,0x3F,0x06, + + 0x4E,0xD7,0x09,0xF5,0x42,0xD6,0xEA,0xAC,0xD6,0x27,0xEB,0x8E,0x1E,0x42,0x1A,0xC4, + + 0xC7,0x17,0x9C,0x3D,0x17,0x56,0x0C,0xD0,0x42,0xD7,0xF6,0x16,0x89,0xFB,0x93,0x2A, + + 0x27,0x2E,0xD4,0x2C,0xCE,0xD9,0xC4,0x35,0xA5,0xE5,0xEC,0x91,0x0F,0x78,0xCC,0x30, + + 0x2A,0xD7,0xBC,0x8A,0x13,0x37,0xB4,0x62,0xD5,0x2D,0xD5,0x43,0x1F,0x67,0xE9,0x57, + + 0xAF,0x30,0x8E,0x97,0xE7,0x4A,0x75,0xFA,0x65,0xD3,0x00,0xCC,0xC7,0x02,0x1C,0x3A, + + 0xB5,0x37,0x9E,0xAA,0x0F,0x0E,0x8C,0x50,0x7C,0x15,0x5A,0xDD,0x08,0x7E,0x70,0x78, + + 0x29,0x9F,0xF7,0x5D,0xC2,0xD7,0x85,0x20,0x49,0xD4,0xBE,0x9A,0xF2,0x0F,0x83,0xAF, + + 0x45,0x7B,0x1F,0x71,0xAC,0xF7,0x48,0xEC,0x11,0x6C,0x48,0xDC,0x84,0x7C,0x4D,0x11, + + 0xA9,0x3B,0x17,0x00,0x48,0x32,0x44,0x9C,0x4C,0x64,0x04,0xCF,0x7D,0xE4,0x39,0xDB, + + 0x2A,0xBC,0x84,0x56,0xCB,0x3A,0x7D,0x88,0x4E,0x11,0x60,0x6A,0x0C,0x1E,0xCA,0xB8, + + 0xD8,0xF8,0xEE,0x23,0x6D,0xD3,0xF9,0x03,0x1B,0x46,0xEF,0xC1,0x13,0xBF,0xC9,0xC4, + + 0x2A,0xCA,0xE7,0x0F,0xFE,0x65,0xF7,0xE8,0xBB,0xA5,0xFF,0xE3,0xE2,0x4B,0x57,0xFF, + + 0xCF,0xF4,0xD1,0xF3,0x7D,0xB6,0xCA,0x06,0x2E,0x04,0xAC,0x6A,0xFC,0x0F,0x3E,0x38, + + 0x20,0xED,0x88,0x15,0xE5,0x6F,0x4A,0x42,0xBB,0x46,0xE8,0x28,0xB0,0xE1,0x28,0x18, + + 0x0C,0x90,0x90,0xCD,0x7A,0x90,0xD8,0xB4,0x65,0x70,0xE0,0xCA,0xF4,0x0D,0x07,0x44, + + 0xF0,0x06,0x80,0x7A,0x37,0x5F,0x31,0x86,0x61,0x4B,0x10,0xDA,0x31,0xC1,0x08,0x13, + + 0x8D,0x69,0x89,0x06,0xF4,0xF2,0x39,0x20,0x4C,0x20,0x7E,0x4B,0xB0,0x67,0x20,0x0F, + + 0x86,0x09,0xBE,0xF4,0xFB,0x47,0x6D,0x00,0x46,0x0A,0xE8,0x1B,0xD3,0x69,0x00,0x49, + + 0x60,0x25,0x9E,0xF0,0xE4,0x49,0x73,0x0F,0x92,0xF8,0x18,0x50,0xC2,0x6B,0xBA,0x2E, + + 0x0D,0xD0,0xD3,0x0F,0x6D,0xAB,0xC2,0x27,0xF6,0x07,0x62,0xD5,0x2E,0xC5,0x60,0x2E, + + 0x12,0x17,0x76,0xC6,0xEF,0xFA,0x41,0x6D,0xF0,0x0F,0xE1,0x8A,0x50,0x6A,0x11,0xF5, + + 0x0E,0x09,0xBC,0x78,0x1E,0x09,0xB9,0x8D,0x9D,0x56,0xEB,0xDC,0xD8,0x7E,0x0C,0x2D, + + 0x20,0xE9,0x9D,0x1C,0x72,0xF8,0xA1,0xB1,0xE6,0x4F,0xF3,0xDA,0x49,0x26,0xF7,0x7A, + + 0xF8,0x05,0x3B,0x4D,0xDC,0x81,0x6E,0xC0,0x81,0x25,0x9B,0x21,0x39,0x71,0x31,0xEA, + + 0xE5,0x80,0x74,0x0E,0xED,0xE2,0x3B,0x9F,0x68,0x42,0x9A,0xDB,0x5C,0xFA,0x62,0x4C, + + 0x87,0x6F,0xA4,0x70,0x1B,0x6E,0xEA,0x9B,0x2C,0x5C,0x29,0xE8,0x56,0x58,0xF5,0x28, + + 0x4B,0x06,0x35,0x2E,0x71,0xAE,0x7A,0xB5,0xCB,0xDD,0xE4,0xD4,0x5D,0x6C,0x2A,0xB3, + + 0x31,0xFE,0xFD,0xFC,0xFA,0x32,0xEB,0x9A,0xA4,0x48,0x43,0x9C,0x79,0x2E,0x2A,0xDD, + + 0xF9,0x52,0x30,0x9A,0x72,0x4C,0x02,0xC4,0x6E,0xE0,0x8D,0x1F,0x68,0x0A,0x92,0x04, + + 0x00,0x0E,0xDD,0xD4,0x36,0x11,0x4D,0x2B,0x66,0x11,0x6F,0xC4,0x33,0x1C,0x9A,0xE3, + + 0x4D,0x96,0x98,0x5F,0x8C,0xCE,0x24,0xD0,0x67,0x13,0x70,0x2E,0x70,0x11,0x5F,0x80, + + 0x03,0xB2,0xA9,0x6D,0xF9,0x70,0xE3,0x23,0x60,0xF5,0xAE,0x3B,0x4F,0xAF,0x8A,0x52, + + 0x85,0x6F,0x56,0x95,0x82,0x05,0x8D,0x98,0x61,0xF3,0x26,0x2F,0x4E,0x75,0x7E,0x48, + + 0x85,0x58,0x3B,0x37,0x14,0x58,0x2A,0x41,0xE0,0x50,0x70,0x23,0xB0,0x78,0x4E,0x38, + + 0xB4,0xA8,0xF2,0x70,0xF9,0xE4,0x98,0x20,0x6B,0xEC,0x94,0x7C,0x10,0x0F,0xD4,0xE5, + + 0x5F,0x1D,0xFB,0x60,0x78,0xC7,0x5A,0x83,0xEC,0x34,0xEB,0xE2,0x30,0x76,0xB5,0x39, + + 0x34,0x5A,0x85,0xC1,0x7B,0xE6,0x45,0x70,0x12,0xF6,0xCB,0x5D,0xF5,0x76,0xB9,0xC7, + + 0xAA,0x1C,0x46,0xAD,0xF1,0x23,0xBA,0x0D,0xBD,0x3B,0x3B,0xAA,0xD9,0x27,0x6E,0x9A, + + 0x26,0x14,0x21,0xF3,0xE4,0xE2,0x7D,0x5F,0x9C,0x6B,0x5E,0x4C,0x71,0x65,0x4D,0xEB, + + 0x43,0xD3,0x66,0x09,0x90,0x04,0xBC,0x63,0x53,0x61,0x2A,0x6A,0x6E,0x70,0x71,0x4D, + + 0x2B,0x1F,0x8F,0x75,0x27,0x79,0xE3,0x3B,0x69,0xDC,0x20,0xF7,0xE9,0x7F,0x59,0xA8, + + 0x64,0x91,0x16,0xDF,0x46,0x5F,0x6E,0xD8,0x00,0xF3,0xD4,0x1C,0x85,0x73,0xB1,0x1F, + + 0xE9,0x1D,0x59,0x2F,0x15,0x90,0x9E,0xDC,0x9D,0x46,0x8F,0x78,0x5B,0xDE,0x06,0x2F, + + 0xBA,0x53,0x6B,0xBE,0x94,0x98,0xF7,0x9B,0x88,0x62,0x89,0x0F,0xFE,0xD3,0x47,0xCC, + + 0x56,0x99,0x1F,0x4E,0xCF,0x90,0xFD,0xFB,0xB7,0xC2,0x85,0x02,0x58,0x1A,0x0A,0x33, + + 0x68,0xC2,0xFE,0x3F,0x14,0x04,0xF0,0xA6,0x60,0xF1,0xC3,0xD9,0x18,0x6D,0xEB,0xE2, + + 0x71,0x20,0x68,0x37,0xB0,0xA9,0x93,0x97,0x90,0xDF,0x98,0xD3,0xA7,0x3E,0x31,0x13, + + 0x25,0x8B,0x6B,0x3B,0x7D,0x68,0x11,0x32,0x49,0xA1,0xCE,0xCF,0x47,0xAD,0xBF,0x97, + + 0xA5,0x03,0x2B,0xE6,0xED,0xA3,0x44,0xDA,0x63,0xAC,0xBB,0xCE,0x8D,0xE7,0x70,0x20, + + 0x02,0x09,0x07,0x35,0x30,0x72,0xA2,0x6A,0xE3,0x6B,0xC8,0x95,0xD2,0xF0,0x70,0x43, + + 0x88,0x03,0xFB,0xBC,0xF6,0xEA,0x40,0x99,0x86,0x4F,0xC6,0x71,0x95,0xE5,0x1C,0x28, + + 0xFE,0x39,0xE9,0x53,0xF5,0xCC,0xA7,0xE1,0x46,0x5C,0x55,0x20,0x14,0xE0,0x6A,0x13, + + 0x97,0x0A,0x45,0x24,0xB9,0x01,0xFE,0x82,0x64,0xC6,0xF1,0xC7,0x2E,0x61,0x1A,0xEA, + + 0x4E,0x03,0xFC,0x32,0xE3,0x0C,0x89,0xA3,0xE3,0xD3,0xA9,0xD7,0x08,0x65,0x92,0xCA, + + 0xAE,0x82,0x6A,0x3F,0x94,0xB2,0x82,0xD2,0xD3,0x35,0xC4,0x38,0xBC,0x6A,0xBB,0x3A, + + 0xE0,0x95,0x30,0xDB,0xAF,0x8D,0x47,0x4D,0x33,0xDA,0x4C,0xDF,0x4C,0x1B,0xAA,0xEB, + + 0x4E,0x2A,0x5B,0x9B,0xB5,0x95,0xC3,0x33,0x30,0x84,0x16,0xCC,0x51,0xE6,0x3B,0x81, + + 0xA9,0x9C,0xB4,0x3D,0x38,0x0A,0x40,0x79,0xED,0x1D,0x92,0x14,0x9C,0xEC,0x83,0x3C, + + 0xF0,0xE3,0xBC,0x6E,0xE0,0x02,0xFD,0x8B,0xEC,0xCC,0xAE,0x1C,0xEC,0x88,0x5C,0x49, + + 0x92,0x95,0xB1,0x0F,0xCE,0x03,0x0D,0x56,0x77,0x44,0xFB,0x57,0xD8,0xEF,0x09,0x43, + + 0x8E,0x4F,0x3F,0x2C,0xFD,0x2C,0x49,0x68,0x6C,0xCC,0xC3,0x8C,0x5B,0xFB,0x14,0xE0, + + 0x67,0x60,0xB0,0xD5,0x07,0x26,0x0C,0xC2,0x62,0x92,0x34,0xE1,0x5A,0xEE,0x14,0x55, + + 0xE7,0x51,0xF5,0x12,0x11,0x56,0x90,0x17,0xB0,0xB2,0x2F,0xB4,0x53,0xF0,0x45,0xC8, + + 0xC7,0x9D,0x65,0xA6,0x2F,0xA9,0xA5,0x8A,0x64,0x72,0xCE,0x5C,0xD6,0x83,0x25,0x96, + + 0xC6,0x53,0x3D,0xCD,0x48,0x2F,0x96,0x79,0x5E,0xE8,0x28,0x9E,0x77,0x8F,0x63,0x02, + + 0x22,0xDA,0x34,0x81,0xDF,0x17,0x62,0x80,0x06,0x36,0x8C,0xC2,0x15,0x8E,0x94,0xF6, + + 0x14,0xAB,0xD2,0x66,0xFD,0x64,0x51,0x76,0x43,0x02,0x41,0x14,0x17,0x24,0xF4,0x2B, + + 0x31,0x2B,0x83,0xFA,0x5D,0x15,0x0B,0xE5,0x07,0x55,0x62,0x63,0xD6,0x76,0xD5,0xF3, + + 0x4A,0xF7,0x93,0x67,0x43,0xF4,0x24,0xE1,0x42,0x78,0x3D,0xD7,0xB7,0x7C,0x5E,0x62, + + 0x86,0xDA,0x9C,0x65,0x0F,0xA6,0xD7,0x4D,0x99,0xEA,0x92,0xCC,0xCB,0x94,0x14,0x7C, + + 0x3D,0x34,0xCE,0x9C,0xF3,0xB4,0xC5,0xB2,0xC8,0xC2,0x5F,0xFE,0x35,0xF4,0xB7,0x3C, + + 0x9F,0x12,0x1F,0xBE,0x8D,0xF5,0xCB,0x43,0xAD,0x97,0x54,0x40,0x09,0x94,0xE5,0x7D, + + 0x2F,0xA7,0x85,0x4F,0xE1,0x10,0x5C,0x3F,0xC5,0x80,0x42,0xC1,0x63,0x84,0xDE,0xDA, + + 0x89,0x87,0x51,0x6B,0x38,0xFD,0x24,0xE2,0xCB,0x73,0xF2,0x0C,0x78,0xFD,0x0C,0xDE, + + 0x2E,0xED,0x38,0x24,0xC4,0xFF,0x18,0x5B,0x84,0x7E,0xC1,0x1C,0x5B,0xFD,0x0A,0xAD, + + 0x51,0xF0,0xCE,0xF1,0xD8,0x4B,0x21,0xAC,0x07,0x7D,0xA3,0x95,0x5D,0x9B,0xD0,0x8B, + + 0x2F,0xD0,0x6F,0x21,0x4A,0xB3,0x41,0x4B,0x25,0xDC,0xFF,0xFF,0xFF,0xFF,0x59,0x0A, + + 0xE5,0xAF,0xD0,0x76,0xFB,0x83,0x10,0xD8,0x61,0xBB,0x40,0x5E,0x26,0xCF,0x30,0xEF, + + 0x8E,0x87,0x10,0x54,0x15,0x00,0x38,0x54,0xC6,0x63,0xFE,0x40,0x32,0x65,0x10,0x83, + + 0x00,0x0A,0xBF,0xB4,0x1D,0x84,0x15,0xA5,0xE9,0x4C,0xC5,0xE2,0x39,0x21,0x8F,0x51, + + 0x9D,0x05,0xF1,0x66,0xBC,0x9C,0xF1,0x24,0x43,0x47,0x87,0x94,0x43,0x6B,0xD5,0x33, + + 0x2F,0xAF,0xC6,0xAC,0x12,0x69,0x56,0xF5,0x42,0x44,0x00,0x86,0xBB,0x95,0x37,0x23, + + 0xA0,0x56,0xD7,0xC7,0x62,0x49,0x4D,0x03,0x7B,0x29,0x8E,0xB4,0x5D,0x90,0x39,0x45, + + 0x62,0x77,0xBF,0xE5,0x1F,0x8B,0x51,0x61,0x23,0xE9,0xC9,0xED,0x5F,0xC0,0x32,0x22, + + 0xBF,0xA3,0x90,0x43,0x55,0xA5,0x3F,0x5D,0xC0,0x6D,0x4E,0xF1,0x8A,0x60,0x22,0x5C, + + 0xA9,0xD7,0xD9,0x0C,0x27,0x4B,0x81,0x4A,0x09,0x68,0x90,0xC4,0x53,0x6C,0x0E,0xE2, + + 0xE8,0x0F,0xD9,0x18,0xE5,0x2A,0x62,0x5A,0xAA,0x4F,0x00,0xC3,0xB8,0xEF,0xBC,0x75, + + 0xA9,0x4A,0xDD,0xA0,0xB2,0x81,0x6B,0x4B,0x89,0x0A,0x52,0x6A,0x39,0xCC,0x2B,0x4D, + + 0x2A,0xF6,0x38,0x20,0x9F,0xF8,0x3B,0x04,0x6A,0x4D,0x9B,0xC3,0x54,0xC6,0xDE,0xAA, + + 0xEA,0xA8,0xBC,0xFD,0x71,0xAF,0x0B,0x0B,0x4C,0xCC,0x69,0x9F,0x7C,0x00,0xE5,0x37, + + 0xD6,0xD1,0xF0,0xAF,0x6F,0x80,0x67,0x3A,0xEA,0x10,0xFC,0xD8,0x39,0xC9,0x3B,0x18, + + 0x61,0xC6,0x3C,0xBC,0xB0,0xD1,0x25,0x03,0x4B,0x43,0xB5,0xDD,0xD9,0xAE,0xF2,0x07, + + 0xB4,0x0D,0x58,0x1A,0x51,0x2C,0x73,0x1B,0x76,0x43,0x4C,0xDC,0x93,0xBE,0x2C,0x81, + + 0xFD,0x30,0x8C,0x90,0xF8,0x13,0xD4,0xFC,0x6C,0x56,0xF5,0xE4,0x34,0xD4,0x37,0xD6, + + 0x75,0x31,0x20,0xE7,0x53,0x97,0x64,0x32,0xE1,0x59,0x51,0x45,0xD2,0x31,0x6B,0x47, + + 0xF4,0x32,0x51,0x96,0x96,0xB1,0x35,0xF5,0x83,0xAD,0x41,0x69,0x38,0xF1,0x36,0x60, + + 0xF9,0xF3,0x47,0x65,0x31,0x2C,0x65,0xB3,0xBB,0x48,0xA3,0x04,0x73,0x06,0x3F,0x31, + + 0x6B,0x14,0x39,0xB6,0x04,0x6B,0xA9,0x22,0xC3,0x0B,0x2B,0xC0,0x96,0xF7,0x5B,0xFE, + + 0x53,0xE0,0x0C,0x89,0x4C,0xC1,0x64,0x1A,0x65,0x15,0x4B,0x87,0x06,0x7E,0x63,0xED, + + 0xE7,0x63,0x72,0x60,0xFA,0x55,0x3D,0x83,0x59,0x58,0x62,0x44,0xD6,0x3A,0xDA,0xEF, + + 0xD7,0x55,0x1D,0xA7,0x08,0x28,0xE1,0x19,0x4A,0x15,0x12,0x1D,0xF9,0x3A,0xAE,0xB0, + + 0x20,0x85,0x98,0x29,0xAA,0x32,0x37,0x5C,0xF8,0x5C,0xD6,0x28,0x30,0x7B,0xBC,0x1C, + + 0x02,0x58,0x71,0x63,0xD8,0xBA,0x3B,0xBA,0x63,0xA2,0xA0,0x0C,0xDA,0xD4,0xD8,0x8C, + + 0xAE,0x8B,0xC8,0xFE,0x95,0xBB,0xD1,0x41,0x78,0x91,0xA9,0x08,0x5B,0x1F,0xD0,0x9D, + + 0xAF,0x8A,0x70,0x63,0x44,0x9A,0x9B,0x3D,0x99,0x9E,0x03,0x4C,0x5A,0x3B,0xCB,0x59, + + 0xC3,0x4D,0xBD,0x37,0xCD,0x7E,0x54,0x26,0x83,0x2D,0xCE,0x3D,0x58,0x3C,0xFD,0x3A, + + 0x43,0xAC,0x0E,0xCC,0x66,0x61,0x64,0x49,0x49,0xF2,0x36,0xC1,0x7D,0x65,0x19,0x2B, + + 0xAE,0x9B,0x47,0x33,0x89,0xDE,0x41,0x48,0x01,0x7D,0x1F,0xCD,0x86,0x86,0x31,0xE0, + + 0x5E,0xBC,0x74,0x93,0x26,0xC2,0x0F,0xE8,0xD3,0x5B,0xDF,0x3B,0xF7,0x64,0x52,0x1A, + + 0x04,0x88,0x8B,0x75,0x3E,0xA3,0x10,0xCA,0xE5,0x3F,0x60,0xB9,0xA1,0x69,0x39,0x2B, + + 0x6D,0x8C,0xCE,0xB2,0xFE,0xE2,0x58,0x30,0x31,0xCC,0xA2,0x34,0xC7,0xEB,0xA1,0x02, + + 0x75,0x84,0x1F,0x23,0x19,0x2F,0x11,0xB2,0x41,0xE0,0x91,0xCD,0x3D,0xC1,0xF5,0x12, + + 0xCC,0xA3,0x93,0x84,0xBF,0x0C,0x73,0xCD,0x66,0xCE,0xBF,0xDF,0xDC,0xAE,0xB9,0x6D, + + 0x00,0xFC,0xE8,0x42,0x3F,0x21,0x48,0x11,0x6C,0x65,0xF6,0x5B,0x7F,0x96,0x36,0x6B, + + 0x05,0x2E,0x13,0x71,0xB6,0xDA,0xAC,0x8C,0xBA,0x44,0x07,0x05,0x35,0x8B,0x27,0xB2, + + 0xF6,0xF3,0x21,0xEF,0x0E,0xAB,0x49,0x9C,0x2F,0xC5,0x31,0xCF,0x30,0xEB,0xFA,0x7C, + + 0xEC,0x76,0x40,0x29,0x02,0xBC,0x39,0x8C,0x32,0x44,0x1E,0x37,0x93,0xA5,0x2F,0x0B, + + 0x15,0xA8,0xF6,0xC9,0xF5,0xEB,0x78,0xD1,0xEF,0xC5,0xB0,0xC8,0xD3,0x45,0xB6,0x1B, + + 0x99,0xA9,0xB0,0x1C,0xAE,0x04,0x42,0x48,0xB2,0x8B,0x73,0x4E,0xDD,0xF6,0x2C,0x0A, + + 0xCF,0xAA,0xC5,0xBF,0x75,0xC9,0x49,0xA9,0x4C,0x3B,0xE1,0xBC,0xC3,0x47,0x99,0x1A, + + 0x12,0xAB,0xFF,0x6F,0x1D,0xBD,0x29,0x66,0x4D,0x5A,0x85,0x9A,0xBC,0xEF,0x22,0x59, + + 0x32,0xBD,0xA5,0x28,0xE1,0x01,0xC7,0x94,0xA7,0xBD,0xA3,0xD8,0xB7,0x6F,0x54,0x67, + + 0x6F,0xCD,0x6F,0x7E,0x15,0xBD,0x43,0x82,0xAD,0x8F,0x05,0x0D,0x3D,0x83,0x5D,0x62, + + 0xAF,0x86,0x74,0x08,0x40,0xA6,0x8E,0x87,0xCE,0x75,0x8B,0x45,0xA6,0x23,0x14,0x29, + + 0xE5,0x5E,0xB2,0xC2,0x3A,0xDE,0xAA,0xE3,0x4C,0xC2,0x1C,0x3F,0xD3,0x14,0x96,0x83, + + 0xD5,0x96,0x9C,0x79,0xC1,0xD3,0xF4,0x53,0x31,0xD6,0x86,0x98,0xD7,0x51,0xAF,0xE1, + + 0x36,0x16,0xD2,0x90,0xDC,0x40,0x44,0x36,0x06,0xCC,0xEA,0x8B,0x9E,0x00,0x05,0xFE, + + 0x05,0x99,0x5E,0xF4,0x96,0x43,0x7D,0x34,0x87,0xC2,0xE5,0x54,0xD6,0x2F,0xAD,0x9A, + + 0x27,0x97,0x7E,0x64,0x39,0xBE,0x64,0xB9,0x00,0x2C,0xBB,0x06,0xDD,0x73,0x77,0x31, + + 0x56,0x39,0x49,0x42,0x04,0x80,0x45,0xC6,0xBA,0xA5,0xB5,0x80,0x89,0x59,0x5E,0xEC, + + 0x84,0x34,0x94,0x25,0x11,0x68,0x26,0x51,0x1B,0x97,0xDA,0x14,0x3E,0x5A,0xF9,0x32, + + 0x05,0xD6,0x5C,0x25,0x1A,0xCB,0x52,0xDB,0x7A,0x67,0x69,0xF8,0x55,0x73,0xFA,0x20, + + 0xDB,0x4A,0xF5,0xD2,0xDC,0xF4,0x2C,0x6D,0x46,0x78,0x77,0x0B,0x7F,0x0C,0x35,0x7A, + + 0xE0,0x97,0x5D,0xA9,0x9D,0x47,0x28,0x82,0x4D,0xC8,0x26,0xE1,0x81,0x84,0xA2,0x8A, + + 0xCC,0x66,0x39,0x99,0x9C,0x26,0x46,0x48,0xC1,0xD6,0x22,0x2E,0x96,0xA8,0x5D,0xAC, + + 0x0F,0xD8,0x81,0x2F,0x38,0x1E,0x57,0xA9,0x9C,0x27,0x1E,0xD1,0x69,0x57,0xEF,0xA3, + + 0x49,0x20,0x1B,0xFD,0xC1,0x14,0xAF,0xA5,0x91,0x2F,0x81,0xDB,0xBF,0x54,0x30,0xF6, + + 0xC5,0x4D,0x19,0x4A,0x0C,0xF0,0xA2,0xAD,0xA4,0x45,0xDE,0x02,0xC0,0x87,0x54,0x29, + + 0x0D,0x32,0x02,0x41,0x3E,0x7D,0xF9,0x12,0xE3,0x10,0x5B,0x7A,0x62,0x5F,0x21,0xE2, + + 0x2E,0x09,0xDF,0x30,0x57,0xFD,0x09,0xD6,0x85,0xDD,0xB7,0x16,0x6C,0x65,0x3B,0x33, + + 0x06,0xDD,0x2F,0x77,0x3A,0x12,0x3D,0x8A,0xD3,0xD4,0x24,0x50,0x80,0xFD,0xC0,0x28, + + 0xFB,0x42,0x3A,0xFF,0x6F,0x00,0x30,0xF1,0xE1,0xCA,0x00,0x3B,0x6C,0x22,0x58,0x29, + + 0x53,0x43,0xF6,0x39,0x93,0x29,0x2A,0xCF,0x72,0x61,0xD8,0x56,0xBA,0xF0,0x4B,0x62, + + 0x83,0x83,0x41,0x45,0xC7,0xAF,0x96,0xD0,0x63,0x12,0x9F,0x15,0x52,0x17,0x59,0x11, + + 0xB2,0x9F,0x80,0x67,0x32,0x61,0xA1,0xF6,0x1F,0xEE,0x2D,0x57,0x3A,0xD2,0x90,0xD2, + + 0x0A,0x0E,0x74,0x26,0xED,0x80,0x2E,0x66,0xA3,0xC7,0x6F,0xF7,0x66,0xEF,0x76,0x69, + + 0x05,0x04,0x6C,0xD0,0x3B,0xD4,0xCD,0x6F,0x33,0x43,0xD0,0x01,0xBA,0xBF,0x89,0xB0, + + 0x21,0x46,0xD2,0x43,0x5A,0x57,0xFC,0x5E,0x46,0xE9,0xF1,0x8F,0xA7,0x70,0x1F,0x33, + + 0x74,0x62,0xCF,0x7D,0x7A,0x36,0x79,0xB5,0x62,0xCB,0x19,0x54,0x54,0x09,0xBA,0xF7, + + 0x87,0x13,0x89,0x24,0x73,0x8B,0x6A,0x58,0xC8,0x57,0xC8,0xD3,0xB3,0x6B,0x2A,0xEB, + + 0xAA,0x1B,0xF5,0xE4,0xCB,0xD6,0x1C,0xC5,0x41,0x0B,0xE4,0x99,0xB8,0x56,0x6F,0x6F, + + 0x56,0x81,0x82,0xE2,0xAF,0x26,0x49,0x2B,0x5A,0x42,0xED,0x8C,0x33,0x29,0xB3,0x69, + + 0x09,0xAD,0x4B,0x1C,0xEB,0x90,0x96,0x67,0xE9,0x9B,0xC1,0x97,0xE1,0x29,0x7A,0x79, + + 0x20,0xF3,0xB0,0x49,0xD5,0x8C,0x18,0x75,0xA1,0x5D,0x6D,0xFF,0x6A,0xE7,0x14,0xBA, + + 0x0F,0xA0,0xA8,0x41,0x18,0x6D,0xCB,0x42,0x73,0x0F,0xD2,0x6D,0xB2,0x7C,0x7D,0xE9, + + 0xFC,0xD1,0x55,0x3E,0xF6,0x42,0x93,0x49,0xFB,0xFB,0xF3,0x87,0xAF,0x78,0x58,0xDD, + + 0xAB,0xAC,0xE7,0x90,0xBF,0x22,0xCC,0xE4,0xCD,0x4E,0x99,0x8E,0x8C,0x2D,0x1F,0x62, + + 0x13,0xD0,0xCC,0x16,0xD9,0x01,0x74,0xE1,0xEC,0x5D,0x2F,0x37,0x52,0x7A,0x72,0xEC, + + 0x84,0x7F,0xB6,0x76,0xB3,0x39,0x54,0x23,0xC0,0xFE,0xC8,0xBF,0x05,0xCD,0xBD,0xBC, + + 0x07,0x9F,0xFD,0x07,0xB1,0xD5,0x1F,0xA0,0x43,0x54,0x17,0xBB,0xD2,0x86,0x6F,0xE1, + + 0xA0,0xC3,0x78,0x77,0x33,0x3B,0x8C,0xC2,0xD9,0x3F,0xA0,0xEE,0x0D,0xC2,0x57,0x68, + + 0x9E,0xE5,0xD2,0xA6,0x5A,0x39,0x0C,0x21,0x64,0x55,0x45,0x74,0x99,0x7D,0xFB,0xE9, + + 0x25,0xF4,0x6B,0xF9,0xE7,0x64,0x64,0x0F,0x65,0x54,0x34,0xB3,0x9A,0x5C,0x72,0x64, + + 0x52,0x55,0x3A,0x41,0x96,0xED,0x4C,0x83,0x15,0x33,0xEB,0xC8,0xF4,0x57,0x2B,0x21, + + 0xD7,0xB6,0xEA,0xFC,0x63,0x26,0x87,0x75,0xC3,0x28,0x1D,0xD4,0x4C,0x7D,0xBE,0xB8, + + 0xFA,0x57,0x42,0xEE,0x7B,0xC6,0xD2,0xC8,0x66,0xF5,0x56,0x15,0x3C,0x14,0x0A,0xFE, + + 0x69,0x56,0xF6,0x1E,0x30,0x5D,0x1A,0x4B,0x55,0xF4,0xF8,0x18,0x7A,0xB9,0x59,0xE1, + + 0xA0,0x01,0xFF,0xEF,0xFB,0xCD,0x86,0xD8,0xD0,0xD0,0x28,0x3E,0xD6,0xA7,0x2F,0x9C, + + 0x48,0xB4,0xB7,0x4D,0x56,0x34,0x0A,0x69,0xE1,0xA4,0x3C,0x19,0x25,0x18,0xD3,0x4C, + + 0x0A,0x9C,0x06,0xED,0xB9,0x91,0x1E,0x68,0x6C,0x5D,0xD0,0x9F,0x46,0xFC,0x74,0x2B, + + 0x47,0x96,0xC6,0xD8,0x92,0x12,0x66,0x07,0x6D,0x5C,0x8E,0x8B,0x77,0xF0,0x1D,0xC8, + + 0x09,0x5F,0x0C,0x49,0x92,0x61,0x9E,0x8B,0x1D,0x3B,0xA9,0x8C,0x13,0xA4,0x83,0xE8, + + 0xC7,0x00,0xF1,0x00,0xBD,0x1E,0xA8,0x7D,0xCB,0x20,0xA1,0x21,0x12,0x76,0x58,0x42, + + 0x44,0xCE,0xA1,0xFE,0x14,0x5B,0x32,0x50,0x77,0xE0,0xA0,0xE2,0xF5,0xE9,0x62,0x8A, + + 0x85,0x37,0x20,0x0B,0xE8,0x79,0x58,0xF2,0x8B,0xCC,0x80,0xD6,0x3B,0x6A,0x62,0x01, + + 0xCC,0xC0,0xA1,0xFB,0x15,0xE0,0xC9,0x07,0x18,0xF3,0xE6,0xA3,0xF4,0x4C,0xF6,0x3B, + + 0xB6,0xA1,0xB1,0x96,0xDD,0xD2,0x4B,0x1D,0xD1,0xC5,0x2A,0x1E,0xD3,0xE2,0x58,0xB8, + + 0xAA,0x89,0x1B,0x61,0xB7,0x5B,0x69,0x1C,0xE5,0xA1,0xE4,0xA4,0xDB,0x49,0xB8,0xEA, + + 0xF4,0xEB,0xA1,0x72,0x8A,0x58,0xB1,0x49,0x37,0x50,0xB0,0x67,0xBE,0xD4,0x77,0xE6, + + 0x7D,0x2B,0x54,0x6F,0x90,0x5F,0xCE,0x81,0xC0,0xC7,0x3E,0xE3,0xFE,0x99,0x56,0xCC, + + 0x76,0x51,0x44,0x38,0x1A,0x01,0xEC,0xF7,0xBB,0x35,0xFB,0x84,0x88,0x4A,0x9A,0xEA, + + 0x44,0x8E,0x9C,0x23,0x91,0x2E,0x7A,0xB8,0xED,0x37,0xB0,0x4C,0x7F,0x39,0x14,0x66, + + 0xD1,0x86,0xA6,0x69,0x7E,0x36,0xB9,0xB8,0x44,0xAF,0xA9,0xBA,0x27,0x29,0x0D,0xF0, + + 0x2D,0x75,0x27,0x4F,0x13,0xAC,0x87,0x49,0xB1,0xC3,0x9C,0x44,0x05,0x1F,0x19,0xE4, + + 0x0F,0x27,0xD3,0x1D,0x6A,0xAD,0x03,0xEB,0x36,0xC4,0x17,0x40,0x17,0xC8,0x6A,0x53, + + 0xC6,0x3D,0xAD,0x0E,0x1A,0x81,0xB2,0x4A,0x59,0x11,0xEA,0xEA,0x76,0xA2,0x3E,0x60, + + 0x2D,0x78,0x93,0x38,0x3C,0xCD,0x20,0x1E,0x27,0x2C,0xA0,0x7C,0xEC,0x34,0x32,0x64, + + 0xFA,0x3B,0x99,0xBF,0x0E,0xDF,0x0B,0x4C,0x33,0xC1,0x1F,0x10,0x14,0xBF,0x78,0x59, + + 0x93,0x2B,0x6E,0x5D,0x6A,0xD2,0x02,0x1D,0xAE,0xEF,0x9A,0x3F,0x97,0x42,0x3D,0x06, + + 0x67,0xBD,0x9E,0x79,0x5F,0x54,0x0A,0x8E,0x27,0x0F,0x91,0x9B,0x6C,0xC7,0x68,0xE0, + + 0x16,0xB1,0xCE,0xF4,0xD7,0x4E,0x2A,0xD0,0x9A,0x78,0xC6,0x56,0x79,0x5C,0x6D,0x86, + + 0x86,0x00,0xA1,0x9A,0x36,0xB8,0x15,0xBE,0x0D,0xE3,0x32,0x11,0x1D,0xD1,0xD5,0x7B, + + 0x6D,0x5E,0xD3,0x13,0xFC,0x3C,0xAC,0x63,0xE1,0x7C,0xED,0x45,0xD4,0x1A,0xDC,0x22, + + 0x22,0xB9,0x0C,0x81,0xCB,0x12,0x7C,0x43,0x9A,0x35,0xA4,0x91,0x7A,0x79,0x14,0xC6, + + 0xC7,0x14,0x77,0x5C,0x34,0xF5,0x02,0xDA,0x61,0xD4,0x69,0x1C,0x96,0xBA,0xA1,0xB0, + + 0xCA,0x3D,0xF4,0x37,0x36,0xA9,0xB5,0xBE,0xEC,0x5B,0x8B,0x87,0x95,0xE2,0x40,0x20, + + 0x23,0x1A,0xD1,0x34,0x5E,0xC6,0xA7,0x91,0x10,0xB2,0x00,0xE6,0xEC,0xDA,0x59,0x77, + + 0x24,0xDA,0xC6,0x4E,0xF6,0x15,0xA3,0xD9,0x58,0x52,0x5A,0xDD,0x56,0x7E,0x0E,0xBB, + + 0x1E,0xBB,0xCC,0x7C,0xBF,0xB1,0x00,0x97,0x4E,0x99,0xBA,0x7E,0x2E,0x54,0x2F,0x57, + + 0x4D,0x65,0x36,0x6D,0x3E,0xB0,0x33,0xF6,0x07,0x8B,0xA7,0xDC,0xDE,0x7C,0x97,0x7B, + + 0xF3,0x9D,0xA6,0x6F,0xB5,0xB4,0x0B,0xB9,0xDE,0x7F,0x6B,0x2D,0xDD,0x56,0x34,0x84, + + 0xD2,0xD8,0x26,0xEF,0xB9,0x11,0x4E,0x15,0xA6,0x8D,0xE1,0xE3,0xD7,0x4D,0x50,0xEF, + + 0x44,0x92,0xA6,0x2B,0xD6,0x94,0xBE,0xDB,0x13,0x9F,0x04,0x16,0x7B,0xB2,0x19,0xE2, + + 0x72,0xCF,0xFF,0x4B,0x96,0xE1,0xD7,0xF8,0xD6,0xBA,0x67,0x9D,0xCD,0x65,0xED,0xE9, + + 0xCF,0xFE,0x2F,0xFE,0x38,0xD3,0x6F,0x44,0x4E,0x00,0xA6,0x72,0x58,0xBE,0x3A,0xF3, + + 0x38,0xAF,0x9E,0x77,0x20,0xAA,0x5A,0x3D,0x51,0xEF,0x52,0x84,0x18,0x02,0x1B,0xFF, + + 0xDC,0x7C,0x1E,0x90,0x58,0xA0,0x7E,0x1C,0xA8,0x70,0xEA,0x31,0x5D,0x0F,0x90,0xF2, + + 0xBC,0xAD,0xF9,0x65,0xC7,0xD7,0x00,0xE6,0x29,0x53,0xF1,0x7A,0x73,0x6F,0xA6,0x95, + + 0xC8,0x7A,0xA4,0x6A,0x08,0xA8,0x03,0x33,0x72,0xEE,0xB9,0x34,0x5C,0x6B,0x38,0xC2, + + 0x07,0x20,0xFB,0x0E,0x02,0x65,0xAF,0x13,0x72,0x06,0xA6,0x1B,0x61,0x24,0x28,0x14, + + 0x83,0x08,0x67,0xB6,0xBF,0xD8,0x41,0x2A,0xB6,0xD9,0x6C,0x0B,0xF0,0x24,0x79,0x11, + + 0x8A,0x09,0x79,0xBA,0x82,0x6B,0x45,0xC3,0xC4,0x07,0x41,0x9A,0x27,0x69,0x43,0x53, + + 0x20,0x1C,0xB1,0x71,0xF0,0xEB,0x76,0x0E,0x1A,0x9C,0xF4,0x0E,0x4A,0x1A,0xBD,0xCF, + + 0xCA,0x68,0x4F,0x25,0x1E,0x29,0x84,0x58,0xC8,0x5E,0x12,0x6D,0x6C,0x24,0x9C,0xEB, + + 0x39,0x29,0xD0,0xFE,0x71,0x38,0x0F,0x2B,0x79,0x18,0x3C,0x4A,0x78,0x29,0x0B,0x1C, + + 0x69,0xA5,0x81,0xFD,0x67,0x25,0x1B,0x3D,0x00,0xAB,0x92,0x6B,0x90,0x71,0x68,0x9D, + + 0xFB,0xFF,0xF5,0x35,0xDA,0x24,0xDB,0x81,0x15,0x36,0x97,0x11,0xFB,0x69,0x06,0x2E, + + 0xE8,0x2C,0xD4,0xED,0xF1,0x68,0x52,0x1B,0x72,0xED,0x06,0xEA,0x26,0xD0,0x8A,0x18, + + 0x5C,0x41,0x6E,0x3E,0xE4,0x6C,0x4B,0xFC,0x63,0x18,0x82,0x78,0xD3,0xCE,0xC1,0x3B, + + 0x71,0xF1,0xF9,0xFD,0x57,0x81,0xCF,0x96,0x3F,0xED,0x6C,0x36,0x23,0x57,0x8F,0x7D, + + 0x62,0x56,0x12,0x72,0xA4,0x2D,0xB7,0xE2,0x3E,0xD9,0x1B,0xC5,0x07,0xD2,0x3A,0xB5, + + 0x02,0xFD,0x94,0x07,0x36,0x11,0x15,0xD3,0x10,0x1F,0xEC,0x4C,0xF4,0xBD,0x72,0xB8, + + 0xAE,0xBC,0x4C,0xB4,0x62,0xEC,0x46,0xD4,0x09,0xB0,0x74,0xB0,0xF4,0xF1,0x03,0xF3, + + 0x4B,0xF3,0x18,0x7A,0x59,0xD3,0x85,0xD3,0x0B,0xB3,0xF5,0x05,0xAC,0x7D,0x1C,0x03, + + 0x5E,0xBE,0xF5,0xB2,0x4C,0x3C,0x64,0xD7,0x0A,0x42,0xFD,0xF1,0xB6,0xF8,0x56,0x3E, + + 0xDD,0x99,0xBA,0xC3,0x93,0x75,0x32,0xC9,0x83,0xF2,0xEA,0x44,0xB8,0x37,0xD0,0x28, + + 0x23,0x57,0xAC,0x95,0xB7,0x38,0xE1,0x63,0x5B,0xD8,0x6F,0x50,0x40,0x35,0x17,0x3E, + + 0x55,0xA3,0xA5,0x85,0x9C,0x39,0x44,0x21,0xFA,0x3A,0xAB,0x41,0x1B,0x15,0x49,0x62, + + 0x77,0x06,0x5D,0xAA,0xCB,0x98,0x3B,0xD9,0xE2,0x97,0x76,0xB2,0xFD,0xAB,0x90,0xF8, + + 0xA8,0x9E,0x46,0xAD,0x24,0xCD,0x5C,0xB5,0x49,0xE9,0x12,0x4E,0xFA,0x30,0x98,0x85, + + 0x42,0x08,0x88,0x44,0xB9,0x09,0x54,0xA5,0x48,0x7B,0x86,0x4C,0x06,0x76,0xA0,0xC9, + + 0xEC,0xB1,0x11,0x09,0xBB,0xA3,0x51,0x81,0x01,0x4B,0x5E,0x4F,0x7A,0x32,0xF0,0xB9, + + 0x95,0xBA,0xD5,0x50,0x81,0x79,0x4F,0x35,0xED,0x7A,0x2B,0x4D,0x06,0x74,0xE1,0xE1, + + 0xCB,0x43,0x66,0xBE,0x4C,0x93,0x36,0xA3,0x65,0x51,0x12,0x26,0xC1,0xD3,0x06,0x08, + + 0x9E,0xBC,0x5E,0x23,0xDA,0x72,0xAB,0x9A,0x2B,0x52,0x8D,0xB3,0x7D,0xEE,0xFE,0x8E, + + 0x60,0x77,0x63,0xBF,0x34,0xA1,0x55,0x0B,0x68,0x62,0x81,0xF3,0x98,0x3C,0xD3,0x26, + + 0x4A,0x7C,0xCE,0xA2,0x1C,0x7E,0xCF,0x1B,0x69,0x17,0xEE,0x0E,0xD9,0x1A,0x9D,0x86, + + 0x4C,0x83,0xF8,0x43,0xDC,0x41,0xF0,0x33,0x66,0x6D,0x37,0xA4,0x89,0xEF,0x10,0xE1, + + 0x35,0xED,0xE0,0xB2,0xFC,0x40,0x29,0xD0,0x59,0xBC,0x54,0x34,0x5D,0x8D,0x19,0xF0, + + 0xE8,0xE7,0x79,0x83,0xA2,0x87,0xA7,0xC1,0x68,0x6F,0x89,0x95,0xD8,0x82,0x4F,0x2B, + + 0x6C,0xF2,0x69,0x37,0x19,0xE1,0x23,0x2F,0xE4,0x83,0xF1,0xCF,0x50,0xE1,0x38,0x47, + + 0x00,0x66,0xBE,0xF7,0x12,0x1F,0x38,0x63,0x5A,0x64,0x30,0x77,0x74,0xE9,0xC0,0x42, + + 0x23,0x84,0x17,0x72,0xE3,0xE6,0xF8,0x63,0x77,0x95,0x86,0xD7,0xA3,0xE6,0x19,0xC7, + + 0x85,0xD3,0xE1,0xBF,0x37,0x2B,0x64,0x10,0xFE,0xCD,0x8F,0xC7,0x7A,0xEB,0x7D,0x57, + + 0x8E,0x19,0xEF,0xF3,0xF4,0x70,0x75,0xA3,0x2E,0xAE,0xA0,0x72,0x02,0x8B,0x38,0x08, + + 0xBF,0x25,0xB6,0x63,0xE3,0x05,0x36,0x26,0x7F,0xC6,0xEB,0xB6,0xF9,0xE1,0x62,0x0E, + + 0xC5,0x68,0x11,0xFC,0xB1,0x54,0x04,0x16,0xEA,0xD2,0x52,0x26,0x6E,0xCD,0xB5,0x7B, + + 0x0C,0x9C,0x35,0x8B,0xBC,0xF3,0x0D,0x02,0x6B,0xDA,0xAE,0x8F,0xC0,0xE8,0xBE,0x08, + + 0xBD,0x1A,0xD3,0x6C,0xF1,0xE9,0xDD,0x48,0xF1,0x84,0x01,0xBD,0xFF,0xDB,0x72,0x6A, + + 0x0A,0xA4,0x71,0xBD,0x9A,0x21,0x64,0x08,0x26,0xC1,0x36,0x30,0x50,0xF2,0x66,0x80, + + 0xEE,0x22,0x93,0x6F,0x2B,0x02,0x24,0x52,0x4F,0x62,0x2A,0x39,0xB6,0xCE,0x08,0xEB, + + 0xA2,0xCE,0xB1,0x1C,0xBA,0x25,0x2D,0x89,0x86,0x4A,0x8E,0x9C,0xF0,0x3A,0xFD,0xB4, + + 0x66,0xC6,0x4B,0x2D,0xFD,0x43,0x6E,0x3C,0x26,0x2E,0x9D,0xDA,0x34,0x8C,0x7E,0x90, + + 0x58,0x3F,0xB4,0x96,0xDD,0x51,0x2A,0x9D,0x08,0x92,0xD4,0xE2,0x7B,0xFD,0x52,0x95, + + 0x84,0x2E,0x3A,0x7C,0xDC,0xA0,0xB9,0xA3,0x36,0xF0,0xB0,0xB1,0xD4,0x79,0x85,0xF1, + + 0xC6,0xEE,0xDD,0x77,0x91,0x13,0xBA,0x22,0xE2,0xF3,0xBF,0xA6,0x57,0xF4,0x9E,0xA6, + + 0x59,0x82,0x55,0x86,0xD9,0x1E,0x23,0x43,0x57,0x72,0xFD,0x55,0x77,0xFB,0xA4,0xE3, + + 0x92,0xD6,0x9C,0x44,0x14,0xC1,0xB8,0x80,0x25,0x0B,0xCC,0x15,0x5C,0x98,0xEC,0xBC, + + 0xA5,0xB1,0xD4,0xF2,0xDC,0xF1,0x04,0xD6,0xC6,0x5F,0x9A,0x52,0x74,0x7D,0xF5,0xAB, + + 0xCD,0x99,0xDD,0x97,0xF6,0xB9,0x0D,0x81,0xA5,0x69,0x93,0x42,0x1F,0xF5,0x45,0x57, + + 0xEF,0x94,0xD7,0x67,0x03,0x18,0x02,0x11,0x46,0x5F,0xAD,0xCA,0xB3,0x4A,0x7D,0x8A, + + 0x2A,0xB8,0x30,0xC9,0xFE,0x48,0xA0,0x2E,0x4C,0x92,0x72,0xCC,0x3D,0xB8,0x64,0x78, + + 0xBC,0x80,0x3E,0xBE,0x7D,0xF9,0x28,0x8F,0x6B,0xD8,0xC6,0xDC,0x3C,0xF8,0x51,0xF5, + + 0x6D,0x85,0xEF,0x8B,0xB4,0xA6,0x0D,0x49,0x8F,0x46,0xCF,0xCD,0xBD,0x7A,0x51,0xAE, + + 0x50,0x17,0xA3,0xB3,0x9F,0xAB,0xC9,0xC9,0x4E,0xFA,0xC7,0xDD,0xBC,0xF3,0x5E,0x30, + + 0x82,0x91,0x42,0xB4,0x9D,0xFD,0x72,0x08,0x4A,0xD1,0x5A,0x7C,0x7A,0xF6,0x26,0xDE, + + 0x67,0x7C,0xC0,0x2D,0xB3,0xC0,0x74,0xFE,0xCC,0x9C,0xC1,0x39,0xBD,0x8D,0x8B,0x54, + + 0x5F,0x48,0x99,0xC9,0x5F,0x3D,0x3D,0x15,0x4D,0xD3,0xF2,0xCF,0x82,0x2F,0x51,0xF2, + + 0xC7,0x92,0x97,0xFB,0xB9,0x9F,0x47,0x07,0xEF,0xC3,0xB7,0xD7,0xF9,0x6C,0x7B,0x40, + + 0x26,0x42,0x90,0x07,0xE8,0x64,0xB7,0xB7,0x2B,0xE6,0x24,0x57,0x36,0x6F,0x76,0x16, + + 0x2F,0xA7,0xD1,0x02,0xB4,0x8E,0x22,0xC3,0xA5,0xEE,0x71,0x52,0x70,0x21,0x52,0x4E, + + 0x77,0x7F,0xFA,0xA5,0xEC,0xD2,0x91,0xD0,0x02,0x02,0x01,0x62,0xF4,0x79,0x31,0xE2, + + 0x0D,0xFE,0xDF,0x1D,0x34,0x8C,0xAF,0xC0,0x29,0x13,0xB5,0xA5,0x38,0xF9,0x3B,0x07, + + 0xFB,0xF2,0x55,0x34,0x92,0x8B,0x08,0x68,0x21,0xCA,0xEA,0xD4,0xEA,0x26,0x73,0x20, + + 0x83,0x13,0xE8,0xC7,0xB0,0x2D,0x62,0x92,0x1F,0xB2,0x01,0x27,0x68,0x91,0xFA,0x31, + + 0x02,0x19,0xB9,0xCD,0x37,0xAF,0xC6,0xE5,0xE2,0x58,0x07,0x5B,0xED,0x46,0x01,0x45, + + 0x62,0x1C,0x48,0x26,0xAF,0x68,0xDE,0x1E,0xC5,0xE5,0x19,0xDD,0x36,0x25,0x14,0x0E, + + 0xF7,0xD5,0x50,0x88,0x38,0xDC,0x6C,0x1A,0xCD,0x5E,0x8A,0x28,0xD1,0xEA,0x3B,0xE6, + + 0xA5,0x04,0xAA,0xDE,0xB8,0x82,0x44,0x37,0x5B,0x07,0x47,0xB8,0x2B,0xC6,0x55,0x0E, + + 0x8E,0x99,0xF8,0x36,0x1C,0x2C,0x30,0x33,0x10,0xFE,0xCA,0x36,0x3D,0x61,0xA7,0x8A, + + 0xA3,0xD6,0xF3,0x9D,0x79,0xD4,0x7A,0x1D,0x1D,0x8D,0x64,0xD5,0x4B,0x26,0xAF,0xAE, + + 0x1A,0x43,0xC3,0x3F,0x6A,0x63,0x26,0xEC,0x7D,0x1C,0x52,0x90,0xA1,0x02,0x2C,0x91, + + 0x89,0xC1,0x5C,0x5E,0x95,0x41,0xD5,0xCC,0xC9,0x81,0xA2,0x3C,0x43,0x2F,0xD3,0x0E, + + 0x63,0xB4,0xE5,0x78,0xAA,0x8E,0x93,0xC9,0x03,0x0C,0x6C,0xF6,0x2F,0xC8,0xA7,0xBB, + + 0x43,0xB5,0xF5,0x90,0x51,0xE6,0xB7,0x1B,0xF8,0xC9,0x8A,0x0B,0x2E,0x9B,0x7A,0x13, + + 0x4B,0x96,0xBA,0x25,0x51,0x34,0xB7,0x96,0xBC,0xB5,0xD7,0x63,0x43,0x5E,0xA8,0x8E, + + 0xF7,0xE5,0x2C,0x8E,0xBD,0xBC,0x2E,0xB1,0x45,0x85,0xCF,0x2F,0x72,0x53,0x85,0xBE, + + 0x24,0xC7,0xE4,0xC5,0xA4,0x86,0x4B,0x92,0xEC,0xF9,0x2D,0x3A,0x05,0x30,0xEA,0x60, + + 0x7B,0x53,0xF5,0xB2,0x12,0x5D,0xFF,0xAE,0x2F,0xF8,0xC4,0x22,0x54,0x2C,0x7E,0x33, + + 0x71,0x6F,0xFC,0xF4,0x12,0x9B,0x14,0x1F,0x97,0xD7,0x8D,0x09,0x97,0x70,0x97,0xFF, + + 0x25,0x9F,0x0C,0x7C,0xA4,0xB4,0x07,0xF0,0x5C,0x64,0x70,0x1C,0x4C,0xB3,0xC2,0x3A, + + 0xDD,0xC7,0x65,0xB7,0xD0,0x03,0xA0,0x1F,0x1A,0x3F,0xD4,0x0D,0xB2,0x3B,0x38,0xA2, + + 0xB8,0x1E,0xC5,0x26,0x37,0xBA,0x03,0xA1,0xDF,0x15,0x9F,0xE6,0xCE,0x78,0x58,0x12, + + 0x2C,0xCC,0x16,0xFF,0x1A,0xC9,0x70,0xAC,0x03,0xDE,0x97,0xCA,0xC7,0x89,0x38,0x9C, + + 0x42,0x9C,0x75,0x5B,0xC4,0x9F,0xFC,0x4B,0xA7,0xF2,0xBE,0x2E,0xF9,0x73,0xB5,0x96, + + 0x44,0xB1,0x78,0xFE,0xC4,0xE9,0x97,0x8D,0x09,0xF5,0x2E,0x11,0x75,0xF3,0x8F,0xDF, + + 0x3B,0x4F,0x5D,0xE3,0x73,0x98,0x79,0xB1,0x02,0xDD,0x18,0x55,0x2A,0x36,0xD4,0x25, + + 0x76,0x91,0x94,0xE7,0x3C,0xDF,0x5D,0x39,0x83,0x35,0xE4,0x16,0x8E,0x25,0xFB,0x5C, + + 0x68,0x2A,0x9F,0xC7,0x9A,0xA2,0x64,0x49,0x13,0xF2,0x4C,0x8F,0x2A,0xEC,0x38,0x34, + + 0x40,0xC5,0x74,0xBE,0xAF,0x7C,0x41,0xD5,0x01,0x8F,0xE2,0x80,0x43,0x77,0x8F,0xB1, + + 0xAB,0x5D,0x7B,0xBF,0x36,0xC9,0x48,0x3E,0x02,0x0E,0xA1,0xFB,0x1A,0xDC,0x46,0xA2, + + 0x07,0xA2,0x13,0xE4,0x41,0xAB,0x97,0xB5,0xA5,0x6F,0x27,0xAE,0xF1,0x33,0x53,0x52, + + 0x11,0xFC,0x04,0x65,0x37,0x57,0xA8,0xC1,0x97,0x1D,0x98,0xF6,0x09,0xFA,0x01,0x12, + + 0x82,0x11,0x25,0xFB,0x98,0x5D,0x57,0xD2,0x06,0x82,0x1D,0x57,0x54,0x64,0x3E,0xE8, + + 0x05,0x23,0x12,0x67,0x15,0xBC,0x80,0x6D,0x18,0xBE,0x54,0x51,0xBD,0xFA,0x2D,0xBE, + + 0xD3,0x7F,0xBA,0x44,0xA5,0x0D,0x8A,0x46,0xA7,0x6B,0x88,0xE2,0x52,0x23,0x17,0xD6, + + 0x44,0xB2,0xB1,0xF4,0xFE,0xB4,0xB1,0x70,0xAC,0xBF,0x54,0xE4,0x0B,0xED,0xAD,0xAE, + + 0xDA,0x0B,0x28,0xCD,0x95,0x06,0x66,0x90,0xB2,0x6D,0xF7,0x2B,0x3F,0xBE,0x57,0x9A, + + 0xA4,0x85,0x11,0x73,0x76,0x08,0x07,0x46,0x2E,0x26,0xDB,0x53,0x3C,0x83,0x9F,0x33, + + 0xF7,0xA1,0x9C,0x33,0x7D,0xAC,0x9D,0x34,0xA8,0x3C,0x4A,0x48,0xD3,0x6E,0xBA,0x09, + + 0x67,0x4F,0x7A,0x8D,0x7F,0x04,0x9D,0xA5,0xA6,0x7F,0xA9,0x1A,0x2E,0xE9,0xC1,0x54, + + 0x75,0x76,0xC2,0xCF,0x8A,0x07,0x85,0x0F,0x18,0x1C,0xB5,0x6F,0x87,0xA6,0x0D,0xAF, + + 0x43,0x06,0x7F,0x6F,0x1D,0xB4,0x65,0xA1,0xC9,0x8A,0xE4,0x2F,0xDB,0xAB,0x5C,0x92, + + 0x2D,0x1C,0x6B,0x5D,0x0B,0xD4,0xDE,0xF9,0x6B,0xC6,0xCA,0x94,0xF2,0xE1,0xEC,0xB2, + + 0xE1,0xC2,0xE2,0x6F,0x02,0x02,0x42,0x85,0xA6,0x7C,0x6A,0x60,0x42,0x19,0x3A,0xD9, + + 0x6B,0x85,0xB3,0x43,0xDA,0x25,0xE9,0x18,0xBA,0x6F,0x8C,0xEB,0xD3,0x44,0x6A,0xBD, + + 0x0A,0xFD,0x66,0x2C,0x82,0x0E,0xAF,0x85,0x32,0x4E,0xF0,0x5F,0xF5,0x4F,0x07,0x8D, + + 0xFC,0xD1,0xAC,0xA3,0xD5,0x16,0xA4,0xBC,0x18,0x24,0xA2,0xCE,0xD3,0xBD,0x16,0x61, + + 0xEF,0x3A,0x78,0x68,0xB8,0x1C,0xEC,0x30,0xE5,0xFF,0x29,0xF0,0x05,0xB0,0x86,0x15, + + 0x78,0x74,0xF7,0x78,0x55,0x14,0x65,0xB9,0xCE,0x66,0x59,0x35,0xA2,0xFA,0x4F,0x97, + + 0x4E,0x45,0x7D,0x08,0x40,0x3A,0x05,0x42,0x46,0xC3,0x7D,0x0F,0x1E,0x0C,0xB1,0x5C, + + 0x20,0x87,0xDF,0x58,0x35,0xE4,0x12,0x2F,0x8F,0x8E,0x79,0x15,0xFA,0xF9,0xAC,0xF6, + + 0x8A,0xD7,0xCB,0xA8,0x94,0xD0,0x69,0x82,0xE7,0xC3,0x53,0x99,0xAA,0x7E,0x65,0x47, + + 0xFF,0x95,0xDB,0x8B,0xB0,0xA5,0x6F,0xE1,0x55,0x7B,0x08,0x15,0xD7,0x14,0x25,0x8A, + + 0xA1,0x24,0x52,0x35,0x5E,0xCF,0x75,0xFE,0x2F,0xE6,0x02,0xCB,0x1C,0xB3,0x58,0x15, + + 0x47,0x2E,0x86,0x64,0xD5,0x9B,0x04,0x59,0x0E,0x7C,0xED,0xAE,0x07,0xB8,0x15,0xC4, + + 0xF0,0x24,0xAD,0x85,0xB9,0x2D,0x86,0x49,0x07,0xC9,0xE7,0x7D,0xD8,0x8F,0x26,0x78, + + 0x7E,0x46,0xBD,0x8D,0x2E,0xB0,0x4F,0x0E,0xDF,0x5E,0x77,0xAB,0xAE,0x96,0x80,0xBF, + + 0x79,0x5D,0x0B,0xEC,0xD7,0xB4,0x87,0x48,0x8B,0x99,0xC0,0x37,0x58,0xAD,0xDD,0xEA, + + 0x38,0xFC,0xF0,0xAC,0x5E,0xB5,0xBF,0xF9,0x5A,0xA6,0xCC,0x5E,0xB7,0x53,0x91,0x2A, + + 0x9D,0x6C,0xDB,0x5A,0x0D,0xE3,0x86,0x3D,0x5C,0x56,0xB4,0xA3,0x65,0x6D,0xA7,0x3A, + + 0xB0,0x13,0x99,0xC9,0x5F,0x3D,0x2E,0x49,0x07,0x3F,0x53,0x8D,0x05,0xBC,0xAF,0xFB, + + 0xA8,0x92,0xFD,0xDD,0x54,0xFB,0xC7,0x68,0x9F,0x72,0x7C,0xFD,0x30,0xBE,0x3A,0xF3, + + 0x6C,0x42,0x2F,0xE6,0xBC,0xDD,0x86,0x67,0x82,0xB0,0xED,0xA0,0x70,0x6D,0x6A,0x11, + + 0x00,0x2A,0x89,0xE4,0x19,0x2E,0x88,0x43,0x31,0xE0,0x58,0x14,0x11,0x6C,0x11,0x01, + + 0x21,0x6C,0xF9,0x21,0x12,0x21,0x59,0x25,0xC8,0x22,0xCB,0x19,0xB8,0x13,0xBE,0x24, + + 0x87,0xAB,0xE9,0xB5,0xC5,0x2C,0x8A,0x00,0x60,0xC2,0xDB,0xD7,0x99,0xB2,0x41,0x3B, + + 0xA5,0xF4,0x53,0x7A,0x6A,0x66,0xA7,0x93,0x74,0xE9,0x57,0xE6,0xCB,0x5B,0x2D,0xD4, + + 0x71,0x58,0x24,0x70,0xEF,0x74,0x0D,0x03,0x71,0xE6,0xDF,0x32,0x23,0x7E,0xFE,0x31, + + 0xD6,0x0D,0x93,0x26,0x91,0x66,0x04,0xD0,0x34,0xE9,0x8B,0x6C,0x71,0xC9,0x59,0x33, + + 0xD3,0x1C,0x7A,0x7C,0x95,0x06,0x2E,0x82,0xF1,0xEA,0x37,0x85,0x97,0x28,0x10,0x17, + + 0x38,0x4A,0x12,0x13,0x24,0x9C,0x0D,0xDB,0xCC,0xC5,0xB2,0x0F,0x10,0xD9,0x1F,0x3F, + + 0xA8,0xA6,0xB4,0xD5,0x5B,0xD6,0x8A,0xD0,0xC9,0x84,0xC3,0x62,0x5F,0xFA,0x13,0xA8, + + 0x29,0xA5,0x90,0x7F,0x73,0x9B,0x41,0x7A,0x23,0x2E,0x87,0xA5,0xFC,0xE7,0x9A,0x22, + + 0xB9,0xFE,0xB5,0x24,0x14,0xDD,0x09,0x9A,0x22,0x0F,0x75,0x35,0xDF,0xF8,0xAA,0x2E, + + 0xF5,0x1C,0xDA,0x8C,0x06,0xD0,0x84,0xD9,0xB8,0xE3,0x12,0x51,0xB1,0xB7,0x4B,0x27, + + 0xAC,0x4C,0x61,0xD8,0x33,0x24,0x0F,0x43,0x79,0xD2,0x42,0x0E,0xA0,0x2D,0xFB,0x41, + + 0x57,0x41,0x7E,0x12,0x4F,0x73,0x85,0x56,0xFC,0x9B,0xFA,0x90,0x29,0x1B,0xA7,0xD9, + + 0x77,0x2F,0xC3,0x59,0x14,0x6E,0x33,0xBB,0x4D,0xBA,0x91,0xD6,0xE4,0x9F,0x8D,0xE6, + + 0x48,0x41,0x86,0xE6,0x59,0x41,0xB0,0x84,0x03,0xCD,0x3F,0xC2,0x60,0x3F,0x19,0x7E, + + 0xAE,0xAC,0x3B,0xAD,0x37,0x30,0x26,0x00,0xA4,0xFE,0xA3,0x52,0x42,0xAD,0xF8,0x09, + + 0x05,0xB1,0xDD,0xCD,0x48,0xE3,0x03,0x9C,0x0B,0x16,0x94,0xDF,0x57,0x62,0xE8,0xEB, + + 0x37,0x1B,0x30,0x55,0xCF,0x86,0xB9,0x95,0x8A,0x5C,0x22,0x53,0x71,0x10,0x84,0x70, + + 0x18,0xBF,0xD7,0x2C,0xBA,0xF1,0x2F,0xC7,0xC3,0x38,0x45,0x17,0x42,0xF9,0x1C,0x4E, + + 0xD8,0x57,0xF2,0xF9,0x90,0x2E,0x67,0x63,0x5F,0xFA,0x1C,0xD4,0x74,0x78,0xE0,0x54, + + 0x25,0x00,0x50,0x47,0x90,0x06,0x33,0xD9,0x09,0x07,0xA8,0x15,0x40,0x47,0x1F,0x07, + + 0x5F,0x53,0x6D,0xE3,0xC3,0x31,0x48,0x00,0x40,0x17,0xC5,0x6C,0xF5,0x76,0x81,0x78, + + 0x37,0xE9,0x15,0xB3,0x40,0x7A,0x91,0xBA,0x8F,0xF5,0xCF,0x6A,0xDD,0x27,0xF1,0x7A, + + 0x2F,0x18,0x98,0xA0,0x3F,0x38,0x3C,0x9C,0x82,0x3D,0xF9,0xC6,0x18,0x7D,0xC7,0xA9, + + 0xE8,0x91,0x8B,0xF8,0xDB,0x40,0x00,0x58,0x4B,0xAA,0x96,0xCB,0x47,0x16,0x0F,0xFB, + + 0xEB,0x14,0x8D,0x6D,0x46,0x34,0x27,0x47,0x45,0x56,0xE6,0xD3,0x98,0x7F,0xF5,0xCF, + + 0x2C,0x9F,0x96,0xD1,0xD3,0xAD,0xE9,0x6C,0x4A,0xBE,0xB8,0x8E,0x59,0x9E,0xF8,0x2B, + + 0xC3,0x5F,0x35,0xD4,0x9E,0xC2,0x38,0xC4,0x94,0x80,0x48,0x78,0x01,0xBD,0xB5,0xD7, + + 0x4E,0xEA,0xBF,0x25,0xEE,0x73,0xAC,0xCE,0x4B,0x32,0xF8,0x86,0x23,0x8B,0x1D,0x15, + + 0xC0,0x6B,0x0F,0x1D,0xC3,0x7D,0x39,0xC0,0x76,0xA2,0x73,0x82,0x31,0x2E,0xB6,0x86, + + 0x3E,0xA2,0xE8,0xF6,0x77,0xDA,0x0A,0x92,0x8D,0x6F,0x5E,0xD9,0x52,0x73,0x4E,0xDB, + + 0x06,0x62,0xAA,0x74,0x7C,0xD0,0x2E,0x50,0x2D,0xCC,0xE8,0x54,0xA6,0x84,0x1B,0xFC, + + 0x79,0xEE,0xB7,0x3E,0x92,0xA3,0x95,0x07,0x2D,0x73,0x16,0x58,0xD2,0x42,0x73,0xDE, + + 0xF9,0xC1,0xF1,0x67,0x7C,0x12,0x2B,0x93,0x2E,0x87,0x81,0xCC,0xE6,0xCD,0xCC,0x00, + + 0x85,0x50,0x4C,0x62,0xCA,0xD5,0xE0,0xE6,0x66,0xE0,0xAF,0x99,0x29,0x9E,0xC8,0x48, + + 0x8B,0xC7,0xEF,0x29,0xB0,0x01,0xED,0x55,0xE6,0x6A,0x8D,0x04,0xBC,0x04,0x37,0x5C, + + 0xE0,0x32,0x21,0x1A,0xE9,0xBD,0x0F,0x64,0x67,0x69,0x2A,0x48,0xD0,0x6C,0x3B,0x85, + + 0x81,0x04,0x7C,0x6F,0xB5,0x17,0x6A,0xF7,0xE7,0x33,0xC7,0x42,0x5A,0x41,0x32,0x1A, + + 0xAD,0x21,0xA0,0xFD,0x68,0x05,0x08,0x9A,0x85,0x67,0x72,0x96,0xC6,0xE2,0x3A,0xBB, + + 0xAC,0x16,0xE2,0xD6,0x7E,0xD3,0x2C,0x17,0xA6,0x8D,0xE9,0xE1,0x6E,0xE7,0xB5,0xEB, + + 0xB4,0xC8,0x30,0x48,0x56,0x90,0x97,0x0F,0xAF,0xA5,0x76,0xC7,0x5B,0xA8,0x9F,0x79, + + 0x76,0x90,0xBD,0x23,0x9B,0xAA,0x01,0x8B,0x04,0x64,0x7B,0x87,0x02,0xF0,0x90,0x75, + + 0x8A,0x59,0xA2,0x3D,0x22,0xB7,0x0C,0x6D,0xEF,0x63,0xBF,0xAE,0x73,0x67,0x34,0x55, + + 0x05,0xC3,0xBA,0x4A,0x5B,0x58,0xE9,0x8B,0xEC,0x8D,0x42,0x1E,0x10,0x66,0xC7,0xCF, + + 0xEC,0xE4,0x41,0x7B,0x75,0x3F,0x64,0x4C,0x6F,0x61,0xD2,0x5E,0xB2,0xF1,0x0A,0xFB, + + 0x59,0x30,0x7E,0xAC,0xA3,0x5B,0xC4,0xFF,0xEF,0xFE,0x04,0x8C,0xE7,0x40,0xA3,0x80, + + 0xA9,0xD2,0x13,0xBF,0x32,0x1A,0xCB,0xD1,0x79,0x71,0xD5,0x66,0x36,0xEB,0x4E,0x93, + + 0x24,0x31,0xBF,0xF6,0x71,0x1C,0xBC,0xC1,0x70,0x54,0x01,0x50,0x46,0xBF,0x35,0x83, + + 0x05,0xFC,0x60,0xF4,0xCC,0x1B,0x0D,0x87,0x8F,0xDD,0xDF,0xC9,0x53,0xE2,0x9A,0xA6, + + 0xA3,0x81,0x3E,0xE6,0xC5,0xB8,0x43,0xB5,0x2D,0xDC,0x86,0x51,0xE5,0x4E,0xE0,0x04, + + 0xB4,0x97,0xA1,0x58,0xB4,0xB0,0xD9,0x0C,0xE4,0xD0,0x4F,0x75,0x4E,0xFE,0xBD,0xC1, + + 0xD1,0xA6,0x58,0xA5,0x0B,0xBA,0xD4,0xCF,0x9F,0x84,0x6D,0xFD,0x47,0xC5,0x86,0x38, + + 0x6E,0x61,0xB5,0x43,0x84,0xE9,0x19,0x81,0xC7,0x97,0x77,0xF9,0xCE,0x02,0x4B,0x68, + + 0x95,0x33,0x59,0xA4,0xC7,0xB8,0x4E,0xDA,0x1B,0x46,0x88,0xEA,0x30,0x5A,0x26,0x0E, + + 0x0C,0x98,0x62,0x7E,0x34,0x63,0x92,0x8E,0x87,0x9C,0x4E,0x46,0xA1,0x05,0x99,0xAF, + + 0x2B,0x28,0x8E,0x8F,0xB0,0xDA,0x9A,0x9E,0x5E,0x09,0xD0,0x3A,0x0F,0xCF,0x1F,0x39, + + 0xA8,0x3A,0xA7,0xA5,0x80,0xAA,0x0D,0x1B,0x7D,0x75,0x4F,0xAD,0xAC,0xE1,0x0B,0x8A, + + 0xC1,0x36,0x04,0x3A,0x68,0xA5,0x87,0x44,0xFD,0x96,0xF7,0xAE,0x0C,0xB4,0x15,0x7F, + + 0x28,0x1F,0x26,0x97,0x21,0xFE,0xC5,0xC7,0x68,0x5F,0xE7,0x1C,0x5F,0xBD,0x86,0x50, + + 0x0D,0x4B,0x46,0xEA,0xBD,0xB9,0xC3,0xA1,0xBE,0x80,0x3E,0xDE,0x3F,0x50,0x32,0x3A, + + 0x32,0x5C,0x2B,0x49,0xBD,0xFE,0x4B,0xAB,0xE4,0x62,0xAD,0x22,0x96,0x1F,0x10,0xA8, + + 0x99,0x3E,0xB0,0xBD,0x9F,0x12,0x54,0x3D,0x93,0x2A,0xEE,0x1D,0x9F,0x2E,0xC0,0x20, + + 0x40,0x0D,0xD6,0x77,0x32,0x86,0xEB,0x5A,0xCF,0x96,0xAF,0x6B,0xC5,0xFD,0xC8,0x30, + + 0x27,0xAC,0x25,0x5A,0xEC,0x7D,0xFF,0x70,0x45,0x2F,0x67,0xF3,0x9B,0xD0,0x03,0xE3, + + 0x69,0xE3,0xD3,0x21,0x0D,0x9F,0x19,0x34,0x75,0x2C,0x38,0xA1,0xF4,0xC9,0x1C,0xF3, + + 0x2D,0xAE,0x30,0x91,0xB1,0xE2,0x89,0x76,0xE5,0xE7,0x22,0xA6,0xA1,0x6B,0x1A,0x8D, + + 0x6A,0xE5,0xF2,0x02,0x80,0x48,0xD0,0x9D,0x4E,0xB4,0xCE,0x86,0xC0,0x6C,0x32,0xB0, + + 0x00,0xAA,0xB6,0x4F,0xFA,0x36,0xE7,0x92,0x70,0x77,0x4F,0x58,0x1B,0x84,0x81,0x61, + + 0xC2,0x0B,0xFF,0xEC,0x58,0xB5,0xD6,0xE3,0xE0,0x34,0xD7,0x5A,0xBE,0x24,0x58,0x22, + + 0xB3,0x6B,0xAB,0x55,0x78,0xB3,0xE1,0x61,0x64,0x5C,0xF9,0xC6,0xF7,0x25,0x93,0xEA, + + 0x40,0xE9,0x79,0x2B,0xB9,0x33,0x11,0x2E,0x80,0x38,0x17,0xA8,0x7C,0xE8,0x1D,0x77, + + 0x2A,0xC8,0x21,0x99,0x8A,0x16,0x8A,0x7F,0xEC,0xFF,0x21,0xA6,0x5A,0x8B,0x1F,0x33, + + 0xAC,0xFE,0x05,0x53,0x15,0x48,0xB7,0xD8,0x6B,0x0A,0xEC,0xEA,0x25,0xDC,0x55,0xFB, + + 0x8D,0xF6,0x74,0xED,0x4B,0x5A,0x20,0x49,0x49,0xE4,0x5B,0x19,0xB2,0x94,0x24,0x81, + + 0x09,0xE4,0x9C,0x43,0x16,0x62,0x12,0x0E,0xBD,0xC3,0xC2,0xF1,0xAD,0x09,0x52,0xE1, + + 0x68,0x19,0xE3,0x33,0x8A,0xE8,0xE0,0x83,0xA2,0x24,0x76,0xF9,0x8E,0x0F,0x7D,0x7C, + + 0xE3,0x1F,0xA2,0xED,0x4C,0x91,0x4B,0xE4,0xF9,0xCA,0xEB,0x85,0x96,0xB2,0x5D,0x71, + + 0x38,0x42,0xB9,0x55,0x7F,0x88,0x7C,0x9B,0x0B,0xB0,0xB2,0x96,0x6C,0xC4,0x24,0xB1, + + 0x4B,0x1F,0x40,0xDA,0x3E,0x2E,0x2C,0x5E,0xCC,0x5D,0xAA,0x9C,0x06,0x1C,0x1C,0x05, + + 0xD6,0x74,0x19,0x10,0x19,0xA9,0x7A,0x9C,0x45,0x2C,0x63,0xB6,0x6B,0x33,0x85,0xF2, + + 0xD8,0x50,0xF8,0x7A,0xD3,0x47,0xB9,0x32,0xDC,0x8F,0x51,0x5B,0x0D,0x10,0x35,0x79, + + 0xED,0xCF,0xB5,0x6D,0xB1,0xC2,0xE2,0x14,0x2B,0x5E,0x0D,0x44,0x99,0xC2,0x3E,0xA0, + + 0x60,0x9F,0xFE,0x37,0x5E,0x99,0x94,0xF0,0xEA,0x52,0x14,0xC4,0x3C,0xAB,0xF3,0x9A, + + 0x33,0x11,0x84,0x84,0x50,0x21,0xF7,0xF4,0x20,0x7E,0x77,0xB3,0x7D,0xA9,0x41,0x3D, + + 0xA2,0x0A,0x53,0x82,0x78,0x8C,0x85,0xB1,0xE4,0xD6,0x61,0x87,0xC1,0x96,0x4B,0x96, + + 0x8D,0xCB,0xDB,0xE0,0x00,0x7A,0xB1,0x71,0x1F,0x77,0x19,0x3F,0x48,0x08,0xAA,0x0D, + + 0xFD,0x7A,0x79,0xF6,0x4E,0xE7,0xED,0xD3,0x14,0xA7,0x69,0xDF,0x08,0xAB,0x10,0xA1, + + 0x2F,0x18,0xC6,0xEA,0xE0,0xC4,0x1F,0x5E,0x79,0x16,0x09,0x43,0x88,0xAA,0x6E,0x62, + + 0x13,0x91,0x47,0xAD,0x08,0x78,0x2D,0x15,0xCC,0x15,0x6C,0x29,0xDC,0xFA,0xBA,0xFB, + + 0x5A,0x90,0xA0,0xC7,0x4C,0xA7,0x1E,0x5F,0xCD,0x16,0x64,0x45,0xF9,0xC0,0x92,0x96, + + 0xB9,0x23,0xDE,0x64,0xC6,0xDD,0xFA,0xAA,0xE9,0x88,0x88,0x0E,0x7E,0xE1,0x5F,0xDA, + + 0x8D,0xBD,0xF0,0x01,0xF1,0xE7,0x0F,0xE3,0x51,0xF0,0x6A,0x9E,0x48,0x9D,0x87,0xE9, + + 0x0B,0xBE,0x07,0x1D,0x77,0x52,0x85,0xF6,0x84,0xCA,0x17,0xCD,0xB4,0xA1,0xD9,0xFA, + + 0x00,0x5E,0xCD,0x22,0x36,0x92,0x0C,0x08,0x48,0x1F,0x74,0xBA,0xF5,0xA3,0xE0,0x22, + + 0x3C,0x5F,0x60,0x27,0x55,0xAD,0x48,0xAA,0xE1,0x49,0x1C,0xB5,0x2C,0x3D,0x83,0x55, + + 0x0B,0x5D,0x93,0xAA,0xE2,0xE3,0xC3,0x4D,0x2D,0xCC,0x78,0x12,0x15,0x5E,0x95,0x61, + + 0xB7,0x62,0xFA,0x07,0xE8,0x5D,0x11,0xB0,0x67,0x83,0xD7,0x1F,0xD7,0x83,0xED,0xD9, + + 0x3E,0xBC,0xB9,0x8C,0x93,0xA9,0xC6,0x4D,0xEB,0x1C,0x15,0x48,0x0F,0x3E,0x78,0xF3, + + 0xFE,0x95,0xD1,0xEB,0xF2,0x31,0x4E,0x07,0x9E,0xCB,0x88,0x62,0xA7,0xA6,0xD5,0x92, + + 0x77,0x30,0xE8,0x94,0x94,0xE3,0x7C,0x6F,0xB2,0x31,0xC0,0x9E,0x1B,0x39,0xD6,0x76, + + 0x80,0x87,0xE0,0x71,0x6E,0x5D,0x53,0x10,0x65,0xCF,0xE1,0x4E,0x21,0x83,0xFF,0x6C, + + 0xB7,0xC5,0x5E,0x73,0xA4,0x30,0x01,0x61,0xF4,0xF5,0x55,0xF2,0x02,0x85,0x78,0xDE, + + 0x74,0xCA,0x18,0x10,0x7E,0x5C,0x0C,0x32,0x30,0x67,0xD1,0xEE,0x4E,0x9C,0x70,0x80, + + 0x75,0x26,0xE8,0xE0,0xB1,0xA4,0x44,0x3D,0xEC,0x88,0x0E,0x5C,0xAA,0x8C,0x33,0x29, + + 0x2D,0x15,0xF5,0x61,0x9A,0xAB,0x93,0x58,0xD0,0x19,0x13,0x21,0x50,0x8F,0x8B,0x69, + + 0xEF,0xB7,0xF2,0x0A,0x48,0xC7,0x82,0xBF,0x85,0xC8,0x83,0x0E,0xA5,0x14,0x6E,0x3F, + + 0xF2,0x9D,0x5A,0x2E,0x0E,0xE1,0x8A,0x82,0x8E,0x01,0x9B,0x85,0xA5,0x10,0xA7,0x6B, + + 0x3F,0xCF,0xB2,0x5F,0xB8,0xB6,0xDD,0x98,0x8F,0x60,0x4F,0x35,0xA2,0xD1,0xA3,0x9A, + + 0x90,0x05,0xA1,0xA9,0x77,0x14,0x8C,0x83,0xD4,0x83,0x4A,0x30,0xD8,0x64,0x7B,0x4B, + + 0x2E,0x70,0xCC,0x29,0xBE,0x77,0x03,0xFF,0xFD,0xDA,0xA5,0x9D,0xDB,0x92,0x91,0xBB, + + 0xCF,0xD4,0x64,0x87,0xDE,0xEC,0xC9,0xAA,0xC1,0xC0,0x30,0x22,0x7C,0x1C,0x88,0xF0, + + 0x92,0x0C,0x01,0xAC,0x57,0x04,0xC4,0x96,0xE7,0xD5,0x07,0x54,0xD9,0x0C,0x1F,0x33, + + 0x3D,0x3D,0x1E,0xC9,0x29,0x4F,0x98,0x45,0xF4,0xAF,0x10,0xA1,0x60,0x96,0x3F,0x96, + + 0x5A,0xAE,0xFB,0xA9,0xD7,0x46,0xB6,0xD1,0x24,0xB1,0xC5,0x93,0x14,0x5C,0xA4,0x6B, + + 0x62,0xD6,0xF8,0x55,0x17,0x34,0x46,0xD3,0x08,0x2B,0x30,0x2C,0xCD,0x4B,0x3C,0xDB, + + 0x84,0x8E,0xED,0x16,0x21,0x68,0x02,0x64,0x61,0x56,0xE8,0x6E,0x8C,0xC8,0x34,0x48, + + 0x07,0x90,0x1E,0xB8,0x3B,0x30,0x4B,0x01,0x8C,0x15,0x5A,0x88,0x2B,0xB4,0x32,0x57, + + 0x95,0xE1,0x41,0x45,0xA7,0xBD,0x4D,0xE0,0x81,0x01,0x3D,0xD6,0xB4,0xB6,0xCA,0x15, + + 0x2D,0xA8,0xF0,0x0A,0x34,0x1F,0xF2,0x2F,0x2F,0xF8,0x20,0xDD,0x10,0x94,0x15,0x5D, + + 0xFB,0x93,0x7F,0x60,0x19,0x6D,0xC5,0xB2,0xC8,0x98,0xE4,0xB4,0x15,0x18,0x9E,0xBB, + + 0xA0,0x45,0x18,0xA2,0x43,0x67,0xA7,0x43,0xD3,0x97,0xD1,0x66,0xFF,0x13,0xAC,0xF0, + + 0xCD,0xFB,0xBC,0x80,0xC5,0xC7,0xD3,0xC8,0xC7,0x7D,0xC6,0xD9,0xDC,0x81,0x5E,0x48, + + 0x0C,0x6C,0xA4,0xB1,0xEA,0xB3,0x50,0x5F,0xB0,0x73,0xCC,0x1D,0x4B,0xE7,0x56,0x0A, + + 0x73,0x62,0x56,0x25,0xB2,0x40,0x00,0xCC,0x84,0x38,0x0B,0x1C,0x3F,0xF2,0x1F,0x49, + + 0x2E,0x27,0xD5,0x30,0x8D,0x65,0x10,0x1A,0x3C,0x9E,0x2A,0x19,0x7C,0xF6,0x83,0x49, + + 0xA3,0x97,0x88,0x2F,0x3F,0xA0,0x21,0xC8,0xFF,0x70,0x17,0xD1,0xDB,0xFF,0xC0,0x7D, + + 0x61,0x8D,0x50,0x7A,0x7A,0x03,0x98,0xC5,0x23,0x60,0x2B,0xC2,0x33,0x74,0x68,0x5B, + + 0xBA,0x8A,0x14,0xFB,0x26,0x21,0x22,0xD2,0xC3,0x09,0x27,0x05,0xF0,0xC0,0x61,0x4A, + + 0xC3,0x0D,0xFF,0xA4,0xB4,0x8F,0x69,0xA3,0xC5,0xDB,0x86,0xCF,0x31,0x2D,0xF6,0xF3, + + 0x87,0x49,0xD6,0x95,0xE2,0x56,0x04,0xD3,0x6D,0x4C,0xA1,0xCA,0x28,0xC2,0x10,0xB9, + + 0x42,0x9B,0x64,0x40,0x52,0xF8,0x52,0x02,0xB5,0xFD,0x2B,0x61,0x39,0x1B,0xC3,0x30, + + 0x07,0x69,0x0C,0xBC,0x19,0x68,0xCB,0xF4,0x63,0xC5,0x86,0x9B,0x19,0xCE,0x81,0x85, + + 0xB3,0xFB,0xD1,0xC0,0xCB,0x68,0x49,0xE4,0xA1,0x3C,0xD3,0x94,0x6D,0x24,0xD9,0x96, + + 0xA7,0x69,0xBB,0x54,0x8B,0x3C,0x03,0x8E,0x60,0xCC,0x24,0x69,0xF1,0x78,0xBE,0x8C, + + 0x43,0x2A,0x12,0x47,0xE5,0x14,0x72,0x6C,0x47,0x45,0xAA,0x1D,0xF9,0xD7,0x1A,0x1C, + + 0x1D,0x4B,0x37,0xE3,0xE8,0xAA,0x50,0xC3,0xEA,0xB5,0x8D,0xB8,0x79,0xD5,0x39,0xE1, + + 0xD8,0x45,0xBE,0xF5,0x98,0xAB,0x59,0xD7,0x6B,0x47,0x48,0x3D,0xBB,0x01,0x41,0x81, + + 0x60,0xD2,0x21,0xE3,0x45,0x6F,0xA0,0x66,0xCF,0xE3,0xA3,0xC7,0xDF,0x6A,0x02,0x77, + + 0x02,0x60,0xE4,0x3A,0xE1,0xD7,0xC1,0x59,0x7A,0x0E,0xAD,0x9D,0xE5,0xFE,0xE7,0x2A, + + 0xE0,0xDB,0xAA,0x18,0x14,0x20,0x22,0x65,0xCB,0x73,0x27,0xDC,0x79,0x72,0x6B,0x8B, + + 0x8C,0x8D,0xC7,0xC9,0x9B,0xF4,0x43,0x79,0x6B,0xCC,0x8D,0x82,0xD6,0xC5,0x35,0xC6, + + 0xE0,0xB9,0x81,0xA3,0x38,0x29,0x01,0x1D,0xA3,0x5E,0xA4,0x43,0x2C,0x9A,0x8B,0x20, + + 0x70,0xB0,0xDE,0x98,0x08,0x72,0x46,0x8F,0x8B,0x34,0xC4,0xD7,0x24,0x76,0x0F,0x14, + + 0x35,0x48,0xB4,0x7B,0xC4,0x52,0xBC,0xA3,0x4F,0x35,0xFC,0xB6,0x57,0x7C,0xC5,0x04, + + 0x19,0x5E,0xD4,0x63,0x11,0x93,0x2D,0x85,0x28,0xD1,0xB5,0x00,0x51,0x8D,0xCD,0xBC, + + 0x6C,0x08,0x74,0xEE,0x64,0xAE,0x23,0x99,0x8A,0x5C,0x02,0x55,0xF5,0x1F,0xE1,0xC4, + + 0xA5,0x02,0xBC,0xA6,0x71,0xCA,0xAF,0xC7,0xC3,0x4F,0xEA,0x99,0x13,0x54,0x3A,0x81, + + 0xC1,0x1E,0xB4,0xB6,0x70,0x8A,0xF7,0x75,0xF0,0x6A,0x5C,0x41,0xC9,0xD8,0x15,0x5F, + + 0x59,0xBB,0xBD,0xA7,0xF1,0x49,0xD3,0xBF,0x6F,0x34,0xC7,0x1A,0x74,0x55,0xCF,0x21, + + 0x72,0x48,0xB5,0x57,0xBA,0x53,0xA2,0x75,0xC3,0xE1,0x44,0xB2,0x39,0x7C,0x05,0xEE, + + 0xCA,0x38,0x2D,0x64,0x3C,0xE4,0x96,0x2C,0x20,0x5B,0x06,0x2E,0xF8,0xFB,0x34,0x70, + + 0x79,0x56,0xE7,0x77,0x05,0x86,0x8E,0x86,0x43,0xAC,0x1E,0xFB,0x5D,0x82,0xAB,0x0D, + + 0xE3,0x38,0x2B,0x08,0x6D,0x58,0x2F,0x57,0x44,0x57,0xAF,0xDD,0x4C,0x73,0x2F,0x37, + + 0x7C,0xA6,0x34,0x31,0x98,0x5B,0xCF,0x41,0xE9,0x19,0x9E,0x20,0x9A,0x68,0xBB,0xCA, + + 0x6A,0x49,0xFE,0x1C,0xC7,0x33,0xE9,0x6C,0x4A,0x1E,0x9E,0xE5,0x0D,0xD0,0xF3,0x87, + + 0xFE,0x40,0xCA,0x9B,0xBA,0x33,0xD8,0xA6,0xE6,0x3F,0x14,0xFE,0x6B,0x7E,0xB4,0xE6, + + 0x54,0xE2,0x57,0x0A,0xB8,0xCB,0xAC,0xCE,0x4B,0x45,0x08,0x53,0xFC,0x26,0xE4,0x1B, + + 0x28,0x59,0x6C,0x23,0x67,0xC0,0xF4,0x7C,0x78,0x60,0xDE,0xEC,0x1A,0x80,0x8C,0x90, + + 0x10,0x88,0xDE,0x01,0xB5,0xCC,0x40,0xA0,0x45,0xA3,0x19,0x44,0xDB,0x76,0x48,0x10, + + 0x04,0x8C,0xBF,0xED,0xE4,0xC2,0x30,0x15,0xA4,0xCE,0x98,0x32,0x6A,0xE1,0xDD,0x87, + + 0xD5,0xDC,0x65,0xFC,0x38,0xAF,0x6B,0x22,0x67,0xC4,0xB9,0x37,0xEB,0xC2,0x5B,0x3D, + + 0x89,0x08,0xD2,0x08,0x11,0x77,0x59,0x73,0x68,0x48,0x02,0xE7,0xDD,0x9A,0x61,0xB1, + + 0xD4,0x2B,0x68,0x26,0xF7,0xAB,0x09,0x04,0x05,0xCB,0x0F,0xA4,0xD5,0xA2,0x5E,0x5E, + + 0xEC,0x00,0x21,0xB4,0x95,0xED,0x6A,0x90,0x3A,0xCE,0x68,0x56,0x47,0x17,0xD3,0xB0, + + 0x6A,0x2D,0x55,0xA5,0x14,0xEE,0x8E,0x8B,0xDB,0x8B,0x46,0x43,0xF4,0xA4,0xC1,0xD9, + + 0x7E,0x5B,0x23,0xB5,0x15,0xEF,0x7F,0x4C,0xF7,0x85,0x22,0x24,0xA8,0x30,0xDD,0xE8, + + 0x2E,0xAA,0x06,0x29,0xB0,0xA5,0xE7,0xC8,0xCE,0xC0,0xAA,0x3F,0x5A,0xE9,0x12,0xE5, + + 0x8D,0xC9,0xBD,0xE1,0xE8,0x3A,0xAA,0xCA,0x4F,0x68,0xBD,0xE0,0xC2,0xA8,0xA5,0x89, + + 0x0C,0x91,0x0F,0x8A,0xEB,0xAA,0x87,0xDB,0xC4,0xC5,0x1A,0x55,0x7F,0x1A,0x11,0xE4, + + 0x8B,0x0A,0x84,0x60,0x44,0x34,0x2A,0xC8,0x49,0x46,0xDB,0x3D,0xF0,0xE6,0x59,0x14, + + 0x3D,0x4C,0xC2,0x2C,0x5D,0x57,0xFB,0x7C,0x6A,0xB0,0xCC,0x13,0x3E,0x13,0xC1,0x90, + + 0xB4,0x22,0x11,0xBC,0x9D,0xA5,0x55,0x8B,0xEC,0x8D,0x8F,0xDE,0x07,0xFE,0xCF,0xEE, + + 0x5B,0xED,0x9B,0x68,0x3F,0x24,0x4C,0x24,0x17,0x33,0x13,0xCE,0xD8,0x0D,0x4C,0x45, + + 0x5F,0x24,0x2F,0x3D,0xDC,0x58,0x44,0xFF,0xEF,0xFE,0x20,0x2C,0xA0,0x61,0x8F,0xFD, + + 0x66,0x99,0x7B,0x79,0x10,0x4C,0xB4,0x3A,0xB0,0xF3,0x23,0x55,0xF0,0x7D,0x4C,0xD2, + + 0x0B,0x1C,0x06,0x51,0x94,0x33,0x02,0x8A,0xAF,0x00,0x84,0x48,0x16,0xF2,0xE1,0x93, + + 0x87,0x98,0x9A,0xD8,0x90,0xB4,0x92,0x07,0xC0,0xBE,0xE7,0xA5,0x1F,0x96,0x55,0x11, + + 0xA4,0xF6,0xD5,0x67,0x25,0x02,0xC2,0xC0,0xD9,0x75,0x2A,0x44,0x71,0x7E,0xD3,0xE6, + + 0xFA,0x85,0xBA,0x29,0x0C,0xB7,0x8B,0x66,0x46,0xC1,0x34,0x23,0x9F,0xF7,0x7C,0xC2, + + 0x86,0x3A,0xEE,0x27,0x88,0xF7,0x44,0xC3,0xC6,0x54,0x50,0x65,0x5C,0xFF,0x3F,0xFF, + + 0xDA,0xD4,0x1E,0xC2,0xDD,0xC9,0xCA,0x01,0x1F,0x77,0xF2,0xFB,0x1F,0xAF,0x78,0x57, + + 0xEE,0x16,0xB3,0x38,0xFD,0x1C,0xA1,0x77,0xC7,0x6B,0x7B,0x0B,0x3E,0x0C,0x5E,0x08, + + 0x2D,0xF5,0xDF,0xE8,0xCB,0x33,0x21,0x54,0x48,0x75,0xE4,0xAC,0x97,0x9C,0x4E,0xDE, + + 0x22,0x94,0x02,0x00,0x3E,0x79,0x00,0x93,0x43,0x06,0x12,0x9A,0x80,0xF2,0x7D,0x97, + + 0x2C,0xA9,0x86,0xB2,0x0F,0xF7,0xA6,0x9A,0x4D,0x25,0x8F,0xD3,0xDD,0xBA,0x65,0x44, + + 0x0E,0x9D,0xF5,0x95,0xC1,0xA4,0xAF,0x8A,0xCB,0x74,0x87,0x43,0x7D,0x00,0x49,0xB5, + + 0xF7,0x11,0x1B,0xD6,0x1C,0xA3,0xB6,0xFA,0xE6,0xA1,0x9C,0x6A,0x6B,0x36,0x7B,0x1A, + + 0x07,0x16,0xCD,0x20,0xE7,0x42,0x6C,0x14,0x84,0x99,0xA4,0x01,0x94,0x2C,0x98,0xB4, + + 0x23,0x38,0x98,0x3E,0x01,0xEC,0x61,0x89,0x86,0xD3,0x67,0x1E,0x86,0xDE,0x2F,0xE6, + + 0xA9,0x9E,0xB1,0x30,0x85,0xBC,0x45,0x4B,0x76,0x70,0x81,0xC2,0xCC,0x9B,0xBA,0xF1, + + 0xA3,0xF0,0x84,0x04,0xEF,0xDF,0x30,0xCA,0xB5,0xC9,0xCB,0x24,0xD0,0xE0,0xB0,0x2D, + + 0x61,0x0E,0x88,0xEB,0x11,0x21,0x26,0x43,0x56,0x0E,0xA3,0xB1,0x5F,0x03,0x33,0xFE, + + 0xB3,0x02,0x7E,0x05,0x6F,0xDD,0x31,0xAB,0xE4,0x59,0xAE,0x15,0x23,0xFD,0x77,0x29, + + 0xA3,0xB3,0x83,0x6E,0xD0,0x0C,0x18,0x42,0xDE,0x0C,0xD3,0xA8,0x2A,0x60,0x3F,0xB8, + + 0x82,0xFB,0x00,0x64,0x4C,0xFB,0xEB,0x2E,0xAB,0x2D,0xFC,0x7E,0x68,0xD0,0x58,0xA8, + + 0x03,0xFE,0x63,0x13,0x1D,0xF9,0x5C,0x27,0xBE,0x2B,0x71,0x0A,0xC6,0x63,0x81,0x40, + + 0xF0,0xBD,0x75,0x27,0xA1,0xC6,0x2E,0x99,0xC2,0x04,0x00,0x2A,0x2F,0x1A,0x49,0xAD, + + 0x02,0x45,0x0D,0x9F,0x28,0xD8,0x3F,0x10,0xC2,0xC7,0x70,0xC2,0x72,0x0B,0x80,0x4F, + + 0x3B,0xCC,0x88,0xE6,0x51,0x08,0x82,0xD1,0xFA,0x0A,0x07,0xA8,0x18,0xF7,0x9F,0x19, + + 0xE0,0x78,0x8A,0x1C,0x19,0xB8,0x7A,0x3A,0xB6,0x46,0x25,0x7B,0x83,0x61,0xE1,0xFA, + + 0xF8,0xA1,0x83,0x0D,0x98,0xCA,0x83,0x8C,0x2B,0xCA,0xAC,0x4D,0xD0,0xD8,0xA7,0x8A, + + 0xF9,0x01,0x8B,0x1D,0x91,0x32,0x7B,0x3B,0xBC,0x46,0x1E,0x42,0x56,0xFD,0xCA,0x55, + + 0xF7,0xD4,0x98,0x98,0x6A,0x6E,0xF5,0x09,0xCA,0x5C,0x16,0x97,0x2D,0x6C,0x74,0x60, + + 0x86,0x8B,0x0A,0x8C,0xA7,0x71,0x12,0x7C,0x97,0x44,0x8C,0xD5,0xAC,0x03,0x5B,0xC8, + + 0xC2,0x9F,0xD3,0x6F,0x3B,0x91,0xEC,0x2E,0x00,0x47,0xC5,0xC1,0x25,0xB3,0xCF,0x19, + + 0x18,0x09,0x74,0x13,0xF0,0x20,0x65,0x1C,0x30,0xD4,0x66,0xE2,0x6E,0xB9,0x3F,0x7E, + + 0x04,0xEF,0x10,0xAB,0x52,0x90,0x07,0x59,0x60,0xCB,0x20,0xC6,0x33,0x8C,0x55,0x60, + + 0xAC,0x5C,0x4C,0xB4,0x71,0xAC,0x50,0x78,0x12,0x24,0x67,0xDB,0x2C,0x8E,0x3F,0x13, + + 0xA0,0xCD,0xD7,0x75,0xB2,0x43,0x2D,0xD3,0x1F,0x10,0x68,0xCB,0xB9,0x7D,0xEA,0xEF, + + 0xC0,0x17,0xF5,0x11,0x91,0x70,0x42,0x31,0x8A,0xB0,0xFD,0xF1,0x71,0xAE,0x7E,0x87, + + 0xBC,0x6B,0x54,0x46,0xB2,0x8D,0xC1,0xFF,0x12,0x38,0x44,0xFB,0xF6,0xA0,0x29,0x3B, + + 0xC2,0x03,0x9C,0x59,0x90,0x2E,0x47,0x1F,0x03,0x85,0x18,0x71,0x30,0x15,0x7F,0x4F, + + 0x15,0x9B,0xFD,0x15,0xEE,0x30,0x0C,0x1D,0x07,0xF0,0x71,0x87,0x4D,0x14,0x34,0xAB, + + 0x81,0xFA,0x4E,0xB3,0x44,0x27,0x9D,0x59,0x44,0x5A,0xBD,0xB1,0xEC,0x78,0x78,0x6A, + + 0x3A,0x55,0xBE,0x62,0x94,0x35,0xE7,0x45,0x68,0x03,0xEE,0x8B,0x85,0x77,0x9E,0x70, + + 0x06,0x54,0x6D,0x5C,0x21,0xE5,0x13,0x5E,0x4D,0xB1,0x49,0x3E,0x7C,0x00,0x1D,0x8B, + + 0x62,0x15,0x7A,0xCA,0x66,0x67,0x2F,0xDB,0x17,0x18,0xA8,0x28,0xF6,0xF0,0xF4,0x91, + + 0x0C,0xE4,0x36,0xC3,0x64,0x46,0x90,0xE4,0xA8,0x63,0xE7,0x3F,0x79,0xDF,0x80,0x6E, + + 0xE1,0x5E,0x7E,0x33,0x3C,0x36,0xAF,0x6A,0xA3,0xCB,0x6B,0x3C,0x36,0x7A,0x6B,0xAA, + + 0xA6,0x6B,0x31,0x5E,0x19,0x0D,0x6C,0x03,0x9B,0x52,0x56,0x3D,0x18,0x1D,0xCD,0xB5, + + 0xAC,0x7E,0xD0,0x25,0x32,0xF3,0x6F,0x18,0x49,0xDE,0x87,0x75,0x59,0x78,0xB2,0xAB, + + 0x3D,0x40,0xB7,0x35,0x3F,0x3C,0x9F,0xF8,0x26,0x02,0xA7,0xE6,0x7F,0xEB,0x65,0x3D, + + 0x38,0xC2,0xA0,0x06,0x50,0x86,0x60,0x55,0x4E,0x7B,0xF8,0x32,0xD4,0xF0,0x4E,0x2F, + + 0xF0,0x27,0x57,0xE9,0xE2,0x14,0x31,0xCE,0xC5,0x83,0x3B,0x88,0x15,0xCD,0x2E,0xA1, + + 0x09,0x7F,0x8C,0x78,0x0D,0x29,0x7A,0xDB,0xC4,0x39,0x0E,0x5E,0xF5,0x62,0xBA,0xD3, + + 0xC9,0x57,0xE4,0x65,0x66,0x0C,0xF1,0x5B,0x47,0xE7,0x16,0x49,0x08,0xA2,0x6C,0x35, + + 0x65,0x1B,0x60,0x29,0x10,0xA5,0x70,0x3C,0xF3,0x18,0xF8,0x6A,0xAF,0x1B,0x22,0x29, + + 0x85,0xAD,0xB1,0x43,0xC2,0xC9,0x7C,0x25,0x9A,0x78,0x9A,0x76,0xA0,0xA4,0x19,0x41, + + 0x71,0xC4,0x27,0xB9,0x3A,0xAB,0xDE,0x0C,0x1B,0x84,0x4C,0xF8,0x29,0xBB,0xCD,0x31, + + 0xC4,0x68,0x2D,0x09,0x99,0xB9,0xD6,0x0C,0x48,0x61,0xC6,0x5A,0x28,0x6A,0xB1,0x15, + + 0x70,0x2C,0xF0,0x74,0x91,0x0E,0xB2,0x2E,0x0C,0x14,0x9D,0x51,0x85,0x55,0x0A,0x78, + + 0xE4,0x38,0x67,0x26,0x1B,0xA8,0x61,0x38,0x36,0x21,0xFA,0x0C,0xA2,0xEF,0xB6,0x32, + + 0xC4,0xFB,0xEE,0xCF,0xBE,0x21,0xE8,0x04,0xB3,0xC8,0xF9,0x2A,0xB7,0xE5,0x50,0x68, + + 0xF9,0x74,0xA9,0x7D,0xA4,0xA0,0xE6,0x90,0xCB,0x13,0x33,0x3D,0x7C,0xB4,0x1A,0xC8, + + 0x0D,0x6A,0x9F,0xB1,0x7D,0x05,0xBD,0x2A,0x42,0x38,0x23,0x90,0xD3,0x11,0xC2,0x89, + + 0xBE,0x8E,0x2A,0x7F,0x09,0x12,0x1C,0xA6,0x4C,0x8D,0xAF,0xBE,0x57,0xAC,0x39,0x65, + + 0x2D,0xCF,0xF0,0xCB,0xBE,0xDB,0xBC,0x4F,0x33,0xA2,0x95,0xC3,0x2B,0x48,0xD5,0x46, + + 0x29,0x21,0x52,0xDB,0xB7,0x25,0xDC,0xA7,0xEB,0x1B,0x48,0xD6,0x23,0xBC,0x88,0xF1, + + 0x3B,0x66,0x0B,0xDD,0xC5,0x0C,0x7D,0x7F,0x29,0x5A,0x8C,0x59,0xF9,0x76,0xD7,0xB6, + + 0xA8,0x3C,0x93,0xC9,0x11,0x3C,0x6D,0x12,0x47,0x92,0x50,0x24,0xC6,0xF9,0xDA,0xF0, + + 0xB3,0x44,0xA6,0x85,0x21,0x4E,0x60,0x03,0xC6,0x28,0xB0,0xE7,0xB0,0x0F,0xE0,0x00, + + 0xE2,0x18,0x56,0x67,0x25,0x62,0x3D,0xB2,0xED,0xF3,0x3F,0x35,0xF0,0x8A,0x5E,0x49, + + 0x9D,0x19,0xE3,0xDE,0xD3,0xB2,0xE3,0x1D,0x87,0x07,0x50,0x84,0x89,0x78,0xAC,0xD7, + + 0xBF,0x96,0xBC,0xCF,0xD6,0xBA,0xB8,0x0D,0x92,0xDC,0xF8,0x74,0x72,0x6F,0x04,0x29, + + 0x26,0xF6,0xB5,0xDA,0x15,0xB0,0xD9,0x66,0x11,0x2B,0x31,0x62,0xF8,0x7C,0x03,0xCA, + + 0x46,0xFB,0xCD,0xDF,0x4A,0x78,0x7F,0x1F,0x18,0xD3,0x85,0x88,0x36,0x95,0x06,0x60, + + 0x45,0xC2,0xD8,0x88,0xDD,0x3B,0xC9,0x55,0x93,0xD8,0x8E,0x93,0xDF,0xB9,0x4C,0x9A, + + 0xDE,0xF5,0xD1,0xFE,0x45,0xD5,0xC1,0x44,0x92,0xF9,0xB5,0x96,0x16,0x5A,0x46,0xAF, + + 0x57,0x17,0x0A,0x7C,0x30,0xB7,0x37,0x54,0xEC,0x25,0x8D,0x5C,0x8C,0xB8,0x90,0x00, + + 0x5C,0x12,0xCD,0x8F,0xBE,0x3B,0x3F,0x44,0x12,0xDB,0xAF,0x50,0xCA,0xF7,0x81,0x35, + + 0xCF,0x4A,0x86,0x6E,0x66,0x37,0xF2,0xA4,0x93,0x80,0xBC,0xEB,0xD2,0xF3,0x54,0x40, + + 0xDC,0xDC,0x31,0xB3,0x4C,0xB9,0x2F,0x1C,0xDA,0xD2,0xC6,0x2E,0x33,0xFB,0x9C,0xB9, + + 0x74,0x21,0xE3,0x2D,0xC9,0xBA,0x2D,0xF7,0xD2,0x9C,0xD0,0xE9,0x2E,0x9A,0xC2,0xA4, + + 0x32,0xC3,0xB0,0xA7,0xBB,0x57,0x26,0x07,0xAB,0x9E,0x77,0x9B,0x5C,0xBE,0x50,0x0D, + + 0x36,0x1B,0x37,0x02,0xE7,0x9D,0x0C,0xE0,0x38,0xDD,0xF1,0x84,0x86,0xDF,0x5A,0x94, + + 0x25,0x3F,0xDA,0x1B,0xE2,0x5A,0xC1,0x30,0x29,0x9B,0x78,0x0B,0x75,0xCA,0x06,0x67, + + 0x7B,0x0B,0x93,0x8F,0x6B,0xBF,0x37,0x44,0x63,0xC7,0x4E,0x25,0x53,0x6C,0x2F,0xF3, + + 0xED,0xAC,0xCA,0x91,0xC4,0xB2,0xE6,0x5F,0xAB,0x4C,0xE1,0x31,0x28,0x21,0x44,0x4B, + + 0xFE,0xA7,0x6D,0x5D,0x71,0x24,0xAF,0x99,0x46,0x04,0xF6,0x62,0x9C,0xD9,0x9A,0xD4, + + 0x0B,0xF1,0x9A,0x1E,0xF8,0x41,0xD8,0x0B,0x45,0x44,0x58,0x87,0x99,0xCE,0x81,0x40, + + 0x5E,0xF3,0x54,0xB6,0x16,0xAB,0x1B,0x3C,0xA9,0x49,0xFB,0xB5,0x71,0xEE,0x6F,0xE1, + + 0x07,0xA3,0xF1,0x68,0x6C,0xAA,0x4C,0x9F,0x6F,0x4A,0xBB,0x71,0xD5,0xE4,0x13,0xE4, + + 0xB4,0x73,0xDB,0xDB,0xBD,0xAF,0xE9,0x07,0x1F,0x35,0x82,0x05,0xEF,0x0D,0x74,0x25, + + 0x76,0x1F,0x1A,0xF4,0xD6,0x64,0x58,0xC8,0xBA,0xB8,0xA2,0x0C,0x17,0xC6,0x43,0x1A, + + 0xE4,0xDB,0x82,0x08,0x1F,0xBB,0xFF,0xBA,0x97,0x40,0xAB,0xC2,0x25,0xCB,0xD0,0x16, + + 0x8F,0x33,0x89,0xFB,0xBD,0x28,0x65,0x3F,0xAA,0xBC,0x3B,0x4F,0xBB,0x57,0x96,0x4F, + + 0xAB,0x69,0x11,0xB2,0x9A,0x81,0xAF,0x17,0x4C,0x4D,0x1E,0x9D,0xC6,0x7E,0x24,0xED, + + 0xE4,0x41,0xCE,0x1B,0x9A,0x23,0xA3,0x5F,0xEA,0x32,0xA5,0x81,0x5B,0x63,0xBC,0xCD, + + 0x82,0xFA,0x53,0x8A,0x98,0xDB,0xF7,0xED,0xEA,0xDE,0x3B,0xE7,0xF8,0xB8,0x3B,0x9F, + + 0x21,0x4D,0x0B,0xED,0x4D,0x6D,0xE4,0xFD,0xEB,0x69,0xB3,0xFB,0x27,0x2E,0x83,0x04, + + 0x28,0x83,0x3C,0x7B,0x50,0xCF,0x04,0x82,0xC1,0xEF,0x80,0xC2,0xFD,0x12,0x4C,0xAC, + + 0xCA,0x55,0x32,0x98,0x02,0x85,0xA3,0xEA,0x02,0x24,0x43,0xB5,0x8C,0x1D,0x3F,0x7E, + + 0x57,0x99,0x65,0x1D,0x4D,0x31,0xD5,0x71,0x5C,0xCE,0xF5,0x8B,0x93,0x7D,0x37,0x21, + + 0x1D,0xBC,0x37,0x75,0xF9,0x28,0x8E,0x35,0xC9,0xCB,0xFB,0xD0,0xF2,0x52,0xD8,0xFB, + + 0x1F,0xE1,0xAC,0x42,0xCE,0x75,0x77,0x7E,0xBA,0xA2,0x71,0x7C,0xF5,0x62,0x2C,0x70, + + 0x3B,0xB8,0xC8,0x36,0xB1,0xC9,0x0E,0xDB,0x88,0xF0,0xDC,0x36,0xF0,0x33,0xD8,0x45, + + 0xE9,0xB6,0xA5,0x9A,0x11,0xBD,0x0B,0x7A,0xF2,0x14,0x85,0x7B,0x09,0x8D,0xC4,0x33, + + 0xE3,0x11,0xB7,0x25,0x60,0x38,0x03,0xC3,0xE7,0x1B,0x6A,0xD1,0x2F,0x96,0xA2,0xEA, + + 0xD3,0x5A,0x6F,0xEA,0xD3,0xD1,0x2E,0x57,0x0B,0xF1,0xCC,0x8C,0x04,0x67,0xCE,0xBC, + + 0xEF,0x14,0x8A,0xDB,0xB8,0x37,0xDE,0x99,0x7F,0x26,0x09,0x56,0xDC,0x15,0x97,0x1F, + + 0x51,0x15,0x17,0x4A,0xBA,0xCF,0x84,0x2D,0xC8,0x2F,0x2F,0x53,0x9B,0x5B,0x98,0x66, + + 0xFD,0xCC,0x4F,0x2D,0x24,0xC7,0xAE,0x5B,0x18,0xF4,0x7C,0x43,0x5D,0x96,0x16,0xD5, + + 0x89,0x5C,0xA6,0x93,0xDD,0x91,0x37,0xFB,0x18,0xC8,0x8F,0x6D,0xDF,0xD5,0xE3,0x96, + + 0xDE,0x41,0x82,0x3E,0x86,0xB1,0xFB,0xFD,0xEC,0x4B,0x48,0x1C,0x23,0x7B,0x0F,0xE7, + + 0x37,0xE3,0x8F,0x2F,0x16,0x93,0x71,0x50,0x32,0xF5,0x41,0x8D,0xD6,0xD3,0x71,0xB5, + + 0x8A,0xDD,0x1B,0x78,0xF8,0x33,0x0F,0x67,0x10,0xA4,0xF1,0x06,0x5A,0xD4,0x6E,0xFE, + + 0xB8,0x7B,0xB7,0xA2,0x12,0x03,0xE3,0xD1,0xC8,0x7D,0x70,0x06,0x04,0xBF,0xBE,0xEB, + + 0x49,0xC3,0x92,0x94,0x88,0x85,0x38,0x33,0x11,0xC5,0x78,0x16,0x06,0xBC,0x61,0x2C, + + 0xB4,0xD7,0x07,0x83,0xAE,0x44,0x49,0x2E,0x98,0x35,0x05,0x45,0x6B,0x1F,0xA4,0x31, + + 0xF2,0xF6,0xD1,0x93,0xC7,0x7F,0x83,0x2B,0x45,0x7F,0xC1,0x10,0x68,0xEC,0xA8,0xCB, + + 0x02,0x2E,0xB2,0xB3,0x10,0x27,0x0E,0x65,0xF3,0xCB,0x1C,0xE6,0xAA,0xC4,0x69,0x14, + + 0x47,0x28,0x96,0x65,0x7C,0x20,0x0E,0x4B,0x41,0xC4,0xD2,0xA6,0xF4,0x6D,0x77,0x5C, + + 0x93,0xC8,0x13,0xC3,0xF4,0xD3,0xC5,0x0C,0x65,0x4D,0x5D,0x25,0x55,0x5B,0xF6,0x01, + + 0xA9,0xE4,0x69,0x11,0x05,0x03,0x7B,0x11,0x30,0x4C,0xF8,0x84,0x1D,0x4C,0xFD,0x8A, + + 0xB0,0x99,0x62,0x3F,0x65,0xAB,0xA2,0x74,0xB1,0x14,0xE8,0x9D,0x24,0xAA,0x71,0x15, + + 0x0B,0x11,0x10,0x7E,0x11,0x24,0x2E,0x6A,0xEC,0x36,0xE0,0xFB,0x21,0xF6,0x92,0x3E, + + 0xF7,0x9C,0x32,0x1E,0xAF,0x1E,0x69,0xB1,0xB8,0x88,0xA3,0x3F,0x7D,0x35,0x98,0x3F, + + 0x8B,0xCA,0xD5,0x6A,0xAE,0x95,0x61,0xEF,0xB9,0x89,0x00,0xD9,0xF9,0xF0,0x28,0x08, + + 0x4F,0x8B,0xEC,0x54,0xD6,0x64,0x05,0x57,0xFD,0x11,0x95,0x66,0x8A,0x29,0xF7,0xDE, + + 0x4C,0xB2,0x02,0xD4,0x3D,0x7B,0xCD,0x7B,0xC2,0xC1,0x5A,0x8F,0xBF,0x6D,0x9E,0x70, + + 0xA3,0x7B,0xC4,0xBE,0x02,0xCE,0x8B,0x4F,0x41,0xCC,0x54,0x58,0xB5,0x4B,0x51,0xA8, + + 0xDA,0xFA,0x94,0xA2,0x9F,0xA1,0x13,0xFF,0xAD,0x19,0x3B,0xCF,0x84,0x44,0xE4,0xF1, + + 0xA6,0x8C,0x9B,0xD9,0x5F,0x66,0x4C,0x90,0x58,0x2F,0x70,0x5D,0x17,0x7B,0xA8,0xED, + + 0x04,0xE1,0xCB,0x9B,0xD4,0xF3,0xAC,0x12,0x1D,0x92,0xEE,0x98,0x9E,0x95,0x57,0xE1, + + 0x46,0xC7,0xA5,0x98,0x6A,0x19,0x0B,0x41,0xD2,0x0D,0x22,0x54,0x70,0x7F,0xF6,0xD9, + + 0xDA,0x16,0xFF,0xBC,0xDE,0x16,0x2D,0x8B,0x99,0x7E,0x82,0x55,0xA9,0xF7,0x76,0x3D, + + 0xD9,0x19,0xEB,0x38,0xDF,0x0C,0x74,0x20,0xE5,0x92,0x8C,0x5B,0x96,0x0B,0xFB,0x21, + + 0xA3,0xC8,0x67,0x2D,0xFF,0x4D,0x87,0x09,0x45,0x24,0x23,0x3C,0x00,0xC5,0x37,0x3C, + + 0x51,0xEB,0xCF,0x62,0xF5,0xBB,0xC2,0xC7,0x07,0x29,0x46,0x05,0x76,0x76,0xBE,0x20, + + 0x2B,0x9A,0xA3,0xF8,0xE2,0xF7,0xFF,0x71,0x2E,0x40,0x3D,0x36,0x00,0xF1,0xFB,0x0E, + + 0x57,0x67,0x86,0x7F,0xDC,0x38,0x28,0x9B,0xCD,0x67,0xDB,0x8A,0xAC,0x9B,0x01,0xE5, + + 0xF4,0x0C,0x8D,0x8D,0x41,0x0D,0x64,0xF8,0x15,0x76,0x1B,0x0A,0x7B,0x93,0xE7,0x5B, + + 0x16,0xDB,0x0F,0x05,0x74,0x6B,0x09,0xDB,0xC2,0x45,0x90,0x1F,0x68,0x59,0x37,0xE1, + + 0x22,0x3D,0xF1,0x90,0xF9,0xF5,0x9F,0x4B,0x65,0x48,0xE0,0x42,0xF9,0xB9,0x99,0xB8, + + 0xD5,0xDE,0x6D,0x22,0xB1,0xBE,0x4E,0xD3,0x95,0xDA,0xFE,0x59,0x1D,0xDC,0xF7,0x29, + + 0xAB,0x10,0x86,0xC1,0xBB,0x69,0x05,0x81,0xE2,0x4B,0x68,0x18,0x5B,0x06,0x2D,0x96, + + 0x13,0x3F,0x50,0xCE,0x33,0xB2,0x59,0x51,0x4F,0x6F,0x8F,0x07,0xF4,0x53,0xBE,0x28, + + 0x23,0x92,0x4B,0xCC,0x33,0x79,0x37,0x6F,0x72,0x62,0x00,0x8D,0x08,0x40,0x59,0x07, + + 0xE5,0x9F,0x32,0x80,0x65,0xB4,0xA7,0x04,0xCF,0x42,0xC0,0xC9,0x40,0x20,0xCD,0xF8, + + 0x81,0xCC,0xE8,0x5E,0xA7,0x2E,0x70,0x3F,0xC5,0x15,0xB0,0xD6,0xD0,0x05,0x3E,0x46, + + 0x52,0x08,0x11,0x77,0x7B,0x38,0xA6,0x20,0x4D,0x4E,0x1A,0x1D,0x51,0x6F,0x16,0x71, + + 0x87,0x88,0xF7,0xCD,0x7A,0xCA,0xBD,0xB5,0xA3,0x98,0xB1,0x33,0x50,0x6D,0xC0,0x1C, + + 0x0D,0x46,0x90,0xDD,0xF3,0x2B,0xFF,0x8E,0xBB,0x4B,0xD4,0x94,0xEF,0xB5,0x01,0xA8, + + 0x92,0xBE,0x82,0x49,0x91,0x26,0x20,0xF2,0x9E,0x5A,0xF6,0x87,0xDF,0x68,0xD1,0xD5, + + 0x84,0x2C,0xA1,0x47,0xEB,0x2B,0x31,0x3E,0x79,0x3B,0xAF,0x63,0x33,0xE5,0x7B,0xA0, + + 0xED,0x45,0x0C,0xB7,0x97,0xAD,0x67,0xA0,0x60,0x41,0xA6,0x0A,0x5E,0xD1,0xFE,0x31, + + 0x0E,0x1B,0x59,0x52,0x67,0x42,0x42,0xB6,0xB3,0xE5,0xCC,0xEE,0x4A,0x2A,0xED,0xD8, + + 0x4D,0xF5,0xC0,0xB7,0x6E,0x75,0x6C,0xDA,0x81,0x4A,0xDE,0xBE,0x58,0x0E,0xF2,0x6B, + + 0x7B,0x66,0x5E,0x10,0x63,0x68,0x61,0xCB,0x64,0xE7,0x93,0x21,0xDE,0xC0,0x30,0x46, + + 0x5C,0xB6,0x54,0xB7,0xA6,0xDB,0xBB,0x2A,0xB5,0x2F,0xA1,0xDF,0x5B,0x43,0x9F,0x48, + + 0x3D,0x08,0x11,0xBD,0xB9,0x6C,0x5A,0x07,0x29,0x6C,0xDA,0x7C,0x0E,0xBB,0xB2,0xDC, + + 0x2F,0xFD,0x0A,0x7D,0x61,0x6F,0x3A,0x38,0xB4,0x40,0x49,0x8F,0xDF,0xE0,0x9C,0x48, + + 0x8C,0x36,0x7C,0xC9,0xBA,0x55,0x2B,0xC9,0x35,0xF1,0x51,0x02,0xB9,0x5F,0x8B,0x58, + + 0xF9,0xD4,0xDB,0x31,0x6A,0x20,0x4B,0x1B,0x70,0x0E,0x89,0x2B,0x30,0x0B,0x97,0xF2, + + 0x83,0x51,0xC1,0x74,0xA0,0x91,0x94,0x51,0xA2,0xD0,0xCD,0xB2,0x14,0x8F,0x46,0x95, + + 0xDE,0x50,0x8B,0xAB,0x5D,0x73,0xDC,0x00,0x6E,0xFA,0x23,0xEF,0x88,0xAE,0x65,0x83, + + 0xF9,0x1F,0x13,0x6F,0x15,0x3B,0x2F,0x25,0x82,0x8B,0x55,0xE4,0xFA,0xCE,0x53,0x73, + + 0xA5,0x15,0xC7,0xC2,0xB7,0x08,0xB8,0xB5,0x66,0x45,0xA3,0x00,0x4E,0x0E,0x3A,0xC7, + + 0x83,0xEB,0xD1,0x40,0x12,0xB4,0x2C,0xF9,0x98,0x92,0x68,0x9A,0xD1,0x11,0xEC,0xA2, + + 0x49,0xE6,0x4F,0x8B,0xC2,0xC9,0xB9,0x8A,0xF5,0x5D,0xE3,0xBF,0x92,0xCA,0x7B,0x81, + + 0x9E,0xB9,0xFD,0x3F,0x51,0x3F,0x3A,0xC5,0x6F,0xEB,0x6A,0x07,0xD6,0x4A,0x33,0xD6, + + 0x5E,0x18,0xE2,0xBE,0x6A,0x75,0x58,0x82,0xA2,0xA6,0xA6,0x7C,0x0E,0x46,0xF7,0xA0, + + 0x2C,0xB8,0xB8,0xB3,0x54,0x78,0x46,0x36,0x93,0xA3,0x69,0x6B,0xA2,0x70,0x0A,0xDF, + + 0xA8,0x17,0xAE,0xFE,0x1D,0x3F,0xA9,0x9C,0xEB,0x5D,0x61,0x98,0x85,0xE0,0x57,0x4E, + + 0xAA,0xEF,0x19,0xC2,0xF0,0xDB,0x17,0x6B,0x6B,0x1C,0x95,0xC2,0x0F,0xC7,0xCF,0x29, + + 0x7F,0xB4,0xAF,0x2D,0xDA,0x6E,0x17,0xDB,0x0A,0x52,0xA5,0x43,0x9A,0x5C,0x66,0xAE, + + 0x0E,0x72,0xCB,0xC3,0x3C,0x36,0xA9,0x9B,0x67,0x8F,0xA8,0xEA,0x9B,0xAF,0x66,0x1A, + + 0x40,0xDB,0xEE,0x02,0x1F,0x90,0x54,0x67,0x82,0x35,0xA1,0x8E,0x09,0xE2,0x07,0xF6, + + 0xA2,0x72,0xDC,0xDC,0xE9,0x0E,0xAC,0xCD,0x65,0xF3,0xA9,0xEA,0x5B,0xCF,0x4F,0xC2, + + 0x65,0xB4,0x52,0x32,0x42,0x4E,0xBC,0xB9,0xF3,0xF2,0xE2,0x1D,0x0E,0xC2,0x8B,0x1B, + + 0x84,0x1E,0x9A,0xFD,0x12,0x2A,0x0E,0x18,0xE7,0xA5,0x14,0x44,0x15,0xC0,0x48,0x53, + + 0x89,0x8C,0x30,0xFB,0x49,0x2C,0x38,0xF0,0xC6,0x87,0x18,0xF4,0xD9,0xEF,0x8E,0x7D, + + 0x59,0xC3,0xD4,0xFB,0x41,0x59,0x0F,0x18,0x67,0x39,0xC9,0xE5,0x57,0xEC,0x23,0x1B, + + 0x26,0x85,0xD6,0x13,0xD6,0x94,0x8E,0x17,0x4A,0xC1,0xC1,0xF5,0x74,0xA0,0x49,0xBF, + + 0xE6,0xFF,0x54,0x3D,0xB5,0x0F,0x4A,0x99,0x25,0x59,0xC8,0x99,0x72,0xA6,0xDD,0x56, + + 0x52,0x14,0xF8,0x04,0x11,0x84,0x40,0x83,0xE4,0x25,0x44,0x14,0xA4,0x80,0xA1,0xBA, + + 0x84,0x1D,0x99,0x43,0x6B,0xE4,0x66,0xE7,0xF4,0x0A,0x3D,0x0F,0x54,0x2A,0xCA,0xEE, + + 0x5B,0x8F,0xBE,0xD3,0xB7,0x3D,0x4B,0x4D,0x64,0xDC,0xC1,0x8C,0x5A,0x1A,0x2A,0x47, + + 0x6F,0xC8,0xC2,0x58,0x93,0xA5,0x85,0x2B,0xC1,0xC4,0x15,0x9A,0x5A,0xC0,0x68,0xF8, + + 0x8F,0xC1,0xD4,0x2B,0xF4,0x48,0x44,0xAD,0xAC,0x1A,0x65,0x3E,0xAA,0xEA,0x5B,0x89, + + 0x8D,0xD2,0xB9,0x0E,0xBF,0xEB,0x5B,0x54,0xAC,0x8A,0xF7,0x30,0xB2,0x17,0xBC,0xF9, + + 0x0F,0xC3,0x07,0x8C,0x86,0xA1,0x45,0xAD,0xA6,0x6D,0xBC,0xB2,0x34,0x28,0x41,0x0B, + + 0xD6,0xC4,0xD9,0xAC,0xB2,0x11,0xF6,0x34,0xC3,0xAE,0x95,0x95,0xAB,0x7A,0x54,0x1E, + + 0x33,0x22,0xD7,0x19,0xD5,0x97,0x85,0x8A,0xBE,0x7C,0x12,0x04,0x9D,0xED,0xDE,0x2B, + + 0x90,0xFC,0x9B,0x6B,0x7F,0x91,0xD8,0xEE,0x5D,0xF1,0x88,0x28,0x27,0x68,0xCB,0x29, + + 0xE5,0xA7,0xA3,0xC7,0xFC,0xD5,0xBB,0xD3,0x0A,0x32,0xF3,0x0C,0x5D,0x23,0x96,0x71, + + 0xC8,0x3B,0xDC,0x7A,0xB4,0x4B,0xB7,0x26,0x54,0xD0,0x27,0x22,0x46,0x26,0x4C,0x32, + + 0xF3,0x2E,0xAC,0x12,0x32,0xA8,0x26,0x9C,0x44,0xB1,0x2F,0x32,0x47,0xA6,0x13,0x8B, + + 0xA2,0x11,0xF5,0x7E,0xB8,0x29,0x55,0xA1,0xE5,0xDF,0x0A,0x45,0x97,0x9D,0x04,0xFC, + + 0x34,0x56,0x01,0xE5,0x6B,0x4C,0x67,0x4C,0x46,0xD5,0x87,0x55,0x96,0x03,0x02,0xCF, + + 0xC7,0x3B,0x19,0xB4,0x18,0xEB,0x7E,0x7D,0x99,0x79,0xFF,0x06,0x7A,0x0F,0xAC,0x62, + + 0x7C,0x3E,0xF6,0xD4,0x84,0x3E,0x46,0x0C,0x98,0x94,0x53,0xD2,0xF8,0xF7,0x07,0x47, + + 0xC4,0x9A,0x5A,0x80,0x28,0xEB,0xF9,0x7D,0x11,0x97,0x44,0xC3,0x2B,0x4B,0xC8,0x5B, + + 0x20,0x81,0xCD,0x5D,0xB6,0xD7,0x1D,0x53,0xB9,0xDA,0x4A,0xF6,0x7A,0xFB,0x54,0x82, + + 0xC8,0x3F,0x9C,0x10,0xBE,0xBC,0x12,0xAA,0xCD,0x5F,0x21,0x51,0x28,0x2F,0x2F,0xAC, + + 0xD5,0x62,0xD6,0x62,0xBD,0x42,0xFE,0x9E,0x47,0xD2,0x61,0xC4,0x42,0x3F,0x16,0xDB, + + 0x48,0x0F,0x75,0x6D,0x10,0x47,0x33,0xB7,0x0D,0xD5,0x36,0xC5,0x8B,0x36,0x2F,0x59, + + 0x2E,0xDD,0xFE,0x67,0x3D,0x00,0xB9,0x44,0xEB,0x4A,0x66,0xBF,0x1C,0x44,0x36,0x54, + + 0xD5,0x67,0x51,0xA3,0x1A,0x41,0x3C,0x14,0xCD,0xDA,0x9E,0x6A,0x1C,0x75,0xD9,0xFE, + + 0xAD,0x61,0x51,0x45,0xC0,0xFC,0x1E,0x5A,0x31,0xD0,0x80,0xCD,0x79,0x7E,0x67,0x09, + + 0x2D,0xD8,0x4B,0x54,0xBF,0x3E,0xFF,0x3F,0x0F,0xD1,0x54,0xD9,0x22,0x1B,0x92,0xA4, + + 0x0C,0x99,0x30,0xDF,0x9B,0x64,0x35,0x00,0x4C,0xD9,0x36,0x0E,0x63,0xBF,0xE8,0x8A, + + 0x22,0xD6,0x63,0xFA,0x34,0x5C,0x04,0x99,0x46,0x41,0xCA,0xCB,0x2C,0xCF,0x60,0x96, + + 0xFD,0x40,0x21,0xE5,0x29,0x05,0x27,0xD2,0x65,0x2F,0xE6,0x33,0xF0,0x0D,0x7E,0xFC, + + 0x80,0x0C,0x3E,0x4A,0x05,0xFF,0x3D,0x5B,0x63,0x27,0x31,0x57,0xB2,0x5E,0x53,0xC5, + + 0xFD,0x41,0xD7,0x39,0x10,0x98,0x59,0x0E,0xC9,0x2F,0x7A,0x25,0x2E,0x22,0xB6,0x32, + + 0xA1,0x02,0x99,0xA1,0x71,0xDF,0xE7,0x44,0xC0,0x4C,0x38,0xD7,0xD7,0x23,0xB3,0xB2, + + 0xA2,0x8F,0x30,0x26,0x20,0x0F,0x50,0xDE,0xE2,0xCF,0xAC,0x50,0x55,0x45,0x49,0xF7, + + 0x23,0x8C,0x39,0x4D,0xF1,0xD9,0xA4,0x13,0x61,0x40,0x11,0x78,0x61,0x2A,0xCE,0x01, + + 0x82,0x08,0x31,0xBD,0x9A,0x68,0xA2,0x93,0x62,0xCD,0x7E,0x33,0x71,0x29,0x12,0x2A, + + 0xA9,0xD7,0xC2,0xF4,0xA6,0x8C,0x3A,0xEA,0x4E,0xCB,0x2D,0x70,0x7B,0xC8,0x1E,0x48, + + 0xFC,0x06,0x00,0x23,0x2D,0xFC,0xDA,0x88,0x12,0xE2,0x19,0x47,0x08,0x62,0x59,0x93, + + 0xF4,0x48,0x99,0x5C,0x50,0x83,0x09,0xAD,0xAA,0x46,0x14,0x92,0xD8,0x4A,0x51,0x68, + + 0xF5,0x49,0x9E,0x19,0x84,0x89,0xBE,0x3D,0x4E,0x5D,0x9D,0x24,0x23,0x6B,0x22,0x08, + + 0xE8,0xD1,0x52,0xCE,0x38,0x3E,0xD5,0x8A,0xC8,0x44,0xA6,0x48,0x7A,0xCD,0xDA,0x1E, + + 0xA1,0xF6,0xFF,0xBE,0xB7,0xA6,0xE5,0x9A,0x6F,0xC0,0x60,0xEE,0x2B,0x7F,0x3B,0x6E, + + 0x77,0x01,0x93,0x41,0x8A,0xA5,0x22,0x17,0x69,0x2B,0x93,0xAA,0xE9,0xA8,0x4D,0xDD, + + 0x83,0xFB,0xFB,0xBF,0xBF,0xA4,0xA0,0x07,0xAB,0xDE,0x61,0x0D,0x5B,0xE9,0x04,0x04, + + 0x65,0x03,0x50,0x6B,0x5B,0x88,0xE4,0xAC,0x40,0x40,0xEB,0x59,0x70,0x7E,0x74,0xB7, + + 0xDC,0x1E,0xF2,0xC8,0x21,0x7C,0xDC,0x94,0x4B,0x58,0xB4,0xD6,0xF0,0x7E,0x65,0x21, + + 0xE6,0x9F,0x85,0x6D,0xA0,0x7F,0x95,0xB0,0xD5,0x13,0xFD,0x23,0x0C,0x33,0x9D,0xE3, + + 0x4A,0xF2,0xF3,0xC8,0x82,0x63,0x5F,0x59,0x5B,0x1E,0xB5,0xB2,0x70,0x37,0x1D,0xC0, + + 0x24,0xDF,0x1B,0x44,0x45,0x43,0x0E,0xFD,0xC1,0x52,0xB6,0x78,0x71,0xE4,0x5F,0xE6, + + 0x25,0xF5,0x4F,0x13,0x11,0x97,0xDC,0x12,0x47,0xD8,0x1C,0xAC,0x22,0xA8,0x4D,0x3C, + + 0xA6,0x54,0x05,0xED,0x49,0x74,0x59,0x9F,0x43,0xDE,0x8C,0x63,0x17,0xB6,0x71,0xF5, + + 0xA5,0x7D,0x49,0x51,0xA3,0x37,0x23,0xE8,0xD0,0x41,0xA5,0xD2,0x0E,0x78,0x5C,0xB4, + + 0x40,0xF9,0x3E,0x7F,0x3B,0x28,0x00,0xC0,0xCF,0x15,0xBE,0x6E,0x13,0x76,0xE2,0x0A, + + 0x21,0x11,0xAD,0x38,0xE1,0x5A,0x1D,0x3A,0x60,0x3D,0xF6,0x7E,0xFA,0x3D,0xC7,0xA9, + + 0xE8,0x17,0x3F,0x7E,0xB3,0x7B,0xFB,0x3B,0xAA,0x52,0xD7,0x29,0xD2,0x41,0x09,0xA6, + + 0xC5,0x59,0x4F,0x58,0xC2,0xC0,0x27,0xE9,0xE1,0x54,0xF7,0xBA,0x7A,0x74,0x5F,0x4A, + + 0xEF,0x71,0x46,0x78,0x9E,0x7E,0xAC,0xAE,0x06,0x4C,0x46,0x9E,0x85,0xF7,0x36,0x5C, + + 0x7A,0x95,0xF0,0xB0,0x18,0x4D,0x5F,0x1E,0x58,0xCB,0x2F,0x9E,0x8C,0x11,0xFC,0x2B, + + 0x06,0xE3,0x0B,0x4C,0x1C,0x6E,0xAD,0x01,0x03,0x11,0x2B,0xD0,0xFC,0x6D,0x57,0xDC, + + 0x55,0x7F,0x89,0xB1,0xBD,0xCD,0xA5,0xBF,0xD3,0x4D,0x1B,0x1F,0xA7,0x88,0x30,0x2D, + + 0xA5,0x5F,0x8C,0x0A,0x9D,0x90,0x60,0xBC,0xBF,0x3B,0xB4,0x3E,0x52,0xC0,0x3C,0x4A, + + 0xF0,0x8E,0xA8,0x55,0x07,0xE9,0x8F,0x16,0xAC,0x98,0x67,0xC9,0x71,0xA0,0x7B,0x2C, + + 0xF8,0xC0,0x8D,0x17,0x9C,0x16,0x31,0xE1,0x47,0x84,0x1F,0x59,0xF5,0x82,0xB9,0x61, + + 0x76,0x3C,0x04,0x94,0x95,0xA3,0x95,0xA0,0xF8,0xCB,0x55,0xB7,0x29,0xC3,0xBF,0x57, + + 0x81,0x83,0xD5,0xA4,0xBA,0x2F,0x0F,0x10,0x24,0x87,0xD4,0x26,0x52,0x8A,0x80,0xF0, + + 0xA3,0x02,0xE0,0x61,0xB6,0x7A,0x06,0x74,0x97,0xA1,0x83,0xEF,0xAA,0x54,0xC9,0xE1, + + 0x59,0xD9,0xF1,0xA5,0xB2,0xA0,0x0A,0x18,0xA7,0xA6,0x61,0x20,0xF2,0x6B,0x89,0x6E, + + 0x02,0x80,0x89,0x17,0x7B,0xAA,0xC6,0x91,0x93,0x10,0x87,0x71,0x36,0x34,0xFF,0x8A, + + 0x3B,0x69,0x2A,0x41,0xC0,0xA8,0xB6,0x8A,0x5C,0x18,0x1E,0x6C,0xDF,0xAA,0xD1,0xF7, + + 0x75,0xD2,0xAA,0x5D,0x3B,0xA9,0x70,0xA1,0x4B,0xA1,0x76,0xCF,0xC1,0xA9,0x5E,0xE1, + + 0x8A,0xCA,0xA3,0x4E,0x01,0x7E,0xF3,0xEE,0xC6,0x88,0xE1,0x5F,0xDA,0x69,0xDE,0xF2, + + 0x9D,0x90,0x1B,0x13,0x33,0x26,0x89,0xBF,0x8E,0xE0,0x53,0xB5,0xFF,0x3D,0x72,0x77, + + 0xEB,0xCD,0x4E,0xD0,0x93,0x5A,0x32,0x05,0x6A,0xCA,0x8C,0x69,0xFF,0x7D,0xE9,0xDF, + + 0x70,0xED,0xEE,0x19,0x1C,0xA2,0x81,0x98,0xE3,0xC0,0x55,0x04,0x82,0xAC,0xA3,0xCF, + + 0xC8,0x8F,0xEB,0x4A,0x11,0xAA,0x7F,0x10,0x6F,0x44,0x88,0x14,0xFD,0xC1,0xAB,0x63, + + 0x6B,0xCD,0x7B,0xDB,0x98,0xF0,0x31,0x85,0x6C,0xAA,0xA2,0xF9,0x3A,0x83,0xAC,0xE6, + + 0x6C,0x71,0xB4,0x02,0x3C,0x84,0xA4,0xD0,0x57,0xE7,0xDC,0xC4,0x52,0xF6,0xAB,0xD2, + + 0xCC,0xD0,0x0B,0xA9,0x1B,0xF3,0x04,0x49,0x84,0xB2,0xDC,0xF6,0xD3,0xFC,0x1B,0xB6, + + 0x29,0x14,0x12,0x23,0xB2,0x92,0xCD,0x87,0x45,0x73,0xBD,0x00,0x15,0xFD,0x92,0x17, + + 0x85,0xCA,0x61,0x99,0xB3,0xF9,0x46,0x74,0x18,0x65,0xB7,0xB6,0x56,0xFE,0xE0,0xC6, + + 0x21,0xF3,0x88,0x42,0x75,0x02,0xAE,0x46,0x42,0x96,0x75,0x05,0x72,0x2C,0x80,0x52, + + 0xDB,0xB5,0x00,0x56,0xCB,0x95,0x46,0x1A,0x58,0x1A,0xC6,0x0C,0xAA,0x68,0xA5,0x13, + + 0x26,0xD7,0x25,0x7B,0x97,0xF7,0xF9,0xF3,0x63,0x86,0xC5,0xB9,0x0B,0x2A,0xC1,0x91, + + 0x24,0xD5,0x41,0x55,0xB6,0x72,0xD5,0x73,0x62,0xC7,0x52,0xAC,0x02,0x4B,0xE6,0xAB, + + 0x56,0xDA,0xE3,0x8A,0x77,0x19,0x8D,0x30,0x6D,0x38,0xFC,0xB3,0x3D,0xFD,0x9A,0xE1, + + 0x8E,0x64,0x0E,0xEC,0x5F,0x85,0x5D,0x44,0x49,0xB5,0x05,0x5C,0xD1,0x04,0x37,0x63, + + 0x5D,0x95,0xFD,0x61,0xC0,0x15,0x88,0x30,0x13,0x07,0xCF,0x2D,0xFD,0xFD,0xEF,0xBB, + + 0xFE,0xD9,0xD1,0x98,0x1C,0x64,0x00,0x24,0x12,0x46,0xC7,0x9B,0x7F,0xF3,0x34,0x36, + + 0x0C,0x4A,0xDE,0x3D,0x4A,0x18,0x08,0x86,0x5D,0x4E,0x36,0x3E,0x23,0x6C,0x9D,0xE1, + + 0xD5,0x08,0x5D,0xE2,0xC3,0x4C,0x7C,0xDE,0x04,0x87,0x3E,0xA3,0xD3,0xBF,0x18,0xF4, + + 0x50,0x4B,0x08,0xF2,0x38,0x4B,0x8F,0xAD,0xEA,0x90,0x84,0xC2,0x51,0xBF,0x1C,0x19, + + 0x2C,0xD9,0x7F,0x81,0x42,0x63,0x5F,0x0A,0xF0,0xDF,0xF4,0xAF,0xDC,0x9F,0x80,0xC4, + + 0xAE,0xF7,0x5D,0x05,0x14,0xF8,0x70,0x61,0xB5,0x4D,0x90,0x24,0x50,0x60,0x28,0x34, + + 0x07,0xF9,0xD2,0x15,0xB2,0x85,0x14,0x4B,0xE0,0xC9,0x98,0x34,0x51,0x61,0x05,0x04, + + 0x86,0x88,0x58,0x87,0x4D,0xAD,0x5B,0xDA,0x63,0x44,0x91,0x25,0xD0,0x62,0xBD,0x95, + + 0xD0,0x8B,0x02,0xC4,0x95,0xFB,0x1D,0xD3,0xE5,0x58,0x99,0x35,0xD1,0x63,0x40,0x40, + + 0x02,0x04,0xC0,0x44,0x12,0x24,0x50,0x60,0x42,0x44,0xD0,0x64,0x52,0x64,0x48,0x50, + + 0x03,0x05,0xC8,0x54,0x13,0x25,0x58,0x70,0x43,0x45,0xD8,0x74,0x53,0x65,0x41,0x41, + + 0x82,0x06,0xC1,0x45,0x92,0x26,0x51,0x61,0xC2,0x46,0xD1,0x65,0xD2,0x66,0x49,0x51, + + 0x83,0x07,0xC9,0x55,0x93,0x27,0x59,0x71,0xC3,0x47,0xD9,0x75,0xD3,0x67,0x1A,0x0D, + + 0xF6,0x68,0x5B,0x8E,0x19,0x4F,0xCF,0x5E,0xBF,0xE5,0x92,0x2C,0x58,0x68,0xCA,0xDC, + + 0xA7,0x48,0x35,0xFE,0x3D,0xDD,0x65,0xBC,0x14,0x33,0x9A,0x3C,0x59,0x69,0x87,0x0D, + + 0xCB,0x0E,0xBB,0xF2,0x79,0x25,0x8E,0x37,0x6B,0xCF,0x93,0x2D,0xD8,0x6A,0xE7,0x99, + + 0x75,0x2B,0x5B,0x99,0xDA,0xC7,0x8B,0xBB,0xCC,0x0F,0x9B,0x3D,0xD9,0x6B,0x42,0x48, + + 0x0A,0x0C,0xC2,0x4C,0x1A,0x2C,0x52,0x68,0x4A,0x4C,0xD2,0x6C,0x5A,0x6C,0x4A,0x58, + + 0x0B,0x0D,0xCA,0x5C,0x1B,0x2D,0x5A,0x78,0x4B,0x4D,0xDA,0x7C,0x5B,0x6D,0x43,0x49, + + 0x8A,0x0E,0xC3,0x4D,0x9A,0x2E,0x53,0x69,0xCA,0x4E,0xD3,0x6D,0xDA,0x6E,0x4B,0x59, + + 0x8B,0x0F,0xCB,0x5D,0x9B,0x2F,0x5B,0x79,0xCB,0x4F,0xDB,0x7D,0xDB,0x6F,0x5B,0x70, + + 0x24,0x1F,0x84,0x84,0x30,0x30,0xD1,0xDB,0xC3,0x35,0x94,0xA4,0x70,0x70,0x0E,0xE6, + + 0x6B,0xBB,0x8C,0x94,0x31,0x31,0x0A,0xD2,0x09,0x5C,0x9C,0xB4,0x71,0x71,0x65,0x25, + + 0xE1,0x50,0x85,0x85,0xB0,0x32,0x35,0x56,0xC4,0xAF,0x95,0xA5,0xF0,0x72,0x43,0x40, + + 0x85,0xEF,0x8D,0x95,0xB1,0x33,0xDD,0x95,0x96,0x48,0x9D,0xB5,0xF1,0x73,0x44,0xC0, + + 0x22,0x14,0xC4,0xC4,0x32,0x34,0x54,0xE0,0x62,0x54,0xD4,0xE4,0x72,0x74,0x4C,0xD0, + + 0x23,0x15,0xCC,0xD4,0x33,0x35,0x5C,0xF0,0x63,0x55,0xDC,0xF4,0x73,0x75,0x45,0xC1, + + 0xA2,0x16,0xC5,0xC5,0xB2,0x36,0x55,0xE1,0xE2,0x56,0xD5,0xE5,0xF2,0x76,0x4D,0xD1, + + 0xA3,0x17,0xCD,0xD5,0xB3,0x37,0x5D,0xF1,0xE3,0x57,0xDD,0xF5,0xF3,0x77,0x1C,0x8D, + + 0xF5,0x95,0x86,0x8C,0x38,0x38,0xDD,0xAC,0x28,0x14,0x96,0xAC,0x78,0x78,0xDE,0x87, + + 0xAD,0xB6,0x8E,0x9C,0x39,0x39,0xDE,0xE0,0x38,0x54,0x9E,0xBC,0x79,0x79,0x90,0x76, + + 0x49,0x99,0x87,0x8D,0xB8,0x3A,0x4E,0x2F,0xAE,0x97,0x97,0xAD,0xF8,0x7A,0xAB,0xE2, + + 0x0A,0x5A,0x8F,0x9D,0xB9,0x3B,0xE4,0x9E,0x48,0xA4,0x9F,0xBD,0xF9,0x7B,0x46,0xC8, + + 0x2A,0x1C,0xC6,0xCC,0x3A,0x3C,0x56,0xE8,0x6A,0x5C,0xD6,0xEC,0x7A,0x7C,0x4E,0xD8, + + 0x2B,0x1D,0xCE,0xDC,0x3B,0x3D,0x5E,0xF8,0x6B,0x5D,0xDE,0xFC,0x7B,0x7D,0x47,0xC9, + + 0xAA,0x1E,0xC7,0xCD,0xBA,0x3E,0x57,0xE9,0xEA,0x5E,0xD7,0xED,0xFA,0x7E,0x4F,0xD9, + + 0xAB,0x1F,0xCF,0xDD,0xBB,0x3F,0x5F,0xF9,0xEB,0x5F,0xDF,0xFD,0xFB,0x7F,0x8C,0x40, + + 0x87,0x80,0x17,0xA2,0x10,0x49,0x0A,0xC0,0xC6,0x83,0xB0,0x26,0x54,0xE0,0x40,0xD0, + + 0x83,0x74,0xAA,0x92,0x1A,0xF5,0xB8,0xE2,0x33,0x3C,0xB8,0x36,0x55,0xE1,0x7F,0x14, + + 0x8C,0x82,0x0C,0x41,0x3E,0x59,0xB9,0xC1,0x68,0xCD,0xB1,0x27,0xD4,0xE2,0xB9,0xFB, + + 0xC5,0xCE,0x39,0x17,0x95,0xA3,0xD5,0xA8,0xC4,0x43,0xB9,0x37,0xD5,0xE3,0x60,0x42, + + 0x06,0x84,0xE0,0x46,0x16,0xA4,0x70,0x62,0x46,0xC4,0xF0,0x66,0x56,0xE4,0x68,0x52, + + 0x07,0x85,0xE8,0x56,0x17,0xA5,0x78,0x72,0x47,0xC5,0xF8,0x76,0x57,0xE5,0x61,0x43, + + 0x86,0x86,0xE1,0x47,0x96,0xA6,0x71,0x63,0xC6,0xC6,0xF1,0x67,0xD6,0xE6,0x69,0x53, + + 0x87,0x87,0xE9,0x57,0x97,0xA7,0x79,0x73,0xC7,0xC7,0xF9,0x77,0xD7,0xE7,0x8E,0xE2, + + 0x33,0x4E,0xA2,0x0E,0x1C,0xA8,0x8D,0xB1,0xB3,0x89,0xB2,0x2E,0x5C,0xE8,0x18,0xE1, + + 0x0B,0x71,0xAA,0x1E,0x1D,0xA9,0xAA,0x25,0xC9,0x1D,0xBA,0x3E,0x5D,0xE9,0x61,0x18, + + 0xB1,0x85,0xA3,0x0F,0x9C,0xAA,0x9F,0x50,0x12,0x35,0xB3,0x2F,0xDC,0xEA,0xE6,0x3F, + + 0x0F,0xC3,0xAB,0x1F,0x9D,0xAB,0x9F,0x54,0xEC,0x0B,0xBB,0x3F,0xDD,0xEB,0x62,0x4A, + + 0x0E,0x8C,0xE2,0x4E,0x1E,0xAC,0x72,0x6A,0x4E,0xCC,0xF2,0x6E,0x5E,0xEC,0x6A,0x5A, + + 0x0F,0x8D,0xEA,0x5E,0x1F,0xAD,0x7A,0x7A,0x4F,0xCD,0xFA,0x7E,0x5F,0xED,0x63,0x4B, + + 0x8E,0x8E,0xE3,0x4F,0x9E,0xAE,0x73,0x6B,0xCE,0xCE,0xF3,0x6F,0xDE,0xEE,0x6B,0x5B, + + 0x8F,0x8F,0xEB,0x5F,0x9F,0xAF,0x7B,0x7B,0xCF,0xCF,0xFB,0x7F,0xDF,0xEF,0x88,0xFC, + + 0x45,0x94,0xA4,0x86,0x34,0xB0,0xA4,0x65,0x8D,0xAA,0xB4,0xA6,0x74,0xF0,0x80,0xE0, + + 0xFB,0x6E,0xAC,0x96,0x35,0xB1,0x45,0xC3,0x72,0xC7,0xBC,0xB6,0x75,0xF1,0x47,0x81, + + 0xA7,0x82,0xA5,0x87,0xB4,0xB2,0x53,0xD7,0x87,0xD6,0xB5,0xA7,0xF4,0xF2,0x17,0x0D, + + 0x52,0xD2,0xAD,0x97,0xB5,0xB3,0xAD,0x31,0xE4,0xAB,0xBD,0xB7,0xF5,0xF3,0x64,0xC2, + + 0x26,0x94,0xE4,0xC6,0x36,0xB4,0x74,0xE2,0x66,0xD4,0xF4,0xE6,0x76,0xF4,0x6C,0xD2, + + 0x27,0x95,0xEC,0xD6,0x37,0xB5,0x7C,0xF2,0x67,0xD5,0xFC,0xF6,0x77,0xF5,0x65,0xC3, + + 0xA6,0x96,0xE5,0xC7,0xB6,0xB6,0x75,0xE3,0xE6,0xD6,0xF5,0xE7,0xF6,0xF6,0x6D,0xD3, + + 0xA7,0x97,0xED,0xD7,0xB7,0xB7,0x7D,0xF3,0xE7,0xD7,0xFD,0xF7,0xF7,0xF7,0xB6,0x08, + + 0x0E,0xF8,0xA6,0x8E,0x3C,0xB8,0x6C,0xAF,0xCF,0xDE,0xB6,0xAE,0x7C,0xF8,0x51,0x18, + + 0x0F,0xF9,0xAE,0x9E,0x3D,0xB9,0xAE,0x38,0xB0,0x56,0xBE,0xBE,0x7D,0xF9,0x1D,0x69, + + 0x8E,0x65,0xA7,0x8F,0xBC,0xBA,0x3F,0xE7,0x0D,0xD5,0xB7,0xAF,0xFC,0xFA,0x75,0x9A, + + 0x0E,0xDA,0xAF,0x9F,0xBD,0xBB,0x05,0x59,0x71,0x71,0xBF,0xBF,0xFD,0xFB,0x66,0xCA, + + 0x2E,0x9C,0xE6,0xCE,0x3E,0xBC,0x76,0xEA,0x6E,0xDC,0xF6,0xEE,0x7E,0xFC,0x6E,0xDA, + + 0x2F,0x9D,0xEE,0xDE,0x3F,0xBD,0x7E,0xFA,0x6F,0xDD,0xFE,0xFE,0x7F,0xFD,0x67,0xCB, + + 0xAE,0x9E,0xE7,0xCF,0xBE,0xBE,0x77,0xEB,0xEE,0xDE,0xF7,0xEF,0xFE,0xFE,0x6F,0xDB, + + 0xAF,0x9F,0xEF,0xDF,0xBF,0xBF,0x7F,0xFB,0xEF,0xDF,0xFF,0xFF,0xFF,0xFF,0x00,0x00, + + 0x00,0x00,0x80,0x04,0x10,0x20,0x10,0x20,0x40,0x40,0x90,0x24,0x50,0x60,0x08,0x10, + + 0x01,0x01,0x88,0x14,0x11,0x21,0x18,0x30,0x41,0x41,0x98,0x34,0x51,0x61,0x01,0x01, + + 0x80,0x02,0x81,0x05,0x90,0x22,0x11,0x21,0xC0,0x42,0x91,0x25,0xD0,0x62,0x09,0x11, + + 0x81,0x03,0x89,0x15,0x91,0x23,0x19,0x31,0xC1,0x43,0x99,0x35,0xD1,0x63,0x40,0x40, + + 0x02,0x04,0xC0,0x44,0x12,0x24,0x50,0x60,0x42,0x44,0xD0,0x64,0x52,0x64,0x48,0x50, + + 0x03,0x05,0xC8,0x54,0x13,0x25,0x58,0x70,0x43,0x45,0xD8,0x74,0x53,0x65,0x41,0x41, + + 0x82,0x06,0xC1,0x45,0x92,0x26,0x51,0x61,0xC2,0x46,0xD1,0x65,0xD2,0x66,0x49,0x51, + + 0x83,0x07,0xC9,0x55,0x93,0x27,0x59,0x71,0xC3,0x47,0xD9,0x75,0xD3,0x67,0x02,0x08, + + 0x08,0x08,0x82,0x0C,0x18,0x28,0x12,0x28,0x48,0x48,0x92,0x2C,0x58,0x68,0x0A,0x18, + + 0x09,0x09,0x8A,0x1C,0x19,0x29,0x1A,0x38,0x49,0x49,0x9A,0x3C,0x59,0x69,0x03,0x09, + + 0x88,0x0A,0x83,0x0D,0x98,0x2A,0x13,0x29,0xC8,0x4A,0x93,0x2D,0xD8,0x6A,0x0B,0x19, + + 0x89,0x0B,0x8B,0x1D,0x99,0x2B,0x1B,0x39,0xC9,0x4B,0x9B,0x3D,0xD9,0x6B,0x42,0x48, + + 0x0A,0x0C,0xC2,0x4C,0x1A,0x2C,0x52,0x68,0x4A,0x4C,0xD2,0x6C,0x5A,0x6C,0x4A,0x58, + + 0x0B,0x0D,0xCA,0x5C,0x1B,0x2D,0x5A,0x78,0x4B,0x4D,0xDA,0x7C,0x5B,0x6D,0x43,0x49, + + 0x8A,0x0E,0xC3,0x4D,0x9A,0x2E,0x53,0x69,0xCA,0x4E,0xD3,0x6D,0xDA,0x6E,0x4B,0x59, + + 0x8B,0x0F,0xCB,0x5D,0x9B,0x2F,0x5B,0x79,0xCB,0x4F,0xDB,0x7D,0xDB,0x6F,0x04,0x80, + + 0x20,0x10,0x84,0x84,0x30,0x30,0x14,0xA0,0x60,0x50,0x94,0xA4,0x70,0x70,0x0C,0x90, + + 0x21,0x11,0x8C,0x94,0x31,0x31,0x1C,0xB0,0x61,0x51,0x9C,0xB4,0x71,0x71,0x05,0x81, + + 0xA0,0x12,0x85,0x85,0xB0,0x32,0x15,0xA1,0xE0,0x52,0x95,0xA5,0xF0,0x72,0x0D,0x91, + + 0xA1,0x13,0x8D,0x95,0xB1,0x33,0x1D,0xB1,0xE1,0x53,0x9D,0xB5,0xF1,0x73,0x44,0xC0, + + 0x22,0x14,0xC4,0xC4,0x32,0x34,0x54,0xE0,0x62,0x54,0xD4,0xE4,0x72,0x74,0x4C,0xD0, + + 0x23,0x15,0xCC,0xD4,0x33,0x35,0x5C,0xF0,0x63,0x55,0xDC,0xF4,0x73,0x75,0x45,0xC1, + + 0xA2,0x16,0xC5,0xC5,0xB2,0x36,0x55,0xE1,0xE2,0x56,0xD5,0xE5,0xF2,0x76,0x4D,0xD1, + + 0xA3,0x17,0xCD,0xD5,0xB3,0x37,0x5D,0xF1,0xE3,0x57,0xDD,0xF5,0xF3,0x77,0x06,0x88, + + 0x28,0x18,0x86,0x8C,0x38,0x38,0x16,0xA8,0x68,0x58,0x96,0xAC,0x78,0x78,0x0E,0x98, + + 0x29,0x19,0x8E,0x9C,0x39,0x39,0x1E,0xB8,0x69,0x59,0x9E,0xBC,0x79,0x79,0x07,0x89, + + 0xA8,0x1A,0x87,0x8D,0xB8,0x3A,0x17,0xA9,0xE8,0x5A,0x97,0xAD,0xF8,0x7A,0x0F,0x99, + + 0xA9,0x1B,0x8F,0x9D,0xB9,0x3B,0x1F,0xB9,0xE9,0x5B,0x9F,0xBD,0xF9,0x7B,0x46,0xC8, + + 0x2A,0x1C,0xC6,0xCC,0x3A,0x3C,0x56,0xE8,0x6A,0x5C,0xD6,0xEC,0x7A,0x7C,0x4E,0xD8, + + 0x2B,0x1D,0xCE,0xDC,0x3B,0x3D,0x5E,0xF8,0x6B,0x5D,0xDE,0xFC,0x7B,0x7D,0x47,0xC9, + + 0xAA,0x1E,0xC7,0xCD,0xBA,0x3E,0x57,0xE9,0xEA,0x5E,0xD7,0xED,0xFA,0x7E,0x4F,0xD9, + + 0xAB,0x1F,0xCF,0xDD,0xBB,0x3F,0x5F,0xF9,0xEB,0x5F,0xDF,0xFD,0xFB,0x7F,0x20,0x02, + + 0x04,0x80,0xA0,0x06,0x14,0xA0,0x30,0x22,0x44,0xC0,0xB0,0x26,0x54,0xE0,0x28,0x12, + + 0x05,0x81,0xA8,0x16,0x15,0xA1,0x38,0x32,0x45,0xC1,0xB8,0x36,0x55,0xE1,0x21,0x03, + + 0x84,0x82,0xA1,0x07,0x94,0xA2,0x31,0x23,0xC4,0xC2,0xB1,0x27,0xD4,0xE2,0x29,0x13, + + 0x85,0x83,0xA9,0x17,0x95,0xA3,0x39,0x33,0xC5,0xC3,0xB9,0x37,0xD5,0xE3,0x60,0x42, + + 0x06,0x84,0xE0,0x46,0x16,0xA4,0x70,0x62,0x46,0xC4,0xF0,0x66,0x56,0xE4,0x68,0x52, + + 0x07,0x85,0xE8,0x56,0x17,0xA5,0x78,0x72,0x47,0xC5,0xF8,0x76,0x57,0xE5,0x61,0x43, + + 0x86,0x86,0xE1,0x47,0x96,0xA6,0x71,0x63,0xC6,0xC6,0xF1,0x67,0xD6,0xE6,0x69,0x53, + + 0x87,0x87,0xE9,0x57,0x97,0xA7,0x79,0x73,0xC7,0xC7,0xF9,0x77,0xD7,0xE7,0x22,0x0A, + + 0x0C,0x88,0xA2,0x0E,0x1C,0xA8,0x32,0x2A,0x4C,0xC8,0xB2,0x2E,0x5C,0xE8,0x2A,0x1A, + + 0x0D,0x89,0xAA,0x1E,0x1D,0xA9,0x3A,0x3A,0x4D,0xC9,0xBA,0x3E,0x5D,0xE9,0x23,0x0B, + + 0x8C,0x8A,0xA3,0x0F,0x9C,0xAA,0x33,0x2B,0xCC,0xCA,0xB3,0x2F,0xDC,0xEA,0x2B,0x1B, + + 0x8D,0x8B,0xAB,0x1F,0x9D,0xAB,0x3B,0x3B,0xCD,0xCB,0xBB,0x3F,0xDD,0xEB,0x62,0x4A, + + 0x0E,0x8C,0xE2,0x4E,0x1E,0xAC,0x72,0x6A,0x4E,0xCC,0xF2,0x6E,0x5E,0xEC,0x6A,0x5A, + + 0x0F,0x8D,0xEA,0x5E,0x1F,0xAD,0x7A,0x7A,0x4F,0xCD,0xFA,0x7E,0x5F,0xED,0x63,0x4B, + + 0x8E,0x8E,0xE3,0x4F,0x9E,0xAE,0x73,0x6B,0xCE,0xCE,0xF3,0x6F,0xDE,0xEE,0x6B,0x5B, + + 0x8F,0x8F,0xEB,0x5F,0x9F,0xAF,0x7B,0x7B,0xCF,0xCF,0xFB,0x7F,0xDF,0xEF,0x24,0x82, + + 0x24,0x90,0xA4,0x86,0x34,0xB0,0x34,0xA2,0x64,0xD0,0xB4,0xA6,0x74,0xF0,0x2C,0x92, + + 0x25,0x91,0xAC,0x96,0x35,0xB1,0x3C,0xB2,0x65,0xD1,0xBC,0xB6,0x75,0xF1,0x25,0x83, + + 0xA4,0x92,0xA5,0x87,0xB4,0xB2,0x35,0xA3,0xE4,0xD2,0xB5,0xA7,0xF4,0xF2,0x2D,0x93, + + 0xA5,0x93,0xAD,0x97,0xB5,0xB3,0x3D,0xB3,0xE5,0xD3,0xBD,0xB7,0xF5,0xF3,0x64,0xC2, + + 0x26,0x94,0xE4,0xC6,0x36,0xB4,0x74,0xE2,0x66,0xD4,0xF4,0xE6,0x76,0xF4,0x6C,0xD2, + + 0x27,0x95,0xEC,0xD6,0x37,0xB5,0x7C,0xF2,0x67,0xD5,0xFC,0xF6,0x77,0xF5,0x65,0xC3, + + 0xA6,0x96,0xE5,0xC7,0xB6,0xB6,0x75,0xE3,0xE6,0xD6,0xF5,0xE7,0xF6,0xF6,0x6D,0xD3, + + 0xA7,0x97,0xED,0xD7,0xB7,0xB7,0x7D,0xF3,0xE7,0xD7,0xFD,0xF7,0xF7,0xF7,0x26,0x8A, + + 0x2C,0x98,0xA6,0x8E,0x3C,0xB8,0x36,0xAA,0x6C,0xD8,0xB6,0xAE,0x7C,0xF8,0x2E,0x9A, + + 0x2D,0x99,0xAE,0x9E,0x3D,0xB9,0x3E,0xBA,0x6D,0xD9,0xBE,0xBE,0x7D,0xF9,0x27,0x8B, + + 0xAC,0x9A,0xA7,0x8F,0xBC,0xBA,0x37,0xAB,0xEC,0xDA,0xB7,0xAF,0xFC,0xFA,0x2F,0x9B, + + 0xAD,0x9B,0xAF,0x9F,0xBD,0xBB,0x3F,0xBB,0xED,0xDB,0xBF,0xBF,0xFD,0xFB,0x66,0xCA, + + 0x2E,0x9C,0xE6,0xCE,0x3E,0xBC,0x76,0xEA,0x6E,0xDC,0xF6,0xEE,0x7E,0xFC,0x6E,0xDA, + + 0x2F,0x9D,0xEE,0xDE,0x3F,0xBD,0x7E,0xFA,0x6F,0xDD,0xFE,0xFE,0x7F,0xFD,0x67,0xCB, + + 0xAE,0x9E,0xE7,0xCF,0xBE,0xBE,0x77,0xEB,0xEE,0xDE,0xF7,0xEF,0xFE,0xFE,0x6F,0xDB, + + 0xAF,0x9F,0xEF,0xDF,0xBF,0xBF,0x7F,0xFB,0xEF,0xDF,0xFF,0xFF,0xFF,0xFF,0x00,0x00, + + 0x00,0x00,0x80,0x04,0x10,0x20,0x10,0x20,0x40,0x40,0x90,0x24,0x50,0x60,0x08,0x10, + + 0x01,0x01,0x88,0x14,0x11,0x21,0x18,0x30,0x41,0x41,0x98,0x34,0x51,0x61,0x01,0x01, + + 0x80,0x02,0x81,0x05,0x90,0x22,0x11,0x21,0xC0,0x42,0x91,0x25,0xD0,0x62,0x09,0x11, + + 0x81,0x03,0x89,0x15,0x91,0x23,0x19,0x31,0xC1,0x43,0x99,0x35,0xD1,0x63,0x40,0x40, + + 0x02,0x04,0xC0,0x44,0x12,0x24,0x50,0x60,0x42,0x44,0xD0,0x64,0x52,0x64,0x48,0x50, + + 0x03,0x05,0xC8,0x54,0x13,0x25,0x58,0x70,0x43,0x45,0xD8,0x74,0x53,0x65,0x41,0x41, + + 0x82,0x06,0xC1,0x45,0x92,0x26,0x51,0x61,0xC2,0x46,0xD1,0x65,0xD2,0x66,0x49,0x51, + + 0x83,0x07,0xC9,0x55,0x93,0x27,0x59,0x71,0xC3,0x47,0xD9,0x75,0xD3,0x67,0x02,0x08, + + 0x08,0x08,0x82,0x0C,0x18,0x28,0x12,0x28,0x48,0x48,0x92,0x2C,0x58,0x68,0x0A,0x18, + + 0x09,0x09,0x8A,0x1C,0x19,0x29,0x1A,0x38,0x49,0x49,0x9A,0x3C,0x59,0x69,0x03,0x09, + + 0x88,0x0A,0x83,0x0D,0x98,0x2A,0x13,0x29,0xC8,0x4A,0x93,0x2D,0xD8,0x6A,0x0B,0x19, + + 0x89,0x0B,0x8B,0x1D,0x99,0x2B,0x1B,0x39,0xC9,0x4B,0x9B,0x3D,0xD9,0x6B,0x42,0x48, + + 0x0A,0x0C,0xC2,0x4C,0x1A,0x2C,0x52,0x68,0x4A,0x4C,0xD2,0x6C,0x5A,0x6C,0x4A,0x58, + + 0x0B,0x0D,0xCA,0x5C,0x1B,0x2D,0x5A,0x78,0x4B,0x4D,0xDA,0x7C,0x5B,0x6D,0x43,0x49, + + 0x8A,0x0E,0xC3,0x4D,0x9A,0x2E,0x53,0x69,0xCA,0x4E,0xD3,0x6D,0xDA,0x6E,0x4B,0x59, + + 0x8B,0x0F,0xCB,0x5D,0x9B,0x2F,0x5B,0x79,0xCB,0x4F,0xDB,0x7D,0xDB,0x6F,0x04,0x80, + + 0x20,0x10,0x84,0x84,0x30,0x30,0x14,0xA0,0x60,0x50,0x94,0xA4,0x70,0x70,0x0C,0x90, + + 0x21,0x11,0x8C,0x94,0x31,0x31,0x1C,0xB0,0x61,0x51,0x9C,0xB4,0x71,0x71,0x05,0x81, + + 0xA0,0x12,0x85,0x85,0xB0,0x32,0x15,0xA1,0xE0,0x52,0x95,0xA5,0xF0,0x72,0x0D,0x91, + + 0xA1,0x13,0x8D,0x95,0xB1,0x33,0x1D,0xB1,0xE1,0x53,0x9D,0xB5,0xF1,0x73,0x44,0xC0, + + 0x22,0x14,0xC4,0xC4,0x32,0x34,0x54,0xE0,0x62,0x54,0xD4,0xE4,0x72,0x74,0x4C,0xD0, + + 0x23,0x15,0xCC,0xD4,0x33,0x35,0x5C,0xF0,0x63,0x55,0xDC,0xF4,0x73,0x75,0x45,0xC1, + + 0xA2,0x16,0xC5,0xC5,0xB2,0x36,0x55,0xE1,0xE2,0x56,0xD5,0xE5,0xF2,0x76,0x4D,0xD1, + + 0xA3,0x17,0xCD,0xD5,0xB3,0x37,0x5D,0xF1,0xE3,0x57,0xDD,0xF5,0xF3,0x77,0x06,0x88, + + 0x28,0x18,0x86,0x8C,0x38,0x38,0x16,0xA8,0x68,0x58,0x96,0xAC,0x78,0x78,0x0E,0x98, + + 0x29,0x19,0x8E,0x9C,0x39,0x39,0x1E,0xB8,0x69,0x59,0x9E,0xBC,0x79,0x79,0x07,0x89, + + 0xA8,0x1A,0x87,0x8D,0xB8,0x3A,0x17,0xA9,0xE8,0x5A,0x97,0xAD,0xF8,0x7A,0x0F,0x99, + + 0xA9,0x1B,0x8F,0x9D,0xB9,0x3B,0x1F,0xB9,0xE9,0x5B,0x9F,0xBD,0xF9,0x7B,0x46,0xC8, + + 0x2A,0x1C,0xC6,0xCC,0x3A,0x3C,0x56,0xE8,0x6A,0x5C,0xD6,0xEC,0x7A,0x7C,0x4E,0xD8, + + 0x2B,0x1D,0xCE,0xDC,0x3B,0x3D,0x5E,0xF8,0x6B,0x5D,0xDE,0xFC,0x7B,0x7D,0x47,0xC9, + + 0xAA,0x1E,0xC7,0xCD,0xBA,0x3E,0x57,0xE9,0xEA,0x5E,0xD7,0xED,0xFA,0x7E,0x4F,0xD9, + + 0xAB,0x1F,0xCF,0xDD,0xBB,0x3F,0x5F,0xF9,0xEB,0x5F,0xDF,0xFD,0xFB,0x7F,0x20,0x02, + + 0x04,0x80,0xA0,0x06,0x14,0xA0,0x30,0x22,0x44,0xC0,0xB0,0x26,0x54,0xE0,0x28,0x12, + + 0x05,0x81,0xA8,0x16,0x15,0xA1,0x38,0x32,0x45,0xC1,0xB8,0x36,0x55,0xE1,0x21,0x03, + + 0x84,0x82,0xA1,0x07,0x94,0xA2,0x31,0x23,0xC4,0xC2,0xB1,0x27,0xD4,0xE2,0x29,0x13, + + 0x85,0x83,0xA9,0x17,0x95,0xA3,0x39,0x33,0xC5,0xC3,0xB9,0x37,0xD5,0xE3,0x60,0x42, + + 0x06,0x84,0xE0,0x46,0x16,0xA4,0x70,0x62,0x46,0xC4,0xF0,0x66,0x56,0xE4,0x68,0x52, + + 0x07,0x85,0xE8,0x56,0x17,0xA5,0x78,0x72,0x47,0xC5,0xF8,0x76,0x57,0xE5,0x61,0x43, + + 0x86,0x86,0xE1,0x47,0x96,0xA6,0x71,0x63,0xC6,0xC6,0xF1,0x67,0xD6,0xE6,0x69,0x53, + + 0x87,0x87,0xE9,0x57,0x97,0xA7,0x79,0x73,0xC7,0xC7,0xF9,0x77,0xD7,0xE7,0x22,0x0A, + + 0x0C,0x88,0xA2,0x0E,0x1C,0xA8,0x32,0x2A,0x4C,0xC8,0xB2,0x2E,0x5C,0xE8,0x2A,0x1A, + + 0x0D,0x89,0xAA,0x1E,0x1D,0xA9,0x3A,0x3A,0x4D,0xC9,0xBA,0x3E,0x5D,0xE9,0x23,0x0B, + + 0x8C,0x8A,0xA3,0x0F,0x9C,0xAA,0x33,0x2B,0xCC,0xCA,0xB3,0x2F,0xDC,0xEA,0x2B,0x1B, + + 0x8D,0x8B,0xAB,0x1F,0x9D,0xAB,0x3B,0x3B,0xCD,0xCB,0xBB,0x3F,0xDD,0xEB,0x62,0x4A, + + 0x0E,0x8C,0xE2,0x4E,0x1E,0xAC,0x72,0x6A,0x4E,0xCC,0xF2,0x6E,0x5E,0xEC,0x6A,0x5A, + + 0x0F,0x8D,0xEA,0x5E,0x1F,0xAD,0x7A,0x7A,0x4F,0xCD,0xFA,0x7E,0x5F,0xED,0x63,0x4B, + + 0x8E,0x8E,0xE3,0x4F,0x9E,0xAE,0x73,0x6B,0xCE,0xCE,0xF3,0x6F,0xDE,0xEE,0x6B,0x5B, + + 0x8F,0x8F,0xEB,0x5F,0x9F,0xAF,0x7B,0x7B,0xCF,0xCF,0xFB,0x7F,0xDF,0xEF,0x24,0x82, + + 0x24,0x90,0xA4,0x86,0x34,0xB0,0x34,0xA2,0x64,0xD0,0xB4,0xA6,0x74,0xF0,0x2C,0x92, + + 0x25,0x91,0xAC,0x96,0x35,0xB1,0x3C,0xB2,0x65,0xD1,0xBC,0xB6,0x75,0xF1,0x25,0x83, + + 0xA4,0x92,0xA5,0x87,0xB4,0xB2,0x35,0xA3,0xE4,0xD2,0xB5,0xA7,0xF4,0xF2,0x2D,0x93, + + 0xA5,0x93,0xAD,0x97,0xB5,0xB3,0x3D,0xB3,0xE5,0xD3,0xBD,0xB7,0xF5,0xF3,0x64,0xC2, + + 0x26,0x94,0xE4,0xC6,0x36,0xB4,0x74,0xE2,0x66,0xD4,0xF4,0xE6,0x76,0xF4,0x6C,0xD2, + + 0x27,0x95,0xEC,0xD6,0x37,0xB5,0x7C,0xF2,0x67,0xD5,0xFC,0xF6,0x77,0xF5,0x65,0xC3, + + 0xA6,0x96,0xE5,0xC7,0xB6,0xB6,0x75,0xE3,0xE6,0xD6,0xF5,0xE7,0xF6,0xF6,0x6D,0xD3, + + 0xA7,0x97,0xED,0xD7,0xB7,0xB7,0x7D,0xF3,0xE7,0xD7,0xFD,0xF7,0xF7,0xF7,0x26,0x8A, + + 0x2C,0x98,0xA6,0x8E,0x3C,0xB8,0x36,0xAA,0x6C,0xD8,0xB6,0xAE,0x7C,0xF8,0x2E,0x9A, + + 0x2D,0x99,0xAE,0x9E,0x3D,0xB9,0x3E,0xBA,0x6D,0xD9,0xBE,0xBE,0x7D,0xF9,0x27,0x8B, + + 0xAC,0x9A,0xA7,0x8F,0xBC,0xBA,0x37,0xAB,0xEC,0xDA,0xB7,0xAF,0xFC,0xFA,0x2F,0x9B, + + 0xAD,0x9B,0xAF,0x9F,0xBD,0xBB,0x3F,0xBB,0xED,0xDB,0xBF,0xBF,0xFD,0xFB,0x66,0xCA, + + 0x2E,0x9C,0xE6,0xCE,0x3E,0xBC,0x76,0xEA,0x6E,0xDC,0xF6,0xEE,0x7E,0xFC,0x6E,0xDA, + + 0x2F,0x9D,0xEE,0xDE,0x3F,0xBD,0x7E,0xFA,0x6F,0xDD,0xFE,0xFE,0x7F,0xFD,0x67,0xCB, + + 0xAE,0x9E,0xE7,0xCF,0xBE,0xBE,0x77,0xEB,0xEE,0xDE,0xF7,0xEF,0xFE,0xFE,0x6F,0xDB, + + 0xAF,0x9F,0xEF,0xDF,0xBF,0xBF,0x7F,0xFB,0xEF,0xDF,0xFF,0xFF,0x83,0x1F,0xA8,0x21, + + 0x85,0xC1,0x2C,0xA1,0xC5,0x43,0x3B,0xC6,0xE5,0xFF,0xCB,0x24,0x6F,0x40,0x32,0xF8, + + 0xEC,0x4E,0x6B,0xF3,0xE4,0x13,0x55,0xB2,0xDC,0x25,0xCA,0x36,0xE6,0x23,0xA9,0x30, + + 0x05,0x83,0x2A,0xCF,0x2B,0x19,0x48,0x8F,0xC6,0x21,0x83,0xA2,0x6B,0xFF,0x08,0xF7, + + 0xB2,0xAC,0x75,0xFD,0xC0,0x6E,0x21,0xD9,0x90,0x01,0x9D,0xAF,0x22,0xE9,0x80,0xE4, + + 0xAB,0x02,0x3B,0xA6,0xBE,0x29,0x30,0x24,0x55,0x4B,0xD6,0xE0,0x74,0x0B,0x74,0xD2, + + 0x0A,0x41,0x82,0xAF,0xB0,0x23,0x87,0x92,0xEF,0xCE,0x08,0x93,0xD1,0x2D,0x4D,0xBA, + + 0x84,0x45,0x8B,0xAA,0x31,0x2B,0x31,0x25,0xE3,0xCD,0xB1,0x21,0xCA,0x24,0x71,0x01, + + 0x87,0x08,0x41,0x65,0x72,0x28,0xA6,0x93,0x41,0x44,0xDE,0xF1,0xF5,0x08,0xFA,0xE0, + + 0xC2,0xC3,0x79,0x04,0xBD,0xD7,0xC6,0xE1,0xCA,0x74,0x14,0x4C,0x1C,0xF5,0x53,0x8F, + + 0xEE,0x12,0x6D,0x62,0x78,0x2D,0x3A,0x1E,0xE8,0x40,0x0F,0xCC,0xC9,0x98,0x83,0x01, + + 0xEF,0x10,0x6F,0xE5,0x38,0x67,0x49,0x4B,0x3B,0x4C,0xE9,0x4D,0xDC,0x24,0xEC,0x2F, + + 0xEC,0xA6,0xF5,0xFF,0x8B,0x66,0xDB,0xBD,0xEF,0xD4,0xE5,0x3B,0x38,0xE8,0x78,0xCC, + + 0x24,0x84,0x76,0xAE,0x98,0x24,0xE7,0x0A,0x09,0xBB,0x0D,0x1C,0x5C,0x06,0xC2,0x34, + + 0x68,0x2D,0x42,0x30,0xFA,0x22,0x62,0x28,0x4F,0x42,0xE2,0x83,0x9A,0x0F,0x09,0xB2, + + 0x29,0x08,0x77,0x5D,0x39,0x28,0x2B,0xEB,0xCF,0x24,0x45,0xEF,0xDF,0x8C,0x33,0xDB, + + 0x8A,0x6D,0xAB,0x1C,0x1F,0x22,0x63,0x29,0xC3,0x40,0x1F,0xAD,0xD7,0x6C,0x05,0xFF, + + 0x87,0x51,0xDC,0x94,0xCD,0xB8,0x69,0x49,0xDE,0x3F,0xAC,0x5B,0x85,0x13,0xD1,0x8D, + + 0xC0,0xAE,0x34,0xC6,0x72,0xC1,0xED,0xD6,0x9E,0x41,0xE2,0xAC,0x84,0xF2,0xDE,0xDF, + + 0xDF,0xCE,0x9D,0x63,0x83,0x8E,0xAE,0x28,0x4F,0x49,0x6E,0xDA,0x90,0x70,0xCD,0x41, + + 0x1B,0x9E,0xD4,0x43,0x16,0x35,0xA5,0x59,0x3F,0xAF,0x68,0x46,0xED,0x32,0x4E,0xD0, + + 0x81,0x12,0x94,0x6D,0x91,0x32,0x2C,0x62,0x40,0x21,0xB4,0xA0,0x6A,0x36,0x34,0x52, + + 0x22,0x78,0x9C,0xD9,0x90,0x33,0x3C,0xB4,0x42,0xDE,0x18,0x54,0xD2,0xB5,0xCD,0xF1, + + 0xC1,0x36,0x95,0x5C,0x11,0x30,0x6D,0x31,0x1C,0x59,0x05,0x8B,0x0F,0x1A,0x35,0x53, + + 0xA2,0x72,0x9D,0xE0,0x10,0x31,0x55,0x13,0x4F,0xDC,0xBD,0xB1,0xAB,0x35,0x66,0xC3, + + 0x6E,0x17,0xA6,0x02,0x99,0xB4,0xEE,0xA0,0x95,0x17,0xF6,0xE8,0xB4,0xF5,0x6E,0xD7, + + 0xF9,0x16,0x23,0x8E,0x9A,0x3F,0x24,0x5E,0x79,0xA4,0xA6,0x6C,0x82,0x76,0xAF,0xB1, + + 0x2D,0x6B,0xCD,0x90,0xF8,0x3C,0x28,0x56,0xDB,0xEC,0xEF,0x2F,0xF1,0xA7,0x6F,0x9B, + + 0xF2,0x16,0xAF,0x13,0x18,0xB1,0xE7,0x3B,0x69,0xDE,0xFF,0xFC,0x5E,0x76,0x7C,0x2A, + + 0xA8,0x14,0xCA,0xA2,0x9B,0xB6,0xD2,0x0A,0xE8,0x14,0x06,0x82,0x5E,0xD1,0xBE,0xBA, + + 0x68,0xED,0xF3,0x58,0x1D,0x10,0xD6,0x2C,0xC8,0x5B,0x96,0xF9,0x9A,0x79,0xB3,0x2B, + + 0x28,0x16,0xB8,0x2F,0x38,0x16,0x9E,0x9B,0x49,0x58,0x4A,0xAA,0x38,0xDE,0x45,0xF9, + + 0x08,0x19,0xAF,0x99,0xBF,0x32,0xD7,0xFB,0x4A,0xD5,0x5D,0x8E,0xC6,0xFE,0xBA,0x45, + + 0xC6,0xC3,0xBA,0x04,0xDE,0xAF,0x10,0x33,0xC9,0xA3,0x1D,0xD5,0xD8,0x7D,0xE8,0xD6, + + 0x98,0x0C,0xA9,0x69,0xB2,0xA7,0x45,0xDB,0x1C,0xAE,0x52,0x16,0x69,0x41,0x69,0x07, + + 0xE3,0xC1,0xA9,0x16,0x61,0xED,0x9A,0x86,0x11,0xDC,0xC9,0x3A,0x2A,0x62,0x49,0x58, + + 0x77,0x8C,0x89,0x80,0x34,0x29,0x82,0xBA,0x6A,0xC5,0x83,0xB5,0x48,0xA7,0x58,0x12, + + 0x02,0x8B,0xEA,0x42,0xB5,0x2F,0x10,0x26,0x7F,0x4F,0xC8,0x72,0xD4,0xAC,0x08,0x12, + + 0x01,0x88,0xA2,0xAD,0x11,0xC6,0x63,0x90,0xC5,0x8D,0x47,0x24,0x59,0x87,0x59,0x13, + + 0xC6,0x89,0xE5,0xC3,0xB8,0x2E,0x75,0x81,0x44,0x8E,0xF5,0xE3,0xF0,0xBB,0x63,0x52, + + 0x24,0xE2,0xF1,0x07,0x96,0xA8,0xEC,0x91,0xE3,0xC1,0x3D,0xA7,0xDF,0xE4,0x1C,0x6F, + + 0x6C,0x57,0x25,0x8C,0x81,0xEC,0x12,0x09,0xED,0xC1,0xCA,0xBF,0x79,0x1D,0x52,0x28, + + 0xF2,0x92,0x92,0xF6,0xC4,0xE6,0x1A,0x2B,0xC0,0xAA,0x26,0xC6,0x5D,0xAB,0xDC,0x78, + + 0xA9,0x7E,0xDB,0x8D,0x1C,0x3C,0xF3,0xAF,0xEA,0x55,0x2B,0xD3,0xDC,0x5F,0xD7,0x68, + + 0x2E,0xC4,0x13,0xE0,0xDE,0xA4,0x90,0x9E,0x18,0xD5,0xBF,0x8C,0x20,0x4A,0x5A,0x1A, + + 0x2E,0x83,0xDA,0x9E,0xA1,0xA3,0xFA,0x12,0xAF,0xC3,0xCA,0x7A,0xDC,0xA4,0x0A,0x1A, + + 0x09,0x80,0xEE,0xBC,0x9D,0xAE,0xAA,0xA1,0xCD,0x85,0x9A,0x3A,0x19,0xE0,0x5B,0x1B, + + 0x8F,0x81,0x83,0x0B,0x52,0x25,0x13,0x2F,0xF7,0x8C,0xF5,0xEB,0xF8,0xB3,0x61,0x5F, + + 0x2C,0x82,0xED,0x2D,0x3C,0xA9,0x5F,0x19,0x8C,0x70,0x04,0xDF,0x7E,0x2F,0x0E,0x52, + + 0x78,0x96,0x23,0x96,0xB6,0xCC,0x0C,0xC2,0x62,0x92,0xFE,0x5D,0xD7,0xF6,0x0C,0xCE, + + 0x84,0xF3,0x49,0xF4,0xF4,0x3B,0x90,0x17,0xB0,0xB2,0xC3,0x54,0xF7,0xD9,0x88,0x98, + + 0x07,0x94,0x83,0x65,0x36,0xB6,0xE5,0x59,0x64,0x72,0xB9,0x51,0x55,0x78,0xCD,0xAA, + + 0x85,0x22,0x2A,0x87,0x37,0xCF,0x96,0x79,0x5E,0xE8,0x46,0xD5,0xB6,0x4C,0x6C,0x60, + + 0xD7,0x9B,0xAE,0x3D,0x95,0xB2,0xAB,0x00,0xCA,0xD9,0x09,0xA1,0x78,0x0B,0x64,0x47, + + 0xDA,0x9A,0x93,0x34,0xB5,0xFD,0x74,0x76,0xC6,0x5F,0x43,0xC7,0xD6,0x74,0xD1,0xB8, + + 0x05,0x90,0x6D,0xD3,0x17,0x3C,0x3F,0x1D,0x45,0xD0,0x65,0x63,0xDB,0x98,0x0D,0x97, + + 0x2F,0x9A,0x6C,0xB5,0xF4,0x08,0x80,0x11,0x46,0x5D,0xFE,0x04,0x73,0x7A,0xA6,0xAB, + + 0xF1,0x9E,0x04,0x6C,0xBE,0xBC,0x06,0x4D,0x99,0xEA,0xCE,0x2C,0x75,0x45,0x83,0x9D, + + 0x8E,0x9F,0xAC,0x1C,0xA0,0x5D,0x06,0xDA,0x6B,0x9B,0xB2,0x5D,0x7B,0xBA,0x07,0x01, + + 0x0D,0x9C,0x42,0xED,0xFF,0x4A,0xCB,0x29,0x6C,0xBF,0x77,0x0B,0x53,0xFC,0x0F,0x10, + + 0x0C,0x80,0xD7,0xED,0x42,0x46,0xEF,0x41,0x6D,0x7B,0x83,0x3D,0xF4,0x54,0x6C,0xCB, + + 0x8D,0x9A,0x9E,0x4C,0x3B,0x6C,0x09,0x08,0xC2,0xD1,0xA4,0xBF,0x95,0x98,0x4E,0x38, + + 0xAD,0xD5,0x8E,0x9A,0x37,0xFF,0x34,0x25,0xCC,0xDB,0xFA,0x79,0x80,0x70,0xEF,0xC9, + + 0x0F,0x16,0xDF,0x1F,0x45,0xB1,0x3D,0x54,0x4D,0xD3,0xCD,0x68,0x09,0x75,0xA5,0x2B, + + 0xA3,0x90,0x3F,0x38,0x3D,0xF7,0x77,0x7F,0x4E,0x55,0x80,0x84,0x72,0x59,0x9D,0xC0, + + 0x4E,0x42,0xE0,0xA4,0xA4,0x2D,0x83,0x3A,0x38,0xE0,0xE8,0xA6,0x55,0x9B,0x1F,0x94, + + 0x2F,0x58,0xF0,0x96,0x33,0x83,0x66,0x94,0xAA,0x22,0x43,0x24,0xF2,0x67,0xD5,0x58, + + 0xE3,0x03,0xCB,0xE7,0xD1,0xC2,0x45,0x23,0x51,0xCF,0xAB,0xC7,0x52,0x2A,0xC9,0xB4, + + 0xD8,0xAE,0xD3,0x14,0x32,0x25,0xC2,0x62,0xBE,0x94,0x11,0x37,0x70,0xE9,0x1A,0x2E, + + 0x7A,0xAB,0x56,0x48,0x14,0xCD,0x2F,0x9D,0x4A,0x06,0xC8,0x71,0xD0,0x4C,0x36,0x57, + + 0xA2,0x7A,0xCE,0x7C,0xEE,0xA9,0x99,0x12,0xA1,0x76,0xA0,0xCB,0xAC,0x05,0xE1,0x33, + + 0xE0,0xAA,0x25,0x65,0x33,0x66,0x59,0xBD,0x40,0x33,0xAE,0x07,0x93,0x26,0xE5,0x2B, + + 0x1D,0x98,0x0D,0x85,0xDF,0x26,0x19,0x56,0x62,0xC0,0x06,0x8A,0xF7,0xBA,0x9F,0x31, + + 0x68,0x09,0xD2,0x89,0x7B,0xC8,0xCF,0x10,0x33,0xB7,0x7D,0xCE,0xDA,0x8B,0x2A,0x7F, + + 0x2D,0x84,0xD0,0x19,0xBA,0x2F,0x1D,0x88,0xA8,0xE6,0xE2,0x5E,0x18,0x49,0xC3,0xAC, + + 0xBD,0xBA,0xFB,0x8F,0xBA,0xBA,0xD3,0xF9,0x72,0x49,0x47,0x4F,0x9B,0x15,0x75,0x64, + + 0xAB,0xBB,0x03,0xC0,0x38,0xA3,0x4F,0xD1,0xDB,0x06,0xE3,0x5F,0x98,0x2B,0x18,0x27, + + 0x72,0xA3,0xFA,0x48,0x52,0x1D,0x06,0x65,0xE6,0x41,0x45,0x93,0x7E,0x97,0x34,0x5F, + + 0xFA,0x02,0xC6,0xB7,0x1D,0x6E,0x62,0x08,0x1A,0x44,0xBA,0x38,0x15,0x60,0xE3,0x3B, + + 0xE8,0xA2,0xAD,0x78,0x27,0x28,0x21,0xD8,0x8E,0x2B,0xC9,0xE9,0xD5,0x8F,0x4C,0xA9, + + 0x87,0xFE,0x72,0xDF,0x92,0x90,0xDB,0x7B,0x3C,0x0E,0x24,0x2F,0x98,0x9F,0xA0,0x04, + + 0x60,0x26,0x44,0x20,0xEB,0x36,0x87,0x53,0xE4,0xDD,0xEC,0xD6,0x8F,0x32,0x2B,0xAC, + + 0xF1,0xA0,0xEC,0xD0,0x26,0x3E,0xA3,0x52,0x29,0x72,0x1C,0x70,0xEF,0xAA,0xA2,0x21, + + 0x74,0xE3,0x0D,0x51,0x51,0x3D,0x47,0xF2,0x0B,0x36,0x59,0xD6,0x11,0x8D,0x37,0x62, + + 0x8B,0xBE,0xED,0xD1,0xDE,0xB8,0x3D,0xEE,0x00,0xFC,0xBD,0x48,0x75,0x75,0x44,0x38, + + 0xA1,0x99,0x3F,0x26,0xB0,0x1C,0xB9,0x67,0x95,0xDF,0x6B,0x84,0x34,0x75,0x15,0xC3, + + 0x44,0x0D,0xB4,0x29,0xCC,0x98,0x66,0x40,0xE3,0xFA,0x98,0x87,0x1F,0x19,0xBA,0x45, + + 0xAA,0x85,0xBA,0xA7,0xF1,0xE9,0x55,0xDC,0x09,0x12,0xD0,0xC0,0xF4,0xDC,0x2D,0xFE, + + 0xA1,0x1A,0xDC,0x05,0x00,0x3E,0xF9,0x8F,0x40,0xAA,0xBF,0xF1,0xF0,0xF7,0x52,0xCF, + + 0xE2,0x61,0x13,0x6E,0xBA,0x31,0x42,0x40,0x7A,0x15,0x3C,0x85,0x1B,0x7C,0x44,0x99, + + 0xD6,0xE4,0x84,0x94,0x9A,0x34,0xF9,0x78,0x3D,0x1B,0xA0,0xC4,0xDA,0xC2,0x4F,0x28, + + 0x41,0x19,0x10,0xEF,0xFB,0xD6,0xE8,0xDA,0xC2,0x36,0xEF,0x2F,0x31,0x07,0x0D,0x76, + + 0xCA,0xE4,0xC5,0x77,0x1A,0x3D,0xCB,0xA5,0xEF,0x38,0x9B,0xC6,0x74,0xFD,0xB9,0xB8, + + 0x6F,0x17,0xC2,0xD1,0xD3,0x6D,0x0E,0x86,0x4E,0xD1,0xD0,0xD9,0xFA,0x02,0x76,0x26, + + 0xD6,0xC4,0x49,0xC1,0xD2,0x0C,0x20,0xD4,0x80,0x2C,0x67,0x00,0xFB,0x86,0xCE,0x4B, + + 0x16,0x5C,0x8D,0x27,0x9B,0x7E,0x29,0xC1,0x01,0x6F,0x17,0xB5,0x6D,0x7A,0xB0,0x5B, + + 0x17,0x9D,0x85,0x37,0x9A,0xAF,0x3F,0xBD,0xE6,0x52,0x51,0x05,0x47,0xC4,0x23,0x80, + + 0xC9,0x4C,0xA4,0xE4,0x96,0xA3,0xCF,0x51,0x6E,0xAC,0xC8,0xDB,0xE3,0xA2,0x20,0x17, + + 0x6E,0x78,0xD0,0x94,0x37,0x01,0xEC,0x2E,0xC8,0x47,0xAA,0x44,0xF6,0x84,0x19,0x44, + + 0x46,0x20,0x14,0x65,0xD5,0xAA,0xD6,0xE3,0xC1,0x80,0x7D,0x12,0x56,0x01,0x2D,0xB3, + + 0x83,0x69,0x91,0x47,0x85,0xAC,0x7F,0xF3,0x8D,0x81,0xE3,0xC8,0x76,0x86,0x9F,0x30, + + 0x70,0x5B,0x20,0xE2,0xA3,0x0F,0x10,0x61,0x47,0x4F,0x60,0x14,0xBD,0x05,0x14,0x21, + + 0x7E,0x8A,0x0C,0xF6,0xB6,0xE5,0x2C,0x90,0xEB,0x4E,0x07,0x94,0xB6,0xE3,0x41,0xF4, + + 0x04,0x2A,0x77,0x4B,0x90,0x4F,0x24,0x81,0x6A,0x4D,0x91,0x65,0xD7,0x6D,0x30,0xAE, + + 0x62,0x78,0xEF,0x7B,0x6A,0x2B,0x2F,0x91,0x6B,0x4C,0xD9,0x22,0x74,0xA5,0xE2,0x6F, + + 0x83,0x75,0x16,0xFE,0x40,0xA7,0xE6,0x06,0xCC,0x8A,0xE8,0x3B,0xFF,0x8D,0x38,0x8A, + + 0xE6,0xCD,0xE0,0xFC,0xBE,0xAF,0x72,0xBA,0xB9,0xAA,0xEA,0x1A,0xBC,0xE6,0x35,0x69, + + 0xE4,0x87,0xC3,0xAF,0x80,0xA7,0x8C,0x6C,0x0E,0xBB,0xE9,0xD0,0x7F,0xEC,0x11,0xAB, + + 0xC4,0x24,0xFB,0x9E,0xFE,0x19,0x3D,0x9E,0xAE,0x45,0xDB,0x7F,0xCC,0x6B,0xA2,0x17, + + 0x71,0x97,0x26,0x9E,0x52,0xAF,0x79,0x88,0xE2,0x47,0x26,0xF6,0x58,0xCC,0xB3,0x75, + + 0x30,0x8F,0x84,0x6B,0xA2,0xAB,0x5A,0x98,0x30,0x8F,0x4F,0x83,0x5D,0x56,0x64,0x34, + + 0x29,0xCF,0xDB,0x4B,0xD6,0xDF,0xF3,0x89,0x62,0x45,0xA0,0x29,0xC6,0x35,0x35,0xEA, + + 0x87,0x34,0xE7,0xB4,0x3E,0x25,0xBC,0x04,0x4D,0x47,0x8E,0xFB,0x82,0x03,0x32,0x23, + + 0x22,0xF3,0x72,0x23,0x95,0x3A,0xA5,0x51,0xE8,0x2D,0x32,0x66,0x79,0x04,0xB1,0xA2, + + 0xDA,0xD3,0xB4,0xE4,0x96,0xD4,0x05,0x96,0xE7,0xD9,0x84,0x4C,0x16,0xC0,0x7F,0xF0, + + 0x8E,0x33,0x4A,0x65,0x36,0xFA,0x4D,0xB2,0xCE,0xD6,0x15,0xB9,0x78,0x97,0xF9,0x63, + + 0x59,0x90,0xD5,0x15,0xB0,0x69,0xF9,0xD1,0xA6,0x6C,0xAA,0x44,0x71,0x7E,0x5C,0xBF, + + 0x05,0xE7,0xDE,0x38,0xDF,0xC5,0x3E,0x1C,0xC5,0xD2,0xB4,0x0B,0xCC,0xB6,0x93,0xA2, + + 0x2A,0x9E,0x37,0xD3,0xB7,0xD5,0x03,0x10,0xE5,0xFD,0xFC,0xD2,0x71,0x7C,0x05,0xEC, + + 0xAC,0x9B,0xAF,0x2D,0x97,0x56,0x79,0x0D,0x47,0x5C,0x7E,0xDF,0xF0,0xEF,0xBD,0x51, + + 0x1B,0xF5,0x32,0x28,0x93,0x4A,0x00,0x91,0xA6,0x97,0x44,0x0A,0x90,0x2C,0x95,0xB7, + + 0xD4,0x49,0xA4,0x6C,0x90,0xB5,0x4E,0xC8,0x2F,0xA7,0xE4,0xF8,0x97,0x9C,0xEE,0x8A, + + 0x70,0x6D,0x26,0x72,0x5E,0x99,0xC3,0x58,0xEF,0xDA,0x1D,0xB9,0xD1,0x9C,0x14,0xB2, + + 0x9F,0xBA,0xAD,0x8B,0x1F,0xBC,0xF7,0x0E,0xCD,0x50,0x8C,0x4D,0x20,0xBE,0x7F,0x85, + + 0xD1,0x2F,0xD7,0x1D,0xB8,0x80,0x7F,0x4B,0xB1,0xD4,0x87,0x8E,0x5C,0x64,0x5E,0x34, + + 0xD3,0x45,0xFC,0xCA,0x1F,0xDC,0x0E,0x68,0x67,0x03,0x76,0xEA,0x79,0xB8,0x56,0xA7, + + 0x0C,0xFC,0xE2,0x35,0x9E,0x35,0x1E,0xBB,0x94,0xD0,0xFE,0xFE,0x7F,0xFD,0x98,0x49, + + 0x12,0x3C,0x58,0x2F,0xF2,0xB8,0x4F,0x3B,0x15,0xD1,0xF7,0xEF,0xFE,0xFE,0x36,0xC8, + + 0x5A,0x50,0x6F,0x3D,0x4A,0x30,0x75,0xFF,0x4C,0x74,0xFF,0xFF,0xFF,0xFF,0xA8,0x3D, + + 0xE1,0x06,0x96,0x66,0x78,0x2D,0xF0,0xB9,0x37,0x1C,0x77,0x46,0x13,0x90,0x26,0x7E, + + 0xA2,0x07,0xE8,0x16,0x12,0x2C,0x47,0xCF,0x47,0xCB,0x1F,0xC5,0xF2,0x60,0x2C,0xAF, + + 0x23,0x04,0xE1,0x4B,0x7E,0x2D,0xCE,0xC4,0xFF,0xD1,0x89,0x39,0x71,0xE8,0x24,0xE0, + + 0x22,0xD8,0xC3,0x57,0x50,0x41,0x6C,0xCD,0x58,0xB8,0xAB,0xDC,0xD2,0x0C,0x20,0x42, + + 0xA2,0x09,0x35,0xA6,0x90,0x18,0x68,0xB0,0x1C,0xEB,0xA9,0x16,0x69,0x80,0x36,0x68, + + 0x63,0x85,0x31,0xB6,0xBF,0x2A,0x98,0x57,0xE2,0xCF,0x9D,0x93,0xD1,0x61,0xBE,0x13, + + 0xC1,0xF6,0x0D,0xA7,0x10,0x3A,0x09,0x03,0xEC,0x00,0x2D,0x0F,0xBA,0x6B,0xB4,0x23, + + 0xAD,0x58,0xA9,0x57,0xE6,0x2A,0x9E,0x82,0xE8,0x4A,0xD4,0x17,0x24,0x61,0xAB,0xF5, + + 0x91,0x73,0x46,0xDC,0x14,0x33,0xEB,0xC5,0x3A,0xF3,0xAC,0xCE,0x42,0x07,0x40,0xB3, + + 0xE8,0xA6,0x92,0x00,0x5B,0x20,0xC1,0x76,0x36,0x5E,0x9B,0xCC,0xD8,0x26,0xCA,0xF0, + + 0x77,0x48,0x71,0xEB,0x3D,0xA8,0xEC,0xAD,0x8B,0x7D,0xCA,0x64,0x39,0x25,0x95,0x5F, + + 0xDB,0x45,0x4B,0x2D,0x9D,0x20,0xC6,0x24,0x28,0xF4,0xFB,0x3F,0x07,0x66,0xED,0x27, + + 0xD7,0xD3,0xD2,0x3B,0x78,0x37,0xE2,0x1B,0xCC,0xFC,0xF2,0x24,0xFB,0xD3,0xE6,0xDD, + + 0xDE,0x6F,0xA8,0x44,0x18,0x5C,0x24,0x1D,0x78,0x95,0xE5,0x74,0xFC,0x6B,0x83,0xEC, + + 0xFD,0xD2,0x82,0x2B,0x65,0x40,0xE7,0x0B,0x89,0xBE,0x68,0x85,0xA4,0x21,0x22,0xB2, + + 0x09,0x53,0x74,0x1A,0x51,0x46,0x01,0x7B,0x6C,0xE2,0xFB,0x30,0x7A,0xB0,0x5D,0x1C, + + 0x43,0x70,0xBC,0x54,0x6C,0x36,0x76,0xB4,0x61,0x30,0xDC,0xAD,0x8D,0xF1,0x86,0x68, + + 0xA1,0xAA,0xD4,0x91,0x52,0xB1,0x0F,0xA0,0x9E,0xDD,0x4F,0x3C,0xD6,0x6A,0xFD,0x7D, + + 0x28,0xE9,0x28,0x79,0x13,0x3F,0x4B,0x99,0xA4,0xFF,0xD5,0xAD,0x57,0xFF,0x04,0x7C, + + 0xE1,0x51,0xF5,0x17,0x31,0x19,0x57,0x53,0xD2,0x2B,0x12,0xD3,0x06,0x63,0x62,0xB3, + + 0x52,0x95,0xDD,0x46,0xBA,0x74,0xD3,0xF3,0x49,0x2D,0xB4,0xB2,0x54,0x7B,0xB7,0x38, + + 0x3A,0x58,0xEC,0xA8,0x92,0x56,0x00,0xB0,0x3F,0xF1,0xBC,0xA2,0xB7,0x7A,0x47,0x3E, + + 0x43,0x75,0x05,0xD5,0x67,0x30,0x6B,0x01,0x6D,0xF0,0xB5,0xE7,0xDB,0x7B,0x36,0xD9, + + 0x06,0xA8,0x2D,0xD5,0x5A,0x7E,0x05,0x9C,0x63,0x07,0x75,0xCA,0x76,0x15,0x8D,0xB0, + + 0x5F,0x3C,0xBE,0x64,0x4F,0x77,0xEE,0x2A,0xE8,0xA0,0x2E,0x53,0xF5,0x63,0x34,0x63, + + 0x2F,0x93,0x01,0x74,0xE5,0xF2,0x1C,0x50,0x83,0x16,0x26,0x22,0x7A,0xD9,0xD8,0xD1, + + 0x97,0x91,0xBD,0x72,0xBE,0xBB,0x2F,0xFB,0xAB,0xAA,0x1E,0xCB,0x26,0x68,0x7A,0x1D, + + 0xCC,0x08,0x8F,0x95,0xDE,0x33,0xA7,0x47,0x88,0x7B,0x24,0x5B,0xE9,0x86,0x86,0x6D, + + 0x5D,0xC0,0xE0,0xA9,0x99,0xB9,0x68,0x85,0xE5,0xDA,0x16,0xA9,0x3A,0xF1,0x27,0x33, + + 0xD4,0x1B,0xD0,0x8D,0x5A,0x34,0xC3,0xF5,0x82,0x56,0x26,0x0F,0x4A,0x7B,0xEB,0x4C, + + 0x7F,0x7C,0xE1,0x2F,0xDB,0x91,0xD2,0xA9,0xE6,0xF5,0xA9,0x91,0xC9,0xBE,0x62,0x30, + + 0x5E,0x10,0x4A,0x1A,0x52,0x96,0xF3,0x6A,0xC0,0x57,0xFF,0x29,0x5A,0xF5,0xA3,0xC4, + + 0x1C,0x9B,0xE6,0xEE,0xF2,0x2B,0xF0,0xF2,0xFE,0x1B,0x9A,0xF6,0x08,0xE9,0xD0,0x1A, + + 0xA2,0x2E,0xF1,0xA0,0x76,0xFB,0xBF,0x40,0xBE,0x83,0xAE,0x54,0x6E,0xB9,0x54,0xE5, + + 0xB7,0x65,0x7A,0xE1,0x14,0x00,0x9A,0xDE,0xE1,0xB9,0xB2,0x45,0x97,0xED,0x64,0xFB, + + 0x47,0x4C,0x51,0x15,0xC1,0xB8,0x73,0x98,0x47,0xC7,0x45,0x45,0xFB,0xD1,0x94,0xC6, + + 0x28,0x20,0xA8,0x77,0xB7,0x2C,0x28,0x53,0x6D,0x6B,0x90,0x64,0x43,0xE9,0x69,0x34, + + 0xFC,0x79,0x37,0x03,0x6C,0xB2,0x68,0x6B,0x57,0x6A,0x00,0x0D,0x47,0xAA,0x38,0x1E, + + 0x23,0x19,0xC1,0xA5,0xE1,0xA2,0xE9,0x8B,0xD4,0x89,0x8E,0x19,0xE5,0xAE,0xD4,0x0C, + + 0x52,0xDA,0x29,0x0A,0x5A,0x5A,0x21,0x01,0x2C,0xEC,0x99,0x75,0x80,0xEA,0x5C,0xD2, + + 0x89,0x4A,0x50,0xFE,0x7A,0xE7,0xBD,0x48,0x0F,0x38,0x4E,0xC6,0x80,0x25,0x6E,0x5C, + + 0x41,0xC5,0x5C,0x7C,0x2E,0x6E,0x64,0x02,0x45,0xCD,0x56,0xD6,0x5E,0xA4,0x7A,0xB1, + + 0x2B,0xC6,0x83,0x1A,0x1E,0xF6,0x4D,0x13,0xEF,0x6A,0x48,0x27,0x39,0x15,0xAF,0xF3, + + 0x85,0xC4,0x53,0x9D,0x1D,0x11,0xBA,0x48,0xBD,0xA5,0x5C,0xB7,0x78,0x3D,0xC9,0xCE, + + 0x20,0x57,0x98,0x5E,0x9C,0xA8,0x2B,0x36,0xE9,0xCA,0x92,0x38,0x7C,0xE3,0xAE,0x90, + + 0xB4,0x8B,0xB1,0x5E,0x60,0xB5,0xBE,0xFF,0x0C,0x3F,0x9A,0x28,0x75,0xE2,0xC8,0x0C, + + 0x80,0x52,0x1C,0xAD,0xE5,0x34,0x53,0x17,0x6F,0x31,0x93,0x6D,0x81,0xE3,0x46,0xD5, + + 0x89,0xEC,0x30,0x5D,0x99,0xE5,0x05,0x16,0xEF,0x8D,0x9B,0x7D,0xFE,0xE2,0xE4,0x46, + + 0x71,0x96,0xC4,0x84,0xE2,0xBD,0x2C,0x32,0x8D,0x41,0x4C,0x4E,0xA8,0x3D,0xE8,0x42, + + 0x5B,0xF3,0x94,0x46,0x69,0x1A,0xE8,0x48,0x90,0xBF,0xDC,0xFD,0x1A,0x6C,0x05,0xDA, + + 0x05,0xF0,0xEF,0x9A,0x95,0x62,0x27,0xA2,0x1F,0x5F,0xCE,0xAF,0x11,0x4D,0xCD,0x02, + + 0x27,0x97,0xD5,0xB7,0x55,0x88,0x5A,0xC9,0x84,0xD7,0xC5,0x90,0x0C,0xFC,0xD0,0xBD, + + 0x85,0x4F,0x86,0xBC,0xDF,0x3D,0x72,0xF1,0x45,0x45,0x73,0xD6,0x3E,0xF2,0x4C,0x2B, + + 0xEC,0xEE,0x8C,0xD5,0x37,0xB8,0x6F,0x81,0x17,0x74,0x03,0x74,0xBE,0x6C,0xCB,0x3E, + + 0x63,0x0D,0x87,0xD7,0xB7,0xE6,0x55,0xE6,0x2E,0xFD,0xDB,0x1C,0x55,0xFB,0xFC,0x57, + + 0xF2,0x06,0xF5,0xD3,0xBF,0x1F,0xE0,0x63,0x0C,0x46,0x85,0x85,0xC4,0xD5,0x2D,0xE8, + + 0x6F,0x68,0xC6,0x79,0xD5,0xB7,0x4F,0x5A,0xEC,0xCE,0xEF,0xF3,0xFE,0xA4,0x0E,0xC6, + + 0x8C,0xFB,0x94,0x78,0x2D,0x32,0x81,0x5C,0xEF,0xDD,0xE7,0xF7,0xFF,0xA5,0x7E,0x2C, + + 0x0B,0x9C,0xE2,0x78,0x8F,0x42,0x3F,0xBB,0xDF,0x7D,0x19,0x2B,0xD2,0x7A,0xEB,0x4B, + + 0xD3,0xF9,0xF7,0x79,0x3F,0xBF,0x77,0xD9,0xAE,0x2B,0xC9,0x3B,0xD3,0x7B,0xBD,0x94, + + 0x51,0xBD,0xC6,0x38,0xD7,0xD5,0x50,0x87,0xCD,0x58,0x0E,0x91,0x15,0xF3,0xB3,0x46, + + 0x29,0x45,0x12,0xB4,0x57,0xB0,0x66,0xAA,0x69,0xD4,0x86,0x7A,0x74,0x22,0x3C,0xC9, + + 0xD5,0x79,0x9E,0xBD,0x85,0x1A,0x2E,0xFB,0x49,0x9C,0x20,0xDD,0x01,0x2B,0x7C,0x59, + + 0x2F,0xD6,0xAA,0x38,0x56,0xF6,0x7F,0x89,0x6D,0xE3,0x9F,0xBF,0x11,0x74,0x04,0xE2, + + 0x82,0x08,0xF8,0x86,0x90,0xFB,0xA4,0x42,0xAB,0x31,0xB3,0xD2,0x63,0x46,0xB9,0x92, + + 0x23,0x61,0x0F,0xFC,0x17,0x6E,0xC3,0x30,0x47,0x0B,0x59,0xB6,0xD1,0xAA,0xF4,0x73, + + 0x23,0x4E,0xB9,0xFA,0x51,0xA8,0xB9,0x3C,0xBF,0xCB,0x6B,0x63,0x9E,0x2E,0x71,0x93, + + 0x01,0xB8,0x31,0x52,0x53,0x83,0xB9,0xD9,0x95,0xEE,0xA1,0xDD,0x05,0xAC,0x48,0x50, + + 0xEB,0xBD,0x9F,0xB4,0x1E,0x6B,0xD1,0x47,0xE3,0x4D,0x00,0xE0,0x5D,0x85,0x66,0xAE, + + 0xA0,0x1E,0xB0,0xD0,0x22,0x25,0x02,0x71,0xE0,0x04,0x50,0xE1,0xF2,0x9A,0x03,0xB7, + + 0x63,0x00,0xFB,0xC7,0x12,0xF7,0xD3,0xE3,0x5B,0x3D,0x11,0xB4,0xD8,0x60,0x0B,0xB7, + + 0x93,0x48,0x59,0x27,0x11,0x03,0x39,0x73,0xB6,0x4A,0x75,0xF0,0xF3,0x6A,0x3A,0xAD, + + 0x8E,0x78,0xCA,0x09,0x7B,0x88,0x03,0xCE,0x58,0xE5,0x28,0x6B,0x9A,0x78,0x2A,0x25, + + 0xA8,0x86,0xB2,0xCC,0x45,0x88,0xA8,0x14,0x7A,0x0D,0xFA,0x3E,0x36,0x64,0x53,0x04, + + 0x9D,0x0C,0x7B,0x8F,0x18,0xF1,0x06,0xCF,0xFB,0x6E,0xDB,0x29,0xBF,0x6B,0xF4,0x9B, + + 0x09,0xDA,0xB3,0x2C,0x38,0x30,0xA9,0x14,0xCF,0xA3,0xFB,0x73,0xFE,0x64,0x1B,0xDC, + + 0xAD,0x1C,0xC2,0xAE,0x98,0x08,0x42,0x1F,0x15,0x0E,0xEA,0xEE,0x53,0xD1,0x32,0xA4, + + 0x9A,0xF6,0x0A,0x28,0xBB,0x6F,0x09,0x81,0xF1,0xB6,0x1A,0x08,0xD4,0x90,0xBB,0xCB, + + 0x43,0x99,0x4A,0xBD,0x65,0x21,0x87,0xF1,0xCC,0x6E,0xEB,0xBD,0x21,0x61,0xC8,0xB1, + + 0xD5,0x42,0x53,0x62,0x1E,0xDA,0x1B,0x85,0x77,0x0D,0xA1,0x1D,0x60,0x69,0x1F,0xA7, + + 0x81,0xBF,0x44,0x0D,0xE6,0x72,0x88,0x9F,0x5D,0x12,0x6E,0x4C,0xE0,0xBB,0x6A,0xE8, + + 0x20,0x73,0x21,0x16,0xF8,0x3E,0x1B,0xA5,0x8A,0x89,0xE2,0x61,0xF3,0x75,0x1A,0xF2, + + 0x94,0x7E,0x12,0x76,0xB6,0x9B,0x5F,0x4A,0x01,0x53,0xB0,0xD7,0x1B,0x68,0x33,0xBC, + + 0x6B,0x8A,0xB5,0xD2,0x7B,0xAA,0xA8,0xD4,0x1A,0x57,0x8E,0xD7,0x0E,0xFC,0xFC,0x87, + + 0x2C,0xBB,0xF5,0x46,0x33,0x7B,0x14,0xDD,0x89,0x10,0xD6,0x22,0x2E,0x70,0x44,0xC4, + + 0x40,0x2A,0x7F,0x12,0x8F,0x7B,0xF8,0x92,0x94,0xDE,0xDC,0x09,0x62,0xAE,0xD4,0x86, + + 0x60,0xF6,0x9F,0xC4,0x11,0x7A,0x6F,0x51,0x5E,0xF9,0xC3,0x1C,0xA1,0xED,0x5B,0xFD, + + 0x48,0x46,0xFE,0x57,0xBA,0xD7,0xD3,0xCC,0x08,0x13,0xFD,0x71,0xF4,0x6E,0x0E,0x91, + + 0xC1,0x49,0xDF,0x15,0x9F,0x3E,0x94,0x5B,0x3D,0x2D,0x6D,0x8B,0xD9,0xA1,0x8C,0xEB, + + 0x15,0xBF,0xF6,0xBB,0xD0,0x08,0x83,0x3C,0x22,0xF9,0xBF,0xBD,0x9E,0x7F,0xEB,0x1A, + + 0xD1,0x10,0xA7,0x2D,0x51,0x2B,0x8B,0x92,0xD5,0xAF,0xCF,0x3C,0x05,0xFD,0x10,0xD9, + + 0xAD,0x57,0xF7,0xBA,0x50,0x6A,0xDF,0x04,0x4A,0x58,0xBF,0x85,0x58,0xFC,0x86,0x6D, + + 0x44,0x9E,0x9C,0xD8,0x99,0x3A,0x6C,0x58,0xEA,0xF3,0xB6,0xEF,0x3E,0x3E,0x16,0xCC, + + 0xA9,0xB1,0xC2,0xCD,0x58,0xCD,0x5C,0xE5,0x95,0x4A,0x5E,0x78,0x3B,0x59,0x3F,0x4D, + + 0x84,0xFD,0xCB,0xD9,0x19,0x38,0xF3,0x8B,0x9F,0x55,0xD5,0xB3,0x78,0x5A,0x3C,0xBB, + + 0xEB,0x10,0xB7,0x5F,0xB2,0xBF,0xE7,0x46,0x59,0x2D,0xBF,0xFE,0xBF,0x3D,0x18,0x7F, + + 0x27,0x30,0x67,0xE0,0x96,0xA4,0x3C,0xA6,0x25,0xB2,0x88,0x61,0x96,0xB0,0x78,0x93, + + 0x41,0x8C,0x5D,0xF4,0xB4,0xCD,0xA4,0x41,0xE1,0x83,0xC0,0xCA,0xC4,0x1A,0x19,0x86, + + 0x02,0xA0,0x81,0x65,0x16,0x0E,0xF1,0x6A,0x3A,0x80,0xF9,0x22,0xB7,0x6B,0x85,0x96, + + 0x8B,0xC5,0xCB,0x1B,0x96,0xC3,0x03,0x96,0x3A,0xD8,0xC2,0x18,0xF0,0x6E,0x1F,0xAF, + + 0xC0,0xC6,0x80,0x07,0xBB,0xA9,0xFF,0x35,0xBB,0xCF,0xD4,0x2A,0xAB,0xEB,0xB7,0xB8, + + 0x38,0x95,0xA0,0x41,0x74,0x25,0x40,0x92,0x0F,0x4E,0xF4,0xCC,0xD1,0xC5,0x2B,0xE8, + + 0xF1,0x6A,0xEB,0x43,0x35,0xA0,0xBB,0xE1,0x46,0x2E,0x31,0x2F,0xA0,0xA4,0x36,0x57, + + 0x81,0x0D,0x91,0xD5,0x94,0x63,0x75,0x91,0x47,0x77,0x51,0x6A,0x55,0xE3,0xA4,0x88, + + 0x8C,0xCB,0xF8,0xF1,0xBF,0x05,0xB9,0x4C,0x11,0x37,0xCD,0xAA,0x1F,0xDF,0x12,0xE9, + + 0x31,0x8F,0xA2,0x1B,0x76,0x10,0xEE,0xEA,0xCC,0x31,0xE3,0x35,0xBA,0x24,0x1B,0xF8, + + 0xB8,0xEF,0xBC,0x48,0x5E,0x55,0x0D,0x56,0x0D,0xA9,0xD3,0x2D,0x1F,0xE7,0x0B,0xF7, + + 0x2C,0x24,0x50,0x9B,0xC4,0xF5,0x31,0x9B,0x72,0x7E,0xC9,0xC0,0xD9,0x66,0x17,0x38, + + 0xE5,0x1D,0x9A,0xCC,0x1B,0xFF,0x12,0x45,0x4C,0xC1,0x69,0x0C,0x7C,0x01,0xF6,0x9A, + + 0x37,0x06,0x92,0xDA,0x72,0xF0,0x42,0x3D,0x91,0xC5,0x74,0x87,0xE5,0xAF,0x5D,0x73, + + 0x03,0x28,0xD9,0xAD,0x32,0x2E,0x8C,0xE9,0x4E,0x26,0xF9,0x93,0x5E,0x15,0x7F,0x6A, + + 0xFF,0x90,0xB5,0xF5,0xCF,0xE1,0xEF,0x09,0x30,0x44,0x74,0x28,0x22,0xE6,0x20,0x00, + + 0xA4,0x89,0xDC,0xA1,0xDD,0xC1,0xB1,0x43,0xE6,0xD4,0x12,0xAF,0x1F,0xEA,0xB2,0xF0, + + 0xDE,0x4C,0x92,0xBA,0x96,0xF3,0xF8,0x62,0x69,0xCA,0xC6,0x91,0xD6,0xEA,0x1D,0x7D, + + 0x26,0x96,0xDD,0xA7,0xEC,0xD2,0x6E,0xC1,0x25,0xB0,0x35,0x57,0x6C,0xFD,0x53,0xBB, + + 0x5C,0x3C,0xA2,0x5A,0x54,0x4C,0xFC,0x55,0x44,0x59,0x99,0xC1,0xC6,0x28,0x62,0xFA, + + 0xA6,0x9A,0x9C,0xC2,0x37,0xB4,0xAF,0xE0,0x19,0x3C,0xF6,0xCD,0xFB,0xB6,0x6D,0xB4, + + 0xA5,0x69,0x2C,0x17,0x9A,0xB3,0x27,0xDD,0x61,0x0D,0x14,0xEB,0x55,0xD5,0x3C,0xDF, + + 0x03,0x69,0x3A,0xC7,0xC1,0x36,0xA8,0x48,0x9D,0xD4,0xF7,0x5B,0xD7,0xB6,0x57,0x8C, + + 0x04,0xF2,0xE5,0x70,0xD4,0x97,0x6E,0x53,0xE7,0x45,0xFE,0xD7,0xAB,0xC7,0x33,0x2A, + + 0x30,0x58,0x66,0x4B,0xD5,0x35,0xE1,0x42,0x4C,0x97,0x4C,0xE9,0xB6,0x61,0xA9,0x82, + + 0xAF,0x9D,0xF2,0x78,0x2D,0xF6,0x0C,0x4B,0xCE,0x79,0x9E,0xA6,0x4E,0x22,0x77,0x8A, + + 0xA0,0x99,0xFE,0x3D,0x1B,0xA1,0x8F,0x5A,0x4F,0xBA,0xFF,0xBF,0x18,0x63,0x31,0xF9, + + 0x46,0xCA,0xF6,0x90,0x5A,0xA0,0x1D,0x39,0x24,0x94,0x05,0xF8,0x37,0x42,0xD9,0x28, + + 0xAB,0x1C,0x9E,0x4C,0x37,0x61,0x56,0xE7,0xEC,0xD8,0x96,0xEC,0x7F,0x77,0x43,0x37, + + 0x8C,0x9B,0x8E,0x9F,0xC6,0xB0,0x24,0xBB,0xCC,0x93,0xFE,0x7A,0x12,0xD8,0x8F,0xF4, + + 0x4F,0x98,0xDF,0x1F,0x45,0xB1,0xF9,0x89,0xCD,0xBE,0x08,0x0D,0xFA,0xE7,0x4F,0x81, + + 0x0E,0x96,0xE5,0xDB,0x1C,0x44,0x3E,0xBD,0xE7,0xC4,0x6F,0xFF,0x80,0x80,0xAD,0x7F, + + 0x9D,0x1B,0x11,0x77,0x24,0x4E,0x72,0xDD,0x42,0x9B,0x50,0xA9,0x4F,0x6A,0xB5,0x21, + + 0xA0,0xA0,0xB6,0x28,0x79,0x2C,0xC3,0x7B,0x3E,0x3F,0x20,0xA7,0x77,0xCC,0xCA,0x85, + + 0xC0,0xA9,0xE7,0xD8,0x93,0xFA,0xA4,0xA5,0x95,0xD3,0xC5,0x62,0xE3,0x7A,0x31,0x21, + + 0xAE,0xAC,0x76,0x66,0xE9,0x61,0x42,0x7A,0xBA,0xD8,0xCD,0xB1,0xCF,0x19,0xD1,0x87, + + 0xC8,0xFE,0xB8,0x63,0xFB,0x27,0x44,0x9F,0x0A,0x75,0x84,0x86,0xFE,0xC9,0x5E,0x6C, + + 0xE8,0x41,0xF6,0x7D,0xB0,0x0C,0xD8,0x11,0x1B,0xC8,0x18,0x94,0x53,0xC5,0x09,0xB9, + + 0xE1,0x99,0xB9,0xC1,0xC0,0x3F,0x45,0xBE,0x3B,0x4D,0x01,0x87,0x2E,0xB6,0x13,0xEE, + + 0xE9,0xB6,0x6C,0x26,0xE5,0x86,0x27,0x49,0x99,0x05,0xC8,0x54,0x29,0x0B,0xA2,0x7A, + + 0x6A,0x54,0x47,0x58,0x1E,0x5A,0xD2,0xD9,0x4E,0xC5,0xDA,0x39,0xB1,0x4B,0xA1,0x09, + + 0x5D,0x48,0x5C,0xBD,0xD1,0x3A,0xA2,0xC7,0xA0,0x58,0x62,0x4F,0x29,0x07,0x7D,0x0E, + + 0x8E,0x8A,0x6D,0x4D,0xDC,0x8E,0x6D,0x01,0xFB,0xCD,0x6B,0x25,0x31,0x29,0x55,0xB4, + + 0x89,0xAF,0x5B,0xED,0xC8,0xDA,0xB7,0xA6,0xC8,0x0B,0xF9,0x34,0xD8,0xDB,0x3C,0x4F, + + 0xAB,0xA3,0xFA,0xB3,0xF3,0x9F,0x11,0x4C,0xEB,0xB3,0xEC,0xB5,0x90,0xBC,0x05,0x2B, + + 0x67,0x82,0x1A,0xC3,0xEE,0x6F,0x58,0x67,0x3B,0xF9,0x62,0x82,0x4B,0x20,0xD5,0x39, + + 0xD6,0x07,0x17,0xB3,0x15,0x83,0xBF,0xFA,0xBA,0x46,0xAD,0x40,0xE9,0x05,0x53,0xF5, + + 0x6A,0xA0,0x0E,0x4B,0x9A,0x8F,0xCD,0x02,0xE8,0x92,0x24,0x3A,0x3A,0x99,0xDD,0xAF, + + 0x5B,0x1B,0xD3,0x77,0x52,0x9D,0x02,0xC2,0x00,0xC7,0xF2,0x7D,0x71,0x30,0xD7,0x3F, + + 0x27,0x69,0x8A,0xAC,0x79,0x60,0x35,0x43,0xED,0x13,0x9E,0xC7,0x41,0x33,0x5E,0x96, + + 0xDF,0x10,0x51,0x3D,0x5B,0x51,0x6B,0xA7,0x01,0xD1,0x89,0xBA,0x9B,0x7D,0x4B,0x6D, + + 0x5F,0xE8,0x8B,0xA9,0x58,0xE2,0x1F,0xB2,0xD2,0x89,0xDE,0x0B,0xF7,0xF3,0x57,0xC2, + + 0xF5,0xB9,0xBF,0xE3,0x93,0x5A,0xAB,0xA7,0xA8,0x57,0x57,0xD4,0x7A,0x36,0x16,0x47, + + 0x5B,0x57,0x44,0xA6,0x00,0x41,0xDC,0x91,0xFF,0xF1,0x85,0xFF,0x96,0x7E,0x56,0xB8, + + 0x81,0x14,0x22,0xBF,0x64,0x3E,0xEE,0x72,0x9E,0x5E,0x96,0x61,0xF3,0xC4,0x0E,0xB1, + + 0x4A,0xF6,0x37,0x51,0xE1,0xE1,0xDE,0xD8,0x1E,0x8F,0x9C,0x77,0x6E,0x8C,0x7D,0xA7, + + 0x41,0x4D,0xDE,0xB3,0x70,0x89,0xD6,0xB8,0xED,0xF5,0xB2,0x44,0x2F,0x3A,0x85,0x5D, + + 0x16,0x2A,0x8A,0xEF,0x3F,0x4B,0x1B,0xCB,0x48,0xF0,0xCA,0x4F,0x5F,0xC6,0x1D,0x70, + + 0x57,0x58,0xA7,0xA2,0xF0,0x0B,0xDC,0xD8,0xB7,0x51,0x95,0xEB,0x19,0xD5,0x51,0xC9, + + 0x83,0xAE,0x50,0xDD,0xBE,0xB6,0x03,0x59,0xE5,0x19,0xB9,0xDD,0xC1,0xD6,0x3E,0x4C, + + 0x78,0x5D,0x6A,0xB3,0xF0,0x6F,0x4E,0xE0,0x6C,0xCE,0xEE,0xFC,0xD9,0x12,0x70,0xE4, + + 0x43,0x10,0xB7,0xA2,0x5A,0x39,0x18,0xE4,0x6D,0x2F,0x87,0x1D,0x18,0x0D,0x1D,0xC8, + + 0x09,0xAE,0xF9,0x64,0xDB,0x3A,0x4E,0x8B,0x01,0x6F,0xB5,0xE8,0xFB,0x3C,0xB0,0xAA, + + 0xD3,0x7C,0xAE,0x1D,0xE7,0x53,0x03,0x7D,0xB9,0xD4,0x27,0xF5,0x98,0x68,0xEA,0xBA, + + 0xED,0x9A,0xDE,0x00,0x77,0xD5,0x24,0x8C,0xA5,0x6F,0xE9,0x94,0xF1,0x66,0x90,0xE1, + + 0x3B,0x91,0xBE,0xBE,0xEA,0x0C,0xEA,0xC1,0x2F,0x6E,0x79,0x33,0x53,0xDA,0x79,0x0A, + + 0xB7,0x0A,0x72,0x83,0x8A,0xB5,0x65,0xD0,0xE2,0x6D,0x31,0xE7,0x90,0xE1,0x91,0xE0, + + 0xF7,0x98,0x7F,0xAB,0x62,0xC0,0x6B,0xC0,0xEB,0x6C,0x87,0x08,0xE5,0xE7,0x73,0x31, + + 0x76,0xE8,0xB9,0x4D,0xF3,0xAF,0x0E,0x5F,0x8E,0x55,0x0F,0x14,0x80,0x3B,0x8E,0x63, + + 0x77,0xC7,0xE0,0x47,0x24,0x91,0x70,0x66,0x8F,0xE6,0xC6,0xCF,0x36,0xE1,0x06,0x83, + + 0xD4,0x0D,0xF3,0xC3,0x88,0x5D,0x21,0xE7,0xD8,0x3D,0x1D,0x18,0x1C,0x35,0x2A,0x33, + + 0x26,0x2E,0x53,0x37,0x81,0xA6,0xEE,0x60,0xE1,0xC4,0x80,0x09,0xB6,0xE3,0x7B,0x6C, + + 0xE7,0x3B,0xC4,0x6C,0xE7,0x37,0x21,0x59,0x7C,0x8A,0x32,0xD3,0x00,0xAA,0x0C,0x6A, + + 0x44,0x2D,0x78,0x6D,0x77,0x7A,0x00,0xD8,0xE1,0xC6,0xBE,0xA8,0xBC,0x46,0x22,0x6D, + + 0x67,0x59,0x9D,0xBB,0xE0,0x05,0x70,0x23,0x27,0xAE,0xBA,0xC7,0x94,0xFB,0x35,0x4F, + + 0xB2,0x13,0xD5,0xAE,0x74,0x28,0x05,0x13,0xA5,0xC6,0xAA,0x4C,0xED,0x87,0xF4,0xAA, + + 0x5E,0x07,0x23,0x87,0xF7,0x3F,0x28,0xFD,0x26,0x2D,0x93,0x2E,0x78,0x41,0x29,0x6B, + + 0xAE,0x0D,0x3F,0xEF,0x65,0x72,0x04,0x4F,0x49,0x5F,0xF2,0x6F,0x6C,0xD9,0xD1,0x7A, + + 0xFE,0xCC,0xF5,0xF3,0x61,0x03,0xB3,0xF3,0xEF,0xC3,0x66,0xA8,0x14,0x3E,0x13,0x59, + + 0xCF,0x2F,0x2B,0xD2,0xB4,0xA2,0x7A,0xFF,0xD1,0xD8,0x41,0x9F,0x8B,0x42,0x3A,0xB8, + + 0x45,0x6B,0x5B,0x78,0xCF,0x2F,0x69,0xD1,0xAC,0xD9,0xA1,0x61,0xBE,0xD9,0x27,0x43, + + 0x23,0xE3,0x99,0x26,0x85,0xD2,0x5A,0xD3,0x66,0x08,0x82,0x9F,0xBD,0x98,0x2E,0x7F, + + 0x18,0xD0,0x10,0x33,0x00,0x11,0x20,0xD0,0xDC,0xBC,0xBD,0xA3,0xFD,0x36,0x54,0xD3, + + 0xE1,0x88,0x41,0x13,0xF5,0xA2,0x03,0x9A,0x2D,0xBA,0xC5,0x85,0x0A,0x26,0x9F,0x32, + + 0x77,0x65,0xDA,0x62,0xFC,0x27,0x7C,0xF2,0xB2,0xF7,0x0C,0x20,0x60,0xF0,0xBF,0x21, + + 0xAB,0xD7,0x4E,0x16,0x3B,0xB4,0xBC,0x7F,0x48,0x78,0x23,0x14,0x57,0xA7,0x1B,0xC5, + + 0xC5,0xE3,0xDB,0x6A,0xB0,0xC4,0xD2,0x47,0x0F,0xE7,0xF3,0x95,0x74,0x8A,0xA8,0x04, + + 0xA6,0x57,0x2C,0x4E,0xB1,0xC5,0x29,0x11,0x4B,0x7A,0x3C,0x0B,0x62,0x0C,0x85,0xFC, + + 0x1F,0xBE,0xAE,0x33,0x0F,0xF2,0x4E,0x98,0x98,0xD7,0xCE,0xDD,0x2B,0xA3,0x10,0x43, + + 0x0E,0xD9,0xED,0x00,0xB2,0xA2,0x40,0x86,0x9C,0x0A,0x07,0x02,0x96,0x48,0xDD,0xF9, + + 0x47,0x4A,0x1F,0xEF,0xE8,0xF8,0x6C,0xAB,0x84,0x00,0xB7,0x92,0x17,0x2B,0x33,0x84, + + 0xAB,0x09,0xA6,0xF9,0x63,0x66,0x41,0x82,0x25,0x01,0x99,0x63,0xC9,0x56,0x40,0x7F, + + 0x04,0x38,0xBA,0x4A,0x6C,0x37,0xA6,0x08,0x92,0xED,0x2A,0x03,0x0C,0x47,0x68,0xE6, + + 0xC6,0x4C,0x49,0x7A,0xD6,0x6D,0xE8,0x7E,0x3D,0xCD,0x75,0xC6,0x08,0xC1,0x36,0x6F, + + 0xE6,0xCF,0xEF,0xDF,0x6A,0x9D,0xB7,0x0B,0xEE,0x73,0xB7,0x17,0x42,0xBC,0x37,0xDF, + + 0xE7,0x2E,0x2F,0x52,0x90,0x12,0x01,0xFC,0x06,0x2E,0x20,0x07,0x8C,0xC3,0x5F,0xCF, + + 0x06,0xAB,0x7A,0xF5,0x48,0xC0,0x2E,0x3C,0x63,0xE0,0xCE,0xC6,0x5C,0xE4,0xC0,0x76, + + 0x20,0xA1,0x0A,0xFC,0x6E,0x6C,0x1A,0x42,0x72,0x35,0x90,0xA0,0x6A,0x41,0xC1,0x02, + + 0x36,0x19,0xA1,0x00,0xA3,0x04,0x48,0x2E,0x84,0x46,0x6E,0x5F,0x5D,0x94,0xB1,0x81, + + 0x26,0x07,0x91,0x10,0x34,0xA1,0xE3,0xB5,0xDF,0x5C,0xB9,0xB1,0x28,0x0F,0xC0,0x0A, + + 0xFF,0x18,0xB6,0xC0,0x16,0x49,0x77,0x82,0xA2,0xE5,0xD0,0x64,0x52,0x64,0x9C,0x0E, + + 0x2D,0xD9,0xCA,0x0A,0x91,0xC9,0x8C,0x8E,0xBE,0xC4,0xD8,0x74,0x53,0x65,0x40,0x43, + + 0xCA,0x6A,0xA1,0x12,0x71,0x66,0x69,0x9E,0x2B,0x49,0xD1,0x65,0xD2,0x66,0x20,0xBA, + + 0x68,0x56,0xB3,0xD1,0xD3,0x03,0x19,0x82,0xED,0x9A,0xD9,0x75,0xD3,0x67,0x80,0x7A, + + 0x3B,0xE0,0x7A,0x28,0xF1,0x92,0x1A,0xA8,0xA1,0x98,0xF0,0x29,0x5B,0xF8,0x2A,0x40, + + 0xA8,0x08,0x01,0x24,0x3D,0xA4,0xDA,0x78,0x05,0x07,0x65,0x46,0xD4,0x9F,0xFB,0x01, + + 0x2F,0x0C,0x95,0x6F,0x27,0x68,0x01,0x2D,0xCE,0xD8,0xAD,0x49,0x55,0x08,0xB5,0x11, + + 0x68,0x10,0xF5,0x28,0x70,0xCA,0xDD,0xD1,0xCE,0xC0,0x93,0x39,0xE2,0x4B,0xE1,0x61, + + 0x39,0xB2,0x9B,0x5C,0x1C,0xAC,0x00,0xC7,0xA1,0x0F,0xD2,0x6C,0x5A,0x6C,0x09,0x72, + + 0x86,0x4F,0x0A,0x4C,0xCE,0x2B,0xFA,0x88,0xC3,0x9E,0xDA,0x7C,0x5B,0x6D,0x83,0x59, + + 0x52,0x4C,0x4C,0xCF,0x57,0x21,0x09,0x2B,0xB6,0xE1,0xD3,0x6D,0xDA,0x6E,0x49,0xE5, + + 0x88,0x3E,0x65,0xAF,0x9D,0xAF,0xEC,0x7F,0x3C,0xE4,0xDB,0x7D,0xDB,0x6F,0x16,0x7F, + + 0x87,0x02,0xE2,0xE4,0x70,0xAF,0xAE,0x5F,0xED,0x4B,0x3B,0xDF,0xAD,0xAB,0x0D,0xF6, + + 0x02,0x51,0x94,0xF8,0xD0,0x0E,0xA3,0xF7,0xA3,0x41,0xC7,0xB4,0x77,0x51,0xBD,0x31, + + 0x5F,0x5D,0xE5,0x87,0x3F,0x3F,0xB6,0x37,0xE3,0x62,0x95,0xFE,0x01,0xCE,0x4C,0xF7, + + 0x82,0x10,0xB5,0x64,0x12,0x63,0x15,0x19,0xC3,0xB1,0xEB,0x5D,0x86,0x3E,0x46,0x7C, + + 0x23,0xB4,0x9A,0xBA,0x31,0x36,0xFD,0xB7,0x64,0x26,0xD4,0xE4,0x72,0x74,0xDC,0x54, + + 0x71,0x00,0x34,0xB2,0xF1,0x15,0x7C,0xED,0xE1,0x09,0xDC,0xF4,0x73,0x75,0x55,0x4D, + + 0xA6,0x78,0x9C,0x26,0x17,0xB6,0x6E,0x63,0x77,0xF1,0xD5,0xE5,0xF2,0x76,0x74,0x93, + + 0x02,0x0C,0xC5,0xD9,0xD8,0x87,0xA9,0x75,0xB1,0x53,0xDD,0xF5,0xF3,0x77,0x66,0x8A, + + 0x71,0x15,0xB4,0x73,0xB5,0x95,0x40,0x40,0x8A,0xF5,0xE9,0xEB,0x85,0xCE,0xCA,0x1E, + + 0x63,0x7C,0x94,0x9E,0x8A,0x94,0xC1,0x02,0x6F,0xCB,0xC7,0xA7,0x1E,0x59,0xC3,0x0C, + + 0xEB,0xE9,0x4A,0x12,0x51,0x35,0x94,0x4F,0x9F,0x46,0x2C,0x37,0xF9,0x58,0x37,0x1C, + + 0xA7,0x91,0x46,0xED,0x39,0x2D,0x7D,0x3D,0xBC,0xCA,0xC5,0x0E,0x91,0x9A,0xFB,0x4C, + + 0x6A,0xA8,0x44,0x8A,0x4A,0x7D,0x36,0xA3,0xFC,0x1E,0xD6,0xEC,0x7A,0x7C,0x0D,0xE1, + + 0x28,0xAD,0x5E,0xDC,0x3B,0x3D,0x03,0x10,0x72,0x1F,0xDE,0xFC,0x7B,0x7D,0x2F,0xAB, + + 0x19,0x5C,0xFD,0x25,0x11,0x71,0x92,0x93,0x68,0x62,0xD7,0xED,0xFA,0x7E,0x16,0xB6, + + 0xAD,0x9F,0xCF,0xDD,0xBB,0x3F,0x9A,0x87,0xCF,0xA4,0xDF,0xFD,0xFB,0x7F,0x07,0xF4, + + 0x86,0xBC,0x0C,0x95,0x0F,0xA8,0x72,0xC4,0x8C,0x10,0x8D,0x46,0x5E,0xE6,0xA3,0x70, + + 0xFA,0x0D,0x89,0x27,0x79,0xBE,0x20,0xB2,0x2C,0x7B,0xC0,0x54,0xD8,0x67,0x7F,0xE1, + + 0x06,0x86,0x21,0x24,0x6D,0x29,0x7E,0xCB,0x14,0x0F,0x9C,0x9D,0x75,0x62,0x63,0x0E, + + 0xA5,0x8E,0x11,0xF7,0x91,0x86,0x21,0x2B,0xF6,0x0B,0xFB,0x77,0x9D,0x48,0xA0,0xDA, + + 0xB6,0x99,0x5A,0x46,0x16,0xA4,0x7E,0x62,0x8E,0xAD,0xF0,0x66,0x56,0xE4,0xA8,0x42, + + 0xDF,0x8B,0x12,0xD2,0x45,0xB2,0x28,0x49,0x69,0x50,0xF8,0x76,0x57,0xE5,0x49,0x21, + + 0xB5,0x38,0xE1,0x35,0xA5,0xF0,0xFB,0x4C,0xEC,0x93,0xF1,0x67,0xD6,0xE6,0x51,0xB9, + + 0x81,0xC7,0xB0,0x38,0x91,0x27,0xA9,0x77,0xDA,0x65,0xF9,0x77,0xD7,0xE7,0xA2,0x4C, + + 0x46,0x75,0x9F,0x31,0x70,0xEA,0x8A,0x6D,0x8E,0xA8,0xB5,0x3B,0xBD,0xE7,0x3A,0x78, + + 0x09,0xC5,0x65,0x8D,0x4A,0x29,0xC2,0x1E,0xAC,0xD2,0xF2,0xA2,0xAC,0x85,0x09,0x8E, + + 0xCF,0x6A,0xE9,0x58,0x11,0x07,0x7B,0x3B,0x69,0x4A,0x8C,0x68,0x1E,0xFA,0x6C,0xF3, + + 0xAA,0xC6,0xD4,0x58,0x74,0x82,0xB1,0xDD,0xFE,0xED,0xD9,0x37,0xDE,0xF9,0x1A,0x00, + + 0xFF,0x90,0x94,0x89,0x18,0x2C,0x4C,0xA2,0x6D,0x0E,0xF2,0x6E,0x5E,0xEC,0x7F,0x65, + + 0x3B,0x00,0xA9,0xF4,0x2C,0xD0,0x3E,0xF8,0xD6,0x26,0xFA,0x7E,0x5F,0xED,0xA3,0xD3, + + 0x7A,0x5B,0x30,0x0F,0x8E,0xEC,0xB3,0xE6,0xC1,0xC4,0xF3,0x6F,0xDE,0xEE,0x10,0xA0, + + 0x00,0xCD,0x2B,0x4F,0x08,0xED,0xBB,0xE3,0x4F,0xC9,0xFB,0x7F,0xDF,0xEF,0xF3,0x07, + + 0xA2,0x22,0xAC,0x3A,0xDD,0x6A,0x81,0xD3,0xD0,0x59,0xCA,0xA0,0x95,0x73,0x12,0x8E, + + 0x06,0x13,0xBA,0xE5,0x18,0x33,0xE3,0x32,0x12,0xA6,0xC4,0xA7,0x19,0xD4,0x8D,0x0F, + + 0x21,0x70,0x49,0x15,0xB4,0xBA,0x6A,0x43,0x97,0x36,0x00,0x54,0x78,0x7F,0xC1,0xE0, + + 0xBA,0x35,0x52,0xE4,0xEA,0x45,0xFD,0xEE,0x50,0x5E,0x7E,0x93,0x9E,0xC2,0x12,0x46, + + 0x74,0x83,0xE4,0xC6,0x36,0xB4,0x34,0x1E,0xDA,0x96,0xF4,0xE6,0x76,0xF4,0xEB,0xA1, + + 0x74,0xFB,0xEC,0xD6,0x37,0xB5,0xA7,0xDD,0x61,0xE4,0xFC,0xF6,0x77,0xF5,0xA5,0x5B, + + 0xDE,0x9E,0xE5,0xC7,0xB6,0xB6,0x39,0xE6,0x99,0xD4,0xF5,0xE7,0xF6,0xF6,0x0F,0xD2, + + 0xA4,0x57,0xED,0xD7,0xB7,0xB7,0x01,0x1B,0x71,0x1A,0xFD,0xF7,0xF7,0xF7,0xF5,0xF9, + + 0x56,0x11,0xEE,0x16,0xC6,0x98,0x6F,0x29,0x8B,0xDE,0x36,0x5F,0x48,0xE2,0x34,0x98, + + 0xBF,0x91,0xAC,0x5E,0x61,0x0E,0x67,0xB5,0x88,0xB7,0xDE,0xF5,0x1E,0xF4,0x07,0x61, + + 0x45,0xC0,0x25,0xF5,0x31,0x3C,0x9E,0x4F,0x4D,0x25,0x89,0x67,0xDF,0xA8,0xAB,0x6A, + + 0xF5,0x7B,0x2F,0xBB,0x54,0xF2,0xD8,0xFB,0xF9,0x56,0x40,0x4F,0xEE,0x20,0x3F,0xD1, + + 0xCB,0x1B,0xE6,0xCE,0x3E,0xBC,0xDA,0x78,0x6C,0xD6,0xF6,0xEE,0x7E,0xFC,0xC2,0xFE, + + 0xFB,0x9E,0xEE,0xDE,0x3F,0xBD,0x04,0x7E,0x2F,0xF9,0xFE,0xFE,0x7F,0xFD,0x63,0xCF, + + 0x21,0xDF,0xE7,0xCF,0xBE,0xBE,0x31,0xFF,0x6C,0x32,0xF7,0xEF,0xFE,0xFE,0xC8,0x7A, + + 0x46,0xF6,0xEF,0xDF,0xBF,0xBF,0x26,0x98,0xE9,0x5F,0xFF,0xFF,0xFF,0xFF,0x3A,0xF3, + + 0x30,0xAF,0xBE,0x60,0x70,0xFF,0x86,0xC0,0x44,0xB4,0x03,0x5A,0x9A,0xD1,0x4F,0x14, + + 0x29,0x76,0xF3,0x90,0x15,0xB3,0x1E,0x05,0xC1,0x56,0x0F,0xCB,0xB8,0xD0,0x94,0xF2, + + 0xF0,0x03,0xFE,0x77,0xF2,0xDD,0x00,0x3C,0x40,0xAE,0xD9,0xA5,0x39,0xB3,0x33,0xE2, + + 0x96,0xAC,0xB3,0xE6,0xE9,0x8C,0x27,0xE5,0x7E,0x18,0x4A,0x72,0xDF,0x58,0xBF,0x33, + + 0x2B,0x68,0xEA,0xAA,0xBE,0x29,0x6E,0x82,0x20,0x4B,0x94,0x8C,0x89,0x26,0x54,0x74, + + 0xEA,0x1F,0xB6,0x6D,0xE6,0x73,0x06,0xC1,0x4B,0xC8,0x18,0x64,0xB9,0x0B,0xA6,0x81, + + 0x86,0xA6,0x3C,0x02,0x6F,0x50,0x7E,0x1E,0x1B,0xD9,0xD3,0x7E,0xE1,0x4B,0x11,0x8D, + + 0xA3,0xC5,0xB7,0x6D,0xB1,0xCA,0xA6,0x75,0xCB,0xD4,0x19,0x65,0xA5,0x6F,0xCF,0xF5, + + 0x0A,0xD3,0x11,0xFD,0x74,0x08,0x12,0x19,0x2D,0xE7,0x68,0xCB,0xA5,0x0A,0x34,0x7C, + + 0x61,0x04,0xB4,0x29,0x94,0x9F,0x0D,0x4B,0x52,0x42,0xE9,0x4F,0x35,0x60,0xF6,0x8D, + + 0xB8,0xB5,0xBD,0x69,0xDA,0x95,0x80,0x47,0xE6,0xE5,0x96,0xCA,0xDE,0x51,0xF6,0xE0, + + 0x8B,0x90,0xC3,0xD4,0x70,0xCA,0xDB,0x4A,0x9A,0x40,0x9E,0xAC,0xB5,0x9E,0x8F,0x3A, + + 0xF5,0xF1,0x47,0x0B,0xFB,0x8A,0xFA,0x55,0x79,0x4B,0xD6,0x48,0xD5,0x2D,0x86,0xA8, + + 0x9B,0xFC,0xAC,0x64,0xF0,0xBC,0xA5,0x9E,0xA2,0x7C,0xF5,0x0E,0xB0,0x2E,0xEF,0xDA, + + 0x91,0x04,0xD4,0xBE,0xE2,0xA3,0xEB,0x9A,0xF2,0xC5,0x7F,0x49,0x03,0x93,0x32,0x3F, + + 0xAA,0x37,0xF5,0x64,0xF3,0x5E,0xF7,0xEA,0xEE,0x47,0xA5,0xD8,0x22,0xCB,0xFC,0xF2, + + 0xCB,0xF1,0xFA,0xBC,0xC1,0x66,0xAF,0x0C,0x97,0xDD,0xAA,0xC1,0xCF,0x2B,0x94,0x50, + + 0x28,0xBC,0x1D,0x0B,0xD8,0x00,0xDC,0xA0,0xD9,0x3D,0x5C,0xB5,0x9B,0x8C,0x3B,0xB4, + + 0x2D,0xB4,0xFB,0xA8,0x3D,0x9F,0x6A,0x23,0x71,0x95,0x95,0x5E,0x83,0x72,0x9B,0x81, + + 0x5E,0xEE,0x6E,0x55,0xD1,0x5F,0xDD,0xA1,0x97,0x59,0x8B,0xD7,0x0E,0xAE,0xA5,0x80, + + 0x62,0x5A,0x3F,0xBF,0x3C,0xCB,0x2B,0x93,0x4F,0xD5,0x29,0x08,0x72,0xCF,0x36,0xB0, + + 0x75,0x9E,0xF2,0xF8,0xE5,0x3F,0xBB,0x30,0x42,0xE8,0x53,0x9A,0x92,0xDA,0x87,0xC3, + + 0x86,0xCB,0x69,0xB6,0x8E,0xC0,0xAE,0x1E,0x1B,0x3A,0x95,0x1D,0x06,0x34,0x3C,0xED, + + 0x48,0x53,0x4D,0x13,0xCF,0xBC,0x4F,0xF5,0x1C,0xDA,0x4A,0x86,0x8F,0x1B,0xAA,0x1B, + + 0x0D,0x12,0xB8,0xB4,0xE6,0x95,0x56,0x40,0xB0,0x95,0x42,0x52,0x85,0xF9,0xCE,0x00, + + 0xF9,0xE4,0x4E,0x11,0x5C,0x7B,0xEC,0x3C,0x29,0x94,0x6B,0x42,0x02,0x7B,0xD3,0x0D, + + 0xB6,0xD3,0x12,0x13,0xB9,0x48,0x4F,0xA4,0x6A,0x46,0xD7,0x52,0x0D,0xF9,0xCF,0x14, + + 0x98,0x59,0xCC,0x87,0x34,0x86,0x1F,0xB9,0xE9,0x5B,0xC4,0x86,0xFF,0x83,0x7C,0x78, + + 0xBF,0xB3,0xBD,0xFD,0x02,0x93,0x82,0x16,0x97,0xFD,0xB0,0x89,0x7B,0x3C,0x65,0xE4, + + 0xC0,0x59,0xB0,0xDB,0x9A,0xBA,0xA5,0x8B,0x17,0xAC,0x0C,0x9E,0x8C,0x18,0xE3,0xBB, + + 0x09,0x95,0x67,0xBF,0xD8,0x22,0x6F,0x16,0x1F,0x3D,0xF3,0x67,0xFC,0x0C,0x75,0x69, + + 0x32,0xB0,0x4B,0xD8,0x1F,0xCE,0x21,0xFF,0x02,0x8E,0xE7,0x02,0x0E,0x1C,0x95,0xFF, + + 0x06,0x5B,0x60,0x8B,0xB0,0x3F,0xB3,0xCA,0x86,0x0D,0x26,0xA2,0x6B,0x26,0x84,0x61, + + 0x1A,0x27,0x6D,0x62,0xB4,0xFE,0x82,0xD2,0x05,0x8D,0xCB,0x45,0x39,0x8D,0x12,0x87, + + 0xD1,0x13,0x15,0x65,0x6F,0xE0,0x69,0x2A,0xF7,0x76,0x91,0xC0,0xD2,0xD9,0xB3,0xE3, + + 0x05,0x9C,0x1D,0x75,0x2A,0xCF,0xE9,0x31,0xA9,0xC2,0xDF,0x53,0xD6,0xD3,0x3A,0x8F, + + 0x7A,0x2B,0x9E,0x6B,0xFF,0x35,0x74,0x46,0xA7,0x6B,0x6C,0x84,0xB6,0x40,0x16,0x55, + + 0xA6,0x5A,0xEF,0x54,0xD1,0x08,0xEB,0x48,0x2C,0x34,0xA6,0x94,0x53,0x58,0xC1,0x31, + + 0xE4,0xF3,0xB7,0x6B,0x7D,0xF7,0xE0,0x90,0xFA,0x6D,0x89,0xD7,0x3D,0x45,0xD6,0xD7, + + 0x99,0xEC,0xFC,0x66,0x36,0x26,0x39,0x8A,0xC5,0x5C,0x39,0xEF,0x21,0xEA,0x3C,0xC6, + + 0x9E,0x82,0xC5,0xFD,0x28,0xF5,0xE2,0x17,0xB8,0x79,0x05,0x1B,0x5A,0x93,0xEE,0xE5, + + 0x3E,0x46,0x6F,0xA1,0xEE,0xCC,0x65,0x2B,0x4B,0xE9,0xC2,0xF8,0x7B,0xA8,0x20,0x78, + + 0xE9,0xE6,0xC0,0xFC,0xA4,0xE8,0x84,0x17,0xBF,0xCA,0x51,0x3E,0xB0,0xEE,0x11,0xFD, + + 0x9D,0x76,0x93,0xE4,0x10,0xDD,0x4D,0x44,0xF1,0x34,0x0C,0x17,0xAA,0xEB,0x5A,0xB0, + + 0xA2,0x81,0x91,0xBD,0x9A,0x21,0xC7,0x55,0x76,0x8E,0x8C,0xCE,0xF2,0xE1,0x93,0x52, + + 0xAA,0xF2,0xD2,0xA4,0xB3,0xA0,0xCD,0x47,0xBB,0x1C,0x36,0x81,0xAA,0x6E,0x1C,0xA3, + + 0xCF,0xC3,0xB1,0x61,0x75,0xCA,0xAA,0x12,0x36,0xFF,0x8D,0xCE,0xD8,0x7C,0x87,0x20, + + 0x11,0x12,0x94,0x25,0x12,0xCD,0xBB,0x8F,0xF8,0x42,0x0E,0x81,0x36,0x86,0x67,0x3B, + + 0xEE,0x41,0xC2,0xF2,0x57,0xB4,0xA4,0x20,0xF5,0x17,0x0D,0xB5,0x44,0x11,0x6F,0x16, + + 0x3B,0x58,0xCD,0x56,0x65,0xF3,0x3C,0xB2,0x65,0x7C,0x3C,0x27,0x22,0x5C,0x1E,0x10, + + 0xDC,0x98,0xDC,0xFD,0xD5,0xB6,0xF5,0xB3,0x01,0xD2,0x25,0xD4,0xA3,0xFB,0x16,0x71, + + 0x09,0x2E,0x68,0x28,0xB3,0x21,0xA5,0x37,0xFB,0x96,0x21,0x27,0x0A,0x5E,0xC0,0xB0, + + 0x85,0x1F,0x74,0x81,0xCF,0x12,0xA7,0x66,0x78,0xC3,0x92,0x84,0x8D,0x6B,0x94,0xCF, + + 0xA7,0x70,0x8A,0xFA,0xDC,0x24,0x5A,0xCE,0xEB,0x68,0xBF,0xC8,0x44,0x3A,0xFD,0xFF, + + 0x15,0x1B,0x70,0x34,0xCE,0x2B,0x8A,0xF0,0x9A,0x92,0xCE,0xA5,0x57,0xB4,0xFD,0x9C, + + 0x5E,0xEB,0x01,0xA4,0xCF,0x11,0xBD,0x7E,0x0F,0x88,0x45,0x09,0xE7,0xBA,0x5E,0x7B, + + 0x8F,0xD8,0x81,0x8C,0x7C,0x18,0xCD,0x8D,0xCD,0x27,0x79,0xE9,0xA2,0xF2,0x10,0xA3, + + 0x8E,0xFC,0x54,0xF8,0xCA,0xA9,0x7D,0x03,0x90,0x6F,0xA6,0xDE,0x79,0x5B,0x98,0x0F, + + 0xB2,0xE3,0x31,0xAE,0xFE,0xA1,0x57,0x91,0xEE,0x98,0x37,0xBE,0xA3,0x57,0x11,0xA7, + + 0x0E,0x36,0x17,0x60,0x30,0x1D,0xC0,0xC5,0x3F,0x04,0xA7,0xCC,0xD8,0x79,0xCF,0xB0, + + 0xBB,0x31,0x7C,0x3E,0xBE,0xA3,0xC2,0x88,0xD1,0xB0,0x09,0x90,0x50,0x5A,0x56,0x24, + + 0xF3,0x92,0x6E,0x18,0x43,0xBE,0x9F,0x04,0x96,0xDB,0xC6,0x14,0x79,0xBD,0xFB,0xFB, + + 0x59,0x3F,0xF9,0xF7,0x2C,0xB6,0xC8,0x64,0x11,0x03,0xCF,0x14,0x0D,0xF0,0x5D,0xEB, + + 0xAF,0x60,0x78,0x4B,0x9F,0x7E,0xCA,0x7B,0xE9,0xAD,0x04,0x81,0x7E,0xF2,0xBF,0x42, + + 0xA1,0xD5,0xA0,0xF4,0x80,0xD1,0xDA,0xD0,0xC0,0x5F,0x00,0xA6,0xD0,0xDA,0xB7,0x5F, + + 0x94,0xDC,0x44,0x29,0xA2,0x6C,0x50,0x3C,0xBC,0xE0,0xD2,0x29,0xBA,0x70,0x51,0x3E, + + 0xAA,0x7E,0xF8,0x63,0x67,0xA9,0xAA,0x51,0x40,0x54,0xA9,0xF5,0x73,0xEE,0xA0,0x7F, + + 0xAF,0xA5,0x91,0x65,0xF2,0x06,0xCD,0xC2,0xEF,0x9E,0x89,0x0C,0xD5,0x4F,0xEB,0xC5, + + 0x91,0x3B,0x89,0x45,0x90,0x18,0x1A,0x4F,0xBF,0x28,0x77,0xA3,0xAF,0x12,0xDE,0xA3, + + 0x87,0x88,0x30,0x5C,0xB4,0x67,0x3B,0xF4,0x5D,0xEF,0xE6,0x5C,0xA8,0xFE,0xBE,0xB1, + + 0xC5,0xA7,0x8F,0xA7,0xA1,0x8D,0x33,0x65,0xE6,0x5D,0x6A,0xEB,0xD1,0x87,0x1B,0x1A, + + 0x85,0xDC,0x0C,0x90,0x92,0xE7,0x51,0xFD,0xF0,0xB1,0xD9,0xF7,0x46,0x92,0x3A,0xE3, + + 0xBB,0x06,0x15,0xE6,0xBD,0x97,0x44,0x8C,0xA3,0x0B,0x4B,0x5F,0x35,0x61,0xF1,0x9C, + + 0x4C,0x1A,0xB5,0x82,0x96,0x32,0xB6,0xD0,0xA6,0x04,0xD1,0xDC,0x45,0x72,0x3B,0xF6, + + 0x0B,0x07,0x6F,0x93,0x99,0x40,0x15,0x14,0xE1,0xF6,0x13,0x6E,0xEF,0xC7,0x24,0x66, + + 0x50,0x97,0xAE,0x8B,0x98,0x53,0x7D,0x98,0x20,0x48,0xBC,0x4B,0xFA,0xAB,0x9F,0x88, + + 0x14,0x4E,0xFC,0x94,0x39,0x6C,0xEA,0x96,0x5A,0x01,0x12,0xE1,0xCC,0x6A,0xE1,0x1F, + + 0x05,0xD1,0xEA,0x0F,0xBA,0xA1,0xBD,0x06,0x4D,0x3F,0x7D,0xBB,0xA6,0x1B,0x86,0x72, + + 0xB9,0xEE,0x6B,0xD9,0xBE,0x28,0xAC,0x81,0x41,0x03,0x7E,0xFE,0xDC,0x1C,0x8F,0x93, + + 0x30,0xF0,0x81,0x40,0x70,0xCE,0x96,0x39,0xC7,0x4E,0x60,0xF3,0xDA,0x8D,0xB0,0xE2, + + 0x9F,0xBB,0xBF,0x16,0x3C,0x38,0xB7,0x04,0xBC,0x33,0xAA,0x6C,0x11,0x50,0x6C,0xAB, + + 0x23,0x53,0xCF,0xC4,0x30,0xA1,0xA7,0x00,0xDF,0x0E,0x0A,0x5C,0xDF,0x3C,0x7D,0x85, + + 0x49,0xE3,0x03,0x6D,0x7C,0x70,0xD5,0x39,0xEF,0x2D,0x8D,0x40,0x11,0xDD,0x0B,0x31, + + 0x00,0xCC,0x4D,0x18,0x60,0x3E,0xB2,0xDE,0x3C,0x8C,0x62,0xC6,0x9D,0x1F,0x7C,0x87, + + 0xE8,0x05,0xDE,0x39,0xA0,0xEF,0xFB,0x06,0x72,0xA9,0xF9,0x34,0xD3,0x1A,0x55,0x32, + + 0xC2,0x0E,0xAC,0x9B,0xBD,0x38,0x17,0x10,0x62,0xA0,0xBC,0xAE,0x73,0x78,0x0D,0x49, + + 0x03,0xB7,0x60,0x41,0xE3,0x72,0xAD,0xE3,0xA3,0xFB,0xB7,0xE9,0xF3,0xC6,0x20,0x37, + + 0xB3,0x5A,0x36,0xF2,0x12,0x31,0xC7,0x19,0xD0,0x18,0xDF,0x17,0x71,0x5F,0xB2,0xEA, + + 0x50,0xE7,0x84,0x6E,0xBA,0x04,0x48,0x10,0x68,0xFC,0x71,0x6C,0x1D,0xF3,0x0E,0x61, + + 0x2D,0x5B,0x4E,0x11,0xE8,0x34,0x2D,0x1C,0x6F,0x01,0x26,0xDC,0x6E,0xD4,0xBC,0x31, + + 0x5F,0x81,0x76,0x7D,0xA8,0x35,0x8B,0x10,0x10,0x39,0x5B,0x9C,0x94,0x65,0x8F,0x01, + + 0x24,0x66,0x63,0x0F,0xFB,0x33,0xED,0x9D,0xDA,0x6F,0xD4,0xDD,0xBE,0x39,0x5E,0xD0, + + 0xC3,0x06,0x6F,0x6F,0x3C,0xC7,0x57,0x97,0xCD,0x47,0x72,0x8E,0x3B,0x5C,0x2E,0x97, + + 0xFB,0x96,0x75,0x3E,0x97,0xC0,0x5E,0x10,0x54,0xC0,0xA5,0xDB,0xDA,0xC2,0x5D,0xC8, + + 0x8B,0xDE,0x2D,0x4F,0x27,0x58,0x7C,0x8F,0x11,0xC5,0xAF,0xC9,0x05,0x73,0x4B,0x3B, + + 0x98,0x41,0xB7,0xFA,0x1A,0xE0,0xA7,0xF1,0x12,0x10,0x1F,0x3D,0x02,0x3E,0x9B,0x58, + + 0x89,0x9B,0x1F,0x82,0x46,0x2C,0xF0,0xAF,0x5B,0xC8,0xD0,0x69,0x84,0xED,0x16,0xB2, + + 0x03,0xF3,0xCA,0x13,0x14,0xA0,0xE1,0x32,0x3E,0xC3,0x52,0xD0,0x66,0x5D,0xDF,0x65, + + 0x4E,0xA1,0x61,0x9F,0xAA,0x3F,0x71,0x50,0xE9,0xBD,0xA9,0x37,0x35,0xF9,0xE4,0x53, + + 0x95,0xC1,0xF0,0x04,0x93,0x31,0x62,0x08,0xBA,0xC1,0x01,0x65,0x96,0x13,0x3A,0x33, + + 0x6E,0x65,0xD8,0x96,0x4A,0x0B,0x67,0x76,0x75,0xD0,0x1C,0xE4,0xC3,0xE3,0x45,0xD6, + + 0x70,0xFE,0xEA,0x25,0x27,0xAE,0x42,0x81,0x54,0xDE,0x51,0x49,0xF6,0x63,0x1F,0x45, + + 0x67,0x05,0xF0,0x34,0xFA,0xAF,0xCB,0xD1,0x56,0x34,0xC9,0xF5,0x47,0xE0,0x61,0x46, + + 0x66,0x81,0x6B,0xA6,0xFB,0x87,0x0D,0x15,0x38,0xD7,0xF9,0x37,0xC7,0xE1,0xE7,0xBE, + + 0xAD,0x17,0xA8,0xCE,0x06,0x55,0xE9,0x14,0x48,0x30,0x4D,0xC6,0x9B,0xA5,0xEF,0xAE, + + 0x8C,0xED,0xD4,0x18,0xFC,0x2A,0xEE,0x01,0x60,0x52,0x02,0x0F,0x6C,0xA6,0x97,0x69, + + 0x77,0xC8,0xB5,0x6D,0xFC,0x09,0x8A,0x15,0xEA,0x3F,0x1F,0xB0,0xDF,0xFA,0x03,0x1D, + + 0x2C,0xD4,0x86,0x9B,0xCF,0xD8,0x3B,0xBF,0xC9,0x59,0x81,0xD7,0x46,0xA4,0xCF,0x51, + + 0xAD,0x88,0xBC,0x66,0x5E,0xF7,0xCA,0x82,0x7D,0x30,0xDF,0xBE,0xFF,0x6C,0x47,0x29, + + 0x5C,0x86,0x7D,0x11,0x74,0xAE,0x23,0xD4,0xEA,0x32,0xD7,0xAE,0xFE,0xE4,0x61,0x5A, + + 0xE2,0xAB,0x4E,0xA2,0x10,0x05,0x8B,0x63,0x33,0x81,0x8B,0x6D,0xCE,0xE8,0x7F,0xD9, + + 0x12,0x3B,0x8D,0x64,0xF6,0x3A,0x7A,0x1D,0xFC,0xB4,0x7B,0xEF,0x7C,0xE9,0xC3,0x7D, + + 0x91,0x46,0xE7,0x02,0x2A,0x2C,0x8E,0x42,0x60,0xF5,0x71,0x9D,0x14,0xF0,0x54,0xB5, + + 0xD8,0x9E,0x2A,0x94,0x33,0x3A,0x04,0xA2,0xC6,0xDC,0x47,0x71,0x46,0x15,0x4D,0x85, + + 0x27,0xF6,0x9F,0x65,0xDF,0x02,0x15,0x21,0x7D,0x85,0x4A,0xD9,0x96,0x92,0xED,0x1E, + + 0xC3,0x9E,0x99,0xAA,0x06,0x6E,0xD1,0x21,0xF5,0xD9,0x05,0x28,0xE7,0xBE,0xDC,0x22, + + 0x68,0x92,0x50,0xA4,0xB4,0xE8,0xD8,0x91,0x79,0x22,0xF4,0xE6,0x76,0xF4,0x28,0xA0, + + 0x84,0x8E,0x8C,0x99,0xFD,0x68,0xB5,0x78,0x64,0x27,0xFC,0xF6,0x77,0xF5,0xC8,0xD9, + + 0x07,0x9F,0x52,0x43,0xC9,0x78,0x2F,0xE1,0x55,0x7F,0xF5,0xE7,0xF6,0xF6,0x42,0xB5, + + 0x66,0x1D,0x95,0xF0,0x4A,0xB8,0xD1,0x1B,0x6C,0x9A,0xFD,0xF7,0xF7,0xF7,0xDD,0xAD, + + 0x8D,0x67,0x86,0x9F,0x5F,0x9D,0xB6,0x89,0xEC,0x55,0x55,0x6E,0x79,0x55,0x34,0x98, + + 0xEF,0x9D,0x6E,0x13,0xEC,0x34,0x86,0x44,0x90,0xB5,0x7E,0x33,0xCF,0xE2,0xCB,0x19, + + 0xAC,0x47,0x30,0x65,0x5D,0xF5,0x4F,0x54,0xDF,0xBD,0x21,0x2B,0xAE,0x76,0x27,0x0F, + + 0x50,0x3D,0xD7,0x82,0x35,0x74,0xDC,0xFB,0xE9,0xFE,0x39,0xE1,0x70,0x99,0xE1,0x22, + + 0xE9,0xD3,0xD8,0xE6,0xC5,0x27,0x11,0x1A,0xEE,0x9E,0xF6,0xEE,0x7E,0xFC,0x7F,0x38, + + 0x0B,0x32,0x2E,0x53,0xA9,0xBB,0x6E,0xC3,0x6D,0x70,0xFE,0xFE,0x7F,0xFD,0x07,0x84, + + 0x76,0x33,0xE7,0x4D,0x2B,0x99,0xB2,0x32,0xEF,0xBE,0xF7,0xEF,0xFE,0xFE,0xCB,0xB9, + + 0x54,0xDD,0x42,0x58,0xB9,0xCD,0x36,0x1B,0xBF,0x74,0xFF,0xFF,0x32,0x61,0x80,0x19, + + 0x40,0x40,0x30,0x08,0xF1,0x43,0x16,0x7E,0xCD,0x22,0xA7,0x70,0x23,0x60,0xA7,0xE1, + + 0xED,0x0C,0x9A,0x10,0xF8,0xA0,0x0E,0x9D,0xAA,0x32,0x8E,0x56,0xAE,0xBC,0x00,0xDF, + + 0xEB,0xC7,0x83,0xF6,0xF4,0x89,0xBA,0xA4,0x53,0x7D,0x51,0x3D,0x83,0x9F,0x57,0x22, + + 0x01,0xA8,0x65,0x86,0xF9,0x29,0xA2,0x80,0xF7,0xEC,0x4D,0xCB,0x2C,0xE2,0x12,0x4F, + + 0xE9,0x95,0xB9,0x32,0xE1,0x34,0x46,0x48,0xA9,0x55,0x01,0x7B,0x6C,0x0A,0x5E,0x91, + + 0xFC,0x88,0x7B,0x69,0x15,0xF5,0xCE,0x0F,0x2B,0x34,0xE6,0xD8,0x91,0x65,0x61,0x61, + + 0x6B,0x47,0x7B,0xBE,0x6E,0x25,0xEA,0xD0,0xAE,0xE9,0xEF,0xC8,0x10,0x99,0x9D,0xAF, + + 0x7B,0xCF,0xD3,0x0F,0x66,0xBB,0x27,0x5C,0x36,0xE4,0xD1,0x61,0xB8,0x34,0x30,0x18, + + 0x8D,0x1E,0x06,0x08,0x58,0x9B,0xC3,0x7A,0xFB,0xC2,0xF3,0xDF,0x20,0xB5,0x2D,0x19, + + 0x62,0x7D,0xF4,0x20,0xF0,0xA8,0xCF,0x6A,0x0A,0xB9,0x2D,0x00,0xA4,0x0A,0x5D,0x13, + + 0x88,0xA1,0xBD,0xDD,0xDB,0x0A,0x6B,0x63,0xF9,0xE7,0xC1,0x22,0x33,0xFB,0x89,0xDF, + + 0x1B,0x08,0x91,0x19,0xB8,0x4B,0x12,0xCA,0xF3,0xE6,0xFD,0x5F,0x2E,0x96,0x19,0x48, + + 0x0C,0x9C,0xED,0x33,0xC3,0x22,0xC3,0x9B,0x7E,0x4D,0xD2,0x9D,0x64,0x93,0xB5,0x26, + + 0x25,0xD2,0x31,0x1B,0xE2,0xDB,0x76,0x0A,0xA0,0x2C,0xE9,0xC9,0x78,0x2D,0x08,0x36, + + 0xE2,0x03,0xFB,0xB2,0x19,0x23,0x54,0x6C,0xCE,0x2E,0xD5,0xC5,0x33,0x7D,0xF4,0x69, + + 0x19,0xA0,0xB5,0xED,0x6A,0xF9,0x65,0x5C,0x46,0xC9,0xDD,0xC8,0x99,0xC0,0x90,0x73, + + 0xA4,0x9D,0xA4,0x99,0x5B,0xD1,0x91,0xDD,0x89,0x31,0xAC,0x25,0x1B,0x91,0x36,0x72, + + 0x69,0x70,0xD2,0xBD,0x39,0x9A,0x65,0xE6,0x94,0x9D,0xC2,0x9D,0x79,0xDA,0x57,0xCB, + + 0x4B,0x76,0xB0,0x74,0x80,0x33,0x03,0xC3,0x80,0x28,0xA0,0x54,0xC0,0x7F,0x33,0xB4, + + 0x43,0xC3,0x1C,0xBE,0xDA,0x42,0x1C,0xE7,0x1C,0x9F,0x0C,0x9B,0x9A,0x02,0x8C,0xE6, + + 0x72,0x99,0xC8,0x2E,0xD7,0xAB,0x2A,0xE7,0xC3,0xFB,0xB7,0xF7,0x23,0x15,0x06,0xD1, + + 0x5E,0x1C,0x9C,0xEA,0x4F,0x77,0x0C,0xDF,0x5B,0x00,0xDC,0xB4,0x0A,0xD1,0x91,0x3E, + + 0x4B,0x9C,0xC4,0xB3,0x49,0xC3,0xC2,0xC6,0x43,0xF9,0xEB,0xC0,0x7D,0xF0,0x0F,0xA2, + + 0xFA,0x96,0x4E,0xA5,0x30,0x3A,0xCC,0xDA,0xDF,0x51,0xCC,0xF3,0x3B,0x96,0x39,0xFA, + + 0xC3,0x79,0x8E,0x2C,0x60,0x58,0xCD,0xA4,0x17,0xA1,0x96,0xAE,0x24,0xD3,0x8E,0xAA, + + 0x49,0x49,0x0B,0xB8,0xD0,0x78,0xDE,0xB5,0x14,0xF4,0x86,0x4D,0x41,0x59,0x39,0xAC, + + 0xC3,0x15,0x07,0x89,0xCE,0x39,0xA2,0x9D,0x10,0x69,0x01,0x86,0x93,0x6B,0xF0,0xEA, + + 0x0A,0x98,0x99,0x59,0x46,0xB6,0x8B,0x88,0x48,0xDA,0xC1,0x91,0x41,0xD0,0x1C,0x37, + + 0xCB,0x9F,0x51,0x3F,0x5C,0x32,0x56,0xF4,0x6C,0xCC,0x72,0x8E,0x8D,0x19,0x10,0x60, + + 0x23,0xB2,0xE8,0xF4,0xBF,0x99,0x26,0x59,0xE6,0xD6,0x6F,0xD0,0xC3,0x0C,0xF6,0x82, + + 0x57,0x22,0xFF,0x71,0x51,0x9D,0xE0,0x1A,0xCC,0xFA,0xEF,0x12,0x46,0x4F,0x18,0xD2, + + 0xDD,0x1B,0x59,0xDA,0x1A,0xE0,0xDF,0x6A,0x8B,0xF0,0x1F,0xE5,0x3B,0xC0,0xC3,0xF9, + + 0x20,0xC0,0x20,0x07,0xBA,0x0D,0xE5,0xF2,0x18,0x6F,0xA6,0x44,0xAB,0x3D,0x9F,0x13, + + 0x88,0x8D,0x2C,0x12,0x55,0xB2,0x5A,0x8F,0x44,0xB1,0xAF,0xC5,0x2D,0x3C,0xA6,0xAD, + + 0x0B,0x80,0x31,0x94,0x9F,0xAA,0xA3,0x50,0xFE,0xAC,0x65,0xD9,0x29,0x43,0x41,0x0C, + + 0xA1,0x82,0x97,0xD2,0xB7,0xAE,0x60,0x58,0xA6,0x3C,0xEF,0x0F,0x3E,0x72,0x77,0x3C, + + 0x64,0xF0,0x9E,0xE3,0xFF,0x97,0xF6,0x22,0x4A,0x84,0x50,0x7C,0xDA,0x49,0xD7,0xF7, + + 0xCD,0x88,0x91,0x20,0xE4,0xB5,0x6E,0x57,0xAC,0x81,0xA2,0x72,0x3F,0xF4,0x1F,0x7B, + + 0x7A,0x57,0xF7,0x25,0xF6,0xDC,0x73,0xCB,0xA5,0xD9,0x24,0x85,0x9E,0x87,0x92,0x2C, + + 0xEF,0x8A,0x53,0xAC,0x6B,0xE4,0x43,0xC3,0x0A,0x68,0x87,0x5F,0x36,0x44,0x25,0x0F, + + 0x08,0x88,0xE6,0xFF,0x70,0x9D,0xCA,0xC2,0xA9,0x87,0x32,0x2A,0x2A,0x45,0x74,0xB2, + + 0x0D,0x04,0xBF,0x1F,0x76,0xF8,0xBB,0xC7,0xB0,0xBC,0xB2,0x3B,0x59,0x69,0x5D,0xFA, + + 0xE2,0x96,0xFD,0x27,0x3C,0x01,0xB3,0x3B,0xB6,0x11,0x23,0x68,0x16,0xA0,0x55,0x3E, + + 0x6C,0x2A,0x9E,0xEE,0xA1,0xA7,0xA9,0x00,0xF7,0x89,0xEC,0x4C,0xD2,0xE8,0x9D,0x34, + + 0x20,0x53,0x51,0xEF,0x18,0x7C,0xD6,0x08,0x6F,0xAC,0x64,0x9D,0x32,0x67,0x7D,0x24, + + 0x65,0x1C,0x55,0x1C,0xBE,0x00,0x6B,0x4A,0x1B,0x62,0x6F,0x0C,0x35,0xBC,0xDC,0x7A, + + 0xF6,0x21,0xF9,0x31,0x1F,0xA3,0xF3,0x6E,0x2A,0x63,0x73,0x5E,0xE2,0x41,0x15,0x63, + + 0xAF,0x3F,0xBE,0x6E,0x3E,0x2E,0xDB,0x09,0xA5,0x2E,0x85,0x53,0xDB,0xAF,0x74,0x7C, + + 0xD9,0x19,0x70,0x78,0xCC,0x78,0x38,0x48,0xA1,0x0D,0x21,0xA4,0x54,0x40,0x88,0xF0, + + 0xDE,0x0A,0xE7,0xE9,0x5D,0xBC,0x96,0xA3,0x49,0x7C,0x0B,0x92,0x02,0xF1,0xA1,0x70, + + 0x20,0x46,0xFE,0x87,0xB2,0x22,0x9F,0xAB,0x21,0x2F,0xF8,0x07,0xE8,0x20,0x2D,0x7B, + + 0x44,0xDE,0x52,0xE9,0x9B,0x6C,0xA9,0xF4,0x27,0x93,0x8A,0xE3,0x86,0xF3,0x61,0x33, + + 0x54,0xB4,0x50,0xA4,0xBB,0x12,0x21,0xD3,0xC7,0x55,0xC7,0x04,0x70,0x24,0xBF,0x22, + + 0x9B,0x06,0x38,0x28,0x8B,0x84,0x7D,0x84,0x9C,0xAE,0xDA,0xCE,0xFB,0x28,0x3B,0x7A, + + 0x12,0x3D,0xB7,0x38,0x43,0x10,0x79,0x09,0x03,0x49,0x80,0xF4,0x8E,0xB2,0xDC,0x6A, + + 0x1F,0x44,0x5C,0xFB,0x0F,0xC6,0x7E,0xCC,0xC1,0x02,0x85,0xD0,0x0A,0xF8,0xDD,0x82, + + 0x89,0x67,0x19,0xBE,0xAE,0x17,0x7E,0xAF,0x68,0xD8,0x76,0xB6,0x2F,0x05,0x34,0x84, + + 0x1B,0x6D,0xD0,0xA6,0xBD,0x2B,0xE1,0xBB,0xED,0x99,0x6A,0x40,0x80,0x78,0xFA,0x87, + + 0xAA,0x4A,0xB0,0xF1,0xDE,0xCE,0x7D,0x8B,0xFC,0x5A,0xA1,0xCD,0x03,0x27,0xFA,0xE8, + + 0x93,0x80,0x18,0xBB,0xCA,0xBB,0xE0,0xBB,0x31,0x7A,0xDE,0x4C,0x85,0x26,0xA6,0xD2, + + 0x23,0x63,0x26,0xD6,0xFE,0xD0,0x22,0x6E,0x3A,0x55,0xAC,0xEF,0x16,0x2F,0xD1,0xEB, + + 0x8E,0x62,0x96,0x4D,0x55,0x22,0x56,0x98,0x86,0xEE,0xA9,0x0D,0x05,0x88,0xB3,0x58, + + 0x0F,0x41,0x81,0x7B,0x45,0x13,0xCC,0xA9,0x4F,0x23,0x89,0x53,0x1F,0x5D,0xD4,0x7E, + + 0x58,0x62,0x2F,0xC3,0x05,0x6B,0x69,0x99,0x8F,0xA5,0xAC,0x11,0x47,0x2C,0xC0,0x18, + + 0x0D,0xFF,0x05,0xB5,0xF9,0xCA,0x77,0x28,0x2B,0x85,0x35,0xD5,0x34,0x76,0xB7,0x21, + + 0xA0,0xFE,0x3F,0x40,0xE6,0x94,0x46,0x03,0xC1,0xEA,0xC0,0xAC,0xAD,0xA9,0xD5,0x92, + + 0x21,0xDD,0x8F,0xD1,0xB3,0xB0,0x77,0xD0,0x2C,0x49,0xAF,0xF0,0x99,0xA8,0xB2,0xB4, + + 0x76,0xFE,0x41,0xEF,0x97,0xB3,0x2B,0x21,0x44,0x55,0x62,0x0E,0xDA,0xFC,0x1E,0xD2, + + 0x06,0xD0,0xFE,0x3A,0xB1,0x41,0xC0,0x91,0xE1,0x04,0x46,0x95,0x62,0xC2,0x2F,0xA1, + + 0xD1,0x45,0x48,0x44,0xB6,0x2B,0x4A,0x83,0x23,0x98,0x16,0xCF,0x57,0x14,0xA2,0x5E, + + 0x5C,0xA9,0xFF,0x3A,0x31,0x54,0x63,0x5F,0x61,0xE7,0x8F,0x4C,0xB1,0x62,0x37,0x67, + + 0x68,0xE2,0xA1,0xD3,0x6F,0x66,0x0F,0x54,0x28,0x26,0xE7,0xB0,0xF1,0x6A,0x14,0x20, + + 0xE3,0x19,0xC9,0x73,0x70,0x25,0x31,0x32,0x90,0xFC,0x52,0x34,0x0B,0x95,0x9C,0x67, + + 0x61,0x78,0x35,0x2D,0x7D,0x86,0x7B,0x98,0x9F,0xF6,0x4E,0xC2,0xA4,0xC8,0xB8,0xB8, + + 0xE4,0xA5,0x7C,0x73,0xB6,0xF5,0x4D,0x26,0x9A,0x04,0x85,0x4F,0x27,0xB7,0x75,0x34, + + 0x7C,0xA8,0x19,0x63,0xF3,0x8A,0x45,0xAF,0x03,0xE0,0x09,0xCE,0xBD,0xB6,0x1C,0x7B, + + 0x1A,0xA3,0x2E,0xCC,0xE6,0x0C,0xEB,0x19,0x07,0x47,0x50,0x90,0xE2,0x97,0x69,0xA9, + + 0xD3,0x4D,0x5A,0x47,0x37,0xD0,0x64,0x2C,0x20,0x42,0xEF,0x81,0x7A,0xB9,0x71,0x0F, + + 0x18,0xA1,0x6F,0x0F,0x19,0xDA,0x40,0x7A,0x9B,0x7F,0xEB,0x6F,0x9A,0xB5,0x15,0x56, + + 0xCF,0x41,0xD9,0x7D,0x70,0x5E,0xDB,0x4B,0x3F,0x40,0x49,0x62,0xB7,0xC2,0xB3,0xA4, + + 0xAF,0x12,0x3B,0xB5,0x54,0x9F,0x33,0xBB,0x0B,0x24,0x40,0x5A,0x8D,0xD1,0x64,0x61, + + 0x0D,0x65,0xF2,0xA5,0xDA,0x50,0xFF,0x4B,0x43,0x41,0xCA,0x85,0x9A,0xD0,0xB2,0x80, + + 0x2D,0x1E,0x17,0xFB,0xDA,0x93,0x95,0x67,0x72,0x51,0x07,0x56,0x94,0xAF,0x53,0xA1, + + 0x33,0xB8,0xAB,0xA1,0xD1,0x73,0x1F,0x4C,0xE1,0x57,0xE3,0x90,0x39,0xB2,0x1A,0x2F, + + 0x2E,0xBF,0xBA,0xFD,0x49,0xB4,0xC0,0x26,0x3E,0x57,0xF4,0xF4,0x05,0x41,0x12,0xCA, + + 0x23,0xBE,0x84,0xD1,0x37,0x25,0x23,0xE3,0x9D,0xA8,0x7B,0xC1,0x9A,0xA4,0xB8,0x61, + + 0x27,0x00,0xFA,0x02,0x78,0xA7,0xB6,0x1A,0xC0,0x49,0x0A,0xE7,0x26,0xB7,0x6A,0xD5, + + 0xC8,0x63,0xA0,0x6E,0xF3,0x45,0x7B,0x4F,0x16,0xF3,0x6E,0xCC,0xC0,0x37,0x10,0x87, + + 0x43,0xD9,0x80,0x4B,0xC4,0x00,0x96,0x55,0x60,0xAC,0x84,0xEA,0x24,0xD5,0x03,0x64, + + 0x29,0xAC,0xD5,0x9C,0x3F,0xA9,0xC1,0xBC,0xE9,0x19,0x18,0xA9,0x85,0xE8,0x66,0xCF, + + 0xF4,0xEF,0x5C,0x8D,0x40,0xD2,0x82,0x09,0xFC,0xDA,0x06,0x4D,0xF4,0x3A,0x81,0x61, + + 0xA9,0x59,0xC4,0xE2,0x8A,0x7B,0xC0,0xB8,0x35,0x1A,0x20,0x18,0x33,0x76,0xC4,0x0E, + + 0xB8,0x1F,0xF8,0x09,0x18,0x31,0x21,0x93,0xA2,0xCB,0x7A,0x49,0xAF,0x1F,0xA2,0x4A, + + 0x2B,0x15,0xFE,0xDE,0x7B,0xE6,0x9F,0xFC,0x2F,0x0E,0x84,0x0F,0x43,0xA0,0xC0,0xA4, + + 0x43,0x2F,0x45,0x31,0x02,0xC5,0x6C,0x18,0x55,0x4C,0x7C,0x27,0x41,0xFF,0x9B,0x79, + + 0xF3,0x1D,0xFA,0x20,0x9B,0xEB,0x1A,0xFD,0xAF,0x1C,0x8D,0x6E,0x10,0x6E,0xB1,0xF1, + + 0x30,0x2D,0xDE,0x37,0x94,0xC2,0xD6,0xC6,0xA5,0x6F,0xE6,0x17,0xBF,0x41,0x1A,0x2C, + + 0xA6,0x20,0x57,0x65,0x52,0xC2,0x46,0xAC,0xAE,0x37,0xAE,0x54,0xAA,0x4C,0xB3,0xF2, + + 0x27,0xC2,0x9F,0xD2,0xFC,0xAF,0x57,0xD2,0x06,0x42,0x91,0xA2,0x3D,0x08,0x3E,0xE0, + + 0xFD,0x5E,0x52,0x68,0xFD,0x62,0x67,0xA8,0xD5,0x6C,0x73,0x92,0x22,0x1E,0x01,0xE2, + + 0xD0,0x3B,0xDA,0xF6,0xA2,0x0B,0x66,0x56,0xAD,0x05,0x63,0x58,0x2E,0xFF,0x9B,0xAC, + + 0xCF,0x32,0xB8,0x5E,0x1B,0x28,0x6E,0x4D,0x37,0x38,0x2C,0x28,0xC4,0xDA,0x47,0xFC, + + 0x79,0x22,0x70,0xB6,0xE6,0xE6,0xCA,0xD2,0xAE,0x69,0x71,0x20,0xF8,0x3A,0x16,0x40, + + 0x75,0x18,0x97,0x6F,0x6B,0x9F,0xAD,0xE0,0x66,0x18,0xEB,0x97,0x3C,0xD6,0x74,0x32, + + 0xE7,0x19,0xDC,0x3A,0xE9,0x0B,0x51,0xDB,0xA8,0x6E,0xA4,0x1A,0xB7,0x29,0x6C,0x2A, + + 0x09,0xA9,0xE7,0x2F,0xBC,0x56,0x0C,0xCB,0xAD,0x89,0xAC,0x4D,0x46,0x48,0x65,0x2E, + + 0x0C,0x1E,0xB5,0xFC,0xF4,0x07,0x6D,0x1C,0xEF,0x65,0x08,0x9E,0xB4,0x45,0xAA,0xD9, + + 0x0E,0xCD,0x95,0xD7,0xB3,0x74,0x93,0xB1,0x1D,0x5F,0x83,0xC0,0x34,0xF1,0x57,0x66, + + 0xB7,0x87,0x39,0x4E,0xE6,0x44,0xCD,0x5B,0xEF,0x33,0x49,0xDE,0x94,0x43,0xDB,0x0F, + + 0xBA,0x86,0xA1,0x21,0x77,0xA0,0x6C,0x4E,0xA4,0x4C,0x36,0xDE,0xFE,0x2D,0xE7,0x4F, + + 0xCA,0x83,0xB8,0x4F,0x98,0x3E,0xC8,0xCE,0x39,0x33,0xE2,0x6D,0xE6,0x43,0xEF,0x5F, + + 0xCB,0x11,0x95,0x63,0x6A,0xCC,0xC0,0xCA,0xA7,0x60,0x20,0x51,0xA0,0xEF,0x27,0x5A, + + 0xD9,0x31,0x08,0x23,0xE1,0xD3,0xE9,0xA6,0xD9,0xBE,0x4F,0xD9,0x1C,0xFD,0x03,0xED, + + 0xFC,0x0E,0xBD,0x65,0x05,0x6C,0xBC,0xA7,0x79,0x7C,0x03,0x87,0x15,0x5E,0x1D,0x7C, + + 0x51,0xF1,0x0E,0x4D,0x0F,0x13,0x53,0x8E,0xE7,0xB2,0x4A,0xD9,0xDA,0x2D,0x7D,0x9B, + + 0xE9,0x2E,0xFB,0xA2,0x5E,0x52,0x77,0x63,0xED,0x7C,0xAF,0xC9,0x9F,0x92,0x42,0xF2, + + 0xA2,0x30,0x76,0xD9,0x5A,0x1F,0x4A,0xCB,0xE9,0x52,0x44,0xFE,0x97,0x97,0x4A,0xAD, + + 0x84,0xD7,0xB4,0xD4,0x5C,0x02,0x7B,0x72,0xAF,0x54,0xF8,0x8B,0x56,0x77,0xF1,0xC4, + + 0x4F,0x4B,0xF4,0x54,0xDD,0x87,0x75,0xA3,0xC6,0xD5,0x0A,0x94,0xB5,0x7C,0x6E,0xAF, + + 0x27,0x27,0x69,0x5A,0x5E,0xDD,0xDD,0xE0,0xCB,0xB3,0xC3,0xAE,0x97,0x7C,0x30,0xE8, + + 0xD7,0x05,0x80,0x4A,0x08,0xBB,0x25,0xC5,0x0D,0x98,0xC8,0x8B,0xB4,0x60,0x04,0x4A, + + 0x8E,0x11,0x0B,0x6F,0x59,0xAF,0x58,0x4B,0x5D,0xD2,0xAF,0xA0,0xBB,0x0D,0xF3,0x71, + + 0x45,0x62,0x22,0x87,0xD7,0x1B,0x6F,0x73,0x87,0x3B,0xA2,0x91,0x90,0x0F,0x2E,0x68, + + 0x67,0x30,0x8F,0x32,0xD6,0x1A,0x19,0x7A,0xD9,0xD8,0x59,0xCD,0x16,0x5D,0x40,0xFA, + + 0xAA,0x38,0xB6,0xAC,0x7A,0x67,0x48,0x94,0xA6,0x21,0x09,0x9C,0x1C,0xA9,0x16,0xFD, + + 0xC6,0x60,0xEC,0x22,0x87,0x46,0x5E,0xE3,0xA7,0x5C,0x69,0xFF,0x94,0xFE,0xF3,0xCC, + + 0x47,0x43,0xD2,0x32,0x3F,0xBA,0x0F,0x6F,0xBE,0x07,0xDA,0x90,0x67,0x55,0x17,0x4A, + + 0x97,0x32,0xE7,0xC1,0xDB,0x4B,0xDF,0xE8,0xC3,0xBB,0xDA,0x5E,0x7F,0xCF,0x5E,0x3D, + + 0x08,0xAB,0x04,0x00,0x04,0x58,0xB8,0xAA,0x2B,0xD4,0x69,0x03,0xF1,0x1F,0x52,0x3F, + + 0x7D,0x54,0x08,0x1D,0xB8,0xA0,0x46,0x3F,0x0D,0x0F,0xC0,0x24,0xBA,0x19,0x51,0x2F, + + 0xEB,0x21,0x93,0x31,0xB3,0x42,0x11,0x32,0xD9,0xF6,0x3D,0xA1,0x80,0x8F,0x59,0x3A, + + 0xAB,0x41,0xE2,0x75,0x9D,0x63,0x78,0xC1,0xC9,0xE2,0xB9,0x6C,0xAE,0x43,0xF8,0xBF, + + 0x20,0xA9,0xB1,0x59,0xFA,0xD4,0x52,0x9A,0xA6,0xDB,0x74,0x95,0xF1,0x24,0xC8,0xAC, + + 0x03,0xD1,0x07,0x49,0x1E,0xD5,0xFB,0x9F,0x65,0x1A,0xE2,0xF3,0xA4,0xEE,0x43,0xBD, + + 0x8A,0x02,0xA1,0x58,0xA1,0xD6,0x58,0x8E,0x7F,0x39,0xEE,0xE1,0x82,0x79,0x03,0x2E, + + 0xC0,0xF5,0xDF,0x48,0xDB,0xF7,0xB7,0x9F,0xB0,0x18,0xDD,0xF2,0x2C,0x27,0x01,0x4D, + + 0xF7,0x6B,0x03,0xC1,0x2B,0x57,0x46,0xDB,0x62,0xC5,0x49,0x38,0x23,0x6E,0x1C,0x7A, + + 0xF6,0xD4,0x32,0xEF,0x54,0x3B,0xAF,0x05,0xFE,0x7C,0x8A,0x5E,0xEA,0x0C,0x65,0x6B, + + 0x7F,0xF7,0x3B,0xFE,0x8D,0x38,0x45,0x89,0x23,0x49,0xC8,0x2D,0x5A,0x22,0xDF,0xE7, + + 0x74,0xAA,0x33,0xEE,0xC4,0x39,0x4F,0xBD,0x99,0x23,0xA3,0xD6,0x75,0x66,0x3C,0x84, + + 0x39,0x33,0x7E,0x50,0xE4,0xFC,0xC6,0x83,0xDF,0x73,0xD1,0xD0,0x92,0x64,0xF2,0xAB, + + 0x10,0x16,0xC4,0x40,0x01,0x9D,0x70,0x92,0x36,0x52,0x84,0x9E,0x5F,0xD0,0xFB,0xBA, + + 0x99,0x1C,0xA2,0x51,0xB9,0xFE,0x0F,0x82,0xDC,0x51,0x73,0x7E,0xA4,0x0A,0xB1,0x3F, + + 0x60,0xC5,0x76,0x44,0x2D,0x9F,0x9E,0x8E,0x5A,0xA0,0x1B,0x65,0x68,0xE2,0x95,0x16, + + 0xE8,0x61,0x68,0x86,0x38,0x5C,0x05,0xB3,0x0C,0x14,0xAA,0x65,0x18,0x3A,0x52,0x02, + + 0x29,0xB5,0x4F,0xD3,0x3F,0x9E,0x62,0x80,0xCD,0x5C,0x8A,0xE8,0x9A,0xB9,0xE3,0x70, + + 0x6A,0x32,0x65,0x8C,0x4D,0xB8,0x33,0x95,0x6C,0x5F,0xEB,0xED,0x19,0xCA,0x1F,0x0F, + + 0x69,0xB2,0x83,0x17,0x05,0xB8,0x63,0x80,0xC3,0x85,0xA3,0x74,0x7E,0xD5,0xC0,0xD3, + + 0x29,0x1E,0x9A,0xCD,0x5E,0x24,0x15,0x06,0xC3,0x1B,0xB7,0x60,0x72,0xB4,0x4C,0xD2, + + 0x21,0x2E,0x9A,0xC1,0x96,0xD5,0x56,0x16,0x21,0x7A,0xE6,0x51,0x84,0x88,0x63,0x98, + + 0xF3,0x58,0xAC,0xCD,0x7E,0x26,0xE4,0x07,0x85,0x19,0xEA,0xD5,0xFA,0x89,0xB7,0xD8, + + 0x0E,0x9E,0x6E,0xC0,0x89,0xF7,0x63,0x12,0x59,0x78,0xCB,0x97,0x0C,0xAA,0xE1,0x79, + + 0xF2,0x08,0xBE,0x2C,0xD5,0xB8,0x69,0x30,0x6C,0x48,0x5E,0xEC,0x38,0x8D,0x1F,0xAE, + + 0xE1,0x28,0x26,0x84,0xBB,0x6C,0x14,0x7A,0xEA,0x1F,0x56,0xA3,0x60,0x62,0x3D,0x7A, + + 0x7A,0xBE,0x6F,0x95,0x38,0x7A,0xC5,0x30,0xEC,0xBA,0xDB,0xAF,0xFC,0x8F,0xB9,0x68, + + 0x41,0x1F,0xD5,0xFF,0x9B,0xF6,0xA8,0x9D,0x68,0x56,0xE7,0xCF,0x5E,0x7F,0xB3,0x28, + + 0x6A,0x2E,0x7A,0xD8,0xA6,0xFC,0xF1,0x0B,0x0F,0x73,0x02,0x12,0x93,0x74,0xCE,0x1E, + + 0x2F,0x1B,0xEE,0xCD,0x5F,0xBD,0xA7,0x1A,0xFC,0x52,0x09,0x40,0x90,0x19,0xFB,0xB9, + + 0x1E,0x15,0x13,0xDC,0x2D,0x9E,0x5F,0x0A,0xB8,0x51,0x40,0x1E,0x7E,0xD3,0x47,0xB7, + + 0xC8,0x3F,0x62,0xCD,0xC6,0xBF,0x2C,0x1B,0x4B,0x50,0xE5,0x7A,0x10,0xB9,0xB6,0xF1, + + 0x68,0x5D,0x18,0xF9,0x1A,0xE6,0xCF,0x87,0x8E,0xCD,0x49,0x01,0xF5,0x9F,0x0E,0x27, + + 0x81,0x2E,0x2C,0xD1,0x95,0x81,0xC7,0x4C,0x6B,0x1E,0xE0,0x97,0x3E,0x99,0x77,0x37, + + 0x6F,0x43,0x22,0x78,0xB6,0x4F,0xCA,0x5C,0xAC,0xCF,0x1D,0xA3,0x84,0x0F,0x8D,0x71, + + 0x6E,0x02,0x05,0x91,0x85,0x5E,0x86,0x02,0xA9,0x6C,0xBD,0x35,0xA5,0xF8,0x61,0x24, + + 0xED,0x6E,0xC1,0x5F,0x55,0x14,0xAA,0x95,0x2E,0x0B,0x14,0x95,0x90,0x6F,0x22,0xF2, + + 0xA6,0x95,0xDB,0x4E,0x34,0x35,0xAD,0x81,0xE4,0x6A,0xA6,0xE5,0x47,0x68,0x31,0x4B, + + 0x90,0x2B,0x22,0x5F,0x73,0x36,0x9B,0x95,0x56,0x09,0xF5,0xE0,0x3D,0x00,0x4F,0x97, + + 0x84,0x84,0x3D,0x5A,0x74,0xD7,0xCB,0x80,0x9C,0x68,0x87,0xE5,0x6A,0x18,0x96,0x68, + + 0xE7,0x29,0xF2,0x78,0x10,0xC6,0xA4,0x54,0x26,0x09,0x4F,0x48,0xB7,0xC2,0x48,0x1A, + + 0x0E,0xE9,0x2F,0xF6,0xAE,0xE4,0x2C,0x13,0xA6,0xF8,0xFB,0x58,0xB6,0x51,0x10,0x5E, + + 0x7D,0xE4,0x83,0x0E,0x11,0xEC,0x4D,0x1F,0xAF,0xDA,0xF2,0x49,0x37,0xA0,0xAB,0x13, + + 0x46,0x2F,0x54,0xBF,0x74,0xCB,0x01,0x8A,0xFD,0x64,0xFA,0x59,0x36,0x33,0x61,0x42, + + 0x8E,0x8E,0x16,0x43,0x35,0xDC,0xB0,0x98,0xC5,0x43,0x5E,0x9E,0x5C,0x1A,0x69,0x4B, + + 0xC7,0x55,0xDA,0x52,0x0C,0xFD,0xFB,0x9D,0xD2,0xA2,0xFA,0x8D,0x89,0x46,0x45,0x8A, + + 0x8D,0x8D,0xF4,0x43,0x73,0xFE,0x54,0x99,0xDB,0x41,0x8D,0xF0,0x3F,0x68,0x60,0x59, + + 0x9F,0x8B,0x68,0x56,0x1A,0x9F,0xD8,0x9C,0xC8,0xA0,0x9C,0x77,0x3E,0x40,0x1A,0xD7, + + 0x4F,0x9F,0xA6,0x40,0x20,0xB4,0x1C,0x40,0xE5,0xB4,0x6D,0x4E,0xCB,0xBD,0x12,0xB6, + + 0x06,0x13,0x1D,0x66,0x94,0x3B,0x62,0x70,0x75,0xD7,0x43,0x16,0x98,0x91,0x24,0xB1, + + 0x4F,0x17,0x25,0xC1,0xA0,0xB4,0x1D,0xA5,0x65,0xDC,0xCB,0x76,0xE6,0xBF,0x13,0xB6, + + 0x85,0x9E,0x7A,0x75,0xCA,0xB3,0x35,0x4C,0x44,0xD2,0x51,0xB5,0xFD,0x9F,0x1C,0x62, + + 0xD9,0x2B,0x24,0xC3,0xDC,0xD4,0xD2,0x00,0x1B,0xDB,0xAE,0xE7,0xF8,0x5B,0x04,0xD5, + + 0xA4,0x9A,0x0D,0xD2,0x09,0x95,0xAA,0x10,0x57,0xDA,0xC6,0x05,0xB5,0x09,0x0D,0x01, + + 0x25,0xD2,0x2B,0xC3,0x0D,0xF6,0xBC,0x01,0xAB,0xD9,0x13,0x16,0x3C,0xE6,0x05,0xB1, + + 0x81,0x97,0x86,0xD6,0xC4,0xD9,0x3E,0x11,0xE1,0xD5,0x40,0xA8,0x1C,0x21,0xA1,0xCC, + + 0xBE,0x33,0x7D,0x9A,0x47,0xBE,0x0E,0xAF,0x68,0x88,0x56,0xB7,0x81,0xFB,0x09,0x6B, + + 0xB1,0x59,0xBE,0xFC,0x8E,0xDC,0x7C,0x5A,0x61,0x99,0x9E,0xBA,0x02,0xF9,0x04,0x8B, + + 0x64,0xA2,0xFC,0x8F,0x3E,0xF2,0x2D,0x43,0x0F,0x97,0x0D,0xBF,0x83,0xDA,0xC7,0x11, + + 0x2D,0x2B,0x97,0x74,0x11,0xB6,0x3A,0x84,0xAF,0xD0,0x18,0x7A,0xCE,0xA4,0x66,0x35, + + 0x8E,0x63,0xA6,0xF1,0x36,0xD0,0x76,0xF7,0x91,0x2C,0x51,0x71,0x15,0x4A,0x4E,0x24, + + 0x07,0x22,0x49,0x9E,0x82,0xB6,0xC5,0xE7,0x8E,0x2D,0x4C,0xA1,0x14,0x18,0x6F,0x35, + + 0x0F,0x41,0xCF,0x0D,0x6A,0x4D,0x8A,0xF6,0x09,0x2E,0xF6,0x1C,0x2C,0x55,0x43,0x20, + + 0x8A,0x20,0xA9,0xC0,0x3B,0x6B,0x91,0xE6,0x76,0x2F,0xC7,0x0E,0x17,0xFB,0x5E,0x32, + + 0x40,0x4C,0x24,0xF7,0x9C,0x61,0x28,0x88,0xE3,0x01,0xB9,0x77,0xD4,0x7C,0x2F,0x11, + + 0x6A,0x75,0xB2,0xE2,0x82,0x9E,0xB8,0x3E,0xCD,0x4C,0xE0,0x13,0xC0,0xCD,0x60,0xF2, + + 0x50,0xA9,0x29,0x3A,0xA3,0xDD,0xE4,0x20,0xD4,0x76,0x38,0x76,0x5C,0x3E,0x8F,0xD7, + + 0x13,0x00,0xD7,0x37,0x4C,0x88,0x67,0xD3,0x6D,0x4E,0x39,0x7F,0x44,0xCF,0x48,0xF7, + + 0x61,0x24,0x48,0x41,0x71,0xD4,0xD2,0x0F,0x63,0x85,0xC0,0x84,0x1A,0x64,0x30,0x74, + + 0x8C,0x07,0xF0,0x04,0x17,0x2A,0x59,0x83,0x89,0xEE,0xB0,0xB6,0xD5,0x90,0x39,0xC3, + + 0x83,0x71,0xB9,0xC7,0x97,0x66,0x7B,0xB1,0x61,0xCE,0x8F,0x72,0xDA,0x66,0xFE,0x50, + + 0x0E,0x0B,0xF1,0x85,0x64,0x28,0x3E,0x79,0xA8,0x82,0x49,0xF1,0x8F,0x7C,0xE1,0xF3, + + 0x63,0xAE,0xA7,0x0C,0x73,0x0C,0x82,0xE8,0x0C,0xAC,0x36,0x62,0x87,0x55,0x54,0x2E, + + 0xD4,0xA2,0x0A,0x00,0xBA,0xA4,0x8A,0x97,0xBE,0xA9,0xC4,0x18,0x59,0xC2,0x0A,0xF8, + + 0x52,0x1A,0x7C,0x09,0xC0,0x40,0x6B,0x20,0x25,0x78,0x78,0x5A,0x58,0xBD,0xBD,0x7B, + + 0xE2,0xAE,0x6F,0x3A,0x2A,0xA6,0xA7,0xCA,0x6A,0x7B,0x0F,0x99,0x5C,0x2B,0x2A,0x56, + + 0xCC,0xF8,0xA2,0x08,0x56,0xA7,0xFD,0x99,0xA6,0x41,0x92,0x6C,0x5E,0x68,0x14,0xCA, + + 0x0F,0x80,0x48,0x3E,0x5A,0x6D,0x68,0x68,0xCE,0x5B,0x9A,0x78,0x5F,0x69,0xA5,0xB8, + + 0x40,0x4E,0x44,0xAF,0x18,0x66,0x0D,0x5A,0x4A,0xE5,0x57,0xE9,0x86,0xCF,0x35,0xC7, + + 0x60,0xF9,0xB3,0x3F,0xD8,0xF0,0x05,0x63,0xCB,0xE4,0xA3,0xF9,0x83,0x79,0xE4,0xBF, + + 0x04,0x67,0x86,0x76,0x77,0x34,0x2C,0x84,0x63,0x60,0x1D,0xB4,0xD3,0xCB,0xAD,0x97, + + 0x80,0x50,0xB6,0x96,0x2D,0x11,0xBE,0x52,0x71,0x9C,0x9C,0x48,0xF0,0x33,0x01,0x95, + + 0x38,0x56,0x81,0xD1,0x57,0xCC,0x28,0x90,0x64,0x4D,0xB5,0x5D,0xF0,0x89,0x45,0x95, + + 0x4C,0x52,0x0D,0x85,0xA1,0x31,0x8D,0x1E,0x16,0x03,0x1E,0xB9,0x0C,0xD2,0x67,0x31, + + 0xBE,0x54,0x04,0xD4,0x37,0x30,0x94,0xFD,0xC6,0xFF,0xD4,0xE4,0x72,0x74,0x33,0xA3, + + 0xC9,0xBD,0xCC,0xE0,0x00,0x3A,0x23,0x01,0xDC,0x07,0xDC,0xF4,0x73,0x75,0xAD,0x4B, + + 0x80,0xC0,0xC3,0xFA,0xF9,0x74,0xA8,0xF9,0xC0,0x49,0xD5,0xE5,0xF2,0x76,0x3F,0x31, + + 0xE7,0x9C,0x97,0xD0,0x14,0x76,0xF2,0x8A,0x3E,0x8B,0xDD,0xF5,0xF3,0x77,0xF3,0x76, + + 0x2C,0x75,0x96,0xCC,0xB8,0x3E,0x2B,0x99,0xEC,0x47,0x02,0x5F,0x54,0xA5,0xAA,0xEA, + + 0xA7,0x58,0x8A,0x1B,0x18,0xAE,0xA6,0x9C,0x80,0x3D,0xFE,0xFC,0x64,0xF2,0x97,0x82, + + 0x2C,0x4E,0x00,0x3B,0x59,0xE1,0xAF,0x5A,0x4B,0x4A,0xC1,0x89,0x13,0x3B,0xB0,0x82, + + 0x0A,0x9E,0x3B,0x62,0xFA,0xC8,0x8E,0x4A,0x65,0x66,0x1B,0x5F,0x7B,0x73,0x6D,0x26, + + 0x95,0x18,0xA6,0xAC,0x70,0x31,0x6D,0xB6,0x6C,0xAC,0xD6,0xEC,0x7A,0x7C,0xB9,0x87, + + 0x96,0xE1,0x30,0x5E,0xE6,0x82,0x0E,0x12,0x90,0xF6,0xDE,0xFC,0x7B,0x7D,0x45,0xE7, + + 0x5C,0x6B,0x6B,0x5F,0xBB,0x34,0xE7,0x18,0x55,0x8E,0xD7,0xED,0xFA,0x7E,0xE4,0xB7, + + 0x7E,0x11,0xF7,0x23,0xDB,0x33,0xA2,0x61,0x80,0x20,0xDF,0xFD,0xFB,0x7F,0x00,0xF3, + + 0xE4,0x00,0x44,0x21,0x15,0xC0,0x8C,0xAB,0x60,0xF4,0x8E,0x03,0x1E,0x81,0x28,0xE3, + + 0xDD,0xA1,0xA9,0xC9,0xF6,0xA5,0xDC,0xC1,0xE6,0x4A,0x86,0x13,0x1C,0xA0,0x89,0x89, + + 0xEF,0x16,0x5B,0x05,0x9C,0xED,0x91,0x2D,0x48,0x4F,0xE9,0x23,0x9E,0xA3,0x77,0x1C, + + 0xD7,0xCD,0xBC,0x65,0x1B,0xC6,0x3D,0xB4,0xE1,0xB4,0xE1,0xD1,0x57,0xEB,0x3E,0xD9, + + 0x16,0x2B,0x98,0xC2,0x4A,0x10,0x57,0x63,0x2D,0xB0,0xD0,0x09,0x82,0x3B,0xDE,0xA3, + + 0xEF,0xD5,0xB8,0x4A,0x01,0x10,0x9B,0x89,0xC5,0x39,0xAD,0xD6,0xA0,0x85,0x02,0xB0, + + 0x62,0x29,0x71,0xE7,0x8E,0xE7,0x32,0xA5,0x54,0xC5,0x56,0x98,0xBD,0x99,0x17,0x61, + + 0x02,0x91,0x20,0x68,0xDC,0xE5,0x41,0x54,0x6B,0xCA,0xA7,0x98,0x97,0x4C,0x43,0xAA, + + 0xDA,0x37,0xDB,0xDE,0x50,0x29,0x36,0xAA,0xA5,0x8C,0x76,0x4C,0x1D,0xF8,0x9E,0x78, + + 0xFA,0xEC,0x80,0xCE,0x41,0x21,0x9E,0x96,0xA6,0xAD,0xC2,0xBC,0x5C,0x91,0x43,0x54, + + 0x2D,0xEF,0xA0,0x45,0x11,0xC9,0x26,0xD8,0x48,0x67,0xCB,0x4D,0x9D,0xE8,0x13,0xE4, + + 0x0E,0x85,0xBB,0x55,0x11,0xA3,0x03,0xC8,0x6E,0xAE,0x81,0xDD,0x5F,0xE3,0x5D,0x14, + + 0xFF,0x50,0x64,0xCE,0xF7,0xF4,0x89,0x4D,0xEF,0x33,0x0F,0xEA,0x35,0x93,0xC1,0xFF, + + 0xDA,0x93,0xAE,0x2D,0x08,0xC1,0xEA,0xBD,0x4D,0x38,0xFA,0x7E,0x79,0xED,0x3A,0x5F, + + 0x03,0xED,0xA1,0x3E,0xD5,0xA5,0x1B,0xA9,0x48,0x3B,0xB5,0x4B,0xD6,0xEF,0x16,0xA8, + + 0x57,0x5B,0x89,0x5B,0x9E,0xFF,0x7F,0x3C,0x4E,0xC1,0xFB,0x7F,0xDF,0xEF,0x15,0x60, + + 0xF9,0x04,0xF4,0xF5,0x2C,0x3A,0xD0,0x51,0xC7,0xB5,0x3D,0xD4,0xD7,0x5D,0x0B,0x70, + + 0xC5,0x40,0x18,0xF6,0x3D,0x61,0xDB,0x41,0xC6,0x8C,0x87,0x56,0x35,0x7A,0x5D,0xB1, + + 0x94,0x4E,0x62,0x79,0x55,0xD4,0x08,0x24,0xC0,0xAF,0x21,0xF6,0xD0,0xE9,0xD6,0xB7, + + 0x6C,0x9C,0x02,0x47,0x34,0x12,0xDE,0xF7,0x46,0xEE,0x08,0xB5,0xF1,0x78,0x0C,0x44, + + 0xDA,0xD5,0x9A,0xC0,0xD7,0x37,0xF0,0x13,0xD9,0xD7,0xF4,0xE6,0x76,0xF4,0xC0,0x90, + + 0xA4,0x41,0x94,0xA8,0x77,0x3F,0x87,0xCD,0x98,0xDB,0xFC,0xF6,0x77,0xF5,0x89,0x43, + + 0x5A,0xB6,0xCA,0x34,0x3A,0x4B,0x25,0x09,0x1D,0x03,0xF5,0xE7,0xF6,0xF6,0x8F,0xCC, + + 0x69,0x3C,0x3A,0x55,0x6A,0x08,0x15,0x75,0x1B,0x96,0xFD,0xF7,0xF7,0xF7,0x5F,0xAD, + + 0x8D,0x89,0x9E,0xEE,0x8C,0xB0,0x51,0xEE,0xCF,0xC5,0x54,0x48,0x6C,0xB7,0x10,0x9C, + + 0x67,0xDD,0x57,0xEC,0xB3,0xDC,0x0C,0x8B,0xE9,0x76,0xF4,0x49,0xDE,0xF4,0x5F,0xD8, + + 0x0F,0x85,0xD6,0xFD,0x32,0xDF,0x54,0xFA,0x4F,0x9B,0xD7,0xEF,0xF2,0xF7,0x77,0x9F, + + 0xE7,0xFF,0xD6,0xED,0x33,0xDE,0x9F,0xC8,0x4E,0x78,0xF5,0xC0,0x5E,0xFD,0x00,0xC2, + + 0xCF,0x33,0x9E,0x4C,0x1F,0xCE,0xDE,0xD5,0x05,0xCB,0xF6,0xEE,0x7E,0xFC,0x89,0x2B, + + 0xF5,0x8D,0x02,0x5E,0xC3,0x9D,0x24,0xFB,0xCC,0x93,0xFE,0xFE,0x7F,0xFD,0x05,0xD1, + + 0x78,0x2A,0xBD,0xCE,0x1D,0xFF,0x73,0x69,0xEF,0xB1,0xF7,0xEF,0xFE,0xFE,0x11,0x41, + + 0xA9,0x9F,0x43,0x9D,0x3C,0x12,0x4E,0x3D,0x13,0xD9,0xFF,0xFF,0xAF,0xB9,0x80,0x00, + + 0x0C,0x4C,0x04,0x00,0x18,0x2E,0x6F,0xD8,0xC1,0xBF,0x43,0xCC,0x56,0xBD,0x51,0xEF, + + 0xE0,0xCE,0x90,0x11,0x15,0x01,0x47,0x32,0x32,0x41,0x45,0x36,0x2A,0x61,0xB6,0x85, + + 0xC0,0xB8,0x35,0x67,0xF1,0x38,0xEA,0xA5,0xC4,0x54,0x6B,0x2D,0x2D,0xAD,0x60,0xEA, + + 0xEA,0x06,0xE1,0x97,0x90,0x5B,0xC6,0x31,0xB6,0x4F,0xC2,0xB7,0xAE,0x63,0x38,0xC2, + + 0x01,0xE2,0x00,0x44,0x62,0xD1,0x22,0x80,0x06,0xCF,0xA8,0xE6,0x57,0x5D,0x31,0xB8, + + 0x09,0xCE,0xEE,0x59,0x97,0x81,0x5A,0x5E,0xB5,0x30,0x50,0xB1,0xF2,0xEF,0x79,0x31, + + 0x9A,0x0F,0xC4,0xC1,0x92,0xB7,0x7A,0x8F,0x7D,0x42,0xA9,0x42,0x71,0x60,0x4D,0xB9, + + 0x89,0xCA,0x48,0x52,0xEC,0x23,0xAE,0x2E,0x7E,0xBB,0x22,0x97,0x72,0xED,0xA9,0xE0, + + 0x08,0xF3,0xD8,0x09,0xBB,0x53,0xD2,0x2C,0x3E,0x53,0x49,0x6C,0x5E,0x28,0xE5,0xE2, + + 0x62,0x99,0xEA,0xE1,0x19,0xF2,0xA5,0xCE,0xCB,0x43,0x9A,0xC1,0x59,0xB2,0x03,0x7B, + + 0x2F,0x1A,0xC3,0xF4,0x98,0xB1,0xD3,0x57,0x2F,0x5A,0xF2,0xD4,0x58,0xF1,0x24,0xE8, + + 0xD1,0x0E,0xEA,0x99,0x9D,0x3D,0xFD,0xC9,0x8D,0x44,0xFB,0xB9,0xDD,0xB8,0x1A,0xA7, + + 0x0C,0x0C,0x19,0x44,0x9D,0x2B,0xF9,0x06,0x9F,0x42,0xAD,0x8E,0x87,0xB1,0x58,0xDC, + + 0x4B,0xA5,0xBA,0x82,0xF4,0x6F,0xF9,0x70,0x97,0x7D,0xBA,0x3C,0x75,0xE6,0x16,0x29, + + 0xEE,0x05,0x73,0xFF,0xB4,0x62,0x3B,0xEF,0x36,0x0F,0x7C,0xE9,0xD6,0x98,0x71,0xB6, + + 0x70,0x90,0xCB,0xE4,0x44,0x20,0x78,0x75,0x13,0x3F,0xDF,0x9F,0xFF,0xD3,0x04,0x80, + + 0x78,0xF8,0x84,0x7C,0xB2,0xCB,0xAB,0x94,0x87,0x42,0xEC,0x83,0x13,0x58,0xDE,0xB0, + + 0x26,0xE9,0x0C,0x1E,0x4A,0x38,0xA6,0x38,0x24,0x58,0xE4,0x93,0x12,0x69,0x4F,0x28, + + 0x82,0x11,0x85,0x79,0x10,0x70,0xAE,0x15,0x07,0x42,0xED,0x82,0x93,0x18,0x02,0x1D, + + 0xDA,0x02,0xD6,0x95,0xCE,0x33,0x1C,0x33,0xE8,0xBE,0xE5,0x92,0x10,0x7C,0xF3,0xC1, + + 0xAF,0x18,0xC4,0xFC,0xCE,0x64,0xBB,0x0E,0xE7,0xF3,0x60,0x9B,0xD1,0xC9,0xAA,0x21, + + 0xE9,0x55,0x49,0x50,0x33,0xA4,0xDD,0xF7,0x14,0x51,0xBC,0xB0,0x4E,0x7A,0x2D,0xDF, + + 0x64,0xE2,0x05,0xC5,0xC2,0xC3,0x73,0xEC,0x66,0xF2,0x11,0x60,0xB1,0x85,0x13,0x43, + + 0xA7,0x9A,0xEB,0xDC,0x37,0x93,0x82,0xE1,0x64,0x50,0x4D,0xEB,0xE3,0x83,0xD9,0x89, + + 0x2E,0x78,0x5D,0x0E,0x3E,0x78,0x4C,0x47,0xCB,0x5C,0xF6,0xE8,0x0C,0xF5,0x6E,0x58, + + 0xE7,0x92,0x74,0x94,0xC4,0xF6,0x26,0xC8,0x24,0x50,0xE6,0x3E,0x7A,0x9F,0x19,0xFB, + + 0x43,0x18,0x54,0x65,0xBE,0xE7,0xEC,0x2B,0x68,0x9B,0xEF,0x2F,0xF9,0x22,0x0D,0x7B, + + 0x2B,0x33,0x04,0xFD,0xA9,0x3D,0x9B,0xBD,0xE1,0x55,0xA7,0xCD,0xB5,0x72,0x38,0x56, + + 0xC1,0xEA,0xC7,0xCB,0x9B,0x59,0xE6,0x5A,0x44,0x19,0xD3,0x2A,0x90,0x30,0x2D,0x2B, + + 0xCF,0xB2,0x23,0x36,0xBE,0x3A,0xB1,0x0A,0x6D,0x5D,0x76,0x5F,0x04,0x7C,0x19,0x52, + + 0xBA,0xB1,0x38,0x49,0xBA,0xAF,0xA1,0x4C,0x6F,0x59,0x27,0x69,0xBA,0xD6,0xF9,0x28, + + 0x43,0x4F,0x27,0x7E,0xBD,0x5F,0x08,0x27,0x12,0x21,0x1F,0xFD,0x8B,0xF2,0x7E,0x1F, + + 0x54,0x2B,0xFF,0x86,0x67,0xA0,0x50,0x62,0x59,0x4B,0xE9,0xA3,0xA9,0x21,0xD7,0x16, + + 0x05,0x59,0x68,0x12,0x63,0xBA,0x67,0x32,0x36,0xCD,0x42,0x3E,0xB0,0xF3,0x04,0x03, + + 0xEF,0xA6,0x7E,0x07,0xE3,0xA4,0x35,0xC1,0xFB,0xC6,0x4B,0xAF,0x21,0x21,0x96,0xEE, + + 0x95,0xE0,0x69,0x69,0x72,0xB3,0xE6,0x33,0xB2,0xCB,0x33,0x57,0xC5,0xE5,0x9F,0xBC, + + 0x00,0xC4,0x0D,0x3C,0x93,0xA3,0x98,0xD1,0xC3,0x83,0x4F,0x3D,0xAF,0x6E,0x13,0xAD, + + 0xF0,0xC7,0xE9,0x49,0x0F,0x31,0xB8,0x72,0x37,0x30,0xCA,0x89,0xD5,0xAD,0xDB,0x31, + + 0x39,0x39,0x09,0xE4,0xB2,0x72,0xD9,0xC0,0xB9,0xB5,0x75,0x96,0x75,0xE4,0xED,0x66, + + 0x66,0x78,0x68,0x4C,0x8B,0xE9,0x39,0xF7,0xC7,0x56,0xD9,0x15,0x60,0x82,0xC2,0xBC, + + 0x8B,0x8F,0x1D,0xF8,0x49,0xA1,0xF2,0x2E,0xDE,0x73,0xBE,0x59,0x3F,0x97,0xBA,0x1E, + + 0x10,0x0B,0xF0,0xF1,0xBE,0xAD,0x3A,0xC6,0xCC,0x8B,0x9A,0x0A,0x3E,0x21,0x8B,0xA9, + + 0x53,0x65,0xA2,0x8D,0x95,0x47,0x13,0xD3,0xCC,0x31,0xCB,0x2D,0x2B,0xEC,0xBB,0xF9, + + 0x21,0xCA,0x50,0xF2,0xBC,0x10,0xBB,0x87,0xFE,0xA9,0xC3,0x18,0xBE,0x73,0x99,0xCE, + + 0x02,0x30,0x94,0x08,0xB8,0xEE,0xC5,0x62,0x48,0xCC,0xCA,0xBE,0x83,0x93,0x68,0x63, + + 0x09,0x8D,0x35,0x5A,0x19,0xAD,0x7A,0x42,0x30,0xDD,0x47,0x23,0xA0,0xEB,0xA3,0x5B, + + 0xCC,0xCC,0xE1,0x1E,0x1B,0x89,0x60,0x54,0xD6,0x8C,0x4A,0x3E,0x7D,0x31,0x3C,0x7F, + + 0x00,0x8D,0xF8,0x2D,0x60,0xED,0x93,0xD9,0x4A,0xC8,0x73,0x7D,0x2A,0xE0,0x80,0xE0, + + 0x65,0x10,0xA8,0xF1,0x57,0xCF,0x80,0xC0,0x05,0x28,0xCD,0x24,0x7D,0x96,0x76,0x93, + + 0x86,0x97,0xEC,0x97,0x0A,0xB5,0x54,0x95,0xC4,0x58,0xDC,0xF7,0xB9,0x7A,0x5D,0x01, + + 0xA1,0x63,0xDD,0x85,0x43,0x19,0x2D,0xA6,0xE0,0xF2,0x8D,0xF7,0xF0,0xFD,0xA5,0xAF, + + 0x06,0x95,0xF2,0x97,0xC6,0xB5,0xB2,0xD3,0xE9,0x93,0xB9,0x55,0x77,0xF9,0x1A,0xF0, + + 0xA3,0x82,0x99,0x42,0x76,0x9E,0x49,0xA4,0xC4,0x9A,0x0B,0x62,0x76,0x65,0x35,0xC6, + + 0xAA,0xF6,0x53,0x46,0x16,0x85,0xDB,0xFB,0xB7,0x85,0xEF,0xC9,0x6F,0xB7,0x5A,0x9D, + + 0x57,0x4A,0x75,0x99,0x4F,0x6A,0x01,0xC7,0x32,0xC6,0x42,0xEF,0xF0,0xF6,0xC6,0x76, + + 0x72,0x89,0xEF,0x37,0xCB,0xB1,0x5A,0xFE,0x60,0x70,0xFD,0xCF,0x72,0xF0,0x6E,0x1D, + + 0x4F,0x38,0x9C,0x71,0xCB,0xFA,0x32,0x68,0xC0,0xD5,0x50,0xCC,0x1D,0xE8,0x74,0x9B, + + 0x8E,0xFC,0xF5,0x9E,0x42,0xB9,0xBE,0xBB,0xEE,0xBC,0x1A,0xDC,0x3E,0x86,0x5F,0x09, + + 0xAD,0xC2,0x27,0x05,0xC7,0xBE,0x2D,0xFB,0xCD,0xBA,0xAF,0x45,0x7E,0xD2,0x15,0x79, + + 0x92,0x9F,0x74,0x1D,0xBB,0xFB,0x07,0xCB,0xF4,0xD2,0xC7,0xDD,0xBC,0xEB,0x1B,0x39, + + 0xF6,0x48,0xEE,0x6B,0xDF,0xB3,0xDE,0x4C,0xEB,0xFB,0x1E,0x4D,0x78,0x9C,0x86,0x50, + + 0x0D,0x4B,0xD6,0x0E,0xE0,0xB2,0x6D,0x88,0x90,0x9F,0x6E,0xB8,0xD5,0x06,0x44,0x3A, + + 0x32,0xDE,0x77,0x4D,0xBB,0xD4,0xA8,0xEE,0xE8,0xDE,0x8A,0x6B,0xBE,0xD4,0x10,0xA8, + + 0x45,0x37,0x8F,0x9B,0xCE,0x32,0x7F,0xC3,0x13,0xCF,0xF9,0x7B,0xFF,0x6E,0xDF,0x15, + + 0x87,0x07,0x80,0x04,0x10,0x20,0x10,0x20,0x40,0x40,0x90,0x24,0x50,0x60,0xE0,0xB2, + + 0xA5,0x86,0x88,0x14,0x11,0x21,0x18,0x30,0x41,0x41,0x98,0x34,0x51,0x61,0xA9,0xA3, + + 0x5F,0x5D,0x81,0x05,0x90,0x22,0x11,0x21,0xC0,0x42,0x91,0x25,0xD0,0x62,0xE9,0x11, + + 0x04,0x04,0x89,0x15,0x91,0x23,0x19,0x31,0xC1,0x43,0x99,0x35,0xD1,0x63,0x40,0x40, + + 0x02,0x04,0xC0,0x44,0x12,0x24,0x50,0x60,0x42,0x44,0xD0,0x64,0x52,0x64,0x48,0x50, + + 0x03,0x05,0xC8,0x54,0x13,0x25,0x58,0x70,0x43,0x45,0xD8,0x74,0x53,0x65,0x41,0x41, + + 0x82,0x06,0xC1,0x45,0x92,0x26,0x51,0x61,0xC2,0x46,0xD1,0x65,0xD2,0x66,0x49,0x51, + + 0x83,0x07,0xC9,0x55,0x93,0x27,0x59,0x71,0xC3,0x47,0xD9,0x75,0xD3,0x67,0x12,0x08, + + 0xED,0x49,0x82,0x0C,0x18,0x28,0x12,0x28,0x48,0x48,0x92,0x2C,0x58,0x68,0xCA,0x08, + + 0x40,0x45,0x8A,0x1C,0x19,0x29,0x1A,0x38,0x49,0x49,0x9A,0x3C,0x59,0x69,0xEB,0xBA, + + 0x0D,0x4D,0x83,0x0D,0x98,0x2A,0x13,0x29,0xC8,0x4A,0x93,0x2D,0xD8,0x6A,0x7F,0xE4, + + 0xA8,0x49,0x8B,0x1D,0x99,0x2B,0x1B,0x39,0xC9,0x4B,0x9B,0x3D,0xD9,0x6B,0x42,0x48, + + 0x0A,0x0C,0xC2,0x4C,0x1A,0x2C,0x52,0x68,0x4A,0x4C,0xD2,0x6C,0x5A,0x6C,0x4A,0x58, + + 0x0B,0x0D,0xCA,0x5C,0x1B,0x2D,0x5A,0x78,0x4B,0x4D,0xDA,0x7C,0x5B,0x6D,0x43,0x49, + + 0x8A,0x0E,0xC3,0x4D,0x9A,0x2E,0x53,0x69,0xCA,0x4E,0xD3,0x6D,0xDA,0x6E,0x4B,0x59, + + 0x8B,0x0F,0xCB,0x5D,0x9B,0x2F,0x5B,0x79,0xCB,0x4F,0xDB,0x7D,0xDB,0x6F,0x74,0x46, + + 0x8A,0xEF,0x84,0x84,0x30,0x30,0x14,0xA0,0x60,0x50,0x94,0xA4,0x70,0x70,0x8E,0x14, + + 0x21,0x80,0x8C,0x94,0x31,0x31,0x1C,0xB0,0x61,0x51,0x9C,0xB4,0x71,0x71,0x95,0xC7, + + 0x0A,0xE9,0x85,0x85,0xB0,0x32,0x15,0xA1,0xE0,0x52,0x95,0xA5,0xF0,0x72,0xA5,0x33, + + 0x26,0x34,0x8D,0x95,0xB1,0x33,0x1D,0xB1,0xE1,0x53,0x9D,0xB5,0xF1,0x73,0x44,0xC0, + + 0x22,0x14,0xC4,0xC4,0x32,0x34,0x54,0xE0,0x62,0x54,0xD4,0xE4,0x72,0x74,0x4C,0xD0, + + 0x23,0x15,0xCC,0xD4,0x33,0x35,0x5C,0xF0,0x63,0x55,0xDC,0xF4,0x73,0x75,0x45,0xC1, + + 0xA2,0x16,0xC5,0xC5,0xB2,0x36,0x55,0xE1,0xE2,0x56,0xD5,0xE5,0xF2,0x76,0x4D,0xD1, + + 0xA3,0x17,0xCD,0xD5,0xB3,0x37,0x5D,0xF1,0xE3,0x57,0xDD,0xF5,0xF3,0x77,0x96,0xCE, + + 0x82,0xE3,0x86,0x8C,0x38,0x38,0x16,0xA8,0x68,0x58,0x96,0xAC,0x78,0x78,0xA6,0x3A, + + 0xAE,0x3E,0x8E,0x9C,0x39,0x39,0x1E,0xB8,0x69,0x59,0x9E,0xBC,0x79,0x79,0x05,0x0D, + + 0xA8,0x8B,0x87,0x8D,0xB8,0x3A,0x17,0xA9,0xE8,0x5A,0x97,0xAD,0xF8,0x7A,0x9F,0xBD, + + 0xA9,0x1B,0x8F,0x9D,0xB9,0x3B,0x1F,0xB9,0xE9,0x5B,0x9F,0xBD,0xF9,0x7B,0x46,0xC8, + + 0x2A,0x1C,0xC6,0xCC,0x3A,0x3C,0x56,0xE8,0x6A,0x5C,0xD6,0xEC,0x7A,0x7C,0x4E,0xD8, + + 0x2B,0x1D,0xCE,0xDC,0x3B,0x3D,0x5E,0xF8,0x6B,0x5D,0xDE,0xFC,0x7B,0x7D,0x47,0xC9, + + 0xAA,0x1E,0xC7,0xCD,0xBA,0x3E,0x57,0xE9,0xEA,0x5E,0xD7,0xED,0xFA,0x7E,0x4F,0xD9, + + 0xAB,0x1F,0xCF,0xDD,0xBB,0x3F,0x5F,0xF9,0xEB,0x5F,0xDF,0xFD,0xFB,0x7F,0x20,0x3A, + + 0x81,0x87,0xA0,0x06,0x14,0xA0,0x30,0x22,0x44,0xC0,0xB0,0x26,0x54,0xE0,0x55,0x96, + + 0x45,0xAB,0xA8,0x16,0x15,0xA1,0x38,0x32,0x45,0xC1,0xB8,0x36,0x55,0xE1,0xC9,0xA0, + + 0x82,0xE2,0xA1,0x07,0x94,0xA2,0x31,0x23,0xC4,0xC2,0xB1,0x27,0xD4,0xE2,0xB9,0x55, + + 0x2F,0x78,0xA9,0x17,0x95,0xA3,0x39,0x33,0xC5,0xC3,0xB9,0x37,0xD5,0xE3,0x60,0x42, + + 0x06,0x84,0xE0,0x46,0x16,0xA4,0x70,0x62,0x46,0xC4,0xF0,0x66,0x56,0xE4,0x68,0x52, + + 0x07,0x85,0xE8,0x56,0x17,0xA5,0x78,0x72,0x47,0xC5,0xF8,0x76,0x57,0xE5,0x61,0x43, + + 0x86,0x86,0xE1,0x47,0x96,0xA6,0x71,0x63,0xC6,0xC6,0xF1,0x67,0xD6,0xE6,0x69,0x53, + + 0x87,0x87,0xE9,0x57,0x97,0xA7,0x79,0x73,0xC7,0xC7,0xF9,0x77,0xD7,0xE7,0x24,0x8E, + + 0x0C,0x19,0xA2,0x0E,0x1C,0xA8,0x32,0x2A,0x4C,0xC8,0xB2,0x2E,0x5C,0xE8,0x9A,0xA8, + + 0x23,0xC5,0xAA,0x1E,0x1D,0xA9,0x3A,0x3A,0x4D,0xC9,0xBA,0x3E,0x5D,0xE9,0xFC,0x03, + + 0x0B,0x8D,0xA3,0x0F,0x9C,0xAA,0x33,0x2B,0xCC,0xCA,0xB3,0x2F,0xDC,0xEA,0x5B,0xC4, + + 0x62,0xC7,0xAB,0x1F,0x9D,0xAB,0x3B,0x3B,0xCD,0xCB,0xBB,0x3F,0xDD,0xEB,0x62,0x4A, + + 0x0E,0x8C,0xE2,0x4E,0x1E,0xAC,0x72,0x6A,0x4E,0xCC,0xF2,0x6E,0x5E,0xEC,0x6A,0x5A, + + 0x0F,0x8D,0xEA,0x5E,0x1F,0xAD,0x7A,0x7A,0x4F,0xCD,0xFA,0x7E,0x5F,0xED,0x63,0x4B, + + 0x8E,0x8E,0xE3,0x4F,0x9E,0xAE,0x73,0x6B,0xCE,0xCE,0xF3,0x6F,0xDE,0xEE,0x6B,0x5B, + + 0x8F,0x8F,0xEB,0x5F,0x9F,0xAF,0x7B,0x7B,0xCF,0xCF,0xFB,0x7F,0xDF,0xEF,0x24,0x82, + + 0x24,0x90,0xA4,0x86,0x34,0xB0,0x34,0xA2,0x64,0xD0,0xB4,0xA6,0x74,0xF0,0x2C,0x92, + + 0x25,0x91,0xAC,0x96,0x35,0xB1,0x3C,0xB2,0x65,0xD1,0xBC,0xB6,0x75,0xF1,0x25,0x83, + + 0xA4,0x92,0xA5,0x87,0xB4,0xB2,0x35,0xA3,0xE4,0xD2,0xB5,0xA7,0xF4,0xF2,0x2D,0x93, + + 0xA5,0x93,0xAD,0x97,0xB5,0xB3,0x3D,0xB3,0xE5,0xD3,0xBD,0xB7,0xF5,0xF3,0x64,0xC2, + + 0x26,0x94,0xE4,0xC6,0x36,0xB4,0x74,0xE2,0x66,0xD4,0xF4,0xE6,0x76,0xF4,0x6C,0xD2, + + 0x27,0x95,0xEC,0xD6,0x37,0xB5,0x7C,0xF2,0x67,0xD5,0xFC,0xF6,0x77,0xF5,0x65,0xC3, + + 0xA6,0x96,0xE5,0xC7,0xB6,0xB6,0x75,0xE3,0xE6,0xD6,0xF5,0xE7,0xF6,0xF6,0x6D,0xD3, + + 0xA7,0x97,0xED,0xD7,0xB7,0xB7,0x7D,0xF3,0xE7,0xD7,0xFD,0xF7,0xF7,0xF7,0x26,0x8A, + + 0x2C,0x98,0xA6,0x8E,0x3C,0xB8,0x36,0xAA,0x6C,0xD8,0xB6,0xAE,0x7C,0xF8,0x2E,0x9A, + + 0x2D,0x99,0xAE,0x9E,0x3D,0xB9,0x3E,0xBA,0x6D,0xD9,0xBE,0xBE,0x7D,0xF9,0x27,0x8B, + + 0xAC,0x9A,0xA7,0x8F,0xBC,0xBA,0x37,0xAB,0xEC,0xDA,0xB7,0xAF,0xFC,0xFA,0x2F,0x9B, + + 0xAD,0x9B,0xAF,0x9F,0xBD,0xBB,0x3F,0xBB,0xED,0xDB,0xBF,0xBF,0xFD,0xFB,0x66,0xCA, + + 0x2E,0x9C,0xE6,0xCE,0x3E,0xBC,0x76,0xEA,0x6E,0xDC,0xF6,0xEE,0x7E,0xFC,0x6E,0xDA, + + 0x2F,0x9D,0xEE,0xDE,0x3F,0xBD,0x7E,0xFA,0x6F,0xDD,0xFE,0xFE,0x7F,0xFD,0x67,0xCB, + + 0xAE,0x9E,0xE7,0xCF,0xBE,0xBE,0x77,0xEB,0xEE,0xDE,0xF7,0xEF,0xFE,0xFE,0x6F,0xDB, + + 0xAF,0x9F,0xEF,0xDF,0xBF,0xBF,0x7F,0xFB,0xEF,0xDF,0xFF,0xFF,0x8F,0x95,0x80,0x00, + + 0x0C,0x4C,0xF9,0xE6,0x92,0x08,0x0A,0x28,0x63,0x78,0x15,0xE2,0xBA,0x2C,0x51,0xEF, + + 0xE0,0xCE,0xF0,0x76,0x50,0x31,0x30,0xCF,0xB6,0x03,0x4D,0xB0,0x55,0x90,0xB6,0x85, + + 0x80,0xD1,0x25,0x67,0xD3,0x5D,0xCC,0x23,0x3B,0xD9,0x61,0x63,0x7A,0x99,0x60,0xEA, + + 0x03,0x27,0xF1,0x97,0x92,0xC5,0x1D,0xD8,0xBA,0x47,0x46,0x34,0xD7,0x23,0xD0,0x1B, + + 0xFF,0xB8,0xC0,0x44,0x12,0x24,0x50,0x60,0x42,0x44,0xD0,0x64,0x52,0x64,0x30,0xD0, + + 0xE3,0xFA,0xC8,0x54,0x13,0x25,0x58,0x70,0x43,0x45,0xD8,0x74,0x53,0x65,0x7E,0x91, + + 0x8E,0xAD,0xC1,0x45,0x92,0x26,0x51,0x61,0xC2,0x46,0xD1,0x65,0xD2,0x66,0x29,0x15, + + 0x03,0x0A,0xC9,0x55,0x93,0x27,0x59,0x71,0xC3,0x47,0xD9,0x75,0xD3,0x67,0x0A,0xF5, + + 0x89,0xD3,0xD8,0xE7,0xBB,0x33,0x49,0x28,0x37,0x48,0x05,0x13,0x48,0x2A,0xE5,0xE2, + + 0xDE,0x56,0xCA,0x6A,0x3A,0x56,0xDD,0xD0,0x43,0x94,0x5A,0x38,0x25,0x92,0x8C,0x7B, + + 0x2B,0x6F,0xC3,0xF9,0x90,0x31,0xC8,0x6B,0xCE,0x6A,0x13,0x10,0x24,0x5A,0x55,0x3B, + + 0x5C,0x10,0x0B,0x1D,0xAF,0x45,0xE1,0x31,0x34,0x84,0x9A,0xFB,0x7B,0x27,0xBB,0x6F, + + 0xAB,0x86,0xC2,0x4C,0x1A,0x2C,0x52,0x68,0x4A,0x4C,0xD2,0x6C,0x5A,0x6C,0x32,0xA6, + + 0xB6,0xF5,0xCA,0x5C,0x1B,0x2D,0x5A,0x78,0x4B,0x4D,0xDA,0x7C,0x5B,0x6D,0xEC,0xA6, + + 0x3F,0xA6,0xC3,0x4D,0x9A,0x2E,0x53,0x69,0xCA,0x4E,0xD3,0x6D,0xDA,0x6E,0xB4,0xDB, + + 0x8E,0x0B,0xCB,0x5D,0x9B,0x2F,0x5B,0x79,0xCB,0x4F,0xDB,0x7D,0xDB,0x6F,0x04,0x80, + + 0x78,0xF8,0x05,0x77,0xD0,0x7C,0x3C,0x24,0x68,0xA2,0x79,0xCF,0xF5,0x77,0xDE,0xB0, + + 0x26,0xE9,0x27,0x7C,0x75,0x5D,0xE6,0x38,0x94,0x92,0xA3,0xEA,0x8C,0xF3,0x4F,0x28, + + 0x82,0x11,0xE4,0xFE,0x65,0xAF,0x4C,0x25,0x1D,0x93,0x7D,0x06,0xD4,0xAE,0x02,0x1D, + + 0xDA,0x02,0x59,0xCB,0x9F,0xEF,0xE7,0x59,0xE7,0x9E,0x85,0xBC,0xB1,0x78,0x44,0xC0, + + 0x22,0x14,0xC4,0xC4,0x32,0x34,0x54,0xE0,0x62,0x54,0xD4,0xE4,0x72,0x74,0x4C,0xD0, + + 0x23,0x15,0xCC,0xD4,0x33,0x35,0x5C,0xF0,0x63,0x55,0xDC,0xF4,0x73,0x75,0x45,0xC1, + + 0xA2,0x16,0xC5,0xC5,0xB2,0x36,0x55,0xE1,0xE2,0x56,0xD5,0xE5,0xF2,0x76,0x4D,0xD1, + + 0xA3,0x17,0xCD,0xD5,0xB3,0x37,0x5D,0xF1,0xE3,0x57,0xDD,0xF5,0xF3,0x77,0xD9,0x89, + + 0x2E,0x38,0xEF,0x67,0xD3,0x8C,0x57,0xFC,0x49,0x48,0x01,0x2E,0x79,0x1B,0x36,0x70, + + 0x27,0xD6,0x0E,0x5A,0xAB,0x3A,0xE3,0x5A,0xE9,0x86,0x16,0x79,0xD8,0xF3,0xA9,0x0B, + + 0xAB,0xFC,0x24,0x97,0xD3,0x4E,0x77,0xE8,0x05,0xD1,0xAD,0x4F,0xDC,0x7C,0x55,0x6B, + + 0x0A,0x1D,0x6C,0x66,0x50,0x9C,0x25,0x51,0xE7,0x94,0x70,0x5F,0x7B,0x33,0x46,0xC8, + + 0x2A,0x1C,0xC6,0xCC,0x3A,0x3C,0x56,0xE8,0x6A,0x5C,0xD6,0xEC,0x7A,0x7C,0x4E,0xD8, + + 0x2B,0x1D,0xCE,0xDC,0x3B,0x3D,0x5E,0xF8,0x6B,0x5D,0xDE,0xFC,0x7B,0x7D,0x47,0xC9, + + 0xAA,0x1E,0xC7,0xCD,0xBA,0x3E,0x57,0xE9,0xEA,0x5E,0xD7,0xED,0xFA,0x7E,0x4F,0xD9, + + 0xAB,0x1F,0xCF,0xDD,0xBB,0x3F,0x5F,0xF9,0xEB,0x5F,0xDF,0xFD,0xFB,0x7F,0x20,0xFF, + + 0x04,0x0D,0xE0,0x39,0x1C,0xCC,0x50,0xE2,0x8A,0x4B,0xC0,0xF9,0xE3,0xAC,0x76,0x0A, + + 0xDC,0x2A,0x0F,0x81,0x7E,0x07,0xB5,0xC2,0x4D,0xCE,0x9E,0x3A,0xD9,0x3A,0xD9,0x0B, + + 0x5B,0x1D,0x89,0xC5,0x40,0x64,0xCB,0xC1,0x46,0xCA,0xC7,0x34,0xC8,0xA6,0x2E,0x31, + + 0xEE,0x73,0x29,0xE6,0x57,0xE3,0xE4,0x31,0xBE,0xC3,0x99,0xCA,0x95,0xAD,0xDB,0xA0, + + 0xAA,0x79,0xE0,0x46,0x16,0xA4,0x70,0x62,0x46,0xC4,0xF0,0x66,0x56,0xE4,0x22,0xEF, + + 0x85,0xCD,0xE8,0x56,0x17,0xA5,0x78,0x72,0x47,0xC5,0xF8,0x76,0x57,0xE5,0x19,0x38, + + 0x88,0xE4,0xE1,0x47,0x96,0xA6,0x71,0x63,0xC6,0xC6,0xF1,0x67,0xD6,0xE6,0xF4,0xB1, + + 0xA3,0x7A,0xE9,0x57,0x97,0xA7,0x79,0x73,0xC7,0xC7,0xF9,0x77,0xD7,0xE7,0x21,0xFB, + + 0x94,0x88,0x98,0xFD,0xCA,0x07,0x69,0x68,0x33,0xC8,0xC2,0x08,0xBE,0x8B,0x2A,0x46, + + 0x09,0xF1,0xD4,0x84,0xF6,0x6C,0x67,0xC3,0xCD,0x52,0xCA,0xE1,0xBE,0xAB,0x7D,0x08, + + 0x73,0xCA,0x44,0xFE,0x46,0xBA,0xE8,0x6B,0xCA,0xEA,0x03,0x98,0xF2,0xA6,0x69,0x3F, + + 0xA9,0x8B,0xD5,0x28,0xF6,0x0E,0x3B,0xC6,0xCD,0x10,0x3B,0x87,0x0A,0x56,0xBD,0x42, + + 0x20,0xCA,0xE2,0x4E,0x1E,0xAC,0x72,0x6A,0x4E,0xCC,0xF2,0x6E,0x5E,0xEC,0x1A,0x85, + + 0xE0,0xCC,0xEA,0x5E,0x1F,0xAD,0x7A,0x7A,0x4F,0xCD,0xFA,0x7E,0x5F,0xED,0x91,0x8D, + + 0x2C,0xC2,0xE3,0x4F,0x9E,0xAE,0x73,0x6B,0xCE,0xCE,0xF3,0x6F,0xDE,0xEE,0x13,0x7C, + + 0xAB,0x8F,0xEB,0x5F,0x9F,0xAF,0x7B,0x7B,0xCF,0xCF,0xFB,0x7F,0xDF,0xEF,0x28,0x85, + + 0x85,0x18,0xAA,0x34,0x17,0x70,0x54,0x62,0xAA,0x5B,0xAF,0xD4,0xD7,0xF6,0xBB,0x62, + + 0x2D,0x9E,0x8C,0x86,0x81,0x66,0xAF,0xC0,0xC6,0xD7,0xC4,0x34,0x70,0x9B,0x27,0x61, + + 0x26,0xDA,0xFF,0xDD,0x03,0xCD,0xCB,0x41,0x66,0x9A,0x3D,0xCE,0x57,0x97,0x4D,0xD7, + + 0xD1,0x9C,0x18,0x28,0x68,0xCE,0x35,0xFF,0x46,0xD5,0x85,0x67,0x02,0xFC,0x64,0xC2, + + 0x26,0x94,0xE4,0xC6,0x36,0xB4,0x74,0xE2,0x66,0xD4,0xF4,0xE6,0x76,0xF4,0x6C,0xD2, + + 0x27,0x95,0xEC,0xD6,0x37,0xB5,0x7C,0xF2,0x67,0xD5,0xFC,0xF6,0x77,0xF5,0x65,0xC3, + + 0xA6,0x96,0xE5,0xC7,0xB6,0xB6,0x75,0xE3,0xE6,0xD6,0xF5,0xE7,0xF6,0xF6,0x6D,0xD3, + + 0xA7,0x97,0xED,0xD7,0xB7,0xB7,0x7D,0xF3,0xE7,0xD7,0xFD,0xF7,0xF7,0xF7,0x46,0x4A, + + 0xE2,0x13,0x09,0xD0,0x89,0x64,0x3A,0x2D,0xCD,0x50,0x8E,0x7E,0x87,0xF7,0xA7,0x6A, + + 0x25,0x96,0x3E,0x80,0x2D,0x4D,0x98,0x4A,0x65,0xD6,0x3E,0xBF,0xFF,0xF1,0x59,0x69, + + 0x2E,0x92,0xCF,0x4D,0x3A,0x4F,0xB7,0x49,0x6E,0xF2,0x18,0xD1,0x21,0xB8,0x9B,0xE9, + + 0x0E,0x56,0xAA,0x85,0xA9,0x0F,0x5F,0x7B,0x23,0x50,0x6B,0x4F,0xF5,0xF4,0x66,0xCA, + + 0x2E,0x9C,0xE6,0xCE,0x3E,0xBC,0x76,0xEA,0x6E,0xDC,0xF6,0xEE,0x7E,0xFC,0x6E,0xDA, + + 0x2F,0x9D,0xEE,0xDE,0x3F,0xBD,0x7E,0xFA,0x6F,0xDD,0xFE,0xFE,0x7F,0xFD,0x67,0xCB, + + 0xAE,0x9E,0xE7,0xCF,0xBE,0xBE,0x77,0xEB,0xEE,0xDE,0xF7,0xEF,0xFE,0xFE,0x6F,0xDB, + + 0xAF,0x9F,0xEF,0xDF,0xBF,0xBF,0x7F,0xFB,0xEF,0xDF,0xFF,0xFF,0x46,0x75,0x80,0x00, + + 0x0C,0x4C,0x04,0x44,0xCA,0x26,0x11,0xD4,0x40,0xBD,0xA2,0x62,0xC2,0xDD,0x51,0xEF, + + 0xE0,0xCE,0xE8,0x54,0x0C,0xAA,0x41,0xB1,0xA0,0x80,0x1A,0x73,0x7F,0xBD,0xB6,0x85, + + 0x8C,0x80,0x09,0x39,0x71,0x2D,0xBD,0xA4,0xE1,0xC0,0x3A,0x5F,0x05,0x79,0x60,0xEA, + + 0xEA,0x06,0x0D,0xF7,0x13,0x2B,0xE3,0xB9,0xA2,0x41,0x4D,0x6B,0x42,0x5C,0xE8,0xE2, + + 0x85,0x23,0x00,0x44,0x62,0x68,0x90,0x65,0x52,0x05,0xD0,0x64,0x52,0x64,0x4D,0x4A, + + 0x17,0xB1,0x60,0xF7,0x6C,0xA5,0xB0,0xC3,0xC6,0x02,0xD8,0x74,0x53,0x65,0xD1,0x5F, + + 0x92,0xF2,0xB1,0x83,0x38,0x67,0xF2,0x69,0x1E,0x76,0xD1,0x65,0xD2,0x66,0xCC,0x97, + + 0x69,0x4B,0x09,0x55,0xE3,0x6B,0x99,0x75,0x30,0x0B,0xD9,0x75,0xD3,0x67,0xA9,0xE0, + + 0x08,0xF3,0x0B,0x7E,0xBB,0x2E,0xC0,0xDE,0x7B,0x2A,0xEC,0x37,0x8C,0xFC,0xE5,0xE2, + + 0x62,0x99,0xF2,0x9E,0x18,0x4B,0x40,0xB8,0x2F,0x86,0xFB,0x9C,0x8F,0xD6,0x03,0x7B, + + 0x2F,0x1A,0xCB,0x9F,0xFB,0xD5,0x29,0x1D,0x2F,0x58,0xCD,0x22,0xDC,0x24,0x24,0xE8, + + 0xD1,0x0E,0xB3,0xCD,0x76,0x24,0x21,0xD1,0x8F,0x84,0xA5,0x8E,0x90,0xEC,0xB2,0x0E, + + 0xA0,0xF7,0xB2,0x8A,0xB0,0x6D,0x26,0x95,0x6A,0x0E,0xD2,0x6C,0x5A,0x6C,0x70,0xA7, + + 0x0D,0x0D,0xCA,0x5C,0x1B,0x2D,0x9A,0x78,0x3B,0xB8,0xDA,0x7C,0x5B,0x6D,0xC7,0xCD, + + 0x8A,0x9F,0x53,0x4D,0x9A,0x2E,0x53,0x51,0x2B,0xB1,0xD3,0x6D,0xDA,0x6E,0x58,0x66, + + 0x9B,0x4D,0xCB,0x5D,0x9B,0x2F,0x5A,0xFD,0xCB,0xDE,0xDB,0x7D,0xDB,0x6F,0x04,0x80, + + 0x78,0xF8,0x44,0x80,0x78,0xBD,0xC9,0x80,0x66,0x70,0xE2,0xE2,0xD6,0x3C,0xDE,0xB0, + + 0x26,0xE9,0x77,0x10,0x35,0xF9,0x26,0x52,0x1A,0x55,0x9C,0x8C,0x90,0x8E,0x4F,0x28, + + 0x82,0x11,0x78,0x7E,0x43,0xCD,0xE3,0x23,0xE1,0x2A,0xE1,0x58,0xCE,0x30,0x02,0x1D, + + 0x92,0xD1,0xB7,0x6A,0x46,0x71,0x66,0x4E,0x96,0x5F,0x5D,0xB5,0x81,0x86,0x7F,0x86, + + 0x80,0x5A,0xC4,0xC4,0x32,0x34,0x24,0xC6,0x80,0x12,0xD4,0xE4,0x72,0x74,0xEB,0xD9, + + 0xF3,0x45,0xCC,0xD4,0x33,0x35,0x5C,0x86,0x47,0x1B,0xDC,0xF4,0x73,0x75,0x31,0xE5, + + 0x76,0x06,0xC5,0xC5,0xB2,0x36,0x55,0xA7,0x40,0x57,0xD5,0xE5,0xF2,0x76,0x6A,0xDC, + + 0x24,0xB0,0xCD,0xD5,0xB3,0x37,0x2B,0xB7,0x45,0x15,0xDD,0xF5,0xF3,0x77,0xDC,0x84, + + 0x1B,0xDA,0x06,0x9E,0x3E,0x78,0xD6,0xA9,0x33,0x43,0x97,0x28,0x78,0xE9,0x6E,0xD8, + + 0x27,0x14,0x4E,0x9C,0x43,0x3D,0xA1,0x4E,0xEB,0x51,0x8D,0x41,0x69,0x37,0xC5,0xFF, + + 0x8B,0x45,0x2A,0x09,0xBC,0xB7,0x55,0xD7,0x0F,0x4A,0x20,0xA4,0xFE,0x7A,0x05,0x91, + + 0x0A,0x16,0xE3,0x5A,0xBB,0xCE,0x92,0x49,0xE1,0x54,0xEF,0xFB,0x5B,0x85,0xEE,0x6E, + + 0x2C,0x5C,0xC6,0xCC,0x3A,0x3C,0xD6,0x12,0xEF,0x7B,0xD6,0xEC,0x7A,0x7C,0xCE,0x5C, + + 0x2B,0x8C,0xCE,0xDC,0x3B,0x3D,0x4D,0xBE,0xC9,0x13,0xDE,0xFC,0x7B,0x7D,0x3C,0x8F, + + 0x00,0xE5,0xC7,0xCD,0xBA,0x3E,0x88,0x89,0xEC,0x5E,0xD7,0xED,0xFA,0x7E,0x75,0x26, + + 0xAD,0x1F,0xCF,0xDD,0xBB,0x3F,0x2B,0x7D,0xEF,0x58,0xDF,0xFD,0xFB,0x7F,0x7E,0x1F, + + 0x54,0x2B,0x98,0xD6,0xE9,0xAF,0x50,0x66,0x38,0x4B,0xE8,0x32,0x37,0x7C,0xD7,0x16, + + 0x05,0x59,0xAC,0xF4,0x97,0xA9,0xAB,0xD0,0xC7,0xC9,0x09,0x88,0xE9,0x16,0x04,0x03, + + 0xEF,0xA6,0xC1,0x47,0x7A,0x29,0x35,0xC1,0x46,0x8A,0x48,0xC8,0x54,0x62,0x96,0xEE, + + 0x95,0xE0,0x5C,0xF5,0x95,0x08,0xB4,0xD1,0x47,0xCB,0x16,0x58,0x08,0x3F,0x60,0x7A, + + 0xFA,0xB4,0xE0,0x46,0x16,0xA4,0xC7,0x6B,0x40,0xC4,0xF0,0x66,0x56,0xE4,0xED,0x54, + + 0xCF,0xD5,0xE8,0x56,0x17,0xA5,0x0C,0xF6,0x43,0xC2,0xF8,0x76,0x57,0xE5,0xA1,0x43, + + 0xF6,0x22,0xE1,0x47,0x96,0xA6,0x62,0x25,0x64,0x88,0xF1,0x67,0xD6,0xE6,0xCD,0xAE, + + 0x07,0x5C,0xE9,0x57,0x97,0xA7,0xB9,0x76,0xD7,0x86,0xF9,0x77,0xD7,0xE7,0xC2,0xBC, + + 0x8B,0x8F,0x04,0x0F,0x1C,0xA1,0xBB,0xC8,0x7F,0x8A,0x0B,0x70,0xDF,0xE6,0xBA,0x1E, + + 0x10,0x0B,0x2A,0xE4,0xFC,0xD6,0xC5,0xD2,0x4F,0x04,0xBB,0x21,0x45,0x7D,0x8B,0xA9, + + 0x53,0x65,0xDE,0xEF,0x73,0xE8,0x89,0xD5,0xDC,0x07,0x53,0x10,0xF8,0x3E,0xBB,0xF9, + + 0x21,0xCA,0xD4,0xE5,0x62,0x74,0x40,0x33,0x28,0x74,0x3A,0x24,0xC1,0xA5,0x63,0x8C, + + 0xAC,0xC9,0xE2,0x4E,0x1E,0xAC,0xDA,0xC9,0x31,0x6C,0xF2,0x6E,0x5E,0xEC,0x81,0xAD, + + 0x09,0x8D,0xEA,0x5E,0x1F,0xAD,0xFC,0xBC,0xED,0x81,0xFA,0x7E,0x5F,0xED,0x11,0xEE, + + 0x0B,0x89,0xE3,0x4F,0x9E,0xAE,0xB3,0x6B,0xBE,0x35,0xF3,0x6F,0xDE,0xEE,0x3C,0x84, + + 0x2C,0xF1,0xEB,0x5F,0x9F,0xAF,0x0B,0xA4,0x78,0x81,0xFB,0x7F,0xDF,0xEF,0x2E,0x02, + + 0x87,0x96,0xA0,0xC1,0xB5,0xBE,0x6B,0xA0,0x17,0xD0,0x4D,0xE0,0x9E,0x54,0xEA,0x64, + + 0x16,0x93,0xF2,0x05,0x31,0x1A,0xFC,0xB3,0x3E,0xCA,0x18,0x4A,0xF5,0x0A,0x6D,0x11, + + 0x05,0x89,0x06,0x11,0x68,0x54,0xEA,0xA3,0x93,0xDE,0x30,0xA1,0x3C,0xA2,0xF7,0xF1, + + 0xB5,0x58,0xCF,0x93,0x54,0x1C,0x7B,0xCC,0x81,0x1C,0xBF,0x71,0x57,0xB6,0x77,0xFD, + + 0x32,0xD6,0xE4,0xC6,0x36,0xB4,0xB4,0xE7,0x76,0x95,0xF4,0xE6,0x76,0xF4,0xAC,0xD2, + + 0x57,0x31,0xEC,0xD6,0x37,0xB5,0xBC,0xF2,0x17,0x2E,0xFC,0xF6,0x77,0xF5,0x65,0xFB, + + 0x5A,0xE6,0xE5,0xC7,0xB6,0xB6,0xDD,0x40,0x99,0x76,0xF5,0xE7,0xF6,0xF6,0x68,0xD5, + + 0x6F,0x87,0xED,0xD7,0xB7,0xB7,0x7C,0x35,0x45,0x92,0xFD,0xF7,0xF7,0xF7,0x26,0x62, + + 0x62,0x55,0x45,0x7D,0xE2,0x13,0x77,0xD4,0x0A,0x17,0xC4,0x0B,0xD8,0x1F,0x16,0x8A, + + 0x4A,0x9C,0xD0,0xA8,0xD6,0x5C,0x26,0xB3,0x5E,0x1B,0xC4,0x3A,0x7D,0x4A,0xD8,0x63, + + 0xAA,0x99,0xC0,0x87,0x57,0x2C,0x36,0xDD,0xFE,0x12,0x63,0xE9,0x5E,0x04,0x0F,0x9F, + + 0xCA,0x92,0xF1,0xAC,0xA9,0x14,0x85,0xAF,0x60,0x5D,0x54,0xC4,0x62,0xC6,0xC2,0xA8, + + 0x82,0x63,0xE6,0xCE,0x3E,0xBC,0x04,0x4F,0xEB,0xDB,0xF6,0xEE,0x7E,0xFC,0x17,0x9C, + + 0x8D,0xD3,0xEE,0xDE,0x3F,0xBD,0x96,0x59,0x90,0x9C,0xFE,0xFE,0x7F,0xFD,0xA7,0xCB, + + 0xDE,0xE0,0xE7,0xCF,0xBE,0xBE,0x98,0x1C,0x6B,0xD9,0xF7,0xEF,0xFE,0xFE,0x1B,0x5F, + + 0xAB,0x98,0xEF,0xDF,0xBF,0xBF,0xD7,0x58,0x90,0x1F,0xFF,0xFF,0x57,0x3D,0x59,0x86, + + 0xE5,0x0B,0xC8,0x90,0xF9,0x49,0x40,0x06,0xAD,0x22,0xEE,0x18,0x56,0xD0,0x42,0xC2, + + 0xD5,0x72,0x5E,0x53,0xCF,0x29,0xDC,0xC3,0x6B,0xEC,0x5B,0x47,0x74,0xE3,0x81,0x60, + + 0xB4,0x40,0x93,0xFB,0x6F,0x8F,0x6F,0x81,0x29,0x61,0x9E,0x56,0xBE,0x6B,0xAE,0xA9, + + 0x87,0xD3,0x09,0x54,0xFD,0x61,0x8E,0x0F,0xB5,0x58,0xE6,0x46,0xE3,0x0F,0xBF,0xF1, + + 0x3C,0xAB,0x99,0xB1,0xB7,0xA4,0x68,0x10,0x4A,0x4F,0x53,0xF3,0xEE,0x6D,0xC8,0x31, + + 0x67,0xA8,0x08,0x31,0x2F,0xD0,0x8B,0x41,0xE2,0xBA,0x90,0xA1,0xE7,0xBF,0x94,0x32, + + 0xEC,0x0D,0x39,0xC1,0xCA,0x65,0xD1,0x00,0xA6,0xEB,0x6C,0xA2,0x18,0x4F,0x18,0xB1, + + 0x87,0x2E,0x9A,0x6B,0xAD,0x65,0x67,0xC8,0xC5,0xD7,0x60,0xB2,0x19,0x9D,0x9E,0x8C, + + 0x58,0x6F,0x01,0x61,0x72,0x5B,0x92,0x76,0xEC,0xA5,0xF5,0xEC,0x1A,0x2A,0x74,0xB4, + + 0xE0,0x60,0x8C,0xAC,0xF0,0x40,0x63,0xCB,0x67,0x9D,0xE4,0x85,0xD4,0xC4,0x7D,0xA0, + + 0x24,0x07,0xFD,0xB4,0x91,0xCB,0xD7,0x77,0xC6,0x54,0x10,0x40,0xB2,0x19,0xF6,0xF5, + + 0x89,0xDE,0x99,0x1C,0x66,0xA6,0xCB,0x4B,0x22,0xC8,0xC8,0xA2,0x32,0x63,0xD0,0xCC, + + 0x5E,0x75,0x0E,0xF6,0x9A,0x6E,0xA6,0x9B,0x3A,0x29,0x9A,0x34,0xE7,0x93,0x91,0x58, + + 0xE2,0x9E,0x1E,0x2F,0x3D,0x6F,0x52,0x49,0xEA,0xB2,0x4D,0xF8,0x0B,0x38,0x15,0xE4, + + 0x61,0xBD,0x2F,0x3E,0xFC,0x88,0x6B,0x9A,0xB2,0xE3,0x13,0x74,0x2D,0x33,0x5D,0x3C, + + 0x60,0x07,0xCC,0xC1,0x9A,0xEF,0x65,0xC4,0xCD,0xDF,0xA5,0x41,0x77,0x62,0x66,0x84, + + 0x23,0x32,0x96,0x7B,0xCF,0xBD,0x10,0x46,0x48,0x02,0x73,0x64,0x76,0x32,0x8E,0x14, + + 0x29,0xB6,0x8B,0x55,0xD8,0xD2,0x08,0x9B,0x49,0xBF,0xCF,0x27,0x5C,0xDE,0xC5,0x98, + + 0x3B,0xA9,0xD7,0x7A,0x47,0x70,0x01,0x1D,0xC8,0xC8,0x92,0x7D,0x7D,0xDF,0x52,0x99, + + 0xA7,0xA3,0x95,0x8D,0x3E,0xB5,0x09,0x5A,0xE7,0xE3,0x95,0xC6,0xCF,0xF5,0xC2,0xB3, + + 0x48,0x5B,0x94,0x48,0x36,0x10,0x4E,0xE2,0xF0,0x5C,0x43,0x1B,0x87,0xD2,0x50,0xD0, + + 0xAC,0xB8,0x96,0x7E,0x5B,0x36,0x98,0x0A,0x9E,0x37,0x5A,0xB3,0x92,0x83,0x44,0xB2, + + 0xC4,0x59,0xD0,0xB7,0x59,0x35,0x49,0x9F,0x46,0xBB,0x46,0x1B,0xD0,0x9B,0x9F,0x42, + + 0x8D,0xBA,0xB3,0xD3,0x52,0xB4,0x22,0x82,0x93,0x12,0x22,0x87,0x25,0xA8,0xEE,0x71, + + 0x24,0x1C,0x82,0x4C,0x3C,0x10,0x19,0xDB,0x4D,0xDA,0x96,0x5F,0x06,0x50,0x51,0x8D, + + 0x2F,0x39,0x82,0xA9,0x71,0xBA,0x79,0x78,0x23,0xF4,0x02,0x47,0x0A,0x79,0x84,0x0D, + + 0xF0,0x24,0x11,0x09,0xE0,0xA0,0x68,0xDA,0xDA,0x36,0xC8,0xBC,0x9A,0xD7,0x79,0x80, + + 0xAF,0xAB,0xB1,0xA1,0x1D,0xD6,0x87,0x89,0x1E,0xE4,0x89,0xDF,0x06,0xE6,0x96,0x4C, + + 0x72,0xCE,0x6F,0x3F,0xB6,0x31,0xE8,0x6D,0x9D,0xF1,0x7A,0x93,0xB0,0x5F,0x70,0x64, + + 0xC8,0x16,0xF4,0x2F,0x4B,0x92,0x8C,0x86,0x19,0xF2,0xBF,0x3C,0x76,0x2D,0x0F,0xCD, + + 0x83,0xDF,0x9F,0xC9,0x32,0xEC,0x40,0x6C,0x92,0xF1,0x8D,0xEF,0x49,0xA7,0xCB,0xAA, + + 0xD1,0x90,0xD8,0xAE,0x99,0x9E,0x09,0x3E,0x02,0x9C,0xFF,0xC3,0xE7,0x7B,0xF5,0x3D, + + 0x76,0x3F,0x60,0x1F,0x6A,0x0D,0x0E,0x92,0xC9,0x46,0x8E,0x8B,0x82,0x4F,0x6B,0x0D, + + 0x37,0x54,0xCA,0x17,0x16,0xE1,0x38,0xC2,0xBA,0x6E,0xEA,0xC6,0x51,0x40,0x7A,0x03, + + 0x82,0xC2,0xF0,0x67,0xDE,0xCC,0x30,0x63,0xC0,0xE2,0x66,0x66,0xAF,0x42,0xFC,0x2C, + + 0xF7,0x3F,0xA5,0x22,0x7C,0x30,0x6E,0xC0,0xB3,0x6E,0xEA,0xC4,0xA7,0x6E,0xDB,0xF3, + + 0x38,0x2B,0x20,0x5F,0x30,0xE6,0x84,0x9C,0xEA,0xC9,0x8E,0x5B,0xD9,0x42,0x6F,0xF6, + + 0xA6,0x0C,0xEC,0x74,0x33,0x2E,0x1E,0x4B,0xAE,0x54,0xD8,0x9C,0xBE,0x34,0xB6,0x02, + + 0xFD,0xC4,0x7D,0x6A,0xDE,0x25,0x8E,0xA4,0x2F,0x95,0xE6,0x14,0xA6,0x6F,0x6D,0xB3, + + 0x83,0xAE,0xED,0xB5,0x6B,0x34,0x63,0x71,0x74,0x6A,0xE3,0x75,0x45,0xEF,0x9F,0x51, + + 0x7F,0x88,0xC4,0x6B,0xF7,0x7B,0x60,0x98,0x5C,0xC8,0xE4,0x83,0xB7,0x9B,0xFC,0xBA, + + 0x43,0xBB,0xD4,0xA7,0x14,0x48,0x5A,0x5A,0xBB,0x68,0xF9,0x4D,0x78,0x6B,0xE3,0x0F, + + 0xDE,0x3E,0x9D,0xA2,0x5E,0xAA,0x3B,0x2F,0xC5,0x2B,0x73,0x33,0xF2,0xE0,0x72,0xA9, + + 0x28,0xE7,0xAD,0xAF,0x74,0xC2,0x03,0xDE,0xC5,0x17,0x44,0x4C,0xEF,0x87,0xF0,0xCE, + + 0x5A,0xE5,0x51,0xE3,0x18,0x64,0x27,0x1A,0xCE,0xDA,0x70,0x7D,0x2A,0x7D,0x6D,0xDF, + + 0x0E,0x5D,0x8D,0x3C,0xF4,0x8E,0xAB,0xE5,0xBA,0x44,0x79,0x5D,0xFE,0x32,0xA3,0x53, + + 0x20,0xCC,0xB8,0x6B,0x1C,0xAA,0x7B,0x8B,0x41,0x63,0xD5,0x52,0xA6,0xAC,0xAB,0x43, + + 0x20,0x85,0xB3,0x5B,0x17,0x15,0x5B,0x91,0x26,0xFC,0x4F,0x1D,0x52,0x49,0xCC,0x7B, + + 0x6C,0xD2,0x60,0x75,0x12,0x1D,0x0A,0x0A,0xE9,0x66,0x74,0xBF,0x0A,0x5D,0xEC,0x96, + + 0x77,0x45,0x92,0xAB,0xC1,0x60,0x02,0x0A,0x19,0x7E,0x3F,0x13,0x76,0x81,0x21,0x30, + + 0xDF,0x82,0x32,0x02,0x5F,0xD1,0x3D,0xA7,0xED,0x33,0xE4,0xC7,0xF6,0xB0,0x7D,0x8C, + + 0x8F,0x88,0xF4,0x92,0x60,0xF6,0xEE,0xCD,0x65,0x92,0x7D,0xAE,0xA6,0x5E,0x7C,0x4B, + + 0xCF,0x47,0xDC,0xF7,0x97,0x35,0x12,0x43,0x8F,0xD7,0x40,0xA1,0x45,0xB3,0x3B,0x56, + + 0x77,0xF2,0xBE,0x9D,0xDC,0xD1,0x2B,0x76,0x33,0xBC,0xEF,0x72,0x27,0xAA,0x73,0xA1, + + 0x59,0x3B,0x1C,0x34,0x32,0x3B,0xB5,0xFA,0xB0,0xDE,0x4D,0x74,0x8E,0x5B,0x96,0xF4, + + 0x06,0xFB,0x2D,0xC7,0x3F,0x43,0xBD,0xEB,0x49,0x95,0xB5,0x57,0x94,0xBE,0x55,0xEC, + + 0x0F,0xE8,0x18,0x0B,0xE9,0xDA,0x30,0x1A,0x85,0xB1,0xE5,0x97,0x97,0xF0,0x77,0x6F, + + 0x88,0xF7,0x90,0xA3,0xE3,0x16,0x6C,0x45,0x6B,0x69,0xEC,0x4E,0x8A,0x58,0x7E,0x77, + + 0x09,0x65,0xCE,0x65,0x43,0xD6,0x25,0x54,0x13,0x57,0x8C,0xAD,0xC8,0x5A,0xC8,0xDB, + + 0xFD,0x36,0x38,0xEC,0xC9,0x6D,0x37,0x3F,0xB9,0xB8,0xEC,0x4C,0x8F,0x70,0x00,0x7E, + + 0xC7,0x3F,0xFA,0xD0,0x1F,0x08,0x71,0x6F,0x6F,0xDD,0xE0,0x4E,0xCD,0xB1,0xEE,0xBB, + + 0x4B,0xB4,0xA1,0xEF,0x9E,0x1C,0xF8,0x89,0x05,0x92,0x21,0xFF,0x79,0xE5,0xA7,0xD2, + + 0xB2,0x96,0x28,0xD5,0xE9,0x13,0xB7,0xF3,0x41,0xD4,0xBD,0xF2,0xDD,0x3F,0x7F,0x5F, + + 0xF7,0xDC,0xD7,0xEF,0x90,0xFD,0x7E,0x88,0x89,0x90,0xA6,0x7B,0xAB,0x6C,0x3E,0x38, + + 0xA3,0xAD,0x1C,0xFB,0xE5,0x83,0x76,0xED,0xA9,0x1A,0x7C,0xB6,0x10,0x68,0x36,0x29, + + 0xC3,0xFE,0x48,0x0D,0x59,0x29,0x98,0x73,0x32,0xCC,0xA0,0xD4,0x55,0x4D,0x16,0x85, + + 0xD4,0x69,0x10,0x81,0xC0,0x97,0xD1,0x39,0x77,0x4A,0x00,0xA7,0x50,0x0C,0x37,0x29, + + 0xE0,0x07,0x09,0x56,0xE0,0x8E,0x67,0x04,0x28,0xA2,0x82,0x95,0xC7,0x23,0xBB,0x33, + + 0x5D,0xFD,0x82,0xBB,0xFB,0xDE,0x90,0x70,0xA7,0x44,0x14,0xB4,0x5A,0x67,0xC9,0xD4, + + 0x5B,0xB2,0xEE,0x89,0x3C,0x5E,0xF2,0x24,0x45,0xC5,0x7E,0x12,0x99,0x7E,0x19,0x40, + + 0x77,0x0D,0x6D,0xDA,0x91,0xB6,0x51,0x61,0xC2,0x40,0xE9,0x79,0x5F,0x7D,0x41,0x40, + + 0xE8,0xB7,0xCD,0x27,0x68,0xDC,0xE3,0x71,0xC3,0x47,0xA7,0x9D,0xC1,0x2A,0x60,0x0A, + + 0x0B,0x18,0x93,0x6C,0x52,0x85,0xBE,0xBB,0x6D,0x40,0xBE,0x54,0xB1,0xB2,0x73,0x6B, + + 0x71,0x46,0xB4,0x30,0x37,0xF6,0xFA,0x09,0x25,0xE6,0x1A,0x7F,0x28,0xC4,0x59,0x03, + + 0xE0,0xB0,0x16,0x3C,0x39,0xD5,0x93,0x6A,0xBB,0xC1,0x7F,0xBF,0xD8,0x60,0x0D,0xC0, + + 0xC1,0x08,0xD1,0x01,0x9F,0xBB,0xBB,0x4B,0xAB,0x1E,0x07,0xAD,0x26,0xC6,0xC4,0x4A, + + 0x11,0x17,0xC6,0xC8,0x2B,0x7D,0x52,0x1A,0xA1,0x77,0xB4,0x99,0xB1,0x87,0x39,0xA8, + + 0x49,0x42,0xAA,0x0A,0x1E,0x6F,0x82,0x0B,0x6C,0x23,0xD8,0x57,0xD6,0x2F,0x64,0xBD, + + 0x82,0x15,0xC5,0xA9,0x13,0x18,0x2D,0x85,0x02,0x47,0x13,0x71,0x2A,0x2C,0x12,0xA4, + + 0x2E,0xF0,0xC9,0x5E,0xA8,0x1F,0x3D,0x18,0xC8,0x54,0xD9,0xC1,0xD8,0xAF,0x5C,0x10, + + 0xD9,0xB1,0x44,0x98,0x25,0xBB,0x9D,0xC2,0x41,0x10,0x8F,0xE3,0x99,0x59,0x0F,0x37, + + 0x96,0x74,0x47,0x87,0x01,0xCB,0x0A,0xD2,0x9E,0xFC,0xFE,0xB4,0xAC,0xF0,0x3D,0x7E, + + 0x51,0x50,0x81,0x67,0x78,0x23,0x39,0xD9,0x09,0x23,0xF3,0xC5,0x0F,0xFF,0x35,0x7E, + + 0xA7,0xC3,0xAB,0xA0,0x90,0x97,0x8C,0x35,0xB1,0x34,0x99,0x4E,0x10,0x80,0x5E,0xC2, + + 0xE0,0x10,0xE0,0x2C,0x2A,0x76,0x6A,0x80,0x43,0x84,0xD6,0x15,0x11,0x8B,0xF4,0x2F, + + 0x40,0x01,0x46,0x50,0x63,0xDB,0x26,0xE0,0x9C,0xD8,0xDA,0x04,0x57,0x81,0x0D,0xCC, + + 0x91,0x72,0xC7,0xA1,0x30,0xFA,0x2B,0x05,0x0B,0x3F,0x45,0xF6,0xC5,0xFD,0x5B,0x08, + + 0x10,0xEA,0xAD,0x83,0xF6,0x75,0xA0,0x08,0x1C,0x15,0x09,0x71,0x96,0xCC,0x32,0xE6, + + 0x8B,0x7D,0x10,0xED,0x0B,0xD3,0x6D,0x8F,0xC9,0xE7,0xED,0xEB,0x91,0x82,0x0E,0x99, + + 0x79,0x1D,0x76,0x94,0xC0,0x76,0x79,0xC2,0x6F,0xC9,0xFC,0xBC,0xA4,0xF8,0xBA,0x6B, + + 0xF0,0xAD,0x7F,0x65,0x3C,0xA7,0xFB,0x41,0xD3,0x17,0xF1,0x71,0x07,0xF7,0xA0,0xBD, + + 0x48,0x00,0xB5,0x75,0x3F,0xF4,0xE6,0xF9,0xED,0x77,0x9B,0xE2,0x9B,0x7B,0xBE,0x20, + + 0x7D,0x5E,0xC4,0xCF,0x3C,0x5C,0x4F,0xC4,0x83,0x15,0xB6,0xC3,0x41,0x3E,0x58,0xF1, + + 0x2D,0xCD,0x97,0xA2,0x59,0x1D,0xF2,0x67,0x68,0xCD,0xA6,0xDB,0x92,0xB6,0x45,0x38, + + 0xC9,0x75,0xE2,0xBF,0xC6,0x91,0x15,0x16,0x03,0x77,0x54,0xC9,0x13,0xD5,0xA9,0x29, + + 0xEB,0xBE,0xB1,0x28,0xBD,0x26,0x79,0x98,0xCC,0xD2,0xA7,0x7F,0x47,0x99,0x1E,0xA2, + + 0x89,0x06,0x56,0x82,0x4C,0x00,0x4E,0x25,0xE5,0xCB,0x7F,0xB9,0x55,0xA0,0x21,0x60, + + 0xFE,0x1E,0x96,0x23,0x34,0x23,0xAE,0x21,0x68,0xCE,0xCF,0xF6,0x51,0xCD,0xA6,0xC3, + + 0x80,0xAB,0xA9,0x03,0x1D,0x3B,0xB1,0x60,0xF7,0x6F,0x9D,0x5F,0xD2,0x52,0x85,0x68, + + 0x4F,0x2A,0x05,0x64,0xA9,0x05,0x0B,0x20,0x66,0x92,0xA2,0x35,0x8A,0x8F,0x39,0xB7, + + 0xA3,0x5B,0x20,0x56,0x33,0xA2,0x56,0xBE,0x69,0x69,0x30,0x7A,0xA6,0xA6,0x31,0xAF, + + 0xF2,0xCA,0x06,0xD4,0xD2,0xED,0x30,0x23,0x41,0x75,0xD2,0x9C,0x14,0xEA,0x8D,0xDC, + + 0x87,0x06,0x4B,0x03,0x90,0x36,0xAD,0xA4,0x0C,0x3C,0xF3,0x39,0x3F,0xDD,0x30,0x55, + + 0x22,0x58,0x29,0x47,0x1F,0xE5,0x02,0x0C,0xAF,0xAC,0xD0,0x1F,0x3C,0xDC,0x19,0x99, + + 0x6D,0x82,0x3E,0xF1,0xF5,0xF9,0x4C,0x07,0xAD,0x67,0x8C,0xF3,0x96,0x32,0x54,0x1C, + + 0x6E,0x7E,0x9D,0x9A,0x45,0x09,0x5C,0x5F,0x4C,0x89,0xBB,0x4D,0x74,0x40,0x32,0xFB, + + 0x7F,0x3B,0xC1,0x0F,0x9A,0x3A,0x22,0x58,0xFC,0xA6,0x5F,0xBD,0x9C,0xE2,0x78,0xE8, + + 0x01,0x86,0xA3,0x1B,0x14,0x32,0x17,0xD3,0xCB,0x1B,0xA3,0xDF,0xD9,0xC7,0x63,0x2C, + + 0xF1,0xCE,0x66,0x45,0xFF,0x5D,0xB2,0x72,0xFA,0x13,0xCC,0x82,0x9F,0x66,0xD5,0xDE, + + 0x5B,0xE6,0xEE,0xAD,0x74,0xAB,0x63,0x30,0xA6,0x86,0x56,0xEC,0xA8,0x40,0xE0,0xF3, + + 0x7B,0x81,0x9D,0xBB,0x6B,0x2D,0xC7,0x09,0x31,0x8C,0x74,0x27,0x35,0xB5,0xD4,0xC9, + + 0x70,0x52,0x41,0x0B,0x99,0x2F,0x65,0x1A,0xEC,0xBE,0xA6,0xED,0xDF,0xE7,0x03,0x74, + + 0xCF,0x2A,0x13,0xAB,0xC0,0xE1,0x2F,0xD1,0x49,0x52,0x4F,0x22,0x7C,0x57,0x63,0xA3, + + 0x84,0x30,0xB4,0x96,0x06,0xD5,0x66,0x36,0x63,0x41,0x10,0xC9,0xAF,0x2C,0xE5,0xE6, + + 0xC2,0x3F,0x65,0x42,0x46,0xF0,0x2B,0x8B,0xC5,0x42,0xEC,0x5B,0x51,0x4D,0x15,0x60, + + 0x9D,0x3E,0x15,0x77,0xB1,0xA1,0xCB,0x37,0xBD,0x73,0xDF,0xB7,0xF4,0x62,0x71,0x31, + + 0x1E,0x34,0xC6,0x44,0xB6,0x0C,0x89,0x1B,0x6E,0x21,0x34,0xFA,0x52,0x59,0x0E,0xCF, + + 0x24,0x97,0x28,0x06,0x3B,0xB6,0x5A,0x93,0x40,0x75,0xA5,0x14,0x14,0x52,0x2A,0xB0, + + 0xFD,0xFA,0xDD,0x38,0x77,0xD4,0xE9,0x67,0xD7,0x87,0x2B,0x05,0x5A,0x5B,0x6B,0xFB, + + 0xEF,0xE6,0xD5,0xCB,0x3A,0xAC,0xA1,0xF1,0x05,0x7A,0xEB,0x52,0x1C,0xB3,0x69,0xCD, + + 0xEE,0x68,0x1E,0x6E,0x38,0x94,0x3E,0xAE,0xE5,0x41,0xD6,0xAC,0xF3,0xF5,0x10,0x52, + + 0x0E,0x69,0x65,0x7E,0x5F,0xD5,0xA8,0xDA,0x2F,0x02,0x7F,0xCD,0x2A,0x78,0x2F,0x8F, + + 0x25,0x01,0xBC,0xFC,0xE3,0x13,0x09,0xCF,0xAE,0x73,0xAF,0x36,0xDC,0xA8,0xC3,0x73, + + 0x0B,0xD6,0x91,0xFE,0x77,0xB2,0x3F,0xC8,0xD1,0x7A,0xBB,0x40,0x1C,0x98,0x58,0xE7, + + 0x0D,0xDC,0xC0,0xA8,0xF4,0x77,0xBD,0x8A,0x72,0x73,0xCC,0x5E,0xC2,0x53,0x68,0xEF, + + 0xA7,0x49,0x88,0x2F,0xD4,0x16,0x01,0x07,0x90,0x9F,0x6E,0xFE,0x7F,0xFD,0x61,0xE7, + + 0x26,0x39,0x99,0x3B,0xAC,0xF3,0xAB,0x06,0x11,0x53,0x53,0x9C,0x9D,0xF1,0xFF,0x59, + + 0x6A,0xD7,0x50,0x8D,0xB1,0xDD,0x66,0xD7,0x06,0xB6,0xFF,0xFF,0xFF,0xFF,0x3A,0xF3, + + 0x6C,0xAD,0xA8,0x66,0xAD,0x2C,0xCC,0x24,0x71,0x5C,0x37,0x09,0x33,0x0A,0x40,0x91, + + 0x62,0x15,0x5E,0x90,0x41,0xFF,0x32,0xE0,0x4D,0xC8,0xC0,0x11,0x89,0x25,0x97,0x46, + + 0x4A,0xB8,0xB9,0x3B,0xF6,0xD7,0x71,0x23,0x99,0x4F,0x87,0x10,0x63,0x2F,0x1F,0x24, + + 0x32,0x4E,0x3E,0xF0,0x62,0x9C,0x9D,0x51,0x83,0x45,0xBA,0x32,0x70,0xBC,0x1A,0xE5, + + 0x6A,0xE5,0x7B,0xE8,0xA5,0xBF,0x01,0x12,0xB5,0xBB,0x47,0xB4,0xA5,0x6D,0x30,0x23, + + 0x6F,0x47,0x62,0xF4,0xB2,0xDA,0x0E,0xE3,0x79,0xE8,0x8A,0x8A,0xA4,0x0B,0x81,0x5D, + + 0x8C,0x8B,0xC5,0xBC,0x92,0x20,0x71,0xC4,0x4D,0xEB,0xC1,0xE1,0x86,0x37,0x4E,0x3C, + + 0x85,0xD7,0x12,0x55,0x95,0x97,0x0B,0xE2,0xF1,0x4F,0xE7,0x49,0x0D,0xCA,0x1A,0x19, + + 0xF4,0xE9,0x79,0x88,0x1C,0xF7,0xB8,0x88,0x2B,0xAA,0x26,0x4E,0xBB,0x63,0x9C,0x1A, + + 0xB8,0x12,0xB2,0xF2,0x9A,0x24,0x62,0x1F,0x2A,0xDB,0x1A,0x7D,0x54,0xDD,0xC3,0xD8, + + 0x96,0xAA,0xEB,0x6F,0x27,0x24,0x6B,0x0E,0xAB,0x78,0x13,0x53,0x3B,0x61,0x4B,0xE9, + + 0x76,0x44,0xF6,0xDF,0x38,0x34,0x63,0xBB,0x0C,0x8F,0x3B,0x27,0x55,0xE0,0x9D,0xCC, + + 0x52,0x37,0x3E,0xC8,0x4E,0x60,0x43,0x1B,0x20,0xEA,0xC5,0xF2,0x59,0x4E,0xDC,0xDC, + + 0x5B,0x61,0x31,0x03,0xA6,0xD1,0x3C,0xD0,0xBC,0x0F,0xC9,0xCC,0xAC,0xB2,0x83,0x55, + + 0xC6,0xA3,0x56,0xA2,0x6F,0x7D,0x06,0x96,0x23,0xCD,0x8A,0x7A,0xDC,0xBE,0x8B,0x45, + + 0xF4,0x4D,0x5B,0x2E,0xC8,0x26,0xC2,0xD7,0x22,0x7C,0x37,0x0E,0xF9,0x99,0x3C,0x7F, + + 0xD1,0x52,0x87,0x5A,0xCC,0x7B,0xD4,0xCC,0x3D,0x84,0xAC,0x57,0x48,0xC4,0xC8,0x6E, + + 0x8D,0x1C,0x0C,0x6A,0xB2,0x3C,0xBF,0x04,0xBD,0xB2,0x65,0x93,0xD0,0xFE,0x06,0x26, + + 0x04,0xFF,0xFE,0x7E,0x47,0x70,0xCB,0xBE,0xD3,0x13,0x35,0xBF,0x7C,0x7F,0xC9,0x7E, + + 0x34,0xCE,0x70,0x57,0x10,0x6C,0xF1,0x59,0x33,0x1E,0xC5,0xB1,0x44,0xFC,0x84,0x79, + + 0x1D,0xB4,0x01,0x46,0xA7,0xD3,0x6E,0x0F,0xD5,0x3A,0xF4,0x81,0xD3,0x75,0x2E,0xCD, + + 0x20,0x55,0xCB,0xBD,0x92,0x9A,0x3E,0xF4,0x62,0x67,0xCA,0xDC,0x98,0x64,0xD3,0xB2, + + 0xCE,0x7A,0xFD,0x36,0x82,0x74,0x6A,0x73,0xE2,0xCB,0x6F,0xF1,0x91,0xEF,0x59,0xAC, + + 0x87,0xC3,0x9B,0xF2,0x12,0x98,0x67,0xC8,0x1C,0xCA,0xBD,0xBB,0x1D,0x7A,0xAF,0xB7, + + 0x4A,0xE5,0xEE,0xEE,0x83,0x36,0x70,0x65,0x81,0x02,0xCE,0xC9,0x43,0x18,0xB1,0xA1, + + 0xD2,0xC4,0x32,0x1E,0xFC,0xF1,0xDF,0x3A,0xF0,0xD2,0x3A,0xD7,0x7F,0xE9,0xD3,0x1A, + + 0x09,0xC5,0xBF,0x67,0xBE,0x7A,0xD7,0xB1,0x5F,0x50,0xD2,0xB6,0x7C,0xEE,0x5C,0x63, + + 0x50,0xBA,0x4F,0x8D,0x6C,0x96,0x27,0x46,0xC8,0x39,0x35,0xC3,0x5A,0x1E,0x14,0xD7, + + 0x40,0x88,0x14,0x48,0x62,0xD7,0x04,0x16,0xE8,0x90,0x29,0x9F,0x4A,0x10,0x58,0x6D, + + 0xC0,0x2E,0xF6,0x2F,0x09,0x7F,0x9E,0xF9,0xA6,0x20,0xCF,0xC2,0x03,0x88,0x95,0xD2, + + 0xC4,0x93,0xFF,0x3E,0xD4,0x5B,0x87,0x6D,0xB2,0x83,0x30,0x2D,0xFE,0x8A,0x71,0x6D, + + 0xC9,0x80,0xC8,0xCE,0x50,0x5B,0xC8,0x16,0x5E,0x8C,0x4C,0xC6,0x9D,0xEA,0x1E,0xDB, + + 0x25,0x20,0x60,0x02,0xB9,0xA6,0x6A,0xB2,0xE7,0xDB,0x4F,0xC4,0xF8,0xEF,0xD0,0x36, + + 0xD9,0x02,0x03,0x94,0xD0,0x69,0x80,0xC9,0xB9,0x0A,0xC1,0x44,0xF2,0xC9,0x1F,0xF2, + + 0x09,0xE0,0x0B,0x43,0x92,0x22,0x13,0x45,0x37,0xD2,0xEB,0x9C,0xBC,0x03,0x0E,0xA2, + + 0x1C,0xFE,0x69,0x07,0x2D,0xBE,0x8A,0xC2,0xC3,0x9A,0x35,0x44,0xB9,0xA1,0x63,0x1C, + + 0x00,0x54,0x67,0xC4,0xD3,0x40,0xE7,0x9D,0xAF,0xD7,0xCE,0x5B,0x80,0xEC,0x6B,0x3C, + + 0x01,0x55,0xA0,0x5B,0xB6,0x24,0x1E,0xC7,0xB2,0x63,0x86,0x5E,0xD7,0xB5,0xE7,0x30, + + 0xEA,0xC4,0xD9,0x80,0x54,0xBD,0xA2,0x9D,0x4B,0x3B,0x77,0x8F,0x30,0xAB,0xB6,0xD7, + + 0xDF,0xB6,0x68,0xB5,0x17,0x07,0xAB,0x33,0xD3,0x6A,0x99,0x75,0xA8,0xEA,0x0F,0x8E, + + 0x54,0x17,0x8A,0x6C,0xA5,0xA4,0xBD,0x34,0x27,0x3C,0xB5,0x09,0xFD,0x37,0x11,0xA6, + + 0xD4,0x74,0x17,0x5C,0xBC,0x7C,0x41,0x32,0xE8,0x76,0x2C,0xBA,0x05,0xCE,0x9C,0x3A, + + 0xA3,0x75,0x9B,0x61,0x1D,0xA7,0xE9,0xC3,0x08,0x87,0x07,0x4D,0x23,0x47,0x04,0xE1, + + 0x74,0x2A,0x79,0x20,0xF3,0xE9,0x8C,0xD3,0x39,0x20,0x83,0xCC,0xED,0x8E,0xA2,0x56, + + 0x42,0x88,0xD8,0xCC,0xDB,0x48,0xA4,0x5A,0xB1,0x33,0xA2,0x18,0x52,0x47,0x5D,0x77, + + 0xFF,0xDC,0xAC,0x6B,0x19,0x1D,0x81,0x5E,0x96,0x30,0x5C,0x1C,0xD2,0x6B,0xE0,0xCF, + + 0xF4,0xF5,0x9B,0xBE,0xF2,0x5E,0x4D,0xDF,0xAC,0x31,0xE2,0xDB,0x5C,0x22,0xDC,0x72, + + 0x7B,0x9E,0x55,0xBF,0x9B,0x8A,0x54,0x21,0x3A,0x53,0xA2,0xBF,0x87,0xE9,0x1C,0x7D, + + 0xD5,0xD2,0x72,0xB7,0x03,0x1F,0x0A,0x17,0xF5,0x2D,0x0B,0x44,0xBC,0x81,0x14,0x6D, + + 0xAA,0xE7,0xF1,0x65,0x0E,0xF0,0x97,0xF5,0x6B,0x0D,0x81,0x32,0x25,0xDF,0x26,0x24, + + 0x53,0xF7,0x7C,0xF4,0xD2,0x11,0x1C,0xAB,0x64,0x72,0x15,0xB4,0xC0,0x96,0x96,0x1D, + + 0xA4,0x53,0x97,0x64,0xD9,0x1E,0xF9,0x79,0x5E,0x7C,0x7D,0xAB,0xB9,0xCE,0x1A,0x6A, + + 0xAB,0x39,0xDC,0x35,0x4E,0xD1,0x8D,0x1A,0x62,0x6F,0xA2,0x62,0x75,0x49,0x2B,0x95, + + 0xC6,0x33,0xEB,0x51,0xDC,0xD1,0x7C,0x88,0xA5,0xF5,0x4F,0xCB,0x8B,0xF6,0x37,0x51, + + 0xE6,0x9C,0xDD,0x34,0xC2,0xF4,0x75,0x24,0x1F,0x50,0x56,0x46,0x2A,0xB5,0x3B,0x2C, + + 0xC4,0x17,0xD5,0x24,0xCB,0xD2,0x75,0x7A,0x06,0x66,0xCA,0x5F,0x07,0x14,0x8D,0xE4, + + 0xF9,0x64,0x30,0x0A,0x64,0x5C,0xE0,0xB4,0x0A,0xDE,0xEE,0xC8,0x1F,0x92,0x38,0x7E, + + 0xC6,0xD2,0x38,0x1A,0x65,0x1F,0x0B,0xD0,0xEC,0xD4,0xC1,0x4E,0x87,0x58,0x9A,0xD4, + + 0x45,0x39,0x90,0x89,0x4F,0x17,0x9D,0xEF,0xEA,0x5A,0xA1,0x9A,0x4F,0xB7,0x12,0xAA, + + 0x82,0x34,0x18,0x99,0x56,0xEA,0x02,0xF9,0x4C,0x86,0x29,0x55,0x04,0xB4,0x00,0x7A, + + 0xD9,0xDE,0xDE,0x3D,0x1C,0xFE,0x89,0x90,0x0C,0x23,0x36,0x2E,0x87,0x28,0x89,0x25, + + 0x4C,0x1D,0xF6,0xAD,0x47,0x37,0x79,0x84,0x69,0xFD,0xAA,0xC1,0x59,0x68,0xFE,0x65, + + 0x23,0x13,0x64,0xD2,0x1F,0xB5,0x17,0xBD,0xC4,0x9C,0x23,0xF0,0x9C,0x2B,0x8C,0x25, + + 0x8D,0x72,0x14,0xBF,0xDB,0x12,0xD1,0x84,0xD3,0xA0,0x2B,0xC4,0x9D,0xBD,0x8C,0xD1, + + 0x9D,0xFD,0xB8,0xFB,0x67,0x20,0x36,0x85,0x6A,0xE4,0x50,0x38,0x8C,0xD5,0xE4,0x7F, + + 0xCB,0x10,0xF1,0x72,0xEA,0xBA,0xF4,0x43,0x63,0xE7,0x8D,0x0A,0x61,0x23,0xAC,0x4F, + + 0x75,0x5E,0xDB,0xBE,0xF8,0xC3,0x43,0x85,0x40,0xF6,0x86,0x1F,0xA0,0x97,0xB0,0x83, + + 0x81,0x09,0x89,0x91,0xDC,0x07,0x48,0x42,0xBD,0xE5,0xD1,0x4E,0x05,0x20,0xEB,0x8A, + + 0xB9,0x6A,0x00,0x18,0xD7,0xF0,0x7F,0xE4,0x16,0x08,0xAE,0x62,0xB3,0xC7,0x1A,0x90, + + 0x55,0x69,0xEA,0x32,0xE4,0x35,0xE3,0xC1,0x21,0xEA,0xA3,0x53,0xF2,0x94,0x27,0xF0, + + 0x77,0xA0,0x50,0x5A,0xAE,0x3D,0x47,0xD0,0x29,0xE5,0x75,0x96,0x5E,0x6B,0x77,0xE0, + + 0x59,0xAA,0x71,0xAA,0x1C,0x81,0x0B,0x73,0x86,0x92,0x26,0x0F,0xA5,0xB8,0x82,0x0B, + + 0xEE,0x46,0x42,0x15,0xB9,0xD7,0xC4,0x68,0x1C,0xE5,0x35,0x89,0xA0,0x99,0x32,0xE7, + + 0x86,0xA4,0xF3,0x63,0xBE,0x84,0x09,0x4B,0x27,0xEA,0x29,0x10,0x5F,0x63,0x94,0x8B, + + 0x15,0xD1,0xD9,0xB6,0xF0,0xCB,0x42,0x18,0xEE,0xE5,0xA0,0x11,0x24,0x1B,0xDB,0x86, + + 0x60,0x28,0x1D,0x7D,0x9D,0x02,0x4F,0xCA,0xF5,0x4F,0xA4,0x23,0xBB,0x9F,0x10,0xD2, + + 0x09,0x1E,0xD7,0x32,0xD0,0x3D,0x82,0x57,0x64,0x0E,0x89,0x6C,0x21,0x0C,0x13,0x5C, + + 0x86,0x6E,0x35,0xAF,0x23,0xF0,0xAC,0x3A,0xEA,0xB0,0x0A,0x63,0x75,0xC0,0x7D,0xF8, + + 0x7E,0x8D,0x8B,0x41,0x67,0xAF,0x50,0xB7,0xCC,0x9E,0x13,0x6C,0x17,0xBA,0xE0,0xFC, + + 0x5E,0x11,0x99,0xA2,0x70,0x3E,0x73,0x1B,0x3F,0x4C,0x8B,0x4D,0x9B,0xC0,0xFF,0xBA, + + 0x0A,0xA5,0x97,0xA3,0x91,0x9F,0x45,0x98,0x66,0xE0,0x46,0x3A,0x87,0x76,0x23,0xFF, + + 0xF8,0x8D,0xB4,0x67,0x45,0x54,0x09,0x52,0xCD,0xFC,0xB1,0x4E,0xDD,0x7C,0xD5,0x05, + + 0xA8,0xB5,0x92,0x01,0xE0,0xAE,0x33,0x52,0x6C,0xFF,0xF7,0x13,0xF6,0xA2,0xB4,0xCB, + + 0xA7,0x33,0xB5,0x66,0xCD,0x71,0x8C,0x53,0xE7,0xE3,0xE2,0xF2,0x18,0x40,0x51,0x5F, + + 0xCB,0x05,0xC3,0xF1,0x34,0xE4,0x6C,0xDE,0x40,0xA1,0x80,0x1B,0x93,0xF2,0xEA,0x54, + + 0x77,0x84,0x0C,0xC8,0xFF,0x77,0x34,0x92,0x9C,0x5B,0x25,0x86,0xC8,0x6A,0xA6,0x01, + + 0xA8,0x0D,0x62,0x41,0xEA,0x13,0x01,0x65,0xB2,0x88,0xD5,0xAA,0x0F,0x0A,0x1F,0x2B, + + 0x54,0x79,0xCA,0xEA,0xB5,0xE7,0x65,0x0F,0xE5,0x37,0x6E,0xCC,0x0F,0xA6,0xA8,0x96, + + 0x02,0xEC,0x81,0xAF,0x99,0x97,0xF2,0x5B,0xE4,0xF5,0xF1,0x57,0x91,0x6B,0xA6,0xA5, + + 0xA6,0xB4,0x9B,0x18,0x61,0xCC,0x0D,0x5A,0x6F,0xE9,0xD0,0xA2,0x47,0x8D,0xD7,0x29, + + 0xD4,0x19,0x96,0xAA,0x19,0x95,0x82,0x4B,0x44,0xF7,0xF4,0x57,0xFE,0x12,0x9C,0x0A, + + 0xCF,0xB6,0xB7,0x6E,0x8D,0x5E,0x02,0xCA,0xD1,0x54,0xCC,0xCE,0xD3,0xF1,0x78,0xE5, + + 0xF4,0xB1,0x61,0xBF,0x56,0x35,0x73,0xF6,0x08,0xA8,0xAD,0x17,0x7C,0xAC,0x10,0x74, + + 0xD4,0x71,0x6D,0xE5,0xE7,0xEC,0x78,0x4D,0x2A,0x28,0x61,0xBE,0xDA,0xA8,0xD6,0x57, + + 0xAB,0x7E,0x47,0xEE,0xD2,0x7F,0x01,0xFA,0x8C,0x36,0x19,0x93,0x7B,0x73,0x71,0x61, + + 0x61,0x3C,0xEC,0xE0,0x63,0x3C,0x48,0xD7,0x9B,0xEA,0x0F,0xC2,0xD5,0x3D,0x42,0x02, + + 0x07,0x60,0xF1,0x22,0x7F,0x41,0x37,0x65,0xAD,0xD3,0xE6,0x18,0x72,0x15,0xF8,0x10, + + 0x31,0x2C,0x88,0xEF,0xB4,0x2B,0x06,0x87,0x8F,0xE2,0xEE,0xB2,0x58,0x4B,0x1B,0xF0, + + 0xAE,0x2D,0x26,0x96,0xF8,0xA4,0x57,0x87,0x2F,0x53,0x65,0x1D,0xB6,0x57,0xF9,0xC3, + + 0x05,0x2B,0x2E,0x27,0xDF,0x0C,0x47,0x1E,0xC3,0x13,0x1A,0x97,0x09,0xC0,0x1D,0x85, + + 0xCC,0xE7,0xB9,0x50,0xB3,0x7B,0xC7,0xC3,0x40,0x54,0x50,0x14,0x3C,0x15,0xEC,0xA3, + + 0x31,0x7A,0x8E,0x7B,0xE2,0x03,0x10,0x10,0xB0,0x87,0x4C,0x19,0xF4,0xA7,0xDA,0xD0, + + 0xA0,0x8E,0xE0,0x21,0x69,0xC8,0x9A,0xA1,0x67,0x39,0x8F,0x60,0x63,0xE9,0x57,0x7B, + + 0xC4,0x18,0x78,0x97,0x83,0x5A,0xFD,0x78,0x13,0x84,0x7A,0xFA,0x76,0x18,0x76,0xEA, + + 0x28,0xD5,0x73,0xFE,0x13,0x09,0xB5,0xDA,0x44,0xC7,0xD2,0xBC,0xCE,0xAA,0x86,0x75, + + 0xC7,0x98,0x2A,0x7D,0x16,0xEB,0x2F,0x29,0x2B,0x98,0x82,0xC1,0xD0,0x44,0x69,0xF5, + + 0xAF,0x38,0x35,0xE5,0x39,0xA1,0x13,0x33,0x04,0x69,0x30,0x64,0x2B,0x8F,0xD4,0x75, + + 0x4F,0x8B,0xA8,0x5C,0x3C,0x04,0x1D,0x8E,0xF1,0x6F,0x6D,0xA0,0x22,0x46,0x7A,0x7E, + + 0xE7,0xDD,0xF0,0xB1,0xF5,0xDD,0xD5,0xCF,0xBA,0x4F,0x46,0x0C,0x58,0x3C,0xAA,0x46, + + 0x3B,0x0E,0x7B,0xDA,0x4F,0xB0,0x91,0xFE,0x1B,0x2A,0x82,0x59,0xA2,0xE2,0x29,0xB1, + + 0xAF,0x8F,0x58,0xFF,0x61,0x01,0xC4,0xDA,0xC8,0x5E,0x36,0x48,0x72,0x12,0x10,0xA5, + + 0x00,0x22,0x2B,0x43,0x53,0xED,0x53,0x19,0x32,0xC3,0x57,0x8F,0xDD,0x49,0x33,0x11, + + 0x4E,0x98,0x9C,0x75,0x08,0xF2,0x80,0xD1,0x50,0xDF,0x94,0xF7,0x56,0xF9,0xFC,0x61, + + 0x11,0x3C,0x7E,0xB1,0x94,0x1E,0xA9,0x50,0xC9,0x7C,0x82,0x1A,0x8E,0x6A,0xA6,0xF0, + + 0xC2,0x33,0xA6,0xED,0x15,0x1D,0xF5,0xBA,0x8B,0x7F,0x31,0x56,0xC2,0x0D,0x7B,0x22, + + 0x8F,0x3C,0x7B,0x13,0xED,0x52,0x2E,0x51,0x86,0x64,0xBD,0xF0,0x1C,0x90,0x5A,0x6F, + + 0xEC,0x97,0x41,0x67,0x30,0x64,0x61,0xD8,0x56,0x21,0xF7,0x38,0x8A,0xD7,0x91,0xEC, + + 0x01,0x60,0x15,0xF1,0x96,0xCA,0xF7,0xA4,0xB3,0xC4,0x7F,0x23,0xF4,0xF8,0x6D,0xEA, + + 0x4F,0xC5,0x20,0xE0,0x1A,0xBB,0xA1,0xDD,0xC0,0x94,0x8E,0x1C,0x01,0xB4,0xB9,0x28, + + 0xA1,0x47,0x2D,0xCB,0xA9,0xBA,0xDA,0xDA,0x2F,0xC4,0x6A,0x08,0x74,0xFA,0x33,0x88, + + 0x74,0xF4,0x9E,0x7D,0x0E,0xDD,0x20,0x9F,0xDF,0x95,0xD1,0xDD,0x5A,0x6E,0x50,0xB6, + + 0xC4,0x3A,0xAD,0xDD,0x3B,0x69,0x39,0xCD,0xE0,0xBB,0x0D,0x1A,0x4E,0xB9,0x19,0x3F, + + 0x66,0xD9,0x9F,0x7C,0x86,0xF8,0x9B,0x2E,0x13,0x98,0xFF,0x3E,0x15,0x99,0x49,0x3A, + + 0x46,0xAA,0x09,0x1B,0xED,0x27,0xA8,0x44,0xEB,0x6B,0x13,0x1A,0x28,0x98,0xCE,0xFB, + + 0x00,0x33,0x1D,0xE9,0x9F,0xCD,0xFA,0xF9,0x54,0x54,0x25,0x6A,0x2A,0x8E,0x10,0x7E, + + 0xDB,0x1E,0xC9,0xD8,0xEF,0xD9,0x49,0xD7,0x9F,0x8C,0x4D,0x5A,0x83,0x9E,0xB3,0xB5, + + 0xC4,0xDD,0x18,0xB1,0x88,0x61,0xC2,0xD6,0x5A,0x0F,0x8F,0xC8,0x03,0xF1,0xD8,0x6A, + + 0x76,0xE2,0xD1,0xD9,0xDF,0x3F,0xC8,0x4A,0x1B,0x5C,0x6F,0xFF,0x89,0xCB,0x59,0xE7, + + 0xA5,0x5F,0x40,0x49,0x5A,0x8D,0x2F,0xC2,0xBD,0xC1,0xA8,0xA1,0xEF,0xDD,0x48,0xE8, + + 0xBD,0xFA,0x9E,0x28,0xFA,0xF0,0x66,0x1D,0x3A,0x41,0x58,0xDD,0x38,0x3C,0x00,0x67, + + 0x3F,0xB9,0xD1,0x81,0xAB,0x97,0x95,0x5F,0xA2,0x62,0x87,0x47,0x2F,0xFF,0x30,0xED, + + 0x63,0x43,0x32,0xA4,0xE9,0x8C,0x42,0xD3,0x20,0xBC,0x3C,0xD7,0xD7,0x23,0x3E,0x11, + + 0x12,0x49,0x3C,0x22,0xF9,0x15,0x43,0x12,0x28,0x35,0xF0,0xF6,0xD2,0x6E,0x91,0xE2, + + 0x78,0x07,0xDE,0x36,0xEC,0x88,0xE2,0x37,0x4D,0x29,0x86,0x5C,0x75,0x27,0x3F,0x15, + + 0xBD,0x1B,0xC0,0x23,0x79,0x77,0x2F,0x4C,0xF1,0xB0,0x53,0x94,0xBE,0x66,0x12,0x7E, + + 0xFC,0x1A,0xDC,0xF0,0x64,0xDA,0x99,0x98,0x42,0x4D,0x01,0x8A,0xD5,0x6C,0x8D,0x66, + + 0x3B,0x67,0x95,0x88,0x23,0x5D,0xD2,0xE9,0x5B,0xE3,0x5A,0x57,0x09,0x63,0xB2,0xEB, + + 0x23,0x67,0x31,0xAD,0x25,0x86,0x5A,0xC9,0x3D,0x46,0x20,0xAE,0x11,0x7B,0xBB,0xFA, + + 0xAA,0x1A,0x95,0x35,0x73,0xBB,0x00,0x06,0xA3,0xFB,0x3C,0x6A,0xEB,0xBC,0x52,0x87, + + 0x6C,0x8D,0x1E,0x0C,0xE5,0x2F,0x45,0x04,0xC9,0xE6,0x21,0xAF,0xD9,0x63,0x99,0xFA, + + 0x0C,0x74,0xD0,0x4B,0xE5,0xA1,0x04,0xEC,0x71,0xCB,0xFD,0xE8,0x71,0x71,0xB1,0xAB, + + 0x3F,0x80,0x4C,0x02,0x96,0x4F,0x4F,0x6B,0x66,0x42,0x5E,0xBC,0x0B,0x6E,0x05,0x3A, + + 0xA7,0x8F,0x10,0xB3,0x67,0x35,0x09,0x68,0x69,0xE3,0xED,0x74,0x57,0xE8,0x35,0x70, + + 0x62,0x3E,0x60,0xD8,0x08,0x10,0x69,0x6A,0x68,0x2C,0xC9,0x74,0xFB,0xAE,0x00,0x94, + + 0x13,0xA6,0x2C,0xB4,0xB2,0x34,0x6A,0x9D,0x03,0x70,0x72,0xD2,0xFD,0xF6,0x73,0xE3, + + 0x0B,0xB0,0x0C,0xB5,0xA2,0x2A,0x5A,0x9D,0xE1,0x3F,0xBC,0xB9,0x77,0x4A,0xBF,0x7B, + + 0xB0,0xDF,0x1E,0xE7,0x92,0xDF,0x43,0x9D,0x0B,0x83,0x11,0x65,0xFC,0xB2,0x35,0x6E, + + 0x48,0x10,0x6E,0xE3,0xA3,0xFB,0x8D,0x40,0xDD,0x77,0x78,0x31,0xCA,0xF6,0xB7,0x44, + + 0x14,0x86,0x3E,0xCC,0xCF,0xFB,0xA9,0x64,0x37,0xC5,0x42,0x94,0xF2,0x6B,0x5E,0x6A, + + 0xC8,0x51,0xB3,0xA6,0x59,0x04,0xE6,0x37,0x65,0x6E,0xD4,0xE1,0x51,0x74,0x7B,0xE8, + + 0xCA,0x1B,0xFB,0xE9,0xD2,0x76,0x75,0x61,0xD1,0xA0,0x6C,0x95,0x72,0x60,0x77,0x61, + + 0x17,0xB8,0xB6,0x28,0xB1,0xEC,0x75,0xB1,0xAF,0x15,0x9C,0x33,0xDF,0x73,0xC6,0x61, + + 0x41,0x85,0xDE,0x84,0x3E,0x33,0x48,0x90,0xE9,0xF3,0xDE,0xA9,0x7E,0x43,0x30,0x39, + + 0x49,0x39,0x9A,0x4F,0x0A,0x56,0x27,0xCB,0x44,0xD8,0x0E,0x44,0xF1,0xC2,0x7F,0xAE, + + 0x51,0x15,0xA8,0x09,0x9B,0x3A,0x00,0x1B,0x83,0x8B,0x3A,0x29,0xDB,0x38,0x70,0xEB, + + 0xC3,0x18,0x37,0x63,0xA9,0x76,0xE4,0x4A,0xCB,0xD6,0xB7,0x92,0x90,0x2E,0xE2,0xB6, + + 0x89,0x79,0x73,0x48,0x3D,0x25,0x0B,0x5A,0xCB,0xD4,0x94,0x68,0x41,0xD8,0x31,0x20, + + 0x2B,0x66,0x0E,0x35,0xDB,0x35,0x52,0x64,0x1C,0x08,0xC4,0xFE,0xC8,0x20,0xF8,0x2B, + + 0x43,0x4F,0x78,0x91,0x99,0x2E,0xD7,0x0B,0xA2,0x6F,0x3B,0x82,0x24,0xA3,0x58,0x28, + + 0xEA,0x7C,0x4A,0x1B,0x9B,0x7E,0x80,0x43,0x13,0x16,0xC5,0xFF,0x69,0x77,0x30,0x8A, + + 0xE1,0x06,0x8C,0x22,0x12,0x9B,0xA5,0x42,0x7C,0x4D,0xE2,0xCE,0x8A,0x2D,0x03,0x90, + + 0xCC,0xDC,0xF5,0x59,0x90,0xC0,0x89,0x0E,0xBD,0x70,0x00,0xAD,0x36,0xE5,0xAA,0x43, + + 0x80,0xA2,0x93,0xC7,0x98,0xE0,0x4F,0x96,0x78,0x33,0x4E,0xDC,0xE7,0xED,0x11,0xD4, + + 0x47,0x63,0x01,0x33,0x93,0x98,0x0A,0x0B,0x3A,0x81,0x79,0xDE,0xB3,0xE9,0xCC,0xD1, + + 0x23,0x8C,0x9E,0xF7,0x29,0xA6,0x0E,0xD2,0x2E,0xC9,0x72,0x46,0x1A,0x84,0x7B,0x63, + + 0xA6,0x7A,0xB3,0xB4,0xF6,0x5A,0x03,0x09,0x27,0xD3,0xA1,0xE8,0xB2,0x63,0xE1,0x02, + + 0x11,0x2B,0x38,0x68,0xED,0xA6,0x0E,0x10,0xE8,0xA5,0x31,0x86,0xE0,0x88,0x57,0x7E, + + 0xA9,0x58,0x29,0x56,0xE5,0x0A,0x86,0x09,0xA5,0x43,0xFD,0xFF,0x32,0x61,0x2A,0x0E, + + 0x04,0x14,0x47,0x8A,0x3F,0x14,0x3F,0xCC,0xAD,0x69,0xA0,0x51,0xD1,0x8A,0x28,0xF8, + + 0x3E,0x5F,0xF2,0x9A,0x76,0x98,0x3E,0x8B,0x3D,0x66,0x02,0xA1,0x5B,0xD2,0x43,0x58, + + 0x39,0x87,0x63,0xEF,0x9C,0xEA,0x24,0xD8,0xB4,0x41,0x4C,0x68,0xEF,0xB7,0xA9,0x6D, + + 0x9F,0x80,0xD9,0xEE,0xA9,0xB6,0x28,0x49,0xA5,0x3A,0xEA,0xFF,0x9B,0xF0,0xDD,0x7A, + + 0xBF,0x73,0x73,0x7F,0xBF,0x53,0x89,0x9A,0xCF,0x7D,0xF2,0xAE,0x5A,0xC8,0x54,0x76, + + 0xB0,0xD6,0xF4,0x3C,0xE0,0xC8,0x29,0x41,0xCB,0x52,0x03,0x76,0xFA,0x92,0xD8,0xFB, + + 0x6C,0x51,0xDD,0x66,0x98,0x95,0x0D,0x6D,0xAD,0xEA,0xFF,0x87,0x23,0xA3,0x6B,0xA2, + + 0x0E,0x14,0xD3,0xB7,0x45,0x53,0x45,0x1E,0xA7,0xA6,0x17,0xEC,0xEF,0x42,0x5F,0x7F, + + 0x26,0x4B,0xDB,0xDC,0xC1,0x2C,0x4A,0x9F,0x8D,0x21,0xAE,0x5B,0xE6,0x2B,0x80,0xE0, + + 0xFB,0x2E,0xEF,0xED,0x5D,0xBC,0x6D,0xC1,0x15,0x50,0x86,0x45,0x49,0x5E,0x90,0x07, + + 0xA3,0x8B,0x9A,0x1E,0x97,0x92,0x99,0x30,0xC1,0xD8,0x10,0xA3,0xA9,0xAF,0x17,0x0D, + + 0x56,0x3E,0x52,0xED,0x9B,0x6C,0x3F,0x4C,0x04,0x70,0xAE,0x5F,0x08,0xBC,0xBB,0x80, + + 0x51,0x43,0xDE,0x2E,0xEC,0x7B,0x2F,0xE2,0x60,0x9E,0x74,0x20,0x46,0xBA,0x35,0x30, + + 0x82,0x33,0x7C,0x90,0x17,0xF9,0x28,0xE9,0x45,0x41,0x05,0xFE,0x92,0x99,0xA5,0x9B, + + 0xED,0xFA,0xE4,0x31,0x33,0xB7,0x6C,0xFC,0xC0,0x02,0xE5,0x0F,0x2C,0x3B,0xFE,0xA0, + + 0xDF,0xD5,0x79,0x91,0x93,0xFB,0xEA,0x77,0xDC,0xF6,0x9F,0xE6,0x42,0x71,0x72,0xBB, + + 0x8D,0x67,0x98,0xA2,0x40,0x17,0xA3,0x54,0x07,0x70,0xB7,0x48,0x0B,0xAD,0x74,0x1E, + + 0x2B,0xA2,0xD0,0x99,0x9C,0xFC,0x8B,0x86,0xD9,0x68,0x47,0x45,0x7B,0x21,0x19,0x2B, + + 0x82,0x45,0x07,0xFC,0x84,0x69,0x37,0xB8,0xCE,0x12,0x68,0x15,0xC3,0x70,0x32,0xE1, + + 0x0E,0xFE,0x11,0x1A,0x0A,0xDE,0x08,0x83,0x1D,0xAA,0x73,0x57,0x52,0xB6,0x3B,0x7A, + + 0x2D,0x7C,0xF7,0x26,0x94,0xF1,0xC1,0x4E,0x9A,0xFF,0xF6,0xAE,0x6B,0xFD,0x50,0xE6, + + 0x88,0x30,0x90,0xF6,0xB2,0x3B,0x43,0x84,0xC8,0xCD,0x6A,0xC0,0x13,0x08,0x59,0xF2, + + 0x09,0x8E,0x99,0xFA,0xAE,0xF3,0xB7,0xEE,0x76,0xC5,0x65,0xA2,0xDC,0x5F,0xFE,0xEA, + + 0xDF,0x30,0x3F,0xAC,0xD3,0x36,0xC0,0x1D,0xCB,0xC4,0xEE,0x07,0xFF,0x44,0x84,0x84, + + 0x08,0xA7,0x00,0xE6,0x92,0x28,0x10,0x20,0x40,0xCD,0xB7,0x08,0x80,0x51,0xE4,0x94, + + 0x3A,0xF0,0x00,0x29,0xB2,0x27,0x64,0xD6,0x65,0x5A,0x29,0xD6,0xFD,0xEA,0x46,0x85, + + 0x84,0x90,0x08,0x95,0x33,0x24,0x48,0xAF,0x27,0x59,0xF1,0x27,0xF0,0xE9,0x01,0x15, + + 0x01,0xB2,0x01,0x29,0x70,0x2C,0x67,0x57,0x81,0x0C,0xD7,0xD7,0x7D,0xBE,0x38,0x42, + + 0x18,0x89,0x44,0x4F,0xC6,0x47,0x51,0xE4,0x02,0x0D,0xD0,0x64,0x52,0x64,0x5E,0x11, + + 0xE8,0xB6,0x79,0xF1,0x68,0x05,0x7F,0x58,0x93,0xA4,0xD8,0x74,0x53,0x65,0x3A,0xBA, + + 0x6B,0xB5,0x66,0xF5,0x2E,0xA5,0xF6,0x4D,0x16,0x77,0xD1,0x65,0xD2,0x66,0x77,0xE9, + + 0xE9,0x0F,0x7E,0xE1,0x95,0x8C,0xEA,0x5C,0x3F,0xD6,0xD9,0x75,0xD3,0x67,0x5B,0x9F, + + 0xED,0x64,0xDC,0xBD,0x08,0x57,0xD2,0xC9,0xD3,0x0A,0xEA,0x0B,0xA5,0x67,0xD0,0x1C, + + 0x89,0xA8,0xEB,0xE3,0x1F,0x09,0xBA,0xD0,0xA2,0x04,0x25,0xDE,0x22,0xA9,0x61,0x0D, + + 0x8B,0x3B,0x5A,0x4F,0x63,0xB1,0x4E,0xCD,0xCE,0xD2,0x27,0x53,0x7B,0x0F,0xCB,0xF0, + + 0x41,0x67,0xD8,0xE4,0x89,0xB0,0xF7,0xAB,0xD9,0x43,0x44,0x1D,0xAE,0x6F,0x3C,0xF0, + + 0xF3,0xAF,0x77,0x5D,0x7C,0x28,0x92,0x81,0x22,0xB9,0xD2,0x6C,0x5A,0x6C,0x1C,0xF4, + + 0xE0,0x5E,0x91,0x5C,0x1D,0x67,0xF9,0x41,0x97,0x9C,0xDA,0x7C,0x5B,0x6D,0x96,0xBA, + + 0xB4,0x93,0x77,0x69,0x42,0x7D,0x05,0xED,0xF1,0x48,0xD3,0x6D,0xDA,0x6E,0x75,0x3C, + + 0xE3,0xFC,0xD2,0x42,0xED,0xFB,0x65,0x41,0xA3,0x9E,0xDB,0x7D,0xDB,0x6F,0x00,0x04, + + 0x1B,0x95,0x6B,0x66,0xB2,0x18,0x66,0xA9,0x78,0xDB,0xAA,0xE0,0xFD,0xD6,0xB6,0xF0, + + 0x25,0x5F,0xF4,0xF6,0x70,0xB1,0xC4,0x34,0x30,0x15,0x4B,0x85,0xD0,0x8E,0x0D,0x90, + + 0x93,0xF4,0x21,0xE7,0xF3,0xDD,0xEA,0x43,0xE6,0x69,0x0D,0x65,0x91,0xDF,0x9D,0x6D, + + 0x1F,0xE8,0xF5,0xB1,0x50,0x9C,0xDD,0x54,0xD8,0x11,0xA3,0x09,0xF7,0x48,0x24,0xC2, + + 0xFF,0x19,0xC4,0xC4,0x32,0x34,0x50,0x0C,0x62,0xD9,0xD4,0xE4,0x72,0x74,0x70,0x41, + + 0xDB,0xBC,0xCC,0xD4,0x33,0x35,0x02,0xDF,0xB7,0xE4,0xDC,0xF4,0x73,0x75,0x3B,0x70, + + 0x81,0x56,0xC5,0xC5,0xB2,0x36,0x2A,0xDE,0x84,0x14,0xD5,0xE5,0xF2,0x76,0x7E,0xA1, + + 0xDC,0x01,0xCD,0xD5,0xB3,0x37,0xFA,0xCD,0x6E,0xFA,0xDD,0xF5,0xF3,0x77,0x46,0xFB, + + 0x41,0xB9,0x95,0x7F,0x04,0x97,0xDE,0xE7,0x4A,0x59,0x18,0xCE,0x93,0x70,0xDA,0x76, + + 0xC8,0xA6,0xAA,0x61,0xB8,0x8C,0x4E,0x34,0x25,0x42,0xA0,0x09,0x58,0x98,0x3F,0x66, + + 0x41,0x93,0x16,0x7E,0x80,0xE1,0x57,0x89,0xC4,0xEA,0x23,0xCF,0x13,0x52,0x8F,0xC5, + + 0xA6,0xC0,0x91,0xA7,0xD8,0x79,0x43,0xCB,0x4E,0x4B,0x2C,0xFD,0x05,0x53,0x9D,0xC7, + + 0x2C,0x56,0xC6,0xCC,0x3A,0x3C,0xC5,0x7B,0x4C,0xF1,0xD6,0xEC,0x7A,0x7C,0x5B,0xC3, + + 0x1B,0x89,0xCE,0xDC,0x3B,0x3D,0xDC,0xC6,0x41,0xA8,0xDE,0xFC,0x7B,0x7D,0x5E,0xD6, + + 0x9E,0xCA,0xC7,0xCD,0xBA,0x3E,0x40,0x7A,0xC0,0x54,0xD7,0xED,0xFA,0x7E,0xD9,0x5D, + + 0x90,0x3E,0xCF,0xDD,0xBB,0x3F,0x8F,0xFB,0xA1,0x31,0xDF,0xFD,0xFB,0x7F,0xE0,0xEB, + + 0x78,0x8A,0xA0,0xFB,0x14,0x7B,0x31,0xA6,0x6B,0xF9,0x70,0xE3,0xB8,0x1D,0x75,0x05, + + 0x88,0x9A,0x17,0x4A,0x34,0xB1,0x2C,0x16,0x43,0xEA,0x2A,0xD4,0x71,0x55,0x62,0xFA, + + 0xC4,0xC0,0x89,0x83,0x91,0x52,0xF1,0xD3,0x9B,0x8C,0xCB,0x37,0x56,0xE6,0x90,0x97, + + 0xBE,0xA0,0xC9,0x56,0x78,0x28,0x54,0xCF,0x4D,0x38,0x6F,0x39,0xE7,0x97,0x1E,0xFF, + + 0xE7,0x27,0xB7,0x5D,0x64,0x30,0x0E,0xC2,0xAF,0xB5,0xF0,0x66,0x56,0xE4,0xE0,0x71, + + 0x86,0x70,0x57,0x19,0xF6,0xFA,0xD4,0x01,0x37,0x63,0xF8,0x76,0x57,0xE5,0xB2,0xB0, + + 0xF0,0x26,0x34,0x78,0xA0,0xDA,0x27,0x5A,0x2D,0x37,0xF1,0x67,0xD6,0xE6,0xF1,0x1C, + + 0x7A,0xFB,0x94,0xBD,0x6B,0x74,0xEA,0x80,0xE1,0x6A,0xF9,0x77,0xD7,0xE7,0x6A,0x17, + + 0x81,0xD5,0xD9,0xEC,0x9C,0x77,0x1A,0xAE,0x74,0xE7,0xE7,0x5C,0xB7,0x5B,0xEA,0xF3, + + 0x93,0x8D,0xA2,0x9B,0xBC,0x23,0x55,0xBE,0x0D,0x97,0xC4,0x92,0xB6,0x3A,0x41,0x0A, + + 0x8D,0xBA,0x63,0xDF,0x65,0xAC,0xF3,0xC2,0x83,0xD1,0xCD,0x97,0x37,0x99,0x29,0xF3, + + 0x43,0x40,0x5C,0xFD,0x3C,0x21,0x5B,0x70,0x76,0xC6,0x1C,0x82,0x36,0xA3,0x58,0xA4, + + 0xB5,0x93,0x22,0x4B,0x86,0xED,0xE7,0xF9,0x36,0x63,0xF2,0x6E,0x5E,0xEC,0x5D,0xF7, + + 0xFF,0xDE,0xEA,0x5E,0x1F,0xAD,0x44,0xCE,0xC2,0x6B,0xFA,0x7E,0x5F,0xED,0xD4,0xF2, + + 0x7A,0x1D,0xE3,0x4F,0x9E,0xAE,0x27,0x19,0x25,0x0D,0xF3,0x6F,0xDE,0xEE,0xAB,0x5E, + + 0x17,0xCE,0xEB,0x5F,0x9F,0xAF,0xE7,0xBB,0x88,0xB4,0xFB,0x7F,0xDF,0xEF,0x00,0x7F, + + 0xA5,0xD2,0x6C,0xEE,0xE8,0x21,0x36,0x44,0xE1,0x22,0x74,0x4F,0x1C,0x25,0xE2,0x7A, + + 0x98,0xD3,0x8F,0xBF,0xC0,0xBD,0x94,0x8D,0x84,0x0E,0xC3,0x32,0x4E,0x97,0x30,0x60, + + 0xA2,0xA9,0x06,0xAA,0x6C,0xE3,0xA5,0x65,0xBA,0x93,0xE4,0x98,0xCE,0x6D,0x70,0x43, + + 0x96,0x2D,0x95,0xE8,0x34,0xBE,0x5D,0xF2,0x69,0xDE,0x92,0xC8,0x2C,0x6F,0xD3,0xEE, + + 0xD2,0xA5,0xE4,0xC6,0x36,0xB4,0x4A,0xDE,0xAC,0xD7,0xF4,0xE6,0x76,0xF4,0xF9,0xCD, + + 0x57,0xF9,0xEC,0xD6,0x37,0xB5,0x74,0xE6,0x93,0x24,0xFC,0xF6,0x77,0xF5,0xA5,0xC6, + + 0x3E,0x42,0xE5,0xC7,0xB6,0xB6,0x4B,0xDA,0x2C,0x27,0xF5,0xE7,0xF6,0xF6,0x53,0xEB, + + 0x65,0x91,0xED,0xD7,0xB7,0xB7,0xCA,0x53,0x67,0x57,0xFD,0xF7,0xF7,0xF7,0xE6,0x63, + + 0x6F,0x9E,0x66,0x67,0x14,0xB6,0x3C,0xA2,0xCF,0xDE,0x0D,0xF4,0x95,0x0B,0x85,0x18, + + 0xE0,0x16,0x55,0x1A,0x31,0x8D,0x5E,0xFA,0xC3,0xD6,0x6D,0x3A,0x46,0x11,0x89,0x69, + + 0xAA,0x1A,0x9F,0x70,0x3F,0xB7,0x3F,0xE3,0x0D,0xD5,0xA1,0xCD,0x03,0x57,0xEF,0x8B, + + 0x48,0x9B,0x08,0xA7,0x69,0xCA,0x5F,0xFB,0xF0,0x50,0x84,0x5D,0x51,0x46,0x58,0xE7, + + 0xEC,0xBC,0xE6,0xCE,0x3E,0xBC,0xC5,0xD3,0x92,0x0D,0xF6,0xEE,0x7E,0xFC,0xDD,0xF7, + + 0xD3,0x0C,0xEE,0xDE,0x3F,0xBD,0xEF,0xC4,0x57,0x68,0xFE,0xFE,0x7F,0xFD,0x2F,0xCF, + + 0x07,0x3C,0xE7,0xCF,0xBE,0xBE,0xB7,0x02,0x86,0x2B,0xF7,0xEF,0xFE,0xFE,0x55,0x21, + + 0x54,0x84,0xEF,0xDF,0xBF,0xBF,0x6E,0xC1,0x83,0x9D,0xFF,0xFF,0xFF,0xFF,0x60,0x02, + + 0xD5,0x0D,0x40,0xED,0xDB,0x7D,0xBC,0xB3,0x65,0x48,0xA7,0x55,0xA0,0xE9,0x1C,0x30, + + 0xF9,0xA8,0xF0,0x33,0xE8,0x2E,0x84,0x0F,0x2F,0x94,0x0E,0x0B,0x61,0xFA,0x7F,0xB0, + + 0xA3,0x42,0x41,0xEC,0xEE,0xBF,0x91,0x00,0xE0,0xF7,0x01,0xDC,0xD4,0xB7,0x3A,0x61, + + 0xFE,0x15,0x8F,0xBC,0x11,0xD4,0xCB,0xB5,0xAE,0x81,0x99,0x31,0xD5,0xF1,0x40,0x40, + + 0x02,0x04,0xC0,0x44,0x12,0x24,0x50,0x60,0x42,0x44,0xD0,0x64,0x52,0x64,0x48,0x50, + + 0x03,0x05,0xC8,0x54,0x13,0x25,0x58,0x70,0x43,0x45,0xD8,0x74,0x53,0x65,0x41,0x41, + + 0x82,0x06,0xC1,0x45,0x92,0x26,0x51,0x61,0xC2,0x46,0xD1,0x65,0xD2,0x66,0x49,0x51, + + 0x83,0x07,0xC9,0x55,0x93,0x27,0x59,0x71,0xC3,0x47,0xD9,0x75,0xD3,0x67,0xD9,0x07, + + 0x0E,0x42,0x42,0xE5,0xA4,0x89,0xB1,0x11,0x94,0x99,0xE9,0xD7,0xAF,0x2A,0x1F,0x03, + + 0x39,0x9D,0xDC,0xA8,0xF2,0xEA,0xCA,0x4B,0x31,0xEF,0x1A,0x2C,0x04,0x27,0x1A,0x16, + + 0xBC,0xDE,0x55,0xFE,0xF6,0xF7,0xBF,0x5A,0xBC,0xEC,0x13,0xD3,0xEB,0x7A,0x9D,0x9D, + + 0xB2,0x2A,0x8D,0xB5,0x91,0xF0,0x4F,0xF9,0x8D,0x9E,0x8B,0xFB,0xBD,0xE6,0x42,0x48, + + 0x0A,0x0C,0xC2,0x4C,0x1A,0x2C,0x52,0x68,0x4A,0x4C,0xD2,0x6C,0x5A,0x6C,0x4A,0x58, + + 0x0B,0x0D,0xCA,0x5C,0x1B,0x2D,0x5A,0x78,0x4B,0x4D,0xDA,0x7C,0x5B,0x6D,0x43,0x49, + + 0x8A,0x0E,0xC3,0x4D,0x9A,0x2E,0x53,0x69,0xCA,0x4E,0xD3,0x6D,0xDA,0x6E,0x4B,0x59, + + 0x8B,0x0F,0xCB,0x5D,0x9B,0x2F,0x5B,0x79,0xCB,0x4F,0xDB,0x7D,0xDB,0x6F,0x05,0x04, + + 0x60,0x59,0xFC,0x7A,0xCD,0x91,0x01,0x9B,0x50,0xC5,0x6B,0xD7,0x04,0x86,0x2B,0xB8, + + 0xF1,0xF0,0x77,0x64,0xA3,0xC0,0xBF,0x15,0xBD,0xD2,0x8B,0x3E,0x55,0x61,0xA2,0xAD, + + 0x74,0x23,0xBD,0x7A,0x45,0x51,0x83,0x25,0xEC,0x66,0xCF,0xA7,0x43,0xDB,0xBE,0xBC, + + 0x5D,0x82,0xF3,0x93,0xD2,0x47,0x27,0x42,0xDB,0xFE,0xA7,0x81,0x16,0x61,0x44,0xC0, + + 0x22,0x14,0xC4,0xC4,0x32,0x34,0x54,0xE0,0x62,0x54,0xD4,0xE4,0x72,0x74,0x4C,0xD0, + + 0x23,0x15,0xCC,0xD4,0x33,0x35,0x5C,0xF0,0x63,0x55,0xDC,0xF4,0x73,0x75,0x45,0xC1, + + 0xA2,0x16,0xC5,0xC5,0xB2,0x36,0x55,0xE1,0xE2,0x56,0xD5,0xE5,0xF2,0x76,0x4D,0xD1, + + 0xA3,0x17,0xCD,0xD5,0xB3,0x37,0x5D,0xF1,0xE3,0x57,0xDD,0xF5,0xF3,0x77,0xC6,0x61, + + 0x40,0xED,0x55,0x7F,0xB4,0x79,0x43,0xEF,0xA2,0x31,0xCC,0xAD,0x1E,0xB7,0xAD,0xA1, + + 0xF5,0xC8,0xB2,0xFA,0xCA,0x29,0xDE,0x51,0xA2,0xC4,0xCF,0x5E,0x99,0xD8,0x51,0x0D, + + 0x93,0x1C,0x47,0x9D,0x2F,0x21,0x5F,0x05,0x9B,0x5A,0x07,0xDE,0xD5,0xDE,0x31,0xA1, + + 0xC1,0xCA,0x37,0x66,0xA9,0x76,0xDF,0x50,0x97,0x56,0xCA,0x42,0xDD,0x7B,0x46,0xC8, + + 0x2A,0x1C,0xC6,0xCC,0x3A,0x3C,0x56,0xE8,0x6A,0x5C,0xD6,0xEC,0x7A,0x7C,0x4E,0xD8, + + 0x2B,0x1D,0xCE,0xDC,0x3B,0x3D,0x5E,0xF8,0x6B,0x5D,0xDE,0xFC,0x7B,0x7D,0x47,0xC9, + + 0xAA,0x1E,0xC7,0xCD,0xBA,0x3E,0x57,0xE9,0xEA,0x5E,0xD7,0xED,0xFA,0x7E,0x4F,0xD9, + + 0xAB,0x1F,0xCF,0xDD,0xBB,0x3F,0x5F,0xF9,0xEB,0x5F,0xDF,0xFD,0xFB,0x7F,0x97,0x2E, + + 0xF0,0xB1,0x30,0x38,0x75,0x55,0x64,0x1D,0x62,0xC4,0xE9,0xB1,0xB3,0xA1,0xBD,0x0D, + + 0x75,0xED,0x01,0x68,0x80,0x2C,0x5E,0x92,0xAC,0x70,0xDA,0x37,0x71,0x4C,0xE1,0x06, + + 0x1C,0x56,0xBF,0x48,0x69,0xDE,0x77,0xE4,0x2D,0x13,0x1D,0xCF,0x0E,0x2F,0x17,0x2B, + + 0x47,0x85,0xD4,0xFD,0xB1,0xB8,0x5F,0x0E,0xC4,0x03,0x25,0xC6,0x76,0xA3,0x60,0x42, + + 0x06,0x84,0xE0,0x46,0x16,0xA4,0x70,0x62,0x46,0xC4,0xF0,0x66,0x56,0xE4,0x68,0x52, + + 0x07,0x85,0xE8,0x56,0x17,0xA5,0x78,0x72,0x47,0xC5,0xF8,0x76,0x57,0xE5,0x61,0x43, + + 0x86,0x86,0xE1,0x47,0x96,0xA6,0x71,0x63,0xC6,0xC6,0xF1,0x67,0xD6,0xE6,0x69,0x53, + + 0x87,0x87,0xE9,0x57,0x97,0xA7,0x79,0x73,0xC7,0xC7,0xF9,0x77,0xD7,0xE7,0x1C,0x27, + + 0xCE,0xA8,0xDA,0x68,0xC2,0x75,0x81,0x17,0xB0,0xCB,0x80,0x10,0xFF,0xA9,0x99,0x37, + + 0xF1,0x18,0xEB,0x78,0x7C,0xAD,0x8D,0x06,0x4B,0xF2,0xC4,0x38,0xBC,0x6A,0x6B,0x0F, + + 0xA4,0x8B,0xB9,0x0D,0x77,0xA5,0x13,0x3B,0x38,0x7B,0xE9,0xD5,0xB4,0xDB,0x11,0xE1, + + 0x76,0x90,0xCD,0xFD,0xB9,0x08,0x2D,0x04,0xF9,0x1E,0x92,0xCC,0x51,0xAA,0x62,0x4A, + + 0x0E,0x8C,0xE2,0x4E,0x1E,0xAC,0x72,0x6A,0x4E,0xCC,0xF2,0x6E,0x5E,0xEC,0x6A,0x5A, + + 0x0F,0x8D,0xEA,0x5E,0x1F,0xAD,0x7A,0x7A,0x4F,0xCD,0xFA,0x7E,0x5F,0xED,0x63,0x4B, + + 0x8E,0x8E,0xE3,0x4F,0x9E,0xAE,0x73,0x6B,0xCE,0xCE,0xF3,0x6F,0xDE,0xEE,0x6B,0x5B, + + 0x8F,0x8F,0xEB,0x5F,0x9F,0xAF,0x7B,0x7B,0xCF,0xCF,0xFB,0x7F,0xDF,0xEF,0x5A,0x22, + + 0xCD,0xE1,0x5F,0x8E,0x91,0x4F,0xCF,0x85,0xC5,0xAF,0xB4,0xA6,0x74,0xF0,0x80,0xE1, + + 0x55,0x37,0xEC,0xAB,0xDE,0xF5,0xE8,0x8D,0x07,0x6E,0xBC,0xB6,0x75,0xF1,0x73,0xBA, + + 0x4F,0x63,0x35,0x22,0x43,0x39,0xF5,0x4A,0xD4,0x07,0xB5,0xA7,0xF4,0xF2,0xBE,0x60, + + 0x83,0x3E,0xF7,0xB8,0xC3,0x1C,0xFD,0xB7,0x12,0x5E,0xBD,0xB7,0xF5,0xF3,0x64,0xC2, + + 0x26,0x94,0xE4,0xC6,0x36,0xB4,0x74,0xE2,0x66,0xD4,0xF4,0xE6,0x76,0xF4,0x6C,0xD2, + + 0x27,0x95,0xEC,0xD6,0x37,0xB5,0x7C,0xF2,0x67,0xD5,0xFC,0xF6,0x77,0xF5,0x65,0xC3, + + 0xA6,0x96,0xE5,0xC7,0xB6,0xB6,0x75,0xE3,0xE6,0xD6,0xF5,0xE7,0xF6,0xF6,0x6D,0xD3, + + 0xA7,0x97,0xED,0xD7,0xB7,0xB7,0x7D,0xF3,0xE7,0xD7,0xFD,0xF7,0xF7,0xF7,0xB3,0x19, + + 0x54,0x37,0x02,0xAA,0x4B,0x9C,0xCB,0x46,0x64,0xE7,0xB6,0xAE,0x7C,0xF8,0x70,0x2F, + + 0xBF,0x14,0x73,0x3D,0x56,0x48,0x11,0xC5,0xB4,0x45,0xBE,0xBE,0x7D,0xF9,0x73,0x7A, + + 0xCA,0xEE,0x78,0xCD,0x8B,0xE6,0x4E,0x2F,0xE0,0xEE,0xB7,0xAF,0xFC,0xFA,0x51,0x33, + + 0x44,0x88,0x06,0x6E,0x9F,0x4E,0x84,0xE1,0xDA,0xDB,0xBF,0xBF,0xFD,0xFB,0x66,0xCA, + + 0x2E,0x9C,0xE6,0xCE,0x3E,0xBC,0x76,0xEA,0x6E,0xDC,0xF6,0xEE,0x7E,0xFC,0x6E,0xDA, + + 0x2F,0x9D,0xEE,0xDE,0x3F,0xBD,0x7E,0xFA,0x6F,0xDD,0xFE,0xFE,0x7F,0xFD,0x67,0xCB, + + 0xAE,0x9E,0xE7,0xCF,0xBE,0xBE,0x77,0xEB,0xEE,0xDE,0xF7,0xEF,0xFE,0xFE,0x6F,0xDB, + + 0xAF,0x9F,0xEF,0xDF,0xBF,0xBF,0x7F,0xFB,0xEF,0xDF,0xFF,0xFF,0xFF,0xFF,0x00,0x00, + + 0x00,0x00,0x80,0x04,0x10,0x20,0x10,0x20,0x40,0x40,0x90,0x24,0x50,0x60,0x08,0x10, + + 0x01,0x01,0x88,0x14,0x11,0x21,0x18,0x30,0x41,0x41,0x98,0x34,0x51,0x61,0x01,0x01, + + 0x80,0x02,0x81,0x05,0x90,0x22,0x11,0x21,0xC0,0x42,0x91,0x25,0xD0,0x62,0x09,0x11, + + 0x81,0x03,0x89,0x15,0x91,0x23,0x19,0x31,0xC1,0x43,0x99,0x35,0xD1,0x63,0x40,0x40, + + 0x02,0x04,0xC0,0x44,0x12,0x24,0x50,0x60,0x42,0x44,0xD0,0x64,0x52,0x64,0x48,0x50, + + 0x03,0x05,0xC8,0x54,0x13,0x25,0x58,0x70,0x43,0x45,0xD8,0x74,0x53,0x65,0x41,0x41, + + 0x82,0x06,0xC1,0x45,0x92,0x26,0x51,0x61,0xC2,0x46,0xD1,0x65,0xD2,0x66,0x49,0x51, + + 0x83,0x07,0xC9,0x55,0x93,0x27,0x59,0x71,0xC3,0x47,0xD9,0x75,0xD3,0x67,0x02,0x08, + + 0x08,0x08,0x82,0x0C,0x18,0x28,0x12,0x28,0x48,0x48,0x92,0x2C,0x58,0x68,0x0A,0x18, + + 0x09,0x09,0x8A,0x1C,0x19,0x29,0x1A,0x38,0x49,0x49,0x9A,0x3C,0x59,0x69,0x03,0x09, + + 0x88,0x0A,0x83,0x0D,0x98,0x2A,0x13,0x29,0xC8,0x4A,0x93,0x2D,0xD8,0x6A,0x0B,0x19, + + 0x89,0x0B,0x8B,0x1D,0x99,0x2B,0x1B,0x39,0xC9,0x4B,0x9B,0x3D,0xD9,0x6B,0x42,0x48, + + 0x0A,0x0C,0xC2,0x4C,0x1A,0x2C,0x52,0x68,0x4A,0x4C,0xD2,0x6C,0x5A,0x6C,0x4A,0x58, + + 0x0B,0x0D,0xCA,0x5C,0x1B,0x2D,0x5A,0x78,0x4B,0x4D,0xDA,0x7C,0x5B,0x6D,0x43,0x49, + + 0x8A,0x0E,0xC3,0x4D,0x9A,0x2E,0x53,0x69,0xCA,0x4E,0xD3,0x6D,0xDA,0x6E,0x4B,0x59, + + 0x8B,0x0F,0xCB,0x5D,0x9B,0x2F,0x5B,0x79,0xCB,0x4F,0xDB,0x7D,0xDB,0x6F,0x04,0x80, + + 0x20,0x10,0x84,0x84,0x30,0x30,0x14,0xA0,0x60,0x50,0x94,0xA4,0x70,0x70,0x0C,0x90, + + 0x21,0x11,0x8C,0x94,0x31,0x31,0x1C,0xB0,0x61,0x51,0x9C,0xB4,0x71,0x71,0x05,0x81, + + 0xA0,0x12,0x85,0x85,0xB0,0x32,0x15,0xA1,0xE0,0x52,0x95,0xA5,0xF0,0x72,0x0D,0x91, + + 0xA1,0x13,0x8D,0x95,0xB1,0x33,0x1D,0xB1,0xE1,0x53,0x9D,0xB5,0xF1,0x73,0x44,0xC0, + + 0x22,0x14,0xC4,0xC4,0x32,0x34,0x54,0xE0,0x62,0x54,0xD4,0xE4,0x72,0x74,0x4C,0xD0, + + 0x23,0x15,0xCC,0xD4,0x33,0x35,0x5C,0xF0,0x63,0x55,0xDC,0xF4,0x73,0x75,0x45,0xC1, + + 0xA2,0x16,0xC5,0xC5,0xB2,0x36,0x55,0xE1,0xE2,0x56,0xD5,0xE5,0xF2,0x76,0x4D,0xD1, + + 0xA3,0x17,0xCD,0xD5,0xB3,0x37,0x5D,0xF1,0xE3,0x57,0xDD,0xF5,0xF3,0x77,0x06,0x88, + + 0x28,0x18,0x86,0x8C,0x38,0x38,0x16,0xA8,0x68,0x58,0x96,0xAC,0x78,0x78,0x0E,0x98, + + 0x29,0x19,0x8E,0x9C,0x39,0x39,0x1E,0xB8,0x69,0x59,0x9E,0xBC,0x79,0x79,0x07,0x89, + + 0xA8,0x1A,0x87,0x8D,0xB8,0x3A,0x17,0xA9,0xE8,0x5A,0x97,0xAD,0xF8,0x7A,0x0F,0x99, + + 0xA9,0x1B,0x8F,0x9D,0xB9,0x3B,0x1F,0xB9,0xE9,0x5B,0x9F,0xBD,0xF9,0x7B,0x46,0xC8, + + 0x2A,0x1C,0xC6,0xCC,0x3A,0x3C,0x56,0xE8,0x6A,0x5C,0xD6,0xEC,0x7A,0x7C,0x4E,0xD8, + + 0x2B,0x1D,0xCE,0xDC,0x3B,0x3D,0x5E,0xF8,0x6B,0x5D,0xDE,0xFC,0x7B,0x7D,0x47,0xC9, + + 0xAA,0x1E,0xC7,0xCD,0xBA,0x3E,0x57,0xE9,0xEA,0x5E,0xD7,0xED,0xFA,0x7E,0x4F,0xD9, + + 0xAB,0x1F,0xCF,0xDD,0xBB,0x3F,0x5F,0xF9,0xEB,0x5F,0xDF,0xFD,0xFB,0x7F,0x20,0x02, + + 0x04,0x80,0xA0,0x06,0x14,0xA0,0x30,0x22,0x44,0xC0,0xB0,0x26,0x54,0xE0,0x28,0x12, + + 0x05,0x81,0xA8,0x16,0x15,0xA1,0x38,0x32,0x45,0xC1,0xB8,0x36,0x55,0xE1,0x21,0x03, + + 0x84,0x82,0xA1,0x07,0x94,0xA2,0x31,0x23,0xC4,0xC2,0xB1,0x27,0xD4,0xE2,0x29,0x13, + + 0x85,0x83,0xA9,0x17,0x95,0xA3,0x39,0x33,0xC5,0xC3,0xB9,0x37,0xD5,0xE3,0x60,0x42, + + 0x06,0x84,0xE0,0x46,0x16,0xA4,0x70,0x62,0x46,0xC4,0xF0,0x66,0x56,0xE4,0x68,0x52, + + 0x07,0x85,0xE8,0x56,0x17,0xA5,0x78,0x72,0x47,0xC5,0xF8,0x76,0x57,0xE5,0x61,0x43, + + 0x86,0x86,0xE1,0x47,0x96,0xA6,0x71,0x63,0xC6,0xC6,0xF1,0x67,0xD6,0xE6,0x69,0x53, + + 0x87,0x87,0xE9,0x57,0x97,0xA7,0x79,0x73,0xC7,0xC7,0xF9,0x77,0xD7,0xE7,0x22,0x0A, + + 0x0C,0x88,0xA2,0x0E,0x1C,0xA8,0x32,0x2A,0x4C,0xC8,0xB2,0x2E,0x5C,0xE8,0x2A,0x1A, + + 0x0D,0x89,0xAA,0x1E,0x1D,0xA9,0x3A,0x3A,0x4D,0xC9,0xBA,0x3E,0x5D,0xE9,0x23,0x0B, + + 0x8C,0x8A,0xA3,0x0F,0x9C,0xAA,0x33,0x2B,0xCC,0xCA,0xB3,0x2F,0xDC,0xEA,0x2B,0x1B, + + 0x8D,0x8B,0xAB,0x1F,0x9D,0xAB,0x3B,0x3B,0xCD,0xCB,0xBB,0x3F,0xDD,0xEB,0x62,0x4A, + + 0x0E,0x8C,0xE2,0x4E,0x1E,0xAC,0x72,0x6A,0x4E,0xCC,0xF2,0x6E,0x5E,0xEC,0x6A,0x5A, + + 0x0F,0x8D,0xEA,0x5E,0x1F,0xAD,0x7A,0x7A,0x4F,0xCD,0xFA,0x7E,0x5F,0xED,0x63,0x4B, + + 0x8E,0x8E,0xE3,0x4F,0x9E,0xAE,0x73,0x6B,0xCE,0xCE,0xF3,0x6F,0xDE,0xEE,0x6B,0x5B, + + 0x8F,0x8F,0xEB,0x5F,0x9F,0xAF,0x7B,0x7B,0xCF,0xCF,0xFB,0x7F,0xDF,0xEF,0x24,0x82, + + 0x24,0x90,0xA4,0x86,0x34,0xB0,0x34,0xA2,0x64,0xD0,0xB4,0xA6,0x74,0xF0,0x2C,0x92, + + 0x25,0x91,0xAC,0x96,0x35,0xB1,0x3C,0xB2,0x65,0xD1,0xBC,0xB6,0x75,0xF1,0x25,0x83, + + 0xA4,0x92,0xA5,0x87,0xB4,0xB2,0x35,0xA3,0xE4,0xD2,0xB5,0xA7,0xF4,0xF2,0x2D,0x93, + + 0xA5,0x93,0xAD,0x97,0xB5,0xB3,0x3D,0xB3,0xE5,0xD3,0xBD,0xB7,0xF5,0xF3,0x64,0xC2, + + 0x26,0x94,0xE4,0xC6,0x36,0xB4,0x74,0xE2,0x66,0xD4,0xF4,0xE6,0x76,0xF4,0x6C,0xD2, + + 0x27,0x95,0xEC,0xD6,0x37,0xB5,0x7C,0xF2,0x67,0xD5,0xFC,0xF6,0x77,0xF5,0x65,0xC3, + + 0xA6,0x96,0xE5,0xC7,0xB6,0xB6,0x75,0xE3,0xE6,0xD6,0xF5,0xE7,0xF6,0xF6,0x6D,0xD3, + + 0xA7,0x97,0xED,0xD7,0xB7,0xB7,0x7D,0xF3,0xE7,0xD7,0xFD,0xF7,0xF7,0xF7,0x26,0x8A, + + 0x2C,0x98,0xA6,0x8E,0x3C,0xB8,0x36,0xAA,0x6C,0xD8,0xB6,0xAE,0x7C,0xF8,0x2E,0x9A, + + 0x2D,0x99,0xAE,0x9E,0x3D,0xB9,0x3E,0xBA,0x6D,0xD9,0xBE,0xBE,0x7D,0xF9,0x27,0x8B, + + 0xAC,0x9A,0xA7,0x8F,0xBC,0xBA,0x37,0xAB,0xEC,0xDA,0xB7,0xAF,0xFC,0xFA,0x2F,0x9B, + + 0xAD,0x9B,0xAF,0x9F,0xBD,0xBB,0x3F,0xBB,0xED,0xDB,0xBF,0xBF,0xFD,0xFB,0x66,0xCA, + + 0x2E,0x9C,0xE6,0xCE,0x3E,0xBC,0x76,0xEA,0x6E,0xDC,0xF6,0xEE,0x7E,0xFC,0x6E,0xDA, + + 0x2F,0x9D,0xEE,0xDE,0x3F,0xBD,0x7E,0xFA,0x6F,0xDD,0xFE,0xFE,0x7F,0xFD,0x67,0xCB, + + 0xAE,0x9E,0xE7,0xCF,0xBE,0xBE,0x77,0xEB,0xEE,0xDE,0xF7,0xEF,0xFE,0xFE,0x6F,0xDB, + + 0xAF,0x9F,0xEF,0xDF,0xBF,0xBF,0x7F,0xFB,0xEF,0xDF,0xFF,0xFF,0x31,0x2B,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,0xFF,0x80,0x00, + + 0x55,0x40,0xF8,0x86,0x13,0xC6,0x69,0xF0,0x0C,0xC1,0xE1,0x3C,0xD7,0x75,0x88,0x99, + + 0x08,0x41,0xC0,0x96,0x18,0x45,0x32,0xE0,0x1D,0xC9,0x9C,0xD6,0xD4,0xB4,0x01,0x8D, + + 0x05,0x42,0xB9,0x75,0x24,0x2B,0x12,0x6B,0x4D,0x21,0xF1,0x65,0x77,0xE9,0x09,0x0D, + + 0x87,0x03,0xB1,0x45,0x81,0x2C,0x09,0x7B,0x4D,0x4B,0x71,0x1A,0x56,0xF6,0xAF,0xB7, + + 0x26,0x48,0xEA,0x94,0x4E,0xA4,0x70,0xF4,0xAB,0x5D,0x9A,0xF9,0xB9,0x0F,0x78,0xB2, + + 0x81,0xE9,0x37,0x24,0x1B,0x2C,0x07,0x16,0x02,0x67,0x6C,0x16,0x10,0x97,0x57,0x33, + + 0x00,0x1A,0x98,0xB8,0x35,0x6B,0x01,0x16,0x86,0x5D,0xE9,0xC0,0x54,0x44,0xF4,0xB3, + + 0x68,0xDD,0xCA,0x26,0xEF,0x65,0xA1,0x02,0xF2,0x44,0xA7,0x85,0x72,0x22,0x47,0xAC, + + 0x2C,0x48,0xE2,0x4C,0x05,0xA3,0x10,0xDA,0x0F,0x4C,0xF2,0x6D,0x14,0xE3,0x9A,0x3C, + + 0x2F,0x49,0x03,0x8C,0xBA,0x2F,0x20,0x3A,0x55,0x69,0x18,0xDE,0xDB,0x41,0x58,0x40, + + 0x2B,0x6F,0x03,0xEF,0x1A,0x22,0x17,0x7D,0x2F,0xB4,0x11,0xCF,0x5A,0x42,0xDF,0x23, + + 0xAF,0x48,0x03,0x20,0x3A,0x2D,0x9B,0x29,0xD9,0x49,0x9D,0xCD,0x85,0x64,0xEA,0x68, + + 0xE1,0x96,0x48,0x93,0x95,0xD1,0x6E,0x7C,0x79,0xF7,0xEC,0xEA,0x02,0x09,0x2A,0x12, + + 0xD5,0x02,0x48,0x2F,0x67,0xAD,0x64,0x01,0x2A,0x0D,0xC4,0x94,0x81,0xA6,0xEB,0xD5, + + 0x0F,0xFC,0x03,0x19,0x0F,0x26,0xEB,0x39,0xCC,0x01,0xEB,0xBD,0x86,0xC1,0x12,0x5B, + + 0x2C,0xA0,0x92,0xA0,0x3C,0x29,0x03,0x7D,0x43,0x73,0xFB,0x0E,0xF4,0xCE,0x04,0x80, + + 0x78,0xF8,0x3A,0x74,0xC3,0x3F,0x2C,0xC0,0xD0,0x58,0x23,0x00,0x76,0x50,0xDE,0xB0, + + 0x26,0xE9,0x8A,0x16,0x38,0x55,0xE5,0xC2,0xEF,0x34,0x98,0x42,0x0E,0x61,0x4F,0x28, + + 0x82,0x11,0xA5,0x7B,0xB6,0xC9,0x64,0xD3,0x6E,0x37,0x6F,0x9A,0xDE,0x30,0x02,0x1D, + + 0x24,0xE6,0xB5,0x45,0x5E,0x3C,0x64,0xC3,0x6F,0x36,0x75,0x17,0x74,0x74,0xFF,0x33, + + 0x13,0xA9,0x6F,0x41,0xA1,0x0B,0x8F,0xC6,0x15,0x48,0x8E,0x04,0x9B,0x1F,0x93,0xB2, + + 0x60,0x72,0xF6,0x32,0x23,0xBE,0x03,0x0F,0x65,0x8E,0x5B,0xE7,0x5C,0x7E,0x3B,0xA8, + + 0x20,0x12,0xBB,0xA9,0x81,0x6F,0x8A,0xEB,0xDD,0xD4,0x39,0x76,0x91,0x7E,0x14,0x89, + + 0x04,0xBA,0xC5,0x33,0x31,0x33,0xE4,0x0D,0x72,0xAC,0xFD,0xF9,0x1A,0x7C,0xC6,0x75, + + 0x60,0xB3,0xE6,0x4C,0xF6,0xB3,0x3F,0xFB,0xEC,0x44,0x79,0x42,0xFD,0xDF,0x21,0x69, + + 0x31,0x1C,0x91,0x18,0x38,0x39,0x66,0x9F,0xF8,0xF5,0xCC,0xBB,0x0E,0x7D,0x37,0xD7, + + 0xC3,0x0A,0x36,0x6F,0x59,0x95,0xBE,0xFA,0x64,0x06,0xB1,0x1C,0x7C,0xDE,0x51,0xE5, + + 0xB9,0xB0,0x27,0xA2,0xBF,0xC0,0xBF,0xF3,0x7C,0xF7,0x40,0xAD,0x7E,0x7C,0x5B,0x99, + + 0x1B,0x17,0x25,0xAE,0xFB,0xB6,0x62,0x05,0x22,0xD1,0x3A,0x7E,0x66,0x74,0x10,0xB0, + + 0x27,0xB6,0x0E,0x89,0x01,0x06,0x85,0xA6,0x14,0xD7,0xE0,0x19,0xF6,0xDB,0x42,0xAF, + + 0x89,0xDE,0x40,0xAD,0xA6,0x33,0x28,0x6D,0x9D,0x03,0x53,0x1C,0xD9,0x0E,0x52,0x26, + + 0x29,0x1B,0x52,0x3A,0x52,0x30,0x82,0xE8,0x0A,0xE0,0x85,0xBD,0xB3,0xDB,0x20,0x02, + + 0x04,0xC0,0x28,0x3A,0xF5,0xAF,0x20,0x62,0xC4,0xC6,0xD0,0x67,0x14,0xEF,0x28,0x12, + + 0x05,0xC1,0x80,0xE9,0x62,0xA5,0x3C,0xB5,0x64,0x56,0x1B,0x92,0x89,0x82,0xFA,0xD3, + + 0x84,0x82,0x7C,0x27,0x6F,0x39,0x6A,0x50,0x25,0x19,0x71,0xEA,0xB1,0xA3,0x29,0x8F, + + 0x85,0x83,0x69,0x16,0x25,0x18,0x8D,0xCC,0x86,0x30,0x9A,0x87,0x0D,0x40,0xA9,0xB1, + + 0x19,0x2B,0xC0,0x96,0xB7,0x0B,0xD8,0xE2,0xC3,0x64,0xAA,0x95,0x37,0xFF,0x08,0x50, + + 0x40,0x88,0xD0,0xBE,0xC5,0x6A,0x23,0x70,0x3C,0xDD,0xFD,0x65,0x36,0x8E,0xFC,0xB2, + + 0xF9,0x79,0x78,0xC5,0x16,0xCC,0xAA,0x60,0xB9,0x0E,0x54,0x91,0xF6,0x56,0x43,0x83, + + 0xDB,0x07,0x89,0x55,0x3D,0xAA,0xA4,0x63,0xC1,0x9C,0xC3,0x84,0xB4,0xFC,0x22,0x0A, + + 0x0C,0xC8,0xB2,0xF6,0x1C,0x53,0x62,0x59,0x54,0x42,0x5A,0x9D,0xD9,0xAF,0x2A,0x1A, + + 0x0D,0xC9,0xB5,0x92,0xE0,0x71,0x8E,0x5A,0x45,0x19,0x7A,0x3F,0xBA,0x64,0x23,0x96, + + 0x8C,0x8A,0xA3,0xF3,0x1D,0xE8,0xF4,0xD5,0x2D,0xAC,0x1B,0x8C,0xA3,0x99,0x76,0xAF, + + 0x8D,0x8B,0xB3,0x17,0x1F,0x83,0x94,0xEB,0x4C,0x6A,0x44,0xBB,0xD5,0x24,0x02,0x00, + + 0x61,0x83,0xFA,0xDE,0xBF,0x63,0x72,0x96,0xC6,0x37,0x95,0x98,0xDC,0xE8,0xD8,0x38, + + 0xF8,0x8B,0xD8,0x60,0xBC,0xB6,0x05,0xFE,0x38,0x90,0xB0,0xE3,0xB4,0xE6,0xCB,0x53, + + 0x0C,0x8A,0x59,0xBE,0x3D,0xCE,0x78,0x86,0xAD,0x43,0x68,0x0D,0xD0,0x8C,0x4B,0x68, + + 0x2E,0x30,0x6B,0x01,0x12,0xCD,0xBB,0x06,0xC2,0x8D,0xEB,0xFE,0x83,0x4B,0x01,0x82, + + 0x4F,0xB4,0xA2,0x04,0x31,0xD8,0x90,0xEC,0xBB,0xED,0x04,0x14,0x5A,0xB5,0xAC,0x92, + + 0x94,0x1C,0xCC,0xD7,0x98,0xBC,0x63,0xFA,0x1A,0xF1,0x53,0x44,0x73,0xF1,0xDA,0x87, + + 0xA4,0xF7,0x9D,0x57,0x43,0xBD,0xDE,0xD4,0x64,0x05,0x43,0x02,0x71,0xF5,0xC9,0xB4, + + 0x16,0x1E,0xA7,0x93,0x16,0xB5,0xFD,0xCF,0xB1,0xD5,0x7F,0x69,0x0C,0x8D,0xBB,0xA0, + + 0x04,0xF9,0xA1,0x21,0x41,0x78,0xB4,0x1E,0xD3,0xD2,0x28,0xDB,0xF6,0x94,0xD2,0xC7, + + 0x14,0x2E,0xB3,0x05,0x08,0xE4,0xFB,0x01,0x1B,0xDE,0x6B,0xC7,0x54,0x77,0x22,0xB0, + + 0x97,0x95,0x3A,0x74,0xC5,0xB2,0x55,0xBE,0x47,0x5C,0xD3,0x17,0x8A,0x5B,0x37,0xD2, + + 0x00,0x93,0x2D,0x3B,0xB7,0x6C,0x7B,0x02,0x9B,0xF7,0x83,0xCA,0x3F,0xFC,0xC2,0xAD, + + 0x2D,0xF8,0x2E,0x22,0xDD,0xB7,0x3A,0xD4,0xCD,0x52,0x8B,0xE8,0xDE,0xB6,0x2F,0x45, + + 0xCE,0x9D,0x71,0x23,0x42,0xCA,0xB9,0x58,0xEF,0xF1,0xBF,0x1B,0xFB,0x3E,0xDD,0x89, + + 0xA4,0xD5,0x13,0x9F,0x1F,0xF8,0xCC,0x49,0x40,0x51,0xC3,0x8B,0x01,0x01,0x3A,0xE9, + + 0x23,0xFE,0x6F,0xA2,0x0A,0x10,0x84,0xD9,0xAC,0x9B,0x57,0x1D,0x78,0xFC,0xF0,0xB9, + + 0x1F,0x87,0x4D,0x33,0x06,0x27,0x56,0xE6,0x87,0x2D,0x8E,0xFC,0x4D,0xD8,0x34,0xDE, + + 0x88,0x99,0x2D,0x5A,0x08,0xBD,0xFA,0x0B,0x13,0x1D,0xC6,0x2E,0x23,0xFB,0x38,0x6B, + + 0x07,0x3E,0xC7,0x36,0x50,0xC5,0x9B,0x79,0xAA,0xD6,0x0D,0x6D,0x7E,0xA4,0xAA,0x2B, + + 0xAD,0xD0,0x8F,0xDD,0x9A,0xB2,0x1F,0xF9,0xB2,0xD2,0x51,0xB0,0x5C,0xF2,0x5E,0xE2, + + 0x14,0x85,0x78,0x86,0x90,0x1B,0x0A,0x33,0x29,0x4F,0x68,0x42,0x63,0x20,0x30,0xEF, + + 0xC0,0x8B,0xC2,0x89,0x93,0xCD,0x66,0x45,0x72,0x35,0xAA,0xCB,0xA5,0x6E,0x79,0x83, + + 0x00,0x58,0xB9,0x80,0x9E,0x40,0x23,0x32,0x63,0x8B,0x69,0xD4,0x73,0x91,0x8E,0x93, + + 0x10,0x38,0xB1,0xF7,0x30,0x28,0xA3,0x22,0xA8,0x4C,0x59,0xCD,0xAE,0x21,0xC2,0xC2, + + 0x82,0xAD,0x78,0x03,0xD0,0x84,0x50,0xE4,0x49,0x43,0x80,0x6C,0x31,0x44,0x08,0xD6, + + 0x03,0x03,0x30,0xD6,0x93,0xFE,0x06,0x70,0xE7,0x67,0xA0,0x06,0x60,0xD1,0x79,0xB2, + + 0xF6,0x43,0x89,0x40,0xF1,0x86,0x91,0x95,0xC3,0x04,0xA9,0xE7,0xF0,0xB6,0x69,0x0D, + + 0x22,0x6B,0xF1,0x85,0xCF,0x86,0x63,0xD4,0xF0,0xF1,0x23,0x86,0xAE,0x2B,0x7A,0x8C, + + 0x05,0x62,0x06,0xFC,0x44,0x27,0x20,0xD7,0x7B,0x8C,0x1C,0xF0,0xDD,0x9D,0x40,0x05, + + 0x8B,0xE5,0xEA,0x56,0xFD,0x6B,0xA5,0xCE,0xA0,0xA0,0xE2,0x7A,0xED,0x6F,0x63,0x0B, + + 0x02,0x07,0xE3,0x0F,0xD3,0x27,0x2D,0xCB,0x2F,0x5A,0xF3,0x6D,0x66,0xE7,0xA2,0xFB, + + 0x0B,0x0F,0x01,0x6B,0x1B,0x2F,0x15,0x4D,0xE8,0x3B,0xCB,0x38,0x7A,0xC6,0x86,0x68, + + 0xAB,0x8C,0xFA,0x7D,0xBB,0x37,0xD8,0x97,0x79,0xB8,0x55,0xE8,0x2D,0x0A,0x95,0x28, + + 0x7C,0x0D,0xEA,0x3E,0x99,0x81,0x8E,0xA8,0xCA,0xB5,0xA4,0xC8,0xB0,0x8E,0xF3,0x45, + + 0x0C,0x0E,0x06,0xAB,0x18,0x2A,0xE9,0x97,0x0B,0x2D,0x3B,0x52,0xFE,0xE3,0x8B,0xA1, + + 0x25,0xA2,0x3E,0xBF,0x3A,0x43,0x51,0xD9,0x74,0xFA,0xA5,0xD5,0xB0,0xCC,0xFC,0x68, + + 0x7B,0x5D,0xA4,0x4D,0x91,0x3B,0x2E,0x49,0x47,0x3F,0xCC,0xBD,0xD1,0x12,0xF4,0x83, + + 0x48,0xE0,0x4C,0xC1,0x7E,0x37,0xE0,0x58,0x8D,0x1C,0x1E,0xD6,0xFC,0x13,0x5D,0x84, + + 0xC3,0x02,0x45,0x07,0x21,0xF7,0x2C,0x90,0x41,0x60,0x75,0x25,0xD2,0x70,0xCD,0xC4, + + 0xFB,0x99,0x23,0xC7,0xB7,0xDB,0xE2,0xE3,0xA2,0xA3,0x59,0x33,0xB9,0x70,0x1D,0xC6, + + 0xC5,0xA9,0xFC,0x3A,0x34,0xD6,0x50,0x02,0x64,0x8F,0x2A,0xD5,0x18,0x36,0xC6,0x30, + + 0x6B,0xDE,0xEC,0x39,0x35,0xFD,0xDC,0x10,0x67,0x78,0x3F,0xB4,0x33,0xD5,0x44,0x37, + + 0x47,0x04,0xB6,0xDA,0x99,0x30,0x7D,0x92,0x9B,0xDF,0x15,0xEB,0x09,0x18,0x89,0xD9, + + 0xC4,0x7C,0x53,0x51,0xF6,0xEA,0x82,0xD1,0xF7,0x17,0x0B,0xF7,0xBF,0xCA,0xC1,0x28, + + 0x89,0x78,0x48,0x0E,0xF5,0x24,0x4F,0x83,0xCF,0x5E,0x92,0x1D,0x58,0xA8,0x15,0x1C, + + 0x6C,0x7E,0xAE,0x82,0x98,0xB5,0x7E,0xBA,0x78,0x54,0xA6,0x4F,0x0D,0x1C,0x21,0xF9, + + 0xD4,0x01,0x47,0xD8,0xF7,0x3C,0x37,0xE0,0x49,0x85,0x47,0x2F,0x78,0x39,0x56,0xE1, + + 0x0E,0xBF,0xC5,0x80,0x3B,0x27,0x60,0xC7,0xDA,0xB3,0xA7,0x42,0x7B,0x7F,0x86,0x9C, + + 0x1F,0xE9,0xEE,0xAE,0xC7,0x30,0x6A,0x15,0x4A,0x5C,0x7A,0x72,0x79,0x3C,0x66,0xBA, + + 0xD6,0x11,0x33,0x58,0x7E,0x16,0x7E,0x00,0xCA,0xD1,0xBC,0xF9,0x7A,0x9D,0xD4,0x4D, + + 0xEF,0x11,0xFF,0x49,0xFF,0xB0,0xD7,0x8A,0x95,0x58,0xD1,0x45,0x07,0x10,0x77,0x5D, + + 0xEE,0x91,0xA7,0xBF,0x44,0x31,0x9B,0x7C,0xA8,0x3F,0x60,0x6F,0xA3,0x75,0x44,0x60, + + 0xC5,0x0A,0xED,0x64,0x96,0x4C,0xDC,0x51,0x29,0x46,0xAF,0x56,0x50,0xE9,0x50,0x90, + + 0x85,0xA5,0xC8,0x14,0x0E,0xAC,0x3A,0x72,0x01,0xC7,0x80,0x93,0xD3,0xB1,0xA6,0x81, + + 0x49,0x4E,0x8B,0x83,0xD1,0x6F,0x0A,0x50,0xA1,0x44,0x6D,0xA5,0x54,0x59,0x11,0x41, + + 0xC6,0x73,0xE3,0x0A,0x17,0x4F,0x1D,0x33,0x64,0xCA,0xD9,0x35,0xBC,0xEE,0x7F,0x32, + + 0x02,0x8D,0x82,0x4A,0x15,0xC4,0x6E,0x5D,0x65,0x86,0xF4,0x15,0x6D,0x65,0x50,0xAC, + + 0x85,0x81,0xC8,0xBA,0x11,0x6D,0x7F,0x67,0xAC,0xEF,0x54,0xE9,0x54,0xCF,0x2C,0xC1, + + 0x06,0x9F,0xBB,0xB8,0x35,0xA0,0xAE,0xE2,0x27,0xC7,0x8E,0x98,0x3F,0x45,0xF7,0x31, + + 0x7C,0x5A,0x77,0xD3,0xD2,0x7A,0xCC,0x02,0x3C,0xC3,0xA3,0x80,0xBF,0x44,0x7B,0x72, + + 0xAB,0x85,0x8B,0xEC,0xB0,0x25,0xCB,0x59,0x25,0xD7,0xCC,0x12,0x7E,0xB8,0xD2,0xF2, + + 0x7C,0xC4,0x92,0xFE,0x19,0xCC,0x03,0x0B,0xEC,0xFB,0x82,0xCC,0xA2,0xEF,0x69,0x16, + + 0xBF,0x30,0xDB,0x8D,0x0D,0x6F,0x09,0xC2,0xEF,0xA5,0x7B,0xAD,0x5C,0x1B,0x73,0x1E, + + 0xEE,0x2B,0x93,0xFF,0x8F,0xAD,0xC7,0x48,0xAC,0xD4,0x9B,0x03,0x7C,0x12,0x1C,0x72, + + 0xF7,0x23,0xCA,0x2C,0xE3,0xA0,0xF0,0x99,0x45,0xB9,0x32,0xEA,0xCA,0x13,0x52,0xA4, + + 0x8D,0x89,0x17,0xDA,0x5A,0x86,0x22,0xFE,0x30,0x7F,0x3A,0x82,0x8C,0xAF,0x74,0xC9, + + 0x0E,0xD7,0xDB,0xCB,0xDB,0x20,0x6D,0x50,0xED,0x3B,0x33,0xEA,0x66,0x51,0x76,0x39, + + 0x74,0x52,0x83,0x3D,0x60,0xA1,0x1B,0xDB,0xC3,0x44,0x3F,0x54,0x28,0x64,0x3E,0xBF, + + 0x22,0x78,0xC3,0x64,0x98,0x3D,0xCC,0xD9,0x74,0x9F,0x6D,0xC4,0x9F,0xDB,0x14,0x97, + + 0xED,0x38,0x94,0x76,0x31,0xD4,0xC7,0x30,0xE5,0x89,0x46,0xC5,0x01,0x9D,0x62,0x53, + + 0xFA,0x91,0xDD,0x05,0x25,0x04,0x55,0xA1,0xF9,0xDF,0x01,0xC5,0xC7,0x66,0xBA,0x7B, + + 0xFE,0xD1,0x95,0x77,0xAD,0xB5,0x05,0x48,0x10,0xC8,0xDB,0x56,0xF4,0xD1,0x99,0x46, + + 0x63,0xBF,0xDC,0x38,0x30,0x56,0x2D,0x67,0xC1,0xD9,0x74,0xF7,0x10,0x59,0x54,0x2C, + + 0x21,0x77,0x16,0x52,0x6B,0x5B,0x84,0x94,0x0C,0xDA,0xB4,0xEF,0x9E,0x16,0x0D,0xA1, + + 0x59,0x98,0x96,0x2F,0x66,0x4B,0x3F,0x5E,0xD5,0x44,0x27,0x20,0x34,0xF6,0x1E,0x3B, + + 0xA5,0x6A,0x2D,0xCB,0xD5,0xF5,0xF9,0xC1,0x8C,0xD8,0x9F,0xF3,0xF6,0xC7,0xAC,0x2D, + + 0x1F,0x22,0x8F,0x15,0x5F,0xD8,0xBF,0x4C,0x95,0xC8,0x09,0x3D,0x57,0xF0,0xD6,0x72, + + 0x63,0xD6,0xCE,0x9C,0x9F,0xB4,0x04,0x49,0x4A,0xC2,0x2D,0x79,0xAB,0xF3,0xDF,0xF9, + + 0x9F,0x9A,0xDF,0xA8,0x5D,0xB5,0xCF,0x2F,0xC3,0xEF,0xB4,0xD9,0x0B,0x57,0xEF,0xE6, + + 0x79,0x36,0xBD,0x8E,0x8E,0x79,0xBD,0x5D,0xDE,0x5E,0xBD,0xC0,0x2B,0xF3,0x9E,0x48, + + 0xAE,0x35,0x39,0x7E,0x38,0x36,0x70,0xF8,0xEC,0x70,0xC8,0x46,0xF1,0x7A,0xC2,0x44, + + 0x53,0x86,0xD6,0x99,0xF5,0x96,0xA5,0x98,0xAE,0x57,0x6E,0xEF,0x15,0xF9,0x5F,0x35, + + 0x02,0x93,0xA6,0x4D,0x77,0xB1,0x8F,0x09,0x6C,0xDA,0x77,0xAF,0xFA,0x90,0x2B,0x3D, + + 0xA9,0x86,0xB6,0x57,0x18,0xB9,0xF8,0x13,0xB3,0x90,0xCD,0xB8,0xDB,0xFF,0x3A,0xF3, + + 0x62,0xFD,0x80,0xC4,0x18,0x61,0x2A,0xD3,0x6E,0x46,0xF2,0x35,0xA5,0xE9,0xB7,0x60, + + 0x00,0x08,0x0F,0xFC,0x3D,0x6C,0x26,0x95,0xCC,0xB7,0x18,0xF3,0x75,0x23,0x1B,0x75, + + 0xA1,0x60,0xBF,0xE8,0x72,0x62,0xBB,0x95,0x61,0xBD,0xB1,0xB7,0x50,0x6A,0x8A,0xB1, + + 0xB9,0x63,0x49,0x95,0xC5,0x4F,0x11,0x35,0x48,0x52,0x1F,0xA2,0xD2,0x43,0x94,0xC4, + + 0x0C,0xC3,0x32,0x2A,0x14,0x26,0x1D,0xE4,0x40,0xA6,0x40,0x99,0x5A,0x26,0x00,0xC0, + + 0x05,0x07,0x64,0xCB,0xE2,0xF3,0x27,0xB7,0x9D,0xD8,0x18,0xF4,0x06,0x27,0xAD,0xC5, + + 0x80,0xFA,0x59,0xC1,0x90,0x25,0xAE,0xE5,0xC0,0x07,0xC8,0x10,0xD3,0xB6,0xF8,0xA2, + + 0x0F,0x62,0xC1,0x51,0x1A,0x36,0xBA,0x31,0xDF,0x29,0x99,0xD5,0x5C,0xE1,0xF5,0x75, + + 0x4C,0x09,0xE0,0x4C,0xED,0xAE,0x2C,0x8D,0x4E,0x4A,0x02,0xA8,0x67,0xB9,0x8A,0xDF, + + 0x2D,0xF4,0xB4,0xE0,0x78,0x69,0x22,0xC7,0x4F,0x4B,0x1A,0x7F,0x69,0x07,0x16,0x18, + + 0x76,0xF3,0x83,0xCD,0x90,0x6B,0xDF,0xDA,0x44,0x2F,0x2C,0x5D,0xD0,0x63,0xCB,0x90, + + 0x97,0x7B,0xD3,0xB5,0x1B,0xE7,0xAA,0xBD,0x9D,0x1A,0x0B,0x4E,0xE0,0x6A,0x7A,0xB7, + + 0xD3,0x71,0x52,0x3F,0x2B,0x2D,0x6D,0xFA,0x4B,0xD1,0xDA,0x16,0x98,0x6C,0xF5,0x1F, + + 0xC9,0x4E,0xF4,0xB0,0x94,0xAB,0xB6,0x5C,0xA2,0x96,0x1A,0xFC,0x25,0x2F,0x6C,0xCD, + + 0xFD,0x90,0x79,0x49,0x15,0x6F,0x31,0x69,0xCB,0x0E,0xDB,0x69,0x55,0x2F,0x03,0x5D, + + 0x04,0x4E,0x4B,0x9D,0xDF,0x82,0xF7,0xEB,0xC3,0x47,0x9B,0xDD,0x54,0x2D,0x81,0x01, + + 0x17,0x80,0xDD,0xB0,0x95,0x72,0x09,0x80,0xC5,0x10,0x2C,0x20,0x72,0xA0,0xAC,0x9D, + + 0x9B,0x75,0x38,0xF6,0xCA,0x73,0xF0,0x22,0x25,0x5B,0x5C,0x34,0x54,0x33,0x07,0x82, + + 0xBC,0x49,0xC5,0xE1,0x5B,0x56,0xF9,0x85,0x09,0x09,0x6A,0x4D,0xDC,0x3F,0x0E,0xDD, + + 0x61,0x13,0x56,0x4F,0x4C,0x5D,0x1A,0xC2,0x92,0xD5,0xDD,0x15,0x0A,0x31,0x54,0xB3, + + 0x26,0x7A,0x44,0x03,0x16,0x32,0x37,0x20,0x60,0x89,0x0B,0xE5,0x74,0x6D,0x2E,0xD5, + + 0x20,0xD5,0x82,0x2B,0xB1,0x29,0x1C,0x50,0xEC,0xD3,0x9C,0xA8,0x75,0x77,0xD5,0xB2, + + 0x95,0x78,0xEC,0xEE,0x13,0xB7,0x95,0x61,0xC7,0x14,0x4B,0xA5,0xA6,0x34,0x73,0x29, + + 0x61,0x97,0xFC,0xB7,0xD1,0x37,0x94,0x8B,0x21,0x57,0x8D,0xB2,0x31,0x7B,0x06,0x94, + + 0x18,0xB5,0xE4,0x71,0x39,0x78,0x94,0x68,0x24,0xF5,0x4B,0x03,0xF7,0x85,0xE2,0xBC, + + 0xC0,0x42,0x94,0x98,0x1A,0x79,0x56,0xBC,0xE6,0x18,0x9E,0xFC,0x7D,0x17,0x1A,0xA9, + + 0x01,0x5A,0x6B,0xA9,0x51,0xE1,0x4C,0xEE,0x2A,0x3A,0xF5,0x50,0x0D,0xFC,0x7D,0x9D, + + 0xFD,0xB6,0xA3,0xB5,0x36,0x7A,0x21,0x54,0xC8,0x8B,0x0F,0x55,0x9D,0x36,0x4E,0xCC, + + 0xA5,0x5D,0x3D,0x4E,0xFF,0x9F,0x1E,0xE9,0x4E,0xF1,0xED,0x7E,0x7A,0x76,0xA2,0x4A, + + 0x6B,0x17,0x0E,0x5C,0x19,0x51,0x07,0xCC,0x96,0x12,0x9E,0x41,0x7D,0x7F,0x27,0x9E, + + 0x45,0x13,0xFF,0x49,0xB8,0x54,0x8C,0x5B,0xE2,0xDE,0x57,0x2A,0xDE,0x3C,0xC9,0xFE, + + 0x0A,0x99,0x28,0xA7,0x6D,0x37,0x06,0x60,0x4E,0x20,0x8F,0xBA,0xFD,0x3D,0x55,0xBE, + + 0x5C,0x25,0x71,0x64,0xEB,0xBB,0x9C,0xB0,0x64,0xCA,0x8A,0x22,0xDB,0xA1,0x2B,0x90, + + 0x28,0x91,0xF0,0x0F,0x98,0xA7,0x78,0x56,0xAE,0xA5,0xE1,0x12,0xF0,0xA3,0x29,0x1B, + + 0x91,0x58,0x31,0x61,0x63,0x5B,0xF3,0x50,0xEA,0x80,0x8F,0xDB,0xF5,0x60,0xE5,0x62, + + 0xD5,0x2E,0x84,0x3C,0x34,0x25,0x8D,0x51,0x3A,0x81,0xF9,0x2B,0x5A,0x65,0x8C,0xC0, + + 0x9F,0xB1,0xBB,0xD4,0x56,0xAC,0xF2,0x11,0x79,0x42,0x30,0x08,0x57,0x04,0x2A,0xA3, + + 0x04,0x87,0x88,0x1D,0xAF,0xA8,0xE8,0x9A,0x63,0x88,0x78,0xB1,0x73,0xA7,0x59,0xD1, + + 0x17,0xC4,0x61,0x80,0xB2,0xC8,0x75,0xA3,0xC2,0xAA,0x31,0x07,0x52,0xEE,0xA9,0xD3, + + 0xF9,0xC5,0x8B,0x79,0x91,0x25,0xB9,0xF3,0xC0,0x85,0xB9,0xCA,0xD1,0xE5,0xB8,0x02, + + 0xF2,0x31,0x7D,0x8A,0x5E,0x03,0x72,0x97,0x4A,0x18,0x9B,0x50,0x9E,0xE8,0xF9,0xFF, + + 0x5D,0x09,0x6A,0x9E,0x38,0x06,0x72,0x3B,0x69,0x69,0xA0,0x3A,0x7C,0xA9,0x26,0x6B, + + 0xF1,0xDA,0xEB,0x0E,0xB8,0x77,0xA2,0x6C,0x0E,0xCB,0xFB,0x3B,0x35,0x91,0xF1,0x12, + + 0x57,0x60,0x0F,0x38,0x3C,0x54,0xEF,0x39,0x0C,0x66,0x57,0x1B,0xEE,0x59,0x22,0xDF, + + 0x81,0x0A,0xBC,0x8E,0x4A,0xEE,0x32,0xCA,0xB5,0xD7,0x34,0xEA,0x54,0xE4,0x22,0x5E, + + 0x86,0x9C,0x2C,0x19,0xDD,0x07,0x3A,0xBF,0x49,0x8F,0x6A,0x0D,0x6E,0xEC,0xBC,0x35, + + 0x4C,0x8E,0xA3,0xF2,0x98,0xAC,0x34,0x0D,0x39,0x8C,0xFB,0x6B,0x57,0xFF,0x87,0x7F, + + 0x66,0x96,0x50,0xCD,0x9F,0xA5,0x62,0x3C,0x15,0x92,0x47,0x7B,0x50,0xAE,0x7F,0x45, + + 0xE6,0xF0,0x9A,0xEF,0x14,0xDD,0xF4,0x22,0x1A,0x92,0xCA,0x03,0x72,0x72,0x80,0x00, + + 0x2D,0x9B,0x75,0x51,0xF7,0xD1,0x1C,0xCC,0xA7,0xD1,0xB4,0xBF,0x65,0xBC,0x6D,0x96, + + 0x4D,0x09,0x25,0x40,0x90,0x1F,0x75,0x36,0x69,0x54,0x33,0x59,0x7B,0x04,0xAD,0x54, + + 0x81,0xFD,0xE5,0x83,0x5C,0x28,0x75,0xB7,0x6A,0x92,0x42,0xC9,0x2B,0xF9,0x66,0x02, + + 0x2E,0xD5,0x22,0x44,0xF3,0x77,0x2D,0xD6,0xC3,0x8B,0x4D,0x26,0x3E,0xB6,0x80,0x50, + + 0xB6,0xE0,0x2C,0x56,0x79,0x34,0x50,0xDA,0x61,0xD7,0x3C,0x76,0x09,0xB7,0xA5,0x47, + + 0xFE,0x69,0xDD,0x43,0xB4,0xDC,0x99,0x6C,0xE5,0x96,0xED,0xE1,0xF5,0xA4,0x55,0x4C, + + 0x25,0x8B,0xA3,0x53,0xB5,0x65,0xC4,0x77,0xE9,0x30,0xBD,0x62,0x78,0xB5,0x46,0xC0, + + 0x94,0x95,0xC4,0x8B,0x3D,0xF8,0x08,0x47,0x8E,0xF8,0x36,0xB0,0x52,0x55,0x1F,0xF8, + + 0xEF,0x99,0xB8,0x66,0xC2,0x34,0xFE,0x3A,0x39,0xB5,0x7E,0x3A,0x4C,0x86,0x45,0xA9, + + 0x2E,0x86,0x4B,0xAB,0x55,0xE1,0xB0,0x43,0xB6,0x97,0x63,0x2B,0xFE,0x90,0x27,0x9F, + + 0x22,0xDA,0x7B,0x61,0x32,0x46,0x5D,0xFB,0x18,0x5D,0xA9,0xDD,0x02,0xA6,0xD7,0xA8, + + 0xF8,0x94,0x4A,0x51,0xCF,0x6A,0xCB,0x6E,0x6C,0x95,0xB2,0xAF,0x7D,0xBC,0xD5,0x48, + + 0x2F,0x97,0x02,0xFA,0xD6,0x84,0x81,0x80,0x19,0x9F,0xA8,0x9C,0x80,0xBF,0x62,0xB4, + + 0x6C,0x92,0xEF,0xCB,0x37,0xAF,0xB7,0x6B,0xCC,0x2F,0xDB,0xC7,0x7C,0x32,0x6B,0xFF, + + 0xA9,0xDD,0xFF,0xBD,0xBB,0xD1,0x3F,0xDD,0xE9,0xBD,0xE7,0xF9,0xFE,0xBF,0x2C,0x28, + + 0x8F,0x41,0x92,0x2C,0x16,0x22,0x3C,0x08,0xC2,0x8C,0x50,0xA5,0x54,0x22,0x88,0xD7, + + 0x25,0x8C,0x24,0x8B,0xE0,0xF7,0x00,0x36,0x42,0x01,0xC8,0xCF,0x57,0x1A,0x3F,0x69, + + 0xA0,0x4F,0x57,0x81,0x92,0x21,0xC0,0x43,0x3F,0x00,0xD1,0xE0,0xD6,0x60,0xF6,0x95, + + 0xB0,0xEA,0xC1,0x14,0xB5,0x25,0x35,0x19,0x4E,0x02,0x6C,0xCD,0xD1,0xD8,0xF8,0xB3, + + 0x2C,0x00,0xE0,0x42,0xB3,0x3F,0x0D,0xE9,0xED,0x5F,0xD4,0x9A,0xA9,0xFB,0xB2,0x61, + + 0x2D,0xAA,0x48,0xA0,0x1B,0x3E,0xE6,0x79,0xA0,0xC5,0xA1,0x12,0xE8,0x7A,0xC1,0x5F, + + 0xAC,0x8D,0xA1,0xB3,0x77,0x2D,0x14,0x07,0x3D,0x45,0x8B,0x4C,0xBA,0x05,0xE9,0x23, + + 0xE1,0xEB,0xA9,0x23,0x1C,0xA1,0xA1,0x13,0xF0,0x73,0x19,0xFD,0xF4,0x69,0x0A,0x14, + + 0x0E,0x0A,0xAB,0x22,0xB9,0xF7,0x2C,0x41,0x68,0x45,0x94,0xA8,0x12,0xB5,0xA6,0x8A, + + 0x88,0x94,0xCA,0x42,0x18,0x0B,0x1E,0xBC,0x78,0xA0,0xA2,0xC6,0xD6,0x94,0x4C,0x8D, + + 0x8A,0x09,0x37,0x6F,0x17,0x68,0x93,0xEE,0xEC,0xB1,0xFB,0x4F,0x23,0x64,0x69,0x19, + + 0x8A,0x4B,0x4B,0x99,0x82,0x69,0x53,0x38,0xED,0x4D,0xFC,0x43,0x0B,0x61,0x3C,0x4F, + + 0xAB,0x60,0x45,0x0C,0x1E,0xE7,0xA8,0xAE,0x0A,0x0E,0xEA,0x87,0xD9,0x61,0xDA,0xDC, + + 0x09,0x58,0x35,0x2F,0x72,0xD9,0xE0,0xBF,0x81,0x66,0x63,0x20,0xAC,0x50,0x21,0x41, + + 0x89,0x2E,0x44,0xA5,0x18,0xE3,0x88,0x2B,0xF9,0x7A,0xAA,0x02,0x87,0x91,0x8B,0xD9, + + 0xC5,0x63,0xB3,0x4F,0x70,0x6C,0x13,0x69,0x22,0x64,0xD4,0x86,0x6A,0xF7,0xFB,0x04, + + 0x01,0x54,0xDE,0x77,0x58,0x0B,0x3B,0x60,0x68,0x11,0x9C,0xA0,0xFF,0x31,0xE0,0xB4, + + 0xC8,0x08,0x22,0x67,0xBD,0x3C,0x19,0x34,0x23,0xB1,0x08,0xD2,0x8E,0xDC,0x0D,0x85, + + 0x29,0x03,0xFB,0x83,0x51,0xB1,0x2B,0x59,0x02,0x12,0xAF,0x56,0xDE,0x69,0x1D,0xE3, + + 0xA5,0x7D,0x72,0xD2,0x73,0xB3,0xF1,0x2E,0xE0,0x13,0x49,0xF2,0x2F,0x79,0x1D,0xDE, + + 0x24,0x5D,0xA4,0x52,0x31,0xED,0x0D,0x69,0xC7,0xA5,0x60,0x06,0x41,0x10,0x15,0xD2, + + 0x44,0xE5,0x8D,0x87,0x33,0x35,0x5E,0xFC,0xC6,0x4E,0x86,0xF5,0xD0,0x37,0xBE,0xD2, + + 0x01,0x55,0x05,0xA1,0x40,0x74,0x0C,0x60,0x45,0x55,0x6F,0xC2,0x51,0x13,0x73,0x75, + + 0x82,0x97,0xCD,0xD5,0x3E,0x9A,0x1D,0x17,0xD0,0x63,0x45,0xCA,0x52,0x6C,0x96,0xFA, + + 0xD7,0x5A,0x8E,0x84,0xC5,0x56,0xFA,0x8C,0xE5,0x1A,0x80,0xDF,0x56,0x3A,0xCE,0x18, + + 0x72,0x5B,0xA2,0xB4,0x3F,0x3B,0x32,0x90,0xB4,0x64,0x58,0x43,0x9A,0xA1,0x1E,0xFC, + + 0xA9,0xCA,0xE5,0x95,0xBB,0x7A,0xD7,0xC6,0xE9,0x1A,0xD7,0x68,0xFE,0x78,0x4F,0x39, + + 0x26,0x9D,0x58,0x19,0xBB,0xD9,0xB0,0x3D,0xC8,0x1F,0x87,0x39,0x04,0xA3,0xBC,0x20, + + 0xFE,0xDC,0xD8,0x5F,0x1C,0xC3,0xEC,0x00,0x60,0x13,0xF7,0xD8,0xF8,0xB0,0x2C,0xD4, + + 0x2A,0xDD,0xC6,0xD8,0xE7,0x5E,0x0E,0xF1,0xC8,0x46,0x82,0x8E,0x8C,0xF6,0x1E,0xD7, + + 0x4F,0x70,0xF9,0x68,0x35,0xC8,0x0E,0x69,0x4F,0x58,0x6A,0x0F,0xDE,0x8B,0x95,0xD5, + + 0x98,0x1B,0xF5,0x2E,0x91,0x92,0x1B,0x9F,0x69,0x5C,0xAB,0xC1,0xFD,0x36,0xCC,0x26, + + 0x02,0x82,0xE0,0x93,0xEB,0xE2,0x1D,0x09,0xE5,0x41,0x30,0x65,0x64,0x8E,0x20,0x03, + + 0x03,0x88,0x93,0x88,0x16,0x81,0xF8,0xB2,0x67,0x7E,0xA8,0x45,0x51,0x8F,0xB1,0x87, + + 0x8A,0x55,0xE1,0x23,0x19,0x54,0x39,0xA7,0xC6,0x21,0x21,0xCF,0x85,0xAF,0x89,0xD3, + + 0x9F,0xC1,0x39,0x93,0x8C,0x6C,0x95,0xAC,0x34,0x15,0x29,0x44,0xEA,0x6A,0x02,0x62, + + 0xF3,0x02,0xDE,0x37,0xCA,0xAB,0x72,0x94,0x75,0xF6,0x8B,0xA4,0xD2,0xEA,0xC4,0x76, + + 0xEC,0xE1,0x68,0x47,0x31,0x08,0x5B,0x04,0x99,0x3A,0xFE,0xD3,0x1F,0xC6,0x61,0x83, + + 0x8E,0xC7,0xC3,0x34,0x35,0xAF,0xC9,0x9C,0x4B,0xDD,0x55,0xE3,0xC4,0x53,0xDD,0x31, + + 0x7C,0xC5,0xF7,0x66,0xB1,0x25,0x3B,0x8D,0xF4,0xF3,0xD9,0xD4,0x9F,0xE4,0x62,0x24, + + 0x0A,0x8A,0x55,0x0F,0x18,0xC6,0x7A,0x2B,0x68,0xCE,0x36,0x4E,0x4C,0x45,0x22,0x1E, + + 0x84,0x98,0x55,0x9A,0x3C,0xED,0xFA,0xBA,0x42,0x8B,0x3A,0xF9,0x79,0x44,0xE5,0x8F, + + 0x8E,0x36,0x33,0x8B,0x96,0xCA,0x99,0x9A,0x6D,0xF5,0x6E,0x5F,0xD8,0xE3,0x4B,0x4D, + + 0xBB,0x86,0xE3,0x1B,0x14,0xBA,0x7B,0xAE,0xCB,0xC9,0x62,0xF8,0x1F,0x2B,0xB9,0x90, + + 0xF3,0xCD,0xC4,0xEA,0xBD,0x28,0xC8,0x2D,0x98,0xC4,0xCE,0xD6,0xDC,0x20,0xC6,0xB2, + + 0xDF,0x40,0x94,0xFB,0xF4,0xAE,0x80,0x92,0xD7,0x00,0xA3,0x64,0xBA,0x88,0x59,0xA3, + + 0x98,0xC1,0xBA,0xCD,0x79,0x23,0x71,0x14,0xAE,0x11,0x49,0x1C,0xF5,0xE1,0x0D,0xBA, + + 0x64,0x8C,0xD5,0xFF,0x12,0xB4,0x84,0x93,0xCD,0x80,0x83,0x96,0x5B,0x02,0x2C,0xF8, + + 0xE6,0x90,0x64,0x07,0x30,0xF2,0x3C,0xA6,0xED,0xC1,0xAC,0xBA,0x9D,0x93,0xEC,0x12, + + 0x01,0xD3,0xFC,0x6D,0x33,0xCA,0x2C,0xC0,0x61,0xBF,0xC6,0xEA,0x54,0x71,0x2D,0x87, + + 0x2B,0xD3,0xE5,0xE3,0xB2,0xB0,0xA5,0x4B,0xB5,0x9F,0x75,0x27,0xA0,0x0D,0xE9,0x2D, + + 0xA4,0x33,0x58,0x6F,0xB5,0x08,0xAD,0xC0,0xD2,0xBD,0x02,0xEB,0xD6,0xB3,0xBE,0xDF, + + 0xA4,0x97,0xB0,0x81,0xFC,0xF7,0xF3,0x00,0xEB,0xCF,0x86,0x99,0xD5,0x7F,0x96,0x94, + + 0x67,0x18,0x9F,0x94,0xBB,0xB9,0x02,0x52,0x54,0x81,0x94,0x84,0xD4,0x7E,0x60,0xA1, + + 0x95,0xA2,0xAD,0x8F,0xB0,0xFF,0x50,0x95,0x2C,0xFD,0x09,0xDB,0xF0,0xBF,0x34,0x5A, + + 0x00,0x8C,0x4D,0xB5,0x04,0xD2,0xBD,0x97,0x10,0xCC,0x7A,0xCA,0x08,0x27,0xE6,0xEA, + + 0xA8,0x90,0x22,0x0A,0x76,0x65,0x54,0xBB,0x6F,0x18,0x5A,0x8A,0x34,0x9B,0xEE,0x1A, + + 0x63,0xDB,0x86,0xFC,0x3B,0xBB,0x36,0xBE,0xE2,0x98,0x38,0x40,0xF0,0x0F,0x62,0x0F, + + 0xAE,0xCF,0x1C,0xCD,0x1D,0x47,0x09,0x53,0x2E,0x5A,0x97,0x6C,0xFA,0x78,0x6F,0xC0, + + 0xAC,0xDB,0x1E,0x1B,0xBF,0x59,0x5F,0xF0,0x55,0xD6,0xF7,0xAA,0xCE,0x3A,0x62,0x2C, + + 0x1D,0x3E,0xDE,0x25,0x92,0xB1,0x57,0x99,0xCD,0x13,0x05,0xE2,0xCF,0x27,0x0E,0x7A, + + 0x73,0x90,0xD7,0x9C,0x9E,0x80,0x58,0x85,0x88,0x50,0x1C,0x12,0x7F,0x70,0x9F,0x6B, + + 0xF6,0xEC,0x1E,0xE8,0x1F,0xC1,0xB7,0x03,0x96,0xC5,0x5D,0x12,0x0F,0x85,0xC3,0x33, + + 0x37,0x59,0xC7,0xBD,0x5E,0x44,0x26,0x7F,0x48,0xD9,0x80,0xFB,0x90,0xD9,0x7E,0x06, + + 0xE9,0x0F,0x35,0x20,0xEF,0xAB,0x3D,0x5B,0xD9,0x1C,0xA1,0x37,0x6B,0xA3,0xB3,0xF2, + + 0xAD,0xFC,0x28,0x66,0x73,0xED,0xB5,0x14,0x2A,0x4E,0xC5,0x1E,0x75,0x67,0x53,0x93, + + 0x6B,0x66,0xD3,0x34,0xA7,0x8D,0xAA,0x6F,0x5D,0xBF,0x4C,0x24,0xE7,0x7E,0x71,0x67, + + 0xE9,0x0E,0xF7,0x12,0x30,0x62,0x99,0x42,0xF3,0xC6,0x33,0x41,0x70,0xC2,0x7E,0x10, + + 0x7A,0xAB,0x3B,0x3F,0x28,0x9B,0xF0,0x13,0xE1,0xC7,0x2F,0x23,0x76,0xBF,0x36,0x57, + + 0xA2,0x44,0x58,0xAD,0x13,0x5E,0x4E,0xCC,0xA8,0x01,0xF5,0x8D,0xE3,0x24,0xE1,0x32, + + 0x8F,0x95,0xFA,0xED,0x61,0xFB,0x33,0x45,0xA1,0xA9,0xF8,0x98,0x62,0xFD,0x36,0xD3, + + 0x12,0x12,0x36,0xA9,0x93,0xDC,0x63,0xC1,0x0E,0xE8,0xA7,0x72,0x72,0x78,0x10,0x22, + + 0xE3,0x4C,0xD8,0x5C,0x70,0x2B,0x6C,0x2E,0x80,0x47,0xAA,0xD3,0xDA,0xA4,0xAE,0x7A, + + 0xFE,0x6C,0x20,0xEF,0x95,0x68,0x65,0x02,0xEA,0xE4,0x0A,0xA3,0xA6,0x64,0x39,0xB9, + + 0x11,0xA5,0xFD,0x0B,0x79,0xA9,0xB7,0xAD,0x8E,0xD6,0x8D,0x4F,0xF6,0xB5,0x33,0x3D, + + 0x76,0x86,0x1C,0xE2,0x68,0xF8,0x4A,0x09,0xC1,0xB4,0x78,0xC3,0x38,0xF4,0x7A,0xB6, + + 0xA6,0x01,0xC0,0x48,0x50,0x68,0xF6,0x0A,0x6E,0xB0,0x66,0x0E,0xA5,0xC1,0x72,0xA7, + + 0x86,0x86,0x8B,0x3A,0x79,0x92,0x3A,0x33,0xFB,0x40,0xE2,0x58,0xD4,0xC0,0xD3,0xCB, + + 0x47,0xC2,0x7B,0x7D,0x9A,0xD1,0x2B,0x4E,0x37,0x41,0x83,0x5C,0x7B,0xCF,0x0D,0xC6, + + 0x74,0x82,0x30,0x1A,0xA8,0x8E,0xA4,0x5E,0x6A,0x0E,0x8A,0x0D,0x5B,0xE9,0x59,0x71, + + 0x83,0x50,0x28,0x7B,0xB2,0x0C,0xB4,0xD3,0xC3,0xD3,0xC5,0x96,0x9B,0x34,0xAC,0xE3, + + 0x82,0x92,0xA1,0xBE,0x90,0xE7,0x64,0x97,0x9C,0x5E,0x5E,0xEE,0x8A,0xE4,0x37,0xB1, + + 0x44,0xBD,0xB0,0xE7,0x6E,0x34,0x77,0x52,0x6C,0x8F,0xB3,0x47,0x7C,0x30,0x20,0xB5, + + 0x23,0xDF,0x1D,0xDA,0x4C,0x4F,0x8D,0xF6,0x1E,0x55,0xE5,0x72,0x0C,0xC5,0x53,0x22, + + 0x8E,0xB9,0xD6,0xEA,0xD9,0x70,0xF8,0xE4,0x70,0x8C,0xB4,0xAE,0xCA,0x79,0xDB,0x32, + + 0x07,0xB1,0x33,0xB6,0xC0,0x50,0x62,0x12,0x01,0xA0,0xE4,0x6E,0x57,0xF4,0xD6,0x23, + + 0x0E,0xBB,0xFF,0x75,0x23,0x77,0x47,0xA3,0x09,0x12,0xB2,0x67,0x63,0x63,0x47,0xD7, + + 0x6B,0x7F,0xF5,0x2E,0x3C,0xC1,0xCD,0xC1,0x73,0xF8,0xA3,0x06,0x77,0xDA,0x50,0xEA, + + 0xD7,0xB9,0x2F,0xF2,0xAD,0xB5,0x3F,0x83,0xC9,0xAE,0x2D,0x36,0x5C,0xF3,0xAE,0xEA, + + 0x4B,0x05,0xDE,0x8D,0x1B,0xB2,0xFD,0x9C,0x02,0x56,0x3E,0xCE,0x1B,0xB5,0x3F,0xB9, + + 0x18,0xB5,0xFA,0x67,0x9C,0xCF,0x77,0xE3,0x58,0x57,0x09,0x9C,0xDA,0xD5,0x9F,0x1B, + + 0x6C,0x48,0x5E,0xA0,0x52,0x7F,0x9F,0xCA,0x92,0xDE,0xE1,0xBA,0xDD,0xD6,0xE2,0xBB, + + 0x54,0xB7,0xFD,0x52,0x1E,0x93,0xF6,0x9B,0xC9,0xDF,0x72,0x5C,0x24,0xD3,0xC9,0x29, + + 0x88,0x5D,0xF1,0x3E,0x1F,0x3B,0xDE,0x7C,0x2D,0xC1,0xE0,0x5C,0xF9,0x7C,0x3F,0xCD, + + 0xAE,0x2C,0x63,0xB7,0x19,0x5B,0x27,0xCD,0x68,0x5E,0x73,0x9F,0x74,0x3F,0x71,0x30, + + 0x4B,0x9E,0xE6,0xF7,0x1A,0xC0,0xA0,0xC7,0x48,0x1D,0xF4,0x7A,0xDF,0xE3,0xF3,0xFC, + + 0xED,0xBB,0x0C,0x83,0xE3,0x5D,0x0A,0x87,0xB3,0x3D,0xCF,0xCB,0x1C,0xBF,0x3A,0x24, + + 0xEE,0xC5,0xAA,0x65,0x3F,0x24,0xEC,0x16,0x2E,0xCE,0xEC,0xDB,0x15,0x6C,0x7F,0xE1, + + 0x80,0x07,0x65,0xF8,0xFF,0xAD,0x27,0x41,0x3B,0x1F,0xCC,0xCD,0xD2,0x00,0x17,0xF1, + + 0xE7,0x9F,0x39,0xE4,0x11,0x0E,0xB9,0x40,0xFE,0x46,0x40,0xDC,0x66,0xA3,0x02,0x42, + + 0xF1,0x09,0x58,0xD9,0x04,0xE9,0xC8,0x9D,0x56,0x89,0xD0,0x42,0xEA,0x87,0x3C,0x28, + + 0x23,0x88,0x5C,0x34,0xE8,0x0E,0x00,0x56,0xC5,0xE3,0x68,0x86,0xE4,0x44,0x1A,0xB8, + + 0x80,0x64,0x02,0x63,0x37,0x79,0xDE,0x81,0x6A,0x3B,0x40,0xD7,0x6E,0x45,0xC5,0xD6, + + 0x78,0xE9,0x91,0x53,0x7E,0x1C,0x70,0x11,0x30,0xA2,0xAF,0x84,0x53,0x6A,0x5C,0x0D, + + 0xAD,0x17,0xDA,0xBE,0xDE,0x07,0x20,0x1C,0xA7,0x8C,0x74,0x94,0x80,0xAC,0x4A,0x51, + + 0xBD,0x84,0xAB,0x7C,0xC0,0xE6,0xAA,0xCB,0xEE,0x49,0x91,0xC1,0xA9,0xE6,0x97,0x69, + + 0xA8,0x75,0x07,0x6D,0x63,0xCF,0x0D,0xC9,0xAE,0xD6,0xCD,0x28,0xDA,0x28,0x79,0x1B, + + 0x7A,0x26,0xAA,0x60,0x3A,0xEA,0x09,0x0B,0xE9,0x64,0xE5,0xDD,0xD9,0x46,0xDA,0xB1, + + 0xF3,0x3A,0xD0,0x6A,0xA7,0x0D,0x4A,0x95,0xEB,0x53,0xA0,0x39,0xB5,0x88,0x0A,0x0C, + + 0xF7,0x20,0x4A,0x2C,0x7D,0x91,0x42,0x84,0xE3,0xC0,0xFA,0x87,0x53,0xAD,0x59,0xD9, + + 0x8E,0xCF,0xDB,0x7F,0x2A,0x01,0x72,0x0D,0x35,0x8F,0xCB,0x4B,0x29,0x75,0x78,0xB9, + + 0x23,0x22,0x7B,0x34,0xF7,0xA2,0x84,0x09,0x3C,0x70,0x39,0x7F,0x24,0x81,0x1C,0x7D, + + 0x4C,0x9D,0x9E,0x36,0xF1,0x1F,0x26,0xF6,0x8F,0x94,0xBC,0x57,0xD7,0xB0,0x16,0x22, + + 0xBC,0xD0,0x2B,0xE5,0x13,0x34,0xAC,0x49,0xE7,0xED,0x1C,0xC5,0xD6,0x72,0x37,0xA9, + + 0x4F,0xD6,0x01,0xA3,0xDF,0xBD,0x0B,0x41,0x86,0xF4,0x87,0x97,0x54,0x5D,0x4D,0xC5, + + 0x0B,0x9E,0xBB,0x36,0x5E,0xF7,0x0C,0xD1,0x12,0xB6,0x8E,0x93,0x29,0x40,0x56,0x31, + + 0xA2,0x39,0x50,0xA4,0x12,0x40,0xB6,0xC1,0x9D,0xBA,0x4F,0xBC,0xAF,0x09,0x12,0xD5, + + 0x86,0xCA,0x2E,0x8C,0xDE,0x24,0x04,0xD6,0x9C,0xD3,0x9C,0xD6,0xA6,0x93,0x1D,0x73, + + 0x37,0xD7,0x45,0x34,0x3A,0xF6,0xCA,0x78,0x13,0x70,0xDA,0xC3,0x1F,0x0D,0xD9,0xB1, + + 0x83,0x68,0x15,0xDF,0x5E,0x06,0x50,0xD8,0x46,0x61,0x6D,0x84,0x99,0x7E,0xDD,0xAD, + + 0x8D,0x67,0x9C,0x3F,0x9F,0x17,0x0E,0x55,0x48,0x75,0x88,0x13,0x1C,0x07,0x53,0x70, + + 0x2B,0x7B,0xF0,0x3B,0x35,0x12,0x0C,0x8A,0x6F,0x76,0x45,0xC1,0x15,0xF4,0x1D,0x71, + + 0x57,0xC5,0x03,0xFC,0x38,0xFB,0xE4,0x5A,0x4F,0x9A,0x48,0xDD,0x9E,0x05,0x7B,0xD1, + + 0x5C,0x87,0xFD,0xD4,0xD6,0x18,0x9F,0xC8,0x4E,0x58,0xC0,0xC1,0xD3,0x64,0x06,0x81, + + 0x9E,0x91,0x1E,0xEA,0xD7,0x6D,0x16,0xA1,0xDE,0xD1,0xD6,0x7C,0xFE,0xBD,0xFE,0x2B, + + 0x8C,0xDD,0x16,0xFA,0x0C,0xBC,0x44,0x00,0x94,0xA0,0xC1,0xA1,0x5B,0x50,0x1C,0xEC, + + 0x0F,0x21,0x1F,0xC7,0x57,0x4F,0x14,0xCF,0xE0,0x21,0x5C,0x95,0x2B,0x02,0x5D,0xEB, + + 0x8F,0x30,0x57,0x21,0xAF,0xF2,0xE8,0x04,0x5A,0x0C,0xA9,0x04,0x72,0x72,0x67,0xFB, + + 0xE1,0x86,0xA0,0x5C,0x90,0x6E,0x68,0x24,0xA9,0x63,0xB0,0x7E,0xC0,0x6F,0x4F,0x76, + + 0xFE,0x1A,0xA8,0xC6,0x91,0x18,0xAC,0x52,0xFE,0xFC,0x13,0x54,0xDC,0x75,0x01,0xFB, + + 0xA4,0x19,0xA1,0xEB,0x10,0xEE,0x23,0x05,0x61,0x1D,0x2E,0x45,0xD8,0xB2,0x99,0x77, + + 0xA5,0x82,0xA9,0xF3,0x11,0x40,0xFC,0x4B,0x57,0x02,0xE1,0x4E,0xB1,0x23,0x33,0x40, + + 0x1E,0xD3,0x74,0x2F,0x9C,0x65,0x00,0xB3,0x0E,0x28,0x8E,0x86,0x42,0xCF,0x30,0x42, + + 0xFC,0xB0,0xF6,0x52,0x2B,0x8A,0xBB,0x8E,0x67,0xE9,0x27,0x0A,0x7D,0xBA,0x41,0x68, + + 0x7F,0xB2,0xB8,0xEA,0x9A,0x04,0x6B,0xFE,0x3D,0xCB,0x71,0x65,0x2F,0x97,0x31,0x75, + + 0x62,0x9B,0x69,0x26,0x1F,0x74,0x21,0x9B,0x6F,0x4A,0xF6,0xD0,0x0A,0xFB,0x8B,0xFB, + + 0x8C,0xA5,0xA2,0x8C,0x98,0xED,0x48,0x99,0x20,0x4B,0xE0,0x3C,0x58,0x62,0x74,0x1E, + + 0xE0,0x06,0xAA,0x36,0x99,0x77,0xA2,0x05,0xB6,0x5B,0x88,0x38,0xBB,0xE9,0x7B,0xB9, + + 0x0E,0x4B,0xA3,0x63,0x18,0x7C,0x6A,0x5F,0xEC,0xB5,0xE6,0xDE,0x5C,0x17,0x59,0xBA, + + 0x62,0x6F,0xAB,0x7B,0x19,0x77,0xA3,0x85,0x44,0x29,0x9B,0xFD,0x25,0x0A,0x3B,0xB9, + + 0xA9,0x1C,0xBC,0x4B,0xAB,0x23,0x43,0x8A,0x83,0x43,0x06,0x36,0x93,0x28,0x9E,0xA6, + + 0xFA,0x6E,0x5A,0x9C,0x03,0x10,0xFA,0x98,0x4F,0xEF,0xE5,0xF2,0xAA,0x5B,0xFC,0x74, + + 0x75,0xD3,0xFD,0xAF,0x36,0x21,0x2A,0x1A,0x4E,0xEC,0x07,0x3E,0x5E,0x18,0x30,0x27, + + 0x51,0x92,0xDD,0x5B,0x0A,0xE0,0xFF,0x1B,0xF9,0x40,0xE5,0x7B,0x49,0x67,0xDC,0x6C, + + 0x4B,0x1F,0x3A,0x86,0x68,0x04,0x34,0x1C,0xF0,0x14,0x04,0x0B,0x78,0xE0,0x9C,0xE3, + + 0x5B,0xB0,0x68,0xB3,0xD6,0x21,0x64,0x97,0xBE,0x0E,0x3C,0xC7,0xFD,0x22,0x85,0xF2, + + 0xDE,0x97,0x25,0x8B,0x3C,0xBF,0x36,0xA6,0x0D,0x62,0xAB,0xA3,0xC8,0xDD,0x35,0x6E, + + 0x48,0x80,0x62,0x7E,0x40,0x6C,0x3D,0x15,0x4C,0x63,0xE3,0xB2,0x50,0x32,0xBB,0xBB, + + 0x0C,0xAB,0xBF,0xCA,0x91,0x89,0x71,0xE6,0xF6,0x30,0xD4,0x2D,0xC4,0x74,0xCE,0x03, + + 0x80,0x5A,0x6F,0x36,0xD3,0x89,0x06,0xF1,0xED,0x14,0xFE,0xAB,0xA6,0xC9,0x4D,0xD4, + + 0x30,0x1C,0xF7,0xFD,0x41,0x6B,0x6F,0x66,0x09,0x59,0xC2,0x9F,0x6E,0x79,0xDD,0x96, + + 0x31,0xA8,0xFC,0x37,0x2F,0x38,0xA8,0xF0,0xE1,0xFA,0xA6,0x86,0x50,0x0B,0xD2,0x76, + + 0x0C,0xB7,0xB3,0x6E,0xC1,0x47,0xEC,0xA0,0xB7,0x07,0xDE,0xB8,0xC1,0xD9,0x36,0xBC, + + 0x95,0x1A,0x2A,0xE6,0x8E,0x34,0xE6,0xB0,0xB6,0x06,0x6B,0x42,0x3D,0x44,0xA3,0xEB, + + 0x57,0x7F,0x17,0x86,0x3C,0x6E,0x37,0x41,0x45,0x6A,0x37,0x47,0x1D,0x3B,0xBE,0x38, + + 0x11,0x58,0x3B,0xD7,0x70,0x7F,0x3F,0x59,0x79,0x1F,0x89,0xBB,0x4A,0x36,0xC1,0x1B, + + 0x89,0x41,0xF4,0xF5,0xEB,0x2F,0xF6,0xC1,0x81,0x18,0xAB,0x04,0x68,0x81,0x1E,0xAF, + + 0x33,0x5A,0x69,0x3E,0xDB,0xAC,0xFA,0x9A,0x80,0x52,0x25,0x87,0x55,0xC2,0xD7,0x8F, + + 0x61,0x83,0xD1,0x2F,0x41,0x03,0x69,0xEE,0xDC,0xF1,0x40,0x12,0x0F,0x1D,0x21,0xAB, + + 0x26,0xA9,0xE0,0x6C,0x18,0xA0,0xEB,0x9B,0xCF,0x55,0xE4,0x58,0x08,0x02,0x9F,0xE0, + + 0x20,0x8D,0x80,0xA3,0x8C,0xE4,0xA0,0x40,0xB3,0xA5,0x24,0x77,0xD0,0x81,0xC4,0x69, + + 0x9B,0x1C,0x92,0x91,0xB9,0xBD,0x80,0xCD,0x55,0x8C,0x4D,0x37,0x11,0xD5,0xD8,0x24, + + 0x25,0xFD,0x00,0x00,0x65,0xFD,0x09,0xDC,0x49,0x83,0xD1,0xB6,0xD0,0x89,0xC8,0x37, + + 0x20,0x75,0x87,0x11,0x04,0x3F,0x96,0xD1,0x69,0x3E,0x19,0x39,0x59,0xEE,0x01,0x02, + + 0x4E,0x1B,0xE1,0x70,0xB5,0xE5,0xE0,0xCD,0x4E,0x94,0xF3,0x95,0xD2,0x39,0x06,0xB0, + + 0xBE,0x08,0xFE,0x50,0x86,0xEA,0x40,0x81,0xE4,0xA0,0x87,0x0C,0xCD,0x7A,0xDA,0xD8, + + 0x71,0x76,0x14,0xB9,0x8E,0x9B,0x54,0x65,0x52,0xA2,0x14,0x99,0x2F,0xB0,0xC2,0xA8, + + 0xA3,0x3A,0xD7,0xB5,0x87,0xE8,0x41,0x57,0xC4,0x07,0x7E,0xA4,0x74,0x29,0xDD,0x82, + + 0xA9,0x5E,0x8C,0x09,0xCD,0xA7,0x4A,0x0E,0xA1,0xF8,0x22,0xEE,0x58,0x05,0xBA,0xE5, + + 0x8F,0xAE,0x83,0x44,0xD4,0xCD,0x1A,0x6E,0xA0,0xF9,0x06,0x1A,0xC5,0xAD,0x5B,0x2C, + + 0x71,0x85,0x17,0x45,0x55,0xEE,0xC9,0x23,0x13,0x95,0x23,0x80,0x2B,0xAA,0x63,0x79, + + 0x76,0xCB,0x80,0xC0,0x24,0x75,0xC3,0x33,0x12,0x94,0x1A,0x38,0x3C,0x8D,0x1B,0xB9, + + 0xAD,0x51,0x72,0x24,0xC2,0xA3,0xD4,0x88,0x56,0x21,0xC8,0x30,0xE1,0x61,0x91,0x61, + + 0xAC,0x26,0xD8,0x66,0xEC,0x90,0xFC,0x1D,0xA4,0xC2,0x87,0x54,0xDB,0xAC,0x41,0x6B, + + 0x09,0x1C,0xD1,0x15,0x02,0xA1,0x36,0x4F,0x70,0x11,0xDC,0x81,0x3F,0x72,0x13,0x53, + + 0x72,0x7E,0x48,0xBD,0x7F,0x3E,0x7E,0x1C,0xD5,0x8E,0x8A,0x7F,0x56,0xD8,0xB4,0x7A, + + 0x24,0x2B,0x8D,0xDC,0xFD,0xD4,0x17,0xA5,0xC9,0xE0,0x24,0xD5,0xF0,0xC1,0xC0,0xED, + + 0x01,0x97,0x82,0x90,0xA4,0x2D,0x1C,0xC2,0xFD,0x95,0x6D,0x45,0xF9,0x7C,0xA4,0x07, + + 0xEE,0x4F,0x8E,0x65,0x18,0xAE,0x4D,0x84,0x3B,0x8D,0xCB,0xA1,0x1D,0x96,0x83,0xDD, + + 0x04,0x12,0x83,0x90,0x64,0x4D,0x9C,0xB4,0x44,0xB6,0x59,0x93,0x08,0x47,0x1B,0xB0, + + 0xF4,0x0B,0x59,0xD8,0x95,0x31,0x71,0x89,0x0E,0x90,0x20,0x09,0x74,0x1A,0x9C,0x01, + + 0xC6,0xF9,0x4B,0x34,0xD7,0x49,0xC6,0xD6,0xD9,0x0A,0x41,0x7D,0xC8,0x05,0xDE,0x63, + + 0x4B,0x34,0x1E,0xEC,0x15,0xCB,0x0C,0xF5,0x45,0xC6,0x71,0x6C,0xF7,0x76,0x8A,0x2C, + + 0x46,0x41,0xC3,0x35,0xC3,0x0B,0xFC,0x98,0x8F,0x93,0x94,0x84,0x16,0xC8,0x24,0x75, + + 0xCD,0xFB,0x1F,0x50,0x8D,0xBC,0xCC,0xA2,0xB3,0x87,0xCE,0x9C,0xCC,0xF7,0x16,0x08, + + 0x2D,0xD8,0x0A,0xEC,0xB3,0xDC,0x9F,0xBD,0xCC,0xBC,0xAF,0xE0,0xA5,0xF6,0xB7,0x09, + + 0x35,0x8F,0x4A,0x84,0x38,0xEE,0x17,0x63,0x74,0x9E,0x18,0xB5,0x5F,0x7F,0x65,0x86, + + 0x52,0x30,0x57,0x97,0x62,0x84,0xC7,0xB3,0x32,0x84,0x8D,0x83,0x0A,0xBA,0x9D,0x4E, + + 0x68,0x9C,0xB3,0x30,0xDF,0x2F,0x0F,0x8C,0x85,0xD3,0x0F,0xCA,0x4D,0xEE,0x54,0x40, + + 0xDC,0x99,0x45,0x6F,0x9C,0x02,0xDA,0xD6,0x84,0xB9,0x2A,0x00,0x86,0x9E,0xCB,0xB9, + + 0x74,0x21,0x9C,0xA1,0x5E,0x0F,0x76,0x8D,0xCA,0x73,0x48,0xD2,0x01,0x23,0xEB,0x5F, + + 0xE9,0x9F,0xD5,0x67,0x4C,0xFE,0x42,0x7C,0x04,0xD0,0x80,0x85,0xD1,0x60,0x2D,0xA5, + + 0x99,0x02,0x64,0xE2,0x00,0xAB,0xC4,0xDA,0xD3,0x6F,0xC0,0xB4,0x14,0x22,0xE9,0x50, + + 0x4D,0x9C,0xD2,0x11,0x9F,0x6E,0xA2,0xCB,0x51,0x8C,0x8D,0xB0,0x26,0xEA,0xEF,0x10, + + 0x1E,0x3F,0x01,0x82,0x37,0x32,0x81,0x57,0x33,0x52,0x80,0x25,0xD6,0x29,0xEC,0xEB, + + 0x38,0x55,0xD3,0x05,0xBE,0xA6,0xE2,0x39,0x24,0xBC,0xC9,0x05,0xDD,0x21,0xC0,0xD1, + + 0x8E,0xA6,0xE9,0x56,0xB3,0xBB,0xD4,0x99,0x62,0x06,0x28,0x6C,0xB3,0x2B,0xE8,0x92, + + 0x8F,0x0A,0xDB,0x37,0x9B,0x71,0x78,0x0E,0xE0,0x20,0xFC,0x18,0xBA,0x1C,0xE1,0x23, + + 0x54,0x08,0x75,0x27,0x69,0x64,0x17,0x1F,0x40,0x5A,0xAF,0x08,0x57,0x67,0xFD,0x2E, + + 0x20,0xA7,0xF7,0x89,0x1C,0xA1,0xE6,0x93,0xF0,0x0C,0xC3,0x71,0xF2,0x27,0x7F,0x15, + + 0x9B,0x05,0x94,0x0A,0xF3,0x6C,0x82,0x5A,0xC6,0xD7,0x5B,0x7F,0x2F,0x9F,0x21,0xF7, + + 0x2D,0xA2,0xF4,0x1B,0x3D,0x27,0x40,0x3C,0xC7,0x96,0x2B,0x48,0xB8,0xD6,0x39,0x42, + + 0x3F,0x87,0xBD,0xEF,0xF2,0x4E,0x49,0x28,0x46,0xF5,0x4C,0xD7,0x64,0x83,0x73,0x99, + + 0x74,0xFA,0x2F,0xDF,0x1D,0x34,0x41,0x3C,0x47,0xB4,0x5B,0xC8,0x53,0x68,0xD4,0x3B, + + 0x66,0x07,0xC6,0x0C,0x42,0xA1,0xEA,0x58,0x4A,0x93,0xF6,0x00,0x69,0xD7,0xFE,0xDC, + + 0x61,0xDC,0xB4,0x31,0x99,0x31,0x3A,0x32,0x8B,0x42,0xFE,0x10,0x68,0x29,0xF5,0x58, + + 0xEE,0x0A,0xBD,0x91,0x71,0x95,0x12,0x0F,0xA8,0x0E,0x6B,0x4D,0x3B,0x2E,0x92,0xF6, + + 0xB4,0x0D,0x2C,0xBF,0x13,0xD4,0xEF,0x27,0x68,0x0D,0x81,0x27,0x7C,0x7F,0x83,0x53, + + 0x83,0x4E,0x6B,0x06,0xA1,0x6B,0xEC,0xA8,0x9D,0x1F,0x8E,0xD7,0x14,0xF6,0x27,0x7E, + + 0xC0,0x0D,0x22,0xF6,0x90,0xCE,0xB8,0x52,0xE2,0x35,0x82,0x48,0x71,0xE4,0x3F,0xDA, + + 0x1F,0x9F,0x45,0xD0,0xD8,0x34,0x85,0x8B,0x64,0xF6,0x95,0x65,0xF7,0x87,0x70,0xB5, + + 0x1C,0xE5,0xED,0xDF,0x86,0x3E,0x75,0xB7,0xE7,0x41,0x0F,0x8E,0x9D,0x31,0x1B,0x40, + + 0x51,0x63,0x44,0xA5,0x85,0x99,0x74,0xE5,0x6F,0x8E,0x6B,0x02,0x62,0xE9,0x32,0x1C, + + 0x25,0x3C,0x35,0x74,0x13,0xE6,0x5A,0x18,0xEB,0x18,0xE6,0xFC,0xD4,0x65,0x85,0x39, + + 0xDA,0x9B,0x0E,0xA5,0xB6,0x1F,0x54,0x92,0xFD,0x5D,0x2D,0xED,0x0B,0x39,0xA9,0x39, + + 0x2B,0x5A,0xF3,0xB8,0x51,0x17,0x45,0x4D,0xC1,0xE5,0x25,0xFD,0x54,0x67,0x78,0x6A, + + 0x9D,0xCE,0x6A,0x13,0x39,0x58,0x7D,0x2C,0x7A,0xC6,0xD0,0xD2,0x4B,0x63,0x86,0x7A, + + 0x98,0x8F,0x71,0x18,0x4C,0x0C,0x5F,0x62,0x88,0x32,0x61,0xC6,0x0F,0xA6,0x8F,0x6B, + + 0x11,0xAC,0xBD,0x7E,0x85,0xB7,0xD7,0x21,0x3B,0x18,0x2F,0x55,0xF8,0x8B,0x01,0x7B, + + 0x8D,0x06,0x9F,0x0D,0xB5,0x79,0x25,0x3E,0x45,0xF7,0x20,0x8C,0x58,0x84,0x1E,0xDC, + + 0xC3,0xE6,0x85,0x24,0x41,0x71,0xD2,0xAD,0x3D,0x58,0x2E,0x1F,0x21,0x7A,0x1E,0xF8, + + 0x69,0xB0,0xCA,0x59,0xD2,0xA7,0x26,0xDF,0xCA,0x56,0xC9,0xCC,0xF9,0x61,0x1F,0xCD, + + 0x2F,0xAC,0x8D,0xC8,0x45,0xC9,0x6D,0x6B,0x7B,0x05,0xFE,0x15,0xFC,0x96,0x80,0xB9, + + 0xA9,0x92,0xDD,0x9F,0x50,0xC4,0x5E,0x7B,0x7A,0x5A,0x27,0xF5,0x06,0x30,0xDF,0x7C, + + 0x2A,0x5F,0x9A,0x81,0x37,0xE2,0xA0,0x58,0xA3,0xD0,0x20,0xD3,0x67,0x45,0xFC,0x48, + + 0x94,0xE2,0xAF,0x31,0xB9,0xC7,0xC2,0x3A,0xB8,0x0E,0xE3,0x50,0x8B,0x6A,0x1E,0xA6, + + 0x7F,0x1E,0xFB,0x06,0x1A,0xA9,0x0E,0xD5,0xD4,0x1F,0x09,0xD8,0x59,0xF9,0x00,0x93, + + 0x4A,0x63,0xD0,0xE7,0x9D,0xC5,0xA9,0x49,0x66,0xA6,0x99,0xC4,0x76,0xF1,0xCF,0x2D, + + 0xDB,0x58,0xDE,0xAF,0x9B,0x22,0xED,0x82,0x40,0x2C,0xCA,0x80,0xD4,0xF8,0xA0,0x30, + + 0x44,0x75,0x37,0x25,0x2C,0xCB,0xF6,0x43,0xC5,0x29,0xC0,0x89,0x47,0x38,0xD8,0x1D, + + 0x04,0x82,0xE1,0x87,0x92,0x82,0x77,0xA3,0xCA,0x84,0xAA,0x05,0x21,0x83,0x16,0xAB, + + 0x87,0x23,0x8B,0x55,0x96,0xE7,0xD4,0x11,0x38,0xC1,0x01,0x7F,0x2A,0xA8,0xC7,0x70, + + 0x9A,0x95,0xDC,0x08,0x8C,0xCC,0x0D,0xC8,0xE0,0x15,0x0A,0x5E,0xDC,0x4E,0xCF,0xE1, + + 0xFC,0xDF,0x4E,0x76,0x3C,0x54,0xAA,0x40,0xEA,0xD9,0xC4,0x0A,0xB6,0x08,0x46,0x4B, + + 0x98,0x37,0x99,0xEA,0xFF,0xEA,0x4B,0x0C,0x31,0xC5,0xCB,0x6F,0xF9,0x67,0x50,0x71, + + 0x17,0x94,0x1F,0x38,0x31,0xAF,0x04,0xDD,0xDD,0x16,0x17,0x4C,0xB1,0x4D,0xF8,0xE2, + + 0xC6,0x65,0xC6,0xB3,0x3E,0xBD,0x5B,0x48,0xEF,0xA2,0x46,0x0C,0xAD,0x89,0xB1,0xF5, + + 0x70,0x8F,0xFB,0xDA,0x18,0x56,0x22,0x72,0xCD,0xD1,0x02,0x76,0xA6,0xA2,0x36,0xCF, + + 0xE1,0x0E,0x63,0x4C,0xE1,0xE2,0x94,0x2B,0xC2,0x33,0xCB,0x94,0xCE,0x73,0xDE,0x2E, + + 0x3B,0x46,0x54,0x2F,0x97,0xA6,0x4B,0xFF,0x82,0x6E,0xFA,0x01,0x78,0xFF,0x3C,0x9F, + + 0xD5,0xFC,0xFB,0xBE,0x32,0x1B,0x90,0xF1,0xC7,0x7C,0x0F,0x03,0x83,0x7B,0x53,0xEC, + + 0x2B,0x4E,0x84,0x7A,0x8B,0xCA,0x15,0x50,0xC9,0x7D,0xE6,0x19,0x03,0x5E,0xE1,0x79, + + 0x5D,0xF0,0x77,0x7B,0x3C,0x49,0x91,0xE9,0x2D,0x96,0xF5,0x9A,0x1F,0xB6,0x92,0x16, + + 0x5A,0x8D,0xED,0x7F,0x71,0x7E,0x99,0xE0,0x46,0x7F,0x19,0xF5,0x79,0xFF,0x3D,0xC1, + + 0x81,0xD8,0x9D,0xB4,0x0D,0xD0,0x0C,0x11,0x5D,0x98,0x40,0x62,0x3B,0x45,0x27,0x21, + + 0x1C,0x93,0xD6,0x25,0x0A,0xB1,0x1E,0xF3,0x66,0xA5,0xFD,0x89,0xD0,0x55,0x75,0x85, + + 0x96,0x39,0x19,0xAD,0xAC,0xD9,0x64,0x90,0xB1,0xB8,0xE7,0x61,0x67,0xB9,0x44,0x49, + + 0x04,0x3A,0xA8,0xA4,0x8A,0x30,0x47,0x00,0xDC,0x78,0xB2,0x84,0xAC,0x70,0x5A,0xAE, + + 0x9D,0x91,0xD8,0x36,0x2C,0x75,0x92,0xE0,0xA5,0x9C,0x16,0x46,0xAE,0x35,0xD1,0xE4, + + 0x03,0x46,0xF5,0x91,0x3B,0x52,0x56,0xBC,0x8C,0xBF,0x0A,0xDC,0xA3,0x06,0xA0,0xF4, + + 0x21,0xF9,0xD9,0x36,0xC7,0xAC,0x1E,0x8F,0x6F,0xBE,0x48,0x53,0xFC,0x96,0x10,0x3E, + + 0x56,0x06,0xFD,0x1B,0x82,0xB4,0xC7,0xB3,0x8E,0xFB,0xB9,0xB9,0x36,0xBF,0xA9,0x2A, + + 0x5E,0x87,0x66,0x5E,0x0D,0x07,0x29,0xAC,0x5E,0x73,0xF0,0x8D,0x15,0x07,0xFC,0x1C, + + 0x0F,0x32,0xE9,0x2F,0x40,0x21,0x57,0xF8,0xCE,0x02,0xDE,0x1E,0x96,0x27,0x43,0xAD, + + 0x51,0x97,0x5F,0x1F,0xB2,0xB7,0xEA,0xE8,0x7A,0xD8,0xDC,0x9D,0x15,0x87,0x24,0x27, + + 0xAF,0x04,0xB6,0xD9,0xDC,0x23,0xCB,0x99,0x10,0xD9,0xE5,0xFE,0xDC,0xDE,0x7E,0xDC, + + 0x06,0x48,0xC4,0xDB,0x16,0x22,0x6E,0xC9,0xC2,0x5C,0x07,0xDB,0xA5,0xF3,0x01,0xEE, + + 0xE8,0xFA,0xC8,0xE7,0x17,0x23,0x28,0xD2,0x63,0x43,0xA2,0xCB,0x57,0x4A,0x0D,0x41, + + 0x86,0x40,0xAF,0x76,0x91,0x60,0x72,0xC3,0x42,0x5E,0xB1,0xB1,0x28,0x91,0xF2,0xE9, + + 0x81,0x8E,0xA7,0x04,0x90,0x8E,0x9D,0x11,0xD5,0x2B,0x2D,0xB1,0x93,0x2B,0xC0,0x23, + + 0xD7,0x68,0xE6,0xF1,0x28,0x4A,0x56,0x20,0xAB,0x4C,0x0B,0x9B,0x2D,0x9B,0xB7,0x23, + + 0x75,0xA4,0xF6,0xF8,0xD9,0x36,0x18,0x97,0xA8,0x21,0xCE,0xCD,0xAC,0xC8,0x7F,0xFD, + + 0x48,0x4E,0xFF,0xE8,0x58,0x15,0x23,0x11,0x61,0x04,0xF1,0x69,0x3B,0x15,0xC1,0xA2, + + 0x8A,0xAA,0x81,0x51,0x3A,0xE0,0x61,0x8A,0x6F,0x4A,0x08,0xC4,0xA1,0xB8,0x14,0xFD, + + 0x3B,0x6C,0x8A,0xBE,0x79,0x65,0x2C,0xF4,0x6A,0xA5,0x80,0xB2,0x5E,0x4A,0xF2,0x6A, + + 0xE2,0xB2,0xEA,0x4B,0xF6,0x24,0xE5,0xBA,0x84,0x34,0x0D,0xC3,0xA8,0xBA,0xFB,0x73, + + 0xFE,0x18,0xBD,0xBC,0xBB,0xA8,0x10,0xC1,0x28,0x07,0x2D,0xA9,0xDA,0x69,0x2D,0xEC, + + 0xD2,0x0F,0x4B,0x8D,0xA3,0xD6,0x23,0x04,0x6A,0x4F,0x60,0x4E,0xA7,0x29,0xCA,0x78, + + 0x02,0xB3,0xFE,0xEE,0xE2,0xDF,0x32,0x52,0xEA,0xF0,0x71,0xC0,0x86,0x1F,0x99,0x1F, + + 0xD1,0x90,0x7E,0x42,0x69,0x6F,0x04,0x29,0xBB,0xE6,0x0C,0x0F,0x69,0xCB,0x79,0xEC, + + 0x79,0xA3,0x74,0xF1,0x9C,0x05,0x2B,0x4E,0x33,0x41,0x3F,0x1E,0xE0,0xC8,0x51,0x5B, + + 0x38,0x84,0x8F,0x23,0x70,0xEC,0xD1,0x5B,0xA0,0x27,0x09,0x3D,0x9F,0xCB,0x24,0x7D, + + 0x81,0x13,0x7B,0xA3,0x91,0x36,0x94,0x46,0x8B,0xE9,0xEC,0xA0,0x99,0xA3,0x76,0xF0, + + 0x2D,0xB5,0x38,0xEB,0x92,0x84,0x26,0x32,0xA8,0xC6,0xDC,0x5B,0x77,0x73,0xBD,0x89, + + 0x49,0xF9,0xB6,0xA7,0x6D,0x3D,0x75,0xF7,0x8C,0x5D,0xA7,0x95,0xA4,0x30,0xD3,0x48, + + 0x92,0x77,0xDF,0xAA,0x9F,0x71,0x65,0x4E,0x96,0x11,0xCD,0x88,0x0E,0xAE,0x7A,0x80, + + 0xC2,0x95,0x12,0xB7,0x77,0x85,0xE0,0x82,0xDD,0x16,0x85,0x06,0xDE,0xD9,0x34,0x60, + + 0xD7,0x57,0x9F,0x27,0xBF,0x38,0x22,0x45,0xD6,0x86,0xF0,0xC2,0x3B,0xA6,0x15,0x32, + + 0x26,0xBB,0xBB,0xC3,0x5B,0x9E,0x17,0xA8,0x5F,0xA7,0x80,0x07,0xBA,0x85,0x89,0x14, + + 0xEB,0x1F,0xB3,0x7D,0x1F,0x3A,0x23,0x45,0x0A,0x9F,0xE9,0x1B,0x1A,0xF4,0x3C,0x6E, + + 0x3A,0x55,0x5D,0x56,0xE4,0x70,0xD6,0xE5,0xF7,0x1A,0xC5,0xAE,0x62,0xF5,0x41,0x7E, + + 0xAB,0x05,0x06,0xDC,0x35,0x92,0x9A,0xCA,0x82,0xC3,0xC2,0x9B,0x12,0x76,0xFF,0x81, + + 0x0D,0xB2,0xDD,0x89,0x37,0x9C,0x48,0x27,0xC8,0x5B,0xE8,0x92,0x8E,0x38,0x52,0xFB, + + 0x56,0x1D,0x07,0x99,0xD2,0xC8,0x7F,0xF3,0xD6,0xF6,0x1F,0xCE,0x8F,0xFE,0x78,0x88, + + 0xC8,0x95,0xB8,0x65,0xD9,0x37,0x41,0x1B,0xEE,0xF1,0xA9,0x14,0x7A,0xFD,0x30,0xDF, + + 0x8A,0xA2,0x96,0xC8,0x4C,0xC2,0x98,0xC9,0x11,0xF2,0x21,0x78,0x79,0x38,0x79,0x4D, + + 0xA8,0x71,0x43,0xBE,0x88,0xB1,0x59,0x51,0xEC,0x5C,0x28,0x12,0x0B,0xFD,0xFB,0xBB, + + 0x29,0xCA,0x10,0x22,0x3B,0x6F,0x0A,0x8A,0x99,0x8C,0x24,0x8E,0xBE,0x8E,0x2D,0x86, + + 0x5F,0x9C,0xFE,0xE4,0x10,0x25,0x36,0x50,0xC6,0x2C,0xF4,0x45,0x52,0xE2,0xDE,0x60, + + 0xA6,0xC3,0x96,0xF4,0x95,0x31,0x28,0x55,0x15,0xC2,0xC9,0xC7,0x23,0xC1,0xC9,0x9F, + + 0x06,0x8A,0x5E,0x85,0x28,0xA0,0x8C,0xC1,0x2D,0x18,0x9F,0x36,0xAA,0xE6,0x78,0x13, + + 0x4D,0xB8,0x93,0xEC,0x6A,0xE1,0x87,0x02,0x47,0x2F,0x87,0x8B,0x58,0x45,0x40,0xC8, + + 0x05,0xC4,0x54,0x24,0xFD,0x47,0xC3,0x93,0x07,0xC7,0x22,0xCE,0x9E,0x07,0x84,0xC1, + + 0x65,0x8D,0x3A,0xA4,0x34,0x65,0x94,0xE1,0x4E,0xCD,0x9E,0xDF,0xBE,0xB6,0xBE,0x42, + + 0x6F,0xAE,0x9B,0xA7,0x9A,0x0B,0xD6,0xDE,0x2F,0x35,0xA4,0x20,0x3F,0x95,0x6F,0x20, + + 0xE5,0x05,0x32,0xA8,0xE8,0x58,0xF9,0x10,0x52,0x6A,0x9F,0xDF,0xD4,0x27,0x6D,0x8E, + + 0x41,0x52,0xFE,0x29,0x1A,0xAA,0x8F,0x48,0xC1,0x4E,0x3A,0xEE,0x1D,0x45,0x55,0xE5, + + 0x0B,0x50,0xD2,0x39,0xE0,0xA6,0x2B,0xFC,0x17,0x85,0x7A,0x28,0x5B,0x6B,0x73,0x96, + + 0xC8,0x07,0x17,0x8D,0x20,0xA8,0x35,0x6B,0x9E,0x86,0xE5,0xCF,0x8E,0xA8,0xA8,0x5D, + + 0xDB,0x8D,0xCB,0x30,0x9F,0xA6,0x3A,0xD3,0x95,0x40,0xEE,0xC3,0xDD,0x40,0x1C,0x0B, + + 0xE7,0x5F,0xC2,0x43,0x18,0x2E,0x24,0x8A,0x11,0x8E,0xD4,0xC2,0x6C,0x48,0x14,0x1A, + + 0x09,0xEF,0x15,0x2D,0x79,0x7E,0x61,0x8B,0x3D,0xCD,0x5A,0x6D,0x16,0x89,0x33,0x29, + + 0xF4,0x03,0xEE,0x3C,0xF0,0x5F,0xB3,0x7D,0xC8,0x85,0x26,0xC6,0x16,0x26,0x96,0xAA, + + 0x2C,0xCF,0x10,0x41,0xF9,0x5B,0xBB,0xFA,0x3A,0x90,0x3B,0xFB,0xD4,0x42,0x0D,0xA0, + + 0x85,0xFC,0xA0,0xF5,0x4A,0xDC,0xF9,0x40,0x57,0xF4,0xA6,0xBA,0x72,0xF2,0xF3,0x6D, + + 0x46,0x6E,0x92,0x27,0x16,0xE3,0x3E,0x50,0x61,0xEA,0x2B,0x49,0x84,0x22,0xC2,0x43, + + 0xA8,0x39,0xC3,0xC3,0xB7,0x9A,0x8D,0xC3,0xE8,0xDF,0x48,0x23,0xF6,0xF1,0x4D,0xC5, + + 0x5D,0x9C,0xCD,0xC0,0x5A,0xBE,0x9C,0xAC,0xCB,0x67,0x46,0x33,0xF7,0x9C,0x34,0x99, + + 0x85,0xF1,0xDA,0x6F,0x5E,0x07,0x0A,0x4A,0x60,0x96,0x8A,0xE0,0x9F,0x5C,0xDF,0x23, + + 0x62,0x96,0xBF,0x28,0xE3,0xA6,0x44,0xC3,0x1D,0x7A,0x03,0x85,0x59,0x44,0x5A,0x21, + + 0xCD,0x3E,0x1A,0xB4,0x84,0x15,0xF8,0x81,0x11,0xB3,0x26,0x63,0xF4,0x14,0x33,0x96, + + 0x57,0x3C,0x4A,0x7E,0xB1,0xF5,0xA8,0x80,0x95,0x04,0x82,0x85,0xD9,0x68,0x92,0x68, + + 0xAE,0x54,0x66,0x6A,0x4D,0x63,0x64,0xA5,0x06,0x55,0x76,0x2E,0xB5,0x58,0x10,0x43, + + 0x0E,0xF9,0xBC,0x00,0x3B,0x9B,0x58,0x0B,0x92,0x54,0x6D,0xBF,0x94,0x2A,0x90,0x69, + + 0x00,0x95,0xA7,0x0B,0xFE,0xF2,0x49,0xEB,0x61,0x57,0x64,0xAD,0x16,0x51,0x71,0x42, + + 0xA5,0x16,0x11,0x1B,0xBF,0xB8,0x5D,0xBB,0x1A,0x99,0x13,0x2C,0xD3,0xF3,0x6C,0xE8, + + 0xAE,0x9F,0x6B,0xAC,0xD5,0xEF,0x08,0x46,0xE3,0x71,0x36,0x7A,0x7E,0xBD,0xAA,0x35, + + 0x29,0xBF,0x94,0x3E,0x33,0x10,0x2F,0x69,0x09,0xD7,0x72,0x5A,0x7D,0x02,0x5D,0x38, + + 0xAF,0xDC,0x53,0xAD,0x55,0xCD,0x22,0x78,0x80,0x73,0xF7,0x65,0x99,0x57,0x80,0x5F, + + 0xA1,0xF5,0x3E,0x2D,0x9C,0x7F,0xFD,0xE8,0x89,0xCC,0x7C,0xFF,0x98,0x36,0x1E,0x50, + + 0x26,0xF0,0x30,0x7C,0x24,0xF0,0x10,0xF4,0x73,0x10,0x2F,0xDB,0xAF,0xDC,0x69,0x79, + + 0x85,0x43,0xFB,0x7F,0x11,0x71,0x18,0x04,0x2C,0xAA,0x5E,0x34,0x15,0x70,0xFA,0x7F, + + 0x80,0x14,0x81,0x08,0xA2,0x5B,0x92,0xD5,0xA1,0x42,0xE4,0xD5,0x87,0x53,0x99,0x35, + + 0x89,0x23,0xC8,0x21,0xCE,0x28,0x9F,0x25,0x3E,0xBC,0x17,0x2F,0x69,0x1D,0x4F,0xF9, + + 0x69,0x03,0x7E,0xC0,0x65,0x3B,0x50,0xD0,0x19,0xFF,0xCC,0xAE,0x7B,0xFB,0x4C,0xDC, + + 0x38,0xFB,0x08,0x88,0x50,0x8A,0xE3,0x2B,0xE5,0x63,0xFC,0xE7,0xDB,0x82,0xBE,0x86, + + 0x10,0x85,0x62,0xFD,0x4E,0x95,0xB6,0x26,0x67,0xB9,0xF5,0xE9,0x5A,0x8F,0x7D,0x1D, + + 0x99,0x3D,0x18,0x72,0x32,0x88,0xC6,0xB5,0xAD,0x47,0x19,0xA9,0x41,0xCA,0xFD,0xF6, + + 0x9F,0x1E,0xDF,0x0A,0x88,0x4E,0x6C,0x5C,0x0F,0xB8,0xEA,0xC3,0xE5,0xB6,0x0E,0x05, + + 0xF0,0x1E,0x75,0x11,0x15,0x09,0x65,0x12,0x0E,0xC3,0x84,0x70,0x6B,0x88,0xD9,0x78, + + 0xAA,0xFA,0x30,0xCE,0x7D,0x35,0xEC,0x34,0x37,0xB5,0xFB,0x83,0x70,0x1E,0xD1,0xC9, + + 0xAF,0xFB,0xCA,0xB8,0xB4,0xA0,0x15,0xD1,0xDD,0xB4,0xDE,0x24,0x91,0x6B,0xFA,0x8F, + + 0xD0,0x06,0x17,0x3F,0x73,0x53,0x29,0x9E,0xFB,0x32,0xC8,0xFC,0xA1,0xC1,0xA3,0x53, + + 0x6D,0x7F,0x7D,0xE5,0xE0,0xB6,0x42,0x34,0x21,0x1C,0x9C,0x0F,0x3A,0xEC,0x87,0x1D, + + 0xB5,0x62,0x1A,0x4D,0x6E,0xBD,0x24,0xF2,0x1E,0xF7,0x86,0x2A,0x00,0x64,0x03,0xDB, + + 0x18,0x28,0xCB,0xD9,0xDD,0x85,0x99,0x65,0xCB,0xA2,0x20,0x86,0x32,0x5C,0x6F,0x27, + + 0x06,0x8E,0x7B,0xE3,0xD6,0xC9,0xBF,0x5F,0x60,0xAF,0x85,0xB1,0x70,0x01,0xA1,0x32, + + 0x27,0x8F,0xB9,0xE6,0xD4,0x1D,0xBE,0xC1,0x47,0xA1,0xF6,0x3E,0x3E,0xE0,0x80,0x9C, + + 0xA6,0x33,0x09,0x85,0x8C,0x29,0x33,0x53,0x94,0x6E,0x5C,0x96,0x5B,0x8D,0x7E,0x9C, + + 0xAD,0x90,0x50,0xD8,0xBF,0x01,0x81,0xD4,0xCC,0xFA,0x9D,0xB5,0xB3,0x62,0x39,0xBE, + + 0x97,0xD9,0x0F,0x13,0x49,0x24,0xAA,0x3E,0x80,0xC0,0xEA,0x95,0x12,0xAB,0xEA,0x77, + + 0xBE,0x08,0x98,0xCB,0x15,0x98,0x96,0x58,0x75,0x75,0x3B,0xB4,0x77,0x51,0x7B,0x4C, + + 0xF0,0x4F,0x05,0x51,0xF9,0xE2,0x0B,0x67,0x40,0xDD,0x2A,0x96,0xC0,0x1A,0xB4,0xB2, + + 0x2E,0xF3,0x9D,0xEB,0xCF,0x2C,0x5D,0xE0,0xFF,0x55,0xE3,0x71,0xA4,0x8B,0x8B,0xD3, + + 0x4A,0x80,0x53,0x61,0x90,0x86,0x08,0xD9,0x07,0xB3,0x9E,0x71,0x5B,0x43,0x9E,0xA2, + + 0x7D,0x9A,0x1F,0x30,0x70,0x83,0x01,0xC1,0x10,0x32,0xF2,0xCA,0xCA,0x86,0xEF,0x2C, + + 0xA4,0x7A,0x78,0x94,0xEE,0xBB,0xC9,0x5C,0x91,0xE3,0x37,0x2B,0x1C,0x76,0x84,0xFB, + + 0x85,0x8B,0xEA,0xB2,0x5F,0x87,0xC3,0x55,0x8C,0x92,0x9F,0xB9,0xA1,0xBA,0xDC,0x9D, + + 0x34,0x1C,0x46,0x92,0x9E,0xD1,0x10,0x65,0x4A,0x9D,0x80,0x54,0x91,0xAF,0x5C,0x79, + + 0x32,0xF7,0xB7,0x2F,0x59,0xE9,0x53,0x39,0x7C,0xD4,0xE0,0x8D,0x1B,0x5D,0x47,0xDC, + + 0xF6,0x2C,0x03,0x93,0xB4,0x20,0x40,0x4C,0xDC,0x76,0xF3,0x9E,0xB2,0xDD,0x97,0xC7, + + 0x43,0xE8,0x1B,0xAF,0x50,0x9C,0x5F,0xF4,0xBB,0x8F,0x20,0x8F,0xFD,0xA5,0x62,0x03, + + 0xFB,0xDF,0xFE,0xEB,0xD4,0x96,0xCF,0xD9,0xF4,0x0A,0xF4,0x12,0x1F,0xAB,0x28,0x0F, + + 0x01,0xE2,0x28,0x0F,0x71,0xF9,0xC7,0xCD,0xF2,0xD4,0xC2,0xF0,0xB5,0x95,0x40,0xF7, + + 0x8B,0xA3,0x08,0xF5,0x6F,0x1D,0x7B,0x72,0xC9,0xA2,0xC1,0x45,0x21,0x1D,0xFD,0x49, + + 0x00,0xE0,0x31,0xF3,0xA2,0x47,0x73,0x63,0x8C,0x49,0xF7,0x8E,0x9F,0x1C,0x7A,0xCA, + + 0x18,0xBE,0x47,0xEF,0xE2,0x37,0xD8,0x49,0x25,0x2E,0x5C,0xFD,0x57,0xA4,0x68,0x4E, + + 0x6B,0x5D,0xC7,0xAE,0x17,0xE7,0x60,0x96,0xA7,0x89,0x6F,0x85,0x29,0x38,0x07,0x09, + + 0x79,0x06,0x56,0xFE,0x4F,0xDB,0x63,0xE7,0xC0,0x67,0xD5,0x14,0x3F,0x55,0x31,0xAE, + + 0x13,0xF1,0x2B,0x86,0x4F,0xB4,0x46,0x8C,0xC7,0x65,0xD9,0x53,0x9F,0x44,0x71,0x50, + + 0x5C,0x78,0x46,0xA1,0xB1,0x75,0xB0,0xD5,0xA0,0xE2,0xCE,0x49,0x91,0xBF,0xFE,0x26, + + 0xDE,0x19,0x9A,0xD7,0x37,0x5B,0xC5,0x3A,0xB2,0x94,0x70,0x66,0x7B,0xE8,0xF7,0xAF, + + 0x75,0x06,0xD9,0xE1,0x63,0xC4,0xA7,0x7F,0xFB,0x16,0x85,0xB5,0x10,0xB1,0xAB,0xCB, + + 0x80,0xA8,0x7C,0x76,0x67,0x76,0x65,0x6B,0xA4,0x90,0x3D,0x3F,0x57,0xD1,0x11,0x2C, + + 0xE5,0x73,0xBD,0x5B,0x18,0x76,0xA2,0x23,0x11,0xA5,0xCC,0x1F,0x3E,0x13,0x6B,0x5A, + + 0x37,0x15,0xA4,0x40,0x63,0x59,0x0E,0x21,0xA2,0xA2,0x3A,0xA2,0xC3,0xAF,0x9A,0xB9, + + 0xDC,0x7E,0x0D,0x56,0x98,0x6C,0xE9,0x06,0xBD,0x68,0x0C,0x1D,0xBC,0x11,0x49,0x61, + + 0x2E,0x70,0xBB,0xA6,0xD7,0xED,0x84,0xED,0x33,0x73,0x30,0x29,0xDC,0x2D,0xA0,0xA7, + + 0x56,0x0C,0x49,0xF0,0x8F,0x4F,0xAE,0xD6,0x01,0xD8,0xBD,0x7E,0xB8,0x97,0xA8,0x82, + + 0xD7,0x2D,0xDF,0xF4,0xC6,0x4E,0x18,0xB5,0xA5,0x28,0x44,0xD8,0xF6,0x28,0xE1,0x3B, + + 0x71,0xF1,0x61,0x3E,0xD1,0xD4,0xEF,0x1F,0xB3,0x96,0xDF,0xD5,0x4B,0x2D,0xE9,0x2B, + + 0x74,0x9E,0xD3,0xC8,0x4D,0xD7,0x17,0x89,0x86,0x9B,0x72,0x63,0x87,0x73,0x09,0xBD, + + 0xD9,0x08,0xDA,0x77,0xBB,0x32,0xF3,0x63,0x24,0x16,0x55,0x95,0x4C,0xFD,0xFC,0xD2, + + 0x4F,0x1D,0x13,0x25,0x41,0x1A,0xAB,0x2F,0x99,0x2A,0xB4,0xF2,0xFF,0x58,0x53,0xCD, + + 0xDF,0xBC,0xE4,0x07,0x38,0x3D,0xB4,0x7E,0x8E,0x27,0xB3,0x20,0x34,0xD6,0x77,0xD1, + + 0x79,0xBB,0x3A,0xA4,0xDD,0x30,0x7D,0xF3,0xE7,0xD7,0xC3,0x4E,0x3D,0x5E,0xB2,0x8F, + + 0x6C,0x04,0x29,0xAB,0x3C,0xE8,0x26,0x3E,0x60,0x58,0xB2,0x2F,0x0A,0x31,0xFA,0xBF, + + 0x7D,0x39,0x31,0x95,0xD9,0x1E,0xCD,0x68,0x92,0x51,0xC6,0x65,0x67,0x3F,0x0C,0x2E, + + 0xDE,0x06,0x60,0xA2,0x8A,0x02,0xF1,0x83,0xA3,0xCE,0x53,0xF1,0x17,0x05,0x89,0x6F, + + 0xA0,0x99,0x87,0xC5,0x7A,0x36,0xDD,0x6D,0x12,0xC7,0x90,0x48,0x68,0x6F,0x5E,0x35, + + 0xD1,0x83,0xE7,0xCE,0x3F,0xFC,0x89,0x15,0x91,0x23,0x88,0x53,0x97,0x6F,0x99,0x44, + + 0xBB,0x54,0xB5,0xEF,0x9E,0xD6,0x7E,0xFA,0x5C,0x0B,0xDA,0x8D,0x37,0x5E,0x9D,0xA0, + + 0x47,0xB0,0xC3,0xBC,0x3C,0xDF,0x88,0x14,0xEE,0xDE,0x95,0xEF,0x15,0x2D,0xA3,0xE3, + + 0xF1,0xAF,0xF3,0xC5,0x96,0xB8,0xC5,0x1B,0xEB,0xFA,0xC1,0x8E,0x9F,0x00,0xFF,0x72, + + 0x62,0xFF,0xBE,0xB1,0xB7,0x05,0xD0,0xA4,0x17,0xA5,0xB0,0xAE,0x51,0x9A,0x36,0xB8, + + 0x20,0x91,0xEE,0xA4,0xF8,0x42,0x06,0xC3,0x48,0xEC,0xE3,0x4B,0x5F,0xDE,0xFA,0x85, + + 0xD7,0x94,0xF2,0xC2,0x79,0xC1,0xBD,0x52,0xBA,0xE4,0x2A,0x03,0x3D,0x00,0xE5,0x83, + + 0x89,0x09,0x49,0xC9,0xF2,0x29,0x4A,0xA3,0xC1,0xEC,0xA7,0x0C,0x75,0x8E,0x20,0x0B, + + 0xB2,0x09,0x27,0x04,0x10,0xAF,0x57,0x7E,0x74,0xEB,0x10,0xE1,0x43,0x6C,0x9B,0xA3, + + 0x7D,0xD1,0x62,0x2A,0xD6,0xAE,0x0F,0x02,0xA8,0x56,0x18,0xE4,0x97,0x6D,0xBA,0x66, + + 0x23,0xD2,0x49,0x74,0xA8,0x39,0x84,0x7F,0xB0,0xE9,0xD0,0xE7,0x10,0xF7,0x41,0xA2, + + 0x8A,0x8C,0x41,0x64,0xA1,0x38,0x67,0xD9,0x4C,0xE1,0x91,0xF7,0x11,0xF6,0x82,0x0B, + + 0xE1,0x4A,0x02,0x2F,0xB5,0x85,0x1A,0x0B,0x3A,0xE8,0x56,0xD2,0xB1,0xB9,0x0C,0xA9, + + 0xE0,0xF8,0xB4,0xA0,0xFA,0x20,0x41,0x38,0x21,0x44,0x21,0x84,0xB2,0xAA,0xC8,0x3E, + + 0x00,0xA7,0x54,0xFF,0xBB,0x4A,0x45,0x5A,0xA1,0xF5,0x57,0x14,0x33,0x89,0xBB,0x6E, + + 0x87,0xA4,0xCC,0x6E,0xE7,0x8A,0xE4,0x43,0xCF,0x91,0x77,0x4E,0xB7,0xCD,0xBD,0xBB, + + 0x3C,0xA3,0x68,0x33,0xDF,0x8C,0x07,0xA8,0x41,0xE1,0x12,0xFC,0x76,0x64,0x34,0xF1, + + 0xE0,0x1E,0x9B,0x2F,0x29,0xAA,0x9A,0xF8,0x05,0xB2,0xE2,0x86,0xF7,0x60,0x96,0x3A, + + 0xB1,0x8C,0x96,0x4F,0x15,0x8E,0x02,0xED,0xC8,0x24,0xD0,0xEF,0x18,0x6D,0x75,0xB0, + + 0x06,0x6D,0xC9,0x16,0x9D,0x4D,0xF7,0xEA,0xF5,0x92,0x3C,0x07,0x0D,0x67,0xC4,0x5C, + + 0xB2,0xBD,0x9E,0x85,0x13,0x70,0x47,0x53,0x12,0xFD,0x96,0x46,0x76,0xAA,0x16,0x00, + + 0xDA,0xBC,0x9A,0xF6,0xCE,0x9C,0xA0,0xC3,0x5B,0x5A,0x2B,0x0D,0x85,0xE2,0x54,0xE1, + + 0xF6,0xBF,0xB1,0xE2,0x59,0xC1,0x44,0x41,0xE4,0x77,0xCA,0x21,0x98,0x6F,0x58,0xD6, + + 0x7B,0x19,0x5E,0x11,0xE6,0x49,0x9D,0x92,0x4C,0x11,0x5D,0x4C,0x0D,0x77,0xB1,0xBE, + + 0xA3,0x19,0xBC,0xD4,0xDB,0x27,0xAB,0xA7,0xA8,0xA7,0xB4,0x76,0x54,0x79,0x1D,0x54, + + 0x21,0xC5,0x8C,0xD4,0xCC,0x9E,0xDA,0xEE,0x15,0xA1,0xE7,0x6A,0x72,0x57,0xFA,0x83, + + 0x03,0xBB,0xF7,0xF5,0xD2,0x74,0xEE,0x72,0x94,0x5C,0xAE,0xC2,0x53,0x80,0x8D,0x55, + + 0xDE,0x55,0xB5,0xC5,0x5A,0x24,0x8A,0xE2,0xD1,0xDF,0x1D,0x70,0xEC,0x71,0x44,0x0C, + + 0x7F,0xE4,0xF8,0xB5,0x94,0x35,0xDD,0xF7,0x02,0xCB,0x56,0x6B,0x91,0x9B,0xA2,0xEB, + + 0x53,0xEF,0x98,0xFE,0xC6,0x94,0x20,0x01,0x01,0xF0,0x5E,0x60,0x1A,0x71,0x51,0x31, + + 0x43,0xC9,0xF9,0xB1,0x51,0x12,0x69,0x15,0x9F,0x5A,0xF1,0x1D,0x11,0x19,0x71,0xD8, + + 0x40,0x88,0x87,0x19,0xEE,0x41,0x61,0xF8,0x1C,0xF8,0x1D,0x39,0xAE,0xC0,0x9B,0x67, + + 0x2C,0x7E,0xF4,0xFC,0x5E,0x7E,0xBA,0x97,0xA0,0x74,0xB4,0x4C,0x7C,0x3E,0x26,0xBA, + + 0xDC,0x5F,0xF0,0x74,0xD9,0xBD,0xD8,0xE6,0x6A,0xA9,0x71,0x1E,0xD7,0x80,0xA8,0x0B, + + 0x0B,0xE1,0x87,0x72,0xF2,0x2D,0xEC,0x7A,0xEB,0x56,0x33,0x6F,0x38,0x3D,0x50,0xA0, + + 0x7F,0x8C,0xA1,0xAE,0xD5,0x34,0x53,0xEA,0xD9,0xF7,0xA7,0x79,0xF5,0x05,0xF4,0x71, + + 0x26,0xE2,0x98,0xF9,0xFD,0x73,0x91,0x51,0x7E,0xC9,0x60,0x55,0x7E,0xA2,0x9B,0x2F, + + 0x36,0xE1,0x1C,0x74,0x98,0x07,0x70,0x3F,0x43,0x1B,0x78,0xEA,0x16,0xA3,0x5F,0xB3, + + 0x6D,0x81,0x61,0xDB,0x8B,0x7D,0x71,0xA7,0x93,0x0E,0x7A,0xD7,0xD5,0x91,0x82,0x35, + + 0x68,0xE1,0x7F,0x64,0xF3,0x2A,0x8F,0x40,0xBF,0x72,0x72,0x5E,0xD4,0xC2,0x9F,0x31, + + 0x34,0xEA,0x2D,0xC4,0xD4,0xA5,0x16,0xCE,0x45,0x24,0xA3,0xE4,0x94,0xA5,0xBE,0x22, + + 0x0F,0x8E,0x8A,0x72,0xCA,0xAA,0x5E,0xDA,0x42,0xAB,0x98,0xE4,0x71,0xA7,0x86,0x03, + + 0xC9,0x2B,0x21,0xC3,0x18,0xA0,0xD2,0xCF,0x1A,0xB5,0xC9,0x99,0x7A,0xEB,0x25,0x20, + + 0xB5,0xC5,0x5D,0x28,0x34,0x2A,0xC6,0xE0,0xBD,0x1A,0x3D,0x3F,0xD6,0xF7,0x89,0x8F, + + 0x9F,0x97,0x82,0xE4,0xE9,0x21,0x4C,0x6B,0xBD,0xCC,0x72,0xF2,0xBE,0xE2,0xCD,0xE9, + + 0x2F,0x24,0x9E,0x79,0xB5,0x17,0xC1,0x0B,0x37,0x66,0xBB,0x4D,0x33,0xA6,0xDC,0x4C, + + 0x65,0x89,0x83,0x85,0x9D,0xEA,0xA2,0x3A,0xA6,0x41,0x35,0x5C,0xBA,0xA5,0xBC,0x85, + + 0x66,0x7A,0x6B,0xC3,0xE6,0xA6,0x6C,0xCB,0x32,0x68,0xDB,0x68,0x2C,0xE6,0x22,0x8F, + + 0x08,0x8E,0x9C,0xE6,0x7D,0xE4,0x14,0xD2,0x4F,0x2C,0x92,0xFC,0x2A,0xAE,0x5B,0x38, + + 0xFC,0xE8,0x2A,0xDE,0x10,0xEF,0x5C,0xD2,0x42,0x60,0x9A,0xEC,0x2B,0xAF,0xA5,0xB4, + + 0x0C,0x92,0xF5,0xE7,0x2D,0x63,0xD0,0xD3,0x12,0x7D,0xB1,0x79,0xDF,0x4F,0x53,0xA0, + + 0x89,0xF4,0xAB,0xCA,0x60,0x04,0x2A,0xFF,0xCD,0x1F,0xB9,0x5A,0xDE,0x7F,0xC7,0x71, + + 0x25,0xB5,0x5F,0xA1,0x95,0x4F,0x67,0x51,0x65,0xF5,0x74,0x97,0xC5,0x50,0xAC,0xA3, + + 0x5F,0x3E,0x3F,0xE5,0x4D,0x38,0x04,0xC2,0x6D,0xDA,0xE6,0xB7,0xD6,0x04,0x76,0x92, + + 0xCE,0x19,0x49,0xF4,0x8A,0x14,0x66,0x27,0xB3,0x69,0xE3,0xC6,0xD5,0xB3,0x7A,0xE1, + + 0xCF,0x00,0x8D,0x7D,0x5C,0xE0,0xBD,0x90,0x48,0x91,0xEA,0x89,0x87,0xB1,0xC3,0x7B, + + 0xA9,0x39,0xA2,0x42,0x34,0xE1,0x72,0x4A,0xE6,0xC1,0x94,0x74,0x14,0x08,0x3F,0x41, + + 0x11,0x9F,0x8E,0x66,0xEA,0xBA,0x2D,0x5B,0x8E,0xE6,0x9C,0xBD,0xC7,0xF8,0x32,0x50, + + 0x98,0x3B,0x25,0x57,0xB9,0xB0,0x4F,0x10,0xD4,0x72,0x8D,0xC0,0x0B,0xF9,0x6C,0xC0, + + 0xD5,0xC4,0x59,0xA8,0x14,0xF5,0xD1,0x61,0xA7,0xDD,0x02,0xD0,0x56,0xF1,0x58,0x32, + + 0x2A,0x42,0xBC,0x8C,0xAE,0xB0,0xFD,0x7A,0x6A,0x02,0xEA,0xD8,0x58,0x0C,0x34,0x0A, + + 0xD2,0x34,0x49,0xE0,0x5C,0xBD,0xF5,0x08,0x6E,0x39,0xBE,0x52,0x59,0xC2,0x8D,0x4B, + + 0xFE,0x37,0x3C,0x48,0x55,0xC9,0x2A,0xEB,0xB8,0x98,0x61,0x47,0xF9,0x61,0x7A,0xDC, + + 0x73,0x91,0xD6,0xEC,0x8B,0x32,0x01,0x0F,0x4A,0xCB,0x84,0x3B,0xF3,0xCB,0x40,0x73, + + 0x10,0x98,0xA6,0x73,0xD5,0xD8,0xE4,0x1A,0x6B,0x7D,0x94,0x5A,0xA3,0xF3,0x4E,0xCA, + + 0x65,0x8E,0xFE,0xBC,0xC8,0xD8,0x24,0xBE,0x07,0xCE,0x41,0xCE,0x33,0xE6,0x61,0xD8, + + 0x9C,0xAD,0xDB,0xA0,0x3C,0x38,0x22,0x01,0x0B,0x21,0x43,0x90,0x5D,0xBF,0x4F,0x45, + + 0xA9,0xDD,0xD7,0x5D,0x7D,0xBC,0x06,0x8D,0x18,0xB1,0x52,0x19,0xDB,0xFF,0x3A,0xF3, + + 0x30,0xFF,0x9A,0x06,0xA3,0xBD,0xAB,0xE7,0x9A,0x48,0xD5,0x5C,0xB9,0x90,0x76,0x39, + + 0x32,0x84,0x0A,0x4A,0xE0,0xFD,0x02,0x31,0x60,0x71,0x9E,0xB0,0x2D,0x5C,0x3F,0x6D, + + 0x0D,0x60,0x9B,0x07,0x02,0x2A,0x50,0xC9,0x02,0x8F,0x7D,0xB6,0xE0,0x6A,0xB1,0x71, + + 0xC9,0xA8,0x26,0x6E,0x4C,0x38,0xC3,0x35,0xD3,0xEE,0xB9,0x30,0x30,0xCC,0xC4,0xB1, + + 0x5E,0x47,0xC0,0x84,0x1E,0xDF,0xBC,0x1F,0x88,0x75,0xB2,0xF8,0x53,0xA4,0x8A,0x54, + + 0x0A,0xAA,0x64,0xC6,0x01,0x2F,0x39,0x30,0x1F,0x5E,0x44,0x7C,0x55,0x47,0x11,0xC4, + + 0xCA,0x07,0x7E,0x61,0x7B,0x25,0x0B,0x63,0x71,0x9F,0x11,0xE0,0x41,0xE1,0x77,0x4C, + + 0x0C,0xA1,0x42,0x27,0x78,0x04,0x92,0x17,0x3C,0x57,0x99,0x85,0xD0,0x68,0x13,0x09, + + 0x77,0x48,0x2A,0x88,0x6C,0xA5,0x03,0x1C,0xAF,0x4C,0x15,0x5F,0x04,0x63,0x78,0x19, + + 0x0B,0x84,0x8B,0x63,0xBE,0x2A,0xE0,0xB0,0xAE,0x4D,0xD9,0x50,0x5F,0x98,0x63,0x43, + + 0xBB,0x07,0xCB,0x89,0x6D,0x65,0x56,0x5B,0xFB,0xCC,0x13,0xEB,0x8A,0x69,0x52,0x9E, + + 0x6E,0xA0,0x4F,0x11,0x9F,0xF8,0x5F,0xD1,0x47,0x86,0xC6,0xD5,0x27,0x26,0x53,0x08, + + 0x42,0x4E,0xFC,0xEC,0xED,0x87,0xEA,0x80,0xB4,0xB0,0xF2,0xFC,0xB3,0x57,0x70,0xAB, + + 0x57,0x4F,0x57,0xD8,0x15,0x51,0x7A,0x4C,0x4D,0xBC,0x6B,0x1E,0x19,0xD2,0xD4,0x22, + + 0x0A,0x6E,0xBB,0x44,0x9C,0x0C,0xAB,0x61,0x37,0x01,0x91,0x92,0x58,0xA2,0xDC,0xEC, + + 0x04,0xA9,0xE1,0xD9,0xD9,0xB4,0x0B,0x3E,0x15,0xB0,0xE1,0x92,0xDD,0xFD,0x72,0xE6, + + 0x30,0x13,0x40,0x89,0x36,0xE3,0x05,0x94,0x87,0xFD,0xC7,0xA6,0x58,0x1C,0x8C,0x56, + + 0x6F,0x5F,0x21,0x64,0x71,0x7E,0xE6,0x58,0xEF,0x9C,0xA6,0x26,0x71,0xEE,0xBB,0x01, + + 0x82,0x00,0x60,0x45,0xF4,0x29,0xD8,0xC1,0xE4,0xDF,0xAF,0x36,0xC8,0xCD,0x4C,0x79, + + 0x4B,0x98,0x1D,0xB5,0xBF,0x73,0xF1,0x23,0xF1,0x5B,0x31,0xCA,0x2B,0xEE,0xAC,0x58, + + 0x02,0x86,0x9A,0x26,0x2A,0xB1,0x0A,0xFD,0x76,0xF9,0xB6,0x6C,0x71,0x34,0x81,0x30, + + 0x7A,0x0E,0xF6,0x64,0x6D,0x9A,0xF1,0x00,0x67,0x1A,0x30,0x66,0x25,0x7D,0xC5,0x80, + + 0x7B,0xBB,0xD7,0x3F,0x59,0x72,0xD2,0x01,0xA6,0x4D,0xF1,0xFA,0x1B,0x75,0x42,0xB7, + + 0x80,0x0F,0x69,0xA7,0x3D,0xBD,0xCD,0xB6,0xD0,0xAD,0x5D,0xF6,0x2F,0xDA,0x02,0x6E, + + 0x38,0x93,0x8A,0x9C,0x1A,0xFA,0x90,0xDA,0x8F,0x43,0x8C,0xAE,0xCB,0xA5,0x40,0x70, + + 0x30,0x54,0xED,0xEA,0x3F,0xC8,0x0E,0x2C,0x2D,0x58,0x19,0xFB,0x4A,0x75,0x14,0x6F, + + 0x88,0x48,0x07,0xCC,0xF8,0x21,0xBA,0xB9,0x4F,0x1B,0x8D,0xAF,0x6A,0x70,0xF4,0x68, + + 0x0A,0xBB,0x5D,0xDA,0x67,0x79,0xDA,0xBC,0xC9,0x39,0x27,0x2E,0xC1,0x34,0x1F,0x52, + + 0xCF,0xE3,0x41,0x4E,0x90,0xE6,0xEE,0x7B,0x5F,0xD7,0x86,0xAB,0xB8,0x6E,0x6E,0x32, + + 0x5A,0x0B,0x94,0x5C,0x98,0x3C,0x16,0x6D,0x6D,0x8C,0x80,0x1E,0x63,0xF8,0xEB,0xB2, + + 0x74,0x95,0xBF,0x4F,0x7F,0x6B,0x77,0x6D,0x9E,0x03,0xE9,0x4D,0xF9,0x1C,0x47,0xDD, + + 0x2B,0x16,0xDA,0xC4,0xBD,0x5D,0x32,0x39,0xED,0x44,0xCD,0x0F,0x10,0x3B,0xA7,0xA6, + + 0x37,0x46,0x45,0xC6,0x5C,0xE2,0xCB,0xE5,0x9A,0xC8,0xCB,0x2E,0xF1,0x5F,0xF7,0x84, + + 0xA6,0x82,0xF1,0x98,0x72,0xE1,0x18,0x22,0xA4,0xDA,0x03,0xAC,0xA2,0x54,0xDB,0xF2, + + 0xB4,0x44,0x36,0xCD,0x14,0x50,0x37,0x5D,0x1A,0x0D,0x1D,0x58,0x0E,0x1D,0x68,0x16, + + 0xA7,0x21,0x89,0x8A,0x93,0x52,0xDD,0xC5,0xF6,0xA5,0xAC,0xCF,0xD5,0x8D,0xF9,0xC6, + + 0x7A,0x13,0xF2,0x86,0x10,0x26,0x4B,0xFC,0xB1,0xA8,0xCF,0xE2,0x5C,0xE6,0x05,0x92, + + 0x0D,0x28,0x53,0xD2,0x1D,0xDC,0x42,0xE0,0x47,0x9A,0xB8,0x14,0xA8,0xE3,0x29,0x52, + + 0x80,0x57,0xA0,0xB6,0x35,0x96,0x4B,0xF0,0xF3,0xB9,0x4E,0x85,0xD0,0xC4,0xEE,0x33, + + 0xDF,0xE9,0x29,0xD2,0x0A,0xE5,0xD5,0x0C,0x59,0x9A,0x53,0x5C,0x76,0x38,0xA1,0x79, + + 0x3C,0x37,0xCB,0xE6,0x8A,0x05,0x88,0xED,0x8E,0x98,0x0D,0xB5,0x3F,0xEC,0x4D,0xFC, + + 0x1F,0xC4,0x46,0x8C,0x15,0xA1,0x00,0xCC,0x6F,0x9B,0x3B,0xD6,0xDC,0xA4,0x8F,0xE3, + + 0x6A,0xC7,0xB2,0x3B,0x7B,0x67,0x3B,0x3B,0x4B,0x98,0xCA,0x53,0x4E,0xE2,0x49,0x1B, + + 0x2A,0x90,0xEB,0x6D,0x7A,0xA8,0xFE,0xD3,0x43,0x66,0xAC,0xD9,0xCF,0xA6,0x04,0x62, + + 0x0F,0x2C,0xA0,0xB6,0x7E,0x86,0x68,0x68,0xFD,0x11,0x4D,0x29,0x88,0xE6,0xEE,0x28, + + 0xE4,0x7D,0xBE,0x2D,0x35,0x2A,0xFB,0x92,0xB1,0x50,0xAA,0xB9,0x9D,0xCF,0xA3,0x76, + + 0x37,0x8A,0x23,0xDF,0x8C,0x0E,0x69,0x69,0x5C,0xC4,0x73,0x6C,0x09,0x43,0x55,0x46, + + 0xAC,0xCF,0xEA,0x99,0x76,0xAC,0x83,0x73,0x36,0x80,0xF3,0xFE,0x36,0xEC,0x16,0xB2, + + 0x6C,0x2F,0x33,0x3C,0x35,0xF0,0x2F,0x26,0x05,0x66,0xF5,0xC0,0xB6,0xF0,0xC0,0x09, + + 0x24,0x01,0x16,0x13,0x3B,0x3B,0x65,0x7F,0xC0,0x0E,0x82,0xAB,0x56,0xE3,0x7C,0xDF, + + 0x01,0x0D,0xB1,0xF9,0x87,0x84,0x0B,0x6E,0xC7,0x1A,0x4D,0x56,0xA8,0xA2,0x74,0x01, + + 0x40,0xFD,0x7A,0x68,0x0A,0xDD,0x3C,0xD5,0x1A,0x0E,0xB1,0xE0,0xF3,0x02,0xA4,0xFF, + + 0x04,0xF8,0x8D,0x74,0x4B,0x54,0x96,0x91,0x56,0x15,0xCE,0x56,0x28,0x5B,0x97,0x15, + + 0xDA,0x33,0x94,0xD4,0x09,0xB6,0x7A,0xB2,0x73,0xCE,0x2C,0xF4,0x37,0x74,0x82,0x3C, + + 0x57,0x40,0x25,0x46,0xB4,0x3B,0x8F,0x95,0x6B,0x50,0x51,0x95,0x78,0x59,0xF4,0x23, + + 0x27,0x88,0xF8,0xDF,0xB1,0xD5,0xD0,0x03,0xEB,0x98,0x83,0x04,0xD1,0x7A,0x44,0x8B, + + 0x2F,0xB9,0x99,0x01,0x3A,0x49,0x66,0xDD,0x20,0xB4,0xEB,0x46,0xE6,0x35,0x15,0x6B, + + 0x8E,0x39,0x94,0x01,0x3B,0x68,0xDD,0x44,0x6B,0x28,0x01,0x25,0x1E,0xFD,0xFD,0x8A, + + 0x2C,0x58,0xD4,0x4F,0xA0,0xD6,0x0D,0x34,0x13,0x57,0x1B,0x2A,0x07,0x96,0x1D,0xAB, + + 0xE5,0x24,0xC0,0xDF,0xB1,0xBA,0xE9,0x7C,0x33,0x06,0xC6,0xC3,0x6F,0xF1,0xFD,0x40, + + 0x2F,0x0C,0x8F,0x7C,0x43,0xFC,0xE6,0x98,0x5D,0x1A,0x88,0x4F,0x78,0xDE,0x6F,0xA1, + + 0x88,0x36,0x42,0x4C,0x2D,0xB5,0xC1,0x78,0x4F,0x41,0x5E,0x8D,0xF3,0x7E,0x3E,0x74, + + 0x5F,0xD1,0xC7,0x5F,0x57,0xBD,0x8D,0xCF,0x32,0xDD,0x6D,0xDF,0x0F,0x51,0xE8,0x7F, + + 0x2F,0xF7,0x69,0xAC,0x9D,0xD1,0x9B,0x04,0xE9,0xCF,0xEF,0x0C,0x73,0x72,0xE4,0x84, + + 0x0A,0xA1,0x58,0xEC,0x7C,0x62,0xCD,0x21,0xBB,0xB5,0x81,0x3B,0x68,0x22,0xAC,0x62, + + 0xA2,0x64,0xD6,0xFD,0x19,0xFA,0xD8,0xB1,0xCE,0xBC,0xEB,0xB6,0xD1,0x2F,0xC1,0x85, + + 0x41,0xAD,0x45,0xE1,0x17,0x33,0x4C,0xA5,0x92,0xFF,0x51,0xC5,0xD6,0xB3,0xB6,0xF3, + + 0x87,0x21,0xA0,0xE8,0x25,0x58,0x61,0x33,0x89,0x01,0xA1,0xE5,0x8D,0xCC,0x48,0x09, + + 0x8D,0xA9,0xC1,0x22,0xA9,0x34,0x6E,0x4C,0x80,0x64,0x7C,0x8C,0x0D,0x29,0x18,0xC2, + + 0x03,0x0D,0x65,0xBE,0x37,0x88,0xF4,0xE2,0xC3,0x4D,0x3B,0x8A,0x77,0xB0,0x15,0xD3, + + 0x96,0xAB,0x79,0xAB,0x82,0x6B,0x59,0x49,0x2B,0x7D,0x36,0x9A,0xC0,0x2B,0xC2,0x96, + + 0x6A,0x64,0x5E,0x64,0x32,0xD8,0x5B,0x80,0xF8,0x03,0x43,0x4A,0xBE,0x1B,0x98,0x38, + + 0xDB,0xA7,0x79,0xF5,0xE7,0x6A,0x56,0xEF,0xA9,0x47,0xC0,0xCC,0x54,0xC3,0x1E,0xEB, + + 0x85,0x84,0x55,0x32,0x26,0xF6,0xE5,0x7F,0x8B,0xE3,0x43,0xD4,0x07,0x24,0xA3,0x7A, + + 0x04,0x89,0x58,0x63,0xEF,0x16,0xD3,0xA8,0xCA,0x47,0xC1,0x3D,0xDE,0x08,0xEF,0x9D, + + 0x83,0xAA,0xD4,0xE2,0x9F,0xF0,0x7B,0x6F,0x75,0x43,0x7C,0xCE,0xF3,0x79,0x20,0x44, + + 0xE3,0x4F,0xFC,0x70,0x34,0xF3,0xC2,0x1B,0x71,0x0E,0x6D,0x23,0xCF,0xB1,0x14,0xB0, + + 0x03,0xA0,0x6A,0xAC,0xA7,0xFE,0x64,0x40,0xE8,0x28,0x84,0x9E,0x5F,0xE8,0x21,0x49, + + 0x8B,0x66,0x99,0xCD,0xE6,0x81,0x13,0xAC,0x21,0x2A,0x7A,0x49,0x33,0xC7,0x16,0x69, + + 0x83,0xD0,0xB5,0x5A,0xBF,0x84,0x65,0x40,0x68,0xE2,0x68,0x9F,0xFF,0x69,0x40,0xB1, + + 0x26,0x52,0x3C,0x17,0x48,0x22,0x1C,0x25,0x89,0x53,0x54,0x31,0x5A,0x0B,0xCC,0x11, + + 0x73,0x90,0x08,0x10,0x3F,0x68,0x22,0x10,0xEE,0xD7,0x5C,0x34,0x0A,0xA4,0x2F,0x05, + + 0xA2,0x11,0x3D,0x16,0xC0,0x3A,0x77,0x29,0xE1,0xB2,0xD5,0x21,0xFA,0x07,0xA5,0x15, + + 0xA7,0xDF,0x21,0x7D,0xEF,0x7E,0xDE,0xF1,0xA5,0x11,0x8C,0x8A,0xC9,0x31,0x75,0x28, + + 0x4E,0x12,0x7D,0x61,0xF8,0x39,0x94,0x0D,0xDC,0x80,0xCE,0xE6,0xE0,0x35,0x7D,0xD2, + + 0x21,0xB8,0xAA,0xB6,0xC8,0xAA,0x9C,0x78,0xD9,0x4E,0xA2,0xF2,0x92,0xF6,0xEF,0x64, + + 0xA4,0x94,0xB8,0x2F,0x47,0x55,0xC4,0xFE,0xDE,0x17,0xC3,0x87,0x92,0xE1,0x14,0x63, + + 0xAF,0x67,0x0D,0x40,0x99,0xBA,0xA8,0x97,0x10,0x47,0x6C,0x06,0x7F,0x36,0xC6,0x08, + + 0xE1,0x5A,0xE0,0xB5,0x2A,0x75,0xD2,0x62,0x8A,0x31,0x56,0x17,0x79,0x93,0xCE,0x1C, + + 0xF4,0x5B,0x4E,0x19,0x0C,0x57,0x44,0xB9,0xCA,0xAC,0x5E,0x3D,0x20,0x8C,0x43,0xBD, + + 0xC8,0x8E,0xE1,0xB5,0xBB,0x5A,0x12,0x2B,0x2D,0xD3,0x24,0x09,0x04,0x19,0x4F,0x0C, + + 0xAF,0x39,0xD6,0xAC,0x1C,0x9D,0x4F,0x9D,0x96,0xA6,0xCD,0x47,0x02,0xA4,0x7C,0x3B, + + 0x19,0x1A,0x1B,0xCE,0x8D,0x03,0xEE,0x13,0x7A,0x11,0xEE,0x12,0xD6,0x71,0x14,0x27, + + 0x88,0x1B,0x2B,0x23,0xCE,0x6B,0xCE,0xBF,0x8A,0xFB,0xE4,0x14,0xF2,0x32,0xED,0xB8, + + 0x09,0x7B,0xBE,0xC9,0x91,0xC4,0xAC,0xE1,0x4F,0xA1,0x2A,0xA3,0x0F,0x3F,0xE5,0xE2, + + 0xAD,0xCE,0x12,0xE5,0x8C,0x1F,0xC6,0x06,0x0A,0xD9,0xDE,0x1B,0xDF,0x79,0xE0,0x86, + + 0xDD,0x2F,0x19,0xFA,0xD9,0x5B,0x36,0xD2,0x70,0xCF,0x08,0xB8,0xBF,0xE3,0x97,0xF0, + + 0x4D,0xA2,0x57,0x92,0x62,0xFC,0x40,0xB0,0x80,0xF4,0xE3,0xDE,0x65,0xAC,0x85,0x71, + + 0x27,0xE7,0x5F,0xEA,0x14,0x19,0x11,0x26,0xA7,0x03,0xE8,0x17,0xD2,0x80,0x17,0xB2, + + 0x67,0x73,0xC9,0x5D,0x25,0x0E,0x01,0xCD,0x38,0xAF,0x5E,0xC4,0xFB,0xF1,0x5A,0xE7, + + 0x84,0x48,0x98,0x42,0xFF,0xF5,0x2D,0xE6,0x44,0x8D,0x59,0x4C,0xF7,0xFB,0x10,0xBA, + + 0x27,0x83,0x48,0x25,0xB4,0x26,0xF4,0xF6,0x41,0xD6,0xC0,0x98,0xFB,0xE8,0x7F,0xA1, + + 0x2A,0x5A,0xD3,0x77,0x94,0x09,0x0F,0x64,0xC0,0x84,0x45,0x05,0x6D,0x83,0xC3,0x44, + + 0x81,0xC5,0x5C,0xA4,0x1B,0xE6,0x7F,0x9A,0xE3,0xCA,0x04,0x53,0xE4,0x5B,0x0E,0x78, + + 0xE7,0xAB,0xB1,0xEC,0xB0,0x05,0xD1,0x6A,0x70,0x8A,0x0A,0xB0,0xB7,0xAB,0x00,0x9E, + + 0x0B,0x45,0x9B,0x9A,0x1B,0xC1,0x5A,0x6C,0xF1,0xC4,0x7A,0xBF,0x04,0x1C,0xE3,0x8A, + + 0xE8,0x0B,0xB4,0xED,0x1E,0x96,0x77,0xEC,0x6D,0x35,0x00,0x8F,0x20,0xC9,0xEB,0x9B, + + 0xC3,0xC9,0x3B,0xD8,0xAE,0x8A,0xC0,0x44,0x42,0x1D,0xE9,0xC5,0x26,0x34,0x52,0xA2, + + 0x58,0x8A,0xBB,0xF1,0xBB,0x73,0x09,0x4D,0xEF,0x73,0x4A,0x9D,0x6C,0xFC,0x5A,0xB2, + + 0x6F,0x8B,0x21,0x38,0xEC,0xBD,0xBA,0x97,0xF1,0x8C,0xBA,0x92,0xE3,0xAC,0xC9,0x0F, + + 0x88,0xCC,0xE2,0x29,0x61,0xB5,0xC4,0x52,0x3A,0x5F,0x4B,0x9C,0xE4,0x95,0xC1,0xF8, + + 0x89,0x0D,0x53,0xA4,0xBB,0xF3,0xCC,0x46,0x3B,0x1E,0xA1,0x7D,0x6C,0x72,0x32,0x06, + + 0x22,0x2C,0x33,0x0E,0x91,0x16,0xA4,0xBC,0x14,0x24,0x74,0x33,0x5E,0x7D,0x68,0x0A, + + 0x45,0xC5,0x68,0x72,0xB8,0xAA,0xAB,0x36,0x48,0x90,0x8F,0x32,0x77,0x4A,0xE5,0x03, + + 0x86,0xD0,0x36,0xC7,0xB8,0xF0,0x22,0xB9,0x90,0x66,0x68,0x27,0xF2,0xD0,0xED,0x17, + + 0x78,0xD1,0xBC,0xF1,0x7F,0x42,0x2D,0x9B,0xB0,0x91,0x0E,0x9B,0x09,0x82,0xD3,0xDC, + + 0x16,0x60,0x1F,0xBD,0xAC,0x0B,0x74,0x1C,0x55,0x4E,0x5D,0xCC,0x70,0xE6,0x54,0x28, + + 0x8B,0x98,0x91,0x3C,0x13,0xB3,0x66,0xF0,0x8C,0xDA,0x6C,0x85,0x2B,0x53,0x70,0x41, + + 0x63,0x63,0xDE,0x4D,0x45,0x3B,0xD9,0x85,0x38,0x0B,0xC2,0x65,0x63,0xA1,0x12,0x57, + + 0xD3,0x00,0x44,0xFD,0x16,0x28,0x3C,0x95,0x86,0xD3,0xEC,0x04,0xAB,0xB6,0x66,0xD9, + + 0x64,0xBB,0xE7,0xE8,0xF6,0x69,0xF6,0x02,0x5F,0xD9,0x76,0x2A,0x86,0xF0,0x76,0x34, + + 0xAF,0x55,0x76,0x1C,0xAC,0xAC,0xFD,0x3E,0x63,0x80,0xBA,0xDE,0x7E,0x54,0x19,0x2A, + + 0xCD,0x4A,0xEF,0x8A,0xBA,0xD8,0xF7,0x2E,0xD9,0xC1,0x7D,0xDC,0xCF,0x73,0x9E,0x6B, + + 0xF7,0x94,0x6F,0xA3,0x41,0x6F,0x66,0x8B,0xEB,0xB9,0xE2,0x78,0x3F,0x9B,0xCA,0xB9, + + 0x16,0x1A,0x52,0xAC,0xC5,0xD9,0x10,0x08,0x4A,0xD1,0xC8,0x9F,0x1E,0x23,0x6A,0x1A, + + 0x33,0xF1,0x7E,0x36,0x20,0xF0,0xCA,0x98,0x98,0xB8,0x19,0xDA,0xFD,0xF5,0x1D,0xB8, + + 0x9E,0x18,0xDF,0x31,0x12,0xB3,0x0C,0xCC,0x4F,0x61,0x08,0x9C,0xCA,0x92,0x51,0xF6, + + 0x6D,0x10,0x14,0xD7,0x1A,0x40,0x47,0x04,0x4A,0xA0,0x43,0x80,0x5C,0xBE,0x59,0xA1, + + 0x73,0x00,0x51,0x35,0x32,0x62,0x2E,0xC9,0x02,0xFF,0x50,0xA4,0x72,0x0E,0xD1,0x34, + + 0x3A,0x0E,0xF2,0x74,0x51,0xD5,0xFF,0x70,0x55,0xEC,0x1C,0x27,0x73,0xC2,0x5E,0x01, + + 0xBF,0xFD,0xC5,0xD9,0x31,0xDD,0x6F,0x91,0x35,0x2C,0x76,0x5F,0x06,0x6A,0xD2,0x11, + + 0xFE,0xC3,0xDF,0x17,0xD9,0x8E,0x42,0x83,0xC9,0xE3,0x9F,0x95,0x51,0xBD,0x29,0xAB, + + 0xBD,0xBF,0x7F,0x1F,0xC3,0xF9,0x42,0x02,0xB5,0x21,0x9E,0x86,0xFE,0x6B,0x48,0xAC, + + 0xA0,0x47,0xF3,0xB6,0xBF,0x98,0xC8,0x12,0xB0,0x20,0x6C,0x07,0x71,0x6A,0x01,0xB9, + + 0x3E,0xFD,0xEA,0xC1,0xEE,0x56,0x69,0x9E,0x40,0x42,0x65,0x95,0x66,0x69,0x4D,0x7B, + + 0x85,0xF6,0xB1,0x44,0xEF,0x8A,0x61,0x0C,0xE0,0x07,0x6D,0x06,0xF9,0x68,0xC2,0x99, + + 0x8C,0xA3,0xDF,0x9C,0xF3,0x8B,0x72,0x7E,0x7E,0x4C,0xAC,0xC5,0x1A,0xC7,0x10,0x36, + + 0x28,0x2B,0xDE,0x9E,0xDC,0x7A,0x9A,0x2C,0xCB,0x85,0xBA,0x25,0x26,0x49,0xDD,0xF6, + + 0x61,0xF1,0xA3,0x99,0x79,0x85,0x12,0x5A,0xBB,0xCD,0x41,0xDC,0xB7,0xAA,0x35,0xE4, + + 0xE8,0x7C,0xB3,0xEE,0xBF,0x4E,0xCE,0x5B,0x22,0xC8,0xBB,0x39,0x38,0x94,0xC7,0x2A, + + 0xF5,0x69,0x55,0xAC,0x1E,0x8C,0x69,0x14,0x6B,0x0C,0x66,0x1F,0x78,0x63,0xB0,0x50, + + 0xF6,0xC2,0x5D,0x62,0x60,0x2D,0x85,0x58,0x3C,0x49,0x4A,0x0E,0xD9,0x31,0x7B,0xA1, + + 0x44,0xF2,0x50,0x4F,0x43,0x6C,0x4F,0xE2,0xB1,0xAE,0x67,0x1E,0xF0,0x61,0x75,0x64, + + 0xEB,0x4F,0x90,0x1F,0xE4,0x2D,0x9B,0x80,0x03,0xB2,0xE8,0x9F,0x77,0x60,0xC4,0x09, + + 0x3E,0x13,0x56,0xE6,0xCF,0x9D,0x53,0xC6,0x9F,0x56,0x6B,0x55,0xD3,0xF0,0x04,0x30, + + 0xD1,0xCB,0x49,0xE7,0x1F,0x73,0x83,0x50,0x2D,0x85,0x8C,0x30,0x73,0x71,0x37,0x3D, + + 0x8A,0xC4,0xD5,0xC2,0x6E,0x38,0xBF,0x0D,0x41,0x8D,0xAB,0x05,0x10,0xF3,0x5D,0xE0, + + 0x8C,0x30,0xCD,0x89,0x4E,0x9E,0x49,0x40,0xC3,0x73,0x62,0xC6,0xD3,0x31,0x73,0xB5, + + 0xD2,0xDD,0x7C,0x2B,0x49,0xD4,0x3C,0xAE,0x83,0x6B,0x1C,0xE4,0x19,0x1E,0x5B,0xCE, + + 0x53,0xA1,0x0C,0x21,0xCD,0x2E,0x34,0x92,0x94,0x17,0x82,0x25,0x73,0xF8,0x85,0x2D, + + 0x4B,0xE2,0x1A,0x4F,0xC5,0xB2,0x2C,0x23,0x43,0xA9,0xD5,0x14,0xB1,0x76,0xD8,0xCB, + + 0x97,0xCA,0xE2,0xB3,0x04,0x27,0x9B,0x4B,0x37,0x54,0x20,0x0E,0x0C,0x35,0x52,0xF9, + + 0x02,0xCE,0xD6,0x08,0x3A,0x71,0x36,0x25,0x5B,0x19,0xD6,0x07,0x30,0x7B,0x5A,0x16, + + 0x54,0x1A,0x69,0xE6,0xEF,0x33,0x20,0x44,0x8B,0x39,0x74,0x98,0x4A,0xC5,0x9D,0x29, + + 0x56,0xA3,0x47,0x0D,0x9A,0x56,0xAF,0xD5,0xCB,0x58,0xA9,0x0D,0x1A,0xBA,0x3C,0x6D, + + 0x83,0xD9,0x0B,0x8E,0x9B,0x58,0x9A,0x3B,0x2C,0x28,0x27,0x4E,0x8D,0x6B,0x6E,0xAA, + + 0xD7,0x10,0x7E,0x23,0x41,0x3E,0xF1,0x49,0xE5,0xF1,0x08,0x89,0xD2,0x1D,0x74,0x33, + + 0x98,0x13,0x15,0xCE,0x3D,0x26,0x0E,0x88,0xEB,0xDB,0x5E,0xFF,0x88,0xD0,0x7F,0x4D, + + 0xD6,0x6A,0x9C,0xE2,0xC5,0x28,0x03,0x7B,0x15,0xF3,0x8E,0x61,0x5F,0x77,0x77,0x26, + + 0x28,0x12,0xBD,0xAE,0x91,0xEA,0x7F,0xB9,0xD9,0xD2,0x40,0x8D,0xF3,0x76,0x38,0x0F, + + 0xED,0x7B,0x98,0xF5,0x3A,0xC5,0x17,0x93,0x6C,0x51,0x70,0x17,0xFB,0x4B,0x16,0xEF, + + 0xE7,0xD6,0xF5,0x86,0xFE,0x02,0x92,0x83,0xC5,0x01,0x66,0xC4,0x74,0x50,0x3B,0x2C, + + 0xA5,0x22,0x99,0xF4,0xF6,0x0F,0x0B,0xD0,0xEE,0xC4,0x6F,0x33,0xF0,0x4F,0x69,0x61, + + 0x6E,0xA0,0xF7,0xE2,0xDD,0x82,0x03,0xC0,0xEF,0xC5,0x83,0xC4,0xF7,0x68,0x1F,0x30, + + 0x6C,0x55,0x3B,0x69,0x10,0x4F,0x68,0x66,0x6F,0xF2,0x44,0x84,0xFA,0xEB,0xDD,0xD6, + + 0x30,0x28,0xC7,0x30,0xFC,0x46,0x07,0x88,0xFB,0x74,0x02,0x30,0x59,0xA4,0x1A,0xBE, + + 0x84,0x5D,0xE3,0x7C,0xBC,0xBD,0x4B,0x9E,0x46,0x19,0xA8,0xF0,0x31,0xF6,0xD6,0x0F, + + 0xA6,0xC7,0xE8,0x31,0x7C,0xB4,0xC8,0x4B,0x7F,0xB6,0xD1,0x15,0x56,0xE8,0x1C,0xE3, + + 0x4E,0x27,0x14,0x7C,0xF7,0x8B,0x98,0x86,0xED,0x67,0xE6,0x1F,0x7E,0xF7,0xEA,0xEE, + + 0x55,0xA8,0xD4,0xBA,0xF6,0xCA,0x44,0x9F,0x26,0x22,0xFF,0x41,0x5B,0xEB,0xF3,0xFA, + + 0xE3,0xCA,0xC3,0x59,0xF6,0xA7,0xE3,0x58,0xF7,0x48,0x09,0xD0,0x3F,0xE3,0x9D,0x9F, + + 0x83,0x46,0xD5,0xBF,0x1F,0x67,0xBF,0x1A,0x21,0xD0,0x77,0xBB,0xDF,0x09,0x7E,0xC1, + + 0x83,0x97,0x3F,0xC4,0x29,0x28,0x43,0x46,0x48,0x2E,0xDA,0x69,0xDF,0xA8,0x62,0x5E, + + 0x88,0xEF,0x2A,0xAF,0xBB,0xB6,0xC5,0x38,0xEE,0xCB,0xBA,0xDE,0x0F,0xFF,0x85,0x3D, + + 0x4C,0xAE,0x3C,0xCF,0xE9,0xDB,0x27,0x15,0x4F,0xC3,0xDB,0xAD,0xB5,0xE0,0xB0,0x58, + + 0xF0,0x83,0xC4,0x39,0x28,0xBF,0x5B,0x5F,0xC9,0x3E,0xA5,0xBE,0xDF,0x44,0xFA,0x82, + + 0x24,0xB3,0xA2,0x26,0xB4,0xEE,0x0C,0x51,0x4E,0x7B,0x0C,0x55,0x08,0x7D,0x52,0x36, + + 0xA7,0x5D,0xD2,0x26,0xDE,0x12,0x06,0x41,0x4F,0x7E,0x82,0x8B,0x1D,0xFC,0x93,0xF1, + + 0x4F,0xB1,0xC5,0xD1,0xD2,0xBF,0x65,0xA7,0x64,0x72,0xCB,0x07,0x1F,0xD1,0x7B,0xF1, + + 0x5A,0x95,0xD3,0x37,0x5C,0xB0,0x6D,0x37,0xEF,0x39,0x42,0xC4,0x81,0x90,0x9F,0x46, + + 0x68,0x03,0xB4,0x2E,0x7A,0xD8,0x0A,0xDE,0x8D,0x25,0x74,0xE5,0xB4,0xEF,0x4B,0xFF, + + 0xF7,0xC4,0x85,0x3D,0xCC,0x29,0x1A,0xCF,0x75,0x98,0x4B,0x13,0x71,0x0E,0xC2,0xFA, + + 0x72,0x07,0x31,0x99,0x98,0x6A,0x99,0x0B,0x33,0x9B,0x52,0x91,0xD5,0x74,0x0D,0xD1, + + 0x87,0x9A,0x56,0x8D,0xB1,0x46,0x1B,0xCF,0xE4,0x97,0xE8,0x1F,0xBF,0x0A,0x8C,0x26, + + 0x8D,0x47,0x0A,0x1D,0x07,0xB2,0x0E,0x59,0x4A,0x9A,0x4D,0xD1,0x1C,0x9C,0x10,0x62, + + 0x0C,0xD9,0xEE,0x82,0xC2,0x14,0xEA,0x3E,0x67,0x33,0x01,0x56,0x31,0x25,0x8B,0x14, + + 0xAF,0x5A,0x62,0xFC,0xD6,0xF8,0x73,0x7E,0x4D,0x75,0x48,0xDD,0x8A,0x25,0x8C,0x3F, + + 0x71,0xF8,0xFF,0x1B,0xBF,0xF2,0x07,0x48,0x8F,0x50,0x13,0x3A,0x28,0x99,0x9D,0xED, + + 0x8F,0x15,0x55,0x33,0x3C,0x67,0x6A,0x02,0x68,0x2D,0x0E,0xD1,0x1D,0xBE,0x74,0xF4, + + 0x0E,0xDD,0x8E,0x90,0xCF,0x36,0xCD,0x5A,0x93,0xFE,0x41,0x18,0xFF,0xBF,0x29,0x2B, + + 0xA2,0x43,0x52,0x4B,0xD1,0x3E,0xF2,0x6F,0x92,0xD0,0x2C,0xBF,0xCD,0x1E,0x73,0x50, + + 0x2D,0x9B,0x5E,0x3D,0x13,0x34,0xBF,0xC6,0x91,0x63,0x48,0x0F,0xF9,0x04,0x15,0xE8, + + 0x4C,0xFD,0x44,0x62,0xEF,0x3B,0xEB,0x1B,0x29,0xDB,0x09,0xD4,0xD0,0x7F,0xD3,0x40, + + 0x32,0xA1,0xC0,0x0D,0x17,0xFA,0x41,0x3C,0xB4,0x0E,0xD0,0x30,0xD8,0xB5,0xF9,0x3E, + + 0xAF,0x40,0x40,0x63,0x1D,0xD4,0x11,0xA5,0x8A,0x9F,0xAA,0x55,0x50,0x74,0xB6,0xF7, + + 0x87,0xC8,0x22,0x91,0xF4,0x63,0x18,0x4E,0x66,0xE8,0xA7,0x44,0x93,0xCA,0x38,0xA8, + + 0x7B,0x99,0xC4,0x04,0x58,0x89,0x52,0x51,0x76,0xEB,0x37,0x24,0x2E,0x7F,0x72,0xB8, + + 0xD5,0xCA,0x08,0x2C,0xDE,0x67,0x97,0x37,0x81,0xE5,0x5A,0x9C,0x5F,0x2A,0xB9,0x49, + + 0x7B,0x49,0x57,0x74,0xB9,0xD9,0xC0,0x70,0x9D,0xEB,0xF3,0x13,0xF1,0xE6,0xFE,0x69, + + 0x77,0x76,0x96,0x9E,0x72,0x3C,0x11,0xF5,0x8B,0x76,0x80,0x67,0x97,0xAA,0x0A,0x2E, + + 0x02,0x85,0xDB,0x80,0xBD,0xA8,0x1D,0x28,0xC8,0x98,0x87,0x4C,0x08,0xE3,0xF5,0xF0, + + 0xD5,0xC4,0x4B,0x6E,0xBE,0x67,0x42,0x29,0x22,0xF1,0x5A,0x59,0xB3,0x61,0xD7,0xE1, + + 0x52,0xC2,0x7B,0x0F,0x80,0x31,0x2D,0x54,0xA1,0x41,0x53,0xA9,0xF5,0x1F,0xF0,0x4B, + + 0xA7,0x68,0x0F,0x99,0xA2,0x15,0x9F,0x3B,0xC5,0xE0,0x1B,0x7E,0x0D,0xC6,0x82,0xB1, + + 0xF6,0x4E,0x84,0xAA,0x9A,0xAC,0x54,0x50,0xA3,0xDD,0x7E,0xFE,0x1A,0x64,0xF2,0xA6, + + 0x1B,0x40,0x93,0xC4,0xBE,0xD2,0x5C,0x55,0xE3,0xB7,0xE2,0xAC,0x79,0x92,0xD3,0xA7, + + 0xB9,0xB7,0xF9,0xA5,0x92,0x61,0x4B,0x6D,0x62,0xB4,0x94,0xEF,0x5A,0xD5,0xB4,0x05, + + 0xAA,0xD6,0x92,0xCC,0x3E,0xAF,0x5D,0x51,0x63,0x5C,0x2C,0xFD,0x97,0xC2,0x1F,0x62, + + 0xC0,0xB4,0xB4,0x74,0xB6,0x91,0x5A,0x9B,0x39,0x12,0x82,0xC6,0x8F,0xDD,0x55,0x98, + + 0xC8,0x1E,0xDE,0xBA,0xDA,0x55,0x90,0xC3,0x1C,0x3F,0x1F,0x30,0x5C,0x04,0x1B,0x63, + + 0x40,0xED,0x94,0x76,0x34,0xBF,0xCB,0xC4,0xE6,0xE9,0x00,0x00,0x07,0xF9,0xF5,0x99, + + 0x5C,0x5C,0xB5,0x75,0xB5,0x1F,0x7B,0x51,0xE0,0x39,0x5D,0xD0,0x1B,0x7B,0x1E,0x25, + + 0x4A,0xEE,0xA6,0xC0,0x33,0x04,0x2E,0x80,0x6E,0xF0,0x8D,0xE5,0xD7,0x7F,0xE0,0xAF, + + 0xE1,0xEA,0xCE,0xA6,0x00,0xB1,0xE6,0x01,0xC0,0xA5,0x84,0x70,0x75,0x6E,0x3C,0x31, + + 0x5D,0x59,0x7A,0x57,0x45,0x3C,0xC7,0xD4,0xD1,0x02,0x13,0x0D,0x32,0xBB,0xF6,0xA1, + + 0x23,0x91,0x37,0x3D,0xE7,0x9A,0x6F,0x19,0x73,0x96,0xCA,0xEA,0x97,0x6C,0xB3,0x78, + + 0x1B,0xEC,0xE5,0xFF,0x08,0x9C,0xD6,0x54,0xE6,0xF3,0x16,0xEF,0xAC,0xD5,0xD2,0x70, + + 0xA1,0xD4,0xF6,0xB1,0xD2,0xA8,0xF6,0xBD,0x21,0xC0,0xA0,0x84,0xB3,0xD0,0xBD,0x69, + + 0xAC,0x6F,0x99,0x6F,0x58,0x9E,0x88,0xA9,0x6F,0xAA,0x86,0xCD,0xBA,0x16,0x1D,0x66, + + 0x56,0x96,0xB5,0x6E,0x81,0x96,0x21,0xC1,0x64,0x40,0x60,0xCE,0xC5,0xFD,0x66,0x08, + + 0x36,0x07,0x50,0x2A,0x51,0x33,0xA9,0x6C,0x0D,0xD2,0xF0,0x9A,0x13,0xBD,0x92,0xE9, + + 0x74,0x02,0x97,0xD2,0x5E,0x34,0xD9,0x9E,0x94,0xF0,0xE4,0x14,0x77,0x32,0xDC,0xAF, + + 0x55,0x95,0x40,0xDF,0x51,0xFF,0xEC,0x1A,0xD2,0x45,0xCF,0xF9,0x1E,0xBF,0xF0,0x3F, + + 0x42,0xE5,0x0B,0xAE,0xDF,0x24,0x4E,0xBE,0x35,0x55,0xE1,0x30,0xDA,0x4F,0x6A,0x40, + + 0x59,0x08,0x60,0xDB,0x65,0xAE,0x3F,0x23,0xAD,0x39,0xAA,0xB6,0x3D,0xF1,0x9F,0xF2, + + 0x03,0x7A,0x0C,0xD4,0xB6,0xAF,0xCC,0x40,0x6B,0xBE,0x86,0x0E,0x3D,0x48,0x71,0xEC, + + 0x7C,0x2B,0xC9,0xC5,0x10,0xAC,0x73,0xDC,0x60,0x02,0xA9,0xB7,0xA3,0xE2,0x6D,0xFB, + + 0xCD,0xCE,0x91,0xB3,0x74,0x0C,0x67,0xF2,0xC5,0xD8,0x46,0x49,0xBF,0x92,0x5E,0x23, + + 0x6F,0x8D,0x18,0x81,0xC8,0xAE,0xE0,0x93,0x76,0x3B,0x3D,0x06,0x5A,0x26,0xF4,0xC1, + + 0x22,0xEB,0x10,0xD2,0x62,0x3F,0xA5,0x5A,0x3C,0xE7,0xDA,0x80,0xBE,0x04,0x39,0x4F, + + 0x0B,0x2B,0x61,0x24,0x17,0x2B,0x28,0x70,0x23,0x39,0xD1,0x7F,0x37,0xFD,0x0B,0x43, + + 0x84,0x5D,0x4E,0x7F,0x43,0x46,0xB9,0x2F,0x11,0x33,0xEF,0x96,0x28,0xA5,0xDD,0xE2, + + 0x40,0xC5,0x33,0xFD,0x43,0xB3,0x33,0x4C,0xA7,0x82,0x72,0x4B,0xF4,0xAA,0x9F,0x6B, + + 0x0B,0x72,0x94,0x36,0x90,0x0F,0x63,0x36,0xE8,0x66,0x96,0x20,0xB4,0xD8,0x5C,0xFA, + + 0x87,0x8A,0xAC,0xE9,0x77,0xBB,0x32,0x4D,0x27,0xA0,0x2F,0x9C,0xDD,0xAA,0x6C,0x68, + + 0xAE,0x2F,0xB1,0x5F,0x99,0x87,0x71,0x33,0x68,0x64,0xA3,0xAE,0x34,0x7A,0xCE,0x39, + + 0x27,0x2A,0xD8,0xB1,0x2D,0x28,0xE4,0x82,0xDA,0x01,0xE9,0x39,0xDC,0x40,0x62,0x4E, + + 0xE6,0xE4,0x69,0x38,0x92,0x0B,0x05,0xFE,0x1A,0x1B,0xEB,0xB9,0x81,0xE5,0x7B,0x8C, + + 0x4C,0x0E,0x59,0x2F,0xD2,0xB5,0x8C,0x86,0xFE,0x43,0x06,0x0D,0x21,0x43,0x75,0x3F, + + 0xAE,0x57,0x7D,0xA0,0x62,0xC1,0xDC,0x4F,0x26,0x0E,0x7F,0xFB,0xE8,0x64,0x76,0x7D, + + 0xD3,0x25,0xB1,0xC1,0xFE,0x19,0x10,0x34,0x65,0x23,0xB4,0x22,0x59,0xD5,0x6A,0xEC, + + 0xD8,0xE0,0x6C,0xE6,0x71,0xBC,0x1B,0xA6,0x47,0x81,0x3C,0xF5,0xA1,0xB3,0x7D,0x7B, + + 0xA4,0xD0,0xAD,0x83,0x3D,0x24,0x6B,0xDB,0xE4,0xC9,0x75,0xC2,0x1E,0xFA,0x52,0xE9, + + 0xD3,0x0C,0xB5,0x93,0x3C,0x67,0xEF,0x13,0xE5,0xB0,0xA7,0xA3,0x96,0xD3,0x72,0xA0, + + 0x46,0x9D,0xC2,0xB2,0x17,0x24,0xF4,0xFD,0x56,0x79,0xAD,0xD4,0xD3,0x0B,0x6D,0xA1, + + 0x57,0xDA,0xB5,0xC5,0xD3,0x74,0xAB,0xB5,0xAD,0xC4,0x04,0x74,0xBE,0xBA,0x1C,0xB0, + + 0x9A,0xD9,0xBC,0xD5,0xD1,0x96,0x60,0x66,0xE8,0x5C,0xAC,0xE2,0x53,0x07,0x34,0xB3, + + 0xA1,0x85,0xD7,0x3F,0xBB,0xF8,0x75,0xC7,0xE1,0x9E,0xC5,0x08,0xC4,0x97,0x18,0xF2, + + 0x44,0x95,0x98,0xB6,0x54,0xB5,0x6F,0x26,0x0F,0xF8,0xCE,0xBD,0x44,0xF1,0xD1,0xDD, + + 0xD4,0x6F,0x32,0xA9,0xCE,0xDC,0xE0,0xC1,0xED,0x38,0xAF,0xDA,0xB5,0xE8,0x01,0x6B, + + 0x0F,0x1F,0x58,0xFC,0x80,0xF8,0xCF,0xED,0xE0,0x98,0x91,0x86,0xD5,0x5E,0xD0,0xE1, + + 0x67,0x94,0x97,0x64,0x30,0x1D,0xFF,0x4E,0x14,0xC0,0x23,0x3D,0x30,0x66,0x40,0x3A, + + 0xBE,0x3D,0xBF,0x43,0x9B,0x1D,0x0E,0x19,0x0A,0x71,0x4E,0xA9,0xA0,0xF4,0x3C,0x90, + + 0xC4,0xF9,0xFF,0x1E,0x3B,0x46,0x36,0x66,0x5C,0xFD,0xA1,0x35,0x5B,0xFD,0xF6,0x38, + + 0x2A,0x13,0xF6,0x30,0x33,0x18,0xE1,0xAC,0x24,0x1F,0xF1,0x9D,0x59,0xBC,0xAF,0x53, + + 0x57,0x14,0x10,0xAC,0x87,0xD1,0xC7,0xEB,0x48,0x59,0xFF,0xFF,0xFF,0xFF,0x3A,0xF3, + + 0x3C,0xAF,0x2B,0xA1,0xC5,0x3E,0xEF,0xA2,0x85,0xC9,0xEE,0x95,0xB1,0xCF,0x36,0xF9, + + 0x8C,0x87,0xA3,0x24,0x31,0x8E,0x0D,0xC3,0x75,0xB4,0xFE,0x94,0x52,0xC9,0x16,0xF0, + + 0xFF,0xFD,0xFC,0xFE,0x41,0xFF,0x69,0xD2,0xFC,0xED,0xC5,0x56,0xFA,0x0E,0x8D,0xD1, + + 0x8D,0xF8,0x29,0xE5,0x53,0xB0,0x88,0xC1,0x59,0xB2,0xA7,0x94,0xD7,0x61,0xF7,0xE5, + + 0x71,0x04,0x6C,0xDB,0x13,0x64,0x36,0xC8,0xB5,0xC9,0x10,0xE4,0xCC,0x26,0x48,0x97, + + 0xEA,0xA6,0x01,0xD0,0x11,0x71,0x98,0xF0,0x2C,0xE8,0x28,0x34,0x13,0x9E,0x1E,0x55, + + 0x84,0xC4,0xE5,0x50,0x94,0xA4,0x2A,0x9A,0xFD,0xB9,0x15,0x43,0xD4,0x44,0xAE,0x22, + + 0xE1,0xD1,0x09,0xD0,0xBE,0xD8,0x0B,0x36,0xCD,0x98,0xDD,0x77,0xD7,0x9C,0x02,0x2C, + + 0x0E,0xB2,0x42,0x88,0x29,0x57,0x6C,0x2E,0xA9,0xCB,0x5E,0xA8,0x5A,0x8A,0x74,0x34, + + 0xF5,0x58,0x75,0x6F,0x21,0x4A,0x62,0xBC,0x7D,0x86,0x21,0xAF,0x3F,0x63,0x2A,0x7B, + + 0x63,0x3B,0xBD,0x21,0xF0,0x27,0xB9,0xDA,0x44,0xC7,0x6C,0x6A,0x12,0x89,0x51,0x49, + + 0xF5,0x49,0x70,0xED,0x29,0xDA,0xBC,0x11,0x4B,0x87,0x99,0x23,0xBF,0x9F,0x0A,0xC1, + + 0x87,0xA1,0x71,0xAE,0x1C,0x57,0x6C,0xD9,0x4C,0x0E,0xD2,0x73,0x64,0x2E,0x9A,0xCB, + + 0x69,0x07,0x9D,0xD8,0x15,0x68,0x72,0x1A,0xBF,0xCE,0x6A,0xF8,0x55,0x04,0x97,0xDA, + + 0xE0,0xA3,0x36,0x53,0xE8,0xDA,0xA9,0x2B,0x6B,0xB3,0x93,0xE2,0xDC,0x0C,0x4A,0x4A, + + 0xE9,0x4C,0x0B,0xDD,0x0F,0x6D,0xEC,0xC8,0xCD,0x6D,0xC4,0x9D,0xD7,0xC2,0x64,0xD6, + + 0x21,0x52,0x44,0x01,0x3F,0x90,0x07,0x24,0x6A,0xBE,0x78,0xDB,0xBA,0xD3,0xCC,0x15, + + 0x52,0x0A,0xBE,0x85,0x09,0x35,0x7B,0x70,0x65,0xA5,0x9E,0xAA,0x13,0x85,0x47,0xBD, + + 0x93,0x93,0x14,0xF6,0x84,0x39,0x2D,0x5A,0x15,0x3E,0x2E,0x36,0x92,0x7A,0x1C,0x13, + + 0x64,0x74,0xBD,0xE6,0x8D,0x5F,0x0E,0xC2,0xDD,0xD4,0xCB,0xA4,0xDB,0x77,0x22,0x75, + + 0xDD,0xC9,0x84,0x4B,0x34,0xB6,0x2A,0x0D,0x89,0x0F,0x0F,0x97,0x05,0xF3,0x37,0x2B, + + 0x1C,0xEA,0xD3,0x34,0x3F,0x98,0x9C,0x74,0xA4,0x5D,0xFC,0xD4,0x9A,0xAE,0x23,0x75, + + 0x55,0x9B,0x0C,0x41,0xBC,0x5F,0x2B,0x19,0x09,0x65,0xD1,0xF5,0xC1,0x37,0x8D,0x51, + + 0xCC,0xBA,0xB5,0xAD,0x90,0x57,0xD9,0x00,0xD9,0x77,0xAF,0xF1,0xA5,0x6C,0xC6,0x18, + + 0x5C,0x5A,0xE4,0x8D,0x39,0x08,0x12,0xAD,0xA0,0x09,0xE4,0xEB,0x91,0x1B,0x16,0x8C, + + 0x2F,0xA1,0x81,0x3B,0xC5,0x28,0x8F,0x58,0x6D,0xF9,0xA0,0x18,0xB3,0xBA,0x49,0xBA, + + 0x55,0x95,0xA1,0xB5,0xC7,0x78,0x04,0xB8,0xDC,0xF7,0xF1,0x18,0x13,0x19,0xFB,0x64, + + 0xA1,0x5A,0x1F,0x6C,0xDE,0xC4,0x0A,0xFE,0x2B,0x5A,0xE1,0x19,0x74,0xD6,0x96,0x8F, + + 0x24,0xC3,0xE0,0x65,0x04,0x91,0x6C,0x1B,0x5C,0x1E,0x44,0xEE,0x34,0xD1,0xB4,0x9A, + + 0x8A,0xE0,0x58,0xE2,0x49,0xC8,0xB4,0xB8,0x67,0xF6,0xD8,0x11,0x92,0x06,0x79,0x6C, + + 0xAC,0x5C,0x92,0xBC,0x84,0x37,0x93,0xCF,0xEC,0x1C,0x06,0x5F,0xF2,0xDC,0x67,0xBB, + + 0x5F,0x5C,0x98,0x59,0xF9,0x16,0x8E,0xF8,0x9C,0x93,0xAD,0xFC,0xBB,0x64,0x64,0x92, + + 0xE5,0x8F,0xDE,0x00,0x77,0xBC,0x2A,0x40,0x65,0xE3,0x66,0xE1,0xA9,0x46,0x6C,0xC5, + + 0x66,0x7E,0xD0,0x31,0xA8,0xAE,0x20,0x1F,0x0D,0xB0,0xB0,0x26,0x81,0xA2,0x7B,0x76, + + 0xF8,0xC0,0x72,0xF4,0x18,0xFF,0x0F,0x0B,0xA5,0x3F,0x65,0x59,0x1E,0xA1,0x51,0x02, + + 0xB1,0x2E,0xF3,0x33,0xED,0x0C,0x07,0x1E,0x4A,0x45,0x1E,0x92,0x3C,0xC0,0x46,0xF3, + + 0x28,0x80,0x24,0x23,0xE9,0x71,0x7F,0xA0,0xE7,0x3B,0x88,0x1E,0x75,0x84,0x4E,0xF7, + + 0x6D,0x08,0x4B,0xEA,0xCB,0x56,0xBE,0xC8,0xAE,0xE6,0x29,0x07,0x69,0xEC,0xE3,0x50, + + 0xA0,0x05,0x99,0xC3,0xA9,0xD1,0x19,0x01,0x31,0x84,0xD7,0xCB,0xE8,0x4B,0x17,0xF2, + + 0x6E,0xA4,0x29,0xD7,0x09,0xE5,0xB9,0xF3,0xE2,0x85,0x33,0x49,0xA1,0x12,0xB3,0xEA, + + 0x08,0x28,0x02,0xFE,0xDE,0x3B,0x36,0x6A,0x5A,0x3D,0x72,0xAE,0x08,0x17,0x3F,0xFA, + + 0xD2,0xCB,0xF0,0x34,0x61,0x06,0xFA,0xBB,0x82,0xC4,0xDC,0x96,0x5E,0x69,0x36,0x7B, + + 0xAC,0x22,0x63,0x8F,0xBE,0x15,0xA2,0xDB,0xA1,0x3B,0x1F,0xBC,0xE6,0x37,0xEF,0xF7, + + 0xBE,0x79,0x0B,0xEF,0x04,0x78,0xC0,0xCB,0xA0,0x6A,0x18,0x97,0x01,0xD8,0xCE,0xD9, + + 0x2C,0x84,0xA0,0x82,0x18,0x8E,0x32,0x39,0x06,0xEF,0x25,0xEA,0x1C,0xC5,0x3E,0xDE, + + 0x0D,0xE7,0xEE,0x5C,0x1B,0x56,0x2A,0x74,0x65,0xF9,0xA9,0x3E,0x4E,0x40,0xE3,0x0A, + + 0x68,0x23,0x13,0x0F,0xDE,0x55,0x7F,0x57,0xEA,0xBA,0x95,0xD6,0x2B,0x48,0xAB,0xDB, + + 0xC1,0xE3,0xEB,0x40,0xA1,0xED,0xAB,0x09,0x24,0x14,0x2A,0x9F,0x9D,0x4F,0xE4,0xEB, + + 0x58,0x9A,0xFA,0x7B,0xCB,0x4B,0x0A,0x8B,0xA6,0xD0,0xE2,0x35,0x4E,0x5F,0xEC,0x2B, + + 0x22,0x64,0x6C,0x12,0x6D,0x65,0x06,0x41,0x5D,0x7E,0xED,0x45,0x17,0x2E,0xA1,0x7E, + + 0x5B,0xD3,0x5A,0xA3,0x68,0xB1,0x3D,0x90,0x61,0xE3,0xE3,0xD4,0x96,0x54,0x70,0x17, + + 0x9F,0x5A,0x7D,0x64,0x9B,0x67,0xAC,0xF4,0x0C,0x82,0x0A,0x06,0x86,0xF3,0xD3,0x67, + + 0x20,0xB6,0x82,0x7B,0xC3,0x12,0xAB,0x4E,0x59,0x14,0xB3,0xE4,0x3A,0x59,0x04,0xB0, + + 0xD0,0xD7,0x39,0x7F,0xDE,0xEE,0xC5,0x0E,0xA2,0x2E,0xA5,0xD3,0x9E,0xE6,0x6A,0x01, + + 0x07,0x69,0x36,0x87,0xAC,0x12,0x2A,0x1C,0xE0,0x0D,0x28,0x55,0xF2,0x56,0xAB,0x69, + + 0x4E,0xB4,0x8F,0xC6,0xB4,0x67,0x2B,0x1E,0xAF,0x6C,0x05,0xE4,0xC9,0xA4,0xE6,0x0B, + + 0x1F,0xDA,0x74,0x7D,0x52,0xBE,0x50,0x43,0x85,0xE9,0xE9,0xBA,0x7A,0x3A,0x01,0xE8, + + 0xC6,0x48,0x1A,0xFC,0xE9,0xAA,0x00,0x96,0x99,0xE8,0x59,0xCD,0x5B,0x2F,0xF6,0x3C, + + 0xAA,0x83,0x8A,0xA5,0x1D,0x65,0x55,0xAB,0xEF,0x70,0xB7,0x68,0x15,0x99,0x51,0xA6, + + 0xC6,0x0A,0xD1,0x36,0x69,0x38,0x66,0xBF,0x60,0xB8,0xB7,0x2F,0x09,0xB8,0xA6,0x4A, + + 0x21,0xDE,0xBC,0x7F,0x56,0xE7,0x89,0x6E,0x19,0x81,0xF0,0x16,0x97,0x1F,0xAE,0x5A, + + 0x7B,0xF1,0x44,0x2D,0xB3,0x10,0x2F,0xFB,0x86,0x1E,0x7F,0xC1,0x11,0x5D,0x27,0x98, + + 0x47,0xBD,0x99,0xC9,0x5F,0x3D,0x4D,0x18,0x80,0x75,0x5B,0x7D,0xBA,0xF4,0x09,0x72, + + 0x50,0x42,0xBE,0x3D,0xF7,0xE4,0x3D,0x04,0x06,0xCC,0x29,0x7B,0xF5,0x85,0x3E,0xA8, + + 0xA3,0xA0,0x55,0x06,0x32,0x8D,0xD4,0xAE,0x41,0x10,0x65,0x5A,0xD1,0x6D,0xAB,0xB1, + + 0xDD,0x42,0x80,0x0C,0xF8,0xB2,0x1E,0x42,0xAA,0x12,0xD8,0x89,0x57,0x63,0x50,0x40, + + 0x37,0x43,0xD2,0xC2,0x52,0xA2,0xD1,0xA4,0x39,0x4A,0x2E,0x67,0x71,0x20,0x2A,0xB4, + + 0x59,0x80,0x65,0x87,0x85,0x29,0x39,0x0D,0x4C,0x01,0x5F,0xCA,0x24,0x6F,0xFF,0xDB, + + 0xF7,0x92,0x88,0xCD,0x14,0xD5,0x10,0xC0,0x44,0x46,0x43,0x97,0x26,0xC9,0x64,0x4A, + + 0x81,0xC9,0x7B,0x68,0xEF,0xD4,0x50,0x74,0xC6,0x74,0xCF,0x07,0x27,0xC6,0x49,0x51, + + 0x05,0x37,0x06,0xC1,0xEE,0x28,0x6C,0xE5,0xB4,0x40,0x46,0x54,0xAA,0xC9,0xEF,0xD5, + + 0xC1,0x22,0x09,0x68,0xED,0x65,0x07,0x99,0xCF,0x06,0xCA,0x86,0xA3,0xC7,0x38,0xFB, + + 0x32,0xA7,0x84,0xFD,0x26,0x08,0xD6,0xA7,0x49,0x38,0xAA,0x53,0xD9,0x65,0x32,0xE2, + + 0xA5,0x04,0x66,0x8E,0x0D,0x21,0x52,0x29,0x22,0x1A,0x28,0x01,0xB2,0x2D,0xD2,0x8B, + + 0x4D,0xBF,0xA3,0x94,0x71,0xB9,0xFF,0xAD,0xC6,0xF7,0x53,0xAC,0x44,0xE1,0x74,0x9D, + + 0xB6,0x7C,0x88,0x6E,0xEB,0x45,0x19,0x3B,0x93,0x27,0xC1,0x76,0xAF,0x29,0x22,0x1E, + + 0x07,0x01,0x55,0xD1,0xEF,0x23,0x92,0x85,0xF4,0x22,0x43,0x6E,0x98,0xC1,0x0E,0xD3, + + 0x0D,0x0F,0x5B,0x5E,0xBE,0x98,0x3C,0xD8,0x6F,0x01,0xE2,0x86,0xF7,0x60,0x23,0x1F, + + 0x8F,0x4C,0x77,0x32,0x39,0x8E,0xEC,0xFA,0xE0,0x93,0x46,0xE9,0xA6,0xE2,0x14,0xDB, + + 0x4E,0x07,0x5E,0x62,0xB1,0xFA,0x4D,0x91,0xBC,0x02,0xA4,0x07,0x56,0x0D,0xD4,0xFE, + + 0xEA,0x33,0x96,0x81,0xBD,0x96,0x4F,0xA0,0x1B,0xF0,0x31,0x54,0x94,0x81,0x08,0x92, + + 0x2B,0xEC,0x0E,0xE7,0x07,0x90,0xA1,0x2F,0xD4,0x87,0x4F,0x30,0x73,0x72,0x4D,0x90, + + 0xCB,0xF1,0x50,0x76,0x8A,0x36,0xD5,0x30,0x15,0x3E,0xEB,0xA3,0x93,0x6E,0x13,0x35, + + 0x82,0x73,0x58,0x66,0x8B,0xC6,0x55,0x85,0x34,0x0E,0x5D,0x31,0xA1,0x8C,0x7C,0x3F, + + 0xC3,0x8B,0xFA,0x64,0x44,0x9B,0x26,0xCE,0x38,0x52,0xF4,0x0E,0x1B,0xA5,0xC7,0x90, + + 0x27,0x5B,0xF4,0x2B,0xFB,0x16,0xE8,0x92,0x9C,0x53,0xCA,0x54,0x1B,0xD7,0x3A,0x06, + + 0xA4,0x04,0x61,0xA7,0x45,0x53,0xFC,0x47,0x43,0x89,0xB4,0xA5,0xF6,0x38,0x58,0x53, + + 0x66,0x70,0x6D,0xC6,0x91,0x53,0xF4,0x53,0x42,0xC8,0xCD,0x7C,0xF1,0x6C,0xBD,0xF9, + + 0x02,0x13,0xD3,0xA8,0xBD,0x09,0xBD,0xF7,0xD5,0xA4,0x56,0x41,0xC6,0xA5,0x8A,0x69, + + 0x47,0xE6,0x96,0x98,0xB0,0xAD,0xA5,0x3C,0x67,0xA7,0xA6,0x38,0x73,0x0D,0x05,0x7A, + + 0xC6,0x1E,0xB9,0x65,0xD9,0x1A,0x48,0xA5,0xEE,0xF8,0xBF,0xCF,0x05,0x76,0x6F,0xCF, + + 0x55,0x59,0x4F,0x1D,0x0D,0x79,0x21,0x08,0x64,0x39,0xC5,0x8B,0x85,0xD4,0x7E,0x36, + + 0x86,0x11,0x98,0x2E,0x3E,0x91,0xE2,0x8A,0x91,0xA5,0x20,0x68,0x0E,0xC0,0x1A,0x5A, + + 0xEE,0x15,0xF6,0x26,0x97,0x30,0x06,0xEC,0xBB,0x8C,0x32,0x78,0x69,0xA5,0xB8,0xD7, + + 0x88,0xB1,0x56,0x49,0xA0,0xCE,0x0F,0xED,0x1B,0x87,0xD6,0x69,0x8E,0xA1,0x8F,0x5C, + + 0xB2,0x17,0xB0,0x9A,0x46,0x89,0x78,0xC4,0x6B,0x9F,0xD7,0xFC,0xDF,0x11,0x83,0xB3, + + 0xD8,0x43,0xC2,0x8E,0x17,0x00,0xF0,0xA7,0xDA,0xCA,0xF0,0x86,0xAF,0xEE,0x53,0x35, + + 0xA4,0x3E,0x29,0x65,0x67,0xCF,0x70,0x23,0x2E,0x92,0x43,0xB2,0x6A,0x96,0x41,0x55, + + 0x78,0x8F,0xFF,0xAA,0x90,0xA6,0xB0,0xA7,0xCA,0x7F,0x89,0xD8,0x57,0xEF,0x9E,0xA3, + + 0x71,0xE0,0xCB,0x9F,0x94,0xC3,0x38,0x31,0x9D,0x81,0x79,0xB2,0x0A,0xED,0xA0,0xC6, + + 0xB4,0x8C,0xB0,0xC2,0x7D,0x3D,0x0E,0x4F,0x25,0x3B,0x0B,0x1D,0x58,0x1B,0x50,0xAC, + + 0xAB,0x88,0x7F,0xB4,0x14,0x4C,0x1E,0x02,0x46,0xE5,0xC6,0x4E,0x81,0xEF,0x70,0xC1, + + 0x43,0xA1,0xDB,0xB4,0xA2,0xE4,0x89,0x10,0xFA,0xAA,0x5D,0x14,0xAE,0x10,0x96,0xD1, + + 0x42,0x04,0xD7,0x7B,0xF7,0xE7,0xE9,0xF1,0x52,0x52,0x79,0xB1,0xBF,0x8B,0xE2,0xE7, + + 0xB2,0xF4,0xFC,0xA3,0x10,0x05,0xF6,0xA4,0x4F,0xD8,0x8A,0xD1,0xDF,0xE5,0x83,0x98, + + 0xC8,0x3C,0xAC,0x6D,0x2B,0x2E,0xBE,0xCB,0x7B,0x59,0x01,0x7C,0xFC,0x14,0x9C,0x44, + + 0x19,0x57,0x72,0x7F,0xDC,0xA3,0xF3,0xAE,0x35,0xC2,0x48,0xAB,0xA5,0x53,0xEB,0x8B, + + 0x25,0x2D,0xA8,0x12,0x74,0xF8,0x88,0x8A,0x31,0x08,0x93,0x5D,0xDB,0xC9,0x5A,0xC8, + + 0xCB,0xEF,0x1D,0x3C,0x30,0x73,0x4A,0xD8,0xFA,0x5D,0xCD,0xFD,0x26,0x43,0x2A,0xA3, + + 0x8D,0x41,0x51,0xFB,0xE8,0x00,0xEC,0x5D,0xEE,0x4A,0x84,0x42,0xD0,0x40,0xA3,0xCA, + + 0x14,0xCC,0x5C,0x7E,0x3F,0x51,0xC7,0x09,0x2C,0x64,0x64,0x15,0x14,0x7F,0x9F,0x39, + + 0x78,0xEA,0xBF,0x62,0x74,0xEB,0x35,0x5F,0x63,0xC2,0x6C,0xEC,0xEA,0x64,0x66,0xA1, + + 0xEE,0x13,0xE4,0x13,0xCB,0x6D,0xCF,0xD1,0x02,0xB2,0x14,0x56,0xED,0x23,0x2A,0x63, + + 0x17,0xB1,0x94,0x12,0x3F,0xC5,0xC7,0x88,0x0F,0x64,0xFC,0xDD,0x73,0x8A,0x9E,0x10, + + 0x8A,0x98,0x8D,0xE5,0x49,0xBE,0x22,0x5C,0x15,0x01,0x75,0x27,0xD6,0xB0,0x0D,0x12, + + 0x58,0x3A,0xF7,0xA1,0xC9,0x1C,0xEF,0x37,0xA3,0xD3,0x48,0x33,0xFB,0x0D,0x66,0xD8, + + 0x04,0x20,0x1B,0xB8,0xE4,0x6B,0xDC,0x67,0xE3,0xA6,0x64,0xA1,0x52,0x79,0xA8,0x21, + + 0x05,0x38,0x97,0xF1,0x96,0x0A,0x6F,0x01,0x1F,0x7E,0xEA,0xDE,0x71,0x7F,0x31,0xB0, + + 0x84,0xFA,0x25,0xFA,0xE8,0xBB,0xD9,0xC7,0x07,0x79,0x8B,0xCF,0x95,0xA4,0x39,0x56, + + 0x4C,0xB4,0x41,0xA8,0x6D,0x18,0x2D,0xC9,0x8C,0xF4,0x41,0x95,0x15,0xB7,0x74,0x6A, + + 0x20,0x45,0x06,0x7E,0xAD,0x6B,0x91,0x12,0xEC,0xB8,0xDE,0xCC,0x83,0xF6,0x50,0x32, + + 0xAD,0xF9,0xC6,0xFC,0xC2,0xB7,0x6D,0x7D,0xAF,0x59,0xA1,0x7C,0xDC,0x46,0x39,0x2E, + + 0x8F,0x1A,0x67,0x0F,0x9E,0x05,0x69,0x13,0xCA,0x77,0x8F,0x51,0xFA,0x43,0x71,0x33, + + 0x52,0xD9,0x97,0x61,0xBB,0xC0,0x77,0xAA,0x0C,0x74,0xD7,0xDD,0x0E,0x97,0xA6,0x4A, + + 0x0A,0xDE,0x71,0xB0,0xEC,0x13,0x36,0x13,0x6C,0x47,0xF0,0xD1,0x4E,0xBE,0xBD,0x58, + + 0x2C,0x4D,0x42,0xAC,0xF5,0x4C,0x21,0x87,0x8E,0x72,0xC0,0xD6,0xF2,0x7B,0xA7,0xD3, + + 0x51,0xDC,0x74,0x6F,0x53,0xCE,0xC2,0xD4,0xD2,0x9C,0xBE,0xEF,0xB6,0xEF,0xAF,0x5B, + + 0xD1,0xDD,0x91,0xE2,0x5E,0x19,0xEE,0x7F,0x93,0xD0,0x7F,0xBF,0x12,0xBE,0x60,0x44, + + 0x71,0x8D,0x44,0xD4,0x18,0x23,0x28,0x70,0x41,0x4F,0x0C,0x63,0x8E,0x6A,0xC8,0xF8, + + 0xA6,0x07,0x8E,0x90,0x22,0x1C,0x78,0x74,0x8D,0xCA,0xA2,0xDB,0x2A,0x41,0x79,0x83, + + 0x85,0x3B,0xB9,0x11,0x12,0x6A,0x29,0xF1,0x7F,0x4D,0x92,0x36,0xFD,0xD2,0x81,0x12, + + 0x20,0x89,0xE9,0x51,0xD7,0x2E,0x1D,0xD3,0x43,0x40,0x2E,0x44,0xD7,0xFA,0xB8,0xC2, + + 0x82,0xBC,0xF8,0x83,0xCC,0xB9,0x9B,0x20,0x44,0x06,0xE2,0x8C,0x10,0x2B,0x8C,0x80, + + 0x0F,0x06,0xC3,0x32,0x31,0x28,0x08,0xF4,0x41,0x78,0x27,0x14,0x0F,0x28,0x79,0xBE, + + 0x43,0x64,0x22,0x05,0x8E,0x3D,0x11,0xDC,0xC4,0x44,0xB1,0x32,0x4F,0x6B,0x71,0xC1, + + 0xB0,0x20,0xCF,0xA4,0xEC,0xFF,0x99,0x34,0xDA,0x2B,0xC1,0x65,0x5E,0x91,0x7D,0xEA, + + 0x8A,0x0B,0x7D,0xAC,0xB9,0xE8,0x14,0x5A,0xEB,0x4E,0x4E,0x3F,0x75,0xD8,0x72,0x9A, + + 0x0C,0x00,0xD3,0x77,0xE4,0x45,0x4A,0xA1,0xEA,0x4F,0xA4,0x5C,0x78,0x19,0xB6,0x6B, + + 0xCB,0xFD,0xE3,0x49,0x80,0x68,0x43,0x80,0x6B,0x4C,0x95,0x31,0x58,0x8D,0x51,0x59, + + 0x2A,0x6E,0x4F,0xBD,0x38,0xEB,0x4B,0x34,0x6A,0x4D,0xE5,0x21,0xE6,0x94,0xFA,0xB2, + + 0x1A,0x41,0xE2,0xFC,0x3A,0x8D,0x92,0xEC,0x68,0x46,0xDA,0x64,0xD8,0x80,0xF2,0xC3, + + 0x30,0x4A,0x0A,0xDC,0x55,0x6F,0x8E,0x79,0x20,0xCE,0x98,0x9A,0x68,0xEF,0x3C,0x0E, + + 0xB9,0x05,0x54,0xC9,0x98,0xDD,0xD3,0xAF,0xA2,0xE5,0x7E,0x0F,0x98,0x75,0xB7,0xD1, + + 0x2E,0x99,0x8F,0x1D,0x98,0xAE,0x3F,0x88,0xA1,0x57,0x63,0x9D,0xD7,0xE4,0x4E,0x7B, + + 0x83,0x75,0x30,0x66,0xF8,0x79,0x95,0xC2,0x23,0xEF,0x9A,0x26,0xE5,0x7C,0x34,0x40, + + 0xFE,0x1E,0xEA,0xF1,0x32,0x9A,0x24,0x60,0x9A,0x5E,0x99,0x30,0x63,0x3A,0x3D,0x51, + + 0x5E,0x1D,0x82,0xF6,0xE8,0x5C,0x6D,0x23,0xE5,0x82,0x55,0xC0,0x35,0x69,0x6D,0xD1, + + 0xA7,0x1E,0xAB,0xF5,0xE5,0x9E,0x7D,0xF5,0xE9,0x11,0xFD,0xFB,0x70,0x31,0xD4,0x86, + + 0x4A,0xBF,0x1B,0x8C,0xB2,0x74,0x94,0xB0,0x35,0x5C,0x16,0xE4,0x41,0xD1,0xE0,0x42, + + 0x27,0x1D,0x5C,0x50,0x0C,0x42,0x9C,0x70,0x41,0xEA,0x3A,0x96,0x30,0x85,0x9A,0x3E, + + 0x4B,0x2D,0x2D,0xF4,0x16,0x97,0x16,0x65,0xE0,0x08,0x6A,0x03,0x70,0x72,0x8C,0xA2, + + 0xD8,0x91,0x76,0x92,0xBD,0xC8,0x3D,0x72,0xF2,0x5A,0x84,0xC3,0x54,0x71,0x4C,0x76, + + 0x8B,0x7D,0x05,0x4B,0xF2,0x11,0x4F,0xCA,0xEA,0x10,0x0A,0x6A,0xD4,0x3A,0x36,0x48, + + 0xD2,0x16,0xB4,0x18,0x14,0x1C,0x7E,0xFC,0x71,0x1B,0xED,0xCE,0x05,0x62,0x3F,0x59, + + 0x17,0x15,0xCF,0xC9,0xBE,0x53,0x11,0x2D,0xDB,0x57,0x0B,0xFB,0xFE,0x98,0x6F,0xDD, + + 0xC9,0x96,0x74,0xBA,0x18,0xC4,0x46,0xDB,0x6B,0x13,0x6F,0x5B,0x0C,0xF8,0xC6,0x88, + + 0x68,0xB1,0x9F,0x15,0x1E,0xE7,0xAD,0xCF,0xCB,0xA3,0xF6,0x76,0xDB,0x6C,0x06,0xC1, + + 0xC2,0xA6,0xCF,0xAE,0xC0,0x7F,0x21,0xBF,0x96,0xEB,0xA6,0x1C,0x3B,0x80,0x1A,0x0E, + + 0x68,0x16,0x6C,0x30,0x0A,0x45,0x97,0xAC,0xF3,0x13,0x2F,0x8B,0x05,0xF4,0x2D,0x99, + + 0xA8,0xFF,0x14,0xB3,0x3E,0x5E,0x65,0x6B,0xEB,0x55,0xD5,0x9D,0x5C,0x79,0x7A,0x07, + + 0xA7,0x86,0xC0,0x42,0x4C,0xE2,0x60,0x17,0xE7,0xC6,0x8A,0xDD,0x2B,0x1F,0x48,0x56, + + 0x42,0x8E,0x01,0x54,0x13,0xB3,0x47,0xD0,0xC7,0xE9,0xA6,0xA6,0xAA,0x4C,0xA9,0xCF, + + 0x65,0x8D,0xF8,0x6C,0xB0,0xA4,0x3D,0x4D,0x65,0x48,0x71,0x5F,0xFB,0x4F,0x49,0x57, + + 0x05,0x8E,0x87,0x17,0x95,0xA3,0x04,0xB7,0xF6,0x0C,0xA5,0x70,0x0B,0xE9,0x25,0xA5, + + 0xFB,0x08,0x20,0xC3,0x2A,0x25,0x56,0x9B,0x20,0xBF,0x0F,0x80,0xD4,0xE0,0x6C,0xF2, + + 0xA6,0x07,0x28,0xD6,0x59,0x5A,0x73,0xF6,0x71,0x22,0x00,0xF4,0xD7,0xC2,0xA5,0xC6, + + 0x88,0x0C,0xEB,0xC3,0x94,0xEB,0x75,0x8F,0x40,0xFD,0x90,0x05,0xE5,0x43,0x30,0xF4, + + 0x22,0x58,0x89,0xD4,0x86,0xAA,0x47,0x8B,0x48,0x41,0xC1,0x17,0x99,0xAA,0x68,0xF7, + + 0xAF,0xED,0xA2,0x8C,0x89,0x24,0x52,0x6E,0x48,0xC5,0xB1,0x3D,0x75,0x38,0x4A,0x5A, + + 0x0B,0x84,0xAA,0x1E,0x1D,0x24,0xB2,0x2E,0xEC,0x43,0x65,0x3F,0x5B,0x70,0x1B,0xDB, + + 0x7B,0x85,0x63,0x87,0x55,0xAA,0x79,0xD0,0x6F,0xCC,0x6E,0x2E,0x3D,0x55,0x61,0xF4, + + 0x2E,0x86,0xCB,0x51,0x6B,0xA4,0x44,0xD9,0x4F,0x83,0x67,0x2E,0x85,0xCA,0x63,0x2C, + + 0xF1,0xE0,0x99,0x69,0xBF,0xC0,0x72,0xAA,0x3A,0x67,0x0D,0x92,0x5E,0xE1,0x37,0xE8, + + 0xA0,0x9F,0x6F,0xB6,0x4E,0xE0,0x25,0x32,0x3C,0xEB,0xBC,0x00,0xDD,0xE9,0x3A,0xAF, + + 0x2B,0x78,0x04,0x35,0x48,0xA4,0xA1,0x6A,0x72,0x75,0x8C,0x97,0xDE,0xAC,0xD3,0xC5, + + 0x95,0xE0,0xBB,0x3C,0xD7,0x04,0xA4,0x23,0xB8,0x89,0x37,0x1D,0x24,0xAD,0x5C,0xA5, + + 0x87,0x96,0x64,0x5A,0x95,0x1D,0x33,0x26,0x57,0xDD,0xB0,0x2E,0xD3,0xB2,0x4C,0xD6, + + 0x10,0x1C,0x39,0xE5,0x10,0xB8,0x71,0x30,0x60,0x33,0x7C,0x3E,0x52,0xF7,0x2D,0xA4, + + 0xE4,0x9D,0xA2,0xF6,0x99,0xB9,0xEA,0xD3,0xE2,0x69,0x29,0xE0,0xC7,0xC2,0x55,0x11, + + 0xAC,0xD7,0x2E,0x64,0xED,0x1E,0x05,0x4C,0x24,0xB1,0x14,0xE5,0xF3,0x9A,0x3D,0x9A, + + 0x83,0x1E,0x4C,0xE7,0xB4,0xB0,0xF4,0x24,0x0E,0xD5,0xD4,0x68,0xD7,0x78,0xFC,0x56, + + 0x2D,0x8E,0xFE,0xF6,0x57,0xF5,0xAB,0x76,0x65,0x37,0x55,0xBC,0xD4,0xF3,0xE1,0x23, + + 0xA2,0xF8,0x6E,0xA5,0xB8,0xF0,0x63,0xDB,0xE0,0xD4,0xBF,0xFA,0xB6,0xF0,0xAD,0x7F, + + 0x49,0x3A,0xC9,0x0E,0x35,0xB3,0x82,0x34,0xE1,0xF5,0xDD,0x79,0x56,0x7D,0x1E,0xDA, + + 0x28,0x97,0xB8,0x7C,0x7C,0x47,0xF2,0x7A,0x60,0xDB,0x5E,0x2A,0x51,0x94,0xD1,0x18, + + 0x0F,0xEC,0x6E,0xE6,0x12,0x14,0x3A,0x3E,0x5E,0xE4,0x29,0x56,0x9F,0xB6,0x7D,0x8A, + + 0xAA,0x81,0x9D,0x60,0xC7,0x45,0x0F,0xBF,0x6E,0x92,0x77,0x3A,0x0E,0x77,0x17,0xCB, + + 0xED,0x94,0xB5,0x0F,0x42,0x16,0x80,0xE9,0xE3,0xB9,0x04,0x0F,0xF5,0xE9,0x3D,0x0D, + + 0xEC,0x9C,0xED,0xAC,0x9A,0x11,0xFE,0xAA,0x30,0x9E,0x71,0xFE,0xFC,0xA0,0xCA,0x2B, + + 0x49,0xBD,0x06,0xBC,0xFE,0x37,0xB8,0x05,0xED,0xFB,0x1B,0x9C,0xBE,0x77,0x2F,0x56, + + 0xA8,0xFC,0x07,0xEB,0x3C,0xBA,0x37,0x25,0xE8,0xDC,0xDA,0x0D,0x7C,0xFA,0xDA,0x32, + + 0xA9,0x17,0x68,0x2E,0x1C,0xEF,0x76,0x99,0x1C,0xBA,0x78,0xEF,0x7D,0xA3,0xA9,0xE2, + + 0x82,0x04,0x5D,0x8D,0x16,0x22,0xD0,0xE5,0xE1,0x9F,0xEF,0x7E,0xA5,0xFC,0x0A,0x92, + + 0x94,0x7D,0xE0,0x76,0xE6,0x2F,0x30,0x52,0xBC,0x4D,0x80,0xB5,0xB8,0x9A,0xE4,0x63, + + 0xC3,0xF2,0x5F,0xC7,0x31,0xDD,0xA5,0x43,0x3F,0x9F,0xAF,0xD8,0xB1,0x37,0x71,0x63, + + 0x7E,0xFE,0xB1,0xEE,0x12,0x2E,0x21,0x42,0xAF,0x01,0x83,0x9A,0xF0,0x13,0xEF,0x2F, + + 0xDF,0xA0,0xF8,0x14,0x16,0x2B,0x2E,0x66,0xA3,0xC7,0x09,0x02,0x6E,0x76,0x68,0x63, + + 0xE2,0xAA,0xF0,0xAB,0x91,0x39,0x06,0x92,0x03,0xE8,0xF8,0xE6,0xD3,0x6F,0x11,0xE9, + + 0xCA,0x05,0x51,0xC7,0x5F,0x2B,0x75,0x92,0x4E,0x07,0x69,0xC9,0x5F,0xEF,0x19,0x6E, + + 0xA1,0xFA,0xAA,0x37,0x1C,0xD1,0x48,0x43,0xA3,0x46,0x5D,0x33,0xFF,0x26,0x59,0x08, + + 0x37,0x28,0xF9,0xCB,0x1E,0x3A,0x52,0xB3,0xBF,0xE5,0xAC,0xD1,0x39,0x1D,0x58,0x1A, + + 0xBE,0x4B,0x58,0xFC,0x1D,0x47,0x24,0x99,0x3F,0x0B,0xE8,0x92,0x53,0xE4,0x11,0x8E, + + 0x33,0x97,0x08,0x4D,0xDC,0x87,0xC3,0x14,0x23,0x0E,0x8B,0x3C,0x31,0x91,0x4D,0x33, + + 0x62,0x08,0x1B,0x99,0xDB,0x52,0x5B,0x99,0x32,0x45,0xE5,0x8C,0x32,0xA8,0xEE,0xDA, + + 0x4A,0x06,0x52,0x8B,0x98,0x30,0x2C,0x6E,0xA3,0x43,0x89,0x6C,0x21,0xEC,0x33,0x2E, + + 0xFC,0x4F,0xE3,0xC7,0xBA,0xFB,0xCA,0x88,0xA1,0x9C,0x63,0x22,0x5D,0xAF,0x53,0xB9, + + 0xE0,0xFF,0x20,0x2F,0x44,0x28,0x01,0xFB,0x21,0x2A,0x7C,0x02,0x07,0xB2,0x09,0xDB, + + 0x70,0x61,0x5B,0xDF,0x1B,0x97,0x25,0x7F,0x2A,0xCC,0x95,0xBA,0xE8,0xF4,0x1E,0xBF, + + 0x41,0xCB,0x50,0xDA,0xA3,0x0F,0x3C,0xC2,0x9D,0x5C,0xF2,0x00,0xC5,0xD6,0x0C,0x14, + + 0x6B,0xCC,0xE4,0xF6,0xCE,0x3F,0x5C,0x2B,0x96,0xFC,0xC8,0xBB,0x57,0xD5,0x05,0xBA, + + 0xC9,0x89,0x78,0x01,0xBA,0x38,0x2D,0xD2,0x8E,0x10,0xC1,0x65,0xBC,0x26,0xB2,0xA0, + + 0x00,0xEC,0xB5,0x6B,0x32,0x3E,0x4F,0x8C,0x0A,0x17,0xCD,0x04,0x7E,0x0E,0x06,0x42, + + 0x24,0x16,0x54,0x46,0xB2,0x8D,0x2D,0x30,0xC1,0x48,0x2C,0x82,0xFD,0xF2,0x5E,0x42, + + 0xB2,0x5A,0xAC,0x74,0x2D,0x74,0x55,0xD4,0xB9,0xC8,0x48,0xD0,0xA6,0x28,0x89,0x45, + + 0xAC,0x82,0xFD,0x97,0xF1,0xC6,0xEA,0xB3,0xA1,0xA6,0x16,0xA5,0x90,0x3A,0x4C,0xAE, + + 0x04,0x55,0xDB,0xB7,0xD3,0xB3,0x47,0xF3,0x50,0xDC,0x76,0xAA,0x4E,0x8B,0xBD,0x2D, + + 0xDF,0xE5,0xF9,0x4E,0x99,0xA7,0x28,0x0D,0x1E,0x1A,0xF0,0x1C,0xCD,0xDE,0xB5,0x28, + + 0x97,0xB6,0xC6,0x89,0xD0,0xFA,0x26,0x47,0xEA,0x54,0x4A,0xB3,0x1B,0xDD,0x15,0x09, + + 0x43,0x8A,0x2B,0x09,0xAA,0xE2,0x57,0x09,0x13,0x54,0x43,0xED,0xB4,0x2E,0x8A,0xBD, + + 0x7D,0x38,0xFD,0x9C,0xBD,0x55,0xE4,0x3D,0xD6,0x2C,0xCF,0x09,0x10,0x78,0x04,0x4A, + + 0x2C,0x1E,0xBF,0xAA,0xCD,0x2C,0x76,0x62,0x4E,0x53,0x8D,0xEC,0x01,0x3C,0x5C,0x4E, + + 0xBA,0x52,0x4E,0x3E,0x97,0xB0,0x5F,0x8E,0x4F,0x3F,0x83,0x9A,0x88,0x6D,0xDF,0x4D, + + 0xA4,0x8A,0x7F,0x32,0x9E,0xB5,0x0E,0xEF,0x0F,0x81,0x17,0x79,0xB1,0x65,0x4E,0xA6, + + 0x0C,0xBF,0xB7,0xF9,0x39,0x37,0x9B,0x29,0x95,0xDE,0x67,0x06,0x76,0x64,0x6A,0x17, + + 0x25,0x60,0x5B,0x3C,0x26,0x15,0x08,0xDD,0xC7,0xCD,0x8E,0xCF,0x16,0x4F,0xA8,0xD4, + + 0x2D,0x0A,0x92,0xEC,0xEE,0x3C,0x9B,0x9A,0x99,0xF2,0x62,0x2F,0xDC,0x72,0x1F,0xA3, + + 0x67,0x8B,0xF4,0x83,0xDE,0x7F,0xCA,0xA7,0xFB,0xB5,0x67,0xD4,0xE6,0xA0,0x02,0x2E, + + 0x83,0xDA,0x81,0x75,0x6C,0xAF,0x1F,0x83,0x41,0x67,0x83,0xC4,0xF7,0x4E,0x83,0x02, + + 0x5A,0x0F,0xD8,0xC3,0x18,0xC6,0xDA,0x91,0xCA,0xC9,0x48,0xF9,0xA3,0x6D,0x57,0x04, + + 0x64,0x26,0x17,0x34,0x6B,0xAA,0x2A,0xD6,0xB4,0x78,0xB0,0x6A,0x64,0xBE,0x37,0x7E, + + 0x35,0x4A,0x71,0xAF,0x76,0xEB,0x63,0x63,0x3D,0x4B,0xD1,0xE3,0xE3,0x7B,0x7F,0xF3, + + 0x34,0x4B,0x79,0x35,0x24,0xC2,0x63,0x76,0x2C,0x83,0x41,0x4A,0xC5,0xAA,0x5C,0x79, + + 0x2E,0x87,0x9A,0x70,0x9D,0xA5,0xE6,0x2D,0x27,0xC7,0xE2,0x69,0x96,0xD3,0x3A,0x3B, + + 0x4D,0x04,0x7F,0x20,0x2B,0xB2,0x7F,0x27,0xEC,0x16,0x7A,0xBE,0x52,0xAB,0xA4,0xB4, + + 0xCC,0x64,0x1C,0x4D,0x3D,0x07,0xB3,0x58,0xA2,0x88,0xFB,0xFF,0x35,0xE9,0x72,0x2D, + + 0x2A,0x29,0x2B,0x58,0xB3,0x77,0x8F,0x59,0x32,0x16,0x7B,0x57,0x62,0x87,0xD9,0x1C, + + 0x52,0x88,0xDA,0xB1,0xF7,0x16,0x51,0x6D,0x6A,0x81,0x21,0x29,0x3F,0xE8,0x3A,0xE8, + + 0x4F,0xA3,0x7A,0x0C,0x5C,0x5D,0xED,0x82,0x4F,0x8F,0xA3,0x4C,0xFA,0x12,0x8A,0x5A, + + 0xAC,0x23,0xF5,0x2D,0xF6,0xA3,0x8C,0x97,0xCE,0x7B,0x91,0x6D,0xDD,0xAC,0x51,0xA8, + + 0xAD,0xCD,0xB5,0xBD,0xBF,0x2A,0x3D,0x05,0x3A,0x43,0xA2,0x40,0x7A,0x1E,0x83,0x26, + + 0xF4,0xF3,0x34,0x97,0x5A,0x94,0x97,0x0E,0xB8,0xA3,0x74,0x26,0x51,0xB2,0x16,0x61, + + 0x4B,0x3C,0xFA,0x6E,0x35,0xEA,0xFC,0x33,0x3C,0x93,0xDB,0xD8,0xA7,0xFB,0x02,0x33, + + 0x38,0x31,0x38,0xC0,0x90,0xA9,0x86,0x0B,0x18,0xE1,0x75,0xCF,0x4B,0x9E,0x7B,0x03, + + 0x5A,0x3E,0x3D,0x7E,0x52,0xF1,0xFD,0x22,0x64,0xDE,0xB8,0xED,0x40,0x6F,0x34,0xB1, + + 0x04,0x13,0x12,0x36,0x3E,0xBB,0x70,0x19,0x87,0xB7,0xAF,0x80,0xAC,0x4B,0x12,0xEF, + + 0xD3,0x04,0xF4,0xD2,0x9E,0xCA,0xFB,0x10,0xCB,0x58,0x50,0x8D,0xA9,0x28,0x67,0x08, + + 0x82,0x9B,0x75,0x2F,0x4E,0xFB,0x0E,0xC7,0x27,0x5C,0xB4,0x81,0x24,0x69,0xDA,0xEA, + + 0x3A,0x6A,0xD3,0x0A,0x96,0xF7,0x05,0xD7,0x1B,0x26,0xE7,0xF5,0x44,0x6A,0xF0,0xCD, + + 0xF2,0x90,0x62,0x87,0x3A,0xFA,0x09,0xE8,0xCD,0x05,0x99,0xC1,0xA5,0x5C,0xFE,0x9C, + + 0xE5,0xBA,0x7E,0x80,0x13,0x16,0x06,0x84,0x5B,0x2C,0x59,0xD0,0xAB,0xF1,0xA7,0xA8, + + 0xC5,0x3E,0xA0,0x91,0x96,0x15,0x1F,0xC9,0x11,0xD6,0xE7,0x1A,0x73,0x87,0x8B,0xE8, + + 0xC3,0xD9,0xFD,0x1B,0xBF,0xE6,0xEA,0xC9,0x1E,0x64,0xBA,0xE1,0x48,0x27,0xCB,0x84, + + 0xDB,0xC0,0xDA,0x21,0x0D,0x04,0x0D,0x11,0x99,0x9E,0xEC,0xEC,0xEC,0xF6,0x91,0xE4, + + 0x17,0x3D,0x13,0x36,0xD7,0xF0,0x06,0xDD,0x0C,0x2D,0x06,0xF6,0xD8,0xBC,0x5D,0x20, + + 0x1D,0xDF,0x5F,0xAF,0xBA,0x93,0xB1,0x4A,0x1B,0x9F,0x75,0x9D,0xCD,0x2B,0x7A,0x2B, + + 0xAE,0x4E,0x12,0x33,0xBF,0xA4,0x07,0x79,0xE6,0x02,0xFF,0xFF,0xFF,0xFF,0x59,0x33, + + 0xA5,0xDF,0x31,0x80,0x12,0xC2,0x2F,0x52,0xAB,0x31,0x50,0xA0,0xE4,0x0C,0xB0,0x8B, + + 0x07,0x58,0xB0,0x29,0xEE,0x27,0x66,0x0D,0xAA,0x90,0x9E,0xB0,0x5F,0xEE,0x7E,0x46, + + 0xB3,0x99,0x7E,0x87,0x01,0x17,0x6F,0x19,0x2B,0x41,0x76,0x5F,0x06,0x68,0xB0,0xD1, + + 0x8D,0xF8,0xA0,0x3F,0x30,0xF0,0x67,0x08,0x75,0x52,0xB9,0x35,0xE2,0xA5,0x80,0xC0, + + 0xDB,0x0E,0xBF,0x37,0xB1,0x77,0xB7,0x1A,0x94,0x4E,0x89,0xCB,0x54,0xB5,0x70,0xAF, + + 0x05,0x0C,0xD6,0xB6,0xF3,0x81,0x62,0x9B,0x45,0x67,0xE5,0x36,0xF2,0x38,0x5B,0xC3, + + 0x47,0xA5,0xBA,0x36,0xE2,0x82,0xD5,0x9C,0xCA,0x07,0x2A,0x0F,0x53,0x6B,0xE9,0x91, + + 0x8F,0xFC,0xB1,0xED,0x78,0x94,0xDD,0xE1,0x3C,0x7A,0xF1,0x17,0x6E,0x6B,0xFD,0x2C, + + 0x28,0x29,0x2E,0x89,0xEF,0xD5,0xAB,0xEF,0xD6,0x42,0x29,0xCA,0x48,0x95,0x53,0xD4, + + 0xAC,0xFF,0x31,0xFA,0x09,0xD4,0xA3,0xBC,0x53,0xB9,0x5A,0xAC,0x05,0x2B,0xC2,0x77, + + 0x77,0x66,0x47,0xF2,0xAB,0xAC,0xC4,0xAD,0xFD,0xCD,0x6B,0xA9,0xD6,0x1B,0x4A,0x7F, + + 0x4B,0x0B,0x73,0xF5,0x0B,0xF6,0x23,0xCA,0xF1,0x2E,0xDB,0xA8,0x26,0x6D,0x46,0x6C, + + 0x88,0xC0,0x6D,0x23,0xC7,0xF0,0xFE,0xF7,0x49,0xF4,0xEA,0x1F,0x7C,0xCD,0x74,0xB1, + + 0x49,0xF2,0x13,0x73,0x1D,0xC6,0x1A,0xED,0xB4,0x70,0x0E,0x82,0xA6,0xEC,0x15,0x2B, + + 0xCA,0x31,0x7A,0x13,0xA5,0x2C,0x93,0xE9,0xB4,0x0C,0xEB,0x92,0x33,0x4D,0x76,0x1E, + + 0x55,0x05,0x99,0xAC,0xE3,0x5A,0x9B,0xF9,0xEE,0x0D,0x9B,0x82,0x2E,0xEC,0xD9,0x81, + + 0x5B,0xA0,0x7C,0x00,0x32,0x6E,0x6A,0x00,0x89,0xA1,0xCD,0x3E,0xD5,0x8F,0xB3,0xDF, + + 0xAC,0x6C,0xD5,0xA1,0x94,0xAE,0x4A,0x8C,0x8A,0x80,0x33,0x52,0x61,0x8C,0xC5,0x4D, + + 0xB2,0x6E,0x45,0x05,0xFE,0xCD,0xC6,0x52,0x9C,0xEF,0x94,0xC3,0xC3,0x77,0x6B,0xB9, + + 0x2E,0x95,0x8C,0xF3,0x4A,0x5F,0x26,0x00,0x99,0xFC,0x65,0x5D,0x67,0x3E,0x54,0x3F, + + 0xA0,0x08,0x57,0xEA,0x4A,0xC1,0x2B,0x27,0xBC,0xC9,0xE9,0x5D,0x89,0x69,0xB7,0xBB, + + 0x25,0x17,0x12,0x64,0xDA,0x44,0x98,0x49,0x65,0x57,0x1C,0x7C,0xC9,0xD8,0x74,0xA3, + + 0xC0,0x16,0x95,0xFB,0xCE,0x74,0xB6,0x21,0xEC,0x14,0x86,0x1F,0xC1,0x01,0x81,0x55, + + 0xA1,0x14,0x0D,0xE8,0x21,0x96,0x9B,0xC1,0xC3,0xA8,0xCE,0xC4,0xD5,0xD8,0x82,0xC8, + + 0x24,0xE3,0x61,0xF6,0xEE,0x32,0x01,0xA4,0xE8,0xCF,0x69,0xA4,0xDD,0x63,0xB7,0xDF, + + 0xE3,0x08,0xAE,0x9C,0x0A,0x6F,0x29,0x84,0x99,0xE8,0x21,0x5A,0x12,0x92,0xFC,0xAD, + + 0x49,0x45,0x81,0x09,0xB6,0xB5,0xA0,0x09,0x1C,0xAB,0x27,0xF2,0x5F,0x6A,0x47,0x85, + + 0xAF,0x42,0xAF,0x39,0xBF,0x39,0x46,0xBC,0xEF,0x49,0x9D,0xCF,0x06,0x86,0xAA,0x57, + + 0xDB,0xCA,0x55,0x3F,0x4E,0xE1,0x6C,0x54,0x9D,0x32,0x06,0x9E,0x10,0x5F,0x19,0x5C, + + 0x29,0x1E,0x0E,0xE1,0xFD,0x9C,0x56,0xE8,0x23,0xFE,0xFE,0x63,0x5F,0x7B,0x0F,0xD1, + + 0xAC,0x7C,0x91,0xF4,0x51,0x8F,0x68,0x76,0x1B,0x88,0xA9,0x4C,0xB2,0x2F,0xA3,0x46, + + 0x5A,0xC9,0x9F,0x2E,0x99,0xE2,0x7F,0xFC,0xF3,0x77,0x57,0xEA,0x1A,0x70,0x28,0x07, + + 0x7B,0x5F,0x58,0x0E,0xE9,0xEF,0x08,0xD1,0x70,0x61,0x50,0x7E,0xF5,0x7F,0x2A,0xE3, + + 0xA6,0x91,0xF0,0xA6,0x26,0x20,0x2D,0x83,0x79,0x6E,0x83,0x8A,0xD8,0x83,0xB1,0xEB, + + 0x34,0xCF,0x9F,0xFA,0xF5,0x7A,0x22,0xD0,0xB4,0x6F,0x05,0x45,0xA8,0x1D,0x1B,0xEC, + + 0xA1,0x98,0x69,0x93,0x21,0xCD,0xAC,0x5D,0x85,0xFC,0xE4,0xAD,0x7A,0x1E,0xFE,0x29, + + 0x00,0x86,0xBE,0x7A,0x14,0x0F,0x30,0xC2,0xC9,0x32,0x45,0x98,0xBF,0x75,0x84,0x2D, + + 0xDD,0x58,0xA8,0x45,0x67,0xF4,0xB8,0xF7,0x61,0x87,0xC1,0x8E,0xB5,0xA7,0xE2,0xC7, + + 0x80,0x7F,0x76,0x68,0xFD,0xA5,0x4A,0xFD,0xC5,0x05,0x0C,0x8B,0xD6,0x5D,0x0A,0x93, + + 0xE9,0xC5,0xD7,0x7B,0xB6,0xB4,0x39,0xD3,0x4A,0x31,0x61,0xFB,0x54,0xEA,0x13,0x6C, + + 0xF3,0xF3,0x45,0x74,0xCA,0xA0,0xCD,0xD6,0x4C,0x5D,0x76,0x27,0xF3,0xF3,0xE3,0x92, + + 0xD1,0x98,0x8A,0x1E,0x2E,0x6F,0x7C,0x44,0xAC,0x56,0x02,0xD6,0x8B,0x15,0xDC,0x79, + + 0x77,0xC8,0xA5,0x8B,0x92,0x25,0x26,0x10,0xF8,0x88,0x51,0x49,0x23,0xFA,0x72,0x31, + + 0x28,0x74,0x10,0xF9,0x8D,0x56,0x44,0x48,0xEF,0x3A,0x43,0x37,0x20,0xA4,0xA6,0xEE, + + 0x08,0x8E,0xDC,0xEE,0x7E,0xEC,0x49,0xF4,0x4F,0x9D,0x0F,0xAC,0xFF,0xB3,0x09,0x1A, + + 0x33,0x8B,0x91,0xAF,0x6D,0xAD,0xBA,0xFA,0x01,0x4C,0xC2,0x94,0xE2,0x1C,0xA5,0x0C, + + 0x54,0x53,0x9C,0x3D,0xF4,0x5F,0x4E,0xEF,0xCC,0xA4,0x9B,0x0D,0x65,0xE0,0x42,0x70, + + 0x2E,0x0E,0xCD,0x72,0xE5,0xDA,0x6B,0xFF,0xCD,0x1D,0x04,0x11,0xA9,0x30,0x56,0x06, + + 0x11,0x47,0x4D,0x02,0x36,0x52,0xEC,0xBD,0x46,0x04,0xA2,0xC4,0x14,0x76,0xBC,0x9E, + + 0xA5,0x0C,0xD7,0x9E,0x90,0x0E,0x2B,0x8C,0x59,0x24,0x04,0x4D,0x88,0xB3,0x2D,0x86, + + 0xDB,0x4D,0x5A,0x6F,0xD4,0xFF,0xA2,0xB8,0x90,0x46,0xCC,0xC1,0x07,0xE2,0xF4,0x8A, + + 0x10,0xFD,0x41,0x08,0x44,0x65,0x2E,0xFC,0x18,0xAF,0x7D,0x5E,0xF3,0x91,0x6C,0xD2, + + 0x6E,0x37,0xB2,0xFB,0xDD,0x45,0xD5,0x91,0x0C,0x53,0x94,0xA2,0x48,0xFB,0x2D,0x56, + + 0x2D,0xF5,0xD6,0x25,0x1D,0x1A,0xEC,0x0F,0x6F,0x94,0x7C,0x14,0xF5,0xDD,0x45,0xE7, + + 0xBE,0xBE,0xA3,0xEB,0x36,0x3A,0x71,0xE6,0x99,0xD6,0x95,0xA6,0xB2,0x7D,0x92,0x57, + + 0x86,0xD3,0x3D,0x3F,0x09,0xF5,0xBD,0xCE,0x3B,0x7A,0xFF,0xE7,0x54,0xF1,0xC3,0xCA, + + 0x78,0xDA,0xAE,0x9F,0x3A,0xDA,0x9F,0xD4,0xF9,0x55,0x7A,0xB3,0x82,0xE8,0xDD,0xDA, + + 0x21,0x62,0x4F,0xE0,0x9A,0xA9,0x8D,0x87,0x6B,0x3B,0xE8,0x3C,0xEC,0xAC,0xBE,0x39, + + 0xAA,0xC3,0xDD,0x8D,0xBC,0xA1,0x4A,0x41,0x10,0xD9,0x0E,0x8B,0x1D,0x55,0xD4,0xBF, + + 0xBB,0x9F,0x10,0x79,0x8E,0x5A,0x4C,0x9F,0xEB,0xD9,0x87,0x41,0x51,0xF6,0x6E,0xCF, + + 0x51,0xBC,0xA7,0x38,0x3E,0xBC,0x68,0x7A,0x85,0xAD,0xFA,0x91,0x1D,0x5C,0xAE,0x5A, + + 0x61,0x62,0x7F,0xAD,0x0B,0xD1,0x6D,0x89,0x06,0x76,0xC6,0xAE,0x7B,0xF2,0xF7,0x4F, + + 0xA8,0xA4,0xE7,0xCF,0x5F,0x11,0x49,0x9B,0xAC,0x71,0x8F,0x6D,0xF7,0x23,0xAF,0x5B, + + 0x8B,0xF3,0x89,0xF2,0xBC,0xE5,0x07,0xFF,0x0F,0xAE,0xC7,0xAF,0xF7,0xF0,0x60,0x40, + + 0x46,0x8D,0x4F,0x66,0x51,0x00,0x34,0x42,0x01,0x60,0x44,0x46,0x13,0x1F,0xB3,0xF2, + + 0xAD,0xFC,0xB0,0x44,0x10,0x2E,0x20,0x60,0xC1,0x4E,0xE0,0x56,0x10,0x21,0x79,0x83, + + 0x81,0x85,0xF9,0x87,0xB2,0x57,0x69,0xA3,0xC5,0x46,0xE9,0x47,0x91,0x42,0x71,0x93, + + 0x88,0x47,0xE9,0xB5,0xD9,0x2E,0x79,0x75,0x86,0xC8,0xE1,0xC8,0x66,0x21,0x9F,0x22, + + 0x20,0x49,0x1D,0xC2,0xCE,0x07,0x09,0x41,0x44,0xC6,0x0F,0xE2,0xBB,0xED,0x68,0x55, + + 0x05,0xAD,0xB7,0xAA,0x15,0xC7,0xE7,0xF5,0x5B,0x2A,0xA7,0xF0,0x3C,0x43,0x47,0xC5, + + 0xA0,0x06,0xFB,0xAE,0x21,0xB9,0xB7,0x88,0x40,0x29,0x2C,0x89,0xD2,0xEB,0xD7,0xD3, + + 0x41,0x06,0x9D,0xBD,0xDF,0x65,0x00,0x44,0x66,0x98,0xE3,0x8A,0x2E,0x0B,0x3A,0x58, + + 0x0C,0x07,0x88,0x04,0xBB,0x4D,0x96,0xCA,0xCA,0x00,0xCD,0xE5,0xDA,0x8B,0x6A,0x5C, + + 0x3C,0x82,0xDA,0x11,0xB8,0xA3,0x02,0xC8,0x36,0x46,0xC0,0xC3,0xFA,0x0C,0x39,0x8D, + + 0xBB,0xF5,0xD9,0x10,0x3B,0x2C,0xDA,0xCB,0x4A,0x02,0x81,0x5F,0x7B,0x0F,0x0F,0xFB, + + 0x0B,0x03,0xF3,0xFF,0x1B,0x28,0xAF,0xC9,0x36,0x44,0xC1,0x28,0x7A,0x0E,0x7A,0xB7, + + 0xA6,0x17,0x83,0x91,0x8F,0xF1,0x53,0x0E,0x79,0xED,0xB4,0x1C,0x59,0x15,0xFE,0xDC, + + 0x01,0xAE,0x0A,0x38,0xC5,0x70,0xA6,0x07,0x45,0x7D,0xE2,0x86,0xF7,0x60,0x61,0xCD, + + 0x80,0x3D,0x6A,0x02,0x67,0x52,0x93,0xF9,0x04,0x7E,0x6C,0xE9,0xED,0x8F,0x15,0xBB, + + 0xCB,0xA2,0xB3,0x7A,0x26,0x20,0xA7,0x5D,0x17,0x1E,0xA4,0x0E,0xEE,0x10,0x3C,0xD0, + + 0x60,0x1F,0x13,0xE6,0x73,0xDC,0x6C,0x22,0x65,0x21,0x4B,0xD4,0xCC,0x79,0x08,0x72, + + 0xA3,0x19,0xC6,0x7E,0x92,0x37,0x14,0x35,0xC0,0xDB,0x6D,0xA4,0x98,0xBA,0x65,0xC5, + + 0xC0,0x99,0x8F,0x8D,0x13,0x3F,0x57,0x43,0xC4,0x54,0x93,0xD6,0x8F,0xF5,0xB1,0x73, + + 0x23,0x1B,0x5B,0x30,0x10,0xB9,0x62,0x53,0x40,0xD9,0xBD,0x9D,0xF7,0x11,0xEB,0x26, + + 0x32,0xE9,0x8C,0x41,0xCE,0xE5,0x2A,0xDD,0xEF,0x16,0xC6,0xF8,0x74,0x2F,0xB7,0xD8, + + 0x86,0xEA,0xB2,0x75,0xBE,0x93,0x0E,0x01,0x4D,0xAA,0xD4,0xED,0x10,0x53,0xBD,0x29, + + 0xCE,0x5B,0x05,0x31,0x71,0xEB,0xCD,0x03,0xA0,0xF9,0xC2,0x61,0xC5,0x5E,0x14,0xC7, + + 0x56,0x58,0x19,0x15,0xF7,0x93,0x03,0x51,0x1C,0xDA,0x4A,0x06,0x77,0xFA,0xB2,0x6A, + + 0xAA,0x10,0x69,0x6E,0xBA,0x70,0xEB,0x4A,0xEA,0x5B,0x2C,0x53,0x9A,0x5C,0x06,0x6F, + + 0x88,0x91,0xF6,0x1E,0x3C,0xE3,0x66,0xDA,0x2A,0x26,0xBE,0x35,0x84,0xFE,0xF3,0xFB, + + 0x0B,0x1C,0x9F,0xFF,0x1B,0x5F,0xA2,0xCB,0xA9,0xDA,0x91,0x5C,0x87,0x68,0x0B,0x7B, + + 0x2B,0x13,0x8D,0x7F,0x15,0x36,0x67,0x3B,0xCB,0x59,0x3F,0xAC,0x18,0xD4,0x47,0xB7, + + 0x8D,0x07,0x92,0x69,0xF2,0xED,0x28,0xD1,0x83,0xED,0x84,0xC2,0x91,0x18,0xF6,0x30, + + 0xBB,0xA1,0x5D,0x9F,0xBC,0x7F,0xDE,0x9B,0x74,0x1F,0xC4,0x6C,0x8C,0x80,0x84,0xAF, + + 0x51,0x0E,0x97,0xDC,0xC2,0x9E,0xFB,0x7A,0x96,0x56,0x8D,0xEC,0x59,0xD3,0xB7,0xD1, + + 0x52,0x50,0x57,0x87,0x1A,0xC0,0xC7,0x66,0x4A,0x80,0x73,0x63,0xF8,0xED,0xE4,0x60, + + 0x45,0xC0,0xE4,0xF6,0x4E,0xAF,0x50,0x82,0xF8,0xCD,0xEA,0xD9,0xF7,0xE6,0x50,0x90, + + 0x04,0xC3,0xE2,0xE8,0xB6,0xAC,0xB0,0xF7,0xE4,0x49,0xD8,0x76,0x44,0x61,0x59,0x61, + + 0xC5,0x02,0xC1,0x43,0x9B,0xAF,0x7B,0x9C,0x67,0xC4,0xE1,0x03,0x35,0xED,0x11,0x43, + + 0x8D,0x8C,0xE3,0xEC,0x36,0xA5,0xB9,0xD1,0x64,0x4B,0xC1,0xB3,0xA2,0x85,0x3D,0x70, + + 0x66,0x16,0x9E,0xE7,0xE3,0xAD,0x57,0x4F,0xDA,0x55,0x1C,0x1D,0xC8,0x6F,0x10,0x42, + + 0xEE,0xBE,0x28,0x32,0x84,0xA8,0xE0,0xC0,0xE6,0x6A,0xD8,0xFC,0x56,0xEF,0xA1,0xC2, + + 0xFE,0x2D,0x65,0xB6,0xBC,0x59,0x2B,0xC0,0xBA,0x84,0xD1,0x8D,0x27,0x6F,0x5B,0x63, + + 0xD1,0xC5,0x16,0x24,0xBD,0xC9,0xA9,0x34,0x0D,0xEC,0xA3,0xF1,0xAB,0x48,0x96,0x68, + + 0x4D,0x89,0x2A,0xDA,0xFD,0xA7,0x36,0xC8,0xCE,0x80,0x32,0xD6,0xA7,0x45,0x52,0x98, + + 0x0C,0xCB,0xCA,0x5A,0x72,0x22,0x5A,0x7E,0x3C,0xC6,0xFE,0x4D,0x22,0x60,0x5B,0x69, + + 0xCD,0x82,0xC3,0x4B,0x8B,0xA5,0x2E,0xDB,0xC4,0xC5,0x6C,0x5F,0x68,0xE3,0x13,0xCB, + + 0x76,0x84,0x3E,0xFD,0x1F,0xA2,0x5B,0x7A,0x03,0x4B,0x4E,0x5F,0xC1,0x46,0x26,0x73, + + 0x08,0xEE,0x05,0x0E,0x5A,0xEE,0x0C,0x56,0x25,0x3D,0x52,0x1C,0x3C,0xB9,0x33,0x7A, + + 0xAA,0x72,0x92,0x2D,0x6B,0xA4,0x38,0x0B,0x7B,0xC6,0x82,0x01,0x7E,0x9F,0xD9,0xF9, + + 0xF7,0x5F,0x7B,0x85,0x77,0x8D,0xF4,0x83,0x1A,0x03,0x8D,0x68,0xBD,0xCE,0x6A,0x3D, + + 0xBC,0x0B,0xAA,0x18,0x55,0x2C,0x7D,0x93,0x4F,0x02,0xA5,0x9D,0xDB,0x6A,0xD6,0xE0, + + 0x67,0x60,0xAE,0x82,0x97,0xB6,0x6E,0xBF,0xC7,0xD6,0x6B,0xA4,0x76,0x0D,0x24,0x34, + + 0x84,0x1B,0xD4,0x14,0x30,0x8A,0x44,0xE2,0x29,0xDE,0x63,0x3F,0xF5,0x11,0x2F,0xE3, + + 0x07,0x94,0x2D,0x6B,0xD7,0x92,0x65,0x8D,0x45,0x58,0xC7,0xA0,0xBC,0x59,0xAA,0xC3, + + 0xA7,0x9C,0xD5,0x15,0xB0,0x48,0x5D,0x13,0xAF,0x58,0x02,0x05,0x35,0x93,0x65,0xBC, + + 0x81,0x84,0xDA,0x63,0xB9,0x42,0xC0,0x80,0xD9,0x88,0xAA,0x04,0x72,0x09,0x64,0xB0, + + 0xD8,0xF0,0xC7,0xA5,0x19,0xBA,0xC4,0x0D,0x8E,0x04,0x25,0xCF,0x71,0xAE,0xDA,0x25, + + 0x24,0x5A,0xED,0xD3,0xB0,0xFF,0xCE,0xAD,0xD5,0xC4,0xC7,0xD7,0xF0,0xB4,0x55,0x3B, + + 0x77,0x6B,0xDC,0xEF,0x52,0x48,0xD1,0x6C,0xE6,0xA7,0xF1,0xB7,0xAF,0x7C,0x46,0xCA, + + 0x8E,0x13,0x9C,0x6C,0xBE,0xF0,0x32,0x48,0xEE,0xDB,0xE8,0x53,0x6A,0xBA,0x56,0x18, + + 0x2C,0x7B,0x26,0x9C,0x9C,0x33,0x5E,0x1A,0x3D,0x52,0xE3,0xB9,0xD2,0xE4,0xA0,0x69, + + 0x00,0x17,0x7C,0x9F,0x1F,0xBC,0xF3,0x5B,0xA0,0xD5,0x73,0xD9,0x4F,0x77,0x2D,0x79, + + 0x2F,0xD3,0x40,0x7D,0x3F,0x58,0xBB,0x59,0x6F,0x93,0xFA,0x58,0x7F,0xFF,0x9E,0xC2, + + 0xD3,0xD3,0xD8,0x6B,0xB1,0x4A,0x66,0x6A,0x7E,0xC7,0x12,0xD3,0x95,0xB8,0x2A,0x6B, + + 0x1C,0x4F,0x7E,0xE8,0x11,0x48,0x44,0x56,0xD8,0x28,0x5A,0x0E,0x77,0xF2,0x07,0x9D, + + 0x00,0xDC,0xEF,0xCA,0xC1,0x41,0xB2,0x8D,0xD2,0xA1,0xCD,0x5F,0x4A,0x51,0xD7,0x25, + + 0xBF,0xD2,0xBF,0xFB,0xC8,0xEA,0xAF,0xEA,0xC9,0x9D,0x78,0x9C,0x2B,0xBE,0xA3,0x28, + + 0xDC,0x31,0x41,0xF5,0x24,0x20,0x28,0xDA,0xEC,0x4D,0x2F,0x7F,0xAD,0x3F,0x9B,0x57, + + 0xCB,0x88,0xB6,0x3C,0x17,0xC9,0xCB,0xC3,0x75,0x2F,0xA2,0x98,0xA6,0xCA,0x3B,0xF2, + + 0xF4,0xAF,0xFF,0x28,0x10,0x40,0x86,0xD2,0xFC,0xDF,0xAA,0x15,0xD0,0x9D,0x01,0x15, + + 0x89,0x3D,0x82,0xEC,0x99,0x61,0x27,0x1C,0x0B,0x1A,0xE1,0x25,0x38,0x72,0x52,0xBB, + + 0x04,0x8F,0xBE,0x43,0xB3,0xFB,0x0F,0x06,0x61,0x04,0x84,0xE0,0x1F,0xD6,0x9C,0x6E, + + 0x25,0xB0,0xF9,0xD0,0x1C,0xD6,0xBF,0x12,0x60,0xC5,0x59,0x67,0x23,0x26,0x48,0x2E, + + 0x21,0xF3,0x75,0x27,0x10,0x3A,0xAE,0x45,0x40,0x5A,0x9B,0x64,0xAB,0x6F,0x1D,0x6B, + + 0xA1,0x1C,0x81,0xDC,0x7A,0x36,0x67,0xAD,0xE2,0x77,0xFF,0x4C,0xFD,0x7C,0x3C,0x79, + + 0xF3,0x93,0xCE,0x26,0xF1,0xB2,0x48,0x2A,0x21,0x19,0xA0,0x1C,0x7C,0x2A,0xDF,0x34, + + 0x62,0x9A,0x1B,0xEF,0x25,0x6B,0x91,0x3A,0x5F,0x25,0x2E,0x43,0xFA,0xC9,0x03,0xE4, + + 0xF8,0xA1,0x9B,0x1C,0x79,0x85,0x72,0x69,0x88,0x51,0x19,0xAF,0x2D,0x65,0x8B,0x26, + + 0xB1,0xDE,0x01,0xF4,0x70,0x5A,0x21,0xAA,0xFC,0xB4,0x8A,0x1C,0xBB,0xC0,0x46,0xCC, + + 0x18,0xF6,0xD4,0x2E,0x7A,0x39,0x68,0x9B,0x77,0x4A,0x8E,0x6E,0x4A,0xC8,0x6D,0xF9, + + 0xDB,0x0E,0xE7,0xAF,0x97,0x20,0xCA,0xFC,0x06,0xED,0x0E,0x94,0x26,0x20,0xE4,0xEC, + + 0x5E,0x4D,0xBD,0x4B,0x7B,0xAD,0x7A,0xF6,0x69,0xB1,0xC0,0xC9,0x12,0xDF,0x4D,0xE9, + + 0x0B,0x83,0x30,0x7A,0x3A,0x29,0x53,0x7D,0xE2,0xAE,0xA5,0xCD,0xCB,0x22,0x1E,0x82, + + 0xB2,0x18,0x15,0xA3,0x91,0x9F,0xA0,0xD3,0x18,0x5F,0x4E,0xA5,0x52,0x52,0x2A,0xBD, + + 0x59,0x0A,0x19,0xAA,0x05,0x73,0x9C,0x82,0x95,0x5E,0x23,0x85,0xD0,0xD0,0x87,0x92, + + 0x94,0x83,0x10,0xF7,0x4B,0xC7,0x2B,0xD0,0x8B,0x5D,0x58,0x21,0x8B,0xCF,0x6E,0xE7, + + 0x5E,0x7F,0x41,0xCC,0x65,0x62,0x0B,0x98,0x0A,0x62,0xA5,0x85,0x4B,0xDC,0x50,0x87, + + 0xE0,0xB6,0xFC,0x3E,0x9E,0x39,0x7D,0x1C,0x64,0x3E,0xEA,0x54,0x10,0x8B,0xDB,0xD2, + + 0x25,0xE8,0x60,0xAA,0xF1,0x55,0x14,0xD1,0x82,0xFA,0x08,0x67,0x0F,0xD8,0x0D,0xD0, + + 0xA4,0x9D,0xBA,0x41,0x8D,0x41,0x03,0x65,0xAF,0x74,0xAB,0x41,0x7F,0xDB,0xE1,0x43, + + 0x9F,0x1D,0x5D,0xCB,0xC3,0xC3,0xC0,0x73,0x72,0x42,0x0D,0x66,0x87,0x7D,0x38,0xB1, + + 0xF6,0x93,0x21,0xA1,0xC5,0xA7,0xAD,0x19,0x58,0xF7,0x36,0xDE,0x1A,0xF3,0x6F,0x58, + + 0x72,0xB4,0x71,0xEE,0x4B,0xE6,0x98,0x9C,0x02,0x68,0xFA,0xA3,0x57,0xAD,0x27,0x63, + + 0xC1,0x8B,0xB9,0xA1,0xD8,0x3A,0x06,0xB8,0x9C,0x7A,0xE9,0xAA,0xFE,0x68,0x11,0xA9, + + 0x56,0xE4,0x4F,0xC9,0x29,0xE6,0x9A,0x50,0x6D,0x36,0x4F,0xA6,0xD3,0xEF,0x06,0xF6, + + 0x4C,0xBC,0xD1,0xB7,0x1B,0xEC,0x6E,0x17,0xC6,0x51,0x54,0xFF,0x0E,0x3F,0x30,0xDE, + + 0xCA,0x9E,0x1C,0xD4,0x9E,0x92,0x26,0xDF,0x96,0x52,0xE0,0x59,0xB1,0x8C,0x95,0x39, + + 0x25,0xCF,0x9E,0x81,0x1F,0x91,0x37,0xA3,0x99,0xA2,0xF1,0xD0,0xD4,0x12,0x61,0x2A, + + 0x27,0xE2,0x19,0x5F,0x3B,0x45,0x3F,0xB2,0x5B,0x52,0xA1,0x58,0x12,0x3C,0x31,0x86, + + 0x3D,0xA6,0xD8,0x75,0x20,0xE2,0x0A,0xB0,0x44,0x1F,0x6F,0xD9,0xB5,0x4F,0xB8,0x55, + + 0xE4,0x27,0xAE,0x3E,0xFC,0xB0,0x83,0x42,0xC5,0xDE,0x78,0xF3,0x0C,0x35,0x1F,0x2F, + + 0xA6,0x6F,0x2B,0xEF,0x69,0xAD,0x9D,0x50,0xF8,0x34,0xFA,0x23,0xA9,0xFC,0xBC,0xE0, + + 0xB9,0x0E,0x05,0x85,0x97,0xAB,0x07,0x1F,0xA4,0xC7,0x28,0x28,0xE9,0xA2,0x5A,0xB1, + + 0x6C,0x2B,0xCD,0x6C,0x10,0xCE,0x4E,0x0F,0x65,0x84,0x8E,0xD7,0xDB,0x49,0x1F,0xBF, + + 0x77,0x3E,0x96,0x3B,0xE8,0xE4,0x49,0x10,0xB0,0xA0,0xAE,0x05,0x35,0x43,0xB3,0xBF, + + 0x4F,0x7D,0x36,0x07,0xDE,0x2B,0x51,0x56,0x44,0xDA,0xA7,0xF4,0xFC,0x49,0x96,0xD7, + + 0xF0,0xDA,0xEF,0x7F,0x17,0x70,0x41,0xF1,0x56,0x5C,0xA9,0x84,0xB5,0x8B,0x44,0x26, + + 0xE7,0xD9,0x55,0x7C,0xF7,0xB9,0x53,0xEA,0x04,0xD3,0x88,0xC6,0x80,0x27,0x3D,0x69, + + 0x7D,0x00,0xE5,0xDE,0x7C,0xEB,0x04,0x06,0x4B,0x92,0x10,0x8D,0xFC,0x85,0xCF,0x78, + + 0xB0,0x2C,0x9D,0x27,0x11,0x0C,0x3E,0x4D,0x8C,0x85,0xE3,0x36,0xC0,0xEC,0x0B,0xF1, + + 0x64,0xDA,0x21,0x15,0x3C,0x04,0xAD,0x48,0xBD,0xC4,0xD9,0xAE,0xDC,0xAB,0x32,0x53, + + 0x28,0x01,0xE4,0x23,0x61,0x8C,0xB2,0xAF,0x24,0x8E,0xCC,0xCB,0x94,0x4F,0xC6,0xB2, + + 0x93,0x4B,0x5E,0x3C,0xE4,0xEF,0x1A,0x31,0xFF,0xC0,0xF2,0x66,0xB6,0x4E,0x1D,0xFB, + + 0x67,0x0D,0x73,0xB0,0x3F,0x31,0xFD,0xEA,0xCF,0x8C,0xCD,0xCB,0x14,0x6D,0x23,0x1B, + + 0x89,0x04,0x36,0xF0,0xBB,0x50,0x80,0x5C,0x6E,0xC9,0xE9,0x80,0x34,0x8C,0x1E,0x32, + + 0xDB,0x4F,0xDC,0xA1,0xC9,0xBF,0xF4,0xF6,0x57,0x2D,0xE4,0xD4,0x9F,0x73,0x97,0x37, + + 0xD2,0x3C,0xBD,0xA4,0x55,0xF0,0xFC,0xE6,0x56,0x2C,0xE4,0x76,0x1F,0x5C,0x9A,0xB2, + + 0x05,0x6D,0xFB,0x65,0xF4,0x1F,0x4D,0x4B,0x68,0x9F,0x8B,0x17,0x79,0x54,0x38,0xAE, + + 0x4E,0xD7,0x6D,0xC3,0x37,0xBE,0x45,0xC1,0x0E,0xC2,0x69,0x67,0xFD,0x0C,0x1C,0xD3, + + 0x44,0x90,0xC4,0xDE,0x05,0x5C,0x8B,0xC5,0xC7,0xD2,0x92,0xDA,0x9D,0xB7,0x52,0x62, + + 0xAA,0x8E,0x54,0x25,0x59,0xB3,0xC8,0x8D,0xC4,0x58,0x6B,0x05,0x1D,0x58,0x09,0xB1, + + 0x4D,0x15,0x5D,0x34,0xD0,0xA6,0x5C,0x1F,0x3B,0xD9,0x59,0x94,0x9C,0x50,0xC8,0x45, + + 0xA4,0x47,0xCD,0x0F,0x16,0x28,0x03,0xDB,0x0E,0xC6,0xAF,0x64,0x83,0x58,0x18,0xA2, + + 0x5A,0x37,0x5D,0xA9,0x9D,0x24,0x08,0x82,0x4C,0xD5,0x09,0xBE,0xC3,0x73,0x16,0x65, + + 0xE5,0xA8,0xAA,0x1A,0x32,0x01,0x04,0x41,0x6B,0xF3,0xE4,0xF6,0xC0,0xF6,0x83,0xE9, + + 0x5B,0xFF,0x1C,0xD5,0x43,0x01,0xF3,0x2F,0xA1,0x42,0xC8,0x9E,0x9E,0xB8,0x8F,0x88, + + 0x9D,0xFF,0x84,0xE1,0x6C,0x07,0x0E,0xC8,0xBE,0xD2,0x81,0x0F,0x95,0xF0,0xA6,0x3A, + + 0x06,0xDE,0x26,0x9B,0x04,0x18,0xDA,0x79,0x55,0xD6,0xA4,0xD0,0x58,0x09,0xD1,0x38, + + 0x67,0x1E,0xD5,0x5A,0x72,0xEE,0x46,0xCA,0xDF,0x72,0x4D,0x4A,0x83,0x1E,0x3D,0xF6, + + 0x45,0xFA,0x9F,0xF3,0x55,0x4F,0xA2,0x98,0xDE,0x7F,0x23,0x6B,0xBB,0x27,0x4F,0xB5, + + 0x8B,0x84,0xC9,0x3D,0x9D,0x10,0xDF,0x89,0x8D,0xC3,0x84,0x04,0xF9,0x1D,0x54,0x7E, + + 0x81,0x0D,0x34,0x66,0xEB,0xDD,0x28,0x5F,0xC1,0x4D,0x24,0x46,0xAB,0x21,0x5A,0x2F, + + 0x6B,0x43,0xF6,0x12,0xF0,0xA2,0x19,0x46,0xFE,0x1D,0x98,0x09,0xAE,0xFC,0xBE,0x43, + + 0x21,0xD7,0x97,0x67,0xF0,0x26,0x48,0x27,0x25,0x9D,0xEF,0x22,0x71,0xF9,0x83,0x6D, + + 0x02,0x0E,0xA0,0xE6,0x1D,0xBE,0xA2,0x7F,0x20,0x7C,0x4A,0xCB,0xF5,0x65,0xDC,0x33, + + 0x3B,0x07,0x00,0x95,0x84,0x2C,0x90,0xB1,0x0D,0x06,0x8B,0xDA,0x54,0x2D,0xB9,0x13, + + 0x2E,0xA8,0xF0,0xAE,0xBF,0x28,0x0F,0xF4,0x08,0xAE,0x4F,0x26,0xA6,0x6A,0xFB,0x98, + + 0xE9,0xCD,0x07,0xC7,0x5F,0x3A,0x1F,0x78,0x40,0x33,0x10,0x16,0xE6,0x24,0x90,0xB1, + + 0xC0,0x01,0xB6,0xBD,0xB4,0x6A,0x99,0xA1,0x62,0x4A,0x6D,0x0A,0x70,0xCA,0xFD,0xCA, + + 0xA9,0xD7,0xFA,0x2B,0xE1,0x27,0x6B,0xEA,0xE9,0xB7,0x3C,0x77,0xF9,0xDE,0x6A,0x1A, + + 0x38,0x04,0xF3,0x7A,0xE6,0xA2,0xDC,0x82,0x4F,0x00,0xF9,0x18,0xDB,0x85,0xC3,0x9C, + + 0x7A,0x4B,0x13,0xFD,0xB7,0x5B,0x7B,0x4B,0x3F,0x08,0xF3,0x7A,0x09,0x67,0xF0,0x9B, + + 0x09,0xE2,0xBF,0x31,0x72,0x6F,0x21,0x46,0x6A,0x09,0x75,0x5F,0x03,0x6D,0xE8,0x08, + + 0xAB,0xD3,0xA5,0xB7,0x08,0x61,0x92,0xB9,0x6F,0x0E,0x47,0x97,0x29,0x6C,0x0E,0x98, + + 0x0D,0x4F,0x84,0xD2,0x1A,0xED,0x62,0x1A,0x2B,0xB5,0x88,0x81,0xDA,0xB6,0xF7,0x2B, + + 0x35,0x4C,0xA0,0xB7,0x17,0x6C,0x1D,0x70,0xCC,0xC4,0x0E,0x51,0xB1,0x1D,0x0D,0x1B, + + 0x2A,0xB2,0xAB,0x17,0x45,0xA4,0x22,0x89,0x4B,0x00,0x28,0xF9,0xE8,0x8B,0x66,0x95, + + 0x21,0x50,0x30,0xE6,0xCB,0xCD,0x90,0x91,0x0A,0xFF,0x54,0x20,0x54,0x7C,0xAC,0x83, + + 0x43,0x75,0xF2,0x92,0xD0,0xB2,0x62,0x00,0xE9,0xE2,0x27,0xF6,0xD0,0x8C,0x21,0xDB, + + 0x68,0xB1,0x93,0xE7,0xD0,0xB6,0x43,0xD3,0x8A,0xD1,0xAD,0xDE,0x71,0x7F,0xB9,0xF3, + + 0x5E,0x98,0xA4,0xB1,0x40,0x98,0x44,0xAB,0x04,0x55,0xB5,0xD7,0xCE,0xF3,0xBB,0x44, + + 0x01,0x2C,0x9D,0x9F,0x97,0x9B,0x6C,0x65,0x6C,0x36,0x45,0xE6,0xA4,0xAF,0xFD,0x54, + + 0x21,0xF7,0x9B,0x39,0x82,0x6E,0xDB,0x74,0x28,0x7C,0xC6,0x0C,0x73,0x37,0x0D,0x58, + + 0xA4,0x14,0x96,0xCD,0x17,0x99,0x1F,0x7C,0xC0,0x5B,0x64,0x18,0x00,0xC3,0x8D,0x51, + + 0x7A,0x1D,0xBF,0x2C,0xB1,0xAC,0x9D,0x21,0x10,0x15,0x04,0x86,0x2F,0x14,0x17,0xB9, + + 0x0A,0xB7,0xFE,0x88,0xBA,0x4D,0x38,0x4B,0xCB,0x43,0x56,0x2C,0x09,0x76,0x70,0x9F, + + 0xD4,0x16,0xB6,0xAC,0xE8,0x96,0xC3,0x3E,0xEB,0xF5,0x65,0x7E,0xD8,0xC6,0xA7,0xFB, + + 0xCA,0xD6,0xD0,0xA9,0x45,0x9B,0x32,0xDF,0x17,0x18,0xAF,0x52,0x7B,0x77,0x29,0x28, + + 0x2D,0xBF,0x2F,0xEF,0xDB,0xD7,0x6F,0xC6,0x4A,0x1A,0xF7,0xDF,0x0A,0x15,0xC7,0xBB, + + 0x13,0x1F,0x73,0x31,0x8B,0xE7,0x18,0x3C,0x6C,0xF6,0x75,0x48,0xA2,0x5F,0xFF,0xDA, + + 0x3B,0xB0,0xF0,0xAD,0x5B,0xE2,0xE1,0x18,0x26,0x5B,0x7B,0x8E,0xC0,0x62,0x79,0xD0, + + 0xC1,0xD5,0xB5,0x49,0xD5,0xBD,0x04,0x6D,0xA1,0xEE,0xF4,0x4D,0xFC,0x8F,0x52,0x79, + + 0x46,0x7F,0xB1,0xF0,0x5A,0x90,0x76,0xCF,0x4A,0xC0,0x68,0x58,0x0F,0x3C,0x18,0xF9, + + 0xF1,0x2F,0x9A,0xB6,0x85,0x0F,0xA8,0x50,0xC5,0xA4,0x1E,0xF0,0xF5,0x76,0x76,0xA2, + + 0x85,0x2A,0x28,0x94,0xA9,0x53,0x62,0x5C,0x2D,0xC2,0x78,0xB7,0x66,0xA3,0xF1,0x78, + + 0x6F,0xE1,0x05,0x23,0xFF,0xAD,0x19,0x25,0x65,0x3D,0x21,0xD6,0xB3,0x1D,0x7F,0x15, + + 0x07,0x4F,0x29,0x9E,0xC9,0xEE,0x47,0x35,0x24,0x40,0x68,0x80,0x3C,0x78,0x48,0x20, + + 0xF3,0x88,0xE4,0xA4,0x4A,0x59,0x76,0xAF,0x1A,0xC0,0x5C,0x8E,0xC3,0xA9,0xB5,0xDB, + + 0x01,0x87,0xC4,0x61,0x33,0x28,0xF7,0x4F,0xF4,0x88,0x38,0x4A,0xE6,0xEF,0x59,0x3C, + + 0x07,0x8B,0xFB,0x43,0xB7,0xE6,0xDB,0x11,0x39,0x4D,0x97,0x5A,0x3F,0x37,0x72,0x91, + + 0x26,0x78,0x97,0x6F,0x7C,0x16,0x61,0x83,0xC1,0x6D,0x7F,0x04,0xA3,0xA8,0x33,0xFA, + + 0x8C,0x87,0x59,0x06,0xB9,0x57,0x1C,0xD9,0xC0,0xC5,0xEA,0xE7,0xDE,0x24,0x76,0xF8, + + 0x66,0x8A,0x3F,0x1A,0x07,0x59,0x52,0x3C,0xCE,0xAD,0x82,0xD1,0x5B,0xCB,0x43,0x58, + + 0x31,0x27,0xFD,0xED,0x98,0x07,0xC8,0x6C,0x31,0x1C,0xBB,0x4D,0x2B,0x8F,0x2F,0x68, + + 0xAF,0xE7,0xD5,0x18,0x3C,0x34,0x43,0x2A,0xEF,0x40,0xF3,0xBB,0x9F,0x92,0x0A,0x28, + + 0xF9,0x82,0xBB,0x05,0xB9,0xBC,0xB8,0xEE,0x0D,0x53,0xF3,0x1D,0x22,0xA3,0x11,0x1D, + + 0x09,0x9F,0x99,0xB3,0x5C,0xF2,0x34,0xC2,0x49,0x67,0x84,0x47,0xBE,0x4E,0x5B,0xB0, + + 0x0D,0x83,0x1B,0xB3,0x2A,0x55,0xB3,0xBA,0xE7,0x8C,0xCD,0x42,0xB6,0x5F,0xE0,0x9B, + + 0xEF,0x02,0x94,0xDB,0xF0,0x89,0x7C,0xF9,0x4F,0x77,0xE8,0x8C,0xAF,0x4F,0x76,0x85, + + 0x88,0xF5,0x34,0xF9,0x5C,0xBD,0x6E,0x8B,0x18,0x7F,0x74,0x2E,0x21,0xF8,0x16,0x7C, + + 0x9E,0x8E,0x96,0x26,0xF8,0xF0,0x42,0xB5,0x41,0x4C,0xE4,0xFF,0x76,0x03,0x1D,0x70, + + 0x8E,0xED,0xB7,0x51,0x5F,0xF6,0x95,0xD1,0x86,0xA7,0x27,0x5A,0xFC,0xB0,0x9E,0x37, + + 0x59,0xF0,0xF7,0x9D,0xC9,0x1C,0x63,0x51,0xE1,0xD5,0x7D,0x37,0x8B,0xB1,0x3A,0x36, + + 0x98,0x30,0x75,0xB5,0x02,0xD8,0xC0,0x80,0x9D,0xBA,0x34,0x73,0x84,0xEF,0xFC,0xA0, + + 0xD8,0x68,0xD2,0xEF,0x5F,0xB8,0xA8,0x1A,0x44,0x98,0x43,0x10,0x53,0x9B,0xBF,0x3E, + + 0x5A,0x5D,0x83,0xB7,0xB5,0xCC,0xB5,0x32,0x3A,0xDE,0x59,0x99,0x51,0xE6,0xC1,0x40, + + 0xB0,0x9D,0x12,0xA4,0xC7,0xD4,0x1A,0x08,0xF5,0x9A,0xBD,0xC8,0xFF,0x9B,0x5D,0x71, + + 0x2A,0x7A,0x06,0xFC,0x5E,0xA4,0x83,0x0F,0x6A,0xEA,0xF6,0x3B,0x7A,0xDA,0xD7,0x71, + + 0x9E,0xDB,0xD6,0x9A,0xC0,0xFB,0x06,0x52,0x21,0x98,0xA7,0x1E,0xDC,0x10,0x73,0xF9, + + 0x93,0xDA,0xD9,0x88,0x98,0x11,0xB0,0xC9,0x1B,0xBF,0xBF,0x6F,0xE8,0x57,0xE9,0x3A, + + 0x58,0x97,0xEA,0x82,0x1C,0x24,0x41,0xBC,0x4C,0x44,0xE1,0x4B,0x41,0xD7,0x34,0x4E, + + 0x6D,0x91,0x1D,0xB1,0x5E,0xA1,0x15,0x10,0xE3,0x9E,0x96,0xAE,0x9A,0xF1,0x7B,0x58, + + 0x93,0xFE,0x15,0xAD,0x03,0xC2,0x1E,0xAD,0xAE,0xD0,0xE9,0x78,0x83,0x28,0x5F,0x35, + + 0x4D,0x97,0x18,0xB1,0xDC,0x39,0x39,0xF4,0xED,0x5F,0x89,0xD7,0x36,0x00,0xAF,0x0A, + + 0xC0,0x42,0x36,0xDF,0xC4,0xB3,0x04,0xDC,0x4E,0x60,0xEC,0xC0,0x87,0xBE,0xA7,0x29, + + 0x06,0x0B,0x92,0xF4,0x53,0x71,0x81,0xA4,0x0B,0x71,0xC9,0x30,0xF5,0x91,0x30,0xE3, + + 0x35,0x64,0x0F,0x74,0x51,0x1D,0x0E,0x91,0xBA,0xEC,0x20,0xF3,0x93,0xE8,0x61,0x83, + + 0x3C,0x00,0xF8,0x63,0x2B,0xA8,0x29,0xDB,0x6C,0x4F,0x69,0x57,0x3B,0x29,0x31,0xE2, + + 0xBD,0x88,0xC3,0xF7,0x08,0xDF,0x49,0x89,0x32,0x2D,0x91,0xBC,0x74,0xE2,0x18,0x4D, + + 0x20,0x85,0xD1,0x7C,0xDA,0x15,0x55,0x40,0x2A,0x95,0xA8,0x43,0x31,0x0E,0x97,0x54, + + 0x05,0x5C,0x76,0x45,0xF2,0x8A,0x10,0x58,0x45,0x3C,0x6C,0x84,0x51,0x6A,0xC5,0xE1, + + 0xAE,0xA6,0xD6,0x36,0xA2,0x25,0x6E,0xA6,0x00,0x36,0xA9,0x42,0x92,0x69,0x03,0xF1, + + 0x81,0xE7,0xD8,0xA6,0xAB,0x49,0x5C,0x31,0xE5,0x05,0x6D,0x85,0xF1,0x68,0xFD,0xFB, + + 0x7C,0xA7,0x3B,0x53,0x1E,0xE3,0x2D,0xB7,0xB9,0x9E,0xF1,0xCA,0x6B,0xED,0x5E,0x6A, + + 0xB2,0x82,0x4A,0xCD,0x53,0xD4,0x2D,0x05,0xB9,0x98,0x9A,0x5A,0x19,0x26,0x94,0xFA, + + 0xAA,0xA5,0x5F,0x89,0xB7,0xE7,0x1B,0x25,0x74,0xDB,0xC9,0x2C,0x7F,0x71,0x3F,0x30, + + 0x8F,0xA1,0xF3,0xED,0xDA,0x7A,0xAC,0x15,0x49,0x5B,0x23,0xFA,0x1B,0x77,0x12,0x44, + + 0x4A,0x81,0xFC,0x65,0xD8,0xD3,0xCB,0x93,0xBD,0x31,0xB2,0x2D,0xA3,0x61,0x67,0x23, + + 0x92,0x70,0xA8,0x43,0x1A,0xED,0x62,0x8B,0xC7,0xB0,0xFA,0x85,0xFA,0x0E,0x1A,0x49, + + 0x2D,0x4F,0xFD,0x65,0xFB,0x2A,0x2D,0x6F,0xE4,0xE8,0x99,0x96,0x79,0x68,0x9F,0xDF, + + 0xE3,0xB3,0x95,0x75,0xC7,0x84,0x4D,0x7F,0x34,0x92,0x3B,0x71,0xF9,0x3F,0xA3,0xBD, + + 0xB8,0x81,0x90,0x00,0x1F,0xFD,0xD4,0x71,0x36,0x5D,0xD5,0xC2,0x11,0x74,0x99,0x14, + + 0x44,0x9A,0x56,0x71,0x37,0x9B,0x89,0x34,0x22,0x3C,0xC5,0x87,0xD4,0x8E,0x2A,0xEA, + + 0x79,0xE7,0x2A,0xEB,0x6D,0x70,0x0D,0x38,0x83,0x00,0xF3,0x47,0xF3,0x70,0xA1,0xEE, + + 0x6B,0x30,0xCB,0xEA,0x12,0xB8,0x25,0x51,0xA3,0xD8,0xC4,0x4D,0x54,0x85,0x39,0x33, + + 0x40,0xC0,0x79,0x40,0x28,0xC4,0xC4,0xBF,0x9B,0xA8,0x57,0x44,0x66,0x14,0x2A,0x60, + + 0xC8,0x96,0xF2,0xFD,0x90,0x45,0x22,0xDD,0x88,0xC4,0x5F,0xF9,0xF1,0x71,0x91,0x86, + + 0x4B,0x55,0xFB,0xED,0x11,0x53,0xC5,0x93,0x09,0x07,0x85,0xE4,0xA6,0x77,0x73,0x70, + + 0x69,0x74,0x70,0xA5,0xE7,0x3E,0x23,0xC8,0x5C,0xAB,0xD5,0x05,0x0C,0x78,0xBD,0x1B, + + 0x0A,0x12,0x47,0xA0,0x3E,0xB2,0x5C,0x85,0xDB,0x15,0xD7,0xCA,0x19,0x7C,0x5A,0x93, + + 0x51,0x29,0xD4,0xB5,0x05,0x7B,0xC1,0xDE,0xF0,0x61,0xA4,0x54,0x79,0x36,0x85,0x97, + + 0x8A,0xEE,0x3B,0x7D,0xB0,0x35,0x6A,0x49,0xAC,0x41,0xF1,0x4F,0xF9,0x9A,0x7A,0x88, + + 0x5B,0xB6,0xC5,0xFA,0x0C,0x34,0x32,0x49,0xAA,0x2A,0x60,0xBF,0xC5,0x60,0x38,0x6D, + + 0xC3,0x9F,0x46,0x8D,0xE7,0x27,0xEB,0xB7,0x6C,0x17,0x16,0xE8,0x76,0x78,0xE5,0x9F, + + 0x25,0xC1,0xCF,0xAF,0x07,0x72,0xDA,0xB8,0x27,0xD0,0xFE,0xF4,0x92,0xC4,0xF4,0x6C, + + 0x99,0x5E,0x1A,0xBE,0x8E,0x71,0xEC,0x96,0x65,0xD8,0xD0,0x69,0x99,0x24,0x8B,0x13, + + 0x10,0xB0,0x96,0x34,0x52,0xAE,0x21,0xD1,0x00,0x6E,0xAD,0xF9,0xF7,0x3D,0xE3,0x60, + + 0x25,0x63,0xD9,0x6D,0xB3,0xA4,0x85,0x1B,0xBC,0xE3,0xB8,0x2F,0x37,0xFC,0x62,0x75, + + 0xA4,0x8A,0x68,0xC6,0xB8,0xAC,0xF8,0xCB,0x0F,0x4A,0xE1,0x04,0xF2,0x4C,0x7B,0x8F, + + 0xBC,0xC0,0xAD,0xF7,0xAC,0xD3,0x02,0x83,0x38,0xB3,0x49,0x25,0x94,0x6F,0xBA,0x48, + + 0x3C,0x3F,0xD3,0xF7,0xFB,0x28,0xF8,0x02,0xFD,0x81,0xA6,0x85,0xD1,0x23,0xDF,0x19, + + 0xFF,0xBD,0xF5,0xB9,0x99,0x09,0x26,0x65,0x40,0x9D,0x76,0xE2,0x3B,0xC8,0xA8,0x3E, + + 0xE5,0x38,0x79,0x26,0x97,0xBA,0xD4,0xE1,0x61,0x18,0x50,0x77,0xD2,0x35,0x39,0x47, + + 0x8F,0xAA,0xF4,0xD4,0xAA,0x0B,0x9B,0x9D,0x6A,0xCB,0x11,0x66,0x56,0xA6,0xA9,0xDA, + + 0xDB,0x8A,0xD7,0x7F,0xF6,0xA3,0x1F,0xD2,0xC4,0xE5,0x99,0x75,0xA2,0xEA,0x95,0x26, + + 0x0A,0x41,0x7E,0x23,0xAF,0xE5,0x78,0x4D,0x2F,0xE8,0x88,0xC6,0x04,0xA7,0xBD,0x64, + + 0xC7,0x58,0xBD,0x6C,0xAA,0xEB,0x80,0xC9,0x7D,0x44,0x75,0x58,0x97,0xB0,0x79,0x4C, + + 0x71,0x2C,0x4F,0x9C,0xAC,0xA2,0x4B,0x0F,0xFF,0x5C,0xCD,0x56,0x53,0xF1,0x63,0x0F, + + 0x59,0x5A,0xE5,0x92,0x3C,0xA0,0xC6,0xCB,0x65,0xBA,0xE1,0x3D,0x36,0xE4,0x1C,0xEB, + + 0xA2,0x81,0x83,0x0E,0x0A,0x08,0x52,0x7B,0x48,0xB5,0xA2,0x19,0x7A,0x37,0x33,0x5F, + + 0xDA,0xE1,0x7F,0xB6,0x2C,0xD0,0x6D,0x81,0xCF,0x6D,0x8F,0xFA,0x24,0x49,0x1D,0xEF, + + 0x7A,0xAD,0xF2,0x63,0x56,0x9F,0x76,0x2B,0xDA,0xB3,0xD3,0x92,0x93,0x55,0xAF,0x05, + + 0x81,0x91,0x13,0xDB,0xAA,0x28,0xC6,0x42,0x34,0xE7,0x44,0x1F,0xDB,0xA1,0xB3,0x70, + + 0x07,0xF0,0x84,0x96,0x20,0xE7,0x4D,0xC9,0xC3,0xA0,0xB3,0xC0,0x57,0xC1,0x27,0x63, + + 0x86,0xD1,0x91,0xB2,0xDC,0xFA,0xC1,0xDD,0xE8,0x77,0xAE,0xB7,0x8A,0x7C,0x1B,0xBF, + + 0x47,0x9B,0xA3,0x54,0xA8,0x92,0xC0,0xB2,0x23,0x5F,0xD5,0xF0,0x55,0xFF,0x13,0xBE, + + 0xA3,0x39,0xF5,0x86,0xB3,0x68,0xF4,0x73,0xD2,0x58,0x69,0x49,0xC6,0xF3,0xB6,0xDC, + + 0x4C,0xD6,0x1C,0xCE,0xDF,0x05,0x54,0x2F,0x60,0x8D,0xBF,0xC1,0xF1,0xB6,0x86,0x21, + + 0x0D,0xF0,0x37,0xC6,0x31,0x2E,0xFB,0x90,0x8C,0xC4,0xEC,0xF2,0x63,0xB7,0xFC,0x38, + + 0xA0,0xCF,0x1D,0xE3,0xC9,0xB6,0x07,0x8C,0xE0,0xE4,0x5D,0xEA,0x73,0xB6,0x55,0x20, + + 0x81,0xFB,0xF7,0x55,0xB6,0xD0,0xC9,0x91,0x0C,0xE6,0x26,0x76,0x1E,0xBC,0x33,0xE8, + + 0xDB,0xFD,0xE2,0x8C,0xD3,0xA3,0xEA,0x87,0xDF,0x95,0x0E,0x69,0xA2,0x25,0x10,0xA6, + + 0x5B,0x46,0x76,0x81,0x9E,0x3C,0xAB,0x3E,0x2E,0xB4,0x9E,0x34,0x7C,0xDB,0x1F,0xBA, + + 0xD0,0x65,0x65,0xE9,0x43,0x17,0x2F,0x4B,0x8F,0xEB,0xAD,0xAD,0x4F,0x71,0x71,0x79, + + 0xA9,0x36,0x50,0x77,0xB9,0xF4,0x07,0x55,0x0E,0xD2,0xDF,0xBC,0xE0,0xF6,0x00,0x7A, + + 0xC7,0xBF,0xBC,0xCF,0x9D,0x11,0xDA,0x79,0x16,0x71,0x5A,0x7C,0x6A,0xF4,0x3E,0xEB, + + 0x6B,0x20,0xCA,0x9E,0x5C,0x55,0x40,0xD2,0x0E,0xD9,0xAE,0xFE,0x73,0xBF,0x01,0x6E, + + 0xAD,0x16,0xF8,0x2F,0x93,0xB8,0x64,0x9B,0x6E,0xC1,0x0B,0x6B,0x81,0xC6,0xC3,0x49, + + 0xAB,0x95,0x97,0xF8,0xDC,0x17,0x1E,0x3B,0xAB,0x7B,0x20,0x26,0xF9,0xFF,0x82,0x84, + + 0x1B,0x59,0xB8,0x14,0xB3,0x2B,0x68,0xA2,0x45,0x44,0xEB,0x4B,0xDF,0xF6,0x88,0x13, + + 0xA5,0x1A,0xB0,0x04,0xB2,0x27,0xF0,0xAD,0x61,0x93,0x63,0x36,0x11,0xD1,0x21,0x67, + + 0xA0,0x62,0x03,0x87,0x59,0x1F,0x29,0x71,0x40,0x4D,0xD9,0x34,0x29,0xE2,0xC8,0x77, + + 0xA0,0x43,0xA7,0x7E,0x30,0xA4,0x9B,0x43,0x3A,0xBC,0xEE,0x25,0x42,0xBE,0x80,0xD4, + + 0x02,0x78,0x79,0x06,0xB3,0x59,0x07,0x93,0xC6,0xCF,0xC0,0x97,0xD6,0xE9,0xE5,0x3E, + + 0x9E,0x78,0x7F,0x69,0x8E,0xD8,0xFC,0x54,0x6D,0x9A,0x59,0x44,0x52,0xCA,0xFE,0x0E, + + 0x02,0x66,0xE9,0x27,0x66,0xF7,0xA6,0xD0,0xB0,0xE9,0x83,0x4E,0xD4,0x0F,0x89,0xD1, + + 0x8C,0x45,0x64,0xD1,0xBE,0x99,0xF5,0x02,0xB9,0xB1,0x79,0x07,0xB1,0x52,0x26,0x2E, + + 0x2A,0xF8,0x86,0x15,0xB4,0x25,0xD2,0x54,0x1C,0x04,0x7E,0xBE,0x18,0x60,0x32,0xAA, + + 0x05,0x69,0xA3,0xF4,0x7A,0x09,0x42,0x3D,0x4F,0x92,0xC3,0x3F,0x3A,0x49,0x47,0x8B, + + 0x55,0x05,0xF1,0xF8,0x88,0x2C,0xD3,0x0D,0x21,0xB3,0x96,0x68,0x8F,0x2A,0xE7,0x1B, + + 0x81,0x67,0xF3,0x1F,0xC9,0xD0,0x01,0xBD,0xB2,0x23,0x63,0x19,0x2C,0x62,0x02,0xDD, + + 0xF5,0xA7,0x75,0x50,0xE9,0x93,0x2C,0xD1,0xA3,0xDF,0x12,0xB1,0xAB,0xC1,0x58,0x78, + + 0x0D,0x0F,0xA2,0x3E,0xA4,0x23,0xED,0x09,0x3C,0x4D,0xE2,0x86,0xF7,0x60,0x3B,0x59, + + 0x3F,0x8B,0x38,0xC9,0xD4,0x0D,0xB0,0x9A,0xB8,0x0F,0x58,0xE9,0xFF,0x0B,0xBC,0x36, + + 0x8D,0x0D,0xF3,0xB3,0x18,0x22,0xE4,0x48,0xB1,0xE0,0x77,0xE2,0x2A,0xB9,0x7C,0x46, + + 0x24,0x5C,0xC6,0xE2,0xCB,0x2B,0x01,0x5D,0x04,0xEB,0xF7,0x46,0x54,0xFD,0x56,0x95, + + 0x82,0x17,0x84,0x9C,0xD0,0x7E,0xB0,0xC3,0x0D,0xF7,0xA6,0x5A,0xC4,0x33,0x81,0x03, + + 0xA5,0xD8,0x30,0xE3,0x3D,0x84,0x04,0x25,0xDD,0x30,0xCC,0x9E,0x57,0x33,0x85,0x5D, + + 0x02,0x15,0xD4,0xAE,0x16,0x7F,0x88,0xC2,0x85,0xF5,0x5D,0x5C,0x1A,0x17,0x84,0x3D, + + 0x24,0x16,0x69,0x40,0x1F,0x8A,0xEC,0x90,0xE2,0xF2,0xE1,0x60,0x2D,0xE9,0x0C,0xB4, + + 0x25,0x17,0x37,0x50,0x7D,0x16,0x1E,0x0F,0x8A,0x46,0x81,0xEA,0x75,0x1C,0x83,0x3E, + + 0x17,0x54,0x72,0xDC,0x41,0x89,0x2D,0xC5,0x0B,0xFF,0x08,0xE4,0xC5,0xDA,0x63,0xDD, + + 0x0B,0xFA,0xA5,0xB7,0x0C,0x39,0xF1,0x6E,0xC7,0xFA,0x1F,0x71,0xB5,0xEB,0x8E,0xE8, + + 0x4B,0xE3,0x12,0xA8,0xC6,0xC7,0x87,0x68,0x67,0x34,0xAC,0x4E,0xD4,0x77,0x76,0x1A, + + 0x2C,0x73,0x3B,0x7A,0xB9,0x5A,0x24,0x2B,0x59,0x86,0xB8,0x55,0x22,0xD4,0x7F,0xAE, + + 0xCB,0xE5,0x01,0xFF,0x4F,0x21,0x2D,0x3A,0xD0,0xA5,0x16,0x03,0x78,0x35,0x37,0xC9, + + 0xA1,0x14,0x78,0x63,0xF9,0xE0,0xB3,0xC6,0x23,0x2A,0xD0,0x7A,0x3B,0x73,0x60,0x11, + + 0x11,0x5D,0xFE,0x22,0xB9,0x31,0x01,0xD8,0x62,0xF3,0xA9,0x2B,0x87,0xCA,0xB1,0xAB, + + 0x59,0x7E,0x67,0x8E,0x3D,0x54,0x8F,0xC7,0x55,0xC6,0xDB,0x78,0x56,0xBF,0x79,0x70, + + 0xC2,0x13,0xBA,0x0F,0x1B,0x38,0x80,0x9B,0xCE,0x8B,0x6C,0x7E,0x59,0x76,0xB4,0x29, + + 0xA9,0xEE,0x35,0x5F,0x2E,0xC8,0x5F,0xFD,0xA1,0x82,0x64,0xE2,0x58,0x3D,0x28,0x06, + + 0x8C,0xC5,0xA0,0xFA,0x12,0xE0,0x98,0x27,0x60,0x6B,0x20,0xB6,0xAB,0x6B,0x92,0x72, + + 0x38,0x82,0x81,0xFE,0xB6,0x2C,0xAD,0xB0,0xC5,0x06,0xB9,0x34,0x51,0x8D,0x89,0x1E, + + 0xB7,0x36,0x2C,0xC8,0x75,0xA4,0xA0,0x23,0x0C,0x9B,0xB5,0x6D,0x29,0xFE,0xA8,0x96, + + 0xA7,0x83,0xC9,0x44,0x2C,0xAC,0x01,0x53,0x81,0xCE,0x6D,0xFD,0x26,0xF8,0xE3,0xBD, + + 0xB3,0xC6,0x9D,0x84,0xB7,0xA2,0x27,0x1C,0x2C,0x57,0xB8,0x6A,0xBF,0x3C,0x6A,0x3C, + + 0x01,0xC7,0x12,0xD4,0x82,0x29,0x2F,0x42,0xB8,0x6A,0x80,0x51,0xAA,0xEA,0x21,0xE8, + + 0xED,0x89,0x48,0x05,0x90,0xCF,0x0F,0xDB,0xE2,0x6B,0x31,0x03,0x7A,0x3B,0x32,0xD7, + + 0x85,0x65,0x29,0x27,0x99,0xAB,0xAE,0x00,0xB5,0x44,0xC7,0x2A,0xBF,0xEA,0x62,0xCC, + + 0x10,0x93,0x16,0xEC,0x1A,0xE8,0x6C,0x06,0x4C,0x67,0x96,0xC8,0x6F,0x5D,0x2F,0xF8, + + 0x3E,0xAB,0x12,0xE5,0x2E,0xDC,0x00,0xC9,0x29,0x66,0x9E,0x58,0x6E,0x5C,0x63,0x6D, + + 0x0E,0x89,0x27,0x2B,0xAF,0x2F,0xA6,0xAF,0xA1,0x20,0x0B,0xCF,0xDE,0xF1,0x93,0x99, + + 0xAF,0x7B,0x13,0x26,0x3A,0xB0,0xAD,0xC8,0xFD,0x64,0x43,0x4D,0x5F,0xF7,0x9D,0x24, + + 0x08,0x8E,0xDA,0x25,0x9F,0xA1,0x8D,0x99,0x38,0x8D,0xE0,0x0E,0xB5,0xA8,0x34,0xB8, + + 0x4F,0xD0,0xC2,0x3C,0xEB,0x7C,0xAC,0x09,0x29,0x44,0x66,0x72,0x3F,0xE9,0xAF,0xCF, + + 0x8C,0x22,0x5A,0x0D,0x3F,0xD3,0x2A,0x17,0x6B,0x68,0xC9,0xDF,0x66,0xAC,0x59,0x6B, + + 0xAB,0xCD,0x5C,0x62,0x02,0x52,0x5B,0x88,0x6C,0xDD,0x85,0x79,0x3E,0x6C,0x44,0xC3, + + 0xA8,0x9D,0xA2,0x84,0x44,0x6B,0x8F,0x31,0x50,0xDA,0xBC,0xA3,0x1F,0x4A,0x24,0x17, + + 0x84,0x19,0x87,0xAF,0x33,0xE8,0x5C,0xE1,0x97,0xDC,0x10,0x25,0x2E,0xFB,0x2F,0x03, + + 0x07,0x94,0x27,0xF5,0x4F,0x39,0x39,0x83,0xF4,0xDC,0xBD,0xD5,0x43,0xAF,0xAD,0x71, + + 0x04,0x1B,0xD3,0xF5,0x46,0xBA,0xD1,0x21,0xF8,0xDB,0x21,0xC4,0xCE,0x75,0x1A,0xC4, + + 0x45,0xE3,0xDC,0xF7,0x4A,0xBB,0xD7,0xDE,0xBA,0x25,0x32,0xF6,0x3E,0x2C,0xFC,0x21, + + 0x41,0xF0,0xBA,0xEA,0x94,0xF4,0x7C,0x81,0x13,0x53,0x7B,0xB6,0xB7,0xB4,0xB6,0x30, + + 0x2A,0x9B,0x85,0x89,0x40,0xBB,0x99,0x90,0x9A,0x50,0xCB,0xBB,0x7B,0x70,0x55,0x20, + + 0xC9,0xF9,0xD7,0x24,0xE2,0x13,0x7E,0xB3,0xA3,0x7C,0x83,0xF0,0x56,0x68,0x24,0x68, + + 0x8D,0x10,0x67,0xC9,0xC1,0x2E,0x35,0xD8,0xCF,0xA3,0xBE,0xEE,0x36,0xA5,0x26,0x78, + + 0xAF,0xD1,0xA6,0x9B,0xCC,0x4F,0xE5,0x39,0x6B,0x02,0xE3,0x46,0x7D,0xBB,0x37,0x69, + + 0x0D,0x12,0x5A,0xF5,0x33,0x4C,0x3F,0x50,0x93,0xC6,0x48,0x53,0xFC,0x4F,0x0B,0xF9, + + 0xEC,0xBB,0x52,0x77,0x59,0xF6,0x86,0x39,0x24,0x86,0xF9,0xC1,0x05,0x41,0x00,0x6A, + + 0xC7,0x6D,0x6D,0x93,0x1C,0x7C,0xE5,0xF2,0x05,0x2D,0x42,0x8C,0x85,0xBE,0xBC,0xAA, + + 0xAF,0x8B,0x61,0x2D,0x62,0x10,0xBE,0x8A,0x61,0xD1,0x2C,0x68,0xB7,0x1E,0x7D,0xC9, + + 0x1D,0x33,0x65,0x3F,0xBF,0x1F,0x77,0x69,0x7B,0xD2,0xE8,0x96,0xDA,0x5A,0xFF,0x2B, + + 0x5C,0x3E,0x60,0xEE,0x1E,0x3E,0x47,0x90,0x6E,0xD2,0x19,0x8D,0x14,0x59,0x5E,0x92, + + 0x04,0xF5,0xF9,0x7A,0x71,0x24,0x72,0x04,0xBD,0x02,0xA8,0xB4,0xF3,0xCD,0xEB,0x0F, + + 0xDF,0xAA,0x18,0x53,0x35,0xF5,0xD8,0xB0,0x4E,0x03,0xAF,0x09,0xA1,0xB0,0xA1,0x3F, + + 0x0C,0xD6,0xE0,0x45,0x94,0x4C,0x51,0x11,0x3B,0xBF,0x8F,0xCA,0xE7,0x62,0x6E,0x15, + + 0xEA,0x95,0x1A,0x0A,0xED,0xB7,0xD9,0x59,0x4C,0xF5,0x46,0xBF,0xA6,0x17,0xF8,0x7D, + + 0xA5,0x4A,0x47,0x56,0xF5,0x89,0x85,0x13,0x74,0xE7,0xF9,0x72,0x54,0x06,0xB0,0xD4, + + 0x20,0x05,0xEA,0x70,0xF8,0x41,0x0D,0xC1,0xB9,0xEA,0x98,0x12,0x55,0x67,0xC7,0x33, + + 0xB1,0x22,0x91,0xB4,0x31,0xD6,0xA2,0x92,0xF4,0xEB,0x43,0x55,0xC3,0x24,0x89,0x19, + + 0x83,0x45,0xF1,0xAB,0x3F,0x2A,0x0C,0x02,0xF1,0xE4,0xF7,0x64,0xA8,0x26,0x82,0x16, + + 0xEC,0xFC,0xD2,0x17,0x32,0x7C,0x6C,0x90,0xFD,0xDE,0x12,0xC1,0x5B,0x69,0x54,0x2A, + + 0x0D,0x45,0x20,0x29,0xB8,0x22,0x5A,0x79,0x4F,0x4B,0xCA,0x18,0x67,0x72,0xB5,0xF8, + + 0x60,0x4A,0x53,0x02,0xB6,0x2C,0x6D,0x84,0x35,0x08,0x81,0x29,0xD1,0x58,0x6A,0x17, + + 0x59,0x7F,0xC5,0xEE,0xEB,0x8F,0x4B,0xC2,0x34,0x09,0xAD,0x5B,0x26,0x07,0x0D,0xFC, + + 0x28,0xEC,0x3D,0x3F,0x47,0x8D,0x21,0x9B,0x78,0xB9,0xAD,0x0E,0xAD,0x09,0xB2,0x7C, + + 0x84,0x0F,0x4A,0x2F,0x4E,0xA8,0x0F,0x82,0xC8,0x43,0x2F,0xBB,0xA6,0xEB,0x41,0x3B, + + 0xB9,0x2A,0xFB,0x69,0xF1,0x21,0x86,0x57,0xFC,0xFB,0xEB,0x92,0xDC,0x15,0xFC,0x58, + + 0x06,0x03,0xB5,0x5B,0x53,0x20,0xBB,0x46,0xEF,0xE2,0xDB,0x03,0x19,0x2F,0x3E,0x73, + + 0xEA,0xBB,0xC1,0x99,0x91,0xAF,0xAD,0x3A,0x8B,0xA3,0x86,0xC5,0xCB,0x1C,0x6F,0xCE, + + 0x94,0xCD,0x58,0x92,0xF9,0x72,0xDC,0x30,0x43,0xEE,0xFF,0xF4,0x61,0xFA,0x67,0x85, + + 0x84,0xBD,0x31,0xE7,0x4B,0x96,0xAA,0x25,0xE2,0x1B,0x29,0x3E,0xEA,0x1F,0xA2,0xFE, + + 0x7C,0xC7,0x29,0x64,0x12,0x73,0xA2,0x35,0xEF,0x30,0x41,0x89,0x42,0xFE,0xBA,0x31, + + 0xBE,0xF6,0x1F,0xAA,0x0D,0x30,0x42,0x82,0x02,0x57,0xF4,0x6E,0x56,0x72,0x33,0x54, + + 0x02,0xFE,0x17,0x57,0x35,0xEE,0x72,0x03,0xEF,0x14,0x68,0x96,0x88,0x10,0xAD,0x4B, + + 0x80,0xC0,0x9A,0x3A,0xCD,0x2E,0x2B,0xE7,0x03,0xD5,0x7C,0xB7,0x53,0xE9,0xFA,0xD7, + + 0x57,0x73,0x74,0xA6,0xC8,0x3E,0x07,0x16,0x8B,0x06,0xE5,0x0B,0x5F,0x7A,0xB4,0x97, + + 0xC4,0x59,0x39,0x08,0x22,0xC8,0xD6,0x28,0x26,0x34,0x6E,0x3D,0x27,0xA8,0x50,0x0B, + + 0x2D,0xB2,0x4C,0x93,0x65,0x3D,0xB3,0xC7,0xF4,0x06,0x80,0xFA,0x35,0x62,0xA4,0x1F, + + 0x74,0xFC,0xBC,0x96,0x1B,0x78,0x70,0x56,0x1D,0xCC,0xB7,0x7A,0xFE,0x92,0x6D,0x9D, + + 0x8D,0xCF,0x67,0xA3,0x9F,0xCE,0x2C,0x00,0x11,0x88,0xBB,0xDB,0xDA,0xDA,0x86,0xA8, + + 0x75,0xC8,0xD6,0x3D,0x99,0x7C,0x28,0xEE,0x8B,0xDF,0x29,0xC8,0x7C,0x6E,0x78,0x5C, + + 0x0A,0x0F,0x0E,0x5C,0x19,0x3B,0x04,0x82,0x03,0x8C,0xE6,0x02,0xD7,0x70,0xF5,0xD6, + + 0x46,0xB1,0xF5,0x49,0xF8,0xCE,0x79,0x1A,0x66,0x1F,0xE0,0x6F,0x6F,0xA9,0x11,0xD6, + + 0xA7,0x51,0xE6,0xDB,0xBD,0x56,0x21,0xFF,0x0A,0xDC,0x22,0xB3,0x0E,0x23,0x07,0x26, + + 0xD0,0x46,0xBE,0xBF,0xA8,0x83,0x70,0x46,0x42,0x82,0xE9,0xDE,0xF1,0x16,0x4E,0xE3, + + 0xC7,0xC1,0xF3,0x19,0x13,0x4A,0xEB,0x5C,0x97,0x6E,0xAF,0x09,0x0A,0x6C,0x86,0x94, + + 0x65,0x2D,0x10,0xA7,0xEF,0xB4,0x28,0x64,0x1E,0x6D,0x71,0x4B,0x61,0xEA,0x57,0x8D, + + 0x6E,0x75,0xFB,0x65,0x6A,0x5E,0x6E,0x4C,0xC3,0xC1,0x42,0x49,0x58,0x15,0x08,0x5C, + + 0x60,0x70,0x44,0x62,0xFF,0xDE,0xE5,0x53,0x3E,0x65,0x60,0x98,0xAB,0x45,0xCC,0xD6, + + 0x26,0x6E,0xD6,0xAF,0x9A,0x23,0xD8,0x00,0x25,0x69,0x03,0x86,0x55,0x14,0xB7,0x58, + + 0x02,0x12,0xFB,0x43,0xB5,0x4F,0x49,0x53,0xB7,0x69,0xC9,0x98,0x23,0x85,0xA9,0x33, + + 0xD8,0x72,0xE1,0x17,0xD7,0x0C,0x07,0x74,0xE3,0xDC,0x87,0x71,0xB4,0x90,0x7C,0x91, + + 0x1C,0x27,0x0E,0x9D,0x75,0xA2,0xFE,0xAE,0x4E,0xCB,0xFA,0x1E,0xD1,0x45,0x85,0x61, + + 0xD0,0xC8,0x8C,0xBE,0x91,0x02,0xE9,0xBE,0x4B,0xD0,0x84,0x4A,0x9F,0xE9,0x40,0x55, + + 0x7D,0x56,0xB2,0x1C,0xB6,0xEE,0x4C,0x54,0xCA,0xA8,0x2D,0xBC,0xB5,0x55,0x88,0x8D, + + 0x51,0x6D,0xD3,0x1B,0x60,0xE9,0x97,0xA0,0x26,0xC3,0xC0,0x41,0xB5,0xE6,0xC2,0x74, + + 0x82,0xCE,0xBD,0x0F,0x3A,0x01,0xD3,0x1C,0x2E,0xEB,0x21,0x9D,0xD2,0xE1,0x2E,0x9C, + + 0x9D,0x8E,0xCA,0xA7,0xE0,0x56,0x54,0x89,0xC3,0x8C,0x16,0xE5,0xAE,0x64,0x7B,0xCA, + + 0xE5,0xFA,0xBC,0xAF,0xD8,0xD5,0x0D,0x6D,0x2F,0x4D,0x63,0x91,0x72,0xE3,0x88,0xA0, + + 0x89,0x75,0xE0,0xA3,0x19,0xED,0x45,0xDB,0xA7,0xC2,0xDB,0x95,0x2A,0x66,0xC7,0x9D, + + 0xFA,0x3F,0x70,0xBD,0x5D,0x2B,0x87,0x1F,0x98,0xD8,0x8A,0x7B,0x57,0x70,0xBC,0x61, + + 0xC5,0xDD,0xF2,0x2E,0x3D,0xC4,0x98,0xAD,0xE1,0x4D,0x86,0x5E,0xCD,0xBE,0x42,0x72, + + 0x76,0xD2,0xA5,0x94,0xDE,0xC1,0xF5,0x32,0x11,0x06,0x8B,0x6A,0xD5,0x72,0x4C,0x89, + + 0x75,0x27,0xFF,0x13,0x8C,0x95,0x84,0xE9,0x3C,0xAE,0xE4,0x80,0x50,0x7F,0x05,0x62, + + 0xF0,0x2B,0x84,0x06,0x62,0xF6,0xDE,0x11,0xEA,0x95,0xCE,0x0D,0xC5,0xB5,0x9F,0x7E, + + 0xEF,0x22,0xBC,0x54,0xA6,0x71,0x02,0xF4,0x86,0x56,0xCB,0x87,0x04,0xF5,0x43,0x7C, + + 0x98,0x32,0xA5,0x09,0xB0,0xB4,0x2F,0x8C,0x8E,0xD5,0x42,0xFE,0x81,0xF6,0x38,0xC0, + + 0x55,0x84,0x2D,0xB2,0x35,0xBF,0x53,0x00,0x6B,0x96,0x3D,0x66,0x02,0x0A,0x01,0x7B, + + 0xB0,0x8A,0x86,0x0F,0x03,0xB0,0x19,0x94,0x52,0x2D,0xFC,0xB3,0x83,0xE3,0x50,0x0C, + + 0xC6,0x7F,0x1D,0x3A,0x3B,0x62,0xD2,0xC5,0xA7,0x9D,0xF6,0xB3,0x4E,0x7C,0xCF,0x01, + + 0x88,0x17,0x9D,0x74,0x40,0xD9,0x64,0x2F,0xA6,0x07,0x82,0xC9,0x71,0x0C,0x71,0x08, + + 0xBD,0x34,0x16,0x1D,0x78,0x5A,0x01,0xBC,0x8C,0xDF,0x07,0x40,0xCE,0xCE,0xA6,0x17, + + 0xC1,0x37,0x25,0x4C,0xAF,0xF8,0x2F,0xF0,0x8B,0x7A,0xE0,0xF2,0x81,0x61,0x3E,0x44, + + 0xD4,0x30,0xE5,0x5A,0x7D,0x9F,0xC6,0x04,0xE2,0x20,0x69,0x01,0xCA,0x2E,0xC2,0x5F, + + 0x29,0x88,0x27,0x4A,0xDA,0x3F,0x2B,0x14,0xDD,0xEC,0x24,0xCB,0x4D,0x83,0xBA,0xEA, + + 0x51,0x30,0x2F,0x5F,0x76,0xB9,0x9C,0xDF,0x84,0xD0,0x04,0x94,0x85,0x40,0x39,0xB8, + + 0xF3,0x40,0x1A,0x72,0x13,0xD0,0x2E,0x19,0xE7,0xE4,0xDE,0x10,0xB9,0x31,0x1E,0x28, + + 0xEA,0x45,0x70,0x72,0xD3,0x01,0x38,0xAB,0xCC,0x5A,0xE0,0x3D,0xD1,0x57,0x40,0x3A, + + 0xE3,0x9D,0xD8,0x5F,0x35,0xA2,0x00,0x08,0x88,0x53,0xE9,0x02,0x39,0x13,0x53,0xAE, + + 0xEB,0x72,0x81,0x1C,0x83,0xA8,0xD6,0x57,0x0B,0x1A,0x09,0x73,0xDF,0x2F,0x9E,0xC3, + + 0x04,0x4D,0x36,0xC0,0x66,0x98,0x94,0x3E,0x4C,0x5A,0x0F,0x65,0x54,0x9F,0x4D,0xB2, + + 0x30,0xA1,0x77,0xDB,0xEC,0xF8,0xCD,0x83,0xC7,0xC8,0x6D,0x05,0xA8,0x9E,0xF6,0x23, + + 0x00,0x05,0xA9,0x27,0x21,0x4A,0x2C,0x9E,0xA1,0xFB,0x95,0x17,0x39,0x4C,0x89,0x35, + + 0x29,0x0A,0x28,0xB8,0x80,0x7C,0x0B,0x26,0xC5,0xED,0xDD,0xF1,0xAC,0xD5,0x7C,0x0F, + + 0x2C,0x05,0x00,0xEA,0x3C,0xA5,0x48,0x2A,0x4E,0x13,0x50,0x6A,0x12,0x24,0xBE,0x7A, + + 0xBE,0x6C,0x57,0x0D,0x62,0xD6,0xC1,0x4B,0x71,0x06,0x5A,0x44,0x0F,0x2B,0x7A,0x2E, + + 0x29,0x35,0xDA,0x57,0x3F,0x6B,0x42,0xE9,0x80,0x51,0x56,0xA9,0xF2,0x34,0x33,0xF6, + + 0x38,0x4A,0x54,0x34,0xEE,0x5E,0x8B,0xC4,0xCB,0x90,0x55,0x10,0x56,0x70,0x22,0xE8, + + 0x56,0x03,0x42,0xC8,0x66,0x25,0x70,0x98,0xE3,0x3D,0x12,0x39,0x53,0x63,0x60,0x88, + + 0x57,0xF2,0x82,0x5D,0x3F,0x6F,0xF4,0xFC,0x74,0x0A,0x8A,0x75,0x5D,0xA5,0x23,0x4B, + + 0xF3,0x03,0x6F,0xC9,0x88,0xF6,0x2D,0x6F,0x2B,0xCD,0x8A,0xED,0x7F,0x68,0xA7,0xCB, + + 0x87,0x07,0x5C,0xC2,0x2A,0x23,0xF8,0xDD,0x17,0x2C,0x37,0x82,0xDD,0x14,0x1A,0x78, + + 0x20,0x6B,0x95,0x00,0x7B,0xE2,0xC5,0x5E,0x99,0x63,0x12,0x04,0x7E,0xB2,0xCC,0x78, + + 0xED,0xBC,0xB1,0xCB,0xC9,0x20,0x7C,0xFE,0xD7,0x11,0x23,0xF3,0x7F,0x8E,0x94,0x70, + + 0x9E,0x83,0xBD,0xE5,0xA2,0xCE,0x6A,0xDB,0xD2,0xCD,0x7D,0x31,0x70,0x30,0x13,0xA0, + + 0xDD,0xBC,0x4D,0xE1,0xD2,0x5F,0x5C,0x8A,0x63,0x0F,0x71,0xDA,0x2F,0xF8,0x7A,0xB1, + + 0xFA,0x1B,0x28,0x40,0x20,0xEC,0x06,0xB7,0x64,0x2F,0x44,0x66,0xF2,0xF7,0x48,0xCD, + + 0xD6,0xE1,0x20,0x46,0x3B,0x3F,0x77,0x8E,0xB2,0x17,0x5C,0xB3,0x57,0x8E,0x67,0xB2, + + 0x01,0x1F,0xCD,0xD8,0x5B,0x4C,0xA5,0xBA,0x1F,0xEA,0xED,0x95,0x46,0x7F,0x35,0xC3, + + 0x90,0x55,0x4F,0x3D,0xEA,0x7A,0x1B,0x8F,0x76,0x8A,0xDC,0x68,0x90,0x64,0x91,0xFA, + + 0x42,0xC9,0x39,0x1F,0x04,0xE5,0xE7,0x2C,0x14,0x81,0xB6,0x46,0x4D,0x6E,0xC1,0xFE, + + 0xE3,0x68,0x2D,0xB0,0xE5,0x48,0x5F,0x65,0x6F,0xA8,0x76,0x39,0xB1,0xB0,0x79,0xB5, + + 0x25,0x01,0xE1,0xA1,0xBB,0xDA,0xE8,0x41,0xA8,0x18,0x9F,0xA9,0x7F,0x08,0x31,0xB5, + + 0xAF,0x40,0xA9,0xB5,0x81,0x9B,0xF0,0x3D,0xFB,0xF7,0x8E,0xAE,0x94,0x4A,0xBE,0x20, + + 0xA8,0xD1,0xB4,0xCD,0x3E,0x52,0xFF,0xA7,0x97,0x20,0x41,0x1F,0xFE,0xF1,0xE9,0x3A, + + 0xEB,0xB0,0xAA,0xAA,0xC0,0xC6,0xED,0x5C,0x97,0x3E,0xE6,0x02,0x18,0x7E,0xB8,0x21, + + 0xAC,0x53,0x57,0x8A,0x9E,0x25,0x64,0x4D,0x12,0x3D,0x85,0xEF,0x11,0x1A,0x37,0x5D, + + 0x8E,0xC8,0xCB,0x59,0xCE,0xEF,0x9F,0x68,0x1E,0xA2,0x48,0x0E,0x7F,0xF2,0x1A,0xF1, + + 0x70,0x2F,0x60,0xFA,0xA1,0x2D,0x85,0xA6,0x7F,0xC9,0xD1,0x50,0x96,0xC0,0x39,0x55, + + 0xCF,0x08,0x61,0xD6,0x3C,0x2A,0xF8,0x7E,0xB4,0xDA,0xB0,0x96,0x66,0xD7,0xB6,0xF0, + + 0xB4,0x2F,0xDC,0x6C,0x19,0x04,0xEE,0xA3,0xB3,0xB7,0xF0,0x51,0x16,0xE2,0x61,0xCB, + + 0x6C,0x72,0x75,0x3E,0x26,0xEE,0x5F,0x45,0x48,0x45,0x03,0xC8,0x2E,0xF8,0xE0,0xBF, + + 0x0A,0x74,0xD8,0xAE,0xDF,0xE6,0xC9,0xE6,0x0D,0x3C,0x28,0x20,0xE2,0xE2,0xD7,0xB0, + + 0x34,0xC7,0x91,0x11,0xEA,0xE7,0xD4,0xF7,0x92,0xA7,0x80,0xF2,0x20,0x39,0xE6,0xC1, + + 0xA4,0xF4,0x72,0x1C,0x15,0xAB,0xB1,0xB3,0x61,0x1A,0xA1,0x7E,0xB5,0xC6,0xD1,0x43, + + 0x20,0x9C,0x7E,0x9F,0x18,0xE5,0x10,0x98,0x38,0x4C,0x99,0xD7,0xC5,0x6C,0x34,0x68, + + 0xF3,0x25,0xBA,0xDB,0x7F,0x57,0x72,0xEA,0x52,0x08,0x9F,0x48,0xEB,0xF8,0x38,0x9A, + + 0xF2,0x54,0xD4,0x37,0xFC,0x06,0xCF,0xBE,0x39,0xA6,0xE0,0x3C,0xEE,0xB4,0xB0,0xAE, + + 0x7B,0x77,0xDD,0x23,0x77,0xDB,0x53,0x65,0x7A,0xD1,0x0B,0xC0,0x53,0x5C,0x79,0xB4, + + 0x7A,0x3E,0xBA,0xEF,0x35,0x0A,0x84,0x16,0x32,0x16,0xA1,0x3D,0x4F,0xE3,0x61,0x2C, + + 0xF9,0x03,0xA3,0x12,0x1D,0xEE,0x8A,0x47,0xA5,0x88,0xC7,0x8C,0xF2,0x67,0xD0,0xA1, + + 0xE6,0x24,0x11,0xDA,0x63,0xD4,0x34,0x68,0x2C,0x00,0x7E,0x8E,0x57,0xE2,0x7B,0xC6, + + 0xBD,0x88,0xBA,0x1C,0x98,0x7F,0x49,0xDB,0x03,0x8C,0xE3,0x8D,0x5C,0xED,0x4C,0xB9, + + 0x4F,0x70,0x47,0xDB,0xE3,0xB5,0xEE,0x88,0x4B,0x42,0x13,0x67,0x58,0x1A,0xF6,0x42, + + 0x74,0x3D,0xB5,0xF5,0x04,0xDC,0x34,0xA2,0x64,0xD0,0xED,0xE9,0xD1,0x79,0xB9,0x74, + + 0x16,0x4A,0x92,0xBF,0xD6,0xB8,0x5C,0xFC,0xD5,0xCA,0x1E,0xC0,0x9E,0xE0,0xB4,0x65, + + 0xB4,0x3F,0xC7,0x96,0xB5,0x1C,0x0F,0x4B,0x2E,0x1D,0x35,0xC7,0xEC,0xE9,0x13,0xBB, + + 0x02,0xFD,0x6A,0x67,0x8D,0x82,0x13,0x37,0x91,0xBC,0xBC,0xC1,0x1E,0xC2,0x5C,0x38, + + 0x8A,0x99,0x24,0x23,0x8E,0xAF,0xE1,0x1D,0x93,0x87,0xA6,0xE4,0x9D,0x90,0xD8,0xB0, + + 0xD8,0x93,0x3B,0xE4,0xC8,0x60,0xBC,0xCE,0xBE,0x97,0x50,0xD2,0x8A,0xFE,0x1A,0xE4, + + 0x07,0x49,0x27,0xA1,0xDD,0xB9,0x8E,0xC7,0xD5,0x31,0xCD,0x9B,0xD7,0xB6,0xBD,0x83, + + 0xA1,0x85,0x95,0x53,0xC4,0x4C,0xEA,0x6C,0x6A,0x95,0xC5,0x0B,0x77,0x0C,0x7F,0x52, + + 0x89,0x3E,0x66,0x5E,0x91,0x15,0xDA,0x2E,0x7E,0x00,0x6D,0x01,0x03,0xFA,0xF7,0x2E, + + 0x2C,0xC9,0x6E,0x4E,0x90,0xB4,0xA3,0x45,0x5E,0x75,0x43,0xCD,0x4D,0x9A,0x30,0xF8, + + 0xDC,0xD8,0xB2,0x6D,0xDC,0xE8,0x3F,0xA2,0xEA,0x2B,0x89,0x86,0x94,0xF7,0x11,0xA3, + + 0x0A,0x8B,0xAD,0x7D,0x04,0xF9,0xFF,0x33,0x57,0x99,0x46,0xCD,0x06,0xBB,0x51,0xCE, + + 0x59,0x18,0x26,0x9B,0x69,0xA7,0x37,0xB6,0x6D,0x3D,0xA6,0x17,0x3E,0x63,0xD1,0x94, + + 0x9A,0xDF,0x3A,0x0E,0xBE,0x35,0x07,0xDD,0xC3,0xB8,0x75,0x9E,0x7B,0x91,0xCA,0xB0, + + 0x33,0xC2,0x40,0xB9,0x7F,0xDD,0x17,0xA5,0x5E,0xD3,0x37,0x03,0x17,0x03,0x25,0xA1, + + 0x7A,0xF3,0xBF,0x30,0x47,0x16,0x46,0xB9,0x4E,0xC4,0x6F,0x38,0xDB,0xFF,0xC0,0x55, + + 0x09,0x42,0xD0,0xF7,0x94,0xAD,0xD0,0xCD,0xFE,0xED,0xEF,0xDA,0x56,0x62,0xD5,0xF4, + + 0x32,0x03,0x37,0xF6,0xF8,0x22,0x26,0xDC,0xA3,0x61,0x58,0xB0,0xE3,0x6B,0x8B,0xC6, + + 0x7F,0x40,0xD3,0x52,0x7B,0x46,0x47,0x93,0xC8,0x63,0x48,0xA7,0x15,0x05,0xB1,0xEE, + + 0x03,0x00,0x49,0x95,0x9E,0x61,0xD8,0x42,0xB2,0x2D,0x19,0xF2,0xF5,0x0F,0xEB,0x07, + + 0x0C,0xD8,0xA6,0x26,0xE5,0x99,0x90,0x9C,0x48,0xE9,0x0D,0x75,0xB3,0xDB,0x88,0x80, + + 0xBE,0xD9,0x58,0x93,0xFA,0x66,0x50,0x92,0x70,0xA7,0xA6,0xB9,0x6C,0xC5,0x85,0x8B, + + 0x39,0x59,0x56,0xBA,0x73,0xF5,0x89,0xA6,0x00,0x16,0x11,0x99,0x67,0xEB,0xE5,0xD4, + + 0x56,0x65,0xAF,0xE1,0x7A,0x04,0xE1,0x91,0xD9,0x0A,0xA6,0x88,0xC5,0xBC,0x07,0xEA, + + 0x3B,0x2A,0xC0,0xC9,0x9A,0xE4,0x70,0x2C,0x4B,0x2A,0x02,0xEB,0x5A,0x9D,0x6A,0xB8, + + 0x55,0x06,0x35,0xFE,0xF0,0x2A,0x24,0x8C,0x8B,0x49,0x39,0x88,0x85,0x8A,0x53,0x10, + + 0xD8,0x47,0xB4,0x52,0x3B,0x4F,0x2D,0x9C,0x0A,0x4E,0x97,0x6A,0x59,0x64,0x6B,0xB9, + + 0xD1,0x86,0x4B,0x9D,0xBC,0x69,0x53,0x30,0x44,0xB6,0xB8,0x95,0x01,0x58,0x2B,0xA3, + + 0xF1,0xF0,0xA4,0xFD,0x3E,0xD8,0x50,0x8E,0x4C,0xA5,0x67,0xE8,0x2D,0x31,0x21,0x13, + + 0xF6,0x31,0x51,0xAA,0xFA,0x82,0x24,0x4D,0xA0,0x5C,0x1A,0x95,0x47,0x2F,0xFA,0x16, + + 0x8C,0xD5,0xD0,0x56,0xE2,0x6C,0x9D,0x1B,0x21,0x8F,0xED,0xA1,0xFB,0x8F,0x15,0xBB, + + 0x8F,0x72,0x13,0xD9,0xEC,0xAB,0x25,0x50,0xB4,0x8E,0xC4,0xC3,0x59,0xA3,0x64,0xC4, + + 0x2B,0x9B,0x06,0xC3,0xB2,0xFC,0xC2,0x32,0x2B,0xFD,0x22,0x55,0x98,0x60,0x17,0xF2, + + 0xDE,0x9D,0x26,0xD4,0x90,0xE7,0x9C,0x77,0x45,0x3D,0x30,0xC7,0x4B,0xD7,0x81,0x63, + + 0x22,0x16,0x89,0xE7,0x6E,0x34,0xC7,0x33,0xE0,0x58,0xEB,0x97,0x75,0x64,0xC9,0x14, + + 0xAF,0x99,0x85,0x8D,0x33,0xFF,0x8D,0x35,0xEF,0x29,0xCE,0x46,0x29,0xDE,0x9F,0x1A, + + 0xDF,0xBB,0xC5,0x40,0xFA,0xA5,0x11,0xFD,0xC3,0x8B,0x9D,0x52,0x74,0x2F,0x34,0xBB, + + 0xC8,0x1A,0x11,0x9E,0x48,0x2C,0x6A,0x96,0x98,0x39,0x4C,0x76,0xB6,0x8B,0x3D,0xF3, + + 0x59,0x83,0x97,0xD6,0xCA,0x95,0xE1,0x83,0x1D,0x4D,0xFD,0x61,0xB5,0x4F,0x7F,0xE8, + + 0x5C,0xBA,0x12,0x9D,0xB5,0x4E,0xE2,0x6A,0x80,0x53,0xE5,0x65,0x50,0xFC,0x02,0x0A, + + 0x2D,0x82,0xF4,0xEE,0xE6,0x3E,0x76,0xFE,0x90,0x1A,0xC7,0x3E,0x78,0xD7,0x44,0x9D, + + 0x85,0x16,0xC6,0x98,0xB6,0x78,0xA9,0xE7,0xCA,0x3C,0x76,0x36,0x5B,0xAF,0x7F,0xF6, + + 0x69,0x78,0x2D,0x2A,0x19,0xEC,0xD7,0x2E,0x6A,0x96,0xB4,0x5C,0x64,0x1A,0x6F,0x9B, + + 0x92,0x16,0xD4,0x9D,0x3B,0xF7,0xA0,0x5B,0x82,0x58,0xE0,0xF7,0x44,0x67,0x3E,0x70, + + 0xDD,0x5D,0x5C,0x0A,0x2A,0x7D,0x2F,0x96,0x0B,0x58,0x0A,0xD5,0xC9,0x31,0x56,0x11, + + 0xD6,0x16,0xD9,0x6D,0x04,0x20,0x48,0x9A,0x94,0x80,0xA7,0x9A,0xF6,0xAB,0x1E,0xD0, + + 0x0F,0xE7,0xE1,0xF5,0xD8,0x9A,0x36,0xCD,0x1D,0xA3,0x2C,0x1D,0xD5,0x8F,0xC9,0x31, + + 0xF3,0xE2,0x90,0xF7,0xC4,0x2B,0x8B,0x07,0x02,0xCF,0x97,0xE9,0x98,0x14,0x58,0x00, + + 0x14,0x7D,0xE2,0xC3,0x96,0x6C,0x52,0xF3,0xB1,0x46,0x8E,0x9E,0x3F,0xEF,0x72,0x13, + + 0xA6,0x87,0x17,0xF4,0x5D,0xA2,0xA8,0x41,0x72,0xAF,0x47,0x45,0xF6,0x42,0xD9,0x81, + + 0xA6,0x32,0x16,0x58,0x37,0xC7,0x31,0xE3,0xA4,0xAC,0x31,0x15,0xBC,0x01,0x09,0x7E, + + 0x24,0x7C,0x89,0xB0,0xB1,0xA5,0x5B,0x37,0xC6,0xF1,0x6B,0xC4,0x13,0xA1,0x00,0x6D, + + 0x7C,0xC6,0x20,0xBA,0x1C,0xA2,0x2F,0x4A,0x40,0xBD,0x1F,0x04,0xA9,0x63,0xAC,0x0C, + + 0x09,0x9B,0x6C,0x53,0x98,0xA1,0x42,0xF0,0x8E,0x52,0xFC,0x09,0xD8,0x63,0x2B,0xA5, + + 0x53,0xEA,0x4E,0xA5,0x37,0x21,0xB5,0x43,0xD6,0x7B,0x71,0x62,0xDB,0x3C,0x14,0xBC, + + 0x81,0x2D,0xED,0x10,0x96,0xF7,0x01,0x8C,0xB0,0x85,0x79,0x37,0x9B,0x4C,0xE6,0x8F, + + 0x02,0x02,0x82,0x10,0xBD,0x22,0x0C,0xD2,0xAE,0xE8,0xAA,0x92,0x94,0x2B,0x52,0x65, + + 0x4E,0x69,0x15,0xE3,0x1D,0x76,0x1A,0x44,0x8F,0xC9,0xC4,0xA5,0x36,0x7F,0xA7,0x89, + + 0x89,0xF0,0x24,0x3F,0xD8,0x55,0x71,0xEC,0x31,0x4C,0x50,0x3C,0xB2,0x1C,0x4B,0xBB, + + 0xDF,0x84,0xF4,0x0B,0xF6,0xA8,0x73,0x36,0x40,0x66,0x3B,0xCC,0x39,0x44,0xE9,0xCE, + + 0x4D,0xC3,0x22,0xB3,0x07,0x01,0xB2,0x27,0xD1,0x8D,0x3F,0x6B,0x53,0x36,0xAE,0x90, + + 0xB4,0x32,0xE2,0x35,0x60,0x8D,0xFF,0x7D,0x24,0xC2,0xBB,0xFA,0x21,0x80,0xC8,0x0C, + + 0x80,0x52,0x3B,0x88,0x5C,0xFE,0x55,0x73,0x4A,0x6A,0x73,0x4B,0xD8,0x47,0xC4,0x34, + + 0x52,0xCD,0x2B,0x23,0x27,0xAE,0xFB,0x5F,0x7A,0x8D,0x3B,0x92,0x54,0xAD,0x6E,0x97, + + 0xA6,0xD8,0xAC,0xE4,0x83,0xD5,0x30,0xD1,0x46,0xBC,0x06,0x14,0x64,0x35,0x7A,0x16, + + 0x27,0xD0,0x15,0xC8,0x33,0x73,0x02,0x12,0x63,0xD3,0x8F,0xBE,0x91,0x44,0xBD,0x61, + + 0x80,0x66,0x9D,0x68,0x4B,0x6E,0x53,0x4A,0xE7,0x1A,0xC3,0x8D,0xCA,0x37,0xED,0x17, + + 0xF5,0x6C,0xAD,0xD0,0x37,0x7F,0xF1,0x37,0xE7,0x31,0x62,0xB7,0x76,0xFD,0x9C,0x31, + + 0x5F,0xD5,0x24,0xAB,0x53,0xF8,0xE3,0x11,0xE2,0x79,0x63,0x0C,0x83,0xBB,0xE5,0x94, + + 0x37,0x8E,0xB7,0x55,0x40,0x93,0x44,0xD6,0x04,0xD1,0xC6,0x10,0x8A,0x54,0xDA,0xB3, + + 0xA2,0x9D,0xE4,0xE3,0x81,0x90,0xF0,0x5F,0x0D,0xB2,0xAF,0x02,0x8E,0xE9,0x6A,0xAC, + + 0x00,0x38,0x2D,0xB6,0xAB,0xF6,0x03,0x11,0xF5,0x9A,0xC5,0xC6,0x56,0x08,0xE6,0x67, + + 0x92,0x4C,0xD4,0xEC,0xE2,0xBE,0xC9,0xD9,0x4E,0x9A,0x56,0x91,0x58,0x64,0x6E,0x27, + + 0x2B,0x9B,0xA6,0x1B,0xDC,0x86,0x6E,0x41,0x6B,0x4A,0x13,0x4F,0xDE,0xB9,0xF5,0x94, + + 0xC2,0xD8,0x0D,0x28,0x1D,0x6C,0x77,0xCF,0xEA,0xD8,0x88,0xF5,0x61,0x07,0x7F,0x1F, + + 0xAF,0xA6,0xD6,0xA0,0x9F,0x24,0x3E,0x4B,0x0A,0x7A,0x02,0x3B,0xBE,0x06,0x79,0xB8, + + 0xC5,0xD7,0x4A,0xBD,0x61,0x1A,0x6C,0xE8,0xA4,0xD3,0xC9,0xDF,0xDF,0x5D,0xEE,0x38, + + 0x0F,0xDD,0x96,0xCD,0x60,0xE7,0x2C,0xB4,0x84,0xB9,0xA4,0xF4,0x07,0xBF,0x07,0x9D, + + 0xC2,0x15,0x2E,0x4D,0x7B,0x40,0xE7,0x18,0x6A,0x53,0xCF,0x14,0x89,0x7E,0x68,0x5F, + + 0xD0,0xA7,0x34,0x81,0xC0,0x47,0xEF,0x94,0x10,0xBC,0xB1,0x82,0x5E,0x60,0xC0,0xD1, + + 0x71,0x0D,0x58,0x80,0x44,0xA3,0x6B,0x5B,0x28,0x4D,0x92,0xD5,0xEF,0x22,0xD5,0x11, + + 0x81,0x41,0x08,0x52,0x0B,0x27,0xAE,0x16,0xAC,0x23,0x65,0x2C,0x73,0x7E,0xED,0x9B, + + 0x81,0x82,0x41,0xFC,0x51,0x28,0xEE,0x5B,0xC6,0x2B,0xCF,0xCA,0x9A,0xC9,0xD4,0x11, + + 0x74,0x89,0xA9,0xEC,0x30,0x22,0xE2,0x16,0x60,0x21,0xE6,0xC4,0x6E,0x31,0xF7,0x68, + + 0x04,0x6F,0xCC,0x64,0x02,0xF4,0x0D,0x61,0xFB,0x28,0x4F,0x84,0x46,0x7F,0x39,0x6F, + + 0x33,0x45,0x08,0x00,0xCC,0xF8,0xF7,0x1B,0x9E,0x07,0x07,0x75,0x55,0xBC,0x5A,0x50, + + 0xB2,0x02,0x7E,0x55,0x1F,0x44,0x37,0x4D,0xC1,0x54,0xB5,0x1B,0x35,0xD9,0x95,0x29, + + 0x56,0xBA,0x65,0xD1,0xD6,0x7B,0x83,0xA3,0x4E,0xBA,0x5A,0x51,0x56,0xE5,0x06,0x65, + + 0x29,0xA8,0xBC,0x1D,0x67,0x68,0xEF,0x66,0xBD,0x14,0xB1,0xD2,0x80,0x97,0x72,0x05, + + 0x51,0xD7,0x55,0xAC,0x96,0x2B,0x7C,0x5A,0xBE,0xB4,0x61,0x39,0x32,0x16,0xC3,0xD8, + + 0xF9,0x97,0x43,0x38,0x2B,0x6A,0xA4,0x11,0x35,0x29,0xCD,0xC2,0xE2,0x69,0xE6,0x3D, + + 0xE2,0x5A,0x3C,0x1C,0x14,0x27,0x0C,0xC2,0x3C,0xD8,0x99,0xCC,0x66,0x29,0xE9,0x37, + + 0x48,0x05,0xCA,0xD1,0x38,0x3C,0x34,0x51,0xBF,0xEA,0x7A,0xE0,0xDF,0x5E,0x2A,0x18, + + 0x25,0x80,0x40,0x93,0xEE,0x52,0x49,0x67,0x33,0x79,0x72,0xE4,0x5D,0x9C,0x03,0x59, + + 0xA9,0x66,0xD1,0x32,0xDA,0x6C,0x40,0xA9,0x8E,0x9A,0x7B,0xE5,0x5F,0x8C,0x33,0xDB, + + 0x8A,0x6A,0x27,0xD9,0xDE,0x73,0xCE,0x70,0x4B,0x02,0xB2,0x95,0x55,0xA0,0x52,0xAC, + + 0xD7,0xBB,0x50,0xDA,0x1E,0xEC,0x02,0xBC,0x8B,0x80,0x85,0xD7,0x67,0xF2,0x5B,0xBF, + + 0x59,0x44,0x2F,0x8E,0x5A,0x45,0xA3,0xEA,0x67,0x2A,0x7B,0x74,0x07,0xDC,0x56,0x81, + + 0x68,0xE3,0xEC,0x6E,0x5B,0x86,0x95,0x7D,0x41,0xCE,0x6A,0xD6,0xC0,0x1E,0x1E,0xAA, + + 0x9D,0x86,0x0D,0x53,0x23,0x30,0xFD,0x33,0x28,0x54,0x8C,0xA5,0x1A,0x42,0xFF,0x9F, + + 0x24,0x1F,0xE8,0x3E,0x16,0xAF,0x4C,0xF4,0x09,0x85,0x8D,0x6F,0x96,0x2D,0x16,0xD1, + + 0x80,0x13,0xC8,0x29,0x33,0xEE,0x85,0xDF,0x5C,0x57,0x23,0x87,0x12,0x81,0xAB,0x43, + + 0xA3,0x75,0x70,0x3C,0xB0,0x4D,0x55,0xF2,0x8B,0xA7,0xEB,0x94,0x92,0xA9,0x45,0xF6, + + 0x42,0x18,0xA5,0x51,0xBB,0x22,0x7B,0xCD,0x8D,0xF3,0xA5,0xC7,0x0C,0x6C,0x97,0x0C, + + 0x47,0x9B,0x65,0x77,0xD1,0x9F,0xA9,0x4A,0xB5,0xC5,0xA8,0x85,0xF5,0xDE,0x6F,0xA9, + + 0x51,0xB6,0xD4,0xC6,0x8E,0x46,0x47,0x31,0xCC,0xC8,0x42,0x8D,0x41,0x66,0x39,0xB4, + + 0xAE,0xEB,0x89,0x3F,0x9B,0xFA,0xB8,0x09,0xB0,0xAA,0x5E,0x6D,0xC0,0xF1,0x18,0xE7, + + 0xC3,0x8A,0xAF,0x8D,0x0D,0xEC,0xE0,0x19,0xA9,0xBB,0x27,0xDD,0xA3,0xCE,0x99,0x65, + + 0x2C,0xED,0x9F,0x4F,0x5D,0x24,0xC1,0x40,0x15,0x4A,0xF9,0x9F,0xD9,0x33,0x14,0xD9, + + 0x88,0x5C,0x31,0xAC,0x7E,0x36,0xEE,0x04,0xD7,0xA6,0xBE,0xBD,0x8E,0x70,0xBE,0x4B, + + 0xAB,0x7B,0xA7,0xE2,0xB8,0x33,0x8C,0xE6,0xEC,0xF5,0xD6,0x92,0x5D,0x3F,0x11,0xF4, + + 0xA3,0x94,0x9F,0x5F,0x07,0x7D,0x1F,0xD6,0x97,0x0A,0xD5,0xFC,0xFD,0xB7,0x04,0xF3, + + 0x38,0x8C,0xC8,0x82,0x35,0x2A,0x4B,0x59,0x2C,0xCD,0xEE,0xC9,0x1E,0x4B,0x3F,0x78, + + 0xEC,0x28,0x4F,0xE7,0xCF,0xB1,0x8E,0xCC,0xE9,0xCC,0xC7,0xC7,0xEA,0x73,0x7F,0x3B, + + 0x66,0x29,0x9B,0xF4,0x42,0x0D,0xCE,0x59,0xC2,0xAB,0x4C,0x3B,0xF6,0xFD,0x3B,0xED, + + 0x6E,0x72,0xD7,0x8D,0x7E,0x66,0xC6,0xF4,0x5B,0x1E,0xE7,0xD8,0xD9,0x48,0x18,0xBF, + + 0x52,0x80,0xE8,0x5B,0xEB,0x0F,0x4E,0x4F,0xB5,0x69,0xF1,0x90,0x65,0x13,0x50,0x82, + + 0xD8,0x8A,0x62,0x99,0x9A,0xD8,0xE8,0xD2,0x53,0xFD,0x55,0x90,0x64,0x23,0x76,0xC1, + + 0x83,0xEC,0x99,0x42,0x76,0xE4,0x62,0x9C,0x37,0x19,0x09,0x6F,0x71,0xFD,0x09,0x17, + + 0xA8,0x0C,0x29,0x03,0x02,0xAF,0x29,0x73,0x82,0xC1,0x03,0x9F,0x49,0x28,0x18,0xF9, + + 0x78,0x25,0xDC,0x39,0x77,0x0D,0xD3,0x6A,0x08,0x14,0x4F,0x8E,0x7E,0xF7,0x62,0xB2, + + 0xE4,0xF8,0xCB,0x65,0xC8,0x34,0x95,0x49,0x35,0x68,0x45,0xFC,0xDE,0xAF,0xB0,0x4C, + + 0x46,0x03,0x22,0xFC,0x7C,0xE6,0x8A,0x75,0x11,0xB7,0xCC,0x11,0x2B,0x1F,0x39,0x0B, + + 0x72,0x06,0x00,0xF7,0xD9,0xC7,0x3C,0xC8,0x95,0xF6,0x0C,0x1B,0x3C,0x44,0x66,0xA8, + + 0x8C,0xC4,0xE3,0xCA,0x5B,0x9A,0x5C,0xC8,0xEF,0x73,0xAB,0xDD,0x3D,0xAC,0xE2,0x33, + + 0xAC,0xE8,0x68,0xDA,0x5A,0x9B,0xC0,0x89,0x3B,0xDD,0x02,0x0C,0x6C,0xAB,0x78,0x39, + + 0x2D,0x88,0xB9,0x4B,0x3D,0xAA,0x6B,0xD6,0xFD,0x0A,0x0B,0x67,0xBD,0xF4,0xAB,0xB3, + + 0x28,0x73,0xB1,0x5E,0x3C,0x7F,0xC1,0x88,0xB3,0x32,0x01,0x8E,0x83,0xAC,0x5A,0xBA, + + 0x22,0x61,0x11,0x39,0xE9,0xCD,0x9F,0xD8,0xB1,0x4F,0xA1,0x99,0x44,0xB2,0xB9,0xEC, + + 0x4F,0xC0,0xC4,0x54,0xB3,0x44,0x7C,0xC8,0xC2,0xD7,0x21,0xD0,0xAB,0xE3,0xC7,0xB2, + + 0x98,0x3D,0x0A,0xD9,0x01,0x6E,0x9A,0xDD,0x39,0xC9,0xA8,0x40,0x7B,0xE9,0x53,0xBF, + + 0xED,0x42,0x3D,0x50,0xB7,0x46,0x6D,0xBA,0x46,0xC8,0x05,0x29,0xF4,0x63,0x9B,0x31, + + 0x56,0x3B,0xDC,0x38,0xCB,0x6D,0xE7,0x1B,0x2A,0x96,0x8D,0x64,0xE7,0x1F,0x32,0x30, + + 0x7B,0x10,0xD4,0xAB,0x14,0x94,0xA3,0x72,0xDB,0x24,0xCE,0x09,0x83,0xFA,0x72,0x2B, + + 0x72,0x5B,0x1A,0x45,0x0A,0x34,0xAB,0x5C,0x91,0xA3,0xCD,0x16,0x55,0xA9,0x34,0xD1, + + 0xC3,0x16,0x8D,0xF8,0xBD,0xBA,0xCC,0xCF,0x9C,0xC1,0x3D,0x1E,0x51,0xF1,0x06,0xC9, + + 0x08,0x6C,0xA2,0xC9,0xBD,0xB6,0x72,0xD5,0xCB,0xDE,0x81,0x87,0x80,0xE9,0x93,0xD1, + + 0x2B,0xF0,0xF0,0x71,0x07,0xBA,0x9E,0xCC,0x9A,0xC9,0xAF,0x3A,0x02,0x93,0x34,0x90, + + 0xD4,0xA6,0x04,0x71,0x60,0x45,0x67,0xB6,0x4F,0xC1,0x77,0xC2,0x65,0x0F,0x15,0xC0, + + 0x50,0x27,0x54,0x9A,0xD6,0xC4,0x85,0x44,0xEB,0xA0,0xB9,0x96,0x7D,0xF5,0x1E,0x39, + + 0x1A,0x9F,0x19,0x7C,0x33,0x8E,0x2D,0xE5,0x68,0xC7,0xDF,0x1B,0xDF,0x7B,0xD6,0x25, + + 0xA2,0x30,0x15,0xA1,0x4A,0x42,0xC4,0x05,0x8E,0x02,0x73,0x9C,0x5C,0x9D,0x60,0xC7, + + 0x9D,0xAC,0x87,0xE0,0xB0,0xB3,0x05,0xCF,0xDD,0xAA,0xB7,0xFB,0x7C,0xDA,0xFE,0x44, + + 0x44,0xCE,0x8F,0xF0,0xF5,0xB2,0xC4,0xBC,0x31,0xD5,0x3F,0x03,0x5B,0xBE,0x3A,0xE8, + + 0xB0,0x4F,0xE0,0x40,0x2D,0x2F,0x70,0x76,0x41,0x5B,0xAA,0x63,0xCE,0x1F,0x51,0xD9, + + 0xA6,0x11,0x77,0x53,0xD3,0x11,0x10,0x34,0xCE,0x00,0xFD,0xDF,0xB0,0x77,0x7F,0x29, + + 0x6B,0x33,0xE1,0x07,0x58,0x2F,0x0A,0xA5,0xC6,0x33,0xAB,0xAB,0x67,0xEF,0xF1,0xEE, + + 0x87,0x5A,0x81,0x01,0x6C,0x4D,0xB5,0x15,0x4C,0x02,0xE0,0x37,0xDD,0x21,0x26,0x24, + + 0x01,0x44,0xC0,0x46,0x52,0x99,0x37,0x9E,0xC2,0xC4,0xC8,0x74,0xAD,0x08,0x37,0xA8, + + 0x03,0xD9,0x0C,0xD1,0x1D,0xAF,0xE3,0x90,0x03,0xDE,0xDA,0x8A,0xAE,0x09,0xE6,0x25, + + 0x6B,0xAF,0xD3,0xBF,0x61,0xBB,0xFD,0x1A,0x1C,0x99,0xEF,0x00,0x18,0x2F,0xF0,0x0F, + + 0x5E,0x7A,0x0E,0xAE,0xB1,0x06,0x43,0x73,0xD5,0x9A,0xBB,0x7D,0xD0,0xC5,0x70,0x77, + + 0x0E,0x3A,0xE0,0xE6,0x19,0xE8,0x3F,0x57,0xD1,0xC3,0x54,0x96,0x7A,0xC6,0x32,0xE3, + + 0x86,0xAF,0x1D,0xFE,0x3D,0x2A,0xD3,0x4A,0xBA,0xE6,0x65,0x4E,0x8F,0xB6,0x84,0x6B, + + 0x7B,0x6F,0xE3,0x49,0xA5,0x27,0xEC,0xD6,0x3F,0xFF,0x94,0x5F,0x55,0x9C,0x1E,0x63, + + 0x43,0x1A,0xCF,0x3C,0xEE,0x87,0xCB,0x43,0x44,0xED,0xA1,0xA6,0x22,0xE6,0xED,0xCC, + + 0x4C,0x0C,0x02,0x5C,0xE9,0x91,0x48,0x69,0x6B,0x2C,0x69,0x2B,0x98,0x7C,0xA6,0xCB, + + 0x22,0x05,0x66,0xC7,0x1A,0x5D,0xD0,0x7A,0x1F,0x90,0xA2,0x4E,0xA4,0x6B,0xEC,0x32, + + 0x57,0xF3,0xDB,0x4C,0xC0,0xD3,0xA0,0x74,0x8A,0xD5,0x9B,0x70,0x27,0xBA,0xCF,0x46, + + 0xA2,0x4E,0x74,0x9A,0x49,0x25,0x41,0x7D,0xEA,0x2F,0xFB,0x77,0x7A,0xB0,0xFC,0x88, + + 0xD9,0x5F,0x1B,0xC3,0xFA,0x5B,0xE9,0xE7,0xBE,0x0D,0x33,0xE8,0x99,0x98,0x9C,0x8F, + + 0x03,0xBC,0x53,0x2F,0x37,0xFA,0xA5,0xEE,0xBC,0x2C,0xC2,0x56,0x75,0xDC,0x82,0x3E, + + 0xF4,0xDE,0xCD,0x90,0xC7,0x9E,0xF6,0x61,0xF8,0x8E,0x55,0x25,0xA4,0x8D,0x5D,0xE1, + + 0xA9,0x18,0xBF,0x35,0xE9,0xE3,0xB2,0xEA,0x10,0xEF,0x94,0x87,0xF7,0x31,0x9B,0x82, + + 0x24,0x4C,0x92,0x04,0x2C,0x41,0x0C,0x02,0x82,0xCB,0x5C,0xE6,0xD3,0xFE,0x15,0x67, + + 0x25,0x07,0x9D,0xC7,0x09,0x71,0x61,0x90,0x47,0xF8,0x96,0x0A,0xD0,0x73,0x7E,0x45, + + 0xD6,0x6A,0x17,0xEB,0xDC,0x03,0xE6,0x9C,0x5A,0x5D,0x0A,0x07,0x5E,0x7B,0x38,0x55, + + 0xCA,0xA3,0x93,0xD2,0xB3,0x75,0xD2,0xC9,0x08,0x13,0xD5,0x70,0x52,0xFD,0x41,0x0C, + + 0x26,0x7C,0xB8,0xF1,0xB5,0x9E,0x15,0xAA,0xFD,0xA4,0xB9,0x28,0x7A,0x7B,0x53,0x1C, + + 0x68,0xC3,0xA0,0x61,0xB6,0x7B,0xA1,0xE3,0x90,0xD3,0xB1,0xC3,0xA0,0xE5,0x59,0x3D, + + 0xA0,0x6F,0xDD,0x4D,0xF4,0xE1,0x28,0xF6,0xCC,0xE6,0xE8,0x29,0xC7,0x0D,0x47,0x9D, + + 0x24,0x5A,0x55,0xAF,0x9D,0x77,0x9B,0x48,0x4A,0x59,0x24,0xE7,0x0D,0x43,0x7C,0x20, + + 0xB7,0x53,0x80,0x8F,0xC5,0x7E,0x6C,0x59,0x3F,0xF3,0x21,0x0E,0xDB,0xF6,0x8F,0xD0, + + 0xCC,0x06,0xC8,0x70,0x73,0x0E,0x46,0x7D,0xB6,0x20,0x23,0x1E,0xDA,0xF7,0x1E,0x4E, + + 0x4D,0x52,0xDF,0xCB,0xB9,0x7E,0xF3,0x8B,0x55,0xD1,0x38,0x0F,0x5B,0xF4,0xB8,0x3F, + + 0xBB,0x50,0xEF,0x03,0x52,0x6C,0xF0,0x09,0x10,0x8E,0xA0,0x1F,0x79,0x57,0x28,0x87, + + 0x37,0xBA,0x7F,0xBD,0x27,0x54,0xF9,0xE2,0x66,0x4B,0xD3,0xDC,0x70,0x14,0x16,0x3B, + + 0xA2,0x15,0x3E,0x92,0x32,0x14,0x84,0x50,0x7C,0xCA,0x78,0xB6,0x5A,0xA3,0x1F,0x2B, + + 0x23,0x92,0x1B,0x37,0x6B,0xE4,0x24,0x1B,0xC2,0x48,0x3F,0x3C,0xC5,0x1F,0x38,0x08, + + 0xBD,0x98,0xF9,0x0E,0xE9,0x78,0xAD,0x1C,0xE3,0x63,0xF9,0xA2,0x2A,0x48,0xDF,0x05, + + 0xCC,0x8D,0x62,0x44,0x06,0x59,0x83,0x7E,0x06,0x5F,0x4F,0x21,0x80,0xEC,0xF8,0xBA, + + 0x9A,0xC8,0x1B,0x46,0xDE,0x59,0x03,0x2D,0xB6,0x39,0x68,0xF4,0x52,0x8F,0x29,0x47, + + 0x5A,0x8F,0xFE,0x27,0xD6,0x76,0xB2,0x61,0xC2,0x4B,0x75,0x22,0x81,0x66,0x71,0xEA, + + 0x08,0x01,0x52,0x08,0xB3,0x53,0xE9,0x6D,0x92,0x33,0xC1,0xA7,0x20,0xE8,0x13,0x75, + + 0xAB,0x8C,0x8C,0xF3,0x93,0xB3,0xE2,0xDA,0x4E,0xB9,0xCA,0x2A,0xA5,0x6D,0x92,0x81, + + 0x1F,0xC4,0xB8,0xE1,0x9B,0x48,0x42,0xBE,0x06,0x08,0xFA,0x9E,0xA6,0xAB,0xA4,0x4C, + + 0xBF,0xD0,0x04,0x79,0xFD,0x8A,0xF3,0xFB,0x61,0x57,0x73,0xAB,0x1D,0xA8,0x48,0xDB, + + 0xC5,0x16,0x2B,0xFB,0x65,0x06,0x03,0xD5,0x61,0xC6,0x66,0x90,0x09,0xD3,0xE4,0x0A, + + 0x4E,0xC1,0xB4,0x41,0x78,0xF8,0xFD,0x4A,0x22,0x4C,0x92,0x2A,0x7F,0x61,0x4E,0xA7, + + 0x8E,0xCF,0x94,0xF2,0xF4,0x9E,0xD6,0x92,0xC7,0x00,0x72,0xB2,0xFC,0xEB,0x21,0xAD, + + 0xAA,0x55,0x35,0x44,0xAC,0x23,0x4D,0x13,0x4E,0x2E,0x8B,0x48,0x7D,0xE8,0x36,0x3B, + + 0xF8,0xAB,0xD5,0xF6,0x12,0x09,0x1D,0x03,0x8D,0x6B,0x73,0xAB,0x7C,0xE9,0x44,0xD4, + + 0x8A,0x8B,0xCA,0xEC,0x16,0x5D,0x06,0x5D,0xE6,0x98,0x03,0xEA,0x72,0x49,0x24,0x96, + + 0xAA,0xD0,0x00,0x19,0x8A,0x3C,0x04,0x62,0xB8,0xAE,0x11,0xF8,0x80,0xAD,0x6A,0x07, + + 0xA2,0xE3,0x22,0x21,0x7F,0x3F,0x15,0xC1,0x53,0xB7,0xAA,0x83,0x69,0x0F,0x81,0xB7, + + 0x4C,0x90,0x4C,0x79,0x54,0x85,0x84,0xE2,0x46,0x0C,0x83,0xC6,0x0E,0x68,0x3D,0x54, + + 0xC1,0xD8,0xFC,0xD3,0x5F,0x17,0xB4,0x12,0x77,0xD9,0x50,0x84,0x35,0x09,0x35,0x47, + + 0x80,0xD4,0x7C,0x2B,0x37,0xF4,0x39,0xEA,0x33,0xD1,0x53,0xAD,0xC2,0x49,0x26,0x32, + + 0xFA,0xD5,0xFD,0xC2,0xC9,0x96,0x0A,0x67,0x91,0xB5,0x8D,0xC3,0x2B,0x8B,0x92,0x23, + + 0xA4,0x36,0x8D,0xD5,0x27,0xBA,0x90,0xD7,0x06,0x08,0xD6,0x88,0x26,0xB5,0x7E,0x12, + + 0x2A,0xFA,0xDB,0xFC,0xAE,0xA7,0x8B,0xF7,0x93,0xDE,0xB6,0x2A,0x3A,0xF8,0x73,0x1E, + + 0x6C,0x43,0x5E,0x4D,0x3B,0x92,0x8A,0xC5,0xCE,0x64,0xB6,0xAE,0xA1,0x90,0x83,0x78, + + 0xCA,0xEF,0x9C,0x2F,0x51,0x58,0xBF,0xA9,0x19,0xD5,0x08,0x68,0x36,0x93,0x67,0x9F, + + 0x20,0xDA,0xC9,0x1B,0xF3,0x2C,0xFB,0x3E,0xAE,0x28,0x9F,0xB7,0x00,0x97,0xB1,0x39, + + 0xAA,0x11,0xFE,0x7A,0x5D,0xD7,0x2C,0xB0,0x1A,0x9E,0xBC,0x81,0xAB,0x90,0x56,0x21, + + 0xD2,0xF3,0x79,0x5A,0x4C,0x4D,0x66,0xC3,0xE2,0x5B,0x83,0x01,0x1C,0xD0,0x35,0x68, + + 0x45,0xFA,0x70,0x25,0x1B,0xB7,0xEE,0x18,0x4F,0x61,0x33,0xB1,0xF0,0xE0,0x08,0x9B, + + 0xE7,0x62,0x43,0xAC,0x96,0x19,0x7D,0x3B,0xAF,0x44,0xE8,0x0C,0x7B,0x72,0x52,0x57, + + 0xEB,0x64,0x40,0xFD,0xE9,0xDD,0x7B,0xDC,0xC0,0xBB,0xC6,0x5A,0x32,0x17,0x83,0x94, + + 0x42,0x4E,0xF6,0x12,0xF0,0xA2,0x58,0xDD,0xFB,0x03,0x0F,0xC7,0xD5,0xEA,0xBE,0xE3, + + 0x86,0xA8,0x97,0x67,0xF0,0x05,0x9F,0xD9,0x7C,0xF9,0xEF,0x95,0xB3,0x6E,0xA2,0x56, + + 0x8F,0xDF,0xD3,0xE6,0x1D,0xAE,0xC0,0x31,0xC7,0x03,0xBD,0x89,0x2D,0x27,0xEC,0xC5, + + 0xF5,0xF9,0x3B,0x3F,0xED,0x65,0x6F,0x5D,0xA9,0x00,0x2B,0x17,0x59,0xE8,0xCC,0xAD, + + 0xFC,0x44,0x64,0x16,0x90,0x67,0xFC,0x0E,0xE0,0xCE,0xA7,0x67,0x5C,0x5F,0x85,0xBE, + + 0x77,0x0F,0x2D,0xC5,0x6E,0x06,0x6B,0xD1,0x0F,0xE9,0x05,0xB5,0x73,0xBE,0xD9,0xD3, + + 0x03,0xFC,0xD1,0xED,0x43,0xF1,0xE3,0x4C,0x28,0x03,0x6C,0xB1,0xD7,0x3C,0xC6,0xC2, + + 0xB3,0xF7,0x66,0xF2,0x7B,0x08,0x96,0x0C,0x40,0x68,0x69,0xDD,0x2A,0x68,0xAA,0x6A, + + 0x6B,0xE5,0xB5,0x5B,0xD3,0x22,0x1A,0x38,0xB6,0x49,0x4E,0x12,0x7F,0xDC,0x59,0x7F, + + 0xF0,0xA5,0x67,0xF2,0x79,0x95,0x17,0xD6,0x37,0xB5,0xB5,0x5C,0xA2,0x1F,0x75,0x1E, + + 0x74,0x04,0xC3,0x88,0x9F,0xA0,0xE4,0xC6,0x3E,0xB4,0xCD,0x07,0xBB,0x2B,0x7A,0xE8, + + 0xE7,0x7D,0xE5,0xD3,0x71,0x9A,0x68,0xD8,0x87,0xE3,0x59,0xAB,0x58,0x99,0x52,0x4C, + + 0xE2,0xF6,0xB4,0x6F,0x70,0xA8,0xA2,0x45,0xA0,0x09,0x84,0xEA,0x5B,0xD9,0x7D,0xB4, + + 0xEB,0x5B,0xC2,0xC9,0xBB,0xC6,0xF7,0x0B,0x3D,0xC5,0xD7,0x2A,0x5B,0x60,0x51,0xF6, + + 0xA8,0xFD,0x4B,0x1B,0x09,0x8B,0x61,0xC9,0x06,0xE0,0x3D,0x8C,0x11,0x1F,0x3E,0x3C, + + 0xCB,0x74,0xFB,0xF7,0x55,0x53,0x07,0xA0,0x60,0x70,0x96,0xE2,0xE2,0xD4,0x72,0x96, + + 0xC0,0x92,0xF2,0x92,0x52,0x15,0x78,0xAF,0x59,0xDA,0xBB,0x45,0xED,0xB1,0x3F,0x06, + + 0x53,0x53,0xFE,0x75,0x31,0x83,0x0C,0xA1,0xE0,0x92,0x43,0xBF,0x38,0x61,0x23,0x62, + + 0x2D,0x52,0xDE,0xAA,0x35,0xEC,0xDC,0x35,0xA2,0x1E,0x75,0x3F,0xD3,0xA5,0x1D,0xE9, + + 0x87,0x78,0x92,0x40,0x13,0xCE,0x2B,0x64,0x15,0x37,0x94,0xDB,0x7A,0x18,0x34,0x2D, + + 0x2B,0xE8,0xFA,0x25,0xD3,0x75,0xFC,0x82,0x55,0xFA,0x96,0x16,0x32,0x65,0x81,0x43, + + 0x16,0x9D,0x05,0xA5,0xAB,0x99,0xE8,0xD0,0x9F,0xF9,0xFD,0x27,0x0B,0xFA,0xE1,0x42, + + 0xCA,0x1D,0x65,0x5F,0x7B,0xA4,0xF9,0x93,0x1C,0xEC,0xA3,0x66,0x98,0xC1,0x78,0x8E, + + 0xC9,0x9B,0xB9,0xBC,0xAA,0x87,0x2E,0x5B,0x5C,0x1A,0xE9,0x51,0x78,0x76,0x76,0xBC, + + 0xC8,0xB6,0x53,0x04,0x3F,0x62,0xA5,0xFF,0xA3,0x08,0x45,0xBC,0x1A,0x04,0xB6,0x7A, + + 0x24,0x87,0xBC,0x3D,0x24,0xA5,0x4F,0x2B,0x09,0x85,0xFF,0x2B,0x04,0x3B,0x9D,0x61, + + 0x15,0xA0,0x8F,0x75,0x0D,0x76,0x57,0x98,0x8A,0x59,0x08,0x42,0x0C,0xF8,0x52,0x38, + + 0x1A,0xED,0xE5,0xDF,0x40,0x88,0xD6,0xEC,0x1D,0x3F,0xD7,0xF2,0x9E,0x88,0x5B,0xE5, + + 0x98,0x50,0xAF,0x7C,0xED,0x82,0x00,0x32,0xFE,0xA0,0x80,0xCE,0x3B,0x3F,0x3E,0xAF, + + 0x5D,0x95,0x99,0xC2,0xB6,0x70,0xFA,0x96,0x77,0x1C,0x61,0x1C,0x12,0x3A,0xE3,0x47, + + 0x5C,0x5A,0x10,0xDD,0x38,0x31,0xF6,0x97,0x94,0x5F,0xC7,0x70,0x90,0x0B,0xB0,0xF2, + + 0xEE,0x21,0xF3,0xF6,0x34,0x11,0x34,0x22,0xBB,0x3F,0x6E,0x96,0xDB,0xE2,0x7A,0x44, + + 0xEE,0xE5,0xF2,0xAE,0xFC,0xAA,0xC7,0xCD,0x45,0x3E,0xD0,0xB2,0x74,0x6B,0x73,0xF0, + + 0x00,0x0F,0x61,0xF7,0x97,0xE0,0x31,0x22,0xC4,0x3D,0x06,0x26,0x59,0xEE,0x11,0xEC, + + 0xA1,0x56,0xBE,0x27,0xB5,0xE1,0xC6,0x33,0x3A,0xC3,0x16,0x4C,0x08,0x48,0x00,0x40, + + 0x5F,0x89,0xB1,0x5C,0xDE,0x97,0xD4,0x1C,0xE5,0x85,0xCA,0x95,0x94,0x30,0xAF,0xF2, + + 0xA6,0xB5,0x00,0xDC,0x35,0x73,0xC3,0x3C,0xAE,0x3C,0xCE,0x73,0x3C,0x60,0xA5,0xC6, + + 0x88,0x0C,0xC6,0xB6,0x0A,0xC6,0xDC,0x1C,0x5B,0x9A,0x43,0x78,0x3A,0x4D,0x30,0xB3, + + 0x81,0xE5,0x96,0xAA,0x97,0xA9,0x61,0xE7,0xA7,0x38,0xFD,0xF3,0xF6,0x95,0x74,0x1B, + + 0x66,0x03,0xF8,0xCE,0x44,0xAC,0x32,0xDA,0xCA,0x43,0x51,0x2E,0x80,0x1E,0x10,0xAA, + + 0xC4,0xC8,0x7A,0x3E,0x31,0x58,0x88,0x3A,0x4D,0xC9,0x7A,0x5E,0x10,0x42,0x54,0x37, + + 0x67,0xCE,0x1F,0x2B,0xBE,0x2B,0xD1,0xDB,0x16,0x41,0xED,0xB4,0xC0,0x67,0x94,0x22, + + 0x66,0xCF,0x95,0x6A,0xF5,0xA6,0xBD,0x3B,0xCD,0xCB,0x8D,0x3D,0xB6,0x6E,0x20,0x8A, + + 0x5E,0x88,0x8A,0xC8,0xE2,0xED,0x8D,0x18,0x2C,0x33,0xAC,0x61,0x4C,0xA2,0xAE,0xCA, + + 0x0C,0xED,0x46,0x1C,0x9C,0xEF,0xDA,0x14,0x39,0x62,0x25,0x7E,0xDC,0xE3,0xE5,0xA3, + + 0xA9,0xCC,0x0F,0xCF,0x62,0x8E,0x88,0x04,0xB2,0x61,0x92,0xCF,0x08,0x51,0x35,0xA6, + + 0x70,0xCE,0xF3,0xE7,0x99,0xA6,0xDF,0x19,0x30,0x42,0x1B,0x40,0xFB,0x81,0x64,0x6F, + + 0x20,0x6B,0xD6,0x82,0x38,0xFE,0xA7,0x26,0x27,0xBD,0x1E,0x58,0xA8,0xB4,0x28,0xB8, + + 0x52,0xE4,0x14,0x86,0x92,0xF0,0xF8,0x42,0x5D,0x60,0x78,0x4D,0xD9,0xFC,0x25,0x7F, + + 0x05,0xD0,0x31,0xA3,0x87,0xE7,0x0D,0x58,0x99,0xDB,0xCB,0xA0,0x55,0x9E,0xF2,0x13, + + 0xDE,0xA4,0x0E,0x33,0x69,0xD0,0xFD,0x63,0x48,0x58,0xAA,0x4C,0x14,0x90,0xDA,0x47, + + 0xDD,0x1F,0x04,0xF9,0x12,0xB2,0x8F,0x42,0x3E,0x26,0xB7,0x20,0xE4,0xF7,0x56,0x62, + + 0x93,0x3A,0x94,0x54,0xEA,0x3A,0x83,0x76,0x0C,0xCB,0x94,0x34,0xF1,0x00,0x3F,0xFE, + + 0x4D,0xD2,0x4A,0x25,0xD5,0x96,0x2C,0x6A,0x43,0xA7,0x16,0x1C,0x89,0xF6,0xC9,0xA8, + + 0x04,0x67,0xB7,0x0D,0x14,0xB1,0x52,0x8C,0x3E,0x6A,0x6D,0x73,0x84,0xA1,0xE6,0x73, + + 0xE4,0x65,0x98,0xFF,0xE4,0xB7,0xC9,0x48,0x0F,0x8A,0xCD,0xB1,0xF8,0x2C,0x82,0x08, + + 0x29,0x93,0x90,0x7C,0x13,0x66,0x82,0xD8,0x2F,0xD6,0x12,0x3B,0x0A,0xF9,0x3F,0x86, + + 0x45,0x5B,0x95,0xBE,0x1D,0x45,0x21,0x82,0xEA,0x50,0x13,0x88,0x50,0xF7,0x52,0x8A, + + 0xC9,0x9F,0x10,0xAF,0xBF,0x14,0xBC,0xB9,0x76,0x9A,0xA8,0x40,0x08,0x68,0x46,0x01, + + 0x0A,0x17,0x49,0x38,0xD7,0x36,0x8D,0x84,0x85,0x98,0xC8,0x93,0x5D,0x8C,0x54,0x6A, + + 0xE2,0x32,0x96,0xB1,0xFE,0xDE,0xDE,0x05,0xE0,0x6B,0xFE,0x7A,0x08,0x21,0x5B,0xF6, + + 0x45,0xDA,0x9F,0xE8,0x57,0x14,0x29,0xEC,0xEE,0x73,0xB1,0x92,0xF8,0xE5,0xCB,0xB9, + + 0x58,0x14,0x3B,0x0F,0x3E,0x07,0x77,0xEA,0x06,0x9B,0x3F,0x8B,0xFB,0xBE,0x60,0xA0, + + 0x5E,0x0D,0x88,0xA1,0xB3,0x26,0x85,0xA4,0x03,0x2D,0xC3,0x3B,0x2A,0x95,0x58,0x89, + + 0x62,0x21,0xF7,0xF6,0x35,0xAC,0x58,0x0F,0x49,0x2D,0x46,0x84,0x26,0x65,0x0B,0x05, + + 0x23,0x04,0x8D,0x03,0x31,0xA8,0xAE,0xC3,0xE4,0x2C,0x04,0x1B,0xE4,0x22,0x71,0x93, + + 0xA3,0xF1,0xF7,0x3D,0x78,0x32,0x31,0xF3,0xC7,0x4A,0x46,0x60,0xAA,0x54,0xE3,0xE0, + + 0xDE,0x27,0x33,0x7F,0xE8,0xB1,0x62,0x5E,0xE1,0x5F,0x09,0xCB,0x69,0x74,0xF5,0x30, + + 0x1D,0x77,0x7F,0x70,0xFA,0x2E,0xF3,0xF5,0xD0,0x7A,0x17,0xF6,0x71,0xA7,0x62,0xE5, + + 0x5A,0x65,0xB2,0x87,0x11,0x60,0xD5,0x3F,0x4F,0x24,0x88,0x65,0xD4,0x4D,0x77,0xF4, + + 0xBF,0xA8,0x34,0x2E,0xAF,0x58,0xA6,0x81,0x32,0xF6,0xE3,0x97,0x7F,0x9A,0x3A,0x58, + + 0x00,0x07,0x2E,0x9F,0x47,0x22,0x41,0xDB,0xAC,0xE7,0x52,0xD5,0x90,0x95,0x72,0x9A, + + 0x0C,0xC3,0x9B,0xF6,0xBC,0x20,0xDA,0x58,0x70,0x4A,0x22,0xC3,0x6A,0x6D,0x63,0xA9, + + 0xDE,0x87,0xC7,0xFD,0xB7,0x8B,0xA5,0xD8,0x20,0x5A,0x8B,0xB8,0xEB,0xEF,0x51,0x1C, + + 0x2A,0x49,0x8D,0x22,0xA9,0x69,0xF8,0xC2,0x58,0x36,0x23,0x00,0x7E,0x26,0xE2,0x3A, + + 0x60,0x4F,0xF8,0xE9,0xAD,0xD1,0x92,0x0C,0x99,0xB1,0xAA,0x48,0x2D,0x4C,0x74,0xF9, + + 0x37,0xA2,0xEA,0xB6,0x78,0x29,0x35,0x5C,0x3C,0x69,0x42,0x16,0xFA,0xD2,0x3D,0x4E, + + 0x2B,0xF1,0x6F,0xC2,0x2F,0xA7,0x2B,0x70,0x30,0x88,0x89,0x02,0xAE,0x2C,0xEB,0x2B, + + 0xE1,0x0C,0xAA,0x1D,0x97,0xDA,0x84,0x3B,0xCD,0x17,0x64,0x3A,0x01,0x67,0xC4,0x70, + + 0x8F,0xA1,0xDA,0x46,0x22,0x72,0x2E,0x1C,0x8B,0x96,0x3D,0x20,0x3F,0x0D,0x77,0xD7, + + 0xFF,0x1B,0x81,0x16,0x30,0x56,0x7E,0xA0,0x80,0x13,0x27,0x3A,0x86,0x1D,0xC5,0xE5, + + 0x23,0x1F,0x85,0x01,0xB6,0xC9,0x4B,0x32,0xE4,0xF9,0x39,0xDA,0x6E,0x8D,0x8F,0xCE, + + 0x50,0xEF,0xB7,0x77,0x33,0x1B,0x05,0x89,0xE7,0x5A,0x22,0x2E,0x04,0xE5,0xD4,0xA2, + + 0xD1,0x71,0x99,0x68,0xCE,0xAF,0x6E,0x1E,0x01,0xDE,0xDC,0xF1,0x8F,0xC2,0x77,0xA0, + + 0xA3,0x93,0xD4,0xD1,0x4C,0x15,0x16,0xED,0x42,0x17,0x4C,0xB3,0x8A,0x83,0x7D,0x06, + + 0x60,0x06,0x05,0x20,0xCE,0xCB,0xC6,0x0B,0x47,0xA9,0x2A,0x9B,0x20,0xA9,0x6D,0xF5, + + 0x21,0xEB,0x5D,0x28,0xB3,0x76,0x9A,0x8E,0xA0,0xA7,0x22,0x8F,0x25,0xA8,0xAD,0xF3, + + 0xFD,0xA8,0x22,0xEE,0x79,0x18,0x52,0x59,0xF4,0x18,0x9E,0xA9,0xF7,0x7C,0xA1,0xBC, + + 0xF5,0x68,0x2E,0x5E,0xB5,0x37,0x61,0x45,0x69,0x57,0x0E,0x3E,0x5B,0x8B,0x27,0x53, + + 0x75,0xC7,0xFF,0x4F,0x3B,0x34,0xFF,0x23,0xCA,0x8C,0x93,0xEA,0xFB,0x47,0xCF,0xD8, + + 0xC5,0x00,0xF7,0x5F,0x18,0x78,0x77,0x3F,0x15,0x1A,0xA7,0x6D,0x0E,0x74,0xBB,0xB7, + + 0x89,0x1A,0x2A,0x4C,0xC6,0x1C,0x4E,0xF8,0x22,0x26,0x46,0x9E,0x91,0x6D,0x2E,0x87, + + 0x90,0x60,0xD6,0xF8,0xEF,0xF8,0xCD,0x7C,0x20,0x8F,0x1E,0x2C,0xD6,0x70,0xE8,0x27, + + 0x53,0x11,0x6B,0x8F,0x39,0x7C,0x77,0xE1,0x89,0x7B,0x8D,0x61,0x92,0x6F,0x37,0x5B, + + 0x76,0x00,0x68,0xEA,0x50,0x9A,0x65,0x1B,0x16,0x10,0x33,0x6F,0xF3,0x77,0xFB,0x85, + + 0x73,0x2C,0x7F,0xC3,0x5C,0xB1,0x19,0x14,0xA6,0xD0,0x5C,0xB4,0x16,0xE8,0x12,0xE9, + + 0x01,0x5A,0xF2,0xE9,0xB2,0x0C,0x8A,0x08,0x55,0x04,0x80,0x66,0x5D,0xEE,0xFE,0x7B, + + 0xBB,0x0A,0x81,0x6D,0xA7,0x32,0x83,0x90,0x74,0xB1,0xB2,0xA5,0xDD,0x86,0x90,0xEE, + + 0x7A,0x0E,0x66,0x77,0xD1,0x98,0x0E,0xCE,0xC5,0xCD,0x29,0x45,0xE6,0xE7,0x1E,0x45, + + 0xFB,0x8B,0xB8,0x62,0xEB,0xC8,0x4B,0xE6,0x32,0xB8,0xF2,0x7A,0xA0,0x24,0x10,0x56, + + 0xE7,0x04,0x8F,0xA9,0x33,0x5E,0x51,0x9A,0xA9,0x87,0x86,0x70,0xB6,0x66,0x41,0x25, + + 0xA2,0x2D,0x86,0x07,0xD6,0x5B,0x28,0x30,0xC0,0x17,0x4E,0x97,0xE6,0x37,0x29,0xA0, + + 0x03,0x2A,0xE9,0x73,0xA8,0x87,0xEA,0x39,0xC1,0x36,0x53,0x84,0x5B,0xEA,0xD9,0xF1, + + 0x3F,0x5C,0xD6,0x69,0x91,0xCA,0x5A,0xAC,0xB0,0x89,0x4A,0x0A,0x85,0x15,0x49,0xDA, + + 0x13,0x92,0x82,0xFC,0x9C,0xCD,0x96,0x78,0xCE,0x34,0x7A,0xEB,0xE0,0x95,0x99,0xF1, + + 0x75,0xE6,0x5B,0x2B,0x1D,0xA7,0xDF,0xAB,0x30,0xEA,0x9C,0x75,0x29,0x76,0x8A,0x6D, + + 0xF4,0x82,0x83,0x19,0x1C,0xA5,0x29,0x3F,0x26,0x2D,0x04,0x70,0x48,0x36,0x1A,0xFA, + + 0xB2,0x23,0x3B,0x18,0x25,0x0F,0x9D,0xEE,0x5C,0x60,0x0D,0x4A,0xB5,0x88,0x14,0xB8, + + 0x1D,0xC0,0x7D,0x21,0x3C,0x7D,0x40,0x92,0x85,0x02,0xC0,0xDB,0xAC,0x83,0xC7,0x6F, + + 0xEF,0x8A,0x54,0xA3,0x98,0xC5,0x73,0x6B,0xCE,0xCE,0xCB,0x5E,0x7F,0x51,0x71,0x59, + + 0x45,0x80,0x36,0x5E,0xA8,0x63,0x22,0x21,0x68,0x8E,0x44,0xE4,0x2A,0x79,0x50,0x00, + + 0x98,0xF3,0x64,0xBB,0xE8,0x1B,0x0C,0x72,0x93,0xDF,0xD4,0xE2,0x33,0x7D,0x54,0xB5, + + 0xD8,0x9E,0x84,0x6F,0x37,0x2A,0xAC,0xD0,0x26,0x6E,0x84,0x66,0x8E,0xFE,0xE5,0x52, + + 0xD8,0x4F,0x34,0x84,0xDF,0xC3,0x0D,0xF3,0xE0,0xDD,0xCD,0x25,0xD6,0x00,0x74,0x34, + + 0x27,0xE6,0x58,0xA8,0xD8,0x66,0x45,0xD1,0xA4,0xF3,0xDD,0x17,0xAF,0x7E,0x5A,0x0B, + + 0x85,0x92,0x24,0xA6,0x24,0x1F,0xF7,0x5C,0x2E,0x0A,0xF2,0xD9,0x46,0xB6,0x14,0x72, + + 0xD8,0x2A,0xBC,0x48,0xCC,0x4E,0x78,0xB5,0xE6,0xDB,0xC2,0xDE,0xFA,0x73,0x6D,0xAC, + + 0xC5,0xB6,0x40,0xC3,0x31,0xA0,0xE5,0x24,0xE4,0x23,0xAF,0xAC,0xBE,0xE7,0x0D,0x93, + + 0x58,0x9A,0xED,0x15,0x34,0xF1,0xBD,0x93,0xA4,0x5A,0xFB,0xB7,0x1E,0xB6,0x71,0x0E, + + 0x67,0x69,0x3C,0x66,0xA1,0xF5,0x4E,0x8E,0xCF,0xDE,0xCE,0x2C,0xFC,0x41,0x56,0x72, + + 0x8F,0xD4,0xF7,0x88,0xD8,0x66,0xC5,0x58,0xCC,0x53,0x39,0x3C,0x5F,0x8B,0x9C,0x69, + + 0x00,0x67,0xBD,0x8B,0x9D,0x5A,0xBF,0x6E,0x4D,0x50,0x8F,0x50,0x3D,0x70,0xD0,0x6B, + + 0xE0,0x3A,0xAE,0xE9,0x42,0x6F,0x40,0x59,0xC9,0xDD,0xC7,0xBB,0x8A,0xBA,0x76,0xA8, + + 0x95,0xDD,0x51,0xEA,0xDF,0x23,0x08,0xDC,0x85,0x39,0x5E,0x73,0x4D,0xDA,0x79,0x5E, + + 0x0A,0x03,0x78,0x35,0x8C,0xFF,0x66,0x93,0x4D,0x0B,0x3E,0x82,0x2B,0xBF,0x5D,0x30, + + 0xCD,0x03,0x98,0x22,0xBC,0xE5,0x29,0xD8,0xFA,0x9C,0x4D,0x14,0x81,0xDE,0x57,0x2A, + + 0x0C,0x7F,0x29,0x7E,0x80,0x0E,0x00,0xC4,0x11,0x0A,0x23,0xD4,0x1E,0x50,0x9F,0xF3, + + 0x71,0x4C,0x92,0x3C,0xEB,0xAD,0x18,0x97,0xA1,0x4F,0x4D,0x25,0x54,0x40,0x2F,0xE6, + + 0x84,0x41,0x92,0x11,0xFA,0x65,0x52,0xCE,0xE2,0x4C,0x27,0x0D,0xBA,0x25,0x83,0x47, + + 0xDC,0x19,0xD3,0xA1,0x63,0x9F,0x71,0x61,0x26,0x4F,0xA0,0x57,0x23,0xD0,0xE1,0x14, + + 0xA5,0xFE,0xAA,0x12,0x70,0x2C,0x53,0x2C,0x80,0x4B,0xA3,0x89,0x3A,0x07,0x64,0xB9, + + 0x83,0x1F,0x3B,0x63,0xB3,0xDB,0x8B,0x64,0x23,0x45,0x2F,0x9B,0xAD,0x9B,0xF2,0xBF, + + 0x7C,0x13,0x92,0x51,0xB0,0x23,0x20,0xD0,0xBC,0xFA,0x27,0x8B,0xAC,0x9A,0xE3,0x37, + + 0x35,0x16,0x51,0xC7,0x93,0x5E,0x31,0xC1,0xCE,0xCB,0x2E,0x9A,0x2D,0x99,0x92,0x5E, + + 0x87,0x7C,0xC1,0x19,0x72,0x28,0x39,0xD1,0xCF,0xCC,0x26,0x8A,0x2C,0x98,0x14,0x6A, + + 0x60,0x05,0x05,0xB3,0x1A,0x55,0x6A,0xAA,0x49,0xCF,0xAA,0x14,0xAB,0xD5,0x30,0xA8, + + 0x98,0xA6,0x37,0xFE,0x79,0x7B,0x62,0x1C,0xCB,0x4A,0x35,0x18,0xDB,0x4D,0x11,0x03, + + 0x63,0x4E,0x13,0x89,0xDB,0x27,0xA8,0xCB,0x64,0xB7,0xCB,0xCE,0x05,0xF7,0xAF,0x7B, + + 0x7A,0x6E,0x4B,0xCD,0x34,0xA0,0x5A,0x99,0x8D,0x7B,0x16,0x5F,0xF8,0x0B,0x0A,0x8F, + + 0x08,0xF9,0x52,0xCE,0xC7,0xA3,0x56,0x8A,0x6E,0xC1,0x2D,0x93,0xA5,0x93,0x4A,0xA9, + + 0xC7,0x2D,0x17,0x5D,0x1F,0x76,0x60,0x83,0x4D,0x96,0x25,0x83,0xA4,0x92,0x47,0x0E, + + 0x0B,0x00,0xF9,0xAF,0x06,0x14,0xA8,0x36,0x3F,0xB2,0x2C,0x92,0x25,0x91,0x4B,0x9B, + + 0x08,0x49,0x40,0xDF,0x46,0xA0,0x8F,0x65,0x3D,0x3E,0x24,0x82,0x24,0x90,0xE7,0x7B, + + 0x5F,0x10,0x6C,0x14,0x14,0x9D,0x5E,0xBD,0xC3,0x56,0x20,0xDB,0xD3,0x31,0x9C,0xD2, + + 0x80,0x1D,0xC4,0x8C,0x37,0xAA,0xA8,0xCF,0xC2,0x10,0xC5,0x02,0xD4,0xF7,0x6D,0x43, + + 0x26,0xE7,0x1A,0xC2,0x7A,0x39,0x1D,0x0B,0x15,0x5D,0x85,0x2D,0xF2,0x1C,0x75,0xD3, + + 0x2D,0x1F,0x6C,0x11,0xC6,0xEF,0x44,0x6D,0x82,0x57,0x8E,0x3D,0x54,0xFA,0xE0,0xBB, + + 0x81,0x55,0xCF,0x93,0x4D,0xFF,0x6E,0x13,0x1F,0xFB,0x2B,0x1B,0x8D,0x8B,0x2A,0xA8, + + 0x61,0xB1,0x38,0x56,0x32,0x52,0x24,0xE0,0xC0,0x1B,0x23,0x0B,0x8C,0x8A,0xE9,0x29, + + 0x2A,0xDB,0x1E,0xC1,0xB6,0xAD,0x4E,0x63,0xE3,0x21,0x2A,0x1A,0x0D,0x89,0x15,0x33, + + 0x43,0xA8,0xF5,0x2A,0x52,0x38,0xEC,0xD5,0x61,0x1F,0x22,0x0A,0x0C,0x88,0xA6,0xCA, + + 0xAB,0xB3,0x46,0x6D,0x26,0x7A,0xEE,0xA0,0x89,0x17,0xB6,0x3E,0xF0,0x70,0x8C,0x5A, + + 0xAA,0x17,0x1E,0x1E,0x38,0xDC,0xE6,0xB0,0x0A,0xA6,0x0E,0xCE,0x86,0xF2,0x6F,0x09, + + 0xAE,0x80,0x5C,0x9F,0xF0,0xC3,0x4E,0x64,0x8B,0xA1,0x17,0x6A,0xDC,0x16,0xAF,0x5B, + + 0x25,0x15,0xB7,0x63,0x3B,0x33,0xE7,0xCB,0xDA,0x83,0x63,0x80,0xFF,0x32,0x86,0x25, + + 0x3E,0x5D,0x79,0x2E,0x1E,0xC8,0xF6,0x9A,0xC9,0x5A,0x29,0x13,0x85,0x83,0x66,0xDE, + + 0x2D,0xE6,0x79,0xF0,0x3F,0x26,0x26,0xFC,0x1C,0x1C,0x21,0x03,0x84,0x82,0x6F,0xAB, + + 0x2B,0x7A,0x56,0x49,0xC9,0xCE,0x87,0xAD,0x49,0x3B,0x28,0x12,0x05,0x81,0xD5,0x1B, + + 0x2F,0x11,0x06,0x7D,0xA7,0x9F,0xE0,0x3E,0x31,0x57,0x20,0x02,0x04,0x80,0x18,0xF9, + + 0xA8,0x8D,0xA4,0xE4,0xE9,0xE2,0x6A,0x09,0xE7,0xA5,0x30,0x5B,0xC7,0x4D,0x71,0x72, + + 0x01,0x93,0x1C,0x6D,0xB6,0xE0,0xBE,0xC2,0xFD,0xCE,0x38,0xF6,0xC2,0xA3,0xDA,0x24, + + 0x25,0x7D,0xEF,0x33,0x65,0xAD,0x6B,0x01,0x67,0xC6,0x6E,0xD5,0xF5,0x82,0x1D,0xD4, + + 0x87,0x76,0xF0,0x98,0xD1,0xE1,0x8D,0xC3,0xE5,0xCC,0x62,0x11,0xF1,0xF8,0xD7,0x66, + + 0x84,0xCC,0xBA,0x47,0xB5,0x00,0x0A,0x46,0xC4,0xEC,0x0F,0x99,0xA9,0x1B,0x08,0xF6, + + 0x46,0xC7,0x63,0x25,0x34,0x01,0x00,0x55,0xE6,0x4F,0x07,0x89,0xA8,0x1A,0x3E,0xB3, + + 0x82,0x89,0xAD,0x8E,0x92,0xFD,0x4E,0x01,0x85,0x19,0x0E,0x98,0x29,0x19,0x28,0x00, + + 0xCD,0x2D,0xF2,0xB5,0x77,0x18,0x82,0xF7,0x82,0xD8,0x06,0x88,0x28,0x18,0x26,0x4D, + + 0x8D,0x86,0xFD,0xF1,0x2F,0xDE,0xC2,0x3E,0x68,0xCE,0x51,0x58,0xD1,0x6E,0x32,0x9B, + + 0x66,0xFD,0xA2,0x16,0x1B,0x00,0x5A,0x7A,0xFB,0xC4,0x59,0x48,0x19,0xAB,0xE3,0x6B, + + 0xA8,0xC8,0x19,0xC8,0x5E,0xEA,0x3B,0x84,0x2D,0xC5,0x70,0xEF,0x8C,0xF1,0xAB,0xDD, + + 0x1F,0x88,0x8C,0x9B,0xAA,0xFD,0x71,0xC5,0x6E,0xC6,0x60,0x9C,0x28,0xE4,0x2C,0x9B, + + 0x2A,0x70,0x22,0xA3,0x0A,0xED,0xE2,0x9B,0xED,0x8C,0x0D,0x91,0xA1,0x13,0xFD,0xA5, + + 0xEE,0x0E,0xB3,0x5F,0xB8,0xB6,0xDA,0x09,0xEC,0x4E,0x05,0x81,0xA0,0x12,0x79,0x4E, + + 0x53,0x03,0xD9,0xA7,0x5E,0x61,0x41,0x5B,0xFE,0x61,0x0C,0x90,0x21,0x11,0xBB,0x44, + + 0x0B,0x20,0xAD,0xB9,0xBB,0xED,0x8A,0x88,0x43,0x8E,0x04,0x80,0x20,0x10,0x5C,0x40, + + 0x85,0xD3,0x12,0xE4,0xB9,0x66,0xCC,0x4A,0x7D,0x9F,0xDC,0xC4,0x83,0x9C,0x54,0x10, + + 0x24,0xD6,0x40,0x94,0x3D,0xDD,0x98,0xF3,0xA0,0xE4,0x3D,0x55,0x71,0xAA,0x45,0xC3, + + 0x0A,0x1F,0x09,0x18,0xB5,0xD2,0xA5,0xE0,0xA0,0xFE,0x71,0x45,0xA8,0x05,0x15,0xC3, + + 0xAD,0x9C,0xE5,0x75,0x91,0x1E,0xB7,0xF2,0x20,0xA6,0xE7,0xC4,0xD6,0x9F,0xC0,0x00, + + 0x87,0xD7,0x4C,0xCB,0x30,0x77,0x76,0x9D,0xBC,0x2B,0x0B,0x19,0x89,0x0B,0xE8,0x30, + + 0x21,0x8C,0x8C,0x85,0xC5,0xB8,0x83,0xD6,0xBB,0x91,0x03,0x09,0x88,0x0A,0x05,0x87, + + 0xF9,0x1D,0xD1,0xE3,0xFE,0xFD,0xE5,0xA4,0x1F,0x20,0x0A,0x18,0x09,0x09,0x6D,0x51, + + 0xA2,0xF3,0xEF,0x35,0x93,0x48,0xDE,0xF4,0x5A,0xDE,0x02,0x08,0x08,0x08,0x1E,0x5A, + + 0x70,0x10,0xB8,0xBE,0xCB,0x19,0xA4,0xAB,0x57,0xD8,0xD4,0xBF,0x7F,0x98,0x5E,0xE4, + + 0x8E,0xFC,0xBC,0x9E,0xC2,0x14,0x2F,0xB9,0x34,0xD9,0xE6,0x8E,0xC2,0x95,0x17,0x69, + + 0x2E,0x92,0x9F,0x90,0x1F,0x3F,0x33,0x52,0xEC,0xF6,0x8D,0xAD,0xB8,0x57,0x90,0x79, + + 0x89,0x9D,0xD7,0x2F,0x1E,0x64,0x3F,0xC9,0x12,0x26,0x7B,0x40,0xD9,0x60,0x3C,0xDA, + + 0x8D,0xDD,0x19,0x31,0xC1,0x43,0xF4,0x67,0x97,0xD3,0x09,0x11,0x81,0x03,0x2E,0x26, + + 0x91,0xDF,0x11,0x21,0xC0,0x42,0x27,0x64,0x29,0x10,0x01,0x01,0x80,0x02,0xA7,0x33, + + 0x7F,0x65,0x18,0x30,0x41,0x41,0xC3,0xE9,0x01,0x9F,0x08,0x10,0x01,0x01,0x27,0xDB, + + 0xA9,0x67,0x10,0x20,0x40,0x40,0xBF,0x07,0x45,0xD2,0x00,0x00,0x0E,0x35,0x80,0x05, + + 0x76,0x8D,0xDE,0x85,0xB1,0x8B,0x52,0x92,0x14,0x40,0xCE,0xA1,0x58,0xCB,0xAC,0x72, + + 0x40,0x81,0x90,0xE5,0x5B,0x21,0x24,0xB2,0x41,0xA7,0xC6,0xB5,0xD3,0xCA,0x7F,0x19, + + 0x02,0x2A,0x41,0x05,0xFB,0xA0,0x19,0x24,0xC4,0x62,0x90,0x05,0x50,0x48,0x71,0xEC, + + 0xC1,0x41,0xD7,0x1D,0xB1,0x88,0x47,0xD3,0xCD,0xC6,0x59,0x35,0xBA,0xE1,0x7E,0x48, + + 0xC0,0x06,0x3F,0xBA,0x14,0xE4,0x46,0xF1,0xA9,0xE6,0xF9,0x23,0x7C,0xE8,0xFB,0xC0, + + 0x05,0xA5,0x08,0x40,0x82,0xA8,0x1A,0x03,0x5F,0x4C,0xF1,0x73,0x52,0xE5,0x49,0xC5, + + 0x7E,0xA4,0xD4,0xC1,0xD6,0xBB,0xEA,0xD0,0x80,0xE9,0x9B,0x78,0x93,0x67,0x05,0x23, + + 0xEB,0xA5,0x36,0xD1,0xD7,0xD2,0x2F,0xF3,0xCA,0x3A,0xA3,0xA1,0x53,0x47,0x80,0x6A, + + 0x73,0xDA,0x87,0x0C,0x9A,0x20,0x3C,0x2F,0x20,0x47,0x82,0xDD,0x12,0x68,0x7A,0x5E, + + 0xF5,0x4B,0xEA,0x5C,0x0C,0x26,0x1A,0x7B,0x4D,0x49,0x9B,0x1C,0xD9,0xA8,0xDC,0x08, + + 0x8E,0x8A,0x0E,0xFD,0x90,0x25,0x3D,0x2E,0xE7,0x0A,0xCD,0xA8,0xD0,0xC1,0x89,0x63, + + 0x0B,0x23,0x0B,0x1C,0x30,0x80,0xF1,0x3D,0xC9,0xE4,0xC5,0xBC,0x5B,0xC0,0xBD,0x3B, + + 0x48,0x8F,0x02,0x5D,0x8D,0x6E,0x08,0x75,0xE9,0x4A,0x58,0x9A,0x85,0xE1,0x74,0x54, + + 0x6A,0xED,0xB5,0xA6,0xE4,0xF2,0xDA,0x9A,0xEA,0xB2,0xD8,0x74,0x59,0x6C,0x03,0xB7, + + 0x0A,0x5E,0x41,0xF7,0x7B,0x51,0x5F,0x07,0x6B,0xC6,0xF3,0x60,0xD2,0x2E,0x53,0x4C, + + 0x77,0xAD,0x0B,0x4D,0xB1,0xA2,0x11,0x78,0x28,0xC5,0xD3,0x7F,0x59,0x8F,0xBF,0xE2, + + 0x61,0x50,0x03,0x75,0x3A,0x36,0xBA,0x51,0x6A,0x5C,0x95,0x84,0x1B,0x40,0x74,0xE3, + + 0x71,0x18,0xCE,0x1E,0x5A,0x93,0x62,0x20,0x8A,0xF3,0xD8,0x36,0x1A,0x33,0x7D,0xE3, + + 0xE3,0xCD,0xDB,0x01,0xB0,0x99,0x4B,0x25,0xE0,0xDF,0x95,0xA7,0xB2,0xD9,0x4C,0x6C, + + 0xC7,0x51,0x8D,0x64,0xA1,0x23,0x43,0xB9,0xC1,0xFC,0x9D,0x44,0xB3,0x7D,0x3A,0xCD, + + 0xAD,0xB9,0x04,0xD0,0xC3,0x2F,0x6C,0xB0,0x66,0x5B,0xEE,0x63,0xDE,0x2B,0x4D,0x42, + + 0x23,0x1D,0xB3,0x56,0xB3,0x35,0x26,0x20,0x6B,0x8A,0xE6,0x73,0xDF,0x69,0x40,0x53, + + 0x22,0xBB,0x3A,0xB7,0x55,0x28,0x6D,0x1E,0xA1,0x76,0xEF,0x62,0x5E,0x69,0x09,0x20, + + 0xB7,0x13,0x12,0xD5,0xC4,0x3D,0xE2,0x21,0x14,0x8F,0xF3,0xF3,0x62,0x2B,0x84,0x62, + + 0x57,0x10,0xD8,0x85,0x38,0x78,0x13,0x2A,0x69,0x20,0xC8,0x3D,0x78,0xF5,0x70,0x1A, + + 0x28,0xFE,0xEE,0x6D,0x3F,0x39,0x26,0x49,0x6F,0x59,0xDE,0x4F,0x61,0x7F,0xDC,0x8D, + + 0xAE,0xBA,0x83,0xEE,0xD3,0x18,0x37,0x3D,0x83,0x78,0xE9,0x28,0x93,0x6A,0x55,0x98, + + 0x0A,0xB4,0xD1,0x0D,0x19,0x90,0x41,0x29,0xC9,0xF0,0x97,0xF0,0x9A,0x1B,0x1C,0xCA, + + 0x42,0x2C,0xFC,0x2E,0x96,0xC2,0x2E,0x19,0x3A,0x7C,0xF8,0xEB,0xEF,0x73,0x18,0xD0, + + 0xC0,0x0D,0xFE,0x62,0x50,0x09,0x26,0x8B,0x3B,0x56,0xF7,0xB2,0xB2,0x19,0x39,0xC0, + + 0xC9,0xE1,0xBC,0x13,0x0D,0x95,0x37,0x29,0x24,0xD3,0x63,0xA7,0x33,0x3A,0x6F,0xCD, + + 0x63,0x2F,0xCF,0x2C,0x33,0xC0,0x24,0x99,0xBC,0x54,0x76,0x22,0x42,0xA1,0x9D,0xF2, + + 0x58,0x8F,0xE4,0x84,0x7F,0xE2,0xB0,0x23,0x44,0x80,0x70,0x26,0x3F,0x62,0x22,0x16, + + 0xA6,0x8C,0xF6,0x87,0x15,0x0A,0x68,0x36,0x4D,0xE9,0xE6,0xB3,0x5D,0x4A,0x41,0x42, + + 0x31,0x8F,0xA1,0xF6,0xD6,0xA6,0x35,0xBE,0xC0,0xE2,0xB9,0xD6,0x9E,0xE2,0xD6,0xC3, + + 0x8D,0x0C,0xA8,0x97,0x15,0xA2,0xB9,0x32,0x82,0x83,0xB8,0x17,0x55,0xA1,0xD3,0xD2, + + 0x00,0x24,0x1D,0xBD,0xE5,0x5B,0x74,0x9C,0xBB,0x4E,0xF2,0x14,0x21,0xC4,0x32,0x4F, + + 0xA4,0x83,0xD2,0xB9,0xEC,0x3A,0xF0,0x4E,0xA6,0xCA,0x07,0xA6,0x29,0xE6,0x2D,0xC1, + + 0x8F,0xFB,0x1A,0xC3,0x9A,0xCB,0x8A,0x3F,0x65,0xC0,0x15,0x07,0x24,0x83,0x65,0x3D, + + 0x26,0x0F,0x16,0xA9,0x91,0x27,0x19,0x33,0xDA,0x4C,0xC7,0x7E,0x94,0x15,0x68,0x0B, + + 0xFB,0x75,0xFC,0x8F,0x9E,0x03,0x36,0x5A,0x48,0xE8,0xEC,0xAF,0xDE,0x43,0x4A,0x5B, + + 0xF0,0x02,0xCA,0xEF,0x57,0xA9,0xBA,0x3B,0x9F,0x89,0xA2,0xCF,0x17,0xE9,0x69,0xF5, + + 0xD9,0x85,0x63,0x0F,0xF7,0x28,0x6D,0x2F,0xC4,0xDE,0x73,0x2F,0xB7,0x68,0xAC,0xF9, + + 0x0F,0xA3,0xF5,0x17,0x8D,0xAF,0x3F,0x99,0xC9,0xEB,0xE5,0xBA,0xD5,0x40,0xE2,0xA8, + + 0xAF,0x73,0x3A,0x3C,0xE1,0x73,0xF6,0x88,0xCC,0xC4,0x09,0x1C,0xD0,0x89,0x6E,0xA4, + + 0xF2,0x07,0x68,0xDE,0x19,0x6D,0x76,0x05,0x2C,0x3D,0xB0,0x3C,0x37,0xE0,0x29,0x4A, + + 0x6D,0x04,0x23,0x5E,0x95,0xEC,0xFA,0x19,0x6D,0xC8,0xEB,0x6E,0x8A,0x12,0x90,0x07, + + 0x2C,0x02,0x63,0x7B,0x1A,0x5A,0x03,0xF9,0xC6,0x12,0xE3,0x55,0xDE,0xF8,0x55,0x44, + + 0xD4,0xDE,0xE2,0x86,0xB4,0xD3,0x72,0xA2,0x0F,0xC0,0xCC,0x24,0x7D,0x8D,0x76,0x93, + + 0x86,0x97,0x6C,0x96,0x5E,0x33,0x5C,0xF2,0x78,0x5C,0xB0,0xD8,0xD4,0x79,0x92,0x01, + + 0xA1,0x63,0xFB,0x06,0x36,0x19,0x25,0x52,0xFC,0xD2,0xEF,0xBA,0x57,0xF4,0xA5,0xAF, + + 0x06,0x95,0x85,0x66,0xFF,0xB3,0x45,0x31,0xE4,0x8B,0x3D,0x55,0x54,0x0C,0xE5,0x33, + + 0x3A,0xB4,0x64,0xC3,0xE0,0xF4,0x3F,0x0D,0x9D,0x2B,0x4A,0xE4,0x80,0x20,0x5F,0x42, + + 0xDB,0xD7,0x58,0x3C,0xD6,0xD3,0xBC,0xE6,0x44,0x97,0x7B,0xED,0x75,0xBB,0xD0,0xCF, + + 0x5E,0x34,0xE5,0xC2,0x57,0xD0,0x8E,0x67,0xA2,0x58,0xF2,0xF8,0xA2,0x62,0xDE,0x52, + + 0xA1,0x17,0x59,0x97,0xBB,0x78,0x7B,0x0A,0x98,0x87,0x8B,0xB1,0x51,0xBB,0x6E,0x1D, + + 0x8D,0x91,0xF8,0x86,0x3E,0xBC,0x34,0x48,0x68,0xF8,0xFC,0xAF,0x9F,0x72,0x16,0x69, + + 0x39,0x14,0xF0,0x1A,0x3D,0x34,0x60,0x3E,0x6D,0x72,0x45,0xE2,0xDE,0x97,0xDE,0x09, + + 0xAF,0x7C,0xA8,0x7E,0xB6,0xBC,0x0B,0x5A,0xE6,0xD6,0xB3,0x51,0x01,0x70,0x51,0x1E, + + 0x44,0xCB,0xD1,0x0F,0x56,0x19,0x7D,0xFB,0x6D,0xEB,0x81,0xB6,0x3F,0xFB,0xBE,0xF5, + + 0x3A,0x47,0xC6,0xCF,0x99,0xAC,0xB6,0xFE,0x79,0x9E,0x82,0x13,0x40,0xBE,0x10,0x5E, + + 0xDA,0x3E,0xD4,0x59,0x93,0xA2,0x7E,0x7E,0x2B,0x79,0x3E,0xEA,0x83,0x08,0x67,0xB4, + + 0xC6,0xDC,0x08,0x3D,0x3E,0x8F,0xF5,0x65,0xE8,0xDE,0x75,0xD0,0x02,0x9C,0x2B,0x28, + + 0xA5,0x62,0xA5,0xCA,0xDF,0x2F,0xBF,0xEA,0x3D,0x52,0xF8,0x7B,0xBB,0x0A,0xB7,0x1C, + + 0x06,0xC0,0x24,0x66,0x33,0x40,0x63,0x66,0xEA,0xBB,0x94,0x63,0xD2,0x68,0x78,0x56, + + 0xA3,0xFF,0x68,0x1C,0x33,0x31,0xAF,0xB5,0x47,0x81,0xBE,0xEF,0x05,0xC5,0xB6,0xFC, + + 0x90,0x4C,0x6D,0x07,0x98,0x4E,0x91,0xA5,0x84,0xB7,0xA0,0x47,0x3B,0xD2,0xF0,0x57, + + 0x6B,0xA7,0x8C,0x06,0xDF,0x67,0xAE,0x0E,0x9D,0x01,0x72,0x28,0x19,0x9D,0x38,0x22, + + 0x41,0xF4,0x2F,0x36,0xB1,0x65,0xE3,0x79,0xBE,0x94,0xD0,0x64,0x52,0x64,0x40,0xE2, + + 0xF6,0x0A,0xB0,0x73,0x37,0x25,0x5C,0x37,0xC1,0x4D,0xD8,0x74,0x53,0x65,0x4B,0x01, + + 0x21,0x00,0xC5,0x65,0x92,0x26,0xC1,0xA6,0xC0,0xB3,0xD1,0x65,0xD2,0x66,0xFD,0x2E, + + 0x20,0x46,0xC9,0x55,0x93,0x27,0xEB,0x13,0x28,0xF7,0xD9,0x75,0xD3,0x67,0x42,0x0E, + + 0xC0,0xF8,0xA4,0x98,0x94,0xA3,0x90,0x17,0xB4,0x4A,0xD2,0xAA,0xA4,0x9D,0x08,0xDE, + + 0xAB,0x4C,0x71,0x3A,0x09,0xA4,0x99,0x3E,0x81,0xF9,0x19,0x06,0x01,0x28,0xA7,0xF5, + + 0x08,0xF1,0x87,0xEF,0x9E,0xEA,0xD3,0x3D,0x34,0xEE,0xD3,0x13,0x84,0xDF,0x79,0xBC, + + 0x2D,0xEC,0x5F,0xE2,0x1A,0x25,0xBF,0x5B,0x65,0xB4,0x77,0xBD,0x25,0x4B,0xAA,0xFB, + + 0x8F,0x4B,0xC2,0x4C,0x1A,0x2C,0x74,0xB7,0x1E,0x0A,0xD2,0x6C,0x5A,0x6C,0x3E,0xA5, + + 0x2A,0x4F,0xCA,0x5C,0x1B,0x2D,0xD9,0x5C,0xC4,0x4F,0xDA,0x7C,0x5B,0x6D,0x83,0x5D, + + 0x78,0x42,0xC3,0x4D,0x9A,0x2E,0xE4,0x57,0x92,0xBB,0xD3,0x6D,0xDA,0x6E,0xC9,0x66, + + 0x0E,0x08,0xCB,0x5D,0x9B,0x2F,0xEC,0x78,0x46,0x49,0xDB,0x7D,0xDB,0x6F,0x80,0x04, + + 0x64,0xE5,0x0C,0x86,0xC5,0x3F,0x74,0xE4,0x6F,0x5D,0xBC,0x66,0xF2,0x78,0xBB,0xAF, + + 0x79,0x53,0x48,0x11,0x72,0xC2,0x94,0xC8,0x80,0x5E,0xFC,0xF4,0x8A,0x7C,0x3F,0x7E, + + 0xA6,0xD2,0x31,0xFA,0x13,0x8F,0x5F,0x7E,0x43,0x54,0x7A,0x55,0xA8,0x7D,0x8F,0xAE, + + 0x5D,0xC3,0xED,0xD1,0x8C,0x3C,0x7D,0xF5,0xD8,0x5C,0xEF,0xAC,0xB1,0x88,0x3C,0xE4, + + 0xA7,0x33,0xC4,0xC4,0x32,0x34,0x94,0xF4,0x9E,0x18,0xD4,0xE4,0x72,0x74,0xFB,0x2D, + + 0x33,0x5B,0xCC,0xD4,0x33,0x35,0xF4,0x53,0x1C,0xD5,0xDC,0xF4,0x73,0x75,0x9A,0xD0, + + 0xA4,0xD6,0xC5,0xC5,0xB2,0x36,0x25,0x27,0x48,0x17,0xD5,0xE5,0xF2,0x76,0x3D,0xF7, + + 0x41,0x74,0xCD,0xD5,0xB3,0x37,0x9D,0xE5,0x1F,0x1B,0xDD,0xF5,0xF3,0x77,0xC6,0x9C, + + 0xD4,0xBC,0x16,0x92,0x60,0xCC,0xA2,0x4A,0xEA,0x10,0x92,0xAE,0x7C,0x83,0xAA,0x65, + + 0xA9,0xC2,0x7E,0x18,0x7D,0xAE,0x66,0xDA,0x2A,0xE6,0x29,0x98,0xFC,0x5E,0x47,0x8F, + + 0x60,0xEA,0x04,0x4B,0x52,0x76,0xDB,0xCB,0xAB,0x85,0x97,0x6F,0x7B,0x3C,0x0E,0x5F, + + 0x0B,0x5E,0x27,0x3E,0xC6,0x3A,0x67,0xE6,0x1C,0xA7,0x40,0xAC,0xFF,0xBB,0xEE,0x6A, + + 0xF5,0xF3,0xC6,0xCC,0x3A,0x3C,0x26,0x2E,0xC0,0x1D,0xD6,0xEC,0x7A,0x7C,0xB1,0xFC, + + 0xA9,0x15,0xCE,0xDC,0x3B,0x3D,0xF2,0xBA,0xE8,0x53,0xDE,0xFC,0x7B,0x7D,0xEF,0x6B, + + 0x2D,0x39,0xC7,0xCD,0xBA,0x3E,0xBB,0x69,0x16,0x7E,0xD7,0xED,0xFA,0x7E,0xF9,0xBB, + + 0x5C,0x19,0xCF,0xDD,0xBB,0x3F,0x37,0x7F,0x17,0x1E,0xDF,0xFD,0xFB,0x7F,0xF4,0x44, + + 0xA6,0x7E,0x40,0x39,0x30,0x1C,0xF0,0x36,0xB8,0xBE,0x1C,0xA4,0x55,0x65,0xC3,0x69, + + 0x9A,0xBC,0x2C,0xE7,0xB6,0xA3,0x4C,0xB6,0x0D,0x9F,0xD7,0x2A,0x9D,0x3F,0x5B,0x87, + + 0xC8,0x92,0x1E,0x5C,0x6D,0x28,0x48,0x65,0x66,0x8C,0x89,0xD4,0x8C,0x46,0x81,0xB1, + + 0x02,0xA4,0x9B,0xE8,0x17,0xEB,0xF9,0x27,0x54,0x82,0x3E,0x24,0x0A,0xE1,0x88,0xE1, + + 0x00,0x24,0xE0,0x46,0x16,0xA4,0x78,0x50,0xE7,0x6B,0xF0,0x66,0x56,0xE4,0xF8,0xD0, + + 0x06,0xF2,0xE8,0x56,0x17,0xA5,0x98,0x4D,0xB3,0x75,0xF8,0x76,0x57,0xE5,0x88,0xC7, + + 0xC2,0x9A,0xE1,0x47,0x96,0xA6,0x76,0x70,0x1D,0x16,0xF1,0x67,0xD6,0xE6,0x53,0xB1, + + 0x05,0x8F,0xE9,0x57,0x97,0xA7,0xCE,0x6F,0xE3,0x3A,0xF9,0x77,0xD7,0xE7,0xB2,0x14, + + 0x54,0x7C,0x82,0x6C,0xAB,0xCD,0x99,0x51,0x99,0x35,0x52,0x11,0xA0,0xEA,0x6A,0xDC, + + 0xE7,0xC5,0x13,0x4F,0xBE,0x76,0x62,0x07,0xCF,0xC1,0x89,0x27,0x79,0x87,0xA0,0x11, + + 0xD0,0x3E,0x9B,0xDF,0x41,0xD5,0x71,0x4B,0xD4,0x4A,0x00,0x32,0x24,0x3A,0xDB,0x5D, + + 0x27,0x70,0x16,0x42,0x62,0xAD,0xEF,0x49,0x6E,0x8A,0xFB,0x00,0xD5,0x87,0x93,0x28, + + 0x4D,0x53,0xE2,0x4E,0x1E,0xAC,0xAD,0x62,0x60,0x8A,0xF2,0x6E,0x5E,0xEC,0x12,0xD8, + + 0x0E,0x9A,0xEA,0x5E,0x1F,0xAD,0x0A,0xA5,0xA0,0x8C,0xFA,0x7E,0x5F,0xED,0x1B,0x29, + + 0xCD,0x7E,0xE3,0x4F,0x9E,0xAE,0x81,0xAD,0x6C,0x82,0xF3,0x6F,0xDE,0xEE,0xD0,0xB9, + + 0x23,0x72,0xEB,0x5F,0x9F,0xAF,0xD3,0xD8,0xB0,0x0F,0xFB,0x7F,0xDF,0xEF,0x56,0x27, + + 0xA1,0x97,0x64,0x92,0xC8,0x45,0xF4,0xB3,0x48,0xD6,0x03,0x5B,0x38,0xBE,0x2D,0x4D, + + 0x86,0xEF,0x1B,0x8F,0x33,0x71,0x44,0x96,0xEA,0xD3,0x45,0x70,0xD7,0xB4,0xCE,0x74, + + 0xA2,0x72,0x61,0x03,0xF0,0x47,0x3D,0x06,0x87,0xF2,0xC5,0xE1,0x56,0x0C,0x16,0xD5, + + 0x07,0xDD,0x1A,0xA8,0xE1,0xF1,0x8A,0xB2,0x68,0xDF,0xCF,0x31,0xED,0xBF,0x6C,0xF5, + + 0x87,0xF8,0xE4,0xC6,0x36,0xB4,0x14,0xA2,0x6A,0x29,0xF4,0xE6,0x76,0xF4,0xE8,0x15, + + 0xA7,0xB5,0xEC,0xD6,0x37,0xB5,0x26,0xF3,0xC4,0x94,0xFC,0xF6,0x77,0xF5,0x86,0x84, + + 0x78,0x9E,0xE5,0xC7,0xB6,0xB6,0x0D,0x61,0xE7,0x96,0xF5,0xE7,0xF6,0xF6,0xC1,0x13, + + 0x04,0xD6,0xED,0xD7,0xB7,0xB7,0x1D,0xB3,0xFA,0x5C,0xFD,0xF7,0xF7,0xF7,0x52,0xAE, + + 0xF8,0x28,0x24,0xB1,0xB9,0xBF,0x5E,0xB4,0x2A,0x2C,0xC6,0x8E,0x64,0x35,0x09,0x1A, + + 0xAA,0x3E,0x47,0x1A,0x79,0xA5,0x81,0xDA,0xDA,0x7D,0x84,0x5C,0xFF,0xF1,0x80,0x97, + + 0x7C,0x6A,0x4F,0x2C,0xBA,0x1A,0xF1,0x2F,0xA4,0xAD,0x27,0x2D,0xFD,0x1D,0x87,0x3D, + + 0xAB,0x5B,0x3F,0x58,0xBF,0x4E,0xF9,0xBD,0x25,0x19,0x4D,0xDD,0xBE,0x24,0x8A,0x4A, + + 0xD2,0xBC,0xE6,0xCE,0x3E,0xBC,0xF2,0x08,0xEC,0xD4,0xF6,0xEE,0x7E,0xFC,0x56,0x29, + + 0x77,0x39,0xEE,0xDE,0x3F,0xBD,0x1E,0xBA,0xC2,0x20,0xFE,0xFE,0x7F,0xFD,0xCB,0x49, + + 0xAF,0xCB,0xE7,0xCF,0xBE,0xBE,0xFE,0x99,0x4D,0x9F,0xF7,0xEF,0xFE,0xFE,0x80,0xC7, + + 0x29,0x6A,0xEF,0xDF,0xBF,0xBF,0x07,0xDF,0x6D,0xD7,0xFF,0xFF,0xFF,0xFF,0x00,0x00, + + 0x00,0x00,0x80,0x04,0x10,0x20,0x10,0x20,0x40,0x40,0x90,0x24,0x50,0x60,0x08,0x10, + + 0x01,0x01,0x88,0x14,0x11,0x21,0x18,0x30,0x41,0x41,0x98,0x34,0x51,0x61,0x01,0x01, + + 0x80,0x02,0x81,0x05,0x90,0x22,0x11,0x21,0xC0,0x42,0x91,0x25,0xD0,0x62,0x09,0x11, + + 0x81,0x03,0x89,0x15,0x91,0x23,0x19,0x31,0xC1,0x43,0x99,0x35,0xD1,0x63,0x40,0x40, + + 0x02,0x04,0xC0,0x44,0x12,0x24,0x50,0x60,0x42,0x44,0xD0,0x64,0x52,0x64,0x48,0x50, + + 0x03,0x05,0xC8,0x54,0x13,0x25,0x58,0x70,0x43,0x45,0xD8,0x74,0x53,0x65,0x41,0x41, + + 0x82,0x06,0xC1,0x45,0x92,0x26,0x51,0x61,0xC2,0x46,0xD1,0x65,0xD2,0x66,0x49,0x51, + + 0x83,0x07,0xC9,0x55,0x93,0x27,0x59,0x71,0xC3,0x47,0xD9,0x75,0xD3,0x67,0x02,0x08, + + 0x08,0x08,0x82,0x0C,0x18,0x28,0x12,0x28,0x48,0x48,0x92,0x2C,0x58,0x68,0x0A,0x18, + + 0x09,0x09,0x8A,0x1C,0x19,0x29,0x1A,0x38,0x49,0x49,0x9A,0x3C,0x59,0x69,0x03,0x09, + + 0x88,0x0A,0x83,0x0D,0x98,0x2A,0x13,0x29,0xC8,0x4A,0x93,0x2D,0xD8,0x6A,0x0B,0x19, + + 0x89,0x0B,0x8B,0x1D,0x99,0x2B,0x1B,0x39,0xC9,0x4B,0x9B,0x3D,0xD9,0x6B,0x42,0x48, + + 0x0A,0x0C,0xC2,0x4C,0x1A,0x2C,0x52,0x68,0x4A,0x4C,0xD2,0x6C,0x5A,0x6C,0x4A,0x58, + + 0x0B,0x0D,0xCA,0x5C,0x1B,0x2D,0x5A,0x78,0x4B,0x4D,0xDA,0x7C,0x5B,0x6D,0x43,0x49, + + 0x8A,0x0E,0xC3,0x4D,0x9A,0x2E,0x53,0x69,0xCA,0x4E,0xD3,0x6D,0xDA,0x6E,0x4B,0x59, + + 0x8B,0x0F,0xCB,0x5D,0x9B,0x2F,0x5B,0x79,0xCB,0x4F,0xDB,0x7D,0xDB,0x6F,0x04,0x80, + + 0x20,0x10,0x84,0x84,0x30,0x30,0x14,0xA0,0x60,0x50,0x94,0xA4,0x70,0x70,0x0C,0x90, + + 0x21,0x11,0x8C,0x94,0x31,0x31,0x1C,0xB0,0x61,0x51,0x9C,0xB4,0x71,0x71,0x05,0x81, + + 0xA0,0x12,0x85,0x85,0xB0,0x32,0x15,0xA1,0xE0,0x52,0x95,0xA5,0xF0,0x72,0x0D,0x91, + + 0xA1,0x13,0x8D,0x95,0xB1,0x33,0x1D,0xB1,0xE1,0x53,0x9D,0xB5,0xF1,0x73,0x44,0xC0, + + 0x22,0x14,0xC4,0xC4,0x32,0x34,0x54,0xE0,0x62,0x54,0xD4,0xE4,0x72,0x74,0x4C,0xD0, + + 0x23,0x15,0xCC,0xD4,0x33,0x35,0x5C,0xF0,0x63,0x55,0xDC,0xF4,0x73,0x75,0x45,0xC1, + + 0xA2,0x16,0xC5,0xC5,0xB2,0x36,0x55,0xE1,0xE2,0x56,0xD5,0xE5,0xF2,0x76,0x4D,0xD1, + + 0xA3,0x17,0xCD,0xD5,0xB3,0x37,0x5D,0xF1,0xE3,0x57,0xDD,0xF5,0xF3,0x77,0x06,0x88, + + 0x28,0x18,0x86,0x8C,0x38,0x38,0x16,0xA8,0x68,0x58,0x96,0xAC,0x78,0x78,0x0E,0x98, + + 0x29,0x19,0x8E,0x9C,0x39,0x39,0x1E,0xB8,0x69,0x59,0x9E,0xBC,0x79,0x79,0x07,0x89, + + 0xA8,0x1A,0x87,0x8D,0xB8,0x3A,0x17,0xA9,0xE8,0x5A,0x97,0xAD,0xF8,0x7A,0x0F,0x99, + + 0xA9,0x1B,0x8F,0x9D,0xB9,0x3B,0x1F,0xB9,0xE9,0x5B,0x9F,0xBD,0xF9,0x7B,0x46,0xC8, + + 0x2A,0x1C,0xC6,0xCC,0x3A,0x3C,0x56,0xE8,0x6A,0x5C,0xD6,0xEC,0x7A,0x7C,0x4E,0xD8, + + 0x2B,0x1D,0xCE,0xDC,0x3B,0x3D,0x5E,0xF8,0x6B,0x5D,0xDE,0xFC,0x7B,0x7D,0x47,0xC9, + + 0xAA,0x1E,0xC7,0xCD,0xBA,0x3E,0x57,0xE9,0xEA,0x5E,0xD7,0xED,0xFA,0x7E,0x4F,0xD9, + + 0xAB,0x1F,0xCF,0xDD,0xBB,0x3F,0x5F,0xF9,0xEB,0x5F,0xDF,0xFD,0xFB,0x7F,0x20,0x02, + + 0x04,0x80,0xA0,0x06,0x14,0xA0,0x30,0x22,0x44,0xC0,0xB0,0x26,0x54,0xE0,0x28,0x12, + + 0x05,0x81,0xA8,0x16,0x15,0xA1,0x38,0x32,0x45,0xC1,0xB8,0x36,0x55,0xE1,0x21,0x03, + + 0x84,0x82,0xA1,0x07,0x94,0xA2,0x31,0x23,0xC4,0xC2,0xB1,0x27,0xD4,0xE2,0x29,0x13, + + 0x85,0x83,0xA9,0x17,0x95,0xA3,0x39,0x33,0xC5,0xC3,0xB9,0x37,0xD5,0xE3,0x60,0x42, + + 0x06,0x84,0xE0,0x46,0x16,0xA4,0x70,0x62,0x46,0xC4,0xF0,0x66,0x56,0xE4,0x68,0x52, + + 0x07,0x85,0xE8,0x56,0x17,0xA5,0x78,0x72,0x47,0xC5,0xF8,0x76,0x57,0xE5,0x61,0x43, + + 0x86,0x86,0xE1,0x47,0x96,0xA6,0x71,0x63,0xC6,0xC6,0xF1,0x67,0xD6,0xE6,0x69,0x53, + + 0x87,0x87,0xE9,0x57,0x97,0xA7,0x79,0x73,0xC7,0xC7,0xF9,0x77,0xD7,0xE7,0x22,0x0A, + + 0x0C,0x88,0xA2,0x0E,0x1C,0xA8,0x32,0x2A,0x4C,0xC8,0xB2,0x2E,0x5C,0xE8,0x2A,0x1A, + + 0x0D,0x89,0xAA,0x1E,0x1D,0xA9,0x3A,0x3A,0x4D,0xC9,0xBA,0x3E,0x5D,0xE9,0x23,0x0B, + + 0x8C,0x8A,0xA3,0x0F,0x9C,0xAA,0x33,0x2B,0xCC,0xCA,0xB3,0x2F,0xDC,0xEA,0x2B,0x1B, + + 0x8D,0x8B,0xAB,0x1F,0x9D,0xAB,0x3B,0x3B,0xCD,0xCB,0xBB,0x3F,0xDD,0xEB,0x62,0x4A, + + 0x0E,0x8C,0xE2,0x4E,0x1E,0xAC,0x72,0x6A,0x4E,0xCC,0xF2,0x6E,0x5E,0xEC,0x6A,0x5A, + + 0x0F,0x8D,0xEA,0x5E,0x1F,0xAD,0x7A,0x7A,0x4F,0xCD,0xFA,0x7E,0x5F,0xED,0x63,0x4B, + + 0x8E,0x8E,0xE3,0x4F,0x9E,0xAE,0x73,0x6B,0xCE,0xCE,0xF3,0x6F,0xDE,0xEE,0x6B,0x5B, + + 0x8F,0x8F,0xEB,0x5F,0x9F,0xAF,0x7B,0x7B,0xCF,0xCF,0xFB,0x7F,0xDF,0xEF,0x24,0x82, + + 0x24,0x90,0xA4,0x86,0x34,0xB0,0x34,0xA2,0x64,0xD0,0xB4,0xA6,0x74,0xF0,0x2C,0x92, + + 0x25,0x91,0xAC,0x96,0x35,0xB1,0x3C,0xB2,0x65,0xD1,0xBC,0xB6,0x75,0xF1,0x25,0x83, + + 0xA4,0x92,0xA5,0x87,0xB4,0xB2,0x35,0xA3,0xE4,0xD2,0xB5,0xA7,0xF4,0xF2,0x2D,0x93, + + 0xA5,0x93,0xAD,0x97,0xB5,0xB3,0x3D,0xB3,0xE5,0xD3,0xBD,0xB7,0xF5,0xF3,0x64,0xC2, + + 0x26,0x94,0xE4,0xC6,0x36,0xB4,0x74,0xE2,0x66,0xD4,0xF4,0xE6,0x76,0xF4,0x6C,0xD2, + + 0x27,0x95,0xEC,0xD6,0x37,0xB5,0x7C,0xF2,0x67,0xD5,0xFC,0xF6,0x77,0xF5,0x65,0xC3, + + 0xA6,0x96,0xE5,0xC7,0xB6,0xB6,0x75,0xE3,0xE6,0xD6,0xF5,0xE7,0xF6,0xF6,0x6D,0xD3, + + 0xA7,0x97,0xED,0xD7,0xB7,0xB7,0x7D,0xF3,0xE7,0xD7,0xFD,0xF7,0xF7,0xF7,0x26,0x8A, + + 0x2C,0x98,0xA6,0x8E,0x3C,0xB8,0x36,0xAA,0x6C,0xD8,0xB6,0xAE,0x7C,0xF8,0x2E,0x9A, + + 0x2D,0x99,0xAE,0x9E,0x3D,0xB9,0x3E,0xBA,0x6D,0xD9,0xBE,0xBE,0x7D,0xF9,0x27,0x8B, + + 0xAC,0x9A,0xA7,0x8F,0xBC,0xBA,0x37,0xAB,0xEC,0xDA,0xB7,0xAF,0xFC,0xFA,0x2F,0x9B, + + 0xAD,0x9B,0xAF,0x9F,0xBD,0xBB,0x3F,0xBB,0xED,0xDB,0xBF,0xBF,0xFD,0xFB,0x66,0xCA, + + 0x2E,0x9C,0xE6,0xCE,0x3E,0xBC,0x76,0xEA,0x6E,0xDC,0xF6,0xEE,0x7E,0xFC,0x6E,0xDA, + + 0x2F,0x9D,0xEE,0xDE,0x3F,0xBD,0x7E,0xFA,0x6F,0xDD,0xFE,0xFE,0x7F,0xFD,0x67,0xCB, + + 0xAE,0x9E,0xE7,0xCF,0xBE,0xBE,0x77,0xEB,0xEE,0xDE,0xF7,0xEF,0xFE,0xFE,0x6F,0xDB, + + 0xAF,0x9F,0xEF,0xDF,0xBF,0xBF,0x7F,0xFB,0xEF,0xDF,0xFF,0xFF,0xFF,0xFF,0x00,0x00, + + 0x00,0x00,0x80,0x04,0x10,0x20,0x10,0x20,0x40,0x40,0x90,0x24,0x50,0x60,0x08,0x10, + + 0x01,0x01,0x88,0x14,0x11,0x21,0x18,0x30,0x41,0x41,0x98,0x34,0x51,0x61,0x01,0x01, + + 0x80,0x02,0x81,0x05,0x90,0x22,0x11,0x21,0xC0,0x42,0x91,0x25,0xD0,0x62,0x09,0x11, + + 0x81,0x03,0x89,0x15,0x91,0x23,0x19,0x31,0xC1,0x43,0x99,0x35,0xD1,0x63,0x40,0x40, + + 0x02,0x04,0xC0,0x44,0x12,0x24,0x50,0x60,0x42,0x44,0xD0,0x64,0x52,0x64,0x48,0x50, + + 0x03,0x05,0xC8,0x54,0x13,0x25,0x58,0x70,0x43,0x45,0xD8,0x74,0x53,0x65,0x41,0x41, + + 0x82,0x06,0xC1,0x45,0x92,0x26,0x51,0x61,0xC2,0x46,0xD1,0x65,0xD2,0x66,0x49,0x51, + + 0x83,0x07,0xC9,0x55,0x93,0x27,0x59,0x71,0xC3,0x47,0xD9,0x75,0xD3,0x67,0x02,0x08, + + 0x08,0x08,0x82,0x0C,0x18,0x28,0x12,0x28,0x48,0x48,0x92,0x2C,0x58,0x68,0x0A,0x18, + + 0x09,0x09,0x8A,0x1C,0x19,0x29,0x1A,0x38,0x49,0x49,0x9A,0x3C,0x59,0x69,0x03,0x09, + + 0x88,0x0A,0x83,0x0D,0x98,0x2A,0x13,0x29,0xC8,0x4A,0x93,0x2D,0xD8,0x6A,0x0B,0x19, + + 0x89,0x0B,0x8B,0x1D,0x99,0x2B,0x1B,0x39,0xC9,0x4B,0x9B,0x3D,0xD9,0x6B,0x42,0x48, + + 0x0A,0x0C,0xC2,0x4C,0x1A,0x2C,0x52,0x68,0x4A,0x4C,0xD2,0x6C,0x5A,0x6C,0x4A,0x58, + + 0x0B,0x0D,0xCA,0x5C,0x1B,0x2D,0x5A,0x78,0x4B,0x4D,0xDA,0x7C,0x5B,0x6D,0x43,0x49, + + 0x8A,0x0E,0xC3,0x4D,0x9A,0x2E,0x53,0x69,0xCA,0x4E,0xD3,0x6D,0xDA,0x6E,0x4B,0x59, + + 0x8B,0x0F,0xCB,0x5D,0x9B,0x2F,0x5B,0x79,0xCB,0x4F,0xDB,0x7D,0xDB,0x6F,0x04,0x80, + + 0x20,0x10,0x84,0x84,0x30,0x30,0x14,0xA0,0x60,0x50,0x94,0xA4,0x70,0x70,0x0C,0x90, + + 0x21,0x11,0x8C,0x94,0x31,0x31,0x1C,0xB0,0x61,0x51,0x9C,0xB4,0x71,0x71,0x05,0x81, + + 0xA0,0x12,0x85,0x85,0xB0,0x32,0x15,0xA1,0xE0,0x52,0x95,0xA5,0xF0,0x72,0x0D,0x91, + + 0xA1,0x13,0x8D,0x95,0xB1,0x33,0x1D,0xB1,0xE1,0x53,0x9D,0xB5,0xF1,0x73,0x44,0xC0, + + 0x22,0x14,0xC4,0xC4,0x32,0x34,0x54,0xE0,0x62,0x54,0xD4,0xE4,0x72,0x74,0x4C,0xD0, + + 0x23,0x15,0xCC,0xD4,0x33,0x35,0x5C,0xF0,0x63,0x55,0xDC,0xF4,0x73,0x75,0x45,0xC1, + + 0xA2,0x16,0xC5,0xC5,0xB2,0x36,0x55,0xE1,0xE2,0x56,0xD5,0xE5,0xF2,0x76,0x4D,0xD1, + + 0xA3,0x17,0xCD,0xD5,0xB3,0x37,0x5D,0xF1,0xE3,0x57,0xDD,0xF5,0xF3,0x77,0x06,0x88, + + 0x28,0x18,0x86,0x8C,0x38,0x38,0x16,0xA8,0x68,0x58,0x96,0xAC,0x78,0x78,0x0E,0x98, + + 0x29,0x19,0x8E,0x9C,0x39,0x39,0x1E,0xB8,0x69,0x59,0x9E,0xBC,0x79,0x79,0x07,0x89, + + 0xA8,0x1A,0x87,0x8D,0xB8,0x3A,0x17,0xA9,0xE8,0x5A,0x97,0xAD,0xF8,0x7A,0x0F,0x99, + + 0xA9,0x1B,0x8F,0x9D,0xB9,0x3B,0x1F,0xB9,0xE9,0x5B,0x9F,0xBD,0xF9,0x7B,0x46,0xC8, + + 0x2A,0x1C,0xC6,0xCC,0x3A,0x3C,0x56,0xE8,0x6A,0x5C,0xD6,0xEC,0x7A,0x7C,0x4E,0xD8, + + 0x2B,0x1D,0xCE,0xDC,0x3B,0x3D,0x5E,0xF8,0x6B,0x5D,0xDE,0xFC,0x7B,0x7D,0x47,0xC9, + + 0xAA,0x1E,0xC7,0xCD,0xBA,0x3E,0x57,0xE9,0xEA,0x5E,0xD7,0xED,0xFA,0x7E,0x4F,0xD9, + + 0xAB,0x1F,0xCF,0xDD,0xBB,0x3F,0x5F,0xF9,0xEB,0x5F,0xDF,0xFD,0xFB,0x7F,0x20,0x02, + + 0x04,0x80,0xA0,0x06,0x14,0xA0,0x30,0x22,0x44,0xC0,0xB0,0x26,0x54,0xE0,0x28,0x12, + + 0x05,0x81,0xA8,0x16,0x15,0xA1,0x38,0x32,0x45,0xC1,0xB8,0x36,0x55,0xE1,0x21,0x03, + + 0x84,0x82,0xA1,0x07,0x94,0xA2,0x31,0x23,0xC4,0xC2,0xB1,0x27,0xD4,0xE2,0x29,0x13, + + 0x85,0x83,0xA9,0x17,0x95,0xA3,0x39,0x33,0xC5,0xC3,0xB9,0x37,0xD5,0xE3,0x60,0x42, + + 0x06,0x84,0xE0,0x46,0x16,0xA4,0x70,0x62,0x46,0xC4,0xF0,0x66,0x56,0xE4,0x68,0x52, + + 0x07,0x85,0xE8,0x56,0x17,0xA5,0x78,0x72,0x47,0xC5,0xF8,0x76,0x57,0xE5,0x61,0x43, + + 0x86,0x86,0xE1,0x47,0x96,0xA6,0x71,0x63,0xC6,0xC6,0xF1,0x67,0xD6,0xE6,0x69,0x53, + + 0x87,0x87,0xE9,0x57,0x97,0xA7,0x79,0x73,0xC7,0xC7,0xF9,0x77,0xD7,0xE7,0x22,0x0A, + + 0x0C,0x88,0xA2,0x0E,0x1C,0xA8,0x32,0x2A,0x4C,0xC8,0xB2,0x2E,0x5C,0xE8,0x2A,0x1A, + + 0x0D,0x89,0xAA,0x1E,0x1D,0xA9,0x3A,0x3A,0x4D,0xC9,0xBA,0x3E,0x5D,0xE9,0x23,0x0B, + + 0x8C,0x8A,0xA3,0x0F,0x9C,0xAA,0x33,0x2B,0xCC,0xCA,0xB3,0x2F,0xDC,0xEA,0x2B,0x1B, + + 0x8D,0x8B,0xAB,0x1F,0x9D,0xAB,0x3B,0x3B,0xCD,0xCB,0xBB,0x3F,0xDD,0xEB,0x62,0x4A, + + 0x0E,0x8C,0xE2,0x4E,0x1E,0xAC,0x72,0x6A,0x4E,0xCC,0xF2,0x6E,0x5E,0xEC,0x6A,0x5A, + + 0x0F,0x8D,0xEA,0x5E,0x1F,0xAD,0x7A,0x7A,0x4F,0xCD,0xFA,0x7E,0x5F,0xED,0x63,0x4B, + + 0x8E,0x8E,0xE3,0x4F,0x9E,0xAE,0x73,0x6B,0xCE,0xCE,0xF3,0x6F,0xDE,0xEE,0x6B,0x5B, + + 0x8F,0x8F,0xEB,0x5F,0x9F,0xAF,0x7B,0x7B,0xCF,0xCF,0xFB,0x7F,0xDF,0xEF,0x24,0x82, + + 0x24,0x90,0xA4,0x86,0x34,0xB0,0x34,0xA2,0x64,0xD0,0xB4,0xA6,0x74,0xF0,0x2C,0x92, + + 0x25,0x91,0xAC,0x96,0x35,0xB1,0x3C,0xB2,0x65,0xD1,0xBC,0xB6,0x75,0xF1,0x25,0x83, + + 0xA4,0x92,0xA5,0x87,0xB4,0xB2,0x35,0xA3,0xE4,0xD2,0xB5,0xA7,0xF4,0xF2,0x2D,0x93, + + 0xA5,0x93,0xAD,0x97,0xB5,0xB3,0x3D,0xB3,0xE5,0xD3,0xBD,0xB7,0xF5,0xF3,0x64,0xC2, + + 0x26,0x94,0xE4,0xC6,0x36,0xB4,0x74,0xE2,0x66,0xD4,0xF4,0xE6,0x76,0xF4,0x6C,0xD2, + + 0x27,0x95,0xEC,0xD6,0x37,0xB5,0x7C,0xF2,0x67,0xD5,0xFC,0xF6,0x77,0xF5,0x65,0xC3, + + 0xA6,0x96,0xE5,0xC7,0xB6,0xB6,0x75,0xE3,0xE6,0xD6,0xF5,0xE7,0xF6,0xF6,0x6D,0xD3, + + 0xA7,0x97,0xED,0xD7,0xB7,0xB7,0x7D,0xF3,0xE7,0xD7,0xFD,0xF7,0xF7,0xF7,0x26,0x8A, + + 0x2C,0x98,0xA6,0x8E,0x3C,0xB8,0x36,0xAA,0x6C,0xD8,0xB6,0xAE,0x7C,0xF8,0x2E,0x9A, + + 0x2D,0x99,0xAE,0x9E,0x3D,0xB9,0x3E,0xBA,0x6D,0xD9,0xBE,0xBE,0x7D,0xF9,0x27,0x8B, + + 0xAC,0x9A,0xA7,0x8F,0xBC,0xBA,0x37,0xAB,0xEC,0xDA,0xB7,0xAF,0xFC,0xFA,0x2F,0x9B, + + 0xAD,0x9B,0xAF,0x9F,0xBD,0xBB,0x3F,0xBB,0xED,0xDB,0xBF,0xBF,0xFD,0xFB,0x66,0xCA, + + 0x2E,0x9C,0xE6,0xCE,0x3E,0xBC,0x76,0xEA,0x6E,0xDC,0xF6,0xEE,0x7E,0xFC,0x6E,0xDA, + + 0x2F,0x9D,0xEE,0xDE,0x3F,0xBD,0x7E,0xFA,0x6F,0xDD,0xFE,0xFE,0x7F,0xFD,0x67,0xCB, + + 0xAE,0x9E,0xE7,0xCF,0xBE,0xBE,0x77,0xEB,0xEE,0xDE,0xF7,0xEF,0xFE,0xFE,0x6F,0xDB, + + 0xAF,0x9F,0xEF,0xDF,0xBF,0xBF,0x7F,0xFB,0xEF,0xDF,0xFF,0xFF,0x90,0xAF, diff --git a/drivers/input/touchscreen/GT915L/FW_EACH.txt b/drivers/input/touchscreen/GT915L/FW_EACH.txt new file mode 100644 index 0000000000000..09980ef2ca352 --- /dev/null +++ b/drivers/input/touchscreen/GT915L/FW_EACH.txt @@ -0,0 +1,11265 @@ + 0x00,0x01,0x60,0x00,0x39,0x31,0x35,0x4C,0x00,0x00,0x00,0x00,0x10,0x62,0x80,0x00, + + 0x55,0x40,0xBD,0xDA,0xFD,0x24,0x34,0xDF,0x44,0x40,0xAF,0xEB,0xE9,0x2C,0xC8,0xB4, + + 0x25,0x41,0x8C,0x90,0x5F,0xA4,0x22,0xB7,0xED,0x5E,0x58,0x35,0x89,0x94,0x01,0x88, + + 0x86,0x02,0x72,0xFC,0x81,0xD9,0x39,0x25,0xC8,0xE2,0xE1,0xE3,0x7A,0x23,0x09,0x05, + + 0x87,0x03,0xB3,0xE6,0xF0,0x25,0x23,0xB6,0x6D,0x4B,0x83,0x4A,0xAE,0x73,0x1E,0xA2, + + 0x12,0xF9,0x91,0xBE,0x36,0x39,0x28,0x69,0xEF,0x76,0xA8,0xB2,0xB3,0xB8,0x37,0x10, + + 0x4F,0x13,0x6D,0xB6,0xF3,0xB4,0xFC,0x02,0xCD,0xEA,0xE2,0x2E,0xE8,0x70,0xD6,0xBE, + + 0x7B,0x65,0x66,0xA7,0x72,0xBA,0xC1,0x6A,0x46,0x12,0x2C,0x17,0x0B,0x39,0x01,0x45, + + 0x48,0x08,0xB2,0x3E,0x47,0x28,0x21,0x81,0xCB,0x21,0x79,0x51,0x61,0x67,0xC0,0xAC, + + 0x2C,0x48,0xCA,0x9B,0xB9,0xA1,0x96,0xDE,0xC8,0x68,0x46,0xAA,0xBE,0x26,0x9A,0xBC, + + 0x2F,0x49,0x04,0xFC,0x9B,0x23,0x3A,0x11,0xA8,0x2F,0x64,0x18,0xE7,0x49,0xCB,0x4A, + + 0xC0,0x01,0x32,0x6D,0xC8,0x68,0xEB,0x21,0x17,0xC5,0xE3,0x6B,0x7A,0x94,0xC8,0xF0, + + 0x2A,0x6E,0xED,0x6F,0x3A,0x2D,0xAF,0xD3,0x8A,0xAB,0x19,0x36,0x5D,0x3F,0xBA,0x6C, + + 0x87,0x1A,0xF0,0x74,0xE9,0x78,0xC2,0xC7,0x42,0x4E,0xFE,0xC7,0x5A,0x56,0xF3,0x7C, + + 0x8E,0xA3,0xB1,0x32,0xCF,0x22,0xFA,0x0B,0xC7,0x1E,0x7F,0x9E,0x9B,0x91,0x3C,0x54, + + 0x41,0x01,0xBB,0x36,0x7A,0xBF,0x6D,0x6F,0xF2,0xE1,0x22,0x6D,0xA2,0xF3,0x70,0xF9, + + 0x66,0x3F,0xF9,0x06,0x2B,0x20,0x25,0x7E,0x6A,0xE0,0x70,0x26,0x28,0xC2,0x04,0x80, + + 0x78,0xF8,0xD4,0x9B,0x1A,0xA4,0x74,0x60,0xFF,0xDD,0xEC,0x96,0x04,0xAF,0xDE,0xB0, + + 0x26,0xE9,0xFA,0xD2,0x97,0x7D,0x6F,0x97,0x9E,0xDB,0x6F,0xB4,0x49,0x8C,0x4F,0x28, + + 0x82,0x11,0x55,0x9E,0x9E,0x7C,0xCE,0xA0,0x6E,0x5B,0x05,0x1F,0xF0,0x02,0x02,0x1D, + + 0x24,0xE6,0xF9,0x68,0x8F,0x71,0xCA,0x11,0x08,0x63,0xBA,0x57,0x31,0x8C,0x64,0xC5, + + 0x24,0x34,0x57,0x9F,0x08,0xEB,0xF0,0x8B,0xEC,0xFB,0xEE,0x0F,0xC5,0x35,0xE0,0xA2, + + 0xFD,0xEA,0xFE,0xED,0xE6,0x96,0xCC,0x1A,0xDD,0x75,0x23,0x8A,0x5D,0xAA,0x6B,0x61, + + 0x69,0xF6,0xFF,0x7D,0x41,0x6B,0x2D,0xC6,0x5B,0x30,0x8C,0x6D,0x0F,0x87,0x77,0x4F, + + 0x54,0x56,0xB5,0x2E,0x52,0xA4,0x19,0x82,0x67,0x66,0xE2,0x50,0x08,0xEA,0xC6,0x59, + + 0xE3,0x03,0x82,0x86,0xC4,0x3B,0x5C,0x35,0x9F,0xD5,0xA1,0x4E,0x5C,0xF5,0x71,0x1A, + + 0xA1,0x11,0xDA,0x18,0x31,0x8D,0x9D,0xE7,0x2A,0x55,0x9F,0xC3,0x05,0x86,0xF8,0xFB, + + 0x4F,0x04,0x47,0x8C,0x60,0xCF,0xF3,0x8E,0xC9,0x7A,0xBC,0x47,0x93,0x75,0xD0,0xDB, + + 0xDE,0xE3,0x50,0x95,0x3E,0x3C,0x09,0xDB,0xC8,0x4E,0x24,0x18,0x0E,0xE6,0x68,0x2A, + + 0x99,0x79,0xBD,0xE8,0x51,0x33,0x28,0xEE,0x83,0x38,0x02,0x16,0xE3,0x1F,0x36,0x32, + + 0xC2,0x59,0x71,0xE1,0xC4,0xE0,0x26,0x8B,0xC8,0x38,0x3B,0x97,0xED,0x75,0x7F,0xE1, + + 0x09,0xB2,0xC6,0x3C,0x3E,0x3E,0x86,0x1A,0x66,0x43,0xFA,0x6D,0x35,0xDE,0x09,0xDF, + + 0x88,0x5F,0x1B,0x23,0x62,0x5C,0x27,0xDD,0xE8,0x6F,0x59,0x87,0x65,0xE0,0xB0,0xA6, + + 0x04,0xC0,0xE8,0x94,0xB7,0xEC,0x22,0x3A,0xD5,0xAC,0x14,0x44,0x70,0xEA,0x28,0x12, + + 0x05,0xC1,0xB2,0xEA,0x15,0xE3,0x32,0x12,0xD4,0xA5,0x43,0x32,0xF8,0xA0,0x21,0x1F, + + 0x84,0x82,0x12,0x41,0xD4,0x59,0xE5,0x71,0x87,0x32,0x31,0x50,0xF0,0x95,0x29,0x9F, + + 0x85,0x83,0x65,0x42,0x17,0xAB,0x31,0x23,0x26,0x09,0x9C,0x31,0x41,0x87,0x90,0x91, + + 0xE7,0xE8,0x45,0xA4,0xF6,0x15,0x08,0x45,0xE7,0x85,0x88,0x29,0xED,0xFF,0x13,0x2C, + + 0x25,0x68,0x97,0x3D,0xCB,0xAA,0xD8,0x98,0x83,0xCA,0x43,0xD3,0xA0,0x58,0x06,0xB8, + + 0x67,0x10,0xCA,0xEF,0xFE,0xA9,0x39,0x6A,0x7F,0x67,0xB0,0x18,0xAA,0x19,0x2F,0xF5, + + 0x4C,0x0A,0xDB,0x6F,0x4E,0x04,0x78,0x05,0xE3,0xB0,0x2D,0x8C,0x26,0x84,0x22,0x0A, + + 0x0C,0xC8,0x57,0xFE,0x14,0xA7,0x12,0x2B,0x09,0x07,0x88,0xA9,0x78,0x15,0x2A,0x1A, + + 0x0D,0xC9,0xF3,0x88,0x7A,0xB1,0x3E,0x3E,0x0D,0xD9,0xC2,0x61,0x8D,0xE6,0x23,0x2A, + + 0x8C,0x8A,0x4B,0x21,0x1B,0x5F,0xDC,0x59,0x4C,0xBA,0x94,0xCD,0x3C,0xFF,0xA0,0x58, + + 0x8D,0x8B,0x2B,0x62,0xC1,0x7F,0x7B,0x1B,0xCC,0xCF,0x89,0x17,0x08,0x5F,0xCE,0xD5, + + 0xF1,0x01,0x9A,0xB4,0xA3,0x78,0x89,0x66,0xF7,0x6D,0x89,0x01,0x70,0x93,0x44,0x1D, + + 0xEE,0x3B,0x92,0x31,0xC3,0xA2,0x02,0x72,0xEA,0x8C,0xF2,0x6E,0xE2,0xDB,0x80,0xB5, + + 0x88,0xAE,0x9B,0x7D,0x69,0x9B,0xD3,0x81,0x6B,0x61,0xB3,0xB8,0xD2,0xD8,0x14,0x29, + + 0x5D,0x10,0xD9,0x00,0x56,0xA0,0x45,0x7C,0xFB,0x60,0x06,0x62,0x4C,0x42,0x1E,0x60, + + 0x88,0x6E,0x0C,0x24,0xEB,0xEF,0x3C,0x08,0x85,0xB6,0x60,0x5C,0x81,0x46,0x2C,0x6F, + + 0x25,0x1C,0x0C,0x85,0x13,0xD5,0x88,0x58,0x84,0xB7,0xC7,0xC8,0xAF,0x2E,0x5E,0x5D, + + 0x13,0x89,0x0D,0x34,0x7C,0xD1,0x81,0x4D,0x05,0xB4,0x8E,0x2D,0xF5,0x52,0xD5,0x9B, + + 0x7A,0x0C,0x76,0x95,0xCA,0x33,0x89,0xF9,0x2C,0x97,0x3A,0x64,0x56,0xCE,0x22,0xC5, + + 0x87,0x87,0xCB,0x9C,0x18,0x28,0x49,0xD3,0xE2,0xC8,0xC9,0x68,0xCD,0x04,0xED,0xD9, + + 0xA3,0xC1,0x4C,0x59,0xCE,0xE3,0xEC,0x5D,0x90,0xE5,0x05,0x84,0xA6,0x8A,0x1D,0xE7, + + 0x18,0xB6,0xCB,0xC1,0x98,0x1A,0x8F,0xEB,0x02,0xD9,0x9C,0x85,0x17,0xCA,0xC9,0xB1, + + 0x4C,0x98,0xD6,0x5C,0x5E,0xF3,0x40,0xC2,0x63,0xCB,0x6D,0x06,0x54,0xF5,0x78,0xA8, + + 0xF9,0x33,0x4E,0x2C,0x98,0x3F,0x1F,0xE4,0xA5,0xBC,0x8C,0xF0,0x87,0xB9,0x1E,0x6B, + + 0x54,0x72,0x06,0x3C,0xE2,0x36,0x10,0xBC,0xFC,0x85,0x05,0xAC,0x5D,0xB7,0xF9,0xD0, + + 0xC7,0x81,0x73,0xA9,0x52,0xD9,0x9E,0x49,0x40,0xC6,0x88,0x45,0x17,0xF5,0x71,0x90, + + 0xAD,0x30,0x6F,0x9F,0xEB,0x65,0x11,0xBC,0x78,0x25,0xFC,0x41,0x05,0xF4,0xD2,0xA8, + + 0x0A,0x96,0x87,0x8E,0x6E,0x13,0x8E,0x99,0xCD,0xCC,0x49,0xD3,0x81,0x21,0xD0,0x53, + + 0x0B,0xEA,0xD1,0x50,0xC4,0x20,0x81,0x84,0x59,0x02,0x81,0xA4,0x51,0x61,0xE5,0xDC, + + 0x0D,0xAE,0x47,0xB1,0x20,0x61,0x8F,0xCF,0x13,0xAF,0x23,0x11,0x07,0x9D,0x94,0xCE, + + 0x02,0x30,0x8A,0x25,0xE3,0x11,0x40,0x52,0x14,0x42,0xD6,0x5A,0x6E,0xFD,0xEE,0x15, + + 0x9E,0x9D,0x64,0xE2,0x00,0xAB,0xEB,0x07,0xE1,0xBF,0x96,0xDF,0xA5,0x0E,0x89,0x6B, + + 0x9F,0xBE,0xD2,0x11,0x9F,0x6E,0x42,0x31,0xCF,0xFE,0x7D,0x42,0x30,0x41,0xE0,0x6B, + + 0x1A,0x0A,0x01,0x82,0x37,0x32,0x81,0x53,0x4E,0xDD,0xF6,0x65,0xC2,0x79,0x32,0x9F, + + 0x72,0x1E,0xD3,0x05,0xBE,0xA6,0x43,0x35,0x4F,0x9C,0x81,0x3C,0xB6,0x23,0xBF,0x32, + + 0xD4,0xDB,0x77,0x29,0x65,0x24,0x40,0x49,0x0D,0x28,0xEA,0xF7,0x6F,0x26,0x76,0x9C, + + 0x05,0xF6,0x08,0xE9,0x4E,0x2F,0xCE,0x86,0x60,0x05,0x18,0xC9,0x74,0x7E,0xED,0x3E, + + 0x48,0x7C,0x2D,0x36,0x8D,0xD0,0x08,0xFA,0x27,0xE0,0x06,0xB1,0xD1,0x86,0x86,0x91, + + 0xC3,0xD2,0x8B,0x12,0x72,0x81,0xB1,0x49,0xE1,0xD6,0xBE,0x81,0xC7,0x7C,0x67,0xE2, + + 0x54,0xA6,0x94,0x0A,0xF3,0x6C,0x48,0x2D,0xC6,0xB7,0xD3,0x5F,0x34,0xA9,0xF7,0x6A, + + 0xD8,0x56,0xF4,0x1B,0x3D,0xA4,0x22,0xD3,0xE5,0x44,0xC3,0xB3,0xBE,0x7B,0x7B,0xC7, + + 0x69,0xB6,0xBD,0xEF,0xF2,0x4E,0x83,0x4B,0x7B,0x2F,0x69,0x2F,0xC2,0xE7,0x31,0x53, + + 0x32,0x4A,0xF5,0x28,0x66,0x86,0xE2,0x1E,0x68,0x34,0x61,0x3F,0xD3,0x70,0x8B,0x77, + + 0x15,0x17,0x5F,0xB7,0xFB,0xAA,0x4A,0xEC,0x34,0x7F,0xB5,0x1A,0x79,0xEC,0x02,0xC9, + + 0xFE,0x42,0x14,0x3A,0xC1,0xB0,0x5B,0x1E,0xB0,0x21,0x76,0x0F,0x44,0xCB,0x7C,0xCD, + + 0xF4,0x3C,0xC3,0xB7,0x17,0x35,0x0A,0x07,0x6F,0xD1,0x8D,0x95,0xDE,0x2F,0x4A,0x26, + + 0x2C,0x0C,0x0B,0xE0,0xC1,0x25,0xE4,0xE2,0x34,0x92,0x46,0xF9,0xA5,0x97,0x8C,0x62, + + 0x91,0x86,0xE6,0x84,0xD7,0x2B,0xEC,0xA8,0x9D,0x1F,0x75,0xD7,0x1C,0xB1,0x14,0x8D, + + 0xD0,0x7D,0x32,0x88,0x13,0x20,0xB8,0x52,0xE2,0x35,0x1C,0xC6,0x96,0x6A,0x0B,0x63, + + 0x84,0x0F,0x63,0xF3,0xA0,0x31,0x85,0x8B,0x64,0xF6,0x6F,0xD6,0xA3,0x7B,0xC9,0x6B, + + 0x58,0x71,0x0D,0x53,0xDD,0x7D,0x75,0xB7,0xE7,0xD3,0x7C,0xC3,0x7E,0xF5,0xBE,0xB6, + + 0xAD,0x92,0xCC,0xC0,0xB2,0xDC,0x9E,0x20,0x60,0x38,0xB4,0xE6,0x0B,0x79,0xB6,0x70, + + 0x0F,0x65,0xCD,0xB2,0xC8,0x59,0x4D,0x16,0x71,0x18,0x19,0x16,0x40,0xE5,0x41,0x81, + + 0xA0,0x9B,0x9C,0xAB,0x17,0xA9,0x0C,0x8E,0x47,0xF0,0x9F,0xF8,0x70,0x75,0x8D,0x29, + + 0xCC,0x1D,0xF3,0x18,0x69,0x88,0x3F,0xF1,0x44,0x4C,0x65,0x0B,0xE3,0x3A,0x79,0xF6, + + 0x26,0xC7,0x97,0x64,0xF6,0xF3,0x7D,0x2C,0x28,0xC6,0x97,0xEC,0x3C,0xF5,0x72,0xBC, + + 0x98,0x10,0x9E,0xB0,0x72,0x22,0x1C,0x62,0x88,0x32,0x0E,0x9C,0x1D,0xB9,0xB8,0x0C, + + 0x57,0x04,0x83,0x85,0xDF,0xAB,0xD7,0xB9,0x3B,0x18,0x6D,0x5C,0x8B,0x5A,0x88,0xE6, + + 0x24,0x78,0x01,0xFB,0x4E,0x90,0x25,0x3E,0x45,0xF7,0x8F,0x90,0xF5,0x7A,0xC4,0x39, + + 0x59,0x9C,0xF8,0x00,0xE8,0xA3,0x31,0x1C,0x7E,0x47,0x29,0x68,0x04,0x71,0xDA,0xDC, + + 0xA2,0x32,0xD4,0xDE,0x88,0xA0,0x62,0x6A,0x6D,0xAE,0xBE,0x5C,0x63,0x72,0xEF,0xF4, + + 0x8E,0x1F,0x2B,0xB6,0x64,0xE3,0x30,0x9F,0xC9,0x6C,0x8E,0x78,0x5F,0x81,0x1F,0xED, + + 0xAF,0x33,0xD5,0xDF,0x29,0x37,0x0A,0x11,0x35,0x92,0x86,0x74,0xD9,0xCF,0x9D,0x9D, + + 0xEF,0x8F,0x3D,0x41,0x1A,0x0F,0xA0,0x58,0xA3,0xD0,0x51,0x50,0xA3,0x8E,0x15,0x89, + + 0x00,0x8E,0xB0,0x07,0x7E,0x40,0xC2,0x3A,0xB8,0x0E,0x5F,0xC0,0xD5,0x61,0x98,0x9D, + + 0x81,0x8D,0xB0,0xEF,0x19,0xEF,0x0E,0xD5,0xD4,0x1F,0x56,0x67,0x9C,0x3F,0x12,0x63, + + 0x05,0x9F,0xAD,0xEA,0x91,0xA0,0xA9,0x49,0x66,0xA6,0x83,0xDF,0x43,0x2C,0xF4,0x5B, + + 0x00,0x1F,0xE5,0xAE,0xCC,0x69,0x13,0x9C,0xBE,0xD5,0xB8,0xEF,0xDB,0x69,0x31,0x28, + + 0xA0,0x95,0x7E,0xA0,0x24,0x13,0x1F,0x82,0xC7,0xDA,0x38,0xB6,0x55,0xFE,0xBF,0x83, + + 0x96,0x0B,0xF9,0x57,0x1B,0x00,0x2A,0x63,0x49,0x3B,0x97,0x0A,0xD0,0x15,0x91,0x51, + + 0xA3,0x9C,0x53,0xB7,0x93,0xE9,0xE2,0xF9,0xC6,0x97,0x1A,0x04,0xBB,0x26,0x38,0x08, + + 0x9E,0x20,0xB3,0x0B,0x3E,0x09,0x0D,0xC8,0xE0,0x15,0xEB,0xA0,0xB9,0x86,0x54,0xF8, + + 0xB8,0x5F,0x06,0xF6,0x8F,0x64,0xAA,0x40,0xEA,0xD9,0x52,0x12,0xBC,0x26,0x5B,0x2F, + + 0x31,0x7C,0x20,0x7C,0xF0,0x15,0x4B,0x0C,0x31,0xC5,0xD1,0x23,0xDD,0x6A,0xA3,0xF9, + + 0x34,0x3D,0xCC,0xE9,0x8F,0x66,0x04,0xDD,0xDD,0x16,0xEB,0x13,0xCB,0xF0,0x52,0xBE, + + 0x0A,0x88,0xF1,0xEE,0x6E,0x25,0x2B,0x05,0xEB,0x7D,0x08,0x18,0xD3,0x6A,0x92,0x52, + + 0xA8,0x96,0xB3,0x8E,0xBA,0xA6,0x5A,0xEA,0xC2,0x40,0xA1,0x7B,0x7B,0x60,0xF3,0x39, + + 0xBD,0x13,0xDD,0x97,0xBD,0xA6,0x8B,0xE3,0x6B,0x5D,0xF5,0x2F,0xCE,0x45,0x5B,0x28, + + 0xE3,0x4E,0x3E,0xDB,0xE1,0xF7,0x1D,0x53,0xC9,0x3C,0xA2,0xE1,0x38,0xAE,0xDB,0xFC, + + 0x0A,0x4F,0xDC,0x97,0xD4,0x31,0x90,0xF1,0xC7,0x7C,0x20,0x57,0x72,0x1B,0xF8,0x68, + + 0xB6,0xBE,0x14,0x6C,0xBA,0x07,0x15,0x50,0xC9,0x7D,0x84,0x16,0x98,0xB1,0x1A,0x26, + + 0x5F,0x0F,0xA3,0x7C,0x87,0x18,0x91,0xE9,0x2D,0x96,0xA5,0x25,0x74,0x2B,0xBD,0xE5, + + 0x56,0x83,0xA5,0x8F,0x86,0xC5,0x99,0xE0,0x46,0x7F,0x15,0x92,0x1C,0x69,0x18,0x46, + + 0x58,0xCC,0xE1,0x42,0x48,0xFF,0xD8,0x67,0x9D,0xB8,0xF7,0x80,0xF4,0xF7,0xD6,0x57, + + 0x29,0x1F,0xCC,0xE7,0xB8,0x08,0x05,0x8E,0xF5,0xDF,0xFB,0x84,0xD4,0xF1,0x2D,0x33, + + 0x95,0x60,0xBC,0x5C,0xD1,0xF5,0xCA,0x78,0x85,0xD2,0x72,0x05,0x74,0xF5,0xBA,0x2C, + + 0x5C,0xF9,0x8B,0xFF,0xD4,0xB3,0x7F,0x1B,0x3D,0x1C,0xFC,0x88,0x50,0xF1,0x9C,0x71, + + 0x3C,0x55,0x1C,0x49,0xFE,0x98,0x92,0xE0,0xA5,0x9C,0xEE,0xEB,0x4F,0x33,0xBE,0xF8, + + 0xDE,0xFC,0x8E,0x0A,0xCC,0x12,0x56,0xBC,0x8C,0xBF,0x41,0xC0,0x5F,0x14,0xDC,0x83, + + 0x49,0x65,0xEF,0xAE,0xDB,0x9A,0x1E,0x8F,0x6F,0xBE,0x0F,0x51,0xEC,0xB7,0x17,0x60, + + 0x01,0x96,0xD7,0x8E,0x5D,0x3A,0xC7,0xB3,0x8E,0xFB,0x39,0xF8,0x1C,0x0D,0x58,0x07, + + 0xF4,0xDE,0x9F,0xB6,0xAC,0xB4,0xA6,0x4A,0x42,0x7C,0xA6,0xF7,0x1D,0xDC,0xC2,0xA8, + + 0xF1,0xDF,0xCE,0x5F,0x0C,0xE0,0x89,0xBD,0x5C,0x6B,0x63,0x06,0xFF,0x46,0xB0,0x96, + + 0xAD,0xEE,0xE1,0x4B,0xC0,0xF5,0x67,0xDF,0xEA,0xF3,0x8F,0x13,0x7E,0x05,0xB8,0x5F, + + 0xAE,0xFF,0x2F,0x62,0x81,0xD3,0xC5,0x68,0x83,0x10,0xE4,0xFB,0x91,0xD3,0x10,0x05, + + 0x0C,0x42,0xEE,0x44,0x1C,0x21,0xCD,0x7F,0xE7,0x50,0x54,0xF4,0x0E,0x61,0xC8,0x59, + + 0x24,0x00,0x30,0xA6,0x15,0x13,0xA0,0xCF,0x51,0x0C,0x5C,0xB0,0x72,0xF3,0x08,0xF8, + + 0x05,0x62,0xD1,0x98,0xA3,0x08,0xAE,0xC7,0xF3,0xF5,0xA9,0xB1,0xF0,0xE0,0x1B,0x05, + + 0x87,0x69,0xD0,0x52,0x34,0xDC,0x40,0xCD,0x1C,0x0C,0xC0,0xCC,0x34,0x6A,0x42,0x80, + + 0x46,0x49,0x9A,0x26,0xD8,0xD5,0x02,0xE0,0xA3,0xEB,0xEA,0x9F,0x2D,0xFC,0x90,0xB8, + + 0xF1,0x48,0xB0,0x73,0xFA,0x26,0x3E,0x11,0x42,0x05,0x8B,0x06,0xB8,0x74,0x43,0xA7, + + 0xA2,0xD6,0x89,0x50,0x7B,0xD7,0xC7,0x12,0xAE,0x2A,0x0A,0x4A,0xD4,0x9E,0x4B,0xB7, + + 0xB0,0x4B,0xB1,0xA5,0x15,0x86,0x7D,0x53,0x2A,0xEE,0xE7,0x5D,0x5E,0xC1,0xF1,0x0C, + + 0x07,0x0E,0xDB,0xE5,0x1E,0x9A,0x13,0x57,0xEF,0x4C,0x94,0x8C,0x0C,0x28,0x72,0x49, + + 0xE2,0xC1,0xD3,0xF5,0xBC,0xDF,0x12,0x07,0x74,0x52,0x22,0xD4,0xD5,0xA6,0xC3,0x95, + + 0xB9,0xAE,0x9B,0x89,0xC2,0x5F,0x19,0x5A,0x9B,0x41,0x9F,0xC0,0xEB,0x6E,0xD0,0x1A, + + 0xF6,0x07,0xCA,0x7B,0x4F,0x23,0xC6,0xDF,0xD9,0xB6,0x42,0x92,0xE6,0x69,0xFA,0xA0, + + 0x85,0x43,0x54,0xBF,0x9E,0xA1,0x2D,0x90,0x4A,0x37,0xCC,0xAC,0x0E,0x2E,0x5E,0xB0, + + 0x00,0x40,0xF2,0xBC,0x5F,0x2B,0xED,0xC8,0xBF,0x2E,0x1A,0x3C,0x1B,0xED,0x83,0x51, + + 0x2B,0x42,0x91,0x63,0x71,0x4A,0xC6,0x98,0x8B,0xFF,0xDB,0x6D,0xBA,0xD6,0xB4,0xB9, + + 0xC3,0x0E,0x66,0xBC,0x3A,0xAF,0x9B,0x20,0xAA,0xC2,0xA3,0x6C,0xEB,0x6B,0x4E,0x15, + + 0x02,0x13,0x80,0x1C,0x03,0x5C,0x0A,0xD4,0xF2,0x58,0xCB,0x24,0x03,0x07,0xCC,0x40, + + 0xF6,0xCA,0x10,0xE6,0x5B,0x78,0x45,0x71,0xC4,0x5A,0xE2,0x7D,0x77,0x69,0x81,0x05, + + 0x86,0x89,0x3D,0xB4,0x9D,0x9D,0x91,0x81,0xC2,0x70,0x55,0x61,0x18,0xFF,0xFA,0x6C, + + 0x52,0x66,0xF3,0xF1,0xB7,0x81,0x1E,0xA1,0x46,0xDE,0x4A,0x31,0x97,0xD5,0xC4,0xD4, + + 0xC3,0x0F,0x40,0x35,0x0A,0xB4,0xC3,0x40,0x8F,0x24,0xAA,0xC9,0xFF,0xD9,0x8C,0xA4, + + 0xD6,0x57,0xD9,0xFC,0xDA,0x24,0x22,0x50,0x82,0xF3,0xE2,0x55,0xA5,0xDA,0x1C,0x27, + + 0xB2,0x59,0xFF,0x36,0x86,0x92,0xF9,0x93,0x28,0x55,0x05,0x7A,0x19,0xA7,0xD0,0xFD, + + 0xA5,0x14,0x21,0x47,0xB3,0x3F,0xCA,0x02,0x9F,0x3B,0xCA,0x55,0x1E,0xD7,0x1B,0xA6, + + 0x19,0x95,0x33,0xFF,0x15,0xCE,0x76,0xE3,0x6D,0x57,0xC6,0x2D,0x71,0x63,0xE2,0x70, + + 0xF7,0x5B,0x88,0xEE,0xBB,0x05,0xE6,0x7F,0x5A,0xFE,0xC8,0x54,0xFC,0x34,0x78,0x0D, + + 0xF5,0x89,0xB9,0xE9,0x6E,0x32,0x4E,0x41,0x4F,0x4A,0x7B,0xCB,0x07,0x73,0x4C,0xFE, + + 0xA8,0xB9,0x07,0x7F,0xBF,0x40,0xDF,0x21,0x44,0x53,0x64,0xDD,0x85,0x82,0xA8,0x4A, + + 0xAA,0xA7,0xC3,0xBF,0x0A,0x5E,0x36,0xA7,0x45,0x51,0xEC,0x1F,0x02,0xD3,0xCA,0x5C, + + 0x52,0x0C,0xEE,0x3E,0x3D,0x35,0x86,0x9A,0xA1,0xAC,0x60,0xED,0x9A,0xD2,0x7F,0x19, + + 0xF6,0x17,0xB9,0xE5,0xF2,0x6F,0x31,0x49,0x68,0x22,0x44,0x9E,0xC6,0x7D,0x8F,0x68, + + 0xE4,0x5D,0x06,0xE2,0xD9,0xEA,0x17,0xC4,0xED,0x57,0x4A,0x0E,0x8B,0xD2,0xF9,0xAD, + + 0x3B,0x82,0xA2,0x74,0x27,0x8A,0xC8,0xCA,0x87,0x8D,0x1F,0x49,0x89,0x3C,0xE8,0x4A, + + 0x0E,0x7A,0x4D,0x78,0x74,0xA5,0xE3,0x48,0xE2,0xD1,0x70,0x54,0x16,0x11,0x7E,0x89, + + 0xF7,0xF6,0x59,0x40,0x7D,0xD8,0x4E,0xDB,0xC4,0xD9,0x08,0x79,0x56,0xE6,0x2D,0x97, + + 0xF1,0xAF,0xD0,0x64,0x82,0x2A,0x06,0xD5,0x48,0x6E,0xC6,0xCF,0xD5,0x47,0xA6,0x46, + + 0xED,0x1E,0x98,0xB7,0x5B,0xA4,0x0E,0xC3,0xAD,0x87,0x4D,0x21,0xB7,0x42,0x10,0x32, + + 0x13,0xC8,0x7B,0x6C,0x6F,0xE7,0xD4,0xE1,0x2E,0xCF,0x9E,0x4F,0xBC,0xC6,0x38,0xBA, + + 0x23,0x0C,0xC7,0x36,0x87,0x13,0x0F,0x4B,0x2F,0xD7,0x62,0x94,0xF0,0x6B,0x7B,0xB1, + + 0x20,0xCA,0xEA,0x85,0x91,0xAF,0xFF,0xF7,0xC6,0x95,0x87,0x4A,0x1F,0xA4,0xE2,0x3E, + + 0xC2,0xCA,0x82,0x84,0x1F,0xF9,0xFF,0xB5,0x2F,0xCC,0xAB,0x7B,0x94,0xD1,0xAE,0x9E, + + 0x02,0x8F,0x2E,0x3E,0x3F,0xE8,0x72,0xA7,0xC0,0x64,0x61,0x91,0x22,0xEB,0xE9,0x33, + + 0xAE,0x5A,0x63,0x96,0x57,0xA2,0x4A,0x5A,0xDB,0xDC,0xBA,0xAB,0xC1,0x6C,0xEB,0xF3, + + 0x8D,0xC9,0xF2,0xDE,0x38,0x2C,0xA5,0xA0,0xAE,0xCF,0x0E,0x56,0x69,0xF2,0x28,0x57, + + 0x3D,0x7B,0xE8,0xB6,0x1E,0x17,0x74,0x42,0xCE,0x83,0xA2,0xEC,0xC3,0x67,0x6C,0xB2, + + 0xF1,0xC0,0x55,0x4E,0xF4,0x9C,0xA8,0x69,0x65,0x3C,0x05,0x4F,0x79,0x42,0x9B,0x38, + + 0xDD,0x85,0xEB,0xCB,0x9A,0xFC,0x44,0x1A,0xC8,0xC6,0xCB,0x91,0x72,0xE3,0x73,0x57, + + 0x72,0x08,0x47,0xCD,0xDF,0xA5,0x5D,0xDF,0xED,0x62,0xE8,0x0C,0xF5,0x3C,0xC8,0x6A, + + 0x88,0xDD,0x2F,0x02,0x29,0x90,0xB6,0xD1,0x37,0xDB,0xAC,0xAA,0x47,0x67,0xEC,0x0A, + + 0x94,0x9B,0x6F,0x8F,0x17,0xBC,0x1C,0xCF,0xC4,0xD8,0xB4,0xB2,0x94,0xBE,0x43,0xF6, + + 0x4D,0x5B,0x65,0xF7,0xC1,0xF0,0xB5,0xE5,0xAA,0xD4,0x0D,0x60,0x36,0x72,0xA9,0xB3, + + 0x87,0x33,0xAE,0xB7,0xE7,0x83,0x61,0xC0,0xD8,0xAC,0xE4,0x70,0x50,0x0C,0xAE,0xDE, + + 0x04,0xC6,0x30,0x42,0x35,0x0B,0x7E,0x91,0x5B,0xB8,0x67,0xD8,0x0E,0xE1,0x2E,0x34, + + 0x82,0x9E,0xEC,0xED,0x03,0x4E,0x1B,0x02,0xE7,0xCA,0x57,0xD0,0x9A,0x97,0x62,0x2B, + + 0x2E,0xDB,0xDB,0xB6,0x09,0xED,0xB1,0x18,0x6B,0x2B,0x64,0xEF,0x76,0x36,0x6B,0x95, + + 0xB1,0xD5,0xAD,0x2B,0x0B,0xF5,0xE6,0x79,0xE4,0x65,0x56,0x72,0x64,0xE8,0x18,0x6F, + + 0xCE,0x8C,0xC6,0xC5,0x5D,0xB5,0xEF,0xAA,0xE1,0x75,0xEF,0xE8,0xD9,0x01,0xD6,0x72, + + 0xCF,0xD4,0xD5,0x1C,0xBD,0x61,0x47,0xCB,0x7A,0xCF,0xE4,0xAE,0xDA,0xE2,0x37,0xF9, + + 0x9F,0xB0,0xBF,0x8A,0xBA,0x19,0xFA,0x24,0x8F,0xDE,0xEF,0xBE,0xCF,0x6D,0xD0,0x93, + + 0x08,0x80,0x97,0x60,0xB3,0xD9,0x77,0x8E,0xEB,0x69,0xCC,0xD9,0x70,0x7D,0xEC,0x47, + + 0x28,0xB6,0xED,0xF0,0x38,0xB4,0x48,0xD7,0xCD,0xB9,0x89,0x9D,0x0E,0x29,0x64,0xDB, + + 0x88,0xDC,0x5B,0x5A,0x34,0x6A,0x1E,0xB5,0x04,0xD0,0xDE,0xEA,0xAA,0xB8,0xA0,0x23, + + 0xBA,0xD3,0x2E,0x32,0xBC,0x65,0x49,0x4B,0x4D,0xB2,0x62,0xC5,0xCA,0xEE,0x31,0x7E, + + 0x11,0x34,0x32,0x9B,0x88,0xBF,0x19,0x5B,0x6D,0xA3,0x41,0x7A,0x2A,0x9D,0x69,0xEA, + + 0xFF,0x6C,0x84,0xC4,0x78,0x8D,0x10,0x33,0x29,0x58,0xD7,0x56,0x56,0xB2,0xD7,0xAD, + + 0xE0,0xDE,0x90,0x05,0x33,0xD3,0xD8,0x28,0x82,0xEC,0x80,0x31,0xAF,0xE1,0x63,0x41, + + 0x81,0x42,0xCA,0xE5,0x9C,0xDF,0x26,0x85,0x30,0x61,0x49,0xDA,0xB1,0x22,0x57,0x3D, + + 0x7E,0xF3,0x09,0x56,0x6D,0x38,0x07,0xC0,0x62,0x03,0x1B,0xB7,0x40,0x76,0xC0,0x03, + + 0xA1,0x05,0xFA,0xB7,0x41,0x3F,0x13,0x0A,0x43,0xE4,0x74,0x06,0xA1,0x01,0x88,0xCC, + + 0x77,0x0F,0x99,0x4B,0x29,0xA8,0x62,0xF4,0x15,0x0E,0xE3,0xC8,0xB8,0x36,0x55,0x45, + + 0x0B,0x09,0x36,0xA3,0xB6,0xF2,0x0B,0x21,0xC4,0xF4,0xE9,0x58,0x39,0x15,0xC9,0x12, + + 0x20,0x1C,0xB7,0xE9,0x7A,0xF4,0xA6,0x01,0xE3,0x4E,0x35,0x06,0xED,0xC1,0x3D,0x18, + + 0xE3,0x19,0x75,0x6A,0xE7,0x21,0x20,0x16,0xEB,0xE9,0xAA,0x3C,0xFB,0x6E,0x42,0x28, + + 0x6A,0x91,0xB4,0xC4,0x78,0x09,0x4C,0x9D,0xA2,0x2A,0x98,0x2D,0x5F,0xFB,0x3D,0x21, + + 0x07,0xFC,0x07,0xE5,0xE3,0x65,0x41,0xDA,0xAA,0x97,0xBA,0x43,0x79,0xED,0xCB,0x59, + + 0x8D,0xB4,0x93,0x19,0x10,0xD9,0x1D,0x0C,0xC0,0xEF,0xA3,0x7D,0xC1,0x6D,0x0E,0xB8, + + 0x0E,0x43,0x6E,0xDF,0x33,0x24,0xD6,0xD7,0x4B,0x8C,0x4F,0x9C,0xDA,0xC5,0xB2,0xA9, + + 0x7A,0xF2,0xD4,0xA7,0x68,0x2D,0x58,0x9A,0xC9,0x51,0x83,0xAD,0xDB,0x3F,0x1A,0x38, + + 0xE9,0xAE,0x43,0x2E,0x69,0x83,0x33,0x23,0x7A,0x43,0x02,0xE7,0xDB,0xEE,0x71,0xBB, + + 0xAF,0x14,0x16,0xE5,0xF0,0xA7,0xE2,0x1B,0x29,0x47,0x77,0x0F,0x11,0x16,0x50,0x73, + + 0x06,0xBF,0x44,0x1D,0xFC,0x38,0xEF,0xDF,0x6E,0xAF,0xAE,0x5B,0x76,0x68,0x1D,0xD7, + + 0xEB,0xB8,0xB4,0x6B,0xD8,0xA8,0x64,0x97,0x9C,0x5E,0x27,0xAB,0xD2,0x33,0x10,0x72, + + 0x90,0xBF,0x86,0x07,0x30,0x59,0x75,0xEE,0x83,0x8F,0xEF,0x27,0x61,0x6F,0x45,0x09, + + 0xA7,0x1B,0x6A,0xD5,0xB5,0x1F,0x27,0x33,0x7C,0x18,0x1D,0x75,0x73,0x77,0x7E,0x33, + + 0x07,0xBB,0xFA,0x7C,0x53,0x30,0x4F,0x64,0x38,0x29,0xCE,0xE6,0xC1,0xD9,0x8C,0x49, + + 0xD6,0x1D,0xEC,0x5E,0x32,0xF5,0xA3,0x83,0x12,0x3B,0xD4,0xE0,0xBB,0xE6,0xD9,0x43, + + 0x22,0x7D,0xBC,0xB6,0x84,0xBF,0x5D,0xCD,0x4E,0x5B,0x86,0x95,0x72,0x60,0xCD,0x92, + + 0x00,0x11,0xEB,0x79,0xC1,0x93,0xBA,0x31,0xCB,0x4C,0x14,0xE6,0x89,0x0D,0x06,0x77, + + 0xA5,0xBE,0xFE,0x0E,0xA9,0x65,0x6E,0x8F,0xCB,0x19,0xCA,0xCE,0x87,0x14,0x9F,0xA8, + + 0x2D,0xC6,0x4E,0x04,0x98,0x31,0xA9,0x08,0x9D,0x3A,0x79,0x3E,0xE8,0x64,0x96,0xC9, + + 0xF4,0xB7,0xBF,0x3F,0xB0,0x6A,0xA2,0x19,0x5C,0x39,0xF7,0xE7,0x41,0x77,0xB0,0x5E, + + 0x7F,0x11,0x89,0x6D,0xBD,0x79,0xDF,0xF4,0x2B,0x1A,0xA7,0x2F,0xF9,0x73,0x6F,0xA6, + + 0x8B,0x9B,0x13,0x75,0xB7,0x91,0xA1,0x8E,0x49,0xCE,0x88,0x0E,0x7E,0xD1,0x95,0x5C, + + 0x79,0x00,0xEE,0x36,0x52,0xAE,0x46,0x6C,0x6D,0x8F,0xA0,0xFA,0x92,0x72,0x07,0xD0, + + 0xAC,0xAC,0x90,0x5E,0xA9,0xB5,0x0E,0x10,0x4F,0xA1,0x04,0xDF,0x9A,0x7C,0x47,0xC8, + + 0xC8,0x1E,0xAE,0x1D,0xAC,0x92,0xCC,0xB9,0xE1,0x44,0x8D,0xD2,0x10,0x1B,0x7A,0x4F, + + 0x02,0x88,0xC0,0x4C,0xA1,0xAD,0x50,0x6D,0x6F,0xCD,0x99,0x0C,0xF5,0x8E,0x27,0x96, + + 0x04,0xC1,0x84,0x29,0x97,0xBD,0xA9,0x40,0xE6,0xC7,0x94,0x09,0xD7,0xFD,0xA1,0x3A, + + 0x7F,0x09,0xEB,0xE5,0xB5,0xE2,0xDD,0xB1,0x55,0xCA,0xD3,0x36,0xD5,0xA2,0x3E,0xE0, + + 0xBD,0xED,0x10,0x75,0xB6,0xF3,0x94,0xC3,0x64,0x1C,0x00,0x55,0x2A,0x6A,0x3F,0x24, + + 0x25,0xC4,0x31,0xB7,0x5F,0xE4,0x76,0xE6,0x14,0xC9,0x0F,0x14,0x94,0xE4,0xB0,0x32, + + 0x03,0xA9,0x28,0x16,0x76,0x08,0x49,0x10,0xC8,0x43,0x1F,0x08,0x36,0xE1,0x4D,0xA1, + + 0x80,0x54,0x56,0xEE,0x62,0xB5,0x79,0x6A,0x44,0xDA,0x0A,0x20,0x3F,0x95,0xDE,0xD1, + + 0x16,0xDA,0x38,0xF7,0x7A,0xE6,0x7F,0x33,0xCB,0x87,0x80,0x04,0xE1,0x6E,0xC1,0x4A, + + 0x40,0x5D,0x62,0x96,0xBD,0xA2,0x86,0x48,0xB3,0xCE,0xB6,0x4E,0x14,0x15,0x54,0x36, + + 0x45,0x98,0x69,0x3B,0xFC,0x06,0xC5,0xB8,0xD0,0x82,0xBC,0x46,0xD2,0xAB,0x36,0x78, + + 0xBC,0x08,0xA5,0xFF,0x94,0xE8,0x9E,0xCE,0x6D,0x3B,0xA9,0x2A,0xFF,0xA9,0x0B,0xCD, + + 0x6C,0x24,0x33,0xEC,0xB0,0xC7,0x03,0x87,0x40,0xA9,0xFC,0x28,0xDE,0xBA,0x5A,0xAA, + + 0x56,0xCE,0x4E,0x3C,0xD4,0xDF,0x7D,0xDF,0xCC,0xD0,0xD2,0xE4,0x5D,0x4C,0x53,0x9A, + + 0x47,0x06,0x3B,0xAD,0x29,0xC3,0x3A,0x1A,0x0F,0x30,0x02,0xB9,0xB6,0x5E,0x24,0xB7, + + 0x88,0x1C,0x9D,0xE2,0x7F,0x08,0xCA,0x09,0x31,0x47,0xAA,0x3A,0x7B,0x6E,0x2B,0xDF, + + 0xD9,0xEE,0xD5,0xF2,0x55,0x1C,0x09,0xDB,0xCB,0x6F,0x9D,0xB2,0x36,0xB5,0x22,0x06, + + 0x25,0xC2,0xE3,0xF4,0xB6,0xAC,0x6D,0x63,0xC1,0x59,0xB1,0x4E,0x7F,0x7B,0x0C,0x49, + + 0xCC,0xA0,0xAD,0x12,0x67,0xBC,0x5C,0xF8,0xD0,0xDE,0x43,0x92,0x73,0x43,0x23,0xAA, + + 0xEC,0x83,0x1C,0xE5,0x56,0xF2,0x31,0xC3,0xA0,0x5F,0x35,0x41,0x9F,0x6B,0xC1,0x01, + + 0xA5,0x9B,0xE5,0x92,0xD6,0xD3,0xAD,0x5B,0x60,0x9E,0x00,0x77,0xF1,0xDF,0xA4,0x5B, + + 0xC7,0x92,0xFA,0xF6,0xC9,0x4B,0x38,0x12,0x62,0x9B,0xCA,0x5E,0xD5,0x91,0x7C,0xDF, + + 0x21,0x27,0x53,0xE7,0x96,0x4A,0x23,0x14,0x0C,0x4C,0xE2,0x07,0xD4,0xB5,0x4C,0xAD, + + 0x07,0x11,0xDF,0x77,0x49,0x69,0xCA,0xB3,0xE5,0xCD,0xCB,0x5E,0x55,0x5B,0xB6,0x57, + + 0xF5,0x8A,0x56,0x72,0x40,0x1A,0x86,0x81,0x44,0x96,0xCF,0xC9,0x54,0x56,0xA0,0xB1, + + 0x14,0xDA,0xDE,0x0C,0xAD,0xE5,0xC9,0x6D,0xAE,0xF8,0xCE,0x89,0xDD,0x07,0x08,0xA7, + + 0x07,0x3D,0x6E,0x06,0x9C,0xB1,0x86,0xCA,0x25,0xD0,0xB6,0xBA,0xF4,0xF6,0x2F,0x3F, + + 0x2C,0x5A,0x9F,0x3D,0xB0,0xEA,0x7F,0x0F,0xDF,0x64,0x89,0xD7,0x73,0x0C,0x7F,0x3F, + + 0xC6,0x73,0xA9,0x6F,0xFD,0xF9,0xAA,0xC8,0xBE,0x5D,0xE6,0xF9,0x58,0xF2,0x2E,0xCF, + + 0x4D,0x9F,0xB3,0xF3,0xD5,0xF8,0x48,0x32,0x4D,0x4C,0xA3,0x1D,0x44,0x21,0x56,0x68, + + 0x0D,0x2D,0xE6,0x5B,0xC0,0x19,0xF8,0x78,0xFE,0x80,0xF8,0x42,0xD6,0x2D,0x1F,0x49, + + 0x3F,0xC3,0xD9,0x67,0xC8,0xFC,0x2E,0x54,0x4B,0xD5,0xA1,0x47,0x15,0xED,0xAF,0x42, + + 0xD8,0xDD,0xBA,0xD9,0x77,0xAC,0x07,0x13,0x94,0x90,0x6F,0xFF,0xFF,0xFF,0xFF,0x7A, + + 0x76,0xDF,0xD2,0x4F,0xFB,0x44,0x43,0xD3,0xC4,0xCB,0x35,0x22,0xC4,0x04,0xB3,0xB5, + + 0xF6,0x8A,0xB0,0x24,0x71,0x8E,0xBC,0x14,0xA8,0xA0,0x08,0xC4,0xA2,0xC0,0xBE,0x30, + + 0x21,0xFD,0x11,0x76,0xFC,0x83,0xE6,0x90,0xFE,0xED,0xA9,0xDB,0x7C,0x6F,0x49,0x2C, + + 0x6A,0x47,0x29,0x67,0xF3,0x1F,0x47,0xD3,0xC5,0x45,0x0C,0xC6,0x55,0xE8,0x72,0x64, + + 0xF6,0xE7,0xBE,0x42,0xFB,0x2B,0x31,0x44,0xFE,0x47,0x82,0x32,0xB9,0x00,0x88,0x55, + + 0x0F,0xD8,0x58,0x36,0xF8,0xC6,0x06,0x92,0x47,0xE8,0x71,0x0A,0xC6,0x24,0xF6,0xE9, + + 0x71,0xB9,0x93,0x6A,0x79,0x42,0xE0,0xC0,0x7A,0x05,0x41,0x2A,0x2F,0x1A,0xD9,0xA9, + + 0x83,0x45,0x7D,0x37,0x78,0x34,0x48,0x43,0x28,0x03,0xE7,0xC8,0xBB,0x6A,0x58,0xA7, + + 0x7E,0xA7,0xFC,0x0B,0x3C,0x6A,0x70,0xC4,0x4C,0xE8,0x65,0x9D,0x6C,0xC7,0x9C,0x9A, + + 0xCB,0x08,0x2D,0x21,0xED,0x1A,0x24,0x80,0x97,0xE6,0xA1,0x80,0xAE,0xF2,0xA7,0x6B, + + 0xAC,0xA7,0x03,0x81,0x4C,0xFB,0x94,0x8C,0x3F,0x26,0x37,0x09,0xA4,0x95,0x55,0xFB, + + 0x8D,0x4B,0x3C,0xB1,0xEA,0x2B,0x48,0x4A,0xF7,0x9D,0x9B,0xC4,0xD5,0x2B,0x46,0x1B, + + 0xF7,0x4D,0x2E,0xDF,0x3C,0x81,0x74,0x8A,0xC6,0x0C,0x2D,0x1F,0x2C,0x0F,0xDC,0xDC, + + 0x43,0xFD,0xF4,0xE9,0x7A,0x29,0x62,0x87,0xE7,0x40,0x4A,0x0F,0x7D,0xCC,0x1D,0xAB, + + 0x8E,0xA3,0x97,0x3D,0x1A,0x31,0xD3,0xEA,0xF9,0x2A,0x28,0x12,0xBA,0x6C,0x73,0x7D, + + 0xFC,0x0F,0xAA,0x79,0xF3,0x22,0xF4,0x9F,0xDB,0xB2,0xE3,0x82,0x32,0x4C,0xBC,0x13, + + 0x46,0xBD,0x84,0xBF,0x59,0xAB,0x82,0x91,0xC1,0xD1,0x86,0xD1,0x9B,0x34,0x74,0x18, + + 0x84,0x98,0x29,0x92,0xA5,0x55,0x4E,0xE6,0x8A,0x35,0x38,0x90,0x84,0x7E,0x53,0xF1, + + 0x20,0xBD,0x85,0x81,0xB8,0x55,0x1C,0x52,0x64,0xDF,0xAF,0x15,0x69,0xDD,0x2D,0x02, + + 0x02,0x52,0x39,0xB2,0x10,0xAC,0x8D,0xC2,0x8D,0xF2,0x29,0xCA,0x52,0xDE,0x76,0xF0, + + 0x20,0xBB,0x7B,0x22,0x16,0x5A,0x2C,0x82,0xD1,0x31,0x44,0x86,0x85,0x11,0x7F,0x23, + + 0xAF,0x54,0xF2,0x79,0x52,0x31,0xA5,0xD7,0xC2,0x2A,0x0C,0x8A,0xB9,0x56,0xE5,0xB2, + + 0x01,0x95,0xFB,0x69,0x78,0xA5,0x6D,0x0A,0x4E,0x5B,0xED,0x1A,0x7D,0xD0,0x75,0x2B, + + 0x0F,0x1A,0xB4,0xA6,0x89,0xBE,0xCD,0x7E,0x1C,0x8A,0x4D,0xC4,0x52,0xF6,0x38,0xBD, + + 0x43,0x17,0x32,0xEE,0x1C,0x95,0x2E,0x98,0x0D,0xF7,0x00,0x88,0x91,0x49,0x8E,0x89, + + 0x75,0xC6,0x9B,0x7E,0x1D,0xB2,0x60,0xBF,0x4D,0xF4,0xE6,0x98,0x90,0x08,0x87,0x0B, + + 0x6A,0x80,0x96,0x6F,0x14,0x97,0xB7,0xDB,0x8A,0x96,0xEF,0x8A,0x11,0x2B,0xBB,0xFB, + + 0x26,0xAD,0xDB,0xAC,0xD5,0x94,0x89,0x48,0x4A,0x9B,0xE7,0x9A,0x10,0xEA,0x39,0xEF, + + 0x8B,0xC3,0xE6,0x46,0x1E,0xB7,0xB7,0x16,0x93,0x6A,0xA5,0x1F,0xFE,0xF1,0xB3,0xD0, + + 0x8E,0x22,0x94,0xF3,0x4D,0x92,0x64,0x15,0x1B,0x06,0x4E,0x9E,0x90,0xAC,0xF3,0xAB, + + 0x55,0x53,0xCC,0xF0,0x51,0x7A,0x28,0x93,0x78,0xC1,0x85,0xC3,0x11,0x1A,0x4E,0xBF, + + 0x1C,0x0F,0x6B,0xF9,0xD8,0x42,0x5B,0x12,0x58,0x31,0x6B,0x9F,0x10,0x8E,0x26,0x1F, + + 0x02,0x00,0x30,0xF6,0x53,0x01,0x4E,0x8F,0x60,0x35,0xB4,0x75,0x52,0x80,0xAF,0x5D, + + 0xF8,0xFD,0xF2,0xC2,0x7D,0x40,0x2E,0x8A,0xAE,0x52,0x41,0xDD,0xE6,0xA1,0x16,0x3D, + + 0xD0,0x77,0x37,0xED,0x69,0xED,0x2F,0xDF,0xC4,0x3F,0x35,0x55,0xEB,0xE0,0x80,0x6D, + + 0x10,0x0E,0xD0,0x71,0xB1,0x7C,0x82,0x82,0xFB,0x6C,0x3D,0x29,0x3C,0x70,0x5E,0xFF, + + 0x6E,0xB7,0xF2,0xF4,0xFD,0xE0,0x88,0x46,0xC4,0x28,0x24,0x98,0xDB,0x19,0x93,0x2D, + + 0x6F,0x88,0x4C,0x72,0xE8,0x28,0x40,0x89,0xEB,0xC8,0x43,0x06,0xD7,0xF3,0x9E,0x3D, + + 0xEC,0x55,0xDB,0xF7,0x53,0x09,0x09,0x01,0x35,0xA3,0x61,0x17,0x56,0xF9,0x96,0x2D, + + 0xA9,0x58,0x3D,0xA9,0x7E,0xD6,0x82,0x54,0x66,0x86,0x69,0x84,0x53,0x6A,0x5F,0xE0, + + 0x28,0x25,0x9A,0xF5,0x6F,0xA8,0xE7,0x0E,0xA5,0x5B,0xA4,0x4C,0xA3,0x45,0x74,0xF8, + + 0x09,0xC9,0x00,0x0C,0xBC,0x16,0x04,0x97,0x2F,0x36,0xA8,0x3F,0xB6,0x3A,0xB5,0x89, + + 0x4E,0x59,0x63,0x0E,0x32,0xAC,0x21,0xD4,0x27,0x19,0x66,0x0B,0x35,0x79,0x2D,0x06, + + 0xBE,0x4F,0x3B,0x20,0x8D,0x70,0x45,0x82,0xE9,0x66,0x81,0x1B,0xB5,0xE6,0x38,0xCA, + + 0x72,0x23,0x0E,0xD1,0xEB,0x25,0x2B,0x0C,0xEB,0x53,0xA0,0x38,0xB5,0x88,0x14,0x5D, + + 0x2B,0x20,0x22,0x3C,0xE0,0xC8,0xC2,0x84,0x5F,0x80,0x6C,0x8D,0xDB,0x60,0xC3,0xBB, + + 0x30,0x5D,0xC3,0xA5,0xBA,0xB5,0x72,0x0D,0x35,0xDE,0x63,0x9F,0x1A,0x4F,0xFD,0xAA, + + 0x2C,0xCF,0xD3,0x00,0x38,0xBF,0x84,0x5F,0x4D,0x23,0xA9,0x29,0x34,0x8B,0x1F,0xF2, + + 0xA4,0x8F,0x04,0xF4,0x56,0x7C,0x06,0x92,0x98,0x7F,0xCC,0x82,0x9F,0xB4,0xBC,0x61, + + 0x4F,0xF4,0xFC,0x90,0xFD,0x40,0xAC,0xC1,0x09,0x7A,0x18,0xB2,0x35,0x44,0x9E,0xF3, + + 0x24,0x84,0xDB,0x80,0x90,0x16,0x95,0xD1,0x86,0x8E,0x8F,0x17,0x61,0x5D,0x15,0x60, + + 0xC3,0xFD,0x09,0xB3,0x86,0xA7,0x45,0xA7,0x05,0x52,0xE7,0xFF,0x89,0x5C,0xDC,0x8D, + + 0x95,0xD5,0xF2,0xEF,0xDD,0xF0,0xF4,0xF2,0x00,0x6B,0x64,0x96,0xF6,0x5B,0x7E,0xA7, + + 0xCC,0xD1,0x48,0xF2,0xB8,0x18,0x22,0x10,0x63,0x50,0xDC,0x65,0xD4,0xB4,0x5B,0xEB, + + 0xCE,0x9B,0xDF,0x77,0x27,0x19,0x46,0x01,0x0F,0xCC,0x8D,0x6F,0x53,0x7F,0x57,0x63, + + 0x3E,0x38,0x38,0x44,0xD0,0x1A,0x82,0x34,0x1E,0x21,0x02,0x84,0x83,0x01,0x40,0xB7, + + 0xC5,0x49,0x1E,0xBE,0x3C,0x47,0x33,0x59,0xE8,0x55,0x16,0x5E,0xF6,0x2B,0x78,0xEA, + + 0xAD,0x8F,0xB0,0x0E,0xC2,0x14,0xA8,0x8B,0xCC,0x58,0x3D,0x81,0x21,0x74,0x3D,0x89, + + 0x1F,0x37,0xE6,0xE9,0x98,0x17,0x65,0xE4,0xC8,0x77,0xC9,0xA8,0xD8,0x2F,0xBF,0x6B, + + 0x5E,0x3A,0x79,0xD8,0x63,0xFA,0xBD,0x48,0x69,0x56,0xC4,0x44,0x7F,0xE7,0xC2,0xEE, + + 0xA1,0x31,0xB8,0xBE,0xBE,0xA3,0x48,0x08,0x0F,0xD8,0xAC,0xEC,0xCD,0x55,0x39,0xAA, + + 0xAF,0x82,0x8F,0xFA,0x5C,0x18,0x1F,0xDE,0x04,0xD2,0xE8,0xC3,0x94,0x0C,0xB7,0x58, + + 0xD8,0x33,0xD9,0x63,0xDF,0xBA,0x0E,0x91,0x8F,0xDA,0xE0,0x65,0xDA,0x03,0x51,0x7A, + + 0xCE,0x9B,0xF8,0x2C,0x3B,0x32,0xFF,0xC9,0x8F,0xDD,0x44,0x4E,0x8B,0x50,0x93,0x24, + + 0xA1,0xDF,0x23,0xF2,0x23,0xE1,0x4E,0x09,0xBF,0x5B,0x68,0x63,0x92,0xE0,0x98,0x63, + + 0x68,0xAA,0x30,0x04,0xB6,0x4F,0x0D,0xC9,0x4B,0x03,0xC7,0x56,0x12,0x62,0xB5,0x63, + + 0x7F,0x6E,0x39,0xFA,0xA3,0x90,0x75,0x57,0x3F,0x39,0x99,0x10,0x52,0x66,0x71,0x15, + + 0x61,0x42,0x6E,0xD5,0x95,0x06,0x0A,0xA8,0x1D,0x52,0x66,0x8A,0xD3,0x61,0x45,0xA8, + + 0x17,0x49,0xD1,0x46,0xFC,0x3F,0xC6,0x13,0x2E,0x28,0xC6,0x4C,0xE1,0x79,0x36,0x7D, + + 0xE2,0xAA,0xD9,0x13,0xCD,0x2F,0x64,0x57,0x20,0x31,0x81,0x28,0xF6,0xBA,0x3F,0x6D, + + 0x92,0x4B,0x33,0x23,0x6D,0x8B,0x37,0xA8,0xC3,0x06,0xF9,0x07,0x77,0x99,0xDF,0xA1, + + 0x55,0xA6,0x49,0x36,0x4D,0x8A,0x4F,0x44,0x70,0x0A,0x66,0x29,0x2C,0x69,0x5C,0xEA, + + 0x0C,0xA5,0x77,0x7E,0xBF,0x6A,0x4B,0xAF,0xAD,0xB7,0xAC,0xF4,0x7B,0xC8,0xDA,0x9C, + + 0x14,0x66,0x29,0x34,0xF8,0xD6,0xDA,0x00,0x13,0xBD,0x1C,0xD4,0x0D,0x24,0x95,0x3B, + + 0xAC,0x46,0x89,0x9D,0x44,0x1B,0xCE,0x00,0x29,0xF5,0xCA,0x92,0x7D,0x63,0x52,0x9C, + + 0x2C,0xFA,0xD2,0x01,0x3C,0x22,0x8D,0x4A,0xA5,0xC4,0xD9,0xDB,0x59,0xDB,0xD4,0xCC, + + 0x22,0x82,0xD7,0x9C,0x46,0x25,0x0A,0x6C,0xE3,0xBA,0xEA,0x86,0xA7,0x23,0xD9,0x69, + + 0x67,0x4F,0x65,0x37,0xC6,0x6F,0x9A,0x59,0xDB,0x40,0xE4,0x54,0xD6,0xEB,0x7B,0x29, + + 0xD5,0x85,0x47,0x88,0xA2,0x21,0x09,0xA4,0xA2,0xAF,0xF3,0x64,0x92,0x7F,0x5F,0x53, + + 0x2A,0x04,0x87,0x1D,0x42,0x12,0x26,0x8B,0xE8,0x0F,0x5C,0x3D,0x56,0xCF,0x2A,0x7A, + + 0x81,0x99,0x03,0x96,0xDB,0xD1,0xB3,0x89,0x89,0x01,0xCD,0xB8,0xD5,0x7B,0xCC,0xF6, + + 0xD6,0x01,0xCE,0xE7,0x5D,0x2A,0xB0,0x23,0x59,0x59,0x3B,0x81,0x42,0x57,0x07,0x61, + + 0x8E,0x09,0xDC,0x02,0xD5,0x3B,0xD1,0x24,0xA3,0xA1,0x55,0x21,0xA9,0x22,0xB5,0x6E, + + 0xA7,0x9B,0xE9,0xE1,0x90,0x83,0x49,0x59,0xF3,0x1E,0x27,0xC4,0x9D,0x7A,0xC0,0xBF, + + 0x03,0xF4,0xD2,0xF1,0x34,0x15,0xF8,0x7F,0x61,0xA7,0x3B,0x06,0xF0,0x3C,0x59,0xD2, + + 0x35,0xBE,0x06,0xA7,0x5F,0x94,0x04,0x41,0x00,0x84,0xBC,0xB0,0x02,0xF8,0x1C,0x76, + + 0x07,0x5E,0xE4,0xA7,0x51,0x3D,0x95,0xC0,0x61,0x5B,0x09,0x15,0xFA,0x79,0x58,0xD0, + + 0x42,0xE8,0xF5,0xE5,0xDE,0x98,0x48,0x75,0xCB,0x43,0xA5,0x77,0xF6,0x4E,0xF2,0x60, + + 0x6A,0x55,0xDF,0x90,0x5B,0x18,0xE9,0x40,0x76,0x15,0x14,0x9A,0x14,0xF5,0xCE,0xC8, + + 0x87,0x02,0x18,0xEE,0x0A,0x79,0xA6,0x43,0xE4,0x84,0xD5,0xDC,0x61,0x62,0xFC,0x81, + + 0x0D,0xE5,0x7F,0x65,0x32,0xFF,0xF0,0x57,0xDB,0x1B,0xCE,0xA9,0x5F,0xD7,0xCA,0xFF, + + 0x56,0x1D,0x77,0x75,0xD1,0x76,0x78,0x4A,0x85,0xF6,0x33,0xDB,0x06,0x60,0x66,0x4D, + + 0xC3,0x2D,0x66,0xBE,0x58,0x00,0x6E,0x78,0xC9,0xD7,0xAE,0xCB,0xD9,0x7A,0x74,0x2B, + + 0x13,0xE2,0xA8,0xF1,0xCE,0x9B,0x4A,0xF2,0xCA,0xDD,0x25,0x1E,0xDA,0xF7,0x0D,0x2B, + + 0x8B,0xAE,0x07,0xE9,0x53,0x50,0xC4,0xD8,0xDA,0x1C,0x5F,0x28,0x5B,0xF4,0x15,0x47, + + 0xC3,0xFE,0x5E,0x9D,0xBA,0xB2,0x27,0xC2,0x87,0xAA,0xA0,0x1F,0x26,0xA2,0xD8,0x8A, + + 0xA1,0x53,0xA1,0x84,0xDD,0x17,0x28,0x27,0x8C,0x21,0x8A,0xCE,0x00,0xAF,0xA5,0xF5, + + 0x36,0x23,0x57,0x69,0x9A,0x27,0x66,0xD0,0x19,0x44,0xA9,0xC9,0x53,0x52,0xD9,0xC5, + + 0xA2,0xC0,0x99,0x40,0x5E,0xB3,0x20,0xCB,0x4A,0x0F,0xE8,0xAF,0x71,0x43,0x91,0x2E, + + 0x22,0x91,0x29,0x57,0x8D,0x5E,0x60,0xB5,0xA1,0x3C,0xB4,0xB5,0x1C,0xB4,0x2E,0xB2, + + 0x6F,0x25,0xCF,0x79,0x7A,0xE6,0x4C,0xDE,0x25,0x6D,0x66,0x25,0xDE,0xA5,0x7D,0xA2, + + 0xED,0x24,0xFE,0x63,0xA4,0xE8,0x6D,0x9A,0xA1,0x88,0xBA,0x16,0x55,0x65,0xF7,0xA9, + + 0x23,0x29,0xEB,0x37,0xF5,0xD2,0x64,0x89,0x63,0x69,0x5A,0x1C,0x03,0x1B,0xFF,0xD7, + + 0xA3,0x94,0x16,0xA7,0x41,0x96,0x86,0x18,0x4A,0x31,0xA1,0x2F,0x55,0xEF,0x9A,0xB6, + + 0xAB,0x8E,0xC0,0xF0,0x1F,0x28,0xF2,0x76,0xF1,0x15,0x8A,0xD1,0xB5,0xD9,0x52,0x98, + + 0xC4,0xFE,0xCA,0x4D,0xE7,0x04,0x82,0xC5,0xA4,0xF8,0x7A,0x63,0xC5,0xF2,0x0D,0xF1, + + 0x2D,0x0A,0x99,0xE7,0xC8,0xE5,0x4D,0x07,0xFF,0xC8,0x5F,0xB0,0xDD,0x8A,0x13,0x7B, + + 0xB3,0x8D,0xBA,0xFD,0xF6,0xA4,0x97,0xA4,0xCE,0x8B,0x18,0x49,0xFE,0x09,0x5A,0xB5, + + 0xE7,0xBD,0x22,0x6F,0xDD,0x51,0x7A,0xB3,0xA7,0xFD,0x26,0x1C,0xFD,0xEA,0x33,0xF4, + + 0xAA,0x86,0x93,0x2D,0x27,0xE2,0x04,0x52,0x7C,0x0A,0x79,0x7C,0x39,0xEB,0x3B,0xD3, + + 0x09,0xAF,0x9B,0xBF,0xF7,0x9F,0x39,0x89,0xED,0x24,0xFB,0x48,0x7D,0x15,0xEB,0xD3, + + 0x2A,0x86,0xD7,0xC0,0xFC,0xD5,0xC3,0x84,0x26,0xDE,0x73,0xBA,0x7E,0x65,0x0A,0x38, + + 0x85,0xFC,0xB2,0xAF,0xCB,0xDC,0x25,0xE5,0xAE,0x31,0x34,0xC0,0x08,0xBF,0x6D,0xF4, + + 0x86,0x1C,0x73,0x69,0xDC,0xE0,0xBE,0xC4,0xA7,0xF1,0x43,0x5E,0x71,0xBC,0xC2,0xC3, + + 0xE4,0x89,0xC3,0xAE,0xB7,0xF2,0x7D,0x3B,0xD7,0x06,0xD5,0xF4,0x5F,0xFF,0x4D,0xC0, + + 0x56,0x9C,0x41,0x08,0xB4,0x00,0x35,0x23,0x0C,0xC2,0x11,0x28,0xF4,0x53,0xA4,0xE3, + + 0xE5,0x19,0x9A,0xEE,0x30,0x95,0x65,0x66,0x7F,0x08,0x5B,0x62,0x33,0x51,0xFA,0x38, + + 0xCE,0xA4,0x2C,0xF7,0xCD,0x48,0x04,0x02,0xB1,0xE4,0xF8,0x14,0xF5,0xFD,0x1D,0x33, + + 0xCF,0x37,0x8D,0xA5,0x95,0x67,0xB5,0xC2,0x1C,0x2B,0x95,0xA7,0xD8,0x7D,0x95,0x23, + + 0x4D,0x36,0x95,0x27,0xC3,0x16,0xBD,0xD2,0x24,0x5A,0x49,0x85,0x54,0x0C,0x7F,0x0E, + + 0x8B,0x88,0xFF,0x92,0x99,0xB3,0xA1,0x55,0x6A,0x6B,0x8C,0x48,0x7A,0x72,0x2F,0x7C, + + 0xAF,0x65,0x94,0x76,0x39,0xF6,0x04,0x52,0x37,0x96,0xBE,0xAD,0x6E,0x88,0xDF,0x63, + + 0xEE,0xD5,0x21,0xE9,0xFC,0xF5,0x3A,0x2F,0xAF,0xFE,0x93,0x8B,0x97,0xAB,0x15,0x1F, + + 0x9F,0xB0,0xF6,0x83,0x18,0x3B,0x1F,0xAB,0x0C,0xC0,0xE6,0x7E,0x58,0xF0,0xF0,0x4E, + + 0x0A,0x8F,0xF7,0x4A,0x16,0xA8,0x0E,0xFB,0x3D,0x57,0x23,0x6A,0x23,0xA3,0x50,0xEF, + + 0x4E,0x6D,0x78,0xE1,0x0F,0xFF,0x6A,0xF0,0x0C,0x22,0xFA,0x1C,0x5B,0xFD,0xD8,0x29, + + 0xE6,0x7F,0xBD,0xCE,0x1D,0x0B,0xBA,0xDA,0x82,0x9C,0x97,0xAF,0x52,0x75,0x37,0xC4, + + 0x4E,0x30,0x62,0x7A,0xDC,0x16,0x07,0xF9,0xAF,0x7F,0xFF,0xFF,0xFF,0xFF,0x60,0x03, + + 0x55,0x0D,0xC7,0xF7,0xFB,0x44,0x16,0x09,0x23,0x48,0x67,0x42,0xA7,0x99,0x32,0xF8, + + 0x81,0xCE,0xB6,0x39,0xB2,0x63,0x63,0x43,0x2D,0x4E,0xC1,0x36,0x36,0x41,0x19,0x05, + + 0xA8,0x14,0xBF,0x29,0x33,0x47,0x07,0x09,0xC6,0xD0,0x89,0x31,0x25,0x6D,0x37,0xC9, + + 0xA2,0xB1,0x4A,0x14,0x7A,0x47,0x40,0xF0,0x64,0xC4,0xC0,0x37,0x34,0xE4,0x45,0xB2, + + 0x42,0x4B,0xB9,0x2B,0x4F,0xDB,0x68,0x88,0x62,0x0B,0x84,0x16,0xB9,0xF5,0xA0,0x44, + + 0x05,0xAF,0xC7,0xAF,0xA2,0xBD,0xA0,0x98,0x63,0x08,0xE6,0x4C,0xDE,0x93,0x79,0xA9, + + 0x88,0x49,0x78,0x19,0x65,0x1B,0xE9,0x81,0xC6,0xC6,0xEF,0xC4,0x90,0x99,0x83,0xB9, + + 0x91,0x4A,0xB2,0x97,0x17,0x29,0xB5,0xE3,0x9F,0x4F,0xD1,0x71,0x5B,0x3C,0x5B,0xB7, + + 0xAD,0x03,0xBC,0x34,0xBB,0x4D,0x92,0x25,0x2B,0x40,0x96,0x38,0xDA,0x4C,0x52,0x9D, + + 0x3A,0x88,0x1C,0x1D,0x0C,0x32,0x61,0x5A,0x08,0x4D,0xCA,0x20,0x41,0x72,0x42,0xE1, + + 0xCB,0x47,0xBD,0x34,0x3B,0x8A,0x05,0x01,0xCE,0xD8,0x18,0x5E,0xB4,0x65,0xB3,0xF9, + + 0x85,0x4B,0x7C,0x99,0xCB,0x44,0x63,0x28,0xF9,0x09,0xBB,0x4B,0x3B,0x4B,0xBD,0xA0, + + 0x00,0x41,0x66,0xC8,0x5A,0x99,0xD6,0x98,0x16,0x03,0xEC,0x54,0x1A,0xC3,0xF5,0x48, + + 0xAC,0x16,0xEA,0xFF,0x53,0x9C,0xCD,0x49,0x22,0xCF,0xBC,0xDD,0x5A,0x2D,0xAF,0xD6, + + 0x89,0x6E,0xC5,0xED,0xD2,0xFF,0x93,0xC1,0x5A,0xE1,0xC4,0x1E,0xA2,0x02,0xDB,0x3F, + + 0x74,0x14,0xC7,0x6B,0xA8,0x3D,0x7D,0x44,0x68,0xCB,0xFF,0x89,0xB8,0x6D,0xC1,0xF3, + + 0x73,0x1B,0x92,0x6C,0xB0,0x7D,0xE8,0xDF,0xC3,0xF0,0xAA,0x99,0x51,0xF0,0x72,0xA5, + + 0x12,0xD6,0x94,0x0C,0x3C,0xD0,0x5B,0x43,0x67,0xE3,0xC5,0x27,0x94,0x1F,0x85,0xA0, + + 0xBE,0x9F,0xDD,0x95,0x59,0x03,0x04,0xB0,0xD0,0x10,0x6F,0x4D,0x3A,0xB2,0xB5,0x6E, + + 0x48,0xF2,0x85,0xEA,0x70,0x51,0xA9,0x8E,0xDD,0x86,0xFF,0xB9,0xF0,0xB3,0x01,0x26, + + 0x00,0xD4,0x6E,0xAB,0x91,0x75,0x6A,0x40,0xED,0xA2,0x47,0x60,0x56,0x51,0xB4,0x38, + + 0x29,0x58,0x96,0xA5,0x4F,0x2A,0x66,0x03,0x17,0xF8,0x1C,0xD0,0xA9,0xF3,0xC4,0xA7, + + 0x91,0xF4,0x62,0xE8,0x35,0x75,0x5D,0xE5,0x3E,0x55,0xB7,0xF4,0xF1,0x96,0x14,0x58, + + 0x04,0x0C,0x75,0x05,0x10,0x59,0xCE,0xB6,0x29,0xA6,0xDB,0xB5,0xA7,0x19,0xAA,0x17, + + 0x29,0x58,0x42,0x09,0x7B,0x18,0x87,0x2C,0x6F,0x18,0x4C,0xA0,0x4B,0xEC,0x18,0xAD, + + 0x9A,0x54,0x18,0x7E,0xBB,0x65,0x61,0xFF,0x94,0xEF,0xC1,0x3E,0x5B,0x49,0x13,0x04, + + 0xCB,0xD0,0xD7,0xEF,0xFA,0x50,0x77,0xAB,0xA7,0x57,0x4D,0xB0,0xFE,0x69,0x57,0x9D, + + 0x81,0xF9,0x69,0x6D,0xB1,0x34,0xA4,0x2B,0xE9,0x51,0xA7,0x55,0xF3,0x34,0x80,0xAE, + + 0xA8,0x1F,0xA4,0x4C,0x3B,0x7C,0x1E,0xA0,0x6C,0x4F,0x8F,0xB5,0xDF,0x0A,0xF6,0x5A, + + 0x09,0xED,0x0E,0x8D,0xE3,0xB6,0xFE,0x9A,0xD8,0x38,0x9E,0xBA,0x5D,0x79,0x42,0x2B, + + 0x99,0x2C,0xE3,0x12,0x46,0x4F,0x10,0xAB,0x66,0x52,0x96,0x8B,0x6C,0x76,0x37,0x31, + + 0xB9,0x52,0xCB,0x21,0xBB,0x2A,0x67,0x12,0x47,0x52,0xDC,0x3A,0xC8,0x15,0xEC,0x3B, + + 0x37,0x84,0x1F,0xE4,0xFD,0x91,0x73,0xD1,0xAD,0xB1,0x34,0xA2,0x17,0xEF,0x90,0x82, + + 0xA2,0x85,0x17,0x76,0x19,0xC9,0x7B,0xC0,0xB8,0xCE,0x40,0xDE,0x47,0xAC,0xFB,0x02, + + 0xB7,0x03,0xAB,0x05,0x7F,0x43,0x49,0x50,0xF0,0x80,0x21,0x55,0xE7,0x83,0x2F,0xFB, + + 0xE5,0x08,0x3F,0x97,0x93,0x71,0xF9,0xAB,0x2E,0x6E,0x46,0xDF,0xCB,0xAE,0xA5,0x24, + + 0x8B,0x72,0x58,0xC4,0xD3,0x69,0x88,0x10,0xAD,0xC7,0xE6,0x5E,0x50,0xC5,0x2C,0x34, + + 0x8A,0x53,0x5C,0xB4,0x2C,0x35,0xC0,0x8D,0xAE,0x74,0xB8,0x47,0x2F,0xA7,0x9E,0xD3, + + 0x71,0x9D,0x99,0xAF,0x88,0xEB,0x0F,0x5A,0xF5,0xC7,0xD0,0x05,0x29,0x6D,0x61,0x43, + + 0x7A,0x06,0x55,0x70,0x34,0xBC,0xD5,0xEC,0xC4,0x1E,0xED,0x7D,0x76,0x58,0xA6,0xEC, + + 0x67,0x99,0xA5,0xAE,0xBD,0x4B,0x25,0xC8,0xA5,0x59,0x1E,0xB1,0xB7,0x59,0x73,0xDB, + + 0xA8,0x00,0xAE,0x7E,0x41,0xAF,0x42,0xCA,0x0A,0x68,0xB4,0x2D,0xFE,0x18,0xA4,0x79, + + 0x67,0xBB,0xFA,0xDF,0x39,0x23,0xF3,0xB3,0x2F,0x37,0xEA,0xBC,0xDA,0xF9,0x2F,0xFB, + + 0x89,0xAA,0x02,0x88,0x3C,0xA2,0xAD,0xD1,0xCB,0x59,0xE2,0x25,0xBA,0x1B,0x99,0xAC, + + 0x3D,0xAE,0xE5,0x28,0xB2,0xA3,0xB2,0xC2,0x14,0x8E,0x32,0x2E,0x9B,0x90,0x92,0xB2, + + 0x2B,0xC0,0x2A,0xF6,0x1D,0xA0,0x7A,0x7A,0xC2,0x60,0x53,0x0D,0x63,0x4C,0xDB,0xB4, + + 0xBD,0x6C,0x57,0xBF,0x96,0xA1,0x71,0x38,0xCE,0xCE,0x4C,0x20,0x4B,0x33,0x90,0x24, + + 0xFB,0x94,0xB2,0xD9,0xFB,0xA9,0x65,0xE8,0xB3,0x30,0xC3,0x4E,0x7E,0x40,0x1E,0x79, + + 0xD8,0x71,0x9E,0x6E,0xB4,0x7F,0xF5,0x26,0x32,0xF0,0x1C,0xB2,0x95,0xEB,0xBD,0x8D, + + 0x19,0x2A,0x05,0x01,0x96,0xB7,0x2B,0x8C,0x15,0x93,0x46,0x5E,0x2F,0xBE,0xE5,0xAE, + + 0xF6,0x46,0x85,0x96,0x55,0xB4,0xF5,0x3A,0x48,0x27,0x25,0x41,0xC7,0x26,0x29,0xAC, + + 0xC9,0xD1,0x84,0xBC,0x14,0x1A,0xF5,0xB7,0x67,0xD7,0xED,0xAE,0xEB,0xE8,0x9B,0x2A, + + 0x2C,0xD9,0x71,0xCE,0xB6,0x14,0x8D,0xC5,0xC7,0xAB,0x4C,0x69,0x64,0xB9,0x35,0x55, + + 0x21,0x86,0x47,0x1C,0x8C,0x4A,0x54,0x90,0x86,0x2E,0x2C,0x85,0x5D,0x7C,0xC9,0x5C, + + 0x4D,0x27,0x49,0x62,0x63,0xD5,0x4C,0xA1,0x47,0xEB,0x14,0xA7,0xF2,0xBA,0x63,0x3B, + + 0x21,0x3A,0xB4,0x7C,0x12,0x6D,0x79,0x0D,0x1C,0x48,0x7D,0x17,0xE6,0x02,0xB3,0x12, + + 0xF8,0x09,0x30,0xEE,0x70,0x15,0x7F,0xC8,0x97,0xB4,0xF2,0xC8,0x83,0xFE,0x38,0xAF, + + 0x9E,0xD4,0x74,0x9F,0xBF,0x85,0x3E,0xFA,0x3F,0xC2,0x59,0x56,0x59,0xB6,0x80,0xB2, + + 0xCF,0x50,0x31,0x6D,0x8F,0xBE,0x88,0x30,0x19,0x5C,0xE7,0xB2,0x5D,0x96,0x77,0x9F, + + 0x85,0x79,0xA9,0xFD,0x42,0xA0,0x1F,0x4F,0xE5,0x99,0x07,0x40,0xDF,0x16,0x1E,0x3C, + + 0x28,0x24,0x98,0xF3,0x2E,0xF1,0x2C,0xDF,0x06,0xDF,0x65,0x6A,0x79,0x45,0x94,0xA8, + + 0x1C,0xCF,0x7D,0xEF,0x03,0xFF,0xBE,0xEA,0x78,0xD3,0xF6,0xC6,0x79,0xBC,0xE6,0x23, + + 0x24,0x63,0x28,0x3C,0x9C,0x35,0x0E,0x8D,0x55,0xC1,0x48,0xA8,0x3C,0x7E,0x97,0x59, + + 0x2F,0xDB,0xFB,0xD5,0x1E,0x10,0x47,0x10,0x6C,0xD2,0x98,0x6D,0xBF,0xF7,0x16,0xE9, + + 0x8C,0x6D,0xA4,0xF7,0x9C,0x61,0xEF,0x53,0x3C,0xCF,0xA4,0x42,0x9A,0x89,0x88,0x57, + + 0x2F,0xDD,0x30,0xEE,0x01,0x6C,0xD3,0xD6,0x51,0x0C,0xB8,0xD4,0xF0,0x9E,0xFA,0x08, + + 0x2D,0x19,0x3C,0xFA,0xE7,0x22,0xEA,0xC9,0x7A,0x0F,0xAF,0x51,0xF4,0x64,0xDD,0x4F, + + 0x12,0x3C,0xF6,0x91,0x99,0x44,0xD6,0xD7,0xE5,0x45,0xA7,0x4D,0x0F,0x22,0xD0,0x33, + + 0x6E,0xA5,0xDE,0x7B,0x6F,0x66,0xF0,0x22,0xC1,0xEF,0x2F,0xE0,0x55,0xC7,0xE8,0x22, + + 0x61,0x59,0x70,0xAB,0x20,0x85,0x18,0xB6,0x0B,0x07,0xF8,0xF0,0x58,0xDB,0x79,0x71, + + 0xF0,0xA9,0x8F,0x26,0xA1,0x46,0x39,0xE1,0xE0,0x56,0xE6,0x28,0xD4,0xFE,0xD9,0xD3, + + 0x03,0xDF,0x71,0xAE,0xF8,0x2D,0x91,0xC0,0xB8,0x43,0xE7,0x09,0x5C,0xC1,0xFD,0xF0, + + 0x08,0xB3,0x39,0xF3,0x3C,0x44,0xA7,0xA8,0xE9,0xE7,0xAA,0xD0,0x58,0x74,0xE6,0x77, + + 0xD7,0x54,0x88,0xE3,0x94,0x84,0x24,0x00,0xC4,0xEF,0xC5,0x97,0x2E,0x6D,0x87,0x8D, + + 0x80,0xA6,0xBD,0xD1,0x52,0x90,0x80,0xD8,0xB8,0x6A,0xAC,0x67,0xC8,0x2B,0xE8,0x59, + + 0x86,0xA6,0x93,0x8E,0xC6,0xAB,0x4F,0xF9,0xF9,0xC0,0x44,0x68,0xDF,0xE1,0x7A,0xB7, + + 0xCB,0x6E,0xC2,0x63,0x73,0x6E,0x68,0x97,0x4C,0xD4,0x4D,0x2C,0x7F,0xE1,0x10,0x81, + + 0x7F,0xA2,0x70,0xB3,0xF2,0xD4,0x24,0xFA,0x69,0x09,0x84,0x00,0x5B,0x23,0x87,0x99, + + 0x86,0x4F,0x8D,0x36,0xA9,0x9A,0x73,0xAF,0x8A,0x63,0x2C,0xE9,0x99,0xC8,0xEB,0x2B, + + 0xE9,0x53,0x6E,0xBF,0x7B,0x8B,0x63,0x87,0x67,0x42,0x9B,0xBB,0x9B,0x74,0xFB,0xFA, + + 0x0E,0xCF,0xFA,0x82,0xD1,0xB3,0x2C,0x30,0xC3,0xF0,0xAE,0x14,0xE5,0xDF,0xEF,0xD0, + + 0x31,0xBC,0x29,0x76,0xD1,0x9C,0x8F,0x34,0x26,0x43,0x9C,0x5B,0x63,0x3C,0xE9,0xEE, + + 0x7E,0x4F,0xA8,0x76,0x3C,0x73,0x06,0xA3,0x6B,0xA7,0x31,0x81,0x55,0xF3,0x5D,0xC0, + + 0xDD,0x18,0xF5,0xA4,0xC5,0x9C,0x47,0xB0,0x96,0x53,0xCF,0x4E,0x46,0x1D,0x52,0xA2, + + 0x42,0x95,0x5B,0x3C,0x32,0x76,0x16,0xDF,0x49,0x16,0x86,0x60,0x31,0xC5,0x61,0xF4, + + 0xC8,0x71,0xB3,0xAE,0x45,0xAA,0xE3,0x16,0x9F,0x1E,0x85,0xD1,0xD6,0x19,0x3B,0xC7, + + 0x43,0x95,0xC1,0x62,0x4F,0x67,0xDB,0x07,0xD1,0x36,0x8C,0x7D,0x57,0x89,0x75,0x22, + + 0x85,0x72,0x70,0xE4,0x12,0x93,0x9D,0x20,0xED,0x4C,0x3A,0x35,0xAB,0x35,0x86,0x8B, + + 0xF7,0xA5,0x15,0xFE,0x52,0x89,0x27,0x85,0x78,0x5C,0xA9,0x23,0x89,0x2E,0x8E,0xDF, + + 0x07,0xC5,0x1D,0x0E,0xC6,0x94,0xCA,0xE6,0xFA,0x66,0x61,0xFB,0x90,0x90,0xAC,0xF3, + + 0x7D,0x01,0xF9,0xB4,0x37,0x97,0x11,0xEE,0xC6,0x86,0x07,0x45,0x3B,0x37,0xDB,0xC7, + + 0x3A,0x24,0x98,0x0F,0xB9,0x7A,0xDF,0x9D,0xD2,0x1A,0x78,0x4D,0x79,0x64,0x7E,0x3B, + + 0x04,0x5D,0x59,0x2E,0xDA,0xC3,0x50,0x97,0xCD,0x58,0x98,0x6A,0x7C,0x8F,0x30,0xDE, + + 0xCA,0x9E,0xF5,0x4F,0x98,0xE2,0xD0,0x1E,0x58,0xFD,0xDC,0x1A,0xFB,0x4D,0x51,0xAB, + + 0xCA,0xDE,0x6B,0xB6,0x64,0xC1,0x97,0xD6,0xCD,0x1C,0x8C,0x05,0xD6,0x33,0x62,0xFD, + + 0x36,0xE2,0xF8,0xAC,0xC8,0x3F,0xE0,0x1F,0x17,0x74,0x86,0xD8,0x1A,0x30,0x70,0x53, + + 0x78,0x8B,0xDF,0xFA,0x14,0x3B,0x70,0x13,0x34,0x82,0x7E,0x59,0x70,0x4F,0x0A,0x74, + + 0x9B,0x93,0xF1,0x10,0xB0,0x1E,0x2F,0xC9,0xB9,0x10,0x80,0xCD,0x71,0xE7,0x2E,0x27, + + 0x09,0x99,0xA1,0x83,0x9C,0xC5,0x25,0x29,0x65,0x6D,0x15,0x45,0x27,0x87,0x91,0x9D, + + 0x86,0xCB,0x05,0x68,0x4F,0x7E,0xF9,0x06,0x79,0x48,0x99,0x4A,0x74,0x1C,0x1E,0x45, + + 0x22,0x8B,0xFE,0xA4,0xF6,0x5B,0x8F,0xE0,0x8B,0x68,0xD7,0x72,0x6D,0x50,0x41,0x38, + + 0xA4,0xE0,0x10,0x5E,0xEA,0xEA,0xD6,0x20,0xE6,0x16,0x1A,0x36,0x42,0xFE,0x5B,0xB0, + + 0xF7,0x80,0xB8,0x53,0x7F,0xA9,0x49,0x5E,0x65,0xC0,0x4F,0x20,0xE5,0x12,0x11,0x77, + + 0x05,0xBB,0x58,0xB3,0xA4,0x55,0x01,0x9B,0xEB,0x8A,0xDE,0x83,0xD7,0xFC,0x1C,0xAA, + + 0x45,0x79,0xC1,0x2A,0xF7,0xCC,0xFF,0x1B,0x34,0x8A,0x69,0x2E,0x2F,0xE8,0x8E,0x7C, + + 0xFE,0x99,0xD5,0x6C,0x33,0x36,0x42,0xCA,0x39,0x68,0x4E,0xF9,0x79,0x62,0x7B,0xB3, + + 0xA8,0x91,0x9B,0xE4,0xFC,0x8A,0x27,0x21,0xAF,0x35,0xEC,0x23,0xDA,0xCA,0x93,0xE0, + + 0xE5,0x86,0x3B,0xEF,0x79,0x5A,0xAE,0xBF,0xE5,0xDF,0x76,0x03,0x36,0xAF,0xEA,0x28, + + 0x4E,0x83,0x5A,0xAE,0x1A,0xF9,0x6A,0x6E,0xE7,0xE0,0x90,0x7A,0x7C,0x9C,0xFA,0x28, + + 0xA8,0x9D,0xF8,0xA1,0xE0,0x20,0x62,0x7E,0xE6,0x34,0xFE,0x98,0xDA,0x6D,0x5B,0x0C, + + 0x4C,0xCE,0xBF,0xA7,0x42,0x63,0x4D,0x17,0xAF,0xEE,0xFB,0x87,0xF2,0x65,0x55,0x36, + + 0x28,0xCE,0xB9,0xA0,0x68,0x1A,0x22,0xE6,0x6A,0xC4,0x3B,0xAF,0xA7,0xEB,0xDB,0x45, + + 0x99,0x66,0x1C,0xBB,0x93,0xA2,0x98,0x4A,0xBE,0x9D,0xAA,0xD2,0xE6,0xB1,0x75,0xD4, + + 0x80,0x6E,0x3C,0xF4,0x8E,0xCE,0x26,0xB0,0x8E,0xDE,0x8D,0x54,0x51,0xF7,0x9C,0x1D, + + 0xA5,0xC2,0x1D,0x37,0xB4,0xFD,0x53,0x6E,0x0D,0x88,0xCD,0xD5,0x76,0xEE,0x13,0x5A, + + 0x2A,0x65,0x92,0x18,0xD6,0xB7,0x7C,0xD5,0x84,0xD7,0x9D,0x53,0x54,0x0C,0xC9,0x8C, + + 0xD3,0xC8,0x24,0xC7,0x98,0xAF,0xB4,0x33,0x68,0xCF,0x1C,0xF6,0x70,0x0C,0x35,0x46, + + 0x82,0x6A,0x53,0x30,0x5C,0xCD,0xF5,0x47,0xC3,0x97,0xA5,0xD3,0xD2,0xFE,0x5F,0x28, + + 0x15,0xD7,0xE4,0xB9,0x11,0xA6,0xF1,0x9C,0x41,0x94,0x9B,0x63,0xCC,0xD1,0x53,0xA2, + + 0x7B,0x98,0xED,0xD5,0xE3,0x1A,0x47,0x56,0xD4,0xF3,0xFC,0x75,0x3E,0x60,0x6E,0xF3, + + 0x64,0x29,0xDF,0xF6,0xAE,0xF9,0x50,0x48,0x48,0x95,0x88,0xD6,0xF1,0x0E,0x32,0x88, + + 0x0F,0xDA,0x8E,0x74,0x5E,0xBD,0x2F,0x4A,0x6C,0x08,0x86,0x8E,0x2B,0x56,0x3B,0x18, + + 0xE4,0x0B,0x4B,0x14,0x4D,0x33,0xC8,0x95,0xDC,0x7A,0x27,0xDC,0x90,0x5B,0xEF,0xE8, + + 0x8F,0x14,0xCE,0xBB,0x30,0xA0,0x41,0xBD,0x0C,0x58,0x1F,0xCD,0x9F,0xA7,0x54,0xEE, + + 0xAC,0x80,0x7D,0xBF,0x43,0xB7,0xFC,0x15,0x5D,0x2E,0xCE,0x11,0x78,0xA4,0xFE,0x98, + + 0x8E,0x91,0xCE,0xDB,0x54,0xC5,0xAA,0x2A,0xEE,0x25,0x5E,0x3C,0xF3,0xF3,0xDE,0xA9, + + 0xED,0x6E,0xE1,0x3E,0xA3,0xDE,0xCF,0x15,0x2F,0xBD,0x90,0x2D,0x7D,0xF0,0x17,0x99, + + 0x23,0x93,0xEB,0xAC,0xCA,0x3D,0x75,0x5B,0x50,0x6A,0x87,0x3D,0x5E,0xBC,0x59,0xD3, + + 0xA5,0xAB,0x04,0xF9,0xE7,0x61,0xEB,0x28,0xE5,0xBF,0x50,0x21,0x84,0x21,0x51,0xD1, + + 0xA4,0x0A,0xF6,0x3D,0xFA,0x70,0x7E,0x19,0x42,0xB1,0xE6,0x32,0xB0,0xE2,0x14,0x01, + + 0x6B,0x53,0x40,0x07,0x69,0xAF,0xFD,0xB2,0xF4,0x9F,0xCB,0x19,0xB8,0x83,0x0C,0xF9, + + 0xDC,0x4E,0xF7,0x28,0x7A,0xF2,0xA6,0xBE,0x74,0xCA,0x2C,0xC6,0x5D,0x22,0xC0,0x51, + + 0x5E,0xAB,0xEA,0xB8,0xAE,0x66,0xE8,0x3D,0xE5,0x05,0xB2,0x04,0xBB,0x55,0x70,0xAB, + + 0x05,0x4F,0x5E,0x27,0x7F,0x49,0x21,0x16,0xBC,0xCE,0xF8,0x3C,0xDE,0x98,0xE5,0x23, + + 0x71,0x63,0x4E,0xD4,0x73,0x89,0x0B,0x33,0xAA,0xA7,0xB3,0x6C,0xD3,0x26,0xC9,0x96, + + 0x7E,0x81,0xAF,0x9C,0x92,0x67,0x93,0x40,0xAF,0x58,0xBB,0x57,0x26,0xE1,0x7C,0x21, + + 0x18,0x45,0xFC,0x35,0xF3,0xB9,0x32,0xC2,0xBD,0xC1,0xEC,0x2B,0xED,0x67,0xB2,0xF6, + + 0x19,0x44,0x6F,0xDC,0x67,0x6B,0x4A,0x99,0x1D,0x52,0xC4,0xDE,0x5D,0x6F,0x7D,0x25, + + 0xBB,0xD1,0x32,0x20,0x2D,0x44,0x33,0xA3,0xC9,0x68,0x27,0x42,0x7B,0xD7,0xF6,0xDE, + + 0x43,0xE2,0x03,0x42,0x2C,0x69,0x72,0x5F,0x89,0xE0,0x2E,0xAA,0xDF,0xCB,0x42,0x36, + + 0x2E,0x87,0xE6,0xD0,0x79,0x56,0xED,0x8E,0x6E,0x41,0xD2,0xAC,0x0A,0xC1,0x70,0xE8, + + 0x92,0xA2,0xEB,0x3E,0xF0,0x3C,0xE5,0x8B,0xE8,0xC8,0xCF,0xEE,0x57,0x65,0xCF,0x64, + + 0x61,0x4A,0xD5,0x78,0x9C,0x0F,0x2C,0xED,0x81,0x4B,0x42,0xFF,0x5B,0xC3,0xEF,0x7D, + + 0xE8,0x45,0xB1,0xBD,0x9F,0x0B,0xCB,0x0A,0xBF,0xCE,0x5B,0x7F,0xF5,0x01,0x14,0xBC, + + 0x07,0x16,0xBE,0x7E,0xCB,0x9D,0xB3,0x8D,0x53,0xBE,0x02,0x20,0x31,0xF9,0x8B,0x6F, + + 0x56,0x11,0xB2,0xA8,0x47,0x9E,0x43,0xA9,0x67,0xD2,0x94,0x44,0xED,0xD0,0xA8,0xFC, + + 0x01,0x98,0x12,0xB8,0x5B,0xC3,0xAD,0x5E,0xDF,0x72,0x22,0x8D,0xF6,0x58,0x3E,0xE5, + + 0x59,0xFA,0x1E,0xEE,0xDB,0x82,0xAB,0xFE,0x1C,0x2F,0x0B,0x5F,0x54,0x8C,0x7A,0xF5, + + 0x49,0x1B,0xA6,0xC4,0x31,0x74,0x06,0xAB,0x89,0x30,0x68,0xED,0x9B,0x05,0x32,0xD6, + + 0xC2,0x96,0x0C,0x9C,0xD0,0x5B,0x0E,0xBB,0x88,0x31,0x1B,0xF6,0x3F,0xD8,0xC7,0xF3, + + 0xC2,0x31,0xD9,0xAF,0x4E,0x27,0xC5,0x12,0x66,0xDB,0x39,0x77,0x92,0x7E,0xE4,0xF5, + + 0x4A,0xF6,0xF3,0xF9,0x71,0x38,0xCD,0xCB,0x40,0xF8,0x48,0x32,0x31,0x71,0xC6,0x89, + + 0x86,0xC5,0xF8,0xB5,0xC9,0x9B,0xBA,0xC7,0xA2,0x29,0xCC,0x32,0x10,0x69,0x75,0x70, + + 0x69,0x5B,0xAE,0x26,0xC5,0xC8,0x9A,0x45,0x9E,0x18,0x37,0x4F,0xF5,0x38,0xD3,0x1A, + + 0x09,0xA5,0x94,0x7E,0xC8,0x6A,0xFB,0x3B,0xE4,0x52,0xE9,0xAB,0x19,0xF9,0x0D,0xCC, + + 0x7D,0xFA,0x3C,0xA1,0x41,0x8A,0x25,0x57,0x5C,0x37,0xA1,0x88,0x91,0x76,0x18,0x2A, + + 0x6E,0x99,0xF8,0xE5,0xF8,0x3C,0x2E,0xDA,0x12,0xA3,0xDE,0x78,0x19,0xAD,0x74,0x68, + + 0xB6,0x5C,0xB6,0xA2,0xF9,0x3D,0xCE,0x7C,0x6A,0x91,0xFF,0x9E,0x39,0x72,0x55,0xC4, + + 0x41,0x5A,0x8F,0xC5,0x47,0xB8,0x69,0x0B,0x98,0x81,0xC1,0xC5,0xFC,0x5F,0x77,0x27, + + 0x07,0x12,0xC7,0xD9,0x3C,0x4D,0xB3,0x11,0x2B,0x12,0x85,0x30,0x93,0x9E,0x1E,0x76, + + 0x65,0x84,0xA6,0x1B,0xB5,0x0F,0x48,0x2A,0xA4,0xC6,0x37,0x44,0x70,0x7C,0x49,0xD2, + + 0x07,0xED,0xB9,0x27,0x21,0x0E,0xB8,0x74,0x6F,0xDA,0x15,0x59,0x3E,0xEE,0x58,0x6D, + + 0xE5,0x86,0x37,0x20,0x35,0x0D,0x9C,0x53,0x67,0xC6,0x8E,0x7D,0x49,0x1F,0x17,0x66, + + 0x4F,0xD2,0x38,0x64,0xF9,0x00,0xD7,0x55,0x85,0x68,0x39,0xB5,0x69,0xD8,0xF5,0xB1, + + 0x82,0x09,0x21,0xB6,0x7F,0x05,0xF0,0x9D,0x40,0x8E,0xCE,0x4A,0x88,0x49,0xF8,0x21, + + 0x6B,0x2E,0x28,0x72,0x75,0xA8,0x26,0x90,0x43,0x68,0xD7,0x09,0x8E,0x79,0x33,0x08, + + 0x6D,0xE2,0xF0,0xAD,0x33,0x99,0x6E,0x1C,0x4B,0x87,0xE4,0xF9,0xD7,0x76,0x11,0x57, + + 0x05,0x01,0x97,0x6F,0x6F,0xB6,0x68,0xF7,0x8F,0x37,0x42,0x2D,0x2B,0xB6,0x1C,0x7E, + + 0xC6,0xB9,0xB7,0xFD,0x24,0xF5,0x4A,0x22,0xAC,0x37,0x32,0x3F,0x00,0x15,0x92,0xFA, + + 0x45,0xC5,0xAA,0x24,0x71,0x1C,0xC5,0xD7,0xB2,0x44,0x0F,0x87,0x59,0x49,0x6B,0x07, + + 0xBF,0x34,0xA1,0xE4,0x63,0x71,0xA3,0xC3,0x03,0x87,0xED,0xCD,0xD8,0xEC,0x7F,0xE6, + + 0x72,0xCA,0xBA,0x9B,0x95,0xCC,0x44,0xBF,0xAF,0x2E,0x3C,0x04,0xED,0x1E,0x90,0x4E, + + 0x46,0x7C,0x55,0x7B,0x18,0xB4,0xC9,0x88,0xE2,0x31,0x41,0x47,0xDE,0x6C,0x14,0x5C, + + 0xEE,0x0E,0x7B,0x19,0xF6,0xFC,0xCE,0x18,0xB4,0x30,0x3A,0xBA,0xC7,0x19,0x39,0xF8, + + 0xE6,0x9F,0xE3,0x51,0xA6,0x5A,0x0B,0x4F,0x6F,0x51,0xC4,0x43,0x2E,0xDF,0x46,0xA8, + + 0x03,0xCE,0x89,0x1F,0x76,0x9E,0xEB,0x88,0x4B,0x42,0x6E,0x0C,0xAF,0xEE,0x83,0xAA, + + 0x17,0x9D,0x97,0xBE,0x07,0xD0,0x52,0x8F,0x67,0x00,0xA6,0x96,0x9F,0xB4,0xD3,0x55, + + 0xEF,0x80,0x3B,0x88,0x41,0x05,0xB4,0x48,0x64,0xB1,0x18,0x92,0x9C,0x10,0x9D,0x7D, + + 0xB4,0xDF,0x65,0x97,0xA3,0x46,0xF5,0xE7,0x39,0x90,0x8F,0x17,0x6D,0x5D,0x96,0x00, + + 0xC9,0x99,0xBA,0x8D,0xC5,0x66,0xE2,0x4D,0xC1,0x83,0xAB,0xD5,0x95,0x33,0x3D,0xD7, + + 0x02,0x1F,0xD9,0x16,0x95,0x0B,0x93,0x6A,0xC3,0x02,0x34,0xC7,0xE6,0x7F,0x56,0x62, + + 0xB2,0x3A,0x54,0xE6,0x96,0x2A,0x87,0xD5,0xC6,0x94,0xC2,0xCE,0x57,0x98,0xA8,0xFE, + + 0x4D,0xD2,0xFD,0x52,0x85,0x6E,0xE5,0x10,0x6A,0xDB,0x0A,0x05,0x76,0xB5,0xC9,0xF7, + + 0xC4,0xF9,0xD2,0x90,0x65,0xBF,0x2D,0x6B,0xF3,0xCC,0xEA,0x85,0x48,0x42,0x23,0xCD, + + 0xD1,0x3E,0xB3,0xB1,0x08,0xC4,0x16,0xD0,0x5B,0x68,0xC8,0xA8,0x9D,0x7B,0x26,0x9F, + + 0x52,0x46,0x07,0xEC,0x86,0xA6,0xBD,0x3E,0x68,0x25,0x80,0x8B,0x16,0xF6,0xB6,0xF5, + + 0x66,0xAB,0x18,0xC0,0x29,0x67,0x8E,0x6C,0x72,0xD2,0x9A,0x5C,0x70,0xBB,0xBF,0x73, + + 0xCE,0xD6,0x18,0xA2,0x49,0x6A,0xFF,0xFF,0x1E,0xD3,0x3F,0x3D,0x3F,0xED,0x73,0x39, + + 0xAA,0x11,0xE5,0xB1,0xFC,0x2E,0x57,0x9C,0xE1,0x5A,0xE7,0xD1,0x12,0xBE,0xFE,0x25, + + 0x1C,0xAA,0xEC,0x22,0x3F,0x46,0x36,0x17,0x33,0x66,0x7B,0xC5,0x4F,0x08,0x35,0x9D, + + 0x45,0xFA,0x5C,0x5D,0xBE,0xB4,0x72,0xAB,0xEA,0xFA,0xA4,0x28,0xFF,0xAE,0xD7,0x87, + + 0x08,0x8F,0xAC,0x18,0x56,0xEE,0xEC,0x03,0x53,0x24,0x69,0x7B,0x8D,0x91,0x48,0x1D, + + 0xE9,0x91,0x67,0x62,0xCE,0xFD,0x70,0x6B,0x69,0x4D,0x1F,0x9C,0xB1,0xCF,0x1B,0x12, + + 0x81,0x11,0x8E,0x6A,0xB6,0x31,0x20,0x50,0x47,0x03,0xFE,0x55,0x50,0x21,0x11,0x76, + + 0xC8,0x6A,0x41,0x9D,0x21,0x2A,0x6E,0xA3,0x40,0x25,0x07,0x56,0xBC,0x0E,0x85,0x29, + + 0x91,0x07,0x36,0xF3,0x2C,0x2A,0x5E,0xB3,0x41,0xE3,0xB5,0xA3,0xBA,0x6C,0x12,0x6E, + + 0xE9,0x60,0xC0,0xBB,0xE7,0xA7,0x38,0x67,0xE1,0x21,0x3A,0x94,0x5A,0x2B,0xF5,0x61, + + 0x6F,0xAA,0x69,0x32,0xCD,0x37,0x5E,0x5C,0xAA,0x14,0x9E,0x9C,0x94,0x28,0x1B,0x40, + + 0x21,0x8D,0x45,0xBB,0x1D,0x3D,0xEE,0x83,0x8A,0x57,0x88,0xBE,0x77,0x6D,0xE9,0x23, + + 0xE1,0x1B,0x71,0xCB,0x90,0x3F,0x01,0x75,0x8B,0x76,0xC1,0xF5,0x32,0x28,0x86,0xCD, + + 0x78,0xF3,0xCD,0xFD,0x60,0x28,0xBE,0x8D,0x9D,0x2B,0x12,0x5F,0x34,0xED,0x19,0xFA, + + 0x41,0xE8,0x17,0x98,0x43,0x31,0x97,0xDF,0xBC,0x7B,0x9D,0xFB,0x93,0x10,0xC3,0x2D, + + 0xEA,0xA7,0xA5,0x60,0xEC,0x87,0xB8,0xE3,0x73,0x71,0x81,0xAD,0xDE,0x62,0x17,0x10, + + 0x68,0xA4,0x83,0x09,0xF2,0x9A,0xE7,0xBB,0x49,0x0C,0xC1,0x3F,0x6A,0xB6,0x3C,0x4F, + + 0xAB,0x85,0xFC,0x79,0x72,0x21,0x72,0xEF,0x02,0xAD,0xB2,0x23,0x27,0x61,0x54,0x4B, + + 0x67,0x02,0xF0,0xEC,0x82,0x6F,0x7A,0xA1,0xEA,0xC7,0xB7,0x9A,0xF7,0xC0,0xC7,0xA9, + + 0xB5,0xA3,0xD1,0x59,0x71,0x6A,0x67,0x7A,0xEE,0x48,0xF9,0xBD,0x86,0x75,0x79,0x4A, + + 0x28,0x3E,0x43,0x2F,0xA8,0xCF,0x23,0x2B,0x88,0xBF,0xCA,0x9F,0xFF,0xC0,0xE8,0xB1, + + 0x4C,0x52,0xC3,0x94,0x03,0x97,0xAB,0x46,0x53,0xC6,0x9C,0xBD,0xFF,0xF6,0x74,0x81, + + 0x4D,0xBC,0x05,0x10,0x6B,0xB1,0x3C,0x03,0xC0,0x58,0xFE,0xB6,0x70,0xA1,0x95,0x60, + + 0xC3,0x32,0x45,0x1C,0x91,0x29,0xD5,0x3D,0xDA,0x54,0x94,0xDB,0x91,0x76,0x9B,0x23, + + 0xFD,0x3D,0xD4,0xD8,0xB7,0x81,0xDD,0x35,0xBB,0x55,0xC7,0x36,0x99,0x92,0xD3,0x33, + + 0xA6,0x9F,0xAD,0x2F,0xCD,0xBF,0x34,0xAF,0x1F,0x59,0x8E,0xEB,0x0E,0x6B,0x88,0x97, + + 0xF9,0xEA,0x6C,0xA6,0x51,0x09,0x05,0x3B,0xC6,0x39,0xCB,0x1E,0x92,0x3A,0x61,0x7D, + + 0xA4,0x1E,0x0D,0xF4,0xDE,0x99,0x7F,0x31,0xBE,0xA9,0x6E,0x03,0x91,0x02,0xF6,0x4B, + + 0x7A,0xEA,0x0D,0xE0,0x6D,0x3F,0xBA,0x31,0xBB,0x4C,0x62,0xC4,0x52,0xD6,0x96,0xC7, + + 0xD5,0x64,0x9E,0xE3,0xC7,0xE3,0x36,0xB9,0xE5,0x3B,0xE8,0xAA,0x99,0xFB,0x70,0xF5, + + 0xAB,0x1D,0xC9,0x94,0x0A,0x8F,0x63,0x51,0xB7,0x36,0x9A,0x5E,0x90,0x50,0x67,0x8B, + + 0xEB,0x17,0x87,0x65,0x6A,0x78,0xBC,0x0C,0x3D,0x44,0x26,0x5E,0x74,0xF1,0xC3,0xFB, + + 0x42,0x01,0x4F,0x04,0x98,0xC7,0xA4,0x30,0x46,0x5D,0xDD,0x42,0x10,0x9A,0x69,0x32, + + 0xA5,0xA1,0x40,0xBE,0xB8,0x40,0xFA,0x8E,0x95,0x47,0xEE,0x13,0x83,0xDD,0x6E,0x4A, + + 0xAB,0x15,0xC8,0xE9,0xB2,0xF0,0x64,0x10,0xB8,0x12,0x05,0xEC,0x18,0x07,0x25,0xC9, + + 0x5B,0x97,0x9F,0x2F,0x3A,0xBE,0x3A,0x8F,0x96,0x11,0xEF,0xDC,0x5B,0xC1,0x5A,0x5D, + + 0xAA,0x15,0xF1,0x05,0x98,0xBE,0x06,0x38,0x4E,0xD6,0xC8,0x79,0xDF,0xB6,0xB6,0xF2, + + 0xC5,0x21,0xA0,0xF7,0x60,0x5F,0x08,0x42,0x42,0x82,0xAA,0x24,0xC6,0xEA,0x10,0x72, + + 0x53,0x0A,0xBF,0x16,0xDD,0xBB,0x94,0x97,0x90,0xA2,0x58,0x07,0x39,0x4E,0xB7,0x87, + + 0xAC,0x96,0x87,0x3B,0xA9,0x09,0x76,0xA1,0x44,0x62,0x31,0x64,0x52,0x69,0xBA,0x22, + + 0xE9,0xC1,0x3A,0x64,0x86,0xE1,0x92,0xF9,0x7E,0xF8,0x19,0x45,0xB7,0xB6,0x1E,0x6E, + + 0xE7,0x2B,0x4B,0x01,0x18,0x78,0x0E,0x4A,0x66,0xC7,0x54,0x04,0xAD,0xA6,0x0E,0x23, + + 0x04,0x4C,0xB2,0x13,0x7F,0x44,0x8F,0x14,0x66,0x85,0x9A,0x72,0x73,0xE3,0x70,0x30, + + 0xB6,0xEA,0x25,0x8D,0x2D,0x59,0xF1,0x00,0x10,0xDD,0xBF,0x45,0x2B,0x8A,0xA9,0x13, + + 0x84,0x0C,0x97,0x51,0x76,0x24,0x45,0xED,0x2E,0x5D,0x53,0xB1,0x76,0x65,0x36,0x00, + + 0xAD,0x83,0xE5,0x46,0x1D,0x68,0x44,0xCD,0xB9,0xFA,0xCC,0x29,0x3F,0xC8,0xBC,0xF0, + + 0xA8,0x03,0x39,0xE1,0xD5,0x78,0xC5,0x32,0xE8,0xD2,0xAE,0xCF,0xFE,0xA9,0x61,0xFB, + + 0xE5,0x2B,0xFD,0x36,0x9C,0x01,0xCF,0xC3,0x2E,0x87,0xCB,0x5C,0xB0,0xE3,0x53,0xFB, + + 0x99,0x00,0xE2,0xF7,0x7F,0xE9,0xD8,0x64,0x6A,0xDB,0x89,0x0F,0x89,0xA9,0x03,0x77, + + 0xE5,0xC8,0xCF,0xCA,0x72,0x5A,0x2A,0x66,0x7D,0x46,0x8A,0x9E,0xC2,0x5D,0xCE,0x38, + + 0xFC,0xE8,0x87,0xB6,0x53,0x71,0x90,0x1C,0x6E,0x4D,0x5F,0x43,0xEC,0xA0,0x39,0x59, + + 0xF8,0x21,0xAB,0xC2,0x98,0xE6,0xCB,0x8B,0x86,0xD5,0x8A,0x09,0x29,0x65,0x53,0xA0, + + 0xEC,0x83,0x47,0xDA,0x4A,0xCD,0x41,0x93,0x54,0x80,0x57,0xE1,0xDC,0x2F,0x44,0x80, + + 0x84,0x9D,0x19,0xD9,0x43,0xB0,0x14,0x10,0xC5,0xD9,0x18,0x39,0x77,0x91,0x30,0x70, + + 0x84,0xFF,0xAD,0x7E,0xEB,0xF3,0x1C,0xA3,0xE8,0xB2,0x2A,0x84,0x15,0xB3,0x6F,0x9E, + + 0x26,0xAE,0xFC,0x19,0xB2,0x00,0xF5,0x27,0xBE,0xD4,0xEB,0x45,0xF0,0x5F,0x4F,0x87, + + 0xA4,0xF3,0xEA,0xF7,0x86,0xC8,0x96,0x16,0x30,0xCD,0x7D,0xF7,0xAD,0x9D,0x3E,0x42, + + 0x5A,0x3B,0x84,0x89,0x15,0xB9,0x70,0x82,0x5D,0x59,0xCC,0x1C,0x70,0xB5,0x12,0xD5, + + 0xA6,0xF1,0x29,0x3E,0xBA,0xF8,0xC4,0x0D,0x8E,0x34,0xF4,0xE6,0x48,0xD5,0xC5,0x33, + + 0x18,0x45,0x49,0x54,0x86,0xBC,0x0B,0xD6,0xD5,0x11,0x69,0x85,0x79,0x60,0x45,0xD5, + + 0x2A,0xF2,0x12,0xB5,0xCB,0xB8,0xD1,0x6C,0xE4,0x4E,0xDD,0xF3,0xC8,0xF7,0x7C,0x9E, + + 0x8F,0x83,0x66,0x12,0x06,0xF9,0x4B,0x43,0xB6,0xB7,0xD4,0xA6,0x89,0x71,0x77,0xD6, + + 0xCC,0xD6,0x90,0xFF,0x82,0xE2,0xB7,0xDC,0x9A,0xC9,0x3D,0x4E,0xF3,0x58,0x55,0x0F, + + 0xFA,0xA9,0x7C,0xA1,0xC3,0xFC,0x8C,0x22,0x43,0xC1,0x97,0x3D,0x7C,0xF2,0x2E,0xE8, + + 0xBE,0xD4,0xAF,0xED,0x46,0xF9,0x87,0x44,0x62,0xC0,0x29,0x4C,0x79,0x76,0x5E,0x51, + + 0xD1,0x3C,0xDC,0x26,0xED,0xF3,0x2C,0x3E,0x06,0x3D,0x4D,0x3E,0x76,0x85,0x28,0xDD, + + 0x65,0xD9,0xB7,0x1F,0x9A,0x34,0x40,0x22,0x4E,0x47,0x62,0x84,0xDC,0x0D,0xC7,0x18, + + 0x2A,0xDE,0xE6,0xA9,0x9F,0x2E,0x0E,0x8D,0xCF,0xD7,0xEF,0xFE,0xF8,0xBF,0x57,0x41, + + 0x2C,0xDB,0xEB,0xBF,0xF7,0xA4,0xBF,0xBF,0x74,0x5E,0xF8,0x21,0x60,0xBE,0xA8,0x25, + + 0x85,0xC1,0x96,0x66,0xAF,0x8D,0x18,0x24,0xC7,0x31,0x50,0x18,0xD9,0x22,0x51,0xA2, + + 0xA4,0xAE,0xF7,0x10,0x4C,0xB2,0xA0,0xDE,0x51,0x0C,0x58,0x08,0xD8,0x65,0xA9,0x30, + + 0x05,0x73,0x98,0xA0,0x27,0xAF,0xF9,0x04,0xF3,0x9F,0xC9,0x6A,0xAF,0x22,0x9F,0x19, + + 0x24,0xAC,0xAF,0xF0,0xA1,0x25,0xB5,0xA3,0x89,0x1E,0xC4,0xB7,0x51,0x9A,0x1A,0x48, + + 0xA1,0x46,0x78,0x64,0xFF,0x44,0x45,0xE2,0xDF,0xCD,0xB6,0xC5,0xB9,0xC7,0x56,0x78, + + 0x22,0x35,0xA3,0x32,0xEC,0x4B,0xA5,0x0A,0xCC,0x13,0xA6,0xC4,0xBA,0x06,0x1D,0xDA, + + 0x6B,0x6D,0x79,0x55,0x35,0x3D,0x69,0x8F,0x4F,0xD0,0xEF,0xD5,0x18,0x65,0x29,0x53, + + 0xF3,0xAA,0xAB,0x51,0x92,0x57,0x51,0x60,0x62,0x38,0xCB,0x3F,0x2C,0xEA,0x13,0x4F, + + 0xCA,0x4B,0xA2,0x4C,0xB9,0x87,0x70,0x28,0x49,0x22,0xAA,0xCC,0x04,0x73,0x68,0x1A, + + 0x0A,0xC9,0xE8,0x09,0x18,0x79,0x0B,0x09,0xBD,0xA8,0x9F,0xBE,0xD9,0xF8,0x3D,0x3C, + + 0xE9,0x0E,0x96,0x7E,0xA0,0x44,0x03,0x00,0x8B,0x49,0xDF,0x4B,0x3A,0x2A,0x55,0x2C, + + 0x89,0xA0,0xEB,0x1F,0xDC,0x26,0xAC,0x11,0xBA,0x4B,0xC1,0x2A,0x7A,0xE4,0x9E,0xAA, + + 0xE9,0x69,0x7D,0x1C,0x9A,0x63,0x69,0xE7,0xF5,0x4A,0x84,0xC8,0xAD,0x00,0x13,0x1F, + + 0xAE,0xB2,0x9E,0x1A,0x63,0x6C,0xE7,0xBF,0x99,0x47,0xBC,0x40,0x5A,0x2F,0x3B,0x6D, + + 0x6B,0x31,0xFE,0x2D,0x9E,0x60,0xFE,0x18,0x6B,0xD1,0x6C,0xFE,0xA6,0xB3,0x12,0x96, + + 0x2E,0xBE,0xE0,0x22,0x4A,0x92,0x5C,0x89,0xC3,0x53,0xE5,0xCC,0xBB,0x73,0xC4,0x60, + + 0x9D,0xEB,0x44,0x74,0x97,0xCB,0xC3,0xD5,0xED,0x4B,0xAC,0xF4,0x74,0x7F,0xE0,0x78, + + 0xDC,0x5C,0xB2,0xBD,0xD3,0xA1,0x54,0x91,0x1A,0xD1,0x0B,0x56,0xF3,0x75,0x85,0x05, + + 0xD4,0x3E,0x05,0x01,0xC4,0x1E,0xEB,0x25,0x9E,0x00,0xAD,0x57,0x72,0x76,0x6F,0x90, + + 0xB3,0x5E,0x8D,0xD5,0xB5,0x1B,0xDD,0x0C,0xD8,0x3F,0xC4,0xD7,0x0E,0x77,0x9F,0xD9, + + 0xA2,0x8D,0x43,0x35,0x91,0x35,0x57,0xA0,0x72,0xD9,0x82,0xD4,0x8D,0xDB,0x16,0xBC, + + 0x5B,0xBA,0xB2,0xE9,0x8A,0xBF,0xE7,0xF2,0x7F,0x4E,0x23,0x07,0x55,0x19,0x9E,0xDD, + + 0x43,0xA9,0xF7,0xD6,0x11,0xE7,0x0C,0x3B,0x45,0x46,0x01,0x96,0x90,0xF5,0xED,0xA3, + + 0xC1,0x6B,0x4A,0x24,0x10,0x36,0x32,0x97,0x1C,0x39,0xE3,0x50,0x39,0x86,0x64,0x88, + + 0x2B,0x58,0x04,0x0E,0x00,0xD2,0x4F,0x4B,0x6E,0xAB,0xD0,0xEA,0x72,0x7E,0xB6,0x76, + + 0x39,0x54,0x11,0xBD,0x16,0x18,0xA7,0x2A,0x61,0x51,0x65,0x5E,0xD8,0xF3,0x03,0xE6, + + 0x9B,0xD5,0x91,0xEF,0x97,0x1B,0xD6,0x69,0xAA,0x36,0xB7,0x91,0x59,0xF0,0xF2,0x5E, + + 0x63,0x0A,0x53,0xBC,0xD6,0x1A,0x9C,0x7F,0xC5,0x15,0xE0,0x5F,0x58,0xF4,0x38,0xCF, + + 0x8B,0x83,0xF4,0xDF,0x99,0x3F,0x34,0xF0,0x6B,0x9C,0xE8,0x48,0xB0,0xAD,0x2D,0x37, + + 0xDA,0x73,0xC1,0xBE,0x35,0x5F,0x49,0xDC,0x96,0x56,0x0E,0xEF,0x07,0x1E,0x5F,0x19, + + 0x27,0xE3,0xB9,0x6C,0x38,0x3A,0x6D,0x61,0x4D,0x12,0x9F,0xF9,0x32,0xAF,0xA8,0x99, + + 0xA7,0x82,0x0B,0x0D,0xB3,0x86,0x5D,0x11,0x30,0x82,0x73,0x8E,0xD5,0xD9,0x31,0xA6, + + 0x02,0x4B,0xBE,0x2F,0x35,0xE0,0x6F,0x27,0x42,0xE0,0x04,0xC4,0x52,0x08,0xE8,0xE3, + + 0x5D,0x2C,0x88,0x42,0xB6,0x0C,0xF9,0xF5,0x76,0x2E,0x2B,0x75,0x2E,0xE1,0xB5,0x87, + + 0x8D,0xE3,0xAD,0x96,0x75,0xA4,0xC5,0xBA,0xC2,0x82,0x41,0x55,0x2B,0xA0,0x72,0x54, + + 0x47,0xE3,0xBC,0x50,0x57,0xA0,0xF9,0x8E,0xD3,0xCB,0xE2,0x57,0xAA,0xC3,0x98,0xC0, + + 0x9B,0x5D,0xF8,0x5A,0x25,0xBC,0x4F,0x28,0x56,0xC0,0x0F,0x14,0x3C,0x67,0x0F,0x12, + + 0x17,0x08,0x50,0xA5,0x79,0xA3,0x03,0x99,0x1F,0x78,0x1F,0x05,0x71,0x33,0x59,0xB8, + + 0x23,0xEA,0x59,0xB4,0xF0,0xB6,0xF1,0x24,0xE8,0xD8,0x0A,0xA0,0x3F,0x85,0x91,0x5B, + + 0x20,0x97,0xC9,0x9A,0x17,0x37,0x63,0x63,0xE4,0xD1,0xF1,0x63,0xB4,0x2D,0x6A,0x9E, + + 0x2E,0x69,0xAA,0x9A,0xF5,0x99,0xB2,0x28,0x2E,0xD3,0x72,0x4F,0x9B,0xEC,0x3A,0x0F, + + 0x55,0x72,0x2D,0xE3,0x11,0xEB,0xBA,0xFA,0x6F,0x02,0x3C,0xBC,0xDD,0x38,0xE7,0x2B, + + 0xB4,0x88,0x4F,0x9D,0x9D,0xA0,0x56,0x5D,0x41,0x4C,0xFF,0xE9,0xD6,0xA4,0xAF,0x9F, + + 0xF9,0xA7,0x38,0x5C,0x61,0x9A,0xBB,0x39,0xBD,0x89,0x83,0x6F,0xD5,0xE4,0x9A,0x0C, + + 0x72,0x7B,0xBB,0x1F,0xBB,0x03,0x12,0x68,0x4D,0xC1,0xE1,0x84,0xBF,0xA3,0x33,0x95, + + 0xA8,0x89,0x3C,0xDC,0x9F,0x37,0x07,0x11,0x3B,0x12,0xAC,0x0D,0x79,0x4B,0x9C,0x5E, + + 0x6F,0x51,0x31,0x47,0x3B,0x01,0x63,0x19,0xCA,0x43,0x5F,0x1C,0xF0,0x48,0xB7,0xE4, + + 0x78,0x0F,0xD3,0xB4,0x5E,0x25,0x63,0x6A,0x40,0x49,0xA9,0x3F,0x8F,0x42,0x1A,0xB7, + + 0x45,0x94,0x7F,0xA7,0xEC,0x91,0x21,0xD0,0x57,0xE6,0xD4,0xA4,0x08,0xFF,0x4D,0xD2, + + 0x69,0x92,0xD2,0xD7,0x71,0x90,0x59,0x46,0x6D,0xBD,0xF0,0xB4,0x6B,0x5A,0x5C,0xED, + + 0xC5,0x96,0xD3,0xA6,0x3F,0x93,0xCF,0xA1,0xA4,0xC9,0x8F,0x58,0xF2,0x73,0xB9,0x1B, + + 0x22,0x52,0x10,0xB6,0x16,0xFD,0x64,0xCD,0x40,0x55,0x61,0xBD,0x75,0x31,0x83,0x2D, + + 0xA4,0xE8,0xFC,0xCB,0xC7,0xF6,0x8C,0x0A,0xBD,0x99,0x63,0x15,0x58,0x59,0x80,0x5C, + + 0x24,0xD7,0x65,0x3E,0xAF,0xB1,0x3D,0x14,0x77,0x98,0x2C,0xB1,0x9E,0x56,0x7B,0xA1, + + 0x11,0xEB,0x26,0x87,0xB0,0x64,0xEE,0x83,0xA8,0x5B,0x25,0x74,0x82,0x59,0x37,0xD2, + + 0x36,0x2A,0xE8,0xAD,0xB1,0x65,0x82,0x34,0x25,0xD7,0x9B,0xCA,0x1C,0x54,0x06,0x1A, + + 0x2A,0x6B,0x25,0xCF,0x78,0xF4,0x32,0xEA,0x24,0xC3,0xE8,0x4B,0xE4,0xFC,0x95,0xEA, + + 0xAD,0x86,0xF5,0x8B,0xB8,0x48,0xD6,0x8B,0x1A,0xAE,0x2D,0xFD,0x7B,0xD2,0xB9,0x4C, + + 0x11,0x6C,0x24,0xCE,0xF8,0x11,0x52,0xDD,0xCD,0x9A,0xF3,0x52,0xF0,0xB8,0x96,0xEB, + + 0x2D,0x8D,0xA3,0x8B,0xC2,0xDB,0xE0,0x3B,0x04,0xE2,0x40,0x3D,0xFE,0x1D,0x4F,0xC2, + + 0xAE,0xDC,0xAC,0x4A,0x68,0xE4,0x7E,0xFF,0x93,0x5A,0xC8,0x5E,0xB4,0x2D,0x95,0x7A, + + 0x5B,0x4C,0xBC,0xD6,0x9A,0x12,0x69,0x12,0xB4,0x00,0x49,0x5B,0x79,0x2F,0xCB,0x6E, + + 0x3D,0x01,0xBE,0xD8,0x1B,0x11,0x70,0x2B,0xEA,0x90,0x89,0x5F,0x0A,0xBD,0x4F,0x7F, + + 0x8F,0x4E,0xB9,0x98,0x56,0x1C,0x87,0xDF,0xDC,0x41,0x34,0xC1,0x99,0x0A,0xD6,0xFA, + + 0xFB,0x42,0x67,0x44,0x1C,0xDB,0x49,0x11,0xE5,0x31,0x92,0x42,0x2C,0x2F,0x30,0x6F, + + 0x80,0x0C,0x3F,0xB5,0x35,0x6D,0xAF,0x95,0x09,0x22,0x74,0xA6,0x30,0x69,0x85,0x04, + + 0x75,0x0E,0x7E,0x21,0x74,0xA1,0xEC,0x53,0xF6,0x1D,0xAB,0xD6,0xF3,0x2F,0xBA,0xA1, + + 0x7D,0xA0,0x59,0x66,0xB2,0x28,0xD9,0xF1,0x4F,0xB7,0xD9,0x53,0xB1,0xF5,0xBB,0x70, + + 0x51,0xAB,0x47,0x37,0x26,0x85,0x11,0xA7,0x44,0xF6,0x98,0xF6,0xF3,0xE3,0x36,0x57, + + 0xA2,0x47,0x82,0x50,0xF8,0xB4,0x1A,0x83,0x1C,0xCE,0x80,0xF6,0x50,0xC3,0xE1,0x33, + + 0xE0,0x5A,0xF9,0xBA,0xFB,0x57,0x4C,0x21,0x82,0x7B,0x2E,0x96,0xD4,0x8E,0x0E,0xE5, + + 0x6A,0xBD,0xF7,0x78,0xD0,0x07,0x92,0x4D,0x28,0x03,0xE7,0x58,0x70,0x61,0xC2,0x94, + + 0x5F,0x06,0x4B,0xE4,0x44,0x65,0xC2,0x5A,0xF3,0x57,0x6A,0xC4,0xD5,0xE3,0xF1,0x9C, + + 0x05,0xDD,0x85,0x3C,0x3F,0x71,0x9E,0x3D,0x7A,0xA9,0x22,0x2C,0xFE,0x6D,0x3B,0xF6, + + 0x0B,0x07,0x9B,0xCD,0xBA,0x6A,0x68,0xD2,0x3F,0x08,0x97,0xCB,0xEB,0x6A,0x9B,0x06, + + 0xB5,0xBF,0x63,0xB9,0x9F,0x33,0xDB,0x29,0x84,0x17,0x99,0x4F,0xEA,0x07,0x82,0xD1, + + 0x69,0x04,0x4D,0xBF,0x26,0x81,0x68,0xD8,0xDF,0x0E,0x9A,0xFE,0xF9,0x6A,0x81,0xDC, + + 0x51,0xCE,0xAF,0xB4,0xDD,0xE0,0x42,0xFC,0x11,0xE6,0xA2,0x58,0x30,0x62,0xC3,0x0A, + + 0x70,0xA3,0xD0,0xAD,0x9E,0x03,0x14,0xCD,0x47,0xE3,0xDB,0x25,0xB9,0x4E,0x8B,0xC0, + + 0x35,0x63,0xB4,0xA0,0x93,0x6D,0x13,0x69,0x72,0xCF,0x5B,0x0E,0xE9,0x2D,0x02,0x68, + + 0xF0,0xDD,0x5F,0x2B,0x4F,0x32,0xD4,0x08,0x5A,0xFD,0xB4,0x75,0xD1,0xFA,0xB4,0xD7, + + 0xFF,0xEE,0xC2,0xDF,0x32,0xC3,0x04,0x38,0xEC,0xF7,0xAE,0x4B,0x42,0x71,0x7B,0x21, + + 0x93,0x60,0x45,0x98,0xFC,0x70,0xC5,0x43,0x09,0xA3,0x12,0x54,0x53,0x22,0x54,0xB5, + + 0x04,0xCC,0xDD,0x35,0xFF,0x71,0x4B,0x71,0xEF,0xA6,0x25,0x72,0x2F,0xDE,0x84,0x59, + + 0x44,0x56,0x04,0x80,0x41,0xC9,0xC4,0xFF,0x56,0x52,0x60,0x86,0x99,0x30,0xE0,0x54, + + 0x79,0x8C,0xDF,0xA7,0x43,0x59,0xED,0xFC,0xE1,0x5F,0xF4,0x87,0xFF,0xF3,0x86,0x49, + + 0x03,0x69,0x4E,0xA5,0xB8,0x96,0x1D,0x76,0x43,0xD1,0xF4,0xE2,0x7D,0xF0,0x45,0xAC, + + 0x4A,0xAD,0xAF,0xD0,0xB2,0x99,0x3F,0x93,0x1C,0x32,0xDD,0x35,0xE1,0xFC,0xAA,0xF7, + + 0xFE,0x9A,0x56,0x74,0x0B,0xB6,0x81,0x2C,0x3D,0x25,0xEE,0xDC,0xF8,0x67,0xF1,0x69, + + 0x03,0xE6,0x10,0x03,0x5A,0x3D,0x78,0x08,0x6A,0x99,0x98,0x41,0x71,0x3B,0x79,0x38, + + 0xC3,0x99,0x3F,0x72,0x37,0x97,0xAC,0x5A,0xCE,0x36,0xCD,0xAF,0x6A,0x72,0x35,0x6A, + + 0xDD,0xB6,0xF6,0xEC,0xDC,0x2D,0x39,0x1D,0x8B,0xFF,0x90,0x3E,0xD9,0xAB,0x86,0x51, + + 0x4C,0x21,0xA6,0x8D,0xD7,0xB7,0x6E,0x95,0x4B,0x8C,0x1B,0xDD,0x48,0x3E,0x55,0x98, + + 0x67,0x5F,0xAE,0x1C,0xF9,0x90,0x14,0x03,0xC8,0x5B,0xA6,0x0D,0xD8,0x3D,0xBA,0x0E, + + 0xAC,0xAC,0xBC,0x2F,0x3A,0xE1,0x37,0xA8,0x64,0x53,0xC3,0xE7,0x99,0x81,0x08,0x76, + + 0x0A,0x9D,0x5E,0x3F,0x39,0x37,0x53,0xFE,0x4A,0xD7,0xE1,0x55,0xFD,0x5E,0x33,0x0D, + + 0x7C,0x0B,0xFF,0xC0,0x18,0xBB,0x8B,0x6C,0xD9,0x3D,0x48,0xA2,0x1F,0xDC,0x6E,0x70, + + 0xEE,0xE2,0xB6,0x09,0xB6,0x24,0x81,0xD0,0xE9,0xBC,0xFC,0x44,0x66,0xE1,0x51,0x3E, + + 0x82,0x91,0x63,0x61,0x6B,0x0F,0x9C,0xA7,0xF6,0xC2,0xF9,0x22,0xF6,0x10,0x70,0x9B, + + 0x20,0x7C,0x8F,0xF5,0xDC,0x0C,0x41,0xC0,0xE3,0x1E,0x41,0xDF,0x13,0x2E,0xA0,0xDB, + + 0x3F,0x8E,0x26,0x74,0xF7,0x0B,0x0E,0x02,0xAF,0x7E,0xE4,0xD1,0xF7,0xFB,0xA3,0x6E, + + 0xEC,0xC1,0xD2,0xB4,0x11,0xFD,0x06,0xAB,0xAE,0x3F,0xD9,0x71,0xDA,0x63,0xE1,0x00, + + 0x7C,0x0D,0xF2,0xC5,0x97,0xBE,0x21,0x14,0xCA,0x4B,0x45,0x05,0x3D,0xA2,0x53,0xE3, + + 0x12,0x28,0x70,0xBA,0x87,0x18,0x29,0x04,0xCB,0x4A,0x99,0x04,0x5B,0x61,0x8E,0x79, + + 0x22,0x7E,0x28,0xF2,0x94,0x53,0x2A,0x2F,0x27,0x8B,0xCD,0xD3,0x54,0xAA,0xAD,0xF2, + + 0xC7,0x44,0xEA,0xE7,0x8F,0x32,0x02,0xC5,0xA4,0x8A,0x9A,0x1F,0x6E,0x19,0x5D,0x36, + + 0xE7,0x89,0x8B,0xE3,0x22,0xD1,0xCC,0xAF,0xFE,0xF9,0x75,0x1D,0x3D,0x15,0x69,0x6A, + + 0xB1,0x80,0x0E,0x9B,0xCC,0x81,0xD7,0xA4,0xCC,0x0B,0x03,0xDF,0x83,0xED,0xC6,0x28, + + 0x08,0x3E,0xB9,0x0C,0xE1,0x77,0x0C,0xB7,0x2D,0xB8,0xF2,0x2E,0x3C,0x51,0x2D,0xAA, + + 0x0E,0xCD,0xB5,0x56,0x6C,0xAD,0x85,0x6B,0x54,0xE8,0xFA,0x3E,0x2F,0xAF,0xB1,0x38, + + 0xD1,0xCC,0x80,0xCB,0x96,0x5D,0xE4,0x81,0x2F,0x81,0x91,0xED,0x2F,0x68,0x47,0xE0, + + 0x66,0x86,0x34,0x5F,0xE8,0xA3,0xC1,0x66,0x67,0x02,0xEF,0xD8,0x7E,0xF0,0xB7,0xC5, + + 0xEE,0x93,0xAC,0x96,0xB3,0x42,0xA3,0x03,0x2C,0x01,0xB6,0xD4,0x47,0xF0,0xEC,0x3A, + + 0x25,0x9C,0x2C,0x94,0x91,0x4A,0xFC,0x1A,0x1D,0xDC,0x04,0x48,0x88,0x9D,0x2D,0x87, + + 0x2C,0x8F,0x85,0x96,0xB2,0x18,0x33,0x9E,0x6C,0x28,0x4D,0x83,0xC7,0xF6,0xD6,0xB4, + + 0x04,0xEC,0xBC,0x7F,0xE9,0xFE,0xC2,0xC0,0x87,0xBD,0x5E,0xF7,0xF1,0xDF,0x1A,0x1B, + + 0x45,0x0E,0x12,0xB4,0x95,0xB2,0x70,0x00,0xE4,0xDE,0x02,0x16,0x89,0xFB,0x3E,0x9C, + + 0x21,0x27,0xE4,0x53,0x96,0x3F,0x42,0xDE,0xEA,0xB7,0x31,0xCB,0x71,0xD4,0xF6,0x30, + + 0x22,0x1B,0xED,0x68,0x15,0xB0,0x13,0x81,0x0D,0xA7,0x41,0x05,0xD2,0x7D,0xBD,0x94, + + 0x4E,0x4D,0x02,0x35,0x16,0x3D,0x65,0x76,0x0E,0xA6,0xDC,0x98,0x54,0x76,0x8F,0xF4, + + 0xB9,0x83,0xFE,0x9E,0x0F,0x6A,0xD1,0xEA,0x28,0x9A,0x9E,0x5E,0xE0,0x09,0xB9,0xDD, + + 0xF3,0x91,0x09,0x7C,0xDD,0x46,0x46,0x90,0x15,0x14,0x39,0xBC,0xC0,0x04,0x33,0xED, + + 0x53,0x37,0x1F,0x70,0x55,0xB1,0x66,0x92,0x05,0x59,0xCE,0xC9,0xDF,0x9A,0xAA,0xBB, + + 0xA7,0x8B,0xF6,0x9E,0x1A,0xA0,0xC0,0xC8,0x8F,0xB5,0xA9,0xDD,0x95,0xF6,0xA6,0x53, + + 0x45,0x96,0x11,0x2C,0xBC,0x94,0x68,0xC6,0x2D,0xFC,0x65,0x6A,0x56,0xE8,0xA5,0xA9, + + 0x70,0xDF,0x96,0xAC,0xC0,0x16,0x34,0xFB,0x90,0x70,0xEA,0x59,0x8E,0xF2,0x65,0xA0, + + 0xEE,0x31,0x43,0xAD,0xFD,0x51,0x09,0xD3,0x07,0x8F,0xAD,0xEE,0x5D,0xBC,0x28,0x6F, + + 0xA9,0x4D,0x49,0xDE,0xE3,0xB9,0xEA,0x2B,0x18,0xDB,0x4B,0x84,0x5C,0xBE,0xA7,0x2D, + + 0x06,0xA8,0x20,0x76,0x72,0x5C,0x72,0x21,0x43,0x0A,0x85,0x46,0xA7,0x05,0x30,0xE3, + + 0x71,0x64,0x2F,0x2C,0x93,0x25,0x0F,0xB4,0x69,0xA6,0x38,0x27,0x6D,0x05,0x26,0x83, + + 0x3C,0x00,0x36,0x03,0x7B,0x53,0x4F,0xC3,0xC4,0xEF,0xA9,0xDA,0x18,0xF3,0x31,0xE2, + + 0xF9,0x88,0x41,0x77,0x50,0xA9,0x21,0xCF,0x6D,0x4E,0x59,0x11,0x61,0xC3,0x1A,0xA2, + + 0x6A,0x15,0xD1,0x83,0xFB,0x35,0xC1,0x93,0x7E,0xEB,0xE8,0xB4,0x0E,0xCF,0x10,0x8C, + + 0x05,0x24,0xD2,0x56,0xA0,0x88,0xF7,0xF4,0x06,0x4C,0xE6,0x96,0x49,0x0A,0x3F,0x69, + + 0xC1,0x09,0xA7,0x69,0x7B,0x17,0x42,0x8E,0x1F,0x3B,0xA9,0x45,0x32,0x09,0x7C,0x33, + + 0x74,0x62,0x5F,0x25,0x13,0x31,0xE6,0xB6,0x01,0x27,0x49,0x85,0x60,0xC6,0xFD,0xFB, + + 0x2A,0xA7,0x05,0xFF,0x28,0x6A,0x04,0x89,0xB7,0xE5,0x83,0x5F,0x68,0xEF,0xDE,0x6A, + + 0xB2,0x82,0xB9,0x35,0x1F,0x0A,0x62,0x3C,0xA0,0xD8,0xA4,0x09,0xD4,0xEF,0x57,0xFA, + + 0xAE,0xA5,0x97,0x63,0x60,0x7B,0x43,0x95,0x3F,0xE1,0x17,0xFA,0x90,0x8B,0xE8,0x30, + + 0x8F,0x2A,0x3B,0x99,0xB1,0x76,0xDB,0x18,0x27,0x46,0x1C,0xFD,0xDD,0x4B,0x7A,0xB7, + + 0x0C,0x4D,0xCA,0x58,0xD2,0xCD,0x5A,0x7D,0xAB,0xE3,0x43,0x9F,0xDE,0xE1,0x28,0x5C, + + 0x08,0xAF,0x0A,0x18,0xC6,0x50,0x1B,0xFC,0x4E,0xB1,0xE2,0x58,0xD9,0x65,0x4B,0xCD, + + 0xAE,0x6E,0xD6,0x5E,0xAA,0x7F,0xC5,0x9A,0xFA,0x67,0x81,0x3A,0x31,0x0A,0x15,0xBB, + + 0x8F,0x72,0x0B,0x4C,0xC7,0x82,0xE6,0xFD,0x83,0xBF,0x0F,0x9F,0x59,0x47,0x62,0x20, + + 0x23,0xD0,0xCA,0x00,0x18,0x6D,0x45,0x8F,0x1C,0xE5,0xDE,0xB9,0x51,0x52,0x29,0xAC, + + 0xF8,0x2C,0x73,0x10,0x19,0x2E,0x0B,0x34,0x1D,0x07,0x85,0x8B,0x1D,0x33,0xA6,0x21, + + 0x7C,0x31,0xBD,0x7B,0x1C,0x3F,0xC1,0x9B,0xC6,0xA7,0xC5,0x3D,0xF4,0x5A,0x22,0xAE, + + 0xD9,0x51,0x4D,0xB1,0xF9,0xB5,0x47,0x8D,0x89,0x22,0xD5,0xB5,0xF7,0x32,0xFB,0x22, + + 0x24,0x55,0x4C,0x01,0x93,0xBE,0x52,0x92,0x89,0xB5,0xB4,0x44,0xCE,0x79,0xB3,0xA3, + + 0x4F,0x57,0xB3,0x36,0x17,0x38,0x4D,0x62,0x9C,0xF8,0x4C,0x07,0xF7,0xF8,0xCE,0x45, + + 0x86,0xBB,0x3E,0x27,0x13,0xBC,0x2B,0xC9,0x6D,0xFB,0xDF,0xF5,0x51,0x7B,0x59,0x0F, + + 0x56,0x18,0x87,0x2E,0x10,0x3A,0xCB,0x81,0x63,0xD1,0x8F,0xDB,0x18,0x13,0x51,0x36, + + 0xA5,0xE5,0x82,0x4C,0x3E,0x7A,0xD6,0x89,0xF8,0xD3,0xB4,0xBD,0x2B,0x50,0xDE,0x58, + + 0x6D,0xCD,0x3A,0xFE,0xC6,0x7B,0x60,0x8D,0x0A,0x93,0x08,0x38,0x51,0xF7,0x61,0x2C, + + 0x5D,0xBC,0x93,0x57,0x19,0xE5,0x13,0x4B,0xCC,0xD7,0x8E,0x5D,0x2E,0xDB,0xDF,0x86, + + 0x87,0x2F,0x1F,0xB4,0xBF,0x7A,0x09,0x8C,0x5A,0x16,0xA5,0x5F,0x9A,0xDC,0xF2,0xB7, + + 0x89,0x5E,0xCC,0xCD,0x99,0x7D,0xF1,0xA8,0x2E,0xF7,0xED,0x0E,0x5E,0xD3,0x8E,0x19, + + 0xF5,0xBD,0xF6,0x8C,0x3F,0x32,0xA1,0xD8,0x1F,0xFC,0xA0,0xFB,0xC6,0x72,0xD7,0xDB, + + 0x56,0xFF,0xFF,0x1D,0x4D,0x31,0xC1,0xF4,0x81,0x4F,0x77,0x9F,0x98,0xD2,0x04,0xDB, + + 0xB3,0x94,0x5F,0xBF,0xCC,0x3F,0x05,0x8D,0x97,0xF0,0x4F,0x9B,0x04,0x6F,0x4A,0x60, + + 0x25,0x33,0x1B,0xE4,0xB8,0x5D,0x4B,0x05,0xE5,0x61,0x59,0x02,0xF5,0x3F,0x70,0xA7, + + 0x66,0x50,0x9F,0x2E,0xE5,0xD0,0x6B,0xC8,0xCA,0x7C,0xA9,0xB2,0x28,0x3B,0xE1,0x27, + + 0xF1,0x8F,0xD9,0x83,0xBC,0x3C,0xE5,0xD8,0x2D,0x81,0x05,0x45,0x2B,0x97,0x3C,0x97, + + 0xAD,0x97,0x69,0xB6,0x31,0xE1,0xDE,0x49,0x13,0xCB,0x29,0x45,0x3E,0x02,0xA0,0x63, + + 0x98,0x5B,0x76,0xA4,0xBA,0x09,0x48,0x91,0x2A,0xA1,0x50,0x04,0x72,0x19,0xF8,0x0E, + + 0x01,0xC4,0xF2,0x4A,0x36,0xE5,0x1E,0x4A,0xAE,0xB4,0x2B,0x85,0xDB,0x68,0xD5,0x21, + + 0x79,0xC4,0xF0,0xA5,0x8A,0xDB,0x49,0x90,0xF6,0xAA,0xE6,0x94,0x52,0x6B,0xED,0xC1, + + 0x83,0x8F,0xE5,0x41,0x5F,0x96,0x63,0x71,0x74,0x6A,0x1D,0x8D,0xF3,0x9C,0x1A,0xEA, + + 0x78,0x34,0xB6,0xD4,0xE9,0xA7,0x35,0x39,0x34,0xDB,0xE8,0x5F,0x34,0x09,0xEA,0xA3, + + 0xFB,0xE5,0xB4,0x2F,0x71,0xB6,0x09,0x9A,0xB1,0x58,0xF0,0x23,0x7C,0x58,0x1E,0x50, + + 0x70,0x1B,0x17,0x70,0x3F,0x21,0x86,0x17,0x34,0xE9,0xCA,0x49,0x37,0xFB,0x94,0x88, + + 0xA7,0x56,0x13,0x6F,0x95,0xA0,0x1B,0x36,0x05,0x5A,0xFD,0x17,0x34,0xFA,0xF1,0xCE, + + 0x2A,0x84,0x78,0x5D,0x2A,0x45,0xE4,0x1A,0xCE,0xDA,0x72,0x96,0xE2,0x57,0x54,0x6F, + + 0x09,0xAC,0x12,0x56,0xF6,0x3C,0xEF,0x69,0x7F,0x5C,0x05,0x0C,0xF8,0xFD,0xA3,0x6F, + + 0x67,0x71,0xBA,0xC1,0x77,0xDF,0x3B,0x7F,0x06,0x2F,0xB3,0x92,0xDE,0xAF,0x50,0x25, + + 0x2C,0xEA,0x13,0x7B,0x3C,0xA9,0x45,0x4E,0xED,0x22,0x44,0x99,0xFB,0xE0,0xB3,0x8B, + + 0x9E,0x60,0xA2,0x14,0x3C,0xB8,0x6C,0xA6,0x4C,0x16,0xA2,0x93,0x72,0xB1,0x74,0x97, + + 0xCC,0x92,0xE4,0x96,0xD4,0x1E,0xBE,0x80,0x05,0x24,0xA5,0xC5,0x45,0x7B,0xD7,0xF0, + + 0x8E,0x1D,0xF1,0xB8,0xD8,0xF0,0x0B,0x96,0x8F,0xDD,0xE4,0xD5,0x57,0xDA,0x57,0xF3, + + 0xC8,0xFD,0xBC,0x13,0x9D,0xAC,0x43,0xB5,0x04,0x50,0xC5,0xD7,0xCE,0x06,0xA9,0xEF, + + 0x20,0xB5,0xCD,0xBC,0xA7,0xA4,0xD4,0x90,0x04,0xA8,0x4C,0xB9,0xD5,0x91,0x36,0xA3, + + 0x4F,0x74,0xB8,0x25,0xB3,0x38,0xCF,0xC7,0x9B,0xC4,0xF8,0x51,0x8A,0xEE,0x44,0xB0, + + 0xCA,0x99,0x75,0x37,0x73,0x17,0x0B,0xE4,0x47,0x69,0x4A,0x05,0xD2,0xB4,0x14,0xA0, + + 0x97,0xD8,0xBF,0x80,0x5C,0xD3,0x26,0xF3,0xE1,0xF7,0x7D,0xD3,0x08,0x2A,0x18,0x2B, + + 0xEE,0x99,0x9E,0x70,0x90,0xB5,0x9F,0x95,0xE8,0x77,0x20,0x2A,0x35,0x4C,0x66,0x42, + + 0xC4,0xFA,0x88,0xB7,0xB1,0xFB,0xA8,0x4B,0xCE,0x19,0x73,0x93,0x7B,0xD8,0x19,0x2B, + + 0x6E,0xBA,0x58,0x9C,0x88,0xFE,0x22,0xB4,0xD8,0x77,0x1A,0xD0,0x61,0x71,0x4D,0xBB, + + 0x44,0xD8,0x3F,0xB5,0xBB,0xFA,0x0D,0x8B,0xF5,0x74,0x9E,0x4F,0x02,0xF4,0x60,0xFF, + + 0xC7,0x7D,0xDE,0x31,0x1A,0x69,0x82,0x94,0xAF,0xC3,0x8E,0xC9,0x83,0xF3,0xEE,0xFB, + + 0x8D,0xDC,0x1D,0xE2,0xD4,0xF9,0x00,0xCF,0x92,0x51,0xDA,0xC8,0x5D,0xED,0xCB,0x59, + + 0xF2,0x94,0x37,0xDE,0x98,0x35,0x3D,0x09,0x7F,0xC7,0x67,0xCF,0xBE,0xBE,0x55,0x28, + + 0x97,0x30,0xD5,0x6F,0x76,0xFE,0x35,0xE6,0xFE,0x70,0x3D,0x5F,0xB7,0x9D,0x60,0x5F, + + 0xA3,0x0D,0xD4,0x43,0xDA,0x43,0x28,0x70,0x48,0x4F,0x6B,0xD4,0x17,0x91,0x28,0x11, + + 0x8C,0x09,0xC0,0x44,0x33,0x62,0x12,0x32,0xE2,0x5A,0xC2,0x06,0x2D,0x7E,0x73,0x04, + + 0x8C,0x6C,0xBF,0xA5,0x5A,0x61,0x71,0x65,0x40,0x4F,0xE8,0x43,0xF1,0xCB,0x89,0x12, + + 0x65,0x4F,0x0B,0x6E,0x1C,0xA5,0x9E,0x57,0x23,0x63,0x21,0xCE,0x5E,0xB5,0x38,0x44, + + 0xE2,0xA0,0xFA,0xBB,0x71,0xF2,0x30,0x62,0xC9,0x49,0x7F,0x0B,0x8F,0xB0,0x72,0xBF, + + 0x30,0x01,0xF0,0xB4,0x03,0xAE,0xBF,0x03,0x7B,0xC3,0x7B,0xE2,0x8F,0x83,0x39,0x68, + + 0x69,0x57,0x56,0xC1,0xBA,0xA8,0xAE,0xA6,0x2B,0x17,0x63,0x7A,0x3E,0x27,0xF1,0xAE, + + 0x3E,0x6B,0x25,0x68,0x95,0x66,0x59,0x31,0x8B,0x5C,0x87,0xE6,0xD7,0xCC,0x03,0x4E, + + 0x40,0x13,0x02,0xCC,0x00,0x29,0x90,0x5A,0xB3,0xB7,0x9A,0xFC,0xA1,0xBE,0x2E,0x2E, + + 0x2B,0x0B,0xE8,0x11,0x1A,0x38,0xDE,0x1C,0xA0,0x90,0xA2,0xC6,0xA0,0x07,0x97,0x6F, + + 0xA9,0x4A,0x53,0x31,0x61,0x44,0xD3,0xBC,0x28,0x06,0xEC,0xAF,0x49,0x3F,0x8C,0x9B, + + 0x54,0x04,0x4B,0x58,0xD7,0x23,0x43,0x3C,0xCF,0xE1,0xF8,0x7D,0x94,0x96,0xA5,0x88, + + 0x73,0x87,0x9E,0x3E,0xB9,0xDC,0x18,0x98,0x42,0x03,0xB0,0x68,0x7E,0xB8,0x52,0x3D, + + 0xD6,0x70,0x8C,0xAA,0x1D,0x56,0xA1,0x3F,0x81,0x77,0xBD,0x8D,0x89,0x2D,0xE6,0x64, + + 0x39,0x43,0x34,0x50,0x27,0x6C,0xC3,0x81,0x4A,0x03,0x30,0x72,0x04,0xC1,0xE4,0xDD, + + 0xC8,0x93,0x2E,0xD9,0xB1,0x9A,0x3B,0x2F,0x4C,0x40,0x4B,0x8E,0x3B,0x23,0x64,0x20, + + 0x7C,0x1F,0xCC,0x05,0xB0,0x90,0x44,0x87,0xC1,0xFF,0xCD,0xAA,0x76,0xC2,0x6C,0xD4, + + 0x66,0x9A,0x0D,0xFB,0x49,0x8E,0x98,0xEE,0xEC,0x33,0xDB,0x0D,0xD0,0xF1,0xED,0x85, + + 0x25,0x92,0x45,0xC0,0xFE,0x3A,0x41,0x9F,0xC2,0x49,0x3F,0xE5,0xA0,0x30,0x89,0x73, + + 0x23,0x5B,0xAD,0x84,0x0C,0x82,0xB6,0x34,0x72,0x6C,0xE5,0x37,0x68,0xD6,0x0B,0xBF, + + 0xAD,0xB2,0xA3,0xC0,0x59,0xA2,0x0C,0xF5,0x51,0x63,0x44,0xFB,0xF6,0xA0,0x37,0xE1, + + 0x13,0xBA,0x7A,0x25,0xDB,0x75,0x9F,0x82,0x88,0xCF,0x18,0x71,0x30,0x15,0x8E,0x01, + + 0xB4,0x9D,0x45,0xDB,0x56,0xC2,0xAD,0xE9,0x45,0x1A,0x71,0x87,0x4D,0x14,0xED,0x21, + + 0x5D,0xB4,0x93,0xE7,0xB7,0x7B,0x80,0xEC,0x18,0xAC,0xBD,0xB1,0xEC,0x78,0xCF,0x6A, + + 0xAA,0x50,0xF9,0x8F,0x92,0xC4,0x68,0x0D,0xBC,0x1B,0xCC,0xA4,0xDB,0x3A,0xBA,0x68, + + 0xD6,0x16,0xA7,0xB2,0x98,0x32,0xCA,0x4B,0x47,0xF4,0xFC,0x2C,0x78,0xEB,0x1F,0x79, + + 0xD7,0x15,0xB8,0xD2,0x9C,0x3C,0xBB,0xDA,0xC2,0xFC,0xD0,0x14,0x59,0x14,0x6F,0xDD, + + 0xA6,0x16,0x0F,0xBE,0x06,0x3D,0x4F,0x2A,0xCF,0xF4,0x5F,0x24,0x83,0xF6,0xD0,0x3B, + + 0xA6,0x11,0xA7,0xC2,0xEA,0x48,0xC5,0x14,0xD6,0x1E,0x6B,0x3C,0x36,0x7A,0x70,0xF0, + + 0x08,0x5D,0x69,0x4B,0xDA,0x92,0x46,0xCC,0x54,0xAD,0x56,0x3D,0x18,0x1D,0x52,0x22, + + 0xE2,0x0F,0xE0,0xE9,0x6E,0xF8,0x19,0xD7,0x03,0x64,0x87,0x75,0x59,0x78,0x49,0xEC, + + 0xF7,0x1B,0xA9,0x2C,0x79,0x7F,0x65,0x02,0x94,0xF8,0xA7,0xE6,0x7F,0xEB,0x18,0xB0, + + 0x08,0xE0,0x70,0x82,0x19,0xD0,0xBA,0xA6,0x4F,0x7E,0x70,0xBA,0x17,0xA2,0x60,0xEA, + + 0x80,0x83,0x7C,0x85,0xB4,0x0E,0x07,0x79,0xF8,0xA2,0xDA,0x33,0x54,0x93,0xCD,0x01, + + 0x8C,0xEE,0x5A,0x68,0x7F,0xE6,0x99,0x33,0xE0,0xFE,0xF6,0x00,0x59,0x7F,0x70,0x81, + + 0x60,0x8A,0x0D,0x68,0xFD,0xE7,0xD9,0x97,0x1C,0x3E,0xE0,0x3D,0xD3,0x51,0x5A,0xA9, + + 0xFE,0x7E,0x20,0x86,0x7E,0xA2,0xD3,0xAB,0x31,0x18,0x91,0x7C,0x86,0x50,0x20,0xFE, + + 0xFE,0x21,0x40,0xB0,0x33,0x01,0x42,0x89,0x41,0x6F,0x10,0xFC,0x73,0x31,0x5E,0x84, + + 0x4C,0x8F,0x4B,0x81,0x37,0xBD,0xAE,0xB7,0xF9,0x36,0xD6,0x96,0x4A,0xF4,0x77,0xB1, + + 0x67,0x78,0xBF,0xC1,0x5F,0x64,0xCA,0x9B,0x42,0x8A,0x4B,0x68,0x3B,0x4C,0x3F,0xAA, + + 0x10,0x8A,0x5D,0x70,0x76,0xCC,0x1D,0x51,0x75,0xC3,0x18,0xEE,0x1E,0x15,0x92,0x98, + + 0x2F,0xB9,0x22,0x6C,0x90,0x0F,0xB2,0x65,0xB4,0x8B,0xFD,0x19,0xD0,0x74,0xCB,0x13, + + 0xBF,0x68,0x63,0x4B,0x21,0xE8,0xB3,0x08,0xC3,0x88,0x73,0xB3,0xDD,0xA8,0x53,0xF3, + + 0x97,0xC6,0xFF,0x61,0x57,0xA8,0x3D,0x26,0x6C,0x64,0xD9,0x3A,0xDC,0x0B,0xD1,0xA8, + + 0xE7,0x36,0x04,0x3C,0xF5,0x0A,0x8D,0x1B,0x55,0xC5,0xC4,0x6B,0x35,0x69,0x14,0x72, + + 0xE6,0xE9,0x4A,0x60,0x93,0x79,0x37,0x9A,0x1B,0x60,0x18,0x8D,0x91,0x46,0x3D,0x4C, + + 0x8E,0x7F,0xBD,0xDD,0x9A,0x5B,0xF3,0x2D,0xD4,0x63,0xF7,0x4B,0x3F,0x41,0xB8,0xA8, + + 0xE3,0x7A,0x08,0x40,0x41,0x04,0x30,0x9B,0xDB,0x32,0x9D,0x77,0x34,0x69,0x2E,0x83, + + 0x87,0x96,0x89,0xB5,0x95,0x30,0xE4,0xD1,0x4A,0x05,0xCC,0x57,0x07,0x10,0x6C,0x70, + + 0xA7,0x99,0xAD,0x56,0x31,0x94,0x90,0x37,0xB0,0xB3,0x2B,0x5C,0x80,0xF5,0x29,0x84, + + 0x05,0x1A,0xDD,0xE5,0x3B,0x34,0xE5,0x4B,0xE0,0x0E,0x95,0x23,0x97,0x77,0xE9,0xF1, + + 0xE4,0xD3,0x50,0xE5,0x16,0x4C,0x54,0x58,0x0E,0x70,0xBB,0x47,0x15,0x02,0x5C,0xDB, + + 0xA6,0x98,0x9A,0x58,0xDD,0x42,0xAF,0xCD,0x60,0x7E,0x50,0x84,0x89,0x78,0x93,0xB9, + + 0xA8,0x63,0x8F,0x88,0xC6,0x69,0xBC,0x4A,0x70,0x97,0xF8,0x74,0x72,0x6F,0x05,0xC1, + + 0x25,0x9B,0xBB,0x5C,0xA6,0x19,0xC6,0x67,0x8B,0xF8,0x31,0x62,0xF8,0x7C,0x65,0xC2, + + 0x94,0x1D,0x42,0xAC,0x6A,0xF6,0xAC,0xA5,0xE1,0x0F,0x85,0x88,0x36,0x95,0x5E,0xE8, + + 0x6D,0x18,0xFF,0x38,0x99,0x67,0x95,0x1A,0x6A,0xB0,0xCF,0xDC,0xDB,0xBA,0x56,0xF8, + + 0x6C,0x91,0x2E,0xBD,0x82,0x32,0x40,0xBD,0xCC,0x76,0x39,0x9D,0x5E,0xB8,0x5F,0xE9, + + 0xED,0x9B,0x18,0xC8,0x6A,0xB2,0xB2,0x2F,0xE9,0xA7,0xF0,0x16,0x1D,0xF5,0x57,0x19, + + 0xA8,0xBF,0x0A,0xA2,0x0E,0xF6,0x6F,0x9C,0x4C,0x74,0xE6,0xBD,0x58,0x50,0x3C,0xCB, + + 0x89,0xA1,0x45,0x58,0xE2,0x5A,0xEB,0x6E,0x4A,0x41,0xBC,0xEB,0xD2,0xF3,0x54,0x6B, + + 0x17,0x32,0x8C,0xDA,0x1B,0x12,0xAD,0x5B,0x4F,0x4F,0xC6,0x2E,0x33,0xFB,0x71,0xE7, + + 0x45,0xCF,0xDD,0x3C,0x74,0x15,0xB7,0x2A,0x6E,0x9C,0xD0,0xE9,0x2E,0x9A,0x7A,0xD6, + + 0x2F,0xCB,0x8C,0x81,0x0A,0x63,0xFB,0x7F,0xBE,0x9E,0x77,0x9B,0x5C,0xBE,0x3E,0x38, + + 0x68,0xD1,0x7F,0xFC,0x10,0x9B,0x4A,0x21,0xE3,0x46,0xF6,0x1C,0xB9,0x11,0x76,0x16, + + 0xE0,0x82,0x24,0x67,0x7C,0x57,0x41,0x10,0xE4,0xBE,0xD9,0x52,0x30,0x65,0x17,0x63, + + 0xE0,0x9B,0x01,0x81,0x94,0x70,0x41,0x3D,0x63,0x03,0x8B,0x27,0x3B,0x6D,0x27,0xE2, + + 0x0D,0x42,0xF6,0x66,0xF4,0x75,0x0F,0x40,0x83,0xB7,0xFF,0xD7,0xD0,0x33,0x60,0xB3, + + 0x86,0x89,0xF8,0xBE,0xBE,0x29,0xA9,0x68,0xE7,0x3B,0xCE,0x49,0x71,0x7C,0x1C,0xBD, + + 0x0B,0x5E,0xDE,0x78,0xAC,0x37,0x10,0xE0,0x70,0x48,0x18,0x50,0xC8,0x6D,0x13,0x6A, + + 0x84,0x55,0xBE,0xAD,0xCB,0x6B,0xFD,0xFA,0x77,0xD0,0xE6,0x59,0x2E,0xD7,0x67,0xB8, + + 0x57,0x45,0x71,0xE4,0xAB,0x78,0xE0,0x97,0xD3,0x3A,0x0E,0x4E,0xA7,0x92,0x5B,0x8F, + + 0xED,0x89,0xF9,0x4B,0xE1,0xDE,0x6A,0x3A,0x6C,0x53,0xAC,0x01,0xFF,0x78,0x58,0x4B, + + 0xE2,0x6D,0xB1,0x6C,0x99,0x3F,0x0E,0x08,0x7A,0x92,0x0C,0x14,0x11,0x88,0x73,0xFA, + + 0x0C,0x87,0x38,0x7D,0x18,0x35,0x7C,0x4F,0xE9,0x0A,0xAD,0x15,0x7F,0xCE,0x9B,0x6A, + + 0xF1,0xAA,0xC3,0x09,0x78,0x30,0xA3,0xC7,0xD9,0x06,0xBB,0xBA,0x54,0xC6,0x13,0x91, + + 0x0C,0x4C,0x2E,0x37,0x84,0xB1,0xAA,0x80,0x29,0xD1,0xC5,0xE8,0x36,0x19,0x2D,0x26, + + 0xC1,0x02,0x07,0x61,0x1D,0x0C,0x03,0xB2,0xB6,0x02,0x1A,0x5D,0xCB,0xE6,0x27,0xB2, + + 0x05,0xF3,0x22,0x0D,0xC6,0xA5,0xAB,0x61,0x33,0x01,0x89,0xA0,0xB2,0xBF,0x43,0x50, + + 0x8D,0x1C,0xEA,0xAD,0x64,0x20,0x7B,0x64,0x46,0x54,0x24,0x9F,0x27,0xDE,0x56,0xD6, + + 0xCB,0x74,0x7F,0xFB,0x50,0x32,0x84,0x58,0x60,0xEB,0xAA,0xFD,0x18,0x7D,0x2E,0x66, + + 0xC8,0xA0,0x77,0xAF,0x58,0xAA,0xF0,0xC3,0x0C,0xA7,0xA6,0x04,0xC9,0x33,0x95,0x70, + + 0x03,0xE2,0x7A,0xFB,0xD2,0x45,0x17,0x25,0xE4,0x00,0x87,0x85,0x1B,0x36,0x53,0x73, + + 0xFD,0x97,0x8D,0x78,0x89,0x98,0xA6,0xC1,0x61,0x4C,0xCC,0x74,0x91,0x7B,0x3A,0xF5, + + 0xC9,0x05,0x04,0x64,0x32,0x94,0xFB,0x06,0x72,0xA9,0x44,0x0D,0x11,0xA5,0xB4,0x38, + + 0xB0,0x5A,0xAE,0xC9,0x30,0x75,0xCA,0x74,0x4B,0xD1,0xFD,0x96,0x31,0x7A,0x1C,0x31, + + 0x05,0x06,0x53,0xB6,0xDE,0x5A,0xAD,0xC5,0x03,0xF9,0xC3,0xC8,0xF4,0x57,0x14,0xB3, + + 0x04,0x07,0xC1,0x9E,0x97,0xC3,0x65,0x36,0x21,0x77,0xDB,0xC9,0x73,0x52,0x96,0x7B, + + 0xA4,0x15,0x8C,0xA1,0x3E,0x80,0x28,0xDC,0x09,0x5C,0xE8,0xAA,0x99,0xFB,0x30,0xC1, + + 0x41,0x14,0x1D,0x6F,0x4D,0xB4,0xFF,0xDE,0xDE,0x49,0xA0,0xE4,0x7F,0x6A,0xFC,0xAE, + + 0x09,0xE5,0x9D,0xFE,0xD1,0x9B,0x76,0x69,0xE2,0x41,0xA2,0x29,0xCE,0x59,0x9F,0x68, + + 0x0A,0x5B,0xD9,0xA4,0x52,0x8A,0xA7,0x56,0x95,0x06,0x9D,0xDF,0x0A,0x1E,0xBE,0x37, + + 0x2C,0x54,0x53,0xD7,0x4A,0xB1,0x5E,0x09,0x96,0xBD,0xD0,0xD5,0x53,0xB6,0xC9,0xBA, + + 0xD8,0x78,0x8C,0x23,0xD2,0x8C,0x4F,0x7C,0x43,0x3A,0xDA,0xBB,0xFA,0x73,0xE8,0xB6, + + 0xAC,0xBE,0xB9,0xF4,0x53,0x04,0x97,0xB8,0x32,0xAA,0x47,0x2A,0xF8,0x8B,0x77,0x22, + + 0x24,0xB9,0x63,0x42,0xB8,0xB4,0x67,0x0A,0xD3,0x3A,0x7C,0x4C,0x27,0xBC,0x18,0x33, + + 0xA5,0x01,0x4B,0xE0,0x04,0xEF,0xCF,0xCA,0xDA,0x8D,0x7D,0xB5,0x69,0x6B,0x7A,0x41, + + 0xEE,0xE5,0xD6,0x2A,0x7E,0xFB,0x94,0x42,0xC5,0x47,0xD9,0xF6,0x1D,0xFA,0x71,0xF0, + + 0x00,0x0F,0x31,0x75,0x7F,0x13,0xA6,0xAB,0x61,0x11,0x91,0xCD,0xBD,0xB8,0xB9,0xE3, + + 0x22,0x22,0x89,0xE4,0x8A,0x0C,0x19,0xF3,0xC3,0xD8,0x4D,0x44,0xE5,0xAC,0x2F,0x3C, + + 0xDA,0x8B,0x20,0x67,0xD6,0xA9,0x4C,0x04,0x9C,0xD6,0x30,0xB2,0x44,0x49,0x63,0x21, + + 0x56,0xE9,0x44,0xD2,0x3F,0x21,0x43,0x94,0x57,0x78,0x7A,0x05,0x23,0x4C,0xA1,0x47, + + 0x1F,0x26,0xA3,0xA5,0xCA,0xA2,0xC9,0xF9,0xC5,0x66,0xE6,0x16,0xA6,0xEF,0x0B,0x4E, + + 0x86,0x03,0xD1,0x90,0x55,0x87,0x81,0x6E,0x39,0x17,0xEA,0x97,0xD9,0x6C,0xB7,0xF9, + + 0x88,0x05,0x34,0x7D,0x70,0xC4,0x9E,0x4C,0xB7,0xD3,0x22,0x5C,0xB7,0x70,0xBA,0xEA, + + 0xFC,0x28,0x94,0x22,0x75,0xA4,0x82,0xFD,0x8F,0x69,0x3B,0x2A,0x3E,0xE1,0x71,0x58, + + 0x67,0xEE,0xC5,0x6E,0x9F,0x63,0xD8,0x4D,0xB4,0x85,0x95,0x77,0x85,0xE9,0xBC,0xE8, + + 0x09,0x06,0x54,0x6C,0xE5,0xC8,0x33,0x4F,0x48,0x3A,0xAD,0x66,0x36,0x53,0xF2,0xB9, + + 0x82,0x81,0xEA,0x5F,0xE2,0x4D,0x46,0xE8,0xCE,0xC6,0xF6,0x92,0x5E,0xF9,0xAA,0x1F, + + 0x82,0xCC,0xFE,0x4C,0xBE,0x2A,0x23,0x8A,0xEA,0x32,0x56,0xDB,0x8A,0x8E,0x18,0x6C, + + 0x2F,0x31,0x23,0xC2,0xDF,0xEC,0x4B,0x4B,0x2F,0x7E,0x66,0x67,0x5E,0x4E,0x51,0xB3, + + 0x40,0xC0,0x6B,0x4E,0x63,0x4E,0x7A,0x1D,0xFC,0xC2,0x50,0xB5,0x64,0xAD,0x1A,0xDA, + + 0xC4,0x3F,0x48,0xF5,0x00,0x16,0xE7,0xE5,0x05,0xD4,0x8C,0xE1,0xAA,0x6D,0xBC,0x61, + + 0xA1,0x1C,0x8C,0x7C,0xDC,0x80,0x65,0xF5,0xC0,0x2E,0xB7,0x32,0x47,0x71,0x85,0x90, + + 0x07,0xF6,0x68,0xF4,0xA3,0x3B,0x57,0xA1,0xE7,0x90,0x56,0x67,0xE0,0x5F,0x7F,0xD9, + + 0x4E,0xF7,0xB7,0x95,0x27,0xBB,0x64,0x6C,0x40,0x22,0x06,0x55,0x59,0x0E,0x75,0xB8, + + 0xEC,0x75,0xBE,0x0B,0x5E,0x05,0x4C,0x11,0x52,0x61,0xD3,0xE0,0xA6,0x90,0x52,0xE7, + + 0x80,0x85,0xF2,0xFB,0x14,0x3C,0xA9,0xAF,0x86,0x2A,0x2A,0x71,0x8B,0xB1,0x6D,0x56, + + 0x95,0x1D,0x25,0xE6,0x26,0xBB,0x64,0xDC,0x8A,0x94,0x35,0x52,0x10,0xB4,0x53,0xFB, + + 0x00,0x8C,0xD3,0xEE,0xF7,0x18,0xC2,0xB4,0x2D,0xED,0x4E,0xF0,0xF1,0x14,0xB6,0x62, + + 0x7C,0xD5,0x23,0x9D,0x04,0xE2,0xCE,0xCC,0xE3,0x5E,0xCE,0xDD,0x25,0x59,0x56,0xBD, + + 0xD0,0x96,0x5A,0xED,0x51,0xF6,0xA9,0x9E,0x5E,0x02,0x1E,0xCC,0x1F,0xCC,0xD8,0x83, + + 0x09,0x66,0x81,0xA3,0xA3,0xA1,0xF4,0xEB,0x94,0x96,0x8F,0x9F,0xDD,0x55,0xBF,0x19, + + 0x8F,0x8B,0x43,0x77,0xD2,0xF6,0x87,0x45,0xFD,0x96,0x7F,0x17,0xF6,0x7A,0x88,0xAC, + + 0x3E,0xD3,0x75,0xBD,0x4A,0xD0,0x3E,0x5F,0x0D,0xA6,0xF8,0x1F,0xE2,0xDE,0x2F,0xA5, + + 0x88,0x99,0xB4,0x13,0x57,0x6C,0x46,0x8B,0x03,0xD6,0x81,0x7A,0x11,0x8C,0x44,0xFE, + + 0x76,0x8F,0x81,0x06,0xBD,0xA4,0xE0,0x6F,0xC6,0xCA,0x1F,0x65,0xDC,0x28,0x3F,0x33, + + 0xCC,0xD2,0x2F,0xFE,0x2F,0xB2,0x6A,0x7F,0xC7,0xB8,0xA1,0xF0,0xB1,0xB1,0x61,0xA0, + + 0xD6,0xBF,0x97,0x80,0x38,0x56,0x6D,0xD0,0x96,0x71,0x6F,0xA0,0x2E,0x6D,0xA8,0x2E, + + 0x8D,0x43,0x0E,0x4A,0x9C,0x43,0x00,0xA9,0x47,0x00,0xB8,0x94,0x57,0x72,0xC1,0xB4, + + 0x66,0xF7,0x7A,0x22,0x31,0x39,0xD1,0x00,0x03,0x4F,0x51,0xAC,0x38,0x64,0xDF,0x96, + + 0x55,0xC6,0x22,0x90,0x02,0x1C,0x82,0x53,0xE2,0xA1,0xC5,0x12,0x38,0x12,0xD0,0x13, + + 0xA3,0x9F,0x05,0x22,0x90,0x88,0x71,0x02,0xBD,0xCB,0x81,0xE4,0xF3,0x62,0x9B,0xAE, + + 0x05,0x44,0x70,0xAB,0x15,0x2F,0x83,0x70,0xD2,0xB8,0xBC,0xF0,0x61,0x27,0x41,0x7C, + + 0x7D,0x9B,0xB9,0xA7,0xA1,0x04,0x49,0xF1,0xA1,0x66,0x81,0x6C,0x71,0x7D,0x8A,0xD5, + + 0x88,0x78,0x2D,0xBD,0x8F,0xDA,0x70,0x79,0x43,0xE7,0xE1,0xF7,0xF1,0x97,0xA5,0x3F, + + 0xE3,0xAD,0xFF,0xFC,0x1F,0x99,0x3D,0x43,0x91,0xBD,0xEA,0x0B,0xB1,0xF9,0xAF,0x1D, + + 0x8E,0x1F,0xF1,0xEC,0xDF,0x98,0xB6,0x47,0x83,0x18,0x5A,0xD1,0x9D,0x63,0xC3,0xBC, + + 0xD9,0xA1,0x43,0x29,0xB0,0x27,0x85,0xAD,0xB2,0x9D,0xEB,0xA9,0x8D,0xAC,0x5B,0x87, + + 0x72,0xAF,0xF5,0x1B,0x78,0xA8,0xA0,0xAA,0xF1,0x41,0x1B,0x7B,0xE1,0x6D,0x6D,0x37, + + 0xD3,0x90,0x3A,0x68,0xE5,0xA1,0xFE,0xCD,0x9F,0x2F,0xAA,0xEE,0xDA,0xD5,0xBE,0x16, + + 0xFE,0x51,0x14,0x1B,0xBE,0xDB,0xCA,0x91,0x03,0x5C,0x36,0xEE,0x57,0x65,0xF8,0x13, + + 0x8C,0x2E,0xA1,0x4D,0x6D,0x35,0xF8,0xA3,0x71,0x0C,0xEB,0xBD,0x86,0x91,0xE6,0x26, + + 0x16,0x9A,0x70,0x2D,0x1B,0x80,0x7B,0xDF,0x83,0xAE,0x5B,0x80,0xD7,0x9F,0x7A,0x29, + + 0xC9,0x03,0x3D,0x43,0xEE,0x38,0x16,0x42,0x89,0xB1,0x39,0xEA,0x8D,0x2C,0x32,0x25, + + 0x4B,0x86,0x1C,0x8B,0x0D,0x73,0x09,0x52,0xCD,0xFC,0x5C,0x90,0x22,0xAD,0x53,0x3A, + + 0x4B,0x01,0x05,0x42,0x94,0x5E,0xD5,0x80,0x02,0xFF,0x2C,0x21,0xD8,0x27,0x73,0x24, + + 0x5D,0x40,0xC5,0x12,0x82,0x43,0x8C,0x53,0xA9,0xB2,0x31,0x30,0x24,0x11,0xFC,0xA0, + + 0x3D,0x9F,0x68,0xB7,0x2D,0xC2,0xE0,0x82,0x91,0xDF,0x2B,0x0C,0x64,0x39,0x58,0xDA, + + 0x82,0x9A,0x37,0xF0,0xBE,0x98,0x66,0x40,0xA6,0xFA,0xA4,0x70,0x41,0x87,0x88,0xF0, + + 0xCE,0x54,0x3A,0xB6,0xA5,0xE0,0xC3,0xD8,0x09,0x12,0x72,0x07,0x32,0xDB,0x15,0x11, + + 0x48,0x06,0x00,0x46,0xA0,0xBC,0xF9,0x8B,0x40,0xA3,0xE5,0x0F,0x5F,0x7A,0xB5,0x21, + + 0xD0,0x0B,0x39,0x6A,0xF0,0x49,0x32,0xC0,0x4C,0xAC,0xFF,0x47,0x87,0xF3,0xB9,0xBC, + + 0x16,0xE9,0xD7,0xB8,0x9C,0x98,0x40,0x5A,0x6D,0xA4,0xE9,0xDE,0x0A,0x79,0x7C,0x4B, + + 0x2B,0x5C,0x94,0x2D,0xE0,0x38,0x00,0xC6,0xCB,0xDB,0x31,0x80,0xFE,0x3B,0x50,0x66, + + 0xD6,0x61,0x1A,0x6E,0xC9,0x38,0xDF,0x98,0x11,0x19,0x08,0x42,0x08,0xA8,0x78,0xE0, + + 0xA7,0xBA,0xE6,0x26,0x53,0x66,0xF6,0xF6,0xE6,0x39,0xA9,0xCB,0xDB,0xA3,0xD8,0xA9, + + 0x1B,0x14,0xAC,0xDC,0xC8,0x51,0x25,0x08,0xD2,0xEC,0x0E,0xAC,0x7D,0xFD,0x0A,0x09, + + 0xE7,0xB3,0xA6,0xE9,0x41,0xB3,0xE3,0x8B,0x82,0x53,0x63,0x8F,0x05,0x78,0x18,0x29, + + 0x37,0xBE,0x70,0x46,0x4A,0xB6,0x21,0xFF,0x0A,0xDC,0xE8,0xF9,0xB0,0xD6,0xD7,0xAE, + + 0xCC,0x57,0x8D,0xF5,0x98,0xAD,0xB2,0x3C,0x7C,0x34,0x90,0xDF,0xF5,0xE1,0x0E,0xA8, + + 0x6B,0xC3,0x57,0x7D,0x9A,0x57,0x4D,0x2F,0x82,0x6C,0x78,0xE2,0x10,0x1A,0x74,0x10, + + 0x7E,0x91,0x58,0x7D,0xF4,0xC2,0xA0,0x28,0xF4,0xF2,0x8F,0x2B,0xAB,0xA2,0xFF,0x3E, + + 0xEE,0xF7,0xA1,0x1E,0x20,0x22,0x28,0xC1,0xE4,0x82,0x39,0xB3,0x92,0xA2,0x32,0x79, + + 0x6C,0x51,0x98,0xCE,0xB3,0x2D,0x5C,0xD2,0x62,0x1F,0x77,0xE4,0x74,0x96,0x6C,0xF5, + + 0xFA,0xF4,0x28,0x46,0xAD,0xBE,0xD2,0x47,0x24,0xC1,0x40,0x66,0xF0,0xFE,0x33,0x7C, + + 0xEC,0xC4,0xC1,0xD4,0x35,0xE7,0x51,0x9E,0x42,0xC0,0x4E,0x85,0xE5,0xB4,0x96,0x2D, + + 0xB1,0x58,0x53,0x31,0x64,0xB7,0x01,0x9B,0xD5,0x8A,0x99,0x01,0x20,0x68,0xE0,0xCC, + + 0x9E,0x8B,0x26,0xF0,0xED,0xC6,0x68,0xE7,0x24,0x29,0x72,0xFF,0xE7,0x33,0x3C,0xA5, + + 0xE6,0xDA,0xB8,0x1B,0xEA,0x34,0x2B,0xD8,0x2D,0x18,0xA6,0x4C,0xA6,0xA9,0xC0,0xF0, + + 0x65,0xD9,0x40,0xCF,0xC8,0x97,0xF3,0x0A,0x5C,0x67,0x9A,0xD2,0x61,0x9F,0x15,0xB2, + + 0xE7,0x5C,0x47,0x81,0x9C,0x4B,0xFB,0x1A,0x5D,0xC6,0xF5,0x01,0x40,0x56,0xF2,0x38, + + 0xE5,0x6D,0x5A,0xB5,0x0E,0xE1,0x12,0x39,0xFB,0xC3,0xEA,0x63,0x58,0xFF,0x27,0x9A, + + 0x62,0x06,0x7A,0xB6,0x78,0xE0,0x18,0x6F,0x4C,0xA5,0x82,0x6C,0x6C,0xBF,0x5D,0x7E, + + 0x03,0x28,0x18,0x47,0x3B,0x51,0x2C,0x6A,0x37,0xA2,0xD2,0x90,0x2B,0x1A,0xCE,0x6A, + + 0xE3,0x90,0x10,0x57,0x3A,0x50,0xDC,0x7D,0x1B,0xAB,0x03,0x97,0xFF,0xA2,0xFF,0xAD, + + 0x22,0x3A,0x26,0x92,0xC8,0xC1,0xA4,0x7A,0xB1,0xBC,0x4F,0x22,0x50,0x92,0x12,0xA7, + + 0xA8,0x37,0xF5,0x03,0xDC,0xC0,0x41,0x59,0x06,0xB9,0xEE,0xA9,0x1F,0xAC,0x96,0xF1, + + 0x4F,0x73,0xDB,0xAA,0x68,0x23,0xF1,0xFD,0xEA,0xCC,0x75,0x66,0x4B,0x26,0x60,0x53, + + 0x88,0x18,0x55,0x15,0x97,0x83,0x2A,0x37,0xC1,0x11,0x7D,0x96,0x67,0x2C,0x75,0x28, + + 0x83,0x9D,0xC4,0x2C,0xC3,0x3D,0x5A,0x11,0xEA,0xD9,0xCE,0x1C,0x8D,0x8F,0xFA,0x56, + + 0x03,0xAB,0x6C,0xE8,0x5B,0x40,0x07,0x02,0xD2,0x64,0x85,0x72,0x7B,0x95,0x33,0xF8, + + 0x96,0x63,0xC5,0x4D,0x92,0x0D,0x88,0xA4,0x17,0xA0,0xB5,0x0B,0x9A,0xC9,0x65,0xEB, + + 0x5F,0x76,0xFC,0x2F,0xB7,0xF7,0x03,0xF5,0x06,0x54,0x20,0xCE,0xC0,0x80,0x83,0xBB, + + 0x40,0x87,0xDE,0x66,0x26,0x15,0x0E,0x50,0x0F,0x3C,0x02,0xCC,0x4F,0x18,0xD1,0x69, + + 0x15,0x36,0x29,0x7C,0x0E,0x29,0x6C,0xF1,0xED,0x78,0x7A,0x74,0xC6,0x06,0x9F,0xEB, + + 0xE3,0x11,0xB4,0x69,0x3E,0xB9,0x20,0x58,0x68,0x57,0x1C,0xE8,0xF2,0x26,0xBE,0x68, + + 0x9D,0x16,0x17,0x61,0xAD,0xF6,0x61,0x59,0xE9,0x76,0xE5,0x29,0xC1,0xB9,0xD1,0xE2, + + 0x28,0x7D,0x66,0x42,0x0D,0xE1,0x58,0x19,0xE2,0x41,0xAB,0xE6,0x4D,0xFC,0xA4,0x52, + + 0x4C,0xE7,0xD0,0x13,0x98,0xFC,0xE9,0x05,0x8E,0x0E,0xAE,0x6A,0x9E,0xF2,0xD2,0xF4, + + 0x9E,0xDC,0xD9,0x03,0x19,0xAE,0x0F,0xF2,0x8D,0xBE,0x37,0xBB,0x47,0xF8,0x79,0xF3, + + 0xA9,0xBE,0x2F,0x77,0xC4,0xFD,0x84,0xF9,0x01,0xC4,0x4B,0x80,0x5C,0xBE,0x5A,0x80, + + 0x68,0x11,0xE9,0xEF,0xAF,0x8B,0x6E,0xB6,0x46,0xA3,0xBD,0x5B,0xC9,0x5D,0xBD,0xE3, + + 0x8D,0x0C,0x9C,0x9B,0xE6,0x44,0x3E,0x70,0x9F,0xEE,0x67,0x4E,0x33,0xAD,0x7F,0x07, + + 0x61,0x81,0xF9,0x01,0x61,0x60,0xC9,0x32,0xBE,0x94,0xCA,0x25,0xB0,0x1F,0x99,0xE2, + + 0x05,0xAE,0xB1,0xFD,0xDD,0xFF,0x7E,0xC0,0x13,0x03,0x62,0x2A,0x55,0xCC,0x20,0x42, + + 0x31,0x09,0xF8,0xBA,0xBE,0x29,0xFC,0x22,0xC1,0x06,0xFF,0x1B,0x8B,0xE9,0xB7,0xD4, + + 0x63,0x2F,0xAE,0x7D,0x37,0x58,0xBB,0x83,0x9D,0xEE,0xCD,0xB4,0x7B,0xEE,0xBE,0x43, + + 0x86,0x8B,0x6D,0xD6,0xA6,0xFB,0x87,0x6B,0x23,0xE9,0x2E,0x1A,0x5F,0xC0,0x19,0x49, + + 0xCB,0x45,0x36,0xF0,0x59,0x2A,0x3E,0x79,0x28,0xD1,0x99,0x48,0xD5,0x46,0x7A,0xB8, + + 0xB4,0xA7,0x2E,0x89,0xCD,0x4A,0x6C,0x1E,0xA3,0xAD,0x36,0x4E,0xD5,0x0A,0x32,0x3C, + + 0xC1,0x8A,0x37,0x43,0x1F,0x68,0x28,0x7E,0xDB,0x25,0xE5,0x46,0x77,0xF6,0xA7,0x6B, + + 0x7F,0x6F,0xEA,0xE6,0x63,0xD6,0x4D,0x1A,0xD8,0xE5,0xEC,0x0A,0x79,0xDB,0xAB,0x0A, + + 0xA7,0x6F,0xED,0xE6,0x20,0x69,0x25,0x7D,0x03,0xE3,0x3C,0x3B,0x0D,0x0F,0x00,0xDD, + + 0x8F,0x9C,0x39,0x37,0x66,0xD3,0x2C,0x5E,0xA1,0xA9,0xF3,0x0E,0xAD,0xD5,0x5D,0x55, + + 0x38,0x5D,0xF4,0xFD,0xD1,0x8E,0x68,0x3E,0xD9,0xF0,0x49,0xF8,0x73,0x79,0x83,0x41, + + 0x8A,0x4C,0xF9,0xF1,0xBE,0x40,0x0D,0x5A,0xDE,0xE1,0xCB,0xE8,0xB9,0x14,0xF3,0xEB, + + 0x83,0x63,0xF5,0xFD,0x51,0xAC,0xF0,0x03,0x1E,0x54,0x81,0x82,0x78,0xE4,0x50,0x9F, + + 0x06,0x51,0x97,0xB4,0x70,0xCF,0x14,0x62,0xE3,0x16,0xCD,0xA0,0xA5,0x1C,0x9F,0x6F, + + 0xC8,0x60,0xD2,0xC5,0x31,0x95,0xA8,0x34,0x45,0xCB,0xE1,0x99,0x8A,0xAC,0xA9,0xF2, + + 0xD0,0xB4,0xBF,0x34,0x8C,0xED,0xA2,0x85,0xE6,0x73,0x51,0xFB,0xFE,0x6C,0x6B,0xA8, + + 0x56,0x52,0xDD,0xC1,0x0D,0xE2,0xB6,0xF6,0xEF,0x8F,0x4C,0xD5,0xFD,0x88,0x16,0xA2, + + 0x43,0x41,0xC0,0xF4,0xCD,0x72,0xE5,0x5E,0xDE,0xA3,0x59,0x41,0x56,0x1A,0x93,0xD8, + + 0x7D,0x9E,0xF2,0xA8,0xBE,0x93,0xE5,0xAE,0xE0,0x5B,0xF4,0x36,0xA7,0xAA,0x5D,0xC5, + + 0x2F,0x57,0x97,0xC1,0xFB,0xFE,0xFA,0x8E,0x3F,0x8A,0x95,0xDA,0xFA,0x1A,0x1C,0xEC, + + 0x48,0x53,0x91,0x15,0xAB,0xEC,0xBD,0xCE,0xC7,0xF3,0x7A,0x0A,0x98,0x08,0x38,0xA4, + + 0x40,0x15,0x37,0xB5,0xC0,0xA9,0xD2,0x62,0xD3,0x07,0x69,0x88,0xA5,0xC5,0xF5,0xBC, + + 0xC0,0xB0,0xC2,0xEF,0x1B,0x92,0xDE,0x99,0x91,0x1B,0x04,0x38,0x76,0x7F,0xF8,0xFA, + + 0x90,0x79,0xB4,0xA0,0xBE,0xA2,0x49,0x4B,0xEC,0xC7,0x38,0x89,0xFE,0x83,0xF2,0x75, + + 0xA9,0xA0,0xF7,0x99,0x59,0xEE,0x8F,0x61,0x3C,0x37,0x5F,0x69,0xB9,0xF6,0x7C,0x78, + + 0xAA,0xB3,0xE8,0x31,0xCC,0x7E,0x8B,0xEE,0xA2,0x07,0x83,0x4C,0x8D,0x1C,0x1E,0xE5, + + 0xC0,0x59,0x9E,0xD4,0x73,0xB0,0xCE,0x8B,0x07,0xFC,0x23,0x78,0x10,0x02,0xE3,0xAB, + + 0x5D,0x95,0x4A,0xBD,0x3A,0x2E,0xF3,0x18,0x49,0x1E,0x89,0x02,0xBA,0xD5,0x75,0x69, + + 0x2B,0xB0,0x30,0x59,0xF8,0x99,0x67,0xC9,0x8B,0xF0,0x99,0x0C,0x44,0xEF,0x7E,0xE0, + + 0x00,0x2D,0x30,0x5D,0x30,0x0B,0x4E,0x39,0xAD,0xE8,0x04,0x01,0xF5,0x8C,0x10,0xEC, + + 0xA9,0x8C,0x80,0xE7,0x6D,0x14,0x66,0x3D,0x49,0x8F,0x47,0x48,0x27,0x5D,0x30,0x87, + + 0xCC,0x72,0x34,0x04,0xFF,0x33,0x53,0x23,0x2F,0x56,0x75,0xDB,0xD4,0x53,0x3F,0xB7, + + 0x6E,0xC0,0xF7,0x2B,0x24,0x0E,0x58,0x93,0x13,0x7C,0x06,0x6C,0x26,0x68,0xA0,0x96, + + 0x46,0x09,0x70,0xE6,0x10,0x25,0xF2,0x25,0x68,0x18,0x63,0x57,0x66,0xA6,0x99,0xD0, + + 0x87,0xEC,0xC6,0xAB,0xE1,0xBE,0x06,0x69,0x93,0x51,0x80,0x6B,0xD7,0xDB,0x38,0x4F, + + 0x21,0x82,0xF1,0x4F,0xBE,0x7D,0xA5,0x3D,0x55,0xF9,0xE5,0x6D,0x77,0x64,0x51,0xF3, + + 0x6E,0x57,0x2E,0x31,0xF7,0x58,0x27,0x7C,0xC3,0x89,0xA3,0x06,0xBF,0xF6,0x99,0xBB, + + 0x26,0x27,0xBC,0x3E,0xEB,0x07,0x1B,0x45,0xDD,0x0D,0x31,0x07,0x5A,0xFB,0x9D,0xBE, + + 0x7E,0x89,0x94,0x23,0x90,0x0F,0x0B,0x6A,0xA9,0x5C,0x47,0x40,0x73,0xB6,0x77,0x2F, + + 0x78,0xA9,0xF3,0x7D,0x77,0x5B,0x41,0x23,0x28,0x6D,0xAE,0x4D,0xB4,0xE7,0xEB,0x1F, + + 0x9B,0x5F,0xB7,0xDF,0x9C,0x06,0x3A,0x0D,0x35,0x30,0x84,0x61,0x2C,0x37,0x02,0x48, + + 0x20,0x81,0x02,0xFE,0x18,0x04,0x13,0xCA,0x98,0x73,0x8B,0x08,0x1D,0xE3,0x52,0x27, + + 0x2C,0xCD,0x31,0x0D,0x60,0x23,0x22,0x6E,0x2C,0x51,0xE8,0x9C,0x22,0xE6,0x9C,0xC9, + + 0x0E,0xCD,0x69,0xEF,0xC6,0x9D,0x4D,0xD8,0x87,0x49,0x0C,0x87,0x8B,0xA3,0xC7,0x7F, + + 0x0D,0x8B,0xB2,0xC2,0x3A,0x26,0x82,0x94,0x4F,0x4F,0xFD,0x40,0xEF,0xAD,0x64,0x7A, + + 0x98,0xD1,0xDC,0xB7,0x40,0x1F,0xF0,0xFC,0x6A,0xCE,0xED,0xAA,0xD3,0xF1,0x80,0xD0, + + 0xA6,0x45,0xD2,0xAF,0xDC,0x18,0x93,0x36,0x2E,0xD4,0x3C,0xC5,0x56,0x9D,0xC9,0x03, + + 0x58,0xB2,0x36,0xF9,0xDE,0x03,0x48,0x58,0x39,0x8F,0x35,0xAB,0xF2,0x58,0xFA,0x8C, + + 0xA4,0x07,0xF3,0x75,0xB1,0x36,0x10,0xCC,0x7C,0x78,0xDF,0xBB,0xF4,0x9C,0xC0,0xA0, + + 0x53,0x9D,0xB4,0xDF,0x62,0x19,0xD4,0x90,0x04,0xE8,0xA4,0x0C,0x8D,0x5F,0x34,0xB0, + + 0x50,0x91,0xA4,0xC3,0x40,0x19,0xC8,0x90,0x43,0x0A,0xDB,0x09,0x1C,0x8A,0xE5,0x84, + + 0x82,0x6B,0x7E,0x80,0x7C,0xFD,0x0B,0xE4,0x47,0x09,0x08,0x6B,0x26,0x29,0xB2,0x73, + + 0xDC,0x17,0x32,0x05,0xB1,0xCF,0xC2,0xC2,0x46,0x28,0xA8,0x57,0x00,0x97,0x2A,0x91, + + 0x29,0x35,0x15,0x6C,0x54,0x29,0x4E,0xAE,0xD1,0x9A,0x76,0xF2,0x7D,0xFE,0x1C,0xAB, + + 0x2C,0x66,0x3B,0x6D,0x01,0x19,0x06,0x52,0x21,0x05,0x0F,0xBB,0x1E,0x06,0x29,0x7A, + + 0x0F,0xDA,0xD9,0xB7,0x49,0x19,0x23,0x24,0x1B,0xBF,0x97,0xEF,0x5D,0x7D,0x11,0x79, + + 0xC7,0x68,0x38,0x9D,0x07,0xFA,0x93,0x3E,0x38,0xB9,0xC7,0x1F,0xF7,0x1B,0x1D,0x4E, + + 0x2D,0xC4,0xFC,0xEA,0xE2,0xAD,0xCD,0x4F,0x99,0x71,0xA8,0x01,0x3E,0x57,0xC2,0xFE, + + 0xA0,0xDC,0xFA,0xD4,0x9E,0x12,0x40,0x16,0x19,0x9C,0xB8,0x0F,0xC0,0x2D,0xD8,0x97, + + 0x8F,0xDE,0xBD,0xF3,0xC2,0xFC,0xAA,0xD6,0x05,0x9A,0x0A,0x6B,0x95,0x81,0x83,0x5B, + + 0x53,0xBF,0xFA,0x5B,0xF6,0x0B,0xC6,0x7F,0xA7,0x2F,0xAF,0x15,0x04,0x54,0xFD,0x98, + + 0x6B,0x7F,0x8A,0x4D,0x03,0xDA,0xD0,0x01,0x86,0x9F,0xEE,0x23,0xF1,0xDF,0x58,0xFA, + + 0xFA,0xD4,0xD8,0xC9,0x3B,0x22,0xB3,0x77,0x4F,0x9D,0x9B,0x28,0xD1,0x8F,0x85,0xF0, + + 0x3F,0x01,0x0F,0xD5,0xAA,0x21,0xA5,0x43,0xF3,0xA2,0x51,0xF4,0xBA,0x50,0xF2,0x2E, + + 0x7E,0x0D,0x5B,0xB1,0x91,0x03,0xDD,0xFB,0x7A,0xBC,0x09,0x7E,0x2C,0x5F,0x51,0x40, + + 0x04,0x9F,0x7E,0xD1,0xB4,0x8A,0x94,0xB0,0x1C,0xFB,0x07,0x9D,0x72,0xFF,0x58,0x64, + + 0x5B,0x06,0x4C,0x4A,0xF2,0x49,0x23,0x0B,0x62,0x65,0xF0,0xF0,0x56,0xFE,0x05,0xE1, + + 0xAE,0x04,0x01,0x10,0xCC,0x64,0x01,0x5D,0xC4,0xC6,0xD1,0x98,0xD2,0xBD,0x0A,0x44, + + 0xB0,0xA3,0x2C,0xBA,0x72,0x71,0x1E,0x0E,0x4E,0xF1,0x66,0x29,0xF2,0x45,0x6A,0x8E, + + 0xF4,0x49,0x86,0x0D,0xE7,0xD7,0xD2,0x0C,0x1E,0xB5,0xC8,0xD3,0xA7,0xB7,0xF5,0xEB, + + 0x7D,0xA6,0x8A,0xE3,0xE6,0xF6,0x0C,0x5A,0x29,0x33,0xE4,0x8C,0xA8,0x05,0x5D,0x30, + + 0x80,0x81,0x7C,0x0D,0x98,0xD5,0x6B,0x52,0xA0,0x47,0xA4,0xE4,0x39,0xF5,0x9C,0xF1, + + 0x43,0xC6,0x74,0x1C,0x99,0xD4,0xDB,0x1D,0xAC,0x09,0xFD,0xF4,0xDA,0x68,0x98,0x48, + + 0x1A,0xC7,0x3B,0x3E,0x80,0x13,0x5A,0x65,0xB7,0x22,0xD4,0x55,0xB3,0xDD,0xA2,0x7C, + + 0x2F,0xB6,0x4E,0xD8,0x17,0xF9,0x5B,0x07,0x32,0x44,0x33,0xFE,0x52,0x80,0x47,0x0F, + + 0xAE,0x4F,0xF9,0xC7,0x29,0x2A,0x30,0xA9,0x8E,0x4A,0x7F,0xFF,0xD6,0x66,0x3A,0xDD, + + 0xD1,0x59,0x9B,0x8E,0xC3,0xA2,0x59,0x65,0x3D,0xCF,0x81,0x87,0x78,0x6B,0x4C,0x09, + + 0xDC,0x61,0x80,0xEC,0x30,0x30,0xF3,0x4F,0x00,0x80,0x2D,0x3A,0x73,0x40,0xB3,0x03, + + 0x5D,0xCC,0x2B,0xC8,0x11,0xB2,0xE5,0x32,0xA8,0x26,0x21,0xEB,0xA8,0xEC,0xC5,0xDD, + + 0x1D,0x7E,0x07,0x06,0x64,0x8A,0xD5,0x09,0xD9,0x5F,0x3E,0xCB,0x25,0x8E,0x6B,0xAD, + + 0xA2,0xF3,0x8B,0x7D,0x69,0xFE,0x25,0x40,0x42,0xD3,0xB2,0xAD,0x71,0x2F,0x9B,0x40, + + 0x51,0x10,0xC6,0xDB,0x13,0x30,0xAB,0x62,0x67,0x50,0xAB,0x19,0x7A,0x36,0x8C,0x8D, + + 0x69,0xEE,0x03,0x14,0x37,0xC1,0x24,0x8B,0x6D,0x37,0x10,0x96,0x30,0xAA,0x1A,0x94, + + 0x9D,0x21,0xC4,0xBA,0x3F,0x90,0xEE,0x03,0x4E,0xAB,0x13,0xD7,0x70,0x3E,0x4D,0x2D, + + 0x02,0x55,0x02,0xA6,0xDA,0x88,0x17,0x4C,0x61,0x1F,0xA5,0x77,0xF6,0x7E,0xA5,0xB4, + + 0xF4,0xE9,0xA6,0x84,0xB5,0x03,0x24,0x53,0x98,0x57,0x39,0xD7,0xA5,0x39,0x9B,0x9A, + + 0x88,0xB4,0x6C,0x0C,0xF1,0xC0,0x30,0xD6,0x15,0xA6,0x72,0x2E,0x35,0x71,0x21,0xA4, + + 0xD0,0xBA,0x20,0xFA,0x8B,0x8E,0xA0,0x91,0xEE,0x7A,0xA9,0x55,0xD9,0x32,0x18,0x63, + + 0x40,0xCA,0xF7,0xAF,0x4A,0xEE,0x25,0x05,0x64,0x39,0xDF,0x41,0x47,0x80,0x8E,0x09, + + 0x5D,0x69,0x9D,0xCC,0xEF,0x61,0xCB,0x0A,0xE8,0x58,0xEC,0x0E,0xD6,0x73,0x11,0xD8, + + 0x58,0x10,0x0E,0xDD,0xF2,0xC1,0x3C,0xF1,0x6A,0x9D,0xD6,0x79,0xDA,0xF7,0x98,0x49, + + 0x95,0x49,0x6C,0x92,0x07,0xC2,0x71,0x8B,0x15,0x32,0x17,0x3D,0xF2,0x78,0x8F,0x95, + + 0x76,0x5E,0xF0,0x82,0x46,0x51,0xE0,0x3E,0x29,0x40,0x28,0x1F,0x5A,0xF5,0x7E,0xE0, + + 0x58,0x05,0x5F,0x06,0x1C,0xA0,0x32,0xCB,0xF9,0x61,0xEA,0xEB,0x24,0xA2,0x50,0xE1, + + 0x75,0x82,0x57,0xE9,0x15,0x5E,0x80,0xC1,0xC1,0x4C,0xE0,0x13,0xE9,0x62,0x78,0x19, + + 0xE0,0x03,0x5E,0xF8,0x6B,0xA2,0x09,0x12,0x65,0x43,0xA5,0x2D,0x75,0xDB,0x2E,0x1F, + + 0xB6,0xC2,0xA9,0x17,0xDC,0x53,0x6B,0x78,0x2E,0xA7,0xBF,0x87,0xB6,0xE1,0x1A,0x52, + + 0x84,0x80,0x4C,0xD9,0xE9,0x29,0x5C,0x3D,0xB3,0x38,0x0B,0xE2,0x1D,0x4A,0xF3,0x30, + + 0x25,0x68,0x97,0x24,0xC5,0x3A,0x47,0xA2,0x4B,0x6E,0xB2,0x81,0xF4,0xE3,0x9E,0xA1, + + 0x04,0x82,0x02,0xB9,0x77,0x10,0xE1,0x38,0x3B,0x7A,0x91,0x26,0x5A,0xEB,0x2D,0xAA, + + 0xD4,0x1C,0x79,0x18,0x6A,0xDB,0x01,0xF3,0x27,0x38,0xB1,0xE0,0xB4,0xB2,0x9A,0xF5, + + 0x81,0x25,0xAC,0x8B,0x55,0xFA,0xB2,0x3A,0xB4,0x1C,0x27,0xAA,0x74,0xFC,0x74,0x37, + + 0x05,0x24,0xAA,0x0B,0x1D,0xA9,0x7B,0x5C,0xB2,0xCF,0xC8,0x5C,0xEA,0x8C,0x30,0x94, + + 0x67,0x1B,0xAD,0x2A,0x9C,0xAA,0xA6,0x34,0xBC,0xD1,0x88,0xCD,0xDA,0xCB,0xBE,0x5C, + + 0x47,0x1A,0xAB,0x27,0x9D,0xAB,0x15,0x81,0x6C,0xA7,0x83,0xD0,0x50,0x1D,0x62,0xB7, + + 0x1F,0x57,0x4B,0x30,0x8B,0x01,0x12,0x2E,0xCE,0xC1,0x8A,0x4A,0x7E,0x8E,0x0A,0x59, + + 0x0B,0xCD,0x2A,0x5F,0xD6,0x50,0xD5,0x95,0xFA,0x65,0x7D,0x18,0xBD,0xCD,0x43,0xCF, + + 0x8D,0xD6,0xFD,0xB4,0xED,0xAE,0x8A,0x4C,0x6F,0x44,0xA0,0xA9,0xD0,0xF5,0x69,0x60, + + 0xF8,0xFA,0x07,0xCC,0xBE,0xA7,0x03,0x85,0x72,0x37,0xFE,0x97,0x19,0x22,0xDB,0xF8, + + 0xD3,0xD1,0x3F,0xAD,0x49,0x8D,0xCF,0xDD,0x6A,0x2F,0xF4,0x4B,0xE7,0xAB,0x93,0xC9, + + 0x4E,0x9E,0xBF,0x65,0xB1,0x3C,0xC3,0xB0,0x69,0x8D,0x33,0x0E,0x3F,0x6A,0x88,0xF8, + + 0x39,0x2E,0xBD,0xB3,0x5D,0x6A,0x8E,0xC3,0xA4,0x89,0xB0,0xD5,0x0F,0xB0,0xAD,0xE8, + + 0xA3,0xB2,0xFB,0xCE,0x5E,0xD7,0x82,0xFD,0x86,0x03,0x2D,0x33,0xBE,0x97,0x5E,0x3C, + + 0x45,0xCD,0x82,0x1A,0x37,0xD4,0x7C,0xF6,0xE4,0x9C,0x1B,0x04,0xD7,0x7E,0x3E,0x9D, + + 0xCC,0xF1,0x40,0x45,0x6C,0xBF,0xEC,0xB4,0xAC,0xC8,0x83,0x14,0xF5,0xDD,0xF6,0x30, + + 0x22,0x1B,0x42,0x1B,0x92,0x4B,0xE8,0x81,0x9A,0xD9,0x08,0x05,0x57,0x7C,0x55,0x28, + + 0x86,0x26,0x6D,0xC8,0xEC,0xF6,0x2D,0x84,0xBB,0x90,0x59,0x95,0xB4,0x0A,0x11,0x0E, + + 0x08,0x02,0x9E,0x61,0xDF,0xB1,0xA3,0x2E,0x5E,0xE1,0x6D,0xAD,0x03,0xF4,0xEA,0x50, + + 0x96,0x66,0xF4,0x65,0x49,0x16,0x4D,0xD8,0x2D,0xD6,0x69,0x93,0x4E,0xB4,0x8C,0xCC, + + 0xA2,0x46,0x61,0xD0,0x01,0x46,0x8E,0x49,0x6E,0x76,0x77,0x56,0x9F,0xB8,0xEF,0xBF, + + 0xA3,0x66,0x0F,0xED,0xDF,0x17,0xAF,0xEE,0xB0,0x23,0x7F,0xAF,0x47,0xB9,0xCA,0x58, + + 0x6E,0x96,0xDC,0x3D,0x46,0xFE,0x18,0x98,0xE3,0xAA,0x8E,0xCA,0x4D,0x48,0x6C,0xA1, + + 0x4F,0x02,0x91,0x26,0xBE,0x42,0x44,0x71,0xD4,0x50,0x5D,0x1C,0x9F,0x42,0x65,0x33, + + 0xAE,0x9A,0x6E,0xA3,0x81,0xBF,0x8A,0x99,0x78,0x81,0x4D,0x11,0x17,0x07,0x14,0xA1, + + 0xA1,0xFD,0x34,0xDD,0xB9,0x9F,0x1E,0x11,0x1E,0xDC,0x3F,0x3F,0x82,0xBE,0xC0,0x21, + + 0xAC,0x42,0x0C,0x38,0x16,0x61,0x49,0x2D,0xE5,0xFF,0xAB,0x94,0xCC,0xFF,0xCC,0x4E, + + 0x0F,0x1F,0xC6,0x36,0xC0,0xDC,0x01,0x23,0xE2,0xA0,0xDE,0xDC,0xC6,0x2C,0x91,0xD9, + + 0x55,0x6E,0x43,0x67,0x6B,0x60,0x09,0x91,0xC6,0x90,0x4C,0xBD,0xD6,0x9A,0x74,0xEE, + + 0xE2,0x6B,0xA2,0xE5,0x57,0xF2,0x67,0x19,0xF6,0x36,0xEB,0x3D,0xDD,0x2D,0xFB,0xA6, + + 0x26,0xF0,0x13,0xE4,0x30,0xF5,0x30,0x24,0x36,0xC9,0xAF,0xE0,0x19,0xC7,0x16,0xB2, + + 0x07,0xA8,0x19,0xEC,0xF2,0x23,0xD8,0x42,0x23,0x54,0x78,0x06,0x65,0xCA,0x95,0xC5, + + 0xBB,0x4D,0x01,0xED,0x1C,0x64,0x29,0x45,0xA9,0x49,0x6C,0x54,0xA7,0xC9,0x9D,0xD5, + + 0xAB,0xB2,0x64,0x25,0x30,0x65,0x27,0x77,0x2A,0x48,0x7D,0x17,0x2C,0xDC,0x11,0x8C, + + 0x2C,0xCA,0x42,0x28,0xD1,0x25,0xCF,0xA8,0x80,0xA9,0x05,0x08,0x6B,0x36,0x3A,0x56, + + 0xF4,0x55,0x4A,0x38,0x31,0x6B,0x7B,0xC4,0xD5,0x0B,0x76,0xBC,0xA5,0x49,0x3B,0xF2, + + 0x8E,0xA0,0x7C,0xFD,0x9F,0xFB,0x80,0xDA,0xB4,0xB1,0x2B,0x3D,0x7F,0x2B,0x55,0xFB, + + 0x8D,0x76,0x1B,0x9A,0x26,0x7E,0x16,0xB3,0xBE,0x3E,0x37,0x7F,0x5A,0x29,0x7C,0x44, + + 0xA9,0x69,0xD2,0x4C,0x1C,0x7D,0x00,0xC6,0xA1,0x28,0x52,0x68,0x11,0xCF,0x32,0x5C, + + 0xE2,0x6E,0x93,0x8C,0xBE,0x24,0x62,0xA8,0x47,0xB2,0x76,0x3E,0xD8,0x2F,0x7D,0x44, + + 0x29,0xA5,0x01,0xED,0xE2,0x8E,0xC3,0xEB,0x4A,0xF6,0x3F,0xED,0x26,0x4E,0x2B,0x76, + + 0x45,0x4D,0xC9,0x2F,0xA8,0xD8,0xCB,0x66,0x9A,0x01,0x0D,0x9D,0x0B,0xB9,0x2C,0xE6, + + 0x01,0x60,0x67,0xC4,0x24,0x0D,0x2F,0x67,0xAA,0x59,0x31,0xB0,0xF7,0x66,0x2C,0xF6, + + 0x02,0x71,0x35,0x06,0x31,0xEE,0x02,0x52,0x81,0x0A,0x9C,0x76,0xF2,0x37,0xBD,0x11, + + 0x07,0x09,0x7A,0xEA,0x6E,0xCD,0x5D,0x98,0x11,0xF6,0xC5,0x3B,0x0B,0x89,0x54,0xD3, + + 0x06,0x08,0x1D,0xFE,0x8D,0xCC,0x1D,0x80,0xBA,0xAC,0x2A,0x91,0x9A,0x7C,0x9B,0xC1, + + 0xDF,0x78,0x04,0xE0,0x37,0x76,0x6B,0x62,0x40,0x64,0xBC,0x62,0x8E,0x35,0x16,0xE4, + + 0x5F,0x0A,0xF4,0x3B,0xCE,0x77,0x3C,0x50,0x3F,0x5A,0xD6,0xF0,0xD0,0x73,0x23,0xB0, + + 0xA1,0x37,0xD1,0x47,0x05,0x53,0x6B,0xB9,0x41,0xD6,0xB5,0x45,0xAC,0x7B,0xF5,0x2F, + + 0xC0,0xF6,0x5D,0x15,0x58,0x53,0xDD,0x30,0x38,0x83,0x8D,0x6C,0x90,0x57,0x4C,0xEE, + + 0x09,0x09,0xBC,0x20,0xCF,0x54,0xAF,0x19,0xCB,0x87,0x16,0xD7,0x7E,0x59,0x2E,0xFE, + + 0xD6,0xB4,0xC6,0x9D,0x1D,0xE5,0x78,0x64,0x6A,0xDB,0xA6,0x53,0x84,0xD8,0x3D,0x7A, + + 0xC4,0x01,0x38,0x16,0x4D,0xAC,0xA2,0x70,0x55,0x34,0xA0,0xCF,0x4F,0x1F,0x99,0xDE, + + 0x77,0x11,0xB4,0xC3,0x64,0x86,0x45,0x43,0x95,0xF4,0xA7,0x8D,0xBD,0xD4,0xD1,0x22, + + 0x8F,0x70,0x7F,0x2E,0x96,0x41,0x86,0xF7,0x44,0xC8,0xAE,0x6E,0x58,0x8E,0x8A,0x23, + + 0x48,0x96,0x0E,0xFD,0xAB,0x30,0x14,0xBE,0x14,0x1D,0xBE,0x5C,0x2D,0xF0,0xA4,0x37, + + 0x0E,0xF3,0xBF,0x3D,0x50,0x8F,0x05,0xF2,0x80,0x1C,0xEF,0xBD,0xF2,0x71,0xD8,0x2A, + + 0x2F,0x92,0x34,0x2D,0x7A,0xCE,0x9F,0xF8,0x7B,0xAA,0xA7,0x7F,0xFE,0xB5,0xE0,0x23, + + 0x9A,0x5F,0xD8,0x7C,0xFF,0xAF,0xEF,0xA2,0xF8,0xD1,0x66,0x2C,0x89,0x5D,0x83,0x55, + + 0x0B,0x5D,0xD0,0xBA,0xE2,0xE0,0xF8,0x6A,0x96,0x1A,0x1F,0xA9,0x3E,0x57,0x95,0x61, + + 0xB7,0x62,0x93,0x2A,0x6B,0x0F,0x80,0x16,0xBF,0x22,0x1E,0xD6,0x02,0xE2,0xED,0xD9, + + 0x3E,0x7C,0x04,0x68,0x08,0xFF,0x8C,0xCE,0xC7,0xB6,0x3C,0x45,0xD3,0x00,0x66,0x5F, + + 0xEF,0x14,0x18,0xAE,0xC5,0xE9,0x71,0x24,0x06,0xDF,0xD7,0xF9,0x3D,0x52,0x10,0xBA, + + 0xA3,0x48,0x2F,0x29,0x35,0x48,0xAC,0xA2,0xC6,0x4D,0x86,0x45,0x3C,0x60,0x19,0x64, + + 0x6F,0x36,0x1E,0x77,0x69,0xE0,0xB6,0x05,0x07,0xA5,0xF0,0xE3,0xB8,0x9D,0x96,0xA3, + + 0x6D,0x26,0xEF,0x5F,0x32,0xBC,0x09,0x9C,0x3F,0x6E,0x79,0x31,0x45,0x43,0x78,0xCE, + + 0x7C,0xCA,0x19,0x40,0xF5,0xF1,0x23,0x04,0x20,0x73,0x6F,0xDF,0xB4,0xEC,0xCE,0xE1, + + 0xB8,0xCB,0x55,0x6C,0x6F,0x76,0x35,0x51,0x69,0x75,0xDB,0x2D,0x29,0x7D,0xB3,0x2A, + + 0x8A,0xCB,0x0F,0x8A,0x27,0x1B,0x52,0xD3,0x50,0x88,0xED,0x1D,0x9C,0xA6,0xBB,0x40, + + 0xA9,0x90,0x47,0x70,0x43,0xF6,0x84,0x60,0x3D,0x31,0x9D,0x02,0x05,0x40,0xB6,0xCE, + + 0x26,0x98,0x15,0xA8,0x3A,0x07,0xC5,0x17,0x48,0x66,0x7C,0x74,0x96,0xF4,0xFC,0x3C, + + 0x82,0xEF,0xFE,0x65,0xBE,0xF2,0xCF,0x0B,0xB7,0x34,0x12,0xF4,0x7D,0x3B,0xDC,0xA9, + + 0xAA,0x95,0x9B,0x4B,0x67,0xEC,0x4F,0x19,0x25,0xC4,0xD4,0x9E,0x42,0x8E,0x0B,0x75, + + 0xEC,0x80,0x5F,0x3D,0x20,0x52,0xCC,0x06,0xC9,0x65,0x84,0x82,0xDF,0xE1,0xE1,0x72, + + 0xB8,0x31,0x0B,0xA2,0x16,0xB3,0x94,0x52,0x9A,0x03,0x14,0xD4,0x16,0xCC,0xAB,0xAD, + + 0x49,0xD3,0x92,0xFF,0x5D,0xBC,0xB9,0xAF,0x9B,0xD1,0x08,0xD4,0xCA,0x0C,0xB3,0x69, + + 0x01,0x9B,0x75,0xA7,0xC8,0x43,0x4B,0xA4,0x1D,0xDD,0x75,0x86,0x76,0xAD,0x67,0xC9, + + 0xA3,0x21,0xD2,0xE4,0x84,0xD0,0x39,0xAF,0x65,0x1E,0x7D,0x96,0x22,0xAE,0x36,0xEC, + + 0xCD,0xF0,0x9D,0xB8,0x91,0xF5,0x26,0x66,0x6E,0x60,0xAE,0xE3,0xD5,0x79,0x01,0xF6, + + 0xA5,0xBD,0x57,0x98,0xDE,0x6C,0x5B,0xE1,0x49,0x91,0x27,0xA5,0x08,0x6C,0x5A,0x21, + + 0xFA,0x92,0x48,0xB8,0x2B,0xEA,0xC2,0x52,0xE0,0xF6,0x0A,0x63,0xB5,0x50,0xC9,0xB1, + + 0xE6,0x87,0xF5,0x43,0xD7,0x48,0x5B,0x57,0x6B,0xDA,0x20,0xA7,0x16,0x48,0xE2,0xCA, + + 0x64,0x6D,0xDD,0x7E,0xBD,0x09,0x35,0xA8,0xB5,0x99,0xCE,0x89,0xC1,0xF7,0x28,0xAF, + + 0xAD,0xE7,0xFD,0xA1,0xB9,0x66,0x98,0x86,0x6B,0x98,0xAA,0xB4,0xDC,0x26,0xB1,0x0F, + + 0xD4,0x57,0xD9,0x89,0xDF,0x9E,0x9C,0xD4,0x39,0x51,0xED,0x1C,0x84,0xB8,0xBF,0x3B, + + 0xB1,0xC8,0x90,0xAF,0x2F,0x04,0x48,0xD9,0x12,0x50,0xE5,0x6B,0x81,0xE4,0x1E,0x48, + + 0x2F,0xE4,0x19,0xBC,0x5C,0x43,0xC2,0x15,0x68,0xFC,0x76,0x3F,0x8A,0x71,0x66,0x96, + + 0x6D,0x92,0x4E,0xB0,0x49,0x12,0x0E,0x3C,0xC5,0x9F,0x2E,0xEA,0xFD,0x51,0x3D,0xCF, + + 0x0D,0x98,0x1C,0xA0,0xC2,0x11,0x50,0x24,0x5D,0x92,0x08,0x11,0x05,0xFD,0x0F,0x9F, + + 0xD3,0x90,0x4B,0xBD,0x40,0x32,0xB3,0x7F,0xEB,0x15,0x0A,0x9D,0x87,0x40,0x60,0x53, + + 0xBE,0x0D,0xD0,0x9A,0xEB,0xDB,0x70,0x7F,0xE3,0xCB,0x91,0x12,0xBA,0x75,0x6B,0xD0, + + 0x47,0x7D,0x3F,0x30,0x6E,0xDE,0x62,0xC0,0x92,0x4E,0x2A,0x0F,0x2E,0x61,0x16,0xFB, + + 0x79,0x6E,0x81,0xC7,0x13,0x64,0x15,0xC3,0x42,0xBE,0x9B,0x13,0x20,0x72,0x36,0x5E, + + 0xD9,0x88,0xB3,0xEB,0x6A,0x38,0x79,0x6E,0x26,0xEE,0xF1,0xF7,0x57,0x96,0x80,0xF5, + + 0x23,0x46,0xCC,0x46,0xCB,0xD9,0x29,0x06,0x63,0xF4,0xAF,0xE6,0x53,0x9B,0xC8,0x96, + + 0x91,0x06,0x1E,0xBB,0xAE,0xDA,0x73,0xF4,0x7C,0x74,0x48,0x06,0xA8,0xEE,0x97,0x10, + + 0xE9,0x72,0xEE,0x3E,0x65,0x8B,0xE6,0x54,0xC4,0xCC,0xE9,0x45,0x73,0x59,0xAA,0xAA, + + 0xFC,0x07,0x25,0xCE,0x92,0xA7,0xEE,0x44,0xC7,0x1F,0xE2,0x4C,0xD5,0x74,0x02,0x25, + + 0xE3,0x4C,0xE4,0x7A,0xEB,0x95,0xDA,0xCA,0xE4,0xE5,0x02,0x33,0x34,0x73,0xAE,0x7A, + + 0x75,0xF6,0xD3,0x9B,0xFC,0x90,0xCE,0x9D,0x0A,0x45,0x82,0x18,0xB0,0x88,0x39,0xB9, + + 0x19,0xA5,0x2F,0x97,0x9B,0x58,0xDF,0xCB,0x75,0xC6,0x14,0x4B,0xB1,0x8B,0x31,0xA5, + + 0x7E,0x0F,0x93,0x99,0xFA,0x64,0x14,0xC7,0x20,0xB3,0xC3,0x25,0xEA,0xB9,0x2A,0x8A, + + 0x8C,0xF9,0x7F,0xB2,0xE3,0xD3,0xD6,0x79,0x26,0x48,0x85,0x0E,0x31,0x63,0xB5,0x2A, + + 0xFC,0x86,0xC2,0x46,0x12,0x99,0x08,0x88,0xFF,0x42,0x83,0x79,0x8E,0x01,0xD3,0xA1, + + 0x98,0x43,0x53,0x53,0xE4,0xDA,0x6B,0x4D,0x48,0x4A,0x55,0x5F,0x2E,0x61,0x3B,0x65, + + 0x8D,0x1C,0x43,0x32,0xBA,0x5D,0x80,0x7B,0xB4,0x4C,0x1F,0x23,0xD5,0x71,0xFC,0x70, + + 0xCA,0x61,0xCF,0x6C,0xCE,0x7F,0x3E,0x70,0xC3,0xD8,0xBC,0x20,0x0B,0xFB,0xB9,0x63, + + 0xAD,0x9C,0x51,0x89,0xCA,0x73,0x7E,0xB4,0x67,0xB2,0x64,0x30,0x0F,0x60,0x7B,0x87, + + 0x41,0x91,0x5E,0xDB,0xCF,0xF8,0x95,0x52,0x2A,0xF9,0x55,0x18,0xCC,0x69,0x75,0x9C, + + 0x21,0x9D,0xC3,0xAB,0xC6,0x6F,0x13,0x40,0x7D,0x41,0xC4,0xD3,0xF7,0x80,0x24,0xC2, + + 0x23,0x19,0x68,0x86,0xB1,0x9F,0x12,0xA2,0xC3,0x58,0xEA,0xB4,0xAC,0xD9,0x59,0xC8, + + 0xA1,0x11,0x92,0x47,0x2F,0xB8,0xFC,0xB2,0xE0,0xFE,0xE2,0xA4,0xAD,0x8A,0x3F,0xA1, + + 0xF6,0x54,0x27,0xC5,0x6A,0xD0,0x2D,0xA3,0x6E,0x5A,0x59,0x7B,0xF3,0x46,0x45,0xB3, + + 0xC2,0x42,0xB3,0x47,0xB5,0xD4,0x35,0x79,0xE5,0x57,0xE3,0xB0,0x25,0xA8,0x96,0x4F, + + 0x2A,0xED,0x59,0x12,0x07,0xC8,0xFE,0x22,0x4A,0x8E,0x87,0x2E,0xB5,0x77,0xCE,0x2D, + + 0x0A,0x5B,0x3D,0x60,0xEC,0xC2,0x76,0x3E,0x95,0x18,0x30,0x4E,0x7F,0xF9,0x03,0xCE, + + 0x29,0x14,0xBD,0x76,0xBE,0x90,0x68,0x54,0xE8,0x54,0x57,0xBD,0x00,0x7C,0xD9,0xF0, + + 0xAF,0xF8,0x91,0x70,0xE5,0xB6,0xF3,0x39,0x15,0x7B,0xB1,0xBD,0xF9,0x7B,0x5E,0xCD, + + 0x49,0xE3,0x73,0x48,0x54,0xC4,0xD7,0x6C,0x2D,0xDC,0x46,0x9E,0x8D,0x83,0x76,0x6A, + + 0x23,0xCD,0xAF,0x7C,0xED,0x82,0x26,0x7A,0x62,0x39,0xE6,0x2C,0x8C,0x72,0x3F,0x4B, + + 0x22,0x1E,0x99,0xC2,0xA8,0x70,0x37,0xA9,0x44,0xD3,0x47,0x6F,0xD8,0x8C,0x75,0x3B, + + 0xAD,0xAD,0x10,0xDD,0x38,0x31,0x67,0xA9,0xE3,0x50,0xBF,0xB9,0xBC,0xF2,0x1E,0x26, + + 0xE5,0xFF,0xB7,0x82,0x26,0x83,0x1A,0x87,0x07,0xCD,0x08,0xD7,0xF7,0x13,0x60,0x26, + + 0x66,0xF5,0xE0,0x02,0xC8,0x3C,0xF6,0x1D,0x46,0x81,0x98,0x26,0x2A,0xFF,0x9C,0x44, + + 0x4E,0xB8,0x99,0xFD,0x19,0x54,0xBA,0xD8,0x0C,0xE8,0x83,0xD8,0x20,0xED,0xBC,0xF9, + + 0x20,0x8A,0x06,0x49,0x6C,0x7F,0xB6,0x56,0x4A,0xC1,0x62,0x3E,0xD3,0xA9,0x26,0x3D, + + 0xA5,0x0F,0x25,0x35,0x13,0xD5,0x2F,0x67,0x35,0xC4,0x8D,0x99,0x35,0x79,0x3C,0x20, + + 0xA4,0x0E,0xE4,0xA5,0x9B,0xA8,0x42,0xED,0xB8,0x48,0x47,0x94,0x0F,0x52,0x99,0x7F, + + 0x80,0x95,0x9F,0x41,0x77,0x05,0xB1,0xA3,0xD3,0xAA,0xE6,0xE3,0xE4,0x55,0xEE,0x6E, + + 0x78,0x57,0x16,0x24,0x96,0xD6,0x9A,0xF1,0x47,0x04,0x1B,0xAC,0xF3,0x8B,0x61,0x55, + + 0xB1,0x74,0xA5,0x0C,0xCF,0x54,0x85,0x2B,0xC1,0xC4,0x4C,0xAC,0x5D,0x0F,0x6D,0x9F, + + 0x0C,0xAB,0xF3,0xDF,0xBA,0xAF,0x9E,0x29,0xC1,0x0F,0x3D,0x4D,0x31,0xA6,0xE3,0xDB, + + 0x5D,0xC8,0x18,0x50,0xB8,0x27,0x5B,0x34,0x48,0x1E,0xE9,0x2E,0x7F,0xF1,0x72,0xCB, + + 0xEE,0xAB,0x82,0x35,0x3E,0x04,0x1D,0x3D,0x03,0x76,0x2B,0xC3,0x55,0x10,0x91,0x46, + + 0xBF,0x57,0x9C,0x48,0xFF,0x0F,0x0A,0x4D,0xB3,0xC3,0xCD,0xE1,0xAF,0xBA,0x88,0xB6, + + 0x0F,0x00,0x92,0x5C,0xBA,0xEC,0x21,0x78,0x34,0xCE,0x6D,0x81,0xB6,0x85,0xC9,0xB6, + + 0x7F,0xF5,0x34,0xBC,0x12,0x53,0xA8,0x69,0xB1,0xDD,0xFB,0x66,0x37,0x66,0x14,0x5F, + + 0xD2,0x1C,0x07,0xDF,0x63,0x8F,0xA6,0x73,0xCB,0x37,0x28,0x81,0xFB,0x81,0xC0,0x06, + + 0x4A,0x2B,0xDB,0x82,0x7F,0x65,0x98,0xE0,0xE7,0x6D,0xB4,0xD4,0x47,0x66,0xAC,0xD4, + + 0xB7,0x35,0x00,0xD4,0xB6,0xF3,0x3D,0x41,0xAF,0x7A,0x2C,0x71,0x77,0x04,0x5B,0xB0, + + 0xCF,0x17,0x49,0x07,0x48,0x92,0x1F,0x73,0x47,0x5A,0x4F,0x4F,0x47,0xBD,0x23,0x89, + + 0x6D,0x5B,0x7B,0x77,0x5E,0x76,0x5A,0xBB,0x31,0x16,0xB9,0xF0,0x74,0xFD,0x05,0x22, + + 0x6A,0x6B,0x04,0xF9,0x12,0xB2,0x1C,0x20,0xE5,0x90,0x8C,0x64,0x54,0x06,0xF7,0xC8, + + 0x03,0x93,0x8C,0x89,0x80,0x08,0x14,0x90,0x41,0x21,0x9C,0x56,0x2D,0x78,0xA5,0xFF, + + 0x2F,0xD4,0x4A,0x28,0x4B,0xB9,0x1D,0xE4,0x65,0xD9,0xCD,0x37,0x0D,0xF9,0xC7,0x15, + + 0x06,0x1E,0x95,0x55,0x6A,0x88,0xAF,0x77,0xEE,0xD3,0x85,0x75,0x77,0x4E,0x01,0x7B, + + 0xB0,0xF8,0xD8,0xB9,0x57,0x1D,0x91,0x9D,0x07,0x7D,0x09,0x9E,0x78,0x57,0x51,0x67, + + 0x2D,0x97,0xFE,0x00,0xC6,0xA5,0xFE,0x0F,0x30,0x72,0x5C,0x4F,0xB7,0xB9,0xCF,0x01, + + 0x8E,0x4C,0xA6,0x0B,0xD2,0x0C,0x97,0x5A,0x0C,0x5A,0x51,0xDD,0x8A,0x55,0x47,0x1D, + + 0x51,0xDA,0x12,0xD5,0x59,0x3C,0x9A,0x23,0x6A,0xCD,0xE1,0x2D,0xBD,0x76,0x62,0x2A, + + 0x0A,0x33,0x5B,0x2C,0xBC,0x40,0xD1,0x5F,0x93,0x27,0xCE,0x3E,0x22,0xFA,0x08,0x13, + + 0x2C,0xAF,0x8E,0x9E,0x82,0x36,0xBB,0x12,0x4B,0x90,0xB0,0xCE,0xFD,0xF5,0xF1,0xB8, + + 0xC2,0xF2,0x9E,0xBC,0xF1,0xB1,0x77,0x15,0xCC,0x6E,0xA7,0x62,0x5D,0xBE,0x35,0xD4, + + 0xC7,0x7E,0xEB,0x3D,0x9D,0x40,0x69,0x4F,0x10,0x9D,0x43,0x80,0x5C,0xBE,0x5E,0xE2, + + 0x04,0xFD,0x84,0x43,0x91,0x2E,0x30,0xAA,0x41,0x20,0xAA,0xD7,0x3C,0xEB,0x98,0xA6, + + 0x07,0x20,0x3A,0x0B,0xFD,0x8E,0xB4,0xAB,0x40,0xC1,0x8C,0x3E,0xF0,0x0F,0xC1,0x20, + + 0x7B,0x40,0x41,0xB0,0xD7,0xF6,0xA6,0x5C,0xE4,0xBF,0x02,0x14,0xBC,0x20,0x32,0x6B, + + 0x22,0x66,0xBF,0x91,0xFF,0xBB,0xA6,0xAA,0x3E,0x02,0xFB,0x34,0xD0,0xC3,0x94,0xBA, + + 0x8D,0xF9,0x8A,0xBA,0xB1,0x29,0x7D,0x93,0xCE,0x49,0xE8,0xB4,0xA5,0x6B,0xCE,0x2F, + + 0xD9,0xFA,0xB0,0xD6,0x12,0xA2,0xC8,0x0F,0x16,0x4E,0xB8,0x35,0xA6,0x68,0x26,0x3F, + + 0x50,0x0E,0x8B,0x58,0xD3,0x2E,0xFD,0xFF,0x82,0xB9,0x65,0x95,0x8E,0x69,0xF2,0xCB, + + 0x74,0x46,0x72,0xB7,0x3F,0xDA,0x5F,0x6C,0x3D,0x47,0xD3,0x71,0x70,0x26,0x3D,0xEA, + + 0x63,0x07,0xDC,0x03,0x1C,0x66,0xCD,0x28,0x6C,0x93,0x25,0x19,0x5E,0x00,0x99,0x9C, + + 0x2D,0xCE,0x55,0x1C,0x9A,0x27,0x64,0x3E,0xA8,0xCA,0x0C,0x7B,0x9B,0x99,0x83,0x76, + + 0x8E,0x4B,0xE2,0xAD,0x4E,0x95,0x17,0xD9,0x7D,0x9B,0x4B,0x3C,0xB4,0xC7,0xCB,0x38, + + 0x5E,0x96,0x6B,0x22,0xBD,0x69,0x35,0xCA,0x45,0x46,0x93,0x4E,0xFD,0x96,0xEE,0x33, + + 0xD4,0xF3,0xBA,0x68,0x9F,0x0B,0x56,0x74,0xB3,0xD4,0x12,0x39,0xFC,0x20,0xE7,0x27, + + 0x96,0x51,0xED,0xA1,0x57,0x63,0x5A,0x79,0x1B,0x0F,0x20,0x3A,0x59,0x21,0x78,0xD7, + + 0x7D,0x4F,0x1C,0x5C,0x9C,0x0E,0x0B,0x78,0x92,0xF9,0x52,0x1F,0xE9,0xDA,0xF0,0x17, + + 0xE0,0x3E,0xBB,0x1B,0x39,0xD1,0x5F,0x2A,0x3E,0x46,0xDA,0x8E,0xAE,0x74,0xAF,0x04, + + 0x2B,0xE6,0xDE,0xC1,0x4C,0x72,0x2C,0x5B,0xED,0xAD,0x23,0xA5,0xFD,0x7C,0xE7,0xB4, + + 0xAE,0x13,0xD6,0x83,0x4D,0x73,0x67,0xF7,0x98,0xD7,0x5C,0x01,0xCD,0x33,0x03,0x59, + + 0xB8,0x16,0x15,0x11,0x11,0xED,0x72,0x5A,0x15,0xC4,0xFD,0x21,0x9E,0xB8,0xBA,0x90, + + 0x2C,0x1F,0x1D,0x2E,0x44,0x3C,0xF5,0xCB,0x23,0x53,0x4B,0xE8,0x9A,0x07,0xFC,0x33, + + 0x21,0x04,0x44,0x01,0x01,0x76,0xC4,0xA2,0xC3,0x58,0x56,0x60,0x39,0x10,0x4D,0xB6, + + 0xC8,0x5F,0xC4,0x7B,0xD2,0x3A,0xFC,0xB2,0xE0,0xFE,0xBE,0xFC,0x72,0x65,0xFD,0x32, + + 0xA9,0x0D,0x8B,0x35,0x96,0x30,0x2D,0xA3,0x6E,0x5A,0x8C,0xC6,0x17,0x18,0x4C,0xB7, + + 0x48,0x7D,0xAD,0x95,0x05,0x3A,0x35,0x71,0xE5,0x34,0x1D,0xDD,0xF3,0x35,0x6E,0x0C, + + 0x46,0x0C,0xDC,0x48,0x44,0x7A,0x1E,0xDB,0xEA,0x94,0x16,0x6A,0xEA,0x7B,0xB8,0x69, + + 0xC1,0x49,0xD4,0x0A,0x45,0x7B,0xA1,0x5A,0x4D,0x75,0xF6,0x7E,0xFF,0x8C,0x3D,0x7A, + + 0x4C,0xB5,0x17,0xAC,0x19,0xE5,0xAF,0xD7,0x4B,0x3F,0x74,0x56,0x87,0x7A,0xCF,0x2C, + + 0x73,0x18,0x1F,0xCE,0x4C,0x34,0x9E,0xFA,0xF1,0x77,0x0F,0xCE,0x8C,0x17,0xD6,0xD6, + + 0x0C,0xE8,0x8C,0x32,0x99,0x31,0x28,0x2A,0xE9,0x52,0xD9,0x57,0xFD,0xFD,0x91,0xF8, + + 0x2D,0x3D,0xC6,0x76,0xCE,0x32,0x26,0x3A,0xCA,0x1E,0x8E,0xF0,0x6B,0xF6,0x93,0x4D, + + 0xE9,0x52,0x8D,0xD0,0x19,0x38,0xF7,0x2B,0x66,0x50,0x47,0x6F,0xD8,0x6C,0x6E,0xE6, + + 0x8D,0x5D,0x7B,0xA2,0x18,0x7E,0x3F,0xB9,0x45,0xD2,0xEA,0x1F,0x57,0xF4,0x58,0x25, + + 0xFD,0x8F,0xE7,0x8C,0x35,0x42,0x4F,0x5D,0xC9,0x76,0x70,0x07,0xA5,0xA2,0x84,0x81, + + 0x1E,0x8B,0xF1,0xB9,0xB0,0x50,0xBA,0x5D,0x26,0x20,0x41,0x4C,0xF6,0x84,0xB1,0x71, + + 0x3F,0xBF,0xF8,0x40,0x31,0x5D,0x39,0x33,0x90,0x15,0x21,0x91,0xD2,0xC3,0x6A,0xE3, + + 0x9A,0xB2,0x51,0x71,0x1A,0x25,0xAA,0xC0,0x41,0x4E,0x86,0xD5,0x28,0xA1,0x44,0xB3, + + 0x32,0x88,0x19,0x80,0xB4,0xE1,0xF4,0x9F,0xB9,0x85,0x92,0x90,0xD3,0xA4,0x4E,0x3A, + + 0x4E,0x21,0x98,0x76,0x31,0x68,0x7C,0x35,0xC6,0xCB,0x31,0x74,0x3C,0x9F,0x3E,0xC3, + + 0xF5,0xF1,0x93,0xC1,0xB0,0xEA,0xE1,0xA4,0xC4,0x33,0x19,0x77,0xF2,0x4D,0x74,0x07, + + 0x7B,0xD6,0x79,0xD3,0xD4,0xEF,0xB9,0xC6,0x80,0x85,0xF9,0x9F,0xB0,0x6C,0xE2,0x2B, + + 0x9C,0x85,0xE0,0x4E,0x4C,0xAE,0x60,0x7C,0xA7,0xAC,0xA6,0xF0,0x5A,0xA9,0x85,0x60, + + 0xD0,0x35,0xAE,0xFC,0x39,0x24,0x70,0x7E,0xCF,0x05,0x81,0xDC,0xF1,0x54,0x58,0xF9, + + 0xAD,0x5A,0xAF,0x08,0x3D,0x22,0x0B,0xD4,0xE8,0x88,0x41,0xAB,0xF8,0x9B,0x16,0x40, + + 0x8B,0xB3,0xF2,0xB0,0x3A,0xEA,0x83,0x59,0x3E,0xAE,0xC3,0x1B,0x52,0xE9,0xD1,0x63, + + 0x0A,0x14,0x82,0x18,0xBB,0x71,0xA4,0x3B,0x25,0xB8,0x2D,0x88,0x4E,0x67,0x50,0xFF, + + 0xB0,0x26,0x2A,0x12,0xD5,0xA4,0x99,0x81,0x30,0xCD,0xB4,0x98,0x6C,0x05,0x2F,0x6D, + + 0x9A,0xE9,0x9B,0x68,0x63,0xA1,0xF3,0xAD,0x5C,0xCD,0x0C,0x89,0x3F,0xF5,0xE4,0x5B, + + 0xBC,0x4F,0x6F,0xE0,0x93,0xCF,0x13,0xB9,0x49,0x3A,0x03,0x5B,0xEC,0xCA,0xC7,0x79, + + 0xD8,0x67,0x34,0x04,0xBC,0x68,0x36,0xA1,0x27,0xD0,0xD2,0xDB,0x75,0x90,0x1F,0x28, + + 0xA6,0x9F,0x6C,0x46,0x96,0xB7,0x10,0x22,0xEC,0x83,0x70,0x65,0x73,0x5B,0x96,0x3D, + + 0x5C,0x25,0x9D,0xD7,0x34,0xBD,0x19,0x2A,0x6D,0x60,0xE5,0xAF,0xA0,0xB0,0xCD,0xAC, + + 0x81,0x3E,0x89,0xCB,0x14,0xBA,0xB5,0xFC,0x86,0xD3,0x5D,0x33,0xF8,0xD2,0x60,0xD9, + + 0xDA,0xF7,0xDE,0x38,0xC3,0x35,0x0C,0x60,0x67,0x93,0xC4,0x04,0x52,0x7F,0xA0,0x56, + + 0x23,0x5F,0x3C,0x2C,0xCE,0x3C,0x44,0x22,0x3B,0x5D,0xEC,0x14,0x53,0xF3,0xA5,0x13, + + 0x10,0xD4,0xF6,0x3C,0x57,0x35,0x4D,0xB3,0xEE,0xD9,0xC0,0x05,0x5A,0x7D,0xBE,0x23, + + 0x02,0x66,0x69,0x24,0x33,0x23,0x4D,0x11,0x65,0xDF,0xF5,0xC0,0x56,0x28,0xB9,0x65, + + 0xD5,0xE9,0xA5,0xFD,0x1F,0xD6,0x36,0xEE,0xF1,0x93,0x76,0x7F,0x15,0xBF,0x91,0xDD, + + 0xB3,0xC4,0x6E,0x4A,0x7D,0xBD,0x62,0xBA,0xE4,0x7A,0xB8,0xC2,0x59,0xF4,0xDA,0xF9, + + 0x82,0xC5,0xC5,0xFF,0xBF,0x1A,0x37,0xAB,0xE5,0xA6,0x36,0x8F,0xEC,0xBA,0x35,0x99, + + 0x1E,0x10,0x14,0x9B,0xB2,0xBD,0x3F,0x7C,0xEF,0x2E,0xA9,0xDD,0x06,0x76,0x18,0xCC, + + 0xCF,0x1F,0x42,0xB1,0x9D,0x6C,0x06,0x94,0xCD,0xB9,0x96,0xAE,0x92,0xF1,0x95,0x2A, + + 0x82,0x6C,0x8E,0x9F,0xC6,0xB0,0x76,0x4D,0x8E,0xD2,0xF6,0xFB,0xF0,0xF9,0x4A,0x38, + + 0x22,0x93,0x14,0x4F,0x03,0xFF,0xC8,0x09,0xCA,0xD8,0x5B,0x71,0x73,0x08,0x11,0xDD, + + 0x4E,0x1C,0xA5,0x21,0x1C,0xDA,0x1F,0xBB,0x09,0xD2,0xFB,0xB8,0xFC,0xF0,0x90,0x82, + + 0x05,0x5A,0xD9,0x20,0x9F,0x22,0x80,0x52,0xBF,0xCB,0x94,0xC6,0x74,0xFB,0xC2,0xF2, + + 0x83,0x49,0xE0,0x14,0x7A,0xC5,0x4C,0x52,0xB6,0x2D,0x85,0x1A,0x60,0x9A,0x3B,0xE3, + + 0x02,0x4A,0x36,0x04,0x1D,0x2E,0xE9,0x1C,0xC6,0x51,0xB5,0xDC,0x51,0x17,0x29,0x73, + + 0xC2,0xF8,0x8D,0x15,0x12,0x2D,0xDD,0xD3,0x9D,0xB4,0xF8,0xC9,0x4D,0x23,0x19,0xD9, + + 0xA5,0x45,0xC0,0x44,0x12,0x24,0x50,0x60,0x42,0x44,0xD0,0x64,0x52,0x64,0xB7,0x22, + + 0xA0,0xF8,0xC8,0x54,0x13,0x25,0x58,0x70,0x43,0x45,0xD8,0x74,0x53,0x65,0x21,0x01, + + 0x2C,0x0B,0xC1,0x45,0x92,0x26,0x51,0x61,0xC2,0x46,0xD1,0x65,0xD2,0x66,0x31,0x75, + + 0x85,0x15,0xC9,0x55,0x93,0x27,0x59,0x71,0xC3,0x47,0xD9,0x75,0xD3,0x67,0x7A,0x2F, + + 0xA9,0x82,0x62,0x33,0x3C,0x44,0x93,0xCB,0x4C,0xB0,0xDA,0xD7,0xDA,0x20,0xC6,0x2F, + + 0x76,0x0B,0xAD,0x8A,0x5B,0x8D,0x20,0xC2,0x94,0xD4,0x4A,0x78,0xFA,0x0C,0xF8,0xEB, + + 0xAC,0x48,0xDE,0x12,0x75,0x31,0x36,0x77,0x35,0x96,0x33,0x5F,0x7B,0x6C,0xD0,0xB6, + + 0x8F,0xFB,0x14,0xFF,0x79,0x94,0xB4,0x62,0x3C,0xF7,0xE3,0x39,0x92,0xEA,0x42,0x68, + + 0x5E,0x6C,0xC2,0x4C,0x1A,0x2C,0x52,0x68,0x4A,0x4C,0xD2,0x6C,0x5A,0x6C,0xED,0xFC, + + 0x0D,0x87,0xCA,0x5C,0x1B,0x2D,0x5A,0x78,0x4B,0x4D,0xDA,0x7C,0x5B,0x6D,0x83,0x88, + + 0xA3,0x4F,0xC3,0x4D,0x9A,0x2E,0x53,0x69,0xCA,0x4E,0xD3,0x6D,0xDA,0x6E,0x60,0x66, + + 0xAD,0x4F,0xCB,0x5D,0x9B,0x2F,0x5B,0x79,0xCB,0x4F,0xDB,0x7D,0xDB,0x6F,0x5F,0xA4, + + 0xAF,0x12,0x24,0x77,0xBC,0x8D,0x60,0x84,0xE7,0xF7,0x54,0xE8,0xB4,0x7D,0x04,0xA6, + + 0x80,0xBE,0x43,0x64,0x3D,0x3E,0xCE,0xF6,0xCB,0x10,0x0C,0x73,0x98,0x0B,0xB2,0x80, + + 0x2D,0x14,0xFD,0xA1,0x32,0x7A,0xBD,0x07,0xE6,0x98,0x6E,0x82,0x51,0x8D,0x9E,0x82, + + 0x7E,0xE2,0x4D,0x80,0x30,0x35,0xA2,0x80,0x40,0xF2,0xFB,0xD8,0x92,0x77,0x9B,0xD0, + + 0x24,0x9E,0xC4,0xC4,0x32,0x34,0x54,0xE0,0x62,0x54,0xD4,0xE4,0x72,0x74,0xCA,0x23, + + 0x50,0x54,0xCC,0xD4,0x33,0x35,0x5C,0xF0,0x63,0x55,0xDC,0xF4,0x73,0x75,0xB4,0xE5, + + 0x5F,0x97,0xC5,0xC5,0xB2,0x36,0x55,0xE1,0xE2,0x56,0xD5,0xE5,0xF2,0x76,0x4D,0xD1, + + 0xA3,0x17,0xCD,0xD5,0xB3,0x37,0x5D,0xF1,0xE3,0x57,0xDD,0xF5,0xF3,0x77,0xE6,0xB7, + + 0xDC,0xC9,0x0E,0x8B,0x5B,0xB8,0x2E,0x98,0x77,0x1A,0xEF,0xDD,0x6F,0x6E,0x75,0x01, + + 0xD4,0xA8,0x15,0x74,0xE1,0xF6,0x43,0x50,0x32,0x19,0xC4,0xB9,0xDA,0x7F,0xB0,0xB4, + + 0x8C,0x97,0xFF,0xA9,0x59,0x95,0x50,0x17,0xEE,0xDA,0x07,0x2F,0xF9,0x02,0x71,0x9F, + + 0x48,0xC8,0xEF,0xDD,0x07,0x34,0x1D,0x9A,0xEF,0x51,0x97,0xF1,0x18,0x74,0x46,0xC8, + + 0x2A,0x1C,0xC6,0xCC,0x3A,0x3C,0x56,0xE8,0x6A,0x5C,0xD6,0xEC,0x7A,0x7C,0x4E,0xD8, + + 0x2B,0x1D,0xCE,0xDC,0x3B,0x3D,0x5E,0xF8,0x6B,0x5D,0xDE,0xFC,0x7B,0x7D,0x47,0xC9, + + 0xAA,0x1E,0xC7,0xCD,0xBA,0x3E,0x57,0xE9,0xEA,0x5E,0xD7,0xED,0xFA,0x7E,0x4F,0xD9, + + 0xAB,0x1F,0xCF,0xDD,0xBB,0x3F,0x5F,0xF9,0xEB,0x5F,0xDF,0xFD,0xFB,0x7F,0xA6,0x86, + + 0x6C,0x0B,0x60,0xC6,0x69,0xE1,0xF0,0xF3,0x2E,0x50,0x0F,0xE1,0x8E,0xE8,0xA9,0xEA, + + 0x01,0xB2,0x28,0xF4,0x97,0xE2,0x06,0x4F,0xC8,0x47,0x28,0x71,0xAC,0x17,0x71,0x97, + + 0x88,0xC0,0xC1,0x43,0xEF,0x29,0x42,0x0E,0x6B,0x83,0xB3,0x58,0x0E,0x1D,0x3F,0x97, + + 0x8A,0x2D,0xA3,0x93,0xD5,0x0F,0x3F,0xF3,0xC9,0x4E,0x46,0x13,0x09,0xA7,0xE9,0x47, + + 0x83,0x75,0xE0,0x46,0x16,0xA4,0x70,0x62,0x46,0xC4,0xF0,0x66,0x56,0xE4,0x31,0x9C, + + 0xA0,0xC4,0xE8,0x56,0x17,0xA5,0x78,0x72,0x47,0xC5,0xF8,0x76,0x57,0xE5,0xCD,0xB3, + + 0x96,0x70,0xE1,0x47,0x96,0xA6,0x71,0x63,0xC6,0xC6,0xF1,0x67,0xD6,0xE6,0x39,0x63, + + 0xC3,0xC5,0xE9,0x57,0x97,0xA7,0x79,0x73,0xC7,0xC7,0xF9,0x77,0xD7,0xE7,0xD2,0x06, + + 0xE5,0x51,0xE4,0xDF,0x57,0x02,0x12,0x3E,0xA5,0x31,0x11,0x29,0xE1,0xE1,0xEA,0x57, + + 0xCC,0xCB,0x05,0x6C,0x61,0x56,0xC5,0x1E,0x4B,0xE9,0x0E,0x3C,0xB2,0xA8,0x7B,0x06, + + 0xC6,0x53,0x33,0x50,0xFD,0xCA,0x21,0xC4,0x41,0xA8,0x31,0xA2,0x25,0xE5,0x65,0x9D, + + 0x8B,0x78,0x91,0xAF,0xBB,0x5F,0x1C,0x7D,0x6F,0x85,0xE2,0x31,0x9B,0x26,0x64,0xC7, + + 0x08,0x24,0xE2,0x4E,0x1E,0xAC,0x72,0x6A,0x4E,0xCC,0xF2,0x6E,0x5E,0xEC,0xB5,0x4E, + + 0x09,0x07,0xEA,0x5E,0x1F,0xAD,0x7A,0x7A,0x4F,0xCD,0xFA,0x7E,0x5F,0xED,0x09,0x6F, + + 0x0B,0xA9,0xE3,0x4F,0x9E,0xAE,0x73,0x6B,0xCE,0xCE,0xF3,0x6F,0xDE,0xEE,0x9A,0x7F, + + 0x0A,0xA8,0xEB,0x5F,0x9F,0xAF,0x7B,0x7B,0xCF,0xCF,0xFB,0x7F,0xDF,0xEF,0x5A,0x85, + + 0x85,0x01,0xA6,0x64,0xB3,0xE5,0xC2,0x26,0x71,0x76,0x24,0x24,0xA9,0x7F,0x83,0xE8, + + 0xF8,0xD0,0x96,0x74,0x17,0x4E,0x65,0x0D,0x6D,0xB1,0x61,0xB7,0x71,0x09,0x5E,0xF8, + + 0x87,0xBD,0x35,0x05,0x96,0xD2,0x6D,0xA6,0xE0,0xB8,0x8F,0x45,0x68,0x18,0x74,0x9D, + + 0x40,0xFF,0xD2,0x15,0x97,0xD3,0xFD,0x62,0x86,0x92,0x21,0x35,0x28,0x7C,0x64,0xC2, + + 0x26,0x94,0xE4,0xC6,0x36,0xB4,0x74,0xE2,0x66,0xD4,0xF4,0xE6,0x76,0xF4,0x6C,0xD2, + + 0x27,0x95,0xEC,0xD6,0x37,0xB5,0x7C,0xF2,0x67,0xD5,0xFC,0xF6,0x77,0xF5,0x65,0xC3, + + 0xA6,0x96,0xE5,0xC7,0xB6,0xB6,0x75,0xE3,0xE6,0xD6,0xF5,0xE7,0xF6,0xF6,0x6D,0xD3, + + 0xA7,0x97,0xED,0xD7,0xB7,0xB7,0x7D,0xF3,0xE7,0xD7,0xFD,0xF7,0xF7,0xF7,0x44,0x16, + + 0x2F,0x08,0xFC,0x8F,0x9F,0xF9,0xF6,0x6A,0x82,0x9A,0xEC,0xAF,0xDF,0x5C,0xEE,0xD6, + + 0xE9,0x44,0xE4,0x65,0x9E,0xBF,0xC9,0xBF,0x61,0x99,0x22,0xCC,0x4E,0x29,0x7E,0x85, + + 0x49,0x5A,0xC7,0xCE,0x49,0xB7,0xBE,0x38,0xCD,0xBA,0xFF,0x7A,0xF8,0x02,0x57,0xBC, + + 0x50,0x94,0xA3,0xE4,0x1C,0x33,0x71,0x4B,0xEB,0xB1,0x47,0x57,0x29,0x34,0x66,0xCA, + + 0x2E,0x9C,0xE6,0xCE,0x3E,0xBC,0x76,0xEA,0x6E,0xDC,0xF6,0xEE,0x7E,0xFC,0x6E,0xDA, + + 0x2F,0x9D,0xEE,0xDE,0x3F,0xBD,0x7E,0xFA,0x6F,0xDD,0xFE,0xFE,0x7F,0xFD,0x67,0xCB, + + 0xAE,0x9E,0xE7,0xCF,0xBE,0xBE,0x77,0xEB,0xEE,0xDE,0xF7,0xEF,0xFE,0xFE,0x6F,0xDB, + + 0xAF,0x9F,0xEF,0xDF,0xBF,0xBF,0x7F,0xFB,0xEF,0xDF,0xFF,0xFF,0xFF,0xFF,0x00,0x00, + + 0x00,0x00,0x80,0x04,0x10,0x20,0x10,0x20,0x40,0x40,0x90,0x24,0x50,0x60,0x08,0x10, + + 0x01,0x01,0x88,0x14,0x11,0x21,0x18,0x30,0x41,0x41,0x98,0x34,0x51,0x61,0x01,0x01, + + 0x80,0x02,0x81,0x05,0x90,0x22,0x11,0x21,0xC0,0x42,0x91,0x25,0xD0,0x62,0x09,0x11, + + 0x81,0x03,0x89,0x15,0x91,0x23,0x19,0x31,0xC1,0x43,0x99,0x35,0xD1,0x63,0x40,0x40, + + 0x02,0x04,0xC0,0x44,0x12,0x24,0x50,0x60,0x42,0x44,0xD0,0x64,0x52,0x64,0x48,0x50, + + 0x03,0x05,0xC8,0x54,0x13,0x25,0x58,0x70,0x43,0x45,0xD8,0x74,0x53,0x65,0x41,0x41, + + 0x82,0x06,0xC1,0x45,0x92,0x26,0x51,0x61,0xC2,0x46,0xD1,0x65,0xD2,0x66,0x49,0x51, + + 0x83,0x07,0xC9,0x55,0x93,0x27,0x59,0x71,0xC3,0x47,0xD9,0x75,0xD3,0x67,0x02,0x08, + + 0x08,0x08,0x82,0x0C,0x18,0x28,0x12,0x28,0x48,0x48,0x92,0x2C,0x58,0x68,0x0A,0x18, + + 0x09,0x09,0x8A,0x1C,0x19,0x29,0x1A,0x38,0x49,0x49,0x9A,0x3C,0x59,0x69,0x03,0x09, + + 0x88,0x0A,0x83,0x0D,0x98,0x2A,0x13,0x29,0xC8,0x4A,0x93,0x2D,0xD8,0x6A,0x0B,0x19, + + 0x89,0x0B,0x8B,0x1D,0x99,0x2B,0x1B,0x39,0xC9,0x4B,0x9B,0x3D,0xD9,0x6B,0x42,0x48, + + 0x0A,0x0C,0xC2,0x4C,0x1A,0x2C,0x52,0x68,0x4A,0x4C,0xD2,0x6C,0x5A,0x6C,0x4A,0x58, + + 0x0B,0x0D,0xCA,0x5C,0x1B,0x2D,0x5A,0x78,0x4B,0x4D,0xDA,0x7C,0x5B,0x6D,0x43,0x49, + + 0x8A,0x0E,0xC3,0x4D,0x9A,0x2E,0x53,0x69,0xCA,0x4E,0xD3,0x6D,0xDA,0x6E,0x4B,0x59, + + 0x8B,0x0F,0xCB,0x5D,0x9B,0x2F,0x5B,0x79,0xCB,0x4F,0xDB,0x7D,0xDB,0x6F,0x04,0x80, + + 0x20,0x10,0x84,0x84,0x30,0x30,0x14,0xA0,0x60,0x50,0x94,0xA4,0x70,0x70,0x0C,0x90, + + 0x21,0x11,0x8C,0x94,0x31,0x31,0x1C,0xB0,0x61,0x51,0x9C,0xB4,0x71,0x71,0x05,0x81, + + 0xA0,0x12,0x85,0x85,0xB0,0x32,0x15,0xA1,0xE0,0x52,0x95,0xA5,0xF0,0x72,0x0D,0x91, + + 0xA1,0x13,0x8D,0x95,0xB1,0x33,0x1D,0xB1,0xE1,0x53,0x9D,0xB5,0xF1,0x73,0x44,0xC0, + + 0x22,0x14,0xC4,0xC4,0x32,0x34,0x54,0xE0,0x62,0x54,0xD4,0xE4,0x72,0x74,0x4C,0xD0, + + 0x23,0x15,0xCC,0xD4,0x33,0x35,0x5C,0xF0,0x63,0x55,0xDC,0xF4,0x73,0x75,0x45,0xC1, + + 0xA2,0x16,0xC5,0xC5,0xB2,0x36,0x55,0xE1,0xE2,0x56,0xD5,0xE5,0xF2,0x76,0x4D,0xD1, + + 0xA3,0x17,0xCD,0xD5,0xB3,0x37,0x5D,0xF1,0xE3,0x57,0xDD,0xF5,0xF3,0x77,0x06,0x88, + + 0x28,0x18,0x86,0x8C,0x38,0x38,0x16,0xA8,0x68,0x58,0x96,0xAC,0x78,0x78,0x0E,0x98, + + 0x29,0x19,0x8E,0x9C,0x39,0x39,0x1E,0xB8,0x69,0x59,0x9E,0xBC,0x79,0x79,0x07,0x89, + + 0xA8,0x1A,0x87,0x8D,0xB8,0x3A,0x17,0xA9,0xE8,0x5A,0x97,0xAD,0xF8,0x7A,0x0F,0x99, + + 0xA9,0x1B,0x8F,0x9D,0xB9,0x3B,0x1F,0xB9,0xE9,0x5B,0x9F,0xBD,0xF9,0x7B,0x46,0xC8, + + 0x2A,0x1C,0xC6,0xCC,0x3A,0x3C,0x56,0xE8,0x6A,0x5C,0xD6,0xEC,0x7A,0x7C,0x4E,0xD8, + + 0x2B,0x1D,0xCE,0xDC,0x3B,0x3D,0x5E,0xF8,0x6B,0x5D,0xDE,0xFC,0x7B,0x7D,0x47,0xC9, + + 0xAA,0x1E,0xC7,0xCD,0xBA,0x3E,0x57,0xE9,0xEA,0x5E,0xD7,0xED,0xFA,0x7E,0x4F,0xD9, + + 0xAB,0x1F,0xCF,0xDD,0xBB,0x3F,0x5F,0xF9,0xEB,0x5F,0xDF,0xFD,0xFB,0x7F,0x20,0x02, + + 0x04,0x80,0xA0,0x06,0x14,0xA0,0x30,0x22,0x44,0xC0,0xB0,0x26,0x54,0xE0,0x28,0x12, + + 0x05,0x81,0xA8,0x16,0x15,0xA1,0x38,0x32,0x45,0xC1,0xB8,0x36,0x55,0xE1,0x21,0x03, + + 0x84,0x82,0xA1,0x07,0x94,0xA2,0x31,0x23,0xC4,0xC2,0xB1,0x27,0xD4,0xE2,0x29,0x13, + + 0x85,0x83,0xA9,0x17,0x95,0xA3,0x39,0x33,0xC5,0xC3,0xB9,0x37,0xD5,0xE3,0x60,0x42, + + 0x06,0x84,0xE0,0x46,0x16,0xA4,0x70,0x62,0x46,0xC4,0xF0,0x66,0x56,0xE4,0x68,0x52, + + 0x07,0x85,0xE8,0x56,0x17,0xA5,0x78,0x72,0x47,0xC5,0xF8,0x76,0x57,0xE5,0x61,0x43, + + 0x86,0x86,0xE1,0x47,0x96,0xA6,0x71,0x63,0xC6,0xC6,0xF1,0x67,0xD6,0xE6,0x69,0x53, + + 0x87,0x87,0xE9,0x57,0x97,0xA7,0x79,0x73,0xC7,0xC7,0xF9,0x77,0xD7,0xE7,0x22,0x0A, + + 0x0C,0x88,0xA2,0x0E,0x1C,0xA8,0x32,0x2A,0x4C,0xC8,0xB2,0x2E,0x5C,0xE8,0x2A,0x1A, + + 0x0D,0x89,0xAA,0x1E,0x1D,0xA9,0x3A,0x3A,0x4D,0xC9,0xBA,0x3E,0x5D,0xE9,0x23,0x0B, + + 0x8C,0x8A,0xA3,0x0F,0x9C,0xAA,0x33,0x2B,0xCC,0xCA,0xB3,0x2F,0xDC,0xEA,0x2B,0x1B, + + 0x8D,0x8B,0xAB,0x1F,0x9D,0xAB,0x3B,0x3B,0xCD,0xCB,0xBB,0x3F,0xDD,0xEB,0x62,0x4A, + + 0x0E,0x8C,0xE2,0x4E,0x1E,0xAC,0x72,0x6A,0x4E,0xCC,0xF2,0x6E,0x5E,0xEC,0x6A,0x5A, + + 0x0F,0x8D,0xEA,0x5E,0x1F,0xAD,0x7A,0x7A,0x4F,0xCD,0xFA,0x7E,0x5F,0xED,0x63,0x4B, + + 0x8E,0x8E,0xE3,0x4F,0x9E,0xAE,0x73,0x6B,0xCE,0xCE,0xF3,0x6F,0xDE,0xEE,0x6B,0x5B, + + 0x8F,0x8F,0xEB,0x5F,0x9F,0xAF,0x7B,0x7B,0xCF,0xCF,0xFB,0x7F,0xDF,0xEF,0x24,0x82, + + 0x24,0x90,0xA4,0x86,0x34,0xB0,0x34,0xA2,0x64,0xD0,0xB4,0xA6,0x74,0xF0,0x2C,0x92, + + 0x25,0x91,0xAC,0x96,0x35,0xB1,0x3C,0xB2,0x65,0xD1,0xBC,0xB6,0x75,0xF1,0x25,0x83, + + 0xA4,0x92,0xA5,0x87,0xB4,0xB2,0x35,0xA3,0xE4,0xD2,0xB5,0xA7,0xF4,0xF2,0x2D,0x93, + + 0xA5,0x93,0xAD,0x97,0xB5,0xB3,0x3D,0xB3,0xE5,0xD3,0xBD,0xB7,0xF5,0xF3,0x64,0xC2, + + 0x26,0x94,0xE4,0xC6,0x36,0xB4,0x74,0xE2,0x66,0xD4,0xF4,0xE6,0x76,0xF4,0x6C,0xD2, + + 0x27,0x95,0xEC,0xD6,0x37,0xB5,0x7C,0xF2,0x67,0xD5,0xFC,0xF6,0x77,0xF5,0x65,0xC3, + + 0xA6,0x96,0xE5,0xC7,0xB6,0xB6,0x75,0xE3,0xE6,0xD6,0xF5,0xE7,0xF6,0xF6,0x6D,0xD3, + + 0xA7,0x97,0xED,0xD7,0xB7,0xB7,0x7D,0xF3,0xE7,0xD7,0xFD,0xF7,0xF7,0xF7,0x26,0x8A, + + 0x2C,0x98,0xA6,0x8E,0x3C,0xB8,0x36,0xAA,0x6C,0xD8,0xB6,0xAE,0x7C,0xF8,0x2E,0x9A, + + 0x2D,0x99,0xAE,0x9E,0x3D,0xB9,0x3E,0xBA,0x6D,0xD9,0xBE,0xBE,0x7D,0xF9,0x27,0x8B, + + 0xAC,0x9A,0xA7,0x8F,0xBC,0xBA,0x37,0xAB,0xEC,0xDA,0xB7,0xAF,0xFC,0xFA,0x2F,0x9B, + + 0xAD,0x9B,0xAF,0x9F,0xBD,0xBB,0x3F,0xBB,0xED,0xDB,0xBF,0xBF,0xFD,0xFB,0x66,0xCA, + + 0x2E,0x9C,0xE6,0xCE,0x3E,0xBC,0x76,0xEA,0x6E,0xDC,0xF6,0xEE,0x7E,0xFC,0x6E,0xDA, + + 0x2F,0x9D,0xEE,0xDE,0x3F,0xBD,0x7E,0xFA,0x6F,0xDD,0xFE,0xFE,0x7F,0xFD,0x67,0xCB, + + 0xAE,0x9E,0xE7,0xCF,0xBE,0xBE,0x77,0xEB,0xEE,0xDE,0xF7,0xEF,0xFE,0xFE,0x6F,0xDB, + + 0xAF,0x9F,0xEF,0xDF,0xBF,0xBF,0x7F,0xFB,0xEF,0xDF,0xFF,0xFF,0xFF,0xFF,0x00,0x00, + + 0x00,0x00,0x80,0x04,0x10,0x20,0x10,0x20,0x40,0x40,0x90,0x24,0x50,0x60,0x08,0x10, + + 0x01,0x01,0x88,0x14,0x11,0x21,0x18,0x30,0x41,0x41,0x98,0x34,0x51,0x61,0x01,0x01, + + 0x80,0x02,0x81,0x05,0x90,0x22,0x11,0x21,0xC0,0x42,0x91,0x25,0xD0,0x62,0x09,0x11, + + 0x81,0x03,0x89,0x15,0x91,0x23,0x19,0x31,0xC1,0x43,0x99,0x35,0xD1,0x63,0x40,0x40, + + 0x02,0x04,0xC0,0x44,0x12,0x24,0x50,0x60,0x42,0x44,0xD0,0x64,0x52,0x64,0x48,0x50, + + 0x03,0x05,0xC8,0x54,0x13,0x25,0x58,0x70,0x43,0x45,0xD8,0x74,0x53,0x65,0x41,0x41, + + 0x82,0x06,0xC1,0x45,0x92,0x26,0x51,0x61,0xC2,0x46,0xD1,0x65,0xD2,0x66,0x49,0x51, + + 0x83,0x07,0xC9,0x55,0x93,0x27,0x59,0x71,0xC3,0x47,0xD9,0x75,0xD3,0x67,0x02,0x08, + + 0x08,0x08,0x82,0x0C,0x18,0x28,0x12,0x28,0x48,0x48,0x92,0x2C,0x58,0x68,0x0A,0x18, + + 0x09,0x09,0x8A,0x1C,0x19,0x29,0x1A,0x38,0x49,0x49,0x9A,0x3C,0x59,0x69,0x03,0x09, + + 0x88,0x0A,0x83,0x0D,0x98,0x2A,0x13,0x29,0xC8,0x4A,0x93,0x2D,0xD8,0x6A,0x0B,0x19, + + 0x89,0x0B,0x8B,0x1D,0x99,0x2B,0x1B,0x39,0xC9,0x4B,0x9B,0x3D,0xD9,0x6B,0x42,0x48, + + 0x0A,0x0C,0xC2,0x4C,0x1A,0x2C,0x52,0x68,0x4A,0x4C,0xD2,0x6C,0x5A,0x6C,0x4A,0x58, + + 0x0B,0x0D,0xCA,0x5C,0x1B,0x2D,0x5A,0x78,0x4B,0x4D,0xDA,0x7C,0x5B,0x6D,0x43,0x49, + + 0x8A,0x0E,0xC3,0x4D,0x9A,0x2E,0x53,0x69,0xCA,0x4E,0xD3,0x6D,0xDA,0x6E,0x4B,0x59, + + 0x8B,0x0F,0xCB,0x5D,0x9B,0x2F,0x5B,0x79,0xCB,0x4F,0xDB,0x7D,0xDB,0x6F,0x04,0x80, + + 0x20,0x10,0x84,0x84,0x30,0x30,0x14,0xA0,0x60,0x50,0x94,0xA4,0x70,0x70,0x0C,0x90, + + 0x21,0x11,0x8C,0x94,0x31,0x31,0x1C,0xB0,0x61,0x51,0x9C,0xB4,0x71,0x71,0x05,0x81, + + 0xA0,0x12,0x85,0x85,0xB0,0x32,0x15,0xA1,0xE0,0x52,0x95,0xA5,0xF0,0x72,0x0D,0x91, + + 0xA1,0x13,0x8D,0x95,0xB1,0x33,0x1D,0xB1,0xE1,0x53,0x9D,0xB5,0xF1,0x73,0x44,0xC0, + + 0x22,0x14,0xC4,0xC4,0x32,0x34,0x54,0xE0,0x62,0x54,0xD4,0xE4,0x72,0x74,0x4C,0xD0, + + 0x23,0x15,0xCC,0xD4,0x33,0x35,0x5C,0xF0,0x63,0x55,0xDC,0xF4,0x73,0x75,0x45,0xC1, + + 0xA2,0x16,0xC5,0xC5,0xB2,0x36,0x55,0xE1,0xE2,0x56,0xD5,0xE5,0xF2,0x76,0x4D,0xD1, + + 0xA3,0x17,0xCD,0xD5,0xB3,0x37,0x5D,0xF1,0xE3,0x57,0xDD,0xF5,0xF3,0x77,0x06,0x88, + + 0x28,0x18,0x86,0x8C,0x38,0x38,0x16,0xA8,0x68,0x58,0x96,0xAC,0x78,0x78,0x0E,0x98, + + 0x29,0x19,0x8E,0x9C,0x39,0x39,0x1E,0xB8,0x69,0x59,0x9E,0xBC,0x79,0x79,0x07,0x89, + + 0xA8,0x1A,0x87,0x8D,0xB8,0x3A,0x17,0xA9,0xE8,0x5A,0x97,0xAD,0xF8,0x7A,0x0F,0x99, + + 0xA9,0x1B,0x8F,0x9D,0xB9,0x3B,0x1F,0xB9,0xE9,0x5B,0x9F,0xBD,0xF9,0x7B,0x46,0xC8, + + 0x2A,0x1C,0xC6,0xCC,0x3A,0x3C,0x56,0xE8,0x6A,0x5C,0xD6,0xEC,0x7A,0x7C,0x4E,0xD8, + + 0x2B,0x1D,0xCE,0xDC,0x3B,0x3D,0x5E,0xF8,0x6B,0x5D,0xDE,0xFC,0x7B,0x7D,0x47,0xC9, + + 0xAA,0x1E,0xC7,0xCD,0xBA,0x3E,0x57,0xE9,0xEA,0x5E,0xD7,0xED,0xFA,0x7E,0x4F,0xD9, + + 0xAB,0x1F,0xCF,0xDD,0xBB,0x3F,0x5F,0xF9,0xEB,0x5F,0xDF,0xFD,0xFB,0x7F,0x20,0x02, + + 0x04,0x80,0xA0,0x06,0x14,0xA0,0x30,0x22,0x44,0xC0,0xB0,0x26,0x54,0xE0,0x28,0x12, + + 0x05,0x81,0xA8,0x16,0x15,0xA1,0x38,0x32,0x45,0xC1,0xB8,0x36,0x55,0xE1,0x21,0x03, + + 0x84,0x82,0xA1,0x07,0x94,0xA2,0x31,0x23,0xC4,0xC2,0xB1,0x27,0xD4,0xE2,0x29,0x13, + + 0x85,0x83,0xA9,0x17,0x95,0xA3,0x39,0x33,0xC5,0xC3,0xB9,0x37,0xD5,0xE3,0x60,0x42, + + 0x06,0x84,0xE0,0x46,0x16,0xA4,0x70,0x62,0x46,0xC4,0xF0,0x66,0x56,0xE4,0x68,0x52, + + 0x07,0x85,0xE8,0x56,0x17,0xA5,0x78,0x72,0x47,0xC5,0xF8,0x76,0x57,0xE5,0x61,0x43, + + 0x86,0x86,0xE1,0x47,0x96,0xA6,0x71,0x63,0xC6,0xC6,0xF1,0x67,0xD6,0xE6,0x69,0x53, + + 0x87,0x87,0xE9,0x57,0x97,0xA7,0x79,0x73,0xC7,0xC7,0xF9,0x77,0xD7,0xE7,0x22,0x0A, + + 0x0C,0x88,0xA2,0x0E,0x1C,0xA8,0x32,0x2A,0x4C,0xC8,0xB2,0x2E,0x5C,0xE8,0x2A,0x1A, + + 0x0D,0x89,0xAA,0x1E,0x1D,0xA9,0x3A,0x3A,0x4D,0xC9,0xBA,0x3E,0x5D,0xE9,0x23,0x0B, + + 0x8C,0x8A,0xA3,0x0F,0x9C,0xAA,0x33,0x2B,0xCC,0xCA,0xB3,0x2F,0xDC,0xEA,0x2B,0x1B, + + 0x8D,0x8B,0xAB,0x1F,0x9D,0xAB,0x3B,0x3B,0xCD,0xCB,0xBB,0x3F,0xDD,0xEB,0x62,0x4A, + + 0x0E,0x8C,0xE2,0x4E,0x1E,0xAC,0x72,0x6A,0x4E,0xCC,0xF2,0x6E,0x5E,0xEC,0x6A,0x5A, + + 0x0F,0x8D,0xEA,0x5E,0x1F,0xAD,0x7A,0x7A,0x4F,0xCD,0xFA,0x7E,0x5F,0xED,0x63,0x4B, + + 0x8E,0x8E,0xE3,0x4F,0x9E,0xAE,0x73,0x6B,0xCE,0xCE,0xF3,0x6F,0xDE,0xEE,0x6B,0x5B, + + 0x8F,0x8F,0xEB,0x5F,0x9F,0xAF,0x7B,0x7B,0xCF,0xCF,0xFB,0x7F,0xDF,0xEF,0x24,0x82, + + 0x24,0x90,0xA4,0x86,0x34,0xB0,0x34,0xA2,0x64,0xD0,0xB4,0xA6,0x74,0xF0,0x2C,0x92, + + 0x25,0x91,0xAC,0x96,0x35,0xB1,0x3C,0xB2,0x65,0xD1,0xBC,0xB6,0x75,0xF1,0x25,0x83, + + 0xA4,0x92,0xA5,0x87,0xB4,0xB2,0x35,0xA3,0xE4,0xD2,0xB5,0xA7,0xF4,0xF2,0x2D,0x93, + + 0xA5,0x93,0xAD,0x97,0xB5,0xB3,0x3D,0xB3,0xE5,0xD3,0xBD,0xB7,0xF5,0xF3,0x64,0xC2, + + 0x26,0x94,0xE4,0xC6,0x36,0xB4,0x74,0xE2,0x66,0xD4,0xF4,0xE6,0x76,0xF4,0x6C,0xD2, + + 0x27,0x95,0xEC,0xD6,0x37,0xB5,0x7C,0xF2,0x67,0xD5,0xFC,0xF6,0x77,0xF5,0x65,0xC3, + + 0xA6,0x96,0xE5,0xC7,0xB6,0xB6,0x75,0xE3,0xE6,0xD6,0xF5,0xE7,0xF6,0xF6,0x6D,0xD3, + + 0xA7,0x97,0xED,0xD7,0xB7,0xB7,0x7D,0xF3,0xE7,0xD7,0xFD,0xF7,0xF7,0xF7,0x26,0x8A, + + 0x2C,0x98,0xA6,0x8E,0x3C,0xB8,0x36,0xAA,0x6C,0xD8,0xB6,0xAE,0x7C,0xF8,0x2E,0x9A, + + 0x2D,0x99,0xAE,0x9E,0x3D,0xB9,0x3E,0xBA,0x6D,0xD9,0xBE,0xBE,0x7D,0xF9,0x27,0x8B, + + 0xAC,0x9A,0xA7,0x8F,0xBC,0xBA,0x37,0xAB,0xEC,0xDA,0xB7,0xAF,0xFC,0xFA,0x2F,0x9B, + + 0xAD,0x9B,0xAF,0x9F,0xBD,0xBB,0x3F,0xBB,0xED,0xDB,0xBF,0xBF,0xFD,0xFB,0x66,0xCA, + + 0x2E,0x9C,0xE6,0xCE,0x3E,0xBC,0x76,0xEA,0x6E,0xDC,0xF6,0xEE,0x7E,0xFC,0x6E,0xDA, + + 0x2F,0x9D,0xEE,0xDE,0x3F,0xBD,0x7E,0xFA,0x6F,0xDD,0xFE,0xFE,0x7F,0xFD,0x67,0xCB, + + 0xAE,0x9E,0xE7,0xCF,0xBE,0xBE,0x77,0xEB,0xEE,0xDE,0xF7,0xEF,0xFE,0xFE,0x6F,0xDB, + + 0xAF,0x9F,0xEF,0xDF,0xBF,0xBF,0x7F,0xFB,0xEF,0xDF,0xFF,0xFF,0x90,0xE4,0xA8,0x30, + + 0x85,0x31,0x40,0xA1,0x4B,0x24,0x49,0xF3,0xE7,0x25,0xF0,0x26,0xCE,0x6D,0x32,0xF8, + + 0xF0,0x4E,0x5C,0x4A,0x82,0x1E,0xA0,0xCB,0x72,0xF6,0x35,0x5D,0xF2,0xEC,0xA9,0x29, + + 0x05,0xE3,0x87,0x42,0xBE,0xFE,0x29,0xC9,0x03,0x0D,0xDB,0x38,0x90,0x64,0x08,0xF7, + + 0xB2,0x26,0xD4,0x36,0x3E,0xFE,0xD9,0x94,0x73,0x58,0x66,0x4A,0xA2,0x63,0x80,0xE5, + + 0x07,0x02,0x48,0x74,0xF3,0x2B,0x30,0x24,0x05,0xCF,0xD7,0xE0,0x7C,0xEE,0xC0,0xD2, + + 0x0A,0xBA,0x7C,0x44,0xB0,0x23,0x91,0x92,0xC1,0x0D,0x65,0xF6,0x56,0x87,0x4D,0xB2, + + 0x84,0x65,0x75,0xA7,0x10,0x2E,0xD5,0x83,0x40,0x0E,0x0E,0x15,0xD4,0x0C,0x89,0xF4, + + 0x86,0x01,0x41,0x39,0x72,0x28,0x41,0x81,0xBC,0x48,0xE1,0x8A,0x12,0x05,0xF8,0xE0, + + 0xC6,0xC3,0xC7,0xEB,0x2B,0xD0,0x7C,0x4E,0x7B,0xB0,0x4F,0x2D,0x38,0x0E,0x53,0x93, + + 0xEE,0x12,0x75,0xDB,0x2A,0x4C,0x37,0x59,0xE8,0xD6,0x63,0xB8,0x51,0x3F,0x83,0x01, + + 0xEF,0x10,0x3B,0xF3,0x88,0x67,0xD3,0x8C,0x7A,0x4C,0xEE,0x57,0xBA,0x6E,0xEC,0x2F, + + 0xB4,0xA6,0x33,0x82,0x6C,0xA2,0x7B,0x3B,0x6D,0x46,0xE0,0xED,0x95,0x62,0x4E,0x4E, + + 0xAB,0x84,0xA2,0x0D,0x9E,0x21,0xE6,0x98,0xB5,0x43,0x16,0xBC,0x56,0x6F,0x9E,0xD6, + + 0x48,0xB2,0xCE,0xD8,0x35,0x7B,0x10,0xC7,0xE8,0x4B,0xDE,0xF8,0x75,0x15,0xC3,0xAB, + + 0x6B,0x4C,0xC9,0x49,0x39,0xA5,0x33,0xC9,0x76,0x43,0xEB,0x79,0x58,0x26,0x33,0xDB, + + 0x8E,0x56,0x81,0xA6,0x9D,0x4C,0xD3,0xBC,0x6A,0xC7,0x64,0x2F,0xD5,0x0D,0xD4,0xF3, + + 0x49,0x91,0x03,0x75,0x93,0x60,0xC0,0xFE,0x4E,0x8C,0x94,0x20,0x78,0x17,0xAB,0x72, + + 0xC1,0xEE,0x21,0xE8,0x92,0x37,0xE0,0xCE,0x7B,0x3E,0x27,0x11,0x86,0x8C,0xFE,0x7E, + + 0x49,0x3B,0xB7,0xB5,0xA4,0x34,0x7C,0x4A,0xDB,0x85,0x2A,0x94,0x51,0x8D,0x54,0x7A, + + 0x48,0x1C,0xAD,0x0F,0x10,0x35,0x44,0x0A,0x44,0xAC,0x8F,0x35,0x1A,0x08,0x84,0xA2, + + 0x63,0x54,0x94,0xF1,0x91,0x32,0x34,0xA4,0xEA,0x59,0xB4,0xA0,0x2A,0x36,0x34,0x52, + + 0x26,0x94,0xB3,0x36,0xB1,0x1D,0x0C,0xDF,0xC2,0xDF,0x96,0xDE,0x8E,0xD4,0x3D,0xA3, + + 0xE3,0x96,0xC9,0xAB,0x13,0xBC,0x1F,0x1A,0x41,0x50,0x01,0xA8,0xD6,0x34,0x17,0xD0, + + 0x00,0x11,0xF0,0x51,0x9D,0x7F,0xAA,0x13,0x61,0x1F,0xE5,0xC5,0x87,0xD8,0xFE,0x80, + + 0xD5,0x57,0x2B,0xF1,0x9B,0x35,0x17,0xCE,0x5B,0x1D,0x2D,0x1C,0xC6,0xD7,0xE0,0x75, + + 0x35,0x94,0x8C,0xE3,0x78,0x30,0xE6,0xC3,0x96,0x42,0x38,0xCE,0xDA,0x7F,0x97,0x75, + + 0x7D,0xE1,0x78,0x5D,0x1B,0x31,0xB8,0x4F,0xF8,0xA7,0x4E,0x89,0x7A,0x32,0x70,0x1D, + + 0xE2,0xCE,0xF7,0x1F,0x39,0x6D,0x2F,0xCB,0x4E,0x4B,0x93,0xC3,0x58,0xF1,0x4E,0xAF, + + 0x89,0x1A,0xA6,0x88,0x3E,0x31,0x4E,0x18,0x6B,0x53,0x76,0x9E,0x18,0xD4,0x2E,0x98, + + 0x85,0x12,0x46,0xC8,0x9A,0xB7,0x9E,0x28,0x63,0x5B,0x25,0x0C,0x73,0x1B,0x4F,0xEE, + + 0x4B,0x11,0x8D,0x36,0x19,0x38,0xE3,0x19,0xE6,0x51,0xA9,0xEA,0x1B,0x18,0x2F,0x99, + + 0x0D,0x12,0xB0,0x3F,0x39,0x77,0x57,0x7D,0x4A,0xD5,0x20,0x8F,0x00,0xC2,0xBD,0x45, + + 0xC6,0xC3,0x80,0xF5,0xB7,0xB2,0x28,0xA6,0x42,0xA3,0x32,0x5C,0xB7,0xE9,0x12,0xE1, + + 0x76,0x9A,0xD0,0x56,0x5D,0x7C,0xEC,0x6C,0x6B,0x1D,0x21,0x0B,0xBE,0xA5,0x69,0x07, + + 0xE3,0xC1,0x19,0x77,0x14,0x04,0x7E,0x21,0x8C,0xAE,0x31,0xE1,0xA0,0x69,0xC8,0xE5, + + 0x00,0xD2,0x51,0x1F,0x68,0xEC,0x50,0xD8,0xFE,0xC9,0x83,0x87,0x48,0x4C,0x3A,0x43, + + 0xA5,0x82,0x17,0x16,0x17,0xAB,0xF0,0x80,0xE7,0x4C,0x34,0xB6,0x5E,0xE7,0xE8,0xB0, + + 0xA6,0x0D,0x88,0x12,0xDB,0x2E,0x65,0x82,0x4F,0xCA,0xFE,0xF2,0x79,0x9D,0x69,0xC6, + + 0x27,0x0E,0xD9,0x97,0x29,0xA9,0x75,0x81,0x44,0x8E,0xC9,0x73,0x54,0xAE,0x6B,0xB1, + + 0x05,0x8F,0xED,0xB5,0x15,0xA4,0x19,0x37,0xB6,0xC8,0x99,0x33,0x91,0xEA,0x7B,0x85, + + 0xEB,0x93,0xC2,0x0C,0xD2,0xA5,0xCE,0x54,0x56,0xA7,0x16,0x54,0xFF,0x18,0x73,0x84, + + 0xEA,0xC5,0xB4,0xFC,0x9F,0xAD,0x22,0xBE,0x4B,0xAA,0xA6,0x01,0x74,0x32,0x9A,0xED, + + 0x9C,0xC5,0xE9,0x12,0x1E,0xD6,0x53,0x29,0x64,0xC7,0x44,0x3F,0x1B,0x48,0x38,0xF3, + + 0x57,0x40,0x4D,0x7D,0x5C,0x21,0x74,0x39,0x85,0xA7,0xBB,0x04,0xB4,0x70,0xA2,0x28, + + 0x4F,0xAC,0xE4,0x3C,0xBD,0xAA,0x12,0x2E,0x72,0xC3,0x0D,0xCE,0xFF,0x2C,0x7A,0xB8, + + 0xAE,0x05,0xBA,0xC7,0xBC,0xAB,0x40,0x98,0xCD,0x85,0x2E,0x33,0xA2,0x81,0x1B,0x6C, + + 0x2F,0x06,0xB3,0xE6,0x3D,0xA8,0xE3,0xE9,0xCB,0x57,0x93,0x2B,0xC6,0xAC,0x63,0xB9, + + 0x0D,0x87,0xBB,0x52,0x3C,0xA9,0x66,0xFF,0xE1,0x1C,0x3F,0xDF,0x7E,0x2F,0x1E,0x00, + + 0xBD,0x30,0x9C,0xD4,0x77,0x40,0x8B,0x44,0xE6,0xD4,0xCB,0x44,0xF6,0xD8,0xBF,0x7A, + + 0xE2,0xDE,0xD4,0x14,0xB5,0xE7,0xFC,0x17,0x3E,0xD5,0xC4,0x34,0x7C,0x3E,0x5D,0xC5, + + 0xD8,0xDE,0xA7,0x05,0x29,0x7B,0x07,0xC1,0xC5,0x90,0x4D,0xC5,0xB7,0x4D,0x4D,0xDC, + + 0x86,0x9C,0x95,0x47,0xE9,0x33,0x3B,0xF4,0xCB,0x0F,0x85,0x67,0x0E,0xFC,0x2E,0xDF, + + 0x67,0x95,0x65,0xA4,0x75,0x0B,0x89,0x00,0xC7,0x5E,0x58,0x75,0x0B,0xFE,0x57,0x30, + + 0x8B,0x28,0xD4,0x06,0xCC,0xBA,0x36,0x4D,0xC4,0xD8,0xA6,0xD6,0x0F,0xB7,0x1D,0x41, + + 0xA7,0x91,0x9D,0x45,0xB3,0x66,0x0A,0x01,0x4A,0xDB,0x33,0x63,0xD8,0x93,0x15,0x51, + + 0xA6,0x75,0x8D,0x93,0xBF,0xF5,0x37,0x2C,0x44,0xD1,0x29,0xBC,0xF1,0x94,0x46,0x88, + + 0x79,0x95,0xC6,0xC1,0x51,0xB7,0xE2,0xF4,0xFF,0xE7,0xD6,0xEF,0x8B,0xF5,0x7E,0x9E, + + 0x05,0x37,0x84,0x4E,0x61,0x39,0x7B,0x5D,0xEF,0xDD,0xB2,0xC5,0x7B,0x9A,0xE3,0x0D, + + 0x8E,0x9B,0xC7,0x8D,0x22,0xB7,0x6A,0x8C,0x43,0x07,0xFD,0x54,0x5F,0xFC,0x4F,0x99, + + 0x3F,0x96,0xCF,0xD0,0x8C,0xB4,0x8B,0xD9,0xCC,0x99,0xF5,0x3D,0xF4,0xD4,0xD9,0x28, + + 0xAC,0xD4,0x32,0x1E,0xBC,0xF4,0x7E,0x6E,0xCF,0x56,0x42,0x9D,0x03,0x4D,0x16,0x58, + + 0x2A,0x99,0x8E,0x9A,0x27,0xFF,0x34,0x15,0xCC,0xD0,0xD3,0xE7,0xFF,0x90,0x43,0xA9, + + 0xEF,0xBE,0xE1,0x4B,0x90,0x34,0x8C,0x09,0x42,0xD3,0xE5,0xCF,0xF8,0x9D,0x57,0x8B, + + 0x2F,0x90,0x3B,0x0F,0x3D,0xF7,0x35,0x00,0x4C,0xD9,0x6F,0x8D,0xCC,0x0D,0xF8,0xA0, + + 0x58,0x90,0x4F,0x66,0x51,0x00,0x49,0xB4,0xE5,0xBF,0xA8,0x74,0x54,0x6F,0xA4,0x82, + + 0x4B,0x09,0xB0,0x44,0x10,0x2E,0x50,0x74,0x47,0x22,0x25,0xB6,0x3F,0xE0,0x61,0x56, + + 0x45,0x0F,0xF9,0x87,0xB2,0x57,0x2F,0x80,0x4D,0xB4,0x4E,0xCB,0xD6,0x08,0x8D,0xE1, + + 0x89,0x4C,0xE9,0xB5,0xD9,0x2E,0x07,0x76,0x03,0xE1,0xA3,0xD7,0x7D,0xE8,0x20,0x6F, + + 0x14,0x09,0xCA,0x40,0xB1,0xD3,0x68,0x64,0x0A,0x55,0xA8,0x43,0xF1,0xDF,0x70,0xE2, + + 0x29,0x75,0x58,0x2A,0x6F,0xDA,0xDE,0x50,0xE2,0x05,0xF8,0xF0,0x10,0x8F,0x33,0xE8, + + 0x80,0x63,0x3E,0x40,0xED,0xD9,0xEE,0x33,0xCC,0xCC,0xD7,0x98,0xC4,0xBD,0xFD,0x33, + + 0x61,0xA4,0x59,0xA8,0xF2,0x65,0x5F,0x58,0x08,0xA6,0x66,0x87,0x93,0x61,0x52,0x8C, + + 0x47,0x4A,0x88,0x04,0xBB,0x4D,0x5A,0x39,0x4E,0x2B,0x6D,0xCE,0xF4,0xE3,0x32,0x29, + + 0xA8,0x88,0xDA,0x11,0xB8,0xA3,0xB6,0xAA,0x75,0x43,0x65,0xDE,0xDB,0x6A,0x49,0x23, + + 0x75,0xAB,0xD9,0x10,0x3B,0x2C,0xCF,0x2B,0xCE,0xB7,0x15,0xCF,0x74,0xE1,0xD9,0xEA, + + 0x0D,0x86,0xF3,0xFF,0x1B,0x28,0x5B,0x07,0xE7,0xEB,0x0B,0x4F,0x7A,0x6D,0xC0,0x6F, + + 0xAB,0x85,0x0E,0x23,0x98,0x64,0xEF,0xEA,0x43,0x73,0xF2,0xF1,0xF9,0x2D,0xB1,0x7C, + + 0x89,0x29,0x80,0x41,0x3F,0xA0,0x56,0x83,0x4D,0x2E,0xDA,0x7C,0x5B,0x6D,0x48,0x29, + + 0x8E,0x0A,0x05,0x2F,0x65,0xA2,0x93,0xCC,0xD7,0x48,0xD3,0x6D,0xDA,0x6E,0x43,0xA9, + + 0xB1,0x00,0xB5,0x68,0x19,0x2B,0xD6,0x88,0xA7,0x1F,0xDB,0x7D,0xDB,0x6F,0xF9,0x70, + + 0xDB,0xB1,0xFD,0x66,0xB2,0xD3,0x0A,0x24,0x4E,0x3B,0x90,0x19,0x43,0xB6,0x32,0x31, + + 0x49,0xE8,0xF4,0x16,0x34,0x38,0x1A,0x11,0xE1,0x4C,0xDC,0xD6,0x8E,0xF8,0x51,0x05, + + 0x8E,0x7C,0x51,0xE7,0xF3,0xCC,0x6B,0xA6,0x1D,0x5D,0x4F,0xED,0x72,0x07,0x1F,0x6A, + + 0xA7,0x70,0xB7,0x77,0x1D,0x3C,0x8D,0x33,0xE0,0x31,0x17,0x55,0xE4,0x75,0x3A,0xC6, + + 0xC3,0x97,0xC1,0xE1,0x34,0xFE,0x1E,0x1E,0xC1,0xAF,0xD4,0xE4,0x72,0x74,0x34,0xAF, + + 0x00,0x48,0xAE,0xD0,0x30,0xB5,0x25,0x90,0x6B,0xA5,0xDC,0xF4,0x73,0x75,0x65,0x32, + + 0x2E,0xCB,0xC7,0xB6,0xDE,0x5A,0xAA,0x92,0xD2,0xDC,0xD5,0xE5,0xF2,0x76,0xDD,0xA3, + + 0x48,0x06,0xCB,0xE0,0x33,0x09,0x63,0xDD,0xA0,0x48,0xDD,0xF5,0xF3,0x77,0xEA,0xB7, + + 0x0A,0xCD,0xE6,0xC8,0x6F,0xB8,0x2E,0x78,0x93,0x57,0x23,0x28,0xD9,0xA7,0x19,0x70, + + 0x21,0x5B,0x0E,0x7E,0xBB,0x71,0xCA,0x07,0x2A,0x26,0x2B,0x2C,0xD8,0x80,0x90,0xB2, + + 0xDC,0x8F,0xFF,0xAA,0x19,0xB2,0x2F,0x79,0x57,0x18,0x28,0xD1,0x07,0x7C,0x0D,0xCC, + + 0x75,0x18,0x56,0x6D,0xB1,0x34,0x67,0x3B,0xCB,0x59,0xC7,0x10,0x7B,0x0E,0x38,0xE1, + + 0xC1,0x4D,0x06,0x90,0x3B,0x38,0x4E,0xEC,0x36,0xAC,0xD6,0xEC,0x7A,0x7C,0xC2,0xBA, + + 0x68,0xC2,0x40,0x24,0x87,0x86,0x46,0xE0,0x8A,0x82,0xDE,0xFC,0x7B,0x7D,0x39,0xE4, + + 0x28,0x56,0x7E,0x31,0x3A,0xC5,0x69,0xC0,0xA9,0x41,0xD7,0xED,0xFA,0x7E,0x37,0x5B, + + 0xA2,0x40,0x8F,0x30,0x01,0x7D,0x61,0xD4,0xA8,0x40,0xDF,0xFD,0xFB,0x7F,0x72,0x53, + + 0xEF,0xE4,0xE4,0xF6,0x4E,0xE2,0xE4,0xD2,0x87,0x11,0xB8,0x6E,0x14,0xEF,0x78,0x0C, + + 0x79,0x35,0x62,0x64,0xB6,0xA7,0x16,0xC1,0xC9,0x3C,0xDE,0x44,0xAA,0xA1,0xE1,0x13, + + 0x4C,0x76,0x75,0xBB,0x16,0xEA,0x4F,0x25,0x25,0x41,0x8B,0xD8,0xD2,0x68,0xBA,0x09, + + 0xFD,0x0E,0x21,0xDB,0x36,0xA5,0x41,0x22,0xEF,0xC7,0x75,0x57,0xD3,0x6A,0xD4,0xB2, + + 0x2C,0x8B,0xE8,0xB6,0xE9,0xAB,0xB0,0x17,0x1E,0xC7,0xF0,0x66,0x56,0xE4,0xDC,0xA2, + + 0x56,0x8A,0x90,0xD2,0x39,0x50,0xC7,0x20,0x49,0x4F,0xF8,0x76,0x57,0xE5,0xD5,0xB3, + + 0xEC,0x89,0xDB,0xC5,0x16,0x4E,0x49,0x67,0x8E,0x97,0xF1,0x67,0xD6,0xE6,0xDD,0xA3, + + 0xA2,0x88,0x32,0x35,0x91,0x87,0xFF,0xD3,0x66,0x87,0xF9,0x77,0xD7,0xE7,0x5C,0xAB, + + 0xE5,0xAB,0x2A,0xFB,0x7F,0xD9,0x9D,0x58,0xA7,0xEB,0x9D,0xD3,0x3B,0x33,0x7E,0x69, + + 0x2F,0x03,0x92,0xCE,0xD0,0x21,0x04,0x9B,0xC0,0x3F,0x67,0x3F,0x5B,0x8A,0x8F,0x98, + + 0xF1,0x80,0xDB,0x8D,0xBD,0x5B,0x6A,0xBF,0x69,0x35,0x33,0x2B,0xD3,0x02,0x2F,0xE4, + + 0x70,0x0B,0xAA,0xFD,0x3C,0x21,0x73,0x27,0xCB,0xA8,0xCF,0xC3,0x5E,0xA9,0xD6,0xBA, + + 0x0C,0x83,0x35,0x08,0x06,0x77,0x74,0x47,0x85,0x2D,0xF2,0x6E,0x5E,0xEC,0x0A,0x0A, + + 0xF4,0xEB,0x9F,0xDA,0x5C,0x47,0x42,0xAA,0xB8,0xC2,0xFA,0x7E,0x5F,0xED,0xBC,0xCF, + + 0xD0,0x73,0x56,0xB2,0x9C,0x15,0xCE,0xE9,0xC7,0xF1,0xF3,0x6F,0xDE,0xEE,0x90,0xAB, + + 0x8F,0x7E,0x54,0x3F,0xD9,0xAE,0x1B,0x3A,0x34,0xC2,0xFB,0x7F,0xDF,0xEF,0x87,0xBF, + + 0xFC,0x41,0xC4,0xC2,0x0F,0xBF,0x6E,0xBF,0xC7,0xD6,0xF0,0xC4,0x8B,0x79,0x0C,0xD8, + + 0xC4,0x3E,0xD4,0x14,0x30,0x6A,0x44,0xE2,0x29,0xDE,0x09,0x33,0xD4,0x2E,0x06,0xBA, + + 0xEC,0xB1,0xC5,0xC3,0xCB,0x3F,0x65,0x8D,0x45,0x58,0x39,0x47,0xD2,0xF4,0xFD,0x60, + + 0x8B,0x48,0xAF,0x75,0x37,0xFB,0x5D,0x13,0xAF,0x58,0x02,0xCB,0x0A,0xF5,0x5C,0x12, + + 0xDD,0x9B,0x6B,0x57,0x30,0xAD,0x6C,0xF7,0x11,0xB4,0xF4,0xE6,0x76,0xF4,0x66,0xD6, + + 0x84,0x93,0xDA,0xB4,0xB5,0xB1,0xEC,0x8D,0x06,0x95,0xFC,0xF6,0x77,0xF5,0x05,0x82, + + 0x1D,0x9B,0xE5,0xE3,0x34,0xB2,0x55,0xE6,0x99,0x29,0xF5,0xE7,0xF6,0xF6,0x61,0x2D, + + 0x06,0x1D,0x2C,0x35,0x35,0xB3,0x65,0xF6,0x1A,0xDC,0xFD,0xF7,0xF7,0xF7,0x08,0x77, + + 0xDA,0xE3,0x86,0xEC,0x7F,0x46,0x32,0x48,0xEE,0xDB,0x03,0x3F,0xDD,0x01,0x60,0xA4, + + 0x0F,0x29,0x96,0x4E,0x82,0xB6,0x5E,0x1A,0x3D,0x52,0x05,0x48,0x86,0x02,0x34,0x72, + + 0x53,0xD8,0xDF,0x0D,0xD2,0xD9,0xF3,0x5B,0xA0,0xD5,0xEF,0x8A,0xCF,0x3C,0x7D,0xE9, + + 0x46,0xB8,0x97,0xCF,0xB5,0xB4,0xBB,0x59,0x6F,0x93,0xBB,0x3B,0xB3,0x7E,0x19,0x28, + + 0xAC,0xB4,0x54,0xAC,0xBC,0xB8,0xF0,0x68,0x67,0xE3,0xF6,0xEE,0x7E,0xFC,0x16,0x2B, + + 0x43,0xCD,0x31,0xBC,0xBD,0xB9,0xC5,0x08,0x4E,0x3D,0xFE,0xFE,0x7F,0xFD,0x18,0xA9, + + 0xEF,0xDE,0x22,0x2D,0x3C,0xBA,0x4F,0xBB,0xEA,0xD1,0xF7,0xEF,0xFE,0xFE,0xAF,0xAE, + + 0xF7,0x9E,0xAC,0x3D,0x13,0x32,0x1F,0xBA,0x14,0xD2,0xFF,0xFF,0xFF,0xFF,0xA8,0xA4, + + 0xE1,0x06,0x19,0x66,0x53,0x2C,0xDD,0xCD,0x32,0xFB,0x77,0x46,0x91,0xEA,0xA2,0x83, + + 0xA2,0xDA,0x0C,0xFC,0xA3,0x6E,0xC3,0x7B,0x3E,0x0C,0xD2,0xD6,0x39,0x6C,0x2C,0x32, + + 0x23,0x04,0xAB,0x80,0x9E,0xA8,0xEE,0xA5,0x8B,0x97,0x16,0x45,0x80,0x6F,0xA0,0xEC, + + 0x7D,0x78,0x31,0x85,0xB0,0xF3,0xC4,0x89,0xBA,0xBC,0xC4,0x6C,0x7E,0xEE,0x20,0x0E, + + 0x90,0x46,0x88,0x75,0xB3,0xAC,0x74,0x94,0xC2,0xE9,0xB0,0x66,0x47,0x69,0xF0,0xAA, + + 0x13,0x48,0x17,0x01,0x68,0x32,0x44,0x98,0x05,0x0A,0x20,0x0F,0x43,0x2A,0x95,0x3F, + + 0xB1,0x4C,0xE1,0xA7,0xE5,0x22,0x0D,0x50,0xE5,0xE9,0xAE,0x1B,0xE1,0x7E,0x36,0x0E, + + 0x3E,0xFB,0x09,0x85,0xDC,0xDA,0x49,0x68,0xD3,0xE8,0xB9,0x77,0x84,0x6A,0xCB,0xF1, + + 0xF7,0x4A,0xC0,0x6C,0x1E,0xA9,0xD2,0xF9,0xBC,0x93,0x46,0xA5,0xF7,0x73,0xFD,0xFE, + + 0x8C,0xFB,0xFB,0xEC,0x6E,0x66,0x9D,0x4A,0xB2,0x0B,0x22,0xC3,0xD6,0x72,0x4D,0x37, + + 0x69,0x11,0x03,0xED,0xD2,0x31,0xBA,0xD4,0x1E,0x31,0x37,0x4B,0x2F,0x7A,0xE3,0x05, + + 0x0E,0x3B,0xAB,0x98,0xAA,0x3C,0x55,0x07,0xBE,0x97,0x57,0x5B,0x07,0x79,0xE9,0x26, + + 0xDF,0x4E,0xB8,0x5C,0x98,0x28,0x0E,0x1A,0xA1,0x07,0xB2,0x3A,0x2E,0x63,0x8E,0x06, + + 0x05,0x13,0x91,0x5C,0x64,0x35,0x7A,0x04,0xEA,0xB2,0xBA,0x2A,0x27,0x62,0x97,0x3E, + + 0x5F,0x62,0x3C,0xAF,0xE1,0xB4,0x0A,0x6A,0x2D,0x48,0xB3,0x6F,0x85,0x63,0x36,0xDB, + + 0x12,0xAB,0x10,0x5F,0x9D,0x25,0x9F,0xFC,0x88,0xBD,0xBB,0x7F,0xFA,0x62,0x80,0x66, + + 0x57,0x34,0xE4,0x86,0x3B,0x3D,0x07,0xB4,0x89,0xC1,0x95,0xDB,0xD7,0x6B,0x53,0xD8, + + 0x1E,0x91,0x73,0x10,0x51,0x1B,0x64,0x58,0x34,0x1E,0x24,0x4F,0xF3,0x4D,0xDA,0xD5, + + 0xD3,0x16,0xDC,0x83,0x17,0xBF,0x17,0x5E,0x21,0xD8,0x31,0xC3,0x03,0x62,0xCD,0xCC, + + 0xEB,0xC8,0xD4,0x92,0x50,0x7C,0x7D,0xB3,0xBC,0x5E,0x05,0xCF,0x52,0x16,0xFF,0x22, + + 0x8E,0xE9,0xA6,0xBE,0xDB,0x2D,0xF8,0x73,0x45,0x5C,0x9E,0xF9,0x12,0xD4,0x97,0x87, + + 0x5C,0xD9,0xAC,0xD7,0x33,0x38,0x7C,0xF5,0xAB,0x1E,0x23,0x1C,0x7B,0x3A,0x3D,0x45, + + 0xCF,0xDF,0xA7,0xD5,0xB3,0x66,0x53,0xF2,0xC9,0xC7,0x8C,0x79,0x55,0x3B,0x16,0xD3, + + 0xD8,0xB9,0xD5,0xD1,0xBB,0x7F,0x4E,0x82,0x93,0xF6,0xE7,0x1D,0xAF,0x38,0x22,0x75, + + 0x79,0x63,0x87,0x7C,0x39,0x77,0x3C,0x78,0x34,0xD8,0xA9,0x4E,0x4B,0x32,0x40,0xA6, + + 0x2F,0xB0,0xC4,0x81,0x18,0x99,0xE5,0xC8,0x61,0x50,0x4A,0x67,0x4A,0xE1,0x5D,0xFB, + + 0x53,0x58,0xE7,0x8F,0x6E,0x37,0x4E,0x1E,0x4F,0x17,0xF7,0xE3,0x00,0x38,0x7E,0x1D, + + 0xA6,0xAA,0xD2,0x8F,0xBF,0x58,0x5D,0xCA,0x99,0xDA,0xFF,0xF3,0x2B,0x39,0x9B,0xE4, + + 0x2C,0xE4,0xE6,0x3A,0xD3,0x95,0xC9,0x78,0x81,0xCD,0x69,0x1D,0xD9,0x8F,0xD8,0x20, + + 0xAB,0xA6,0x32,0xB6,0x53,0x30,0x07,0xE7,0x8C,0x1F,0x1E,0x38,0x94,0x7B,0x01,0x35, + + 0x7F,0xE5,0xBE,0xBF,0x81,0x2A,0x71,0x94,0x49,0xDA,0xE5,0x12,0x0E,0x71,0xB9,0x34, + + 0xFD,0x5D,0x8A,0x3A,0x52,0x16,0x47,0x28,0x69,0x23,0xD7,0x4A,0x98,0x5F,0x79,0xAD, + + 0xA3,0x9B,0xFA,0xCA,0xB3,0xA4,0xEF,0x53,0x7B,0x30,0x08,0xB8,0x57,0xD0,0x56,0xDB, + + 0x36,0xCD,0x7A,0xF0,0x95,0x01,0x8B,0xB0,0xC5,0x39,0x40,0x44,0x23,0xF3,0x54,0xE5, + + 0x94,0xCD,0xA2,0xEF,0x26,0x29,0x0B,0xD8,0xC2,0x68,0x0E,0x17,0xD6,0xF2,0xD1,0xE0, + + 0xD6,0xCF,0xF0,0xBD,0x7C,0xFA,0x01,0xE3,0x99,0x6C,0x41,0xDF,0xD2,0xAE,0xA0,0xE7, + + 0xF3,0x29,0x69,0xC4,0x9E,0xE4,0x0E,0x1F,0x66,0x86,0x90,0x30,0x74,0xEB,0x52,0xF7, + + 0xF0,0x9E,0xC8,0x2A,0xB6,0xC6,0x46,0x93,0xC8,0x63,0x98,0x20,0x97,0xEA,0x72,0x73, + + 0xC6,0x79,0x21,0x57,0x6E,0xA0,0xF6,0x70,0xE1,0x3F,0x91,0x65,0xFF,0xEB,0x62,0x35, + + 0x74,0x97,0x09,0x57,0x7E,0x8E,0xA1,0x33,0x9B,0x63,0x51,0x48,0x52,0x85,0xE4,0xE2, + + 0x8D,0xC7,0x5A,0x8C,0x9C,0x12,0x21,0xCA,0x04,0x63,0x49,0x26,0xF9,0x17,0x82,0x1F, + + 0x3E,0x89,0x86,0xF8,0xB8,0xA2,0x04,0x02,0xC2,0x4F,0x5D,0xB6,0xF8,0x3F,0x8B,0x8A, + + 0x09,0x6A,0x9B,0xDF,0xC0,0xB1,0x20,0x2A,0x4C,0x9A,0x1F,0xC7,0x85,0xA7,0xD3,0xF3, + + 0xED,0x00,0x2F,0xEF,0xDD,0xE4,0xB9,0x7B,0xC1,0x60,0xF3,0x2E,0x28,0xA4,0xDA,0xB1, + + 0x08,0xEF,0xC4,0x3F,0xBD,0x29,0x2E,0x17,0xCE,0x9C,0x32,0x3B,0xF8,0x61,0xC1,0xDF, + + 0x9C,0xB2,0xF7,0x0F,0x2E,0xA4,0xFF,0x3A,0x43,0x66,0x02,0x96,0xD2,0xA2,0xDD,0x15, + + 0x03,0xEC,0xC5,0xAD,0xAF,0x01,0x4D,0x16,0x41,0x48,0x8D,0x8F,0xED,0x6E,0x94,0xD9, + + 0x16,0x26,0x6E,0x98,0x76,0x96,0xE4,0x76,0x26,0xE4,0x9B,0x7D,0x98,0xE2,0x44,0x80, + + 0x7D,0x9D,0x84,0x6E,0x33,0x3D,0x30,0x59,0x85,0xB3,0x60,0x7D,0xF6,0xF4,0xE8,0x14, + + 0x63,0x97,0x54,0x14,0xB5,0x47,0x07,0xC2,0xE5,0xCE,0xF6,0xAB,0x9E,0x60,0xE1,0x06, + + 0xE7,0x61,0x5D,0x8F,0xD7,0xB9,0x4E,0xDD,0x6B,0x64,0x85,0xC5,0x0B,0x7E,0x0D,0xCB, + + 0x04,0x88,0x95,0x47,0xE9,0xBA,0x67,0xB1,0x77,0xDB,0xAF,0xA7,0x4A,0x7E,0xEB,0x53, + + 0xA4,0x90,0x9D,0xB4,0x0D,0xE0,0xEB,0x80,0x99,0x58,0x8C,0x64,0x77,0x83,0x12,0x33, + + 0x86,0xF6,0xA9,0x31,0xB5,0xB1,0x84,0x76,0x46,0xD5,0x9C,0x56,0x7B,0xFA,0xFD,0xA1, + + 0xE5,0x64,0x19,0xAD,0xDE,0xBB,0x3F,0xFE,0xD5,0xE8,0xCF,0x05,0x73,0xA3,0x8D,0x57, + + 0x0B,0x9A,0xE0,0xB5,0x40,0xB1,0x1D,0xF1,0x92,0xDA,0x9D,0xF5,0x8C,0xFA,0xD4,0x6C, + + 0xAE,0x9C,0xA0,0x67,0x33,0xFA,0x34,0x42,0x82,0x25,0x62,0x40,0xA1,0x85,0x64,0x27, + + 0x23,0xDF,0x94,0x78,0x2D,0x32,0x06,0x6A,0x31,0x78,0x00,0xE0,0xF0,0x9B,0xAC,0xE9, + + 0xA2,0xF8,0x73,0x8D,0x8F,0x22,0xCF,0x29,0x6C,0xD0,0x18,0x51,0xFA,0x99,0x3F,0x67, + + 0x38,0x60,0x87,0x79,0x3F,0xBF,0x07,0x8A,0x4C,0x74,0x14,0x3A,0x6E,0xC4,0x2C,0x57, + + 0xC5,0xD7,0xC6,0x86,0x9F,0x03,0x66,0x9D,0x0C,0xC7,0x22,0x68,0x62,0xFF,0x69,0xFD, + + 0x8E,0x17,0xD1,0xD6,0x98,0xBB,0x1C,0xE2,0x6C,0xAC,0x69,0x9C,0x9C,0x02,0x5F,0xED, + + 0x47,0xD8,0x5C,0x27,0xF7,0xF1,0xB5,0x8D,0x11,0xB0,0x72,0x2F,0x7C,0xFA,0xE8,0x28, + + 0xC6,0x84,0xCF,0x92,0x1E,0x60,0xC0,0xBC,0x25,0x76,0x9F,0xFD,0x8B,0xF2,0x9F,0xE0, + + 0x58,0x0D,0xCA,0x19,0x78,0x2D,0x49,0xA9,0xA9,0x31,0x80,0xA6,0xD0,0x8B,0x4C,0x04, + + 0xA0,0x6D,0x70,0x96,0x91,0x25,0xD8,0x55,0xBA,0x03,0xE0,0x56,0xDC,0xE7,0xC5,0x87, + + 0x8A,0x01,0x97,0x67,0xA3,0x83,0xE9,0xA5,0x8C,0x4E,0xA9,0xA7,0x45,0x38,0xCD,0x94, + + 0x07,0xE3,0xB1,0x97,0x58,0x74,0x90,0x84,0xC7,0x2A,0x18,0xF5,0xDD,0xE8,0x6E,0xBA, + + 0xA1,0x1F,0xC4,0xAC,0x9A,0xAF,0xD1,0x47,0xE3,0x4D,0xA8,0x99,0x74,0x26,0x11,0xC0, + + 0xA4,0x15,0xE8,0x68,0xB0,0x67,0x02,0x71,0xE0,0x04,0xDA,0xF6,0x56,0x87,0x81,0xA7, + + 0x92,0x49,0x45,0xA3,0x73,0x20,0xD3,0xE3,0x5B,0xCF,0x1D,0x0A,0xD4,0xAC,0xB1,0xD3, + + 0x4A,0x70,0xD0,0x55,0xB7,0xAA,0x39,0x73,0xB6,0x4A,0xE1,0x8A,0x5E,0x05,0x62,0x0A, + + 0x2E,0x05,0xFA,0x6E,0x95,0xAE,0xBC,0x0E,0x4E,0xC5,0x88,0xCE,0x2F,0x74,0x74,0x35, + + 0x8B,0x0D,0x75,0xFE,0x2A,0x5B,0xE5,0xD0,0x17,0x04,0xA0,0xC7,0x5F,0xC3,0x7D,0x25, + + 0x24,0x07,0x02,0xCD,0x94,0xA1,0xC7,0xC1,0x40,0x82,0x4C,0x42,0x64,0x43,0xD2,0x7B, + + 0xBA,0x19,0x33,0xAF,0x66,0x4B,0xE0,0x6B,0xE7,0x28,0x28,0xBF,0x59,0xE5,0x3A,0xB4, + + 0x9B,0xF7,0xA2,0x4F,0x1A,0x23,0x42,0x1F,0x63,0x0E,0xC2,0x0E,0xFB,0x6A,0x35,0xB5, + + 0xCD,0x4F,0x35,0xBE,0x1D,0xE4,0x9A,0x79,0x35,0xF6,0xA5,0x9E,0x5D,0xA4,0xC0,0xA1, + + 0xE2,0x43,0xA3,0x4E,0x8F,0xA5,0x87,0x56,0xBD,0x43,0xDF,0x16,0x7B,0xE4,0x05,0x67, + + 0xFC,0xE3,0x0A,0xD9,0xBE,0x88,0x2E,0x84,0xC9,0x94,0xD4,0x02,0x38,0x66,0x91,0x1F, + + 0x21,0x50,0x95,0x66,0x9C,0x9D,0xD4,0x71,0x99,0x12,0xCC,0x2C,0x8D,0xF7,0x15,0xF2, + + 0xD6,0x17,0x1D,0x76,0x9D,0x9C,0xC0,0x32,0xE1,0xCA,0xFC,0xB6,0x01,0x7C,0xAD,0x80, + + 0x22,0x16,0x90,0x67,0x1C,0x9F,0x5B,0x75,0xC2,0x22,0xB4,0xA1,0x1B,0x19,0x2D,0xE4, + + 0x00,0xAC,0x18,0x77,0x91,0x83,0x25,0xE3,0xEF,0x31,0xEF,0xA2,0xED,0x68,0x4C,0xD4, + + 0x41,0x2B,0xC7,0x02,0x82,0x32,0xAB,0x10,0x60,0xA5,0x3C,0xF9,0xF2,0xD5,0x8C,0x75, + + 0xFB,0x97,0xB4,0x92,0xC7,0x7B,0xE9,0x03,0xEF,0x58,0x03,0xBC,0x04,0x71,0x53,0xED, + + 0x49,0x47,0xCD,0x23,0xD1,0x16,0x2B,0xE7,0x03,0xD5,0x8A,0x3D,0x81,0x76,0x35,0x55, + + 0x8D,0xA3,0x78,0x13,0x43,0x31,0xA6,0x01,0xAE,0xA6,0x1D,0x35,0xE6,0x71,0xBD,0x7B, + + 0x18,0xA5,0x02,0xFF,0x0C,0x37,0x5C,0xAD,0x5B,0xCA,0xDA,0x5C,0x7C,0x37,0x8C,0x38, + + 0x21,0x79,0x71,0x18,0x7A,0x9F,0x47,0x8C,0xCE,0x14,0x2A,0x5E,0x4A,0x9B,0x79,0xA0, + + 0x8A,0x6A,0x47,0xD1,0x7E,0xB7,0xEF,0xCB,0xAB,0xA9,0xCD,0xA6,0x5B,0xF5,0x5F,0x84, + + 0xF9,0x1D,0xB5,0x75,0x25,0xF4,0x41,0x5B,0xE5,0xDE,0x27,0x42,0x7B,0xD7,0x1E,0xDC, + + 0xA8,0xB0,0xCA,0xD9,0x59,0xFC,0x28,0xEE,0x8B,0xDF,0xF2,0xF8,0x7C,0xFC,0x48,0xE0, + + 0xAB,0x13,0xB6,0x5E,0x32,0x9D,0xC5,0x18,0x2B,0xAD,0x1E,0xEC,0x40,0x7B,0xB2,0xAB, + + 0xEA,0x11,0xBF,0x4F,0xB3,0xFE,0x77,0x1A,0x66,0x53,0xE0,0x6F,0x72,0x3E,0x2F,0x86, + + 0x4A,0xB2,0x95,0xC0,0x18,0x39,0xA8,0x53,0x4E,0xA8,0xFB,0xE9,0xFD,0xFF,0xD8,0x25, + + 0xA5,0x9B,0xFA,0xF8,0xB3,0xE2,0x7A,0x60,0x19,0x48,0x88,0xA4,0xC5,0xB5,0x90,0xED, + + 0xEC,0xD0,0x9E,0x92,0x5E,0x9E,0x8F,0x4F,0x43,0x6B,0x38,0x44,0xF6,0x4A,0xE4,0xE5, + + 0xB7,0x90,0x2A,0x96,0x92,0x90,0x61,0xCC,0x3C,0x6B,0xC9,0x45,0x36,0x1D,0x85,0x8C, + + 0x84,0x01,0x69,0xAB,0x39,0xB8,0x05,0x41,0xE5,0x73,0x65,0x3C,0x34,0xF8,0xBF,0xA8, + + 0x39,0x94,0x48,0x79,0x94,0x8C,0xC5,0xE6,0x05,0x2E,0x8D,0xE4,0xDE,0xBC,0xDB,0x20, + + 0xEC,0x14,0x90,0xD4,0x14,0x41,0x58,0x27,0xE6,0xCE,0xED,0xF0,0x5F,0xA9,0x3E,0x47, + + 0x80,0x2C,0x5D,0x25,0xD7,0xE6,0xCE,0x83,0x81,0xC0,0x4E,0x85,0xD0,0xAE,0x57,0x6B, + + 0x0A,0x21,0xB3,0x47,0x34,0xA1,0x7F,0x83,0xCE,0xC8,0x7E,0xF5,0x57,0x3E,0x1C,0x27, + + 0xD2,0x80,0xE3,0x68,0xE3,0xAE,0xB4,0xD9,0x4F,0xBD,0xFE,0xC8,0xDE,0xF4,0xD5,0x69, + + 0x39,0xE7,0x4D,0xF6,0x35,0xE6,0x44,0xFA,0xF1,0x60,0xA9,0x5C,0xA2,0x66,0xA4,0xE3, + + 0x92,0xC7,0x8D,0x70,0x3D,0xC6,0x2D,0xD0,0x4C,0x0A,0x0A,0xCD,0x5E,0xEE,0xCC,0xDB, + + 0xC5,0x26,0xCB,0x1D,0xBF,0x06,0x0C,0x46,0x31,0x32,0x40,0x18,0x7C,0x32,0x7C,0x8A, + + 0x36,0x07,0xAA,0x58,0xBD,0xAA,0x52,0x73,0xCC,0xB9,0xCA,0xCE,0xB3,0x64,0xD2,0x1D, + + 0x01,0x22,0x5E,0x4E,0xBC,0xEF,0x5A,0x2F,0xEE,0xA1,0xA5,0xD5,0x59,0x67,0xF5,0x7A, + + 0xFE,0x91,0x6B,0xE3,0x7F,0xA1,0x33,0x09,0x31,0xC8,0x28,0x6D,0xA1,0x06,0xFA,0x1C, + + 0x4D,0x6F,0xF5,0x61,0xF4,0xB8,0x9C,0x3B,0xE3,0x42,0x35,0x00,0xFE,0x6F,0x04,0xF3, + + 0x85,0x3F,0xFD,0x95,0xD3,0xA0,0x6A,0x40,0x2C,0x54,0xC7,0x44,0x47,0xE2,0xB9,0xD4, + + 0x79,0x6A,0xF5,0x91,0xD2,0xAA,0x5C,0xB0,0x12,0xDC,0x5F,0x76,0x35,0x2C,0xB4,0xA4, + + 0x05,0x3D,0x5F,0x6F,0x30,0x7D,0x55,0xF0,0x4F,0xDD,0x0D,0x59,0x09,0x9E,0x37,0x6F, + + 0xA5,0xD1,0x88,0x61,0x30,0xA1,0xC2,0xE1,0xA6,0x23,0xC5,0xB5,0xA9,0xE8,0x75,0x20, + + 0x8A,0x39,0xE8,0xD6,0x95,0xF4,0x05,0x6F,0x11,0xD0,0x92,0xA1,0x70,0x74,0x84,0xED, + + 0xA5,0x91,0x37,0xC6,0x31,0xFF,0x23,0x72,0x14,0xA0,0x7B,0x56,0x7F,0x65,0x70,0x21, + + 0x23,0x16,0xE9,0x11,0xC9,0xB6,0xAA,0xB6,0xD9,0xE1,0x27,0x87,0xF2,0xB8,0xE6,0xB1, + + 0x66,0xF5,0x86,0x55,0xB6,0xD0,0xBD,0xAE,0xAD,0xD4,0xED,0xEA,0xEF,0xF1,0xEA,0xDF, + + 0x1F,0x08,0x0E,0x16,0xBE,0xBC,0x6F,0x2A,0xCB,0x95,0x73,0xC8,0x83,0xFE,0x10,0xB3, + + 0x8A,0x82,0x54,0xE8,0xB0,0x3F,0xBA,0x4A,0x25,0x96,0x59,0xFE,0x71,0x04,0x19,0xA3, + + 0x0B,0x8A,0x7D,0xED,0x8F,0x5E,0x9B,0x39,0xA4,0xD0,0x99,0x15,0x5D,0x96,0xE9,0xE8, + + 0x99,0xD4,0xAE,0x5F,0xB9,0x70,0x5F,0xB9,0x9A,0xD6,0xFD,0x5D,0x1C,0xFD,0xA2,0x1A, + + 0x22,0x9F,0xBC,0xCF,0x9D,0xBA,0x76,0x72,0xEE,0xAC,0xD6,0xAE,0x1D,0x03,0x43,0xAA, + + 0x8C,0x9B,0x91,0x3C,0xBD,0x95,0x26,0xFF,0x0C,0xF5,0x3E,0x8B,0x61,0xBC,0x5F,0x5A, + + 0x4F,0x98,0xEB,0xB1,0x1F,0x34,0x17,0xE9,0xA3,0xD3,0x8F,0xEB,0xCF,0xFE,0x4F,0x19, + + 0x0E,0x96,0xD0,0xBD,0xFE,0xFF,0x07,0x3D,0xF9,0x93,0xFF,0xFF,0x07,0x71,0xAD,0x7F, + + 0x9D,0x1B,0x53,0xF7,0x68,0x84,0x4B,0x6E,0x3B,0x3A,0x50,0xA1,0xB8,0x68,0xB5,0x21, + + 0xA0,0xA0,0x64,0x87,0x46,0x2B,0xE5,0xCD,0x43,0x9A,0xC1,0xC9,0x97,0x73,0x4E,0x85, + + 0xC0,0xBB,0xCE,0x29,0x79,0x73,0x07,0x43,0xA8,0x4F,0xC5,0xE2,0x39,0x21,0x31,0x21, + + 0x9E,0xAC,0x00,0x66,0xE5,0x82,0xAC,0xB5,0x9C,0xE1,0x23,0xB1,0xD7,0x58,0x66,0x99, + + 0x36,0xA9,0xB6,0x37,0x2A,0x2B,0x45,0x41,0xEF,0xF9,0xD6,0x4C,0x7A,0xD3,0x00,0xA1, + + 0x60,0x9A,0xDE,0x36,0xEC,0x88,0x62,0x83,0x33,0xF7,0xBE,0x84,0xB8,0x14,0xD0,0x86, + + 0x48,0xDC,0xDD,0x47,0x7B,0xF5,0x09,0x65,0xEB,0x86,0x88,0x67,0x77,0x0A,0x5F,0x6D, + + 0x68,0x43,0x9E,0xF0,0x64,0x49,0x99,0xF4,0xF4,0x4A,0x80,0x81,0x76,0xB8,0xA2,0x7A, + + 0x6A,0x54,0xBA,0xF3,0xF1,0x99,0xC9,0x63,0x37,0xC4,0x9A,0x39,0x6B,0xB3,0x3D,0x09, + + 0x6A,0x48,0x4E,0x15,0x18,0xE9,0xDA,0xC9,0x45,0xC4,0x4A,0x4F,0x29,0x07,0x7D,0x0E, + + 0x8E,0x8A,0x43,0x89,0xEC,0x68,0x48,0x62,0xB3,0xA3,0x21,0x8C,0xC8,0xAF,0x55,0xB4, + + 0x89,0xAF,0xAD,0xA8,0xB3,0x8F,0x65,0x11,0x20,0x5A,0xF9,0x34,0xD8,0xDB,0x18,0xF7, + + 0x60,0xBD,0xFC,0xE8,0xC4,0xF1,0xAD,0xAF,0x80,0xDD,0xD3,0x0A,0xA5,0x00,0xDC,0x28, + + 0x57,0x04,0x48,0xDE,0x8A,0x78,0x7D,0x4D,0xB2,0x46,0x39,0x82,0xD4,0x90,0x3D,0x4E, + + 0x2B,0xA1,0x03,0xC9,0xA1,0x26,0x5B,0x79,0x16,0xDF,0xE9,0xF2,0x25,0xE3,0x81,0x2A, + + 0xE7,0x80,0xF3,0xBD,0xF3,0x6D,0xE0,0x8A,0xB7,0xEB,0xBD,0xC1,0x32,0xDC,0x0F,0x6C, + + 0x9C,0xAB,0xD6,0x3D,0xDB,0xB3,0x2A,0x88,0x08,0x5D,0x6B,0xD7,0x40,0x1C,0x4C,0x6C, + + 0x9F,0x53,0x58,0x85,0x41,0x91,0x62,0xB6,0x80,0xD2,0xBE,0x45,0xD2,0xF1,0x5D,0x79, + + 0x6C,0xE9,0xBB,0x20,0xC2,0x9D,0x03,0xC3,0x80,0x27,0x72,0xE5,0xF4,0x5B,0x06,0x50, + + 0xD6,0xE4,0x1C,0x84,0xC5,0x9E,0x34,0x42,0x6D,0x11,0xA3,0x9D,0xF7,0x31,0x3C,0xC2, + + 0x62,0xB4,0xFF,0x5A,0x33,0xA7,0x32,0xDD,0x63,0x14,0x65,0x86,0x51,0xB6,0x5F,0xA9, + + 0x00,0x17,0x0C,0x51,0xA9,0x93,0x49,0x8F,0x36,0x5C,0xDE,0x16,0xFC,0xF3,0x56,0xC3, + + 0x75,0xBB,0xFF,0x2D,0x36,0xF9,0x49,0xE3,0x2A,0xDD,0xB5,0xAA,0xDF,0x7B,0x17,0x47, + + 0xDB,0x55,0x1C,0xA6,0x89,0x75,0x5C,0x75,0xED,0xF0,0x59,0xB5,0xF1,0x6C,0xD9,0x72, + + 0x94,0x21,0x15,0x6C,0x96,0x98,0xD6,0x9B,0x97,0x43,0xE9,0x28,0x7E,0xDD,0xCE,0xC5, + + 0x5B,0x62,0x9B,0x9D,0x8C,0x7B,0x20,0x61,0x00,0x83,0x9C,0x9F,0x98,0xD6,0xB6,0xE1, + + 0xD3,0xE5,0x90,0x8F,0x44,0x9A,0x58,0x2D,0xA8,0x7F,0x68,0x45,0xA3,0x38,0x5A,0x68, + + 0xE8,0x38,0x4F,0x79,0xB8,0x11,0x47,0xB0,0x00,0xA1,0xCB,0x4E,0xDF,0xC4,0x82,0xF3, + + 0xC3,0xFD,0x02,0xFF,0x39,0xCC,0x6E,0x1B,0x52,0xFE,0xF0,0x18,0x66,0x6C,0x14,0xD9, + + 0x88,0xAD,0x9D,0xAF,0x05,0x7F,0x9E,0x7D,0xE2,0x55,0xFE,0xED,0x9A,0x7B,0x3F,0x4D, + + 0xA4,0x45,0x6B,0xBE,0x9C,0x98,0x0D,0x6D,0xEC,0xD7,0x0D,0x47,0x7D,0xEC,0x71,0xE5, + + 0xC3,0x12,0x0F,0x34,0xB8,0x5F,0x5D,0xE7,0xC1,0xAB,0x72,0x98,0x58,0x7E,0x69,0xBA, + + 0x37,0xAA,0xF1,0xA2,0x12,0xC2,0x9C,0xCA,0xD8,0x06,0xE9,0x29,0xB1,0x66,0xA1,0x74, + + 0xEE,0xF2,0x90,0x27,0x27,0x5E,0x02,0xC1,0x6F,0x6E,0xFB,0x33,0x53,0x9A,0x99,0xE3, + + 0x9C,0x99,0x6D,0x65,0x63,0xC7,0x39,0x27,0xEC,0x95,0x31,0xE7,0x90,0xE1,0x28,0x75, + + 0x6E,0x10,0x97,0xA2,0xE3,0x7C,0xE9,0xC0,0xA3,0x6C,0xAC,0x08,0xE5,0xE7,0x78,0xEE, + + 0xE7,0x2B,0x20,0xA2,0x17,0x64,0x63,0xC2,0x40,0x86,0x30,0xE3,0xBE,0xEC,0x0F,0x92, + + 0x55,0x0E,0xF0,0xDA,0x37,0x37,0x2C,0x4F,0x8F,0x86,0x9E,0x86,0x56,0x25,0x72,0x30, + + 0xF6,0xEA,0x81,0x0D,0x22,0xAB,0xA9,0x23,0x82,0x62,0xA7,0x14,0xEA,0x88,0x8B,0x62, + + 0xF7,0xC5,0x25,0x24,0xE5,0x06,0x29,0x83,0x01,0x66,0x99,0x3D,0x63,0xEA,0x7B,0xE7, + + 0xA9,0x27,0x76,0x9D,0xBD,0x17,0x64,0xD9,0x2E,0x67,0x32,0xD3,0x00,0xAA,0xF9,0x09, + + 0x3C,0x21,0xD4,0xAA,0xF4,0x0A,0x2B,0xBE,0x43,0x1B,0xBE,0xA0,0xBC,0x46,0x74,0x03, + + 0x29,0x25,0xD8,0x7C,0xFA,0x5B,0xE7,0xD8,0xBC,0x67,0xBA,0x80,0x94,0xFB,0x0D,0x72, + + 0xC8,0xF0,0x78,0xEC,0xF7,0x06,0x01,0xD9,0x61,0xC4,0xAA,0xD7,0x5D,0xA6,0xA6,0x71, + + 0xAF,0x25,0x31,0xB1,0xF7,0xDF,0xE4,0xEE,0x40,0x79,0xAA,0xEA,0xB7,0x67,0x5C,0x6B, + + 0x7F,0xCF,0x2A,0x2E,0xBE,0x32,0xBE,0xE6,0x49,0x4F,0x6B,0x8E,0xDF,0xFB,0xF5,0xAB, + + 0xDE,0x05,0xB5,0xF6,0x69,0xEC,0x4B,0x98,0xA2,0x8C,0xE1,0x6E,0xD8,0x8C,0xAF,0xA2, + + 0x2E,0x0F,0x5F,0x3D,0x10,0x59,0xFB,0xE8,0xED,0x12,0xF3,0xE7,0x5D,0xF3,0x13,0xEB, + + 0xD4,0x89,0x9E,0x79,0xC3,0x0F,0x2A,0xC2,0x47,0xB0,0x92,0x7B,0x4C,0x5D,0xEC,0xCB, + + 0x44,0xD3,0xFA,0xBD,0x57,0xA4,0xF3,0x9B,0x8C,0xE0,0xB4,0xB2,0x7C,0x95,0xFA,0xDB, + + 0xD3,0xE7,0xDE,0xA8,0xD2,0xE7,0xF5,0x4E,0xDC,0x76,0xA0,0x60,0x3E,0xFB,0xE9,0xD6, + + 0xA4,0x53,0x79,0x50,0xB3,0x33,0xD1,0x20,0xC4,0xD9,0x83,0x9E,0x3D,0x5A,0x9B,0xB1, + + 0x5E,0xF7,0xF4,0x5E,0x6C,0xF6,0xA4,0x91,0x5E,0x96,0xB7,0x6A,0x01,0xA8,0xAC,0x57, + + 0x3F,0x9D,0xC0,0x96,0x77,0x61,0x04,0xD5,0x8E,0x96,0xA3,0x76,0x04,0x80,0x9E,0x47, + + 0xA8,0xFC,0x25,0xB7,0xB0,0xD4,0xB5,0x97,0x0F,0xF5,0x2A,0x2A,0xC9,0x65,0xEF,0xC0, + + 0xC9,0xB4,0xB9,0xC8,0x91,0x1A,0x05,0xCC,0xDF,0x95,0x3D,0xAA,0xBD,0x2C,0x7F,0x9D, + + 0xC9,0x83,0xB6,0xCE,0x4A,0xA3,0xAF,0xD9,0x54,0x7C,0xCE,0x9C,0x83,0x2D,0x74,0x72, + + 0xAD,0xD4,0x6E,0x1B,0xA7,0xA2,0x46,0x42,0x6D,0x78,0xBE,0x83,0x96,0x28,0x02,0x7D, + + 0x4D,0x35,0x85,0xF9,0x9D,0x0A,0x29,0x49,0x0C,0x0F,0xCF,0xDC,0xA7,0xA1,0x77,0x9F, + + 0x84,0x1F,0x70,0x09,0xAF,0x76,0x70,0x48,0x99,0x46,0x06,0x03,0x16,0x4A,0x40,0x62, + + 0x08,0x3C,0xBC,0x4A,0x38,0x75,0x2E,0xEA,0x87,0x3D,0xDB,0x13,0x13,0x67,0xFD,0x3A, + + 0x2B,0x3D,0xD0,0x7A,0x9C,0x48,0xE9,0x18,0xC3,0x70,0xA0,0xFB,0xF7,0x58,0xF6,0xDA, + + 0xDA,0x33,0xD9,0x6E,0x1D,0xDB,0xB7,0x6E,0xB8,0x73,0xDA,0x16,0x3F,0xBC,0x78,0x9A, + + 0xA3,0x3F,0xB5,0x5B,0x9C,0xBF,0x2F,0x19,0xE9,0xBD,0xA6,0xED,0x1A,0xF6,0x84,0x94, + + 0x80,0xC0,0x84,0x90,0x34,0x3B,0x30,0xAA,0x41,0x80,0xE0,0xA0,0x09,0xE9,0x09,0xE6, + + 0xE0,0x1A,0x75,0x90,0x4C,0x83,0xC2,0xA0,0x72,0x45,0xFE,0x08,0xB8,0xD0,0x3B,0xE9, + + 0xF7,0xCD,0xA1,0x63,0xF8,0x2F,0xF9,0xA9,0xF3,0xC6,0x3D,0xCD,0x3F,0x2F,0x43,0xF7, + + 0x03,0x07,0x19,0x67,0x7A,0x52,0x27,0xC1,0x66,0x58,0x59,0xB0,0x78,0x69,0x08,0x0C, + + 0xDE,0x47,0x43,0xAC,0xB5,0x66,0xC4,0x44,0xA3,0x5F,0x10,0x42,0xAD,0x7F,0x6B,0x6D, + + 0xF7,0x1C,0x78,0x13,0x15,0x67,0xF0,0x55,0x67,0xEE,0x18,0x80,0xCF,0x6F,0xE2,0xE0, + + 0x5A,0x05,0x01,0x90,0x94,0x64,0xEA,0x87,0xD2,0x09,0x29,0xE1,0x92,0x51,0xFE,0x38, + + 0x85,0x65,0xE6,0x15,0xCF,0x8A,0x4C,0x75,0xA8,0x16,0x99,0x9D,0x60,0x2A,0x89,0x6A, + + 0xF7,0x84,0xFC,0x34,0x2B,0xE7,0xB6,0x5E,0xB7,0x41,0x14,0x5F,0x20,0x27,0x8A,0x5E, + + 0x4F,0xF4,0x3B,0xE1,0xEB,0x52,0x85,0x58,0x5D,0x52,0xA4,0x10,0x31,0xF8,0x49,0x14, + + 0xA8,0x07,0x7B,0x05,0x3F,0xF1,0x53,0xC1,0x48,0x07,0x92,0x5E,0xAC,0x25,0x21,0x9C, + + 0xCA,0xEB,0xC1,0xF3,0x62,0x69,0x44,0x4F,0x44,0xCD,0xE5,0x05,0x38,0xC8,0x64,0x3A, + + 0xB1,0x13,0x89,0x8B,0xD8,0x0C,0x1B,0x80,0x41,0x01,0xD0,0x8A,0xFF,0xEA,0x8A,0x5D, + + 0xDF,0x16,0x72,0xEE,0x13,0x6D,0x46,0x1A,0xB4,0xC6,0x81,0x68,0xDE,0x9C,0xF4,0xED, + + 0x7E,0x2D,0x8B,0x59,0xA9,0xA4,0x0B,0xE5,0x48,0x72,0xD7,0x2D,0xCE,0xC5,0x33,0x27, + + 0x2C,0x1F,0x27,0x79,0x16,0x6E,0x12,0x85,0xCF,0x53,0x4B,0x0F,0xE8,0x70,0x3C,0x05, + + 0x2E,0x9A,0xBE,0x77,0x08,0x9D,0xCF,0xEA,0x1F,0x25,0xAC,0x5F,0x99,0x13,0xA4,0x08, + + 0xA4,0x03,0x84,0x90,0x99,0xDE,0x22,0x40,0x09,0x5C,0xFD,0x4B,0x80,0xF2,0xD2,0x04, + + 0x26,0x13,0x90,0xC2,0x7A,0x1B,0x4E,0xEF,0x9B,0x28,0x41,0x5F,0x09,0xF3,0x33,0x61, + + 0x82,0xD1,0xB3,0xAD,0xD9,0x3E,0x0B,0xD3,0x5E,0x11,0xBF,0x4B,0x92,0x7F,0xEF,0x45, + + 0xB1,0x2B,0x51,0x3B,0xC7,0x67,0x2D,0xC7,0xCE,0x31,0xD4,0xE4,0x72,0x74,0xF9,0x2D, + + 0x23,0xCE,0xF7,0x7C,0xC0,0x33,0x9C,0x52,0xE0,0x58,0xDC,0xF4,0x73,0x75,0xB8,0x38, + + 0xA0,0x8D,0x3E,0xBE,0x88,0x89,0x6C,0xA3,0x43,0x14,0xD5,0xE5,0xF2,0x76,0x35,0x55, + + 0xAB,0xE4,0x63,0x27,0xB7,0xB7,0x24,0xB6,0x1E,0x21,0xDD,0xF5,0xF3,0x77,0xEA,0xFB, + + 0x37,0xBE,0x79,0xFF,0x04,0x5B,0x99,0x39,0xD4,0x61,0x81,0x5F,0xFC,0xF3,0x2E,0x72, + + 0xC0,0x43,0x71,0xE2,0x5B,0x8C,0x45,0xAF,0x16,0x5B,0xE5,0xCF,0x10,0xD8,0xD4,0xFA, + + 0xD2,0x93,0x7C,0xF2,0xD8,0x27,0xA6,0xC1,0x93,0x51,0xB3,0x15,0x00,0x3E,0x15,0x9B, + + 0x3B,0x13,0x74,0xEE,0x8D,0x44,0xC4,0x16,0xEF,0x51,0x81,0x52,0xFF,0x83,0x78,0xE4, + + 0x42,0x11,0xF1,0x4E,0xF7,0xB3,0xAB,0x96,0xFC,0x03,0xD6,0xEC,0x7A,0x7C,0xB5,0x28, + + 0x29,0x5F,0x97,0xCC,0x3D,0xBD,0x3F,0x12,0x9F,0x6C,0xDE,0xFC,0x7B,0x7D,0xB8,0xBA, + + 0x92,0x7D,0x07,0x49,0x52,0xC1,0x68,0x62,0x51,0xC3,0xD7,0xED,0xFA,0x7E,0x8B,0x08, + + 0x98,0xC2,0x41,0x5F,0x76,0x30,0xE8,0xD5,0x0A,0xC0,0xDF,0xFD,0xFB,0x7F,0x30,0x60, + + 0x00,0xCC,0x2F,0xBE,0x27,0x9F,0xB4,0xE2,0x40,0x00,0x25,0xD5,0x68,0xFB,0xEA,0x9A, + + 0x26,0xA1,0x10,0xE5,0x50,0xDA,0xC2,0xDA,0xDD,0x0C,0x14,0xB2,0x5B,0x7C,0x31,0xEB, + + 0x40,0x4F,0x19,0xF4,0xDD,0xB2,0xA1,0x51,0xF7,0x79,0x56,0x51,0x59,0x80,0xEB,0xFB, + + 0x41,0x4E,0x90,0xFB,0x6D,0x18,0xC6,0x74,0xF6,0x27,0xF1,0x86,0xD3,0x81,0xDF,0xA4, + + 0x22,0x9F,0x3F,0xC6,0x61,0xD1,0xCF,0x28,0x56,0xC0,0x08,0x42,0x56,0xE4,0x69,0x34, + + 0xEC,0xD4,0xA8,0xAA,0xAB,0xE7,0xAC,0x2C,0xD4,0xFA,0xF8,0x76,0x57,0xE5,0x1C,0x25, + + 0x6D,0xB7,0x21,0x83,0x84,0x5D,0x77,0x24,0xE8,0x1A,0xF1,0x67,0xD6,0xE6,0x7F,0x31, + + 0x78,0x2A,0xB6,0xA7,0xA4,0x31,0x07,0x5F,0x13,0xF6,0xF9,0x77,0xD7,0xE7,0x63,0x5E, + + 0x2F,0xCB,0xE2,0xF6,0xA0,0x53,0xD0,0xEA,0x54,0x35,0x79,0xDE,0x54,0xE7,0xEE,0x9F, + + 0x4E,0x7A,0xA1,0xDF,0xF4,0x00,0x32,0x9A,0x5F,0x7A,0xC2,0x0C,0x95,0xE6,0x43,0x09, + + 0xD5,0x87,0x9A,0xF3,0x64,0xE8,0x9F,0xB9,0xDC,0xC2,0x8D,0x06,0x14,0x43,0xEF,0x9D, + + 0xCB,0xEE,0xB9,0xE1,0x76,0xFA,0x62,0x34,0x29,0x40,0x6F,0xCC,0xBF,0x4A,0x77,0xEF, + + 0xF9,0x71,0x58,0x09,0xDC,0xAE,0xB2,0xEE,0xEC,0x8E,0xF2,0x6E,0x5E,0xEC,0xB9,0xA4, + + 0xF2,0x96,0x44,0xAC,0x2C,0x60,0x78,0xCE,0x4C,0xCE,0xFA,0x7E,0x5F,0xED,0x71,0x4C, + + 0x71,0x03,0xAB,0xC2,0xDA,0xA8,0xB3,0xD5,0x43,0x8C,0xF3,0x6F,0xDE,0xEE,0xED,0x05, + + 0x02,0xED,0x2B,0xDB,0xCE,0x52,0x1B,0x2C,0x6C,0xC2,0xFB,0x7F,0xDF,0xEF,0x22,0xF0, + + 0xDB,0xD2,0x7D,0x86,0x4F,0xBC,0x4B,0xD0,0x57,0xE4,0xF2,0xA4,0x76,0xEB,0x74,0x83, + + 0x16,0xD5,0xC2,0xE5,0x0D,0xF3,0x04,0x4D,0x56,0x95,0x78,0xCC,0x74,0x11,0xEF,0xD7, + + 0x4D,0x19,0xFE,0x25,0xB2,0xC1,0xCF,0x21,0x71,0x88,0x52,0xD1,0x7B,0xB0,0xAF,0x91, + + 0xE5,0x1E,0x69,0xCC,0x40,0xBC,0x87,0x74,0x3B,0xDB,0x7D,0x32,0xA2,0xFE,0xA4,0x46, + + 0xB4,0x39,0x24,0xD6,0xCE,0xB2,0x0B,0x25,0x60,0x54,0xF4,0xE6,0x76,0xF4,0x56,0x63, + + 0x1F,0x0A,0xC2,0xD6,0x37,0xB5,0x3F,0xF6,0xE8,0x94,0xFC,0xF6,0x77,0xF5,0xF4,0xF3, + + 0xA2,0x29,0x4B,0x35,0xB0,0x36,0xA7,0xA3,0xAE,0xD7,0xF5,0xE7,0xF6,0xF6,0xB2,0x53, + + 0xD0,0xE2,0xED,0xA5,0x84,0x21,0xBD,0x77,0x11,0xCA,0xFD,0xF7,0xF7,0xF7,0x7F,0x8C, + + 0xCB,0xDA,0x12,0xF1,0x9F,0x15,0xB3,0xD8,0x8B,0x27,0xBC,0xAA,0xDF,0x58,0x10,0x6A, + + 0x4D,0xD9,0x73,0xA7,0x56,0x31,0xBA,0x52,0xF5,0x19,0x0F,0x43,0x8F,0x4C,0xE3,0xCE, + + 0xAD,0xD8,0x36,0x74,0xCF,0xBA,0xF7,0x7F,0xA9,0xDE,0xA2,0x8C,0xF1,0x21,0xEF,0x1E, + + 0x99,0x10,0x7B,0x62,0x3C,0x60,0x66,0xB1,0x08,0xD2,0xA3,0x47,0xFD,0xB9,0xA6,0x0A, + + 0x3B,0x61,0x1C,0x4C,0xF3,0xB3,0x5E,0x88,0x5D,0x93,0xF6,0xEE,0x7E,0xFC,0x37,0xA4, + + 0x8A,0x1B,0xE5,0x19,0x39,0x3D,0x46,0x10,0xE2,0x20,0xFE,0xFE,0x7F,0xFD,0xEC,0x2B, + + 0xB2,0xF2,0xBE,0x29,0xB8,0xFC,0xB7,0x6F,0x48,0xD0,0xF7,0xEF,0xFE,0xFE,0x6B,0x9B, + + 0xB3,0xD1,0x3D,0x9F,0xA7,0xFD,0xBF,0x7F,0x36,0xD5,0xFF,0xFF,0xFF,0xFF,0x3A,0xF3, + + 0x38,0xAF,0x7F,0x76,0x72,0xDF,0x76,0x90,0xA9,0x4F,0x50,0x64,0xB9,0xB1,0x58,0x11, + + 0x6A,0x22,0x77,0x6A,0x3F,0xD5,0x42,0x40,0x29,0xA0,0xE0,0x47,0x3D,0x6A,0x12,0xF2, + + 0xF8,0xA9,0x7A,0x7A,0xF8,0x2F,0x77,0x84,0xC1,0x92,0xE9,0x02,0x39,0x93,0xFC,0xE0, + + 0xA7,0x01,0x29,0xE6,0x1D,0x61,0x67,0x37,0x20,0xC0,0x1D,0x26,0xE1,0x52,0x80,0x05, + + 0xA3,0xDB,0x77,0x6D,0x65,0x24,0xFC,0x1F,0x88,0x3D,0x89,0x3C,0x54,0x06,0x7B,0xD0, + + 0xA2,0x9A,0xC8,0xAF,0x60,0x25,0x42,0x72,0xD1,0x4F,0x98,0xB3,0x60,0x73,0xF5,0x23, + + 0x7D,0x00,0xFF,0x34,0x2D,0x7D,0x0B,0x63,0x71,0x9B,0x84,0x41,0xF2,0x77,0xFD,0x33, + + 0x78,0x6B,0x09,0x54,0x3D,0xDA,0xDC,0xF5,0x81,0x45,0x63,0xE7,0xA3,0x75,0x3C,0xC0, + + 0x60,0x71,0x02,0x8F,0x1E,0x6A,0xA1,0xDB,0xC4,0xC3,0x94,0x04,0xD8,0x24,0x74,0xBD, + + 0x8B,0x0D,0xC8,0x18,0x9E,0x9B,0xBA,0xD7,0xFD,0x46,0xBC,0x99,0x2D,0xCD,0x7D,0xB9, + + 0x69,0x69,0x3F,0x4D,0xD0,0x29,0x17,0xCB,0xCE,0x08,0x95,0x18,0xF0,0x32,0x51,0x7B, + + 0xE2,0xA8,0x4B,0x8D,0x81,0x8A,0xF7,0xAA,0xB1,0x16,0xC9,0x00,0x30,0x51,0xFD,0xD3, + + 0xF5,0xD1,0xD4,0x2E,0xE5,0xF1,0x40,0xEC,0x4C,0x0E,0x68,0x1C,0xDA,0xEA,0x58,0xA6, + + 0xF0,0x80,0x8A,0xA3,0xEE,0xAE,0x0A,0xE8,0x67,0xB8,0x4A,0x3B,0x7F,0x76,0x20,0xB7, + + 0x63,0x27,0x17,0xB3,0x67,0xAF,0xDF,0xED,0xC4,0x70,0xF7,0x2D,0xDE,0x00,0x19,0xA6, + + 0x78,0x4D,0x3E,0xA3,0xE0,0x2D,0x8D,0x85,0xCB,0xF3,0x97,0x1B,0xF8,0x64,0xB1,0x7D, + + 0x22,0xCB,0x28,0x01,0x5B,0x9B,0x75,0xE0,0x64,0x1E,0x03,0x5C,0x70,0xCB,0xA0,0xE3, + + 0x47,0x97,0xF2,0xA1,0xD8,0xD0,0xE1,0x9E,0xC2,0xFC,0x23,0x85,0x62,0x8E,0x36,0x05, + + 0xFD,0xB0,0x85,0x76,0xD7,0xBF,0x57,0x25,0xE6,0x16,0x93,0x21,0xF8,0x15,0x89,0xE2, + + 0xCB,0x9A,0x21,0x06,0x98,0x39,0xCF,0x81,0xE9,0xAC,0xA6,0x09,0x06,0xFE,0xC8,0xA2, + + 0xD5,0x71,0x0B,0xB7,0x1B,0xB6,0xC3,0x73,0x05,0xF9,0x56,0xD6,0x12,0x81,0x99,0xB2, + + 0xD0,0x70,0x2B,0x14,0x37,0x95,0x18,0x83,0x1F,0xF4,0x75,0x07,0xFF,0xFE,0x7D,0x3E, + + 0xA4,0x54,0x3A,0xB6,0x93,0x5A,0xC6,0x72,0x89,0x5E,0xAB,0xE3,0x13,0xF5,0x75,0x2A, + + 0x2E,0xE1,0xD5,0xF1,0x80,0x1D,0x87,0x0E,0x0A,0x86,0x22,0x17,0x5F,0x78,0x26,0x1A, + + 0xA8,0x12,0x08,0xFF,0x54,0xB8,0x2C,0x19,0x02,0x87,0xE9,0x2E,0xE9,0xFD,0x50,0x2C, + + 0x56,0x6C,0x22,0x0F,0x10,0x33,0xDE,0xB9,0xC7,0x37,0x5E,0xAC,0x1F,0x73,0x85,0x78, + + 0xC2,0x1A,0xF9,0xA5,0x51,0x2B,0x20,0x61,0x9B,0x5A,0x57,0x29,0x71,0x16,0x13,0xEB, + + 0x52,0xE0,0x59,0x19,0xBF,0x48,0xA2,0x26,0x1C,0xD2,0xDF,0x55,0xBA,0x36,0x38,0xE5, + + 0xDB,0xCA,0x7E,0x2C,0x6C,0x52,0x00,0x19,0xE7,0x3E,0x69,0x68,0x7C,0xB5,0x0E,0xE8, + + 0x2D,0x5F,0x03,0xAF,0x2C,0x7F,0x20,0x0C,0x6D,0x26,0xA1,0x14,0x6E,0x30,0x39,0xE5, + + 0xAC,0x9C,0x9E,0x7E,0x1F,0x98,0x29,0x18,0x17,0x3C,0xEF,0x17,0x56,0x73,0x8F,0x9C, + + 0xAD,0x9D,0x0B,0xBE,0xB8,0x1D,0x5F,0x8A,0x87,0x56,0x26,0xF5,0x5E,0x00,0x20,0xF1, + + 0x62,0xE5,0x70,0xED,0xFD,0x83,0x56,0x1A,0x45,0x90,0xE8,0xAE,0xBD,0x7A,0x38,0x16, + + 0x0C,0x7E,0xF8,0xE5,0x3F,0x95,0x58,0x78,0xA8,0x6C,0x00,0xD6,0x09,0xFA,0x19,0xF0, + + 0xEA,0x83,0xF7,0xE5,0x5C,0xA1,0x90,0x1B,0x58,0x73,0xE9,0xB7,0xE7,0xAE,0x13,0xE0, + + 0x92,0x2C,0x79,0x06,0xF9,0x83,0xAF,0xD1,0x39,0xD9,0xF3,0x51,0xF6,0xB3,0xE0,0xCE, + + 0x00,0xE6,0xBB,0x7D,0x10,0xAE,0xCD,0x39,0x97,0x99,0xE0,0xF3,0x2F,0x69,0x16,0x6F, + + 0x6C,0x64,0x78,0x25,0x4C,0xAC,0xB8,0xF7,0xA8,0xC6,0xB5,0xB6,0x3E,0x6E,0x47,0x31, + + 0x6D,0x57,0x9E,0x54,0xAE,0x47,0x5A,0xE7,0xCE,0xA1,0x0E,0x18,0x5B,0x40,0x6D,0x20, + + 0xAE,0x05,0x69,0xC6,0xCC,0x0A,0x3C,0xF3,0x7A,0x66,0x5C,0x4A,0x64,0xAA,0xEF,0xF7, + + 0x0E,0x53,0xBF,0x49,0xF5,0xD2,0xE9,0x2A,0xBC,0x6B,0x1A,0xA7,0xD9,0x6A,0x14,0x7B, + + 0x65,0x84,0xD3,0x6F,0x0A,0xBF,0xCE,0x55,0x4B,0xAB,0x9A,0x16,0x7D,0x4A,0xD6,0x8F, + + 0xD0,0x6A,0xC5,0x62,0xFF,0xAE,0x04,0x9F,0xCA,0xEA,0x1B,0xB6,0x59,0x49,0xD6,0xE2, + + 0x8F,0x10,0xE3,0x16,0x74,0xD2,0x6B,0x55,0xAC,0xCF,0xEB,0x01,0xA9,0x1E,0x9D,0x39, + + 0x62,0xE0,0xFC,0xDE,0xE1,0x01,0x4A,0x95,0xFB,0xAF,0xEA,0xA3,0x3D,0x96,0x99,0xDE, + + 0x4D,0x8F,0x6A,0x4F,0x48,0x00,0x5A,0x6A,0x07,0x2C,0xA8,0x51,0xB4,0x89,0x84,0x0B, + + 0x8A,0xA6,0x28,0x08,0x40,0xA4,0x88,0xEF,0xC0,0x21,0x64,0x9C,0x5A,0x63,0x79,0x47, + + 0x89,0xCD,0x24,0x3F,0x9B,0x0D,0x77,0x42,0x40,0x62,0xC3,0x81,0xB4,0xE0,0x3E,0x7E, + + 0xD0,0xD2,0x64,0x03,0xAF,0x1D,0x14,0x48,0xD1,0x59,0xEC,0xAB,0xF6,0xEC,0xBA,0xE1, + + 0x49,0xFD,0x6C,0x06,0x31,0x17,0xD4,0x3B,0x2D,0xC0,0xBC,0xB6,0x75,0xF1,0x6B,0xBD, + + 0x45,0x3D,0xB4,0x03,0xB2,0x01,0x15,0x29,0xE5,0x92,0x87,0x23,0xB4,0x5E,0x4B,0xF2, + + 0xA4,0xD3,0x3A,0xE9,0x7F,0x62,0x39,0x42,0x59,0xD0,0x2D,0x35,0x64,0x76,0xE4,0x59, + + 0xCD,0x25,0x84,0x8D,0x13,0xF6,0x71,0x73,0x0A,0x21,0x18,0x9D,0xE8,0x69,0xC0,0xA1, + + 0x1B,0xE3,0xDB,0x52,0x39,0x56,0x5C,0x15,0x61,0xAE,0x3A,0xF4,0x53,0x28,0xDE,0x59, + + 0x4D,0x07,0x25,0x51,0x34,0xEA,0xE3,0x67,0x91,0x7F,0x14,0xA7,0xB6,0xB8,0x53,0xFF, + + 0x31,0x9D,0x8D,0x99,0x65,0xB3,0x7D,0x80,0x8B,0xBB,0x87,0x97,0xA1,0x7C,0x32,0x2B, + + 0xCD,0x37,0xEE,0x12,0x3A,0xFA,0x87,0x0B,0xD4,0x9B,0x76,0xBE,0xB5,0xF8,0x48,0xEB, + + 0x2E,0xD2,0x11,0x7C,0x56,0xB6,0xFE,0xDD,0x6E,0xAB,0xC6,0xBA,0x94,0xD0,0x36,0xF8, + + 0x9C,0xF6,0x72,0xF1,0x1F,0xDF,0xF7,0xAF,0x89,0x98,0xB7,0xAF,0xFC,0x51,0xEF,0x1F, + + 0x29,0xF5,0x2F,0xEC,0x8D,0xF9,0x01,0xCA,0x8D,0x24,0x8D,0x8F,0xA9,0xB9,0x6B,0x8D, + + 0xC7,0x2D,0x61,0x4C,0xAB,0xAA,0x10,0x8B,0x6D,0xEC,0x15,0xD2,0x95,0xB8,0x66,0x9A, + + 0x29,0xDF,0xC3,0xCD,0x39,0xDF,0x60,0xEB,0x03,0xD9,0x5A,0x8C,0xDC,0x76,0x82,0xB8, + + 0xDE,0xC8,0x27,0x4B,0x78,0xB8,0xC0,0xDE,0xE8,0x05,0xCD,0x5F,0x6B,0x51,0xBA,0x5F, + + 0xA1,0xA1,0x39,0x5D,0x26,0x16,0x07,0x3D,0x85,0x9E,0x89,0xC3,0x14,0xBB,0x3A,0xB0, + + 0x99,0xAF,0x97,0xF7,0x68,0xAD,0xE8,0x53,0x78,0x2C,0x05,0xA0,0x12,0x50,0x16,0x2C, + + 0xB2,0x8C,0xB6,0x2D,0x79,0x50,0x88,0x42,0xAA,0x10,0x49,0xCE,0xB8,0x10,0xA5,0x73, + + 0x23,0x89,0xE7,0x3D,0x7B,0xB3,0x77,0x40,0xC1,0x62,0x04,0xDE,0x39,0x6D,0xF1,0x0C, + + 0x01,0xA5,0xF7,0x38,0x78,0xB2,0x67,0x1C,0xAA,0x92,0xBF,0x44,0x72,0xE6,0x7A,0xB3, + + 0x3A,0xA9,0x3B,0xC0,0x57,0x19,0x2E,0xCC,0xEE,0x49,0xA8,0x43,0xAF,0x6B,0x00,0x9C, + + 0x30,0xC8,0x73,0x0E,0x15,0x47,0x7B,0x8F,0xB6,0xC6,0x23,0x53,0xF2,0x9A,0x54,0x06, + + 0x48,0x57,0xEE,0x3A,0x4B,0xBA,0x2F,0xCC,0xC4,0x24,0x11,0xE1,0x84,0x6B,0x89,0xD5, + + 0xCC,0x1A,0x50,0x95,0x83,0x65,0xAC,0x8F,0x2A,0xEE,0x35,0xE7,0xD3,0xBA,0x92,0x7A, + + 0xE3,0x93,0xD4,0x20,0xF3,0x79,0x21,0xD9,0x34,0x4A,0xB4,0xCE,0x11,0xC7,0x9B,0xF0, + + 0x97,0xC6,0x9F,0x98,0x17,0x95,0xAD,0x11,0x4F,0xD2,0x31,0x52,0x8C,0x12,0x5A,0x87, + + 0x6F,0x46,0x84,0x0F,0x12,0x87,0x4C,0xA9,0xBB,0x3F,0x19,0x72,0x65,0x96,0x52,0x77, + + 0x2E,0x1B,0xB3,0xE7,0x35,0x26,0x8E,0x02,0xF1,0xBE,0xDB,0xD1,0x65,0x29,0x6A,0x2A, + + 0xB3,0x00,0x02,0xD0,0xBB,0xB3,0xAF,0x84,0x4A,0xF7,0xC8,0x6E,0x98,0x68,0xF7,0x1A, + + 0xAA,0xA0,0x8D,0x74,0xF2,0x1E,0x12,0x83,0xC9,0x51,0x93,0x8C,0xDB,0x72,0x7B,0x27, + + 0x0B,0x03,0x77,0x2F,0x61,0x2D,0x13,0x91,0x3E,0x0C,0xDB,0xF9,0x27,0xC8,0x1F,0x68, + + 0x2A,0xF0,0x27,0xCF,0x9F,0x27,0xE5,0x1B,0x30,0xBA,0x60,0x0D,0x5B,0x79,0xD3,0x9E, + + 0x02,0xE4,0x14,0xC3,0xC9,0x96,0x2A,0x9D,0x1C,0xFF,0x94,0xB7,0x44,0xB8,0x74,0xA2, + + 0x49,0x1C,0xEA,0xB8,0xDA,0xA0,0x62,0xB7,0xC0,0x8E,0x2B,0x89,0x85,0xA0,0x51,0xF2, + + 0xC9,0xA6,0x10,0x76,0xC8,0xAF,0xB5,0xD2,0x94,0x81,0x20,0x9C,0x44,0xE3,0xF2,0xE2, + + 0x02,0x70,0x61,0xE6,0xC9,0x95,0xA9,0xD3,0x1E,0xF7,0x5D,0xED,0xFA,0xDE,0x39,0x02, + + 0x83,0x0B,0x97,0x3E,0x34,0x76,0x01,0x93,0x58,0x38,0x0F,0xDA,0x76,0x7E,0x9F,0x2E, + + 0x9A,0xA6,0x6C,0xB6,0x84,0x50,0x60,0x52,0x65,0x17,0x8B,0xCF,0x1A,0xEE,0xF8,0xFC, + + 0x5D,0x4B,0x06,0x87,0x3E,0x3A,0x33,0x90,0xE3,0x16,0xAA,0xDB,0x80,0x83,0x32,0xBB, + + 0xD1,0x88,0xF5,0x3A,0xD8,0x38,0x9E,0x93,0x14,0x32,0xDD,0x71,0xF7,0x25,0xFD,0xF7, + + 0x48,0x1A,0x1B,0x7C,0xB8,0x27,0x81,0xAE,0xA0,0x89,0x07,0x5D,0xDB,0x38,0xFB,0x6B, + + 0x0F,0x92,0x0E,0x5A,0x1F,0x3A,0x21,0x3C,0x21,0xA9,0x89,0x4F,0x01,0xA4,0x79,0x2C, + + 0x5D,0x99,0x99,0xB5,0x2A,0x32,0xB3,0x58,0x4B,0x1A,0xA5,0x93,0x5B,0xDB,0x27,0xA4, + + 0x42,0x5F,0x5F,0x0D,0x99,0x0A,0x27,0x57,0x45,0x56,0xC9,0x85,0x12,0xEA,0x1F,0xBE, + + 0x2C,0x9C,0x46,0xBF,0x00,0xB9,0x6E,0x07,0xFF,0x81,0x75,0x54,0xA6,0xCF,0x1A,0x2B, + + 0x01,0x90,0xF0,0x3E,0x59,0x88,0x66,0x13,0xD8,0x88,0x65,0x4C,0xC5,0x22,0x32,0xBA, + + 0x96,0xBF,0xD5,0x4D,0x51,0x7A,0xFE,0x87,0xC4,0xF8,0x17,0x68,0x2A,0x01,0x19,0x79, + + 0x40,0x1C,0xB1,0xDA,0x1A,0xE0,0x01,0xC6,0x8C,0x82,0x70,0x92,0x26,0xA0,0xD8,0xEA, + + 0xD2,0x4F,0xDF,0x7C,0x99,0xC2,0xA7,0x1C,0x30,0x82,0xBB,0xE7,0x3F,0x71,0xF2,0xB6, + + 0x21,0x2C,0x04,0x65,0x29,0x57,0x06,0x43,0x25,0x1E,0xE6,0x0A,0xE9,0x4A,0x89,0x3B, + + 0xB7,0x34,0x5A,0x7C,0x9A,0x5D,0x6A,0x62,0x25,0x7D,0x04,0xD6,0xAC,0xE0,0x37,0x23, + + 0x72,0x22,0x97,0x3B,0x43,0xA9,0xC6,0x48,0x48,0x35,0x2E,0xB7,0x1D,0x92,0x5E,0xE2, + + 0x28,0x5B,0xF4,0x35,0x7F,0x25,0x21,0xE6,0x0D,0xC1,0xB8,0x6A,0xAB,0x45,0xD3,0xE2, + + 0xBB,0x5A,0x44,0xC9,0x14,0x67,0x70,0xE2,0xAE,0xD6,0xAE,0xCE,0xBC,0x76,0xDE,0x73, + + 0x84,0x79,0x1A,0xB8,0x7F,0x95,0xCE,0xA4,0x04,0x66,0xA6,0x94,0xAC,0x3B,0x57,0x7E, + + 0x38,0xDC,0xB3,0x27,0xFF,0xB4,0x1B,0x63,0xC6,0xB7,0xFF,0xDE,0x5E,0xCB,0x1A,0x15, + + 0xAF,0x0D,0x22,0xC8,0x3A,0x23,0x7A,0x5B,0xB5,0x49,0xA7,0x5D,0x64,0xE1,0x52,0xAA, + + 0xAE,0x56,0x6E,0x7A,0xBC,0x2E,0xC1,0x45,0x25,0xC4,0x3A,0xC5,0xBC,0x4A,0x31,0x0B, + + 0x73,0x27,0x1E,0x3E,0xA4,0xE8,0xB3,0xD4,0x2D,0xA9,0xE4,0x5C,0xA0,0x6B,0xF6,0x1A, + + 0x89,0xAB,0x2F,0x1A,0x39,0xE8,0xC4,0x45,0xE3,0x14,0x28,0xC5,0xB6,0x43,0x62,0xB3, + + 0xBF,0x17,0x9C,0x48,0xFF,0x2F,0x4C,0x0B,0x2E,0xB3,0x32,0xEB,0x6B,0xE6,0x02,0x38, + + 0xB0,0x83,0x98,0x5F,0x53,0x00,0x9D,0x3A,0x43,0x66,0x23,0x7E,0x24,0xEF,0x54,0xCF, + + 0xB0,0x20,0x50,0xBC,0x12,0xA3,0x8C,0x18,0xFC,0xA0,0xB3,0x1C,0xB7,0x91,0x53,0xB5, + + 0x0C,0x82,0x76,0x66,0x64,0x22,0x73,0x6A,0x2E,0x60,0xA0,0x44,0xA0,0xED,0x7E,0x81, + + 0x52,0x65,0x23,0x02,0x32,0xB7,0xC9,0xE5,0x99,0xA6,0x74,0x36,0x6C,0x25,0x2C,0x81, + + 0x4C,0x59,0x62,0x51,0x33,0x31,0x03,0x36,0x63,0x8E,0x2B,0xC8,0x1F,0x20,0x85,0x7D, + + 0xCF,0x3A,0xFC,0xF1,0xB2,0xF0,0xCA,0xDD,0x72,0x0D,0xCD,0x96,0x88,0x5D,0x98,0x32, + + 0x11,0x90,0x7F,0xD7,0xBD,0xF2,0x05,0x5D,0x49,0xDE,0xC3,0x8B,0xBF,0xC2,0x62,0xEB, + + 0xA6,0x62,0x50,0xA4,0x4E,0x4B,0xA0,0x71,0xC7,0x6B,0xAA,0xB3,0x76,0x50,0x12,0x6A, + + 0xCC,0x26,0xEC,0x2F,0x3B,0xF7,0xC7,0xB0,0xC6,0x28,0xCF,0x4E,0x71,0x8D,0xF5,0xDC, + + 0x94,0x1B,0x5E,0x7F,0x41,0x2D,0x0E,0x67,0xEA,0xB6,0xEB,0xAF,0x0E,0x45,0x53,0x7B, + + 0x6F,0x3E,0xE9,0x70,0x5E,0xBF,0x55,0x91,0x13,0x84,0x9F,0xD3,0xF7,0xF7,0x11,0x2F, + + 0xDC,0xDB,0x4A,0xAA,0xB1,0xF9,0xCB,0xED,0x91,0xAE,0x96,0x11,0x9D,0x57,0xFE,0x72, + + 0x83,0xD4,0xB0,0x0E,0xD6,0xE8,0x40,0x82,0x4F,0x34,0x04,0x3A,0x3D,0x36,0xA7,0xD3, + + 0xA7,0xD6,0x67,0x0A,0x74,0x17,0x49,0x92,0x19,0x8C,0xE7,0x5C,0xD6,0xE1,0x51,0xB2, + + 0xCE,0x64,0x91,0xFE,0xFF,0x14,0xBA,0xFC,0x0C,0x7D,0xBF,0xBF,0xFD,0xFB,0x1E,0xF8, + + 0xE6,0x93,0xF0,0xAC,0xC5,0xFE,0xC1,0x47,0x68,0xBE,0xF6,0xEE,0x7E,0xFC,0x66,0xDF, + + 0xC6,0x8E,0x09,0x21,0x8A,0x6B,0x46,0x11,0xDC,0xD3,0xFE,0xFE,0x7F,0xFD,0xB4,0x38, + + 0xD0,0x35,0x67,0x43,0x33,0xC3,0x51,0x85,0xC0,0x78,0xF7,0xEF,0xFE,0xFE,0xAF,0x5F, + + 0x18,0x92,0x87,0xD9,0x3C,0xDB,0x47,0x04,0x6C,0xD2,0xFF,0xFF,0x71,0x9D,0x80,0x19, + + 0x40,0x40,0x30,0x08,0xF1,0x43,0x16,0x7E,0xCD,0x22,0xA7,0x70,0x23,0x60,0xA7,0xE1, + + 0xED,0x0C,0x9A,0x10,0xF8,0xA0,0x0E,0x9D,0xAA,0x32,0x8E,0x56,0xAE,0xBC,0x00,0xDF, + + 0xEB,0xC7,0x83,0xF6,0xF4,0x89,0xBA,0xA4,0x53,0x7D,0x51,0x3D,0x83,0x9F,0x57,0x22, + + 0x01,0xA8,0x65,0x86,0xF9,0x29,0xA2,0x80,0xF7,0xEC,0x4D,0xCB,0x2C,0xE2,0x12,0x4F, + + 0xE9,0x95,0xB9,0x32,0xE1,0x34,0x46,0x48,0xA9,0x55,0x01,0x7B,0x6C,0x0A,0x5E,0x91, + + 0xFC,0x88,0x7B,0x69,0x15,0xF5,0xCE,0x0F,0x2B,0x34,0xE6,0xD8,0x91,0x65,0x61,0x61, + + 0x6B,0x47,0x7B,0xBE,0x6E,0x25,0xEA,0xD0,0xAE,0xE9,0xEF,0xC8,0x10,0x99,0x9D,0xAF, + + 0x7B,0xCF,0xD3,0x0F,0x66,0xBB,0x27,0x5C,0x36,0xE4,0xD1,0x61,0xB8,0x34,0x30,0x18, + + 0x8D,0x1E,0x06,0x08,0x58,0x9B,0xC3,0x7A,0xFB,0xC2,0xF3,0xDF,0x20,0xB5,0x2D,0x19, + + 0x62,0x7D,0xF4,0x20,0xF0,0xA8,0xCF,0x6A,0x0A,0xB9,0x2D,0x00,0xA4,0x0A,0x5D,0x13, + + 0x88,0xA1,0xBD,0xDD,0xDB,0x0A,0x6B,0x63,0xF9,0xE7,0xC1,0x22,0x33,0xFB,0x89,0xDF, + + 0x1B,0x08,0x91,0x19,0xB8,0x4B,0x12,0xCA,0xF3,0xE6,0xFD,0x5F,0x2E,0x96,0x19,0x48, + + 0x0C,0x9C,0xED,0x33,0xC3,0x22,0xC3,0x9B,0x7E,0x4D,0xD2,0x9D,0x64,0x93,0xB5,0x26, + + 0x25,0xD2,0x31,0x1B,0xE2,0xDB,0x76,0x0A,0xA0,0x2C,0xE9,0xC9,0x78,0x2D,0x08,0x36, + + 0xE2,0x03,0xFB,0xB2,0x19,0x23,0x54,0x6C,0xCE,0x2E,0xD5,0xC5,0x33,0x7D,0xF4,0x69, + + 0x19,0xA0,0xB5,0xED,0x6A,0xF9,0x65,0x5C,0x46,0xC9,0xDD,0xC8,0x99,0xC0,0x90,0x73, + + 0xA4,0x9D,0xA4,0x99,0x5B,0xD1,0x91,0xDD,0x89,0x31,0xAC,0x25,0x1B,0x91,0x36,0x72, + + 0x69,0x70,0xD2,0xBD,0x39,0x9A,0x65,0xE6,0x94,0x9D,0xC2,0x9D,0x79,0xDA,0x57,0xCB, + + 0x4B,0x76,0xB0,0x74,0x80,0x33,0x03,0xC3,0x80,0x28,0xA0,0x54,0xC0,0x7F,0x33,0xB4, + + 0x43,0xC3,0x1C,0xBE,0xDA,0x42,0x1C,0xE7,0x1C,0x9F,0x0C,0x9B,0x9A,0x02,0x8C,0xE6, + + 0x72,0x99,0xC8,0x2E,0xD7,0xAB,0x2A,0xE7,0xC3,0xFB,0xB7,0xF7,0x23,0x15,0x06,0xD1, + + 0x5E,0x1C,0x9C,0xEA,0x4F,0x77,0x0C,0xDF,0x5B,0x00,0xDC,0xB4,0x0A,0xD1,0x91,0x3E, + + 0x4B,0x9C,0xC4,0xB3,0x49,0xC3,0xC2,0xC6,0x43,0xF9,0xEB,0xC0,0x7D,0xF0,0x0F,0xA2, + + 0xFA,0x96,0x4E,0xA5,0x30,0x3A,0xCC,0xDA,0xDF,0x51,0xCC,0xF3,0x3B,0x96,0x39,0xFA, + + 0xC3,0x79,0x8E,0x2C,0x60,0x58,0xCD,0xA4,0x17,0xA1,0x96,0xAE,0x24,0xD3,0x8E,0xAA, + + 0x49,0x49,0x0B,0xB8,0xD0,0x78,0xDE,0xB5,0x14,0xF4,0x86,0x4D,0x41,0x59,0x39,0xAC, + + 0xC3,0x15,0x07,0x89,0xCE,0x39,0xA2,0x9D,0x10,0x69,0x01,0x86,0x93,0x6B,0xF0,0xEA, + + 0x0A,0x98,0x99,0x59,0x46,0xB6,0x8B,0x88,0x48,0xDA,0xC1,0x91,0x41,0xD0,0x1C,0x37, + + 0xCB,0x9F,0x51,0x3F,0x5C,0x32,0x56,0xF4,0x6C,0xCC,0x72,0x8E,0x8D,0x19,0x10,0x60, + + 0x23,0xB2,0xE8,0xF4,0xBF,0x99,0x26,0x59,0xE6,0xD6,0x6F,0xD0,0xC3,0x0C,0xF6,0x82, + + 0x57,0x22,0xFF,0x71,0x51,0x9D,0xE0,0x1A,0xCC,0xFA,0xEF,0x12,0x46,0x4F,0x18,0xD2, + + 0xDD,0x1B,0x59,0xDA,0x1A,0xE0,0xDF,0x6A,0x8B,0xF0,0x1F,0xE5,0x3B,0xC0,0xC3,0xF9, + + 0x20,0xC0,0x20,0x07,0xBA,0x0D,0xE5,0xF2,0x18,0x6F,0xA6,0x44,0xAB,0x3D,0x9F,0x13, + + 0x88,0x8D,0x2C,0x12,0x55,0xB2,0x5A,0x8F,0x44,0xB1,0xAF,0xC5,0x2D,0x3C,0xA6,0xAD, + + 0x0B,0x80,0x31,0x94,0x9F,0xAA,0xA3,0x50,0xFE,0xAC,0x65,0xD9,0x29,0x43,0x41,0x0C, + + 0xA1,0x82,0x97,0xD2,0xB7,0xAE,0x60,0x58,0xA6,0x3C,0xEF,0x0F,0x3E,0x72,0x77,0x3C, + + 0x64,0xF0,0x9E,0xE3,0xFF,0x97,0xF6,0x22,0x4A,0x84,0x50,0x7C,0xDA,0x49,0xD7,0xF7, + + 0xCD,0x88,0x91,0x20,0xE4,0xB5,0x6E,0x57,0xAC,0x81,0xA2,0x72,0x3F,0xF4,0x1F,0x7B, + + 0x7A,0x57,0xF7,0x25,0xF6,0xDC,0x73,0xCB,0xA5,0xD9,0x24,0x85,0x9E,0x87,0x92,0x2C, + + 0xEF,0x8A,0x53,0xAC,0x6B,0xE4,0x43,0xC3,0x0A,0x68,0x87,0x5F,0x36,0x44,0x25,0x0F, + + 0x08,0x88,0xE6,0xFF,0x70,0x9D,0xCA,0xC2,0xA9,0x87,0x32,0x2A,0x2A,0x45,0x74,0xB2, + + 0x0D,0x04,0xBF,0x1F,0x76,0xF8,0xBB,0xC7,0xB0,0xBC,0xB2,0x3B,0x59,0x69,0x5D,0xFA, + + 0xE2,0x96,0xFD,0x27,0x3C,0x01,0xB3,0x3B,0xB6,0x11,0x23,0x68,0x16,0xA0,0x55,0x3E, + + 0x6C,0x2A,0x9E,0xEE,0xA1,0xA7,0xA9,0x00,0xF7,0x89,0xEC,0x4C,0xD2,0xE8,0x9D,0x34, + + 0x20,0x53,0x51,0xEF,0x18,0x7C,0xD6,0x08,0x6F,0xAC,0x64,0x9D,0x32,0x67,0x7D,0x24, + + 0x65,0x1C,0x55,0x1C,0xBE,0x00,0x6B,0x4A,0x1B,0x62,0x6F,0x0C,0x35,0xBC,0xDC,0x7A, + + 0xF6,0x21,0xF9,0x31,0x1F,0xA3,0xF3,0x6E,0x2A,0x63,0x73,0x5E,0xE2,0x41,0x15,0x63, + + 0xAF,0x3F,0xBE,0x6E,0x3E,0x2E,0xDB,0x09,0xA5,0x2E,0x85,0x53,0xDB,0xAF,0x74,0x7C, + + 0xD9,0x19,0x70,0x78,0xCC,0x78,0x38,0x48,0xA1,0x0D,0x21,0xA4,0x54,0x40,0x88,0xF0, + + 0xDE,0x0A,0xE7,0xE9,0x5D,0xBC,0x96,0xA3,0x49,0x7C,0x0B,0x92,0x02,0xF1,0xA1,0x70, + + 0x20,0x46,0xFE,0x87,0xB2,0x22,0x9F,0xAB,0x21,0x2F,0xF8,0x07,0xE8,0x20,0x2D,0x7B, + + 0x44,0xDE,0x52,0xE9,0x9B,0x6C,0xA9,0xF4,0x27,0x93,0x8A,0xE3,0x86,0xF3,0x61,0x33, + + 0x54,0xB4,0x50,0xA4,0xBB,0x12,0x21,0xD3,0xC7,0x55,0xC7,0x04,0x70,0x24,0xBF,0x22, + + 0x9B,0x06,0x38,0x28,0x8B,0x84,0x7D,0x84,0x9C,0xAE,0xDA,0xCE,0xFB,0x28,0x3B,0x7A, + + 0x12,0x3D,0xB7,0x38,0x43,0x10,0x79,0x09,0x03,0x49,0x80,0xF4,0x8E,0xB2,0xDC,0x6A, + + 0x1F,0x44,0x5C,0xFB,0x0F,0xC6,0x7E,0xCC,0xC1,0x02,0x85,0xD0,0x0A,0xF8,0xDD,0x82, + + 0x89,0x67,0x19,0xBE,0xAE,0x17,0x7E,0xAF,0x68,0xD8,0x76,0xB6,0x2F,0x05,0x34,0x84, + + 0x1B,0x6D,0xD0,0xA6,0xBD,0x2B,0xE1,0xBB,0xED,0x99,0x6A,0x40,0x80,0x78,0xFA,0x87, + + 0xAA,0x4A,0xB0,0xF1,0xDE,0xCE,0x7D,0x8B,0xFC,0x5A,0xA1,0xCD,0x03,0x27,0xFA,0xE8, + + 0x93,0x80,0x18,0xBB,0xCA,0xBB,0xE0,0xBB,0x31,0x7A,0xDE,0x4C,0x85,0x26,0xA6,0xD2, + + 0x23,0x63,0x26,0xD6,0xFE,0xD0,0x22,0x6E,0x3A,0x55,0xAC,0xEF,0x16,0x2F,0xD1,0xEB, + + 0x8E,0x62,0x96,0x4D,0x55,0x22,0x56,0x98,0x86,0xEE,0xA9,0x0D,0x05,0x88,0xB3,0x58, + + 0x0F,0x41,0x81,0x7B,0x45,0x13,0xCC,0xA9,0x4F,0x23,0x89,0x53,0x1F,0x5D,0xD4,0x7E, + + 0x58,0x62,0x2F,0xC3,0x05,0x6B,0x69,0x99,0x8F,0xA5,0xAC,0x11,0x47,0x2C,0xC0,0x18, + + 0x0D,0xFF,0x05,0xB5,0xF9,0xCA,0x77,0x28,0x2B,0x85,0x35,0xD5,0x34,0x76,0xB7,0x21, + + 0xA0,0xFE,0x3F,0x40,0xE6,0x94,0x46,0x03,0xC1,0xEA,0xC0,0xAC,0xAD,0xA9,0xD5,0x92, + + 0x21,0xDD,0x8F,0xD1,0xB3,0xB0,0x77,0xD0,0x2C,0x49,0xAF,0xF0,0x99,0xA8,0xB2,0xB4, + + 0x76,0xFE,0x41,0xEF,0x97,0xB3,0x2B,0x21,0x44,0x55,0x62,0x0E,0xDA,0xFC,0x1E,0xD2, + + 0x06,0xD0,0xFE,0x3A,0xB1,0x41,0xC0,0x91,0xE1,0x04,0x46,0x95,0x62,0xC2,0x2F,0xA1, + + 0xD1,0x45,0x48,0x44,0xB6,0x2B,0x4A,0x83,0x23,0x98,0x16,0xCF,0x57,0x14,0xA2,0x5E, + + 0x5C,0xA9,0xFF,0x3A,0x31,0x54,0x63,0x5F,0x61,0xE7,0x8F,0x4C,0xB1,0x62,0x37,0x67, + + 0x68,0xE2,0xA1,0xD3,0x6F,0x66,0x0F,0x54,0x28,0x26,0xE7,0xB0,0xF1,0x6A,0x14,0x20, + + 0xE3,0x19,0xC9,0x73,0x70,0x25,0x31,0x32,0x90,0xFC,0x52,0x34,0x0B,0x95,0x9C,0x67, + + 0x61,0x78,0x35,0x2D,0x7D,0x86,0x7B,0x98,0x9F,0xF6,0x4E,0xC2,0xA4,0xC8,0xB8,0xB8, + + 0xE4,0xA5,0x7C,0x73,0xB6,0xF5,0x4D,0x26,0x9A,0x04,0x85,0x4F,0x27,0xB7,0x75,0x34, + + 0x7C,0xA8,0x19,0x63,0xF3,0x8A,0x45,0xAF,0x03,0xE0,0x09,0xCE,0xBD,0xB6,0x1C,0x7B, + + 0x1A,0xA3,0x2E,0xCC,0xE6,0x0C,0xEB,0x19,0x07,0x47,0x50,0x90,0xE2,0x97,0x69,0xA9, + + 0xD3,0x4D,0x5A,0x47,0x37,0xD0,0x64,0x2C,0x20,0x42,0xEF,0x81,0x7A,0xB9,0x71,0x0F, + + 0x18,0xA1,0x6F,0x0F,0x19,0xDA,0x40,0x7A,0x9B,0x7F,0xEB,0x6F,0x9A,0xB5,0x15,0x56, + + 0xCF,0x41,0xD9,0x7D,0x70,0x5E,0xDB,0x4B,0x3F,0x40,0x49,0x62,0xB7,0xC2,0xB3,0xA4, + + 0xAF,0x12,0x3B,0xB5,0x54,0x9F,0x33,0xBB,0x0B,0x24,0x40,0x5A,0x8D,0xD1,0x64,0x61, + + 0x0D,0x65,0xF2,0xA5,0xDA,0x50,0xFF,0x4B,0x43,0x41,0xCA,0x85,0x9A,0xD0,0xB2,0x80, + + 0x2D,0x1E,0x17,0xFB,0xDA,0x93,0x95,0x67,0x72,0x51,0x07,0x56,0x94,0xAF,0x53,0xA1, + + 0x33,0xB8,0xAB,0xA1,0xD1,0x73,0x1F,0x4C,0xE1,0x57,0xE3,0x90,0x39,0xB2,0x1A,0x2F, + + 0x2E,0xBF,0xBA,0xFD,0x49,0xB4,0xC0,0x26,0x3E,0x57,0xF4,0xF4,0x05,0x41,0x12,0xCA, + + 0x23,0xBE,0x84,0xD1,0x37,0x25,0x23,0xE3,0x9D,0xA8,0x7B,0xC1,0x9A,0xA4,0xB8,0x61, + + 0x27,0x00,0xFA,0x02,0x78,0xA7,0xB6,0x1A,0xC0,0x49,0x0A,0xE7,0x26,0xB7,0x6A,0xD5, + + 0xC8,0x63,0xA0,0x6E,0xF3,0x45,0x7B,0x4F,0x16,0xF3,0x6E,0xCC,0xC0,0x37,0x10,0x87, + + 0x43,0xD9,0x80,0x4B,0xC4,0x00,0x96,0x55,0x60,0xAC,0x84,0xEA,0x24,0xD5,0x03,0x64, + + 0x29,0xAC,0xD5,0x9C,0x3F,0xA9,0xC1,0xBC,0xE9,0x19,0x18,0xA9,0x85,0xE8,0x66,0xCF, + + 0xF4,0xEF,0x5C,0x8D,0x40,0xD2,0x82,0x09,0xFC,0xDA,0x06,0x4D,0xF4,0x3A,0x81,0x61, + + 0xA9,0x59,0xC4,0xE2,0x8A,0x7B,0xC0,0xB8,0x35,0x1A,0x20,0x18,0x33,0x76,0xC4,0x0E, + + 0xB8,0x1F,0xF8,0x09,0x18,0x31,0x21,0x93,0xA2,0xCB,0x7A,0x49,0xAF,0x1F,0xA2,0x4A, + + 0x2B,0x15,0xFE,0xDE,0x7B,0xE6,0x9F,0xFC,0x2F,0x0E,0x84,0x0F,0x43,0xA0,0xC0,0xA4, + + 0x43,0x2F,0x45,0x31,0x02,0xC5,0x6C,0x18,0x55,0x4C,0x7C,0x27,0x41,0xFF,0x9B,0x79, + + 0xF3,0x1D,0xFA,0x20,0x9B,0xEB,0x1A,0xFD,0xAF,0x1C,0x8D,0x6E,0x10,0x6E,0xB1,0xF1, + + 0x30,0x2D,0xDE,0x37,0x94,0xC2,0xD6,0xC6,0xA5,0x6F,0xE6,0x17,0xBF,0x41,0x1A,0x2C, + + 0xA6,0x20,0x57,0x65,0x52,0xC2,0x46,0xAC,0xAE,0x37,0xAE,0x54,0xAA,0x4C,0xB3,0xF2, + + 0x27,0xC2,0x9F,0xD2,0xFC,0xAF,0x57,0xD2,0x06,0x42,0x91,0xA2,0x3D,0x08,0x3E,0xE0, + + 0xFD,0x5E,0x52,0x68,0xFD,0x62,0x67,0xA8,0xD5,0x6C,0x73,0x92,0x22,0x1E,0x01,0xE2, + + 0xD0,0x3B,0xDA,0xF6,0xA2,0x0B,0x66,0x56,0xAD,0x05,0x63,0x58,0x2E,0xFF,0x9B,0xAC, + + 0xCF,0x32,0xB8,0x5E,0x1B,0x28,0x6E,0x4D,0x37,0x38,0x2C,0x28,0xC4,0xDA,0x47,0xFC, + + 0x79,0x22,0x70,0xB6,0xE6,0xE6,0xCA,0xD2,0xAE,0x69,0x71,0x20,0xF8,0x3A,0x16,0x40, + + 0x75,0x18,0x97,0x6F,0x6B,0x9F,0xAD,0xE0,0x66,0x18,0xEB,0x97,0x3C,0xD6,0x74,0x32, + + 0xE7,0x19,0xDC,0x3A,0xE9,0x0B,0x51,0xDB,0xA8,0x6E,0xA4,0x1A,0xB7,0x29,0x6C,0x2A, + + 0x09,0xA9,0xE7,0x2F,0xBC,0x56,0x0C,0xCB,0xAD,0x89,0xAC,0x4D,0x46,0x48,0x65,0x2E, + + 0x0C,0x1E,0xB5,0xFC,0xF4,0x07,0x6D,0x1C,0xEF,0x65,0x08,0x9E,0xB4,0x45,0xAA,0xD9, + + 0x0E,0xCD,0x95,0xD7,0xB3,0x74,0x93,0xB1,0x1D,0x5F,0x83,0xC0,0x34,0xF1,0x57,0x66, + + 0xB7,0x87,0x39,0x4E,0xE6,0x44,0xCD,0x5B,0xEF,0x33,0x49,0xDE,0x94,0x43,0xDB,0x0F, + + 0xBA,0x86,0xA1,0x21,0x77,0xA0,0x6C,0x4E,0xA4,0x4C,0x36,0xDE,0xFE,0x2D,0xE7,0x4F, + + 0xCA,0x83,0xB8,0x4F,0x98,0x3E,0xC8,0xCE,0x39,0x33,0xE2,0x6D,0xE6,0x43,0xEF,0x5F, + + 0xCB,0x11,0x95,0x63,0x6A,0xCC,0xC0,0xCA,0xA7,0x60,0x20,0x51,0xA0,0xEF,0x27,0x5A, + + 0xD9,0x31,0x08,0x23,0xE1,0xD3,0xE9,0xA6,0xD9,0xBE,0x4F,0xD9,0x1C,0xFD,0x03,0xED, + + 0xFC,0x0E,0xBD,0x65,0x05,0x6C,0xBC,0xA7,0x79,0x7C,0x03,0x87,0x15,0x5E,0x1D,0x7C, + + 0x51,0xF1,0x0E,0x4D,0x0F,0x13,0x53,0x8E,0xE7,0xB2,0x4A,0xD9,0xDA,0x2D,0x7D,0x9B, + + 0xE9,0x2E,0xFB,0xA2,0x5E,0x52,0x77,0x63,0xED,0x7C,0xAF,0xC9,0x9F,0x92,0x42,0xF2, + + 0xA2,0x30,0x76,0xD9,0x5A,0x1F,0x4A,0xCB,0xE9,0x52,0x44,0xFE,0x97,0x97,0x4A,0xAD, + + 0x84,0xD7,0xB4,0xD4,0x5C,0x02,0x7B,0x72,0xAF,0x54,0xF8,0x8B,0x56,0x77,0xF1,0xC4, + + 0x4F,0x4B,0xF4,0x54,0xDD,0x87,0x75,0xA3,0xC6,0xD5,0x0A,0x94,0xB5,0x7C,0x6E,0xAF, + + 0x27,0x27,0x69,0x5A,0x5E,0xDD,0xDD,0xE0,0xCB,0xB3,0xC3,0xAE,0x97,0x7C,0x30,0xE8, + + 0xD7,0x05,0x80,0x4A,0x08,0xBB,0x25,0xC5,0x0D,0x98,0xC8,0x8B,0xB4,0x60,0x04,0x4A, + + 0x8E,0x11,0x0B,0x6F,0x59,0xAF,0x58,0x4B,0x5D,0xD2,0xAF,0xA0,0xBB,0x0D,0xF3,0x71, + + 0x45,0x62,0x22,0x87,0xD7,0x1B,0x6F,0x73,0x87,0x3B,0xA2,0x91,0x90,0x0F,0x2E,0x68, + + 0x67,0x30,0x8F,0x32,0xD6,0x1A,0x19,0x7A,0xD9,0xD8,0x59,0xCD,0x16,0x5D,0x40,0xFA, + + 0xAA,0x38,0xB6,0xAC,0x7A,0x67,0x48,0x94,0xA6,0x21,0x09,0x9C,0x1C,0xA9,0x16,0xFD, + + 0xC6,0x60,0xEC,0x22,0x87,0x46,0x5E,0xE3,0xA7,0x5C,0x69,0xFF,0x94,0xFE,0xF3,0xCC, + + 0x47,0x43,0xD2,0x32,0x3F,0xBA,0x0F,0x6F,0xBE,0x07,0xDA,0x90,0x67,0x55,0x17,0x4A, + + 0x97,0x32,0xE7,0xC1,0xDB,0x4B,0xDF,0xE8,0xC3,0xBB,0xDA,0x5E,0x7F,0xCF,0x5E,0x3D, + + 0x08,0xAB,0x04,0x00,0x04,0x58,0xB8,0xAA,0x2B,0xD4,0x69,0x03,0xF1,0x1F,0x52,0x3F, + + 0x7D,0x54,0x08,0x1D,0xB8,0xA0,0x46,0x3F,0x0D,0x0F,0xC0,0x24,0xBA,0x19,0x51,0x2F, + + 0xEB,0x21,0x93,0x31,0xB3,0x42,0x11,0x32,0xD9,0xF6,0x3D,0xA1,0x80,0x8F,0x59,0x3A, + + 0xAB,0x41,0xE2,0x75,0x9D,0x63,0x78,0xC1,0xC9,0xE2,0xB9,0x6C,0xAE,0x43,0xF8,0xBF, + + 0x20,0xA9,0xB1,0x59,0xFA,0xD4,0x52,0x9A,0xA6,0xDB,0x74,0x95,0xF1,0x24,0xC8,0xAC, + + 0x03,0xD1,0x07,0x49,0x1E,0xD5,0xFB,0x9F,0x65,0x1A,0xE2,0xF3,0xA4,0xEE,0x43,0xBD, + + 0x8A,0x02,0xA1,0x58,0xA1,0xD6,0x58,0x8E,0x7F,0x39,0xEE,0xE1,0x82,0x79,0x03,0x2E, + + 0xC0,0xF5,0xDF,0x48,0xDB,0xF7,0xB7,0x9F,0xB0,0x18,0xDD,0xF2,0x2C,0x27,0x01,0x4D, + + 0xF7,0x6B,0x03,0xC1,0x2B,0x57,0x46,0xDB,0x62,0xC5,0x49,0x38,0x23,0x6E,0x1C,0x7A, + + 0xF6,0xD4,0x32,0xEF,0x54,0x3B,0xAF,0x05,0xFE,0x7C,0x8A,0x5E,0xEA,0x0C,0x65,0x6B, + + 0x7F,0xF7,0x3B,0xFE,0x8D,0x38,0x45,0x89,0x23,0x49,0xC8,0x2D,0x5A,0x22,0xDF,0xE7, + + 0x74,0xAA,0x33,0xEE,0xC4,0x39,0x4F,0xBD,0x99,0x23,0xA3,0xD6,0x75,0x66,0x3C,0x84, + + 0x39,0x33,0x7E,0x50,0xE4,0xFC,0xC6,0x83,0xDF,0x73,0xD1,0xD0,0x92,0x64,0xF2,0xAB, + + 0x10,0x16,0xC4,0x40,0x01,0x9D,0x70,0x92,0x36,0x52,0x84,0x9E,0x5F,0xD0,0xFB,0xBA, + + 0x99,0x1C,0xA2,0x51,0xB9,0xFE,0x0F,0x82,0xDC,0x51,0x73,0x7E,0xA4,0x0A,0xB1,0x3F, + + 0x60,0xC5,0x76,0x44,0x2D,0x9F,0x9E,0x8E,0x5A,0xA0,0x1B,0x65,0x68,0xE2,0x95,0x16, + + 0xE8,0x61,0x68,0x86,0x38,0x5C,0x05,0xB3,0x0C,0x14,0xAA,0x65,0x18,0x3A,0x52,0x02, + + 0x29,0xB5,0x4F,0xD3,0x3F,0x9E,0x62,0x80,0xCD,0x5C,0x8A,0xE8,0x9A,0xB9,0xE3,0x70, + + 0x6A,0x32,0x65,0x8C,0x4D,0xB8,0x33,0x95,0x6C,0x5F,0xEB,0xED,0x19,0xCA,0x1F,0x0F, + + 0x69,0xB2,0x83,0x17,0x05,0xB8,0x63,0x80,0xC3,0x85,0xA3,0x74,0x7E,0xD5,0xC0,0xD3, + + 0x29,0x1E,0x9A,0xCD,0x5E,0x24,0x15,0x06,0xC3,0x1B,0xB7,0x60,0x72,0xB4,0x4C,0xD2, + + 0x21,0x2E,0x9A,0xC1,0x96,0xD5,0x56,0x16,0x21,0x7A,0xE6,0x51,0x84,0x88,0x63,0x98, + + 0xF3,0x58,0xAC,0xCD,0x7E,0x26,0xE4,0x07,0x85,0x19,0xEA,0xD5,0xFA,0x89,0xB7,0xD8, + + 0x0E,0x9E,0x6E,0xC0,0x89,0xF7,0x63,0x12,0x59,0x78,0xCB,0x97,0x0C,0xAA,0xE1,0x79, + + 0xF2,0x08,0xBE,0x2C,0xD5,0xB8,0x69,0x30,0x6C,0x48,0x5E,0xEC,0x38,0x8D,0x1F,0xAE, + + 0xE1,0x28,0x26,0x84,0xBB,0x6C,0x14,0x7A,0xEA,0x1F,0x56,0xA3,0x60,0x62,0x3D,0x7A, + + 0x7A,0xBE,0x6F,0x95,0x38,0x7A,0xC5,0x30,0xEC,0xBA,0xDB,0xAF,0xFC,0x8F,0xB9,0x68, + + 0x41,0x1F,0xD5,0xFF,0x9B,0xF6,0xA8,0x9D,0x68,0x56,0xE7,0xCF,0x5E,0x7F,0xB3,0x28, + + 0x6A,0x2E,0x7A,0xD8,0xA6,0xFC,0xF1,0x0B,0x0F,0x73,0x02,0x12,0x93,0x74,0xCE,0x1E, + + 0x2F,0x1B,0xEE,0xCD,0x5F,0xBD,0xA7,0x1A,0xFC,0x52,0x09,0x40,0x90,0x19,0xFB,0xB9, + + 0x1E,0x15,0x13,0xDC,0x2D,0x9E,0x5F,0x0A,0xB8,0x51,0x40,0x1E,0x7E,0xD3,0x47,0xB7, + + 0xC8,0x3F,0x62,0xCD,0xC6,0xBF,0x2C,0x1B,0x4B,0x50,0xE5,0x7A,0x10,0xB9,0xB6,0xF1, + + 0x68,0x5D,0x18,0xF9,0x1A,0xE6,0xCF,0x87,0x8E,0xCD,0x49,0x01,0xF5,0x9F,0x0E,0x27, + + 0x81,0x2E,0x2C,0xD1,0x95,0x81,0xC7,0x4C,0x6B,0x1E,0xE0,0x97,0x3E,0x99,0x77,0x37, + + 0x6F,0x43,0x22,0x78,0xB6,0x4F,0xCA,0x5C,0xAC,0xCF,0x1D,0xA3,0x84,0x0F,0x8D,0x71, + + 0x6E,0x02,0x05,0x91,0x85,0x5E,0x86,0x02,0xA9,0x6C,0xBD,0x35,0xA5,0xF8,0x61,0x24, + + 0xED,0x6E,0xC1,0x5F,0x55,0x14,0xAA,0x95,0x2E,0x0B,0x14,0x95,0x90,0x6F,0x22,0xF2, + + 0xA6,0x95,0xDB,0x4E,0x34,0x35,0xAD,0x81,0xE4,0x6A,0xA6,0xE5,0x47,0x68,0x31,0x4B, + + 0x90,0x2B,0x22,0x5F,0x73,0x36,0x9B,0x95,0x56,0x09,0xF5,0xE0,0x3D,0x00,0x4F,0x97, + + 0x84,0x84,0x3D,0x5A,0x74,0xD7,0xCB,0x80,0x9C,0x68,0x87,0xE5,0x6A,0x18,0x96,0x68, + + 0xE7,0x29,0xF2,0x78,0x10,0xC6,0xA4,0x54,0x26,0x09,0x4F,0x48,0xB7,0xC2,0x48,0x1A, + + 0x0E,0xE9,0x2F,0xF6,0xAE,0xE4,0x2C,0x13,0xA6,0xF8,0xFB,0x58,0xB6,0x51,0x10,0x5E, + + 0x7D,0xE4,0x83,0x0E,0x11,0xEC,0x4D,0x1F,0xAF,0xDA,0xF2,0x49,0x37,0xA0,0xAB,0x13, + + 0x46,0x2F,0x54,0xBF,0x74,0xCB,0x01,0x8A,0xFD,0x64,0xFA,0x59,0x36,0x33,0x61,0x42, + + 0x8E,0x8E,0x16,0x43,0x35,0xDC,0xB0,0x98,0xC5,0x43,0x5E,0x9E,0x5C,0x1A,0x69,0x4B, + + 0xC7,0x55,0xDA,0x52,0x0C,0xFD,0xFB,0x9D,0xD2,0xA2,0xFA,0x8D,0x89,0x46,0x45,0x8A, + + 0x8D,0x8D,0xF4,0x43,0x73,0xFE,0x54,0x99,0xDB,0x41,0x8D,0xF0,0x3F,0x68,0x60,0x59, + + 0x9F,0x8B,0x68,0x56,0x1A,0x9F,0xD8,0x9C,0xC8,0xA0,0x9C,0x77,0x3E,0x40,0x1A,0xD7, + + 0x4F,0x9F,0xA6,0x40,0x20,0xB4,0x1C,0x40,0xE5,0xB4,0x6D,0x4E,0xCB,0xBD,0x12,0xB6, + + 0x06,0x13,0x1D,0x66,0x94,0x3B,0x62,0x70,0x75,0xD7,0x43,0x16,0x98,0x91,0x24,0xB1, + + 0x4F,0x17,0x25,0xC1,0xA0,0xB4,0x1D,0xA5,0x65,0xDC,0xCB,0x76,0xE6,0xBF,0x13,0xB6, + + 0x85,0x9E,0x7A,0x75,0xCA,0xB3,0x35,0x4C,0x44,0xD2,0x51,0xB5,0xFD,0x9F,0x1C,0x62, + + 0xD9,0x2B,0x24,0xC3,0xDC,0xD4,0xD2,0x00,0x1B,0xDB,0xAE,0xE7,0xF8,0x5B,0x04,0xD5, + + 0xA4,0x9A,0x0D,0xD2,0x09,0x95,0xAA,0x10,0x57,0xDA,0xC6,0x05,0xB5,0x09,0x0D,0x01, + + 0x25,0xD2,0x2B,0xC3,0x0D,0xF6,0xBC,0x01,0xAB,0xD9,0x13,0x16,0x3C,0xE6,0x05,0xB1, + + 0x81,0x97,0x86,0xD6,0xC4,0xD9,0x3E,0x11,0xE1,0xD5,0x40,0xA8,0x1C,0x21,0xA1,0xCC, + + 0xBE,0x33,0x7D,0x9A,0x47,0xBE,0x0E,0xAF,0x68,0x88,0x56,0xB7,0x81,0xFB,0x09,0x6B, + + 0xB1,0x59,0xBE,0xFC,0x8E,0xDC,0x7C,0x5A,0x61,0x99,0x9E,0xBA,0x02,0xF9,0x04,0x8B, + + 0x64,0xA2,0xFC,0x8F,0x3E,0xF2,0x2D,0x43,0x0F,0x97,0x0D,0xBF,0x83,0xDA,0xC7,0x11, + + 0x2D,0x2B,0x97,0x74,0x11,0xB6,0x3A,0x84,0xAF,0xD0,0x18,0x7A,0xCE,0xA4,0x66,0x35, + + 0x8E,0x63,0xA6,0xF1,0x36,0xD0,0x76,0xF7,0x91,0x2C,0x51,0x71,0x15,0x4A,0x4E,0x24, + + 0x07,0x22,0x49,0x9E,0x82,0xB6,0xC5,0xE7,0x8E,0x2D,0x4C,0xA1,0x14,0x18,0x6F,0x35, + + 0x0F,0x41,0xCF,0x0D,0x6A,0x4D,0x8A,0xF6,0x09,0x2E,0xF6,0x1C,0x2C,0x55,0x43,0x20, + + 0x8A,0x20,0xA9,0xC0,0x3B,0x6B,0x91,0xE6,0x76,0x2F,0xC7,0x0E,0x17,0xFB,0x5E,0x32, + + 0x40,0x4C,0x24,0xF7,0x9C,0x61,0x28,0x88,0xE3,0x01,0xB9,0x77,0xD4,0x7C,0x2F,0x11, + + 0x6A,0x75,0xB2,0xE2,0x82,0x9E,0xB8,0x3E,0xCD,0x4C,0xE0,0x13,0xC0,0xCD,0x60,0xF2, + + 0x50,0xA9,0x29,0x3A,0xA3,0xDD,0xE4,0x20,0xD4,0x76,0x38,0x76,0x5C,0x3E,0x8F,0xD7, + + 0x13,0x00,0xD7,0x37,0x4C,0x88,0x67,0xD3,0x6D,0x4E,0x39,0x7F,0x44,0xCF,0x48,0xF7, + + 0x61,0x24,0x48,0x41,0x71,0xD4,0xD2,0x0F,0x63,0x85,0xC0,0x84,0x1A,0x64,0x30,0x74, + + 0x8C,0x07,0xF0,0x04,0x17,0x2A,0x59,0x83,0x89,0xEE,0xB0,0xB6,0xD5,0x90,0x39,0xC3, + + 0x83,0x71,0xB9,0xC7,0x97,0x66,0x7B,0xB1,0x61,0xCE,0x8F,0x72,0xDA,0x66,0xFE,0x50, + + 0x0E,0x0B,0xF1,0x85,0x64,0x28,0x3E,0x79,0xA8,0x82,0x49,0xF1,0x8F,0x7C,0xE1,0xF3, + + 0x63,0xAE,0xA7,0x0C,0x73,0x0C,0x82,0xE8,0x0C,0xAC,0x36,0x62,0x87,0x55,0x54,0x2E, + + 0xD4,0xA2,0x0A,0x00,0xBA,0xA4,0x8A,0x97,0xBE,0xA9,0xC4,0x18,0x59,0xC2,0x0A,0xF8, + + 0x52,0x1A,0x7C,0x09,0xC0,0x40,0x6B,0x20,0x25,0x78,0x78,0x5A,0x58,0xBD,0xBD,0x7B, + + 0xE2,0xAE,0x6F,0x3A,0x2A,0xA6,0xA7,0xCA,0x6A,0x7B,0x0F,0x99,0x5C,0x2B,0x2A,0x56, + + 0xCC,0xF8,0xA2,0x08,0x56,0xA7,0xFD,0x99,0xA6,0x41,0x92,0x6C,0x5E,0x68,0x14,0xCA, + + 0x0F,0x80,0x48,0x3E,0x5A,0x6D,0x68,0x68,0xCE,0x5B,0x9A,0x78,0x5F,0x69,0xA5,0xB8, + + 0x40,0x4E,0x44,0xAF,0x18,0x66,0x0D,0x5A,0x4A,0xE5,0x57,0xE9,0x86,0xCF,0x35,0xC7, + + 0x60,0xF9,0xB3,0x3F,0xD8,0xF0,0x05,0x63,0xCB,0xE4,0xA3,0xF9,0x83,0x79,0xE4,0xBF, + + 0x04,0x67,0x86,0x76,0x77,0x34,0x2C,0x84,0x63,0x60,0x1D,0xB4,0xD3,0xCB,0xAD,0x97, + + 0x80,0x50,0xB6,0x96,0x2D,0x11,0xBE,0x52,0x71,0x9C,0x9C,0x48,0xF0,0x33,0x01,0x95, + + 0x38,0x56,0x81,0xD1,0x57,0xCC,0x28,0x90,0x64,0x4D,0xB5,0x5D,0xF0,0x89,0x45,0x95, + + 0x4C,0x52,0x0D,0x85,0xA1,0x31,0x8D,0x1E,0x16,0x03,0x1E,0xB9,0x0C,0xD2,0x67,0x31, + + 0xBE,0x54,0x04,0xD4,0x37,0x30,0x94,0xFD,0xC6,0xFF,0xD4,0xE4,0x72,0x74,0x33,0xA3, + + 0xC9,0xBD,0xCC,0xE0,0x00,0x3A,0x23,0x01,0xDC,0x07,0xDC,0xF4,0x73,0x75,0xAD,0x4B, + + 0x80,0xC0,0xC3,0xFA,0xF9,0x74,0xA8,0xF9,0xC0,0x49,0xD5,0xE5,0xF2,0x76,0x3F,0x31, + + 0xE7,0x9C,0x97,0xD0,0x14,0x76,0xF2,0x8A,0x3E,0x8B,0xDD,0xF5,0xF3,0x77,0xF3,0x76, + + 0x2C,0x75,0x96,0xCC,0xB8,0x3E,0x2B,0x99,0xEC,0x47,0x02,0x5F,0x54,0xA5,0xAA,0xEA, + + 0xA7,0x58,0x8A,0x1B,0x18,0xAE,0xA6,0x9C,0x80,0x3D,0xFE,0xFC,0x64,0xF2,0x97,0x82, + + 0x2C,0x4E,0x00,0x3B,0x59,0xE1,0xAF,0x5A,0x4B,0x4A,0xC1,0x89,0x13,0x3B,0xB0,0x82, + + 0x0A,0x9E,0x3B,0x62,0xFA,0xC8,0x8E,0x4A,0x65,0x66,0x1B,0x5F,0x7B,0x73,0x6D,0x26, + + 0x95,0x18,0xA6,0xAC,0x70,0x31,0x6D,0xB6,0x6C,0xAC,0xD6,0xEC,0x7A,0x7C,0xB9,0x87, + + 0x96,0xE1,0x30,0x5E,0xE6,0x82,0x0E,0x12,0x90,0xF6,0xDE,0xFC,0x7B,0x7D,0x45,0xE7, + + 0x5C,0x6B,0x6B,0x5F,0xBB,0x34,0xE7,0x18,0x55,0x8E,0xD7,0xED,0xFA,0x7E,0xE4,0xB7, + + 0x7E,0x11,0xF7,0x23,0xDB,0x33,0xA2,0x61,0x80,0x20,0xDF,0xFD,0xFB,0x7F,0x00,0xF3, + + 0xE4,0x00,0x44,0x21,0x15,0xC0,0x8C,0xAB,0x60,0xF4,0x8E,0x03,0x1E,0x81,0x28,0xE3, + + 0xDD,0xA1,0xA9,0xC9,0xF6,0xA5,0xDC,0xC1,0xE6,0x4A,0x86,0x13,0x1C,0xA0,0x89,0x89, + + 0xEF,0x16,0x5B,0x05,0x9C,0xED,0x91,0x2D,0x48,0x4F,0xE9,0x23,0x9E,0xA3,0x77,0x1C, + + 0xD7,0xCD,0xBC,0x65,0x1B,0xC6,0x3D,0xB4,0xE1,0xB4,0xE1,0xD1,0x57,0xEB,0x3E,0xD9, + + 0x16,0x2B,0x98,0xC2,0x4A,0x10,0x57,0x63,0x2D,0xB0,0xD0,0x09,0x82,0x3B,0xDE,0xA3, + + 0xEF,0xD5,0xB8,0x4A,0x01,0x10,0x9B,0x89,0xC5,0x39,0xAD,0xD6,0xA0,0x85,0x02,0xB0, + + 0x62,0x29,0x71,0xE7,0x8E,0xE7,0x32,0xA5,0x54,0xC5,0x56,0x98,0xBD,0x99,0x17,0x61, + + 0x02,0x91,0x20,0x68,0xDC,0xE5,0x41,0x54,0x6B,0xCA,0xA7,0x98,0x97,0x4C,0x43,0xAA, + + 0xDA,0x37,0xDB,0xDE,0x50,0x29,0x36,0xAA,0xA5,0x8C,0x76,0x4C,0x1D,0xF8,0x9E,0x78, + + 0xFA,0xEC,0x80,0xCE,0x41,0x21,0x9E,0x96,0xA6,0xAD,0xC2,0xBC,0x5C,0x91,0x43,0x54, + + 0x2D,0xEF,0xA0,0x45,0x11,0xC9,0x26,0xD8,0x48,0x67,0xCB,0x4D,0x9D,0xE8,0x13,0xE4, + + 0x0E,0x85,0xBB,0x55,0x11,0xA3,0x03,0xC8,0x6E,0xAE,0x81,0xDD,0x5F,0xE3,0x5D,0x14, + + 0xFF,0x50,0x64,0xCE,0xF7,0xF4,0x89,0x4D,0xEF,0x33,0x0F,0xEA,0x35,0x93,0xC1,0xFF, + + 0xDA,0x93,0xAE,0x2D,0x08,0xC1,0xEA,0xBD,0x4D,0x38,0xFA,0x7E,0x79,0xED,0x3A,0x5F, + + 0x03,0xED,0xA1,0x3E,0xD5,0xA5,0x1B,0xA9,0x48,0x3B,0xB5,0x4B,0xD6,0xEF,0x16,0xA8, + + 0x57,0x5B,0x89,0x5B,0x9E,0xFF,0x7F,0x3C,0x4E,0xC1,0xFB,0x7F,0xDF,0xEF,0x15,0x60, + + 0xF9,0x04,0xF4,0xF5,0x2C,0x3A,0xD0,0x51,0xC7,0xB5,0x3D,0xD4,0xD7,0x5D,0x0B,0x70, + + 0xC5,0x40,0x18,0xF6,0x3D,0x61,0xDB,0x41,0xC6,0x8C,0x87,0x56,0x35,0x7A,0x5D,0xB1, + + 0x94,0x4E,0x62,0x79,0x55,0xD4,0x08,0x24,0xC0,0xAF,0x21,0xF6,0xD0,0xE9,0xD6,0xB7, + + 0x6C,0x9C,0x02,0x47,0x34,0x12,0xDE,0xF7,0x46,0xEE,0x08,0xB5,0xF1,0x78,0x0C,0x44, + + 0xDA,0xD5,0x9A,0xC0,0xD7,0x37,0xF0,0x13,0xD9,0xD7,0xF4,0xE6,0x76,0xF4,0xC0,0x90, + + 0xA4,0x41,0x94,0xA8,0x77,0x3F,0x87,0xCD,0x98,0xDB,0xFC,0xF6,0x77,0xF5,0x89,0x43, + + 0x5A,0xB6,0xCA,0x34,0x3A,0x4B,0x25,0x09,0x1D,0x03,0xF5,0xE7,0xF6,0xF6,0x8F,0xCC, + + 0x69,0x3C,0x3A,0x55,0x6A,0x08,0x15,0x75,0x1B,0x96,0xFD,0xF7,0xF7,0xF7,0x5F,0xAD, + + 0x8D,0x89,0x9E,0xEE,0x8C,0xB0,0x51,0xEE,0xCF,0xC5,0x54,0x48,0x6C,0xB7,0x10,0x9C, + + 0x67,0xDD,0x57,0xEC,0xB3,0xDC,0x0C,0x8B,0xE9,0x76,0xF4,0x49,0xDE,0xF4,0x5F,0xD8, + + 0x0F,0x85,0xD6,0xFD,0x32,0xDF,0x54,0xFA,0x4F,0x9B,0xD7,0xEF,0xF2,0xF7,0x77,0x9F, + + 0xE7,0xFF,0xD6,0xED,0x33,0xDE,0x9F,0xC8,0x4E,0x78,0xF5,0xC0,0x5E,0xFD,0x00,0xC2, + + 0xCF,0x33,0x9E,0x4C,0x1F,0xCE,0xDE,0xD5,0x05,0xCB,0xF6,0xEE,0x7E,0xFC,0x89,0x2B, + + 0xF5,0x8D,0x02,0x5E,0xC3,0x9D,0x24,0xFB,0xCC,0x93,0xFE,0xFE,0x7F,0xFD,0x05,0xD1, + + 0x78,0x2A,0xBD,0xCE,0x1D,0xFF,0x73,0x69,0xEF,0xB1,0xF7,0xEF,0xFE,0xFE,0x11,0x41, + + 0xA9,0x9F,0x43,0x9D,0x3C,0x12,0x4E,0x3D,0x13,0xD9,0xFF,0xFF,0xAF,0xB9,0x80,0x00, + + 0x0C,0x4C,0x04,0x00,0x18,0x2E,0x6F,0xD8,0xC1,0xBF,0x43,0xCC,0x56,0xBD,0x51,0xEF, + + 0xE0,0xCE,0x90,0x11,0x15,0x01,0x47,0x32,0x32,0x41,0x45,0x36,0x2A,0x61,0xB6,0x85, + + 0xC0,0xB8,0x35,0x67,0xF1,0x38,0xEA,0xA5,0xC4,0x54,0x6B,0x2D,0x2D,0xAD,0x60,0xEA, + + 0xEA,0x06,0xE1,0x97,0x90,0x5B,0xC6,0x31,0xB6,0x4F,0xC2,0xB7,0xAE,0x63,0x38,0xC2, + + 0x01,0xE2,0x00,0x44,0x62,0xD1,0x22,0x80,0x06,0xCF,0xA8,0xE6,0x57,0x5D,0x31,0xB8, + + 0x09,0xCE,0xEE,0x59,0x97,0x81,0x5A,0x5E,0xB5,0x30,0x50,0xB1,0xF2,0xEF,0x79,0x31, + + 0x9A,0x0F,0xC4,0xC1,0x92,0xB7,0x7A,0x8F,0x7D,0x42,0xA9,0x42,0x71,0x60,0x4D,0xB9, + + 0x89,0xCA,0x48,0x52,0xEC,0x23,0xAE,0x2E,0x7E,0xBB,0x22,0x97,0x72,0xED,0xA9,0xE0, + + 0x08,0xF3,0xD8,0x09,0xBB,0x53,0xD2,0x2C,0x3E,0x53,0x49,0x6C,0x5E,0x28,0xE5,0xE2, + + 0x62,0x99,0xEA,0xE1,0x19,0xF2,0xA5,0xCE,0xCB,0x43,0x9A,0xC1,0x59,0xB2,0x03,0x7B, + + 0x2F,0x1A,0xC3,0xF4,0x98,0xB1,0xD3,0x57,0x2F,0x5A,0xF2,0xD4,0x58,0xF1,0x24,0xE8, + + 0xD1,0x0E,0xEA,0x99,0x9D,0x3D,0xFD,0xC9,0x8D,0x44,0xFB,0xB9,0xDD,0xB8,0x1A,0xA7, + + 0x0C,0x0C,0x19,0x44,0x9D,0x2B,0xF9,0x06,0x9F,0x42,0xAD,0x8E,0x87,0xB1,0x58,0xDC, + + 0x4B,0xA5,0xBA,0x82,0xF4,0x6F,0xF9,0x70,0x97,0x7D,0xBA,0x3C,0x75,0xE6,0x16,0x29, + + 0xEE,0x05,0x73,0xFF,0xB4,0x62,0x3B,0xEF,0x36,0x0F,0x7C,0xE9,0xD6,0x98,0x71,0xB6, + + 0x70,0x90,0xCB,0xE4,0x44,0x20,0x78,0x75,0x13,0x3F,0xDF,0x9F,0xFF,0xD3,0x04,0x80, + + 0x78,0xF8,0x84,0x7C,0xB2,0xCB,0xAB,0x94,0x87,0x42,0xEC,0x83,0x13,0x58,0xDE,0xB0, + + 0x26,0xE9,0x0C,0x1E,0x4A,0x38,0xA6,0x38,0x24,0x58,0xE4,0x93,0x12,0x69,0x4F,0x28, + + 0x82,0x11,0x85,0x79,0x10,0x70,0xAE,0x15,0x07,0x42,0xED,0x82,0x93,0x18,0x02,0x1D, + + 0xDA,0x02,0xD6,0x95,0xCE,0x33,0x1C,0x33,0xE8,0xBE,0xE5,0x92,0x10,0x7C,0xF3,0xC1, + + 0xAF,0x18,0xC4,0xFC,0xCE,0x64,0xBB,0x0E,0xE7,0xF3,0x60,0x9B,0xD1,0xC9,0xAA,0x21, + + 0xE9,0x55,0x49,0x50,0x33,0xA4,0xDD,0xF7,0x14,0x51,0xBC,0xB0,0x4E,0x7A,0x2D,0xDF, + + 0x64,0xE2,0x05,0xC5,0xC2,0xC3,0x73,0xEC,0x66,0xF2,0x11,0x60,0xB1,0x85,0x13,0x43, + + 0xA7,0x9A,0xEB,0xDC,0x37,0x93,0x82,0xE1,0x64,0x50,0x4D,0xEB,0xE3,0x83,0xD9,0x89, + + 0x2E,0x78,0x5D,0x0E,0x3E,0x78,0x4C,0x47,0xCB,0x5C,0xF6,0xE8,0x0C,0xF5,0x6E,0x58, + + 0xE7,0x92,0x74,0x94,0xC4,0xF6,0x26,0xC8,0x24,0x50,0xE6,0x3E,0x7A,0x9F,0x19,0xFB, + + 0x43,0x18,0x54,0x65,0xBE,0xE7,0xEC,0x2B,0x68,0x9B,0xEF,0x2F,0xF9,0x22,0x0D,0x7B, + + 0x2B,0x33,0x04,0xFD,0xA9,0x3D,0x9B,0xBD,0xE1,0x55,0xA7,0xCD,0xB5,0x72,0x38,0x56, + + 0xC1,0xEA,0xC7,0xCB,0x9B,0x59,0xE6,0x5A,0x44,0x19,0xD3,0x2A,0x90,0x30,0x2D,0x2B, + + 0xCF,0xB2,0x23,0x36,0xBE,0x3A,0xB1,0x0A,0x6D,0x5D,0x76,0x5F,0x04,0x7C,0x19,0x52, + + 0xBA,0xB1,0x38,0x49,0xBA,0xAF,0xA1,0x4C,0x6F,0x59,0x27,0x69,0xBA,0xD6,0xF9,0x28, + + 0x43,0x4F,0x27,0x7E,0xBD,0x5F,0x08,0x27,0x12,0x21,0x1F,0xFD,0x8B,0xF2,0x7E,0x1F, + + 0x54,0x2B,0xFF,0x86,0x67,0xA0,0x50,0x62,0x59,0x4B,0xE9,0xA3,0xA9,0x21,0xD7,0x16, + + 0x05,0x59,0x68,0x12,0x63,0xBA,0x67,0x32,0x36,0xCD,0x42,0x3E,0xB0,0xF3,0x04,0x03, + + 0xEF,0xA6,0x7E,0x07,0xE3,0xA4,0x35,0xC1,0xFB,0xC6,0x4B,0xAF,0x21,0x21,0x96,0xEE, + + 0x95,0xE0,0x69,0x69,0x72,0xB3,0xE6,0x33,0xB2,0xCB,0x33,0x57,0xC5,0xE5,0x9F,0xBC, + + 0x00,0xC4,0x0D,0x3C,0x93,0xA3,0x98,0xD1,0xC3,0x83,0x4F,0x3D,0xAF,0x6E,0x13,0xAD, + + 0xF0,0xC7,0xE9,0x49,0x0F,0x31,0xB8,0x72,0x37,0x30,0xCA,0x89,0xD5,0xAD,0xDB,0x31, + + 0x39,0x39,0x09,0xE4,0xB2,0x72,0xD9,0xC0,0xB9,0xB5,0x75,0x96,0x75,0xE4,0xED,0x66, + + 0x66,0x78,0x68,0x4C,0x8B,0xE9,0x39,0xF7,0xC7,0x56,0xD9,0x15,0x60,0x82,0xC2,0xBC, + + 0x8B,0x8F,0x1D,0xF8,0x49,0xA1,0xF2,0x2E,0xDE,0x73,0xBE,0x59,0x3F,0x97,0xBA,0x1E, + + 0x10,0x0B,0xF0,0xF1,0xBE,0xAD,0x3A,0xC6,0xCC,0x8B,0x9A,0x0A,0x3E,0x21,0x8B,0xA9, + + 0x53,0x65,0xA2,0x8D,0x95,0x47,0x13,0xD3,0xCC,0x31,0xCB,0x2D,0x2B,0xEC,0xBB,0xF9, + + 0x21,0xCA,0x50,0xF2,0xBC,0x10,0xBB,0x87,0xFE,0xA9,0xC3,0x18,0xBE,0x73,0x99,0xCE, + + 0x02,0x30,0x94,0x08,0xB8,0xEE,0xC5,0x62,0x48,0xCC,0xCA,0xBE,0x83,0x93,0x68,0x63, + + 0x09,0x8D,0x35,0x5A,0x19,0xAD,0x7A,0x42,0x30,0xDD,0x47,0x23,0xA0,0xEB,0xA3,0x5B, + + 0xCC,0xCC,0xE1,0x1E,0x1B,0x89,0x60,0x54,0xD6,0x8C,0x4A,0x3E,0x7D,0x31,0x3C,0x7F, + + 0x00,0x8D,0xF8,0x2D,0x60,0xED,0x93,0xD9,0x4A,0xC8,0x73,0x7D,0x2A,0xE0,0x80,0xE0, + + 0x65,0x10,0xA8,0xF1,0x57,0xCF,0x80,0xC0,0x05,0x28,0xCD,0x24,0x7D,0x96,0x76,0x93, + + 0x86,0x97,0xEC,0x97,0x0A,0xB5,0x54,0x95,0xC4,0x58,0xDC,0xF7,0xB9,0x7A,0x5D,0x01, + + 0xA1,0x63,0xDD,0x85,0x43,0x19,0x2D,0xA6,0xE0,0xF2,0x8D,0xF7,0xF0,0xFD,0xA5,0xAF, + + 0x06,0x95,0xF2,0x97,0xC6,0xB5,0xB2,0xD3,0xE9,0x93,0xB9,0x55,0x77,0xF9,0x1A,0xF0, + + 0xA3,0x82,0x99,0x42,0x76,0x9E,0x49,0xA4,0xC4,0x9A,0x0B,0x62,0x76,0x65,0x35,0xC6, + + 0xAA,0xF6,0x53,0x46,0x16,0x85,0xDB,0xFB,0xB7,0x85,0xEF,0xC9,0x6F,0xB7,0x5A,0x9D, + + 0x57,0x4A,0x75,0x99,0x4F,0x6A,0x01,0xC7,0x32,0xC6,0x42,0xEF,0xF0,0xF6,0xC6,0x76, + + 0x72,0x89,0xEF,0x37,0xCB,0xB1,0x5A,0xFE,0x60,0x70,0xFD,0xCF,0x72,0xF0,0x6E,0x1D, + + 0x4F,0x38,0x9C,0x71,0xCB,0xFA,0x32,0x68,0xC0,0xD5,0x50,0xCC,0x1D,0xE8,0x74,0x9B, + + 0x8E,0xFC,0xF5,0x9E,0x42,0xB9,0xBE,0xBB,0xEE,0xBC,0x1A,0xDC,0x3E,0x86,0x5F,0x09, + + 0xAD,0xC2,0x27,0x05,0xC7,0xBE,0x2D,0xFB,0xCD,0xBA,0xAF,0x45,0x7E,0xD2,0x15,0x79, + + 0x92,0x9F,0x74,0x1D,0xBB,0xFB,0x07,0xCB,0xF4,0xD2,0xC7,0xDD,0xBC,0xEB,0x1B,0x39, + + 0xF6,0x48,0xEE,0x6B,0xDF,0xB3,0xDE,0x4C,0xEB,0xFB,0x1E,0x4D,0x78,0x9C,0x86,0x50, + + 0x0D,0x4B,0xD6,0x0E,0xE0,0xB2,0x6D,0x88,0x90,0x9F,0x6E,0xB8,0xD5,0x06,0x44,0x3A, + + 0x32,0xDE,0x77,0x4D,0xBB,0xD4,0xA8,0xEE,0xE8,0xDE,0x8A,0x6B,0xBE,0xD4,0x10,0xA8, + + 0x45,0x37,0x8F,0x9B,0xCE,0x32,0x7F,0xC3,0x13,0xCF,0xF9,0x7B,0xFF,0x6E,0xDF,0x15, + + 0x87,0x07,0x80,0x04,0x10,0x20,0x10,0x20,0x40,0x40,0x90,0x24,0x50,0x60,0xE0,0xB2, + + 0xA5,0x86,0x88,0x14,0x11,0x21,0x18,0x30,0x41,0x41,0x98,0x34,0x51,0x61,0xA9,0xA3, + + 0x5F,0x5D,0x81,0x05,0x90,0x22,0x11,0x21,0xC0,0x42,0x91,0x25,0xD0,0x62,0xE9,0x11, + + 0x04,0x04,0x89,0x15,0x91,0x23,0x19,0x31,0xC1,0x43,0x99,0x35,0xD1,0x63,0x40,0x40, + + 0x02,0x04,0xC0,0x44,0x12,0x24,0x50,0x60,0x42,0x44,0xD0,0x64,0x52,0x64,0x48,0x50, + + 0x03,0x05,0xC8,0x54,0x13,0x25,0x58,0x70,0x43,0x45,0xD8,0x74,0x53,0x65,0x41,0x41, + + 0x82,0x06,0xC1,0x45,0x92,0x26,0x51,0x61,0xC2,0x46,0xD1,0x65,0xD2,0x66,0x49,0x51, + + 0x83,0x07,0xC9,0x55,0x93,0x27,0x59,0x71,0xC3,0x47,0xD9,0x75,0xD3,0x67,0x12,0x08, + + 0xED,0x49,0x82,0x0C,0x18,0x28,0x12,0x28,0x48,0x48,0x92,0x2C,0x58,0x68,0xCA,0x08, + + 0x40,0x45,0x8A,0x1C,0x19,0x29,0x1A,0x38,0x49,0x49,0x9A,0x3C,0x59,0x69,0xEB,0xBA, + + 0x0D,0x4D,0x83,0x0D,0x98,0x2A,0x13,0x29,0xC8,0x4A,0x93,0x2D,0xD8,0x6A,0x7F,0xE4, + + 0xA8,0x49,0x8B,0x1D,0x99,0x2B,0x1B,0x39,0xC9,0x4B,0x9B,0x3D,0xD9,0x6B,0x42,0x48, + + 0x0A,0x0C,0xC2,0x4C,0x1A,0x2C,0x52,0x68,0x4A,0x4C,0xD2,0x6C,0x5A,0x6C,0x4A,0x58, + + 0x0B,0x0D,0xCA,0x5C,0x1B,0x2D,0x5A,0x78,0x4B,0x4D,0xDA,0x7C,0x5B,0x6D,0x43,0x49, + + 0x8A,0x0E,0xC3,0x4D,0x9A,0x2E,0x53,0x69,0xCA,0x4E,0xD3,0x6D,0xDA,0x6E,0x4B,0x59, + + 0x8B,0x0F,0xCB,0x5D,0x9B,0x2F,0x5B,0x79,0xCB,0x4F,0xDB,0x7D,0xDB,0x6F,0x74,0x46, + + 0x8A,0xEF,0x84,0x84,0x30,0x30,0x14,0xA0,0x60,0x50,0x94,0xA4,0x70,0x70,0x8E,0x14, + + 0x21,0x80,0x8C,0x94,0x31,0x31,0x1C,0xB0,0x61,0x51,0x9C,0xB4,0x71,0x71,0x95,0xC7, + + 0x0A,0xE9,0x85,0x85,0xB0,0x32,0x15,0xA1,0xE0,0x52,0x95,0xA5,0xF0,0x72,0xA5,0x33, + + 0x26,0x34,0x8D,0x95,0xB1,0x33,0x1D,0xB1,0xE1,0x53,0x9D,0xB5,0xF1,0x73,0x44,0xC0, + + 0x22,0x14,0xC4,0xC4,0x32,0x34,0x54,0xE0,0x62,0x54,0xD4,0xE4,0x72,0x74,0x4C,0xD0, + + 0x23,0x15,0xCC,0xD4,0x33,0x35,0x5C,0xF0,0x63,0x55,0xDC,0xF4,0x73,0x75,0x45,0xC1, + + 0xA2,0x16,0xC5,0xC5,0xB2,0x36,0x55,0xE1,0xE2,0x56,0xD5,0xE5,0xF2,0x76,0x4D,0xD1, + + 0xA3,0x17,0xCD,0xD5,0xB3,0x37,0x5D,0xF1,0xE3,0x57,0xDD,0xF5,0xF3,0x77,0x96,0xCE, + + 0x82,0xE3,0x86,0x8C,0x38,0x38,0x16,0xA8,0x68,0x58,0x96,0xAC,0x78,0x78,0xA6,0x3A, + + 0xAE,0x3E,0x8E,0x9C,0x39,0x39,0x1E,0xB8,0x69,0x59,0x9E,0xBC,0x79,0x79,0x05,0x0D, + + 0xA8,0x8B,0x87,0x8D,0xB8,0x3A,0x17,0xA9,0xE8,0x5A,0x97,0xAD,0xF8,0x7A,0x9F,0xBD, + + 0xA9,0x1B,0x8F,0x9D,0xB9,0x3B,0x1F,0xB9,0xE9,0x5B,0x9F,0xBD,0xF9,0x7B,0x46,0xC8, + + 0x2A,0x1C,0xC6,0xCC,0x3A,0x3C,0x56,0xE8,0x6A,0x5C,0xD6,0xEC,0x7A,0x7C,0x4E,0xD8, + + 0x2B,0x1D,0xCE,0xDC,0x3B,0x3D,0x5E,0xF8,0x6B,0x5D,0xDE,0xFC,0x7B,0x7D,0x47,0xC9, + + 0xAA,0x1E,0xC7,0xCD,0xBA,0x3E,0x57,0xE9,0xEA,0x5E,0xD7,0xED,0xFA,0x7E,0x4F,0xD9, + + 0xAB,0x1F,0xCF,0xDD,0xBB,0x3F,0x5F,0xF9,0xEB,0x5F,0xDF,0xFD,0xFB,0x7F,0x20,0x3A, + + 0x81,0x87,0xA0,0x06,0x14,0xA0,0x30,0x22,0x44,0xC0,0xB0,0x26,0x54,0xE0,0x55,0x96, + + 0x45,0xAB,0xA8,0x16,0x15,0xA1,0x38,0x32,0x45,0xC1,0xB8,0x36,0x55,0xE1,0xC9,0xA0, + + 0x82,0xE2,0xA1,0x07,0x94,0xA2,0x31,0x23,0xC4,0xC2,0xB1,0x27,0xD4,0xE2,0xB9,0x55, + + 0x2F,0x78,0xA9,0x17,0x95,0xA3,0x39,0x33,0xC5,0xC3,0xB9,0x37,0xD5,0xE3,0x60,0x42, + + 0x06,0x84,0xE0,0x46,0x16,0xA4,0x70,0x62,0x46,0xC4,0xF0,0x66,0x56,0xE4,0x68,0x52, + + 0x07,0x85,0xE8,0x56,0x17,0xA5,0x78,0x72,0x47,0xC5,0xF8,0x76,0x57,0xE5,0x61,0x43, + + 0x86,0x86,0xE1,0x47,0x96,0xA6,0x71,0x63,0xC6,0xC6,0xF1,0x67,0xD6,0xE6,0x69,0x53, + + 0x87,0x87,0xE9,0x57,0x97,0xA7,0x79,0x73,0xC7,0xC7,0xF9,0x77,0xD7,0xE7,0x24,0x8E, + + 0x0C,0x19,0xA2,0x0E,0x1C,0xA8,0x32,0x2A,0x4C,0xC8,0xB2,0x2E,0x5C,0xE8,0x9A,0xA8, + + 0x23,0xC5,0xAA,0x1E,0x1D,0xA9,0x3A,0x3A,0x4D,0xC9,0xBA,0x3E,0x5D,0xE9,0xFC,0x03, + + 0x0B,0x8D,0xA3,0x0F,0x9C,0xAA,0x33,0x2B,0xCC,0xCA,0xB3,0x2F,0xDC,0xEA,0x5B,0xC4, + + 0x62,0xC7,0xAB,0x1F,0x9D,0xAB,0x3B,0x3B,0xCD,0xCB,0xBB,0x3F,0xDD,0xEB,0x62,0x4A, + + 0x0E,0x8C,0xE2,0x4E,0x1E,0xAC,0x72,0x6A,0x4E,0xCC,0xF2,0x6E,0x5E,0xEC,0x6A,0x5A, + + 0x0F,0x8D,0xEA,0x5E,0x1F,0xAD,0x7A,0x7A,0x4F,0xCD,0xFA,0x7E,0x5F,0xED,0x63,0x4B, + + 0x8E,0x8E,0xE3,0x4F,0x9E,0xAE,0x73,0x6B,0xCE,0xCE,0xF3,0x6F,0xDE,0xEE,0x6B,0x5B, + + 0x8F,0x8F,0xEB,0x5F,0x9F,0xAF,0x7B,0x7B,0xCF,0xCF,0xFB,0x7F,0xDF,0xEF,0x24,0x82, + + 0x24,0x90,0xA4,0x86,0x34,0xB0,0x34,0xA2,0x64,0xD0,0xB4,0xA6,0x74,0xF0,0x2C,0x92, + + 0x25,0x91,0xAC,0x96,0x35,0xB1,0x3C,0xB2,0x65,0xD1,0xBC,0xB6,0x75,0xF1,0x25,0x83, + + 0xA4,0x92,0xA5,0x87,0xB4,0xB2,0x35,0xA3,0xE4,0xD2,0xB5,0xA7,0xF4,0xF2,0x2D,0x93, + + 0xA5,0x93,0xAD,0x97,0xB5,0xB3,0x3D,0xB3,0xE5,0xD3,0xBD,0xB7,0xF5,0xF3,0x64,0xC2, + + 0x26,0x94,0xE4,0xC6,0x36,0xB4,0x74,0xE2,0x66,0xD4,0xF4,0xE6,0x76,0xF4,0x6C,0xD2, + + 0x27,0x95,0xEC,0xD6,0x37,0xB5,0x7C,0xF2,0x67,0xD5,0xFC,0xF6,0x77,0xF5,0x65,0xC3, + + 0xA6,0x96,0xE5,0xC7,0xB6,0xB6,0x75,0xE3,0xE6,0xD6,0xF5,0xE7,0xF6,0xF6,0x6D,0xD3, + + 0xA7,0x97,0xED,0xD7,0xB7,0xB7,0x7D,0xF3,0xE7,0xD7,0xFD,0xF7,0xF7,0xF7,0x26,0x8A, + + 0x2C,0x98,0xA6,0x8E,0x3C,0xB8,0x36,0xAA,0x6C,0xD8,0xB6,0xAE,0x7C,0xF8,0x2E,0x9A, + + 0x2D,0x99,0xAE,0x9E,0x3D,0xB9,0x3E,0xBA,0x6D,0xD9,0xBE,0xBE,0x7D,0xF9,0x27,0x8B, + + 0xAC,0x9A,0xA7,0x8F,0xBC,0xBA,0x37,0xAB,0xEC,0xDA,0xB7,0xAF,0xFC,0xFA,0x2F,0x9B, + + 0xAD,0x9B,0xAF,0x9F,0xBD,0xBB,0x3F,0xBB,0xED,0xDB,0xBF,0xBF,0xFD,0xFB,0x66,0xCA, + + 0x2E,0x9C,0xE6,0xCE,0x3E,0xBC,0x76,0xEA,0x6E,0xDC,0xF6,0xEE,0x7E,0xFC,0x6E,0xDA, + + 0x2F,0x9D,0xEE,0xDE,0x3F,0xBD,0x7E,0xFA,0x6F,0xDD,0xFE,0xFE,0x7F,0xFD,0x67,0xCB, + + 0xAE,0x9E,0xE7,0xCF,0xBE,0xBE,0x77,0xEB,0xEE,0xDE,0xF7,0xEF,0xFE,0xFE,0x6F,0xDB, + + 0xAF,0x9F,0xEF,0xDF,0xBF,0xBF,0x7F,0xFB,0xEF,0xDF,0xFF,0xFF,0x8F,0x95,0x80,0x00, + + 0x0C,0x4C,0xF9,0xE6,0x92,0x08,0x0A,0x28,0x63,0x78,0x15,0xE2,0xBA,0x2C,0x51,0xEF, + + 0xE0,0xCE,0xF0,0x76,0x50,0x31,0x30,0xCF,0xB6,0x03,0x4D,0xB0,0x55,0x90,0xB6,0x85, + + 0x80,0xD1,0x25,0x67,0xD3,0x5D,0xCC,0x23,0x3B,0xD9,0x61,0x63,0x7A,0x99,0x60,0xEA, + + 0x03,0x27,0xF1,0x97,0x92,0xC5,0x1D,0xD8,0xBA,0x47,0x46,0x34,0xD7,0x23,0xD0,0x1B, + + 0xFF,0xB8,0xC0,0x44,0x12,0x24,0x50,0x60,0x42,0x44,0xD0,0x64,0x52,0x64,0x30,0xD0, + + 0xE3,0xFA,0xC8,0x54,0x13,0x25,0x58,0x70,0x43,0x45,0xD8,0x74,0x53,0x65,0x7E,0x91, + + 0x8E,0xAD,0xC1,0x45,0x92,0x26,0x51,0x61,0xC2,0x46,0xD1,0x65,0xD2,0x66,0x29,0x15, + + 0x03,0x0A,0xC9,0x55,0x93,0x27,0x59,0x71,0xC3,0x47,0xD9,0x75,0xD3,0x67,0x0A,0xF5, + + 0x89,0xD3,0xD8,0xE7,0xBB,0x33,0x49,0x28,0x37,0x48,0x05,0x13,0x48,0x2A,0xE5,0xE2, + + 0xDE,0x56,0xCA,0x6A,0x3A,0x56,0xDD,0xD0,0x43,0x94,0x5A,0x38,0x25,0x92,0x8C,0x7B, + + 0x2B,0x6F,0xC3,0xF9,0x90,0x31,0xC8,0x6B,0xCE,0x6A,0x13,0x10,0x24,0x5A,0x55,0x3B, + + 0x5C,0x10,0x0B,0x1D,0xAF,0x45,0xE1,0x31,0x34,0x84,0x9A,0xFB,0x7B,0x27,0xBB,0x6F, + + 0xAB,0x86,0xC2,0x4C,0x1A,0x2C,0x52,0x68,0x4A,0x4C,0xD2,0x6C,0x5A,0x6C,0x32,0xA6, + + 0xB6,0xF5,0xCA,0x5C,0x1B,0x2D,0x5A,0x78,0x4B,0x4D,0xDA,0x7C,0x5B,0x6D,0xEC,0xA6, + + 0x3F,0xA6,0xC3,0x4D,0x9A,0x2E,0x53,0x69,0xCA,0x4E,0xD3,0x6D,0xDA,0x6E,0xB4,0xDB, + + 0x8E,0x0B,0xCB,0x5D,0x9B,0x2F,0x5B,0x79,0xCB,0x4F,0xDB,0x7D,0xDB,0x6F,0x04,0x80, + + 0x78,0xF8,0x05,0x77,0xD0,0x7C,0x3C,0x24,0x68,0xA2,0x79,0xCF,0xF5,0x77,0xDE,0xB0, + + 0x26,0xE9,0x27,0x7C,0x75,0x5D,0xE6,0x38,0x94,0x92,0xA3,0xEA,0x8C,0xF3,0x4F,0x28, + + 0x82,0x11,0xE4,0xFE,0x65,0xAF,0x4C,0x25,0x1D,0x93,0x7D,0x06,0xD4,0xAE,0x02,0x1D, + + 0xDA,0x02,0x59,0xCB,0x9F,0xEF,0xE7,0x59,0xE7,0x9E,0x85,0xBC,0xB1,0x78,0x44,0xC0, + + 0x22,0x14,0xC4,0xC4,0x32,0x34,0x54,0xE0,0x62,0x54,0xD4,0xE4,0x72,0x74,0x4C,0xD0, + + 0x23,0x15,0xCC,0xD4,0x33,0x35,0x5C,0xF0,0x63,0x55,0xDC,0xF4,0x73,0x75,0x45,0xC1, + + 0xA2,0x16,0xC5,0xC5,0xB2,0x36,0x55,0xE1,0xE2,0x56,0xD5,0xE5,0xF2,0x76,0x4D,0xD1, + + 0xA3,0x17,0xCD,0xD5,0xB3,0x37,0x5D,0xF1,0xE3,0x57,0xDD,0xF5,0xF3,0x77,0xD9,0x89, + + 0x2E,0x38,0xEF,0x67,0xD3,0x8C,0x57,0xFC,0x49,0x48,0x01,0x2E,0x79,0x1B,0x36,0x70, + + 0x27,0xD6,0x0E,0x5A,0xAB,0x3A,0xE3,0x5A,0xE9,0x86,0x16,0x79,0xD8,0xF3,0xA9,0x0B, + + 0xAB,0xFC,0x24,0x97,0xD3,0x4E,0x77,0xE8,0x05,0xD1,0xAD,0x4F,0xDC,0x7C,0x55,0x6B, + + 0x0A,0x1D,0x6C,0x66,0x50,0x9C,0x25,0x51,0xE7,0x94,0x70,0x5F,0x7B,0x33,0x46,0xC8, + + 0x2A,0x1C,0xC6,0xCC,0x3A,0x3C,0x56,0xE8,0x6A,0x5C,0xD6,0xEC,0x7A,0x7C,0x4E,0xD8, + + 0x2B,0x1D,0xCE,0xDC,0x3B,0x3D,0x5E,0xF8,0x6B,0x5D,0xDE,0xFC,0x7B,0x7D,0x47,0xC9, + + 0xAA,0x1E,0xC7,0xCD,0xBA,0x3E,0x57,0xE9,0xEA,0x5E,0xD7,0xED,0xFA,0x7E,0x4F,0xD9, + + 0xAB,0x1F,0xCF,0xDD,0xBB,0x3F,0x5F,0xF9,0xEB,0x5F,0xDF,0xFD,0xFB,0x7F,0x20,0xFF, + + 0x04,0x0D,0xE0,0x39,0x1C,0xCC,0x50,0xE2,0x8A,0x4B,0xC0,0xF9,0xE3,0xAC,0x76,0x0A, + + 0xDC,0x2A,0x0F,0x81,0x7E,0x07,0xB5,0xC2,0x4D,0xCE,0x9E,0x3A,0xD9,0x3A,0xD9,0x0B, + + 0x5B,0x1D,0x89,0xC5,0x40,0x64,0xCB,0xC1,0x46,0xCA,0xC7,0x34,0xC8,0xA6,0x2E,0x31, + + 0xEE,0x73,0x29,0xE6,0x57,0xE3,0xE4,0x31,0xBE,0xC3,0x99,0xCA,0x95,0xAD,0xDB,0xA0, + + 0xAA,0x79,0xE0,0x46,0x16,0xA4,0x70,0x62,0x46,0xC4,0xF0,0x66,0x56,0xE4,0x22,0xEF, + + 0x85,0xCD,0xE8,0x56,0x17,0xA5,0x78,0x72,0x47,0xC5,0xF8,0x76,0x57,0xE5,0x19,0x38, + + 0x88,0xE4,0xE1,0x47,0x96,0xA6,0x71,0x63,0xC6,0xC6,0xF1,0x67,0xD6,0xE6,0xF4,0xB1, + + 0xA3,0x7A,0xE9,0x57,0x97,0xA7,0x79,0x73,0xC7,0xC7,0xF9,0x77,0xD7,0xE7,0x21,0xFB, + + 0x94,0x88,0x98,0xFD,0xCA,0x07,0x69,0x68,0x33,0xC8,0xC2,0x08,0xBE,0x8B,0x2A,0x46, + + 0x09,0xF1,0xD4,0x84,0xF6,0x6C,0x67,0xC3,0xCD,0x52,0xCA,0xE1,0xBE,0xAB,0x7D,0x08, + + 0x73,0xCA,0x44,0xFE,0x46,0xBA,0xE8,0x6B,0xCA,0xEA,0x03,0x98,0xF2,0xA6,0x69,0x3F, + + 0xA9,0x8B,0xD5,0x28,0xF6,0x0E,0x3B,0xC6,0xCD,0x10,0x3B,0x87,0x0A,0x56,0xBD,0x42, + + 0x20,0xCA,0xE2,0x4E,0x1E,0xAC,0x72,0x6A,0x4E,0xCC,0xF2,0x6E,0x5E,0xEC,0x1A,0x85, + + 0xE0,0xCC,0xEA,0x5E,0x1F,0xAD,0x7A,0x7A,0x4F,0xCD,0xFA,0x7E,0x5F,0xED,0x91,0x8D, + + 0x2C,0xC2,0xE3,0x4F,0x9E,0xAE,0x73,0x6B,0xCE,0xCE,0xF3,0x6F,0xDE,0xEE,0x13,0x7C, + + 0xAB,0x8F,0xEB,0x5F,0x9F,0xAF,0x7B,0x7B,0xCF,0xCF,0xFB,0x7F,0xDF,0xEF,0x28,0x85, + + 0x85,0x18,0xAA,0x34,0x17,0x70,0x54,0x62,0xAA,0x5B,0xAF,0xD4,0xD7,0xF6,0xBB,0x62, + + 0x2D,0x9E,0x8C,0x86,0x81,0x66,0xAF,0xC0,0xC6,0xD7,0xC4,0x34,0x70,0x9B,0x27,0x61, + + 0x26,0xDA,0xFF,0xDD,0x03,0xCD,0xCB,0x41,0x66,0x9A,0x3D,0xCE,0x57,0x97,0x4D,0xD7, + + 0xD1,0x9C,0x18,0x28,0x68,0xCE,0x35,0xFF,0x46,0xD5,0x85,0x67,0x02,0xFC,0x64,0xC2, + + 0x26,0x94,0xE4,0xC6,0x36,0xB4,0x74,0xE2,0x66,0xD4,0xF4,0xE6,0x76,0xF4,0x6C,0xD2, + + 0x27,0x95,0xEC,0xD6,0x37,0xB5,0x7C,0xF2,0x67,0xD5,0xFC,0xF6,0x77,0xF5,0x65,0xC3, + + 0xA6,0x96,0xE5,0xC7,0xB6,0xB6,0x75,0xE3,0xE6,0xD6,0xF5,0xE7,0xF6,0xF6,0x6D,0xD3, + + 0xA7,0x97,0xED,0xD7,0xB7,0xB7,0x7D,0xF3,0xE7,0xD7,0xFD,0xF7,0xF7,0xF7,0x46,0x4A, + + 0xE2,0x13,0x09,0xD0,0x89,0x64,0x3A,0x2D,0xCD,0x50,0x8E,0x7E,0x87,0xF7,0xA7,0x6A, + + 0x25,0x96,0x3E,0x80,0x2D,0x4D,0x98,0x4A,0x65,0xD6,0x3E,0xBF,0xFF,0xF1,0x59,0x69, + + 0x2E,0x92,0xCF,0x4D,0x3A,0x4F,0xB7,0x49,0x6E,0xF2,0x18,0xD1,0x21,0xB8,0x9B,0xE9, + + 0x0E,0x56,0xAA,0x85,0xA9,0x0F,0x5F,0x7B,0x23,0x50,0x6B,0x4F,0xF5,0xF4,0x66,0xCA, + + 0x2E,0x9C,0xE6,0xCE,0x3E,0xBC,0x76,0xEA,0x6E,0xDC,0xF6,0xEE,0x7E,0xFC,0x6E,0xDA, + + 0x2F,0x9D,0xEE,0xDE,0x3F,0xBD,0x7E,0xFA,0x6F,0xDD,0xFE,0xFE,0x7F,0xFD,0x67,0xCB, + + 0xAE,0x9E,0xE7,0xCF,0xBE,0xBE,0x77,0xEB,0xEE,0xDE,0xF7,0xEF,0xFE,0xFE,0x6F,0xDB, + + 0xAF,0x9F,0xEF,0xDF,0xBF,0xBF,0x7F,0xFB,0xEF,0xDF,0xFF,0xFF,0x46,0x75,0x80,0x00, + + 0x0C,0x4C,0x88,0x49,0x73,0x00,0x6E,0xA0,0xC0,0xF3,0x26,0xD5,0xB8,0x30,0x51,0xEF, + + 0xE0,0xCE,0x88,0xE9,0x11,0xFA,0x41,0xB5,0x26,0x48,0xA7,0x6A,0xA0,0xBD,0xB6,0x85, + + 0x80,0x91,0xF9,0xFC,0x10,0xB9,0xAE,0x93,0x74,0xD2,0xEF,0x17,0x55,0x74,0x60,0xEA, + + 0xEA,0x06,0xA1,0x91,0x99,0x6A,0x18,0xC5,0xC1,0xE8,0xC0,0x21,0x5C,0x00,0x15,0x9E, + + 0xFB,0x7A,0xC0,0x44,0x12,0x24,0x50,0x60,0x42,0x44,0xD0,0x64,0x52,0x64,0x3C,0x74, + + 0x03,0x05,0xC8,0x54,0x13,0x25,0x58,0x70,0x43,0x45,0xD8,0x74,0x53,0x65,0x7C,0x07, + + 0x20,0x48,0xC1,0x45,0x92,0x26,0x51,0x61,0xC2,0x46,0xD1,0x65,0xD2,0x66,0x49,0x51, + + 0x83,0x07,0xC9,0x55,0x93,0x27,0x59,0x71,0xC3,0x47,0xD9,0x75,0xD3,0x67,0xA9,0xE0, + + 0x08,0xF3,0xDB,0x98,0xE5,0xE9,0x52,0x29,0xC8,0xF9,0x39,0x89,0x8D,0x76,0xE5,0xE2, + + 0x62,0x99,0x70,0x14,0xFC,0x3B,0x43,0xBD,0x6B,0x44,0xB9,0xCD,0xC5,0x29,0x03,0x7B, + + 0x2F,0x1A,0x79,0x85,0x6D,0xE9,0x29,0xDA,0xCA,0xB7,0xEE,0xDE,0x00,0xBE,0x24,0xE8, + + 0xD1,0x0E,0x01,0x7D,0x93,0x30,0x19,0xCD,0x69,0x4F,0x73,0xB7,0xFB,0xBD,0x42,0x48, + + 0x0A,0x0C,0xC2,0x4C,0x1A,0x2C,0x52,0x68,0x4A,0x4C,0xD2,0x6C,0x5A,0x6C,0x4A,0x58, + + 0x0B,0x0D,0xCA,0x5C,0x1B,0x2D,0x5A,0x78,0x4B,0x4D,0xDA,0x7C,0x5B,0x6D,0x43,0x49, + + 0x8A,0x0E,0xC3,0x4D,0x9A,0x2E,0x53,0x69,0xCA,0x4E,0xD3,0x6D,0xDA,0x6E,0x4B,0x59, + + 0x8B,0x0F,0xCB,0x5D,0x9B,0x2F,0x5B,0x79,0xCB,0x4F,0xDB,0x7D,0xDB,0x6F,0x04,0x80, + + 0x78,0xF8,0xE4,0x44,0xF2,0xBB,0xEE,0xD2,0x53,0xB2,0xB7,0xA8,0xA8,0x00,0xDE,0xB0, + + 0x26,0xE9,0x48,0xF6,0x72,0xDE,0x46,0xB1,0xC2,0x57,0x34,0x17,0x0E,0x02,0x4F,0x28, + + 0x82,0x11,0x7A,0x67,0x32,0x3A,0xEF,0x23,0xE5,0xA3,0x7D,0x16,0x75,0x35,0x02,0x1D, + + 0x92,0xF1,0xF5,0xF7,0xF2,0xCE,0x95,0x8D,0x42,0x55,0x5D,0xB5,0x81,0x86,0x44,0xC0, + + 0x22,0x14,0xC4,0xC4,0x32,0x34,0x54,0xE0,0x62,0x54,0xD4,0xE4,0x72,0x74,0x4C,0xD0, + + 0x23,0x15,0xCC,0xD4,0x33,0x35,0x5C,0xF0,0x63,0x55,0xDC,0xF4,0x73,0x75,0x45,0xC1, + + 0xA2,0x16,0xC5,0xC5,0xB2,0x36,0x55,0xE1,0xE2,0x56,0xD5,0xE5,0xF2,0x76,0x4D,0xD1, + + 0xA3,0x17,0xCD,0xD5,0xB3,0x37,0x5D,0xF1,0xE3,0x57,0xDD,0xF5,0xF3,0x77,0xDC,0x84, + + 0x1B,0xFA,0xFE,0x0E,0x39,0xDF,0x1E,0xE5,0xCB,0x5E,0xD6,0x28,0x78,0xE9,0x6E,0xD8, + + 0x27,0x14,0x86,0x33,0x9A,0x39,0xDA,0xCE,0x9E,0x49,0x8D,0x83,0x61,0x3B,0xC5,0xFF, + + 0x8B,0x45,0xDD,0x8C,0x1B,0x3C,0x1F,0xE5,0x4B,0x41,0x20,0xA5,0xFE,0x7A,0x05,0x91, + + 0x0A,0x16,0xD1,0x8A,0xB1,0x3B,0xA5,0x46,0xDA,0x79,0x9F,0x85,0x86,0x6B,0x46,0xC8, + + 0x2A,0x1C,0xC6,0xCC,0x3A,0x3C,0x56,0xE8,0x6A,0x5C,0xD6,0xEC,0x7A,0x7C,0x4E,0xD8, + + 0x2B,0x1D,0xCE,0xDC,0x3B,0x3D,0x5E,0xF8,0x6B,0x5D,0xDE,0xFC,0x7B,0x7D,0x47,0xC9, + + 0xAA,0x1E,0xC7,0xCD,0xBA,0x3E,0x57,0xE9,0xEA,0x5E,0xD7,0xED,0xFA,0x7E,0x4F,0xD9, + + 0xAB,0x1F,0xCF,0xDD,0xBB,0x3F,0x5F,0xF9,0xEB,0x5F,0xDF,0xFD,0xFB,0x7F,0x7E,0x1F, + + 0x54,0x2B,0x66,0x70,0x50,0xCC,0xB0,0xD6,0x65,0xD0,0xCF,0x55,0xBE,0x48,0xD7,0x16, + + 0x05,0x59,0xC8,0x57,0xF8,0x2A,0x82,0x75,0x4B,0xC8,0x93,0xD8,0xEA,0xE5,0x04,0x03, + + 0xEF,0xA6,0xC3,0x02,0x95,0x14,0xEB,0x23,0xF7,0xD0,0xC3,0xC7,0x90,0x69,0x96,0xEE, + + 0x95,0xE0,0x54,0xF5,0x15,0x7C,0x7B,0xDB,0xC3,0x4E,0xBB,0x19,0x23,0x96,0x60,0x42, + + 0x06,0x84,0xE0,0x46,0x16,0xA4,0x70,0x62,0x46,0xC4,0xF0,0x66,0x56,0xE4,0x68,0x52, + + 0x07,0x85,0xE8,0x56,0x17,0xA5,0x78,0x72,0x47,0xC5,0xF8,0x76,0x57,0xE5,0x61,0x43, + + 0x86,0x86,0xE1,0x47,0x96,0xA6,0x71,0x63,0xC6,0xC6,0xF1,0x67,0xD6,0xE6,0x69,0x53, + + 0x87,0x87,0xE9,0x57,0x97,0xA7,0x79,0x73,0xC7,0xC7,0xF9,0x77,0xD7,0xE7,0xC2,0xBC, + + 0x8B,0x8F,0xC2,0x4A,0x68,0x25,0xA0,0xDC,0x5E,0x43,0x45,0x71,0xE1,0x14,0xBA,0xF8, + + 0xA1,0xC8,0xF0,0x1B,0xBE,0xAF,0x78,0x48,0x29,0x06,0xD2,0xB8,0xA1,0xA8,0x8B,0xA9, + + 0x53,0x65,0xDB,0x8D,0x9D,0xD2,0x73,0x9F,0x2B,0xD1,0x18,0x41,0x09,0xE4,0xBB,0x1B, + + 0x8D,0x8B,0xA3,0x53,0x7C,0xA4,0x7A,0xCB,0xCF,0x08,0x18,0x37,0x01,0xDB,0x62,0x4A, + + 0x0E,0x8C,0xE2,0x4E,0x1E,0xAC,0x72,0x6A,0x4E,0xCC,0xF2,0x6E,0x5E,0xEC,0x6A,0x5A, + + 0x0F,0x8D,0xEA,0x5E,0x1F,0xAD,0x7A,0x7A,0x4F,0xCD,0xFA,0x7E,0x5F,0xED,0x63,0x4B, + + 0x8E,0x8E,0xE3,0x4F,0x9E,0xAE,0x73,0x6B,0xCE,0xCE,0xF3,0x6F,0xDE,0xEE,0x6B,0x5B, + + 0x8F,0x8F,0xEB,0x5F,0x9F,0xAF,0x7B,0x7B,0xCF,0xCF,0xFB,0x7F,0xDF,0xEF,0x2E,0x02, + + 0x87,0x96,0x84,0x6D,0xBB,0xB2,0x8E,0x58,0x74,0x1D,0x5C,0x04,0xF1,0xF7,0x6D,0x64, + + 0x16,0xB3,0xC4,0x88,0xF3,0x45,0x38,0x08,0xE7,0xD9,0x9A,0xBB,0xF1,0x55,0x6D,0x11, + + 0x05,0x89,0x12,0x86,0x39,0xBE,0x4A,0x4E,0xC4,0x90,0x5A,0x49,0x71,0x55,0xF7,0xF1, + + 0xB5,0x58,0x4B,0x66,0x7F,0xF3,0xB0,0xC1,0x46,0x68,0x3C,0xB0,0x82,0xF7,0x64,0xC2, + + 0x26,0x94,0xE4,0xC6,0x36,0xB4,0x74,0xE2,0x66,0xD4,0xF4,0xE6,0x76,0xF4,0x6C,0xD2, + + 0x27,0x95,0xEC,0xD6,0x37,0xB5,0x7C,0xF2,0x67,0xD5,0xFC,0xF6,0x77,0xF5,0x65,0xC3, + + 0xA6,0x96,0xE5,0xC7,0xB6,0xB6,0x75,0xE3,0xE6,0xD6,0xF5,0xE7,0xF6,0xF6,0x6D,0xD3, + + 0xA7,0x97,0xED,0xD7,0xB7,0xB7,0x7D,0xF3,0xE7,0xD7,0xFD,0xF7,0xF7,0xF7,0x26,0x62, + + 0x3E,0x55,0xF8,0x1C,0x38,0x35,0x16,0x50,0x93,0x03,0x69,0xBE,0xFB,0xFF,0x77,0x1F, + + 0x4A,0x95,0xF0,0x05,0x2D,0x16,0x67,0x2B,0x98,0x16,0x48,0x1B,0xF8,0xFE,0xD8,0x39, + + 0x7D,0x0A,0xD9,0x11,0x57,0x4C,0x1F,0x2F,0xE4,0x93,0x07,0x1D,0xD2,0xBF,0x2E,0x6F, + + 0xAD,0x16,0xCC,0x6C,0x59,0x14,0x3E,0xC4,0x0A,0xDD,0x50,0x4D,0xFB,0xFB,0x66,0xCA, + + 0x2E,0x9C,0xE6,0xCE,0x3E,0xBC,0x76,0xEA,0x6E,0xDC,0xF6,0xEE,0x7E,0xFC,0x6E,0xDA, + + 0x2F,0x9D,0xEE,0xDE,0x3F,0xBD,0x7E,0xFA,0x6F,0xDD,0xFE,0xFE,0x7F,0xFD,0x67,0xCB, + + 0xAE,0x9E,0xE7,0xCF,0xBE,0xBE,0x77,0xEB,0xEE,0xDE,0xF7,0xEF,0xFE,0xFE,0x6F,0xDB, + + 0xAF,0x9F,0xEF,0xDF,0xBF,0xBF,0x7F,0xFB,0xEF,0xDF,0xFF,0xFF,0x29,0x22,0x59,0x0E, + + 0xE5,0x0B,0xC8,0x90,0xF9,0x89,0x40,0x06,0xAD,0x22,0xEE,0x18,0x56,0x62,0x46,0xAA, + + 0xD5,0x72,0x5E,0x53,0xCF,0x29,0xDC,0xC3,0x6B,0xEC,0x5B,0x47,0x78,0xE3,0x81,0x60, + + 0xB4,0x40,0x93,0xFB,0x6F,0x8F,0x6F,0x81,0x29,0x61,0x25,0x56,0xBE,0x6B,0xAE,0xA9, + + 0x87,0x21,0x09,0x54,0xFD,0x61,0x8E,0x0F,0xB5,0x58,0xE6,0x46,0xE3,0x0F,0xBF,0xF1, + + 0x3C,0xAB,0x99,0xA8,0xB7,0xA4,0x68,0x10,0x4A,0x4F,0x10,0xE5,0xF7,0x11,0xC8,0x31, + + 0x67,0xA8,0x08,0x31,0x2F,0xD0,0x8B,0x41,0xE2,0xBA,0xC0,0xB4,0x1C,0x30,0x94,0x32, + + 0xEC,0x0D,0x39,0xC1,0x90,0x9D,0xD1,0x00,0xA6,0xEB,0x1E,0x0A,0x5D,0xC0,0x18,0xB1, + + 0x87,0x2E,0x9A,0x6B,0xAD,0x65,0x67,0xC8,0xC5,0x45,0x96,0x1B,0x5C,0xC1,0xB1,0x8C, + + 0x0A,0x38,0xC6,0xBA,0x72,0x5B,0x92,0x76,0xEC,0xA5,0xF5,0xEC,0x1A,0x2A,0x74,0xB4, + + 0xE0,0xA0,0x8C,0xAC,0xF0,0x80,0x63,0xCB,0x67,0x9D,0xE4,0x85,0xD4,0xC4,0x7D,0xA0, + + 0x24,0x07,0xFD,0xB4,0x91,0xCB,0xD7,0x77,0xC6,0x54,0xD7,0x9B,0xB2,0x19,0xF6,0xF5, + + 0x89,0xDE,0x99,0x1C,0x66,0xA6,0xCB,0x4B,0x22,0xC8,0xC8,0xA2,0x32,0x63,0xD0,0xCC, + + 0x00,0xCB,0x88,0x34,0x9A,0x6E,0x57,0x9B,0x3A,0x29,0x19,0xAC,0x0B,0x11,0x91,0x58, + + 0xE2,0x9E,0x1E,0x2F,0x3D,0x6F,0x52,0x49,0xEA,0xB2,0x63,0x41,0x5D,0x6F,0x15,0xE4, + + 0x61,0xBD,0x2F,0x3E,0xFC,0x88,0x6B,0x9A,0xB2,0xE3,0x2C,0xE9,0xD0,0x9D,0x5D,0x28, + + 0x60,0x07,0x8B,0xAD,0x9A,0xEF,0x65,0xC4,0xCD,0x4D,0xDB,0x8E,0xAF,0x0A,0x66,0x84, + + 0x23,0x32,0x96,0x7B,0xCF,0xBD,0x10,0x46,0x48,0x02,0x73,0x64,0x76,0x32,0x8E,0x14, + + 0x29,0x76,0xCC,0xA3,0xD8,0xD2,0x08,0x9B,0x49,0xBF,0xCF,0x27,0x18,0xDE,0xC5,0x00, + + 0xB6,0xA9,0xD7,0x7A,0x47,0x70,0x01,0x1D,0xC8,0xC8,0xD5,0x03,0x7D,0xDF,0x52,0x99, + + 0xA7,0x31,0x95,0x8D,0x3E,0xB5,0x09,0x5A,0xE7,0x51,0x95,0xC6,0xCF,0xF5,0xC2,0xB3, + + 0x48,0x5B,0x94,0x5C,0x36,0x10,0x4E,0xE2,0xF0,0x5C,0xB2,0xD9,0x8D,0xA9,0x50,0xD0, + + 0xAC,0xB8,0x96,0x4A,0x5B,0x36,0x98,0x0A,0x9E,0x37,0x62,0xE1,0xFE,0xF8,0x44,0xB2, + + 0xC4,0x59,0x90,0xB7,0x59,0x35,0x49,0x9F,0x46,0xBB,0xB3,0xD9,0x05,0x75,0x9F,0x42, + + 0x8D,0xBA,0xB3,0xD3,0x52,0xB4,0x22,0x82,0x93,0x12,0x3A,0x0A,0x12,0xA1,0xC2,0x71, + + 0x24,0x1C,0x82,0x4C,0x3C,0x10,0xA2,0xDB,0x41,0xDA,0x96,0x5F,0x06,0x50,0x51,0x8D, + + 0x2F,0x39,0x82,0xA9,0x71,0xBA,0x79,0x78,0x23,0xF4,0x80,0x47,0x0A,0x79,0x84,0x0D, + + 0xA2,0x48,0x11,0x09,0xBA,0x7D,0x68,0xDA,0xDA,0x36,0xC8,0xBC,0x9A,0xD7,0xFB,0x80, + + 0xAF,0x39,0xB1,0xA1,0x1D,0xD6,0x03,0x89,0x1E,0xE4,0x89,0xDF,0x06,0xE6,0x96,0x4C, + + 0x28,0x97,0x6F,0x3F,0xB6,0x31,0xE8,0x6D,0x9D,0xF1,0x2D,0xAB,0x87,0xDA,0x70,0x64, + + 0xC8,0x16,0xF4,0x2F,0x4B,0x92,0x8C,0x86,0x19,0xF2,0x45,0x76,0x78,0x37,0x0F,0xCD, + + 0x83,0xDF,0x9F,0xC9,0x32,0xEF,0x40,0x6C,0x92,0xF1,0x83,0x1D,0x7A,0x61,0xCB,0xAA, + + 0xD1,0x90,0xD8,0xAE,0x99,0x9E,0x09,0x3E,0x02,0x9C,0x5E,0xFF,0x0F,0x0F,0xF5,0x3D, + + 0x76,0x3F,0x60,0x86,0xDE,0x0D,0x0E,0x92,0xC9,0x46,0x8E,0x8B,0x82,0x4F,0xE9,0x0D, + + 0x37,0x54,0xCA,0x17,0x16,0xE1,0x38,0xC2,0xBA,0x6E,0xEA,0xC6,0x51,0x40,0x7A,0x03, + + 0x82,0xC2,0xF0,0x67,0xDE,0xCC,0x30,0x63,0xC0,0xE2,0x66,0x66,0xAF,0x42,0xFC,0x2C, + + 0xF7,0x3F,0xA5,0x22,0x7C,0x30,0x6E,0xC0,0xB3,0x6E,0xEA,0xC4,0xA7,0x6E,0xDB,0xF3, + + 0x38,0x2B,0x20,0xC6,0x6D,0xE6,0x75,0x9C,0xEA,0xC9,0xC8,0x95,0x2A,0x8A,0x28,0xAB, + + 0xA6,0x0C,0xEC,0x74,0x33,0x2E,0x1E,0x4B,0xAE,0x54,0xE2,0x74,0xE4,0x48,0xB6,0x02, + + 0xFD,0xC4,0x7D,0x6A,0xDE,0x25,0x8E,0xA4,0x2F,0x95,0x97,0x5E,0x3F,0x77,0x6D,0xB3, + + 0x83,0xAE,0xED,0xB5,0x6B,0x34,0x63,0x71,0x74,0x6A,0x6A,0x07,0x57,0xF1,0x9F,0x51, + + 0x7F,0x88,0xC4,0x7F,0xF7,0x7B,0x60,0x98,0x5C,0xC8,0xE4,0x83,0xB7,0x9B,0xFC,0xBA, + + 0x1F,0xBB,0xD4,0xA7,0x14,0x48,0x5A,0x5A,0xBB,0x68,0xF9,0x4D,0x74,0x6B,0xE3,0x0F, + + 0x9A,0x3E,0x9D,0xA2,0x5E,0xAA,0x3B,0x2F,0xC5,0x2B,0x73,0xAE,0xB3,0xE0,0x72,0x14, + + 0x68,0xE7,0xAD,0xAF,0x74,0x02,0x03,0xDE,0xC5,0x17,0x44,0x4C,0xEF,0x87,0xF0,0xCE, + + 0x04,0x59,0x51,0xE3,0x18,0x44,0x27,0x1A,0xCE,0xDA,0xFA,0x7A,0x96,0x3D,0x2A,0x33, + + 0x0E,0x5D,0x8D,0x3C,0xF4,0x8E,0xAB,0xE5,0xBA,0x44,0x3A,0xFF,0xAE,0xE0,0xA3,0xCB, + + 0x96,0xCC,0xF4,0x6B,0x1C,0xAA,0x7B,0x8B,0x41,0x63,0xE0,0x7C,0xA2,0x5F,0xAB,0xDB, + + 0xF9,0x85,0xB3,0x5B,0x17,0x16,0x5B,0x91,0x26,0xFC,0x00,0x58,0x7E,0x83,0xE0,0x7B, + + 0x6C,0xD2,0x60,0x75,0x12,0x1D,0x0A,0x0A,0xE9,0x66,0x74,0x26,0xBE,0x5D,0xEC,0x96, + + 0x33,0x45,0x92,0xAB,0xC1,0x60,0x02,0x0A,0x19,0x7E,0xF8,0x43,0x76,0x81,0x21,0x24, + + 0xDF,0x82,0x32,0x02,0x5F,0xD1,0x3D,0xA7,0xED,0x33,0xE4,0xC7,0xF6,0xB0,0x7D,0x8C, + + 0x8F,0x88,0xF4,0x92,0x60,0xF6,0xEE,0xCD,0x65,0x92,0x7D,0x37,0x53,0x5E,0x7C,0x4B, + + 0xCF,0x47,0xDC,0xF7,0x97,0x35,0x12,0x43,0x8F,0xD7,0xD4,0xC1,0xFB,0xEF,0x3B,0x56, + + 0x25,0xA5,0xBE,0x9D,0xDC,0xD1,0x2B,0x76,0x6D,0x00,0xC2,0xCE,0x71,0xF7,0x73,0xA1, + + 0x59,0x3B,0x5D,0x34,0x32,0x3B,0xB5,0x63,0x85,0xDE,0x83,0x81,0x3C,0x47,0x96,0xF4, + + 0x06,0xFB,0x2D,0xC7,0x8C,0x43,0xBD,0x73,0xFF,0x95,0xF3,0x37,0x89,0x7C,0x0E,0xEC, + + 0x0F,0xE8,0x18,0x0B,0xE9,0xDA,0x30,0x1A,0x85,0x71,0xE5,0x97,0x97,0xF0,0x77,0x76, + + 0x88,0xF7,0x90,0xA3,0xE3,0x16,0x6C,0x45,0x6B,0xDB,0xEC,0x4E,0x8A,0x58,0x7E,0x8D, + + 0x09,0x65,0xCE,0x65,0x43,0xD6,0x25,0x54,0x13,0x57,0x8C,0xAD,0xC8,0x5A,0xC8,0xDB, + + 0xFD,0x36,0x38,0xEC,0xC9,0x6D,0xDD,0x3F,0xE7,0x30,0xEC,0x4C,0x8F,0x70,0x00,0x7E, + + 0xC7,0x3F,0xFE,0xD0,0x61,0x08,0x36,0x83,0x6F,0xDD,0xE8,0xDF,0x5C,0xE3,0xEE,0xBB, + + 0x4B,0xB4,0xCE,0xB8,0x57,0xB0,0xF8,0x89,0x05,0x92,0xA8,0x03,0x77,0xBF,0xA7,0x4B, + + 0x87,0x96,0x2C,0xD5,0xE5,0xA5,0xB7,0x6B,0x98,0xD4,0x4F,0x3F,0xA2,0xF5,0x7F,0x5F, + + 0xAD,0x24,0xF9,0xBD,0xDF,0xC5,0x7E,0x88,0x89,0x90,0xF6,0x50,0xCC,0xFB,0xB8,0xFF, + + 0x06,0x22,0x40,0x84,0x0F,0x28,0x6E,0x09,0xBD,0x2C,0xC8,0x20,0x42,0x2D,0xBC,0x63, + + 0x79,0x0E,0x94,0x84,0x78,0xC0,0x34,0x6D,0x72,0x6B,0xA6,0xE8,0x38,0xDB,0xF2,0x72, + + 0xF0,0x0D,0x01,0x46,0xEA,0x8F,0x73,0x3C,0xC1,0x02,0xC9,0x21,0x59,0xD1,0x53,0x1E, + + 0xFD,0x1C,0x91,0x85,0xE6,0x23,0xA1,0xD1,0x9D,0x2D,0xC1,0x2D,0x5C,0xCE,0x38,0x67, + + 0xFF,0x0B,0xBE,0x68,0xCE,0x55,0x2F,0x1E,0x30,0xDB,0xEF,0x82,0x31,0x47,0x12,0xAF, + + 0xA4,0x69,0xB1,0x32,0x30,0x44,0x63,0xF4,0x41,0x75,0x17,0x06,0xF0,0xC8,0x1B,0x4E, + + 0xFA,0x19,0x9B,0x91,0xFA,0xC7,0x6E,0x50,0x63,0xB9,0xC7,0x50,0xD4,0x44,0xF6,0xC3, + + 0x7C,0xDA,0xEE,0x53,0x43,0x43,0xA2,0x56,0x62,0xB8,0x4F,0xF1,0xD1,0x4B,0x58,0xF7, + + 0xAF,0x64,0xBC,0x21,0x70,0x81,0x4B,0x9B,0xED,0xEE,0x8A,0xBF,0x07,0x06,0x34,0x20, + + 0x68,0x0D,0x4A,0x9C,0x15,0x6B,0x5A,0x69,0x48,0x09,0xB6,0x85,0xD4,0xC4,0x3D,0x30, + + 0x4A,0xF5,0x7C,0x73,0xF2,0x7B,0xDE,0x5A,0xDF,0x08,0xF1,0x3D,0xD9,0x2A,0x69,0x1B, + + 0x8A,0x3B,0xCB,0xD0,0x98,0x6B,0x37,0x64,0x28,0xE4,0x50,0xAE,0x82,0x05,0x58,0x4A, + + 0xC8,0x08,0xFA,0xB2,0xB6,0x21,0xBE,0xE7,0xBF,0x1A,0x12,0xED,0xCF,0x2E,0xF2,0xA7, + + 0x68,0x79,0xB0,0xBC,0x1F,0x00,0xF1,0x27,0xF6,0xB1,0x16,0x0F,0x37,0x2F,0x0B,0x45, + + 0xB9,0xCA,0xB9,0xAD,0x9E,0xF3,0x5B,0x7D,0x1F,0x13,0x93,0x32,0xDC,0x4C,0x5C,0xB3, + + 0x76,0x40,0xE5,0x46,0x1F,0xBB,0x65,0xC8,0xA3,0x5F,0x9B,0xF4,0xDD,0x4D,0x3F,0x13, + + 0x11,0x1A,0xBA,0xA9,0xFA,0x99,0x32,0x42,0x54,0xFF,0xDB,0x5B,0x91,0xF6,0x72,0x96, + + 0x42,0xE6,0x8C,0x10,0x33,0x51,0x22,0x98,0xEC,0xF7,0x33,0x04,0x71,0xAE,0x14,0x71, + + 0x53,0xA3,0x7A,0xF6,0x84,0xB4,0x80,0xD3,0x0B,0x43,0x95,0xFA,0x90,0x52,0x5E,0x62, + + 0x2D,0x1E,0x4D,0x15,0xAE,0x3B,0x03,0xF1,0xE5,0x7F,0x5D,0xB4,0x5F,0x68,0xD1,0xB3, + + 0x1E,0x1D,0xD5,0xE3,0x93,0x9B,0x0E,0x78,0xC1,0x52,0x67,0xCC,0x74,0x2D,0xDD,0xD3, + + 0xB2,0xB5,0x68,0xB6,0x84,0x50,0x24,0x18,0xAF,0x18,0x4A,0xB3,0xB1,0x85,0xC5,0xC2, + + 0x33,0xB6,0xD0,0xDE,0x36,0xA2,0xFF,0xF3,0x81,0xD4,0xFD,0xF4,0x9E,0xDB,0xDB,0xD2, + + 0x0B,0x56,0xF5,0x27,0x90,0x77,0x26,0xF9,0x46,0xE8,0x95,0xF1,0x7A,0x58,0x5E,0x18, + + 0xD1,0xB9,0x06,0xCF,0x42,0x7A,0x9B,0x2C,0x62,0x6C,0x36,0xCA,0x83,0x14,0x4E,0x91, + + 0x9E,0x7C,0xF6,0x8F,0x09,0x83,0x49,0xCB,0x55,0xF8,0x9E,0xFC,0x6D,0x62,0x3F,0x76, + + 0x59,0x58,0xC3,0x86,0xDB,0x1A,0x2F,0xC9,0xEC,0x76,0x28,0x36,0x0D,0xFC,0x37,0x76, + + 0xAF,0x39,0xA9,0xB5,0xEE,0x9F,0x27,0x46,0x00,0x0A,0xD5,0x4D,0xF1,0x34,0xE1,0x78, + + 0xF2,0xBF,0x7F,0x3E,0x19,0x55,0xE1,0xE5,0x9E,0x0C,0x46,0x9E,0x91,0x9D,0x0A,0x61, + + 0xD6,0xBC,0x6E,0xC6,0xB7,0x00,0xDF,0xE7,0x77,0x46,0xE0,0xC9,0xF6,0x8B,0x6A,0xA6, + + 0x33,0x5C,0x9A,0xC8,0xA0,0x8A,0x97,0x81,0x0A,0x8A,0x8E,0xEF,0x5F,0x81,0x4A,0x26, + + 0x5A,0xCC,0x0F,0x5D,0xE9,0xE2,0x7A,0x9F,0x18,0x4F,0x97,0x7C,0x98,0x0B,0x79,0x00, + + 0xA1,0x01,0x8C,0xBF,0xFD,0xB1,0xA6,0x51,0x28,0xAC,0xD2,0x36,0x55,0xF0,0xD0,0xFA, + + 0x85,0xCC,0xBE,0x74,0xEA,0x0C,0x14,0x6F,0x26,0x87,0xE0,0x32,0xDC,0x52,0x84,0xE9, + + 0x6D,0x33,0xB9,0x96,0x7D,0xD3,0x57,0x42,0xC5,0x82,0x8F,0x47,0xBD,0x18,0x2B,0xF5, + + 0xCD,0x80,0x38,0xB2,0x62,0x28,0x2F,0x06,0x2E,0x87,0x15,0x44,0xF4,0x45,0x39,0x9B, + + 0x00,0x04,0x44,0xB6,0xE9,0xAB,0x0E,0x6A,0xFF,0x65,0x59,0xE2,0x54,0x47,0x7D,0xD6, + + 0x0D,0xC8,0xFE,0x63,0xA4,0x28,0x61,0x72,0xC5,0xC1,0x6E,0xF2,0x55,0xAF,0x7E,0xB3, + + 0x99,0x27,0x55,0xA5,0xF5,0x2A,0x74,0x90,0xDE,0x86,0x31,0xE6,0xD9,0x4B,0x33,0x43, + + 0xEF,0xB6,0x11,0x34,0x5E,0x0A,0x76,0x11,0x06,0x4D,0x39,0xF6,0x42,0xA5,0x1C,0xAA, + + 0x81,0x0E,0x21,0x8A,0x1E,0x18,0x08,0x9A,0xF8,0x67,0x7D,0xD1,0xBD,0x6E,0x23,0x68, + + 0xF6,0x16,0x2A,0x5D,0x67,0x04,0x16,0x77,0xA4,0x28,0xC5,0x4C,0x23,0x76,0xA4,0xCB, + + 0x88,0xA3,0x63,0x8F,0x83,0xA2,0x97,0x49,0xEF,0x8A,0xB3,0x70,0xBC,0xCA,0x87,0x60, + + 0x47,0xB2,0x3D,0x7F,0xDF,0xC7,0x1D,0x4A,0x6E,0x4E,0x17,0x4C,0x8A,0x4D,0x1C,0x63, + + 0x3D,0x88,0x74,0xCA,0x1C,0x93,0xF6,0x1A,0x42,0xC5,0xB2,0x74,0x58,0xCE,0xC6,0xC8, + + 0x53,0x87,0x15,0x2D,0x73,0xEF,0x20,0xEF,0xEC,0xA8,0x63,0x3C,0xA7,0x9C,0xDB,0x5B, + + 0x29,0xC3,0xDB,0xB1,0x32,0xA3,0x31,0xE9,0x0B,0x1F,0x3F,0x6D,0x8A,0xAC,0xAB,0x4A, + + 0xBF,0x2F,0xAF,0x4A,0x3E,0x00,0x21,0xF2,0x6C,0xAA,0xC8,0x53,0x23,0xDE,0x1F,0xEC, + + 0x87,0xF5,0x32,0x5B,0xFC,0x51,0xF4,0x22,0x7C,0x4F,0xED,0xE4,0x17,0x72,0x2C,0x93, + + 0x75,0x95,0xF5,0x85,0xC4,0xFE,0x65,0x4A,0xC0,0x67,0x43,0x71,0x46,0xE5,0x98,0x61, + + 0xFC,0x25,0xBD,0x6F,0x83,0xFD,0x81,0xC1,0x1F,0xBC,0x4D,0x4F,0xC3,0xBF,0x82,0xB7, + + 0x44,0x88,0xAC,0xEC,0x12,0x3E,0x06,0x37,0xE7,0x7B,0x5F,0xF7,0xF1,0x0E,0x4B,0xBD, + + 0xFF,0x0B,0x9C,0xE1,0xCB,0xBB,0xCC,0x19,0x9A,0x64,0xE2,0xD3,0xC5,0xB9,0x57,0x56, + + 0x25,0xA5,0x7D,0xD1,0x8E,0xF7,0x4E,0xEC,0x37,0x21,0x3C,0x22,0x65,0x55,0x5A,0xF2, + + 0x07,0x69,0xC3,0xEA,0x32,0x12,0xC6,0xFB,0xE0,0xCF,0xED,0xF6,0x0A,0x17,0xDD,0xA4, + + 0xA9,0x48,0xAD,0x7F,0xB1,0x95,0x7A,0xD7,0x06,0x78,0x6B,0xF5,0x1E,0xEC,0x6C,0x6C, + + 0x1F,0x9C,0xFF,0x80,0xDB,0x4D,0x3E,0xAE,0xE5,0x6B,0x4C,0x46,0xB4,0xB5,0x77,0x98, + + 0x88,0x66,0xE4,0xE6,0x3B,0xB0,0x2F,0xDA,0x3D,0x52,0xE7,0xBC,0xD8,0x46,0xDF,0x0F, + + 0x81,0x59,0x32,0xB1,0x88,0xF8,0x09,0xDA,0xAE,0x73,0x4C,0xA7,0x59,0x05,0x39,0xF9, + + 0xC5,0x96,0xAF,0x77,0x79,0xF6,0xFF,0x3F,0xEF,0x6B,0x7F,0x3E,0x0B,0x26,0xD2,0xA8, + + 0x20,0xE3,0x2A,0xA5,0x1D,0xF1,0xE0,0x99,0x02,0x9E,0x96,0x1A,0x81,0xE7,0x3C,0xA5, + + 0x01,0x3B,0x97,0xB8,0xC4,0x36,0x05,0x89,0x03,0x9F,0xC0,0xF2,0xF2,0x9F,0xCE,0xB5, + + 0x3B,0x6B,0xBD,0x1B,0xD6,0x5F,0x37,0x30,0x16,0x9A,0xD7,0x89,0xDF,0x1E,0x57,0x25, + + 0x52,0x2E,0xC5,0xEE,0xD3,0xA0,0x3F,0x94,0x13,0x9B,0xA6,0x7D,0x18,0xBE,0xA3,0xB4, + + 0xDC,0xE3,0xE6,0xB0,0x11,0x70,0x94,0x25,0xC3,0x4D,0x92,0x77,0x50,0x60,0x6E,0xDD, + + 0xE8,0x5B,0x77,0x67,0x77,0xA2,0x70,0x52,0xFA,0x4F,0x1B,0xC7,0x0D,0xC5,0xED,0xE9, + + 0x5E,0x4F,0xBF,0xB0,0xF0,0xDD,0xEC,0xE3,0x61,0x1D,0x91,0x25,0x31,0xCD,0xC9,0x91, + + 0xC8,0x09,0x76,0xEB,0xB5,0x9F,0x21,0xDB,0xC7,0x03,0x56,0x3D,0x38,0x73,0x9D,0x41, + + 0xE3,0xBB,0x74,0x26,0x7A,0x95,0x57,0x93,0x1A,0x56,0xE8,0x84,0x09,0xC9,0x00,0x41, + + 0x13,0x24,0x64,0xD1,0xE4,0xD8,0x5B,0xF4,0x49,0xAA,0x4A,0x07,0x2F,0xEF,0x9E,0x40, + + 0x84,0xCF,0x3E,0x36,0xE2,0xF5,0xE9,0xF2,0x92,0xE9,0xC6,0xB5,0x25,0x6F,0xEA,0xD3, + + 0x46,0x0F,0x0D,0xAA,0x13,0x25,0x99,0x61,0x09,0x2B,0x22,0x15,0xF3,0x25,0xC3,0x8A, + + 0x91,0x21,0x3D,0x57,0xC9,0xF5,0xE8,0xAA,0x8D,0xC0,0x7E,0xBF,0x79,0x62,0x34,0xAD, + + 0x98,0xF4,0x66,0x67,0xDB,0x29,0xCC,0x09,0x15,0xE6,0xA4,0x35,0xD6,0xCF,0x3B,0xF6, + + 0xA9,0x68,0xA8,0x7F,0x27,0x75,0xD3,0x39,0x30,0xE7,0xCA,0x3E,0x83,0x5A,0x22,0x11, + + 0x09,0xAB,0xB0,0x8F,0x9D,0x23,0x9C,0x4A,0xAF,0xE8,0x50,0xFD,0x90,0x29,0x82,0x58, + + 0x31,0x17,0x02,0xCD,0x9A,0x8D,0x92,0x78,0x2C,0x46,0x96,0x10,0x38,0xB3,0x2A,0x0E, + + 0x0A,0x4F,0x19,0xA2,0x1D,0x0F,0x9A,0x68,0xB3,0xE0,0x3D,0x0F,0x23,0xBB,0x46,0xCD, + + 0xCA,0x54,0xD4,0xB2,0x73,0xBF,0xD1,0xED,0xC0,0xA1,0x28,0xAA,0x33,0xBF,0x0B,0x7D, + + 0x09,0xC3,0xC2,0xD9,0x91,0xE9,0xD8,0x2B,0x78,0xC5,0x93,0xFC,0xE8,0x3B,0xD2,0x04, + + 0x22,0x21,0x80,0xC4,0x2A,0xBD,0x72,0x11,0x9F,0xDB,0xAE,0x4B,0x0B,0x8F,0xF7,0x14, + + 0x2D,0x71,0x73,0x16,0xF4,0xC0,0xDC,0xD9,0x3D,0x3D,0x80,0x24,0x8E,0xDC,0xB2,0x88, + + 0x53,0xAD,0x92,0x7A,0x41,0xB1,0x17,0x32,0x82,0x8D,0x55,0xD1,0xF3,0xDF,0x65,0xF3, + + 0x1E,0x1D,0x4D,0x14,0xCD,0x71,0x27,0x2E,0x1E,0xD8,0x85,0xF2,0x2F,0x79,0xD4,0x42, + + 0xE7,0x9C,0xE2,0x26,0x59,0xD5,0xF7,0xD8,0xBE,0xE5,0xB4,0xB2,0xBA,0x79,0xC8,0xCE, + + 0xC2,0xE4,0x88,0xFC,0x10,0x75,0x67,0xBE,0x65,0x77,0xDB,0x76,0xF3,0x1C,0x85,0xD1, + + 0x99,0x54,0x42,0x54,0xDE,0x74,0xF8,0x9A,0x7F,0x0A,0x79,0x77,0xC1,0x7C,0x33,0xC8, + + 0x56,0x94,0xF9,0xF4,0x7B,0x6E,0x7D,0x0E,0x6C,0xF1,0xE5,0xD5,0x16,0xB7,0x3E,0x66, + + 0xAB,0x15,0x82,0xDF,0xC5,0x49,0x14,0x36,0x9F,0x5B,0x95,0xBF,0x59,0x68,0xCE,0x9C, + + 0xCE,0x1F,0xD5,0x9D,0x42,0x39,0xE1,0xBA,0x47,0x37,0x29,0xCD,0x7F,0xB0,0x7A,0x4B, + + 0x09,0x05,0x7A,0xF3,0x8E,0x65,0xA9,0x01,0x09,0x85,0xAD,0x42,0x83,0x5A,0xA5,0xD9, + + 0xAF,0x9B,0xEF,0xCB,0xCD,0x36,0x21,0x08,0x23,0x68,0xD7,0xAE,0xD8,0x6B,0x42,0x3B, + + 0x7A,0x5E,0xD7,0x48,0x38,0xCB,0x41,0x96,0xA0,0xCD,0x8C,0x94,0x12,0x6D,0x41,0xBA, + + 0xD4,0x91,0xF6,0x2F,0x5D,0x7F,0x57,0x03,0xE4,0xA0,0x72,0x6F,0x4E,0x77,0xDD,0xE7, + + 0x28,0x1A,0xFF,0x3E,0xD0,0x5B,0x5F,0xE4,0xEC,0x7C,0xA9,0xC5,0x13,0x6F,0x8B,0x5C, + + 0xE8,0x7F,0x8F,0x86,0x1A,0x90,0x38,0x87,0x39,0x55,0x5B,0xEE,0xCE,0x6E,0x8B,0x45, + + 0x0A,0x5C,0xE5,0x74,0x6C,0x5F,0xB3,0xD1,0x10,0x81,0xF4,0x9F,0xA9,0x41,0xFE,0x0C, + + 0x63,0x87,0x02,0xB6,0x13,0x83,0x1B,0x86,0x9D,0x22,0x43,0x11,0xF4,0x1E,0xE5,0xC9, + + 0x3F,0x2D,0x9A,0xB7,0x63,0xA4,0x92,0x93,0x18,0x61,0xB4,0xA3,0xD6,0xE2,0x83,0x53, + + 0x83,0x03,0x3E,0x93,0x9D,0x0F,0x03,0x02,0xAB,0x6C,0x79,0x5F,0xD5,0x4E,0x68,0xC6, + + 0x46,0xBF,0x45,0x40,0x82,0xC0,0x08,0x28,0x77,0x6B,0x30,0xE7,0x75,0x67,0xFF,0xA1, + + 0x1B,0x58,0x90,0x72,0xFE,0x3F,0x32,0x6F,0x56,0x6A,0xA8,0xE9,0xBE,0x14,0xA1,0x46, + + 0x52,0x0B,0x5A,0xA5,0x3A,0x5B,0xF2,0x10,0x9A,0x4A,0x0A,0x99,0x59,0x4B,0x3B,0x52, + + 0x6C,0xD7,0xF1,0x4A,0x15,0x6B,0xFE,0x34,0x05,0x18,0x1A,0x37,0x9B,0xFC,0x44,0x60, + + 0x8D,0x85,0x1F,0x33,0xA3,0xF5,0x67,0x59,0x2A,0x4B,0xB3,0x5F,0x7D,0xE3,0x02,0x78, + + 0xB0,0x85,0xF5,0x1E,0x92,0x14,0x04,0x8A,0x8F,0x49,0x39,0xCD,0x4D,0x44,0x1E,0x49, + + 0x2D,0xD7,0x70,0xE1,0xEF,0xEA,0x48,0xD8,0xFE,0xA6,0x26,0x5C,0x83,0xE3,0x13,0x25, + + 0xEB,0x7E,0xC9,0x1F,0x6C,0x2D,0x73,0xA2,0x40,0x46,0xA5,0xCD,0x9D,0x14,0x02,0x1C, + + 0x4F,0xCE,0xC4,0x2C,0x91,0x2A,0x4C,0x76,0x8C,0xCC,0x83,0x08,0xB5,0xFD,0xAA,0x4A, + + 0x18,0x8B,0xF8,0x52,0xBC,0xA9,0xA0,0x85,0x6B,0x60,0x25,0x1C,0x7D,0x20,0x61,0xA2, + + 0xBD,0xBE,0xBA,0x8F,0x82,0xA3,0x2A,0x4D,0xCF,0xAE,0xD3,0x63,0x5C,0xEA,0xC1,0x0B, + + 0x89,0x8D,0xED,0x2D,0x1D,0x63,0xFC,0x8D,0x8B,0x8E,0x7F,0x8E,0xEF,0x2C,0x13,0x00, + + 0xE1,0x18,0x5B,0x7A,0x34,0xF2,0x0A,0x12,0xAE,0xC3,0xB2,0xAF,0xF4,0x77,0x04,0xF0, + + 0x9C,0x9D,0xAB,0xBB,0x8A,0x6C,0x5A,0x1B,0x9A,0x7C,0xC2,0xBF,0x4A,0x0E,0xE5,0x93, + + 0x6E,0x8F,0xE1,0x37,0xB2,0xF0,0x3D,0x8B,0x0D,0x71,0x8B,0x7E,0xD5,0x82,0x15,0xFD, + + 0x24,0x9E,0x7C,0x69,0x68,0xCE,0x6F,0x20,0xD7,0x0C,0x87,0x4C,0x8A,0x0C,0x34,0xA0, + + 0x72,0xF8,0x32,0xE1,0x97,0x1B,0xB2,0x66,0x6C,0xD0,0x47,0xDF,0x8A,0x25,0xE9,0x21, + + 0x3B,0x87,0x92,0xD1,0x96,0x1A,0xC7,0x61,0x17,0xDF,0x3C,0x32,0x73,0x21,0x3C,0xC9, + + 0x03,0x30,0xB4,0x43,0xB4,0xC8,0x8A,0xA4,0x2C,0x67,0xC2,0x53,0x06,0x55,0xD5,0x40, + + 0xB3,0x38,0xFA,0xF0,0x16,0x18,0xE9,0x77,0xED,0xCF,0xA9,0xE8,0xD1,0x22,0x9B,0xC8, + + 0x8D,0x4D,0x09,0xAA,0xBE,0x74,0xF6,0xC3,0x30,0x75,0x76,0xDA,0x7F,0x55,0x6E,0xB3, + + 0xD1,0x89,0xAE,0x9E,0x3D,0xB9,0x6F,0x06,0x9A,0xB5,0x75,0xF9,0xA3,0xF3,0xF5,0xB4, + + 0xC2,0xD8,0xAF,0x0B,0xFC,0x16,0x62,0x96,0x13,0x77,0xA9,0x3F,0x03,0x57,0x54,0x60, + + 0x5A,0xD9,0xCF,0xC9,0xFC,0xF9,0x80,0x28,0x83,0x06,0xBC,0xAC,0xAA,0xCB,0xE7,0xB5, + + 0xEF,0xFE,0x75,0x4A,0x3C,0x81,0x09,0xAD,0x93,0x6A,0x61,0xD1,0x5C,0x49,0x3E,0xB8, + + 0x7B,0xF1,0x79,0xF9,0x9E,0x12,0xDB,0xFC,0xFB,0xB9,0x36,0xFA,0xAB,0x9E,0xA3,0x4E, + + 0xED,0xBE,0x99,0xC8,0x1F,0x11,0xCC,0x71,0xED,0xCC,0xA6,0xD5,0x90,0xBC,0x36,0xD5, + + 0x0A,0x39,0xBF,0x5B,0xB5,0xC5,0xCB,0xDC,0x4E,0x00,0x58,0x4F,0x0B,0xDC,0xB7,0xA4, + + 0xF0,0x63,0x2C,0x81,0x6C,0xDF,0x2E,0x91,0x8A,0x63,0x50,0xA5,0xD7,0x22,0xA4,0x5F, + + 0xFC,0x7D,0x53,0x14,0x72,0xAD,0x4C,0x23,0x23,0x02,0x71,0x0F,0x25,0xF4,0x36,0xB1, + + 0x86,0x6A,0x41,0x84,0xB8,0xDD,0x6F,0x08,0x08,0x21,0xD1,0x80,0xD6,0x40,0xA0,0x6F, + + 0x14,0x6D,0x9F,0x20,0x22,0x6E,0x39,0x2F,0x4E,0xEE,0x8E,0x0A,0xE5,0xB6,0x19,0x44, + + 0x8F,0x67,0xF3,0x69,0xEE,0xB7,0xE3,0xCD,0xBE,0xD7,0xF3,0x63,0xBB,0x20,0x35,0x97, + + 0xC9,0x96,0x7F,0x4A,0x2F,0xD1,0x98,0x69,0x2B,0xD6,0xE2,0xC5,0xDF,0xCA,0xEA,0xE4, + + 0x57,0x18,0x72,0xE8,0x94,0xDE,0x7E,0x0E,0x1B,0x04,0xC3,0x75,0x39,0x22,0xF2,0xC2, + + 0xBD,0x0D,0xDA,0xBD,0x5F,0x6A,0x27,0xC9,0x36,0xE4,0x7D,0x17,0x20,0x02,0xBF,0x9B, + + 0x38,0x55,0xFD,0xF4,0x18,0x6A,0x42,0xBB,0x7A,0xE5,0x87,0xA8,0x5F,0x28,0x2E,0xA2, + + 0x8E,0x4A,0x9E,0xE3,0x7A,0xA5,0x99,0x4B,0x7B,0xE8,0xAD,0x9C,0xA9,0x98,0x61,0x09, + + 0x8B,0x4A,0x8E,0x35,0x9E,0x08,0x84,0xBA,0xA6,0x42,0x30,0x84,0x04,0x39,0x52,0x5A, + + 0x2C,0xF4,0x9D,0x28,0x2A,0xD6,0xCB,0xCA,0xB9,0xE6,0x2C,0x05,0x2D,0x1A,0x81,0x0F, + + 0xE3,0x9F,0x39,0x44,0xBF,0xD3,0x87,0x9B,0x74,0x48,0xEA,0xE8,0x50,0xAA,0x02,0xD0, + + 0xE2,0x9E,0xAC,0x75,0x18,0x7D,0x8B,0xFC,0x49,0x7C,0xE4,0xDC,0x3B,0xED,0x24,0x3A, + + 0xB4,0x98,0x2F,0xDE,0xAE,0xF3,0xD9,0x57,0xF0,0xBB,0x70,0xC9,0x06,0x0D,0xF8,0xF4, + + 0xB8,0x4F,0x74,0x6D,0x64,0x80,0x9B,0xFD,0xCF,0x43,0xA5,0x7B,0x3A,0xCC,0x62,0xA8, + + 0xDF,0x4D,0x4A,0x00,0x32,0xDF,0xC6,0x8C,0xA8,0xB3,0x38,0xD7,0x56,0x86,0x58,0xAB, + + 0x07,0x53,0xB4,0x67,0x05,0x73,0xDC,0x30,0xFE,0xFE,0x67,0x36,0xB3,0xB6,0x67,0x81, + + 0x57,0x87,0xBD,0x76,0x88,0x57,0x80,0xB2,0xD2,0xC3,0x6A,0xD6,0xDA,0xA4,0x09,0x36, + + 0x78,0x6E,0xC9,0x84,0x10,0x9C,0xB9,0xC2,0xD9,0x5C,0x5D,0x31,0xB3,0xEC,0xDF,0x70, + + 0xD1,0xCB,0x84,0x04,0x34,0x16,0x94,0xE4,0xE3,0x59,0xB6,0xE4,0xEF,0x89,0x72,0xF9, + + 0xF5,0x1F,0x0C,0x55,0xA4,0x77,0x0A,0xCF,0x05,0x17,0xA5,0xCA,0x0B,0x80,0xA9,0xB2, + + 0x96,0xE0,0x2D,0x41,0xB0,0x62,0xEA,0xA3,0x43,0x83,0x78,0x0B,0x13,0x49,0x09,0x39, + + 0x37,0x55,0x8D,0x22,0xB5,0x15,0x1D,0xD8,0x60,0x5A,0x4E,0x0F,0x08,0x35,0x29,0xD2, + + 0x9D,0x84,0x13,0xAB,0x99,0x97,0xA2,0xDB,0x5C,0x57,0x22,0xCE,0x83,0x14,0x5A,0x87, + + 0x0F,0x1A,0xB6,0x6F,0x41,0x5C,0xBA,0xCB,0x55,0x56,0xA0,0x19,0xAB,0xE6,0xC7,0x88, + + 0x61,0xCE,0x94,0x09,0xBA,0xD8,0xD7,0x29,0x51,0xF5,0xA9,0x1D,0x22,0xC5,0xDF,0x39, + + 0x2C,0x58,0xB7,0x6E,0xCD,0x79,0xAB,0xCA,0x99,0x54,0x5F,0xF8,0x74,0xAF,0x02,0x28, + + 0x48,0x83,0x2E,0x48,0x30,0x9C,0xA9,0x2A,0xCB,0x83,0x92,0xCA,0x8F,0x70,0xA9,0xAB, + + 0x17,0xCB,0x58,0xBC,0x3F,0x18,0x8B,0xE7,0x19,0xF9,0x6D,0x58,0x87,0x1E,0xBC,0x0E, + + 0x43,0x8F,0x07,0x4C,0x2D,0x93,0x97,0xEC,0x3E,0x8A,0xEF,0x92,0x7B,0x73,0x47,0xDC, + + 0xC0,0x0E,0x5A,0xF9,0x6F,0x8E,0x0B,0xBC,0x23,0x1C,0x1F,0x7D,0xC3,0x8A,0xCC,0x71, + + 0x22,0x76,0x58,0x75,0x78,0xA9,0xE6,0x93,0x6E,0x6F,0x70,0xE2,0x50,0x34,0x60,0x07, + + 0xE4,0x2E,0xF6,0x23,0x49,0x03,0x06,0x9A,0x8F,0x82,0xED,0x09,0x63,0x74,0x1F,0xA2, + + 0x46,0x82,0x21,0x66,0xDD,0xE3,0xA4,0x21,0x9C,0xAE,0x64,0x38,0xA6,0x37,0x7D,0xE0, + + 0xA3,0x87,0x3F,0x95,0x15,0x18,0x47,0x0B,0x2C,0x20,0x6C,0x0C,0xA7,0xA1,0xCC,0xE7, + + 0xD3,0xE7,0x71,0x38,0x74,0x5B,0x48,0x1D,0xC7,0xC9,0x67,0x95,0xDA,0xB9,0x0E,0xFE, + + 0xF2,0x23,0x50,0xA8,0x07,0xE8,0xB8,0xF2,0x7F,0xCB,0x38,0xF7,0x3A,0xE8,0xCA,0x89, + + 0x3D,0xE8,0x9F,0x6E,0xA5,0x92,0xC2,0xD2,0x3A,0x05,0x89,0x40,0x6B,0xE9,0x3C,0x13, + + 0x8B,0x2C,0x16,0x90,0x5D,0x36,0x41,0x8C,0x44,0xCA,0x06,0x50,0x76,0xA5,0xB3,0x79, + + 0x2A,0x02,0x9A,0xDE,0x40,0x29,0x54,0x8B,0xA7,0xB9,0x3E,0x69,0x88,0x4B,0xBA,0x74, + + 0x4E,0x56,0x60,0x2F,0x71,0xB6,0x3E,0xD8,0xCD,0x59,0xDB,0xBA,0x5B,0x6B,0x03,0x5A, + + 0xA6,0x81,0xE5,0xFC,0xAC,0x21,0xF3,0xAA,0xD3,0x41,0x14,0x9B,0x5E,0x6C,0x73,0x82, + + 0x00,0xF6,0x13,0xFF,0x99,0x86,0x1D,0x8A,0xF5,0x6F,0x40,0x18,0x7C,0x14,0x73,0xB5, + + 0xE7,0xBD,0x59,0xDD,0x22,0xA6,0x89,0xEE,0x42,0x18,0xB6,0x1B,0xF2,0x89,0x54,0x77, + + 0x4C,0x12,0x94,0x66,0xEA,0x2E,0xC9,0xD7,0xB3,0x5E,0x82,0x39,0x3C,0xEF,0x29,0xB1, + + 0xAF,0x4F,0x62,0x30,0xFE,0x51,0xD0,0xC2,0x12,0x9D,0x5C,0x8D,0x72,0x13,0x73,0x7B, + + 0x89,0xAD,0x14,0xAC,0xA3,0xED,0xBB,0xFB,0xF7,0x8D,0x9D,0xDE,0x20,0x62,0xC8,0xF1, + + 0x50,0x36,0xE4,0x23,0x95,0x1F,0xF4,0x22,0x9A,0x7D,0x62,0xB9,0x46,0x5D,0x7A,0xD2, + + 0x71,0x3C,0xFC,0x12,0x37,0xBB,0xAD,0x50,0x63,0xD3,0xEA,0xD6,0x79,0x5A,0xF7,0xF0, + + 0xDC,0x34,0x32,0xA0,0x15,0x1D,0x20,0x41,0x48,0x7F,0x67,0x77,0x74,0x5A,0xFF,0xA2, + + 0x83,0x3C,0x95,0x64,0x9F,0xD6,0x12,0xC0,0xD9,0xDC,0xAC,0x48,0x1C,0xE2,0x9B,0x85, + + 0xCF,0x87,0x43,0xFA,0xE6,0x45,0x7E,0xCD,0x12,0x81,0xA0,0x1C,0x8D,0x2B,0x0A,0x63, + + 0x26,0xA4,0x2C,0x57,0x5A,0xD0,0x69,0xCD,0x51,0x00,0xC4,0xCB,0x88,0xFB,0x03,0x77, + + 0x4F,0x75,0xC2,0x67,0x2A,0x95,0x62,0xD8,0xD2,0x43,0x35,0x66,0x52,0xF8,0x53,0xFB, + + 0x18,0x42,0x59,0xB5,0x00,0xD2,0x28,0x77,0xBA,0x22,0xC5,0x4B,0xF1,0xD5,0xB7,0xF9, + + 0x46,0x3B,0x9E,0x7D,0x1A,0xFA,0x82,0xD9,0x1C,0xD7,0xC9,0x56,0x7C,0x94,0x29,0xDD, + + 0xC4,0x5A,0x7A,0xB9,0x9C,0x16,0x47,0xDC,0xE0,0xBB,0xEB,0x24,0x7E,0x5B,0x73,0x78, + + 0x94,0x9E,0xE7,0x81,0x1D,0x15,0x6D,0xF9,0x84,0x3B,0x89,0x03,0x26,0x57,0x49,0x3F, + + 0x46,0xCA,0xFD,0x1B,0xBF,0x59,0xC0,0x3F,0xE7,0xCA,0x81,0x13,0x09,0xC8,0x33,0xF5, + + 0x18,0x23,0xDE,0x21,0x38,0x9E,0xD5,0xC3,0xB2,0x8D,0x68,0x0C,0xD2,0x01,0xBF,0x29, + + 0x19,0x40,0xD6,0xF3,0xC0,0x60,0x2C,0xAA,0xD3,0xDE,0x2A,0xDA,0x7F,0xFD,0xA7,0x4F, + + 0xF6,0x3F,0x79,0xAD,0x49,0xDB,0x51,0x4E,0xE3,0x7A,0x8F,0xD1,0xD8,0x0B,0x39,0x72, + + 0x44,0xAC,0x3E,0x21,0x67,0xFB,0xCE,0xC6,0x17,0x4E,0xFF,0xFF,0xA6,0x17,0x59,0xEB, + + 0xA5,0x5F,0x00,0x8C,0xB5,0x2B,0x68,0x07,0xB9,0x4F,0x14,0xE4,0x5C,0xA0,0x48,0xE8, + + 0xBD,0xFA,0x48,0xF4,0x11,0x00,0x4A,0x31,0xAA,0x30,0x70,0x1D,0xB0,0x7A,0x00,0x67, + + 0x3F,0xB9,0x80,0x81,0x99,0x43,0xAE,0x11,0xCC,0x9F,0xB1,0xA0,0x57,0x03,0x30,0xED, + + 0x79,0x43,0xEC,0xFD,0x2A,0x6E,0xC6,0x31,0xB6,0x4C,0xFC,0xC3,0x5C,0x78,0x3E,0x79, + + 0xE9,0x95,0xDC,0xBB,0xF9,0x95,0x28,0x02,0x02,0x4B,0x50,0x75,0x6E,0x08,0x93,0x53, + + 0x7C,0x09,0x08,0x55,0x6D,0xA8,0xB9,0x12,0x03,0x4A,0xBA,0x74,0x52,0xC8,0x3F,0x6C, + + 0x69,0x57,0x3E,0xC1,0xF9,0x30,0x09,0x75,0x40,0x1A,0xB3,0x68,0x3B,0x17,0x7E,0x38, + + 0x73,0x1E,0xB7,0x78,0x78,0xB6,0x86,0x71,0xB4,0x43,0xC5,0x8A,0xD5,0xCC,0x4A,0xF3, + + 0x3B,0x37,0x79,0x04,0xBD,0x97,0xD2,0xEC,0x43,0xE3,0x29,0x4A,0x9A,0x48,0xB2,0xEB, + + 0x23,0x67,0xCD,0xFC,0x11,0xBB,0x5A,0xC9,0x3D,0x46,0xEA,0xB8,0x7A,0x2B,0xBB,0xFA, + + 0xAA,0x1A,0xA8,0x73,0x49,0x97,0x00,0x06,0xA3,0xFB,0xDB,0x28,0xDE,0xC1,0x52,0x66, + + 0x2C,0x8D,0xB4,0x2C,0x38,0xD4,0x45,0x04,0xC9,0xE6,0x0B,0x7B,0x25,0x6D,0x82,0x88, + + 0x1F,0xF8,0x02,0xBD,0x7C,0x21,0x92,0xAC,0x41,0x4A,0x9A,0xE8,0x31,0x7D,0xDF,0x42, + + 0x3F,0xD0,0xD9,0x2F,0x6B,0x26,0x69,0x64,0xE8,0x4B,0xE4,0x44,0x78,0x2D,0x54,0x57, + + 0xFA,0xBA,0xB1,0xB2,0x98,0x8E,0xFA,0xE7,0x6B,0x48,0xEC,0x8F,0x92,0xFF,0x63,0x3B, + + 0x76,0x03,0x4B,0x4C,0xA7,0x24,0xF2,0xF6,0x6A,0x49,0xDD,0x50,0xF8,0xEF,0x45,0xE6, + + 0x42,0x10,0x21,0x66,0x36,0x70,0x4E,0xA1,0x0A,0x81,0x07,0xD6,0xD3,0x0B,0xB4,0x6B, + + 0xC8,0x32,0x27,0xD3,0x02,0xCC,0x3C,0x63,0x45,0x3D,0x63,0x48,0xE3,0x33,0xFD,0xE7, + + 0x53,0x02,0xCD,0xFE,0xE1,0x39,0x6B,0x9D,0xAA,0x23,0x94,0x5E,0x83,0x7E,0x1B,0xF3, + + 0x5E,0xBE,0x35,0x07,0xF9,0x21,0x44,0xCF,0x44,0xD5,0x99,0x08,0x8A,0x63,0x64,0xE0, + + 0x41,0x41,0xBE,0xA4,0x26,0xC9,0x74,0xA0,0xC3,0xD3,0x6F,0x76,0x72,0x7E,0x34,0xF7, + + 0xD6,0x1A,0xD4,0xD1,0x58,0x84,0x5E,0x72,0xFE,0x9E,0xE6,0x16,0x98,0x04,0x3D,0xE6, + + 0xC1,0xBC,0xDA,0x25,0xBA,0xEB,0x81,0x0A,0xE4,0x9C,0x04,0x61,0x99,0xDE,0xF9,0xAE, + + 0x00,0x72,0xC9,0xA6,0xCB,0x3E,0x65,0x81,0xC9,0x5E,0xA3,0xCD,0xF5,0xDC,0x56,0x2D, + + 0x2E,0xB3,0x3E,0x1E,0x38,0x30,0x12,0x68,0x64,0x1A,0xCD,0xAC,0x07,0x78,0x31,0x7A, + + 0xC0,0x3A,0x71,0x67,0x0A,0xD6,0xB6,0x89,0xEE,0x38,0xC5,0xC3,0x2C,0x70,0x0D,0xF3, + + 0x0B,0x7F,0x8D,0x65,0x66,0xF7,0x49,0x0B,0x6D,0x9B,0x4C,0xEF,0xFE,0x32,0x1D,0x98, + + 0x52,0x96,0x37,0x06,0xDA,0x3F,0xF7,0x90,0x08,0x40,0x9E,0x3F,0xF0,0x96,0xFD,0x2A, + + 0x86,0xE1,0x91,0x48,0x1D,0xF5,0xD6,0x89,0xDA,0xE3,0x04,0x9E,0xD9,0xDC,0x5E,0x24, + + 0xAB,0x5F,0x90,0xF4,0xC2,0x32,0x9E,0x28,0x24,0xA0,0x5E,0xED,0x47,0x76,0x3F,0x30, + + 0xEE,0xE5,0x07,0x3C,0xB9,0x7C,0x88,0x13,0x9D,0xA9,0xC4,0x9E,0x8A,0x75,0x05,0x0C, + + 0x56,0x90,0xC9,0xE5,0x52,0xAE,0x47,0xFC,0x80,0x8E,0xDD,0x8E,0xC7,0xF6,0x30,0x8A, + + 0xA1,0x06,0x9B,0xA3,0xE3,0x0D,0xA5,0x42,0x28,0x4D,0xBC,0x21,0xF5,0x68,0x81,0x90, + + 0xC0,0x27,0x96,0x3F,0x63,0x0E,0xAB,0x0D,0x3D,0x14,0xB1,0x44,0xF6,0xE7,0xAA,0x43, + + 0x80,0xA2,0x30,0x3A,0x7F,0xE6,0xCC,0x18,0xB8,0x57,0xB0,0xC5,0x56,0xEA,0x11,0xD4, + + 0x47,0x63,0x0D,0x75,0x31,0x4E,0x2A,0xB7,0xD0,0x3F,0xB1,0x90,0x76,0xE5,0x58,0x7C, + + 0x37,0x71,0xE2,0x35,0x2A,0x2D,0x43,0x7F,0xE5,0xBF,0xCE,0x4B,0x37,0xC4,0xC1,0x2C, + + 0x92,0x08,0xFB,0xB6,0x57,0x08,0x58,0x8F,0x13,0x1E,0x98,0x39,0x30,0xE8,0x7C,0x0C, + + 0x7B,0xFA,0xE5,0xA7,0x2F,0x0B,0xF1,0x9A,0x31,0x5D,0xA9,0x08,0x56,0x95,0x14,0xB9, + + 0x04,0x8A,0x7C,0x27,0x9F,0xAC,0x4A,0x77,0xD2,0x3B,0xE3,0xC2,0xF4,0x1F,0x2A,0x0E, + + 0x04,0xD4,0x66,0xE0,0xB0,0xA5,0x08,0x1B,0x34,0x67,0xBA,0x63,0x3F,0xA8,0x28,0xF8, + + 0x3E,0x74,0x92,0xE1,0xEC,0xCA,0x29,0xC9,0x3D,0x44,0xF8,0xDC,0xDF,0xA1,0x43,0x5D, + + 0x46,0x87,0x67,0xE0,0x65,0x0B,0x24,0xDB,0xC4,0x69,0xCB,0xAD,0xDD,0xB2,0x93,0x2B, + + 0x85,0xC4,0x6B,0xEE,0xDC,0xF6,0x2D,0x06,0x26,0x3A,0x2C,0xDD,0x5F,0xA3,0x9D,0x88, + + 0xAF,0x53,0xA7,0xCC,0xDB,0x21,0x48,0x99,0x7A,0x67,0x32,0x9F,0xDE,0xE4,0x7D,0x44, + + 0x7F,0x39,0x15,0x6E,0x1D,0xEF,0x72,0x8A,0x69,0xC2,0x3A,0x8F,0xF7,0xE5,0xA3,0x4E, + + 0x5A,0x7A,0xDB,0xB1,0x32,0xA3,0xE0,0xBA,0x4C,0xCA,0x77,0x9E,0xAA,0xBB,0xFE,0x41, + + 0xBB,0x89,0xB5,0x17,0x3E,0x10,0xBB,0xAF,0x8F,0xC9,0x73,0x00,0x1D,0x9F,0x72,0x22, + + 0xD7,0x6B,0xDA,0x64,0x26,0xFD,0x51,0x54,0x62,0xF8,0xEE,0x5C,0xD7,0xF4,0x64,0xDE, + + 0xA8,0x1C,0xE4,0xAB,0xC8,0xDD,0xBC,0x52,0x63,0x7A,0xDC,0xF6,0x7B,0xFC,0x65,0x7F, + + 0x18,0xD0,0xBF,0x85,0x7E,0xBD,0xA1,0x27,0xC7,0xD2,0x4E,0x23,0xBF,0x5C,0xCA,0x68, + + 0x44,0x45,0x69,0x68,0x38,0xA8,0x28,0x88,0x8E,0x82,0xF7,0x08,0x56,0xFE,0x66,0x40, + + 0xA6,0x55,0xBC,0xC2,0x7E,0xC5,0xC5,0x66,0x0D,0xD0,0xF0,0x06,0xCB,0xF2,0x8E,0x56, + + 0x2F,0x66,0xF6,0xD7,0x14,0xC8,0xCD,0x76,0x0C,0xF0,0x48,0x94,0x8C,0xB7,0x1D,0xE7, + + 0xA0,0x3D,0xBD,0xD7,0x5F,0xC7,0x7D,0xE6,0x8D,0x07,0x5F,0x95,0x57,0x69,0x0D,0xE9, + + 0xF3,0x9A,0xD7,0x24,0x8B,0x18,0x35,0xF7,0xCE,0x28,0xA3,0x16,0xC8,0xD7,0x5D,0xF9, + + 0x06,0x39,0xDA,0xE8,0xE2,0xAA,0x0F,0xEC,0x00,0xDE,0xFC,0x71,0xDF,0xFE,0xFA,0x64, + + 0x4E,0xDB,0xD6,0x5E,0x6B,0xA2,0x80,0xBE,0x45,0x4F,0x40,0x5C,0xDC,0x71,0x1F,0x74, + + 0x45,0x99,0x1F,0xFF,0x3C,0x1C,0x17,0xD7,0x4D,0xD9,0xBB,0xA8,0x5D,0x70,0xEF,0x6A, + + 0xE0,0x06,0xCA,0xE9,0x30,0x3D,0x66,0xC4,0x48,0xD0,0xBD,0x5D,0xD9,0x76,0x9D,0xED, + + 0x8F,0x07,0xF5,0xBD,0x4E,0xFE,0xC9,0x78,0x72,0x01,0x36,0xA2,0xA3,0xFA,0x55,0x66, + + 0xAD,0xC1,0x2E,0x92,0xE2,0x1D,0x62,0x05,0x86,0x0C,0xA0,0x87,0x9E,0x82,0x67,0xFB, + + 0xAE,0x61,0xB9,0xB6,0x5F,0xC1,0x15,0xEB,0xEF,0x9E,0x5D,0x9C,0x5F,0xBC,0x8E,0x39, + + 0x03,0x62,0xFC,0xAC,0xCF,0xB4,0x65,0x2A,0xCE,0x9F,0x3F,0xB3,0x22,0xBD,0xCA,0x10, + + 0x82,0x04,0x98,0x89,0x70,0x30,0xCD,0x21,0x46,0x18,0xF0,0x9B,0xA3,0x6D,0x68,0x12, + + 0x00,0x8A,0x52,0xE4,0x3B,0x25,0x8D,0xD0,0x45,0xE1,0x32,0x46,0xA4,0x6E,0x8B,0x72, + + 0xF4,0x0D,0xD9,0x89,0x12,0x5E,0xBE,0x30,0xFC,0xEF,0x6E,0xD9,0xD0,0x64,0x5B,0x95, + + 0xEA,0xCA,0x08,0x91,0xF2,0x0F,0x88,0x76,0x03,0x33,0x2D,0x4A,0x72,0x0D,0x40,0x40, + + 0x02,0x04,0xC0,0x44,0x12,0x24,0x50,0x60,0x42,0x44,0xD0,0x64,0x52,0x64,0x48,0x50, + + 0x03,0x05,0xC8,0x54,0x13,0x25,0x58,0x70,0x43,0x45,0xD8,0x74,0x53,0x65,0x41,0x41, + + 0x82,0x06,0xC1,0x45,0x92,0x26,0x51,0x61,0xC2,0x46,0xD1,0x65,0xD2,0x66,0x49,0x51, + + 0x83,0x07,0xC9,0x55,0x93,0x27,0x59,0x71,0xC3,0x47,0xD9,0x75,0xD3,0x67,0xDD,0xE6, + + 0x0E,0x62,0xA2,0x10,0x9A,0x54,0x2C,0x04,0x8A,0x48,0xF0,0x20,0xAD,0xEE,0x6A,0x1A, + + 0x08,0x04,0x4A,0xF8,0xBB,0x2D,0x12,0xC8,0x2B,0x46,0x47,0x1C,0x22,0x6B,0xBE,0x8D, + + 0xCF,0x8A,0x59,0xFD,0xF6,0x25,0x1B,0x16,0x4A,0x4E,0x93,0x09,0xA7,0x6A,0x13,0x98, + + 0xC1,0x9A,0x0F,0x99,0xFA,0x28,0x21,0xCA,0xFD,0xE4,0xC0,0x12,0xAE,0x6F,0x42,0x48, + + 0x0A,0x0C,0xC2,0x4C,0x1A,0x2C,0x52,0x68,0x4A,0x4C,0xD2,0x6C,0x5A,0x6C,0x4A,0x58, + + 0x0B,0x0D,0xCA,0x5C,0x1B,0x2D,0x5A,0x78,0x4B,0x4D,0xDA,0x7C,0x5B,0x6D,0x43,0x49, + + 0x8A,0x0E,0xC3,0x4D,0x9A,0x2E,0x53,0x69,0xCA,0x4E,0xD3,0x6D,0xDA,0x6E,0x4B,0x59, + + 0x8B,0x0F,0xCB,0x5D,0x9B,0x2F,0x5B,0x79,0xCB,0x4F,0xDB,0x7D,0xDB,0x6F,0x95,0x80, + + 0x4B,0x61,0x7B,0xF7,0x0C,0xE3,0x84,0x24,0x27,0xD0,0x94,0xA4,0x70,0x70,0x32,0xBD, + + 0xD6,0x9C,0xF2,0x92,0x52,0x44,0x3C,0xF0,0x02,0xD2,0x9C,0xB4,0x71,0x71,0x01,0x05, + + 0xE7,0x92,0x7E,0x75,0xB2,0xC3,0xD5,0x45,0x85,0x54,0x95,0xA5,0xF0,0x72,0x1F,0x11, + + 0x5E,0xCE,0x5E,0x66,0x3D,0x72,0x65,0xC3,0x0A,0x02,0x9D,0xB5,0xF1,0x73,0x44,0xC0, + + 0x22,0x14,0xC4,0xC4,0x32,0x34,0x54,0xE0,0x62,0x54,0xD4,0xE4,0x72,0x74,0x4C,0xD0, + + 0x23,0x15,0xCC,0xD4,0x33,0x35,0x5C,0xF0,0x63,0x55,0xDC,0xF4,0x73,0x75,0x45,0xC1, + + 0xA2,0x16,0xC5,0xC5,0xB2,0x36,0x55,0xE1,0xE2,0x56,0xD5,0xE5,0xF2,0x76,0x4D,0xD1, + + 0xA3,0x17,0xCD,0xD5,0xB3,0x37,0x5D,0xF1,0xE3,0x57,0xDD,0xF5,0xF3,0x77,0x54,0xA7, + + 0xDF,0x95,0xE6,0xDA,0xD1,0x35,0x68,0x85,0x17,0x07,0x96,0xAC,0x78,0x78,0xB1,0xF8, + + 0x1D,0xB4,0xB6,0x66,0x95,0x34,0xD4,0xA8,0xEB,0x5D,0x9E,0xBC,0x79,0x79,0x78,0x0D, + + 0xEB,0xF0,0x78,0x0F,0x7D,0xB7,0xD7,0x6C,0x55,0x18,0x97,0xAD,0xF8,0x7A,0x9A,0x64, + + 0xA9,0xC4,0x9D,0x1D,0x52,0x7F,0x17,0xDB,0xC8,0x79,0x9F,0xBD,0xF9,0x7B,0x46,0xC8, + + 0x2A,0x1C,0xC6,0xCC,0x3A,0x3C,0x56,0xE8,0x6A,0x5C,0xD6,0xEC,0x7A,0x7C,0x4E,0xD8, + + 0x2B,0x1D,0xCE,0xDC,0x3B,0x3D,0x5E,0xF8,0x6B,0x5D,0xDE,0xFC,0x7B,0x7D,0x47,0xC9, + + 0xAA,0x1E,0xC7,0xCD,0xBA,0x3E,0x57,0xE9,0xEA,0x5E,0xD7,0xED,0xFA,0x7E,0x4F,0xD9, + + 0xAB,0x1F,0xCF,0xDD,0xBB,0x3F,0x5F,0xF9,0xEB,0x5F,0xDF,0xFD,0xFB,0x7F,0x1E,0x3A, + + 0x27,0xC0,0x9A,0xF5,0x75,0xA6,0xA5,0xDF,0xF3,0x82,0x20,0xA4,0x91,0x6D,0x40,0x61, + + 0x39,0x07,0xF2,0xEC,0x7D,0x30,0x3A,0xB0,0xC5,0xC9,0x47,0xF1,0x97,0xE1,0x27,0x2E, + + 0x09,0x04,0x81,0x53,0x37,0xE3,0xFD,0x4C,0xC2,0x08,0x89,0xD9,0x78,0xEF,0xAF,0x53, + + 0x2C,0xC2,0xD7,0x11,0xF6,0x54,0x01,0x53,0xCF,0x63,0x02,0xA5,0xD5,0xA2,0x60,0x42, + + 0x06,0x84,0xE0,0x46,0x16,0xA4,0x70,0x62,0x46,0xC4,0xF0,0x66,0x56,0xE4,0x68,0x52, + + 0x07,0x85,0xE8,0x56,0x17,0xA5,0x78,0x72,0x47,0xC5,0xF8,0x76,0x57,0xE5,0x61,0x43, + + 0x86,0x86,0xE1,0x47,0x96,0xA6,0x71,0x63,0xC6,0xC6,0xF1,0x67,0xD6,0xE6,0x69,0x53, + + 0x87,0x87,0xE9,0x57,0x97,0xA7,0x79,0x73,0xC7,0xC7,0xF9,0x77,0xD7,0xE7,0xE2,0xDE, + + 0x4C,0x8E,0xF4,0x23,0xF7,0xCC,0xA7,0x59,0x70,0xC3,0xB3,0x48,0x3C,0xE8,0x52,0x9E, + + 0x66,0x4F,0x94,0x7C,0x62,0xA9,0x58,0xF8,0xA4,0x98,0xBE,0xD8,0x79,0xE9,0x03,0x4B, + + 0xEF,0xC9,0x9B,0xF4,0x1E,0x66,0xB3,0x3A,0xF8,0xA6,0x4B,0xA7,0x79,0x69,0xEB,0x1A, + + 0xF3,0x20,0x50,0x60,0xF5,0x3A,0x59,0x2E,0xCC,0xE6,0xBB,0x3F,0xDD,0xEB,0x62,0x4A, + + 0x0E,0x8C,0xE2,0x4E,0x1E,0xAC,0x72,0x6A,0x4E,0xCC,0xF2,0x6E,0x5E,0xEC,0x6A,0x5A, + + 0x0F,0x8D,0xEA,0x5E,0x1F,0xAD,0x7A,0x7A,0x4F,0xCD,0xFA,0x7E,0x5F,0xED,0x63,0x4B, + + 0x8E,0x8E,0xE3,0x4F,0x9E,0xAE,0x73,0x6B,0xCE,0xCE,0xF3,0x6F,0xDE,0xEE,0x6B,0x5B, + + 0x8F,0x8F,0xEB,0x5F,0x9F,0xAF,0x7B,0x7B,0xCF,0xCF,0xFB,0x7F,0xDF,0xEF,0x9B,0xB2, + + 0x26,0xD2,0xFE,0xA9,0x46,0x1F,0x32,0x8F,0x8D,0xA1,0xB4,0xA6,0x74,0xF0,0x3E,0x12, + + 0xDA,0x4C,0xD2,0xBB,0xDE,0x20,0x90,0x20,0xE6,0x7C,0xBC,0xB6,0x75,0xF1,0x7B,0xCB, + + 0x45,0x9D,0x01,0xF8,0x17,0x3F,0x6D,0xA7,0xAC,0x83,0xB5,0xA7,0xF4,0xF2,0x7F,0xBC, + + 0x52,0x4E,0x3D,0x6E,0xB5,0x2C,0xAC,0x21,0xA9,0xDB,0xBD,0xB7,0xF5,0xF3,0x64,0xC2, + + 0x26,0x94,0xE4,0xC6,0x36,0xB4,0x74,0xE2,0x66,0xD4,0xF4,0xE6,0x76,0xF4,0x6C,0xD2, + + 0x27,0x95,0xEC,0xD6,0x37,0xB5,0x7C,0xF2,0x67,0xD5,0xFC,0xF6,0x77,0xF5,0x65,0xC3, + + 0xA6,0x96,0xE5,0xC7,0xB6,0xB6,0x75,0xE3,0xE6,0xD6,0xF5,0xE7,0xF6,0xF6,0x6D,0xD3, + + 0xA7,0x97,0xED,0xD7,0xB7,0xB7,0x7D,0xF3,0xE7,0xD7,0xFD,0xF7,0xF7,0xF7,0x0E,0xE8, + + 0xC5,0xE9,0x99,0xBE,0x3E,0x47,0x0A,0x8E,0x07,0x51,0xB6,0xAE,0x7C,0xF8,0x51,0xE4, + + 0x4F,0x9D,0x94,0xA7,0xC6,0x24,0x26,0x3F,0x0D,0x06,0xBE,0xBE,0x7D,0xF9,0xDC,0xF9, + + 0xCC,0x9A,0x9C,0x3F,0x00,0x65,0x33,0xD4,0x8C,0xA6,0xB7,0xAF,0xFC,0xFA,0x54,0x59, + + 0x0C,0x44,0xFD,0x9D,0x4E,0xFA,0x27,0x2B,0x8D,0x04,0xBF,0xBF,0xFD,0xFB,0x66,0xCA, + + 0x2E,0x9C,0xE6,0xCE,0x3E,0xBC,0x76,0xEA,0x6E,0xDC,0xF6,0xEE,0x7E,0xFC,0x6E,0xDA, + + 0x2F,0x9D,0xEE,0xDE,0x3F,0xBD,0x7E,0xFA,0x6F,0xDD,0xFE,0xFE,0x7F,0xFD,0x67,0xCB, + + 0xAE,0x9E,0xE7,0xCF,0xBE,0xBE,0x77,0xEB,0xEE,0xDE,0xF7,0xEF,0xFE,0xFE,0x6F,0xDB, + + 0xAF,0x9F,0xEF,0xDF,0xBF,0xBF,0x7F,0xFB,0xEF,0xDF,0xFF,0xFF,0xFF,0xFF,0x00,0x00, + + 0x00,0x00,0x80,0x04,0x10,0x20,0x10,0x20,0x40,0x40,0x90,0x24,0x50,0x60,0x08,0x10, + + 0x01,0x01,0x88,0x14,0x11,0x21,0x18,0x30,0x41,0x41,0x98,0x34,0x51,0x61,0x01,0x01, + + 0x80,0x02,0x81,0x05,0x90,0x22,0x11,0x21,0xC0,0x42,0x91,0x25,0xD0,0x62,0x09,0x11, + + 0x81,0x03,0x89,0x15,0x91,0x23,0x19,0x31,0xC1,0x43,0x99,0x35,0xD1,0x63,0x40,0x40, + + 0x02,0x04,0xC0,0x44,0x12,0x24,0x50,0x60,0x42,0x44,0xD0,0x64,0x52,0x64,0x48,0x50, + + 0x03,0x05,0xC8,0x54,0x13,0x25,0x58,0x70,0x43,0x45,0xD8,0x74,0x53,0x65,0x41,0x41, + + 0x82,0x06,0xC1,0x45,0x92,0x26,0x51,0x61,0xC2,0x46,0xD1,0x65,0xD2,0x66,0x49,0x51, + + 0x83,0x07,0xC9,0x55,0x93,0x27,0x59,0x71,0xC3,0x47,0xD9,0x75,0xD3,0x67,0x02,0x08, + + 0x08,0x08,0x82,0x0C,0x18,0x28,0x12,0x28,0x48,0x48,0x92,0x2C,0x58,0x68,0x0A,0x18, + + 0x09,0x09,0x8A,0x1C,0x19,0x29,0x1A,0x38,0x49,0x49,0x9A,0x3C,0x59,0x69,0x03,0x09, + + 0x88,0x0A,0x83,0x0D,0x98,0x2A,0x13,0x29,0xC8,0x4A,0x93,0x2D,0xD8,0x6A,0x0B,0x19, + + 0x89,0x0B,0x8B,0x1D,0x99,0x2B,0x1B,0x39,0xC9,0x4B,0x9B,0x3D,0xD9,0x6B,0x42,0x48, + + 0x0A,0x0C,0xC2,0x4C,0x1A,0x2C,0x52,0x68,0x4A,0x4C,0xD2,0x6C,0x5A,0x6C,0x4A,0x58, + + 0x0B,0x0D,0xCA,0x5C,0x1B,0x2D,0x5A,0x78,0x4B,0x4D,0xDA,0x7C,0x5B,0x6D,0x43,0x49, + + 0x8A,0x0E,0xC3,0x4D,0x9A,0x2E,0x53,0x69,0xCA,0x4E,0xD3,0x6D,0xDA,0x6E,0x4B,0x59, + + 0x8B,0x0F,0xCB,0x5D,0x9B,0x2F,0x5B,0x79,0xCB,0x4F,0xDB,0x7D,0xDB,0x6F,0x04,0x80, + + 0x20,0x10,0x84,0x84,0x30,0x30,0x14,0xA0,0x60,0x50,0x94,0xA4,0x70,0x70,0x0C,0x90, + + 0x21,0x11,0x8C,0x94,0x31,0x31,0x1C,0xB0,0x61,0x51,0x9C,0xB4,0x71,0x71,0x05,0x81, + + 0xA0,0x12,0x85,0x85,0xB0,0x32,0x15,0xA1,0xE0,0x52,0x95,0xA5,0xF0,0x72,0x0D,0x91, + + 0xA1,0x13,0x8D,0x95,0xB1,0x33,0x1D,0xB1,0xE1,0x53,0x9D,0xB5,0xF1,0x73,0x44,0xC0, + + 0x22,0x14,0xC4,0xC4,0x32,0x34,0x54,0xE0,0x62,0x54,0xD4,0xE4,0x72,0x74,0x4C,0xD0, + + 0x23,0x15,0xCC,0xD4,0x33,0x35,0x5C,0xF0,0x63,0x55,0xDC,0xF4,0x73,0x75,0x45,0xC1, + + 0xA2,0x16,0xC5,0xC5,0xB2,0x36,0x55,0xE1,0xE2,0x56,0xD5,0xE5,0xF2,0x76,0x4D,0xD1, + + 0xA3,0x17,0xCD,0xD5,0xB3,0x37,0x5D,0xF1,0xE3,0x57,0xDD,0xF5,0xF3,0x77,0x06,0x88, + + 0x28,0x18,0x86,0x8C,0x38,0x38,0x16,0xA8,0x68,0x58,0x96,0xAC,0x78,0x78,0x0E,0x98, + + 0x29,0x19,0x8E,0x9C,0x39,0x39,0x1E,0xB8,0x69,0x59,0x9E,0xBC,0x79,0x79,0x07,0x89, + + 0xA8,0x1A,0x87,0x8D,0xB8,0x3A,0x17,0xA9,0xE8,0x5A,0x97,0xAD,0xF8,0x7A,0x0F,0x99, + + 0xA9,0x1B,0x8F,0x9D,0xB9,0x3B,0x1F,0xB9,0xE9,0x5B,0x9F,0xBD,0xF9,0x7B,0x46,0xC8, + + 0x2A,0x1C,0xC6,0xCC,0x3A,0x3C,0x56,0xE8,0x6A,0x5C,0xD6,0xEC,0x7A,0x7C,0x4E,0xD8, + + 0x2B,0x1D,0xCE,0xDC,0x3B,0x3D,0x5E,0xF8,0x6B,0x5D,0xDE,0xFC,0x7B,0x7D,0x47,0xC9, + + 0xAA,0x1E,0xC7,0xCD,0xBA,0x3E,0x57,0xE9,0xEA,0x5E,0xD7,0xED,0xFA,0x7E,0x4F,0xD9, + + 0xAB,0x1F,0xCF,0xDD,0xBB,0x3F,0x5F,0xF9,0xEB,0x5F,0xDF,0xFD,0xFB,0x7F,0x20,0x02, + + 0x04,0x80,0xA0,0x06,0x14,0xA0,0x30,0x22,0x44,0xC0,0xB0,0x26,0x54,0xE0,0x28,0x12, + + 0x05,0x81,0xA8,0x16,0x15,0xA1,0x38,0x32,0x45,0xC1,0xB8,0x36,0x55,0xE1,0x21,0x03, + + 0x84,0x82,0xA1,0x07,0x94,0xA2,0x31,0x23,0xC4,0xC2,0xB1,0x27,0xD4,0xE2,0x29,0x13, + + 0x85,0x83,0xA9,0x17,0x95,0xA3,0x39,0x33,0xC5,0xC3,0xB9,0x37,0xD5,0xE3,0x60,0x42, + + 0x06,0x84,0xE0,0x46,0x16,0xA4,0x70,0x62,0x46,0xC4,0xF0,0x66,0x56,0xE4,0x68,0x52, + + 0x07,0x85,0xE8,0x56,0x17,0xA5,0x78,0x72,0x47,0xC5,0xF8,0x76,0x57,0xE5,0x61,0x43, + + 0x86,0x86,0xE1,0x47,0x96,0xA6,0x71,0x63,0xC6,0xC6,0xF1,0x67,0xD6,0xE6,0x69,0x53, + + 0x87,0x87,0xE9,0x57,0x97,0xA7,0x79,0x73,0xC7,0xC7,0xF9,0x77,0xD7,0xE7,0x22,0x0A, + + 0x0C,0x88,0xA2,0x0E,0x1C,0xA8,0x32,0x2A,0x4C,0xC8,0xB2,0x2E,0x5C,0xE8,0x2A,0x1A, + + 0x0D,0x89,0xAA,0x1E,0x1D,0xA9,0x3A,0x3A,0x4D,0xC9,0xBA,0x3E,0x5D,0xE9,0x23,0x0B, + + 0x8C,0x8A,0xA3,0x0F,0x9C,0xAA,0x33,0x2B,0xCC,0xCA,0xB3,0x2F,0xDC,0xEA,0x2B,0x1B, + + 0x8D,0x8B,0xAB,0x1F,0x9D,0xAB,0x3B,0x3B,0xCD,0xCB,0xBB,0x3F,0xDD,0xEB,0x62,0x4A, + + 0x0E,0x8C,0xE2,0x4E,0x1E,0xAC,0x72,0x6A,0x4E,0xCC,0xF2,0x6E,0x5E,0xEC,0x6A,0x5A, + + 0x0F,0x8D,0xEA,0x5E,0x1F,0xAD,0x7A,0x7A,0x4F,0xCD,0xFA,0x7E,0x5F,0xED,0x63,0x4B, + + 0x8E,0x8E,0xE3,0x4F,0x9E,0xAE,0x73,0x6B,0xCE,0xCE,0xF3,0x6F,0xDE,0xEE,0x6B,0x5B, + + 0x8F,0x8F,0xEB,0x5F,0x9F,0xAF,0x7B,0x7B,0xCF,0xCF,0xFB,0x7F,0xDF,0xEF,0x24,0x82, + + 0x24,0x90,0xA4,0x86,0x34,0xB0,0x34,0xA2,0x64,0xD0,0xB4,0xA6,0x74,0xF0,0x2C,0x92, + + 0x25,0x91,0xAC,0x96,0x35,0xB1,0x3C,0xB2,0x65,0xD1,0xBC,0xB6,0x75,0xF1,0x25,0x83, + + 0xA4,0x92,0xA5,0x87,0xB4,0xB2,0x35,0xA3,0xE4,0xD2,0xB5,0xA7,0xF4,0xF2,0x2D,0x93, + + 0xA5,0x93,0xAD,0x97,0xB5,0xB3,0x3D,0xB3,0xE5,0xD3,0xBD,0xB7,0xF5,0xF3,0x64,0xC2, + + 0x26,0x94,0xE4,0xC6,0x36,0xB4,0x74,0xE2,0x66,0xD4,0xF4,0xE6,0x76,0xF4,0x6C,0xD2, + + 0x27,0x95,0xEC,0xD6,0x37,0xB5,0x7C,0xF2,0x67,0xD5,0xFC,0xF6,0x77,0xF5,0x65,0xC3, + + 0xA6,0x96,0xE5,0xC7,0xB6,0xB6,0x75,0xE3,0xE6,0xD6,0xF5,0xE7,0xF6,0xF6,0x6D,0xD3, + + 0xA7,0x97,0xED,0xD7,0xB7,0xB7,0x7D,0xF3,0xE7,0xD7,0xFD,0xF7,0xF7,0xF7,0x26,0x8A, + + 0x2C,0x98,0xA6,0x8E,0x3C,0xB8,0x36,0xAA,0x6C,0xD8,0xB6,0xAE,0x7C,0xF8,0x2E,0x9A, + + 0x2D,0x99,0xAE,0x9E,0x3D,0xB9,0x3E,0xBA,0x6D,0xD9,0xBE,0xBE,0x7D,0xF9,0x27,0x8B, + + 0xAC,0x9A,0xA7,0x8F,0xBC,0xBA,0x37,0xAB,0xEC,0xDA,0xB7,0xAF,0xFC,0xFA,0x2F,0x9B, + + 0xAD,0x9B,0xAF,0x9F,0xBD,0xBB,0x3F,0xBB,0xED,0xDB,0xBF,0xBF,0xFD,0xFB,0x66,0xCA, + + 0x2E,0x9C,0xE6,0xCE,0x3E,0xBC,0x76,0xEA,0x6E,0xDC,0xF6,0xEE,0x7E,0xFC,0x6E,0xDA, + + 0x2F,0x9D,0xEE,0xDE,0x3F,0xBD,0x7E,0xFA,0x6F,0xDD,0xFE,0xFE,0x7F,0xFD,0x67,0xCB, + + 0xAE,0x9E,0xE7,0xCF,0xBE,0xBE,0x77,0xEB,0xEE,0xDE,0xF7,0xEF,0xFE,0xFE,0x6F,0xDB, + + 0xAF,0x9F,0xEF,0xDF,0xBF,0xBF,0x7F,0xFB,0xEF,0xDF,0xFF,0xFF,0xFF,0xFF,0x00,0x00, + + 0x00,0x00,0x80,0x04,0x10,0x20,0x10,0x20,0x40,0x40,0x90,0x24,0x50,0x60,0x08,0x10, + + 0x01,0x01,0x88,0x14,0x11,0x21,0x18,0x30,0x41,0x41,0x98,0x34,0x51,0x61,0x01,0x01, + + 0x80,0x02,0x81,0x05,0x90,0x22,0x11,0x21,0xC0,0x42,0x91,0x25,0xD0,0x62,0x09,0x11, + + 0x81,0x03,0x89,0x15,0x91,0x23,0x19,0x31,0xC1,0x43,0x99,0x35,0xD1,0x63,0x40,0x40, + + 0x02,0x04,0xC0,0x44,0x12,0x24,0x50,0x60,0x42,0x44,0xD0,0x64,0x52,0x64,0x48,0x50, + + 0x03,0x05,0xC8,0x54,0x13,0x25,0x58,0x70,0x43,0x45,0xD8,0x74,0x53,0x65,0x41,0x41, + + 0x82,0x06,0xC1,0x45,0x92,0x26,0x51,0x61,0xC2,0x46,0xD1,0x65,0xD2,0x66,0x49,0x51, + + 0x83,0x07,0xC9,0x55,0x93,0x27,0x59,0x71,0xC3,0x47,0xD9,0x75,0xD3,0x67,0x02,0x08, + + 0x08,0x08,0x82,0x0C,0x18,0x28,0x12,0x28,0x48,0x48,0x92,0x2C,0x58,0x68,0x0A,0x18, + + 0x09,0x09,0x8A,0x1C,0x19,0x29,0x1A,0x38,0x49,0x49,0x9A,0x3C,0x59,0x69,0x03,0x09, + + 0x88,0x0A,0x83,0x0D,0x98,0x2A,0x13,0x29,0xC8,0x4A,0x93,0x2D,0xD8,0x6A,0x0B,0x19, + + 0x89,0x0B,0x8B,0x1D,0x99,0x2B,0x1B,0x39,0xC9,0x4B,0x9B,0x3D,0xD9,0x6B,0x42,0x48, + + 0x0A,0x0C,0xC2,0x4C,0x1A,0x2C,0x52,0x68,0x4A,0x4C,0xD2,0x6C,0x5A,0x6C,0x4A,0x58, + + 0x0B,0x0D,0xCA,0x5C,0x1B,0x2D,0x5A,0x78,0x4B,0x4D,0xDA,0x7C,0x5B,0x6D,0x43,0x49, + + 0x8A,0x0E,0xC3,0x4D,0x9A,0x2E,0x53,0x69,0xCA,0x4E,0xD3,0x6D,0xDA,0x6E,0x4B,0x59, + + 0x8B,0x0F,0xCB,0x5D,0x9B,0x2F,0x5B,0x79,0xCB,0x4F,0xDB,0x7D,0xDB,0x6F,0x04,0x80, + + 0x20,0x10,0x84,0x84,0x30,0x30,0x14,0xA0,0x60,0x50,0x94,0xA4,0x70,0x70,0x0C,0x90, + + 0x21,0x11,0x8C,0x94,0x31,0x31,0x1C,0xB0,0x61,0x51,0x9C,0xB4,0x71,0x71,0x05,0x81, + + 0xA0,0x12,0x85,0x85,0xB0,0x32,0x15,0xA1,0xE0,0x52,0x95,0xA5,0xF0,0x72,0x0D,0x91, + + 0xA1,0x13,0x8D,0x95,0xB1,0x33,0x1D,0xB1,0xE1,0x53,0x9D,0xB5,0xF1,0x73,0x44,0xC0, + + 0x22,0x14,0xC4,0xC4,0x32,0x34,0x54,0xE0,0x62,0x54,0xD4,0xE4,0x72,0x74,0x4C,0xD0, + + 0x23,0x15,0xCC,0xD4,0x33,0x35,0x5C,0xF0,0x63,0x55,0xDC,0xF4,0x73,0x75,0x45,0xC1, + + 0xA2,0x16,0xC5,0xC5,0xB2,0x36,0x55,0xE1,0xE2,0x56,0xD5,0xE5,0xF2,0x76,0x4D,0xD1, + + 0xA3,0x17,0xCD,0xD5,0xB3,0x37,0x5D,0xF1,0xE3,0x57,0xDD,0xF5,0xF3,0x77,0x06,0x88, + + 0x28,0x18,0x86,0x8C,0x38,0x38,0x16,0xA8,0x68,0x58,0x96,0xAC,0x78,0x78,0x0E,0x98, + + 0x29,0x19,0x8E,0x9C,0x39,0x39,0x1E,0xB8,0x69,0x59,0x9E,0xBC,0x79,0x79,0x07,0x89, + + 0xA8,0x1A,0x87,0x8D,0xB8,0x3A,0x17,0xA9,0xE8,0x5A,0x97,0xAD,0xF8,0x7A,0x0F,0x99, + + 0xA9,0x1B,0x8F,0x9D,0xB9,0x3B,0x1F,0xB9,0xE9,0x5B,0x9F,0xBD,0xF9,0x7B,0x46,0xC8, + + 0x2A,0x1C,0xC6,0xCC,0x3A,0x3C,0x56,0xE8,0x6A,0x5C,0xD6,0xEC,0x7A,0x7C,0x4E,0xD8, + + 0x2B,0x1D,0xCE,0xDC,0x3B,0x3D,0x5E,0xF8,0x6B,0x5D,0xDE,0xFC,0x7B,0x7D,0x47,0xC9, + + 0xAA,0x1E,0xC7,0xCD,0xBA,0x3E,0x57,0xE9,0xEA,0x5E,0xD7,0xED,0xFA,0x7E,0x4F,0xD9, + + 0xAB,0x1F,0xCF,0xDD,0xBB,0x3F,0x5F,0xF9,0xEB,0x5F,0xDF,0xFD,0xFB,0x7F,0x20,0x02, + + 0x04,0x80,0xA0,0x06,0x14,0xA0,0x30,0x22,0x44,0xC0,0xB0,0x26,0x54,0xE0,0x28,0x12, + + 0x05,0x81,0xA8,0x16,0x15,0xA1,0x38,0x32,0x45,0xC1,0xB8,0x36,0x55,0xE1,0x21,0x03, + + 0x84,0x82,0xA1,0x07,0x94,0xA2,0x31,0x23,0xC4,0xC2,0xB1,0x27,0xD4,0xE2,0x29,0x13, + + 0x85,0x83,0xA9,0x17,0x95,0xA3,0x39,0x33,0xC5,0xC3,0xB9,0x37,0xD5,0xE3,0x60,0x42, + + 0x06,0x84,0xE0,0x46,0x16,0xA4,0x70,0x62,0x46,0xC4,0xF0,0x66,0x56,0xE4,0x68,0x52, + + 0x07,0x85,0xE8,0x56,0x17,0xA5,0x78,0x72,0x47,0xC5,0xF8,0x76,0x57,0xE5,0x61,0x43, + + 0x86,0x86,0xE1,0x47,0x96,0xA6,0x71,0x63,0xC6,0xC6,0xF1,0x67,0xD6,0xE6,0x69,0x53, + + 0x87,0x87,0xE9,0x57,0x97,0xA7,0x79,0x73,0xC7,0xC7,0xF9,0x77,0xD7,0xE7,0x22,0x0A, + + 0x0C,0x88,0xA2,0x0E,0x1C,0xA8,0x32,0x2A,0x4C,0xC8,0xB2,0x2E,0x5C,0xE8,0x2A,0x1A, + + 0x0D,0x89,0xAA,0x1E,0x1D,0xA9,0x3A,0x3A,0x4D,0xC9,0xBA,0x3E,0x5D,0xE9,0x23,0x0B, + + 0x8C,0x8A,0xA3,0x0F,0x9C,0xAA,0x33,0x2B,0xCC,0xCA,0xB3,0x2F,0xDC,0xEA,0x2B,0x1B, + + 0x8D,0x8B,0xAB,0x1F,0x9D,0xAB,0x3B,0x3B,0xCD,0xCB,0xBB,0x3F,0xDD,0xEB,0x62,0x4A, + + 0x0E,0x8C,0xE2,0x4E,0x1E,0xAC,0x72,0x6A,0x4E,0xCC,0xF2,0x6E,0x5E,0xEC,0x6A,0x5A, + + 0x0F,0x8D,0xEA,0x5E,0x1F,0xAD,0x7A,0x7A,0x4F,0xCD,0xFA,0x7E,0x5F,0xED,0x63,0x4B, + + 0x8E,0x8E,0xE3,0x4F,0x9E,0xAE,0x73,0x6B,0xCE,0xCE,0xF3,0x6F,0xDE,0xEE,0x6B,0x5B, + + 0x8F,0x8F,0xEB,0x5F,0x9F,0xAF,0x7B,0x7B,0xCF,0xCF,0xFB,0x7F,0xDF,0xEF,0x24,0x82, + + 0x24,0x90,0xA4,0x86,0x34,0xB0,0x34,0xA2,0x64,0xD0,0xB4,0xA6,0x74,0xF0,0x2C,0x92, + + 0x25,0x91,0xAC,0x96,0x35,0xB1,0x3C,0xB2,0x65,0xD1,0xBC,0xB6,0x75,0xF1,0x25,0x83, + + 0xA4,0x92,0xA5,0x87,0xB4,0xB2,0x35,0xA3,0xE4,0xD2,0xB5,0xA7,0xF4,0xF2,0x2D,0x93, + + 0xA5,0x93,0xAD,0x97,0xB5,0xB3,0x3D,0xB3,0xE5,0xD3,0xBD,0xB7,0xF5,0xF3,0x64,0xC2, + + 0x26,0x94,0xE4,0xC6,0x36,0xB4,0x74,0xE2,0x66,0xD4,0xF4,0xE6,0x76,0xF4,0x6C,0xD2, + + 0x27,0x95,0xEC,0xD6,0x37,0xB5,0x7C,0xF2,0x67,0xD5,0xFC,0xF6,0x77,0xF5,0x65,0xC3, + + 0xA6,0x96,0xE5,0xC7,0xB6,0xB6,0x75,0xE3,0xE6,0xD6,0xF5,0xE7,0xF6,0xF6,0x6D,0xD3, + + 0xA7,0x97,0xED,0xD7,0xB7,0xB7,0x7D,0xF3,0xE7,0xD7,0xFD,0xF7,0xF7,0xF7,0x26,0x8A, + + 0x2C,0x98,0xA6,0x8E,0x3C,0xB8,0x36,0xAA,0x6C,0xD8,0xB6,0xAE,0x7C,0xF8,0x2E,0x9A, + + 0x2D,0x99,0xAE,0x9E,0x3D,0xB9,0x3E,0xBA,0x6D,0xD9,0xBE,0xBE,0x7D,0xF9,0x27,0x8B, + + 0xAC,0x9A,0xA7,0x8F,0xBC,0xBA,0x37,0xAB,0xEC,0xDA,0xB7,0xAF,0xFC,0xFA,0x2F,0x9B, + + 0xAD,0x9B,0xAF,0x9F,0xBD,0xBB,0x3F,0xBB,0xED,0xDB,0xBF,0xBF,0xFD,0xFB,0x66,0xCA, + + 0x2E,0x9C,0xE6,0xCE,0x3E,0xBC,0x76,0xEA,0x6E,0xDC,0xF6,0xEE,0x7E,0xFC,0x6E,0xDA, + + 0x2F,0x9D,0xEE,0xDE,0x3F,0xBD,0x7E,0xFA,0x6F,0xDD,0xFE,0xFE,0x7F,0xFD,0x67,0xCB, + + 0xAE,0x9E,0xE7,0xCF,0xBE,0xBE,0x77,0xEB,0xEE,0xDE,0xF7,0xEF,0xFE,0xFE,0x6F,0xDB, + + 0xAF,0x9F,0xEF,0xDF,0xBF,0xBF,0x7F,0xFB,0xEF,0xDF,0xFF,0xFF,0x2B,0xFD,0xA7,0x2C, + + 0xFD,0x06,0xD2,0x7D,0x16,0xB9,0x30,0xB0,0xA9,0x11,0x06,0x46,0xAF,0x1B,0xC8,0x18, + + 0x01,0x0B,0xB2,0xF6,0xBD,0xDC,0x9E,0x43,0x75,0x2F,0xDA,0xF8,0x57,0xF8,0x8E,0xC7, + + 0x0E,0xFD,0x62,0x81,0xAD,0x09,0xBD,0xB3,0xD2,0x4A,0x95,0xDC,0x8A,0x20,0x8D,0xEC, + + 0x7C,0x42,0xF1,0x91,0xAC,0x76,0x7B,0xAD,0xC0,0x83,0x9B,0x4A,0x72,0x67,0xA7,0x00, + + 0x0E,0xF9,0x7F,0xA6,0xFB,0x35,0x8B,0xE2,0x87,0xC7,0x6F,0x2F,0xA8,0x44,0x59,0xD2, + + 0x92,0x42,0xD3,0xE6,0xD1,0x7A,0x43,0x8F,0xA2,0xEA,0x86,0xCC,0xD9,0xBE,0x19,0x90, + + 0x63,0xA9,0x01,0x28,0x5E,0x64,0x0B,0x4F,0x61,0xED,0xD6,0x94,0xEC,0x9F,0x71,0x21, + + 0x8B,0x0C,0x72,0xC7,0x93,0x2D,0x40,0x8D,0x52,0xBC,0x5E,0x07,0x38,0xD4,0x3C,0x24, + + 0x85,0x8E,0x90,0x2F,0xF3,0x6C,0xD2,0x50,0x2B,0xCF,0x94,0xA8,0x29,0xE8,0x74,0x35, + + 0xE0,0x58,0x4A,0x64,0xCF,0x6B,0xF9,0xC8,0x4A,0x46,0x79,0x5E,0xA6,0x05,0x42,0xC9, + + 0x95,0x87,0xBD,0x0A,0xFA,0xF3,0x8F,0x21,0xCE,0x33,0xA9,0xCF,0xDE,0x13,0xF0,0xE8, + + 0x2A,0x3B,0x16,0xCC,0x78,0x69,0x3B,0x20,0xCF,0xD2,0xF9,0xEC,0x5B,0xC7,0xCB,0xCC, + + 0x7B,0x0E,0x82,0xC8,0x27,0xBB,0xEE,0x90,0xD3,0xF7,0xF2,0x70,0xA0,0x2C,0x8A,0x38, + + 0x0B,0xF9,0xB5,0xDE,0xDE,0x8E,0x62,0x97,0x4D,0x24,0x84,0xC4,0xF3,0xB6,0x79,0xAB, + + 0x76,0x1F,0xFB,0xB7,0x36,0x23,0xEF,0xEB,0x1F,0xAF,0x56,0x9C,0xE4,0x97,0x5E,0xDB, + + 0x42,0xA6,0x0B,0x25,0x23,0x27,0x66,0xFB,0x1E,0xAE,0x5C,0x8C,0xA1,0x6C,0x1F,0x17, + + 0xC2,0x00,0xD2,0xC3,0x3E,0xEF,0x50,0xE0,0x6A,0xFD,0x78,0x3A,0x71,0x12,0x74,0x99, + + 0xC1,0x90,0x24,0x10,0x0C,0xA2,0x9C,0x91,0xEB,0xFC,0x94,0xA1,0x98,0x20,0x6B,0xF2, + + 0x94,0xB9,0x3A,0x00,0x32,0xC7,0x84,0x33,0xF2,0x58,0xAB,0x89,0x32,0x60,0x31,0x62, + + 0x25,0x9E,0x36,0x77,0x1D,0xCE,0x8C,0x76,0x23,0x81,0x71,0x27,0xA7,0x7B,0x5F,0xC8, + + 0x83,0x78,0xDD,0xB7,0x03,0x5A,0x34,0xB3,0x9A,0x59,0x01,0x5C,0x99,0x10,0x5D,0xA8, + + 0xCA,0x0C,0xF2,0xAC,0x35,0x4C,0x24,0x74,0x5E,0xC2,0x70,0x6F,0x70,0x35,0xA2,0x01, + + 0xAE,0xB2,0xA7,0xC4,0xB3,0xA4,0x27,0xE0,0xB6,0xDB,0xEF,0x62,0x09,0x4B,0x3F,0xD0, + + 0xAF,0xB3,0x6B,0xB7,0x44,0x52,0x07,0xFC,0x40,0x32,0x7A,0x59,0xAF,0x73,0x54,0xF0, + + 0xC3,0x7C,0xFE,0x0E,0x9A,0xAC,0x1E,0xAC,0x40,0x7E,0x14,0x28,0x09,0xF3,0x6E,0x3B, + + 0x7E,0x16,0x75,0xBB,0x98,0xC6,0x5F,0xCB,0x5D,0x53,0xB0,0xCD,0x1A,0x59,0x3D,0x0E, + + 0xEB,0xEA,0x47,0xF5,0xE7,0x37,0x29,0x85,0x65,0xDC,0xE5,0xC8,0xE0,0x7C,0x6F,0xCA, + + 0x15,0x90,0xB1,0xA5,0xBF,0x42,0xDB,0x48,0x4A,0x6B,0xE7,0x82,0xCD,0x3A,0x57,0xB0, + + 0x62,0x0D,0xFE,0x33,0xD3,0x2D,0x0C,0x42,0xC9,0x75,0xBA,0x9F,0x08,0xAD,0x5E,0x98, + + 0xDF,0x90,0xB5,0xFB,0x9A,0x51,0x66,0x17,0x10,0x49,0xE3,0x3B,0xA5,0x75,0x79,0xE1, + + 0x27,0x98,0x07,0xA0,0x76,0x33,0x8B,0x6B,0x23,0x2B,0x17,0x95,0x44,0x81,0x31,0xA5, + + 0x29,0xB3,0x28,0xA7,0x6D,0x35,0x04,0x5B,0x94,0x53,0x5F,0xE3,0xCD,0xD2,0xE0,0x6F, + + 0xF8,0xC2,0xBB,0x95,0xF6,0x50,0xBD,0x50,0xFB,0x82,0x83,0x66,0x1C,0x6B,0x5C,0xD2, + + 0x03,0xF8,0x96,0x3B,0x7D,0xAC,0xDB,0x4D,0xE6,0x83,0xE2,0x02,0xF6,0xE7,0x3A,0x76, + + 0x45,0x84,0x49,0x75,0x7F,0xD3,0x73,0xEF,0xC2,0xBB,0x20,0xC5,0x54,0x82,0x90,0x6C, + + 0x26,0x28,0xD7,0x2F,0x17,0x56,0xA4,0xAD,0x64,0x3C,0x97,0x19,0x74,0x3C,0x58,0x22, + + 0x7A,0x29,0xA1,0x81,0xEB,0x22,0x48,0xF2,0xBD,0x3F,0xCA,0x99,0xAB,0x88,0x7D,0x43, + + 0x36,0x28,0xE0,0x06,0x11,0xDC,0x66,0x83,0xA6,0x6A,0xAB,0x4B,0x51,0x7C,0x74,0x33, + + 0x7B,0x8F,0x18,0x39,0x54,0xA6,0x58,0x9F,0x20,0x84,0x12,0xA7,0xE2,0x4B,0x70,0x94, + + 0x45,0xA7,0x9A,0x35,0x60,0xC2,0x68,0xF7,0xB6,0xC5,0x0C,0x8C,0x6E,0x8B,0x5A,0x03, + + 0xF9,0xCA,0x88,0x8A,0x21,0x5B,0x52,0x79,0xF8,0xC5,0x0D,0x69,0x8A,0xE0,0xB4,0x98, + + 0xA7,0xA3,0xCA,0x21,0x9C,0xEB,0x72,0x3E,0x65,0xC4,0x82,0xC1,0xDF,0x45,0xBE,0x34, + + 0x8A,0x13,0x9B,0xF1,0x30,0xA7,0xC8,0x54,0x41,0x1C,0x26,0xAB,0xAD,0x6A,0xEB,0x76, + + 0x38,0xC9,0x36,0xA7,0x9B,0x32,0x05,0x17,0x42,0x4D,0x88,0x5D,0x2A,0x16,0x6A,0xC2, + + 0x6D,0x95,0xDA,0x09,0xDC,0x25,0x48,0x88,0xB2,0xDD,0x95,0x2E,0x40,0x11,0x6B,0x38, + + 0xF0,0x06,0xBC,0xDA,0x6E,0xAF,0x6F,0x09,0x77,0x4A,0x2E,0x84,0xB6,0x7E,0x75,0x33, + + 0x88,0x17,0x58,0xDD,0x9E,0xA4,0xB3,0x07,0x7F,0x3A,0xE1,0x6E,0x25,0x63,0x72,0x6A, + + 0xBF,0xCD,0xB1,0x5E,0x3C,0x0F,0x86,0x7F,0x4F,0xFF,0xEC,0x8C,0x5B,0x42,0x64,0x60, + + 0xCD,0x49,0x6C,0x02,0x45,0x13,0x06,0x92,0xFF,0x7F,0x6B,0xD9,0x50,0x5B,0xEC,0xEA, + + 0x46,0x16,0x68,0x69,0xB7,0xB6,0x42,0xB5,0x84,0xB7,0x43,0x34,0xB0,0x72,0x3F,0x82, + + 0x85,0x22,0x09,0x02,0x43,0x4F,0x95,0xD1,0x86,0x4B,0x7A,0xA6,0x9F,0x6B,0xB2,0x86, + + 0xA3,0xEA,0x0C,0x13,0xC4,0x49,0x43,0x8B,0x65,0x53,0xE7,0x66,0x56,0x7E,0x7A,0xA0, + + 0x07,0xD4,0x60,0xD5,0x06,0x2D,0xAF,0xDD,0x60,0xBD,0x25,0x17,0xD5,0x94,0xB3,0xB0, + + 0x07,0x78,0x6D,0xC5,0x07,0x2C,0xA3,0x70,0x10,0x32,0x6C,0xE8,0x43,0x01,0x79,0x3F, + + 0x24,0x92,0xDB,0xAF,0x54,0x96,0x48,0x67,0x97,0xFC,0xC7,0xD6,0x8C,0x09,0xED,0xB2, + + 0xD0,0x91,0xCD,0xC6,0xB1,0x2E,0xBD,0x82,0x8C,0x6C,0x68,0xED,0x87,0x43,0xC5,0xF8, + + 0x8F,0x9C,0x1D,0x0A,0x4D,0x1E,0x24,0x59,0x87,0x49,0xD6,0xFD,0x15,0xF7,0x2A,0x92, + + 0x2B,0x00,0xCE,0xCD,0x81,0x32,0xA3,0x94,0x0D,0xFE,0x13,0xDC,0x82,0xFF,0xF5,0xF8, + + 0xD9,0x1D,0xBD,0x93,0x9F,0xBD,0x0D,0x58,0xD0,0x98,0xC9,0xC7,0x7E,0x16,0x75,0x29, + + 0xD0,0xDB,0xE8,0x7D,0x3F,0x67,0x41,0xBD,0x04,0xBF,0x96,0x09,0x5C,0x95,0xC8,0xA9, + + 0x8F,0x63,0xA6,0xBC,0x9D,0x1C,0x16,0x12,0x80,0x27,0xE1,0xE1,0x0A,0xFA,0x82,0x45, + + 0x2E,0x3D,0x8C,0xD2,0x3C,0xFD,0x67,0xFA,0x69,0xA4,0x88,0xFE,0x7F,0xFD,0x07,0x81, + + 0x48,0x93,0xF6,0xBC,0x8E,0xD2,0x5E,0x17,0x08,0x9C,0xD9,0x4F,0xF8,0x5E,0xD0,0xBB, + + 0xAB,0xB6,0xE3,0xE4,0x9B,0x83,0x0C,0x85,0x4C,0xBA,0xFF,0x8D,0x14,0x0E,0x3E,0x3C, + + 0x42,0xFF,0xA0,0xC4,0x1D,0x62,0x87,0xA4,0x7D,0xBD,0xEE,0x19,0xBB,0xB1,0x00,0x14, + + 0xA9,0x8A,0xFA,0xE4,0xF3,0xD7,0x67,0x77,0xBC,0xF7,0x57,0xBE,0xB0,0x9E,0x3F,0x3C, + + 0x0D,0xF4,0x1C,0x54,0x96,0xBB,0x29,0xDB,0x6C,0x4F,0x4C,0x6F,0x2B,0x20,0x2F,0x3C, + + 0x05,0xA7,0x76,0x67,0x47,0x27,0xA2,0xAB,0xC0,0xE3,0x62,0xCE,0x22,0x21,0x80,0x38, + + 0x7E,0xD9,0xA0,0x0E,0xB4,0x29,0xE9,0x90,0x1F,0xE5,0xD0,0x64,0x52,0x64,0xE4,0x23, + + 0x25,0xA3,0x77,0x93,0xD1,0x25,0x0A,0xD3,0xA8,0x21,0xD8,0x74,0x53,0x65,0x39,0x66, + + 0x7F,0x09,0x3A,0x38,0xB3,0xE6,0xC4,0x92,0x46,0xCB,0xD1,0x65,0xD2,0x66,0x9D,0x96, + + 0x41,0x27,0x81,0x59,0x66,0xA0,0xE6,0x93,0xC5,0x3E,0xD9,0x75,0xD3,0x67,0x93,0x0F, + + 0xE1,0xF9,0x91,0xCB,0xF1,0xAB,0x4C,0x99,0x40,0x4C,0x89,0x7F,0xD5,0x2A,0x11,0xA4, + + 0x0F,0x70,0xD4,0xFE,0x1D,0x84,0xA9,0x98,0xB5,0x6A,0xB6,0xF9,0xB8,0xC6,0xC3,0x64, + + 0x9D,0x48,0x99,0x0F,0x5A,0x2E,0x97,0xD8,0xA2,0xB5,0x95,0x34,0xFB,0x2A,0x97,0x6A, + + 0xB5,0xFA,0x1C,0x9F,0x3F,0x39,0x40,0x39,0xB2,0xC9,0x4F,0xCE,0xA1,0xC6,0x4A,0x61, + + 0xE3,0x6F,0xC6,0x45,0xE7,0x42,0x49,0xEC,0x3B,0x37,0xD2,0x6C,0x5A,0x6C,0x2C,0xFC, + + 0x08,0xFF,0x15,0xA7,0x3F,0xA0,0x41,0x72,0x03,0x3C,0xDA,0x7C,0x5B,0x6D,0x41,0xB6, + + 0x77,0x62,0xA1,0x4C,0x9B,0x4E,0x93,0x04,0xC9,0x0C,0xD3,0x6D,0xDA,0x6E,0x8B,0x21, + + 0x98,0xA2,0xB5,0x70,0x72,0x5E,0x7B,0x2A,0xEF,0xC2,0xDB,0x7D,0xDB,0x6F,0x1F,0x18, + + 0x26,0xCA,0x8A,0xFA,0x93,0x55,0x72,0x01,0x89,0x13,0xC2,0x99,0x9B,0x81,0xD8,0x14, + + 0x50,0x79,0x3B,0x35,0xC1,0x72,0xAB,0x15,0x12,0x51,0x0F,0xC6,0x0E,0xF8,0x40,0x9F, + + 0x86,0xE6,0x3A,0x67,0x44,0x31,0x73,0x01,0x14,0x11,0xAE,0x14,0x84,0xDD,0xCD,0xFC, + + 0x8C,0xBE,0xBA,0x30,0xB7,0x19,0x55,0xBD,0x9A,0xDA,0x66,0x9A,0xDB,0x26,0x70,0x5F, + + 0x24,0x8D,0x3B,0xB6,0x1C,0xEB,0x48,0x92,0x99,0xAF,0xD4,0xE4,0x72,0x74,0xB3,0xF7, + + 0x82,0x57,0x6C,0x24,0x8F,0xE6,0x97,0xA0,0x9E,0x5C,0xDC,0xF4,0x73,0x75,0x0C,0xE6, + + 0x0E,0x1B,0x9F,0x30,0xCE,0x99,0x0F,0x1D,0x5E,0x14,0xD5,0xE5,0xF2,0x76,0x56,0x19, + + 0x7E,0x18,0xB3,0xD2,0x12,0xC8,0x58,0xE0,0xDF,0xFA,0xDD,0xF5,0xF3,0x77,0x93,0xB5, + + 0xC3,0x5C,0x4C,0x92,0x0A,0xCC,0xD6,0xC5,0xFD,0xF3,0xC6,0x87,0x04,0x6D,0xAA,0xFA, + + 0xDA,0x7C,0x95,0xA4,0xD0,0x2A,0x41,0xB4,0x6F,0x20,0x5E,0xC4,0xB0,0x3B,0x39,0xA5, + + 0xDE,0xB5,0xD2,0xFE,0xC4,0x78,0xC1,0xA8,0x68,0x4A,0x04,0x29,0xF4,0x75,0x37,0x62, + + 0x61,0x6A,0xF7,0xBA,0x50,0x08,0xB6,0x48,0x87,0x1B,0x9D,0x50,0x25,0x38,0xF2,0xB7, + + 0x89,0x5D,0x98,0x2E,0x3E,0x91,0xC3,0xAF,0xA8,0x3C,0xD6,0xEC,0x7A,0x7C,0x55,0x35, + + 0xA9,0x1A,0xF4,0x3E,0x97,0xC0,0xF2,0x6A,0x67,0x55,0xDE,0xFC,0x7B,0x7D,0x27,0xF6, + + 0x2B,0x5C,0x52,0x49,0x87,0x94,0x5F,0x22,0x03,0x2F,0xD7,0xED,0xFA,0x7E,0x6E,0x5D, + + 0xDA,0x0B,0xB7,0xCC,0x87,0x3B,0xDB,0x04,0x54,0x1E,0xDF,0xFD,0xFB,0x7F,0x5E,0x04, + + 0xED,0xD1,0xE8,0x1A,0x12,0x00,0xF0,0x26,0xD9,0xAE,0xA7,0x61,0x9E,0x71,0xE3,0x9B, + + 0xD1,0x82,0x90,0x26,0xF7,0x5E,0xE8,0xAC,0x46,0x01,0x86,0x0F,0x53,0x78,0xE1,0x7B, + + 0xA8,0xC0,0x5E,0x65,0x63,0xC7,0x0F,0x86,0x1A,0x6F,0xB9,0x23,0x5D,0xAA,0x8E,0xB2, + + 0x4D,0x32,0x93,0xAB,0x15,0x13,0x07,0x92,0x8C,0xC0,0xAA,0x55,0x22,0x86,0xB0,0xC6, + + 0x77,0xAD,0x4C,0xD5,0x66,0xAE,0x0E,0x5A,0xBB,0x45,0xF0,0x66,0x56,0xE4,0x17,0xD6, + + 0x76,0x9F,0x7D,0xA5,0x93,0x28,0xEB,0x72,0xAC,0x74,0xF8,0x76,0x57,0xE5,0x59,0xB9, + + 0x2A,0x8B,0xB2,0xB7,0xF9,0x07,0x75,0x9C,0x3B,0x6D,0xF1,0x67,0xD6,0xE6,0x37,0xB1, + + 0x83,0x7A,0xBB,0x78,0x7C,0xC3,0x43,0x80,0xFB,0x4A,0xF9,0x77,0xD7,0xE7,0x82,0x19, + + 0x7C,0xEC,0x62,0x1F,0xE3,0xEA,0x6A,0x27,0x4A,0xB1,0x8A,0xD1,0xBD,0x77,0xF5,0x9E, + + 0x7C,0x5A,0x4D,0xE1,0x7E,0x89,0x60,0xF6,0xEE,0xCD,0xC4,0x9F,0xB4,0xEA,0x1D,0x36, + + 0x8A,0xF3,0xB8,0xBD,0xFF,0xB3,0x3D,0x59,0x6F,0xAF,0xCC,0x5C,0xF6,0x1B,0xEB,0x76, + + 0xA0,0xC9,0x48,0xE1,0x9B,0xD2,0x6D,0xFC,0x24,0xA8,0x68,0xCC,0xFF,0x56,0xA2,0x5B, + + 0xF1,0x11,0xDA,0xB1,0xF7,0xDD,0x64,0x56,0xB1,0x61,0xF2,0x6E,0x5E,0xEC,0xED,0x58, + + 0x90,0x29,0x92,0x79,0xE2,0xA2,0xA7,0x7E,0x34,0x46,0xFA,0x7E,0x5F,0xED,0x1B,0x6C, + + 0x77,0x81,0x23,0x22,0xEB,0x23,0x64,0xDB,0x4E,0x11,0xF3,0x6F,0xDE,0xEE,0xBB,0xFE, + + 0xC7,0x3E,0xD5,0x67,0xF7,0xDE,0x20,0x54,0xC9,0xEF,0xFB,0x7F,0xDF,0xEF,0x84,0x91, + + 0x10,0xF4,0xDC,0x02,0x45,0x1C,0x03,0x17,0x98,0x13,0x8A,0x02,0xFB,0x76,0x4D,0x16, + + 0x54,0xA4,0x28,0xF1,0xB7,0x1D,0xA1,0xE3,0x84,0xDE,0x6C,0x26,0x8A,0xF5,0x1B,0xBE, + + 0xA2,0xEB,0x9F,0x7D,0x4F,0xF0,0xF5,0xC6,0x9B,0x90,0xB5,0xE7,0xB0,0x5F,0x25,0x82, + + 0xCE,0x10,0xFD,0x13,0xFD,0x05,0x89,0xCC,0x46,0x5E,0x3D,0x88,0xD3,0x07,0x3A,0xEF, + + 0x2E,0x92,0x93,0xF9,0x46,0xF5,0x14,0xCD,0x01,0xD9,0xF4,0xE6,0x76,0xF4,0x52,0xFF, + + 0xAA,0x63,0x53,0x44,0xD5,0x68,0x0E,0x0D,0x6B,0x2E,0xFC,0xF6,0x77,0xF5,0x4B,0xEC, + + 0x07,0x69,0x25,0x1B,0xAC,0xD8,0x0B,0xDB,0x0F,0x47,0xF5,0xE7,0xF6,0xF6,0x25,0x73, + + 0xA1,0xEE,0x8F,0xD7,0xB6,0xA7,0x82,0xD7,0x0E,0x46,0xFD,0xF7,0xF7,0xF7,0x22,0x88, + + 0x20,0x33,0xA0,0xB3,0xB4,0xB8,0x48,0x1F,0xE1,0x75,0x66,0xDD,0x04,0xBA,0x6D,0x89, + + 0x55,0xDD,0x3B,0x85,0x4D,0x34,0x1E,0xFA,0x2B,0x74,0x0A,0xDC,0x82,0xBB,0x75,0x74, + + 0xAA,0x03,0x37,0x91,0x88,0x4E,0x61,0xDB,0x6C,0x5C,0x2A,0xFA,0x5D,0x25,0x09,0xA3, + + 0x21,0x36,0xD1,0x3E,0x56,0xB8,0x6D,0xCB,0x6D,0x5D,0xA4,0x77,0x14,0xB8,0x7D,0xA8, + + 0xD9,0xF9,0xBC,0xA6,0xE0,0x43,0x6E,0xFE,0xEC,0xA9,0xF6,0xEE,0x7E,0xFC,0x26,0xB8, + + 0xDC,0xF8,0x7E,0xDE,0x3F,0xBD,0xA1,0x01,0x4B,0xDB,0xFE,0xFE,0x7F,0xFD,0x5F,0x34, + + 0xA8,0xE7,0xBD,0xCE,0x68,0x61,0x2D,0x89,0xCD,0xBE,0xF7,0xEF,0xFE,0xFE,0x57,0x20, + + 0xA9,0x2E,0xEF,0xDF,0xBF,0xBF,0xCA,0x0A,0x4E,0x20,0xFF,0xFF,0xFF,0xFF,0xA3,0x2C, + + 0xDC,0x71,0x7F,0xF4,0xEF,0x2F,0x8D,0xB6,0xE1,0x9F,0x34,0x46,0xAB,0x05,0xAF,0x16, + + 0xD5,0x65,0xB6,0xB4,0xF3,0xA8,0x0F,0x36,0x89,0xD0,0xB7,0xD6,0xFD,0xDC,0x22,0x39, + + 0x58,0xB3,0x35,0xE7,0xD8,0x21,0xA5,0x43,0x3F,0xE6,0xA9,0xA7,0x15,0x19,0x31,0xEF, + + 0x2D,0x0E,0xB4,0x91,0xAC,0x45,0xBD,0xB5,0xF4,0xBD,0xE1,0x46,0xE3,0x92,0x20,0x16, + + 0xCA,0xF8,0x5D,0x57,0x71,0x04,0xFA,0x93,0xC6,0xC9,0xA8,0x60,0x56,0xC4,0x76,0x6C, + + 0x8E,0x83,0xB0,0xA9,0xAC,0x64,0x27,0xF2,0x86,0x71,0xE0,0x44,0xB0,0xCA,0x39,0x66, + + 0x7F,0x09,0xB9,0x62,0xF1,0xA9,0x07,0xD4,0xC4,0x3F,0x2E,0x16,0xE6,0xC7,0xCD,0x11, + + 0xDD,0xAA,0x09,0x21,0xD0,0xAA,0xF6,0x93,0x6F,0xBA,0x79,0x07,0xB1,0xCB,0xFD,0x13, + + 0x8C,0x9C,0xBA,0xF7,0xB4,0x25,0x72,0x07,0x1C,0x0A,0xEC,0x2A,0xB1,0x8B,0x6A,0x37, + + 0x0B,0xD4,0xF2,0x3B,0xE0,0x26,0x4C,0xC6,0x4F,0x30,0x30,0xC5,0x84,0x66,0xA7,0x8D, + + 0xBD,0xF4,0x43,0x75,0x1F,0x96,0x8E,0xBF,0xCE,0xD3,0x53,0x40,0x2B,0x6C,0x73,0x3E, + + 0x74,0x04,0x2C,0x20,0x70,0xDA,0xFF,0x47,0x6A,0x2E,0x2F,0x42,0x7A,0xCF,0xD5,0xDA, + + 0x0E,0x04,0xA2,0x1F,0xE2,0x23,0x2A,0x57,0x78,0x99,0xAC,0x6B,0x7E,0x6A,0xB1,0xDC, + + 0x36,0xF7,0xCE,0xD8,0x59,0x77,0x7C,0xC0,0x79,0xE9,0x84,0x9E,0x5F,0x2D,0x06,0x3A, + + 0xF6,0x8F,0x03,0x35,0x87,0x55,0x85,0x7A,0xF4,0xAD,0x66,0xED,0x33,0xBF,0x75,0xE1, + + 0xF7,0xA0,0x0B,0x30,0x53,0xF2,0x0E,0xD4,0x03,0x1C,0xDD,0x82,0xB8,0xC7,0xDA,0xE2, + + 0xD3,0x75,0xD6,0xC3,0xD9,0xB3,0x4A,0x18,0x52,0xFB,0xEA,0x26,0xB5,0x54,0xA1,0xF2, + + 0xD6,0x74,0xEE,0x94,0x32,0xD1,0x8F,0x23,0x47,0xAE,0xE4,0xC7,0x0D,0x1D,0x3D,0x7A, + + 0xA6,0x8B,0xE7,0x3D,0x59,0x51,0x86,0xA0,0x6D,0xFF,0x3A,0x47,0x5C,0x8F,0x35,0x6E, + + 0xA7,0xFA,0xB7,0x66,0x9F,0x9C,0x23,0x8D,0x89,0x10,0xFF,0xB1,0xF0,0x41,0xE4,0xB2, + + 0x40,0xD8,0xBC,0xC0,0x36,0x94,0x34,0xB6,0xF6,0x59,0xC6,0x42,0x99,0x30,0x2C,0x86, + + 0xB7,0x18,0x3C,0x5C,0x58,0x3A,0x79,0x92,0xA1,0x55,0x78,0xD0,0x75,0x35,0x85,0xB9, + + 0xC2,0x78,0x3A,0xB6,0xCE,0x30,0x37,0x77,0x60,0x9A,0xEF,0x55,0x3B,0xD9,0xAA,0x53, + + 0x66,0x23,0x4D,0xD1,0xFB,0xC8,0x55,0xF9,0x80,0xA8,0x70,0xAF,0x06,0xEB,0x1C,0x79, + + 0x8B,0x58,0xD4,0x8E,0x7E,0x54,0x68,0x09,0x81,0x1B,0xA8,0x91,0x18,0xA7,0xED,0x1C, + + 0x61,0xE6,0xB0,0x39,0xFB,0x39,0xCA,0x42,0x80,0x88,0x4C,0x81,0x92,0x3D,0x39,0xB4, + + 0x2A,0x8F,0xB9,0x3D,0x7A,0x60,0x05,0xA8,0x13,0xD7,0x57,0xC0,0xA7,0xD7,0xCF,0xE1, + + 0xC3,0xC4,0x87,0x90,0x50,0xB8,0xB3,0x22,0x18,0xD2,0xA1,0x0C,0xFF,0x02,0x7E,0x56, + + 0x2B,0xBC,0xF8,0xE1,0x51,0x33,0x08,0x0A,0x5F,0x1E,0xF9,0x93,0xA3,0xD1,0x36,0xC9, + + 0x09,0xB0,0x4E,0xCD,0xC4,0x90,0x7B,0x9A,0x9C,0x38,0xE0,0x5D,0x75,0xCC,0xFC,0x2B, + + 0x06,0xE3,0x47,0x4F,0x18,0x2A,0xD3,0x81,0x68,0x92,0x87,0xAA,0xF4,0xA1,0x1F,0x6B, + + 0xE7,0x21,0x58,0xED,0x44,0xC0,0x67,0x06,0xCF,0x52,0x20,0x87,0x8D,0xA0,0x40,0x2D, + + 0x06,0x8D,0x4C,0x95,0x3E,0xA8,0x8F,0xC0,0x0C,0x11,0x62,0x20,0x9C,0x43,0x1B,0x30, + + 0xD8,0x8E,0xB3,0x59,0x13,0xD8,0x22,0x72,0xCE,0x6A,0x80,0xC9,0xF9,0xEC,0xDE,0x24, + + 0x25,0x84,0x21,0x46,0xEF,0xE0,0x0F,0x1F,0x49,0x44,0x15,0xA3,0xE9,0x59,0x9D,0x6C, + + 0x26,0x38,0x4B,0x75,0x62,0xC6,0xEF,0x0D,0xAE,0xD0,0xD9,0x61,0xAA,0x1F,0xC0,0x31, + + 0x38,0xC6,0x98,0x61,0xEB,0xAB,0x23,0x71,0x2C,0xF7,0xE6,0x4A,0xBD,0xA0,0xCE,0x0D, + + 0xA4,0xE0,0x13,0x71,0xB6,0xCB,0x2E,0x6D,0x21,0x65,0x5C,0x52,0x3C,0xEA,0xFC,0xB9, + + 0x04,0x4A,0x21,0x2A,0x5E,0xAB,0x57,0xD7,0xF0,0x12,0xCB,0xD7,0x1F,0x49,0xD6,0xB1, + + 0xE4,0x78,0x8B,0x6F,0x62,0x21,0xEA,0x00,0xB3,0xAB,0x7E,0x04,0xA7,0x62,0x38,0xF7, + + 0x6D,0xCA,0x9A,0xF1,0x1A,0xD1,0x62,0xDB,0x26,0x5D,0xCA,0x09,0xA1,0xE7,0xAC,0xE9, + + 0x2B,0x22,0x92,0xE5,0x1B,0x40,0x6F,0x9D,0x26,0x9A,0x3A,0x7E,0x09,0xAB,0xEC,0x05, + + 0x71,0x0B,0x7D,0x6D,0x6F,0xCF,0x6D,0x9F,0x6C,0x61,0x8D,0x13,0x51,0x6C,0xBC,0x1A, + + 0x8B,0xF2,0xB1,0x01,0xB3,0x5F,0x0A,0xCA,0xF3,0x6C,0x26,0xF2,0xDB,0x92,0x02,0x1C, + + 0x96,0x83,0xE6,0x0E,0x5A,0xAA,0x10,0x1A,0x4D,0x8C,0xE4,0x43,0xB5,0xA8,0x3A,0x29, + + 0x2D,0x2C,0x92,0xA3,0xE2,0xEC,0x8A,0x18,0xC0,0x4B,0x5E,0x0D,0xDB,0xAC,0xD7,0xA9, + + 0x6F,0x21,0xCD,0x74,0xFD,0x8E,0x77,0x3D,0x4C,0xD2,0xC9,0xDE,0x7D,0x41,0x53,0x6B, + + 0xB0,0x20,0x14,0x2C,0xEF,0x04,0x7A,0x3B,0x81,0xA1,0xC5,0x57,0xB7,0xE2,0x7A,0x60, + + 0x20,0x3D,0xB2,0xE4,0xDF,0x33,0x14,0x48,0x07,0xD4,0xCF,0x24,0xB1,0x94,0xEC,0x83, + + 0xDA,0x4C,0x78,0x6A,0xF0,0x4A,0x38,0xC1,0x4F,0xBF,0xC4,0xC5,0x01,0x9D,0xB2,0x01, + + 0x54,0x97,0x9B,0x22,0x9A,0x1D,0x54,0x63,0xE0,0x29,0x1A,0x45,0x58,0x0F,0x55,0xB4, + + 0x58,0x9C,0x70,0x7A,0xE1,0x08,0x5F,0xC3,0xE4,0xB3,0xDF,0xB3,0xF4,0xE1,0x04,0x94, + + 0xB2,0x99,0xDE,0x76,0xC9,0x6B,0x0F,0xC5,0xC7,0x6B,0xC7,0x46,0x8E,0xD7,0xC6,0xD9, + + 0x86,0x36,0x57,0x73,0xC0,0xF4,0xDB,0xDE,0x61,0x1C,0x2E,0xD2,0x34,0x05,0x73,0x73, + + 0x59,0x90,0x5A,0xF6,0x17,0x49,0xB5,0x96,0x87,0x97,0x35,0xE3,0x2D,0x02,0xB9,0x2D, + + 0xA1,0x0E,0xD3,0xFA,0xDC,0xB8,0x9A,0x71,0x2E,0xA2,0x02,0x84,0xCB,0x5C,0x20,0xB7, + + 0xC5,0x69,0x59,0x0A,0x63,0xAE,0x68,0x0B,0x41,0x55,0x88,0x93,0xBE,0x98,0x00,0x6B, + + 0x59,0xB9,0x7C,0xA3,0xD6,0xFD,0xD6,0x4B,0xCE,0x99,0xAC,0x45,0x7B,0x80,0x8B,0x19, + + 0xCD,0x92,0x67,0xE2,0xA3,0x17,0x49,0x0B,0xEA,0x43,0xBF,0x2B,0x15,0x0B,0xEF,0xE3, + + 0x30,0xD9,0x91,0x2E,0xCB,0x14,0x01,0x1B,0xEB,0x7B,0x70,0x3B,0xC0,0x54,0x8E,0x4E, + + 0x13,0x27,0x66,0x4C,0xC2,0xB0,0xC9,0x08,0x8D,0xD5,0x8E,0xEA,0x7A,0x5C,0x16,0xCB, + + 0x53,0xBC,0xF9,0xD8,0xF7,0x2C,0x83,0x9A,0x2F,0x20,0x80,0xF8,0x96,0xCE,0xDC,0x29, + + 0x02,0x63,0x67,0xDE,0x41,0x1A,0xF6,0x89,0x11,0x57,0x08,0x9C,0xC8,0x0F,0xAC,0xA8, + + 0x9D,0x1E,0x4B,0xAC,0xC3,0x14,0x0D,0x00,0xB7,0x9D,0x2C,0x0C,0x73,0xF2,0xFF,0x27, + + 0xA1,0x41,0xF1,0xF0,0x53,0x63,0x3E,0x1E,0x9D,0x4F,0xDA,0x75,0x63,0x30,0x76,0x16, + + 0xE0,0x82,0x71,0x9E,0x76,0x4B,0x20,0xCF,0xED,0x4C,0x52,0xE4,0x18,0x09,0x5B,0x69, + + 0xE8,0x53,0x06,0x95,0x98,0xDD,0xA5,0x5E,0x63,0x03,0x6E,0xDA,0x2B,0x77,0x27,0xE2, + + 0x0D,0x42,0x9D,0x15,0xCD,0x63,0x79,0x62,0x63,0xBF,0x1D,0xCA,0x2E,0x3C,0x87,0xFD, + + 0x3B,0xB3,0xCB,0x56,0xE2,0x29,0x40,0x75,0x42,0x62,0x2C,0x9B,0x94,0x91,0xD7,0x15, + + 0x03,0x74,0x72,0x27,0x0D,0xB7,0xCD,0xBC,0xAB,0x6A,0xFB,0x85,0xD5,0x62,0xFA,0xBE, + + 0x2F,0xC1,0x3E,0xAE,0x67,0x7B,0x1C,0x49,0x8E,0x46,0xFE,0x92,0x05,0xE1,0x10,0x7A, + + 0x62,0xCA,0x50,0x42,0x3D,0x5B,0xA6,0xA3,0x51,0xAD,0x83,0xA1,0xE1,0x35,0x58,0x06, + + 0x60,0x19,0x56,0xA9,0xC9,0x64,0x6A,0x0F,0xB5,0x47,0xA3,0xFC,0x19,0xC0,0x24,0xEB, + + 0x85,0x48,0x0D,0xB9,0x3F,0x94,0x62,0x29,0x75,0xE4,0xD6,0x19,0x1C,0x32,0x7D,0x0F, + + 0x69,0x89,0x57,0xB5,0x49,0xBA,0x83,0xCB,0x64,0xB7,0xD9,0x39,0x27,0x8F,0x35,0x20, + + 0xF5,0xA4,0xA1,0xB8,0xED,0xB5,0x8E,0x1D,0x22,0x2F,0x30,0xC2,0xD9,0x94,0x6E,0xA5, + + 0x17,0x6E,0xFB,0xA2,0xB3,0x40,0x41,0x68,0x4A,0xCE,0xD6,0x6C,0x12,0x1C,0x25,0xA7, + + 0x53,0xDF,0xCA,0x5C,0x57,0xDD,0x07,0x7E,0xCD,0x88,0x48,0x45,0x75,0x3E,0x06,0xE4, + + 0xB5,0x2B,0x65,0x39,0xD7,0x5C,0x42,0x29,0x95,0x45,0x93,0xFC,0xC4,0x6F,0x59,0x75, + + 0xBD,0xA7,0x8E,0x6D,0xB1,0x17,0x73,0xBA,0x2E,0x50,0xD7,0x34,0xD0,0x35,0xB0,0xE2, + + 0xDB,0xBD,0xD6,0xD8,0x91,0x51,0x6A,0xA7,0x81,0x36,0x9E,0x32,0xB7,0x8F,0x36,0x35, + + 0x05,0x17,0xA7,0x11,0x43,0xED,0x9C,0xA1,0x52,0xF5,0x1F,0xB4,0x6D,0x62,0x92,0xB1, + + 0xA8,0xED,0x86,0x80,0x9C,0xA1,0x85,0x23,0x29,0x51,0xBC,0x83,0x81,0x23,0xA6,0xA4, + + 0x00,0x91,0x59,0x90,0xF1,0xA4,0x88,0xB7,0x29,0x02,0x00,0x0F,0x48,0x73,0x32,0x82, + + 0xF3,0xDA,0x5E,0x01,0x42,0xC6,0xB6,0xBB,0x8D,0x08,0xD4,0xE4,0x72,0x74,0x63,0x7B, + + 0x40,0xCF,0x93,0x4B,0xBE,0x78,0x2C,0x0F,0xEC,0x43,0xDC,0xF4,0x73,0x75,0x7F,0xBE, + + 0x5D,0xE9,0xC0,0xC5,0xD0,0x8C,0x76,0xB8,0x98,0xFD,0xD5,0xE5,0xF2,0x76,0x58,0x44, + + 0xA3,0xD7,0x32,0xAB,0x6A,0x70,0x0F,0xF0,0xF5,0x6C,0xDD,0xF5,0xF3,0x77,0xF9,0x0A, + + 0xE1,0x6D,0xA9,0x09,0x4A,0xA4,0xB2,0x8C,0xA0,0x4B,0x17,0x24,0x1C,0x82,0x28,0xB5, + + 0xAD,0xBD,0xA5,0xC6,0x17,0xAA,0x8E,0xB8,0xFB,0x92,0x7A,0x82,0xF2,0xB4,0x3F,0x19, + + 0x53,0x5B,0xBF,0xA8,0xB4,0xBA,0xB7,0xBA,0x86,0x3E,0xCF,0x44,0x7C,0x6E,0x9E,0x9E, + + 0x8D,0xB6,0xA4,0x38,0x95,0xAB,0x01,0xFC,0xCF,0x59,0xE6,0x42,0xE5,0x1B,0x57,0x9D, + + 0xFA,0x29,0xA2,0xB1,0x3D,0xDF,0xB9,0xCB,0x7F,0x6E,0xD6,0xEC,0x7A,0x7C,0xA5,0x1A, + + 0x9D,0x38,0x23,0x67,0xE1,0xE9,0x16,0x7D,0x2E,0x26,0xDE,0xFC,0x7B,0x7D,0xAA,0x2B, + + 0x15,0x63,0xC7,0x37,0x5D,0x23,0x1A,0x8F,0x65,0xE8,0xD7,0xED,0xFA,0x7E,0xEA,0xA8, + + 0xBE,0x0C,0xD0,0xBD,0xAE,0x9C,0xF3,0x37,0x73,0x9C,0xDF,0xFD,0xFB,0x7F,0x80,0x71, + + 0x74,0x53,0xA3,0x02,0x57,0xC8,0x0A,0xA5,0xBB,0x6B,0x09,0xD7,0x15,0x49,0x9C,0x70, + + 0xFA,0xC0,0xC3,0x1B,0x49,0xE3,0xA8,0x50,0xF2,0xA4,0x47,0x25,0xB6,0x30,0x5F,0x04, + + 0x25,0x5D,0xF5,0xDD,0x3A,0xE1,0x49,0x33,0x2D,0xB3,0x68,0x79,0x2B,0xE2,0x49,0xB5, + + 0x24,0x28,0xBD,0x58,0x37,0xE1,0x01,0xDC,0x48,0x7E,0x94,0x21,0xBC,0xA0,0x2F,0xC9, + + 0xBA,0x43,0x2E,0xA2,0xC2,0x01,0x8F,0x62,0x42,0x74,0xEA,0x66,0x4A,0x74,0x97,0xD7, + + 0x7D,0x4C,0xC3,0x65,0x83,0x1C,0x8C,0xA0,0xA6,0xBA,0x3A,0xFA,0x09,0x44,0x4E,0x8C, + + 0x63,0xB9,0x16,0x8C,0x6B,0x59,0xE3,0x2B,0x95,0x22,0x72,0x7A,0xDC,0x64,0x8D,0xE9, + + 0x26,0x18,0xA5,0x73,0x97,0x06,0x82,0x95,0x72,0xC9,0x6E,0xCA,0x88,0x10,0x5A,0x0E, + + 0x08,0x28,0xC9,0xB4,0x00,0xC8,0xD7,0x50,0xDA,0x89,0x35,0x7C,0xAC,0x63,0x12,0x27, + + 0xF2,0x14,0xA1,0xD8,0x33,0xC9,0xC5,0x7D,0x69,0x66,0xB8,0xAB,0x6D,0x03,0xDC,0x69, + + 0x7F,0xEF,0xF1,0x42,0x45,0x29,0x0B,0xD5,0x60,0xC7,0x3B,0x0F,0x9A,0x8A,0xF8,0x3F, + + 0x2C,0x14,0x2F,0x3B,0x6D,0x7B,0x9B,0x49,0xA7,0xB8,0x9A,0x81,0x1E,0x14,0x9D,0xB9, + + 0xD3,0x39,0xE8,0x3E,0x9E,0x5A,0xE9,0xB7,0x09,0x5F,0x0D,0x6E,0x5E,0xEC,0xEB,0xC7, + + 0x33,0xDE,0x93,0xA8,0xA6,0x00,0xE0,0xFD,0x9A,0x62,0xFA,0x7E,0x5F,0xED,0xC7,0x16, + + 0xA2,0x8E,0xCF,0x2D,0x61,0x51,0x71,0x6A,0xC4,0x1D,0xF3,0x6F,0xDE,0xEE,0x64,0x26, + + 0x17,0x4A,0x87,0xE0,0x49,0xFB,0x84,0x99,0x14,0xFD,0xFB,0x7F,0xDF,0xEF,0x37,0x73, + + 0x87,0xD0,0xA2,0x91,0x53,0xD8,0xCB,0xBE,0x64,0x1B,0xB0,0x2E,0x5A,0x99,0xC5,0x61, + + 0xA1,0x3C,0x2D,0x8A,0x52,0x38,0xBB,0x4C,0x90,0xD1,0xD9,0xF8,0x96,0x4E,0xA5,0x92, + + 0x5B,0x13,0xE5,0x87,0xF3,0xA9,0xAF,0xD2,0xA5,0x91,0xEF,0x56,0xCB,0x76,0x89,0x23, + + 0xD4,0x3C,0xAD,0x97,0xD1,0x5A,0x5C,0x39,0xDC,0x97,0xC2,0xB3,0xAD,0x32,0xF2,0x4B, + + 0x7E,0x34,0x75,0x52,0x62,0xB4,0xB1,0x22,0xE4,0xCA,0xF4,0xE6,0x76,0xF4,0xB4,0x70, + + 0x86,0x48,0x22,0xE6,0x31,0xF7,0x31,0x61,0xF6,0x2A,0xFC,0xF6,0x77,0xF5,0x65,0x42, + + 0xC2,0x3C,0x5B,0x81,0x0E,0x3D,0x01,0x93,0xF4,0xA4,0xF5,0xE7,0xF6,0xF6,0x92,0x21, + + 0x20,0x12,0xFB,0xB7,0x90,0x32,0x7F,0xF3,0xB3,0x36,0xFD,0xF7,0xF7,0xF7,0x82,0xF8, + + 0xA2,0xD9,0x78,0x9B,0x78,0x47,0xF6,0x8E,0x48,0xF8,0x3F,0xCA,0x5B,0xA3,0xC6,0x1D, + + 0x09,0x94,0x29,0x61,0x61,0x46,0x5F,0x4E,0x04,0xDA,0x05,0x4C,0xCA,0x06,0x19,0xA7, + + 0x2E,0x62,0x58,0x7C,0xD9,0x70,0x33,0x54,0x1B,0x84,0x11,0x28,0x42,0x97,0xD0,0xBC, + + 0x0C,0x9D,0x50,0x64,0x0D,0x71,0xB8,0xBA,0xB1,0x66,0x53,0x9D,0xE6,0xD8,0xC3,0x1B, + + 0x54,0x3E,0x4E,0xB5,0xC1,0xBC,0xFD,0x0A,0x11,0x88,0xF6,0xEE,0x7E,0xFC,0x9F,0xE9, + + 0xFD,0x79,0x72,0xAA,0x02,0x26,0x81,0x14,0x8C,0x4F,0xFE,0xFE,0x7F,0xFD,0x98,0x28, + + 0x03,0x72,0xA1,0x6B,0xA7,0x44,0x92,0x51,0x4B,0x71,0xF7,0xEF,0xFE,0xFE,0xB6,0x0F, + + 0xFE,0xDC,0x89,0x7C,0x66,0x52,0xF8,0xF3,0xEF,0xEE,0xFF,0xFF,0xFA,0xC0,0x80,0x00, + + 0x55,0x40,0xF8,0x76,0xFB,0xDA,0x69,0xF0,0x0C,0xC1,0x50,0x25,0xAC,0x9B,0x4C,0xB4, + + 0x25,0x41,0x92,0x3A,0x30,0xC1,0x32,0xE0,0x1D,0xC9,0xE8,0xEB,0xE6,0x2D,0x01,0x85, + + 0x86,0x02,0xE1,0xC5,0x5E,0x2F,0x12,0x6B,0x4D,0x21,0x90,0xE3,0x72,0x2E,0x09,0x05, + + 0x22,0x66,0x49,0xC4,0x90,0xAE,0x09,0x7B,0x4D,0x4B,0xEF,0x26,0xF7,0x27,0x65,0x46, + + 0x96,0x60,0xBB,0x3A,0xC8,0xFB,0xF0,0x6E,0xCE,0xC9,0x90,0x17,0xD6,0x55,0xA7,0xBE, + + 0x83,0x9D,0xF2,0x0A,0xE8,0x64,0xB7,0x9B,0xC3,0xD9,0x09,0x87,0xDF,0x68,0x79,0x66, + + 0x25,0x16,0x46,0x96,0x31,0x1B,0xB5,0x46,0x65,0x56,0xAF,0x63,0x3B,0x02,0x69,0x97, + + 0x03,0x58,0xF6,0xBF,0x78,0x28,0x78,0x93,0x3E,0x4E,0xA7,0x97,0x7F,0x6A,0x92,0x2C, + + 0x2E,0x48,0xDB,0x15,0xBF,0x6A,0x10,0xDA,0x0F,0x4C,0xB4,0x8D,0xD4,0xB3,0x0A,0x18, + + 0x09,0x49,0x4A,0xC1,0xFD,0x2F,0x20,0x3A,0x55,0x69,0xEA,0x1A,0xBB,0x0A,0xC5,0x6E, + + 0xAE,0x49,0x5D,0xB9,0x1D,0xDF,0x17,0x7D,0x2F,0xB4,0xB3,0xD0,0x98,0x24,0x1E,0x26, + + 0x89,0x0B,0x03,0x58,0x38,0xA1,0x9B,0x29,0xD9,0x49,0x2B,0x8A,0xF7,0x27,0x62,0x1E, + + 0x8A,0x82,0x79,0x5E,0x3A,0x62,0x56,0x74,0x1F,0x45,0x42,0xAC,0x42,0x51,0x6A,0xFD, + + 0x8B,0x0F,0x94,0xBE,0x0B,0xD0,0x48,0x7C,0xA9,0xCD,0xA2,0x74,0xBE,0x2C,0x63,0x20, + + 0x0A,0x41,0x80,0xB3,0x62,0x21,0xFF,0x63,0x69,0xF3,0xC5,0x6B,0x69,0xAA,0x6B,0x6F, + + 0x0B,0x52,0x5C,0xA2,0x62,0x4C,0x5B,0xB9,0x71,0xE0,0x2E,0x83,0xCF,0x52,0x04,0x80, + + 0x78,0xF8,0x7C,0x74,0x38,0x3F,0x2C,0xC0,0xD0,0x58,0x7B,0x4A,0xF0,0xB8,0xDE,0xB0, + + 0x26,0xE9,0x64,0xAE,0xB3,0x19,0xE5,0xC2,0xEF,0x34,0x73,0x5A,0xF1,0xA2,0x4F,0x28, + + 0x82,0x11,0x2D,0xBB,0x37,0x47,0x64,0xD3,0x6E,0x37,0x2B,0xAC,0x57,0x62,0x02,0x1D, + + 0x24,0xE6,0x0B,0x65,0xF5,0x3C,0x64,0xC3,0x6F,0x36,0xBC,0xB3,0x21,0x17,0x6A,0xC6, + + 0xB3,0x88,0xBF,0xBA,0x10,0xD9,0xAF,0xE4,0xCF,0x15,0x70,0x48,0x99,0x10,0x71,0x0E, + + 0xCE,0x11,0x60,0x4B,0xCC,0xB8,0x66,0x77,0x47,0xA8,0x68,0x16,0x57,0x7F,0x6B,0xC6, + + 0x73,0xE8,0x83,0x63,0x79,0xBB,0x70,0xE7,0x76,0x32,0xEC,0x07,0x1B,0x79,0x4A,0xDA, + + 0x27,0x43,0x2E,0x2B,0xB5,0x77,0x7A,0x13,0x03,0x42,0xD8,0x9E,0x9B,0x33,0xC6,0x55, + + 0xCC,0xB3,0xE6,0xCD,0x7C,0x37,0x3F,0xFB,0xEC,0x44,0x28,0xA5,0xDB,0x1D,0x21,0x69, + + 0x02,0x1C,0x09,0x7E,0xBB,0x11,0x66,0x9F,0xF8,0xF5,0x22,0xB5,0x9E,0x69,0x37,0xD7, + + 0xC3,0x11,0xE7,0xCC,0xF0,0xB1,0xBE,0xFA,0x64,0x06,0x78,0x43,0x78,0x39,0x51,0x91, + + 0x8A,0xB0,0x8D,0x7F,0xBD,0xD8,0xBF,0xF3,0x7C,0xF7,0x70,0x53,0x79,0x60,0xE2,0xBA, + + 0xA4,0x79,0xA9,0x8B,0xDB,0x8A,0x2E,0xB7,0xBA,0x53,0xFF,0x1A,0x6A,0xB9,0x75,0x36, + + 0x93,0x12,0xEE,0xD9,0x3D,0x7D,0x26,0xCA,0x1F,0x82,0xDB,0x97,0x13,0x39,0xBD,0xC1, + + 0x75,0x21,0xB8,0xBF,0x68,0xA1,0x65,0xC1,0x3F,0xEA,0xAF,0xC9,0x44,0xA1,0x70,0x36, + + 0x8F,0x2B,0xA0,0x7D,0x70,0xDF,0xCF,0x43,0xEB,0x2F,0xF6,0x1B,0x12,0x70,0x20,0x02, + + 0x04,0xC0,0x5B,0xE4,0x96,0x88,0x20,0x62,0xC4,0xC6,0xC0,0xF9,0xB7,0xA2,0x28,0x12, + + 0x05,0xC1,0xD0,0x94,0x10,0xF2,0x3C,0xB5,0x64,0x56,0x55,0x5D,0xD0,0xE6,0xEE,0x07, + + 0x84,0x82,0x1D,0x65,0xD5,0xE2,0x7E,0x83,0x25,0x19,0xB1,0x3B,0x03,0x5F,0x29,0x87, + + 0x85,0x83,0x93,0xF5,0x39,0x23,0x8D,0xCC,0x86,0x30,0x51,0x94,0xF1,0x1E,0x40,0xCC, + + 0x86,0x91,0x9F,0x06,0x5A,0xB2,0xD0,0x0D,0x26,0x84,0xE6,0x60,0xE5,0xA9,0x48,0x1C, + + 0x87,0xE6,0x10,0x72,0x9A,0xB3,0xCF,0x57,0x6B,0x6D,0x68,0x05,0xDB,0xB4,0x41,0x8D, + + 0x06,0xCB,0xA9,0x53,0x5D,0xA9,0x03,0x73,0xC6,0xCC,0x8F,0x85,0xC6,0xAB,0x4C,0x55, + + 0x13,0xE3,0x96,0x4A,0x5C,0xA8,0xD9,0x56,0x45,0x87,0x87,0x70,0x6E,0x81,0x22,0x0A, + + 0x0C,0xC8,0xDA,0x8A,0x43,0x06,0x62,0x59,0x54,0x42,0x6D,0x26,0x72,0xAE,0x2A,0x1A, + + 0x0D,0xC9,0xD7,0xEF,0xAF,0x39,0x8E,0x5A,0x45,0x19,0xCA,0xE1,0xB2,0xA8,0x23,0x9E, + + 0x8C,0x8A,0x7C,0xA2,0x9A,0x5B,0xF4,0xD5,0x2D,0xAC,0x41,0xE9,0x7E,0xA6,0xE6,0x47, + + 0x8D,0x8B,0x43,0x35,0x1F,0xA3,0x94,0xEB,0x4C,0x6A,0x05,0x36,0x3A,0xFB,0x59,0xA4, + + 0xEF,0xEA,0x5B,0x6A,0x9B,0x02,0x71,0x8F,0xF0,0xEC,0x8C,0x8C,0xF2,0xD1,0x43,0x00, + + 0xC6,0xE9,0x1A,0x8D,0xFE,0xC1,0xDE,0x18,0x6B,0xC7,0xFE,0xFF,0xB6,0xA9,0xD7,0x01, + + 0x47,0xCA,0xD8,0xEF,0x73,0x9E,0xF1,0x60,0x4A,0x9A,0x17,0x4B,0x6D,0x99,0x40,0xB9, + + 0x23,0x93,0x8C,0xA4,0x7E,0x39,0xFB,0x0C,0xEB,0xB8,0xEE,0x8C,0x5B,0x42,0x01,0x82, + + 0x4F,0xB4,0xED,0x98,0x48,0x44,0x90,0xEC,0xBB,0xED,0x08,0xAF,0xD3,0xE0,0xAC,0x92, + + 0x94,0x1C,0x7C,0x50,0xDF,0xFD,0x63,0xFA,0x1A,0xF1,0x9D,0xB0,0xA5,0x95,0xDA,0x87, + + 0xA4,0xF7,0xF5,0x9D,0x9E,0x06,0xDE,0xD4,0x64,0x05,0x5A,0x49,0x74,0xF9,0xC9,0xB4, + + 0x16,0x1E,0x5D,0xD1,0x1F,0x48,0xFD,0x73,0xF6,0xD5,0x01,0xBE,0x56,0x96,0xC4,0xCC, + + 0xAA,0x09,0x48,0xB4,0xE8,0x4B,0x87,0xE2,0x5E,0x29,0xF5,0x00,0x52,0x09,0x42,0xD4, + + 0xB6,0x09,0xC2,0x34,0x84,0xD0,0x4B,0x10,0x43,0x58,0x07,0x8D,0x4D,0x4A,0x9C,0xA1, + + 0x0A,0x8A,0xDF,0x59,0x41,0xF7,0x52,0x01,0x26,0x29,0x60,0x18,0x03,0xA5,0x43,0xD4, + + 0x76,0x98,0xD5,0xFF,0x14,0x1B,0x56,0x19,0x8C,0xD8,0xC6,0x5F,0x04,0xB6,0xC2,0xAD, + + 0x2D,0xF8,0x73,0x0A,0x34,0x4D,0x3A,0xD4,0xCD,0x52,0x59,0x40,0xFC,0x71,0x2F,0x45, + + 0xCE,0x9D,0x19,0xA1,0x41,0xFB,0xB9,0x58,0xEF,0xF1,0x86,0x99,0x9A,0xE9,0xDD,0x89, + + 0xA4,0xD5,0x10,0x52,0xBA,0x9A,0xCC,0x49,0x40,0x51,0x92,0xA9,0x68,0x9E,0x3A,0xE9, + + 0x23,0xFE,0xAB,0xA0,0x41,0xB8,0x84,0xD9,0xAC,0x9B,0x50,0x51,0x7D,0xE1,0xD2,0x80, + + 0xE7,0xD8,0x9E,0x24,0xD7,0xF8,0x77,0x95,0x12,0x23,0xCF,0xF1,0xDD,0x79,0x45,0x05, + + 0x9A,0x43,0xA8,0xD9,0x9E,0xAE,0xAA,0x00,0x9A,0x6B,0xED,0x04,0xC6,0x29,0x4E,0x91, + + 0x67,0xFA,0xA1,0xC9,0x9D,0xFE,0xCC,0x4E,0x19,0x43,0xDC,0xE0,0x5D,0x7B,0x56,0xD9, + + 0x30,0xAB,0x97,0xFB,0x01,0x9F,0x44,0x71,0xEE,0x7F,0x87,0xCD,0x8F,0x60,0xA1,0xE2, + + 0xF9,0x85,0xEE,0xE6,0x87,0xAD,0x5D,0x8E,0x40,0xF1,0x24,0x46,0xEF,0x21,0x70,0x22, + + 0xD8,0x14,0x71,0x66,0x80,0x1E,0xB7,0x6E,0x98,0xDE,0xE5,0x3C,0xF4,0x3E,0x12,0xFB, + + 0x35,0xD6,0xAE,0xEA,0x71,0xBE,0x2A,0x2E,0x63,0xC6,0x29,0xCA,0xC0,0x2F,0x71,0x1E, + + 0x22,0x86,0x19,0x7A,0x4F,0x8C,0x27,0xD3,0x5C,0x7C,0x98,0x53,0x4C,0x7C,0x56,0x46, + + 0xE9,0x40,0xC0,0x5B,0x96,0x8B,0x9F,0xEA,0xC0,0x58,0xFE,0xD4,0x8F,0x6B,0x36,0x57, + + 0x27,0x0B,0x63,0xBC,0x17,0xF9,0xEC,0x03,0x73,0x4A,0x98,0x07,0x6A,0xE2,0x7F,0xA3, + + 0xE8,0x62,0x65,0x2A,0x47,0x7B,0xED,0x12,0xAE,0x49,0x65,0x1A,0x71,0x62,0xED,0x93, + + 0x07,0x18,0x65,0xD0,0x46,0x45,0x39,0x3A,0x6E,0x05,0x5D,0x78,0x32,0xC8,0x15,0x52, + + 0x3A,0xA9,0xFA,0x62,0xCE,0x60,0x4B,0xA0,0xB5,0xB9,0x02,0x56,0xBF,0x78,0x72,0x2A, + + 0x79,0xB5,0xF2,0x76,0xCB,0x81,0x25,0x9D,0xB2,0xD4,0x60,0x34,0xA4,0xA6,0x7B,0xF2, + + 0x31,0xFE,0xFB,0x66,0x42,0x62,0xEC,0x57,0xE6,0x95,0xAC,0xDB,0xC8,0xB7,0x5D,0xFB, + + 0x7A,0x76,0xF3,0x39,0x28,0x22,0xCF,0xC3,0x74,0x28,0x0B,0x47,0x7A,0x0E,0x78,0xCF, + + 0x29,0x4E,0xAB,0xA7,0xE5,0x42,0x92,0xEC,0x6E,0x22,0xCF,0xEE,0x93,0xA5,0x4D,0x7F, + + 0xA7,0x6B,0xDC,0xC2,0x18,0x94,0x4B,0xF0,0xEE,0xEB,0xA2,0xFE,0x92,0xB8,0x19,0x48, + + 0x04,0x05,0xFD,0x79,0x44,0x83,0x0A,0x58,0x6F,0xE8,0xAB,0x4A,0xB9,0x91,0x32,0xA9, + + 0x83,0x69,0xF5,0x5B,0x6F,0x4B,0xCD,0x39,0xC7,0x0D,0x6C,0x55,0x2F,0x8E,0x7C,0x88, + + 0x4B,0x54,0xFF,0x4E,0x9B,0x71,0xC0,0xEB,0x62,0xBE,0xBF,0x20,0x38,0xEC,0xB7,0x35, + + 0xD6,0xAD,0xF3,0x9C,0xD4,0xEE,0x14,0xA5,0x90,0x27,0x9A,0xEE,0x90,0x1A,0x05,0xFE, + + 0xDC,0xED,0x3F,0x7F,0xA0,0xFF,0x13,0x2E,0x59,0x04,0x55,0xB4,0x21,0x30,0xD9,0xCA, + + 0x70,0x70,0x8C,0xE3,0x4E,0x72,0x66,0xDA,0x77,0x6C,0xA7,0x32,0x5D,0xDF,0x5C,0x01, + + 0x24,0x56,0x79,0x56,0x26,0x69,0xF8,0x08,0x40,0x19,0xEB,0x76,0x91,0xE9,0x88,0x44, + + 0x10,0x54,0x20,0xA7,0xB7,0xB3,0x3A,0xD9,0x60,0x35,0x85,0xC1,0xD6,0x8A,0xC3,0x29, + + 0xC2,0x54,0xA7,0xC5,0xB3,0x1C,0x33,0xCD,0xF0,0x1B,0xB7,0xE4,0xF3,0x07,0x8D,0x54, + + 0xE5,0x0C,0x4C,0xA6,0x3F,0xB1,0x9D,0x74,0xB5,0x15,0x71,0x67,0x73,0x7F,0x2D,0xDB, + + 0xAC,0x7B,0xBE,0x76,0x94,0x35,0x91,0x62,0xC9,0xD5,0x32,0xFF,0xDB,0xD4,0xEF,0xE2, + + 0xB3,0xB4,0x3A,0xFE,0xC6,0x78,0xE3,0x9C,0x02,0x56,0xB7,0x5E,0xD5,0xD5,0x29,0x8F, + + 0x36,0xA7,0xF8,0xAA,0x19,0xE5,0x3A,0x47,0x09,0xC6,0x33,0xE7,0x31,0x3E,0xAF,0x13, + + 0xA8,0x8B,0x37,0x67,0xA9,0x76,0x5F,0xC6,0x95,0xA4,0x3B,0xEE,0x5A,0xD7,0x53,0x4C, + + 0x24,0xCE,0xC6,0x8C,0x7F,0x97,0x96,0xDF,0x96,0x4D,0xD4,0x1C,0xFE,0x33,0x8D,0x29, + + 0x16,0x3D,0xCA,0x22,0xDA,0x5E,0x1B,0xE6,0x03,0xA9,0xD6,0x0F,0xF7,0xD0,0x1E,0xF4, + + 0xAC,0x7C,0xDA,0xCC,0x47,0xBF,0xE4,0xDC,0xEC,0x84,0x47,0x92,0xFC,0x7C,0x16,0xEC, + + 0xC8,0x3F,0xAF,0x8E,0xDE,0x30,0xCD,0x7D,0xE1,0xE2,0x49,0x1F,0x57,0xD2,0x83,0xE0, + + 0xE4,0x5F,0x27,0x7C,0x99,0xC2,0xCD,0xA2,0x8B,0xA0,0x8F,0xC4,0xF8,0x3D,0x50,0x20, + + 0xD8,0x2D,0x13,0x93,0xE2,0x5C,0x5D,0xDD,0x19,0xDF,0x28,0x4C,0xF2,0xF1,0x14,0xE1, + + 0x39,0x76,0xDA,0x7C,0x9A,0x1D,0x54,0x63,0x84,0xBF,0xC9,0x00,0x29,0xED,0x51,0x2F, + + 0x5C,0xB0,0x6D,0xE8,0x06,0x8C,0x07,0x41,0x7E,0x9C,0x86,0xD1,0xC5,0x3E,0x1E,0x44, + + 0x96,0xE0,0xB9,0x42,0xC3,0xC8,0xB4,0xF6,0xCB,0xDF,0x30,0x73,0xB5,0x30,0x8C,0x3A, + + 0x26,0x78,0x95,0xA9,0x98,0x18,0x39,0x14,0x8D,0x24,0xD6,0xD4,0xAB,0xB4,0x5B,0xA6, + + 0xE5,0xC6,0x25,0x19,0x98,0xB8,0xE5,0x05,0x0C,0xD7,0xE7,0x78,0xB2,0xE0,0xDD,0x74, + + 0x2B,0x83,0x0E,0x2D,0x41,0xAD,0x31,0x76,0xC1,0xA5,0x4A,0x5E,0xD1,0x07,0xD9,0x78, + + 0x7E,0x17,0x32,0x64,0x3D,0x58,0xA2,0xC2,0x5E,0x35,0x4A,0x26,0xA1,0xA7,0x7C,0xF8, + + 0xF6,0x04,0x11,0xBB,0xEA,0x14,0xC1,0x41,0x63,0x76,0x1E,0xDC,0xDE,0x8D,0x9A,0x39, + + 0xF4,0x56,0x1C,0x48,0xB2,0x55,0xA4,0xD4,0x39,0xA9,0x23,0x05,0x58,0x4E,0x78,0xE1, + + 0xA9,0x20,0x7F,0xE4,0x6C,0xC8,0x00,0x9E,0x3E,0xF7,0xD3,0x39,0xDB,0x4B,0x8D,0x54, + + 0x62,0x78,0xAB,0x3D,0x27,0x25,0xB0,0xAD,0x7D,0x9D,0x88,0xEA,0x1C,0x4F,0xFB,0xDE, + + 0x46,0xAB,0x7C,0x38,0xE0,0x2B,0xC2,0xE9,0x77,0xC5,0x80,0x0D,0x37,0x6B,0x72,0x51, + + 0xB6,0x3A,0xE7,0x2F,0x99,0xB5,0xCB,0xF8,0xFA,0xDC,0x5F,0x1C,0xBA,0x68,0x55,0x36, + + 0xEE,0xAF,0x6F,0x1F,0x8A,0xC1,0xFF,0xFF,0xC1,0x1D,0xFF,0xBF,0xC7,0x83,0x5A,0x84, + + 0xD1,0xE6,0xDB,0x8E,0x91,0x6F,0x8F,0x07,0x93,0x6D,0x10,0xEC,0xBD,0xB4,0x17,0x19, + + 0xD6,0x61,0x96,0x11,0xC6,0x3A,0x17,0xF8,0x4B,0xCD,0xD4,0xB0,0x94,0x97,0xDE,0xF8, + + 0x32,0x2D,0xA4,0xE1,0x4B,0xF3,0xE1,0x58,0x35,0xB1,0x9C,0x83,0x77,0x96,0x43,0x71, + + 0x62,0x1E,0xA9,0x10,0x4E,0x38,0x7D,0x64,0xA9,0xA5,0x45,0xBF,0x96,0xD3,0x9C,0x3E, + + 0xB7,0x6F,0x50,0x98,0x95,0xB2,0xC3,0xCE,0x92,0xE5,0xE5,0x04,0x8B,0xB6,0x93,0x56, + + 0x78,0x83,0xE7,0x3E,0x13,0xB3,0xC3,0xA9,0xB6,0x08,0x3C,0x72,0x71,0xB7,0x5B,0x2E, + + 0x51,0x2D,0xCB,0xCD,0xB0,0x94,0xB5,0x3F,0xFC,0x6A,0xB5,0x3E,0x1D,0x92,0xB6,0x98, + + 0xD8,0x3A,0xC3,0x92,0xB1,0xD5,0x56,0x77,0xED,0x18,0x3D,0xE2,0xC4,0x16,0x8D,0x65, + + 0xCD,0x24,0x26,0x09,0xCB,0x33,0x0D,0x24,0xDD,0xEE,0x52,0x48,0x6C,0x73,0x1F,0x9C, + + 0x09,0x8E,0x96,0x74,0x91,0xB4,0x41,0xC0,0xFB,0x46,0xE4,0xBB,0xF3,0xB6,0xDE,0xF9, + + 0x7D,0xA5,0x23,0x08,0x43,0xFB,0x3F,0xA7,0x15,0xAC,0x37,0x28,0x5B,0xEA,0x2F,0xD8, + + 0x17,0x9B,0xD2,0xB8,0x1C,0xE4,0x06,0x30,0x5E,0x2B,0xE5,0xAF,0xD2,0x7E,0xBB,0x34, + + 0x55,0x63,0x74,0x26,0x06,0xBA,0xDB,0x95,0xF3,0x83,0x4E,0xFE,0xD9,0xBD,0x47,0x27, + + 0x33,0xE6,0x7C,0x36,0x43,0xF0,0x7F,0x9C,0x90,0xB1,0x81,0x7A,0x28,0xCF,0xA7,0x16, + + 0x3C,0x45,0xC9,0x29,0xB8,0xDC,0x2E,0xC2,0x4B,0x01,0xCF,0x15,0x52,0xF3,0x4F,0x22, + + 0x50,0xDD,0x10,0xD7,0x1A,0xB9,0x26,0x5B,0xE9,0x9D,0x6F,0xFF,0xFF,0xFF,0x3A,0xF3, + + 0x74,0xFD,0xC0,0x18,0x9D,0xA6,0x72,0x20,0x41,0x00,0x16,0x2C,0xF5,0xBF,0xB7,0x60, + + 0x00,0x08,0xC0,0x15,0x35,0x8C,0x0F,0xB2,0x88,0xA2,0x74,0x10,0xA4,0x90,0x1B,0x75, + + 0xA1,0x10,0x89,0x7B,0x52,0x22,0xFD,0x05,0x21,0xED,0xF3,0x20,0xD1,0x22,0xCD,0x62, + + 0xF4,0x84,0x10,0xA7,0x95,0xD3,0x21,0xCE,0x28,0xF2,0x66,0x47,0xFF,0xBC,0xA7,0x80, + + 0x06,0xD0,0x39,0x83,0x8C,0x2E,0xEA,0x02,0x9C,0x42,0x69,0xFE,0x53,0x45,0x08,0x10, + + 0x05,0x27,0x8C,0x58,0x60,0x25,0x50,0x79,0xBE,0xC3,0x98,0xC9,0x55,0x67,0x56,0x32, + + 0xFA,0x44,0x41,0x06,0xAB,0x64,0x78,0x12,0x63,0x90,0xB1,0x36,0xBC,0x24,0xC9,0xBE, + + 0xEB,0x0A,0x96,0x50,0x95,0x67,0x71,0x0F,0x01,0x47,0x8F,0x45,0x98,0xD8,0x06,0x0D, + + 0xF6,0xF1,0xDB,0x24,0xBD,0x6A,0xBE,0xB7,0x49,0x08,0x7E,0x53,0x9A,0xC8,0x0E,0x78, + + 0x41,0xFE,0x82,0x62,0xDB,0x29,0xDA,0xB8,0x48,0xE6,0xBA,0x7C,0x5D,0x07,0x06,0x7A, + + 0xFD,0x83,0xC3,0x11,0x15,0xAC,0x3F,0x40,0x21,0xFB,0x28,0x5D,0x58,0xEC,0x94,0x1D, + + 0x06,0x4A,0xC3,0x1C,0xBD,0x86,0xBF,0x1E,0x68,0xB4,0x0B,0xB9,0x88,0x5C,0xBD,0x26, + + 0x24,0xD3,0xAD,0x23,0x1C,0x2E,0x1A,0x69,0x6E,0x0E,0xE8,0xD4,0xA9,0xC7,0xBC,0xDC, + + 0x09,0x13,0x5D,0xA3,0xEA,0xFE,0x0C,0x83,0x20,0x42,0x9A,0xBC,0x5D,0x6F,0x1C,0x4C, + + 0x8C,0x6C,0x8C,0xC9,0x98,0x8D,0x17,0x63,0xCC,0x4C,0xAB,0x69,0x27,0x2C,0x03,0xC9, + + 0x8D,0x0D,0x0B,0xDD,0x23,0xB4,0xDB,0x06,0xCD,0x4D,0x1D,0x3A,0x01,0xB2,0x52,0x74, + + 0x38,0xE5,0xC4,0x5D,0xDB,0x54,0x84,0xB1,0x18,0x54,0x78,0x36,0xE1,0xAD,0x0F,0x21, + + 0xA9,0x61,0xCC,0x58,0x37,0xE1,0xA4,0xB4,0xEE,0x10,0xA2,0xD8,0x10,0x31,0xDB,0x8C, + + 0xC6,0x49,0x31,0xE7,0x4F,0x70,0x3F,0xD2,0x81,0x53,0xF7,0xA5,0xF3,0xB2,0xBB,0x97, + + 0xBD,0x0E,0xD3,0xD5,0xB5,0x5D,0x44,0x9C,0x44,0x3D,0x85,0xB1,0x7E,0x32,0x84,0x40, + + 0x4F,0x56,0x28,0x56,0x36,0x3E,0x50,0x20,0x66,0x38,0x38,0x76,0x73,0xE9,0x93,0xAE, + + 0xE1,0x15,0xCE,0x94,0x37,0x5B,0xA3,0x74,0x61,0x5D,0x30,0xD0,0x75,0x77,0x05,0x54, + + 0x2D,0x90,0x47,0xCD,0x17,0xB0,0xC5,0x09,0x86,0x1B,0xB7,0xE5,0xF3,0x36,0x05,0xD5, + + 0x2A,0x2E,0x5D,0x12,0x31,0x0B,0x9D,0x71,0x89,0xE8,0x4F,0x32,0xF5,0x35,0xA2,0x90, + + 0xA4,0x9C,0x16,0xFF,0x41,0xB1,0x74,0xBC,0x6B,0xE8,0xCF,0x8D,0xDD,0x3A,0x30,0xE8, + + 0x09,0x34,0x93,0x18,0x3B,0x63,0x9C,0x78,0x2D,0xA4,0x8F,0x38,0x7B,0xE3,0x07,0x89, + + 0xFC,0x23,0x03,0xED,0xBC,0x16,0x16,0xCF,0x17,0xDC,0xD7,0xB1,0x07,0x61,0x8F,0x5E, + + 0x8D,0x00,0xF1,0x9A,0x15,0x36,0xB3,0x2B,0xE5,0x51,0x5F,0x3D,0x93,0xC4,0xAA,0xEC, + + 0xC3,0x75,0xFC,0xAE,0xF8,0x69,0x0F,0xC9,0xCF,0x83,0x88,0xAC,0x36,0x3E,0xDE,0x30, + + 0x17,0x50,0x49,0x34,0x57,0x70,0x1A,0xFC,0xE6,0xEB,0x32,0xD8,0x7D,0x7F,0x57,0xBA, + + 0xAE,0x70,0x07,0x5D,0xCE,0x34,0x97,0x69,0xEB,0x1C,0xD9,0xE9,0xFB,0x3E,0xA3,0x4B, + + 0xA7,0x15,0x30,0x59,0xB9,0x0E,0xE6,0x63,0xE8,0x5D,0x41,0x79,0xF9,0x9D,0x9F,0x86, + + 0x40,0xF0,0xBF,0x76,0x10,0xAB,0xF0,0xA2,0x51,0x82,0xF8,0x27,0x70,0xA2,0x16,0x52, + + 0x55,0xE5,0x90,0xE9,0x26,0x60,0x28,0xF2,0x03,0x6C,0xBC,0x56,0x51,0xCD,0xA4,0x69, + + 0xF2,0x32,0xB2,0x85,0x5D,0xD1,0xB2,0x4E,0x49,0x44,0xFA,0x19,0x29,0x6B,0xE2,0x0B, + + 0x0E,0xEA,0x11,0xE9,0xE8,0xA8,0x2E,0xB7,0xC7,0x79,0xA4,0xF0,0xF1,0x4E,0xE9,0xB1, + + 0x8A,0xE1,0xE0,0xBF,0x1A,0xE6,0x38,0xE6,0x44,0x26,0x93,0x26,0x52,0xC8,0x47,0xD6, + + 0x58,0xD1,0xA8,0x8F,0x11,0xA7,0x1B,0x32,0x5B,0xAB,0xE2,0x56,0xF6,0xA5,0x59,0xBC, + + 0x5F,0xFB,0x61,0x9C,0x23,0xE4,0x8E,0xA4,0x1C,0x1B,0xEC,0xA0,0xF2,0x4B,0xD6,0x14, + + 0x45,0xC4,0xBF,0x10,0x49,0x3A,0xC6,0xE1,0xC6,0x1A,0x15,0x53,0xA8,0xC7,0x23,0xC2, + + 0x65,0x38,0xA5,0x49,0x9E,0x94,0x4C,0x2D,0xE0,0xC5,0xA8,0x0E,0xBD,0xA8,0x35,0x13, + + 0x26,0x70,0x6A,0x8E,0x69,0xA3,0xFA,0x26,0x70,0xA5,0xA2,0xAE,0x6E,0x28,0x37,0x7F, + + 0x9C,0x26,0x99,0x6D,0x5E,0x51,0xCC,0xAF,0xCE,0x23,0x5F,0x0B,0x35,0x53,0xAA,0xDF, + + 0xA2,0x1B,0xAF,0x3B,0x68,0xE9,0x59,0x1B,0xCE,0xEB,0x03,0xBB,0xDF,0x3B,0x2A,0x4E, + + 0x81,0xCD,0x01,0x0E,0x1A,0x80,0x10,0x6A,0x4F,0x8C,0x32,0x37,0x7A,0xE4,0x52,0xC8, + + 0x9E,0xCF,0xFA,0x28,0x1B,0xC3,0xD6,0xE8,0x47,0xC5,0xC2,0x81,0x59,0xEF,0x8F,0xC9, + + 0x17,0x03,0xFE,0x6B,0x77,0xC7,0x9F,0x4F,0x27,0x77,0x37,0xED,0x17,0x2D,0x29,0x67, + + 0x8C,0x8D,0x7B,0xB7,0xA3,0xE2,0xF9,0x08,0xFA,0x49,0xF3,0xFB,0xDD,0x4C,0xB1,0xE4, + + 0xC6,0xD0,0x5B,0x04,0xFD,0x43,0xB4,0x65,0x40,0x7D,0x74,0x7A,0x6E,0x9E,0xC0,0x00, + + 0x29,0x9B,0x6C,0x8A,0x5E,0xBB,0x7C,0xC7,0x63,0xD3,0xDE,0xB6,0x74,0xB1,0xA6,0x8B, + + 0x01,0x6D,0x9D,0x03,0xB6,0x08,0xAC,0xC3,0xB0,0x90,0x0A,0x35,0x8B,0x2F,0xAF,0xEC, + + 0x28,0x15,0x2D,0xD4,0x8C,0xDD,0xFB,0xF4,0x27,0xD7,0x51,0x93,0xC6,0x42,0xE6,0xCA, + + 0x83,0x12,0x48,0x54,0x7D,0x29,0xCF,0x66,0x64,0x6E,0x34,0x67,0x54,0xFC,0xFC,0x50, + + 0xB6,0xE5,0x00,0xF2,0xB5,0xA9,0x1E,0x3E,0x96,0x53,0xC2,0x93,0x57,0x98,0x67,0x83, + + 0xA2,0xF8,0x87,0xC7,0xB5,0xF6,0xB5,0x63,0x8C,0xB8,0x75,0xA4,0xCF,0xB7,0x55,0x14, + + 0x65,0x17,0xD7,0xB5,0xD7,0x1D,0x7D,0x33,0xEF,0x96,0x7D,0x30,0xD3,0x0C,0x22,0x4A, + + 0x28,0xF6,0x36,0xFD,0x5D,0xB9,0x8D,0x38,0x6C,0xD2,0x0E,0x5D,0x04,0xBA,0x14,0xF8, + + 0xEF,0x9C,0xF7,0xB3,0x98,0x46,0xA7,0x08,0x65,0x29,0x59,0xFE,0x69,0xE2,0xB7,0x4C, + + 0x2E,0x86,0x1B,0x8B,0x33,0xFB,0xB7,0x6C,0xC8,0x77,0x73,0xE1,0x0B,0x94,0x4F,0xD1, + + 0x00,0x96,0x43,0x0D,0xB1,0xB1,0x66,0x9A,0x48,0x99,0xAE,0xD9,0x02,0x26,0x2E,0xDF, + + 0x82,0x91,0x99,0x4C,0xAF,0xD1,0x48,0x93,0x8C,0xFC,0xF2,0x6A,0x27,0xBD,0xFE,0x5E, + + 0x29,0x2E,0x2E,0x5E,0x4D,0xFF,0x86,0x12,0x47,0x90,0x2C,0x9C,0x80,0xBF,0x05,0xDB, + + 0xAD,0xBE,0xDF,0x7F,0xBE,0x21,0x75,0x03,0x96,0x23,0xFF,0x6A,0x7C,0x52,0x90,0x1C, + + 0x2D,0x83,0xAB,0xDB,0x32,0x09,0x82,0x13,0x97,0x92,0xBF,0xBF,0xF9,0xFD,0x56,0x47, + + 0xC2,0x0C,0xF2,0x00,0x08,0x62,0x0D,0xE7,0x64,0xED,0xBC,0x4D,0x63,0x81,0x88,0xD7, + + 0x25,0x43,0x80,0x10,0x9E,0x60,0xF4,0x14,0xA0,0xBE,0x38,0x46,0x33,0x7D,0x3A,0x93, + + 0x80,0x08,0x45,0x4B,0x1F,0xD4,0x8D,0x01,0x21,0x02,0x29,0x15,0xC8,0xCD,0x49,0x25, + + 0x0C,0x41,0x25,0x91,0x97,0xE8,0xD9,0x68,0xE5,0x4B,0xE7,0x32,0x70,0x9C,0xC2,0x00, + + 0x06,0x6A,0xFA,0xAC,0x29,0xEB,0x8F,0x44,0x29,0xA5,0x28,0x23,0x90,0xE4,0x11,0x78, + + 0xA6,0xFA,0x91,0xC1,0xB6,0xA5,0xA7,0x9D,0x2F,0xFE,0x87,0x16,0x10,0x66,0xD1,0x33, + + 0x69,0xB7,0x98,0x65,0x37,0xD9,0xAE,0x89,0xFD,0x8B,0xD9,0x45,0x50,0x62,0x77,0x68, + + 0x0E,0xF1,0x31,0x92,0x4D,0x2D,0x1D,0xF5,0xF9,0x48,0x26,0xCA,0xD1,0x57,0xC2,0xF9, + + 0x0B,0xA8,0x8A,0x08,0x91,0x11,0xD6,0xAA,0x81,0x3B,0x3E,0xBE,0x18,0x60,0xCB,0x9C, + + 0x0B,0xE0,0x75,0x98,0x50,0x69,0x55,0xBC,0x4B,0xEA,0x99,0xFC,0x5D,0x45,0xC3,0x58, + + 0x8C,0x00,0xE3,0x5E,0xFE,0x27,0x2B,0xD6,0xCE,0x48,0x92,0x52,0x57,0xEC,0xCB,0x99, + + 0xC7,0x65,0x83,0x19,0x10,0x12,0xF7,0xAB,0xC8,0xD6,0x86,0xB9,0xDB,0x82,0x0A,0x79, + + 0xE3,0xBD,0x42,0x2F,0xF8,0xA1,0xF5,0x5C,0x79,0x97,0xEC,0xB8,0x7B,0xCC,0x0A,0xCD, + + 0xF4,0x82,0x6D,0x69,0xCF,0xEC,0x60,0x83,0x4D,0x7E,0xDD,0x0E,0x68,0xBD,0x83,0xC9, + + 0x8B,0x4C,0x3B,0xC9,0x91,0xE1,0xE9,0x96,0xF5,0xAF,0x6B,0xFD,0x7D,0x6A,0xC0,0x39, + + 0x8D,0xF2,0xF1,0xA2,0xA8,0xFF,0x23,0x66,0xA3,0xE2,0x23,0x95,0x99,0x22,0x94,0xC0, + + 0x2E,0x16,0xC4,0x18,0xBD,0xC6,0x94,0xE3,0x59,0x56,0x1D,0x20,0x72,0x92,0xCC,0x10, + + 0x7A,0x53,0x1C,0x16,0xA0,0x9C,0xDC,0xE1,0x65,0x5B,0xDC,0x09,0x77,0x73,0x2B,0x2C, + + 0x01,0xED,0xBE,0x1B,0xB3,0x12,0x3B,0x0C,0x41,0xAD,0x55,0x24,0xFE,0x30,0x4D,0x20, + + 0x2C,0x95,0xB5,0x6B,0x1D,0x3E,0x9D,0xF2,0xD8,0x3D,0xCB,0x4E,0xF7,0xA9,0x53,0xA6, + + 0xC9,0xA5,0x43,0xD6,0xD9,0x95,0x1C,0xE4,0xBE,0xB5,0x79,0xFB,0x1A,0x6F,0x16,0xDC, + + 0x4B,0xA4,0x8E,0xA7,0x5B,0x2E,0x16,0x4D,0xEE,0xF3,0xC4,0xE0,0x97,0xD4,0x65,0xC5, + + 0x76,0xA7,0x9C,0x39,0xD7,0x3F,0x6B,0xC9,0xEC,0x34,0x08,0x93,0x9B,0xD7,0x33,0xD7, + + 0x42,0x94,0x10,0xA1,0x92,0x87,0xCB,0xB1,0xC9,0x4C,0xE7,0x1D,0xF7,0x38,0x2E,0xF2, + + 0xEA,0x18,0x6A,0x08,0x3A,0xD6,0x86,0xDB,0x09,0x59,0xD3,0x28,0x76,0x3D,0xCE,0x18, + + 0x3C,0x5B,0xAF,0x18,0x3B,0x9A,0xC1,0xB9,0x6F,0xE1,0xA6,0x46,0xF6,0x84,0x4F,0x8D, + + 0x27,0x5B,0x8F,0x05,0xBE,0x18,0x2F,0xAD,0x67,0x1B,0xFF,0xCF,0x03,0x74,0x4F,0x28, + + 0xAF,0x79,0xF0,0x6C,0x1A,0x7B,0x8F,0x79,0xE1,0x1A,0xF8,0xC3,0x2B,0x71,0x6F,0x3B, + + 0xA6,0x11,0x9F,0xD0,0x59,0x1C,0x14,0x8E,0x95,0x47,0xE8,0x38,0x5B,0x4C,0x4A,0xFC, + + 0x2D,0x1F,0xD8,0xAE,0x08,0x7D,0x07,0x61,0xCE,0xE2,0x87,0xF8,0xDE,0x8C,0xEB,0x5B, + + 0xBA,0x14,0x3F,0x25,0x85,0xFB,0x77,0x9F,0x34,0x81,0x8E,0xEE,0x5F,0x81,0xC6,0x5D, + + 0xA9,0xFD,0x37,0x35,0xE5,0x72,0xF3,0x87,0x31,0xF0,0x27,0x7F,0x66,0xBA,0xE0,0x83, + + 0x2E,0x8A,0x30,0xEE,0x57,0xED,0x52,0x22,0x45,0x80,0x70,0xA6,0x1A,0xA2,0x06,0xA6, + + 0xA4,0x7E,0x38,0xFE,0x29,0xEC,0xB1,0xB6,0x47,0x62,0xF8,0xEF,0x53,0xE3,0xA1,0x40, + + 0xBD,0x84,0xB1,0x75,0x90,0xCC,0xDD,0x07,0xC2,0xC0,0xF5,0xA2,0x75,0xA0,0xE9,0x42, + + 0x81,0x8B,0x45,0x85,0xDD,0xA9,0xF9,0xB6,0xF2,0xCB,0xEF,0xCC,0xD3,0x39,0xEB,0x22, + + 0x52,0x29,0x58,0x26,0x5A,0xBF,0x66,0x90,0x67,0xA4,0xE6,0x52,0xA9,0xA6,0x97,0xA0, + + 0x52,0x8C,0x7A,0xA9,0xEA,0xCB,0xA3,0x04,0x2C,0xCA,0x63,0x14,0xA8,0x48,0x76,0xC7, + + 0x84,0x56,0xA1,0x21,0x1B,0x00,0x57,0x52,0xA2,0xDD,0xBD,0x62,0x54,0x9A,0x6B,0x2C, + + 0xD2,0x8C,0x8B,0x53,0x96,0x97,0xFE,0x41,0xF4,0x5C,0x6F,0xB0,0x09,0xEF,0xA2,0x49, + + 0x35,0xE6,0x20,0x06,0xB9,0x2E,0x34,0xAE,0x05,0x88,0xF7,0xD6,0x5C,0x53,0x92,0x1E, + + 0x82,0xC8,0x3A,0x9C,0x84,0x24,0xB3,0xBE,0x4F,0x2B,0x01,0x7C,0xFC,0x14,0xB3,0x78, + + 0xA1,0x8B,0xA1,0x4F,0x98,0xC4,0x3B,0xA2,0xCA,0xC8,0x37,0xAB,0xD8,0x96,0x11,0xE4, + + 0x8B,0x33,0x93,0x2F,0xAD,0xE9,0xFB,0xBB,0x0A,0xC3,0x93,0x5D,0xDB,0xE9,0xE2,0x8D, + + 0x2A,0x2C,0x5D,0xDC,0xE9,0xA6,0xE0,0x95,0x48,0x96,0x76,0xEA,0x61,0x58,0xAE,0x14, + + 0xF8,0xE1,0x12,0xB6,0x1D,0x00,0x23,0xFB,0xEA,0x32,0x3C,0x96,0x0B,0xA0,0x74,0x49, + + 0x05,0xCC,0xE1,0x3D,0xAD,0x7E,0x7B,0x15,0x25,0xDF,0xAA,0x86,0x3B,0xE5,0x8C,0x9B, + + 0xC3,0x94,0x79,0xB9,0xF4,0xA0,0x45,0x4E,0x42,0x39,0xA3,0xFB,0xD9,0xB5,0xFD,0xC2, + + 0x6C,0xD2,0x1B,0x02,0x36,0xBA,0x54,0xE9,0x85,0xDD,0x34,0xE5,0x4D,0x9E,0xEC,0x12, + + 0x30,0xD3,0xCB,0xE8,0xE7,0xBB,0xFF,0x49,0xE8,0x27,0xAC,0xC5,0x71,0x9F,0x2B,0x87, + + 0xA7,0xA0,0x65,0x07,0xFA,0xDE,0x27,0xE3,0xE2,0xD0,0x25,0x4F,0xB7,0xBF,0x6D,0x06, + + 0xA3,0x91,0xA9,0xB3,0xB3,0x30,0x06,0x2D,0xE6,0xF3,0x2D,0xC4,0xC0,0x7A,0xC8,0x50, + + 0x06,0x49,0xF2,0xF3,0xC9,0xD8,0x62,0x91,0x02,0xB8,0xCC,0x19,0x45,0xB4,0xFC,0x95, + + 0x03,0x3A,0x33,0x29,0xDE,0xA4,0x25,0x1B,0x23,0x18,0xFA,0x84,0xD0,0xB7,0x07,0xC3, + + 0xA5,0xB6,0x83,0xF2,0xB5,0xF6,0x13,0xD2,0xE5,0x44,0x4D,0xA0,0x28,0xFE,0xC9,0xF4, + + 0x06,0x28,0x01,0x48,0xB6,0x74,0x1F,0xF2,0xE6,0x55,0x36,0xF0,0xD3,0x99,0xCC,0xCA, + + 0x28,0xB4,0xAD,0x31,0x34,0xF8,0xA6,0x2E,0x6E,0x4B,0x32,0xCE,0x6C,0x55,0x16,0x65, + + 0x2B,0x31,0xEC,0xFC,0xC2,0xFB,0x7E,0x6C,0x6E,0xF9,0x3E,0x79,0x59,0xE2,0x3A,0x09, + + 0x65,0xE9,0x4B,0xAB,0xBA,0x98,0xF7,0x2B,0xA2,0x98,0x2E,0xDF,0xF8,0xF3,0xAF,0xDB, + + 0xA9,0xB7,0xA1,0x9B,0xBE,0xFB,0xAF,0x53,0x9D,0x96,0x2A,0xD9,0x72,0x7D,0xA6,0x17, + + 0xBA,0x61,0xBF,0xD2,0x9B,0xB7,0x48,0xDE,0x12,0x23,0xB6,0xD1,0x76,0x90,0x56,0x21, + + 0x29,0x67,0xD4,0x36,0x3B,0xF2,0xB5,0xFD,0x8E,0xC6,0x58,0xFF,0x7F,0xF3,0xF7,0x38, + + 0x22,0xFB,0x61,0xA9,0xFE,0xF1,0xB7,0x2A,0xE2,0x9C,0xDF,0x2D,0xFE,0x55,0xCE,0xA4, + + 0x20,0x19,0xB6,0xC3,0x1A,0x3F,0xB9,0x1D,0x6F,0x5F,0x97,0x79,0x03,0xBE,0x7E,0x06, + + 0xE9,0x0F,0x10,0xBC,0xFB,0x44,0x6B,0xDB,0xF7,0x7F,0x6F,0x03,0xA5,0x6F,0xB3,0xF2, + + 0xAD,0xFC,0x18,0xEF,0x93,0x1D,0x31,0x4A,0xD0,0x7D,0xC1,0x01,0xF4,0x9E,0x53,0x93, + + 0x6B,0x66,0xB9,0xEB,0x3C,0x2F,0x68,0xA5,0xCC,0x4D,0x25,0x5A,0x73,0x23,0x71,0x67, + + 0xE9,0x0E,0x35,0x77,0x66,0x46,0x26,0x7A,0x54,0x9E,0xC7,0xD7,0xD5,0xE6,0xF8,0xDF, + + 0xFD,0x16,0x23,0x60,0xC7,0xB9,0xC0,0xE5,0xBD,0xC9,0xB7,0xE6,0xC3,0x09,0x66,0x6E, + + 0xEA,0xE4,0x58,0xA5,0xB0,0x65,0xA7,0x1E,0x35,0x9A,0x47,0xF6,0x0E,0x2B,0xF9,0xDF, + + 0xA6,0x00,0x6A,0x1A,0x6B,0xDA,0x2A,0x9A,0x7F,0xB7,0xE9,0xFF,0xF6,0xCB,0x31,0x76, + + 0x6A,0x16,0xFB,0x65,0x86,0x88,0x66,0xD8,0x38,0xDA,0x3D,0x51,0x3A,0x24,0x10,0x6F, + + 0xE3,0x4C,0xBA,0xF3,0x3C,0xD7,0xBB,0x67,0xB5,0x34,0x80,0xF3,0xB3,0x2C,0xAE,0x7A, + + 0xFE,0x6C,0xDC,0xEF,0x9D,0xA4,0x24,0x04,0x4F,0xE9,0x0A,0xCD,0xFA,0x29,0x39,0xB9, + + 0x11,0xA5,0xDA,0x20,0x3D,0xAB,0x83,0xD8,0x6B,0x0A,0xAD,0xCF,0xBA,0x76,0x33,0x3D, + + 0x76,0x0D,0xD9,0x4E,0x72,0x4F,0xE4,0x5B,0x3A,0x2E,0xA9,0x0D,0xF9,0xC4,0x3A,0x6F, + + 0xE3,0x3D,0x62,0x3F,0xB9,0xAF,0x03,0x92,0xBF,0x0D,0xC8,0x6E,0x98,0x68,0x32,0x7C, + + 0xD5,0xF2,0x32,0x54,0xF2,0x3C,0x7C,0x54,0xC7,0x0C,0x21,0x03,0x55,0x92,0x3B,0x6E, + + 0x63,0x5F,0x23,0x69,0x73,0xCF,0xAC,0x7A,0xF6,0x0A,0x43,0xD1,0x57,0x0C,0x73,0xC7, + + 0x7C,0x82,0x33,0x79,0x72,0x1E,0x04,0x79,0xF4,0xB0,0x60,0x9F,0x77,0x92,0x12,0xE2, + + 0x40,0x7D,0x95,0x74,0x0E,0xC1,0xAF,0x42,0xCC,0xAD,0xAA,0x1D,0x54,0xFB,0x25,0xB4, + + 0x12,0xF0,0xA2,0x67,0xBD,0x70,0xA4,0x41,0xC2,0x11,0x3C,0xC6,0x13,0x6D,0x7B,0x87, + + 0x41,0x91,0xFB,0x83,0x51,0xB1,0x6D,0x85,0xD3,0x83,0x10,0x94,0xC2,0xDD,0xB5,0x60, + + 0x02,0x53,0xD4,0xA5,0x14,0xCC,0x2F,0x81,0xA4,0xFC,0xE3,0xB2,0x50,0x32,0x7C,0x3E, + + 0x8E,0x19,0x54,0xB7,0x0E,0xC5,0xE0,0x82,0x9D,0xD9,0x79,0x86,0x8D,0x72,0xF3,0x32, + + 0xA1,0x29,0x1F,0xF0,0xBC,0x98,0x4A,0x92,0x03,0xF8,0x3B,0xD0,0x40,0x54,0xD5,0x9E, + + 0x01,0x73,0xBB,0xC3,0x5B,0x67,0x2E,0x1A,0xC6,0x6B,0xFC,0x53,0x53,0x18,0xF1,0xB3, + + 0x5C,0x72,0x19,0xA5,0x33,0xB1,0x23,0xF7,0x02,0xD4,0x65,0x0A,0xC0,0xB6,0x34,0xB8, + + 0x81,0xB7,0x87,0xEA,0xE5,0x37,0xB6,0xDB,0xCB,0xDB,0xA8,0x00,0x13,0x77,0x27,0xBC, + + 0x1A,0xA8,0x27,0xE2,0xAC,0xB4,0x7E,0xF2,0x88,0x54,0xE0,0xBA,0x90,0x76,0xA7,0xFA, + + 0x0B,0x99,0x33,0xF2,0x1B,0x7B,0x73,0x8D,0x65,0xA5,0x17,0x9F,0x98,0x7F,0xB7,0xA8, + + 0x08,0x9A,0xF2,0x77,0x3B,0xD7,0xF8,0x3B,0x78,0x36,0xCD,0x87,0xDD,0x76,0x7E,0xEC, + + 0xD5,0x97,0xE6,0xE8,0x51,0x33,0x7B,0xCC,0xD3,0xFD,0x6E,0xC8,0x49,0x4D,0xEE,0xAA, + + 0x49,0x3A,0xB0,0xDA,0xD2,0x32,0xFE,0x8A,0x09,0x41,0xA1,0x3B,0xA5,0xE0,0x0F,0xF8, + + 0x90,0xB1,0x47,0xFF,0xDA,0x32,0x6F,0xD9,0x03,0xF1,0x6F,0x17,0xEA,0x33,0x31,0xDE, + + 0x0A,0xA0,0x9D,0xE2,0x9F,0x90,0xCF,0x0A,0x67,0xC2,0x3C,0xD9,0x98,0x50,0x0D,0x65, + + 0xA5,0x03,0x30,0x75,0x26,0x0B,0x08,0xD9,0xAD,0x11,0x10,0x55,0xF7,0x63,0x90,0xE3, + + 0xA6,0xC1,0xE8,0xE5,0x91,0x0C,0xEC,0xCC,0xB8,0x60,0xB8,0x29,0x3B,0x4C,0x21,0xFD, + + 0xB7,0x63,0xD9,0x03,0x74,0x23,0x23,0x22,0x3B,0x4F,0xD3,0x03,0xBF,0x21,0x1B,0x23, + + 0x2C,0x2C,0xD1,0xA7,0x29,0xE2,0x01,0xCC,0x30,0xA0,0xEC,0x07,0x2A,0x1C,0x1B,0xB9, + + 0x39,0x24,0x18,0x4E,0xFF,0xF5,0xAB,0x62,0x39,0x44,0x88,0x42,0x25,0xE4,0xEC,0xB0, + + 0xE6,0xFE,0xE9,0x30,0xCA,0xAA,0x51,0x15,0xE6,0x5A,0x55,0x05,0x2B,0x5A,0x98,0xA8, + + 0x35,0xC4,0x19,0x63,0x33,0x59,0xF1,0x67,0x16,0xC0,0xAE,0x76,0xD2,0xA6,0x6B,0xBD, + + 0x3C,0x98,0x5D,0x28,0x34,0xE6,0xCD,0x11,0x3C,0x86,0x55,0x05,0x0D,0x58,0x82,0x79, + + 0xAF,0x0B,0x0E,0xF1,0x9E,0x94,0xC9,0x0E,0x27,0xC7,0x88,0x9E,0xA3,0x37,0x51,0x3D, + + 0xAC,0xC8,0x87,0x79,0xBC,0x7F,0x44,0x3C,0xA4,0xC6,0x01,0x9B,0xAE,0x44,0x0E,0xF8, + + 0x00,0x87,0x99,0x6D,0x42,0xAC,0x31,0x19,0xAC,0x8B,0x0C,0x1E,0x7D,0x55,0x4B,0x48, + + 0xEB,0x86,0x3B,0x20,0xAD,0x0B,0x69,0xA9,0x26,0xAF,0x68,0x06,0x36,0xAF,0xE2,0x5A, + + 0x31,0x8A,0xDC,0xE7,0x75,0xA3,0x8D,0x08,0xBD,0xA9,0xC8,0xFC,0x5E,0x73,0xDE,0x38, + + 0xF0,0xCC,0xD4,0x77,0x63,0x02,0x41,0xE4,0x6B,0xCB,0xFA,0xFA,0x5B,0x53,0x07,0x03, + + 0x2F,0x51,0x63,0x4B,0xD6,0x51,0x4B,0x90,0x41,0x38,0x63,0x96,0x9A,0x75,0x14,0xD9, + + 0x1E,0xE2,0x4B,0x2C,0xAF,0x7C,0xD1,0xCE,0x6E,0x10,0x17,0x5B,0x5D,0x03,0x98,0x71, + + 0xA0,0x1D,0x0E,0xE4,0xCB,0xDC,0x0C,0x3C,0x40,0x0B,0x18,0x23,0x8B,0x9E,0xBA,0xF4, + + 0x4E,0x9E,0x96,0x04,0x35,0x6E,0x11,0x4B,0xC8,0xCA,0x86,0x24,0x75,0xB0,0x77,0xC8, + + 0x80,0x89,0xFF,0x16,0x6A,0x4D,0x1C,0x5E,0x49,0x49,0x0D,0x5C,0x09,0x44,0xAD,0xA1, + + 0xC5,0xBE,0x97,0x6D,0x4E,0xF1,0xAB,0xD5,0x5A,0x92,0x42,0x35,0x6C,0x9E,0xF4,0x85, + + 0xF8,0x6B,0x40,0xA4,0xCD,0xD1,0x0C,0xC5,0x9F,0xDB,0x61,0x15,0xF2,0x79,0x14,0xD6, + + 0xDE,0x10,0xFA,0xEB,0xDC,0xF1,0xD5,0x8C,0xF2,0x58,0x6C,0xC7,0x19,0x5A,0x5E,0x5D, + + 0x51,0x3D,0xDD,0xE3,0xD5,0x26,0xE5,0xAC,0x1B,0xAA,0xA7,0xB0,0x1D,0x92,0x7F,0xD9, + + 0x4C,0xD3,0xD7,0x67,0x26,0x18,0x00,0x19,0xC3,0xD1,0x2B,0x07,0x08,0x54,0x58,0x8C, + + 0xC5,0x97,0x22,0x6C,0xCD,0xF9,0xC9,0xB9,0x54,0x9C,0x8E,0x54,0xD0,0xF5,0x84,0x2F, + + 0x8C,0x46,0xEF,0xF8,0x4B,0xD5,0xAD,0x4B,0xCE,0x99,0x06,0x40,0x6D,0xB4,0x75,0xC0, + + 0x88,0x9C,0x58,0xE9,0xC0,0x45,0x11,0x83,0x60,0x77,0xC8,0x8B,0xCF,0x7B,0x9B,0xF9, + + 0x52,0x16,0x6B,0x61,0x40,0xD9,0xFF,0xAA,0x12,0xD6,0xE6,0x9A,0x02,0x97,0x58,0x28, + + 0x4C,0x9B,0x42,0xAC,0x1A,0xB1,0x5F,0x8D,0xCF,0x23,0x24,0x1D,0x18,0xBD,0x54,0xB8, + + 0xF5,0x9B,0x42,0xFA,0xC4,0xD3,0xCA,0x98,0x9C,0xB8,0x03,0x39,0x86,0x8B,0xF7,0x30, + + 0x2C,0xA2,0x1C,0xE8,0x1F,0x41,0xC3,0x89,0xCA,0xBB,0xCF,0x01,0x52,0xF3,0x42,0xBC, + + 0x0E,0x09,0x8F,0x95,0x5E,0xB2,0x47,0x3C,0x31,0x42,0xC4,0x71,0xDB,0x52,0xD6,0x31, + + 0xA1,0xFF,0x40,0xD0,0xAB,0xFB,0xA8,0x1B,0x34,0xB5,0xAE,0x8C,0xDD,0xD6,0x98,0xE3, + + 0x8D,0x0C,0xB6,0xBD,0xF1,0xA0,0xBF,0x88,0xA8,0xB0,0xC2,0x36,0xC3,0x6B,0x3F,0xB5, + + 0xAE,0xDD,0x81,0xF4,0x33,0x62,0x06,0xA5,0x9F,0x16,0xAA,0x55,0x50,0x7D,0xF6,0x36, + + 0x20,0x42,0x6A,0x91,0x9B,0x3D,0x41,0x38,0x43,0x5F,0x19,0xC8,0xD9,0xCE,0x70,0xB1, + + 0x78,0xD1,0xBA,0xA4,0x56,0xFF,0x90,0xB4,0xF9,0x06,0xE8,0x14,0xE6,0x6D,0x1D,0x23, + + 0x39,0x6B,0x49,0x27,0x3D,0x84,0xFC,0x12,0xA8,0x46,0x83,0x74,0x33,0x9A,0x1F,0xFD, + + 0xA0,0xF2,0x3E,0xB8,0x6D,0x22,0x15,0x57,0xB0,0xE9,0xC3,0x16,0xA6,0xD9,0x2F,0xFC, + + 0x82,0x47,0x1F,0xAA,0x7A,0x64,0xED,0x13,0x28,0x64,0x26,0x0F,0xB1,0x98,0x79,0x2F, + + 0xA9,0xB7,0x42,0x8C,0x72,0xD9,0x97,0x4A,0x4E,0xA2,0x47,0xEB,0x92,0xB9,0x69,0x3C, + + 0x7A,0x09,0xB4,0xB5,0x1F,0x0B,0xB0,0x88,0xE8,0xCE,0xD8,0xCF,0x67,0xC4,0xEF,0x76, + + 0x52,0xD7,0x7C,0x73,0xEA,0xF5,0xA4,0x2B,0x90,0x4C,0x9B,0x3C,0x31,0xBB,0x54,0x15, + + 0x8F,0x4B,0x63,0x99,0x9B,0xFC,0x55,0xAC,0x28,0xF4,0xCA,0x9D,0x78,0x38,0x7E,0xA1, + + 0xE3,0xFD,0x94,0xF8,0xED,0xF8,0x32,0x3E,0x28,0x41,0x12,0xEC,0xE2,0xC1,0xE6,0xDC, + + 0x0D,0x47,0x19,0x5A,0xD3,0x9E,0xF6,0x0B,0x25,0xCB,0xE4,0xC1,0x2D,0x2F,0x1B,0x3D, + + 0x8C,0x2C,0x13,0x52,0xB4,0x8A,0x49,0xB8,0xE9,0xCD,0xDB,0x50,0x31,0x2A,0x8B,0x8C, + + 0x61,0x4D,0x6F,0xD9,0x95,0x2C,0x5D,0x0A,0xAD,0xC9,0x9B,0xE8,0x24,0xC2,0xF9,0xFB, + + 0xBE,0x8D,0xF9,0x78,0x30,0x9B,0xA0,0xDF,0xC3,0xDB,0x80,0x20,0x7E,0x8A,0x1E,0x57, + + 0xCA,0x55,0xBE,0xA4,0x65,0x73,0x4F,0x32,0xDD,0x53,0xE4,0x93,0x88,0x7E,0xE4,0xA5, + + 0xC8,0x1F,0xFD,0x81,0x59,0x21,0x91,0x90,0x92,0xFD,0xF5,0x9B,0xD2,0xCE,0x37,0x21, + + 0x30,0x52,0xC9,0xBC,0xB7,0x31,0x25,0x4E,0x4D,0x5E,0xC3,0x08,0x05,0xD8,0x7A,0x74, + + 0x54,0xBB,0x96,0xDB,0x58,0x5A,0x90,0x1F,0x8B,0x77,0x06,0xC3,0xD3,0xDB,0x6A,0x69, + + 0xAF,0xB8,0xF2,0x70,0xF9,0x36,0x8F,0x0E,0xE3,0x07,0xE4,0x33,0xB1,0x65,0x95,0xD2, + + 0xD4,0x52,0xFB,0x60,0x78,0x15,0xC2,0x1E,0x0B,0x55,0x03,0x67,0x63,0x31,0x18,0x55, + + 0xA1,0x28,0xC5,0xC1,0x7B,0x34,0x63,0x50,0x00,0x5C,0xD5,0x75,0x7C,0xDA,0xBE,0x72, + + 0x38,0x55,0xD0,0xB1,0xC7,0xE5,0x76,0x92,0xC8,0xA4,0x9E,0x0C,0x13,0xCB,0xED,0xBC, + + 0xF5,0xA8,0x9A,0x18,0x3B,0xEE,0x44,0xBC,0xE6,0xFF,0xBE,0x85,0x98,0xD6,0x78,0xCE, + + 0x76,0x87,0xD4,0x73,0xBE,0x18,0x6F,0x8E,0x15,0x55,0xA4,0x5C,0x8E,0x7F,0x28,0xA5, + + 0x35,0xEA,0x89,0x35,0x39,0xD7,0x4C,0xF9,0xE5,0xF0,0x4E,0x39,0xF7,0x4E,0xBD,0xEF, + + 0x8B,0xBD,0x16,0xDF,0x10,0x5F,0xD2,0x9B,0x48,0xD3,0x00,0x7E,0xBC,0xD1,0x9C,0x64, + + 0xC0,0x9E,0x1A,0xAF,0x59,0x9B,0x81,0x07,0xEB,0x0D,0xD8,0x0C,0x4E,0x3F,0x91,0x3A, + + 0xC0,0xB3,0x6B,0xBE,0xD0,0x98,0x0F,0xFD,0x9D,0xA1,0x05,0x7F,0xFA,0x76,0xE3,0xAA, + + 0x85,0xB9,0x1F,0x1D,0xFF,0x9B,0x61,0x58,0x83,0xBC,0x1B,0x96,0x0F,0xBC,0x8D,0xC5, + + 0xF9,0xC1,0xA6,0xAF,0x94,0x8C,0xCF,0xA6,0x03,0xFF,0x8A,0xD5,0x62,0xA2,0x3A,0x02, + + 0xFA,0x0C,0xF9,0x51,0xDF,0x32,0x0A,0xCD,0xC7,0xB4,0x38,0x45,0x63,0x64,0x41,0x54, + + 0x11,0x8F,0xFF,0xAF,0x9C,0x0F,0x8E,0xD2,0x67,0x82,0x75,0x0C,0xBF,0xED,0xFD,0x37, + + 0x07,0xBF,0xE1,0xB3,0x7C,0x52,0x79,0x40,0x66,0xCC,0xAB,0x97,0x3E,0xA7,0x24,0x74, + + 0x00,0xA6,0xD8,0xB5,0x74,0xC1,0x70,0xA2,0x0A,0x49,0xE7,0x5F,0xAD,0x69,0x97,0x3D, + + 0x7B,0x2A,0xB0,0x53,0xFE,0x26,0x58,0x63,0x24,0xBA,0x97,0x05,0x23,0x64,0x65,0xAC, + + 0x80,0xE4,0xD9,0xB4,0xFC,0x29,0x0F,0xD7,0x2D,0x25,0x25,0x9D,0xD2,0xA6,0x3D,0x3D, + + 0xF1,0x28,0x93,0xB7,0xD3,0x7C,0xB9,0xF6,0x7E,0x6A,0x06,0x88,0x36,0x64,0x9E,0x68, + + 0xCE,0x88,0xFA,0x06,0x1A,0x8A,0x86,0x55,0xEF,0xCC,0x8C,0xCC,0x3E,0x3D,0x05,0x65, + + 0xD4,0xC8,0x8A,0x0B,0xFC,0x16,0xFA,0xEE,0xF6,0xCF,0x6B,0x4D,0x6B,0x6E,0xB3,0x51, + + 0x79,0x16,0x0F,0x8B,0xD3,0x5F,0x71,0x59,0x37,0x35,0x73,0xAB,0x07,0x4A,0x13,0xF5, + + 0x21,0x86,0x1C,0xB7,0x9B,0x61,0x8E,0xBB,0x2C,0xC4,0xA1,0x4C,0xDB,0xC9,0x32,0x39, + + 0x0F,0x3D,0x1D,0xB3,0xE1,0xA8,0x26,0x98,0x6D,0xAC,0x0D,0xEA,0x5C,0xD9,0x39,0xDE, + + 0x0D,0x6F,0x3C,0xA1,0xF6,0x2E,0xF8,0x86,0xB0,0x36,0x5A,0x0D,0x21,0x3E,0x1D,0x4D, + + 0x67,0x7D,0x62,0x3C,0xF4,0x0F,0x4D,0xCB,0x2D,0xC5,0xCD,0x2F,0xA2,0x41,0x7D,0xEE, + + 0x64,0xEC,0xBD,0xEB,0x68,0x7B,0x84,0x79,0xA3,0x8D,0x85,0x78,0x7E,0x40,0x1E,0x71, + + 0x12,0xFC,0xFA,0x2E,0x3C,0x1D,0x67,0xA6,0x0F,0xE3,0x74,0x27,0xF7,0xB2,0x16,0x00, + + 0x25,0x4E,0xA4,0x92,0x9C,0x0A,0x5A,0x0A,0x66,0xC2,0x82,0x1A,0x97,0x78,0x1F,0x10, + + 0xD8,0x6D,0xF4,0xC0,0x7E,0x03,0x31,0xD0,0xDE,0xBE,0x75,0x7C,0xBC,0xA1,0xED,0x12, + + 0x26,0xD1,0x01,0xE4,0x87,0x15,0x03,0x8E,0xC6,0x43,0xC5,0x33,0xFF,0xD2,0x30,0xB1, + + 0x00,0x32,0xB6,0x62,0xFE,0x17,0x8B,0x91,0x44,0x77,0x43,0x53,0x52,0xF8,0x3C,0x76, + + 0xEF,0xB6,0xCA,0x6B,0xBB,0xF7,0xDB,0x53,0x8E,0xDD,0x58,0xB4,0xF3,0xF9,0x35,0x03, + + 0xE2,0x32,0x31,0xD4,0xB7,0xF2,0xA7,0x1D,0x32,0xD5,0xCD,0xA5,0x55,0xFA,0xB9,0x14, + + 0x4E,0x34,0x29,0x77,0x5E,0xF4,0x6A,0x00,0x63,0x7A,0x95,0x06,0x74,0xF5,0x66,0x34, + + 0xC5,0xCB,0xF5,0x71,0xD5,0xAB,0x56,0xE0,0x70,0xD5,0x76,0x2B,0x23,0xFE,0x6E,0x24, + + 0x65,0xCA,0x90,0x26,0x5D,0x99,0xF0,0x09,0xED,0x39,0x0A,0xC5,0xDE,0x52,0xE7,0x0A, + + 0x80,0xD8,0xB1,0x37,0x57,0xC9,0xF7,0x2F,0xEB,0x98,0x84,0x8D,0x25,0xF5,0x11,0x37, + + 0x4F,0x12,0xD0,0xED,0x93,0x24,0x08,0x12,0x0C,0x24,0x68,0x85,0x96,0xF3,0x00,0x6F, + + 0xC7,0x1F,0x9E,0xE9,0xD7,0xDF,0xA1,0x52,0x85,0xB8,0x36,0xAB,0x14,0xF2,0x52,0xAB, + + 0x86,0x67,0xEB,0xCF,0x0D,0x98,0x46,0x09,0x41,0x52,0x5A,0x3C,0xDC,0xF3,0x01,0x6F, + + 0xAD,0xDE,0x9F,0xDE,0x84,0x92,0x4F,0x18,0xC8,0xBB,0x9F,0x2D,0x7A,0xF0,0x58,0x72, + + 0x53,0x8C,0x73,0x5D,0x7A,0x3C,0x27,0xFE,0x06,0x9C,0xC7,0x5B,0xFF,0xFF,0x60,0x4A, + + 0xDC,0x42,0x6C,0x9B,0x11,0x22,0xA5,0x44,0xF4,0x69,0x66,0x46,0x31,0x40,0x30,0x72, + + 0xFE,0x07,0x26,0x77,0xB0,0xDE,0xD8,0xE1,0xC4,0xCC,0xF8,0x7E,0x89,0x6C,0x52,0x6D, + + 0x02,0xEE,0x3E,0x65,0xC8,0x24,0x4E,0xA1,0xB3,0x35,0x89,0x21,0xD9,0x4E,0x20,0x0E, + + 0x20,0x6D,0x32,0xD2,0x4F,0x2B,0x40,0xE0,0x66,0x01,0x81,0xE0,0x53,0x7F,0x46,0x31, + + 0x20,0xF6,0xA2,0x46,0x13,0x64,0x28,0x12,0xEE,0x4B,0x37,0xA4,0x5E,0xCF,0x4C,0xC0, + + 0x30,0x9E,0x90,0x50,0x3A,0x93,0xEC,0x92,0xA8,0x5F,0x82,0x8B,0xD1,0xC9,0x94,0x32, + + 0xEB,0x81,0xDD,0xDE,0x7B,0x5F,0xE5,0x83,0x6E,0x49,0x4E,0x9A,0x57,0xD4,0xF1,0x81, + + 0x8F,0xF8,0x21,0xCC,0xB1,0x67,0x39,0x3B,0x49,0x05,0x6A,0x97,0x7F,0x68,0xE5,0x48, + + 0x04,0x85,0x06,0x73,0x3B,0x38,0xD8,0x95,0x7B,0x4C,0x62,0x4E,0xA7,0x06,0xCA,0xD9, + + 0xE5,0x08,0xD9,0x70,0x99,0x49,0x07,0x5E,0x6A,0x09,0x25,0xDC,0x49,0x72,0x7D,0x78, + + 0x69,0xF5,0xE3,0x47,0x7E,0x68,0xAB,0xC9,0x84,0x51,0xF1,0x30,0xDB,0x00,0xCF,0x1C, + + 0x8F,0xE2,0x07,0xD4,0x89,0x86,0xB3,0xA1,0xEB,0xB9,0x0D,0x5B,0x3B,0x4B,0xB5,0x49, + + 0x16,0xA1,0xC7,0xA4,0x96,0xE1,0x01,0x8C,0x2A,0xB0,0xB2,0x3F,0xF8,0x63,0xD5,0xDA, + + 0x9A,0x21,0x82,0x94,0xF2,0x17,0x73,0xFC,0x75,0x60,0x82,0x79,0x30,0x77,0x8D,0x79, + + 0x0B,0xA1,0xBC,0xB0,0x92,0x6C,0x2D,0x6F,0x2B,0xCD,0x67,0x8F,0x33,0x74,0x6B,0xC9, + + 0x62,0xA6,0xD1,0x5C,0xB8,0x1E,0x3B,0x33,0x45,0x0D,0xDF,0xF9,0x8C,0x3A,0x86,0x04, + + 0x01,0x5D,0x74,0xE6,0x13,0x12,0xFC,0x3D,0x8B,0xBA,0x54,0x71,0x5F,0x6B,0xC3,0xB4, + + 0x03,0x50,0x4C,0x2C,0xD5,0xEA,0x43,0x90,0x67,0x11,0xFC,0xFE,0xD7,0x7C,0xC5,0xF1, + + 0xBD,0x50,0xE5,0xCF,0x56,0x3D,0xCE,0xA1,0x93,0x32,0x03,0xC3,0xB2,0x8D,0x89,0x15, + + 0xAC,0x5D,0x23,0x68,0x1A,0x48,0xB0,0x33,0x70,0xF5,0x8F,0x56,0x1A,0x37,0x7A,0xB1, + + 0x43,0x54,0xFE,0x2C,0x46,0x7B,0xE5,0x92,0xE0,0x48,0xD7,0x44,0x9F,0x95,0xF4,0x70, + + 0xC2,0xBE,0x9B,0x50,0x36,0x1E,0xAA,0x92,0x81,0x15,0x70,0x66,0x3B,0x7D,0x1D,0x2C, + + 0x91,0x8D,0xE3,0xB0,0xA1,0x32,0x21,0x03,0x60,0x4A,0xB5,0xB2,0x0B,0x7B,0x2D,0x9B, + + 0x2A,0x9C,0x0D,0xF0,0x54,0x9A,0x9D,0x73,0x72,0xE3,0x1E,0x87,0x18,0x0E,0xDD,0x37, + + 0x57,0x87,0xC6,0x77,0x3E,0xC2,0xAD,0x4A,0xC4,0xA5,0xAC,0x1C,0xB5,0xD7,0x34,0x63, + + 0x2F,0x23,0xEC,0x9D,0x38,0x89,0x0C,0xB8,0x9E,0x4B,0xB7,0x1A,0xD8,0xF9,0xB2,0xED, + + 0x1C,0x33,0xE6,0xFE,0xA3,0x54,0x6F,0x41,0xCF,0x17,0x33,0xD2,0x5B,0x7C,0xBC,0x1D, + + 0x9A,0x1B,0xB5,0x75,0xD5,0x74,0xA7,0x09,0xED,0x5D,0xE7,0x3F,0x68,0x9C,0x6D,0x2A, + + 0x86,0x91,0x43,0xAC,0x36,0xB1,0x6E,0x17,0xE8,0xB0,0x3E,0x74,0xFF,0x9C,0x76,0x26, + + 0x87,0x10,0x76,0x2F,0x28,0x3B,0x16,0xE9,0x6D,0xCE,0x26,0x14,0x23,0x32,0x3F,0x4B, + + 0x3B,0x38,0xB9,0xC0,0x89,0xDF,0xEF,0x8B,0x65,0xA8,0x8E,0xF0,0x99,0x3E,0xB0,0x5B, + + 0x3A,0x73,0xEF,0x20,0x1A,0x3C,0xC6,0x98,0x56,0xD2,0xBF,0xB2,0x64,0x70,0x1D,0x86, + + 0x17,0x45,0x6A,0xE6,0x5C,0xBB,0x72,0xCA,0x7D,0x8D,0x20,0x24,0x0E,0xE6,0x50,0xBF, + + 0xEE,0x12,0xF8,0x8E,0x19,0xC9,0x18,0xD4,0xC0,0x33,0xC0,0xC5,0xD1,0x6C,0xE1,0xBB, + + 0x56,0x26,0x81,0x61,0xB5,0x68,0x29,0x3E,0x25,0xD9,0x98,0x81,0x75,0x63,0xF2,0x10, + + 0xFA,0x8F,0xE4,0x15,0x74,0xA5,0x47,0x5E,0x2E,0x29,0xEB,0x60,0x3E,0x87,0x12,0x46, + + 0x4C,0x9F,0x9E,0x8F,0x7D,0x9D,0x23,0x86,0x26,0xEA,0xA0,0x7B,0x5A,0xE5,0x70,0x4E, + + 0x6C,0x7C,0x57,0xB6,0x5D,0xE7,0x51,0xF6,0x79,0xE8,0xA8,0x01,0x07,0xFE,0x3A,0x25, + + 0xC5,0xE6,0x65,0xC3,0xBC,0xE7,0x0F,0x65,0x27,0x45,0xF4,0x36,0x3F,0xDC,0x42,0xD1, + + 0x16,0xAB,0xBA,0xF5,0x7E,0x5E,0x7F,0xBB,0x2E,0xDD,0xDD,0x11,0x28,0xE1,0xFB,0xA5, + + 0x33,0x8A,0x8B,0x11,0xBF,0xAE,0x6B,0x1F,0xEB,0x67,0x8A,0x1E,0x58,0x17,0xEA,0xDE, + + 0x96,0xCB,0xCA,0x54,0x9F,0xA4,0x62,0x02,0x7E,0xCD,0x2C,0x58,0x20,0xE2,0x7C,0x81, + + 0xFF,0xFE,0x8A,0xB8,0xDC,0xA5,0x2D,0xC3,0xF5,0x87,0x89,0x8A,0x2B,0xF1,0x64,0x9B, + + 0xAF,0xE9,0xF3,0x8A,0x1F,0xB7,0x83,0xC4,0xEC,0x0A,0xBF,0x41,0xFE,0x8B,0x38,0x10, + + 0xAD,0xE9,0x19,0xB6,0x1E,0x21,0x00,0x7B,0xD5,0x67,0x5C,0x15,0xFF,0x1D,0xC2,0xC7, + + 0xEE,0x8B,0x39,0xDC,0x8E,0x81,0x64,0xF8,0xDE,0x8A,0x9A,0x29,0xA6,0xE2,0x59,0xA9, + + 0x65,0x27,0xF5,0x3A,0x61,0x33,0xEC,0x31,0x2F,0x61,0x8B,0x6D,0x96,0x63,0x42,0xEC, + + 0x86,0x38,0x93,0x78,0x62,0xA0,0x79,0x99,0xC9,0x15,0xC5,0xB6,0xFF,0x82,0xFD,0x2D, + + 0x1B,0x92,0xFD,0xBA,0x93,0x1F,0x1D,0x29,0xC7,0xB5,0xEE,0xA2,0xD7,0xF4,0x95,0xCC, + + 0xA7,0x95,0x9C,0x14,0xA4,0x17,0xDF,0x30,0xF4,0x36,0xE6,0xB7,0xD6,0x7C,0x8A,0xEC, + + 0x79,0x4E,0x38,0x74,0xDD,0x9B,0x9E,0x41,0xE2,0x39,0x37,0x25,0x65,0xB5,0xE5,0xF1, + + 0xE6,0x63,0x95,0x69,0x19,0xBE,0x05,0x01,0xE1,0x53,0xDD,0xE0,0x50,0xFC,0xDF,0x20, + + 0x8A,0x69,0x5C,0xCE,0xDF,0x5D,0x14,0xA8,0x88,0xDB,0xCE,0x64,0xEB,0xFF,0x54,0x28, + + 0x8B,0x98,0x72,0x1E,0xB5,0xA9,0x78,0xB2,0x6D,0x7E,0x3C,0x02,0x72,0xB7,0x1D,0x41, + + 0x37,0xF0,0x9F,0xA7,0xBA,0x12,0x4B,0x2A,0x69,0x50,0x8D,0x18,0x81,0xB4,0x12,0x51, + + 0x36,0x3B,0x45,0xA5,0x14,0xB1,0x60,0xF6,0x06,0x78,0x36,0x3E,0xD7,0x05,0x59,0x72, + + 0x2C,0x3C,0x59,0x0C,0xAD,0x8E,0x0C,0x42,0xA8,0x97,0x76,0xEF,0xC8,0x05,0x7C,0x1E, + + 0x66,0xDD,0xD1,0x1A,0x79,0x9A,0xBA,0x3E,0x1F,0x80,0xB2,0xFD,0x94,0xC3,0x3B,0x2E, + + 0x64,0xD3,0x9F,0x75,0x10,0xB7,0xF7,0x13,0xA9,0xD0,0xAD,0xAE,0xDD,0xBA,0xF4,0x34, + + 0xD2,0x99,0xB3,0xBD,0x3F,0xA7,0xFF,0x03,0x91,0x04,0xA7,0xBB,0xF4,0xD7,0x5D,0x28, + + 0x82,0x21,0xCF,0x8D,0x9F,0xB3,0x3B,0x02,0x1A,0x93,0x72,0x9C,0x95,0x16,0xDA,0xA5, + + 0x8C,0xF8,0x96,0x5C,0xAE,0x69,0x08,0x18,0x46,0x6B,0x34,0x1C,0x4C,0xF9,0x1F,0xEC, + + 0x5B,0x91,0x53,0xAD,0xF7,0xA4,0x09,0x9A,0x6C,0xC2,0x97,0xA5,0x7C,0x53,0x54,0x39, + + 0x03,0x22,0x2F,0x67,0x99,0xD3,0x26,0xCE,0x4A,0xB1,0x47,0x9F,0xF3,0xF2,0x02,0xE2, + + 0x04,0x7A,0x80,0xF7,0x2E,0x05,0x68,0xA2,0x12,0xA4,0xD8,0xBC,0xB9,0xBA,0x50,0x14, + + 0x88,0x4E,0x90,0x24,0xEE,0xDE,0xFE,0x33,0xFF,0x65,0x34,0xAB,0x52,0x23,0x31,0xE9, + + 0x0A,0xCF,0xF9,0x14,0xB6,0x8F,0x07,0x43,0xEF,0x66,0xD3,0xDA,0x39,0xA1,0xC9,0xAC, + + 0x2E,0xD7,0xB3,0xA5,0x6E,0xFC,0xA5,0x12,0x8D,0x66,0x59,0x61,0xFE,0x0F,0x48,0x5C, + + 0x04,0xCC,0xDA,0x6A,0x33,0x06,0xBC,0x13,0x70,0xB2,0xD2,0x56,0x32,0xF6,0x9C,0xB6, + + 0x13,0xA8,0xD0,0x59,0xFA,0xDC,0x66,0xC5,0x22,0x41,0x1C,0xA9,0xD1,0x79,0x61,0x81, + + 0xCE,0xAB,0xFF,0x38,0xF3,0x51,0xEA,0x11,0x42,0x59,0x11,0xE4,0x0C,0x24,0x1B,0xB7, + + 0x0A,0xEB,0xD3,0x7A,0xB2,0x87,0x38,0x31,0x9C,0x9A,0x77,0x2E,0x70,0x02,0x57,0x17, + + 0x3E,0x4A,0x42,0x58,0x29,0x85,0x04,0x0B,0x6F,0x6D,0xAC,0x80,0x92,0x61,0xBE,0x7A, + + 0xE2,0x1A,0xE8,0x1D,0x1A,0x69,0x90,0x48,0xA0,0x93,0xF8,0x3C,0xB2,0xDA,0x89,0x29, + + 0x63,0xE9,0xD5,0x6D,0xC8,0x44,0x23,0x0A,0x4D,0x08,0xED,0x91,0x31,0x59,0x35,0x79, + + 0x36,0x50,0xBF,0xFF,0x9F,0xE3,0x59,0xC2,0x20,0x88,0xB7,0x68,0x91,0x28,0xAE,0x3B, + + 0x68,0xAA,0xFC,0x31,0xF8,0x7B,0xE2,0x1F,0x44,0xD3,0xED,0x8E,0x31,0x63,0xC0,0x18, + + 0x08,0x4D,0xDB,0xD8,0x15,0xC9,0xCB,0x5E,0xA6,0x2F,0x19,0xF8,0x51,0x9B,0x17,0x3A, + + 0xA8,0x4C,0xC1,0x3E,0xFF,0x2A,0xEC,0xEC,0x31,0xE3,0xD1,0x12,0x3A,0xEF,0x67,0x27, + + 0x62,0x9C,0x34,0xEF,0x13,0x8F,0xA0,0x0A,0xF7,0x2D,0x1B,0xED,0xC3,0x69,0x03,0x04, + + 0x2C,0x53,0x28,0xF7,0x48,0xC6,0x2E,0x10,0x9F,0x12,0x92,0x00,0x13,0xAF,0x53,0x81, + + 0x27,0xD9,0x6F,0x67,0x41,0x73,0xFC,0x70,0x27,0xFC,0xC6,0x4B,0x1B,0x42,0xA6,0xB9, + + 0x7C,0xA3,0xFB,0xBC,0x59,0xA3,0x9F,0x74,0xE6,0x9A,0x83,0x09,0x1B,0x21,0xB9,0x68, + + 0xB1,0x51,0x07,0xE5,0x58,0x90,0x05,0x81,0x16,0xAC,0xE3,0x1C,0x18,0xD0,0x25,0x80, + + 0x26,0x38,0x62,0x46,0xA3,0x18,0x6A,0x45,0xC5,0x44,0xD5,0x82,0xDE,0xC8,0xC6,0x99, + + 0x82,0x9C,0xAC,0xD6,0x4C,0x38,0xF2,0x8E,0xC2,0xD5,0x1C,0x75,0xFB,0x73,0xFE,0x82, + + 0x13,0x54,0xBD,0xE2,0x53,0x39,0x6B,0x51,0x45,0x50,0xAD,0xC2,0x0B,0x79,0x49,0x31, + + 0xA7,0x3B,0x9D,0xB3,0xBF,0x75,0x25,0x75,0xA6,0x6F,0xF3,0xB4,0x52,0x88,0x82,0x2C, + + 0xFC,0xC9,0x9E,0x10,0xD1,0xE2,0x28,0x19,0xE5,0xAE,0xCE,0xA8,0xF1,0xA5,0xBD,0xA0, + + 0x1A,0x59,0x22,0x07,0x3A,0xBB,0xDE,0xEC,0xF7,0xFA,0xB2,0xC2,0x7F,0xB1,0xA0,0xB4, + + 0x41,0xAB,0xC5,0x76,0x51,0xF9,0x1F,0xAD,0x40,0x55,0xA9,0x19,0xDB,0x3A,0xA4,0xBF, + + 0x44,0x79,0x4F,0xC9,0x27,0x98,0x4A,0x4A,0xD7,0x7E,0x7A,0x0C,0xC3,0xD4,0xFD,0xBB, + + 0x58,0xBD,0x56,0xC0,0xB8,0x38,0x96,0x74,0xC5,0xA9,0x62,0x8E,0xF8,0x60,0x8E,0x8C, + + 0x47,0xB2,0x4A,0x58,0x1D,0x0E,0x95,0x84,0xEB,0x1F,0x61,0x1E,0xF9,0xB1,0x7F,0x36, + + 0x43,0x6D,0x18,0xAF,0x9A,0x73,0x86,0xD7,0xD0,0x1C,0x7A,0xB2,0x59,0x1B,0xDE,0xFE, + + 0x0A,0xB0,0xAF,0x4F,0x9B,0x32,0xB3,0x8A,0x89,0xF9,0x09,0x9F,0x04,0x1A,0x20,0x3C, + + 0x3E,0x75,0x7C,0x25,0xB7,0x00,0x9C,0xB9,0x47,0x62,0x8E,0x46,0xAF,0x7B,0xE8,0x17, + + 0x23,0x75,0x16,0x93,0xFE,0xA2,0x47,0x41,0x23,0xAD,0x83,0xB2,0x10,0x2B,0xF0,0xF8, + + 0xF7,0x82,0x71,0x74,0xE4,0xE7,0x0F,0xFF,0xA4,0x1D,0xB1,0x16,0x75,0x1D,0xFB,0x2D, + + 0xBF,0x76,0x97,0x2E,0x9B,0x0C,0x5E,0x73,0xC1,0xE6,0x87,0x83,0xF4,0xE1,0x1A,0xA2, + + 0x0A,0x29,0xBE,0x3B,0x04,0xA0,0x67,0x91,0x24,0x19,0xD9,0x2D,0x8B,0xEB,0x56,0xEA, + + 0x6F,0x88,0xEE,0x24,0xFC,0x5C,0x46,0xC2,0x8D,0x34,0x3C,0x61,0xB5,0x5C,0xB4,0xB1, + + 0xA7,0x34,0xA4,0x38,0x74,0xE2,0x22,0x90,0xE8,0xA8,0x45,0x18,0x75,0xA4,0x96,0x20, + + 0xB9,0xC5,0xC9,0xD7,0x6A,0x20,0x47,0x4F,0xC1,0x0F,0x3A,0xF5,0x46,0x8B,0xF3,0x51, + + 0xB1,0x34,0xF6,0x7D,0x64,0x7D,0x4A,0x59,0x7A,0x39,0x72,0x7A,0xDA,0xE2,0xFA,0x01, + + 0x67,0x32,0x1A,0x69,0x13,0x75,0xAA,0x2B,0x6B,0x64,0x84,0x92,0x25,0x46,0x78,0x0B, + + 0x8A,0xEA,0xB0,0xE7,0x90,0x76,0x4D,0x93,0x39,0xCE,0x36,0xAB,0x99,0x81,0xAD,0x9F, + + 0xC8,0xEE,0x6F,0xD5,0x2E,0x54,0x23,0x0B,0x32,0x34,0x68,0x45,0x5D,0xBA,0xE8,0x7F, + + 0xF9,0xE9,0x46,0x5F,0x75,0x55,0x7A,0x2A,0x70,0x8E,0x32,0xEF,0x0F,0xF7,0x54,0xFF, + + 0x6E,0x89,0x98,0x4C,0x13,0x06,0x2C,0x3A,0x67,0x8F,0x42,0xFA,0x55,0xE9,0x5B,0x0C, + + 0x44,0x0D,0xA6,0x4D,0xD2,0x53,0xF9,0x4B,0xC8,0x06,0x64,0x09,0x29,0xFE,0x12,0x25, + + 0xEE,0x8B,0x74,0xD3,0x99,0xCD,0xF1,0x79,0xCC,0x2F,0xA2,0x5B,0x7A,0x50,0x8F,0x07, + + 0xB7,0x8F,0xF1,0x75,0x0A,0xDC,0x4C,0xB3,0x42,0x7D,0x61,0x5A,0x74,0x5D,0x16,0x61, + + 0x03,0x3C,0x7F,0xE5,0x0F,0x67,0x06,0x36,0x20,0x1B,0x6F,0xC8,0x1F,0xC2,0x5B,0x22, + + 0x70,0x91,0x9B,0x2B,0x6A,0x1D,0x2D,0x93,0xEC,0x2D,0x64,0x96,0xD5,0x5D,0xFD,0xD4, + + 0x67,0x83,0xD3,0x2E,0x3C,0x5B,0x03,0x07,0xC4,0x71,0xC3,0x0E,0x7C,0x1B,0xF1,0xB1, + + 0x50,0x35,0x1B,0xE1,0x97,0xB2,0x20,0x91,0x44,0x96,0xCC,0x64,0xE7,0x48,0xAC,0x86, + + 0x4B,0x4A,0x58,0xA9,0x94,0xB3,0xBC,0xA6,0x7E,0x97,0x84,0x1E,0x53,0xB8,0x5D,0x3C, + + 0x4F,0x25,0xCC,0x80,0x6B,0xB9,0xFF,0xA3,0xE7,0x16,0x5A,0x05,0x5A,0x0B,0xD9,0xB1, + + 0x58,0xF9,0x8F,0xF3,0x16,0x48,0xBE,0x14,0xAF,0x94,0x06,0xFF,0x52,0xEC,0x6E,0x0D, + + 0x4F,0x67,0xA0,0x2A,0x5F,0xF8,0xDA,0x38,0x64,0xD2,0x76,0xFA,0x65,0xF5,0x10,0x3E, + + 0xCF,0x89,0x94,0x2F,0x07,0x16,0xEF,0x29,0x4C,0x76,0x92,0xC0,0x7B,0x31,0x59,0x26, + + 0x47,0x09,0xB1,0x23,0x57,0xE9,0xB7,0x88,0x4F,0x77,0xAD,0xAE,0xDF,0xBA,0x2F,0xDB, + + 0xA9,0xBE,0xFA,0x1B,0xF8,0xFD,0x6C,0xC8,0xD7,0x5D,0xAF,0x3B,0xB8,0x58,0x58,0x62, + + 0xE4,0xED,0x52,0xAC,0xBC,0xA0,0x52,0x87,0x4A,0x57,0xE0,0x6A,0x74,0x77,0x17,0xA9, + + 0x41,0x14,0x51,0x3C,0x0C,0x5C,0xCD,0x53,0x69,0x57,0xFF,0x98,0x4C,0xAC,0x59,0xE7, + + 0xCF,0x9A,0xC9,0x90,0x1D,0xDB,0x73,0x09,0x12,0x8D,0xAE,0xD2,0x5B,0x21,0x4F,0x51, + + 0xAE,0x46,0x57,0x20,0xD4,0xB0,0x00,0xDF,0x06,0x26,0x3F,0x7E,0x9C,0xBE,0xA7,0x3D, + + 0x33,0x53,0x3A,0xFB,0x73,0x73,0x40,0x81,0xC0,0xC0,0x2F,0xA0,0x52,0xD9,0x55,0xF6, + + 0x07,0x43,0x73,0xD3,0xCF,0x29,0xD8,0xB4,0x3B,0x95,0xF8,0xA6,0x71,0x6C,0x5A,0x01, + + 0xB7,0xFA,0x97,0xA5,0x23,0xEF,0x57,0x81,0xC8,0x13,0xEF,0x22,0xF8,0xDD,0x6A,0x93, + + 0x18,0x6E,0xC9,0xE5,0xA7,0x82,0xC9,0xC2,0xEF,0x97,0x62,0x12,0x70,0x65,0x78,0xC2, + + 0xC0,0xC7,0xBE,0x6C,0x14,0x06,0x09,0x58,0xE7,0x4D,0xC3,0x97,0x2A,0xCB,0x30,0x74, + + 0x30,0x34,0x08,0xD5,0x69,0x28,0x76,0xC4,0xE2,0xBA,0x27,0x07,0x63,0x09,0xEE,0xA3, + + 0x2E,0xFB,0x96,0x27,0x79,0x77,0xD1,0x7F,0xF6,0x40,0xC0,0x8D,0xBE,0x2B,0x12,0x51, + + 0xF8,0x07,0xB7,0x78,0x95,0x05,0x27,0x5C,0xF0,0xA6,0x3E,0xB5,0x85,0xCA,0x3A,0xF6, + + 0xA4,0x05,0xD6,0xE6,0xDD,0xF5,0x40,0xDB,0x22,0xC5,0xF0,0x8C,0x5E,0x2A,0xA9,0xB0, + + 0xE2,0x3A,0xDA,0xF6,0xDC,0xD4,0xF6,0xAB,0x63,0x43,0xF8,0x04,0x5F,0xEB,0xA0,0xBD, + + 0x63,0xE9,0x29,0xFD,0xAE,0x8B,0x6D,0x89,0x21,0x49,0xE3,0x6D,0xC8,0x6C,0x51,0xE6, + + 0x62,0x48,0x21,0x0C,0xB3,0x2F,0x57,0x4A,0xEB,0x09,0xC8,0x7D,0xDA,0x6D,0x9F,0xB7, + + 0x3D,0xF4,0x95,0x2E,0xF1,0xBD,0xEA,0xF8,0xBD,0xE3,0xC5,0xE8,0x58,0xD6,0x95,0x4C, + + 0x0D,0x4D,0x0A,0xDD,0x5A,0x20,0x62,0x83,0xC4,0xBB,0xE4,0x54,0x5D,0x6F,0x1E,0xBF, + + 0xFD,0x0E,0x99,0xE0,0xF2,0x3F,0x40,0xEB,0x03,0x3D,0x13,0xED,0xB0,0xD1,0x68,0xA8, + + 0xE6,0xF0,0x34,0xAF,0xBA,0xAF,0x53,0x75,0xF8,0xDE,0x94,0xF9,0xD1,0x2F,0x0C,0x04, + + 0x22,0xF2,0xFD,0xF2,0x36,0x32,0xB3,0x11,0xA8,0x53,0x9C,0xAC,0xF2,0xF6,0xCC,0x4C, + + 0x3B,0xCC,0x73,0x65,0x92,0xB1,0x5C,0xAC,0x9E,0x3D,0x94,0x85,0xF3,0xF7,0xFA,0x05, + + 0xA6,0xF7,0x8D,0x01,0xB2,0xD0,0xC0,0xD2,0xC2,0x10,0x06,0x21,0xB2,0xE1,0x25,0xF3, + + 0x5C,0x1F,0xB3,0x35,0x51,0xB2,0x7B,0x04,0x14,0xF5,0x0E,0x31,0xFF,0xFC,0x1A,0xB5, + + 0x26,0x3D,0x86,0x37,0x4A,0x9F,0x6E,0x13,0x5A,0x52,0x4A,0xF0,0x56,0xD9,0x8C,0xC4, + + 0x3F,0x54,0xF6,0x27,0x0B,0x33,0xCD,0x18,0x0F,0x18,0xE6,0x07,0x43,0xFE,0xE9,0x45, + + 0xAC,0xF2,0x5B,0xD4,0x9B,0x5A,0x7B,0x4C,0x43,0xF9,0x4B,0x17,0xD3,0xC7,0x3C,0x6D, + + 0x8F,0x40,0xE3,0x61,0x12,0x98,0x1F,0x02,0xDF,0xFC,0xC8,0xC4,0xC3,0x68,0x3E,0xFB, + + 0x0A,0x5A,0x94,0x08,0x3A,0x38,0xC4,0x68,0x24,0x8C,0x9E,0xB4,0xFA,0xFE,0x35,0x1C, + + 0x7E,0x2B,0xB0,0x3C,0xD9,0xB8,0x4E,0x00,0xE6,0xA4,0xA6,0x23,0x88,0xAF,0x47,0x95, + + 0xAE,0x38,0x78,0x7C,0x1B,0xBA,0xC5,0xB6,0x86,0xFE,0x47,0xCF,0x0B,0x1F,0xCF,0x09, + + 0xC3,0x15,0x1D,0x19,0xBB,0x2C,0x79,0x10,0x1C,0xFD,0x97,0x3C,0xFF,0x39,0x4E,0xEC, + + 0xAB,0xC6,0x57,0x3F,0x06,0x93,0xC8,0xED,0x43,0x30,0x6C,0x13,0x99,0x75,0x47,0xA9, + + 0x07,0x4A,0xF6,0x23,0xD2,0x2C,0x3E,0xAB,0x55,0x50,0xD6,0x78,0x79,0x9F,0xD7,0xB0, + + 0x87,0x7F,0xD6,0x4F,0x73,0xDD,0x0E,0xC8,0x4F,0xA1,0x92,0x92,0xFC,0x7C,0xD5,0xFD, + + 0x68,0xA6,0x63,0x42,0xB8,0x4D,0xA4,0x84,0xC8,0xBF,0x20,0x0C,0x58,0xFF,0x5E,0xA7, + + 0x37,0x61,0x4C,0x17,0x36,0x0D,0x70,0x62,0x42,0xC2,0xD2,0x1E,0x52,0x82,0x56,0xB2, + + 0x36,0x60,0x68,0x92,0xE8,0xA7,0xEC,0x4C,0x8F,0x82,0xDA,0x96,0xF4,0x7E,0x99,0x93, + + 0x6F,0xA1,0xF1,0xB5,0xD4,0x9E,0xF7,0xDC,0x49,0x64,0xCB,0x67,0x84,0xE4,0x91,0x54, + + 0x8B,0x7C,0xCB,0x37,0x93,0xE1,0x71,0x26,0x11,0x80,0x0D,0x55,0x0B,0x7E,0x5E,0x3F, + + 0x67,0xD1,0x47,0x7F,0x96,0x64,0xC8,0xD0,0x4E,0x44,0x1C,0xFD,0xE3,0x72,0x72,0xFD, + + 0x26,0xF5,0x96,0x6F,0x97,0x47,0x21,0x4A,0xE2,0x42,0xEF,0x67,0x67,0xE1,0x79,0xC2, + + 0x6F,0x7F,0xB8,0x72,0x33,0x24,0x56,0x5B,0x46,0x56,0xF9,0x62,0x1E,0xF7,0x57,0x2E, + + 0xE6,0xF2,0xD3,0xA4,0xAF,0xA1,0xF9,0x67,0x45,0x6B,0x90,0x08,0x95,0x48,0x1C,0xAA, + + 0x83,0x7E,0xAC,0x8C,0xDE,0xE9,0x95,0x8F,0x84,0xCB,0x51,0x6E,0x2E,0xEE,0x30,0x1B, + + 0x2E,0x11,0xD2,0x6C,0xF6,0xAA,0x6C,0x44,0x87,0x4A,0x0E,0x5C,0xDF,0x6F,0x2B,0xCF, + + 0x65,0x7B,0x0C,0xED,0x30,0x57,0xE2,0xEC,0x31,0x6C,0xD1,0x0B,0x7D,0x35,0x15,0xBB, + + 0x8B,0x89,0xF1,0xB3,0xF5,0xA8,0x33,0x2E,0x19,0x48,0x6B,0xBB,0xDB,0xEC,0x7A,0x5B, + + 0xE7,0x75,0xCC,0xE3,0xBF,0x03,0x21,0x08,0xA5,0x5D,0x61,0x9F,0x33,0x2C,0x14,0x73, + + 0x3C,0x6C,0x7F,0x79,0xBE,0x02,0x40,0x89,0x77,0xCB,0xDA,0x7A,0xBE,0x12,0x11,0xE5, + + 0xDA,0x03,0x72,0x68,0x3F,0x01,0xD0,0x52,0xE7,0xA6,0xD3,0x76,0xA1,0xCE,0xD3,0xCB, + + 0x64,0xDE,0xF8,0xB7,0xF3,0xE2,0x55,0xCF,0x4F,0x0F,0x3B,0x5F,0xDF,0x44,0x1C,0x7D, + + 0xA7,0x9D,0xA2,0x26,0xDD,0xB3,0x65,0xE2,0x28,0x04,0x0B,0x24,0xB6,0xF3,0x8F,0x22, + + 0xF9,0x32,0x3B,0x76,0x6F,0xAA,0x6C,0x0B,0x2D,0xD2,0xDE,0x12,0xA8,0xFE,0xDE,0x07, + + 0xAF,0x58,0xD7,0x97,0x7F,0x1F,0x64,0xBC,0xDE,0x76,0x75,0x23,0xBD,0xF4,0xC1,0xE0, + + 0xCF,0x35,0x3B,0xF1,0x4A,0xF1,0x1D,0x99,0x04,0x7C,0x09,0xC8,0x56,0xB1,0xF0,0x74, + + 0x5B,0xD5,0xDA,0xEB,0x30,0xB6,0xD7,0xCB,0x0D,0xC5,0xCA,0xCE,0x96,0x75,0xB2,0xD2, + + 0x27,0xF4,0x2C,0x56,0x6C,0xF7,0xEE,0x94,0x12,0xDE,0x03,0x85,0x47,0xB7,0x4D,0x37, + + 0x8A,0x07,0x66,0x38,0x5F,0xA7,0x71,0xE1,0xF8,0xCD,0xE5,0x63,0xF4,0xF6,0xC1,0xA1, + + 0x4C,0xA6,0xAD,0x66,0x3A,0x41,0x3D,0x80,0x9E,0x50,0xBD,0x51,0xBF,0xE6,0xF2,0xF9, + + 0x4E,0x3E,0xE6,0xD7,0x3A,0xDA,0x66,0xB9,0x4E,0xFB,0x76,0xD1,0xFE,0x7E,0x7C,0x3E, + + 0xE5,0x3A,0x81,0x7C,0x91,0x04,0x3C,0x7A,0x09,0x52,0x01,0x5C,0xFF,0xC5,0xF7,0x4B, + + 0xBC,0x3E,0x68,0x0D,0x7E,0x39,0x09,0x0A,0x61,0x5C,0xE5,0xF0,0x5F,0x9F,0xFB,0x99, + + 0xE5,0x3F,0xD7,0x6E,0x1E,0xFB,0xEE,0x8A,0xC7,0xC4,0x03,0xDD,0x02,0x9E,0x18,0xE6, + + 0xAC,0x30,0xDD,0x50,0x3D,0xDC,0xF2,0xE7,0xEC,0x70,0xC8,0xC6,0x9C,0x3C,0x40,0x77, + + 0x8E,0x42,0xFF,0xDC,0xA8,0xBB,0x20,0xD2,0x6B,0xD9,0x68,0x0F,0x02,0x02,0xB5,0xA9, + + 0x51,0x98,0xC1,0xE7,0x82,0x1E,0x24,0x89,0x05,0xEF,0x1D,0xCB,0x1F,0x51,0xC3,0x44, + + 0xAC,0x7F,0xC1,0x6A,0x1E,0x10,0x79,0x89,0x04,0xEE,0xA6,0xCA,0x5A,0x93,0x62,0x05, + + 0x03,0x40,0x40,0x35,0xD5,0x62,0x70,0x76,0x7B,0x9D,0xAE,0x10,0x73,0x25,0x54,0x62, + + 0xEA,0xA0,0x8E,0x90,0x4D,0xDC,0x78,0x66,0x7A,0x4C,0xA6,0x5C,0xDC,0xE7,0x35,0xB7, + + 0x86,0x4A,0x8E,0xE6,0xB0,0x62,0x69,0x06,0x3D,0x4D,0x97,0x14,0x50,0xB4,0x77,0x25, + + 0x7D,0xC2,0xA9,0xFF,0xEE,0xBF,0xB5,0xB4,0x62,0x26,0x9D,0x75,0xF9,0x65,0x80,0xD2, + + 0x04,0x46,0x00,0xC0,0xD0,0x66,0x94,0xC8,0x44,0x46,0x94,0x25,0xBB,0xB5,0x4C,0x52, + + 0x07,0xFE,0xF0,0xAF,0xEE,0x9C,0x23,0x57,0xE2,0xFA,0x4D,0x50,0xBA,0x34,0xBF,0x01, + + 0xC2,0xFD,0x81,0xB2,0x61,0x43,0x97,0xE5,0xC0,0x49,0xA9,0x74,0xA6,0x4A,0x49,0x4E, + + 0xA1,0xDC,0x91,0x51,0x66,0xBE,0xE6,0x08,0xE0,0x07,0xCF,0x4D,0xBB,0x6A,0x58,0x59, + + 0x74,0xA7,0x59,0x0C,0x1E,0x70,0x2A,0xAD,0xEB,0xC5,0x38,0x9C,0xF9,0xEF,0x74,0x1F, + + 0xE8,0x06,0xB0,0xEF,0x46,0xD2,0x3B,0xBC,0x47,0x22,0x05,0x38,0x0F,0xB6,0xA3,0x7B, + + 0xEA,0xA6,0x02,0x89,0xB1,0x47,0x6D,0x55,0x4A,0xE6,0xDD,0x39,0x10,0xF3,0x51,0x71, + + 0xF5,0xA4,0x3A,0xE3,0x9F,0x73,0x7B,0x6A,0x88,0x46,0xA5,0x45,0x99,0xC4,0x6C,0xB5, + + 0x34,0x77,0x9A,0x48,0xA6,0x2F,0xE9,0x10,0x69,0x0C,0xC0,0xF1,0xB1,0x28,0x85,0xD2, + + 0x7C,0xA1,0xD1,0x62,0x35,0xD8,0xC7,0x18,0x35,0x98,0x7E,0x58,0x68,0xB6,0xC1,0xB0, + + 0x75,0x4C,0xFD,0xED,0xA7,0x27,0xE6,0x54,0x23,0xBF,0xE9,0xDD,0x47,0xC1,0x94,0xED, + + 0xB4,0xAF,0x99,0xD9,0xD9,0x7D,0x0F,0x46,0xED,0x0D,0x61,0x4D,0xBA,0xC0,0x7C,0x68, + + 0x18,0x5D,0xF9,0x7F,0xE1,0xED,0x2C,0x22,0xA9,0xD3,0xF4,0xF2,0x4B,0x7D,0x5C,0x14, + + 0x2B,0xCE,0x2C,0x64,0xF3,0x73,0x5C,0xBA,0x67,0x13,0x3B,0x9D,0xA1,0x20,0xFE,0x89, + + 0x05,0x09,0xAE,0xB5,0x90,0x9D,0xD5,0x25,0xF6,0x10,0x76,0x81,0x24,0x63,0x6D,0xC7, + + 0xCF,0x1C,0xC9,0x94,0x0E,0x9E,0xE8,0x76,0xE7,0xF3,0xBA,0x98,0x6D,0xE2,0x84,0x45, + + 0x10,0x56,0xDB,0xB7,0x4B,0xB3,0xC1,0x86,0x9D,0x38,0xAA,0xE3,0x56,0xFF,0x87,0x59, + + 0xF7,0x36,0xEC,0xF4,0xDA,0x8C,0x06,0x44,0x1F,0xFA,0x7C,0x86,0x11,0x09,0x05,0x54, + + 0x5D,0x54,0xC1,0xD5,0x81,0xF7,0x37,0xF0,0xE1,0xE6,0x32,0xD4,0x8E,0xD9,0xEA,0x75, + + 0xA5,0x55,0xBF,0xD1,0xE5,0x2C,0xFD,0x83,0x81,0xFB,0xA3,0xF2,0xD7,0xDC,0xB2,0xF7, + + 0x8B,0x5A,0x14,0xBD,0x99,0xC7,0x11,0xE8,0x64,0xF3,0xAC,0x5F,0x01,0xD7,0x16,0x9C, + + 0x81,0x2F,0xD4,0xFB,0x45,0x96,0x97,0x3C,0x6B,0xFA,0x9F,0x5A,0x92,0xDA,0x56,0x67, + + 0x55,0x95,0xB9,0xBC,0x96,0xE5,0x8C,0xA8,0xEE,0x58,0x0E,0x45,0xC4,0x35,0xCF,0xC5, + + 0xEE,0x11,0x2F,0x6D,0x28,0xE8,0xDF,0x3D,0x9B,0xA4,0x38,0xBB,0x2D,0x1F,0x20,0x4C, + + 0x28,0xBA,0xD1,0xCE,0x74,0x91,0x28,0xEF,0x83,0x8D,0xAE,0xF1,0xBA,0xB3,0x0E,0x4D, + + 0xD4,0x5F,0xC8,0xB0,0xD2,0x64,0x5C,0x1E,0x6D,0x5F,0x59,0xEE,0x5F,0xD2,0x87,0x4C, + + 0xA3,0x5C,0x97,0x7F,0xB2,0x9C,0x2F,0x01,0xD6,0x13,0xE9,0xD0,0x91,0x71,0x84,0x50, + + 0x7F,0x7C,0xBD,0xDC,0xFB,0x24,0xEF,0x7D,0xE5,0x77,0x7B,0x9F,0x0C,0x1A,0x80,0x70, + + 0x66,0x2C,0x21,0x74,0xFF,0x01,0x50,0x71,0x49,0x82,0x2F,0xCE,0x38,0xAD,0x50,0x03, + + 0x61,0x2C,0x10,0xE9,0x98,0x0C,0x19,0xB0,0x8C,0xE9,0xD8,0x7C,0xDC,0xEE,0x5F,0x04, + + 0xE7,0x7D,0xDF,0x33,0xA7,0x43,0xF1,0xAF,0xC2,0xC0,0xCF,0x52,0x3D,0x1B,0xBB,0xF3, + + 0x81,0x23,0x3B,0x88,0x7C,0x02,0xF9,0xB7,0x33,0xAF,0x0D,0x45,0x76,0xA2,0x3F,0xBD, + + 0x00,0x7E,0x86,0xE2,0xE3,0x02,0x32,0xEE,0x8C,0x47,0x50,0x14,0x34,0x98,0x36,0x6E, + + 0x0F,0x28,0xBA,0x67,0xB6,0x5A,0x2C,0x01,0x61,0x64,0x6F,0x47,0xF6,0x44,0x00,0x31, + + 0x6D,0x37,0xB5,0x07,0xC1,0x0B,0xCA,0xF0,0xE8,0xCE,0x8F,0x60,0xF2,0x4B,0x7A,0xC3, + + 0x78,0x2A,0xD7,0xF2,0xB9,0x78,0x41,0x8C,0x2E,0xE4,0xC1,0x47,0x7A,0x48,0x34,0x7A, + + 0x2C,0x20,0xC0,0x0E,0x1F,0x22,0xF2,0x3B,0x14,0xC0,0xEC,0x5A,0xA3,0x43,0x6E,0xEC, + + 0x8F,0x25,0xF3,0x1A,0x90,0xCA,0x02,0xC4,0xE1,0xC4,0x71,0xB7,0xD0,0xEF,0x35,0xEB, + + 0x43,0xC8,0x9D,0x3B,0x68,0x0B,0x27,0xA9,0x05,0x85,0x2C,0xD0,0xF8,0xA8,0x27,0xF9, + + 0x21,0x76,0x00,0xBA,0x48,0xB5,0xC4,0xB9,0x04,0x68,0x11,0xD3,0x7C,0x1D,0xF1,0x0D, + + 0xD0,0x84,0x0E,0x31,0xD4,0xEF,0xA6,0x94,0xC1,0x31,0x52,0x1C,0x3C,0xB0,0x7F,0x5C, + + 0xC7,0x9C,0x6A,0x4F,0x75,0x00,0xAE,0xBA,0x4B,0x6D,0x4C,0x4F,0x67,0x42,0xE3,0x28, + + 0x16,0x2A,0x58,0xDC,0xB4,0xA4,0x15,0xDB,0x3B,0x68,0x8D,0x68,0xFA,0x65,0xCF,0xDF, + + 0x8D,0x29,0xBB,0xBF,0xDD,0x0F,0x2D,0x74,0xB3,0xD4,0x5B,0x0D,0xBD,0x93,0xA4,0xA1, + + 0xC2,0x3D,0xDA,0x81,0x81,0xBF,0xF4,0x93,0x8A,0xD8,0x8C,0x58,0xD8,0xFD,0xAC,0x91, + + 0x8A,0x97,0x3C,0xAF,0xDE,0xF5,0xFC,0x33,0x7D,0x93,0x9A,0x9E,0xF9,0xB3,0x38,0xF3, + + 0xAC,0x9B,0x11,0xE8,0x17,0x39,0xB0,0x27,0xE6,0x13,0x4A,0xB4,0xCC,0xB6,0x87,0x26, + + 0x04,0x4C,0xF7,0x05,0xC7,0xF1,0x2B,0x04,0xE6,0xB3,0x7D,0x40,0xF4,0x73,0xC3,0x72, + + 0x20,0x96,0xF0,0xC4,0x7A,0x19,0xB4,0x62,0x28,0x96,0xCC,0x19,0x9F,0x8C,0xAC,0x52, + + 0x69,0xD7,0xB5,0xFE,0xDE,0x64,0x82,0x76,0x25,0xD7,0x84,0xF2,0x9E,0xAD,0xD5,0x47, + + 0xA8,0x85,0x7C,0x75,0xB2,0x16,0xB5,0x71,0xE0,0xD4,0xE3,0x85,0xD2,0x5D,0x2D,0x31, + + 0xA1,0x15,0x15,0xD8,0x95,0xAC,0x75,0xE3,0x98,0xF7,0xCF,0x04,0x73,0x53,0x92,0xE8, + + 0xD3,0x9E,0xE6,0x3F,0xC7,0x33,0x0C,0x59,0x19,0x73,0x69,0xAF,0xFC,0xB8,0x5A,0xDA, + + 0x65,0xDB,0xF4,0xD5,0x4B,0xFB,0x86,0x45,0x6B,0x48,0x7E,0x3A,0xB7,0xF4,0x09,0xCA, + + 0xAA,0xD8,0x1B,0xB2,0x57,0xFE,0x2A,0xAE,0xDF,0x3B,0x68,0xAF,0x20,0x0B,0xEB,0x9F, + + 0x2D,0x9B,0x6F,0x44,0xF5,0x7A,0x0B,0x3F,0xEF,0xB6,0x44,0x98,0x5C,0xB9,0x26,0x8A, + + 0x6E,0x67,0xF5,0xA8,0x7E,0xF3,0x56,0xEE,0x11,0xDC,0x8E,0xE9,0x5A,0x77,0x6E,0x95, + + 0xD2,0xE1,0x6C,0x1E,0x2B,0x48,0x3E,0xDC,0x69,0xBF,0x5E,0x8C,0x1D,0x31,0x63,0xC9, + + 0xAA,0x65,0xD9,0xF6,0x33,0x38,0xDA,0x94,0x73,0x9C,0xCC,0xDE,0x86,0x51,0xAF,0x5B, + + 0x0B,0xDD,0xF8,0xCE,0xC7,0xFD,0x73,0x7F,0xED,0x3D,0x81,0xF8,0xDB,0xFF,0x3A,0xE8, + + 0x56,0x4F,0xBE,0x64,0x78,0x03,0x4F,0x56,0xCD,0x96,0x40,0x35,0x72,0x64,0xA4,0xF8, + + 0x81,0xCC,0xAA,0xFC,0x0F,0x6E,0xE3,0xC6,0x72,0xFA,0xDC,0xDC,0x13,0x2C,0x58,0x91, + + 0x25,0xFD,0xC3,0x16,0xBA,0x2D,0x19,0x31,0x3D,0xC3,0xE5,0x34,0xAC,0x43,0xEE,0xE2, + + 0xFD,0x18,0xB3,0xE6,0xB7,0x8C,0xA3,0xCE,0xF2,0x21,0xF9,0x63,0x34,0x6C,0x47,0xC4, + + 0x5D,0xDD,0x0B,0xD3,0x92,0xC5,0xB7,0x9F,0xB3,0xE2,0x40,0x16,0xB9,0x55,0xFF,0x48, + + 0x05,0xDF,0x0A,0x32,0xEC,0x3E,0x03,0x70,0x45,0x05,0xEB,0x85,0x27,0x67,0x18,0x55, + + 0x7F,0x49,0x01,0x99,0x5C,0x3D,0x29,0x9F,0x3A,0x4F,0xAF,0x49,0xB9,0xD7,0xE6,0xB9, + + 0xC3,0xFA,0x0A,0x33,0x1E,0xD1,0xF4,0x99,0xDB,0x9A,0x86,0xF5,0xA0,0x12,0xA2,0x8C, + + 0x64,0xF4,0x15,0xE4,0x06,0x65,0xEA,0xC0,0x12,0x05,0xCB,0x2E,0xBD,0x0D,0xD4,0xEC, + + 0x55,0xA4,0x6D,0xDC,0x6C,0x6B,0x4A,0x28,0x5D,0x04,0x2E,0xDE,0x6A,0xF9,0x25,0xEB, + + 0xA2,0x11,0x7C,0x7E,0xE4,0x46,0x84,0xC1,0x82,0x05,0xEB,0xC4,0xC4,0x07,0x5F,0x79, + + 0xC9,0xC4,0x1D,0x2A,0x9F,0x8B,0x42,0xBC,0x6E,0x50,0x23,0x1A,0x7A,0x0E,0xBA,0xCC, + + 0x11,0x77,0x8A,0x55,0x1C,0xD6,0xAA,0x60,0xB7,0x03,0x65,0x44,0x5C,0x75,0x13,0xDA, + + 0x4E,0xF2,0x93,0xC0,0xBE,0xAD,0xD9,0x0B,0x53,0xE4,0x1A,0xBC,0x0E,0x67,0xF3,0xC9, + + 0x6B,0x6D,0x98,0xC9,0x87,0xF7,0x0D,0x20,0xCA,0x4A,0x55,0x1F,0x31,0x8F,0x12,0xD5, + + 0x2E,0xD0,0x33,0x5F,0x83,0x34,0xDA,0x99,0x83,0xE4,0x0F,0xF9,0xD8,0xBF,0xFE,0x68, + + 0x6E,0x5F,0xAC,0x83,0xB1,0x74,0xD4,0x95,0xBD,0x4B,0x9B,0xA4,0x1B,0xA8,0x5C,0x8D, + + 0x80,0x7D,0xF1,0xB3,0x90,0x6E,0xDC,0x7C,0xFC,0x4A,0xC2,0x74,0x71,0xDA,0x55,0x99, + + 0xBE,0x14,0xBD,0x6F,0x1C,0x3F,0x4E,0xD2,0x43,0x9D,0x95,0x54,0xAD,0x72,0x54,0x68, + + 0x67,0x28,0x39,0xF7,0x0E,0x2E,0xC0,0xCE,0x06,0xDE,0xD1,0xB5,0x10,0x0C,0x1D,0x28, + + 0xC7,0x6B,0xFA,0xEC,0xBF,0x92,0x2A,0x20,0x72,0x19,0xAD,0x60,0x31,0xBF,0x7E,0xC3, + + 0x02,0x1A,0xAC,0x82,0x5E,0x38,0x9C,0x3C,0x40,0x17,0xA4,0xD3,0x8E,0x7A,0x7B,0xCD, + + 0x3E,0x19,0x0E,0x85,0xBA,0x77,0x2B,0x20,0x1A,0x6E,0x15,0x25,0xA6,0xAB,0x7F,0x2E, + + 0x90,0xF7,0xBF,0xFB,0xC3,0x52,0x12,0x8A,0x0A,0x67,0xDB,0xC0,0x73,0x6B,0x41,0x6F, + + 0x1B,0xAA,0xAE,0xEE,0x81,0x34,0x4F,0x55,0x8F,0x5E,0xE9,0x53,0x7E,0x22,0x0B,0x6A, + + 0x69,0x56,0x75,0x67,0xCA,0xB2,0xDB,0x5E,0xCC,0x52,0x5D,0xDA,0x58,0x39,0xBF,0x76, + + 0x8A,0xF7,0xBF,0xFF,0xC7,0x1A,0x37,0xAF,0x49,0x41,0xCF,0xCC,0xC4,0x61,0x37,0x71, + + 0xD2,0xD4,0xDB,0xAC,0x9F,0x24,0x9F,0xA9,0x4E,0x40,0x83,0xAD,0x10,0x4B,0x78,0x2A, + + 0x8D,0x0C,0xFE,0x7E,0x71,0xDD,0xBA,0x7B,0x7E,0x54,0xE1,0xC4,0x86,0xAD,0x17,0x54, + + 0x8E,0x16,0x5E,0xFB,0x9A,0xBA,0x00,0xF1,0x6B,0x13,0x24,0x8E,0x90,0x9C,0xF8,0x2F, + + 0x1E,0xAE,0x73,0xAF,0x58,0x94,0x9D,0x6D,0xB5,0x54,0x64,0xD4,0xFC,0x17,0xCF,0xF7, + + 0xFB,0x04,0x7E,0x44,0x39,0xF3,0xDC,0x3F,0xE7,0x44,0x1F,0x3D,0xAE,0x75,0x79,0x04, + + 0x40,0x9B,0xD6,0x06,0x14,0xA0,0x6F,0x54,0x77,0x62,0xEA,0x27,0xF7,0xA2,0xA9,0x52, + + 0x41,0x4A,0xCE,0xB7,0xEA,0x0C,0x58,0x92,0x5D,0xCE,0xE3,0x02,0xD7,0x2D,0x81,0x75, + + 0x0B,0x04,0xA1,0x40,0x7D,0xAB,0xC9,0xCB,0xCA,0x8F,0x27,0xA9,0x75,0xF9,0xA8,0xFB, + + 0xEA,0x48,0x79,0xD0,0x4B,0xAB,0x60,0xA2,0x60,0xC5,0x04,0xD5,0xF1,0xEF,0x4A,0xE7, + + 0x28,0x0E,0x23,0x34,0xB1,0xEA,0x7D,0x67,0xC6,0xA4,0xC8,0x98,0xFA,0xE9,0x95,0x69, + + 0x26,0x70,0x28,0x02,0xE7,0xAB,0x7D,0xE2,0xB8,0x80,0x41,0xD3,0x9D,0xE8,0x49,0x1E, + + 0xC7,0x85,0x65,0xC3,0x89,0x5B,0x2F,0x2A,0xCE,0x6B,0x0C,0x29,0x23,0xBA,0xE8,0xD7, + + 0xD8,0xC0,0x81,0x95,0x13,0xA9,0xFB,0xD4,0x26,0xA4,0x84,0x9D,0x23,0x96,0xA5,0x88, + + 0x2E,0xB8,0x22,0x11,0x3A,0x25,0x62,0x37,0xEF,0xD3,0x8A,0x6C,0xFF,0xE4,0x82,0x0A, + + 0xEC,0x92,0x06,0x8D,0x37,0xA3,0x63,0xC3,0xA8,0x3F,0xD2,0xCF,0xDE,0xEB,0x1B,0xE3, + + 0xF7,0x45,0xDD,0xAF,0x75,0xA9,0x71,0x4D,0x33,0xA6,0x17,0x6D,0x58,0xE6,0x6C,0xFD, + + 0xBE,0xB0,0xA2,0x9B,0xF1,0x4E,0x45,0x06,0xFE,0x10,0xEB,0x32,0xCF,0x40,0x3B,0x5A, + + 0xAB,0x73,0x46,0x8C,0xBD,0xA2,0x8F,0x9B,0x17,0xCC,0x45,0x56,0xAB,0x8F,0x34,0x03, + + 0x0F,0xF8,0xB3,0xA7,0xBA,0x02,0xF1,0x72,0xEA,0x62,0x3A,0x7B,0xFC,0x60,0x3A,0x5F, + + 0x2B,0x31,0xDB,0xEB,0x1B,0xCF,0x2A,0x7E,0x6B,0x61,0x95,0x0D,0x25,0x71,0x73,0xDF, + + 0xD0,0x58,0xFA,0xAF,0x60,0xE0,0xF4,0x93,0xD7,0x82,0x26,0x7D,0x68,0xD0,0xCC,0x92, + + 0x22,0x6A,0x1C,0x6D,0x87,0xF2,0xF1,0xC4,0xEB,0x56,0xAE,0xA7,0x55,0xB0,0xD3,0x7A, + + 0x5E,0x5C,0xD1,0x54,0x94,0xAE,0xBB,0x54,0x56,0xA3,0x04,0x56,0x37,0x04,0xF5,0x6B, + + 0xE6,0xDF,0xA3,0x26,0x37,0xBF,0xB2,0xE3,0xE8,0x59,0xB9,0x2C,0xC7,0xA0,0xC1,0x0C, + + 0xA6,0xF3,0x10,0xCA,0x4A,0xEE,0x85,0x4C,0x0C,0xDA,0xBE,0x33,0xAA,0x2A,0xBD,0xB4, + + 0x46,0x6B,0xFB,0xA4,0xC1,0xD1,0x2D,0xF6,0x5D,0xCF,0x6A,0x95,0x1A,0x75,0x97,0xE9, + + 0x33,0x0E,0x71,0xB4,0xC4,0xD0,0x9E,0xB2,0x66,0xCE,0x07,0x89,0x1F,0xF8,0x9A,0xB1, + + 0xC4,0x69,0xDD,0x38,0x34,0x7A,0xCB,0xA4,0xD5,0x8D,0x75,0x18,0x17,0x95,0x6D,0x57, + + 0xA3,0xEB,0xD5,0x2C,0xCA,0xBC,0x24,0x07,0xE7,0xCC,0x02,0x89,0xD9,0x28,0x99,0x9A, + + 0xCB,0x83,0x2D,0x70,0x85,0x00,0x91,0x48,0xAC,0x77,0xEF,0xBE,0x81,0xB7,0x77,0x98, + + 0xC8,0x6F,0xC6,0x98,0xBE,0xDD,0x46,0xA8,0x84,0xD6,0x11,0x56,0x39,0x04,0x60,0xED, + + 0x53,0xF6,0xD8,0xE5,0xED,0x25,0x63,0xD8,0xCD,0x2E,0x00,0xB6,0xFA,0x20,0xD0,0x0B, + + 0x5A,0x80,0x6F,0x8E,0x67,0x1B,0x27,0xBF,0xA5,0xF8,0x47,0xBD,0xFB,0x0E,0xD9,0xE6, + + 0xD5,0x01,0x66,0xB4,0x4B,0xB7,0x52,0xFE,0x4C,0xEC,0xC8,0xD2,0x02,0x53,0x56,0xC9, + + 0x3B,0x92,0xFD,0xDC,0x7B,0xF1,0x27,0x66,0x0C,0xFD,0x80,0xF9,0xDE,0x22,0xB4,0x31, + + 0x13,0x3F,0x65,0xD5,0x82,0x0A,0xA5,0x4B,0xEE,0xBD,0x57,0x9C,0x86,0x2D,0x5D,0x24, + + 0x22,0x22,0x2F,0x99,0xA9,0xD3,0x87,0xBD,0xE3,0x9D,0x4B,0x9D,0x00,0x5B,0x93,0x06, + + 0xC8,0xB1,0xE6,0x3C,0x11,0xA0,0x30,0xCA,0x29,0x31,0xAE,0x08,0xDD,0x02,0x36,0x25, + + 0x07,0xA1,0x8E,0x3D,0x91,0xA6,0x8C,0x90,0x6D,0x23,0x58,0x37,0xD0,0x6C,0xA5,0xF0, + + 0x23,0x42,0x22,0x3D,0x4C,0x93,0x70,0x61,0xC4,0x0C,0x6A,0x56,0xEC,0x20,0xF6,0x73, + + 0x72,0x66,0x25,0x66,0xAD,0x85,0x09,0xB9,0x95,0x01,0x26,0x77,0x70,0xB6,0x8B,0xC9, + + 0xD6,0x07,0x88,0x55,0x79,0xE7,0x17,0x27,0x44,0x26,0x2D,0x16,0xE5,0x5B,0x38,0x32, + + 0xF0,0x60,0x1E,0x93,0xD1,0x37,0x9C,0x6E,0x40,0xE5,0x08,0x8E,0xA8,0x27,0xE6,0xE0, + + 0x00,0xAA,0x41,0x47,0x86,0x8B,0xDC,0xA1,0xD6,0x04,0xA8,0x5B,0xF8,0x93,0x71,0xAA, + + 0x7F,0xF6,0xC1,0x50,0xF8,0xE4,0x07,0xC0,0xD3,0x43,0x5D,0x97,0x32,0x1C,0x3A,0xF3, + + 0x85,0xF5,0x15,0xFF,0x24,0x85,0x5A,0x28,0x58,0x0A,0x03,0x13,0x64,0x2A,0xF1,0x9C, + + 0x0A,0xD9,0x1B,0x5B,0xF0,0x98,0x1C,0x21,0x48,0x69,0x65,0xFE,0xF8,0xB6,0x64,0xF6, + + 0x7D,0x9C,0x12,0x9E,0xEC,0x85,0x5B,0x8D,0x47,0x08,0x53,0x5E,0x5B,0x67,0x33,0xE3, + + 0x25,0x06,0xED,0xBC,0x72,0x9A,0x8B,0xFE,0xED,0x27,0x5B,0x2D,0xE6,0xC6,0xF1,0x74, + + 0x0C,0xD6,0x46,0x3F,0x70,0xA5,0x55,0xEC,0x44,0x14,0x52,0x82,0xE1,0x73,0xE3,0x26, + + 0x9E,0x0B,0x9C,0xEE,0x4B,0x5D,0xF9,0x38,0x47,0xE6,0xF2,0x1E,0xA6,0x61,0x06,0x06, + + 0x77,0x72,0xC1,0x2D,0xD2,0x83,0x1B,0x61,0xCC,0x2C,0x13,0x68,0x79,0xB3,0x65,0x67, + + 0x8D,0x6D,0xF5,0xEC,0xFB,0x4F,0x0D,0x61,0x3F,0x4C,0xE3,0x95,0xC7,0x22,0x52,0xA9, + + 0xCB,0x21,0x67,0x44,0x2A,0x5C,0x2A,0x89,0xED,0xF6,0x6F,0xD7,0x08,0x32,0x32,0xB8, + + 0x49,0x1C,0xB2,0xB8,0xFB,0xA0,0x09,0x34,0x63,0x59,0x23,0xF6,0xD0,0xA4,0x03,0xB4, + + 0x20,0x94,0xBB,0xA8,0x7A,0x83,0x04,0x61,0xA9,0xFF,0x55,0xA6,0x71,0x7F,0x1F,0x2B, + + 0x4A,0x57,0xC5,0x9D,0x79,0xA2,0xDD,0x31,0xAF,0xAC,0x8E,0x8A,0x89,0x31,0x34,0x44, + + 0x2C,0x7F,0x9A,0x61,0xB2,0x9F,0x00,0x65,0x1A,0xAB,0x2B,0x14,0xA4,0xD5,0xDF,0x10, + + 0x6B,0xBE,0xA7,0x24,0xB3,0x3A,0x0C,0xCB,0x49,0x17,0x8E,0xBB,0x98,0x11,0x23,0xFC, + + 0x57,0xB0,0x97,0xC3,0x30,0x4A,0x6E,0x5D,0x15,0xC3,0x42,0x16,0x76,0xFB,0x99,0xD0, + + 0x23,0x35,0x94,0x45,0x16,0x31,0xDD,0x2A,0x3F,0xB4,0xE5,0x0B,0x7E,0x8A,0x3C,0x38, + + 0x9C,0xB7,0x17,0x9F,0x40,0x49,0xBA,0x3B,0x14,0x85,0x56,0xDF,0xFB,0x75,0x36,0x63, + + 0xD8,0x75,0x9D,0x8F,0x05,0x88,0xBD,0x84,0xB5,0xA8,0x5E,0xAC,0x46,0xD4,0xA3,0xEB, + + 0x5B,0x7F,0xA7,0x99,0x70,0x6B,0x71,0x95,0xEB,0xDA,0x68,0x6F,0x59,0xA5,0xCB,0x67, + + 0x50,0x79,0xB5,0x6E,0x81,0x96,0xF3,0xC6,0x23,0x2A,0x8A,0x39,0xFB,0xC1,0xF9,0xB9, + + 0x56,0x17,0x6B,0x53,0x99,0x97,0x76,0xED,0x01,0xBF,0x35,0x2E,0xFE,0x72,0x16,0xC8, + + 0xC0,0x7E,0x62,0x4E,0x77,0x35,0x3C,0xE8,0x68,0xFD,0x84,0xF9,0x13,0xFE,0xC3,0xB7, + + 0xC3,0xCF,0x50,0xCC,0x53,0xCF,0x87,0x9A,0x84,0x30,0x73,0x0F,0xB2,0x8F,0x6F,0xDC, + + 0xC0,0x7C,0x4F,0xBE,0x52,0x9B,0x65,0x0A,0x8D,0x5B,0xA1,0x4D,0x1A,0xDC,0x5F,0x45, + + 0xF9,0x36,0x9E,0x3E,0xDE,0xA3,0xA0,0x3D,0x74,0x82,0xA5,0xA2,0x56,0xE8,0x56,0x3F, + + 0x27,0x6C,0xBF,0x92,0x1B,0x06,0x46,0x1F,0x91,0x10,0xAD,0xB2,0x57,0x31,0x5F,0x3B, + + 0x71,0x14,0xDF,0x3F,0x63,0x57,0xF1,0x9A,0x10,0x93,0x71,0xA7,0x22,0x4F,0xAC,0x54, + + 0x64,0x25,0x97,0x3A,0x4B,0x0E,0x47,0x0E,0x47,0xFF,0x15,0xA4,0xFF,0x1C,0xBC,0xD1, + + 0x7E,0x59,0x4C,0xD5,0x70,0x0B,0xC7,0xC3,0x40,0xA6,0x0B,0x6E,0xF3,0x9B,0x36,0xF6, + + 0x0F,0x81,0xBE,0x67,0x71,0x0A,0xC1,0xEC,0x44,0x04,0x85,0x9C,0xD4,0xE8,0x07,0x7B, + + 0x85,0x26,0xB3,0x45,0xD2,0x0B,0xC1,0x24,0x7B,0x30,0x58,0x19,0x43,0x6B,0x2D,0x2C, + + 0xEE,0x36,0xBB,0x68,0xF5,0xE6,0xD2,0x1D,0x12,0x3B,0x06,0xB5,0x76,0x38,0x31,0xF9, + + 0x7C,0x05,0x33,0x90,0x1D,0x58,0x8E,0x48,0xBB,0xAD,0x09,0xBD,0x7E,0x37,0x14,0x22, + + 0x65,0xD8,0x6A,0x9B,0xF7,0x04,0x6E,0x24,0x3D,0x66,0x45,0xBA,0x5F,0xAD,0x45,0x26, + + 0x67,0xFB,0x10,0x23,0x60,0xDB,0x0B,0x35,0xEE,0x65,0x89,0xD5,0x27,0x91,0x55,0x37, + + 0x64,0xFA,0xBC,0x80,0x74,0x3A,0x2C,0x49,0x26,0xFA,0x85,0x07,0x50,0x89,0x3A,0x4F, + + 0xFB,0x25,0x82,0x4C,0x2F,0xA1,0xCF,0x35,0x35,0x9C,0x32,0x7E,0x61,0xAE,0xBA,0x58, + + 0x03,0x26,0xD2,0xA5,0xEA,0x02,0x38,0xCB,0xA6,0xCE,0x3A,0x4B,0xD2,0xE1,0x70,0xAB, + + 0xCE,0x21,0x18,0xCD,0x1E,0x47,0xB3,0x6F,0x53,0x8C,0x65,0x28,0x23,0xE1,0xBB,0xA4, + + 0x0D,0x23,0xBF,0x24,0x74,0xEC,0xD7,0xFE,0x38,0x62,0x5F,0x3D,0x5B,0xE2,0xDB,0xC5, + + 0xCD,0xC1,0xB1,0xC1,0xFE,0xA1,0x8F,0x31,0x50,0xD8,0x74,0x26,0x82,0x50,0x64,0x96, + + 0xA2,0xF0,0x92,0xBF,0x33,0xB3,0xA9,0xC1,0x5D,0x93,0xBC,0x92,0xA1,0x60,0xC2,0xF0, + + 0x9C,0x44,0xAD,0x83,0x1C,0x5F,0x37,0xBD,0xD0,0x26,0xA0,0x84,0xAB,0x09,0x81,0xE8, + + 0x6F,0xC2,0xA5,0x13,0xB7,0x51,0x7D,0xAF,0x1A,0xBF,0x1A,0x8E,0x25,0x22,0x9B,0x46, + + 0x28,0xCC,0xB6,0xC0,0xFE,0xD7,0x24,0x91,0x08,0xBA,0x20,0x15,0x58,0xD9,0xCF,0x92, + + 0x6F,0x18,0xB6,0x0C,0x5F,0x44,0x42,0x47,0xE8,0x53,0x9C,0xB9,0x9F,0xFA,0x6D,0xCF, + + 0xA0,0xF4,0x41,0xE0,0x17,0x49,0x17,0xF3,0xE7,0x46,0x3F,0x0F,0x76,0x3B,0x13,0x62, + + 0x27,0x46,0x93,0xD1,0x56,0x34,0xFC,0x33,0xAF,0x7C,0xA4,0x0E,0x12,0x08,0x58,0xB2, + + 0xDD,0x3E,0x0A,0x1D,0x40,0x47,0x50,0x0B,0x99,0x7E,0x91,0x93,0x9D,0x57,0xCE,0xEC, + + 0xD2,0xF7,0x94,0x64,0xC6,0xC2,0x6E,0xA5,0x47,0xB7,0x90,0x80,0xDC,0x66,0x32,0x78, + + 0x90,0x81,0x1C,0x1C,0xC8,0x65,0x67,0x6B,0xAC,0x0E,0xE5,0x5C,0x96,0xFC,0x11,0xA3, + + 0x73,0x10,0x50,0x1B,0xBF,0xFF,0x80,0x28,0x95,0x06,0x0B,0xDD,0x06,0xB9,0xCA,0x4E, + + 0x20,0xE4,0x4B,0x3D,0xB2,0x41,0xA4,0xEB,0xEE,0x6E,0x36,0x36,0xDD,0xFA,0xAA,0xC4, + + 0x2C,0x3D,0xC8,0x7B,0xB3,0xD8,0xFF,0xBA,0x3F,0x70,0x6E,0x7C,0x7E,0x90,0x6F,0xC6, + + 0x21,0xDC,0x9F,0xDC,0xDC,0xFA,0x49,0x5E,0x61,0x58,0x5A,0x8A,0x03,0xF1,0x31,0x6A, + + 0xEF,0x9B,0x5B,0xBD,0x54,0xBC,0xA9,0x3C,0x2D,0xCD,0x40,0x1D,0xDB,0xFF,0x5E,0x34, + + 0x1C,0x06,0x92,0x04,0xEF,0xAD,0x4F,0x21,0x46,0x63,0x28,0xCB,0x2B,0x78,0xA1,0x6F, + + 0xA2,0x07,0x9A,0x30,0x17,0x52,0x1E,0x42,0xAA,0xA0,0x43,0xB2,0x57,0x22,0x28,0x42, + + 0x86,0x71,0x50,0x81,0xE2,0x40,0xD0,0x52,0x8F,0x4B,0xCA,0xA6,0xAF,0xFA,0x20,0x57, + + 0x87,0x70,0x64,0x04,0xF9,0x03,0x67,0x19,0xC7,0x30,0x8F,0xF5,0xED,0x78,0x80,0xC0, + + 0xDF,0x46,0x9A,0x7D,0x7A,0x35,0xC6,0x06,0xFD,0xE9,0x03,0xE0,0x50,0xC7,0x2C,0x18, + + 0xA2,0x9A,0x4F,0x56,0xDC,0x85,0x12,0x03,0x73,0x07,0xB0,0x16,0xA4,0x27,0x01,0xD4, + + 0x7D,0x00,0xB8,0x13,0x67,0xEA,0x40,0x26,0x5C,0x4C,0xAE,0xA7,0x73,0x99,0xFD,0x33, + + 0x0E,0xF1,0xD8,0x26,0xA3,0xA0,0x19,0x31,0xC5,0x65,0x12,0xFC,0x07,0x64,0xAB,0x77, + + 0xAB,0x0E,0x34,0xFD,0x65,0xD7,0x39,0x5B,0x78,0x47,0x01,0x4A,0xE7,0xC3,0x72,0x7A, + + 0xF2,0x00,0x47,0xF4,0x1F,0x21,0xB7,0x47,0xEA,0xE9,0xC1,0xBF,0x26,0xF1,0x2A,0xAF, + + 0x29,0x88,0xB9,0xFE,0xD7,0x6A,0x2D,0x1C,0xCE,0x39,0x00,0x2C,0xA3,0x72,0x07,0x9B, + + 0x01,0x93,0x8B,0x03,0xF5,0xDF,0x0D,0x4A,0xA1,0x27,0x40,0xBB,0xDF,0x08,0x79,0xD6, + + 0x09,0x7C,0xC0,0x12,0xFB,0x83,0xD2,0x87,0xC7,0xEA,0x75,0xCD,0x92,0xFD,0x76,0x49, + + 0x60,0xF4,0xDB,0xB6,0xFE,0x6F,0x12,0x6D,0xDF,0x7C,0x84,0x9E,0x5F,0xC0,0x1A,0x99, + + 0x2F,0x0D,0xD2,0xBD,0xE2,0x8F,0xC2,0x07,0x00,0x7F,0x73,0x7E,0xE6,0x0A,0x42,0x5B, + + 0x87,0xA4,0x8B,0x1D,0x9D,0x2D,0xFE,0x55,0x03,0x5E,0x4C,0xF9,0x93,0x90,0x56,0xD7, + + 0xCB,0x74,0xE6,0x80,0x31,0x72,0x6A,0x88,0x81,0xEF,0x02,0x20,0x72,0x99,0x1A,0xA1, + + 0xCA,0x55,0xC4,0x8C,0xC4,0xB7,0xDC,0xF0,0x61,0x85,0x70,0x30,0x7B,0x32,0x3D,0x7E, + + 0xC3,0xEA,0x3A,0x42,0x72,0x3A,0xA2,0x89,0x14,0xB3,0x55,0x25,0xBE,0x8D,0x37,0x21, + + 0x29,0xBC,0x85,0x55,0xFD,0x28,0x8B,0xAE,0xD1,0xAE,0x95,0x39,0xF7,0x71,0x3F,0x44, + + 0x24,0x82,0xD5,0x76,0x72,0x1A,0x7F,0x8E,0xB3,0xE8,0xEC,0x1A,0x74,0xAE,0x59,0x23, + + 0x17,0xC1,0x5D,0xCE,0x0F,0x81,0xCB,0x37,0xDE,0xA3,0x08,0xCA,0x51,0x80,0x85,0x45, + + 0xD8,0xC2,0x55,0xDB,0x8A,0xC2,0xE8,0xBA,0x2A,0x47,0x90,0xFB,0xD4,0x82,0xD8,0x22, + + 0xD3,0x55,0xDE,0xDA,0xCB,0xBA,0xE4,0x6F,0xE2,0x67,0x89,0xBA,0x0E,0x0B,0xA2,0xF7, + + 0x8B,0xB8,0xCC,0xEA,0x7B,0x58,0x6D,0xDB,0x04,0xD9,0x3C,0x28,0x7A,0x9A,0x6E,0xD2, + + 0x8F,0x16,0x1E,0x18,0x3B,0x54,0xDE,0x00,0x67,0xD8,0x5E,0x38,0xC2,0x71,0x11,0x8B, + + 0x67,0x97,0xDF,0x88,0xC7,0x1A,0x17,0x56,0x09,0xC9,0x68,0x2F,0x72,0x62,0x2F,0xCD, + + 0x48,0xB4,0x4F,0x39,0xD1,0x31,0x0F,0x3D,0xD7,0x25,0x1A,0x55,0xBA,0x36,0x02,0xC4, + + 0xD1,0x80,0xB8,0xF1,0xD3,0x8D,0xFD,0x86,0xBF,0xA0,0x16,0x6D,0x69,0x70,0x54,0xF6, + + 0x0A,0x3F,0x62,0x43,0x3A,0x7D,0x0E,0xE9,0x5B,0x59,0x65,0xBE,0xDA,0x80,0xFC,0x93, + + 0x43,0xE7,0x85,0x32,0x53,0xCF,0xEA,0xB6,0x22,0x4F,0xEF,0x96,0x7B,0x73,0x71,0xA4, + + 0xCA,0x68,0xEB,0x91,0x73,0x6E,0xEF,0x8B,0x00,0x4E,0xF7,0x9F,0x0F,0x3C,0x18,0x52, + + 0x84,0x8F,0xB1,0x22,0xF5,0x0F,0x52,0xA2,0x45,0x77,0xBE,0x66,0x1A,0xA2,0x9C,0x69, + + 0xA6,0x0C,0x68,0x93,0xE3,0xA9,0x2E,0x75,0x8F,0xDB,0xEE,0xCD,0x53,0xA3,0x95,0xF3, + + 0xA0,0x8D,0xB7,0xF6,0xE9,0x5D,0x0B,0xD0,0xAC,0x6F,0xF1,0x71,0xD2,0xE0,0x57,0x22, + + 0x07,0x9F,0x2B,0x68,0xB4,0xC3,0x71,0x56,0xC3,0x50,0x6D,0xB3,0xF3,0x12,0x76,0x43, + + 0xFA,0x25,0x26,0xB9,0xFF,0xB5,0x67,0xA5,0xFB,0x62,0xC8,0x98,0xFA,0xE9,0x31,0x6A, + + 0xA2,0xEB,0x62,0xD2,0x15,0x65,0x70,0x67,0xD3,0xB4,0x47,0x34,0xF6,0x48,0xF1,0xC7, + + 0xEE,0x4A,0xF7,0x25,0x90,0x24,0x62,0x0D,0x0C,0xB7,0x0E,0x19,0x57,0xEB,0x0B,0x53, + + 0xA3,0xC5,0x16,0x24,0xA7,0x06,0xDC,0x4B,0x0F,0xD6,0x6E,0xF3,0xD5,0x62,0xD2,0x68, + + 0xF3,0x25,0x7D,0x0F,0x38,0xB3,0x70,0x1A,0x6C,0x67,0x0A,0xD5,0xD1,0x15,0xE9,0xEA, + + 0xA6,0x28,0xC8,0x1A,0x1C,0xFB,0x58,0xC9,0xC1,0xC4,0xF2,0x3B,0x36,0x48,0x35,0x4C, + + 0x52,0x80,0x35,0x69,0x63,0xC6,0x93,0x58,0x6F,0x49,0xD4,0x5D,0x1E,0xEA,0x3D,0xE8, + + 0x09,0x06,0xF2,0x23,0x38,0x74,0x45,0x0E,0x61,0xC6,0xBF,0x4C,0xB5,0xE0,0xA9,0xC3, + + 0xFB,0xE0,0xDA,0x7F,0xBF,0x2D,0xE1,0x19,0x7E,0x8E,0xCC,0x56,0x22,0x43,0xFA,0xB2, + + 0x77,0x16,0xB8,0x14,0x19,0xAF,0xFA,0x95,0xC2,0x7B,0x3A,0xFE,0x35,0x52,0xA7,0xB4, + + 0xBD,0x47,0x8D,0xBC,0x1A,0x23,0x33,0xB2,0xC8,0xEC,0x53,0x1C,0xE2,0x3D,0x6B,0xB7, + + 0xD2,0xB4,0x18,0x4E,0xAF,0x02,0xC2,0xE1,0xCC,0xFF,0x93,0x1D,0x20,0xE1,0x32,0xF1, + + 0x4C,0x91,0x65,0x02,0x36,0xDD,0xF4,0x1A,0x26,0x51,0xE4,0xC4,0x3C,0x5B,0xA8,0x6D, + + 0xC4,0x2E,0x78,0xC7,0x34,0x41,0x44,0x02,0xA7,0x93,0x82,0x87,0x56,0x92,0x1D,0x13, + + 0xA2,0x01,0xFB,0xBB,0xBC,0xF0,0xA5,0x50,0x60,0x7F,0x2A,0xFB,0x74,0xA1,0xED,0x32, + + 0xB3,0x3E,0x6D,0x17,0xD1,0xF1,0x6E,0xAB,0x34,0x0E,0x7D,0x37,0x98,0xB1,0x7C,0xCF, + + 0xCF,0x6D,0x44,0xD5,0x0E,0xD0,0xC3,0xCA,0x9B,0xB8,0x43,0x43,0x97,0x6B,0x52,0xAF, + + 0xC5,0xC2,0x3C,0xB4,0xC0,0xD0,0x26,0xCB,0x1B,0xCA,0xBC,0xF0,0xF4,0xF8,0x7F,0xEC, + + 0x87,0x36,0xDB,0xFA,0xB0,0xD4,0x17,0xF3,0xE5,0xB7,0x8A,0x0A,0xEC,0xB4,0xEA,0xA1, + + 0x4C,0x26,0xD5,0x28,0x42,0xBB,0xC7,0x0D,0x84,0x66,0x02,0x35,0x56,0x28,0xE8,0xEA, + + 0x32,0x33,0xE2,0x87,0x3A,0xFB,0x1D,0x55,0x17,0xF8,0xF6,0x3B,0x7A,0xDA,0x0E,0x0A, + + 0xC4,0x38,0x94,0x5E,0x31,0x12,0x85,0xE0,0xB4,0x24,0x2D,0xD8,0x16,0xF6,0xB1,0x8B, + + 0x47,0x8B,0x30,0xC8,0xBA,0x98,0xF7,0xEB,0xEC,0x46,0xE7,0x6F,0xCC,0xE1,0xEF,0x23, + + 0xA1,0x64,0xB9,0x9E,0x8E,0x6A,0x10,0xC4,0x5A,0x46,0x3F,0x8D,0x9D,0x73,0x18,0xF6, + + 0x1D,0x7D,0xDE,0xB1,0xBF,0xB1,0x60,0xC2,0xDD,0x11,0x9E,0x8C,0x85,0xF2,0x10,0x7A, + + 0x06,0xDF,0xDC,0xAD,0x0B,0x4C,0xF9,0x0A,0x17,0x2C,0xF8,0xE7,0x7E,0x3D,0xDF,0x5B, + + 0x45,0x6F,0xD9,0xF2,0xB8,0xBC,0x08,0x2C,0x38,0xD6,0xCF,0x15,0x71,0xBC,0x55,0x28, + + 0x9F,0x84,0x91,0xD9,0x56,0x8E,0x06,0xAD,0x16,0x13,0xC1,0xC3,0xDC,0xBF,0xEC,0x24, + + 0x06,0x82,0xC0,0xB5,0x9F,0xD6,0xAF,0xBB,0xB5,0xD6,0xB6,0x42,0x10,0xCB,0x3F,0xB1, + + 0x07,0x41,0x48,0x90,0xDC,0x63,0xB6,0xB4,0x43,0xA3,0x08,0xDC,0x99,0x2C,0x13,0xFF, + + 0x70,0x01,0xBA,0x9B,0x93,0x91,0x59,0x94,0xC6,0x00,0xE9,0x2D,0x30,0x9D,0xA4,0x63, + + 0x72,0xBC,0xC9,0xA4,0x1C,0xD5,0xB5,0xAA,0x34,0xD5,0x66,0xD8,0x2E,0xEE,0x55,0x33, + + 0x66,0xA7,0xB3,0xE1,0xDA,0x07,0xF7,0x57,0x29,0xE1,0x8A,0xE4,0xF1,0x62,0x4A,0xBB, + + 0xFC,0xDE,0xF2,0xA7,0xD9,0x8E,0xF0,0xFA,0xD7,0xD1,0xA7,0x96,0xD1,0x61,0x50,0xB2, + + 0xB2,0x5B,0x23,0x56,0xB4,0xC0,0xD1,0x90,0x22,0x06,0xDD,0x1E,0x73,0xEC,0x49,0x6B, + + 0xE7,0xB2,0xAB,0x51,0x6F,0x63,0xFC,0x6A,0xA8,0x33,0x86,0x17,0xFD,0x21,0x39,0x4A, + + 0xA9,0xB5,0xB9,0x92,0x19,0x0B,0x1A,0x05,0xCA,0x54,0xED,0xA8,0x26,0xA0,0x32,0x67, + + 0x88,0x04,0x4A,0x9C,0x57,0xA8,0xE5,0xBA,0xD8,0x24,0x22,0xC3,0x66,0x49,0x2B,0x6B, + + 0x7D,0x06,0xBE,0x89,0x9A,0x22,0x29,0x4B,0xA8,0x4B,0x34,0x1C,0xEB,0xCE,0x35,0xBC, + + 0x7D,0x48,0x9B,0xE2,0x78,0xF8,0x23,0x89,0xC9,0x94,0xC4,0x24,0xDF,0x98,0xD4,0xCC, + + 0x0E,0x70,0x71,0x4B,0xCE,0xFA,0x16,0xAE,0xD8,0x4F,0xD7,0xCC,0x42,0x8C,0x5D,0x65, + + 0xE0,0xBC,0x4A,0xAD,0xC9,0x6D,0xB8,0x6B,0x6D,0xAB,0xDE,0x7E,0x5F,0x21,0x79,0xB3, + + 0x71,0xA3,0x64,0xD2,0xF1,0x98,0xB0,0x92,0x02,0x6D,0x13,0xB9,0xD2,0x28,0x75,0x61, + + 0xFD,0xA0,0x68,0x6B,0x47,0xCA,0x61,0x8A,0x01,0xE4,0xDF,0x3B,0x83,0x69,0x97,0x32, + + 0x28,0x50,0x86,0x95,0x4C,0x34,0xD4,0x21,0x22,0x5D,0x4B,0x5A,0x54,0x20,0x10,0x54, + + 0xAC,0x50,0xB2,0xA9,0xD3,0x11,0x14,0xB5,0x1E,0x71,0x25,0x73,0xEF,0x79,0xE9,0xA5, + + 0xE8,0xE3,0x01,0x8C,0x38,0x0F,0xEA,0x25,0xA9,0x12,0xB5,0xDF,0xC7,0xC2,0x37,0x62, + + 0xDD,0x15,0x09,0x68,0xB1,0x72,0x8D,0x35,0xEB,0x47,0x1E,0x31,0xF2,0x86,0xD1,0xDA, + + 0x16,0xC1,0xFA,0x74,0x58,0x83,0x0A,0xEF,0x2C,0x1A,0x8E,0x1B,0xD1,0x36,0xF3,0x9F, + + 0xB6,0xC8,0x9A,0x6E,0xD8,0x56,0x66,0x03,0xA5,0xFA,0x1C,0x9C,0x62,0x71,0x54,0xFE, + + 0x9A,0x6A,0xBB,0x75,0x5B,0x55,0x34,0x41,0x34,0xE9,0xCC,0xAA,0x72,0xA6,0xE4,0xA3, + + 0x18,0x08,0x7A,0x61,0x47,0x94,0xBB,0x00,0x29,0x47,0xD8,0x1D,0xAB,0x3A,0x2F,0xFB, + + 0x89,0xC7,0x59,0x8D,0x1C,0x23,0xD6,0x28,0x02,0xE7,0x56,0x6C,0xC2,0x70,0xE4,0x58, + + 0x40,0x1F,0x22,0x74,0x06,0x74,0xDE,0x38,0x6A,0x1B,0x5F,0xBE,0x80,0xF4,0xB3,0xEB, + + 0xAE,0x18,0x27,0xEB,0x4F,0x85,0x49,0x4B,0xEC,0xA7,0x13,0x50,0x0F,0x3B,0x21,0x2D, + + 0x08,0xE4,0xE8,0x6D,0x39,0x94,0x5F,0x2C,0x64,0xED,0xE1,0x95,0x12,0x4A,0xF1,0xF1, + + 0xDE,0x8D,0xF1,0x7C,0xC9,0x32,0x28,0x7A,0x96,0x18,0xA4,0xE8,0x76,0x3E,0xA2,0x58, + + 0xD7,0x3D,0x11,0xDC,0x4C,0xBD,0xF9,0x67,0x80,0xEB,0x76,0xF0,0xFE,0x3D,0x87,0xD9, + + 0x95,0x5F,0xAF,0x4B,0x46,0x7F,0xE4,0xEE,0x3E,0x88,0xDD,0x94,0x7D,0x5C,0xE3,0x9B, + + 0x28,0xCB,0x0F,0x04,0xCA,0x39,0x01,0x63,0xEF,0x8B,0xCF,0xF9,0xEF,0x3D,0x79,0x06, + + 0x89,0xE3,0x5B,0x82,0x16,0x38,0x0D,0xA6,0x46,0xC8,0x3A,0x69,0xA9,0x9C,0x55,0xFD, + + 0x03,0xC3,0x44,0x89,0xE4,0x77,0xDF,0x48,0x93,0xCB,0x54,0xA4,0x59,0xE9,0x8A,0xA6, + + 0x51,0x9C,0x61,0x87,0xFE,0x1D,0xF1,0xA3,0xAE,0xAC,0x1D,0x48,0x1E,0x43,0x10,0xD1, + + 0x24,0x7C,0xE1,0x92,0x93,0xE1,0x3A,0xB7,0xC3,0x8D,0x3D,0xCA,0x22,0xA2,0x73,0x39, + + 0x6C,0xF5,0xBE,0x75,0x12,0x0F,0x12,0x66,0xBA,0x80,0xD0,0x1A,0xF7,0xE7,0xF9,0xA1, + + 0x33,0xD5,0x49,0x4C,0x8B,0x11,0xDF,0xED,0x2C,0x73,0x27,0x23,0x2C,0xD2,0x1F,0x6E, + + 0x77,0x25,0xD3,0x43,0x13,0xB0,0xC2,0x64,0x12,0x10,0x4F,0x43,0xA1,0xE2,0x49,0xE9, + + 0x7B,0x36,0xB7,0x58,0xD1,0xE9,0xF9,0x82,0x15,0x87,0x39,0xAB,0x96,0x1A,0x4A,0x68, + + 0xFB,0x86,0x4A,0x8A,0x1E,0x4A,0xF2,0xAA,0x26,0xA6,0x88,0xC0,0xE9,0x84,0x51,0x5D, + + 0x0B,0x29,0x79,0xE0,0x92,0x14,0x38,0x2B,0x31,0xCD,0x7A,0xFE,0xA1,0xAB,0x1B,0xF0, + + 0x0F,0x87,0xB1,0x2F,0x63,0x27,0xD4,0x51,0x1A,0xC2,0xD5,0x1E,0xDF,0x3A,0x2C,0xDB, + + 0xC1,0x26,0x4C,0x65,0x4B,0xA3,0xAA,0x32,0x45,0x12,0xF3,0x94,0xDC,0x8B,0xD1,0x72, + + 0xF6,0xFD,0x83,0xEE,0xC8,0x13,0xD1,0x5C,0x92,0x29,0xEA,0x6A,0xD9,0x5C,0xAA,0x4B, + + 0x25,0x79,0x94,0xEA,0xF6,0x0E,0x48,0x7E,0xCA,0xDB,0xFE,0x62,0x7F,0x5D,0x50,0x67, + + 0xBD,0xEE,0xDD,0xFB,0xF6,0x59,0x2D,0x58,0xCA,0x65,0xA3,0x66,0xD2,0xED,0x7C,0x45, + + 0xFF,0x3B,0xBD,0xE1,0x74,0x0C,0xDA,0x61,0x53,0x7B,0x7E,0xFD,0x5F,0xE7,0xE4,0xD3, + + 0x20,0x9A,0xDC,0x0E,0x91,0x39,0x8F,0x38,0x67,0xB0,0xCA,0x9F,0x9F,0x61,0x4C,0xC1, + + 0x43,0x9C,0x28,0x6B,0xCA,0xF0,0x41,0x36,0x6F,0x53,0x0D,0x87,0xC0,0x9F,0xA1,0x7E, + + 0xAC,0xD3,0x85,0x14,0x17,0xB8,0xEA,0xA2,0xC0,0x5F,0xCB,0x8A,0x1F,0xA3,0x2F,0x78, + + 0x96,0x72,0xBD,0xB7,0xA3,0x6E,0x05,0x23,0x1A,0xEE,0x58,0x77,0x8B,0xB1,0x30,0xDD, + + 0x00,0x20,0xEC,0x61,0x55,0x94,0xC6,0xFD,0x8A,0x7B,0x73,0x99,0x9F,0x84,0x12,0x44, + + 0xCC,0x73,0xB4,0xB3,0xB5,0x91,0xD4,0x78,0xF3,0x41,0x00,0x72,0x28,0x0B,0xC5,0xD9, + + 0x2A,0x1B,0x9D,0x2F,0xEE,0xFB,0x43,0x12,0x06,0x96,0x59,0x75,0xE2,0xFE,0x33,0x40, + + 0xB7,0x38,0xE5,0x27,0xFA,0xB8,0xD8,0xE8,0x8C,0xA3,0xAD,0xF7,0xFB,0xB5,0x9E,0x1A, + + 0xD3,0xA5,0x59,0xC9,0x0F,0xD1,0x9A,0x35,0x6F,0x52,0xFE,0x91,0xC9,0xBA,0x13,0x1E, + + 0x2F,0x49,0xCC,0x9E,0x3C,0xD9,0x7E,0x2F,0x92,0xE4,0x2C,0x99,0xDC,0x56,0x8B,0x14, + + 0xAF,0x63,0x1F,0x10,0xAE,0xF7,0xF7,0x2B,0x81,0x98,0xB1,0x50,0x5D,0x55,0xEF,0x1A, + + 0x5C,0xF5,0x70,0x61,0x99,0xA0,0xFF,0x3B,0xB6,0x99,0x29,0x8E,0xC5,0x54,0x04,0xD4, + + 0xF8,0x68,0x52,0x3E,0x77,0xB3,0xF2,0x2C,0xFC,0xDF,0x2B,0x48,0x78,0x87,0x0D,0xDE, + + 0xD3,0xD9,0x5A,0xCE,0x9C,0xD8,0xAC,0xE9,0x99,0x7E,0xDE,0x98,0x7F,0xFD,0x80,0x38, + + 0x74,0x35,0x53,0x3F,0xB1,0xB1,0x94,0x10,0x26,0x29,0xC0,0x6B,0xC1,0x89,0xDC,0xDC, + + 0x7B,0x5A,0xB5,0x1F,0x1C,0xDA,0x59,0x40,0x8D,0x7B,0xFF,0xFF,0xFF,0xFF,0xAD,0x7F, + + 0x9D,0x5C,0x88,0x10,0xED,0x29,0x03,0xD3,0x30,0xE2,0xB8,0x46,0xA9,0x6C,0x4A,0xE3, + + 0x31,0xAC,0x48,0x94,0xBC,0x63,0x66,0x0C,0xAA,0xB0,0x27,0x76,0xF0,0x1A,0xBA,0x4F, + + 0x69,0x0B,0x05,0x3A,0xF5,0x63,0x87,0x23,0x32,0xCF,0xA9,0x5B,0x51,0x6F,0xC2,0x81, + + 0x6A,0x32,0x9F,0x43,0xA2,0xB2,0x40,0xBB,0xC7,0xE3,0xDC,0xB1,0xD3,0x88,0x02,0x26, + + 0xFD,0x68,0xCA,0x51,0xB1,0x22,0x2E,0xC0,0xB7,0x4D,0xB0,0x20,0x69,0x6B,0x5F,0xA1, + + 0x77,0xF5,0xB0,0xD6,0x31,0x47,0x98,0x45,0xEC,0x48,0xA0,0xF6,0x56,0xBE,0x7F,0xE0, + + 0x5C,0xA9,0x91,0xD4,0xF1,0x06,0xD5,0x90,0xE0,0xB9,0xB1,0x21,0xAD,0xEB,0x10,0x57, + + 0x66,0x85,0x93,0x40,0x30,0x21,0xA6,0x02,0xE1,0x29,0xDB,0x97,0x51,0x2F,0x3C,0x68, + + 0x63,0x07,0x3A,0xEC,0x43,0x2E,0xA8,0x28,0x48,0x48,0xFA,0x4E,0xA7,0x66,0x34,0xFA, + + 0x3F,0x96,0x3E,0x7E,0xA6,0x6B,0x24,0x0D,0xC4,0xEF,0xE5,0xFE,0xF8,0xF6,0x83,0x3B, + + 0xB4,0xB5,0xAD,0x4C,0x39,0xF5,0x13,0x5B,0x23,0xAB,0xAB,0xD3,0x5B,0x67,0x35,0x30, + + 0x41,0x02,0x4B,0x77,0x9F,0xA9,0x0A,0xF9,0xDE,0x50,0x37,0xB9,0x91,0xDB,0x5C,0x61, + + 0x29,0xAC,0x92,0x54,0x79,0x4C,0xB5,0x28,0x0E,0x0E,0xF2,0x0E,0x19,0x92,0xD9,0x1F, + + 0x38,0x09,0xF2,0x0C,0x13,0x22,0x22,0x0B,0x33,0x44,0xE2,0xAC,0xE4,0x62,0x1A,0xBC, + + 0x6F,0xA1,0xBB,0xCF,0x9F,0xD4,0xC5,0x8E,0x23,0x4D,0xAB,0xEF,0xB4,0x0D,0xF1,0xC6, + + 0x74,0x14,0xAB,0xFD,0x27,0x22,0x1A,0x3E,0x01,0x2C,0xE3,0x2D,0xD3,0x60,0x22,0xA9, + + 0x4C,0xBD,0x68,0x00,0x78,0x80,0xEF,0xD3,0x58,0x2F,0xC4,0xD3,0x7C,0xDB,0x1B,0xA0, + + 0x25,0xAE,0x4C,0x51,0x85,0x3B,0x47,0x8B,0x67,0x92,0xED,0x30,0x7F,0x1A,0x93,0xE1, + + 0xA1,0xBF,0x8D,0xA9,0xCF,0x12,0xCC,0xA1,0x9B,0x4F,0x0F,0x0A,0x72,0x6E,0x37,0x20, + + 0xD1,0x8C,0x19,0x11,0xB3,0xDA,0x54,0x73,0x40,0x2C,0xC4,0x99,0x54,0x85,0xF0,0xA2, + + 0x9D,0x48,0x3F,0x26,0x93,0xBE,0x6A,0x44,0xED,0xA2,0xDC,0xAC,0x32,0x7B,0xF4,0x2F, + + 0xCA,0xA4,0x06,0xA6,0x90,0x33,0xAA,0x83,0x45,0x5A,0x12,0x9E,0xD2,0x8A,0xFE,0x8F, + + 0x91,0x84,0xBA,0x27,0x30,0x7E,0x5D,0xF5,0xE4,0xB7,0x15,0x38,0xF1,0x36,0xE1,0x4E, + + 0xA2,0x67,0x45,0x19,0x10,0x31,0x6C,0xDC,0x06,0xA8,0x6E,0xC1,0xBB,0xB6,0x58,0x25, + + 0x28,0xBC,0x46,0x0C,0x76,0x7A,0x7E,0xCA,0xDF,0x56,0xD7,0xCA,0xAE,0x70,0xBF,0xB4, + + 0xD5,0xA8,0xB0,0xF9,0x19,0x34,0x67,0xD7,0x15,0xA6,0xA6,0x42,0xD5,0x74,0x16,0x31, + + 0x14,0x6B,0xC3,0x2D,0xBB,0xAA,0x2F,0x42,0x6B,0x57,0x57,0x2F,0x35,0x87,0xBC,0xA1, + + 0xAF,0x51,0x0F,0xBC,0x0C,0x90,0xA6,0x05,0x1E,0x66,0x60,0x7A,0xCA,0x78,0x56,0xD5, + + 0x3A,0x07,0x4E,0x39,0x59,0x4D,0x68,0x4C,0xE5,0xAA,0x8C,0xAC,0x0E,0xD3,0x74,0x74, + + 0x9C,0xE8,0xF6,0x0C,0xF6,0xB5,0xCE,0xCE,0x4D,0xA8,0xA0,0xFB,0x5F,0xD2,0x80,0xAF, + + 0x96,0x61,0xBF,0x4F,0x9B,0xCF,0x5F,0xEC,0x95,0xA1,0x77,0x9F,0x98,0x5A,0x1B,0xC8, + + 0x81,0x5D,0xCE,0x3F,0x1A,0xB5,0xC8,0xDD,0x69,0x57,0x7F,0x8E,0x58,0xFC,0x58,0x30, + + 0xCC,0x8F,0xB2,0x82,0x1E,0xD9,0x51,0xA6,0x47,0x83,0xF8,0x6E,0xB5,0x1F,0x95,0x4D, + + 0xD0,0xDC,0x90,0x68,0x94,0xAC,0x10,0x50,0xF0,0xCD,0xB4,0xB2,0x57,0xB9,0xF4,0xF0, + + 0xF6,0x7E,0x89,0x65,0x6D,0xAE,0x08,0x61,0x65,0xFF,0x71,0xE2,0x60,0xE8,0x82,0xFE, + + 0x87,0xD8,0x16,0x55,0x34,0xD8,0x01,0x5C,0x44,0xCE,0x79,0xB7,0x9B,0xA1,0x27,0x24, + + 0xF1,0xE8,0xEA,0x06,0xB5,0xA2,0x38,0xE7,0xBA,0x75,0xC8,0x36,0x52,0xEB,0xBC,0xA3, + + 0x21,0x7A,0xE9,0xB4,0xBB,0x2E,0x06,0xD2,0xCA,0x63,0x7C,0xF4,0x39,0x64,0xDE,0xDD, + + 0xC4,0x29,0xB1,0x56,0x37,0x2E,0xB1,0xAF,0xC7,0x1B,0x2E,0x89,0xD0,0x3C,0x37,0x6E, + + 0x78,0x0A,0x6E,0xB5,0x15,0xA4,0xA9,0xB3,0x83,0x63,0xC3,0x95,0x7B,0x6C,0x97,0x8E, + + 0x0B,0xB6,0xA0,0x8A,0x1E,0x43,0x0C,0x17,0x24,0xC5,0xF2,0xF8,0x5F,0xB8,0xBF,0x9A, + + 0x66,0x18,0x92,0xE0,0x9E,0xA4,0xC1,0x45,0x2D,0xCB,0xBD,0xCF,0x38,0xBC,0x7D,0x27, + + 0x30,0x21,0xCB,0x6D,0x63,0xA4,0xCC,0x58,0xB8,0xA9,0x8D,0x5F,0xFE,0x47,0x9E,0xEA, + + 0xF5,0x89,0xD4,0xDD,0x3C,0x34,0xC4,0x45,0xAF,0xBE,0x9B,0x37,0x34,0x62,0x1C,0x72, + + 0xE7,0x1D,0x67,0x2C,0x5D,0xA3,0x22,0xCE,0x86,0x7D,0x0D,0x8C,0xF2,0x67,0xEA,0x1B, + + 0xB1,0xCF,0xB0,0xC7,0xBC,0xAB,0x6D,0x3B,0x69,0x8F,0x05,0x9C,0xDD,0xEE,0xCF,0xD8, + + 0xFA,0x86,0x9B,0xCD,0xBC,0x8C,0xE4,0x7A,0xBE,0x6E,0x75,0x8D,0x72,0x65,0xFD,0x55, + + 0x2E,0x50,0x63,0x9A,0x3E,0x25,0xED,0xCC,0x6E,0x30,0x6B,0x0D,0x7C,0xE9,0x49,0xF1, + + 0x14,0x3B,0x3E,0xA9,0x1C,0xED,0x63,0x59,0xD5,0x43,0x0C,0x39,0x66,0xBD,0x54,0xA3, + + 0x19,0x3E,0x2C,0xB7,0x80,0x1A,0x3A,0x99,0x8C,0xE0,0x26,0x49,0xBD,0x38,0x5D,0x87, + + 0x44,0x47,0x9B,0xF7,0x94,0x7F,0x4E,0x4B,0x76,0x90,0x56,0xE7,0xF8,0x59,0xB8,0xED, + + 0xCF,0xC2,0x37,0x39,0x9D,0xEE,0x2B,0x8E,0x0E,0x22,0x22,0x88,0x90,0xB2,0x2F,0x20, + + 0xFA,0x97,0x9D,0x24,0xB4,0x57,0xB0,0x80,0x25,0x6B,0x96,0x15,0xFA,0x29,0x13,0x2C, + + 0x21,0xF5,0x94,0x54,0x32,0xBC,0x04,0x70,0x45,0xA0,0x6C,0x06,0x4D,0x24,0x5F,0x28, + + 0x15,0x09,0x31,0xA5,0xF5,0x48,0x0D,0x81,0xA5,0xA9,0x8D,0xC0,0x0B,0xF9,0x15,0x3B, + + 0xEB,0xD5,0xD7,0x35,0x1B,0xB8,0x45,0xA3,0xA7,0xD8,0x83,0xF1,0x16,0x74,0x58,0xA6, + + 0xC5,0x91,0xFF,0xA3,0x99,0xB3,0x0C,0x1B,0x18,0x77,0x11,0x87,0xA4,0xA9,0x9D,0x78, + + 0x45,0x28,0x96,0x60,0x91,0xB4,0xD9,0x9E,0x06,0x10,0x29,0x3A,0x11,0x0F,0x79,0x69, + + 0xA8,0x1F,0xF9,0x0D,0x75,0x92,0xA4,0xBA,0x80,0xDE,0x12,0x82,0x9F,0x73,0x51,0xA2, + + 0x58,0x38,0x52,0x1B,0xB7,0xA1,0xC0,0x3F,0xE3,0x0C,0x87,0x4C,0xD7,0xE0,0x60,0x56, + + 0xBB,0x41,0x86,0x8A,0x69,0x3C,0x4E,0x3A,0xD1,0xD3,0x5C,0x1D,0xF2,0xF1,0xAE,0xEF, + + 0xBB,0xC0,0x6E,0x3C,0xBD,0xF5,0xF9,0x18,0xED,0xDE,0xAC,0x5A,0x8C,0x40,0xCE,0x84, + + 0x53,0xE2,0x9F,0xE8,0x1F,0x36,0x17,0x4B,0xEC,0x55,0xE5,0xEF,0x05,0x73,0x17,0xFC, + + 0x12,0x90,0x36,0x2F,0xB7,0xB0,0xCE,0x99,0xAC,0xD0,0xE5,0xFA,0x14,0xBB,0x23,0x07, + + 0x24,0xA1,0x15,0x80,0x12,0xEC,0x02,0x47,0xAB,0x04,0x1A,0xA0,0x52,0xC3,0xA8,0x62, + + 0x63,0x1D,0x48,0x91,0x96,0x29,0x0E,0x52,0x21,0x2C,0xFD,0xB0,0x57,0xDF,0x39,0x31, + + 0x0D,0xAD,0x41,0x85,0xDE,0xDD,0x2B,0x91,0x51,0x03,0xEE,0x5A,0xD6,0x40,0x77,0x16, + + 0x20,0xDC,0x8F,0x91,0x9F,0x63,0x67,0x37,0x20,0xC0,0x1E,0x8A,0xC1,0xDE,0xE0,0x33, + + 0x6A,0xD7,0x92,0x46,0xA5,0x66,0xDB,0x02,0x4C,0x02,0xEE,0xC5,0xA6,0x67,0xFC,0x32, + + 0xFC,0xA1,0x82,0x41,0x32,0xC5,0x64,0x21,0xC1,0x41,0x1C,0x2A,0x5D,0x7B,0x3F,0x46, + + 0x23,0xD9,0x41,0xE3,0x79,0xD7,0xC1,0x41,0xE6,0x06,0x88,0x61,0x07,0x0A,0xDB,0x57, + + 0x4B,0xA6,0xF7,0x68,0x70,0x2E,0x38,0x13,0xF0,0x03,0xA4,0x86,0xFD,0xB3,0xB6,0x6A, + + 0x2C,0xD7,0xA2,0x0C,0x9A,0x34,0x3F,0x0C,0xD5,0xB5,0x02,0x32,0x30,0x9C,0x1C,0x2A, + + 0x2D,0xBF,0x35,0xFE,0x1F,0x6B,0x20,0xD3,0xFA,0x08,0xA4,0x11,0xD4,0xCF,0x5D,0xEB, + + 0xC8,0xA7,0xEE,0x73,0x3B,0x4F,0xBE,0x67,0x3D,0x16,0x01,0x5F,0x33,0x1B,0x30,0x69, + + 0x09,0x14,0x5F,0xF5,0xE5,0x69,0x42,0xBD,0x6C,0xB4,0x50,0x7D,0xDD,0x47,0xE6,0x2A, + + 0xF9,0x69,0x42,0x8A,0x3A,0xA7,0xAA,0xEA,0xCA,0x6B,0x02,0xE8,0x59,0xD1,0x71,0xE4, + + 0xE0,0xEC,0xF4,0x2F,0x67,0x22,0xA5,0x84,0x4B,0x40,0x49,0x5B,0xFA,0xC2,0x7B,0x74, + + 0x61,0x1F,0xA6,0x70,0x9C,0x24,0x6B,0x09,0x84,0x03,0x13,0xAD,0x51,0xC1,0x12,0xDF, + + 0x6E,0xF0,0x4C,0xE2,0xDB,0xC1,0x24,0x81,0xCB,0x0D,0x4C,0x3A,0x11,0x4C,0xBF,0xE2, + + 0x61,0x50,0x30,0xE6,0x4C,0xCF,0x2C,0x22,0xF1,0x3E,0xAE,0x37,0x1C,0xDF,0x34,0xF2, + + 0xDE,0x17,0x4C,0x11,0xFB,0x37,0x35,0x67,0x94,0x5E,0xFA,0x98,0x98,0x40,0x7D,0xA5, + + 0x22,0xFE,0xBE,0x07,0x21,0x4C,0xD5,0x24,0x2A,0x54,0x03,0x62,0x19,0x63,0x24,0x32, + + 0x00,0x7D,0xA4,0x46,0x10,0xCC,0xA9,0xCE,0x42,0xFE,0x87,0xB7,0x42,0xDE,0x3D,0xB3, + + 0x4E,0x9D,0x7F,0x74,0x8C,0x9B,0x2C,0x00,0x22,0xA9,0x2F,0x8B,0x99,0x30,0x15,0x11, + + 0x86,0x95,0xE1,0xBB,0x1D,0x73,0x7C,0x7E,0xC2,0xD9,0x78,0x8B,0x1B,0x31,0x65,0x4B, + + 0xA1,0xB6,0x19,0xE1,0x2B,0x8B,0x5F,0x81,0x45,0x50,0x01,0x76,0x53,0xD9,0xB5,0xA2, + + 0x9F,0x55,0x59,0x8E,0x4E,0x8B,0x17,0xEC,0xA3,0x51,0x22,0x8B,0x99,0x13,0xE1,0xAC, + + 0xA7,0x1E,0x32,0xEE,0xBA,0x24,0x89,0xD8,0x3D,0x53,0x00,0xDC,0xF8,0x6E,0x6E,0xD2, + + 0x87,0x14,0x31,0x7E,0xBB,0x25,0xDE,0x3D,0xEE,0x51,0x8B,0xAF,0x49,0x28,0x2E,0x3B, + + 0x09,0xEC,0xE8,0xD2,0x1B,0x5F,0x04,0x2D,0xEE,0x39,0x9F,0xB9,0x30,0x9B,0xEC,0xBD, + + 0x2B,0x1F,0x62,0xFF,0x46,0x5E,0x19,0x3D,0xE7,0x1B,0xC6,0xA2,0x1C,0x84,0x0D,0x71, + + 0xC3,0x2D,0xF9,0xA5,0x19,0x7C,0xFC,0x7B,0xC9,0x5A,0x16,0x2C,0xF1,0xA3,0x36,0xAB, + + 0x0A,0xB6,0x79,0xA7,0x3D,0x9D,0xD9,0xE8,0xE9,0x91,0x49,0x82,0xB1,0xAC,0x3F,0xEE, + + 0x43,0x4F,0xFB,0xB2,0xBC,0x34,0x77,0x67,0x4B,0xD4,0x63,0x8F,0x77,0xD8,0x37,0xDD, + + 0x4B,0xCA,0x30,0xBF,0x50,0xEE,0xBD,0x1B,0x69,0x5B,0x97,0x7C,0x7B,0xDF,0x7A,0x00, + + 0x96,0xC1,0xE2,0xC6,0x17,0x00,0x0E,0x42,0x98,0xCF,0x2B,0x55,0x75,0x5F,0x3A,0x13, + + 0xFE,0x0C,0xA8,0x94,0x84,0x0F,0xC0,0xC1,0x78,0xC7,0xE6,0x9A,0x39,0x4A,0xE5,0x86, + + 0xC7,0x71,0x61,0x82,0x90,0xA6,0x03,0x07,0xF7,0x23,0xEA,0x27,0xEB,0xD3,0xFD,0xE9, + + 0xA1,0x85,0x12,0xF5,0x39,0x5E,0x10,0x90,0x66,0x82,0x6C,0x33,0x29,0x22,0x1F,0x85, + + 0xEF,0x95,0xF0,0x66,0x56,0x29,0xF0,0x2D,0xC4,0xC0,0xCE,0x5A,0x9C,0xE7,0x76,0x67, + + 0x95,0x8D,0x23,0x69,0x40,0x7E,0xF8,0xA9,0x74,0x81,0x7A,0x0D,0xDA,0x63,0x06,0xB3, + + 0x06,0x99,0xB8,0x40,0x31,0x04,0xBD,0x01,0x3D,0x84,0xB9,0x37,0xF4,0x87,0x6B,0xBB, + + 0xC8,0x83,0xE9,0x6C,0xB6,0x3C,0xC6,0x95,0x45,0xC3,0x79,0xB7,0xCF,0xE6,0x8C,0x45, + + 0xAD,0x77,0xDA,0xE6,0x68,0xE5,0xF2,0xAA,0x59,0x8A,0x01,0x1F,0x5A,0x50,0xBA,0xF8, + + 0xA1,0x02,0xEA,0x8B,0xE2,0xAF,0x13,0x48,0xEC,0x38,0x04,0x1A,0xD0,0x64,0x43,0x41, + + 0x6A,0x87,0x63,0x8A,0x84,0xE8,0x73,0xBE,0x33,0xCC,0x12,0x5C,0xB0,0xE9,0xAC,0xF9, + + 0x0F,0xA3,0x4B,0x47,0x3C,0x34,0xC4,0xB9,0x5C,0xA6,0xDD,0x17,0x36,0xFA,0x27,0x0D, + + 0xEF,0x7A,0xE2,0xCA,0x1A,0xD0,0x94,0x08,0x0D,0x3C,0x66,0x52,0xA7,0x82,0x91,0x1D, + + 0xE6,0x9C,0x51,0xFB,0xE8,0x50,0x5A,0xE0,0xEE,0xDD,0x3A,0xBE,0xE4,0xE5,0x9C,0x39, + + 0x4C,0x8E,0x5C,0x7E,0x3F,0x51,0x2A,0x6C,0x69,0xC8,0x91,0x62,0xDD,0xFF,0x8C,0x25, + + 0xEE,0x8B,0xF9,0xDF,0x74,0x24,0x83,0x1D,0x30,0x45,0x2B,0xFB,0xDC,0x52,0x3B,0xE0, + + 0xE5,0x1A,0x9C,0x04,0xA5,0x4E,0x14,0xA2,0xE6,0xCC,0x18,0xD5,0x40,0x06,0x54,0xB6, + + 0x16,0xB5,0xD4,0x14,0xA4,0x8F,0x83,0x50,0x63,0xD3,0xA9,0x3C,0x76,0xD8,0xA2,0x01, + + 0x86,0xE0,0x0A,0x65,0x18,0x4F,0x5B,0xDD,0x47,0xB7,0xEF,0xA5,0x47,0x5B,0x95,0x6C, + + 0x04,0x62,0x95,0x68,0x19,0xBE,0x97,0x37,0xE7,0x31,0x83,0xD7,0x95,0x0C,0x1C,0xF3, + + 0x42,0x3B,0x50,0xA4,0xDD,0x45,0x91,0x80,0xA7,0x5E,0x34,0x26,0xCD,0xFC,0x12,0xE3, + + 0x6F,0xE4,0x47,0x91,0x39,0x69,0x9A,0x10,0xE5,0xD1,0xDC,0xE7,0xCA,0x44,0xF7,0xBD, + + 0xCC,0x37,0x56,0xFB,0x85,0xD6,0xF2,0xF3,0x64,0x1A,0x74,0x88,0x8E,0x49,0x59,0x59, + + 0x83,0x4C,0x29,0x1D,0x0C,0x18,0x98,0x91,0xA4,0x27,0x82,0x94,0xF4,0x0B,0x5E,0xAE, + + 0x8D,0x47,0xC6,0xC4,0x95,0x44,0xC9,0xA2,0x6A,0x5A,0x49,0xDC,0x1E,0x07,0x67,0xAB, + + 0x8C,0x38,0xF0,0xEB,0x7D,0x34,0xFA,0xBE,0xED,0xD9,0x41,0xC0,0x53,0x26,0x93,0xE9, + + 0x53,0x37,0xDF,0xA8,0x41,0xB5,0x7F,0x6B,0xA4,0x98,0x4C,0xD0,0x94,0xF7,0x17,0xBF, + + 0xC5,0x96,0x50,0xE0,0xBB,0x39,0x5F,0xF1,0x76,0xDF,0x81,0x8B,0x81,0x54,0xCD,0x37, + + 0xE6,0xE7,0xB2,0xD0,0x1C,0xD0,0x74,0x68,0xAB,0xCA,0xC9,0xB1,0x5A,0xE7,0xA1,0x50, + + 0xAA,0xBC,0x90,0x7F,0xD6,0x6C,0x25,0xFA,0x50,0xFD,0x33,0x43,0xDE,0x22,0x66,0xB9, + + 0x55,0xDC,0xD9,0xF2,0x74,0x9D,0x0F,0x99,0x11,0x23,0x93,0x7B,0x1B,0xBC,0xC7,0xFB, + + 0x2D,0x9B,0x89,0x7F,0x54,0xBC,0x6D,0x7C,0x54,0x42,0x4B,0x9D,0x00,0xBE,0xA3,0x29, + + 0xDC,0x51,0x27,0xA0,0xC4,0x03,0x42,0xDF,0xAB,0xB1,0x03,0xD7,0xD4,0xED,0xC0,0x76, + + 0xEA,0x62,0xB2,0xE7,0x3F,0x8C,0x0B,0x43,0x3D,0xE7,0x27,0xD6,0x19,0x02,0x3E,0x61, + + 0xD4,0x19,0xA6,0xA5,0x40,0xD3,0xBD,0x52,0xE2,0xE4,0xC3,0x6A,0x3B,0x06,0x08,0x77, + + 0x6A,0x80,0x5D,0x52,0x5B,0x73,0x8C,0xF1,0x85,0xE7,0xB9,0x6A,0x30,0xCC,0x3E,0x31, + + 0x80,0x18,0x3F,0x2A,0x14,0x26,0x70,0x86,0x71,0xA5,0xC8,0x94,0x2D,0x6B,0x70,0xD2, + + 0x92,0x23,0x71,0xD0,0x19,0xB3,0x3A,0x30,0x42,0x25,0xB8,0x30,0x5C,0x68,0xFD,0x23, + + 0x7D,0x63,0x31,0xB4,0x31,0xA6,0xE9,0x92,0xD1,0x28,0x65,0x95,0x2D,0x69,0xE6,0xB3, + + 0x2F,0xFA,0x09,0xD5,0xDD,0xD8,0x07,0xB9,0xC2,0xCA,0xD3,0x74,0x70,0x61,0x62,0x0A, + + 0x17,0x0C,0xCA,0xBD,0xF1,0x6B,0x87,0x15,0x80,0xD9,0x46,0xC4,0x5E,0x25,0x74,0xBD, + + 0x19,0x44,0x88,0xF3,0x7A,0x0E,0x7C,0x00,0xA2,0x4A,0x7D,0xFC,0x0D,0x2B,0x00,0xE1, + + 0xD5,0x47,0xC9,0x0C,0x67,0xD7,0x43,0x6E,0x21,0x49,0x6C,0x5E,0xF6,0x06,0x75,0xA9, + + 0x0B,0x0F,0x9D,0xB8,0x9F,0x31,0x25,0x04,0x03,0x3A,0xD2,0x3D,0xDF,0x71,0x3A,0xCA, + + 0x93,0x61,0x7B,0xC8,0x18,0x24,0xAB,0x06,0xC7,0xEA,0xDE,0x6B,0xFB,0xE4,0x2A,0x12, + + 0x85,0xF1,0xB2,0x4C,0xAE,0xA8,0xCD,0x90,0x27,0x00,0x1E,0x1E,0x1A,0x2D,0x7B,0xB6, + + 0x26,0x03,0x03,0xCD,0x6C,0x85,0x1A,0x29,0xCE,0x67,0x93,0x8F,0x58,0x66,0x33,0x7E, + + 0x76,0x00,0xD9,0x79,0x9D,0x0D,0x24,0xEB,0xCA,0x47,0xA3,0x1F,0x9A,0xEF,0xC0,0x05, + + 0x63,0x30,0xD4,0x9E,0x4C,0x90,0x3C,0xC2,0x9D,0x5C,0x9C,0xBC,0x8D,0x79,0x19,0xAD, + + 0xE9,0x40,0xF2,0x24,0xDA,0x92,0xCC,0x34,0x13,0x17,0xFC,0xFE,0x9B,0x7E,0x1A,0xE1, + + 0xB4,0xB6,0x51,0x87,0x71,0xBF,0x2D,0x9F,0xCA,0xA7,0x90,0xD7,0x1B,0xDB,0x5D,0x79, + + 0x8A,0x17,0x56,0xDA,0xCE,0x18,0x75,0xD3,0x1E,0x5D,0x62,0x91,0xF7,0xE0,0x17,0xCA, + + 0x24,0x87,0xA8,0x64,0x66,0x16,0x6A,0xC8,0xED,0xA2,0x9C,0x2C,0xF7,0x56,0x8C,0x94, + + 0x0E,0x1D,0xBE,0xD1,0x3F,0x5B,0xAC,0x92,0x9C,0x28,0x58,0x70,0x2C,0x37,0x46,0x43, + + 0x3B,0x7B,0xA5,0x9A,0x11,0x3B,0x1D,0xFD,0x60,0x4A,0x45,0x96,0xEA,0x7D,0x4B,0xA3, + + 0x48,0xBE,0xED,0xD4,0x3E,0x3F,0xF1,0x6E,0xE0,0xD7,0x1D,0x2C,0x0A,0x3B,0x07,0x9B, + + 0x10,0xE9,0x5B,0xB4,0x43,0xC7,0x2E,0x56,0x6E,0xD8,0x1C,0xEC,0x7C,0x50,0x91,0xFE, + + 0xC2,0x3A,0x8D,0x2C,0xD8,0x96,0xDF,0x5E,0x4B,0xC9,0x1E,0xBE,0x15,0x7F,0x21,0xA5, + + 0x8A,0x01,0x47,0x50,0x2A,0x39,0xCA,0x8D,0x09,0x41,0x98,0xDE,0x91,0x71,0x0E,0xFF, + + 0x42,0x58,0x5B,0x75,0xBF,0x76,0x1C,0x3B,0x2C,0x68,0xB6,0xDA,0x58,0xA4,0xB9,0xEC, + + 0x62,0xBD,0x46,0xAD,0xB1,0x70,0xF7,0xC1,0xEA,0xDE,0x52,0xC8,0x9B,0xD3,0xDE,0x27, + + 0x8A,0x82,0xD6,0xB1,0x19,0x0D,0x1C,0x07,0xD6,0x31,0xCB,0x0F,0x4F,0x02,0x67,0x92, + + 0xD5,0x3E,0x44,0x25,0x32,0xF3,0x37,0xA3,0x4C,0x53,0x41,0x1E,0xCA,0xD1,0xFB,0xBB, + + 0x50,0x5D,0x0B,0x7D,0xBB,0x3D,0xB8,0x39,0xF3,0x1D,0x70,0x92,0x26,0x3D,0x6B,0x60, + + 0xF7,0x0C,0x36,0x69,0xB7,0x0D,0x4E,0x1F,0xC9,0x6D,0x33,0xD5,0xD8,0x1D,0x38,0x20, + + 0xCD,0x8E,0xDC,0x92,0x06,0x40,0xE8,0x41,0x6F,0x67,0x81,0x12,0x66,0x7A,0x6B,0x1E, + + 0xEF,0x8D,0x75,0x36,0x80,0x23,0xE1,0xB0,0xB4,0x6D,0xC9,0x36,0xFA,0xE6,0xBC,0xE0, + + 0xF5,0x1E,0x14,0xF5,0x69,0xE0,0xAC,0xC0,0xEF,0x16,0x01,0xD7,0xD1,0x1C,0x5A,0xB1, + + 0x6E,0x9F,0x07,0xC2,0x14,0x46,0xB0,0x0C,0xB9,0x1F,0x88,0x04,0x17,0xE5,0x7E,0x15, + + 0xD9,0x8F,0xA7,0xD2,0x15,0x72,0xF8,0x3D,0xBF,0xDF,0x80,0xF4,0x52,0xC1,0xF7,0x25, + + 0x79,0x2B,0x1E,0x29,0x90,0xA4,0x71,0x9B,0xC6,0x84,0x89,0x05,0x97,0xEE,0x7C,0x20, + + 0xEF,0xC5,0x68,0x16,0x1D,0xBC,0xB9,0x77,0x1C,0x33,0xC1,0x27,0xDF,0xE8,0x68,0x17, + + 0x67,0x87,0x11,0xAF,0xE4,0xAB,0xA5,0x15,0x6E,0x8A,0x22,0xAC,0xCD,0x4F,0x3D,0xE9, + + 0x79,0x8F,0x6A,0x0F,0x4B,0x5D,0x8D,0x8A,0xBE,0x76,0xF7,0xDE,0x49,0xAB,0x33,0x39, + + 0x44,0x85,0x90,0x32,0xAF,0x8A,0x60,0xAD,0x38,0xA9,0x8B,0xCF,0x88,0x47,0x0B,0x42, + + 0x2C,0xE9,0x7B,0x01,0xB7,0x1F,0xFB,0x3E,0x6E,0x16,0xE8,0x02,0x52,0x1D,0x31,0xB6, + + 0x08,0x1F,0x74,0x3D,0x0D,0xE3,0x63,0x68,0x4A,0x98,0x92,0x2A,0xDE,0xE1,0xAA,0x1E, + + 0x22,0x87,0xF6,0x9D,0x2C,0x7F,0x42,0x1A,0x37,0x8F,0x39,0x5E,0x05,0x2D,0x60,0xC9, + + 0x1F,0xE3,0x73,0x6F,0x92,0xEE,0x62,0xE9,0x5F,0x7A,0xF9,0x6D,0x7D,0xA0,0x2B,0x28, + + 0xE7,0xCD,0x53,0x3F,0x9B,0x86,0xBF,0xA5,0x6E,0x30,0xC1,0x84,0x20,0xAD,0x88,0xF1, + + 0x02,0x36,0x5B,0xF5,0x1A,0xDC,0x0C,0xE5,0xA6,0x72,0x00,0xC4,0xF6,0xEC,0x78,0x01, + + 0x5D,0x3E,0xE5,0x96,0xB8,0x37,0xC4,0x12,0x67,0xAB,0x7C,0x0E,0x72,0xF9,0xB6,0x70, + + 0x82,0x3F,0x42,0x47,0xB1,0xF0,0x3D,0xA6,0x87,0xF2,0xD1,0x23,0xF1,0xC8,0x79,0xD4, + + 0x4C,0x90,0xEB,0x57,0xFD,0xF1,0xFD,0x6F,0x1F,0x2E,0x7D,0x35,0x6C,0x9E,0xAF,0x4B, + + 0x02,0x6B,0x0C,0xCA,0x05,0xD6,0xB0,0x3C,0x8F,0xE5,0x7A,0x59,0x8B,0x9A,0x13,0x56, + + 0x70,0xA7,0x94,0x3E,0x7D,0xF8,0x42,0xDA,0x61,0xD7,0xC6,0x05,0x1F,0x5A,0x5D,0x39, + + 0x0A,0x9B,0x5D,0x45,0x94,0x86,0x0D,0xED,0xDE,0xA6,0x97,0xE2,0xF7,0x16,0xC1,0xAD, + + 0x65,0xF7,0x8D,0x77,0xEB,0xB8,0x75,0x77,0xE5,0x35,0x6F,0xF5,0xB8,0xB5,0x40,0x2E, + + 0xC5,0x69,0xEF,0x92,0xBC,0xFA,0x20,0xC8,0x04,0xD5,0x8E,0x50,0xD0,0xF5,0x10,0x3E, + + 0x4D,0x66,0xE6,0x1E,0xC9,0x1A,0x04,0x0A,0x7E,0x76,0x36,0x77,0x7B,0x6A,0x41,0x2A, + + 0xAD,0x0A,0x18,0xC8,0x7E,0xCB,0x25,0xCB,0x07,0x9E,0xD7,0xE5,0x72,0xB8,0x51,0x3B, + + 0x44,0xB8,0xA9,0x2E,0xDE,0x5F,0x9B,0x3F,0xA5,0xC2,0x77,0x7F,0xD5,0x76,0xF6,0xB8, + + 0x91,0xC3,0x0E,0xCA,0xBB,0xDC,0x89,0x1B,0xCD,0x5C,0xBE,0xD1,0xC3,0xBE,0x10,0xDD, + + 0xCE,0x92,0x6A,0x3C,0xBD,0xF5,0xBE,0x7A,0xDD,0x70,0xE8,0xD9,0xDE,0x52,0xDE,0x4F, + + 0xA4,0xA8,0x87,0x8B,0xF9,0x35,0xCE,0xD9,0x8E,0xDF,0xF1,0x10,0x5F,0x51,0xDB,0x39, + + 0xBB,0xC8,0x26,0x3D,0x3D,0xF7,0x6E,0x7F,0xED,0x0F,0x6D,0xB8,0x35,0xAE,0x3E,0x29, + + 0x61,0x04,0x2D,0x20,0x7B,0x2F,0x81,0xA4,0x5D,0xBE,0xF6,0x22,0xB9,0x04,0x28,0x9A, + + 0x02,0xC1,0xC0,0x90,0x13,0x82,0x8A,0xC3,0x2D,0xEE,0x82,0x36,0xC3,0x69,0x78,0x72, + + 0xE8,0x8B,0x01,0x7A,0x96,0x20,0x2B,0xD2,0xA8,0xED,0x8B,0x27,0x63,0xBF,0x2F,0x20, + + 0xB9,0xA7,0xF6,0x6A,0x97,0x21,0x08,0xCC,0xA9,0xF8,0x19,0xF2,0xF5,0x0F,0xC0,0x3B, + + 0xE2,0x85,0xF5,0xC0,0x5F,0xB5,0x09,0x1C,0xE7,0xE2,0xEB,0x7F,0xF1,0x26,0x88,0xD0, + + 0xF5,0x48,0x95,0x15,0x15,0xC4,0x78,0x83,0xE0,0x57,0x30,0x4A,0x79,0x90,0x48,0xC5, + + 0x80,0xFA,0x1C,0x44,0xA5,0x5A,0x03,0x12,0xEC,0xCF,0x55,0x0D,0x8E,0x62,0x4B,0xB7, + + 0xA7,0xB8,0x77,0xD1,0x9F,0xFC,0xE1,0x01,0x43,0xE1,0x09,0x4E,0xF2,0xFC,0x90,0x24, + + 0xE1,0xA9,0x8A,0x88,0x12,0x68,0x84,0xAC,0x15,0x3A,0x02,0x5F,0x1F,0xE1,0x74,0x29, + + 0xE2,0xC8,0x33,0x86,0xF2,0x4A,0x8B,0x4B,0x21,0xEF,0x09,0x5A,0xA6,0x05,0x53,0x7E, + + 0xC0,0x87,0x2F,0x96,0x73,0xA9,0xBF,0x5A,0xAC,0xEC,0x13,0xCD,0xB7,0x71,0xE7,0x6A, + + 0xED,0x8D,0xD5,0xFF,0x9D,0xD6,0x0E,0xF9,0xC6,0x27,0xF9,0x7D,0xD8,0xEB,0x7A,0xB6, + + 0xA6,0x01,0xBD,0x8B,0xE7,0x9A,0x2A,0x4C,0xA3,0x45,0xD2,0x7F,0x38,0x3F,0xA6,0x27, + + 0xC9,0x0D,0xCF,0xD8,0x77,0xC0,0xF6,0xE7,0x6F,0xE0,0x0E,0xF8,0x02,0x39,0xBC,0xCD, + + 0xDD,0x3C,0x78,0xDE,0x39,0x26,0x11,0x96,0x23,0xED,0x8D,0xC0,0xD2,0x1B,0xF0,0xCB, + + 0x8F,0x4E,0x70,0x42,0x38,0x6D,0x8A,0x49,0xC3,0xE0,0xFB,0xFC,0xE4,0x67,0x22,0xB1, + + 0x4C,0xB4,0xC0,0x80,0xBD,0x86,0x1C,0x5B,0x1F,0x4C,0x8C,0x3C,0x76,0x12,0xBB,0xFF, + + 0x27,0xB1,0xF2,0x21,0xCC,0x73,0x7D,0x32,0xFC,0x87,0xFC,0xFE,0xBF,0x33,0x97,0xA9, + + 0xA6,0x18,0xFB,0x2D,0x05,0xA4,0xCE,0x22,0xE6,0xA8,0x90,0x21,0xF2,0xD1,0xF2,0xE2, + + 0xC9,0x1C,0xCD,0x4C,0xB7,0x31,0x25,0xA1,0x42,0x58,0x17,0xA8,0xF2,0xA3,0x5E,0xC2, + + 0x91,0xB9,0x90,0xCB,0x14,0x32,0x44,0x13,0xE6,0xD9,0x2F,0x14,0xE8,0xA5,0xDC,0x20, + + 0xD0,0xB4,0x82,0x27,0x0D,0x91,0xB1,0xC0,0x62,0xFA,0xA3,0x94,0x0B,0x19,0x91,0xB1, + + 0x22,0x00,0x68,0x0A,0x13,0x3D,0x07,0xCA,0xE4,0xB7,0x15,0x25,0x1B,0x7B,0x9C,0x22, + + 0x27,0x9C,0xD5,0x6D,0x0F,0x34,0xFD,0x83,0x81,0x62,0xBF,0xE5,0xF0,0xF7,0xB2,0xFB, + + 0x4C,0x17,0xD0,0x77,0xC5,0x7A,0x94,0x2A,0xF5,0xEE,0x56,0x2C,0xBD,0x3A,0x56,0x9E, + + 0x1A,0x42,0x48,0xDB,0xE3,0xC6,0xB3,0x23,0xC8,0xDE,0x7B,0x38,0x3C,0x89,0x82,0xE6, + + 0xC9,0xCA,0x47,0xC7,0xBE,0x38,0x2F,0xB9,0x4B,0x5C,0xD7,0x1C,0x7A,0x66,0x31,0xAC, + + 0x0E,0x0B,0x34,0x07,0x24,0xC6,0x1B,0xA0,0x45,0x56,0x97,0x1D,0x7B,0x67,0xB1,0x79, + + 0x10,0xB3,0x77,0xF1,0x41,0x2A,0x96,0xBD,0x1A,0xF1,0x8D,0xEC,0xFA,0xFC,0xE2,0xAB, + + 0x1D,0xEB,0xA3,0xAE,0xC4,0xC0,0x66,0x02,0xC7,0x50,0xE5,0x79,0x75,0x1F,0xE3,0xED, + + 0x84,0xC1,0x9C,0xC2,0xBC,0x74,0xDE,0x6D,0x86,0x8A,0xE8,0xDD,0x09,0xE1,0x31,0x75, + + 0x42,0x2C,0x63,0x4E,0x9A,0x35,0xF3,0x66,0x1A,0x89,0x95,0x60,0x00,0x7C,0xDF,0x71, + + 0x6C,0x09,0x60,0x86,0x64,0x1F,0x0A,0xB1,0x74,0x3F,0xEA,0x67,0xF3,0xA1,0xAA,0xE3, + + 0x6D,0x71,0x68,0x97,0x11,0xCD,0x94,0x4D,0x8F,0x90,0x98,0xCF,0xAA,0x1A,0x01,0x91, + + 0x58,0x8A,0x1E,0x83,0x96,0x18,0x0B,0xB0,0xA8,0x1D,0x0E,0xC7,0x92,0x99,0x77,0x27, + + 0x7A,0xED,0xCE,0xE4,0xF3,0xFE,0x82,0xA0,0xFD,0xC9,0xB2,0xCB,0x53,0xA1,0x5E,0xEE, + + 0x6E,0x89,0x64,0xF0,0x5E,0xFC,0x23,0x10,0x62,0x11,0xCA,0x9D,0xAA,0xA7,0x93,0xA2, + + 0x05,0x74,0x6F,0x16,0xD7,0xE4,0x78,0x76,0x43,0xB9,0x99,0xF4,0xCA,0x9B,0x9E,0x30, + + 0xBC,0xE5,0xDF,0x0B,0x1B,0x20,0xA7,0x5C,0xF4,0x5D,0x42,0xC6,0xD0,0x1C,0x17,0x55, + + 0xE4,0xF0,0x97,0x50,0x36,0x38,0x43,0x80,0xD2,0x63,0xC1,0xE7,0x74,0x4A,0x1C,0x3E, + + 0xC6,0x99,0xC1,0xFD,0x76,0x55,0x3E,0x0A,0x00,0xC6,0x7D,0xA4,0x63,0xEC,0x53,0x69, + + 0x65,0x00,0xEA,0xAF,0xE6,0x54,0xD6,0xA8,0x50,0xC1,0x61,0xBD,0x5B,0x13,0x1D,0x3E, + + 0xED,0x8E,0x63,0x8F,0x9D,0xE8,0x53,0x64,0xEF,0xC7,0xEC,0xD0,0xA3,0xF2,0x0B,0x91, + + 0x8C,0x4B,0x6B,0x9B,0x12,0xE9,0x38,0x49,0x6E,0xB0,0xDA,0xD7,0xA9,0xA6,0xB1,0xB9, + + 0x82,0x81,0x56,0x2C,0xE5,0xEE,0xFB,0x27,0x6C,0x0C,0xEA,0x81,0x69,0xEC,0x52,0xA9, + + 0x6D,0xE3,0xFD,0x41,0x6B,0x39,0xF7,0x89,0x52,0x60,0x25,0xF4,0x28,0x99,0xF3,0xB8, + + 0xA0,0xEB,0xAF,0x9B,0xBA,0x7A,0xF1,0x9B,0xCF,0x6F,0xC4,0x53,0x2E,0x5F,0x0D,0x62, + + 0x66,0x1E,0x7C,0x44,0xBD,0xFB,0xF6,0x4A,0x6E,0x4E,0x7B,0xAB,0x61,0x62,0x1A,0xAA, + + 0x83,0x8B,0x09,0x68,0xC4,0x13,0x46,0x57,0x74,0xD6,0x52,0xC4,0x83,0x95,0x2D,0xE1, + + 0x11,0xDE,0x1B,0x3E,0x33,0xF1,0x44,0xB0,0x35,0x2A,0x04,0x4D,0x1E,0xFE,0x7C,0xF0, + + 0x9C,0xDD,0x92,0x33,0x40,0x51,0x1C,0xB9,0x87,0xF2,0x8D,0x58,0xC7,0x23,0xBD,0x7B, + + 0x23,0x5E,0x00,0x89,0x39,0x47,0x3D,0x4F,0xE3,0x93,0x3D,0x85,0x95,0x6B,0x87,0x31, + + 0x1C,0xD5,0xF5,0xD5,0x14,0xF0,0x3C,0xEE,0x8F,0x8C,0xE4,0x62,0x36,0x6B,0xD3,0xE3, + + 0x11,0x3A,0x94,0xD2,0xCA,0xF7,0x04,0xD5,0x9A,0xDA,0x43,0xB1,0xAD,0xFD,0xD2,0xA3, + + 0xD1,0x96,0xC3,0xFA,0x3A,0x1D,0xB5,0xD6,0x32,0x0B,0xCA,0x87,0xFE,0x44,0xBC,0xAD, + + 0xCD,0xA4,0xEB,0x28,0x16,0x28,0x43,0xBE,0x8F,0xDA,0x78,0x88,0x78,0x61,0x78,0xA3, + + 0x2C,0x37,0x06,0xD4,0x89,0x24,0xEC,0xEE,0x8D,0xDE,0x76,0x2B,0x20,0xBA,0x16,0xFA, + + 0x69,0x94,0x7A,0xA1,0x5F,0xFB,0x5E,0xF5,0xB7,0xD6,0x5B,0xDC,0x8A,0x9C,0xB6,0x09, + + 0x2C,0x5D,0x88,0xE0,0x65,0x6F,0x1E,0xB1,0x4F,0x57,0xF7,0x11,0x7E,0xE6,0x71,0xB2, + + 0xAD,0x34,0x2F,0xD0,0x32,0x46,0x8B,0x59,0xEB,0xC2,0x87,0x40,0x96,0xF4,0x18,0x63, + + 0x0A,0x31,0x52,0xAC,0xC5,0x18,0x64,0x8A,0x85,0x98,0xBE,0xFA,0xFE,0xEC,0x3D,0xA9, + + 0x15,0x1E,0x4A,0x2F,0x9C,0xFD,0xE8,0x35,0x0F,0xD9,0x7D,0x40,0x3F,0x51,0xB6,0xFB, + + 0x51,0x31,0x37,0xC9,0x76,0x9D,0x4D,0x5B,0x56,0x9C,0x48,0x96,0xDF,0x7E,0x90,0x28, + + 0x91,0xDE,0x50,0x5B,0xF7,0x40,0x01,0xFD,0x0E,0x5C,0x50,0x81,0x22,0xBE,0x59,0x06, + + 0xA5,0x7F,0xD2,0x2A,0xFB,0x44,0x92,0x52,0x73,0x34,0x50,0xFC,0x05,0x6A,0xB0,0x3D, + + 0x13,0x4C,0x8C,0x9E,0x35,0xAC,0xC3,0x1E,0x3E,0x07,0x0A,0xD2,0x75,0x95,0xD8,0x01, + + 0xB3,0x39,0xDB,0x04,0x33,0xD2,0xE9,0x29,0x67,0x03,0x97,0xCD,0xAB,0xCF,0xD8,0x56, + + 0xE0,0x07,0xF7,0x38,0x7A,0xB2,0x27,0xED,0x7E,0x18,0x15,0x2E,0x90,0xCE,0x5A,0xDF, + + 0x69,0x0B,0xE0,0xE1,0xEC,0xFB,0x0A,0x61,0xE1,0x05,0xB0,0x66,0x2B,0x69,0xB7,0x74, + + 0xDF,0x14,0xDB,0xA8,0x57,0xA8,0x10,0xCD,0xCE,0x07,0x34,0xE6,0x5F,0x6D,0xC0,0x53, + + 0xEA,0xCE,0xC3,0xB9,0xDA,0x22,0x91,0xA1,0xC2,0x04,0xFB,0xB5,0x8E,0x99,0x73,0xA2, + + 0xB7,0x01,0xB6,0xA5,0x09,0x96,0x5F,0x68,0xC0,0xE6,0x59,0x88,0xDF,0x97,0x60,0x0A, + + 0x0B,0x68,0xFC,0x3D,0xF1,0x89,0x12,0x5A,0xB3,0x0A,0x98,0xA8,0x56,0x22,0x0A,0xE1, + + 0x49,0xF5,0xC1,0x6F,0x69,0x88,0xA5,0x7F,0x83,0x93,0xA4,0x79,0x5F,0x6B,0xAB,0x28, + + 0xAC,0x91,0x2F,0x9E,0xCF,0x20,0x5E,0x17,0x29,0xB5,0x53,0xAD,0x96,0x95,0xB6,0x46, + + 0x5C,0x56,0xB3,0xE2,0x70,0x5A,0x53,0x41,0x34,0x09,0x93,0xB9,0xDB,0xC8,0x4A,0x00, + + 0xEB,0x03,0x02,0x8C,0xF3,0x21,0x32,0x3E,0x67,0x41,0x55,0xEE,0x78,0x1E,0x4B,0xA3, + + 0x78,0x01,0x75,0xC6,0xA4,0xB0,0x63,0x3A,0xEA,0x0F,0x58,0xFE,0xC6,0x94,0x83,0x84, + + 0xA6,0x75,0xB8,0x2D,0x8C,0x42,0x2A,0x4E,0x66,0x2B,0x6C,0x8F,0xE9,0x95,0xB4,0xA5, + + 0x59,0x4D,0x27,0xC2,0x9A,0x4F,0x13,0x79,0x48,0x42,0xE3,0x83,0x38,0x66,0x66,0x82, + + 0x23,0x52,0x11,0xC3,0x03,0x29,0xB0,0x50,0x68,0x5F,0x8E,0xD7,0x39,0xF6,0x55,0x8A, + + 0x84,0xE0,0x1A,0x10,0x62,0xA9,0x64,0xB4,0x81,0xD0,0x58,0x92,0x8C,0x6A,0x5C,0x82, + + 0x05,0xED,0x3D,0x16,0x80,0x9F,0xAA,0xC1,0xFE,0xF9,0x95,0xE5,0xB6,0x30,0xF5,0xF7, + + 0x2E,0x95,0xC5,0x8D,0x58,0xD2,0x9E,0x35,0xB2,0x3B,0x1D,0xEB,0x7C,0x11,0x64,0x3E, + + 0xA0,0x1E,0x9E,0xC5,0x95,0x75,0x3C,0x82,0xD1,0x38,0x8D,0x19,0x97,0x80,0x2C,0x90, + + 0xCD,0x98,0x33,0x24,0x3B,0x29,0xB0,0x74,0x2B,0xE5,0x1C,0xC1,0xCB,0x78,0x27,0xB2, + + 0x92,0x19,0x7E,0xA5,0x96,0xB4,0xEA,0x65,0xE1,0xA4,0xAD,0xF7,0x1B,0x79,0x35,0x53, + + 0xA2,0x60,0x72,0x9F,0xA3,0x33,0x15,0x69,0xD0,0x12,0xA6,0xD2,0x52,0xC8,0xC5,0xC8, + + 0x4A,0x54,0x7E,0x84,0xD1,0x29,0xD6,0x70,0x27,0x50,0x3D,0x29,0xEB,0x47,0xA5,0xC7, + + 0x94,0xE5,0x98,0x7A,0xB6,0x22,0x60,0xBE,0x88,0xDA,0x25,0x0D,0x30,0xD6,0x13,0xAD, + + 0x7D,0x47,0x7F,0x65,0xC3,0x97,0x10,0x59,0x62,0xAB,0x81,0xF9,0x13,0xB2,0x54,0x99, + + 0xD2,0x5B,0x91,0xFB,0x73,0x6A,0xAE,0x4A,0x65,0xD0,0x91,0x83,0xB0,0x8E,0x3E,0x4A, + + 0x2B,0x7E,0x46,0x8B,0x14,0x22,0x96,0x28,0x4C,0x5A,0x62,0x8E,0x8D,0x19,0x76,0x08, + + 0xD5,0x12,0x97,0xD2,0x9E,0x36,0xEA,0x9A,0x90,0x38,0xD4,0x78,0x33,0xCB,0x7F,0x19, + + 0x75,0x11,0xBC,0x25,0x3A,0x71,0xFD,0x8C,0x4B,0xC1,0xEF,0x12,0x78,0x3D,0x2F,0x98, + + 0x27,0x12,0x8F,0x35,0x3B,0x72,0x67,0x07,0x47,0x52,0x5F,0x20,0xF2,0x64,0x8B,0x86, + + 0x08,0xC3,0x74,0xF8,0xE9,0x21,0x7B,0x9B,0xE5,0x5F,0x70,0xA2,0x7D,0xA2,0xCF,0x6C, + + 0x64,0x85,0x5D,0xE8,0xED,0xA8,0xD8,0x44,0xFA,0xAF,0x34,0xB2,0x57,0x5B,0xCD,0xEB, + + 0xBB,0xCF,0xE1,0xF8,0x61,0x21,0x85,0x41,0x3F,0xD9,0xF1,0x96,0x2F,0x4F,0x57,0xF1, + + 0x97,0xCE,0xF2,0x17,0xAA,0x42,0x06,0xBC,0xA6,0xC7,0x79,0xB6,0xD1,0x8F,0x64,0x23, + + 0x7D,0x94,0xDB,0xD9,0xA9,0xBF,0x09,0x25,0xBB,0xB2,0x35,0x8E,0x48,0xA9,0xB3,0x10, + + 0x01,0x7D,0x04,0xCC,0x14,0x05,0x31,0x9E,0x43,0x87,0x80,0x64,0xA8,0x48,0x3A,0x43, + + 0xF9,0x86,0x45,0x21,0x65,0xDB,0x8E,0x1D,0x50,0xBD,0x8E,0x14,0xF7,0x52,0x30,0x2C, + + 0xD2,0x8E,0xD6,0x47,0x60,0xA3,0x31,0x46,0x4A,0x85,0xE1,0x6C,0x74,0x63,0x38,0x08, + + 0xC6,0x87,0xFC,0xBA,0x24,0xEA,0x4B,0x50,0x2D,0xCC,0xD5,0xD5,0xE9,0x7E,0x92,0x27, + + 0x1F,0xC4,0xBC,0x26,0xF6,0x38,0xDA,0x07,0xA6,0x8D,0x19,0x6F,0x81,0x21,0x6B,0x17, + + 0xBF,0xB1,0x69,0xF6,0x75,0xA3,0x52,0x6B,0xCF,0x41,0xC8,0xAB,0xD7,0x20,0xF8,0x5C, + + 0xEC,0x8F,0x91,0xAE,0xA1,0x04,0x01,0x8B,0x79,0x64,0x17,0x4C,0x98,0x6D,0x26,0x5B, + + 0x3A,0x21,0xE0,0x57,0xE4,0x2C,0x74,0x73,0x4D,0xEC,0xCC,0x8C,0x7F,0xCC,0x62,0x89, + + 0x8D,0xA5,0xE8,0x1E,0x07,0xC5,0x43,0x38,0xEE,0xD6,0xD8,0x96,0x20,0x22,0xF2,0x0C, + + 0x4C,0xEE,0x8A,0x31,0x11,0x28,0xE3,0xEF,0xCD,0x3D,0x74,0x11,0x02,0xE1,0xD5,0xAB, + + 0x7C,0x80,0xA6,0x5B,0xAC,0xAB,0xCB,0xFF,0xCC,0x8F,0xA2,0xF2,0x7A,0x10,0xE4,0x87, + + 0x02,0x8B,0x9A,0xAF,0x32,0x2A,0x30,0x40,0x8D,0x0A,0x3E,0x5E,0x74,0x4B,0x94,0x69, + + 0xA8,0x8A,0xB9,0x70,0x25,0x1C,0xDF,0x72,0x37,0x7A,0x1F,0xE7,0xA9,0x39,0x7C,0xE5, + + 0x57,0x82,0xAE,0xC7,0xA0,0x1F,0x77,0x5D,0x19,0xBE,0x34,0x23,0xF0,0x4C,0xF0,0xF5, + + 0x7F,0x2C,0x3C,0x71,0x7D,0x12,0x45,0xB7,0x18,0x56,0xE7,0xBA,0x9D,0x9B,0x2E,0x35, + + 0x85,0x19,0xBD,0xC8,0x91,0x39,0xD8,0x66,0x65,0x26,0x50,0x90,0x8D,0x0F,0xEB,0x50, + + 0x24,0x13,0x7C,0xA4,0x04,0xE1,0x74,0xEF,0x8E,0x1F,0x3C,0x23,0x11,0xEE,0x9A,0x32, + + 0x6A,0xB6,0x85,0x8D,0x1C,0xB9,0x99,0x67,0xAE,0x66,0xF1,0x63,0xF5,0xEC,0x55,0x61, + + 0x58,0x38,0x15,0xF3,0xB1,0x56,0x91,0x61,0xEF,0xDD,0xBC,0x91,0x9C,0xF8,0x67,0xEC, + + 0xFE,0x07,0x34,0x9F,0x54,0xBC,0x24,0x2E,0x6A,0x42,0x76,0x2F,0xB1,0x07,0x34,0x98, + + 0x9E,0x04,0x51,0xD9,0x0E,0xA0,0x36,0xA3,0x0E,0xBF,0x7E,0x3A,0x32,0xBB,0x8B,0xF0, + + 0x72,0x47,0xC0,0x67,0x3A,0x77,0xBB,0x2F,0xBF,0x30,0xED,0x6F,0x94,0x72,0x35,0x99, + + 0x3F,0x91,0x17,0x00,0xDE,0xBF,0xA8,0x48,0x69,0x56,0x71,0x0C,0x70,0x70,0xA6,0x1B, + + 0x2F,0x9A,0x07,0xAC,0xBC,0xBF,0xF4,0x02,0x29,0x91,0x21,0xDC,0x81,0x29,0x16,0x58, + + 0x2C,0x1B,0x2E,0xEB,0xED,0xB0,0xEE,0xBD,0x4B,0x2A,0x9E,0xBE,0x91,0x76,0x2F,0x58, + + 0x47,0xAF,0xE2,0x2D,0x8D,0xC5,0x05,0xEA,0xEA,0xB0,0x8F,0x6B,0xA5,0x1A,0x17,0x59, + + 0xAE,0x87,0x8F,0x7F,0xE3,0xB0,0x80,0xEB,0x0E,0x00,0xFB,0x1D,0xCC,0xAD,0xB8,0x52, + + 0x2E,0x63,0xE2,0x1D,0x13,0x60,0x28,0xDF,0x4E,0x22,0xAE,0x84,0x92,0x60,0xF5,0x2B, + + 0x20,0xFA,0x64,0x86,0x11,0x2B,0x90,0xFD,0xE2,0xBC,0x34,0x10,0xDE,0x63,0x4B,0x43, + + 0xC1,0x01,0x87,0xA5,0x79,0x21,0xD5,0xF1,0xCC,0x44,0xD9,0x21,0x5F,0x23,0x0D,0x95, + + 0xDE,0x44,0x8E,0x66,0xBB,0xA5,0x53,0x24,0x43,0x40,0x2E,0x34,0x5C,0x6F,0xFF,0xA2, + + 0x69,0x15,0x52,0xB7,0x7E,0x8B,0xD0,0xA7,0x66,0xDF,0x32,0x7B,0x9C,0xCF,0xB7,0x23, + + 0x33,0x69,0x5E,0xD0,0x4E,0x57,0x60,0x9E,0xEF,0x48,0x58,0x06,0xB8,0xB3,0x45,0xA9, + + 0xEE,0x4B,0xD0,0xB8,0xFA,0x9D,0x51,0xE3,0x0B,0x6E,0xB7,0x61,0xB9,0xE0,0xAE,0x91, + + 0xC6,0xAA,0xD9,0x40,0x6A,0xAA,0xA4,0x8E,0x16,0x1A,0xA7,0xEA,0xB8,0xD1,0x38,0xFB, + + 0x51,0x7D,0x02,0x4C,0x00,0x85,0x51,0xCA,0xCA,0x00,0xFA,0x32,0x32,0x9C,0xCA,0xC5, + + 0xFF,0x4B,0x82,0x18,0x96,0x68,0x7A,0x3A,0x38,0x44,0xCB,0x4F,0x67,0xC2,0x1B,0xF2, + + 0xF7,0x2A,0x53,0xCA,0x5A,0x6A,0x5F,0xD9,0xC4,0x45,0x41,0x37,0xB6,0xDE,0x58,0xC5, + + 0xBA,0x69,0x8D,0x20,0x19,0x4E,0xE4,0x6B,0xC7,0x29,0xE3,0x39,0x39,0xCA,0x53,0xCC, + + 0x08,0x04,0xA2,0x03,0x39,0x23,0xF9,0xEC,0x4E,0xF2,0xD3,0x9F,0x88,0xC3,0x74,0x70, + + 0x0D,0x0F,0x10,0x18,0x3F,0xD9,0x62,0xE7,0xC9,0x81,0xEC,0x70,0xB0,0xE8,0x83,0xC9, + + 0xC4,0xF1,0x3C,0xB1,0x9C,0x6C,0xFF,0xEB,0x0F,0x5D,0x61,0x9E,0x36,0xC5,0x04,0xDD, + + 0x89,0xAC,0x5E,0x46,0xEB,0x6D,0x8D,0x1B,0x1D,0x47,0x73,0xF7,0x22,0xB3,0xB0,0x70, + + 0x00,0x1F,0xF6,0x85,0x14,0x2B,0x4A,0x9D,0x68,0x4B,0xA2,0xAC,0x9B,0xF5,0x08,0x72, + + 0xA6,0x61,0x4D,0x9C,0x94,0x5F,0xE3,0xC3,0x1D,0x3D,0xCD,0x27,0x4F,0xDE,0x65,0x21, + + 0xAC,0x99,0x10,0xE3,0x52,0x12,0x83,0xC7,0x80,0xED,0x3D,0x2F,0x7D,0xDF,0xE5,0xAE, + + 0x85,0x51,0xEF,0x91,0xB2,0x51,0xFA,0x71,0xEA,0xD8,0xBA,0xC6,0x9F,0xF5,0x3C,0xB3, + + 0x12,0x56,0xCC,0xAF,0x4D,0x14,0x0C,0xE8,0x51,0xA4,0x29,0xE6,0x32,0x21,0x49,0x52, + + 0xEA,0x12,0x4A,0x50,0xFB,0x44,0xA4,0xD4,0x9E,0xDC,0x61,0xAB,0xA6,0x28,0x05,0x18, + + 0xA4,0x94,0x05,0x04,0x5E,0x37,0xEA,0x07,0xD1,0xE6,0x26,0xCA,0x0C,0x8A,0xE2,0x33, + + 0x0F,0xEA,0x19,0xC6,0xC3,0xB4,0xDD,0x11,0xFE,0x1B,0x76,0x37,0x70,0x31,0x55,0x54, + + 0x1B,0x68,0xB8,0x2D,0xFA,0x3C,0x93,0x99,0x14,0x1A,0x96,0x5F,0xA8,0xD3,0xF1,0x1C, + + 0x7A,0x17,0xC6,0x95,0xB4,0xC4,0xDA,0xCC,0x92,0x1B,0xCE,0x22,0x82,0x65,0xBF,0x77, + + 0xB8,0x57,0xB9,0x2D,0x7A,0x3A,0x53,0xFE,0x17,0x18,0x32,0xA8,0x7F,0x6C,0x56,0x1C, + + 0x0C,0xE4,0xED,0x4C,0x4C,0xBD,0xD0,0xB7,0xEF,0x39,0x22,0xF7,0x1D,0xFC,0x3E,0xD9, + + 0x1A,0x18,0x1B,0x86,0x41,0x25,0xD0,0x00,0x36,0xA1,0x61,0xC8,0x57,0x15,0xED,0xBA, + + 0x68,0xED,0x55,0x1A,0x77,0x7C,0x64,0x0B,0x77,0x5B,0x00,0x09,0x14,0x96,0x37,0xED, + + 0x28,0x1A,0x18,0x85,0xBC,0xC6,0xAF,0x01,0xB2,0x11,0x4B,0x9C,0x93,0xD7,0x5D,0xCD, + + 0x54,0xE2,0xE9,0xF0,0x95,0x9B,0xF2,0x36,0x88,0x1F,0xC0,0x84,0x82,0xC6,0x98,0x80, + + 0x26,0xB0,0x0C,0x22,0xC8,0x51,0xF4,0xF2,0x4C,0xC6,0x62,0xD9,0xBD,0xEF,0xD3,0x1A, + + 0xA0,0x7E,0xE8,0xA7,0x13,0xE3,0x12,0xB7,0x06,0xA1,0x1F,0xA1,0xB4,0x4E,0x59,0xEB, + + 0x98,0xCF,0x61,0x87,0x81,0xE0,0xB9,0xFB,0x67,0x3F,0xE7,0x96,0x3F,0x24,0xE9,0xCB, + + 0x06,0xCF,0xFA,0xE8,0x93,0x79,0x8D,0xD1,0x47,0xC7,0xDF,0xC6,0x17,0xA3,0x1F,0xC6, + + 0x7E,0xD9,0x28,0x03,0xF7,0x0B,0x32,0x10,0xFD,0xDB,0xCB,0x38,0x65,0x24,0x16,0x54, + + 0xE6,0x06,0x28,0x4B,0xEA,0xA3,0x83,0xF6,0x45,0x61,0x53,0xBC,0xEC,0x4A,0x3B,0x4F, + + 0xEE,0x97,0x64,0xC3,0xC9,0x8E,0xC6,0x4B,0x35,0x79,0x5D,0xC2,0x03,0x85,0x40,0xA0, + + 0x0B,0x7A,0x46,0xB5,0x36,0x20,0xB9,0xF7,0x79,0xAB,0xDE,0x69,0x07,0x4C,0x93,0x88, + + 0x2E,0x38,0xE7,0x10,0x3E,0x5C,0x6F,0x48,0x0F,0x28,0x94,0x9F,0x8A,0x4C,0xE5,0xE2, + + 0x8F,0x8A,0x6A,0x9F,0x05,0xEB,0xAA,0x48,0xA6,0xCA,0xE4,0xA4,0x59,0x46,0x79,0x0A, + + 0x2F,0xC8,0xF7,0x8B,0x9E,0x6B,0x53,0x6F,0xE9,0xC5,0x61,0xB0,0x37,0x5C,0x6A,0xEB, + + 0x35,0x84,0x60,0x96,0x74,0x5A,0x45,0x9A,0x26,0x88,0x09,0xCC,0x31,0x40,0x1A,0x39, + + 0x3E,0xCE,0x66,0x4B,0x91,0xA8,0xB2,0x7B,0x16,0xC6,0x57,0x6A,0xD9,0xFA,0x6F,0xD8, + + 0xC6,0x58,0x2A,0x83,0xC0,0x00,0xEA,0x92,0x13,0x80,0x8C,0x2F,0xBD,0xE6,0x23,0x0B, + + 0x88,0x0C,0xE7,0x08,0x9F,0xFE,0xF3,0xAC,0xEA,0xA2,0xA3,0xF1,0x25,0x43,0xC4,0xB9, + + 0x23,0x72,0x6E,0x98,0x5D,0xFF,0xE4,0x1B,0xD0,0x32,0x79,0x8F,0x0E,0xB0,0x44,0x22, + + 0x3C,0x9F,0xA4,0x46,0x5C,0xDE,0xAE,0x5C,0x07,0xA0,0xB5,0x90,0x9E,0xE5,0x2F,0xF4, + + 0xA7,0x92,0x40,0x04,0x31,0xBB,0x92,0x49,0xEA,0x07,0x0E,0x8D,0x0A,0xF1,0x7C,0x12, + + 0x86,0x02,0x35,0x6F,0x88,0xFF,0x23,0x9E,0xE2,0xF0,0x64,0x91,0x04,0xE2,0xAA,0x71, + + 0x27,0x90,0xE8,0x9F,0x10,0x34,0x35,0xA3,0xAD,0xF0,0xD5,0x75,0x73,0x06,0xBB,0xC2, + + 0xD1,0x2F,0xF7,0x76,0x09,0xA9,0x0C,0xC2,0x62,0x64,0xEB,0x03,0x59,0xAF,0xC0,0x50, + + 0xEE,0xDD,0x2C,0x8B,0x42,0xF9,0xFB,0x8D,0x8E,0xA5,0x66,0xB6,0x10,0x26,0xE7,0x32, + + 0x96,0x56,0xBA,0xED,0xC9,0xA2,0xB5,0x3E,0x39,0x94,0x6F,0x93,0x93,0x3F,0x55,0x4C, + + 0x25,0x3B,0x6B,0xF3,0x80,0x91,0x91,0x61,0xF3,0xDF,0x36,0xF1,0x7F,0x93,0x21,0xF8, + + 0x8F,0x9C,0xA2,0x1E,0xB3,0x45,0x16,0xBF,0x95,0xB4,0x26,0x2A,0x7A,0x05,0x7E,0x83, + + 0x4E,0xB9,0xAE,0x5E,0x21,0xD5,0xEE,0xC5,0xE2,0x5F,0x7E,0xEF,0xFF,0x55,0x26,0xF4, + + 0x0B,0x9C,0xC5,0x8D,0x49,0x3C,0xD4,0x6B,0xE8,0x7A,0xD7,0xFC,0x08,0xB8,0x57,0x19, + + 0x2D,0xE2,0x91,0x3E,0x7F,0x11,0xBB,0xFB,0xA1,0x26,0xCF,0xE0,0x5E,0x9E,0x6A,0xA8, + + 0xF8,0x94,0xBD,0x4D,0x49,0x9A,0x0E,0x02,0x74,0x91,0xD4,0x93,0x7E,0xFC,0x56,0x45, + + 0xAD,0x51,0x02,0x5E,0xC3,0x9D,0x86,0x7E,0x72,0x23,0x01,0x01,0x80,0x02,0x64,0x49, + + 0x6B,0x8D,0x27,0x9A,0xD0,0xFF,0x2F,0x62,0x4B,0x5E,0xF7,0xEF,0x01,0x01,0xB9,0xB9, + + 0x79,0x95,0x43,0x9D,0x3C,0x6B,0x45,0x08,0x87,0x70,0xFF,0xFF,0xFF,0xFF,0x59,0x92, + + 0xA5,0x9F,0xE6,0xA0,0x34,0xBC,0x68,0xA2,0x45,0x79,0xC0,0xDA,0x5C,0xCB,0xB0,0xEE, + + 0x11,0x4C,0xF0,0x96,0x8C,0x48,0x90,0xF5,0xE0,0xCB,0x58,0xC5,0xEE,0xC3,0x00,0x67, + + 0x7B,0x12,0x3E,0x5F,0x96,0xB8,0x69,0x06,0x63,0x44,0x6C,0x35,0xBB,0x1D,0xF6,0x35, + + 0xEA,0x0C,0x36,0xF7,0x4C,0xBE,0xE2,0xD3,0x60,0xC9,0xC7,0xDA,0x85,0x60,0xE0,0x36, + + 0x69,0x0B,0x72,0x5B,0xFE,0x8B,0x6D,0x90,0x46,0x4B,0x8E,0xFF,0x42,0xCB,0xDA,0x60, + + 0xA0,0xAA,0x60,0xDE,0xDB,0x56,0x65,0x80,0x4B,0x4A,0x77,0x0F,0x8E,0xB1,0xC6,0x73, + + 0xB1,0xED,0xF7,0xB4,0x72,0x66,0x71,0x75,0xC4,0x35,0xB2,0x3B,0x23,0xBA,0x5C,0xF1, + + 0xD3,0x57,0xEA,0x46,0xE1,0x93,0xDA,0x30,0xDA,0x06,0x6B,0x6A,0x3F,0xCC,0x82,0x7B, + + 0x64,0x8D,0x2D,0xAC,0x48,0xD8,0x6D,0xCA,0x95,0x95,0xEB,0xD7,0x33,0x17,0x34,0xFA, + + 0x6B,0x7C,0x75,0xBC,0x59,0xC9,0x7A,0x78,0x67,0xC2,0xC4,0xD3,0x7B,0x6A,0x11,0x89, + + 0x63,0x4E,0xDA,0x94,0x3D,0xBB,0xBC,0xAD,0xC7,0x97,0xD0,0xDC,0x67,0x0A,0x75,0x1E, + + 0xAD,0x7D,0x20,0x67,0x4C,0xB4,0x1F,0xDB,0x4B,0x43,0xE2,0xC6,0x2D,0xB4,0x1B,0xD1, + + 0xAF,0xF3,0x9C,0x43,0x16,0x62,0x68,0x80,0x82,0x03,0xE4,0x68,0x31,0xE9,0x34,0x71, + + 0x30,0x2D,0x15,0x5C,0x98,0x23,0x03,0x1C,0xEC,0x5D,0xF9,0x73,0x83,0xC6,0xEF,0x3A, + + 0xB2,0xF8,0xA2,0xED,0x4C,0x91,0x2D,0x58,0x21,0x8F,0x53,0x2B,0x48,0x3A,0x76,0x1E, + + 0x41,0x3E,0x2B,0x62,0xBF,0x41,0xA3,0x86,0xCD,0x45,0x7E,0x79,0x5C,0x79,0xAE,0xE5, + + 0x81,0x0F,0x44,0xE4,0x30,0x3A,0x2C,0x5F,0x53,0x14,0x8C,0xB0,0x1B,0xC1,0x34,0x7E, + + 0x8D,0x1C,0xAC,0x6D,0x90,0x30,0x7B,0x40,0xE1,0x4E,0x45,0x9B,0x4E,0x73,0xB1,0xE3, + + 0x1B,0x77,0x05,0xC3,0xA2,0x34,0xAD,0x5A,0x6D,0xAF,0x95,0xB6,0xD1,0xA3,0xF0,0xB5, + + 0x48,0x1A,0xB3,0x84,0xCE,0x73,0xA6,0xC1,0x61,0x45,0xBB,0x8C,0x93,0xD7,0x7F,0x3E, + + 0x06,0x0F,0x6F,0x9B,0x8F,0xC8,0x72,0x9F,0xC5,0x50,0x7E,0x51,0x41,0xBD,0xB7,0xAE, + + 0xAE,0xE3,0x92,0xE7,0xB3,0x9E,0xE4,0x6B,0x71,0x18,0x5C,0x33,0x57,0x19,0x85,0xA7, + + 0x5D,0x9B,0x66,0xF3,0x6E,0xD3,0xD2,0xA6,0xD1,0x3F,0x15,0x64,0x2D,0x7E,0x05,0x90, + + 0x83,0xF7,0xFF,0xC5,0x36,0x21,0x3E,0x31,0xAB,0xCA,0x4D,0x86,0xC3,0x7C,0x14,0x76, + + 0xD7,0xB5,0x46,0xE4,0x38,0x78,0x86,0x56,0x95,0xF9,0x05,0x1D,0x07,0x6E,0xA5,0xE3, + + 0xFC,0xE4,0x39,0x9D,0xB4,0x35,0xE5,0xCB,0x0A,0xA8,0x59,0x40,0xC5,0x82,0x91,0xCE, + + 0x76,0x5B,0x48,0xC3,0x37,0x38,0x2F,0x56,0x1D,0x39,0x4C,0xA2,0xFE,0x10,0x4D,0xF9, + + 0xAB,0x9B,0xE7,0x83,0x4E,0xCF,0x61,0xBF,0x00,0x30,0xDF,0x92,0x8D,0x2E,0xC5,0xB7, + + 0x6A,0x70,0xE0,0x7C,0xEA,0x98,0xAE,0xE0,0x93,0x13,0x13,0x68,0x78,0x11,0xF5,0x9F, + + 0x2D,0x8E,0x4C,0x1A,0xA9,0x3E,0xCE,0x3F,0x69,0xA8,0x0A,0xAD,0x78,0x3D,0x83,0x4D, + + 0xD8,0x0F,0x91,0xD6,0xD1,0x4A,0xD0,0x56,0xBE,0x92,0xED,0x1E,0x8E,0x3C,0x8A,0x99, + + 0xF5,0x1C,0x2C,0x26,0xC4,0x3F,0x5B,0xBE,0x6A,0x51,0x73,0xD9,0x79,0xD3,0xDF,0x7C, + + 0x92,0xFB,0x0F,0x78,0xC9,0xBB,0x84,0x50,0xE7,0x3B,0x07,0xD9,0xD7,0xEE,0x17,0x99, + + 0xFE,0x1C,0xF8,0x1F,0xB6,0xBA,0x58,0x72,0xE9,0x4A,0x07,0x6C,0x77,0xD1,0x32,0xEF, + + 0x8C,0x5D,0x65,0x7D,0x33,0xA4,0xE4,0xA7,0xB8,0xFD,0x51,0x18,0xF0,0x7E,0x48,0xE9, + + 0x64,0xBC,0xEF,0x68,0x32,0xA5,0x3D,0xD1,0xE1,0x67,0xB0,0x97,0xD5,0x4B,0x28,0xCA, + + 0xDB,0xB9,0xA0,0x79,0x1E,0xC8,0xC7,0x1D,0x40,0x64,0xA0,0xF8,0xAD,0x1F,0xC4,0x2D, + + 0xCD,0x14,0x4F,0xC1,0x7C,0x03,0x40,0x89,0xC8,0x63,0x4F,0x52,0x8B,0xF4,0xCE,0xC7, + + 0x91,0x8E,0xC9,0x85,0x42,0x60,0x8E,0x01,0x35,0xA3,0xF1,0xA5,0x55,0xA0,0xD2,0xC0, + + 0xBB,0x8D,0x69,0xA6,0x55,0xE7,0xEB,0x09,0x0D,0x66,0xC7,0x5F,0xB6,0xC7,0x5B,0x2E, + + 0xA9,0xF7,0xF2,0x13,0xBF,0xB3,0x68,0x2C,0x84,0xA3,0xD2,0x61,0x71,0xE5,0x92,0xF4, + + 0x1D,0xC4,0x12,0xE1,0x1B,0x33,0xAA,0x54,0x4B,0x69,0xE9,0xA4,0x95,0xE6,0x22,0x6D, + + 0x37,0x9A,0x26,0x69,0x6B,0xBA,0x97,0xDA,0x6F,0x8A,0xCC,0x4F,0xAA,0xA8,0x86,0xF1, + + 0xA9,0x8D,0xC3,0x9B,0xAD,0xAB,0xC4,0x59,0x3A,0xAE,0xAC,0xCC,0xA9,0x76,0xE0,0x54, + + 0x32,0x78,0x4D,0x35,0xC3,0x07,0x7A,0xEF,0x7D,0x85,0xAA,0xE3,0x58,0xEE,0x4A,0x3C, + + 0xE6,0xDC,0xB4,0xC5,0x03,0x20,0x44,0x4E,0xE8,0x59,0x3A,0xDB,0x16,0xE7,0x70,0x40, + + 0xBA,0xBE,0x00,0x4F,0x42,0x58,0x4D,0x5A,0x69,0xDE,0x4F,0x9E,0xAA,0xCE,0x10,0x28, + + 0xB3,0x70,0x95,0xC5,0x4A,0xF2,0x6D,0x60,0xAB,0xD4,0x7B,0x38,0xFB,0xE9,0x7C,0xDA, + + 0xA6,0x98,0x5B,0x77,0x8B,0x83,0xE7,0x51,0xE8,0xDD,0xA3,0x5F,0x38,0xB2,0x24,0xB5, + + 0x86,0x6A,0x51,0x86,0x5E,0xCE,0x6E,0xE4,0x8E,0xB5,0x63,0x36,0xC9,0x20,0xF1,0xF1, + + 0x07,0x94,0xF5,0x79,0xB8,0x19,0xA5,0x50,0x60,0x5F,0xF8,0x78,0x83,0x87,0xAE,0x91, + + 0xC3,0x95,0x6D,0x66,0x0A,0x11,0xAD,0xDC,0x1A,0xB0,0x0C,0x8E,0x8E,0xE5,0xE2,0xF2, + + 0xDB,0x14,0x8C,0x04,0xB0,0x41,0xD7,0x74,0xBA,0x32,0xF8,0x0E,0x07,0xB6,0x91,0x15, + + 0x21,0x06,0xE8,0x91,0xB6,0xBB,0x1E,0xF6,0xB2,0x48,0x10,0xD2,0xFA,0xB4,0xA5,0x7B, + + 0xC6,0x4B,0x75,0x00,0xB4,0x43,0x4F,0x10,0x2C,0x7D,0xB1,0x38,0xF7,0xB6,0xA8,0x93, + + 0xFB,0x6A,0x52,0xE7,0xB3,0x18,0xD6,0xAC,0x1E,0x2B,0x51,0xD3,0x2E,0x0A,0xAE,0x4F, + + 0x8D,0x12,0xF8,0x61,0x6C,0xBB,0x50,0xC8,0x9B,0x65,0xED,0xA1,0x7A,0x92,0xF2,0x6A, + + 0x25,0x96,0x6F,0x84,0xCA,0x0D,0xAE,0x7D,0x84,0x28,0xBA,0x4E,0x82,0x56,0xC8,0x69, + + 0x2E,0xD2,0xDE,0x74,0xD7,0xC5,0xA0,0x54,0x0D,0x09,0xA9,0x8B,0x97,0xAB,0x4F,0xDF, + + 0xDC,0x16,0x50,0x6E,0x02,0x88,0x59,0x1E,0x04,0x0A,0x2A,0x4C,0x8D,0xE0,0x38,0x28, + + 0x22,0x19,0x00,0xBC,0x48,0x13,0xD5,0x74,0xB2,0x2A,0xD9,0x95,0x3D,0x9C,0xD3,0x5E, + + 0x5D,0xEF,0xB0,0x4C,0x7F,0x30,0xFE,0xA4,0xDA,0x01,0x01,0x7C,0x7A,0xF9,0xA7,0x73, + + 0xCE,0xF2,0x05,0x3E,0x74,0xFE,0x09,0x70,0x85,0x48,0xA9,0x0D,0xFC,0x7B,0x67,0xD3, + + 0xA9,0xEC,0x91,0x41,0x54,0x49,0xD0,0x94,0x32,0x0B,0xC7,0x11,0x53,0xF2,0x4A,0x5F, + + 0xBF,0x5D,0x29,0x7A,0x85,0x8D,0xF5,0xCF,0xA1,0x16,0xE8,0x00,0xDF,0x62,0x87,0xEF, + + 0x83,0x49,0x48,0x10,0xCA,0xDC,0x22,0xBA,0xF2,0xDC,0xF0,0x2A,0x97,0x95,0x0F,0xE3, + + 0x77,0x7F,0x99,0xFE,0xE3,0x22,0xE8,0x53,0x5A,0x7D,0x26,0x24,0x5D,0x6E,0x29,0x6F, + + 0x22,0x66,0x65,0x86,0xCA,0x2B,0x49,0x46,0x8F,0x04,0x7F,0x47,0x3A,0xC5,0xD0,0xC2, + + 0x82,0x87,0xF8,0x34,0x59,0x2F,0x54,0x27,0xC3,0x4A,0x83,0x98,0x54,0x17,0xC8,0x17, + + 0x27,0xFE,0x0C,0x90,0x15,0x27,0x62,0x83,0x89,0xEE,0xE0,0x8A,0xFF,0x68,0x79,0x31, + + 0x36,0x0F,0xD4,0x36,0x97,0x64,0xF2,0xF7,0x1E,0xA0,0xED,0xE7,0x43,0x50,0x48,0xCC, + + 0xE0,0x14,0x0F,0xAA,0x7A,0x0F,0x3B,0x75,0x28,0x82,0x26,0x0E,0xD5,0xF4,0xBD,0xEA, + + 0xF1,0x6A,0x80,0x13,0x43,0x2C,0x7C,0xAC,0x0B,0xDD,0xCC,0xBE,0x5C,0xFC,0x82,0x75, + + 0xAA,0x0F,0xC1,0xDC,0x1D,0xDD,0xB6,0xB7,0xF6,0xC4,0xFD,0x34,0xB2,0xFF,0xC7,0xD9, + + 0xF6,0x0C,0x82,0x72,0x15,0x8C,0xD3,0x39,0xF7,0xC7,0x70,0x36,0x06,0xC1,0x2B,0x0A, + + 0x28,0xF4,0xC0,0x6E,0xB8,0x94,0xFA,0xD7,0x28,0x7D,0x30,0x53,0x0C,0x97,0xD5,0xBB, + + 0x8E,0x81,0x02,0xCC,0x1B,0x6E,0x2C,0x5F,0x21,0xE9,0xF3,0xE8,0x64,0x41,0x72,0xA6, + + 0x68,0x0E,0xD6,0xD8,0x19,0x8E,0x3B,0x62,0x9B,0xF9,0xA5,0x5B,0xFA,0x6B,0x11,0x4B, + + 0x61,0x6A,0x83,0xFC,0x9C,0x6C,0x52,0x9A,0x2A,0x02,0xB3,0x27,0x10,0x63,0xDC,0xAA, + + 0x0F,0x82,0xB4,0x2E,0x92,0x6D,0x7C,0x88,0x57,0x5D,0xF5,0x43,0x02,0x60,0xC4,0x50, + + 0x96,0x13,0xBE,0x77,0x0C,0x72,0x12,0x48,0x53,0x9D,0x23,0x80,0xFF,0x72,0xD3,0x87, + + 0x12,0x43,0xF3,0x6C,0xB0,0xCE,0xC5,0xC7,0x52,0x4A,0xF4,0xAA,0xB7,0x85,0x06,0xBC, + + 0xD7,0x6E,0x48,0xA0,0x8F,0x33,0x35,0xA9,0x6D,0x69,0x22,0xA4,0x7D,0x7E,0xB5,0xE1, + + 0xA9,0x92,0x56,0x97,0xB7,0x13,0xFF,0x21,0x29,0x03,0x7B,0xC7,0x1A,0xD5,0xD4,0x6C, + + 0x11,0x10,0xFE,0x26,0x9E,0x3B,0x7C,0x22,0xB6,0x92,0xEB,0x7B,0x85,0xA9,0x51,0xB6, + + 0x00,0x95,0xAC,0x90,0x74,0x3A,0x3A,0x01,0xA1,0x15,0xFC,0x78,0x86,0xFC,0xFD,0x21, + + 0x92,0x0D,0xA5,0x81,0xA5,0x39,0xF2,0x76,0x03,0xF9,0x8D,0xF5,0x81,0xFF,0x73,0x05, + + 0x82,0x97,0xAD,0x91,0x33,0x3A,0x23,0x6F,0x08,0xA1,0xD9,0x95,0xFF,0xA0,0xF9,0x0E, + + 0x40,0x58,0x9A,0x75,0x18,0xA3,0x6E,0x9A,0x9B,0x8D,0xC8,0x3E,0x7C,0xD7,0xA2,0x0B, + + 0x79,0x13,0xA6,0x18,0x64,0x22,0x06,0x9C,0x80,0x21,0xF9,0xB4,0x92,0xEF,0x4D,0x27, + + 0x41,0x2A,0x87,0x70,0xB8,0xE1,0x12,0x82,0xFC,0x67,0x74,0x5E,0x26,0xD1,0x89,0x65, + + 0x34,0xE0,0x30,0xC1,0x98,0x19,0x0C,0x4A,0x6D,0xD6,0x34,0xC7,0x2C,0x87,0x7C,0x20, + + 0xEE,0x53,0x8C,0x31,0x99,0x59,0x08,0x73,0x7A,0xF3,0x51,0xFC,0x09,0xB4,0x04,0xC5, + + 0xD4,0x06,0xAE,0x9C,0x35,0x30,0xF1,0x83,0xB6,0x89,0x5E,0x9C,0x77,0xAA,0x1E,0xDB, + + 0x0F,0x92,0xFF,0x1D,0x4D,0x31,0x34,0xB7,0x1B,0x82,0xF7,0xF1,0x0F,0xF7,0xED,0xBF, + + 0x26,0xE9,0x85,0x62,0x18,0x32,0xED,0xE6,0x07,0xF0,0x5C,0xED,0x88,0xAD,0x8C,0x90, + + 0x1C,0x88,0xFB,0x06,0xC1,0xFD,0x4D,0x50,0xD6,0xDF,0x0D,0x79,0x80,0x25,0x51,0x52, + + 0x41,0x87,0x68,0x12,0xCE,0x5D,0xE5,0x92,0x8E,0x71,0xE6,0x04,0x51,0xAD,0xA3,0x7C, + + 0x0B,0x04,0x0A,0x58,0x29,0x5E,0x11,0x26,0xC2,0x42,0x16,0x10,0x3F,0x47,0xA1,0x7E, + + 0x24,0x72,0x96,0x48,0x68,0xCD,0x03,0x74,0x1B,0x3C,0xD8,0x24,0xFB,0x77,0x32,0x40, + + 0xED,0xE0,0xA0,0x9F,0x10,0x86,0x98,0xE8,0x64,0x12,0x44,0x1D,0xF5,0xE2,0xC4,0x76, + + 0xFA,0x8E,0x51,0xCC,0xE4,0xE5,0xCA,0xC0,0x57,0x00,0x4C,0x09,0xF4,0xA8,0x59,0x3F, + + 0xA7,0xC6,0x61,0x00,0x4C,0x19,0x0E,0x29,0x7B,0xDA,0xDF,0xC5,0x23,0xE9,0x51,0xAF, + + 0x07,0x7C,0xA5,0x83,0x6F,0xEF,0x0F,0x59,0xA1,0x02,0xFB,0x91,0xF3,0x18,0x5A,0x2E, + + 0x2E,0x8A,0xC4,0xC3,0x1D,0xC8,0x08,0xB4,0xBB,0x45,0x94,0x9E,0x84,0x43,0x76,0xF2, + + 0x1B,0xC4,0x06,0x8D,0x0A,0xA3,0x41,0x1E,0x99,0x91,0xEA,0xA0,0xA6,0x12,0x37,0xF7, + + 0x11,0x71,0x04,0xC2,0xB8,0x57,0x54,0xD0,0x2D,0x5C,0x16,0x2A,0x5B,0xFC,0x39,0xE4, + + 0x0B,0x2A,0x2B,0x00,0x8A,0xEA,0x9C,0x76,0xED,0x6A,0xBB,0xFD,0x5E,0xAD,0x32,0xB3, + + 0x4E,0x13,0x55,0x0F,0x18,0x94,0x41,0x62,0xAA,0x79,0x92,0xCD,0x5D,0xE1,0xE1,0x3A, + + 0x0B,0xE1,0x26,0x3C,0x5C,0x72,0x9A,0x45,0x6B,0xA3,0xF2,0x6F,0xA2,0x5B,0xA3,0x83, + + 0x5D,0x73,0x46,0x6B,0x1C,0xE6,0xAC,0x6B,0x4D,0xC0,0x8C,0x10,0x51,0x58,0xFB,0x9C, + + 0xAB,0x8C,0x93,0xDD,0x9A,0xA6,0x3B,0x44,0xC7,0xA3,0x00,0x7D,0x9F,0x83,0x78,0x06, + + 0x33,0x92,0xA2,0xAB,0xDD,0xC1,0x62,0xEE,0x8F,0xB4,0x8B,0xF9,0xA0,0x35,0x29,0xD5, + + 0xEF,0x21,0x45,0x14,0x3C,0x5C,0xF8,0xED,0xD8,0x2D,0x3C,0x47,0x95,0xB1,0x75,0x9B, + + 0xF0,0x3F,0x09,0x15,0xB8,0xBA,0x0D,0x4C,0x07,0xDB,0x12,0x90,0x9F,0x57,0x65,0x86, + + 0xD2,0xEF,0xF7,0x6D,0x16,0xB7,0x67,0x10,0x91,0x91,0x15,0x3D,0x61,0x67,0x2C,0xCE, + + 0x15,0xB0,0xAE,0x19,0x95,0xB9,0x42,0x13,0x86,0x94,0xD4,0xE2,0x97,0x6B,0xD4,0xEF, + + 0x80,0xD4,0xA6,0x2D,0x94,0xB3,0xD9,0xE9,0x0C,0xA1,0xC6,0x09,0x8A,0x74,0xDD,0x3C, + + 0x95,0x52,0xAF,0x28,0x15,0xBB,0xDD,0x69,0x72,0x42,0x5A,0x9D,0x2B,0xB7,0xAD,0x9B, + + 0xA7,0x1A,0xE1,0xD0,0x16,0x3D,0xFD,0x35,0x75,0xD4,0xEE,0x0C,0x16,0x74,0xF9,0x9D, + + 0x2A,0xC2,0x5D,0x0A,0x63,0x7D,0x7F,0x9F,0xCD,0x67,0x13,0xB5,0x17,0x8C,0x17,0x3A, + + 0xC0,0x69,0xE4,0x69,0x9E,0xBF,0x3D,0xA6,0xED,0xA7,0x5D,0x45,0x02,0xF9,0x67,0xAF, + + 0x29,0x34,0xC7,0xCE,0x30,0xB7,0xF7,0x77,0x47,0xE8,0x37,0x69,0x6E,0xF9,0xDF,0x48, + + 0x4C,0xF7,0xE7,0x08,0xDE,0xEE,0xAF,0xF4,0x10,0xA7,0xD7,0x7D,0x7B,0x0E,0x3F,0xC8, + + 0x89,0xDE,0x59,0x2C,0x1A,0xBA,0x95,0x11,0x11,0xDC,0x26,0x14,0x87,0x75,0xA2,0x5E, + + 0x3A,0xE2,0x5A,0xBC,0xC0,0xA6,0xEE,0xE5,0x66,0x69,0x5A,0x8C,0xDC,0x0D,0xAF,0x49, + + 0xA8,0x3D,0xCE,0x5C,0x1F,0x61,0x1F,0x29,0x68,0x2B,0x73,0x1C,0x7A,0x6A,0xFF,0x1C, + + 0xAD,0x6A,0x79,0xB9,0x44,0xFD,0xF7,0x79,0x2A,0x5C,0x08,0x7F,0x42,0xBE,0x5A,0xA9, + + 0x68,0x63,0x68,0x8E,0x32,0xF6,0xF4,0xDE,0x23,0x60,0xF0,0x0A,0x33,0x6F,0xA2,0xE3, + + 0x8D,0x0C,0x7B,0x2F,0xEB,0xB4,0x27,0x77,0x8B,0x11,0xFE,0x54,0x52,0x40,0x7F,0x07, + + 0x61,0x81,0xFE,0x3A,0x6E,0xF7,0xF5,0xDE,0x21,0xFD,0x4E,0x24,0x2D,0x0E,0xF6,0x35, + + 0x75,0x80,0xFA,0xD7,0x12,0x65,0x51,0xA4,0xC7,0x59,0xC3,0x95,0xAD,0x7C,0x67,0xB1, + + 0x9E,0x96,0x53,0xC0,0x7E,0xD2,0x18,0x82,0xEE,0xE9,0x85,0xE6,0xC3,0x10,0x37,0xAD, + + 0x03,0x0B,0x5B,0xD0,0x7F,0x52,0x8C,0xD5,0x00,0x49,0xEA,0x8B,0xA7,0x6A,0xA9,0xCB, + + 0xA0,0xD0,0x7E,0xA7,0xF1,0xC3,0x1D,0x83,0x7F,0xCA,0xE9,0x94,0x71,0x39,0x21,0xD7, + + 0x7F,0x46,0xF3,0xB7,0xF0,0xD7,0x56,0x8F,0x2A,0xFF,0x19,0xB8,0x42,0x61,0x04,0xB8, + + 0x6B,0x23,0x35,0x28,0x6F,0x28,0xD7,0xD8,0x68,0xF9,0x2A,0xD2,0x3B,0x4B,0x58,0x57, + + 0x2D,0xF4,0x31,0xAC,0xDC,0xF6,0x53,0xB5,0xA0,0x19,0x79,0xC2,0xFD,0x84,0x90,0xFA, + + 0x0C,0x87,0xD9,0x62,0xE4,0xD5,0xD3,0xE1,0xB4,0x08,0x04,0xC7,0x7D,0x06,0x1C,0xEA, + + 0x0D,0x86,0x2C,0x1B,0x72,0x4F,0x0C,0x09,0xE9,0x09,0x5F,0xC6,0xBA,0xE0,0xEF,0x37, + + 0x97,0x50,0x55,0xB3,0x4E,0xFB,0x78,0xCD,0x09,0x41,0xFB,0x63,0xFB,0xEB,0x52,0xCC, + + 0x6B,0xF2,0x15,0x26,0x24,0xEB,0x14,0x57,0x1E,0x0D,0x57,0x1E,0x78,0x0D,0xF8,0x07, + + 0x63,0x3E,0x42,0x27,0xED,0xE2,0xD8,0x92,0x02,0xB6,0x93,0x79,0x58,0x4A,0xB4,0x2B, + + 0xE9,0xF0,0x12,0x5D,0x7A,0x90,0x10,0x09,0x49,0x4C,0x1B,0xA0,0x84,0x2E,0x04,0x7F, + + 0x20,0xEF,0x3F,0xE4,0x3C,0xCB,0x2B,0x90,0xF2,0xEF,0x37,0x92,0xAC,0x95,0x0C,0x6F, + + 0xDE,0x11,0x1B,0x8E,0x13,0x85,0xC1,0x28,0x67,0xCB,0xAE,0xB5,0xF4,0x67,0xFA,0x7F, + + 0x5F,0x32,0x7A,0xA1,0x94,0xC6,0x2E,0x11,0x7C,0xCD,0xCB,0x96,0xFC,0xD9,0x09,0x91, + + 0x5E,0xEC,0xD9,0xE7,0x5A,0x70,0xDF,0x59,0x2D,0x1E,0x3C,0xAF,0x6D,0xC7,0xE9,0xBF, + + 0xBF,0x56,0xBC,0xC0,0xD2,0xB5,0x8F,0xAF,0x1D,0xA6,0xD0,0x06,0x56,0xF9,0xE5,0xBE, + + 0x5C,0x15,0xB4,0x64,0x85,0x9A,0xDC,0x2D,0xF1,0xAE,0xF3,0x8B,0xAA,0xE9,0x08,0x45, + + 0x37,0xEB,0xD4,0x36,0x36,0x9B,0x88,0xB1,0x03,0xE9,0x8C,0x18,0x55,0x37,0xB6,0x71, + + 0xF3,0xE5,0x69,0xF1,0x32,0x3A,0xA2,0x83,0x14,0xE8,0x66,0xAF,0xF5,0xAD,0xF9,0x88, + + 0xD7,0xE7,0xFB,0xE7,0xB5,0x9E,0x64,0xAC,0x64,0x16,0xC8,0xA3,0x6A,0x36,0x47,0x31, + + 0x3A,0xAA,0xDA,0xB5,0xD2,0x7D,0xA6,0xA8,0xCE,0x18,0x41,0xBC,0xFA,0x77,0x07,0x76, + + 0xA8,0x1A,0x10,0x4D,0xFE,0x97,0x03,0x8D,0xDB,0xBE,0xF6,0x0D,0x2E,0xC5,0x46,0xC9, + + 0xBA,0xA3,0xB5,0x2C,0x9B,0x94,0xF3,0x39,0x15,0x7B,0x7F,0x82,0xDD,0x15,0x1F,0x51, + + 0x8F,0x6D,0xEE,0x2E,0xBB,0x58,0x0F,0xEE,0x8F,0xC3,0x41,0xA3,0x87,0x00,0x61,0xA7, + + 0xF2,0xA0,0x90,0x1E,0x29,0x7F,0x9B,0x10,0x1C,0x90,0x15,0xC1,0xF6,0x80,0xB8,0x4D, + + 0xB1,0x5C,0xEF,0xCB,0x3B,0x30,0x68,0xAE,0x38,0x54,0x7E,0x93,0x6F,0x3C,0xB4,0xB7, + + 0x40,0x5B,0xCF,0xD1,0xBD,0xC5,0x40,0x99,0xED,0xD4,0x3A,0x02,0x0E,0x29,0xF3,0xF1, + + 0x88,0x0D,0x98,0x41,0x1A,0x1F,0x79,0x1F,0x1C,0xC4,0x27,0xD5,0xD0,0x6D,0x88,0x60, + + 0x67,0xFD,0x92,0xB3,0xE6,0x55,0xE8,0x12,0x6D,0x30,0x87,0xD4,0x09,0xE5,0xC5,0xF9, + + 0xA0,0x2D,0x15,0x65,0xEC,0x1D,0x8D,0x07,0xE6,0x83,0xE3,0x09,0x3F,0x86,0x57,0x14, + + 0xA1,0x2C,0x09,0x09,0x19,0xC6,0x07,0x57,0xAD,0xCE,0xD4,0x13,0x5A,0xE1,0x9B,0x2D, + + 0x7A,0x2B,0x60,0x8F,0xE2,0xA2,0xB7,0x00,0x07,0x84,0x2B,0x64,0x29,0x0C,0xCC,0x30, + + 0xF8,0x08,0xE9,0xB4,0x95,0xAD,0x22,0x73,0xE4,0xC3,0xF2,0x09,0x76,0x07,0xC1,0x2D, + + 0xF0,0x29,0xED,0x40,0x37,0x2E,0x09,0xE1,0xE4,0x74,0xAE,0xCC,0xD0,0x3C,0x16,0xD7, + + 0xD0,0xA8,0x64,0xA7,0x93,0xA8,0x29,0xEE,0x66,0x4F,0xA0,0x74,0x72,0x18,0x82,0x78, + + 0x6E,0xDD,0x16,0x6C,0x91,0xCA,0x4D,0x59,0x65,0xAB,0x05,0x2F,0xD1,0xE4,0xBA,0x1B, + + 0x05,0xA9,0x11,0xA6,0x90,0xCB,0x44,0x3C,0x2E,0xED,0x9D,0xA9,0x36,0x4F,0x5D,0x0C, + + 0x7D,0x85,0x78,0x0F,0xE4,0x55,0x48,0xDB,0x4D,0x7B,0xDB,0xDE,0x1A,0xEA,0xD4,0xE4, + + 0x72,0x8B,0x50,0x60,0x93,0x54,0x68,0x04,0x49,0x14,0x3E,0x4D,0x36,0x6D,0xDF,0x7B, + + 0x16,0x23,0x82,0x0E,0x0B,0x2E,0x76,0x88,0xCC,0xCF,0xAB,0x93,0xFB,0x1D,0xCE,0x38, + + 0xF0,0x36,0x92,0xDC,0x1A,0x7C,0xF2,0xAE,0x2C,0xAD,0xB8,0x3E,0x0F,0xEB,0xC3,0x39, + + 0xB8,0x21,0x9B,0xCD,0x9B,0x5F,0xB0,0x19,0x6D,0xC8,0x0B,0x09,0x51,0x68,0xEB,0x5F, + + 0xD8,0xA0,0xD1,0xBD,0xBB,0x04,0x03,0xFF,0x90,0xC5,0xF7,0x78,0x7E,0x67,0x24,0x82, + + 0x24,0x70,0x00,0xE4,0xCB,0xF2,0x98,0xE0,0xE7,0x04,0xF4,0x99,0x7C,0x9C,0x2C,0x92, + + 0x2D,0x88,0xAA,0x32,0x2D,0xB5,0x5A,0xB6,0x0E,0x57,0xF6,0x54,0x34,0xE1,0x25,0x83, + + 0xA4,0x03,0xAB,0x83,0xB7,0xF2,0xD7,0xBC,0x2A,0x79,0x9D,0x65,0x0D,0x7E,0x2D,0x93, + + 0xE1,0xB5,0x97,0xE4,0x93,0xBA,0xBD,0xC1,0x0E,0x16,0xC3,0x24,0x9E,0x45,0x3A,0xC5, + + 0x26,0x39,0x0B,0x44,0x37,0xD3,0xC2,0xDB,0x60,0x35,0x0F,0xA1,0x8B,0x42,0x64,0xC3, + + 0xCE,0xD1,0x48,0xB4,0x76,0x95,0x9B,0x32,0x23,0x29,0x10,0xF4,0x7F,0x99,0xC5,0x3C, + + 0x29,0x20,0xDF,0x25,0x34,0x9E,0x80,0x81,0x15,0xBA,0x4E,0x7D,0xF7,0x96,0x96,0xA8, + + 0x58,0xD6,0x95,0x15,0x34,0xB9,0x46,0xAC,0x32,0x6A,0xB5,0x9C,0xD3,0xF1,0xE6,0x56, + + 0xD6,0x65,0x20,0xFF,0x40,0xB1,0x48,0x9D,0x07,0x7D,0xB7,0xB0,0x98,0x0C,0x50,0x9C, + + 0xCC,0x1A,0x71,0x9E,0x19,0xA2,0x5F,0xA0,0xBD,0x6D,0xE0,0x8C,0x3D,0xB5,0x31,0xE9, + + 0xCC,0x80,0x23,0x72,0xB4,0xFB,0xB6,0x58,0x0C,0x96,0x01,0x5E,0x14,0xBE,0x66,0x68, + + 0x21,0x16,0xFB,0xF9,0x30,0xD9,0x18,0x4A,0x71,0xC9,0xDE,0xB1,0x2D,0x8F,0x06,0x95, + + 0x8D,0x17,0x46,0x0C,0xB2,0xB2,0xDD,0xF3,0xEE,0x42,0xA6,0x73,0xDF,0x76,0x14,0x2A, + + 0xFC,0x92,0x8E,0x9F,0xCA,0xB0,0x27,0x6A,0xCA,0x22,0x34,0x8C,0xDC,0xFB,0x63,0x29, + + 0x2C,0x62,0x9F,0x0D,0x1F,0xFD,0xD8,0x95,0x33,0x9F,0x0C,0x0D,0x7C,0xB6,0x0F,0x84, + + 0x48,0x32,0xE5,0xDE,0xB9,0x2C,0x45,0x05,0x8C,0x56,0xAF,0x62,0x5E,0x75,0x7F,0xE2, + + 0x82,0x03,0x73,0x10,0xED,0xAB,0xEF,0xDB,0xC2,0x48,0xE0,0x5A,0xF3,0x05,0x28,0x69, + + 0xA0,0xFE,0xB2,0xA4,0x8C,0x8E,0x65,0x14,0xA8,0x11,0x90,0x83,0xB0,0x6E,0x46,0x73, + + 0x23,0x04,0xEA,0x39,0x7B,0x66,0xEE,0x43,0xE0,0x4F,0x2E,0xC7,0xF4,0x64,0x23,0xC1, + + 0xDD,0x05,0x2D,0x77,0x6E,0x62,0xE4,0x4A,0xFD,0x3C,0xF9,0x75,0x37,0x6E,0x46,0x49, + + 0x26,0x02,0xB8,0x60,0x93,0x29,0xEF,0x82,0x66,0xC9,0xA8,0xE6,0x74,0x2C,0x28,0x10, + + 0xEF,0x08,0x08,0x89,0xAA,0x2B,0x98,0x45,0xFD,0x48,0x13,0x16,0xAE,0x0B,0x49,0x76, + + 0x23,0xD9,0xE9,0x42,0x13,0x62,0xAE,0x91,0x2E,0xB7,0xA9,0x42,0x71,0x26,0xE5,0xCF, + + 0x0E,0xF1,0x69,0x97,0x1F,0x29,0xA2,0x36,0xCD,0x48,0xBE,0x35,0x93,0x9A,0x52,0x85, + + 0xAB,0x48,0x2A,0x90,0x2B,0x4C,0x28,0x8D,0xFF,0xB5,0xD8,0xD2,0xFB,0x65,0xAD,0xB8, + + 0xD9,0x2A,0x4A,0xDC,0x0A,0x6B,0x3A,0xD2,0x2A,0x4D,0xE2,0xBE,0x58,0xEE,0xC8,0x6B, + + 0x5C,0xFB,0x39,0xF6,0xE7,0x0A,0xBF,0xA6,0x7D,0xC3,0xD9,0x30,0x99,0x62,0x2C,0xBD, + + 0x34,0x02,0x45,0xA9,0x78,0x84,0x7A,0x79,0xC5,0xBE,0x20,0xDF,0x75,0x96,0x4A,0x4D, + + 0x85,0x08,0xFA,0xE8,0x98,0x64,0xD5,0xD7,0x5E,0x63,0xB5,0x93,0x7E,0x00,0xDA,0x9F, + + 0xF6,0xBB,0x0A,0x04,0x46,0x2B,0x15,0x5E,0xA2,0x7D,0x7D,0x7A,0x8F,0x09,0x47,0x0E, + + 0x89,0x01,0x0C,0xBD,0x96,0x21,0xD3,0x84,0x12,0x0C,0xEC,0xF2,0x25,0x2F,0xF0,0xC3, + + 0x8A,0xEF,0x43,0x5A,0xF8,0xAF,0x03,0x74,0x81,0x7F,0x66,0x1D,0x9F,0x1D,0x36,0xB0, + + 0x22,0xBF,0xFE,0x87,0x5C,0x30,0x4F,0xF3,0x1B,0x23,0xF4,0xE4,0xC6,0x7D,0xB9,0x63, + + 0xAD,0x50,0x11,0x94,0xB9,0xFB,0x04,0xB5,0x1E,0x71,0xD6,0xA9,0xD2,0x77,0xA5,0xF2, + + 0x03,0x91,0xA1,0xB9,0xB0,0x12,0xD5,0x68,0xAD,0xAF,0xDF,0x5B,0x53,0x7F,0x17,0x93, + + 0x4A,0x1C,0x8D,0x95,0x4C,0x92,0x8D,0x4C,0xE1,0x12,0x95,0x1F,0x04,0x7C,0x51,0xFF, + + 0x16,0x55,0x54,0x46,0x10,0x54,0x36,0xF1,0x61,0x34,0xAE,0x14,0x7A,0x7B,0x5B,0x23, + + 0xA7,0x98,0xB3,0x56,0x11,0x55,0xDD,0xC0,0xDC,0x39,0x97,0x84,0x92,0x6E,0x7F,0x3B, + + 0xF8,0xEB,0xFF,0x27,0x90,0xC9,0x6F,0xE3,0xA6,0xFB,0xF3,0xBC,0xB9,0x36,0x9E,0x22, + + 0x2F,0x1A,0x97,0xD4,0x10,0x76,0x99,0x0E,0xC7,0x3B,0x5E,0x13,0xC0,0x4C,0x47,0xEE, + + 0x49,0x1C,0xBE,0xBD,0x99,0xB9,0x2C,0x52,0x93,0x23,0x22,0xD3,0xDB,0x39,0x75,0xBF, + + 0x88,0x77,0xDC,0xD6,0xD2,0x5D,0x67,0x3C,0x65,0x56,0x66,0xB4,0x98,0x36,0x61,0x6B, + + 0x8C,0x17,0xE0,0x7E,0x3C,0xB7,0x57,0x45,0x84,0x65,0xCE,0xD8,0x9B,0x7E,0x6D,0x91, + + 0x58,0x92,0xB7,0x67,0x15,0x36,0xC2,0x80,0xDE,0x2C,0xC6,0xCD,0x9A,0x80,0x55,0x32, + + 0xD3,0x17,0xFC,0x32,0xE7,0xE1,0x0B,0x04,0x87,0x47,0x2C,0x04,0x34,0x33,0xDE,0x5A, + + 0xA3,0x65,0x05,0x3F,0x6F,0xEA,0xDF,0x1A,0x8B,0xE2,0x01,0x08,0x0C,0x3D,0x3B,0x96, + + 0x5B,0xE2,0x68,0xBF,0x41,0x7C,0x0E,0x7F,0xA8,0xFA,0x47,0x69,0xCC,0xA0,0x77,0xB9, + + 0xA7,0x5F,0x5A,0x2F,0x9F,0x39,0x9F,0x21,0x7F,0x1E,0x5F,0x24,0x45,0x79,0xE5,0x8F, + + 0xED,0xC3,0xA5,0xEE,0x27,0x6F,0xB1,0x06,0xB9,0xAC,0xC8,0x02,0xD6,0xE3,0x7E,0xB3, + + 0xEE,0xE5,0xF1,0x15,0xF2,0xED,0x5F,0xCD,0x61,0x3A,0xE2,0x1D,0xF6,0x84,0xB4,0xF0, + + 0x00,0x0F,0x09,0x13,0x11,0x72,0x56,0x63,0x84,0x3F,0xF0,0x87,0x90,0xD2,0x11,0xEC, + + 0x6C,0x80,0x29,0xD1,0x99,0xE2,0x39,0x17,0xF6,0xB2,0xE3,0x15,0x76,0xE7,0xDF,0xD9, + + 0xF9,0x59,0x98,0x62,0x10,0x1E,0xB0,0xAE,0x90,0x86,0xCF,0x84,0xFA,0xE0,0x57,0xCD, + + 0xF8,0x18,0x1D,0xD2,0x6D,0x83,0xE3,0x56,0xA6,0x87,0x75,0x86,0x5B,0xEA,0x02,0xBD, + + 0xA2,0xEA,0x8B,0xBA,0x94,0x7D,0xBE,0x9B,0xC0,0xBE,0x0F,0x43,0x54,0xEE,0x8A,0xAD, + + 0xA3,0xE9,0x29,0x1F,0x07,0xE7,0x2A,0x45,0x45,0xDB,0x99,0x37,0xC2,0x6A,0xB7,0xF9, + + 0x88,0x05,0x8E,0x1A,0x95,0xCC,0x8A,0xD5,0x3F,0x64,0x34,0xDE,0xE4,0xE7,0x95,0xF8, + + 0x8D,0xC4,0xA6,0x4D,0xED,0x68,0xB4,0x45,0x6E,0x19,0x4A,0x2A,0x79,0xEF,0x75,0x36, + + 0x67,0xEE,0xAF,0x5C,0x28,0x62,0x6C,0x9F,0xCA,0xF0,0x07,0xDF,0xFC,0xE5,0xBB,0xEA, + + 0x2E,0xCB,0x23,0x49,0xF7,0x8B,0x62,0x03,0x68,0x34,0xB3,0x90,0x3C,0xE4,0x22,0x75, + + 0x06,0xE0,0xEF,0x43,0xFF,0x03,0x80,0x88,0xA7,0x35,0x8A,0x4A,0xDC,0x10,0x14,0x73, + + 0xC7,0x73,0x8A,0x1E,0xA1,0xA2,0x1A,0x30,0xE9,0xC2,0xB4,0x93,0x57,0xAD,0x03,0x0B, + + 0x6A,0x83,0xE6,0xA7,0xAD,0x61,0x01,0x94,0x86,0x43,0x89,0x1D,0x7D,0x9A,0xFA,0xDD, + + 0x73,0x5A,0xE9,0xBD,0x18,0xFA,0xEB,0x08,0xDB,0xA3,0xB0,0x0F,0x5D,0x13,0x04,0x10, + + 0xA4,0xD1,0xDB,0xA1,0x95,0x6F,0x69,0xAA,0x57,0xD0,0x4C,0xAE,0x17,0x0F,0x54,0x10, + + 0xF8,0xCE,0x65,0x92,0x7D,0x97,0x6C,0x26,0x84,0xDE,0x44,0x5E,0x7E,0xBE,0x45,0xDC, + + 0x1B,0x6F,0x11,0xE5,0x4B,0xA9,0xF5,0x73,0x83,0xD4,0x4D,0xD5,0xC7,0x18,0x12,0x71, + + 0x27,0x6F,0xCD,0xD7,0x1B,0x3E,0x89,0xCC,0x46,0x92,0x2D,0xC4,0xED,0x9F,0xA9,0x2A, + + 0xCF,0x6D,0xE8,0xBD,0x97,0x3E,0x14,0xA6,0x1D,0x5F,0xFC,0x41,0xD7,0x0B,0x3C,0xD2, + + 0x21,0x6F,0xA6,0x28,0x31,0x26,0x76,0x76,0x2F,0x72,0x6C,0xE7,0x6B,0xF3,0x1F,0xA3, + + 0xAA,0xD6,0x1E,0x25,0x1A,0xBB,0xF5,0x01,0x64,0x95,0xCF,0x05,0x0B,0xF9,0xA2,0xF7, + + 0x94,0xB1,0xB8,0xF3,0x84,0xAC,0x3B,0x22,0xAC,0x7D,0x50,0x17,0x56,0x77,0x5B,0xE5, + + 0x8F,0x9E,0xDE,0x0C,0x3D,0xFF,0xED,0xAB,0x0F,0x2E,0xD0,0xA2,0x7F,0x68,0x56,0x18, + + 0x2C,0xE4,0x96,0x4E,0x61,0x31,0x06,0x41,0x90,0xB5,0x71,0x46,0x7B,0x73,0x88,0x61, + + 0x45,0x30,0x9F,0xDF,0xB4,0xB5,0xA4,0x2F,0x80,0x36,0x77,0x76,0x58,0xB8,0x75,0x9A, + + 0x0E,0x98,0x9F,0x7D,0x3F,0xB3,0x58,0xFB,0xAD,0x0B,0x6F,0x3B,0xA2,0xD3,0xDC,0x8D, + + 0xEC,0x4E,0x5C,0x30,0xD7,0xEC,0xE6,0xB5,0x0F,0xBC,0x8E,0xCA,0x7E,0xFC,0xD4,0xCE, + + 0x29,0xE7,0x2E,0x06,0xAB,0xFC,0x44,0x4A,0x49,0x29,0xFE,0xFE,0x7F,0xFD,0x2F,0xD3, + + 0x9D,0xB8,0x44,0x2D,0x5E,0x01,0xD8,0x99,0x92,0x21,0xF7,0xEF,0xFE,0xFE,0xB8,0xA5, + + 0x0C,0xFA,0x8F,0x9B,0x3B,0x32,0xDF,0x08,0x63,0x62,0xFF,0xFF,0x9E,0x15,0x10,0x95, + + 0x02,0x6E,0xD9,0x17,0xF7,0x3B,0xBA,0xD1,0x46,0xE0,0x13,0xCC,0x98,0xAD,0x1B,0x98, + + 0xA4,0x88,0xAD,0xE2,0x7A,0x80,0x1E,0x22,0x47,0x21,0x9E,0x4A,0x8F,0xAE,0x58,0x86, + + 0x25,0x84,0xA0,0xF1,0xB6,0x39,0x59,0xC9,0x52,0x00,0x6A,0xE2,0x0E,0x6A,0x29,0x83, + + 0x09,0x0B,0x6B,0xE8,0x57,0x2C,0xA5,0xB3,0x04,0xE8,0xB9,0x25,0x30,0x78,0x41,0x3F, + + 0xA5,0x07,0x5F,0xD1,0x11,0x84,0x33,0x06,0xB1,0x54,0xB3,0x02,0xA5,0x74,0x9A,0x90, + + 0x4B,0x47,0x8E,0xBC,0x83,0xE8,0x3F,0x8F,0xB6,0xD3,0x60,0x8E,0x43,0x28,0x81,0x4D, + + 0x84,0x77,0x01,0x38,0xDE,0x2C,0xE9,0x9A,0x4F,0xBB,0x69,0x9A,0xE1,0x8F,0xD6,0x8B, + + 0x03,0xF5,0x36,0x35,0xCF,0x49,0xA2,0x4A,0xA7,0xDC,0xA6,0x32,0x0D,0x98,0x82,0xCF, + + 0x2C,0x64,0xD2,0x99,0x14,0x2B,0x92,0x39,0x92,0x4E,0xB4,0xDA,0x6B,0xCC,0xF2,0xF0, + + 0xC1,0xC6,0xF5,0x5B,0x2A,0x4F,0x52,0xD0,0x09,0x0B,0x92,0x2C,0xDE,0x5B,0x93,0x7B, + + 0xBB,0x1F,0xC1,0x11,0x71,0x8B,0xB9,0xD8,0xCE,0xEA,0x29,0xEA,0x1A,0x3A,0xA3,0x90, + + 0xBA,0xCF,0x33,0x86,0x3E,0x39,0x1D,0xA5,0xCF,0xB2,0xA1,0xCB,0xFB,0x59,0x1B,0x53, + + 0x6D,0x4C,0xA4,0x7D,0x1B,0xEC,0x52,0xEC,0x37,0xEA,0xE9,0xF2,0xAD,0x51,0x21,0xB0, + + 0xD3,0xA0,0xEA,0x4C,0xFA,0x36,0xE2,0x41,0xEC,0x5F,0x27,0x0E,0x99,0x6D,0x63,0xD4, + + 0x8C,0xF7,0x7C,0xDE,0xF2,0xE1,0x5B,0x65,0xF9,0xF8,0x2E,0x2A,0x3B,0x18,0x5D,0x6D, + + 0x6C,0xC2,0xEA,0xAB,0xA8,0x3B,0xE3,0xC1,0x4B,0x6E,0x22,0x3A,0x26,0x19,0x5E,0x84, + + 0x87,0x00,0x3C,0x7A,0x5B,0x3F,0xD4,0xB1,0x63,0x4B,0x55,0xA1,0x50,0x32,0x55,0x82, + + 0xC6,0x0A,0xF3,0x7C,0x7E,0x7C,0xDC,0xFC,0xA1,0x5B,0xA2,0x60,0x52,0x29,0x5F,0x49, + + 0x07,0x9F,0x83,0xB7,0xD0,0x92,0xA5,0x25,0xA8,0x67,0xCD,0x21,0xD1,0x6B,0xED,0xE7, + + 0x92,0x87,0xF6,0x52,0x6B,0x3B,0x5D,0x59,0x59,0x1E,0xC4,0xC5,0x54,0xAC,0xDB,0x91, + + 0x23,0x54,0x3B,0x83,0xCB,0xC2,0x54,0x06,0x51,0x40,0x78,0x60,0x0F,0xB3,0xF6,0x55, + + 0x2D,0x9F,0x95,0x52,0xD6,0x0A,0xE6,0x10,0x29,0x7C,0x1A,0x70,0x0E,0x95,0x49,0x9A, + + 0x91,0x82,0x3A,0xBF,0x64,0xE9,0x8F,0xED,0xD1,0x42,0x15,0x98,0xBC,0x7C,0x9A,0x2E, + + 0x1C,0x79,0xB2,0x51,0xCE,0x91,0xAC,0x75,0x9E,0x7C,0x95,0x71,0xC0,0x43,0xFC,0x0C, + + 0x09,0xBA,0x85,0x64,0xFC,0xF5,0x14,0x4E,0xCD,0xDE,0x97,0xCA,0x87,0xA5,0xF1,0xEB, + + 0x7E,0xED,0x1E,0x68,0x31,0x3D,0x2F,0x48,0x2D,0x16,0xA4,0x23,0x86,0xF4,0x39,0xE9, + + 0xC8,0xC5,0x6B,0x1F,0xB0,0x30,0x13,0xE9,0xFC,0x41,0xC7,0xDA,0xB4,0x16,0x77,0xAB, + + 0x56,0x00,0x4D,0xE7,0xD2,0x34,0x8F,0xCB,0xDA,0x6E,0x7C,0x43,0xCA,0x92,0x79,0x47, + + 0x2C,0xE5,0xCE,0x49,0x09,0xD5,0x0F,0xF2,0x8F,0x30,0xE8,0xDD,0x1E,0xB3,0xD1,0xCD, + + 0x2A,0x7D,0x97,0x46,0xE2,0x72,0xC1,0x6E,0x68,0xDD,0xD6,0xF0,0x48,0x68,0x8F,0x09, + + 0xBA,0x5C,0x7F,0x36,0xAA,0x73,0x93,0x12,0x67,0x1C,0x6D,0xAA,0x38,0xDE,0x5F,0x51, + + 0xDE,0x04,0xCE,0xA6,0x1C,0x24,0x06,0xF3,0x8C,0x1C,0x85,0xF8,0x5C,0x3E,0xDA,0xEA, + + 0xD6,0xCF,0x18,0x94,0x14,0xEF,0x8C,0xA6,0x0C,0x67,0x75,0xCE,0x9C,0x4D,0xD2,0x54, + + 0x1B,0x9A,0xF8,0x61,0x17,0xA2,0x02,0xDA,0x89,0x0E,0x72,0x56,0x51,0x6C,0x20,0xE5, + + 0xB7,0xB6,0xF8,0x81,0x31,0xB2,0x31,0x23,0xC4,0xC2,0xA7,0x13,0x33,0x4F,0x08,0xE7, + + 0xA3,0xC2,0x6F,0x13,0x12,0x61,0x59,0x65,0xE8,0x81,0x43,0xDF,0x1D,0x2E,0x8C,0xD0, + + 0x0E,0x8C,0x5A,0xA6,0x12,0xEA,0xDC,0x10,0x8C,0x05,0x49,0x16,0xD6,0xFB,0xA8,0x5F, + + 0x01,0xF4,0xF4,0x14,0xFE,0x6F,0x03,0x35,0xBA,0x73,0xB0,0x7B,0x64,0x73,0x21,0x31, + + 0x61,0x85,0x24,0x67,0x88,0xE6,0x0E,0x11,0x04,0xC6,0x4A,0x17,0x56,0xF0,0xBB,0x93, + + 0xC3,0x9C,0xB1,0x0A,0xA4,0x6D,0x42,0x03,0x47,0xD8,0xC2,0x91,0xC7,0x5A,0x8A,0x8F, + + 0x89,0x9A,0x4A,0x9B,0x2F,0xEE,0x34,0xEA,0x7F,0x8D,0x5E,0xBC,0x4C,0xE0,0xEA,0x67, + + 0xDE,0x92,0xF0,0x26,0xBA,0xA8,0xFA,0x2B,0x15,0xC1,0x8B,0x2E,0xFA,0xA8,0x8B,0x9E, + + 0x09,0x48,0xF9,0x0E,0x3B,0xBA,0xF3,0x3A,0x0C,0xA4,0x35,0x5D,0x3B,0xF1,0x88,0xED, + + 0xBE,0xCD,0xEE,0xCF,0xAE,0x81,0xBE,0xB9,0x08,0xA2,0xAB,0xAE,0x99,0xEA,0x53,0xBA, + + 0x4E,0xC3,0x5A,0xAE,0x0B,0xEE,0xC9,0x1A,0xCE,0xDA,0x0A,0x86,0xCE,0x27,0x66,0x38, + + 0x2D,0x2F,0xCA,0xAB,0x2C,0x3B,0x1D,0x1C,0x85,0x0C,0xA2,0x6A,0x6C,0xF8,0xF3,0x6B, + + 0x88,0xCE,0x7C,0x1E,0x9F,0xEE,0x3B,0xEB,0x43,0xD5,0x72,0x87,0x4E,0x23,0xEB,0x1A, + + 0x2E,0xCD,0x53,0xA1,0x8F,0xE2,0x83,0xF3,0x6A,0x49,0xA1,0x7B,0x78,0xAE,0x95,0xF1, + + 0x87,0xDF,0xA2,0xB4,0x54,0x10,0xCC,0x86,0x85,0x7F,0x0C,0x5C,0x64,0xBD,0xF3,0x12, + + 0x52,0xE4,0xA4,0x03,0x06,0x75,0x86,0x4C,0xE8,0xB3,0xA6,0xB4,0xC6,0x6C,0x24,0xFC, + + 0x03,0xD3,0xDA,0xF9,0x3B,0x04,0x23,0x5C,0xD7,0x94,0xCA,0x60,0x2A,0x2F,0xED,0xE3, + + 0xD5,0x68,0x17,0xE7,0xBD,0xBA,0x43,0x87,0xD6,0xF7,0xA7,0xB5,0x67,0xFB,0x45,0xB4, + + 0xD9,0xFA,0xC5,0x32,0x10,0xB0,0x24,0x66,0x2E,0xD5,0xCE,0x0E,0xEE,0x3B,0xD3,0x41, + + 0x4F,0x5A,0x7E,0x26,0xB7,0xAA,0x25,0xF8,0x82,0x2A,0x01,0xD8,0xD4,0x6E,0x03,0xF2, + + 0xA7,0x56,0xAD,0x00,0x4B,0x10,0x33,0xE7,0xCF,0x5B,0x65,0x63,0x8B,0x92,0x4D,0xC3, + + 0x46,0x8C,0x76,0x5D,0xB6,0x47,0x91,0x60,0x8F,0xDF,0xD9,0x0E,0x76,0x0C,0x66,0x76, + + 0x90,0xDA,0x27,0x7A,0x38,0xA3,0x8E,0xCA,0x24,0x73,0x34,0xF0,0x8D,0x24,0x94,0xDD, + + 0xEF,0x9B,0x54,0x9C,0x73,0x34,0x5E,0xF0,0xBD,0xD4,0x59,0x3A,0x00,0xDB,0x76,0x8B, + + 0x9F,0x7E,0x81,0xFC,0xD4,0x7B,0x21,0xAA,0x93,0x9A,0x18,0xD4,0x21,0xE1,0x67,0x0A, + + 0xE9,0x9D,0xF6,0x89,0x5A,0xBF,0x4D,0xBA,0xE7,0x56,0xF7,0x3B,0x08,0xB4,0x47,0x3C, + + 0x1D,0x88,0xBF,0xBB,0x9B,0x43,0xF4,0x95,0xA4,0x7D,0x97,0x12,0xE2,0xBC,0xAB,0x7A, + + 0x31,0x14,0x41,0x38,0x2F,0x40,0x27,0xF0,0x88,0xB3,0x59,0x5E,0x96,0xF4,0xDD,0x2B, + + 0xAA,0xD0,0xE6,0xA9,0x8D,0x28,0x8D,0xE9,0xAE,0x53,0x3D,0x40,0x2A,0x0F,0xAF,0xA6, + + 0x84,0x84,0x17,0xDD,0x99,0xA4,0xBF,0x86,0x09,0x9D,0xD8,0x1D,0x1F,0x5E,0x38,0xFF, + + 0xE9,0x0F,0x98,0x34,0xE7,0x8F,0x29,0x53,0x61,0xC1,0x87,0x3F,0x20,0xF4,0x48,0xE3, + + 0x27,0xDC,0xB6,0x25,0x9C,0x87,0x66,0x19,0xA8,0x70,0x00,0xB0,0x2C,0x80,0xD5,0xFF, + + 0x7D,0x83,0x13,0x77,0x7B,0x83,0xEA,0xD2,0xF4,0xCF,0x04,0x1B,0xF9,0x97,0x5B,0xBE, + + 0x6A,0x20,0x42,0xD5,0xBC,0x8E,0xB5,0xA2,0x96,0x49,0x2E,0x09,0x25,0xD2,0x41,0x26, + + 0xE9,0x55,0xC8,0x80,0xF3,0x8B,0x38,0x02,0xB5,0x06,0x56,0x99,0xC0,0xBF,0x5B,0x23, + + 0x37,0xA4,0x91,0x7B,0xB6,0x83,0xFB,0x45,0x9B,0x84,0x81,0x5A,0xF6,0x3A,0x7B,0xB2, + + 0xBE,0xA9,0xD4,0xB6,0xA6,0x48,0x53,0x8C,0x1E,0x57,0xF3,0xE1,0xC9,0x98,0x71,0xAE, + + 0x6A,0x36,0x58,0xDD,0x36,0x81,0x7A,0x40,0x41,0x43,0xD8,0x13,0x6C,0xDC,0x58,0x4A, + + 0x74,0xA7,0x93,0x3D,0xB9,0xD7,0x1A,0x5B,0x2C,0xC9,0x52,0x3C,0x67,0x73,0xBD,0x1E, + + 0xFE,0xA2,0x35,0x2C,0xA8,0xD6,0x0C,0xC6,0x22,0x3A,0x25,0xDA,0x7D,0x25,0xA3,0xF9, + + 0x00,0xD9,0xBD,0x38,0xB6,0xF5,0x11,0xD6,0x29,0xE9,0xA3,0x53,0x7F,0x7A,0xDE,0x19, + + 0x41,0x02,0x30,0xAD,0x61,0xF4,0x1B,0x2A,0xFD,0xD8,0x5B,0x7B,0x93,0x27,0x96,0xB6, + + 0xF7,0x8D,0xD7,0x8C,0x1E,0x01,0x42,0x0A,0xBD,0x29,0x92,0x94,0xE6,0x97,0xB1,0x27, + + 0x38,0xED,0xF2,0xA2,0xB7,0x20,0xDE,0x06,0x2A,0x18,0x16,0x0D,0xB2,0xFC,0xE7,0xB6, + + 0x6B,0xDD,0xB5,0xC9,0xE7,0x0D,0x6B,0x19,0x81,0x45,0xB2,0x91,0x1A,0x2C,0xE0,0x1E, + + 0x85,0xD3,0x36,0x13,0x6E,0x73,0x43,0x7D,0x62,0x81,0x68,0x50,0xE8,0x8F,0x7C,0x2D, + + 0xCB,0x83,0xFB,0x7C,0x30,0x4B,0x94,0x92,0x94,0x5F,0x6D,0xAC,0xD5,0x0F,0x8C,0x54, + + 0xBA,0x0A,0x53,0xD6,0x46,0x36,0xA7,0x01,0x09,0xFE,0xE5,0xDA,0x10,0x75,0xB2,0xA9, + + 0x54,0xF3,0x90,0x74,0xD6,0xC3,0x03,0x95,0x0B,0x93,0x79,0x3E,0x93,0x76,0x3C,0xF7, + + 0x80,0x92,0x4D,0x41,0xCA,0x5F,0x0B,0xA0,0xD9,0x57,0xFC,0xF5,0xBD,0x70,0xC4,0x3B, + + 0xC3,0xB7,0x7F,0x9E,0x34,0xCD,0x5E,0x9F,0x43,0x14,0xAC,0xC3,0x11,0x21,0x97,0xFF, + + 0x25,0x0F,0xF3,0x36,0x7B,0x64,0x7C,0x0E,0x98,0xCA,0xA4,0xD3,0x9A,0xE4,0x50,0x3B, + + 0xDD,0x14,0x91,0xBF,0x11,0x53,0x69,0x37,0x03,0xAD,0xAD,0xC2,0x1B,0x07,0x26,0xAE, + + 0xF6,0x1E,0xF3,0xF9,0x90,0x77,0xE8,0xD9,0x57,0xB6,0xA5,0xD2,0x1A,0x06,0xEA,0x1A, + + 0x64,0x10,0xDF,0xBB,0x9D,0x9E,0x63,0x8C,0x89,0xF7,0x56,0x38,0xFF,0xDA,0x9E,0x64, + + 0xA1,0xE2,0x11,0x0D,0x3A,0xD9,0xAC,0x5E,0x79,0x16,0x5A,0x43,0xF6,0x04,0x05,0xEF, + + 0xEA,0x55,0x16,0xFE,0x80,0x78,0x81,0x5A,0xD8,0x41,0xB7,0x29,0x05,0x16,0x27,0x1D, + + 0xC8,0x8A,0xB1,0xB4,0x1E,0x2B,0xC4,0x97,0x96,0xCC,0x78,0x4D,0x79,0x64,0xC6,0xAB, + + 0xED,0x70,0xC0,0xE5,0xBA,0x5B,0x63,0xDC,0xDA,0xFD,0xAE,0xCB,0x93,0xED,0x4A,0x98, + + 0x2F,0x53,0xCE,0x24,0xBA,0xC6,0x76,0x9A,0x96,0x51,0x74,0x89,0xD8,0x18,0x1E,0xC7, + + 0x4F,0x98,0x07,0xB0,0x6C,0x85,0x97,0xEC,0x49,0x83,0xAF,0xC9,0x1B,0x78,0x8F,0x25, + + 0x23,0xE4,0x8F,0x21,0x07,0x7D,0x67,0x7B,0x6B,0x1E,0xA7,0xDA,0x58,0x1A,0x73,0x2D, + + 0x26,0xD5,0x9E,0x32,0xAB,0xFB,0x85,0x0A,0xF0,0x21,0xF2,0x60,0x42,0xA2,0x7C,0x16, + + 0x02,0xBF,0xD8,0x92,0x73,0xBB,0xF8,0xF6,0xDE,0x6C,0xE6,0xB2,0x34,0xAF,0xB6,0x38, + + 0xA2,0x17,0xA1,0xFE,0x15,0x39,0x06,0x17,0x34,0x63,0xAF,0xC8,0xD2,0x6B,0x84,0x6C, + + 0x18,0xDF,0x97,0x26,0xFD,0xAE,0xA8,0xC2,0x66,0x83,0x55,0xDF,0x49,0x2E,0xA4,0x88, + + 0xBD,0xFB,0x59,0xE3,0xDC,0xA9,0x10,0x60,0x26,0xC9,0x5C,0xC3,0x83,0x87,0xB7,0x52, + + 0x70,0x8A,0x5F,0x6E,0xE2,0xC6,0x18,0x70,0x63,0xC8,0xD3,0x08,0x86,0xA7,0x3E,0xC3, + + 0xF5,0xF3,0x9C,0xAD,0x62,0xD7,0x8A,0x44,0x67,0x39,0x5A,0xAD,0x6D,0x59,0xA9,0x52, + + 0xAE,0xC5,0x8F,0x35,0x6C,0x38,0x02,0x54,0x66,0x3E,0x66,0xE9,0xA8,0xE5,0x99,0x44, + + 0x67,0x69,0xB0,0xB4,0xF7,0xEC,0x00,0x14,0xEF,0x69,0xD0,0x2F,0x4E,0x25,0x75,0x9A, + + 0x7E,0xFE,0x0E,0x60,0xBE,0xCC,0x6C,0x0F,0xA6,0x28,0xE3,0x24,0xB8,0x16,0x07,0xFA, + + 0xBC,0x86,0x99,0xBF,0x28,0x05,0x22,0xD8,0xFC,0x17,0xD1,0x2F,0xDD,0xE9,0xEB,0x66, + + 0x01,0x2F,0x14,0xFD,0x74,0x6A,0x05,0x5B,0xA6,0xC4,0xC4,0xD7,0x39,0xA6,0xFD,0xEB, + + 0xAF,0x73,0x22,0x4B,0xBD,0x21,0x2A,0x6E,0xBF,0x15,0x29,0x41,0x58,0x46,0xC5,0xAC, + + 0x1F,0x70,0x93,0xDA,0x5C,0x66,0x25,0x6F,0x30,0xCC,0xA0,0x50,0xFC,0x88,0xD7,0x29, + + 0xBD,0xDA,0x3E,0x4D,0x29,0x91,0x6B,0x6F,0x67,0x00,0x53,0xED,0x1B,0x07,0x91,0x28, + + 0xBB,0x0E,0xC4,0x20,0x46,0x33,0xA0,0x79,0xC9,0x15,0xA1,0xAE,0x7C,0x8A,0xFF,0x81, + + 0x5B,0x9C,0x9A,0xAA,0x93,0x1D,0xE9,0x72,0xD3,0x6F,0x2D,0x2C,0x75,0xB0,0xB3,0x54, + + 0x23,0x38,0xBD,0xE4,0x5F,0x50,0x8D,0xD4,0x8E,0xA2,0x7C,0xCB,0xF9,0x5A,0xE5,0x2B, + + 0xA4,0xD0,0x37,0xB6,0x84,0x1D,0xF5,0x6A,0x10,0xC9,0x5D,0x2B,0x73,0xB0,0xC8,0x17, + + 0x84,0x31,0xD3,0xA2,0xFD,0x12,0x3C,0xD5,0x0E,0x40,0xC5,0xB3,0x15,0x8C,0x4C,0xF9, + + 0x03,0x01,0xAA,0xC0,0xCE,0x25,0x4C,0x1C,0xCA,0xD9,0x8C,0x0E,0xE2,0x3B,0xCB,0xFA, + + 0xF3,0x74,0xBE,0xDE,0x92,0x1A,0x14,0x90,0x98,0xDB,0x6C,0x1E,0xA3,0x35,0x79,0x47, + + 0xB5,0x08,0xBC,0xE9,0x13,0x19,0x88,0x67,0x9B,0x87,0xF4,0x11,0x73,0xB4,0x4A,0xE7, + + 0x77,0x36,0xBB,0x3A,0x25,0xEC,0x45,0x0D,0xE1,0x57,0x3D,0x92,0x1E,0xEC,0x1C,0x62, + + 0x36,0xD7,0x86,0x18,0x4B,0xED,0xEB,0xC0,0x5B,0x6D,0x07,0x4C,0x0B,0x8F,0x70,0xAE, + + 0xAC,0x32,0xF5,0x9E,0x3B,0xA3,0xE1,0xD0,0x1A,0x6C,0x3E,0x77,0x89,0xE2,0xB7,0x7A, + + 0xC4,0xBE,0x78,0x35,0x44,0x60,0x68,0x2B,0x9F,0xAF,0x68,0x2F,0x1D,0x45,0xB9,0xA0, + + 0xC6,0x8A,0xC4,0x80,0xC9,0x6F,0xFF,0x7F,0x76,0x76,0x0E,0xD9,0x16,0xCA,0xDD,0x88, + + 0x8F,0x61,0xC4,0x33,0x3C,0x67,0xAB,0xF4,0x52,0x28,0x55,0x98,0xF1,0x7A,0xD9,0xBE, + + 0x29,0x64,0xB7,0xF0,0x9A,0xE2,0x1C,0x05,0x86,0xAC,0xE0,0x71,0x79,0xE4,0x4F,0xA9, + + 0x5A,0xB7,0x52,0x4B,0xB1,0x4C,0x64,0x2C,0x07,0x4F,0x77,0xAF,0xEE,0xBC,0xF9,0x19, + + 0x0E,0x60,0xEE,0xB9,0x00,0x04,0x65,0xF9,0x2D,0xDB,0xB8,0x39,0xF1,0xBE,0xBF,0x30, + + 0x4C,0x1B,0xA0,0x32,0xB1,0xFF,0x4B,0x0F,0x3B,0x42,0xCA,0x56,0xAB,0x22,0x10,0x20, + + 0xF6,0xA0,0xF7,0x6A,0xFA,0x48,0xC3,0xF2,0x47,0x61,0xB8,0xB0,0x0E,0x9B,0x30,0xE7, + + 0xA4,0xAF,0xE1,0x07,0x78,0x2F,0xCC,0x20,0xBF,0x42,0x5E,0xAF,0xD6,0x7B,0x31,0x0E, + + 0x22,0x86,0xB6,0xE6,0xF0,0x25,0x05,0xD9,0x4D,0x88,0x42,0x7F,0xAE,0xD5,0x60,0xE3, + + 0xA3,0x0D,0x8E,0x26,0x90,0x38,0x51,0x93,0x12,0xC9,0x7D,0x06,0xD0,0x88,0x16,0xB2, + + 0x0F,0x80,0xA8,0x56,0x08,0x28,0xA2,0xF2,0xC3,0x9C,0x34,0x16,0xB1,0x9A,0x07,0x23, + + 0x65,0xCB,0x36,0xC1,0xEF,0x92,0x2F,0x78,0xF1,0x40,0xED,0x87,0x50,0x62,0xFA,0xB3, + + 0xB0,0x47,0xA9,0x02,0x52,0x65,0x61,0x8E,0xCD,0x25,0xDE,0x07,0x51,0x7B,0x10,0x08, + + 0xF7,0xA5,0xA2,0xF1,0xB9,0xA2,0x1B,0xAA,0xF4,0x4A,0x4F,0xBC,0x23,0x97,0xD7,0x19, + + 0x0D,0x29,0xB4,0x6C,0x50,0x40,0x42,0x98,0xCB,0x3C,0xB3,0xC1,0xEF,0x12,0x7B,0xB9, + + 0x2B,0xD5,0x77,0xE5,0xDB,0x65,0x2B,0xD6,0xA9,0x82,0x53,0xF0,0x4A,0xB1,0x17,0xE5, + + 0x01,0xF0,0xD3,0x14,0x3C,0x20,0xDB,0x5B,0x3E,0xB6,0x9D,0x4F,0x22,0x29,0xE9,0x0F, + + 0x04,0xD0,0x5D,0x57,0x98,0x28,0x18,0xF5,0xA1,0x1C,0xF5,0x8E,0xD8,0x80,0xAA,0xAE, + + 0x38,0x54,0xAA,0x0B,0x8A,0x22,0x5D,0x74,0xA2,0xDD,0xE6,0x9E,0xD9,0x71,0x87,0x83, + + 0x31,0x15,0x8E,0x2F,0xD9,0xDE,0x43,0xE9,0x96,0xEA,0x7E,0x0F,0x58,0x82,0x71,0xBF, + + 0x9B,0x84,0x7F,0x2F,0x38,0x29,0xB7,0xEA,0x93,0x47,0xFC,0x1F,0x54,0xE9,0x3E,0x68, + + 0xEC,0xDF,0x82,0x74,0x34,0x7F,0x4D,0xA7,0x95,0x9F,0x16,0xE4,0x7C,0xDB,0x36,0x63, + + 0x49,0x8A,0x74,0x96,0x77,0x9C,0x54,0x78,0x45,0x1D,0x13,0xD6,0xB0,0xFB,0x5C,0xAA, + + 0x07,0x53,0xA5,0x08,0xD3,0x30,0x6A,0x5C,0xE8,0x10,0x06,0xB1,0x72,0x76,0xB8,0x68, + + 0xA3,0x68,0x11,0x35,0x5C,0xF3,0x89,0xC3,0x63,0x4F,0x1A,0xA5,0xC2,0xA8,0x1B,0x13, + + 0x1D,0x45,0xFB,0x46,0xB2,0xE0,0xC7,0xD1,0x76,0xD6,0x9E,0xF9,0x41,0xED,0xE7,0x2D, + + 0x09,0x8E,0xAC,0x9E,0x9D,0x3A,0x24,0xE2,0x50,0x0E,0x85,0x80,0xD4,0x6E,0x85,0x19, + + 0xE4,0xCD,0xFD,0x97,0xF1,0xC6,0x2B,0xDD,0x2A,0x06,0x2D,0x87,0xB1,0x86,0x6D,0x28, + + 0x4D,0x6C,0x79,0xA7,0x10,0x31,0xA7,0x75,0x95,0xAE,0xC6,0x93,0xD0,0x17,0x86,0x75, + + 0x28,0xC3,0xDF,0x74,0x9D,0xB0,0xE4,0x4A,0xEA,0xB4,0x6E,0xCA,0x87,0xF1,0xD5,0xB7, + + 0x56,0x1B,0xDE,0xFF,0x7D,0x22,0xB6,0x25,0x82,0xB3,0x0D,0x8C,0x71,0xC6,0x3F,0x0D, + + 0xA0,0x33,0xC3,0x6B,0x51,0x53,0x28,0x4B,0x03,0x60,0x93,0xCD,0xBA,0xD7,0x50,0x32, + + 0xAF,0xC1,0xD4,0xFB,0xF8,0x79,0xB7,0x20,0x6C,0x89,0xA5,0x18,0x0A,0x15,0x85,0x4C, + + 0x79,0xDE,0xEF,0x6B,0x9B,0x37,0x36,0xEA,0x51,0x51,0x8C,0xFD,0xDD,0x67,0x04,0x45, + + 0xC0,0x8D,0xCB,0x5E,0xAA,0x5A,0x99,0x7A,0xA6,0x50,0x84,0xF4,0xDC,0xD9,0x27,0xCB, + + 0x8F,0x13,0x47,0xEA,0x1B,0x35,0x93,0x6C,0xE4,0xD4,0x4D,0x8B,0xD9,0x1E,0x77,0x7C, + + 0x2D,0x1D,0x95,0xD8,0x18,0x5A,0x27,0x9B,0xC8,0x3F,0xC7,0xC1,0xFD,0x86,0x08,0x86, + + 0x36,0x80,0x22,0xF7,0x39,0xC0,0xAB,0xDD,0xC6,0xB5,0x7F,0xAC,0x23,0x3C,0x63,0xFA, + + 0xA1,0xC3,0x88,0xEB,0xB4,0xA2,0x2C,0xB0,0xF9,0xE3,0x82,0xCD,0x53,0x1B,0x78,0x89, + + 0x82,0x22,0xFF,0x77,0x6B,0xA4,0x73,0x41,0xB9,0xC9,0x6E,0xFE,0xEB,0x42,0x2F,0x38, + + 0x83,0x7A,0x15,0x8E,0x7C,0xCA,0x01,0xCC,0x27,0xAB,0xD8,0xB5,0x55,0x1B,0x68,0xA4, + + 0x84,0x80,0xC9,0xF9,0xB7,0xAF,0xF7,0x71,0x16,0x94,0x71,0x26,0x5A,0x6F,0xEF,0x32, + + 0x5B,0x88,0xA9,0xD4,0x97,0x9F,0x94,0xE0,0x5B,0xCD,0x9C,0x14,0x14,0x15,0x82,0x21, + + 0x47,0x0C,0x61,0x60,0x37,0xAD,0x51,0x6F,0x2F,0x96,0x70,0x85,0x54,0xE2,0x43,0x83, + + 0xDB,0x2C,0xD1,0xB7,0x91,0xA1,0xFD,0x82,0xD3,0xB7,0x99,0x20,0x42,0xE8,0xCA,0xE2, + + 0x9E,0xCA,0xF2,0x79,0x50,0xB3,0x77,0xA8,0xF0,0xAA,0x8A,0xFE,0x00,0x47,0x96,0x9E, + + 0x45,0x2E,0x8A,0x2B,0xF4,0xC0,0xC5,0xB8,0xF1,0x6B,0x29,0x3F,0xDD,0xB9,0x25,0xD3, + + 0x8A,0x73,0xF8,0xFF,0x94,0xE5,0x0B,0xD5,0x31,0x13,0x20,0xCF,0x94,0x41,0x2B,0x1B, + + 0x8D,0x8B,0xF2,0xE7,0xBF,0x86,0x03,0x46,0xEE,0x9B,0x85,0x03,0x52,0x6D,0x1A,0x6A, + + 0xEE,0xB7,0xCB,0xF1,0x18,0x55,0x4C,0x72,0xC3,0x6A,0x92,0x6C,0xD4,0xE1,0x2F,0xBD, + + 0x78,0x41,0x2A,0x23,0xE6,0xAB,0x79,0x46,0xCF,0xAD,0x54,0x28,0xFC,0xEB,0xFE,0xAC, + + 0x67,0x81,0xDC,0xCD,0x53,0x22,0x74,0x2B,0x86,0x6A,0xD9,0xBF,0x82,0xE8,0xB4,0xF2, + + 0xFC,0x8B,0x45,0x15,0x99,0x56,0x5D,0x62,0xBB,0x62,0xDB,0x7C,0x7E,0x63,0x2E,0xFD, + + 0x05,0xE0,0x5C,0x6E,0x6C,0xFD,0x54,0xE8,0x8E,0xDF,0x0B,0x3D,0x85,0x79,0xAC,0x52, + + 0x9E,0x31,0x88,0xA5,0xB0,0x41,0x72,0x54,0x8E,0x1B,0xDD,0xF6,0x31,0x5C,0x1B,0xB2, + + 0x29,0x14,0xBF,0x83,0x97,0xF2,0x6C,0x5E,0x43,0xC9,0x95,0x4D,0x97,0xF6,0x3B,0x91, + + 0x76,0x48,0x05,0x86,0xC2,0x97,0x43,0xC2,0x8E,0x2A,0x2E,0xA7,0xC6,0x28,0xD0,0xA0, + + 0x65,0x66,0xDE,0x24,0xB4,0xB0,0x2E,0xFF,0xC5,0xD2,0x8E,0x46,0xD7,0x94,0x52,0x54, + + 0x77,0xF0,0x8C,0x9C,0xEF,0xBA,0xFB,0x70,0xAA,0xA9,0xE7,0x72,0x0A,0xAF,0x1B,0xDA, + + 0x07,0xD3,0x09,0xA5,0xF5,0x46,0x55,0x2F,0x47,0x5C,0xD3,0x3B,0x82,0xED,0x55,0x03, + + 0xFB,0x38,0x8D,0xD5,0x38,0xBA,0x05,0x91,0x8C,0xD8,0xA4,0x8F,0x50,0x53,0x06,0x77, + + 0x61,0x03,0x79,0xDA,0x4F,0xBC,0xC9,0x28,0xEC,0x12,0x4E,0x2C,0xFC,0x72,0x5B,0x1E, + + 0x7E,0x5B,0x6E,0x46,0x7B,0x62,0x3C,0x38,0xFC,0xAD,0xDE,0xBC,0x72,0xF4,0x92,0x72, + + 0xAE,0xE1,0xF8,0xC7,0x83,0x3A,0x0F,0xF9,0xAF,0x2A,0x8F,0x47,0x7A,0x35,0xEF,0xF3, + + 0x30,0xDA,0x8B,0x62,0xEC,0xC0,0x47,0xFD,0xF1,0xDD,0xE6,0xA0,0x1A,0xFD,0x7E,0x22, + + 0xAC,0x57,0xCC,0x1E,0x62,0x17,0xF7,0xD8,0xCD,0xDA,0x3D,0xD2,0x78,0x05,0x69,0x29, + + 0x78,0x86,0x40,0xBD,0x9C,0xB0,0x34,0xE7,0xED,0xC1,0xD8,0x9E,0x0B,0x70,0x47,0xB8, + + 0xFE,0x3F,0x9F,0xC3,0x5E,0xB8,0x57,0x27,0x4F,0x52,0x8D,0x4F,0x5F,0x9E,0xAF,0x3D, + + 0x8F,0x0F,0xB7,0xD7,0x3D,0x53,0xDC,0x19,0x6D,0xDB,0x9F,0xB5,0x4D,0xF0,0xB4,0xE2, + + 0x63,0xFF,0x87,0x62,0x71,0x60,0x2B,0x53,0x69,0xC6,0x4B,0x24,0x56,0xDA,0xBC,0xF2, + + 0x83,0x05,0xD7,0x76,0x3F,0x67,0x3C,0x30,0xE0,0x48,0x82,0x30,0x70,0xBB,0x61,0x56, + + 0x7D,0x0D,0x99,0xED,0x12,0x26,0x13,0x61,0x84,0x44,0x64,0xCD,0x88,0x2F,0xE1,0x73, + + 0x0E,0x85,0x8C,0x97,0x11,0x8A,0xE0,0x42,0xE0,0x5C,0xF9,0x37,0xE0,0x6E,0xF8,0xBE, + + 0xC3,0x67,0x43,0xC0,0x4D,0x2E,0x09,0xFD,0xE5,0x42,0x33,0x9A,0x76,0x7F,0x42,0xF0, + + 0xBC,0xB0,0xF2,0xCB,0xEC,0xA8,0xF5,0x0C,0xE0,0x48,0xC0,0x6B,0xF0,0xE0,0x95,0x91, + + 0x03,0xFE,0x29,0x7A,0xB6,0x4A,0x71,0x63,0x63,0x40,0x11,0x03,0x2D,0xCB,0x51,0x6E, + + 0x97,0x45,0xAB,0x55,0x64,0x3C,0xF5,0xE3,0xD7,0x4D,0x49,0x27,0x90,0x97,0x02,0x48, + + 0x7A,0x05,0xBA,0xFF,0x60,0x2B,0x28,0xC1,0x6B,0x27,0x69,0xAE,0xD8,0x81,0x40,0xF2, + + 0xE2,0xD8,0x1D,0x7E,0xFA,0xD6,0xE6,0x4B,0x1E,0x56,0x0F,0x47,0xB2,0xF8,0x79,0x69, + + 0xBA,0x07,0x86,0xD8,0x1A,0x2E,0x2A,0x18,0x69,0x78,0xAB,0xD6,0x2D,0xC5,0x55,0xFB, + + 0x88,0x8E,0xEB,0x1F,0xED,0x26,0x21,0xD0,0xEE,0x24,0xFB,0x3F,0xEC,0x66,0x8D,0xEE, + + 0xEB,0x0D,0xDC,0x0B,0xBF,0xDA,0xD6,0x98,0xB5,0x43,0xAA,0x4B,0xBB,0x63,0xFF,0x38, + + 0xF0,0x09,0xB2,0xD4,0xBE,0xA4,0xC5,0x58,0x4D,0xB4,0x80,0x7E,0xE8,0xB4,0x40,0x5C, + + 0x61,0xB6,0x78,0x3D,0x1A,0x81,0x33,0x6B,0xFD,0x0C,0x43,0xAA,0x27,0xD8,0xC9,0xAA, + + 0xD2,0x7A,0xEB,0xCE,0x38,0x6E,0x68,0x3B,0x6A,0xB2,0xBA,0x59,0xE8,0x3A,0x56,0x81, + + 0xF9,0x91,0xA4,0x68,0x91,0x2B,0xEF,0x22,0xE0,0x08,0x23,0x9D,0x76,0x89,0x6C,0xC7, + + 0xDC,0x1E,0xD5,0x96,0xD6,0x2A,0xB4,0x34,0x2E,0x92,0xB4,0xD6,0x77,0x88,0x05,0x7E, + + 0x59,0xC1,0xC7,0x63,0x1C,0x3F,0x4C,0x65,0xE6,0xAB,0x26,0xE7,0x51,0x8F,0xB9,0xEE, + + 0x02,0x08,0xCF,0xF3,0x46,0x9E,0x27,0x42,0xFD,0x48,0x34,0x31,0x8C,0x22,0x44,0xC4, + + 0xAB,0xE9,0x71,0x78,0xD9,0x50,0xEB,0xA2,0xC3,0x16,0xF4,0xC0,0xD3,0xCB,0x66,0x55, + + 0x2D,0x9F,0x33,0x3C,0x5E,0x78,0xCD,0x32,0xC2,0xAA,0x24,0xD0,0x40,0x05,0x25,0xC3, + + 0xD1,0x1B,0x55,0x2D,0x6E,0xFB,0xCA,0xAF,0xE4,0xAF,0x6E,0x03,0x0B,0x66,0xC9,0x39, + + 0xE5,0x58,0xB6,0xDD,0x16,0x88,0x35,0x93,0x14,0x15,0x65,0x0B,0xE3,0x3A,0x9C,0x0C, + + 0x55,0x42,0x91,0xCB,0xEE,0x30,0x10,0x4E,0x5B,0x7C,0xFE,0xCE,0x87,0x76,0x6E,0xD2, + + 0x8F,0x16,0x0D,0x74,0xB9,0xF4,0x26,0x88,0x21,0x42,0x43,0x54,0x77,0x84,0x5E,0xFD, + + 0x0F,0x97,0x47,0xF2,0x6E,0x32,0xEF,0x2B,0x68,0x5D,0xAF,0x53,0xFE,0xFA,0x6F,0xD3, + + 0x47,0x14,0x74,0xEE,0xC1,0x55,0x5E,0x5F,0x4C,0x40,0x67,0x3F,0x79,0xD2,0x7E,0x18, + + 0x54,0x07,0x6A,0x53,0x59,0x38,0x54,0x05,0x59,0x58,0x2B,0xC8,0x49,0x6A,0x36,0xDD, + + 0xCB,0xB6,0xAF,0xF8,0x9E,0xC2,0x27,0x7C,0x5B,0x5D,0xBC,0xF8,0x33,0x48,0x57,0x2F, + + 0x0F,0xB5,0xBE,0xB7,0xDB,0x3A,0xE8,0x1F,0xEC,0x04,0x17,0xFC,0xA9,0x65,0x37,0xC8, + + 0x6B,0x19,0x14,0xDD,0x43,0xEE,0x9F,0x24,0x7E,0x1D,0xE5,0x15,0x2D,0x30,0xDF,0x80, + + 0x95,0x97,0x3F,0xE6,0x4C,0xAD,0x09,0x13,0xE5,0xF2,0x4B,0xA4,0xD4,0xD9,0x97,0xF0, + + 0x87,0x85,0x2F,0x02,0xB4,0xCD,0xC7,0x60,0x06,0x31,0x3D,0xD0,0xAC,0xF1,0x1F,0xE1, + + 0x27,0xE7,0x65,0x81,0xC8,0xA1,0xCD,0xCB,0x04,0x8F,0x89,0xDC,0x21,0xF9,0xC1,0x71, + + 0xC6,0x63,0x6D,0x92,0x13,0x03,0x60,0x25,0x62,0xC5,0x41,0x51,0xF6,0xA3,0x78,0x79, + + 0x12,0x71,0xD8,0xB5,0x62,0x71,0x58,0x00,0x40,0x3D,0x48,0x95,0x78,0xF4,0x08,0xF2, + + 0x0B,0x0E,0x57,0x19,0x82,0x78,0x10,0x10,0xB8,0xCB,0xB8,0x9A,0xEB,0xA4,0xE0,0xC7, + + 0xD9,0x51,0x74,0x78,0xE6,0xDA,0xD8,0xE7,0xBB,0x97,0x49,0x94,0xB4,0x9D,0x6D,0xB1, + + 0x81,0x7D,0x40,0x25,0x2C,0xB8,0x41,0x8D,0xC1,0x47,0x4E,0x4B,0x24,0x58,0x5C,0x36, + + 0x2D,0xFA,0xF2,0x0F,0x2A,0xA9,0x12,0x63,0xED,0x17,0xF3,0x48,0x7F,0xD8,0x12,0x2A, + + 0x0D,0x36,0x7A,0x7C,0xF6,0x18,0xB5,0xBE,0x30,0x85,0x42,0x36,0x3E,0x82,0xD8,0x89, + + 0x1D,0xBD,0xA4,0xBA,0x1E,0xAE,0x53,0x29,0xDD,0xD1,0xEA,0x22,0xBF,0x88,0x4B,0x51, + + 0x3F,0x86,0x1F,0x7D,0x62,0xAD,0x5B,0x39,0xD0,0xC6,0x43,0xBB,0xA0,0x8A,0xB2,0xA2, + + 0x56,0xC1,0x72,0x3D,0x2A,0x0D,0xAF,0x82,0x0C,0x31,0x09,0xEA,0x52,0xE3,0x46,0x25, + + 0x2F,0xBD,0x3E,0xA0,0x7C,0xAF,0xBA,0x07,0x6F,0x8F,0x40,0x81,0xA4,0xF6,0x79,0x4F, + + 0xAD,0xCE,0xDB,0xB0,0x77,0x9F,0x8B,0xE9,0x4E,0xB5,0x48,0x4B,0xED,0xA8,0xEB,0x18, + + 0x72,0x8E,0x7C,0xAC,0x1B,0x24,0xE4,0x41,0x4E,0xC2,0xE2,0x19,0x05,0x64,0x5A,0xEB, + + 0xCF,0x49,0x47,0x46,0x74,0x4D,0x30,0x44,0x0F,0xDF,0x8C,0x58,0xD8,0xFD,0x69,0x74, + + 0x23,0x98,0x8C,0xE7,0x94,0x1E,0x44,0x36,0x3E,0x35,0xFA,0x50,0x73,0x69,0x7C,0x83, + + 0x03,0x89,0x46,0xC7,0xF0,0xB4,0xE2,0x91,0x1B,0x07,0x19,0x39,0x88,0xE9,0x7D,0xE0, + + 0xF2,0x37,0xBA,0xB1,0xE9,0xF5,0x5D,0xF3,0x0B,0x58,0x32,0x33,0xF4,0x3D,0xC9,0xF4, + + 0x85,0x92,0xBF,0xC6,0x30,0xF4,0xE3,0x42,0x55,0x56,0xF5,0x00,0x52,0xF2,0x26,0xCF, + + 0x14,0xB7,0xA6,0x34,0xA6,0x48,0x4E,0x90,0xEA,0x23,0x9B,0x74,0xB2,0x5E,0x45,0x3F, + + 0x07,0x1A,0x48,0xB9,0x77,0xA9,0xCD,0x1C,0x64,0xAA,0x5F,0x82,0xF0,0x56,0x95,0xB5, + + 0x2A,0x11,0xC7,0x07,0xEB,0xAF,0x24,0x6B,0x40,0xD1,0x6D,0x07,0xF3,0xF8,0x3E,0x68, + + 0xCC,0x3C,0xA6,0x0C,0xBC,0x60,0x32,0x48,0xE9,0x2D,0x76,0x67,0x43,0xBA,0x20,0xFB, + + 0x0C,0xE9,0x96,0x8E,0x99,0x89,0x46,0xFC,0xD9,0xDF,0x84,0x1B,0x4E,0xFF,0x5F,0xEA, + + 0x47,0xD3,0x9F,0xC8,0xB2,0xBB,0x57,0xEB,0x52,0x57,0xFE,0x4F,0x58,0xF8,0xC3,0xE8, + + 0x88,0x1D,0x4F,0x9F,0xC2,0x32,0x6F,0xBE,0x4E,0xC0,0x35,0x40,0xCE,0xA9,0x60,0x0A, + + 0x22,0x17,0x76,0x26,0x5F,0xF1,0x26,0xE2,0x0D,0xFC,0x42,0x9C,0xDD,0xBD,0xB5,0xB8, + + 0x6C,0x6D,0x42,0x36,0x0E,0xF0,0x06,0x88,0x5C,0xF9,0x3A,0x7B,0x71,0x77,0x61,0x2D, + + 0x2C,0x9A,0x1C,0xC7,0x1B,0x41,0x0F,0x69,0xCC,0x0E,0x97,0xED,0xA7,0xF3,0x79,0xB9, + + 0xC7,0x92,0x08,0x20,0xAD,0xF2,0x85,0x08,0xF7,0x93,0x38,0xDB,0x1A,0x74,0xA7,0xA0, + + 0xD8,0x23,0x91,0x80,0x63,0x4B,0x2A,0x85,0xB3,0x02,0x50,0xDD,0x1C,0xFD,0x53,0x7B, + + 0xD4,0x6D,0xF0,0xFC,0x93,0x6C,0x8E,0x2B,0x71,0x03,0x75,0x10,0xC8,0x9C,0xC1,0xF9, + + 0xFD,0x40,0x3A,0xE7,0x3C,0xDF,0xDA,0xA8,0xE4,0xB6,0xE9,0x38,0x88,0xBC,0xCD,0x4F, + + 0x8F,0x1D,0x72,0x1D,0x34,0xDC,0x42,0x4C,0xC7,0xD8,0xB4,0xC5,0x2E,0x9C,0xD6,0x32, + + 0xE9,0xC5,0xD2,0xD9,0x14,0xBF,0x2E,0x49,0x21,0xBB,0x98,0x25,0xBB,0xC5,0x88,0xA8, + + 0x82,0x08,0xF0,0x65,0x6F,0x9A,0x26,0x4C,0xA8,0xB4,0x96,0x12,0xAC,0xC8,0x1B,0xEF, + + 0xEA,0xC7,0x1B,0x27,0x61,0x43,0x2F,0x59,0x29,0xF7,0xD3,0x96,0xB6,0x7D,0x51,0xC4, + + 0x7B,0xC6,0xF7,0x69,0xE1,0xB8,0x63,0x82,0xAF,0xCC,0x4B,0x32,0x0D,0x6D,0x7F,0xF7, + + 0x6B,0x28,0xBC,0x24,0x1E,0x93,0x2F,0x76,0xC5,0x2A,0x69,0xC4,0x13,0x25,0x30,0xA8, + + 0x98,0x4B,0x31,0xFE,0xB5,0xD4,0x61,0x4B,0x79,0x0B,0xCA,0xD4,0x12,0x24,0x15,0xA8, + + 0x63,0x4E,0x4A,0x89,0xEB,0xE1,0xB8,0xAC,0x5B,0x75,0xEC,0x5F,0x2B,0xC5,0x54,0x1F, + + 0xEA,0x66,0xF3,0xF5,0x41,0x66,0x40,0xD9,0xCF,0xD0,0x66,0x47,0x54,0x1D,0xF5,0x79, + + 0x0C,0x07,0x2E,0x37,0xC4,0xB1,0xA3,0x59,0x26,0x0E,0xC7,0x9C,0x75,0xCD,0x5F,0x26, + + 0xC1,0x1C,0x5B,0x67,0x63,0xB8,0x0B,0x88,0x5D,0xEC,0x9D,0x47,0x3F,0x98,0x43,0x0E, + + 0x77,0xA8,0x20,0x0D,0x8E,0x5B,0x08,0x2B,0x6B,0x47,0x41,0x87,0x7F,0x67,0x03,0x4C, + + 0x5F,0x1E,0xD8,0x62,0xAB,0x2B,0xCD,0xFD,0xB8,0x0B,0xCD,0xF9,0xF8,0x8B,0xFB,0x70, + + 0x64,0xB1,0x7F,0x74,0x1F,0xC1,0xD0,0x6A,0xDB,0xCF,0x20,0xC6,0xCF,0x1C,0x5E,0xDA, + + 0x27,0xAA,0xC4,0x80,0x52,0x5A,0xD5,0x34,0x12,0x9A,0x99,0xEA,0xC4,0xAD,0x51,0x72, + + 0x24,0x9F,0xFC,0xE3,0x3D,0xE4,0x2B,0x89,0xE6,0xE9,0x72,0xCB,0x26,0x78,0xAD,0x61, + + 0x10,0xB2,0x1A,0x7F,0x44,0x7C,0xDD,0x49,0x58,0x8F,0x32,0xDA,0x2C,0xCF,0x1F,0xC6, + + 0x83,0x94,0xBD,0xA2,0x13,0xC5,0x54,0xA7,0x9F,0xF2,0xC2,0xE6,0x90,0x81,0x13,0xB1, + + 0x25,0x8E,0xF2,0x19,0xF9,0x6F,0x14,0xE5,0xB7,0x84,0xE6,0x07,0x1B,0xFE,0x3D,0xB2, + + 0xCA,0x54,0x05,0x1C,0xE7,0x5A,0xC2,0x9F,0x28,0x87,0xC3,0xE1,0xDD,0x95,0x97,0xA2, + + 0x93,0x18,0xCF,0x2A,0x3E,0x9A,0xFA,0xCC,0x2B,0xB6,0x1C,0xC4,0x9B,0x35,0x52,0x7B, + + 0xAC,0x95,0xDC,0x69,0x40,0x27,0xBA,0x2D,0xBD,0x3A,0xAD,0xF7,0x28,0x7C,0xD7,0xC3, + + 0xD4,0xA5,0xB6,0xAD,0x98,0xC6,0x25,0xE7,0x6F,0xA3,0x0E,0x51,0x31,0xC2,0x55,0xDE, + + 0xAE,0x11,0xBD,0x6B,0x45,0x9B,0x7E,0x42,0x13,0xA6,0xBD,0xF2,0x01,0x86,0x24,0xE7, + + 0x78,0x59,0xB0,0xAC,0x18,0x9A,0xBE,0xC6,0x02,0x54,0x60,0x40,0xC1,0xA0,0xF2,0xBB, + + 0x12,0x13,0x89,0x5F,0x69,0xBC,0xC3,0xF9,0x06,0xF1,0x8D,0xEA,0xDB,0xFB,0xDE,0x5C, + + 0x58,0xE6,0xCF,0x1C,0x71,0xE0,0x56,0x4B,0x82,0xEC,0x1E,0x18,0x54,0xDD,0x41,0xF8, + + 0x82,0xF3,0x3C,0xB2,0x37,0xB8,0xC1,0xAE,0x28,0xFE,0x57,0xFC,0x06,0xDF,0xF2,0x3B, + + 0xCB,0x4D,0x63,0x4F,0xAB,0x35,0x25,0x19,0xE7,0xF2,0xC9,0x8E,0x93,0x13,0x36,0xA3, + + 0xEF,0xC4,0x5F,0xF6,0x59,0x01,0x0D,0x7C,0xC9,0xA2,0xF8,0x83,0x37,0xD1,0x70,0xFE, + + 0xD1,0xC2,0x17,0xF4,0x31,0x55,0x47,0x6D,0xB4,0x3D,0x80,0x5F,0x76,0x20,0x1B,0xB3, + + 0x49,0xC0,0xB0,0x83,0xE7,0xE6,0x9A,0xA6,0x57,0xFD,0xA2,0xA3,0xA7,0xA6,0x8E,0xB6, + + 0x6C,0x80,0x3F,0x93,0xCE,0x7B,0xF9,0xEE,0x51,0x37,0x0C,0x97,0x9D,0xE0,0xC7,0x6B, + + 0xCE,0x45,0xE1,0x69,0x2A,0x11,0x48,0x82,0x32,0x71,0x1C,0x8E,0x6B,0xA9,0xFA,0x15, + + 0xC5,0x25,0xFD,0xD2,0x30,0x9F,0x20,0x72,0xCA,0x38,0xF0,0x6E,0xAF,0x24,0xF7,0x52, + + 0xE2,0x2B,0x76,0x7D,0xE2,0x53,0xE7,0x5C,0xF6,0x84,0x16,0xEF,0x73,0x30,0x61,0x85, + + 0x6E,0x66,0xB3,0xDB,0xFF,0x66,0x1F,0x4A,0x32,0x61,0x4E,0x46,0xD1,0xCC,0xE2,0xF3, + + 0x0C,0xCA,0x15,0x3B,0x18,0xA3,0x27,0x59,0x20,0x8A,0xE8,0xAE,0x60,0xAA,0x17,0x44, + + 0x80,0xEB,0x92,0x8E,0xBE,0x22,0xE0,0xBE,0x3E,0xF4,0x7A,0xC7,0x74,0xAB,0x78,0xFF, + + 0x8A,0x11,0xDB,0x8D,0x59,0x1C,0x6C,0x2B,0xCA,0x51,0xE8,0x29,0x2D,0xE5,0x80,0x9E, + + 0x1E,0xB4,0x77,0x26,0x2E,0xE6,0x90,0x7C,0xC3,0x17,0xE0,0xCB,0x7C,0xB4,0x18,0x2A, + + 0x66,0x07,0x22,0xB6,0x9A,0x27,0x61,0xAA,0x02,0x18,0xA4,0x51,0x36,0xAE,0x31,0x5C, + + 0xE6,0x6C,0xCA,0x54,0xBE,0xA4,0xEC,0x56,0xB7,0x2C,0xDA,0x25,0xA3,0x4C,0x76,0x7A, + + 0xE6,0xCC,0xE7,0xAD,0xBA,0xA8,0x60,0x74,0xB6,0x6A,0xAF,0x42,0x96,0x2F,0x13,0x6B, + + 0x99,0xCD,0x39,0xAF,0xB0,0x5E,0xCC,0x52,0xC9,0xC4,0x3B,0x9A,0xB1,0x4F,0xA4,0xCD, + + 0xB1,0x4D,0x9C,0x7D,0x43,0x30,0x06,0x59,0x94,0xDF,0x01,0x22,0x2B,0xE6,0x1F,0x36, + + 0xDD,0xF2,0xF3,0x9A,0x94,0x2E,0x0E,0x8B,0x9A,0x7C,0xF2,0xD0,0x8A,0x5C,0x8C,0xCC, + + 0x59,0xEE,0xFF,0x1C,0xCC,0xF0,0x0B,0x8A,0x0F,0xDD,0x8F,0x54,0x9C,0xE9,0x9E,0x37, + + 0x59,0xF0,0x6D,0x6E,0xF9,0xBE,0x45,0x0B,0x12,0x92,0xAB,0xF0,0x2B,0xF9,0xA4,0x3A, + + 0xA2,0x1F,0x63,0xB9,0xE2,0xBB,0x67,0x10,0x47,0x9E,0x96,0xE2,0x77,0x19,0x33,0xB3, + + 0x21,0x0E,0xCD,0xB4,0xC0,0x48,0x69,0xC0,0x07,0x27,0x82,0xF0,0x96,0x76,0x61,0x21, + + 0x5B,0xD4,0xD7,0x38,0x34,0xB2,0x2B,0x01,0xE2,0x7B,0x65,0x17,0x5B,0x07,0xB7,0xA9, + + 0x04,0xF2,0x41,0x49,0xB6,0xD7,0xBD,0x0B,0x80,0xDA,0x53,0x04,0x7B,0xFA,0xE6,0x8E, + + 0xB1,0x65,0x4A,0x14,0x3D,0x38,0x91,0x82,0x6A,0x83,0x28,0x5E,0x53,0x59,0xD5,0xBE, + + 0xC6,0xFD,0x73,0x9E,0xC8,0x33,0xC5,0xB2,0xC8,0x26,0x73,0x4E,0x82,0x56,0xB2,0x74, + + 0x59,0xC9,0x7A,0x8E,0x3C,0xFA,0xE2,0x43,0x38,0x97,0xA1,0x45,0x59,0xF3,0x17,0xAA, + + 0x0C,0x24,0xAB,0xF2,0x9C,0x1B,0x61,0x59,0xE9,0x76,0xAE,0x4C,0xC5,0x54,0x59,0x28, + + 0x0A,0x68,0x6A,0x07,0x7E,0xFD,0x8D,0xCD,0xCF,0x7D,0x0D,0x1E,0x76,0x0D,0x0E,0xF5, + + 0x2D,0x90,0xA0,0xB8,0x7D,0x42,0xAD,0x04,0x04,0xD2,0xD7,0x0D,0xF3,0x20,0xF5,0x4F, + + 0x85,0xCA,0xDD,0x3C,0xD6,0xA5,0x60,0x14,0x07,0x4F,0x89,0xE9,0x1F,0x7D,0x11,0xF3, + + 0x03,0x92,0xD1,0xEE,0x32,0x49,0xFF,0x88,0xDF,0x5A,0x87,0x0F,0x4E,0x0E,0x7E,0x06, + + 0xE1,0x83,0x20,0xF4,0x18,0x2F,0x49,0xDC,0xE5,0x7C,0x96,0xF0,0x0C,0x45,0xF3,0xE0, + + 0x45,0xF0,0xD3,0x12,0xA4,0x2E,0x8D,0xDA,0xF8,0x0E,0xD1,0x09,0xE2,0x2C,0xAF,0xF2, + + 0x0C,0x0F,0xDB,0x2C,0xAC,0x60,0x1C,0x6A,0xA3,0xF8,0xC6,0x57,0x2F,0xE9,0x77,0x17, + + 0x60,0x80,0xA9,0x05,0x85,0x74,0x9C,0x9E,0x89,0x8D,0x81,0xC5,0xD7,0xD8,0x44,0xA2, + + 0x5E,0xF9,0xB8,0xC6,0x17,0x7E,0x30,0x21,0xC6,0x49,0xAE,0x55,0x31,0x36,0x7C,0x47, + + 0x27,0xF1,0x92,0xA9,0xB0,0x40,0xD0,0x1C,0x20,0x65,0x78,0x16,0xDC,0xE3,0x5B,0x45, + + 0xA3,0x46,0xB9,0xC7,0x97,0x2F,0x1B,0x9A,0x61,0x40,0xC7,0x54,0xD4,0xFD,0xDB,0xA1, + + 0x95,0x45,0x93,0xAA,0x30,0x21,0x21,0xF3,0xC2,0x25,0xDD,0x35,0x9B,0x92,0x2B,0xFB, + + 0x84,0xD5,0x84,0xDF,0x04,0x0C,0x28,0xC7,0x7B,0xE2,0x40,0xA8,0x2B,0xBE,0xA5,0x43, + + 0xBC,0xB5,0xD0,0xC5,0x6D,0x36,0xFD,0xF8,0x7E,0xC2,0xC5,0xB8,0x5F,0xF2,0x7B,0x2D, + + 0x55,0x77,0x63,0x29,0x79,0xF5,0xAB,0xD6,0x75,0x26,0x53,0xD4,0xD1,0x28,0x20,0x66, + + 0x58,0xA0,0x33,0xE2,0xDA,0xDB,0xC7,0x14,0x7A,0x06,0x2C,0xBF,0x59,0xD3,0x19,0x4B, + + 0xAB,0xA3,0x92,0x63,0xBB,0xA6,0x6A,0x38,0x4E,0x43,0xC4,0xE8,0x3D,0x1C,0x70,0xA6, + + 0xFE,0x61,0x06,0x3E,0x5A,0x6D,0x3A,0x38,0x4D,0x40,0x76,0xEE,0x13,0x65,0xD5,0xCD, + + 0xA1,0x5A,0x34,0xAF,0x18,0x66,0x6B,0x39,0x8A,0x41,0xD5,0x5C,0x33,0xCF,0x2D,0x6C, + + 0x88,0x2E,0xB3,0x3F,0xDA,0x0F,0x51,0x78,0x68,0x2A,0xE5,0x59,0xE8,0xC5,0x3F,0xB2, + + 0x40,0xA3,0x7F,0xFB,0xBD,0xE6,0x2A,0x24,0x03,0x92,0x20,0xC6,0x8B,0x1E,0x57,0xFB, + + 0xF4,0x7D,0x53,0xF6,0xC6,0xBE,0x64,0x40,0x3A,0x00,0x48,0x5C,0x52,0x3C,0xC5,0x79, + + 0xC7,0x50,0xCD,0x38,0xB6,0xA9,0xD5,0x59,0x0E,0xAF,0x55,0x5C,0x28,0x7A,0xC9,0xCF, + + 0xAF,0x0D,0x95,0x25,0xB7,0xA8,0x64,0xDA,0x46,0x57,0xFA,0x4E,0xE3,0x3E,0x29,0xE4, + + 0xA0,0x5C,0xFC,0x14,0xCC,0x3B,0x2C,0x62,0x63,0x33,0xAB,0x19,0x64,0xAF,0xC4,0x7D, + + 0x80,0x13,0xC4,0x36,0x9F,0xBE,0xA2,0x92,0x22,0x75,0x85,0x25,0xD6,0x7C,0xE3,0xB3, + + 0x01,0x10,0xA5,0x81,0x93,0xBD,0x6F,0x03,0x60,0x5E,0x60,0x61,0xAD,0x60,0x41,0xC5, + + 0xC0,0x57,0x49,0x37,0x31,0x3F,0x25,0x73,0xE2,0x90,0x4B,0x71,0xCC,0xCD,0x7B,0x77, + + 0x4B,0x05,0x19,0xEE,0xCB,0x5D,0x1A,0x58,0x50,0x29,0xF5,0x56,0xF5,0x3A,0x5C,0xCF, + + 0xC2,0x7D,0xD1,0x29,0x3F,0xA2,0x64,0x58,0x07,0xD2,0xFE,0xEB,0xB8,0x74,0x10,0x7A, + + 0x2C,0x97,0xBF,0x76,0x4D,0x78,0xD7,0x51,0x6C,0x57,0xC8,0xB6,0xFB,0xFB,0xB0,0x7B, + + 0x8D,0x00,0x38,0x6C,0x1A,0x7B,0xC3,0x94,0x5A,0x16,0xE4,0x9A,0x58,0xC4,0x3E,0x4A, + + 0x23,0x9C,0x06,0xAE,0x79,0x43,0x6E,0x38,0x36,0xD4,0x16,0x09,0x19,0x7A,0xF1,0x28, + + 0x63,0x12,0xB6,0xBE,0x78,0xE2,0xAE,0x9A,0x28,0xAD,0xAC,0xF8,0x77,0x15,0x45,0x2B, + + 0x28,0x36,0xBF,0xAF,0xF9,0x81,0x4F,0x0B,0x68,0x56,0x7D,0x76,0x5B,0x81,0x2F,0x98, + + 0x5E,0x12,0xB7,0x5F,0xBE,0xBE,0x55,0x79,0x48,0x59,0x92,0xFC,0x06,0x11,0x58,0x06, + + 0xF5,0xC2,0xB8,0x82,0x4A,0x5D,0x28,0xC2,0x27,0xF1,0x88,0xA3,0x5A,0x82,0x15,0x4C, + + 0x88,0xE3,0xAE,0xC2,0x95,0xB1,0x00,0xDC,0xA6,0xC8,0x3F,0xB2,0x2E,0xC9,0x7A,0xE6, + + 0x82,0x19,0xEB,0x1A,0xB5,0x22,0xA4,0xA7,0xB7,0x86,0xFB,0xBA,0xF6,0xEF,0x82,0x96, + + 0x16,0xBC,0xF3,0xB9,0xE1,0xE1,0x2B,0xC3,0x9E,0x92,0x79,0xCF,0x03,0xA1,0x3A,0xC2, + + 0x72,0xC6,0x98,0xC4,0x13,0x9D,0x48,0x32,0x66,0xCB,0x48,0x99,0x65,0xDD,0xF7,0x32, + + 0x09,0x0E,0x60,0x2E,0xB4,0xA3,0x18,0x32,0x41,0xC8,0x98,0x20,0x8D,0xEA,0x3A,0x45, + + 0x27,0x39,0xBB,0x46,0x35,0xA0,0x49,0x33,0xC7,0xC9,0x49,0x99,0x5B,0x10,0x7C,0x6A, + + 0x81,0x1C,0xE5,0xC0,0xD7,0xA8,0x33,0x88,0x64,0xCA,0xA0,0xA6,0x22,0xA8,0xDD,0xFA, + + 0xA1,0x39,0xF9,0x4C,0xFD,0xA7,0x4B,0x4C,0xF7,0x42,0xED,0x9A,0x5A,0x53,0x84,0xE9, + + 0x81,0x74,0xAC,0xC0,0x39,0x24,0x70,0xD8,0xD4,0x35,0x05,0xDE,0x10,0xEF,0x5D,0x0D, + + 0x6D,0x09,0x1C,0xE9,0xC8,0x7D,0xB4,0x4B,0x8C,0xF6,0x73,0xAB,0xAF,0x1F,0x53,0xEA, + + 0x2E,0xCB,0x54,0xF7,0xD6,0xE6,0x82,0x64,0xCB,0xA0,0x92,0x80,0x7C,0x74,0xC2,0xBA, + + 0xF1,0x83,0x82,0x0A,0x22,0x2E,0x78,0x7A,0xED,0xCA,0x29,0x30,0x21,0xF6,0xAA,0xA2, + + 0x8B,0x80,0xCE,0x3C,0x5C,0x12,0x02,0xF8,0x4E,0xA0,0x3A,0xA3,0xCD,0x60,0x39,0xC7, + + 0xE6,0x4F,0x9B,0x6B,0x1C,0xE6,0xFB,0x5B,0xAD,0xEE,0x2E,0x7E,0x3F,0x51,0x29,0xB9, + + 0xDB,0x8B,0x93,0xDD,0xBD,0xDA,0x03,0xF9,0xCE,0xAA,0x85,0xAB,0xE0,0x4F,0x83,0xF4, + + 0xCF,0x31,0x1B,0xB4,0x54,0x03,0xD8,0x31,0x0C,0xD8,0x74,0x5F,0xE6,0xF8,0xB9,0x16, + + 0x56,0x9D,0xD7,0xB1,0x94,0x0E,0x67,0x09,0xC4,0xDA,0x84,0x4C,0xD9,0xFC,0x1F,0x6C, + + 0xC7,0xC5,0x65,0x7F,0xD3,0xBF,0x22,0xD1,0x53,0x90,0x73,0x25,0x39,0xEE,0x15,0xF3, + + 0xFF,0x18,0x6D,0x6F,0xCA,0xBE,0x29,0x37,0x86,0x11,0xC2,0x5F,0xD2,0xBE,0x6E,0xC6, + + 0x85,0x99,0xDE,0x24,0x9A,0xBB,0x7C,0x40,0x05,0x24,0x96,0xE2,0x77,0x14,0x64,0x46, + + 0xC6,0x9A,0x94,0x54,0x15,0x15,0x1C,0xB2,0x29,0x55,0xB1,0xF2,0x53,0xB7,0x6F,0xC2, + + 0x05,0x90,0x85,0x83,0x7A,0x36,0x0D,0xC4,0x07,0xD9,0xAB,0x33,0xFA,0x9E,0x0D,0x93, + + 0x45,0x4A,0xD7,0x35,0x35,0xB4,0x05,0x71,0xE2,0xF3,0xA1,0x3C,0xF1,0x9C,0xE7,0xA7, + + 0x2A,0x03,0x66,0x77,0x39,0xFA,0x99,0xC4,0xB1,0x9A,0xD1,0x55,0x6E,0xB5,0x74,0x43, + + 0x11,0x86,0x71,0xFC,0x5D,0xA3,0xC8,0xC5,0xCE,0x52,0xE1,0x34,0x7C,0x39,0x87,0xE9, + + 0x8F,0x18,0xFC,0xB0,0xBA,0x21,0xEB,0xD8,0xEA,0x41,0xD4,0x55,0x71,0xB8,0x97,0x70, + + 0x8E,0x5B,0xD6,0x6F,0x3D,0xF4,0xFE,0x97,0xEB,0x40,0xDF,0xF5,0x17,0x70,0x1E,0xED, + + 0xD3,0x93,0xB3,0x2C,0xBC,0xBF,0x4E,0xBA,0x66,0xD3,0xDF,0x6A,0x11,0x07,0x64,0xDE, + + 0x8C,0x9B,0x6B,0x3C,0xBD,0xBE,0x74,0xF8,0xCC,0xDB,0xA0,0x6A,0x79,0x56,0x07,0x8A, + + 0x2A,0x93,0xA0,0x2D,0x3C,0xBD,0x17,0xAF,0x6E,0xD3,0x37,0x1F,0xA1,0xBC,0x67,0x7E, + + 0x4E,0x90,0x79,0x3D,0x9B,0x32,0xF7,0x2F,0x8C,0xBF,0x2A,0xDB,0xFF,0xFF,0x3A,0xF3, + + 0x6C,0x1B,0xE6,0xDC,0x9F,0xA6,0x05,0x11,0x61,0xBF,0xB7,0xA0,0x2B,0xCB,0xF0,0xE3, + + 0x69,0xAC,0xB6,0xD9,0xDB,0x7B,0x43,0x3E,0x47,0xDA,0xA0,0x5A,0xD0,0x6C,0x1C,0xE7, + + 0xB3,0xC8,0x83,0xC5,0xCD,0x4E,0xAA,0x90,0xF0,0x00,0xB9,0x47,0x69,0x6E,0x1F,0x56, + + 0x4B,0xD9,0x65,0x87,0xD1,0x2B,0xF4,0x71,0xC5,0x62,0x24,0x77,0x70,0x21,0xBB,0x67, + + 0xA3,0x66,0xC5,0xC0,0x5A,0x07,0xD3,0x93,0x29,0xE9,0xA8,0x8C,0x6B,0x29,0xFF,0x79, + + 0xFE,0x66,0x97,0x73,0x91,0xE9,0x62,0x9F,0x38,0xBA,0x64,0x33,0x5D,0x6A,0xBC,0x0F, + + 0x77,0x5A,0xA1,0x13,0x18,0x64,0x49,0x93,0x82,0xB9,0xC9,0x71,0xE9,0xB2,0x2F,0x33, + + 0x74,0xFA,0xAD,0xD1,0xE0,0x3B,0x99,0x98,0x2E,0xEA,0x49,0x07,0x28,0x25,0x0A,0x0C, + + 0x20,0x11,0x00,0x7F,0x43,0x81,0xD8,0x5B,0x2C,0x41,0xCD,0x74,0xA4,0xA3,0x74,0x1E, + + 0xE8,0x8A,0x97,0x7A,0xE2,0xA8,0x22,0xC7,0xA0,0x58,0x1E,0xDE,0xDA,0x64,0x59,0x8F, + + 0xE0,0xAB,0xC8,0x6D,0xE6,0x31,0x55,0x5A,0xF0,0xEB,0xE8,0xD6,0x2F,0x28,0xBA,0xEA, + + 0x05,0x06,0x57,0xF7,0xFA,0xD4,0xCF,0xC7,0xAA,0x9B,0x66,0xFF,0x78,0x34,0x55,0xB3, + + 0xFF,0x9F,0x02,0x5C,0x25,0xA1,0x99,0xF8,0xB5,0xE1,0x8D,0x52,0xFB,0xC7,0xB5,0x22, + + 0x0D,0x96,0x71,0xEC,0x13,0x3F,0x59,0x6B,0x10,0xE6,0xA2,0x94,0x57,0xB1,0x38,0x32, + + 0xE2,0x03,0x54,0xA5,0x10,0x61,0x1C,0x2E,0x14,0x44,0xAB,0x78,0x3A,0xBB,0x2B,0xA7, + + 0x27,0x02,0x33,0xDF,0x1B,0x97,0x61,0x96,0xB0,0x6F,0x77,0xF8,0x0E,0x0D,0x84,0xA1, + + 0x67,0xBD,0xDB,0x88,0x36,0x90,0x00,0x74,0x66,0xEB,0xCA,0x5E,0x8B,0xAF,0x32,0xB8, + + 0x27,0x8A,0x1A,0x67,0x5D,0x2A,0x3A,0x84,0x76,0xF5,0xA4,0x5B,0xF2,0x7C,0x10,0xB0, + + 0x01,0xED,0xE2,0x75,0xF0,0x93,0x0C,0x51,0xE8,0x5D,0x55,0xA0,0x53,0x7C,0x6D,0x6B, + + 0x0D,0x1E,0x90,0xF3,0xF1,0x7C,0x8F,0x7C,0x29,0xF2,0x64,0x77,0x50,0x4C,0x32,0xC0, + + 0x22,0x14,0x00,0x41,0x3C,0xBE,0x99,0xA7,0xBC,0x5E,0x53,0x9B,0xF2,0x9B,0x8C,0xC1, + + 0xC9,0x15,0x95,0x56,0x96,0xEA,0x81,0xF1,0x82,0xEA,0xE2,0xF9,0xAF,0x7A,0x45,0x43, + + 0x67,0x30,0xC1,0x65,0x13,0xB4,0x56,0xF2,0xFD,0x9D,0x8C,0x6D,0x57,0x89,0x4D,0xD1, + + 0xA3,0x9A,0xCC,0xB3,0x4C,0x5B,0x82,0xF0,0xE5,0x6C,0xEF,0x0A,0xC0,0x57,0x79,0x60, + + 0xAE,0xD5,0x3E,0xCB,0xFA,0x98,0x5D,0xBB,0x00,0xE2,0xFE,0xCE,0xFA,0xB4,0x54,0x9A, + + 0x9A,0x84,0x88,0xB5,0xD0,0x08,0x47,0xC1,0x98,0x16,0xFE,0xEA,0xA9,0x74,0xFA,0xCE, + + 0x51,0x6C,0xCF,0x09,0xF0,0xFB,0x77,0xFE,0x1D,0x55,0xF3,0x29,0x8B,0x75,0x15,0x9B, + + 0x3B,0x11,0x97,0x99,0xB1,0x78,0x1E,0xC2,0x4E,0xD6,0x89,0x85,0x5A,0x7D,0x26,0x9E, + + 0xB6,0x13,0x9F,0x28,0x9F,0xCA,0xE8,0xF9,0x01,0x74,0x2E,0x04,0x32,0x31,0x10,0xAB, + + 0x40,0x73,0x76,0x42,0x21,0x52,0x9E,0x00,0xB6,0x46,0x5B,0x9A,0xF4,0xFB,0xF3,0x2B, + + 0x62,0x84,0x9A,0x4E,0x15,0x2C,0x1A,0x6B,0x2F,0xEA,0x40,0x0B,0x1B,0xD1,0x29,0x00, + + 0xA8,0xB4,0x5F,0xAF,0x50,0x9E,0x5A,0x7D,0xA3,0x7C,0xC5,0xBD,0xE1,0x32,0x78,0x06, + + 0x2C,0x09,0x58,0x41,0xE9,0x26,0xF0,0xDA,0x86,0x82,0xD8,0x44,0xEF,0xEE,0x50,0x20, + + 0xCD,0x8E,0xCA,0x14,0x16,0xF1,0x2C,0xE6,0xAC,0x60,0x78,0xCE,0xF6,0xE7,0x1F,0x32, + + 0x4C,0x8B,0x5E,0x79,0xF5,0xA6,0x6A,0xEC,0xC5,0x82,0x89,0xA5,0x11,0x56,0x38,0xE0, + + 0xBD,0x0E,0xF0,0x6B,0x30,0x5C,0x21,0xA3,0x48,0x6E,0x13,0xB4,0xD3,0x58,0x9F,0x85, + + 0x98,0x59,0xD8,0xB9,0xD7,0xC6,0xC7,0x02,0x40,0xFF,0x99,0x8D,0xA9,0xA6,0xD1,0x0C, + + 0xDA,0xF8,0xD0,0xC6,0x24,0x71,0x7E,0x86,0xC7,0x22,0xFF,0xCD,0x91,0x88,0x80,0x03, + + 0xC2,0x5A,0x25,0x97,0x9A,0xA5,0xCF,0x70,0x9D,0x6D,0xAE,0x59,0x2B,0xE9,0xC6,0x20, + + 0xB3,0x26,0x51,0xAD,0x87,0xEA,0x47,0xBF,0xE6,0xB7,0x69,0x31,0xD3,0xA7,0x5C,0x3E, + + 0xE5,0x49,0xF8,0xEB,0x64,0xB7,0x27,0xB9,0x6D,0x37,0xEC,0x6C,0xFD,0xD5,0xAA,0x3B, + + 0x6C,0xCB,0x6A,0x0F,0x5C,0x22,0xFA,0xC2,0xD9,0x8B,0x82,0x51,0xDC,0xE4,0x8F,0x98, + + 0xAD,0x82,0x1C,0xE9,0xAF,0xF0,0x0D,0x03,0x0E,0xCA,0x9B,0x4D,0x69,0xE6,0x74,0x73, + + 0x2C,0x82,0xCC,0x2E,0xF1,0xE9,0x60,0xF4,0xCC,0x8B,0x7B,0xC6,0x8C,0x1E,0x3C,0xB9, + + 0x65,0xB1,0x9D,0x09,0x2D,0xA7,0x0C,0x9E,0x71,0x33,0xB3,0x6E,0x7C,0xBC,0xEA,0xB3, + + 0x36,0x8B,0x16,0xD6,0xBA,0x3B,0xBA,0x93,0xA2,0x60,0x79,0x78,0x7B,0x40,0x75,0xBF, + + 0x65,0x45,0x5B,0xD4,0xA5,0x5A,0x49,0x90,0xB1,0x31,0xF5,0x29,0xCA,0xAC,0xC1,0x40, + + 0x89,0x2F,0xAE,0xB8,0x62,0x23,0x63,0xEB,0x30,0x62,0x7E,0x9F,0x97,0xAD,0xA4,0xA3, + + 0x63,0x3D,0xA2,0xAE,0x3C,0xF3,0x6D,0x21,0x83,0x25,0x1E,0xA9,0xD5,0x53,0x34,0x8A, + + 0x46,0xD3,0x3C,0x88,0x09,0x45,0xF7,0xCE,0x63,0x43,0xA9,0xAD,0x41,0xCD,0x3D,0x13, + + 0xCD,0x53,0xA3,0xB6,0xBC,0xC2,0x20,0x9D,0xD4,0x90,0x20,0x45,0xD0,0x06,0xED,0x6B, + + 0x67,0xD1,0xBE,0x50,0x5C,0x22,0x3B,0x5B,0x9C,0x9E,0x00,0xFC,0xF3,0x48,0x42,0x0E, + + 0x41,0x39,0xBD,0xAF,0x93,0x4B,0x14,0xB4,0xBE,0x96,0xE6,0x7C,0xD1,0xEF,0x24,0x96, + + 0x21,0x2E,0xA4,0x57,0x54,0xDE,0x5B,0x76,0x14,0xC9,0xA5,0xF6,0xD2,0x75,0xBF,0x04, + + 0x6C,0xEC,0xDB,0xF6,0x3B,0x40,0x2A,0xC4,0x64,0x1A,0xD1,0x17,0xFE,0xB9,0x7F,0x57, + + 0xD4,0xC3,0xFB,0xE6,0x04,0xFA,0xBD,0xE3,0xD8,0x5A,0x05,0x91,0x78,0x71,0x7D,0x45, + + 0x2D,0xD8,0xC4,0x8E,0xD5,0xC9,0xCD,0xA2,0xC9,0x27,0xA4,0xF5,0x81,0x44,0x6C,0xEB, + + 0x45,0x90,0xF0,0xB3,0x6D,0x12,0xF3,0xCB,0x7A,0xD2,0x41,0xC4,0x7B,0x62,0x33,0x5F, + + 0x45,0x40,0xC5,0x97,0xBD,0x7A,0xBC,0xCB,0xB3,0x77,0xCC,0xD4,0x94,0xF7,0x6D,0x67, + + 0xAD,0x36,0xBC,0x9F,0x3F,0x77,0xBE,0xFC,0x04,0x61,0xDF,0x99,0x10,0x99,0x9D,0xED, + + 0x8F,0x63,0xFE,0xDF,0xC2,0x1D,0xE1,0x02,0xB2,0x93,0xDF,0xAE,0x66,0x77,0x30,0xAB, + + 0x74,0x96,0xF8,0xDC,0xD6,0xBB,0x86,0x78,0xAA,0xFB,0xC4,0x16,0xF7,0xB2,0xA7,0x22, + + 0x97,0x33,0x27,0x2E,0x82,0x1E,0xCC,0x5B,0xE6,0xCC,0xDE,0x09,0x7E,0x7E,0xFA,0xA8, + + 0xFC,0x96,0x42,0xA2,0xDC,0x40,0xBF,0x03,0x32,0xC4,0xA6,0xE6,0x5A,0x78,0x80,0x15, + + 0xE1,0x1B,0xDE,0xE6,0x14,0xA5,0x05,0x1D,0xAB,0x04,0xA9,0x00,0xBB,0x04,0xF0,0xF8, + + 0x87,0xCC,0xEF,0x29,0xFA,0x65,0xBC,0x14,0xB6,0xBC,0x67,0x4E,0x27,0xBE,0x86,0xE7, + + 0xB3,0xB2,0x93,0xBC,0xB4,0xA9,0x2B,0x91,0x7C,0xED,0xA9,0xDD,0xD0,0x93,0xF6,0xD6, + + 0xB2,0x1A,0xB3,0xA5,0x00,0x8C,0x0F,0x53,0x3E,0x9E,0x09,0xB7,0x1C,0xDF,0x40,0x40, + + 0x02,0x04,0xC0,0x44,0x12,0x24,0x50,0x60,0x42,0x44,0xD0,0x64,0x52,0x64,0x48,0x50, + + 0x03,0x05,0xC8,0x54,0x13,0x25,0x58,0x70,0x43,0x45,0xD8,0x74,0x53,0x65,0x41,0x41, + + 0x82,0x06,0xC1,0x45,0x92,0x26,0x51,0x61,0xC2,0x46,0xD1,0x65,0xD2,0x66,0x49,0x51, + + 0x83,0x07,0xC9,0x55,0x93,0x27,0x59,0x71,0xC3,0x47,0xD9,0x75,0xD3,0x67,0xBA,0x97, + + 0x6B,0x0C,0x26,0x28,0xF3,0x4C,0xC6,0xD6,0x2B,0x4A,0xAA,0xB7,0xDA,0x84,0x10,0x1A, + + 0xC3,0x06,0xF5,0x63,0x71,0x24,0xEF,0x84,0xA2,0x2D,0xFA,0x6B,0x96,0x64,0x7D,0xEB, + + 0x9A,0x47,0xBB,0xF7,0x34,0x27,0x84,0xDA,0x4C,0xC1,0xB8,0x4F,0x0A,0x2B,0x43,0x99, + + 0xBA,0x4F,0x99,0x96,0x72,0x6F,0x23,0x1D,0x22,0x2F,0xFC,0xBF,0x14,0xA5,0x42,0x48, + + 0x0A,0x0C,0xC2,0x4C,0x1A,0x2C,0x52,0x68,0x4A,0x4C,0xD2,0x6C,0x5A,0x6C,0x4A,0x58, + + 0x0B,0x0D,0xCA,0x5C,0x1B,0x2D,0x5A,0x78,0x4B,0x4D,0xDA,0x7C,0x5B,0x6D,0x43,0x49, + + 0x8A,0x0E,0xC3,0x4D,0x9A,0x2E,0x53,0x69,0xCA,0x4E,0xD3,0x6D,0xDA,0x6E,0x4B,0x59, + + 0x8B,0x0F,0xCB,0x5D,0x9B,0x2F,0x5B,0x79,0xCB,0x4F,0xDB,0x7D,0xDB,0x6F,0x5D,0x80, + + 0x85,0xCF,0x14,0xFB,0x58,0x3D,0x6A,0xA6,0x81,0xD3,0x94,0xA4,0x70,0x70,0x6C,0xDA, + + 0xF9,0x1C,0xB6,0x24,0xFC,0x70,0xE1,0xFE,0x94,0x0D,0x9C,0xB4,0x71,0x71,0xE9,0x1E, + + 0xA1,0x80,0x97,0x53,0x5B,0x76,0x3C,0x52,0x6C,0x13,0x95,0xA5,0xF0,0x72,0x0F,0x6E, + + 0x54,0x7D,0x3E,0xB8,0x4D,0xA2,0x27,0x5A,0x52,0x5E,0x9D,0xB5,0xF1,0x73,0x44,0xC0, + + 0x22,0x14,0xC4,0xC4,0x32,0x34,0x54,0xE0,0x62,0x54,0xD4,0xE4,0x72,0x74,0x4C,0xD0, + + 0x23,0x15,0xCC,0xD4,0x33,0x35,0x5C,0xF0,0x63,0x55,0xDC,0xF4,0x73,0x75,0x45,0xC1, + + 0xA2,0x16,0xC5,0xC5,0xB2,0x36,0x55,0xE1,0xE2,0x56,0xD5,0xE5,0xF2,0x76,0x4D,0xD1, + + 0xA3,0x17,0xCD,0xD5,0xB3,0x37,0x5D,0xF1,0xE3,0x57,0xDD,0xF5,0xF3,0x77,0xE1,0xC8, + + 0x22,0x1E,0x2B,0xF3,0xA5,0x64,0x6D,0x8F,0xC9,0xE7,0x96,0xAC,0x78,0x78,0x8B,0x38, + + 0x0D,0x79,0xF7,0xB8,0x52,0x36,0x26,0x47,0x4D,0x86,0x9E,0xBC,0x79,0x79,0x23,0xC4, + + 0x09,0x11,0x3C,0xC3,0x59,0x05,0xA3,0xCB,0x1F,0x3F,0x97,0xAD,0xF8,0x7A,0x5F,0xB8, + + 0xE1,0xE0,0x0F,0xAF,0xD9,0x88,0xAB,0xDB,0x66,0xED,0x9F,0xBD,0xF9,0x7B,0x46,0xC8, + + 0x2A,0x1C,0xC6,0xCC,0x3A,0x3C,0x56,0xE8,0x6A,0x5C,0xD6,0xEC,0x7A,0x7C,0x4E,0xD8, + + 0x2B,0x1D,0xCE,0xDC,0x3B,0x3D,0x5E,0xF8,0x6B,0x5D,0xDE,0xFC,0x7B,0x7D,0x47,0xC9, + + 0xAA,0x1E,0xC7,0xCD,0xBA,0x3E,0x57,0xE9,0xEA,0x5E,0xD7,0xED,0xFA,0x7E,0x4F,0xD9, + + 0xAB,0x1F,0xCF,0xDD,0xBB,0x3F,0x5F,0xF9,0xEB,0x5F,0xDF,0xFD,0xFB,0x7F,0x98,0xFD, + + 0x37,0xFB,0x9A,0xB6,0x85,0xE1,0x08,0xD8,0xE8,0xCD,0x88,0xBC,0x70,0xA2,0x32,0x10, + + 0xCF,0x8E,0x9F,0x76,0x66,0xA1,0x2A,0xA1,0xAE,0x85,0x1D,0x54,0xA2,0x84,0x99,0x9C, + + 0x96,0xCF,0x16,0xF6,0xE3,0xA2,0x4E,0x5C,0xAC,0xCF,0xB7,0xBC,0x56,0x2E,0x21,0x06, + + 0x64,0x98,0x69,0x13,0x08,0x5E,0x03,0x83,0x54,0x6C,0x81,0x13,0xB6,0x7E,0x60,0x42, + + 0x06,0x84,0xE0,0x46,0x16,0xA4,0x70,0x62,0x46,0xC4,0xF0,0x66,0x56,0xE4,0x68,0x52, + + 0x07,0x85,0xE8,0x56,0x17,0xA5,0x78,0x72,0x47,0xC5,0xF8,0x76,0x57,0xE5,0x61,0x43, + + 0x86,0x86,0xE1,0x47,0x96,0xA6,0x71,0x63,0xC6,0xC6,0xF1,0x67,0xD6,0xE6,0x69,0x53, + + 0x87,0x87,0xE9,0x57,0x97,0xA7,0x79,0x73,0xC7,0xC7,0xF9,0x77,0xD7,0xE7,0x22,0xEC, + + 0xF3,0x8C,0xB4,0xFA,0xE3,0x35,0x96,0x50,0xEF,0xAD,0xA5,0xDD,0xD8,0x65,0x72,0x36, + + 0x8F,0x65,0x92,0x2E,0xCC,0x06,0xE6,0x17,0xFE,0x84,0x2A,0x3E,0x5D,0xE9,0x30,0xE3, + + 0xD0,0xC7,0x70,0x2B,0x61,0x0B,0x0C,0xC9,0xE8,0x41,0xE1,0x79,0x37,0x8E,0x13,0x79, + + 0xCD,0x74,0x0B,0x6D,0xFF,0x47,0xC4,0xCB,0x7B,0x9A,0xBB,0x3F,0xDD,0xEB,0x62,0x4A, + + 0x0E,0x8C,0xE2,0x4E,0x1E,0xAC,0x72,0x6A,0x4E,0xCC,0xF2,0x6E,0x5E,0xEC,0x6A,0x5A, + + 0x0F,0x8D,0xEA,0x5E,0x1F,0xAD,0x7A,0x7A,0x4F,0xCD,0xFA,0x7E,0x5F,0xED,0x63,0x4B, + + 0x8E,0x8E,0xE3,0x4F,0x9E,0xAE,0x73,0x6B,0xCE,0xCE,0xF3,0x6F,0xDE,0xEE,0x6B,0x5B, + + 0x8F,0x8F,0xEB,0x5F,0x9F,0xAF,0x7B,0x7B,0xCF,0xCF,0xFB,0x7F,0xDF,0xEF,0xA4,0x06, + + 0x71,0xA7,0x34,0x77,0x97,0xF0,0x0F,0xD2,0xE4,0xCF,0xB4,0xA6,0x74,0xF0,0x29,0x82, + + 0xC4,0x8A,0xF6,0x6C,0x5D,0x80,0xAC,0xD0,0x92,0xB4,0xBC,0xB6,0x75,0xF1,0x75,0x9E, + + 0xE8,0x91,0x97,0xB7,0xEA,0xF3,0x8E,0xD3,0x64,0xC4,0xB5,0xA7,0xF4,0xF2,0x2D,0x75, + + 0x81,0x6E,0xD3,0x91,0xD6,0x44,0x05,0x5B,0xA9,0x92,0xBD,0xB7,0xF5,0xF3,0x64,0xC2, + + 0x26,0x94,0xE4,0xC6,0x36,0xB4,0x74,0xE2,0x66,0xD4,0xF4,0xE6,0x76,0xF4,0x6C,0xD2, + + 0x27,0x95,0xEC,0xD6,0x37,0xB5,0x7C,0xF2,0x67,0xD5,0xFC,0xF6,0x77,0xF5,0x65,0xC3, + + 0xA6,0x96,0xE5,0xC7,0xB6,0xB6,0x75,0xE3,0xE6,0xD6,0xF5,0xE7,0xF6,0xF6,0x6D,0xD3, + + 0xA7,0x97,0xED,0xD7,0xB7,0xB7,0x7D,0xF3,0xE7,0xD7,0xFD,0xF7,0xF7,0xF7,0x78,0x68, + + 0x28,0x1D,0xF0,0xA6,0xD7,0xDC,0x4F,0xC5,0x10,0x27,0xB6,0xAE,0x7C,0xF8,0x10,0x78, + + 0x4F,0xEC,0x96,0x75,0x91,0xB4,0x69,0x41,0xDC,0x4A,0xBE,0xBE,0x7D,0xF9,0x35,0x2E, + + 0x47,0xDE,0x37,0xED,0x0F,0xDF,0x8E,0x17,0x1B,0xE7,0xB7,0xAF,0xFC,0xFA,0x51,0x9C, + + 0x89,0x10,0x56,0xB8,0x1C,0xC4,0x44,0xBF,0xA5,0x6D,0xBF,0xBF,0xFD,0xFB,0x66,0xCA, + + 0x2E,0x9C,0xE6,0xCE,0x3E,0xBC,0x76,0xEA,0x6E,0xDC,0xF6,0xEE,0x7E,0xFC,0x6E,0xDA, + + 0x2F,0x9D,0xEE,0xDE,0x3F,0xBD,0x7E,0xFA,0x6F,0xDD,0xFE,0xFE,0x7F,0xFD,0x67,0xCB, + + 0xAE,0x9E,0xE7,0xCF,0xBE,0xBE,0x77,0xEB,0xEE,0xDE,0xF7,0xEF,0xFE,0xFE,0x6F,0xDB, + + 0xAF,0x9F,0xEF,0xDF,0xBF,0xBF,0x7F,0xFB,0xEF,0xDF,0xFF,0xFF,0xEB,0x12,0x80,0x05, + + 0x76,0x8D,0xDE,0x85,0xB1,0x8B,0x52,0x92,0x14,0x40,0xCE,0xA1,0x58,0xCB,0xAC,0x72, + + 0x40,0x81,0x90,0xE5,0x5B,0x21,0x24,0xB2,0x41,0xA7,0xC6,0xB5,0xD3,0xCA,0x7F,0x19, + + 0x02,0x2A,0x41,0x05,0xFB,0xA0,0x19,0x24,0xC4,0x62,0x90,0x05,0x50,0x48,0x71,0xEC, + + 0xC1,0x41,0xD7,0x1D,0xB1,0x88,0x47,0xD3,0xCD,0xC6,0x59,0x35,0xBA,0xE1,0x7E,0x48, + + 0xC0,0x06,0x3F,0xBA,0x14,0xE4,0x46,0xF1,0xA9,0xE6,0xF9,0x23,0x7C,0xE8,0xFB,0xC0, + + 0x05,0xA5,0x08,0x40,0x82,0xA8,0x1A,0x03,0x5F,0x4C,0xF1,0x73,0x52,0xE5,0x49,0xC5, + + 0x7E,0xA4,0xD4,0xC1,0xD6,0xBB,0xEA,0xD0,0x80,0xE9,0x9B,0x78,0x93,0x67,0x05,0x23, + + 0xEB,0xA5,0x36,0xD1,0xD7,0xD2,0x2F,0xF3,0xCA,0x3A,0xA3,0xA1,0x53,0x47,0x80,0x6A, + + 0x73,0xDA,0x87,0x0C,0x9A,0x20,0x3C,0x2F,0x20,0x47,0x82,0xDD,0x12,0x68,0x7A,0x5E, + + 0xF5,0x4B,0xEA,0x5C,0x0C,0x26,0x1A,0x7B,0x4D,0x49,0x9B,0x1C,0xD9,0xA8,0xDC,0x08, + + 0x8E,0x8A,0x0E,0xFD,0x90,0x25,0x3D,0x2E,0xE7,0x0A,0xCD,0xA8,0xD0,0xC1,0x89,0x63, + + 0x0B,0x23,0x0B,0x1C,0x30,0x80,0xF1,0x3D,0xC9,0xE4,0xC5,0xBC,0x5B,0xC0,0xBD,0x3B, + + 0x48,0x8F,0x02,0x5D,0x8D,0x6E,0x08,0x75,0xE9,0x4A,0x58,0x9A,0x85,0xE1,0x74,0x54, + + 0x6A,0xED,0xB5,0xA6,0xE4,0xF2,0xDA,0x9A,0xEA,0xB2,0xD8,0x74,0x59,0x6C,0x03,0xB7, + + 0x0A,0x5E,0x41,0xF7,0x7B,0x51,0x5F,0x07,0x6B,0xC6,0xF3,0x60,0xD2,0x2E,0x53,0x4C, + + 0x77,0xAD,0x0B,0x4D,0xB1,0xA2,0x11,0x78,0x28,0xC5,0xD3,0x7F,0x59,0x8F,0xBF,0xE2, + + 0x61,0x50,0x03,0x75,0x3A,0x36,0xBA,0x51,0x6A,0x5C,0x95,0x84,0x1B,0x40,0x74,0xE3, + + 0x71,0x18,0xCE,0x1E,0x5A,0x93,0x62,0x20,0x8A,0xF3,0xD8,0x36,0x1A,0x33,0x7D,0xE3, + + 0xE3,0xCD,0xDB,0x01,0xB0,0x99,0x4B,0x25,0xE0,0xDF,0x95,0xA7,0xB2,0xD9,0x4C,0x6C, + + 0xC7,0x51,0x8D,0x64,0xA1,0x23,0x43,0xB9,0xC1,0xFC,0x9D,0x44,0xB3,0x7D,0x3A,0xCD, + + 0xAD,0xB9,0x04,0xD0,0xC3,0x2F,0x6C,0xB0,0x66,0x5B,0xEE,0x63,0xDE,0x2B,0x4D,0x42, + + 0x23,0x1D,0xB3,0x56,0xB3,0x35,0x26,0x20,0x6B,0x8A,0xE6,0x73,0xDF,0x69,0x40,0x53, + + 0x22,0xBB,0x3A,0xB7,0x55,0x28,0x6D,0x1E,0xA1,0x76,0xEF,0x62,0x5E,0x69,0x09,0x20, + + 0xB7,0x13,0x12,0xD5,0xC4,0x3D,0xE2,0x21,0x14,0x8F,0xF3,0xF3,0x62,0x2B,0x84,0x62, + + 0x57,0x10,0xD8,0x85,0x38,0x78,0x13,0x2A,0x69,0x20,0xC8,0x3D,0x78,0xF5,0x70,0x1A, + + 0x28,0xFE,0xEE,0x6D,0x3F,0x39,0x26,0x49,0x6F,0x59,0xDE,0x4F,0x61,0x7F,0xDC,0x8D, + + 0xAE,0xBA,0x83,0xEE,0xD3,0x18,0x37,0x3D,0x83,0x78,0xE9,0x28,0x93,0x6A,0x55,0x98, + + 0x0A,0xB4,0xD1,0x0D,0x19,0x90,0x41,0x29,0xC9,0xF0,0x97,0xF0,0x9A,0x1B,0x1C,0xCA, + + 0x42,0x2C,0xFC,0x2E,0x96,0xC2,0x2E,0x19,0x3A,0x7C,0xF8,0xEB,0xEF,0x73,0x18,0xD0, + + 0xC0,0x0D,0xFE,0x62,0x50,0x09,0x26,0x8B,0x3B,0x56,0xF7,0xB2,0xB2,0x19,0x39,0xC0, + + 0xC9,0xE1,0xBC,0x13,0x0D,0x95,0x37,0x29,0x24,0xD3,0x63,0xA7,0x33,0x3A,0x6F,0xCD, + + 0x63,0x2F,0xCF,0x2C,0x33,0xC0,0x24,0x99,0xBC,0x54,0x76,0x22,0x42,0xA1,0x9D,0xF2, + + 0x58,0x8F,0xE4,0x84,0x7F,0xE2,0xB0,0x23,0x44,0x80,0x70,0x26,0x3F,0x62,0x22,0x16, + + 0xA6,0x8C,0xF6,0x87,0x15,0x0A,0x68,0x36,0x4D,0xE9,0xE6,0xB3,0x5D,0x4A,0x41,0x42, + + 0x31,0x8F,0xA1,0xF6,0xD6,0xA6,0x35,0xBE,0xC0,0xE2,0xB9,0xD6,0x9E,0xE2,0xD6,0xC3, + + 0x8D,0x0C,0xA8,0x97,0x15,0xA2,0xB9,0x32,0x82,0x83,0xB8,0x17,0x55,0xA1,0xD3,0xD2, + + 0x00,0x24,0x1D,0xBD,0xE5,0x5B,0x74,0x9C,0xBB,0x4E,0xF2,0x14,0x21,0xC4,0x32,0x4F, + + 0xA4,0x83,0xD2,0xB9,0xEC,0x3A,0xF0,0x4E,0xA6,0xCA,0x07,0xA6,0x29,0xE6,0x2D,0xC1, + + 0x8F,0xFB,0x1A,0xC3,0x9A,0xCB,0x8A,0x3F,0x65,0xC0,0x15,0x07,0x24,0x83,0x65,0x3D, + + 0x26,0x0F,0x16,0xA9,0x91,0x27,0x19,0x33,0xDA,0x4C,0xC7,0x7E,0x94,0x15,0x68,0x0B, + + 0xFB,0x75,0xFC,0x8F,0x9E,0x03,0x36,0x5A,0x48,0xE8,0xEC,0xAF,0xDE,0x43,0x4A,0x5B, + + 0xF0,0x02,0xCA,0xEF,0x57,0xA9,0xBA,0x3B,0x9F,0x89,0xA2,0xCF,0x17,0xE9,0x69,0xF5, + + 0xD9,0x85,0x63,0x0F,0xF7,0x28,0x6D,0x2F,0xC4,0xDE,0x73,0x2F,0xB7,0x68,0xAC,0xF9, + + 0x0F,0xA3,0xF5,0x17,0x8D,0xAF,0x3F,0x99,0xC9,0xEB,0xE5,0xBA,0xD5,0x40,0xE2,0xA8, + + 0xAF,0x73,0x3A,0x3C,0xE1,0x73,0xF6,0x88,0xCC,0xC4,0x09,0x1C,0xD0,0x89,0x6E,0xA4, + + 0xF2,0x07,0x68,0xDE,0x19,0x6D,0x76,0x05,0x2C,0x3D,0xB0,0x3C,0x37,0xE0,0x29,0x4A, + + 0x6D,0x04,0x23,0x5E,0x95,0xEC,0xFA,0x19,0x6D,0xC8,0xEB,0x6E,0x8A,0x12,0x90,0x07, + + 0x2C,0x02,0x63,0x7B,0x1A,0x5A,0x03,0xF9,0xC6,0x12,0xE3,0x55,0xDE,0xF8,0x55,0x44, + + 0xD4,0xDE,0xE2,0x86,0xB4,0xD3,0x72,0xA2,0x0F,0xC0,0xCC,0x24,0x7D,0x8D,0x76,0x93, + + 0x86,0x97,0x6C,0x96,0x5E,0x33,0x5C,0xF2,0x78,0x5C,0xB0,0xD8,0xD4,0x79,0x92,0x01, + + 0xA1,0x63,0xFB,0x06,0x36,0x19,0x25,0x52,0xFC,0xD2,0xEF,0xBA,0x57,0xF4,0xA5,0xAF, + + 0x06,0x95,0x85,0x66,0xFF,0xB3,0x45,0x31,0xE4,0x8B,0x3D,0x55,0x54,0x0C,0xE5,0x33, + + 0x3A,0xB4,0x64,0xC3,0xE0,0xF4,0x3F,0x0D,0x9D,0x2B,0x4A,0xE4,0x80,0x20,0x5F,0x42, + + 0xDB,0xD7,0x58,0x3C,0xD6,0xD3,0xBC,0xE6,0x44,0x97,0x7B,0xED,0x75,0xBB,0xD0,0xCF, + + 0x5E,0x34,0xE5,0xC2,0x57,0xD0,0x8E,0x67,0xA2,0x58,0xF2,0xF8,0xA2,0x62,0xDE,0x52, + + 0xA1,0x17,0x59,0x97,0xBB,0x78,0x7B,0x0A,0x98,0x87,0x8B,0xB1,0x51,0xBB,0x6E,0x1D, + + 0x8D,0x91,0xF8,0x86,0x3E,0xBC,0x34,0x48,0x68,0xF8,0xFC,0xAF,0x9F,0x72,0x16,0x69, + + 0x39,0x14,0xF0,0x1A,0x3D,0x34,0x60,0x3E,0x6D,0x72,0x45,0xE2,0xDE,0x97,0xDE,0x09, + + 0xAF,0x7C,0xA8,0x7E,0xB6,0xBC,0x0B,0x5A,0xE6,0xD6,0xB3,0x51,0x01,0x70,0x51,0x1E, + + 0x44,0xCB,0xD1,0x0F,0x56,0x19,0x7D,0xFB,0x6D,0xEB,0x81,0xB6,0x3F,0xFB,0xBE,0xF5, + + 0x3A,0x47,0xC6,0xCF,0x99,0xAC,0xB6,0xFE,0x79,0x9E,0x82,0x13,0x40,0xBE,0x10,0x5E, + + 0xDA,0x3E,0xD4,0x59,0x93,0xA2,0x7E,0x7E,0x2B,0x79,0x3E,0xEA,0x83,0x08,0x67,0xB4, + + 0xC6,0xDC,0x08,0x3D,0x3E,0x8F,0xF5,0x65,0xE8,0xDE,0x75,0xD0,0x02,0x9C,0x2B,0x28, + + 0xA5,0x62,0xA5,0xCA,0xDF,0x2F,0xBF,0xEA,0x3D,0x52,0xF8,0x7B,0xBB,0x0A,0xB7,0x1C, + + 0x06,0xC0,0x24,0x66,0x33,0x40,0x63,0x66,0xEA,0xBB,0x94,0x63,0xD2,0x68,0x78,0x56, + + 0xA3,0xFF,0x68,0x1C,0x33,0x31,0xAF,0xB5,0x47,0x81,0xBE,0xEF,0x05,0xC5,0xB6,0xFC, + + 0x90,0x4C,0x6D,0x07,0x98,0x4E,0x91,0xA5,0x84,0xB7,0xA0,0x47,0x3B,0xD2,0xF0,0x57, + + 0x6B,0xA7,0x8C,0x06,0xDF,0x67,0xAE,0x0E,0x9D,0x01,0x72,0x28,0x19,0x9D,0x38,0x22, + + 0x41,0xF4,0x2F,0x36,0xB1,0x65,0xE3,0x79,0xBE,0x94,0xD0,0x64,0x52,0x64,0x40,0xE2, + + 0xF6,0x0A,0xB0,0x73,0x37,0x25,0x5C,0x37,0xC1,0x4D,0xD8,0x74,0x53,0x65,0x4B,0x01, + + 0x21,0x00,0xC5,0x65,0x92,0x26,0xC1,0xA6,0xC0,0xB3,0xD1,0x65,0xD2,0x66,0xFD,0x2E, + + 0x20,0x46,0xC9,0x55,0x93,0x27,0xEB,0x13,0x28,0xF7,0xD9,0x75,0xD3,0x67,0x42,0x0E, + + 0xC0,0xF8,0xA4,0x98,0x94,0xA3,0x90,0x17,0xB4,0x4A,0xD2,0xAA,0xA4,0x9D,0x08,0xDE, + + 0xAB,0x4C,0x71,0x3A,0x09,0xA4,0x99,0x3E,0x81,0xF9,0x19,0x06,0x01,0x28,0xA7,0xF5, + + 0x08,0xF1,0x87,0xEF,0x9E,0xEA,0xD3,0x3D,0x34,0xEE,0xD3,0x13,0x84,0xDF,0x79,0xBC, + + 0x2D,0xEC,0x5F,0xE2,0x1A,0x25,0xBF,0x5B,0x65,0xB4,0x77,0xBD,0x25,0x4B,0xAA,0xFB, + + 0x8F,0x4B,0xC2,0x4C,0x1A,0x2C,0x74,0xB7,0x1E,0x0A,0xD2,0x6C,0x5A,0x6C,0x3E,0xA5, + + 0x2A,0x4F,0xCA,0x5C,0x1B,0x2D,0xD9,0x5C,0xC4,0x4F,0xDA,0x7C,0x5B,0x6D,0x83,0x5D, + + 0x78,0x42,0xC3,0x4D,0x9A,0x2E,0xE4,0x57,0x92,0xBB,0xD3,0x6D,0xDA,0x6E,0xC9,0x66, + + 0x0E,0x08,0xCB,0x5D,0x9B,0x2F,0xEC,0x78,0x46,0x49,0xDB,0x7D,0xDB,0x6F,0x80,0x04, + + 0x64,0xE5,0x0C,0x86,0xC5,0x3F,0x74,0xE4,0x6F,0x5D,0xBC,0x66,0xF2,0x78,0xBB,0xAF, + + 0x79,0x53,0x48,0x11,0x72,0xC2,0x94,0xC8,0x80,0x5E,0xFC,0xF4,0x8A,0x7C,0x3F,0x7E, + + 0xA6,0xD2,0x31,0xFA,0x13,0x8F,0x5F,0x7E,0x43,0x54,0x7A,0x55,0xA8,0x7D,0x8F,0xAE, + + 0x5D,0xC3,0xED,0xD1,0x8C,0x3C,0x7D,0xF5,0xD8,0x5C,0xEF,0xAC,0xB1,0x88,0x3C,0xE4, + + 0xA7,0x33,0xC4,0xC4,0x32,0x34,0x94,0xF4,0x9E,0x18,0xD4,0xE4,0x72,0x74,0xFB,0x2D, + + 0x33,0x5B,0xCC,0xD4,0x33,0x35,0xF4,0x53,0x1C,0xD5,0xDC,0xF4,0x73,0x75,0x9A,0xD0, + + 0xA4,0xD6,0xC5,0xC5,0xB2,0x36,0x25,0x27,0x48,0x17,0xD5,0xE5,0xF2,0x76,0x3D,0xF7, + + 0x41,0x74,0xCD,0xD5,0xB3,0x37,0x9D,0xE5,0x1F,0x1B,0xDD,0xF5,0xF3,0x77,0xC6,0x9C, + + 0xD4,0xBC,0x16,0x92,0x60,0xCC,0xA2,0x4A,0xEA,0x10,0x92,0xAE,0x7C,0x83,0xAA,0x65, + + 0xA9,0xC2,0x7E,0x18,0x7D,0xAE,0x66,0xDA,0x2A,0xE6,0x29,0x98,0xFC,0x5E,0x47,0x8F, + + 0x60,0xEA,0x04,0x4B,0x52,0x76,0xDB,0xCB,0xAB,0x85,0x97,0x6F,0x7B,0x3C,0x0E,0x5F, + + 0x0B,0x5E,0x27,0x3E,0xC6,0x3A,0x67,0xE6,0x1C,0xA7,0x40,0xAC,0xFF,0xBB,0xEE,0x6A, + + 0xF5,0xF3,0xC6,0xCC,0x3A,0x3C,0x26,0x2E,0xC0,0x1D,0xD6,0xEC,0x7A,0x7C,0xB1,0xFC, + + 0xA9,0x15,0xCE,0xDC,0x3B,0x3D,0xF2,0xBA,0xE8,0x53,0xDE,0xFC,0x7B,0x7D,0xEF,0x6B, + + 0x2D,0x39,0xC7,0xCD,0xBA,0x3E,0xBB,0x69,0x16,0x7E,0xD7,0xED,0xFA,0x7E,0xF9,0xBB, + + 0x5C,0x19,0xCF,0xDD,0xBB,0x3F,0x37,0x7F,0x17,0x1E,0xDF,0xFD,0xFB,0x7F,0xF4,0x44, + + 0xA6,0x7E,0x40,0x39,0x30,0x1C,0xF0,0x36,0xB8,0xBE,0x1C,0xA4,0x55,0x65,0xC3,0x69, + + 0x9A,0xBC,0x2C,0xE7,0xB6,0xA3,0x4C,0xB6,0x0D,0x9F,0xD7,0x2A,0x9D,0x3F,0x5B,0x87, + + 0xC8,0x92,0x1E,0x5C,0x6D,0x28,0x48,0x65,0x66,0x8C,0x89,0xD4,0x8C,0x46,0x81,0xB1, + + 0x02,0xA4,0x9B,0xE8,0x17,0xEB,0xF9,0x27,0x54,0x82,0x3E,0x24,0x0A,0xE1,0x88,0xE1, + + 0x00,0x24,0xE0,0x46,0x16,0xA4,0x78,0x50,0xE7,0x6B,0xF0,0x66,0x56,0xE4,0xF8,0xD0, + + 0x06,0xF2,0xE8,0x56,0x17,0xA5,0x98,0x4D,0xB3,0x75,0xF8,0x76,0x57,0xE5,0x88,0xC7, + + 0xC2,0x9A,0xE1,0x47,0x96,0xA6,0x76,0x70,0x1D,0x16,0xF1,0x67,0xD6,0xE6,0x53,0xB1, + + 0x05,0x8F,0xE9,0x57,0x97,0xA7,0xCE,0x6F,0xE3,0x3A,0xF9,0x77,0xD7,0xE7,0xB2,0x14, + + 0x54,0x7C,0x82,0x6C,0xAB,0xCD,0x99,0x51,0x99,0x35,0x52,0x11,0xA0,0xEA,0x6A,0xDC, + + 0xE7,0xC5,0x13,0x4F,0xBE,0x76,0x62,0x07,0xCF,0xC1,0x89,0x27,0x79,0x87,0xA0,0x11, + + 0xD0,0x3E,0x9B,0xDF,0x41,0xD5,0x71,0x4B,0xD4,0x4A,0x00,0x32,0x24,0x3A,0xDB,0x5D, + + 0x27,0x70,0x16,0x42,0x62,0xAD,0xEF,0x49,0x6E,0x8A,0xFB,0x00,0xD5,0x87,0x93,0x28, + + 0x4D,0x53,0xE2,0x4E,0x1E,0xAC,0xAD,0x62,0x60,0x8A,0xF2,0x6E,0x5E,0xEC,0x12,0xD8, + + 0x0E,0x9A,0xEA,0x5E,0x1F,0xAD,0x0A,0xA5,0xA0,0x8C,0xFA,0x7E,0x5F,0xED,0x1B,0x29, + + 0xCD,0x7E,0xE3,0x4F,0x9E,0xAE,0x81,0xAD,0x6C,0x82,0xF3,0x6F,0xDE,0xEE,0xD0,0xB9, + + 0x23,0x72,0xEB,0x5F,0x9F,0xAF,0xD3,0xD8,0xB0,0x0F,0xFB,0x7F,0xDF,0xEF,0x56,0x27, + + 0xA1,0x97,0x64,0x92,0xC8,0x45,0xF4,0xB3,0x48,0xD6,0x03,0x5B,0x38,0xBE,0x2D,0x4D, + + 0x86,0xEF,0x1B,0x8F,0x33,0x71,0x44,0x96,0xEA,0xD3,0x45,0x70,0xD7,0xB4,0xCE,0x74, + + 0xA2,0x72,0x61,0x03,0xF0,0x47,0x3D,0x06,0x87,0xF2,0xC5,0xE1,0x56,0x0C,0x16,0xD5, + + 0x07,0xDD,0x1A,0xA8,0xE1,0xF1,0x8A,0xB2,0x68,0xDF,0xCF,0x31,0xED,0xBF,0x6C,0xF5, + + 0x87,0xF8,0xE4,0xC6,0x36,0xB4,0x14,0xA2,0x6A,0x29,0xF4,0xE6,0x76,0xF4,0xE8,0x15, + + 0xA7,0xB5,0xEC,0xD6,0x37,0xB5,0x26,0xF3,0xC4,0x94,0xFC,0xF6,0x77,0xF5,0x86,0x84, + + 0x78,0x9E,0xE5,0xC7,0xB6,0xB6,0x0D,0x61,0xE7,0x96,0xF5,0xE7,0xF6,0xF6,0xC1,0x13, + + 0x04,0xD6,0xED,0xD7,0xB7,0xB7,0x1D,0xB3,0xFA,0x5C,0xFD,0xF7,0xF7,0xF7,0x52,0xAE, + + 0xF8,0x28,0x24,0xB1,0xB9,0xBF,0x5E,0xB4,0x2A,0x2C,0xC6,0x8E,0x64,0x35,0x09,0x1A, + + 0xAA,0x3E,0x47,0x1A,0x79,0xA5,0x81,0xDA,0xDA,0x7D,0x84,0x5C,0xFF,0xF1,0x80,0x97, + + 0x7C,0x6A,0x4F,0x2C,0xBA,0x1A,0xF1,0x2F,0xA4,0xAD,0x27,0x2D,0xFD,0x1D,0x87,0x3D, + + 0xAB,0x5B,0x3F,0x58,0xBF,0x4E,0xF9,0xBD,0x25,0x19,0x4D,0xDD,0xBE,0x24,0x8A,0x4A, + + 0xD2,0xBC,0xE6,0xCE,0x3E,0xBC,0xF2,0x08,0xEC,0xD4,0xF6,0xEE,0x7E,0xFC,0x56,0x29, + + 0x77,0x39,0xEE,0xDE,0x3F,0xBD,0x1E,0xBA,0xC2,0x20,0xFE,0xFE,0x7F,0xFD,0xCB,0x49, + + 0xAF,0xCB,0xE7,0xCF,0xBE,0xBE,0xFE,0x99,0x4D,0x9F,0xF7,0xEF,0xFE,0xFE,0x80,0xC7, + + 0x29,0x6A,0xEF,0xDF,0xBF,0xBF,0x07,0xDF,0x6D,0xD7,0xFF,0xFF,0xFF,0xFF,0x00,0x00, + + 0x00,0x00,0x80,0x04,0x10,0x20,0x10,0x20,0x40,0x40,0x90,0x24,0x50,0x60,0x08,0x10, + + 0x01,0x01,0x88,0x14,0x11,0x21,0x18,0x30,0x41,0x41,0x98,0x34,0x51,0x61,0x01,0x01, + + 0x80,0x02,0x81,0x05,0x90,0x22,0x11,0x21,0xC0,0x42,0x91,0x25,0xD0,0x62,0x09,0x11, + + 0x81,0x03,0x89,0x15,0x91,0x23,0x19,0x31,0xC1,0x43,0x99,0x35,0xD1,0x63,0x40,0x40, + + 0x02,0x04,0xC0,0x44,0x12,0x24,0x50,0x60,0x42,0x44,0xD0,0x64,0x52,0x64,0x48,0x50, + + 0x03,0x05,0xC8,0x54,0x13,0x25,0x58,0x70,0x43,0x45,0xD8,0x74,0x53,0x65,0x41,0x41, + + 0x82,0x06,0xC1,0x45,0x92,0x26,0x51,0x61,0xC2,0x46,0xD1,0x65,0xD2,0x66,0x49,0x51, + + 0x83,0x07,0xC9,0x55,0x93,0x27,0x59,0x71,0xC3,0x47,0xD9,0x75,0xD3,0x67,0x02,0x08, + + 0x08,0x08,0x82,0x0C,0x18,0x28,0x12,0x28,0x48,0x48,0x92,0x2C,0x58,0x68,0x0A,0x18, + + 0x09,0x09,0x8A,0x1C,0x19,0x29,0x1A,0x38,0x49,0x49,0x9A,0x3C,0x59,0x69,0x03,0x09, + + 0x88,0x0A,0x83,0x0D,0x98,0x2A,0x13,0x29,0xC8,0x4A,0x93,0x2D,0xD8,0x6A,0x0B,0x19, + + 0x89,0x0B,0x8B,0x1D,0x99,0x2B,0x1B,0x39,0xC9,0x4B,0x9B,0x3D,0xD9,0x6B,0x42,0x48, + + 0x0A,0x0C,0xC2,0x4C,0x1A,0x2C,0x52,0x68,0x4A,0x4C,0xD2,0x6C,0x5A,0x6C,0x4A,0x58, + + 0x0B,0x0D,0xCA,0x5C,0x1B,0x2D,0x5A,0x78,0x4B,0x4D,0xDA,0x7C,0x5B,0x6D,0x43,0x49, + + 0x8A,0x0E,0xC3,0x4D,0x9A,0x2E,0x53,0x69,0xCA,0x4E,0xD3,0x6D,0xDA,0x6E,0x4B,0x59, + + 0x8B,0x0F,0xCB,0x5D,0x9B,0x2F,0x5B,0x79,0xCB,0x4F,0xDB,0x7D,0xDB,0x6F,0x04,0x80, + + 0x20,0x10,0x84,0x84,0x30,0x30,0x14,0xA0,0x60,0x50,0x94,0xA4,0x70,0x70,0x0C,0x90, + + 0x21,0x11,0x8C,0x94,0x31,0x31,0x1C,0xB0,0x61,0x51,0x9C,0xB4,0x71,0x71,0x05,0x81, + + 0xA0,0x12,0x85,0x85,0xB0,0x32,0x15,0xA1,0xE0,0x52,0x95,0xA5,0xF0,0x72,0x0D,0x91, + + 0xA1,0x13,0x8D,0x95,0xB1,0x33,0x1D,0xB1,0xE1,0x53,0x9D,0xB5,0xF1,0x73,0x44,0xC0, + + 0x22,0x14,0xC4,0xC4,0x32,0x34,0x54,0xE0,0x62,0x54,0xD4,0xE4,0x72,0x74,0x4C,0xD0, + + 0x23,0x15,0xCC,0xD4,0x33,0x35,0x5C,0xF0,0x63,0x55,0xDC,0xF4,0x73,0x75,0x45,0xC1, + + 0xA2,0x16,0xC5,0xC5,0xB2,0x36,0x55,0xE1,0xE2,0x56,0xD5,0xE5,0xF2,0x76,0x4D,0xD1, + + 0xA3,0x17,0xCD,0xD5,0xB3,0x37,0x5D,0xF1,0xE3,0x57,0xDD,0xF5,0xF3,0x77,0x06,0x88, + + 0x28,0x18,0x86,0x8C,0x38,0x38,0x16,0xA8,0x68,0x58,0x96,0xAC,0x78,0x78,0x0E,0x98, + + 0x29,0x19,0x8E,0x9C,0x39,0x39,0x1E,0xB8,0x69,0x59,0x9E,0xBC,0x79,0x79,0x07,0x89, + + 0xA8,0x1A,0x87,0x8D,0xB8,0x3A,0x17,0xA9,0xE8,0x5A,0x97,0xAD,0xF8,0x7A,0x0F,0x99, + + 0xA9,0x1B,0x8F,0x9D,0xB9,0x3B,0x1F,0xB9,0xE9,0x5B,0x9F,0xBD,0xF9,0x7B,0x46,0xC8, + + 0x2A,0x1C,0xC6,0xCC,0x3A,0x3C,0x56,0xE8,0x6A,0x5C,0xD6,0xEC,0x7A,0x7C,0x4E,0xD8, + + 0x2B,0x1D,0xCE,0xDC,0x3B,0x3D,0x5E,0xF8,0x6B,0x5D,0xDE,0xFC,0x7B,0x7D,0x47,0xC9, + + 0xAA,0x1E,0xC7,0xCD,0xBA,0x3E,0x57,0xE9,0xEA,0x5E,0xD7,0xED,0xFA,0x7E,0x4F,0xD9, + + 0xAB,0x1F,0xCF,0xDD,0xBB,0x3F,0x5F,0xF9,0xEB,0x5F,0xDF,0xFD,0xFB,0x7F,0x20,0x02, + + 0x04,0x80,0xA0,0x06,0x14,0xA0,0x30,0x22,0x44,0xC0,0xB0,0x26,0x54,0xE0,0x28,0x12, + + 0x05,0x81,0xA8,0x16,0x15,0xA1,0x38,0x32,0x45,0xC1,0xB8,0x36,0x55,0xE1,0x21,0x03, + + 0x84,0x82,0xA1,0x07,0x94,0xA2,0x31,0x23,0xC4,0xC2,0xB1,0x27,0xD4,0xE2,0x29,0x13, + + 0x85,0x83,0xA9,0x17,0x95,0xA3,0x39,0x33,0xC5,0xC3,0xB9,0x37,0xD5,0xE3,0x60,0x42, + + 0x06,0x84,0xE0,0x46,0x16,0xA4,0x70,0x62,0x46,0xC4,0xF0,0x66,0x56,0xE4,0x68,0x52, + + 0x07,0x85,0xE8,0x56,0x17,0xA5,0x78,0x72,0x47,0xC5,0xF8,0x76,0x57,0xE5,0x61,0x43, + + 0x86,0x86,0xE1,0x47,0x96,0xA6,0x71,0x63,0xC6,0xC6,0xF1,0x67,0xD6,0xE6,0x69,0x53, + + 0x87,0x87,0xE9,0x57,0x97,0xA7,0x79,0x73,0xC7,0xC7,0xF9,0x77,0xD7,0xE7,0x22,0x0A, + + 0x0C,0x88,0xA2,0x0E,0x1C,0xA8,0x32,0x2A,0x4C,0xC8,0xB2,0x2E,0x5C,0xE8,0x2A,0x1A, + + 0x0D,0x89,0xAA,0x1E,0x1D,0xA9,0x3A,0x3A,0x4D,0xC9,0xBA,0x3E,0x5D,0xE9,0x23,0x0B, + + 0x8C,0x8A,0xA3,0x0F,0x9C,0xAA,0x33,0x2B,0xCC,0xCA,0xB3,0x2F,0xDC,0xEA,0x2B,0x1B, + + 0x8D,0x8B,0xAB,0x1F,0x9D,0xAB,0x3B,0x3B,0xCD,0xCB,0xBB,0x3F,0xDD,0xEB,0x62,0x4A, + + 0x0E,0x8C,0xE2,0x4E,0x1E,0xAC,0x72,0x6A,0x4E,0xCC,0xF2,0x6E,0x5E,0xEC,0x6A,0x5A, + + 0x0F,0x8D,0xEA,0x5E,0x1F,0xAD,0x7A,0x7A,0x4F,0xCD,0xFA,0x7E,0x5F,0xED,0x63,0x4B, + + 0x8E,0x8E,0xE3,0x4F,0x9E,0xAE,0x73,0x6B,0xCE,0xCE,0xF3,0x6F,0xDE,0xEE,0x6B,0x5B, + + 0x8F,0x8F,0xEB,0x5F,0x9F,0xAF,0x7B,0x7B,0xCF,0xCF,0xFB,0x7F,0xDF,0xEF,0x24,0x82, + + 0x24,0x90,0xA4,0x86,0x34,0xB0,0x34,0xA2,0x64,0xD0,0xB4,0xA6,0x74,0xF0,0x2C,0x92, + + 0x25,0x91,0xAC,0x96,0x35,0xB1,0x3C,0xB2,0x65,0xD1,0xBC,0xB6,0x75,0xF1,0x25,0x83, + + 0xA4,0x92,0xA5,0x87,0xB4,0xB2,0x35,0xA3,0xE4,0xD2,0xB5,0xA7,0xF4,0xF2,0x2D,0x93, + + 0xA5,0x93,0xAD,0x97,0xB5,0xB3,0x3D,0xB3,0xE5,0xD3,0xBD,0xB7,0xF5,0xF3,0x64,0xC2, + + 0x26,0x94,0xE4,0xC6,0x36,0xB4,0x74,0xE2,0x66,0xD4,0xF4,0xE6,0x76,0xF4,0x6C,0xD2, + + 0x27,0x95,0xEC,0xD6,0x37,0xB5,0x7C,0xF2,0x67,0xD5,0xFC,0xF6,0x77,0xF5,0x65,0xC3, + + 0xA6,0x96,0xE5,0xC7,0xB6,0xB6,0x75,0xE3,0xE6,0xD6,0xF5,0xE7,0xF6,0xF6,0x6D,0xD3, + + 0xA7,0x97,0xED,0xD7,0xB7,0xB7,0x7D,0xF3,0xE7,0xD7,0xFD,0xF7,0xF7,0xF7,0x26,0x8A, + + 0x2C,0x98,0xA6,0x8E,0x3C,0xB8,0x36,0xAA,0x6C,0xD8,0xB6,0xAE,0x7C,0xF8,0x2E,0x9A, + + 0x2D,0x99,0xAE,0x9E,0x3D,0xB9,0x3E,0xBA,0x6D,0xD9,0xBE,0xBE,0x7D,0xF9,0x27,0x8B, + + 0xAC,0x9A,0xA7,0x8F,0xBC,0xBA,0x37,0xAB,0xEC,0xDA,0xB7,0xAF,0xFC,0xFA,0x2F,0x9B, + + 0xAD,0x9B,0xAF,0x9F,0xBD,0xBB,0x3F,0xBB,0xED,0xDB,0xBF,0xBF,0xFD,0xFB,0x66,0xCA, + + 0x2E,0x9C,0xE6,0xCE,0x3E,0xBC,0x76,0xEA,0x6E,0xDC,0xF6,0xEE,0x7E,0xFC,0x6E,0xDA, + + 0x2F,0x9D,0xEE,0xDE,0x3F,0xBD,0x7E,0xFA,0x6F,0xDD,0xFE,0xFE,0x7F,0xFD,0x67,0xCB, + + 0xAE,0x9E,0xE7,0xCF,0xBE,0xBE,0x77,0xEB,0xEE,0xDE,0xF7,0xEF,0xFE,0xFE,0x6F,0xDB, + + 0xAF,0x9F,0xEF,0xDF,0xBF,0xBF,0x7F,0xFB,0xEF,0xDF,0xFF,0xFF,0xFF,0xFF,0x00,0x00, + + 0x00,0x00,0x80,0x04,0x10,0x20,0x10,0x20,0x40,0x40,0x90,0x24,0x50,0x60,0x08,0x10, + + 0x01,0x01,0x88,0x14,0x11,0x21,0x18,0x30,0x41,0x41,0x98,0x34,0x51,0x61,0x01,0x01, + + 0x80,0x02,0x81,0x05,0x90,0x22,0x11,0x21,0xC0,0x42,0x91,0x25,0xD0,0x62,0x09,0x11, + + 0x81,0x03,0x89,0x15,0x91,0x23,0x19,0x31,0xC1,0x43,0x99,0x35,0xD1,0x63,0x40,0x40, + + 0x02,0x04,0xC0,0x44,0x12,0x24,0x50,0x60,0x42,0x44,0xD0,0x64,0x52,0x64,0x48,0x50, + + 0x03,0x05,0xC8,0x54,0x13,0x25,0x58,0x70,0x43,0x45,0xD8,0x74,0x53,0x65,0x41,0x41, + + 0x82,0x06,0xC1,0x45,0x92,0x26,0x51,0x61,0xC2,0x46,0xD1,0x65,0xD2,0x66,0x49,0x51, + + 0x83,0x07,0xC9,0x55,0x93,0x27,0x59,0x71,0xC3,0x47,0xD9,0x75,0xD3,0x67,0x02,0x08, + + 0x08,0x08,0x82,0x0C,0x18,0x28,0x12,0x28,0x48,0x48,0x92,0x2C,0x58,0x68,0x0A,0x18, + + 0x09,0x09,0x8A,0x1C,0x19,0x29,0x1A,0x38,0x49,0x49,0x9A,0x3C,0x59,0x69,0x03,0x09, + + 0x88,0x0A,0x83,0x0D,0x98,0x2A,0x13,0x29,0xC8,0x4A,0x93,0x2D,0xD8,0x6A,0x0B,0x19, + + 0x89,0x0B,0x8B,0x1D,0x99,0x2B,0x1B,0x39,0xC9,0x4B,0x9B,0x3D,0xD9,0x6B,0x42,0x48, + + 0x0A,0x0C,0xC2,0x4C,0x1A,0x2C,0x52,0x68,0x4A,0x4C,0xD2,0x6C,0x5A,0x6C,0x4A,0x58, + + 0x0B,0x0D,0xCA,0x5C,0x1B,0x2D,0x5A,0x78,0x4B,0x4D,0xDA,0x7C,0x5B,0x6D,0x43,0x49, + + 0x8A,0x0E,0xC3,0x4D,0x9A,0x2E,0x53,0x69,0xCA,0x4E,0xD3,0x6D,0xDA,0x6E,0x4B,0x59, + + 0x8B,0x0F,0xCB,0x5D,0x9B,0x2F,0x5B,0x79,0xCB,0x4F,0xDB,0x7D,0xDB,0x6F,0x04,0x80, + + 0x20,0x10,0x84,0x84,0x30,0x30,0x14,0xA0,0x60,0x50,0x94,0xA4,0x70,0x70,0x0C,0x90, + + 0x21,0x11,0x8C,0x94,0x31,0x31,0x1C,0xB0,0x61,0x51,0x9C,0xB4,0x71,0x71,0x05,0x81, + + 0xA0,0x12,0x85,0x85,0xB0,0x32,0x15,0xA1,0xE0,0x52,0x95,0xA5,0xF0,0x72,0x0D,0x91, + + 0xA1,0x13,0x8D,0x95,0xB1,0x33,0x1D,0xB1,0xE1,0x53,0x9D,0xB5,0xF1,0x73,0x44,0xC0, + + 0x22,0x14,0xC4,0xC4,0x32,0x34,0x54,0xE0,0x62,0x54,0xD4,0xE4,0x72,0x74,0x4C,0xD0, + + 0x23,0x15,0xCC,0xD4,0x33,0x35,0x5C,0xF0,0x63,0x55,0xDC,0xF4,0x73,0x75,0x45,0xC1, + + 0xA2,0x16,0xC5,0xC5,0xB2,0x36,0x55,0xE1,0xE2,0x56,0xD5,0xE5,0xF2,0x76,0x4D,0xD1, + + 0xA3,0x17,0xCD,0xD5,0xB3,0x37,0x5D,0xF1,0xE3,0x57,0xDD,0xF5,0xF3,0x77,0x06,0x88, + + 0x28,0x18,0x86,0x8C,0x38,0x38,0x16,0xA8,0x68,0x58,0x96,0xAC,0x78,0x78,0x0E,0x98, + + 0x29,0x19,0x8E,0x9C,0x39,0x39,0x1E,0xB8,0x69,0x59,0x9E,0xBC,0x79,0x79,0x07,0x89, + + 0xA8,0x1A,0x87,0x8D,0xB8,0x3A,0x17,0xA9,0xE8,0x5A,0x97,0xAD,0xF8,0x7A,0x0F,0x99, + + 0xA9,0x1B,0x8F,0x9D,0xB9,0x3B,0x1F,0xB9,0xE9,0x5B,0x9F,0xBD,0xF9,0x7B,0x46,0xC8, + + 0x2A,0x1C,0xC6,0xCC,0x3A,0x3C,0x56,0xE8,0x6A,0x5C,0xD6,0xEC,0x7A,0x7C,0x4E,0xD8, + + 0x2B,0x1D,0xCE,0xDC,0x3B,0x3D,0x5E,0xF8,0x6B,0x5D,0xDE,0xFC,0x7B,0x7D,0x47,0xC9, + + 0xAA,0x1E,0xC7,0xCD,0xBA,0x3E,0x57,0xE9,0xEA,0x5E,0xD7,0xED,0xFA,0x7E,0x4F,0xD9, + + 0xAB,0x1F,0xCF,0xDD,0xBB,0x3F,0x5F,0xF9,0xEB,0x5F,0xDF,0xFD,0xFB,0x7F,0x20,0x02, + + 0x04,0x80,0xA0,0x06,0x14,0xA0,0x30,0x22,0x44,0xC0,0xB0,0x26,0x54,0xE0,0x28,0x12, + + 0x05,0x81,0xA8,0x16,0x15,0xA1,0x38,0x32,0x45,0xC1,0xB8,0x36,0x55,0xE1,0x21,0x03, + + 0x84,0x82,0xA1,0x07,0x94,0xA2,0x31,0x23,0xC4,0xC2,0xB1,0x27,0xD4,0xE2,0x29,0x13, + + 0x85,0x83,0xA9,0x17,0x95,0xA3,0x39,0x33,0xC5,0xC3,0xB9,0x37,0xD5,0xE3,0x60,0x42, + + 0x06,0x84,0xE0,0x46,0x16,0xA4,0x70,0x62,0x46,0xC4,0xF0,0x66,0x56,0xE4,0x68,0x52, + + 0x07,0x85,0xE8,0x56,0x17,0xA5,0x78,0x72,0x47,0xC5,0xF8,0x76,0x57,0xE5,0x61,0x43, + + 0x86,0x86,0xE1,0x47,0x96,0xA6,0x71,0x63,0xC6,0xC6,0xF1,0x67,0xD6,0xE6,0x69,0x53, + + 0x87,0x87,0xE9,0x57,0x97,0xA7,0x79,0x73,0xC7,0xC7,0xF9,0x77,0xD7,0xE7,0x22,0x0A, + + 0x0C,0x88,0xA2,0x0E,0x1C,0xA8,0x32,0x2A,0x4C,0xC8,0xB2,0x2E,0x5C,0xE8,0x2A,0x1A, + + 0x0D,0x89,0xAA,0x1E,0x1D,0xA9,0x3A,0x3A,0x4D,0xC9,0xBA,0x3E,0x5D,0xE9,0x23,0x0B, + + 0x8C,0x8A,0xA3,0x0F,0x9C,0xAA,0x33,0x2B,0xCC,0xCA,0xB3,0x2F,0xDC,0xEA,0x2B,0x1B, + + 0x8D,0x8B,0xAB,0x1F,0x9D,0xAB,0x3B,0x3B,0xCD,0xCB,0xBB,0x3F,0xDD,0xEB,0x62,0x4A, + + 0x0E,0x8C,0xE2,0x4E,0x1E,0xAC,0x72,0x6A,0x4E,0xCC,0xF2,0x6E,0x5E,0xEC,0x6A,0x5A, + + 0x0F,0x8D,0xEA,0x5E,0x1F,0xAD,0x7A,0x7A,0x4F,0xCD,0xFA,0x7E,0x5F,0xED,0x63,0x4B, + + 0x8E,0x8E,0xE3,0x4F,0x9E,0xAE,0x73,0x6B,0xCE,0xCE,0xF3,0x6F,0xDE,0xEE,0x6B,0x5B, + + 0x8F,0x8F,0xEB,0x5F,0x9F,0xAF,0x7B,0x7B,0xCF,0xCF,0xFB,0x7F,0xDF,0xEF,0x24,0x82, + + 0x24,0x90,0xA4,0x86,0x34,0xB0,0x34,0xA2,0x64,0xD0,0xB4,0xA6,0x74,0xF0,0x2C,0x92, + + 0x25,0x91,0xAC,0x96,0x35,0xB1,0x3C,0xB2,0x65,0xD1,0xBC,0xB6,0x75,0xF1,0x25,0x83, + + 0xA4,0x92,0xA5,0x87,0xB4,0xB2,0x35,0xA3,0xE4,0xD2,0xB5,0xA7,0xF4,0xF2,0x2D,0x93, + + 0xA5,0x93,0xAD,0x97,0xB5,0xB3,0x3D,0xB3,0xE5,0xD3,0xBD,0xB7,0xF5,0xF3,0x64,0xC2, + + 0x26,0x94,0xE4,0xC6,0x36,0xB4,0x74,0xE2,0x66,0xD4,0xF4,0xE6,0x76,0xF4,0x6C,0xD2, + + 0x27,0x95,0xEC,0xD6,0x37,0xB5,0x7C,0xF2,0x67,0xD5,0xFC,0xF6,0x77,0xF5,0x65,0xC3, + + 0xA6,0x96,0xE5,0xC7,0xB6,0xB6,0x75,0xE3,0xE6,0xD6,0xF5,0xE7,0xF6,0xF6,0x6D,0xD3, + + 0xA7,0x97,0xED,0xD7,0xB7,0xB7,0x7D,0xF3,0xE7,0xD7,0xFD,0xF7,0xF7,0xF7,0x26,0x8A, + + 0x2C,0x98,0xA6,0x8E,0x3C,0xB8,0x36,0xAA,0x6C,0xD8,0xB6,0xAE,0x7C,0xF8,0x2E,0x9A, + + 0x2D,0x99,0xAE,0x9E,0x3D,0xB9,0x3E,0xBA,0x6D,0xD9,0xBE,0xBE,0x7D,0xF9,0x27,0x8B, + + 0xAC,0x9A,0xA7,0x8F,0xBC,0xBA,0x37,0xAB,0xEC,0xDA,0xB7,0xAF,0xFC,0xFA,0x2F,0x9B, + + 0xAD,0x9B,0xAF,0x9F,0xBD,0xBB,0x3F,0xBB,0xED,0xDB,0xBF,0xBF,0xFD,0xFB,0x66,0xCA, + + 0x2E,0x9C,0xE6,0xCE,0x3E,0xBC,0x76,0xEA,0x6E,0xDC,0xF6,0xEE,0x7E,0xFC,0x6E,0xDA, + + 0x2F,0x9D,0xEE,0xDE,0x3F,0xBD,0x7E,0xFA,0x6F,0xDD,0xFE,0xFE,0x7F,0xFD,0x67,0xCB, + + 0xAE,0x9E,0xE7,0xCF,0xBE,0xBE,0x77,0xEB,0xEE,0xDE,0xF7,0xEF,0xFE,0xFE,0x6F,0xDB, + + 0xAF,0x9F,0xEF,0xDF,0xBF,0xBF,0x7F,0xFB,0xEF,0xDF,0xFF,0xFF,0x90,0xAF, diff --git a/drivers/input/touchscreen/GT915L/Kconfig b/drivers/input/touchscreen/GT915L/Kconfig new file mode 100644 index 0000000000000..cc1039fb9959f --- /dev/null +++ b/drivers/input/touchscreen/GT915L/Kconfig @@ -0,0 +1,5 @@ + +config TOUCHSCREEN_GT915L + tristate "ATMEL GT915L touchpanel driver" + depends on CONFIG_INPUT_TOUCHSCREEN + default n diff --git a/drivers/input/touchscreen/GT915L/Makefile b/drivers/input/touchscreen/GT915L/Makefile new file mode 100644 index 0000000000000..c207dc3cb8502 --- /dev/null +++ b/drivers/input/touchscreen/GT915L/Makefile @@ -0,0 +1,4 @@ +#GT915L touchpanel driver + +obj-y += gt9xx.o goodix_tool.o gt9xx_update.o + diff --git a/drivers/input/touchscreen/GT915L/goodix_tool.c b/drivers/input/touchscreen/GT915L/goodix_tool.c new file mode 100644 index 0000000000000..ca6020c4802c0 --- /dev/null +++ b/drivers/input/touchscreen/GT915L/goodix_tool.c @@ -0,0 +1,736 @@ +/* + * Goodix GT9xx touchscreen driver + * + * Copyright (C) 2010 - 2014 Goodix. Ltd. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be a reference + * to you, when you are integrating the GOODiX's CTP IC into your system, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * Version: 2.4 + * Release Date: 2014/11/28 + */ + + +#include "gt9xx.h" + +#define DATA_LENGTH_UINT 512 +#define CMD_HEAD_LENGTH (sizeof(st_cmd_head) - sizeof(u8 *)) +static char procname[20] = {0}; + +#define UPDATE_FUNCTIONS + +#ifdef UPDATE_FUNCTIONS +extern s32 gup_enter_update_mode(struct i2c_client *client); +extern void gup_leave_update_mode(void); +extern s32 gup_update_proc(void *dir); +#endif + +extern void gtp_irq_disable(struct goodix_ts_data *); +extern void gtp_irq_enable(struct goodix_ts_data *); + +#pragma pack(1) +typedef struct{ + u8 wr; + u8 flag; + u8 flag_addr[2]; + u8 flag_val; + u8 flag_relation; + u16 circle; + u8 times; + u8 retry; + u16 delay; + u16 data_len; + u8 addr_len; + u8 addr[2]; + u8 res[3]; + u8 *data; +} st_cmd_head; +#pragma pack() +st_cmd_head cmd_head; + +static struct i2c_client *gt_client; + +static struct proc_dir_entry *goodix_proc_entry; + + +static ssize_t goodix_tool_read(struct file *, char __user *, size_t, loff_t *); +static ssize_t goodix_tool_write(struct file *, const char __user *, size_t, loff_t *); +static const struct file_operations tool_ops = { + .owner = THIS_MODULE, + .read = goodix_tool_read, + .write = goodix_tool_write, +}; + +static struct class *ft_class; +#define CLASS_NAME "touchscreen" +static ssize_t goodix_sys_tool_write(struct class *class, struct class_attribute *attr, const char *buf, size_t len); +static ssize_t goodix_sys_tool_read(struct class *class, struct class_attribute *attr, char *buf); + +static CLASS_ATTR(gmnode, 0664, goodix_sys_tool_read, goodix_sys_tool_write); + + + +static s32 (*tool_i2c_read)(u8 *, u16); +static s32 (*tool_i2c_write)(u8 *, u16); + +#if GTP_ESD_PROTECT +extern void gtp_esd_switch(struct i2c_client *, s32); +#endif +s32 DATA_LENGTH = 0; +s8 IC_TYPE[16] = "GT9XX"; + +static void tool_set_proc_name(char *procname) +{ + char *months[12] = {"Jan", "Feb", "Mar", "Apr", "May", + "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; + char date[20] = {0}; + char month[4] = {0}; + int i = 0, n_month = 1, n_day = 0, n_year = 0; + + + + GTP_DEBUG("compile date: %s", date); + + sscanf(date, "%s %d %d", month, &n_day, &n_year); + + for (i = 0; i < 12; ++i) { + if (!memcmp(months[i], month, 3)) { + n_month = i+1; + break; + } + } + + sprintf(procname, "gmnode%04d%02d%02d", n_year, n_month, n_day); + + +} + + +static s32 tool_i2c_read_no_extra(u8 *buf, u16 len) +{ + s32 ret = -1; + s32 i = 0; + struct i2c_msg msgs[2]; + + msgs[0].flags = !I2C_M_RD; + msgs[0].addr = gt_client->addr; + msgs[0].len = cmd_head.addr_len; + msgs[0].buf = &buf[0]; + + msgs[1].flags = I2C_M_RD; + msgs[1].addr = gt_client->addr; + msgs[1].len = len; + msgs[1].buf = &buf[GTP_ADDR_LENGTH]; + + for (i = 0; i < cmd_head.retry; i++) { + ret = i2c_transfer(gt_client->adapter, msgs, 2); + if (ret > 0) { + break; + } + } + return ret; +} + +static s32 tool_i2c_write_no_extra(u8 *buf, u16 len) +{ + s32 ret = -1; + s32 i = 0; + struct i2c_msg msg; + + msg.flags = !I2C_M_RD; + msg.addr = gt_client->addr; + msg.len = len; + msg.buf = buf; + + for (i = 0; i < cmd_head.retry; i++) { + ret = i2c_transfer(gt_client->adapter, &msg, 1); + if (ret > 0) { + break; + } + } + return ret; +} + +static s32 tool_i2c_read_with_extra(u8 *buf, u16 len) +{ + s32 ret = -1; + u8 pre[2] = {0x0f, 0xff}; + u8 end[2] = {0x80, 0x00}; + + tool_i2c_write_no_extra(pre, 2); + ret = tool_i2c_read_no_extra(buf, len); + tool_i2c_write_no_extra(end, 2); + + return ret; +} + +static s32 tool_i2c_write_with_extra(u8 *buf, u16 len) +{ + s32 ret = -1; + u8 pre[2] = {0x0f, 0xff}; + u8 end[2] = {0x80, 0x00}; + + tool_i2c_write_no_extra(pre, 2); + ret = tool_i2c_write_no_extra(buf, len); + tool_i2c_write_no_extra(end, 2); + + return ret; +} + +static void register_i2c_func(void) +{ + + + + + if (strncmp(IC_TYPE, "GT8110", 6) && strncmp(IC_TYPE, "GT8105", 6) + && strncmp(IC_TYPE, "GT801", 5) && strncmp(IC_TYPE, "GT800", 5) + && strncmp(IC_TYPE, "GT801PLUS", 9) && strncmp(IC_TYPE, "GT811", 5) + && strncmp(IC_TYPE, "GTxxx", 5) && strncmp(IC_TYPE, "GT9XX", 5)) { + tool_i2c_read = tool_i2c_read_with_extra; + tool_i2c_write = tool_i2c_write_with_extra; + GTP_DEBUG("I2C function: with pre and end cmd!"); + } else { + tool_i2c_read = tool_i2c_read_no_extra; + tool_i2c_write = tool_i2c_write_no_extra; + GTP_INFO("I2C function: without pre and end cmd!"); + } +} + +static void unregister_i2c_func(void) +{ + tool_i2c_read = NULL; + tool_i2c_write = NULL; + GTP_INFO("I2C function: unregister i2c transfer function!"); +} + +s32 init_wr_node(struct i2c_client *client) +{ + s32 i; + s32 err; + + gt_client = client; + memset(&cmd_head, 0, sizeof(cmd_head)); + cmd_head.data = NULL; + + i = 5; + while ((!cmd_head.data) && i) { + cmd_head.data = kzalloc(i * DATA_LENGTH_UINT, GFP_KERNEL); + if (NULL != cmd_head.data) { + break; + } + i--; + } + if (i) { + DATA_LENGTH = i * DATA_LENGTH_UINT + GTP_ADDR_LENGTH; + GTP_INFO("Applied memory size:%d.", DATA_LENGTH); + } else { + GTP_ERROR("Apply for memory failed."); + return FAIL; + } + + cmd_head.addr_len = 2; + cmd_head.retry = 5; + + register_i2c_func(); + + tool_set_proc_name(procname); + goodix_proc_entry = proc_create(procname, 0666, NULL, &tool_ops); + if (goodix_proc_entry == NULL) { + GTP_ERROR("Couldn't create proc entry!"); + return FAIL; + } else { + GTP_INFO("Create proc entry success!"); + } + + ft_class = class_create(THIS_MODULE, CLASS_NAME); + if (IS_ERR(ft_class)) { + GTP_ERROR("Failed to create class.\n"); + return FAIL; + } + err = class_create_file(ft_class, &class_attr_gmnode); + if (err) { + GTP_ERROR("Failed to create class file.\n"); + } + return SUCCESS; +} + +void uninit_wr_node(void) +{ + kfree(cmd_head.data); + cmd_head.data = NULL; + unregister_i2c_func(); + remove_proc_entry(procname, NULL); +} + +static u8 relation(u8 src, u8 dst, u8 rlt) +{ + u8 ret = 0; + + switch (rlt) { + case 0: + ret = (src != dst) ? true : false; + break; + + case 1: + ret = (src == dst) ? true : false; + GTP_DEBUG("equal:src:0x%02x dst:0x%02x ret:%d.", src, dst, (s32)ret); + break; + + case 2: + ret = (src > dst) ? true : false; + break; + + case 3: + ret = (src < dst) ? true : false; + break; + + case 4: + ret = (src & dst) ? true : false; + break; + + case 5: + ret = (!(src | dst)) ? true : false; + break; + + default: + ret = false; + break; + } + + return ret; +} + +/******************************************************* +Function: + Comfirm function. +Input: + None. +Output: + Return write length. +********************************************************/ +static u8 comfirm(void) +{ + s32 i = 0; + u8 buf[32]; + + memcpy(buf, cmd_head.flag_addr, cmd_head.addr_len); + + for (i = 0; i < cmd_head.times; i++) { + if (tool_i2c_read(buf, 1) <= 0) { + GTP_ERROR("Read flag data failed!"); + return FAIL; + } + if (true == relation(buf[GTP_ADDR_LENGTH], cmd_head.flag_val, cmd_head.flag_relation)) { + GTP_DEBUG("value at flag addr:0x%02x.", buf[GTP_ADDR_LENGTH]); + GTP_DEBUG("flag value:0x%02x.", cmd_head.flag_val); + break; + } + + msleep(cmd_head.circle); + } + + if (i >= cmd_head.times) { + GTP_ERROR("Didn't get the flag to continue!"); + return FAIL; + } + + return SUCCESS; +} + +static ssize_t goodix_sys_tool_write(struct class *class, struct class_attribute *attr, const char *buf, size_t len) +{ + + GTP_DEBUG_FUNC(); + GTP_DEBUG_ARRAY((u8 *)buf, len); + + memcpy(&cmd_head, buf, CMD_HEAD_LENGTH); + + GTP_DEBUG("[Operation]wr: %02X", cmd_head.wr); + GTP_DEBUG("[Flag]flag: %02X, addr: %02X%02X, value: %02X, relation: %02X", cmd_head.flag, cmd_head.flag_addr[0], + cmd_head.flag_addr[1], cmd_head.flag_val, cmd_head.flag_relation); + GTP_DEBUG("[Retry]circle: %d, times: %d, retry: %d, delay: %d", (s32)cmd_head.circle, (s32)cmd_head.times, + (s32)cmd_head.retry, (s32)cmd_head.delay); + GTP_DEBUG("[Data]data len: %d, addr len: %d, addr: %02X%02X, buffer len: %d, data[0]: %02X", (s32)cmd_head.data_len, + (s32)cmd_head.addr_len, cmd_head.addr[0], cmd_head.addr[1], (s32)len, buf[CMD_HEAD_LENGTH]); + + if (1 == cmd_head.wr) { + memcpy(&cmd_head.data[GTP_ADDR_LENGTH], &buf[CMD_HEAD_LENGTH], cmd_head.data_len); + memcpy(&cmd_head.data[GTP_ADDR_LENGTH - cmd_head.addr_len], cmd_head.addr, cmd_head.addr_len); + + GTP_DEBUG_ARRAY(cmd_head.data, cmd_head.data_len + cmd_head.addr_len); + GTP_DEBUG_ARRAY((u8 *)&buf[CMD_HEAD_LENGTH], cmd_head.data_len); + + if (1 == cmd_head.flag) { + if (FAIL == comfirm()) { + GTP_ERROR("[WRITE]Comfirm fail!"); + return -EPERM; + } + } else if (2 == cmd_head.flag) { + + } + if (tool_i2c_write(&cmd_head.data[GTP_ADDR_LENGTH - cmd_head.addr_len], + cmd_head.data_len + cmd_head.addr_len) <= 0) { + GTP_ERROR("[WRITE]Write data failed!"); + return -EPERM; + } + + GTP_DEBUG_ARRAY(&cmd_head.data[GTP_ADDR_LENGTH - cmd_head.addr_len], cmd_head.data_len + cmd_head.addr_len); + if (cmd_head.delay) { + msleep(cmd_head.delay); + } + } else if (3 == cmd_head.wr) { + memcpy(&cmd_head.data[0], &buf[CMD_HEAD_LENGTH], cmd_head.data_len); + + memcpy(IC_TYPE, cmd_head.data, cmd_head.data_len); + + register_i2c_func(); + } else if (5 == cmd_head.wr) { + + } else if (7 == cmd_head.wr) { + gtp_irq_disable(i2c_get_clientdata(gt_client)); + + #if GTP_ESD_PROTECT + gtp_esd_switch(gt_client, SWITCH_OFF); + #endif + } else if (9 == cmd_head.wr) { + gtp_irq_enable(i2c_get_clientdata(gt_client)); + + #if GTP_ESD_PROTECT + gtp_esd_switch(gt_client, SWITCH_ON); + #endif + } else if (17 == cmd_head.wr) { + struct goodix_ts_data *ts = i2c_get_clientdata(gt_client); + memcpy(&cmd_head.data[GTP_ADDR_LENGTH], &buf[CMD_HEAD_LENGTH], cmd_head.data_len); + + if (cmd_head.data[GTP_ADDR_LENGTH]) { + GTP_INFO("gtp enter rawdiff."); + ts->gtp_rawdiff_mode = true; + } else { + ts->gtp_rawdiff_mode = false; + GTP_INFO("gtp leave rawdiff."); + } + } +#ifdef UPDATE_FUNCTIONS + else if (11 == cmd_head.wr) { + if (FAIL == gup_enter_update_mode(gt_client)) { + return -EPERM; + } + } else if (13 == cmd_head.wr) { + gup_leave_update_mode(); + } else if (15 == cmd_head.wr) { + show_len = 0; + total_len = 0; + memset(cmd_head.data, 0, cmd_head.data_len + 1); + memcpy(cmd_head.data, &buf[CMD_HEAD_LENGTH], cmd_head.data_len); + + if (FAIL == gup_update_proc((void *)cmd_head.data)) { + return -EPERM; + } + } + +#endif + + return len; +} +/******************************************************* +Function: + Goodix tool write function. +Input: + standard proc write function param. +Output: + Return write length. +********************************************************/ + +ssize_t goodix_tool_write(struct file *filp, const char __user *buff, size_t len, loff_t *off) +{ + s32 ret = 0; + + GTP_DEBUG_FUNC(); + GTP_DEBUG_ARRAY((u8 *)buff, len); + + ret = copy_from_user(&cmd_head, buff, CMD_HEAD_LENGTH); + if (ret) { + GTP_ERROR("copy_from_user failed."); + return -EPERM; + } + + + GTP_DEBUG("[Operation]wr: %02X", cmd_head.wr); + GTP_DEBUG("[Flag]flag: %02X, addr: %02X%02X, value: %02X, relation: %02X", cmd_head.flag, cmd_head.flag_addr[0], + cmd_head.flag_addr[1], cmd_head.flag_val, cmd_head.flag_relation); + GTP_DEBUG("[Retry]circle: %d, times: %d, retry: %d, delay: %d", (s32)cmd_head.circle, (s32)cmd_head.times, + (s32)cmd_head.retry, (s32)cmd_head.delay); + GTP_DEBUG("[Data]data len: %d, addr len: %d, addr: %02X%02X, buffer len: %d, data[0]: %02X", (s32)cmd_head.data_len, + (s32)cmd_head.addr_len, cmd_head.addr[0], cmd_head.addr[1], (s32)len, buff[CMD_HEAD_LENGTH]); + + if (1 == cmd_head.wr) { + ret = copy_from_user(&cmd_head.data[GTP_ADDR_LENGTH], &buff[CMD_HEAD_LENGTH], cmd_head.data_len); + if (ret) { + GTP_ERROR("copy_from_user failed."); + return -EPERM; + } + memcpy(&cmd_head.data[GTP_ADDR_LENGTH - cmd_head.addr_len], cmd_head.addr, cmd_head.addr_len); + + GTP_DEBUG_ARRAY(cmd_head.data, cmd_head.data_len + cmd_head.addr_len); + GTP_DEBUG_ARRAY((u8 *)&buff[CMD_HEAD_LENGTH], cmd_head.data_len); + + if (1 == cmd_head.flag) { + if (FAIL == comfirm()) { + GTP_ERROR("[WRITE]Comfirm fail!"); + return -EPERM; + } + } else if (2 == cmd_head.flag) { + + } + if (tool_i2c_write(&cmd_head.data[GTP_ADDR_LENGTH - cmd_head.addr_len], + cmd_head.data_len + cmd_head.addr_len) <= 0) { + GTP_ERROR("[WRITE]Write data failed!"); + return -EPERM; + } + + GTP_DEBUG_ARRAY(&cmd_head.data[GTP_ADDR_LENGTH - cmd_head.addr_len], cmd_head.data_len + cmd_head.addr_len); + if (cmd_head.delay) { + msleep(cmd_head.delay); + } + } else if (3 == cmd_head.wr) { + ret = copy_from_user(&cmd_head.data[0], &buff[CMD_HEAD_LENGTH], cmd_head.data_len); + if (ret) { + GTP_ERROR("copy_from_user failed."); + return -EPERM; + } + memcpy(IC_TYPE, cmd_head.data, cmd_head.data_len); + + register_i2c_func(); + } else if (5 == cmd_head.wr) { + + } else if (7 == cmd_head.wr) { + gtp_irq_disable(i2c_get_clientdata(gt_client)); + + #if GTP_ESD_PROTECT + gtp_esd_switch(gt_client, SWITCH_OFF); + #endif + } else if (9 == cmd_head.wr) { + gtp_irq_enable(i2c_get_clientdata(gt_client)); + + #if GTP_ESD_PROTECT + gtp_esd_switch(gt_client, SWITCH_ON); + #endif + } else if (17 == cmd_head.wr) { + struct goodix_ts_data *ts = i2c_get_clientdata(gt_client); + ret = copy_from_user(&cmd_head.data[GTP_ADDR_LENGTH], &buff[CMD_HEAD_LENGTH], cmd_head.data_len); + if (ret) { + GTP_DEBUG("copy_from_user failed."); + return -EPERM; + } + if (cmd_head.data[GTP_ADDR_LENGTH]) { + GTP_INFO("gtp enter rawdiff."); + ts->gtp_rawdiff_mode = true; + } else { + ts->gtp_rawdiff_mode = false; + GTP_INFO("gtp leave rawdiff."); + } + } +#ifdef UPDATE_FUNCTIONS + else if (11 == cmd_head.wr) { + if (FAIL == gup_enter_update_mode(gt_client)) { + return -EPERM; + } + } else if (13 == cmd_head.wr) { + gup_leave_update_mode(); + } else if (15 == cmd_head.wr) { + show_len = 0; + total_len = 0; + memset(cmd_head.data, 0, cmd_head.data_len + 1); + memcpy(cmd_head.data, &buff[CMD_HEAD_LENGTH], cmd_head.data_len); + + if (FAIL == gup_update_proc((void *)cmd_head.data)) { + return -EPERM; + } + } + +#endif + + return len; +} +static ssize_t goodix_sys_tool_read(struct class *class, struct class_attribute *attr, char *buf) +{ + s32 ret = 0; + + GTP_DEBUG_FUNC(); + + if (cmd_head.wr % 2) { + return -EPERM; + } else if (!cmd_head.wr) { + u16 len = 0; + s16 data_len = 0; + u16 loc = 0; + + if (1 == cmd_head.flag) { + if (FAIL == comfirm()) { + GTP_ERROR("[READ]Comfirm fail!"); + return -EPERM; + } + } else if (2 == cmd_head.flag) { + + } + + memcpy(cmd_head.data, cmd_head.addr, cmd_head.addr_len); + + GTP_DEBUG("[CMD HEAD DATA] ADDR:0x%02x%02x.", cmd_head.data[0], cmd_head.data[1]); + GTP_DEBUG("[CMD HEAD ADDR] ADDR:0x%02x%02x.", cmd_head.addr[0], cmd_head.addr[1]); + + if (cmd_head.delay) { + msleep(cmd_head.delay); + } + + data_len = cmd_head.data_len; + + while (data_len > 0) { + if (data_len > DATA_LENGTH) { + len = DATA_LENGTH; + } else { + len = data_len; + } + data_len -= len; + + if (tool_i2c_read(cmd_head.data, len) <= 0) { + GTP_ERROR("[READ]Read data failed!"); + return -EPERM; + } + + memcpy(&buf[loc], &cmd_head.data[GTP_ADDR_LENGTH], len); + /*ret = simple_read_from_buffer(&page[loc], size, ppos, &cmd_head.data[GTP_ADDR_LENGTH], len); + if (ret < 0) { + return ret; + }*/ + loc += len; + + GTP_DEBUG_ARRAY(&cmd_head.data[GTP_ADDR_LENGTH], len); + GTP_DEBUG_ARRAY(buf, len); + } + return cmd_head.data_len; + } else if (2 == cmd_head.wr) { + memcpy(buf, IC_TYPE, sizeof(IC_TYPE)); + + return ret; + } else if (4 == cmd_head.wr) { + u8 progress_buf[4]; + progress_buf[0] = show_len >> 8; + progress_buf[1] = show_len & 0xff; + progress_buf[2] = total_len >> 8; + progress_buf[3] = total_len & 0xff; + memcpy(buf, progress_buf, 4); + + return ret; + } else if (6 == cmd_head.wr) { + + } else if (8 == cmd_head.wr) { + memcpy(buf, GTP_DRIVER_VERSION, strlen(GTP_DRIVER_VERSION)); + + return ret; + } + return -EPERM; +} +/******************************************************* +Function: + Goodix tool read function. +Input: + standard proc read function param. +Output: + Return read length. +********************************************************/ +ssize_t goodix_tool_read(struct file *file, char __user *page, size_t size, loff_t *ppos) +{ + s32 ret = 0; + + GTP_DEBUG_FUNC(); + + if (*ppos) { + + + + *ppos = 0; + return 0; + } + + if (cmd_head.wr % 2) { + return -EPERM; + } else if (!cmd_head.wr) { + u16 len = 0; + s16 data_len = 0; + u16 loc = 0; + + if (1 == cmd_head.flag) { + if (FAIL == comfirm()) { + GTP_ERROR("[READ]Comfirm fail!"); + return -EPERM; + } + } else if (2 == cmd_head.flag) { + + } + + memcpy(cmd_head.data, cmd_head.addr, cmd_head.addr_len); + + GTP_DEBUG("[CMD HEAD DATA] ADDR:0x%02x%02x.", cmd_head.data[0], cmd_head.data[1]); + GTP_DEBUG("[CMD HEAD ADDR] ADDR:0x%02x%02x.", cmd_head.addr[0], cmd_head.addr[1]); + + if (cmd_head.delay) { + msleep(cmd_head.delay); + } + + data_len = cmd_head.data_len; + + while (data_len > 0) { + if (data_len > DATA_LENGTH) { + len = DATA_LENGTH; + } else { + len = data_len; + } + data_len -= len; + + if (tool_i2c_read(cmd_head.data, len) <= 0) { + GTP_ERROR("[READ]Read data failed!"); + return -EPERM; + } + + + ret = simple_read_from_buffer(&page[loc], size, ppos, &cmd_head.data[GTP_ADDR_LENGTH], len); + if (ret < 0) { + return ret; + } + loc += len; + + GTP_DEBUG_ARRAY(&cmd_head.data[GTP_ADDR_LENGTH], len); + GTP_DEBUG_ARRAY(page, len); + } + return cmd_head.data_len; + } else if (2 == cmd_head.wr) { + ret = simple_read_from_buffer(page, size, ppos, IC_TYPE, sizeof(IC_TYPE)); + return ret; + } else if (4 == cmd_head.wr) { + u8 progress_buf[4]; + progress_buf[0] = show_len >> 8; + progress_buf[1] = show_len & 0xff; + progress_buf[2] = total_len >> 8; + progress_buf[3] = total_len & 0xff; + + ret = simple_read_from_buffer(page, size, ppos, progress_buf, 4); + return ret; + } else if (6 == cmd_head.wr) { + + } else if (8 == cmd_head.wr) { + ret = simple_read_from_buffer(page, size, ppos, GTP_DRIVER_VERSION, strlen(GTP_DRIVER_VERSION)); + return ret; + } + return -EPERM; +} diff --git a/drivers/input/touchscreen/GT915L/gt9xx.c b/drivers/input/touchscreen/GT915L/gt9xx.c new file mode 100644 index 0000000000000..4ec4d44338286 --- /dev/null +++ b/drivers/input/touchscreen/GT915L/gt9xx.c @@ -0,0 +1,3495 @@ +/* + * Goodix GT9xx touchscreen driver + * + * Copyright (C) 2010 - 2014 Goodix. Ltd. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be a reference + * to you, when you are integrating the GOODiX's CTP IC into your system, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * Version: 2.4 + * Release Date: 2014/11/28 + */ + +#include +#include "gt9xx.h" + +#if GTP_ICS_SLOT_REPORT + #include +#endif + +#if WT_ADD_CTP_INFO +#include +static char tp_string_version[40]; +static int tp_sensor_id = -1; +static u8 cfg_version; + +/*TP Color*/ +#define TP_White 0x31 +#define TP_Black 0x32 +#define TP_Golden 0x38 +#define GTP_LOCKDOWN_SIZE 8 +#define GTP_READ_LOCKDOWN_INFO_ADDR 0xC8A4 +static u8 lockdown_info[GTP_LOCKDOWN_SIZE]; +static u8 TP_Maker,LCD_Maker,Panel_Ink; +extern u8 tp_color; +static u16 IC_Version; +static int gtp_read_lockdown_info(void); +int gtp_hardwareinfo_set(void); +#endif + +static const char *goodix_ts_name = "goodix-ts"; +static const char *goodix_input_phys = "input/ts"; +static struct workqueue_struct *goodix_wq; +struct i2c_client * i2c_connect_client = NULL; +/* +int gtp_rst_gpio; +int gtp_int_gpio; +*/ +unsigned int gtp_rst_gpio; +unsigned int gtp_int_gpio; + +int gtp_ics_slot_report=0;/*use to choose report mode A or B, 0 for A and 1 for B */ + + +u8 config[GTP_CONFIG_MAX_LENGTH + GTP_ADDR_LENGTH] + = {GTP_REG_CONFIG_DATA >> 8, GTP_REG_CONFIG_DATA & 0xff}; + + +#ifdef GTP_GLOVE_MODE +u8 gtp_glove_config[GTP_CONFIG_MAX_LENGTH + GTP_ADDR_LENGTH] + = {GTP_REG_CONFIG_DATA >> 8, GTP_REG_CONFIG_DATA & 0xff}; +#endif + + +#if GTP_HAVE_TOUCH_KEY + static const u16 touch_key_array[] = GTP_KEY_TAB; +#define GTP_MAX_KEY_NUM (sizeof(touch_key_array)/sizeof(touch_key_array[0])) +#define GTP_KEY_MAP_ARRAY {{175, 1500}, {387, 1500}, {582, 1500}} +struct touch_virtual_key_map_t { + int point_x; + int point_y; +}; +static struct touch_virtual_key_map_t touch_key_point_maping_array[] = GTP_KEY_MAP_ARRAY; + +#if GTP_DEBUG_ON + static const int key_codes[] = {KEY_HOME, KEY_BACK, KEY_MENU, KEY_SEARCH}; + static const char *key_names[] = {"Key_Home", "Key_Back", "Key_Menu", "Key_Search"}; +#endif + +#endif + +#ifdef PMX_DRIVER_GT915L +#define PINCTRL_STATE_ACTIVE "pmx_ts_active" +#define PINCTRL_STATE_SUSPEND "pmx_ts_suspend" +#define PINCTRL_STATE_RELEASE "pmx_ts_release" +static int goodix_ts_pinctrl_init(struct goodix_ts_data *goodix_data); +static int goodix_ts_pinctrl_select(struct goodix_ts_data *goodix_data, bool on); +#endif + +static s8 gtp_i2c_test(struct i2c_client *client); +void gtp_reset_guitar(struct i2c_client *client, s32 ms); +s32 gtp_send_cfg(struct i2c_client *client); +void gtp_int_sync(s32 ms); + +static ssize_t gt91xx_config_read_proc(struct file *, char __user *, size_t, loff_t *); +static ssize_t gt91xx_config_write_proc(struct file *, const char __user *, size_t, loff_t *); + +static struct proc_dir_entry *gt91xx_config_proc = NULL; +static const struct file_operations config_proc_ops = { + .owner = THIS_MODULE, + .read = gt91xx_config_read_proc, + .write = gt91xx_config_write_proc, +}; +static int gtp_register_powermanger(struct goodix_ts_data *ts); +static int gtp_unregister_powermanger(struct goodix_ts_data *ts); + +#if GTP_CREATE_WR_NODE +extern s32 init_wr_node(struct i2c_client*); +extern void uninit_wr_node(void); +#endif + +#if GTP_AUTO_UPDATE +extern u8 gup_init_update_proc(struct goodix_ts_data *); +#endif + +#if GTP_ESD_PROTECT +static struct delayed_work gtp_esd_check_work; +static struct workqueue_struct * gtp_esd_check_workqueue = NULL; +static void gtp_esd_check_func(struct work_struct *); +static s32 gtp_init_ext_watchdog(struct i2c_client *client); +void gtp_esd_switch(struct i2c_client *, s32); +#endif + +#if GTP_COMPATIBLE_MODE +extern s32 i2c_read_bytes(struct i2c_client *client, u16 addr, u8 *buf, s32 len); +extern s32 i2c_write_bytes(struct i2c_client *client, u16 addr, u8 *buf, s32 len); +extern s32 gup_clk_calibration(void); +extern s32 gup_fw_download_proc(void *dir, u8 dwn_mode); +extern u8 gup_check_fs_mounted(char *path_name); + +void gtp_recovery_reset(struct i2c_client *client); +static s32 gtp_esd_recovery(struct i2c_client *client); +s32 gtp_fw_startup(struct i2c_client *client); +static s32 gtp_main_clk_proc(struct goodix_ts_data *ts); +static s32 gtp_bak_ref_proc(struct goodix_ts_data *ts, u8 mode); + +#endif + +#if GTP_GESTURE_WAKEUP +typedef enum { + DOZE_DISABLED = 0, + DOZE_ENABLED = 1, + DOZE_WAKEUP = 2, +}DOZE_T; +static DOZE_T doze_status = DOZE_DISABLED; +static s8 gtp_enter_doze(struct goodix_ts_data *ts); +#endif + +#ifdef GTP_CONFIG_OF +int gtp_parse_dt_cfg(struct device *dev, u8 *cfg, int *cfg_len, u8 sid); +#endif + + +#if GTP_GLOVE_MODE +char gtp_glove_onoff = '0'; +static char gtp_glove_support_flag_changed = 0; +static const char gtp_glove_support_flag = GTP_GLOVE_SUPPORT_ONOFF; +s32 gtp_send_glove_cfg(struct i2c_client *client); + +static ssize_t proc_glove_onoff_read(struct file *file, char __user *page, size_t count, loff_t *ppos) +{ + int num; + if (*ppos) + return 0; + if (0 == gtp_glove_support_flag_changed) + num = sprintf(page, "%c\n", gtp_glove_support_flag); + else + num = sprintf(page, "%c\n", gtp_glove_onoff); + *ppos += num; + return num; +} + +static ssize_t proc_glove_onoff_write(struct file *file, const char __user *buffer, size_t count, loff_t *ppos) +{ + sscanf(buffer,"%c",>p_glove_onoff); + gtp_glove_support_flag_changed=1; + + if ('1' == gtp_glove_onoff) { + u8 cfg_group[] = CTP_CFG_GROUP1_GLOVE; + gtp_reset_guitar(i2c_connect_client, 50); + msleep(100); + memcpy(>p_glove_config[GTP_ADDR_LENGTH], cfg_group, GTP_CONFIG_MAX_LENGTH); + gtp_send_glove_cfg(i2c_connect_client); + } else if ('0' == gtp_glove_onoff) { + gtp_reset_guitar(i2c_connect_client, 50); + msleep(100); + gtp_send_cfg(i2c_connect_client); + } + return count; +} + +static const struct file_operations gt_glove_onoff_proc_fops = { + .write = proc_glove_onoff_write, + .read = proc_glove_onoff_read, + .open = simple_open, + .owner = THIS_MODULE, +}; + +#endif + +#if GTP_GESTURE_WAKEUP +char gtp_gesture_coordinate[60] = {0X8140 >> 8, 0X8140 & 0xFF}; +char gtp_gesture_value = 0; +char gtp_gesture_onoff = '0'; +const char gtp_gesture_type[] = GTP_GESTURE_TPYE_STR; +static const char gtp_gesture_support_flag = GTP_GESTURE_SUPPORT_ONOFF; +static const char gtp_verson[] = GTP_PROC_DRIVER_VERSION; +static char gtp_gesture_support_flag_changed = 0; +struct i2c_client *i2c_client_point = NULL; + + +static ssize_t proc_gesture_data_read(struct file *file, char __user *buffer, size_t count, loff_t *ppos) +{ + int num = 0; + if (*ppos) + return 0; + printk("proc_gesture_data_read=%d\n", gtp_gesture_value); + num = sprintf(buffer, "%c\n", gtp_gesture_value); + *ppos += num; + return num; +} + +static ssize_t proc_gesture_data_write(struct file *file, const char __user *buffer, size_t count, loff_t *ppos) +{ + sscanf(buffer, "%c", >p_gesture_value); + return count; +} + +static ssize_t proc_gesture_type_read(struct file *file, char __user *buffer, size_t count, loff_t *ppos) +{ + int num; + if (*ppos) { + printk("%s\n",__func__); + return 0; + } + num = sprintf(buffer, "%s\n", gtp_gesture_type); + *ppos += num; + return num; +} + +static ssize_t proc_gesture_type_write(struct file *file, const char __user *buffer, size_t count, loff_t *ppos) +{ + return -1; +} + +static ssize_t proc_gesture_onoff_read(struct file *file, char __user *page, size_t count, loff_t *ppos) +{ + int num; + if (*ppos) + return 0; + if (0 == gtp_gesture_support_flag_changed) + num = sprintf(page, "%c\n", gtp_gesture_support_flag); + else + num = sprintf(page, "%c\n", gtp_gesture_onoff); + *ppos += num; + return num; +} + +static ssize_t proc_gesture_onoff_write(struct file *file, const char __user *buffer, size_t count, loff_t *ppos) +{ + sscanf(buffer, "%c", >p_gesture_onoff); + gtp_gesture_support_flag_changed = 1; + printk("in proc_gesture_onoff_write %c \n", gtp_gesture_onoff); + return count; +} + +static ssize_t proc_version_read(struct file *file, char __user *page, size_t count, loff_t *ppos) +{ + int num; + if (*ppos) + return 0; + num = sprintf(page, "%s\n", gtp_verson); + *ppos += num; + return num; +} + +static ssize_t proc_version_write(struct file *file, const char __user *buffer, size_t count, loff_t *ppos) +{ + return count; +} + +static ssize_t proc_gesture_coordinate_read(struct file *file, char __user *page, size_t count, loff_t *ppos) +{ + if (*ppos) + return 0; + memcpy(page, gtp_gesture_coordinate, 60); + printk("GTP gtp_ges 0x%02x\n", gtp_gesture_coordinate[13]); + memset(gtp_gesture_coordinate, 0, 60); + *ppos += 60; + return 60; +} + +static ssize_t proc_gesture_coordinate_write(struct file *file, const char __user *buffer, size_t count, loff_t *ppos) +{ + return count; +} + +static const struct file_operations gt_gesture_var_proc_fops = { + .write = proc_gesture_data_write, + .read = proc_gesture_data_read, + .open = simple_open, + .owner = THIS_MODULE, +}; + +static const struct file_operations gt_gesture_type_proc_fops = { + .write = proc_gesture_type_write, + .read = proc_gesture_type_read, + .open = simple_open, + .owner = THIS_MODULE, +}; + +static const struct file_operations gt_gesture_onoff_proc_fops = { + .write = proc_gesture_onoff_write, + .read = proc_gesture_onoff_read, + .open = simple_open, + .owner = THIS_MODULE, +}; + +static const struct file_operations gt_version_proc_fops = { + .write = proc_version_write, + .read = proc_version_read, + .open = simple_open, + .owner = THIS_MODULE, +}; + +static const struct file_operations gt_coordinate_proc_fops = { + .write = proc_gesture_coordinate_write, + .read = proc_gesture_coordinate_read, + .open = simple_open, + .owner = THIS_MODULE, +}; + + +void Ctp_Gesture_Fucntion_Proc_File(void) +{ + struct proc_dir_entry *ctp_device_proc = NULL; + struct proc_dir_entry *ctp_gesture_wakup_proc = NULL; + struct proc_dir_entry *ctp_gesture_var_proc = NULL; + struct proc_dir_entry *ctp_gesture_type_proc = NULL; + struct proc_dir_entry *ctp_gesture_onoff_proc = NULL; + struct proc_dir_entry *ctp_glove_onoff_proc = NULL; + struct proc_dir_entry *ctp_version_proc = NULL; + struct proc_dir_entry *ctp_coordinate_proc = NULL; +#define CTP_GESTURE_FUNCTION_AUTHORITY_PROC 0777 + + ctp_device_proc = proc_mkdir("touchscreen_feature", NULL); + ctp_gesture_wakup_proc = proc_mkdir("gesture", NULL); + + ctp_gesture_var_proc = proc_create("data", 0444, ctp_gesture_wakup_proc, >_gesture_var_proc_fops); + if (ctp_gesture_var_proc == NULL) { + GTP_ERROR("ctp_gesture_var_proc create failed\n"); + } + + ctp_gesture_type_proc = proc_create("gesture_type", 0444, ctp_device_proc, >_gesture_type_proc_fops); + if (ctp_gesture_type_proc == NULL) { + GTP_ERROR("ctp_gesture_type_proc create failed\n"); + } + + ctp_gesture_onoff_proc = proc_create("onoff", 0666, ctp_gesture_wakup_proc, >_gesture_onoff_proc_fops); + if (ctp_gesture_onoff_proc == NULL) { + GTP_ERROR("ctp_gesture_onoff_proc create failed\n"); + } + +#if GTP_GLOVE_MODE + ctp_glove_onoff_proc = proc_create("glove_onoff", 0666, ctp_device_proc, >_glove_onoff_proc_fops); + if (ctp_glove_onoff_proc == NULL) { + GTP_ERROR("ctp_gesture_onoff_proc create failed\n"); + } +#endif + + ctp_version_proc = proc_create("version", 0444, ctp_device_proc, >_version_proc_fops); + if (ctp_version_proc == NULL) { + GTP_ERROR("create_proc_entry version failed\n"); + } + + ctp_coordinate_proc = proc_create("gesture_coordinate", 0777, ctp_device_proc, >_coordinate_proc_fops); + if (ctp_coordinate_proc == NULL) { + GTP_ERROR("create_proc_entry version failed\n"); + } + +} + +#endif + + + + +#ifdef CONFIG_TOUCHSCREEN_LOCKDOWN_INFO +static ssize_t ctp_lockdown_proc_read(struct file *file, char __user *buf,size_t count, loff_t *ppos) +{ + char *ptr = buf; + + if (*ppos) { + GTP_INFO("tp test again return\n"); + return 0; + } + *ppos += count; + + return sprintf(ptr, "%02X%02X%02X%02X%02X%02X%02X%02X\n", + lockdown_info[0], lockdown_info[1], lockdown_info[2], lockdown_info[3], + lockdown_info[4], lockdown_info[5], lockdown_info[6], lockdown_info[7]); +} +static ssize_t ctp_lockdown_proc_write(struct file *filp, const char __user *userbuf, size_t count, loff_t *ppos) +{ + return -1; +} + +static const struct file_operations ctp_lockdown_procs_fops = +{ + .write = ctp_lockdown_proc_write, + .read = ctp_lockdown_proc_read, + .owner = THIS_MODULE, +}; + +void ctp_lockdown_fucntion_proc_file(void) +{ + struct proc_dir_entry *ctp_device_proc = NULL; + struct proc_dir_entry *ctp_lockdown_proc = NULL; + + ctp_device_proc = proc_mkdir("touchscreen", NULL); + + ctp_lockdown_proc = proc_create("lockdown_info", 0666, ctp_device_proc, &ctp_lockdown_procs_fops); + if (ctp_lockdown_proc == NULL) { + GTP_ERROR("create_proc_entry lockdown failed\n"); + } +} +#endif + +/******************************************************* +Function: + Read data from the i2c slave device. +Input: + client: i2c device. + buf[0~1]: read start address. + buf[2~len-1]: read data buffer. + len: GTP_ADDR_LENGTH + read bytes count +Output: + numbers of i2c_msgs to transfer: + 2: succeed, otherwise: failed +*********************************************************/ +s32 gtp_i2c_read(struct i2c_client *client, u8 *buf, s32 len) +{ + struct i2c_msg msgs[2]; + s32 ret = -1; + s32 retries = 0; + + GTP_DEBUG_FUNC(); + + msgs[0].flags = !I2C_M_RD; + msgs[0].addr = client->addr; + msgs[0].len = GTP_ADDR_LENGTH; + msgs[0].buf = &buf[0]; + + msgs[1].flags = I2C_M_RD; + msgs[1].addr = client->addr; + msgs[1].len = len - GTP_ADDR_LENGTH; + msgs[1].buf = &buf[GTP_ADDR_LENGTH]; + + while (retries < 5) { + ret = i2c_transfer(client->adapter, msgs, 2); + if (ret == 2) + break; + retries++; + } + if ((retries >= 5)) { + #if GTP_COMPATIBLE_MODE + struct goodix_ts_data *ts = i2c_get_clientdata(client); + #endif + + #if GTP_GESTURE_WAKEUP + if (DOZE_ENABLED == doze_status) { + return ret; + } + #endif + GTP_ERROR("I2C Read: 0x%04X, %d bytes failed, errcode: %d! Process reset.", (((u16)(buf[0] << 8)) | buf[1]), len-2, ret); + #if GTP_COMPATIBLE_MODE + if (CHIP_TYPE_GT9F == ts->chip_type) { + gtp_recovery_reset(client); + } else + #endif + { + gtp_reset_guitar(client, 10); + } + } + return ret; +} + + + +/******************************************************* +Function: + Write data to the i2c slave device. +Input: + client: i2c device. + buf[0~1]: write start address. + buf[2~len-1]: data buffer + len: GTP_ADDR_LENGTH + write bytes count +Output: + numbers of i2c_msgs to transfer: + 1: succeed, otherwise: failed +*********************************************************/ +s32 gtp_i2c_write(struct i2c_client *client,u8 *buf,s32 len) +{ + struct i2c_msg msg; + s32 ret = -1; + s32 retries = 0; + + GTP_DEBUG_FUNC(); + + msg.flags = !I2C_M_RD; + msg.addr = client->addr; + msg.len = len; + msg.buf = buf; + + while (retries < 5) { + ret = i2c_transfer(client->adapter, &msg, 1); + if (ret == 1)break; + retries++; + } + if ((retries >= 5)) { + #if GTP_COMPATIBLE_MODE + struct goodix_ts_data *ts = i2c_get_clientdata(client); + #endif + + #if GTP_GESTURE_WAKEUP + if (DOZE_ENABLED == doze_status) { + return ret; + } + #endif + GTP_ERROR("I2C Write: 0x%04X, %d bytes failed, errcode: %d! Process reset.", (((u16)(buf[0] << 8)) | buf[1]), len-2, ret); + #if GTP_COMPATIBLE_MODE + if (CHIP_TYPE_GT9F == ts->chip_type) { + gtp_recovery_reset(client); + } else + #endif + { + gtp_reset_guitar(client, 10); + } + } + return ret; +} + + +/******************************************************* +Function: + i2c read twice, compare the results +Input: + client: i2c device + addr: operate address + rxbuf: read data to store, if compare successful + len: bytes to read +Output: + FAIL: read failed + SUCCESS: read successful +*********************************************************/ +s32 gtp_i2c_read_dbl_check(struct i2c_client *client, u16 addr, u8 *rxbuf, int len) +{ + u8 buf[16] = {0}; + u8 confirm_buf[16] = {0}; + u8 retry = 0; + + while (retry++ < 3) { + memset(buf, 0xAA, 16); + buf[0] = (u8)(addr >> 8); + buf[1] = (u8)(addr & 0xFF); + gtp_i2c_read(client, buf, len + 2); + + memset(confirm_buf, 0xAB, 16); + confirm_buf[0] = (u8)(addr >> 8); + confirm_buf[1] = (u8)(addr & 0xFF); + gtp_i2c_read(client, confirm_buf, len + 2); + + if (!memcmp(buf, confirm_buf, len+2)) { + memcpy(rxbuf, confirm_buf+2, len); + return SUCCESS; + } + } + GTP_ERROR("I2C read 0x%04X, %d bytes, double check failed!", addr, len); + return FAIL; +} + +/******************************************************* +Function: + Send config. +Input: + client: i2c device. +Output: + result of i2c write operation. + 1: succeed, otherwise: failed +*********************************************************/ + +s32 gtp_send_glove_cfg(struct i2c_client *client) +{ + s32 ret = 2; + +#if GTP_DRIVER_SEND_CFG + s32 retry = 0; + struct goodix_ts_data *ts = i2c_get_clientdata(client); + + if (ts->pnl_init_error) { + GTP_INFO("Error occured in init_panel, no config sent"); + return 0; + } + GTP_INFO("Driver send config."); + for (retry = 0; retry < 5; retry++) { + ret = gtp_i2c_write(client, gtp_glove_config , GTP_CONFIG_MAX_LENGTH + GTP_ADDR_LENGTH); + if (ret > 0) { + break; + } + } +#endif + return ret; +} + +/******************************************************* +Function: + Send config. +Input: + client: i2c device. +Output: + result of i2c write operation. + 1: succeed, otherwise: failed +*********************************************************/ + +s32 gtp_send_cfg(struct i2c_client *client) +{ + s32 ret = 2; + +#if GTP_DRIVER_SEND_CFG + s32 retry = 0; + struct goodix_ts_data *ts = i2c_get_clientdata(client); + + if (ts->pnl_init_error) { + GTP_INFO("Error occured in init_panel, no config sent"); + return 0; + } + + GTP_INFO("Driver send config."); + for (retry = 0; retry < 5; retry++) { + ret = gtp_i2c_write(client, config , GTP_CONFIG_MAX_LENGTH + GTP_ADDR_LENGTH); + if (ret > 0) { + break; + } + } +#endif + return ret; +} +/******************************************************* +Function: + Disable irq function +Input: + ts: goodix i2c_client private data +Output: + None. +*********************************************************/ +void gtp_irq_disable(struct goodix_ts_data *ts) +{ + unsigned long irqflags; + + GTP_DEBUG_FUNC(); + + spin_lock_irqsave(&ts->irq_lock, irqflags); + if (!ts->irq_is_disable) { + ts->irq_is_disable = 1; + disable_irq_nosync(ts->client->irq); + } + spin_unlock_irqrestore(&ts->irq_lock, irqflags); +} + +/******************************************************* +Function: + Enable irq function +Input: + ts: goodix i2c_client private data +Output: + None. +*********************************************************/ +void gtp_irq_enable(struct goodix_ts_data *ts) +{ + unsigned long irqflags = 0; + + GTP_DEBUG_FUNC(); + + spin_lock_irqsave(&ts->irq_lock, irqflags); + if (ts->irq_is_disable) { + enable_irq(ts->client->irq); + ts->irq_is_disable = 0; + } + spin_unlock_irqrestore(&ts->irq_lock, irqflags); +} + + +/******************************************************* +Function: + Report touch point event +Input: + ts: goodix i2c_client private data + id: trackId + x: input x coordinate + y: input y coordinate + w: input pressure +Output: + None. +*********************************************************/ +static void gtp_touch_down(struct goodix_ts_data* ts,s32 id,s32 x,s32 y,s32 w) +{ +#if GTP_CHANGE_X2Y + GTP_SWAP(x, y); +#endif + + if (gtp_ics_slot_report==1) { + input_mt_slot(ts->input_dev, id); + input_report_abs(ts->input_dev, ABS_MT_TRACKING_ID, id); + input_report_abs(ts->input_dev, ABS_MT_POSITION_X, x); + input_report_abs(ts->input_dev, ABS_MT_POSITION_Y, y); + input_report_abs(ts->input_dev, ABS_MT_TOUCH_MAJOR, w); + input_report_abs(ts->input_dev, ABS_MT_WIDTH_MAJOR, w); + } else { + input_report_key(ts->input_dev, BTN_TOUCH, 1); + input_report_abs(ts->input_dev, ABS_MT_POSITION_X, x); + input_report_abs(ts->input_dev, ABS_MT_POSITION_Y, y); + input_report_abs(ts->input_dev, ABS_MT_TOUCH_MAJOR, w); + input_report_abs(ts->input_dev, ABS_MT_WIDTH_MAJOR, w); + input_report_abs(ts->input_dev, ABS_MT_TRACKING_ID, id); + input_mt_sync(ts->input_dev); + } + + GTP_DEBUG("ID:%d, X:%d, Y:%d, W:%d", id, x, y, w); +} + +/******************************************************* +Function: + Report touch release event +Input: + ts: goodix i2c_client private data +Output: + None. +*********************************************************/ +static void gtp_touch_up(struct goodix_ts_data* ts, s32 id) +{ + if (gtp_ics_slot_report==1) { + input_mt_slot(ts->input_dev, id); + input_report_abs(ts->input_dev, ABS_MT_TRACKING_ID, -1); + GTP_DEBUG("Touch id[%2d] release!", id); + } else { + input_report_key(ts->input_dev, BTN_TOUCH, 0); + } +} + +#if GTP_WITH_PEN + +static void gtp_pen_init(struct goodix_ts_data *ts) +{ + s32 ret = 0; + + GTP_INFO("Request input device for pen/stylus."); + + ts->pen_dev = input_allocate_device(); + if (ts->pen_dev == NULL) { + GTP_ERROR("Failed to allocate input device for pen/stylus."); + return; + } + + ts->pen_dev->evbit[0] = BIT_MASK(EV_SYN) | BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS) ; + + if (gtp_ics_slot_report == 1) { + input_mt_init_slots(ts->pen_dev, 16); + } else { + ts->pen_dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH); + } + + + set_bit(BTN_TOOL_PEN, ts->pen_dev->keybit); + set_bit(INPUT_PROP_DIRECT, ts->pen_dev->propbit); + +#if GTP_PEN_HAVE_BUTTON + input_set_capability(ts->pen_dev, EV_KEY, BTN_STYLUS); + input_set_capability(ts->pen_dev, EV_KEY, BTN_STYLUS2); +#endif + + input_set_abs_params(ts->pen_dev, ABS_MT_POSITION_X, 0, ts->abs_x_max, 0, 0); + input_set_abs_params(ts->pen_dev, ABS_MT_POSITION_Y, 0, ts->abs_y_max, 0, 0); + input_set_abs_params(ts->pen_dev, ABS_MT_PRESSURE, 0, 255, 0, 0); + input_set_abs_params(ts->pen_dev, ABS_MT_TOUCH_MAJOR, 0, 255, 0, 0); + input_set_abs_params(ts->pen_dev, ABS_MT_TRACKING_ID, 0, 255, 0, 0); + + ts->pen_dev->name = "goodix-pen"; + ts->pen_dev->id.bustype = BUS_I2C; + + ret = input_register_device(ts->pen_dev); + if (ret) { + GTP_ERROR("Register %s input device failed", ts->pen_dev->name); + return; + } +} + +static void gtp_pen_down(s32 x, s32 y, s32 w, s32 id) +{ + struct goodix_ts_data *ts = i2c_get_clientdata(i2c_connect_client); + +#if GTP_CHANGE_X2Y + GTP_SWAP(x, y); +#endif + + input_report_key(ts->pen_dev, BTN_TOOL_PEN, 1); + + if (gtp_ics_slot_report==1) { + input_mt_slot(ts->pen_dev, id); + input_report_abs(ts->pen_dev, ABS_MT_TRACKING_ID, id); + input_report_abs(ts->pen_dev, ABS_MT_POSITION_X, x); + input_report_abs(ts->pen_dev, ABS_MT_POSITION_Y, y); + input_report_abs(ts->pen_dev, ABS_MT_PRESSURE, w); + input_report_abs(ts->pen_dev, ABS_MT_TOUCH_MAJOR, w); + } else { + input_report_key(ts->pen_dev, BTN_TOUCH, 1); + input_report_abs(ts->pen_dev, ABS_MT_POSITION_X, x); + input_report_abs(ts->pen_dev, ABS_MT_POSITION_Y, y); + input_report_abs(ts->pen_dev, ABS_MT_PRESSURE, w); + input_report_abs(ts->pen_dev, ABS_MT_TOUCH_MAJOR, w); + input_report_abs(ts->pen_dev, ABS_MT_TRACKING_ID, id); + input_mt_sync(ts->pen_dev); + } + + GTP_DEBUG("(%d)(%d, %d)[%d]", id, x, y, w); +} + +static void gtp_pen_up(s32 id) +{ + struct goodix_ts_data *ts = i2c_get_clientdata(i2c_connect_client); + + input_report_key(ts->pen_dev, BTN_TOOL_PEN, 0); + + if (gtp_ics_slot_report==1) { + input_mt_slot(ts->pen_dev, id); + input_report_abs(ts->pen_dev, ABS_MT_TRACKING_ID, -1); + } else { + input_report_key(ts->pen_dev, BTN_TOUCH, 0); + } + +} +#endif + +/******************************************************* +Function: + Goodix touchscreen work function +Input: + work: work struct of goodix_workqueue +Output: + None. +*********************************************************/ +static void goodix_ts_work_func(struct work_struct *work) +{ + u8 end_cmd[3] = {GTP_READ_COOR_ADDR >> 8, GTP_READ_COOR_ADDR & 0xFF, 0}; + u8 point_data[2 + 1 + 8 * GTP_MAX_TOUCH + 1] = {GTP_READ_COOR_ADDR >> 8, GTP_READ_COOR_ADDR & 0xFF}; + u8 touch_num = 0; + u8 finger = 0; + static u16 pre_touch = 0; + static u8 pre_key = 0; +#if GTP_WITH_PEN + u8 pen_active = 0; + static u8 pre_pen = 0; +#endif + u8 key_value = 0; + u8 *coor_data = NULL; + s32 input_x = 0; + s32 input_y = 0; + s32 input_w = 0; + s32 id = 0; + s32 i = 0; + s32 ret = -1; + struct goodix_ts_data *ts = NULL; + +#if GTP_COMPATIBLE_MODE + u8 rqst_buf[3] = {0x80, 0x43}; +#endif + +#if GTP_GESTURE_WAKEUP + u8 doze_buf[3] = {0x81, 0x4B}; +#endif + + GTP_DEBUG_FUNC(); + ts = container_of(work, struct goodix_ts_data, work); + if (ts->enter_update) { + return; + } +#if GTP_GESTURE_WAKEUP + if (DOZE_ENABLED == doze_status) { + ret = gtp_i2c_read(i2c_connect_client, doze_buf, 3); + GTP_DEBUG("0x814B = 0x%02X", doze_buf[2]); + if (ret > 0) { + if ('1'== gtp_gesture_onoff) { + gtp_gesture_coordinate[0]=0X8140 >> 8; + gtp_gesture_coordinate[1]=0X8140 & 0xFF; + + if ((doze_buf[2] == 'a') || (doze_buf[2] == 'b') || (doze_buf[2] == 'c') || + (doze_buf[2] == 'd') || (doze_buf[2] == 'e') || (doze_buf[2] == 'g') || + (doze_buf[2] == 'h') || (doze_buf[2] == 'm') || (doze_buf[2] == 'o') || + (doze_buf[2] == 'q') || (doze_buf[2] == 's') || (doze_buf[2] == 'v') || + (doze_buf[2] == 'w') || (doze_buf[2] == 'y') || (doze_buf[2] == 'z') || + (doze_buf[2] == 0x5E) /* ^ */ + ) { + GTP_INFO("Gesture type;%c\n",doze_buf[2]); + gtp_gesture_value =doze_buf[2]; + if (doze_buf[2] != 0x5E) { + GTP_INFO("Wakeup by gesture(%c), light up the screen!", doze_buf[2]); + } else { + GTP_INFO("Wakeup by gesture(^), light up the screen!"); + } + + gtp_i2c_read(i2c_client_point, gtp_gesture_coordinate, 47); + if (NULL!=strchr(gtp_gesture_type, gtp_gesture_value)) { + input_report_key(ts->input_dev, KEY_WAKEUP, 1); + input_sync(ts->input_dev); + msleep(300); + input_report_key(ts->input_dev, KEY_WAKEUP, 0); + input_sync(ts->input_dev); + }; + + doze_buf[2] = 0x00; + gtp_i2c_write(i2c_connect_client, doze_buf, 3); + } else if ((doze_buf[2] == 0xAA) || (doze_buf[2] == 0xBB) || + (doze_buf[2] == 0xAB) || (doze_buf[2] == 0xBA)) { + char *direction[4] = {"Right", "Down", "Up", "Left"}; + u8 type = ((doze_buf[2] & 0x0F) - 0x0A) + (((doze_buf[2] >> 4) & 0x0F) - 0x0A) * 2; + + GTP_INFO("%s slide to light up the screen!", direction[type]); + switch (doze_buf[2]) { + case 0xAA: + gtp_gesture_value = 'R'; + break; + case 0xAB: + gtp_gesture_value = 'D'; + break; + case 0xBA: + gtp_gesture_value = 'U'; + break; + case 0xBB: + gtp_gesture_value = 'L'; + break; + } + + gtp_i2c_read(i2c_client_point, gtp_gesture_coordinate, 47); + if (NULL!=strchr(gtp_gesture_type,gtp_gesture_value)) { + input_report_key(ts->input_dev, KEY_WAKEUP, 1); + input_sync(ts->input_dev); + msleep(300); + input_report_key(ts->input_dev, KEY_WAKEUP, 0); + input_sync(ts->input_dev); + } + + doze_buf[2] = 0x00; + gtp_i2c_write(i2c_connect_client, doze_buf, 3); + } else if (0xCC == doze_buf[2]) { + GTP_INFO("Double click to light up the screen!"); + gtp_gesture_value = 'K'; + gtp_i2c_read(i2c_client_point, gtp_gesture_coordinate, 47); + if (NULL!=strchr(gtp_gesture_type, gtp_gesture_value)) { + input_report_key(ts->input_dev, KEY_WAKEUP, 1); + input_sync(ts->input_dev); + msleep(300); + input_report_key(ts->input_dev, KEY_WAKEUP, 0); + input_sync(ts->input_dev); + } + + doze_buf[2] = 0x00; + gtp_i2c_write(i2c_connect_client, doze_buf, 3); + } else { + doze_buf[2] = 0x00; + gtp_i2c_write(i2c_connect_client, doze_buf, 3); + gtp_enter_doze(ts); + } + } + } + if (ts->use_irq) { + gtp_irq_enable(ts); + } + return; + } +#endif + + ret = gtp_i2c_read(ts->client, point_data, 12); + if (ret < 0) { + GTP_ERROR("I2C transfer error. errno:%d\n ", ret); + if (ts->use_irq) { + gtp_irq_enable(ts); + } + return; + } + + finger = point_data[GTP_ADDR_LENGTH]; + +#if GTP_COMPATIBLE_MODE + if ((finger == 0x00) && (CHIP_TYPE_GT9F == ts->chip_type)) { + ret = gtp_i2c_read(ts->client, rqst_buf, 3); + if (ret < 0) { + GTP_ERROR("Read request status error!"); + goto exit_work_func; + } + + switch (rqst_buf[2]) { + case GTP_RQST_CONFIG: + GTP_INFO("Request for config."); + ret = gtp_send_cfg(ts->client); + if (ret < 0) { + GTP_ERROR("Request for config unresponded!"); + } else { + rqst_buf[2] = GTP_RQST_RESPONDED; + gtp_i2c_write(ts->client, rqst_buf, 3); + GTP_INFO("Request for config responded!"); + } + break; + + case GTP_RQST_BAK_REF: + GTP_INFO("Request for backup reference."); + ts->rqst_processing = 1; + ret = gtp_bak_ref_proc(ts, GTP_BAK_REF_SEND); + if (SUCCESS == ret) { + rqst_buf[2] = GTP_RQST_RESPONDED; + gtp_i2c_write(ts->client, rqst_buf, 3); + ts->rqst_processing = 0; + GTP_INFO("Request for backup reference responded!"); + } else { + GTP_ERROR("Requeset for backup reference unresponed!"); + } + break; + + case GTP_RQST_RESET: + GTP_INFO("Request for reset."); + gtp_recovery_reset(ts->client); + break; + + case GTP_RQST_MAIN_CLOCK: + GTP_INFO("Request for main clock."); + ts->rqst_processing = 1; + ret = gtp_main_clk_proc(ts); + if (FAIL == ret) { + GTP_ERROR("Request for main clock unresponded!"); + } else { + GTP_INFO("Request for main clock responded!"); + rqst_buf[2] = GTP_RQST_RESPONDED; + gtp_i2c_write(ts->client, rqst_buf, 3); + ts->rqst_processing = 0; + ts->clk_chk_fs_times = 0; + } + break; + + default: + GTP_INFO("Undefined request: 0x%02X", rqst_buf[2]); + rqst_buf[2] = GTP_RQST_RESPONDED; + gtp_i2c_write(ts->client, rqst_buf, 3); + break; + } + } +#endif + if (finger == 0x00) { + if (ts->use_irq) { + gtp_irq_enable(ts); + } + return; + } + + if ((finger & 0x80) == 0) { + goto exit_work_func; + } + + touch_num = finger & 0x0f; + + if (touch_num > GTP_MAX_TOUCH) { + goto exit_work_func; + } + + if (touch_num > 1) { + u8 buf[8 * GTP_MAX_TOUCH] = {(GTP_READ_COOR_ADDR + 10) >> 8, (GTP_READ_COOR_ADDR + 10) & 0xff}; + + ret = gtp_i2c_read(ts->client, buf, 2 + 8 * (touch_num - 1)); + memcpy(&point_data[12], &buf[2], 8 * (touch_num - 1)); + } + +#if (GTP_HAVE_TOUCH_KEY || GTP_PEN_HAVE_BUTTON) + key_value = point_data[3 + 8 * touch_num]; + + if (key_value || pre_key) { + #if GTP_PEN_HAVE_BUTTON + if (key_value == 0x40) { + GTP_DEBUG("BTN_STYLUS & BTN_STYLUS2 Down."); + input_report_key(ts->pen_dev, BTN_STYLUS, 1); + input_report_key(ts->pen_dev, BTN_STYLUS2, 1); + pen_active = 1; + } else if (key_value == 0x10) { + GTP_DEBUG("BTN_STYLUS Down, BTN_STYLUS2 Up."); + input_report_key(ts->pen_dev, BTN_STYLUS, 1); + input_report_key(ts->pen_dev, BTN_STYLUS2, 0); + pen_active = 1; + } else if (key_value == 0x20) { + GTP_DEBUG("BTN_STYLUS Up, BTN_STYLUS2 Down."); + input_report_key(ts->pen_dev, BTN_STYLUS, 0); + input_report_key(ts->pen_dev, BTN_STYLUS2, 1); + pen_active = 1; + } else { + GTP_DEBUG("BTN_STYLUS & BTN_STYLUS2 Up."); + input_report_key(ts->pen_dev, BTN_STYLUS, 0); + input_report_key(ts->pen_dev, BTN_STYLUS2, 0); + if ((pre_key == 0x40) || (pre_key == 0x20) || + (pre_key == 0x10) + ) { + pen_active = 1; + } + } + if (pen_active) { + touch_num = 0; + } + #endif + + #if GTP_HAVE_TOUCH_KEY + if (!pre_touch) { + for (i = 0; i < GTP_MAX_KEY_NUM; i++) { + #if GTP_DEBUG_ON + for (ret = 0; ret < 4; ++ret) { + if (key_codes[ret] == touch_key_array[i]) { + GTP_DEBUG("Key: %s %s", key_names[ret], (key_value & (0x01 << i)) ? "Down" : "Up"); + break; + } + } + #endif + if (gtp_ics_slot_report == 1) + input_report_key(ts->input_dev, touch_key_array[i], key_value & (0x01<pen_dev); + } else +#endif + { + input_sync(ts->input_dev); + } + +exit_work_func: + if (!ts->gtp_rawdiff_mode) { + ret = gtp_i2c_write(ts->client, end_cmd, 3); + if (ret < 0) { + GTP_INFO("I2C write end_cmd error!"); + } + } + if (ts->use_irq) { + gtp_irq_enable(ts); + } +} + +/******************************************************* +Function: + Timer interrupt service routine for polling mode. +Input: + timer: timer struct pointer +Output: + Timer work mode. + HRTIMER_NORESTART: no restart mode +*********************************************************/ +static enum hrtimer_restart goodix_ts_timer_handler(struct hrtimer *timer) +{ + struct goodix_ts_data *ts = container_of(timer, struct goodix_ts_data, timer); + + GTP_DEBUG_FUNC(); + + queue_work(goodix_wq, &ts->work); + hrtimer_start(&ts->timer, ktime_set(0, (GTP_POLL_TIME+6)*1000000), HRTIMER_MODE_REL); + return HRTIMER_NORESTART; +} + +/******************************************************* +Function: + External interrupt service routine for interrupt mode. +Input: + irq: interrupt number. + dev_id: private data pointer +Output: + Handle Result. + IRQ_HANDLED: interrupt handled successfully +*********************************************************/ +static irqreturn_t goodix_ts_irq_handler(int irq, void *dev_id) +{ + struct goodix_ts_data *ts = dev_id; + + GTP_DEBUG_FUNC(); + + gtp_irq_disable(ts); + + queue_work(goodix_wq, &ts->work); + + return IRQ_HANDLED; +} +/******************************************************* +Function: + Synchronization. +Input: + ms: synchronization time in millisecond. +Output: + None. +*******************************************************/ +void gtp_int_sync(s32 ms) +{ + GTP_GPIO_OUTPUT(gtp_int_gpio, 0); + msleep(ms); + GTP_GPIO_AS_INT(gtp_int_gpio); +} + + +/******************************************************* +Function: + Reset chip. +Input: + ms: reset time in millisecond +Output: + None. +*******************************************************/ +void gtp_reset_guitar(struct i2c_client *client, s32 ms) +{ +#if GTP_COMPATIBLE_MODE + struct goodix_ts_data *ts = i2c_get_clientdata(client); +#endif + + GTP_DEBUG_FUNC(); + GTP_INFO("Guitar reset"); + GTP_GPIO_OUTPUT(gtp_rst_gpio, 0); + msleep(ms); + GTP_GPIO_OUTPUT(gtp_int_gpio, client->addr == 0x14); + + msleep(2); + GTP_GPIO_OUTPUT(gtp_rst_gpio, 1); + + msleep(6); + + GTP_GPIO_AS_INPUT(gtp_rst_gpio); + +#if GTP_COMPATIBLE_MODE + if (CHIP_TYPE_GT9F == ts->chip_type) { + return; + } +#endif + + gtp_int_sync(50); +#if GTP_ESD_PROTECT + gtp_init_ext_watchdog(client); +#endif +} + +#if GTP_GESTURE_WAKEUP +/******************************************************* +Function: + Enter doze mode for sliding wakeup. +Input: + ts: goodix tp private data +Output: + 1: succeed, otherwise failed +*******************************************************/ +static s8 gtp_enter_doze(struct goodix_ts_data *ts) +{ + s8 ret = -1; + s8 retry = 0; + u8 i2c_control_buf[3] = {(u8)(GTP_REG_SLEEP >> 8), (u8)GTP_REG_SLEEP, 8}; + + GTP_DEBUG_FUNC(); + + GTP_DEBUG("Entering gesture mode."); + while (retry++ < 5) { + i2c_control_buf[0] = 0x80; + i2c_control_buf[1] = 0x46; + ret = gtp_i2c_write(ts->client, i2c_control_buf, 3); + if (ret < 0) { + GTP_DEBUG("failed to set doze flag into 0x8046, %d", retry); + continue; + } + i2c_control_buf[0] = 0x80; + i2c_control_buf[1] = 0x40; + ret = gtp_i2c_write(ts->client, i2c_control_buf, 3); + if (ret > 0) { + doze_status = DOZE_ENABLED; + GTP_INFO("Gesture mode enabled."); + return ret; + } + msleep(10); + } + GTP_ERROR("GTP send gesture cmd failed."); + return ret; +} +#endif +/******************************************************* +Function: + Enter sleep mode. +Input: + ts: private data. +Output: + Executive outcomes. + 1: succeed, otherwise failed. +*******************************************************/ +static s8 gtp_enter_sleep(struct goodix_ts_data *ts) +{ + s8 ret = -1; + s8 retry = 0; + u8 i2c_control_buf[3] = {(u8)(GTP_REG_SLEEP >> 8), (u8)GTP_REG_SLEEP, 5}; + +#if GTP_COMPATIBLE_MODE + u8 status_buf[3] = {0x80, 0x44}; +#endif + + GTP_DEBUG_FUNC(); + +#if GTP_COMPATIBLE_MODE + if (CHIP_TYPE_GT9F == ts->chip_type) { + ret = gtp_i2c_read(ts->client, status_buf, 3); + if (ret < 0) { + GTP_ERROR("failed to get backup-reference status"); + } + + if (status_buf[2] & 0x80) { + ret = gtp_bak_ref_proc(ts, GTP_BAK_REF_STORE); + if (FAIL == ret) { + GTP_ERROR("failed to store bak_ref"); + } + } + } +#endif + + GTP_GPIO_OUTPUT(gtp_int_gpio, 0); + msleep(5); + + while (retry++ < 5) { + ret = gtp_i2c_write(ts->client, i2c_control_buf, 3); + if (ret > 0) { + GTP_INFO("GTP enter sleep!"); + + return ret; + } + msleep(10); + } + GTP_ERROR("GTP send sleep cmd failed."); + return ret; +} + +/******************************************************* +Function: + Wakeup from sleep. +Input: + ts: private data. +Output: + Executive outcomes. + >0: succeed, otherwise: failed. +*******************************************************/ +static s8 gtp_wakeup_sleep(struct goodix_ts_data *ts) +{ + u8 retry = 0; + s8 ret = -1; + + GTP_DEBUG_FUNC(); + +#if GTP_COMPATIBLE_MODE + if (CHIP_TYPE_GT9F == ts->chip_type) { + u8 opr_buf[3] = {0x41, 0x80}; + + GTP_GPIO_OUTPUT(gtp_int_gpio, 1); + msleep(5); + + for (retry = 0; retry < 10; ++retry) { + opr_buf[2] = 0x0C; + ret = gtp_i2c_write(ts->client, opr_buf, 3); + if (FAIL == ret) { + GTP_ERROR("failed to hold ss51 & dsp!"); + continue; + } + opr_buf[2] = 0x00; + ret = gtp_i2c_read(ts->client, opr_buf, 3); + if (FAIL == ret) { + GTP_ERROR("failed to get ss51 & dsp status!"); + continue; + } + if (0x0C != opr_buf[2]) { + GTP_DEBUG("ss51 & dsp not been hold, %d", retry+1); + continue; + } + GTP_DEBUG("ss51 & dsp confirmed hold"); + + ret = gtp_fw_startup(ts->client); + if (FAIL == ret) { + GTP_ERROR("failed to startup GT9XXF, process recovery"); + gtp_esd_recovery(ts->client); + } + break; + } + if (retry >= 10) { + GTP_ERROR("failed to wakeup, processing esd recovery"); + gtp_esd_recovery(ts->client); + } else { + GTP_INFO("GT9XXF gtp wakeup success"); + } + return ret; + } +#endif + +#if GTP_POWER_CTRL_SLEEP + while (retry++ < 5) { + gtp_reset_guitar(ts->client, 20); + + GTP_INFO("GTP wakeup sleep."); + return 1; + } +#else + while (retry++ < 10) { + #if GTP_GESTURE_WAKEUP + if (DOZE_WAKEUP != doze_status) { + GTP_INFO("Powerkey wakeup."); + } else { + GTP_INFO("Gesture wakeup."); + } + doze_status = DOZE_DISABLED; + gtp_irq_disable(ts); + gtp_reset_guitar(ts->client, 10); + gtp_irq_enable(ts); + #else + GTP_GPIO_OUTPUT(gtp_int_gpio, 1); + msleep(5); + + #endif + + ret = gtp_i2c_test(ts->client); + if (ret > 0) { + GTP_INFO("GTP wakeup sleep."); + + #if (!GTP_GESTURE_WAKEUP) + { + gtp_int_sync(25); + #if GTP_ESD_PROTECT + gtp_init_ext_watchdog(ts->client); + #endif + } + #endif + + return ret; + } + gtp_reset_guitar(ts->client, 20); + } +#endif + + GTP_ERROR("GTP wakeup sleep failed."); + return ret; +} + +/******************************************************* +Function: + Initialize gtp. +Input: + ts: goodix private data +Output: + Executive outcomes. + 0: succeed, otherwise: failed +*******************************************************/ +static s32 gtp_init_panel(struct goodix_ts_data *ts) +{ + s32 ret = -1; + +#if GTP_DRIVER_SEND_CFG + s32 i = 0; + u8 check_sum = 0; + u8 opr_buf[16] = {0}; + u8 sensor_id = 0; + u8 drv_cfg_version; + u8 flash_cfg_version; + +/* if defined CONFIG_OF, parse config data from dtsi + * else parse config data form header file. + */ +#ifdef GTP_CONFIG_OF + u8 cfg_info_group0[] = CTP_CFG_GROUP0; + u8 cfg_info_group1[] = CTP_CFG_GROUP1; + u8 cfg_info_group2[] = CTP_CFG_GROUP2; + u8 cfg_info_group3[] = CTP_CFG_GROUP3; + u8 cfg_info_group4[] = CTP_CFG_GROUP4; + u8 cfg_info_group5[] = CTP_CFG_GROUP5; + + u8 *send_cfg_buf[] = {cfg_info_group0,cfg_info_group1, + cfg_info_group2, cfg_info_group3, + cfg_info_group4, cfg_info_group5}; + u8 cfg_info_len[] = { CFG_GROUP_LEN(cfg_info_group0), + CFG_GROUP_LEN(cfg_info_group1), + CFG_GROUP_LEN(cfg_info_group2), + CFG_GROUP_LEN(cfg_info_group3), + CFG_GROUP_LEN(cfg_info_group4), + CFG_GROUP_LEN(cfg_info_group5)}; + + GTP_DEBUG("Config Groups\' Lengths: %d, %d, %d, %d, %d, %d", + cfg_info_len[0], cfg_info_len[1], cfg_info_len[2], cfg_info_len[3], + cfg_info_len[4], cfg_info_len[5]); +#endif + +#if GTP_COMPATIBLE_MODE + if (CHIP_TYPE_GT9F == ts->chip_type) { + ts->fw_error = 0; + } else +#endif + { /* check firmware */ + ret = gtp_i2c_read_dbl_check(ts->client, 0x41E4, opr_buf, 1); + if (SUCCESS == ret) { + if (opr_buf[0] != 0xBE) { + ts->fw_error = 1; + GTP_ERROR("Firmware error, no config sent!"); + return -1; + } + } + } + + /* read sensor id */ +#if GTP_COMPATIBLE_MODE + msleep(50); +#endif + ret = gtp_i2c_read_dbl_check(ts->client, GTP_REG_SENSOR_ID, &sensor_id, 1); + if (SUCCESS == ret) { + if (sensor_id >= 0x06) { + GTP_ERROR("Invalid sensor_id(0x%02X), No Config Sent!", sensor_id); + ts->pnl_init_error = 1; + return -1; + } + } else { + GTP_ERROR("Failed to get sensor_id, No config sent!"); + ts->pnl_init_error = 1; + return -1; + } + GTP_INFO("Sensor_ID: %d", sensor_id); + tp_sensor_id = sensor_id; + + /* parse config data*/ +#if 0 + GTP_DEBUG("Get config data from device tree."); + ret = gtp_parse_dt_cfg(&ts->client->dev, &config[GTP_ADDR_LENGTH], &ts->gtp_cfg_len, sensor_id); + if (ret < 0) { + GTP_ERROR("Failed to parse config data form device tree."); + ts->pnl_init_error = 1; + return -1; + } +#else + GTP_DEBUG("Get config data from header file."); + if ((!cfg_info_len[1]) && (!cfg_info_len[2]) && + (!cfg_info_len[3]) && (!cfg_info_len[4]) && + (!cfg_info_len[5])) { + sensor_id = 0; + } + ts->gtp_cfg_len = cfg_info_len[sensor_id]; + memset(&config[GTP_ADDR_LENGTH], 0, GTP_CONFIG_MAX_LENGTH); + memcpy(&config[GTP_ADDR_LENGTH], send_cfg_buf[sensor_id], ts->gtp_cfg_len); +#endif + + GTP_INFO("Config group%d used,length: %d", sensor_id, ts->gtp_cfg_len); + + if (ts->gtp_cfg_len < GTP_CONFIG_MIN_LENGTH) { + GTP_ERROR("Config Group%d is INVALID CONFIG GROUP(Len: %d)! NO Config Sent! You need to check you header file CFG_GROUP section!", sensor_id, ts->gtp_cfg_len); + ts->pnl_init_error = 1; + return -1; + } + +#if GTP_COMPATIBLE_MODE + if (ts->chip_type != CHIP_TYPE_GT9F) +#endif + { + ret = gtp_i2c_read_dbl_check(ts->client, GTP_REG_CONFIG_DATA, &opr_buf[0], 1); + if (ret == SUCCESS) { + GTP_DEBUG("Config Version: %d, 0x%02X; IC Config Version: %d, 0x%02X", + config[GTP_ADDR_LENGTH], config[GTP_ADDR_LENGTH], opr_buf[0], opr_buf[0]); + + flash_cfg_version = opr_buf[0]; + drv_cfg_version = config[GTP_ADDR_LENGTH]; + + if (flash_cfg_version < 90 && flash_cfg_version > drv_cfg_version) { + config[GTP_ADDR_LENGTH] = 0x00; + } + } else { + GTP_ERROR("Failed to get ic config version!No config sent!"); + return -1; + } + } + +#if GTP_CUSTOM_CFG + config[RESOLUTION_LOC] = (u8)GTP_MAX_WIDTH; + config[RESOLUTION_LOC + 1] = (u8)(GTP_MAX_WIDTH>>8); + config[RESOLUTION_LOC + 2] = (u8)GTP_MAX_HEIGHT; + config[RESOLUTION_LOC + 3] = (u8)(GTP_MAX_HEIGHT>>8); + + if (GTP_INT_TRIGGER == 0) { + config[TRIGGER_LOC] &= 0xfe; + } else if (GTP_INT_TRIGGER == 1) { + config[TRIGGER_LOC] |= 0x01; + } +#endif + + check_sum = 0; + for (i = GTP_ADDR_LENGTH; i < ts->gtp_cfg_len; i++) { + check_sum += config[i]; + } + config[ts->gtp_cfg_len] = (~check_sum) + 1; + +#else + + ts->gtp_cfg_len = GTP_CONFIG_MAX_LENGTH; + ret = gtp_i2c_read(ts->client, config, ts->gtp_cfg_len + GTP_ADDR_LENGTH); + if (ret < 0) { + GTP_ERROR("Read Config Failed, Using Default Resolution & INT Trigger!"); + ts->abs_x_max = GTP_MAX_WIDTH; + ts->abs_y_max = GTP_MAX_HEIGHT; + ts->int_trigger_type = GTP_INT_TRIGGER; + } + +#endif + + if ((ts->abs_x_max == 0) && (ts->abs_y_max == 0)) { + ts->abs_x_max = (config[RESOLUTION_LOC + 1] << 8) + config[RESOLUTION_LOC]; + ts->abs_y_max = (config[RESOLUTION_LOC + 3] << 8) + config[RESOLUTION_LOC + 2]; + ts->int_trigger_type = (config[TRIGGER_LOC]) & 0x03; + } + +#if GTP_COMPATIBLE_MODE + if (CHIP_TYPE_GT9F == ts->chip_type) { + u8 sensor_num = 0; + u8 driver_num = 0; + u8 have_key = 0; + + have_key = (config[GTP_REG_HAVE_KEY - GTP_REG_CONFIG_DATA + 2] & 0x01); + + if (1 == ts->is_950) { + driver_num = config[GTP_REG_MATRIX_DRVNUM - GTP_REG_CONFIG_DATA + 2]; + sensor_num = config[GTP_REG_MATRIX_SENNUM - GTP_REG_CONFIG_DATA + 2]; + if (have_key) { + driver_num--; + } + ts->bak_ref_len = (driver_num * (sensor_num - 1) + 2) * 2 * 6; + } else { + driver_num = (config[CFG_LOC_DRVA_NUM] & 0x1F) + (config[CFG_LOC_DRVB_NUM]&0x1F); + if (have_key) { + driver_num--; + } + sensor_num = (config[CFG_LOC_SENS_NUM] & 0x0F) + ((config[CFG_LOC_SENS_NUM] >> 4) & 0x0F); + ts->bak_ref_len = (driver_num * (sensor_num - 2) + 2) * 2; + } + + GTP_INFO("Drv * Sen: %d * %d(key: %d), X_MAX: %d, Y_MAX: %d, TRIGGER: 0x%02x", + driver_num, sensor_num, have_key, ts->abs_x_max,ts->abs_y_max,ts->int_trigger_type); + return 0; + } else +#endif + { +#if GTP_DRIVER_SEND_CFG + ret = gtp_send_cfg(ts->client); + if (ret < 0) { + GTP_ERROR("Send config error."); + } +#if GTP_COMPATIBLE_MODE + if (ts->chip_type != CHIP_TYPE_GT9F) +#endif + { + if (flash_cfg_version < 90 && flash_cfg_version > drv_cfg_version) { + check_sum = 0; + config[GTP_ADDR_LENGTH] = drv_cfg_version; + for (i = GTP_ADDR_LENGTH; i < ts->gtp_cfg_len; i++) { + check_sum += config[i]; + } + config[ts->gtp_cfg_len] = (~check_sum) + 1; + } + } + +#endif + GTP_INFO("X_MAX: %d, Y_MAX: %d, TRIGGER: 0x%02x", ts->abs_x_max,ts->abs_y_max,ts->int_trigger_type); + } + + msleep(10); + return 0; + +} + +static ssize_t gt91xx_config_read_proc(struct file *file, char __user *page, size_t size, loff_t *ppos) +{ + char *ptr = page; + char temp_data[GTP_CONFIG_MAX_LENGTH + 2] = {0x80, 0x47}; + int i; + + if (*ppos) { + return 0; + } + ptr += sprintf(ptr, "==== GT9XX config init value====\n"); + + for (i = 0 ; i < GTP_CONFIG_MAX_LENGTH ; i++) { + ptr += sprintf(ptr, "0x%02X ", config[i + 2]); + + if (i % 8 == 7) + ptr += sprintf(ptr, "\n"); + } + + ptr += sprintf(ptr, "\n"); + + ptr += sprintf(ptr, "==== GT9XX config real value====\n"); + gtp_i2c_read(i2c_connect_client, temp_data, GTP_CONFIG_MAX_LENGTH + 2); + for (i = 0 ; i < GTP_CONFIG_MAX_LENGTH ; i++) { + ptr += sprintf(ptr, "0x%02X ", temp_data[i+2]); + + if (i % 8 == 7) + ptr += sprintf(ptr, "\n"); + } + *ppos += ptr - page; + return (ptr - page); +} + +static ssize_t gt91xx_config_write_proc(struct file *filp, const char __user *buffer, size_t count, loff_t *off) +{ + s32 ret = 0; + + GTP_DEBUG("write count %ld\n", count); + + if (count > GTP_CONFIG_MAX_LENGTH) { + GTP_ERROR("size not match [%d:%ld]\n", GTP_CONFIG_MAX_LENGTH, count); + return -EFAULT; + } + + if (copy_from_user(&config[2], buffer, count)) { + GTP_ERROR("copy from user fail\n"); + return -EFAULT; + } + + ret = gtp_send_cfg(i2c_connect_client); + + if (ret < 0) { + GTP_ERROR("send config failed."); + } + + return count; +} +/******************************************************* +Function: + Read chip version. +Input: + client: i2c device + version: buffer to keep ic firmware version +Output: + read operation return. + 2: succeed, otherwise: failed +*******************************************************/ +s32 gtp_read_version(struct i2c_client *client, u16* version) +{ + s32 ret = -1; + u8 buf[8] = {GTP_REG_VERSION >> 8, GTP_REG_VERSION & 0xff}; + + GTP_DEBUG_FUNC(); + + ret = gtp_i2c_read(client, buf, sizeof(buf)); + if (ret < 0) { + GTP_ERROR("GTP read version failed"); + return ret; + } + + if (version) { + *version = (buf[7] << 8) | buf[6]; + } + if (buf[5] == 0x00) { + GTP_INFO("IC Version: %c%c%c_%02x%02x", buf[2], buf[3], buf[4], buf[7], buf[6]); + } else { + GTP_INFO("IC Version: %c%c%c%c_%02x%02x", buf[2], buf[3], buf[4], buf[5], buf[7], buf[6]); + } + return ret; +} + +/******************************************************* +Function: + I2c test Function. +Input: + client:i2c client. +Output: + Executive outcomes. + 2: succeed, otherwise failed. +*******************************************************/ +static s8 gtp_i2c_test(struct i2c_client *client) +{ + u8 test[3] = {GTP_REG_CONFIG_DATA >> 8, GTP_REG_CONFIG_DATA & 0xff}; + u8 retry = 0; + s8 ret = -1; + + GTP_DEBUG_FUNC(); + + while (retry++ < 5) { + ret = gtp_i2c_read(client, test, 3); + if (ret > 0) { + return ret; + } + GTP_ERROR("GTP i2c test failed time %d.",retry); + msleep(10); + } + return ret; +} + +/******************************************************* +Function: + Request gpio(INT & RST) ports. +Input: + ts: private data. +Output: + Executive outcomes. + >= 0: succeed, < 0: failed +*******************************************************/ +static s8 gtp_request_io_port(struct goodix_ts_data *ts) +{ + s32 ret = 0; + + GTP_DEBUG_FUNC(); + ret = GTP_GPIO_REQUEST(gtp_int_gpio, "GTP INT IRQ"); + + if (ret < 0) { + GTP_ERROR("Failed to request GPIO:%d, ERRNO:%d", (s32)gtp_int_gpio, ret); + ret = -ENODEV; + } else { + GTP_GPIO_AS_INT(gtp_int_gpio); + ts->client->irq = gpio_to_irq(gtp_int_gpio); + } + + ret = GTP_GPIO_REQUEST(gtp_rst_gpio, "GTP RST PORT"); + if (ret < 0) { + GTP_ERROR("Failed to request GPIO:%d, ERRNO:%d", (s32)gtp_rst_gpio, ret); + ret = -ENODEV; + } + + GTP_GPIO_AS_INPUT(gtp_rst_gpio); + + gtp_reset_guitar(ts->client, 20); + + if (ret < 0) { + GTP_GPIO_FREE(gtp_rst_gpio); + GTP_GPIO_FREE(gtp_int_gpio); + } + + return ret; +} + +/******************************************************* +Function: + Request interrupt. +Input: + ts: private data. +Output: + Executive outcomes. + 0: succeed, -1: failed. +*******************************************************/ +static s8 gtp_request_irq(struct goodix_ts_data *ts) +{ + s32 ret = -1; + const u8 irq_table[] = GTP_IRQ_TAB; + + GTP_DEBUG_FUNC(); + GTP_DEBUG("INT trigger type:%x", ts->int_trigger_type); + + ret = request_irq(ts->client->irq, + goodix_ts_irq_handler, + irq_table[ts->int_trigger_type], + ts->client->name, + ts); + if (ret) { + GTP_ERROR("Request IRQ failed!ERRNO:%d.", ret); + GTP_GPIO_AS_INPUT(gtp_int_gpio); + GTP_GPIO_FREE(gtp_int_gpio); + + hrtimer_init(&ts->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); + ts->timer.function = goodix_ts_timer_handler; + hrtimer_start(&ts->timer, ktime_set(1, 0), HRTIMER_MODE_REL); + return -1; + } else { + gtp_irq_disable(ts); + ts->use_irq = 1; + return 0; + } +} + +static int fts_input_event(struct input_dev *dev, + unsigned int type, unsigned int code, int value) +{ + char buffer[16]; + + if (type == EV_SYN && code == SYN_CONFIG) { + sprintf(buffer, "%d", value); + + GTP_INFO("GTP:Gesture on/off : %d",value); + if (value >= MXT_INPUT_EVENT_START && value <= MXT_INPUT_EVENT_END) { + if (value == MXT_INPUT_EVENT_WAKUP_MODE_ON) { + gtp_gesture_onoff = '1'; + } else if (value == MXT_INPUT_EVENT_WAKUP_MODE_OFF) { + gtp_gesture_onoff = '0'; + } else { + gtp_gesture_onoff = '0'; + GTP_ERROR("Failed Open/Close Gesture Function!\n"); + return -ENOMEM; + } + } + } + + return 0; +} +/******************************************************* +Function: + Request input device Function. +Input: + ts:private data. +Output: + Executive outcomes. + 0: succeed, otherwise: failed. +*******************************************************/ +static s8 gtp_request_input_dev(struct goodix_ts_data *ts) +{ + s8 ret = -1; +#if GTP_HAVE_TOUCH_KEY + u8 index = 0; +#endif + + GTP_DEBUG_FUNC(); + + ts->input_dev = input_allocate_device(); + if (ts->input_dev == NULL) { + GTP_ERROR("Failed to allocate input device."); + return -ENOMEM; + } + + ts->input_dev->evbit[0] = BIT_MASK(EV_SYN) | BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS) ; + + if (gtp_ics_slot_report==1) { + input_mt_init_slots(ts->input_dev, 10, 0); + } else { + ts->input_dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH); + } + + __set_bit(INPUT_PROP_DIRECT, ts->input_dev->propbit); + +#if GTP_HAVE_TOUCH_KEY + for (index = 0; index < GTP_MAX_KEY_NUM; index++) { + input_set_capability(ts->input_dev, EV_KEY, touch_key_array[index]); + } +#endif + +#if GTP_GESTURE_WAKEUP + input_set_capability(ts->input_dev, EV_KEY, KEY_POWER); + input_set_capability(ts->input_dev, EV_KEY, KEY_WAKEUP); + __set_bit(KEY_WAKEUP, ts->input_dev->keybit); + Ctp_Gesture_Fucntion_Proc_File(); +#endif + +#if GTP_CHANGE_X2Y + GTP_SWAP(ts->abs_x_max, ts->abs_y_max); +#endif + + input_set_abs_params(ts->input_dev, ABS_MT_POSITION_X, 0, ts->abs_x_max, 0, 0); + input_set_abs_params(ts->input_dev, ABS_MT_POSITION_Y, 0, ts->abs_y_max, 0, 0); + input_set_abs_params(ts->input_dev, ABS_MT_WIDTH_MAJOR, 0, 255, 0, 0); + input_set_abs_params(ts->input_dev, ABS_MT_TOUCH_MAJOR, 0, 255, 0, 0); + input_set_abs_params(ts->input_dev, ABS_MT_TRACKING_ID, 0, 255, 0, 0); + + ts->input_dev->name = goodix_ts_name; + ts->input_dev->phys = goodix_input_phys; + ts->input_dev->id.bustype = BUS_I2C; + ts->input_dev->id.vendor = 0xDEAD; + ts->input_dev->id.product = 0xBEEF; + ts->input_dev->id.version = 10427; + ts->input_dev->event = fts_input_event; + + ret = input_register_device(ts->input_dev); + if (ret) { + GTP_ERROR("Register %s input device failed", ts->input_dev->name); + return -ENODEV; + } + +#if GTP_WITH_PEN + gtp_pen_init(ts); +#endif + + return 0; +} + +#if GTP_COMPATIBLE_MODE + +s32 gtp_fw_startup(struct i2c_client *client) +{ + u8 opr_buf[4]; + s32 ret = 0; + + opr_buf[0] = 0xAA; + ret = i2c_write_bytes(client, 0x8041, opr_buf, 1); + if (ret < 0) { + return FAIL; + } + + opr_buf[0] = 0x00; + ret = i2c_write_bytes(client, 0x4180, opr_buf, 1); + if (ret < 0) { + return FAIL; + } + gtp_int_sync(25); + + ret = i2c_read_bytes(client, 0x8041, opr_buf, 1); + if (ret < 0) { + return FAIL; + } + if (0xAA == opr_buf[0]) { + GTP_ERROR("IC works abnormally,startup failed."); + return FAIL; + } else { + GTP_INFO("IC works normally, Startup success."); + opr_buf[0] = 0xAA; + i2c_write_bytes(client, 0x8041, opr_buf, 1); + return SUCCESS; + } +} + +static s32 gtp_esd_recovery(struct i2c_client *client) +{ + s32 retry = 0; + s32 ret = 0; + struct goodix_ts_data *ts; + + ts = i2c_get_clientdata(client); + + gtp_irq_disable(ts); + + GTP_INFO("GT9XXF esd recovery mode"); + for (retry = 0; retry < 5; retry++) { + ret = gup_fw_download_proc(NULL, GTP_FL_ESD_RECOVERY); + if (FAIL == ret) { + GTP_ERROR("esd recovery failed %d", retry+1); + continue; + } + ret = gtp_fw_startup(ts->client); + if (FAIL == ret) { + GTP_ERROR("GT9XXF start up failed %d", retry+1); + continue; + } + break; + } + gtp_irq_enable(ts); + + if (retry >= 5) { + GTP_ERROR("failed to esd recovery"); + return FAIL; + } + + GTP_INFO("Esd recovery successful"); + return SUCCESS; +} + +void gtp_recovery_reset(struct i2c_client *client) +{ +#if GTP_ESD_PROTECT + gtp_esd_switch(client, SWITCH_OFF); +#endif + GTP_DEBUG_FUNC(); + + gtp_esd_recovery(client); + +#if GTP_ESD_PROTECT + gtp_esd_switch(client, SWITCH_ON); +#endif +} + +static s32 gtp_bak_ref_proc(struct goodix_ts_data *ts, u8 mode) +{ + s32 ret = 0; + s32 i = 0; + s32 j = 0; + u16 ref_sum = 0; + u16 learn_cnt = 0; + u16 chksum = 0; + s32 ref_seg_len = 0; + s32 ref_grps = 0; + struct file *ref_filp = NULL; + u8 *p_bak_ref; + + ret = gup_check_fs_mounted("/data"); + if (FAIL == ret) { + ts->ref_chk_fs_times++; + GTP_DEBUG("Ref check /data times/MAX_TIMES: %d / %d", ts->ref_chk_fs_times, GTP_CHK_FS_MNT_MAX); + if (ts->ref_chk_fs_times < GTP_CHK_FS_MNT_MAX) { + msleep(50); + GTP_INFO("/data not mounted."); + return FAIL; + } + GTP_INFO("check /data mount timeout..."); + } else { + GTP_INFO("/data mounted!!!(%d/%d)", ts->ref_chk_fs_times, GTP_CHK_FS_MNT_MAX); + } + + p_bak_ref = (u8 *)kzalloc(ts->bak_ref_len, GFP_KERNEL); + + if (NULL == p_bak_ref) { + GTP_ERROR("Allocate memory for p_bak_ref failed!"); + return FAIL; + } + + if (ts->is_950) { + ref_seg_len = ts->bak_ref_len / 6; + ref_grps = 6; + } else { + ref_seg_len = ts->bak_ref_len; + ref_grps = 1; + } + ref_filp = filp_open(GTP_BAK_REF_PATH, O_RDWR | O_CREAT, 0666); + if (IS_ERR(ref_filp)) { + GTP_ERROR("Failed to open/create %s.", GTP_BAK_REF_PATH); + if (GTP_BAK_REF_SEND == mode) { + goto bak_ref_default; + } else { + goto bak_ref_exit; + } + } + + switch (mode) { + case GTP_BAK_REF_SEND: + GTP_INFO("Send backup-reference"); + ref_filp->f_op->llseek(ref_filp, 0, SEEK_SET); + ret = ref_filp->f_op->read(ref_filp, (char*)p_bak_ref, ts->bak_ref_len, &ref_filp->f_pos); + if (ret < 0) { + GTP_ERROR("failed to read bak_ref info from file, sending defualt bak_ref"); + goto bak_ref_default; + } + for (j = 0; j < ref_grps; ++j) { + ref_sum = 0; + for (i = 0; i < (ref_seg_len); i += 2) { + ref_sum += (p_bak_ref[i + j * ref_seg_len] << 8) + p_bak_ref[i+1 + j * ref_seg_len]; + } + learn_cnt = (p_bak_ref[j * ref_seg_len + ref_seg_len -4] << 8) + (p_bak_ref[j * ref_seg_len + ref_seg_len -3]); + chksum = (p_bak_ref[j * ref_seg_len + ref_seg_len -2] << 8) + (p_bak_ref[j * ref_seg_len + ref_seg_len -1]); + GTP_DEBUG("learn count = %d", learn_cnt); + GTP_DEBUG("chksum = %d", chksum); + GTP_DEBUG("ref_sum = 0x%04X", ref_sum & 0xFFFF); + if (1 != ref_sum) { + GTP_INFO("wrong chksum for bak_ref, reset to 0x00 bak_ref"); + memset(&p_bak_ref[j * ref_seg_len], 0, ref_seg_len); + p_bak_ref[ref_seg_len + j * ref_seg_len - 1] = 0x01; + } else { + if (j == (ref_grps - 1)) { + GTP_INFO("backup-reference data in %s used", GTP_BAK_REF_PATH); + } + } + } + ret = i2c_write_bytes(ts->client, GTP_REG_BAK_REF, p_bak_ref, ts->bak_ref_len); + if (FAIL == ret) { + GTP_ERROR("failed to send bak_ref because of iic comm error"); + goto bak_ref_exit; + } + break; + + case GTP_BAK_REF_STORE: + GTP_INFO("Store backup-reference"); + ret = i2c_read_bytes(ts->client, GTP_REG_BAK_REF, p_bak_ref, ts->bak_ref_len); + if (ret < 0) { + GTP_ERROR("failed to read bak_ref info, sending default back-reference"); + goto bak_ref_default; + } + ref_filp->f_op->llseek(ref_filp, 0, SEEK_SET); + ref_filp->f_op->write(ref_filp, (char*)p_bak_ref, ts->bak_ref_len, &ref_filp->f_pos); + break; + + default: + GTP_ERROR("invalid backup-reference request"); + break; + } + ret = SUCCESS; + goto bak_ref_exit; + +bak_ref_default: + + for (j = 0; j < ref_grps; ++j) { + memset(&p_bak_ref[j * ref_seg_len], 0, ref_seg_len); + p_bak_ref[j * ref_seg_len + ref_seg_len - 1] = 0x01; + } + ret = i2c_write_bytes(ts->client, GTP_REG_BAK_REF, p_bak_ref, ts->bak_ref_len); + if (!IS_ERR(ref_filp)) { + GTP_INFO("write backup-reference data into %s", GTP_BAK_REF_PATH); + ref_filp->f_op->llseek(ref_filp, 0, SEEK_SET); + ref_filp->f_op->write(ref_filp, (char*)p_bak_ref, ts->bak_ref_len, &ref_filp->f_pos); + } + if (ret == FAIL) { + GTP_ERROR("failed to load the default backup reference"); + } + +bak_ref_exit: + + if (p_bak_ref) { + kfree(p_bak_ref); + } + if (ref_filp && !IS_ERR(ref_filp)) { + filp_close(ref_filp, NULL); + } + return ret; +} + + +static s32 gtp_verify_main_clk(u8 *p_main_clk) +{ + u8 chksum = 0; + u8 main_clock = p_main_clk[0]; + s32 i = 0; + + if (main_clock < 50 || main_clock > 120) { + return FAIL; + } + + for (i = 0; i < 5; ++i) { + if (main_clock != p_main_clk[i]) { + return FAIL; + } + chksum += p_main_clk[i]; + } + chksum += p_main_clk[5]; + if ((chksum) == 0) { + return SUCCESS; + } else { + return FAIL; + } +} + +static s32 gtp_main_clk_proc(struct goodix_ts_data *ts) +{ + s32 ret = 0; + s32 i = 0; + s32 clk_chksum = 0; + struct file *clk_filp = NULL; + u8 p_main_clk[6] = {0}; + + ret = gup_check_fs_mounted("/data"); + if (FAIL == ret) { + ts->clk_chk_fs_times++; + GTP_DEBUG("Clock check /data times/MAX_TIMES: %d / %d", ts->clk_chk_fs_times, GTP_CHK_FS_MNT_MAX); + if (ts->clk_chk_fs_times < GTP_CHK_FS_MNT_MAX) { + msleep(50); + GTP_INFO("/data not mounted."); + return FAIL; + } + GTP_INFO("Check /data mount timeout!"); + } else { + GTP_INFO("/data mounted!!!(%d/%d)", ts->clk_chk_fs_times, GTP_CHK_FS_MNT_MAX); + } + + clk_filp = filp_open(GTP_MAIN_CLK_PATH, O_RDWR | O_CREAT, 0666); + if (IS_ERR(clk_filp)) { + GTP_ERROR("%s is unavailable, calculate main clock", GTP_MAIN_CLK_PATH); + } else { + clk_filp->f_op->llseek(clk_filp, 0, SEEK_SET); + clk_filp->f_op->read(clk_filp, (char *)p_main_clk, 6, &clk_filp->f_pos); + + ret = gtp_verify_main_clk(p_main_clk); + if (FAIL == ret) { + GTP_ERROR("main clock data in %s is wrong, recalculate main clock", GTP_MAIN_CLK_PATH); + } else { + GTP_INFO("main clock data in %s used, main clock freq: %d", GTP_MAIN_CLK_PATH, p_main_clk[0]); + filp_close(clk_filp, NULL); + goto update_main_clk; + } + } + +#if GTP_ESD_PROTECT + gtp_esd_switch(ts->client, SWITCH_OFF); +#endif + ret = gup_clk_calibration(); + gtp_esd_recovery(ts->client); + +#if GTP_ESD_PROTECT + gtp_esd_switch(ts->client, SWITCH_ON); +#endif + + GTP_INFO("calibrate main clock: %d", ret); + if (ret < 50 || ret > 120) { + GTP_ERROR("wrong main clock: %d", ret); + goto exit_main_clk; + } + + for (i = 0; i < 5; ++i) { + p_main_clk[i] = ret; + clk_chksum += p_main_clk[i]; + } + p_main_clk[5] = 0 - clk_chksum; + + if (!IS_ERR(clk_filp)) { + GTP_DEBUG("write main clock data into %s", GTP_MAIN_CLK_PATH); + clk_filp->f_op->llseek(clk_filp, 0, SEEK_SET); + clk_filp->f_op->write(clk_filp, (char *)p_main_clk, 6, &clk_filp->f_pos); + filp_close(clk_filp, NULL); + } + +update_main_clk: + ret = i2c_write_bytes(ts->client, GTP_REG_MAIN_CLK, p_main_clk, 6); + if (FAIL == ret) { + GTP_ERROR("update main clock failed!"); + return FAIL; + } + return SUCCESS; + +exit_main_clk: + if (!IS_ERR(clk_filp)) { + filp_close(clk_filp, NULL); + } + return FAIL; +} + + +s32 gtp_gt9xxf_init(struct i2c_client *client) +{ + s32 ret = 0; + + ret = gup_fw_download_proc(NULL, GTP_FL_FW_BURN); + if (FAIL == ret) { + return FAIL; + } + + ret = gtp_fw_startup(client); + if (FAIL == ret) { + return FAIL; + } + return SUCCESS; +} + +void gtp_get_chip_type(struct goodix_ts_data *ts) +{ + u8 opr_buf[10] = {0x00}; + s32 ret = 0; + + msleep(10); + + ret = gtp_i2c_read_dbl_check(ts->client, GTP_REG_CHIP_TYPE, opr_buf, 10); + + if (FAIL == ret) { + GTP_ERROR("Failed to get chip-type, set chip type default: GOODIX_GT9"); + ts->chip_type = CHIP_TYPE_GT9; + return; + } + + if (!memcmp(opr_buf, "GOODIX_GT9", 10)) { + ts->chip_type = CHIP_TYPE_GT9; + } else { + ts->chip_type = CHIP_TYPE_GT9F; + } + GTP_INFO("Chip Type: %s", (ts->chip_type == CHIP_TYPE_GT9) ? "GOODIX_GT9" : "GOODIX_GT9F"); +} +#endif + +/* + * Devices Tree support, +*/ +#ifdef GTP_CONFIG_OF +/** + * gtp_parse_dt - parse platform infomation form devices tree. + */ +static void gtp_parse_dt(struct device *dev) +{ + struct device_node *np = dev->of_node; + + gtp_int_gpio = of_get_named_gpio(np, "goodix,irq-gpio", 0); + gtp_rst_gpio = of_get_named_gpio(np, "goodix,rst-gpio", 0); + + /********************** add 2016.4.28 **************/ +} + +/** + * gtp_parse_dt_cfg - parse config data from devices tree. + * @dev: device that this driver attached. + * @cfg: pointer of the config array. + * @cfg_len: pointer of the config length. + * @sid: sensor id. + * Return: 0-succeed, -1-faileds + */ +int gtp_parse_dt_cfg(struct device *dev, u8 *cfg, int *cfg_len, u8 sid) +{ + struct device_node *np = dev->of_node; + struct property *prop; + char cfg_name[18]; + + snprintf(cfg_name, sizeof(cfg_name), "goodix,cfg-group%d", sid); + prop = of_find_property(np, cfg_name, cfg_len); + if (!prop || !prop->value || *cfg_len == 0 || *cfg_len > GTP_CONFIG_MAX_LENGTH) { + return -1;/* failed */ + } else { + memcpy(cfg, prop->value, *cfg_len); + return 0; + } +} + +/** + * gtp_power_switch - power switch . + * @on: 1-switch on, 0-switch off. + * return: 0-succeed, -1-faileds + */ +static int gtp_power_switch(struct i2c_client *client, int on) +{ + static struct regulator *vdd_ana; + static struct regulator *vcc_i2c; + int ret; + + if (!vdd_ana) { + vdd_ana = regulator_get(&client->dev, "vdd_ana"); + if (IS_ERR(vdd_ana)) { + GTP_ERROR("regulator get of vdd_ana failed"); + ret = PTR_ERR(vdd_ana); + vdd_ana = NULL; + return ret; + } + } + + if (!vcc_i2c) { + vcc_i2c = regulator_get(&client->dev, "vcc_i2c"); + if (IS_ERR(vcc_i2c)) { + GTP_ERROR("regulator get of vcc_i2c failed"); + ret = PTR_ERR(vcc_i2c); + vcc_i2c = NULL; + goto ERR_GET_VCC; + } + } + + if (on) { + GTP_DEBUG("GTP power on."); + ret = regulator_enable(vdd_ana); + udelay(2); + ret = regulator_enable(vcc_i2c); + } else { + GTP_DEBUG("GTP power off."); + ret = regulator_disable(vcc_i2c); + udelay(2); + ret = regulator_disable(vdd_ana); + } + return ret; + +ERR_GET_VCC: + regulator_put(vdd_ana); + return ret; +} +#endif + +#ifdef PMX_DRIVER_GT915L +static int goodix_ts_pinctrl_init(struct goodix_ts_data *goodix_data) +{ + int retval; + + goodix_data->ts_pinctrl = devm_pinctrl_get(&(goodix_data->client->dev)); + if (IS_ERR_OR_NULL(goodix_data->ts_pinctrl)) { + retval = PTR_ERR(goodix_data->ts_pinctrl); + dev_dbg(&goodix_data->client->dev, "Target does not use pinctrl %d\n", retval); + goto err_pinctrl_get; + } + goodix_data->pinctrl_state_active = pinctrl_lookup_state(goodix_data->ts_pinctrl, PINCTRL_STATE_ACTIVE); + + if (IS_ERR_OR_NULL(goodix_data->pinctrl_state_active)) { + retval = PTR_ERR(goodix_data->pinctrl_state_active); + dev_err(&goodix_data->client->dev, "Can not lookup %s pinstate %d\n", PINCTRL_STATE_ACTIVE,retval); + goto err_pinctrl_lookup; + } + + goodix_data->pinctrl_state_suspend = pinctrl_lookup_state(goodix_data->ts_pinctrl, PINCTRL_STATE_SUSPEND); + + if (IS_ERR_OR_NULL(goodix_data->pinctrl_state_suspend)) { + retval = PTR_ERR(goodix_data->pinctrl_state_suspend); + dev_err(&goodix_data->client->dev, "Can not lookup %s pinstate %d\n", PINCTRL_STATE_SUSPEND,retval); + goto err_pinctrl_lookup; + } + + goodix_data->pinctrl_state_release = pinctrl_lookup_state(goodix_data->ts_pinctrl, PINCTRL_STATE_RELEASE); + + if (IS_ERR_OR_NULL(goodix_data->pinctrl_state_release)) { + retval = PTR_ERR(goodix_data->pinctrl_state_release); + dev_dbg(&goodix_data->client->dev, "Can not lookup %s pinstate %d\n", PINCTRL_STATE_RELEASE,retval); + } + return 0; + +err_pinctrl_lookup: + devm_pinctrl_put(goodix_data->ts_pinctrl); +err_pinctrl_get: + goodix_data->ts_pinctrl = NULL; + return retval; +} + +static void goodix_ts_pinctrl_free(struct goodix_ts_data *goodix_data) +{ + /* Put pinctrl if target uses pinctrl */ + if (!IS_ERR_OR_NULL(goodix_data->ts_pinctrl)) { + devm_pinctrl_put(goodix_data->ts_pinctrl); + goodix_data->ts_pinctrl = NULL; + } +} + +static int goodix_ts_pinctrl_select(struct goodix_ts_data *goodix_data, bool on) +{ + struct pinctrl_state *pins_state; + int ret; + + pins_state = on ? goodix_data->pinctrl_state_active + : goodix_data->pinctrl_state_suspend; + if (!IS_ERR_OR_NULL(pins_state)) { + ret = pinctrl_select_state(goodix_data->ts_pinctrl, pins_state); + if (ret) { + dev_err(&goodix_data->client->dev, + "can not set %s pins\n", + on ? "pmx_ts_active" : "pmx_ts_suspend"); + return ret; + } + } else { + dev_err(&goodix_data->client->dev, + "not a valid '%s' pinstate\n", + on ? "pmx_ts_active" : "pmx_ts_suspend"); + } + + return 0; +} + +#endif + +void parse_cmdline_for_gt915(void) +{ + int ret; + char *cmdline_tp; + char *temp; + + cmdline_tp = strstr(saved_command_line, "androidboot.mode="); + if (cmdline_tp != NULL) { + temp = cmdline_tp + strlen("androidboot.mode="); + ret = strncmp(temp, "ffbm", strlen("ffbm")); + if (ret==0) { + gtp_ics_slot_report= 1;/* factory mode*/ + return; + } + } + gtp_ics_slot_report = 0; + return; +} + +static int get_boot_mode(struct i2c_client *client) +{ + int ret; + char *cmdline_tp = NULL; + char *temp; + char cmd_line[15] = {'\0'}; + + cmdline_tp = strstr(saved_command_line, "androidboot.mode="); + if (cmdline_tp != NULL) { + temp = cmdline_tp + strlen("androidboot.mode="); + ret = strncmp(temp, "ffbm", strlen("ffbm")); + memcpy(cmd_line, temp, 10); + dev_err(&client->dev, "cmd_line =%s \n", cmd_line); + if (ret == 0) { + dev_err(&client->dev, "mode: ffbm\n"); + return 1;/* factory mode*/ + } else { + dev_err(&client->dev, "mode: no ffbm\n"); + return 2;/* no factory mode*/ + } + } + dev_err(&client->dev, "has no androidboot.mode \n"); + return 0; +} + + +static int gtp_read_lockdown_info(void) +{ + int ret, k; + char buf[2+GTP_LOCKDOWN_SIZE] = {GTP_READ_LOCKDOWN_INFO_ADDR >> 8, GTP_READ_LOCKDOWN_INFO_ADDR & 0xFF}; + ret = gtp_i2c_read(i2c_connect_client, buf, GTP_LOCKDOWN_SIZE+2); + if (ret < 0) { + printk("Read Lockdown info error!"); + return -1; + } + + for (k = 0; k < GTP_LOCKDOWN_SIZE; k++) { + lockdown_info[k] = buf[2+k]; + } + + TP_Maker = lockdown_info[0]; + LCD_Maker = lockdown_info[1]; + Panel_Ink = lockdown_info[2]; + tp_color = lockdown_info[2]; + printk("Lockdown info: %02X %02X %02X %02X %02X %02X %02X %02X", + lockdown_info[0], lockdown_info[1], + lockdown_info[2], lockdown_info[3], + lockdown_info[4], lockdown_info[5], + lockdown_info[6], lockdown_info[7]); + + printk("WT: TP_Maker = %d \n", TP_Maker); + printk("WT: LCD_Maker = %d \n", LCD_Maker); + printk("WT: Panel_Ink = %d \n", Panel_Ink); + return 0; +} + +int gtp_hardwareinfo_set(void) +{ + char color[HARDWARE_MAX_ITEM_LONGTH]; + char vendor[HARDWARE_MAX_ITEM_LONGTH]; + int ret; + + gtp_read_lockdown_info(); + switch (tp_color) { + case TP_White: + snprintf(color,HARDWARE_MAX_ITEM_LONGTH,"White"); + break; + case TP_Black: + snprintf(color,HARDWARE_MAX_ITEM_LONGTH,"Black"); + break; + case TP_Golden: + snprintf(color,HARDWARE_MAX_ITEM_LONGTH,"Golden"); + break; + default: + snprintf(color,HARDWARE_MAX_ITEM_LONGTH,"Other Color"); + } + + switch (tp_sensor_id) { + case 1: + snprintf(vendor,HARDWARE_MAX_ITEM_LONGTH,"EACH"); + break; + case 2: + snprintf(vendor,HARDWARE_MAX_ITEM_LONGTH,"BIEL"); + break; + default: + snprintf(vendor, HARDWARE_MAX_ITEM_LONGTH, "Other Vendor"); + } + + ret = gtp_i2c_read_dbl_check(i2c_client_point, GTP_REG_CONFIG_DATA, &cfg_version, 1); + if (ret == FAIL) { + printk("Read IC Config Version Error\n"); + return -1; + } + + printk("IC Config Version: %d, 0x%02x", cfg_version, cfg_version); + sprintf(tp_string_version, "%s,GT915L_%x,V%d,%s", vendor, IC_Version, cfg_version, color); + hardwareinfo_set_prop(HARDWARE_TP, tp_string_version); + return 0; +} + +/******************************************************* +Function: + I2c probe. +Input: + client: i2c device struct. + id: device id. +Output: + Executive outcomes. + 0: succeed. +*******************************************************/ +static int goodix_ts_probe(struct i2c_client *client, const struct i2c_device_id *id) +{ + s32 ret = -1; + struct goodix_ts_data *ts; + u16 version_info; +#ifdef PMX_DRIVER_GT915L + int err; +#endif + + GTP_DEBUG_FUNC(); + + parse_cmdline_for_gt915(); + + GTP_INFO("GTP Driver Version: %s", GTP_DRIVER_VERSION); + GTP_INFO("GTP I2C Address: 0x%02x", client->addr); + + i2c_connect_client = client; + i2c_client_point = client; + + if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { + GTP_ERROR("I2C check functionality failed."); + return -ENODEV; + } + ts = kzalloc(sizeof(*ts), GFP_KERNEL); + if (ts == NULL) { + GTP_ERROR("Alloc GFP_KERNEL memory failed."); + return -ENOMEM; + } + + ts->client = client; + +#ifdef GTP_CONFIG_OF /* device tree support */ + if (client->dev.of_node) { + gtp_parse_dt(&client->dev); + } + ret = gtp_power_switch(client, 1); + if (ret) { + GTP_ERROR("GTP power on failed."); + return -EINVAL; + } +#else /* use gpio defined in gt9xx.h */ + gtp_rst_gpio = GTP_RST_PORT; + gtp_int_gpio = GTP_INT_PORT; +#endif + +#ifdef PMX_DRIVER_GT915L + err=goodix_ts_pinctrl_init(ts); + if (!err && ts->ts_pinctrl) { + ret = goodix_ts_pinctrl_select(ts, 1); + if (ret<0) { + dev_err(&client->dev,"can not get idle pin state\n"); + goto gtp_power_off; + } + } +#endif + + INIT_WORK(&ts->work, goodix_ts_work_func); + ts->client = client; + spin_lock_init(&ts->irq_lock); +#if GTP_ESD_PROTECT + ts->clk_tick_cnt = 2 * HZ; + GTP_DEBUG("Clock ticks for an esd cycle: %d", ts->clk_tick_cnt); + spin_lock_init(&ts->esd_lock); +#endif + i2c_set_clientdata(client, ts); + ts->gtp_rawdiff_mode = 0; + ret = gtp_request_io_port(ts); + if (ret < 0) { + GTP_ERROR("GTP request IO port failed."); + kfree(ts); + return ret; + } + +#if GTP_COMPATIBLE_MODE + gtp_get_chip_type(ts); + if (CHIP_TYPE_GT9F == ts->chip_type) { + ret = gtp_gt9xxf_init(ts->client); + if (FAIL == ret) { + GTP_INFO("Failed to init GT9XXF."); + } + } +#endif + + ret = gtp_i2c_test(client); + if (ret < 0) { + GTP_ERROR("I2C communication ERROR!"); + goto free_reset_irq_gpio; + } + + ret = gtp_read_version(client, &version_info); + if (ret < 0) { + GTP_ERROR("Read version failed."); + goto free_reset_irq_gpio; + } + + IC_Version = version_info; + + ret = gtp_init_panel(ts); + if (ret < 0) { + GTP_ERROR("GTP init panel failed."); + ts->abs_x_max = GTP_MAX_WIDTH; + ts->abs_y_max = GTP_MAX_HEIGHT; + ts->int_trigger_type = GTP_INT_TRIGGER; + } + + gt91xx_config_proc = proc_create(GT91XX_CONFIG_PROC_FILE, 0666, NULL, &config_proc_ops); + if (gt91xx_config_proc == NULL) { + GTP_ERROR("create_proc_entry %s failed\n", GT91XX_CONFIG_PROC_FILE); + } else { + GTP_INFO("create proc entry %s success", GT91XX_CONFIG_PROC_FILE); + } + +#if GTP_ESD_PROTECT + gtp_esd_switch(client, SWITCH_ON); +#endif + +#if GTP_AUTO_UPDATE + err = get_boot_mode(client); + if (err == 0) { + ret = gup_init_update_proc(ts); + if (ret < 0) { + GTP_ERROR("Create update thread error."); + } + } else { + GTP_INFO("not nomal_boot\n"); + } +#endif + + ret = gtp_request_input_dev(ts); + if (ret < 0) { + GTP_ERROR("GTP request input dev failed"); + } + + ret = gtp_request_irq(ts); + if (ret < 0) { + GTP_INFO("GTP works in polling mode."); + } else { + GTP_INFO("GTP works in interrupt mode."); + } + + if (ts->use_irq) { + gtp_irq_enable(ts); +#if GTP_GESTURE_WAKEUP + enable_irq_wake(client->irq); +#endif + } + +#if WT_ADD_CTP_INFO + gtp_hardwareinfo_set(); +#endif + +#ifdef CONFIG_TOUCHSCREEN_LOCKDOWN_INFO + ctp_lockdown_fucntion_proc_file(); +#endif + + /* register suspend and resume fucntion*/ + gtp_register_powermanger(ts); + +#if GTP_CREATE_WR_NODE + init_wr_node(client); +#endif + return 0; + +free_reset_irq_gpio: + if (gpio_is_valid(gtp_rst_gpio)) + GTP_GPIO_FREE(gtp_rst_gpio); + if (ts->ts_pinctrl) { + err = goodix_ts_pinctrl_select(ts, false); + if (err < 0) + GTP_ERROR("Cannot get idle pinctrl state\n"); + } + + if (gpio_is_valid(gtp_int_gpio)) + GTP_GPIO_FREE(gtp_int_gpio); + if (ts->ts_pinctrl) { + err = goodix_ts_pinctrl_select(ts, false); + if (err < 0) + GTP_ERROR("Cannot get idle pinctrl state\n"); + } + + goodix_ts_pinctrl_free(ts); + +gtp_power_off: + gtp_power_switch(client, 0); + + return err; +} + + +/******************************************************* +Function: + Goodix touchscreen driver release function. +Input: + client: i2c device struct. +Output: + Executive outcomes. 0---succeed. +*******************************************************/ +static int goodix_ts_remove(struct i2c_client *client) +{ + struct goodix_ts_data *ts = i2c_get_clientdata(client); + + GTP_DEBUG_FUNC(); + + gtp_unregister_powermanger(ts); + +#if GTP_CREATE_WR_NODE + uninit_wr_node(); +#endif + +#if GTP_ESD_PROTECT + destroy_workqueue(gtp_esd_check_workqueue); +#endif + + if (ts) { + if (ts->use_irq) { + GTP_GPIO_AS_INPUT(gtp_int_gpio); + GTP_GPIO_FREE(gtp_int_gpio); + free_irq(client->irq, ts); + } else { + hrtimer_cancel(&ts->timer); + } + } + + GTP_INFO("GTP driver removing..."); + i2c_set_clientdata(client, NULL); + input_unregister_device(ts->input_dev); + kfree(ts); + + return 0; +} + + +/******************************************************* +Function: + Early suspend function. +Input: + h: early_suspend struct. +Output: + None. +*******************************************************/ +static void goodix_ts_suspend(struct goodix_ts_data *ts) +{ + s8 ret = -1; + + GTP_DEBUG_FUNC(); + if (ts->enter_update) { + return; + } + GTP_INFO("System suspend."); + + ts->gtp_is_suspend = 1; +#if GTP_ESD_PROTECT + gtp_esd_switch(ts->client, SWITCH_OFF); +#endif + +#if GTP_GESTURE_WAKEUP + GTP_INFO("Gesture gtp_gesture_onoff :%c\n",gtp_gesture_onoff); + if ('1' == gtp_gesture_onoff) + ret = gtp_enter_doze(ts); + else +#endif + { + if (ts->use_irq) { + gtp_irq_disable(ts); + } else { + hrtimer_cancel(&ts->timer); + } + ret = gtp_enter_sleep(ts); + } + + if (ret < 0) { + GTP_ERROR("GTP early suspend failed."); + } + msleep(58); +} + +/******************************************************* +Function: + Late resume function. +Input: + h: early_suspend struct. +Output: + None. +*******************************************************/ +static void goodix_ts_resume(struct goodix_ts_data *ts) +{ + s8 ret = -1; + + GTP_DEBUG_FUNC(); + if (ts->enter_update) { + return; + } + GTP_INFO("System resume."); + + ret = gtp_wakeup_sleep(ts); + +#if GTP_GESTURE_WAKEUP + doze_status = DOZE_DISABLED; +#endif + + if (ret < 0) { + GTP_ERROR("GTP later resume failed."); + } +#if (GTP_COMPATIBLE_MODE) + if (CHIP_TYPE_GT9F == ts->chip_type) { + } else +#endif + { + gtp_send_cfg(ts->client); + } + + if (ts->use_irq) { + GTP_DEBUG("GTP use_irq."); + gtp_irq_enable(ts); + } else { + hrtimer_start(&ts->timer, ktime_set(1, 0), HRTIMER_MODE_REL); + } + + ts->gtp_is_suspend = 0; +#if GTP_ESD_PROTECT + gtp_esd_switch(ts->client, SWITCH_ON); +#endif +} + + +#if defined(CONFIG_FB) +/* frame buffer notifier block control the suspend/resume procedure */ +static int gtp_fb_notifier_callback(struct notifier_block *noti, unsigned long event, void *data) +{ + struct fb_event *ev_data = data; + struct goodix_ts_data *ts = container_of(noti, struct goodix_ts_data, notifier); + int *blank; + + if (ev_data && ev_data->data && event == FB_EVENT_BLANK && ts) { + blank = ev_data->data; + if (*blank == FB_BLANK_UNBLANK) { + GTP_DEBUG("Resume by fb notifier."); + goodix_ts_resume(ts); + + } else if (*blank == FB_BLANK_POWERDOWN) { + GTP_DEBUG("Suspend by fb notifier."); + goodix_ts_suspend(ts); + } + } + + return 0; +} +#elif defined(CONFIG_PM) +/* bus control the suspend/resume procedure */ +static int gtp_pm_suspend(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct goodix_ts_data *ts = i2c_get_clientdata(client); + + if (ts) { + GTP_DEBUG("Suspend by i2c pm."); + goodix_ts_suspend(ts); + } + + return 0; +} +static int gtp_pm_resume(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct goodix_ts_data *ts = i2c_get_clientdata(client); + + if (ts) { + GTP_DEBUG("Resume by i2c pm."); + goodix_ts_resume(ts); + } + + return 0; +} + +static struct dev_pm_ops gtp_pm_ops = { + .suspend = gtp_pm_suspend, + .resume = gtp_pm_resume, +}; + +#elif defined(CONFIG_HAS_EARLYSUSPEND) +/* earlysuspend module the suspend/resume procedure */ +static void gtp_early_suspend(struct early_suspend *h) { + struct goodix_ts_data *ts = container_of(h, struct goodix_ts_data, early_suspend); + + if (ts) { + GTP_DEBUG("Suspend by earlysuspend module."); + goodix_ts_suspend(ts); + } +} +static void gtp_early_resume(struct early_suspend *h) +{ + struct goodix_ts_data *ts = container_of(h, struct goodix_ts_data, early_suspend); + + if (ts) { + GTP_DEBUG("Resume by earlysuspend module."); + goodix_ts_resume(ts); + } +} +#endif + +static int gtp_register_powermanger(struct goodix_ts_data *ts) +{ +#if defined(CONFIG_FB) + ts->notifier.notifier_call = gtp_fb_notifier_callback; + fb_register_client(&ts->notifier); + +#elif defined(CONFIG_HAS_EARLYSUSPEND) + ts->early_suspend.level = EARLY_SUSPEND_LEVEL_BLANK_SCREEN + 1; + ts->early_suspend.suspend = goodix_ts_early_suspend; + ts->early_suspend.resume = goodix_ts_late_resume; + register_early_suspend(&ts->early_suspend); +#endif + + return 0; +} + +static int gtp_unregister_powermanger(struct goodix_ts_data *ts) +{ +#if defined(CONFIG_FB) + fb_unregister_client(&ts->notifier); + +#elif defined(CONFIG_HAS_EARLYSUSPEND) + unregister_early_suspend(&ts->early_suspend); +#endif + return 0; +} + +/* end */ + +#if GTP_ESD_PROTECT +s32 gtp_i2c_read_no_rst(struct i2c_client *client, u8 *buf, s32 len) +{ + struct i2c_msg msgs[2]; + s32 ret = -1; + s32 retries = 0; + + GTP_DEBUG_FUNC(); + + msgs[0].flags = !I2C_M_RD; + msgs[0].addr = client->addr; + msgs[0].len = GTP_ADDR_LENGTH; + msgs[0].buf = &buf[0]; + + msgs[1].flags = I2C_M_RD; + msgs[1].addr = client->addr; + msgs[1].len = len - GTP_ADDR_LENGTH; + msgs[1].buf = &buf[GTP_ADDR_LENGTH]; + + + while (retries < 5) { + ret = i2c_transfer(client->adapter, msgs, 2); + if (ret == 2) + break; + retries++; + } + if ((retries >= 5)) { + GTP_ERROR("I2C Read: 0x%04X, %d bytes failed, errcode: %d!", (((u16)(buf[0] << 8)) | buf[1]), len-2, ret); + } + return ret; +} + +s32 gtp_i2c_write_no_rst(struct i2c_client *client, u8 *buf, s32 len) +{ + struct i2c_msg msg; + s32 ret = -1; + s32 retries = 0; + + GTP_DEBUG_FUNC(); + + msg.flags = !I2C_M_RD; + msg.addr = client->addr; + msg.len = len; + msg.buf = buf; + + while (retries < 5) { + ret = i2c_transfer(client->adapter, &msg, 1); + if (ret == 1) + break; + retries++; + } + if ((retries >= 5)) { + GTP_ERROR("I2C Write: 0x%04X, %d bytes failed, errcode: %d!", (((u16)(buf[0] << 8)) | buf[1]), len-2, ret); + } + return ret; +} +/******************************************************* +Function: + switch on & off esd delayed work +Input: + client: i2c device + on: SWITCH_ON / SWITCH_OFF +Output: + void +*********************************************************/ +void gtp_esd_switch(struct i2c_client *client, s32 on) +{ + struct goodix_ts_data *ts; + + ts = i2c_get_clientdata(client); + spin_lock(&ts->esd_lock); + + if (SWITCH_ON == on) { + if (!ts->esd_running) { + ts->esd_running = 1; + spin_unlock(&ts->esd_lock); + GTP_INFO("Esd started"); + queue_delayed_work(gtp_esd_check_workqueue, >p_esd_check_work, ts->clk_tick_cnt); + } else { + spin_unlock(&ts->esd_lock); + } + } else { + if (ts->esd_running) { + ts->esd_running = 0; + spin_unlock(&ts->esd_lock); + GTP_INFO("Esd cancelled"); + cancel_delayed_work_sync(>p_esd_check_work); + } else { + spin_unlock(&ts->esd_lock); + } + } +} + +/******************************************************* +Function: + Initialize external watchdog for esd protect +Input: + client: i2c device. +Output: + result of i2c write operation. + 1: succeed, otherwise: failed +*********************************************************/ +static s32 gtp_init_ext_watchdog(struct i2c_client *client) +{ + u8 opr_buffer[3] = {0x80, 0x41, 0xAA}; + GTP_DEBUG("[Esd]Init external watchdog"); + return gtp_i2c_write_no_rst(client, opr_buffer, 3); +} + +/******************************************************* +Function: + Esd protect function. + External watchdog added by meta, 2013/03/07 +Input: + work: delayed work +Output: + None. +*******************************************************/ +static void gtp_esd_check_func(struct work_struct *work) +{ + s32 i; + s32 ret = -1; + struct goodix_ts_data *ts = NULL; + u8 esd_buf[5] = {0x80, 0x40}; + + GTP_DEBUG_FUNC(); + + ts = i2c_get_clientdata(i2c_connect_client); + + if (ts->gtp_is_suspend || ts->enter_update) { + GTP_INFO("Esd suspended!"); + return; + } + + for (i = 0; i < 3; i++) { + ret = gtp_i2c_read_no_rst(ts->client, esd_buf, 4); + + GTP_DEBUG("[Esd]0x8040 = 0x%02X, 0x8041 = 0x%02X", esd_buf[2], esd_buf[3]); + if ((ret < 0)) { + continue; + } else { + if ((esd_buf[2] == 0xAA) || (esd_buf[3] != 0xAA)) { + u8 chk_buf[4] = {0x80, 0x40}; + + gtp_i2c_read_no_rst(ts->client, chk_buf, 4); + GTP_DEBUG("[Check]0x8040 = 0x%02X, 0x8041 = 0x%02X", chk_buf[2], chk_buf[3]); + if ((chk_buf[2] == 0xAA) || (chk_buf[3] != 0xAA)) { + i = 3; + break; + } else { + continue; + } + } else { + esd_buf[2] = 0xAA; + gtp_i2c_write_no_rst(ts->client, esd_buf, 3); + break; + } + } + } + if (i >= 3) { + #if GTP_COMPATIBLE_MODE + if (CHIP_TYPE_GT9F == ts->chip_type) { + if (ts->rqst_processing) { + GTP_INFO("Request processing, no esd recovery"); + } else { + GTP_ERROR("IC working abnormally! Process esd recovery."); + esd_buf[0] = 0x42; + esd_buf[1] = 0x26; + esd_buf[2] = 0x01; + esd_buf[3] = 0x01; + esd_buf[4] = 0x01; + gtp_i2c_write_no_rst(ts->client, esd_buf, 5); + msleep(50); + #ifdef GTP_CONFIG_OF + gtp_power_switch(ts->client, 0); + msleep(20); + gtp_power_switch(ts->client, 1); + msleep(20); + #endif + gtp_esd_recovery(ts->client); + } + } else + #endif + { + GTP_ERROR("IC working abnormally! Process reset guitar."); + esd_buf[0] = 0x42; + esd_buf[1] = 0x26; + esd_buf[2] = 0x01; + esd_buf[3] = 0x01; + esd_buf[4] = 0x01; + gtp_i2c_write_no_rst(ts->client, esd_buf, 5); + msleep(50); + #ifdef GTP_CONFIG_OF + gtp_power_switch(ts->client, 0); + msleep(20); + gtp_power_switch(ts->client, 1); + msleep(20); + #endif + gtp_reset_guitar(ts->client, 50); + msleep(50); + gtp_send_cfg(ts->client); + } + } + + if (!ts->gtp_is_suspend) { + queue_delayed_work(gtp_esd_check_workqueue, >p_esd_check_work, ts->clk_tick_cnt); + } else { + GTP_INFO("Esd suspended!"); + } + return; +} +#endif + +#ifdef GTP_CONFIG_OF +static const struct of_device_id goodix_match_table[] = { + {.compatible = "goodix,gt9xx",}, + { }, +}; +#endif + +static const struct i2c_device_id goodix_ts_id[] = { + { GTP_I2C_NAME, 0 }, + { } +}; + +static struct i2c_driver goodix_ts_driver = { + .probe = goodix_ts_probe, + .remove = goodix_ts_remove, + .id_table = goodix_ts_id, + .driver = { + .name = GTP_I2C_NAME, + .owner = THIS_MODULE, +#ifdef GTP_CONFIG_OF + .of_match_table = goodix_match_table, +#endif +#if !defined(CONFIG_FB) && defined(CONFIG_PM) + .pm = >p_pm_ops, +#endif + }, +}; + +/******************************************************* +Function: + Driver Install function. +Input: + None. +Output: + Executive Outcomes. 0---succeed. +********************************************************/ + +static int __init goodix_ts_init(void) +{ + s32 ret; + + GTP_DEBUG_FUNC(); + GTP_INFO("GTP driver installing..."); + goodix_wq = create_singlethread_workqueue("goodix_wq"); + if (!goodix_wq) { + GTP_ERROR("Creat workqueue failed."); + return -ENOMEM; + } +#if GTP_ESD_PROTECT + INIT_DELAYED_WORK(>p_esd_check_work, gtp_esd_check_func); + gtp_esd_check_workqueue = create_workqueue("gtp_esd_check"); +#endif + ret = i2c_add_driver(&goodix_ts_driver); + return ret; +} + +/******************************************************* +Function: + Driver uninstall function. +Input: + None. +Output: + Executive Outcomes. 0---succeed. +********************************************************/ +static void __exit goodix_ts_exit(void) +{ + GTP_DEBUG_FUNC(); + GTP_INFO("GTP driver exited."); + i2c_del_driver(&goodix_ts_driver); + if (goodix_wq) { + destroy_workqueue(goodix_wq); + } +} + +device_initcall_sync(goodix_ts_init); +module_exit(goodix_ts_exit); + +MODULE_DESCRIPTION("GTP Series Driver"); +MODULE_LICENSE("GPL"); diff --git a/drivers/input/touchscreen/GT915L/gt9xx.h b/drivers/input/touchscreen/GT915L/gt9xx.h new file mode 100644 index 0000000000000..15462378706c1 --- /dev/null +++ b/drivers/input/touchscreen/GT915L/gt9xx.h @@ -0,0 +1,370 @@ +/* + * Goodix GT9xx touchscreen driver + * + * Copyright (C) 2010 - 2014 Goodix. Ltd. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be a reference + * to you, when you are integrating the GOODiX's CTP IC into your system, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * Version: 2.4 + * Release Date: 2014/11/28 + */ + +#ifndef _GOODIX_GT9XX_H_ +#define _GOODIX_GT9XX_H_ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef CONFIG_OF +#include +#include +#endif +#ifdef CONFIG_FB +#include +#include +#endif +#ifdef CONFIG_HAS_EARLYSUSPEND +#include +#endif + +#ifndef GTP_CONFIG_OF +#define GTP_CONFIG_OF +#endif + +#ifndef CONFIG_PM +#define CONFIG_PM +#endif + +#define PMX_DRIVER_GT915L + + +#define GTP_CUSTOM_CFG 1 +#define GTP_CHANGE_X2Y 0 +#define GTP_DRIVER_SEND_CFG 1 +#define GTP_HAVE_TOUCH_KEY 1 +#define GTP_POWER_CTRL_SLEEP 0 +#define GTP_ICS_SLOT_REPORT 1 + +#define GTP_AUTO_UPDATE 1 +#define GTP_HEADER_FW_UPDATE 1 +#define GTP_AUTO_UPDATE_CFG 0 + +#define GTP_COMPATIBLE_MODE 0 + +#define GTP_CREATE_WR_NODE 1 +#define GTP_ESD_PROTECT 1 + +#define GTP_WITH_PEN 0 +#define GTP_PEN_HAVE_BUTTON 0 + +#define GTP_GESTURE_WAKEUP 1 +#if GTP_GESTURE_WAKEUP +#define GTP_GESTURE_TPYE_STR "RLUDKcemosvwz" +#define GTP_GESTURE_SUPPORT_ONOFF 'Y' +#define GTP_PROC_DRIVER_VERSION "GTP_V1.0_20160606" +#define GTP_GESTURE_MAX_POINT_COUNT 64 +#define MXT_INPUT_EVENT_START 0 +#define MXT_INPUT_EVENT_SENSITIVE_MODE_OFF 0 +#define MXT_INPUT_EVENT_SENSITIVE_MODE_ON 1 +#define MXT_INPUT_EVENT_STYLUS_MODE_OFF 2 +#define MXT_INPUT_EVENT_STYLUS_MODE_ON 3 +#define MXT_INPUT_EVENT_WAKUP_MODE_OFF 4 +#define MXT_INPUT_EVENT_WAKUP_MODE_ON 5 +#define MXT_INPUT_EVENT_EDGE_DISABLE 6 +#define MXT_INPUT_EVENT_EDGE_FINGER 7 +#define MXT_INPUT_EVENT_EDGE_HANDGRIP 8 +#define MXT_INPUT_EVENT_EDGE_FINGER_HANDGRIP 9 +#define MXT_INPUT_EVENT_END 9 +#endif + +#define GTP_GLOVE_MODE 1 +#if GTP_GLOVE_MODE +#define GTP_GLOVE_SUPPORT_ONOFF 'Y' +#endif + +#define WT_ADD_CTP_INFO 1 + +#define GTP_DEBUG_ON 0 +#define GTP_DEBUG_ARRAY_ON 0 +#define GTP_DEBUG_FUNC_ON 0 + +#if GTP_COMPATIBLE_MODE +typedef enum { + CHIP_TYPE_GT9 = 0, + CHIP_TYPE_GT9F = 1, +} CHIP_TYPE_T; +#endif + +struct goodix_ts_data { + spinlock_t irq_lock; + struct i2c_client *client; + struct input_dev *input_dev; + struct hrtimer timer; + struct work_struct work; + s32 irq_is_disable; + s32 use_irq; + u16 abs_x_max; + u16 abs_y_max; + u8 max_touch_num; + u8 int_trigger_type; + u8 green_wake_mode; + u8 enter_update; + u8 gtp_is_suspend; + u8 gtp_rawdiff_mode; + int gtp_cfg_len; + u8 fw_error; + u8 pnl_init_error; + +#if defined(CONFIG_FB) + struct notifier_block notifier; +#elif defined(CONFIG_HAS_EARLYSUSPEND) + struct early_suspend early_suspend; +#endif + +#if GTP_WITH_PEN + struct input_dev *pen_dev; +#endif + +#if GTP_ESD_PROTECT + spinlock_t esd_lock; + u8 esd_running; + s32 clk_tick_cnt; +#endif +#if GTP_COMPATIBLE_MODE + u16 bak_ref_len; + s32 ref_chk_fs_times; + s32 clk_chk_fs_times; + CHIP_TYPE_T chip_type; + u8 rqst_processing; + u8 is_950; +#endif + +#ifdef PMX_DRIVER_GT915L + struct pinctrl *ts_pinctrl; + struct pinctrl_state *pinctrl_state_active; + struct pinctrl_state *pinctrl_state_suspend; + struct pinctrl_state *pinctrl_state_release; + + struct pinctrl_state *pinctrl_state_int_active; + struct pinctrl_state *pinctrl_state_reset_active; +#endif +}; + +extern u16 show_len; +extern u16 total_len; + + +extern unsigned int gtp_rst_gpio; +extern unsigned int gtp_int_gpio; + + + + + +/* sensor_opt1 sensor_opt2 Sensor_ID + GND GND 0 + VDDIO GND 1 + NC GND 2 + GND NC/300K 3 + VDDIO NC/300K 4 + NC NC/300K 5 +*/ + + +#define CTP_CFG_GROUP0 {\ + 0x41, 0xD0, 0x02, 0x00, 0x05, 0x05, 0x75, 0x01, 0x01, 0x0F, 0x24, \ + 0x0F, 0x64, 0x3C, 0x03, 0x05, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, \ + 0x00, 0x16, 0x19, 0x1C, 0x14, 0x8C, 0x0E, 0x0E, 0x24, 0x00, 0x31, \ + 0x0D, 0x00, 0x00, 0x00, 0x83, 0x33, 0x1D, 0x00, 0x41, 0x00, 0x00, \ + 0x00, 0x00, 0x00, 0x08, 0x0A, 0x00, 0x2B, 0x1C, 0x3C, 0x94, 0xD5, \ + 0x03, 0x08, 0x00, 0x00, 0x04, 0x93, 0x1E, 0x00, 0x82, 0x23, 0x00, \ + 0x74, 0x29, 0x00, 0x69, 0x2F, 0x00, 0x5F, 0x37, 0x00, 0x5F, 0x20, \ + 0x40, 0x60, 0x00, 0xF0, 0x40, 0x30, 0x55, 0x50, 0x27, 0x00, 0x00, \ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x19, 0x00, 0x00, \ + 0x50, 0x50, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E, 0x10, 0x12, \ + 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1D, \ + 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x24, 0x26, 0x28, 0x29, 0x2A, 0x1C, \ + 0x18, 0x16, 0x14, 0x13, 0x12, 0x10, 0x0F, 0x0C, 0x0A, 0x08, 0x06, \ + 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9C, 0x01\ + } + + +#define CTP_CFG_GROUP1 {\ +0x41, 0xD0, 0x02, 0x00, 0x05, 0x05, 0x04, 0xC1, 0x12, 0x0F, 0x28, 0x0A, 0x50, 0x32, 0x03, 0x05, 0x00, 0x00, 0xFF, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8C, 0x2C, 0x0D, 0x3C, 0x3E, 0xD3, 0x07, 0x0F, 0x0F, 0x00, 0x99, 0x33, 0x10, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x29, 0x28, 0x5A, 0x94, 0x85, 0x02, 0x07, 0x00, 0x00, 0x04, 0xA9, 0x2B, 0x00, 0x92, 0x33, 0x00, 0x80, 0x3C, 0x00, 0x71, 0x46, 0x00, 0x63, 0x53, 0x00, 0x63, 0x18, 0x38, 0x58, 0x00, 0xF0, 0x4A, 0x3A, 0x77, 0x77, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x42, 0xF8, 0x0F, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x50, 0x3C, 0x02, 0x04, 0x0A, 0x0C, 0x0E, 0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x08, 0x06, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x5A, 0x00, 0x00, 0x00, 0x0F, 0x10, 0x12, 0x13, 0x14, 0x0C, 0x0A, 0x08, 0x06, 0x04, 0x02, 0x00, 0x16, 0x18, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x24, 0x28, 0x26, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x01\ + } + + +#define CTP_CFG_GROUP2 {\ +0x49, 0xD0, 0x02, 0x00, 0x05, 0x0A, 0x04, 0xC1, 0x12, 0x3F, 0x25, 0x0A, 0x5A, 0x3C, 0x03, 0x05, 0x00, 0x00, 0x00, 0x67, 0x11, 0x11, 0x30, 0x00, 0x00, 0x00, 0x00, 0x8C, 0x2C, 0x0D, 0x3C, 0x3E, 0xD3, 0x07, 0xD3, 0x07, 0x00, 0x9A, 0x33, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x28, 0x5A, 0x94, 0x80, 0x02, 0x0B, 0x00, 0x00, 0x04, 0xA9, 0x2B, 0x00, 0x92, 0x33, 0x1E, 0x80, 0x3C, 0x00, 0x71, 0x46, 0x00, 0x63, 0x53, 0x00, 0x63, 0x18, 0x38, 0x58, 0x00, 0xF0, 0x4A, 0x3A, 0x77, 0x77, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x7D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x50, 0x0F, 0x00, 0x00, 0x50, 0x3C, 0x02, 0x04, 0x0C, 0x0E, 0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x0A, 0x08, 0x06, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x18, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x28, 0x26, 0x24, 0x0C, 0x0A, 0x0F, 0x08, 0x10, 0x06, 0x12, 0x04, 0x13, 0x02, 0x14, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x01\ +} + + +#define CTP_CFG_GROUP3 {\ +} + +#define CTP_CFG_GROUP4 {\ + } + + +#define CTP_CFG_GROUP5 {\ + } + + +#define CTP_CFG_GROUP1_GLOVE {\ +0x44, 0x38, 0x04, 0x80, 0x07, 0x0A, 0x04, 0xC1, 0x12, 0x3F, 0x28, 0x0A, 0x50, 0x32, 0x03, 0x05, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8C, 0x2C, 0x0E, 0x3C, 0x3E, 0xD3, 0x07, 0xD3, 0x07, 0x00, 0xF8, 0x33, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x29, 0x32, 0x5A, 0x94, 0x85, 0x02, 0x80, 0x00, 0x00, 0x04, 0x8C, 0x35, 0x00, 0x81, 0x3B, 0x1E, 0x76, 0x43, 0x00, 0x6D, 0x4B, 0x00, 0x65, 0x55, 0x00, 0x65, 0x18, 0x40, 0x60, 0x00, 0xF0, 0x50, 0x3A, 0x77, 0x77, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x67, 0x00, 0x00, 0x00, 0x06, 0x00, 0x42, 0xF8, 0x0F, 0x00, 0x0F, 0x50, 0x0F, 0x00, 0x00, 0x50, 0x3C, 0x0C, 0x0E, 0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x0A, 0x08, 0x06, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x41, 0x00, 0x00, 0x00, 0x00, 0x04, 0x02, 0x06, 0x08, 0x0A, 0x0C, 0x0F, 0x10, 0x12, 0x13, 0x14, 0x28, 0x26, 0x24, 0x22, 0x21, 0x20, 0x1F, 0x1E, 0x1D, 0x1C, 0x18, 0x16, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9A, 0x01\ + } + + + + +#define GTP_RST_PORT 16 +#define GTP_INT_PORT 17 + +#define GTP_GPIO_AS_INPUT(pin) do {\ + gpio_direction_input(pin);\ + } while (0) +#define GTP_GPIO_AS_INT(pin) do {\ + GTP_GPIO_AS_INPUT(pin);\ + } while (0) +#define GTP_GPIO_GET_VALUE(pin) gpio_get_value(pin) +#define GTP_GPIO_OUTPUT(pin, level) gpio_direction_output(pin, level) +#define GTP_GPIO_REQUEST(pin, label) gpio_request(pin, label) +#define GTP_GPIO_FREE(pin) gpio_free(pin) +#define GTP_IRQ_TAB {IRQ_TYPE_EDGE_RISING, IRQ_TYPE_EDGE_FALLING, IRQ_TYPE_LEVEL_LOW, IRQ_TYPE_LEVEL_HIGH} + + +#if GTP_CUSTOM_CFG + #define GTP_MAX_HEIGHT 1280 + #define GTP_MAX_WIDTH 720 + #define GTP_INT_TRIGGER 0 +#else + #define GTP_MAX_HEIGHT 1280 + #define GTP_MAX_WIDTH 720 + #define GTP_INT_TRIGGER 1 +#endif +#define GTP_MAX_TOUCH 10 + + +#if GTP_HAVE_TOUCH_KEY + + #define GTP_KEY_TAB {KEY_MENU, KEY_HOMEPAGE, KEY_BACK} +#endif + + +#define GTP_DRIVER_VERSION "V2.4<2014/11/28>" +#define GTP_I2C_NAME "Goodix-TS" +#define GT91XX_CONFIG_PROC_FILE "gt9xx_config" +#define GTP_POLL_TIME 10 +#define GTP_ADDR_LENGTH 2 +#define GTP_CONFIG_MIN_LENGTH 186 +#define GTP_CONFIG_MAX_LENGTH 240 +#define FAIL 0 +#define SUCCESS 1 +#define SWITCH_OFF 0 +#define SWITCH_ON 1 + + +#define GTP_REG_BAK_REF 0x99D0 +#define GTP_REG_MAIN_CLK 0x8020 +#define GTP_REG_CHIP_TYPE 0x8000 +#define GTP_REG_HAVE_KEY 0x804E +#define GTP_REG_MATRIX_DRVNUM 0x8069 +#define GTP_REG_MATRIX_SENNUM 0x806A + +#define GTP_FL_FW_BURN 0x00 +#define GTP_FL_ESD_RECOVERY 0x01 +#define GTP_FL_READ_REPAIR 0x02 + +#define GTP_BAK_REF_SEND 0 +#define GTP_BAK_REF_STORE 1 +#define CFG_LOC_DRVA_NUM 29 +#define CFG_LOC_DRVB_NUM 30 +#define CFG_LOC_SENS_NUM 31 + +#define GTP_CHK_FW_MAX 40 +#define GTP_CHK_FS_MNT_MAX 300 +#define GTP_BAK_REF_PATH "/data/gtp_ref.bin" +#define GTP_MAIN_CLK_PATH "/data/gtp_clk.bin" +#define GTP_RQST_CONFIG 0x01 +#define GTP_RQST_BAK_REF 0x02 +#define GTP_RQST_RESET 0x03 +#define GTP_RQST_MAIN_CLOCK 0x04 +#define GTP_RQST_RESPONDED 0x00 +#define GTP_RQST_IDLE 0xFF + + + +#define GTP_READ_COOR_ADDR 0x814E +#define GTP_REG_SLEEP 0x8040 +#define GTP_REG_SENSOR_ID 0x814A +#define GTP_REG_CONFIG_DATA 0x8047 +#define GTP_REG_VERSION 0x8140 + +#define RESOLUTION_LOC 3 +#define TRIGGER_LOC 8 + +#define CFG_GROUP_LEN(p_cfg_grp) (sizeof(p_cfg_grp) / sizeof(p_cfg_grp[0])) + +#define GTP_INFO(fmt, arg...) printk("<<-GTP-INFO->> "fmt"\n", ##arg) +#define GTP_ERROR(fmt, arg...) printk("<<-GTP-ERROR->> "fmt"\n", ##arg) +#define GTP_DEBUG(fmt, arg...) do {\ + if (GTP_DEBUG_ON)\ + printk("<<-GTP-DEBUG->> [%d]"fmt"\n", __LINE__, ##arg);\ + } while (0) +#define GTP_DEBUG_ARRAY(array, num) do {\ + s32 i;\ + u8 *a = array;\ + if (GTP_DEBUG_ARRAY_ON)\ + {\ + printk("<<-GTP-DEBUG-ARRAY->>\n");\ + for (i = 0; i < (num); i++)\ + {\ + printk("%02x ", (a)[i]);\ + if ((i + 1) % 10 == 0)\ + {\ + printk("\n");\ + } \ + } \ + printk("\n");\ + } \ + } while (0) +#define GTP_DEBUG_FUNC() do {\ + if (GTP_DEBUG_FUNC_ON)\ + printk("<<-GTP-FUNC->> Func:%s@Line:%d\n", __func__, __LINE__);\ + } while (0) +#define GTP_SWAP(x, y) do {\ + typeof(x) z = x;\ + x = y;\ + y = z;\ + } while (0) + + +#ifdef CONFIG_OF +int gtp_parse_dt_cfg(struct device *dev, u8 *cfg, int *cfg_len, u8 sid); +#endif +#endif /* _GOODIX_GT9XX_H_ */ diff --git a/drivers/input/touchscreen/GT915L/gt9xx_firmware.h b/drivers/input/touchscreen/GT915L/gt9xx_firmware.h new file mode 100644 index 0000000000000..4ba50cf969925 --- /dev/null +++ b/drivers/input/touchscreen/GT915L/gt9xx_firmware.h @@ -0,0 +1,43 @@ +/* Copyright Statement: + * This firmware are protected under relevant copyright laws,this information contained + * herein is confidential and proprietary to Goodix. + * + * Copyright (C) 2010 - 2014 Goodix. Ltd. + * Copyright (C) 2018 XiaoMi, Inc. + * + * WARNING:The GTP_COMPATIBLE_MODE part of this file was generated by the specialized tools, + * please do not modify it manually! + * +*/ + +#ifndef _GT9XX_FIRMWARE_H_ +#define _GT9XX_FIRMWARE_H_ + + +#if GTP_HEADER_FW_UPDATE + + +#define WT_ADD_FW_BIEL + +unsigned char gtp_default_FW[] = { + +#ifdef WT_ADD_FW_EACH + #include "FW_EACH.txt" +#elif defined WT_ADD_FW_BIEL + #include "FW_BIEL.txt" +#endif +}; +#endif + +/* +*[HW INFO]00900600 +*[PID]910 +*[VID]1010 +*[GENERATED]2013/08/27 20:59:13 +*/ +#if GTP_COMPATIBLE_MODE +unsigned char gtp_default_FW_fl[] = { +}; +#endif + +#endif diff --git a/drivers/input/touchscreen/GT915L/gt9xx_update.c b/drivers/input/touchscreen/GT915L/gt9xx_update.c new file mode 100644 index 0000000000000..e0ccddc95b795 --- /dev/null +++ b/drivers/input/touchscreen/GT915L/gt9xx_update.c @@ -0,0 +1,3251 @@ +/* + * Goodix GT9xx touchscreen driver + * + * Copyright (C) 2010 - 2014 Goodix. Ltd. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be a reference + * to you, when you are integrating the GOODiX's CTP IC into your system, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * Version: 2.4 + * Release Date: 2014/11/28 + */ + +#include +#include "gt9xx.h" + +#include +#include +#if ((GTP_AUTO_UPDATE && GTP_HEADER_FW_UPDATE) || GTP_COMPATIBLE_MODE) + #include "gt9xx_firmware.h" +#endif + +#define GUP_REG_HW_INFO 0x4220 +#define GUP_REG_FW_MSG 0x41E4 +#define GUP_REG_PID_VID 0x8140 + +#define GUP_SEARCH_FILE_TIMES 50 + +#define UPDATE_FILE_PATH_1 "/data/_goodix_update_.bin" +#define UPDATE_FILE_PATH_2 "/sdcard/_goodix_update_.bin" + +#define CONFIG_FILE_PATH_1 "/data/_goodix_config_.cfg" +#define CONFIG_FILE_PATH_2 "/sdcard/_goodix_config_.cfg" + +#define FW_HEAD_LENGTH 14 +#define FW_SECTION_LENGTH 0x2000 +#define FW_DSP_ISP_LENGTH 0x1000 +#define FW_DSP_LENGTH 0x1000 +#define FW_BOOT_LENGTH 0x800 +#define FW_SS51_LENGTH (4 * FW_SECTION_LENGTH) +#define FW_BOOT_ISP_LENGTH 0x800 +#define FW_GLINK_LENGTH 0x3000 +#define FW_GWAKE_LENGTH (4 * FW_SECTION_LENGTH) + +#define PACK_SIZE 256 +#define MAX_FRAME_CHECK_TIME 5 + + +#define _bRW_MISCTL__SRAM_BANK 0x4048 +#define _bRW_MISCTL__MEM_CD_EN 0x4049 +#define _bRW_MISCTL__CACHE_EN 0x404B +#define _bRW_MISCTL__TMR0_EN 0x40B0 +#define _rRW_MISCTL__SWRST_B0_ 0x4180 +#define _bWO_MISCTL__CPU_SWRST_PULSE 0x4184 +#define _rRW_MISCTL__BOOTCTL_B0_ 0x4190 +#define _rRW_MISCTL__BOOT_OPT_B0_ 0x4218 +#define _rRW_MISCTL__BOOT_CTL_ 0x5094 + +#define AUTO_SEARCH_BIN 0x01 +#define AUTO_SEARCH_CFG 0x02 +#define BIN_FILE_READY 0x80 +#define CFG_FILE_READY 0x08 +#define HEADER_FW_READY 0x00 + +#pragma pack(1) +typedef struct { + u8 hw_info[4]; + u8 pid[8]; + u16 vid; +} st_fw_head; +#pragma pack() + +typedef struct { + u8 force_update; + u8 fw_flag; + struct file *file; + struct file *cfg_file; + st_fw_head ic_fw_msg; + mm_segment_t old_fs; + u32 fw_total_len; + u32 fw_burned_len; +} st_update_msg; + +st_update_msg update_msg; +u16 show_len; +u16 total_len; +u8 got_file_flag = 0; +u8 searching_file = 0; + + +int FW_VERSION_ID; +static u8 GTP_FW_SENSOR_ID; + +#if WT_ADD_CTP_INFO +extern int gtp_hardwareinfo_set(void); +#endif + +extern u8 config[GTP_CONFIG_MAX_LENGTH + GTP_ADDR_LENGTH]; +extern void gtp_reset_guitar(struct i2c_client *client, s32 ms); +extern s32 gtp_send_cfg(struct i2c_client *client); +extern s32 gtp_read_version(struct i2c_client *, u16*); +extern struct i2c_client *i2c_connect_client; +extern void gtp_irq_enable(struct goodix_ts_data *ts); +extern void gtp_irq_disable(struct goodix_ts_data *ts); +extern s32 gtp_i2c_read_dbl_check(struct i2c_client *, u16, u8 *, int); +static u8 gup_burn_fw_gwake_section(struct i2c_client *client, u8 *fw_section, u16 start_addr, u32 len, u8 bank_cmd); + +#define _CLOSE_FILE(p_file) if (p_file && !IS_ERR(p_file)) \ + { \ + filp_close(p_file, NULL); \ + } + +#if GTP_ESD_PROTECT +extern void gtp_esd_switch(struct i2c_client *, s32); +#endif + +#if GTP_COMPATIBLE_MODE +s32 gup_fw_download_proc(void *dir, u8 dwn_mode); +#endif +/******************************************************* +Function: + Read data from the i2c slave device. +Input: + client: i2c device. + buf[0~1]: read start address. + buf[2~len-1]: read data buffer. + len: GTP_ADDR_LENGTH + read bytes count +Output: + numbers of i2c_msgs to transfer: + 2: succeed, otherwise: failed +*********************************************************/ +s32 gup_i2c_read(struct i2c_client *client, u8 *buf, s32 len) +{ + struct i2c_msg msgs[2]; + s32 ret = -1; + s32 retries = 0; + + GTP_DEBUG_FUNC(); + + msgs[0].flags = !I2C_M_RD; + msgs[0].addr = client->addr; + msgs[0].len = GTP_ADDR_LENGTH; + msgs[0].buf = &buf[0]; + + + msgs[1].flags = I2C_M_RD; + msgs[1].addr = client->addr; + msgs[1].len = len - GTP_ADDR_LENGTH; + msgs[1].buf = &buf[GTP_ADDR_LENGTH]; + + + while (retries < 5) { + ret = i2c_transfer(client->adapter, msgs, 2); + if (ret == 2) + break; + retries++; + } + + return ret; +} + +/******************************************************* +Function: + Write data to the i2c slave device. +Input: + client: i2c device. + buf[0~1]: write start address. + buf[2~len-1]: data buffer + len: GTP_ADDR_LENGTH + write bytes count +Output: + numbers of i2c_msgs to transfer: + 1: succeed, otherwise: failed +*********************************************************/ +s32 gup_i2c_write(struct i2c_client *client, u8 *buf, s32 len) +{ + struct i2c_msg msg; + s32 ret = -1; + s32 retries = 0; + + GTP_DEBUG_FUNC(); + + msg.flags = !I2C_M_RD; + msg.addr = client->addr; + msg.len = len; + msg.buf = buf; + + + while (retries < 5) { + ret = i2c_transfer(client->adapter, &msg, 1); + if (ret == 1) + break; + retries++; + } + + return ret; +} + +static s32 gup_init_panel(struct goodix_ts_data *ts) +{ + s32 ret = 0; + s32 i = 0; + u8 check_sum = 0; + u8 opr_buf[16]; + u8 sensor_id = 0; + u16 version = 0; + u8 drv_cfg_version; + u8 flash_cfg_version; + +#ifndef GTP_CONFIG_OF + u8 cfg_info_group0[] = CTP_CFG_GROUP0; + u8 cfg_info_group1[] = CTP_CFG_GROUP1; + u8 cfg_info_group2[] = CTP_CFG_GROUP2; + u8 cfg_info_group3[] = CTP_CFG_GROUP3; + u8 cfg_info_group4[] = CTP_CFG_GROUP4; + u8 cfg_info_group5[] = CTP_CFG_GROUP5; + u8 *send_cfg_buf[] = {cfg_info_group0, cfg_info_group1, + cfg_info_group2, cfg_info_group3, + cfg_info_group4, cfg_info_group5}; + u8 cfg_info_len[] = { CFG_GROUP_LEN(cfg_info_group0), + CFG_GROUP_LEN(cfg_info_group1), + CFG_GROUP_LEN(cfg_info_group2), + CFG_GROUP_LEN(cfg_info_group3), + CFG_GROUP_LEN(cfg_info_group4), + CFG_GROUP_LEN(cfg_info_group5)}; + #endif + + ret = gtp_i2c_read_dbl_check(ts->client, GTP_REG_SENSOR_ID, &sensor_id, 1); + if (SUCCESS == ret) { + if (sensor_id >= 0x06) { + GTP_ERROR("Invalid sensor_id(0x%02X), No Config Sent!", sensor_id); + return -EPERM; + } + } else { + GTP_ERROR("Failed to get sensor_id, No config sent!"); + return -EPERM; + } + + /* parse config data*/ +#ifdef GTP_CONFIG_OF + GTP_DEBUG("Get config data from dts file."); + ret = gtp_parse_dt_cfg(&ts->client->dev, &config[GTP_ADDR_LENGTH], &ts->gtp_cfg_len, sensor_id); + if (ret < 0) { + GTP_ERROR("Failed to parse config data form dts file."); + ts->pnl_init_error = 1; + return -EPERM; + } +#else + GTP_DEBUG("Get config data from header file."); + if ((!cfg_info_len[1]) && (!cfg_info_len[2]) && + (!cfg_info_len[3]) && (!cfg_info_len[4]) && + (!cfg_info_len[5])) { + sensor_id = 0; + } + ts->gtp_cfg_len = cfg_info_len[sensor_id]; + memset(&config[GTP_ADDR_LENGTH], 0, GTP_CONFIG_MAX_LENGTH); + memcpy(&config[GTP_ADDR_LENGTH], send_cfg_buf[sensor_id], ts->gtp_cfg_len); +#endif + + GTP_DEBUG("Sensor_ID: %d", sensor_id); + + if (ts->gtp_cfg_len < GTP_CONFIG_MIN_LENGTH) { + GTP_ERROR("Sensor_ID(%d) matches with NULL or INVALID CONFIG GROUP! NO Config Sent! You need to check you header file CFG_GROUP section!", sensor_id); + return -EPERM; + } + + ret = gtp_i2c_read_dbl_check(ts->client, GTP_REG_CONFIG_DATA, &opr_buf[0], 1); + if (ret == SUCCESS) { + GTP_DEBUG("CFG_GROUP%d Config Version: %d, IC Config Version: %d", sensor_id, + config[GTP_ADDR_LENGTH], opr_buf[0]); + + flash_cfg_version = opr_buf[0]; + drv_cfg_version = config[GTP_ADDR_LENGTH]; + + if (flash_cfg_version < 90 && flash_cfg_version > drv_cfg_version) { + config[GTP_ADDR_LENGTH] = 0x00; + } + } else { + GTP_ERROR("Failed to get ic config version!No config sent!"); + return -EPERM; + } + + GTP_DEBUG("X_MAX = %d, Y_MAX = %d, TRIGGER = 0x%02x", + ts->abs_x_max, ts->abs_y_max, ts->int_trigger_type); + + config[RESOLUTION_LOC] = (u8)GTP_MAX_WIDTH; + config[RESOLUTION_LOC + 1] = (u8)(GTP_MAX_WIDTH>>8); + config[RESOLUTION_LOC + 2] = (u8)GTP_MAX_HEIGHT; + config[RESOLUTION_LOC + 3] = (u8)(GTP_MAX_HEIGHT>>8); + + if (GTP_INT_TRIGGER == 0) { + config[TRIGGER_LOC] &= 0xfe; + } else if (GTP_INT_TRIGGER == 1) { + config[TRIGGER_LOC] |= 0x01; + } + + check_sum = 0; + for (i = GTP_ADDR_LENGTH; i < ts->gtp_cfg_len; i++) { + check_sum += config[i]; + } + config[ts->gtp_cfg_len] = (~check_sum) + 1; + + GTP_DEBUG_FUNC(); + ret = gtp_send_cfg(ts->client); + if (ret < 0) { + GTP_ERROR("Send config error."); + } + + if (flash_cfg_version < 90 && flash_cfg_version > drv_cfg_version) { + check_sum = 0; + config[GTP_ADDR_LENGTH] = drv_cfg_version; + for (i = GTP_ADDR_LENGTH; i < ts->gtp_cfg_len; i++) { + check_sum += config[i]; + } + config[ts->gtp_cfg_len] = (~check_sum) + 1; + } + gtp_read_version(ts->client, &version); + msleep(10); + return 0; +} + + +static u8 gup_get_ic_msg(struct i2c_client *client, u16 addr, u8 *msg, s32 len) +{ + s32 i = 0; + + msg[0] = (addr >> 8) & 0xff; + msg[1] = addr & 0xff; + + for (i = 0; i < 5; i++) { + if (gup_i2c_read(client, msg, GTP_ADDR_LENGTH + len) > 0) { + break; + } + } + + if (i >= 5) { + GTP_ERROR("Read data from 0x%02x%02x failed!", msg[0], msg[1]); + return FAIL; + } + + return SUCCESS; +} + +static u8 gup_set_ic_msg(struct i2c_client *client, u16 addr, u8 val) +{ + s32 i = 0; + u8 msg[3]; + + msg[0] = (addr >> 8) & 0xff; + msg[1] = addr & 0xff; + msg[2] = val; + + for (i = 0; i < 5; i++) { + if (gup_i2c_write(client, msg, GTP_ADDR_LENGTH + 1) > 0) { + break; + } + } + + if (i >= 5) { + GTP_ERROR("Set data to 0x%02x%02x failed!", msg[0], msg[1]); + return FAIL; + } + + return SUCCESS; +} + +static u8 gup_get_ic_fw_msg(struct i2c_client *client) +{ + s32 ret = -1; + u8 retry = 0; + u8 buf[16]; + u8 i; + + + ret = gtp_i2c_read_dbl_check(client, GUP_REG_HW_INFO, &buf[GTP_ADDR_LENGTH], 4); + if (FAIL == ret) { + GTP_ERROR("[get_ic_fw_msg]get hw_info failed,exit"); + return FAIL; + } + + + + for (i = 0; i < 4; i++) { + update_msg.ic_fw_msg.hw_info[i] = buf[GTP_ADDR_LENGTH + 3 - i]; + } + GTP_DEBUG("IC Hardware info:%02x%02x%02x%02x", update_msg.ic_fw_msg.hw_info[0], update_msg.ic_fw_msg.hw_info[1], + update_msg.ic_fw_msg.hw_info[2], update_msg.ic_fw_msg.hw_info[3]); + + for (retry = 0; retry < 2; retry++) { + ret = gup_get_ic_msg(client, GUP_REG_FW_MSG, buf, 1); + if (FAIL == ret) { + GTP_ERROR("Read firmware message fail."); + return ret; + } + + update_msg.force_update = buf[GTP_ADDR_LENGTH]; + if ((0xBE != update_msg.force_update) && (!retry)) { + GTP_INFO("The check sum in ic is error."); + GTP_INFO("The IC will be updated by force."); + continue; + } + break; + } + GTP_DEBUG("IC force update flag:0x%x", update_msg.force_update); + + + ret = gtp_i2c_read_dbl_check(client, GUP_REG_PID_VID, &buf[GTP_ADDR_LENGTH], 6); + if (FAIL == ret) { + GTP_ERROR("[get_ic_fw_msg]get pid & vid failed,exit"); + return FAIL; + } + + memset(update_msg.ic_fw_msg.pid, 0, sizeof(update_msg.ic_fw_msg.pid)); + memcpy(update_msg.ic_fw_msg.pid, &buf[GTP_ADDR_LENGTH], 4); + GTP_DEBUG("IC Product id:%s", update_msg.ic_fw_msg.pid); + + + /*|-----FLASH-----RAM-----| + |------918------918-----| + |------968------968-----| + |------913------913-----| + |------913P-----913P----| + |------927------927-----| + |------927P-----927P----| + |------9110-----9110----| + |------9110P----9111----|*/ + if (update_msg.ic_fw_msg.pid[0] != 0) { + if (!memcmp(update_msg.ic_fw_msg.pid, "9111", 4)) { + GTP_DEBUG("IC Mapping Product id:%s", update_msg.ic_fw_msg.pid); + memcpy(update_msg.ic_fw_msg.pid, "9110P", 5); + } + } + + update_msg.ic_fw_msg.vid = buf[GTP_ADDR_LENGTH+4] + (buf[GTP_ADDR_LENGTH+5]<<8); + GTP_DEBUG("IC version id:%04x", update_msg.ic_fw_msg.vid); + + return SUCCESS; +} + +s32 gup_enter_update_mode(struct i2c_client *client) +{ + s32 ret = -1; + s32 retry = 0; + u8 rd_buf[3]; + + + GTP_GPIO_OUTPUT(gtp_rst_gpio, 0); + msleep(2); + + + GTP_GPIO_OUTPUT(gtp_int_gpio, (client->addr == 0x14)); + msleep(2); + + + GTP_GPIO_OUTPUT(gtp_rst_gpio, 1); + + + msleep(5); + while (retry++ < 200) { + + ret = gup_set_ic_msg(client, _rRW_MISCTL__SWRST_B0_, 0x0C); + if (ret <= 0) { + GTP_DEBUG("Hold ss51 & dsp I2C error,retry:%d", retry); + continue; + } + + + ret = gup_get_ic_msg(client, _rRW_MISCTL__SWRST_B0_, rd_buf, 1); + if (ret <= 0) { + GTP_DEBUG("Hold ss51 & dsp I2C error,retry:%d", retry); + continue; + } + if (0x0C == rd_buf[GTP_ADDR_LENGTH]) { + GTP_DEBUG("Hold ss51 & dsp confirm SUCCESS"); + break; + } + GTP_DEBUG("Hold ss51 & dsp confirm 0x4180 failed,value:%d", rd_buf[GTP_ADDR_LENGTH]); + } + if (retry >= 200) { + GTP_ERROR("Enter update Hold ss51 failed."); + return FAIL; + } + + + ret = gup_set_ic_msg(client, 0x4010, 0x00); + + + return ret; +} + +void gup_leave_update_mode(void) +{ + GTP_GPIO_AS_INT(gtp_int_gpio); + + GTP_DEBUG("[leave_update_mode]reset chip."); + gtp_reset_guitar(i2c_connect_client, 20); +} + + + + + + + +/* Update Conditions: + 1. Same hardware info + 2. Same PID + 3. File VID > IC VID + Force Update Conditions: + 1. Wrong ic firmware checksum + 2. INVALID IC PID or VID + 3. (IC PID == 91XX || File PID == 91XX) && (File VID > IC VID) +*/ + +static u8 gup_enter_update_judge(st_fw_head *fw_head) +{ + u16 u16_tmp; + s32 i = 0; + u32 fw_len = 0; + s32 pid_cmp_len = 0; + u16_tmp = fw_head->vid; + fw_head->vid = (u16)(u16_tmp>>8) + (u16)(u16_tmp<<8); + + GTP_INFO("FILE HARDWARE INFO:%02x%02x%02x%02x", fw_head->hw_info[0], fw_head->hw_info[1], fw_head->hw_info[2], fw_head->hw_info[3]); + GTP_INFO("FILE PID:%s", fw_head->pid); + GTP_INFO("FILE VID:%04x", fw_head->vid); + GTP_INFO("IC HARDWARE INFO:%02x%02x%02x%02x", update_msg.ic_fw_msg.hw_info[0], update_msg.ic_fw_msg.hw_info[1], + update_msg.ic_fw_msg.hw_info[2], update_msg.ic_fw_msg.hw_info[3]); + GTP_INFO("IC PID:%s", update_msg.ic_fw_msg.pid); + GTP_INFO("IC VID:%04x", update_msg.ic_fw_msg.vid); + + if (!memcmp(fw_head->pid, "9158", 4) && !memcmp(update_msg.ic_fw_msg.pid, "915S", 4)) { + GTP_INFO("Update GT915S to GT9158 directly!"); + return SUCCESS; + } + + if (!memcmp(fw_head->hw_info, update_msg.ic_fw_msg.hw_info, sizeof(update_msg.ic_fw_msg.hw_info))) { + fw_len = 42 * 1024; + } else { + fw_len = fw_head->hw_info[3]; + fw_len += (((u32)fw_head->hw_info[2]) << 8); + fw_len += (((u32)fw_head->hw_info[1]) << 16); + fw_len += (((u32)fw_head->hw_info[0]) << 24); + } + if (update_msg.fw_total_len != fw_len) { + GTP_ERROR("Inconsistent firmware size, Update aborted! Default size: %d(%dK), actual size: %d(%dK)", fw_len, fw_len/1024, update_msg.fw_total_len, update_msg.fw_total_len/1024); + return FAIL; + } + GTP_INFO("Firmware length:%d(%dK)", update_msg.fw_total_len, update_msg.fw_total_len/1024); + + if (update_msg.force_update != 0xBE) { + GTP_INFO("FW chksum error,need enter update."); + return SUCCESS; + } + + + if (strlen(update_msg.ic_fw_msg.pid) < 3) { + GTP_INFO("Illegal IC pid, need enter update"); + return SUCCESS; + } else { + for (i = 0; i < 3; i++) { + if ((update_msg.ic_fw_msg.pid[i] < 0x30) || (update_msg.ic_fw_msg.pid[i] > 0x39)) { + GTP_INFO("Illegal IC pid, out of bound, need enter update"); + return SUCCESS; + } + } + } + + + pid_cmp_len = strlen(fw_head->pid); + if (pid_cmp_len < strlen(update_msg.ic_fw_msg.pid)) { + pid_cmp_len = strlen(update_msg.ic_fw_msg.pid); + } + + if ((!memcmp(fw_head->pid, update_msg.ic_fw_msg.pid, pid_cmp_len)) || + (!memcmp(update_msg.ic_fw_msg.pid, "91XX", 4)) || + (!memcmp(fw_head->pid, "91XX", 4))) { + if (!memcmp(fw_head->pid, "91XX", 4)) { + GTP_DEBUG("Force none same pid update mode."); + } else { + GTP_DEBUG("Get the same pid."); + } + + + if (fw_head->vid > update_msg.ic_fw_msg.vid) { + GTP_INFO("Need enter update."); + return SUCCESS; + } + GTP_ERROR("Don't meet the third condition."); + GTP_ERROR("File VID <= Ic VID, update aborted!"); + } else { + GTP_ERROR("File PID != Ic PID, update aborted!"); + } + + return FAIL; +} + + + +#if GTP_AUTO_UPDATE_CFG +static u8 ascii2hex(u8 a) +{ + s8 value = 0; + + if (a >= '0' && a <= '9') { + value = a - '0'; + } else if (a >= 'A' && a <= 'F') { + value = a - 'A' + 0x0A; + } else if (a >= 'a' && a <= 'f') { + value = a - 'a' + 0x0A; + } else { + value = 0xff; + } + + return value; +} + +static s8 gup_update_config(struct i2c_client *client) +{ + s32 file_len = 0; + s32 ret = 0; + s32 i = 0; + s32 file_cfg_len = 0; + s32 chip_cfg_len = 0; + s32 count = 0; + u8 *buf; + u8 *pre_buf; + u8 *file_config; + + struct goodix_ts_data *ts = i2c_get_clientdata(client); + + if (NULL == update_msg.cfg_file) { + GTP_ERROR("[update_cfg]No need to upgrade config!"); + return FAIL; + } + file_len = update_msg.cfg_file->f_op->llseek(update_msg.cfg_file, 0, SEEK_END); + + chip_cfg_len = ts->gtp_cfg_len; + + GTP_DEBUG("[update_cfg]config file len:%d", file_len); + GTP_DEBUG("[update_cfg]need config len:%d", chip_cfg_len); + if ((file_len+5) < chip_cfg_len*5) { + GTP_ERROR("Config length error"); + return -EPERM; + } + + buf = (u8 *)kzalloc(file_len, GFP_KERNEL); + pre_buf = (u8 *)kzalloc(file_len, GFP_KERNEL); + file_config = (u8 *)kzalloc(chip_cfg_len + GTP_ADDR_LENGTH, GFP_KERNEL); + update_msg.cfg_file->f_op->llseek(update_msg.cfg_file, 0, SEEK_SET); + + GTP_DEBUG("[update_cfg]Read config from file."); + ret = update_msg.cfg_file->f_op->read(update_msg.cfg_file, (char *)pre_buf, file_len, &update_msg.cfg_file->f_pos); + if (ret < 0) { + GTP_ERROR("[update_cfg]Read config file failed."); + goto update_cfg_file_failed; + } + + GTP_DEBUG("[update_cfg]Delete illgal charactor."); + for (i = 0, count = 0; i < file_len; i++) { + if (pre_buf[i] == ' ' || pre_buf[i] == '\r' || pre_buf[i] == '\n') { + continue; + } + buf[count++] = pre_buf[i]; + } + + GTP_DEBUG("[update_cfg]Ascii to hex."); + file_config[0] = GTP_REG_CONFIG_DATA >> 8; + file_config[1] = GTP_REG_CONFIG_DATA & 0xff; + for (i = 0, file_cfg_len = GTP_ADDR_LENGTH; i < count; i += 5) { + if ((buf[i] == '0') && ((buf[i+1] == 'x') || (buf[i+1] == 'X'))) { + u8 high, low; + high = ascii2hex(buf[i+2]); + low = ascii2hex(buf[i+3]); + + if ((high == 0xFF) || (low == 0xFF)) { + ret = 0; + GTP_ERROR("[update_cfg]Illegal config file."); + goto update_cfg_file_failed; + } + file_config[file_cfg_len++] = (high<<4) + low; + } else { + ret = 0; + GTP_ERROR("[update_cfg]Illegal config file."); + goto update_cfg_file_failed; + } + } + + + GTP_DEBUG("config:"); + GTP_DEBUG_ARRAY(file_config+2, file_cfg_len); + + i = 0; + while (i++ < 5) { + ret = gup_i2c_write(client, file_config, file_cfg_len); + if (ret > 0) { + GTP_INFO("[update_cfg]Send config SUCCESS."); + break; + } + GTP_ERROR("[update_cfg]Send config i2c error."); + } + +update_cfg_file_failed: + kfree(pre_buf); + kfree(buf); + kfree(file_config); + return ret; +} + +#endif + +#if (GTP_AUTO_UPDATE && (!GTP_HEADER_FW_UPDATE || GTP_AUTO_UPDATE_CFG)) +static void gup_search_file(s32 search_type) +{ + s32 i = 0; + struct file *pfile = NULL; + + got_file_flag = 0x00; + + searching_file = 1; + for (i = 0; i < GUP_SEARCH_FILE_TIMES; ++i) { + if (0 == searching_file) { + GTP_INFO("Force exiting file searching"); + got_file_flag = 0x00; + return; + } + + if (search_type & AUTO_SEARCH_BIN) { + GTP_DEBUG("Search for %s, %s for fw update.(%d/%d)", UPDATE_FILE_PATH_1, UPDATE_FILE_PATH_2, i+1, GUP_SEARCH_FILE_TIMES); + pfile = filp_open(UPDATE_FILE_PATH_1, O_RDONLY, 0); + if (IS_ERR(pfile)) { + pfile = filp_open(UPDATE_FILE_PATH_2, O_RDONLY, 0); + if (!IS_ERR(pfile)) { + GTP_INFO("Bin file: %s for fw update.", UPDATE_FILE_PATH_2); + got_file_flag |= BIN_FILE_READY; + update_msg.file = pfile; + } + } else { + GTP_INFO("Bin file: %s for fw update.", UPDATE_FILE_PATH_1); + got_file_flag |= BIN_FILE_READY; + update_msg.file = pfile; + } + if (got_file_flag & BIN_FILE_READY) { + #if GTP_AUTO_UPDATE_CFG + if (search_type & AUTO_SEARCH_CFG) { + i = GUP_SEARCH_FILE_TIMES; + } else + #endif + { + searching_file = 0; + return; + } + } + } + + #if GTP_AUTO_UPDATE_CFG + if ((search_type & AUTO_SEARCH_CFG) && !(got_file_flag & CFG_FILE_READY)) { + GTP_DEBUG("Search for %s, %s for config update.(%d/%d)", CONFIG_FILE_PATH_1, CONFIG_FILE_PATH_2, i+1, GUP_SEARCH_FILE_TIMES); + pfile = filp_open(CONFIG_FILE_PATH_1, O_RDONLY, 0); + if (IS_ERR(pfile)) { + pfile = filp_open(CONFIG_FILE_PATH_2, O_RDONLY, 0); + if (!IS_ERR(pfile)) { + GTP_INFO("Cfg file: %s for config update.", CONFIG_FILE_PATH_2); + got_file_flag |= CFG_FILE_READY; + update_msg.cfg_file = pfile; + } + } else { + GTP_INFO("Cfg file: %s for config update.", CONFIG_FILE_PATH_1); + got_file_flag |= CFG_FILE_READY; + update_msg.cfg_file = pfile; + } + if (got_file_flag & CFG_FILE_READY) { + searching_file = 0; + return; + } + } + #endif + msleep(3000); + } + searching_file = 0; +} +#endif + + +static u8 gup_check_update_file(struct i2c_client *client, st_fw_head *fw_head, u8 *path) +{ + s32 ret = 0; + s32 i = 0; + s32 fw_checksum = 0; + u8 buf[FW_HEAD_LENGTH]; + + got_file_flag = 0x00; + if (path) { + GTP_DEBUG("Update File path:%s, %ld", path, strlen(path)); + update_msg.file = filp_open(path, O_RDONLY, 0); + + if (IS_ERR(update_msg.file)) { + GTP_ERROR("Open update file(%s) error!", path); + return FAIL; + } + got_file_flag = BIN_FILE_READY; + } else { +#if GTP_AUTO_UPDATE + #if GTP_HEADER_FW_UPDATE + + + ret = gtp_i2c_read_dbl_check(client, GTP_REG_SENSOR_ID, >P_FW_SENSOR_ID, 1); + if (SUCCESS == ret) { + if (GTP_FW_SENSOR_ID >= 0x09) { + GTP_ERROR("Invalid sensor_id(0x%02X), No Config Sent!", GTP_FW_SENSOR_ID); + + } + } + + if (GTP_FW_SENSOR_ID == 0x2) { + GTP_INFO("Update GT915L FW, Sensor ID : %d", GTP_FW_SENSOR_ID); + } else { + GTP_INFO("Force Upgrade Error !"); + + } + + GTP_INFO("Update by default firmware array"); + update_msg.fw_total_len = sizeof(gtp_default_FW) - FW_HEAD_LENGTH; + if (sizeof(gtp_default_FW) < (FW_HEAD_LENGTH+FW_SECTION_LENGTH*4+FW_DSP_ISP_LENGTH+FW_DSP_LENGTH+FW_BOOT_LENGTH)) { + GTP_ERROR("INVALID gtp_default_FW, check your gt9xx_firmware.h file!"); + return FAIL; + } + GTP_DEBUG("Firmware actual size: %d(%dK)", update_msg.fw_total_len, update_msg.fw_total_len/1024); + memcpy(fw_head, >p_default_FW[0], FW_HEAD_LENGTH); + + + fw_checksum = 0; + for (i = 0; i < update_msg.fw_total_len; i += 2) { + fw_checksum += (gtp_default_FW[FW_HEAD_LENGTH + i] << 8) + gtp_default_FW[FW_HEAD_LENGTH + i + 1]; + } + + GTP_DEBUG("firmware checksum:%x", fw_checksum&0xFFFF); + if (fw_checksum&0xFFFF) { + GTP_ERROR("Illegal firmware file."); + return FAIL; + } + got_file_flag = HEADER_FW_READY; + return SUCCESS; + #else + + #if GTP_AUTO_UPDATE_CFG + gup_search_file(AUTO_SEARCH_BIN | AUTO_SEARCH_CFG); + if (got_file_flag & CFG_FILE_READY) { + ret = gup_update_config(i2c_connect_client); + if (ret <= 0) { + GTP_ERROR("Update config failed."); + } + _CLOSE_FILE(update_msg.cfg_file); + msleep(500); + } + #else + gup_search_file(AUTO_SEARCH_BIN); + #endif + + if (!(got_file_flag & BIN_FILE_READY)) { + GTP_ERROR("No bin file for fw update"); + return FAIL; + } + #endif + +#else + { + GTP_ERROR("NULL file for firmware update"); + return FAIL; + } +#endif + } + + update_msg.old_fs = get_fs(); + set_fs(KERNEL_DS); + + update_msg.file->f_op->llseek(update_msg.file, 0, SEEK_SET); + update_msg.fw_total_len = update_msg.file->f_op->llseek(update_msg.file, 0, SEEK_END); + if (update_msg.fw_total_len < (FW_HEAD_LENGTH + FW_SECTION_LENGTH*4+FW_DSP_ISP_LENGTH+FW_DSP_LENGTH+FW_BOOT_LENGTH)) { + GTP_ERROR("INVALID bin file(size: %d), update aborted.", update_msg.fw_total_len); + return FAIL; + } + + update_msg.fw_total_len -= FW_HEAD_LENGTH; + + GTP_DEBUG("Bin firmware actual size: %d(%dK)", update_msg.fw_total_len, update_msg.fw_total_len/1024); + + update_msg.file->f_op->llseek(update_msg.file, 0, SEEK_SET); + ret = update_msg.file->f_op->read(update_msg.file, (char *)buf, FW_HEAD_LENGTH, &update_msg.file->f_pos); + if (ret < 0) { + GTP_ERROR("Read firmware head in update file error."); + return FAIL; + } + + memcpy(fw_head, buf, FW_HEAD_LENGTH); + + + fw_checksum = 0; + for (i = 0; i < update_msg.fw_total_len; i += 2) { + u16 temp; + ret = update_msg.file->f_op->read(update_msg.file, (char *)buf, 2, &update_msg.file->f_pos); + if (ret < 0) { + GTP_ERROR("Read firmware file error."); + return FAIL; + } + + temp = (buf[0]<<8) + buf[1]; + fw_checksum += temp; + } + + GTP_DEBUG("firmware checksum:%x", fw_checksum&0xFFFF); + if (fw_checksum&0xFFFF) { + GTP_ERROR("Illegal firmware file."); + return FAIL; + } + + return SUCCESS; +} + +static u8 gup_burn_proc(struct i2c_client *client, u8 *burn_buf, u16 start_addr, u16 total_length) +{ + s32 ret = 0; + u16 burn_addr = start_addr; + u16 frame_length = 0; + u16 burn_length = 0; + u8 wr_buf[PACK_SIZE + GTP_ADDR_LENGTH]; + u8 rd_buf[PACK_SIZE + GTP_ADDR_LENGTH]; + u8 retry = 0; + + GTP_DEBUG("Begin burn %dk data to addr 0x%x", (total_length/1024), start_addr); + while (burn_length < total_length) { + GTP_DEBUG("B/T:%04d/%04d", burn_length, total_length); + frame_length = ((total_length - burn_length) > PACK_SIZE) ? PACK_SIZE : (total_length - burn_length); + wr_buf[0] = (u8)(burn_addr>>8); + rd_buf[0] = wr_buf[0]; + wr_buf[1] = (u8)burn_addr; + rd_buf[1] = wr_buf[1]; + memcpy(&wr_buf[GTP_ADDR_LENGTH], &burn_buf[burn_length], frame_length); + + for (retry = 0; retry < MAX_FRAME_CHECK_TIME; retry++) { + ret = gup_i2c_write(client, wr_buf, GTP_ADDR_LENGTH + frame_length); + if (ret <= 0) { + GTP_ERROR("Write frame data i2c error."); + continue; + } + ret = gup_i2c_read(client, rd_buf, GTP_ADDR_LENGTH + frame_length); + if (ret <= 0) { + GTP_ERROR("Read back frame data i2c error."); + continue; + } + + if (memcmp(&wr_buf[GTP_ADDR_LENGTH], &rd_buf[GTP_ADDR_LENGTH], frame_length)) { + GTP_ERROR("Check frame data fail,not equal."); + GTP_DEBUG("write array:"); + GTP_DEBUG_ARRAY(&wr_buf[GTP_ADDR_LENGTH], frame_length); + GTP_DEBUG("read array:"); + GTP_DEBUG_ARRAY(&rd_buf[GTP_ADDR_LENGTH], frame_length); + continue; + } else { + + break; + } + } + if (retry >= MAX_FRAME_CHECK_TIME) { + GTP_ERROR("Burn frame data time out,exit."); + return FAIL; + } + burn_length += frame_length; + burn_addr += frame_length; + } + return SUCCESS; +} + +static u8 gup_load_section_file(u8 *buf, u32 offset, u16 length, u8 set_or_end) +{ +#if (GTP_AUTO_UPDATE && GTP_HEADER_FW_UPDATE) + if (got_file_flag == HEADER_FW_READY) { + if (SEEK_SET == set_or_end) { + memcpy(buf, >p_default_FW[FW_HEAD_LENGTH + offset], length); + } else { + memcpy(buf, >p_default_FW[update_msg.fw_total_len + FW_HEAD_LENGTH - offset], length); + } + return SUCCESS; + } +#endif + { + s32 ret = 0; + + if ((update_msg.file == NULL) || IS_ERR(update_msg.file)) { + GTP_ERROR("cannot find update file,load section file fail."); + return FAIL; + } + + if (SEEK_SET == set_or_end) { + update_msg.file->f_pos = FW_HEAD_LENGTH + offset; + } else { + update_msg.file->f_pos = update_msg.fw_total_len + FW_HEAD_LENGTH - offset; + } + + ret = update_msg.file->f_op->read(update_msg.file, (char *)buf, length, &update_msg.file->f_pos); + + if (ret < 0) { + GTP_ERROR("Read update file fail."); + return FAIL; + } + + return SUCCESS; + } +} + +static u8 gup_recall_check(struct i2c_client *client, u8 *chk_src, u16 start_rd_addr, u16 chk_length) +{ + u8 rd_buf[PACK_SIZE + GTP_ADDR_LENGTH]; + s32 ret = 0; + u16 recall_addr = start_rd_addr; + u16 recall_length = 0; + u16 frame_length = 0; + + while (recall_length < chk_length) { + frame_length = ((chk_length - recall_length) > PACK_SIZE) ? PACK_SIZE : (chk_length - recall_length); + ret = gup_get_ic_msg(client, recall_addr, rd_buf, frame_length); + if (ret <= 0) { + GTP_ERROR("recall i2c error,exit"); + return FAIL; + } + + if (memcmp(&rd_buf[GTP_ADDR_LENGTH], &chk_src[recall_length], frame_length)) { + GTP_ERROR("Recall frame data fail,not equal."); + GTP_DEBUG("chk_src array:"); + GTP_DEBUG_ARRAY(&chk_src[recall_length], frame_length); + GTP_DEBUG("recall array:"); + GTP_DEBUG_ARRAY(&rd_buf[GTP_ADDR_LENGTH], frame_length); + return FAIL; + } + + recall_length += frame_length; + recall_addr += frame_length; + } + GTP_DEBUG("Recall check %dk firmware success.", (chk_length/1024)); + + return SUCCESS; +} + +static u8 gup_burn_fw_section(struct i2c_client *client, u8 *fw_section, u16 start_addr, u8 bank_cmd) +{ + s32 ret = 0; + u8 rd_buf[5]; + + + ret = gup_set_ic_msg(client, _rRW_MISCTL__SWRST_B0_, 0x0C); + if (ret <= 0) { + GTP_ERROR("[burn_fw_section]hold ss51 & dsp fail."); + return FAIL; + } + + + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOT_OPT_B0_, 0x00); + if (ret <= 0) { + GTP_ERROR("[burn_fw_section]set scramble fail."); + return FAIL; + } + + + ret = gup_set_ic_msg(client, _bRW_MISCTL__SRAM_BANK, (bank_cmd >> 4)&0x0F); + if (ret <= 0) { + GTP_ERROR("[burn_fw_section]select bank %d fail.", (bank_cmd >> 4)&0x0F); + return FAIL; + } + + + ret = gup_set_ic_msg(client, _bRW_MISCTL__MEM_CD_EN, 0x01); + if (ret <= 0) { + GTP_ERROR("[burn_fw_section]enable accessing code fail."); + return FAIL; + } + + + ret = gup_burn_proc(client, fw_section, start_addr, FW_SECTION_LENGTH); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_section]burn fw_section fail."); + return FAIL; + } + + + ret = gup_set_ic_msg(client, _rRW_MISCTL__SWRST_B0_, 0x04); + if (ret <= 0) { + GTP_ERROR("[burn_fw_section]hold ss51 & release dsp fail."); + return FAIL; + } + + msleep(1); + + + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOT_CTL_, bank_cmd&0x0f); + if (ret <= 0) { + GTP_ERROR("[burn_fw_section]send burn cmd fail."); + return FAIL; + } + GTP_DEBUG("[burn_fw_section]Wait for the burn is complete......"); + do { + ret = gup_get_ic_msg(client, _rRW_MISCTL__BOOT_CTL_, rd_buf, 1); + if (ret <= 0) { + GTP_ERROR("[burn_fw_section]Get burn state fail"); + return FAIL; + } + msleep(10); + + } while (rd_buf[GTP_ADDR_LENGTH]); + + + ret = gup_set_ic_msg(client, _bRW_MISCTL__SRAM_BANK, (bank_cmd >> 4)&0x0F); + if (ret <= 0) { + GTP_ERROR("[burn_fw_section]select bank %d fail.", (bank_cmd >> 4)&0x0F); + return FAIL; + } + + + ret = gup_set_ic_msg(client, _bRW_MISCTL__MEM_CD_EN, 0x01); + if (ret <= 0) { + GTP_ERROR("[burn_fw_section]enable accessing code fail."); + return FAIL; + } + + + ret = gup_recall_check(client, fw_section, start_addr, FW_SECTION_LENGTH); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_section]recall check %dk firmware fail.", FW_SECTION_LENGTH/1024); + return FAIL; + } + + + ret = gup_set_ic_msg(client, _bRW_MISCTL__MEM_CD_EN, 0x00); + if (ret <= 0) { + GTP_ERROR("[burn_fw_section]disable accessing code fail."); + return FAIL; + } + + return SUCCESS; +} + +static u8 gup_burn_dsp_isp(struct i2c_client *client) +{ + s32 ret = 0; + u8 *fw_dsp_isp = NULL; + u8 retry = 0; + + GTP_INFO("[burn_dsp_isp]Begin burn dsp isp---->>"); + + + GTP_DEBUG("[burn_dsp_isp]step1:alloc memory"); + while (retry++ < 5) { + fw_dsp_isp = (u8 *)kzalloc(FW_DSP_ISP_LENGTH, GFP_KERNEL); + if (fw_dsp_isp == NULL) { + continue; + } else { + GTP_INFO("[burn_dsp_isp]Alloc %dk byte memory success.", (FW_DSP_ISP_LENGTH/1024)); + break; + } + } + if (retry >= 5) { + GTP_ERROR("[burn_dsp_isp]Alloc memory fail,exit."); + return FAIL; + } + + + GTP_DEBUG("[burn_dsp_isp]step2:load dsp isp file data"); + ret = gup_load_section_file(fw_dsp_isp, FW_DSP_ISP_LENGTH, FW_DSP_ISP_LENGTH, SEEK_END); + if (FAIL == ret) { + GTP_ERROR("[burn_dsp_isp]load firmware dsp_isp fail."); + goto exit_burn_dsp_isp; + } + + + GTP_DEBUG("[burn_dsp_isp]step3:disable wdt,clear cache enable"); + ret = gup_set_ic_msg(client, _bRW_MISCTL__TMR0_EN, 0x00); + if (ret <= 0) { + GTP_ERROR("[burn_dsp_isp]disable wdt fail."); + ret = FAIL; + goto exit_burn_dsp_isp; + } + ret = gup_set_ic_msg(client, _bRW_MISCTL__CACHE_EN, 0x00); + if (ret <= 0) { + GTP_ERROR("[burn_dsp_isp]clear cache enable fail."); + ret = FAIL; + goto exit_burn_dsp_isp; + } + + + GTP_DEBUG("[burn_dsp_isp]step4:hold ss51 & dsp"); + ret = gup_set_ic_msg(client, _rRW_MISCTL__SWRST_B0_, 0x0C); + if (ret <= 0) { + GTP_ERROR("[burn_dsp_isp]hold ss51 & dsp fail."); + ret = FAIL; + goto exit_burn_dsp_isp; + } + + + GTP_DEBUG("[burn_dsp_isp]step5:set boot from sram"); + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOTCTL_B0_, 0x02); + if (ret <= 0) { + GTP_ERROR("[burn_dsp_isp]set boot from sram fail."); + ret = FAIL; + goto exit_burn_dsp_isp; + } + + + GTP_DEBUG("[burn_dsp_isp]step6:software reboot"); + ret = gup_set_ic_msg(client, _bWO_MISCTL__CPU_SWRST_PULSE, 0x01); + if (ret <= 0) { + GTP_ERROR("[burn_dsp_isp]software reboot fail."); + ret = FAIL; + goto exit_burn_dsp_isp; + } + + + GTP_DEBUG("[burn_dsp_isp]step7:select bank2"); + ret = gup_set_ic_msg(client, _bRW_MISCTL__SRAM_BANK, 0x02); + if (ret <= 0) { + GTP_ERROR("[burn_dsp_isp]select bank2 fail."); + ret = FAIL; + goto exit_burn_dsp_isp; + } + + + GTP_DEBUG("[burn_dsp_isp]step8:enable accessing code"); + ret = gup_set_ic_msg(client, _bRW_MISCTL__MEM_CD_EN, 0x01); + if (ret <= 0) { + GTP_ERROR("[burn_dsp_isp]enable accessing code fail."); + ret = FAIL; + goto exit_burn_dsp_isp; + } + + + GTP_DEBUG("[burn_dsp_isp]step9:burn 4k dsp_isp"); + ret = gup_burn_proc(client, fw_dsp_isp, 0xC000, FW_DSP_ISP_LENGTH); + if (FAIL == ret) { + GTP_ERROR("[burn_dsp_isp]burn dsp_isp fail."); + goto exit_burn_dsp_isp; + } + + + GTP_DEBUG("[burn_dsp_isp]step10:set scramble"); + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOT_OPT_B0_, 0x00); + if (ret <= 0) { + GTP_ERROR("[burn_dsp_isp]set scramble fail."); + ret = FAIL; + goto exit_burn_dsp_isp; + } + update_msg.fw_burned_len += FW_DSP_ISP_LENGTH; + GTP_DEBUG("[burn_dsp_isp]Burned length:%d", update_msg.fw_burned_len); + ret = SUCCESS; + +exit_burn_dsp_isp: + kfree(fw_dsp_isp); + return ret; +} + +static u8 gup_burn_fw_ss51(struct i2c_client *client) +{ + u8 *fw_ss51 = NULL; + u8 retry = 0; + s32 ret = 0; + + GTP_INFO("[burn_fw_ss51]Begin burn ss51 firmware---->>"); + + + GTP_DEBUG("[burn_fw_ss51]step1:alloc memory"); + while (retry++ < 5) { + fw_ss51 = (u8 *)kzalloc(FW_SECTION_LENGTH, GFP_KERNEL); + if (fw_ss51 == NULL) { + continue; + } else { + GTP_DEBUG("[burn_fw_ss51]Alloc %dk byte memory success.", (FW_SECTION_LENGTH / 1024)); + break; + } + } + if (retry >= 5) { + GTP_ERROR("[burn_fw_ss51]Alloc memory fail,exit."); + return FAIL; + } + + + + + + + + + + + GTP_INFO("[burn_fw_ss51]Reset first 8K of ss51 to 0xFF."); + GTP_DEBUG("[burn_fw_ss51]step2: reset bank0 0xC000~0xD000"); + memset(fw_ss51, 0xFF, FW_SECTION_LENGTH); + + + GTP_DEBUG("[burn_fw_ss51]step3:clear control flag"); + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOT_CTL_, 0x00); + if (ret <= 0) { + GTP_ERROR("[burn_fw_ss51]clear control flag fail."); + ret = FAIL; + goto exit_burn_fw_ss51; + } + + + GTP_DEBUG("[burn_fw_ss51]step4:burn ss51 firmware section 1"); + ret = gup_burn_fw_section(client, fw_ss51, 0xC000, 0x01); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_ss51]burn ss51 firmware section 1 fail."); + goto exit_burn_fw_ss51; + } + + + GTP_DEBUG("[burn_fw_ss51]step5:load ss51 firmware section 2 file data"); + ret = gup_load_section_file(fw_ss51, FW_SECTION_LENGTH, FW_SECTION_LENGTH, SEEK_SET); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_ss51]load ss51 firmware section 2 fail."); + goto exit_burn_fw_ss51; + } + + + GTP_DEBUG("[burn_fw_ss51]step6:burn ss51 firmware section 2"); + ret = gup_burn_fw_section(client, fw_ss51, 0xE000, 0x02); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_ss51]burn ss51 firmware section 2 fail."); + goto exit_burn_fw_ss51; + } + + + GTP_DEBUG("[burn_fw_ss51]step7:load ss51 firmware section 3 file data"); + ret = gup_load_section_file(fw_ss51, 2 * FW_SECTION_LENGTH, FW_SECTION_LENGTH, SEEK_SET); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_ss51]load ss51 firmware section 3 fail."); + goto exit_burn_fw_ss51; + } + + + GTP_DEBUG("[burn_fw_ss51]step8:burn ss51 firmware section 3"); + ret = gup_burn_fw_section(client, fw_ss51, 0xC000, 0x13); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_ss51]burn ss51 firmware section 3 fail."); + goto exit_burn_fw_ss51; + } + + + GTP_DEBUG("[burn_fw_ss51]step9:load ss51 firmware section 4 file data"); + ret = gup_load_section_file(fw_ss51, 3 * FW_SECTION_LENGTH, FW_SECTION_LENGTH, SEEK_SET); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_ss51]load ss51 firmware section 4 fail."); + goto exit_burn_fw_ss51; + } + + + GTP_DEBUG("[burn_fw_ss51]step10:burn ss51 firmware section 4"); + ret = gup_burn_fw_section(client, fw_ss51, 0xE000, 0x14); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_ss51]burn ss51 firmware section 4 fail."); + goto exit_burn_fw_ss51; + } + + update_msg.fw_burned_len += (FW_SECTION_LENGTH*4); + GTP_DEBUG("[burn_fw_ss51]Burned length:%d", update_msg.fw_burned_len); + ret = SUCCESS; + +exit_burn_fw_ss51: + kfree(fw_ss51); + return ret; +} + +static u8 gup_burn_fw_dsp(struct i2c_client *client) +{ + s32 ret = 0; + u8 *fw_dsp = NULL; + u8 retry = 0; + u8 rd_buf[5]; + + GTP_INFO("[burn_fw_dsp]Begin burn dsp firmware---->>"); + + GTP_DEBUG("[burn_fw_dsp]step1:alloc memory"); + while (retry++ < 5) { + fw_dsp = (u8 *)kzalloc(FW_DSP_LENGTH, GFP_KERNEL); + if (fw_dsp == NULL) { + continue; + } else { + GTP_DEBUG("[burn_fw_dsp]Alloc %dk byte memory success.", (FW_SECTION_LENGTH / 1024)); + break; + } + } + if (retry >= 5) { + GTP_ERROR("[burn_fw_dsp]Alloc memory fail,exit."); + return FAIL; + } + + + GTP_DEBUG("[burn_fw_dsp]step2:load firmware dsp"); + ret = gup_load_section_file(fw_dsp, 4 * FW_SECTION_LENGTH, FW_DSP_LENGTH, SEEK_SET); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_dsp]load firmware dsp fail."); + goto exit_burn_fw_dsp; + } + + + GTP_DEBUG("[burn_fw_dsp]step3:select bank3"); + ret = gup_set_ic_msg(client, _bRW_MISCTL__SRAM_BANK, 0x03); + if (ret <= 0) { + GTP_ERROR("[burn_fw_dsp]select bank3 fail."); + ret = FAIL; + goto exit_burn_fw_dsp; + } + + + GTP_DEBUG("[burn_fw_dsp]step4:hold ss51 & dsp"); + ret = gup_set_ic_msg(client, _rRW_MISCTL__SWRST_B0_, 0x0C); + if (ret <= 0) { + GTP_ERROR("[burn_fw_dsp]hold ss51 & dsp fail."); + ret = FAIL; + goto exit_burn_fw_dsp; + } + + + GTP_DEBUG("[burn_fw_dsp]step5:set scramble"); + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOT_OPT_B0_, 0x00); + if (ret <= 0) { + GTP_ERROR("[burn_fw_dsp]set scramble fail."); + ret = FAIL; + goto exit_burn_fw_dsp; + } + + + GTP_DEBUG("[burn_fw_dsp]step6:release ss51 & dsp"); + ret = gup_set_ic_msg(client, _rRW_MISCTL__SWRST_B0_, 0x04); + if (ret <= 0) { + GTP_ERROR("[burn_fw_dsp]release ss51 & dsp fail."); + ret = FAIL; + goto exit_burn_fw_dsp; + } + + msleep(1); + + + GTP_DEBUG("[burn_fw_dsp]step7:burn 4k dsp firmware"); + ret = gup_burn_proc(client, fw_dsp, 0x9000, FW_DSP_LENGTH); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_dsp]burn fw_section fail."); + goto exit_burn_fw_dsp; + } + + + GTP_DEBUG("[burn_fw_dsp]step8:send burn cmd to move data to flash from sram"); + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOT_CTL_, 0x05); + if (ret <= 0) { + GTP_ERROR("[burn_fw_dsp]send burn cmd fail."); + goto exit_burn_fw_dsp; + } + GTP_DEBUG("[burn_fw_dsp]Wait for the burn is complete......"); + do { + ret = gup_get_ic_msg(client, _rRW_MISCTL__BOOT_CTL_, rd_buf, 1); + if (ret <= 0) { + GTP_ERROR("[burn_fw_dsp]Get burn state fail"); + goto exit_burn_fw_dsp; + } + msleep(10); + + } while (rd_buf[GTP_ADDR_LENGTH]); + + + GTP_DEBUG("[burn_fw_dsp]step9:recall check 4k dsp firmware"); + ret = gup_recall_check(client, fw_dsp, 0x9000, FW_DSP_LENGTH); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_dsp]recall check 4k dsp firmware fail."); + goto exit_burn_fw_dsp; + } + + update_msg.fw_burned_len += FW_DSP_LENGTH; + GTP_DEBUG("[burn_fw_dsp]Burned length:%d", update_msg.fw_burned_len); + ret = SUCCESS; + +exit_burn_fw_dsp: + kfree(fw_dsp); + return ret; +} + +static u8 gup_burn_fw_boot(struct i2c_client *client) +{ + s32 ret = 0; + u8 *fw_boot = NULL; + u8 retry = 0; + u8 rd_buf[5]; + + GTP_INFO("[burn_fw_boot]Begin burn bootloader firmware---->>"); + + + GTP_DEBUG("[burn_fw_boot]step1:Alloc memory"); + while (retry++ < 5) { + fw_boot = (u8 *)kzalloc(FW_BOOT_LENGTH, GFP_KERNEL); + if (fw_boot == NULL) { + continue; + } else { + GTP_DEBUG("[burn_fw_boot]Alloc %dk byte memory success.", (FW_BOOT_LENGTH/1024)); + break; + } + } + if (retry >= 5) { + GTP_ERROR("[burn_fw_boot]Alloc memory fail,exit."); + return FAIL; + } + + + GTP_DEBUG("[burn_fw_boot]step2:load firmware bootloader"); + ret = gup_load_section_file(fw_boot, (4 * FW_SECTION_LENGTH + FW_DSP_LENGTH), FW_BOOT_LENGTH, SEEK_SET); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_boot]load firmware bootcode fail."); + goto exit_burn_fw_boot; + } + + + GTP_DEBUG("[burn_fw_boot]step3:hold ss51 & dsp"); + ret = gup_set_ic_msg(client, _rRW_MISCTL__SWRST_B0_, 0x0C); + if (ret <= 0) { + GTP_ERROR("[burn_fw_boot]hold ss51 & dsp fail."); + ret = FAIL; + goto exit_burn_fw_boot; + } + + + GTP_DEBUG("[burn_fw_boot]step4:set scramble"); + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOT_OPT_B0_, 0x00); + if (ret <= 0) { + GTP_ERROR("[burn_fw_boot]set scramble fail."); + ret = FAIL; + goto exit_burn_fw_boot; + } + + + GTP_DEBUG("[burn_fw_boot]step5:hold ss51 & release dsp"); + ret = gup_set_ic_msg(client, _rRW_MISCTL__SWRST_B0_, 0x04); + if (ret <= 0) { + GTP_ERROR("[burn_fw_boot]release ss51 & dsp fail."); + ret = FAIL; + goto exit_burn_fw_boot; + } + + msleep(1); + + + GTP_DEBUG("[burn_fw_boot]step6:select bank3"); + ret = gup_set_ic_msg(client, _bRW_MISCTL__SRAM_BANK, 0x03); + if (ret <= 0) { + GTP_ERROR("[burn_fw_boot]select bank3 fail."); + ret = FAIL; + goto exit_burn_fw_boot; + } + + + GTP_DEBUG("[burn_fw_boot]step6:burn 2k bootloader firmware"); + ret = gup_burn_proc(client, fw_boot, 0x9000, FW_BOOT_LENGTH); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_boot]burn fw_boot fail."); + goto exit_burn_fw_boot; + } + + + GTP_DEBUG("[burn_fw_boot]step7:send burn cmd to move data to flash from sram"); + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOT_CTL_, 0x06); + if (ret <= 0) { + GTP_ERROR("[burn_fw_boot]send burn cmd fail."); + goto exit_burn_fw_boot; + } + GTP_DEBUG("[burn_fw_boot]Wait for the burn is complete......"); + do { + ret = gup_get_ic_msg(client, _rRW_MISCTL__BOOT_CTL_, rd_buf, 1); + if (ret <= 0) { + GTP_ERROR("[burn_fw_boot]Get burn state fail"); + goto exit_burn_fw_boot; + } + msleep(10); + + } while (rd_buf[GTP_ADDR_LENGTH]); + + + GTP_DEBUG("[burn_fw_boot]step8:recall check 2k bootloader firmware"); + ret = gup_recall_check(client, fw_boot, 0x9000, FW_BOOT_LENGTH); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_boot]recall check 2k bootcode firmware fail."); + goto exit_burn_fw_boot; + } + + update_msg.fw_burned_len += FW_BOOT_LENGTH; + GTP_DEBUG("[burn_fw_boot]Burned length:%d", update_msg.fw_burned_len); + ret = SUCCESS; + +exit_burn_fw_boot: + kfree(fw_boot); + return ret; +} +static u8 gup_burn_fw_boot_isp(struct i2c_client *client) +{ + s32 ret = 0; + u8 *fw_boot_isp = NULL; + u8 retry = 0; + u8 rd_buf[5]; + + if (update_msg.fw_burned_len >= update_msg.fw_total_len) { + GTP_DEBUG("No need to upgrade the boot_isp code!"); + return SUCCESS; + } + GTP_INFO("[burn_fw_boot_isp]Begin burn boot_isp firmware---->>"); + + + GTP_DEBUG("[burn_fw_boot_isp]step1:Alloc memory"); + while (retry++ < 5) { + fw_boot_isp = (u8 *)kzalloc(FW_BOOT_ISP_LENGTH, GFP_KERNEL); + if (fw_boot_isp == NULL) { + continue; + } else { + GTP_DEBUG("[burn_fw_boot_isp]Alloc %dk byte memory success.", (FW_BOOT_ISP_LENGTH/1024)); + break; + } + } + if (retry >= 5) { + GTP_ERROR("[burn_fw_boot_isp]Alloc memory fail,exit."); + return FAIL; + } + + + GTP_DEBUG("[burn_fw_boot_isp]step2:load firmware bootloader isp"); + + ret = gup_load_section_file(fw_boot_isp, (update_msg.fw_burned_len - FW_DSP_ISP_LENGTH), FW_BOOT_ISP_LENGTH, SEEK_SET); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_boot_isp]load firmware boot_isp fail."); + goto exit_burn_fw_boot_isp; + } + + + GTP_DEBUG("[burn_fw_boot_isp]step3:hold ss51 & dsp"); + ret = gup_set_ic_msg(client, _rRW_MISCTL__SWRST_B0_, 0x0C); + if (ret <= 0) { + GTP_ERROR("[burn_fw_boot_isp]hold ss51 & dsp fail."); + ret = FAIL; + goto exit_burn_fw_boot_isp; + } + + + GTP_DEBUG("[burn_fw_boot_isp]step4:set scramble"); + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOT_OPT_B0_, 0x00); + if (ret <= 0) { + GTP_ERROR("[burn_fw_boot_isp]set scramble fail."); + ret = FAIL; + goto exit_burn_fw_boot_isp; + } + + + + GTP_DEBUG("[burn_fw_boot_isp]step5:hold ss51 & release dsp"); + ret = gup_set_ic_msg(client, _rRW_MISCTL__SWRST_B0_, 0x04); + if (ret <= 0) { + GTP_ERROR("[burn_fw_boot_isp]release ss51 & dsp fail."); + ret = FAIL; + goto exit_burn_fw_boot_isp; + } + + msleep(1); + + + GTP_DEBUG("[burn_fw_boot_isp]step6:select bank3"); + ret = gup_set_ic_msg(client, _bRW_MISCTL__SRAM_BANK, 0x03); + if (ret <= 0) { + GTP_ERROR("[burn_fw_boot_isp]select bank3 fail."); + ret = FAIL; + goto exit_burn_fw_boot_isp; + } + + + GTP_DEBUG("[burn_fw_boot_isp]step7:burn 2k bootloader firmware"); + ret = gup_burn_proc(client, fw_boot_isp, 0x9000, FW_BOOT_ISP_LENGTH); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_boot_isp]burn fw_section fail."); + goto exit_burn_fw_boot_isp; + } + + + GTP_DEBUG("[burn_fw_boot_isp]step8:send burn cmd to move data to flash from sram"); + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOT_CTL_, 0x07); + if (ret <= 0) { + GTP_ERROR("[burn_fw_boot_isp]send burn cmd fail."); + goto exit_burn_fw_boot_isp; + } + GTP_DEBUG("[burn_fw_boot_isp]Wait for the burn is complete......"); + do { + ret = gup_get_ic_msg(client, _rRW_MISCTL__BOOT_CTL_, rd_buf, 1); + if (ret <= 0) { + GTP_ERROR("[burn_fw_boot_isp]Get burn state fail"); + goto exit_burn_fw_boot_isp; + } + msleep(10); + + } while (rd_buf[GTP_ADDR_LENGTH]); + + + GTP_DEBUG("[burn_fw_boot_isp]step9:recall check 2k bootloader firmware"); + ret = gup_recall_check(client, fw_boot_isp, 0x9000, FW_BOOT_ISP_LENGTH); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_boot_isp]recall check 2k bootcode_isp firmware fail."); + goto exit_burn_fw_boot_isp; + } + + update_msg.fw_burned_len += FW_BOOT_ISP_LENGTH; + GTP_DEBUG("[burn_fw_boot_isp]Burned length:%d", update_msg.fw_burned_len); + ret = SUCCESS; + +exit_burn_fw_boot_isp: + kfree(fw_boot_isp); + return ret; +} + +static u8 gup_burn_fw_link(struct i2c_client *client) +{ + s32 ret = 0; + u8 *fw_link = NULL; + u8 retry = 0; + u32 offset; + + if (update_msg.fw_burned_len >= update_msg.fw_total_len) { + GTP_DEBUG("No need to upgrade the link code!"); + return SUCCESS; + } + GTP_INFO("[burn_fw_link]Begin burn link firmware---->>"); + + + GTP_DEBUG("[burn_fw_link]step1:Alloc memory"); + while (retry++ < 5) { + fw_link = (u8 *)kzalloc(FW_SECTION_LENGTH, GFP_KERNEL); + if (fw_link == NULL) { + continue; + } else { + GTP_DEBUG("[burn_fw_link]Alloc %dk byte memory success.", (FW_SECTION_LENGTH/1024)); + break; + } + } + if (retry >= 5) { + GTP_ERROR("[burn_fw_link]Alloc memory fail,exit."); + return FAIL; + } + + + GTP_DEBUG("[burn_fw_link]step2:load firmware link section 1"); + offset = update_msg.fw_burned_len - FW_DSP_ISP_LENGTH; + ret = gup_load_section_file(fw_link, offset, FW_SECTION_LENGTH, SEEK_SET); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_link]load firmware link section 1 fail."); + goto exit_burn_fw_link; + } + + + GTP_DEBUG("[burn_fw_link]step3:burn link firmware section 1"); + ret = gup_burn_fw_gwake_section(client, fw_link, 0x9000, FW_SECTION_LENGTH, 0x38); + + if (FAIL == ret) { + GTP_ERROR("[burn_fw_link]burn link firmware section 1 fail."); + goto exit_burn_fw_link; + } + + + GTP_DEBUG("[burn_fw_link]step4:load link firmware section 2 file data"); + offset += FW_SECTION_LENGTH; + ret = gup_load_section_file(fw_link, offset, FW_GLINK_LENGTH - FW_SECTION_LENGTH, SEEK_SET); + + if (FAIL == ret) { + GTP_ERROR("[burn_fw_link]load link firmware section 2 fail."); + goto exit_burn_fw_link; + } + + + GTP_DEBUG("[burn_fw_link]step4:burn link firmware section 2"); + ret = gup_burn_fw_gwake_section(client, fw_link, 0x9000, FW_GLINK_LENGTH - FW_SECTION_LENGTH, 0x39); + + if (FAIL == ret) { + GTP_ERROR("[burn_fw_link]burn link firmware section 2 fail."); + goto exit_burn_fw_link; + } + + update_msg.fw_burned_len += FW_GLINK_LENGTH; + GTP_DEBUG("[burn_fw_link]Burned length:%d", update_msg.fw_burned_len); + ret = SUCCESS; + +exit_burn_fw_link: + kfree(fw_link); + return ret; +} + +static u8 gup_burn_fw_gwake_section(struct i2c_client *client, u8 *fw_section, u16 start_addr, u32 len, u8 bank_cmd) +{ + s32 ret = 0; + u8 rd_buf[5]; + + + ret = gup_set_ic_msg(client, _rRW_MISCTL__SWRST_B0_, 0x0C); + if (ret <= 0) { + GTP_ERROR("[burn_fw_app_section]hold ss51 & dsp fail."); + return FAIL; + } + + + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOT_OPT_B0_, 0x00); + if (ret <= 0) { + GTP_ERROR("[burn_fw_app_section]set scramble fail."); + return FAIL; + } + + + ret = gup_set_ic_msg(client, _rRW_MISCTL__SWRST_B0_, 0x04); + if (ret <= 0) { + GTP_ERROR("[burn_fw_app_section]hold ss51 & release dsp fail."); + return FAIL; + } + + msleep(1); + + + ret = gup_set_ic_msg(client, _bRW_MISCTL__SRAM_BANK, (bank_cmd >> 4)&0x0F); + if (ret <= 0) { + GTP_ERROR("[burn_fw_section]select bank %d fail.", (bank_cmd >> 4)&0x0F); + return FAIL; + } + + + ret = gup_burn_proc(client, fw_section, start_addr, len); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_app_section]burn fw_section fail."); + return FAIL; + } + + + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOT_CTL_, bank_cmd&0x0F); + if (ret <= 0) { + GTP_ERROR("[burn_fw_app_section]send burn cmd fail."); + return FAIL; + } + GTP_DEBUG("[burn_fw_section]Wait for the burn is complete......"); + do { + ret = gup_get_ic_msg(client, _rRW_MISCTL__BOOT_CTL_, rd_buf, 1); + if (ret <= 0) { + GTP_ERROR("[burn_fw_app_section]Get burn state fail"); + return FAIL; + } + msleep(10); + + } while (rd_buf[GTP_ADDR_LENGTH]); + + + ret = gup_recall_check(client, fw_section, start_addr, len); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_app_section]recall check %dk firmware fail.", len/1024); + return FAIL; + } + + return SUCCESS; +} + +static u8 gup_burn_fw_gwake(struct i2c_client *client) +{ + u8 *fw_gwake = NULL; + u8 retry = 0; + s32 ret = 0; + u16 start_index = 4*FW_SECTION_LENGTH+FW_DSP_LENGTH+FW_BOOT_LENGTH + FW_BOOT_ISP_LENGTH + FW_GLINK_LENGTH; + + + if (update_msg.fw_burned_len >= update_msg.fw_total_len) { + GTP_DEBUG("No need to upgrade the gwake code!"); + return SUCCESS; + } + + GTP_INFO("[burn_fw_gwake]Begin burn gwake firmware---->>"); + + + GTP_DEBUG("[burn_fw_gwake]step1:alloc memory"); + while (retry++ < 5) { + fw_gwake = (u8 *)kzalloc(FW_SECTION_LENGTH, GFP_KERNEL); + if (fw_gwake == NULL) { + continue; + } else { + GTP_DEBUG("[burn_fw_gwake]Alloc %dk byte memory success.", (FW_SECTION_LENGTH/1024)); + break; + } + } + if (retry >= 5) { + GTP_ERROR("[burn_fw_gwake]Alloc memory fail,exit."); + return FAIL; + } + + + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOT_CTL_, 0x00); + if (ret <= 0) { + GTP_ERROR("[burn_fw_finish]clear control flag fail."); + goto exit_burn_fw_gwake; + } + + + GTP_DEBUG("[burn_fw_gwake]step2:load app_code firmware section 1 file data"); + ret = gup_load_section_file(fw_gwake, start_index, FW_SECTION_LENGTH, SEEK_SET); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_gwake]load app_code firmware section 1 fail."); + goto exit_burn_fw_gwake; + } + + + GTP_DEBUG("[burn_fw_gwake]step3:burn app_code firmware section 1"); + ret = gup_burn_fw_gwake_section(client, fw_gwake, 0x9000, FW_SECTION_LENGTH, 0x3A); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_gwake]burn app_code firmware section 1 fail."); + goto exit_burn_fw_gwake; + } + + + GTP_DEBUG("[burn_fw_gwake]step5:load app_code firmware section 2 file data"); + ret = gup_load_section_file(fw_gwake, start_index+FW_SECTION_LENGTH, FW_SECTION_LENGTH, SEEK_SET); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_gwake]load app_code firmware section 2 fail."); + goto exit_burn_fw_gwake; + } + + + GTP_DEBUG("[burn_fw_gwake]step6:burn app_code firmware section 2"); + ret = gup_burn_fw_gwake_section(client, fw_gwake, 0x9000, FW_SECTION_LENGTH, 0x3B); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_gwake]burn app_code firmware section 2 fail."); + goto exit_burn_fw_gwake; + } + + + GTP_DEBUG("[burn_fw_gwake]step7:load app_code firmware section 3 file data"); + ret = gup_load_section_file(fw_gwake, start_index+2*FW_SECTION_LENGTH, FW_SECTION_LENGTH, SEEK_SET); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_gwake]load app_code firmware section 3 fail."); + goto exit_burn_fw_gwake; + } + + + GTP_DEBUG("[burn_fw_gwake]step8:burn app_code firmware section 3"); + ret = gup_burn_fw_gwake_section(client, fw_gwake, 0x9000, FW_SECTION_LENGTH, 0x3C); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_gwake]burn app_code firmware section 3 fail."); + goto exit_burn_fw_gwake; + } + + + GTP_DEBUG("[burn_fw_gwake]step9:load app_code firmware section 4 file data"); + ret = gup_load_section_file(fw_gwake, start_index + 3*FW_SECTION_LENGTH, FW_SECTION_LENGTH, SEEK_SET); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_gwake]load app_code firmware section 4 fail."); + goto exit_burn_fw_gwake; + } + + + GTP_DEBUG("[burn_fw_gwake]step10:burn app_code firmware section 4"); + ret = gup_burn_fw_gwake_section(client, fw_gwake, 0x9000, FW_SECTION_LENGTH, 0x3D); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_gwake]burn app_code firmware section 4 fail."); + goto exit_burn_fw_gwake; + } + + + GTP_DEBUG("[burn_fw_gwake]Burned length:%d", update_msg.fw_burned_len); + ret = SUCCESS; + +exit_burn_fw_gwake: + kfree(fw_gwake); + return ret; +} + +static u8 gup_burn_fw_finish(struct i2c_client *client) +{ + u8 *fw_ss51 = NULL; + u8 retry = 0; + s32 ret = 0; + + GTP_INFO("[burn_fw_finish]burn first 8K of ss51 and finish update."); + + GTP_DEBUG("[burn_fw_finish]step1:alloc memory"); + while (retry++ < 5) { + fw_ss51 = (u8 *)kzalloc(FW_SECTION_LENGTH, GFP_KERNEL); + if (fw_ss51 == NULL) { + continue; + } else { + GTP_DEBUG("[burn_fw_finish]Alloc %dk byte memory success.", (FW_SECTION_LENGTH/1024)); + break; + } + } + if (retry >= 5) { + GTP_ERROR("[burn_fw_finish]Alloc memory fail,exit."); + return FAIL; + } + + GTP_DEBUG("[burn_fw_finish]step2: burn ss51 first 8K."); + ret = gup_load_section_file(fw_ss51, 0, FW_SECTION_LENGTH, SEEK_SET); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_finish]load ss51 firmware section 1 fail."); + goto exit_burn_fw_finish; + } + + GTP_DEBUG("[burn_fw_finish]step3:clear control flag"); + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOT_CTL_, 0x00); + if (ret <= 0) { + GTP_ERROR("[burn_fw_finish]clear control flag fail."); + goto exit_burn_fw_finish; + } + + GTP_DEBUG("[burn_fw_finish]step4:burn ss51 firmware section 1"); + ret = gup_burn_fw_section(client, fw_ss51, 0xC000, 0x01); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_finish]burn ss51 firmware section 1 fail."); + goto exit_burn_fw_finish; + } + + + GTP_DEBUG("[burn_fw_finish]step5:enable download DSP code "); + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOT_CTL_, 0x99); + if (ret <= 0) { + GTP_ERROR("[burn_fw_finish]enable download DSP code fail."); + goto exit_burn_fw_finish; + } + + + GTP_DEBUG("[burn_fw_finish]step6:release ss51 & hold dsp"); + ret = gup_set_ic_msg(client, _rRW_MISCTL__SWRST_B0_, 0x08); + if (ret <= 0) { + GTP_ERROR("[burn_fw_finish]release ss51 & hold dsp fail."); + goto exit_burn_fw_finish; + } + + if (fw_ss51) { + kfree(fw_ss51); + } + return SUCCESS; + +exit_burn_fw_finish: + if (fw_ss51) { + kfree(fw_ss51); + } + return FAIL; +} +s32 gup_update_proc(void *dir) +{ + s32 ret = 0; + s32 update_ret = FAIL; + u8 retry = 0; + st_fw_head fw_head; + struct goodix_ts_data *ts = NULL; + + GTP_DEBUG("[update_proc]Begin update ......"); + + ts = i2c_get_clientdata(i2c_connect_client); + +#if GTP_AUTO_UPDATE + if (searching_file) { + u8 timeout = 0; + searching_file = 0; + GTP_INFO("Exiting searching .bin update file..."); + while ((show_len != 200) && (show_len != 100) && (timeout++ < 100)) { + msleep(100); + } + } +#endif + + show_len = 1; + total_len = 100; + +#if GTP_COMPATIBLE_MODE + if (CHIP_TYPE_GT9F == ts->chip_type) { + return gup_fw_download_proc(dir, GTP_FL_FW_BURN); + } +#endif + + update_msg.file = NULL; + ret = gup_check_update_file(i2c_connect_client, &fw_head, (u8 *)dir); + if (FAIL == ret) { + GTP_ERROR("[update_proc]check update file fail."); + goto file_fail; + } + + ret = gup_get_ic_fw_msg(i2c_connect_client); + if (FAIL == ret) { + GTP_ERROR("[update_proc]get ic message fail."); + goto file_fail; + } + + ret = gup_enter_update_judge(&fw_head); + if (FAIL == ret) { + GTP_ERROR("[update_proc]Check *.bin file fail."); + goto file_fail; + } + + ts->enter_update = 1; + gtp_irq_disable(ts); +#if GTP_ESD_PROTECT + gtp_esd_switch(ts->client, SWITCH_OFF); +#endif + ret = gup_enter_update_mode(i2c_connect_client); + if (FAIL == ret) { + GTP_ERROR("[update_proc]enter update mode fail."); + goto update_fail; + } + + while (retry++ < 5) { + show_len = 10; + total_len = 100; + update_msg.fw_burned_len = 0; + ret = gup_burn_dsp_isp(i2c_connect_client); + if (FAIL == ret) { + GTP_ERROR("[update_proc]burn dsp isp fail."); + continue; + } + + show_len = 20; + ret = gup_burn_fw_gwake(i2c_connect_client); + if (FAIL == ret) { + GTP_ERROR("[update_proc]burn app_code firmware fail."); + continue; + } + + show_len = 30; + ret = gup_burn_fw_ss51(i2c_connect_client); + if (FAIL == ret) { + GTP_ERROR("[update_proc]burn ss51 firmware fail."); + continue; + } + + show_len = 40; + ret = gup_burn_fw_dsp(i2c_connect_client); + if (FAIL == ret) { + GTP_ERROR("[update_proc]burn dsp firmware fail."); + continue; + } + + show_len = 50; + ret = gup_burn_fw_boot(i2c_connect_client); + if (FAIL == ret) { + GTP_ERROR("[update_proc]burn bootloader firmware fail."); + continue; + } + show_len = 60; + + ret = gup_burn_fw_boot_isp(i2c_connect_client); + if (FAIL == ret) { + GTP_ERROR("[update_proc]burn boot_isp firmware fail."); + continue; + } + + show_len = 70; + ret = gup_burn_fw_link(i2c_connect_client); + if (FAIL == ret) { + GTP_ERROR("[update_proc]burn link firmware fail."); + continue; + } + + show_len = 80; + ret = gup_burn_fw_finish(i2c_connect_client); + if (FAIL == ret) { + GTP_ERROR("[update_proc]burn finish fail."); + continue; + } + show_len = 90; + GTP_INFO("[update_proc]UPDATE SUCCESS."); + retry = 0; + break; + } + + if (retry >= 5) { + GTP_ERROR("[update_proc]retry timeout,UPDATE FAIL."); + update_ret = FAIL; + } else { + update_ret = SUCCESS; + } + +#if WT_ADD_CTP_INFO +gtp_hardwareinfo_set(); +#endif + + +update_fail: + GTP_DEBUG("[update_proc]leave update mode."); + gup_leave_update_mode(); + + msleep(100); + + if (SUCCESS == update_ret) { + if (ts->fw_error) { + GTP_INFO("firmware error auto update, resent config!"); + gup_init_panel(ts); + } else { + GTP_DEBUG("[update_proc]send config."); + ret = gtp_send_cfg(i2c_connect_client); + if (ret < 0) { + GTP_ERROR("[update_proc]send config fail."); + } else { + msleep(100); + } + } + } + ts->enter_update = 0; + gtp_irq_enable(ts); + +#if GTP_ESD_PROTECT + gtp_esd_switch(ts->client, SWITCH_ON); +#endif + +file_fail: + if (update_msg.file && !IS_ERR(update_msg.file)) { + if (update_msg.old_fs) { + set_fs(update_msg.old_fs); + } + filp_close(update_msg.file, NULL); + } +#if (GTP_AUTO_UPDATE && GTP_AUTO_UPDATE_CFG && GTP_HEADER_FW_UPDATE) + if (NULL == dir) { + gup_search_file(AUTO_SEARCH_CFG); + if (got_file_flag & CFG_FILE_READY) { + ret = gup_update_config(i2c_connect_client); + if (ret <= 0) { + GTP_ERROR("Update config failed."); + } + _CLOSE_FILE(update_msg.cfg_file); + msleep(500); + } + } +#endif + + total_len = 100; + if (SUCCESS == update_ret) { + show_len = 100; + return SUCCESS; + } else { + show_len = 200; + return FAIL; + } +} + +#if GTP_AUTO_UPDATE +u8 gup_init_update_proc(struct goodix_ts_data *ts) +{ + struct task_struct *thread = NULL; + + GTP_INFO("Ready to run update thread."); + +#if GTP_COMPATIBLE_MODE + if (CHIP_TYPE_GT9F == ts->chip_type) { + thread = kthread_run(gup_update_proc, "update", "fl update"); + } else +#endif + { + thread = kthread_run(gup_update_proc, (void *)NULL, "guitar_update"); + } + if (IS_ERR(thread)) { + GTP_ERROR("Failed to create update thread.\n"); + return -EPERM; + } + + return 0; +} +#endif + + + +#define FW_DOWNLOAD_LENGTH 0x4000 +#define FW_SS51_SECTION_LEN 0x2000 +#define FL_PACK_SIZE 1024 +#define GUP_FW_CHK_SIZE FL_PACK_SIZE + +#define FL_UPDATE_PATH "/data/_fl_update_.bin" +#define FL_UPDATE_PATH_SD "/sdcard/_fl_update_.bin" + +#define PULSE_LENGTH (200) +#define INIT_CLK_DAC (50) +#define MAX_CLK_DAC (120) +#define CLK_AVG_TIME (1) +#define MILLION 1000000 + +#define _wRW_MISCTL__RG_DMY 0x4282 +#define _bRW_MISCTL__RG_OSC_CALIB 0x4268 +#define _fRW_MISCTL__GIO0 0x41e9 +#define _fRW_MISCTL__GIO1 0x41ed +#define _fRW_MISCTL__GIO2 0x41f1 +#define _fRW_MISCTL__GIO3 0x41f5 +#define _fRW_MISCTL__GIO4 0x41f9 +#define _fRW_MISCTL__GIO5 0x41fd +#define _fRW_MISCTL__GIO6 0x4201 +#define _fRW_MISCTL__GIO7 0x4205 +#define _fRW_MISCTL__GIO8 0x4209 +#define _fRW_MISCTL__GIO9 0x420d +#define _fRW_MISCTL__MEA 0x41a0 +#define _bRW_MISCTL__MEA_MODE 0x41a1 +#define _wRW_MISCTL__MEA_MAX_NUM 0x41a4 +#define _dRO_MISCTL__MEA_VAL 0x41b0 +#define _bRW_MISCTL__MEA_SRCSEL 0x41a3 +#define _bRO_MISCTL__MEA_RDY 0x41a8 +#define _rRW_MISCTL__ANA_RXADC_B0_ 0x4250 +#define _bRW_MISCTL__RG_LDO_A18_PWD 0x426f +#define _bRW_MISCTL__RG_BG_PWD 0x426a +#define _bRW_MISCTL__RG_CLKGEN_PWD 0x4269 +#define _fRW_MISCTL__RG_RXADC_PWD 0x426a +#define _bRW_MISCTL__OSC_CK_SEL 0x4030 +#define _rRW_MISCTL_RG_DMY83 0x4283 +#define _rRW_MISCTL__GIO1CTL_B2_ 0x41ee +#define _rRW_MISCTL__GIO1CTL_B1_ 0x41ed + + +#if GTP_COMPATIBLE_MODE + +u8 i2c_opr_buf[GTP_ADDR_LENGTH + FL_PACK_SIZE] = {0}; +u8 chk_cmp_buf[FL_PACK_SIZE] = {0}; + +extern s32 gtp_fw_startup(struct i2c_client *client); +static u8 gup_download_fw_dsp(struct i2c_client *client, u8 dwn_mode); +static s32 gup_burn_fw_proc(struct i2c_client *client, u16 start_addr, s32 start_index, s32 burn_len); +static s32 gup_check_and_repair(struct i2c_client *client, u16 start_addr, s32 start_index, s32 chk_len); + + +u8 gup_check_fs_mounted(char *path_name) +{ + struct path root_path; + struct path path; + int err = -1; + err = kern_path("/", LOOKUP_FOLLOW, &root_path); + + if (err) { + GTP_DEBUG("\"/\" NOT Mounted: %d", err); + return FAIL; + } + err = kern_path(path_name, LOOKUP_FOLLOW, &path); + + if (err) { + GTP_DEBUG("%s NOT Mounted: %d", path_name, err); + err = FAIL; + goto exit_chk; + } + + if (path.mnt->mnt_sb == root_path.mnt->mnt_sb) { + err = FAIL; + } else { + err = SUCCESS; + } + + path_put(&path); +exit_chk: + path_put(&root_path); + return err; +} + +s32 i2c_write_bytes(struct i2c_client *client, u16 addr, u8 *buf, s32 len) +{ + s32 ret = 0; + s32 write_bytes = 0; + s32 retry = 0; + u8 *tx_buf = buf; + + while (len > 0) { + i2c_opr_buf[0] = (u8)(addr >> 8); + i2c_opr_buf[1] = (u8)(addr & 0xFF); + if (len > FL_PACK_SIZE) { + write_bytes = FL_PACK_SIZE; + } else { + write_bytes = len; + } + memcpy(i2c_opr_buf + 2, tx_buf, write_bytes); + for (retry = 0; retry < 5; ++retry) { + ret = gup_i2c_write(client, i2c_opr_buf, write_bytes + GTP_ADDR_LENGTH); + if (ret == 1) { + break; + } + } + if (retry >= 5) { + GTP_ERROR("retry timeout, I2C write 0x%04X %d bytes failed!", addr, write_bytes); + return -EPERM; + } + addr += write_bytes; + len -= write_bytes; + tx_buf += write_bytes; + } + + return 1; +} + +s32 i2c_read_bytes(struct i2c_client *client, u16 addr, u8 *buf, s32 len) +{ + s32 ret = 0; + s32 read_bytes = 0; + s32 retry = 0; + u8 *tx_buf = buf; + + while (len > 0) { + i2c_opr_buf[0] = (u8)(addr >> 8); + i2c_opr_buf[1] = (u8)(addr & 0xFF); + if (len > FL_PACK_SIZE) { + read_bytes = FL_PACK_SIZE; + } else { + read_bytes = len; + } + for (retry = 0; retry < 5; ++retry) { + ret = gup_i2c_read(client, i2c_opr_buf, read_bytes + GTP_ADDR_LENGTH); + if (ret == 2) { + break; + } + } + if (retry >= 5) { + GTP_ERROR("retry timeout, I2C read 0x%04X %d bytes failed!", addr, read_bytes); + return -EPERM; + } + memcpy(tx_buf, i2c_opr_buf + 2, read_bytes); + addr += read_bytes; + len -= read_bytes; + tx_buf += read_bytes; + } + return 2; +} + + + + + +static void gup_bit_write(s32 addr, s32 bit, s32 val) +{ + u8 buf; + i2c_read_bytes(i2c_connect_client, addr, &buf, 1); + + buf = (buf & (~((u8)1 << bit))) | ((u8)val << bit); + + i2c_write_bytes(i2c_connect_client, addr, &buf, 1); +} + +static void gup_clk_count_init(s32 bCh, s32 bCNT) +{ + u8 buf; + + + gup_bit_write(_fRW_MISCTL__MEA, 0, 0); + + gup_bit_write(_fRW_MISCTL__MEA, 1, 1); + + buf = 0; + i2c_write_bytes(i2c_connect_client, _bRW_MISCTL__MEA_MODE, &buf, 1); + + buf = 8 + bCh; + i2c_write_bytes(i2c_connect_client, _bRW_MISCTL__MEA_SRCSEL, &buf, 1); + + buf = bCNT; + i2c_write_bytes(i2c_connect_client, _wRW_MISCTL__MEA_MAX_NUM, &buf, 1); + + gup_bit_write(_fRW_MISCTL__MEA, 1, 0); + + gup_bit_write(_fRW_MISCTL__MEA, 0, 1); +} + +static u32 gup_clk_count_get(void) +{ + s32 ready = 0; + s32 temp; + s8 buf[4]; + + while ((ready == 0)) { + i2c_read_bytes(i2c_connect_client, _bRO_MISCTL__MEA_RDY, buf, 1); + ready = buf[0]; + } + + msleep(50); + + + gup_bit_write(_fRW_MISCTL__MEA, 0, 0); + i2c_read_bytes(i2c_connect_client, _dRO_MISCTL__MEA_VAL, buf, 4); + GTP_DEBUG("Clk_count 0: %2X", buf[0]); + GTP_DEBUG("Clk_count 1: %2X", buf[1]); + GTP_DEBUG("Clk_count 2: %2X", buf[2]); + GTP_DEBUG("Clk_count 3: %2X", buf[3]); + + temp = (s32)buf[0] + ((s32)buf[1] << 8) + ((s32)buf[2] << 16) + ((s32)buf[3] << 24); + GTP_INFO("Clk_count : %d", temp); + return temp; +} +u8 gup_clk_dac_setting(int dac) +{ + s8 buf1, buf2; + + i2c_read_bytes(i2c_connect_client, _wRW_MISCTL__RG_DMY, &buf1, 1); + i2c_read_bytes(i2c_connect_client, _bRW_MISCTL__RG_OSC_CALIB, &buf2, 1); + + buf1 = (buf1 & 0xFFCF) | ((dac & 0x03) << 4); + buf2 = (dac >> 2) & 0x3f; + + i2c_write_bytes(i2c_connect_client, _wRW_MISCTL__RG_DMY, &buf1, 1); + i2c_write_bytes(i2c_connect_client, _bRW_MISCTL__RG_OSC_CALIB, &buf2, 1); + + return 0; +} + +static u8 gup_clk_calibration_pin_select(s32 bCh) +{ + s32 i2c_addr; + + switch (bCh) { + case 0: + i2c_addr = _fRW_MISCTL__GIO0; + break; + + case 1: + i2c_addr = _fRW_MISCTL__GIO1; + break; + + case 2: + i2c_addr = _fRW_MISCTL__GIO2; + break; + + case 3: + i2c_addr = _fRW_MISCTL__GIO3; + break; + + case 4: + i2c_addr = _fRW_MISCTL__GIO4; + break; + + case 5: + i2c_addr = _fRW_MISCTL__GIO5; + break; + + case 6: + i2c_addr = _fRW_MISCTL__GIO6; + break; + + case 7: + i2c_addr = _fRW_MISCTL__GIO7; + break; + + case 8: + i2c_addr = _fRW_MISCTL__GIO8; + break; + + case 9: + i2c_addr = _fRW_MISCTL__GIO9; + break; + } + + gup_bit_write(i2c_addr, 1, 0); + + return 0; +} + +void gup_output_pulse(int t) +{ + unsigned long flags; + + + GTP_GPIO_OUTPUT(gtp_int_gpio, 0); + msleep(10); + + local_irq_save(flags); + + GTP_GPIO_OUTPUT(gtp_int_gpio, 1); + msleep(50); + GTP_GPIO_OUTPUT(gtp_int_gpio, 0); + msleep(t - 50); + GTP_GPIO_OUTPUT(gtp_int_gpio, 1); + + local_irq_restore(flags); + + msleep(20); + GTP_GPIO_OUTPUT(gtp_int_gpio, 0); +} + +static void gup_sys_clk_init(void) +{ + u8 buf; + + + gup_bit_write(_rRW_MISCTL__ANA_RXADC_B0_, 5, 0); + + buf = 0; + i2c_write_bytes(i2c_connect_client, _bRW_MISCTL__RG_LDO_A18_PWD, &buf, 1); + + buf = 0; + i2c_write_bytes(i2c_connect_client, _bRW_MISCTL__RG_BG_PWD, &buf, 1); + + buf = 0; + i2c_write_bytes(i2c_connect_client, _bRW_MISCTL__RG_CLKGEN_PWD, &buf, 1); + + gup_bit_write(_rRW_MISCTL__ANA_RXADC_B0_, 0, 0); + + gup_bit_write(_rRW_MISCTL__ANA_RXADC_B0_, 1, 0); + + + buf = 1; + i2c_write_bytes(i2c_connect_client, _bRW_MISCTL__OSC_CK_SEL, &buf, 1); +} + +s32 gup_clk_calibration(void) +{ + u8 buf; + + s32 i; + struct timeval start, end; + s32 count; + s32 count_ref; + s32 sec; + s32 usec; + + struct goodix_ts_data *ts; + + buf = 0x0C; + i2c_write_bytes(i2c_connect_client, _rRW_MISCTL__SWRST_B0_, &buf, 1); + + + gup_bit_write(_rRW_MISCTL_RG_DMY83, 7, 0); + + + gup_bit_write(_rRW_MISCTL__GIO1CTL_B2_, 0, 0); + + + gup_bit_write(_rRW_MISCTL__GIO1CTL_B1_, 1, 0); + + + + + + GTP_INFO("CLK calibration GO"); + gup_sys_clk_init(); + gup_clk_calibration_pin_select(1); + + GTP_GPIO_OUTPUT(gtp_int_gpio, 0); + + ts = i2c_get_clientdata(i2c_connect_client); + + for (i = INIT_CLK_DAC; i < MAX_CLK_DAC; i++) { + GTP_INFO("CLK calibration DAC %d", i); + + if (ts->gtp_is_suspend) { + i = 72; + break; + } + + gup_clk_dac_setting(i); + gup_clk_count_init(1, CLK_AVG_TIME); + + #if 0 + gup_output_pulse(PULSE_LENGTH); + count = gup_clk_count_get(); + + if (count > PULSE_LENGTH * 60) { + break; + } + + #else + GTP_GPIO_OUTPUT(gtp_int_gpio, 0); + + + do_gettimeofday(&start); + GTP_GPIO_OUTPUT(gtp_int_gpio, 1); + + + msleep(1); + GTP_GPIO_OUTPUT(gtp_int_gpio, 0); + msleep(1); + + + do_gettimeofday(&end); + GTP_GPIO_OUTPUT(gtp_int_gpio, 1); + + + count = gup_clk_count_get(); + msleep(20); + GTP_GPIO_OUTPUT(gtp_int_gpio, 0); + + usec = end.tv_usec - start.tv_usec; + sec = end.tv_sec - start.tv_sec; + count_ref = 60 * (usec + sec * MILLION); + + GTP_DEBUG("== time %d, %d, %d", sec, usec, count_ref); + + if (count > count_ref) { + GTP_DEBUG("== count_diff %d", count - count_ref); + break; + } + + #endif + } + + + + gtp_reset_guitar(i2c_connect_client, 20); + +#if 0 + + buf = 0x00; + i2c_write_bytes(i2c_connect_client, 0x41FA, &buf, 1); + buf = 0x00; + i2c_write_bytes(i2c_connect_client, 0x4104, &buf, 1); + buf = 0x00; + i2c_write_bytes(i2c_connect_client, 0x4105, &buf, 1); + buf = 0x00; + i2c_write_bytes(i2c_connect_client, 0x4106, &buf, 1); + buf = 0x01; + i2c_write_bytes(i2c_connect_client, 0x4107, &buf, 1); + buf = 0x06; + i2c_write_bytes(i2c_connect_client, 0x41F8, &buf, 1); + buf = 0x02; + i2c_write_bytes(i2c_connect_client, 0x41F9, &buf, 1); +#endif + + GTP_GPIO_AS_INT(gtp_int_gpio); + return i; +} + + + +s32 gup_hold_ss51_dsp(struct i2c_client *client) +{ + s32 ret = -1; + s32 retry = 0; + u8 rd_buf[3]; + + while (retry++ < 200) { + + ret = gup_set_ic_msg(client, _rRW_MISCTL__SWRST_B0_, 0x0C); + if (ret <= 0) { + GTP_DEBUG("Hold ss51 & dsp I2C error,retry:%d", retry); + continue; + } + + + ret = gup_get_ic_msg(client, _rRW_MISCTL__SWRST_B0_, rd_buf, 1); + if (ret <= 0) { + GTP_DEBUG("Hold ss51 & dsp I2C error,retry:%d", retry); + continue; + } + if (0x0C == rd_buf[GTP_ADDR_LENGTH]) { + GTP_DEBUG("[enter_update_mode]Hold ss51 & dsp confirm SUCCESS"); + break; + } + GTP_DEBUG("Hold ss51 & dsp confirm 0x4180 failed,value:%d", rd_buf[GTP_ADDR_LENGTH]); + } + if (retry >= 200) { + GTP_ERROR("Enter update Hold ss51 failed."); + return FAIL; + } + + ret = gup_set_ic_msg(client, 0x4010, 0x00); + if (ret <= 0) { + GTP_ERROR("[enter_update_mode]DSP_CK and DSP_ALU_CK PowerOn fail."); + return FAIL; + } + + + ret = gup_set_ic_msg(client, _bRW_MISCTL__TMR0_EN, 0x00); + + if (ret <= 0) { + GTP_ERROR("[enter_update_mode]disable wdt fail."); + return FAIL; + } + + + ret = gup_set_ic_msg(client, _bRW_MISCTL__CACHE_EN, 0x00); + + if (ret <= 0) { + GTP_ERROR("[enter_update_mode]clear cache enable fail."); + return FAIL; + } + + + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOTCTL_B0_, 0x02); + + if (ret <= 0) { + GTP_ERROR("[enter_update_mode]set boot from sram fail."); + return FAIL; + } + + + ret = gup_set_ic_msg(client, _bWO_MISCTL__CPU_SWRST_PULSE, 0x01); + if (ret <= 0) { + GTP_ERROR("[enter_update_mode]software reboot fail."); + return FAIL; + } + + return SUCCESS; +} + +s32 gup_enter_update_mode_fl(struct i2c_client *client) +{ + s32 ret = -1; + + + + + GTP_GPIO_OUTPUT(gtp_rst_gpio, 0); + msleep(2); + + + GTP_GPIO_OUTPUT(gtp_int_gpio, (client->addr == 0x14)); + msleep(2); + + + GTP_GPIO_OUTPUT(gtp_rst_gpio, 1); + + msleep(5); + + + ret = gup_hold_ss51_dsp(client); + if (ret <= 0) { + GTP_ERROR("[enter_update_mode]hold ss51 & dsp failed."); + return FAIL; + } + + + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOT_CTL_, 0x00); + + if (ret <= 0) { + GTP_ERROR("[enter_update_mode]clear control flag fail."); + return FAIL; + } + + + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOT_OPT_B0_, 0x00); + + if (ret <= 0) { + GTP_ERROR("[enter_update_mode]set scramble fail."); + return FAIL; + } + + + ret = gup_set_ic_msg(client, _bRW_MISCTL__MEM_CD_EN, 0x01); + + if (ret <= 0) { + GTP_ERROR("[enter_update_mode]enable accessing code fail."); + return FAIL; + } + + return SUCCESS; +} + +static u8 gup_download_fw_dsp(struct i2c_client *client, u8 dwn_mode) +{ + s32 ret = 0; + + + GTP_DEBUG("[download_fw_dsp]step1:select bank2"); + ret = gup_set_ic_msg(client, _bRW_MISCTL__SRAM_BANK, 0x02); + if (ret == FAIL) { + GTP_ERROR("select bank 2 fail"); + return FAIL; + } + + if (GTP_FL_FW_BURN == dwn_mode) { + GTP_INFO("[download_fw_dsp]Begin download dsp fw---->>"); + + if (ret <= 0) { + GTP_ERROR("[download_fw_dsp]select bank2 fail."); + return FAIL; + } + GTP_DEBUG("burn fw dsp"); + ret = gup_burn_fw_proc(client, 0xC000, 2 * FW_DOWNLOAD_LENGTH, FW_DSP_LENGTH); + if (FAIL == ret) { + GTP_ERROR("[download_fw_dsp]download FW dsp fail."); + return FAIL; + } + GTP_INFO("check firmware dsp"); + ret = gup_check_and_repair(client, 0xC000, 2 * FW_DOWNLOAD_LENGTH, FW_DSP_LENGTH); + if (FAIL == ret) { + GTP_ERROR("check fw dsp failed!"); + return FAIL; + } + } else if (GTP_FL_ESD_RECOVERY == dwn_mode) { + GTP_INFO("[download_fw_dsp]Begin esd check dsp fw---->>"); + + + + + { + + GTP_INFO("esd recovery redownload firmware dsp code"); + ret = gup_burn_fw_proc(client, 0xC000, 2 * FW_DOWNLOAD_LENGTH, FW_DSP_LENGTH); + if (FAIL == ret) { + GTP_ERROR("redownload fw dsp failed!"); + return FAIL; + } + } + } else { + GTP_INFO("check firmware dsp"); + ret = gup_check_and_repair(client, 0xC000, 2 * FW_DOWNLOAD_LENGTH, FW_DSP_LENGTH); + if (FAIL == ret) { + GTP_ERROR("check fw dsp failed!"); + return FAIL; + } + } + return SUCCESS; +} + +static s32 gup_burn_fw_proc(struct i2c_client *client, u16 start_addr, s32 start_index, s32 burn_len) +{ + s32 ret = 0; + + GTP_DEBUG("burn firmware: 0x%04X, %d bytes, start_index: 0x%04X", start_addr, burn_len, start_index); + + ret = i2c_write_bytes(client, start_addr, (u8 *)>p_default_FW_fl[FW_HEAD_LENGTH + start_index], burn_len); + if (ret < 0) { + GTP_ERROR("burn 0x%04X, %d bytes failed!", start_addr, burn_len); + return FAIL; + } + return SUCCESS; +} + +static s32 gup_check_and_repair(struct i2c_client *client, u16 start_addr, s32 start_index, s32 chk_len) +{ + s32 ret = 0; + s32 cmp_len = 0; + u16 cmp_addr = start_addr; + s32 i = 0; + s32 chked_times = 0; + u8 chk_fail = 0; + + GTP_DEBUG("check firmware: start 0x%04X, %d bytes", start_addr, chk_len); + while ((chk_len > 0) && (chked_times < GTP_CHK_FW_MAX)) { + if (chk_len >= GUP_FW_CHK_SIZE) { + cmp_len = GUP_FW_CHK_SIZE; + } else { + cmp_len = chk_len; + } + ret = i2c_read_bytes(client, cmp_addr, chk_cmp_buf, cmp_len); + if (ret < 0) { + chk_fail = 1; + break; + } + for (i = 0; i < cmp_len; ++i) { + if (chk_cmp_buf[i] != gtp_default_FW_fl[FW_HEAD_LENGTH + start_index + i]) { + chk_fail = 1; + i2c_write_bytes(client, cmp_addr + i, >p_default_FW_fl[FW_HEAD_LENGTH + start_index + i], cmp_len-i); + GTP_ERROR("Check failed index: %d(%d != %d), redownload chuck", i, chk_cmp_buf[i], + gtp_default_FW_fl[FW_HEAD_LENGTH + start_index + i]); + break; + } + } + if (chk_fail == 1) { + chk_fail = 0; + chked_times++; + } else { + cmp_addr += cmp_len; + start_index += cmp_len; + chk_len -= cmp_len; + } + } + if (chk_len > 0) { + GTP_ERROR("cmp_addr: 0x%04X, start_index: 0x%02X, chk_len: 0x%04X", cmp_addr, + start_index, chk_len); + return FAIL; + } + return SUCCESS; +} + +static u8 gup_download_fw_ss51(struct i2c_client *client, u8 dwn_mode) +{ + s32 section = 0; + s32 ret = 0; + s32 start_index = 0; + u8 bank = 0; + u16 burn_addr = 0xC000; + + if (GTP_FL_FW_BURN == dwn_mode) { + GTP_INFO("download firmware ss51"); + } else { + GTP_INFO("check firmware ss51"); + } + for (section = 1; section <= 4; section += 2) { + switch (section) { + case 1: + bank = 0x00; + burn_addr = (section - 1) * FW_SS51_SECTION_LEN + 0xC000; + break; + case 3: + bank = 0x01; + burn_addr = (section - 3) * FW_SS51_SECTION_LEN + 0xC000; + break; + } + start_index = (section - 1) * FW_SS51_SECTION_LEN; + + GTP_DEBUG("download firmware ss51: select bank%d", bank); + ret = gup_set_ic_msg(client, _bRW_MISCTL__SRAM_BANK, bank); + if (GTP_FL_FW_BURN == dwn_mode) { + GTP_DEBUG("download firmware ss51 section%d & %d", section, section+1); + ret = gup_burn_fw_proc(client, burn_addr, start_index, 2 * FW_SS51_SECTION_LEN); + if (ret == FAIL) { + GTP_ERROR("download fw ss51 section%d & %d failed!", section, section+1); + return FAIL; + } + GTP_DEBUG("check firmware ss51 section%d & %d", section, section+1); + ret = gup_check_and_repair(client, burn_addr, start_index, 2 * FW_SS51_SECTION_LEN); + if (ret == FAIL) { + GTP_ERROR("check ss51 section%d & %d failed!", section, section+1); + return FAIL; + } + } else if (GTP_FL_ESD_RECOVERY == dwn_mode) { + + + + { + + GTP_DEBUG("esd recovery redownload ss51 section%d & %d", section, section+1); + ret = gup_burn_fw_proc(client, burn_addr, start_index, 2 * FW_SS51_SECTION_LEN); + if (ret == FAIL) { + GTP_ERROR("download fw ss51 section%d failed!", section); + return FAIL; + } + } + } else { + GTP_DEBUG("check firmware ss51 section%d & %d", section, section+1); + ret = gup_check_and_repair(client, burn_addr, start_index, 2 * FW_SS51_SECTION_LEN); + if (ret == FAIL) { + GTP_ERROR("check ss51 section%d & %d failed!", section, section+1); + return FAIL; + } + } + } + + return SUCCESS; +} + + +static s32 gup_prepare_fl_fw(char *path, st_fw_head *fw_head) +{ + s32 ret = 0; + s32 i = 0; + s32 timeout = 0; + struct goodix_ts_data *ts = i2c_get_clientdata(i2c_connect_client); + + if (!memcmp(path, "update", 6)) { + GTP_INFO("Search for GT9XXF firmware file to update"); + + searching_file = 1; + for (i = 0; i < GUP_SEARCH_FILE_TIMES; ++i) { + if (0 == searching_file) { + GTP_INFO("Force terminate auto update for GT9XXF..."); + return FAIL; + } + GTP_DEBUG("Search for %s, %s for fw update.(%d/%d)", FL_UPDATE_PATH, FL_UPDATE_PATH_SD, i+1, GUP_SEARCH_FILE_TIMES); + update_msg.file = filp_open(FL_UPDATE_PATH, O_RDONLY, 0); + if (IS_ERR(update_msg.file)) { + update_msg.file = filp_open(FL_UPDATE_PATH_SD, O_RDONLY, 0); + if (IS_ERR(update_msg.file)) { + msleep(3000); + continue; + } else { + path = FL_UPDATE_PATH_SD; + break; + } + } else { + path = FL_UPDATE_PATH; + break; + } + } + searching_file = 0; + if (i == 50) { + GTP_INFO("Search timeout, update aborted"); + return FAIL; + } else { + GTP_INFO("GT9XXF firmware file %s found!", path); + _CLOSE_FILE(update_msg.file); + } + while (ts->rqst_processing && (timeout++ < 5)) { + GTP_DEBUG("request processing, waiting for accomplishment"); + msleep(1000); + } + } + GTP_INFO("Firmware update file path: %s", path); + + update_msg.file = filp_open(path, O_RDONLY, 0); + + if (IS_ERR(update_msg.file)) { + GTP_ERROR("Open update file(%s) error!", path); + return FAIL; + } + + update_msg.old_fs = get_fs(); + set_fs(KERNEL_DS); + + update_msg.file->f_op->llseek(update_msg.file, 0, SEEK_SET); + update_msg.fw_total_len = update_msg.file->f_op->llseek(update_msg.file, 0, SEEK_END); + + update_msg.force_update = 0xBE; + if (update_msg.fw_total_len != sizeof(gtp_default_FW_fl)) { + GTP_ERROR("Inconsistent fw size. default size: %d(%dK), file size: %d(%dK)", sizeof(gtp_default_FW_fl), sizeof(gtp_default_FW_fl)/1024, update_msg.fw_total_len, update_msg.fw_total_len/1024); + set_fs(update_msg.old_fs); + _CLOSE_FILE(update_msg.file); + return FAIL; + } + + update_msg.fw_total_len -= FW_HEAD_LENGTH; + GTP_DEBUG("Fimrware size: %d(%dK)", update_msg.fw_total_len, update_msg.fw_total_len / 1024); + + update_msg.file->f_op->llseek(update_msg.file, 0, SEEK_SET); + ret = update_msg.file->f_op->read(update_msg.file, (char *)gtp_default_FW_fl, + update_msg.fw_total_len + FW_HEAD_LENGTH, + &update_msg.file->f_pos); + update_msg.fw_total_len += FW_HEAD_LENGTH; + set_fs(update_msg.old_fs); + _CLOSE_FILE(update_msg.file); + + if (ret < 0) { + GTP_ERROR("read %s failed, err-code: %d", path, ret); + return FAIL; + } + return SUCCESS; +} +static u8 gup_check_update_file_fl(struct i2c_client *client, st_fw_head *fw_head, char *path) +{ + s32 ret = 0; + s32 i = 0; + s32 fw_checksum = 0; + + if (NULL != path) { + ret = gup_prepare_fl_fw(path, fw_head); + if (FAIL == ret) { + return FAIL; + } + } else { + update_msg.fw_total_len = sizeof(gtp_default_FW_fl); + } + + memcpy(fw_head, gtp_default_FW_fl, FW_HEAD_LENGTH); + GTP_INFO("FILE HARDWARE INFO: %02x%02x%02x%02x", fw_head->hw_info[0], fw_head->hw_info[1], fw_head->hw_info[2], fw_head->hw_info[3]); + GTP_INFO("FILE PID: %s", fw_head->pid); + fw_head->vid = ((fw_head->vid & 0xFF00) >> 8) + ((fw_head->vid & 0x00FF) << 8); + GTP_INFO("FILE VID: %04x", fw_head->vid); + + + fw_checksum = 0; + for (i = FW_HEAD_LENGTH; i < update_msg.fw_total_len; i += 2) { + fw_checksum += (gtp_default_FW_fl[i] << 8) + gtp_default_FW_fl[i+1]; + } + ret = SUCCESS; + + GTP_DEBUG("firmware checksum: %x", fw_checksum&0xFFFF); + if (fw_checksum & 0xFFFF) { + GTP_ERROR("Illegal firmware file."); + ret = FAIL; + } + + return ret; +} + +s32 gup_fw_download_proc(void *dir, u8 dwn_mode) +{ + s32 ret = 0; + u8 retry = 0; + st_fw_head fw_head; + struct goodix_ts_data *ts; + + ts = i2c_get_clientdata(i2c_connect_client); + if (NULL == dir) { + if (GTP_FL_FW_BURN == dwn_mode) { + GTP_INFO("[fw_download_proc]Begin fw download ......"); + } else if (GTP_FL_ESD_RECOVERY == dwn_mode) { + GTP_INFO("[fw_download_proc]Begin fw esd recovery check ......"); + } else { + GTP_INFO("[fw_download_proc]Being fw repair check......"); + } + } else { + GTP_INFO("[fw_download_proc]Begin firmware update by bin file"); + } + + total_len = 100; + show_len = 0; + + ret = gup_check_update_file_fl(i2c_connect_client, &fw_head, (char *)dir); + show_len = 10; + + if (FAIL == ret) { + GTP_ERROR("[fw_download_proc]check update file fail."); + goto file_fail; + } + + if (!memcmp(fw_head.pid, "950", 3)) { + ts->is_950 = 1; + GTP_DEBUG("GT9XXF Ic Type: gt950"); + } else { + ts->is_950 = 0; + } + + if (NULL != dir) { + gtp_irq_disable(ts); +#if GTP_ESD_PROTECT + gtp_esd_switch(ts->client, SWITCH_OFF); +#endif + } + + ret = gup_enter_update_mode_fl(i2c_connect_client); + show_len = 20; + if (FAIL == ret) { + GTP_ERROR("[fw_download_proc]enter update mode fail."); + goto download_fail; + } + + while (retry++ < 5) { + ret = gup_download_fw_ss51(i2c_connect_client, dwn_mode); + show_len = 60; + if (FAIL == ret) { + GTP_ERROR("[fw_download_proc]burn ss51 firmware fail."); + continue; + } + + ret = gup_download_fw_dsp(i2c_connect_client, dwn_mode); + show_len = 80; + if (FAIL == ret) { + GTP_ERROR("[fw_download_proc]burn dsp firmware fail."); + continue; + } + + GTP_INFO("[fw_download_proc]UPDATE SUCCESS."); + break; + } + + if (retry >= 5) { + GTP_ERROR("[fw_download_proc]retry timeout,UPDATE FAIL."); + goto download_fail; + } + + if (NULL != dir) { + gtp_irq_enable(ts); + gtp_fw_startup(ts->client); + #if GTP_ESD_PROTECT + gtp_esd_switch(ts->client, SWITCH_ON); + #endif + } + show_len = 100; + return SUCCESS; + +download_fail: + if (NULL != dir) { + gtp_irq_enable(ts); + gtp_fw_startup(ts->client); + #if GTP_ESD_PROTECT + gtp_esd_switch(ts->client, SWITCH_ON); + #endif + } +file_fail: + show_len = 200; + + return FAIL; +} + +#endif + + diff --git a/drivers/input/touchscreen/GT917D/FW_BIEL.txt b/drivers/input/touchscreen/GT917D/FW_BIEL.txt new file mode 100644 index 0000000000000..88bf7ac73e24a --- /dev/null +++ b/drivers/input/touchscreen/GT917D/FW_BIEL.txt @@ -0,0 +1,5633 @@ +0x00,0x01,0x60,0x00,0x39,0x31,0x37,0x44,0x00,0x00,0x00,0x00,0x50,0x03,0x80,0x00, +0x55,0x40,0xbd,0xda,0xfd,0x24,0x34,0xdf,0x44,0x40,0x44,0x02,0xbe,0x03,0x08,0xb4, +0x27,0x41,0x8c,0x90,0x4c,0xa4,0x22,0xb7,0xed,0x5e,0x58,0x34,0x17,0xbf,0x01,0x08, +0x84,0x00,0x72,0xfc,0x81,0xd9,0x39,0x25,0xc8,0xe2,0x39,0x87,0x0f,0xed,0x09,0x1d, +0xc9,0x1a,0xe9,0xd5,0x5f,0x2e,0x23,0xb6,0x6d,0x4b,0xa6,0xe6,0xa3,0x7e,0x3f,0x64, +0xfb,0x1b,0x67,0xa6,0xf2,0xb5,0xf4,0x02,0xa9,0x4b,0x2b,0x1f,0x7c,0xdb,0x58,0x96, +0x51,0xda,0x75,0x4a,0xb0,0xa0,0x5d,0x1b,0x2b,0x01,0x0c,0x9b,0x51,0x8b,0x3f,0xa3, +0x77,0x82,0xee,0xf4,0x31,0xb9,0xe5,0x03,0xe6,0x4c,0xea,0xc0,0x21,0x1b,0x7e,0xb3, +0xe8,0x08,0x32,0x7e,0x30,0x5a,0x20,0x67,0x60,0x57,0x5d,0xfe,0xd2,0xe7,0xd2,0xac, +0x2e,0x48,0x98,0x22,0x39,0xb8,0x96,0xde,0xc8,0x68,0x3a,0x8e,0xdf,0x4f,0x9a,0x18, +0x09,0x49,0xc2,0x8f,0xf8,0x26,0x3a,0x11,0xa8,0x2f,0x35,0x42,0x84,0x94,0x8c,0x7b, +0x2b,0x6f,0x43,0x51,0x03,0x2c,0xeb,0x21,0x17,0xc5,0x03,0xa9,0xd0,0x1c,0xce,0x8b, +0x89,0x0b,0xeb,0xdd,0x5b,0x24,0xaf,0xd3,0x8a,0xab,0x44,0x35,0xf7,0x2d,0x43,0x37, +0x76,0xf3,0x65,0xae,0xfa,0xd0,0xe8,0x4c,0xf4,0x93,0x6f,0xe7,0xe5,0x9c,0xcc,0xd2, +0x08,0xcd,0x9f,0xa2,0xfa,0xbe,0x23,0x1e,0xa0,0x42,0x23,0x58,0x68,0x7f,0x7c,0xec, +0x71,0x06,0xed,0xaf,0xee,0x92,0xd2,0x02,0xa2,0x0a,0xba,0x1e,0x3b,0x51,0x25,0xbb, +0x2c,0x4e,0xb0,0x33,0x7b,0x9e,0x5a,0x1f,0xef,0xe2,0x64,0x40,0x24,0xb2,0x04,0x80, +0x78,0xf8,0xbe,0x7b,0x36,0xc1,0x74,0x7c,0xad,0xdd,0x04,0xdb,0xa8,0x7f,0xde,0xb0, +0x26,0xe9,0xaf,0x3c,0xe9,0x02,0x6f,0x97,0x9e,0xdb,0xbf,0x56,0x91,0x60,0x4f,0x28, +0x82,0x11,0x94,0x81,0xc5,0xa9,0xce,0xa0,0x6e,0x5b,0xa7,0x8f,0x53,0x8e,0x02,0x1d, +0x24,0xe6,0x2c,0x39,0x2d,0x40,0xca,0x11,0x08,0x63,0x36,0xae,0x52,0xf6,0xbb,0xb2, +0xf4,0xcb,0xfb,0x4a,0xc3,0x02,0xc4,0x20,0x7a,0x69,0xff,0x0b,0x56,0xdf,0x76,0x4b, +0xd8,0x98,0xcf,0x27,0xb7,0xe8,0x5d,0xc6,0xc0,0x14,0x23,0x8a,0x5d,0xaa,0x85,0xc0, +0x2d,0x7a,0xfb,0xc3,0x20,0x3e,0x43,0xe7,0x73,0x99,0xad,0x65,0x0f,0x87,0x2e,0x2b, +0x23,0x77,0x28,0x2b,0x4a,0x61,0xa8,0x0f,0xfb,0x6a,0xe2,0x50,0x08,0xeb,0xc6,0x55, +0x4c,0x03,0x2d,0xf3,0xed,0x76,0x5c,0x35,0x9f,0xd5,0x05,0x52,0x5c,0xef,0x71,0x1a, +0xa1,0x11,0xfa,0x61,0x07,0x7b,0x9d,0xe7,0x2a,0x55,0x8b,0xc3,0xa1,0x76,0xf8,0xfb, +0x4f,0x04,0xf1,0xcb,0x1e,0x76,0xf3,0x8e,0xc9,0x7a,0x97,0xa0,0x0e,0x7a,0xd0,0xdb, +0xde,0xe3,0x8b,0x0e,0x45,0x28,0x09,0xdb,0xc8,0x4e,0xbd,0x42,0x01,0x74,0x86,0xc9, +0xa5,0x1f,0xb9,0xb6,0xa0,0xa3,0x40,0xee,0xfb,0x13,0x02,0xb6,0xeb,0x1f,0xa9,0x27, +0xca,0xcb,0xf4,0x82,0x84,0xb0,0xce,0x92,0xb7,0x52,0x3b,0x86,0xed,0x60,0x29,0xdc, +0x27,0x93,0x40,0x1e,0x19,0xf0,0x69,0x0b,0xfa,0x11,0xfe,0x6d,0x35,0x9e,0xb4,0xfd, +0x62,0x10,0xe0,0x33,0x5a,0xa3,0x6d,0xa3,0x77,0x50,0xba,0xbd,0xef,0xc2,0x20,0x02, +0x04,0xc0,0x7f,0xab,0x12,0x52,0x22,0x3a,0xd5,0xac,0x42,0xe0,0xf6,0xac,0x28,0x12, +0x05,0xc1,0xaa,0xeb,0x74,0x7a,0x32,0x12,0xd4,0xa5,0x4d,0x37,0x11,0xd5,0x21,0x1f, +0x84,0x82,0x58,0x41,0x60,0xee,0xe5,0x71,0x87,0x32,0xc1,0xf8,0x3b,0xa3,0x29,0x92, +0x85,0x83,0xa9,0x93,0xda,0x4e,0x31,0x23,0x26,0x09,0x19,0x39,0x59,0xee,0xcc,0xc8, +0xfd,0x74,0x4b,0xf7,0xb5,0x1b,0xd4,0x4e,0xad,0xa0,0x24,0x98,0xaf,0x87,0xc0,0x81, +0xf6,0x86,0xb6,0xb4,0x07,0x0e,0xcc,0x19,0xc9,0x84,0xd5,0xd3,0xce,0xe7,0x0f,0xa1, +0x33,0xc7,0xdb,0xff,0x65,0xe7,0x4c,0xe4,0x2d,0xc9,0x8e,0x1d,0xf8,0x79,0xd7,0x5a, +0x21,0x29,0x49,0x57,0x6a,0x56,0x00,0xdc,0xcf,0xe5,0x17,0x66,0x49,0xda,0x22,0x0a, +0x0c,0xc8,0xc2,0x4e,0xa2,0x23,0x12,0x2b,0x09,0x07,0x22,0xee,0x58,0x05,0x2a,0x1a, +0x0d,0xc9,0x42,0x21,0x9f,0x7d,0x3e,0x3e,0x0d,0xd9,0x06,0x1a,0xc5,0xad,0x23,0x8f, +0x8c,0x8a,0xa7,0xed,0x1b,0xff,0xdc,0x59,0x4c,0xba,0x23,0x80,0x2b,0xaa,0x66,0xdd, +0x8d,0x8b,0x58,0xef,0x8c,0xa4,0x7b,0x1b,0xcc,0xcf,0x1a,0x38,0x3c,0x8d,0x58,0x0d, +0xd4,0x33,0x1d,0x30,0x30,0x73,0x4c,0x6c,0x76,0x63,0x13,0x2e,0x12,0x71,0x3a,0x2d, +0x45,0xca,0x3e,0x04,0xd6,0xe9,0x04,0x7d,0xfe,0xc2,0x87,0x63,0xcc,0xe0,0x59,0xd1, +0x7d,0x53,0xcc,0xea,0x47,0x32,0xd3,0x18,0x42,0x9d,0x16,0x95,0x67,0xb8,0x05,0x29, +0x02,0x79,0x3f,0x0c,0x1b,0xd9,0x45,0x99,0x63,0xc0,0xc1,0x34,0x68,0x62,0x1e,0x60, +0x88,0x6e,0x64,0x87,0xaa,0x45,0x3c,0x08,0x85,0xb6,0x24,0xd4,0xa5,0xef,0x2c,0x6f, +0x25,0x1c,0x73,0x9e,0xb2,0xb6,0x88,0x58,0x84,0xb7,0x2b,0x49,0x80,0x92,0x5e,0x5d, +0x13,0x89,0xf0,0x03,0xbc,0xc4,0x81,0x4d,0x05,0xb4,0xeb,0x45,0xe4,0x0f,0xd5,0x9b, +0x7a,0x0c,0x05,0x35,0x6a,0xec,0x89,0xf9,0x2c,0x97,0x46,0xcd,0xdb,0x6c,0x1d,0xe5, +0x87,0x85,0x99,0xec,0xb2,0xf5,0x46,0xda,0x95,0xe9,0x11,0x1d,0x87,0xa2,0x52,0xd4, +0x6d,0xd1,0xec,0x1f,0x81,0xb5,0x07,0xfc,0xc4,0x68,0x7b,0x25,0xd4,0xab,0x1d,0x90, +0x05,0x89,0x94,0xc7,0x3f,0x81,0xd6,0x01,0x06,0x47,0x8e,0x8d,0x6c,0xe9,0x35,0xd7, +0xed,0xf3,0xfa,0xad,0x2b,0xb8,0x4f,0xcb,0x14,0x8a,0xc7,0xac,0x48,0x7a,0x78,0xa8, +0xf9,0x33,0x0e,0x3d,0xf4,0xcb,0x1f,0xe4,0xa5,0xbc,0x0d,0x35,0x8d,0xee,0x1e,0x6b, +0x00,0xe9,0x75,0x9c,0x42,0x39,0x10,0xbc,0xfc,0x85,0xd9,0x40,0x21,0x57,0xa2,0xd0, +0xc7,0x0a,0x07,0x9c,0x8a,0xde,0x9e,0x49,0x40,0xc6,0xbf,0xbe,0x0f,0x27,0x71,0x90, +0xad,0x30,0x47,0x3d,0x19,0x3c,0x11,0xbc,0x78,0x25,0xc7,0xd4,0x1c,0x27,0x5e,0x62, +0x8d,0xdd,0xc4,0x91,0xeb,0x00,0xd5,0x08,0x8e,0x60,0xdd,0x00,0x9f,0xe0,0xce,0xf3, +0xc4,0xd9,0x93,0x36,0x2d,0x40,0x4c,0xc3,0xbe,0xce,0x80,0x1c,0xca,0x2b,0x92,0xca, +0xac,0x33,0x9c,0xbc,0x1d,0xc2,0x46,0x09,0x72,0xd1,0x8a,0xcb,0x43,0x08,0x51,0xdc, +0x99,0x30,0x78,0x20,0x4a,0xdc,0x69,0x19,0x14,0xe2,0x77,0x1d,0x46,0x49,0x88,0xe2, +0xf1,0x89,0x33,0xbc,0xec,0x93,0xaf,0xc6,0x64,0x55,0x15,0x67,0x43,0x4c,0x69,0x41, +0xa2,0x40,0x88,0x90,0x15,0x30,0x70,0x37,0xc2,0x05,0x0e,0xd9,0xb8,0x5b,0x21,0x4b, +0xe1,0x06,0xae,0x6a,0x49,0xb9,0xb1,0x32,0x4c,0x4d,0x33,0x66,0x60,0x20,0xb4,0x8e, +0x6a,0x0c,0xae,0xbd,0xb3,0x22,0xd9,0x21,0x57,0x01,0xdb,0xce,0x38,0x50,0x08,0x44, +0x8b,0xca,0x88,0x40,0xbb,0x4a,0x2e,0x20,0xeb,0xf5,0x6e,0xe1,0xa5,0xc9,0xa2,0x41, +0x69,0xa8,0x4c,0x27,0x65,0xaa,0x27,0x88,0x43,0xe4,0x0e,0x0a,0x21,0xca,0x81,0x74, +0x16,0x2a,0xff,0xf8,0x71,0x2d,0x57,0xd0,0x2b,0x1c,0x42,0xe0,0xaa,0xc9,0xde,0x77, +0x6e,0x65,0xd1,0xcc,0x7a,0xd4,0x61,0x8e,0x32,0x05,0x0b,0xb2,0x3a,0x84,0xbb,0x96, +0x0d,0x07,0xc7,0xe4,0x67,0xe5,0x10,0xa6,0x4e,0xc8,0x3e,0xb7,0x5b,0xca,0x33,0x82, +0x40,0x06,0xce,0x98,0x75,0xff,0x20,0xdd,0xa8,0x2f,0xe5,0x4f,0x63,0x05,0x3e,0x92, +0x8d,0x05,0x2f,0x9f,0x9c,0x20,0xf2,0xad,0x88,0x1c,0xad,0xe4,0xb8,0xb5,0x9b,0x73, +0xa8,0xfb,0xd4,0x09,0x9f,0x0b,0xaf,0x6a,0x45,0xe7,0xfc,0x7d,0xdd,0x47,0x3c,0xed, +0xe3,0x0f,0xd4,0x2e,0xe5,0x81,0xc4,0x11,0xa3,0x7f,0xb4,0xc8,0xb3,0x4f,0x1a,0x66, +0x77,0x16,0x31,0x7b,0xba,0x41,0x71,0xb8,0x57,0x0f,0x0b,0xf8,0x37,0x8c,0x87,0xba, +0xe8,0xa3,0x10,0xc9,0xf6,0xff,0x4b,0xe9,0xcc,0xaf,0x13,0x58,0x97,0x66,0xcf,0x07, +0x2f,0xe2,0xad,0xe8,0x72,0xec,0xcd,0x77,0x22,0xfc,0x1b,0x48,0xa9,0x67,0x6d,0x63, +0x04,0xdd,0x27,0x25,0xec,0x73,0x15,0x50,0x64,0x36,0x14,0xe7,0xb7,0x32,0x0d,0xe6, +0xd6,0x01,0xd5,0x90,0xe4,0x74,0xf8,0x56,0x02,0xd1,0xe2,0x08,0xf8,0xbf,0x7e,0x89, +0x45,0xad,0xbb,0x25,0x44,0xc3,0xed,0xa9,0x83,0x32,0x03,0x57,0x9a,0xe1,0xb7,0x6e, +0x85,0x9e,0x33,0x10,0x64,0x51,0xc1,0x83,0x89,0x17,0x9b,0x04,0x18,0x29,0x0c,0x50, +0x24,0xf5,0x57,0x37,0x4a,0x51,0x94,0xd5,0x81,0xf7,0x14,0x23,0x9b,0x97,0x9f,0x97, +0xca,0xa6,0xc0,0xe5,0x92,0xca,0x5c,0x83,0x19,0xf4,0x1c,0xc1,0x3e,0x7d,0x3f,0x70, +0xd0,0xb9,0xfd,0x36,0xc6,0x9b,0x06,0x12,0x94,0x8d,0xb3,0x55,0x1b,0x15,0xaa,0x22, +0xaa,0xba,0xf3,0x95,0xb5,0xd6,0x94,0x02,0xea,0x8a,0x5f,0x71,0x9f,0x7d,0xe2,0x72, +0x4b,0x38,0xef,0x66,0xd3,0xbb,0x68,0xae,0x81,0x57,0x84,0xad,0x87,0xf5,0xea,0x66, +0x4a,0x79,0xd8,0xef,0x53,0x55,0x8e,0xcb,0x3e,0x52,0xcb,0xdc,0x33,0x17,0xe3,0x72, +0xcb,0x5a,0x24,0x28,0x59,0x95,0x41,0xae,0x03,0x3e,0x57,0x98,0x81,0xd7,0xeb,0x66, +0x8d,0x86,0xed,0x95,0xb8,0x7b,0x9f,0xda,0x26,0x19,0xfd,0xbc,0xfa,0x3b,0x15,0x56, +0xc1,0x14,0x55,0x32,0x96,0x31,0x00,0x50,0x81,0x54,0x16,0xf9,0xe9,0xdc,0x14,0xdc, +0x43,0xae,0xa8,0xe0,0xd2,0x8c,0x16,0x9a,0x0a,0x7d,0x84,0xfd,0xd8,0x88,0x7b,0xf0, +0xe2,0xbd,0x38,0x0a,0x53,0x4d,0x6b,0xd0,0xec,0xbf,0x81,0xce,0xe1,0x3f,0x31,0x60, +0x4a,0xbc,0xd5,0xdf,0x08,0x92,0x07,0xfd,0x42,0x31,0x88,0xc3,0x89,0x3d,0x1b,0x45, +0x0a,0x1f,0x8c,0xff,0x04,0xe2,0x48,0x71,0xc8,0xdc,0x5a,0x55,0x2e,0x11,0xec,0xec, +0xf8,0xe3,0x88,0x0a,0x13,0x40,0x8c,0x61,0xc9,0x6d,0xff,0x27,0x3f,0xa3,0x1e,0x86, +0x7f,0x5f,0x37,0x90,0xef,0xc2,0x1f,0x25,0x55,0xcd,0xcf,0x9a,0x21,0xe6,0xd6,0xd9, +0x2e,0xc2,0x4a,0xee,0xd9,0xe1,0x41,0x60,0x49,0xdf,0x2f,0x04,0xd3,0x02,0xa4,0x1c, +0x08,0x9a,0xfa,0x44,0xa5,0x79,0x67,0x91,0x4f,0x59,0xe0,0xe2,0x3a,0x31,0x38,0xcd, +0xec,0x86,0x68,0x35,0x98,0x88,0x22,0x8c,0x2f,0x76,0x00,0x7e,0xbe,0x06,0x18,0xbc, +0x0b,0x2b,0xfb,0x45,0x04,0xae,0x51,0x4f,0x8e,0x65,0xb9,0x72,0x3f,0x25,0x57,0x6e, +0x51,0x28,0xc6,0xd3,0xfb,0xad,0x07,0xca,0xa4,0x38,0x01,0x9f,0xec,0xaa,0x1b,0x6a, +0x50,0x75,0xa6,0x4d,0x44,0xea,0x1c,0x2c,0xdd,0x89,0x29,0xaa,0x30,0x74,0xfe,0xe4, +0xf4,0xea,0x6a,0x1f,0x94,0x12,0x00,0xbd,0xea,0xd9,0xa8,0xc0,0xa2,0x44,0x8f,0xae, +0x73,0x57,0x35,0x98,0xe7,0x0a,0x5b,0x2c,0x4f,0x8e,0xfb,0xbb,0x35,0xb0,0x54,0x61, +0xa3,0x14,0xaa,0x9b,0x99,0xba,0x61,0x3a,0x43,0x84,0xea,0x78,0x03,0xe3,0xf5,0xce, +0x62,0xf7,0xda,0x3e,0x16,0xa7,0x24,0xd2,0xa5,0x5f,0xf0,0x88,0x58,0x0d,0x54,0x93, +0x4d,0x32,0x3d,0x6f,0xbe,0x52,0x46,0xbd,0xa6,0xfe,0x4d,0xc7,0xab,0x7e,0x5d,0xe3, +0xaf,0x5c,0x63,0x2c,0x11,0x03,0x4d,0xc3,0xed,0x8e,0xbb,0xeb,0x92,0xf0,0x55,0xf2, +0x02,0x39,0xd5,0xe3,0x99,0x4e,0x23,0x7f,0x66,0xa1,0x3b,0xa6,0x0d,0xeb,0xde,0x8a, +0xdd,0x5f,0x80,0x4d,0x57,0x4f,0xfb,0x2b,0xb0,0x43,0x98,0x70,0x9d,0x43,0x93,0x64, +0x01,0x0c,0x92,0x27,0xd7,0xa1,0xaa,0x41,0x53,0xb4,0x82,0x0e,0xb7,0xf1,0x24,0xfd, +0x43,0x82,0xdb,0x3b,0x5f,0x41,0x92,0x1a,0xe2,0x33,0xd3,0x6b,0x1f,0x01,0x55,0xb4, +0x5c,0x9c,0xad,0xd7,0xb1,0x9f,0x05,0x40,0xdb,0x7e,0xc3,0x0b,0x7c,0x3d,0x37,0x31, +0x54,0xd6,0x35,0xb6,0xb6,0xa2,0xb4,0xd7,0x0a,0x96,0x7b,0x87,0x52,0x01,0x52,0x1b, +0x65,0x6a,0x39,0x49,0xc2,0x3c,0xbc,0xc7,0x93,0xdf,0x2c,0xca,0x71,0xdd,0xf3,0x99, +0xa5,0x04,0xed,0xbe,0x39,0x1b,0xe3,0x5b,0xe7,0x06,0x6b,0x95,0x01,0x7d,0x53,0x7a, +0x2a,0x61,0xcd,0x3d,0x5e,0xe4,0xfb,0x80,0x81,0x98,0x45,0x88,0x54,0x7c,0x92,0xf4, +0x8f,0xfd,0x4c,0x0c,0x74,0x53,0xff,0x45,0x5b,0xd8,0xb0,0x1f,0x7a,0x19,0xd6,0x92, +0xd4,0xd6,0x08,0xbd,0x81,0x9c,0x41,0x42,0x6d,0x9b,0x61,0xcd,0x4f,0xf0,0x98,0x69, +0x88,0x07,0xb1,0xed,0x93,0x9f,0x84,0x13,0x10,0x69,0x81,0x51,0xfa,0x1b,0x2e,0xe5, +0x0a,0x8b,0x04,0xbc,0x1a,0x97,0xbf,0x93,0x31,0xe8,0xbc,0x78,0x3f,0xdb,0x2e,0x4e, +0x28,0x7d,0xfc,0xcc,0xac,0xb4,0x77,0x99,0x00,0x93,0xd6,0xd2,0x78,0xd4,0x08,0x16, +0xc4,0xb5,0x2a,0x24,0xc2,0xdf,0xa8,0x69,0x0d,0x70,0x79,0xc3,0x80,0x2d,0xc6,0x8c, +0x47,0x2d,0x2c,0xb1,0x1a,0x53,0x4b,0xd0,0x61,0x73,0x4c,0x9d,0x5d,0x75,0x51,0x63, +0x6d,0x9f,0x90,0xac,0xc7,0xfa,0xab,0x7f,0x83,0x37,0x0c,0xf3,0x4e,0xbe,0x3a,0xf3, +0x30,0xbf,0x91,0x08,0x16,0x11,0x2a,0xc8,0xc7,0x0f,0x6f,0x5a,0x82,0xbf,0xcc,0x63, +0x20,0x63,0x4e,0xc3,0x91,0x20,0x41,0xf3,0xe4,0xbe,0x74,0x4b,0x8b,0xea,0x3f,0xdc, +0x24,0xef,0x41,0xc5,0xd8,0x60,0x50,0xc7,0x40,0x60,0xa6,0x0c,0xa3,0x62,0x77,0x38, +0x68,0x2a,0xd0,0x67,0xf2,0x63,0xf5,0xaa,0xc0,0xe3,0xb9,0xdf,0xa4,0x75,0xc0,0x86, +0x28,0x07,0x99,0x47,0xb3,0xdb,0x09,0xb6,0xe5,0x05,0x32,0x17,0x0d,0x2b,0x10,0xf4, +0x30,0x6f,0xc9,0x2b,0xb4,0x64,0xa7,0x0e,0x6d,0x9a,0x48,0x0f,0x9b,0x3f,0x15,0x89, +0x6b,0x6c,0x75,0x27,0x4f,0x69,0xaa,0x1e,0xaa,0x4b,0xd0,0x16,0xf3,0x29,0xf1,0xb1, +0xfb,0x45,0x74,0xaa,0xe4,0x27,0x03,0x11,0xbf,0xe8,0xa1,0x47,0x2c,0x0b,0x1a,0x19, +0x63,0x19,0x7a,0x0e,0x46,0x6a,0xad,0xb3,0xef,0x4c,0x9a,0x20,0x6b,0xc6,0x1d,0x1d, +0x2b,0x58,0x32,0x2d,0x29,0x66,0xe2,0xd0,0xc2,0x04,0x22,0x84,0xd9,0x7b,0x07,0xf0, +0x8c,0x09,0x45,0xda,0xab,0xa7,0x11,0x5b,0xfb,0x64,0x2b,0x14,0x7f,0x78,0x08,0x5e, +0xba,0x17,0x33,0xda,0x5b,0x0b,0xf7,0xab,0xdd,0x43,0x37,0x4f,0x13,0x5a,0x84,0x1c, +0x0b,0x4c,0x7a,0xb6,0x0a,0x61,0xf2,0x98,0xe2,0x9f,0xec,0xc1,0x84,0x93,0x8a,0xcd, +0x65,0x63,0x31,0x7b,0xba,0x43,0xee,0x1a,0xf4,0xe0,0x6c,0x1c,0xf8,0x90,0x63,0xf0, +0xb9,0x80,0xbc,0x49,0x92,0x02,0x2d,0x6e,0x6b,0x11,0xed,0xc1,0xfe,0x68,0xf4,0xca, +0xaa,0xa2,0xad,0x1c,0x72,0x27,0x8e,0x48,0x6a,0xb0,0x6f,0x9f,0xa8,0x8a,0x14,0xbd, +0x67,0x0b,0xdb,0x6c,0xec,0xfd,0x10,0x84,0x40,0x21,0xc2,0x4c,0xac,0xbd,0x74,0x81, +0xc1,0x90,0x73,0x6f,0xbe,0x9c,0x0c,0x98,0x0c,0x13,0x23,0x2f,0x12,0x75,0x8b,0xe7, +0x5f,0xb9,0x41,0x00,0xf3,0xc1,0x97,0x81,0xc2,0x32,0x39,0x20,0x0b,0x1e,0x0b,0x6f, +0x92,0x99,0x45,0x0e,0xd2,0x37,0x17,0x5a,0x08,0x39,0xe4,0xc9,0x63,0x79,0x84,0x55, +0x4c,0x78,0x9d,0xde,0x97,0xc2,0x32,0x02,0x46,0x59,0xc4,0xd6,0xba,0x7b,0x76,0x43, +0x7c,0x57,0x5b,0x32,0x21,0x78,0x6f,0xdc,0x2b,0x04,0x96,0xe9,0x57,0x88,0x7f,0x52, +0x83,0xa9,0x55,0xbb,0x4d,0x7b,0xae,0xc6,0x43,0xe9,0x42,0x16,0xd0,0x4b,0x8b,0x3d, +0xa0,0xd7,0x9f,0xd5,0x14,0x76,0x07,0xb1,0x93,0xf8,0xca,0x06,0x77,0xfa,0xbe,0x72, +0xa7,0xce,0xff,0xfd,0x33,0x2e,0x4e,0xe9,0x5b,0xf3,0x12,0x5d,0x0d,0x3b,0xb6,0x5f, +0xeb,0x39,0x69,0x63,0xd8,0xbf,0xe1,0xc6,0x4b,0xb4,0x0b,0xb8,0x70,0x1d,0x0f,0x91, +0x9b,0x54,0xcf,0x90,0x35,0xb7,0xaf,0x57,0xf8,0x17,0xc7,0x85,0xb0,0x7b,0x47,0xbd, +0xca,0x3b,0x8f,0x19,0xff,0x64,0x99,0xfe,0x08,0xad,0x33,0xce,0x8c,0xdd,0x86,0x5d, +0xe6,0xb7,0x39,0x30,0x3a,0x7e,0xf6,0x9a,0x08,0x78,0x05,0x1f,0xf6,0x3d,0x16,0xc8, +0x40,0xe4,0xd9,0x2f,0x43,0xb0,0xe5,0x07,0x9f,0x0c,0x21,0x14,0xe1,0x30,0xdc,0xc5, +0x43,0xc7,0xc3,0x8e,0x4f,0x9f,0x29,0xee,0x13,0x51,0xb7,0xef,0xdd,0x73,0xcf,0xfd, +0x26,0xb2,0x99,0xe5,0x50,0xae,0x59,0xd5,0x88,0x57,0x24,0xba,0x25,0x3e,0x98,0x91, +0x34,0xcf,0xa8,0x86,0xf5,0xef,0x32,0xe4,0x38,0x4d,0xcf,0x54,0x96,0xe0,0xd0,0xfa, +0xc8,0xcc,0xbd,0x92,0x16,0x61,0x61,0xf1,0xe0,0x60,0x3f,0x71,0x66,0x4f,0x60,0x65, +0x46,0x82,0xf1,0x2f,0x88,0xe0,0xc9,0x83,0xb8,0x90,0x71,0xb2,0xe3,0xe8,0x28,0xb3, +0x68,0x81,0xf7,0x6a,0xd5,0xef,0x28,0xd5,0x2c,0xa9,0x01,0xa4,0xed,0xac,0xaf,0xc6, +0x48,0x7f,0xfa,0x44,0xa5,0x79,0x4e,0xce,0x68,0x1b,0xaf,0x06,0x3d,0x27,0xce,0xa3, +0x72,0xc6,0x44,0x25,0x10,0x03,0xd8,0x82,0xef,0x16,0xe3,0x9e,0x45,0xa8,0x69,0x4b, +0x80,0x64,0xfb,0x45,0x04,0xe7,0x2b,0x03,0xba,0x69,0x71,0x43,0x37,0x49,0x49,0x7b, +0x08,0x7a,0xf1,0x24,0xc8,0x2e,0x07,0x74,0x66,0x86,0x99,0x69,0xac,0xe8,0x72,0x33, +0x08,0xc6,0x76,0x2a,0x3c,0xb9,0x2a,0x2e,0xad,0x87,0xf3,0x48,0x9e,0xe8,0x84,0xea, +0x05,0xc6,0x3f,0x1a,0x35,0x27,0x58,0x32,0x4c,0x09,0x84,0x42,0x7e,0xfb,0x30,0xcd, +0xf4,0x91,0x23,0x2e,0x5f,0xa9,0x6a,0xe8,0x69,0xa4,0x4b,0xde,0xa9,0xba,0x2a,0xeb, +0xfd,0xc4,0x6b,0x8a,0xd8,0xa1,0x01,0xdd,0xa6,0x32,0xb7,0xf3,0xdb,0x09,0x04,0x63, +0x6d,0x88,0xc2,0xa4,0xf7,0x86,0xde,0x82,0x9a,0x81,0x92,0x70,0x74,0xe1,0x6c,0xde, +0x41,0x69,0xb3,0xdd,0xba,0x72,0x60,0x78,0xa4,0xc2,0x6a,0x1c,0xe4,0x61,0x1a,0x37, +0x1c,0x86,0xf9,0x4d,0x0c,0xef,0x15,0xaf,0x27,0xe4,0x93,0x71,0x4a,0xe1,0x4b,0xca, +0xbc,0x01,0xea,0x98,0x3a,0x50,0x3a,0x1d,0xae,0xcb,0xb1,0x62,0xb4,0xe0,0x04,0x16, +0xd5,0x3b,0xac,0x83,0x14,0x61,0xcb,0xd0,0xb2,0x0f,0xa5,0x55,0x01,0x9e,0x2a,0x6c, +0xd8,0xff,0xca,0xbe,0xde,0x68,0x02,0x73,0x63,0x33,0x82,0x6b,0x73,0x13,0x5d,0x92, +0x44,0x13,0xe8,0xc0,0x5d,0x6b,0x99,0xdc,0x2e,0x98,0x8b,0x63,0x3e,0xfb,0xce,0xd3, +0xbf,0x88,0xf5,0x93,0x32,0x90,0xe2,0x73,0xa5,0x06,0xb2,0x77,0xbd,0xb1,0xac,0x51, +0x07,0x39,0x08,0xb5,0x4e,0x32,0xe7,0x11,0xe2,0x59,0xcc,0x1a,0x76,0xe8,0x24,0x43, +0x21,0x57,0xec,0xf2,0xb5,0x99,0xec,0x0c,0xcb,0xd8,0xc4,0x09,0xd2,0x03,0xaa,0x47, +0xe8,0x2e,0x1a,0xb4,0xc6,0x30,0x27,0xe0,0x0d,0xb2,0xca,0xad,0xe6,0xb7,0x95,0x13, +0xa5,0x8c,0xe2,0xb5,0x40,0xd2,0xd1,0x60,0x99,0x28,0x02,0x7f,0x52,0x71,0xce,0xec, +0x4d,0xb8,0xf6,0x2f,0x15,0xfa,0x7a,0x95,0x6b,0xc3,0x74,0x48,0x7f,0xc8,0xd6,0x12, +0x88,0x38,0x16,0x64,0x2d,0xf4,0x76,0x3e,0x98,0x96,0x12,0x2d,0x4d,0x56,0x3f,0x87, +0xcf,0xda,0x61,0x3e,0x8f,0x34,0x5e,0x2f,0xaa,0x65,0x89,0xd3,0xdd,0x5a,0x3e,0x7d, +0x2d,0xa9,0xd0,0xd8,0x40,0x0d,0x3e,0xc4,0x4a,0xd8,0x24,0xcc,0x88,0xf0,0x8c,0xac, +0x46,0x8d,0xde,0x31,0x1a,0xa7,0xcd,0x79,0x18,0x03,0xf6,0x10,0xf1,0x41,0x68,0x9a, +0x3f,0x36,0xd6,0x81,0x98,0xad,0x64,0xf8,0xdc,0x80,0x9e,0xfc,0x02,0xf0,0x9f,0xad, +0x23,0x18,0xec,0xad,0x41,0xdb,0x9b,0x84,0x30,0x03,0x10,0x95,0x28,0xbf,0xf0,0xde, +0x8b,0x12,0x50,0x39,0x9b,0xa4,0x65,0xf9,0x7d,0x9e,0x00,0x03,0xff,0x64,0x00,0xf9, +0x14,0x42,0xc3,0x86,0x9d,0x6a,0x2a,0xc8,0xda,0x0f,0xc9,0x75,0x56,0x10,0x36,0x38, +0x69,0x0c,0x44,0x72,0x32,0x03,0xac,0xd2,0x65,0x47,0x23,0xd6,0xfd,0x9c,0x05,0x42, +0x0f,0x43,0xb9,0xe5,0xd6,0x39,0x71,0x62,0xb8,0x4d,0xd1,0xa1,0x80,0xa9,0x1b,0xba, +0x6a,0x47,0xd0,0x30,0x34,0x28,0x35,0x7a,0x60,0xc3,0xe1,0xdd,0x98,0x2e,0x43,0x48, +0xa3,0x9b,0xa0,0x03,0x15,0x2b,0x68,0x9f,0xcf,0xe9,0xd6,0x22,0x38,0x9f,0x4b,0x99, +0x05,0xbf,0x64,0x90,0xb2,0x2c,0x3a,0x70,0x42,0x57,0x60,0xa4,0x0f,0x9a,0xf5,0x23, +0x79,0x44,0x7e,0xa5,0x88,0x20,0xc2,0xfe,0x2b,0xf7,0x2e,0x41,0xe1,0xa1,0x02,0x4f, +0xbf,0xf3,0x0d,0xd7,0x16,0x77,0xb1,0xec,0xc5,0xd7,0x02,0x75,0xe0,0x13,0x38,0xb8, +0x8d,0xa7,0x06,0x08,0x4b,0x5c,0x6a,0x4a,0xc5,0xce,0x6b,0x24,0xfd,0x17,0x1c,0x7a, +0x69,0xe7,0x32,0x8c,0xbe,0x2d,0x24,0x61,0xee,0x59,0xc8,0xc3,0xae,0x07,0xa7,0x2d, +0x61,0x1b,0x6b,0x90,0xab,0x4b,0x93,0x0d,0xfb,0x12,0x81,0x4b,0x27,0x37,0x75,0x1f, +0x68,0x88,0x8d,0xf5,0xb5,0xa0,0x25,0x65,0x6e,0x0a,0xfb,0x7e,0x88,0x66,0x51,0xcc, +0x5a,0xce,0xfa,0x5c,0xb9,0x21,0x1f,0xec,0x1a,0x5c,0x6a,0x96,0x4a,0x21,0x35,0xdc, +0x17,0x54,0xc9,0x2e,0x99,0x41,0x22,0xfc,0x57,0x14,0x61,0xd9,0x91,0x60,0x7b,0xb3, +0x26,0x03,0x2f,0xdf,0xd2,0x26,0xe8,0x8b,0x66,0xb3,0xac,0xe9,0xd2,0x42,0x8b,0x80, +0xd8,0xdb,0x03,0xbf,0x1b,0x0f,0x9b,0x61,0x8d,0x92,0xa4,0x87,0xe8,0xef,0xd5,0x31, +0x83,0x51,0x63,0xc4,0x34,0x1c,0xeb,0xd2,0x4e,0x8f,0xec,0x83,0x8d,0x7f,0x6e,0x0c, +0xa3,0x3d,0xd4,0x90,0xb8,0xb4,0xa8,0xcf,0xc2,0x10,0x9d,0xd2,0xce,0xf0,0x65,0xc2, +0xf1,0x1f,0xb4,0x01,0xe0,0xfc,0x85,0x5e,0x15,0x5d,0xcc,0xed,0x55,0x2d,0x80,0xf3, +0x63,0x13,0xb7,0x6e,0x4d,0x22,0x22,0x4d,0xe1,0xf2,0x23,0x4a,0x44,0xf0,0x55,0x22, +0xcb,0xec,0xd4,0x59,0x66,0x99,0xab,0x08,0xe6,0x99,0x2b,0x23,0xec,0xa9,0x44,0xe1, +0x17,0x57,0x6c,0xa2,0x10,0x25,0xe7,0x12,0xe4,0xa7,0x83,0x92,0x80,0x65,0x37,0xc5, +0xbe,0x9d,0x09,0x25,0xea,0x2d,0xae,0x9c,0xc3,0xd6,0x34,0x25,0xb4,0x6d,0xcc,0xb2, +0x02,0x9f,0x94,0xf0,0x16,0x3e,0x04,0x34,0x46,0xa8,0x65,0x0e,0x0e,0xc1,0x96,0x0a, +0xa8,0xa0,0x46,0xb5,0x08,0x3e,0xc3,0x57,0x9d,0xfb,0x69,0x52,0xfa,0x54,0x9e,0x1a, +0xa0,0x61,0x3a,0xe3,0x9a,0x82,0x08,0x90,0xda,0x14,0xa6,0x47,0xf6,0x8f,0x3f,0x59, +0xa4,0xe5,0xab,0xc0,0x4d,0x35,0xc6,0x8d,0x8b,0xf0,0x98,0xcf,0x0b,0x1f,0x37,0x67, +0x05,0x16,0x8b,0xa2,0x89,0x79,0x8f,0x46,0x1c,0x14,0xa4,0x23,0xf8,0x89,0x66,0x2a, +0x62,0x4d,0x42,0x48,0x6d,0xdf,0x4c,0xe9,0x4b,0x8c,0xed,0x9c,0xfa,0x63,0xcf,0x9f, +0xd6,0x12,0x33,0x30,0x3b,0x90,0x46,0xc9,0x82,0xd7,0xd6,0x7d,0x59,0xde,0x27,0x8a, +0xb7,0x5c,0x57,0x25,0x58,0x73,0x37,0xae,0xed,0x53,0x6c,0x9d,0x7a,0x68,0x2f,0x9a, +0xf2,0x5d,0x40,0x3d,0xf7,0x24,0x07,0xe9,0x02,0x6e,0x5c,0x15,0x49,0x32,0x88,0xf1, +0x88,0xc1,0x24,0xe0,0x7f,0xf1,0x4e,0x25,0xe5,0x6f,0x57,0xa4,0xdd,0x98,0x28,0x2c, +0x33,0x74,0x96,0x4b,0x74,0x81,0x6a,0x16,0xd8,0x3c,0x78,0x3b,0x60,0x5d,0x1f,0xcf, +0x7f,0x19,0x26,0x75,0x7f,0x93,0xe5,0x04,0x65,0x6d,0x89,0xb9,0xd5,0x70,0xfc,0x17, +0x8d,0xed,0xf1,0x13,0x1c,0xb6,0x94,0x7d,0x30,0x9f,0x04,0x6c,0x04,0xbe,0x77,0x5d, +0x72,0x31,0xda,0xc4,0x93,0xf4,0x08,0x45,0xbb,0xcb,0x30,0x76,0x0c,0xff,0x7b,0x6c, +0x3b,0xc7,0xd0,0x27,0x27,0xac,0x21,0x74,0xa2,0x87,0x40,0x8d,0xd8,0x13,0xf2,0x79, +0xfe,0x73,0x99,0xc5,0x1b,0xcc,0x77,0x4b,0x6e,0xf5,0xd9,0x01,0x25,0xf6,0xf6,0x76, +0x7a,0x8e,0xef,0x24,0xa7,0xa8,0xf8,0xb8,0x3a,0xc8,0xc2,0xe9,0xd4,0x07,0xd9,0x75, +0x64,0x85,0x9c,0xcb,0x3f,0xe8,0x08,0xc1,0xff,0x89,0x99,0xaa,0x54,0xc4,0x0c,0xd6, +0xae,0x0c,0xbb,0xf6,0x8f,0xe4,0x95,0xd8,0xe1,0x34,0x07,0xa1,0xa2,0xb4,0xdc,0x75, +0xa8,0x37,0x8f,0x25,0x7d,0x05,0x8b,0xd4,0xdc,0x87,0x73,0x37,0xbb,0x86,0x3d,0xb6, +0x72,0x26,0x54,0x6c,0xad,0xc7,0x43,0x1f,0xad,0x4b,0x58,0xbd,0x54,0x93,0xbc,0xce, +0x5e,0x42,0x0a,0xd3,0xff,0xaa,0x4c,0x43,0x0f,0xc8,0x5e,0x15,0xc0,0x71,0x30,0x1a, +0x67,0xdc,0x2d,0x5b,0xf6,0xbc,0xfe,0x3f,0x7f,0xcf,0x01,0x5a,0x6c,0x86,0x7b,0x37, +0xc6,0xbf,0xc7,0x13,0x3d,0xad,0x0d,0x43,0x33,0xc7,0x12,0x2f,0xd2,0x15,0xab,0x57, +0x26,0x22,0x93,0xff,0x99,0x2d,0x1b,0x38,0xda,0xc2,0x43,0x81,0xcf,0xa2,0xdb,0xa6, +0xdb,0x9d,0xb3,0xae,0xb6,0x9c,0x35,0xdd,0xc3,0x91,0x74,0xbe,0x35,0xfa,0x80,0x0d, +0xd4,0x17,0x13,0x74,0xc9,0xa0,0x9c,0x41,0xe9,0x4c,0x43,0xd8,0xa7,0x2e,0x5e,0xa4, +0x05,0x2d,0xaa,0xf9,0x17,0xd7,0x4b,0xa5,0x05,0x51,0x74,0xe0,0x49,0x44,0x2d,0xb7, +0x6f,0xf0,0x6d,0x07,0x41,0xf1,0x45,0x97,0x67,0xf7,0xe4,0xe6,0xf3,0x83,0xe5,0x85, +0xdb,0x9b,0x6b,0xa0,0x81,0xa4,0x6c,0x7b,0x6b,0xc5,0xf6,0x17,0xd5,0xe4,0xed,0x19, +0xda,0x9a,0xb5,0x3e,0xab,0xf8,0x44,0x0c,0xa6,0xb7,0x84,0xf4,0x73,0xb9,0xa5,0xdb, +0x61,0xd4,0x5d,0x28,0xb0,0xce,0x7d,0x61,0x66,0x7d,0xc7,0x65,0x77,0xa6,0x6b,0xff, +0xef,0xc6,0x96,0xdf,0x12,0x08,0xb9,0x23,0xeb,0xd4,0xab,0x1f,0x19,0xba,0x18,0x2e, +0x4d,0x9c,0x23,0xe2,0xb1,0x3e,0xbd,0xc8,0x4d,0x98,0xf6,0xf5,0xc1,0x44,0x96,0x60, +0x3d,0xd4,0xe6,0xd2,0xb0,0xfb,0x00,0x7f,0x4e,0xf8,0xba,0x79,0x88,0xf6,0x5e,0xaf, +0x9f,0x82,0xe2,0xf1,0x7e,0xba,0x0b,0x12,0x69,0x28,0x9c,0xc1,0x2d,0xb8,0x50,0x9f, +0xa5,0xf5,0xac,0xcf,0xbe,0x0b,0x66,0xbd,0x08,0xd0,0x0b,0xc0,0x5e,0xb9,0x06,0xc8, +0x61,0x91,0x4a,0x4a,0x23,0xb8,0x4e,0x6e,0x61,0xcd,0xf4,0x1f,0xdd,0xec,0x89,0xa9, +0x13,0x1b,0xd5,0x50,0x3c,0xed,0x24,0xfb,0xcc,0x91,0xbe,0xef,0x79,0xcf,0x98,0x8c, +0x47,0x0f,0xef,0xc2,0x47,0xc8,0x0f,0x69,0x63,0x94,0xc5,0x10,0xda,0xfd,0x6f,0x1b, +0xf7,0xfa,0xb6,0x64,0x1a,0xb4,0xb8,0xf9,0xa7,0x52,0xd4,0xb9,0xfd,0xbe,0x50,0x29, +0x58,0x42,0xe0,0x47,0x89,0x2f,0xdb,0x11,0xfc,0xda,0xe9,0xa6,0xd5,0xba,0x49,0x63, +0x70,0x86,0x70,0xfc,0x26,0x63,0xc7,0x12,0x36,0x14,0xd7,0x56,0x87,0x69,0x48,0xc9, +0xa0,0x72,0xd8,0xf0,0x37,0x32,0xa0,0xec,0x21,0xfd,0xa9,0xba,0x52,0x2e,0x89,0x15, +0x01,0x21,0x0c,0x16,0x1e,0x38,0xd9,0xe5,0x83,0x2d,0x9f,0x47,0x53,0x4f,0x1f,0x20, +0x71,0x21,0x44,0x58,0x14,0x74,0x48,0x4c,0xab,0x2e,0x28,0x40,0x54,0x14,0x36,0x90, +0x81,0x69,0x14,0xa0,0x53,0xa8,0x66,0xb5,0x60,0x25,0xb9,0x53,0xf2,0x9a,0x81,0x81, +0x75,0x8b,0xb1,0x05,0x8a,0x3d,0x33,0x60,0xc1,0xc7,0xbb,0xa5,0xd6,0x42,0x50,0xb3, +0x85,0xc6,0xa9,0x17,0x6e,0x28,0xe6,0x11,0x8b,0x44,0x62,0xb2,0x0d,0x6f,0x12,0x0d, +0x04,0x4a,0x64,0x88,0x0c,0x4f,0x4b,0xaa,0x4e,0x18,0xbf,0xce,0x5e,0x22,0xca,0xdd, +0x29,0x08,0xd2,0x18,0x9c,0xfb,0xfe,0x5e,0xbe,0x59,0x5a,0xc0,0x57,0x2b,0xcf,0x9b, +0x0d,0x6a,0x8b,0x19,0x71,0x40,0xe7,0x69,0xe0,0x51,0x29,0xa9,0x93,0x27,0x1e,0x0d, +0x8f,0x91,0xeb,0x1f,0xe4,0x26,0xa3,0xc6,0xfa,0x3f,0xdc,0x61,0x38,0x6d,0x04,0xcc, +0x0c,0xe5,0x9b,0xa9,0xff,0xa6,0x44,0x6c,0xc2,0x56,0x52,0x6f,0xc8,0x77,0x12,0x49, +0x2b,0xdf,0xd2,0x59,0xe5,0xad,0x42,0x7d,0x78,0xd6,0xfe,0xf6,0x7b,0xac,0xeb,0x7d, +0x63,0xf6,0x44,0xb2,0xfb,0x6e,0x0a,0x6f,0x2f,0xb1,0xe7,0x0b,0xfb,0x2e,0xcb,0xaa, +0x84,0x14,0x49,0xdf,0x1a,0xd2,0xa3,0x0a,0xc4,0xc6,0x5b,0x7e,0x49,0x2d,0x15,0x04, +0x40,0x6f,0x98,0x00,0x2c,0x08,0x6c,0xd2,0x8b,0xa8,0xf4,0xa6,0x25,0x7d,0x17,0x22, +0x61,0x63,0xd5,0xf2,0xef,0x23,0x1d,0xd6,0x52,0xea,0xd6,0x29,0x51,0x7c,0xc5,0x89, +0xa0,0xbf,0x45,0x88,0x03,0x29,0x4c,0x3f,0x45,0xad,0x6a,0x20,0xfe,0x10,0x53,0x50, +0x21,0xb8,0x35,0x0b,0xb0,0x53,0xb2,0x57,0xf1,0xae,0xd9,0x31,0xd2,0x73,0x9a,0x26, +0x32,0x5b,0xc2,0xbb,0x53,0x54,0x34,0xa6,0x39,0x5b,0xcc,0xe0,0xfa,0x6e,0x5c,0xd0, +0x25,0x74,0x74,0xc4,0x94,0x33,0x04,0x74,0x7f,0xbb,0x9c,0x70,0x6f,0x66,0x85,0x78, +0xb2,0x54,0x9d,0x7d,0x81,0x00,0xe1,0x03,0x60,0x52,0x8c,0x00,0x17,0x7d,0xa6,0x55, +0x91,0x17,0xed,0x35,0x12,0xc8,0x55,0xfc,0x61,0x53,0x66,0x71,0xe7,0x60,0xce,0x88, +0x57,0x11,0xbc,0x7f,0x65,0x7a,0xee,0xaa,0x0e,0x43,0xcf,0x4c,0x9d,0x71,0x61,0xeb, +0x26,0x12,0xd7,0x3a,0x9c,0xc6,0x47,0x41,0x6f,0xc9,0x92,0xc8,0x4a,0xd2,0xdc,0xaa, +0xae,0x99,0x02,0xa5,0xbb,0x69,0xe7,0xcf,0x9f,0x5a,0x91,0x0d,0xfe,0x3a,0x8e,0x1d, +0xb5,0x0a,0x23,0x75,0x69,0x76,0x70,0x3d,0xf5,0x4a,0x2d,0x6d,0xce,0x5e,0x86,0x15, +0xc2,0x1f,0x7e,0x0b,0xe4,0x36,0x8a,0x8a,0x95,0x81,0xde,0xf9,0x49,0x17,0xf6,0x48, +0x8c,0x50,0x55,0xa6,0xb9,0x11,0x3f,0x10,0x44,0x90,0xfe,0x8e,0xf9,0x31,0x53,0xd0, +0x99,0xe5,0xd0,0xbf,0x45,0x7c,0xb0,0xa9,0xee,0x7a,0x0d,0x6d,0xfc,0xee,0x17,0xc8, +0x2e,0x3e,0x5c,0xbf,0xc7,0x30,0x2d,0xf8,0xbf,0x1d,0x90,0x1f,0x57,0x70,0x12,0x06, +0x57,0x13,0xb8,0xe6,0x12,0xd0,0x88,0xd8,0x54,0x8d,0x98,0x5c,0xf7,0xa2,0xf1,0x31, +0x3a,0x88,0x58,0x51,0x13,0xd1,0x18,0xd8,0xb4,0x48,0xe2,0x54,0x77,0x0c,0xfa,0x90, +0xfb,0x8b,0xb0,0xc7,0xe4,0xb9,0x4e,0xbc,0x31,0x4b,0x6b,0x07,0x56,0xe6,0x77,0x52, +0x8d,0x28,0x7a,0xe7,0x15,0xe1,0x19,0xb9,0xc4,0xa3,0x7d,0xb5,0x14,0x62,0x3b,0x24, +0x45,0x8b,0xd8,0x56,0xb5,0xbf,0x74,0x02,0x42,0xed,0xf3,0x69,0x55,0xa4,0x10,0xb4, +0xa2,0x0f,0xee,0xd2,0x03,0xa2,0x32,0x90,0x66,0x85,0x78,0x9e,0x36,0x6e,0x79,0x4f, +0x23,0x07,0x3d,0x31,0x74,0x26,0x03,0x8b,0xe9,0x0b,0xd5,0xed,0xbd,0x1e,0xee,0xbb, +0x03,0x48,0xe1,0x5e,0x15,0xab,0x5d,0xbb,0xf4,0xac,0xff,0x91,0xe4,0xd1,0xaa,0x28, +0x77,0x81,0x23,0xa0,0x1d,0xc8,0x22,0x9a,0x04,0x65,0x8a,0xdd,0x07,0x65,0xdb,0x9e, +0x14,0xbf,0x25,0xac,0x19,0x4b,0x5a,0x79,0x31,0xc4,0x7a,0xd3,0x1a,0x64,0x78,0x84, +0x8a,0x79,0xb3,0xbf,0xce,0x07,0x2c,0x99,0x5c,0xb8,0xd3,0x6c,0xac,0xe5,0xf4,0x1a, +0x8b,0x7a,0xf2,0xf7,0x38,0x0a,0x63,0x3e,0xae,0x8b,0x44,0xbb,0xf5,0x13,0x5c,0x8f, +0x2d,0x2c,0x5d,0x2c,0x91,0x2a,0xc8,0x8a,0x1e,0x8e,0xa8,0x91,0xd6,0x6a,0xef,0x29, +0x52,0x0a,0xa3,0xb6,0x30,0x60,0x23,0x9f,0x28,0xed,0x7a,0x7d,0xcd,0xf6,0x3a,0x4d, +0x6b,0x87,0xe5,0x0f,0x9a,0x8a,0xf2,0xc9,0xcd,0x2e,0xaa,0x97,0x7b,0xe5,0xeb,0x4f, +0x6e,0x94,0x14,0x2f,0x97,0xa6,0xbb,0x63,0x4f,0x42,0x27,0x09,0x9c,0x1f,0x6c,0x93, +0xc5,0x6f,0x43,0x76,0xb4,0xf2,0x7c,0x97,0xe9,0x6d,0x69,0xc6,0xa9,0x8d,0xa1,0x71, +0x07,0xd3,0xbc,0x26,0x59,0x1c,0x27,0x38,0x64,0xb1,0xdc,0xb4,0x72,0xfc,0xe5,0x5e, +0xf4,0xd0,0x24,0x29,0xb5,0xd2,0xd2,0x53,0x64,0xcd,0x1a,0xf9,0x41,0x2e,0xa9,0x17, +0xf6,0x00,0x22,0x25,0xbd,0xf2,0x2d,0x03,0xf3,0x7e,0xc2,0x4f,0xf5,0x57,0xa4,0x8f, +0xf0,0xd6,0x84,0x85,0x4e,0xb9,0xf5,0x40,0x67,0xe4,0x94,0xe4,0x59,0xf9,0xe3,0xa2, +0x2f,0x9c,0xb0,0xb4,0xc8,0xd9,0x46,0x70,0xe6,0x28,0x50,0x69,0x76,0xb5,0xfa,0x8b, +0x82,0x3b,0x36,0x25,0x34,0xb2,0x2c,0x06,0x81,0x96,0x0a,0x0f,0x6c,0xbb,0x6b,0xa1, +0x94,0xfc,0x8d,0x94,0xc3,0xba,0x05,0x1b,0xc8,0x1a,0xd9,0x7d,0xc4,0x9c,0xe6,0x87, +0x53,0xda,0xc6,0xc8,0x6b,0xb5,0xb9,0x4a,0x2a,0xde,0x7b,0x92,0xb4,0x62,0xcb,0x3a, +0x4f,0xf9,0x06,0x47,0x9c,0x3a,0x46,0xd8,0x4e,0xb9,0x65,0x9d,0x02,0xf0,0x24,0x1d, +0xaa,0x61,0xb1,0xee,0x1f,0xbc,0x1b,0x96,0x4d,0x58,0x20,0x2b,0xff,0xf2,0xef,0x36, +0x7d,0xd9,0xaf,0x7d,0xbb,0xcb,0x61,0xe6,0xe5,0x56,0x0a,0x67,0x49,0x81,0x9c,0xee, +0x1d,0xb9,0x01,0x4c,0xb7,0x0d,0x04,0xee,0x76,0x9e,0x4c,0x5c,0x7c,0xbe,0x6a,0x1a, +0x05,0x86,0xeb,0x2f,0x62,0xfd,0x27,0x1f,0x08,0xbd,0x3e,0xf2,0xcd,0xf7,0xdf,0x34, +0x21,0x18,0xdf,0x5d,0xbe,0xb6,0xf6,0x49,0xed,0x5e,0x37,0xe2,0xcc,0x23,0x18,0xbd, +0xce,0x3f,0xb6,0x54,0xdc,0x40,0x26,0x1e,0x0a,0x58,0xfa,0x17,0xd0,0x34,0x10,0x72, +0x82,0x0c,0x44,0x5a,0x1e,0x3e,0xa8,0xdf,0x61,0xc2,0x5e,0x91,0x98,0x7a,0xb2,0xa2, +0x21,0xb1,0xa4,0xdb,0x72,0x8b,0x9f,0xc1,0x1c,0x01,0xbe,0xe0,0x6b,0xc5,0xbe,0xe3, +0xb3,0x69,0xfc,0xa5,0x31,0x62,0xd1,0x39,0x5c,0x4a,0x43,0x36,0x9b,0x71,0xc9,0x1c, +0xb3,0xde,0x9f,0x28,0x22,0x6e,0xa6,0x61,0xc2,0x0c,0xd4,0x99,0x19,0x39,0x18,0x95, +0xeb,0xc7,0x7b,0x34,0x92,0x8b,0xc7,0x68,0xc2,0xe4,0xf0,0x8e,0xa7,0xed,0xdc,0x23, +0x79,0x47,0xe8,0xc7,0xb0,0x64,0x9c,0xba,0xf8,0x46,0xb2,0x07,0x58,0x2a,0xad,0xd3, +0x8a,0x0c,0xb9,0xcd,0x37,0xaf,0xfa,0x26,0xcc,0x9a,0xf1,0xef,0xf6,0x7d,0x4a,0x2d, +0x6a,0x94,0x09,0x45,0xfc,0x3c,0x61,0xe9,0xa0,0xed,0xd8,0x06,0xd4,0x28,0xc2,0x04, +0xba,0x00,0xda,0x08,0x91,0x56,0x4b,0xa3,0x2b,0x97,0x47,0x5f,0x6a,0xea,0x5a,0xf0, +0x26,0xc4,0xea,0x5f,0x04,0x6b,0x24,0xfd,0x6a,0x39,0x1b,0x1a,0xb2,0xfa,0x01,0xe1, +0xa7,0xc1,0xe3,0x5f,0xf0,0x27,0xeb,0x5b,0x6b,0x0b,0x53,0xb9,0x0b,0x28,0x79,0xb9, +0x8f,0x49,0x88,0x79,0x98,0x2a,0x42,0x3f,0x2c,0x40,0x2f,0x5f,0x32,0xd8,0x58,0x4a, +0x98,0x06,0xed,0x2a,0xe9,0x3c,0x44,0x55,0xf9,0xc1,0x42,0x9c,0x78,0xcd,0x49,0x24, +0xe2,0xde,0x31,0x54,0xbe,0xd2,0x6b,0x45,0x5b,0x49,0x88,0x3f,0xb0,0x09,0x05,0x3a, +0xf4,0x4c,0x7b,0xb6,0x8a,0x63,0xab,0x79,0xbd,0x4e,0xc2,0x9e,0x5e,0xe3,0x51,0x5b, +0x19,0x07,0x5b,0x3f,0x68,0x4a,0x5d,0x3e,0xe5,0x93,0x4b,0x0e,0xcc,0xc4,0xbb,0xe2, +0x60,0x1f,0xde,0x55,0x58,0xc1,0xc0,0x51,0x02,0xd0,0xea,0xe5,0x99,0x23,0x04,0x81, +0x27,0x41,0xb6,0x6b,0xcc,0x5d,0x3c,0x46,0xc0,0x58,0x9e,0x30,0x37,0x6c,0x5c,0x64, +0x45,0x95,0xfc,0xf7,0x17,0x73,0x4b,0x10,0xa8,0x54,0xd7,0x5a,0x19,0x41,0x7d,0xd1, +0xb9,0x15,0xeb,0x55,0xb2,0x71,0x1e,0xd3,0x1e,0xdf,0x5d,0xb9,0x55,0xac,0x64,0x4a, +0x21,0x76,0x3b,0xb7,0x39,0xe2,0x0e,0xe1,0x15,0x54,0x44,0x41,0x85,0x89,0x9c,0x54, +0x3f,0x14,0x04,0x47,0x66,0x98,0x5a,0xb7,0x4d,0x89,0x8e,0xc3,0x84,0x34,0xfa,0x52, +0x8c,0xbb,0x3e,0xe1,0x3f,0x9b,0x64,0xdc,0xf2,0x52,0xc7,0x85,0x0d,0xab,0x45,0xdc, +0x4a,0x64,0xc2,0xa5,0x33,0x28,0x89,0xaf,0x70,0x68,0x22,0x86,0x8b,0x81,0x2e,0xf7, +0x89,0x76,0xdc,0xa3,0x44,0x97,0x5c,0xb5,0x83,0xdb,0x22,0xce,0x87,0x7e,0x8e,0x51, +0xad,0x02,0xf0,0x9b,0x98,0x90,0x48,0x3a,0xe8,0xe4,0xa0,0x08,0xf6,0xcf,0x65,0x98, +0xa9,0x7a,0x27,0xff,0xda,0xdf,0x2f,0x79,0xb4,0xf5,0x3b,0xd5,0x59,0xc5,0xd3,0xef, +0x56,0x92,0x18,0xfd,0xb5,0xcb,0x27,0x57,0x45,0x56,0x97,0xa4,0x10,0x28,0x04,0x37, +0xc3,0x2f,0xf8,0x0d,0x5b,0x38,0xa9,0x6a,0xeb,0xe1,0x8c,0xee,0xc9,0xd5,0x98,0xab, +0x09,0x71,0x75,0x52,0xcc,0x80,0x66,0xa5,0xc8,0x1c,0x87,0x2b,0xdc,0x6d,0xa0,0x09, +0xae,0x50,0xa6,0xe9,0x24,0xc1,0x6f,0xb5,0x49,0x3b,0xc4,0x67,0xde,0xf3,0x2d,0xdd, +0xaa,0xdf,0xaa,0x26,0x4a,0x29,0x20,0x8b,0x14,0x1d,0x27,0xd9,0x79,0x73,0xa5,0xaa, +0xf1,0xc2,0xc0,0x41,0x2d,0xbb,0xb2,0xca,0x6b,0x0f,0x8e,0x8f,0x14,0xa2,0x71,0xf7, +0x62,0x89,0xe0,0x82,0x97,0xed,0x46,0xf7,0x76,0x85,0x08,0xc5,0x23,0x84,0xa0,0xa9, +0x87,0xb2,0x2b,0x83,0x88,0xbf,0x68,0xdb,0x63,0x4f,0x73,0xfd,0xd2,0xb2,0x13,0x91, +0x04,0x7e,0x2f,0x75,0x17,0x8f,0xc3,0x17,0x19,0x32,0x81,0xc4,0xab,0x4e,0xe5,0x31, +0x38,0x06,0xd8,0xbd,0xba,0xa9,0xa4,0x3c,0xd5,0xfb,0x88,0x62,0xb6,0x31,0x20,0x56, +0x80,0x66,0x50,0xb9,0x07,0xe8,0x58,0x5e,0x24,0xe5,0xbe,0x14,0xe4,0x80,0x1e,0x30, +0xbc,0x30,0x1a,0x60,0x37,0x59,0x8e,0xe1,0x4b,0x9f,0x89,0x43,0x54,0xea,0x57,0xff, +0xe7,0x58,0x94,0x5f,0x32,0xf8,0xa2,0x73,0x77,0x36,0xc1,0x9c,0x7b,0xea,0x5a,0xe2, +0x23,0x45,0xad,0x8a,0x4c,0xe1,0x52,0x78,0x28,0xc5,0x63,0xbe,0xa3,0x45,0x3a,0x7a, +0x01,0x7e,0xe0,0xf6,0x04,0xeb,0x5a,0x38,0xbe,0xc4,0x83,0xba,0x49,0xac,0x69,0x16, +0x73,0x03,0xab,0x03,0x1e,0xc6,0x6b,0x2f,0x45,0xb4,0xe2,0xbf,0xda,0x28,0x23,0x0f, +0x0f,0x87,0x2e,0x75,0x9c,0xbb,0x65,0x9f,0xcd,0x64,0xc5,0x7f,0x71,0xe6,0x1d,0x39, +0x60,0xe0,0xe3,0x28,0x83,0xb3,0x73,0x68,0x06,0xa0,0x0b,0x49,0xff,0x93,0x54,0x1b, +0x09,0x1d,0x11,0x56,0xba,0x52,0x13,0x91,0xb0,0xcb,0xb9,0x8d,0xdb,0x60,0x04,0x0b, +0xaa,0xe0,0x73,0xa7,0xf5,0xe3,0xa7,0x35,0xe0,0x12,0x63,0x5e,0x7f,0x6f,0xf0,0x28, +0x8e,0x06,0x47,0x2c,0x98,0x59,0x53,0x00,0x4f,0x4d,0xa9,0x60,0x34,0x8b,0x64,0xe2, +0x64,0x6d,0x84,0xec,0xd5,0x1f,0xc9,0xee,0x45,0x20,0xf6,0x3d,0x8f,0x5d,0x49,0xf4, +0x65,0xde,0xb2,0x56,0x14,0xd3,0x67,0xb2,0x1e,0x91,0x3c,0xf5,0xf4,0x5c,0x57,0x23, +0xec,0x89,0xf5,0x74,0x9e,0x4f,0x86,0x07,0x18,0xb1,0x63,0xe0,0x2e,0xf8,0xed,0x9e, +0x66,0x9b,0x6d,0x5a,0x04,0xdf,0xfd,0xb7,0xd5,0x07,0xed,0x05,0xfd,0x33,0x5a,0x63, +0xec,0x17,0x9f,0xb4,0x09,0x25,0xbb,0x9e,0x9b,0x75,0xb2,0x62,0x36,0x8d,0xc0,0x40, +0x2f,0x9d,0x00,0xd2,0x77,0x25,0x03,0x76,0x38,0x0c,0x51,0x89,0xea,0xa9,0x2d,0xda, +0x4f,0x95,0x3c,0xc6,0x0d,0xa9,0x4d,0x1c,0x13,0x97,0x95,0xa5,0xec,0xb7,0x6c,0xa0, +0x8d,0x31,0x8d,0x95,0xfd,0xba,0xc2,0xc2,0x46,0x28,0x46,0xb9,0xd3,0x01,0xb0,0xad, +0x8d,0x67,0x98,0x46,0xf6,0x52,0xe6,0xb5,0x42,0x94,0x88,0x0f,0x1d,0x98,0xe9,0x72, +0xa9,0x54,0x90,0x4a,0xf7,0x13,0x95,0x90,0x11,0xc9,0xa4,0xbf,0x5e,0x43,0x9c,0x4c, +0x72,0x90,0xa5,0x7c,0x9e,0xd6,0xe1,0xc4,0x39,0x87,0xaf,0xb7,0x15,0xf9,0x77,0x17, +0x9e,0x00,0xad,0x6c,0x97,0x1f,0x1f,0xaa,0x38,0xb7,0x81,0x1e,0x9c,0x7b,0x30,0x8a, +0x2a,0xd2,0x9d,0xe9,0x9f,0x03,0xcd,0xce,0xe3,0x51,0x4d,0x9e,0xfe,0xe3,0x0e,0x9d, +0x1a,0x90,0xd6,0xfa,0xcc,0xd1,0x18,0x27,0x98,0xc6,0x6e,0xb9,0x4c,0xc3,0xb1,0xeb, +0xc0,0x5c,0x53,0xad,0x49,0xdb,0x11,0x8b,0x11,0x53,0x4e,0x9f,0x7e,0xe8,0x94,0xfc, +0x0e,0x8a,0x50,0x44,0x4e,0x36,0xa5,0xbc,0x4a,0x29,0x47,0x6d,0xf7,0xbe,0x3a,0xe8, +0x24,0x4f,0x7f,0x77,0x64,0x4c,0xeb,0x53,0x21,0x2c,0x21,0xdb,0xb9,0x23,0x6e,0x65, +0xea,0xd0,0x3e,0x53,0xf8,0x7b,0x0a,0xce,0xaa,0xc8,0xcc,0xe4,0xe5,0xde,0xad,0xe9, +0x14,0xcf,0x66,0x45,0x94,0x03,0xf2,0x61,0x88,0xbf,0xdb,0x0b,0x27,0xcf,0x50,0x0a, +0x87,0x4b,0xef,0x28,0x6e,0x5e,0x40,0xb9,0x28,0xca,0xa7,0x95,0x92,0x32,0x41,0x26, +0xfd,0x46,0xfa,0xac,0x1e,0x6b,0xc1,0x20,0x66,0x06,0xcc,0x82,0xd0,0xb0,0xf0,0xae, +0x13,0x48,0x59,0xab,0x9e,0x83,0x66,0x59,0xce,0xe3,0x5c,0x12,0xde,0x93,0x4e,0xbd, +0xb1,0xa4,0x98,0x74,0x37,0x87,0xd9,0x65,0x29,0x57,0x0a,0x07,0x2d,0x7d,0xb6,0xd5, +0xda,0xdc,0x58,0x95,0x97,0xdc,0x48,0xb1,0xd5,0x5c,0xd1,0x64,0x32,0x28,0x43,0x1b, +0xab,0xf9,0x6e,0x93,0x19,0x48,0xea,0xc0,0x60,0x05,0xe9,0x5f,0x2c,0xc3,0x34,0x25, +0x28,0x89,0xf4,0xb9,0xf2,0x6a,0xe2,0x98,0x05,0x79,0xee,0xcf,0xdd,0xe4,0x5a,0x1b, +0xef,0xfa,0x2e,0x72,0x05,0xa7,0x05,0x59,0xfb,0x78,0xeb,0x25,0x38,0xeb,0xf1,0xf1, +0x51,0xcb,0xf5,0xbc,0x72,0x28,0xa3,0xd1,0xdb,0x04,0xc9,0x26,0x32,0x0f,0x22,0x56, +0x0f,0x01,0x3d,0x3f,0x26,0x42,0x56,0x0e,0x0a,0x03,0x12,0xb5,0x9f,0x2d,0x42,0x5d, +0xe2,0xe4,0x8a,0x3a,0x38,0xed,0x64,0x51,0x23,0xa4,0xf2,0x7b,0xda,0x29,0xef,0xa1, +0x1e,0xc8,0x24,0x0d,0xf4,0x35,0x31,0x68,0xcb,0x6c,0xfb,0x0f,0x5b,0x61,0x33,0x2b, +0x09,0xdb,0xc9,0xbb,0x7a,0x34,0xa4,0xfd,0x8e,0x42,0xf3,0xbf,0xb0,0x61,0x5d,0x81, +0x87,0x0b,0x50,0xd9,0xdb,0x53,0xb2,0xd3,0xc3,0x9f,0x54,0xe5,0xab,0x7d,0x4b,0x12, +0x03,0xe1,0x5c,0xe7,0x1b,0x89,0xbe,0xcf,0x86,0xdc,0x68,0xc5,0xd2,0x30,0xc0,0x67, +0x82,0x30,0xbb,0x21,0xe5,0x9d,0xd5,0x74,0x56,0x49,0xcc,0xb2,0x94,0x74,0x35,0xd6, +0x6b,0x9a,0xf3,0x34,0x58,0x30,0x7d,0xaf,0x9e,0x5c,0x35,0x00,0xf7,0xb9,0xe3,0xe9, +0x11,0xd0,0x84,0xa2,0x70,0x7b,0x41,0x92,0x9d,0x4f,0x60,0x86,0x8d,0x72,0x13,0x51, +0x25,0x46,0xda,0xa1,0xcc,0x77,0x3c,0xee,0x22,0x58,0xa4,0x76,0xf2,0x28,0xff,0x3e, +0x9d,0x47,0xe5,0xcd,0x5b,0x07,0x15,0x87,0xc3,0x46,0xfd,0x8a,0x53,0x87,0x39,0xce, +0x93,0xba,0x47,0xb7,0x31,0xe3,0xf1,0x62,0xdb,0xa8,0xe5,0x49,0x50,0x6c,0x5f,0xa9, +0x8f,0x55,0x8d,0x7f,0x1a,0x48,0x76,0xaa,0xec,0x55,0xfc,0x44,0x3a,0x35,0x74,0x88, +0x8e,0x14,0x5a,0x4c,0x72,0xc6,0x9e,0x55,0x61,0xf4,0x4d,0x5a,0xfe,0x9a,0xf8,0x29, +0x45,0x0a,0x06,0x8f,0x2d,0x97,0xbb,0x2c,0x57,0x51,0x00,0x4b,0xea,0x37,0x71,0xe9, +0x2e,0xfb,0xb1,0x39,0xfa,0x91,0xd6,0xb6,0x4a,0xdf,0x5f,0x69,0x3a,0x60,0x57,0x3a, +0x0b,0x7c,0x95,0xae,0xc5,0x91,0xe9,0x2f,0xa8,0x1c,0x46,0x8a,0x5b,0x3c,0x6f,0xae, +0x40,0x12,0x4a,0x58,0x2c,0xf5,0xa5,0x38,0x2b,0xd0,0xc4,0xfd,0x5a,0x3d,0x61,0xe1, +0x92,0x05,0x56,0x0a,0x64,0x36,0x5f,0xe0,0x17,0xd8,0xe3,0x69,0x13,0xd7,0xc8,0xeb, +0x98,0xfb,0x96,0xdc,0x1e,0x34,0x06,0x79,0x4c,0x59,0xfb,0x66,0x79,0xab,0x79,0x19, +0xe1,0xee,0x59,0x68,0x99,0x06,0x69,0xab,0xad,0x49,0x70,0x36,0x69,0x40,0xf2,0x1e, +0x36,0x05,0x5e,0x3b,0xfe,0xe5,0x58,0x92,0x5d,0xce,0x4c,0x56,0xbc,0x08,0x43,0x0f, +0x85,0x42,0x36,0xc7,0xb6,0x29,0xc9,0xcb,0xd6,0x8f,0x22,0x26,0x2f,0xe4,0xf3,0x0e, +0x83,0xcb,0x93,0xa7,0x15,0x0c,0x60,0xba,0x60,0xc5,0xc1,0xdf,0x41,0x2e,0x47,0xa0, +0x35,0xe6,0x64,0xa0,0x25,0xa6,0xb0,0xbb,0x83,0xc0,0xb0,0xc6,0x4e,0x06,0x2e,0xb4, +0x17,0xca,0x8a,0x46,0x16,0xe4,0x80,0x9a,0x23,0x88,0x0c,0xf0,0x6d,0xa9,0x99,0x4b, +0x21,0x9d,0x59,0x57,0x31,0xca,0x73,0x11,0xf5,0xe6,0x19,0x76,0x72,0x56,0x09,0x0c, +0x66,0xc5,0x89,0x55,0xec,0xaa,0x86,0x9b,0xd9,0x8a,0x28,0xf3,0x8c,0xb9,0x6a,0x88, +0x2e,0xb8,0x06,0x6c,0xa7,0x25,0x62,0x37,0xef,0xa4,0x06,0xcc,0x67,0x58,0xac,0x68, +0x3e,0x88,0xd1,0x54,0xa4,0xb5,0x44,0x06,0x7e,0xdd,0x39,0x58,0xf1,0xe6,0x1b,0xf8, +0xed,0xc6,0x7c,0x0e,0x6b,0x15,0x0d,0x5b,0x06,0x23,0x0f,0x08,0x7f,0xf1,0xd3,0xf3, +0x8f,0xc4,0x6b,0x0f,0xbf,0x06,0xfb,0x7f,0xdf,0xd0,0x0f,0xcf,0xd5,0xe4,0xea,0x1a, +0x65,0xdd,0xa8,0xee,0xe1,0x5b,0x70,0x8c,0xc1,0x3a,0xad,0x6c,0xbf,0x13,0x95,0xb7, +0x3b,0x00,0xb2,0x4f,0x2c,0xe9,0x40,0x9c,0x49,0x55,0xf8,0x5d,0x52,0xeb,0x9c,0xa3, +0x1e,0x43,0xa3,0xcf,0x77,0xc4,0x3b,0x6f,0xe7,0x54,0x33,0xbe,0xad,0xa0,0x14,0xdf, +0xb9,0xa8,0x51,0x3f,0xd3,0xb4,0x9f,0x64,0xfb,0x1b,0xab,0x79,0x7e,0x30,0x7d,0xa3, +0x81,0x8b,0x5f,0xf5,0x1e,0x3a,0x4a,0x9f,0x8d,0x8a,0x76,0xc0,0x08,0xbf,0x42,0xe1, +0x44,0xff,0xe6,0x07,0xc6,0x1c,0x44,0xd2,0x61,0x71,0xdc,0xa8,0xad,0xfc,0x35,0x65, +0xa2,0x48,0xeb,0x7c,0x5d,0xb1,0x90,0x41,0x24,0x7f,0xf4,0xc1,0x82,0xbd,0x4b,0xe6, +0xa6,0x33,0x3e,0x66,0x16,0xa3,0xaa,0xc0,0xf2,0x72,0xbf,0x55,0x77,0x27,0xf6,0x3d, +0x20,0xae,0x22,0x2e,0x34,0xf9,0xd7,0xb2,0x8f,0xe5,0x83,0x84,0x55,0x76,0x0c,0x94, +0x7e,0x9a,0x1d,0xc9,0x07,0xae,0x5e,0x01,0x57,0xce,0x25,0x1e,0x3f,0x08,0xe7,0xbd, +0x4d,0xe7,0xbd,0x43,0xb0,0x5c,0x0d,0x12,0x45,0x26,0x42,0x8b,0xf0,0x0c,0x34,0x57, +0x02,0x68,0x4f,0xa1,0xde,0xa6,0x5c,0x87,0xc6,0x55,0x05,0xc8,0xca,0xb5,0x18,0xff, +0x6c,0x37,0x94,0xbe,0xc4,0x17,0xa1,0x3a,0xa4,0x29,0x65,0xcc,0x5d,0xeb,0xd1,0xdd, +0x1e,0xcd,0xd0,0x99,0x3b,0x39,0xc6,0xc8,0xd2,0x76,0xa4,0xae,0x5e,0xfa,0x3d,0x63, +0x8c,0xd7,0x07,0xfd,0xde,0x0e,0x4f,0xb9,0xdf,0x68,0xd7,0xb1,0x24,0xf7,0x95,0x04, +0x52,0x19,0x32,0xec,0x93,0x31,0xac,0x53,0xb7,0x96,0xe6,0x3a,0x58,0x24,0x58,0xe6, +0xa3,0x6a,0xfe,0xda,0xda,0xad,0x48,0xc2,0x5d,0x18,0x3d,0x82,0x4d,0x1c,0x50,0xf7, +0x21,0xff,0xd0,0x1b,0x1e,0x7d,0x3e,0x0a,0x67,0x92,0x49,0x93,0x79,0x07,0x2f,0xcf, +0x72,0xcf,0xdd,0x27,0xb2,0xf1,0xed,0x8b,0xb6,0xc5,0x48,0x09,0x7e,0xbc,0x25,0x66, +0x22,0x39,0xb6,0xda,0x1a,0x1e,0x26,0xed,0x0b,0xce,0x26,0x17,0xb3,0x02,0xf8,0x3f, +0x35,0x42,0xd9,0x1e,0x54,0x23,0x8a,0xc2,0xa0,0xbf,0x81,0x37,0x47,0x6f,0xb7,0xf6, +0x07,0xf2,0xd2,0x15,0xb6,0x6d,0x23,0xa3,0xe2,0x9e,0xe6,0x0c,0xb0,0xce,0xca,0x6d, +0xb3,0xa2,0x02,0xbc,0xa3,0x63,0xbd,0x5a,0x1e,0xbd,0xa3,0x36,0x73,0x13,0xc8,0xf9, +0xdd,0x4e,0x8b,0x91,0xca,0x20,0xa4,0x00,0xf8,0xfc,0x8c,0x46,0xe9,0x0f,0x7e,0x68, +0x23,0x86,0xd1,0x67,0x77,0x65,0xe8,0x9b,0xcf,0xb9,0xc2,0x4f,0xb9,0x20,0x81,0xaf, +0xea,0x74,0xda,0x09,0xf8,0x61,0x50,0x78,0x63,0x24,0x6c,0x53,0xf2,0xfa,0xed,0x32, +0xf2,0xa0,0xff,0x6d,0xfa,0x2b,0x36,0x13,0x00,0x46,0xeb,0xd5,0x5b,0x27,0x2b,0x51, +0x85,0xd4,0xf3,0xe5,0x1a,0x88,0x5f,0x99,0xcc,0xcc,0x6d,0x17,0x28,0x25,0x7d,0x2e, +0x12,0x85,0xa2,0xad,0x1e,0x92,0x28,0x8d,0xbb,0x0a,0xf4,0xe0,0x59,0x28,0x6a,0x06, +0xf3,0x04,0x75,0xf4,0x3d,0x64,0xa1,0xde,0x59,0xb4,0x9a,0x5e,0x78,0x29,0xd7,0x59, +0x08,0xf5,0xd3,0xe5,0x8e,0x67,0x17,0x6a,0xfb,0x1a,0xbf,0xd2,0xde,0x99,0xf0,0x4b, +0xa7,0x68,0x27,0x82,0x9a,0x7b,0xe3,0xc0,0xc1,0xe6,0xb7,0xde,0x30,0xfa,0x1f,0xcc, +0x7c,0xb8,0x66,0x2e,0xed,0x49,0x56,0x8e,0x79,0x77,0x19,0x6c,0xd7,0x91,0x8a,0xe5, +0x0b,0x86,0xdc,0x3e,0x7b,0x94,0x01,0xee,0x4a,0x0d,0xda,0x58,0xee,0xcc,0x4b,0x4d, +0x03,0x21,0xfb,0x69,0x73,0x3f,0xeb,0x96,0x45,0x55,0xb1,0x6f,0x2f,0xe8,0x4f,0xbb, +0x43,0x3e,0xb5,0x5b,0x7a,0xac,0xe4,0x8f,0xf8,0x2b,0xe3,0x4d,0x9e,0xc0,0xf9,0xb1, +0x19,0xaf,0x44,0x41,0xe1,0x3e,0x5a,0x58,0x66,0xba,0xce,0xc0,0x76,0xa3,0x96,0x83, +0x04,0x1e,0x28,0x56,0x92,0x3f,0x46,0xb8,0xc2,0xfc,0x94,0xb0,0xf8,0x5e,0x3f,0x24, +0x53,0xbf,0xed,0x47,0x34,0x3c,0x91,0x23,0xe1,0xbc,0x31,0x21,0x86,0xc6,0x3f,0x6e, +0x55,0x1c,0xb5,0x31,0x50,0x9c,0x03,0x76,0x2b,0x9a,0xa3,0x7c,0xb3,0xda,0x29,0x28, +0xe2,0x59,0x68,0xe0,0x87,0x9f,0xab,0x9e,0x03,0x50,0xaa,0xe3,0x56,0xc0,0x14,0xd4, +0xaa,0x3a,0xe1,0x27,0xb7,0xb8,0xe4,0x0f,0x65,0x86,0x27,0xd3,0xd2,0x34,0x1d,0xc5, +0xb0,0x5b,0xbd,0xd1,0x52,0xb7,0x37,0xe3,0xe1,0xb6,0x75,0xff,0x7e,0x7b,0x73,0x05, +0xca,0xbd,0x9f,0x92,0x97,0x9a,0x32,0x8e,0x40,0x4c,0x87,0x24,0xc7,0x68,0xc6,0x89, +0xa1,0x03,0x17,0x7f,0x7b,0x23,0x1e,0x49,0x89,0xa7,0x87,0xcc,0x3a,0xa3,0xb1,0x7e, +0x9d,0x60,0xd6,0x95,0x0a,0xdf,0x00,0xb8,0xcf,0xa9,0x57,0x43,0x8c,0xda,0x06,0xf7, +0x0f,0x0a,0x4b,0x6b,0x51,0xc2,0xd7,0x74,0xce,0xf1,0x97,0xde,0x88,0xdb,0x6f,0x87, +0x53,0x16,0x4f,0x21,0x0d,0x33,0x46,0xb2,0xad,0x15,0x0a,0x39,0x8f,0x40,0x1e,0xd0, +0xa7,0xb1,0xd7,0xfd,0x9b,0xbd,0x18,0x6c,0x2a,0x34,0x69,0x0a,0x19,0xd6,0x2c,0xc8, +0x2a,0x5d,0x9c,0x9f,0xd0,0x59,0x20,0xfe,0x8a,0xde,0x4e,0x0f,0xf7,0xd0,0x0e,0x5a, +0xe5,0x70,0x62,0x3e,0x3e,0xb3,0x0d,0x7d,0x82,0x0f,0x46,0x07,0x5f,0x81,0x63,0x3a, +0x26,0xb2,0xf7,0x27,0x17,0x32,0xf3,0x0a,0x67,0x1d,0xce,0x1f,0x57,0xd2,0x6a,0x40, +0x59,0x08,0x60,0x43,0x37,0xbb,0x2e,0x90,0x4c,0xa0,0xa6,0x44,0xab,0x4d,0xe8,0xcf, +0x10,0x9a,0x88,0x1f,0x26,0xe0,0x26,0x43,0x20,0xca,0xc3,0x11,0xf4,0x5e,0x71,0xec, +0x78,0x4b,0x31,0x61,0xd4,0xed,0x76,0x21,0xd4,0x6f,0x24,0xa3,0xa2,0x19,0x2f,0x75, +0x7a,0x98,0x93,0xf1,0x12,0x23,0xb9,0xca,0xc9,0x6e,0x55,0xdf,0xea,0xae,0x2e,0x51, +0x3e,0x4e,0xcc,0x62,0xff,0xb5,0xc8,0x9c,0x56,0x89,0x50,0x14,0x34,0x68,0x79,0x9a, +0x34,0xbe,0x96,0x50,0xf6,0x26,0x40,0x42,0x1b,0x6a,0x5c,0x51,0xfb,0xe8,0x47,0x6b, +0xc9,0x22,0xf7,0x25,0xf6,0x5e,0x8e,0x10,0x85,0x67,0x61,0x7c,0x52,0x72,0x91,0xbb, +0x0b,0x1a,0xc5,0xa4,0x1b,0x7a,0xd9,0x01,0xa5,0x8b,0x00,0x50,0x76,0x98,0xa4,0x6c, +0xf7,0x93,0x62,0xdb,0xc4,0xea,0x2c,0xba,0xb3,0x8d,0xd5,0x54,0x5a,0x3b,0x9f,0x73, +0x0b,0x73,0x12,0xfe,0x0d,0xaf,0x8a,0x27,0xcb,0x9a,0xc6,0x4d,0x4a,0x6b,0xe0,0x6d, +0x67,0x62,0x2b,0x65,0xaf,0xeb,0x34,0x8c,0x4a,0xf9,0xc3,0x6f,0xd8,0xc6,0xe1,0xf3, +0xdb,0xc6,0x08,0x5b,0x3c,0x54,0xfb,0xe2,0x5a,0x89,0xa5,0x16,0xfc,0x7b,0x9a,0x42, +0xf7,0xc3,0x9a,0x69,0xe3,0xa3,0x0c,0x6d,0xbb,0xc3,0x62,0x7d,0x78,0xa8,0x79,0x64, +0x33,0xcf,0x68,0x6c,0x7f,0x54,0xa9,0xa1,0x2c,0x32,0xa0,0x56,0x6b,0x42,0x59,0xb8, +0xd9,0x7b,0x73,0x21,0xf5,0xa1,0xc7,0x14,0x6d,0x8c,0xd5,0xce,0x52,0xaf,0x24,0xc1, +0x89,0x0f,0x95,0x59,0x7e,0x2c,0x03,0x3c,0x32,0x49,0x5b,0x0d,0xbd,0x63,0x7c,0x86, +0x90,0xc9,0x24,0xe5,0x38,0x3d,0xf2,0x64,0x24,0xeb,0x74,0x1a,0xac,0xf8,0xd3,0x6d, +0xc4,0x12,0x00,0x05,0x2e,0xb9,0x99,0x24,0x64,0x3b,0xa9,0xd6,0x3f,0x5c,0x7c,0x93, +0x01,0x13,0xdb,0xaf,0x5d,0xa3,0x10,0xd4,0x69,0xc9,0x35,0xe4,0x5f,0x5f,0xd2,0x6d, +0x5d,0x5a,0x2d,0xf4,0xb9,0x38,0x95,0xae,0xd6,0xe7,0xae,0x86,0x54,0x0c,0xae,0x51, +0x6d,0x6b,0x74,0x57,0x06,0x00,0x76,0x8f,0x05,0x54,0xe1,0x04,0x52,0x27,0x6d,0xa1, +0x34,0x3c,0xfd,0x27,0x94,0xf5,0x7a,0x22,0x8e,0x5f,0x78,0xf2,0x7f,0x9b,0x89,0x51, +0xe6,0x9e,0x45,0xdd,0x3a,0x1b,0x63,0xcf,0x0d,0x87,0x0e,0x1f,0xf6,0x4d,0xa3,0x33, +0xa3,0xbb,0x6d,0xc7,0x6e,0xea,0xd1,0x61,0xbb,0xdd,0xdb,0xcf,0x73,0x53,0x7d,0x8a, +0x2a,0xb8,0xdd,0xbf,0x0c,0x17,0xec,0xaa,0x24,0x91,0x88,0x83,0x52,0x27,0x15,0x26, +0xde,0x34,0xd0,0x99,0x9c,0xb2,0x00,0xde,0xb3,0xd1,0x1a,0x3a,0x0b,0x4d,0x0b,0xf4, +0x98,0x25,0x07,0xfd,0xde,0x6e,0x6e,0xbb,0x49,0x25,0xed,0x73,0xfa,0x29,0xb7,0xaa, +0x0c,0x3f,0x2f,0xdc,0x42,0x16,0xb5,0x4a,0xc8,0xdb,0xb7,0xbb,0x74,0xd4,0x1a,0x8d, +0xc7,0x86,0xf0,0xac,0x5e,0x35,0xb6,0xfb,0x56,0x7c,0x63,0xe9,0x5a,0x58,0xd1,0xca, +0xfb,0x92,0xc4,0x2d,0xb3,0xfc,0xfe,0xd9,0xb7,0x7d,0x5a,0xda,0xfd,0xf5,0x01,0x1e, +0xee,0x41,0x99,0xc9,0x5f,0x3d,0x64,0x98,0x9e,0xd7,0x64,0xe9,0x36,0x4f,0x5d,0x24, +0x9c,0x9b,0xd1,0xf7,0xd7,0xb2,0xea,0xd8,0x37,0x7f,0x43,0x80,0x5c,0xbe,0x3e,0xc5, +0x21,0x30,0x08,0xf7,0x9c,0x8d,0xb4,0xda,0xcf,0xbd,0x5f,0xa6,0xd0,0x65,0x1a,0x1c, +0xa2,0x05,0x1d,0xf6,0x17,0xd3,0x99,0x5f,0xba,0xbc,0x30,0x20,0xf2,0x6c,0x61,0x53, +0x0a,0x0f,0x10,0xe7,0x3c,0x8f,0x76,0x5f,0x12,0x4a,0xa9,0xf5,0x8c,0x64,0x0f,0x63, +0x03,0x8f,0x68,0x91,0xcf,0x1d,0x7e,0xce,0x34,0xc5,0x75,0xa7,0x95,0x6b,0xc5,0x22, +0x82,0xa4,0x3f,0xc0,0x7c,0x81,0xaf,0x88,0x96,0x06,0xea,0x59,0x61,0xa8,0xe3,0x9a, +0xb8,0x3e,0xf6,0x9c,0x9e,0xd3,0xf7,0x8c,0x43,0x5e,0x99,0x92,0x55,0x8f,0xed,0xe4, +0x57,0x65,0xff,0x8c,0xd0,0xd9,0xd4,0x34,0x1f,0x3b,0x29,0x1b,0xb0,0x46,0xea,0xb6, +0x76,0x35,0x81,0x4d,0x5b,0x3d,0xfe,0xf5,0xdf,0x45,0x16,0xf7,0x2d,0x98,0x66,0xea, +0x3f,0xf8,0x42,0x91,0x65,0x85,0x12,0x2a,0x0a,0x35,0x16,0xdc,0x1c,0x67,0x73,0x7e, +0x2a,0x49,0x1f,0xfe,0x7a,0x6c,0x61,0x7f,0xb0,0xef,0x99,0xaa,0xdb,0x25,0xc2,0xf9, +0xc3,0x5b,0x12,0xef,0x34,0x87,0x84,0xd2,0x29,0x99,0x53,0x20,0xa7,0x28,0x1f,0x50, +0x35,0xb1,0x1a,0xf7,0x3c,0x47,0xbb,0x43,0x03,0x2f,0x19,0x5f,0x22,0x6d,0xbe,0xa0, +0x1f,0x41,0xc3,0x3e,0xa5,0x97,0xe9,0x97,0x79,0x4a,0xea,0x3e,0xe9,0xe6,0xa6,0xb0, +0x89,0x40,0x1c,0x6f,0xd3,0x37,0x83,0xfc,0x57,0x69,0x6e,0x1e,0x9a,0xe7,0xb8,0x41, +0x2f,0xf1,0xc7,0x72,0x8d,0x6c,0x93,0x64,0x87,0x55,0xab,0x27,0xeb,0x61,0xac,0x27, +0x8d,0x5f,0xca,0x4c,0x83,0x2b,0xcb,0xfd,0xd4,0x52,0x5c,0x35,0x78,0xc2,0x7a,0xb8, +0x8c,0x1d,0x44,0x19,0xe1,0xbb,0x83,0x8d,0xe0,0xd3,0xb4,0xb5,0xfd,0x13,0x93,0xf2, +0xca,0xc0,0x74,0xfa,0x10,0x71,0x45,0x92,0xc4,0x2e,0xe1,0x5d,0xbf,0x1e,0x7b,0xb8, +0xa6,0xe0,0x35,0xa9,0x03,0xcf,0x28,0x81,0x41,0x30,0x3e,0x00,0x25,0x6c,0xb9,0xf3, +0x4a,0xe2,0x89,0x05,0x95,0x4f,0x2a,0x8c,0x11,0x82,0x26,0x3c,0x5e,0x68,0x62,0xf8, +0x7d,0xb0,0xbb,0x39,0x3a,0x76,0xb8,0x73,0x71,0x5c,0x2b,0x06,0xff,0x72,0x5f,0xc3, +0x76,0xa4,0xc0,0x6a,0xb1,0x39,0x12,0xf9,0x8a,0x65,0x27,0x76,0x8d,0x8a,0x52,0xa1, +0x6a,0xae,0x13,0xf6,0xfa,0x26,0xd5,0x80,0xf7,0xf2,0xfd,0xe5,0x53,0xf0,0xf0,0xeb, +0xfa,0xa2,0xc9,0x51,0xc5,0xe1,0xb1,0x62,0xa4,0x5d,0xe5,0x67,0xf3,0x7f,0x3c,0x63, +0x2e,0xea,0x39,0xc3,0xba,0x14,0xa1,0x85,0x9c,0x09,0x74,0xca,0x87,0x68,0xf1,0x8b, +0x51,0x5d,0xee,0x9e,0x7a,0x34,0x8f,0xa7,0x55,0x64,0x66,0xb4,0x84,0x36,0x51,0x0d, +0xf6,0xea,0x94,0xef,0x9b,0x78,0xd7,0x79,0x0c,0x8e,0x2f,0x45,0x24,0x86,0x29,0xa1, +0x25,0x55,0xd1,0x40,0xb9,0x94,0x0f,0xda,0xe7,0x40,0xc6,0xa6,0xff,0x0b,0xcd,0x4c, +0x36,0x16,0x9f,0xc5,0x3c,0xbc,0x1e,0xd7,0x7a,0x87,0xd4,0x1d,0x6e,0x83,0x4e,0x29, +0x53,0xe2,0x0e,0x60,0x85,0x58,0x5e,0x7c,0x63,0x71,0xe6,0x0f,0x6f,0xdd,0x4f,0xdd, +0xc1,0x8f,0x97,0x4f,0x3b,0x1e,0x57,0xd2,0xfd,0xc5,0x47,0x6f,0x7b,0x7e,0x69,0xe1, +0xf2,0xbb,0x0f,0x61,0x6d,0x7d,0xe0,0xc8,0xf3,0xa0,0x5e,0xd9,0x1a,0xd0,0xe0,0x9f, +0xb6,0x8d,0x64,0xf9,0x77,0x0a,0x78,0x2e,0xf9,0x31,0x90,0x81,0xf5,0xe9,0x90,0xfd, +0x27,0xd3,0x6c,0x2b,0xea,0xe3,0x15,0x62,0x4d,0xfd,0x98,0x27,0xd8,0x82,0x79,0x93, +0xb7,0x14,0x30,0xed,0x31,0xce,0xce,0x51,0xb2,0x1d,0x71,0xa3,0xc8,0xef,0x2e,0x91, +0x44,0xa5,0x6e,0x4d,0xe2,0xa3,0x29,0x86,0x27,0x17,0x12,0x92,0x00,0xfd,0x11,0x02, +0x4e,0x59,0xd5,0x35,0x5d,0xad,0x10,0x20,0x4e,0x86,0x7f,0x86,0x08,0xe2,0xd5,0x32, +0x76,0x21,0x17,0x24,0xec,0x5e,0x78,0x72,0xc5,0xc9,0x98,0xc9,0xa8,0xe8,0x99,0x4b, +0x7b,0xc9,0x64,0xb4,0x8e,0xdd,0x73,0x64,0xc6,0xc6,0x59,0x73,0x77,0x19,0xa6,0x6b, +0x4f,0x8e,0x16,0xd3,0xf9,0x02,0x7f,0xf7,0x87,0xa3,0x02,0x50,0x76,0xfb,0x1a,0x4d, +0xce,0x93,0xf8,0x28,0x28,0xb7,0xa3,0x35,0x70,0xf5,0xcf,0xc7,0x41,0x87,0xbf,0xf5, +0x0b,0x7b,0x94,0xc7,0x90,0xcb,0x2b,0x29,0x35,0xf8,0x9a,0x98,0xfc,0xe0,0x6b,0x1b, +0xef,0x13,0x1b,0xf4,0xef,0xaa,0x6b,0x37,0x04,0x5b,0x08,0xa6,0x73,0xec,0xca,0xe8, +0x01,0x86,0x56,0x9b,0xde,0x6e,0x1d,0x07,0xf9,0x6f,0x7b,0xbb,0xc1,0xe6,0x75,0x70, +0x51,0x39,0xdc,0x82,0x5c,0x53,0x72,0x6a,0x4e,0xcc,0x4d,0x24,0x4e,0xe8,0x62,0x4e, +0x64,0x1c,0xa2,0x46,0xd7,0x67,0x02,0x5d,0xec,0x69,0x51,0xfb,0xcc,0xd2,0x7b,0xcf, +0x92,0x84,0xdd,0x9b,0x13,0x58,0x49,0xe9,0x30,0x31,0xf5,0x31,0x53,0x8c,0x6b,0xaa, +0xf7,0x70,0xee,0xb2,0x97,0x22,0xb5,0x73,0x26,0xdf,0x83,0x01,0x5d,0x18,0xf2,0x80, +0x6a,0xad,0xbc,0x04,0xb4,0xda,0x04,0xc4,0xdb,0x65,0x90,0x24,0xf4,0x57,0x3d,0x8d, +0x1d,0xd3,0xd2,0xca,0xb7,0x65,0x29,0x8c,0x55,0x93,0x39,0xd4,0xf5,0x51,0x33,0xe1, +0x1f,0x46,0x9d,0x76,0xed,0xb2,0x22,0x99,0x94,0x27,0x8d,0xc7,0xf2,0xb0,0xea,0xd7, +0xa3,0x61,0x7a,0xf5,0x94,0x91,0x77,0x85,0x31,0xc2,0x11,0x12,0x20,0x90,0x73,0x9e, +0x15,0x52,0x60,0xb6,0xd7,0x45,0x4f,0x5e,0x60,0x07,0xe5,0x16,0x3d,0x55,0x8a,0x56, +0x3b,0x3d,0xbe,0xd7,0x25,0xfa,0x83,0x76,0x66,0xd5,0x7c,0xf5,0xda,0x58,0xa5,0xce, +0xf6,0x8d,0xbc,0x95,0x11,0x6b,0x28,0x1d,0x4a,0xdb,0xe4,0x0d,0x53,0xfd,0x34,0x9f, +0xa1,0xe7,0x2d,0x6b,0x29,0xac,0x43,0xfb,0x8e,0xcd,0xec,0x73,0xa9,0x34,0xa1,0x75, +0xe4,0x49,0xc6,0x8d,0x3e,0xb5,0x91,0x83,0x6a,0x2a,0x1d,0x64,0xc7,0xc3,0x86,0x2f, +0x90,0x38,0x49,0x6d,0x1c,0x14,0xfe,0x27,0x07,0x9b,0x42,0x3c,0xfd,0x7e,0x83,0x98, +0xd0,0xde,0x58,0xc8,0x55,0xb3,0x46,0x5b,0xe4,0xd5,0xd7,0x48,0x09,0xc8,0x8f,0x60, +0x4c,0x38,0x60,0x0d,0xbd,0x14,0xf8,0x70,0xeb,0x29,0x87,0xdf,0xfb,0xb9,0x65,0x22, +0x33,0xde,0xe3,0x4a,0x7e,0xbf,0x2e,0xc7,0x87,0x36,0x41,0xe8,0x95,0x8d,0xb5,0xda, +0x1c,0x29,0x3d,0x71,0x39,0x6e,0x40,0x36,0x8c,0x5d,0x3e,0x63,0x72,0x08,0xe2,0x9a, +0x13,0x61,0x87,0x8d,0xf6,0xfc,0x6f,0xf7,0x05,0xce,0x50,0xd7,0x17,0xef,0xaf,0xd6, +0xad,0x42,0x0a,0x5b,0xb3,0x36,0x80,0x89,0x50,0x64,0x5f,0x0c,0x87,0x0b,0x93,0x84, +0x5e,0x80,0xd9,0x02,0xf5,0x29,0x9f,0xa4,0x20,0xbd,0x24,0x46,0x63,0x80,0xc8,0x8d, +0x47,0xae,0x44,0xf4,0x0d,0x3a,0xda,0xb4,0x1f,0xb1,0x5c,0xfe,0xea,0x9e,0xfc,0x4f, +0x75,0x5e,0x01,0x46,0xd2,0x8f,0x59,0xa5,0xc6,0xb0,0x3a,0x62,0xde,0xbe,0xad,0x73, +0x6a,0x32,0x45,0x73,0xb2,0xe3,0xe6,0xb5,0x9f,0xd8,0xc3,0x5f,0xb9,0x72,0x58,0xc4, +0xe3,0x0b,0xbe,0x42,0xf3,0xa7,0x83,0xec,0xe3,0x47,0xc6,0xdd,0xb9,0xd7,0x02,0x4d, +0x30,0x32,0xb0,0x45,0x23,0x88,0xde,0x0f,0xa1,0x65,0x8b,0x50,0xba,0xd6,0x18,0xf7, +0x27,0x8a,0x62,0xb6,0x1e,0xab,0xed,0x64,0xe2,0x07,0x6a,0xd4,0xa0,0xc9,0xb1,0xd5, +0x9e,0x53,0xd8,0xe7,0xcf,0xf9,0x5c,0xd1,0xe7,0x87,0xcb,0x8a,0x38,0x94,0xb6,0x6a, +0xe3,0x59,0xe2,0x4e,0x16,0x25,0xd2,0xb5,0x5f,0x0a,0xec,0x2a,0xb9,0xeb,0x31,0x7a, +0xfa,0x6c,0xff,0xfa,0x2a,0xee,0x24,0x10,0x21,0x44,0xe5,0xb8,0x0e,0x04,0x5e,0x08, +0x8e,0xf8,0x9b,0x1d,0x79,0x31,0x01,0x56,0xc9,0x32,0xbf,0xde,0x54,0x67,0x33,0xe6, +0x5c,0x96,0x33,0x4f,0xda,0xdb,0x09,0x36,0x22,0x0f,0xa5,0xf8,0xf8,0x1a,0x22,0x0a, +0x48,0x03,0x02,0x2c,0x1a,0x6e,0x32,0x76,0xdf,0xc7,0xec,0xd4,0x38,0x93,0x2c,0x98, +0x89,0xd9,0xb7,0xd8,0x04,0xac,0xdb,0xfc,0x3d,0x1f,0x5a,0x54,0x8f,0x9c,0xd3,0x0e, +0x63,0x84,0xdc,0x06,0x9c,0x6d,0x57,0x8b,0xea,0xcf,0xad,0xd1,0xfe,0x2c,0xf6,0xbb, +0x43,0x85,0x0b,0x11,0x45,0x29,0x63,0xd9,0x66,0x2f,0x7c,0xdd,0x2f,0x3c,0xfb,0xd2, +0x63,0xe0,0x95,0xc3,0xee,0x38,0xab,0x24,0x3e,0x69,0xf6,0xa0,0x71,0x90,0x88,0xcf, +0x9c,0xed,0xc2,0xa5,0x01,0x2e,0x64,0x34,0x3f,0xca,0xe4,0xb6,0x31,0xd1,0x15,0xe3, +0xa4,0x29,0x05,0xa6,0x6d,0xb9,0x2e,0x43,0x4c,0xef,0xaf,0x27,0x71,0xf0,0xa6,0xff, +0x74,0x6f,0x35,0xf5,0xc2,0x9e,0xdd,0x2c,0xf6,0xec,0x8c,0x96,0xcf,0xde,0xed,0x22, +0xa0,0xc0,0xba,0x71,0xbd,0x92,0xf7,0x5f,0xc1,0x50,0xea,0x28,0x1a,0x57,0xe0,0x43, +0x0a,0x1a,0xec,0x3e,0xda,0xf6,0x4d,0x80,0x3f,0x5e,0x8c,0x07,0x51,0x34,0xd6,0xa3, +0x83,0xd6,0x95,0xb6,0xce,0xbf,0x54,0xf0,0xd2,0xfb,0xab,0x44,0x13,0xd5,0x6d,0xd5, +0x26,0x96,0xd7,0xd7,0x21,0x76,0xe8,0x19,0x4b,0x1a,0xe3,0x39,0xb1,0x88,0x3b,0xc7, +0xd0,0x89,0x97,0xbd,0x99,0xb9,0xd6,0x35,0xc7,0xf3,0x5a,0x4c,0x18,0x3a,0xc3,0x1c, +0x77,0x58,0xdc,0xdf,0xd2,0x5d,0x1c,0xe3,0x98,0x56,0xb6,0x2c,0xd8,0x15,0x34,0xa4, +0xae,0x52,0x08,0x7e,0x3c,0xb7,0x6f,0xad,0x15,0x18,0x1a,0xa3,0x07,0x7c,0xa2,0xf2, +0x34,0xae,0xb7,0x63,0x15,0x36,0xab,0xc2,0x4a,0xab,0x78,0x7d,0xeb,0x76,0x7c,0x3b, +0x25,0x67,0x9c,0xee,0x52,0x8f,0x24,0xe9,0x6c,0x5f,0xe8,0x44,0xf7,0x8a,0x95,0xef, +0x2d,0xc7,0x98,0x64,0xd0,0x59,0x9e,0x44,0x0d,0x46,0x21,0x8f,0x07,0x11,0xc0,0x32, +0xd5,0xc5,0xb9,0xcb,0xd9,0x6b,0x45,0xf4,0xd9,0x1a,0x47,0x9e,0xe1,0xfc,0x33,0xaa, +0xa8,0x14,0x5f,0x22,0x5a,0x5c,0x97,0x7d,0x9d,0x9c,0x38,0xd9,0x12,0x25,0x8b,0x86, +0x5a,0x1d,0x5f,0xee,0xae,0xed,0x0a,0x92,0xcd,0x82,0x70,0x6b,0x6d,0x7f,0xeb,0x96, +0x5b,0xee,0x10,0x27,0x3c,0xee,0xff,0x16,0x43,0x33,0xc7,0x4c,0x37,0x81,0xe1,0x9e, +0x14,0x88,0x0d,0x98,0x97,0xb2,0xf6,0x3e,0x3b,0x80,0x05,0x45,0xb4,0xe2,0x11,0xe9, +0x29,0x8e,0x93,0xff,0x67,0xec,0x62,0xb7,0x9b,0x33,0xc2,0xf0,0xe6,0xf7,0x28,0xbe, +0xd3,0x7f,0x43,0x29,0xb7,0xbf,0x60,0x46,0x4c,0xc7,0x47,0xcb,0x25,0xe4,0x17,0xd6, +0x50,0xaa,0xbf,0x67,0xb6,0x5a,0xb9,0x10,0x65,0xa8,0x07,0x89,0xb6,0x66,0x2f,0xae, +0xda,0x0b,0xd5,0xa1,0xb2,0x0b,0x63,0xfe,0xc0,0x15,0x61,0x14,0xc1,0x67,0x57,0x93, +0xa4,0xc5,0xd7,0xef,0xb9,0x78,0x38,0xf1,0x13,0x30,0x06,0x53,0xe4,0x63,0xdd,0x54, +0xfd,0x54,0x9c,0x53,0x7d,0x88,0xcd,0xae,0x12,0x0a,0x0a,0xb5,0x4e,0xa5,0xed,0x10, +0x0e,0xf9,0x90,0xed,0x2d,0xb2,0xc5,0xbe,0x13,0x31,0xaf,0x79,0x9f,0xa9,0xe3,0x96, +0x23,0xc8,0xfb,0x0b,0x34,0x56,0xf3,0xb6,0xb4,0x47,0xd0,0xef,0x9e,0x47,0x4b,0x19, +0xe6,0x86,0xca,0x79,0x62,0x06,0x44,0xbf,0x93,0x56,0xf3,0x2b,0x20,0x87,0x5c,0x8f, +0x2d,0x5c,0xb8,0x2e,0x62,0x03,0x4a,0xd8,0x46,0xee,0x4a,0xfd,0x30,0x41,0x6f,0xb2, +0x8f,0x42,0x94,0x59,0xbe,0xec,0xe9,0x8a,0x13,0xc2,0x82,0xf6,0xfa,0x64,0x3a,0x68, +0x2b,0x85,0x43,0xbf,0x36,0x7d,0x9b,0x5b,0x4c,0x1a,0x21,0x1f,0x5e,0x41,0x6a,0xad, +0x0d,0x5b,0x95,0xeb,0x33,0xa2,0xd3,0x5f,0x2e,0xc9,0xdb,0xec,0x7c,0xae,0xb7,0xb8, +0x5c,0x65,0xfd,0x93,0xe1,0xdc,0xc3,0xa7,0xa3,0x70,0xa2,0xc7,0xd7,0x7d,0xa4,0x5f, +0x23,0x63,0xd1,0x69,0x56,0xed,0x5e,0xaf,0x66,0x91,0x04,0xd6,0x25,0x5c,0xb4,0xbd, +0x9c,0xd0,0x61,0xd9,0xba,0xac,0x24,0xd0,0xd4,0xbe,0xec,0x1d,0x53,0xe2,0xef,0x17, +0xfb,0x22,0xbb,0xbf,0x5e,0xf7,0x21,0xd0,0xc1,0x6c,0x32,0xc7,0xfd,0xfa,0xe4,0x81, +0x9b,0xd6,0x1f,0x81,0xdf,0x97,0x2d,0xbb,0x60,0x07,0xb6,0x19,0x9f,0x25,0x01,0x56, +0x1a,0x5d,0xbc,0x48,0xdc,0xb6,0xbc,0xb7,0x8c,0x58,0xcc,0xc7,0x5d,0x5a,0x2f,0xc6, +0xa0,0xbf,0x02,0x34,0x9c,0x1b,0xa7,0x67,0x9b,0x6f,0x59,0x78,0xd2,0x7d,0xad,0xbf, +0xd3,0xd5,0x7d,0x72,0x40,0xdb,0x03,0xdb,0x84,0xed,0x5d,0x07,0x43,0x54,0x7c,0xfa, +0x44,0x89,0x9c,0x3e,0xb5,0x17,0xf6,0x73,0x3f,0xb6,0x34,0x2c,0xfd,0x9a,0x76,0xf3, +0x2b,0x6b,0x65,0xf9,0xe1,0x88,0x5c,0xbb,0x49,0xd8,0xc9,0xd8,0x5e,0xeb,0x5e,0xed, +0xcd,0xba,0x03,0xed,0x47,0xf8,0x88,0x39,0xec,0x07,0xed,0xae,0x5f,0xe1,0x2d,0x64, +0xab,0x69,0x6f,0xd2,0x84,0x64,0x6d,0xbf,0x64,0x59,0xdf,0xfd,0xf3,0xf6,0x2f,0xd8, +0x28,0x35,0xd8,0x77,0xe0,0x13,0x60,0xc2,0x85,0x98,0xa6,0x1d,0xf2,0xbd,0x0e,0xc4, +0xba,0x90,0x90,0x66,0x1b,0x48,0xda,0x98,0x4c,0x6d,0x80,0x43,0x9e,0xbc,0x24,0xb9, +0x45,0x8f,0xb0,0xbc,0xcc,0x68,0x4d,0x5b,0x63,0x71,0xc9,0x56,0x9e,0xde,0x90,0x3b, +0xbb,0xdd,0x26,0x23,0xbf,0x42,0x25,0x81,0x87,0xce,0xff,0xff,0xff,0xff,0x3a,0xf3, +0x34,0xaf,0xba,0xef,0xa3,0xd5,0x11,0x53,0x38,0x0f,0xe8,0x20,0xe9,0xe5,0x09,0xf6, +0x76,0xf5,0x0c,0x64,0x22,0x5f,0x66,0x1d,0xa0,0xe2,0xa6,0xd6,0x33,0x84,0x94,0xe9, +0x29,0x4d,0xd5,0x3b,0xb2,0x60,0x2f,0x08,0xa8,0x33,0x83,0x55,0x3b,0x26,0xd6,0x89, +0xbe,0x0b,0x32,0xf3,0x81,0xde,0x88,0xc2,0xf5,0x58,0xe7,0x32,0x70,0x3c,0x21,0x00, +0x06,0x4a,0x63,0xb2,0x92,0xa4,0x41,0xa7,0xff,0x06,0x8e,0x4c,0x46,0x26,0x58,0x6c, +0x01,0x1e,0x08,0xc1,0xa8,0x2d,0xb0,0xd0,0xc4,0x54,0x58,0x65,0x2b,0x98,0x97,0xe1, +0xec,0xa4,0x98,0x5b,0xf5,0x06,0x97,0x1e,0xc3,0x06,0xc2,0xec,0xf0,0x6b,0x64,0xd5, +0xcd,0x25,0xcf,0xbd,0x47,0xea,0xf5,0x99,0x54,0x0a,0xf3,0xf0,0x90,0x87,0xfb,0xf3, +0x0e,0xc2,0x7a,0x28,0x9d,0xcb,0xb5,0x5e,0xc5,0x2a,0x26,0x4e,0xd5,0xde,0x41,0xf0, +0xe0,0x44,0x1b,0xec,0xe6,0x66,0x52,0x90,0x4f,0xab,0x36,0xa3,0xb2,0xb8,0x41,0xf1, +0x54,0xb1,0xda,0x9e,0x3d,0x85,0xbf,0xad,0x86,0xd6,0xec,0x43,0x0a,0xd6,0x75,0x58, +0x99,0x46,0xb5,0x31,0x14,0x8d,0x7f,0xc9,0xc1,0x44,0xa4,0xa3,0x32,0xda,0x43,0xcc, +0x44,0x1d,0xda,0x48,0x9d,0x7d,0x30,0x79,0x58,0x01,0x82,0x0e,0x5e,0xcc,0x42,0x59, +0x2f,0x63,0xf4,0x84,0x73,0x20,0x4a,0x44,0x32,0x4e,0xba,0x3d,0xe0,0x60,0xaf,0xcd, +0xca,0x9e,0x18,0x6e,0xe5,0x27,0x31,0x69,0xcb,0xd7,0x40,0xbe,0xea,0x13,0xdb,0x1e, +0xaf,0x43,0x36,0x2e,0x84,0x4c,0x4c,0x51,0xf8,0x89,0x91,0x83,0x78,0x69,0x91,0xb1, +0x81,0xef,0xfa,0xb9,0xec,0x33,0x6a,0xa6,0x03,0xf6,0x52,0x17,0xd1,0xef,0x20,0xe3, +0x19,0x6e,0xbb,0xb8,0x37,0xbb,0x22,0x7c,0x09,0x0b,0x30,0x31,0x86,0xcc,0x3b,0xad, +0xa6,0xf0,0x5e,0xb2,0xcf,0x3b,0x46,0x9a,0x64,0xcd,0x21,0xc7,0x0b,0xef,0xd4,0x91, +0xda,0x16,0xe6,0xe7,0x0a,0x9e,0xe0,0x35,0xfa,0x6c,0x59,0x4a,0x7c,0xde,0x9b,0xc5, +0x24,0xe5,0xfc,0x94,0x36,0x3b,0x1c,0xb4,0x05,0x14,0xaa,0xcd,0xf2,0x84,0x93,0xd4, +0x25,0xe4,0x86,0x2f,0x90,0x33,0xe4,0x1e,0x73,0x18,0xdd,0xb4,0x3b,0xde,0x54,0x45, +0x81,0x16,0xa5,0x84,0x45,0x3b,0x75,0xa5,0xd1,0x90,0xeb,0xdc,0x7f,0xf0,0x5c,0x16, +0x90,0x49,0xc1,0x2e,0x12,0xbf,0xa0,0x09,0xe3,0xec,0xc8,0xf4,0x73,0x17,0x5d,0xa6, +0x2e,0xc9,0x4f,0xbc,0xcf,0xc7,0x36,0x28,0x5b,0xac,0x85,0x33,0x91,0x09,0xc8,0x2b, +0xdc,0x16,0x94,0x8f,0x1b,0x7d,0x35,0xf8,0x25,0x1b,0x48,0x4c,0x5b,0xd8,0x16,0xfa, +0x98,0x58,0xba,0xca,0x66,0x30,0xad,0x6e,0xee,0xb8,0x74,0x6d,0xfc,0x34,0xbb,0xe6, +0x0a,0xb6,0xa9,0xa0,0x35,0x90,0xd9,0x3a,0x48,0xd3,0x0e,0x39,0xb7,0xdd,0xfe,0x5a, +0x22,0x0e,0x46,0x2e,0x51,0x2d,0xd6,0x17,0xbf,0x01,0x88,0xc5,0x85,0xd1,0xce,0xb9, +0x3b,0x06,0xde,0xbe,0x3f,0x9d,0xf2,0x10,0xce,0x1f,0xd6,0xe0,0x9a,0xd2,0xff,0x5b, +0xaa,0x14,0x46,0x49,0xca,0x0c,0xfc,0x6d,0xee,0x4f,0xc4,0xaa,0x38,0x6e,0xad,0xbf, +0x5c,0x0f,0x5a,0xa2,0x7a,0x5d,0x9d,0x07,0xe8,0x4e,0x4e,0x8e,0x8f,0xf9,0x5e,0x46, +0x3b,0x89,0xed,0x46,0x1c,0xe1,0x0e,0x0a,0x8c,0x9a,0xe0,0x51,0x48,0x8c,0xf3,0x25, +0x03,0x72,0xbb,0x65,0x02,0x20,0xe8,0xc1,0x6b,0x60,0x2b,0x44,0x9f,0x50,0xf8,0x34, +0xfb,0x8b,0x9b,0xf4,0xa8,0x0d,0x49,0x11,0x0c,0xcd,0x8b,0xb4,0xa0,0x4d,0xd8,0x60, +0x92,0x02,0x52,0xfc,0x5d,0xf2,0x01,0xc8,0x2c,0x80,0xc7,0x0e,0x3c,0x32,0x71,0x04, +0x3a,0xc8,0x19,0x34,0xed,0xe4,0xc8,0x9c,0x56,0x89,0xfc,0x9d,0xf7,0x6e,0xe6,0x97, +0x01,0xdd,0x7d,0xa5,0x67,0x0a,0xfc,0xf6,0x4f,0xe9,0x54,0xe4,0x47,0xed,0xf0,0x05, +0xa4,0xc4,0x2b,0xd7,0x77,0x09,0x8e,0x9b,0xc6,0x7d,0x0a,0x85,0x3f,0x97,0x17,0xd7, +0xb7,0x87,0xfe,0xa4,0xe3,0xa1,0x3e,0xf7,0xc3,0xd6,0x7c,0x04,0xaf,0x61,0xd9,0xf9, +0x34,0x05,0xda,0x3c,0x77,0xa7,0xe6,0xd0,0x2f,0x57,0xa4,0x16,0xb7,0x79,0x86,0x89, +0x16,0x81,0xd4,0x18,0xf4,0xa6,0x4f,0x82,0xb1,0x8d,0xc4,0x13,0x45,0xed,0x5d,0x23, +0x65,0x9b,0x23,0x3d,0xfc,0x30,0x24,0xd8,0x48,0x41,0x8d,0x16,0xb6,0x9b,0xab,0x1a, +0x68,0x26,0xf9,0x00,0x61,0xef,0xc0,0xcb,0xec,0x7a,0x5b,0x4c,0xe9,0xa9,0x5c,0x37, +0x83,0x0a,0x6a,0x0b,0xbf,0x26,0x9e,0x82,0xeb,0x8e,0xf3,0x2e,0x16,0x47,0x79,0xdf, +0x2f,0x5c,0x13,0x3c,0x5c,0x12,0x5a,0x36,0x7c,0x19,0xc4,0x53,0xd2,0x6b,0xe7,0x8b, +0xc8,0x8d,0x18,0xad,0x1c,0x86,0xb1,0x95,0xcf,0x8e,0xe6,0x6b,0x5e,0x9c,0x2b,0x7b, +0x9f,0x3f,0x93,0xdd,0x96,0x90,0xc1,0x3c,0x0d,0x8f,0xfa,0x3f,0x97,0x62,0x31,0x79, +0x57,0x90,0xdc,0x82,0x8d,0xf2,0xb4,0x40,0x2c,0xc1,0x8c,0x14,0x78,0x90,0xfc,0x6f, +0x85,0x4a,0x18,0xf4,0xca,0x1a,0xe3,0x2a,0x9d,0xeb,0x83,0x25,0x05,0x5e,0xf8,0xbb, +0xcf,0x9a,0xa7,0xdc,0x15,0x6d,0x31,0x17,0x93,0x26,0x05,0x12,0xd0,0x9e,0x9c,0x17, +0xae,0xe8,0xd5,0x93,0x0c,0x36,0x66,0xb3,0xe3,0x79,0x2e,0xcd,0x3f,0x82,0xdc,0x3d, +0x15,0xb9,0xae,0xd3,0x16,0xb9,0x2f,0xe2,0x1d,0x54,0xf5,0xa6,0x6a,0x5f,0x91,0x15, +0x21,0x77,0xfd,0xb9,0xb5,0x9d,0xc5,0xac,0x61,0x95,0xa2,0xdf,0x88,0x5e,0xdd,0x2d, +0xb6,0xdb,0x65,0xd6,0xc6,0x18,0xda,0x8c,0x3b,0x0a,0x64,0xe2,0x76,0x36,0xd2,0x93, +0xeb,0x94,0x90,0xb5,0xf4,0x08,0x6c,0xb4,0xd4,0x49,0x6c,0x08,0x1e,0xc6,0x8a,0x62, +0x89,0xd5,0xb4,0xee,0xd7,0xfc,0xf6,0xb5,0x46,0x0c,0xc8,0x97,0xf3,0x55,0xee,0x0f, +0x25,0x93,0xd0,0x99,0x9c,0x26,0xad,0x84,0x72,0x2c,0x71,0xce,0xfd,0xe6,0x41,0xb2, +0x45,0x0b,0x99,0x6d,0xde,0x5f,0x67,0xb0,0x90,0x4e,0x24,0x3c,0xdd,0x57,0xa9,0xe8, +0xdd,0xd4,0x1b,0xfd,0x46,0x10,0x74,0x3f,0xa3,0xc6,0x81,0x86,0x9c,0xff,0x77,0x46, +0xa9,0xed,0x9e,0xac,0x7f,0x9c,0xb6,0x7e,0x99,0xd6,0xec,0xea,0x5f,0x7c,0xd9,0xba, +0x5c,0x9d,0xd6,0x0e,0xc4,0xb2,0x76,0xe6,0xe8,0xcc,0x9e,0xbf,0xc4,0xf0,0x47,0x5f, +0x5a,0x64,0x9f,0x4d,0xb7,0x01,0xb3,0x6f,0xa0,0xe1,0xc9,0xc6,0xdd,0x1e,0x30,0xdf, +0xa9,0xdf,0xd7,0x8f,0xb7,0xb0,0x97,0xc7,0x0e,0xc4,0xf5,0xfb,0x5c,0x52,0x91,0xf2, +0x21,0xe0,0xbd,0x44,0x52,0x62,0xd0,0x2c,0xf9,0x48,0xb6,0x42,0xbb,0xc3,0x02,0x14, +0xa2,0xac,0x48,0x0c,0x33,0x63,0xd8,0x28,0x63,0x03,0x34,0x47,0x37,0xc7,0x61,0x40, +0x7b,0x0f,0x04,0x0e,0x5a,0x2d,0xd1,0xa5,0x90,0xde,0x90,0x43,0x3b,0xa1,0x1c,0xa3, +0x7e,0x63,0x08,0x33,0x97,0x53,0x98,0x17,0xc7,0x33,0x49,0xc6,0xb7,0xce,0x16,0x7e, +0x2c,0xf1,0xa1,0xe4,0xc4,0x9b,0xf3,0x56,0x9e,0xa1,0x67,0x16,0xb9,0xf5,0xfb,0xe5, +0xff,0x16,0xb6,0xfd,0xfa,0x36,0x6a,0x74,0xc6,0x53,0xa0,0xf0,0x40,0x1b,0x13,0xc5, +0xd2,0x53,0xff,0xec,0xfa,0xd1,0x0f,0x52,0xc6,0xed,0xb1,0x25,0xc3,0xeb,0x32,0xaa, +0x85,0x47,0x9f,0xeb,0x78,0x34,0xf8,0x6b,0x5f,0xf3,0x87,0xcd,0xc3,0x18,0xdd,0xf7, +0x2c,0xa5,0xc3,0x4c,0x58,0xb4,0x53,0x68,0x08,0xd4,0xc4,0xbf,0x72,0xc7,0x9a,0xe5, +0x68,0x4b,0x0d,0x19,0x66,0x09,0x4d,0x7f,0x93,0x41,0xb3,0xc3,0xb8,0xca,0x92,0x38, +0xb0,0xf5,0x89,0x05,0x49,0xbd,0x19,0x28,0x19,0xe7,0xc5,0x5e,0xba,0xeb,0x44,0x4d, +0x0b,0x43,0x1b,0x04,0x60,0xa2,0x9c,0x42,0x36,0x09,0x4f,0xc3,0x54,0x96,0x2f,0x36, +0x8b,0x01,0xfc,0xf9,0x70,0x9b,0x0c,0x67,0x04,0x02,0x0b,0x2e,0xa1,0xf7,0x1c,0x67, +0x6d,0x4f,0x9c,0xe6,0xf0,0xee,0x60,0x8b,0x8d,0xe2,0xd3,0x85,0x4b,0xf6,0xfc,0x0b, +0x2b,0xdb,0xbd,0xf8,0x73,0xed,0x32,0xc9,0x1c,0xf1,0xb0,0x92,0xdc,0x4e,0x48,0x77, +0x08,0x02,0x7c,0xf4,0x6f,0x3c,0xbd,0x88,0x01,0x5f,0xdb,0x80,0xdb,0xb4,0x0c,0x9f, +0x29,0x52,0xa4,0x00,0x03,0x98,0x3f,0xdb,0x08,0xc3,0xaa,0x14,0xba,0xb3,0xcc,0x88, +0x41,0xa5,0x34,0x67,0x03,0x37,0xb0,0xcf,0xab,0x6b,0x94,0xac,0x98,0xb2,0x06,0xb1, +0x7c,0x81,0x3d,0x76,0xde,0x22,0xea,0xd3,0xce,0x8d,0xab,0x00,0x3a,0xd1,0x5a,0xfe, +0x80,0x91,0xad,0x4d,0xb7,0x43,0x47,0xb3,0x52,0x8a,0x8f,0x4a,0x1a,0xf0,0x26,0xde, +0xf4,0xe0,0xbb,0x26,0xb0,0x1c,0xd0,0x26,0xf0,0x57,0xdc,0x53,0x93,0x7b,0x2f,0xd4, +0xdf,0x51,0xb4,0x56,0x30,0x93,0x09,0xe3,0x95,0x46,0xbc,0xb4,0x7d,0x78,0xa2,0x32, +0x78,0xbd,0x61,0xa7,0xf3,0x16,0xb6,0x1a,0x2a,0xa1,0xb5,0xa5,0x4c,0x79,0xfe,0xd6, +0x77,0xd2,0xf5,0x26,0x8f,0x9a,0x7b,0x4a,0x8d,0xf3,0x97,0x2a,0x50,0x7a,0xb5,0x34, +0xd4,0xeb,0xf3,0x7d,0x9b,0x39,0x77,0x68,0x74,0x1a,0xa8,0x1d,0x1a,0x87,0xce,0x9c, +0x19,0x75,0xf0,0x38,0x9d,0xf9,0x3c,0x3c,0x7d,0x64,0xcc,0x2f,0x5b,0xd4,0x5c,0x89, +0xd3,0x7a,0xb5,0x9e,0x1b,0x19,0x14,0x1c,0xee,0x0a,0xe9,0x08,0x75,0xd7,0x35,0x06, +0x42,0xe8,0xb5,0x38,0xc0,0x32,0x17,0x3d,0xef,0xcb,0x4b,0x2e,0x85,0x71,0xe1,0xff, +0x41,0xb9,0x57,0x8b,0x34,0x35,0x25,0x5c,0xa2,0xdf,0x9c,0x53,0xd9,0x7a,0xe6,0x52, +0xbf,0x89,0x5f,0x0c,0x33,0x92,0x64,0x0b,0xa1,0xf6,0x20,0x1e,0x10,0x99,0xc7,0x38, +0x4a,0x5e,0x03,0xbe,0x86,0x97,0xb5,0xfa,0x80,0xb8,0xdb,0xea,0x5b,0xf4,0xea,0xc2, +0xc0,0x6b,0xdc,0xae,0x8f,0xb5,0x3d,0xfd,0x17,0x1b,0xdb,0x7f,0xf8,0xf9,0xe6,0x60, +0xfb,0x0c,0xa2,0x66,0x10,0x84,0xb5,0xa0,0x86,0xc0,0xd6,0x86,0xa1,0x46,0xf9,0x0d, +0x3b,0xfd,0x83,0x69,0xc4,0x1c,0xb9,0x59,0x44,0x63,0x6a,0x06,0xc4,0x1e,0x6b,0x1e, +0xa0,0x56,0xb8,0xfa,0x94,0xe3,0xf1,0x2f,0x04,0x80,0x26,0x67,0xd2,0x4f,0x16,0x5c, +0x4d,0x79,0xb1,0x87,0xa6,0xbb,0x06,0xb7,0xd9,0x17,0x83,0x86,0xbf,0x3c,0x9f,0x80, +0xa7,0x5b,0xd7,0xf3,0xe5,0xaa,0x0e,0xf0,0xba,0x80,0xd8,0xe2,0x4f,0x17,0x84,0xd2, +0xfb,0xa5,0x4f,0x7a,0x95,0xaf,0xdf,0xed,0xac,0x73,0xfe,0x4e,0xbe,0x74,0xa1,0x46, +0xe7,0xc7,0x89,0xc1,0x6a,0xe7,0xc2,0x64,0x12,0x10,0x4e,0x3b,0xf7,0xc4,0xc5,0x11, +0x04,0x53,0x0f,0x35,0x75,0xf2,0x27,0xe9,0xc3,0x13,0x55,0xe5,0xdb,0xef,0xf1,0x19, +0x2d,0x7b,0x1a,0xfd,0x72,0xb8,0x50,0x2a,0x4a,0x58,0x5e,0x5d,0x3e,0x1e,0x71,0x1a, +0x76,0xc9,0x8a,0xd3,0x1b,0xd9,0xfa,0x37,0x5f,0xc1,0x38,0xce,0x16,0x78,0x90,0xd6, +0x70,0x83,0x1b,0xfc,0xae,0xac,0x63,0xaf,0xd8,0x8f,0x8d,0x8a,0x0a,0xe2,0xeb,0x1f, +0xbd,0x5f,0xde,0xee,0x3e,0xa9,0x39,0x61,0x8c,0x8b,0xc2,0x4d,0x7a,0x87,0x30,0x55, +0x64,0x38,0x63,0xcc,0x1d,0x2a,0xc0,0x75,0xa2,0x63,0x1e,0xec,0x57,0x01,0x14,0xcc, +0xe4,0x6b,0x75,0x3e,0x4b,0xab,0xd2,0xf0,0xdb,0x59,0x01,0xfc,0x5c,0x6b,0xc3,0x51, +0x02,0x03,0xdb,0xb0,0x32,0xa3,0x45,0x9a,0x2e,0x8e,0xa9,0x95,0x7d,0xea,0x35,0xc8, +0x9f,0x20,0xe7,0xd8,0x3e,0x25,0xde,0x60,0xa4,0xbb,0xc5,0x53,0x7c,0xe9,0x1e,0x1c, +0xcf,0x43,0xe0,0xfc,0x5c,0xbd,0xe2,0x26,0x34,0xd3,0x36,0xb5,0x08,0x93,0x13,0xa3, +0x5f,0x6e,0x96,0x26,0xbc,0xf3,0xb9,0x3a,0x64,0x51,0x82,0x06,0xbf,0xf2,0x7a,0x82, +0x45,0x0d,0xb7,0xfe,0x5f,0xf6,0xf5,0xaf,0x40,0x90,0x93,0x07,0x96,0x9e,0x17,0x36, +0x52,0xff,0xae,0xb5,0x86,0x57,0x16,0xe3,0xa5,0x4f,0xc3,0x07,0x1c,0x90,0x20,0x04, +0xb4,0x97,0xe0,0x39,0xdf,0xc5,0xc7,0xe5,0xb2,0x02,0xcc,0x54,0x89,0x3b,0x8e,0xc1, +0x4d,0x73,0xd2,0xfa,0x5f,0xb8,0xfc,0x03,0xb5,0x95,0xb4,0x65,0x9e,0x84,0x86,0x38, +0x6e,0x15,0xaf,0x39,0x36,0x46,0xd2,0x7c,0x8d,0x60,0x35,0xbb,0x6d,0xf0,0x57,0x20, +0x6d,0x3c,0x12,0xa6,0x8b,0x3d,0xde,0xc5,0x3b,0x32,0x85,0x75,0xf4,0x71,0x99,0x19, +0x3b,0x13,0x86,0x93,0xcd,0x19,0x08,0x12,0xe1,0x6e,0xd0,0x93,0x97,0x9b,0x66,0x97, +0x2b,0x09,0x0e,0xec,0x5f,0x95,0x1b,0x29,0xce,0x9b,0xee,0x4d,0x1b,0x54,0x07,0x61, +0xd9,0x8c,0x9f,0xbf,0xe1,0x15,0x3f,0xb2,0xea,0xaa,0x1b,0xdc,0x9a,0x5c,0x04,0x1f, +0xb9,0x1f,0x6f,0x87,0x1d,0xa0,0xbe,0xa9,0xeb,0x8b,0xe9,0x2c,0x81,0x54,0x04,0xce, +0xd2,0xd8,0x66,0x3d,0x4e,0x11,0x28,0xd9,0x6a,0x77,0x8e,0x6c,0x7f,0xe4,0xc9,0x45, +0x44,0x2b,0x90,0xf3,0xd6,0x2c,0xdf,0xe0,0xf3,0x69,0x56,0x5d,0x00,0x3d,0xd4,0xcc, +0x7a,0x48,0x72,0x1f,0xb6,0x46,0x45,0xef,0x6b,0xc8,0xad,0xee,0x5d,0xbf,0xef,0x2a, +0x7d,0xdf,0xf7,0x36,0xb9,0x45,0x21,0xf4,0xa9,0x91,0x3f,0x26,0x3d,0xbe,0x50,0x0d, +0x7b,0x4c,0xd9,0xab,0xb5,0x81,0x70,0x3e,0x62,0x4d,0x91,0x26,0x54,0x0c,0x58,0x80, +0x7d,0xba,0x30,0xef,0x22,0x56,0x40,0xb1,0x72,0x2b,0x9f,0x8f,0x11,0x24,0x43,0x85, +0xab,0xdc,0x9d,0xe3,0xa3,0x85,0x09,0x5c,0x29,0x28,0x45,0xef,0x23,0x5d,0x0a,0xe9, +0x81,0xf8,0x31,0x52,0x4b,0x2b,0xa1,0xd1,0x91,0x42,0xf9,0x37,0x84,0x6e,0xe1,0xe0, +0x9e,0x27,0xb9,0x22,0xf9,0x55,0xe9,0xfa,0x43,0xf5,0xe8,0x9f,0xdf,0x99,0x19,0xd2, +0x83,0x4a,0x8e,0x79,0xfa,0x54,0xbb,0x8a,0xce,0xe8,0x75,0x0b,0xce,0x3a,0x6c,0x3e, +0x1b,0x4a,0x8b,0x58,0xb3,0xe5,0x6b,0xfe,0x39,0xcb,0xb6,0x9a,0x27,0xf0,0x71,0xa0, +0x20,0x57,0x83,0x48,0xb2,0xe5,0xce,0xea,0x32,0xce,0xee,0x4c,0x23,0xf6,0xdb,0xf4, +0x88,0x4a,0x83,0x7e,0xbf,0x38,0x86,0x21,0x6a,0x59,0x56,0xa9,0x1b,0x9b,0x8f,0x8f, +0x36,0xd6,0x5e,0xa3,0xe6,0xc9,0x4a,0x98,0x51,0x4f,0xe7,0x57,0x2d,0xb6,0x4d,0x8d, +0x7d,0x48,0x7b,0x05,0x3f,0x66,0x91,0x09,0xf4,0x2a,0x83,0x4f,0xdc,0xe7,0xcb,0xb9, +0x6e,0x65,0xb1,0xe3,0xaa,0x5c,0xb8,0x78,0x68,0x4d,0x83,0x2c,0x56,0xed,0x70,0xb7, +0xfe,0x03,0x92,0x69,0x1e,0x05,0x72,0x82,0xa3,0x9d,0x65,0x45,0x5c,0x4f,0x72,0xa2, +0x86,0x90,0xdf,0xd8,0x6e,0x58,0x1b,0x90,0x83,0x00,0x0c,0x78,0x72,0x71,0x7e,0xcd, +0xf0,0x70,0xae,0x3f,0x61,0xdb,0x49,0x6b,0x58,0x44,0xa8,0xeb,0xb4,0x6d,0x51,0x5b, +0x49,0x6b,0xab,0x1a,0xaa,0x22,0x20,0x71,0x6e,0xf0,0xc7,0xba,0xdd,0xdc,0x00,0x73, +0xa2,0xc4,0xbf,0x43,0xee,0x38,0xd4,0x69,0x77,0xab,0x6c,0x4c,0x8a,0x3d,0x54,0x80, +0x8d,0x1c,0xd5,0x33,0x94,0x6e,0x7c,0x87,0x40,0xda,0xdd,0x52,0x61,0x3c,0xab,0xe3, +0xc1,0xca,0x01,0xff,0x6e,0x4d,0x91,0x25,0x9c,0x43,0x0e,0xc5,0xbe,0xff,0x17,0x83, +0x80,0xc3,0x30,0x52,0x27,0x39,0x36,0x53,0x82,0xb8,0x62,0x72,0x33,0x73,0x79,0x44, +0x54,0x14,0x8e,0x26,0x11,0x74,0x37,0xa0,0x4c,0xd9,0x2b,0x9a,0xff,0x82,0x56,0xd2, +0xe1,0x71,0x0c,0xa8,0x65,0xc1,0xa7,0xb7,0x8a,0x76,0x83,0xf5,0x8f,0x44,0x7d,0x3b, +0x2f,0x8b,0xd9,0x0e,0x4e,0x07,0xb2,0x1e,0x03,0x80,0xdd,0xe1,0x72,0x06,0x05,0xe1, +0x4a,0x34,0x5c,0x51,0xac,0x2a,0xba,0x8f,0x82,0x53,0x1d,0x89,0x4f,0xd7,0x66,0x96, +0xb9,0x15,0x01,0x7c,0x30,0x24,0xd6,0xa5,0xba,0x23,0x9e,0xb9,0x85,0xfe,0x6e,0x86, +0xe4,0x14,0x0e,0xdb,0x17,0x27,0x1a,0x3c,0x22,0xac,0x4e,0x54,0x83,0xa4,0x05,0x6b, +0x8b,0xda,0xb8,0xc7,0xa8,0x3e,0x6c,0x45,0x14,0xa1,0x90,0x6d,0xfc,0x34,0x0d,0x7b, +0x2b,0xcf,0xf4,0x63,0x39,0x2a,0x25,0x3b,0x3d,0x58,0x67,0x99,0xca,0xec,0xa1,0xb6, +0x4b,0x18,0x06,0x70,0x6e,0xb7,0x2f,0x9b,0x48,0xd5,0x1a,0xee,0x3e,0x3e,0x6e,0x52, +0x2a,0xdf,0xd8,0xf1,0xd0,0x4c,0x07,0xef,0xce,0x82,0xa6,0x0c,0x1a,0xdc,0x3e,0xba, +0x88,0x97,0x38,0x2f,0xd9,0x31,0x77,0x63,0xe9,0x8c,0x04,0xf1,0x13,0x4f,0x72,0x5d, +0xdd,0x1f,0x85,0x3f,0x98,0x04,0x5e,0x9f,0x14,0x62,0xca,0x17,0x12,0x0e,0x40,0x1c, +0x95,0x8d,0x58,0x04,0x2d,0x57,0x93,0x1f,0xe7,0x81,0xb3,0x66,0x44,0x6d,0x86,0x70, +0xc7,0x59,0x88,0x72,0x62,0x71,0x60,0x7f,0xc7,0x15,0x03,0x34,0x49,0xfa,0x43,0x23, +0x06,0x56,0x5a,0x17,0xe3,0x12,0x0f,0x42,0xa5,0xe2,0xe8,0x9d,0x73,0xf2,0x21,0x06, +0xe6,0x5b,0x93,0xec,0xf6,0x53,0xae,0x51,0x87,0xcc,0xce,0x51,0x2a,0x8d,0x28,0xde, +0xef,0x75,0xe2,0xa4,0x5e,0xce,0x4d,0xe6,0x3c,0xba,0xda,0xe2,0x20,0x25,0x11,0x21, +0x73,0x0c,0xfe,0x7f,0xfc,0xe1,0x00,0xf0,0xca,0xfc,0xc5,0xf2,0x21,0x24,0x86,0x3d, +0xe7,0x82,0xfd,0x8c,0xf5,0x9c,0x4a,0x81,0x6a,0x7b,0xb9,0x6f,0xd0,0x55,0x49,0xd9, +0x86,0x85,0xd3,0xe7,0x1a,0x08,0x41,0x93,0xc3,0x89,0xf1,0x46,0x23,0xfd,0x5a,0x2d, +0x6f,0x0c,0xb5,0xfd,0x98,0x25,0x6a,0x6f,0xb7,0x53,0xd0,0x36,0x5d,0x28,0xae,0xfc, +0x0b,0xf9,0x92,0xe4,0x3c,0x31,0x77,0xf6,0x36,0xc9,0x6a,0x1a,0xa0,0xe2,0x5b,0xe3, +0xdc,0x01,0xf1,0x4d,0x77,0xce,0x53,0xd6,0xc4,0x88,0x89,0xa7,0x7b,0xa6,0x99,0xbb, +0x91,0xcb,0x07,0x60,0x4f,0xd4,0x60,0x19,0xb2,0xeb,0xb9,0xd7,0x27,0x36,0x5f,0xce, +0x74,0xf2,0x46,0x3c,0xbd,0x27,0x23,0x82,0xde,0x8e,0xc5,0xa7,0xdc,0x80,0x0a,0x08, +0x67,0x80,0x39,0xc2,0xfe,0xa2,0x7a,0x18,0xf8,0xa8,0x34,0xb9,0x8d,0xe5,0x59,0xa9, +0x22,0x81,0x68,0x7e,0xa6,0xec,0xa0,0x0e,0xc8,0x1d,0xe8,0x0d,0x2d,0x43,0x33,0x5f, +0x08,0x9c,0xf7,0x94,0x76,0xde,0x43,0xbc,0x15,0x92,0xfe,0x04,0x9d,0x79,0x8a,0xe0, +0xdb,0xf5,0xc4,0xc4,0x20,0xbd,0x4c,0x64,0x78,0xcb,0x0c,0x86,0x99,0x90,0xca,0x7f, +0x92,0xd3,0x97,0x51,0xa3,0xb9,0x67,0x50,0xe7,0x05,0xcf,0xd0,0x8a,0x9f,0x1d,0xdc, +0xa2,0xe2,0x5c,0xc0,0x66,0xcd,0x36,0x45,0x66,0x06,0x0d,0xb7,0x53,0xe9,0x7d,0x65, +0x27,0x47,0xab,0xf5,0x0a,0x2e,0x10,0x51,0xd6,0xc1,0xdf,0xb3,0xf4,0x83,0x5e,0x20, +0x8a,0x9b,0xf4,0xe3,0x08,0xb2,0xb4,0x5e,0x66,0x09,0x0c,0xf7,0x4e,0x59,0x34,0xda, +0xa5,0x19,0xba,0x52,0x4d,0x39,0x1c,0xb5,0x24,0xd8,0xb4,0xf2,0x7e,0x6a,0x05,0x85, +0xea,0x9b,0xc5,0x21,0x17,0xbf,0x0d,0xc4,0x1b,0xd9,0xe0,0xa0,0x34,0x06,0xff,0xb1, +0x84,0xd7,0xd5,0x2d,0x1b,0xba,0x25,0xfb,0x65,0x5b,0x6d,0xd7,0xb7,0xb7,0x55,0xe8, +0xd3,0xda,0x43,0x61,0x0f,0xdf,0x8e,0x28,0xb8,0x4f,0x09,0xfe,0xfc,0xb7,0xee,0x47, +0x7d,0x62,0xcd,0x5e,0x65,0x32,0xe1,0xbb,0x6b,0x73,0xe8,0xf8,0x5b,0xb8,0xad,0xe9, +0xd3,0xba,0x1f,0x75,0x01,0xd4,0x4f,0x8f,0xdb,0x2f,0x8a,0xcf,0xf8,0xb4,0xaf,0x9f, +0xd1,0x8a,0xab,0xd5,0x44,0xa7,0x88,0x9f,0x0c,0xe4,0x9c,0x83,0x25,0x0a,0x8e,0x62, +0x1d,0x58,0x99,0x89,0xc3,0x0a,0xe4,0x88,0x4d,0x9c,0xd2,0x34,0x5c,0xcc,0x39,0x15, +0x8e,0xc2,0x90,0xe6,0x39,0x0e,0xee,0x88,0x84,0xec,0x9e,0xa1,0xdc,0xf0,0xa7,0x77, +0x83,0xdc,0x99,0xf6,0x4b,0x28,0x9f,0x43,0x4a,0xcd,0x35,0x4f,0xb6,0x9c,0xdb,0xb9, +0x20,0x29,0xd2,0xbd,0x4c,0xda,0x25,0x8b,0x87,0xee,0x8d,0xfa,0xf3,0x91,0x20,0x01, +0x8d,0x08,0xe9,0x77,0x64,0x23,0x70,0x64,0xc0,0x4d,0x28,0x34,0xf7,0x0e,0x0d,0x56, +0x49,0x1a,0xee,0x29,0xfa,0xd0,0x5c,0x56,0x20,0x61,0xa6,0xf5,0x30,0x65,0x81,0x02, +0x53,0x4e,0x3f,0x9c,0x1d,0xaf,0x1b,0x23,0x63,0x59,0xaf,0x84,0x1a,0x28,0x99,0x77, +0xa0,0x43,0xb3,0x86,0xe5,0x8c,0x41,0x98,0x43,0x4b,0xe0,0x46,0xf3,0xea,0x32,0x48, +0x02,0x0c,0x1e,0x9f,0x6d,0x64,0xc6,0xbe,0x43,0x86,0x01,0xe6,0xd2,0xac,0x9a,0x49, +0x6b,0x08,0xae,0xd6,0x93,0xdc,0x4e,0xd1,0xa8,0x66,0xf8,0x34,0xf0,0x61,0xc1,0x02, +0x14,0x00,0x01,0x78,0xa2,0x0b,0x57,0x58,0xa1,0x99,0x8b,0x9a,0x71,0x60,0x95,0x12, +0xd9,0x2b,0xf1,0xb5,0xc7,0x8a,0x03,0x8e,0xa9,0x44,0xd8,0x84,0xaa,0x73,0x26,0xd2, +0x2a,0xea,0x11,0xcb,0xf1,0xd9,0x3a,0x4a,0xbf,0x2d,0xb2,0xa6,0x59,0x18,0x32,0xaa, +0x05,0x69,0x4a,0xc5,0xe0,0x21,0xec,0x4a,0xea,0x4f,0xce,0xf8,0x6a,0xcf,0x47,0x8b, +0x55,0x05,0xe5,0xac,0x71,0x29,0x2b,0xd6,0x4a,0x42,0xb5,0x8d,0xd3,0xce,0xe7,0x1b, +0x81,0x67,0x09,0x0e,0xed,0x28,0x13,0x8b,0x68,0xd4,0xa5,0x99,0x7e,0xc0,0xd4,0x0b, +0x68,0x20,0x4d,0xfe,0x1e,0x1c,0x2c,0xc8,0xa3,0x9d,0xf2,0x69,0x31,0xd5,0xd6,0x1b, +0x68,0x21,0x6c,0xbe,0xf8,0x48,0x42,0xf5,0x4d,0xac,0xcf,0x1c,0x43,0x6b,0x4f,0x0a, +0xc1,0x22,0xa3,0x4f,0xea,0xa5,0x4b,0xf4,0x23,0xbf,0xf6,0x1e,0xa3,0xc7,0xe9,0xdd, +0xe7,0x03,0xb3,0xd9,0x82,0x00,0xe5,0x1b,0x29,0x6f,0xfb,0x45,0x32,0xd6,0xec,0x84, +0xa5,0x90,0xfc,0x80,0x36,0xb0,0x6c,0xd2,0x9b,0xaf,0xea,0x9d,0x85,0xd3,0x88,0x72, +0xa3,0x59,0xb4,0x6b,0xf9,0x80,0xd9,0x94,0x88,0xf8,0x4c,0xb7,0x90,0x30,0x65,0xc5, +0xe7,0x99,0xaa,0xe7,0x47,0x57,0xd5,0xfc,0x00,0x1e,0x86,0x56,0x80,0xd2,0xc4,0x73, +0x23,0x5b,0x2d,0x86,0xc1,0x57,0x45,0xb4,0xe7,0x89,0xa3,0x69,0xd2,0x33,0x53,0x44, +0x4e,0xb1,0xfc,0x94,0x36,0x3b,0x6c,0x52,0x32,0x54,0x64,0x93,0x7c,0xab,0x32,0x71, +0xd6,0xb6,0x5b,0x36,0xb1,0x31,0x3c,0x44,0xb6,0xf4,0x75,0x8a,0xe6,0x80,0xbe,0xbe, +0xca,0x35,0xfd,0x37,0x30,0x32,0x5d,0xe5,0x4b,0xf0,0x61,0x87,0xfc,0x09,0x1d,0x22, +0x81,0xba,0x94,0xb7,0x4c,0x33,0x65,0x14,0x6a,0x9a,0x8b,0x8a,0xdd,0xd1,0x1e,0x78, +0x57,0x17,0xbe,0x76,0x94,0x35,0xcf,0x2c,0x27,0x38,0xba,0x07,0x7e,0x82,0x6e,0xdc, +0x26,0x14,0x5d,0x6f,0x4d,0x57,0x1f,0x5a,0xec,0xd9,0xca,0xcf,0x6e,0x06,0xb3,0x79, +0x57,0x15,0x10,0x7e,0xc4,0xa7,0x77,0xe9,0x27,0xd1,0xd2,0xb3,0xda,0x8e,0x05,0x98, +0x0a,0x1d,0xb1,0xa0,0x73,0x32,0x8f,0xa7,0x99,0xaf,0x46,0xbd,0x02,0xe0,0xd5,0x28, +0x67,0xbc,0x80,0x8a,0x28,0x3a,0x7a,0x86,0xe3,0x01,0xee,0x12,0x87,0xcd,0x70,0xe4, +0x0a,0xbd,0x35,0x3e,0x9a,0xb7,0x62,0xf1,0xc2,0xfe,0xe1,0xcd,0xda,0x82,0x50,0x4d, +0xc6,0x12,0xe7,0xf1,0x1b,0xb4,0x7b,0x97,0x63,0x01,0xa8,0x93,0x88,0xe1,0x8f,0xec, +0x60,0x17,0xb0,0x3f,0x1a,0xb0,0x63,0x38,0x42,0x26,0xe4,0x79,0x8d,0x84,0x28,0x06, +0x8c,0x1e,0x86,0x3b,0x3e,0xcc,0x84,0x40,0xc9,0x36,0xc8,0x22,0xbd,0xa3,0x92,0xf2, +0x01,0xa5,0x96,0x4f,0x74,0xa5,0x87,0xda,0x41,0x1d,0x18,0x45,0xf6,0x62,0x89,0x96, +0xb7,0x16,0x9f,0xa6,0x5e,0x7a,0xce,0x59,0x12,0x1d,0x83,0x17,0xf5,0x4d,0x80,0xb3, +0xd1,0x81,0xd0,0x64,0xb7,0x2a,0x95,0xb6,0x10,0xa1,0x0f,0xc4,0x59,0x4e,0xa0,0x77, +0xcd,0x8c,0xda,0xb9,0x10,0x55,0x32,0xe6,0x2a,0x29,0x88,0x94,0xfa,0xeb,0xfe,0x61, +0x01,0x64,0x7f,0x7e,0x6c,0xa5,0x2c,0x4c,0x65,0x87,0x2a,0x79,0x39,0x50,0x3f,0x52, +0xfe,0xc4,0xf0,0xba,0x9a,0xe4,0x2b,0x13,0x65,0x33,0x61,0x78,0xbc,0x52,0x71,0xd7, +0xeb,0x59,0xb2,0x37,0xe8,0x87,0xf6,0x12,0x3b,0xe4,0xfc,0x48,0xc7,0xa5,0xca,0x8a, +0x3f,0x9a,0x82,0x84,0x1f,0x50,0x5b,0xc1,0xb3,0xce,0xe2,0xcc,0xf0,0x45,0x52,0xf2, +0x17,0xc4,0xb9,0x19,0xf4,0xf3,0x8e,0x45,0xee,0xcf,0xe4,0xdc,0x59,0x6c,0x9b,0x89, +0xae,0xba,0x85,0x36,0x18,0x0e,0x3b,0x99,0x39,0xc5,0xe7,0xcd,0x35,0xb0,0x4b,0xbb, +0xd1,0x84,0xe9,0xcf,0x6a,0x00,0x33,0x8c,0xae,0xeb,0x08,0xdd,0xb5,0x5a,0x6a,0x22, +0x46,0x3d,0x22,0xaa,0xad,0xa8,0xc1,0xca,0x48,0x76,0x3d,0x12,0x87,0x11,0xaa,0x6f, +0x54,0x20,0xeb,0xdc,0x9f,0x7c,0x84,0x5e,0x87,0x74,0xc5,0x4f,0xfe,0x12,0x5d,0x87, +0xee,0xae,0xfb,0x89,0x8c,0xe0,0x10,0x7a,0xb6,0xeb,0xdc,0x35,0x2b,0x72,0xfc,0xbb, +0x90,0x2f,0xd3,0x0f,0x97,0xa0,0x6e,0xf9,0x4f,0xc7,0xc0,0xfb,0xa9,0x14,0x28,0x85, +0x85,0x18,0x9a,0x5b,0x32,0x0a,0x23,0xd0,0x8f,0x93,0xb4,0x22,0x7c,0x9e,0xe8,0xf0, +0x64,0xd1,0xe6,0x94,0x7f,0xdd,0x71,0xf2,0x61,0xf4,0x0b,0x17,0xac,0x8c,0x65,0x61, +0x26,0x9a,0x9a,0xc7,0xf4,0xa9,0x0b,0x07,0x69,0x74,0x12,0x9a,0x00,0xf1,0x55,0xf1, +0xe4,0x13,0x97,0x04,0x94,0x4c,0x90,0xc0,0xf2,0x6c,0x92,0x4f,0xf5,0xb1,0x31,0xd3, +0x5e,0x1f,0x84,0xc4,0x4a,0xbb,0x48,0x1e,0xcf,0x60,0x0f,0xc1,0xd7,0x0b,0xac,0xe7, +0xf0,0x9f,0x63,0xd4,0x03,0x4e,0x40,0x61,0xe2,0x97,0xf4,0xe2,0xa2,0xa8,0xe5,0x47, +0xca,0xda,0xdf,0x38,0xb0,0x97,0x49,0x65,0x61,0x94,0x19,0x68,0x03,0xa0,0x6b,0x57, +0xcb,0x39,0x69,0x53,0xcb,0xa6,0x41,0x60,0x06,0x28,0x56,0xa8,0x4a,0x0b,0x5e,0xe8, +0x6d,0x99,0x9c,0x1d,0x63,0x67,0x6d,0xaa,0x53,0xdb,0xb2,0x69,0xa4,0x29,0x56,0x18, +0x28,0xbd,0x15,0x1a,0x66,0x04,0x6b,0xbe,0x91,0x68,0xa9,0xf9,0xbf,0xe9,0x5f,0xe9, +0xed,0x92,0x0b,0xfc,0xc0,0x4c,0x69,0x03,0x98,0x71,0x8d,0x5c,0x84,0x57,0x17,0xcb, +0xa5,0x94,0xe7,0x8e,0x8e,0x53,0x8c,0x83,0xeb,0xc3,0xf7,0xe1,0x14,0x4a,0x6e,0xe2, +0x66,0x2d,0x26,0x26,0x3e,0xba,0xb6,0x37,0xf3,0x51,0xc8,0x5a,0x16,0xec,0xae,0xef, +0x74,0x30,0x96,0x5a,0x58,0xc3,0x42,0x69,0x10,0xbd,0xe8,0xf7,0x94,0xcd,0x59,0x07, +0xc6,0x93,0xaf,0x58,0xdd,0xae,0x88,0x6f,0xb1,0xe9,0x89,0xe7,0x17,0x1d,0xf8,0xbb, +0xe7,0xdd,0xcf,0x4a,0xb9,0x35,0xbf,0xc6,0xdf,0x9d,0x7f,0xbf,0xff,0xff,0x60,0x52, +0x64,0x0d,0xff,0x77,0xb3,0x73,0xef,0x67,0xc2,0x4c,0xc9,0x7f,0x56,0x82,0x36,0xd5, +0x22,0x41,0x41,0xf6,0xf1,0x85,0x78,0x72,0xb8,0x4c,0xa5,0x76,0xf0,0x3c,0x59,0x05, +0x88,0x5f,0xfa,0x76,0xe8,0x86,0xaa,0x43,0x1e,0x4d,0x80,0x4f,0x51,0x6f,0x0d,0x92, +0x60,0xbc,0xf1,0x54,0x7a,0x6b,0xfa,0xd3,0x99,0x63,0xb1,0x57,0x6c,0x6f,0x1e,0x04, +0xa2,0xbf,0xd0,0xcc,0x02,0x3f,0xe7,0x12,0xbd,0x40,0xb6,0xd5,0x51,0x04,0x9f,0xfe, +0x74,0x20,0xf2,0xf8,0xa4,0xd0,0x00,0xed,0xc1,0x41,0x8e,0x4b,0x75,0x24,0x59,0xb9, +0x1c,0x44,0xd7,0x23,0xae,0x59,0x45,0x89,0xc8,0x0b,0x0e,0x9a,0xf6,0xa3,0x96,0x31, +0x85,0x84,0x9b,0x44,0xf1,0x65,0x17,0x13,0x80,0xb7,0xe3,0x86,0xe7,0xc8,0x5b,0x82, +0xad,0xf7,0x2d,0x63,0xc5,0xf4,0x52,0x5a,0xca,0x44,0xaa,0x5f,0x76,0xc9,0x8a,0x19, +0xbc,0x82,0x53,0x2b,0x1f,0xda,0x7a,0x7f,0x7c,0x46,0x5a,0xa9,0xd0,0xc4,0x3c,0x4e, +0x56,0x02,0x3a,0x53,0xa7,0x23,0x2c,0xcb,0x64,0x45,0xab,0xd2,0x31,0x29,0x45,0x20, +0x3a,0x46,0x7a,0xec,0xed,0xce,0xaf,0xdb,0x4b,0x6f,0x88,0xd2,0xee,0x6b,0x2d,0xcc, +0x5d,0x56,0x0f,0x4c,0xc6,0x4f,0x0c,0x8a,0x5e,0xc9,0x47,0x9f,0x2a,0xc3,0x09,0xdc, +0x35,0x99,0xb5,0xa2,0x1d,0x6d,0xb6,0xe7,0xa2,0x42,0x62,0x83,0xe6,0x01,0x0b,0x79, +0xa8,0x8d,0xf9,0xa6,0x29,0xb1,0xac,0x81,0xca,0x03,0xc4,0x82,0xe9,0x49,0x12,0xff, +0x2e,0xf0,0xa6,0xb5,0xd7,0x6d,0x41,0x7b,0x78,0xc4,0x3c,0x3d,0xdf,0x4b,0x05,0x82, +0x68,0x7c,0x13,0xaa,0x44,0xc5,0x74,0xe7,0x59,0x5f,0xbb,0x20,0x30,0x9b,0x65,0x7b, +0xde,0x7d,0x5b,0x3a,0xd8,0xa0,0x56,0xad,0x40,0x91,0xe2,0x11,0x90,0xd2,0xd1,0xdf, +0x8e,0xce,0xd1,0xbb,0x92,0x70,0x75,0xa2,0x02,0x5f,0xab,0x9d,0x98,0x11,0x6d,0xd6, +0x9c,0x1e,0x4d,0x00,0x6f,0x92,0x43,0x53,0xa9,0xd6,0x4d,0x46,0xd7,0xd3,0x46,0x28, +0x70,0x59,0x23,0x84,0x76,0x76,0xf8,0x73,0x0f,0xfb,0xc3,0x97,0x02,0xfd,0x34,0xe2, +0xdc,0x0e,0xb4,0xa7,0x11,0x3c,0x05,0xeb,0x86,0xd7,0xc6,0xf6,0xe1,0x7f,0xba,0xb2, +0x93,0xe2,0xc9,0x33,0x5b,0x55,0x05,0x10,0xc8,0xa6,0xf5,0x0f,0x1b,0x67,0xcd,0x37, +0x90,0xd7,0x8c,0x92,0x79,0xf4,0x43,0xc9,0xc0,0xf7,0x5f,0xe6,0xc3,0xe6,0xe1,0x6a, +0xaa,0x74,0x11,0x7f,0x44,0xe5,0x36,0xa9,0x89,0x5e,0x03,0xae,0x9c,0x39,0x6e,0xda, +0xd0,0x14,0x4e,0x09,0xe3,0x98,0x3a,0x0b,0xc8,0xd3,0xc6,0xdc,0x4a,0x5b,0x9e,0xeb, +0x7e,0x15,0xd1,0xb1,0x53,0xeb,0xbf,0xbc,0x4b,0x5c,0x3f,0x18,0x11,0x63,0xf4,0xbe, +0x08,0x07,0xdb,0x6e,0x93,0xe6,0x98,0xd9,0xad,0xf0,0x27,0x5d,0xb9,0xd6,0xfe,0xf5, +0x8d,0x91,0x8e,0x49,0xc6,0x3f,0x0f,0xfa,0x8f,0xf3,0xf0,0xc5,0x02,0xd1,0xf6,0x1f, +0xe9,0x94,0xb0,0x79,0xb6,0x9b,0xde,0x68,0x80,0x9e,0xe4,0x0f,0x4b,0xd2,0x39,0xa1, +0x41,0x37,0x07,0x04,0xfe,0xe3,0x03,0xae,0xec,0x16,0xc6,0x4d,0x17,0xde,0x47,0xc1, +0x0e,0x9e,0x99,0x1d,0xff,0x9b,0x01,0x48,0x14,0xd2,0xca,0x3a,0x12,0x4e,0x78,0x7a, +0x86,0xec,0xfe,0x3b,0x35,0x0b,0xc0,0x40,0x07,0x30,0xef,0x04,0x27,0xb5,0x10,0x58, +0xfc,0x9d,0xb0,0x05,0x6d,0xd0,0x3e,0x00,0xc5,0xe1,0x80,0xd9,0xd6,0xec,0xb8,0x61, +0x73,0xe7,0xf1,0x30,0xff,0x81,0x29,0x37,0xaf,0xcd,0x71,0x1b,0xe4,0xec,0x28,0x11, +0xcd,0x5f,0x97,0x3a,0xb4,0xb0,0x03,0xb1,0x04,0x62,0x40,0xf5,0x74,0xdc,0x8c,0xaa, +0xd6,0xc9,0xe2,0xdf,0x83,0x79,0x50,0xe8,0x47,0x64,0x26,0x39,0xeb,0x18,0x10,0xda, +0xa2,0x0c,0x28,0x17,0xce,0xf8,0x78,0x52,0x41,0x45,0x14,0xe4,0x5b,0xed,0x86,0xb3, +0x06,0x29,0x48,0x08,0x6b,0xda,0xae,0x62,0xc0,0xdc,0x31,0xb2,0xfc,0x1b,0x49,0xc0, +0x24,0x8f,0x91,0x70,0x2a,0xa8,0x43,0x9b,0xc7,0x88,0x7f,0x05,0x3c,0xf6,0x8e,0x8f, +0xd9,0xea,0x9c,0xaf,0x7c,0x28,0x4a,0xa8,0xc4,0xaf,0xda,0x4c,0xef,0x95,0xed,0xea, +0x05,0x52,0xd1,0xef,0x14,0xa9,0xb8,0xcb,0xee,0x69,0x41,0x55,0x27,0x56,0x4a,0xe0, +0xae,0x87,0xdc,0x7d,0xf6,0xa9,0x0b,0xfb,0x90,0xc3,0x24,0xd0,0x69,0x39,0x2b,0x51, +0x74,0x97,0x8d,0x27,0x98,0xde,0x09,0x39,0xc5,0x46,0x82,0x87,0x2e,0xf0,0x60,0x8c, +0x66,0x88,0x9c,0xeb,0xeb,0xa5,0xe2,0x75,0x3e,0x78,0x8c,0x47,0xd6,0xbd,0x4a,0xc0, +0x70,0x9c,0x2a,0x1f,0xf8,0xa0,0xaa,0x47,0x49,0xe5,0x84,0x56,0xf3,0xe0,0x65,0xcf, +0xd9,0xb6,0x67,0xbe,0xb0,0x51,0x64,0x64,0xba,0x45,0x33,0x22,0x8d,0xe3,0x32,0xda, +0x2a,0x84,0x14,0x2c,0xb1,0xc1,0xc3,0x19,0x24,0x4c,0x85,0x56,0x52,0x49,0x1b,0xc8, +0x34,0x94,0xf2,0x26,0xdf,0xb3,0x4c,0xb3,0x84,0xd4,0x78,0x46,0x73,0xf3,0x87,0x17, +0xb6,0xae,0x96,0x65,0x13,0x1e,0x76,0x50,0x41,0x93,0xb7,0x70,0x1b,0xb3,0x23,0xdd, +0x29,0xf0,0xe3,0xaa,0x34,0x3e,0x31,0xd1,0x66,0xbe,0x35,0xfa,0xd4,0x11,0x7d,0xf1, +0xfb,0x18,0x79,0x7f,0x6c,0xf1,0xfb,0xd9,0x0c,0x89,0xee,0xfb,0x72,0x63,0x07,0x24, +0x4d,0xbd,0x30,0x77,0xfe,0xb7,0x0a,0xdf,0x8f,0x25,0x96,0x19,0x9f,0xe5,0x6e,0x34, +0x21,0x4f,0xbc,0x97,0x92,0xf7,0xfc,0x93,0x5a,0x97,0xf4,0xe2,0x1c,0xe4,0x61,0x2b, +0xa6,0xdb,0x35,0xd6,0xca,0x16,0xd9,0x70,0xcc,0xde,0xef,0xe5,0x34,0x02,0xa4,0x13, +0xbb,0x96,0xe1,0xb9,0x16,0x48,0x71,0xa8,0x46,0x08,0x7a,0x06,0xcf,0x08,0x22,0x76, +0x2c,0x84,0xa4,0x3c,0x3c,0xb8,0x24,0x54,0x87,0x49,0x76,0x6b,0xbe,0xb6,0x28,0xdd, +0x03,0x45,0x3b,0xed,0x01,0xd5,0x29,0xc9,0x7a,0x72,0xa6,0x52,0xd5,0x82,0x18,0xc1, +0xbc,0x9e,0xa7,0x8f,0x5d,0x15,0x09,0x62,0xae,0x75,0x33,0x53,0x36,0x01,0xfb,0xc5, +0x3e,0xa4,0xc9,0xa6,0xbe,0xd1,0x47,0xbf,0x0d,0xaa,0xa7,0x4e,0xf4,0xdb,0x70,0xc2, +0x0e,0xec,0xd8,0x7f,0xb1,0x4a,0xc2,0x88,0xd1,0x80,0xac,0xe3,0x02,0x53,0xee,0xd7, +0xce,0x86,0x57,0xad,0x55,0xb2,0xc6,0x05,0x86,0xde,0x80,0xf9,0xde,0x42,0x61,0xb8, +0xdf,0x19,0xef,0xdb,0xb8,0x96,0xcc,0xa5,0xdd,0x2c,0x57,0x9d,0x9c,0xf2,0x6f,0x3d, +0xa9,0x65,0xde,0xe3,0x5a,0xd1,0xd3,0x64,0xee,0xaf,0x4c,0xd7,0x03,0xce,0x5b,0x00, +0x06,0x20,0x5f,0x64,0x67,0xc5,0x2e,0xc2,0x22,0xa5,0xe8,0x57,0x60,0x6b,0x42,0xf2, +0x90,0x18,0xb2,0xff,0xa8,0x63,0xac,0x4f,0xe2,0xec,0xe1,0x52,0xaa,0xea,0x2d,0x7f, +0x41,0x1d,0x41,0xc4,0x2a,0x63,0x6f,0x26,0x35,0x4d,0xab,0xd5,0x9b,0x53,0x77,0x39, +0x7c,0x8f,0x4e,0xa1,0x69,0x67,0xd0,0x01,0xc9,0xbc,0x29,0x1c,0x62,0xde,0x1e,0xa2, +0x46,0x81,0x9a,0x66,0x7a,0xb5,0xab,0x90,0x63,0xb5,0x8a,0x51,0x26,0x7b,0x72,0xe0, +0x8e,0xaa,0x9e,0x79,0xf8,0x41,0x8b,0x83,0xcf,0x48,0x66,0xf1,0xa8,0xf8,0x53,0x0e, +0x69,0x42,0xbf,0x43,0xf1,0x73,0x2f,0x67,0xa1,0x63,0x69,0x22,0x08,0x23,0xed,0x75, +0xe0,0x72,0x59,0x37,0x20,0x42,0xc9,0x8f,0x6f,0x4a,0x81,0x64,0xb0,0x6d,0x48,0x15, +0x19,0xa7,0xf9,0x67,0x1e,0xda,0x28,0x8d,0xbf,0xb5,0x6a,0xdc,0x68,0x59,0x34,0x34, +0x68,0x0d,0x1f,0x03,0x69,0xa2,0xa1,0x89,0x79,0xe6,0xe2,0x57,0x5f,0x9b,0x16,0xce, +0x42,0x7b,0x0f,0x32,0x1c,0x85,0x05,0x00,0x23,0x7b,0x53,0xb0,0x66,0xe7,0x72,0x6a, +0xb9,0x82,0xc5,0x34,0x2a,0x66,0x0a,0x28,0xb9,0x4f,0x7e,0xb9,0x87,0xda,0x54,0x64, +0xe1,0x48,0xfa,0xa7,0xb6,0x21,0xbe,0xf3,0xbb,0xc5,0xc7,0x6e,0x12,0xc1,0xee,0x7c, +0x68,0xd5,0xf3,0x78,0x28,0xcc,0x7a,0xf2,0x6f,0x4b,0xa4,0x7a,0xba,0xee,0x79,0xf9, +0x66,0xa1,0x3a,0x6a,0x3b,0x51,0x73,0x83,0x3f,0xc7,0xce,0x44,0xba,0x64,0x5d,0x71, +0x60,0x4b,0x73,0xd8,0x1d,0xed,0x73,0x68,0x6a,0xd0,0xfc,0x8e,0x57,0xd2,0x5d,0x8b, +0xc9,0x81,0xfd,0xf6,0x97,0x15,0x2c,0xdf,0xe1,0x5d,0x14,0x87,0x64,0x31,0xf4,0xb4, +0x01,0x92,0x0e,0x6b,0x88,0x73,0xd5,0x5f,0x56,0x51,0x0d,0x86,0x11,0x4d,0xfd,0x89, +0x49,0xa3,0x70,0xee,0xb6,0xc0,0xd5,0xec,0xf5,0xff,0xcb,0x47,0xf4,0xdf,0x8d,0xb2, +0xed,0x12,0x4a,0x1d,0x5a,0x57,0x75,0xd3,0x1e,0x5d,0xe3,0xb3,0x18,0x7c,0x3a,0xc6, +0xcb,0x1b,0xce,0xc6,0x91,0x58,0xab,0x82,0x95,0x31,0xbc,0xfa,0xb4,0x80,0xf7,0x32, +0x8f,0xe8,0x5a,0x3e,0x96,0x59,0xf5,0x82,0xd8,0x4a,0x82,0x66,0x77,0xa9,0x17,0xf6, +0x49,0x72,0x9f,0xc4,0x60,0xb7,0x6d,0x0e,0x77,0x8b,0x33,0x97,0x19,0xd0,0x35,0xf5, +0x48,0x53,0x09,0x2a,0xd0,0x3d,0xcd,0x1b,0x5e,0xa6,0xe6,0xab,0x2e,0xca,0xd4,0x8c, +0x80,0xf8,0xbe,0x7f,0x00,0x5d,0x2e,0x56,0x6e,0x72,0xc4,0x9b,0x93,0x1c,0xc7,0xb1, +0xc8,0xb6,0x2e,0x86,0xb5,0x34,0x1e,0xc7,0x09,0x79,0x61,0xcf,0x41,0xd2,0x59,0xa1, +0xa8,0xbe,0xbf,0x7e,0x8c,0x8e,0x62,0x96,0xff,0x81,0xaf,0x53,0x54,0x77,0x1c,0xea, +0xd9,0x77,0x76,0xba,0x18,0xb4,0x60,0xc7,0xc7,0xc4,0xe7,0xa9,0x19,0xfa,0x7c,0x78, +0xaf,0xb3,0xd0,0xa5,0xd1,0x78,0xa9,0x86,0x1c,0x83,0x79,0xf2,0xac,0x88,0xb5,0xd0, +0x8e,0xe2,0x6a,0xa3,0x98,0x06,0x0d,0x02,0x6f,0xdd,0xbd,0xf8,0xae,0x20,0xe3,0xab, +0x8e,0x53,0xfd,0x7d,0x62,0x91,0x6a,0x50,0x11,0x43,0x30,0x1e,0x20,0xd5,0x11,0x3b, +0xaf,0xb2,0xcb,0x35,0xed,0x72,0xc2,0x09,0x75,0xfe,0x74,0xa2,0x46,0x83,0x00,0x88, +0x05,0x40,0xf8,0x23,0x12,0x52,0x43,0x50,0xaf,0xd1,0x8d,0xa2,0x0a,0xeb,0x3d,0x3f, +0x03,0xf9,0x13,0xe4,0x36,0xe1,0x46,0x1f,0xae,0x50,0x86,0x1a,0xf6,0xe5,0x07,0x2b, +0xb0,0x26,0x0d,0xf5,0xb7,0xe2,0x4f,0x0a,0x2f,0x93,0x8f,0x0e,0x77,0x87,0x62,0x60, +0xb5,0x8c,0x9d,0xb8,0xfe,0xb2,0x07,0x0b,0x48,0x65,0x3a,0xb3,0x84,0x8e,0x5a,0xf2, +0x83,0x2b,0x50,0xd2,0xf7,0xc7,0xc4,0x00,0xbd,0xa1,0x88,0x19,0xd9,0x62,0xdc,0x30, +0xfc,0xc7,0x50,0x11,0x19,0xa3,0x87,0x56,0xc8,0x88,0xfc,0xec,0xa4,0xa0,0xc5,0x67, +0x27,0x19,0x9a,0x77,0xfa,0xb9,0x49,0x9d,0x6a,0xcb,0xf5,0x27,0x82,0x6d,0x26,0x8b, +0x08,0x7a,0xce,0x97,0x34,0xbc,0x1f,0xb7,0x2e,0xed,0x3b,0x05,0xf9,0x7e,0x96,0x79, +0x34,0x87,0x26,0x8a,0x42,0x81,0x7f,0xea,0x05,0x8a,0x85,0x16,0xac,0x99,0x8f,0x69, +0x39,0xc6,0xd2,0x6d,0x2d,0xa2,0x22,0xc5,0xb8,0x4a,0x7a,0x66,0xf0,0xd9,0xa6,0x6a, +0x4a,0x91,0xf9,0xf0,0x3f,0xcf,0xbe,0xb9,0x31,0x4b,0x04,0x03,0x28,0xdb,0x2a,0x68, +0xb1,0xc4,0xd1,0xef,0x39,0x9a,0xde,0xc5,0x38,0xc7,0x86,0x4f,0x81,0xe2,0x00,0x4a, +0xfb,0x0a,0x47,0x38,0xe9,0xc2,0x68,0x68,0xa5,0xc3,0xaa,0x7e,0x46,0xe8,0x5a,0xbc, +0x1d,0xc0,0xd2,0x0e,0x1e,0xa2,0x1c,0x98,0x6b,0x8f,0xc8,0x5a,0xd0,0xef,0xe3,0x6f, +0x2b,0x0f,0x81,0x4e,0x9f,0xcf,0x32,0x0d,0xaf,0xca,0xf7,0x66,0x8a,0xea,0x39,0x5b, +0x28,0xce,0xd0,0x3f,0xdf,0xa2,0x79,0x16,0x4d,0x38,0x4c,0x7e,0x52,0xe3,0x42,0x4b, +0x27,0x23,0xfc,0x82,0x81,0x3f,0x0b,0x93,0x5c,0x7f,0xe8,0x55,0xf0,0x7d,0x34,0xaf, +0xce,0xd5,0x28,0x12,0x6b,0x98,0x42,0x9a,0x98,0x70,0x2c,0x47,0xd6,0xb1,0xe5,0xce, +0x66,0x19,0xfd,0xd2,0xdf,0xa3,0x20,0xd9,0x8e,0xc3,0xe7,0xe0,0x1f,0x96,0x77,0x1c, +0xd3,0x3c,0x16,0x75,0x19,0x4e,0xa8,0x40,0xd9,0x0e,0x83,0x9b,0x15,0x72,0x36,0xf0, +0x02,0xd9,0x19,0xb5,0x0f,0xc5,0x3e,0x11,0xe2,0x59,0x57,0xd0,0xaa,0x11,0xd4,0x62, +0xdc,0x0a,0x57,0x91,0xa9,0xe8,0xec,0x76,0x6f,0xf9,0x7c,0xb0,0xe5,0x51,0x77,0xc3, +0x5d,0x84,0x18,0xb5,0x98,0xe9,0x27,0xa5,0x0d,0xb2,0x8b,0xd4,0x9d,0x73,0x50,0xf7, +0x4c,0xf3,0xf7,0xd5,0x04,0x3c,0x1d,0xb1,0xff,0xda,0xf1,0xed,0x3f,0xbf,0x82,0xe8, +0xdb,0xfd,0xde,0x9d,0x4c,0xfc,0x60,0x86,0x87,0x89,0x08,0x5d,0xf8,0x55,0xae,0xe9, +0x5d,0x1c,0x69,0xeb,0xd4,0x88,0xfe,0xf7,0x78,0x74,0x1a,0xdc,0x8a,0x9c,0x1f,0x74, +0xc7,0x95,0x81,0xa2,0x30,0xf8,0x31,0x93,0x6c,0x5d,0xcf,0x1f,0x10,0x55,0x3d,0xfb, +0x46,0xdf,0xd7,0xb8,0x54,0xea,0x72,0x54,0xda,0xdb,0x87,0x40,0x14,0xca,0x5e,0x30, +0x82,0x91,0xc6,0x44,0x3d,0x14,0x09,0xce,0x68,0xfc,0xd1,0x1f,0xe2,0x9c,0xfe,0x24, +0xd2,0x3c,0x42,0xa0,0xe1,0x3c,0x00,0x42,0x9a,0x7e,0x81,0x03,0x7f,0xf3,0x18,0xb5, +0xc6,0x93,0xbe,0xc0,0x5b,0x41,0x9b,0x94,0x86,0x4d,0x1f,0x65,0xdc,0x28,0x57,0x24, +0x5a,0xfc,0x79,0x35,0x1a,0x00,0xaa,0x08,0xd1,0x9e,0x97,0x79,0x03,0xbe,0xa3,0xa8, +0xdc,0x33,0x78,0x0c,0xe9,0x6f,0x28,0xce,0xc3,0x4d,0x69,0x5f,0xca,0x5f,0xb9,0xd0, +0x17,0x07,0xa8,0x09,0x9c,0x3a,0x30,0x21,0x47,0x92,0x0d,0x0b,0x21,0xec,0x58,0x83, +0x86,0xd1,0xd8,0xaf,0x6d,0x6d,0x6c,0xe3,0x61,0x44,0xaa,0xaf,0x63,0xb7,0xa1,0x05, +0x20,0xfc,0xa5,0x73,0x4b,0x31,0x36,0xb3,0x40,0x43,0xe2,0xce,0x5e,0x21,0xe4,0x64, +0x31,0x50,0x92,0x47,0x14,0x6c,0xf0,0x12,0x28,0x20,0xe8,0xe6,0x70,0x94,0x11,0x70, +0xa6,0xda,0x68,0x26,0x71,0x01,0xa7,0x0a,0x45,0xb7,0xe0,0xa4,0x0f,0x9a,0xfb,0xd2, +0xef,0xf9,0xd3,0x75,0x33,0x89,0x91,0xfc,0xd5,0xb7,0xa9,0xe7,0x52,0xdf,0xe5,0x2e, +0x55,0x46,0x09,0x11,0x91,0x65,0xe5,0x6f,0xa1,0xb3,0x75,0xe7,0xdf,0x6f,0x1a,0x8d, +0xe1,0x3b,0x3a,0x96,0x1b,0x88,0x2a,0x19,0x72,0x47,0x90,0x34,0x59,0xc8,0x2a,0x09, +0xdc,0x65,0x72,0x01,0x99,0xef,0x4c,0x90,0xea,0x08,0x0a,0xb8,0x17,0xac,0x2a,0x76, +0x19,0x1a,0xb8,0xeb,0x88,0x97,0x73,0x96,0x37,0x47,0x83,0x08,0xdc,0x04,0xcf,0x47, +0x87,0x15,0xeb,0x1f,0xcc,0x26,0x21,0xd1,0x27,0x04,0xa2,0x7f,0x78,0x70,0x3c,0x4f, +0xab,0x93,0xc9,0x08,0xf3,0x44,0x04,0x1b,0x6c,0xcd,0x52,0x91,0x56,0x91,0x14,0xba, +0x57,0x89,0xb1,0x7b,0xba,0x41,0x0c,0xd9,0xa0,0x29,0x1f,0x9e,0xd9,0xb9,0xf7,0x2b, +0x71,0x4f,0x03,0x0c,0x11,0x23,0x51,0x9a,0x4e,0xc3,0xc1,0x69,0x58,0x6d,0xb1,0x2a, +0xff,0xa4,0x2c,0x27,0x4d,0x25,0xe2,0x9b,0x67,0x32,0x04,0x1f,0x9b,0x60,0xb3,0x89, +0xd3,0xaf,0x2c,0x90,0x91,0xcf,0xb0,0xdf,0x66,0x28,0x90,0x64,0x34,0x6b,0x64,0xf2, +0x9e,0x1f,0xa5,0xeb,0xa0,0x21,0x24,0x4b,0xee,0xf7,0x1c,0x73,0x55,0x1d,0xfe,0x05, +0xa4,0x2c,0xdf,0x4d,0xc7,0x72,0x89,0xc3,0x13,0x37,0x59,0xc3,0x12,0x52,0x35,0x7f, +0x22,0x1e,0xad,0x84,0x3c,0x50,0x08,0xcb,0x2b,0x42,0x0d,0xc6,0x89,0xd2,0x6c,0x33, +0xae,0x55,0x04,0x80,0x30,0x76,0x94,0xe1,0xeb,0x08,0xac,0xf6,0x8d,0xa9,0x4d,0xb6, +0xfe,0x1a,0x15,0xca,0x08,0x45,0xf1,0xcf,0x4d,0x8e,0xca,0x96,0x07,0x8a,0x1c,0xd8, +0x07,0xe9,0xce,0x81,0x8d,0x16,0xee,0xaf,0x7f,0xab,0x9f,0xe4,0x05,0x8b,0xf9,0xae, +0x00,0x56,0x0d,0x91,0x91,0x75,0x5d,0xcb,0x9f,0xe2,0x84,0x6c,0x56,0xd6,0x7b,0x4a, +0x89,0x1e,0x2d,0x29,0xed,0x26,0x1e,0x3d,0x5b,0x33,0x01,0x9d,0xd9,0xf9,0x21,0x1a, +0xa8,0xb9,0x1b,0x74,0xa0,0x7b,0x20,0x91,0xce,0x42,0xcc,0xa7,0x92,0x1d,0x2f,0x88, +0xae,0xc9,0xfa,0x7e,0xc8,0xee,0x29,0x81,0x4f,0x4a,0xaa,0x5e,0x7c,0xf7,0xcf,0x24, +0xf1,0x17,0x49,0x1c,0xbf,0xd9,0xe9,0xdf,0xf9,0x14,0x0f,0x55,0x69,0xb6,0x26,0x68, +0x3a,0x97,0x46,0x3c,0xc1,0x52,0x06,0x6c,0x62,0x70,0xee,0x12,0x87,0xa8,0xcd,0x3a, +0x0f,0xc9,0xb6,0x9c,0x23,0x7f,0x9e,0x65,0xc6,0x1f,0xc8,0x9e,0x13,0x70,0x43,0x2b, +0x28,0x1d,0x78,0x56,0x4f,0x98,0xea,0xd4,0x15,0x03,0xaf,0xff,0x13,0x71,0xd8,0xc6, +0x89,0x8b,0x47,0x7d,0x4e,0xcb,0x98,0x5a,0x1e,0x50,0xcd,0xc6,0x10,0x3b,0x5d,0xf1, +0x3e,0x54,0x64,0x83,0x57,0x53,0x4e,0x0a,0xaf,0xf1,0xdf,0xa2,0x1a,0xc2,0xe8,0xaf, +0x5d,0x8d,0x74,0x70,0xea,0xb1,0xc0,0xda,0xf7,0x8e,0x07,0xb2,0x1b,0x2b,0x70,0x81, +0x05,0xa2,0xb1,0x65,0xcc,0xb9,0x68,0xc6,0x63,0xd2,0xd9,0x45,0x67,0x8e,0x11,0x78, +0x04,0x8e,0x11,0xff,0x14,0x5f,0x60,0x71,0x62,0xd3,0xf1,0x2b,0xe6,0x5d,0x18,0x5f, +0xc6,0xc5,0x61,0x35,0x1b,0xe6,0x08,0xe6,0x18,0xe3,0xc8,0x98,0xa9,0xff,0xdc,0x30, +0xf8,0x28,0x5c,0x29,0xb4,0x08,0xb8,0xef,0xed,0xa0,0xe0,0x52,0x64,0x57,0x1f,0x44, +0x27,0x59,0xed,0x84,0x63,0xa9,0x49,0x9c,0x6a,0xcb,0xd7,0x11,0x2d,0x69,0x63,0x62, +0x26,0xc6,0xe3,0x66,0x36,0x26,0xcd,0x2c,0x64,0xa2,0x41,0x8d,0x3e,0xbd,0x9b,0x48, +0xad,0xf5,0x5a,0x06,0xe1,0xe7,0xca,0xd5,0x7f,0xef,0x72,0xbb,0x6c,0xaa,0x9d,0xb3, +0x90,0x74,0xf4,0x26,0x0e,0x04,0xd9,0xfa,0x64,0x6d,0x7c,0xea,0x5c,0x19,0x0b,0x69, +0x78,0x99,0x33,0xfe,0xa0,0xea,0x8b,0xd5,0x31,0xa6,0x75,0x57,0x51,0xa8,0x86,0x9f, +0xfb,0x47,0x24,0xff,0x8b,0xad,0xbc,0x3d,0x05,0x1b,0x85,0xfa,0x52,0x6d,0x3c,0xa8, +0x0a,0x21,0xe2,0xbd,0x9a,0x21,0xcd,0x88,0xc3,0x47,0xd1,0x8c,0x9e,0x13,0x4c,0xb8, +0x83,0xcc,0xf8,0x6e,0x3f,0x02,0x40,0xe8,0x4f,0x12,0xd8,0x0d,0xfc,0xe4,0xef,0x79, +0x65,0xca,0xb1,0x49,0x98,0xe6,0xf7,0xf8,0xe0,0x31,0xcd,0xa3,0x0e,0xe1,0x15,0x5d, +0x6e,0x0c,0x4b,0x2d,0xfd,0xeb,0x48,0xcb,0x37,0x6c,0xff,0x62,0x26,0x1b,0x1c,0xe9, +0xa5,0x9d,0x16,0xc1,0x32,0x30,0x17,0x8a,0xbc,0xe1,0xa6,0x02,0x9f,0xb4,0x04,0xf0, +0xd1,0x82,0x84,0x07,0x94,0xae,0x6c,0x5a,0x4a,0x9c,0x18,0x92,0x16,0xf5,0x9c,0xc1, +0x05,0xef,0xa6,0x47,0x92,0xb4,0x74,0xdc,0x43,0xd6,0x8f,0x17,0x20,0x5d,0x9a,0x3a, +0x38,0x6e,0x19,0xb0,0x19,0xae,0xc4,0xbb,0x40,0xac,0xab,0x8f,0x1e,0xb7,0x30,0xd9, +0x00,0xe0,0x9c,0x42,0x32,0x21,0xc0,0x9d,0xc5,0x01,0xce,0x56,0xae,0xb6,0xac,0x4f, +0x9f,0xd7,0x40,0x44,0x6b,0xbf,0x46,0x01,0x6a,0x71,0x07,0xd1,0xd6,0x0a,0xb1,0x47, +0xf8,0xb1,0xe3,0x82,0x5f,0xde,0x27,0xdc,0x8c,0x97,0x7d,0x67,0x5a,0xfb,0xaa,0x70, +0x06,0x48,0x6d,0x96,0x0a,0xf6,0xf1,0xa3,0xc5,0x67,0x9d,0x53,0xb6,0xb5,0x8b,0x0e, +0x5a,0x54,0x8e,0xec,0x0f,0x84,0x9a,0x31,0xd9,0x4e,0x8c,0x1e,0xa8,0x57,0xd5,0x1e, +0x29,0xa7,0x96,0x74,0xb0,0x44,0x87,0x5c,0x7d,0xa4,0xa8,0x1e,0x96,0xbd,0x90,0x83, +0x5f,0x25,0x67,0x1a,0xb6,0xb4,0x7f,0x3b,0xdf,0xd6,0x13,0x8b,0x9f,0x33,0x47,0xf9, +0x12,0x95,0x4a,0x70,0x48,0xed,0xc7,0x53,0xc2,0x46,0x85,0x0f,0x53,0x54,0xd2,0xa8, +0x12,0x63,0x26,0x8a,0x3d,0xfe,0xf4,0x1a,0x6f,0x7d,0xf4,0x83,0x7a,0x26,0xce,0xc0, +0xa3,0x30,0xbe,0xd7,0x9c,0xa6,0x74,0xcb,0xce,0x5c,0xc0,0xd7,0xf2,0x5b,0xdc,0x67, +0x59,0x2a,0xeb,0x14,0x1f,0xb8,0x7d,0x18,0xaf,0x73,0x16,0x9d,0x15,0xcf,0xcf,0xeb, +0xef,0x30,0x4d,0x5b,0xb6,0x41,0x57,0x08,0x6b,0x52,0xb7,0x3f,0xcc,0x74,0xe5,0x31, +0x38,0x42,0x40,0xdc,0x3b,0xfb,0xce,0xc8,0x4f,0x0d,0x81,0x57,0x60,0x0c,0x52,0x3f, +0x69,0x30,0xd9,0x7b,0x22,0x4f,0x41,0xd8,0xd5,0x0c,0xc2,0xce,0x39,0x70,0xd2,0x5d, +0xa1,0x7b,0x37,0xf8,0xb1,0x60,0x49,0xc5,0xc6,0x3a,0xf7,0xec,0xd3,0x1b,0xc9,0xad, +0x87,0x0e,0x31,0x52,0x53,0x21,0x8e,0xb9,0x64,0x90,0xe7,0x33,0x30,0xe0,0xf4,0x3b, +0xa1,0x1f,0x99,0xcc,0xfb,0xb5,0xaf,0x0e,0x20,0x9b,0x10,0x65,0x43,0xc9,0x88,0x48, +0xe1,0x1e,0xb0,0xbc,0x09,0x88,0xb4,0x0b,0x81,0x99,0xe6,0x5c,0x7d,0xba,0x0d,0xc3, +0x0f,0xbf,0x39,0xc7,0xb0,0x16,0x7e,0x1e,0x1b,0xd9,0xc4,0x54,0x73,0x99,0x42,0xd3, +0x0e,0xed,0xde,0xb3,0x11,0x24,0x62,0xe3,0xc3,0x4f,0x83,0xad,0xaf,0xc8,0x78,0xe8, +0x29,0xa7,0xca,0x95,0xbd,0xa8,0x42,0x5f,0x14,0x53,0x31,0xdf,0xd4,0x65,0x6c,0xd8, +0x0a,0xe3,0xd3,0x47,0x1f,0xcb,0xe2,0x5e,0xc6,0xcf,0xc4,0xde,0x5d,0xec,0x92,0x7a, +0xbc,0x66,0x7b,0x8f,0x19,0x18,0xe0,0x4f,0xa0,0x63,0xcb,0x19,0x31,0x30,0x35,0x30, +0xe0,0x5a,0xcc,0x62,0xa5,0xd4,0x1d,0x79,0xd2,0x07,0x66,0x13,0x7a,0x29,0x82,0x50, +0xe8,0x0a,0x45,0xae,0x29,0x9c,0x17,0x13,0x2a,0x0f,0x72,0x9c,0x86,0xbf,0x00,0x45, +0xb4,0x4f,0x35,0xd8,0x04,0x39,0xa1,0xfa,0xc3,0xcf,0x6e,0x1e,0x68,0x53,0x63,0x6b, +0x2b,0x82,0x7b,0xb3,0x8a,0x63,0xac,0x13,0xa8,0xb1,0xad,0x6a,0x7b,0x91,0x48,0xe7, +0x8d,0x2f,0xab,0x5f,0xe0,0x22,0x63,0x82,0xb8,0x4f,0x74,0x9b,0xcb,0x92,0xc4,0xf4, +0xb2,0xe5,0x20,0x84,0x30,0x30,0xac,0x4f,0x1c,0x0d,0xf2,0x68,0x73,0x01,0x56,0xbf, +0x49,0x40,0x74,0x16,0xb0,0x93,0x45,0x0f,0xc4,0xf0,0xe2,0xb2,0x12,0x24,0x94,0x05, +0xbb,0x47,0x85,0xf7,0x83,0x5c,0xc6,0x01,0x0d,0xa2,0xcf,0x87,0x98,0x23,0xcd,0x2d, +0xa7,0x1e,0xd4,0x4e,0xb7,0xd1,0x01,0x57,0x44,0x3d,0xcb,0x9c,0x1a,0x17,0xef,0x45, +0xb1,0x2b,0xb4,0x40,0x69,0x13,0x6c,0x1f,0x15,0x54,0x2c,0xec,0xd5,0x38,0x4f,0x83, +0xfe,0x68,0x17,0x97,0x4c,0x36,0xe1,0xab,0x65,0x86,0xd8,0xf5,0x7b,0x55,0x25,0x87, +0xda,0x54,0x8d,0xc1,0x37,0xe7,0x7e,0x8f,0x33,0xea,0xc4,0xc1,0xfa,0x76,0xe2,0xbe, +0xa5,0x87,0x78,0x1c,0x52,0x88,0x60,0x09,0xe3,0x15,0x22,0xf4,0xf3,0x77,0xf9,0x7a, +0x09,0x6a,0xc1,0x4b,0x3e,0xb8,0x74,0x34,0x69,0xd9,0xae,0x4c,0x72,0x3a,0x27,0xe7, +0xb8,0x09,0x48,0xe4,0xc6,0x22,0x93,0x50,0x1a,0x59,0x09,0x4f,0xfd,0xf2,0x5d,0x88, +0xdf,0x1a,0x84,0xcd,0xa0,0x78,0xbf,0x0c,0xcc,0x18,0xd8,0x5b,0x9b,0x73,0x2f,0x88, +0x24,0x78,0xe0,0x19,0xf9,0xd0,0x40,0xbd,0xef,0x1b,0xab,0x01,0x12,0x1f,0xb5,0x20, +0x7b,0x5e,0x46,0x10,0x91,0x27,0x52,0x2f,0x97,0xfd,0xd6,0xed,0x72,0x83,0xce,0x86, +0xa6,0x7f,0xcf,0xba,0xd0,0x0c,0x08,0x55,0x80,0x2e,0x21,0x03,0x7b,0x7d,0xc2,0x49, +0x57,0x05,0xf9,0xab,0x51,0x2f,0x04,0x1a,0x98,0x83,0xd3,0x12,0xf2,0x1e,0xe4,0x5c, +0x38,0x20,0xd9,0xbf,0x44,0x92,0xa4,0xc6,0x99,0x1e,0x20,0xfd,0x04,0x80,0x38,0x5b, +0x67,0xf6,0x1b,0xaa,0xe3,0x1d,0xe4,0x06,0x37,0xc0,0xff,0xd0,0xa9,0x61,0xa3,0x72, +0x44,0x34,0xd3,0x94,0x94,0x93,0x29,0xf5,0x76,0x55,0x8c,0xc8,0xb4,0x5e,0x37,0x2f, +0x82,0x51,0xf4,0xfc,0x65,0xb1,0x6e,0x33,0xc2,0x82,0xa9,0xd8,0x21,0x61,0xb8,0x2c, +0xbd,0xc1,0x29,0x07,0xa8,0xa5,0x81,0xac,0x30,0x4a,0x79,0xe3,0x97,0x4e,0x4c,0x3d, +0x35,0xc4,0xf0,0x35,0x02,0x5f,0xb0,0xde,0xff,0x86,0x08,0x9a,0x8a,0x1f,0xac,0x98, +0xbc,0x83,0x37,0x52,0x11,0x5f,0x27,0x2c,0xc5,0xe1,0x78,0x8d,0xb6,0x46,0xca,0x04, +0x88,0x5a,0x61,0xc3,0xc9,0xda,0xa2,0x85,0xb5,0xc6,0xba,0x14,0xee,0x67,0xc5,0x82, +0x81,0x17,0x9c,0xd3,0x85,0xa7,0x3f,0x11,0x38,0x1c,0xe8,0x8d,0xd1,0x4d,0x39,0x81, +0x83,0x93,0x8a,0x87,0x1a,0x4a,0x12,0xd9,0xef,0xda,0x7b,0x1f,0x68,0x47,0x92,0x84, +0x0c,0xea,0x6a,0x0e,0x47,0xeb,0x42,0xfa,0x15,0xd2,0xc4,0x17,0xdd,0x8a,0x83,0x6d, +0x52,0x98,0x3c,0xf0,0xaf,0x2a,0x8b,0x5b,0x4c,0x6c,0x22,0x5d,0xb6,0xdb,0x1c,0x32, +0x71,0xda,0x6d,0xc1,0x9b,0x2b,0x1e,0x5d,0x7a,0xdb,0x81,0xc4,0x24,0x87,0x4c,0x25, +0x08,0x1c,0x82,0x4c,0x3c,0xee,0x72,0xee,0x38,0xf1,0x32,0x11,0x0b,0xe7,0xef,0xda, +0xf2,0x96,0xf9,0xbc,0xb3,0x00,0x82,0x96,0x4b,0xb6,0xf2,0x73,0xd8,0xfc,0x90,0xa3, +0x85,0xcc,0x6b,0x1f,0x32,0x03,0x28,0x6b,0xc8,0x1d,0xf2,0xeb,0x90,0xd1,0xeb,0x05, +0x02,0xed,0xfc,0xbd,0x99,0xb5,0x7b,0xf9,0x31,0x50,0x6b,0x0d,0xec,0xd1,0x8f,0x27, +0xf1,0x8e,0x64,0xc7,0x5e,0xba,0x25,0xe5,0x57,0x44,0x8e,0x44,0xd8,0xff,0x96,0xce, +0xc2,0x81,0xae,0x70,0x90,0x17,0x84,0x3c,0x96,0xbd,0xe4,0xb2,0x3d,0xc0,0x58,0x7c, +0x97,0x96,0xe5,0x6f,0x19,0xff,0x8d,0x2c,0x1f,0xc0,0xb3,0x8b,0x1d,0xa3,0x97,0xce, +0x42,0x33,0x3c,0xd7,0xa1,0x18,0x02,0x37,0xf8,0xd7,0xba,0xb5,0x28,0x53,0x9b,0x40, +0xa3,0x24,0xf5,0x63,0xc1,0x49,0xd3,0xda,0x60,0xae,0x0f,0x19,0x7e,0xf4,0x14,0xf6, +0xba,0x68,0x3f,0x28,0xca,0xae,0xc3,0x10,0xaf,0x44,0xfc,0xf6,0x77,0x55,0xde,0x21, +0x0a,0x6b,0xf7,0xc0,0x49,0x3b,0x75,0x61,0x32,0xf5,0x0a,0x18,0xf6,0xd6,0xc0,0x9d, +0x52,0xcb,0x6b,0x89,0x3a,0xd5,0x6a,0x53,0xed,0xd5,0xfd,0xf7,0xf7,0x17,0xb7,0x88, +0x88,0x38,0x39,0x9a,0xb9,0xdb,0x7e,0xbe,0x8d,0xc3,0xa7,0xac,0xa8,0xb9,0x77,0x21, +0x88,0x92,0x56,0xba,0xdc,0x16,0xae,0x4b,0x59,0xf9,0xbf,0xd8,0x86,0xff,0x32,0xea, +0x1f,0xdb,0x37,0xfd,0x8f,0xd7,0xc4,0x4d,0xfc,0x95,0xee,0xac,0x59,0x65,0xf2,0xe8, +0xa2,0x90,0xba,0x6c,0x89,0x14,0xe4,0x8c,0x92,0xd2,0x17,0xb2,0x0c,0xf4,0x5c,0x39, +0x10,0x33,0x4d,0x4b,0xad,0x83,0x2f,0xcb,0xcb,0x7d,0xf6,0xee,0x7e,0x5e,0x6e,0xb4, +0xed,0xdd,0x90,0x66,0x44,0xbd,0xf8,0xee,0x93,0x4c,0xfe,0xfe,0x7f,0x6c,0x34,0x0c, +0x13,0x18,0x3e,0xd0,0x81,0x24,0x64,0x18,0x96,0xdd,0xf7,0xef,0xfe,0x5d,0x67,0x66, +0x4e,0xee,0xb4,0x3d,0x5e,0x40,0x01,0xc3,0x33,0x6e,0xff,0xff,0xf7,0xe6,0xdb,0x02, +0x7f,0x44,0x63,0x17,0x72,0xd6,0xbc,0x53,0x2a,0xc6,0x9e,0x96,0x73,0xa0,0x28,0xf2, +0x83,0xd5,0x08,0xe7,0xf5,0x8e,0x22,0xa3,0x27,0xbe,0xb8,0x24,0xe5,0xb6,0x61,0x1f, +0x01,0x89,0xff,0x9e,0xfb,0xb4,0x13,0xe1,0x9a,0x2e,0xcb,0x7f,0x67,0x1d,0x57,0x62, +0xec,0x0c,0x3f,0xe4,0x79,0x33,0x43,0x21,0x0b,0xe0,0x2c,0x8a,0x0c,0x1e,0x29,0xbc, +0x1a,0x46,0xd8,0x37,0x05,0xa5,0x68,0x8f,0xb7,0x27,0x37,0x1a,0x33,0x60,0xbe,0xa0, +0x0b,0x0a,0xb6,0x68,0xfa,0xf4,0xf3,0x98,0x47,0x99,0xb9,0x50,0xd1,0x61,0x0a,0x55, +0x00,0x0e,0x3a,0xb6,0xee,0xab,0xa8,0x1a,0x17,0xdb,0xa8,0x1f,0xb3,0x62,0x29,0x15, +0x8c,0x0a,0x65,0xc6,0x88,0x2d,0xf5,0xf4,0x16,0x25,0x96,0x17,0x90,0x68,0x5d,0x09, +0xf1,0x64,0xfc,0x3e,0x9d,0x3e,0xe9,0xac,0x0d,0x11,0x3d,0x72,0xed,0xb4,0xad,0x1e, +0xdd,0x6d,0xdf,0xef,0xc1,0x84,0x40,0x28,0x9f,0x96,0x0a,0x4f,0x28,0xe0,0x61,0x1c, +0x8b,0x62,0x2f,0x7e,0xfe,0x8c,0xbf,0x5b,0x16,0xb5,0xfb,0xef,0x5e,0x9f,0xbf,0x7b, +0x7a,0x80,0xdd,0x8f,0x99,0x84,0x4b,0x4e,0xfb,0xc6,0x1f,0xdd,0xd8,0xb0,0x08,0xb6, +0xa9,0x0a,0x93,0x3f,0x26,0xad,0x3b,0x83,0x76,0xf3,0xf8,0xbc,0x06,0x2d,0xfe,0xba, +0x89,0x45,0x5b,0xa2,0x70,0x05,0x85,0x87,0x6f,0xb1,0x25,0x0f,0x6b,0x0e,0xcb,0x29, +0x6b,0x01,0xc1,0xb2,0x7b,0x8d,0xe8,0xc5,0xeb,0x2e,0xed,0x44,0xb2,0x63,0x82,0xbb, +0x09,0x47,0xcb,0x4e,0xe7,0x67,0x64,0x26,0xef,0xc2,0x20,0x59,0xac,0x6b,0xf9,0xc7, +0xd1,0x66,0xc4,0xbb,0x38,0x5c,0x2a,0x09,0x16,0x8f,0x71,0x20,0x69,0x7d,0x72,0x96, +0xc0,0x92,0x2b,0x03,0x5a,0x97,0xa7,0x23,0x0f,0x59,0x9e,0xd9,0xf3,0x7d,0x7e,0x71, +0xcb,0xa3,0xad,0x47,0x64,0xf4,0xb9,0xde,0x2a,0x41,0xf5,0xe7,0xba,0x30,0xae,0x62, +0x2d,0x8e,0x0d,0x64,0x73,0x73,0x9c,0xc2,0xd3,0xd2,0xd8,0x31,0xb1,0x17,0x3c,0x42, +0x2b,0x70,0x7f,0x75,0x06,0x9b,0x2a,0xe6,0x83,0xd7,0xf4,0x60,0x39,0x36,0xdc,0x9b, +0xde,0x29,0xe0,0xf0,0xda,0x44,0x4e,0xff,0x88,0x11,0xde,0x99,0x04,0x90,0x7d,0x11, +0x5f,0x19,0x54,0xd4,0xc6,0x32,0x79,0x65,0x94,0x8f,0xb5,0xe6,0x82,0x36,0x70,0x29, +0xa3,0x96,0xdb,0xb7,0x4c,0x9a,0x67,0x41,0x6a,0xf8,0x02,0x95,0x80,0x73,0x7e,0x91, +0x4b,0x78,0xbc,0x7f,0xee,0x97,0xe9,0x57,0x81,0xbb,0x96,0xac,0x78,0x78,0xf5,0x9a, +0xc7,0x02,0xf0,0x06,0xd2,0xfc,0xf2,0x38,0x95,0x79,0xe6,0x38,0x22,0x19,0x90,0x76, +0x49,0xc9,0x60,0x7c,0x62,0x2a,0x45,0x56,0x1f,0x1b,0xad,0x2f,0x2d,0x14,0xae,0xef, +0x2b,0xcf,0xf1,0xaa,0xd2,0x9e,0xb3,0xfb,0x6a,0x8f,0xc1,0xc5,0xb9,0x3a,0x58,0x37, +0xdb,0x9f,0x57,0x69,0xcd,0xc1,0xf2,0x92,0xc9,0x39,0x89,0xb9,0x45,0x11,0x30,0xdf, +0x8a,0x71,0x9c,0x53,0xc8,0x7c,0x66,0xc8,0x12,0xf2,0xde,0x04,0xda,0xf0,0xb3,0x37, +0x76,0x5a,0xd5,0xad,0x41,0xe3,0x68,0x0b,0x1f,0xff,0x17,0x24,0x41,0xc5,0x8b,0x22, +0x07,0x12,0xe9,0xc0,0x3f,0x9b,0xff,0x8b,0x89,0x73,0x20,0x79,0xe0,0x25,0x08,0x3b, +0xef,0xc4,0x83,0xf7,0x88,0xc0,0xcb,0xdd,0xc4,0xa3,0xd6,0xdb,0x75,0xa2,0x8c,0x68, +0xa6,0x75,0xd7,0x5c,0xa8,0xbd,0xe9,0x41,0x2f,0x67,0x78,0x26,0x3a,0xfa,0x1b,0xb3, +0x50,0x2d,0x49,0x8d,0xb6,0x74,0xdd,0x50,0xa2,0x64,0xbc,0x45,0xe7,0xde,0x89,0x0d, +0x09,0xe6,0x1b,0xa5,0x85,0x66,0x6c,0x73,0xf5,0x6e,0x94,0x51,0x26,0xf3,0xaa,0xa0, +0x84,0xcc,0x55,0x7f,0xa2,0x35,0x8f,0x1d,0xcb,0x62,0x2f,0x33,0x2d,0xa9,0x10,0x75, +0xa6,0x0f,0x28,0xeb,0xa1,0x08,0xcd,0x4f,0x41,0x16,0x82,0x66,0xd5,0xc1,0x41,0x21, +0xc5,0x7d,0xd6,0x6a,0x66,0xf7,0x39,0xa3,0x9f,0x4d,0x31,0xaa,0x66,0x1b,0x92,0xb1, +0x05,0x8f,0x7e,0xd3,0xd9,0x51,0xb9,0x11,0x30,0x48,0xec,0x95,0x55,0xe3,0x96,0x68, +0x64,0x85,0xd4,0x24,0x2e,0x6d,0xe0,0xb9,0x7a,0x37,0x0a,0xd5,0x4c,0xa5,0x54,0x1c, +0xec,0x0a,0x75,0x1e,0x9e,0xa7,0xc1,0xbe,0x08,0x90,0xe3,0xe5,0x5b,0x69,0x58,0xfb, +0xef,0x3b,0x90,0x07,0x78,0x1f,0x0d,0x9a,0x06,0xf9,0x48,0x27,0x79,0x15,0x88,0xe8, +0x01,0x86,0x4b,0x20,0xb9,0xc5,0x05,0x97,0xb1,0x34,0x65,0xc2,0xfc,0x30,0xa6,0x28, +0x4d,0x7b,0xf4,0x77,0xf5,0x1d,0x6a,0xd7,0x2d,0x45,0xac,0x0c,0x9f,0x8e,0x12,0x38, +0x4c,0xf2,0xf9,0xda,0x51,0x1b,0xfd,0x9a,0x29,0x10,0xbe,0x87,0x74,0x76,0x1b,0x29, +0xcd,0x70,0x58,0xfe,0xee,0x01,0xe0,0x81,0x6b,0x44,0xb9,0x7a,0xfc,0xe3,0x13,0x39, +0xcc,0x30,0xfd,0x72,0x74,0xde,0x6d,0x19,0xaf,0x37,0xfb,0x82,0xce,0x34,0xf9,0x60, +0xd8,0x19,0x25,0x75,0xd4,0xfc,0xe0,0xbd,0x06,0x44,0x74,0x0e,0xc9,0xeb,0x8f,0x33, +0xd8,0x9e,0x07,0x7e,0x71,0xdd,0x69,0x43,0xc6,0x91,0x04,0x4d,0x65,0xbc,0xe5,0x4e, +0xa4,0x94,0xc4,0xfc,0x61,0x2f,0x63,0xb8,0x82,0x7f,0x9a,0xc1,0x07,0xe2,0xbd,0x8d, +0xcf,0x67,0x79,0xc9,0x9b,0x6f,0x0f,0x82,0x87,0x2c,0x46,0xbf,0x50,0x0c,0x73,0x39, +0xd7,0xf7,0x67,0xc1,0x8b,0x1f,0xb4,0x5e,0x13,0x55,0xaf,0xd1,0x0d,0xfd,0xc8,0xf5, +0x8b,0x98,0xc3,0xa5,0x07,0x14,0x2e,0xb1,0x8c,0xb1,0xfc,0x1a,0xd6,0x78,0x1e,0xdc, +0x22,0x42,0x9d,0xc3,0xb2,0x36,0x40,0x10,0x62,0x5b,0xab,0x53,0x17,0x8d,0xc1,0x56, +0xd0,0x97,0xd5,0xe7,0xce,0x18,0x46,0x11,0x4b,0x6a,0x02,0x73,0xbc,0x02,0xf4,0x90, +0x42,0x2c,0xcf,0x65,0xd7,0x0c,0x08,0x48,0x06,0xbb,0x26,0x8e,0x62,0x72,0x50,0x36, +0xc4,0x7a,0x2e,0x58,0xaf,0xba,0x04,0x49,0xa7,0x72,0x06,0x0c,0x75,0xfb,0x76,0xf9, +0xc4,0x89,0x04,0x95,0xd7,0xce,0x49,0x3d,0x30,0x3c,0x5f,0x22,0xcf,0xd8,0x7d,0x61, +0x46,0xa8,0x4c,0x64,0x54,0x1c,0x5d,0xbf,0x25,0xb8,0x7f,0x62,0x01,0x00,0x71,0x35, +0xdb,0x0f,0x46,0xbc,0x5c,0x90,0x0e,0xf7,0xee,0x69,0x66,0x9d,0x03,0xf5,0x34,0x0a, +0x17,0xdf,0xb7,0x27,0x9a,0x62,0x20,0xd7,0x4e,0x76,0xf6,0x7e,0x08,0xd8,0x48,0xb4, +0x77,0x01,0x99,0xc8,0x1f,0xff,0xe7,0x1a,0xda,0x78,0xfc,0x28,0x3c,0x1e,0xe7,0x63, +0x0e,0x3e,0xee,0xb9,0x40,0xfe,0x6c,0xcc,0x84,0x6e,0x20,0x9f,0xc0,0xff,0xd9,0x14, +0xe1,0xbf,0x7f,0x43,0xda,0xf1,0x53,0xd1,0xff,0x20,0x37,0x1d,0xd2,0xb4,0x97,0x34, +0x83,0xb5,0x9d,0x90,0x4f,0x84,0x61,0xcb,0xb5,0x9e,0x06,0xdb,0x31,0xeb,0xc1,0xd5, +0xc2,0xa0,0x3a,0x96,0xe8,0x28,0x4f,0xce,0xe2,0x41,0x19,0x47,0x5d,0xc4,0x3a,0xe1, +0x89,0x0c,0x25,0x6a,0x0f,0xfe,0xae,0xce,0x42,0x4d,0x59,0x71,0xa3,0x6e,0x21,0xe0, +0xd4,0xbb,0xa2,0x41,0x13,0x3a,0xf8,0xea,0xd6,0xd0,0x1e,0x17,0x45,0xdb,0xa8,0x6f, +0x27,0x06,0xb3,0xb6,0x93,0xfa,0xd8,0xb6,0xd1,0x46,0x73,0x2b,0xee,0x99,0x9e,0x41, +0x01,0x08,0xa1,0x04,0x7f,0xad,0xf4,0x7a,0xa9,0x32,0x8a,0x65,0x07,0x3b,0x0c,0xc9, +0xa3,0x37,0x09,0x88,0xf7,0x21,0xba,0x8a,0xbc,0x47,0x19,0x74,0x5c,0x9b,0xd9,0x9b, +0x77,0x01,0x63,0xcc,0x46,0x9c,0xf2,0x17,0x6c,0xe3,0x6b,0xae,0x8c,0xbb,0x6c,0xe5, +0x28,0x4b,0x3e,0x7e,0xee,0x4c,0x64,0x05,0xa2,0x4a,0xa8,0xc7,0xa9,0x66,0xc3,0xd1, +0xa3,0xd1,0x23,0x17,0x14,0x4f,0x80,0x28,0xab,0xb5,0xab,0xdc,0x7b,0xea,0x5a,0x76, +0x8f,0xe9,0xb3,0x2c,0xed,0xd4,0x42,0x22,0x2c,0xe0,0x2c,0x04,0xdf,0x4b,0x07,0xca, +0xde,0xbb,0xce,0x4b,0xbb,0xa6,0x3a,0xaa,0xcc,0xb9,0xed,0x33,0xa7,0x02,0x8a,0x99, +0xe4,0x0e,0x2c,0xac,0xaf,0x22,0x65,0xa8,0x47,0xe6,0x7d,0xa8,0x7f,0x90,0x7b,0xb2, +0x6b,0xf1,0x3d,0xaf,0x18,0x24,0xc3,0x32,0x37,0xf2,0xb5,0xb9,0xdb,0x0e,0x0f,0xf8, +0x09,0xdb,0x5b,0x1b,0x50,0x32,0x23,0xf9,0x2b,0xb0,0x77,0xee,0x90,0x65,0x92,0xa4, +0xaf,0x12,0x81,0xf7,0x41,0xb9,0x51,0x9f,0x10,0x12,0x1c,0xc6,0x30,0x7f,0x64,0x8e, +0xd6,0xe5,0x97,0x95,0xd8,0xa8,0x7a,0x10,0x94,0xf7,0x98,0xf3,0xf0,0x7f,0xb2,0x80, +0x2d,0x1e,0x05,0xe5,0xbc,0x99,0x58,0xb5,0x6d,0xaf,0x05,0x62,0xf2,0x87,0xf2,0x60, +0x1e,0x20,0xff,0x91,0xe9,0xc8,0x8a,0x71,0xad,0x87,0x3e,0x23,0x2d,0x95,0x14,0x41, +0x72,0xb9,0x21,0x2b,0xd3,0x62,0xc9,0x02,0xe0,0x50,0xac,0x66,0x77,0xed,0x04,0xc1, +0x5c,0xd7,0xf6,0x5e,0x80,0x31,0x3e,0xf9,0x62,0x95,0xc1,0x16,0xdf,0x7a,0x5b,0x86, +0x68,0x6f,0x3c,0xb7,0x28,0x09,0x73,0x83,0x1d,0x3a,0xef,0x07,0x70,0x3e,0x8d,0x1d, +0x25,0x56,0x49,0x51,0xbf,0xbe,0xe2,0x36,0x21,0x48,0xbd,0xb1,0xfc,0x7a,0x56,0x76, +0x24,0xb3,0x02,0x08,0x44,0x29,0x81,0xb7,0x4a,0xfc,0xc8,0x3f,0x7c,0xd3,0xce,0x69, +0x96,0xbb,0x0e,0x18,0x45,0x28,0x3e,0xda,0x80,0x88,0x31,0x4d,0xaf,0x79,0xfa,0x99, +0xc3,0x65,0x47,0x65,0x56,0xc1,0x04,0x95,0xa0,0xcb,0xf5,0xa9,0x25,0xc7,0x51,0x76, +0xf9,0x18,0xb1,0xe5,0x5b,0x1b,0x64,0xca,0x95,0xa4,0x38,0x22,0x92,0xcd,0xaa,0x48, +0xd6,0x3c,0x96,0x1f,0x62,0xb1,0x5e,0xfc,0xe8,0x14,0x9c,0x12,0xd9,0x71,0x5c,0xdc, +0xc0,0xfb,0x2d,0x22,0xda,0x8b,0xce,0x8a,0x80,0xec,0x65,0xa3,0x7d,0xa5,0xeb,0x8b, +0x29,0xe3,0x6b,0x52,0x45,0xb3,0xca,0x8b,0x96,0x51,0x9d,0x16,0x59,0x82,0x75,0x65, +0x40,0xd9,0xb0,0xaf,0x69,0xa0,0x9f,0x31,0x74,0xf4,0xb9,0x7f,0xfa,0x1c,0xa7,0xea, +0x9d,0xc2,0x9e,0x3f,0x62,0xcc,0x48,0x3f,0xa4,0xdb,0x5c,0x48,0x28,0x1f,0xef,0x96, +0x5e,0xe1,0x57,0x0d,0x91,0x35,0x46,0x0b,0x67,0xe3,0x43,0x49,0x5b,0x1e,0x23,0xf6, +0x82,0xd3,0x65,0xf9,0x69,0xc0,0x13,0x17,0xa4,0xcd,0x8b,0x9b,0x59,0x80,0x79,0x3b, +0x87,0x82,0x0d,0x69,0x36,0xc6,0xb8,0xdb,0xe5,0x8e,0x02,0x57,0x95,0xb8,0x17,0x20, +0x67,0xa4,0xb0,0x31,0x4a,0xe3,0x10,0x26,0xc6,0xc9,0x70,0x79,0x1d,0xa5,0x24,0xa5, +0xee,0x2c,0x15,0x24,0x81,0xfa,0xd7,0x9d,0xf2,0x6d,0xba,0x16,0x4f,0x65,0x1e,0xbe, +0xc0,0xc6,0x8f,0x35,0x1b,0xd0,0x88,0x44,0x67,0x4c,0x5a,0x1c,0x03,0x1b,0xc5,0xc0, +0xb2,0x8d,0xd3,0xdc,0x2c,0x2a,0x01,0x8d,0x7a,0x3f,0xa1,0xc6,0x55,0xef,0xb7,0x13, +0x2e,0xe9,0x1d,0xec,0x38,0xa9,0xcd,0x6d,0xa5,0x79,0x4d,0x2c,0x50,0xb4,0x2a,0x12, +0x6a,0xa9,0x12,0xe1,0x9f,0x7d,0x29,0x3b,0xa4,0x58,0x2f,0xba,0x58,0x7a,0xa5,0xe3, +0xe3,0x41,0x26,0x5a,0xaf,0xb8,0xd4,0xd8,0xb4,0x61,0x0c,0x61,0xbf,0x60,0x83,0x2e, +0xa9,0xc5,0xf4,0x7d,0xe0,0xa2,0x97,0xa8,0xb5,0xc1,0x02,0xdd,0x5f,0x3f,0xe4,0x38, +0xf1,0xce,0x83,0xa4,0xef,0xaf,0x8d,0xe8,0x4b,0xc8,0x26,0x1c,0xfd,0xad,0x3a,0x53, +0x47,0x00,0x2a,0x03,0x10,0xef,0x02,0x01,0x41,0xaf,0xb0,0xa1,0xfc,0xeb,0xaa,0xcd, +0x0e,0x9e,0x5d,0xda,0x38,0x00,0xc8,0x89,0x62,0x33,0x93,0x2b,0xd1,0xe3,0x94,0xdf, +0xd0,0xcc,0x6f,0x2f,0x7e,0xc3,0x31,0xc6,0x4d,0x87,0x73,0x9a,0xbc,0xcf,0x5d,0x79, +0x4f,0xef,0xe7,0x7b,0x30,0xf2,0x0f,0x5c,0x40,0x04,0x31,0xd4,0x9f,0x66,0xd3,0x63, +0x9a,0xa2,0x14,0x51,0xf7,0x91,0xfb,0xf5,0x9a,0xbf,0x01,0xe9,0xa1,0x34,0xe4,0x99, +0x53,0x26,0x6a,0x2c,0x87,0x22,0x22,0xbc,0x90,0x90,0x1e,0xc9,0x21,0x0e,0x7d,0x6d, +0xa9,0x38,0xa5,0x9b,0xde,0x2a,0x5b,0x8f,0x10,0x75,0x1a,0x80,0x9e,0x56,0x3a,0x51, +0x22,0x3f,0x74,0x89,0xcb,0xc8,0x27,0xc2,0xd9,0x8f,0xae,0xe7,0xd5,0xb5,0x8f,0x21, +0xf9,0x3e,0x25,0x2d,0x44,0xb5,0x83,0x76,0x6f,0xcd,0xd4,0xf1,0xf6,0xb1,0x07,0xd3, +0x47,0x39,0x4c,0xb9,0x23,0x1b,0x5d,0x18,0x95,0xd2,0xdd,0x85,0x77,0xf9,0x0a,0xdb, +0x4c,0x01,0x2d,0xd6,0x38,0x4a,0x22,0xd3,0x94,0xd7,0xd5,0x35,0x9c,0xf9,0xdb,0x9a, +0x47,0xe7,0x26,0xfc,0x0f,0xd2,0x21,0xea,0x78,0x9a,0x96,0x5f,0x9c,0x78,0x70,0x75, +0x79,0x9a,0x71,0x9f,0x3b,0x43,0xdb,0xc4,0xfb,0xd3,0x9d,0xad,0x09,0x4d,0xe7,0x7a, +0x13,0x38,0x5f,0xc9,0x8c,0xfb,0xf0,0x98,0x63,0x27,0x1f,0x25,0x34,0x4b,0x56,0x60, +0xc6,0xe4,0xac,0xbb,0x69,0x2a,0xfd,0x3f,0xb3,0xb7,0xe1,0xb0,0xb9,0xb5,0xcd,0xb0, +0xfb,0x60,0x0a,0x5d,0x2d,0xb4,0xa9,0xea,0x19,0xd0,0xb6,0x6a,0x50,0x41,0xc9,0xed, +0x44,0x38,0xef,0xa1,0xb2,0x1b,0xf5,0x9a,0x65,0x7d,0x96,0xf9,0xfc,0xf2,0x58,0x94, +0x7a,0x5b,0xe5,0xd0,0xad,0xba,0xb7,0xa2,0x90,0x23,0x9f,0x2d,0x7d,0xba,0xef,0x2a, +0x4f,0xdf,0x21,0x1f,0xbb,0x4b,0x68,0x88,0x97,0xb3,0x97,0x9d,0xd9,0xff,0x60,0x02, +0x79,0x0d,0x37,0x05,0x9d,0x2c,0xb7,0x26,0x94,0x24,0xb8,0xe6,0x84,0xa6,0xcd,0xf2, +0x32,0xb1,0x6e,0x66,0xfa,0x87,0xdc,0xe0,0x4d,0x47,0xfe,0xc5,0x93,0x21,0x4b,0x1c, +0x02,0x01,0xe9,0x1b,0x56,0xd6,0x29,0xce,0xce,0x20,0x36,0xb2,0x31,0xcd,0xb1,0xef, +0x91,0x4e,0xd7,0x87,0x95,0x8c,0x91,0xfc,0x62,0x3e,0xe7,0x03,0x3a,0x86,0xf8,0x07, +0xc8,0x4d,0xa0,0x03,0x5d,0x20,0xab,0x90,0x4a,0x22,0xee,0xa8,0x32,0xbb,0x7a,0xae, +0xfe,0xd4,0x08,0x59,0x13,0x23,0xf4,0xe3,0x26,0x4f,0xa0,0x46,0xac,0x7e,0x03,0x52, +0xe7,0x09,0x07,0xc7,0x1f,0x8c,0xae,0x13,0x39,0xfb,0x2e,0x16,0xc9,0x92,0xb2,0x7e, +0xea,0x52,0x61,0x6c,0x32,0xd8,0x1e,0xf5,0xdf,0x3b,0xe7,0x06,0x70,0x28,0xfd,0x8c, +0x17,0x1c,0x61,0xff,0xc6,0x83,0x58,0x3d,0xca,0x4b,0xcc,0x1f,0x48,0xc7,0x6a,0xb8, +0x11,0x06,0x21,0x66,0xcc,0xd5,0x56,0xc8,0x45,0x46,0xb9,0x27,0x81,0xc2,0x5a,0x81, +0x2d,0xf5,0xe4,0x05,0x73,0xbc,0x50,0xcb,0x4a,0x02,0xa1,0x6b,0x4a,0xfe,0x52,0x90, +0xab,0x29,0xb4,0x42,0x4d,0xee,0x3c,0x3f,0x19,0x2f,0x3e,0xb5,0x5e,0x7d,0xd8,0x26, +0x2b,0xde,0x76,0x2e,0x29,0x06,0x68,0xef,0xb9,0xc7,0xd3,0x13,0xfd,0x2d,0x30,0x38, +0x45,0xf1,0x32,0xde,0x9e,0x9d,0x60,0xfc,0x57,0x31,0x79,0xdd,0xfa,0xd2,0x83,0x84, +0x95,0x91,0x6c,0xab,0x8a,0xd3,0x7b,0x50,0xcc,0xde,0x83,0x71,0xb8,0x68,0x70,0x06, +0xe8,0x09,0x0b,0x50,0xb4,0x6e,0x61,0xfe,0x38,0xe2,0xc3,0x44,0xec,0x8a,0xe8,0x00, +0xdc,0x30,0xbc,0xf4,0x84,0x39,0xda,0xc0,0x34,0xd1,0x37,0x32,0xac,0x96,0xee,0x8f, +0xef,0x9c,0x8d,0x09,0x52,0x22,0x4e,0xae,0x8a,0x35,0xfe,0xb0,0x9a,0xa7,0xa9,0xc3, +0x23,0xc6,0x05,0xc2,0x94,0xc9,0xe8,0x52,0x64,0xdf,0xaf,0x56,0x3a,0xd9,0x73,0x02, +0xca,0x95,0x1a,0x66,0x35,0xbe,0x25,0xd1,0xe5,0xf1,0xe3,0x2a,0x9a,0xc5,0x7a,0x04, +0xfc,0xb9,0x21,0x3e,0x01,0x13,0x5e,0xe4,0x89,0xf2,0x09,0xc6,0x45,0x54,0x5a,0x52, +0xa6,0xad,0x0c,0x1d,0x88,0x2e,0xee,0xef,0x8f,0xfe,0x1c,0xa8,0x70,0x34,0x09,0x52, +0x01,0x1c,0x7d,0xf4,0x13,0x49,0x0b,0x73,0xe6,0x82,0x8a,0x85,0x81,0x00,0x75,0x96, +0x61,0x95,0x3c,0xb3,0x51,0x27,0x6b,0xf5,0x88,0xd2,0x7a,0xb0,0x74,0x47,0x86,0x92, +0xfe,0xac,0xd4,0x8e,0xd3,0x5c,0xd8,0xdb,0x73,0xda,0x97,0x5f,0xaa,0xa4,0x70,0x02, +0xfc,0x44,0x19,0x6f,0xbd,0xb4,0xf9,0x78,0x6b,0xd2,0x31,0xa2,0x9d,0x8d,0xe0,0x78, +0x72,0x0a,0xbf,0x73,0xdb,0x39,0xe8,0xda,0xfb,0x36,0xac,0xf3,0x25,0xc7,0xa4,0xc6, +0x14,0xe7,0xdd,0x9f,0x52,0x5f,0x60,0x88,0xfa,0xf4,0x29,0x4e,0x11,0xd0,0x0e,0x50, +0xf7,0xa1,0x42,0x0a,0x14,0x7d,0xd6,0xae,0xf8,0x08,0x7e,0xfc,0x49,0x8c,0x76,0x9f, +0xf5,0xb2,0x36,0xf8,0xbe,0x0c,0xfb,0x70,0xec,0x4b,0xa9,0x9e,0xba,0x1e,0xe8,0x4b, +0x2a,0x74,0x9e,0x63,0x1f,0xbe,0x74,0xe6,0x32,0xf5,0x6f,0x16,0x78,0xaa,0xc4,0xab, +0x69,0x1f,0x67,0xe1,0x3e,0x8e,0x0f,0x67,0x10,0xa4,0x0b,0x2d,0x7a,0xf7,0x23,0x64, +0x86,0x83,0x07,0x31,0x7f,0x05,0x08,0xdd,0x85,0xa2,0xe0,0xb8,0xaf,0xfc,0x2f,0x60, +0xa6,0x85,0x00,0x9c,0x81,0x35,0x58,0x76,0x16,0xce,0xb9,0x00,0xbf,0xf4,0xa6,0xe1, +0x06,0x81,0x21,0xf6,0x74,0xe2,0xf5,0xa6,0x87,0xe2,0x0c,0x6d,0x30,0x65,0x28,0x6c, +0x22,0x85,0x0c,0x0c,0xfe,0xd7,0x86,0x61,0xcb,0x49,0xb1,0x01,0x25,0xf3,0xf5,0xb1, +0x82,0x09,0xb0,0xf6,0x70,0xa5,0xea,0x5b,0x26,0xc8,0x2d,0x06,0x3d,0x55,0x50,0xa9, +0x01,0x5f,0xfe,0x34,0xec,0x08,0x58,0xa9,0x63,0xab,0x27,0x16,0x20,0x93,0x33,0x5d, +0x6d,0xe2,0x35,0xe2,0x7f,0x3c,0xb1,0x7b,0x27,0x76,0xf5,0x96,0xa2,0xe3,0x96,0xdf, +0xd3,0xf7,0x24,0xf2,0x64,0x2c,0x39,0x4c,0xcf,0xab,0x39,0x2e,0x1e,0x3c,0x72,0x13, +0x6f,0xa8,0x22,0xc8,0x8e,0xab,0xb6,0x0d,0xef,0x7c,0x00,0x15,0x23,0xe8,0xb7,0xe2, +0x8d,0x32,0xc2,0xdc,0x9b,0x5c,0x70,0x2f,0xcf,0x81,0x2a,0xf9,0x5f,0x1c,0x5b,0xf7, +0x0c,0x71,0x40,0xf4,0xe3,0xaa,0x93,0x31,0x40,0xc7,0xdb,0xed,0x5a,0x1f,0x30,0x1f, +0x8e,0x8f,0x3b,0x9d,0x1d,0x28,0xa3,0xd9,0xe9,0x66,0xbf,0x78,0x5c,0xe5,0x42,0x95, +0x2a,0x30,0xfa,0x77,0xf5,0xe8,0x5a,0xa8,0x92,0x88,0x44,0x93,0x7f,0x97,0x20,0x38, +0x64,0x82,0x4a,0xa0,0xe6,0x2c,0x98,0x69,0xcb,0x2b,0x7c,0xfa,0x18,0x45,0xdc,0x10, +0x0c,0x8a,0xb9,0xdc,0xec,0x5b,0xd0,0x6c,0x06,0xaa,0xc3,0x83,0xd6,0x55,0xef,0x69, +0x70,0xe3,0xf3,0xa4,0x6e,0x2c,0x44,0x29,0x8c,0xc0,0x20,0x48,0xa0,0xe6,0x87,0xb4, +0xf8,0x75,0x9c,0xfa,0x15,0xf0,0x94,0xd0,0x06,0x04,0x86,0xa2,0xf1,0xe6,0xac,0xd4, +0xb7,0x35,0x94,0x6a,0xb5,0x4a,0xbc,0xa3,0x76,0x7c,0xe2,0xb9,0x71,0xbf,0x5b,0xb0, +0xcf,0x17,0x09,0xa3,0x49,0xb9,0x4b,0xa4,0x45,0xdb,0x14,0xbd,0x68,0x46,0xbe,0x89, +0x6d,0x62,0xfd,0x6e,0xf5,0x2c,0x73,0xd3,0xe1,0x71,0xdc,0x17,0x23,0x4c,0x1a,0x9b, +0xcf,0x4c,0x4c,0xfe,0x30,0x56,0x74,0x20,0xe5,0x92,0x84,0x09,0x8a,0x3d,0x52,0x8b, +0x45,0x6a,0xb5,0x81,0x54,0xf5,0x24,0x7f,0xe8,0xce,0x7b,0x90,0xc8,0x78,0x77,0xb9, +0x4d,0x9f,0x0b,0x2f,0x5b,0xf9,0xc2,0xc7,0x0f,0x2e,0x35,0x3a,0xe3,0xed,0x13,0x0e, +0x83,0xd5,0x15,0xdf,0xd4,0xad,0x9b,0x77,0xf3,0xb0,0x83,0xa2,0x0f,0x3e,0x01,0x7b, +0xb0,0xf8,0x66,0x5f,0x3a,0x45,0x78,0xd9,0x7b,0x5a,0x69,0xae,0xff,0xf6,0x51,0x67, +0x2d,0x97,0x3e,0x59,0x19,0xd7,0xd9,0x7a,0x69,0x79,0xe6,0xae,0x94,0xb0,0xcf,0x01, +0x8e,0x4c,0x2c,0xef,0xb8,0xd6,0xc8,0xd8,0xab,0xb6,0x57,0x90,0xd8,0x47,0x47,0x1d, +0x51,0xda,0xef,0xa0,0xb5,0xd7,0xf5,0x9f,0x62,0xd9,0x9f,0xaa,0xce,0x7b,0xf9,0xe4, +0xd3,0x3d,0x1e,0xbc,0x0d,0x68,0x3e,0x6f,0xec,0x90,0x41,0x9a,0x78,0x06,0xce,0xa8, +0x4d,0x67,0x14,0xac,0x0c,0x3c,0x1e,0xbd,0x16,0xc6,0xc0,0xbb,0xdc,0x7d,0x5f,0xfb, +0x8b,0x31,0x1d,0xc7,0x57,0xb7,0xf2,0x6f,0xf2,0xde,0x3d,0x6d,0xdc,0xce,0x11,0xdc, +0x4e,0xf9,0x17,0x5b,0xe4,0xdf,0x33,0x7f,0xf3,0x74,0x9f,0x5f,0xa3,0xf0,0x80,0xd5, +0x0c,0x7b,0x7b,0xf5,0x19,0x20,0x08,0x35,0x23,0xbf,0x94,0xc6,0xd2,0x9c,0x0e,0xec, +0xb1,0x43,0x58,0x3a,0x3b,0x94,0x60,0xb2,0xc9,0x10,0xf8,0x6b,0xb6,0xcc,0x86,0x73, +0x7b,0xf9,0xa7,0xc9,0x95,0x57,0x69,0xa3,0x40,0x8a,0xeb,0xd5,0x03,0x6d,0xc2,0xf2, +0x60,0xac,0xdb,0x2f,0xbf,0x63,0x21,0x83,0xc9,0xe1,0x17,0xd7,0x7d,0xce,0xe0,0xb6, +0x31,0x93,0xe0,0x37,0x36,0x89,0x9b,0x29,0xab,0x5d,0x6f,0x82,0x76,0x9b,0xa8,0x61, +0xfe,0x06,0xc0,0x51,0x31,0x15,0xa4,0xf4,0x1c,0x33,0xa7,0xf0,0x42,0xdc,0xf9,0xbe, +0xe2,0xf9,0xdf,0x02,0x58,0xef,0xfd,0xf3,0xd6,0x4e,0x69,0x9f,0xc2,0x2b,0xf7,0x40, +0x93,0x4a,0x0a,0xd1,0xc8,0x75,0x99,0xad,0xcd,0x46,0x49,0xf7,0xf1,0x95,0x17,0x7b, +0x30,0x64,0x55,0xa2,0x97,0x2a,0x28,0xca,0x3f,0x4c,0x9b,0xce,0xfc,0x5b,0x50,0x97, +0x61,0x38,0xe2,0x02,0xdf,0xdd,0xda,0xf5,0xf9,0xb4,0x4e,0xec,0xd8,0xd1,0x65,0xd9, +0x8b,0x68,0x34,0x0c,0x15,0x26,0xcc,0x7c,0xb3,0x27,0xa9,0x88,0x19,0x09,0xcb,0xa5, +0x20,0x06,0x6d,0xec,0x53,0x6b,0x43,0x2c,0x36,0x09,0x60,0x1b,0xef,0xe6,0x1b,0x4e, +0xed,0x4d,0x92,0x51,0x52,0x2f,0x51,0x6d,0x4c,0xdf,0xea,0xbc,0xad,0x63,0xe6,0x1a, +0x88,0xa6,0x9a,0xc8,0x53,0x6f,0xdf,0x7d,0x4d,0xbd,0xa2,0xfe,0x79,0x9f,0xaf,0xc9, +0x76,0x2e,0x01,0x5c,0x1a,0x3e,0xda,0x2f,0x9a,0x4f,0xb3,0x29,0x9d,0xe3,0xa9,0x59, +0x53,0xe9,0x04,0xdf,0x1b,0x4f,0xa5,0xfd,0xcb,0x8f,0xe3,0xad,0x20,0x60,0xc4,0x49, +0x37,0x8b,0xf3,0xbe,0xc2,0x3e,0xb0,0x32,0x60,0x8f,0xc6,0x20,0x78,0x06,0xde,0x14, +0x1e,0x11,0x60,0x14,0xcd,0x11,0xe3,0xc2,0x0b,0x35,0x79,0xa7,0x5f,0x35,0x21,0x78, +0x00,0xb9,0xed,0x03,0x4c,0x73,0x85,0xce,0x88,0x16,0x22,0x14,0xf6,0x52,0xd4,0x93, +0xde,0x33,0x21,0xd7,0x32,0xe7,0xe6,0xf6,0x1c,0xe5,0xbb,0x11,0x7d,0x7e,0x2c,0x02, +0xa4,0xe1,0x06,0x83,0xf0,0xb4,0x9e,0x10,0x6e,0x5b,0xf3,0x92,0x81,0xc9,0x48,0x97, +0xa2,0x1b,0xec,0xc4,0xca,0xb4,0x8c,0x0d,0x22,0x53,0x85,0xfe,0x96,0xcc,0xd5,0x06, +0xa0,0xe3,0x8d,0xd5,0xc1,0x36,0x6f,0x1e,0xe4,0xac,0x79,0x7f,0xf1,0x04,0x72,0x83, +0xe0,0x18,0xb6,0x2f,0x42,0x55,0x7a,0x9a,0x02,0x58,0xc5,0x71,0x90,0x73,0xc6,0x59, +0xd4,0x43,0x64,0x93,0xf6,0xb5,0xad,0x32,0x6b,0x78,0x22,0x53,0x7e,0x58,0x5d,0x99, +0x52,0x19,0x8c,0x6f,0xdd,0x96,0xb1,0xc3,0xb4,0x18,0x36,0x1e,0xfe,0x5e,0xb1,0x64, +0x89,0xb1,0xf9,0x1e,0xd3,0xbc,0x87,0xf7,0x19,0x86,0x72,0x7e,0x9e,0x95,0x54,0x9b, +0xd6,0x3b,0x39,0x6c,0x51,0x2b,0xbc,0x18,0x35,0x18,0x5f,0x65,0xd1,0x3b,0x4c,0xc0, +0xc1,0xba,0x02,0x49,0x79,0xce,0xe2,0x37,0x99,0x1d,0xc1,0x68,0x73,0xa1,0xfc,0xc7, +0xc7,0xb6,0x3d,0xcc,0xa8,0xc1,0x0e,0x4d,0x2f,0x5b,0x96,0xe8,0xa6,0xe0,0x19,0x52, +0xba,0xca,0x58,0xad,0xfa,0xee,0x6d,0x16,0x1d,0xe1,0xef,0x17,0x77,0x88,0x79,0xdf, +0xc0,0x9a,0x74,0x82,0x9f,0x24,0xfc,0x45,0x4a,0xee,0x70,0xa3,0x02,0xa3,0x38,0x13, +0xf8,0xb1,0xfe,0x94,0x10,0x2d,0xa7,0x0a,0x42,0x79,0x64,0x74,0x7a,0x6a,0x3d,0x10, +0xe0,0x9a,0xf6,0x25,0x01,0x0e,0x9b,0x35,0xf8,0x70,0x32,0x6e,0xe9,0x49,0xe1,0xca, +0x30,0x22,0xdf,0x31,0x7f,0x47,0xf3,0x07,0x18,0x86,0x89,0x7b,0x2f,0x46,0x0f,0xe7, +0x7a,0x2e,0x9b,0x51,0x07,0x37,0xc6,0x41,0xb7,0x1c,0x39,0xfb,0xf5,0x77,0x3e,0xd1, +0x1a,0x09,0x20,0x9b,0xde,0xe6,0xb0,0xcb,0x85,0xc0,0x90,0xc6,0x0c,0x69,0xcf,0x65, +0x6c,0x20,0x09,0xf0,0x4f,0xa4,0x40,0x22,0x43,0xca,0xc0,0xa6,0x0b,0xe3,0x1f,0xd1, +0x52,0x43,0x6a,0x4a,0x90,0x7c,0x9f,0xe1,0xe4,0x34,0x89,0xe5,0x56,0x5f,0xed,0xa2, +0x67,0xa7,0xec,0x53,0xdf,0x0e,0x19,0xd3,0x9d,0x4c,0xa9,0xfa,0x74,0xa5,0x68,0x6a, +0x48,0xb3,0x81,0x15,0xc4,0x03,0xde,0x59,0xc8,0x3e,0x62,0x35,0x72,0xbc,0xd0,0x3e, +0x76,0x89,0xfa,0x80,0xe6,0x5c,0x39,0x55,0xb2,0x64,0xf5,0x29,0x22,0xa9,0x8f,0x6c, +0x01,0xe8,0x06,0x87,0x1b,0xbc,0x0d,0x2c,0x1a,0xc2,0xe1,0x20,0xb6,0xa8,0x70,0x19, +0xf2,0xab,0x5c,0x21,0x6b,0x1e,0x9b,0xa4,0x32,0x66,0x7b,0x3e,0x17,0x1e,0xca,0xc0, +0x9a,0x18,0x72,0x3c,0xe9,0x27,0x76,0x88,0xcc,0xcf,0x3f,0xaf,0x58,0x6c,0x2b,0x9c, +0x9d,0x8e,0xd0,0xee,0x9e,0x02,0x02,0xf8,0x6d,0x1f,0xb4,0x5a,0x20,0x12,0xc6,0x50, +0xe5,0xfa,0x64,0x73,0x75,0xea,0xb4,0x09,0x8f,0xee,0x57,0xfe,0x95,0x44,0x88,0xa0, +0xf0,0x8f,0x4f,0x3d,0x64,0xa6,0x41,0x99,0x4d,0x87,0xc1,0x81,0x24,0xf4,0xe4,0x83, +0x35,0x4b,0xda,0xb4,0xb1,0xa6,0x0a,0x6e,0xbc,0xdf,0x7b,0xe1,0x56,0x73,0xec,0x6b, +0x04,0x0a,0x8f,0x89,0xed,0x1a,0x02,0x50,0x4b,0x0e,0x7c,0xf6,0xa7,0x7c,0x01,0x7e, +0x04,0xe9,0x0a,0xfc,0x69,0x1d,0x07,0x92,0x45,0x2d,0x26,0x23,0xb5,0xe9,0x9b,0x97, +0xbe,0xac,0x08,0x1f,0x32,0xa5,0x82,0x83,0xc4,0x7c,0xdd,0xf5,0xe1,0xfc,0x66,0x84, +0xb4,0xc0,0x48,0xa0,0xc1,0xa4,0x0b,0x60,0xb2,0x07,0xf3,0xe4,0xa5,0x08,0xc9,0x4a, +0xa0,0x83,0x22,0xd1,0x04,0xd9,0xd0,0x68,0x64,0x17,0xf4,0x59,0x96,0xfa,0x46,0xcc, +0x7e,0x3d,0x5d,0x2f,0x7e,0xf4,0x4d,0xda,0x15,0x6b,0x4e,0xb8,0xd2,0xf0,0x3d,0x4d, +0x5c,0x6c,0x56,0x31,0xa7,0x4a,0xd0,0x88,0x7a,0x67,0x9d,0xb7,0x41,0xfa,0x46,0x88, +0x2d,0x95,0xf6,0x10,0xc7,0x6d,0x64,0xd4,0x0e,0xfd,0x76,0xb3,0x37,0xba,0xfc,0x34, +0xaf,0x9d,0xc6,0x18,0xc1,0xf8,0xa9,0x49,0xe9,0x52,0xb8,0x56,0x72,0xb4,0x5d,0xeb, +0xaa,0xd8,0x54,0xb0,0x42,0xb4,0x49,0x0e,0x8f,0xd3,0xe7,0x51,0xde,0xb9,0x27,0xf9, +0xcc,0xce,0xcf,0xc0,0x1e,0x30,0x59,0x07,0x11,0x9f,0xa7,0xaf,0x1c,0xe0,0x66,0x08, +0xad,0xda,0x1e,0xc6,0x9b,0x63,0x2c,0xbe,0x52,0x73,0xbc,0x10,0xdd,0xf1,0xa0,0x5e, +0x7c,0x0e,0x2e,0x0b,0xb3,0xa6,0x00,0xfd,0xce,0x2c,0xf6,0x54,0x8a,0xf2,0xd0,0xef, +0xa8,0x07,0xe6,0xa9,0x8d,0x5a,0xd7,0x99,0x8c,0xd2,0xbd,0xf2,0x5d,0xf8,0x7f,0xdf, +0xbb,0xdd,0xc1,0xa1,0x18,0xaf,0x80,0x89,0x99,0x00,0x4b,0x80,0x5c,0xbe,0xa7,0x28, +0x33,0x22,0xf8,0xb4,0xe0,0x8f,0xd0,0x79,0x6e,0x01,0x5f,0x63,0xb1,0xcf,0x98,0x63, +0x31,0x0a,0x48,0x58,0x08,0xd5,0x02,0x31,0x62,0x20,0x38,0xc2,0x26,0xbd,0xb9,0x70, +0xb0,0x0b,0x25,0x21,0x4c,0xc1,0x71,0x3f,0x7d,0x4f,0x1e,0xd6,0xdf,0x79,0x0a,0xf9, +0xd3,0x4e,0xd8,0x6a,0xee,0x23,0x67,0x18,0x28,0x72,0x46,0xe4,0xee,0x93,0x93,0x2f, +0x23,0x76,0x1b,0x45,0x71,0x8f,0x90,0xf5,0x95,0x06,0x6a,0xec,0xa7,0xab,0x36,0x56, +0xe2,0xa6,0x9a,0x4a,0xf8,0x41,0x58,0x70,0xa2,0x5e,0xe2,0x8e,0xa8,0x1e,0x84,0x32, +0xf4,0x77,0x52,0xb6,0x16,0xab,0x53,0x66,0xc2,0x46,0xd0,0x1a,0x35,0x27,0x1e,0xa2, +0x0f,0x0a,0xf1,0xae,0x6e,0x4b,0xb5,0x97,0xf0,0x2a,0x99,0x99,0xbf,0x58,0x5c,0xea, +0x76,0x8d,0x79,0xac,0x12,0x5a,0xbe,0xbb,0x4b,0x42,0xed,0xa8,0x0f,0x47,0x08,0xe5, +0x89,0xd2,0x5c,0xe3,0x1f,0x71,0x0f,0xbc,0x3f,0x91,0x47,0x21,0xb8,0xd6,0xfc,0x37, +0x2b,0x0e,0xda,0x2d,0x3d,0x8b,0xd2,0xd9,0x56,0xeb,0x48,0x6a,0xa7,0x50,0x8b,0x9d, +0xda,0xcb,0x86,0x46,0x64,0x97,0x03,0x20,0x35,0x7a,0x5b,0xe1,0x72,0xb0,0xbd,0x3b, +0x78,0x7d,0xa5,0x0c,0x5a,0xfc,0xaa,0x4c,0x9f,0xb1,0xab,0xe8,0x5e,0x52,0x9f,0xab, +0x87,0xf0,0xe2,0x60,0xf0,0x69,0xa1,0x0b,0x22,0x44,0x87,0x74,0x68,0x6d,0x3d,0x4f, +0x6b,0xad,0x30,0x59,0x27,0xa5,0xf8,0x1a,0xa3,0x9f,0x0e,0x54,0xed,0x19,0x33,0x5b, +0x2e,0x4e,0xf1,0xed,0x4f,0x80,0x1f,0x89,0x8e,0x9e,0x1b,0x20,0x81,0x69,0x00,0x0f, +0xdc,0x93,0x7b,0xf6,0x46,0xef,0xd4,0xe7,0x81,0xa6,0x54,0x18,0x71,0xfb,0xf3,0x14, +0x29,0x67,0x33,0x72,0x51,0x33,0x3c,0x04,0xc2,0x34,0x3c,0xc6,0x13,0x64,0xc5,0x80, +0x3e,0x9f,0xdc,0x44,0x17,0x22,0xea,0xd3,0x36,0x54,0x93,0x94,0x92,0xdd,0x62,0x7a, +0x24,0x14,0xd4,0xcc,0x16,0xbe,0xa2,0x53,0x96,0x57,0xe3,0xb2,0x18,0x23,0xbb,0xa2, +0x02,0x19,0x08,0xd5,0x0a,0x30,0xab,0x93,0x25,0x38,0x50,0x19,0xc6,0x35,0x16,0xa4, +0x5b,0x57,0x6c,0xa6,0x90,0x33,0x96,0x83,0x2c,0x5c,0x07,0xd7,0x0c,0x7c,0x38,0xe5, +0x43,0xa9,0x7d,0xe1,0x30,0x7e,0xb2,0x21,0xe6,0xf6,0x7a,0x9e,0x2f,0x37,0x41,0x3f, +0x02,0xbc,0x1d,0x91,0x10,0x52,0xdd,0x60,0xac,0xfa,0x00,0xdd,0x98,0x7f,0xee,0x2b, +0x2e,0x82,0x55,0x04,0x9f,0x78,0xc9,0x00,0x1b,0x5c,0xee,0x88,0xf9,0x75,0x5e,0x1d, +0x19,0x1f,0xe0,0xb8,0xe9,0x1a,0x9e,0x71,0xd2,0x5f,0xb6,0xba,0xf8,0x77,0x13,0x8d, +0xf7,0x76,0x89,0x7f,0xbe,0xa0,0x48,0x09,0xd7,0x4a,0xbf,0x4f,0x79,0x1e,0x2f,0x68, +0x08,0xe4,0xa8,0x39,0xbf,0x81,0x13,0xbe,0x48,0xd3,0xc1,0x7f,0xeb,0x39,0x3e,0xdd, +0xca,0xc9,0xbe,0x4e,0x3f,0x87,0x1b,0x78,0x95,0xf1,0x47,0xd7,0x29,0xe9,0xe2,0x5d, +0xfe,0x7f,0x1e,0x8c,0x1f,0xb6,0xde,0xe9,0x78,0x1c,0xf8,0xd4,0x70,0xd9,0x3f,0x21, +0xa6,0xc2,0x9d,0xc9,0x19,0x38,0x1e,0xae,0x34,0x54,0x1a,0x69,0xf1,0x05,0x26,0x32, +0x54,0x94,0x41,0xe1,0x50,0x7b,0x61,0x8d,0x54,0xe2,0xca,0x39,0xc8,0xd4,0x40,0x42, +0xea,0x0b,0x9f,0xf8,0xfd,0xb3,0xf0,0xef,0xf5,0x82,0x1b,0xdb,0x35,0x9b,0x16,0x3a, +0xa2,0xc0,0xcf,0x56,0x55,0xdc,0xb8,0xfb,0xf1,0x61,0x73,0xd5,0x89,0x62,0x25,0xe1, +0xb7,0xa0,0x5c,0x68,0x6b,0xcc,0xf8,0x94,0x38,0xf3,0x36,0x55,0x2f,0xa2,0x8a,0xb6, +0x59,0x00,0x52,0x6c,0x6a,0xe2,0x2c,0x31,0x1a,0x82,0x79,0x13,0x0f,0xf8,0x00,0x1d, +0xb9,0x79,0x44,0x24,0xe9,0xe5,0x0e,0x64,0xa7,0x47,0xa0,0xf2,0xb7,0xeb,0x57,0xb0, +0x85,0x79,0xfd,0x11,0xdd,0xaf,0x87,0x00,0xbc,0x87,0xd5,0x0d,0xce,0x68,0x19,0xc1, +0x5b,0xd9,0xdb,0xb4,0xae,0x0b,0xd2,0x90,0x4a,0xcb,0x45,0x18,0x75,0xa7,0x14,0x3c, +0x24,0x81,0xa1,0xc2,0xf4,0xd2,0xb2,0x8c,0xc1,0xbd,0x86,0x8d,0xcd,0x1a,0xe2,0xd3, +0x98,0x73,0x1d,0x6e,0x30,0x03,0x52,0x28,0x2e,0x43,0x1e,0xaa,0x2a,0x02,0x10,0xe5, +0x0b,0xa9,0xd2,0xf6,0x95,0xeb,0xe5,0x9a,0x36,0xa9,0xb2,0xd6,0x94,0xab,0xa3,0x8f, +0x84,0xfc,0xdb,0x2f,0x7c,0x7f,0x82,0xc9,0xbb,0xce,0xa1,0x64,0xda,0x39,0xce,0x24, +0xa3,0xc9,0xa8,0xc4,0xfd,0xa3,0x60,0x3b,0xcb,0x61,0x68,0xea,0xbd,0x06,0xcd,0xa0, +0xe7,0x14,0xf4,0x67,0x18,0x7f,0xbf,0x95,0x35,0x8c,0xe7,0xea,0x42,0x50,0x30,0x5b, +0xac,0x8e,0xf2,0x4b,0xe7,0x9c,0x34,0x1a,0x4b,0x6f,0xa9,0x84,0xe6,0xe6,0x1b,0xc9, +0x8f,0xf3,0x23,0x2d,0x61,0x21,0xf3,0xb7,0x31,0x63,0xcb,0x56,0x25,0x63,0x94,0xa0, +0x0d,0x87,0x2b,0x23,0xf2,0x0f,0x35,0x08,0xd8,0x4d,0x87,0x04,0x8e,0xe4,0x0e,0x07, +0x67,0x70,0x02,0x7b,0x14,0xf2,0x35,0x40,0xe6,0xd8,0x7b,0x29,0xf6,0xf8,0xa9,0x17, +0xa7,0x25,0x6c,0x97,0xab,0x44,0x5c,0xf2,0x70,0x53,0xb0,0xb1,0xd4,0x79,0x35,0xe1, +0xf6,0x93,0xa1,0x14,0x48,0x91,0xb8,0x53,0xe0,0xdd,0x41,0xd5,0x57,0xf4,0x1e,0xf1, +0x84,0x23,0x7d,0x13,0xee,0x35,0x45,0x31,0xe0,0x22,0xb9,0x55,0x76,0xfd,0xfe,0xfb, +0x20,0xbc,0xde,0x76,0xe2,0x1b,0xe1,0x0d,0x87,0xb7,0xca,0xca,0xd1,0xe4,0x1b,0x44, +0xfc,0xd4,0xa3,0x32,0x04,0x8e,0xc5,0x82,0xe7,0xca,0x43,0xc7,0xd6,0x54,0x9c,0xbc, +0x05,0x26,0x41,0xa5,0x92,0xf4,0x8c,0x9c,0x6b,0xa0,0xcb,0xca,0x51,0xb7,0xb6,0x40, +0xd8,0x9e,0x57,0x2d,0xa7,0x7a,0x27,0xf1,0x75,0xdf,0xc5,0xc7,0xb1,0x58,0xf9,0x8f, +0x2a,0x69,0x66,0x56,0x14,0x23,0x4e,0x28,0x69,0x09,0xde,0xa8,0xff,0x9c,0xf1,0x9e, +0x2b,0x68,0x75,0x41,0x3b,0xa3,0x46,0xbe,0x8d,0x58,0x6e,0xa0,0x43,0x0d,0x36,0x0f, +0x8f,0xf6,0xe5,0xfd,0x47,0x45,0x0d,0x49,0xc8,0x71,0xdf,0x4d,0x7f,0xf7,0x3e,0x1f, +0x8f,0x9b,0xbc,0x45,0x5a,0xfb,0x37,0x48,0x69,0x76,0xec,0xa5,0x87,0x4f,0xa6,0x62, +0x93,0xde,0x99,0x89,0xc3,0x0a,0xf2,0xd5,0x0b,0x9d,0x56,0x9c,0x1c,0x90,0xae,0x4f, +0x7f,0x86,0x42,0xa5,0xfd,0xf3,0x7c,0x85,0xb5,0x22,0x4a,0x9c,0x84,0x98,0xa1,0xd6, +0x9d,0x20,0x98,0xb1,0x6c,0x21,0xc8,0xac,0x34,0xd6,0x89,0xe8,0x5f,0x61,0x42,0x5f, +0xe1,0x0f,0xd4,0x4d,0xbf,0xb7,0xef,0x06,0xef,0x9e,0xc7,0x01,0x53,0xf2,0xff,0xe8, +0x4b,0x40,0x0e,0xe2,0x34,0xad,0x1c,0x33,0x13,0x08,0x70,0x1b,0xa4,0x91,0xfe,0x62, +0xa2,0x07,0x70,0x52,0x6d,0x31,0x98,0x8d,0xf7,0x03,0x27,0x6a,0xd6,0xc6,0x03,0xdc, +0x02,0x0a,0xff,0x78,0xa3,0x0c,0xa6,0x19,0x34,0x33,0x26,0x85,0xf4,0xbe,0x01,0xa7, +0x20,0x89,0x71,0xfd,0x52,0x6c,0x56,0xd5,0xf2,0x78,0x31,0x93,0xd7,0x92,0xec,0x3f, +0xd8,0xfb,0x57,0xbb,0xf3,0xa7,0x90,0xa0,0x42,0x42,0xaf,0xe0,0x45,0xfa,0xf6,0x58, +0x8e,0x88,0x6c,0x2f,0xb0,0x64,0x20,0x54,0xa2,0xda,0x18,0x64,0xdf,0xc7,0xfa,0xdb, +0x75,0x05,0x11,0x5a,0x16,0x89,0xd9,0x66,0xa1,0xc6,0x41,0xe1,0xcd,0xae,0xae,0xae, +0x62,0xd1,0x6e,0x7d,0x95,0x57,0x1e,0xf5,0xdf,0x3b,0x97,0xa4,0x98,0x26,0xf9,0xea, +0xa9,0x82,0x83,0xea,0x08,0x67,0xa9,0xde,0x58,0xb5,0xeb,0x6a,0xf2,0x29,0x6a,0x58, +0xeb,0xd4,0x5a,0x38,0x9b,0x2a,0x02,0x3d,0xb7,0x29,0xea,0xfa,0xf3,0x28,0x84,0x59, +0x89,0x05,0x2b,0xac,0xf3,0xf3,0xe9,0xad,0x98,0x60,0x53,0x2c,0x46,0x26,0x73,0x3e, +0x74,0x04,0xca,0xbd,0xc1,0x3b,0x9f,0x3d,0x9a,0xfc,0xa5,0xe1,0x54,0xed,0xb9,0x6c, +0x2e,0x4e,0x70,0xc8,0x45,0x50,0x6a,0x50,0xb9,0xf1,0x12,0xa1,0x1f,0x2e,0x42,0x3a, +0xe9,0x58,0xbf,0xcd,0x4c,0x80,0xf5,0x5c,0xc9,0x4e,0x6b,0x52,0x7f,0x6b,0x09,0xa9, +0x08,0x0a,0x74,0x65,0x9e,0xd4,0x0b,0x9f,0x17,0xd3,0xd1,0x6a,0xee,0x3b,0xcd,0xa9, +0x74,0x00,0x00,0xd9,0x88,0xc0,0xdf,0x0b,0x68,0x4c,0xd3,0xda,0x7a,0x90,0x83,0xc6, +0x78,0x9d,0x4b,0x97,0x36,0x58,0x2c,0x70,0x97,0x5f,0x9c,0xa0,0xff,0x31,0x29,0x66, +0xa4,0xf3,0x3a,0xf6,0xc6,0x37,0x64,0x97,0x02,0xa1,0xc6,0xb6,0x0d,0x33,0x5c,0x9b, +0x47,0x09,0xdd,0xa1,0x32,0x3a,0xa1,0xc3,0xa3,0x8d,0x39,0x81,0x11,0x8d,0x73,0xe0, +0x4a,0x5a,0x85,0xa2,0x10,0x5f,0x65,0x33,0xe8,0x8e,0x91,0xcb,0x50,0xac,0xc0,0xc5, +0x26,0xce,0xeb,0x29,0x30,0xcf,0x8b,0x80,0x15,0x22,0x25,0x02,0x56,0x38,0xdc,0x17, +0x21,0xe0,0x07,0x37,0xb1,0xc9,0x5b,0xb3,0x3f,0x79,0x93,0x66,0x57,0x88,0x70,0x45, +0xf1,0xa1,0xd6,0x39,0x94,0x76,0xd5,0x20,0x58,0x7a,0xa1,0x18,0xb2,0x34,0x49,0x96, +0x22,0x19,0xb7,0xa7,0x10,0x43,0xdc,0xb2,0xa3,0x73,0xcf,0xe0,0x18,0x8e,0xae,0x81, +0xad,0x58,0x65,0xcb,0xe6,0x30,0x2e,0xf8,0x6c,0x57,0x3a,0x29,0xdb,0x88,0x3a,0x65, +0x08,0x62,0x22,0x5c,0x9a,0x78,0xde,0xb5,0x69,0x5f,0x57,0xe8,0x4a,0x69,0xef,0x99, +0x8c,0xc1,0x03,0x4a,0x38,0x1a,0x87,0x2b,0x65,0xd8,0x60,0xa1,0x53,0x3a,0x9e,0x68, +0xa8,0x0a,0x63,0xe2,0x63,0xe6,0xb7,0xb1,0xda,0x71,0x27,0x4e,0xb0,0x6b,0x46,0x39, +0xe6,0x3c,0xcd,0x21,0x32,0x7c,0x9a,0xe8,0xe3,0x7d,0x46,0xec,0x7a,0x7c,0xf9,0xfc, +0xa4,0xb0,0xb4,0x2c,0x33,0x32,0x20,0x9c,0xe9,0x55,0xde,0xfc,0x7b,0x7d,0x47,0x0b, +0x29,0x58,0x0e,0xed,0x38,0xc2,0x57,0x9b,0x01,0xf7,0xd7,0xed,0xfa,0x7e,0x87,0x4a, +0x8a,0xb2,0xe9,0x88,0xea,0x7f,0xaa,0x1b,0xab,0x50,0xdf,0xfd,0xfb,0x7f,0xb0,0x44, +0xae,0x7b,0xfa,0x00,0xb7,0xc5,0xf0,0xfe,0xfc,0x81,0x73,0xe6,0x0c,0x55,0xf7,0x07, +0x82,0x86,0xf2,0x15,0xb6,0xc4,0xc0,0xb6,0x12,0xd6,0x78,0xfe,0xba,0x3c,0x27,0x87, +0x8c,0xf4,0xfb,0x47,0x37,0xe3,0x68,0x54,0x61,0x42,0x7a,0x36,0x83,0x5f,0x81,0xb1, +0x5a,0xdc,0xf3,0x55,0x36,0xe2,0x60,0x44,0x60,0xad,0xc1,0x10,0x28,0xec,0x00,0x40, +0x43,0x8b,0xd8,0xb8,0xba,0xa9,0x8f,0x99,0xc4,0xc7,0xca,0x84,0xab,0xeb,0xa8,0x4a, +0x0c,0x8e,0x65,0xa6,0x1b,0xaa,0xe8,0xf0,0x4e,0x18,0xe8,0xf2,0x5b,0xa7,0xf1,0xc7, +0x99,0x6f,0x1e,0x63,0x14,0xae,0xf5,0x93,0xce,0xc9,0x61,0xe3,0x86,0x3b,0xed,0x57, +0xd4,0x30,0x89,0x17,0x82,0x2a,0x41,0xa3,0x3c,0xc8,0x66,0x6d,0xf3,0xe1,0xca,0xa8, +0xa8,0x0f,0x62,0xd7,0x0a,0xef,0x50,0x22,0x4d,0xd8,0x22,0x0e,0x24,0xea,0x3a,0xaf, +0xe8,0xc8,0xa9,0xef,0x74,0x56,0xf3,0x42,0xca,0xf8,0xd8,0x06,0x4f,0xa4,0xc3,0xbe, +0x09,0x8d,0xa4,0x7c,0xf5,0xa1,0xf3,0x07,0x92,0x88,0x5f,0xc7,0x4d,0xa7,0xeb,0x52, +0x26,0xc7,0x6b,0xcb,0x75,0xe9,0xab,0xb9,0xc4,0x76,0xa1,0x3d,0x1f,0xcf,0x95,0x4b, +0x02,0xce,0x9a,0x6a,0xc7,0x51,0x12,0x2b,0xb7,0xc1,0x51,0xd0,0xff,0x53,0xa7,0x2f, +0x09,0x1d,0xea,0xa2,0x39,0xed,0x21,0xe9,0x34,0xc4,0xc8,0x38,0x71,0x81,0xa8,0x60, +0xaa,0xcc,0xcc,0xa2,0xee,0x55,0x79,0x6a,0x6d,0x8f,0x2c,0x6e,0xda,0x16,0x27,0x3b, +0x83,0x78,0x20,0xbc,0x46,0x52,0xce,0xa3,0x7b,0xb5,0xa1,0x77,0x01,0xf4,0x13,0x5a, +0xd4,0xea,0xc7,0xc6,0x78,0x4d,0xf4,0xaf,0x60,0xd6,0x0c,0x55,0x31,0xeb,0x72,0xe1, +0x15,0xde,0x57,0xb2,0xb8,0x0c,0xe0,0xb6,0x2c,0x5e,0xbd,0xd0,0x9e,0xe9,0xe5,0x42, +0x9b,0x89,0xc2,0x78,0x41,0x24,0x19,0xf4,0xe2,0xa2,0x34,0xc1,0x1f,0x1a,0x2c,0xe0, +0x9d,0xdc,0x4a,0x68,0x44,0x65,0x63,0x72,0x65,0x78,0x2d,0xc7,0x75,0xec,0xab,0xb2, +0xa6,0x8b,0x2d,0xe6,0x7b,0x78,0x9c,0xcc,0x42,0x29,0xf4,0xe6,0x76,0xf4,0x0d,0xf6, +0x14,0x15,0x62,0x10,0x7a,0xab,0xc3,0x69,0x98,0x94,0xfc,0xf6,0x77,0xf5,0x5b,0x02, +0xc7,0x92,0x6b,0x8c,0xfb,0x0a,0x99,0x78,0xe7,0x56,0xf5,0xe7,0xf6,0xf6,0xd5,0x94, +0x6d,0xde,0x63,0x08,0x4a,0x13,0xd1,0x88,0x39,0x28,0xfd,0xf7,0xf7,0xf7,0xb6,0x0e, +0x62,0x85,0x5d,0xaa,0xb3,0xba,0xfe,0xaa,0x5f,0x73,0x88,0x92,0x1d,0xfc,0x3d,0xfa, +0x56,0x90,0xa6,0xa8,0x9c,0x16,0x64,0x45,0xca,0x54,0xa8,0xdc,0x82,0x54,0x79,0xa6, +0x66,0x31,0x10,0x8e,0x31,0xbc,0x6d,0x56,0x4b,0xca,0xd6,0x8b,0x15,0xab,0x74,0xb8, +0x65,0xe1,0x38,0x8c,0x62,0xb8,0x66,0x6b,0x4a,0xc0,0xaa,0x1a,0x0a,0xba,0x24,0xd9, +0x4b,0x93,0x2f,0x2c,0xde,0x0d,0xe6,0xf5,0xea,0x08,0xf6,0xee,0x7e,0xfc,0x05,0xfe, +0xad,0xd5,0x15,0xfa,0xd6,0x74,0xbb,0x81,0xcc,0xb8,0xfe,0xfe,0x7f,0xfd,0x55,0x30, +0xa8,0xc4,0x18,0xbd,0xd4,0xb1,0xd3,0x84,0xcf,0x1e,0xf7,0xef,0xfe,0xfe,0xa0,0x2b, +0xa3,0x90,0xc9,0xbb,0x1c,0x3a,0x5f,0x0c,0xcb,0x52,0xff,0xff,0x58,0x62,0xa8,0xb5, +0xe1,0x1b,0x0b,0x66,0xd1,0x42,0x5a,0xc2,0x73,0x98,0xc9,0x27,0xf5,0xbf,0xe0,0x94, +0x86,0x51,0x4c,0xb3,0x97,0x73,0x9f,0x20,0x72,0x17,0xc1,0xf0,0xf4,0x97,0xa1,0xf7, +0x05,0xa3,0x45,0x80,0xd3,0x02,0xe9,0x43,0x01,0xc8,0x90,0x43,0x2f,0x0c,0x50,0x8a, +0x26,0x05,0xe9,0x17,0xca,0x2e,0xe1,0x57,0x36,0xca,0xd8,0x53,0x07,0x69,0x94,0xae, +0x31,0x20,0x09,0x37,0x09,0x80,0x30,0x62,0x67,0x49,0x9d,0x8e,0xb3,0x5f,0xe4,0xd5, +0xd6,0x67,0xb0,0x99,0xf8,0xbf,0x60,0x56,0xaa,0x03,0xe0,0xfd,0xfc,0x63,0x81,0x2c, +0x48,0xda,0x08,0xa7,0x72,0x82,0x85,0xe7,0xd8,0x23,0xf0,0x82,0x63,0xc7,0x20,0xba, +0x01,0x6b,0xa9,0x57,0xf8,0x2a,0x1d,0x99,0x5f,0x8c,0xfd,0x69,0x72,0x61,0x2a,0x66, +0xab,0x6d,0xc8,0x11,0x2b,0x2d,0x16,0x48,0x0c,0x95,0x97,0x53,0x38,0x6a,0x95,0xf5, +0x1e,0xb2,0xd0,0x0c,0xbe,0x2f,0x18,0xd0,0xdf,0xb4,0xdb,0xda,0x6a,0x43,0x7b,0xf5, +0x05,0xf1,0x7b,0x6b,0xbb,0x4a,0xff,0xba,0xf4,0x42,0x92,0xcb,0x39,0xb9,0xf4,0x9d, +0xde,0x24,0xab,0xdc,0x38,0x30,0xe3,0xc5,0x44,0xb0,0x23,0xc3,0xc9,0x26,0x0c,0xcc, +0x37,0xa3,0xe8,0xc9,0x59,0xcc,0x56,0x80,0x1c,0x01,0x71,0x72,0x5c,0x15,0x2c,0x06, +0x86,0x6f,0x03,0x9b,0xd9,0xfd,0xff,0x6c,0x6b,0x6f,0xe2,0x8d,0xf8,0xed,0x1a,0x88, +0x8c,0x77,0xd3,0x2f,0xfc,0x83,0xac,0x09,0xc6,0x55,0x65,0xef,0x52,0x9e,0xe0,0xdc, +0x18,0x30,0x83,0x60,0xa8,0xcd,0x5e,0x0a,0xf6,0xee,0xe9,0x82,0x59,0xbb,0x5d,0xa5, +0x43,0x70,0x7c,0x06,0xb0,0xe6,0xcb,0xd0,0x5f,0xa0,0x95,0xc2,0x8b,0x76,0x86,0x68, +0xa1,0xaa,0x8a,0x7d,0xb5,0x73,0x60,0x32,0xe1,0x5b,0x28,0xcf,0xd2,0x6a,0xfd,0x7d, +0x28,0xe9,0xbd,0x55,0xec,0x3b,0x2f,0x5a,0xe6,0x88,0x3d,0xad,0x01,0x7d,0x04,0x7c, +0xe1,0x51,0x10,0xff,0x82,0x19,0x25,0x80,0x40,0xf2,0x96,0xd3,0x46,0x63,0x2d,0x2b, +0xdd,0x12,0x1b,0x8c,0x45,0x30,0x44,0x69,0x3a,0xf0,0x77,0x4a,0xd3,0x7f,0xf8,0xaf, +0x80,0xce,0xe8,0xec,0x35,0xb5,0xf0,0x63,0x5e,0x5f,0xd9,0x76,0xa7,0x22,0xed,0xd8, +0x57,0x19,0x05,0x14,0xb4,0x30,0xcc,0x95,0x0b,0x0f,0x55,0xc2,0x53,0x7d,0xee,0x2c, +0x3e,0x8c,0x50,0x57,0x33,0x9c,0xd9,0xe2,0xde,0x9e,0xdf,0x17,0x5f,0xfc,0x4b,0x63, +0x5f,0x3c,0xbc,0x6a,0x28,0xb3,0x2e,0x5b,0x33,0x36,0x2e,0x43,0xfa,0x54,0x34,0x63, +0x2f,0xc3,0x69,0xfe,0x7a,0xc9,0x7e,0xba,0x02,0x54,0x23,0x5e,0xfb,0x35,0xd8,0xd1, +0x97,0x90,0xdf,0x6b,0x3a,0x3e,0x75,0x39,0xe9,0xea,0x39,0xc3,0x5b,0x1f,0x73,0x1d, +0xdc,0x79,0x97,0x8c,0x82,0x71,0x35,0x69,0xb5,0x58,0x1a,0xc3,0x5a,0x1e,0x66,0x31, +0xe1,0x67,0xfe,0x9e,0x34,0xb6,0x70,0x85,0x56,0xf1,0xde,0x0e,0xf8,0x78,0x95,0x86, +0x54,0xfc,0xf0,0x04,0x72,0x47,0x56,0xfd,0xa3,0x04,0x1a,0x79,0x38,0x8f,0x57,0x4d, +0xb1,0x21,0x41,0x48,0x3c,0x3e,0xce,0xae,0x20,0x27,0xd8,0x8f,0x05,0x1c,0x14,0xdb, +0xd0,0xf8,0xd7,0xd0,0x34,0x92,0xca,0x8a,0xd7,0xfe,0x1b,0x7b,0xbf,0x79,0x1a,0xea, +0x84,0x4f,0x80,0xe0,0xf5,0xbb,0xf2,0xcf,0x36,0x7b,0x4f,0x61,0x67,0x58,0x71,0x31, +0xa2,0x2e,0xbb,0xf4,0x97,0xed,0xe3,0x74,0x3a,0x3b,0x5b,0xf6,0x1d,0x3c,0x20,0xf5, +0x6f,0x88,0x44,0xe1,0x16,0x8e,0xce,0xa7,0x93,0xed,0x09,0xb8,0xc6,0xaf,0xe5,0x55, +0xd3,0x85,0xa6,0xf5,0x17,0x2f,0xe4,0x8b,0xbe,0x3c,0x41,0x3f,0x28,0xac,0x9f,0xc0, +0x83,0x35,0x58,0xb9,0xff,0xfe,0xe9,0x91,0x73,0x49,0x01,0xe2,0x6b,0x71,0x10,0x21, +0x3b,0x04,0xd0,0x06,0x37,0xaa,0xe3,0x10,0xb0,0xa7,0x80,0x51,0x34,0xed,0xda,0xa1, +0x2a,0x7b,0x4d,0xd8,0x95,0x07,0x0f,0x0e,0x44,0xc2,0x91,0x79,0x4a,0x6b,0x6b,0xac, +0x66,0xe4,0x32,0x55,0xe8,0x4f,0xbd,0xa3,0x99,0x68,0x81,0xf5,0x03,0x33,0x8e,0xce, +0xaf,0x8e,0xb0,0x7d,0x47,0xa7,0xf2,0xf6,0xe7,0x13,0xeb,0x2d,0xf9,0x37,0x6b,0x5c, +0x1d,0xc5,0x25,0xf6,0x95,0x24,0xbd,0x48,0xb6,0x8b,0xf8,0xba,0x60,0x46,0x8b,0x07, +0x2f,0xc6,0x99,0xf0,0x9a,0x8b,0x9f,0xd6,0xd7,0xb1,0xb2,0x49,0x5e,0x86,0xaf,0xf3, +0x8d,0xc4,0x53,0x17,0xfe,0xa3,0xf0,0xd8,0xba,0x17,0xe2,0xfe,0x78,0x74,0x99,0xa2, +0x5f,0xc1,0xbd,0x28,0x18,0xd6,0xe8,0x82,0x12,0x61,0xca,0x8e,0x5a,0x89,0xaa,0x37, +0xaf,0x51,0x8a,0x5d,0x27,0xa2,0x32,0x6e,0x7c,0x1f,0x59,0x60,0xfc,0x88,0x18,0x43, +0x2b,0x31,0xd2,0x30,0x7d,0x2e,0x6e,0x8d,0x43,0x38,0xcb,0x8f,0xce,0xe8,0xc7,0xde, +0x5a,0xed,0xb4,0xbe,0xec,0xaf,0xc3,0x93,0x93,0x80,0xa1,0x97,0x7c,0xe9,0xe4,0x5a, +0xb8,0x96,0x64,0xeb,0x85,0xab,0x0c,0xa7,0x0f,0x6a,0x0b,0x44,0xf6,0x9c,0xe8,0x42, +0x5b,0xf3,0xf6,0xd4,0x92,0xb7,0x04,0xe0,0x6b,0xb3,0x83,0x54,0xf7,0x9d,0x05,0xda, +0x05,0xf0,0xae,0xf5,0x13,0xa2,0x77,0x21,0x64,0xd8,0xaa,0xdd,0x57,0x97,0xcd,0x0a, +0x27,0x97,0x8d,0x08,0x14,0x3f,0x77,0xb6,0x1a,0xd5,0x73,0xd9,0x56,0x96,0xb9,0x5e, +0x20,0xae,0xaf,0x54,0xc7,0x19,0xee,0x72,0x8d,0xa5,0xd4,0xaf,0xd7,0x2b,0x54,0x02, +0x79,0x3a,0x6d,0x54,0xbf,0xe4,0x25,0xe2,0xc0,0x78,0xf2,0x72,0x06,0xc5,0x18,0x41, +0x26,0xdf,0x28,0x55,0xf6,0xbe,0x53,0x97,0x45,0x52,0x95,0xe5,0xe7,0xed,0xf4,0xf4, +0x06,0x1d,0xd5,0xb7,0xb3,0x97,0xe4,0xc2,0xda,0x78,0x9d,0xf5,0xea,0xfa,0x2d,0xe8, +0x1f,0x8e,0xec,0x93,0x1d,0x28,0xa9,0x6c,0xe2,0xc3,0x0b,0x4c,0xfe,0xfc,0x16,0x4a, +0x71,0x36,0x96,0x77,0x64,0xd6,0x38,0xc9,0x36,0xb5,0xf4,0xa3,0x96,0x88,0xdf,0x09, +0x2c,0x62,0x9f,0x5f,0x1f,0x1b,0x54,0x4d,0x12,0xba,0x87,0xcd,0x03,0x76,0xba,0x8b, +0x52,0x17,0x95,0x3a,0xa7,0xd4,0xfb,0x5d,0x6f,0xdf,0xad,0xaf,0x42,0x76,0xa1,0x39, +0x13,0xf9,0xe8,0xcc,0xd9,0x11,0x3b,0x02,0x20,0x93,0x0d,0x6c,0xfe,0xa4,0x73,0xb8, +0xee,0x17,0x4c,0x39,0x8e,0x1c,0x63,0x09,0x78,0x9f,0xfb,0x7c,0xff,0x27,0x5f,0x1b, +0xf2,0x31,0x2e,0x25,0x5f,0x85,0x2e,0x77,0x4b,0x7f,0xae,0xa7,0xf8,0x67,0xe8,0x33, +0xf9,0xd0,0xd7,0x56,0x10,0x12,0x66,0xfb,0xe9,0xb5,0xc7,0x7d,0x01,0x60,0x78,0x82, +0x80,0x29,0x38,0x24,0x1a,0x30,0xea,0x53,0x78,0x2c,0x50,0x31,0xfd,0x22,0x70,0x56, +0xfd,0x4d,0xb2,0xef,0x91,0xe1,0x26,0x1c,0x8b,0xa8,0x98,0xb6,0x85,0x3a,0x39,0x83, +0x01,0x32,0xff,0x50,0x2c,0x1b,0x77,0x54,0xc1,0x20,0xd0,0x25,0xd6,0x7a,0xcc,0x95, +0x98,0x2c,0xf7,0x40,0x2d,0x1a,0x11,0x28,0x24,0xbc,0xa1,0x72,0x1b,0x8a,0x60,0x5d, +0x31,0x50,0x5b,0xa4,0x54,0xd9,0x28,0xe2,0xcf,0x1d,0x0e,0x94,0x6e,0x6b,0xc0,0x32, +0x8e,0xf3,0xd7,0xd6,0x93,0xb4,0x78,0x9e,0xe2,0xc9,0x92,0x23,0x12,0x75,0xfb,0xbe, +0x00,0xd2,0xb3,0x4f,0x96,0x89,0x29,0x46,0x61,0x40,0xb1,0x05,0xae,0x6b,0x41,0x54, +0x7e,0x85,0xf1,0xe7,0x5f,0x17,0x13,0x6c,0x41,0x2b,0xa1,0x17,0x90,0x78,0x38,0xfb, +0x39,0x13,0xb5,0x78,0xe4,0xe1,0x2c,0x01,0xc7,0xbe,0xcb,0xb1,0xff,0x6e,0x6a,0x1a, +0x4e,0x04,0x41,0xcf,0x9b,0x2a,0xfd,0x78,0x4d,0x05,0xde,0x1b,0xb0,0x58,0x81,0xef, +0x63,0x23,0x43,0xd0,0xdf,0x68,0x5b,0x38,0x21,0x1b,0xb3,0x8d,0xde,0xf3,0x41,0x04, +0xe9,0xab,0x0f,0xed,0x91,0x24,0x1f,0x99,0x9d,0x8b,0xe3,0x1a,0x30,0x3a,0x3a,0x3a, +0x88,0xd8,0x9c,0x11,0x1e,0xa7,0x49,0x8a,0xc8,0x48,0xaa,0xee,0x34,0x0f,0xb2,0x50, +0xac,0x16,0xb2,0x9a,0xe7,0x6c,0xc8,0x9a,0xaa,0x4b,0xba,0x38,0x7a,0xe0,0x64,0xab, +0xb9,0x6c,0xe6,0xaf,0x79,0x4b,0xae,0x0b,0x48,0xc2,0xeb,0xbd,0x05,0x61,0x0d,0xbf, +0x9b,0x40,0xab,0x1d,0x95,0x22,0xf3,0x6c,0x68,0x49,0xa3,0x5a,0x78,0x69,0x3e,0x62, +0xa5,0x45,0x5f,0x66,0xb2,0x34,0x8a,0xc2,0x9b,0x8d,0x6e,0xe2,0x50,0x3c,0x6c,0x92, +0x5a,0x1c,0x0b,0x7c,0x37,0x7e,0x1d,0x56,0x52,0x43,0xa4,0x5c,0x4e,0xbe,0x65,0x21, +0xac,0x1d,0x5e,0xe7,0x71,0xb8,0x4c,0xb8,0x47,0xef,0x01,0x27,0x70,0xb9,0xd9,0x17, +0xf5,0x10,0x35,0xd2,0x73,0x93,0x23,0x98,0x46,0x48,0x27,0xf2,0x33,0x63,0xc3,0xa6, +0xdd,0xb9,0xbc,0x46,0x10,0x56,0x7e,0xd4,0xc3,0xde,0xec,0x34,0xad,0x7b,0xd9,0xa3, +0x1f,0xb4,0x9c,0xcc,0x50,0x55,0x24,0xe1,0x83,0x53,0x96,0x1b,0xd0,0x78,0xd0,0x86, +0x7c,0x1c,0x9f,0xd0,0x11,0x30,0xd2,0x81,0xf2,0xfd,0xb5,0x50,0xdc,0x7b,0x75,0xe1, +0xcf,0x08,0xb5,0x57,0xb6,0xcd,0x77,0xc0,0x40,0x51,0xd7,0xf4,0x50,0x7a,0x85,0xc5, +0xaa,0x1c,0xce,0x89,0x5b,0x98,0x53,0xdb,0x5c,0x17,0xde,0xa8,0x1f,0x79,0x6e,0x9a, +0x5d,0x14,0xb6,0x4c,0x65,0x98,0x87,0xf3,0x6f,0xaa,0xc7,0x45,0x9e,0xb4,0x90,0xeb, +0x4b,0xe5,0x7f,0x0f,0x38,0xe1,0xd7,0x69,0xe8,0x18,0xf7,0xaf,0x97,0x77,0x90,0x79, +0xf1,0x16,0xb7,0xac,0x18,0x20,0xde,0x3d,0xee,0xa2,0x33,0x2f,0xed,0x71,0xfe,0x8f, +0x24,0xb3,0xfe,0x9c,0x32,0x33,0x7c,0xd9,0xcb,0x5a,0xdc,0xe8,0xd9,0x87,0x46,0xcc, +0x48,0x22,0xc4,0x9c,0x98,0x3b,0x74,0xcc,0xca,0xa2,0xbe,0x49,0x1b,0xf0,0x52,0x8e, +0x68,0xfe,0xa7,0x6d,0x06,0x33,0xfb,0x80,0x49,0x58,0x2e,0x69,0xa1,0xb6,0x59,0xf0, +0x40,0x2e,0x9f,0xcc,0x1a,0xb7,0x15,0xe4,0x69,0x7b,0xa7,0xda,0x98,0x80,0x79,0x9a, +0xa3,0xcd,0xf0,0x1a,0x37,0xa6,0x60,0x23,0x48,0xc3,0xc8,0x06,0x5e,0x80,0x12,0xfa, +0x0f,0xce,0x6c,0x93,0x56,0xc1,0x26,0x50,0xae,0xf0,0xf1,0x94,0xb4,0x1e,0xde,0xeb, +0x80,0xcd,0x81,0xff,0x35,0x2e,0x77,0x3b,0x46,0xc6,0x8f,0x0e,0x77,0xa0,0x96,0xe2, +0x26,0x70,0xf0,0x9b,0x32,0xae,0x8d,0x51,0x2e,0x92,0x79,0xea,0xf3,0x6e,0x00,0x5c, +0x70,0x8b,0xaa,0xbd,0xb5,0xa9,0x5a,0x56,0xe7,0x4e,0x78,0xba,0x16,0xeb,0x31,0x63, +0xa2,0x3a,0xe7,0x86,0xa8,0xaa,0x32,0x6f,0x2c,0xca,0x80,0xf4,0x52,0xbe,0xba,0x01, +0xf9,0x0c,0xab,0xa8,0x90,0x3f,0x09,0x03,0xda,0x4a,0x45,0x05,0x97,0xa6,0xb4,0xc5, +0x81,0x5d,0x89,0xf7,0x95,0x2c,0x7f,0x41,0x45,0x8b,0xa3,0x76,0x74,0xe1,0x10,0xf5, +0xf8,0x87,0xe8,0xb3,0x2f,0x69,0x9a,0xbb,0x33,0x41,0xeb,0xd3,0xbb,0xf3,0x22,0xad, +0x6e,0xa9,0x2e,0x2c,0x76,0xa6,0x84,0xb8,0xcd,0xd0,0xe3,0xce,0xba,0xf2,0xe3,0xd3, +0xc8,0x8c,0x5b,0x69,0xf7,0xa5,0xe8,0x2b,0xca,0x20,0x6d,0xd9,0xcc,0x25,0x53,0x99, +0x8c,0xfc,0xad,0x0d,0x1f,0x7f,0x03,0xc5,0x4f,0xcf,0xe5,0xc9,0xee,0x30,0x1e,0xb6, +0x8f,0x77,0x65,0xac,0x9c,0xaf,0xf4,0x88,0xcc,0x80,0x7a,0x87,0xfd,0xea,0xea,0xde, +0x58,0xa2,0xe0,0x4b,0xbc,0xab,0x30,0x98,0xae,0xcb,0x9a,0x3a,0x28,0x6d,0xb0,0xa6, +0x9e,0x35,0x52,0x2d,0xdd,0xa1,0xf5,0x09,0x4c,0xa2,0x7b,0x92,0x3f,0xe1,0x51,0xa8, +0xb3,0x94,0xbb,0xce,0xfc,0x8f,0x51,0x4a,0x6c,0xc9,0x83,0xfd,0xda,0xeb,0xe0,0x04, +0x36,0x93,0xb2,0x60,0xb6,0xb4,0x6d,0xbf,0xc1,0x6f,0x34,0x52,0x15,0x2b,0xe8,0x17, +0xa3,0x81,0xff,0x74,0x94,0xdd,0x36,0xb0,0x9a,0xd7,0xf1,0xc4,0x8e,0xb3,0x64,0x97, +0x05,0xfe,0x85,0xe5,0x36,0x66,0x85,0x2a,0x05,0xb1,0x99,0x5a,0xd6,0x87,0x4d,0x91, +0x83,0x9e,0xcf,0x9b,0xb6,0xd3,0x9e,0x08,0x44,0x0c,0x76,0x54,0xf3,0x4a,0xa4,0xaf, +0xd5,0x16,0xe5,0x24,0x9a,0x3f,0x84,0x00,0xca,0xdb,0x8c,0xc1,0x15,0x14,0x34,0xc6, +0xa5,0x41,0x69,0xb4,0x74,0xba,0xc8,0x10,0xcb,0xda,0x84,0x74,0x55,0xb4,0x1d,0x47, +0x9b,0x09,0x62,0x25,0x34,0xb5,0xca,0xb1,0xa5,0x26,0x8d,0xc0,0x95,0x09,0xbe,0xb1, +0xe7,0x98,0x95,0x55,0x95,0x95,0xd5,0xe3,0x8c,0x6e,0xc7,0x15,0x75,0xff,0x58,0xa3, +0x80,0x95,0xfc,0x71,0x9f,0x63,0x1c,0x0f,0x42,0x52,0x54,0x46,0x6e,0xb5,0xf7,0xf8, +0xc6,0x70,0x4c,0x72,0x3d,0x34,0xc3,0x85,0x08,0x9b,0x12,0x2d,0x10,0xf3,0x59,0xa7, +0x2e,0x9e,0x53,0x72,0xd9,0xc1,0x1f,0xf6,0xad,0xd9,0xd7,0xb1,0xf9,0xf5,0x9b,0xf9, +0x9e,0xcf,0xd0,0x1b,0xfa,0x39,0xf0,0xf7,0xde,0x09,0xb9,0xcc,0x90,0xf4,0x60,0xe7, +0xae,0xe0,0xbc,0x57,0x38,0xc5,0x53,0x98,0x85,0x24,0xff,0xfe,0xdd,0x71,0x75,0x5b, +0xce,0x9b,0xd4,0x3c,0xbd,0xf5,0x5e,0xc2,0xce,0x22,0xc4,0x01,0x7b,0x07,0x07,0x94, +0x4f,0xdc,0xc9,0x4d,0xbb,0x74,0x2e,0x0e,0x09,0xd8,0x08,0x6b,0xa1,0xbd,0x47,0xa0, +0x0c,0xfa,0x26,0x3d,0x3d,0xf7,0x05,0x05,0x43,0xd2,0x2c,0xff,0xff,0xff,0xdb,0x5e, +0x7f,0xe7,0x3f,0x54,0x31,0x6f,0xf4,0x7f,0xe7,0x50,0xae,0xe8,0xf7,0x95,0xc8,0xcc, +0xaa,0x8c,0xa2,0xc4,0x4d,0xa1,0x41,0xb3,0xa0,0x0e,0x51,0xcc,0x51,0x23,0xdc,0x0c, +0x61,0xbd,0xe1,0x07,0x06,0x2f,0xae,0xc7,0x39,0xbd,0xdc,0xd9,0xd0,0xd7,0x69,0x52, +0x94,0x0c,0xe9,0x57,0x8d,0x2c,0x18,0x4e,0x66,0x45,0x9d,0x76,0x2c,0xc2,0x38,0x67, +0xa1,0x02,0x3d,0x2b,0x9f,0x82,0x30,0x24,0x1a,0x06,0xaf,0x3e,0xaf,0xf8,0x28,0x14, +0x36,0x88,0x5f,0x84,0x1b,0xda,0x98,0xa9,0x06,0x43,0xa6,0x72,0xb2,0xe6,0x49,0x66, +0xc2,0x09,0x5b,0x85,0xe6,0x8b,0xcc,0xc6,0xbd,0xcf,0x56,0x95,0x89,0xf7,0x31,0xd3, +0x8a,0x43,0x76,0x45,0x24,0xac,0xd1,0xe4,0x62,0xb8,0x7a,0x86,0x5f,0xda,0xaa,0xad, +0x3b,0x2f,0xe2,0x0e,0x8e,0x25,0x32,0x1a,0xe9,0x41,0xaa,0xd3,0xad,0x0b,0x72,0x9a, +0x88,0x8b,0xa2,0x04,0xba,0x2f,0x3a,0x29,0xc4,0x2a,0xe4,0x21,0xac,0xea,0xfb,0x8b, +0x09,0x68,0xc9,0x10,0xd8,0x2c,0xd3,0xad,0xf5,0x04,0x68,0x52,0xb8,0x63,0x73,0x9b, +0x09,0xd3,0xab,0x92,0x38,0xa7,0xb0,0x9c,0x1c,0x55,0xaf,0xce,0x8d,0x2a,0x7a,0x18, +0x0e,0x03,0xa2,0x61,0x1c,0xb5,0x78,0xed,0x44,0xc6,0xaa,0x61,0xda,0x7b,0x4e,0xba, +0x89,0x25,0xd8,0xde,0x1d,0xb4,0x3a,0x3c,0x43,0x0f,0x62,0x87,0x86,0x10,0x23,0x09, +0xa4,0x85,0x13,0x3e,0xff,0x5f,0xd7,0xc9,0x6b,0x8e,0x43,0x0b,0x29,0x7e,0xeb,0x3b, +0xc8,0xb0,0x1b,0x62,0xe7,0xfa,0xc6,0xc3,0x36,0xc3,0x74,0x23,0x6e,0xb3,0x8b,0x04, +0x51,0x83,0x44,0x85,0x80,0xaf,0x9b,0xc6,0x97,0x40,0xce,0xa1,0xd3,0x76,0x77,0x12, +0xa1,0x54,0xb7,0x66,0x10,0x71,0x7e,0xd6,0xbf,0x8c,0xfc,0xf0,0x36,0x7e,0x65,0xc7, +0xe4,0x1f,0xcf,0x90,0x91,0xf2,0xad,0x5e,0x6f,0x49,0x1d,0x69,0x11,0x7d,0x35,0xf1, +0xa7,0x51,0x25,0x25,0xd2,0xc3,0x07,0xb3,0x0a,0x5c,0xfd,0xf1,0x71,0x7e,0x3c,0x42, +0x00,0xf5,0x70,0x0b,0xc1,0xef,0x6c,0xf4,0xe0,0x1c,0xec,0xb4,0x7a,0x7b,0x74,0x00, +0xd8,0x1a,0x17,0x45,0xd2,0x4a,0xcc,0x82,0xe1,0x81,0x10,0x96,0x30,0xaa,0x3d,0x43, +0xab,0x4b,0x50,0x65,0xb8,0x76,0x52,0x65,0xdf,0xc1,0x45,0x07,0x70,0x3e,0x2d,0x90, +0x1a,0x55,0x94,0x40,0x16,0x88,0x2a,0x13,0xc1,0x75,0xa5,0x97,0xb0,0xc8,0x9b,0x4e, +0xa8,0xb8,0x11,0x7f,0xbc,0xb5,0x57,0xce,0x09,0x5c,0xdc,0x51,0xdb,0x1d,0xa5,0x52, +0x92,0x22,0xb5,0x7e,0x65,0xce,0xa5,0x5e,0x79,0xa4,0xfe,0xfc,0x7f,0x74,0xab,0x2c, +0x7d,0x79,0xd5,0xcf,0x53,0x5e,0x71,0x4b,0xe9,0xfa,0xaf,0x7d,0x0f,0x75,0x47,0x7e, +0x5c,0x29,0x8d,0x4b,0x58,0x20,0xe7,0x3b,0x69,0xbd,0xd5,0x52,0x5a,0x76,0xdb,0x83, +0xa8,0x54,0x7b,0x8b,0xe0,0x36,0xd1,0x6a,0xbe,0x20,0xae,0xc8,0xdb,0xa7,0x36,0x5a, +0x2e,0xdd,0xb0,0xda,0xda,0xbe,0x56,0xec,0xe9,0x89,0xdf,0xd8,0x4c,0x98,0xc7,0xab, +0xe9,0xa1,0x10,0x3d,0x27,0x4f,0x6f,0xae,0x28,0xfc,0xd7,0xa7,0x0b,0x62,0x77,0x09, +0x50,0x10,0x6c,0x2e,0x37,0x32,0x28,0x09,0xe3,0x50,0x02,0x9d,0x90,0xec,0x18,0x87, +0x82,0x03,0xea,0x1b,0x54,0xa6,0x4d,0xcb,0x86,0xaf,0xd0,0x62,0x25,0x6d,0xcf,0x90, +0x85,0x97,0x88,0x99,0xb4,0x2b,0x18,0x15,0xe4,0xc8,0x78,0x5b,0x9c,0xe7,0x31,0xb3, +0x80,0xa3,0x89,0x1e,0x37,0xa4,0x8a,0xaa,0x6b,0xc4,0xc9,0xa5,0xd1,0xdb,0x11,0xfb, +0x67,0xcc,0x2e,0x07,0x17,0xaf,0xf9,0xb7,0xf8,0x8d,0x31,0x34,0x74,0x69,0xa0,0x3a, +0x5f,0x0c,0x73,0x7d,0x6e,0x31,0xb4,0xe7,0x48,0x4e,0x30,0x67,0xdf,0x19,0x95,0xb0, +0x85,0xcd,0xea,0xcf,0xcb,0x54,0x18,0x36,0x0f,0x87,0x80,0x66,0xb7,0x1a,0x69,0xa1, +0x27,0x0c,0xf2,0xaf,0x9e,0xe4,0x75,0xc3,0x67,0x06,0xa8,0x63,0xf2,0x4d,0xcf,0xa3, +0x8f,0x88,0x4a,0x6b,0x4f,0x16,0xe4,0xc9,0x45,0x8f,0xc7,0x95,0x74,0x82,0x96,0x68, +0x3f,0xcf,0x21,0xec,0xfd,0x57,0x12,0x3b,0xc1,0xab,0xcd,0xcc,0xde,0xeb,0xc9,0x9e, +0x7c,0x1a,0xae,0x2e,0x93,0x96,0x47,0xd3,0xcb,0xa6,0xc2,0xbc,0x58,0xe0,0xdb,0x6d, +0x77,0x91,0x1c,0xf7,0x9c,0xd1,0x98,0x8e,0x19,0xd4,0x06,0x4d,0x9f,0x1d,0x72,0xa9, +0x28,0x90,0x90,0xaf,0x1d,0xf4,0x80,0xb2,0x62,0xd0,0xe1,0x7f,0x7e,0x8e,0x02,0xea, +0x46,0x01,0xc1,0x76,0x02,0xa8,0xb0,0x08,0xb1,0xcf,0x4d,0x8c,0x7a,0xe1,0x12,0xd8, +0x2d,0x3f,0x37,0x66,0x9d,0x79,0x7f,0xfe,0x72,0x5a,0xf0,0x7a,0xfc,0xac,0x1b,0xc9, +0xac,0xbd,0xc8,0x3d,0x25,0x51,0x4b,0x7f,0x4c,0x86,0xb9,0x91,0x7d,0xe3,0x13,0xd9, +0xad,0xff,0x65,0xaf,0x60,0xa0,0xc4,0x3c,0xc1,0xcc,0xc3,0xaf,0x24,0xe0,0xd8,0x00, +0xa4,0xb5,0x50,0x60,0xb1,0x20,0x0c,0x72,0x38,0xcb,0xfe,0x5d,0xd7,0x95,0xb1,0x54, +0xa5,0x31,0x86,0x13,0x3b,0x3b,0x76,0xaf,0x0e,0xde,0x84,0x66,0xaa,0xfe,0x1d,0xe3, +0xa2,0xd0,0xc5,0x85,0xe1,0xbf,0xc1,0x45,0x45,0x5e,0x8d,0x77,0x0a,0xfd,0x81,0x36, +0x70,0xf0,0x29,0x12,0x33,0x70,0xbc,0x81,0x85,0x83,0xdd,0xf7,0xf3,0xfe,0x04,0x86, +0x32,0x99,0x1d,0x81,0xe0,0xbe,0x24,0x6b,0x61,0x96,0x74,0x1f,0x76,0x6f,0xe4,0xce, +0x86,0x1f,0x93,0x8c,0x8e,0x29,0x44,0xc3,0xc6,0x54,0xc4,0x26,0x2b,0x5e,0x2f,0x38, +0x05,0x90,0x25,0xa9,0xd7,0xd6,0xea,0xcd,0x1b,0x77,0xcd,0x95,0x09,0xb7,0x12,0x31, +0x25,0xdf,0xe8,0x27,0xfa,0x26,0x44,0x00,0x63,0x5a,0x85,0xd7,0x17,0x98,0x8d,0x40, +0x97,0xa3,0xf6,0x3a,0x24,0x1a,0x6f,0x19,0xcb,0xde,0xfc,0x50,0xdf,0x9d,0xd2,0x72, +0xfb,0xd4,0xe3,0x78,0xbd,0x59,0xcc,0x5c,0xc8,0x26,0x86,0x6e,0x86,0xf6,0xc0,0x6c, +0x59,0xa8,0x6e,0x67,0x16,0x17,0x17,0x31,0x4d,0xc1,0x8f,0x7f,0x43,0xf5,0xd0,0x93, +0x08,0x80,0xe9,0x56,0x8e,0x9c,0x75,0x59,0xce,0x5b,0xdf,0xfb,0x9d,0x76,0x62,0x4e, +0x13,0xfb,0x98,0xc8,0xdf,0x3f,0x24,0xbf,0x85,0xb8,0xc8,0x0c,0x64,0x93,0xf3,0x7d, +0xad,0xd5,0x42,0x4c,0x03,0xb7,0xe9,0xe4,0x1b,0x69,0x4a,0x81,0xdc,0xbc,0x07,0x8f, +0xe6,0xdc,0x44,0xcd,0xf8,0xe3,0xb7,0xfb,0xb3,0x2a,0x67,0x10,0x0b,0xf1,0x6a,0x5f, +0x92,0xf8,0xad,0xb1,0xde,0xdf,0x68,0xe1,0x9f,0x52,0xa5,0x43,0x97,0xce,0x7e,0x06, +0xe1,0x83,0xd0,0x18,0x1c,0x23,0xd6,0x42,0xcd,0x22,0x14,0xd4,0x59,0x6f,0x98,0x72, +0xfa,0xdc,0x8d,0x96,0x91,0x29,0x14,0x4b,0xe0,0xcb,0xc1,0xc9,0x32,0xe3,0x29,0xf2, +0x0c,0x0f,0x85,0x1d,0xb0,0x80,0x01,0x43,0x69,0x44,0x79,0x04,0x55,0x42,0xf1,0x6a, +0x91,0x4c,0xd3,0xea,0x32,0x63,0x66,0xd3,0xbe,0x03,0x61,0x47,0x53,0x67,0x43,0xa6, +0x80,0xd0,0xa2,0x40,0x11,0xa4,0x28,0xe2,0xca,0x1c,0xd0,0x59,0xb9,0x20,0x28,0x4b, +0xf3,0x8e,0x08,0x84,0x30,0x21,0xc7,0xa8,0x45,0x7c,0x7c,0x0a,0xf0,0x98,0xd6,0xb1, +0xe3,0x09,0xc7,0x6d,0x12,0x58,0x0b,0x9e,0x61,0x04,0xeb,0xd5,0x52,0xc9,0x4d,0xb3, +0x01,0xd3,0x70,0xa9,0x13,0xdc,0x69,0x37,0x3f,0x05,0x81,0x1b,0xf7,0x61,0x92,0xe0, +0x50,0x45,0x9a,0x0c,0x1e,0xf1,0xd2,0x15,0x78,0x0a,0x01,0xce,0x5e,0x61,0x72,0x3f, +0xf4,0x06,0x06,0x3c,0xb8,0xd3,0x02,0xd3,0xcb,0x6d,0xc5,0x5e,0xfd,0xa4,0xfc,0x01, +0x2d,0xf6,0x69,0x29,0x9e,0xb3,0x86,0x1d,0x35,0xc5,0x93,0x09,0x5a,0x6e,0x9b,0xe9, +0x29,0xda,0x4b,0x70,0x0e,0x69,0x92,0x46,0x6a,0x09,0x7b,0xb8,0x5b,0x6f,0x12,0xaa, +0x2e,0x4e,0x4c,0xb4,0xf6,0x97,0x9d,0x5c,0xc8,0x64,0xda,0xcb,0xbb,0x63,0x70,0xa7, +0x0d,0x2d,0x87,0xb7,0x1d,0x24,0x22,0xfa,0x48,0xa9,0xd0,0x7d,0xf8,0x60,0x58,0x61, +0xf9,0x00,0xdb,0xa0,0x37,0x6c,0xef,0x0b,0x8b,0x0e,0xb3,0x2d,0x7c,0x63,0x42,0xdb, +0x5f,0xd8,0xcb,0x79,0x9d,0xb6,0x01,0x69,0x68,0x49,0x91,0x60,0x9a,0x6a,0xbb,0x66, +0x04,0x16,0x0a,0xe6,0xbd,0xc6,0x9a,0x59,0xcd,0x12,0xf4,0xba,0x5f,0x32,0x26,0x15, +0x62,0xf1,0xd6,0xf4,0x4d,0x9e,0x1e,0x76,0x2b,0x55,0x92,0xd6,0x52,0x31,0x25,0x70, +0x01,0xed,0x8d,0xa0,0x51,0xcd,0xd8,0x8b,0x1d,0x5b,0x08,0x92,0x72,0xa6,0x9d,0x73, +0x23,0x10,0x2d,0xe7,0xd3,0xd6,0xc9,0x48,0xca,0xc8,0x29,0xd7,0xd2,0x63,0x5e,0x85, +0x01,0xf7,0x53,0x3b,0x66,0xe3,0x58,0xf5,0x01,0x94,0x5a,0xb9,0x2f,0xfc,0xb7,0xaf, +0x56,0xea,0xbc,0xb6,0xd1,0x60,0x24,0x72,0x6a,0xf5,0x96,0x5d,0x51,0x76,0x25,0xf6, +0x8f,0x1b,0x05,0xb6,0x30,0x12,0x2d,0x63,0xeb,0x96,0xd8,0x2d,0xad,0x9e,0x2d,0xe6, +0xca,0x1a,0x49,0xaa,0x92,0x47,0x07,0xec,0x40,0x51,0x12,0x44,0xd1,0x74,0xb3,0xea, +0x69,0x98,0xf8,0x8b,0x99,0xe7,0x16,0x55,0x79,0x83,0xf6,0xb2,0x31,0x77,0x0e,0x64, +0x69,0x5b,0x2e,0xee,0x5b,0x3d,0x7e,0xbb,0x4b,0x1b,0xfe,0xa2,0x56,0x74,0x7f,0xeb, +0x8c,0xe1,0xdd,0xd8,0xc4,0x95,0x37,0x2d,0xa3,0x18,0x23,0x5d,0x3e,0x75,0x90,0x86, +0x2b,0x13,0xf1,0x9a,0x18,0xe2,0x1d,0xd4,0x6b,0x7f,0xc7,0xb9,0x55,0x76,0xd9,0x28, +0x1a,0x1a,0x1d,0xcf,0x45,0x39,0x5a,0xf8,0xc9,0x1c,0x02,0xec,0x0d,0x26,0x8e,0x05, +0xd7,0x1b,0x0e,0x00,0x90,0x7c,0x4f,0x7a,0xeb,0x55,0x01,0x08,0x0c,0x3d,0xe4,0x77, +0x5f,0x11,0x1a,0x49,0xc1,0xc1,0x9d,0x1d,0x0b,0xf1,0x05,0x69,0x97,0xec,0xf9,0xb5, +0x0a,0x96,0xaf,0xde,0xba,0xb4,0x05,0x06,0x48,0x59,0x5f,0x28,0x16,0x7f,0x5e,0x04, +0xe5,0x03,0xa4,0x4e,0x6f,0xcd,0xaf,0xbe,0xc6,0xc4,0x0f,0x44,0xd6,0x34,0xf1,0x25, +0x3a,0x88,0x68,0xdb,0xa5,0x5c,0xbb,0x92,0x11,0x21,0x3c,0xc6,0x73,0xee,0x05,0xf0, +0x08,0xc3,0x7e,0x67,0xe3,0x47,0x6e,0x41,0xea,0x84,0xb9,0xc5,0x75,0xe9,0x77,0xab, +0x8d,0x38,0xf1,0xc3,0x17,0xa7,0xf9,0xf2,0xbf,0x85,0xd9,0x35,0x76,0xee,0x3a,0x0a, +0xa5,0x82,0xf1,0xbe,0x96,0x5f,0x38,0x74,0xe5,0xc2,0x88,0xe4,0x57,0xe3,0x72,0x06, +0x24,0x7d,0xd2,0xa9,0xe0,0x2e,0xcc,0x62,0xe4,0x87,0x80,0x52,0xbe,0x2c,0xd7,0x23, +0x27,0x79,0xe5,0xc3,0x9e,0xbe,0xf9,0xcf,0x27,0xc9,0x4a,0x85,0x7a,0x1b,0x09,0x64, +0xa2,0x8a,0xf1,0x6b,0x7c,0xe3,0xe6,0xa0,0xac,0xd0,0x15,0xe5,0xd3,0xef,0x22,0x2e, +0xe7,0xcc,0x2c,0x6c,0x3f,0x08,0x36,0x28,0x48,0x84,0xa4,0x4c,0xab,0x65,0x8e,0x74, +0xae,0xc8,0xad,0x9c,0xf1,0xa0,0x21,0x7f,0x6f,0xc4,0xc2,0x19,0x88,0xe6,0x19,0xbb, +0x58,0x25,0xf9,0x4e,0x3f,0xae,0x37,0x6d,0x86,0x88,0x67,0xad,0x08,0x42,0xd4,0x69, +0x2a,0x9b,0x93,0xe0,0x1f,0xaf,0x75,0xc7,0x4d,0x30,0xdb,0x3d,0x76,0xe6,0x99,0x35, +0x7b,0x73,0xd8,0xfe,0xf2,0x03,0x71,0xac,0xfe,0xca,0xf1,0x1d,0x3b,0x6a,0xf5,0xba, +0x0e,0x8b,0xf1,0xc7,0xe6,0xa2,0x02,0x3c,0xbb,0x83,0x60,0x4e,0xa4,0x12,0x03,0x7c, +0xef,0x83,0x47,0x2d,0x65,0xec,0x7b,0x8d,0xad,0xee,0xf2,0xaf,0x9a,0x43,0xdd,0x3a, +0x2e,0x70,0x2b,0x27,0xc5,0xa2,0xce,0xbd,0x3f,0xc9,0x6b,0x82,0x97,0xae,0xd0,0x72, +0x2c,0x9f,0xfc,0x96,0x68,0x47,0x27,0xc0,0x97,0xb5,0xec,0xaf,0xf6,0x24,0x4c,0xd3, +0xd0,0x9c,0x69,0x6a,0xb5,0x4a,0xc7,0x95,0xc4,0x2e,0xe6,0x8e,0xd6,0xea,0x8d,0x03, +0x21,0xd2,0x1d,0xe1,0x4a,0xff,0x0d,0x58,0x48,0xdf,0x69,0xb7,0x57,0x97,0x67,0x68, +0x06,0x95,0x23,0x7a,0x18,0x08,0x89,0xd1,0x56,0xb6,0xfc,0xd1,0x77,0x27,0x31,0x22, +0x60,0xf1,0xb1,0x24,0x9a,0x3f,0x54,0xb6,0xc5,0x96,0xf4,0xe6,0x76,0xf4,0xd8,0xb0, +0xc5,0x76,0x3a,0x34,0x9b,0x3e,0x75,0xb4,0x73,0x0e,0xfc,0xf6,0x77,0xf5,0x5d,0x71, +0x8c,0xb4,0xb1,0x25,0x1a,0x3d,0xe8,0x2d,0xe0,0xf6,0xf5,0xe7,0xf6,0xf6,0x6e,0xf4, +0x06,0x68,0xe7,0x35,0x1b,0x3c,0xcb,0x0e,0xc6,0x6c,0xfd,0xf7,0xf7,0xf7,0x2a,0xf1, +0x8d,0x10,0xbe,0x76,0xd0,0xfa,0x0e,0x41,0xc0,0xd5,0xe9,0x4c,0xfe,0x2c,0xee,0x43, +0x68,0xdb,0xed,0x9c,0x21,0xbf,0x92,0x3e,0x2d,0x49,0x1f,0x5c,0xf8,0x89,0xa7,0x69, +0xd3,0xd9,0xea,0x64,0x9e,0xba,0xce,0x8c,0x4d,0xa5,0xe3,0xcd,0x7e,0x2e,0xe0,0x14, +0x2f,0xd3,0x8f,0xca,0x1c,0xb0,0x27,0xbf,0x6a,0x79,0x85,0x4c,0x8c,0xe0,0x7c,0x9a, +0x0f,0x7c,0x62,0x2c,0x92,0x37,0xca,0x6e,0x71,0xc9,0xf6,0xee,0x7e,0xfc,0xee,0xd8, +0xd8,0xdc,0x29,0xa1,0xbd,0x44,0xff,0xdf,0x69,0x27,0xfe,0xfe,0x7f,0xfd,0xd8,0xbb, +0xa1,0x97,0xaf,0x2d,0xc1,0xfc,0xc8,0x8b,0xa8,0xdf,0xf7,0xef,0xfe,0xfe,0x55,0x59, +0x27,0xce,0xc7,0x58,0x48,0x34,0x9a,0x88,0xdf,0xb3,0xff,0xff,0x94,0x54,0x26,0x59, +0x6e,0xa4,0x82,0xf1,0x58,0xb1,0x16,0x11,0x78,0x02,0x82,0xdc,0xbb,0x24,0xb0,0xe3, +0x3b,0x11,0xb6,0x28,0x32,0x61,0x26,0x19,0x29,0x4c,0x58,0xdc,0xef,0xec,0x8a,0xa9, +0xb3,0x59,0x87,0x28,0xd8,0xf3,0x4c,0x6d,0x21,0x4d,0xaf,0xc7,0xb2,0xf7,0xb1,0xe2, +0xb7,0x98,0x8f,0x2c,0x99,0xd4,0x0f,0x53,0xa1,0x4c,0xe7,0x94,0x3a,0x20,0x1a,0x41, +0xa1,0xb4,0xc8,0x54,0xc6,0x07,0x09,0x30,0x44,0x7f,0x8c,0x92,0x42,0xab,0x11,0xd6, +0x02,0xc5,0xca,0x36,0xec,0x67,0x0c,0x6f,0x65,0xe8,0xf2,0xa4,0x0f,0x64,0x81,0xa9, +0xfe,0x44,0x66,0xe1,0x10,0x4a,0x89,0x21,0x82,0x92,0xb1,0x67,0x87,0x6b,0x6f,0xf4, +0xa9,0xa3,0x90,0x01,0x7a,0x04,0xc8,0xf5,0xf0,0x8f,0xe1,0x71,0x56,0xd5,0xf6,0xf1, +0xfb,0xac,0x84,0x20,0x10,0x7d,0x6c,0x2e,0xa9,0xcb,0xed,0x3f,0x17,0x39,0x82,0xf5, +0x28,0x52,0x81,0x6e,0xe6,0xf6,0x24,0xe9,0x20,0x83,0xd3,0x7c,0x5d,0x41,0xce,0x48, +0x40,0x90,0x43,0xe5,0xcf,0x22,0x3b,0xad,0xfb,0x3d,0xad,0x01,0x57,0xcc,0xbd,0xe4, +0xa8,0xd0,0xf4,0xe7,0x9f,0x30,0x43,0x30,0x20,0xa1,0x0b,0x4e,0xed,0x29,0x10,0xec, +0x42,0x7d,0xba,0x6b,0xf3,0x6f,0x6c,0xc9,0xe9,0x29,0x8b,0x84,0xbf,0xae,0x12,0x5c, +0x43,0xbc,0xcc,0x75,0x33,0x06,0xcb,0xfc,0x34,0xc1,0x83,0x94,0xbe,0x7f,0x45,0x75, +0x63,0xdf,0xbb,0xc9,0xe5,0xa2,0x6d,0xcd,0x69,0xbb,0x92,0x8d,0xd2,0xac,0x5f,0x76, +0xc3,0x5e,0xab,0x1a,0xdb,0x22,0x01,0x68,0xa3,0x5e,0x51,0x9d,0xe7,0x69,0xd9,0x04, +0x13,0x0e,0x3e,0x00,0x03,0x99,0x81,0x67,0xaa,0x9a,0x85,0xd4,0x2c,0x79,0xb6,0x78, +0x56,0xde,0x3e,0x35,0x21,0xf4,0x0a,0xd2,0x9e,0xfc,0x84,0x18,0x90,0xde,0x0d,0x95, +0x93,0x69,0x8d,0x90,0x83,0x19,0x5d,0xed,0x09,0x83,0x9a,0xd6,0xc0,0xfd,0x37,0x13, +0x2c,0x93,0x5d,0xe6,0xc1,0x5d,0x0a,0x35,0xd2,0xb3,0x8e,0xc6,0x81,0x1f,0x14,0x44, +0x11,0xce,0xa4,0xb2,0xbd,0x82,0x95,0xc0,0x4e,0xde,0xce,0xe6,0xe0,0x7c,0xdb,0xc3, +0x05,0x16,0xd6,0xd5,0x12,0xb7,0xa3,0x83,0x0d,0xf6,0x13,0xbb,0xf1,0x19,0x4d,0xd5, +0x6a,0x35,0xcd,0x49,0x5b,0xbc,0x6b,0x49,0x8a,0x05,0xd3,0x97,0x0d,0x34,0x17,0xff, +0xcb,0x06,0x94,0xd2,0xf7,0xfa,0x08,0x0f,0xe5,0x4c,0xdf,0x97,0x0c,0x7c,0x7e,0xfb, +0x6b,0x13,0xe4,0x85,0x39,0x88,0x2e,0x2c,0x5b,0x1e,0xf1,0x6c,0x2a,0xf3,0x53,0x13, +0x56,0x82,0x0e,0x5c,0x7d,0x3a,0x4a,0xab,0x0b,0x1a,0xc3,0x60,0xd8,0xd0,0x87,0xe8, +0xfa,0x58,0xde,0x70,0x5d,0xbc,0x1f,0xbd,0x20,0x39,0x26,0x9c,0x88,0x38,0xd4,0xa3, +0xaf,0x21,0x1b,0x98,0xbf,0x61,0xdf,0x51,0x46,0x19,0x8e,0x5d,0xa9,0xf0,0x86,0x21, +0x7d,0x11,0x2a,0x5e,0x36,0x34,0x5c,0x8a,0x99,0x39,0xd0,0x04,0x19,0xbc,0x8e,0x31, +0x3e,0x10,0x4b,0xd4,0x5c,0x2a,0xbd,0xb8,0x11,0xd0,0x84,0x0a,0x7d,0x66,0x39,0xe1, +0xca,0xbe,0x40,0x25,0xd5,0xf5,0x6f,0x2e,0x34,0xc3,0xf7,0xfd,0x1b,0x65,0xb0,0x22, +0x24,0xb2,0x27,0xf8,0x3b,0xbf,0x06,0x09,0x0c,0x1d,0xb6,0xbd,0xb1,0x82,0x14,0x86, +0x7a,0xd7,0x5c,0xc1,0x12,0xc0,0x2e,0xea,0x67,0xa0,0xed,0xb2,0xbf,0x31,0x77,0xed, +0x7a,0x84,0x72,0x60,0x34,0x11,0xf6,0x1e,0xac,0x90,0x9e,0xe7,0x69,0x4c,0x94,0xdb, +0x30,0xf8,0x5b,0x47,0xe2,0xb9,0xf1,0xef,0x2a,0x66,0x08,0x9b,0x3f,0x53,0xf2,0x3d, +0x83,0x49,0x69,0xfe,0x92,0xb8,0xd5,0xa0,0xd6,0xc9,0x2c,0xf0,0x1f,0x29,0x74,0xd0, +0xff,0x8f,0x9f,0x01,0xff,0x2e,0xb0,0x8b,0x53,0x69,0xd0,0x3f,0xf7,0x86,0x16,0x6a, +0x5d,0xc7,0x28,0xbf,0xc3,0xbe,0xe2,0x01,0x73,0xca,0x18,0xef,0xd2,0x84,0xe1,0x02, +0x72,0x0b,0x86,0xaf,0x14,0x69,0x21,0x81,0xc0,0xfd,0x35,0xb7,0xa8,0x84,0x34,0x57, +0x26,0x78,0xb7,0x31,0x20,0xb7,0x65,0xfb,0x2e,0x94,0x51,0x57,0x55,0x8b,0x60,0xe7, +0x66,0x23,0x7a,0x98,0x0e,0x65,0xae,0x59,0x78,0x8a,0xfa,0x56,0x3f,0xed,0x19,0xd7, +0x72,0x80,0xfe,0xd9,0xf4,0xea,0x01,0x86,0xa6,0x78,0xe0,0x10,0x37,0x58,0x2b,0xaa, +0x74,0x10,0x63,0xe7,0xf0,0xa2,0x6a,0x41,0x27,0x1b,0xa5,0x13,0x37,0xae,0xf0,0x2c, +0x8b,0xa1,0xf2,0xfb,0x5b,0xb9,0x1d,0xea,0xf1,0x66,0xc5,0x38,0x7c,0x44,0x8e,0xd9, +0x7e,0x84,0x5a,0xa1,0x93,0x21,0x64,0x08,0xb1,0x61,0xf0,0x0c,0x7d,0x2e,0x7b,0x21, +0x2c,0x50,0x13,0x99,0x19,0xb6,0x44,0xde,0x91,0x10,0x2b,0x0d,0x65,0x64,0x61,0x54, +0xfe,0x3a,0x06,0xa0,0x7f,0xf8,0x26,0xce,0x39,0xa0,0x1f,0x1c,0xd9,0x48,0x15,0x66, +0x47,0x1e,0xc4,0x1f,0xb7,0xb4,0xbb,0x93,0xa6,0xc5,0xdb,0x95,0x36,0xc5,0x59,0xf0, +0xcf,0xa1,0x52,0xb9,0x0c,0xb4,0x6d,0x9f,0x93,0xb5,0xca,0x97,0x04,0xb2,0xf3,0x04, +0x24,0xd1,0x77,0x78,0x7d,0x80,0x02,0x17,0x13,0x0e,0xc4,0xb4,0x35,0x51,0x1b,0xaa, +0x29,0x89,0x25,0x7a,0xe8,0xf0,0x0d,0x92,0x86,0x2d,0xe8,0xb6,0x55,0x72,0x39,0xef, +0x44,0x3c,0xa9,0xe7,0x54,0x1c,0xe9,0x20,0x44,0x6c,0xae,0xb5,0x22,0x5e,0x34,0x59, +0xcf,0x65,0xde,0x2e,0xba,0x7b,0x29,0x26,0xac,0x17,0xe6,0xe2,0x89,0x79,0x70,0x5a, +0xa5,0xf9,0x40,0x2b,0x71,0xce,0xea,0x32,0x3b,0xb9,0x46,0x72,0x4c,0x90,0x07,0xc3, +0xa5,0xd6,0xf5,0xe2,0xea,0x6d,0x4b,0x52,0xe0,0xcd,0x21,0x19,0xc5,0xf0,0x6f,0xb1, +0x4c,0xc6,0xbe,0x2e,0xc4,0x2c,0x43,0x57,0x2d,0xc4,0xf5,0xe3,0x70,0xf6,0x72,0x79, +0x0a,0x83,0xb3,0xfd,0x04,0xd4,0x4d,0xc5,0x10,0x27,0xa5,0xd7,0x5f,0xfa,0x2e,0x9a, +0x2d,0x99,0xb2,0x06,0x56,0xb6,0x69,0x41,0xdc,0x4a,0xe3,0x62,0x94,0xe8,0x1e,0x0f, +0xec,0x1d,0xc1,0x5f,0xbd,0xfa,0x8e,0x17,0x1b,0xe7,0xed,0x81,0x84,0xb8,0x15,0x68, +0xdd,0x10,0xad,0xec,0x85,0x3e,0x44,0x53,0x5c,0x99,0xc7,0x3b,0xc6,0xbb,0xd9,0xaa, +0x7e,0xde,0xd5,0x4a,0x25,0x83,0x48,0x5f,0x68,0xc7,0xaf,0x1a,0x19,0x7e,0xff,0x58, +0xa2,0x1d,0x54,0xbe,0x33,0x7f,0xea,0x66,0x69,0xc6,0x80,0x2e,0x4c,0x56,0x3a,0xbf, +0x0f,0x31,0xc3,0xd6,0x8d,0x75,0x69,0x2b,0xe2,0xdf,0x97,0xa8,0xbe,0xf3,0x57,0x4b, +0x0c,0xdd,0xcf,0xcb,0x5e,0xa4,0x75,0x7f,0xd4,0x94,0x45,0x9f,0xab,0x56,0x4a,0x60, +0x14,0x1b,0x80,0x66,0xe7,0x45,0xeb,0xd3,0x74,0x2c,0x2b,0xaa,0xbb,0xf1,0x8c,0xd0, +0x05,0xc1,0x59,0xfa,0x09,0x25,0x7a,0x32,0x40,0x80,0x50,0x47,0x5a,0xe8,0x59,0x77, +0x0d,0x84,0xb9,0x28,0x2f,0xff,0x2f,0x0d,0xa1,0x46,0x7d,0x56,0xa8,0xc4,0x99,0x63, +0xb2,0x08,0x8b,0x04,0xa5,0x27,0xd9,0xd9,0xb4,0x4e,0xb9,0xdf,0x38,0xf2,0x40,0x33, +0x72,0x0b,0x85,0x57,0x59,0x95,0x45,0x13,0x7a,0x4f,0x8a,0x9e,0x3a,0x55,0x88,0xb8, +0x76,0x8e,0x02,0x94,0x0f,0x90,0x78,0x12,0x13,0x41,0xc0,0x1d,0xba,0x3f,0xf5,0x32, +0xfa,0x09,0xff,0x7c,0x1d,0x80,0xd1,0x70,0xf2,0xb6,0x11,0x8c,0xa5,0x6b,0x41,0xb3, +0xe0,0x47,0xde,0x6a,0xe3,0x65,0x74,0x02,0xe2,0xc6,0xff,0x5c,0x70,0xe2,0xf8,0xe0, +0x7f,0xc5,0x2e,0x67,0x39,0xf8,0x0a,0x34,0x2b,0x97,0x88,0x2e,0xca,0x60,0xe8,0xd8, +0x11,0xf4,0x37,0x43,0xcc,0x74,0x40,0xc7,0x23,0x98,0xbc,0x05,0x5e,0x6d,0xfc,0x4e, +0xbb,0x71,0xfc,0xf5,0x98,0xd6,0x05,0x14,0x23,0xbb,0x92,0x3e,0xa8,0x40,0xa7,0x8b, +0x99,0x03,0x20,0x99,0x9d,0x3a,0x65,0x05,0x49,0xdb,0x5e,0xfa,0xea,0xa0,0x54,0x75, +0xe1,0xfd,0x1c,0x88,0x52,0x9d,0x91,0x97,0xab,0xef,0xf4,0x8e,0x66,0xc3,0xd9,0x49, +0x3f,0xad,0xea,0x3e,0xe3,0x5c,0x0d,0xfc,0x70,0x28,0xe4,0x54,0xd6,0xcb,0x79,0xf8, +0xfe,0xa1,0xe3,0x33,0xd2,0xbf,0x9c,0x97,0xcc,0x75,0xc0,0x1f,0x31,0x7f,0xda,0x7a, +0x8a,0x4e,0x7c,0x71,0x9d,0xc4,0x53,0x64,0x49,0x6b,0x12,0xbd,0x98,0x2d,0x30,0x04, +0x2b,0x27,0xb3,0xa8,0xc9,0x53,0xbb,0x90,0x68,0xff,0xce,0xa6,0xc3,0xa9,0x51,0x60, +0xcc,0x7f,0xb3,0x07,0x76,0xba,0x8f,0xc3,0x2a,0xdb,0xa2,0x8d,0xbb,0x78,0x3f,0x69, +0xd7,0xdd,0xe3,0xe7,0x43,0x5c,0x82,0xd3,0x9e,0xfd,0xf4,0x65,0x9e,0x1e,0x54,0x68, +0x67,0x1b,0xad,0x7f,0xc0,0x25,0x19,0x42,0xdd,0xfe,0xa3,0x68,0x90,0x77,0xd5,0xb3, +0x16,0x78,0x0b,0xb8,0xcf,0x95,0xb8,0x93,0x12,0xa2,0xce,0x06,0x74,0xd7,0x8c,0x39, +0x59,0x1c,0x95,0xc1,0xda,0x16,0x54,0xe1,0x50,0x3f,0x85,0x25,0x75,0xf5,0x23,0x11, +0xa1,0x7d,0xfd,0x3a,0x47,0x74,0x6b,0xcc,0x20,0x56,0xfe,0x61,0xf1,0x81,0xd4,0xee, +0x97,0x55,0xb5,0xf2,0x5a,0x74,0x07,0xf0,0x44,0x51,0x51,0x05,0x80,0xd6,0x01,0xfa, +0x1b,0x93,0x8e,0x88,0xb1,0xca,0xdc,0xb8,0x83,0x09,0xef,0xdf,0x08,0xf1,0xa3,0x9a, +0x25,0x02,0xb4,0x03,0xc6,0xb4,0x78,0xda,0x9a,0x35,0x27,0xcc,0xf9,0xff,0xfd,0x76, +0xae,0xe0,0x47,0x64,0x6c,0x56,0x20,0x85,0x11,0x39,0xb7,0x27,0xf9,0xbb,0xd4,0x8d, +0x9a,0x80,0x6c,0x63,0x34,0x79,0x20,0x2a,0xfe,0xd0,0xbf,0x7d,0xa7,0x39,0x8b,0xa2, +0xcb,0xa3,0xbe,0xe8,0x3c,0xc6,0x7e,0x92,0x83,0xcd,0x47,0x68,0x49,0xc7,0x28,0x10, +0x28,0x3e,0x31,0xa2,0x15,0x48,0x79,0xd5,0x00,0x8c,0x01,0x88,0x18,0xfd,0x74,0x1c, +0x5b,0x70,0x5c,0xb2,0xd2,0x33,0x2f,0xcd,0x36,0x0f,0x17,0xfd,0xc7,0x3c,0x74,0x35, +0xab,0x5d,0x5c,0xf3,0xc7,0x0a,0x5b,0x08,0x97,0xba,0xc9,0xd1,0x10,0x2e,0xf1,0xa2, +0x24,0x63,0x80,0x0a,0xfd,0x0a,0xf0,0xca,0x44,0xcd,0x08,0xb5,0x2c,0x4d,0x71,0xef, +0xe2,0x5a,0x66,0x92,0x6a,0x50,0x65,0x33,0xc5,0x01,0xc0,0xbe,0xf0,0x68,0x41,0x44, +0xc4,0x8f,0xeb,0x06,0x6f,0x57,0xc8,0x04,0x65,0xbd,0xa2,0x57,0x54,0x4d,0x01,0xee, +0x26,0xc1,0x00,0x69,0x00,0xdf,0x7f,0x1f,0x8f,0x92,0x99,0xa4,0x76,0xeb,0x30,0x67, +0x02,0xa8,0x28,0xc4,0x9e,0x14,0x76,0x00,0xb9,0x79,0xad,0xc6,0xf7,0x6d,0x50,0xb2, +0x03,0xa9,0x6c,0xa7,0x67,0xf5,0x21,0xb7,0x24,0xe5,0x33,0x49,0x27,0x30,0x0f,0xc1, +0x0e,0x26,0xd9,0xb4,0xe6,0xad,0x9d,0xfc,0xc7,0x66,0xf5,0x87,0xd7,0x49,0x07,0x74, +0x26,0x8c,0x5a,0xf6,0x6b,0xe4,0x81,0x08,0xaf,0x56,0x6c,0xf3,0x8c,0x71,0x7f,0x81, +0x0a,0xb2,0x1d,0x41,0xf5,0x42,0x12,0xe9,0xa5,0x22,0x34,0x5d,0x2c,0xa7,0x51,0x35, +0x5e,0xdc,0x3d,0x64,0x6b,0x06,0x61,0x3a,0x25,0x03,0xda,0x3c,0x87,0xe4,0x5e,0xf3, +0x22,0x31,0x63,0xe7,0x2d,0x05,0x15,0xe7,0x6f,0x4f,0xb2,0x5c,0xa4,0xa5,0xe6,0xe6, +0xac,0x50,0x38,0x0c,0xd6,0xfa,0xc4,0x41,0xa7,0xc4,0xc4,0x78,0x20,0x5d,0xe2,0x09, +0xc5,0x21,0xd5,0x76,0x6d,0xac,0x0c,0x52,0xaf,0x6f,0xd4,0x46,0x15,0x48,0x58,0x49, +0xac,0xfc,0xbe,0x41,0x39,0x18,0xeb,0x39,0x46,0xcb,0x34,0x6d,0x67,0xf7,0x29,0xba, +0x2d,0xce,0x23,0x4b,0xae,0x7a,0xe6,0x98,0xf2,0x6e,0xe2,0xbb,0x16,0xdf,0x15,0x63, +0x6e,0x20,0x7e,0x60,0xab,0xed,0x5f,0x6f,0x6e,0x30,0x3b,0x96,0xfd,0x64,0x9e,0xe2, +0x2c,0x52,0xfd,0xdd,0x37,0x70,0x14,0x48,0x15,0xc6,0xed,0xa6,0xd5,0x2f,0x51,0xe1, +0x6a,0x35,0x13,0xd9,0x33,0xaa,0x76,0xb3,0x0c,0xa0,0xbc,0x4f,0x71,0xb3,0xb5,0xf1, +0x1b,0xcd,0x0c,0xf9,0x21,0xce,0x7d,0x8e,0x0d,0x83,0x01,0xc5,0x0b,0x69,0xe4,0x71, +0x45,0x32,0x36,0xf5,0xd4,0xbb,0x65,0xa7,0xe3,0xc8,0x3d,0x9f,0x24,0x2e,0x3d,0xac, +0xcd,0xa5,0xb4,0xd9,0xb2,0x1b,0x2a,0x42,0x47,0x70,0x58,0x74,0xd6,0xfc,0xdb,0x03, +0xda,0xfb,0x5f,0x34,0x5f,0xf6,0xb6,0xe1,0x53,0x3f,0xef,0x85,0x07,0xfe,0xdc,0x7f, +0x4d,0x87,0x41,0x43,0xb2,0x3d,0xe0,0x32,0x2e,0xa7,0x75,0xe5,0xf4,0x56,0x0b,0x07, +0xa4,0xc5,0x93,0x73,0x42,0x14,0x5b,0xdf,0xf4,0x95,0x7d,0xe6,0xcb,0x57,0x68,0x0e, +0x17,0x5c,0xfe,0x8a,0xb5,0x68,0xad,0xc8,0x4d,0x88,0x9d,0xf5,0x81,0x44,0x91,0x2a, +0xd2,0x36,0x55,0xb9,0x9c,0x46,0x66,0x3f,0x25,0x08,0xc6,0x99,0x84,0xf6,0x35,0x75, +0x47,0x6b,0x67,0x67,0xbc,0xb7,0x31,0x96,0x05,0x2b,0x77,0x47,0xfc,0x67,0xbc,0xe8, +0xe6,0x1a,0x03,0x10,0x56,0x0a,0x1f,0xa6,0xeb,0xc0,0x9f,0xb3,0xfb,0xe0,0x3c,0xe8, +0x46,0xad,0xb2,0x3d,0x14,0xfd,0xbf,0x5d,0x8f,0x73,0xe7,0xec,0x96,0x5c,0x38,0xf2, +0xc4,0xf9,0xfb,0xad,0x07,0xd1,0xb0,0xc2,0x86,0x4c,0x56,0x8d,0x4b,0xb2,0x19,0xcd, +0xcd,0xcb,0xdd,0x3c,0x8a,0x11,0x23,0x18,0xc8,0x7a,0xe2,0x8c,0xc5,0xe5,0x57,0xe2, +0x54,0x3f,0x89,0x16,0xbc,0x54,0x93,0x68,0xfc,0xd5,0x6f,0xff,0xff,0xff,0x3e,0x3d, +0x68,0x0d,0xf9,0x20,0x73,0x8f,0x42,0x1a,0xab,0x24,0xaa,0x94,0x84,0xcf,0xf3,0xe0, +0x20,0xf0,0xda,0x52,0xfa,0x45,0x60,0x80,0xad,0xee,0x67,0x4e,0x3b,0x6e,0xfe,0x72, +0xf4,0x61,0x96,0xf6,0x14,0xaf,0x81,0xd2,0x44,0xef,0x35,0x01,0xa3,0x62,0x77,0x17, +0xe2,0x26,0x19,0x66,0x86,0x87,0xbd,0x53,0x36,0x26,0x36,0x11,0x38,0x99,0x0b,0xbb, +0xf3,0x87,0x00,0xac,0x55,0xaf,0x68,0x9e,0xee,0x49,0x8e,0xd4,0xe5,0xe9,0xfa,0xf5, +0xf4,0xf8,0x93,0x54,0x9e,0x98,0x40,0x9f,0xaa,0x94,0x21,0x87,0x3d,0xc1,0x75,0xbb, +0x84,0x1d,0xc5,0xa7,0x6a,0x7c,0xae,0x12,0xbe,0xe7,0xaf,0xd4,0xb9,0xa5,0x5b,0x31, +0x3c,0xda,0xaf,0x7c,0x6c,0xba,0x0f,0xac,0x4e,0x05,0xc1,0x58,0x38,0x76,0xd1,0xfb, +0x84,0x49,0x93,0xee,0xf8,0xfd,0x2a,0x0c,0xa3,0x2b,0x22,0x5b,0x56,0xb7,0xf5,0x6b, +0x75,0xa8,0xf2,0x2e,0xe6,0xfc,0xf6,0xab,0x6f,0xe4,0x0a,0xc4,0xd4,0xd2,0x3b,0xf7, +0x24,0x07,0xfb,0x29,0x50,0x70,0xa7,0x4b,0x23,0xc9,0xad,0x4d,0xd6,0x95,0x13,0xf6, +0x60,0xda,0xf3,0x6e,0xd2,0x70,0x4f,0x49,0x49,0x54,0x59,0x0c,0x78,0xca,0x10,0x7f, +0xbd,0xa1,0xa0,0x4c,0xc7,0xad,0x0b,0x4d,0x49,0xdd,0xec,0x44,0xd7,0xca,0xc2,0x2a, +0x69,0xf2,0x31,0xd8,0x20,0x98,0x22,0x7a,0x23,0x0f,0xcb,0xf8,0x44,0x70,0x8a,0x79, +0x7d,0xa1,0x3c,0x12,0x67,0xa4,0x93,0x81,0x3e,0xc3,0x99,0xad,0xf0,0x9b,0x35,0x18, +0x08,0x02,0x30,0xd9,0xa8,0x65,0x02,0x4f,0xcd,0x54,0xe5,0xac,0x56,0xc9,0x7a,0x87, +0x81,0x51,0x15,0x77,0xb4,0xbd,0x2c,0x5b,0xcc,0x5d,0x25,0x20,0x37,0xf2,0x1e,0x8d, +0xca,0x55,0xb4,0xb0,0xda,0x75,0x45,0x61,0x65,0xd1,0x8d,0xf3,0xbb,0x4b,0x3b,0xa8, +0xc8,0x1f,0xd7,0xc3,0x5b,0x56,0xee,0x86,0x41,0xad,0xaf,0x56,0xc0,0xdf,0x37,0x21, +0x24,0xbc,0xb7,0x25,0x3c,0x9c,0xd2,0xde,0x3f,0x8e,0x95,0xb1,0xd8,0xd9,0x9b,0xfd, +0xf6,0xc5,0x9e,0xc5,0x91,0x76,0x0e,0xe4,0x64,0x6f,0x50,0xf7,0x61,0x97,0x6a,0xf8, +0x80,0x90,0xb4,0xa7,0x0b,0x3e,0x97,0x74,0x58,0xe5,0x70,0x87,0x19,0xd3,0xe2,0xfc, +0x4b,0x4c,0x9c,0x01,0xd1,0x16,0x62,0xf8,0xba,0x7e,0xd3,0xcd,0x72,0x6a,0x5b,0xf8, +0xa5,0x2c,0xcf,0xc4,0x8b,0x1f,0x6a,0xd8,0x90,0x57,0x8f,0x06,0xc9,0x1b,0xa2,0xac, +0x4b,0xce,0x22,0xa8,0xd1,0x7b,0x0c,0xaa,0xdb,0x05,0xcc,0x56,0x10,0x69,0x54,0xb6, +0x5f,0xb6,0xda,0x39,0xce,0x55,0xf2,0xcb,0x0f,0xff,0xc6,0xb8,0x50,0x53,0x11,0x28, +0x43,0x5e,0x91,0xef,0x47,0x97,0x0d,0xab,0x7a,0x1b,0x57,0x44,0x8f,0x77,0xab,0xbd, +0x26,0xb6,0x30,0xb9,0x52,0x7f,0x4e,0xca,0x87,0xd2,0x5f,0x54,0xa1,0xfa,0xe4,0xf8, +0x2e,0xb3,0x13,0xdd,0x0a,0x1d,0x41,0x1b,0x40,0xc1,0xe8,0x59,0xb0,0xbf,0x1e,0xab, +0x13,0x9c,0x5d,0x2f,0x47,0x92,0x04,0xde,0x6d,0x46,0x16,0x6f,0x51,0xd0,0x13,0xbb, +0xd4,0xb1,0x69,0xe9,0x5b,0x91,0x84,0x1a,0xc8,0x81,0xa9,0x45,0x75,0xd3,0xcf,0x22, +0x52,0x73,0x1b,0x5f,0x33,0x7d,0x15,0x9b,0x09,0x7f,0x93,0x6e,0xd9,0x75,0x76,0xdf, +0x8b,0xdf,0xa0,0x3b,0x30,0x2b,0x0e,0x87,0x25,0xc4,0x88,0xc9,0x70,0x8e,0x08,0xf8, +0xf0,0x08,0x08,0xe6,0xa1,0x02,0x2e,0x50,0xba,0x6c,0xc1,0xc6,0xd5,0xf7,0x9e,0x8c, +0x31,0x0b,0x91,0x36,0xe0,0x0d,0x50,0x07,0x2d,0xe1,0x56,0x59,0xb5,0xe6,0x09,0x99, +0xa1,0x2e,0xbe,0xe4,0x19,0xe2,0x69,0x17,0xa6,0xc6,0x29,0x06,0xff,0x4c,0x9f,0x80, +0xa7,0x5b,0xd8,0x36,0x1e,0xaf,0xa2,0x8c,0xea,0xc9,0xa2,0xa6,0x5a,0x40,0xa7,0x7e, +0xcf,0x8c,0x28,0xbe,0x5b,0xe7,0x6b,0xf6,0x74,0xcb,0x14,0xe5,0x3d,0xed,0xa1,0xfe, +0x30,0x22,0xf3,0xc3,0xa5,0x63,0xdd,0xf0,0xbe,0x6b,0xbf,0xd7,0x3f,0x2c,0xfc,0x14, +0x66,0x21,0xb0,0xc7,0x96,0x95,0x31,0xf7,0xa4,0x5d,0x7d,0x64,0x90,0x44,0xb1,0x3b, +0xad,0x77,0xf8,0x2c,0x74,0x39,0x24,0x8b,0xa7,0x8c,0xe6,0x5c,0x36,0xeb,0x70,0x7a, +0x71,0x26,0xfc,0x33,0xf6,0xcd,0x44,0x3d,0x69,0x66,0xf1,0x10,0x42,0x64,0x1d,0x32, +0xa2,0x55,0xdd,0x09,0xff,0xff,0x69,0x05,0xa6,0xc9,0xcd,0x8f,0xf8,0x9f,0x8b,0xeb, +0x61,0x58,0x3b,0xef,0x03,0x0a,0x9f,0x59,0x3e,0xae,0xc4,0xc2,0x7d,0x30,0x7a,0xb9, +0x76,0x01,0x22,0xa7,0x46,0x1d,0xb2,0x82,0x52,0x8e,0xcc,0xbb,0xd3,0x4a,0x50,0xa9, +0x37,0x38,0x94,0xfe,0xe8,0x26,0x20,0xe4,0x49,0xd6,0x34,0xca,0xb6,0xf7,0x05,0x96, +0x65,0x1f,0x9d,0xee,0x6f,0x7d,0x2a,0xfb,0xcf,0xde,0x21,0xaf,0xd2,0x4a,0x7e,0x64, +0xbf,0xcd,0x0c,0xdb,0xac,0x25,0x0b,0x8b,0xc7,0xc0,0x17,0xec,0xb1,0xe7,0xf4,0x11, +0x12,0x3d,0x9e,0x36,0xb1,0x1f,0x14,0x48,0x8d,0x73,0x34,0x55,0x5e,0x7d,0x12,0x33, +0x44,0x95,0xba,0xbe,0xde,0xf5,0x67,0xb2,0xad,0x8b,0xe8,0x87,0xd4,0x4e,0x70,0xf3, +0x24,0x8d,0x01,0xa3,0xd7,0x5d,0x2f,0xa1,0x76,0x93,0x66,0x54,0xd6,0x5f,0x4c,0xb7, +0xc6,0x96,0x97,0x27,0x3c,0x1c,0x45,0x81,0x11,0xdc,0x83,0x17,0xdb,0x6c,0x02,0x0e, +0x25,0x3d,0xdc,0x37,0x95,0xe4,0x62,0x66,0x55,0x11,0x72,0x95,0x35,0xfd,0x35,0x66, +0x90,0xf0,0x92,0x77,0x9b,0xb8,0x25,0x62,0x66,0x87,0x3c,0x2e,0xbc,0x78,0xa5,0x2b, +0x42,0xd4,0xd7,0xd4,0x15,0xb5,0xb5,0x0b,0xaa,0x94,0x71,0x47,0xe4,0xe6,0x55,0x14, +0x6d,0xe6,0x93,0x73,0x35,0xb3,0x43,0x52,0x3d,0x28,0xa4,0x78,0x50,0xb6,0x30,0xb7, +0xc7,0xdc,0x02,0xaa,0x9d,0x67,0x20,0x7b,0x48,0xc3,0x89,0x9e,0x5d,0x07,0x50,0x9d, +0x09,0x38,0xc8,0x3a,0xc8,0x1f,0x86,0x51,0x7d,0x94,0x05,0xfc,0xdc,0x04,0x7d,0xa5, +0xc6,0x4b,0x13,0xed,0x43,0xd4,0x0e,0xcd,0x53,0xca,0x8c,0x1f,0x54,0x25,0x3e,0x68, +0x29,0x16,0xfb,0xbb,0x56,0xff,0xc6,0xb3,0x48,0xa7,0x97,0xdd,0x04,0x7a,0x58,0xe6, +0x28,0x87,0x2a,0xac,0xb3,0xde,0x48,0x4a,0xbc,0x03,0x96,0xac,0x8f,0xf1,0x37,0xe4, +0x4c,0xbd,0x09,0x9e,0x77,0xb0,0x27,0x2e,0x0c,0xfd,0x77,0x8d,0x4d,0x7b,0x0f,0x8b, +0xce,0xdc,0x18,0xbc,0x98,0xd2,0x2d,0xc9,0x92,0x9c,0x5b,0x7d,0xce,0xf4,0x17,0x5f, +0x9c,0xaf,0x10,0x5a,0x54,0xfc,0x07,0x0b,0x47,0x2e,0x7d,0x3f,0xb3,0x52,0x55,0x47, +0xc2,0xc0,0xfe,0x2c,0xf9,0x31,0x06,0x42,0xbf,0xed,0x86,0x0c,0xbb,0x24,0xe4,0x82, +0x45,0x0b,0x08,0x57,0x17,0x8a,0x20,0xce,0xed,0x4c,0x3c,0x56,0x30,0x01,0x49,0x1d, +0x69,0x31,0x2d,0x96,0x8b,0x2a,0x02,0xa5,0xf3,0xa2,0xab,0x95,0x59,0xcd,0xdb,0x62, +0xb3,0x6f,0xf1,0x11,0x78,0x32,0xb5,0xa2,0xfd,0xc8,0x81,0x31,0x58,0xb3,0xff,0xa2, +0x4a,0x35,0x2c,0xd7,0x01,0x2e,0x18,0x6d,0xba,0x75,0x10,0x8d,0x7e,0x69,0x10,0x54, +0x4b,0x54,0xb0,0x66,0x24,0x25,0xb2,0x61,0x7b,0x41,0x4c,0x84,0x32,0x6a,0x47,0x6c, +0x6b,0x77,0xd4,0x3f,0x5a,0x7c,0xe6,0x49,0xc4,0x8d,0x89,0x71,0xd4,0x5d,0x69,0xd3, +0xcb,0x16,0xdf,0x84,0x6c,0x7a,0xe4,0x60,0xf3,0x43,0xdf,0x49,0x3a,0xb6,0x60,0x1c, +0x09,0xf9,0xb0,0x3c,0x39,0x6a,0x32,0xc2,0xbd,0xc1,0xac,0xe0,0x90,0x79,0x0e,0xfa, +0x6a,0x19,0x92,0x6f,0x46,0x6b,0x45,0x39,0xb5,0xf8,0x0b,0xcf,0x65,0xe4,0x63,0x4a, +0xf8,0x81,0xda,0x1e,0x17,0x8c,0x33,0xa3,0xcb,0x9a,0xeb,0x1f,0x10,0x65,0x1d,0xc0, +0x62,0xb1,0xd2,0x28,0x9a,0x6b,0xa8,0x01,0xcf,0xda,0xe5,0x14,0x30,0x5a,0x76,0x4c, +0x2e,0x81,0x94,0xae,0xed,0x59,0xbb,0x4c,0x79,0x00,0x8a,0x68,0x12,0xdd,0x2a,0x5a, +0x00,0x00,0x00,0x9c,0x19,0xa6,0xf6,0xeb,0x4c,0xd2,0xfa,0x22,0x7f,0x2f,0x23,0x57, +0xf4,0x01,0x8d,0x22,0x15,0x88,0xeb,0x96,0xe9,0x2c,0x54,0x6f,0x77,0xde,0x12,0x5b, +0x2c,0x09,0xfb,0x60,0x9d,0x34,0x61,0xea,0xc0,0x54,0x90,0x07,0xa4,0x66,0x5a,0x25, +0x64,0xbd,0xa4,0xc4,0x64,0xbb,0x34,0x37,0x89,0xa1,0xea,0xa2,0x13,0xd6,0x04,0x94, +0xa9,0xef,0x2c,0xe6,0x53,0xe5,0x45,0x3f,0x02,0x71,0x30,0x2f,0x8e,0xac,0x54,0x46, +0x62,0xd2,0x78,0xb4,0x80,0x9d,0x1b,0x9d,0xc1,0xf2,0x46,0x21,0xc3,0x06,0x33,0x38, +0x63,0xd3,0xf3,0x92,0xd2,0x13,0xe5,0xc2,0xd3,0x3d,0xfe,0xee,0x0c,0xcf,0x3c,0x42, +0xaa,0x36,0x3f,0xb7,0x25,0xb4,0x8b,0x64,0x51,0x2f,0x14,0x29,0xe3,0x35,0x15,0xd2, +0x84,0x13,0xb2,0x70,0xce,0x94,0x92,0x37,0xa9,0x4f,0x92,0x70,0x33,0x1d,0x7d,0xa1, +0xe2,0x1b,0x69,0x5e,0x3f,0x54,0x6d,0x12,0xf1,0xfb,0x78,0x9a,0x6f,0x6d,0x6d,0x22, +0x02,0x9d,0xf5,0x2a,0x46,0x54,0x15,0xd4,0x80,0xcc,0x60,0xc4,0x52,0xd6,0x0e,0x8c, +0xa0,0xe6,0xfe,0xff,0x23,0xba,0x74,0xac,0x6b,0x98,0xed,0x6b,0x81,0xfe,0x1b,0xeb, +0x11,0x75,0x69,0x5c,0x15,0x92,0x16,0xa9,0x4b,0xd8,0xfc,0xbe,0x78,0xb8,0x39,0x3d, +0xe8,0xb5,0x78,0xfe,0x88,0x56,0x29,0x00,0x2a,0x1a,0x97,0xd7,0x99,0x7e,0x69,0x2c, +0xaa,0x52,0xf7,0x99,0x50,0x2a,0x9d,0xbb,0xe9,0xd6,0xa1,0x90,0x91,0x76,0xc1,0x3b, +0x1a,0x15,0x3d,0xb3,0x5a,0x35,0x96,0x00,0x55,0x51,0xee,0xdc,0x3c,0xd3,0x36,0x20, +0xc7,0xa6,0x35,0xe7,0x1d,0x7f,0x9e,0x10,0x54,0x50,0xa0,0xfb,0x7d,0xfd,0x45,0x4b, +0x7e,0xad,0x38,0xb3,0xd8,0x1b,0x29,0x38,0x89,0xe5,0x77,0x9f,0x98,0x12,0x57,0xf6, +0xf8,0x4a,0x81,0x95,0x43,0x7c,0x21,0x2d,0xed,0xd4,0x42,0x7f,0x76,0xff,0x97,0xa6, +0x02,0xca,0x8c,0x1a,0x77,0x3f,0xa6,0x5d,0x67,0x10,0x1c,0xb5,0x43,0xea,0x16,0xdb, +0x88,0xe3,0x73,0xe6,0x1d,0xae,0x8f,0x0b,0xb1,0x50,0x80,0xc9,0xbc,0xb0,0xf5,0xf2, +0xaa,0xc2,0xb7,0x2f,0x92,0x99,0x11,0xb3,0x25,0x7d,0xac,0x54,0xe8,0x43,0xd6,0x60, +0xb7,0xed,0x97,0x3f,0xb4,0x82,0xf9,0x0b,0xa9,0x3e,0x6d,0xc9,0xb6,0x7c,0xc3,0xfb, +0x65,0x94,0x2a,0x3d,0xb5,0xd4,0x2e,0x84,0x56,0x58,0x2b,0x45,0x50,0x67,0xc4,0xc0, +0x03,0x8d,0x6b,0x54,0xa2,0x35,0x06,0xb6,0x63,0x31,0xa8,0xef,0x1d,0xe3,0x19,0xab, +0x2e,0xcb,0x66,0xf8,0x96,0x86,0x89,0x11,0x2d,0xec,0x9e,0xe3,0xa5,0xc9,0x73,0xf3, +0xe7,0xae,0xc9,0x94,0xb3,0x53,0x6c,0x01,0x2c,0xd6,0xd5,0x4f,0x76,0xec,0xc5,0xca, +0x54,0x25,0xfc,0xec,0x18,0x2d,0x2a,0x22,0x04,0x39,0x25,0xdd,0xd8,0x63,0x08,0xe5, +0xe4,0xba,0x8c,0xd9,0xdf,0xb9,0x3c,0x06,0x05,0x98,0x82,0xc4,0xf1,0xe4,0xea,0xfa, +0x2f,0xea,0xb1,0xd3,0x9a,0xb1,0x0d,0x16,0xef,0x8a,0xc6,0x93,0x37,0x8e,0xc7,0x84, +0x8c,0xeb,0x10,0x6f,0x1d,0x2d,0x1b,0x0c,0x85,0xfa,0xc4,0xcf,0xfc,0x1a,0x02,0x48, +0x5b,0x81,0x32,0x3d,0x38,0x08,0x4c,0x42,0xc3,0x6a,0x75,0xea,0x65,0x0b,0x3a,0x38, +0x48,0x8b,0xd5,0xb2,0x1f,0x5c,0xa1,0xfe,0x7c,0xb6,0x21,0xf8,0x59,0x77,0x49,0xce, +0xcd,0x6e,0x2a,0xad,0x7e,0x51,0x66,0xab,0xcb,0x45,0x33,0x9a,0xbd,0xac,0xc8,0xe6, +0xec,0xaf,0x14,0x31,0xf5,0xa0,0x43,0x88,0x80,0x44,0x35,0x7b,0x96,0xb4,0x1a,0x32, +0x64,0x3f,0x96,0xb6,0x11,0xf2,0x6d,0x2d,0xc3,0xcb,0x4b,0xd5,0x40,0xb2,0x4a,0x23, +0x26,0xdb,0xad,0xe8,0x54,0xb5,0x62,0x17,0x21,0x24,0x94,0xb0,0xf8,0x94,0xb4,0xf0, +0x90,0xfe,0xfc,0x94,0x3b,0x34,0xd0,0xc5,0xc5,0xb2,0xec,0xb2,0x75,0x96,0x13,0xba, +0x6d,0xc9,0xcf,0x95,0xb4,0x63,0xe9,0x37,0xfe,0xd0,0x85,0x2c,0x0a,0x53,0xa9,0x3f, +0x07,0x4f,0xbf,0xc6,0x30,0xf4,0x6a,0xa5,0x8f,0x1e,0xcc,0xf6,0xd5,0xb5,0x32,0xfa, +0x2f,0x38,0xd3,0x11,0xfd,0xaf,0x7a,0x23,0x61,0x5e,0xfc,0xf6,0x77,0xf5,0x51,0x47, +0xad,0xa1,0xf4,0xe3,0x4e,0x5c,0x13,0x32,0xc7,0x76,0xf5,0xe7,0xf6,0xf6,0x20,0x43, +0x58,0x3a,0xa5,0xef,0x4e,0xf5,0x63,0xe2,0xa8,0xd3,0xfd,0xf7,0xf7,0xf7,0x5e,0xb8, +0xd8,0x97,0xfc,0x75,0x54,0xa9,0xa6,0x56,0xb8,0x23,0x16,0x7d,0xf8,0xb8,0x50,0xa3, +0xdc,0x4a,0x0d,0x6d,0xb1,0x32,0xe7,0xba,0x8c,0x66,0x86,0x24,0xfe,0xbd,0x7c,0x8b, +0xc4,0xcb,0xd9,0x89,0x5d,0x39,0x4c,0xd8,0xf7,0xa5,0xf1,0xa8,0xb6,0xbe,0x51,0xa3, +0x44,0x2a,0xab,0x7d,0xde,0xb8,0xff,0x6f,0xaf,0x56,0xd7,0xb8,0x5e,0x9e,0x77,0x8d, +0xf0,0x96,0xbb,0x5a,0xd5,0x6d,0x9c,0x1a,0x2e,0x7d,0xf6,0xee,0x7e,0xfc,0x50,0x16, +0x6d,0x62,0x59,0x0f,0xc2,0xd3,0x88,0xde,0xb6,0x20,0xfe,0xfe,0x7f,0xfd,0x24,0x3a, +0x96,0xbe,0x5e,0x73,0x55,0x0f,0x66,0x18,0xde,0xda,0xf7,0xef,0xfe,0xfe,0x51,0xf2, +0x22,0x69,0x89,0x0b,0xbc,0x5d,0x50,0xc1,0xa0,0x42,0xff,0xff,0xd7,0xef,0x80,0x0c, +0x8d,0x40,0x08,0xc4,0x1c,0x60,0xbb,0x67,0x4e,0x9c,0x15,0x6e,0xac,0x68,0xa7,0xe1, +0xed,0x0c,0xc2,0x15,0xee,0x85,0xd4,0xc3,0x4e,0x9c,0xc3,0x34,0x57,0x31,0x83,0xde, +0xeb,0xc7,0x01,0xe2,0x79,0x81,0xd5,0xeb,0x7b,0xe3,0x4a,0x25,0x28,0x83,0x57,0x22, +0x01,0xa8,0x5b,0x55,0x78,0x0b,0x4f,0xf5,0x2a,0x09,0x5c,0x4a,0xb9,0x6e,0xad,0x3e, +0x83,0x09,0xc8,0x60,0x79,0x0c,0x18,0x5a,0x1f,0x4f,0xd1,0x74,0x2d,0x64,0x04,0x61, +0xa2,0x84,0x96,0x11,0x8d,0x8e,0x26,0x76,0x93,0x21,0x7f,0x39,0x71,0x35,0xfe,0x03, +0x23,0xab,0x24,0xb4,0x97,0x2f,0xd1,0x70,0x9f,0xc4,0xf1,0x61,0xad,0x46,0x1a,0xd5, +0x9f,0x61,0xc3,0x35,0x16,0xd7,0x67,0xb4,0x60,0xe7,0xdb,0x88,0xd7,0x63,0x30,0x18, +0x8d,0x1e,0x98,0x08,0x3b,0x99,0x38,0xc2,0x0b,0x47,0x6d,0x52,0x76,0xb7,0x2d,0x19, +0x62,0x7d,0x82,0x19,0x1d,0x69,0x50,0x25,0x58,0xe6,0x13,0x42,0x3b,0x1f,0x5d,0x13, +0x88,0xa1,0xbd,0xb9,0x52,0x69,0x3a,0x5a,0xc7,0xc6,0x2c,0x1d,0xf9,0xc5,0x89,0xdf, +0x1b,0x08,0x30,0x6e,0xfb,0x28,0x57,0x4a,0xc6,0xc1,0xe5,0x74,0xf9,0xdb,0x69,0x36, +0xdb,0xb0,0x75,0x60,0x6d,0x2c,0x5a,0x98,0x4e,0xed,0x52,0x91,0x52,0x98,0xb5,0x9a, +0xaa,0xd2,0x0a,0x50,0x05,0xd0,0x0c,0x28,0xa0,0xc5,0x36,0xef,0x46,0x67,0xfc,0x12, +0x09,0x03,0xf4,0x65,0xe9,0x2e,0x5d,0x9a,0x83,0xc3,0xdb,0x80,0xde,0x13,0xe7,0x22, +0x55,0xa0,0xdd,0x3f,0x64,0xf2,0x01,0x7d,0xa3,0x57,0x5f,0x79,0x93,0x0d,0x7a,0x86, +0xc1,0x93,0x15,0xf7,0x56,0x5c,0x6d,0xf6,0x95,0x9c,0x91,0x55,0x33,0x50,0x74,0x81, +0x20,0xbc,0x0c,0x90,0x9e,0x9c,0xc7,0xb8,0x1e,0x80,0x56,0x74,0xc5,0xdb,0x2d,0x72, +0x2c,0x9f,0xe3,0x20,0xb1,0x52,0x14,0xf7,0x1d,0x9e,0xcb,0x74,0x28,0xd9,0x05,0x23, +0xf5,0x8e,0xdf,0x6d,0x35,0x30,0xdd,0xb5,0x52,0xf2,0x5d,0xb8,0xbe,0x72,0x3a,0x9c, +0xa1,0x19,0xe4,0x35,0xd2,0xb4,0xd1,0x26,0x99,0xc1,0xac,0xd6,0xba,0x7b,0x42,0xd6, +0xeb,0x9d,0x6b,0xcf,0x58,0x41,0x7a,0xbc,0xe7,0xf1,0x5e,0xe7,0x1d,0xdd,0x96,0x32, +0xfb,0xb2,0x6d,0x4f,0x66,0xa2,0x2d,0x65,0xb2,0xbe,0xdb,0x16,0xb7,0x72,0xe9,0xb3, +0x54,0x72,0x8e,0x13,0x21,0x34,0x50,0xf6,0x16,0x58,0xfb,0x5d,0xb6,0x35,0x3c,0x7b, +0x29,0xb5,0xbe,0x9c,0x43,0x3c,0x2e,0x98,0x4c,0x47,0x91,0xa9,0x7c,0x38,0x3c,0xa8, +0x3d,0xe6,0x4e,0x91,0xc9,0x02,0xb4,0xc7,0xac,0xf9,0xa0,0xfc,0xf4,0xff,0x0f,0x78, +0x0b,0x5a,0xa7,0x89,0xc3,0x3a,0xbd,0xd7,0x2d,0x4a,0x26,0xdf,0x13,0x72,0x31,0x7b, +0xcb,0x18,0xbf,0x92,0xfc,0x6f,0x17,0xca,0xe8,0x37,0x19,0xfd,0xf5,0x3b,0x7e,0x8f, +0xe0,0x84,0x25,0x37,0x51,0xfa,0xe2,0x97,0xc9,0xd7,0x53,0x11,0xfa,0x64,0xb5,0x5c, +0x37,0x53,0xf4,0x2f,0xf1,0x96,0x94,0x8a,0x01,0xf7,0xe9,0xd4,0x08,0x7d,0xb8,0xb7, +0x60,0x66,0x63,0x3c,0x74,0x7e,0x53,0xd8,0xad,0xf1,0x60,0xc1,0x8d,0x7e,0xe3,0x4a, +0xfe,0xa0,0xad,0xcd,0x50,0xe9,0x21,0x28,0x5c,0x1d,0x1f,0xf1,0xe5,0x82,0xc3,0xf9, +0x20,0xc0,0x98,0x12,0x67,0xe4,0xb7,0xd1,0x49,0x6d,0x23,0x00,0x04,0x6d,0x9f,0x13, +0x88,0x8d,0xf3,0x15,0x6e,0xad,0x30,0x3f,0x76,0xfc,0xf2,0x37,0x28,0xe8,0x26,0x5b, +0x0b,0x80,0xfe,0x47,0x14,0x22,0x7d,0xe4,0x06,0x31,0x65,0xd8,0x3d,0x41,0x41,0x33, +0xdd,0xe3,0x69,0x1a,0x65,0x98,0x63,0xcc,0x62,0xd8,0xfb,0x44,0xa1,0x62,0x6b,0x38, +0xd0,0x2b,0x34,0xb8,0x34,0xb4,0x0e,0x2a,0xa7,0x67,0xce,0xd7,0x15,0xc4,0x50,0x62, +0x75,0xc7,0x17,0x28,0x39,0x7a,0x7c,0xb8,0x8f,0x74,0x78,0x96,0x6f,0x4e,0xec,0x30, +0x8d,0x27,0x67,0x38,0xfe,0xab,0xff,0x90,0x8b,0x86,0x8f,0x3f,0x6b,0x6f,0xec,0x9c, +0x72,0x8b,0xd7,0xf7,0x56,0x2d,0x71,0x00,0xc6,0xa9,0x77,0x70,0x3c,0xff,0xa2,0x0a, +0xe1,0x23,0xba,0x01,0x59,0xfc,0x88,0xcc,0x48,0x88,0xfa,0xd1,0xbd,0x6b,0xa0,0x68, +0xe6,0x81,0xad,0xaf,0x3f,0xd9,0x89,0xbe,0x49,0xd6,0xe4,0xee,0x55,0x46,0xac,0x49, +0xe7,0x80,0x2d,0x04,0x8d,0xab,0xcf,0xd7,0xdc,0x31,0x94,0x64,0x21,0xd6,0x71,0x4f, +0xe5,0x83,0x7b,0x6c,0xb3,0xaf,0x2d,0x59,0xad,0x58,0xf5,0x34,0x9a,0xef,0x5a,0x35, +0x8f,0x81,0x9a,0x1e,0x0e,0x03,0x10,0x6a,0x4f,0x9f,0xd4,0xca,0x4b,0xef,0x78,0x7e, +0x09,0xfd,0xb4,0x68,0x93,0x06,0x70,0x7d,0xee,0x12,0xf4,0xcb,0x7c,0x5d,0x5d,0x8a, +0xe6,0x83,0x85,0xbe,0x44,0xbe,0x55,0x3a,0x4a,0x6a,0x76,0x1b,0x37,0xfd,0x8f,0x99, +0x2e,0x7e,0x5d,0x5f,0xf4,0x0a,0xcf,0x19,0x30,0x8d,0xc5,0x4a,0x17,0x8c,0xdf,0xfd, +0x45,0xf0,0x2a,0x8d,0x25,0xb1,0x56,0xa6,0x67,0xb0,0x34,0xd8,0x17,0x23,0x14,0x69, +0x56,0x91,0x2e,0xe5,0x13,0x10,0x3d,0xa2,0x1a,0xf1,0x86,0x06,0xf4,0x5e,0x5b,0x85, +0x70,0xf6,0xa2,0x8e,0x96,0xc2,0xb5,0xa3,0xeb,0xd3,0xa3,0xe7,0x1f,0xb6,0x74,0xe1, +0x00,0x4c,0xa5,0x64,0xb4,0xb2,0x1d,0xb7,0x9a,0xd3,0x19,0xd5,0xd4,0x93,0x5a,0x20, +0xec,0x2c,0x9a,0x59,0x5d,0x02,0xf1,0x37,0x8f,0xbc,0xad,0xe2,0xfb,0x97,0xcf,0x16, +0xfb,0xff,0x5e,0xd1,0xdc,0x50,0xf9,0xb8,0x2d,0xdd,0x81,0xc7,0x66,0x5a,0x1e,0x47, +0xf6,0x7e,0xe4,0x34,0x64,0x1d,0xb5,0xee,0x6f,0x94,0x5e,0x42,0x23,0xe8,0x81,0xa0, +0xa8,0x11,0x93,0xe4,0xdc,0x32,0x5d,0x4c,0xad,0xff,0xf4,0x89,0x9d,0x1f,0x27,0xec, +0xd3,0xe3,0xa1,0x0e,0xc1,0xdb,0x91,0xee,0xc8,0x88,0x36,0xaa,0xa0,0x94,0x8d,0x5e, +0xf1,0xf3,0xb8,0xfc,0xc2,0x64,0xb2,0x4b,0x64,0x99,0xc0,0x7f,0x15,0xf4,0xa6,0x0f, +0xb0,0xd5,0xc1,0xed,0x4b,0x47,0x0d,0x0e,0xac,0x75,0xed,0xab,0x36,0xd2,0x11,0x5e, +0x9e,0x3b,0x7b,0x61,0x40,0xf9,0x01,0xfa,0x62,0x7d,0xad,0x9b,0xfb,0x8b,0x99,0xb9, +0x29,0x1a,0x66,0x88,0xac,0x68,0xf6,0xea,0x9d,0xd2,0x88,0xbb,0xb6,0x9f,0xa6,0xda, +0x44,0xf7,0x4b,0xda,0xb8,0xab,0xcb,0xbf,0x97,0xf7,0xa0,0xae,0x5e,0xfc,0x67,0x8b, +0xea,0x35,0xc4,0xd0,0x66,0x15,0x1f,0x6d,0x12,0x9f,0x7e,0x1e,0xf3,0x88,0x90,0xca, +0xac,0x32,0xbf,0x41,0x44,0xbc,0xbf,0xf2,0x9b,0x72,0x7a,0x67,0x16,0xec,0x0e,0xb5, +0x23,0xb0,0xa2,0x77,0x09,0x4e,0x63,0xda,0xf8,0x18,0x37,0x61,0x3b,0xe8,0x70,0x22, +0xc9,0x0e,0x3f,0x50,0xe5,0x09,0x09,0x5e,0x60,0x6a,0xb8,0xe1,0xab,0x21,0x3f,0x34, +0x48,0x41,0xe3,0x05,0x91,0xc2,0x2c,0x41,0xf7,0x17,0x35,0xd4,0x99,0xe2,0x07,0xe2, +0xc4,0x07,0x49,0x0d,0x02,0x51,0x47,0xde,0xcd,0xe8,0x0c,0x46,0xb3,0x60,0x45,0xb1, +0x1f,0x24,0xd6,0xa4,0x1e,0x64,0x57,0x26,0xd0,0xef,0x89,0x8b,0xf7,0xcb,0x47,0x90, +0xbf,0x7d,0xd0,0x51,0x17,0x35,0x7f,0x81,0xdf,0xa5,0x0c,0xfc,0xf6,0xca,0x1f,0x19, +0x5a,0xad,0x47,0xe3,0xf2,0xb8,0x72,0x61,0x0a,0x17,0x01,0xed,0x77,0xc9,0xf8,0x09, +0x3b,0xbf,0x08,0xbd,0x2c,0x6a,0xb1,0xfb,0xa0,0x67,0x4a,0xfd,0x76,0xc8,0x80,0x1b, +0x66,0xa0,0x02,0x09,0xd6,0x69,0xef,0x88,0xcd,0x5e,0xaa,0x38,0x2f,0x2c,0x8f,0xe5, +0x8c,0xf9,0x26,0x5e,0x9a,0x84,0x3d,0x3c,0x22,0x3d,0x41,0x3a,0x26,0x69,0x25,0xa1, +0xcd,0x48,0x6f,0x8d,0x64,0x0a,0x4d,0x33,0xc8,0xe1,0x4c,0x2f,0x58,0xea,0x35,0xb5, +0xe1,0x06,0x59,0x2d,0x18,0x84,0x99,0xff,0x5b,0x48,0x38,0x79,0x05,0x03,0x82,0x44, +0x0e,0xf3,0xbc,0x61,0x08,0x61,0x44,0x31,0xa1,0xf4,0x45,0x1f,0x7c,0xcd,0xf5,0x69, +0xaa,0xf2,0xb4,0xfc,0x09,0x60,0x51,0x57,0x56,0x12,0x49,0x4d,0x27,0xc2,0x97,0xda, +0x2b,0xd1,0xbd,0x65,0x88,0x63,0x69,0xd8,0x9b,0xe1,0x07,0x9e,0xe2,0xc3,0xf0,0xfc, +0x7c,0xf2,0x34,0xd8,0x1d,0xff,0x6e,0x20,0xcd,0x1f,0x4d,0x0e,0xfd,0x01,0xbb,0x04, +0x3c,0xf7,0x50,0x77,0x29,0x8b,0x03,0xe9,0x89,0xb1,0xa4,0xa6,0x30,0xab,0x82,0xaf, +0x30,0xc5,0x85,0x54,0x3d,0x71,0x99,0xbb,0x9d,0xc9,0x14,0xab,0x7c,0xdc,0x23,0xb8, +0xb9,0xc7,0x87,0xfe,0x3f,0x94,0xd5,0xac,0x69,0x10,0x35,0x58,0xd0,0xa6,0xef,0x8e, +0x6f,0x9e,0x0f,0x5b,0x4b,0xb3,0xa2,0x14,0x2b,0x5e,0x14,0x8b,0xe8,0x68,0x62,0x94, +0xe4,0xb0,0xc1,0xbb,0x71,0xe6,0x2a,0xb0,0xaa,0x3c,0x78,0x62,0x2a,0x89,0x48,0x21, +0xe1,0x35,0xac,0xcf,0x30,0x38,0x64,0x03,0x62,0x30,0xd8,0xf6,0x77,0x8e,0xcb,0x56, +0xc9,0xb0,0x69,0x40,0x59,0xf7,0xf5,0xf2,0xe7,0x32,0x85,0x93,0xb2,0x8d,0x6b,0x91, +0x75,0xb3,0x9d,0xa2,0xf3,0x79,0x65,0x02,0xea,0x54,0xdd,0xea,0x91,0x6c,0x78,0x1b, +0x43,0x9e,0x43,0xff,0x5a,0x3b,0xed,0xd7,0x00,0x55,0x16,0xeb,0x56,0xa4,0xe9,0x6b, +0xf3,0xb2,0x51,0xdc,0xb9,0xb9,0xa1,0x89,0x28,0xf6,0x8c,0xac,0x92,0xd1,0x87,0x97, +0x7e,0xee,0xbf,0x99,0xcf,0x7e,0xe8,0xd7,0xc6,0x85,0x43,0xf3,0x6b,0x45,0x6c,0x9d, +0x42,0xde,0x54,0x9e,0xc6,0x37,0x97,0xc7,0x83,0x33,0x24,0x0d,0x75,0xd4,0x4a,0x57, +0x41,0xaa,0xc5,0xce,0x3e,0x70,0xb5,0x13,0x38,0x1c,0x2f,0x8a,0x85,0x7f,0x68,0x88, +0xcf,0xb9,0xf6,0x7c,0xde,0xbd,0x58,0xa9,0xe8,0x53,0xfe,0xf8,0x0c,0x7d,0x46,0xbb, +0x41,0x88,0xc4,0x4f,0x62,0x34,0xd5,0x5c,0xb0,0x1e,0xe9,0xfd,0x8d,0x5e,0x41,0xee, +0xc0,0xba,0x27,0xd1,0x3b,0x7f,0xbf,0xc6,0xcf,0x53,0x7c,0x4c,0x06,0xf5,0xdf,0x71, +0x3e,0xc2,0x2e,0x74,0x76,0xe4,0xb7,0x62,0xad,0xf8,0x8e,0x6a,0xa0,0xd8,0x0e,0x42, +0x00,0x2c,0x28,0xb6,0x05,0xc1,0x7c,0x0d,0x40,0x14,0x13,0x93,0x80,0xff,0xa4,0x15, +0x6f,0xaa,0xdf,0x53,0xff,0xba,0xdd,0xb1,0xc4,0xca,0xe8,0x23,0x59,0x81,0xa0,0xf3, +0x89,0xc3,0x93,0xe4,0x84,0x56,0x35,0xb7,0x95,0xdd,0xc4,0x07,0xd5,0x4c,0x76,0x07, +0xed,0xec,0x5f,0xe6,0xfb,0xc4,0xf0,0x9d,0x68,0x62,0x96,0xc3,0x57,0x64,0xe0,0x41, +0x0a,0xc1,0x08,0x5e,0xea,0xa6,0x40,0x8d,0xb2,0xa6,0x4f,0xd3,0x8b,0xb4,0xda,0xf2, +0x83,0x29,0x0d,0x45,0x9e,0xca,0x49,0x9d,0x3b,0x67,0x46,0xc3,0x56,0xa6,0x17,0x54, +0x26,0x28,0x53,0x52,0x18,0xa3,0x82,0x0c,0xaf,0xaf,0xa0,0x95,0x36,0xa8,0x24,0x17, +0xf0,0x10,0x33,0xf2,0x1c,0x1d,0x74,0x63,0xa5,0xc0,0xbc,0x50,0x3e,0x8c,0xd1,0x65, +0x65,0x84,0x2b,0x93,0xe0,0x08,0xbf,0x8d,0xf8,0x60,0x84,0x8e,0x7f,0xe4,0x9c,0xae, +0x46,0x87,0xb2,0xf7,0x9c,0xe8,0xf3,0x26,0x45,0x88,0xcd,0x7f,0x5c,0xdb,0xd4,0x65, +0xa3,0x54,0x93,0xec,0x88,0x76,0x2a,0xdb,0xe1,0x6f,0x39,0xc3,0x59,0x10,0x6a,0x6d, +0xaf,0x23,0xe6,0x09,0x98,0xdc,0x0c,0x2f,0xbb,0x6f,0xd2,0x06,0x6d,0x93,0x86,0xc8, +0x0f,0x87,0xba,0x2d,0x13,0xc3,0x7b,0x4b,0x06,0x62,0x42,0x81,0x7d,0x00,0x6f,0x71, +0xbe,0x13,0xba,0xa5,0x3b,0x51,0xfb,0x98,0xcb,0x45,0x4b,0x9c,0xb8,0xfc,0xef,0x5f, +0xcb,0x41,0xcb,0x5e,0x12,0xe9,0x75,0x09,0xa5,0x47,0x7f,0xb8,0x5f,0xcf,0x5a,0xb5, +0x4f,0x35,0x07,0xc2,0xe8,0xd8,0x4a,0xe3,0xe3,0x20,0xbe,0x80,0x24,0x7d,0x4d,0x61, +0xf5,0x3a,0xa2,0x96,0xb5,0x1a,0x45,0x49,0xad,0x26,0xf6,0xb7,0x08,0xf8,0x24,0x70, +0x44,0xde,0xfb,0xd7,0x38,0x19,0x65,0x3d,0x1f,0xd1,0x61,0x58,0x1d,0x51,0x0a,0x97, +0xce,0xe7,0xda,0x92,0xab,0x1e,0x82,0xa0,0x13,0x0e,0xff,0xc4,0x81,0x72,0x44,0xb1, +0x16,0x3f,0x4c,0xca,0xb4,0x00,0x4c,0xa0,0xc5,0xd8,0x33,0x15,0x48,0xef,0x5e,0xa1, +0x41,0x9e,0x94,0x2b,0x37,0xf7,0x14,0x03,0xe4,0xc5,0xbd,0x90,0x9c,0xa6,0x1d,0xcb, +0x46,0x39,0xad,0xa5,0xf5,0x45,0xd1,0xa1,0x62,0xda,0x88,0x81,0x1d,0xc5,0x2f,0xa0, +0x99,0x96,0xee,0x39,0x94,0x37,0x1d,0xb3,0x18,0xda,0xa4,0x01,0x52,0x58,0xa4,0x4c, +0xbe,0x9b,0xf4,0x2e,0x9d,0x78,0x10,0x11,0x95,0x7c,0xfe,0x51,0x9d,0x7b,0xd1,0x89, +0xdb,0x46,0x8e,0x8e,0x4a,0x9d,0x7f,0x36,0x69,0x59,0xe0,0xf3,0x75,0x56,0xc4,0x70, +0x64,0x6d,0x7c,0x89,0xc3,0xb3,0x44,0xd1,0x87,0xa5,0x90,0xe4,0x01,0xc6,0x09,0x20, +0x56,0x3f,0x70,0xfd,0x69,0xf3,0x1a,0x32,0xe9,0x5b,0xb4,0xb4,0xa4,0xff,0x5e,0xd7, +0xab,0x8a,0x98,0xf6,0xbe,0xaf,0x66,0x88,0x62,0x9c,0x20,0xe6,0xdb,0x53,0xff,0xc1, +0x44,0xe9,0x17,0x3e,0x15,0x16,0xc6,0x6a,0x4c,0xbd,0xc0,0x4f,0x5d,0xf0,0x39,0xd1, +0xae,0x3a,0x38,0xce,0xb8,0x2e,0x76,0xce,0xdd,0x51,0xa6,0x4f,0xee,0xac,0xed,0x1d, +0x3d,0x9b,0xfc,0xde,0x3f,0x2e,0xff,0xee,0x6f,0x5e,0xfe,0xec,0xd1,0xdc,0x50,0x18, +0x10,0x04,0x85,0x31,0x00,0x3e,0xe8,0x42,0xe7,0x15,0x50,0x24,0x14,0xdd,0x58,0x08, +0x49,0xa5,0x0e,0x72,0x5d,0xf5,0xe0,0xa0,0xea,0xec,0x4c,0xca,0xac,0xc0,0x41,0x12, +0xa6,0x21,0x80,0x12,0x80,0x81,0xe9,0xd5,0x67,0xca,0x83,0x24,0x2f,0xef,0x9e,0x28, +0x01,0x13,0x0f,0xbc,0xd5,0x4e,0x65,0x9a,0x6a,0xb7,0xa1,0xca,0x24,0x00,0xf7,0x64, +0xbc,0x24,0xba,0x90,0x92,0x04,0xc0,0xa0,0x5a,0x79,0x5a,0x55,0xf3,0x9b,0xec,0x32, +0x27,0x0f,0xe8,0x59,0x1b,0x65,0x20,0x78,0xa6,0x04,0x67,0x45,0x12,0xca,0xc3,0x4a, +0x06,0x52,0x4b,0xb3,0x4d,0xab,0x47,0x67,0x71,0x82,0xef,0x34,0xfc,0xb9,0xc9,0x26, +0xa7,0x70,0xcb,0x5d,0x91,0x26,0xac,0x8f,0xd7,0x7a,0xd3,0x0b,0xb9,0x0f,0x22,0x0d, +0xc0,0x4b,0x00,0x03,0x5c,0x4b,0x6e,0x5c,0xe3,0x40,0x69,0x5f,0x4b,0x99,0xe2,0x18, +0x8b,0x01,0x8c,0x28,0x59,0x55,0x62,0xf6,0xea,0xde,0x49,0xcf,0xd5,0xe4,0x57,0x1a, +0xfc,0xbb,0x85,0xc3,0xd0,0x2e,0x6f,0xb1,0x6b,0x15,0xed,0x2b,0x31,0x80,0xb2,0xe9, +0x81,0x04,0x89,0x60,0xd9,0x69,0x63,0x1b,0x6a,0xaf,0x7f,0xce,0x1f,0xe0,0xb9,0x4c, +0xa7,0x4d,0xca,0x4e,0x98,0x9c,0x44,0x6e,0xf9,0x01,0xac,0x29,0x7e,0x73,0x70,0xdf, +0x2f,0xf0,0x2e,0x3c,0xe9,0x48,0xca,0x0b,0xc7,0x1c,0xa5,0x0f,0x12,0xec,0x66,0x4f, +0x1e,0x6a,0xca,0x3f,0xed,0x0e,0x2d,0x8b,0xda,0x03,0x69,0x97,0xca,0xa3,0x6c,0xbb, +0x6b,0x1a,0x34,0x8d,0xe5,0x2c,0x25,0x7e,0x72,0x29,0x58,0x8e,0x5f,0xe2,0x7f,0xb6, +0xd3,0x08,0xda,0x66,0x34,0x8d,0x93,0x93,0x3c,0x56,0xa6,0xb4,0xf5,0x66,0xf1,0x34, +0x96,0xff,0x68,0x6a,0x52,0x11,0x9b,0xf5,0x3d,0xf0,0x98,0x45,0xed,0x91,0xf8,0xee, +0x1f,0xc6,0x45,0x89,0x5e,0xbf,0x92,0x49,0xbc,0xa8,0xeb,0xbf,0x9b,0xc6,0xf4,0x69, +0x16,0x72,0x69,0x6a,0xb5,0x03,0x9a,0xa0,0xb5,0x3e,0x75,0x3f,0xd3,0xa5,0x15,0x22, +0x06,0x63,0xea,0xc2,0xa3,0x68,0x2a,0xe7,0x46,0x18,0x44,0x15,0xd1,0x34,0xed,0xd7, +0x82,0xba,0x78,0x9e,0xfa,0x71,0xa6,0x3a,0x98,0xfe,0xca,0xb8,0x98,0x2d,0x41,0xcd, +0x3a,0x52,0xeb,0xc2,0x27,0x39,0xe2,0x09,0x1d,0xdb,0xe7,0xdb,0x51,0x37,0x35,0xf6, +0x02,0x56,0xe4,0x9b,0x7a,0x53,0x6d,0xae,0x88,0x63,0x66,0x44,0xea,0xd8,0x7b,0xc6, +0x93,0x33,0xf9,0x9f,0x2b,0x7c,0x95,0x17,0x3c,0x4e,0xe9,0x5d,0xb2,0x60,0x77,0xe5, +0x9a,0x6b,0xf6,0x98,0xc0,0x7b,0x9d,0x31,0x31,0x24,0x2c,0xe3,0x12,0x9c,0x7a,0x05, +0x1b,0x96,0xa1,0x58,0x34,0x91,0x94,0x49,0xbc,0xf2,0xc9,0x36,0xe8,0xd1,0xf1,0xd3, +0x46,0xd0,0x0e,0x2a,0x58,0x5d,0x18,0x17,0xb1,0x4f,0xa7,0x4c,0x11,0x7f,0x0e,0xdc, +0xe6,0x13,0x6f,0x13,0x83,0xe2,0x56,0x19,0xe2,0xa3,0xdb,0xc8,0xc6,0xb4,0xbb,0x26, +0x67,0x70,0x84,0xf7,0x7c,0x7f,0x5d,0x04,0x8a,0x3b,0x5e,0xf0,0x76,0x62,0x42,0xbe, +0xb0,0x5f,0x79,0xcf,0x4c,0x4b,0xd7,0xe4,0xec,0x1e,0x66,0xb8,0x42,0x66,0x31,0x3b, +0xb3,0x72,0x4e,0xd9,0x44,0x5c,0xeb,0x13,0x0a,0x39,0x65,0x07,0xeb,0xb2,0x70,0xfd, +0xff,0x8e,0x24,0xb5,0x18,0x4a,0x48,0x5f,0xe7,0x9a,0xb4,0xa1,0xbf,0x06,0x8c,0xd0, +0xa6,0x8f,0x28,0xbb,0x1d,0x3f,0x40,0x1a,0xe6,0x53,0xc6,0xa4,0x88,0x9c,0x49,0xc1, +0x00,0x8c,0x21,0xec,0x90,0xf4,0x49,0x76,0x67,0x21,0xef,0xb4,0xc4,0x6f,0x11,0xb7, +0x85,0x83,0xad,0xef,0x1a,0xa1,0x41,0xb7,0xc7,0xc3,0x16,0xc4,0x03,0x17,0x18,0x1d, +0xd6,0x8b,0xde,0x4f,0x55,0x56,0x0e,0x80,0xea,0xf9,0xa6,0x36,0xbd,0x80,0x10,0x60, +0x73,0x5a,0xf0,0x57,0x43,0x59,0x06,0x90,0xf2,0x13,0x07,0x72,0x4b,0xaa,0x53,0x6b, +0x53,0x32,0x1a,0x35,0x18,0xc3,0x95,0x47,0x7b,0x30,0xc9,0x99,0x7a,0xeb,0xf9,0x00, +0x24,0x98,0xa3,0x15,0xff,0xaa,0xf1,0x91,0x7e,0x71,0xda,0x27,0x0f,0x4f,0xdd,0x28, +0xf3,0x80,0x15,0x0f,0x91,0xa4,0xb5,0xd5,0x10,0xb7,0x55,0xdf,0x86,0xf8,0xd1,0x3b, +0xf6,0xa5,0xe3,0x71,0x3e,0x0b,0xbd,0x48,0x11,0x27,0x15,0xcf,0xb1,0xe4,0xd8,0x69, +0x7b,0x8e,0xcb,0x11,0xd3,0x5e,0xb4,0xdd,0x90,0x17,0xcd,0xb5,0xb7,0x2f,0x54,0x7f, +0x76,0x0b,0x0c,0x19,0x49,0xcf,0xbc,0x70,0x91,0xdc,0xe5,0x0c,0x5d,0x40,0xd6,0x28, +0x3e,0x83,0xfa,0x64,0x1f,0xbb,0xfa,0x88,0xff,0x5a,0xcc,0xde,0x61,0xcc,0xca,0xcb, +0x8b,0x86,0xd0,0xd9,0xb3,0xb2,0x6c,0x7c,0xa4,0x89,0x72,0x8d,0x5a,0x30,0x4d,0xa9, +0x3d,0x23,0xd9,0xc8,0x32,0xf1,0x7d,0x89,0xea,0x4b,0x2a,0x69,0xfa,0x4f,0xeb,0xca, +0x03,0x82,0xd1,0xd8,0x33,0xb3,0x45,0x99,0xa5,0xab,0xad,0x3e,0x34,0xc7,0xda,0xb3, +0xc3,0x5e,0xda,0x10,0x57,0x90,0x33,0x72,0x3c,0x02,0xea,0x94,0x34,0xbc,0x52,0x70, +0xce,0x54,0xca,0x9e,0xd4,0x1e,0x3f,0x52,0x35,0xb2,0xe2,0xad,0x7d,0x5a,0xdf,0x89, +0x43,0xe1,0x41,0x74,0x7a,0x19,0x36,0xd5,0xb4,0x47,0xd4,0x56,0x24,0xf2,0x53,0x4a, +0x4e,0x51,0xcf,0xf8,0x4a,0xdf,0xb8,0x41,0xf9,0xb4,0x18,0x2f,0x72,0xe5,0x21,0xe6, +0xbe,0xd0,0x82,0xa4,0xc1,0x49,0xc0,0xa2,0x6a,0x1b,0x8b,0xc9,0x33,0xa1,0x12,0x30, +0x44,0xb5,0x38,0x28,0xca,0x14,0x93,0x00,0xe7,0xe4,0xfc,0xea,0x71,0xa5,0xc4,0xc4, +0x47,0xf0,0xf3,0xa5,0x49,0x6b,0x55,0xe2,0x41,0xc6,0x7b,0xcc,0xe7,0xf0,0x89,0xf7, +0x19,0xb7,0xe3,0x24,0xfe,0x6a,0x47,0x74,0x4b,0xc8,0x66,0x08,0x03,0xf8,0x5c,0x49, +0xcf,0x2c,0xfc,0x0e,0xe2,0x17,0xb3,0x4b,0x70,0x69,0xe6,0x30,0x87,0xfe,0xd2,0xd5, +0x82,0x4d,0xd0,0x00,0x56,0x0f,0xbf,0x72,0x79,0x09,0x86,0x40,0xd1,0xf4,0x5d,0xc7, +0x4f,0xca,0x40,0xfd,0x7e,0xba,0xb6,0xdc,0xf8,0xdf,0x18,0xcd,0x50,0x9f,0xd3,0x5f, +0x02,0x89,0xae,0xed,0x56,0x2d,0x3a,0xfd,0xf5,0x70,0x40,0x7d,0x7e,0xbd,0x26,0xb9, +0xaa,0xad,0xb0,0x9e,0xd5,0x34,0x3c,0xff,0x0e,0x4c,0x2b,0xf6,0xf1,0xfe,0xbf,0x29, +0xa3,0x90,0xe7,0xa0,0x55,0x55,0x34,0xe7,0x2e,0xdc,0x96,0xe0,0xb9,0x09,0x19,0xcd, +0x47,0xfa,0x58,0xfe,0xaf,0x11,0x5e,0xac,0xc0,0x52,0x40,0xee,0x73,0xf2,0x11,0x39, +0x03,0x92,0x91,0x8a,0x9b,0x12,0x56,0xfc,0xee,0x5f,0x19,0x0e,0x35,0xef,0x3a,0xf3, +0xc2,0x94,0xe0,0x40,0x30,0x2d,0x4e,0x8a,0x48,0x46,0x6f,0xdb,0xaf,0x9f,0x6f,0x18, +0xea,0x97,0x3c,0x76,0xa6,0x44,0x60,0xf6,0xf1,0x0f,0x67,0xcb,0xae,0x9e,0xe2,0x1a, +0x5e,0xa9,0xf8,0x22,0x31,0x1d,0x19,0xc6,0xa3,0x62,0x6e,0xda,0x2f,0x9d,0xc9,0x11, +0xc5,0x7e,0xb1,0xfa,0x1c,0x63,0xae,0xb3,0xc4,0x23,0x66,0xca,0x2e,0x9c,0xbf,0xbf, +0xfd,0xfb,0x3f,0xbb,0xed,0xdb,0xaf,0x9f,0xbd,0xbb,0x2f,0x9b,0xad,0x9b,0xb7,0xaf, +0xfc,0xfa,0x37,0xab,0xec,0xda,0xa7,0x8f,0xbc,0xba,0x27,0x8b,0xac,0x9a,0xbe,0xbe, +0x7d,0xf9,0x3e,0xba,0x6d,0xd9,0xae,0x9e,0x3d,0xb9,0x2e,0x9a,0x2d,0x99,0xb6,0xae, +0x7c,0xf8,0x36,0xaa,0x6c,0xd8,0xa6,0x8e,0x3c,0xb8,0x26,0x8a,0x2c,0x98,0x1a,0x3c, +0xc9,0x82,0x03,0x3a,0x97,0x2a,0x48,0x35,0xeb,0x4e,0x6d,0xd3,0xa7,0x97,0x6c,0xe9, +0xd3,0x19,0xe2,0x6f,0x39,0x22,0x9a,0xda,0xe8,0xc3,0x65,0xc3,0xa6,0x96,0x7b,0x59, +0x98,0xa5,0x34,0x0c,0x15,0x26,0x9b,0x2d,0x69,0xc2,0x6c,0xd2,0x27,0x95,0x55,0x2f, +0x54,0xa0,0x8d,0x1d,0xf2,0xcf,0xe0,0xdb,0x4b,0x03,0x64,0xc2,0x26,0x94,0xbd,0xb7, +0xf5,0xf3,0x3d,0xb3,0xe5,0xd3,0xad,0x97,0xb5,0xb3,0x2d,0x93,0xa5,0x93,0xb5,0xa7, +0xf4,0xf2,0x35,0xa3,0xe4,0xd2,0xa5,0x87,0xb4,0xb2,0x25,0x83,0xa4,0x92,0xbc,0xb6, +0x75,0xf1,0x3c,0xb2,0x65,0xd1,0xac,0x96,0x35,0xb1,0x2c,0x92,0x25,0x91,0xb4,0xa6, +0x74,0xf0,0x34,0xa2,0x64,0xd0,0xa4,0x86,0x34,0xb0,0x24,0x82,0x24,0x90,0x3c,0x7f, +0xa3,0x1e,0x04,0x86,0x83,0x72,0xc6,0x40,0x3c,0xfd,0x6b,0x5b,0x8f,0x8f,0x4c,0xaf, +0x29,0x7d,0x88,0xb4,0x31,0x31,0x14,0xb8,0x67,0x31,0x63,0x4b,0x8e,0x8e,0xe5,0xbe, +0x84,0x7c,0x86,0x22,0x30,0x5d,0xc0,0xe6,0x22,0x12,0x6a,0x5a,0x0f,0x8d,0x25,0x53, +0xa7,0xa3,0x5d,0x6a,0x4e,0xcc,0x9d,0xb3,0xed,0x11,0x62,0x4a,0x0e,0x8c,0xbb,0x3f, +0xdd,0xeb,0x3b,0x3b,0xcd,0xcb,0xab,0x1f,0x9d,0xab,0x2b,0x1b,0x8d,0x8b,0xb3,0x2f, +0xdc,0xea,0x33,0x2b,0xcc,0xca,0xa3,0x0f,0x9c,0xaa,0x23,0x0b,0x8c,0x8a,0xba,0x3e, +0x5d,0xe9,0x3a,0x3a,0x4d,0xc9,0xaa,0x1e,0x1d,0xa9,0x2a,0x1a,0x0d,0x89,0xb2,0x2e, +0x5c,0xe8,0x32,0x2a,0x4c,0xc8,0xa2,0x0e,0x1c,0xa8,0x22,0x0a,0x0c,0x88,0x90,0x79, +0x97,0x88,0x79,0x73,0xc7,0xc7,0x16,0x9c,0x5b,0x57,0x69,0x53,0x87,0x87,0xf3,0x14, +0xf4,0xa4,0x71,0x63,0xc6,0xc6,0xf2,0x38,0x95,0x79,0x61,0x43,0x86,0x86,0x57,0x63, +0x53,0xb1,0x78,0x72,0x47,0xc5,0x4d,0xac,0x4f,0x1b,0x68,0x52,0x07,0x85,0xa0,0xc7, +0x58,0xc7,0x70,0x62,0x46,0xc4,0xb3,0xfb,0x6a,0xaf,0x60,0x42,0x06,0x84,0xb9,0x37, +0xd5,0xe3,0x39,0x33,0xc5,0xc3,0xa9,0x17,0x95,0xa3,0x29,0x13,0x85,0x83,0xb1,0x27, +0xd4,0xe2,0x31,0x23,0xc4,0xc2,0xa1,0x07,0x94,0xa2,0x21,0x03,0x84,0x82,0xb8,0x36, +0x55,0xe1,0x38,0x32,0x45,0xc1,0xa8,0x16,0x15,0xa1,0x28,0x12,0x05,0x81,0xb0,0x26, +0x54,0xe0,0x30,0x22,0x44,0xc0,0xa0,0x06,0x14,0xa0,0x20,0x02,0x04,0x80,0x96,0x60, +0x6f,0x25,0xa4,0x06,0x97,0xae,0xb6,0xd2,0x18,0xcf,0x4f,0xd9,0xab,0x1f,0x80,0x98, +0x6e,0x15,0x53,0x09,0xea,0x0a,0x32,0x36,0xe6,0xcc,0x47,0xc9,0xaa,0x1e,0x01,0xf2, +0x64,0x02,0x41,0x38,0xb0,0x76,0x51,0x67,0x80,0xcf,0x4e,0xd8,0x2b,0x1d,0x29,0xe2, +0x5d,0xa3,0x54,0xbe,0xb7,0x7c,0x73,0xcd,0x66,0x81,0x46,0xc8,0x2a,0x1c,0x9f,0xbd, +0xf9,0x7b,0x1f,0xb9,0xe9,0x5b,0x8f,0x9d,0xb9,0x3b,0x0f,0x99,0xa9,0x1b,0x97,0xad, +0xf8,0x7a,0x17,0xa9,0xe8,0x5a,0x87,0x8d,0xb8,0x3a,0x07,0x89,0xa8,0x1a,0x9e,0xbc, +0x79,0x79,0x1e,0xb8,0x69,0x59,0x8e,0x9c,0x39,0x39,0x0e,0x98,0x29,0x19,0x96,0xac, +0x78,0x78,0x16,0xa8,0x68,0x58,0x86,0x8c,0x38,0x38,0x06,0x88,0x28,0x18,0x7c,0x05, +0x5e,0xc6,0x26,0xff,0xa3,0x28,0x35,0x87,0x68,0xcb,0x4d,0xd1,0xa3,0x17,0x4a,0x45, +0xac,0xec,0x57,0x8f,0x39,0xeb,0xf8,0xbe,0x05,0x4b,0x45,0xc1,0xa2,0x16,0x42,0xab, +0x5a,0x35,0xfd,0xe0,0x9a,0x01,0x36,0xb3,0xee,0x1a,0x4c,0xd0,0x23,0x15,0x9f,0x79, +0x7a,0xee,0xac,0x9b,0x9f,0xab,0x05,0x16,0x8f,0x62,0x44,0xc0,0x22,0x14,0x9d,0xb5, +0xf1,0x73,0x1d,0xb1,0xe1,0x53,0x8d,0x95,0xb1,0x33,0x0d,0x91,0xa1,0x13,0x95,0xa5, +0xf0,0x72,0x15,0xa1,0xe0,0x52,0x85,0x85,0xb0,0x32,0x05,0x81,0xa0,0x12,0x9c,0xb4, +0x71,0x71,0x1c,0xb0,0x61,0x51,0x8c,0x94,0x31,0x31,0x0c,0x90,0x21,0x11,0x94,0xa4, +0x70,0x70,0x14,0xa0,0x60,0x50,0x84,0x84,0x30,0x30,0x04,0x80,0x20,0x10,0xe4,0x9b, +0x48,0x3b,0x5b,0x79,0xcb,0x4f,0x94,0xbc,0xe8,0x7d,0x4b,0x59,0x8b,0x0f,0x53,0x63, +0x9a,0x03,0x53,0x69,0xca,0x4e,0x1a,0xcd,0xc6,0x93,0x43,0x49,0x8a,0x0e,0xd8,0x9f, +0x86,0x8d,0x5a,0x78,0x4b,0x4d,0x8e,0x03,0xbc,0xc2,0x4a,0x58,0x0b,0x0d,0x73,0x7c, +0xa9,0x38,0x52,0x68,0x4a,0x4c,0xbc,0x8a,0x65,0x73,0x42,0x48,0x0a,0x0c,0x9b,0x3d, +0xd9,0x6b,0x1b,0x39,0xc9,0x4b,0x8b,0x1d,0x99,0x2b,0x0b,0x19,0x89,0x0b,0x93,0x2d, +0xd8,0x6a,0x13,0x29,0xc8,0x4a,0x83,0x0d,0x98,0x2a,0x03,0x09,0x88,0x0a,0x9a,0x3c, +0x59,0x69,0x1a,0x38,0x49,0x49,0x8a,0x1c,0x19,0x29,0x0a,0x18,0x09,0x09,0x92,0x2c, +0x58,0x68,0x12,0x28,0x48,0x48,0x82,0x0c,0x18,0x28,0x02,0x08,0x08,0x08,0xdb,0x2a, +0x0e,0x87,0x59,0x71,0xc3,0x47,0x4e,0x8d,0x85,0x25,0x49,0x51,0x83,0x07,0xd1,0x58, +0xae,0xdf,0x51,0x61,0xc2,0x46,0x89,0x9e,0x1a,0x19,0x41,0x41,0x82,0x06,0x58,0xb5, +0x5b,0x6f,0x58,0x70,0x43,0x45,0x4f,0x69,0x6f,0x9c,0x48,0x50,0x03,0x05,0x98,0xbf, +0x28,0x6e,0x50,0x60,0x42,0x44,0x60,0x39,0x9e,0xdb,0x40,0x40,0x02,0x04,0x99,0x35, +0xd1,0x63,0x19,0x31,0xc1,0x43,0x89,0x15,0x91,0x23,0x09,0x11,0x81,0x03,0x91,0x25, +0xd0,0x62,0x11,0x21,0xc0,0x42,0x81,0x05,0x90,0x22,0x01,0x01,0x80,0x02,0x98,0x34, +0x51,0x61,0x18,0x30,0x41,0x41,0x88,0x14,0x11,0x21,0x08,0x10,0x01,0x01,0x90,0x24, +0x50,0x60,0x10,0x20,0x40,0x40,0x80,0x04,0x10,0x20,0x00,0x00,0xf3,0x6e,0x80,0x00, +0x0c,0x4c,0x40,0x05,0x97,0x9b,0x10,0x20,0x40,0x40,0xf0,0x65,0x9c,0xeb,0x51,0xef, +0xe0,0xce,0x88,0xe8,0x90,0x63,0x9f,0xd2,0xc3,0x69,0x7e,0xc4,0x41,0x6e,0xb6,0x85, +0x8c,0xcc,0xa1,0xfd,0x90,0xd9,0x11,0x21,0x6c,0xc9,0x95,0xc7,0x52,0x68,0x60,0xea, +0xea,0x06,0x09,0x35,0xa2,0x01,0xa0,0x53,0x80,0x03,0xf9,0x74,0x5d,0x6e,0xe0,0x53, +0x16,0x60,0xdb,0x36,0xb1,0x22,0xe7,0x68,0x44,0x44,0x29,0xa2,0xf0,0x21,0xa0,0xf2, +0xa7,0x82,0xb0,0xd6,0x16,0x4f,0x58,0x48,0x8b,0x35,0xa8,0x54,0x53,0xa8,0x9a,0x43, +0xfd,0x86,0x49,0x2c,0x31,0x43,0x42,0x5e,0xda,0x04,0xa3,0xe3,0xd2,0x2a,0x9d,0x77, +0x6d,0x64,0xf1,0x85,0x64,0x28,0xf9,0x62,0xd7,0x23,0x49,0xb3,0x39,0x2b,0xa9,0xe0, +0x08,0xf3,0x39,0xfa,0x08,0xd5,0x6a,0x4a,0x0b,0x97,0xd8,0xc3,0xfb,0x65,0xe5,0xe2, +0x62,0x99,0xd0,0x08,0xba,0x2f,0x1a,0x38,0x49,0x49,0xd2,0xab,0x3a,0x59,0x03,0x7b, +0x2f,0x1a,0x79,0x8f,0x9b,0xcc,0x6b,0x29,0xc8,0x4a,0x99,0x25,0x7b,0x6c,0x24,0xe8, +0xd1,0x0e,0x83,0x50,0xfa,0x0b,0x1b,0x39,0xc9,0x4b,0xe3,0xd5,0xdb,0xa0,0xea,0xea, +0xd5,0x83,0xfa,0x9c,0xe1,0x23,0x8d,0x6a,0x3d,0x5c,0x22,0xe8,0x56,0xbb,0x75,0x97, +0xb2,0x41,0x4e,0x05,0x99,0x25,0x8e,0x3e,0xe9,0x93,0x1a,0x7c,0x2b,0x21,0x83,0x49, +0xf0,0xd0,0x6c,0x33,0x47,0x6c,0xbb,0xcb,0x6e,0xc9,0x7b,0xce,0xa5,0x67,0x3b,0x9f, +0x21,0x4e,0x1f,0xad,0x93,0x20,0xa5,0xfd,0xcb,0xfc,0xab,0xbb,0x71,0x2d,0x04,0x80, +0x78,0xf8,0x56,0x72,0x20,0xfd,0x2c,0xf0,0x20,0x5f,0x14,0x8f,0x91,0x8f,0xde,0xb0, +0x26,0xe9,0xec,0xd5,0xdc,0xba,0x18,0x52,0xe3,0x19,0x5c,0xb1,0xa9,0x33,0x4f,0x28, +0x82,0x11,0xc4,0xd1,0x91,0x22,0x75,0xe5,0x9c,0xd9,0x6e,0x21,0xfc,0x53,0x02,0x1d, +0x23,0x3b,0x70,0x77,0x31,0xec,0x8e,0x53,0x63,0x59,0x19,0x83,0xf7,0x73,0x72,0xcc, +0xc9,0x91,0xc4,0xfc,0xb7,0x33,0xab,0x64,0x62,0xc5,0x0b,0xf0,0x74,0x74,0x77,0x8e, +0x10,0xd5,0x14,0x50,0x3f,0x69,0x4f,0xcf,0x7f,0x17,0xa8,0xd0,0xf6,0x52,0xed,0x4b, +0x5b,0xca,0x2d,0x66,0xb4,0x56,0xe2,0xed,0xe4,0x56,0xc6,0xa3,0x50,0x38,0xe1,0x74, +0x76,0x74,0x5d,0xaa,0xf0,0x57,0x5d,0xc9,0x2b,0x67,0x02,0xe5,0xf5,0x77,0xbb,0x78, +0x74,0x17,0xe6,0xcd,0x85,0xb3,0xf0,0x58,0x20,0x57,0xc1,0x88,0xac,0x68,0x04,0x9c, +0x8a,0x14,0x37,0xfe,0x78,0x79,0x1a,0x5a,0xc5,0xd4,0xb9,0xb1,0xfe,0xde,0x67,0xc8, +0x1d,0x17,0x00,0x6f,0x3a,0x12,0x77,0xe9,0xfd,0xd1,0x30,0xa4,0x28,0x2a,0x45,0x67, +0x0a,0x1b,0xf7,0xff,0x46,0xb1,0x67,0x3b,0xe0,0x26,0x37,0x1b,0x7c,0x5c,0xed,0x02, +0x91,0xb3,0xb9,0x4e,0x3f,0x38,0xf6,0xfb,0x7a,0x38,0xc5,0xaa,0xd8,0x32,0xeb,0xdc, +0xac,0x0b,0x84,0x26,0x84,0x60,0x5e,0xc0,0xf4,0x42,0xde,0xfc,0x7b,0x7d,0x60,0xd7, +0x7a,0xb5,0xff,0x23,0x16,0x33,0x6f,0xce,0x15,0x1c,0xa3,0xc9,0xde,0x7e,0x1f,0x47, +0x50,0xca,0xb4,0xb2,0xe2,0x80,0xf7,0x5b,0x6c,0x78,0xdf,0xfd,0xfb,0x7f,0x7e,0x1f, +0x54,0x2b,0xd8,0xeb,0x94,0x1b,0x30,0x05,0x27,0x30,0xb4,0xce,0x56,0x2d,0xd7,0x16, +0x05,0x59,0xa8,0xea,0x14,0xe3,0x00,0x62,0x41,0xce,0xed,0x56,0x31,0xea,0x04,0x03, +0xef,0xa6,0xa1,0xff,0x15,0x59,0x49,0xa1,0xcd,0x9f,0xe9,0xc8,0xd2,0xe2,0x96,0xee, +0x95,0xe0,0xad,0xd1,0xee,0xa7,0x01,0x63,0xcd,0xcc,0xab,0xb3,0xd9,0x34,0x8c,0xc2, +0xfa,0xa4,0x70,0x58,0x06,0x50,0x9f,0x80,0xd9,0x59,0x74,0x82,0x50,0x84,0x8a,0x4d, +0xc9,0x2e,0x18,0xd2,0x1b,0x72,0xe8,0x6c,0x57,0x31,0x27,0x67,0x51,0xe5,0xcd,0x01, +0x05,0x52,0xe4,0x81,0x7c,0xea,0xd9,0xc1,0x41,0xe1,0x58,0x43,0x53,0xc1,0x0f,0x57, +0xec,0x01,0x41,0xf4,0xe8,0xa6,0x7c,0x69,0xd3,0x73,0xea,0x8a,0xc7,0xa9,0xc2,0xbc, +0x8b,0x8f,0xf9,0x0e,0x63,0xa8,0x6d,0x02,0x33,0xe8,0x88,0xc1,0xa7,0x77,0xba,0x1e, +0x10,0x0b,0xba,0xf6,0x1b,0x54,0x72,0xad,0x2e,0x49,0xa3,0x4c,0xe2,0x56,0x8b,0xa9, +0x53,0x65,0x78,0x4d,0x9a,0xea,0xf3,0x2f,0x21,0xcc,0x4c,0xd1,0xda,0xaa,0xbb,0xf9, +0x21,0xca,0x39,0xe9,0x8f,0x76,0x43,0xb9,0xc4,0xaf,0xc0,0xc0,0x2a,0xa9,0xe2,0x38, +0xe5,0x5a,0x22,0x4e,0x6e,0x21,0xf7,0xac,0xa4,0x80,0x82,0x48,0xbc,0x8f,0x6b,0xa9, +0xdd,0x22,0x5d,0x56,0x19,0xad,0xd2,0xd9,0x30,0x8d,0x52,0xdc,0xd8,0xca,0x1d,0xd4, +0xe5,0x38,0x1c,0xcb,0x9e,0x3f,0x83,0xef,0xc2,0x19,0x5b,0xcd,0x01,0x01,0xd9,0xa8, +0x63,0x24,0xf8,0x60,0x87,0xed,0xbb,0x7b,0xbf,0x42,0x04,0x5b,0x5a,0xc8,0x24,0x82, +0x24,0x90,0xa0,0x74,0x77,0x90,0x6e,0xbf,0xc7,0xd6,0x6b,0x0b,0x72,0xf0,0x2c,0x92, +0x25,0xf4,0x27,0x74,0xb7,0xbb,0xbc,0x50,0xc4,0x2e,0xbc,0x8e,0x89,0xe1,0x25,0x83, +0xa4,0x92,0x5e,0xf8,0xf7,0x6d,0x39,0xcd,0x45,0x5a,0xa6,0xd5,0x0b,0xb0,0x77,0x8e, +0x06,0x95,0x4b,0x67,0xf9,0xbc,0x77,0xb2,0x06,0x59,0x7d,0xb7,0x85,0x06,0x97,0xfd, +0xd8,0x9a,0x84,0x82,0xb6,0x29,0xb4,0xe7,0x41,0x96,0xf4,0xe6,0x76,0xf4,0xcf,0xda, +0xfb,0xa5,0x53,0x53,0x39,0x3f,0x43,0xac,0x9a,0x57,0xfc,0xf6,0x77,0xf5,0x0d,0x45, +0x5a,0xd7,0x9d,0xe0,0x4f,0xb9,0xf1,0xad,0xc2,0x0a,0xf5,0xe7,0xf6,0xf6,0x4e,0xdf, +0x7f,0xe7,0x3a,0x55,0xb2,0xce,0x65,0xfa,0xa7,0xdc,0xfd,0xf7,0xf7,0xf7,0x2a,0xe4, +0x8d,0x10,0xc6,0xca,0x48,0x35,0x32,0x54,0x91,0x52,0xb3,0x2a,0x7c,0x69,0x2a,0x78, +0x2d,0x99,0xd6,0x1c,0x34,0xdf,0x1e,0x43,0x6d,0x42,0x16,0x1c,0xa2,0xa6,0xa7,0x69, +0x0d,0x12,0xdf,0x0d,0xbd,0xe2,0xcc,0xf7,0x4f,0xa1,0x68,0xa7,0x7b,0xfd,0x2f,0x9b, +0xad,0x9b,0x97,0xcf,0xb9,0xb4,0x17,0xc9,0x12,0x04,0x17,0x0c,0x35,0x8b,0x8e,0x79, +0xab,0xdb,0x9e,0xea,0xbb,0x9b,0xe1,0x68,0x6f,0xbf,0xf6,0xee,0x7e,0xfc,0xae,0xda, +0x5f,0x10,0xfd,0x23,0x73,0xf3,0xf6,0x3f,0xce,0x57,0xfe,0xfe,0x7f,0xfd,0xcf,0x68, +0xd1,0xfe,0x38,0xde,0xb8,0xbe,0x4d,0x09,0xca,0xd8,0xf7,0xef,0xfe,0xfe,0x90,0x5f, +0xaf,0x0e,0x9f,0x99,0x1d,0x41,0x90,0x19,0x6d,0x97,0xff,0xff,0xff,0xff,0x00,0x00, +0x00,0x00,0x80,0x04,0x10,0x20,0x10,0x20,0x40,0x40,0x90,0x24,0x50,0x60,0x08,0x10, +0x01,0x01,0x88,0x14,0x11,0x21,0x18,0x30,0x41,0x41,0x98,0x34,0x51,0x61,0x01,0x01, +0x80,0x02,0x81,0x05,0x90,0x22,0x11,0x21,0xc0,0x42,0x91,0x25,0xd0,0x62,0x09,0x11, +0x81,0x03,0x89,0x15,0x91,0x23,0x19,0x31,0xc1,0x43,0x99,0x35,0xd1,0x63,0x40,0x40, +0x02,0x04,0xc0,0x44,0x12,0x24,0x50,0x60,0x42,0x44,0xd0,0x64,0x52,0x64,0x48,0x50, +0x03,0x05,0xc8,0x54,0x13,0x25,0x58,0x70,0x43,0x45,0xd8,0x74,0x53,0x65,0x41,0x41, +0x82,0x06,0xc1,0x45,0x92,0x26,0x51,0x61,0xc2,0x46,0xd1,0x65,0xd2,0x66,0x49,0x51, +0x83,0x07,0xc9,0x55,0x93,0x27,0x59,0x71,0xc3,0x47,0xd9,0x75,0xd3,0x67,0x02,0x08, +0x08,0x08,0x82,0x0c,0x18,0x28,0x12,0x28,0x48,0x48,0x92,0x2c,0x58,0x68,0x0a,0x18, +0x09,0x09,0x8a,0x1c,0x19,0x29,0x1a,0x38,0x49,0x49,0x9a,0x3c,0x59,0x69,0x03,0x09, +0x88,0x0a,0x83,0x0d,0x98,0x2a,0x13,0x29,0xc8,0x4a,0x93,0x2d,0xd8,0x6a,0x0b,0x19, +0x89,0x0b,0x8b,0x1d,0x99,0x2b,0x1b,0x39,0xc9,0x4b,0x9b,0x3d,0xd9,0x6b,0x42,0x48, +0x0a,0x0c,0xc2,0x4c,0x1a,0x2c,0x52,0x68,0x4a,0x4c,0xd2,0x6c,0x5a,0x6c,0x4a,0x58, +0x0b,0x0d,0xca,0x5c,0x1b,0x2d,0x5a,0x78,0x4b,0x4d,0xda,0x7c,0x5b,0x6d,0x43,0x49, +0x8a,0x0e,0xc3,0x4d,0x9a,0x2e,0x53,0x69,0xca,0x4e,0xd3,0x6d,0xda,0x6e,0x4b,0x59, +0x8b,0x0f,0xcb,0x5d,0x9b,0x2f,0x5b,0x79,0xcb,0x4f,0xdb,0x7d,0xdb,0x6f,0x04,0x80, +0x20,0x10,0x84,0x84,0x30,0x30,0x14,0xa0,0x60,0x50,0x94,0xa4,0x70,0x70,0x0c,0x90, +0x21,0x11,0x8c,0x94,0x31,0x31,0x1c,0xb0,0x61,0x51,0x9c,0xb4,0x71,0x71,0x05,0x81, +0xa0,0x12,0x85,0x85,0xb0,0x32,0x15,0xa1,0xe0,0x52,0x95,0xa5,0xf0,0x72,0x0d,0x91, +0xa1,0x13,0x8d,0x95,0xb1,0x33,0x1d,0xb1,0xe1,0x53,0x9d,0xb5,0xf1,0x73,0x44,0xc0, +0x22,0x14,0xc4,0xc4,0x32,0x34,0x54,0xe0,0x62,0x54,0xd4,0xe4,0x72,0x74,0x4c,0xd0, +0x23,0x15,0xcc,0xd4,0x33,0x35,0x5c,0xf0,0x63,0x55,0xdc,0xf4,0x73,0x75,0x45,0xc1, +0xa2,0x16,0xc5,0xc5,0xb2,0x36,0x55,0xe1,0xe2,0x56,0xd5,0xe5,0xf2,0x76,0x4d,0xd1, +0xa3,0x17,0xcd,0xd5,0xb3,0x37,0x5d,0xf1,0xe3,0x57,0xdd,0xf5,0xf3,0x77,0x06,0x88, +0x28,0x18,0x86,0x8c,0x38,0x38,0x16,0xa8,0x68,0x58,0x96,0xac,0x78,0x78,0x0e,0x98, +0x29,0x19,0x8e,0x9c,0x39,0x39,0x1e,0xb8,0x69,0x59,0x9e,0xbc,0x79,0x79,0x07,0x89, +0xa8,0x1a,0x87,0x8d,0xb8,0x3a,0x17,0xa9,0xe8,0x5a,0x97,0xad,0xf8,0x7a,0x0f,0x99, +0xa9,0x1b,0x8f,0x9d,0xb9,0x3b,0x1f,0xb9,0xe9,0x5b,0x9f,0xbd,0xf9,0x7b,0x46,0xc8, +0x2a,0x1c,0xc6,0xcc,0x3a,0x3c,0x56,0xe8,0x6a,0x5c,0xd6,0xec,0x7a,0x7c,0x4e,0xd8, +0x2b,0x1d,0xce,0xdc,0x3b,0x3d,0x5e,0xf8,0x6b,0x5d,0xde,0xfc,0x7b,0x7d,0x47,0xc9, +0xaa,0x1e,0xc7,0xcd,0xba,0x3e,0x57,0xe9,0xea,0x5e,0xd7,0xed,0xfa,0x7e,0x4f,0xd9, +0xab,0x1f,0xcf,0xdd,0xbb,0x3f,0x5f,0xf9,0xeb,0x5f,0xdf,0xfd,0xfb,0x7f,0x20,0x02, +0x04,0x80,0xa0,0x06,0x14,0xa0,0x30,0x22,0x44,0xc0,0xb0,0x26,0x54,0xe0,0x28,0x12, +0x05,0x81,0xa8,0x16,0x15,0xa1,0x38,0x32,0x45,0xc1,0xb8,0x36,0x55,0xe1,0x21,0x03, +0x84,0x82,0xa1,0x07,0x94,0xa2,0x31,0x23,0xc4,0xc2,0xb1,0x27,0xd4,0xe2,0x29,0x13, +0x85,0x83,0xa9,0x17,0x95,0xa3,0x39,0x33,0xc5,0xc3,0xb9,0x37,0xd5,0xe3,0x60,0x42, +0x06,0x84,0xe0,0x46,0x16,0xa4,0x70,0x62,0x46,0xc4,0xf0,0x66,0x56,0xe4,0x68,0x52, +0x07,0x85,0xe8,0x56,0x17,0xa5,0x78,0x72,0x47,0xc5,0xf8,0x76,0x57,0xe5,0x61,0x43, +0x86,0x86,0xe1,0x47,0x96,0xa6,0x71,0x63,0xc6,0xc6,0xf1,0x67,0xd6,0xe6,0x69,0x53, +0x87,0x87,0xe9,0x57,0x97,0xa7,0x79,0x73,0xc7,0xc7,0xf9,0x77,0xd7,0xe7,0x22,0x0a, +0x0c,0x88,0xa2,0x0e,0x1c,0xa8,0x32,0x2a,0x4c,0xc8,0xb2,0x2e,0x5c,0xe8,0x2a,0x1a, +0x0d,0x89,0xaa,0x1e,0x1d,0xa9,0x3a,0x3a,0x4d,0xc9,0xba,0x3e,0x5d,0xe9,0x23,0x0b, +0x8c,0x8a,0xa3,0x0f,0x9c,0xaa,0x33,0x2b,0xcc,0xca,0xb3,0x2f,0xdc,0xea,0x2b,0x1b, +0x8d,0x8b,0xab,0x1f,0x9d,0xab,0x3b,0x3b,0xcd,0xcb,0xbb,0x3f,0xdd,0xeb,0x62,0x4a, +0x0e,0x8c,0xe2,0x4e,0x1e,0xac,0x72,0x6a,0x4e,0xcc,0xf2,0x6e,0x5e,0xec,0x6a,0x5a, +0x0f,0x8d,0xea,0x5e,0x1f,0xad,0x7a,0x7a,0x4f,0xcd,0xfa,0x7e,0x5f,0xed,0x63,0x4b, +0x8e,0x8e,0xe3,0x4f,0x9e,0xae,0x73,0x6b,0xce,0xce,0xf3,0x6f,0xde,0xee,0x6b,0x5b, +0x8f,0x8f,0xeb,0x5f,0x9f,0xaf,0x7b,0x7b,0xcf,0xcf,0xfb,0x7f,0xdf,0xef,0x24,0x82, +0x24,0x90,0xa4,0x86,0x34,0xb0,0x34,0xa2,0x64,0xd0,0xb4,0xa6,0x74,0xf0,0x2c,0x92, +0x25,0x91,0xac,0x96,0x35,0xb1,0x3c,0xb2,0x65,0xd1,0xbc,0xb6,0x75,0xf1,0x25,0x83, +0xa4,0x92,0xa5,0x87,0xb4,0xb2,0x35,0xa3,0xe4,0xd2,0xb5,0xa7,0xf4,0xf2,0x2d,0x93, +0xa5,0x93,0xad,0x97,0xb5,0xb3,0x3d,0xb3,0xe5,0xd3,0xbd,0xb7,0xf5,0xf3,0x64,0xc2, +0x26,0x94,0xe4,0xc6,0x36,0xb4,0x74,0xe2,0x66,0xd4,0xf4,0xe6,0x76,0xf4,0x6c,0xd2, +0x27,0x95,0xec,0xd6,0x37,0xb5,0x7c,0xf2,0x67,0xd5,0xfc,0xf6,0x77,0xf5,0x65,0xc3, +0xa6,0x96,0xe5,0xc7,0xb6,0xb6,0x75,0xe3,0xe6,0xd6,0xf5,0xe7,0xf6,0xf6,0x6d,0xd3, +0xa7,0x97,0xed,0xd7,0xb7,0xb7,0x7d,0xf3,0xe7,0xd7,0xfd,0xf7,0xf7,0xf7,0x26,0x8a, +0x2c,0x98,0xa6,0x8e,0x3c,0xb8,0x36,0xaa,0x6c,0xd8,0xb6,0xae,0x7c,0xf8,0x2e,0x9a, +0x2d,0x99,0xae,0x9e,0x3d,0xb9,0x3e,0xba,0x6d,0xd9,0xbe,0xbe,0x7d,0xf9,0x27,0x8b, +0xac,0x9a,0xa7,0x8f,0xbc,0xba,0x37,0xab,0xec,0xda,0xb7,0xaf,0xfc,0xfa,0x2f,0x9b, +0xad,0x9b,0xaf,0x9f,0xbd,0xbb,0x3f,0xbb,0xed,0xdb,0xbf,0xbf,0xfd,0xfb,0x66,0xca, +0x2e,0x9c,0xe6,0xce,0x3e,0xbc,0x76,0xea,0x6e,0xdc,0xf6,0xee,0x7e,0xfc,0x6e,0xda, +0x2f,0x9d,0xee,0xde,0x3f,0xbd,0x7e,0xfa,0x6f,0xdd,0xfe,0xfe,0x7f,0xfd,0x67,0xcb, +0xae,0x9e,0xe7,0xcf,0xbe,0xbe,0x77,0xeb,0xee,0xde,0xf7,0xef,0xfe,0xfe,0x6f,0xdb, +0xaf,0x9f,0xef,0xdf,0xbf,0xbf,0x7f,0xfb,0xef,0xdf,0xff,0xff,0x80,0xd7,0x80,0x00, +0x0c,0x4c,0xf8,0x86,0x19,0x44,0x0a,0x28,0x63,0xd8,0x78,0x97,0xd5,0x27,0x51,0xef, +0xe0,0xce,0xb0,0x44,0x01,0x2e,0x38,0xcb,0x32,0x4d,0x58,0x34,0x21,0x94,0xb6,0x85, +0x84,0xd3,0xb9,0xd5,0x2f,0x2d,0x4f,0xa1,0xc8,0x39,0x39,0x86,0xaf,0x11,0x60,0xea, +0xea,0x06,0xe9,0xd5,0x5f,0xa8,0xe6,0xcf,0xc7,0x63,0xd9,0xb1,0xd1,0xf2,0x6f,0x3f, +0xdb,0xb9,0xc0,0x44,0x12,0x24,0x50,0x60,0x42,0x44,0xd0,0x64,0x52,0x64,0x08,0x62, +0xfc,0x03,0xc8,0x54,0x13,0x25,0x58,0x70,0x43,0x45,0xd8,0x74,0x53,0x65,0x0b,0x44, +0xe9,0x09,0xc1,0x45,0x92,0x26,0x51,0x61,0xc2,0x46,0xd1,0x65,0xd2,0x66,0xc1,0x53, +0x22,0x58,0xc9,0x55,0x93,0x27,0x59,0x71,0xc3,0x47,0xd9,0x75,0xd3,0x67,0xa9,0xe0, +0x08,0xf3,0xff,0xee,0x2b,0x0a,0x4b,0xd1,0xc8,0xd3,0x25,0x24,0x5e,0x68,0xe5,0xe2, +0x62,0x99,0x30,0xfc,0xa6,0x69,0x32,0xbc,0x41,0x9b,0x9a,0x04,0x26,0x79,0x03,0x7b, +0x2f,0x1a,0x59,0x0c,0xab,0x08,0x13,0xd4,0xc8,0x91,0x80,0x12,0xc0,0x28,0x24,0xe8, +0xd1,0x0e,0x8b,0xb4,0x16,0x29,0x42,0xbd,0x3c,0x84,0x73,0x9f,0x5c,0x6c,0xf6,0x2a, +0x49,0xf0,0xc2,0x4c,0x1a,0x2c,0x52,0x68,0x4a,0x4c,0xd2,0x6c,0x5a,0x6c,0xb1,0x37, +0x56,0xf2,0xca,0x5c,0x1b,0x2d,0x5a,0x78,0x4b,0x4d,0xda,0x7c,0x5b,0x6d,0xbe,0x27, +0xc3,0x01,0xc3,0x4d,0x9a,0x2e,0x53,0x69,0xca,0x4e,0xd3,0x6d,0xda,0x6e,0x2b,0x1d, +0x0b,0xd2,0xcb,0x5d,0x9b,0x2f,0x5b,0x79,0xcb,0x4f,0xdb,0x7d,0xdb,0x6f,0x04,0x80, +0x78,0xf8,0xfa,0xb6,0xb5,0x26,0xcb,0xa0,0x17,0x5c,0xa9,0xe2,0xd2,0x3e,0xde,0xb0, +0x26,0xe9,0xd5,0x80,0xbc,0x52,0xd8,0xcf,0x05,0x9e,0x37,0xcb,0x33,0x78,0x4f,0x28, +0x82,0x11,0xba,0xdb,0x41,0xee,0xd5,0xa0,0xb6,0x49,0xe1,0x81,0x25,0xcf,0x02,0x1d, +0xda,0x02,0x26,0x30,0x64,0x2d,0x5c,0xcf,0x87,0x9c,0x98,0xa5,0xd2,0x82,0x44,0xc0, +0x22,0x14,0xc4,0xc4,0x32,0x34,0x54,0xe0,0x62,0x54,0xd4,0xe4,0x72,0x74,0x4c,0xd0, +0x23,0x15,0xcc,0xd4,0x33,0x35,0x5c,0xf0,0x63,0x55,0xdc,0xf4,0x73,0x75,0x45,0xc1, +0xa2,0x16,0xc5,0xc5,0xb2,0x36,0x55,0xe1,0xe2,0x56,0xd5,0xe5,0xf2,0x76,0x4d,0xd1, +0xa3,0x17,0xcd,0xd5,0xb3,0x37,0x5d,0xf1,0xe3,0x57,0xdd,0xf5,0xf3,0x77,0xd9,0x89, +0x2e,0x38,0xfb,0x7f,0xe0,0xec,0x4f,0x2d,0x8d,0x4a,0xf6,0xec,0x56,0xf5,0x36,0x70, +0x6b,0xd6,0x66,0x16,0x1b,0xef,0x12,0xcf,0x0a,0x26,0x52,0xde,0x3a,0x87,0xad,0x0b, +0xab,0xfc,0xa4,0x7c,0x24,0x7a,0x9d,0xc9,0xf8,0x5c,0xef,0x89,0x7a,0x32,0x55,0x6b, +0x0a,0x1d,0xf0,0xee,0x53,0x93,0x67,0xbb,0x1e,0x5d,0xe7,0x3f,0xfc,0xe2,0x46,0xc8, +0x2a,0x1c,0xc6,0xcc,0x3a,0x3c,0x56,0xe8,0x6a,0x5c,0xd6,0xec,0x7a,0x7c,0x4e,0xd8, +0x2b,0x1d,0xce,0xdc,0x3b,0x3d,0x5e,0xf8,0x6b,0x5d,0xde,0xfc,0x7b,0x7d,0x47,0xc9, +0xaa,0x1e,0xc7,0xcd,0xba,0x3e,0x57,0xe9,0xea,0x5e,0xd7,0xed,0xfa,0x7e,0x4f,0xd9, +0xab,0x1f,0xcf,0xdd,0xbb,0x3f,0x5f,0xf9,0xeb,0x5f,0xdf,0xfd,0xfb,0x7f,0x7e,0x1f, +0x54,0x2b,0x17,0x07,0x99,0xac,0x31,0x5d,0xa3,0xc6,0x5f,0xc8,0xd1,0x47,0xd7,0x16, +0x05,0x59,0x4e,0xe7,0xdf,0xe1,0x40,0xb0,0x44,0xb9,0x39,0x31,0x22,0xe5,0x04,0x03, +0xef,0xa6,0xc9,0x19,0x52,0x56,0x79,0xb4,0xa7,0x0d,0x97,0x2a,0x50,0x46,0x96,0xee, +0x95,0xe0,0xf7,0x85,0x91,0x2e,0x63,0x32,0x66,0xb8,0x66,0x27,0x52,0xe4,0x18,0x65, +0xfb,0x8b,0xe0,0x46,0x16,0xa4,0x70,0x62,0x46,0xc4,0xf0,0x66,0x56,0xe4,0xbf,0xd0, +0x02,0xfc,0xe8,0x56,0x17,0xa5,0x78,0x72,0x47,0xc5,0xf8,0x76,0x57,0xe5,0x5e,0xc6, +0x88,0x0c,0xe1,0x47,0x96,0xa6,0x71,0x63,0xc6,0xc6,0xf1,0x67,0xd6,0xe6,0x11,0x77, +0xa3,0x87,0xe9,0x57,0x97,0xa7,0x79,0x73,0xc7,0xc7,0xf9,0x77,0xd7,0xe7,0xc2,0xbc, +0x8b,0x8f,0xdc,0x90,0xf7,0x5e,0x12,0xd3,0x4c,0x53,0x02,0x9c,0x72,0xad,0xba,0x1e, +0x10,0x0b,0xc9,0xed,0xf9,0x06,0x32,0xbe,0x45,0xd2,0x55,0xcc,0x5b,0xe9,0x8b,0xa9, +0x53,0x65,0xfd,0x94,0x8c,0x05,0x1b,0xd6,0xcc,0x11,0x45,0x8a,0x59,0xed,0xbb,0xf9, +0x21,0xca,0x1d,0xee,0x75,0xfb,0x64,0x39,0xbe,0xcb,0xec,0xe1,0x24,0x95,0x62,0x4a, +0x0e,0x8c,0xe2,0x4e,0x1e,0xac,0x72,0x6a,0x4e,0xcc,0xf2,0x6e,0x5e,0xec,0x6a,0x5a, +0x0f,0x8d,0xea,0x5e,0x1f,0xad,0x7a,0x7a,0x4f,0xcd,0xfa,0x7e,0x5f,0xed,0x63,0x4b, +0x8e,0x8e,0xe3,0x4f,0x9e,0xae,0x73,0x6b,0xce,0xce,0xf3,0x6f,0xde,0xee,0x6b,0x5b, +0x8f,0x8f,0xeb,0x5f,0x9f,0xaf,0x7b,0x7b,0xcf,0xcf,0xfb,0x7f,0xdf,0xef,0x28,0x85, +0x85,0x18,0xd6,0x66,0x70,0x3b,0x7c,0x35,0x07,0x3f,0x8e,0x44,0xf6,0xb8,0xbb,0x62, +0x2d,0x9e,0xae,0xb8,0xc3,0xc4,0x06,0x50,0xe7,0xd9,0xdc,0xf2,0x7a,0xfc,0x27,0x61, +0x26,0xda,0x8e,0x69,0x0b,0xb6,0x4d,0x21,0xe1,0x03,0xa8,0x45,0x58,0xfd,0x4d,0xd7, +0xd1,0x9c,0x5a,0xc8,0x08,0x4f,0xb4,0x51,0x67,0xfb,0xf7,0x49,0x56,0xfe,0x64,0xc2, +0x26,0x94,0xe4,0xc6,0x36,0xb4,0x74,0xe2,0x66,0xd4,0xf4,0xe6,0x76,0xf4,0x6c,0xd2, +0x27,0x95,0xec,0xd6,0x37,0xb5,0x7c,0xf2,0x67,0xd5,0xfc,0xf6,0x77,0xf5,0x65,0xc3, +0xa6,0x96,0xe5,0xc7,0xb6,0xb6,0x75,0xe3,0xe6,0xd6,0xf5,0xe7,0xf6,0xf6,0x6d,0xd3, +0xa7,0x97,0xed,0xd7,0xb7,0xb7,0x7d,0xf3,0xe7,0xd7,0xfd,0xf7,0xf7,0xf7,0x46,0x4a, +0xe2,0x13,0x0d,0xe0,0xe9,0xb6,0xd2,0xc8,0x2d,0x98,0xfc,0x55,0xdf,0x04,0xa7,0x6a, +0x25,0x96,0x0d,0x96,0xe1,0x89,0x64,0xbb,0xce,0xdf,0xbe,0x3c,0x7c,0x9a,0x59,0x69, +0x2e,0x92,0xcf,0x09,0x40,0xfb,0x4f,0x29,0xe5,0x3e,0x0c,0xf0,0xfa,0xba,0x9b,0xe9, +0x0e,0x56,0x8c,0x93,0x65,0xcb,0x77,0x2c,0x8e,0xc4,0xe5,0xbe,0x5e,0xba,0x66,0xca, +0x2e,0x9c,0xe6,0xce,0x3e,0xbc,0x76,0xea,0x6e,0xdc,0xf6,0xee,0x7e,0xfc,0x6e,0xda, +0x2f,0x9d,0xee,0xde,0x3f,0xbd,0x7e,0xfa,0x6f,0xdd,0xfe,0xfe,0x7f,0xfd,0x67,0xcb, +0xae,0x9e,0xe7,0xcf,0xbe,0xbe,0x77,0xeb,0xee,0xde,0xf7,0xef,0xfe,0xfe,0x6f,0xdb, +0xaf,0x9f,0xef,0xdf,0xbf,0xbf,0x7f,0xfb,0xef,0xdf,0xff,0xff,0x8b,0xcc,0x80,0x00, +0x0c,0x4c,0x04,0x44,0xca,0x26,0x11,0xd4,0x40,0xbd,0xa2,0x62,0xc2,0xdd,0x51,0xef, +0xe0,0xce,0xe8,0x54,0x0c,0xaa,0x41,0xb1,0xa0,0x80,0x1a,0x73,0x7f,0xbd,0xb6,0x85, +0x8c,0x80,0x09,0x39,0x71,0x2d,0xbd,0xa4,0xe1,0xc0,0x3a,0x5f,0x05,0x79,0x60,0xea, +0xea,0x06,0x0d,0xf7,0x13,0x2b,0xe3,0xb9,0xa2,0x41,0x4d,0x6b,0x42,0x5c,0xe8,0xe2, +0x85,0x23,0x00,0x44,0x62,0x68,0x90,0x65,0x52,0x05,0xd0,0x64,0x52,0x64,0x4d,0x4a, +0x17,0xb1,0x60,0xf7,0x6c,0xa5,0xb0,0xc3,0xc6,0x02,0xd8,0x74,0x53,0x65,0xd1,0x5f, +0x92,0xf2,0xb1,0x83,0x38,0x67,0xf2,0x69,0x1e,0x76,0xd1,0x65,0xd2,0x66,0xcc,0x97, +0x69,0x4b,0x09,0x55,0xe3,0x6b,0x99,0x75,0x30,0x0b,0xd9,0x75,0xd3,0x67,0xa9,0xe0, +0x08,0xf3,0x0b,0x7e,0xbb,0x2e,0xc0,0xde,0x7b,0x2a,0xec,0x37,0x8c,0xfc,0xe5,0xe2, +0x62,0x99,0xf2,0x9e,0x18,0x4b,0x40,0xb8,0x2f,0x86,0xfb,0x9c,0x8f,0xd6,0x03,0x7b, +0x2f,0x1a,0xcb,0x9f,0xfb,0xd5,0x29,0x1d,0x2f,0x58,0xcd,0x22,0xdc,0x24,0x24,0xe8, +0xd1,0x0e,0xb3,0xcd,0x76,0x24,0x21,0xd1,0x8f,0x84,0xa5,0x8e,0x90,0xec,0xb2,0x0e, +0xa0,0xf7,0xb2,0x8a,0xb0,0x6d,0x26,0x95,0x6a,0x0e,0xd2,0x6c,0x5a,0x6c,0x70,0xa7, +0x0d,0x0d,0xca,0x5c,0x1b,0x2d,0x9a,0x78,0x3b,0xb8,0xda,0x7c,0x5b,0x6d,0xc7,0xcd, +0x8a,0x9f,0x53,0x4d,0x9a,0x2e,0x53,0x51,0x2b,0xb1,0xd3,0x6d,0xda,0x6e,0x58,0x66, +0x9b,0x4d,0xcb,0x5d,0x9b,0x2f,0x5a,0xfd,0xcb,0xde,0xdb,0x7d,0xdb,0x6f,0x04,0x80, +0x78,0xf8,0x44,0x80,0x78,0xbd,0xc9,0x80,0x66,0x70,0xe2,0xe2,0xd6,0x3c,0xde,0xb0, +0x26,0xe9,0x77,0x10,0x35,0xf9,0x26,0x52,0x1a,0x55,0x9c,0x8c,0x90,0x8e,0x4f,0x28, +0x82,0x11,0x78,0x7e,0x43,0xcd,0xe3,0x23,0xe1,0x2a,0xe1,0x58,0xce,0x30,0x02,0x1d, +0x92,0xd1,0xb7,0x6a,0x46,0x71,0x66,0x4e,0x96,0x5f,0x5d,0xb5,0x81,0x86,0x7f,0x86, +0x80,0x5a,0xc4,0xc4,0x32,0x34,0x24,0xc6,0x80,0x12,0xd4,0xe4,0x72,0x74,0xeb,0xd9, +0xf3,0x45,0xcc,0xd4,0x33,0x35,0x5c,0x86,0x47,0x1b,0xdc,0xf4,0x73,0x75,0x31,0xe5, +0x76,0x06,0xc5,0xc5,0xb2,0x36,0x55,0xa7,0x40,0x57,0xd5,0xe5,0xf2,0x76,0x6a,0xdc, +0x24,0xb0,0xcd,0xd5,0xb3,0x37,0x2b,0xb7,0x45,0x15,0xdd,0xf5,0xf3,0x77,0xdc,0x84, +0x1b,0xda,0x06,0x9e,0x3e,0x78,0xd6,0xa9,0x33,0x43,0x97,0x28,0x78,0xe9,0x6e,0xd8, +0x27,0x14,0x4e,0x9c,0x43,0x3d,0xa1,0x4e,0xeb,0x51,0x8d,0x41,0x69,0x37,0xc5,0xff, +0x8b,0x45,0x2a,0x09,0xbc,0xb7,0x55,0xd7,0x0f,0x4a,0x20,0xa4,0xfe,0x7a,0x05,0x91, +0x0a,0x16,0xe3,0x5a,0xbb,0xce,0x92,0x49,0xe1,0x54,0xef,0xfb,0x5b,0x85,0xee,0x6e, +0x2c,0x5c,0xc6,0xcc,0x3a,0x3c,0xd6,0x12,0xef,0x7b,0xd6,0xec,0x7a,0x7c,0xce,0x5c, +0x2b,0x8c,0xce,0xdc,0x3b,0x3d,0x4d,0xbe,0xc9,0x13,0xde,0xfc,0x7b,0x7d,0x3c,0x8f, +0x00,0xe5,0xc7,0xcd,0xba,0x3e,0x88,0x89,0xec,0x5e,0xd7,0xed,0xfa,0x7e,0x75,0x26, +0xad,0x1f,0xcf,0xdd,0xbb,0x3f,0x2b,0x7d,0xef,0x58,0xdf,0xfd,0xfb,0x7f,0x7e,0x1f, +0x54,0x2b,0x98,0xd6,0xe9,0xaf,0x50,0x66,0x38,0x4b,0xe8,0x32,0x37,0x7c,0xd7,0x16, +0x05,0x59,0xac,0xf4,0x97,0xa9,0xab,0xd0,0xc7,0xc9,0x09,0x88,0xe9,0x16,0x04,0x03, +0xef,0xa6,0xc1,0x47,0x7a,0x29,0x35,0xc1,0x46,0x8a,0x48,0xc8,0x54,0x62,0x96,0xee, +0x95,0xe0,0x5c,0xf5,0x95,0x08,0xb4,0xd1,0x47,0xcb,0x16,0x58,0x08,0x3f,0x60,0x7a, +0xfa,0xb4,0xe0,0x46,0x16,0xa4,0xc7,0x6b,0x40,0xc4,0xf0,0x66,0x56,0xe4,0xed,0x54, +0xcf,0xd5,0xe8,0x56,0x17,0xa5,0x0c,0xf6,0x43,0xc2,0xf8,0x76,0x57,0xe5,0xa1,0x43, +0xf6,0x22,0xe1,0x47,0x96,0xa6,0x62,0x25,0x64,0x88,0xf1,0x67,0xd6,0xe6,0xcd,0xae, +0x07,0x5c,0xe9,0x57,0x97,0xa7,0xb9,0x76,0xd7,0x86,0xf9,0x77,0xd7,0xe7,0xc2,0xbc, +0x8b,0x8f,0x04,0x0f,0x1c,0xa1,0xbb,0xc8,0x7f,0x8a,0x0b,0x70,0xdf,0xe6,0xba,0x1e, +0x10,0x0b,0x2a,0xe4,0xfc,0xd6,0xc5,0xd2,0x4f,0x04,0xbb,0x21,0x45,0x7d,0x8b,0xa9, +0x53,0x65,0xde,0xef,0x73,0xe8,0x89,0xd5,0xdc,0x07,0x53,0x10,0xf8,0x3e,0xbb,0xf9, +0x21,0xca,0xd4,0xe5,0x62,0x74,0x40,0x33,0x28,0x74,0x3a,0x24,0xc1,0xa5,0x63,0x8c, +0xac,0xc9,0xe2,0x4e,0x1e,0xac,0xda,0xc9,0x31,0x6c,0xf2,0x6e,0x5e,0xec,0x81,0xad, +0x09,0x8d,0xea,0x5e,0x1f,0xad,0xfc,0xbc,0xed,0x81,0xfa,0x7e,0x5f,0xed,0x11,0xee, +0x0b,0x89,0xe3,0x4f,0x9e,0xae,0xb3,0x6b,0xbe,0x35,0xf3,0x6f,0xde,0xee,0x3c,0x84, +0x2c,0xf1,0xeb,0x5f,0x9f,0xaf,0x0b,0xa4,0x78,0x81,0xfb,0x7f,0xdf,0xef,0x2e,0x02, +0x87,0x96,0xa0,0xc1,0xb5,0xbe,0x6b,0xa0,0x17,0xd0,0x4d,0xe0,0x9e,0x54,0xea,0x64, +0x16,0x93,0xf2,0x05,0x31,0x1a,0xfc,0xb3,0x3e,0xca,0x18,0x4a,0xf5,0x0a,0x6d,0x11, +0x05,0x89,0x06,0x11,0x68,0x54,0xea,0xa3,0x93,0xde,0x30,0xa1,0x3c,0xa2,0xf7,0xf1, +0xb5,0x58,0xcf,0x93,0x54,0x1c,0x7b,0xcc,0x81,0x1c,0xbf,0x71,0x57,0xb6,0x77,0xfd, +0x32,0xd6,0xe4,0xc6,0x36,0xb4,0xb4,0xe7,0x76,0x95,0xf4,0xe6,0x76,0xf4,0xac,0xd2, +0x57,0x31,0xec,0xd6,0x37,0xb5,0xbc,0xf2,0x17,0x2e,0xfc,0xf6,0x77,0xf5,0x65,0xfb, +0x5a,0xe6,0xe5,0xc7,0xb6,0xb6,0xdd,0x40,0x99,0x76,0xf5,0xe7,0xf6,0xf6,0x68,0xd5, +0x6f,0x87,0xed,0xd7,0xb7,0xb7,0x7c,0x35,0x45,0x92,0xfd,0xf7,0xf7,0xf7,0x26,0x62, +0x62,0x55,0x45,0x7d,0xe2,0x13,0x77,0xd4,0x0a,0x17,0xc4,0x0b,0xd8,0x1f,0x16,0x8a, +0x4a,0x9c,0xd0,0xa8,0xd6,0x5c,0x26,0xb3,0x5e,0x1b,0xc4,0x3a,0x7d,0x4a,0xd8,0x63, +0xaa,0x99,0xc0,0x87,0x57,0x2c,0x36,0xdd,0xfe,0x12,0x63,0xe9,0x5e,0x04,0x0f,0x9f, +0xca,0x92,0xf1,0xac,0xa9,0x14,0x85,0xaf,0x60,0x5d,0x54,0xc4,0x62,0xc6,0xc2,0xa8, +0x82,0x63,0xe6,0xce,0x3e,0xbc,0x04,0x4f,0xeb,0xdb,0xf6,0xee,0x7e,0xfc,0x17,0x9c, +0x8d,0xd3,0xee,0xde,0x3f,0xbd,0x96,0x59,0x90,0x9c,0xfe,0xfe,0x7f,0xfd,0xa7,0xcb, +0xde,0xe0,0xe7,0xcf,0xbe,0xbe,0x98,0x1c,0x6b,0xd9,0xf7,0xef,0xfe,0xfe,0x1b,0x5f, +0xab,0x98,0xef,0xdf,0xbf,0xbf,0xd7,0x58,0x90,0x1f,0xff,0xff,0x57,0x3d,0x26,0x59, +0x70,0xa4,0xe1,0x62,0xef,0x8d,0x18,0x24,0x68,0x5e,0x8d,0xad,0xbb,0x04,0x1d,0xe0, +0x1a,0xa0,0x08,0x35,0xd2,0x8c,0xd8,0x58,0x46,0x4c,0xe0,0xc5,0xf2,0x21,0x8a,0x38, +0x61,0xad,0x10,0x42,0x4e,0x28,0x4b,0xae,0xa8,0x73,0x2a,0xc7,0x7c,0x9f,0x1c,0x95, +0xb0,0x50,0x1c,0xc5,0xcd,0x2a,0x41,0x35,0xe9,0xcd,0xa7,0x1c,0x31,0xe2,0x78,0xb3, +0x3e,0xa9,0xf8,0xbb,0xf0,0xdb,0x2a,0x80,0x50,0xf1,0x43,0x40,0x8e,0xd5,0x51,0x05, +0xa2,0x8a,0xdd,0xd0,0x22,0xcd,0xc2,0xfa,0xaa,0x46,0x4f,0x9e,0xf6,0xef,0x11,0x70, +0xba,0x44,0x85,0x36,0xb0,0x87,0xc0,0x5e,0xfa,0x04,0x39,0xd0,0xb1,0xef,0x51,0x55, +0x8a,0xf1,0xf7,0x7c,0x95,0x3e,0x4f,0x58,0xc5,0x5e,0xa1,0xb2,0x11,0x65,0x3a,0x68, +0x53,0x83,0x06,0xc9,0x24,0x27,0x48,0x07,0x20,0x79,0x2c,0xa8,0x69,0x88,0x13,0x89, +0xa8,0x02,0x15,0x33,0xc0,0x14,0x67,0xca,0x6a,0x09,0xa4,0x10,0x5f,0x50,0xd8,0x38, +0xb0,0x48,0x2c,0x66,0x45,0x68,0xd3,0x41,0x82,0x47,0x68,0x0a,0x79,0x95,0xc7,0xe9, +0xe8,0xaa,0xa4,0x22,0xa1,0x69,0x0f,0x81,0xaa,0xc2,0x8d,0xce,0x55,0xb6,0x7c,0x61, +0x4a,0xa3,0x4a,0x3f,0x22,0x23,0xdc,0x98,0x42,0x0e,0xda,0x68,0xf2,0x1e,0x2c,0x98, +0x0a,0x4d,0x46,0x23,0xb8,0x8d,0x22,0x7a,0x0b,0xed,0x19,0x8c,0x53,0xb6,0xd2,0x3a, +0xbe,0x62,0xe3,0x5c,0x9c,0x37,0x4a,0x2d,0xa9,0x6e,0x64,0x54,0xdc,0xb7,0x47,0xc6, +0x62,0x5e,0x5a,0x1c,0x3d,0x8f,0xca,0x38,0x81,0xef,0xdb,0x57,0xa3,0x7f,0xbc,0xc4, +0x1c,0x14,0x44,0xec,0x7a,0x3d,0xd4,0xc8,0x06,0x5d,0x6f,0xdb,0x25,0x8f,0x36,0x6f, +0xa1,0x73,0xe6,0xe7,0x09,0x73,0x09,0x34,0x50,0xf3,0x64,0xb6,0x69,0xd1,0xc4,0x70, +0x9c,0x32,0xff,0xe5,0xb4,0x13,0x4d,0x10,0x83,0x89,0xfd,0xc7,0x43,0x8f,0x33,0xbc, +0xe2,0x1c,0x94,0x6f,0x46,0x56,0x25,0x21,0x42,0xd8,0x0c,0xc6,0xc5,0x1f,0xe8,0x33, +0xae,0x19,0xdc,0xf9,0xdb,0x05,0x94,0x85,0x05,0x4f,0xaa,0xd8,0x9b,0x17,0x55,0x1c, +0xdc,0x9e,0x5d,0x93,0xf9,0xbf,0x18,0xb7,0xe1,0x81,0x70,0x6b,0x72,0x35,0x5a,0xa1, +0xac,0x54,0xc7,0x36,0x86,0x9b,0x61,0x87,0x00,0x76,0x97,0x1a,0x1b,0xa7,0x8b,0xe0, +0xd3,0xb8,0x85,0xf0,0xb5,0x2e,0xa8,0x93,0x29,0x86,0xf9,0x5f,0x1a,0xa6,0x1e,0x91, +0xc9,0xb7,0xbe,0x4b,0xf2,0x89,0xcd,0x99,0x5c,0x1a,0xf4,0xb1,0x79,0x6c,0x18,0xb1, +0x2f,0x00,0x53,0xee,0xd2,0x68,0x66,0x83,0x51,0xac,0x0e,0x4d,0x05,0x2c,0x92,0x76, +0xcb,0x20,0x3c,0x1e,0xc8,0x32,0x0e,0x38,0x49,0xda,0x91,0x84,0xf0,0x01,0xde,0xeb, +0x0a,0x90,0x4f,0xf5,0xdf,0x36,0x8e,0x3d,0x9c,0xb2,0xc1,0x1d,0x59,0x00,0xe6,0xba, +0x48,0x70,0x4a,0xae,0xc5,0x91,0x36,0xf6,0xdc,0x51,0xd4,0x1f,0x06,0xd1,0x16,0x45, +0x2d,0x04,0xd7,0x89,0x9a,0xc4,0x7e,0xe5,0xe6,0x5b,0xd6,0xf8,0xf3,0xfa,0x39,0xce, +0x0b,0xe7,0x97,0xfc,0x82,0x7c,0x31,0xd0,0xeb,0xbc,0x40,0xaa,0x30,0x1d,0x86,0x26, +0xad,0xc5,0x97,0xc0,0x52,0x6e,0xfc,0xe6,0x4a,0xf9,0x85,0x9d,0x93,0xae,0x35,0xe8, +0xa1,0x2f,0xbf,0x6e,0x77,0xd6,0x25,0xc8,0xe1,0x6f,0xc8,0x01,0xa9,0xef,0x3d,0x96, +0x34,0x37,0x60,0x74,0xea,0x2a,0xc7,0x59,0xc8,0x37,0x78,0x5e,0xdc,0x1e,0xb4,0xf3, +0xd1,0x23,0xb7,0x2e,0x92,0xbb,0xa4,0xcb,0x56,0x8f,0xeb,0x36,0xbc,0xd3,0x11,0xec, +0x6c,0xf2,0xe4,0x3e,0x93,0xba,0x31,0xea,0x2c,0xb2,0xe3,0x11,0xbd,0xb2,0x76,0x20, +0x6e,0x89,0xf5,0x07,0xf2,0x29,0x65,0x43,0xe1,0x49,0xd0,0x77,0xdb,0x87,0xe4,0x30, +0xe4,0x8e,0x44,0xc5,0x54,0xaf,0xd4,0xe1,0x04,0xcf,0x85,0x89,0xa2,0xfe,0x1f,0x7b, +0x80,0x9f,0x9f,0x6e,0x7f,0x97,0x0f,0x4a,0x2f,0xf7,0x5a,0xc2,0x03,0xf8,0xf2,0xd7, +0xaa,0x4c,0xe0,0xa7,0x09,0x06,0xa3,0x00,0xff,0x47,0xd9,0xa3,0x3c,0xc4,0x7a,0x86, +0x8b,0x49,0x73,0x71,0xbf,0x23,0x78,0xc8,0x6f,0x22,0xcb,0x51,0xfb,0x63,0xa0,0x7a, +0x01,0x74,0x3f,0xf8,0x35,0x27,0x82,0xc5,0xa4,0x98,0x83,0x7c,0xfc,0xa4,0x7a,0x08, +0x69,0x98,0xb9,0x26,0x2f,0x07,0x4d,0x07,0xff,0xdc,0xa9,0x1e,0xe8,0xf5,0x33,0x0e, +0xbe,0xdd,0xf1,0x30,0xf5,0x9a,0x97,0xa4,0xce,0x38,0x44,0xd7,0x88,0xa6,0x38,0xde, +0x66,0xfd,0xf7,0xca,0x2f,0xe6,0x0c,0x46,0xa7,0x9d,0x4d,0x66,0x19,0x43,0x30,0xcf, +0x67,0xfc,0xba,0x6f,0x27,0xef,0xe0,0xfe,0x7e,0xa5,0xed,0xfa,0x6e,0x4f,0xa3,0x23, +0xd9,0x31,0xdb,0x2f,0xa8,0x03,0xdf,0xf8,0x8d,0xc4,0x23,0x9f,0xa9,0x4f,0x15,0x5d, +0x6e,0x0c,0xf2,0x0a,0x3e,0x20,0x43,0x89,0xec,0xb5,0xc3,0x8c,0xf1,0x62,0x3e,0xb3, +0x1c,0x8f,0xfc,0xef,0x32,0xa9,0xf4,0xca,0x3e,0x2d,0x33,0x5f,0x8b,0x05,0xa7,0xa3, +0x1d,0xd3,0x77,0xa7,0x01,0xf3,0xfc,0xda,0x53,0x5c,0x77,0x55,0x57,0x70,0x1b,0xae, +0x03,0x19,0xe2,0xf8,0x17,0x39,0x4d,0x53,0xff,0xe3,0xe5,0x99,0x88,0xb0,0x34,0x08, +0x58,0x9c,0xb4,0x06,0xd6,0x93,0x45,0xa2,0xea,0x58,0x3d,0xf6,0x59,0x7e,0xd8,0x7d, +0x22,0x36,0xf2,0xa4,0x5e,0xb9,0xe7,0x60,0xb2,0x00,0x34,0x8e,0x3c,0xf9,0x54,0x41, +0x53,0x93,0x5b,0xff,0x31,0x7c,0xfe,0x02,0x98,0x7a,0x6b,0x72,0x46,0x57,0xc9,0x41, +0x72,0x02,0x9b,0xff,0x4e,0xe7,0x4d,0x70,0x9e,0xde,0x0a,0x17,0xd7,0x57,0xce,0xdc, +0x06,0x31,0x8c,0xc6,0x83,0xb3,0x6a,0x00,0x93,0x7a,0xc5,0x0c,0xf1,0x6e,0x20,0xa3, +0xc5,0xa9,0xde,0x7f,0x9f,0xf8,0x83,0x9b,0x54,0x9a,0xc8,0x87,0x95,0xc9,0x14,0x69, +0x15,0x34,0xac,0x60,0x91,0xb4,0x46,0xb8,0x2d,0x79,0x3e,0xdf,0x16,0x54,0x3d,0x96, +0x8f,0xbc,0x99,0xa6,0xba,0xa3,0x2e,0x3a,0x8f,0x25,0x1b,0x3c,0xff,0xf2,0x3a,0xdc, +0x67,0x91,0x50,0xec,0x89,0xf9,0xae,0xba,0x0b,0xc0,0xaa,0x8e,0x5c,0x5a,0x71,0x8a, +0x6a,0x17,0x0c,0xdf,0x06,0xb8,0xe5,0x18,0x4d,0xbc,0x93,0xa1,0x83,0x80,0xfd,0xa9, +0x5b,0x12,0x59,0xf7,0x39,0x24,0xee,0x89,0x4d,0x7c,0xe9,0xcf,0xde,0x5c,0x98,0x38, +0xd6,0x31,0x93,0xeb,0x46,0xef,0x49,0xd2,0x0d,0xd5,0x5e,0x91,0x6b,0x53,0x37,0xde, +0x46,0x2e,0x8a,0xc1,0xc7,0x4b,0x6a,0x7f,0xde,0x37,0xc7,0x0c,0xdd,0xbd,0x19,0xf3, +0xc2,0xa0,0x13,0x06,0x9b,0xd5,0xc4,0xde,0xcf,0x3d,0x98,0x20,0xd7,0x21,0x74,0x82, +0x49,0x09,0xd2,0x15,0x66,0x21,0x19,0x43,0x67,0xe9,0xe0,0x47,0x21,0xe7,0x49,0x14, +0x86,0x1b,0xd1,0x81,0x8b,0x77,0xf6,0x4f,0x16,0x4a,0x7d,0x56,0xa8,0xe4,0x8a,0xd6, +0xb2,0xbb,0xb8,0x2c,0x81,0x27,0x4d,0xd1,0xc5,0x66,0x99,0xf5,0xc1,0x9e,0x7e,0x5f, +0x76,0xa9,0x82,0xbb,0xfb,0xd5,0x2e,0x4c,0x01,0x4b,0xd6,0x59,0xdb,0xbb,0x76,0x6c, +0x8c,0x83,0x92,0x7b,0x7b,0xd4,0x4e,0x59,0x45,0x7c,0x03,0x49,0x55,0x7c,0xd6,0x61, +0x2f,0x36,0x6d,0xda,0x91,0xbd,0x09,0x6d,0xa1,0xdb,0x41,0x7a,0xe6,0xed,0x5b,0x11, +0xdd,0x03,0x09,0x3d,0xd9,0x2a,0x1d,0x81,0xcb,0x48,0x9f,0x17,0x38,0x16,0xba,0x87, +0x1a,0x45,0x84,0x4b,0x36,0xf4,0xd7,0x53,0x9d,0xd5,0xf0,0xce,0xad,0xee,0xdc,0x1a, +0x59,0x67,0x4a,0x75,0x33,0x68,0xce,0x66,0x67,0x95,0x39,0x83,0x3a,0x49,0xe2,0x49, +0x8a,0x46,0x57,0x53,0x0b,0x15,0xb8,0xc1,0xcc,0x26,0x93,0x6d,0x9c,0x6c,0x52,0xdd, +0x2c,0x7d,0x56,0x00,0xe2,0xf0,0x72,0xd2,0x36,0x25,0xe3,0x4e,0xed,0xe1,0xc4,0x3b, +0x7e,0x62,0xdc,0x75,0x39,0xb5,0x54,0x41,0xa3,0x7d,0x12,0x10,0x0c,0xe1,0x10,0xa4, +0x63,0x7c,0x9a,0x2f,0x39,0x41,0x3a,0x66,0xf6,0x40,0x4f,0xbc,0x73,0xe6,0x21,0xcb, +0x8b,0xcc,0xfd,0x70,0xda,0x81,0x21,0x74,0x49,0x0f,0x28,0x13,0x57,0xc8,0x8b,0x31, +0xc1,0x02,0xad,0x9d,0x98,0x26,0x19,0x9b,0xa8,0x39,0xc3,0x41,0xdd,0x76,0x20,0xe7, +0xd7,0x20,0xdc,0x80,0xb9,0x39,0x40,0x52,0x53,0x54,0x90,0xc4,0x4d,0x1e,0xd8,0xce, +0x0f,0xcd,0xf5,0xf2,0xda,0x60,0xd3,0x46,0x45,0x57,0xa2,0x8c,0xb3,0x41,0xb9,0x69, +0xa4,0x7e,0xdf,0xf5,0xd8,0x43,0xdf,0x57,0xf0,0x9f,0xab,0x9c,0x32,0x7b,0x64,0x7a, +0x5e,0x88,0x4d,0xfd,0x2b,0x3e,0xab,0xd1,0x40,0xfc,0x95,0xb1,0x71,0x6b,0xd1,0xff, +0x1a,0x56,0x53,0x40,0x57,0x22,0xab,0x9b,0x0a,0x59,0xad,0x82,0x31,0x7b,0x72,0xed, +0x03,0xf8,0x0c,0xbc,0x79,0xbe,0x5e,0x00,0x25,0xe4,0xce,0x16,0x06,0x7e,0xd8,0x02, +0xa1,0xe6,0x9f,0xea,0xda,0x35,0x43,0x83,0x19,0x8d,0x2e,0x0d,0xa7,0x3b,0x4b,0x94, +0xdf,0x13,0x32,0x37,0x4f,0xc6,0x9d,0x99,0xb4,0xc8,0x4a,0x71,0xc2,0x77,0x06,0x71, +0x24,0x5a,0xf8,0xb1,0xc0,0x49,0x46,0x59,0x1c,0x78,0x3a,0xd3,0xba,0x7d,0xe9,0xf6, +0xff,0x11,0x03,0x82,0x49,0xcd,0xca,0x78,0x59,0xd2,0x9d,0xcf,0x01,0xff,0x03,0x4e, +0x27,0x67,0x30,0xa4,0xbe,0xa3,0x29,0x95,0x65,0xfc,0x2c,0x3f,0xf8,0x70,0xc3,0xea, +0x8f,0xb3,0x98,0xda,0x50,0x8a,0x07,0x88,0x9d,0x19,0xb7,0xce,0x89,0xfd,0x66,0xc0, +0x27,0xed,0x06,0x05,0x8e,0x91,0x0c,0x7c,0x16,0x1e,0xad,0xcb,0xdb,0xc3,0xd9,0x25, +0x2d,0x04,0x4c,0xaf,0x19,0x94,0x56,0xe8,0x54,0x7d,0x9b,0x78,0x4a,0x5a,0x46,0xcb, +0xa6,0x74,0x50,0xbc,0xce,0x37,0x4e,0x35,0x65,0xc8,0xe9,0xc1,0xfc,0x47,0x2a,0xaa, +0xd7,0x10,0x5c,0x3d,0xb5,0xb4,0x7f,0xfd,0xd4,0x5f,0x1f,0x95,0x41,0x3d,0x61,0x64, +0x92,0x88,0xfb,0x31,0x6b,0x22,0x8d,0xbd,0xf1,0x16,0xc8,0xdd,0x75,0x02,0xfc,0x62, +0x01,0x8a,0xd5,0x64,0xfe,0x90,0x80,0xcd,0xac,0xcb,0x80,0xcc,0xac,0x8d,0xa1,0x45, +0xea,0x2f,0x7a,0x2d,0x92,0x98,0x39,0x2f,0xf7,0xe7,0xe8,0x7b,0x71,0x63,0x20,0x2c, +0xa7,0xc1,0x97,0x3e,0x18,0x05,0xd5,0xac,0xc6,0xba,0xda,0x77,0x85,0x1e,0x22,0xa0, +0x65,0xf1,0xba,0x69,0x7e,0xa7,0x67,0xe6,0x77,0x8e,0xb6,0x04,0xad,0x1d,0x2e,0xa2, +0xf8,0x8a,0xf6,0x6f,0x34,0xaf,0xf7,0x10,0xca,0x13,0xef,0xf2,0x66,0x47,0x77,0x6a, +0x80,0x9f,0x21,0x2f,0xdc,0xab,0x49,0x9d,0xc0,0xdf,0xe9,0xe2,0xb5,0x93,0x49,0xf7, +0x6e,0x76,0xde,0xf7,0x6b,0x56,0x31,0x62,0xc1,0xde,0xa3,0x88,0x74,0x6c,0xbd,0x41, +0xf1,0xe4,0xea,0x4e,0x18,0x84,0x34,0x17,0x65,0xa6,0xd0,0xb6,0xa9,0x6e,0xea,0x72, +0xa6,0x0f,0xbf,0x9a,0x2c,0x0b,0x6a,0x8f,0x4f,0x64,0xba,0xc3,0x0f,0xef,0x41,0x1b, +0x8d,0x1b,0xb9,0xff,0x20,0x0b,0x35,0x17,0xe5,0x86,0xb3,0xef,0x9c,0x31,0x29,0x5b, +0xe5,0xb0,0x93,0xec,0xa1,0x24,0xeb,0xc9,0x32,0x66,0x18,0x71,0x7c,0x62,0x72,0x2d, +0x76,0x01,0x22,0x36,0x84,0xc2,0xfd,0x14,0xed,0x47,0x29,0x5f,0x6a,0xae,0x7f,0xde, +0x32,0xa3,0xab,0x38,0xc9,0xa5,0xb2,0x08,0xec,0x30,0x82,0x62,0xdf,0xd3,0x9e,0x70, +0xb2,0x7b,0xba,0x49,0x3b,0x58,0x96,0x52,0xc8,0xd7,0xea,0xfe,0x7f,0x6c,0x63,0x57, +0x93,0x3a,0x3c,0x64,0xbd,0x5a,0x6d,0x19,0xa7,0xc2,0xa1,0x0f,0xb7,0xbe,0x70,0x62, +0x7d,0xd1,0xc6,0xc6,0xdd,0x21,0x2d,0x33,0xc5,0x7f,0x30,0xe6,0x70,0xf4,0xc9,0x1a, +0x80,0xc7,0x80,0xaa,0xc9,0xc0,0xfc,0xc6,0xf7,0x5a,0x5b,0xc5,0x05,0x27,0x89,0x6b, +0x20,0xdf,0xc7,0x87,0xb7,0xf2,0xa2,0x58,0x18,0xd1,0x61,0x60,0x1d,0x43,0x65,0xd7, +0x4c,0xd0,0x6d,0xeb,0x44,0xdd,0x88,0x82,0x99,0x91,0xb5,0xaf,0x2c,0x0e,0x62,0xeb, +0x8e,0x05,0xe0,0x3a,0x36,0xa1,0xcf,0x32,0x6e,0xad,0xed,0xf3,0x85,0x91,0x2e,0xe3, +0x1f,0xd7,0x40,0x73,0xe2,0xd6,0xeb,0x01,0xe3,0x58,0x3c,0x9f,0x1f,0xb7,0x5f,0x30, +0x9e,0x1d,0xf2,0xcf,0x36,0x16,0x6d,0xfb,0x85,0x14,0xcd,0x1c,0x1f,0xa7,0x74,0x90, +0x86,0x96,0x46,0x1d,0x0c,0xf5,0x2f,0xb4,0x0c,0xb3,0xe4,0x54,0x94,0x57,0x28,0x2b, +0x0f,0x0b,0x98,0xb7,0xfe,0xb2,0x2f,0x3b,0x0f,0x27,0x99,0xf4,0x89,0x64,0x55,0x92, +0x88,0x26,0xe6,0x96,0xc0,0x3f,0x29,0x3e,0x5c,0x7b,0x9e,0xae,0x85,0x48,0xb7,0x63, +0x24,0xd7,0x99,0xb7,0x7e,0xba,0x4f,0x5b,0x9b,0x7b,0x00,0x96,0x08,0x6b,0x39,0xf9, +0x52,0x06,0xe7,0xe1,0x7f,0xbb,0x07,0x2b,0x4e,0x7b,0x8c,0x87,0xfb,0x02,0x3c,0x36, +0x46,0xad,0xfb,0x6f,0x5d,0x67,0x4d,0x08,0x32,0x6c,0x61,0x6a,0x4f,0xd0,0x36,0x4e, +0x4c,0x14,0xa8,0xbc,0x7d,0xb2,0x69,0xe1,0x1b,0x50,0x6f,0x14,0x82,0xb2,0xa7,0xa3, +0xe4,0x93,0xf1,0xf6,0xb8,0xa7,0x9c,0x2c,0xca,0x2a,0x08,0x1f,0x5a,0x5f,0x79,0xf2, +0x1c,0xd2,0xe9,0x7f,0x3f,0x89,0x01,0xc6,0x06,0xd5,0x6f,0xff,0xff,0xff,0xbf,0xf1, +0xa3,0x40,0xfe,0x02,0xf1,0xa3,0xf7,0x5e,0x21,0x44,0xd6,0x46,0x73,0xb1,0xa8,0x63, +0xa2,0x82,0x18,0xe7,0x95,0xac,0x88,0xc3,0xc5,0xcc,0x58,0x58,0xef,0x0d,0x33,0x31, +0x19,0xad,0x29,0xf6,0x1c,0x2f,0x68,0xd1,0x40,0x54,0xa6,0x19,0x2c,0x93,0xbf,0xe2, +0x0d,0x0e,0xdb,0x53,0x7a,0x47,0x4b,0x72,0x2a,0x27,0x26,0xa6,0xb3,0xbe,0x3b,0x87, +0xfb,0xf2,0x3f,0xb4,0x64,0x85,0xb1,0x20,0x1e,0xcf,0x94,0x06,0x71,0x86,0x6e,0xf0, +0x3d,0x70,0xf0,0xac,0x13,0xd4,0x1e,0x80,0xbc,0x4a,0x18,0x18,0xed,0x09,0x7a,0xdf, +0x83,0xb6,0x90,0xc1,0xab,0x16,0xe4,0x5c,0xc4,0x5f,0xe6,0x49,0x2e,0x57,0x1d,0x6a, +0xe1,0x92,0x36,0x2f,0xe5,0xf8,0x99,0x19,0xc9,0x4a,0x66,0xe6,0xab,0xba,0x92,0xf8, +0x7f,0xa9,0x12,0xff,0x9c,0xa5,0x82,0xdb,0xcc,0xc5,0xf4,0x89,0x5b,0x88,0x58,0x2f, +0xe2,0x6d,0x1a,0xed,0xba,0xe9,0x8a,0xc8,0x1c,0xe8,0xbc,0x00,0x73,0xdc,0x16,0xfa, +0x0c,0x87,0xd1,0x13,0x73,0x4e,0x41,0x6a,0x23,0x2e,0x30,0x88,0x04,0xe9,0x9b,0x22, +0xbd,0xfe,0xb9,0x2d,0xb2,0x84,0x8e,0xca,0x4d,0xc6,0x08,0x02,0xfb,0x29,0x96,0x77, +0x76,0x08,0x98,0x26,0x72,0x3f,0x10,0x8a,0x16,0x48,0xb4,0x54,0x59,0x8c,0xff,0xfc, +0xf3,0xce,0x57,0xf1,0xc2,0xd0,0x62,0xbf,0x89,0x6d,0xfc,0x50,0x67,0xcd,0xc6,0x5a, +0xf6,0x7d,0x03,0x25,0x10,0x6c,0x7f,0xed,0xfb,0x6c,0x70,0x55,0x06,0xdf,0x78,0xe8, +0x77,0x0c,0xe4,0x07,0x6e,0xb3,0x53,0x68,0x37,0x7e,0x4a,0x0e,0xef,0x03,0xa0,0xa4, +0x83,0xbd,0x96,0xf3,0x14,0x9f,0x84,0x53,0xe4,0xdd,0xaa,0x01,0x93,0x79,0xac,0xe2, +0x4b,0xe0,0x3a,0xb0,0xed,0x80,0x24,0x94,0x8a,0x35,0xfe,0x94,0x98,0x12,0x55,0xb0, +0x94,0xbd,0x25,0xf6,0x13,0xb1,0x47,0x8b,0x0b,0x36,0x8c,0x62,0x19,0xf1,0x73,0x96, +0x85,0x98,0x4d,0xe9,0xe7,0x35,0x43,0x53,0xe5,0xfe,0xff,0xb4,0xf2,0xc9,0xd5,0x44, +0x13,0xfd,0x10,0x3e,0x34,0x8e,0x4d,0xe0,0x95,0x31,0x14,0x8d,0x7f,0xdb,0xd9,0xf7, +0x82,0xba,0x93,0x2b,0x4c,0x40,0xf0,0x75,0xb6,0x37,0x68,0x87,0x0b,0x7a,0x85,0xa9, +0xee,0xb9,0x8e,0xe1,0x8d,0xc6,0x6d,0x09,0xae,0x8a,0x71,0x96,0x82,0x79,0x5e,0xea, +0x97,0xe2,0x16,0xe2,0xb5,0xed,0x34,0x1a,0x1c,0xdc,0xdb,0xdc,0xda,0xfd,0xe3,0xb5, +0xc3,0x5c,0x30,0xec,0x99,0x97,0x85,0x2c,0x28,0xe4,0xa8,0x18,0xba,0x79,0xaa,0xbc, +0x4a,0xdb,0xde,0x6c,0xc6,0x96,0x61,0xc7,0x01,0x54,0xd6,0x79,0x90,0x7a,0x3d,0x39, +0x2d,0xb5,0x10,0xaa,0x19,0x95,0x2f,0x53,0x44,0x57,0xa9,0x1c,0x3a,0x5a,0x19,0xa1, +0x42,0x5f,0x5b,0x6e,0xdb,0x94,0x8f,0x49,0x95,0xaa,0x5f,0xd5,0x4c,0x39,0x53,0x4c, +0x4f,0xf3,0xba,0xbe,0xd1,0x0d,0xc1,0xd9,0x58,0x1e,0x46,0x83,0x59,0x1d,0x28,0x18, +0x28,0x2e,0x86,0x1c,0x50,0xb6,0x5e,0xc5,0x94,0xc0,0x6a,0x9e,0x48,0x9d,0x7d,0x36, +0x57,0x72,0xf9,0xe4,0x37,0x98,0x4e,0x8b,0x4b,0xc5,0x17,0x85,0xfa,0xa1,0x15,0xf6, +0xd7,0x5d,0x2a,0xec,0x83,0x7d,0x8c,0x07,0x88,0x03,0x74,0xba,0xf5,0xa3,0x35,0x86, +0x7d,0x99,0x00,0x74,0x76,0xcc,0x62,0x64,0xaf,0xa4,0x29,0x89,0xd9,0x1d,0x9d,0xe2, +0x9b,0x20,0x9a,0x26,0x88,0x0e,0x40,0x00,0x3d,0x3e,0xee,0xf6,0x19,0x35,0x96,0x2f, +0x82,0x7b,0x31,0xf6,0x37,0x62,0xa1,0x19,0x67,0x6d,0xd7,0x93,0x21,0x44,0x3c,0xe0, +0x01,0x0e,0x09,0x65,0xf7,0xcf,0x07,0xd1,0xb7,0x1c,0xef,0x28,0xb3,0x47,0xa0,0x3b, +0x02,0x0f,0x20,0x47,0x9f,0xf8,0xb0,0x07,0xc2,0x86,0x92,0x7b,0x57,0x78,0x71,0xc3, +0x64,0xa5,0x45,0x6c,0x2d,0x10,0xf8,0x63,0xbb,0xf4,0x6e,0x86,0xeb,0x44,0xba,0x72, +0xfe,0xc4,0x5a,0x09,0x0b,0x5b,0x68,0xe2,0x67,0x41,0xcf,0x4a,0x35,0xef,0x11,0x77, +0x66,0x28,0x38,0x69,0xad,0x52,0xb9,0x1a,0xd2,0x67,0xec,0xf3,0xe6,0x45,0x70,0x4c, +0xe7,0xec,0x32,0xf1,0x2f,0xac,0xa2,0xd9,0xc0,0x55,0x21,0x8a,0x14,0x39,0x3c,0x36, +0xe6,0xcd,0x10,0x43,0xfa,0xe8,0xaa,0x45,0x26,0xc6,0x3d,0x7e,0xe1,0x44,0x1b,0xf4, +0xef,0xb0,0x19,0x53,0x7b,0xba,0x4b,0x0c,0x35,0xc5,0x8d,0x13,0x51,0x6c,0x11,0xab, +0x00,0x24,0xf5,0xfd,0x99,0x2e,0xbb,0x09,0xad,0x26,0xe9,0xcd,0xfe,0x8b,0x77,0xce, +0x3f,0xae,0x33,0xca,0x16,0x80,0x67,0x19,0x76,0xa0,0xcc,0x43,0xfd,0x6d,0x62,0xab, +0xf3,0xbc,0x3b,0xa0,0x3b,0xa0,0x76,0xdb,0x6b,0x39,0xc2,0x6e,0xfc,0x40,0x5b,0x8c, +0x4c,0xae,0x5c,0x62,0x61,0x73,0x11,0x76,0xcd,0x8e,0x28,0xeb,0xef,0x4c,0xab,0x27, +0xd9,0x7b,0xfd,0x3d,0x64,0x22,0xad,0x60,0xfd,0x8d,0xee,0xfb,0xee,0xf6,0x1e,0x32, +0xa9,0x3f,0xf2,0x75,0x52,0x3d,0x4a,0xa4,0x85,0x53,0xad,0xb3,0x83,0x95,0x72,0x70, +0x21,0x14,0xba,0xaa,0x33,0xa8,0x02,0x1f,0x0e,0xde,0x82,0x13,0x03,0x2e,0x81,0xe1, +0x80,0x6f,0xdb,0xbb,0xd7,0x88,0x9d,0x50,0x68,0x93,0x8d,0x96,0x96,0x0d,0x3f,0x88, +0x81,0x9c,0x7c,0xf5,0x94,0xfb,0xbd,0x81,0x85,0x67,0xe3,0x55,0xf1,0x5e,0x7d,0x53, +0x87,0x3d,0xfd,0x02,0x97,0xbd,0x62,0x4a,0x60,0xcd,0x30,0x2c,0xcd,0x5b,0x75,0xa7, +0x21,0x8c,0xff,0x25,0x4f,0x1a,0xdf,0x5b,0xbb,0x86,0x3c,0x9e,0xef,0xf8,0x70,0x23, +0x9a,0xd4,0x7b,0x37,0x49,0x19,0x50,0x67,0xdb,0xa5,0xa5,0x17,0x63,0x47,0xeb,0x29, +0x0b,0x9a,0x78,0xa5,0x5c,0xe6,0x43,0x46,0xe1,0xce,0x86,0x07,0x8b,0x46,0x19,0x7b, +0x8f,0xd8,0xfc,0xf4,0x54,0x69,0xa6,0xd9,0x4e,0x59,0x21,0x9c,0x1c,0x4c,0x3c,0x9e, +0xd2,0x14,0xf6,0x36,0x5e,0x62,0x13,0xc5,0xe0,0x98,0x0a,0xdc,0x15,0x3a,0x15,0xbb, +0x41,0xdb,0x67,0xe6,0xb6,0xb7,0xb7,0x54,0xea,0x23,0x77,0xc7,0xb0,0x65,0xfb,0x65, +0x5c,0xf5,0xb9,0xa3,0xbb,0xa2,0x29,0xd9,0x8d,0x2b,0xc0,0xcc,0x97,0x68,0x19,0x22, +0x77,0xd1,0xbc,0x07,0x56,0xed,0x2a,0x6e,0x5f,0x3c,0x88,0xe8,0x9f,0x7f,0xd6,0x6b, +0x13,0xc2,0xf6,0xff,0x5c,0x20,0xf8,0xa4,0xe2,0xbf,0xe7,0x55,0x79,0xe4,0x71,0xf3, +0x11,0x8c,0x27,0xa7,0x88,0xb3,0x8c,0xcc,0x4f,0xc5,0x5f,0xed,0x9e,0xbc,0x83,0xa0, +0x31,0x02,0xf9,0xf3,0xb9,0x86,0xd4,0x7e,0x7c,0xe0,0x79,0x01,0x53,0xf2,0x59,0x15, +0xd5,0x6c,0xb6,0x20,0x16,0x39,0x6d,0xdf,0x23,0x5d,0xed,0xdb,0x33,0x3c,0x75,0xe3, +0x23,0x8a,0xf1,0x33,0xb0,0x8e,0x7c,0x52,0xba,0x03,0x27,0xb0,0x60,0x98,0xc5,0x5f, +0x8e,0x1c,0xb8,0x81,0xa1,0xc2,0x07,0x80,0xc6,0x5b,0x04,0xa1,0xe1,0x56,0x30,0x28, +0x87,0x1a,0x29,0x1f,0x1d,0x4f,0xd2,0x56,0x3c,0xec,0x59,0x5d,0x9d,0xbc,0xfb,0xb2, +0x23,0xc6,0x94,0xb4,0x64,0x85,0xe4,0x0f,0x44,0x5d,0x4e,0x77,0x1a,0x55,0x51,0xfc, +0xe2,0x0a,0xf0,0xab,0x70,0x38,0xa1,0x57,0xe2,0x3a,0x5f,0x34,0xba,0x24,0x1b,0x88, +0xf6,0x44,0x91,0xc1,0xab,0x16,0xce,0xe5,0xf3,0xa6,0xef,0x4c,0x5f,0xe0,0x13,0x0d, +0xf7,0x45,0xdf,0xf5,0x95,0x3e,0xe6,0x40,0x62,0xc6,0xb9,0x76,0x86,0x6a,0x66,0x6a, +0xfb,0x83,0xe0,0x8e,0xf1,0x4c,0x6a,0x1a,0xb3,0xe5,0x26,0x4e,0x6b,0x88,0x30,0xa8, +0x8c,0xa6,0xb5,0x8e,0x9b,0xb4,0x8a,0x27,0x2b,0xfd,0x5e,0xf6,0xe2,0x96,0xd0,0x30, +0x63,0x4e,0xe1,0x0d,0x99,0xe9,0xc3,0xad,0xf9,0xef,0x38,0x6a,0xd6,0xb6,0xaf,0x7b, +0x32,0x96,0xe9,0x1d,0x98,0xfa,0x4d,0xbd,0xf8,0x4b,0xc1,0x57,0xe5,0x29,0x5b,0xd3, +0xeb,0x03,0xa6,0x2e,0xe1,0x6e,0x4d,0x9b,0xce,0xc1,0xd8,0x6e,0xf9,0x2e,0x70,0xbe, +0x57,0x09,0xb2,0x6e,0xe0,0xb8,0xe3,0x9a,0xe7,0x30,0x51,0x1e,0x7a,0xfd,0x19,0x39, +0xfe,0x11,0x08,0x2a,0x67,0x81,0x01,0x2a,0x21,0x2a,0x18,0xd8,0x58,0x4a,0x3d,0x7d, +0x12,0xf2,0xb3,0x2e,0xb1,0x6d,0x23,0x89,0x83,0xfe,0xe5,0x15,0x54,0xe9,0xff,0xeb, +0x26,0x09,0x44,0xec,0x81,0x72,0x2f,0xff,0x66,0x8a,0x34,0xd6,0x12,0x3c,0x9c,0xd7, +0x05,0xe5,0xd6,0x6b,0x92,0x54,0x4e,0x34,0x50,0x06,0x01,0xc7,0x2c,0x7a,0xda,0xc1, +0xa4,0x7c,0x98,0xc0,0x5b,0x56,0xa9,0xbe,0x86,0xff,0xeb,0xa2,0xf4,0xf2,0x5d,0x8a, +0x8b,0x51,0xf5,0xb1,0xd2,0x46,0xdd,0xd9,0xad,0x8c,0xd5,0x95,0xa7,0xcb,0x5c,0xed, +0x24,0x0d,0xcc,0xc1,0x4d,0x34,0x6e,0x50,0xeb,0x16,0x8e,0x58,0x0e,0x36,0x55,0xb8, +0x25,0x0c,0x17,0xd6,0x4c,0xdd,0x24,0xe4,0x83,0xd4,0x4c,0x04,0x2c,0x84,0x03,0xbb, +0x01,0x54,0x55,0x38,0xba,0x77,0x4c,0x42,0x1f,0xfd,0xc8,0xec,0x07,0x79,0xcb,0x3f, +0x0f,0x1a,0x92,0xb2,0xb5,0x4d,0x70,0x02,0x67,0xda,0xa3,0xf3,0x12,0xf4,0x1f,0x88, +0xdf,0x7d,0x11,0x08,0x09,0x9a,0xa2,0xca,0x5b,0xb8,0xac,0x53,0x85,0x14,0xa2,0x1d, +0xfc,0x7b,0x4e,0xf4,0x73,0xb2,0xda,0x72,0xd2,0xc6,0x5e,0xd4,0x24,0x74,0x3f,0x61, +0xe4,0xc6,0x3a,0x6f,0xd8,0xe1,0xbc,0xee,0xe6,0x86,0xf1,0x6d,0xfb,0xd2,0x66,0x72, +0x56,0x90,0x8b,0x7f,0xbf,0x22,0x21,0x08,0xef,0x62,0x87,0x05,0x9a,0x0e,0xbb,0x8f, +0xf4,0x41,0xf7,0xb3,0x1b,0xbe,0x04,0xaf,0x6c,0x45,0x7e,0x1f,0xf6,0x71,0xf7,0x86, +0xf6,0x60,0xd2,0x3a,0x9e,0x53,0xfe,0x8a,0x09,0x71,0xa0,0xfa,0x9a,0xfe,0xa4,0x09, +0xb2,0xc2,0x9e,0x56,0x1f,0x9f,0xfe,0xd9,0x93,0xf1,0x2c,0x1d,0xdb,0x8f,0xe0,0x82, +0x5a,0xa3,0xad,0x4d,0xba,0xaf,0x9f,0x91,0x41,0xd4,0x77,0x0e,0x77,0x72,0x32,0x06, +0xfb,0x0d,0x60,0x6e,0x79,0xe2,0xcb,0x05,0xe5,0xdb,0xa9,0xa5,0xa9,0xef,0xe8,0x7a, +0x7a,0x89,0x90,0xe5,0x91,0xb5,0x93,0xb7,0xd6,0xfe,0x80,0x06,0x13,0xa3,0xf5,0xfd, +0x6d,0x81,0xb8,0x12,0x27,0xc7,0xb7,0x7d,0x49,0xa0,0x8e,0x16,0x75,0x43,0xab,0x78, +0x83,0x9a,0x0d,0xd0,0x57,0xaf,0x42,0x40,0xaf,0x81,0xa0,0xeb,0x26,0x86,0x4d,0xb2, +0xf9,0x7b,0xf9,0x71,0x32,0x09,0xb0,0x0a,0xcf,0x1b,0xea,0xa6,0x1e,0xa6,0x13,0xa1, +0x69,0x18,0x88,0x11,0x26,0xa8,0xc3,0x94,0x63,0x71,0x78,0xae,0x25,0x6e,0x9a,0x78, +0x85,0x0b,0x2d,0xf5,0x9e,0x14,0x2b,0xb2,0xba,0xd9,0x3e,0xe8,0x56,0x3b,0xc5,0xc0, +0x84,0x8d,0xf1,0xc2,0xb7,0x26,0xea,0x0c,0xac,0xc8,0x50,0x4a,0xd1,0xfe,0x7b,0xca, +0x4e,0x25,0x9c,0x09,0xde,0xa8,0x2b,0x2b,0xbb,0xad,0x8a,0xd5,0xf0,0xe5,0x22,0x07, +0xfc,0x08,0xbc,0xb3,0x1b,0xb0,0x96,0xbf,0x98,0xab,0x07,0x0f,0xfc,0x48,0x73,0x8f, +0xbd,0x91,0xeb,0x87,0xff,0xdf,0x0b,0xc3,0x80,0x16,0x48,0x08,0x7d,0x15,0xab,0xe4, +0x6c,0xe8,0xed,0xef,0x62,0xa4,0x52,0xd0,0x36,0x37,0x83,0x0f,0x82,0x44,0xb2,0xba, +0xb2,0x1d,0xa0,0x89,0xe3,0x2a,0xf0,0x58,0x2e,0x35,0xd7,0x0c,0xa9,0xae,0x77,0xba, +0x67,0xf8,0xa2,0x56,0xe6,0x2b,0xd6,0xfe,0x7e,0x91,0xa0,0x14,0x23,0xaf,0xa3,0x23, +0xc4,0x83,0xf2,0x31,0x5c,0xae,0x0d,0x6d,0x2f,0x4d,0xea,0xb4,0x2b,0xe1,0xbd,0x4a, +0xe1,0x04,0xfa,0x25,0x5d,0xaf,0x69,0x26,0x24,0x8b,0xe2,0xfc,0x7e,0x30,0x8d,0xb3, +0x0e,0xd2,0x3a,0x02,0x0d,0xd8,0x67,0x26,0x55,0x30,0x23,0x22,0x45,0x52,0xec,0x4e, +0x88,0x65,0x01,0xed,0xa8,0x0d,0xba,0xec,0xe8,0xb3,0xa5,0x4c,0x86,0x94,0x3c,0x88, +0x05,0x2d,0x65,0xef,0x1e,0xf3,0xce,0x84,0x45,0xc9,0x8d,0x59,0x09,0xb0,0xfd,0xe0, +0x87,0xd1,0x12,0xcc,0xde,0xbc,0x96,0x36,0x76,0xec,0x85,0x4c,0xc6,0xab,0x67,0xc0, +0xb7,0x68,0x84,0x87,0xba,0xb9,0xc4,0xdf,0xd5,0x99,0x58,0x78,0x36,0x0b,0x14,0xd6, +0xde,0xd7,0xd6,0x3e,0xed,0xfa,0x05,0x8c,0xc0,0x94,0x78,0x08,0x08,0xd5,0x5a,0x9c, +0x82,0x3d,0xef,0xc6,0x15,0xf7,0x8e,0x13,0xad,0x27,0x65,0x98,0xa3,0xfd,0x74,0xc3, +0x10,0xf2,0x7d,0xa5,0x5c,0x86,0xda,0x53,0xe1,0xce,0xc2,0xaf,0xd4,0x97,0x3b,0x32, +0x2a,0x81,0x26,0xf5,0x3a,0xa1,0x49,0xf5,0x9d,0x24,0x0e,0x40,0x6c,0xb5,0x77,0x8f, +0xf8,0xf5,0xf7,0x8b,0xe8,0xd5,0x40,0x58,0x8d,0x66,0x85,0x30,0x7c,0x79,0xa1,0x75, +0x00,0x97,0xa5,0x71,0x10,0xb7,0xf7,0x77,0x41,0x27,0x4a,0x68,0x05,0x8c,0xeb,0xc5, +0xa3,0x85,0x6b,0xc1,0xb3,0xa5,0x01,0x0f,0xeb,0xc2,0x57,0x23,0x7d,0xa9,0x5e,0x25, +0xd3,0x3d,0xbc,0x32,0x56,0x8d,0x19,0x88,0x91,0x57,0x8d,0x17,0x76,0xbe,0xce,0xa8, +0x4d,0xb1,0x02,0x4c,0x37,0xb5,0x67,0xf1,0xce,0x62,0x7a,0x03,0x80,0xbc,0x5f,0xfb, +0xf3,0x31,0x27,0xa7,0xf4,0xb3,0xde,0xda,0xcc,0x9c,0xf3,0x28,0x0b,0xf7,0x11,0xdc, +0x1a,0x90,0xe9,0xe0,0x87,0xfd,0xbf,0x27,0x42,0x2b,0x6f,0xff,0xda,0x49,0x5e,0x28, +0xec,0xab,0xe0,0x1a,0xdd,0xfd,0xa8,0xbb,0x23,0x44,0xcb,0x24,0x2f,0x69,0x68,0x12, +0x6a,0x0c,0x24,0x86,0xd1,0xfc,0x02,0x32,0x8b,0x4e,0x73,0x2a,0x61,0x95,0x14,0x61, +0x05,0x93,0xf9,0x22,0x6d,0x2d,0x6f,0xc3,0xd2,0x0f,0x4a,0x12,0xd6,0x79,0xf6,0x43, +0x8f,0x89,0xeb,0x49,0x90,0x83,0x51,0x90,0x3c,0x21,0x8c,0x0b,0x88,0x96,0x58,0x44, +0x0b,0x4a,0xf8,0x94,0xe9,0x2b,0x45,0x93,0x7a,0xc9,0xd8,0x43,0xb3,0x6b,0x6e,0x7c, +0x0a,0xa1,0x82,0xaf,0xb0,0x23,0x66,0x5d,0x2b,0x48,0xb8,0x34,0xf5,0x68,0x9a,0xd2, +0xfd,0x0f,0xa1,0x04,0x35,0x2b,0x37,0x49,0x29,0x57,0xb1,0x25,0x7c,0x69,0xdc,0x15, +0xbc,0x0e,0xc5,0xa3,0x32,0xad,0xa6,0x02,0xf7,0x24,0x93,0x68,0x92,0x66,0x84,0xa8, +0xa9,0x48,0xb8,0x8e,0xcc,0x2b,0xd6,0xf8,0x36,0xb7,0x19,0xa8,0x33,0x61,0xb2,0xf8, +0x0d,0x1b,0x8a,0xe1,0x2e,0xf2,0xfd,0xb0,0xec,0xc0,0xc0,0x39,0xfe,0x6d,0x07,0x4f, +0xbb,0x54,0xfb,0xf4,0xc8,0xb1,0xbf,0xc1,0x1b,0x07,0xdb,0x38,0xeb,0xfa,0xb3,0xf9, +0x99,0x49,0xab,0x99,0xd2,0x69,0x3b,0xaa,0x6a,0x41,0xcd,0xfa,0x5b,0xbf,0x9b,0x6b, +0x71,0x05,0xbd,0xae,0x98,0x04,0xa9,0x98,0x6b,0xbd,0xaa,0xee,0x5b,0x6b,0xbb,0xdc, +0x60,0x60,0xb2,0xde,0x12,0x90,0x89,0x8b,0xc7,0xe0,0xa2,0xfe,0x5a,0x8f,0x18,0xc6, +0x8c,0xfd,0x38,0x2f,0xd9,0x91,0x2d,0x6f,0xa9,0xab,0xe8,0x8f,0x76,0xd3,0x15,0x71, +0x8b,0xa0,0xf3,0x8d,0x6c,0x20,0x4a,0x9b,0x67,0xe2,0x64,0x9f,0x59,0x27,0x7a,0x86, +0xc9,0x01,0xe4,0x9a,0x3d,0x3d,0x4e,0x92,0x44,0xdd,0xf4,0xba,0x79,0xfb,0xbc,0xe7, +0x2f,0x4e,0x98,0x4f,0x46,0xd4,0x7c,0xae,0x68,0xda,0x24,0x4a,0x61,0x3c,0xd6,0x72, +0x2c,0x1f,0x9f,0x84,0x93,0x72,0x75,0xba,0x10,0x5d,0x8f,0x47,0xc3,0x2a,0xb9,0xf3, +0xaf,0x6c,0x52,0xf5,0xb7,0x98,0xcd,0x53,0x00,0x48,0x62,0x31,0x9a,0x7a,0xa3,0x30, +0xa2,0x0b,0xfe,0x26,0xb0,0x1c,0x2c,0x62,0xb6,0xcf,0xb4,0x44,0xce,0x79,0xc8,0x96, +0x3f,0x54,0xb4,0x56,0x36,0x6c,0x3e,0xe0,0x62,0x95,0x54,0x31,0xd2,0xfd,0x5b,0x00, +0x30,0x1e,0x65,0xa7,0xf1,0x89,0x6d,0xf1,0x41,0x3a,0x9f,0x5a,0x51,0x70,0x96,0x42, +0xdc,0x1e,0x97,0xd4,0x10,0x31,0xf5,0xfc,0x64,0xd5,0x5d,0x17,0x52,0xff,0x39,0xb9, +0x89,0xe7,0x34,0x08,0x5f,0xa1,0x15,0x4e,0x5f,0xbd,0xde,0xa1,0x99,0x7e,0x45,0xa5, +0xc2,0x5d,0xd5,0xab,0x42,0x30,0x1a,0x41,0xde,0xc2,0xc7,0xa4,0x1a,0x59,0x3c,0x2c, +0x5f,0x91,0x5c,0x1e,0xc7,0x33,0xca,0xc9,0x83,0xc9,0x34,0x0d,0x5b,0x3b,0x55,0x86, +0xdf,0xb4,0xa9,0x50,0xb0,0x9f,0xa8,0x44,0xe1,0x19,0x67,0x99,0x31,0x01,0x9f,0xff, +0x15,0x15,0xce,0x49,0x9b,0xb4,0xba,0xcc,0xe8,0x88,0xd2,0x0e,0xf8,0x34,0xdb,0x75, +0x50,0x14,0xcc,0x3e,0xb9,0x35,0x3e,0xe6,0x18,0x50,0xbe,0xb8,0x0a,0x72,0x61,0xe5, +0x9c,0xba,0x47,0x2f,0x1b,0xb6,0x7a,0x8b,0xc9,0x4c,0xca,0x1d,0xf2,0x71,0x14,0x56, +0xad,0xf4,0x0f,0xbf,0xfa,0x1f,0x4d,0x0d,0x00,0x1b,0xbf,0xbc,0x35,0xff,0xa9,0xf1, +0x02,0x9b,0x03,0x2e,0xc8,0x91,0xf3,0xca,0x90,0x0d,0x3a,0x44,0x9e,0xd1,0x16,0x74, +0xf2,0x91,0xb6,0x3e,0x36,0x21,0xbc,0x26,0xc5,0xa3,0xde,0x1e,0x54,0x70,0xde,0x02, +0x7a,0x99,0xc1,0x30,0xf5,0xaf,0x9d,0xb1,0xc8,0xc8,0xd1,0x39,0x9d,0xef,0x91,0xe8, +0x54,0x5e,0x1d,0x75,0xfc,0x92,0xd1,0x1b,0x42,0x12,0x55,0xb5,0x01,0x68,0x75,0xbf, +0x27,0x5f,0xd8,0x16,0x12,0xab,0x65,0x80,0xc4,0x10,0xd4,0x04,0x17,0xc4,0x31,0xc1, +0xee,0xb4,0xb6,0x5d,0x95,0x8d,0x78,0xd7,0x69,0xa6,0xc0,0x26,0xd7,0xea,0x55,0xc7, +0xe4,0x38,0x81,0x06,0x3d,0xe4,0x2a,0x01,0xad,0xb7,0x89,0xe5,0xd3,0xe2,0x91,0x6c, +0x80,0x52,0x97,0xd3,0xfc,0x93,0x33,0x99,0x2c,0x96,0x99,0x33,0x90,0x6c,0x09,0x71, +0x56,0x83,0xba,0x0a,0x34,0x16,0x08,0xc2,0x98,0x07,0x8a,0xbd,0x5b,0xee,0x12,0xe5, +0xfc,0xea,0xd2,0xf6,0x0f,0xe4,0x58,0x3b,0x4e,0xa9,0xf6,0x7e,0x07,0xf2,0x27,0x93, +0x75,0x2b,0x99,0x8d,0x48,0xc2,0x9f,0xc3,0x57,0x87,0x10,0xca,0x7d,0x4c,0xd0,0x68, +0xb5,0x7a,0x54,0x9b,0xb2,0x46,0xfb,0xca,0x6b,0x89,0xb8,0xcf,0xd9,0xa4,0x2e,0xce, +0x35,0xae,0x82,0x0f,0xe5,0xee,0x48,0x5b,0x72,0x33,0x76,0x8c,0xdc,0xa4,0x0a,0x44, +0x0e,0x80,0x4a,0x3c,0x5e,0xed,0x81,0xfe,0x20,0x9b,0xe2,0x8e,0x20,0xe2,0xc0,0x8a, +0x52,0xc4,0xbd,0x44,0x1c,0x86,0x4d,0x47,0xac,0xc8,0x3a,0x8d,0x5c,0xa6,0x94,0x9c, +0x66,0xc5,0x93,0xdd,0x9e,0xcc,0x41,0xf9,0x1b,0xf3,0x4f,0x8f,0x20,0xe0,0x80,0xec, +0xb8,0x9f,0xef,0xc2,0x0b,0xb9,0x30,0xea,0xe6,0x35,0x25,0xb5,0x27,0x81,0x27,0x72, +0xe0,0xfd,0x5d,0x12,0x5e,0xdc,0x64,0xa2,0xc9,0xdc,0xce,0xb3,0x29,0x6a,0xe5,0x87, +0xf3,0x2f,0x7c,0xa4,0xb2,0x41,0xad,0xc1,0x85,0x4e,0xd5,0xb9,0x6d,0xff,0x74,0x5d, +0x00,0x15,0xf3,0xbf,0xb5,0x1c,0x27,0x46,0xc4,0xc3,0xdb,0x4e,0xd4,0x86,0x68,0x3e, +0xca,0x6f,0x9c,0xe1,0x97,0x3c,0x4e,0x52,0xb2,0x7b,0x8c,0x64,0x73,0x85,0xfd,0x2b, +0x2f,0xd7,0xe4,0x34,0xb5,0xbd,0xf6,0x90,0xe5,0x01,0x78,0x74,0xa3,0x1e,0x7d,0xec, +0x9a,0xc3,0xf5,0x25,0x17,0x3e,0xd1,0x81,0x19,0x94,0xb7,0x05,0xd2,0x2d,0xa5,0xfc, +0xd0,0x72,0x2d,0xb5,0xf6,0xf7,0x50,0x03,0xef,0xd8,0xc5,0x0c,0x0a,0x99,0x20,0x02, +0x89,0x1e,0xb3,0x73,0x1d,0x63,0x0c,0x28,0xb8,0x34,0x23,0x80,0x48,0x03,0x89,0xec, +0xd2,0xfb,0xf7,0x0d,0xd4,0x88,0x5e,0x8d,0x4c,0xd4,0xf2,0x15,0xff,0x2d,0x27,0xcb, +0xbd,0x81,0x93,0x0b,0xde,0x04,0x4f,0x8c,0x4f,0x9b,0xaf,0x53,0x62,0xb8,0x50,0xdc, +0x9e,0xd6,0x57,0xec,0xa6,0x04,0xc4,0x9c,0x4c,0x24,0x92,0xdd,0x9c,0x7b,0xb9,0xaa, +0xd6,0xed,0x9e,0xac,0x7f,0x3c,0x16,0xf4,0xf7,0xd1,0x91,0x2e,0x3e,0x27,0xae,0xc4, +0x1f,0x69,0xb4,0xdf,0x9c,0xbb,0x1e,0xbe,0xa3,0x50,0x5d,0x16,0xde,0x42,0x54,0xe7, +0xa8,0x34,0x9f,0x4d,0xbb,0x3f,0x75,0x09,0x63,0x9f,0xf3,0xed,0xae,0xf8,0x7a,0x9c, +0x4e,0x39,0xe7,0xb8,0x1c,0xb9,0x07,0x79,0xe6,0x02,0x40,0x38,0x25,0xf5,0x80,0xfc, +0x04,0x8b,0x40,0x43,0xf1,0xd6,0x4b,0x03,0x46,0xb3,0x07,0xd7,0xd4,0xcd,0x32,0xa0, +0xd5,0xae,0x48,0xe5,0xcc,0xaa,0x00,0x1f,0x3d,0x14,0x08,0x56,0x12,0xbe,0x5f,0x3d, +0x6b,0x46,0xfe,0x77,0x46,0xbd,0xe0,0xdd,0x2c,0xb9,0xc3,0x99,0x3b,0x06,0xad,0x73, +0xea,0x92,0x42,0x28,0x7a,0x67,0x8a,0x0a,0xb9,0xd6,0xe1,0x57,0x92,0xdc,0x9f,0x20, +0x80,0xd0,0x53,0x36,0xb1,0x8f,0x36,0xb8,0xab,0x17,0x83,0x9e,0x54,0xcf,0x48,0xa9, +0x83,0x9e,0xe0,0xaf,0x60,0x33,0x98,0x81,0x28,0x48,0xa6,0x72,0xba,0x76,0xe0,0x23, +0x3d,0x5d,0x92,0x4d,0x2d,0x7d,0x37,0xac,0xc1,0x0c,0xbc,0x16,0xe8,0x97,0x49,0xd5, +0xe4,0x9e,0x36,0xd1,0x9b,0x3f,0xa2,0x56,0x62,0x38,0x19,0x84,0x55,0xc7,0x02,0xfb, +0x70,0x83,0xd8,0x13,0x1e,0x83,0x01,0xac,0x2f,0xd1,0xea,0x08,0x2e,0xc7,0x30,0xa8, +0xdd,0xa6,0x31,0xac,0x11,0x86,0xca,0x94,0x81,0x2a,0xa5,0xde,0x7d,0x32,0xd9,0x35, +0x63,0x4e,0x63,0x72,0xf8,0x4a,0xd3,0xd8,0x56,0xee,0x37,0x57,0x7b,0x0f,0xaf,0x7b, +0x04,0xad,0x1a,0xe4,0x99,0xb0,0xce,0xc0,0xe8,0xd0,0x2d,0xd0,0xf8,0x97,0x9b,0xdb, +0x35,0x05,0x9d,0x44,0x69,0x2c,0xfb,0x16,0xdf,0x11,0x85,0x1f,0x20,0x67,0xfc,0xa1, +0x2a,0xa9,0x0a,0x15,0x65,0xd0,0x23,0x46,0x2d,0xb8,0xaf,0x58,0x8f,0xfc,0x83,0xb8, +0x54,0x95,0x1c,0x4d,0xed,0x22,0x87,0xfa,0x6b,0x71,0xa4,0x7c,0xa8,0x6a,0xda,0x18, +0x43,0x7e,0x40,0x3d,0x8b,0x29,0x8d,0x07,0xe5,0xe9,0x7c,0x44,0xb0,0x9e,0x3e,0x30, +0xdf,0xed,0x11,0x7b,0x36,0x9a,0xee,0x60,0x64,0x75,0xac,0x5b,0x99,0x0a,0xd8,0x35, +0x62,0x0e,0xf2,0xac,0x52,0x11,0xf0,0x22,0x2d,0x59,0x31,0xcb,0xec,0x2d,0x5b,0x20, +0xa0,0x71,0x32,0xf7,0xd8,0xa3,0xda,0x49,0x80,0x1f,0x41,0x5b,0x0d,0x33,0x73,0x31, +0x40,0xb2,0xdb,0xb8,0x5a,0x42,0x9d,0x92,0xbe,0x48,0x26,0xfb,0xd5,0xde,0x22,0x2d, +0x03,0xa8,0x54,0xda,0x50,0xc0,0xdb,0x79,0xbb,0xa9,0x9a,0xdb,0x93,0xd5,0x67,0xc3, +0x17,0x46,0x1a,0xda,0x01,0x41,0x9c,0x01,0x08,0xc8,0xd8,0x45,0x0f,0xda,0xf8,0x9a, +0x73,0x4b,0x93,0xdf,0xd4,0x82,0x7a,0xbb,0x17,0xca,0x85,0x16,0xd0,0xfd,0x6b,0xfc, +0x9d,0x55,0x98,0xa7,0x58,0xa4,0x25,0xd6,0x1a,0x58,0x4a,0x87,0x9b,0xc6,0x52,0x77, +0xc1,0x1b,0xbc,0xbd,0x4c,0x97,0x04,0xce,0x28,0x17,0xc6,0x9d,0xd9,0x87,0x57,0xe8, +0x5e,0xfc,0x99,0x6f,0x41,0x9b,0x1a,0x5e,0x7b,0x14,0x0e,0xcf,0x03,0xd8,0x55,0x0b, +0x5f,0x58,0x14,0x7d,0xb0,0x99,0x4e,0x67,0x4d,0xdb,0xa9,0x90,0xd6,0xa5,0xd0,0xf9, +0x15,0x78,0x1e,0x9f,0x36,0x7a,0x4d,0xb9,0x4e,0x16,0xa7,0x42,0x10,0xe8,0x98,0x89, +0x5d,0xba,0xb8,0x75,0xb7,0x91,0x50,0x45,0x83,0x2f,0xa8,0xd5,0x19,0x5c,0xfc,0xdc, +0x4c,0x84,0x9d,0x4f,0x0d,0x37,0x7e,0xdf,0x4f,0x11,0x98,0xc0,0xfb,0x33,0x98,0xa9, +0xac,0xb5,0x90,0x5e,0x84,0x93,0x0f,0xde,0xa2,0x0d,0x81,0xd5,0x11,0xef,0xb0,0x5d, +0x84,0xf2,0x9c,0x59,0xd0,0x01,0xe8,0x8b,0x1c,0x59,0x4f,0xba,0xc8,0x41,0x37,0xf1, +0x78,0x0d,0xd8,0x74,0xeb,0xe2,0x04,0x26,0x2b,0xe8,0x0d,0x79,0x81,0xbd,0x97,0x55, +0xcf,0x30,0x0f,0xe7,0x65,0x3b,0xaf,0x3a,0xe0,0x6e,0xec,0x54,0xae,0x7a,0x47,0x3b, +0x6f,0x53,0xec,0xcb,0xff,0xd3,0x68,0x50,0x61,0x6d,0x1a,0x03,0x56,0x36,0x57,0x2a, +0x64,0x25,0xf7,0x2e,0x36,0x08,0x69,0xdb,0x5e,0x8e,0xb9,0xda,0x55,0xb8,0xe8,0xc6, +0x78,0xd3,0xec,0x31,0x75,0x3b,0x48,0x99,0xb5,0x86,0x46,0x97,0x74,0xed,0xb2,0x8a, +0xde,0x78,0x27,0x62,0x95,0xad,0x40,0x0d,0xc6,0xc8,0xfc,0x08,0x35,0xc5,0x38,0xcb, +0x23,0xc4,0x99,0x45,0x61,0xe4,0xf1,0xa8,0x33,0xca,0x31,0x96,0x2c,0x67,0x46,0x09, +0x72,0x1b,0x2d,0x35,0xd4,0x50,0xca,0xdb,0x3b,0xf4,0x87,0x4b,0x3e,0x36,0x31,0xf9, +0x7c,0x2c,0x31,0x0e,0xf5,0xf9,0xc9,0x22,0xe9,0x37,0xb2,0x0a,0x4c,0xa5,0xfe,0x45, +0xf8,0x75,0x78,0x31,0x69,0xfc,0x32,0xd6,0x9f,0xf6,0x02,0x8e,0x55,0xa6,0xee,0xaf, +0x44,0x10,0xbb,0x26,0x7d,0x05,0x09,0xd1,0x37,0xb1,0xa1,0x2f,0x7b,0xf8,0x94,0x2b, +0x72,0x74,0xbc,0x24,0xed,0x3e,0x42,0x7c,0xcb,0xab,0x2b,0x4c,0x8e,0x4a,0xb9,0xd9, +0x71,0x85,0x9a,0x2c,0x5d,0x52,0xb2,0x9b,0xdf,0x91,0xea,0x42,0xbf,0x43,0xaa,0xae, +0x7e,0x56,0xd2,0x8e,0xf0,0xa2,0x03,0xb8,0xee,0x32,0xe9,0x45,0x7d,0x78,0xd6,0x62, +0x3a,0x9f,0x9b,0xcd,0x97,0xca,0xa7,0xf8,0x6f,0xf1,0x21,0x40,0xa6,0xbb,0xdd,0xa6, +0xae,0xd4,0xd3,0x0f,0xdf,0xa0,0x13,0x19,0x38,0x8d,0x6c,0x82,0xd7,0xad,0x95,0x26, +0x5f,0x99,0xff,0x86,0x4f,0xf0,0x4f,0xaa,0xc1,0x6f,0x60,0x58,0x50,0x5b,0x59,0xe0, +0x4d,0xb2,0x92,0x52,0xeb,0x6c,0x77,0x8f,0x8e,0x95,0xbc,0x5e,0xbf,0xbc,0x7e,0xa0, +0xa2,0xb8,0x65,0x83,0x84,0xde,0xf5,0x52,0x39,0x59,0xf9,0xa5,0x9f,0xb8,0xd2,0xe0, +0x87,0x10,0xb7,0x95,0x06,0x1e,0x67,0xac,0xe3,0x78,0x2d,0xa4,0xea,0xa2,0xbf,0xf5, +0x59,0x9d,0xda,0x73,0x4a,0x1b,0x78,0xe5,0xc7,0x5c,0x4c,0x74,0x7e,0xfe,0xac,0x3a, +0xf0,0xd4,0x92,0xd1,0x96,0x2a,0x75,0x80,0xc4,0xd3,0x54,0xdb,0xf2,0xa4,0x52,0xee, +0x56,0xc7,0x45,0xb4,0xd0,0x65,0x74,0x01,0x64,0xde,0x71,0x63,0x9d,0xb1,0xce,0x63, +0x7b,0x34,0x59,0xb5,0x4c,0x1a,0x75,0x54,0x44,0xd1,0x15,0xdf,0x70,0x26,0x47,0x74, +0x2a,0x83,0xea,0xfe,0xbc,0xae,0xd6,0x56,0xb0,0x23,0x90,0x76,0x40,0xfe,0x08,0x3e, +0x24,0x3d,0x96,0x61,0xd4,0xea,0x3a,0x41,0x8c,0x7a,0x64,0x66,0xa9,0xe8,0x3d,0x0f, +0xc7,0xec,0x37,0xfc,0x82,0x1b,0x7c,0xd8,0xce,0x5b,0x14,0x56,0x5d,0xb8,0xfb,0xdf, +0xd6,0x92,0x7b,0x61,0x54,0x18,0xa8,0x41,0xeb,0x71,0x18,0x96,0x8a,0x5d,0x45,0x7e, +0xf6,0x7f,0xb0,0xf3,0xd5,0xf8,0x7e,0xa7,0x0d,0x9c,0xcc,0x06,0xaa,0x33,0x54,0x29, +0x19,0x32,0x4a,0xbc,0xc8,0xd8,0x3c,0x18,0xed,0x95,0xa7,0x01,0x7b,0x76,0xc6,0x63, +0x32,0xad,0xd9,0x7f,0xc8,0x11,0x0f,0x69,0xef,0x86,0x37,0xa3,0x15,0xbc,0xba,0x9c, +0x46,0xec,0xd7,0xe6,0x44,0x62,0xe8,0x19,0x6d,0x97,0xcd,0xff,0xff,0xff,0x3a,0xf3, +0x78,0xaf,0x27,0xfd,0x43,0x3b,0x08,0xd3,0x32,0x02,0x90,0x24,0x50,0x60,0x99,0xec, +0xcb,0xfa,0x30,0xfb,0x6e,0x28,0xc1,0x07,0x7e,0x48,0x98,0x34,0x51,0x61,0x12,0xf2, +0xbc,0xad,0xbf,0x63,0x27,0x32,0x48,0xae,0xe1,0x00,0x91,0x25,0xd0,0x62,0x11,0x2a, +0xd2,0x96,0x52,0x22,0x95,0x09,0x3f,0x85,0xb3,0x01,0x99,0x35,0xd1,0x63,0x40,0x40, +0x02,0x04,0xc0,0x44,0x12,0x24,0x50,0x60,0x42,0x44,0xd0,0x64,0x52,0x64,0x48,0x50, +0x03,0x05,0xc8,0x54,0x13,0x25,0x58,0x70,0x43,0x45,0xd8,0x74,0x53,0x65,0x41,0x41, +0x82,0x06,0xc1,0x45,0x92,0x26,0x51,0x61,0xc2,0x46,0xd1,0x65,0xd2,0x66,0x49,0x51, +0x83,0x07,0xc9,0x55,0x93,0x27,0x59,0x71,0xc3,0x47,0xd9,0x75,0xd3,0x67,0xcf,0x8c, +0x43,0x4a,0xf7,0x4b,0xed,0xa1,0x4b,0xa7,0x69,0x88,0x92,0x2c,0x58,0x68,0x2d,0x35, +0xd9,0x58,0x8b,0x5b,0xf8,0xdf,0x1e,0xda,0x6d,0xfc,0x9a,0x3c,0x59,0x69,0xa4,0x30, +0x5c,0x9b,0xa3,0x9f,0x18,0x20,0x73,0x37,0xc5,0xc1,0x93,0x2d,0xd8,0x6a,0xb0,0x5b, +0x28,0xf6,0x74,0x6f,0x4f,0xf4,0x4d,0x03,0xab,0xb0,0x9b,0x3d,0xd9,0x6b,0x42,0x48, +0x0a,0x0c,0xc2,0x4c,0x1a,0x2c,0x52,0x68,0x4a,0x4c,0xd2,0x6c,0x5a,0x6c,0x4a,0x58, +0x0b,0x0d,0xca,0x5c,0x1b,0x2d,0x5a,0x78,0x4b,0x4d,0xda,0x7c,0x5b,0x6d,0x43,0x49, +0x8a,0x0e,0xc3,0x4d,0x9a,0x2e,0x53,0x69,0xca,0x4e,0xd3,0x6d,0xda,0x6e,0x4b,0x59, +0x8b,0x0f,0xcb,0x5d,0x9b,0x2f,0x5b,0x79,0xcb,0x4f,0xdb,0x7d,0xdb,0x6f,0x5e,0xae, +0x83,0x75,0x84,0x84,0x30,0x30,0x4a,0xdb,0x53,0x42,0x94,0xa4,0x70,0x70,0xb7,0x72, +0x8d,0xec,0x8c,0x94,0x31,0x31,0x64,0x32,0xb5,0x72,0x9c,0xb4,0x71,0x71,0x5f,0x50, +0x03,0x77,0x85,0x85,0xb0,0x32,0xad,0x23,0x34,0xe9,0x95,0xa5,0xf0,0x72,0x75,0xb6, +0x54,0x1c,0x8d,0x95,0xb1,0x33,0x25,0x33,0x35,0x07,0x9d,0xb5,0xf1,0x73,0x44,0xc0, +0x22,0x14,0xc4,0xc4,0x32,0x34,0x54,0xe0,0x62,0x54,0xd4,0xe4,0x72,0x74,0x4c,0xd0, +0x23,0x15,0xcc,0xd4,0x33,0x35,0x5c,0xf0,0x63,0x55,0xdc,0xf4,0x73,0x75,0x45,0xc1, +0xa2,0x16,0xc5,0xc5,0xb2,0x36,0x55,0xe1,0xe2,0x56,0xd5,0xe5,0xf2,0x76,0x4d,0xd1, +0xa3,0x17,0xcd,0xd5,0xb3,0x37,0x5d,0xf1,0xe3,0x57,0xdd,0xf5,0xf3,0x77,0xb2,0xf7, +0x8b,0xc3,0x86,0x8c,0x38,0x38,0x6e,0x2a,0xbc,0x30,0x96,0xac,0x78,0x78,0x8c,0x1c, +0x7e,0x4d,0x8e,0x9c,0x39,0x39,0x24,0x47,0x6f,0xa3,0x9e,0xbc,0x79,0x79,0x27,0x74, +0xc0,0xa1,0x87,0x8d,0xb8,0x3a,0x2f,0x1b,0xe0,0xfa,0x97,0xad,0xf8,0x7a,0xb0,0x6b, +0xe9,0x1d,0x8f,0x9d,0xb9,0x3b,0x1c,0x9d,0x39,0xca,0x9f,0xbd,0xf9,0x7b,0x46,0xc8, +0x2a,0x1c,0xc6,0xcc,0x3a,0x3c,0x56,0xe8,0x6a,0x5c,0xd6,0xec,0x7a,0x7c,0x4e,0xd8, +0x2b,0x1d,0xce,0xdc,0x3b,0x3d,0x5e,0xf8,0x6b,0x5d,0xde,0xfc,0x7b,0x7d,0x47,0xc9, +0xaa,0x1e,0xc7,0xcd,0xba,0x3e,0x57,0xe9,0xea,0x5e,0xd7,0xed,0xfa,0x7e,0x4f,0xd9, +0xab,0x1f,0xcf,0xdd,0xbb,0x3f,0x5f,0xf9,0xeb,0x5f,0xdf,0xfd,0xfb,0x7f,0x08,0x60, +0xf0,0xfa,0x30,0x22,0x14,0xa0,0x34,0xa6,0x4c,0xd8,0xb0,0x26,0x54,0xe0,0x01,0x60, +0xbe,0x9e,0xa8,0x16,0x15,0xa1,0x06,0xea,0x25,0xe1,0xb8,0x36,0x55,0xe1,0x96,0xdb, +0x82,0x29,0xa1,0x07,0x94,0xa2,0xea,0x14,0xbb,0xcb,0xb1,0x27,0xd4,0xe2,0x41,0x71, +0x7a,0x8d,0xa9,0x17,0x95,0xa3,0x46,0x41,0xaf,0xb9,0xb9,0x37,0xd5,0xe3,0x60,0x42, +0x06,0x84,0xe0,0x46,0x16,0xa4,0x70,0x62,0x46,0xc4,0xf0,0x66,0x56,0xe4,0x68,0x52, +0x07,0x85,0xe8,0x56,0x17,0xa5,0x78,0x72,0x47,0xc5,0xf8,0x76,0x57,0xe5,0x61,0x43, +0x86,0x86,0xe1,0x47,0x96,0xa6,0x71,0x63,0xc6,0xc6,0xf1,0x67,0xd6,0xe6,0x69,0x53, +0x87,0x87,0xe9,0x57,0x97,0xa7,0x79,0x73,0xc7,0xc7,0xf9,0x77,0xd7,0xe7,0x1a,0xf4, +0x0a,0xe8,0xa2,0x0e,0x1c,0xa8,0x49,0xae,0x07,0x8a,0xb2,0x2e,0x5c,0xe8,0x39,0x01, +0x31,0x1d,0xaa,0x1e,0x1d,0xa9,0x21,0x3f,0xac,0xcf,0xba,0x3e,0x5d,0xe9,0x39,0x14, +0xf4,0x5e,0xa3,0x0f,0x9c,0xaa,0x8c,0x77,0xe8,0x61,0xb3,0x2f,0xdc,0xea,0xba,0x99, +0x0d,0x2a,0xab,0x1f,0x9d,0xab,0x98,0x7e,0x6e,0x89,0xbb,0x3f,0xdd,0xeb,0x62,0x4a, +0x0e,0x8c,0xe2,0x4e,0x1e,0xac,0x72,0x6a,0x4e,0xcc,0xf2,0x6e,0x5e,0xec,0x6a,0x5a, +0x0f,0x8d,0xea,0x5e,0x1f,0xad,0x7a,0x7a,0x4f,0xcd,0xfa,0x7e,0x5f,0xed,0x63,0x4b, +0x8e,0x8e,0xe3,0x4f,0x9e,0xae,0x73,0x6b,0xce,0xce,0xf3,0x6f,0xde,0xee,0x6b,0x5b, +0x8f,0x8f,0xeb,0x5f,0x9f,0xaf,0x7b,0x7b,0xcf,0xcf,0xfb,0x7f,0xdf,0xef,0x04,0xaf, +0x87,0xd1,0xa4,0x86,0x34,0xb0,0x13,0x9b,0x62,0x7a,0xb4,0xa6,0x74,0xf0,0xec,0x63, +0xdf,0x10,0xac,0x96,0x35,0xb1,0x6c,0xa9,0x19,0x45,0xbc,0xb6,0x75,0xf1,0x86,0x33, +0x78,0x31,0xa5,0x87,0xb4,0xb2,0xf5,0xbc,0xce,0x06,0xb5,0xa7,0xf4,0xf2,0x09,0x6c, +0x44,0x40,0xad,0x97,0xb5,0xb3,0xae,0x8d,0x95,0x26,0xbd,0xb7,0xf5,0xf3,0x64,0xc2, +0x26,0x94,0xe4,0xc6,0x36,0xb4,0x74,0xe2,0x66,0xd4,0xf4,0xe6,0x76,0xf4,0x6c,0xd2, +0x27,0x95,0xec,0xd6,0x37,0xb5,0x7c,0xf2,0x67,0xd5,0xfc,0xf6,0x77,0xf5,0x65,0xc3, +0xa6,0x96,0xe5,0xc7,0xb6,0xb6,0x75,0xe3,0xe6,0xd6,0xf5,0xe7,0xf6,0xf6,0x6d,0xd3, +0xa7,0x97,0xed,0xd7,0xb7,0xb7,0x7d,0xf3,0xe7,0xd7,0xfd,0xf7,0xf7,0xf7,0xdd,0xf5, +0x1f,0x78,0xa6,0x8e,0x3c,0xb8,0x21,0x2e,0x07,0xc4,0xb6,0xae,0x7c,0xf8,0xea,0x50, +0x96,0x36,0xae,0x9e,0x3d,0xb9,0x6a,0x84,0x4f,0x9b,0xbe,0xbe,0x7d,0xf9,0x8c,0xcc, +0xa2,0x46,0xa7,0x8f,0xbc,0xba,0x0d,0x40,0x5f,0x2f,0xb7,0xaf,0xfc,0xfa,0xfd,0x77, +0x41,0xe0,0xaf,0x9f,0xbd,0xbb,0xbb,0xcb,0xc9,0x40,0xbf,0xbf,0xfd,0xfb,0x66,0xca, +0x2e,0x9c,0xe6,0xce,0x3e,0xbc,0x76,0xea,0x6e,0xdc,0xf6,0xee,0x7e,0xfc,0x6e,0xda, +0x2f,0x9d,0xee,0xde,0x3f,0xbd,0x7e,0xfa,0x6f,0xdd,0xfe,0xfe,0x7f,0xfd,0x67,0xcb, +0xae,0x9e,0xe7,0xcf,0xbe,0xbe,0x77,0xeb,0xee,0xde,0xf7,0xef,0xfe,0xfe,0x6f,0xdb, +0xaf,0x9f,0xef,0xdf,0xbf,0xbf,0x7f,0xfb,0xef,0xdf,0xff,0xff,0xff,0xff,0x00,0x00, +0x00,0x00,0x80,0x04,0x10,0x20,0x10,0x20,0x40,0x40,0x90,0x24,0x50,0x60,0x08,0x10, +0x01,0x01,0x88,0x14,0x11,0x21,0x18,0x30,0x41,0x41,0x98,0x34,0x51,0x61,0x01,0x01, +0x80,0x02,0x81,0x05,0x90,0x22,0x11,0x21,0xc0,0x42,0x91,0x25,0xd0,0x62,0x09,0x11, +0x81,0x03,0x89,0x15,0x91,0x23,0x19,0x31,0xc1,0x43,0x99,0x35,0xd1,0x63,0x40,0x40, +0x02,0x04,0xc0,0x44,0x12,0x24,0x50,0x60,0x42,0x44,0xd0,0x64,0x52,0x64,0x48,0x50, +0x03,0x05,0xc8,0x54,0x13,0x25,0x58,0x70,0x43,0x45,0xd8,0x74,0x53,0x65,0x41,0x41, +0x82,0x06,0xc1,0x45,0x92,0x26,0x51,0x61,0xc2,0x46,0xd1,0x65,0xd2,0x66,0x49,0x51, +0x83,0x07,0xc9,0x55,0x93,0x27,0x59,0x71,0xc3,0x47,0xd9,0x75,0xd3,0x67,0x02,0x08, +0x08,0x08,0x82,0x0c,0x18,0x28,0x12,0x28,0x48,0x48,0x92,0x2c,0x58,0x68,0x0a,0x18, +0x09,0x09,0x8a,0x1c,0x19,0x29,0x1a,0x38,0x49,0x49,0x9a,0x3c,0x59,0x69,0x03,0x09, +0x88,0x0a,0x83,0x0d,0x98,0x2a,0x13,0x29,0xc8,0x4a,0x93,0x2d,0xd8,0x6a,0x0b,0x19, +0x89,0x0b,0x8b,0x1d,0x99,0x2b,0x1b,0x39,0xc9,0x4b,0x9b,0x3d,0xd9,0x6b,0x42,0x48, +0x0a,0x0c,0xc2,0x4c,0x1a,0x2c,0x52,0x68,0x4a,0x4c,0xd2,0x6c,0x5a,0x6c,0x4a,0x58, +0x0b,0x0d,0xca,0x5c,0x1b,0x2d,0x5a,0x78,0x4b,0x4d,0xda,0x7c,0x5b,0x6d,0x43,0x49, +0x8a,0x0e,0xc3,0x4d,0x9a,0x2e,0x53,0x69,0xca,0x4e,0xd3,0x6d,0xda,0x6e,0x4b,0x59, +0x8b,0x0f,0xcb,0x5d,0x9b,0x2f,0x5b,0x79,0xcb,0x4f,0xdb,0x7d,0xdb,0x6f,0x04,0x80, +0x20,0x10,0x84,0x84,0x30,0x30,0x14,0xa0,0x60,0x50,0x94,0xa4,0x70,0x70,0x0c,0x90, +0x21,0x11,0x8c,0x94,0x31,0x31,0x1c,0xb0,0x61,0x51,0x9c,0xb4,0x71,0x71,0x05,0x81, +0xa0,0x12,0x85,0x85,0xb0,0x32,0x15,0xa1,0xe0,0x52,0x95,0xa5,0xf0,0x72,0x0d,0x91, +0xa1,0x13,0x8d,0x95,0xb1,0x33,0x1d,0xb1,0xe1,0x53,0x9d,0xb5,0xf1,0x73,0x44,0xc0, +0x22,0x14,0xc4,0xc4,0x32,0x34,0x54,0xe0,0x62,0x54,0xd4,0xe4,0x72,0x74,0x4c,0xd0, +0x23,0x15,0xcc,0xd4,0x33,0x35,0x5c,0xf0,0x63,0x55,0xdc,0xf4,0x73,0x75,0x45,0xc1, +0xa2,0x16,0xc5,0xc5,0xb2,0x36,0x55,0xe1,0xe2,0x56,0xd5,0xe5,0xf2,0x76,0x4d,0xd1, +0xa3,0x17,0xcd,0xd5,0xb3,0x37,0x5d,0xf1,0xe3,0x57,0xdd,0xf5,0xf3,0x77,0x06,0x88, +0x28,0x18,0x86,0x8c,0x38,0x38,0x16,0xa8,0x68,0x58,0x96,0xac,0x78,0x78,0x0e,0x98, +0x29,0x19,0x8e,0x9c,0x39,0x39,0x1e,0xb8,0x69,0x59,0x9e,0xbc,0x79,0x79,0x07,0x89, +0xa8,0x1a,0x87,0x8d,0xb8,0x3a,0x17,0xa9,0xe8,0x5a,0x97,0xad,0xf8,0x7a,0x0f,0x99, +0xa9,0x1b,0x8f,0x9d,0xb9,0x3b,0x1f,0xb9,0xe9,0x5b,0x9f,0xbd,0xf9,0x7b,0x46,0xc8, +0x2a,0x1c,0xc6,0xcc,0x3a,0x3c,0x56,0xe8,0x6a,0x5c,0xd6,0xec,0x7a,0x7c,0x4e,0xd8, +0x2b,0x1d,0xce,0xdc,0x3b,0x3d,0x5e,0xf8,0x6b,0x5d,0xde,0xfc,0x7b,0x7d,0x47,0xc9, +0xaa,0x1e,0xc7,0xcd,0xba,0x3e,0x57,0xe9,0xea,0x5e,0xd7,0xed,0xfa,0x7e,0x4f,0xd9, +0xab,0x1f,0xcf,0xdd,0xbb,0x3f,0x5f,0xf9,0xeb,0x5f,0xdf,0xfd,0xfb,0x7f,0x20,0x02, +0x04,0x80,0xa0,0x06,0x14,0xa0,0x30,0x22,0x44,0xc0,0xb0,0x26,0x54,0xe0,0x28,0x12, +0x05,0x81,0xa8,0x16,0x15,0xa1,0x38,0x32,0x45,0xc1,0xb8,0x36,0x55,0xe1,0x21,0x03, +0x84,0x82,0xa1,0x07,0x94,0xa2,0x31,0x23,0xc4,0xc2,0xb1,0x27,0xd4,0xe2,0x29,0x13, +0x85,0x83,0xa9,0x17,0x95,0xa3,0x39,0x33,0xc5,0xc3,0xb9,0x37,0xd5,0xe3,0x60,0x42, +0x06,0x84,0xe0,0x46,0x16,0xa4,0x70,0x62,0x46,0xc4,0xf0,0x66,0x56,0xe4,0x68,0x52, +0x07,0x85,0xe8,0x56,0x17,0xa5,0x78,0x72,0x47,0xc5,0xf8,0x76,0x57,0xe5,0x61,0x43, +0x86,0x86,0xe1,0x47,0x96,0xa6,0x71,0x63,0xc6,0xc6,0xf1,0x67,0xd6,0xe6,0x69,0x53, +0x87,0x87,0xe9,0x57,0x97,0xa7,0x79,0x73,0xc7,0xc7,0xf9,0x77,0xd7,0xe7,0x22,0x0a, +0x0c,0x88,0xa2,0x0e,0x1c,0xa8,0x32,0x2a,0x4c,0xc8,0xb2,0x2e,0x5c,0xe8,0x2a,0x1a, +0x0d,0x89,0xaa,0x1e,0x1d,0xa9,0x3a,0x3a,0x4d,0xc9,0xba,0x3e,0x5d,0xe9,0x23,0x0b, +0x8c,0x8a,0xa3,0x0f,0x9c,0xaa,0x33,0x2b,0xcc,0xca,0xb3,0x2f,0xdc,0xea,0x2b,0x1b, +0x8d,0x8b,0xab,0x1f,0x9d,0xab,0x3b,0x3b,0xcd,0xcb,0xbb,0x3f,0xdd,0xeb,0x62,0x4a, +0x0e,0x8c,0xe2,0x4e,0x1e,0xac,0x72,0x6a,0x4e,0xcc,0xf2,0x6e,0x5e,0xec,0x6a,0x5a, +0x0f,0x8d,0xea,0x5e,0x1f,0xad,0x7a,0x7a,0x4f,0xcd,0xfa,0x7e,0x5f,0xed,0x63,0x4b, +0x8e,0x8e,0xe3,0x4f,0x9e,0xae,0x73,0x6b,0xce,0xce,0xf3,0x6f,0xde,0xee,0x6b,0x5b, +0x8f,0x8f,0xeb,0x5f,0x9f,0xaf,0x7b,0x7b,0xcf,0xcf,0xfb,0x7f,0xdf,0xef,0x24,0x82, +0x24,0x90,0xa4,0x86,0x34,0xb0,0x34,0xa2,0x64,0xd0,0xb4,0xa6,0x74,0xf0,0x2c,0x92, +0x25,0x91,0xac,0x96,0x35,0xb1,0x3c,0xb2,0x65,0xd1,0xbc,0xb6,0x75,0xf1,0x25,0x83, +0xa4,0x92,0xa5,0x87,0xb4,0xb2,0x35,0xa3,0xe4,0xd2,0xb5,0xa7,0xf4,0xf2,0x2d,0x93, +0xa5,0x93,0xad,0x97,0xb5,0xb3,0x3d,0xb3,0xe5,0xd3,0xbd,0xb7,0xf5,0xf3,0x64,0xc2, +0x26,0x94,0xe4,0xc6,0x36,0xb4,0x74,0xe2,0x66,0xd4,0xf4,0xe6,0x76,0xf4,0x6c,0xd2, +0x27,0x95,0xec,0xd6,0x37,0xb5,0x7c,0xf2,0x67,0xd5,0xfc,0xf6,0x77,0xf5,0x65,0xc3, +0xa6,0x96,0xe5,0xc7,0xb6,0xb6,0x75,0xe3,0xe6,0xd6,0xf5,0xe7,0xf6,0xf6,0x6d,0xd3, +0xa7,0x97,0xed,0xd7,0xb7,0xb7,0x7d,0xf3,0xe7,0xd7,0xfd,0xf7,0xf7,0xf7,0x26,0x8a, +0x2c,0x98,0xa6,0x8e,0x3c,0xb8,0x36,0xaa,0x6c,0xd8,0xb6,0xae,0x7c,0xf8,0x2e,0x9a, +0x2d,0x99,0xae,0x9e,0x3d,0xb9,0x3e,0xba,0x6d,0xd9,0xbe,0xbe,0x7d,0xf9,0x27,0x8b, +0xac,0x9a,0xa7,0x8f,0xbc,0xba,0x37,0xab,0xec,0xda,0xb7,0xaf,0xfc,0xfa,0x2f,0x9b, +0xad,0x9b,0xaf,0x9f,0xbd,0xbb,0x3f,0xbb,0xed,0xdb,0xbf,0xbf,0xfd,0xfb,0x66,0xca, +0x2e,0x9c,0xe6,0xce,0x3e,0xbc,0x76,0xea,0x6e,0xdc,0xf6,0xee,0x7e,0xfc,0x6e,0xda, +0x2f,0x9d,0xee,0xde,0x3f,0xbd,0x7e,0xfa,0x6f,0xdd,0xfe,0xfe,0x7f,0xfd,0x67,0xcb, +0xae,0x9e,0xe7,0xcf,0xbe,0xbe,0x77,0xeb,0xee,0xde,0xf7,0xef,0xfe,0xfe,0x6f,0xdb, +0xaf,0x9f,0xef,0xdf,0xbf,0xbf,0x7f,0xfb,0xef,0xdf,0xff,0xff,0x68,0x13,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,0xff,0x80,0x00, +0x55,0x40,0xa9,0x57,0x94,0x3c,0x0f,0x02,0x2b,0xfa,0xca,0x0a,0xf3,0x2e,0x88,0x98, +0x01,0x41,0x67,0x7f,0xc6,0xcc,0x46,0x33,0xbe,0x01,0x60,0xb0,0x58,0x10,0x01,0x80, +0x05,0x42,0x28,0x56,0x1c,0x7e,0x0a,0xd0,0x58,0x42,0x83,0x57,0xe3,0x92,0x09,0x95, +0x22,0x66,0xa9,0xab,0x14,0xa2,0x19,0x7a,0xc5,0x63,0x31,0x0a,0xd7,0xd8,0xe8,0xe2, +0xdd,0x5b,0xfe,0xe0,0x73,0x04,0x80,0x23,0xb9,0xe9,0x10,0xe1,0x5d,0x65,0xe8,0x43, +0x2d,0x61,0x96,0xf0,0x1b,0x88,0x74,0x97,0x45,0xd6,0xaa,0x70,0x4b,0x0b,0xe9,0xf2, +0x4a,0x85,0x99,0x41,0x1b,0x99,0x18,0x41,0x67,0x06,0xe9,0x4d,0x3b,0xf6,0x92,0x53, +0xfc,0x87,0x05,0xd0,0x95,0xa5,0x1f,0x6e,0xe5,0x6b,0x19,0xe5,0x62,0x6f,0x92,0xac, +0x2e,0x48,0xdd,0x44,0x67,0x08,0x91,0x5a,0xc6,0x2d,0xf7,0xae,0x51,0x05,0x0a,0x18, +0x09,0x49,0x86,0x62,0xb8,0xa3,0x12,0x3d,0xae,0x4d,0xfa,0xfc,0x95,0xe2,0xda,0x97, +0xae,0x49,0x43,0x75,0x2d,0x2c,0x6a,0x5b,0x46,0x2f,0xab,0x7d,0xdc,0x65,0xc9,0x49, +0x89,0x0b,0x70,0xff,0x35,0xa0,0x1f,0xdf,0xd9,0xb5,0x99,0xdf,0x5b,0x61,0xaa,0xea, +0xae,0x8b,0x4a,0x3f,0x4e,0x4e,0x2d,0x1b,0x59,0x4d,0x56,0x9d,0x7c,0x4c,0xe2,0xfa, +0xd4,0x82,0x88,0x17,0x78,0x29,0x64,0x75,0x23,0xdd,0x5b,0x6e,0x33,0x5d,0x97,0x6f, +0x64,0x6d,0x07,0x9d,0xe4,0x6c,0xef,0x6d,0x43,0x21,0xed,0x71,0xb1,0x61,0x8b,0x59, +0xdf,0xd1,0xaa,0x9d,0x9f,0x03,0xa4,0x0b,0xe5,0x90,0x24,0x0f,0xf5,0xb0,0x04,0x80, +0x78,0xf8,0xde,0x80,0x93,0x36,0x91,0xa1,0x64,0xd0,0x21,0x62,0x80,0x76,0xde,0xb0, +0x26,0xe9,0xec,0xd0,0x4d,0x3e,0x3c,0x32,0x5e,0xb5,0xe4,0x36,0x78,0xb1,0x4f,0x28, +0x82,0x11,0x8d,0xc9,0xf2,0x3d,0x14,0x21,0xc0,0x5a,0x99,0xb0,0x93,0xb2,0x02,0x1d, +0x24,0xe6,0xed,0xd1,0xc5,0xbe,0x27,0x4d,0xe9,0x35,0xe5,0x37,0xf8,0xd3,0x97,0xd0, +0x3a,0xce,0xe8,0x23,0x4d,0x14,0xd3,0x10,0x52,0xf5,0xab,0x60,0x3e,0x47,0x12,0xa1, +0x27,0x71,0x1c,0x3c,0x1f,0x78,0x9c,0x94,0x07,0xa2,0xf0,0x13,0x9a,0x9f,0xc1,0x6c, +0x8f,0x56,0x05,0x09,0xae,0xc2,0x01,0x0b,0x47,0xa9,0xdd,0xe1,0x7b,0xc9,0x52,0xd5, +0x29,0xee,0x32,0xee,0xa3,0x75,0x59,0xf5,0x63,0xd5,0xcd,0x92,0xf7,0x5b,0xc6,0x71, +0xb2,0x1e,0xfe,0x61,0x18,0x87,0x0e,0x12,0xc4,0xa7,0xcc,0xb1,0xdb,0x7e,0x8e,0x12, +0x08,0xab,0xae,0x18,0x31,0x67,0x1b,0x68,0x37,0x86,0x54,0x34,0xad,0x5a,0xac,0x94, +0x09,0x01,0xdc,0xcf,0x47,0xe1,0x5d,0x14,0xca,0xf7,0x9b,0xbd,0x5b,0x3a,0x56,0x66, +0x48,0xd4,0xd0,0xbd,0xca,0x3b,0x25,0x3e,0x45,0x52,0x38,0x19,0x29,0x18,0x40,0xe4, +0x05,0x9c,0x99,0xa9,0xc7,0x5e,0x68,0x49,0xe7,0xfa,0x2a,0x68,0x36,0x7c,0x90,0xcc, +0xde,0x46,0x71,0x9e,0x9a,0x26,0x49,0xc9,0x41,0x42,0x1e,0x78,0xf1,0x13,0x95,0x3d, +0xa6,0xaf,0x03,0x1d,0xc4,0xc1,0x54,0x29,0xec,0xd5,0x3b,0x72,0xf9,0x9e,0x4d,0xc7, +0x2f,0x9f,0xdd,0xbb,0x40,0xca,0xe7,0x06,0xed,0x16,0x38,0xbd,0xf7,0xd4,0x20,0x02, +0x04,0xc0,0x27,0xe4,0x96,0x88,0x4a,0x20,0x7c,0x4d,0x12,0xc4,0xd6,0xa8,0x28,0x12, +0x05,0xc1,0xd0,0x64,0x97,0x85,0xbe,0x02,0x15,0xdd,0xba,0xd4,0x53,0x5a,0xe7,0x6c, +0x84,0x82,0x1a,0x65,0xd5,0xe2,0xd5,0x04,0x77,0x48,0x60,0x55,0x77,0x87,0x29,0x87, +0x85,0x83,0x38,0xf5,0x17,0xa9,0x95,0x96,0x04,0x49,0x52,0xca,0xeb,0xa1,0x5f,0x8d, +0xbf,0xc8,0x9f,0x35,0x3c,0x2d,0xdc,0x1d,0x84,0xa4,0x30,0xe2,0xa0,0xa6,0xd7,0xaf, +0x17,0xe6,0x97,0xa5,0x31,0x89,0x58,0xb2,0x4b,0x6e,0x99,0xb6,0x5b,0x4e,0x11,0x85, +0x2c,0xc7,0x65,0x27,0x92,0x8a,0xca,0x13,0x46,0x40,0xb3,0x2d,0xb5,0xe2,0x89,0xe5, +0x00,0x80,0x96,0x24,0x84,0xa6,0xa9,0x72,0xc1,0xcc,0x29,0x76,0xe4,0xf6,0x22,0x0a, +0x0c,0xc8,0x44,0x6c,0x7d,0xfd,0xb5,0x7a,0x6c,0xd4,0x25,0xc0,0x37,0xff,0x2a,0x1a, +0x0d,0xc9,0x0e,0x7c,0x5c,0xb9,0xf0,0x38,0x45,0x01,0xb2,0xd8,0x3e,0xc9,0x23,0x9e, +0x8c,0x8a,0xbb,0xca,0x1e,0x82,0x97,0x6b,0x8c,0x45,0xb0,0xe9,0x6c,0xec,0x72,0xc8, +0x8d,0x8b,0xd3,0x9d,0x9c,0xd3,0xc1,0xe4,0x2c,0xcf,0xc3,0x79,0x29,0xa5,0xca,0xe8, +0xd1,0x63,0xd8,0x4a,0x97,0xc3,0xf4,0xd5,0x46,0xac,0x4a,0x95,0xbf,0x13,0x14,0xff, +0xf2,0xcf,0x3a,0x1d,0xe4,0x00,0x04,0xdb,0xa6,0xee,0x7d,0x96,0x6f,0xa0,0xf3,0x39, +0x65,0xcd,0x23,0x1a,0xa7,0x5a,0x2d,0xcf,0xc6,0x43,0x33,0x7a,0xe4,0xe6,0xab,0xf3, +0x83,0xd3,0xa2,0x7f,0x3e,0xef,0xd7,0xe8,0xd3,0xc5,0x04,0x0c,0xcb,0x6d,0x4d,0x79, +0xa6,0xb4,0x7b,0x86,0x43,0xbc,0x30,0xbe,0xb9,0x5a,0x93,0x16,0xf3,0x57,0xa3,0xe0, +0x86,0xf4,0x27,0xf6,0x25,0xb7,0x0d,0xf2,0xd7,0x5c,0x63,0x1b,0x73,0xb1,0x2d,0x7e, +0x25,0x49,0x65,0xee,0x76,0x4f,0x1d,0x92,0x45,0xdb,0x1d,0x01,0x71,0xd5,0xc2,0x69, +0x72,0xcc,0xa1,0xe0,0xd6,0x2c,0xd9,0x94,0x52,0x5e,0xac,0xc5,0x0a,0xb1,0xca,0xc5, +0x6e,0x54,0xe5,0x42,0x4d,0xdd,0xe6,0x5d,0x6e,0x74,0x24,0xe7,0x45,0xe5,0x6a,0x95, +0x9b,0x55,0xd4,0x29,0xc2,0xd9,0x79,0xe3,0x4d,0x78,0x66,0x72,0x79,0x0d,0x47,0xd7, +0xf5,0xc3,0x4e,0xb8,0x63,0xb8,0x2b,0x47,0xee,0xd2,0x4d,0x18,0xf0,0xcc,0xff,0x7d, +0xe3,0x52,0x0a,0x17,0xbb,0x1c,0x29,0xb4,0x25,0x77,0xad,0x95,0xf3,0xdb,0x7f,0x8a, +0x53,0x98,0xde,0x8c,0xcb,0xfa,0xd2,0x8d,0xdf,0x55,0x36,0x86,0x80,0xdb,0x55,0x6b, +0x8d,0x45,0x0a,0xfc,0x7e,0x56,0x9e,0xf0,0xf8,0x75,0x6e,0x3a,0x79,0xe8,0x1d,0x6d, +0xbc,0x64,0xf8,0x04,0x3e,0x92,0xd3,0x8c,0x7d,0x76,0x77,0xab,0xcc,0x0f,0x71,0xe3, +0x74,0x30,0xd7,0x1d,0xbe,0x5d,0x9b,0xf5,0x4e,0xbe,0x60,0xb7,0x7a,0xfc,0x93,0xca, +0x2e,0x5c,0x36,0xcf,0x38,0xfe,0x7e,0xa0,0x68,0x7f,0x89,0x9d,0x2e,0x75,0x52,0xde, +0xa6,0xf2,0xa6,0xdb,0x54,0xfe,0x2a,0xbd,0xad,0xbd,0x81,0x16,0x07,0xb0,0x18,0xb8, +0xbd,0x9f,0x83,0x4b,0xf8,0xbf,0xf8,0xf4,0xc4,0x73,0x77,0x8f,0xfa,0xd2,0xaf,0x47, +0xcc,0x6b,0xeb,0x5b,0xf3,0x4f,0x37,0xff,0x66,0x60,0x00,0x7b,0x90,0xde,0xbf,0x70, +0x08,0x09,0x88,0x00,0x99,0x9f,0xf7,0xe0,0x58,0x02,0x28,0xda,0x56,0x22,0xf4,0x63, +0x4e,0x00,0x98,0x66,0x15,0x0d,0x10,0x34,0xc8,0xfe,0x34,0xab,0xde,0xe7,0x81,0x42, +0x7b,0x2e,0xad,0xe2,0x79,0xc8,0xd1,0xa2,0x4d,0xb4,0xb7,0xa1,0xd6,0x64,0x33,0x15, +0x08,0x6c,0x75,0x91,0xdd,0x31,0x35,0xd6,0x28,0x59,0x98,0xf5,0x9b,0x21,0x81,0xc4, +0x04,0xaf,0x1f,0x45,0x14,0x7e,0x0e,0xc4,0x4a,0xe4,0xf0,0xf0,0x61,0xe1,0xf7,0xa1, +0xa0,0xb5,0x3e,0xc8,0xb2,0xda,0x88,0x16,0xbc,0x3e,0xe7,0xb4,0x4b,0x7e,0x3e,0xc5, +0xf9,0x6f,0x44,0x5a,0xb4,0x20,0x05,0x63,0x1d,0x5d,0x66,0x6d,0xd4,0x86,0x7b,0x96, +0x49,0xd7,0xf7,0x5d,0xb7,0x3c,0xd9,0xf5,0xcd,0x5b,0xef,0x4a,0xcb,0x25,0x38,0xf7, +0x0e,0x52,0x2e,0x93,0x19,0xc8,0x02,0x4a,0x4c,0x64,0x52,0x92,0xf9,0x97,0xca,0x9b, +0x0f,0xcb,0x6d,0x5c,0x15,0x82,0xb6,0xa7,0x48,0xa9,0x5a,0x44,0xa2,0x2b,0x86,0x16, +0xae,0x48,0x43,0x89,0x12,0x44,0xef,0xad,0x84,0x4a,0xc9,0xa2,0xac,0x28,0x1b,0x59, +0xc1,0xf6,0x5b,0x1c,0xaa,0xea,0xdb,0xbd,0x43,0x27,0xc4,0x58,0x24,0x05,0x18,0x4a, +0xb9,0xa5,0xd3,0x2a,0xe5,0x6e,0x8f,0x79,0x4c,0x0e,0x54,0x17,0x5b,0xdc,0x14,0xfc, +0x03,0xa0,0xf0,0xa3,0x1d,0x77,0x12,0x7d,0x20,0x0e,0x83,0x4e,0xb2,0x7d,0x3b,0xc3, +0x8b,0x6e,0x8e,0x39,0x67,0x6f,0x6b,0xed,0x80,0x7e,0xe9,0x85,0x36,0x21,0x48,0x9e, +0x49,0x0f,0x4e,0x42,0xbd,0x29,0x5f,0x0a,0xd7,0x21,0x23,0x75,0x32,0x5f,0xe8,0x1f, +0x21,0x70,0xe4,0x37,0x16,0x3d,0x2d,0xe0,0x64,0x7c,0xeb,0xe7,0xdf,0xdd,0x9c,0xf6, +0xde,0x53,0x2c,0x54,0x2d,0x54,0xd2,0x90,0xcc,0x11,0xb0,0x53,0x1a,0x52,0x5b,0x25, +0xa8,0x09,0x69,0xf5,0x30,0xb4,0x6a,0xe2,0x4f,0xff,0x5b,0x85,0x51,0x32,0x40,0xe5, +0x5c,0x5b,0xb5,0xe5,0x31,0xb5,0x31,0x56,0x9e,0x73,0x99,0x31,0xbb,0x7a,0xfb,0x53, +0x3a,0xc9,0x7f,0x56,0x32,0x75,0x72,0x20,0x72,0x38,0x46,0x17,0xf6,0xf9,0x12,0x74, +0x2b,0xb8,0x73,0x46,0x77,0xe8,0xfc,0x30,0x6f,0xfe,0x85,0xc7,0x75,0x95,0x27,0xc1, +0xa3,0x76,0x05,0x7c,0xf9,0x58,0xea,0x91,0x62,0xd0,0x87,0x53,0x19,0x12,0xc8,0x16, +0x61,0x57,0xaf,0xd5,0x97,0x9a,0x8d,0xf0,0xab,0x74,0xe1,0xb5,0xb7,0xfa,0xd6,0x60, +0x0c,0x55,0x26,0x4c,0x34,0xc3,0xd6,0x64,0x74,0xac,0xde,0x35,0x1b,0x3b,0xce,0x8d, +0x68,0x13,0x7d,0xfe,0xc6,0x94,0x56,0xad,0x6f,0x1b,0x6a,0xfb,0x18,0x7d,0x45,0x72, +0x49,0xe5,0x83,0xa9,0xbe,0x78,0xc7,0x2d,0xae,0x6a,0x81,0x0c,0xfe,0x38,0x8c,0x71, +0x8d,0x56,0x8a,0xda,0x67,0x31,0x7b,0x7e,0x37,0x53,0xfd,0xbe,0xf8,0x6b,0x0e,0xc0, +0xc3,0x8c,0x08,0x1c,0xbe,0x37,0x76,0x36,0x59,0x1f,0x8f,0xdb,0xdd,0x83,0x62,0x23, +0xa2,0x72,0x38,0x3d,0x9a,0xb4,0x18,0x4e,0xe6,0xf0,0x73,0x14,0x97,0x30,0x25,0xcd, +0xa9,0x5e,0x47,0x32,0x9e,0x38,0xef,0x10,0xa2,0x1c,0x47,0xfc,0x9e,0x7a,0x71,0x11, +0x8b,0xb2,0xcb,0xbd,0xb7,0xc4,0xdc,0x66,0x0a,0x89,0xdd,0x1b,0x84,0x5f,0x46,0x0a, +0x07,0xe0,0x18,0xf9,0x12,0x9a,0xd7,0xe2,0x48,0x6b,0xd2,0x2e,0x55,0x80,0xba,0x74, +0xfa,0xc3,0x84,0xed,0xfc,0x4b,0x80,0xcd,0x43,0xfb,0x78,0xc7,0xae,0xa3,0x7f,0xa7, +0x8c,0x99,0x3b,0x78,0x91,0xe1,0xe1,0x22,0xf7,0xd3,0xef,0x83,0xdc,0xa0,0x64,0x67, +0x08,0x08,0xb9,0x64,0x91,0x8f,0xa3,0xb7,0xcb,0x3b,0xe6,0x52,0x28,0x48,0x28,0x46, +0x8f,0x3b,0x16,0xda,0xb7,0x5b,0x12,0x62,0x47,0xfe,0x08,0x14,0xbd,0x25,0x78,0x24, +0x03,0xa9,0xf9,0x30,0xe8,0xe7,0x68,0x05,0x43,0xc1,0x79,0xb6,0x23,0x6e,0x4d,0xa4, +0x6f,0x9c,0xdf,0x4f,0xb2,0xbd,0x51,0x3a,0x2f,0xdc,0xcf,0x53,0x5b,0x40,0x95,0xd7, +0x81,0x50,0xa4,0x23,0x6a,0xe6,0xf3,0x82,0xed,0xe7,0x3c,0x46,0xb3,0x48,0x26,0x95, +0x09,0xcb,0x5e,0x7d,0x00,0x21,0x62,0x48,0x48,0xe4,0xca,0x22,0x5a,0x4a,0x3a,0x7c, +0x09,0xa5,0x2f,0x6e,0x11,0xa0,0xba,0x5a,0x49,0xe5,0x9a,0xd4,0x3e,0xed,0x0f,0xf0, +0x65,0x60,0x23,0x6f,0x84,0x07,0x4c,0x58,0x9c,0x43,0xa6,0x5c,0x7f,0x63,0xd7,0x9f, +0xc1,0x99,0x2f,0xee,0xbb,0x8b,0x44,0x7c,0xcb,0x49,0xda,0xff,0xd9,0xc7,0x5a,0xb5, +0xe7,0x5c,0xbb,0x67,0xbb,0x53,0xb2,0xfb,0x6f,0xc6,0x52,0x1c,0x3c,0x2b,0x15,0x25, +0x77,0x72,0x7a,0xda,0x65,0x07,0x2e,0xfe,0x49,0xaa,0x3a,0x6b,0xf6,0xe7,0x3d,0xa9, +0x82,0x0a,0x23,0x86,0xfb,0x53,0x34,0x9b,0xe8,0x6f,0x8d,0x68,0xed,0x6b,0x51,0xfe, +0x78,0xe1,0x47,0x20,0x5d,0x8f,0x97,0x0b,0x4f,0x49,0x3b,0x8f,0x41,0x4e,0x26,0x7d, +0xcd,0xc0,0x24,0x84,0x3c,0xdc,0xb0,0x53,0x42,0xf0,0x58,0xd9,0x15,0xf4,0x26,0xd2, +0x29,0x3a,0xa8,0x12,0x79,0x50,0xf8,0x77,0x47,0xdc,0xe2,0x12,0x7d,0x51,0x67,0x78, +0xa2,0x72,0xad,0x82,0xdf,0xf1,0xf5,0xb6,0xb8,0x90,0xd7,0xa0,0xf5,0x92,0xfd,0x92, +0x4c,0x03,0xb7,0x96,0x94,0x13,0xbd,0xf0,0x1e,0x7e,0xe9,0xb5,0x22,0x5e,0xe4,0x81, +0x89,0x3f,0xe4,0xe2,0xd7,0xb2,0x7c,0xe7,0x0d,0x97,0x64,0x84,0x89,0xb9,0x74,0x12, +0x75,0x1e,0x9a,0x35,0x96,0xbc,0x1e,0xf2,0x66,0xf7,0x43,0xb1,0xb5,0x35,0x31,0xc2, +0xa0,0x34,0x13,0x26,0x15,0xb0,0x71,0x90,0xfa,0xb8,0x8a,0x63,0x8d,0x9f,0xbd,0xe2, +0x8d,0xd5,0x6b,0xa5,0x84,0x52,0x5d,0xe2,0x0e,0x3d,0x6d,0x91,0x0c,0xb5,0x3c,0x8b, +0x0d,0xf8,0x66,0x9b,0x1e,0xb3,0x35,0xda,0x68,0xd1,0x33,0xde,0x78,0xf3,0x39,0x1e, +0x2b,0x1d,0x90,0x93,0x5c,0xd9,0xae,0xdc,0x92,0xc2,0xe6,0x9f,0x7b,0x19,0x79,0x2f, +0xa4,0x81,0x23,0x7e,0x9a,0x9a,0xb7,0xe8,0x17,0xc1,0x25,0x2b,0xb0,0x1b,0xd0,0xe8, +0xbd,0xf5,0xf7,0xb6,0x8e,0xea,0xad,0xdd,0x60,0x2d,0xef,0xcf,0xf5,0xf0,0xa6,0x6d, +0xa1,0x15,0x1e,0x2c,0xc1,0xfd,0x66,0x9c,0x26,0x77,0xa9,0x8b,0x83,0x90,0xef,0xa5, +0x4e,0x99,0x6e,0xdc,0x7c,0xa6,0xbe,0x22,0xb3,0x29,0xfd,0xef,0xfa,0x6d,0x47,0x59, +0x26,0x96,0x27,0x9f,0xc2,0xb6,0xa7,0xea,0x6e,0x7e,0x95,0xe7,0xda,0xfd,0x0d,0xcc, +0xac,0xff,0x59,0xb9,0x9c,0xff,0xaf,0xc4,0xc9,0x9e,0x3f,0x56,0xa8,0xbe,0xa8,0x31, +0xe1,0x1b,0x07,0x66,0xd1,0xaa,0x28,0xd3,0x5f,0x46,0x77,0xe4,0x14,0x7b,0x76,0x49, +0x84,0x60,0xba,0xfd,0xdf,0x4e,0x9f,0xc1,0xe2,0x11,0x60,0x14,0x5f,0xd1,0x34,0xe7, +0x05,0x43,0x06,0xf4,0x33,0x23,0x31,0x0a,0x61,0xc8,0x54,0x43,0xe3,0xb2,0x77,0x49, +0xb2,0xe6,0xb7,0xf7,0x8b,0x4c,0x2b,0xb3,0x23,0xd1,0xbf,0x44,0xf0,0xce,0xd7,0xa8, +0x90,0x49,0x81,0x22,0x21,0x44,0xd2,0x86,0xa9,0xde,0xee,0x59,0x98,0x4d,0xdb,0xa8, +0x03,0x47,0xfa,0xab,0xe7,0x2a,0x4a,0x61,0x70,0x57,0x3f,0xb4,0x57,0x2b,0xbe,0xbd, +0x82,0xb3,0x39,0xb4,0x31,0xd5,0x31,0x63,0x60,0x4b,0xd9,0x70,0x3b,0x97,0xc5,0x23, +0xb0,0x11,0x09,0xb9,0x50,0x65,0xa1,0xf3,0x43,0x7c,0xcf,0xf7,0x53,0xbf,0xfa,0x4e, +0x56,0x44,0xb8,0xe4,0xac,0x67,0x6a,0x6e,0x1e,0x4e,0x8c,0x6b,0x92,0xa1,0x72,0xe9, +0x55,0xf6,0xd1,0x1e,0x62,0x87,0x7a,0x3a,0xa1,0x44,0x82,0x2f,0x3c,0x6a,0x13,0x8b, +0x62,0x25,0x58,0x13,0xe7,0x64,0x33,0x1f,0x69,0x95,0xdb,0x28,0x10,0xa3,0x6b,0x1b, +0xce,0x06,0x56,0x3d,0x9f,0x10,0x64,0x47,0x22,0xa1,0xa5,0x4c,0x54,0xcd,0xba,0xa0, +0xd6,0x41,0xc8,0x10,0x98,0x24,0x6a,0xed,0x44,0x2e,0xea,0x2b,0x54,0x6d,0xdd,0xdc, +0x06,0x80,0x7b,0xde,0x39,0x4d,0x59,0x9a,0xea,0x46,0x3a,0x7c,0xdb,0xed,0xbc,0xb5, +0x8a,0xbb,0x36,0x3f,0x39,0x62,0x19,0xf4,0x48,0xc9,0xeb,0x79,0x7e,0x3e,0x12,0x46, +0x2c,0x4d,0xb3,0xb5,0xc7,0x62,0xdf,0x89,0x97,0x40,0x6b,0xf9,0x5d,0x6f,0xd9,0x10, +0x5b,0xef,0xfa,0xf4,0x91,0xbc,0x5e,0xbd,0x8b,0x53,0x82,0xd4,0x9b,0xfa,0x7a,0x6d, +0xc2,0x6a,0x74,0x16,0xb1,0x78,0x18,0x32,0xe1,0xa9,0xbc,0x9e,0xd0,0xfd,0xc5,0x78, +0x8b,0xc9,0xcf,0x98,0x83,0x40,0x4d,0xa4,0x8b,0x51,0x55,0xe8,0x61,0x74,0x0b,0xe3, +0x5a,0x51,0xb5,0x30,0x37,0x51,0x25,0xe3,0xa2,0xa3,0xd7,0xa8,0xc2,0x65,0x7a,0x10, +0x49,0x1b,0x9a,0xa6,0x3c,0x56,0x34,0xe2,0xd1,0x59,0xb4,0xe6,0x47,0x79,0xa9,0xa3, +0x80,0x5a,0xce,0xf2,0x35,0x73,0xa7,0x12,0xe1,0x51,0xe4,0x0f,0x86,0x6e,0x47,0xf3, +0x5d,0x0d,0x8f,0x78,0x90,0x3b,0x1f,0xfc,0x60,0x31,0x2e,0x67,0x72,0x4f,0x4c,0xae, +0x04,0xba,0x4b,0x57,0x33,0x8c,0x20,0x93,0x22,0xdd,0xde,0x13,0x0a,0x67,0x59,0x69, +0x5f,0xc4,0x32,0xee,0x9c,0x95,0x14,0x40,0xd8,0x17,0x6e,0xce,0x3b,0x88,0x34,0x63, +0x2f,0xa2,0x54,0x9d,0x0a,0x4b,0x06,0xac,0x94,0x37,0xff,0xda,0x5a,0x19,0xd8,0x9f, +0x97,0xba,0x67,0x91,0x8b,0xce,0xaf,0x56,0x89,0x7a,0xce,0xb2,0x5f,0x61,0x53,0xeb, +0x9a,0x29,0x37,0x62,0x98,0x5b,0x79,0x19,0xe8,0x9b,0xc5,0xac,0x5e,0x60,0x8a,0x39, +0x89,0x9c,0xfe,0x69,0xbc,0x6c,0xd1,0x6a,0xc4,0xc3,0x2e,0x6e,0xfa,0xf6,0x36,0x3e, +0x3b,0xe0,0xee,0x30,0x9a,0x92,0x66,0x28,0x37,0x5b,0xfe,0x39,0xda,0xd6,0x75,0x36, +0xba,0xb3,0x97,0xc1,0xdc,0x38,0x2f,0x6b,0x6a,0x61,0xef,0x1e,0xed,0x78,0xb7,0x5b, +0x2b,0x27,0xd3,0xfa,0x1a,0x24,0xab,0x06,0x48,0xd2,0xd6,0xfd,0x10,0x47,0x0a,0xd2, +0x58,0x00,0x34,0xfa,0xc1,0x5b,0x0f,0xd1,0x57,0xc6,0x2a,0x66,0x58,0x44,0x12,0x90, +0xef,0x16,0x5e,0xfb,0x43,0xe3,0xe7,0xd4,0xac,0xdb,0xae,0x56,0x17,0x4e,0x41,0xb0, +0x22,0x8d,0xea,0xff,0x14,0x19,0x11,0x14,0x65,0xd9,0xaf,0x87,0x3d,0xe1,0x51,0x55, +0xdd,0x98,0xf4,0x32,0x17,0xa7,0x37,0xe6,0xe6,0x53,0xe9,0x24,0xf4,0xec,0xfb,0xa0, +0xef,0xee,0xfa,0x42,0x37,0x3f,0x10,0x60,0xfa,0xc9,0x2f,0x16,0x21,0xe4,0x4e,0xb0, +0x4c,0x2a,0x92,0xa9,0x95,0xa1,0x8c,0x89,0xe4,0xc3,0x7f,0x10,0x36,0xa5,0x47,0x93, +0x25,0x03,0x81,0x45,0xea,0xab,0x5b,0xb3,0x9a,0xc0,0x31,0x8a,0xa4,0xfd,0xa3,0x02, +0xcc,0x8c,0x7a,0x35,0xea,0xac,0x59,0x5c,0x66,0x4d,0xa1,0x73,0x7f,0x87,0xc3,0xfc, +0x1c,0x47,0x3a,0x6c,0x5f,0x5a,0x8a,0xca,0x54,0x63,0x90,0xc6,0xcc,0x27,0x4a,0xa9, +0xca,0x86,0xe0,0x83,0xf6,0x60,0x45,0xca,0x41,0x86,0xc4,0xfb,0x6e,0x8b,0x5d,0x47, +0x67,0xf2,0xdd,0x7e,0x30,0xa7,0xfd,0xb6,0xa7,0xd0,0x8d,0x5e,0xb4,0x23,0xf0,0xa8, +0xf2,0xf5,0x1f,0x7d,0xde,0x5b,0x5b,0x39,0x90,0xc6,0x43,0xd7,0xc3,0xa6,0xe2,0x4b, +0x29,0xe2,0xe5,0x2c,0x10,0xea,0xf5,0xe8,0xac,0xcc,0x92,0x6c,0x6f,0xe1,0x54,0x8b, +0xcd,0x0d,0xd2,0x19,0x11,0xcf,0x42,0x28,0x0c,0x3d,0xc2,0x85,0xaa,0x42,0x5d,0x9f, +0x4c,0x13,0x23,0xef,0x98,0x6e,0x0b,0xe9,0x4e,0xd1,0x08,0xed,0x5e,0x07,0x63,0x5f, +0x87,0xc4,0x0b,0x4e,0x1d,0xab,0x1b,0xcc,0xd1,0xc0,0xe8,0x04,0x34,0x5e,0xdc,0x6a, +0x78,0xdd,0xfd,0x99,0x70,0xb1,0x0a,0x02,0x24,0xcb,0x13,0xc0,0x57,0x90,0x20,0x67, +0xa0,0xd3,0xba,0xe7,0xde,0x18,0x8d,0xd0,0x44,0x51,0x9c,0xef,0xd4,0x93,0x3f,0x87, +0x87,0xd2,0x26,0x8e,0x5d,0x7b,0x04,0x45,0x66,0xd6,0xef,0xaf,0x53,0xf4,0x85,0x82, +0x44,0x88,0x97,0x64,0xd0,0xb5,0x05,0x5b,0x2f,0x9c,0x79,0x32,0xb6,0x01,0x5c,0x3c, +0xa4,0x90,0x47,0x30,0xb4,0xb0,0x14,0x51,0xc1,0xdb,0xad,0x61,0x97,0xbb,0x66,0x7f, +0xa5,0x91,0x58,0xb4,0xdc,0x44,0x36,0xef,0xe5,0x52,0x9c,0xf4,0xe5,0xf8,0x6c,0x2b, +0x91,0xd4,0x35,0xa5,0x5d,0x67,0x15,0xe0,0xf2,0xdb,0xf4,0x94,0xe1,0xb9,0xe0,0xb1, +0x50,0x91,0xbd,0xd6,0xe1,0xb6,0x79,0x11,0x46,0x7c,0x02,0x1f,0xf2,0x7a,0x26,0x6c, +0xcd,0x9e,0x86,0xf2,0x9d,0x67,0x6f,0x3c,0x8d,0x97,0xe6,0xcc,0x6c,0x5c,0xb5,0x17, +0x2b,0x22,0xd0,0xfe,0x0e,0x69,0x5e,0xb8,0xbb,0xd4,0x29,0xbc,0x39,0x5d,0x03,0xd7, +0x0f,0xd8,0x63,0x0a,0xff,0x48,0x36,0x5b,0xed,0x95,0x7b,0x93,0x34,0x70,0x3e,0x19, +0x2d,0x03,0x91,0xef,0x1a,0xd7,0x15,0x6b,0xb1,0xd2,0xf5,0x83,0x35,0x91,0x46,0x86, +0x1d,0x27,0x61,0x43,0xd7,0x6d,0x0e,0xe6,0x8e,0xd3,0x0e,0xe6,0x83,0xb3,0xd9,0x5e, +0x00,0x83,0xac,0xa8,0xc0,0x10,0x54,0x2a,0x33,0xdb,0xfd,0x8d,0x0f,0xb2,0xa7,0x9b, +0x90,0xd2,0x0b,0x5c,0x97,0xb6,0x17,0xe8,0xfa,0xd3,0xa7,0xfa,0xc3,0xe5,0x55,0x28, +0x8a,0x84,0x7c,0x40,0xbc,0x0f,0x09,0x55,0x4c,0xc4,0xfe,0x8c,0x87,0xb0,0x60,0x02, +0x79,0x0d,0xd9,0x95,0xb7,0x62,0xd0,0x3d,0x74,0xbd,0x4b,0x46,0x91,0xea,0x92,0xf2, +0x83,0x05,0xed,0x90,0x0e,0xdc,0xdc,0x6e,0x4f,0x5f,0x20,0x73,0x93,0xc1,0x4b,0x1c, +0x02,0xd6,0x1b,0x9d,0x96,0x08,0x48,0x25,0x15,0x2e,0x16,0xcd,0xd6,0x2d,0x39,0x73, +0xc2,0xf3,0x49,0xe5,0x3e,0x38,0x64,0xc2,0xd6,0xbc,0xd1,0x30,0xb2,0xc3,0x5e,0xc4, +0x28,0xda,0x7d,0x74,0x16,0xa3,0xb1,0x62,0xf2,0x40,0xd8,0x71,0xc0,0x6e,0xeb,0x2c, +0xa2,0x69,0x5c,0x71,0x5a,0x61,0xf1,0x72,0x6d,0x71,0x48,0x33,0xc1,0xda,0x81,0x85, +0xab,0x00,0xc3,0x45,0x91,0xd3,0xb8,0x63,0x67,0x42,0x53,0xb6,0x71,0x29,0x2f,0x30, +0xb0,0x95,0x5d,0xd7,0xc7,0x5e,0xf9,0x7f,0x4f,0xda,0x5e,0xa6,0x70,0x3a,0x7c,0xa8, +0x87,0x8e,0x01,0x6a,0xe3,0x6d,0x4b,0xaf,0xa9,0x07,0x6a,0xae,0xd8,0xb3,0x5a,0x0c, +0x8b,0x0d,0xaa,0xe3,0xf0,0x40,0x13,0x03,0x50,0x52,0xa2,0x0d,0xf8,0x72,0x81,0x49, +0x84,0xa1,0x47,0x7f,0xb6,0xa2,0x12,0x56,0x6f,0xdf,0xab,0xfd,0x84,0xcb,0xff,0x7b, +0xa8,0x09,0xa1,0xb8,0xb7,0xa1,0x93,0x5f,0x3e,0x5b,0x8b,0xdb,0x5b,0x6f,0xba,0x3a, +0xf5,0x4e,0x1e,0xe3,0x12,0xec,0xab,0x1a,0xc4,0x29,0x42,0x2a,0x91,0xf1,0xa2,0x67, +0x2f,0xe0,0xf2,0x78,0x18,0x6d,0x71,0x2b,0xc7,0xd1,0xb4,0x0e,0xd6,0xdb,0x1c,0x7a, +0x0f,0x6e,0xe6,0x4b,0x0e,0x4a,0x7a,0x3a,0x4e,0x52,0x83,0x1a,0xc2,0x29,0x4e,0xaf, +0x9b,0xf1,0x75,0x79,0x25,0xf0,0x23,0x5e,0x5a,0xe3,0xa4,0x0f,0x09,0xf0,0x6d,0x6b, +0x1b,0x96,0x44,0x7c,0xad,0x72,0xac,0x40,0x78,0x4b,0x69,0x20,0x7d,0xa9,0x6c,0x92, +0x85,0x1c,0x08,0x64,0x39,0x3e,0x1d,0x40,0x4e,0x1e,0xa4,0x4a,0x77,0x73,0xf9,0xff, +0xba,0x7d,0xde,0x6a,0x32,0x31,0x16,0x51,0xee,0x1d,0xfd,0xc7,0x0f,0x7c,0x15,0xf9, +0xa7,0x9b,0x9d,0x99,0xb5,0x1f,0x0d,0x80,0xf5,0x55,0xb2,0xaa,0xd8,0x75,0x41,0x26, +0x32,0xea,0xc4,0xed,0xcf,0x80,0xf5,0xe7,0x93,0x0b,0xee,0x7b,0x8d,0xf9,0xec,0xca, +0xaf,0x78,0xb4,0xf0,0xd2,0xa9,0xfc,0xba,0xb2,0xf9,0xa4,0x1e,0xdf,0x78,0xbc,0xc3, +0x81,0x02,0xbd,0xd7,0x4d,0x83,0x6d,0xc6,0x73,0xfa,0x36,0x1b,0xd6,0xda,0x48,0x33, +0x0f,0xe9,0xb4,0x24,0x10,0x27,0xf9,0xab,0x40,0x32,0xcc,0x17,0x3a,0x78,0x48,0x8a, +0x60,0x74,0xc2,0xac,0x38,0x78,0x36,0xd9,0xc9,0xf7,0xb6,0x41,0x7e,0x10,0x67,0x73, +0x12,0x71,0x36,0xec,0x3d,0x32,0x89,0x3c,0x64,0xb0,0xb6,0xde,0x84,0x75,0xd3,0xd7, +0x86,0xc6,0xab,0x0c,0x8b,0xca,0x84,0x8e,0x49,0xf5,0x8d,0x29,0xb9,0x68,0xf3,0xe7, +0xb3,0x74,0x0f,0xde,0xb3,0x3d,0xa8,0x85,0xef,0xd3,0xa7,0x39,0xf4,0xe7,0xbf,0xca, +0x4b,0x28,0x79,0xf1,0xc5,0xe1,0x7f,0xbb,0xee,0x40,0xaf,0x9f,0xfe,0xde,0xfa,0x2e, +0x3b,0xe3,0xb5,0xa2,0xe1,0xa0,0xb1,0x96,0xbc,0x40,0x7a,0x9e,0x49,0x72,0xe7,0xc7, +0x26,0x13,0x13,0x33,0x4b,0x5d,0x7c,0xba,0x66,0xc2,0x77,0x0d,0xfe,0xdc,0xb6,0xdb, +0xb8,0x2b,0xae,0x9d,0xf3,0xa0,0x7f,0x36,0x73,0x1b,0x4f,0x52,0xf3,0x7d,0xe0,0x52, +0x4f,0x84,0x88,0x5b,0x55,0xa3,0x88,0xdd,0x42,0x30,0x90,0x44,0xd6,0x34,0xfc,0x4c, +0x96,0xbe,0xf7,0x9f,0x26,0xd3,0x00,0xc9,0x36,0xc1,0xda,0x3a,0x56,0x81,0x27,0x44, +0xaa,0x5e,0x5c,0x38,0xb5,0xe0,0xa0,0xa1,0x44,0xa8,0x67,0xc5,0x75,0x8e,0x57,0x5a, +0x51,0x9b,0x11,0x37,0xc1,0xb3,0xf9,0x2e,0xb7,0xd8,0xe3,0xc8,0x76,0xe5,0x99,0x40, +0x43,0x69,0x60,0x21,0x32,0x90,0xd0,0x28,0x97,0x68,0x4b,0xc6,0xbb,0x46,0x91,0x50, +0x71,0x91,0x0c,0x72,0xea,0x11,0x93,0x05,0xc7,0x75,0x1f,0x89,0xb6,0x33,0x64,0xa5, +0x96,0x78,0x41,0x49,0x1a,0x2b,0xd5,0x39,0x19,0xfb,0x01,0xb4,0x37,0x8a,0xc9,0x49, +0x0b,0x6a,0x91,0x65,0x27,0xa8,0x5c,0x75,0x53,0xa3,0x02,0xf3,0x8b,0x74,0x42,0x08, +0xaa,0x85,0xdc,0x5f,0xa0,0x21,0xba,0x54,0xeb,0xd8,0x92,0xc2,0x5a,0x80,0x64,0x18, +0x45,0xe5,0xd4,0x4f,0xa1,0x20,0x88,0xf6,0x7e,0x79,0x92,0x5c,0xa0,0xe5,0x3b,0x8f, +0x8a,0x02,0x99,0xf4,0x1c,0x6a,0x8c,0xcd,0xff,0x2c,0xa9,0xab,0x9d,0xf8,0xff,0x45, +0xa3,0x57,0x9c,0x7f,0x61,0xa2,0x83,0xdb,0xc9,0xd9,0x83,0xbb,0xd0,0x77,0x67,0xa8, +0xa2,0x72,0x4d,0x54,0xbd,0x29,0x48,0xed,0xe2,0x03,0x5e,0x1c,0x84,0x53,0x6f,0xac, +0x1f,0x73,0xd8,0x62,0xe8,0xec,0x83,0x51,0xec,0x70,0x7e,0xfa,0x03,0x7e,0x9a,0x49, +0xa8,0xe3,0xf2,0x11,0x46,0xa1,0x72,0xb4,0x75,0x53,0xc9,0xf5,0x2d,0xea,0x92,0x59, +0xbc,0xe2,0x98,0x5f,0x83,0x78,0x86,0x5f,0x57,0x8b,0xab,0xac,0x93,0x83,0x04,0x52, +0xa6,0x94,0x84,0x7e,0x95,0x3c,0xf5,0xe0,0xc5,0x2d,0x49,0x22,0x79,0x29,0xab,0x10, +0xf1,0x58,0xf5,0x02,0x92,0xbc,0x17,0x5d,0x63,0xb9,0x84,0x48,0x73,0xf3,0x3a,0xe1, +0x65,0x18,0x61,0x02,0xf7,0xd2,0x1d,0xc1,0xe2,0xba,0xdd,0xc5,0x0b,0xfc,0x55,0x11, +0x25,0xb4,0xe7,0x2a,0x86,0x92,0xa6,0x71,0x44,0x2c,0x92,0x5f,0x21,0x0e,0xc4,0xcc, +0xaa,0x99,0x5f,0x5d,0xc1,0x44,0xd5,0xe5,0x87,0xb2,0xca,0xe0,0x4e,0x5b,0x95,0xd0, +0x76,0x91,0x47,0x2d,0x13,0x08,0x01,0xf0,0xb6,0xc1,0x82,0xf1,0xd6,0x5a,0xd1,0x25, +0xb6,0x68,0x8b,0x25,0x0f,0x3b,0xc1,0x05,0xf6,0x28,0x55,0x94,0x7a,0xa5,0x85,0xd1, +0x10,0x93,0x94,0x24,0x14,0x6a,0x05,0x8c,0xc6,0xf7,0x85,0xd0,0x56,0xb6,0x1e,0xea, +0x21,0x95,0x5e,0xe8,0x57,0xb7,0x5e,0xc8,0x9b,0x9a,0x4c,0x52,0xd2,0x03,0x23,0xa4, +0x3c,0x66,0xa8,0x8c,0xbf,0x6d,0x81,0x5c,0xe0,0x74,0xbe,0xcc,0x86,0xbb,0x79,0xc3, +0xac,0x35,0x23,0xbd,0xd7,0xb5,0x77,0xf0,0xdf,0x58,0x2d,0x42,0x3a,0xa1,0x74,0x9b, +0xd6,0xfb,0xf7,0x7d,0x3f,0xbf,0xa8,0x28,0x99,0x2a,0x65,0xa0,0xfb,0xa0,0xcc,0xc8, +0xed,0x98,0xc4,0xee,0xb9,0x2e,0xf5,0xb6,0x4f,0xb0,0xbe,0xe7,0xc7,0x5d,0xba,0xd8, +0x2d,0x99,0x96,0xd6,0xc2,0x4c,0xfe,0x48,0x2f,0xdd,0xff,0x88,0x5b,0x8a,0x7a,0xc9, +0x09,0x9a,0x1c,0xf4,0x1d,0x15,0x56,0x09,0x17,0x5f,0x57,0x05,0x3a,0xf1,0xdd,0xd9, +0x1a,0x9b,0x10,0xa4,0x91,0x00,0x37,0x50,0x04,0x9b,0x04,0xf3,0x46,0x5e,0xa0,0xea, +0xa5,0xaf,0xfd,0xea,0x34,0x3b,0x3f,0x89,0xb7,0xcd,0xf9,0xc7,0x74,0x7d,0x36,0x17, +0x35,0xae,0x33,0xb1,0xe6,0x9c,0x0f,0x6e,0x2b,0x4e,0x4c,0xcb,0xa4,0x02,0x79,0x09, +0x25,0x43,0xc0,0x7a,0xec,0xdd,0x42,0xdb,0x75,0xc7,0x89,0x38,0x2d,0x0e,0xad,0x7a, +0x0f,0xac,0x5d,0xee,0x60,0x40,0x66,0x43,0xb3,0xdc,0x62,0x4e,0xff,0xdc,0x6e,0x47, +0x93,0xa8,0xbe,0x42,0x71,0xc3,0xf4,0x02,0x52,0xbb,0xa8,0x9a,0xaf,0xc5,0x66,0x57, +0xca,0x0a,0xf6,0x68,0x7b,0x28,0xf8,0x02,0x21,0x82,0x23,0x50,0x28,0xa5,0xe1,0x0b, +0x21,0x63,0x12,0xb6,0x1e,0x67,0xe9,0x51,0xdc,0xe9,0xe9,0x9a,0x27,0x05,0x67,0x56, +0x12,0xab,0xdb,0x75,0x78,0x63,0x27,0x76,0x62,0x06,0x6e,0x69,0xa4,0x67,0x7a,0x2f, +0xb1,0x6e,0xf9,0x47,0x36,0x14,0x82,0xd9,0xeb,0x58,0xa9,0x89,0xab,0x76,0x4e,0x6b, +0x8d,0x38,0xb7,0x92,0x18,0xc9,0x8d,0xc7,0xbc,0x2a,0x9b,0x4a,0xa2,0x79,0x93,0xe3, +0x36,0x2a,0xc3,0xda,0xd0,0x5c,0x4d,0x2f,0xc8,0xb7,0xef,0x09,0x3d,0xf5,0x75,0x1f, +0x60,0x6f,0xb0,0x92,0x6a,0x16,0xe0,0x62,0xe7,0xf7,0x21,0xc3,0xc9,0xa6,0xe2,0x02, +0x2e,0x02,0xf8,0xfc,0xf4,0x83,0xad,0x98,0x5c,0xed,0x89,0x6c,0x5c,0x9c,0xae,0xbe, +0x1b,0x86,0xf2,0xa3,0x68,0x2d,0x08,0xce,0xa0,0x29,0x36,0xe3,0xaa,0xbb,0xe7,0x8b, +0x0e,0x83,0x67,0x2f,0x6d,0x4b,0xd2,0x9a,0x4e,0xc3,0x42,0x85,0xfc,0x23,0x4f,0xde, +0x2c,0x1f,0x94,0x58,0x9d,0xdf,0x63,0x5d,0x6a,0xb0,0x4b,0x95,0xb5,0xe4,0xfc,0xa4, +0x91,0xe4,0x02,0x0b,0xc1,0x66,0xfe,0xd2,0xb5,0x2f,0x95,0xdf,0x97,0x60,0x74,0xa2, +0x51,0x8e,0xb3,0x1b,0xca,0xac,0x37,0x5b,0xd1,0x15,0x66,0x90,0x80,0x7e,0x7d,0xb3, +0x71,0x66,0xbc,0x0e,0xb1,0x62,0x2f,0xfa,0x57,0xdf,0x2e,0x53,0xe0,0x8f,0x30,0x8f, +0x02,0x96,0x6c,0x6f,0x00,0x05,0x8d,0x1b,0xe1,0x7f,0x29,0xce,0x52,0x16,0x84,0x30, +0x2a,0x72,0xbb,0xaa,0x40,0xab,0x42,0xec,0x89,0x10,0xee,0x54,0x98,0xdb,0xa8,0x3a, +0x40,0x35,0x6c,0x24,0xdf,0xe6,0xf8,0xd4,0xbd,0xaa,0xe6,0x0e,0x88,0xaa,0x1d,0xd8, +0x0e,0x73,0x9f,0xa5,0xce,0x99,0x6f,0x51,0x04,0xf9,0x71,0xc1,0xcd,0x44,0xa9,0x22, +0x27,0x03,0xb3,0xd2,0x97,0x5b,0x67,0x63,0xe3,0x2b,0x24,0x1e,0x40,0x37,0x15,0x72, +0xbc,0x17,0xff,0x91,0xf3,0x37,0x63,0xa8,0x73,0x0f,0x2d,0x4e,0xd4,0x85,0xb7,0x86, +0x8a,0x9c,0xb4,0xc6,0x8e,0xb4,0x66,0xaa,0xb4,0x85,0x9f,0xc7,0xde,0x69,0x38,0xbb, +0xd8,0x85,0x6e,0xff,0x61,0x45,0x17,0x90,0x19,0x2e,0xef,0x89,0x09,0x35,0x20,0xb3, +0x0a,0x6f,0xa6,0x76,0x9d,0x46,0x30,0x43,0x00,0x54,0x24,0x5b,0xe9,0x86,0xe2,0xba, +0x05,0x97,0x9c,0xcd,0xe4,0x74,0xe9,0xa7,0xdd,0xd1,0x96,0xa8,0xf8,0x9b,0xf1,0xff, +0x87,0x78,0xf6,0x59,0x35,0x5f,0x25,0x03,0x9c,0x1f,0xe6,0x17,0xd7,0x70,0xc7,0x4e, +0x9b,0x17,0x17,0x4f,0x3a,0x95,0x2a,0x03,0x16,0xef,0x37,0x8f,0x49,0x1b,0x6f,0x06, +0x40,0x5b,0x85,0x40,0x9f,0x80,0x1f,0xbd,0xd4,0x5d,0x26,0xda,0x5a,0x00,0xf1,0xf1, +0x88,0x9d,0x41,0xed,0x48,0xbe,0x1b,0x87,0x95,0x6c,0x4f,0x02,0xf5,0x7f,0x50,0x36, +0x06,0xb1,0x92,0x4c,0xaa,0xe0,0xdd,0x49,0xd3,0x5c,0x80,0xc8,0xf9,0xec,0x59,0x70, +0x27,0xe7,0x99,0x75,0x0d,0xfd,0x91,0x86,0x0d,0x86,0x05,0x45,0x2f,0x87,0x14,0x22, +0x01,0x9f,0xf7,0xf5,0x97,0x5e,0x5c,0x40,0x41,0xd5,0x46,0x13,0x34,0x85,0x3a,0x46, +0x88,0xcb,0x71,0xdf,0x10,0x54,0x4e,0x57,0xa6,0x45,0x74,0x80,0x65,0x67,0x90,0xa2, +0x47,0xee,0xd0,0x66,0x37,0x0a,0x00,0xc2,0xbb,0x6a,0x80,0xf4,0xb9,0x57,0x60,0xb3, +0x8a,0xe0,0x85,0x34,0xee,0x07,0x69,0x90,0x42,0x6b,0x09,0xe5,0x38,0xed,0x5b,0x62, +0x03,0x28,0x49,0x25,0xf5,0x40,0xdd,0x0c,0x64,0x4c,0x81,0x05,0x55,0x00,0xd8,0x02, +0xe8,0x87,0x35,0xf1,0xe9,0xcb,0x3a,0x32,0xa7,0x8c,0xc9,0xde,0x54,0x8e,0x17,0x2b, +0x89,0x95,0x81,0xbb,0xcc,0xb5,0xdb,0xc1,0xbc,0xff,0x41,0xce,0x51,0x8f,0xb3,0xa4, +0x7b,0xba,0x58,0x74,0xb2,0x15,0x88,0xa4,0x3b,0x77,0xcc,0xdf,0xd8,0x8c,0xd3,0x68, +0x2e,0x9b,0x7f,0x55,0x9f,0x45,0x40,0x26,0x06,0xc4,0x44,0x1b,0x2c,0x24,0xc2,0x39, +0xad,0x2f,0x9c,0x49,0x3a,0x5d,0xa2,0x5b,0x22,0x63,0xae,0x8c,0x3d,0x8c,0x02,0x5d, +0x8c,0xc9,0x39,0xad,0x93,0xa0,0x04,0x7d,0xee,0x32,0x02,0x5a,0x3c,0xae,0xc7,0xb8, +0x02,0xcf,0x9d,0x49,0xfd,0x4b,0xd3,0x19,0xac,0x69,0x0b,0x1d,0xed,0xe6,0x12,0x29, +0x01,0x84,0x12,0x78,0x3e,0x1e,0xeb,0x99,0xac,0x99,0xed,0x4a,0x34,0xab,0x5c,0xb0, +0x5c,0x0c,0x43,0x75,0x97,0xed,0x99,0x49,0x57,0xc2,0x4c,0x82,0xc4,0xb4,0x11,0x8d, +0x86,0x14,0xcb,0xd2,0x96,0xac,0xe8,0x4c,0x9c,0xb2,0x18,0x74,0xf1,0xb3,0x74,0xb2, +0x07,0x2d,0x46,0xc3,0x17,0x8f,0x8a,0x9e,0x1b,0x0f,0x93,0xa0,0x57,0xfc,0x3e,0xc8, +0xcf,0x9c,0xce,0xc6,0x16,0xf2,0x42,0xc9,0xcb,0x4c,0xf9,0x5c,0xf3,0xd1,0x5e,0x72, +0xc0,0x3b,0xba,0x24,0x76,0x19,0x4e,0x0c,0xdd,0xcb,0x64,0x0e,0x50,0xb9,0x93,0xb4, +0x47,0xe3,0x92,0xd0,0xde,0xba,0x47,0xb8,0xfe,0x68,0x07,0x89,0xf8,0x23,0xc1,0x2b, +0xc2,0x9b,0x74,0xf5,0xd6,0xeb,0xb5,0x63,0x3f,0xca,0xab,0x05,0xfa,0x72,0x13,0xd5, +0x46,0x14,0xbf,0x95,0x5c,0xd3,0x50,0xbd,0x12,0x8b,0x6d,0xb0,0x1e,0xe6,0x5d,0xe5, +0xf8,0x97,0x9f,0xee,0x60,0x25,0x8b,0x0f,0xd3,0xda,0xcb,0x2a,0x76,0xc7,0x93,0x85, +0x8e,0x1c,0x6a,0x65,0xc8,0xdb,0x3c,0xd5,0xf7,0xa6,0x62,0xcc,0xf3,0x9c,0x15,0x75, +0x14,0x95,0x0b,0x0a,0x4f,0x07,0xd9,0xae,0x76,0xd2,0x77,0x2e,0x47,0x77,0x80,0xc8, +0x0e,0x4a,0x54,0xe0,0xb3,0x44,0xb8,0x71,0x04,0x56,0x91,0xb8,0x34,0xf4,0x94,0x39, +0xa2,0x91,0xdc,0x2c,0x92,0xfd,0xdb,0x95,0xf3,0x9d,0xec,0xec,0xbc,0xf8,0x7c,0x57, +0xc4,0xd9,0xdc,0xef,0x51,0x26,0x81,0x89,0x53,0xbe,0x3a,0x2e,0x01,0x22,0xf7,0x23, +0x9e,0xd3,0xda,0x3e,0x1d,0x4e,0x49,0xd3,0x86,0xd3,0x67,0x9c,0xaa,0x9c,0x55,0x6b, +0x49,0x30,0xef,0x20,0x4e,0x1c,0x84,0x0b,0xcf,0x2e,0x40,0xdb,0x00,0x93,0x3e,0x08, +0xde,0xaf,0xd2,0x3b,0xfb,0x44,0xef,0x52,0x82,0x40,0xf2,0x24,0xbb,0xe3,0x76,0xbd, +0x25,0xac,0x18,0x2b,0x45,0xac,0x20,0x01,0xe0,0xc0,0xa6,0x19,0x39,0x62,0x52,0x73, +0x42,0x02,0x3e,0xe7,0xd8,0xc3,0x81,0x52,0xf4,0xe3,0xcb,0xaa,0xac,0x23,0xd8,0x9e, +0x34,0x8a,0x65,0xef,0x6a,0xfc,0x9c,0xc2,0x45,0xce,0xe7,0x33,0x30,0xc0,0x72,0x64, +0xeb,0xb5,0xe1,0x32,0x72,0xdb,0x12,0x5f,0x2b,0x06,0x8e,0xb9,0x52,0x23,0xd8,0xd2, +0xed,0xd7,0x33,0x6f,0x32,0xbe,0xe7,0x96,0xbf,0x8c,0x30,0xf5,0xd4,0x05,0x21,0x7d, +0x7a,0x60,0x3e,0x37,0xf0,0xd9,0x0e,0xb0,0xf1,0xe6,0x54,0x8d,0x0a,0xa6,0x71,0xae, +0x6a,0x17,0xc9,0xd1,0xcf,0x76,0x99,0x89,0xe4,0x5c,0x63,0x32,0xe0,0x93,0x22,0xe2, +0xe1,0x3b,0x02,0x8d,0x47,0x2e,0x40,0x9e,0xa3,0x2c,0x03,0xdf,0xd4,0x65,0xb9,0xb0, +0xf5,0x3a,0xf2,0x0d,0xf9,0xa8,0x24,0x14,0x21,0x44,0xca,0xcf,0xdd,0xe4,0x19,0x0b, +0x1a,0x4b,0xf1,0x0d,0x39,0x81,0x29,0xcb,0x64,0x0b,0x03,0x5e,0xa0,0xcb,0xcb,0x04, +0xbd,0x97,0x0f,0xe2,0x78,0x88,0x0d,0x5b,0xa9,0xfb,0xcd,0x05,0x32,0x0f,0xae,0xd7, +0x2e,0xf0,0x7d,0x60,0xe1,0xb1,0xd4,0x17,0xed,0x48,0x30,0x2c,0x03,0x20,0xe1,0x7c, +0x89,0xea,0xf2,0x4f,0x3a,0x22,0x05,0xa9,0x78,0xad,0xda,0x94,0x53,0x20,0xfe,0x16, +0x5f,0x53,0x10,0xb7,0x27,0x8f,0x93,0x56,0xaf,0x0c,0x56,0x85,0x02,0xa5,0xab,0x5d, +0x81,0x53,0xf9,0xa2,0x16,0x92,0xe4,0x9f,0x37,0xe6,0xd9,0x9b,0x7e,0x74,0x3a,0x20, +0x40,0x30,0x82,0xb6,0xc4,0x3f,0x6c,0x87,0x9d,0x5f,0xc7,0x9a,0x16,0x85,0x9c,0xf2, +0xde,0xbc,0xb6,0x7f,0x82,0x70,0x24,0xf7,0xbf,0x8c,0x4c,0xb0,0x2d,0x20,0xfa,0xf3, +0x8e,0xcd,0x78,0xcb,0x45,0x6e,0x85,0xc3,0x13,0x37,0x43,0x5d,0xf0,0xc9,0xdc,0xa0, +0xcf,0x0c,0x49,0x10,0xf2,0xc0,0x07,0xb3,0x52,0x12,0xa3,0x98,0x8d,0xdc,0x7a,0xf8, +0x85,0x55,0xc5,0xb7,0x6d,0x9d,0xe3,0x80,0x64,0xef,0x16,0x82,0x8d,0x6f,0x64,0xd7, +0xa2,0x51,0x48,0xa7,0x6c,0xb7,0xa3,0x18,0x2f,0x18,0x94,0xf8,0x75,0x3c,0x6d,0xa3, +0x23,0x19,0xdd,0x25,0xb6,0x8d,0x10,0x09,0xaa,0x1b,0x12,0x83,0x7f,0x80,0x65,0x13, +0xc8,0x19,0x32,0xf3,0xa3,0x50,0x22,0x19,0xfd,0x1a,0x68,0x1d,0xad,0x3a,0xbc,0x73, +0x2e,0xb3,0x79,0xea,0xcf,0xc5,0x49,0xa1,0x9c,0xbb,0x36,0xdf,0x4c,0xab,0x2e,0x72, +0xdc,0x90,0xf0,0x20,0xd8,0xbf,0x9e,0xa5,0x5d,0xe6,0xa0,0x85,0x05,0xd6,0x61,0xf6, +0x8c,0x93,0x6b,0x13,0x9c,0xcc,0xa0,0x01,0x9b,0x5a,0xe9,0xaa,0x59,0x3b,0x2f,0x13, +0x8d,0xce,0x8f,0x6e,0xc3,0x7a,0x45,0x21,0x95,0xf4,0x3f,0xce,0x89,0xa8,0x06,0x68, +0x72,0x4e,0x26,0xf9,0x9e,0x4c,0x28,0xb9,0xd6,0xd5,0xd4,0x0a,0xfa,0x4c,0xae,0xf0, +0x40,0x95,0x76,0x2f,0x7a,0x2d,0x9b,0x9e,0xd0,0xfc,0x36,0xf9,0x7d,0x66,0xef,0xfc, +0x0e,0x6e,0x27,0xe5,0x89,0x2e,0x97,0x11,0x77,0x45,0x8e,0x70,0x1b,0x31,0x4f,0x28, +0xe2,0x1f,0x77,0x2e,0xf2,0x24,0x45,0x02,0x0a,0x3c,0x96,0x79,0xd2,0x6d,0x9b,0x58, +0xdd,0x7d,0xd8,0xf8,0x30,0xbb,0x4e,0x24,0xa5,0x43,0x88,0x02,0xdb,0x1d,0x3e,0x1e, +0xee,0xc5,0xaa,0x24,0xea,0xcf,0x40,0x15,0x61,0x3e,0xb8,0x12,0xda,0x4c,0x0e,0x27, +0xe7,0xa1,0x71,0x61,0xff,0xad,0xc3,0xd0,0x48,0x4f,0xd3,0xb7,0x21,0x64,0x13,0xa3, +0x6f,0x2c,0x97,0x0b,0x4b,0xe2,0x81,0x74,0x1b,0x3c,0x6a,0xa5,0xd5,0x4e,0x9f,0xc0, +0xe8,0x56,0x07,0xb9,0xe7,0x02,0xb0,0x9a,0x61,0xdf,0xd1,0xf0,0x57,0x77,0x8b,0x76, +0x7c,0x85,0xf2,0xad,0xf6,0xc6,0xb5,0x0d,0x74,0x15,0xa1,0xf4,0x13,0xe6,0x59,0xbd, +0x7b,0xea,0x99,0xb9,0x2f,0x07,0x77,0x1c,0x61,0x84,0xa8,0x66,0x37,0xa9,0xb4,0xac, +0xf0,0x87,0x92,0xd3,0xcb,0xf6,0xc1,0x88,0x63,0xa5,0x78,0xd3,0xf5,0xe7,0x86,0x68, +0x28,0x27,0x9c,0x13,0x9e,0x79,0x08,0xb8,0x4c,0x17,0xe5,0x5e,0xdc,0x6e,0x7f,0x2a, +0x05,0x36,0xd2,0x0a,0xf4,0x48,0xc5,0x5c,0x31,0xa5,0x45,0x4c,0x73,0x36,0x87,0x69, +0x73,0x27,0x94,0x88,0xb8,0x01,0x09,0xd1,0x37,0x8b,0x93,0x0b,0xb4,0xe7,0x11,0xbe, +0x7e,0xca,0x99,0x3b,0xf6,0xa4,0xff,0x1c,0x32,0x46,0xe0,0x3f,0xd9,0x1b,0xe2,0x56, +0xb3,0x97,0xbb,0x42,0xeb,0xe3,0x48,0xcf,0x0f,0xc8,0x65,0x86,0x00,0x6c,0xd2,0x7e, +0x3c,0x1e,0xee,0x2d,0x40,0x2a,0xae,0xdf,0x0c,0xc1,0xa1,0xca,0xdf,0x6c,0x71,0x2d, +0x71,0x9c,0xe2,0x30,0x39,0x15,0x8c,0x18,0xe3,0x42,0x0b,0x29,0xd2,0xac,0x55,0x76, +0x28,0x9f,0xef,0x5a,0xc5,0xab,0xf4,0x2b,0xed,0xb0,0x3b,0x87,0xb9,0xf4,0x73,0xbd, +0x52,0x0b,0x9a,0x8a,0x76,0x4f,0x94,0xd0,0x06,0x17,0xca,0xa1,0xd5,0xb1,0xab,0xbe, +0xaa,0x3c,0x3c,0xe4,0x96,0x1c,0x65,0x96,0xc0,0x2e,0x8b,0x31,0x8a,0x5c,0x25,0x7a, +0xb0,0xd2,0x9b,0x26,0x39,0x44,0x4b,0xa4,0x45,0x93,0x8b,0x9b,0x76,0x23,0x38,0xe3, +0x25,0x15,0xac,0xb0,0x16,0xd6,0x64,0x87,0x40,0x25,0xaa,0x30,0xd1,0x5e,0x3a,0x96, +0x26,0x3f,0x65,0xa0,0xdd,0x7c,0x0f,0x0a,0x6e,0x99,0x9c,0x24,0xf5,0xb0,0x93,0x56, +0x04,0xfb,0x2c,0x36,0xb8,0xf7,0x04,0xc0,0x98,0x00,0x94,0x94,0x51,0xf9,0xeb,0xc3, +0x47,0x29,0xe4,0xa1,0x5d,0x5e,0x88,0x90,0xc7,0xa2,0x9d,0xe0,0x75,0xf9,0x51,0xb1, +0x94,0x65,0x33,0x19,0x35,0xbf,0x05,0x77,0xbb,0x86,0xc5,0xb5,0x7b,0xfb,0x06,0xae, +0xd7,0x13,0x9c,0x6c,0x90,0xf9,0xa6,0x95,0x58,0x78,0x35,0x5f,0xdf,0x38,0x14,0x2a, +0xcb,0x36,0x99,0x19,0x19,0xd5,0x47,0xdc,0x2d,0x98,0x5d,0x9a,0x82,0x52,0x44,0xb6, +0x47,0xde,0x99,0xb7,0x3e,0x6b,0xa6,0x5b,0x94,0x2b,0x95,0x51,0x01,0x96,0x8b,0xf9, +0x20,0x2d,0xc8,0x6c,0xd7,0x36,0x41,0xbd,0x04,0xd4,0xc7,0xaf,0x14,0xaa,0xde,0xaa, +0x2a,0xb1,0x08,0x3e,0x2e,0xb3,0x2f,0xe2,0x9b,0x93,0x56,0xff,0x5b,0xfa,0x6a,0xba, +0x2b,0xb0,0xf6,0x9e,0x56,0x30,0xe4,0x89,0x42,0xd6,0x86,0x3c,0xfb,0xf3,0x14,0xb8, +0xf1,0x17,0xd9,0x12,0x31,0x18,0x76,0x94,0x49,0x8b,0x54,0x47,0x5f,0x7e,0xb9,0xa8, +0x82,0x94,0x10,0x5b,0xc4,0x1a,0xff,0xd5,0x86,0xc4,0x5b,0x3d,0x5e,0xbc,0xa8,0x21, +0x33,0x25,0x8f,0x14,0x92,0xa7,0x4b,0x20,0x88,0xea,0x10,0x45,0x32,0x63,0x68,0xa2, +0x51,0x0c,0xfe,0xf2,0xb0,0x4f,0xd8,0xd4,0x60,0x9a,0xa2,0xb6,0xbb,0xf6,0xb9,0x30, +0xd3,0x4d,0x85,0x67,0x6f,0x24,0x43,0x32,0x87,0xe1,0x85,0x21,0xf9,0xe1,0xf6,0x77, +0x0e,0xf5,0x6e,0x55,0x9d,0xde,0x2d,0xcc,0xe0,0x36,0xe1,0xf3,0x87,0x65,0x60,0xa0, +0x00,0xa9,0x39,0x36,0xb1,0x22,0x68,0x50,0x0e,0xeb,0x00,0xe0,0x5c,0xb3,0xcf,0xd2, +0xe9,0x3a,0xa8,0xe7,0xa8,0x28,0x26,0x77,0xa2,0x4a,0x29,0x0f,0xf0,0xc8,0x4a,0x71, +0x03,0xa9,0xb7,0xdc,0x33,0xd9,0xf1,0x13,0xa0,0x81,0xe9,0x9e,0xd4,0x04,0x31,0x76, +0x62,0x08,0xb1,0x72,0x32,0xdf,0xed,0x0a,0x60,0x57,0x4f,0x44,0x72,0x25,0x0a,0x18, +0xe9,0x13,0xda,0x05,0x9a,0x8f,0xd8,0x06,0x03,0xf3,0x64,0xcd,0xfb,0xc7,0xca,0x61, +0x82,0x08,0xf2,0x1e,0x15,0x41,0xc2,0xe7,0xa8,0xe6,0x1a,0xb8,0x60,0xb4,0xb5,0xef, +0x0d,0xcb,0x7b,0x6f,0xf0,0xb0,0x0b,0xd1,0x60,0x08,0x12,0xde,0x80,0x91,0x4d,0x1c, +0x8f,0x70,0x84,0x15,0x70,0x53,0x92,0xbd,0xf8,0x25,0x87,0x8d,0x38,0x6d,0xba,0x4a, +0x04,0xb1,0xba,0xce,0xf0,0x7b,0xea,0x93,0xb7,0xed,0x12,0x7f,0xa1,0xe7,0x84,0x88, +0x8f,0x04,0x32,0x3e,0x96,0xdb,0x5f,0x8b,0xcf,0xc0,0x7a,0x0e,0x39,0xaa,0x31,0x4d, +0xd6,0xa3,0xfb,0xb2,0x18,0x89,0x6b,0x58,0x6b,0xcf,0x16,0x5c,0xb6,0xc1,0x4e,0xa8, +0xd7,0x93,0x83,0x58,0xf0,0xdf,0x09,0xcf,0x20,0x2b,0xa5,0x7a,0x22,0x60,0x90,0x10, +0x26,0x89,0xcc,0x81,0x12,0xe2,0x74,0x17,0x4b,0x5f,0x81,0xd7,0x64,0x1e,0x5c,0xbd, +0x2d,0x53,0xf2,0x8d,0xb3,0xd6,0x45,0x87,0xc6,0xfc,0x80,0x9d,0xf3,0x96,0xe0,0x05, +0xd3,0x6f,0x00,0xf7,0x5b,0x62,0x6b,0xf9,0x0b,0x02,0xf7,0xa7,0xf1,0x32,0x45,0xcf, +0x1d,0xd9,0xd1,0x77,0x31,0x83,0x96,0x51,0xf3,0x48,0xc1,0xd7,0xd2,0x33,0xfc,0x3f, +0x55,0x14,0xdc,0xc1,0x93,0xb4,0x74,0x3d,0xe5,0xa6,0x8e,0x68,0x1a,0x24,0xf3,0x32, +0x33,0x58,0xf2,0xd8,0xbe,0xb3,0x24,0x74,0x7d,0x4d,0x2e,0x07,0xff,0xc8,0xf1,0xbf, +0x01,0x73,0xbd,0xc1,0xc1,0xec,0x35,0xa1,0x0c,0xdb,0xab,0xe3,0x13,0xf5,0x32,0x29, +0xa3,0x72,0x4d,0x15,0xfb,0x75,0x9d,0xa1,0xb6,0x54,0xa5,0x05,0x6d,0x86,0xb7,0x59, +0xc9,0xa7,0xe6,0x3f,0xf7,0x35,0x23,0xce,0x97,0x51,0x8a,0x85,0x7e,0x98,0xce,0x6c, +0xf5,0x5b,0xb6,0x67,0x3f,0x28,0x15,0x49,0xca,0x49,0x86,0xb8,0x70,0x6e,0xd8,0xe9, +0xdf,0xaf,0x78,0x0f,0x52,0x04,0xd7,0x6f,0xc4,0xf5,0x18,0xd2,0x99,0x5a,0xdb,0xb7, +0x2b,0xbc,0x8f,0x1f,0x5b,0xa9,0x2d,0x3b,0x03,0xb5,0xa1,0xe4,0xd8,0x3b,0x7d,0x2a, +0x86,0xa1,0x02,0x57,0xc5,0x7d,0x46,0xfc,0x8b,0xe3,0x16,0x68,0x0b,0x83,0xfa,0xa7, +0x88,0x78,0x31,0xae,0x59,0xc2,0xf6,0x65,0xe9,0x59,0xa6,0x78,0x3d,0x1e,0x3f,0xee, +0x5f,0x11,0xf9,0xc1,0xda,0xc1,0xa8,0x6d,0x9b,0x03,0x17,0x69,0x0c,0x83,0x74,0x3b, +0x07,0xa2,0x34,0xae,0xaf,0x51,0x01,0x9b,0xe5,0x3d,0x73,0x62,0xc8,0x3c,0xbb,0x86, +0x7a,0x0c,0xf8,0x17,0x27,0x95,0x50,0x20,0x2f,0xcd,0xc6,0x9c,0xf7,0xac,0xf1,0x31, +0x3a,0x88,0xf1,0x35,0xb2,0xa7,0x72,0xaf,0x65,0xcc,0xda,0x37,0x54,0x71,0xfa,0x90, +0xfb,0x8b,0x19,0x67,0xfb,0x2f,0xce,0xa6,0xca,0xa0,0x72,0x54,0x8d,0x8c,0x77,0x53, +0x89,0x28,0xdf,0xc1,0x34,0xa8,0xbd,0xb7,0xa6,0x7b,0x83,0xc4,0x8c,0x4c,0xa0,0x12, +0x55,0x9f,0x1f,0xc4,0xfc,0x16,0x4a,0x80,0xea,0x79,0xce,0x53,0x3e,0xe9,0x74,0x73, +0x34,0x60,0x90,0x24,0xfc,0xf5,0x40,0x62,0xe4,0xc1,0xa2,0xf9,0x3f,0x04,0xd7,0xa5, +0x03,0xe7,0xd9,0xa7,0x92,0x26,0x09,0xe1,0x2c,0x74,0x31,0xe3,0xe3,0x59,0xd1,0x23, +0x83,0x8e,0x89,0xe4,0x34,0xa8,0x55,0x82,0x9b,0x5b,0x87,0x71,0x36,0x64,0x2e,0x0a, +0x77,0x81,0x23,0x8c,0xf6,0xe7,0x62,0x0f,0x5e,0xa4,0xb5,0xc6,0xb0,0xa7,0xf8,0x9e, +0x6e,0x2b,0x5c,0xff,0xbe,0x04,0x22,0xbb,0xac,0xd2,0x84,0x32,0xd0,0x6f,0x78,0x84, +0x8a,0x73,0xdb,0xfc,0x88,0xac,0x0d,0x77,0x06,0x92,0xd3,0x9c,0x77,0xe5,0x7b,0x8a, +0xc9,0xc9,0xa4,0xd8,0x5f,0x8b,0x0e,0xdd,0x48,0xaa,0xbb,0xff,0xd9,0xc2,0xe2,0x2b, +0x26,0x21,0x82,0xfd,0xb9,0xa3,0x48,0x82,0xa2,0x83,0x00,0x9d,0xd2,0x51,0xea,0x3b, +0x27,0xcf,0x9c,0x88,0xf6,0xd5,0x44,0x23,0xad,0xed,0x0f,0x8e,0x41,0x1c,0xad,0x9b, +0x0a,0x85,0x23,0xa2,0x71,0xa8,0x0d,0x33,0x4e,0xf7,0x8b,0x7e,0xb2,0xea,0x61,0x83, +0xbc,0x0a,0x93,0xb7,0x27,0xe2,0x7d,0x09,0x24,0x77,0x3b,0xfb,0x13,0x50,0x51,0xe0, +0x4c,0x48,0x9c,0x79,0xbb,0x36,0x4c,0x20,0x8e,0xee,0xb8,0x0c,0x56,0x91,0xd9,0x70, +0x06,0x31,0xfe,0x14,0xdf,0x26,0xa5,0xe7,0x63,0x59,0xc1,0x5b,0x51,0x4e,0x5d,0xe1, +0x26,0x35,0xa5,0x47,0xb0,0x9b,0x6f,0x4d,0x47,0x90,0xbb,0x5b,0x1e,0x09,0x4d,0x20, +0x0a,0x13,0x95,0xa6,0xe6,0xbc,0xaa,0x73,0xa5,0xde,0x7d,0x4e,0xde,0xe8,0x1c,0xb0, +0x8a,0x9b,0x86,0x86,0x37,0x1e,0xb0,0x32,0x38,0xd7,0x0c,0x0e,0x4c,0xb9,0xd8,0x30, +0xa5,0x32,0xcc,0x16,0x62,0x18,0xc4,0x70,0x8d,0x67,0x50,0x69,0x9c,0x25,0xd1,0x21, +0x0a,0x99,0xdb,0xcb,0x39,0x30,0x4d,0xea,0xd5,0x77,0x0a,0x0f,0xff,0xbb,0x2a,0x31, +0x25,0x30,0x6c,0x90,0xb9,0x18,0x05,0xf1,0xbb,0x7a,0x9d,0x44,0xd1,0xfa,0x5e,0x66, +0x84,0xe3,0xf6,0x12,0x78,0xb5,0x20,0x72,0xcf,0xde,0x00,0xc8,0x87,0x7f,0x85,0xf4, +0xf8,0x9f,0x2f,0x1c,0xd7,0x2e,0x3b,0x38,0xed,0x8c,0xf4,0xb8,0x8a,0x74,0x3f,0xd4, +0x11,0x66,0x0b,0x1d,0xf8,0xb0,0x9c,0x66,0x4d,0xd3,0xb3,0x36,0x15,0x10,0x0f,0x5f, +0x0c,0x24,0x97,0xd8,0x63,0xb1,0x07,0xdb,0xe1,0xb3,0xe7,0xba,0x08,0x72,0x21,0xa8, +0xd1,0xf0,0x67,0xbc,0xd5,0x5d,0xf7,0xfa,0xec,0x7b,0x09,0x9e,0x32,0xf5,0x37,0xe8, +0x8a,0x22,0x6f,0x1e,0x49,0x10,0x76,0xba,0x63,0x56,0xe6,0xfb,0x82,0xf6,0x05,0xda, +0xad,0x3d,0xd9,0xfa,0x33,0x18,0x30,0x09,0x61,0x58,0xf6,0x90,0x9f,0xde,0xd0,0xea, +0x0e,0x3e,0x79,0xee,0x1e,0x3e,0x77,0x19,0x6d,0x78,0x79,0x17,0x91,0x74,0x04,0xe6, +0x80,0x80,0x40,0x9a,0x7b,0x2f,0xa3,0x08,0xbc,0x71,0x27,0xd4,0x71,0xc1,0xc8,0x80, +0x65,0xfe,0x9a,0x75,0x17,0x63,0x4d,0xb4,0x1d,0xd2,0x58,0xa5,0x51,0x65,0x3b,0xe9, +0xee,0x4d,0x05,0x76,0xfc,0xa7,0x2f,0x2d,0xc6,0xc0,0x07,0xd6,0x54,0xef,0xe5,0x61, +0x01,0x85,0xbf,0xe4,0x32,0x43,0xba,0x19,0x1d,0x72,0x20,0x0a,0xc5,0x21,0x80,0xc4, +0xf8,0x09,0x5c,0xc0,0x1c,0x8b,0x54,0x00,0x56,0x5f,0xcd,0x9a,0x42,0x26,0x0a,0xee, +0x05,0xa7,0x17,0x55,0x37,0x67,0x15,0x04,0xbd,0x65,0x3b,0xb4,0x47,0x75,0x21,0xf7, +0x8a,0x44,0x2d,0xdb,0x93,0x46,0x44,0x07,0x3d,0x04,0x11,0x0c,0x29,0x08,0x19,0xe3, +0xfa,0x94,0x09,0xd6,0x64,0x8a,0xdd,0x8c,0xcb,0x06,0x19,0xf1,0xea,0xf8,0xa2,0x48, +0x5c,0xf5,0xbc,0x39,0xf8,0xa9,0x2c,0x24,0x4e,0xca,0xc2,0x2c,0x84,0xa9,0x42,0x0d, +0xe8,0x0f,0xaa,0xd6,0xf0,0x79,0xda,0x25,0x3b,0x0b,0x65,0xcd,0x3d,0x96,0x19,0x0b, +0x4a,0xce,0x1b,0x89,0xda,0xb5,0x46,0xad,0x8e,0x28,0xb3,0x39,0xb3,0x9a,0xfd,0xf9, +0x2a,0x0f,0xd5,0xff,0x95,0x0e,0xdb,0x42,0x4b,0xac,0x5b,0xb8,0x03,0xc6,0x22,0x0a, +0xbf,0x01,0xc3,0x8b,0xcc,0x24,0x0b,0x58,0xef,0x73,0xed,0xab,0x88,0x64,0x3c,0xb7, +0xd6,0x02,0xf4,0x51,0xf9,0x6d,0x52,0x44,0xb7,0x5d,0xe1,0x3b,0x8d,0x65,0xbc,0x6e, +0x2b,0x08,0x47,0xb0,0x92,0x6f,0x6d,0x61,0x45,0x78,0x57,0x90,0xd2,0x2f,0xff,0x26, +0x28,0x09,0x48,0x2e,0xcb,0x41,0x80,0x79,0xd9,0x02,0xde,0x95,0xa7,0x2d,0xf6,0x7d, +0x3e,0x8b,0x1c,0x00,0x36,0x95,0xe2,0x3d,0xc1,0xaf,0xe6,0xa3,0x38,0xdb,0x8d,0x14, +0x13,0x11,0x10,0x10,0x37,0x94,0x14,0xb8,0xe3,0xb6,0x23,0x06,0xb1,0x11,0xf7,0x78, +0x3e,0x67,0x45,0x14,0xde,0xb3,0x2b,0xa8,0x6d,0xa4,0x12,0x38,0x70,0x92,0x53,0xb9, +0xa1,0xb7,0x4d,0x04,0xdf,0xb2,0x5e,0x41,0xe9,0x5c,0xc3,0xa8,0xd1,0x31,0x7c,0x3f, +0x8e,0x19,0xc0,0xe0,0xdb,0xa4,0x94,0x70,0x2d,0x5c,0x8d,0xcd,0x74,0x36,0x34,0xf7, +0xde,0x1a,0x95,0xe8,0x35,0x77,0x03,0xf5,0x65,0x37,0x64,0x0a,0x75,0x37,0x25,0x77, +0xaa,0xea,0xdf,0xc1,0x91,0xe7,0xd1,0x1c,0xea,0x17,0xf7,0x1a,0xc1,0xc7,0x14,0x75, +0x06,0xe8,0xd0,0x2b,0x3e,0x91,0x7e,0xb1,0xef,0xac,0xfb,0xb2,0x2d,0x7d,0x07,0xa1, +0x94,0x28,0x9c,0x08,0x3e,0x9d,0x36,0xb9,0x89,0x5e,0xd0,0x0c,0xfa,0xdf,0x98,0xeb, +0x45,0x75,0x90,0x18,0x7b,0xa6,0x9f,0xff,0xab,0x19,0xe6,0x3e,0xf9,0xd2,0xde,0x89, +0x49,0xb5,0x47,0x1c,0xd6,0xbb,0xe1,0x31,0x4b,0xf7,0xea,0x4f,0x54,0xf7,0x69,0x95, +0xaa,0x1a,0xbb,0xad,0x50,0x6b,0x57,0xbd,0x41,0xb2,0xa7,0x42,0xf7,0x19,0x26,0x7e, +0x26,0x91,0xc3,0x0c,0x6a,0x2e,0x52,0xcc,0x59,0xaf,0x14,0x1c,0xe4,0xad,0x51,0xab, +0x7f,0x12,0xa8,0xd5,0x38,0x5d,0xdd,0x10,0x5b,0x10,0x69,0xf5,0x7d,0xc6,0x3f,0xb6, +0xac,0xbc,0x07,0x49,0x83,0x52,0xef,0x17,0x08,0x1e,0x17,0x69,0x8b,0xc1,0x16,0xfc, +0x0e,0x0f,0x10,0xdc,0x9f,0x24,0xa0,0x11,0x8f,0x12,0x43,0x79,0xf5,0xd0,0xa2,0x80, +0xea,0x8b,0x3c,0x74,0xff,0x41,0xf7,0x5d,0xe7,0xc6,0x22,0x61,0x96,0xe0,0xfb,0x81, +0xe4,0x9a,0x29,0xd6,0x3b,0xe3,0xf8,0xb6,0xbf,0xcc,0x86,0x02,0x97,0xf0,0x7b,0x02, +0x27,0xc0,0x9f,0x32,0x19,0x04,0xc7,0xbf,0x2d,0xf3,0xf9,0x23,0x5d,0x3b,0xf8,0xf5, +0xb6,0x70,0x6d,0xb9,0xfe,0xac,0x95,0xbc,0x24,0x95,0xb1,0x33,0x5c,0x3a,0x48,0x38, +0xa7,0x7b,0x82,0x56,0x15,0x44,0x97,0x99,0xa7,0x12,0x30,0x0f,0xdb,0x52,0x17,0x0d, +0xa4,0xe0,0xec,0x96,0x1b,0x5e,0xbc,0xf7,0x04,0x36,0x68,0x9e,0x6f,0xa7,0xd5,0x21, +0x04,0x21,0xdf,0x5f,0x1b,0x20,0x0a,0x8b,0xe0,0x8b,0xb9,0x62,0xa9,0xc6,0xd6,0xb1, +0x05,0x8b,0xed,0x73,0x91,0x25,0xa0,0x73,0xbf,0x78,0x39,0x65,0x28,0x89,0xda,0xe2, +0x68,0x03,0x20,0x8a,0x1a,0x7e,0x3a,0x22,0xce,0x2f,0x94,0x1a,0x00,0xaa,0xd2,0xf2, +0x29,0xc6,0xb6,0x9a,0x1b,0x0c,0x1a,0x2b,0xac,0xcf,0x1a,0x2f,0xbc,0x46,0xdc,0xed, +0xbf,0xf9,0x63,0x9e,0xf2,0x2b,0x74,0xdb,0xc4,0xc5,0xf5,0x8f,0x23,0x6d,0x72,0xb3, +0x2a,0x50,0x6b,0x8e,0xf3,0x2a,0xcd,0xa2,0x6e,0xcd,0x3c,0x3d,0xdf,0x16,0x9b,0x28, +0xf1,0xe9,0x70,0x3e,0x52,0xa5,0xcb,0xd2,0xbd,0xf1,0x94,0x66,0x5f,0x7c,0xc5,0xb8, +0xa3,0x70,0xd2,0xa1,0xea,0xc1,0x85,0x04,0xd9,0x12,0x3a,0xfb,0xf6,0xe5,0x5b,0xc9, +0x64,0x71,0xe4,0xcd,0x70,0x7c,0x8e,0x2c,0x33,0xb8,0x4c,0xfc,0xce,0x11,0x13,0xd9, +0x0e,0x10,0x0c,0x9f,0x93,0x54,0x97,0x04,0x15,0x52,0x7f,0x82,0xd7,0xae,0x7e,0x0f, +0x4c,0x71,0xfa,0x64,0x70,0x35,0x0a,0xae,0xa6,0xd2,0x70,0x76,0x2a,0xf1,0x39,0x61, +0x1d,0x1c,0x2d,0xd1,0xf7,0xb3,0x02,0xbe,0xe8,0x57,0xbc,0x32,0x43,0x66,0xe5,0x07, +0x68,0x33,0x5a,0x85,0x84,0x1f,0x3d,0xa7,0x4c,0x3b,0x8d,0xa2,0xf2,0xea,0x7b,0xbb, +0x4e,0x82,0xa5,0xbf,0x5c,0xe3,0x3c,0xf3,0xc3,0x5e,0xdd,0x04,0x4a,0xb1,0xa4,0x52, +0x94,0x8f,0xf3,0x42,0x30,0x8d,0x98,0x7d,0x67,0xb4,0x18,0x78,0x77,0x94,0xac,0x42, +0x95,0x60,0xe4,0x52,0x31,0x62,0x90,0x60,0x63,0xdd,0xfc,0xd2,0xf5,0xfd,0x69,0xa5, +0x95,0xa5,0x1a,0x00,0x60,0xbe,0xaa,0xe2,0xc2,0x0b,0x2a,0xe6,0xd2,0x0d,0xff,0xf7, +0xcc,0x67,0xd5,0x29,0x4a,0xdb,0xf9,0x0e,0xef,0x96,0x4b,0x95,0x00,0xf1,0x7c,0x05, +0x44,0x79,0xc4,0xce,0x3f,0xf9,0x48,0x9f,0x85,0x39,0xf0,0xc7,0x95,0xc8,0xd3,0xe8, +0x1b,0xc6,0x38,0xd9,0xf7,0xe9,0x2a,0x3e,0x63,0x8e,0x41,0x3c,0x97,0x06,0xe7,0x0f, +0xdd,0xeb,0x9d,0x7c,0xd0,0x17,0x9b,0x38,0xf8,0xd0,0xcf,0x2b,0xfa,0xdc,0x29,0xae, +0x2d,0xa5,0xe7,0x82,0xbb,0xf9,0x61,0x59,0xe1,0x99,0x85,0x5d,0x51,0x06,0x99,0x37, +0xd1,0xdd,0x05,0x8e,0x58,0x47,0x2f,0x46,0xcb,0x5b,0xfe,0xd9,0xdf,0x90,0x14,0xba, +0x3f,0xdf,0xf4,0xdb,0x1c,0x0c,0xbe,0x7e,0x56,0x22,0x7a,0x39,0xff,0xdd,0x3e,0xe3, +0x0b,0x61,0xe3,0xeb,0x57,0x2e,0xf7,0x7a,0xdd,0x9f,0x14,0xa8,0x20,0xf6,0x22,0xaf, +0x52,0x16,0xb6,0xe6,0xb9,0xfd,0x48,0xf2,0xe9,0x64,0x53,0x3f,0x5c,0xbe,0x3e,0xc9, +0x23,0x40,0xba,0x80,0x31,0xe3,0xc4,0x53,0x6e,0x2c,0x47,0x57,0x66,0xb6,0x2b,0x0e, +0x37,0xf5,0x64,0x86,0x19,0x2b,0x1c,0x30,0x22,0xbe,0x9e,0x91,0x32,0x21,0x1d,0x09, +0x86,0xb9,0xbf,0xb0,0xb1,0x80,0x73,0x29,0xc1,0x02,0xef,0x99,0xd9,0xb8,0xdc,0x95, +0xa0,0x03,0x09,0x54,0x81,0x8e,0x67,0x89,0x2a,0xf0,0x8f,0x98,0x3a,0x10,0x97,0x3e, +0x68,0x57,0xd5,0xc0,0x3e,0x14,0x48,0x75,0xb5,0x21,0x22,0x02,0xdd,0xe2,0x88,0x30, +0x3b,0x08,0x58,0xa4,0x1b,0x2a,0x0d,0xe3,0x33,0xe8,0xdc,0x76,0x15,0xf8,0x3f,0xfd, +0x8b,0xdc,0xc7,0xe0,0x9a,0x02,0x69,0x9e,0x4d,0xeb,0xd5,0xa5,0xf6,0xed,0x53,0x50, +0xa0,0x47,0x7e,0xf8,0x67,0x74,0xcc,0x01,0x43,0x58,0x87,0x97,0x9b,0xe2,0x7c,0xa0, +0xa4,0x05,0x57,0x9f,0x5b,0x87,0x2c,0x8d,0xaa,0x58,0xa8,0x9d,0x6e,0xc7,0xf7,0xf4, +0x09,0xdc,0x8a,0xef,0x6b,0x01,0x1b,0xba,0x69,0xbf,0xd2,0xa4,0xb0,0x03,0x7d,0xa0, +0x61,0x80,0xd4,0x7e,0xae,0xac,0x13,0x69,0xcc,0x62,0x42,0xa9,0xf9,0x21,0xda,0x26, +0xb7,0xb4,0x8a,0x0c,0xb7,0x86,0x0d,0x5b,0xe6,0x6b,0xd9,0xc2,0x30,0x88,0x5e,0x58, +0x0c,0x05,0x02,0xad,0x01,0x6d,0x6c,0xc0,0x2b,0x48,0xc0,0x7d,0xa1,0xb1,0x42,0x44, +0x0d,0x04,0xf4,0x90,0x96,0x4f,0x64,0xd1,0x95,0x90,0x83,0xca,0xfe,0xe4,0x43,0xcd, +0xab,0xac,0xf9,0xbe,0xfe,0xd1,0x32,0x29,0xb3,0x20,0x3f,0xf6,0xdb,0x5c,0x53,0x99, +0xc7,0xa2,0xb5,0x68,0x72,0xb5,0x41,0x7b,0x78,0xe2,0xdf,0x1d,0xcf,0xe4,0xa3,0xbc, +0x5b,0xb0,0x3a,0x01,0xdb,0x13,0x6b,0xd3,0x0e,0x3c,0xaf,0x20,0x51,0xb3,0x0d,0x14, +0x7d,0x37,0x5c,0xe7,0x45,0xe4,0x1d,0xc3,0x5f,0xa0,0x5c,0xd4,0x56,0x7b,0xc5,0xe1, +0x2c,0xa9,0xbb,0xb9,0xbe,0x9d,0x72,0xe1,0xe4,0x7a,0xab,0x10,0xd1,0x70,0xae,0xac, +0x7d,0x10,0x9a,0x7d,0xbd,0xef,0x63,0x08,0x14,0x57,0x18,0x31,0xd0,0x19,0x1e,0xa0, +0x4a,0xa7,0x40,0x64,0x74,0xe4,0x02,0x73,0x40,0xf9,0xa2,0x02,0x41,0xd3,0x1a,0x68, +0xc8,0x71,0x95,0xee,0x96,0x83,0x54,0x5c,0x65,0x5c,0xd4,0xe4,0xf4,0x07,0x3b,0xc7, +0xc1,0x33,0xfb,0xf1,0x49,0x5a,0xc2,0x65,0xc3,0x57,0x6d,0x22,0x30,0x26,0x75,0x2e, +0x2c,0xba,0x35,0x5d,0x16,0xb1,0x5d,0x75,0xc2,0xf5,0xe7,0x13,0xd1,0x05,0x5f,0xa6, +0x8d,0x13,0x36,0xfb,0x36,0xe4,0x86,0xb9,0x46,0xf5,0xa8,0x01,0x00,0xd7,0xf1,0x70, +0xaf,0x54,0x22,0xef,0x4d,0xcf,0x24,0x08,0x96,0x1b,0x98,0x19,0x1a,0xa6,0x82,0x61, +0x62,0x57,0x43,0x47,0x0b,0xc5,0x5d,0x99,0x17,0xa5,0x40,0xd7,0x78,0x2b,0xe3,0x06, +0xa8,0x8b,0xf1,0xa1,0x50,0x8a,0x07,0x0c,0xef,0x52,0x89,0x10,0x12,0x08,0x10,0x57, +0x49,0x18,0xc6,0x2a,0x09,0x49,0x5e,0xc8,0x6c,0x55,0x13,0x04,0x90,0x31,0x06,0xdc, +0x02,0x9d,0x8e,0x7c,0x21,0x7d,0x0c,0x1e,0x7b,0xf0,0x53,0x9c,0x7f,0xf0,0x3e,0xb8, +0xc8,0x08,0x7f,0xc5,0x98,0xd3,0x4f,0x29,0xa6,0xf3,0xc1,0xd9,0x5d,0xd3,0x43,0x27, +0xad,0x16,0x27,0x55,0x3c,0x0d,0x09,0x1f,0xd8,0x19,0x27,0x15,0x11,0x32,0x7b,0x02, +0x02,0x70,0xea,0x36,0xeb,0x5f,0x87,0x23,0xcb,0xe0,0x1c,0xb9,0x57,0xa2,0xf9,0x2d, +0x3b,0x3d,0x68,0x76,0x04,0x0c,0x6f,0x13,0xd1,0xe0,0x86,0x9b,0x9f,0x6b,0x45,0x1c, +0xea,0x57,0x9b,0xb7,0x6b,0x7d,0xcc,0x02,0x9a,0xe3,0x71,0x47,0xdb,0x8e,0x94,0x48, +0xf6,0x83,0x7b,0x77,0xc5,0xcd,0x48,0x12,0x52,0x81,0xc7,0x8a,0x3c,0xb0,0x32,0xa4, +0x16,0x29,0xf8,0x57,0x7d,0x65,0x21,0x12,0xc6,0xd2,0x70,0x80,0x44,0xa9,0x84,0x21, +0x6d,0x23,0x9e,0xfc,0xb6,0x22,0xc6,0xf7,0xb4,0x38,0xbd,0x04,0x64,0x22,0x37,0xa5, +0x8f,0x58,0xe5,0xba,0x92,0xa0,0x79,0xbf,0x33,0x83,0xe7,0x53,0x71,0xe2,0xb9,0x20, +0xad,0xc5,0xed,0xd7,0x76,0xa8,0xbd,0x88,0x2e,0xb6,0x01,0xff,0x70,0xe3,0xe2,0x17, +0x86,0x3c,0xc0,0x0f,0x1f,0xe8,0x2a,0x7a,0xa5,0xa2,0xd0,0x2e,0xb7,0x3b,0x32,0x1d, +0x55,0xcb,0x66,0x5f,0x0d,0x09,0x96,0xa1,0x4e,0x6b,0x84,0xee,0xa6,0x72,0xf1,0xf2, +0xc0,0xc8,0xaf,0x07,0x9a,0xa3,0x71,0xd0,0x25,0x29,0xbf,0xf3,0x94,0x89,0xac,0x98, +0x59,0x3a,0x7f,0x6c,0xe5,0xee,0x05,0xfe,0xad,0x14,0xbb,0x0e,0x7c,0x14,0x7a,0x6a, +0x0d,0xcc,0xbb,0xfd,0xb9,0x07,0xc2,0x1d,0x40,0x13,0xb6,0x86,0xb4,0xa1,0x10,0xba, +0x03,0x20,0x12,0xaf,0x7b,0x6b,0x04,0xcb,0xba,0x5e,0xfc,0x00,0x81,0xa2,0x7f,0x5b, +0x67,0x3d,0xbf,0xd9,0xad,0xf9,0x4d,0x53,0xc0,0x7f,0x08,0xa8,0x00,0xe6,0x38,0xa9, +0xae,0x1d,0x34,0xc9,0xbd,0x9d,0x05,0xcb,0x40,0x62,0xdb,0x6f,0x3e,0xf4,0x1a,0xbf, +0x80,0x7d,0x47,0x75,0x4c,0xf2,0xec,0x62,0x22,0x7d,0xee,0x59,0x1e,0xa3,0x7c,0x17, +0xce,0x92,0xb4,0x0a,0xdc,0xdb,0x02,0x06,0xe8,0x27,0xe4,0xb2,0x5c,0x71,0xe1,0x70, +0xd8,0x3f,0xbd,0xd7,0x5d,0x71,0x7f,0x93,0x13,0x2d,0xcb,0x0b,0x1d,0x31,0x13,0xaf, +0x51,0x22,0xef,0x6c,0x5c,0x50,0x35,0xb7,0xec,0xc3,0x83,0x02,0xd6,0xb3,0x71,0xa0, +0x47,0xb4,0xbd,0xe9,0x55,0x94,0xcc,0xf2,0xc1,0x96,0x18,0x74,0x66,0xfc,0x52,0x6b, +0x4f,0x98,0x14,0xf6,0x29,0x7f,0x79,0xcd,0x59,0x00,0x1e,0x02,0x7f,0xb4,0x3d,0xc7, +0x8f,0x16,0x1d,0xcf,0xd5,0x27,0x6d,0xca,0xe0,0xb7,0x73,0x95,0x51,0xed,0x92,0xa0, +0xd5,0xd5,0xb4,0x2f,0x12,0x68,0xac,0x77,0x94,0x47,0xed,0x62,0xb3,0xf6,0x7f,0x8e, +0xf9,0xdd,0x0a,0x15,0x3f,0x3a,0xf6,0xca,0x53,0x7b,0xaa,0xbe,0x7a,0xf1,0x47,0x70, +0xc6,0xda,0x7f,0x6d,0x4f,0xd5,0x3f,0xab,0x43,0x74,0xed,0x42,0x7d,0x54,0x99,0x0e, +0x79,0xf8,0x67,0xef,0x83,0x19,0xe6,0x58,0x9e,0xf2,0x6a,0x1e,0xca,0x55,0x8c,0x3a, +0x4c,0x34,0x91,0x32,0x63,0x14,0x75,0x8b,0xe5,0x24,0x6a,0x8e,0xbe,0x54,0x7e,0xdf, +0xc5,0xed,0xb8,0x2c,0x76,0x39,0x56,0x6e,0xe1,0x71,0xb5,0xeb,0x5e,0x7e,0x50,0x67, +0x47,0x90,0xce,0xb8,0xcc,0xd3,0x2a,0x7e,0x4e,0xdc,0xc0,0xb3,0x5c,0x15,0xd3,0xa9, +0x45,0x0f,0xf5,0xde,0x45,0xa5,0x21,0x78,0xc8,0x73,0x6c,0x6b,0x9f,0x0f,0x90,0xa8, +0xd9,0xdd,0x88,0x9f,0xef,0xa4,0x77,0xef,0xe9,0xd6,0xa6,0xe4,0x5a,0x20,0x01,0x66, +0xff,0xdd,0xe2,0x04,0xb7,0x8b,0xaa,0xa5,0x4e,0xca,0x7c,0x5b,0x9a,0x3a,0x32,0x8f, +0xfe,0x8c,0xd0,0x9c,0xb9,0x0c,0xa7,0xbf,0x22,0x45,0xf9,0x74,0x01,0x7a,0x51,0x76, +0xcc,0x6e,0xdd,0x99,0x79,0x09,0xc6,0xda,0x7f,0x2c,0xcb,0x27,0x63,0xbb,0xea,0xef, +0x87,0xe0,0x49,0xa0,0xae,0x38,0x60,0x4f,0xa0,0x47,0xe8,0x4f,0x76,0x73,0x22,0x51, +0x03,0x34,0x00,0xf1,0x70,0xb9,0xf3,0x48,0x9a,0xa5,0x8a,0x4a,0xf1,0x01,0xd8,0x22, +0x30,0x52,0xce,0x6d,0xfa,0x94,0x78,0x8e,0xb8,0xda,0xa0,0x53,0x30,0x30,0x18,0xd7, +0xe5,0x66,0xb9,0x62,0x6b,0x29,0x72,0x55,0x23,0xbd,0x8b,0xb4,0x71,0x03,0xb1,0x75, +0x06,0x85,0x91,0x51,0xdb,0xb6,0xec,0x58,0x77,0x56,0xa1,0x52,0x3a,0x36,0x8d,0xcf, +0xd6,0xd5,0x64,0x7a,0x95,0x4a,0x73,0xe8,0x10,0xf5,0xad,0xca,0x33,0x43,0x10,0x1a, +0x9b,0x01,0xd0,0x1e,0xaa,0xf0,0xda,0x8d,0x0d,0x41,0x25,0xaf,0x35,0xe2,0x19,0x0b, +0x3b,0x97,0xfc,0x4a,0x65,0x9c,0xec,0x6e,0x29,0xbc,0x71,0x2f,0x9d,0x04,0x89,0x47, +0x78,0xd7,0xea,0xdd,0x95,0x80,0x9f,0x19,0xdf,0xd2,0xbb,0xd7,0xac,0x7d,0xea,0xdd, +0x8f,0xce,0xe2,0xfa,0x1c,0xcf,0x67,0x5d,0xfa,0x8d,0xaa,0x4b,0xb3,0x1d,0x4a,0x78, +0x49,0x4d,0x95,0x5c,0x68,0x21,0x72,0x1a,0xb6,0x41,0xa2,0x5b,0xb2,0x1c,0xeb,0xd1, +0x8c,0x17,0xb3,0xc9,0xf4,0x81,0x93,0xe9,0xcf,0x93,0xab,0x4a,0x33,0x3f,0x77,0xc6, +0x09,0x0b,0x0b,0xb9,0xba,0xf4,0x63,0xfb,0x4b,0xae,0xa3,0x7f,0xdd,0xe2,0xfc,0x82, +0x00,0x52,0x82,0x00,0x5e,0x70,0xac,0x5b,0xed,0xad,0x5d,0x4b,0x91,0xf6,0xb4,0xa1, +0x45,0x5e,0x94,0x8d,0xbe,0x97,0xe7,0x8b,0x0d,0xca,0x79,0xda,0x10,0x75,0xd3,0x5a, +0x93,0xde,0xcd,0x04,0x59,0x19,0x72,0x5e,0x15,0xc4,0x95,0x4b,0x7d,0x8f,0xb5,0x56, +0x63,0x33,0x1f,0xd5,0xf9,0x71,0x1d,0x76,0x1c,0xe5,0xe4,0xcb,0x90,0x77,0x1c,0xc4, +0xd3,0xcd,0x9b,0xd1,0x34,0xff,0x54,0xa0,0x3f,0xd9,0x95,0x92,0xb0,0x74,0x97,0xd2, +0x5c,0xb4,0xd4,0x2c,0xef,0x8e,0xf0,0x83,0x1b,0x4e,0x64,0x0e,0x63,0x38,0x5d,0xc5, +0x0b,0xe0,0xed,0x39,0x5e,0xcd,0x2b,0xd9,0x09,0xe7,0xdd,0xd1,0xc1,0x1a,0x12,0xc4, +0xa5,0x6c,0x86,0x3d,0x21,0xfa,0x38,0x67,0x0a,0xc6,0xa2,0x71,0x9d,0x9b,0x0e,0x09, +0xc9,0x57,0x50,0xf2,0xb8,0x58,0x4c,0xaa,0xdb,0x81,0xf7,0x6c,0x6c,0x63,0x06,0x98, +0x2a,0xf9,0xd2,0x7c,0x3d,0x77,0x6b,0xde,0x11,0x16,0xa1,0x5a,0x12,0x52,0x57,0x19, +0xf8,0x58,0xbd,0x7e,0x93,0x97,0x76,0xe9,0xfc,0x41,0xe6,0xd7,0x5f,0x6a,0x56,0x0f, +0xce,0x9b,0xc8,0xbd,0xe3,0x7b,0x5e,0xdf,0x9b,0x5f,0x1e,0xce,0xd2,0x70,0xfe,0xb7, +0x0b,0x5c,0x3f,0xc4,0xdf,0x43,0x17,0x7e,0x6b,0x1c,0xde,0xf9,0x58,0xfe,0x91,0xb8, +0xd3,0xd7,0x18,0x7e,0xce,0x31,0x0c,0x9a,0x9c,0x38,0x1a,0x8f,0x6c,0x11,0x7b,0x56, +0xdd,0xb8,0x07,0xb0,0x3f,0x7c,0x6b,0x10,0xec,0xbd,0x11,0x2b,0xb4,0x7a,0x7c,0x08, +0xad,0xb4,0xf7,0xa2,0x3a,0x32,0x67,0x16,0x7e,0x82,0x1b,0x02,0x74,0xc2,0x8f,0x79, +0xd9,0x9b,0xfc,0x90,0x36,0x22,0x0e,0xc3,0xcb,0x66,0xb8,0xa2,0x67,0xe6,0x60,0x96, +0xf0,0xce,0x84,0x0f,0xfc,0x8a,0xee,0x4c,0xc5,0xa1,0xe1,0x9c,0x88,0xae,0x52,0x87, +0xea,0x32,0xa7,0x27,0xda,0xe2,0xa3,0x63,0x8c,0x80,0x09,0xd8,0xc4,0xaf,0x28,0x6c, +0x22,0x80,0x45,0x84,0xf1,0xab,0x03,0xc0,0xee,0x6e,0xb8,0x48,0x72,0x48,0x76,0x20, +0xf1,0xe1,0x47,0xbb,0x45,0x11,0x48,0x9c,0xea,0xc9,0x90,0xd1,0x31,0xeb,0xec,0x2c, +0x66,0xd0,0xf0,0xbe,0x85,0x68,0x42,0x99,0xf4,0xcb,0x4c,0x94,0xd2,0x67,0x59,0x33, +0xcd,0x8d,0x74,0xab,0x7a,0xdd,0x8c,0x2d,0x33,0x9a,0x45,0x85,0x7a,0xe9,0x71,0x57, +0x2e,0x71,0x97,0xe6,0x87,0x6a,0x41,0x8c,0x44,0xca,0xa0,0xe5,0x30,0xf7,0x60,0x06, +0x0a,0x80,0xa4,0x8a,0x72,0x75,0x6e,0xca,0x48,0x86,0xee,0xb2,0xdc,0xd9,0xfc,0xc1, +0x8d,0x88,0xf6,0x9a,0x73,0x51,0xfa,0x8f,0x72,0xd2,0x5d,0xc1,0xac,0x3f,0x23,0xcb, +0xc4,0xc8,0x83,0x0a,0x7d,0x05,0x74,0x8b,0x96,0x93,0x73,0x9a,0xcd,0x86,0x72,0x4d, +0xee,0xcb,0x6b,0xaa,0x50,0xa1,0x4a,0x5d,0x3e,0xdb,0x40,0x78,0x3c,0x4d,0x02,0x48, +0x36,0x81,0x9c,0xfa,0x18,0x55,0x89,0xee,0x4c,0x70,0x08,0xea,0x63,0x54,0x0a,0x58, +0x63,0x80,0xf2,0xb6,0x8d,0x60,0x96,0x09,0x73,0x4b,0xb4,0xa3,0xd0,0xf6,0x98,0x6c, +0x2f,0x71,0xb8,0xb3,0x72,0x55,0xd0,0x47,0x12,0xbf,0xa3,0xff,0xd2,0xac,0x10,0x7c, +0x2e,0x76,0x12,0x57,0x7a,0xd0,0x84,0x08,0xfb,0x49,0x9d,0x09,0x1d,0xcf,0x8c,0xae, +0x00,0x91,0x90,0xf0,0xdd,0xc8,0x20,0xe5,0x85,0x76,0xb2,0x4e,0xb2,0x3b,0x7c,0x07, +0x21,0xb4,0x61,0xf4,0x16,0x81,0x3c,0x48,0xe8,0x2c,0xd8,0xd0,0xbf,0xab,0x67,0x87, +0x0c,0xd3,0xfd,0x9a,0x36,0x6e,0xa3,0x58,0x05,0x54,0x35,0x83,0x79,0xe9,0xbd,0x7b, +0x27,0xde,0x01,0xec,0x7f,0x8b,0x5a,0xc9,0x84,0xd7,0xe7,0xb5,0xf3,0x10,0xab,0xdd, +0x1e,0x40,0xda,0xeb,0xc2,0xe5,0xdd,0x8c,0x48,0x72,0x13,0x16,0xf6,0xeb,0xfe,0xac, +0xa6,0x98,0x47,0x73,0xe2,0xab,0xed,0xcd,0x5b,0x58,0x14,0x6e,0xf0,0x77,0x74,0xd8, +0xca,0x02,0xbc,0xd2,0x3b,0xd5,0x4d,0x08,0x55,0x03,0xee,0x6d,0xf7,0xb6,0xd2,0x91, +0x06,0xd5,0x90,0x2c,0x66,0x6a,0x06,0x08,0xe1,0xd5,0x26,0xd4,0x88,0xfe,0xdd,0x82, +0x89,0x67,0x9d,0x1d,0x2d,0xb0,0x4f,0xd4,0x0d,0xdc,0x72,0x6e,0x3a,0xba,0x48,0xd2, +0x2c,0xd9,0x78,0xd6,0xb0,0x4f,0x67,0x11,0xc8,0x7f,0xe7,0x10,0xd8,0x58,0x8b,0x18, +0xb5,0x47,0x27,0x8d,0x91,0xf8,0x56,0x6b,0xb0,0xb6,0x61,0xab,0xff,0xd8,0x1b,0x83, +0x9e,0x7d,0x50,0xe5,0x6b,0x64,0xa9,0x5d,0xff,0x96,0x2d,0x59,0x58,0x97,0xb0,0xd1, +0xcf,0xa3,0xcd,0x4a,0x50,0x13,0xfe,0x98,0x51,0xd8,0xc8,0x3a,0x16,0xf1,0x06,0xb8, +0xd8,0xdf,0xd6,0x20,0x39,0xf6,0x26,0xe5,0xb6,0x20,0x07,0x8c,0x84,0xbd,0x1e,0x09, +0x0f,0x61,0x8f,0xad,0x41,0xb0,0x8e,0x00,0x5d,0x9c,0x0a,0x9c,0xb5,0x9d,0x2f,0x80, +0x73,0xae,0xf7,0x5d,0x51,0x74,0x50,0xa1,0x1a,0x43,0x25,0xe0,0xff,0xff,0x3a,0xf3, +0x34,0x06,0x2c,0x97,0x60,0x2a,0x94,0xd1,0x38,0xc0,0x68,0xcc,0x6a,0x2d,0xcc,0x95, +0x0f,0x8b,0x77,0x16,0x15,0xd4,0xd8,0xb4,0xd4,0xb4,0xd0,0x30,0xd1,0x21,0x21,0x58, +0x21,0xdd,0x03,0xed,0xaa,0x6f,0xd1,0xb5,0xee,0x2e,0x6e,0x62,0x1a,0xf3,0xce,0xb1, +0x20,0xc3,0x9a,0xfd,0xe7,0xde,0x8b,0x43,0x4c,0x01,0x2e,0x0d,0xe2,0x50,0x1e,0x6c, +0x06,0x00,0x9a,0x48,0x9c,0x3f,0x02,0xd6,0xa9,0x20,0x57,0xe6,0xae,0x6d,0x00,0x5c, +0x05,0x87,0x72,0xab,0x9c,0xa3,0x9a,0xdc,0x0b,0x15,0x18,0xe4,0x50,0x06,0xc8,0xc5, +0x8c,0xbb,0x63,0xb3,0xa1,0x4d,0x6f,0x59,0x61,0x04,0xe9,0x9a,0x62,0x35,0xd4,0x11, +0xcb,0xac,0xcd,0x95,0x83,0x3c,0xc9,0x6e,0xe9,0xca,0xbf,0x17,0x51,0x82,0x25,0x25, +0xd4,0x99,0x7a,0x76,0x97,0x8e,0x54,0x31,0x4b,0x08,0x2d,0xca,0x6b,0x40,0x2d,0x20, +0x0f,0x73,0x86,0x7a,0xe6,0x2d,0xa2,0xc7,0x7a,0x61,0x89,0x7c,0x5d,0x6d,0x23,0x19, +0x54,0x7b,0x90,0x4d,0xdc,0x31,0x07,0x18,0xfb,0x79,0x2b,0xd2,0x57,0xcc,0x84,0x9b, +0x67,0x20,0x0b,0x22,0xe9,0x30,0xa3,0xbd,0xcf,0x17,0x1b,0x02,0xa9,0x70,0xd3,0x4d, +0x8a,0x7f,0x90,0x2a,0x67,0x25,0xaf,0x86,0xf7,0xed,0xca,0x8e,0xf6,0x91,0x4f,0x2b, +0x33,0x06,0x12,0x2a,0xe4,0x43,0xa1,0xfc,0x45,0xc5,0xe4,0xc9,0xd6,0xcb,0x83,0xcc, +0x73,0x04,0x43,0x4f,0xbb,0x35,0x6b,0x96,0x7f,0x2d,0xab,0x9c,0xb4,0x4e,0x4d,0xa8, +0xbf,0x8f,0xa9,0x5c,0x98,0xed,0x61,0x9b,0x67,0x40,0x09,0xbd,0xf3,0x69,0x3e,0x73, +0x34,0xcb,0x33,0xbc,0x36,0x8b,0x76,0xa1,0x61,0xe9,0x2c,0x5b,0x99,0xe1,0x2c,0x69, +0xde,0x53,0x1e,0xd3,0xf3,0xb1,0x45,0xf1,0xc4,0xce,0xc2,0x9d,0x79,0x75,0xf7,0x7c, +0xbe,0x69,0x19,0x9a,0xdc,0x9f,0x4c,0x08,0x45,0xed,0x79,0x3a,0xf1,0xd2,0x52,0x70, +0xd6,0xd4,0xc5,0x9c,0x58,0xd2,0x7a,0x76,0x23,0x73,0x9e,0xc6,0x81,0x8a,0xc7,0x07, +0x24,0x76,0x32,0x24,0x93,0xcd,0x42,0x55,0x89,0x10,0x8a,0x51,0x7a,0xd9,0x0e,0xbd, +0x20,0x75,0x5e,0x2b,0x52,0x75,0x66,0x77,0x08,0xd6,0x94,0x50,0x10,0x7c,0xfe,0x81, +0xb2,0x54,0xdd,0xd8,0xb4,0xb4,0x6f,0x59,0x09,0x32,0x03,0xa2,0x38,0x55,0x13,0xfd, +0xef,0x55,0xd5,0xc0,0x4e,0xbe,0x5d,0x02,0x89,0x82,0xcb,0x40,0x18,0x33,0xd9,0x07, +0x17,0x1c,0x2a,0x1e,0x78,0x32,0x1e,0x75,0x5b,0xdb,0xce,0xbc,0x93,0x49,0x52,0x64, +0xc3,0xe2,0x0f,0xdb,0xfb,0x3d,0x9f,0xa8,0x79,0x16,0x61,0x7b,0x7f,0x1b,0x58,0x76, +0xae,0xa1,0x07,0xcc,0x68,0x97,0x4d,0xa8,0x4f,0xf7,0xb7,0xa8,0x93,0x4b,0xdf,0x74, +0x29,0xa0,0x87,0x99,0xb0,0xaf,0xa0,0x2a,0xd5,0x51,0x24,0xfd,0xe9,0xd6,0x82,0xb3, +0x2b,0x0c,0x44,0xac,0x3e,0x38,0x04,0x00,0x2a,0x80,0xec,0x5c,0x86,0xd3,0x4a,0x3a, +0xab,0xbd,0x31,0x1b,0xf9,0x1d,0x9a,0x32,0xd8,0xd7,0x0f,0x78,0x39,0x77,0x27,0x7e, +0x89,0x95,0x57,0x25,0xd1,0xf3,0xe7,0x9e,0xe4,0x82,0x73,0x8f,0x05,0x6b,0x75,0x5b, +0x45,0x14,0x87,0xd4,0x39,0xd8,0xd8,0x06,0x02,0xbc,0xa0,0x58,0x31,0x72,0x18,0x72, +0x0c,0x89,0x36,0x79,0xb3,0xa4,0x87,0x17,0xa5,0x5f,0xbc,0x59,0xf3,0xfb,0x0e,0x2a, +0x1d,0xc3,0xda,0x13,0x51,0x2c,0x7c,0xef,0x44,0xfa,0x2d,0xf1,0x8b,0xe9,0xf6,0x10, +0xb8,0x92,0xa2,0xef,0xf6,0xef,0x4e,0xdd,0x49,0x80,0xe2,0x41,0x2b,0x4f,0xeb,0xbf, +0xb6,0x02,0x51,0x1f,0xf6,0x5c,0x60,0x83,0x60,0x4a,0xbf,0xc6,0xe5,0xc3,0x40,0x7b, +0x00,0xe6,0xb9,0xf3,0xb3,0x5d,0xf5,0xcd,0x46,0xe4,0x47,0x06,0x50,0x66,0xa8,0xc2, +0x3a,0x8f,0x38,0x34,0xe8,0x2c,0xc1,0x02,0x07,0xce,0xc0,0x8c,0xbe,0x06,0x5e,0x83, +0x9a,0xea,0xf9,0xc7,0x14,0x01,0xf0,0x0c,0xe5,0xa6,0xfc,0x9c,0xf8,0x40,0x6f,0xa2, +0xb3,0x27,0x69,0x37,0xdb,0x5a,0x47,0x01,0x78,0x9c,0xef,0x15,0x28,0x6a,0x1c,0x27, +0xab,0x9a,0x5a,0xe6,0x6e,0xe5,0x36,0x4a,0x6b,0x65,0x92,0x36,0xb5,0x99,0x39,0xfc, +0x3e,0xa1,0xf5,0x7b,0xc1,0x68,0x32,0x57,0x4b,0x0b,0xab,0x3c,0x51,0x42,0xdb,0xe3, +0xb6,0x27,0xdc,0x30,0xa0,0xe8,0xb2,0xec,0x0e,0xaa,0x2c,0xcf,0x9c,0x45,0xd3,0xeb, +0x85,0x84,0xf2,0xa6,0x38,0x14,0xef,0xc5,0x13,0xa5,0xaa,0xc0,0xee,0x58,0x42,0xd3, +0xe7,0x9d,0xf8,0x5a,0x3f,0xec,0x34,0x82,0x69,0x41,0x26,0x90,0x3d,0x36,0x28,0x37, +0x0c,0x2d,0x50,0xa1,0x90,0x2b,0xa3,0x7a,0x70,0x6f,0x82,0x59,0xa6,0xe2,0x3b,0x46, +0x03,0xcc,0xc3,0x0e,0xad,0x25,0x89,0x63,0x59,0x51,0x33,0xea,0xf0,0x73,0x35,0x77, +0xcb,0x8b,0xef,0x9f,0xd9,0xa9,0x41,0x88,0xa1,0x72,0xfd,0xca,0x5f,0xf1,0xdb,0x86, +0x5f,0xbb,0xfd,0xb6,0x91,0x4f,0xb6,0x4a,0x04,0x9d,0xa1,0x46,0x34,0x5f,0xec,0x6b, +0x08,0x65,0x2c,0x94,0x31,0x44,0xa9,0x5a,0x03,0x2c,0x7c,0x33,0x80,0xf9,0x12,0x8b, +0x58,0xe3,0x09,0x14,0x88,0xb8,0xca,0xa1,0xe0,0x27,0x24,0xe6,0xa9,0x9c,0xbf,0xa8, +0xbd,0x66,0x38,0x7f,0xd5,0x4e,0xc5,0xcd,0x6a,0x75,0x3c,0x33,0xb7,0xaa,0x1c,0x32, +0x00,0x35,0xa3,0xa4,0x4b,0xbd,0x62,0x80,0x06,0x9f,0x8f,0x95,0x18,0x5f,0x52,0xfe, +0x84,0x1e,0x36,0xa0,0xc8,0xdb,0x2a,0x22,0x3b,0x2a,0xc4,0x09,0x9e,0xfa,0xe4,0x47, +0xa8,0x41,0x65,0xc5,0xb4,0xad,0x0c,0x9c,0x01,0x7b,0x8d,0xfa,0x16,0x57,0xa8,0xe2, +0xb3,0x38,0x8f,0xd6,0xb4,0xc7,0x43,0x46,0x8f,0xda,0x29,0x09,0x94,0xbf,0x35,0x0e, +0x57,0xf1,0x5e,0x06,0x99,0x47,0xa3,0xea,0x28,0xc3,0xbe,0xbf,0x17,0xa9,0xd0,0xf8, +0xec,0x13,0x2e,0x9c,0x39,0x4c,0xbe,0x85,0x51,0xc2,0xaf,0x5e,0x69,0xbb,0x80,0xbe, +0x2e,0x9e,0x4b,0x1c,0x80,0xb2,0xa3,0xcd,0x13,0xde,0xb3,0xad,0xef,0x57,0xa8,0x68, +0xd5,0x90,0x3a,0x77,0x91,0x46,0xeb,0xc4,0x4a,0x66,0xfd,0xd3,0xfc,0x5b,0xc6,0xb8, +0x4c,0x5b,0x86,0x79,0x6c,0xb1,0x64,0x0f,0xdd,0x21,0x36,0x6b,0x50,0x61,0x16,0x2a, +0xb1,0x3c,0x15,0x21,0x1b,0x16,0xa8,0x48,0x7b,0xb1,0xf8,0x4b,0xff,0x11,0x19,0xcc, +0x47,0xef,0x78,0xaf,0xfe,0x33,0x8d,0xfa,0x80,0x73,0x8f,0xc8,0x07,0xf1,0xee,0x28, +0x2b,0x12,0x3e,0x37,0xd4,0x7c,0x58,0xfd,0x3f,0xbb,0xc8,0x4b,0x03,0xdc,0xc0,0xf9, +0x2d,0xfd,0x80,0x81,0x1c,0xa8,0x06,0x95,0xbf,0x1d,0x06,0xc4,0x56,0x80,0x55,0x11, +0xb8,0x6d,0xcc,0x95,0x19,0x21,0xd3,0xb4,0x4f,0x89,0x46,0xb5,0x5b,0x82,0x13,0x05, +0x6b,0x31,0x55,0xa0,0xbe,0x01,0xd1,0xa4,0xbf,0xc9,0x45,0x84,0xde,0x89,0x6f,0xb0, +0x80,0x43,0x4d,0x10,0xda,0x4b,0x21,0xdf,0x6d,0x4e,0x47,0xb4,0xd9,0x00,0x04,0xc1, +0x08,0x26,0x94,0x46,0x08,0xf9,0xd6,0xc0,0x60,0x44,0x10,0xe0,0xe7,0x7f,0x48,0xf1, +0x03,0xaf,0x73,0x24,0xaf,0x2c,0x16,0xa1,0x08,0x85,0x23,0xb6,0xf2,0x7a,0x05,0xc0, +0x88,0x26,0xdb,0xeb,0xb3,0x96,0xc5,0xc4,0xe4,0xec,0x01,0x03,0x2d,0xeb,0xc5,0xf4, +0xab,0x25,0xc8,0x2b,0xf2,0x50,0x59,0xf4,0xcd,0xef,0x19,0xf5,0xd6,0xfa,0x26,0xd7, +0x85,0x35,0x56,0x28,0x12,0x08,0x04,0x99,0xa3,0x2b,0xc6,0xa9,0x37,0x83,0x5f,0x31, +0xe2,0x1a,0x5e,0x1c,0x51,0x43,0xca,0xc8,0x4c,0x0b,0x4e,0x39,0x73,0x0a,0x65,0xa0, +0x77,0xa7,0x45,0x18,0x92,0x48,0x2d,0x99,0xfe,0xe5,0x47,0x88,0xb6,0x81,0x35,0xb0, +0x8f,0x89,0x5f,0x3c,0x93,0x09,0xdf,0x6d,0x68,0x94,0x4f,0x98,0xf7,0x48,0x96,0xf9, +0x42,0x0c,0xda,0x49,0xec,0x79,0x1c,0xbc,0x27,0xa7,0xfa,0x0e,0xa3,0x60,0x9e,0xd9, +0x64,0x6f,0x4e,0xa1,0xe4,0x6c,0xde,0xdd,0x07,0xa6,0x65,0x3e,0xfa,0x98,0x17,0x4c, +0xe1,0x66,0xc1,0x56,0xb0,0x2a,0xd5,0x9c,0x86,0x4c,0xeb,0x13,0x5b,0x63,0x9f,0x48, +0xa5,0x6c,0xf5,0xfc,0x19,0xfe,0x85,0x89,0x80,0xe5,0x58,0xf9,0xd5,0xa3,0x62,0x28, +0x21,0x50,0x5a,0x85,0x12,0x33,0x2a,0x04,0x66,0xd2,0x4a,0x51,0x7a,0x52,0x19,0x63, +0xa5,0x9c,0xd4,0x30,0x7f,0xda,0xcc,0xaf,0x4f,0x13,0x48,0xc0,0x1c,0xba,0x21,0x5b, +0xc3,0x1b,0x01,0x21,0xba,0xd9,0xdb,0xe1,0xa0,0x86,0x41,0xb4,0xde,0x11,0x5f,0xae, +0x4a,0x77,0x0f,0x35,0x93,0x53,0xd9,0x41,0xe7,0x31,0x83,0x60,0x94,0xba,0x14,0xc0, +0x06,0x57,0xac,0xa6,0xc5,0x5a,0xa5,0x4e,0xd4,0x21,0x61,0xe8,0x74,0x7e,0xd6,0xc5, +0x21,0x75,0xd9,0xa7,0x15,0xbc,0xed,0x5f,0xdd,0x9e,0xe2,0xf8,0x31,0xca,0x51,0x34, +0xcd,0xdf,0x05,0x44,0xed,0x3e,0xe0,0xce,0xcd,0x3d,0xd5,0x5a,0xfa,0x54,0x99,0xd1, +0xa9,0x35,0x3c,0xb5,0xf7,0x9a,0x8e,0x2d,0xd4,0x0c,0xe7,0x0a,0xf5,0xc4,0xc6,0x18, +0x31,0x7b,0x56,0xad,0x76,0xd3,0x1c,0xdb,0x4e,0x57,0x14,0x09,0x56,0x1b,0xa9,0x29, +0x2f,0x7b,0xde,0x3c,0x35,0x1b,0x18,0x0d,0xe1,0xea,0x54,0xc9,0x1c,0x99,0x61,0xeb, +0x43,0x99,0xc3,0x18,0xdf,0x1a,0xa3,0xda,0xc6,0x55,0x49,0xd9,0x95,0xd1,0x55,0x69, +0xa8,0x59,0x4b,0x68,0x92,0x19,0x1a,0xba,0xfd,0xf6,0x4b,0x18,0xd7,0xd1,0x02,0x6d, +0x04,0x7f,0x16,0xbc,0x86,0x37,0x8f,0xeb,0xee,0x38,0x98,0x68,0x30,0x39,0x90,0x2d, +0x44,0xf6,0x71,0xac,0x33,0x34,0x5e,0x07,0x94,0xa2,0x4e,0x8f,0x5d,0xf4,0x45,0x69, +0x80,0x3c,0x06,0x49,0x89,0x5a,0x75,0xe9,0xea,0x5e,0xdf,0xe8,0x85,0x81,0x9f,0xfd, +0x8d,0x3f,0x4b,0x20,0x44,0x7e,0xa0,0x06,0x16,0x59,0x6e,0x9d,0xb3,0xd2,0x75,0x69, +0x89,0x36,0xa0,0x87,0x1a,0xc3,0x84,0x40,0x2c,0x63,0xf4,0xd3,0x3b,0x4a,0x72,0x10, +0x97,0x8b,0xbc,0x97,0x5b,0x41,0xc3,0x75,0xac,0xa2,0xfc,0xb7,0x7b,0x82,0x1a,0x73, +0x04,0x9d,0x7f,0xf2,0xdf,0xc1,0xce,0x50,0xa6,0x11,0xb7,0x86,0xfa,0x81,0xa9,0xee, +0x8d,0x2e,0x6d,0x92,0xbb,0x81,0x5e,0x49,0xa4,0xc7,0xf7,0xe6,0xba,0xc3,0xb4,0x42, +0x06,0x84,0xd7,0xc1,0xfd,0xe7,0x3e,0x73,0x64,0xe7,0x30,0xe2,0xbb,0xea,0x68,0xf7, +0x29,0xe6,0x38,0x30,0xec,0x3e,0x36,0x37,0x69,0x86,0x03,0xb4,0xf6,0x5a,0x61,0x43, +0x86,0x86,0x21,0xd6,0x98,0xbd,0x35,0xb7,0x8d,0x6c,0xc9,0x98,0x55,0xeb,0xbd,0x03, +0xc6,0x0f,0xe9,0xd3,0xcb,0xf6,0xfd,0x16,0xea,0xae,0x91,0x15,0x24,0x8b,0x73,0x4d, +0xc6,0x4b,0x7c,0xdf,0x13,0x89,0x4b,0x59,0x6a,0x41,0xe6,0x8b,0x72,0x03,0x68,0xe9, +0x3f,0x7d,0xfa,0x1b,0x17,0xeb,0x19,0x9e,0x95,0xaa,0x6e,0xbf,0x11,0xca,0x2b,0x1a, +0x65,0x49,0xe7,0x9a,0xd0,0xa9,0x13,0xa1,0xcf,0x4a,0x6d,0xfe,0x97,0x89,0xfd,0x68, +0xe3,0xe5,0x75,0xea,0x97,0x49,0xd7,0x44,0x07,0xa8,0x6f,0x9a,0x96,0x41,0x68,0x1a, +0x4f,0x0c,0xd8,0xb5,0xeb,0xa0,0x6c,0x1b,0x27,0x27,0x32,0xef,0x01,0xe6,0x60,0x0a, +0x4e,0x05,0xd4,0x42,0x19,0x0f,0x65,0x03,0x36,0x74,0x3f,0x86,0xb9,0x56,0xb7,0xee, +0xa0,0x24,0xdb,0x30,0x1f,0xa3,0xad,0x9e,0xa1,0x77,0x7b,0x93,0x38,0x15,0x61,0x0b, +0xcf,0x8c,0x38,0x9d,0x3e,0x50,0xe4,0x06,0xb2,0x36,0x1e,0x0d,0x34,0xfc,0xe0,0xd6, +0x85,0xcf,0x62,0x73,0x78,0xb3,0x60,0x53,0xc7,0x20,0x7e,0xd2,0x1d,0x3a,0x7e,0xad, +0x4f,0x2a,0xf4,0x12,0x59,0xba,0xf8,0x5f,0x06,0xd9,0xe8,0xb3,0x51,0xb0,0x91,0xe1, +0x1b,0x47,0xf1,0x83,0xb2,0x73,0x07,0x92,0x82,0x90,0x6b,0xd3,0xbc,0xf1,0xa9,0x17, +0xf9,0xc2,0x6d,0x93,0x9b,0x90,0xfd,0x36,0xa0,0xde,0x2d,0x93,0xd1,0xb2,0x24,0x47, +0x08,0xb6,0xda,0xda,0x05,0x40,0xe7,0xd9,0xe8,0x7b,0x24,0x54,0xc8,0xf6,0x2c,0xd2, +0x6b,0x97,0x68,0xe9,0x1d,0xf4,0x42,0x56,0x06,0x82,0x9d,0x72,0x3d,0x6d,0xa1,0x66, +0x88,0xf5,0x25,0x56,0xe7,0xbe,0xa5,0x98,0x68,0x09,0xac,0x43,0x53,0xed,0xa9,0x76, +0xa7,0x7c,0x32,0x28,0x93,0x4c,0x65,0x72,0x0e,0x94,0xf5,0xf2,0x0b,0xd4,0x9b,0xb7, +0xd3,0xc5,0x26,0x0f,0x7b,0xb3,0xcd,0x8d,0xcd,0x27,0x26,0xaa,0x5e,0xdb,0x55,0xf1, +0x46,0x96,0x2e,0x3b,0x17,0xd9,0xb2,0x1f,0x4b,0xf8,0x6a,0x1b,0x53,0x9a,0xf4,0xd0, +0x51,0x26,0x67,0xba,0x9f,0xf8,0xa7,0xab,0xe2,0xba,0x33,0x0a,0xd2,0x99,0xa8,0xa9, +0x9a,0x9b,0x6b,0x4b,0x9e,0xf9,0x7b,0xae,0x82,0x1b,0x3b,0x1f,0xd7,0x9b,0xe2,0x6f, +0x00,0x9e,0x19,0xea,0xbc,0xdb,0x6c,0xc5,0x4f,0xac,0x66,0x13,0x81,0xbd,0xba,0x2f, +0x40,0xf6,0xb4,0xc3,0x39,0x3f,0x66,0xeb,0x86,0x9e,0x01,0xda,0xfd,0xf5,0x67,0xde, +0xac,0xfc,0x98,0xad,0x41,0xd2,0x49,0x4f,0x8f,0xa9,0x28,0x10,0xda,0x05,0xbb,0x7e, +0xad,0x9f,0x5c,0xa5,0x3e,0xb2,0x0d,0xd5,0xaf,0x2b,0x43,0x80,0x5c,0xbe,0xa7,0x2c, +0xe1,0xaf,0x93,0x38,0x58,0xb1,0xd0,0xb1,0x23,0xbf,0xd2,0x77,0xa1,0xe9,0x1f,0xef, +0xea,0x70,0x8e,0x39,0x70,0x30,0x1c,0x25,0x47,0x03,0x25,0x44,0xe7,0x68,0x96,0xf2, +0xa2,0xa9,0xbf,0x3d,0xb3,0x62,0xd1,0x25,0xaa,0xb5,0xb1,0xaf,0xd1,0xe0,0x77,0x29, +0x87,0x41,0x87,0x38,0xb2,0xf4,0x63,0x43,0x62,0x26,0x8d,0x5a,0xb0,0x16,0xfa,0x87, +0xc0,0x54,0x6c,0xd7,0x34,0x2e,0x6e,0xbc,0xe5,0x5f,0x79,0x75,0x78,0x4c,0x11,0x47, +0x64,0xf5,0xb6,0x52,0xf2,0xa6,0x5d,0x92,0x70,0xe7,0xe6,0x15,0xf0,0x7e,0x49,0x55, +0xe5,0x56,0x91,0xb5,0x7c,0x57,0x13,0x07,0x40,0x45,0x3c,0xe7,0x7c,0x6f,0x89,0x35, +0x9d,0x01,0xe9,0xa6,0x1f,0x2a,0xe1,0xf3,0xe1,0xb7,0x7a,0x03,0x7f,0x68,0x78,0x7a, +0xab,0x6d,0x42,0x89,0x70,0x25,0x6a,0xac,0x4e,0xc7,0x8a,0xb4,0xe5,0xe1,0x19,0xf8, +0x0d,0xa9,0xf4,0xbc,0xf0,0x98,0xe5,0x7f,0xa0,0x4a,0x6f,0x38,0xd9,0x2b,0x7b,0x18, +0xf8,0xa7,0xfd,0x30,0x34,0x27,0x2b,0xd7,0x64,0x47,0x22,0x4d,0x96,0x1d,0x9e,0x69, +0xb9,0xa3,0x27,0x8f,0xa9,0x23,0xfc,0x47,0xa8,0x4f,0x5b,0xac,0x38,0x92,0x12,0x41, +0xab,0xa3,0xbf,0x3e,0x65,0x0c,0x2a,0x2f,0xa3,0x96,0x8f,0x74,0xf7,0x09,0x13,0xc1, +0xac,0x16,0xf7,0x16,0x1d,0x0f,0x03,0x62,0x4d,0x64,0x6e,0x9e,0xf7,0xe6,0x88,0x0f, +0xca,0x83,0x38,0xb6,0x69,0x32,0x35,0x08,0x21,0x6d,0xab,0x85,0x82,0x23,0x0b,0xbf, +0xb8,0x4f,0x6f,0x2e,0xfd,0xd7,0xa5,0x91,0x57,0xe2,0xdf,0x9f,0xdd,0x46,0x01,0x04, +0x26,0x9f,0x17,0xbf,0xbe,0xb9,0x10,0x88,0xa8,0xe1,0xaa,0x99,0x11,0x74,0x2c,0x24, +0xa3,0x80,0x4e,0x90,0xd3,0x58,0x62,0x10,0x8a,0x20,0x5c,0x25,0x90,0xae,0x3f,0x63, +0x0c,0x1d,0x19,0x65,0xae,0x70,0x86,0xd3,0x0b,0xa3,0xf7,0xa7,0xf1,0x10,0x73,0x60, +0x02,0x63,0x8e,0x11,0xbf,0x92,0x63,0x89,0xe7,0x11,0x02,0x55,0xa1,0xae,0xfc,0x28, +0x78,0x5b,0x96,0x14,0x79,0x8b,0x6a,0x30,0xfe,0x5b,0xe0,0xb8,0x11,0xeb,0x87,0x17, +0xe9,0x3c,0xb7,0xa7,0x19,0x9e,0xdc,0xe1,0x45,0xf8,0xe6,0x44,0xa7,0xda,0x85,0x39, +0x1d,0xbb,0xfb,0x60,0xf1,0x94,0x77,0x92,0x41,0x5f,0xc3,0xd1,0x19,0x32,0x05,0xc0, +0x4a,0x3e,0xb5,0xdd,0x53,0xb6,0x17,0xc0,0xc5,0xd5,0x79,0x97,0xd0,0x37,0x38,0xb0, +0x2e,0x5a,0xbc,0x6e,0x94,0x37,0x6c,0xca,0x9f,0x3d,0x8c,0xd5,0x59,0xf8,0x76,0x95, +0xc9,0xb8,0x8b,0xef,0x4d,0x7b,0x4e,0xcb,0x15,0x1b,0x29,0x85,0x5d,0x82,0x14,0xfa, +0x94,0xb1,0xa1,0xb1,0xc0,0x3e,0x2f,0x56,0x67,0xfc,0x2c,0x1f,0x85,0x1a,0xab,0xa2, +0x2d,0x84,0x4b,0xa8,0x58,0x34,0x5d,0x6c,0xe8,0x1a,0x60,0x99,0x18,0x60,0x44,0x3b, +0x7d,0x07,0xf5,0x3f,0xbe,0xb1,0x70,0x4c,0xc9,0xd8,0xe2,0xa0,0x93,0xbd,0x17,0xc6, +0xce,0xeb,0x0e,0x5d,0xae,0x90,0xa3,0x0b,0x41,0x46,0xf8,0x1e,0x43,0xd2,0x00,0xaf, +0x55,0x72,0x95,0xd6,0x51,0x5a,0x0e,0x65,0x4d,0xd3,0xf1,0x3d,0x59,0xfb,0xb0,0x49, +0x5c,0xb2,0x1d,0x0d,0x0f,0xc0,0x9e,0x9f,0x14,0xf2,0x4e,0x8f,0x10,0x9e,0xb5,0xe2, +0xb9,0x0d,0xa5,0x75,0x6c,0x26,0x49,0x51,0x38,0x49,0xa8,0xb2,0x52,0x82,0x71,0x52, +0xa0,0x3e,0x57,0x32,0x13,0x63,0x9b,0x0f,0x99,0xc2,0x83,0x46,0xd5,0xf7,0x5f,0x2e, +0x6f,0x13,0xa1,0xc7,0x98,0x59,0x11,0xa9,0xc7,0x22,0xb0,0xa3,0x96,0x4e,0x5b,0x12, +0x9d,0xc1,0x29,0xe8,0x77,0xca,0x1f,0x0b,0xbd,0x63,0xf1,0x3b,0x2d,0x32,0x98,0xaa, +0x48,0xcb,0x9e,0xf2,0xff,0x07,0x08,0x94,0x40,0x2f,0x80,0x04,0x65,0x90,0x38,0x4f, +0xa6,0xe9,0xba,0x0f,0xfc,0x26,0x82,0x00,0xc5,0x11,0x80,0x52,0xb6,0x4a,0x31,0x5f, +0xdc,0x80,0x6a,0xb4,0xfc,0x0b,0x46,0x8b,0x52,0x3b,0x63,0xe5,0x78,0x4f,0x0f,0x8f, +0xb4,0x55,0xd7,0xf2,0xc6,0x08,0x25,0x91,0x45,0xc3,0xe8,0x84,0x82,0xe1,0x64,0xfa, +0x6d,0x71,0x24,0x7d,0x68,0xce,0x21,0x59,0x3c,0xc3,0x05,0x17,0x5a,0x39,0x15,0xfa, +0x51,0xcb,0x15,0x6e,0x7a,0xa2,0x58,0x12,0xa4,0xb8,0x0d,0x07,0x79,0x87,0x3b,0x0f, +0x0c,0xba,0xb9,0xfb,0xbd,0x5a,0xb3,0x3a,0xf0,0xa6,0x58,0x30,0xa4,0xab,0x6d,0xeb, +0x6f,0x72,0xbd,0x6c,0xe9,0xad,0x59,0x3b,0xce,0x8b,0x85,0x9f,0x1f,0x7f,0x9a,0x2c, +0xf1,0x8f,0x36,0x43,0x0a,0xa8,0xd2,0x08,0xc3,0xae,0x59,0xa3,0xfd,0xea,0x92,0x38, +0xe4,0x57,0xa4,0xa1,0xf6,0x0e,0x7e,0x09,0x0c,0xb9,0x68,0x0d,0x3b,0x81,0xdd,0x43, +0x6d,0x0e,0x4a,0x3c,0xf8,0x24,0x8e,0x8b,0xca,0xb5,0x85,0xc4,0x7d,0x41,0x83,0x4b, +0xbc,0x5d,0xa1,0x8e,0x68,0x02,0x03,0x69,0x24,0x8c,0x9d,0xba,0xde,0xaf,0x93,0xae, +0x22,0xc1,0x10,0x64,0xbb,0x1d,0x0a,0x9b,0x0d,0x41,0x73,0x40,0xf9,0xeb,0xec,0x16, +0xc6,0x0c,0x3b,0xe6,0xb5,0x37,0x24,0x3a,0xea,0x2c,0xc2,0x17,0x46,0xd7,0x02,0x07, +0xe6,0x60,0xf5,0x15,0x25,0x1f,0x6d,0xa7,0x0d,0xa3,0x16,0xd1,0x3e,0xdb,0x55,0xb4, +0x5c,0x9c,0x8d,0xd7,0xe4,0xf1,0x5f,0xf9,0x10,0x5a,0x7d,0xd6,0x1a,0x57,0xaf,0x85, +0xf0,0x9c,0xda,0x77,0x75,0xe1,0x20,0xa5,0xb8,0xdc,0xca,0xd3,0xfb,0x52,0x12,0x0e, +0x14,0x17,0x5d,0x2d,0xde,0xd6,0x42,0x22,0xad,0x96,0x75,0x72,0x2c,0x60,0x63,0xbc, +0xc6,0x49,0x1e,0xb4,0xd4,0x3c,0xf5,0x82,0x2e,0xba,0xbf,0xa7,0xf2,0xd3,0x53,0x0f, +0x00,0x8c,0xa7,0xfb,0x44,0x1a,0x82,0x9c,0x68,0x21,0xc5,0x97,0xf3,0xd2,0xe6,0x1b, +0x4f,0x1f,0x64,0x8a,0xc3,0xc7,0x16,0x38,0xec,0xd0,0xce,0x0a,0x4f,0x1c,0x51,0x6a, +0x25,0x96,0x11,0xe2,0x1c,0x29,0x06,0x49,0x11,0xbc,0xa6,0xae,0x9a,0xe2,0xd6,0x87, +0xaa,0xd8,0x99,0xb3,0x32,0x65,0x30,0x2f,0xea,0x55,0x6d,0xb2,0x15,0xb9,0x9b,0x6b, +0x89,0x94,0x6f,0x1a,0xad,0xf9,0x07,0x48,0xcf,0x7f,0xdb,0xab,0xce,0xdd,0xa5,0xac, +0x46,0x46,0xb2,0x3f,0x9d,0xac,0x7e,0xef,0xf3,0x21,0xa5,0x9d,0x4a,0x5d,0x6c,0xd3, +0x8a,0x86,0x4e,0xac,0x5d,0x09,0x00,0x4b,0x84,0x5e,0x3e,0x27,0x51,0x62,0x3e,0x5a, +0x09,0x9d,0xd5,0xff,0x1c,0x11,0xda,0x99,0x05,0x1d,0xcf,0x10,0x17,0xcf,0x2d,0x3d, +0x9c,0x3d,0x91,0xd8,0xb9,0x9d,0x01,0x5e,0x58,0x82,0x4b,0x9d,0x04,0x91,0x59,0x92, +0xa5,0xb6,0xbe,0x58,0x78,0x2d,0x5c,0x33,0x24,0x0a,0x50,0xb4,0x0f,0xf5,0x70,0x98, +0xa4,0x88,0xb2,0xa4,0xfb,0x8e,0x7d,0x4a,0xe6,0x51,0x1f,0xb7,0x85,0x82,0x3a,0x71, +0x00,0xad,0x93,0x99,0x7b,0x66,0x48,0xa7,0x67,0x59,0x44,0x1e,0xa2,0x20,0x29,0x82, +0x22,0x0b,0x2d,0x6b,0x32,0x46,0x26,0xd7,0x20,0xec,0x3e,0x9d,0x5e,0xce,0x8f,0x7a, +0x3c,0xb1,0x3f,0x60,0x9f,0xa9,0x90,0xe4,0x8e,0x06,0x68,0x9b,0xdf,0x7f,0xeb,0xf9, +0xdf,0x56,0xaa,0x54,0xe4,0x3e,0x4e,0xc0,0x45,0x07,0x99,0x12,0x85,0xba,0x12,0xc5, +0xde,0x20,0xa7,0x89,0x6d,0xab,0x95,0x9f,0xa1,0x30,0xb5,0x03,0x0c,0x99,0xa5,0x22, +0xb5,0x81,0x6a,0x12,0x36,0xd1,0x42,0x8e,0x4e,0xea,0x49,0x4b,0x98,0x92,0x82,0x2b, +0x7a,0xa5,0x3d,0xee,0x1e,0x92,0x5f,0x17,0x7c,0x9d,0xc3,0xbe,0xe9,0xc5,0x12,0x00, +0x6a,0x40,0x26,0x63,0xdb,0xd6,0xda,0x18,0x49,0x52,0x3e,0x7c,0x1d,0xc2,0x49,0x99, +0xe1,0xeb,0xb3,0xfd,0x67,0x25,0x06,0xad,0xbb,0xda,0x45,0x5d,0x58,0xec,0xcb,0xc0, +0xe7,0x49,0x30,0x6d,0x19,0xad,0xfa,0x5f,0xea,0x0b,0x4d,0x38,0xb2,0x78,0x7b,0x3b, +0x30,0x85,0x79,0x3c,0x9a,0x83,0x57,0x6a,0x66,0xc7,0x18,0x23,0xa7,0x10,0xc8,0xa9, +0x31,0x6d,0xea,0xcf,0xb8,0x6c,0x9a,0x6f,0xb4,0xc6,0xe4,0xac,0x30,0x62,0x63,0xdb, +0x06,0x06,0xbb,0xc5,0x3f,0xa7,0x96,0x58,0xa8,0x0c,0x7a,0x13,0x4f,0x2f,0x15,0xf5, +0x3a,0x63,0xf3,0xa7,0x37,0x22,0x9e,0x48,0xb5,0x0d,0x5b,0x4f,0x2f,0x60,0x57,0xf3, +0x4c,0x19,0xba,0xa8,0x11,0x70,0x1c,0xb4,0x89,0x1a,0xce,0x29,0x18,0xf3,0x34,0x6f, +0xc8,0x20,0x90,0xf6,0x79,0xf0,0xdc,0x69,0x1a,0x13,0xc6,0x38,0x19,0xf2,0x43,0xf2, +0x94,0xb3,0x99,0xe7,0xf8,0x03,0x0b,0x60,0xc1,0xd9,0x55,0x21,0x3c,0x8d,0xd9,0x6f, +0xc2,0xc9,0x91,0x3e,0x95,0xbe,0xd6,0xc7,0x1c,0x58,0x5d,0x31,0x3b,0x1f,0x06,0xcd, +0x23,0x36,0xba,0xc2,0x51,0xc0,0x94,0x65,0xcb,0x5e,0x74,0x96,0x10,0x80,0x8c,0xcd, +0xa9,0x7b,0x95,0x7e,0x96,0xea,0xa3,0x74,0x18,0x3c,0xba,0x38,0x10,0x71,0x85,0x51, +0x21,0xa4,0x16,0x36,0x3e,0x77,0xd6,0xda,0x94,0xdb,0xab,0xe2,0xd6,0x18,0x73,0x7d, +0x7d,0xca,0xcc,0xb3,0x4c,0x2c,0x63,0xed,0xe5,0x35,0xa4,0x8f,0x92,0x73,0xc6,0x51, +0x46,0x5a,0xf8,0x3d,0xd3,0xfb,0x8b,0xef,0x81,0x12,0x56,0x3c,0x7c,0xf3,0x3a,0x20, +0xc0,0xd8,0x7c,0x11,0x98,0x7b,0xb2,0xcb,0x6a,0xff,0x5e,0xc4,0x86,0xf2,0x48,0xc8, +0xa9,0x5a,0xd9,0x30,0x47,0x3c,0x71,0x68,0xa8,0xa5,0x72,0x9c,0x9a,0x38,0x17,0x09, +0x24,0xb6,0x4b,0x63,0x3b,0xfc,0x90,0xa9,0x35,0x54,0x7e,0x8c,0x9b,0x39,0x86,0x58, +0x76,0x14,0xa6,0xaa,0xc9,0x2c,0x6c,0xa8,0x76,0xfc,0xb7,0xc8,0x54,0xa3,0x09,0x5c, +0x77,0x3b,0x31,0xa2,0xad,0xe2,0x3c,0xfc,0x6a,0x1d,0x65,0x4c,0x97,0xa2,0x81,0x4d, +0xe8,0x10,0x7f,0x36,0x9e,0x48,0x85,0x9a,0x80,0x30,0x68,0xdd,0xdb,0x81,0xe3,0xaa, +0x9d,0xe9,0xf0,0x56,0x40,0xa2,0x59,0x4d,0x0a,0xf0,0x4f,0x8f,0xc8,0x08,0x6f,0x43, +0x05,0xc0,0x80,0xc6,0x58,0xed,0x71,0x44,0x67,0x80,0x89,0x61,0xbd,0xf3,0x6a,0x63, +0x61,0x88,0x17,0xf4,0x13,0x1b,0x26,0x6f,0x66,0x51,0xa2,0x34,0x97,0x7a,0x15,0xbb, +0x6d,0xe8,0x5e,0x83,0xcf,0xa7,0x05,0x9b,0x2d,0xc8,0xd3,0xaf,0x3d,0x01,0x6b,0xef, +0x85,0x2e,0xf6,0xe7,0xd5,0x02,0x95,0x40,0xc2,0x65,0xf1,0x23,0xbe,0x00,0x5e,0xee, +0xc4,0x96,0x9f,0x61,0xb7,0x7b,0xb0,0x75,0xcb,0x86,0x60,0xe4,0xb8,0xaf,0x0a,0xaa, +0x04,0x45,0x15,0x5e,0xb2,0x9a,0x6e,0xc2,0x41,0x87,0x85,0x51,0xf6,0xba,0x5f,0xea, +0xe7,0x82,0x55,0x25,0x69,0xeb,0x33,0x67,0xa5,0xb0,0xc9,0x8d,0x7a,0xeb,0x37,0xfa, +0x74,0x2c,0xe8,0x31,0x20,0xb7,0x62,0x8c,0xa4,0xb1,0x4d,0x15,0x68,0xa6,0xb3,0x3b, +0x4f,0x77,0xb3,0xfd,0x2c,0x08,0x7e,0xed,0x8e,0x48,0xc9,0xdf,0x6e,0xfa,0x65,0x23, +0x0b,0x33,0xc8,0x0f,0x1e,0xeb,0x96,0x49,0x4e,0x6f,0xe8,0x79,0x97,0xb9,0x98,0xba, +0xb4,0xc8,0x28,0x7c,0xc9,0xc6,0x3b,0x2f,0x64,0x59,0xed,0x9f,0xd4,0x47,0x27,0x5b, +0x89,0xae,0xad,0x2a,0xd5,0xfa,0xb4,0xfc,0x0f,0x4b,0xb3,0x3b,0x54,0x36,0xb3,0xc2, +0x75,0x6c,0x5a,0x01,0xad,0xed,0x64,0xd7,0x48,0x8e,0x2b,0x71,0x61,0x76,0xaa,0x47, +0x85,0xcf,0x15,0x2d,0x6f,0xce,0xb4,0x41,0x3d,0x40,0x43,0x20,0x7b,0x4c,0xa3,0xdb, +0x09,0x3e,0xdd,0x76,0xf6,0xa3,0x68,0x2c,0xc8,0x6c,0x5c,0x00,0x03,0x32,0xab,0x20, +0x02,0xcd,0x10,0xaf,0xcc,0x5e,0x84,0xff,0xb4,0xa6,0xc3,0x4f,0x8d,0x40,0xb5,0x11, +0x67,0x6f,0x41,0xe4,0xcb,0xdc,0x06,0x5d,0x57,0x76,0x74,0xe0,0xd5,0x9c,0xec,0x4b, +0x5d,0xd3,0x62,0xe5,0x47,0x19,0x5b,0xc0,0xa7,0xd1,0xef,0xe7,0x4b,0xfa,0x1b,0xaa, +0x66,0x92,0x9b,0x8e,0xb2,0x10,0x8d,0x58,0x69,0x2f,0x75,0x36,0xbb,0x5f,0x62,0xd2, +0xa4,0xd3,0x78,0x77,0xbf,0xf1,0x35,0xbe,0x67,0x0f,0xf9,0x33,0xbf,0xa6,0xdf,0x46, +0x64,0x64,0x85,0x3c,0xd7,0xcf,0x22,0xf1,0x04,0x27,0x0c,0xee,0xd1,0xb5,0x2e,0xdf, +0x24,0x15,0x95,0x11,0x33,0x97,0xad,0x5a,0x2f,0x56,0xb8,0xb8,0xf5,0x12,0x6d,0xcf, +0x29,0xd4,0xf6,0x2b,0xbe,0x89,0x53,0x4a,0x88,0x72,0x95,0x50,0xd1,0xb4,0x6b,0x62, +0x2e,0xca,0x22,0x55,0x59,0xfc,0x49,0x44,0x1b,0x14,0xdf,0xd3,0x1e,0xdc,0x12,0x32, +0x2a,0x22,0xe0,0xa0,0x3d,0x78,0xfb,0x5a,0x64,0xd7,0xbe,0xba,0x0b,0x98,0x08,0xaf, +0x70,0x3d,0x8e,0x1e,0x4a,0x26,0xc6,0x52,0xf7,0x94,0x65,0x44,0x02,0xeb,0x14,0x7b, +0xa4,0x95,0x7c,0x8a,0xc3,0xa7,0x6e,0x85,0x8f,0x58,0x68,0xc5,0x7c,0xf8,0xb9,0x5b, +0x65,0x5a,0x70,0x17,0x3d,0xeb,0xc4,0xb3,0x48,0x24,0x9f,0xb3,0xfb,0x79,0x58,0x7b, +0xa3,0x1a,0xde,0x34,0x92,0xb1,0xe6,0x6e,0x64,0x12,0x90,0xda,0x95,0xd7,0xb9,0x28, +0x0c,0x7f,0x5a,0xbc,0x1b,0xa6,0x7f,0x9c,0x94,0xcd,0x80,0x4e,0x6f,0x30,0x63,0x8b, +0xc3,0x33,0x98,0xe8,0x1f,0x61,0x2e,0x48,0x4b,0x41,0x67,0x07,0x6c,0x33,0x35,0x56, +0xc7,0x1c,0xc8,0xb9,0x48,0xaf,0xc7,0x05,0xff,0x92,0x81,0x4e,0xdb,0xff,0xa3,0x2c, +0xdc,0x71,0xd9,0xb9,0xb5,0xa0,0xb7,0x94,0x46,0xc2,0xb6,0x10,0x3c,0x7b,0xad,0x2c, +0xe0,0xae,0x8c,0x04,0x22,0xe0,0x65,0xb4,0x0b,0x55,0x1f,0x06,0x62,0x15,0x22,0x39, +0x58,0xb3,0x79,0x63,0x6f,0xa5,0x19,0xa5,0x8a,0xde,0xb2,0x53,0xbb,0x6d,0x8c,0xe2, +0xd1,0xf7,0xa9,0x34,0x6c,0xa4,0xe6,0x5a,0x4e,0xb5,0x0b,0xca,0xd7,0xa8,0xbb,0x80, +0x42,0x89,0x82,0x24,0x0d,0xa5,0xd4,0xe4,0x79,0x1c,0xc6,0x94,0xad,0x2b,0xeb,0xf9, +0xea,0xe4,0xb6,0x79,0x20,0x34,0x9e,0x98,0x41,0x08,0xa2,0x14,0x5a,0xe8,0x18,0xc1, +0x25,0x00,0x94,0xa5,0xb5,0xab,0x08,0x65,0x67,0x4d,0x88,0x54,0x77,0x99,0x31,0xa0, +0x20,0xf7,0xe9,0x44,0x72,0x88,0x01,0xf5,0xc5,0xac,0xa7,0x59,0xb0,0x16,0xa2,0x16, +0x84,0x05,0x02,0x2c,0x2b,0x5b,0x1a,0x38,0x3f,0x68,0xee,0x52,0xb3,0x59,0x08,0xe5, +0x01,0x0d,0xf8,0x1d,0x57,0x32,0xb7,0x46,0xd4,0x74,0xa4,0x14,0xd4,0x9f,0xef,0x9a, +0x98,0x02,0xa3,0x84,0x71,0x69,0x33,0x2d,0xbf,0x4a,0xca,0xa9,0x7d,0x95,0x8b,0xe4, +0x89,0xff,0x5a,0x7b,0xd9,0x64,0x84,0xd9,0xcd,0x3e,0xd3,0x39,0x05,0x7a,0x60,0xbb, +0x6e,0x17,0x57,0xa4,0x62,0x61,0x65,0x77,0x2e,0x57,0xc4,0x40,0xe9,0xa1,0x74,0x6c, +0x38,0x59,0x4b,0x65,0x28,0x8c,0x42,0x6c,0xaf,0x8c,0x61,0x9c,0x47,0xc0,0x60,0x3d, +0xab,0x8c,0xc1,0xbe,0xea,0x8a,0xf2,0x1f,0xa3,0x8f,0x28,0x9f,0xfb,0x1f,0xd1,0x39, +0xd3,0x14,0x91,0x58,0x3c,0x2b,0x61,0x91,0x8b,0x00,0xda,0xf9,0xd5,0x95,0xdf,0xde, +0x5f,0x01,0x13,0x74,0x48,0xc1,0x02,0xad,0xd3,0xfd,0xaa,0x91,0x18,0x59,0xcc,0x69, +0x0a,0x9c,0x8a,0x34,0x39,0x3b,0xdc,0x20,0x60,0x13,0x5c,0x4c,0x64,0x75,0xd8,0x90, +0xdb,0xed,0xfc,0xf6,0x92,0x7d,0x45,0x47,0xa8,0x22,0x6a,0x21,0xc5,0x9d,0x73,0xac, +0x4a,0x10,0xb3,0x98,0x3e,0xb5,0x5b,0x7b,0x5a,0x11,0x9f,0xc7,0xc2,0x33,0x04,0xa6, +0x01,0xd4,0x86,0x27,0xd9,0x85,0x8d,0xdc,0x59,0x6a,0xcd,0x9f,0xd1,0xd4,0x4e,0x36, +0x10,0x17,0x5f,0x24,0x4b,0x94,0xcd,0x18,0x0b,0xde,0xda,0x14,0xfe,0x34,0x47,0x27, +0x43,0x0d,0x05,0x55,0x19,0x99,0x8a,0xf0,0xe4,0x94,0x44,0x96,0xc6,0xff,0xf5,0xc1, +0x04,0x7b,0x5c,0x3f,0x16,0xc8,0xa2,0x17,0xe5,0xf5,0x62,0x07,0xd0,0xff,0x38,0xb4, +0x6a,0xe7,0x02,0x4c,0x7c,0x95,0x50,0x3b,0x97,0x65,0x6e,0x44,0x50,0x35,0x06,0x9c, +0x01,0x81,0x8c,0xee,0x0a,0x31,0xc5,0xb9,0xe9,0x19,0x9c,0x5a,0xf6,0x8f,0x39,0x29, +0x25,0xec,0x84,0x1f,0xb4,0x32,0xfb,0x36,0xe9,0xda,0x68,0x45,0xb6,0x37,0xcf,0x09, +0xa8,0x59,0x77,0xb9,0xd2,0x2a,0xc4,0xb9,0x74,0x86,0xd7,0xb9,0xf0,0xff,0x24,0xd8, +0x2b,0x5d,0xbc,0xac,0x7e,0xc1,0x06,0x17,0x0b,0x09,0xe8,0xf1,0x99,0x75,0x04,0x78, +0xd4,0xea,0x0b,0xcf,0x2f,0xcc,0xab,0x98,0x73,0xa0,0x87,0xcd,0xdc,0x7b,0x27,0xcb, +0xd1,0x13,0xc5,0x3e,0xc6,0x3a,0x4f,0xf5,0x17,0xd7,0x00,0x9e,0xee,0xfe,0x0f,0x59, +0x42,0x67,0xef,0x49,0x5a,0x90,0x45,0xd6,0xca,0xdf,0xf7,0x93,0xfd,0xdd,0x74,0x11, +0x7c,0xc4,0x18,0xf9,0xf6,0x80,0x64,0x51,0x6e,0xb9,0x8e,0x0f,0x5a,0x82,0xc4,0x81, +0x1d,0x89,0x2a,0x69,0xf7,0xe1,0x8f,0x82,0x43,0x43,0xa9,0x76,0x71,0xa3,0x07,0x3b, +0x08,0x8f,0xa3,0xef,0xb0,0xa6,0x29,0x07,0x30,0xa1,0xfb,0x9a,0x59,0x44,0x2b,0xee, +0x8d,0x87,0xaf,0xff,0xa7,0x0e,0xa5,0xf4,0x38,0x65,0xa5,0x54,0x3e,0x22,0x20,0xb2, +0x0e,0xcb,0xa9,0xae,0x32,0xe9,0x4e,0x2f,0x67,0x04,0xcf,0x84,0xbf,0xd4,0x52,0xba, +0x47,0xca,0x13,0x2b,0x34,0x95,0x33,0x94,0xc5,0x11,0x39,0xf2,0x51,0x43,0x38,0x4d, +0x62,0x47,0x1e,0xaf,0xee,0xeb,0x28,0x73,0x63,0x67,0xd1,0xe3,0x33,0x67,0x30,0x73, +0x22,0x26,0x52,0x47,0x7c,0xd6,0x21,0x11,0x38,0xdc,0x39,0xf2,0x88,0x5a,0xa2,0xf7, +0x0c,0x7c,0xf2,0xe8,0x80,0xeb,0xe0,0x54,0x86,0x6b,0x8c,0x1b,0xd1,0x4e,0x3d,0xf7, +0x45,0x32,0x06,0x8c,0x55,0xa3,0x04,0x37,0x8f,0x69,0x3a,0x58,0x1d,0xa6,0xf3,0xf7, +0x59,0x71,0xa5,0x17,0x75,0x5b,0x3b,0xaf,0x50,0xe9,0x21,0xef,0xca,0xf1,0xd4,0x9f, +0xf6,0xa0,0x2e,0x20,0xe1,0x0b,0x73,0x33,0xae,0xda,0xd9,0x3e,0xdc,0xc9,0x73,0xb5, +0x83,0x2a,0xbc,0x62,0x16,0xa8,0x70,0x0c,0xc3,0x3a,0x8a,0x18,0x3e,0xba,0x95,0x29, +0x37,0xe3,0x94,0x72,0x19,0x2f,0xba,0x82,0x5a,0x8c,0x85,0xfa,0x15,0x92,0x72,0x8b, +0x8a,0x75,0xe5,0x3d,0x75,0xdf,0x7b,0x7a,0x2f,0x81,0x33,0xeb,0x5b,0xe3,0x8c,0x1b, +0xe1,0x94,0x97,0xac,0xef,0xed,0x22,0x56,0xbc,0xcf,0xe9,0x05,0xd9,0x8d,0x62,0xd8, +0xdb,0xd2,0x5b,0x6e,0xe4,0x7d,0x99,0xc9,0x19,0xdb,0x8e,0x40,0x72,0x49,0x73,0xf7, +0x4e,0xf2,0xd3,0x12,0x6c,0x55,0xec,0xdf,0x44,0x4b,0x2a,0xc4,0x8a,0xea,0x63,0x89, +0x5f,0xd0,0x5a,0x6a,0x84,0x3f,0xb5,0x8c,0xc2,0x7f,0xe4,0xb8,0xc4,0x26,0x2d,0x8c, +0xc7,0xd1,0x0a,0xa2,0x86,0xe7,0x8e,0x02,0x19,0x10,0xfd,0xd1,0xd4,0xe3,0x3c,0xd3, +0x15,0xa1,0x71,0x2e,0x4e,0xf9,0xcb,0x50,0xd0,0xa4,0xe9,0x95,0x6e,0xfb,0x2c,0xb4, +0x65,0xda,0x54,0xc6,0xdc,0x04,0xfd,0xca,0x54,0x74,0x6d,0xb1,0xbd,0xa5,0xdd,0xa3, +0xea,0x8d,0xe7,0x34,0xc6,0xa6,0x4f,0x10,0xda,0x72,0xcf,0x14,0xc2,0x5b,0x4d,0xdb, +0x4e,0x76,0xec,0xb1,0xf7,0x18,0x27,0xf7,0x40,0x2a,0xb5,0xc3,0x94,0x85,0x64,0xca, +0x2a,0x3a,0x1c,0x71,0x03,0xa9,0xf6,0x3a,0x41,0xb6,0xd6,0xb0,0x46,0xf5,0x48,0x61, +0x2b,0x22,0x08,0x81,0x59,0x14,0x58,0x1f,0x6c,0x41,0x01,0x79,0xbf,0xb9,0x4e,0x74, +0xaa,0x38,0xf8,0x0e,0xba,0x02,0x88,0x38,0x8e,0x07,0x1b,0x3c,0x90,0x05,0xb3,0x6a, +0xc7,0x9b,0x3d,0x6d,0x9c,0xdb,0x01,0x1f,0xce,0x19,0xb7,0xb6,0x00,0x7d,0x70,0xab, +0xd1,0xde,0x75,0xdd,0x2a,0x4d,0x64,0xcc,0x4f,0x8e,0xe0,0xc2,0x78,0xbe,0xb8,0xb8, +0xd0,0x30,0x16,0x5a,0x31,0x17,0x6c,0x0c,0x4e,0x7c,0xec,0x80,0x79,0x9f,0xfe,0x3c, +0x2c,0x4a,0xbe,0xfe,0xdd,0x1e,0x65,0x04,0xcf,0x2e,0x51,0x6b,0xb4,0xa1,0x7e,0x1c, +0x71,0x97,0xff,0xbd,0xf7,0xa4,0x6d,0x0c,0xce,0x0f,0xe6,0x80,0x5c,0x74,0xe5,0x31, +0x34,0x42,0x38,0xfb,0x00,0x6d,0xf3,0x60,0x0a,0xcb,0x86,0x88,0x56,0xe2,0xf1,0x20, +0xa2,0x43,0x48,0x96,0x9c,0xd7,0xbe,0xb4,0x47,0x47,0x3b,0x80,0x8d,0x82,0xc1,0x79, +0x86,0xa0,0x16,0x42,0x9e,0x60,0xd4,0x1c,0xc6,0x00,0x7e,0xa1,0xa6,0xb6,0xcd,0x79, +0x7c,0x0c,0xc1,0x10,0xee,0x03,0x66,0xb5,0xba,0x2a,0xc3,0xba,0xb9,0x30,0xe3,0xf4, +0xde,0xe7,0x00,0xc0,0x97,0x66,0x10,0x3b,0x44,0x86,0x41,0x23,0x5c,0xcb,0x88,0xd4, +0x72,0xfa,0x0f,0x96,0xb2,0xda,0x60,0x8e,0xef,0x48,0xa6,0x59,0xd1,0xa2,0x1b,0xce, +0xea,0x85,0x16,0x7b,0x94,0xa4,0x90,0xe3,0x2c,0xc0,0x40,0x16,0xee,0x04,0x92,0x51, +0xe0,0x71,0xa1,0x37,0x64,0x65,0xa6,0x55,0x38,0xdc,0x1c,0x17,0x2c,0xbc,0x04,0x24, +0x88,0x66,0x12,0xe4,0x7c,0x65,0xd2,0xad,0xe1,0x40,0x52,0xa8,0x29,0x97,0xf5,0xf0, +0x6d,0x44,0xd3,0xb1,0x1f,0x6b,0x43,0x85,0xec,0xc0,0x8c,0x90,0xb2,0x2d,0x93,0xe1, +0xf0,0x47,0x78,0x89,0x9e,0x8e,0x97,0xd4,0xc0,0x0b,0x48,0x2d,0xbb,0xfc,0x94,0xf9, +0xd1,0x10,0x2f,0xda,0x47,0x21,0x9b,0x59,0xc5,0xb0,0xa1,0x8d,0x3f,0xc4,0x54,0xf9, +0x0c,0x4e,0xd9,0x00,0x99,0x21,0x52,0xec,0x75,0xd0,0xd2,0xe8,0x5c,0x4a,0x8a,0xb5, +0xda,0xd9,0x66,0x23,0xc1,0xf0,0xa2,0x90,0x29,0x00,0x9a,0xfe,0xbd,0x1b,0x58,0xb2, +0xf9,0x0e,0xbc,0x8f,0x3b,0xb1,0xc3,0x1b,0xf9,0x46,0x13,0xd0,0x3c,0x64,0x1a,0x46, +0xb1,0x4d,0xa8,0x1d,0xdf,0x34,0x41,0x78,0xea,0x0f,0xe3,0x82,0xac,0x6f,0x4c,0x05, +0x13,0x51,0xcc,0x81,0x4f,0x10,0x95,0x48,0x5e,0x1d,0xd5,0x20,0x36,0x12,0xcc,0x4c, +0xda,0x53,0xf3,0xab,0x29,0x73,0xeb,0xb1,0x6d,0xaa,0xe7,0x4f,0xf2,0x7c,0xbd,0xb1, +0x3e,0x50,0x15,0x78,0xb0,0x73,0xea,0x25,0x8b,0x2d,0x55,0xdd,0xe5,0xff,0x52,0xf4, +0xa7,0x71,0xd2,0xf0,0x58,0xe3,0x19,0x95,0x08,0x23,0x60,0x77,0x50,0x2c,0x0c,0xdc, +0xa0,0xf3,0x7c,0x2b,0xd3,0x6b,0x8f,0xe0,0x51,0xf7,0x6f,0x77,0x46,0x35,0x74,0x2f, +0xc2,0x8a,0x33,0x13,0x35,0x17,0x9c,0xb6,0x65,0xa6,0x4d,0x51,0x9a,0xbf,0xa7,0xa3, +0x55,0x73,0xb8,0x2f,0x31,0x3b,0xed,0xd1,0x74,0x14,0x85,0xc8,0x94,0x77,0x32,0x55, +0xe5,0x45,0x02,0x15,0xe5,0x2c,0xee,0x75,0xa1,0xa5,0xcb,0x97,0x08,0xda,0x78,0xcf, +0xfe,0x12,0x2a,0x09,0xcf,0xc5,0xfa,0x3a,0x2c,0x52,0xfe,0xce,0xc3,0x76,0x57,0xb1, +0x8c,0xe6,0xd8,0x1e,0xd7,0x7f,0x18,0x78,0x25,0xf4,0x61,0xd2,0x0f,0xa6,0x83,0x74, +0xa0,0x5b,0x17,0x92,0xda,0x8e,0x10,0xda,0xb8,0xdc,0xaf,0x47,0x45,0x8b,0x75,0xf9, +0xaf,0x00,0x4f,0x1c,0x1c,0x3b,0x1c,0xfe,0x2b,0x3b,0xa0,0x14,0x02,0xe6,0x26,0x7f, +0xec,0x11,0x15,0xaa,0x09,0xdd,0x3e,0x8a,0x95,0x52,0x98,0x49,0x89,0xf7,0xe7,0xa6, +0xbe,0x1b,0xc8,0x36,0x3d,0x3f,0xd7,0x86,0xea,0x50,0x84,0x6f,0x09,0x88,0xbc,0xee, +0x0b,0x61,0x07,0x5d,0x06,0x45,0x6f,0x17,0xec,0xc7,0xcf,0xd4,0x11,0x3a,0xb9,0x5f, +0x0a,0x80,0x47,0xaf,0x84,0xbf,0xe0,0xbb,0x4a,0xaa,0x7f,0x03,0x02,0xfe,0x75,0x64, +0x02,0x33,0x24,0xfb,0x1c,0xe1,0x34,0x06,0xa5,0x3f,0x14,0x44,0x52,0x33,0xac,0xef, +0x0d,0xc0,0xf0,0x13,0x05,0xa5,0x3c,0x37,0x3a,0xe1,0xed,0xb2,0x5b,0xaf,0x28,0x44, +0x52,0x88,0xf8,0x3e,0x31,0x7b,0xf1,0x4e,0x60,0x35,0x12,0x39,0xe6,0x16,0x70,0x2a, +0x20,0x7c,0x29,0xff,0xe9,0xee,0xa9,0xb7,0xcb,0x97,0x80,0x75,0x74,0xde,0x26,0x01, +0x00,0xc6,0xe8,0xb6,0x1e,0xeb,0x4c,0x59,0x40,0x86,0x30,0xe2,0xa0,0xe9,0xa8,0xc6, +0x09,0xc7,0xb1,0xf3,0x11,0x27,0x79,0x14,0x27,0x97,0xfa,0x04,0x64,0xed,0x5e,0xc7, +0xc4,0x94,0x71,0xaf,0xf0,0xeb,0x15,0x9c,0xb1,0xc6,0x31,0xda,0x30,0xee,0x72,0x1f, +0x05,0x60,0x5c,0xba,0xdf,0xe5,0xb9,0xf7,0x0d,0x78,0x01,0x53,0x76,0x58,0x7b,0x2e, +0xa9,0x71,0xdc,0xbe,0x7f,0xde,0x3a,0x2f,0x33,0xe8,0x9a,0x4c,0xe9,0xe4,0xea,0x9e, +0x34,0xcb,0x61,0xe5,0x1b,0x12,0xc5,0xbe,0x26,0xb6,0x7a,0xaf,0xd4,0xab,0x7b,0x2f, +0xbf,0x4b,0xb5,0xbf,0x9a,0xe8,0xa3,0xc3,0xa8,0x87,0x8b,0x40,0x5d,0xe7,0x7c,0x53, +0x02,0x5d,0x37,0x9b,0xd7,0x56,0x84,0x4b,0xc5,0xc2,0x7b,0x44,0xdb,0x69,0x80,0x34, +0xad,0xe9,0x26,0x14,0xff,0xd7,0x29,0x6a,0x48,0xb7,0xa9,0x6e,0x58,0x97,0x15,0xde, +0x01,0xc3,0x2a,0xde,0xc6,0x50,0xc5,0x38,0xee,0x8f,0xfa,0xfa,0x60,0x71,0xdc,0xa9, +0x6f,0x11,0xe1,0xa1,0x25,0xb1,0x58,0x15,0x4f,0xc3,0xd8,0x4b,0x25,0x75,0xc7,0xdf, +0x85,0x75,0xc3,0x3d,0xac,0xec,0xbb,0xc5,0x6e,0x30,0x17,0x00,0x15,0x9e,0xb4,0xe4, +0xd3,0x6d,0xa4,0x86,0x34,0x3d,0x7c,0xa7,0x1b,0xf0,0xe5,0x5c,0x72,0x32,0x75,0xa6, +0x80,0x47,0x18,0x74,0xfd,0x32,0x74,0x33,0x8c,0x41,0xa3,0x46,0x6b,0x50,0x89,0x1d, +0xa7,0xa2,0xc5,0x30,0x72,0xbd,0xa5,0x27,0xa2,0xe2,0x74,0xb6,0xc2,0xd7,0x25,0x96, +0xda,0xb3,0x7c,0xe4,0x83,0xdf,0x4f,0xb6,0xb9,0xc8,0xef,0x33,0xf3,0x17,0xd0,0xa0, +0xdd,0xf1,0x24,0x42,0x9f,0xf6,0x75,0x1e,0x66,0xcf,0xec,0x1d,0x87,0x77,0xc0,0x5d, +0xd8,0x48,0xb5,0x96,0x54,0x95,0xbc,0x76,0xad,0x6a,0x46,0xc7,0xd6,0x8a,0x5d,0x3d, +0x0a,0x9b,0xa3,0xce,0xb7,0x16,0x23,0x85,0x86,0x84,0x10,0x1d,0xc5,0x60,0x8c,0x2d, +0x5e,0x11,0x15,0x3f,0x91,0xfa,0x26,0xf3,0xe1,0xac,0x3d,0x1e,0xdb,0xec,0xb6,0xf9, +0x30,0x91,0xc0,0x3f,0x3f,0x13,0xa5,0x2e,0x6a,0x5c,0x49,0x52,0x7c,0x73,0x96,0x65, +0x1e,0xea,0x6e,0x1a,0xf1,0x46,0xd9,0xfa,0x61,0x22,0x7e,0xa9,0x86,0x62,0xb3,0xbb, +0xc0,0x85,0xfd,0x02,0xd4,0xe9,0xc8,0xd8,0xfc,0xb4,0x72,0x9e,0x96,0xb8,0x97,0x65, +0x50,0xf5,0x74,0x9f,0xde,0x29,0x3b,0x9f,0xde,0xba,0xbf,0x3b,0xc2,0x67,0x66,0x31, +0xdf,0x1a,0x19,0x09,0xf4,0x6c,0x5d,0x94,0xef,0xd1,0xfb,0x88,0x9c,0xbc,0x74,0x5e, +0x21,0x01,0x59,0xc2,0x54,0xec,0x7b,0x06,0x6f,0xc6,0xa7,0xb7,0xda,0x7d,0x67,0x31, +0x4f,0xe5,0xef,0xcb,0x3e,0xfe,0xc8,0xa9,0x4f,0x2b,0x73,0x29,0xca,0xbf,0xaf,0x5e, +0x28,0xdd,0xef,0xc0,0x83,0x12,0x29,0x9d,0x8f,0x89,0x07,0xdb,0xff,0xff,0xa8,0x31, +0x33,0xc5,0xfe,0x29,0x9f,0x8d,0x2d,0xa4,0x46,0xd1,0xda,0xcb,0xf3,0x6d,0xf7,0xf6, +0xe8,0x10,0xa8,0xfe,0x78,0x50,0xe7,0xc1,0xe2,0x01,0x10,0x04,0xb0,0x6e,0xb9,0xf2, +0xb0,0x89,0x92,0x96,0x87,0xa9,0x29,0xdf,0x6c,0x4f,0xdb,0xde,0x73,0x64,0xa5,0x82, +0x8e,0x0b,0xe8,0x55,0x95,0x6d,0x24,0x03,0xa1,0x4a,0x2d,0xd7,0x53,0x6b,0x80,0xa8, +0x7a,0x02,0xe8,0x26,0xab,0x28,0x82,0x91,0x7e,0xa1,0xea,0xd4,0xda,0xcb,0x5f,0xd2, +0x06,0xb5,0x75,0x16,0xb2,0x88,0x4f,0x47,0x28,0x94,0xe0,0x9f,0x33,0x45,0xc9,0x48, +0x84,0x1d,0xf9,0x2b,0x13,0x2b,0x0f,0x59,0xe3,0xed,0x75,0x41,0x39,0x02,0x89,0xb9, +0xfb,0xfc,0x9d,0x12,0x9d,0xb8,0x41,0x62,0xf7,0x56,0xa6,0x07,0xfd,0xf8,0x06,0x2c, +0x8a,0xef,0x94,0xac,0x70,0x8a,0x6c,0x2e,0xa1,0x47,0x26,0x3c,0xfb,0x6e,0x9e,0x3f, +0xa8,0x8e,0xbd,0x98,0x7f,0xe6,0x22,0xc2,0xe5,0x44,0xfa,0x7d,0xdd,0x64,0xd9,0x6b, +0x6a,0x5f,0x93,0x81,0x9a,0x31,0x41,0x1e,0x23,0x2e,0x1b,0x41,0x39,0x65,0x45,0x85, +0x25,0x06,0x8a,0x99,0xf7,0xca,0x64,0xc8,0x6a,0x0b,0x91,0x39,0x7a,0xe0,0x58,0xcc, +0x54,0x51,0xfc,0xe8,0x14,0x93,0x6c,0x40,0x6b,0x5f,0x42,0x2b,0x80,0xf1,0xb5,0x0a, +0x05,0x6f,0x0a,0xe9,0x9c,0x41,0x25,0x0a,0x21,0xfc,0xfa,0xf6,0x7f,0xe6,0x23,0x0d, +0xc4,0x03,0xd5,0x2f,0x65,0xb3,0x6d,0x55,0xaa,0xce,0xc9,0x6f,0x69,0xe5,0x01,0x5c, +0xa9,0x02,0xf5,0xf9,0x41,0x50,0x20,0x88,0xca,0x4f,0x33,0x41,0x30,0x2b,0xa8,0xa4, +0xc1,0xbf,0xbc,0x54,0xce,0x3f,0x91,0xe7,0x81,0xf6,0xc1,0x46,0xf2,0x73,0x46,0xa0, +0xd6,0x2e,0x84,0x76,0x9d,0xba,0x7a,0x9d,0x8a,0x20,0x19,0x56,0xf3,0x72,0x10,0x72, +0x94,0xbf,0xe5,0xc1,0x91,0xb9,0x06,0x52,0x90,0xdf,0xd2,0x47,0x72,0x71,0x2b,0xb9, +0x02,0x96,0x09,0x77,0x33,0x7b,0x23,0x89,0x89,0x02,0x0b,0x57,0x73,0x5b,0xcc,0xc9, +0x24,0x0f,0xfd,0x7c,0xc1,0x2f,0xc7,0x13,0x16,0x89,0xec,0x0f,0xcd,0xc9,0x1c,0xb2, +0x67,0x13,0x7f,0xe9,0xcf,0x36,0x1a,0xd8,0xe3,0xd9,0xc7,0x7e,0x57,0x7a,0x97,0xbe, +0x2f,0x74,0xb1,0x41,0xb8,0xf8,0x03,0xd8,0x09,0xe7,0x30,0x15,0x72,0x69,0xc5,0xc8, +0xa5,0x0c,0xf7,0x2f,0x48,0x2c,0x63,0xd8,0x2b,0x06,0x84,0xed,0x56,0xa8,0x58,0x6a, +0x2c,0x9d,0x4f,0xfe,0x9b,0x3e,0x68,0x84,0x81,0x29,0x2f,0xce,0x3b,0xc7,0x30,0x7a, +0x4b,0xed,0x06,0x9e,0x98,0xb3,0x1b,0xba,0xef,0xf4,0x5e,0x54,0x74,0x7f,0x15,0x51, +0x43,0x5e,0x0f,0x59,0x1b,0x3c,0x41,0x80,0x03,0x6b,0xef,0x2f,0xf1,0x47,0xb8,0x9f, +0x42,0xaa,0x50,0x7f,0x15,0x36,0x0e,0x3d,0x87,0x2c,0x17,0xb9,0x58,0xf1,0x94,0xec, +0x2c,0xff,0xb2,0x48,0x54,0xdd,0x2e,0xda,0xa2,0x53,0xd7,0x8a,0x5e,0xdd,0xb5,0x2b, +0x13,0xb0,0x86,0xd5,0x08,0x1a,0x0a,0xbf,0x65,0x02,0x7e,0x8e,0x19,0xda,0x23,0xba, +0xe9,0x9f,0x6b,0x49,0xb0,0xc4,0x03,0x1a,0xcc,0xf3,0xef,0xdd,0x45,0xd1,0x83,0x49, +0x40,0x4e,0x0f,0x59,0xb5,0x3f,0x61,0x5d,0xe5,0x20,0xa1,0xfa,0x5a,0xa0,0x52,0xd3, +0x1e,0xe5,0x4c,0x82,0x1e,0x5a,0x0d,0x10,0x24,0x49,0xb4,0xa2,0x67,0x78,0x48,0xa5, +0x76,0x8c,0x38,0x51,0x31,0xa7,0x6a,0x05,0xae,0xa5,0xb2,0x26,0xf6,0xec,0x19,0xb1, +0x30,0x00,0xa9,0x06,0xb0,0xcc,0x4f,0x25,0x2d,0xcd,0xd1,0x87,0x68,0xef,0xd2,0x34, +0x24,0x7c,0x21,0x6f,0x74,0xac,0x01,0xdd,0x69,0xce,0xb3,0x77,0x76,0xee,0xe2,0xc0, +0x03,0xa4,0xde,0xe7,0xc4,0xfb,0x56,0x4b,0x4f,0xb1,0xca,0xd6,0x82,0x4b,0x42,0xd7, +0x09,0xe7,0x28,0x02,0x2e,0xab,0xeb,0x4c,0x3f,0x87,0x87,0x04,0x35,0xa6,0xa1,0xab, +0xe0,0x7b,0xbe,0x27,0xe5,0x13,0x62,0x4d,0xfa,0x33,0x55,0x05,0xb6,0xe6,0x23,0x52, +0xa5,0x8a,0xd1,0xb8,0x14,0xaa,0xe6,0xc7,0x2e,0xf6,0x82,0x0c,0xb6,0x87,0x42,0xbd, +0x3b,0x85,0xc2,0x4a,0x25,0xea,0x9e,0xb1,0xb7,0x95,0xf8,0xc1,0xff,0xee,0x12,0x67, +0x2c,0x49,0x8e,0x7c,0x5e,0x16,0x44,0x02,0xb4,0x1f,0xc2,0xbc,0x7f,0x49,0xb8,0xeb, +0x80,0xef,0xfa,0xb2,0x1e,0xe2,0x50,0x70,0x41,0x3c,0x3b,0x38,0xbf,0xca,0x83,0x8b, +0x08,0x19,0xd3,0x9d,0xbf,0xde,0x45,0x16,0xef,0x26,0x81,0xdd,0x5f,0xe8,0xe0,0xc8, +0x0b,0x2c,0x1b,0x8c,0xbf,0x93,0xb2,0xdf,0xd8,0x6d,0x8c,0x68,0x8e,0x88,0xe2,0xce, +0xae,0x72,0x7d,0xa1,0xaa,0x7e,0x2c,0x57,0xa4,0xbc,0xa4,0x9c,0x1f,0x40,0xa3,0xa3, +0xe8,0x88,0x8b,0x2d,0x2d,0xd3,0x60,0x98,0xbe,0x13,0x63,0xed,0x5f,0xb3,0x3b,0x39, +0xcb,0x89,0x10,0x34,0xe5,0x10,0xbb,0xce,0x5d,0x6e,0x69,0x7b,0xd9,0x7e,0x83,0xbe, +0x53,0x75,0xee,0x78,0x97,0xb6,0x0c,0x58,0xc8,0xdd,0xcb,0x44,0xf6,0xb8,0xec,0x63, +0x1d,0x1c,0x51,0x74,0x94,0x3b,0xc7,0xc9,0x6b,0x2e,0xc4,0x34,0x70,0xa1,0xfa,0xe3, +0x5c,0x83,0xad,0x03,0x15,0x38,0x4a,0xd9,0x69,0xb0,0x37,0xc5,0xb7,0x4d,0x50,0xe0, +0xe6,0x12,0xd2,0x75,0x19,0xbe,0x91,0xc0,0xd1,0x25,0x85,0x67,0x0e,0xfc,0x5a,0x12, +0x4d,0x9b,0xe4,0x39,0xc9,0xf5,0x2b,0x82,0x15,0x61,0x40,0x84,0x89,0xb5,0x52,0x30, +0x11,0x0a,0xff,0xe9,0x4f,0xc9,0xbc,0xa6,0x5e,0xce,0xd6,0x1c,0x34,0xfa,0xe5,0xf1, +0x9a,0x29,0xdd,0x34,0x94,0x63,0xaa,0x83,0x91,0x33,0x35,0xfa,0xc2,0x2b,0x53,0xff, +0x6f,0x1d,0x52,0x98,0x22,0x6a,0x09,0x77,0xed,0x19,0xd4,0x88,0x36,0x7d,0xdd,0x75, +0x95,0xf4,0xec,0x31,0x9f,0xb5,0x08,0x83,0xba,0xd2,0xd6,0xea,0x28,0xf5,0xbd,0x9c, +0xe5,0x28,0xa6,0x1a,0x9c,0x33,0x01,0x29,0x59,0x76,0x36,0xbf,0x7b,0xe2,0xc0,0x4b, +0xcd,0x3e,0xed,0x50,0x1f,0xbc,0xb7,0x6d,0x84,0xb6,0xfd,0x54,0x5f,0xfc,0x8b,0x6a, +0x0e,0xdb,0x54,0x7d,0x11,0xb6,0x2c,0xc1,0x27,0xea,0xa8,0x3d,0xf8,0x5b,0x1e,0xf8, +0xe6,0x93,0x4f,0xbc,0x85,0xa3,0x2f,0x4d,0xcb,0x03,0x71,0xa6,0x5a,0x77,0xb8,0x68, +0x10,0x94,0x78,0xcf,0x53,0x36,0x00,0x5a,0x5c,0xfa,0xc4,0x4e,0x95,0x52,0x6f,0x38, +0xa7,0xdc,0x77,0xad,0x41,0x6b,0x76,0x8d,0x3a,0x2f,0x80,0xd2,0x15,0xba,0xb6,0xec, +0xa9,0x66,0xe7,0xe3,0x54,0xfb,0xbf,0x4e,0x83,0xc2,0x5b,0xdb,0x9c,0x81,0x93,0xf3, +0x84,0x8d,0x67,0xc4,0x40,0x84,0xe8,0xc2,0xec,0x4f,0xc9,0x71,0xf5,0xe0,0x98,0xb5, +0x69,0x0c,0xb2,0xef,0x6e,0x01,0x86,0xf7,0x8b,0x0b,0x67,0x10,0x62,0x89,0x53,0xb2, +0x6b,0x66,0xc9,0x6d,0xaf,0x02,0x37,0xe0,0xad,0xef,0xcf,0xc7,0xc0,0xe7,0xf6,0x63, +0xaf,0xdc,0x49,0x7c,0xfb,0x83,0x11,0x35,0x69,0x21,0x21,0xca,0xee,0x9c,0x80,0x34, +0x80,0x59,0x65,0x41,0x95,0x32,0x2e,0xf2,0x96,0x92,0x14,0x6a,0x53,0x04,0x36,0x65, +0xaf,0x08,0x3f,0xe9,0xdb,0xf2,0x06,0xea,0x47,0xb0,0x18,0xca,0xf2,0x9a,0x81,0xc5, +0xf2,0x0b,0x91,0xdb,0x69,0x82,0xf6,0xfe,0x29,0xf0,0x8f,0xd5,0xda,0x24,0x37,0x79, +0xeb,0x56,0x1a,0x46,0x69,0x94,0xf9,0x4f,0x4f,0x93,0xee,0x7c,0xd5,0xdc,0xbd,0x38, +0x29,0xf7,0x1c,0x0f,0xd4,0x2e,0x34,0x75,0x79,0xe5,0xa8,0xd7,0x5e,0x72,0xbd,0xb8, +0xfa,0xb6,0x42,0xf4,0x1d,0x6b,0x52,0xf8,0xb5,0xa0,0x14,0x5a,0xa6,0x72,0xb8,0xb9, +0x16,0x4b,0x20,0xff,0x9e,0x90,0x0a,0xee,0x02,0x40,0xe1,0x32,0xbc,0x71,0xf0,0x9d, +0x8b,0x43,0xcf,0x1a,0x1b,0xff,0xc0,0x39,0x31,0xc1,0xf8,0x4b,0x9b,0xd4,0x3c,0x64, +0xe3,0xed,0xe4,0xf6,0x68,0x88,0xe0,0x77,0xa6,0xe7,0x4e,0x13,0xe5,0xc1,0xf3,0x48, +0xb0,0xf2,0x2c,0x2e,0xf0,0x8b,0xda,0x3e,0xd9,0x19,0x9c,0xca,0xd4,0x10,0x15,0x60, +0x61,0x3f,0x12,0xdb,0x52,0x5d,0x65,0x6d,0xa1,0xcb,0x50,0x94,0xd6,0x2c,0x90,0x59, +0x7b,0xee,0x95,0xcf,0x9f,0xda,0x78,0x76,0x13,0xe4,0x3c,0x0f,0x0d,0x67,0x05,0x66, +0x04,0x9b,0x0b,0x00,0x32,0x8c,0x8a,0xd3,0x23,0xdf,0x0e,0x2a,0xfd,0x8d,0x36,0x20, +0xcb,0xbe,0x11,0x16,0xb1,0x9a,0x43,0x4f,0x67,0x68,0x18,0x49,0x86,0x30,0x6a,0xbd, +0x4b,0x56,0x3a,0xb5,0xb4,0x9d,0x17,0x5e,0x01,0x2d,0xf2,0xdb,0x22,0x7a,0xa9,0xb5, +0x23,0x1b,0xb5,0x6a,0x93,0x3e,0x4b,0xc2,0xee,0xd1,0x1c,0xb7,0x1c,0x68,0xd7,0xfe, +0x5a,0xa1,0x2c,0x4e,0x10,0xe2,0xd4,0xfe,0x86,0xa0,0xea,0xfc,0x13,0x14,0xc8,0x54, +0x29,0x71,0x3b,0x27,0x4d,0x98,0x02,0xc2,0x67,0x19,0xd8,0x1c,0x41,0x37,0x56,0xfb, +0x9e,0x0d,0xba,0xb6,0xcc,0x97,0xe3,0x10,0x0a,0x16,0xcd,0xe0,0x99,0xf5,0xea,0xed, +0x77,0xa6,0x1e,0x64,0x45,0x98,0x3c,0xff,0x33,0x23,0x1d,0xe7,0x04,0xfc,0xf0,0x78, +0x20,0x17,0x87,0x64,0xea,0x75,0xe9,0xdb,0x6f,0x34,0xf5,0xda,0x3a,0x27,0x3f,0x38, +0x39,0x58,0x17,0xe3,0xb4,0x5b,0xd6,0xcd,0x88,0x26,0x5a,0x38,0x1c,0x7f,0x97,0xeb, +0xdf,0x1a,0x2b,0x1e,0x8d,0x95,0xf0,0x69,0xb8,0xfe,0x2e,0x6a,0x66,0x72,0x6f,0x2a, +0x12,0x90,0xdf,0xff,0xa9,0x20,0x40,0xb8,0x15,0xd1,0x5f,0xc9,0x6f,0x17,0x61,0xf0, +0xfa,0x6d,0x15,0xbf,0x40,0x9f,0x71,0x19,0xf6,0xbe,0x13,0xd1,0x7c,0x3e,0xe3,0xa7, +0xb6,0x41,0x9d,0x6d,0xc9,0x92,0x21,0x8a,0x80,0x9b,0x5a,0x0d,0x19,0x5d,0xf4,0xe0, +0x56,0x4f,0xb0,0x3e,0xc0,0x93,0xbf,0x63,0xc8,0x88,0x71,0xaa,0x2c,0x76,0xf4,0x97, +0x4a,0x20,0x9c,0xe2,0xc5,0xea,0x21,0x6e,0x80,0xf9,0x00,0xfc,0xfd,0x06,0x9b,0x26, +0xa7,0xe5,0xda,0x82,0x4f,0x7a,0x6b,0x22,0x42,0x30,0x6d,0x27,0x52,0xfa,0x24,0x6c, +0xa4,0x09,0x68,0x96,0xcc,0x5c,0xc7,0x48,0x33,0x83,0x14,0x59,0x9f,0x20,0x7b,0x1e, +0x27,0x84,0x15,0x83,0xcf,0xe8,0xa0,0x5c,0xac,0xdb,0xc3,0x68,0x29,0x9e,0xa9,0xf1, +0xa1,0x85,0xbb,0x13,0x7e,0xfa,0x76,0x0a,0x32,0xa6,0x55,0xa5,0xd9,0xeb,0x57,0x6a, +0x00,0x74,0x40,0x78,0x9a,0x70,0xd5,0xe3,0xc1,0xd2,0x74,0x97,0x34,0xc4,0x56,0x6e, +0x7b,0x2a,0x8f,0x52,0x7c,0x33,0xa9,0xe4,0x8f,0xb6,0x38,0xf2,0x62,0x3a,0xf0,0x31, +0x75,0x39,0x02,0x58,0x48,0x0d,0x21,0xfd,0x3d,0x62,0xa8,0x43,0x73,0x19,0xfa,0x20, +0xff,0x54,0x69,0x49,0x73,0x53,0x9f,0x01,0x2c,0x61,0x99,0xc0,0x89,0xea,0x50,0x12, +0xad,0x77,0x62,0xd7,0x41,0xb3,0x0a,0xd5,0x4a,0xc1,0x36,0xd3,0xab,0xa9,0xc6,0x85, +0x29,0x84,0xca,0x00,0xae,0xeb,0xf2,0xda,0x71,0x64,0xdc,0x0a,0x5e,0x8b,0x43,0xb8, +0x2f,0x87,0x23,0x8b,0x96,0xce,0x10,0x58,0xa1,0x63,0x89,0xc1,0x69,0x86,0x54,0x65, +0x2a,0x36,0xe4,0xc3,0x9b,0x11,0x77,0x5b,0x99,0x64,0x7b,0x4b,0x5f,0xa9,0x1c,0x73, +0xf7,0x2f,0x54,0xbf,0xf6,0xec,0x2c,0xf8,0x4a,0x39,0x8d,0x10,0xd3,0x5a,0x3c,0x77, +0xe4,0xfc,0x8b,0x50,0xcf,0xd9,0x99,0x65,0x91,0x66,0xfe,0x0d,0x43,0x83,0x70,0xb8, +0xfe,0x13,0xbd,0x7d,0x9a,0xe2,0xd3,0x55,0x42,0x1a,0xbb,0x6a,0xb5,0x6d,0xea,0x59, +0x7d,0x7a,0xcc,0xae,0x03,0x6d,0x1c,0x7f,0xa4,0x59,0x99,0x6f,0xdc,0x2f,0x0f,0x60, +0x88,0x1d,0x47,0xe0,0xb9,0x16,0xf4,0xcb,0x0e,0x74,0x0b,0x3d,0x81,0x66,0xca,0x10, +0xf1,0x1e,0x6c,0xe2,0x99,0xaa,0x1c,0x99,0x8c,0x29,0x2c,0x3a,0xf5,0xec,0x5d,0xa7, +0xa2,0x09,0x38,0x74,0x89,0xf3,0xfd,0xd6,0xac,0xcb,0xbd,0xa2,0x8b,0x2d,0xed,0x12, +0x00,0x93,0x19,0x13,0xd0,0xcd,0x25,0xbe,0x0e,0xca,0x87,0x44,0xcd,0x5c,0x1d,0xfd, +0x52,0x41,0x37,0xfd,0x4c,0x2b,0x75,0x11,0xa4,0x21,0x44,0x99,0x57,0x94,0xfc,0x15, +0x25,0x60,0x7c,0xa4,0xdc,0x36,0x9f,0xed,0xb9,0x7a,0x6e,0x72,0x71,0xcc,0x72,0x47, +0xa4,0x2a,0x8d,0x05,0x30,0x43,0xd5,0xdd,0x6a,0x02,0xab,0x57,0xfe,0xed,0x69,0x94, +0x26,0x99,0xb4,0x7b,0x12,0x30,0x1a,0x02,0x35,0x97,0x02,0x1f,0xfe,0xba,0x26,0x8a, +0x2c,0x9e,0xee,0x8b,0x43,0x47,0xeb,0x55,0x8d,0x67,0x27,0x5d,0x08,0x57,0x96,0x9a, +0x2d,0x99,0x6e,0xea,0xa6,0xb1,0x68,0xc9,0x2e,0x5b,0x2b,0x90,0x19,0xa4,0x84,0x61, +0xaa,0xb8,0x37,0xaf,0x84,0xf8,0xe8,0x54,0xea,0xe3,0xa0,0x5c,0x8c,0x55,0x2f,0xe9, +0x2f,0x4f,0x2b,0x62,0x4a,0xfa,0xc0,0xc8,0xee,0xb7,0x53,0x30,0xfe,0x08,0xc5,0x66, +0xf2,0xef,0x66,0xc2,0x38,0xfe,0xd5,0xdc,0xb2,0x39,0x89,0x6a,0x05,0x95,0x54,0x29, +0xe9,0x32,0x02,0x41,0x3e,0xdd,0xfe,0xbc,0xfd,0x89,0x7a,0x0f,0x1d,0xdd,0x40,0xcd, +0x7e,0xfa,0x83,0x30,0x57,0xae,0x09,0xd8,0x85,0x5b,0x37,0x7e,0x03,0xf4,0x89,0x2a, +0x65,0x8f,0xb1,0x6f,0xb7,0xfd,0x5c,0xf4,0x37,0x74,0x48,0x4f,0xdb,0xff,0x59,0x2d, +0x73,0x00,0x88,0x81,0xb1,0xaa,0x3b,0x53,0x74,0xc0,0xda,0xce,0xf3,0x66,0xd7,0x00, +0x07,0xc3,0x75,0xf6,0x93,0x22,0x38,0x93,0xa0,0xee,0x77,0xd6,0xd3,0x29,0xd8,0x3d, +0xbb,0xac,0xfe,0xe7,0x31,0xa8,0x6f,0x1d,0x88,0x13,0x47,0x80,0x71,0xe8,0x98,0x2e, +0x91,0xd6,0x3c,0x77,0xd0,0xa3,0x88,0x0e,0xf5,0xbe,0x81,0x47,0x72,0x06,0x0a,0xbb, +0x71,0x04,0xb8,0xc6,0x13,0xe6,0x99,0x9f,0xa3,0xc2,0x58,0x67,0xf3,0xec,0x59,0xa1, +0x71,0x45,0xba,0x2a,0xb0,0x40,0x4d,0xef,0xb6,0xcc,0xf8,0x16,0x12,0x61,0x9c,0x6d, +0xe9,0x75,0xfb,0xa7,0x10,0x2e,0x51,0x9f,0x4f,0xeb,0xd5,0x87,0x50,0x2e,0xfe,0x64, +0x77,0xc6,0x76,0xb7,0x11,0x0f,0x79,0x9b,0x2a,0x56,0xa1,0xf7,0xd6,0xad,0x03,0x33, +0x10,0x9d,0xfa,0x6e,0x5b,0x57,0xbe,0xba,0x08,0x42,0xea,0xae,0x5d,0xb2,0xf7,0x68, +0xbd,0x00,0xd0,0x01,0xba,0x2f,0x63,0x4e,0xbe,0xc2,0x90,0x38,0xfa,0x6f,0x06,0x8d, +0xc2,0x09,0xfb,0x8f,0xba,0x28,0x87,0xd9,0xf4,0xbb,0x91,0xcf,0x74,0x67,0x88,0x76, +0xe8,0x7c,0xdb,0x33,0x38,0xa1,0x8e,0x08,0xfd,0x54,0x13,0xd1,0xba,0x4b,0x82,0x20, +0x7b,0xa1,0x62,0x2e,0x5b,0x6c,0x48,0x6a,0xd8,0x46,0x88,0x69,0xf9,0x6a,0xe6,0x2a, +0xc1,0x3c,0xc1,0xde,0x1e,0x74,0x58,0x9e,0xc6,0x56,0x52,0x1c,0x38,0x96,0x52,0xe9, +0x67,0x4f,0xbb,0x3f,0x9c,0x35,0x55,0x81,0xb9,0x03,0x5b,0xa1,0x79,0x68,0x35,0x70, +0x6a,0xa9,0x91,0x5c,0x38,0x29,0x3f,0x1f,0x01,0x3e,0xa3,0x5a,0xb8,0x90,0x4c,0xc8, +0x43,0x62,0xbc,0xd4,0x31,0x3f,0x6a,0x8c,0x03,0x21,0xec,0xc6,0x31,0x30,0xaa,0x7f, +0xdc,0x7f,0x86,0x9c,0x92,0x54,0xe3,0x50,0x67,0xfc,0x5b,0xda,0xf3,0x92,0x13,0xad, +0xa6,0x50,0xe5,0x25,0xf8,0x3f,0x03,0x8d,0x53,0x9f,0xed,0x58,0x47,0x30,0xe8,0xd1, +0xb1,0xef,0xd7,0x88,0x12,0x35,0x1c,0x4a,0xe7,0xd1,0x8f,0xc7,0x52,0x16,0xd5,0x53, +0x33,0x1e,0xbc,0xa6,0x73,0xb4,0xc5,0x02,0xce,0xf9,0xd6,0x06,0xf0,0x3c,0x6a,0xe4, +0xaf,0xb8,0x96,0xd5,0x90,0x33,0x02,0x12,0x67,0xd0,0x07,0xaa,0x0c,0x9d,0x0b,0xd2, +0xce,0x52,0xbd,0x47,0xb7,0xb7,0xc0,0x03,0x0b,0xdc,0x40,0x75,0x51,0x37,0x07,0x41, +0xe0,0xc8,0xc5,0xb2,0x10,0x31,0xee,0x13,0x8b,0xb6,0x00,0xfd,0x12,0xc8,0xbb,0xd7, +0xc1,0x49,0xd6,0x81,0x99,0xb2,0x30,0xd3,0xcb,0xf5,0xcc,0x53,0xdb,0x1d,0xa2,0x17, +0x2a,0x09,0xca,0x6c,0x63,0x36,0x7f,0xc3,0xca,0x5d,0xc4,0x43,0xda,0x7f,0x05,0x7a, +0x94,0xc7,0xff,0x6f,0x3a,0x39,0x12,0x52,0xee,0xd8,0xcd,0xb8,0x5b,0x1f,0xa4,0xf6, +0x7c,0xb6,0xef,0xd9,0xb6,0x36,0x5a,0x49,0xff,0xaa,0xcf,0x99,0x18,0x74,0x18,0x2a, +0x2e,0x5e,0xce,0xeb,0x99,0x3a,0x28,0xdd,0x9f,0xff,0x16,0x15,0x51,0xf1,0xfa,0xba, +0xd4,0xb9,0xae,0x9c,0xd4,0x30,0x4d,0xd9,0x8c,0x1c,0x4f,0xba,0x43,0x7b,0x87,0xf1, +0x0b,0xc1,0xcf,0x6a,0x5b,0x31,0xc5,0x1a,0x8e,0xfe,0x8e,0x77,0x1d,0x32,0xd9,0xdf, +0x63,0xde,0xc5,0xdc,0x18,0x39,0x3f,0xbd,0x27,0xd2,0xff,0xa1,0x5a,0x1d,0x38,0x0b, +0xb9,0x09,0xd8,0x56,0x58,0xaf,0x8a,0xd9,0xcb,0x16,0xc8,0xa4,0x51,0xdb,0x5a,0xbc, +0x5d,0x0c,0xac,0xf4,0x97,0xa2,0xaf,0xd8,0x80,0x7c,0x82,0xd4,0xd7,0xa9,0x94,0x63, +0xc4,0xff,0xc1,0xa7,0xde,0x29,0x39,0x3e,0xa7,0xb3,0xc9,0xa5,0xd1,0x19,0x57,0x3e, +0x6e,0x12,0x6d,0xe7,0xd9,0xac,0x93,0xc3,0xf9,0x62,0x62,0x27,0x76,0xe5,0x71,0xb1, +0x36,0xea,0xe8,0xc3,0xb7,0x2c,0x4e,0x4e,0x27,0xc0,0x88,0xe4,0x74,0x91,0x56,0x7e, +0x66,0x81,0xea,0xb4,0x95,0xad,0x62,0x70,0x8d,0xca,0x98,0x32,0x58,0xe8,0x5f,0x6a, +0x4c,0xf7,0x61,0xa5,0x37,0x2e,0x0f,0x81,0xd4,0x8b,0xc9,0xb7,0x28,0xe9,0x10,0x20, +0xb7,0x0e,0x29,0x35,0xd6,0x87,0x31,0x6b,0x2e,0x96,0xf3,0x73,0x74,0xea,0x04,0x06, +0x74,0x2c,0xc2,0xae,0x4c,0x23,0xa3,0xc0,0x89,0x15,0x3a,0x2c,0xfd,0x62,0x10,0xe9, +0x39,0x24,0x65,0x7c,0x5c,0x89,0x3c,0x16,0xa4,0x98,0x6e,0x5c,0x1e,0x96,0xa2,0x37, +0x84,0x7d,0x27,0xed,0x1e,0xe2,0x99,0x36,0x4c,0x24,0x5c,0xcd,0x5e,0x09,0xba,0x5c, +0x47,0xdb,0xd3,0x9d,0xbf,0xde,0x49,0x2b,0x18,0x46,0xc3,0x5d,0x9c,0xcb,0x42,0xc0, +0x0f,0x4c,0x9a,0x69,0xbf,0x24,0x8a,0x62,0xa7,0xbd,0xf8,0x6f,0xfd,0xea,0x7f,0x77, +0x82,0x20,0xe2,0xbc,0x9d,0xa5,0x69,0x9c,0xa6,0x5c,0x82,0xfc,0x5a,0x74,0x45,0x63, +0xba,0x2a,0xf3,0xad,0x3f,0x26,0x8b,0x83,0x2a,0x63,0x7b,0x06,0xbd,0xce,0xfe,0xc8, +0x96,0x22,0x2b,0x3d,0xdc,0x10,0xbb,0x97,0x4b,0x62,0x83,0xfd,0xd6,0x09,0xb5,0x92, +0xcf,0x01,0xee,0x78,0x97,0xbd,0xf4,0x26,0xae,0x2f,0xd4,0xe6,0x65,0x70,0xec,0x16, +0x54,0xee,0x24,0x42,0xd4,0xbe,0x44,0xc4,0x05,0x87,0xe3,0x85,0x94,0x0e,0x7f,0x0c, +0xcc,0xc3,0xef,0x7c,0x17,0xb4,0xf5,0x33,0x2c,0x2f,0xcd,0xd5,0x0b,0xb0,0x12,0x54, +0x3b,0x9b,0xcd,0xd3,0xa2,0xbc,0xfd,0x37,0x60,0xde,0x3d,0x4e,0x5f,0x27,0xc0,0xa0, +0xd5,0xf1,0xec,0x70,0x97,0x3e,0x0c,0x60,0x63,0xa7,0x14,0xcb,0x56,0x85,0x57,0x6e, +0xcc,0x84,0x8c,0x96,0x91,0xb8,0x26,0xf6,0xc4,0xd3,0xdc,0x61,0xd6,0x79,0x5d,0xfe, +0x4d,0xa7,0x62,0x97,0x97,0xb9,0x0d,0x61,0xef,0x16,0x75,0xe4,0x46,0xf0,0x81,0xa0, +0x9f,0x31,0xa7,0xca,0xf6,0xb5,0x71,0xe3,0xa7,0xd8,0xb7,0xea,0x9c,0xf8,0x27,0xd1, +0x91,0x24,0xc6,0xca,0x53,0x33,0xc9,0x2e,0x2e,0xce,0x24,0xb1,0x10,0x75,0x39,0xe0, +0xa0,0xef,0x39,0xfc,0x7e,0x55,0x00,0x96,0x0c,0x59,0x12,0x2d,0x72,0xf1,0x19,0xa7, +0xec,0x35,0x32,0x6d,0x3e,0xb3,0x88,0x49,0xa4,0x8b,0xc9,0x97,0x15,0x6b,0x67,0x93, +0x7c,0xe6,0xa5,0x97,0x1e,0xb6,0x67,0xe9,0xc9,0xdd,0x3f,0xfe,0x62,0x56,0xaf,0x3a, +0xae,0x83,0x9e,0x4c,0x3f,0xbb,0x16,0xab,0x93,0x57,0x77,0xdc,0x1e,0xac,0x6c,0x32, +0xaf,0x99,0xd4,0x3c,0xbd,0xb5,0xc5,0x98,0x2e,0x9d,0xb4,0xe3,0x6d,0xb2,0x79,0xe3, +0x3c,0x96,0xbd,0xd2,0x1d,0xdb,0x71,0x09,0x6c,0xf6,0xae,0xbe,0x59,0xf3,0xae,0x9c, +0x4e,0x39,0x29,0xcf,0x1c,0xb9,0x07,0x99,0xae,0xff,0x9f,0xfd,0x2d,0xf2,0x59,0x54, +0xa7,0x4d,0x86,0x30,0xf9,0xe1,0x49,0xba,0xa4,0x2a,0x5c,0x11,0x84,0x71,0x0a,0x6f, +0x40,0x08,0x7f,0x66,0xfa,0xe0,0x41,0xaa,0xa5,0xcb,0x09,0x2f,0x6d,0x15,0xfe,0xd1, +0x23,0x09,0x2d,0x97,0x92,0x2a,0x31,0x35,0x8a,0x28,0x36,0x0c,0xf4,0x96,0xf1,0x93, +0x01,0x55,0xe9,0xa6,0xcb,0x2e,0xae,0xf4,0xb6,0x43,0x8a,0xc5,0xa9,0x92,0x70,0x2e, +0xa1,0x61,0xfd,0xd4,0xf9,0x0e,0x2e,0x67,0xe3,0x06,0x5d,0x79,0xd2,0x33,0xf3,0x30, +0x0f,0xae,0x68,0x26,0x71,0x82,0xd7,0xf4,0x4e,0x03,0x4f,0x9e,0xf6,0x6c,0xfc,0xa3, +0x69,0x25,0x9b,0x9b,0xe6,0x89,0xdd,0x6f,0x4d,0xeb,0xeb,0x9a,0xb1,0x42,0x1d,0xae, +0x85,0x2e,0x09,0x10,0x57,0x8a,0x51,0x75,0x6a,0x54,0xc0,0x85,0xd7,0x96,0x3a,0x5a, +0x4b,0xf8,0x7d,0x7f,0x7c,0x44,0x25,0xf8,0x3b,0x48,0x52,0x4d,0xb2,0x65,0x72,0x9a, +0x89,0x5f,0x06,0xaf,0xb8,0x86,0x0c,0x5a,0xb6,0x94,0x86,0xcf,0x2d,0xc2,0x01,0x8b, +0x66,0x1e,0x64,0xcd,0xc7,0x68,0xd3,0x34,0xfc,0xb7,0xed,0x89,0x55,0xcc,0x33,0xc9, +0xd5,0x8b,0x9a,0x3a,0x38,0x84,0xcf,0xc7,0x34,0xca,0x0c,0x20,0xea,0x4d,0x6f,0x2a, +0xf5,0xa1,0x0a,0xc8,0x17,0x0a,0x6c,0xa8,0x4c,0x24,0xac,0x6a,0xbb,0xef,0xc8,0xdc, +0x22,0x31,0xb4,0x98,0xf2,0xd5,0xf6,0xfc,0x46,0x41,0x21,0x8c,0x94,0x9c,0x17,0x8e, +0x54,0x06,0x8b,0x5d,0x23,0xae,0xf2,0xed,0xc7,0x91,0xa1,0x9e,0x56,0x63,0x75,0xf8, +0x28,0xa2,0x27,0xcf,0xcd,0x27,0x13,0x7d,0x62,0x5c,0xa5,0x7b,0x3a,0xec,0xd9,0x81, +0x40,0x76,0xe4,0xc6,0xc1,0x72,0x0c,0xa5,0x81,0xff,0x98,0x20,0x59,0x75,0xf5,0x14, +0x7d,0x33,0x38,0xf6,0xe0,0xec,0x22,0x84,0x41,0x5c,0x61,0xfa,0x84,0x2d,0x78,0xfb, +0xc2,0x16,0x09,0x2f,0x11,0xed,0x1e,0xd3,0x0b,0x93,0xad,0x5b,0x5c,0x7f,0x73,0x30, +0xe2,0xf3,0xa6,0x6a,0xca,0x13,0xd9,0x35,0xec,0x3d,0xc4,0x2d,0x54,0x8c,0x35,0x44, +0x0b,0xa3,0xa2,0x88,0x31,0x3c,0x6c,0x0f,0xef,0x16,0xb4,0x53,0x6c,0x79,0xa0,0x4f, +0x22,0xd5,0x37,0x26,0x12,0x96,0x62,0xad,0x65,0x3d,0xe4,0x0f,0xfc,0xa3,0x7d,0x3e, +0x4b,0x75,0x05,0xb0,0x9d,0x3b,0xd9,0xa6,0xe3,0x5d,0x2e,0x67,0x10,0x36,0x8d,0xb0, +0x59,0xba,0x97,0xd2,0xb5,0xde,0xfc,0x9a,0x5c,0x39,0xd5,0xd4,0x71,0x10,0x1e,0x9d, +0xc1,0x3b,0x46,0x49,0x54,0xa4,0x2c,0x53,0x6e,0xe0,0xa8,0x90,0xf5,0x8e,0x1b,0x68, +0xf9,0xe8,0xa1,0xe3,0x8e,0xa4,0xdf,0x49,0x59,0x59,0x9f,0x54,0x59,0x34,0x7d,0xe9, +0xac,0x54,0x3c,0xd7,0x61,0xc7,0xc8,0xda,0xb9,0x53,0x9f,0xa0,0xd8,0x38,0xcf,0xed, +0x22,0xb6,0x9d,0x9d,0x46,0xb6,0x61,0x90,0x69,0x39,0x0a,0x52,0x18,0x28,0x92,0x2a, +0x9a,0x8d,0x98,0xae,0xc1,0xb7,0x96,0xad,0xe7,0x54,0x2d,0x04,0xa8,0x3e,0x06,0xdd, +0x54,0xe2,0xf4,0x6c,0xd9,0x92,0x66,0x68,0x80,0xa5,0xbe,0x5b,0x88,0x70,0xfd,0x0e, +0x60,0x7d,0x47,0xf1,0x51,0x7a,0xd1,0x6d,0xe7,0x81,0x49,0xc6,0xf9,0x9c,0xdf,0xef, +0x85,0xea,0x6b,0xa6,0x18,0xb4,0x05,0x23,0x9f,0xf0,0x24,0x7f,0x19,0x9f,0x40,0xb5, +0x9c,0x8f,0xb5,0x74,0xef,0x55,0x28,0xd1,0x67,0x1d,0x0a,0xb6,0x3d,0xb1,0x02,0xc2, +0x59,0x01,0x64,0x23,0xc1,0xb0,0xa8,0xc3,0x29,0xb1,0x02,0xc5,0x29,0x8d,0x41,0x01, +0x1a,0x8f,0xb4,0x39,0xa4,0xe0,0x63,0x00,0x2f,0x3b,0xe9,0x36,0xe7,0x06,0x49,0xa4, +0x11,0x8c,0x0e,0x3e,0x68,0x3c,0x59,0x80,0x7e,0x81,0x79,0x56,0x7c,0x61,0xf3,0x22, +0x14,0xe8,0x64,0x34,0xfd,0x5c,0x2a,0xbc,0x32,0x6b,0x86,0x95,0xda,0x39,0xdf,0x6e, +0x01,0x4e,0x79,0x16,0x1b,0x28,0x06,0x75,0xe6,0x87,0x86,0x70,0xb6,0x66,0x07,0xf3, +0x85,0xe4,0xdf,0x86,0x19,0x20,0xd1,0x11,0xa4,0x61,0x89,0x97,0x9a,0x17,0x15,0x2d, +0x6c,0xa4,0x97,0x96,0x91,0xcf,0xf5,0x7d,0x48,0x6a,0x8b,0x84,0x5b,0xea,0x42,0x08, +0x92,0x85,0x9c,0x26,0x7c,0xa8,0xbe,0xdb,0xb1,0xc7,0xcc,0x9e,0x37,0x8b,0xdc,0x15, +0xae,0x04,0x6a,0x5b,0xf7,0x74,0xb6,0xcb,0xb0,0xc6,0x84,0x07,0xd0,0x4f,0x69,0x16, +0xcc,0x8c,0x5c,0x7d,0xee,0x75,0x53,0x98,0x7b,0x88,0x4c,0x5d,0x37,0x5b,0xd4,0x64, +0xfe,0x8b,0xd3,0x38,0x60,0xa4,0x05,0x26,0xac,0x57,0x2c,0x7f,0xd9,0xc7,0xce,0xd9, +0x20,0x86,0x1e,0x3c,0xbd,0x53,0x3e,0xee,0x43,0x8a,0x09,0x9e,0xc5,0x1d,0x4c,0x66, +0x2d,0x2d,0x6d,0x1d,0x3a,0xec,0x44,0xbe,0x49,0xa5,0x8c,0x8d,0xd3,0x30,0xe1,0x58, +0xa4,0xed,0xe5,0x03,0x17,0xe7,0x7b,0x6f,0x67,0xdd,0x8d,0x69,0x3f,0x6d,0x7c,0x4a, +0xfb,0xaa,0xd1,0xa0,0x62,0xc3,0xda,0xff,0x8e,0xa7,0x83,0x00,0xfc,0x4c,0x70,0x60, +0x78,0x67,0x75,0x78,0x5f,0xbf,0x0a,0x96,0x62,0xb8,0x4d,0x99,0x52,0x50,0x2e,0xe0, +0x16,0x19,0x84,0xec,0x33,0xf3,0x33,0x4f,0x8c,0x49,0x1b,0x17,0x94,0xce,0x27,0x54, +0x84,0xa3,0xa7,0xf4,0xd0,0xb4,0xd9,0x5a,0xec,0x90,0x65,0x23,0xc3,0x33,0xd5,0xd5, +0xe1,0x95,0xbe,0xe9,0x16,0xd6,0x25,0xa2,0x04,0x7c,0xc4,0x4d,0x0e,0x2c,0x34,0xe6, +0xdb,0xf8,0xc3,0x42,0x5b,0x1f,0xd4,0x90,0x04,0x73,0xcc,0x1d,0xa0,0xfc,0x50,0x7f, +0x21,0xfd,0x30,0xb4,0x57,0x55,0x34,0x76,0x6a,0xf3,0xa5,0x68,0x71,0x1c,0x03,0x9f, +0xa7,0xd6,0xdd,0x39,0xb0,0x5f,0xb5,0xa6,0x22,0x7b,0x74,0x65,0x58,0x09,0x91,0xb1, +0x84,0xf7,0x93,0xd1,0x56,0x34,0x35,0xe3,0x5e,0x57,0xc8,0xb7,0xb3,0xf1,0x06,0xd6, +0x8d,0x14,0x19,0x6c,0x74,0x79,0x27,0x59,0x54,0x9a,0x76,0x2e,0x79,0xe3,0xea,0x1c, +0x5d,0x9a,0x51,0xec,0xd6,0x21,0x46,0xc9,0x5d,0x9b,0x17,0xc0,0xe8,0x85,0xe3,0x0e, +0xef,0xfa,0x87,0x19,0xd7,0x4a,0xbb,0x5e,0x05,0xeb,0x31,0x2b,0xf6,0xf1,0x3c,0x93, +0xe7,0x11,0x2f,0x6b,0xc5,0xf9,0xb3,0x4f,0x10,0xd4,0x00,0xf0,0xfb,0xd2,0xe1,0xc8, +0xd3,0x61,0x94,0x3d,0xb2,0x61,0x08,0x2a,0x87,0xf6,0x80,0x0d,0x1d,0xdc,0x95,0xea, +0xfc,0x32,0xd6,0xee,0xb7,0xa2,0x74,0xbf,0xe0,0x9f,0x7e,0x1e,0xe3,0xbc,0x71,0xa9, +0xc6,0x93,0x9f,0x4b,0xd3,0xd5,0xb7,0xae,0x7a,0x9c,0x8f,0xf2,0x03,0x77,0xcf,0xa9, +0xcd,0x38,0xb5,0xdd,0x18,0x1f,0xf3,0xb9,0xee,0x5f,0xff,0xff,0xff,0xff,0xa3,0xa5, +0xdc,0x83,0x34,0x66,0xfb,0xc1,0xd0,0xa4,0xad,0x4e,0xae,0x11,0xf3,0x10,0xad,0xa5, +0xe0,0xae,0x19,0x64,0x91,0x3e,0xe3,0xf2,0xe0,0xfe,0xa6,0x1c,0xf6,0x71,0x22,0xb0, +0x58,0xc1,0x2d,0x96,0xac,0x8f,0x29,0xde,0x43,0x4f,0x95,0xef,0xe3,0x27,0x5c,0x62, +0xef,0x81,0xb7,0x21,0xf0,0x27,0x71,0x53,0x32,0x2d,0xa7,0x1c,0x76,0x78,0xed,0x32, +0xb9,0xfb,0x23,0x86,0x96,0x2a,0x6e,0x01,0xe1,0xef,0xee,0xc5,0x98,0x95,0x99,0xa0, +0xfc,0x0a,0x92,0x51,0x7b,0xe6,0xf4,0xe2,0x0f,0x4d,0xbe,0x48,0xb8,0x66,0x9c,0x79, +0x00,0xd2,0x65,0xa7,0xda,0x05,0x05,0x60,0x2b,0x65,0xaf,0xc4,0x3b,0x65,0xfd,0x9e, +0x70,0xdc,0xb7,0xe1,0x72,0x84,0xd9,0x10,0x89,0xe3,0x75,0x0a,0x19,0x44,0xfd,0x7b, +0x32,0x64,0xe3,0xcc,0x5c,0x8c,0xd2,0xa9,0x17,0x40,0x75,0x5f,0x6c,0x27,0xa7,0x6b, +0x6b,0xa8,0x1f,0x6f,0x7d,0x2a,0x9e,0xc5,0x41,0x08,0x0a,0x4e,0xb2,0x00,0xe4,0x49, +0x8c,0x2a,0x11,0x21,0x50,0xcb,0x95,0x5a,0xfa,0x41,0x92,0x5e,0xe4,0x25,0x5e,0xea, +0x0d,0x86,0x35,0x0c,0x78,0x84,0xdb,0xa8,0xc7,0xfe,0xcb,0x21,0x89,0x6d,0xd7,0xe8, +0x5e,0x4c,0x94,0xbf,0x70,0x04,0x80,0x6e,0x82,0xef,0x69,0xff,0x78,0x64,0x13,0xdd, +0xae,0xb2,0xaa,0x42,0x66,0x22,0x00,0x4f,0x23,0x6e,0x25,0x83,0xb2,0x6e,0x98,0xd8, +0x6b,0x71,0x61,0xa5,0x4e,0xe3,0xf7,0x4e,0x6b,0xb1,0x52,0x1e,0xf0,0xef,0xf6,0x1e, +0x51,0x05,0x7c,0x81,0x9d,0x74,0x25,0x7f,0x2a,0xcc,0x89,0x82,0x2c,0x03,0x46,0x25, +0xc9,0xd3,0x72,0x77,0xbc,0x3d,0x45,0x12,0x68,0x30,0xd0,0x9a,0xac,0xf3,0x5a,0x28, +0xca,0x75,0x1a,0x6c,0x31,0x73,0x49,0xb1,0x39,0xaa,0xbf,0x15,0x90,0x0e,0x12,0x72, +0x24,0xbf,0xfa,0xbb,0xd4,0xc7,0xca,0xa0,0xc4,0xf2,0x36,0x00,0x28,0x31,0x35,0x6a, +0xa7,0xa8,0x0a,0xb9,0x44,0xbf,0x1d,0x95,0x00,0xfc,0x20,0xf2,0x3b,0x7a,0xe7,0xc2, +0x64,0x49,0x14,0xcc,0x97,0x9b,0xd4,0x0e,0xd9,0x4b,0xaa,0x44,0x74,0x1c,0x0e,0xbe, +0x42,0x75,0xf4,0x2e,0xf2,0xbf,0x74,0x92,0x9e,0x59,0x08,0x0e,0x88,0x37,0xe9,0x53, +0x9e,0x1c,0x11,0x47,0x32,0xac,0x95,0x61,0xe7,0x8b,0x48,0xdb,0xd4,0x83,0x32,0x8b, +0x5e,0x8b,0x4a,0x24,0x10,0xb7,0x65,0x19,0xb3,0x1a,0x9d,0xb1,0x06,0x7b,0x9a,0x97, +0x16,0x1e,0xff,0x5c,0x9b,0x24,0x07,0x5b,0x50,0xf7,0xde,0x91,0x91,0xfb,0xa2,0x68, +0x75,0xef,0xa4,0x4c,0x65,0x21,0x47,0x22,0x8c,0xa6,0x9c,0x52,0x7f,0x52,0xf3,0x72, +0x09,0xe5,0x9e,0x7e,0xdc,0xc7,0x86,0x5a,0xd4,0x25,0xdd,0xac,0x07,0x87,0xf0,0xeb, +0x6b,0x1b,0xf1,0xa8,0x36,0x96,0xa2,0xfe,0x37,0x53,0xeb,0xd3,0x5a,0xd6,0xc1,0x38, +0x29,0x8d,0xf4,0xdf,0x99,0xad,0xad,0xe0,0xcf,0x23,0xee,0x93,0xfb,0x71,0xed,0x2b, +0xa7,0xa0,0x49,0x2d,0x98,0xbd,0x23,0x12,0xe8,0x50,0x1e,0xb9,0x46,0x73,0x39,0xcf, +0x4b,0x9d,0xb9,0xf4,0x4b,0xb4,0xfe,0x97,0x7f,0xd3,0x64,0x4d,0x06,0x5d,0x37,0xd4, +0x2b,0x08,0xfd,0xce,0x18,0xee,0xa0,0x3b,0x4a,0x80,0xe7,0x02,0x78,0x72,0x76,0xa7, +0x02,0x02,0x32,0xf5,0x78,0xce,0xe1,0xda,0x44,0x82,0x13,0xe0,0xf5,0x8c,0x56,0x14, +0xec,0xe2,0x96,0x22,0x74,0xa5,0x83,0x70,0xe4,0x3c,0xe6,0x53,0x5d,0xe2,0xf5,0x70, +0xe6,0x33,0x9f,0x32,0x56,0x5d,0xb6,0x0f,0x25,0x7d,0xd3,0xb6,0xd5,0x82,0x7a,0xe0, +0x09,0x8e,0xcb,0x08,0x94,0x63,0x11,0x51,0x2c,0xb0,0x7d,0xf2,0xd3,0x98,0xb7,0xb2, +0x81,0xf5,0x72,0xc4,0xc2,0x35,0xd3,0x91,0xca,0x39,0x4f,0xf5,0x2e,0x39,0xcb,0xa1, +0x8b,0x88,0x79,0x49,0x2b,0x18,0x5e,0xc3,0xcb,0xa0,0x4b,0x4e,0xab,0x54,0x1f,0x45, +0x67,0x05,0x5e,0xa5,0xb2,0x72,0x09,0x70,0xa0,0x82,0x97,0x5f,0xd5,0x66,0x90,0x14, +0x51,0x8d,0xf1,0x4b,0xa4,0x1c,0xcd,0x11,0x2c,0x84,0x55,0x08,0x1d,0x56,0x5d,0x8e, +0x77,0xe1,0xfc,0x3a,0x40,0x03,0xf2,0xbb,0x3a,0xc6,0x40,0x51,0x34,0xe5,0x3c,0xb3, +0xe6,0xcd,0xbc,0xee,0x8d,0x58,0xc1,0x7d,0x4b,0xeb,0xc4,0x38,0xbc,0x6a,0x84,0xa7, +0x65,0x49,0x35,0xf0,0xbc,0x9b,0x0b,0xd4,0x4f,0xc7,0xa5,0x4d,0xbc,0xf4,0x11,0xaa, +0xe7,0xc9,0xd5,0x19,0x7c,0x28,0xf4,0xfb,0xdd,0x66,0x20,0xcc,0x51,0xa9,0xa2,0x24, +0x6f,0xec,0x5a,0xbd,0x38,0xbc,0x8f,0x18,0xf9,0xf3,0x0d,0x10,0x94,0x7d,0x6f,0xaa, +0x39,0x1c,0xca,0x93,0x9f,0x3d,0x28,0x80,0xb4,0x8f,0x9c,0x47,0xb4,0xce,0x1c,0x11, +0x37,0x12,0x5b,0xbc,0xb0,0xa8,0x0a,0x55,0xe0,0x3b,0x08,0x28,0x37,0xcd,0x15,0x5d, +0x6e,0x0c,0xb2,0xb3,0x3a,0x00,0x3b,0x3f,0x2e,0xb4,0xc5,0xdf,0x15,0x7e,0x89,0xfd, +0xb9,0xcf,0x32,0x15,0x0c,0x1d,0xb4,0x83,0xa0,0x2c,0xac,0x8b,0x14,0x6b,0xfd,0x68, +0xde,0x4e,0x92,0xa2,0x54,0xb5,0xfb,0xcd,0xea,0x57,0xc4,0x89,0x17,0x24,0x1f,0x68, +0x17,0x67,0xb4,0xf7,0x34,0xad,0x88,0xfc,0xe2,0x99,0x75,0x46,0x16,0xaf,0xed,0x13, +0xa0,0x0e,0xcc,0xd7,0xf1,0x17,0xb9,0xf3,0xa9,0x5e,0x69,0x8c,0xd3,0x66,0xf4,0x40, +0xa6,0x8d,0x9a,0xfb,0xca,0xc5,0xb4,0x62,0xbf,0x96,0x0f,0x62,0x74,0x48,0xf2,0xb0, +0xdc,0x48,0xe3,0xb4,0x39,0xd7,0xbc,0x93,0xac,0xd9,0xd8,0xd0,0x57,0x64,0x5d,0x3d, +0x24,0x92,0x56,0xeb,0x34,0xb2,0x69,0x30,0x1b,0xd9,0x65,0xc7,0xca,0xb6,0x13,0x76, +0x5e,0x38,0x29,0x07,0xbf,0x0e,0xd9,0xb1,0x63,0xda,0x7d,0xf4,0x53,0x5c,0x0e,0xe8, +0xd5,0x94,0x34,0xa6,0xf4,0x59,0x48,0x9e,0x87,0x39,0xe2,0x46,0x74,0xba,0x91,0xd8, +0x8c,0x6c,0x13,0x1a,0x3b,0x28,0x5e,0xd5,0x6b,0x9b,0x1d,0x1b,0xa5,0xba,0x1f,0xf5, +0x2d,0x97,0xb2,0x0b,0xd9,0xbc,0x23,0x5a,0xea,0x13,0xf3,0x4f,0x20,0x79,0xfa,0x1f, +0xa3,0x57,0x91,0xab,0x1e,0xde,0x2c,0xd9,0x06,0x1a,0x9c,0x1e,0xe1,0xff,0x34,0x3b, +0x44,0x98,0xfe,0xde,0x0d,0x0a,0x89,0x1a,0x5f,0x7d,0x64,0xee,0xb6,0x76,0xcd,0xed, +0x4c,0x99,0x56,0x2d,0x1d,0xad,0x2c,0xe4,0x84,0xb9,0xc0,0xd2,0xf2,0x5b,0x39,0x7f, +0x2a,0x98,0xc7,0xcb,0x8d,0xc8,0x23,0x18,0x6a,0x53,0x61,0x9d,0x15,0xaf,0x17,0x59, +0x7b,0xa6,0x57,0x2c,0x95,0xd3,0x47,0x05,0x62,0x22,0x33,0x3f,0x85,0xbd,0x9a,0xea, +0x63,0x09,0xd9,0x3e,0x16,0xeb,0x2b,0x91,0x24,0xef,0x9c,0xc9,0x71,0x3b,0xed,0xac, +0xea,0x65,0x37,0xf6,0x72,0xe5,0x66,0x19,0xb4,0xe2,0x2e,0xb0,0x2c,0xa2,0x96,0xf2, +0x04,0x89,0x4a,0x81,0xfd,0xf9,0x83,0x5e,0xa8,0x73,0x27,0xd8,0xf1,0xb9,0x31,0xef, +0x2d,0x0e,0x18,0xff,0x60,0x6c,0x08,0xc2,0xf1,0xe3,0xa7,0xe5,0xb1,0xbc,0x16,0x5a, +0x60,0x46,0x77,0x6c,0x14,0x8d,0xde,0x99,0xef,0x06,0x4e,0x90,0x31,0x44,0x31,0x6f, +0x6d,0xd0,0xdf,0x2a,0xd9,0xb4,0xd8,0xb6,0x1f,0x46,0x58,0x85,0x6b,0x7f,0x97,0x5a, +0x63,0x39,0x50,0x02,0x6f,0x80,0x8c,0x07,0x3f,0x4f,0xa9,0x41,0xb9,0x77,0x9b,0xd5, +0x81,0xbb,0x81,0x41,0x47,0xb6,0xd8,0x74,0xe1,0x67,0x80,0x4e,0xd5,0xa4,0xfd,0xf9, +0xab,0x48,0xa2,0x45,0xa1,0xa7,0x83,0x2a,0xaa,0x0a,0xec,0x11,0xb9,0xc7,0x12,0xeb, +0x8d,0xa4,0xb2,0x2c,0x4f,0x86,0xe7,0xd4,0x49,0xb2,0xfc,0xf9,0x5a,0xe3,0x3d,0x25, +0x68,0x8b,0xdb,0x5c,0x25,0x8b,0x89,0x96,0x21,0x20,0x00,0x5e,0xac,0x06,0x73,0xa9, +0x65,0xa4,0x2b,0x6f,0xfb,0x8c,0x03,0xc5,0x25,0x09,0xa5,0x9c,0xb1,0x66,0x1b,0xf3, +0xff,0x43,0x65,0x75,0x82,0x7d,0x53,0x48,0x16,0xec,0x28,0xe8,0x34,0x49,0x95,0x58, +0x7c,0x8d,0xdf,0xd8,0x72,0x7c,0xd9,0xfc,0x60,0x8f,0x92,0x41,0xd9,0x8a,0x42,0x36, +0x2d,0x4f,0xec,0x26,0x43,0xdb,0x93,0x61,0xca,0x4a,0x7f,0xe9,0xd0,0x94,0x8b,0xb5, +0x31,0x09,0x67,0x22,0x51,0xde,0x7b,0x70,0xf8,0xbf,0x03,0x1f,0x68,0x0a,0x92,0x73, +0x10,0xbf,0x1a,0x78,0xcd,0x3f,0x25,0xc6,0xb1,0xc8,0x94,0x49,0x56,0xdb,0x9d,0xd7, +0xeb,0x7b,0x12,0x60,0x52,0x11,0x65,0xca,0xc6,0x21,0x47,0x8f,0x77,0x1a,0x10,0x72, +0x94,0xbf,0xdf,0xe9,0x84,0x70,0x3e,0x51,0x24,0x23,0x42,0x0d,0x8f,0x7b,0x45,0xc0, +0xa7,0xda,0xf5,0x65,0x8a,0x42,0xe8,0xa0,0x26,0xde,0xd6,0xf2,0xc2,0xff,0x1e,0x05, +0x81,0x71,0x70,0xa6,0xc5,0x51,0xfc,0xf4,0x40,0x54,0xab,0x23,0x74,0x56,0x4d,0x32, +0x8f,0x9e,0xf2,0xec,0x45,0xea,0x9c,0xf0,0x27,0x17,0x4c,0x70,0x1d,0x50,0x47,0x23, +0x0e,0x9d,0xfd,0xf4,0xca,0xc9,0xd1,0x65,0xae,0xb9,0x1a,0xa5,0xf6,0x18,0x5d,0x33, +0x21,0x5f,0x93,0x37,0xb7,0x9a,0x14,0xf1,0x63,0x09,0xe4,0xb7,0x52,0x6c,0x7f,0xf7, +0x48,0x11,0x46,0xf9,0x5f,0x65,0xeb,0xc7,0xe5,0xfe,0x2e,0x3f,0x56,0xd5,0xf5,0xe6, +0xa8,0x14,0x7f,0x8d,0xf2,0x49,0xd5,0x48,0x93,0x28,0xd6,0xa9,0x90,0x3a,0xf8,0xf7, +0xca,0x6c,0xff,0x8f,0xf8,0x6a,0x9e,0xe9,0xec,0x7f,0x47,0x29,0x96,0x58,0xb0,0xdb, +0x08,0x59,0xab,0x5e,0x9d,0xb6,0xdf,0xcc,0x7b,0x56,0x67,0xb5,0x10,0x18,0xca,0xaa, +0x69,0xc3,0xd7,0x48,0x57,0x59,0xf1,0xdd,0x6c,0x85,0x21,0x68,0x1c,0xb3,0x76,0x08, +0xd0,0x12,0xd8,0xe1,0xc0,0x90,0x66,0x0b,0x5b,0x38,0x61,0x78,0x15,0x97,0x3f,0x4b, +0xa3,0xa3,0xff,0x37,0x16,0x33,0xcb,0x6b,0x06,0x57,0xbf,0x8f,0x49,0x12,0x2f,0xdb, +0xd0,0x12,0x5c,0x65,0x48,0x51,0x67,0x0a,0xd3,0xd4,0x97,0xe1,0xc8,0x88,0x84,0x7c, +0xa7,0xe5,0xde,0x01,0xb5,0x7f,0xec,0xac,0x60,0x4d,0x4f,0x55,0x76,0xa2,0x3a,0x13, +0xfa,0x0c,0xa5,0x68,0xdf,0xb9,0xf8,0x47,0x9d,0xcc,0x45,0xda,0x55,0x5a,0x9e,0xe1, +0x6d,0x08,0x15,0x65,0x1b,0x04,0xcc,0xd3,0x27,0xb3,0x67,0xe1,0x3d,0x13,0xfd,0xed, +0x78,0x22,0xa1,0x2e,0x74,0xfc,0x21,0xaa,0xa6,0x9a,0xa1,0xcf,0x2d,0xa1,0x68,0xe5, +0x65,0xa4,0x5b,0xd5,0x62,0xae,0xc8,0xd0,0x42,0xa4,0x44,0x41,0xe7,0xe8,0xe8,0xba, +0x5b,0xc8,0x7f,0x5d,0x2b,0x95,0x22,0xe3,0x67,0x85,0x2a,0x80,0xd4,0xe8,0x19,0x05, +0xd6,0xca,0x63,0x59,0xe2,0x52,0xb1,0x06,0x64,0x84,0xc9,0x8f,0x2e,0xa4,0x31,0xb3, +0x05,0xaf,0x9c,0x46,0x65,0x0a,0xf8,0xf7,0xb4,0xf2,0x80,0x30,0x2a,0x91,0xb4,0xf9, +0x60,0x55,0x62,0x7b,0x88,0xa5,0xa7,0xae,0x21,0x03,0x38,0x47,0xb5,0x39,0x2c,0x36, +0x8d,0x1e,0x61,0x41,0xa8,0x55,0x98,0x17,0xfe,0x84,0xc2,0x19,0xa0,0xe6,0x75,0x3f, +0x67,0x4b,0xfb,0x2e,0x9a,0x61,0x0b,0xcb,0x8e,0x41,0x73,0x9a,0x62,0x37,0x11,0xe8, +0xe9,0x24,0x6b,0xf7,0x6d,0xe9,0x40,0xdb,0x89,0xd0,0x85,0x02,0x26,0x70,0x5d,0x28, +0x4d,0x33,0xf5,0xbc,0x3d,0xcc,0x4c,0x0e,0xc3,0x4a,0x0f,0x10,0xc8,0xb3,0x30,0x0f, +0xac,0xe8,0xe1,0xaf,0xbc,0xed,0x25,0x10,0x6f,0x0d,0x9b,0x94,0xab,0xfc,0x1b,0xc9, +0x06,0x86,0xdd,0x77,0x7d,0xa7,0xf2,0x2b,0x61,0x8c,0xcc,0xe4,0x65,0x73,0x31,0x0a, +0x2c,0xea,0xd5,0x76,0x99,0x46,0xff,0xff,0xc0,0x62,0x4c,0x56,0x3e,0x70,0xbe,0x3d, +0xcd,0x1a,0xda,0x26,0xdf,0x93,0x2c,0x4b,0x07,0xeb,0x4c,0xd5,0x08,0x51,0x14,0x6d, +0xa6,0x9c,0x54,0x6a,0xe9,0x4a,0x04,0x59,0xd2,0x5e,0xea,0x16,0x9e,0xf2,0xd8,0x6f, +0xa4,0x9c,0xfc,0xc0,0x13,0xa2,0xa0,0x27,0x89,0x19,0xe1,0x54,0xde,0x7f,0xd6,0x17, +0x8a,0xc5,0xee,0x7a,0xb4,0xec,0x25,0x83,0x86,0x17,0xbb,0x8b,0x75,0x56,0xb0,0x44, +0x32,0x97,0xdb,0x59,0xc7,0x62,0x8b,0x11,0x16,0x7b,0x34,0x53,0x1a,0xb6,0xaf,0x54, +0x2f,0x91,0xdb,0xef,0xc7,0x24,0xeb,0x80,0xdc,0x5e,0x2a,0x23,0x76,0xf7,0xe4,0xd6, +0xa0,0xfd,0xed,0xcb,0x0a,0xe7,0x62,0x10,0x92,0x79,0x23,0x9e,0x7b,0xb4,0xed,0x95, +0xaf,0xdb,0x5a,0xff,0x37,0xa7,0x07,0xda,0xe1,0x3e,0xc3,0xba,0x78,0x71,0x91,0x5a, +0x5b,0x98,0xd9,0x0a,0x5b,0x4c,0xa7,0x40,0xc9,0x47,0x6d,0xb1,0x03,0x6a,0x95,0x3f, +0xde,0x24,0xf7,0x14,0xd8,0x16,0x15,0x6a,0xce,0x45,0x7e,0x4f,0x22,0x0d,0x98,0xbb, +0xa4,0x25,0xfc,0x90,0xc7,0x20,0x7d,0xb6,0xcd,0x5a,0x80,0x6a,0x8f,0xfa,0x39,0xae, +0x46,0x7a,0xa7,0x97,0x58,0x14,0x90,0xd5,0x30,0x99,0x69,0xa1,0x9b,0x4f,0xe1,0x48, +0xae,0x37,0x53,0xe3,0xc6,0x4d,0x51,0x88,0x4f,0x3f,0xf2,0x2e,0x32,0xfa,0x24,0xcf, +0x0d,0x90,0x2e,0x33,0xe1,0x36,0xe0,0x0e,0xce,0xd6,0xfa,0xfa,0xf0,0xbc,0x5f,0x34, +0x6f,0xfc,0xd4,0xf3,0x42,0x8f,0x2d,0x87,0xd6,0x9c,0x5c,0x22,0x5f,0x79,0x2c,0x27, +0x2f,0x64,0x76,0xee,0xd3,0xfd,0xec,0xa0,0x56,0x63,0x53,0xdb,0xff,0xff,0xa8,0x31, +0xe9,0x49,0x1a,0x62,0x16,0xe9,0x49,0xa1,0xe5,0x4b,0xee,0x8c,0x33,0x36,0x3d,0x12, +0xee,0x1a,0xb0,0xe7,0x33,0x4d,0x20,0x00,0x49,0xbe,0xa0,0xcf,0x32,0x17,0x59,0x10, +0x86,0x99,0x34,0xf6,0xec,0x47,0x85,0xa3,0x22,0xd2,0x06,0xa1,0xd6,0x2e,0x48,0x77, +0x7e,0xae,0xef,0xb1,0x78,0xd2,0x23,0x94,0x36,0x58,0x0e,0xb1,0xd7,0xfa,0x80,0xd0, +0x4d,0x0c,0x3f,0xa6,0x90,0x6c,0x08,0x65,0x3d,0x64,0x88,0xf0,0x25,0xe3,0x97,0x50, +0x27,0xf8,0xb0,0xd6,0x1a,0x41,0x9c,0xf5,0x00,0xb6,0x87,0x8b,0x55,0xde,0xc5,0xbc, +0x8a,0x47,0x0d,0x27,0xd3,0x06,0xc1,0x89,0xe4,0x0b,0x0e,0xfc,0xed,0x62,0x53,0x50, +0xa0,0x6d,0xf1,0x05,0x91,0x28,0xa6,0x02,0x97,0x2b,0x85,0x89,0x31,0x9c,0x9a,0x17, +0xab,0x8d,0xe4,0xad,0x1b,0x10,0x12,0x4e,0xc7,0xbe,0x3e,0xb7,0xd8,0xe9,0x53,0x0c, +0xac,0xf8,0x26,0x8e,0x1d,0x23,0x40,0x3a,0xdb,0x41,0x5f,0x01,0x5f,0x2b,0xfc,0xe1, +0x84,0x45,0xd3,0x3c,0xdc,0x97,0xa8,0x59,0x48,0x55,0x2c,0xcd,0xe8,0xe1,0xf3,0x6b, +0x62,0x42,0x08,0x3d,0xf1,0x48,0x9e,0xbb,0x41,0x33,0x3d,0xc6,0x30,0x7b,0x82,0xd9, +0x26,0x81,0xa2,0x0c,0x14,0x21,0xb5,0xa8,0x46,0xb7,0xb5,0x81,0xda,0xd7,0x95,0x59, +0x2f,0xa0,0xc0,0x4c,0xb8,0x20,0x14,0xd8,0xea,0x4f,0xe4,0x65,0x7a,0xbf,0x25,0xab, +0x8b,0x6e,0xc9,0x49,0x39,0x23,0x57,0x4d,0xcc,0x2c,0x2c,0xe9,0xa1,0x45,0xce,0xeb, +0x83,0xef,0xc1,0x7d,0x38,0x22,0x65,0x74,0x44,0xc9,0x6c,0x40,0xbb,0xfd,0x76,0x84, +0x6c,0x9d,0x3f,0x35,0xbc,0x72,0x4c,0xa4,0x48,0x19,0x51,0x99,0x76,0x32,0x8b,0x76, +0x12,0x77,0xb4,0xd3,0xfb,0x32,0xdc,0x34,0x11,0x5c,0x30,0x2f,0x9a,0xc2,0x5c,0x00, +0x07,0x09,0x1f,0xaa,0x47,0x57,0xd5,0xd5,0x62,0xef,0x33,0x21,0xb2,0x0c,0xb5,0x6f, +0xb1,0x5e,0x36,0x06,0xcd,0x39,0x63,0x8c,0x4d,0x5e,0xa7,0x27,0xf1,0xdc,0xf3,0xc8, +0x24,0xaf,0x04,0x3c,0xad,0x76,0x2c,0x82,0x80,0x34,0xee,0x54,0x90,0xdb,0xe0,0x4e, +0x22,0x97,0x22,0x24,0x23,0x3a,0xf0,0xb0,0x67,0x7c,0x86,0x6f,0x1b,0xc5,0xd9,0x45, +0xac,0xb9,0x1b,0x0b,0x30,0x3e,0xd1,0x26,0x62,0x76,0x71,0x96,0x8e,0x79,0x8d,0x55, +0x29,0xe8,0x65,0xd0,0x97,0x31,0xd6,0xb7,0xe9,0x4c,0xa3,0xf3,0x12,0xf4,0xf9,0x4f, +0x1b,0x3e,0xc2,0x8e,0x70,0x7a,0x68,0x08,0x9c,0xa9,0xc5,0x5c,0xe6,0x89,0x2e,0x6b, +0x8a,0x0b,0x33,0xa5,0xc2,0x3d,0xda,0xe6,0x67,0x47,0xdc,0x58,0xe4,0x84,0xbf,0x16, +0x5d,0x93,0x1d,0xf3,0xb9,0x6a,0x4e,0xac,0x3d,0x36,0x57,0x29,0x89,0x38,0xb7,0xe9, +0x29,0xbd,0x89,0xf2,0xc1,0x84,0x62,0x4a,0xcf,0x8f,0x32,0x53,0x09,0x28,0x1f,0xe0, +0x2c,0x5e,0xe6,0x95,0x3c,0x5e,0x36,0x9e,0x4b,0x45,0xa4,0x1f,0xf6,0xd1,0xd2,0x5c, +0x25,0xb2,0xae,0x6f,0xac,0x30,0x5e,0x78,0xec,0xcd,0xe0,0xe5,0xf4,0xfb,0x65,0x32, +0xac,0xa5,0x8e,0x6d,0x1b,0xee,0x07,0xe5,0xe4,0x5d,0x83,0x0f,0xb2,0xce,0xe3,0x47, +0xa8,0x87,0x91,0xe1,0xbb,0x90,0x06,0x69,0x4e,0x59,0x00,0xbd,0xf7,0xd4,0x5e,0xda, +0xa1,0xee,0xf9,0x9c,0xf1,0x21,0x08,0xc2,0x0c,0x3b,0x4d,0x61,0xad,0x96,0x90,0x22, +0xd7,0xce,0x4f,0xd6,0x25,0xe3,0x68,0xb6,0x55,0x4c,0xb8,0xc5,0x67,0x6a,0x43,0x73, +0x85,0x20,0xde,0xf8,0x6d,0xcc,0xb1,0xa7,0xfd,0x1f,0xcf,0x8e,0x35,0x64,0x77,0xcb, +0x8d,0x98,0x33,0x69,0x94,0xe0,0x60,0x33,0x62,0xc5,0x5c,0x0a,0xd3,0xa1,0x5e,0x5a, +0x89,0x02,0xea,0x06,0xb5,0xa2,0x74,0xa2,0x02,0x69,0x8e,0x60,0xb7,0x67,0x6c,0x76, +0x01,0xe7,0xec,0xb4,0x95,0xed,0xfc,0x8f,0x4f,0x84,0xb0,0xf6,0xab,0xc6,0xe1,0x03, +0x8a,0x7d,0x69,0x44,0x37,0x2e,0x72,0x13,0xce,0xcf,0x83,0xe3,0xc9,0x8b,0x27,0xf3, +0x26,0xd7,0xc9,0x35,0xd6,0xa3,0xa6,0x73,0xe3,0xc6,0xa3,0xed,0xbf,0x57,0x22,0x6c, +0x4c,0xc7,0x62,0x7a,0xb9,0x77,0x44,0x90,0xef,0x89,0xa9,0xd5,0xb5,0xd8,0x22,0x1f, +0x6e,0x95,0xcc,0x7c,0xf6,0xcd,0xee,0xbc,0x25,0x75,0xc4,0x93,0xbc,0x6f,0x9b,0xcc, +0x4e,0x96,0x1e,0xfc,0x18,0xc9,0x1e,0x50,0x55,0xb7,0x4e,0x68,0x25,0x9c,0xd3,0xf3, +0xd1,0xc6,0x14,0x2e,0x19,0x54,0x84,0x60,0x34,0xf2,0xbb,0xcc,0xeb,0x60,0x5c,0x52, +0x81,0x0a,0x9a,0x88,0x3e,0xad,0xf6,0x6e,0x67,0x14,0x8c,0x68,0xbf,0x6f,0x6e,0x7e, +0x3c,0x9c,0x15,0x5a,0x6e,0xf0,0xfa,0x1b,0x1a,0xce,0xf2,0x56,0x3c,0x5f,0x67,0x0b, +0x82,0x75,0x24,0xc7,0x7f,0x11,0x2a,0xf6,0x6b,0xc7,0x81,0xeb,0xc1,0x83,0xab,0xdf, +0x4f,0x30,0xd5,0x82,0xbc,0xcf,0x3f,0xfa,0x4d,0x33,0xed,0x66,0x34,0xab,0x5c,0x42, +0x62,0x8b,0xa0,0x38,0xe9,0x0d,0x60,0xe5,0x8d,0xd3,0x83,0x0b,0x80,0x63,0x94,0x6d, +0x16,0xf4,0xce,0x96,0x34,0xa0,0x02,0x8f,0xaf,0xf2,0x2d,0xa8,0xf9,0x05,0xad,0xe5, +0x53,0x82,0x0a,0xa3,0x49,0xdc,0x53,0x07,0x0f,0x91,0x02,0x1e,0xf2,0x02,0x95,0x0c, +0xb7,0xde,0xf7,0x1b,0xc9,0xf1,0x43,0x12,0x0c,0x90,0x1d,0xed,0x40,0x6f,0xbb,0xc3, +0x02,0x39,0x73,0x44,0xdc,0xaa,0x24,0xeb,0xc5,0xcf,0xf3,0x1b,0x52,0x5b,0x52,0xca, +0x46,0xd5,0x85,0xb4,0x5c,0x64,0xfb,0x10,0xe0,0x95,0xa3,0x93,0x8a,0x9b,0xe0,0x71, +0xa2,0x56,0xc5,0xdf,0x34,0x11,0x33,0x85,0x64,0xd5,0x51,0x85,0x0d,0xb4,0x75,0xca, +0x4e,0xe7,0xed,0x24,0xcb,0xb1,0xd5,0xf6,0x65,0x9f,0x9f,0xe7,0xd3,0xec,0xc5,0x4a, +0x68,0x99,0x66,0x1d,0xc7,0x33,0x85,0x0b,0x5f,0x98,0x99,0xc1,0xa5,0x2d,0xa8,0xe8, +0x1e,0x99,0x08,0xd9,0xe7,0x16,0xfa,0x70,0xd6,0x76,0x39,0x92,0xf2,0x04,0xb6,0x87, +0x8e,0xeb,0x62,0xb2,0xba,0xf8,0x9c,0xec,0xe2,0x06,0xe6,0x90,0xc6,0xb8,0xd7,0x64, +0x2d,0x3a,0xfa,0xed,0x7f,0xbb,0x6d,0xa5,0xc3,0x99,0xd9,0xb9,0x14,0x9f,0x8a,0x58, +0x2a,0x96,0x90,0x00,0x9f,0x17,0xbc,0x1a,0x62,0xd3,0xbd,0x88,0x70,0xba,0xee,0x9a, +0x23,0x66,0xd0,0x93,0x5e,0xfd,0x1e,0xbe,0x4e,0x56,0x2a,0x04,0x1f,0x67,0xe5,0xb8, +0xfe,0x18,0xb7,0xcf,0x55,0x9d,0x17,0xaf,0xf9,0xd1,0xb7,0xc9,0xfc,0x73,0x6b,0xff, +0x46,0x0f,0xb7,0xaf,0x56,0x0f,0xa0,0x19,0x43,0x54,0x86,0x99,0x72,0x9d,0x60,0x1b, +0x03,0x0f,0x84,0x06,0x14,0xdb,0xa0,0xa0,0xa1,0x23,0xd4,0xb2,0x33,0x1e,0xe4,0x82, +0x09,0x09,0xa8,0x86,0x91,0x29,0x38,0x31,0x59,0x91,0xa2,0x84,0xbb,0xce,0x58,0x1e, +0x65,0xdd,0x81,0xc2,0x6d,0xab,0x0a,0xc1,0x80,0x72,0x87,0x0d,0x3b,0x26,0x9d,0x73, +0xc0,0x0b,0x0d,0xe8,0x99,0x62,0x39,0x03,0xe5,0x01,0x3d,0x31,0xdb,0x3f,0x14,0x46, +0xca,0x07,0x78,0xba,0x71,0x90,0x43,0x9c,0x06,0xc9,0x07,0x56,0xad,0xb1,0xf7,0xd4, +0x05,0x94,0xb7,0xbc,0xc5,0x68,0x98,0x04,0xc8,0x48,0x18,0x24,0x06,0x7e,0xe5,0xb0, +0x21,0x46,0x01,0x9c,0xb5,0x19,0x2e,0x91,0x12,0xf7,0xa9,0xe1,0xe5,0xe8,0x71,0xbf, +0x2f,0x0a,0xb2,0xba,0x11,0x23,0x22,0x11,0xd5,0x2b,0x5a,0x13,0x28,0xca,0x7a,0x72, +0x29,0x88,0xdb,0x25,0x1e,0x6a,0x54,0x0d,0xa9,0xee,0xeb,0x43,0x24,0x97,0xa6,0xe8, +0x01,0x9f,0x66,0x83,0x1a,0x59,0x1e,0x1c,0xa0,0x39,0xcd,0xc7,0xe8,0xfa,0x3b,0x59, +0x08,0x05,0x9e,0xf2,0x71,0x1a,0x6b,0x69,0xc4,0xb1,0x2a,0x91,0x2f,0x57,0x19,0xc1, +0x3a,0x46,0x4b,0x99,0x6f,0x39,0x01,0x3d,0xe8,0x2b,0xe0,0x39,0xd3,0x37,0xbf,0x5b, +0x2c,0x68,0xcd,0x2e,0x14,0x4e,0xed,0xf2,0xf5,0xd1,0x4e,0x3e,0x74,0x0f,0x32,0x5c, +0xf6,0x4f,0xf2,0x40,0xc6,0x10,0x61,0xe7,0xf4,0x56,0x27,0x81,0x53,0x2f,0x65,0xec, +0x0e,0xa5,0x07,0x9d,0xc4,0x2d,0xbf,0xf6,0xcb,0x2e,0x99,0x2f,0x9b,0x69,0x8b,0x61, +0x3e,0x7b,0x64,0x03,0x6a,0xf3,0x51,0x1f,0x38,0x32,0x84,0xf4,0xe8,0x1d,0xbd,0xf0, +0xa0,0x0f,0x14,0x7a,0x9c,0x3d,0x90,0x5d,0x68,0x11,0x6d,0x83,0xd1,0x0f,0x02,0x78, +0xfd,0xdc,0xac,0x7e,0xc4,0xb8,0x66,0xd0,0x25,0x13,0x3b,0x89,0xa1,0x72,0x5f,0x83, +0x32,0x18,0x69,0x1e,0x41,0xbb,0x4c,0x89,0x45,0xad,0xac,0x81,0x24,0xa3,0xf2,0xd6, +0x54,0xe5,0xad,0x1f,0x95,0x35,0x50,0xc5,0x1c,0x5a,0xba,0x14,0x65,0x30,0x7c,0x50, +0x81,0x51,0xc5,0x46,0xd8,0x03,0xab,0x10,0x6a,0x48,0x8d,0x74,0xd7,0x72,0x49,0x2e, +0x10,0xc5,0x48,0x25,0x43,0x15,0xdc,0xb7,0x4d,0x4b,0x71,0x0b,0x75,0x9c,0xc0,0xb3, +0xa4,0x9e,0xfd,0xd5,0x11,0x32,0xea,0xab,0xf2,0x52,0x85,0xec,0xf4,0x1e,0xf5,0x3e, +0x94,0x17,0xad,0x66,0x0d,0x3a,0x26,0x19,0x5b,0x18,0x32,0x77,0xd1,0xc7,0x14,0x50, +0x9b,0x55,0x25,0x66,0x99,0xa7,0x11,0x40,0x50,0x15,0x33,0x09,0xfa,0xac,0x77,0xfe, +0xa4,0xaf,0xb6,0x62,0x95,0x34,0xde,0x71,0x0c,0xae,0x2e,0xb1,0x7f,0xf1,0x78,0x79, +0xfb,0xcb,0x33,0xef,0x43,0x5f,0xe8,0x5b,0xc9,0x6a,0x25,0xcf,0xdb,0x33,0xbf,0xee, +0xa7,0xa4,0x70,0xb9,0xbf,0x19,0x1b,0xbc,0x96,0x7b,0x9a,0xe6,0x04,0xc7,0x71,0xf5, +0xda,0xcd,0x9e,0x48,0xd3,0xad,0x0f,0xb0,0xcf,0x57,0x8c,0xed,0xd9,0x30,0xc7,0xbe, +0x43,0x87,0xae,0x6f,0x94,0x32,0x07,0xa0,0xcc,0xd0,0xc8,0x8c,0x1b,0x07,0xc7,0x2c, +0x3c,0x05,0xb5,0xcc,0xf6,0xb3,0x17,0x01,0x52,0x13,0x66,0x05,0xe4,0x33,0xb7,0x31, +0xe2,0x52,0xef,0xc9,0x39,0x98,0x3f,0x4a,0x48,0x50,0xa6,0x9b,0xd9,0x72,0x8c,0x87, +0xfb,0x0b,0x60,0x82,0x79,0xce,0xef,0x23,0x60,0xdb,0xea,0x9d,0x3c,0x38,0x88,0x60, +0x67,0x35,0xac,0x32,0x6a,0xa1,0xc7,0xb6,0x3f,0x6b,0xce,0xc5,0xd9,0xa0,0x69,0x32, +0xe5,0x2d,0x46,0x47,0x98,0x59,0x20,0x45,0x3f,0x4f,0xcf,0x21,0x35,0x61,0x57,0x14, +0x78,0x8c,0x39,0xe9,0x68,0x02,0xf9,0xa2,0x61,0xc9,0xe3,0x57,0xbd,0xb2,0x18,0xc6, +0x5a,0x68,0x20,0x9f,0x35,0x1b,0x9c,0xf8,0x45,0x64,0x48,0x95,0x1f,0x91,0xb8,0x6d, +0x29,0x1e,0x57,0x11,0xdd,0xd4,0x7a,0x6b,0xbd,0x45,0xfc,0xf2,0x24,0x99,0xe6,0x41, +0x5b,0x53,0xb8,0xdd,0x33,0xd9,0x4e,0x73,0x31,0xc2,0xeb,0x15,0x2d,0x1d,0x69,0x40, +0xed,0xf4,0xe1,0xd2,0x62,0x01,0x10,0x0d,0x48,0x41,0x51,0x7a,0xe4,0x95,0x7f,0x0b, +0x3f,0xfa,0x9a,0xf1,0xe9,0xcb,0x72,0xc2,0x74,0x85,0xcc,0x28,0x3f,0x5d,0xbf,0xf5, +0xec,0xea,0xd4,0x18,0x7e,0x8c,0x45,0xbe,0x37,0x63,0x2a,0x5c,0xee,0x8c,0x9b,0xe4, +0x65,0x03,0x58,0xff,0xbd,0x5b,0xcc,0x58,0xd8,0x48,0xe5,0x06,0x37,0x8e,0xd2,0x65, +0x00,0xfd,0x78,0xec,0x11,0xa6,0xfb,0xaa,0x69,0xc3,0x83,0xd4,0x71,0xe6,0x3c,0xf2, +0x06,0xf9,0x77,0xb0,0xe3,0xc2,0x70,0x2a,0x56,0xa4,0x4a,0xa9,0x94,0x65,0x4a,0x53, +0x09,0x36,0x57,0xcd,0x23,0x52,0x20,0x7b,0xe8,0x8c,0x9a,0x60,0x3a,0xe0,0x31,0xcf, +0xbf,0x17,0x00,0x8f,0x8a,0xc2,0x7c,0x6f,0xfd,0xfb,0xfb,0x6b,0x59,0x9e,0x87,0xd9, +0x5b,0x4a,0xd4,0x98,0x41,0xa7,0xc0,0x1b,0xeb,0x4d,0x9b,0xdf,0xc1,0xe0,0x1f,0x62, +0x6c,0x1b,0x0d,0x04,0xe0,0xff,0xa4,0x4a,0x54,0x92,0xcf,0x4e,0x20,0xbd,0x12,0xe2, +0x1d,0x10,0x51,0xd8,0xc0,0xed,0x3d,0x36,0x63,0x95,0xb0,0x99,0x5f,0xa4,0x6d,0xaa, +0x24,0x32,0x9d,0x79,0x18,0xbf,0xf5,0xb1,0x69,0x74,0xeb,0xe7,0xf4,0x5d,0x65,0x60, +0x21,0x1e,0x97,0x7c,0x06,0xf2,0xc6,0x37,0xe3,0xf5,0xed,0x88,0x89,0x26,0x1b,0x2a, +0x33,0xd9,0x18,0x36,0x3e,0xbb,0xe4,0x90,0x55,0x4c,0xf2,0x62,0x0d,0xe8,0x56,0x34, +0x37,0xda,0x9e,0xd7,0x7b,0x18,0x6f,0x70,0xe7,0x3a,0x8b,0x74,0x55,0xe7,0xc9,0x58, +0xa7,0x86,0x85,0x74,0x19,0xbb,0x8d,0xc7,0x07,0x79,0xd5,0xe2,0xf0,0x4d,0x6c,0x35, +0x22,0xc6,0xfe,0x37,0xbb,0x4c,0x45,0x23,0xbb,0x78,0xa7,0xf4,0x54,0x92,0x74,0x91, +0xc7,0xfc,0xfc,0x89,0x54,0x60,0x9a,0x34,0x97,0x9a,0x25,0x2a,0x01,0x3b,0x4c,0x9b, +0x2c,0x49,0x18,0x6d,0xb1,0xb4,0x86,0x44,0x90,0xb7,0x06,0x45,0x80,0x95,0x18,0x69, +0x51,0xf4,0xd9,0x89,0x5d,0x39,0x68,0xce,0xdf,0x99,0x8d,0x50,0xcf,0x2a,0x75,0x9a, +0x7f,0x04,0x3f,0x77,0xe0,0xf9,0xdc,0xfb,0xad,0x20,0xd8,0x7f,0xcd,0x5f,0x91,0x35, +0x62,0x11,0xe2,0xea,0x41,0xbc,0xe3,0x0a,0x6a,0x23,0xac,0xac,0xdd,0xfa,0x4e,0x7f, +0xd1,0x42,0x2e,0x3b,0xac,0xa6,0xa7,0x85,0x69,0x67,0x86,0x38,0x27,0xb3,0x9c,0x23, +0xbb,0xd1,0x77,0x4b,0xc5,0x21,0xe7,0xd4,0xbb,0x9c,0xa7,0xea,0x9d,0xde,0x6d,0x27, +0xe7,0x9b,0xae,0xb9,0xd4,0xb0,0x27,0x04,0xdc,0x49,0x48,0xdb,0xff,0xff,0x3e,0xad, +0x68,0x0d,0xfd,0xc6,0xb1,0x26,0x47,0x52,0x64,0x95,0x17,0xff,0xab,0x0e,0xf3,0xe0, +0x20,0xf0,0xe8,0x96,0xc5,0x4e,0x18,0x34,0x1d,0x10,0xe0,0x74,0x49,0x23,0xfe,0x72, +0xb6,0x61,0x22,0xef,0x96,0x98,0x40,0x1e,0xfa,0xd9,0x2e,0xbe,0x25,0xc4,0x77,0x17, +0xe2,0x26,0xb1,0x24,0xbb,0x2c,0xba,0x91,0x1d,0x60,0x01,0x28,0x24,0x97,0xc7,0x52, +0x26,0xab,0x7f,0x75,0xb3,0xf5,0x12,0x84,0xb5,0xd1,0x82,0x7a,0xb9,0x00,0x70,0xaf, +0xea,0x6d,0xde,0x36,0xe4,0xd8,0xdf,0x5c,0xce,0xc8,0x14,0xe4,0xa4,0x98,0xe5,0x23, +0x75,0x63,0x3e,0xad,0x84,0x6b,0x83,0x5a,0xac,0x04,0x8b,0x64,0x71,0xcb,0x5f,0x33, +0xa7,0xac,0x6a,0xb7,0x53,0x8a,0xbe,0x9e,0x22,0x91,0x75,0xeb,0xd0,0xf5,0xd1,0xfb, +0x84,0x05,0xe2,0x12,0xbf,0x25,0xfe,0x5b,0x62,0xce,0xea,0xa8,0x5a,0xca,0x32,0xeb, +0x63,0x67,0xb0,0xef,0x1c,0x8d,0x19,0x78,0x0d,0xe2,0x36,0xae,0x05,0x63,0x93,0xfa, +0xea,0x6f,0xd5,0xad,0x3b,0x6b,0x13,0x5a,0xea,0xcc,0x95,0x69,0x31,0x22,0x6d,0x25, +0x60,0xba,0x03,0x58,0xbb,0x3b,0x4b,0x21,0xa2,0x68,0x1b,0x1c,0xc7,0x2a,0x3a,0x4c, +0xe3,0x44,0xba,0x7d,0xbb,0x8d,0xab,0x52,0x78,0xf9,0x8c,0x8e,0x5e,0x91,0x32,0x5f, +0x2f,0x0b,0x6a,0x2e,0x79,0x99,0x0c,0xfc,0x17,0x1c,0x03,0x76,0x5d,0x36,0x71,0xba, +0x0e,0xaa,0xfb,0x7d,0x6a,0x81,0x06,0x57,0xa8,0xbb,0xe1,0x5d,0xff,0x2c,0x1b,0x51, +0xe8,0x2f,0x0b,0x3c,0x66,0x4a,0xf7,0x06,0x55,0x12,0xbf,0x3d,0x83,0xe4,0xe7,0x73, +0x16,0x51,0x9f,0xc8,0xd9,0x78,0xef,0x24,0x62,0x18,0x05,0x57,0xf4,0xfd,0xb3,0xa1, +0x1f,0xbe,0xf7,0xb3,0x90,0x5d,0x24,0x5e,0xe2,0x5c,0x0c,0x44,0x14,0xd0,0xb2,0x51, +0xd7,0x12,0x45,0xe4,0x50,0x3f,0x7d,0xc3,0x5f,0x5c,0xc7,0xbb,0x1b,0x16,0xd8,0xef, +0xcb,0x40,0x6a,0xef,0x67,0x39,0x60,0x73,0x40,0x55,0x0e,0x46,0x75,0xfe,0x1e,0x4e, +0x5e,0x56,0xa2,0x01,0x31,0x4d,0x34,0xfe,0x07,0x59,0xaa,0xc9,0x74,0x8e,0x0a,0xaf, +0x00,0x67,0xf4,0x2e,0x9f,0x38,0x54,0xf4,0x1c,0x35,0xcd,0x70,0x1e,0x35,0x85,0x87, +0x03,0x12,0x7a,0x41,0x85,0x72,0xaa,0xa6,0x20,0x36,0x8b,0x18,0x96,0xcd,0x17,0x5c, +0xdf,0x55,0xb2,0xa6,0xa4,0x48,0xe2,0xc1,0xe7,0x51,0x71,0x86,0x9f,0xd1,0x78,0x24, +0x0c,0xb5,0x07,0xff,0x3d,0x7a,0xb5,0x5a,0x6e,0xe2,0xc4,0x0b,0x93,0x1c,0x59,0xeb, +0x1f,0x9a,0x3a,0xe3,0x9a,0x94,0xde,0x61,0xd3,0x55,0xca,0x4f,0xfd,0xf4,0xd2,0xb9, +0x57,0xb5,0x9b,0xbf,0x4d,0x35,0x77,0x2b,0x3c,0x45,0x07,0x5d,0xc1,0xdb,0xf0,0x6a, +0xdb,0x5a,0x03,0xac,0x18,0xba,0x27,0xd2,0x68,0x56,0xcd,0xa3,0x12,0x1f,0x86,0xdf, +0xd1,0xb1,0x2a,0xb7,0xa4,0xb7,0x06,0x65,0xc9,0x5a,0x43,0x9f,0x1e,0xda,0x8e,0x5c, +0x5a,0xa2,0xee,0x56,0x3a,0x37,0x26,0x9a,0x9c,0xa2,0xe4,0x6f,0x43,0x82,0x46,0x4d, +0xe0,0x65,0xe7,0x27,0x4b,0xb7,0xf4,0x08,0x4b,0xde,0x46,0x2d,0xeb,0x12,0x71,0xd0, +0x26,0xa9,0x95,0x27,0xc7,0x90,0x06,0xf2,0x0e,0xe0,0xe5,0x6e,0xcb,0xa0,0x3a,0x00, +0xb7,0x2d,0x22,0xf6,0x15,0x01,0x30,0xa0,0x90,0x4f,0x8e,0x0b,0x3c,0x51,0xb8,0xe2, +0x24,0x20,0x24,0x27,0xb4,0x20,0x00,0x59,0xc4,0xcc,0xc6,0x30,0xb4,0x62,0x73,0x73, +0x04,0x94,0x2d,0xf4,0x99,0x0f,0xf1,0xfa,0x7e,0xce,0xa7,0x45,0xb4,0xff,0xfc,0xe0, +0x01,0x08,0x81,0xe4,0x11,0x2e,0x80,0x71,0x64,0xbe,0x9e,0xc4,0x59,0xa2,0x18,0xc0, +0x24,0x54,0xd8,0xb8,0xba,0xa9,0xb0,0xf2,0x09,0xcc,0x8f,0x5b,0xbd,0xa0,0x0a,0x52, +0x06,0x37,0x28,0xd7,0x82,0xe5,0xa7,0x72,0x63,0x87,0x5c,0x86,0x5f,0xea,0x19,0x67, +0x7b,0xe8,0x1e,0xc5,0xb0,0x2e,0xf5,0x9e,0xce,0x87,0xcb,0xd7,0x02,0x49,0x33,0xde, +0xfb,0xc5,0xb6,0x5b,0xe0,0x73,0xe1,0xfe,0xc1,0xee,0x7e,0x16,0xa1,0xa6,0x15,0xbb, +0x3a,0x27,0xf0,0x0d,0x1a,0xe1,0x1a,0x48,0xb8,0xcb,0xeb,0x34,0xb9,0x69,0x86,0x69, +0x33,0x7f,0x0a,0x6c,0x7f,0x8d,0x97,0xbe,0x16,0xf0,0xe8,0x20,0xb6,0x8d,0x87,0x2f, +0xa2,0x55,0x27,0x3f,0x3d,0x05,0x84,0x8a,0x51,0x37,0xa4,0xdc,0x58,0x67,0x55,0xb6, +0x64,0xd8,0x6b,0x7e,0x60,0xe9,0x8c,0x53,0x3e,0x74,0x2b,0xcf,0xfa,0x4a,0xa2,0x5d, +0xf5,0x07,0x3d,0xb4,0xf7,0xc6,0x02,0x08,0xcc,0xcf,0xac,0x42,0x5e,0x48,0x0c,0xde, +0x45,0xf6,0x95,0xda,0x78,0x59,0xba,0x1b,0xe9,0xc0,0x08,0x1c,0x7e,0x2d,0xa2,0x76, +0x88,0xcc,0x1e,0xa3,0x9e,0x23,0x76,0x89,0xfd,0x9a,0x3a,0x42,0x5c,0xea,0xab,0xdf, +0xfe,0x30,0xd1,0xa0,0x62,0xc3,0x1b,0xdb,0x93,0xc0,0xc3,0x8e,0xeb,0xef,0x7d,0x0c, +0x81,0x36,0xa4,0x75,0xb0,0x3d,0x8d,0xe0,0xc5,0xad,0x24,0x4e,0xa0,0x3d,0x0c,0x61, +0x86,0x83,0x28,0xa6,0x15,0x1e,0x8b,0x13,0xf8,0x2c,0xfb,0xd0,0x82,0x9d,0x73,0xf0, +0xc6,0x1b,0xf7,0x81,0xb2,0xfb,0x1d,0xc1,0x10,0xd1,0xd3,0xc6,0x0b,0xe9,0x95,0xe3, +0x25,0x35,0x0d,0xe5,0xd7,0xf7,0x90,0x37,0xbe,0xea,0x02,0x29,0xd1,0x5c,0x1a,0x77, +0xc7,0x12,0x44,0xb4,0x54,0x60,0x0e,0x82,0x42,0xcf,0x58,0x99,0xbc,0x85,0xa9,0xef, +0x21,0xd7,0x94,0xa9,0x16,0xc7,0x36,0xe8,0xc4,0x51,0x2e,0xd6,0x6f,0xcb,0x65,0x30, +0xc0,0x1d,0x9b,0xc0,0xd5,0x96,0xb4,0x85,0x15,0x7b,0x4e,0x74,0xc2,0xfc,0xcb,0x57, +0xe5,0xe9,0xb3,0x35,0xb3,0x32,0x82,0x80,0xa4,0x43,0x9d,0xe9,0xc5,0xfa,0x5e,0xae, +0xc5,0x12,0x66,0xef,0xc1,0xfa,0x81,0xdf,0x9f,0x67,0x12,0xcc,0x8f,0x9d,0x82,0x05, +0x09,0x34,0x77,0x80,0x06,0xe9,0x56,0xd8,0xd2,0xd7,0xc6,0xa3,0xbd,0x36,0x65,0x74, +0x45,0x59,0xbc,0xc3,0x83,0x9a,0xcc,0x2f,0xee,0x92,0x8f,0x54,0xd8,0x51,0xfa,0xab, +0xa5,0x34,0x6f,0xfb,0xe1,0xf9,0x07,0x55,0x6e,0xd6,0x81,0x1e,0x96,0xf4,0xca,0x51, +0xc5,0xaf,0xf4,0x12,0x38,0xe7,0x0e,0xf8,0x87,0xd3,0x1a,0x7c,0x63,0xf4,0x3f,0x2a, +0xb1,0x6c,0xe6,0xc7,0x5c,0xc2,0xd9,0x18,0xaf,0x22,0xa1,0x39,0xfd,0x29,0x5d,0x59, +0xae,0x31,0xc6,0x4b,0x89,0x98,0x6f,0xea,0xb2,0x63,0xf1,0x9d,0x5d,0xbc,0xaf,0x5f, +0xde,0xdd,0x78,0x2c,0x3b,0x32,0xc4,0x2b,0xe7,0x00,0x61,0x8d,0x94,0xf0,0x04,0x84, +0x5c,0xec,0xcb,0xe2,0xb5,0x4e,0xe7,0xa4,0x2e,0xd2,0x6b,0xa0,0x6f,0xfc,0x7a,0x11, +0x59,0x64,0x20,0x38,0x35,0x4d,0x10,0x39,0x47,0xa2,0x23,0x6e,0x57,0x91,0x61,0x1f, +0xed,0x0f,0xe3,0x09,0x91,0x03,0xfd,0xa5,0xca,0xb8,0xbe,0x5a,0x09,0xfe,0x31,0xa3, +0xee,0x13,0xb6,0x9a,0x6a,0xbe,0x06,0xce,0xf2,0xb4,0x08,0x7b,0x24,0x3f,0xde,0xb4, +0xeb,0xe5,0x3b,0x60,0xce,0xb5,0x70,0x89,0xe3,0x40,0x45,0x97,0xd6,0xe9,0xd6,0xa4, +0xa2,0x85,0xe1,0x26,0xf4,0x35,0x60,0xa0,0x0f,0x43,0xe0,0x8b,0x30,0xea,0x39,0x71, +0xb7,0x44,0xe6,0x7c,0x03,0xdb,0x53,0xe3,0x42,0xdf,0x83,0xd6,0x39,0x02,0x31,0x3a, +0x85,0xee,0x33,0x7f,0xeb,0xe8,0xd1,0x15,0x60,0x06,0x48,0x86,0x57,0xea,0x62,0xbb, +0xba,0x83,0x63,0xf6,0x23,0x60,0xd2,0xa9,0x8f,0x0a,0x3f,0x53,0xc5,0xfd,0xd5,0x18, +0x7e,0x4b,0x8f,0x7b,0x17,0xd6,0x43,0x6b,0xec,0xc9,0xca,0x03,0x73,0x2b,0x07,0xeb, +0x08,0x9a,0x3f,0x4a,0x96,0xf5,0xdd,0x3f,0xcb,0x68,0xc3,0x16,0xf2,0xbf,0x8b,0x55, +0x5a,0x86,0x27,0x66,0x47,0xb6,0xe3,0x5f,0x0b,0x6b,0x1c,0x11,0x24,0x1a,0x72,0x3b, +0x3a,0x03,0xc3,0xba,0x1c,0x55,0x74,0x88,0xce,0xe8,0x80,0xdf,0xb1,0x08,0x4f,0x5a, +0xc5,0x4c,0xaa,0x1c,0xd4,0xa6,0xda,0x5c,0xfe,0x0f,0xa4,0x7a,0xba,0xee,0xf7,0x3a, +0xb2,0x01,0x39,0x3f,0x71,0x67,0xcc,0x6e,0xa1,0x41,0x43,0x9d,0x20,0xdf,0x2b,0x47, +0xee,0x02,0xca,0xbf,0x9d,0x94,0x9b,0x41,0x6a,0x90,0xad,0x8e,0x57,0x2e,0xa8,0x12, +0x22,0x1a,0x44,0xf1,0xf3,0x3c,0xef,0xa8,0xc5,0xaf,0x5a,0x54,0x8f,0xdf,0x6c,0x27, +0xe1,0x0a,0x4c,0xe1,0xf0,0x3c,0x5d,0xd6,0x17,0x52,0x0a,0xc6,0x9a,0xb0,0x42,0xe7, +0xe0,0x5d,0xbd,0x75,0xe8,0x43,0x4c,0x83,0x45,0xa3,0x84,0x56,0xc8,0xdd,0x79,0x15, +0xcf,0x81,0x9b,0xf7,0x4a,0xee,0xa3,0xb8,0xd2,0xeb,0xc7,0x47,0x99,0xb2,0x3c,0xc2, +0x32,0xe9,0xd4,0xcd,0x20,0x90,0x41,0xd1,0xc3,0xab,0xa2,0x17,0xfe,0x35,0x16,0xd1, +0x80,0x13,0x9a,0x39,0xa2,0x6e,0xe3,0xc0,0x42,0xea,0xae,0x07,0xff,0x34,0xbd,0x43, +0x80,0xa6,0xd6,0x75,0x7a,0x87,0x6b,0xc9,0xcc,0x89,0xab,0xe3,0x13,0xf5,0x6d,0xbc, +0x02,0xe8,0xae,0x2c,0xf1,0xac,0xe6,0x41,0x7d,0xc8,0xa3,0xf3,0x12,0xf4,0xb9,0xa5, +0xd7,0xc5,0x52,0x76,0xbb,0x35,0xae,0x99,0x3b,0x17,0x56,0xd9,0xa0,0x75,0x71,0xe2, +0x1b,0x86,0x2d,0x3c,0xe5,0x1a,0x47,0xbc,0xbc,0x35,0x31,0x87,0x1d,0x3b,0xd6,0x77, +0x51,0x29,0x7c,0x09,0x87,0xa6,0xbf,0x85,0xcc,0xa7,0x8f,0x25,0x25,0x47,0x6f,0x2e, +0x69,0x5b,0xd5,0x86,0x8d,0x79,0xdb,0xe7,0xe7,0x45,0x81,0x91,0x74,0x86,0x82,0x4d, +0x24,0x96,0xa5,0x31,0xa9,0xe7,0xc6,0x1b,0xee,0xd1,0xa4,0x1f,0xf6,0x3d,0x36,0xa7, +0x68,0xfd,0x26,0xd5,0x1f,0x99,0xce,0x10,0xbb,0x31,0x61,0xc0,0x84,0xa6,0xc3,0x4b, +0xaf,0x64,0x22,0x49,0xe1,0xf2,0x05,0x5e,0x01,0x3a,0xa9,0xea,0x5b,0xa1,0x2f,0x79, +0xf9,0x10,0xdc,0x6d,0x73,0x8e,0xe7,0x62,0xf9,0x12,0xdf,0x83,0xdf,0xf2,0x40,0xb1, +0xb6,0x8f,0x43,0xc6,0x50,0x2d,0x38,0x2f,0x77,0x06,0x4f,0x58,0x62,0x3f,0x50,0x35, +0xa6,0xc3,0x50,0x32,0x88,0x1c,0xa8,0x40,0x76,0x6d,0x47,0xcb,0x6e,0x3a,0x1b,0x81, +0x50,0x6b,0xf8,0x5e,0x33,0xb2,0xeb,0x37,0x41,0x93,0x21,0xca,0x9c,0x59,0x28,0x13, +0xa1,0x58,0x04,0x59,0x68,0xff,0xc1,0x17,0xf6,0x5b,0x0f,0xb3,0xae,0xc8,0x00,0xe2, +0x18,0xc6,0x61,0xc2,0x65,0x91,0xc4,0x00,0xb9,0xdf,0xae,0x84,0x52,0xe2,0xf6,0x8d, +0x34,0x07,0x9a,0x53,0x1b,0xcb,0xc0,0x89,0x63,0x1a,0xeb,0x14,0xe8,0xa8,0xed,0x0c, +0x79,0xc4,0x81,0x18,0x35,0xab,0xf9,0x05,0x35,0xd6,0x47,0x1a,0xd2,0xa4,0xd1,0xac, +0x05,0x84,0xc9,0x56,0x1a,0xaf,0xc6,0x42,0x66,0x38,0x1c,0x98,0xc5,0xaa,0x94,0xf7, +0x2d,0xca,0xf8,0x09,0x28,0xea,0x8a,0xca,0x2b,0x65,0x88,0xc5,0xe5,0x84,0xf5,0x7a, +0x0b,0xc1,0xf0,0x36,0x21,0x06,0x91,0xf7,0xec,0xc2,0xe0,0x85,0x65,0xab,0xfe,0x02, +0xfb,0x6f,0x3d,0xfb,0x3d,0x55,0xbe,0xcb,0xeb,0xcc,0xd5,0x63,0xdf,0x83,0xe3,0xf3, +0x63,0xc6,0x0b,0x6d,0xff,0x0c,0x20,0xd3,0xc8,0x86,0x25,0xb5,0x7c,0xe2,0x67,0xa8, +0x3d,0x2e,0x63,0xca,0x65,0xb1,0xc9,0xcf,0xb9,0x61,0x90,0x6e,0xe9,0x80,0x0a,0xfa, +0x53,0x82,0x6b,0x1e,0xa6,0xe3,0x44,0x07,0x39,0x62,0x6a,0x8e,0xc0,0x1c,0x33,0x57, +0xde,0xc3,0xdd,0x2b,0x11,0x28,0x2b,0x56,0x25,0x8a,0xcc,0xe0,0x3f,0xb8,0x0b,0xfb, +0xd7,0x02,0x79,0xdb,0xe6,0x81,0xdf,0x19,0xeb,0x62,0x85,0x79,0x3e,0x6c,0x60,0xcc, +0xa6,0x77,0x3a,0x72,0x95,0x4f,0x49,0x5d,0x57,0x95,0xd2,0x8f,0x81,0x56,0xd3,0x7a, +0x65,0xd3,0x0c,0xe4,0x57,0x16,0x43,0x75,0xbb,0x4c,0xad,0xa9,0x4d,0x55,0x07,0x07, +0xca,0x99,0xff,0xbe,0x88,0x1d,0x8d,0x59,0xf4,0x9f,0xa4,0x67,0xb8,0x26,0x69,0x73, +0xa3,0x70,0x6d,0xe2,0x76,0xbf,0xde,0x73,0xbd,0xc8,0x2f,0x82,0xbd,0x32,0x04,0x86, +0x2d,0x1f,0xb2,0x2b,0x76,0xef,0x17,0xc6,0xdb,0x2b,0x8f,0x1d,0x49,0xf6,0x77,0xb0, +0xd8,0x19,0x8f,0x2b,0x34,0x6e,0x43,0xcf,0x98,0x58,0x3c,0x76,0x72,0x8e,0xe1,0x21, +0x24,0x92,0x82,0x3e,0x66,0x2d,0xa1,0x70,0x47,0x09,0x2c,0xd2,0x4d,0xe9,0xa9,0x56, +0xa9,0x1d,0x8e,0x53,0xec,0x7b,0xae,0xd7,0x68,0x7a,0xea,0x1b,0x49,0xcc,0x1c,0x0e, +0x26,0xd5,0x9e,0x7e,0x72,0xc9,0xd1,0xcc,0xdb,0xc8,0x88,0x9a,0xf1,0x7e,0x14,0x72, +0xc3,0xd6,0xb8,0xfc,0xc6,0x64,0xed,0x1a,0x80,0x29,0x28,0x4c,0x5c,0x0b,0x27,0x8b, +0xac,0x9a,0x67,0xfa,0x6d,0xb7,0x8f,0x44,0x90,0x87,0xb1,0xef,0x37,0x57,0x4f,0x2c, +0x8a,0x80,0x7b,0x65,0x3e,0xb6,0x66,0xe7,0x48,0x7a,0xe5,0x56,0xc5,0xb9,0x62,0x48, +0x2b,0x06,0x4e,0xc7,0x1a,0x37,0x26,0x79,0x0c,0x71,0xf7,0x06,0x7e,0xbe,0x24,0xdf, +0x83,0x92,0xd4,0x6e,0xd3,0x12,0x40,0xcf,0x07,0xd0,0x3c,0x8c,0xdc,0x98,0x1f,0xb4, +0x6f,0xfc,0xba,0xf2,0x55,0xfa,0xe0,0x78,0xc0,0x9f,0xaf,0xf0,0x7c,0xfd,0x7f,0xce, +0xeb,0x99,0x4b,0xfb,0xdc,0x08,0x80,0x88,0x8b,0xbc,0x40,0x1d,0xdb,0xff,0x59,0x8a, +0xe5,0xaf,0xe6,0x59,0x50,0xdf,0x22,0x11,0x2e,0xbf,0x3b,0x4a,0x85,0x9c,0x58,0x21, +0xa0,0xfe,0xc4,0x04,0xe6,0xdc,0x66,0xa6,0x9d,0xa7,0x8e,0x41,0xba,0x88,0x96,0x09, +0x65,0xad,0x2d,0x76,0x97,0x84,0x2f,0xc3,0xaa,0x81,0x2c,0x7a,0x39,0x93,0x37,0x2c, +0xaf,0xdc,0x25,0x87,0x81,0x29,0x23,0xc2,0x0b,0xe8,0xa4,0x04,0xe0,0xcc,0x5a,0x44, +0x21,0x4c,0x7f,0xa6,0xcf,0xb9,0xef,0xa7,0x80,0x04,0x10,0x19,0x34,0xc9,0xf7,0xb6, +0x30,0xf5,0x91,0xc8,0xb6,0xb4,0xdc,0x35,0x1a,0x05,0xce,0xd5,0xb8,0x46,0xe9,0x48, +0xb1,0x24,0x6e,0xe5,0xc6,0xd6,0x59,0x74,0xa9,0x3e,0x05,0xe1,0xbc,0x30,0xb1,0x23, +0x68,0x4e,0x36,0xf5,0xd3,0xc7,0xc9,0xf5,0xaa,0xe2,0x62,0xc4,0xf1,0xc8,0xbd,0x38, +0x84,0xf7,0x43,0x72,0x95,0xae,0x70,0x2c,0x80,0x8b,0x8b,0x28,0x79,0xfc,0x53,0x0d, +0xdc,0x65,0x29,0xfe,0xf9,0xd6,0x64,0xa3,0x22,0xdf,0x36,0x7e,0xda,0xbd,0x39,0xb5, +0x7f,0xf7,0x82,0xcd,0xda,0xd7,0xf0,0x3a,0xa6,0xbc,0x7f,0xad,0x24,0x4a,0xcf,0x47, +0x87,0x15,0xd2,0x8e,0x3c,0x94,0x9b,0xca,0x2d,0xe4,0x79,0x22,0x17,0xc0,0x22,0x56, +0xee,0x87,0x69,0x36,0xcf,0xb3,0x92,0x81,0x95,0x0e,0x82,0xe8,0x34,0x7a,0x4d,0xdc, +0x70,0x10,0x88,0x26,0xbc,0x2b,0xee,0xfc,0x78,0xd2,0x61,0xcd,0x2f,0xc2,0xc3,0xab, +0xaa,0x4e,0x6c,0x33,0x47,0x35,0x8a,0x3d,0xcc,0xc4,0xc5,0x50,0x31,0x9f,0x8b,0xa1, +0x33,0xa2,0x9b,0x54,0x38,0x34,0x9b,0x24,0xb9,0x0e,0x48,0x6c,0xfd,0x6b,0xfe,0x88, +0xdd,0xdf,0xfc,0xb6,0x43,0x30,0xa6,0x12,0x70,0x95,0x38,0x01,0xa5,0x13,0x32,0x30, +0x41,0x51,0xda,0x76,0xe8,0xcc,0x2f,0xb8,0x85,0xe4,0xbb,0xaa,0xa1,0xda,0xde,0x9e, +0xdf,0x88,0x93,0xed,0x4f,0xaf,0x63,0x8b,0xde,0x97,0x3e,0x6f,0x4b,0xdd,0x72,0xe3, +0xcb,0xe2,0xa2,0x6f,0x48,0x92,0xc2,0xb1,0x62,0x5d,0x38,0xb1,0x76,0x65,0xbb,0x3c, +0x24,0x56,0x9b,0x22,0x34,0x17,0x32,0x92,0xc1,0xa9,0x14,0x60,0x03,0x8b,0x72,0x8c, +0xe9,0x4d,0x84,0xd0,0xb6,0x67,0xa3,0x8b,0x0b,0x58,0x1c,0x70,0x02,0xca,0xcc,0x1b, +0x86,0x7a,0x2e,0x41,0xc1,0x17,0x43,0x83,0x8a,0x5b,0x8f,0x6a,0x9a,0x95,0x2d,0x66, +0x31,0x18,0x5d,0x24,0xc7,0x91,0x4b,0x93,0x18,0x8c,0x1d,0x0c,0xde,0xda,0x7d,0x0c, +0x43,0xe2,0xbe,0x73,0xc9,0x7a,0xf6,0x97,0x4c,0x43,0xc6,0x32,0x83,0xd5,0xa2,0x70, +0xeb,0xd4,0x4a,0x62,0x95,0x34,0xa6,0x28,0xce,0xf4,0x1c,0x4c,0xa8,0x26,0xb8,0xd5, +0x8b,0x6a,0xc8,0x28,0x1c,0xd7,0xa6,0xcf,0xc9,0x4a,0xe1,0xfc,0x1a,0x71,0x6d,0x98, +0xa8,0x6b,0x4b,0x72,0x2c,0xe6,0x94,0x59,0xe1,0x14,0x62,0xbf,0xb9,0x2e,0x60,0x94, +0x3f,0xc7,0x98,0xf1,0x1b,0x97,0x54,0x18,0xf5,0xed,0x55,0xab,0x74,0xa3,0x48,0xaa, +0xd0,0x5f,0xd6,0xaf,0x78,0xbc,0x25,0x7c,0x06,0x6a,0x5a,0x01,0x73,0x3c,0xec,0x34, +0x22,0x65,0x97,0xfa,0xd1,0x1d,0x97,0x9c,0x18,0x53,0x68,0x2a,0x2c,0x76,0x10,0x38, +0x4a,0xb0,0x34,0x2e,0x95,0xb2,0x67,0x3e,0x39,0x57,0x68,0x49,0xfd,0x45,0x5d,0xf1, +0x70,0x1b,0x0c,0x79,0xce,0x2b,0x86,0xd3,0xac,0xd0,0xd6,0x22,0x3f,0x66,0xf7,0x12, +0x72,0x8e,0xc9,0x56,0x51,0x5d,0x94,0x41,0x7f,0x67,0xc6,0xa9,0x3e,0x57,0x86,0xfa, +0xd7,0xfd,0x81,0xed,0xfd,0xad,0x4f,0x11,0x41,0xd4,0x31,0x55,0x3f,0x34,0xe9,0x12, +0x12,0x2e,0x10,0x48,0x93,0x7b,0x6a,0xc0,0x1d,0x6e,0xb8,0xc4,0x07,0x4c,0xf8,0x85, +0xc4,0xd4,0xa6,0x39,0xb1,0xa2,0x10,0xd5,0xd4,0xc9,0xdc,0x42,0x8a,0x47,0xd0,0xb2, +0x05,0xc8,0xeb,0x30,0xe0,0xb5,0x1e,0x10,0xb0,0x4e,0xfd,0x9e,0x73,0xa8,0x69,0xa1, +0xb5,0xb4,0xb1,0x5a,0x35,0xbd,0x33,0x81,0xc0,0x2f,0xcf,0xd6,0x34,0xc6,0x6b,0xb5, +0x81,0x7d,0x51,0xa8,0x91,0x4e,0x0e,0x4e,0xc1,0x2e,0x87,0xc3,0xe4,0xf4,0x72,0x3b, +0xad,0x77,0x3a,0x02,0x9c,0x2f,0x63,0xb8,0x4c,0x67,0x00,0xdd,0xb0,0x43,0xff,0x78, +0xf2,0xec,0x3d,0x55,0xa0,0x95,0xd2,0xb0,0x6f,0x1f,0x12,0xb4,0xa4,0x35,0x1d,0x36, +0x8a,0x69,0x33,0x10,0xe8,0x1e,0x10,0xda,0x50,0xaa,0x85,0x23,0x37,0x6f,0x13,0xf3, +0x4f,0x77,0x95,0x6a,0x55,0x21,0x44,0x71,0x70,0xd7,0x80,0x61,0xee,0x2b,0x3c,0xb7, +0x6a,0x37,0x0d,0xcc,0x9e,0x17,0x13,0x08,0xc3,0x1a,0xd2,0x7b,0x6d,0x2d,0x7a,0x53, +0xe8,0x00,0x35,0x5a,0x19,0x76,0xed,0xfe,0x22,0xdb,0x2f,0x18,0xb4,0x0e,0x72,0xcf, +0xe3,0xce,0xdb,0x6f,0x77,0xfe,0x3b,0x63,0xad,0x79,0x4b,0x9c,0xb8,0xf5,0x0b,0x45, +0xbd,0x80,0xed,0xa2,0x9b,0xed,0xc0,0x99,0xc9,0x26,0xa1,0xf0,0xb7,0x2c,0xcc,0x12, +0x00,0x1d,0x0d,0xb9,0x40,0x4d,0x54,0xfc,0x7b,0xdd,0x47,0x89,0x8a,0x0c,0xd6,0xd4, +0x67,0xd0,0x13,0xaf,0xce,0x6c,0x85,0xf5,0xaf,0x09,0x17,0x74,0xf6,0xb7,0x7c,0x11, +0x43,0x82,0x71,0x14,0x15,0x6d,0x2d,0xff,0x05,0x8d,0x08,0xf8,0x21,0xaf,0xc1,0x13, +0x59,0xb3,0xfe,0x6d,0x4c,0x12,0x75,0xe7,0x86,0x64,0x0a,0x93,0xc6,0xd1,0xe9,0x2f, +0x6e,0x2b,0x9a,0x62,0xdf,0xf7,0x76,0x0f,0x6e,0xd0,0x6e,0x99,0x1f,0x57,0xac,0x2b, +0x0c,0x38,0xbd,0xa5,0x4b,0x34,0x36,0xf3,0x5a,0xdc,0x3c,0x3f,0x12,0x08,0xba,0xaf, +0xd1,0x73,0x49,0x54,0xb9,0xbc,0xf5,0x0e,0xe6,0x0b,0xed,0xeb,0x0a,0x15,0xe4,0xb3, +0xcb,0xd5,0xef,0x28,0x56,0x14,0x7b,0x77,0x8a,0xe0,0xe3,0x46,0xd4,0x97,0x8a,0xc8, +0xaf,0x4c,0x9e,0x71,0xcd,0xfa,0xa7,0x2e,0x61,0x17,0x0e,0xd3,0x5d,0xb2,0x7f,0x81, +0x17,0x34,0x96,0x61,0xb2,0xcf,0x87,0xe5,0x6b,0x42,0xfa,0xc1,0xda,0xe2,0xf5,0x94, +0xc2,0x0e,0xe8,0x2a,0x4b,0xdf,0x0f,0xcb,0xda,0x26,0x08,0x4f,0xec,0xe1,0x7c,0x6a, +0x0e,0xdb,0x14,0x11,0xbc,0x7b,0xd9,0xfc,0x04,0xd1,0x38,0x59,0xd9,0x06,0x3f,0xca, +0x28,0xd7,0x75,0x30,0x55,0xb4,0x4d,0x08,0x32,0x6c,0x29,0xef,0x5a,0x07,0x56,0x25, +0xcd,0xdd,0x5b,0x7f,0x8b,0xbe,0xc1,0xa0,0x69,0x86,0x46,0x01,0x9e,0x22,0x57,0x49, +0x40,0x88,0xe7,0xdc,0x90,0x96,0x9c,0x24,0xca,0x42,0xf7,0xcb,0xcd,0x9c,0xeb,0x9e, +0xf6,0xbf,0xd8,0xe2,0x4f,0x6e,0xed,0x79,0x3b,0x4e,0x44,0xb8,0x21,0xf5,0x09,0x20, +0x18,0xb0,0x97,0x86,0x15,0x4a,0x4e,0xcf,0x14,0x43,0x83,0xdb,0xa1,0xbf,0xc8,0x55, +0x95,0xdc,0xe8,0x50,0x3e,0xaa,0x5b,0xc1,0xfe,0x21,0x60,0xc7,0x35,0xce,0xbe,0x11, +0x0d,0x60,0xb9,0xd5,0x4f,0x2d,0x68,0xda,0xab,0x3d,0x01,0x57,0xe3,0x8a,0xc9,0x54, +0x0b,0x0b,0x8d,0xf7,0x13,0x6b,0x47,0xde,0xe3,0x40,0x0f,0xdd,0x4d,0x2c,0x9f,0x20, +0xbe,0xf5,0xb6,0xa2,0x02,0x6b,0xe5,0xc0,0x0a,0x47,0x7c,0x26,0xd1,0xb0,0x88,0xa4, +0x82,0xde,0x30,0xbc,0xd5,0xea,0xc6,0x84,0xb2,0x4a,0xbe,0x70,0x38,0xe3,0xf0,0x7d, +0xf9,0xe6,0x98,0xef,0x35,0x36,0x0b,0x01,0xfe,0x04,0x33,0x7a,0x1c,0xcd,0xff,0xac, +0xa2,0x72,0x90,0xfb,0x34,0x3c,0x99,0x04,0x63,0x4a,0x59,0x2a,0x2a,0x9b,0x94,0xa8, +0x10,0x99,0x99,0x7e,0xbb,0x2e,0x6b,0xd3,0xbc,0x97,0x93,0xca,0xa7,0x73,0x40,0xa5, +0x0f,0x61,0x4a,0xf4,0x67,0xd5,0xfa,0x07,0x6d,0x52,0x36,0xa2,0x5a,0xea,0xbc,0x19, +0x86,0x68,0x0b,0x64,0x3b,0x4f,0xa4,0xd6,0x4b,0x44,0xf0,0x5b,0x2f,0x97,0xaa,0x67, +0x36,0x65,0x30,0x42,0x9f,0x20,0xf9,0x4f,0xe8,0x73,0x5b,0x49,0x5b,0x96,0xd5,0x66, +0x7e,0xb7,0x6c,0xaa,0x29,0x59,0xab,0x4f,0xeb,0x33,0x8c,0xf2,0x5a,0x98,0xd5,0x1e, +0x2f,0x96,0x90,0x94,0xbc,0xa0,0x12,0x71,0x9e,0x10,0xe0,0x8f,0x89,0xb1,0x5b,0xb1, +0x14,0x4c,0x99,0x49,0x3d,0x3e,0xff,0xf6,0x7f,0x98,0x34,0x9c,0x00,0x1e,0xfd,0xa0, +0xaa,0x74,0x92,0xda,0x7c,0x84,0xf0,0x26,0x76,0xb3,0x62,0x23,0x06,0x12,0xc4,0xc5, +0xbe,0x9b,0x93,0x6c,0xba,0xfd,0x0c,0x24,0x65,0x1a,0x6c,0xa6,0x64,0x32,0x77,0xb4, +0xae,0x13,0xd5,0x83,0x55,0xb0,0x2b,0x34,0x6b,0x9f,0xa7,0x52,0x61,0xcc,0x01,0x63, +0xf4,0x3b,0xdb,0x67,0xec,0xb7,0xd5,0x15,0x03,0x49,0x0f,0x6e,0xf3,0xd2,0xba,0x90, +0x2c,0x1f,0xf5,0x66,0x85,0x30,0xdd,0x85,0xb5,0xde,0x65,0xa8,0x71,0x1f,0x7c,0xbd, +0x01,0xc6,0x22,0xb6,0xd9,0x92,0xab,0xe0,0x9d,0xab,0x63,0xc0,0xfd,0x76,0xb3,0x62, +0x2e,0xd7,0xf7,0x8a,0xee,0x88,0xa3,0x0f,0x63,0x75,0xb4,0x8b,0x13,0x35,0x25,0xf6, +0x8b,0x1b,0x9b,0x57,0xb6,0xea,0xae,0x1e,0xea,0x56,0x62,0xe4,0x7f,0x7a,0x2d,0xe6, +0x8e,0x1a,0x62,0xcb,0x65,0xc3,0xc6,0xdf,0x96,0xe2,0xa3,0x62,0x12,0xa4,0x6e,0x96, +0xdf,0xec,0x05,0x80,0x0b,0x8a,0x4f,0x3e,0x8f,0x43,0x06,0x0c,0x6c,0xb0,0x5e,0x66, +0x25,0xb2,0x1f,0x03,0xd2,0x68,0x1f,0x5e,0x5a,0x4e,0x3d,0x84,0xd8,0xc6,0xf8,0x78, +0x17,0x29,0x3f,0x72,0x35,0x97,0x61,0x4f,0x6d,0x28,0xc7,0xad,0xf5,0x7c,0xf2,0x89, +0xc2,0x64,0xd2,0x9c,0x00,0x57,0xe7,0xb1,0x4e,0x4b,0x87,0x05,0x92,0xaa,0xbd,0xb7, +0x5f,0xe3,0x21,0x3f,0xe0,0x97,0xcd,0x4b,0x1f,0x9b,0xa8,0x7a,0x11,0xda,0xd1,0x38, +0x67,0x06,0x65,0x83,0x86,0xc1,0x5e,0xf8,0x6b,0xfd,0xe4,0x0f,0xad,0xd2,0x27,0xfe, +0xc3,0x13,0xa4,0xc9,0x6f,0x63,0xcc,0x53,0x9f,0x32,0x57,0x1c,0x38,0xfe,0xaf,0xa7, +0x4c,0x5d,0x6c,0xeb,0x67,0xda,0x5f,0xf9,0xeb,0xbf,0x38,0x0c,0x21,0x6f,0xe0,0x47, +0x82,0x88,0x2d,0x84,0x15,0xc3,0xdc,0xb0,0x08,0xc8,0x70,0xa2,0x24,0xed,0xac,0x20, +0x0b,0xe3,0xa0,0x31,0xf4,0xae,0x20,0xdf,0x45,0x9a,0x54,0xa5,0x39,0x7c,0xe5,0x7c, +0xef,0x8d,0xfb,0x06,0x37,0xa4,0x75,0xdf,0x6c,0x39,0xca,0x00,0x75,0x5d,0x63,0xae, +0x83,0xeb,0x76,0xba,0x93,0x52,0xbb,0x41,0x3e,0x81,0xdf,0x03,0xd4,0x81,0x64,0xbf, +0x06,0x5f,0xbc,0xd0,0xff,0x2e,0x5f,0x18,0x9f,0x54,0x5f,0x78,0xb2,0x10,0x31,0xd4, +0x60,0x9d,0x24,0x49,0xb4,0x20,0xd7,0x56,0x4f,0xc5,0xa6,0x44,0x17,0xa9,0x09,0xc7, +0x8e,0xd8,0xf3,0xb9,0x69,0x0b,0x51,0x2d,0x1b,0x7b,0x47,0x96,0x3e,0xe2,0x09,0x64, +0xa6,0x8a,0x16,0xbf,0x05,0x0a,0x7d,0x72,0xcf,0xe7,0x98,0x64,0xbd,0x73,0x83,0x4d, +0xb1,0xca,0x5b,0x8c,0x1d,0xcd,0xe8,0x35,0x7f,0x0e,0xeb,0x21,0xb5,0x29,0xea,0x5f, +0x93,0x02,0xf4,0x33,0x15,0x22,0xe5,0x5a,0x4b,0xb2,0x42,0x24,0x39,0x5d,0xaf,0x8d, +0x8d,0x9a,0xf9,0x0e,0x3f,0xeb,0xf1,0x0f,0xbb,0x6c,0x4b,0x27,0x35,0x0b,0xab,0xf9, +0x0d,0x4b,0x54,0xec,0xed,0x04,0x3e,0xc7,0x07,0x30,0x2d,0xd7,0x90,0x16,0x9d,0x3a, +0x4b,0x87,0x9a,0xb8,0x0e,0x51,0x8d,0x6b,0x4e,0xcc,0xd4,0xda,0x86,0x47,0x52,0xa4, +0xf2,0x54,0x5d,0x5f,0x92,0xa1,0x7e,0x85,0x47,0xad,0xaa,0xe0,0xa4,0x16,0x74,0xc9, +0x62,0xc7,0x19,0x6b,0x11,0xac,0x73,0x6a,0xc6,0x31,0x56,0x7b,0x59,0xf8,0x94,0xd9, +0x63,0x06,0x83,0x41,0x59,0x5b,0x84,0x84,0xcf,0xcf,0xfb,0xbd,0x5c,0xa9,0xe4,0x73, +0x9b,0x32,0xc2,0xaa,0x37,0xa2,0xcc,0xe4,0x3e,0x7b,0x30,0x57,0x08,0xf0,0x55,0x69, +0x4e,0xee,0x76,0x75,0xb8,0x4c,0xc4,0x96,0xb0,0x6c,0x2f,0xb6,0x1e,0x00,0x7b,0x6c, +0xf4,0x91,0x0a,0xec,0x69,0xf0,0x69,0x35,0xd7,0xe0,0xe5,0x93,0xb0,0x59,0xec,0x89, +0x52,0x27,0xcb,0xae,0x40,0x15,0x96,0xcc,0xa7,0xda,0x7e,0x5b,0x19,0x88,0x3b,0x38, +0x02,0xa8,0x9a,0xf5,0x5d,0x31,0x74,0xe2,0x66,0x76,0x8a,0x7c,0xa3,0x69,0x93,0x2c, +0xdf,0xcd,0xe4,0xcc,0xff,0x9d,0x7c,0xf2,0x67,0x44,0x5f,0xc0,0xab,0x10,0xda,0x88, +0xc5,0x69,0x65,0x81,0x24,0x12,0x75,0xe3,0xe6,0x75,0x5e,0xb8,0x0f,0x0a,0x57,0x29, +0x4c,0x94,0xca,0x26,0x2b,0xd7,0x7d,0xf3,0xef,0xce,0xa3,0xc4,0xf3,0x5c,0xd9,0x7b, +0x93,0xab,0xb5,0x4e,0x78,0x6c,0x76,0xba,0x4f,0xb0,0xae,0xbd,0x08,0x5b,0xd3,0x8a, +0x46,0xe6,0x3b,0x97,0xbd,0xf4,0x46,0x38,0x6c,0xbc,0xa6,0x42,0xe3,0xbb,0x77,0x75, +0xa0,0x31,0xb4,0x90,0xc4,0x8e,0x57,0xeb,0xc2,0x57,0x91,0x92,0x9a,0x01,0xef,0x6a, +0x12,0x39,0x91,0xb2,0x4e,0x16,0x47,0x46,0xb9,0xdf,0x20,0x47,0x8a,0x1e,0x5d,0x8d, +0xe4,0xc4,0x0e,0x44,0x1c,0x6a,0xde,0x7b,0xeb,0xae,0xc4,0xea,0xfb,0xea,0x7d,0x5e, +0x42,0x56,0x86,0x58,0xc3,0xfc,0xd6,0x72,0xea,0x6f,0xa0,0xf1,0x7b,0xb3,0x2f,0x6b, +0xcd,0xa5,0x98,0x32,0xbe,0xb0,0xdf,0x67,0x6b,0xec,0x56,0xf5,0x62,0x4a,0x57,0xb2, +0x8c,0xfe,0x03,0x5f,0x43,0x9f,0xbf,0x4e,0x34,0xc4,0x9e,0x5f,0x29,0x40,0xdf,0x00, +0x83,0x0e,0xca,0x66,0x4d,0x26,0x18,0x34,0xbd,0x2e,0x3b,0x7b,0xed,0x9c,0x76,0xa0, +0xba,0x8a,0x27,0xff,0xf8,0xa9,0x78,0x74,0x7c,0x4c,0xa7,0x6b,0xac,0x0f,0xe1,0x3e, +0xa4,0x8f,0x2e,0xeb,0x33,0x24,0x73,0xcb,0xc1,0x82,0x51,0x38,0xa2,0x9e,0x18,0x38, +0x32,0x4e,0xf1,0x97,0x4c,0x3c,0x8e,0xd3,0xe5,0x0f,0xff,0xf5,0xd0,0x03,0x78,0xbf, +0x61,0xb0,0x72,0x5b,0xfe,0x8f,0xf3,0x56,0x9e,0xa1,0xb1,0xc4,0x84,0xdb,0x70,0xab, +0x05,0xbe,0x48,0x12,0x81,0x71,0xd8,0x36,0xd1,0xe1,0xaa,0x7c,0xb7,0xc2,0xd2,0xc5, +0xef,0xcd,0xf7,0x41,0xf9,0xa3,0x2f,0x52,0xa9,0xc3,0xf8,0x0a,0x43,0xa3,0xd5,0x2e, +0x68,0x08,0xea,0x5a,0x4b,0x8c,0x0b,0x6b,0x0b,0xe4,0xe8,0xc8,0x37,0xf2,0xfd,0xfa, +0x29,0x18,0xbc,0x5d,0xbb,0x68,0x7c,0x42,0x6a,0xa5,0x35,0xec,0x7c,0x95,0x1c,0xa8, +0xe2,0x8a,0x18,0xe4,0xf5,0x92,0xb6,0xb7,0xf6,0xc4,0x1a,0x23,0x04,0x28,0xc3,0xc0, +0xed,0xf7,0xd8,0xa3,0x79,0x85,0x94,0x8f,0x03,0xc7,0x3f,0xbe,0x85,0x60,0x51,0x20, +0xb1,0x14,0x93,0xf0,0x9d,0xd0,0xfa,0xd7,0x28,0x7d,0xfb,0x79,0x5d,0xe6,0x70,0xb3, +0xfa,0x03,0x67,0x48,0x9d,0x3a,0x75,0x99,0xd6,0x2c,0xd3,0x5a,0xa2,0x97,0x5d,0xa7, +0xe2,0x02,0xca,0x9e,0x98,0x6b,0x25,0x85,0x4b,0x43,0x6d,0x58,0xd4,0x6f,0xfe,0xba, +0x29,0x8b,0x93,0xd3,0x61,0xd5,0xbb,0xe3,0xe8,0x98,0xd3,0xaf,0x59,0x28,0x18,0xa7, +0xaf,0x82,0x7c,0x79,0x19,0x2b,0x33,0xff,0x37,0x0e,0x6c,0x7c,0x56,0x63,0x5c,0x81, +0xd5,0x1b,0xe4,0xc5,0xbc,0x3d,0x54,0xfb,0x42,0xfe,0xae,0x18,0x9b,0x14,0xd3,0x91, +0x05,0xad,0x57,0x96,0x4e,0xd9,0xe3,0xc2,0xb7,0x8e,0xc6,0x18,0x05,0xde,0x81,0x7c, +0xa0,0x53,0x8f,0x84,0x13,0x73,0x12,0xd3,0x6d,0xa4,0xaf,0x22,0x03,0x33,0xb2,0xca, +0x58,0x99,0xd6,0xa2,0xca,0x3a,0x27,0x2a,0x1a,0xde,0x3d,0xc7,0x93,0xa7,0x51,0x44, +0x62,0x8b,0x60,0xa6,0x47,0x3d,0xb8,0x08,0xac,0x19,0x8a,0xd6,0x76,0x38,0xf3,0x97, +0xf9,0x1d,0x94,0xb6,0x44,0x31,0x54,0xe8,0x9b,0xb4,0xfb,0x05,0xef,0x35,0x7a,0xa1, +0xaa,0xa4,0x45,0x82,0x96,0xcb,0xb2,0x69,0x47,0x80,0xb4,0xeb,0x22,0x02,0xc8,0xae, +0x2c,0x81,0x12,0x75,0xc8,0xb7,0xea,0xc5,0xe5,0x0e,0x35,0x7f,0xd1,0xa1,0x82,0x79, +0x8b,0x1a,0x5b,0xeb,0x3e,0x03,0x75,0x52,0x4c,0x5e,0xe8,0xab,0xd9,0x39,0x2e,0xfa, +0x9e,0x7c,0x1e,0xd3,0xc4,0x45,0x66,0x3a,0xb4,0xd6,0x3e,0x4f,0xf5,0xe4,0x35,0x76, +0x2a,0x52,0x13,0x09,0xa8,0x3a,0xb8,0x4b,0x8b,0x7a,0xe9,0xab,0x19,0xf9,0x37,0x49, +0x74,0x64,0x26,0xe3,0x2c,0x96,0x45,0x63,0x4a,0x5d,0xe7,0x99,0x2c,0xc6,0x0e,0xdc, +0xaa,0x0c,0xbd,0x48,0x51,0xc6,0x66,0xd7,0x0e,0x1e,0xa9,0x11,0x7a,0x72,0xcd,0x66, +0x6b,0xb1,0x62,0xf8,0xb4,0x7c,0x7e,0x32,0x23,0x9c,0xbe,0xb8,0x74,0x70,0xf8,0xb0, +0x8b,0x9e,0x78,0x91,0x9b,0x7e,0x8e,0x96,0xa2,0xbf,0xbf,0x6b,0x06,0x3f,0xe0,0xa7, +0x76,0x5e,0x23,0x5d,0x47,0x1f,0x7f,0xaa,0xcf,0x31,0x95,0x03,0x58,0x79,0x98,0xfd, +0xe7,0x89,0xa0,0xfa,0xb5,0xe2,0x4d,0x50,0xd6,0xdf,0xc8,0xa4,0x72,0xa8,0x97,0x23, +0x67,0x2e,0x77,0x76,0x6e,0xcc,0xc8,0xe1,0x43,0xca,0x30,0xcf,0x36,0xa1,0x20,0x87, +0x9f,0x4b,0xa5,0xc9,0xe3,0x47,0x0a,0x83,0x29,0x20,0xc9,0x00,0x77,0xe4,0x7b,0x1a, +0x3f,0x23,0x69,0xfa,0x30,0x5e,0x17,0xb7,0xc7,0x7f,0xc1,0xb5,0xf3,0x6b,0x9b,0xb2, +0xd6,0x55,0xb2,0x24,0x77,0xf1,0x4a,0x91,0x22,0x69,0x98,0x78,0x90,0x10,0x17,0x32, +0x7f,0xe9,0x37,0x5e,0x49,0x2e,0xea,0x35,0x99,0xcf,0xa6,0xe4,0x53,0x4a,0xa1,0x37, +0x0d,0x8b,0xf9,0x43,0x1b,0xe7,0xf8,0xf3,0x39,0x6b,0x17,0x15,0x3d,0x40,0x0b,0x43, +0x84,0x07,0xb8,0x6a,0x7c,0xe3,0x2d,0x00,0xa3,0x47,0x1a,0x84,0x09,0x4c,0xcb,0x79, +0x6e,0x81,0xba,0x9a,0x1a,0x13,0x08,0x6d,0xd2,0xb7,0x22,0xde,0x2f,0x99,0x29,0xe5, +0xec,0xea,0xc8,0x1a,0x1e,0x29,0x5f,0xd1,0xac,0xdf,0x19,0xcd,0xd1,0xa8,0x63,0x78, +0x90,0x2b,0x9a,0x7c,0xf8,0xc6,0x09,0xa5,0x7b,0x47,0xcd,0x29,0x3d,0x69,0xd0,0x68, +0xef,0x72,0xad,0x2b,0x1d,0x95,0x42,0x39,0xc1,0x89,0x04,0x06,0x36,0xaf,0x39,0x4a, +0x8e,0x0c,0xd8,0xfe,0x9e,0x03,0x0c,0x5f,0xa7,0x2d,0x95,0x66,0xb5,0x7a,0x51,0xdf, +0x01,0xef,0xba,0x63,0xf4,0xe9,0x6e,0x41,0x23,0x38,0xc5,0x21,0x8b,0x28,0x5c,0x7b, +0x7d,0x11,0x47,0x2d,0x69,0x25,0xdf,0xf8,0xdb,0xc4,0x58,0x15,0x0b,0x12,0x21,0xc6, +0x74,0x8c,0xd1,0xef,0x1f,0x00,0xe9,0xff,0xe4,0x11,0x5c,0x48,0x34,0x4a,0x9d,0xd3, +0x87,0x4f,0xee,0x7d,0x47,0xb0,0x9b,0x54,0x8d,0x18,0x1f,0xfc,0x89,0x6c,0xa4,0x90, +0xd0,0x9e,0x40,0x05,0x32,0xb9,0x44,0x30,0xb8,0xae,0x22,0x42,0xd4,0x0e,0x98,0xde, +0x5b,0x94,0x65,0x9a,0xc6,0x4f,0x4d,0x84,0x0d,0x3a,0xef,0xa0,0x84,0xb0,0x99,0xec, +0x06,0x2e,0xaf,0x88,0xb2,0xb7,0x82,0x51,0x41,0x32,0xe7,0xb0,0x81,0xb1,0x88,0x42, +0xda,0xb4,0x48,0x84,0xb5,0x60,0x34,0xdd,0x6e,0xb8,0x7c,0x86,0x97,0xfb,0x8e,0xcd, +0xe9,0x18,0x92,0x45,0x5c,0x33,0xdb,0x65,0x86,0x7a,0x35,0x14,0xf5,0xbd,0xc9,0x81, +0x25,0x42,0x07,0xd8,0x78,0x3b,0x5d,0x21,0x32,0x10,0x41,0x05,0x74,0xbe,0x13,0x40, +0xcc,0x11,0x6d,0x24,0x53,0x18,0x1b,0x02,0x25,0x97,0x37,0x15,0x75,0xbf,0xe2,0x0f, +0x6f,0x6b,0xa7,0xf1,0xb1,0x1e,0x0c,0x0f,0xad,0xbb,0x28,0x5a,0xdd,0x47,0x4e,0x98, +0xe5,0x94,0xe2,0xed,0x7e,0x06,0xc1,0x9c,0x5d,0x54,0x01,0xf1,0x1e,0x4d,0x47,0xcf, +0x91,0x95,0xeb,0x4f,0xb8,0x4e,0xe3,0x7b,0x6d,0x62,0x77,0x56,0xd1,0x86,0xd0,0xdc, +0x6f,0xab,0xf4,0x9f,0x68,0xe6,0xeb,0x45,0x2c,0xb8,0xac,0x3b,0x90,0x30,0xe6,0xd0, +0xf8,0x28,0x50,0x3f,0xd6,0xac,0x08,0x74,0x85,0x2a,0xd6,0x8c,0x3d,0x07,0x10,0x40, +0xfa,0xc0,0xcd,0xc4,0xe7,0x09,0x1d,0xa4,0x9e,0x01,0x05,0x1c,0xfd,0xf5,0x80,0x3a, +0x74,0x8e,0x99,0xfd,0x3b,0xa8,0x29,0x70,0xfe,0x71,0x8f,0xc8,0x5f,0x74,0xc4,0x84, +0x12,0x63,0xb1,0xd0,0xad,0xf1,0xd0,0x80,0x32,0x0b,0x3b,0x9d,0xbc,0x08,0x78,0x62, +0x43,0xfe,0xfe,0x03,0xf1,0x46,0x09,0xa4,0x17,0xaa,0xce,0x2b,0x42,0x2e,0x70,0x72, +0x42,0xbe,0x77,0x66,0xea,0x9c,0x40,0x35,0xe4,0x45,0x2f,0x8b,0xa5,0xb6,0x79,0x63, +0xc3,0x7d,0x7a,0xf5,0x98,0x44,0x81,0x5a,0xf3,0x62,0xf0,0x85,0x06,0xdd,0x71,0x93, +0x88,0x67,0x25,0x86,0xb0,0x29,0x18,0x57,0x36,0x2f,0xae,0x8e,0x21,0xf4,0x08,0x68, +0x61,0x72,0x07,0xac,0x48,0x69,0x94,0xe5,0x4c,0xce,0xd0,0x94,0x3b,0x95,0x37,0xa0, +0x9d,0xf4,0x17,0x0f,0xee,0x99,0x4f,0xf4,0x2e,0xd9,0x23,0x6b,0xd7,0xca,0xd2,0xc5, +0x84,0x9f,0x54,0xba,0x94,0xcd,0x55,0x9e,0xa1,0xa4,0x2e,0x1b,0xb0,0x01,0x89,0xd5, +0xf2,0x6b,0xf6,0xab,0x26,0x88,0xe6,0x93,0xe7,0x29,0x7d,0x17,0x5e,0x05,0x3a,0xd8, +0xf5,0x07,0x44,0x88,0x33,0xbf,0x4b,0x22,0xad,0x9e,0xfa,0xee,0xde,0x9d,0xea,0x6e, +0xf2,0xf2,0xd6,0xce,0x1f,0x02,0x28,0xc6,0xb4,0x98,0xba,0xd6,0xa4,0xe0,0x93,0x4f, +0xa8,0x11,0xd9,0x4f,0xe0,0x68,0x51,0x3a,0xe9,0x45,0x03,0xea,0x21,0xe3,0x0f,0x9d, +0xf8,0x56,0xf8,0x6e,0xb8,0x9a,0xe0,0x16,0x96,0x1e,0xbb,0xb7,0xd8,0xcb,0x25,0x88, +0x48,0x87,0x62,0xbd,0x96,0x2c,0x12,0x57,0x42,0x20,0xad,0x4b,0xfb,0xdd,0xec,0xa3, +0x68,0x7f,0xad,0x1c,0x53,0x80,0x5a,0x63,0x85,0xe6,0x7d,0x7a,0x8f,0x09,0x86,0x75, +0x8c,0x4c,0xfd,0x4b,0x65,0x40,0x7b,0xab,0xa1,0x88,0xac,0x1f,0xf4,0xf1,0xdc,0xdd, +0x8d,0xeb,0x6b,0xa3,0x62,0xd0,0x3d,0x74,0x2a,0xe0,0x6f,0x5a,0x7a,0x03,0x23,0x76, +0xa5,0x60,0xb0,0x77,0x1a,0xbb,0xd4,0xd5,0x0b,0x5d,0xa6,0x56,0x30,0xef,0xa4,0x94, +0xa6,0x71,0xd6,0x07,0x47,0xc4,0x80,0xc2,0x96,0x8c,0xcc,0x31,0x33,0xc4,0xad,0x00, +0x25,0x02,0x9d,0xb8,0x5b,0x76,0x6b,0x89,0xe6,0x8b,0x3a,0xdf,0x2d,0x33,0x9d,0x31, +0x9d,0x90,0x2d,0x6b,0xda,0x3b,0xb1,0x22,0xd1,0x59,0x01,0xc7,0x0e,0x31,0xe8,0x5f, +0x21,0x24,0x7b,0x9a,0xb1,0x39,0xb8,0x60,0x9e,0x74,0x14,0x14,0x55,0xc5,0xf5,0xc1, +0x17,0x11,0xc4,0xd1,0x4c,0x15,0x76,0x20,0xc0,0xdd,0xa7,0xb3,0xad,0x7f,0x9a,0x2f, +0xa4,0xe4,0x3a,0xbb,0x3d,0xc0,0xf9,0xa3,0x61,0xeb,0x15,0x84,0x7b,0x7b,0x76,0x53, +0x49,0x50,0x5d,0x28,0xb3,0x76,0x5c,0x02,0x29,0xfc,0x5f,0xaa,0x02,0x8b,0x5f,0xa3, +0x8d,0x13,0x86,0x9f,0x7b,0x10,0x02,0x58,0x49,0x89,0xcc,0xbf,0x5a,0xa8,0x0c,0xeb, +0x34,0x10,0xb9,0x38,0xc9,0x1a,0x61,0xc5,0x48,0x3b,0x9a,0x47,0x06,0xbb,0xc0,0xfa, +0xfd,0x11,0x32,0x2d,0x0c,0xcb,0xd7,0xdc,0x8f,0x57,0x81,0xde,0xd5,0xf3,0x0d,0xeb, +0x9a,0x03,0x0f,0xe0,0xdf,0x55,0x45,0x50,0x91,0x19,0x1f,0x4d,0x31,0xd6,0x7e,0x7a, +0x28,0xdc,0xa6,0x6c,0x64,0x31,0x31,0xe0,0xbe,0x99,0x7d,0x97,0xaf,0xcc,0x16,0xdd, +0x2d,0xa6,0x9e,0x45,0x58,0x1d,0xfe,0x09,0x8b,0xdd,0x71,0xd8,0x92,0x87,0x27,0xca, +0xb7,0x13,0xcd,0xc9,0x19,0x38,0xf0,0xde,0x81,0xfb,0xf7,0x37,0x27,0xa3,0x5e,0xfd, +0x76,0x62,0xb7,0x5f,0x99,0xcd,0xf7,0x73,0x7f,0xcb,0x73,0x6e,0xda,0x75,0x79,0x8a, +0xa1,0x2b,0xb2,0x44,0x12,0x8b,0x28,0x4c,0x65,0x22,0x0f,0xbd,0xa3,0xe4,0x9b,0xf0, +0x03,0xda,0x38,0x08,0x69,0x55,0x42,0x52,0x47,0x3d,0x43,0x48,0x76,0x61,0x59,0xbe, +0x64,0x7d,0xcb,0x1e,0x14,0xcf,0xf1,0xc2,0x55,0x5d,0xb3,0x60,0x2d,0x14,0x43,0x91, +0x84,0x64,0xf9,0x64,0xd6,0x17,0x02,0x6c,0xc3,0xe8,0xe2,0x3b,0x55,0x61,0x8c,0xd9, +0x05,0xe4,0x70,0x59,0x74,0x2f,0x12,0x7c,0xa2,0x30,0x34,0x9a,0x56,0x55,0x48,0x95, +0x78,0x85,0x4e,0xad,0xeb,0xb5,0x26,0x40,0x4f,0x89,0x3c,0x09,0x59,0x1a,0xbe,0x42, +0xa2,0x56,0x24,0x7a,0x90,0xe4,0xc7,0x92,0x2e,0xa6,0x0e,0x19,0xa4,0x8a,0xf9,0xd1, +0x8e,0x5a,0x29,0xae,0xba,0x5a,0x18,0x7d,0x17,0xb3,0x69,0x8a,0x28,0x6a,0x78,0x0b, +0xaf,0xca,0xda,0x3c,0x74,0xa5,0x46,0x48,0xb7,0x8a,0x09,0x5e,0x54,0xe1,0xe5,0xf2, +0x05,0xc6,0x51,0x61,0x7d,0xa0,0xbf,0x38,0xa8,0x88,0xe1,0x2a,0xdd,0xf9,0xff,0xc1, +0x6d,0x25,0x5c,0x7c,0x3f,0xc9,0x6c,0xd6,0xda,0x1a,0x37,0x91,0x90,0x6a,0x72,0x99, +0x6a,0x90,0xd5,0xbb,0x68,0x28,0x9c,0x0e,0xae,0x92,0x00,0xce,0x7e,0xbb,0x5a,0x1a, +0x06,0xce,0xca,0x2c,0x7d,0xda,0x55,0x9b,0xd2,0xde,0x09,0x95,0x6d,0xca,0xfb,0xd8, +0xe5,0xca,0xf1,0xa1,0xe7,0x9d,0x05,0x87,0x4f,0xc3,0x99,0xbe,0x41,0xf6,0x69,0x6f, +0x6f,0x21,0xf5,0xff,0x98,0xec,0x9b,0xe1,0xec,0x18,0x49,0x95,0x27,0x82,0x53,0xa4, +0x66,0xde,0x2b,0xa6,0xb2,0x73,0x13,0xfd,0x33,0x8e,0xd8,0x09,0xa6,0xe6,0xdc,0x6a, +0x61,0xdd,0xe4,0xb9,0x3c,0xdc,0xaa,0x56,0x07,0x2f,0x7b,0xe1,0xbe,0x59,0x75,0xda, +0x80,0xfd,0x0b,0x01,0x5e,0x17,0xaa,0x36,0x08,0x1a,0x7c,0x5f,0xb3,0xf2,0x0f,0x53, +0xf8,0x6d,0x8d,0x45,0x60,0x74,0x4d,0x53,0xd1,0x73,0xfd,0xb6,0x15,0x0d,0xca,0x53, +0xed,0xde,0x2d,0x66,0x77,0xf3,0x05,0x23,0x46,0x03,0x3e,0xaf,0x1c,0x09,0xcb,0x99, +0x93,0x28,0xdc,0x96,0x3e,0xbb,0xd1,0xf9,0x0d,0xa0,0xb7,0x62,0x49,0x95,0x32,0xb0, +0xe6,0xf7,0x94,0x54,0x32,0x7f,0x9f,0x09,0x18,0xd5,0xbc,0xe7,0xf7,0xe5,0x3f,0xc4, +0xa0,0x7f,0x85,0x67,0xe0,0x3b,0x36,0x25,0x74,0xd5,0xa5,0xea,0xbe,0xf5,0xa9,0x56, +0xe4,0xb7,0xb7,0xd2,0x14,0x3a,0x15,0x31,0x61,0x22,0xad,0x77,0xbf,0xb5,0x30,0x52, +0x8b,0xd9,0x9c,0x7d,0xd8,0x17,0x16,0x61,0x48,0x9a,0x1a,0x3d,0x19,0xf2,0xee,0xea, +0xd9,0xdb,0xd0,0xac,0xb8,0xaf,0x06,0x8a,0xbc,0x76,0xe3,0x28,0x59,0x74,0x1d,0x63, +0x14,0xd5,0x11,0x7e,0x54,0xea,0xea,0x1d,0x11,0x7b,0xb1,0x52,0xba,0xb8,0x30,0x88, +0xab,0x33,0x8c,0x85,0x65,0x0f,0x9f,0xc9,0x8f,0x02,0x44,0xc1,0x70,0x0d,0x9d,0x3a, +0x76,0x2d,0x19,0x4a,0x45,0x19,0xe6,0xa5,0x93,0xa0,0xa9,0xa4,0xfe,0x9c,0x16,0x2a, +0xf7,0xdf,0xd7,0xac,0x9c,0xd8,0xc1,0xb4,0xda,0x26,0xa0,0xb4,0x79,0x46,0xa7,0xbe, +0x6f,0x43,0x38,0x9f,0x3c,0x0a,0xb7,0x1e,0x91,0x82,0x37,0x16,0x04,0xbc,0xf1,0x2a, +0x0e,0x13,0x00,0x25,0x9b,0x64,0x7f,0x05,0xcd,0x0f,0x7e,0xee,0xa0,0xbe,0x3a,0xf3, +0x64,0xad,0x13,0xee,0xb5,0xdf,0x5e,0xf1,0x64,0xed,0xa7,0xa0,0x36,0x4f,0x40,0x95, +0x62,0xb6,0x60,0x35,0x4f,0xdc,0x50,0xad,0xa8,0x11,0xdc,0x52,0x51,0x61,0x93,0x46, +0x4a,0xda,0xcb,0x18,0xb1,0xa0,0x12,0xe6,0x02,0x62,0x51,0x90,0x31,0x20,0x1f,0x25, +0x87,0xb9,0xc3,0x08,0xb0,0xa3,0x5b,0xca,0x20,0xbc,0x99,0x35,0x30,0x78,0x48,0x22, +0x26,0xdf,0xd6,0x7d,0x14,0xcd,0x69,0x44,0x29,0x4b,0x53,0xe0,0x69,0x6f,0xda,0xa1, +0x7d,0x14,0x58,0xd0,0x7d,0x03,0x26,0x76,0xaa,0x4a,0xd9,0x37,0x4f,0x49,0x75,0xbc, +0xa3,0x7d,0x1b,0x36,0xaf,0x29,0xd1,0x53,0xa2,0x4f,0x39,0xf4,0xf6,0x4a,0x7e,0x85, +0x73,0xad,0x97,0x7d,0x59,0x8c,0x0b,0x46,0x28,0x23,0x5f,0x36,0xdf,0x47,0x30,0x6a, +0x29,0xa8,0x84,0x41,0x98,0x38,0xd2,0x91,0x03,0x4e,0x64,0xca,0x6b,0xc4,0xb5,0x09, +0x6d,0x0d,0x14,0x07,0xf8,0x26,0xae,0x47,0xea,0x27,0x31,0x4f,0x06,0xb8,0xb4,0x3d, +0x8e,0x51,0xd9,0xff,0xec,0x68,0xe5,0xab,0x3d,0x45,0x6b,0x09,0x0d,0x97,0xb1,0xf1, +0x11,0xc0,0x34,0xfb,0xcd,0xfc,0x79,0xa9,0x3c,0xcd,0x60,0x4e,0x86,0x62,0x82,0xad, +0x59,0x17,0xd7,0x2c,0x61,0x25,0xc2,0x0a,0xb9,0x29,0x53,0x6c,0x53,0x8b,0x4b,0x2b, +0x67,0x42,0xc2,0x4f,0x5c,0x05,0x61,0x08,0xcb,0xcb,0x99,0x79,0x52,0x8a,0x23,0x3a, +0xee,0x41,0x98,0x6e,0x52,0x84,0x6b,0xae,0x08,0x5e,0x94,0x68,0xd3,0x89,0x12,0x42, +0x62,0x1e,0x7c,0x74,0x6f,0x3e,0x7b,0x5d,0x4a,0x42,0x87,0x7d,0xdb,0x2d,0x64,0xc4, +0x2f,0x1d,0xbe,0x35,0x1a,0x9f,0x4e,0x35,0x1c,0x12,0x69,0xd6,0x5e,0x2f,0x46,0x6b, +0x82,0x50,0x34,0xb0,0xd0,0x8e,0x46,0x89,0x1d,0xfe,0x86,0xb6,0xc2,0xfa,0x4f,0x7f, +0x03,0x1f,0x21,0xfa,0x13,0x36,0x8b,0xfb,0x41,0x8d,0x2a,0xe2,0x6e,0x2f,0x6d,0xd1, +0x8f,0x1c,0xd7,0xe1,0xc9,0x71,0xbd,0xc3,0x83,0xf4,0xbd,0x3f,0xf0,0x13,0xe7,0x33, +0xae,0x19,0xbc,0x46,0x33,0x63,0xa4,0x82,0x23,0x74,0xd5,0x24,0x36,0xd9,0xde,0x20, +0x16,0xb4,0xf4,0x04,0x6f,0x3a,0x56,0xd2,0xc0,0x53,0x4c,0x09,0x3b,0x34,0xba,0xe5, +0x43,0xb9,0xfd,0x15,0x45,0x39,0x2d,0x83,0xa1,0xa6,0xcd,0xd5,0x09,0x89,0xdf,0x55, +0xce,0xdc,0xad,0x95,0x01,0xea,0x55,0x53,0x16,0x58,0x31,0x8a,0x29,0xaa,0x66,0xc9, +0xac,0x15,0x9a,0xd7,0x99,0x93,0x68,0xaf,0x9d,0x57,0x21,0xcc,0x5c,0x85,0x6e,0x38, +0x77,0x14,0xf6,0x74,0x35,0xe5,0x66,0xfa,0xe5,0x55,0x21,0x27,0x86,0x38,0x4d,0x72, +0x0b,0x5b,0xff,0x98,0x58,0xef,0x87,0xeb,0x49,0x56,0x3b,0x36,0xf9,0xfa,0x45,0x67, +0x0a,0x1d,0x23,0x18,0x6c,0x59,0xbf,0xfb,0x6a,0xf0,0x40,0xbd,0xdd,0xf6,0x7e,0x0f, +0xe8,0x3c,0xbe,0xeb,0xc7,0x33,0xe2,0x97,0xc9,0x1d,0xb5,0xac,0x36,0x81,0x8e,0x28, +0xd9,0xbd,0xee,0x3a,0x2b,0xb0,0x26,0x7a,0x6a,0x9a,0x25,0xd8,0xf6,0xc0,0x4f,0xd8, +0x56,0xdf,0x57,0x25,0x38,0xb5,0x37,0xa9,0x04,0xd3,0xb0,0x12,0x0f,0xe8,0xdd,0xaa, +0xcf,0x73,0x37,0x35,0x63,0xb4,0x67,0x29,0x1c,0x50,0x38,0x02,0x0a,0xa9,0xdf,0x71, +0x51,0x89,0xa6,0xdc,0x30,0x74,0x30,0xe2,0x48,0x3b,0xf4,0xd6,0x6e,0x31,0xec,0xc2, +0x7b,0x4e,0x7c,0x0d,0x77,0xdc,0xa8,0xcf,0x45,0x80,0x1b,0xc5,0xd9,0xec,0xa7,0x70, +0xb1,0xe0,0xf5,0x18,0xb2,0x36,0x35,0x07,0xbb,0xc2,0xcf,0x21,0x35,0x61,0xb9,0x71, +0xc6,0x5c,0xb1,0x9a,0x8b,0x0e,0x63,0x2a,0xb9,0x81,0x46,0x45,0x2e,0xa1,0x98,0x4a, +0xef,0xb5,0x60,0x3b,0x70,0xa2,0x58,0x80,0xc7,0xa0,0x6e,0x83,0xeb,0xeb,0x32,0x3b, +0x73,0xc7,0xed,0xa6,0x93,0xaa,0x26,0xb0,0x45,0x87,0x22,0x86,0x5f,0xea,0x99,0x67, +0xf1,0xa6,0xb1,0xcf,0xb4,0xb6,0x59,0x65,0x47,0xc8,0xe3,0x0b,0xd0,0x0f,0x75,0x98, +0x26,0x38,0x5d,0xa7,0x96,0xa8,0xb0,0x4c,0x44,0xc9,0x46,0xf3,0xba,0xe2,0x5a,0x68, +0x4d,0xc8,0xf0,0x23,0xf7,0xec,0xac,0x78,0xed,0x17,0xed,0xd3,0x5a,0xc3,0x55,0xf8, +0xac,0x01,0x0e,0x7c,0xe2,0x04,0x9a,0x48,0x2f,0x6e,0x3a,0xc7,0x22,0x44,0x5b,0x2f, +0x2d,0x00,0x99,0xbe,0xb2,0x05,0x69,0x03,0xb0,0x65,0x9a,0xd0,0xa7,0xaa,0x2f,0xf9, +0xa9,0x84,0x7b,0x32,0x76,0xef,0x45,0x3c,0x38,0xc4,0xa3,0xd0,0x24,0x9a,0xdd,0x0d, +0xd4,0x84,0xc2,0x5b,0x7d,0x88,0x1a,0x6c,0xcd,0xa8,0xc9,0x8c,0xf2,0x51,0xd5,0xaa, +0xe3,0x5c,0x92,0xf8,0x0f,0xec,0xaa,0xf8,0x4e,0xaa,0x16,0xec,0x5b,0xe5,0x61,0x57, +0x78,0x4e,0x9b,0x68,0xfd,0xa2,0x1b,0x89,0x4d,0xc3,0x8b,0x4b,0x37,0xe7,0x15,0x5d, +0x6e,0x0c,0x8b,0x1f,0x21,0x22,0x41,0x99,0x4d,0xc7,0xf8,0x0c,0xfe,0x69,0xac,0x56, +0xc5,0x9f,0xcd,0x6d,0xcb,0x3b,0x5c,0x2a,0x62,0x6b,0xca,0x92,0x17,0xa9,0x66,0x69, +0x86,0x97,0x83,0xe9,0x96,0x01,0x06,0x50,0xe7,0xf9,0x66,0xd4,0x8a,0x9f,0x45,0x23, +0xfa,0x9f,0x3f,0xbe,0xb2,0x9b,0x0c,0x21,0xe5,0xb5,0xa3,0x93,0xf2,0x1b,0x7d,0x0a, +0x44,0x9c,0xda,0x01,0x6e,0xf2,0x99,0xd1,0xa4,0xf3,0xdf,0xb6,0xf4,0xc3,0x06,0xd3, +0x27,0x39,0x3b,0x20,0x26,0x3f,0x4c,0x32,0x3a,0x5c,0x0f,0xc2,0x97,0x6b,0x97,0x22, +0x5f,0x44,0xcc,0x30,0x04,0x2e,0x0e,0x8c,0xc4,0xb0,0x5c,0x84,0x01,0x5a,0xf5,0xfc, +0x8f,0x1b,0x1a,0x21,0x57,0xad,0x7d,0x01,0x64,0xde,0xb2,0x98,0x8e,0x59,0xad,0xb2, +0x4d,0x6a,0x15,0xf3,0x84,0x5b,0xc2,0x11,0xc3,0x23,0x59,0x95,0x87,0x68,0x46,0x94, +0x49,0x95,0x7d,0x1d,0x43,0xb1,0x4e,0x68,0xef,0xd6,0x09,0x1c,0x78,0x58,0xee,0x7b, +0xc1,0xdb,0x7c,0x6c,0x0e,0x4e,0x46,0x78,0xcc,0x9a,0xd6,0xaf,0x19,0x54,0x47,0x2b, +0xb2,0x95,0x67,0xcb,0xbb,0xf8,0x97,0x69,0x60,0xd4,0x00,0x9b,0xfa,0x30,0x6b,0xfd, +0xe7,0x31,0x6f,0x2b,0x16,0xa0,0x05,0x45,0x8e,0x1f,0x2d,0xf8,0x3f,0x5b,0x1e,0x3a, +0x09,0x4d,0x5e,0xde,0x99,0xfe,0x61,0x6e,0x2f,0x15,0xc9,0x0e,0xd5,0x00,0x16,0x2a, +0x73,0x6c,0x56,0x19,0xfd,0xfd,0xbe,0x8f,0x08,0x70,0xda,0xb3,0xde,0xf4,0xa7,0xaa, +0x27,0x13,0xb8,0x9b,0x8d,0x52,0x2d,0xec,0x86,0x6f,0xcc,0xb0,0xda,0xf8,0x90,0xc7, +0x59,0xcf,0xe7,0xd7,0xb9,0x7e,0xe6,0x19,0x8c,0x6b,0x7b,0xfb,0x98,0x4e,0x3e,0x1d, +0xe3,0x09,0x78,0x86,0x11,0x57,0x6f,0xa4,0x7b,0x37,0x07,0xdb,0xb1,0xe3,0xc8,0xe9, +0x31,0x40,0x39,0x30,0x93,0x22,0x60,0xb2,0x9c,0x3e,0x3c,0x4f,0xf2,0x20,0x85,0x05, +0xd1,0x37,0xf9,0x15,0x33,0x6c,0x81,0xa3,0x1d,0xcd,0x41,0x3a,0x54,0xcd,0x37,0xd8, +0x0c,0x85,0x0d,0x67,0x32,0x20,0xa6,0xd3,0x43,0xbf,0xdf,0xfc,0x38,0x59,0x9f,0x41, +0x06,0x9d,0x3f,0xbb,0xed,0xdb,0xaf,0x9f,0xbd,0xbb,0x2f,0x9b,0xad,0x9b,0x11,0xc6, +0xe4,0x44,0x37,0xab,0xec,0xda,0xa7,0x8f,0xbc,0xba,0x27,0x8b,0xac,0x9a,0xf8,0x3e, +0xe2,0xe6,0x3e,0xba,0x6d,0xd9,0xae,0x9e,0x3d,0xb9,0x2e,0x9a,0x2d,0x99,0xb6,0xae, +0x7c,0xf8,0x36,0xaa,0x6c,0xd8,0xa6,0x8e,0x3c,0xb8,0x26,0x8a,0x2c,0x98,0xc1,0xc8, +0x50,0xbd,0x7d,0xf7,0x9a,0x2b,0xeb,0x53,0xeb,0x4e,0x52,0xd5,0x36,0x65,0xca,0xe1, +0x67,0xd4,0x1a,0x6e,0x1f,0xb2,0x0c,0x5a,0x21,0x44,0x0a,0xbe,0x58,0x11,0x4e,0x18, +0x93,0xb7,0x07,0xfd,0x90,0x25,0xbc,0xc2,0xec,0xb7,0x68,0x0a,0x79,0x95,0x73,0x3e, +0x74,0x04,0xad,0xed,0x91,0x24,0x09,0xf6,0xcf,0xc3,0xc1,0x38,0x7a,0x6d,0xbd,0xb7, +0xf5,0xf3,0x3d,0xb3,0xe5,0xd3,0xad,0x97,0xb5,0xb3,0x2d,0x93,0xa5,0x93,0xb5,0xa7, +0xf4,0xf2,0x35,0xa3,0xe4,0xd2,0xa5,0x87,0xb4,0xb2,0x25,0x83,0xa4,0x92,0xbc,0xb6, +0x75,0xf1,0x3c,0xb2,0x65,0xd1,0xac,0x96,0x35,0xb1,0x2c,0x92,0x25,0x91,0xb4,0xa6, +0x74,0xf0,0x34,0xa2,0x64,0xd0,0xa4,0x86,0x34,0xb0,0x24,0x82,0x24,0x90,0xc4,0x75, +0x23,0x52,0xfc,0x34,0x92,0x9f,0x44,0x5f,0x9b,0x56,0x54,0x25,0xd5,0xd2,0xb9,0xb4, +0xc0,0xee,0xd3,0xf4,0x8d,0xfb,0x24,0x5b,0x45,0xda,0x5c,0x55,0xa3,0x33,0x5a,0x3a, +0xa6,0x5b,0x21,0xa1,0xc3,0x94,0x1d,0x5e,0x41,0x53,0xdb,0x74,0xbb,0x33,0x57,0x75, +0xdd,0x51,0x3c,0x44,0xce,0x3a,0x19,0x35,0x92,0xf7,0xd9,0xd3,0xc5,0x26,0xbb,0x3f, +0xdd,0xeb,0x3b,0x3b,0xcd,0xcb,0xab,0x1f,0x9d,0xab,0x2b,0x1b,0x8d,0x8b,0xb3,0x2f, +0xdc,0xea,0x33,0x2b,0xcc,0xca,0xa3,0x0f,0x9c,0xaa,0x23,0x0b,0x8c,0x8a,0xba,0x3e, +0x5d,0xe9,0x3a,0x3a,0x4d,0xc9,0xaa,0x1e,0x1d,0xa9,0x2a,0x1a,0x0d,0x89,0xb2,0x2e, +0x5c,0xe8,0x32,0x2a,0x4c,0xc8,0xa2,0x0e,0x1c,0xa8,0x22,0x0a,0x0c,0x88,0x1a,0xcb, +0x89,0xc7,0x5d,0x03,0x3c,0x53,0xab,0x4a,0xea,0xa4,0x27,0x82,0x5c,0x03,0xf9,0x94, +0x82,0x59,0x75,0xef,0x18,0xed,0x9e,0x40,0xdf,0x5f,0xb7,0x40,0xab,0x39,0xab,0x0c, +0x0b,0xea,0x66,0x65,0xb0,0x77,0x6e,0xda,0xa1,0x55,0xce,0xdf,0x03,0x81,0x52,0xd5, +0xde,0x1f,0xf7,0xaf,0x42,0x79,0x97,0x64,0x8a,0x3b,0xc0,0x5c,0xff,0x63,0xb9,0x37, +0xd5,0xe3,0x39,0x33,0xc5,0xc3,0xa9,0x17,0x95,0xa3,0x29,0x13,0x85,0x83,0xb1,0x27, +0xd4,0xe2,0x31,0x23,0xc4,0xc2,0xa1,0x07,0x94,0xa2,0x21,0x03,0x84,0x82,0xb8,0x36, +0x55,0xe1,0x38,0x32,0x45,0xc1,0xa8,0x16,0x15,0xa1,0x28,0x12,0x05,0x81,0xb0,0x26, +0x54,0xe0,0x30,0x22,0x44,0xc0,0xa0,0x06,0x14,0xa0,0x20,0x02,0x04,0x80,0xb0,0x22, +0x1e,0x82,0xc0,0x59,0xa7,0xdd,0x34,0xa6,0x4e,0x85,0xb8,0x6a,0xb5,0xef,0x4a,0x2a, +0x17,0xcc,0xc8,0x57,0xec,0xac,0xcb,0xf5,0x47,0x34,0x65,0x0e,0x2a,0xe1,0xcd,0xeb, +0x74,0xcf,0xd9,0x03,0xe7,0xf5,0x68,0x7e,0xc0,0xe0,0x21,0x7c,0x29,0x5e,0x33,0x11, +0x47,0xa7,0xe3,0xe9,0x36,0xc6,0x3d,0x74,0x44,0xcd,0x62,0x93,0xd1,0x58,0x9f,0xbd, +0xf9,0x7b,0x1f,0xb9,0xe9,0x5b,0x8f,0x9d,0xb9,0x3b,0x0f,0x99,0xa9,0x1b,0x97,0xad, +0xf8,0x7a,0x17,0xa9,0xe8,0x5a,0x87,0x8d,0xb8,0x3a,0x07,0x89,0xa8,0x1a,0x9e,0xbc, +0x79,0x79,0x1e,0xb8,0x69,0x59,0x8e,0x9c,0x39,0x39,0x0e,0x98,0x29,0x19,0x96,0xac, +0x78,0x78,0x16,0xa8,0x68,0x58,0x86,0x8c,0x38,0x38,0x06,0x88,0x28,0x18,0x2a,0x0e, +0x83,0xc9,0x9a,0xde,0xeb,0xea,0x32,0xdb,0x80,0xe8,0xee,0x75,0xa1,0x54,0xbe,0x69, +0x52,0x82,0xd2,0x1a,0xfd,0x28,0x8d,0x1e,0xcf,0xc1,0x61,0x9a,0x59,0x52,0x8f,0x2f, +0x8a,0xf1,0xa9,0x2b,0xb8,0x01,0x33,0xe9,0x4f,0x8c,0x6e,0xaf,0xa3,0x7b,0x28,0xea, +0xd2,0x74,0xb3,0xec,0x19,0x06,0x86,0xcb,0xc5,0xc4,0xe7,0xbb,0xf6,0x7d,0x9d,0xb5, +0xf1,0x73,0x1d,0xb1,0xe1,0x53,0x8d,0x95,0xb1,0x33,0x0d,0x91,0xa1,0x13,0x95,0xa5, +0xf0,0x72,0x15,0xa1,0xe0,0x52,0x85,0x85,0xb0,0x32,0x05,0x81,0xa0,0x12,0x9c,0xb4, +0x71,0x71,0x1c,0xb0,0x61,0x51,0x8c,0x94,0x31,0x31,0x0c,0x90,0x21,0x11,0x94,0xa4, +0x70,0x70,0x14,0xa0,0x60,0x50,0x84,0x84,0x30,0x30,0x04,0x80,0x20,0x10,0xfb,0xd7, +0x5f,0xfd,0xf9,0x29,0x10,0x4d,0x4c,0x26,0x01,0x42,0x4b,0x5b,0x13,0x2b,0x34,0x87, +0xa7,0xb9,0x13,0x0d,0xca,0xf0,0x3e,0x50,0x41,0x93,0xdc,0xf6,0xdb,0xfc,0xe5,0x6e, +0x01,0x6f,0x49,0x1c,0xb5,0x32,0x55,0xe7,0x68,0x59,0x35,0xa3,0xcb,0x61,0x89,0xf1, +0xe4,0xb3,0x01,0xec,0x6b,0x4c,0xe0,0x62,0x9a,0xda,0x42,0xc5,0x56,0x0e,0x9b,0x3d, +0xd9,0x6b,0x1b,0x39,0xc9,0x4b,0x8b,0x1d,0x99,0x2b,0x0b,0x19,0x89,0x0b,0x93,0x2d, +0xd8,0x6a,0x13,0x29,0xc8,0x4a,0x83,0x0d,0x98,0x2a,0x03,0x09,0x88,0x0a,0x9a,0x3c, +0x59,0x69,0x1a,0x38,0x49,0x49,0x8a,0x1c,0x19,0x29,0x0a,0x18,0x09,0x09,0x92,0x2c, +0x58,0x68,0x12,0x28,0x48,0x48,0x82,0x0c,0x18,0x28,0x02,0x08,0x08,0x08,0x5e,0xae, +0x1f,0xb8,0x36,0x91,0xb8,0x6c,0xed,0x89,0x6a,0xe0,0xce,0x8a,0xf9,0xa9,0x0f,0xec, +0xfb,0x1b,0x6b,0xe5,0x9e,0xdc,0xbe,0x56,0x61,0x54,0xe7,0xf7,0xda,0xb8,0x9f,0x75, +0x21,0x81,0x03,0xe0,0x9d,0x7a,0x88,0x2f,0xc1,0x0b,0x1b,0x5f,0xf8,0x0c,0x09,0xfb, +0x0e,0x1e,0x8f,0x68,0x99,0x36,0x41,0x66,0xde,0xfb,0xe6,0x39,0x18,0x44,0x99,0x35, +0xd1,0x63,0x19,0x31,0xc1,0x43,0x89,0x15,0x91,0x23,0x09,0x11,0x81,0x03,0x91,0x25, +0xd0,0x62,0x11,0x21,0xc0,0x42,0x81,0x05,0x90,0x22,0x01,0x01,0x80,0x02,0x98,0x34, +0x51,0x61,0x18,0x30,0x41,0x41,0x88,0x14,0x11,0x21,0x08,0x10,0x01,0x01,0x90,0x24, +0x50,0x60,0x10,0x20,0x40,0x40,0x80,0x04,0x10,0x20,0x00,0x00,0x97,0x4a,0x80,0x05, +0x76,0x8d,0xde,0x85,0xb1,0x8b,0x52,0x92,0x14,0x40,0xce,0xa1,0x58,0xcb,0xac,0x72, +0x40,0x81,0x90,0xe5,0x5b,0x21,0x24,0xb2,0x41,0xa7,0xc6,0xb5,0xd3,0xca,0x7f,0x19, +0x02,0x2a,0x41,0x05,0xfb,0xa0,0x19,0x24,0xc4,0x62,0x90,0x05,0x50,0x48,0x71,0xec, +0xc1,0x41,0xd7,0x1d,0xb1,0x88,0x47,0xd3,0xcd,0xc6,0x59,0x35,0xba,0xe1,0x7e,0x48, +0xc0,0x06,0x3f,0xba,0x14,0xe4,0x46,0xf1,0xa9,0xe6,0xf9,0x23,0x7c,0xe8,0xfb,0xc0, +0x05,0xa5,0x08,0x40,0x82,0xa8,0x1a,0x03,0x5f,0x4c,0xf1,0x73,0x52,0xe5,0x49,0xc5, +0x7e,0xa4,0xd4,0xc1,0xd6,0xbb,0xea,0xd0,0x80,0xe9,0x9b,0x78,0x93,0x67,0x05,0x23, +0xeb,0xa5,0x36,0xd1,0xd7,0xd2,0x2f,0xf3,0xca,0x3a,0xa3,0xa1,0x53,0x47,0x80,0x6a, +0x73,0xda,0x87,0x0c,0x9a,0x20,0x3c,0x2f,0x20,0x47,0x82,0xdd,0x12,0x68,0x7a,0x5e, +0xf5,0x4b,0xea,0x5c,0x0c,0x26,0x1a,0x7b,0x4d,0x49,0x9b,0x1c,0xd9,0xa8,0xdc,0x08, +0x8e,0x8a,0x0e,0xfd,0x90,0x25,0x3d,0x2e,0xe7,0x0a,0xcd,0xa8,0xd0,0xc1,0x89,0x63, +0x0b,0x23,0x0b,0x1c,0x30,0x80,0xf1,0x3d,0xc9,0xe4,0xc5,0xbc,0x5b,0xc0,0xbd,0x3b, +0x48,0x8f,0x02,0x5d,0x8d,0x6e,0x08,0x75,0xe9,0x4a,0x58,0x9a,0x85,0xe1,0x74,0x54, +0x6a,0xed,0xb5,0xa6,0xe4,0xf2,0xda,0x9a,0xea,0xb2,0xd8,0x74,0x59,0x6c,0x03,0xb7, +0x0a,0x5e,0x41,0xf7,0x7b,0x51,0x5f,0x07,0x6b,0xc6,0xf3,0x60,0xd2,0x2e,0x53,0x4c, +0x77,0xad,0x0b,0x4d,0xb1,0xa2,0x11,0x78,0x28,0xc5,0xd3,0x7f,0x59,0x8f,0xbf,0xe2, +0x61,0x50,0x03,0x75,0x3a,0x36,0xba,0x51,0x6a,0x5c,0x95,0x84,0x1b,0x40,0x74,0xe3, +0x71,0x18,0xce,0x1e,0x5a,0x93,0x62,0x20,0x8a,0xf3,0xd8,0x36,0x1a,0x33,0x7d,0xe3, +0xe3,0xcd,0xdb,0x01,0xb0,0x99,0x4b,0x25,0xe0,0xdf,0x95,0xa7,0xb2,0xd9,0x4c,0x6c, +0xc7,0x51,0x8d,0x64,0xa1,0x23,0x43,0xb9,0xc1,0xfc,0x9d,0x44,0xb3,0x7d,0x3a,0xcd, +0xad,0xb9,0x04,0xd0,0xc3,0x2f,0x6c,0xb0,0x66,0x5b,0xee,0x63,0xde,0x2b,0x4d,0x42, +0x23,0x1d,0xb3,0x56,0xb3,0x35,0x26,0x20,0x6b,0x8a,0xe6,0x73,0xdf,0x69,0x40,0x53, +0x22,0xbb,0x3a,0xb7,0x55,0x28,0x6d,0x1e,0xa1,0x76,0xef,0x62,0x5e,0x69,0x09,0x20, +0xb7,0x13,0x12,0xd5,0xc4,0x3d,0xe2,0x21,0x14,0x8f,0xf3,0xf3,0x62,0x2b,0x84,0x62, +0x57,0x10,0xd8,0x85,0x38,0x78,0x13,0x2a,0x69,0x20,0xc8,0x3d,0x78,0xf5,0x70,0x1a, +0x28,0xfe,0xee,0x6d,0x3f,0x39,0x26,0x49,0x6f,0x59,0xde,0x4f,0x61,0x7f,0xdc,0x8d, +0xae,0xba,0x83,0xee,0xd3,0x18,0x37,0x3d,0x83,0x78,0xe9,0x28,0x93,0x6a,0x55,0x98, +0x0a,0xb4,0xd1,0x0d,0x19,0x90,0x41,0x29,0xc9,0xf0,0x97,0xf0,0x9a,0x1b,0x1c,0xca, +0x42,0x2c,0xfc,0x2e,0x96,0xc2,0x2e,0x19,0x3a,0x7c,0xf8,0xeb,0xef,0x73,0x18,0xd0, +0xc0,0x0d,0xfe,0x62,0x50,0x09,0x26,0x8b,0x3b,0x56,0xf7,0xb2,0xb2,0x19,0x39,0xc0, +0xc9,0xe1,0xbc,0x13,0x0d,0x95,0x37,0x29,0x24,0xd3,0x63,0xa7,0x33,0x3a,0x6f,0xcd, +0x63,0x2f,0xcf,0x2c,0x33,0xc0,0x24,0x99,0xbc,0x54,0x76,0x22,0x42,0xa1,0x9d,0xf2, +0x58,0x8f,0xe4,0x84,0x7f,0xe2,0xb0,0x23,0x44,0x80,0x70,0x26,0x3f,0x62,0x22,0x16, +0xa6,0x8c,0xf6,0x87,0x15,0x0a,0x68,0x36,0x4d,0xe9,0xe6,0xb3,0x5d,0x4a,0x41,0x42, +0x31,0x8f,0xa1,0xf6,0xd6,0xa6,0x35,0xbe,0xc0,0xe2,0xb9,0xd6,0x9e,0xe2,0xd6,0xc3, +0x8d,0x0c,0xa8,0x97,0x15,0xa2,0xb9,0x32,0x82,0x83,0xb8,0x17,0x55,0xa1,0xd3,0xd2, +0x00,0x24,0x1d,0xbd,0xe5,0x5b,0x74,0x9c,0xbb,0x4e,0xf2,0x14,0x21,0xc4,0x32,0x4f, +0xa4,0x83,0xd2,0xb9,0xec,0x3a,0xf0,0x4e,0xa6,0xca,0x07,0xa6,0x29,0xe6,0x2d,0xc1, +0x8f,0xfb,0x1a,0xc3,0x9a,0xcb,0x8a,0x3f,0x65,0xc0,0x15,0x07,0x24,0x83,0x65,0x3d, +0x26,0x0f,0x16,0xa9,0x91,0x27,0x19,0x33,0xda,0x4c,0xc7,0x7e,0x94,0x15,0x68,0x0b, +0xfb,0x75,0xfc,0x8f,0x9e,0x03,0x36,0x5a,0x48,0xe8,0xec,0xaf,0xde,0x43,0x4a,0x5b, +0xf0,0x02,0xca,0xef,0x57,0xa9,0xba,0x3b,0x9f,0x89,0xa2,0xcf,0x17,0xe9,0x69,0xf5, +0xd9,0x85,0x63,0x0f,0xf7,0x28,0x6d,0x2f,0xc4,0xde,0x73,0x2f,0xb7,0x68,0xac,0xf9, +0x0f,0xa3,0xf5,0x17,0x8d,0xaf,0x3f,0x99,0xc9,0xeb,0xe5,0xba,0xd5,0x40,0xe2,0xa8, +0xaf,0x73,0x3a,0x3c,0xe1,0x73,0xf6,0x88,0xcc,0xc4,0x09,0x1c,0xd0,0x89,0x6e,0xa4, +0xf2,0x07,0x68,0xde,0x19,0x6d,0x76,0x05,0x2c,0x3d,0xb0,0x3c,0x37,0xe0,0x29,0x4a, +0x6d,0x04,0x23,0x5e,0x95,0xec,0xfa,0x19,0x6d,0xc8,0xeb,0x6e,0x8a,0x12,0x90,0x07, +0x2c,0x02,0x63,0x7b,0x1a,0x5a,0x03,0xf9,0xc6,0x12,0xe3,0x55,0xde,0xf8,0x55,0x44, +0xd4,0xde,0xe2,0x86,0xb4,0xd3,0x72,0xa2,0x0f,0xc0,0xcc,0x24,0x7d,0x8d,0x76,0x93, +0x86,0x97,0x6c,0x96,0x5e,0x33,0x5c,0xf2,0x78,0x5c,0xb0,0xd8,0xd4,0x79,0x92,0x01, +0xa1,0x63,0xfb,0x06,0x36,0x19,0x25,0x52,0xfc,0xd2,0xef,0xba,0x57,0xf4,0xa5,0xaf, +0x06,0x95,0x85,0x66,0xff,0xb3,0x45,0x31,0xe4,0x8b,0x3d,0x55,0x54,0x0c,0xe5,0x33, +0x3a,0xb4,0x64,0xc3,0xe0,0xf4,0x3f,0x0d,0x9d,0x2b,0x4a,0xe4,0x80,0x20,0x5f,0x42, +0xdb,0xd7,0x58,0x3c,0xd6,0xd3,0xbc,0xe6,0x44,0x97,0x7b,0xed,0x75,0xbb,0xd0,0xcf, +0x5e,0x34,0xe5,0xc2,0x57,0xd0,0x8e,0x67,0xa2,0x58,0xf2,0xf8,0xa2,0x62,0xde,0x52, +0xa1,0x17,0x59,0x97,0xbb,0x78,0x7b,0x0a,0x98,0x87,0x8b,0xb1,0x51,0xbb,0x6e,0x1d, +0x8d,0x91,0xf8,0x86,0x3e,0xbc,0x34,0x48,0x68,0xf8,0xfc,0xaf,0x9f,0x72,0x16,0x69, +0x39,0x14,0xf0,0x1a,0x3d,0x34,0x60,0x3e,0x6d,0x72,0x45,0xe2,0xde,0x97,0xde,0x09, +0xaf,0x7c,0xa8,0x7e,0xb6,0xbc,0x0b,0x5a,0xe6,0xd6,0xb3,0x51,0x01,0x70,0x51,0x1e, +0x44,0xcb,0xd1,0x0f,0x56,0x19,0x7d,0xfb,0x6d,0xeb,0x81,0xb6,0x3f,0xfb,0xbe,0xf5, +0x3a,0x47,0xc6,0xcf,0x99,0xac,0xb6,0xfe,0x79,0x9e,0x82,0x13,0x40,0xbe,0x10,0x5e, +0xda,0x3e,0xd4,0x59,0x93,0xa2,0x7e,0x7e,0x2b,0x79,0x3e,0xea,0x83,0x08,0x67,0xb4, +0xc6,0xdc,0x08,0x3d,0x3e,0x8f,0xf5,0x65,0xe8,0xde,0x75,0xd0,0x02,0x9c,0x2b,0x28, +0xa5,0x62,0xa5,0xca,0xdf,0x2f,0xbf,0xea,0x3d,0x52,0xf8,0x7b,0xbb,0x0a,0xb7,0x1c, +0x06,0xc0,0x24,0x66,0x33,0x40,0x63,0x66,0xea,0xbb,0x94,0x63,0xd2,0x68,0x78,0x56, +0xa3,0xff,0x68,0x1c,0x33,0x31,0xaf,0xb5,0x47,0x81,0xbe,0xef,0x05,0xc5,0xb6,0xfc, +0x90,0x4c,0x6d,0x07,0x98,0x4e,0x91,0xa5,0x84,0xb7,0xa0,0x47,0x3b,0xd2,0xf0,0x57, +0x6b,0xa7,0x8c,0x06,0xdf,0x67,0xae,0x0e,0x9d,0x01,0x72,0x28,0x19,0x9d,0x38,0x22, +0x41,0xf4,0x2f,0x36,0xb1,0x65,0xe3,0x79,0xbe,0x94,0xd0,0x64,0x52,0x64,0x40,0xe2, +0xf6,0x0a,0xb0,0x73,0x37,0x25,0x5c,0x37,0xc1,0x4d,0xd8,0x74,0x53,0x65,0x4b,0x01, +0x21,0x00,0xc5,0x65,0x92,0x26,0xc1,0xa6,0xc0,0xb3,0xd1,0x65,0xd2,0x66,0xfd,0x2e, +0x20,0x46,0xc9,0x55,0x93,0x27,0xeb,0x13,0x28,0xf7,0xd9,0x75,0xd3,0x67,0x42,0x0e, +0xc0,0xf8,0xa4,0x98,0x94,0xa3,0x90,0x17,0xb4,0x4a,0xd2,0xaa,0xa4,0x9d,0x08,0xde, +0xab,0x4c,0x71,0x3a,0x09,0xa4,0x99,0x3e,0x81,0xf9,0x19,0x06,0x01,0x28,0xa7,0xf5, +0x08,0xf1,0x87,0xef,0x9e,0xea,0xd3,0x3d,0x34,0xee,0xd3,0x13,0x84,0xdf,0x79,0xbc, +0x2d,0xec,0x5f,0xe2,0x1a,0x25,0xbf,0x5b,0x65,0xb4,0x77,0xbd,0x25,0x4b,0xaa,0xfb, +0x8f,0x4b,0xc2,0x4c,0x1a,0x2c,0x74,0xb7,0x1e,0x0a,0xd2,0x6c,0x5a,0x6c,0x3e,0xa5, +0x2a,0x4f,0xca,0x5c,0x1b,0x2d,0xd9,0x5c,0xc4,0x4f,0xda,0x7c,0x5b,0x6d,0x83,0x5d, +0x78,0x42,0xc3,0x4d,0x9a,0x2e,0xe4,0x57,0x92,0xbb,0xd3,0x6d,0xda,0x6e,0xc9,0x66, +0x0e,0x08,0xcb,0x5d,0x9b,0x2f,0xec,0x78,0x46,0x49,0xdb,0x7d,0xdb,0x6f,0x80,0x04, +0x64,0xe5,0x0c,0x86,0xc5,0x3f,0x74,0xe4,0x6f,0x5d,0xbc,0x66,0xf2,0x78,0xbb,0xaf, +0x79,0x53,0x48,0x11,0x72,0xc2,0x94,0xc8,0x80,0x5e,0xfc,0xf4,0x8a,0x7c,0x3f,0x7e, +0xa6,0xd2,0x31,0xfa,0x13,0x8f,0x5f,0x7e,0x43,0x54,0x7a,0x55,0xa8,0x7d,0x8f,0xae, +0x5d,0xc3,0xed,0xd1,0x8c,0x3c,0x7d,0xf5,0xd8,0x5c,0xef,0xac,0xb1,0x88,0x3c,0xe4, +0xa7,0x33,0xc4,0xc4,0x32,0x34,0x94,0xf4,0x9e,0x18,0xd4,0xe4,0x72,0x74,0xfb,0x2d, +0x33,0x5b,0xcc,0xd4,0x33,0x35,0xf4,0x53,0x1c,0xd5,0xdc,0xf4,0x73,0x75,0x9a,0xd0, +0xa4,0xd6,0xc5,0xc5,0xb2,0x36,0x25,0x27,0x48,0x17,0xd5,0xe5,0xf2,0x76,0x3d,0xf7, +0x41,0x74,0xcd,0xd5,0xb3,0x37,0x9d,0xe5,0x1f,0x1b,0xdd,0xf5,0xf3,0x77,0xc6,0x9c, +0xd4,0xbc,0x16,0x92,0x60,0xcc,0xa2,0x4a,0xea,0x10,0x92,0xae,0x7c,0x83,0xaa,0x65, +0xa9,0xc2,0x7e,0x18,0x7d,0xae,0x66,0xda,0x2a,0xe6,0x29,0x98,0xfc,0x5e,0x47,0x8f, +0x60,0xea,0x04,0x4b,0x52,0x76,0xdb,0xcb,0xab,0x85,0x97,0x6f,0x7b,0x3c,0x0e,0x5f, +0x0b,0x5e,0x27,0x3e,0xc6,0x3a,0x67,0xe6,0x1c,0xa7,0x40,0xac,0xff,0xbb,0xee,0x6a, +0xf5,0xf3,0xc6,0xcc,0x3a,0x3c,0x26,0x2e,0xc0,0x1d,0xd6,0xec,0x7a,0x7c,0xb1,0xfc, +0xa9,0x15,0xce,0xdc,0x3b,0x3d,0xf2,0xba,0xe8,0x53,0xde,0xfc,0x7b,0x7d,0xef,0x6b, +0x2d,0x39,0xc7,0xcd,0xba,0x3e,0xbb,0x69,0x16,0x7e,0xd7,0xed,0xfa,0x7e,0xf9,0xbb, +0x5c,0x19,0xcf,0xdd,0xbb,0x3f,0x37,0x7f,0x17,0x1e,0xdf,0xfd,0xfb,0x7f,0xf4,0x44, +0xa6,0x7e,0x40,0x39,0x30,0x1c,0xf0,0x36,0xb8,0xbe,0x1c,0xa4,0x55,0x65,0xc3,0x69, +0x9a,0xbc,0x2c,0xe7,0xb6,0xa3,0x4c,0xb6,0x0d,0x9f,0xd7,0x2a,0x9d,0x3f,0x5b,0x87, +0xc8,0x92,0x1e,0x5c,0x6d,0x28,0x48,0x65,0x66,0x8c,0x89,0xd4,0x8c,0x46,0x81,0xb1, +0x02,0xa4,0x9b,0xe8,0x17,0xeb,0xf9,0x27,0x54,0x82,0x3e,0x24,0x0a,0xe1,0x88,0xe1, +0x00,0x24,0xe0,0x46,0x16,0xa4,0x78,0x50,0xe7,0x6b,0xf0,0x66,0x56,0xe4,0xf8,0xd0, +0x06,0xf2,0xe8,0x56,0x17,0xa5,0x98,0x4d,0xb3,0x75,0xf8,0x76,0x57,0xe5,0x88,0xc7, +0xc2,0x9a,0xe1,0x47,0x96,0xa6,0x76,0x70,0x1d,0x16,0xf1,0x67,0xd6,0xe6,0x53,0xb1, +0x05,0x8f,0xe9,0x57,0x97,0xa7,0xce,0x6f,0xe3,0x3a,0xf9,0x77,0xd7,0xe7,0xb2,0x14, +0x54,0x7c,0x82,0x6c,0xab,0xcd,0x99,0x51,0x99,0x35,0x52,0x11,0xa0,0xea,0x6a,0xdc, +0xe7,0xc5,0x13,0x4f,0xbe,0x76,0x62,0x07,0xcf,0xc1,0x89,0x27,0x79,0x87,0xa0,0x11, +0xd0,0x3e,0x9b,0xdf,0x41,0xd5,0x71,0x4b,0xd4,0x4a,0x00,0x32,0x24,0x3a,0xdb,0x5d, +0x27,0x70,0x16,0x42,0x62,0xad,0xef,0x49,0x6e,0x8a,0xfb,0x00,0xd5,0x87,0x93,0x28, +0x4d,0x53,0xe2,0x4e,0x1e,0xac,0xad,0x62,0x60,0x8a,0xf2,0x6e,0x5e,0xec,0x12,0xd8, +0x0e,0x9a,0xea,0x5e,0x1f,0xad,0x0a,0xa5,0xa0,0x8c,0xfa,0x7e,0x5f,0xed,0x1b,0x29, +0xcd,0x7e,0xe3,0x4f,0x9e,0xae,0x81,0xad,0x6c,0x82,0xf3,0x6f,0xde,0xee,0xd0,0xb9, +0x23,0x72,0xeb,0x5f,0x9f,0xaf,0xd3,0xd8,0xb0,0x0f,0xfb,0x7f,0xdf,0xef,0x56,0x27, +0xa1,0x97,0x64,0x92,0xc8,0x45,0xf4,0xb3,0x48,0xd6,0x03,0x5b,0x38,0xbe,0x2d,0x4d, +0x86,0xef,0x1b,0x8f,0x33,0x71,0x44,0x96,0xea,0xd3,0x45,0x70,0xd7,0xb4,0xce,0x74, +0xa2,0x72,0x61,0x03,0xf0,0x47,0x3d,0x06,0x87,0xf2,0xc5,0xe1,0x56,0x0c,0x16,0xd5, +0x07,0xdd,0x1a,0xa8,0xe1,0xf1,0x8a,0xb2,0x68,0xdf,0xcf,0x31,0xed,0xbf,0x6c,0xf5, +0x87,0xf8,0xe4,0xc6,0x36,0xb4,0x14,0xa2,0x6a,0x29,0xf4,0xe6,0x76,0xf4,0xe8,0x15, +0xa7,0xb5,0xec,0xd6,0x37,0xb5,0x26,0xf3,0xc4,0x94,0xfc,0xf6,0x77,0xf5,0x86,0x84, +0x78,0x9e,0xe5,0xc7,0xb6,0xb6,0x0d,0x61,0xe7,0x96,0xf5,0xe7,0xf6,0xf6,0xc1,0x13, +0x04,0xd6,0xed,0xd7,0xb7,0xb7,0x1d,0xb3,0xfa,0x5c,0xfd,0xf7,0xf7,0xf7,0x52,0xae, +0xf8,0x28,0x24,0xb1,0xb9,0xbf,0x5e,0xb4,0x2a,0x2c,0xc6,0x8e,0x64,0x35,0x09,0x1a, +0xaa,0x3e,0x47,0x1a,0x79,0xa5,0x81,0xda,0xda,0x7d,0x84,0x5c,0xff,0xf1,0x80,0x97, +0x7c,0x6a,0x4f,0x2c,0xba,0x1a,0xf1,0x2f,0xa4,0xad,0x27,0x2d,0xfd,0x1d,0x87,0x3d, +0xab,0x5b,0x3f,0x58,0xbf,0x4e,0xf9,0xbd,0x25,0x19,0x4d,0xdd,0xbe,0x24,0x8a,0x4a, +0xd2,0xbc,0xe6,0xce,0x3e,0xbc,0xf2,0x08,0xec,0xd4,0xf6,0xee,0x7e,0xfc,0x56,0x29, +0x77,0x39,0xee,0xde,0x3f,0xbd,0x1e,0xba,0xc2,0x20,0xfe,0xfe,0x7f,0xfd,0xcb,0x49, +0xaf,0xcb,0xe7,0xcf,0xbe,0xbe,0xfe,0x99,0x4d,0x9f,0xf7,0xef,0xfe,0xfe,0x80,0xc7, +0x29,0x6a,0xef,0xdf,0xbf,0xbf,0x07,0xdf,0x6d,0xd7,0xff,0xff,0xff,0xff,0x00,0x00, +0x00,0x00,0x80,0x04,0x10,0x20,0x10,0x20,0x40,0x40,0x90,0x24,0x50,0x60,0x08,0x10, +0x01,0x01,0x88,0x14,0x11,0x21,0x18,0x30,0x41,0x41,0x98,0x34,0x51,0x61,0x01,0x01, +0x80,0x02,0x81,0x05,0x90,0x22,0x11,0x21,0xc0,0x42,0x91,0x25,0xd0,0x62,0x09,0x11, +0x81,0x03,0x89,0x15,0x91,0x23,0x19,0x31,0xc1,0x43,0x99,0x35,0xd1,0x63,0x40,0x40, +0x02,0x04,0xc0,0x44,0x12,0x24,0x50,0x60,0x42,0x44,0xd0,0x64,0x52,0x64,0x48,0x50, +0x03,0x05,0xc8,0x54,0x13,0x25,0x58,0x70,0x43,0x45,0xd8,0x74,0x53,0x65,0x41,0x41, +0x82,0x06,0xc1,0x45,0x92,0x26,0x51,0x61,0xc2,0x46,0xd1,0x65,0xd2,0x66,0x49,0x51, +0x83,0x07,0xc9,0x55,0x93,0x27,0x59,0x71,0xc3,0x47,0xd9,0x75,0xd3,0x67,0x02,0x08, +0x08,0x08,0x82,0x0c,0x18,0x28,0x12,0x28,0x48,0x48,0x92,0x2c,0x58,0x68,0x0a,0x18, +0x09,0x09,0x8a,0x1c,0x19,0x29,0x1a,0x38,0x49,0x49,0x9a,0x3c,0x59,0x69,0x03,0x09, +0x88,0x0a,0x83,0x0d,0x98,0x2a,0x13,0x29,0xc8,0x4a,0x93,0x2d,0xd8,0x6a,0x0b,0x19, +0x89,0x0b,0x8b,0x1d,0x99,0x2b,0x1b,0x39,0xc9,0x4b,0x9b,0x3d,0xd9,0x6b,0x42,0x48, +0x0a,0x0c,0xc2,0x4c,0x1a,0x2c,0x52,0x68,0x4a,0x4c,0xd2,0x6c,0x5a,0x6c,0x4a,0x58, +0x0b,0x0d,0xca,0x5c,0x1b,0x2d,0x5a,0x78,0x4b,0x4d,0xda,0x7c,0x5b,0x6d,0x43,0x49, +0x8a,0x0e,0xc3,0x4d,0x9a,0x2e,0x53,0x69,0xca,0x4e,0xd3,0x6d,0xda,0x6e,0x4b,0x59, +0x8b,0x0f,0xcb,0x5d,0x9b,0x2f,0x5b,0x79,0xcb,0x4f,0xdb,0x7d,0xdb,0x6f,0x04,0x80, +0x20,0x10,0x84,0x84,0x30,0x30,0x14,0xa0,0x60,0x50,0x94,0xa4,0x70,0x70,0x0c,0x90, +0x21,0x11,0x8c,0x94,0x31,0x31,0x1c,0xb0,0x61,0x51,0x9c,0xb4,0x71,0x71,0x05,0x81, +0xa0,0x12,0x85,0x85,0xb0,0x32,0x15,0xa1,0xe0,0x52,0x95,0xa5,0xf0,0x72,0x0d,0x91, +0xa1,0x13,0x8d,0x95,0xb1,0x33,0x1d,0xb1,0xe1,0x53,0x9d,0xb5,0xf1,0x73,0x44,0xc0, +0x22,0x14,0xc4,0xc4,0x32,0x34,0x54,0xe0,0x62,0x54,0xd4,0xe4,0x72,0x74,0x4c,0xd0, +0x23,0x15,0xcc,0xd4,0x33,0x35,0x5c,0xf0,0x63,0x55,0xdc,0xf4,0x73,0x75,0x45,0xc1, +0xa2,0x16,0xc5,0xc5,0xb2,0x36,0x55,0xe1,0xe2,0x56,0xd5,0xe5,0xf2,0x76,0x4d,0xd1, +0xa3,0x17,0xcd,0xd5,0xb3,0x37,0x5d,0xf1,0xe3,0x57,0xdd,0xf5,0xf3,0x77,0x06,0x88, +0x28,0x18,0x86,0x8c,0x38,0x38,0x16,0xa8,0x68,0x58,0x96,0xac,0x78,0x78,0x0e,0x98, +0x29,0x19,0x8e,0x9c,0x39,0x39,0x1e,0xb8,0x69,0x59,0x9e,0xbc,0x79,0x79,0x07,0x89, +0xa8,0x1a,0x87,0x8d,0xb8,0x3a,0x17,0xa9,0xe8,0x5a,0x97,0xad,0xf8,0x7a,0x0f,0x99, +0xa9,0x1b,0x8f,0x9d,0xb9,0x3b,0x1f,0xb9,0xe9,0x5b,0x9f,0xbd,0xf9,0x7b,0x46,0xc8, +0x2a,0x1c,0xc6,0xcc,0x3a,0x3c,0x56,0xe8,0x6a,0x5c,0xd6,0xec,0x7a,0x7c,0x4e,0xd8, +0x2b,0x1d,0xce,0xdc,0x3b,0x3d,0x5e,0xf8,0x6b,0x5d,0xde,0xfc,0x7b,0x7d,0x47,0xc9, +0xaa,0x1e,0xc7,0xcd,0xba,0x3e,0x57,0xe9,0xea,0x5e,0xd7,0xed,0xfa,0x7e,0x4f,0xd9, +0xab,0x1f,0xcf,0xdd,0xbb,0x3f,0x5f,0xf9,0xeb,0x5f,0xdf,0xfd,0xfb,0x7f,0x20,0x02, +0x04,0x80,0xa0,0x06,0x14,0xa0,0x30,0x22,0x44,0xc0,0xb0,0x26,0x54,0xe0,0x28,0x12, +0x05,0x81,0xa8,0x16,0x15,0xa1,0x38,0x32,0x45,0xc1,0xb8,0x36,0x55,0xe1,0x21,0x03, +0x84,0x82,0xa1,0x07,0x94,0xa2,0x31,0x23,0xc4,0xc2,0xb1,0x27,0xd4,0xe2,0x29,0x13, +0x85,0x83,0xa9,0x17,0x95,0xa3,0x39,0x33,0xc5,0xc3,0xb9,0x37,0xd5,0xe3,0x60,0x42, +0x06,0x84,0xe0,0x46,0x16,0xa4,0x70,0x62,0x46,0xc4,0xf0,0x66,0x56,0xe4,0x68,0x52, +0x07,0x85,0xe8,0x56,0x17,0xa5,0x78,0x72,0x47,0xc5,0xf8,0x76,0x57,0xe5,0x61,0x43, +0x86,0x86,0xe1,0x47,0x96,0xa6,0x71,0x63,0xc6,0xc6,0xf1,0x67,0xd6,0xe6,0x69,0x53, +0x87,0x87,0xe9,0x57,0x97,0xa7,0x79,0x73,0xc7,0xc7,0xf9,0x77,0xd7,0xe7,0x22,0x0a, +0x0c,0x88,0xa2,0x0e,0x1c,0xa8,0x32,0x2a,0x4c,0xc8,0xb2,0x2e,0x5c,0xe8,0x2a,0x1a, +0x0d,0x89,0xaa,0x1e,0x1d,0xa9,0x3a,0x3a,0x4d,0xc9,0xba,0x3e,0x5d,0xe9,0x23,0x0b, +0x8c,0x8a,0xa3,0x0f,0x9c,0xaa,0x33,0x2b,0xcc,0xca,0xb3,0x2f,0xdc,0xea,0x2b,0x1b, +0x8d,0x8b,0xab,0x1f,0x9d,0xab,0x3b,0x3b,0xcd,0xcb,0xbb,0x3f,0xdd,0xeb,0x62,0x4a, +0x0e,0x8c,0xe2,0x4e,0x1e,0xac,0x72,0x6a,0x4e,0xcc,0xf2,0x6e,0x5e,0xec,0x6a,0x5a, +0x0f,0x8d,0xea,0x5e,0x1f,0xad,0x7a,0x7a,0x4f,0xcd,0xfa,0x7e,0x5f,0xed,0x63,0x4b, +0x8e,0x8e,0xe3,0x4f,0x9e,0xae,0x73,0x6b,0xce,0xce,0xf3,0x6f,0xde,0xee,0x6b,0x5b, +0x8f,0x8f,0xeb,0x5f,0x9f,0xaf,0x7b,0x7b,0xcf,0xcf,0xfb,0x7f,0xdf,0xef,0x24,0x82, +0x24,0x90,0xa4,0x86,0x34,0xb0,0x34,0xa2,0x64,0xd0,0xb4,0xa6,0x74,0xf0,0x2c,0x92, +0x25,0x91,0xac,0x96,0x35,0xb1,0x3c,0xb2,0x65,0xd1,0xbc,0xb6,0x75,0xf1,0x25,0x83, +0xa4,0x92,0xa5,0x87,0xb4,0xb2,0x35,0xa3,0xe4,0xd2,0xb5,0xa7,0xf4,0xf2,0x2d,0x93, +0xa5,0x93,0xad,0x97,0xb5,0xb3,0x3d,0xb3,0xe5,0xd3,0xbd,0xb7,0xf5,0xf3,0x64,0xc2, +0x26,0x94,0xe4,0xc6,0x36,0xb4,0x74,0xe2,0x66,0xd4,0xf4,0xe6,0x76,0xf4,0x6c,0xd2, +0x27,0x95,0xec,0xd6,0x37,0xb5,0x7c,0xf2,0x67,0xd5,0xfc,0xf6,0x77,0xf5,0x65,0xc3, +0xa6,0x96,0xe5,0xc7,0xb6,0xb6,0x75,0xe3,0xe6,0xd6,0xf5,0xe7,0xf6,0xf6,0x6d,0xd3, +0xa7,0x97,0xed,0xd7,0xb7,0xb7,0x7d,0xf3,0xe7,0xd7,0xfd,0xf7,0xf7,0xf7,0x26,0x8a, +0x2c,0x98,0xa6,0x8e,0x3c,0xb8,0x36,0xaa,0x6c,0xd8,0xb6,0xae,0x7c,0xf8,0x2e,0x9a, +0x2d,0x99,0xae,0x9e,0x3d,0xb9,0x3e,0xba,0x6d,0xd9,0xbe,0xbe,0x7d,0xf9,0x27,0x8b, +0xac,0x9a,0xa7,0x8f,0xbc,0xba,0x37,0xab,0xec,0xda,0xb7,0xaf,0xfc,0xfa,0x2f,0x9b, +0xad,0x9b,0xaf,0x9f,0xbd,0xbb,0x3f,0xbb,0xed,0xdb,0xbf,0xbf,0xfd,0xfb,0x66,0xca, +0x2e,0x9c,0xe6,0xce,0x3e,0xbc,0x76,0xea,0x6e,0xdc,0xf6,0xee,0x7e,0xfc,0x6e,0xda, +0x2f,0x9d,0xee,0xde,0x3f,0xbd,0x7e,0xfa,0x6f,0xdd,0xfe,0xfe,0x7f,0xfd,0x67,0xcb, +0xae,0x9e,0xe7,0xcf,0xbe,0xbe,0x77,0xeb,0xee,0xde,0xf7,0xef,0xfe,0xfe,0x6f,0xdb, +0xaf,0x9f,0xef,0xdf,0xbf,0xbf,0x7f,0xfb,0xef,0xdf,0xff,0xff,0xff,0xff,0x00,0x00, +0x00,0x00,0x80,0x04,0x10,0x20,0x10,0x20,0x40,0x40,0x90,0x24,0x50,0x60,0x08,0x10, +0x01,0x01,0x88,0x14,0x11,0x21,0x18,0x30,0x41,0x41,0x98,0x34,0x51,0x61,0x01,0x01, +0x80,0x02,0x81,0x05,0x90,0x22,0x11,0x21,0xc0,0x42,0x91,0x25,0xd0,0x62,0x09,0x11, +0x81,0x03,0x89,0x15,0x91,0x23,0x19,0x31,0xc1,0x43,0x99,0x35,0xd1,0x63,0x40,0x40, +0x02,0x04,0xc0,0x44,0x12,0x24,0x50,0x60,0x42,0x44,0xd0,0x64,0x52,0x64,0x48,0x50, +0x03,0x05,0xc8,0x54,0x13,0x25,0x58,0x70,0x43,0x45,0xd8,0x74,0x53,0x65,0x41,0x41, +0x82,0x06,0xc1,0x45,0x92,0x26,0x51,0x61,0xc2,0x46,0xd1,0x65,0xd2,0x66,0x49,0x51, +0x83,0x07,0xc9,0x55,0x93,0x27,0x59,0x71,0xc3,0x47,0xd9,0x75,0xd3,0x67,0x02,0x08, +0x08,0x08,0x82,0x0c,0x18,0x28,0x12,0x28,0x48,0x48,0x92,0x2c,0x58,0x68,0x0a,0x18, +0x09,0x09,0x8a,0x1c,0x19,0x29,0x1a,0x38,0x49,0x49,0x9a,0x3c,0x59,0x69,0x03,0x09, +0x88,0x0a,0x83,0x0d,0x98,0x2a,0x13,0x29,0xc8,0x4a,0x93,0x2d,0xd8,0x6a,0x0b,0x19, +0x89,0x0b,0x8b,0x1d,0x99,0x2b,0x1b,0x39,0xc9,0x4b,0x9b,0x3d,0xd9,0x6b,0x42,0x48, +0x0a,0x0c,0xc2,0x4c,0x1a,0x2c,0x52,0x68,0x4a,0x4c,0xd2,0x6c,0x5a,0x6c,0x4a,0x58, +0x0b,0x0d,0xca,0x5c,0x1b,0x2d,0x5a,0x78,0x4b,0x4d,0xda,0x7c,0x5b,0x6d,0x43,0x49, +0x8a,0x0e,0xc3,0x4d,0x9a,0x2e,0x53,0x69,0xca,0x4e,0xd3,0x6d,0xda,0x6e,0x4b,0x59, +0x8b,0x0f,0xcb,0x5d,0x9b,0x2f,0x5b,0x79,0xcb,0x4f,0xdb,0x7d,0xdb,0x6f,0x04,0x80, +0x20,0x10,0x84,0x84,0x30,0x30,0x14,0xa0,0x60,0x50,0x94,0xa4,0x70,0x70,0x0c,0x90, +0x21,0x11,0x8c,0x94,0x31,0x31,0x1c,0xb0,0x61,0x51,0x9c,0xb4,0x71,0x71,0x05,0x81, +0xa0,0x12,0x85,0x85,0xb0,0x32,0x15,0xa1,0xe0,0x52,0x95,0xa5,0xf0,0x72,0x0d,0x91, +0xa1,0x13,0x8d,0x95,0xb1,0x33,0x1d,0xb1,0xe1,0x53,0x9d,0xb5,0xf1,0x73,0x44,0xc0, +0x22,0x14,0xc4,0xc4,0x32,0x34,0x54,0xe0,0x62,0x54,0xd4,0xe4,0x72,0x74,0x4c,0xd0, +0x23,0x15,0xcc,0xd4,0x33,0x35,0x5c,0xf0,0x63,0x55,0xdc,0xf4,0x73,0x75,0x45,0xc1, +0xa2,0x16,0xc5,0xc5,0xb2,0x36,0x55,0xe1,0xe2,0x56,0xd5,0xe5,0xf2,0x76,0x4d,0xd1, +0xa3,0x17,0xcd,0xd5,0xb3,0x37,0x5d,0xf1,0xe3,0x57,0xdd,0xf5,0xf3,0x77,0x06,0x88, +0x28,0x18,0x86,0x8c,0x38,0x38,0x16,0xa8,0x68,0x58,0x96,0xac,0x78,0x78,0x0e,0x98, +0x29,0x19,0x8e,0x9c,0x39,0x39,0x1e,0xb8,0x69,0x59,0x9e,0xbc,0x79,0x79,0x07,0x89, +0xa8,0x1a,0x87,0x8d,0xb8,0x3a,0x17,0xa9,0xe8,0x5a,0x97,0xad,0xf8,0x7a,0x0f,0x99, +0xa9,0x1b,0x8f,0x9d,0xb9,0x3b,0x1f,0xb9,0xe9,0x5b,0x9f,0xbd,0xf9,0x7b,0x46,0xc8, +0x2a,0x1c,0xc6,0xcc,0x3a,0x3c,0x56,0xe8,0x6a,0x5c,0xd6,0xec,0x7a,0x7c,0x4e,0xd8, +0x2b,0x1d,0xce,0xdc,0x3b,0x3d,0x5e,0xf8,0x6b,0x5d,0xde,0xfc,0x7b,0x7d,0x47,0xc9, +0xaa,0x1e,0xc7,0xcd,0xba,0x3e,0x57,0xe9,0xea,0x5e,0xd7,0xed,0xfa,0x7e,0x4f,0xd9, +0xab,0x1f,0xcf,0xdd,0xbb,0x3f,0x5f,0xf9,0xeb,0x5f,0xdf,0xfd,0xfb,0x7f,0x20,0x02, +0x04,0x80,0xa0,0x06,0x14,0xa0,0x30,0x22,0x44,0xc0,0xb0,0x26,0x54,0xe0,0x28,0x12, +0x05,0x81,0xa8,0x16,0x15,0xa1,0x38,0x32,0x45,0xc1,0xb8,0x36,0x55,0xe1,0x21,0x03, +0x84,0x82,0xa1,0x07,0x94,0xa2,0x31,0x23,0xc4,0xc2,0xb1,0x27,0xd4,0xe2,0x29,0x13, +0x85,0x83,0xa9,0x17,0x95,0xa3,0x39,0x33,0xc5,0xc3,0xb9,0x37,0xd5,0xe3,0x60,0x42, +0x06,0x84,0xe0,0x46,0x16,0xa4,0x70,0x62,0x46,0xc4,0xf0,0x66,0x56,0xe4,0x68,0x52, +0x07,0x85,0xe8,0x56,0x17,0xa5,0x78,0x72,0x47,0xc5,0xf8,0x76,0x57,0xe5,0x61,0x43, +0x86,0x86,0xe1,0x47,0x96,0xa6,0x71,0x63,0xc6,0xc6,0xf1,0x67,0xd6,0xe6,0x69,0x53, +0x87,0x87,0xe9,0x57,0x97,0xa7,0x79,0x73,0xc7,0xc7,0xf9,0x77,0xd7,0xe7,0x22,0x0a, +0x0c,0x88,0xa2,0x0e,0x1c,0xa8,0x32,0x2a,0x4c,0xc8,0xb2,0x2e,0x5c,0xe8,0x2a,0x1a, +0x0d,0x89,0xaa,0x1e,0x1d,0xa9,0x3a,0x3a,0x4d,0xc9,0xba,0x3e,0x5d,0xe9,0x23,0x0b, +0x8c,0x8a,0xa3,0x0f,0x9c,0xaa,0x33,0x2b,0xcc,0xca,0xb3,0x2f,0xdc,0xea,0x2b,0x1b, +0x8d,0x8b,0xab,0x1f,0x9d,0xab,0x3b,0x3b,0xcd,0xcb,0xbb,0x3f,0xdd,0xeb,0x62,0x4a, +0x0e,0x8c,0xe2,0x4e,0x1e,0xac,0x72,0x6a,0x4e,0xcc,0xf2,0x6e,0x5e,0xec,0x6a,0x5a, +0x0f,0x8d,0xea,0x5e,0x1f,0xad,0x7a,0x7a,0x4f,0xcd,0xfa,0x7e,0x5f,0xed,0x63,0x4b, +0x8e,0x8e,0xe3,0x4f,0x9e,0xae,0x73,0x6b,0xce,0xce,0xf3,0x6f,0xde,0xee,0x6b,0x5b, +0x8f,0x8f,0xeb,0x5f,0x9f,0xaf,0x7b,0x7b,0xcf,0xcf,0xfb,0x7f,0xdf,0xef,0x24,0x82, +0x24,0x90,0xa4,0x86,0x34,0xb0,0x34,0xa2,0x64,0xd0,0xb4,0xa6,0x74,0xf0,0x2c,0x92, +0x25,0x91,0xac,0x96,0x35,0xb1,0x3c,0xb2,0x65,0xd1,0xbc,0xb6,0x75,0xf1,0x25,0x83, +0xa4,0x92,0xa5,0x87,0xb4,0xb2,0x35,0xa3,0xe4,0xd2,0xb5,0xa7,0xf4,0xf2,0x2d,0x93, +0xa5,0x93,0xad,0x97,0xb5,0xb3,0x3d,0xb3,0xe5,0xd3,0xbd,0xb7,0xf5,0xf3,0x64,0xc2, +0x26,0x94,0xe4,0xc6,0x36,0xb4,0x74,0xe2,0x66,0xd4,0xf4,0xe6,0x76,0xf4,0x6c,0xd2, +0x27,0x95,0xec,0xd6,0x37,0xb5,0x7c,0xf2,0x67,0xd5,0xfc,0xf6,0x77,0xf5,0x65,0xc3, +0xa6,0x96,0xe5,0xc7,0xb6,0xb6,0x75,0xe3,0xe6,0xd6,0xf5,0xe7,0xf6,0xf6,0x6d,0xd3, +0xa7,0x97,0xed,0xd7,0xb7,0xb7,0x7d,0xf3,0xe7,0xd7,0xfd,0xf7,0xf7,0xf7,0x26,0x8a, +0x2c,0x98,0xa6,0x8e,0x3c,0xb8,0x36,0xaa,0x6c,0xd8,0xb6,0xae,0x7c,0xf8,0x2e,0x9a, +0x2d,0x99,0xae,0x9e,0x3d,0xb9,0x3e,0xba,0x6d,0xd9,0xbe,0xbe,0x7d,0xf9,0x27,0x8b, +0xac,0x9a,0xa7,0x8f,0xbc,0xba,0x37,0xab,0xec,0xda,0xb7,0xaf,0xfc,0xfa,0x2f,0x9b, +0xad,0x9b,0xaf,0x9f,0xbd,0xbb,0x3f,0xbb,0xed,0xdb,0xbf,0xbf,0xfd,0xfb,0x66,0xca, +0x2e,0x9c,0xe6,0xce,0x3e,0xbc,0x76,0xea,0x6e,0xdc,0xf6,0xee,0x7e,0xfc,0x6e,0xda, +0x2f,0x9d,0xee,0xde,0x3f,0xbd,0x7e,0xfa,0x6f,0xdd,0xfe,0xfe,0x7f,0xfd,0x67,0xcb, +0xae,0x9e,0xe7,0xcf,0xbe,0xbe,0x77,0xeb,0xee,0xde,0xf7,0xef,0xfe,0xfe,0x6f,0xdb, +0xaf,0x9f,0xef,0xdf,0xbf,0xbf,0x7f,0xfb,0xef,0xdf,0xff,0xff,0x90,0xaf, diff --git a/drivers/input/touchscreen/GT917D/FW_EACH.txt b/drivers/input/touchscreen/GT917D/FW_EACH.txt new file mode 100644 index 0000000000000..09980ef2ca352 --- /dev/null +++ b/drivers/input/touchscreen/GT917D/FW_EACH.txt @@ -0,0 +1,11265 @@ + 0x00,0x01,0x60,0x00,0x39,0x31,0x35,0x4C,0x00,0x00,0x00,0x00,0x10,0x62,0x80,0x00, + + 0x55,0x40,0xBD,0xDA,0xFD,0x24,0x34,0xDF,0x44,0x40,0xAF,0xEB,0xE9,0x2C,0xC8,0xB4, + + 0x25,0x41,0x8C,0x90,0x5F,0xA4,0x22,0xB7,0xED,0x5E,0x58,0x35,0x89,0x94,0x01,0x88, + + 0x86,0x02,0x72,0xFC,0x81,0xD9,0x39,0x25,0xC8,0xE2,0xE1,0xE3,0x7A,0x23,0x09,0x05, + + 0x87,0x03,0xB3,0xE6,0xF0,0x25,0x23,0xB6,0x6D,0x4B,0x83,0x4A,0xAE,0x73,0x1E,0xA2, + + 0x12,0xF9,0x91,0xBE,0x36,0x39,0x28,0x69,0xEF,0x76,0xA8,0xB2,0xB3,0xB8,0x37,0x10, + + 0x4F,0x13,0x6D,0xB6,0xF3,0xB4,0xFC,0x02,0xCD,0xEA,0xE2,0x2E,0xE8,0x70,0xD6,0xBE, + + 0x7B,0x65,0x66,0xA7,0x72,0xBA,0xC1,0x6A,0x46,0x12,0x2C,0x17,0x0B,0x39,0x01,0x45, + + 0x48,0x08,0xB2,0x3E,0x47,0x28,0x21,0x81,0xCB,0x21,0x79,0x51,0x61,0x67,0xC0,0xAC, + + 0x2C,0x48,0xCA,0x9B,0xB9,0xA1,0x96,0xDE,0xC8,0x68,0x46,0xAA,0xBE,0x26,0x9A,0xBC, + + 0x2F,0x49,0x04,0xFC,0x9B,0x23,0x3A,0x11,0xA8,0x2F,0x64,0x18,0xE7,0x49,0xCB,0x4A, + + 0xC0,0x01,0x32,0x6D,0xC8,0x68,0xEB,0x21,0x17,0xC5,0xE3,0x6B,0x7A,0x94,0xC8,0xF0, + + 0x2A,0x6E,0xED,0x6F,0x3A,0x2D,0xAF,0xD3,0x8A,0xAB,0x19,0x36,0x5D,0x3F,0xBA,0x6C, + + 0x87,0x1A,0xF0,0x74,0xE9,0x78,0xC2,0xC7,0x42,0x4E,0xFE,0xC7,0x5A,0x56,0xF3,0x7C, + + 0x8E,0xA3,0xB1,0x32,0xCF,0x22,0xFA,0x0B,0xC7,0x1E,0x7F,0x9E,0x9B,0x91,0x3C,0x54, + + 0x41,0x01,0xBB,0x36,0x7A,0xBF,0x6D,0x6F,0xF2,0xE1,0x22,0x6D,0xA2,0xF3,0x70,0xF9, + + 0x66,0x3F,0xF9,0x06,0x2B,0x20,0x25,0x7E,0x6A,0xE0,0x70,0x26,0x28,0xC2,0x04,0x80, + + 0x78,0xF8,0xD4,0x9B,0x1A,0xA4,0x74,0x60,0xFF,0xDD,0xEC,0x96,0x04,0xAF,0xDE,0xB0, + + 0x26,0xE9,0xFA,0xD2,0x97,0x7D,0x6F,0x97,0x9E,0xDB,0x6F,0xB4,0x49,0x8C,0x4F,0x28, + + 0x82,0x11,0x55,0x9E,0x9E,0x7C,0xCE,0xA0,0x6E,0x5B,0x05,0x1F,0xF0,0x02,0x02,0x1D, + + 0x24,0xE6,0xF9,0x68,0x8F,0x71,0xCA,0x11,0x08,0x63,0xBA,0x57,0x31,0x8C,0x64,0xC5, + + 0x24,0x34,0x57,0x9F,0x08,0xEB,0xF0,0x8B,0xEC,0xFB,0xEE,0x0F,0xC5,0x35,0xE0,0xA2, + + 0xFD,0xEA,0xFE,0xED,0xE6,0x96,0xCC,0x1A,0xDD,0x75,0x23,0x8A,0x5D,0xAA,0x6B,0x61, + + 0x69,0xF6,0xFF,0x7D,0x41,0x6B,0x2D,0xC6,0x5B,0x30,0x8C,0x6D,0x0F,0x87,0x77,0x4F, + + 0x54,0x56,0xB5,0x2E,0x52,0xA4,0x19,0x82,0x67,0x66,0xE2,0x50,0x08,0xEA,0xC6,0x59, + + 0xE3,0x03,0x82,0x86,0xC4,0x3B,0x5C,0x35,0x9F,0xD5,0xA1,0x4E,0x5C,0xF5,0x71,0x1A, + + 0xA1,0x11,0xDA,0x18,0x31,0x8D,0x9D,0xE7,0x2A,0x55,0x9F,0xC3,0x05,0x86,0xF8,0xFB, + + 0x4F,0x04,0x47,0x8C,0x60,0xCF,0xF3,0x8E,0xC9,0x7A,0xBC,0x47,0x93,0x75,0xD0,0xDB, + + 0xDE,0xE3,0x50,0x95,0x3E,0x3C,0x09,0xDB,0xC8,0x4E,0x24,0x18,0x0E,0xE6,0x68,0x2A, + + 0x99,0x79,0xBD,0xE8,0x51,0x33,0x28,0xEE,0x83,0x38,0x02,0x16,0xE3,0x1F,0x36,0x32, + + 0xC2,0x59,0x71,0xE1,0xC4,0xE0,0x26,0x8B,0xC8,0x38,0x3B,0x97,0xED,0x75,0x7F,0xE1, + + 0x09,0xB2,0xC6,0x3C,0x3E,0x3E,0x86,0x1A,0x66,0x43,0xFA,0x6D,0x35,0xDE,0x09,0xDF, + + 0x88,0x5F,0x1B,0x23,0x62,0x5C,0x27,0xDD,0xE8,0x6F,0x59,0x87,0x65,0xE0,0xB0,0xA6, + + 0x04,0xC0,0xE8,0x94,0xB7,0xEC,0x22,0x3A,0xD5,0xAC,0x14,0x44,0x70,0xEA,0x28,0x12, + + 0x05,0xC1,0xB2,0xEA,0x15,0xE3,0x32,0x12,0xD4,0xA5,0x43,0x32,0xF8,0xA0,0x21,0x1F, + + 0x84,0x82,0x12,0x41,0xD4,0x59,0xE5,0x71,0x87,0x32,0x31,0x50,0xF0,0x95,0x29,0x9F, + + 0x85,0x83,0x65,0x42,0x17,0xAB,0x31,0x23,0x26,0x09,0x9C,0x31,0x41,0x87,0x90,0x91, + + 0xE7,0xE8,0x45,0xA4,0xF6,0x15,0x08,0x45,0xE7,0x85,0x88,0x29,0xED,0xFF,0x13,0x2C, + + 0x25,0x68,0x97,0x3D,0xCB,0xAA,0xD8,0x98,0x83,0xCA,0x43,0xD3,0xA0,0x58,0x06,0xB8, + + 0x67,0x10,0xCA,0xEF,0xFE,0xA9,0x39,0x6A,0x7F,0x67,0xB0,0x18,0xAA,0x19,0x2F,0xF5, + + 0x4C,0x0A,0xDB,0x6F,0x4E,0x04,0x78,0x05,0xE3,0xB0,0x2D,0x8C,0x26,0x84,0x22,0x0A, + + 0x0C,0xC8,0x57,0xFE,0x14,0xA7,0x12,0x2B,0x09,0x07,0x88,0xA9,0x78,0x15,0x2A,0x1A, + + 0x0D,0xC9,0xF3,0x88,0x7A,0xB1,0x3E,0x3E,0x0D,0xD9,0xC2,0x61,0x8D,0xE6,0x23,0x2A, + + 0x8C,0x8A,0x4B,0x21,0x1B,0x5F,0xDC,0x59,0x4C,0xBA,0x94,0xCD,0x3C,0xFF,0xA0,0x58, + + 0x8D,0x8B,0x2B,0x62,0xC1,0x7F,0x7B,0x1B,0xCC,0xCF,0x89,0x17,0x08,0x5F,0xCE,0xD5, + + 0xF1,0x01,0x9A,0xB4,0xA3,0x78,0x89,0x66,0xF7,0x6D,0x89,0x01,0x70,0x93,0x44,0x1D, + + 0xEE,0x3B,0x92,0x31,0xC3,0xA2,0x02,0x72,0xEA,0x8C,0xF2,0x6E,0xE2,0xDB,0x80,0xB5, + + 0x88,0xAE,0x9B,0x7D,0x69,0x9B,0xD3,0x81,0x6B,0x61,0xB3,0xB8,0xD2,0xD8,0x14,0x29, + + 0x5D,0x10,0xD9,0x00,0x56,0xA0,0x45,0x7C,0xFB,0x60,0x06,0x62,0x4C,0x42,0x1E,0x60, + + 0x88,0x6E,0x0C,0x24,0xEB,0xEF,0x3C,0x08,0x85,0xB6,0x60,0x5C,0x81,0x46,0x2C,0x6F, + + 0x25,0x1C,0x0C,0x85,0x13,0xD5,0x88,0x58,0x84,0xB7,0xC7,0xC8,0xAF,0x2E,0x5E,0x5D, + + 0x13,0x89,0x0D,0x34,0x7C,0xD1,0x81,0x4D,0x05,0xB4,0x8E,0x2D,0xF5,0x52,0xD5,0x9B, + + 0x7A,0x0C,0x76,0x95,0xCA,0x33,0x89,0xF9,0x2C,0x97,0x3A,0x64,0x56,0xCE,0x22,0xC5, + + 0x87,0x87,0xCB,0x9C,0x18,0x28,0x49,0xD3,0xE2,0xC8,0xC9,0x68,0xCD,0x04,0xED,0xD9, + + 0xA3,0xC1,0x4C,0x59,0xCE,0xE3,0xEC,0x5D,0x90,0xE5,0x05,0x84,0xA6,0x8A,0x1D,0xE7, + + 0x18,0xB6,0xCB,0xC1,0x98,0x1A,0x8F,0xEB,0x02,0xD9,0x9C,0x85,0x17,0xCA,0xC9,0xB1, + + 0x4C,0x98,0xD6,0x5C,0x5E,0xF3,0x40,0xC2,0x63,0xCB,0x6D,0x06,0x54,0xF5,0x78,0xA8, + + 0xF9,0x33,0x4E,0x2C,0x98,0x3F,0x1F,0xE4,0xA5,0xBC,0x8C,0xF0,0x87,0xB9,0x1E,0x6B, + + 0x54,0x72,0x06,0x3C,0xE2,0x36,0x10,0xBC,0xFC,0x85,0x05,0xAC,0x5D,0xB7,0xF9,0xD0, + + 0xC7,0x81,0x73,0xA9,0x52,0xD9,0x9E,0x49,0x40,0xC6,0x88,0x45,0x17,0xF5,0x71,0x90, + + 0xAD,0x30,0x6F,0x9F,0xEB,0x65,0x11,0xBC,0x78,0x25,0xFC,0x41,0x05,0xF4,0xD2,0xA8, + + 0x0A,0x96,0x87,0x8E,0x6E,0x13,0x8E,0x99,0xCD,0xCC,0x49,0xD3,0x81,0x21,0xD0,0x53, + + 0x0B,0xEA,0xD1,0x50,0xC4,0x20,0x81,0x84,0x59,0x02,0x81,0xA4,0x51,0x61,0xE5,0xDC, + + 0x0D,0xAE,0x47,0xB1,0x20,0x61,0x8F,0xCF,0x13,0xAF,0x23,0x11,0x07,0x9D,0x94,0xCE, + + 0x02,0x30,0x8A,0x25,0xE3,0x11,0x40,0x52,0x14,0x42,0xD6,0x5A,0x6E,0xFD,0xEE,0x15, + + 0x9E,0x9D,0x64,0xE2,0x00,0xAB,0xEB,0x07,0xE1,0xBF,0x96,0xDF,0xA5,0x0E,0x89,0x6B, + + 0x9F,0xBE,0xD2,0x11,0x9F,0x6E,0x42,0x31,0xCF,0xFE,0x7D,0x42,0x30,0x41,0xE0,0x6B, + + 0x1A,0x0A,0x01,0x82,0x37,0x32,0x81,0x53,0x4E,0xDD,0xF6,0x65,0xC2,0x79,0x32,0x9F, + + 0x72,0x1E,0xD3,0x05,0xBE,0xA6,0x43,0x35,0x4F,0x9C,0x81,0x3C,0xB6,0x23,0xBF,0x32, + + 0xD4,0xDB,0x77,0x29,0x65,0x24,0x40,0x49,0x0D,0x28,0xEA,0xF7,0x6F,0x26,0x76,0x9C, + + 0x05,0xF6,0x08,0xE9,0x4E,0x2F,0xCE,0x86,0x60,0x05,0x18,0xC9,0x74,0x7E,0xED,0x3E, + + 0x48,0x7C,0x2D,0x36,0x8D,0xD0,0x08,0xFA,0x27,0xE0,0x06,0xB1,0xD1,0x86,0x86,0x91, + + 0xC3,0xD2,0x8B,0x12,0x72,0x81,0xB1,0x49,0xE1,0xD6,0xBE,0x81,0xC7,0x7C,0x67,0xE2, + + 0x54,0xA6,0x94,0x0A,0xF3,0x6C,0x48,0x2D,0xC6,0xB7,0xD3,0x5F,0x34,0xA9,0xF7,0x6A, + + 0xD8,0x56,0xF4,0x1B,0x3D,0xA4,0x22,0xD3,0xE5,0x44,0xC3,0xB3,0xBE,0x7B,0x7B,0xC7, + + 0x69,0xB6,0xBD,0xEF,0xF2,0x4E,0x83,0x4B,0x7B,0x2F,0x69,0x2F,0xC2,0xE7,0x31,0x53, + + 0x32,0x4A,0xF5,0x28,0x66,0x86,0xE2,0x1E,0x68,0x34,0x61,0x3F,0xD3,0x70,0x8B,0x77, + + 0x15,0x17,0x5F,0xB7,0xFB,0xAA,0x4A,0xEC,0x34,0x7F,0xB5,0x1A,0x79,0xEC,0x02,0xC9, + + 0xFE,0x42,0x14,0x3A,0xC1,0xB0,0x5B,0x1E,0xB0,0x21,0x76,0x0F,0x44,0xCB,0x7C,0xCD, + + 0xF4,0x3C,0xC3,0xB7,0x17,0x35,0x0A,0x07,0x6F,0xD1,0x8D,0x95,0xDE,0x2F,0x4A,0x26, + + 0x2C,0x0C,0x0B,0xE0,0xC1,0x25,0xE4,0xE2,0x34,0x92,0x46,0xF9,0xA5,0x97,0x8C,0x62, + + 0x91,0x86,0xE6,0x84,0xD7,0x2B,0xEC,0xA8,0x9D,0x1F,0x75,0xD7,0x1C,0xB1,0x14,0x8D, + + 0xD0,0x7D,0x32,0x88,0x13,0x20,0xB8,0x52,0xE2,0x35,0x1C,0xC6,0x96,0x6A,0x0B,0x63, + + 0x84,0x0F,0x63,0xF3,0xA0,0x31,0x85,0x8B,0x64,0xF6,0x6F,0xD6,0xA3,0x7B,0xC9,0x6B, + + 0x58,0x71,0x0D,0x53,0xDD,0x7D,0x75,0xB7,0xE7,0xD3,0x7C,0xC3,0x7E,0xF5,0xBE,0xB6, + + 0xAD,0x92,0xCC,0xC0,0xB2,0xDC,0x9E,0x20,0x60,0x38,0xB4,0xE6,0x0B,0x79,0xB6,0x70, + + 0x0F,0x65,0xCD,0xB2,0xC8,0x59,0x4D,0x16,0x71,0x18,0x19,0x16,0x40,0xE5,0x41,0x81, + + 0xA0,0x9B,0x9C,0xAB,0x17,0xA9,0x0C,0x8E,0x47,0xF0,0x9F,0xF8,0x70,0x75,0x8D,0x29, + + 0xCC,0x1D,0xF3,0x18,0x69,0x88,0x3F,0xF1,0x44,0x4C,0x65,0x0B,0xE3,0x3A,0x79,0xF6, + + 0x26,0xC7,0x97,0x64,0xF6,0xF3,0x7D,0x2C,0x28,0xC6,0x97,0xEC,0x3C,0xF5,0x72,0xBC, + + 0x98,0x10,0x9E,0xB0,0x72,0x22,0x1C,0x62,0x88,0x32,0x0E,0x9C,0x1D,0xB9,0xB8,0x0C, + + 0x57,0x04,0x83,0x85,0xDF,0xAB,0xD7,0xB9,0x3B,0x18,0x6D,0x5C,0x8B,0x5A,0x88,0xE6, + + 0x24,0x78,0x01,0xFB,0x4E,0x90,0x25,0x3E,0x45,0xF7,0x8F,0x90,0xF5,0x7A,0xC4,0x39, + + 0x59,0x9C,0xF8,0x00,0xE8,0xA3,0x31,0x1C,0x7E,0x47,0x29,0x68,0x04,0x71,0xDA,0xDC, + + 0xA2,0x32,0xD4,0xDE,0x88,0xA0,0x62,0x6A,0x6D,0xAE,0xBE,0x5C,0x63,0x72,0xEF,0xF4, + + 0x8E,0x1F,0x2B,0xB6,0x64,0xE3,0x30,0x9F,0xC9,0x6C,0x8E,0x78,0x5F,0x81,0x1F,0xED, + + 0xAF,0x33,0xD5,0xDF,0x29,0x37,0x0A,0x11,0x35,0x92,0x86,0x74,0xD9,0xCF,0x9D,0x9D, + + 0xEF,0x8F,0x3D,0x41,0x1A,0x0F,0xA0,0x58,0xA3,0xD0,0x51,0x50,0xA3,0x8E,0x15,0x89, + + 0x00,0x8E,0xB0,0x07,0x7E,0x40,0xC2,0x3A,0xB8,0x0E,0x5F,0xC0,0xD5,0x61,0x98,0x9D, + + 0x81,0x8D,0xB0,0xEF,0x19,0xEF,0x0E,0xD5,0xD4,0x1F,0x56,0x67,0x9C,0x3F,0x12,0x63, + + 0x05,0x9F,0xAD,0xEA,0x91,0xA0,0xA9,0x49,0x66,0xA6,0x83,0xDF,0x43,0x2C,0xF4,0x5B, + + 0x00,0x1F,0xE5,0xAE,0xCC,0x69,0x13,0x9C,0xBE,0xD5,0xB8,0xEF,0xDB,0x69,0x31,0x28, + + 0xA0,0x95,0x7E,0xA0,0x24,0x13,0x1F,0x82,0xC7,0xDA,0x38,0xB6,0x55,0xFE,0xBF,0x83, + + 0x96,0x0B,0xF9,0x57,0x1B,0x00,0x2A,0x63,0x49,0x3B,0x97,0x0A,0xD0,0x15,0x91,0x51, + + 0xA3,0x9C,0x53,0xB7,0x93,0xE9,0xE2,0xF9,0xC6,0x97,0x1A,0x04,0xBB,0x26,0x38,0x08, + + 0x9E,0x20,0xB3,0x0B,0x3E,0x09,0x0D,0xC8,0xE0,0x15,0xEB,0xA0,0xB9,0x86,0x54,0xF8, + + 0xB8,0x5F,0x06,0xF6,0x8F,0x64,0xAA,0x40,0xEA,0xD9,0x52,0x12,0xBC,0x26,0x5B,0x2F, + + 0x31,0x7C,0x20,0x7C,0xF0,0x15,0x4B,0x0C,0x31,0xC5,0xD1,0x23,0xDD,0x6A,0xA3,0xF9, + + 0x34,0x3D,0xCC,0xE9,0x8F,0x66,0x04,0xDD,0xDD,0x16,0xEB,0x13,0xCB,0xF0,0x52,0xBE, + + 0x0A,0x88,0xF1,0xEE,0x6E,0x25,0x2B,0x05,0xEB,0x7D,0x08,0x18,0xD3,0x6A,0x92,0x52, + + 0xA8,0x96,0xB3,0x8E,0xBA,0xA6,0x5A,0xEA,0xC2,0x40,0xA1,0x7B,0x7B,0x60,0xF3,0x39, + + 0xBD,0x13,0xDD,0x97,0xBD,0xA6,0x8B,0xE3,0x6B,0x5D,0xF5,0x2F,0xCE,0x45,0x5B,0x28, + + 0xE3,0x4E,0x3E,0xDB,0xE1,0xF7,0x1D,0x53,0xC9,0x3C,0xA2,0xE1,0x38,0xAE,0xDB,0xFC, + + 0x0A,0x4F,0xDC,0x97,0xD4,0x31,0x90,0xF1,0xC7,0x7C,0x20,0x57,0x72,0x1B,0xF8,0x68, + + 0xB6,0xBE,0x14,0x6C,0xBA,0x07,0x15,0x50,0xC9,0x7D,0x84,0x16,0x98,0xB1,0x1A,0x26, + + 0x5F,0x0F,0xA3,0x7C,0x87,0x18,0x91,0xE9,0x2D,0x96,0xA5,0x25,0x74,0x2B,0xBD,0xE5, + + 0x56,0x83,0xA5,0x8F,0x86,0xC5,0x99,0xE0,0x46,0x7F,0x15,0x92,0x1C,0x69,0x18,0x46, + + 0x58,0xCC,0xE1,0x42,0x48,0xFF,0xD8,0x67,0x9D,0xB8,0xF7,0x80,0xF4,0xF7,0xD6,0x57, + + 0x29,0x1F,0xCC,0xE7,0xB8,0x08,0x05,0x8E,0xF5,0xDF,0xFB,0x84,0xD4,0xF1,0x2D,0x33, + + 0x95,0x60,0xBC,0x5C,0xD1,0xF5,0xCA,0x78,0x85,0xD2,0x72,0x05,0x74,0xF5,0xBA,0x2C, + + 0x5C,0xF9,0x8B,0xFF,0xD4,0xB3,0x7F,0x1B,0x3D,0x1C,0xFC,0x88,0x50,0xF1,0x9C,0x71, + + 0x3C,0x55,0x1C,0x49,0xFE,0x98,0x92,0xE0,0xA5,0x9C,0xEE,0xEB,0x4F,0x33,0xBE,0xF8, + + 0xDE,0xFC,0x8E,0x0A,0xCC,0x12,0x56,0xBC,0x8C,0xBF,0x41,0xC0,0x5F,0x14,0xDC,0x83, + + 0x49,0x65,0xEF,0xAE,0xDB,0x9A,0x1E,0x8F,0x6F,0xBE,0x0F,0x51,0xEC,0xB7,0x17,0x60, + + 0x01,0x96,0xD7,0x8E,0x5D,0x3A,0xC7,0xB3,0x8E,0xFB,0x39,0xF8,0x1C,0x0D,0x58,0x07, + + 0xF4,0xDE,0x9F,0xB6,0xAC,0xB4,0xA6,0x4A,0x42,0x7C,0xA6,0xF7,0x1D,0xDC,0xC2,0xA8, + + 0xF1,0xDF,0xCE,0x5F,0x0C,0xE0,0x89,0xBD,0x5C,0x6B,0x63,0x06,0xFF,0x46,0xB0,0x96, + + 0xAD,0xEE,0xE1,0x4B,0xC0,0xF5,0x67,0xDF,0xEA,0xF3,0x8F,0x13,0x7E,0x05,0xB8,0x5F, + + 0xAE,0xFF,0x2F,0x62,0x81,0xD3,0xC5,0x68,0x83,0x10,0xE4,0xFB,0x91,0xD3,0x10,0x05, + + 0x0C,0x42,0xEE,0x44,0x1C,0x21,0xCD,0x7F,0xE7,0x50,0x54,0xF4,0x0E,0x61,0xC8,0x59, + + 0x24,0x00,0x30,0xA6,0x15,0x13,0xA0,0xCF,0x51,0x0C,0x5C,0xB0,0x72,0xF3,0x08,0xF8, + + 0x05,0x62,0xD1,0x98,0xA3,0x08,0xAE,0xC7,0xF3,0xF5,0xA9,0xB1,0xF0,0xE0,0x1B,0x05, + + 0x87,0x69,0xD0,0x52,0x34,0xDC,0x40,0xCD,0x1C,0x0C,0xC0,0xCC,0x34,0x6A,0x42,0x80, + + 0x46,0x49,0x9A,0x26,0xD8,0xD5,0x02,0xE0,0xA3,0xEB,0xEA,0x9F,0x2D,0xFC,0x90,0xB8, + + 0xF1,0x48,0xB0,0x73,0xFA,0x26,0x3E,0x11,0x42,0x05,0x8B,0x06,0xB8,0x74,0x43,0xA7, + + 0xA2,0xD6,0x89,0x50,0x7B,0xD7,0xC7,0x12,0xAE,0x2A,0x0A,0x4A,0xD4,0x9E,0x4B,0xB7, + + 0xB0,0x4B,0xB1,0xA5,0x15,0x86,0x7D,0x53,0x2A,0xEE,0xE7,0x5D,0x5E,0xC1,0xF1,0x0C, + + 0x07,0x0E,0xDB,0xE5,0x1E,0x9A,0x13,0x57,0xEF,0x4C,0x94,0x8C,0x0C,0x28,0x72,0x49, + + 0xE2,0xC1,0xD3,0xF5,0xBC,0xDF,0x12,0x07,0x74,0x52,0x22,0xD4,0xD5,0xA6,0xC3,0x95, + + 0xB9,0xAE,0x9B,0x89,0xC2,0x5F,0x19,0x5A,0x9B,0x41,0x9F,0xC0,0xEB,0x6E,0xD0,0x1A, + + 0xF6,0x07,0xCA,0x7B,0x4F,0x23,0xC6,0xDF,0xD9,0xB6,0x42,0x92,0xE6,0x69,0xFA,0xA0, + + 0x85,0x43,0x54,0xBF,0x9E,0xA1,0x2D,0x90,0x4A,0x37,0xCC,0xAC,0x0E,0x2E,0x5E,0xB0, + + 0x00,0x40,0xF2,0xBC,0x5F,0x2B,0xED,0xC8,0xBF,0x2E,0x1A,0x3C,0x1B,0xED,0x83,0x51, + + 0x2B,0x42,0x91,0x63,0x71,0x4A,0xC6,0x98,0x8B,0xFF,0xDB,0x6D,0xBA,0xD6,0xB4,0xB9, + + 0xC3,0x0E,0x66,0xBC,0x3A,0xAF,0x9B,0x20,0xAA,0xC2,0xA3,0x6C,0xEB,0x6B,0x4E,0x15, + + 0x02,0x13,0x80,0x1C,0x03,0x5C,0x0A,0xD4,0xF2,0x58,0xCB,0x24,0x03,0x07,0xCC,0x40, + + 0xF6,0xCA,0x10,0xE6,0x5B,0x78,0x45,0x71,0xC4,0x5A,0xE2,0x7D,0x77,0x69,0x81,0x05, + + 0x86,0x89,0x3D,0xB4,0x9D,0x9D,0x91,0x81,0xC2,0x70,0x55,0x61,0x18,0xFF,0xFA,0x6C, + + 0x52,0x66,0xF3,0xF1,0xB7,0x81,0x1E,0xA1,0x46,0xDE,0x4A,0x31,0x97,0xD5,0xC4,0xD4, + + 0xC3,0x0F,0x40,0x35,0x0A,0xB4,0xC3,0x40,0x8F,0x24,0xAA,0xC9,0xFF,0xD9,0x8C,0xA4, + + 0xD6,0x57,0xD9,0xFC,0xDA,0x24,0x22,0x50,0x82,0xF3,0xE2,0x55,0xA5,0xDA,0x1C,0x27, + + 0xB2,0x59,0xFF,0x36,0x86,0x92,0xF9,0x93,0x28,0x55,0x05,0x7A,0x19,0xA7,0xD0,0xFD, + + 0xA5,0x14,0x21,0x47,0xB3,0x3F,0xCA,0x02,0x9F,0x3B,0xCA,0x55,0x1E,0xD7,0x1B,0xA6, + + 0x19,0x95,0x33,0xFF,0x15,0xCE,0x76,0xE3,0x6D,0x57,0xC6,0x2D,0x71,0x63,0xE2,0x70, + + 0xF7,0x5B,0x88,0xEE,0xBB,0x05,0xE6,0x7F,0x5A,0xFE,0xC8,0x54,0xFC,0x34,0x78,0x0D, + + 0xF5,0x89,0xB9,0xE9,0x6E,0x32,0x4E,0x41,0x4F,0x4A,0x7B,0xCB,0x07,0x73,0x4C,0xFE, + + 0xA8,0xB9,0x07,0x7F,0xBF,0x40,0xDF,0x21,0x44,0x53,0x64,0xDD,0x85,0x82,0xA8,0x4A, + + 0xAA,0xA7,0xC3,0xBF,0x0A,0x5E,0x36,0xA7,0x45,0x51,0xEC,0x1F,0x02,0xD3,0xCA,0x5C, + + 0x52,0x0C,0xEE,0x3E,0x3D,0x35,0x86,0x9A,0xA1,0xAC,0x60,0xED,0x9A,0xD2,0x7F,0x19, + + 0xF6,0x17,0xB9,0xE5,0xF2,0x6F,0x31,0x49,0x68,0x22,0x44,0x9E,0xC6,0x7D,0x8F,0x68, + + 0xE4,0x5D,0x06,0xE2,0xD9,0xEA,0x17,0xC4,0xED,0x57,0x4A,0x0E,0x8B,0xD2,0xF9,0xAD, + + 0x3B,0x82,0xA2,0x74,0x27,0x8A,0xC8,0xCA,0x87,0x8D,0x1F,0x49,0x89,0x3C,0xE8,0x4A, + + 0x0E,0x7A,0x4D,0x78,0x74,0xA5,0xE3,0x48,0xE2,0xD1,0x70,0x54,0x16,0x11,0x7E,0x89, + + 0xF7,0xF6,0x59,0x40,0x7D,0xD8,0x4E,0xDB,0xC4,0xD9,0x08,0x79,0x56,0xE6,0x2D,0x97, + + 0xF1,0xAF,0xD0,0x64,0x82,0x2A,0x06,0xD5,0x48,0x6E,0xC6,0xCF,0xD5,0x47,0xA6,0x46, + + 0xED,0x1E,0x98,0xB7,0x5B,0xA4,0x0E,0xC3,0xAD,0x87,0x4D,0x21,0xB7,0x42,0x10,0x32, + + 0x13,0xC8,0x7B,0x6C,0x6F,0xE7,0xD4,0xE1,0x2E,0xCF,0x9E,0x4F,0xBC,0xC6,0x38,0xBA, + + 0x23,0x0C,0xC7,0x36,0x87,0x13,0x0F,0x4B,0x2F,0xD7,0x62,0x94,0xF0,0x6B,0x7B,0xB1, + + 0x20,0xCA,0xEA,0x85,0x91,0xAF,0xFF,0xF7,0xC6,0x95,0x87,0x4A,0x1F,0xA4,0xE2,0x3E, + + 0xC2,0xCA,0x82,0x84,0x1F,0xF9,0xFF,0xB5,0x2F,0xCC,0xAB,0x7B,0x94,0xD1,0xAE,0x9E, + + 0x02,0x8F,0x2E,0x3E,0x3F,0xE8,0x72,0xA7,0xC0,0x64,0x61,0x91,0x22,0xEB,0xE9,0x33, + + 0xAE,0x5A,0x63,0x96,0x57,0xA2,0x4A,0x5A,0xDB,0xDC,0xBA,0xAB,0xC1,0x6C,0xEB,0xF3, + + 0x8D,0xC9,0xF2,0xDE,0x38,0x2C,0xA5,0xA0,0xAE,0xCF,0x0E,0x56,0x69,0xF2,0x28,0x57, + + 0x3D,0x7B,0xE8,0xB6,0x1E,0x17,0x74,0x42,0xCE,0x83,0xA2,0xEC,0xC3,0x67,0x6C,0xB2, + + 0xF1,0xC0,0x55,0x4E,0xF4,0x9C,0xA8,0x69,0x65,0x3C,0x05,0x4F,0x79,0x42,0x9B,0x38, + + 0xDD,0x85,0xEB,0xCB,0x9A,0xFC,0x44,0x1A,0xC8,0xC6,0xCB,0x91,0x72,0xE3,0x73,0x57, + + 0x72,0x08,0x47,0xCD,0xDF,0xA5,0x5D,0xDF,0xED,0x62,0xE8,0x0C,0xF5,0x3C,0xC8,0x6A, + + 0x88,0xDD,0x2F,0x02,0x29,0x90,0xB6,0xD1,0x37,0xDB,0xAC,0xAA,0x47,0x67,0xEC,0x0A, + + 0x94,0x9B,0x6F,0x8F,0x17,0xBC,0x1C,0xCF,0xC4,0xD8,0xB4,0xB2,0x94,0xBE,0x43,0xF6, + + 0x4D,0x5B,0x65,0xF7,0xC1,0xF0,0xB5,0xE5,0xAA,0xD4,0x0D,0x60,0x36,0x72,0xA9,0xB3, + + 0x87,0x33,0xAE,0xB7,0xE7,0x83,0x61,0xC0,0xD8,0xAC,0xE4,0x70,0x50,0x0C,0xAE,0xDE, + + 0x04,0xC6,0x30,0x42,0x35,0x0B,0x7E,0x91,0x5B,0xB8,0x67,0xD8,0x0E,0xE1,0x2E,0x34, + + 0x82,0x9E,0xEC,0xED,0x03,0x4E,0x1B,0x02,0xE7,0xCA,0x57,0xD0,0x9A,0x97,0x62,0x2B, + + 0x2E,0xDB,0xDB,0xB6,0x09,0xED,0xB1,0x18,0x6B,0x2B,0x64,0xEF,0x76,0x36,0x6B,0x95, + + 0xB1,0xD5,0xAD,0x2B,0x0B,0xF5,0xE6,0x79,0xE4,0x65,0x56,0x72,0x64,0xE8,0x18,0x6F, + + 0xCE,0x8C,0xC6,0xC5,0x5D,0xB5,0xEF,0xAA,0xE1,0x75,0xEF,0xE8,0xD9,0x01,0xD6,0x72, + + 0xCF,0xD4,0xD5,0x1C,0xBD,0x61,0x47,0xCB,0x7A,0xCF,0xE4,0xAE,0xDA,0xE2,0x37,0xF9, + + 0x9F,0xB0,0xBF,0x8A,0xBA,0x19,0xFA,0x24,0x8F,0xDE,0xEF,0xBE,0xCF,0x6D,0xD0,0x93, + + 0x08,0x80,0x97,0x60,0xB3,0xD9,0x77,0x8E,0xEB,0x69,0xCC,0xD9,0x70,0x7D,0xEC,0x47, + + 0x28,0xB6,0xED,0xF0,0x38,0xB4,0x48,0xD7,0xCD,0xB9,0x89,0x9D,0x0E,0x29,0x64,0xDB, + + 0x88,0xDC,0x5B,0x5A,0x34,0x6A,0x1E,0xB5,0x04,0xD0,0xDE,0xEA,0xAA,0xB8,0xA0,0x23, + + 0xBA,0xD3,0x2E,0x32,0xBC,0x65,0x49,0x4B,0x4D,0xB2,0x62,0xC5,0xCA,0xEE,0x31,0x7E, + + 0x11,0x34,0x32,0x9B,0x88,0xBF,0x19,0x5B,0x6D,0xA3,0x41,0x7A,0x2A,0x9D,0x69,0xEA, + + 0xFF,0x6C,0x84,0xC4,0x78,0x8D,0x10,0x33,0x29,0x58,0xD7,0x56,0x56,0xB2,0xD7,0xAD, + + 0xE0,0xDE,0x90,0x05,0x33,0xD3,0xD8,0x28,0x82,0xEC,0x80,0x31,0xAF,0xE1,0x63,0x41, + + 0x81,0x42,0xCA,0xE5,0x9C,0xDF,0x26,0x85,0x30,0x61,0x49,0xDA,0xB1,0x22,0x57,0x3D, + + 0x7E,0xF3,0x09,0x56,0x6D,0x38,0x07,0xC0,0x62,0x03,0x1B,0xB7,0x40,0x76,0xC0,0x03, + + 0xA1,0x05,0xFA,0xB7,0x41,0x3F,0x13,0x0A,0x43,0xE4,0x74,0x06,0xA1,0x01,0x88,0xCC, + + 0x77,0x0F,0x99,0x4B,0x29,0xA8,0x62,0xF4,0x15,0x0E,0xE3,0xC8,0xB8,0x36,0x55,0x45, + + 0x0B,0x09,0x36,0xA3,0xB6,0xF2,0x0B,0x21,0xC4,0xF4,0xE9,0x58,0x39,0x15,0xC9,0x12, + + 0x20,0x1C,0xB7,0xE9,0x7A,0xF4,0xA6,0x01,0xE3,0x4E,0x35,0x06,0xED,0xC1,0x3D,0x18, + + 0xE3,0x19,0x75,0x6A,0xE7,0x21,0x20,0x16,0xEB,0xE9,0xAA,0x3C,0xFB,0x6E,0x42,0x28, + + 0x6A,0x91,0xB4,0xC4,0x78,0x09,0x4C,0x9D,0xA2,0x2A,0x98,0x2D,0x5F,0xFB,0x3D,0x21, + + 0x07,0xFC,0x07,0xE5,0xE3,0x65,0x41,0xDA,0xAA,0x97,0xBA,0x43,0x79,0xED,0xCB,0x59, + + 0x8D,0xB4,0x93,0x19,0x10,0xD9,0x1D,0x0C,0xC0,0xEF,0xA3,0x7D,0xC1,0x6D,0x0E,0xB8, + + 0x0E,0x43,0x6E,0xDF,0x33,0x24,0xD6,0xD7,0x4B,0x8C,0x4F,0x9C,0xDA,0xC5,0xB2,0xA9, + + 0x7A,0xF2,0xD4,0xA7,0x68,0x2D,0x58,0x9A,0xC9,0x51,0x83,0xAD,0xDB,0x3F,0x1A,0x38, + + 0xE9,0xAE,0x43,0x2E,0x69,0x83,0x33,0x23,0x7A,0x43,0x02,0xE7,0xDB,0xEE,0x71,0xBB, + + 0xAF,0x14,0x16,0xE5,0xF0,0xA7,0xE2,0x1B,0x29,0x47,0x77,0x0F,0x11,0x16,0x50,0x73, + + 0x06,0xBF,0x44,0x1D,0xFC,0x38,0xEF,0xDF,0x6E,0xAF,0xAE,0x5B,0x76,0x68,0x1D,0xD7, + + 0xEB,0xB8,0xB4,0x6B,0xD8,0xA8,0x64,0x97,0x9C,0x5E,0x27,0xAB,0xD2,0x33,0x10,0x72, + + 0x90,0xBF,0x86,0x07,0x30,0x59,0x75,0xEE,0x83,0x8F,0xEF,0x27,0x61,0x6F,0x45,0x09, + + 0xA7,0x1B,0x6A,0xD5,0xB5,0x1F,0x27,0x33,0x7C,0x18,0x1D,0x75,0x73,0x77,0x7E,0x33, + + 0x07,0xBB,0xFA,0x7C,0x53,0x30,0x4F,0x64,0x38,0x29,0xCE,0xE6,0xC1,0xD9,0x8C,0x49, + + 0xD6,0x1D,0xEC,0x5E,0x32,0xF5,0xA3,0x83,0x12,0x3B,0xD4,0xE0,0xBB,0xE6,0xD9,0x43, + + 0x22,0x7D,0xBC,0xB6,0x84,0xBF,0x5D,0xCD,0x4E,0x5B,0x86,0x95,0x72,0x60,0xCD,0x92, + + 0x00,0x11,0xEB,0x79,0xC1,0x93,0xBA,0x31,0xCB,0x4C,0x14,0xE6,0x89,0x0D,0x06,0x77, + + 0xA5,0xBE,0xFE,0x0E,0xA9,0x65,0x6E,0x8F,0xCB,0x19,0xCA,0xCE,0x87,0x14,0x9F,0xA8, + + 0x2D,0xC6,0x4E,0x04,0x98,0x31,0xA9,0x08,0x9D,0x3A,0x79,0x3E,0xE8,0x64,0x96,0xC9, + + 0xF4,0xB7,0xBF,0x3F,0xB0,0x6A,0xA2,0x19,0x5C,0x39,0xF7,0xE7,0x41,0x77,0xB0,0x5E, + + 0x7F,0x11,0x89,0x6D,0xBD,0x79,0xDF,0xF4,0x2B,0x1A,0xA7,0x2F,0xF9,0x73,0x6F,0xA6, + + 0x8B,0x9B,0x13,0x75,0xB7,0x91,0xA1,0x8E,0x49,0xCE,0x88,0x0E,0x7E,0xD1,0x95,0x5C, + + 0x79,0x00,0xEE,0x36,0x52,0xAE,0x46,0x6C,0x6D,0x8F,0xA0,0xFA,0x92,0x72,0x07,0xD0, + + 0xAC,0xAC,0x90,0x5E,0xA9,0xB5,0x0E,0x10,0x4F,0xA1,0x04,0xDF,0x9A,0x7C,0x47,0xC8, + + 0xC8,0x1E,0xAE,0x1D,0xAC,0x92,0xCC,0xB9,0xE1,0x44,0x8D,0xD2,0x10,0x1B,0x7A,0x4F, + + 0x02,0x88,0xC0,0x4C,0xA1,0xAD,0x50,0x6D,0x6F,0xCD,0x99,0x0C,0xF5,0x8E,0x27,0x96, + + 0x04,0xC1,0x84,0x29,0x97,0xBD,0xA9,0x40,0xE6,0xC7,0x94,0x09,0xD7,0xFD,0xA1,0x3A, + + 0x7F,0x09,0xEB,0xE5,0xB5,0xE2,0xDD,0xB1,0x55,0xCA,0xD3,0x36,0xD5,0xA2,0x3E,0xE0, + + 0xBD,0xED,0x10,0x75,0xB6,0xF3,0x94,0xC3,0x64,0x1C,0x00,0x55,0x2A,0x6A,0x3F,0x24, + + 0x25,0xC4,0x31,0xB7,0x5F,0xE4,0x76,0xE6,0x14,0xC9,0x0F,0x14,0x94,0xE4,0xB0,0x32, + + 0x03,0xA9,0x28,0x16,0x76,0x08,0x49,0x10,0xC8,0x43,0x1F,0x08,0x36,0xE1,0x4D,0xA1, + + 0x80,0x54,0x56,0xEE,0x62,0xB5,0x79,0x6A,0x44,0xDA,0x0A,0x20,0x3F,0x95,0xDE,0xD1, + + 0x16,0xDA,0x38,0xF7,0x7A,0xE6,0x7F,0x33,0xCB,0x87,0x80,0x04,0xE1,0x6E,0xC1,0x4A, + + 0x40,0x5D,0x62,0x96,0xBD,0xA2,0x86,0x48,0xB3,0xCE,0xB6,0x4E,0x14,0x15,0x54,0x36, + + 0x45,0x98,0x69,0x3B,0xFC,0x06,0xC5,0xB8,0xD0,0x82,0xBC,0x46,0xD2,0xAB,0x36,0x78, + + 0xBC,0x08,0xA5,0xFF,0x94,0xE8,0x9E,0xCE,0x6D,0x3B,0xA9,0x2A,0xFF,0xA9,0x0B,0xCD, + + 0x6C,0x24,0x33,0xEC,0xB0,0xC7,0x03,0x87,0x40,0xA9,0xFC,0x28,0xDE,0xBA,0x5A,0xAA, + + 0x56,0xCE,0x4E,0x3C,0xD4,0xDF,0x7D,0xDF,0xCC,0xD0,0xD2,0xE4,0x5D,0x4C,0x53,0x9A, + + 0x47,0x06,0x3B,0xAD,0x29,0xC3,0x3A,0x1A,0x0F,0x30,0x02,0xB9,0xB6,0x5E,0x24,0xB7, + + 0x88,0x1C,0x9D,0xE2,0x7F,0x08,0xCA,0x09,0x31,0x47,0xAA,0x3A,0x7B,0x6E,0x2B,0xDF, + + 0xD9,0xEE,0xD5,0xF2,0x55,0x1C,0x09,0xDB,0xCB,0x6F,0x9D,0xB2,0x36,0xB5,0x22,0x06, + + 0x25,0xC2,0xE3,0xF4,0xB6,0xAC,0x6D,0x63,0xC1,0x59,0xB1,0x4E,0x7F,0x7B,0x0C,0x49, + + 0xCC,0xA0,0xAD,0x12,0x67,0xBC,0x5C,0xF8,0xD0,0xDE,0x43,0x92,0x73,0x43,0x23,0xAA, + + 0xEC,0x83,0x1C,0xE5,0x56,0xF2,0x31,0xC3,0xA0,0x5F,0x35,0x41,0x9F,0x6B,0xC1,0x01, + + 0xA5,0x9B,0xE5,0x92,0xD6,0xD3,0xAD,0x5B,0x60,0x9E,0x00,0x77,0xF1,0xDF,0xA4,0x5B, + + 0xC7,0x92,0xFA,0xF6,0xC9,0x4B,0x38,0x12,0x62,0x9B,0xCA,0x5E,0xD5,0x91,0x7C,0xDF, + + 0x21,0x27,0x53,0xE7,0x96,0x4A,0x23,0x14,0x0C,0x4C,0xE2,0x07,0xD4,0xB5,0x4C,0xAD, + + 0x07,0x11,0xDF,0x77,0x49,0x69,0xCA,0xB3,0xE5,0xCD,0xCB,0x5E,0x55,0x5B,0xB6,0x57, + + 0xF5,0x8A,0x56,0x72,0x40,0x1A,0x86,0x81,0x44,0x96,0xCF,0xC9,0x54,0x56,0xA0,0xB1, + + 0x14,0xDA,0xDE,0x0C,0xAD,0xE5,0xC9,0x6D,0xAE,0xF8,0xCE,0x89,0xDD,0x07,0x08,0xA7, + + 0x07,0x3D,0x6E,0x06,0x9C,0xB1,0x86,0xCA,0x25,0xD0,0xB6,0xBA,0xF4,0xF6,0x2F,0x3F, + + 0x2C,0x5A,0x9F,0x3D,0xB0,0xEA,0x7F,0x0F,0xDF,0x64,0x89,0xD7,0x73,0x0C,0x7F,0x3F, + + 0xC6,0x73,0xA9,0x6F,0xFD,0xF9,0xAA,0xC8,0xBE,0x5D,0xE6,0xF9,0x58,0xF2,0x2E,0xCF, + + 0x4D,0x9F,0xB3,0xF3,0xD5,0xF8,0x48,0x32,0x4D,0x4C,0xA3,0x1D,0x44,0x21,0x56,0x68, + + 0x0D,0x2D,0xE6,0x5B,0xC0,0x19,0xF8,0x78,0xFE,0x80,0xF8,0x42,0xD6,0x2D,0x1F,0x49, + + 0x3F,0xC3,0xD9,0x67,0xC8,0xFC,0x2E,0x54,0x4B,0xD5,0xA1,0x47,0x15,0xED,0xAF,0x42, + + 0xD8,0xDD,0xBA,0xD9,0x77,0xAC,0x07,0x13,0x94,0x90,0x6F,0xFF,0xFF,0xFF,0xFF,0x7A, + + 0x76,0xDF,0xD2,0x4F,0xFB,0x44,0x43,0xD3,0xC4,0xCB,0x35,0x22,0xC4,0x04,0xB3,0xB5, + + 0xF6,0x8A,0xB0,0x24,0x71,0x8E,0xBC,0x14,0xA8,0xA0,0x08,0xC4,0xA2,0xC0,0xBE,0x30, + + 0x21,0xFD,0x11,0x76,0xFC,0x83,0xE6,0x90,0xFE,0xED,0xA9,0xDB,0x7C,0x6F,0x49,0x2C, + + 0x6A,0x47,0x29,0x67,0xF3,0x1F,0x47,0xD3,0xC5,0x45,0x0C,0xC6,0x55,0xE8,0x72,0x64, + + 0xF6,0xE7,0xBE,0x42,0xFB,0x2B,0x31,0x44,0xFE,0x47,0x82,0x32,0xB9,0x00,0x88,0x55, + + 0x0F,0xD8,0x58,0x36,0xF8,0xC6,0x06,0x92,0x47,0xE8,0x71,0x0A,0xC6,0x24,0xF6,0xE9, + + 0x71,0xB9,0x93,0x6A,0x79,0x42,0xE0,0xC0,0x7A,0x05,0x41,0x2A,0x2F,0x1A,0xD9,0xA9, + + 0x83,0x45,0x7D,0x37,0x78,0x34,0x48,0x43,0x28,0x03,0xE7,0xC8,0xBB,0x6A,0x58,0xA7, + + 0x7E,0xA7,0xFC,0x0B,0x3C,0x6A,0x70,0xC4,0x4C,0xE8,0x65,0x9D,0x6C,0xC7,0x9C,0x9A, + + 0xCB,0x08,0x2D,0x21,0xED,0x1A,0x24,0x80,0x97,0xE6,0xA1,0x80,0xAE,0xF2,0xA7,0x6B, + + 0xAC,0xA7,0x03,0x81,0x4C,0xFB,0x94,0x8C,0x3F,0x26,0x37,0x09,0xA4,0x95,0x55,0xFB, + + 0x8D,0x4B,0x3C,0xB1,0xEA,0x2B,0x48,0x4A,0xF7,0x9D,0x9B,0xC4,0xD5,0x2B,0x46,0x1B, + + 0xF7,0x4D,0x2E,0xDF,0x3C,0x81,0x74,0x8A,0xC6,0x0C,0x2D,0x1F,0x2C,0x0F,0xDC,0xDC, + + 0x43,0xFD,0xF4,0xE9,0x7A,0x29,0x62,0x87,0xE7,0x40,0x4A,0x0F,0x7D,0xCC,0x1D,0xAB, + + 0x8E,0xA3,0x97,0x3D,0x1A,0x31,0xD3,0xEA,0xF9,0x2A,0x28,0x12,0xBA,0x6C,0x73,0x7D, + + 0xFC,0x0F,0xAA,0x79,0xF3,0x22,0xF4,0x9F,0xDB,0xB2,0xE3,0x82,0x32,0x4C,0xBC,0x13, + + 0x46,0xBD,0x84,0xBF,0x59,0xAB,0x82,0x91,0xC1,0xD1,0x86,0xD1,0x9B,0x34,0x74,0x18, + + 0x84,0x98,0x29,0x92,0xA5,0x55,0x4E,0xE6,0x8A,0x35,0x38,0x90,0x84,0x7E,0x53,0xF1, + + 0x20,0xBD,0x85,0x81,0xB8,0x55,0x1C,0x52,0x64,0xDF,0xAF,0x15,0x69,0xDD,0x2D,0x02, + + 0x02,0x52,0x39,0xB2,0x10,0xAC,0x8D,0xC2,0x8D,0xF2,0x29,0xCA,0x52,0xDE,0x76,0xF0, + + 0x20,0xBB,0x7B,0x22,0x16,0x5A,0x2C,0x82,0xD1,0x31,0x44,0x86,0x85,0x11,0x7F,0x23, + + 0xAF,0x54,0xF2,0x79,0x52,0x31,0xA5,0xD7,0xC2,0x2A,0x0C,0x8A,0xB9,0x56,0xE5,0xB2, + + 0x01,0x95,0xFB,0x69,0x78,0xA5,0x6D,0x0A,0x4E,0x5B,0xED,0x1A,0x7D,0xD0,0x75,0x2B, + + 0x0F,0x1A,0xB4,0xA6,0x89,0xBE,0xCD,0x7E,0x1C,0x8A,0x4D,0xC4,0x52,0xF6,0x38,0xBD, + + 0x43,0x17,0x32,0xEE,0x1C,0x95,0x2E,0x98,0x0D,0xF7,0x00,0x88,0x91,0x49,0x8E,0x89, + + 0x75,0xC6,0x9B,0x7E,0x1D,0xB2,0x60,0xBF,0x4D,0xF4,0xE6,0x98,0x90,0x08,0x87,0x0B, + + 0x6A,0x80,0x96,0x6F,0x14,0x97,0xB7,0xDB,0x8A,0x96,0xEF,0x8A,0x11,0x2B,0xBB,0xFB, + + 0x26,0xAD,0xDB,0xAC,0xD5,0x94,0x89,0x48,0x4A,0x9B,0xE7,0x9A,0x10,0xEA,0x39,0xEF, + + 0x8B,0xC3,0xE6,0x46,0x1E,0xB7,0xB7,0x16,0x93,0x6A,0xA5,0x1F,0xFE,0xF1,0xB3,0xD0, + + 0x8E,0x22,0x94,0xF3,0x4D,0x92,0x64,0x15,0x1B,0x06,0x4E,0x9E,0x90,0xAC,0xF3,0xAB, + + 0x55,0x53,0xCC,0xF0,0x51,0x7A,0x28,0x93,0x78,0xC1,0x85,0xC3,0x11,0x1A,0x4E,0xBF, + + 0x1C,0x0F,0x6B,0xF9,0xD8,0x42,0x5B,0x12,0x58,0x31,0x6B,0x9F,0x10,0x8E,0x26,0x1F, + + 0x02,0x00,0x30,0xF6,0x53,0x01,0x4E,0x8F,0x60,0x35,0xB4,0x75,0x52,0x80,0xAF,0x5D, + + 0xF8,0xFD,0xF2,0xC2,0x7D,0x40,0x2E,0x8A,0xAE,0x52,0x41,0xDD,0xE6,0xA1,0x16,0x3D, + + 0xD0,0x77,0x37,0xED,0x69,0xED,0x2F,0xDF,0xC4,0x3F,0x35,0x55,0xEB,0xE0,0x80,0x6D, + + 0x10,0x0E,0xD0,0x71,0xB1,0x7C,0x82,0x82,0xFB,0x6C,0x3D,0x29,0x3C,0x70,0x5E,0xFF, + + 0x6E,0xB7,0xF2,0xF4,0xFD,0xE0,0x88,0x46,0xC4,0x28,0x24,0x98,0xDB,0x19,0x93,0x2D, + + 0x6F,0x88,0x4C,0x72,0xE8,0x28,0x40,0x89,0xEB,0xC8,0x43,0x06,0xD7,0xF3,0x9E,0x3D, + + 0xEC,0x55,0xDB,0xF7,0x53,0x09,0x09,0x01,0x35,0xA3,0x61,0x17,0x56,0xF9,0x96,0x2D, + + 0xA9,0x58,0x3D,0xA9,0x7E,0xD6,0x82,0x54,0x66,0x86,0x69,0x84,0x53,0x6A,0x5F,0xE0, + + 0x28,0x25,0x9A,0xF5,0x6F,0xA8,0xE7,0x0E,0xA5,0x5B,0xA4,0x4C,0xA3,0x45,0x74,0xF8, + + 0x09,0xC9,0x00,0x0C,0xBC,0x16,0x04,0x97,0x2F,0x36,0xA8,0x3F,0xB6,0x3A,0xB5,0x89, + + 0x4E,0x59,0x63,0x0E,0x32,0xAC,0x21,0xD4,0x27,0x19,0x66,0x0B,0x35,0x79,0x2D,0x06, + + 0xBE,0x4F,0x3B,0x20,0x8D,0x70,0x45,0x82,0xE9,0x66,0x81,0x1B,0xB5,0xE6,0x38,0xCA, + + 0x72,0x23,0x0E,0xD1,0xEB,0x25,0x2B,0x0C,0xEB,0x53,0xA0,0x38,0xB5,0x88,0x14,0x5D, + + 0x2B,0x20,0x22,0x3C,0xE0,0xC8,0xC2,0x84,0x5F,0x80,0x6C,0x8D,0xDB,0x60,0xC3,0xBB, + + 0x30,0x5D,0xC3,0xA5,0xBA,0xB5,0x72,0x0D,0x35,0xDE,0x63,0x9F,0x1A,0x4F,0xFD,0xAA, + + 0x2C,0xCF,0xD3,0x00,0x38,0xBF,0x84,0x5F,0x4D,0x23,0xA9,0x29,0x34,0x8B,0x1F,0xF2, + + 0xA4,0x8F,0x04,0xF4,0x56,0x7C,0x06,0x92,0x98,0x7F,0xCC,0x82,0x9F,0xB4,0xBC,0x61, + + 0x4F,0xF4,0xFC,0x90,0xFD,0x40,0xAC,0xC1,0x09,0x7A,0x18,0xB2,0x35,0x44,0x9E,0xF3, + + 0x24,0x84,0xDB,0x80,0x90,0x16,0x95,0xD1,0x86,0x8E,0x8F,0x17,0x61,0x5D,0x15,0x60, + + 0xC3,0xFD,0x09,0xB3,0x86,0xA7,0x45,0xA7,0x05,0x52,0xE7,0xFF,0x89,0x5C,0xDC,0x8D, + + 0x95,0xD5,0xF2,0xEF,0xDD,0xF0,0xF4,0xF2,0x00,0x6B,0x64,0x96,0xF6,0x5B,0x7E,0xA7, + + 0xCC,0xD1,0x48,0xF2,0xB8,0x18,0x22,0x10,0x63,0x50,0xDC,0x65,0xD4,0xB4,0x5B,0xEB, + + 0xCE,0x9B,0xDF,0x77,0x27,0x19,0x46,0x01,0x0F,0xCC,0x8D,0x6F,0x53,0x7F,0x57,0x63, + + 0x3E,0x38,0x38,0x44,0xD0,0x1A,0x82,0x34,0x1E,0x21,0x02,0x84,0x83,0x01,0x40,0xB7, + + 0xC5,0x49,0x1E,0xBE,0x3C,0x47,0x33,0x59,0xE8,0x55,0x16,0x5E,0xF6,0x2B,0x78,0xEA, + + 0xAD,0x8F,0xB0,0x0E,0xC2,0x14,0xA8,0x8B,0xCC,0x58,0x3D,0x81,0x21,0x74,0x3D,0x89, + + 0x1F,0x37,0xE6,0xE9,0x98,0x17,0x65,0xE4,0xC8,0x77,0xC9,0xA8,0xD8,0x2F,0xBF,0x6B, + + 0x5E,0x3A,0x79,0xD8,0x63,0xFA,0xBD,0x48,0x69,0x56,0xC4,0x44,0x7F,0xE7,0xC2,0xEE, + + 0xA1,0x31,0xB8,0xBE,0xBE,0xA3,0x48,0x08,0x0F,0xD8,0xAC,0xEC,0xCD,0x55,0x39,0xAA, + + 0xAF,0x82,0x8F,0xFA,0x5C,0x18,0x1F,0xDE,0x04,0xD2,0xE8,0xC3,0x94,0x0C,0xB7,0x58, + + 0xD8,0x33,0xD9,0x63,0xDF,0xBA,0x0E,0x91,0x8F,0xDA,0xE0,0x65,0xDA,0x03,0x51,0x7A, + + 0xCE,0x9B,0xF8,0x2C,0x3B,0x32,0xFF,0xC9,0x8F,0xDD,0x44,0x4E,0x8B,0x50,0x93,0x24, + + 0xA1,0xDF,0x23,0xF2,0x23,0xE1,0x4E,0x09,0xBF,0x5B,0x68,0x63,0x92,0xE0,0x98,0x63, + + 0x68,0xAA,0x30,0x04,0xB6,0x4F,0x0D,0xC9,0x4B,0x03,0xC7,0x56,0x12,0x62,0xB5,0x63, + + 0x7F,0x6E,0x39,0xFA,0xA3,0x90,0x75,0x57,0x3F,0x39,0x99,0x10,0x52,0x66,0x71,0x15, + + 0x61,0x42,0x6E,0xD5,0x95,0x06,0x0A,0xA8,0x1D,0x52,0x66,0x8A,0xD3,0x61,0x45,0xA8, + + 0x17,0x49,0xD1,0x46,0xFC,0x3F,0xC6,0x13,0x2E,0x28,0xC6,0x4C,0xE1,0x79,0x36,0x7D, + + 0xE2,0xAA,0xD9,0x13,0xCD,0x2F,0x64,0x57,0x20,0x31,0x81,0x28,0xF6,0xBA,0x3F,0x6D, + + 0x92,0x4B,0x33,0x23,0x6D,0x8B,0x37,0xA8,0xC3,0x06,0xF9,0x07,0x77,0x99,0xDF,0xA1, + + 0x55,0xA6,0x49,0x36,0x4D,0x8A,0x4F,0x44,0x70,0x0A,0x66,0x29,0x2C,0x69,0x5C,0xEA, + + 0x0C,0xA5,0x77,0x7E,0xBF,0x6A,0x4B,0xAF,0xAD,0xB7,0xAC,0xF4,0x7B,0xC8,0xDA,0x9C, + + 0x14,0x66,0x29,0x34,0xF8,0xD6,0xDA,0x00,0x13,0xBD,0x1C,0xD4,0x0D,0x24,0x95,0x3B, + + 0xAC,0x46,0x89,0x9D,0x44,0x1B,0xCE,0x00,0x29,0xF5,0xCA,0x92,0x7D,0x63,0x52,0x9C, + + 0x2C,0xFA,0xD2,0x01,0x3C,0x22,0x8D,0x4A,0xA5,0xC4,0xD9,0xDB,0x59,0xDB,0xD4,0xCC, + + 0x22,0x82,0xD7,0x9C,0x46,0x25,0x0A,0x6C,0xE3,0xBA,0xEA,0x86,0xA7,0x23,0xD9,0x69, + + 0x67,0x4F,0x65,0x37,0xC6,0x6F,0x9A,0x59,0xDB,0x40,0xE4,0x54,0xD6,0xEB,0x7B,0x29, + + 0xD5,0x85,0x47,0x88,0xA2,0x21,0x09,0xA4,0xA2,0xAF,0xF3,0x64,0x92,0x7F,0x5F,0x53, + + 0x2A,0x04,0x87,0x1D,0x42,0x12,0x26,0x8B,0xE8,0x0F,0x5C,0x3D,0x56,0xCF,0x2A,0x7A, + + 0x81,0x99,0x03,0x96,0xDB,0xD1,0xB3,0x89,0x89,0x01,0xCD,0xB8,0xD5,0x7B,0xCC,0xF6, + + 0xD6,0x01,0xCE,0xE7,0x5D,0x2A,0xB0,0x23,0x59,0x59,0x3B,0x81,0x42,0x57,0x07,0x61, + + 0x8E,0x09,0xDC,0x02,0xD5,0x3B,0xD1,0x24,0xA3,0xA1,0x55,0x21,0xA9,0x22,0xB5,0x6E, + + 0xA7,0x9B,0xE9,0xE1,0x90,0x83,0x49,0x59,0xF3,0x1E,0x27,0xC4,0x9D,0x7A,0xC0,0xBF, + + 0x03,0xF4,0xD2,0xF1,0x34,0x15,0xF8,0x7F,0x61,0xA7,0x3B,0x06,0xF0,0x3C,0x59,0xD2, + + 0x35,0xBE,0x06,0xA7,0x5F,0x94,0x04,0x41,0x00,0x84,0xBC,0xB0,0x02,0xF8,0x1C,0x76, + + 0x07,0x5E,0xE4,0xA7,0x51,0x3D,0x95,0xC0,0x61,0x5B,0x09,0x15,0xFA,0x79,0x58,0xD0, + + 0x42,0xE8,0xF5,0xE5,0xDE,0x98,0x48,0x75,0xCB,0x43,0xA5,0x77,0xF6,0x4E,0xF2,0x60, + + 0x6A,0x55,0xDF,0x90,0x5B,0x18,0xE9,0x40,0x76,0x15,0x14,0x9A,0x14,0xF5,0xCE,0xC8, + + 0x87,0x02,0x18,0xEE,0x0A,0x79,0xA6,0x43,0xE4,0x84,0xD5,0xDC,0x61,0x62,0xFC,0x81, + + 0x0D,0xE5,0x7F,0x65,0x32,0xFF,0xF0,0x57,0xDB,0x1B,0xCE,0xA9,0x5F,0xD7,0xCA,0xFF, + + 0x56,0x1D,0x77,0x75,0xD1,0x76,0x78,0x4A,0x85,0xF6,0x33,0xDB,0x06,0x60,0x66,0x4D, + + 0xC3,0x2D,0x66,0xBE,0x58,0x00,0x6E,0x78,0xC9,0xD7,0xAE,0xCB,0xD9,0x7A,0x74,0x2B, + + 0x13,0xE2,0xA8,0xF1,0xCE,0x9B,0x4A,0xF2,0xCA,0xDD,0x25,0x1E,0xDA,0xF7,0x0D,0x2B, + + 0x8B,0xAE,0x07,0xE9,0x53,0x50,0xC4,0xD8,0xDA,0x1C,0x5F,0x28,0x5B,0xF4,0x15,0x47, + + 0xC3,0xFE,0x5E,0x9D,0xBA,0xB2,0x27,0xC2,0x87,0xAA,0xA0,0x1F,0x26,0xA2,0xD8,0x8A, + + 0xA1,0x53,0xA1,0x84,0xDD,0x17,0x28,0x27,0x8C,0x21,0x8A,0xCE,0x00,0xAF,0xA5,0xF5, + + 0x36,0x23,0x57,0x69,0x9A,0x27,0x66,0xD0,0x19,0x44,0xA9,0xC9,0x53,0x52,0xD9,0xC5, + + 0xA2,0xC0,0x99,0x40,0x5E,0xB3,0x20,0xCB,0x4A,0x0F,0xE8,0xAF,0x71,0x43,0x91,0x2E, + + 0x22,0x91,0x29,0x57,0x8D,0x5E,0x60,0xB5,0xA1,0x3C,0xB4,0xB5,0x1C,0xB4,0x2E,0xB2, + + 0x6F,0x25,0xCF,0x79,0x7A,0xE6,0x4C,0xDE,0x25,0x6D,0x66,0x25,0xDE,0xA5,0x7D,0xA2, + + 0xED,0x24,0xFE,0x63,0xA4,0xE8,0x6D,0x9A,0xA1,0x88,0xBA,0x16,0x55,0x65,0xF7,0xA9, + + 0x23,0x29,0xEB,0x37,0xF5,0xD2,0x64,0x89,0x63,0x69,0x5A,0x1C,0x03,0x1B,0xFF,0xD7, + + 0xA3,0x94,0x16,0xA7,0x41,0x96,0x86,0x18,0x4A,0x31,0xA1,0x2F,0x55,0xEF,0x9A,0xB6, + + 0xAB,0x8E,0xC0,0xF0,0x1F,0x28,0xF2,0x76,0xF1,0x15,0x8A,0xD1,0xB5,0xD9,0x52,0x98, + + 0xC4,0xFE,0xCA,0x4D,0xE7,0x04,0x82,0xC5,0xA4,0xF8,0x7A,0x63,0xC5,0xF2,0x0D,0xF1, + + 0x2D,0x0A,0x99,0xE7,0xC8,0xE5,0x4D,0x07,0xFF,0xC8,0x5F,0xB0,0xDD,0x8A,0x13,0x7B, + + 0xB3,0x8D,0xBA,0xFD,0xF6,0xA4,0x97,0xA4,0xCE,0x8B,0x18,0x49,0xFE,0x09,0x5A,0xB5, + + 0xE7,0xBD,0x22,0x6F,0xDD,0x51,0x7A,0xB3,0xA7,0xFD,0x26,0x1C,0xFD,0xEA,0x33,0xF4, + + 0xAA,0x86,0x93,0x2D,0x27,0xE2,0x04,0x52,0x7C,0x0A,0x79,0x7C,0x39,0xEB,0x3B,0xD3, + + 0x09,0xAF,0x9B,0xBF,0xF7,0x9F,0x39,0x89,0xED,0x24,0xFB,0x48,0x7D,0x15,0xEB,0xD3, + + 0x2A,0x86,0xD7,0xC0,0xFC,0xD5,0xC3,0x84,0x26,0xDE,0x73,0xBA,0x7E,0x65,0x0A,0x38, + + 0x85,0xFC,0xB2,0xAF,0xCB,0xDC,0x25,0xE5,0xAE,0x31,0x34,0xC0,0x08,0xBF,0x6D,0xF4, + + 0x86,0x1C,0x73,0x69,0xDC,0xE0,0xBE,0xC4,0xA7,0xF1,0x43,0x5E,0x71,0xBC,0xC2,0xC3, + + 0xE4,0x89,0xC3,0xAE,0xB7,0xF2,0x7D,0x3B,0xD7,0x06,0xD5,0xF4,0x5F,0xFF,0x4D,0xC0, + + 0x56,0x9C,0x41,0x08,0xB4,0x00,0x35,0x23,0x0C,0xC2,0x11,0x28,0xF4,0x53,0xA4,0xE3, + + 0xE5,0x19,0x9A,0xEE,0x30,0x95,0x65,0x66,0x7F,0x08,0x5B,0x62,0x33,0x51,0xFA,0x38, + + 0xCE,0xA4,0x2C,0xF7,0xCD,0x48,0x04,0x02,0xB1,0xE4,0xF8,0x14,0xF5,0xFD,0x1D,0x33, + + 0xCF,0x37,0x8D,0xA5,0x95,0x67,0xB5,0xC2,0x1C,0x2B,0x95,0xA7,0xD8,0x7D,0x95,0x23, + + 0x4D,0x36,0x95,0x27,0xC3,0x16,0xBD,0xD2,0x24,0x5A,0x49,0x85,0x54,0x0C,0x7F,0x0E, + + 0x8B,0x88,0xFF,0x92,0x99,0xB3,0xA1,0x55,0x6A,0x6B,0x8C,0x48,0x7A,0x72,0x2F,0x7C, + + 0xAF,0x65,0x94,0x76,0x39,0xF6,0x04,0x52,0x37,0x96,0xBE,0xAD,0x6E,0x88,0xDF,0x63, + + 0xEE,0xD5,0x21,0xE9,0xFC,0xF5,0x3A,0x2F,0xAF,0xFE,0x93,0x8B,0x97,0xAB,0x15,0x1F, + + 0x9F,0xB0,0xF6,0x83,0x18,0x3B,0x1F,0xAB,0x0C,0xC0,0xE6,0x7E,0x58,0xF0,0xF0,0x4E, + + 0x0A,0x8F,0xF7,0x4A,0x16,0xA8,0x0E,0xFB,0x3D,0x57,0x23,0x6A,0x23,0xA3,0x50,0xEF, + + 0x4E,0x6D,0x78,0xE1,0x0F,0xFF,0x6A,0xF0,0x0C,0x22,0xFA,0x1C,0x5B,0xFD,0xD8,0x29, + + 0xE6,0x7F,0xBD,0xCE,0x1D,0x0B,0xBA,0xDA,0x82,0x9C,0x97,0xAF,0x52,0x75,0x37,0xC4, + + 0x4E,0x30,0x62,0x7A,0xDC,0x16,0x07,0xF9,0xAF,0x7F,0xFF,0xFF,0xFF,0xFF,0x60,0x03, + + 0x55,0x0D,0xC7,0xF7,0xFB,0x44,0x16,0x09,0x23,0x48,0x67,0x42,0xA7,0x99,0x32,0xF8, + + 0x81,0xCE,0xB6,0x39,0xB2,0x63,0x63,0x43,0x2D,0x4E,0xC1,0x36,0x36,0x41,0x19,0x05, + + 0xA8,0x14,0xBF,0x29,0x33,0x47,0x07,0x09,0xC6,0xD0,0x89,0x31,0x25,0x6D,0x37,0xC9, + + 0xA2,0xB1,0x4A,0x14,0x7A,0x47,0x40,0xF0,0x64,0xC4,0xC0,0x37,0x34,0xE4,0x45,0xB2, + + 0x42,0x4B,0xB9,0x2B,0x4F,0xDB,0x68,0x88,0x62,0x0B,0x84,0x16,0xB9,0xF5,0xA0,0x44, + + 0x05,0xAF,0xC7,0xAF,0xA2,0xBD,0xA0,0x98,0x63,0x08,0xE6,0x4C,0xDE,0x93,0x79,0xA9, + + 0x88,0x49,0x78,0x19,0x65,0x1B,0xE9,0x81,0xC6,0xC6,0xEF,0xC4,0x90,0x99,0x83,0xB9, + + 0x91,0x4A,0xB2,0x97,0x17,0x29,0xB5,0xE3,0x9F,0x4F,0xD1,0x71,0x5B,0x3C,0x5B,0xB7, + + 0xAD,0x03,0xBC,0x34,0xBB,0x4D,0x92,0x25,0x2B,0x40,0x96,0x38,0xDA,0x4C,0x52,0x9D, + + 0x3A,0x88,0x1C,0x1D,0x0C,0x32,0x61,0x5A,0x08,0x4D,0xCA,0x20,0x41,0x72,0x42,0xE1, + + 0xCB,0x47,0xBD,0x34,0x3B,0x8A,0x05,0x01,0xCE,0xD8,0x18,0x5E,0xB4,0x65,0xB3,0xF9, + + 0x85,0x4B,0x7C,0x99,0xCB,0x44,0x63,0x28,0xF9,0x09,0xBB,0x4B,0x3B,0x4B,0xBD,0xA0, + + 0x00,0x41,0x66,0xC8,0x5A,0x99,0xD6,0x98,0x16,0x03,0xEC,0x54,0x1A,0xC3,0xF5,0x48, + + 0xAC,0x16,0xEA,0xFF,0x53,0x9C,0xCD,0x49,0x22,0xCF,0xBC,0xDD,0x5A,0x2D,0xAF,0xD6, + + 0x89,0x6E,0xC5,0xED,0xD2,0xFF,0x93,0xC1,0x5A,0xE1,0xC4,0x1E,0xA2,0x02,0xDB,0x3F, + + 0x74,0x14,0xC7,0x6B,0xA8,0x3D,0x7D,0x44,0x68,0xCB,0xFF,0x89,0xB8,0x6D,0xC1,0xF3, + + 0x73,0x1B,0x92,0x6C,0xB0,0x7D,0xE8,0xDF,0xC3,0xF0,0xAA,0x99,0x51,0xF0,0x72,0xA5, + + 0x12,0xD6,0x94,0x0C,0x3C,0xD0,0x5B,0x43,0x67,0xE3,0xC5,0x27,0x94,0x1F,0x85,0xA0, + + 0xBE,0x9F,0xDD,0x95,0x59,0x03,0x04,0xB0,0xD0,0x10,0x6F,0x4D,0x3A,0xB2,0xB5,0x6E, + + 0x48,0xF2,0x85,0xEA,0x70,0x51,0xA9,0x8E,0xDD,0x86,0xFF,0xB9,0xF0,0xB3,0x01,0x26, + + 0x00,0xD4,0x6E,0xAB,0x91,0x75,0x6A,0x40,0xED,0xA2,0x47,0x60,0x56,0x51,0xB4,0x38, + + 0x29,0x58,0x96,0xA5,0x4F,0x2A,0x66,0x03,0x17,0xF8,0x1C,0xD0,0xA9,0xF3,0xC4,0xA7, + + 0x91,0xF4,0x62,0xE8,0x35,0x75,0x5D,0xE5,0x3E,0x55,0xB7,0xF4,0xF1,0x96,0x14,0x58, + + 0x04,0x0C,0x75,0x05,0x10,0x59,0xCE,0xB6,0x29,0xA6,0xDB,0xB5,0xA7,0x19,0xAA,0x17, + + 0x29,0x58,0x42,0x09,0x7B,0x18,0x87,0x2C,0x6F,0x18,0x4C,0xA0,0x4B,0xEC,0x18,0xAD, + + 0x9A,0x54,0x18,0x7E,0xBB,0x65,0x61,0xFF,0x94,0xEF,0xC1,0x3E,0x5B,0x49,0x13,0x04, + + 0xCB,0xD0,0xD7,0xEF,0xFA,0x50,0x77,0xAB,0xA7,0x57,0x4D,0xB0,0xFE,0x69,0x57,0x9D, + + 0x81,0xF9,0x69,0x6D,0xB1,0x34,0xA4,0x2B,0xE9,0x51,0xA7,0x55,0xF3,0x34,0x80,0xAE, + + 0xA8,0x1F,0xA4,0x4C,0x3B,0x7C,0x1E,0xA0,0x6C,0x4F,0x8F,0xB5,0xDF,0x0A,0xF6,0x5A, + + 0x09,0xED,0x0E,0x8D,0xE3,0xB6,0xFE,0x9A,0xD8,0x38,0x9E,0xBA,0x5D,0x79,0x42,0x2B, + + 0x99,0x2C,0xE3,0x12,0x46,0x4F,0x10,0xAB,0x66,0x52,0x96,0x8B,0x6C,0x76,0x37,0x31, + + 0xB9,0x52,0xCB,0x21,0xBB,0x2A,0x67,0x12,0x47,0x52,0xDC,0x3A,0xC8,0x15,0xEC,0x3B, + + 0x37,0x84,0x1F,0xE4,0xFD,0x91,0x73,0xD1,0xAD,0xB1,0x34,0xA2,0x17,0xEF,0x90,0x82, + + 0xA2,0x85,0x17,0x76,0x19,0xC9,0x7B,0xC0,0xB8,0xCE,0x40,0xDE,0x47,0xAC,0xFB,0x02, + + 0xB7,0x03,0xAB,0x05,0x7F,0x43,0x49,0x50,0xF0,0x80,0x21,0x55,0xE7,0x83,0x2F,0xFB, + + 0xE5,0x08,0x3F,0x97,0x93,0x71,0xF9,0xAB,0x2E,0x6E,0x46,0xDF,0xCB,0xAE,0xA5,0x24, + + 0x8B,0x72,0x58,0xC4,0xD3,0x69,0x88,0x10,0xAD,0xC7,0xE6,0x5E,0x50,0xC5,0x2C,0x34, + + 0x8A,0x53,0x5C,0xB4,0x2C,0x35,0xC0,0x8D,0xAE,0x74,0xB8,0x47,0x2F,0xA7,0x9E,0xD3, + + 0x71,0x9D,0x99,0xAF,0x88,0xEB,0x0F,0x5A,0xF5,0xC7,0xD0,0x05,0x29,0x6D,0x61,0x43, + + 0x7A,0x06,0x55,0x70,0x34,0xBC,0xD5,0xEC,0xC4,0x1E,0xED,0x7D,0x76,0x58,0xA6,0xEC, + + 0x67,0x99,0xA5,0xAE,0xBD,0x4B,0x25,0xC8,0xA5,0x59,0x1E,0xB1,0xB7,0x59,0x73,0xDB, + + 0xA8,0x00,0xAE,0x7E,0x41,0xAF,0x42,0xCA,0x0A,0x68,0xB4,0x2D,0xFE,0x18,0xA4,0x79, + + 0x67,0xBB,0xFA,0xDF,0x39,0x23,0xF3,0xB3,0x2F,0x37,0xEA,0xBC,0xDA,0xF9,0x2F,0xFB, + + 0x89,0xAA,0x02,0x88,0x3C,0xA2,0xAD,0xD1,0xCB,0x59,0xE2,0x25,0xBA,0x1B,0x99,0xAC, + + 0x3D,0xAE,0xE5,0x28,0xB2,0xA3,0xB2,0xC2,0x14,0x8E,0x32,0x2E,0x9B,0x90,0x92,0xB2, + + 0x2B,0xC0,0x2A,0xF6,0x1D,0xA0,0x7A,0x7A,0xC2,0x60,0x53,0x0D,0x63,0x4C,0xDB,0xB4, + + 0xBD,0x6C,0x57,0xBF,0x96,0xA1,0x71,0x38,0xCE,0xCE,0x4C,0x20,0x4B,0x33,0x90,0x24, + + 0xFB,0x94,0xB2,0xD9,0xFB,0xA9,0x65,0xE8,0xB3,0x30,0xC3,0x4E,0x7E,0x40,0x1E,0x79, + + 0xD8,0x71,0x9E,0x6E,0xB4,0x7F,0xF5,0x26,0x32,0xF0,0x1C,0xB2,0x95,0xEB,0xBD,0x8D, + + 0x19,0x2A,0x05,0x01,0x96,0xB7,0x2B,0x8C,0x15,0x93,0x46,0x5E,0x2F,0xBE,0xE5,0xAE, + + 0xF6,0x46,0x85,0x96,0x55,0xB4,0xF5,0x3A,0x48,0x27,0x25,0x41,0xC7,0x26,0x29,0xAC, + + 0xC9,0xD1,0x84,0xBC,0x14,0x1A,0xF5,0xB7,0x67,0xD7,0xED,0xAE,0xEB,0xE8,0x9B,0x2A, + + 0x2C,0xD9,0x71,0xCE,0xB6,0x14,0x8D,0xC5,0xC7,0xAB,0x4C,0x69,0x64,0xB9,0x35,0x55, + + 0x21,0x86,0x47,0x1C,0x8C,0x4A,0x54,0x90,0x86,0x2E,0x2C,0x85,0x5D,0x7C,0xC9,0x5C, + + 0x4D,0x27,0x49,0x62,0x63,0xD5,0x4C,0xA1,0x47,0xEB,0x14,0xA7,0xF2,0xBA,0x63,0x3B, + + 0x21,0x3A,0xB4,0x7C,0x12,0x6D,0x79,0x0D,0x1C,0x48,0x7D,0x17,0xE6,0x02,0xB3,0x12, + + 0xF8,0x09,0x30,0xEE,0x70,0x15,0x7F,0xC8,0x97,0xB4,0xF2,0xC8,0x83,0xFE,0x38,0xAF, + + 0x9E,0xD4,0x74,0x9F,0xBF,0x85,0x3E,0xFA,0x3F,0xC2,0x59,0x56,0x59,0xB6,0x80,0xB2, + + 0xCF,0x50,0x31,0x6D,0x8F,0xBE,0x88,0x30,0x19,0x5C,0xE7,0xB2,0x5D,0x96,0x77,0x9F, + + 0x85,0x79,0xA9,0xFD,0x42,0xA0,0x1F,0x4F,0xE5,0x99,0x07,0x40,0xDF,0x16,0x1E,0x3C, + + 0x28,0x24,0x98,0xF3,0x2E,0xF1,0x2C,0xDF,0x06,0xDF,0x65,0x6A,0x79,0x45,0x94,0xA8, + + 0x1C,0xCF,0x7D,0xEF,0x03,0xFF,0xBE,0xEA,0x78,0xD3,0xF6,0xC6,0x79,0xBC,0xE6,0x23, + + 0x24,0x63,0x28,0x3C,0x9C,0x35,0x0E,0x8D,0x55,0xC1,0x48,0xA8,0x3C,0x7E,0x97,0x59, + + 0x2F,0xDB,0xFB,0xD5,0x1E,0x10,0x47,0x10,0x6C,0xD2,0x98,0x6D,0xBF,0xF7,0x16,0xE9, + + 0x8C,0x6D,0xA4,0xF7,0x9C,0x61,0xEF,0x53,0x3C,0xCF,0xA4,0x42,0x9A,0x89,0x88,0x57, + + 0x2F,0xDD,0x30,0xEE,0x01,0x6C,0xD3,0xD6,0x51,0x0C,0xB8,0xD4,0xF0,0x9E,0xFA,0x08, + + 0x2D,0x19,0x3C,0xFA,0xE7,0x22,0xEA,0xC9,0x7A,0x0F,0xAF,0x51,0xF4,0x64,0xDD,0x4F, + + 0x12,0x3C,0xF6,0x91,0x99,0x44,0xD6,0xD7,0xE5,0x45,0xA7,0x4D,0x0F,0x22,0xD0,0x33, + + 0x6E,0xA5,0xDE,0x7B,0x6F,0x66,0xF0,0x22,0xC1,0xEF,0x2F,0xE0,0x55,0xC7,0xE8,0x22, + + 0x61,0x59,0x70,0xAB,0x20,0x85,0x18,0xB6,0x0B,0x07,0xF8,0xF0,0x58,0xDB,0x79,0x71, + + 0xF0,0xA9,0x8F,0x26,0xA1,0x46,0x39,0xE1,0xE0,0x56,0xE6,0x28,0xD4,0xFE,0xD9,0xD3, + + 0x03,0xDF,0x71,0xAE,0xF8,0x2D,0x91,0xC0,0xB8,0x43,0xE7,0x09,0x5C,0xC1,0xFD,0xF0, + + 0x08,0xB3,0x39,0xF3,0x3C,0x44,0xA7,0xA8,0xE9,0xE7,0xAA,0xD0,0x58,0x74,0xE6,0x77, + + 0xD7,0x54,0x88,0xE3,0x94,0x84,0x24,0x00,0xC4,0xEF,0xC5,0x97,0x2E,0x6D,0x87,0x8D, + + 0x80,0xA6,0xBD,0xD1,0x52,0x90,0x80,0xD8,0xB8,0x6A,0xAC,0x67,0xC8,0x2B,0xE8,0x59, + + 0x86,0xA6,0x93,0x8E,0xC6,0xAB,0x4F,0xF9,0xF9,0xC0,0x44,0x68,0xDF,0xE1,0x7A,0xB7, + + 0xCB,0x6E,0xC2,0x63,0x73,0x6E,0x68,0x97,0x4C,0xD4,0x4D,0x2C,0x7F,0xE1,0x10,0x81, + + 0x7F,0xA2,0x70,0xB3,0xF2,0xD4,0x24,0xFA,0x69,0x09,0x84,0x00,0x5B,0x23,0x87,0x99, + + 0x86,0x4F,0x8D,0x36,0xA9,0x9A,0x73,0xAF,0x8A,0x63,0x2C,0xE9,0x99,0xC8,0xEB,0x2B, + + 0xE9,0x53,0x6E,0xBF,0x7B,0x8B,0x63,0x87,0x67,0x42,0x9B,0xBB,0x9B,0x74,0xFB,0xFA, + + 0x0E,0xCF,0xFA,0x82,0xD1,0xB3,0x2C,0x30,0xC3,0xF0,0xAE,0x14,0xE5,0xDF,0xEF,0xD0, + + 0x31,0xBC,0x29,0x76,0xD1,0x9C,0x8F,0x34,0x26,0x43,0x9C,0x5B,0x63,0x3C,0xE9,0xEE, + + 0x7E,0x4F,0xA8,0x76,0x3C,0x73,0x06,0xA3,0x6B,0xA7,0x31,0x81,0x55,0xF3,0x5D,0xC0, + + 0xDD,0x18,0xF5,0xA4,0xC5,0x9C,0x47,0xB0,0x96,0x53,0xCF,0x4E,0x46,0x1D,0x52,0xA2, + + 0x42,0x95,0x5B,0x3C,0x32,0x76,0x16,0xDF,0x49,0x16,0x86,0x60,0x31,0xC5,0x61,0xF4, + + 0xC8,0x71,0xB3,0xAE,0x45,0xAA,0xE3,0x16,0x9F,0x1E,0x85,0xD1,0xD6,0x19,0x3B,0xC7, + + 0x43,0x95,0xC1,0x62,0x4F,0x67,0xDB,0x07,0xD1,0x36,0x8C,0x7D,0x57,0x89,0x75,0x22, + + 0x85,0x72,0x70,0xE4,0x12,0x93,0x9D,0x20,0xED,0x4C,0x3A,0x35,0xAB,0x35,0x86,0x8B, + + 0xF7,0xA5,0x15,0xFE,0x52,0x89,0x27,0x85,0x78,0x5C,0xA9,0x23,0x89,0x2E,0x8E,0xDF, + + 0x07,0xC5,0x1D,0x0E,0xC6,0x94,0xCA,0xE6,0xFA,0x66,0x61,0xFB,0x90,0x90,0xAC,0xF3, + + 0x7D,0x01,0xF9,0xB4,0x37,0x97,0x11,0xEE,0xC6,0x86,0x07,0x45,0x3B,0x37,0xDB,0xC7, + + 0x3A,0x24,0x98,0x0F,0xB9,0x7A,0xDF,0x9D,0xD2,0x1A,0x78,0x4D,0x79,0x64,0x7E,0x3B, + + 0x04,0x5D,0x59,0x2E,0xDA,0xC3,0x50,0x97,0xCD,0x58,0x98,0x6A,0x7C,0x8F,0x30,0xDE, + + 0xCA,0x9E,0xF5,0x4F,0x98,0xE2,0xD0,0x1E,0x58,0xFD,0xDC,0x1A,0xFB,0x4D,0x51,0xAB, + + 0xCA,0xDE,0x6B,0xB6,0x64,0xC1,0x97,0xD6,0xCD,0x1C,0x8C,0x05,0xD6,0x33,0x62,0xFD, + + 0x36,0xE2,0xF8,0xAC,0xC8,0x3F,0xE0,0x1F,0x17,0x74,0x86,0xD8,0x1A,0x30,0x70,0x53, + + 0x78,0x8B,0xDF,0xFA,0x14,0x3B,0x70,0x13,0x34,0x82,0x7E,0x59,0x70,0x4F,0x0A,0x74, + + 0x9B,0x93,0xF1,0x10,0xB0,0x1E,0x2F,0xC9,0xB9,0x10,0x80,0xCD,0x71,0xE7,0x2E,0x27, + + 0x09,0x99,0xA1,0x83,0x9C,0xC5,0x25,0x29,0x65,0x6D,0x15,0x45,0x27,0x87,0x91,0x9D, + + 0x86,0xCB,0x05,0x68,0x4F,0x7E,0xF9,0x06,0x79,0x48,0x99,0x4A,0x74,0x1C,0x1E,0x45, + + 0x22,0x8B,0xFE,0xA4,0xF6,0x5B,0x8F,0xE0,0x8B,0x68,0xD7,0x72,0x6D,0x50,0x41,0x38, + + 0xA4,0xE0,0x10,0x5E,0xEA,0xEA,0xD6,0x20,0xE6,0x16,0x1A,0x36,0x42,0xFE,0x5B,0xB0, + + 0xF7,0x80,0xB8,0x53,0x7F,0xA9,0x49,0x5E,0x65,0xC0,0x4F,0x20,0xE5,0x12,0x11,0x77, + + 0x05,0xBB,0x58,0xB3,0xA4,0x55,0x01,0x9B,0xEB,0x8A,0xDE,0x83,0xD7,0xFC,0x1C,0xAA, + + 0x45,0x79,0xC1,0x2A,0xF7,0xCC,0xFF,0x1B,0x34,0x8A,0x69,0x2E,0x2F,0xE8,0x8E,0x7C, + + 0xFE,0x99,0xD5,0x6C,0x33,0x36,0x42,0xCA,0x39,0x68,0x4E,0xF9,0x79,0x62,0x7B,0xB3, + + 0xA8,0x91,0x9B,0xE4,0xFC,0x8A,0x27,0x21,0xAF,0x35,0xEC,0x23,0xDA,0xCA,0x93,0xE0, + + 0xE5,0x86,0x3B,0xEF,0x79,0x5A,0xAE,0xBF,0xE5,0xDF,0x76,0x03,0x36,0xAF,0xEA,0x28, + + 0x4E,0x83,0x5A,0xAE,0x1A,0xF9,0x6A,0x6E,0xE7,0xE0,0x90,0x7A,0x7C,0x9C,0xFA,0x28, + + 0xA8,0x9D,0xF8,0xA1,0xE0,0x20,0x62,0x7E,0xE6,0x34,0xFE,0x98,0xDA,0x6D,0x5B,0x0C, + + 0x4C,0xCE,0xBF,0xA7,0x42,0x63,0x4D,0x17,0xAF,0xEE,0xFB,0x87,0xF2,0x65,0x55,0x36, + + 0x28,0xCE,0xB9,0xA0,0x68,0x1A,0x22,0xE6,0x6A,0xC4,0x3B,0xAF,0xA7,0xEB,0xDB,0x45, + + 0x99,0x66,0x1C,0xBB,0x93,0xA2,0x98,0x4A,0xBE,0x9D,0xAA,0xD2,0xE6,0xB1,0x75,0xD4, + + 0x80,0x6E,0x3C,0xF4,0x8E,0xCE,0x26,0xB0,0x8E,0xDE,0x8D,0x54,0x51,0xF7,0x9C,0x1D, + + 0xA5,0xC2,0x1D,0x37,0xB4,0xFD,0x53,0x6E,0x0D,0x88,0xCD,0xD5,0x76,0xEE,0x13,0x5A, + + 0x2A,0x65,0x92,0x18,0xD6,0xB7,0x7C,0xD5,0x84,0xD7,0x9D,0x53,0x54,0x0C,0xC9,0x8C, + + 0xD3,0xC8,0x24,0xC7,0x98,0xAF,0xB4,0x33,0x68,0xCF,0x1C,0xF6,0x70,0x0C,0x35,0x46, + + 0x82,0x6A,0x53,0x30,0x5C,0xCD,0xF5,0x47,0xC3,0x97,0xA5,0xD3,0xD2,0xFE,0x5F,0x28, + + 0x15,0xD7,0xE4,0xB9,0x11,0xA6,0xF1,0x9C,0x41,0x94,0x9B,0x63,0xCC,0xD1,0x53,0xA2, + + 0x7B,0x98,0xED,0xD5,0xE3,0x1A,0x47,0x56,0xD4,0xF3,0xFC,0x75,0x3E,0x60,0x6E,0xF3, + + 0x64,0x29,0xDF,0xF6,0xAE,0xF9,0x50,0x48,0x48,0x95,0x88,0xD6,0xF1,0x0E,0x32,0x88, + + 0x0F,0xDA,0x8E,0x74,0x5E,0xBD,0x2F,0x4A,0x6C,0x08,0x86,0x8E,0x2B,0x56,0x3B,0x18, + + 0xE4,0x0B,0x4B,0x14,0x4D,0x33,0xC8,0x95,0xDC,0x7A,0x27,0xDC,0x90,0x5B,0xEF,0xE8, + + 0x8F,0x14,0xCE,0xBB,0x30,0xA0,0x41,0xBD,0x0C,0x58,0x1F,0xCD,0x9F,0xA7,0x54,0xEE, + + 0xAC,0x80,0x7D,0xBF,0x43,0xB7,0xFC,0x15,0x5D,0x2E,0xCE,0x11,0x78,0xA4,0xFE,0x98, + + 0x8E,0x91,0xCE,0xDB,0x54,0xC5,0xAA,0x2A,0xEE,0x25,0x5E,0x3C,0xF3,0xF3,0xDE,0xA9, + + 0xED,0x6E,0xE1,0x3E,0xA3,0xDE,0xCF,0x15,0x2F,0xBD,0x90,0x2D,0x7D,0xF0,0x17,0x99, + + 0x23,0x93,0xEB,0xAC,0xCA,0x3D,0x75,0x5B,0x50,0x6A,0x87,0x3D,0x5E,0xBC,0x59,0xD3, + + 0xA5,0xAB,0x04,0xF9,0xE7,0x61,0xEB,0x28,0xE5,0xBF,0x50,0x21,0x84,0x21,0x51,0xD1, + + 0xA4,0x0A,0xF6,0x3D,0xFA,0x70,0x7E,0x19,0x42,0xB1,0xE6,0x32,0xB0,0xE2,0x14,0x01, + + 0x6B,0x53,0x40,0x07,0x69,0xAF,0xFD,0xB2,0xF4,0x9F,0xCB,0x19,0xB8,0x83,0x0C,0xF9, + + 0xDC,0x4E,0xF7,0x28,0x7A,0xF2,0xA6,0xBE,0x74,0xCA,0x2C,0xC6,0x5D,0x22,0xC0,0x51, + + 0x5E,0xAB,0xEA,0xB8,0xAE,0x66,0xE8,0x3D,0xE5,0x05,0xB2,0x04,0xBB,0x55,0x70,0xAB, + + 0x05,0x4F,0x5E,0x27,0x7F,0x49,0x21,0x16,0xBC,0xCE,0xF8,0x3C,0xDE,0x98,0xE5,0x23, + + 0x71,0x63,0x4E,0xD4,0x73,0x89,0x0B,0x33,0xAA,0xA7,0xB3,0x6C,0xD3,0x26,0xC9,0x96, + + 0x7E,0x81,0xAF,0x9C,0x92,0x67,0x93,0x40,0xAF,0x58,0xBB,0x57,0x26,0xE1,0x7C,0x21, + + 0x18,0x45,0xFC,0x35,0xF3,0xB9,0x32,0xC2,0xBD,0xC1,0xEC,0x2B,0xED,0x67,0xB2,0xF6, + + 0x19,0x44,0x6F,0xDC,0x67,0x6B,0x4A,0x99,0x1D,0x52,0xC4,0xDE,0x5D,0x6F,0x7D,0x25, + + 0xBB,0xD1,0x32,0x20,0x2D,0x44,0x33,0xA3,0xC9,0x68,0x27,0x42,0x7B,0xD7,0xF6,0xDE, + + 0x43,0xE2,0x03,0x42,0x2C,0x69,0x72,0x5F,0x89,0xE0,0x2E,0xAA,0xDF,0xCB,0x42,0x36, + + 0x2E,0x87,0xE6,0xD0,0x79,0x56,0xED,0x8E,0x6E,0x41,0xD2,0xAC,0x0A,0xC1,0x70,0xE8, + + 0x92,0xA2,0xEB,0x3E,0xF0,0x3C,0xE5,0x8B,0xE8,0xC8,0xCF,0xEE,0x57,0x65,0xCF,0x64, + + 0x61,0x4A,0xD5,0x78,0x9C,0x0F,0x2C,0xED,0x81,0x4B,0x42,0xFF,0x5B,0xC3,0xEF,0x7D, + + 0xE8,0x45,0xB1,0xBD,0x9F,0x0B,0xCB,0x0A,0xBF,0xCE,0x5B,0x7F,0xF5,0x01,0x14,0xBC, + + 0x07,0x16,0xBE,0x7E,0xCB,0x9D,0xB3,0x8D,0x53,0xBE,0x02,0x20,0x31,0xF9,0x8B,0x6F, + + 0x56,0x11,0xB2,0xA8,0x47,0x9E,0x43,0xA9,0x67,0xD2,0x94,0x44,0xED,0xD0,0xA8,0xFC, + + 0x01,0x98,0x12,0xB8,0x5B,0xC3,0xAD,0x5E,0xDF,0x72,0x22,0x8D,0xF6,0x58,0x3E,0xE5, + + 0x59,0xFA,0x1E,0xEE,0xDB,0x82,0xAB,0xFE,0x1C,0x2F,0x0B,0x5F,0x54,0x8C,0x7A,0xF5, + + 0x49,0x1B,0xA6,0xC4,0x31,0x74,0x06,0xAB,0x89,0x30,0x68,0xED,0x9B,0x05,0x32,0xD6, + + 0xC2,0x96,0x0C,0x9C,0xD0,0x5B,0x0E,0xBB,0x88,0x31,0x1B,0xF6,0x3F,0xD8,0xC7,0xF3, + + 0xC2,0x31,0xD9,0xAF,0x4E,0x27,0xC5,0x12,0x66,0xDB,0x39,0x77,0x92,0x7E,0xE4,0xF5, + + 0x4A,0xF6,0xF3,0xF9,0x71,0x38,0xCD,0xCB,0x40,0xF8,0x48,0x32,0x31,0x71,0xC6,0x89, + + 0x86,0xC5,0xF8,0xB5,0xC9,0x9B,0xBA,0xC7,0xA2,0x29,0xCC,0x32,0x10,0x69,0x75,0x70, + + 0x69,0x5B,0xAE,0x26,0xC5,0xC8,0x9A,0x45,0x9E,0x18,0x37,0x4F,0xF5,0x38,0xD3,0x1A, + + 0x09,0xA5,0x94,0x7E,0xC8,0x6A,0xFB,0x3B,0xE4,0x52,0xE9,0xAB,0x19,0xF9,0x0D,0xCC, + + 0x7D,0xFA,0x3C,0xA1,0x41,0x8A,0x25,0x57,0x5C,0x37,0xA1,0x88,0x91,0x76,0x18,0x2A, + + 0x6E,0x99,0xF8,0xE5,0xF8,0x3C,0x2E,0xDA,0x12,0xA3,0xDE,0x78,0x19,0xAD,0x74,0x68, + + 0xB6,0x5C,0xB6,0xA2,0xF9,0x3D,0xCE,0x7C,0x6A,0x91,0xFF,0x9E,0x39,0x72,0x55,0xC4, + + 0x41,0x5A,0x8F,0xC5,0x47,0xB8,0x69,0x0B,0x98,0x81,0xC1,0xC5,0xFC,0x5F,0x77,0x27, + + 0x07,0x12,0xC7,0xD9,0x3C,0x4D,0xB3,0x11,0x2B,0x12,0x85,0x30,0x93,0x9E,0x1E,0x76, + + 0x65,0x84,0xA6,0x1B,0xB5,0x0F,0x48,0x2A,0xA4,0xC6,0x37,0x44,0x70,0x7C,0x49,0xD2, + + 0x07,0xED,0xB9,0x27,0x21,0x0E,0xB8,0x74,0x6F,0xDA,0x15,0x59,0x3E,0xEE,0x58,0x6D, + + 0xE5,0x86,0x37,0x20,0x35,0x0D,0x9C,0x53,0x67,0xC6,0x8E,0x7D,0x49,0x1F,0x17,0x66, + + 0x4F,0xD2,0x38,0x64,0xF9,0x00,0xD7,0x55,0x85,0x68,0x39,0xB5,0x69,0xD8,0xF5,0xB1, + + 0x82,0x09,0x21,0xB6,0x7F,0x05,0xF0,0x9D,0x40,0x8E,0xCE,0x4A,0x88,0x49,0xF8,0x21, + + 0x6B,0x2E,0x28,0x72,0x75,0xA8,0x26,0x90,0x43,0x68,0xD7,0x09,0x8E,0x79,0x33,0x08, + + 0x6D,0xE2,0xF0,0xAD,0x33,0x99,0x6E,0x1C,0x4B,0x87,0xE4,0xF9,0xD7,0x76,0x11,0x57, + + 0x05,0x01,0x97,0x6F,0x6F,0xB6,0x68,0xF7,0x8F,0x37,0x42,0x2D,0x2B,0xB6,0x1C,0x7E, + + 0xC6,0xB9,0xB7,0xFD,0x24,0xF5,0x4A,0x22,0xAC,0x37,0x32,0x3F,0x00,0x15,0x92,0xFA, + + 0x45,0xC5,0xAA,0x24,0x71,0x1C,0xC5,0xD7,0xB2,0x44,0x0F,0x87,0x59,0x49,0x6B,0x07, + + 0xBF,0x34,0xA1,0xE4,0x63,0x71,0xA3,0xC3,0x03,0x87,0xED,0xCD,0xD8,0xEC,0x7F,0xE6, + + 0x72,0xCA,0xBA,0x9B,0x95,0xCC,0x44,0xBF,0xAF,0x2E,0x3C,0x04,0xED,0x1E,0x90,0x4E, + + 0x46,0x7C,0x55,0x7B,0x18,0xB4,0xC9,0x88,0xE2,0x31,0x41,0x47,0xDE,0x6C,0x14,0x5C, + + 0xEE,0x0E,0x7B,0x19,0xF6,0xFC,0xCE,0x18,0xB4,0x30,0x3A,0xBA,0xC7,0x19,0x39,0xF8, + + 0xE6,0x9F,0xE3,0x51,0xA6,0x5A,0x0B,0x4F,0x6F,0x51,0xC4,0x43,0x2E,0xDF,0x46,0xA8, + + 0x03,0xCE,0x89,0x1F,0x76,0x9E,0xEB,0x88,0x4B,0x42,0x6E,0x0C,0xAF,0xEE,0x83,0xAA, + + 0x17,0x9D,0x97,0xBE,0x07,0xD0,0x52,0x8F,0x67,0x00,0xA6,0x96,0x9F,0xB4,0xD3,0x55, + + 0xEF,0x80,0x3B,0x88,0x41,0x05,0xB4,0x48,0x64,0xB1,0x18,0x92,0x9C,0x10,0x9D,0x7D, + + 0xB4,0xDF,0x65,0x97,0xA3,0x46,0xF5,0xE7,0x39,0x90,0x8F,0x17,0x6D,0x5D,0x96,0x00, + + 0xC9,0x99,0xBA,0x8D,0xC5,0x66,0xE2,0x4D,0xC1,0x83,0xAB,0xD5,0x95,0x33,0x3D,0xD7, + + 0x02,0x1F,0xD9,0x16,0x95,0x0B,0x93,0x6A,0xC3,0x02,0x34,0xC7,0xE6,0x7F,0x56,0x62, + + 0xB2,0x3A,0x54,0xE6,0x96,0x2A,0x87,0xD5,0xC6,0x94,0xC2,0xCE,0x57,0x98,0xA8,0xFE, + + 0x4D,0xD2,0xFD,0x52,0x85,0x6E,0xE5,0x10,0x6A,0xDB,0x0A,0x05,0x76,0xB5,0xC9,0xF7, + + 0xC4,0xF9,0xD2,0x90,0x65,0xBF,0x2D,0x6B,0xF3,0xCC,0xEA,0x85,0x48,0x42,0x23,0xCD, + + 0xD1,0x3E,0xB3,0xB1,0x08,0xC4,0x16,0xD0,0x5B,0x68,0xC8,0xA8,0x9D,0x7B,0x26,0x9F, + + 0x52,0x46,0x07,0xEC,0x86,0xA6,0xBD,0x3E,0x68,0x25,0x80,0x8B,0x16,0xF6,0xB6,0xF5, + + 0x66,0xAB,0x18,0xC0,0x29,0x67,0x8E,0x6C,0x72,0xD2,0x9A,0x5C,0x70,0xBB,0xBF,0x73, + + 0xCE,0xD6,0x18,0xA2,0x49,0x6A,0xFF,0xFF,0x1E,0xD3,0x3F,0x3D,0x3F,0xED,0x73,0x39, + + 0xAA,0x11,0xE5,0xB1,0xFC,0x2E,0x57,0x9C,0xE1,0x5A,0xE7,0xD1,0x12,0xBE,0xFE,0x25, + + 0x1C,0xAA,0xEC,0x22,0x3F,0x46,0x36,0x17,0x33,0x66,0x7B,0xC5,0x4F,0x08,0x35,0x9D, + + 0x45,0xFA,0x5C,0x5D,0xBE,0xB4,0x72,0xAB,0xEA,0xFA,0xA4,0x28,0xFF,0xAE,0xD7,0x87, + + 0x08,0x8F,0xAC,0x18,0x56,0xEE,0xEC,0x03,0x53,0x24,0x69,0x7B,0x8D,0x91,0x48,0x1D, + + 0xE9,0x91,0x67,0x62,0xCE,0xFD,0x70,0x6B,0x69,0x4D,0x1F,0x9C,0xB1,0xCF,0x1B,0x12, + + 0x81,0x11,0x8E,0x6A,0xB6,0x31,0x20,0x50,0x47,0x03,0xFE,0x55,0x50,0x21,0x11,0x76, + + 0xC8,0x6A,0x41,0x9D,0x21,0x2A,0x6E,0xA3,0x40,0x25,0x07,0x56,0xBC,0x0E,0x85,0x29, + + 0x91,0x07,0x36,0xF3,0x2C,0x2A,0x5E,0xB3,0x41,0xE3,0xB5,0xA3,0xBA,0x6C,0x12,0x6E, + + 0xE9,0x60,0xC0,0xBB,0xE7,0xA7,0x38,0x67,0xE1,0x21,0x3A,0x94,0x5A,0x2B,0xF5,0x61, + + 0x6F,0xAA,0x69,0x32,0xCD,0x37,0x5E,0x5C,0xAA,0x14,0x9E,0x9C,0x94,0x28,0x1B,0x40, + + 0x21,0x8D,0x45,0xBB,0x1D,0x3D,0xEE,0x83,0x8A,0x57,0x88,0xBE,0x77,0x6D,0xE9,0x23, + + 0xE1,0x1B,0x71,0xCB,0x90,0x3F,0x01,0x75,0x8B,0x76,0xC1,0xF5,0x32,0x28,0x86,0xCD, + + 0x78,0xF3,0xCD,0xFD,0x60,0x28,0xBE,0x8D,0x9D,0x2B,0x12,0x5F,0x34,0xED,0x19,0xFA, + + 0x41,0xE8,0x17,0x98,0x43,0x31,0x97,0xDF,0xBC,0x7B,0x9D,0xFB,0x93,0x10,0xC3,0x2D, + + 0xEA,0xA7,0xA5,0x60,0xEC,0x87,0xB8,0xE3,0x73,0x71,0x81,0xAD,0xDE,0x62,0x17,0x10, + + 0x68,0xA4,0x83,0x09,0xF2,0x9A,0xE7,0xBB,0x49,0x0C,0xC1,0x3F,0x6A,0xB6,0x3C,0x4F, + + 0xAB,0x85,0xFC,0x79,0x72,0x21,0x72,0xEF,0x02,0xAD,0xB2,0x23,0x27,0x61,0x54,0x4B, + + 0x67,0x02,0xF0,0xEC,0x82,0x6F,0x7A,0xA1,0xEA,0xC7,0xB7,0x9A,0xF7,0xC0,0xC7,0xA9, + + 0xB5,0xA3,0xD1,0x59,0x71,0x6A,0x67,0x7A,0xEE,0x48,0xF9,0xBD,0x86,0x75,0x79,0x4A, + + 0x28,0x3E,0x43,0x2F,0xA8,0xCF,0x23,0x2B,0x88,0xBF,0xCA,0x9F,0xFF,0xC0,0xE8,0xB1, + + 0x4C,0x52,0xC3,0x94,0x03,0x97,0xAB,0x46,0x53,0xC6,0x9C,0xBD,0xFF,0xF6,0x74,0x81, + + 0x4D,0xBC,0x05,0x10,0x6B,0xB1,0x3C,0x03,0xC0,0x58,0xFE,0xB6,0x70,0xA1,0x95,0x60, + + 0xC3,0x32,0x45,0x1C,0x91,0x29,0xD5,0x3D,0xDA,0x54,0x94,0xDB,0x91,0x76,0x9B,0x23, + + 0xFD,0x3D,0xD4,0xD8,0xB7,0x81,0xDD,0x35,0xBB,0x55,0xC7,0x36,0x99,0x92,0xD3,0x33, + + 0xA6,0x9F,0xAD,0x2F,0xCD,0xBF,0x34,0xAF,0x1F,0x59,0x8E,0xEB,0x0E,0x6B,0x88,0x97, + + 0xF9,0xEA,0x6C,0xA6,0x51,0x09,0x05,0x3B,0xC6,0x39,0xCB,0x1E,0x92,0x3A,0x61,0x7D, + + 0xA4,0x1E,0x0D,0xF4,0xDE,0x99,0x7F,0x31,0xBE,0xA9,0x6E,0x03,0x91,0x02,0xF6,0x4B, + + 0x7A,0xEA,0x0D,0xE0,0x6D,0x3F,0xBA,0x31,0xBB,0x4C,0x62,0xC4,0x52,0xD6,0x96,0xC7, + + 0xD5,0x64,0x9E,0xE3,0xC7,0xE3,0x36,0xB9,0xE5,0x3B,0xE8,0xAA,0x99,0xFB,0x70,0xF5, + + 0xAB,0x1D,0xC9,0x94,0x0A,0x8F,0x63,0x51,0xB7,0x36,0x9A,0x5E,0x90,0x50,0x67,0x8B, + + 0xEB,0x17,0x87,0x65,0x6A,0x78,0xBC,0x0C,0x3D,0x44,0x26,0x5E,0x74,0xF1,0xC3,0xFB, + + 0x42,0x01,0x4F,0x04,0x98,0xC7,0xA4,0x30,0x46,0x5D,0xDD,0x42,0x10,0x9A,0x69,0x32, + + 0xA5,0xA1,0x40,0xBE,0xB8,0x40,0xFA,0x8E,0x95,0x47,0xEE,0x13,0x83,0xDD,0x6E,0x4A, + + 0xAB,0x15,0xC8,0xE9,0xB2,0xF0,0x64,0x10,0xB8,0x12,0x05,0xEC,0x18,0x07,0x25,0xC9, + + 0x5B,0x97,0x9F,0x2F,0x3A,0xBE,0x3A,0x8F,0x96,0x11,0xEF,0xDC,0x5B,0xC1,0x5A,0x5D, + + 0xAA,0x15,0xF1,0x05,0x98,0xBE,0x06,0x38,0x4E,0xD6,0xC8,0x79,0xDF,0xB6,0xB6,0xF2, + + 0xC5,0x21,0xA0,0xF7,0x60,0x5F,0x08,0x42,0x42,0x82,0xAA,0x24,0xC6,0xEA,0x10,0x72, + + 0x53,0x0A,0xBF,0x16,0xDD,0xBB,0x94,0x97,0x90,0xA2,0x58,0x07,0x39,0x4E,0xB7,0x87, + + 0xAC,0x96,0x87,0x3B,0xA9,0x09,0x76,0xA1,0x44,0x62,0x31,0x64,0x52,0x69,0xBA,0x22, + + 0xE9,0xC1,0x3A,0x64,0x86,0xE1,0x92,0xF9,0x7E,0xF8,0x19,0x45,0xB7,0xB6,0x1E,0x6E, + + 0xE7,0x2B,0x4B,0x01,0x18,0x78,0x0E,0x4A,0x66,0xC7,0x54,0x04,0xAD,0xA6,0x0E,0x23, + + 0x04,0x4C,0xB2,0x13,0x7F,0x44,0x8F,0x14,0x66,0x85,0x9A,0x72,0x73,0xE3,0x70,0x30, + + 0xB6,0xEA,0x25,0x8D,0x2D,0x59,0xF1,0x00,0x10,0xDD,0xBF,0x45,0x2B,0x8A,0xA9,0x13, + + 0x84,0x0C,0x97,0x51,0x76,0x24,0x45,0xED,0x2E,0x5D,0x53,0xB1,0x76,0x65,0x36,0x00, + + 0xAD,0x83,0xE5,0x46,0x1D,0x68,0x44,0xCD,0xB9,0xFA,0xCC,0x29,0x3F,0xC8,0xBC,0xF0, + + 0xA8,0x03,0x39,0xE1,0xD5,0x78,0xC5,0x32,0xE8,0xD2,0xAE,0xCF,0xFE,0xA9,0x61,0xFB, + + 0xE5,0x2B,0xFD,0x36,0x9C,0x01,0xCF,0xC3,0x2E,0x87,0xCB,0x5C,0xB0,0xE3,0x53,0xFB, + + 0x99,0x00,0xE2,0xF7,0x7F,0xE9,0xD8,0x64,0x6A,0xDB,0x89,0x0F,0x89,0xA9,0x03,0x77, + + 0xE5,0xC8,0xCF,0xCA,0x72,0x5A,0x2A,0x66,0x7D,0x46,0x8A,0x9E,0xC2,0x5D,0xCE,0x38, + + 0xFC,0xE8,0x87,0xB6,0x53,0x71,0x90,0x1C,0x6E,0x4D,0x5F,0x43,0xEC,0xA0,0x39,0x59, + + 0xF8,0x21,0xAB,0xC2,0x98,0xE6,0xCB,0x8B,0x86,0xD5,0x8A,0x09,0x29,0x65,0x53,0xA0, + + 0xEC,0x83,0x47,0xDA,0x4A,0xCD,0x41,0x93,0x54,0x80,0x57,0xE1,0xDC,0x2F,0x44,0x80, + + 0x84,0x9D,0x19,0xD9,0x43,0xB0,0x14,0x10,0xC5,0xD9,0x18,0x39,0x77,0x91,0x30,0x70, + + 0x84,0xFF,0xAD,0x7E,0xEB,0xF3,0x1C,0xA3,0xE8,0xB2,0x2A,0x84,0x15,0xB3,0x6F,0x9E, + + 0x26,0xAE,0xFC,0x19,0xB2,0x00,0xF5,0x27,0xBE,0xD4,0xEB,0x45,0xF0,0x5F,0x4F,0x87, + + 0xA4,0xF3,0xEA,0xF7,0x86,0xC8,0x96,0x16,0x30,0xCD,0x7D,0xF7,0xAD,0x9D,0x3E,0x42, + + 0x5A,0x3B,0x84,0x89,0x15,0xB9,0x70,0x82,0x5D,0x59,0xCC,0x1C,0x70,0xB5,0x12,0xD5, + + 0xA6,0xF1,0x29,0x3E,0xBA,0xF8,0xC4,0x0D,0x8E,0x34,0xF4,0xE6,0x48,0xD5,0xC5,0x33, + + 0x18,0x45,0x49,0x54,0x86,0xBC,0x0B,0xD6,0xD5,0x11,0x69,0x85,0x79,0x60,0x45,0xD5, + + 0x2A,0xF2,0x12,0xB5,0xCB,0xB8,0xD1,0x6C,0xE4,0x4E,0xDD,0xF3,0xC8,0xF7,0x7C,0x9E, + + 0x8F,0x83,0x66,0x12,0x06,0xF9,0x4B,0x43,0xB6,0xB7,0xD4,0xA6,0x89,0x71,0x77,0xD6, + + 0xCC,0xD6,0x90,0xFF,0x82,0xE2,0xB7,0xDC,0x9A,0xC9,0x3D,0x4E,0xF3,0x58,0x55,0x0F, + + 0xFA,0xA9,0x7C,0xA1,0xC3,0xFC,0x8C,0x22,0x43,0xC1,0x97,0x3D,0x7C,0xF2,0x2E,0xE8, + + 0xBE,0xD4,0xAF,0xED,0x46,0xF9,0x87,0x44,0x62,0xC0,0x29,0x4C,0x79,0x76,0x5E,0x51, + + 0xD1,0x3C,0xDC,0x26,0xED,0xF3,0x2C,0x3E,0x06,0x3D,0x4D,0x3E,0x76,0x85,0x28,0xDD, + + 0x65,0xD9,0xB7,0x1F,0x9A,0x34,0x40,0x22,0x4E,0x47,0x62,0x84,0xDC,0x0D,0xC7,0x18, + + 0x2A,0xDE,0xE6,0xA9,0x9F,0x2E,0x0E,0x8D,0xCF,0xD7,0xEF,0xFE,0xF8,0xBF,0x57,0x41, + + 0x2C,0xDB,0xEB,0xBF,0xF7,0xA4,0xBF,0xBF,0x74,0x5E,0xF8,0x21,0x60,0xBE,0xA8,0x25, + + 0x85,0xC1,0x96,0x66,0xAF,0x8D,0x18,0x24,0xC7,0x31,0x50,0x18,0xD9,0x22,0x51,0xA2, + + 0xA4,0xAE,0xF7,0x10,0x4C,0xB2,0xA0,0xDE,0x51,0x0C,0x58,0x08,0xD8,0x65,0xA9,0x30, + + 0x05,0x73,0x98,0xA0,0x27,0xAF,0xF9,0x04,0xF3,0x9F,0xC9,0x6A,0xAF,0x22,0x9F,0x19, + + 0x24,0xAC,0xAF,0xF0,0xA1,0x25,0xB5,0xA3,0x89,0x1E,0xC4,0xB7,0x51,0x9A,0x1A,0x48, + + 0xA1,0x46,0x78,0x64,0xFF,0x44,0x45,0xE2,0xDF,0xCD,0xB6,0xC5,0xB9,0xC7,0x56,0x78, + + 0x22,0x35,0xA3,0x32,0xEC,0x4B,0xA5,0x0A,0xCC,0x13,0xA6,0xC4,0xBA,0x06,0x1D,0xDA, + + 0x6B,0x6D,0x79,0x55,0x35,0x3D,0x69,0x8F,0x4F,0xD0,0xEF,0xD5,0x18,0x65,0x29,0x53, + + 0xF3,0xAA,0xAB,0x51,0x92,0x57,0x51,0x60,0x62,0x38,0xCB,0x3F,0x2C,0xEA,0x13,0x4F, + + 0xCA,0x4B,0xA2,0x4C,0xB9,0x87,0x70,0x28,0x49,0x22,0xAA,0xCC,0x04,0x73,0x68,0x1A, + + 0x0A,0xC9,0xE8,0x09,0x18,0x79,0x0B,0x09,0xBD,0xA8,0x9F,0xBE,0xD9,0xF8,0x3D,0x3C, + + 0xE9,0x0E,0x96,0x7E,0xA0,0x44,0x03,0x00,0x8B,0x49,0xDF,0x4B,0x3A,0x2A,0x55,0x2C, + + 0x89,0xA0,0xEB,0x1F,0xDC,0x26,0xAC,0x11,0xBA,0x4B,0xC1,0x2A,0x7A,0xE4,0x9E,0xAA, + + 0xE9,0x69,0x7D,0x1C,0x9A,0x63,0x69,0xE7,0xF5,0x4A,0x84,0xC8,0xAD,0x00,0x13,0x1F, + + 0xAE,0xB2,0x9E,0x1A,0x63,0x6C,0xE7,0xBF,0x99,0x47,0xBC,0x40,0x5A,0x2F,0x3B,0x6D, + + 0x6B,0x31,0xFE,0x2D,0x9E,0x60,0xFE,0x18,0x6B,0xD1,0x6C,0xFE,0xA6,0xB3,0x12,0x96, + + 0x2E,0xBE,0xE0,0x22,0x4A,0x92,0x5C,0x89,0xC3,0x53,0xE5,0xCC,0xBB,0x73,0xC4,0x60, + + 0x9D,0xEB,0x44,0x74,0x97,0xCB,0xC3,0xD5,0xED,0x4B,0xAC,0xF4,0x74,0x7F,0xE0,0x78, + + 0xDC,0x5C,0xB2,0xBD,0xD3,0xA1,0x54,0x91,0x1A,0xD1,0x0B,0x56,0xF3,0x75,0x85,0x05, + + 0xD4,0x3E,0x05,0x01,0xC4,0x1E,0xEB,0x25,0x9E,0x00,0xAD,0x57,0x72,0x76,0x6F,0x90, + + 0xB3,0x5E,0x8D,0xD5,0xB5,0x1B,0xDD,0x0C,0xD8,0x3F,0xC4,0xD7,0x0E,0x77,0x9F,0xD9, + + 0xA2,0x8D,0x43,0x35,0x91,0x35,0x57,0xA0,0x72,0xD9,0x82,0xD4,0x8D,0xDB,0x16,0xBC, + + 0x5B,0xBA,0xB2,0xE9,0x8A,0xBF,0xE7,0xF2,0x7F,0x4E,0x23,0x07,0x55,0x19,0x9E,0xDD, + + 0x43,0xA9,0xF7,0xD6,0x11,0xE7,0x0C,0x3B,0x45,0x46,0x01,0x96,0x90,0xF5,0xED,0xA3, + + 0xC1,0x6B,0x4A,0x24,0x10,0x36,0x32,0x97,0x1C,0x39,0xE3,0x50,0x39,0x86,0x64,0x88, + + 0x2B,0x58,0x04,0x0E,0x00,0xD2,0x4F,0x4B,0x6E,0xAB,0xD0,0xEA,0x72,0x7E,0xB6,0x76, + + 0x39,0x54,0x11,0xBD,0x16,0x18,0xA7,0x2A,0x61,0x51,0x65,0x5E,0xD8,0xF3,0x03,0xE6, + + 0x9B,0xD5,0x91,0xEF,0x97,0x1B,0xD6,0x69,0xAA,0x36,0xB7,0x91,0x59,0xF0,0xF2,0x5E, + + 0x63,0x0A,0x53,0xBC,0xD6,0x1A,0x9C,0x7F,0xC5,0x15,0xE0,0x5F,0x58,0xF4,0x38,0xCF, + + 0x8B,0x83,0xF4,0xDF,0x99,0x3F,0x34,0xF0,0x6B,0x9C,0xE8,0x48,0xB0,0xAD,0x2D,0x37, + + 0xDA,0x73,0xC1,0xBE,0x35,0x5F,0x49,0xDC,0x96,0x56,0x0E,0xEF,0x07,0x1E,0x5F,0x19, + + 0x27,0xE3,0xB9,0x6C,0x38,0x3A,0x6D,0x61,0x4D,0x12,0x9F,0xF9,0x32,0xAF,0xA8,0x99, + + 0xA7,0x82,0x0B,0x0D,0xB3,0x86,0x5D,0x11,0x30,0x82,0x73,0x8E,0xD5,0xD9,0x31,0xA6, + + 0x02,0x4B,0xBE,0x2F,0x35,0xE0,0x6F,0x27,0x42,0xE0,0x04,0xC4,0x52,0x08,0xE8,0xE3, + + 0x5D,0x2C,0x88,0x42,0xB6,0x0C,0xF9,0xF5,0x76,0x2E,0x2B,0x75,0x2E,0xE1,0xB5,0x87, + + 0x8D,0xE3,0xAD,0x96,0x75,0xA4,0xC5,0xBA,0xC2,0x82,0x41,0x55,0x2B,0xA0,0x72,0x54, + + 0x47,0xE3,0xBC,0x50,0x57,0xA0,0xF9,0x8E,0xD3,0xCB,0xE2,0x57,0xAA,0xC3,0x98,0xC0, + + 0x9B,0x5D,0xF8,0x5A,0x25,0xBC,0x4F,0x28,0x56,0xC0,0x0F,0x14,0x3C,0x67,0x0F,0x12, + + 0x17,0x08,0x50,0xA5,0x79,0xA3,0x03,0x99,0x1F,0x78,0x1F,0x05,0x71,0x33,0x59,0xB8, + + 0x23,0xEA,0x59,0xB4,0xF0,0xB6,0xF1,0x24,0xE8,0xD8,0x0A,0xA0,0x3F,0x85,0x91,0x5B, + + 0x20,0x97,0xC9,0x9A,0x17,0x37,0x63,0x63,0xE4,0xD1,0xF1,0x63,0xB4,0x2D,0x6A,0x9E, + + 0x2E,0x69,0xAA,0x9A,0xF5,0x99,0xB2,0x28,0x2E,0xD3,0x72,0x4F,0x9B,0xEC,0x3A,0x0F, + + 0x55,0x72,0x2D,0xE3,0x11,0xEB,0xBA,0xFA,0x6F,0x02,0x3C,0xBC,0xDD,0x38,0xE7,0x2B, + + 0xB4,0x88,0x4F,0x9D,0x9D,0xA0,0x56,0x5D,0x41,0x4C,0xFF,0xE9,0xD6,0xA4,0xAF,0x9F, + + 0xF9,0xA7,0x38,0x5C,0x61,0x9A,0xBB,0x39,0xBD,0x89,0x83,0x6F,0xD5,0xE4,0x9A,0x0C, + + 0x72,0x7B,0xBB,0x1F,0xBB,0x03,0x12,0x68,0x4D,0xC1,0xE1,0x84,0xBF,0xA3,0x33,0x95, + + 0xA8,0x89,0x3C,0xDC,0x9F,0x37,0x07,0x11,0x3B,0x12,0xAC,0x0D,0x79,0x4B,0x9C,0x5E, + + 0x6F,0x51,0x31,0x47,0x3B,0x01,0x63,0x19,0xCA,0x43,0x5F,0x1C,0xF0,0x48,0xB7,0xE4, + + 0x78,0x0F,0xD3,0xB4,0x5E,0x25,0x63,0x6A,0x40,0x49,0xA9,0x3F,0x8F,0x42,0x1A,0xB7, + + 0x45,0x94,0x7F,0xA7,0xEC,0x91,0x21,0xD0,0x57,0xE6,0xD4,0xA4,0x08,0xFF,0x4D,0xD2, + + 0x69,0x92,0xD2,0xD7,0x71,0x90,0x59,0x46,0x6D,0xBD,0xF0,0xB4,0x6B,0x5A,0x5C,0xED, + + 0xC5,0x96,0xD3,0xA6,0x3F,0x93,0xCF,0xA1,0xA4,0xC9,0x8F,0x58,0xF2,0x73,0xB9,0x1B, + + 0x22,0x52,0x10,0xB6,0x16,0xFD,0x64,0xCD,0x40,0x55,0x61,0xBD,0x75,0x31,0x83,0x2D, + + 0xA4,0xE8,0xFC,0xCB,0xC7,0xF6,0x8C,0x0A,0xBD,0x99,0x63,0x15,0x58,0x59,0x80,0x5C, + + 0x24,0xD7,0x65,0x3E,0xAF,0xB1,0x3D,0x14,0x77,0x98,0x2C,0xB1,0x9E,0x56,0x7B,0xA1, + + 0x11,0xEB,0x26,0x87,0xB0,0x64,0xEE,0x83,0xA8,0x5B,0x25,0x74,0x82,0x59,0x37,0xD2, + + 0x36,0x2A,0xE8,0xAD,0xB1,0x65,0x82,0x34,0x25,0xD7,0x9B,0xCA,0x1C,0x54,0x06,0x1A, + + 0x2A,0x6B,0x25,0xCF,0x78,0xF4,0x32,0xEA,0x24,0xC3,0xE8,0x4B,0xE4,0xFC,0x95,0xEA, + + 0xAD,0x86,0xF5,0x8B,0xB8,0x48,0xD6,0x8B,0x1A,0xAE,0x2D,0xFD,0x7B,0xD2,0xB9,0x4C, + + 0x11,0x6C,0x24,0xCE,0xF8,0x11,0x52,0xDD,0xCD,0x9A,0xF3,0x52,0xF0,0xB8,0x96,0xEB, + + 0x2D,0x8D,0xA3,0x8B,0xC2,0xDB,0xE0,0x3B,0x04,0xE2,0x40,0x3D,0xFE,0x1D,0x4F,0xC2, + + 0xAE,0xDC,0xAC,0x4A,0x68,0xE4,0x7E,0xFF,0x93,0x5A,0xC8,0x5E,0xB4,0x2D,0x95,0x7A, + + 0x5B,0x4C,0xBC,0xD6,0x9A,0x12,0x69,0x12,0xB4,0x00,0x49,0x5B,0x79,0x2F,0xCB,0x6E, + + 0x3D,0x01,0xBE,0xD8,0x1B,0x11,0x70,0x2B,0xEA,0x90,0x89,0x5F,0x0A,0xBD,0x4F,0x7F, + + 0x8F,0x4E,0xB9,0x98,0x56,0x1C,0x87,0xDF,0xDC,0x41,0x34,0xC1,0x99,0x0A,0xD6,0xFA, + + 0xFB,0x42,0x67,0x44,0x1C,0xDB,0x49,0x11,0xE5,0x31,0x92,0x42,0x2C,0x2F,0x30,0x6F, + + 0x80,0x0C,0x3F,0xB5,0x35,0x6D,0xAF,0x95,0x09,0x22,0x74,0xA6,0x30,0x69,0x85,0x04, + + 0x75,0x0E,0x7E,0x21,0x74,0xA1,0xEC,0x53,0xF6,0x1D,0xAB,0xD6,0xF3,0x2F,0xBA,0xA1, + + 0x7D,0xA0,0x59,0x66,0xB2,0x28,0xD9,0xF1,0x4F,0xB7,0xD9,0x53,0xB1,0xF5,0xBB,0x70, + + 0x51,0xAB,0x47,0x37,0x26,0x85,0x11,0xA7,0x44,0xF6,0x98,0xF6,0xF3,0xE3,0x36,0x57, + + 0xA2,0x47,0x82,0x50,0xF8,0xB4,0x1A,0x83,0x1C,0xCE,0x80,0xF6,0x50,0xC3,0xE1,0x33, + + 0xE0,0x5A,0xF9,0xBA,0xFB,0x57,0x4C,0x21,0x82,0x7B,0x2E,0x96,0xD4,0x8E,0x0E,0xE5, + + 0x6A,0xBD,0xF7,0x78,0xD0,0x07,0x92,0x4D,0x28,0x03,0xE7,0x58,0x70,0x61,0xC2,0x94, + + 0x5F,0x06,0x4B,0xE4,0x44,0x65,0xC2,0x5A,0xF3,0x57,0x6A,0xC4,0xD5,0xE3,0xF1,0x9C, + + 0x05,0xDD,0x85,0x3C,0x3F,0x71,0x9E,0x3D,0x7A,0xA9,0x22,0x2C,0xFE,0x6D,0x3B,0xF6, + + 0x0B,0x07,0x9B,0xCD,0xBA,0x6A,0x68,0xD2,0x3F,0x08,0x97,0xCB,0xEB,0x6A,0x9B,0x06, + + 0xB5,0xBF,0x63,0xB9,0x9F,0x33,0xDB,0x29,0x84,0x17,0x99,0x4F,0xEA,0x07,0x82,0xD1, + + 0x69,0x04,0x4D,0xBF,0x26,0x81,0x68,0xD8,0xDF,0x0E,0x9A,0xFE,0xF9,0x6A,0x81,0xDC, + + 0x51,0xCE,0xAF,0xB4,0xDD,0xE0,0x42,0xFC,0x11,0xE6,0xA2,0x58,0x30,0x62,0xC3,0x0A, + + 0x70,0xA3,0xD0,0xAD,0x9E,0x03,0x14,0xCD,0x47,0xE3,0xDB,0x25,0xB9,0x4E,0x8B,0xC0, + + 0x35,0x63,0xB4,0xA0,0x93,0x6D,0x13,0x69,0x72,0xCF,0x5B,0x0E,0xE9,0x2D,0x02,0x68, + + 0xF0,0xDD,0x5F,0x2B,0x4F,0x32,0xD4,0x08,0x5A,0xFD,0xB4,0x75,0xD1,0xFA,0xB4,0xD7, + + 0xFF,0xEE,0xC2,0xDF,0x32,0xC3,0x04,0x38,0xEC,0xF7,0xAE,0x4B,0x42,0x71,0x7B,0x21, + + 0x93,0x60,0x45,0x98,0xFC,0x70,0xC5,0x43,0x09,0xA3,0x12,0x54,0x53,0x22,0x54,0xB5, + + 0x04,0xCC,0xDD,0x35,0xFF,0x71,0x4B,0x71,0xEF,0xA6,0x25,0x72,0x2F,0xDE,0x84,0x59, + + 0x44,0x56,0x04,0x80,0x41,0xC9,0xC4,0xFF,0x56,0x52,0x60,0x86,0x99,0x30,0xE0,0x54, + + 0x79,0x8C,0xDF,0xA7,0x43,0x59,0xED,0xFC,0xE1,0x5F,0xF4,0x87,0xFF,0xF3,0x86,0x49, + + 0x03,0x69,0x4E,0xA5,0xB8,0x96,0x1D,0x76,0x43,0xD1,0xF4,0xE2,0x7D,0xF0,0x45,0xAC, + + 0x4A,0xAD,0xAF,0xD0,0xB2,0x99,0x3F,0x93,0x1C,0x32,0xDD,0x35,0xE1,0xFC,0xAA,0xF7, + + 0xFE,0x9A,0x56,0x74,0x0B,0xB6,0x81,0x2C,0x3D,0x25,0xEE,0xDC,0xF8,0x67,0xF1,0x69, + + 0x03,0xE6,0x10,0x03,0x5A,0x3D,0x78,0x08,0x6A,0x99,0x98,0x41,0x71,0x3B,0x79,0x38, + + 0xC3,0x99,0x3F,0x72,0x37,0x97,0xAC,0x5A,0xCE,0x36,0xCD,0xAF,0x6A,0x72,0x35,0x6A, + + 0xDD,0xB6,0xF6,0xEC,0xDC,0x2D,0x39,0x1D,0x8B,0xFF,0x90,0x3E,0xD9,0xAB,0x86,0x51, + + 0x4C,0x21,0xA6,0x8D,0xD7,0xB7,0x6E,0x95,0x4B,0x8C,0x1B,0xDD,0x48,0x3E,0x55,0x98, + + 0x67,0x5F,0xAE,0x1C,0xF9,0x90,0x14,0x03,0xC8,0x5B,0xA6,0x0D,0xD8,0x3D,0xBA,0x0E, + + 0xAC,0xAC,0xBC,0x2F,0x3A,0xE1,0x37,0xA8,0x64,0x53,0xC3,0xE7,0x99,0x81,0x08,0x76, + + 0x0A,0x9D,0x5E,0x3F,0x39,0x37,0x53,0xFE,0x4A,0xD7,0xE1,0x55,0xFD,0x5E,0x33,0x0D, + + 0x7C,0x0B,0xFF,0xC0,0x18,0xBB,0x8B,0x6C,0xD9,0x3D,0x48,0xA2,0x1F,0xDC,0x6E,0x70, + + 0xEE,0xE2,0xB6,0x09,0xB6,0x24,0x81,0xD0,0xE9,0xBC,0xFC,0x44,0x66,0xE1,0x51,0x3E, + + 0x82,0x91,0x63,0x61,0x6B,0x0F,0x9C,0xA7,0xF6,0xC2,0xF9,0x22,0xF6,0x10,0x70,0x9B, + + 0x20,0x7C,0x8F,0xF5,0xDC,0x0C,0x41,0xC0,0xE3,0x1E,0x41,0xDF,0x13,0x2E,0xA0,0xDB, + + 0x3F,0x8E,0x26,0x74,0xF7,0x0B,0x0E,0x02,0xAF,0x7E,0xE4,0xD1,0xF7,0xFB,0xA3,0x6E, + + 0xEC,0xC1,0xD2,0xB4,0x11,0xFD,0x06,0xAB,0xAE,0x3F,0xD9,0x71,0xDA,0x63,0xE1,0x00, + + 0x7C,0x0D,0xF2,0xC5,0x97,0xBE,0x21,0x14,0xCA,0x4B,0x45,0x05,0x3D,0xA2,0x53,0xE3, + + 0x12,0x28,0x70,0xBA,0x87,0x18,0x29,0x04,0xCB,0x4A,0x99,0x04,0x5B,0x61,0x8E,0x79, + + 0x22,0x7E,0x28,0xF2,0x94,0x53,0x2A,0x2F,0x27,0x8B,0xCD,0xD3,0x54,0xAA,0xAD,0xF2, + + 0xC7,0x44,0xEA,0xE7,0x8F,0x32,0x02,0xC5,0xA4,0x8A,0x9A,0x1F,0x6E,0x19,0x5D,0x36, + + 0xE7,0x89,0x8B,0xE3,0x22,0xD1,0xCC,0xAF,0xFE,0xF9,0x75,0x1D,0x3D,0x15,0x69,0x6A, + + 0xB1,0x80,0x0E,0x9B,0xCC,0x81,0xD7,0xA4,0xCC,0x0B,0x03,0xDF,0x83,0xED,0xC6,0x28, + + 0x08,0x3E,0xB9,0x0C,0xE1,0x77,0x0C,0xB7,0x2D,0xB8,0xF2,0x2E,0x3C,0x51,0x2D,0xAA, + + 0x0E,0xCD,0xB5,0x56,0x6C,0xAD,0x85,0x6B,0x54,0xE8,0xFA,0x3E,0x2F,0xAF,0xB1,0x38, + + 0xD1,0xCC,0x80,0xCB,0x96,0x5D,0xE4,0x81,0x2F,0x81,0x91,0xED,0x2F,0x68,0x47,0xE0, + + 0x66,0x86,0x34,0x5F,0xE8,0xA3,0xC1,0x66,0x67,0x02,0xEF,0xD8,0x7E,0xF0,0xB7,0xC5, + + 0xEE,0x93,0xAC,0x96,0xB3,0x42,0xA3,0x03,0x2C,0x01,0xB6,0xD4,0x47,0xF0,0xEC,0x3A, + + 0x25,0x9C,0x2C,0x94,0x91,0x4A,0xFC,0x1A,0x1D,0xDC,0x04,0x48,0x88,0x9D,0x2D,0x87, + + 0x2C,0x8F,0x85,0x96,0xB2,0x18,0x33,0x9E,0x6C,0x28,0x4D,0x83,0xC7,0xF6,0xD6,0xB4, + + 0x04,0xEC,0xBC,0x7F,0xE9,0xFE,0xC2,0xC0,0x87,0xBD,0x5E,0xF7,0xF1,0xDF,0x1A,0x1B, + + 0x45,0x0E,0x12,0xB4,0x95,0xB2,0x70,0x00,0xE4,0xDE,0x02,0x16,0x89,0xFB,0x3E,0x9C, + + 0x21,0x27,0xE4,0x53,0x96,0x3F,0x42,0xDE,0xEA,0xB7,0x31,0xCB,0x71,0xD4,0xF6,0x30, + + 0x22,0x1B,0xED,0x68,0x15,0xB0,0x13,0x81,0x0D,0xA7,0x41,0x05,0xD2,0x7D,0xBD,0x94, + + 0x4E,0x4D,0x02,0x35,0x16,0x3D,0x65,0x76,0x0E,0xA6,0xDC,0x98,0x54,0x76,0x8F,0xF4, + + 0xB9,0x83,0xFE,0x9E,0x0F,0x6A,0xD1,0xEA,0x28,0x9A,0x9E,0x5E,0xE0,0x09,0xB9,0xDD, + + 0xF3,0x91,0x09,0x7C,0xDD,0x46,0x46,0x90,0x15,0x14,0x39,0xBC,0xC0,0x04,0x33,0xED, + + 0x53,0x37,0x1F,0x70,0x55,0xB1,0x66,0x92,0x05,0x59,0xCE,0xC9,0xDF,0x9A,0xAA,0xBB, + + 0xA7,0x8B,0xF6,0x9E,0x1A,0xA0,0xC0,0xC8,0x8F,0xB5,0xA9,0xDD,0x95,0xF6,0xA6,0x53, + + 0x45,0x96,0x11,0x2C,0xBC,0x94,0x68,0xC6,0x2D,0xFC,0x65,0x6A,0x56,0xE8,0xA5,0xA9, + + 0x70,0xDF,0x96,0xAC,0xC0,0x16,0x34,0xFB,0x90,0x70,0xEA,0x59,0x8E,0xF2,0x65,0xA0, + + 0xEE,0x31,0x43,0xAD,0xFD,0x51,0x09,0xD3,0x07,0x8F,0xAD,0xEE,0x5D,0xBC,0x28,0x6F, + + 0xA9,0x4D,0x49,0xDE,0xE3,0xB9,0xEA,0x2B,0x18,0xDB,0x4B,0x84,0x5C,0xBE,0xA7,0x2D, + + 0x06,0xA8,0x20,0x76,0x72,0x5C,0x72,0x21,0x43,0x0A,0x85,0x46,0xA7,0x05,0x30,0xE3, + + 0x71,0x64,0x2F,0x2C,0x93,0x25,0x0F,0xB4,0x69,0xA6,0x38,0x27,0x6D,0x05,0x26,0x83, + + 0x3C,0x00,0x36,0x03,0x7B,0x53,0x4F,0xC3,0xC4,0xEF,0xA9,0xDA,0x18,0xF3,0x31,0xE2, + + 0xF9,0x88,0x41,0x77,0x50,0xA9,0x21,0xCF,0x6D,0x4E,0x59,0x11,0x61,0xC3,0x1A,0xA2, + + 0x6A,0x15,0xD1,0x83,0xFB,0x35,0xC1,0x93,0x7E,0xEB,0xE8,0xB4,0x0E,0xCF,0x10,0x8C, + + 0x05,0x24,0xD2,0x56,0xA0,0x88,0xF7,0xF4,0x06,0x4C,0xE6,0x96,0x49,0x0A,0x3F,0x69, + + 0xC1,0x09,0xA7,0x69,0x7B,0x17,0x42,0x8E,0x1F,0x3B,0xA9,0x45,0x32,0x09,0x7C,0x33, + + 0x74,0x62,0x5F,0x25,0x13,0x31,0xE6,0xB6,0x01,0x27,0x49,0x85,0x60,0xC6,0xFD,0xFB, + + 0x2A,0xA7,0x05,0xFF,0x28,0x6A,0x04,0x89,0xB7,0xE5,0x83,0x5F,0x68,0xEF,0xDE,0x6A, + + 0xB2,0x82,0xB9,0x35,0x1F,0x0A,0x62,0x3C,0xA0,0xD8,0xA4,0x09,0xD4,0xEF,0x57,0xFA, + + 0xAE,0xA5,0x97,0x63,0x60,0x7B,0x43,0x95,0x3F,0xE1,0x17,0xFA,0x90,0x8B,0xE8,0x30, + + 0x8F,0x2A,0x3B,0x99,0xB1,0x76,0xDB,0x18,0x27,0x46,0x1C,0xFD,0xDD,0x4B,0x7A,0xB7, + + 0x0C,0x4D,0xCA,0x58,0xD2,0xCD,0x5A,0x7D,0xAB,0xE3,0x43,0x9F,0xDE,0xE1,0x28,0x5C, + + 0x08,0xAF,0x0A,0x18,0xC6,0x50,0x1B,0xFC,0x4E,0xB1,0xE2,0x58,0xD9,0x65,0x4B,0xCD, + + 0xAE,0x6E,0xD6,0x5E,0xAA,0x7F,0xC5,0x9A,0xFA,0x67,0x81,0x3A,0x31,0x0A,0x15,0xBB, + + 0x8F,0x72,0x0B,0x4C,0xC7,0x82,0xE6,0xFD,0x83,0xBF,0x0F,0x9F,0x59,0x47,0x62,0x20, + + 0x23,0xD0,0xCA,0x00,0x18,0x6D,0x45,0x8F,0x1C,0xE5,0xDE,0xB9,0x51,0x52,0x29,0xAC, + + 0xF8,0x2C,0x73,0x10,0x19,0x2E,0x0B,0x34,0x1D,0x07,0x85,0x8B,0x1D,0x33,0xA6,0x21, + + 0x7C,0x31,0xBD,0x7B,0x1C,0x3F,0xC1,0x9B,0xC6,0xA7,0xC5,0x3D,0xF4,0x5A,0x22,0xAE, + + 0xD9,0x51,0x4D,0xB1,0xF9,0xB5,0x47,0x8D,0x89,0x22,0xD5,0xB5,0xF7,0x32,0xFB,0x22, + + 0x24,0x55,0x4C,0x01,0x93,0xBE,0x52,0x92,0x89,0xB5,0xB4,0x44,0xCE,0x79,0xB3,0xA3, + + 0x4F,0x57,0xB3,0x36,0x17,0x38,0x4D,0x62,0x9C,0xF8,0x4C,0x07,0xF7,0xF8,0xCE,0x45, + + 0x86,0xBB,0x3E,0x27,0x13,0xBC,0x2B,0xC9,0x6D,0xFB,0xDF,0xF5,0x51,0x7B,0x59,0x0F, + + 0x56,0x18,0x87,0x2E,0x10,0x3A,0xCB,0x81,0x63,0xD1,0x8F,0xDB,0x18,0x13,0x51,0x36, + + 0xA5,0xE5,0x82,0x4C,0x3E,0x7A,0xD6,0x89,0xF8,0xD3,0xB4,0xBD,0x2B,0x50,0xDE,0x58, + + 0x6D,0xCD,0x3A,0xFE,0xC6,0x7B,0x60,0x8D,0x0A,0x93,0x08,0x38,0x51,0xF7,0x61,0x2C, + + 0x5D,0xBC,0x93,0x57,0x19,0xE5,0x13,0x4B,0xCC,0xD7,0x8E,0x5D,0x2E,0xDB,0xDF,0x86, + + 0x87,0x2F,0x1F,0xB4,0xBF,0x7A,0x09,0x8C,0x5A,0x16,0xA5,0x5F,0x9A,0xDC,0xF2,0xB7, + + 0x89,0x5E,0xCC,0xCD,0x99,0x7D,0xF1,0xA8,0x2E,0xF7,0xED,0x0E,0x5E,0xD3,0x8E,0x19, + + 0xF5,0xBD,0xF6,0x8C,0x3F,0x32,0xA1,0xD8,0x1F,0xFC,0xA0,0xFB,0xC6,0x72,0xD7,0xDB, + + 0x56,0xFF,0xFF,0x1D,0x4D,0x31,0xC1,0xF4,0x81,0x4F,0x77,0x9F,0x98,0xD2,0x04,0xDB, + + 0xB3,0x94,0x5F,0xBF,0xCC,0x3F,0x05,0x8D,0x97,0xF0,0x4F,0x9B,0x04,0x6F,0x4A,0x60, + + 0x25,0x33,0x1B,0xE4,0xB8,0x5D,0x4B,0x05,0xE5,0x61,0x59,0x02,0xF5,0x3F,0x70,0xA7, + + 0x66,0x50,0x9F,0x2E,0xE5,0xD0,0x6B,0xC8,0xCA,0x7C,0xA9,0xB2,0x28,0x3B,0xE1,0x27, + + 0xF1,0x8F,0xD9,0x83,0xBC,0x3C,0xE5,0xD8,0x2D,0x81,0x05,0x45,0x2B,0x97,0x3C,0x97, + + 0xAD,0x97,0x69,0xB6,0x31,0xE1,0xDE,0x49,0x13,0xCB,0x29,0x45,0x3E,0x02,0xA0,0x63, + + 0x98,0x5B,0x76,0xA4,0xBA,0x09,0x48,0x91,0x2A,0xA1,0x50,0x04,0x72,0x19,0xF8,0x0E, + + 0x01,0xC4,0xF2,0x4A,0x36,0xE5,0x1E,0x4A,0xAE,0xB4,0x2B,0x85,0xDB,0x68,0xD5,0x21, + + 0x79,0xC4,0xF0,0xA5,0x8A,0xDB,0x49,0x90,0xF6,0xAA,0xE6,0x94,0x52,0x6B,0xED,0xC1, + + 0x83,0x8F,0xE5,0x41,0x5F,0x96,0x63,0x71,0x74,0x6A,0x1D,0x8D,0xF3,0x9C,0x1A,0xEA, + + 0x78,0x34,0xB6,0xD4,0xE9,0xA7,0x35,0x39,0x34,0xDB,0xE8,0x5F,0x34,0x09,0xEA,0xA3, + + 0xFB,0xE5,0xB4,0x2F,0x71,0xB6,0x09,0x9A,0xB1,0x58,0xF0,0x23,0x7C,0x58,0x1E,0x50, + + 0x70,0x1B,0x17,0x70,0x3F,0x21,0x86,0x17,0x34,0xE9,0xCA,0x49,0x37,0xFB,0x94,0x88, + + 0xA7,0x56,0x13,0x6F,0x95,0xA0,0x1B,0x36,0x05,0x5A,0xFD,0x17,0x34,0xFA,0xF1,0xCE, + + 0x2A,0x84,0x78,0x5D,0x2A,0x45,0xE4,0x1A,0xCE,0xDA,0x72,0x96,0xE2,0x57,0x54,0x6F, + + 0x09,0xAC,0x12,0x56,0xF6,0x3C,0xEF,0x69,0x7F,0x5C,0x05,0x0C,0xF8,0xFD,0xA3,0x6F, + + 0x67,0x71,0xBA,0xC1,0x77,0xDF,0x3B,0x7F,0x06,0x2F,0xB3,0x92,0xDE,0xAF,0x50,0x25, + + 0x2C,0xEA,0x13,0x7B,0x3C,0xA9,0x45,0x4E,0xED,0x22,0x44,0x99,0xFB,0xE0,0xB3,0x8B, + + 0x9E,0x60,0xA2,0x14,0x3C,0xB8,0x6C,0xA6,0x4C,0x16,0xA2,0x93,0x72,0xB1,0x74,0x97, + + 0xCC,0x92,0xE4,0x96,0xD4,0x1E,0xBE,0x80,0x05,0x24,0xA5,0xC5,0x45,0x7B,0xD7,0xF0, + + 0x8E,0x1D,0xF1,0xB8,0xD8,0xF0,0x0B,0x96,0x8F,0xDD,0xE4,0xD5,0x57,0xDA,0x57,0xF3, + + 0xC8,0xFD,0xBC,0x13,0x9D,0xAC,0x43,0xB5,0x04,0x50,0xC5,0xD7,0xCE,0x06,0xA9,0xEF, + + 0x20,0xB5,0xCD,0xBC,0xA7,0xA4,0xD4,0x90,0x04,0xA8,0x4C,0xB9,0xD5,0x91,0x36,0xA3, + + 0x4F,0x74,0xB8,0x25,0xB3,0x38,0xCF,0xC7,0x9B,0xC4,0xF8,0x51,0x8A,0xEE,0x44,0xB0, + + 0xCA,0x99,0x75,0x37,0x73,0x17,0x0B,0xE4,0x47,0x69,0x4A,0x05,0xD2,0xB4,0x14,0xA0, + + 0x97,0xD8,0xBF,0x80,0x5C,0xD3,0x26,0xF3,0xE1,0xF7,0x7D,0xD3,0x08,0x2A,0x18,0x2B, + + 0xEE,0x99,0x9E,0x70,0x90,0xB5,0x9F,0x95,0xE8,0x77,0x20,0x2A,0x35,0x4C,0x66,0x42, + + 0xC4,0xFA,0x88,0xB7,0xB1,0xFB,0xA8,0x4B,0xCE,0x19,0x73,0x93,0x7B,0xD8,0x19,0x2B, + + 0x6E,0xBA,0x58,0x9C,0x88,0xFE,0x22,0xB4,0xD8,0x77,0x1A,0xD0,0x61,0x71,0x4D,0xBB, + + 0x44,0xD8,0x3F,0xB5,0xBB,0xFA,0x0D,0x8B,0xF5,0x74,0x9E,0x4F,0x02,0xF4,0x60,0xFF, + + 0xC7,0x7D,0xDE,0x31,0x1A,0x69,0x82,0x94,0xAF,0xC3,0x8E,0xC9,0x83,0xF3,0xEE,0xFB, + + 0x8D,0xDC,0x1D,0xE2,0xD4,0xF9,0x00,0xCF,0x92,0x51,0xDA,0xC8,0x5D,0xED,0xCB,0x59, + + 0xF2,0x94,0x37,0xDE,0x98,0x35,0x3D,0x09,0x7F,0xC7,0x67,0xCF,0xBE,0xBE,0x55,0x28, + + 0x97,0x30,0xD5,0x6F,0x76,0xFE,0x35,0xE6,0xFE,0x70,0x3D,0x5F,0xB7,0x9D,0x60,0x5F, + + 0xA3,0x0D,0xD4,0x43,0xDA,0x43,0x28,0x70,0x48,0x4F,0x6B,0xD4,0x17,0x91,0x28,0x11, + + 0x8C,0x09,0xC0,0x44,0x33,0x62,0x12,0x32,0xE2,0x5A,0xC2,0x06,0x2D,0x7E,0x73,0x04, + + 0x8C,0x6C,0xBF,0xA5,0x5A,0x61,0x71,0x65,0x40,0x4F,0xE8,0x43,0xF1,0xCB,0x89,0x12, + + 0x65,0x4F,0x0B,0x6E,0x1C,0xA5,0x9E,0x57,0x23,0x63,0x21,0xCE,0x5E,0xB5,0x38,0x44, + + 0xE2,0xA0,0xFA,0xBB,0x71,0xF2,0x30,0x62,0xC9,0x49,0x7F,0x0B,0x8F,0xB0,0x72,0xBF, + + 0x30,0x01,0xF0,0xB4,0x03,0xAE,0xBF,0x03,0x7B,0xC3,0x7B,0xE2,0x8F,0x83,0x39,0x68, + + 0x69,0x57,0x56,0xC1,0xBA,0xA8,0xAE,0xA6,0x2B,0x17,0x63,0x7A,0x3E,0x27,0xF1,0xAE, + + 0x3E,0x6B,0x25,0x68,0x95,0x66,0x59,0x31,0x8B,0x5C,0x87,0xE6,0xD7,0xCC,0x03,0x4E, + + 0x40,0x13,0x02,0xCC,0x00,0x29,0x90,0x5A,0xB3,0xB7,0x9A,0xFC,0xA1,0xBE,0x2E,0x2E, + + 0x2B,0x0B,0xE8,0x11,0x1A,0x38,0xDE,0x1C,0xA0,0x90,0xA2,0xC6,0xA0,0x07,0x97,0x6F, + + 0xA9,0x4A,0x53,0x31,0x61,0x44,0xD3,0xBC,0x28,0x06,0xEC,0xAF,0x49,0x3F,0x8C,0x9B, + + 0x54,0x04,0x4B,0x58,0xD7,0x23,0x43,0x3C,0xCF,0xE1,0xF8,0x7D,0x94,0x96,0xA5,0x88, + + 0x73,0x87,0x9E,0x3E,0xB9,0xDC,0x18,0x98,0x42,0x03,0xB0,0x68,0x7E,0xB8,0x52,0x3D, + + 0xD6,0x70,0x8C,0xAA,0x1D,0x56,0xA1,0x3F,0x81,0x77,0xBD,0x8D,0x89,0x2D,0xE6,0x64, + + 0x39,0x43,0x34,0x50,0x27,0x6C,0xC3,0x81,0x4A,0x03,0x30,0x72,0x04,0xC1,0xE4,0xDD, + + 0xC8,0x93,0x2E,0xD9,0xB1,0x9A,0x3B,0x2F,0x4C,0x40,0x4B,0x8E,0x3B,0x23,0x64,0x20, + + 0x7C,0x1F,0xCC,0x05,0xB0,0x90,0x44,0x87,0xC1,0xFF,0xCD,0xAA,0x76,0xC2,0x6C,0xD4, + + 0x66,0x9A,0x0D,0xFB,0x49,0x8E,0x98,0xEE,0xEC,0x33,0xDB,0x0D,0xD0,0xF1,0xED,0x85, + + 0x25,0x92,0x45,0xC0,0xFE,0x3A,0x41,0x9F,0xC2,0x49,0x3F,0xE5,0xA0,0x30,0x89,0x73, + + 0x23,0x5B,0xAD,0x84,0x0C,0x82,0xB6,0x34,0x72,0x6C,0xE5,0x37,0x68,0xD6,0x0B,0xBF, + + 0xAD,0xB2,0xA3,0xC0,0x59,0xA2,0x0C,0xF5,0x51,0x63,0x44,0xFB,0xF6,0xA0,0x37,0xE1, + + 0x13,0xBA,0x7A,0x25,0xDB,0x75,0x9F,0x82,0x88,0xCF,0x18,0x71,0x30,0x15,0x8E,0x01, + + 0xB4,0x9D,0x45,0xDB,0x56,0xC2,0xAD,0xE9,0x45,0x1A,0x71,0x87,0x4D,0x14,0xED,0x21, + + 0x5D,0xB4,0x93,0xE7,0xB7,0x7B,0x80,0xEC,0x18,0xAC,0xBD,0xB1,0xEC,0x78,0xCF,0x6A, + + 0xAA,0x50,0xF9,0x8F,0x92,0xC4,0x68,0x0D,0xBC,0x1B,0xCC,0xA4,0xDB,0x3A,0xBA,0x68, + + 0xD6,0x16,0xA7,0xB2,0x98,0x32,0xCA,0x4B,0x47,0xF4,0xFC,0x2C,0x78,0xEB,0x1F,0x79, + + 0xD7,0x15,0xB8,0xD2,0x9C,0x3C,0xBB,0xDA,0xC2,0xFC,0xD0,0x14,0x59,0x14,0x6F,0xDD, + + 0xA6,0x16,0x0F,0xBE,0x06,0x3D,0x4F,0x2A,0xCF,0xF4,0x5F,0x24,0x83,0xF6,0xD0,0x3B, + + 0xA6,0x11,0xA7,0xC2,0xEA,0x48,0xC5,0x14,0xD6,0x1E,0x6B,0x3C,0x36,0x7A,0x70,0xF0, + + 0x08,0x5D,0x69,0x4B,0xDA,0x92,0x46,0xCC,0x54,0xAD,0x56,0x3D,0x18,0x1D,0x52,0x22, + + 0xE2,0x0F,0xE0,0xE9,0x6E,0xF8,0x19,0xD7,0x03,0x64,0x87,0x75,0x59,0x78,0x49,0xEC, + + 0xF7,0x1B,0xA9,0x2C,0x79,0x7F,0x65,0x02,0x94,0xF8,0xA7,0xE6,0x7F,0xEB,0x18,0xB0, + + 0x08,0xE0,0x70,0x82,0x19,0xD0,0xBA,0xA6,0x4F,0x7E,0x70,0xBA,0x17,0xA2,0x60,0xEA, + + 0x80,0x83,0x7C,0x85,0xB4,0x0E,0x07,0x79,0xF8,0xA2,0xDA,0x33,0x54,0x93,0xCD,0x01, + + 0x8C,0xEE,0x5A,0x68,0x7F,0xE6,0x99,0x33,0xE0,0xFE,0xF6,0x00,0x59,0x7F,0x70,0x81, + + 0x60,0x8A,0x0D,0x68,0xFD,0xE7,0xD9,0x97,0x1C,0x3E,0xE0,0x3D,0xD3,0x51,0x5A,0xA9, + + 0xFE,0x7E,0x20,0x86,0x7E,0xA2,0xD3,0xAB,0x31,0x18,0x91,0x7C,0x86,0x50,0x20,0xFE, + + 0xFE,0x21,0x40,0xB0,0x33,0x01,0x42,0x89,0x41,0x6F,0x10,0xFC,0x73,0x31,0x5E,0x84, + + 0x4C,0x8F,0x4B,0x81,0x37,0xBD,0xAE,0xB7,0xF9,0x36,0xD6,0x96,0x4A,0xF4,0x77,0xB1, + + 0x67,0x78,0xBF,0xC1,0x5F,0x64,0xCA,0x9B,0x42,0x8A,0x4B,0x68,0x3B,0x4C,0x3F,0xAA, + + 0x10,0x8A,0x5D,0x70,0x76,0xCC,0x1D,0x51,0x75,0xC3,0x18,0xEE,0x1E,0x15,0x92,0x98, + + 0x2F,0xB9,0x22,0x6C,0x90,0x0F,0xB2,0x65,0xB4,0x8B,0xFD,0x19,0xD0,0x74,0xCB,0x13, + + 0xBF,0x68,0x63,0x4B,0x21,0xE8,0xB3,0x08,0xC3,0x88,0x73,0xB3,0xDD,0xA8,0x53,0xF3, + + 0x97,0xC6,0xFF,0x61,0x57,0xA8,0x3D,0x26,0x6C,0x64,0xD9,0x3A,0xDC,0x0B,0xD1,0xA8, + + 0xE7,0x36,0x04,0x3C,0xF5,0x0A,0x8D,0x1B,0x55,0xC5,0xC4,0x6B,0x35,0x69,0x14,0x72, + + 0xE6,0xE9,0x4A,0x60,0x93,0x79,0x37,0x9A,0x1B,0x60,0x18,0x8D,0x91,0x46,0x3D,0x4C, + + 0x8E,0x7F,0xBD,0xDD,0x9A,0x5B,0xF3,0x2D,0xD4,0x63,0xF7,0x4B,0x3F,0x41,0xB8,0xA8, + + 0xE3,0x7A,0x08,0x40,0x41,0x04,0x30,0x9B,0xDB,0x32,0x9D,0x77,0x34,0x69,0x2E,0x83, + + 0x87,0x96,0x89,0xB5,0x95,0x30,0xE4,0xD1,0x4A,0x05,0xCC,0x57,0x07,0x10,0x6C,0x70, + + 0xA7,0x99,0xAD,0x56,0x31,0x94,0x90,0x37,0xB0,0xB3,0x2B,0x5C,0x80,0xF5,0x29,0x84, + + 0x05,0x1A,0xDD,0xE5,0x3B,0x34,0xE5,0x4B,0xE0,0x0E,0x95,0x23,0x97,0x77,0xE9,0xF1, + + 0xE4,0xD3,0x50,0xE5,0x16,0x4C,0x54,0x58,0x0E,0x70,0xBB,0x47,0x15,0x02,0x5C,0xDB, + + 0xA6,0x98,0x9A,0x58,0xDD,0x42,0xAF,0xCD,0x60,0x7E,0x50,0x84,0x89,0x78,0x93,0xB9, + + 0xA8,0x63,0x8F,0x88,0xC6,0x69,0xBC,0x4A,0x70,0x97,0xF8,0x74,0x72,0x6F,0x05,0xC1, + + 0x25,0x9B,0xBB,0x5C,0xA6,0x19,0xC6,0x67,0x8B,0xF8,0x31,0x62,0xF8,0x7C,0x65,0xC2, + + 0x94,0x1D,0x42,0xAC,0x6A,0xF6,0xAC,0xA5,0xE1,0x0F,0x85,0x88,0x36,0x95,0x5E,0xE8, + + 0x6D,0x18,0xFF,0x38,0x99,0x67,0x95,0x1A,0x6A,0xB0,0xCF,0xDC,0xDB,0xBA,0x56,0xF8, + + 0x6C,0x91,0x2E,0xBD,0x82,0x32,0x40,0xBD,0xCC,0x76,0x39,0x9D,0x5E,0xB8,0x5F,0xE9, + + 0xED,0x9B,0x18,0xC8,0x6A,0xB2,0xB2,0x2F,0xE9,0xA7,0xF0,0x16,0x1D,0xF5,0x57,0x19, + + 0xA8,0xBF,0x0A,0xA2,0x0E,0xF6,0x6F,0x9C,0x4C,0x74,0xE6,0xBD,0x58,0x50,0x3C,0xCB, + + 0x89,0xA1,0x45,0x58,0xE2,0x5A,0xEB,0x6E,0x4A,0x41,0xBC,0xEB,0xD2,0xF3,0x54,0x6B, + + 0x17,0x32,0x8C,0xDA,0x1B,0x12,0xAD,0x5B,0x4F,0x4F,0xC6,0x2E,0x33,0xFB,0x71,0xE7, + + 0x45,0xCF,0xDD,0x3C,0x74,0x15,0xB7,0x2A,0x6E,0x9C,0xD0,0xE9,0x2E,0x9A,0x7A,0xD6, + + 0x2F,0xCB,0x8C,0x81,0x0A,0x63,0xFB,0x7F,0xBE,0x9E,0x77,0x9B,0x5C,0xBE,0x3E,0x38, + + 0x68,0xD1,0x7F,0xFC,0x10,0x9B,0x4A,0x21,0xE3,0x46,0xF6,0x1C,0xB9,0x11,0x76,0x16, + + 0xE0,0x82,0x24,0x67,0x7C,0x57,0x41,0x10,0xE4,0xBE,0xD9,0x52,0x30,0x65,0x17,0x63, + + 0xE0,0x9B,0x01,0x81,0x94,0x70,0x41,0x3D,0x63,0x03,0x8B,0x27,0x3B,0x6D,0x27,0xE2, + + 0x0D,0x42,0xF6,0x66,0xF4,0x75,0x0F,0x40,0x83,0xB7,0xFF,0xD7,0xD0,0x33,0x60,0xB3, + + 0x86,0x89,0xF8,0xBE,0xBE,0x29,0xA9,0x68,0xE7,0x3B,0xCE,0x49,0x71,0x7C,0x1C,0xBD, + + 0x0B,0x5E,0xDE,0x78,0xAC,0x37,0x10,0xE0,0x70,0x48,0x18,0x50,0xC8,0x6D,0x13,0x6A, + + 0x84,0x55,0xBE,0xAD,0xCB,0x6B,0xFD,0xFA,0x77,0xD0,0xE6,0x59,0x2E,0xD7,0x67,0xB8, + + 0x57,0x45,0x71,0xE4,0xAB,0x78,0xE0,0x97,0xD3,0x3A,0x0E,0x4E,0xA7,0x92,0x5B,0x8F, + + 0xED,0x89,0xF9,0x4B,0xE1,0xDE,0x6A,0x3A,0x6C,0x53,0xAC,0x01,0xFF,0x78,0x58,0x4B, + + 0xE2,0x6D,0xB1,0x6C,0x99,0x3F,0x0E,0x08,0x7A,0x92,0x0C,0x14,0x11,0x88,0x73,0xFA, + + 0x0C,0x87,0x38,0x7D,0x18,0x35,0x7C,0x4F,0xE9,0x0A,0xAD,0x15,0x7F,0xCE,0x9B,0x6A, + + 0xF1,0xAA,0xC3,0x09,0x78,0x30,0xA3,0xC7,0xD9,0x06,0xBB,0xBA,0x54,0xC6,0x13,0x91, + + 0x0C,0x4C,0x2E,0x37,0x84,0xB1,0xAA,0x80,0x29,0xD1,0xC5,0xE8,0x36,0x19,0x2D,0x26, + + 0xC1,0x02,0x07,0x61,0x1D,0x0C,0x03,0xB2,0xB6,0x02,0x1A,0x5D,0xCB,0xE6,0x27,0xB2, + + 0x05,0xF3,0x22,0x0D,0xC6,0xA5,0xAB,0x61,0x33,0x01,0x89,0xA0,0xB2,0xBF,0x43,0x50, + + 0x8D,0x1C,0xEA,0xAD,0x64,0x20,0x7B,0x64,0x46,0x54,0x24,0x9F,0x27,0xDE,0x56,0xD6, + + 0xCB,0x74,0x7F,0xFB,0x50,0x32,0x84,0x58,0x60,0xEB,0xAA,0xFD,0x18,0x7D,0x2E,0x66, + + 0xC8,0xA0,0x77,0xAF,0x58,0xAA,0xF0,0xC3,0x0C,0xA7,0xA6,0x04,0xC9,0x33,0x95,0x70, + + 0x03,0xE2,0x7A,0xFB,0xD2,0x45,0x17,0x25,0xE4,0x00,0x87,0x85,0x1B,0x36,0x53,0x73, + + 0xFD,0x97,0x8D,0x78,0x89,0x98,0xA6,0xC1,0x61,0x4C,0xCC,0x74,0x91,0x7B,0x3A,0xF5, + + 0xC9,0x05,0x04,0x64,0x32,0x94,0xFB,0x06,0x72,0xA9,0x44,0x0D,0x11,0xA5,0xB4,0x38, + + 0xB0,0x5A,0xAE,0xC9,0x30,0x75,0xCA,0x74,0x4B,0xD1,0xFD,0x96,0x31,0x7A,0x1C,0x31, + + 0x05,0x06,0x53,0xB6,0xDE,0x5A,0xAD,0xC5,0x03,0xF9,0xC3,0xC8,0xF4,0x57,0x14,0xB3, + + 0x04,0x07,0xC1,0x9E,0x97,0xC3,0x65,0x36,0x21,0x77,0xDB,0xC9,0x73,0x52,0x96,0x7B, + + 0xA4,0x15,0x8C,0xA1,0x3E,0x80,0x28,0xDC,0x09,0x5C,0xE8,0xAA,0x99,0xFB,0x30,0xC1, + + 0x41,0x14,0x1D,0x6F,0x4D,0xB4,0xFF,0xDE,0xDE,0x49,0xA0,0xE4,0x7F,0x6A,0xFC,0xAE, + + 0x09,0xE5,0x9D,0xFE,0xD1,0x9B,0x76,0x69,0xE2,0x41,0xA2,0x29,0xCE,0x59,0x9F,0x68, + + 0x0A,0x5B,0xD9,0xA4,0x52,0x8A,0xA7,0x56,0x95,0x06,0x9D,0xDF,0x0A,0x1E,0xBE,0x37, + + 0x2C,0x54,0x53,0xD7,0x4A,0xB1,0x5E,0x09,0x96,0xBD,0xD0,0xD5,0x53,0xB6,0xC9,0xBA, + + 0xD8,0x78,0x8C,0x23,0xD2,0x8C,0x4F,0x7C,0x43,0x3A,0xDA,0xBB,0xFA,0x73,0xE8,0xB6, + + 0xAC,0xBE,0xB9,0xF4,0x53,0x04,0x97,0xB8,0x32,0xAA,0x47,0x2A,0xF8,0x8B,0x77,0x22, + + 0x24,0xB9,0x63,0x42,0xB8,0xB4,0x67,0x0A,0xD3,0x3A,0x7C,0x4C,0x27,0xBC,0x18,0x33, + + 0xA5,0x01,0x4B,0xE0,0x04,0xEF,0xCF,0xCA,0xDA,0x8D,0x7D,0xB5,0x69,0x6B,0x7A,0x41, + + 0xEE,0xE5,0xD6,0x2A,0x7E,0xFB,0x94,0x42,0xC5,0x47,0xD9,0xF6,0x1D,0xFA,0x71,0xF0, + + 0x00,0x0F,0x31,0x75,0x7F,0x13,0xA6,0xAB,0x61,0x11,0x91,0xCD,0xBD,0xB8,0xB9,0xE3, + + 0x22,0x22,0x89,0xE4,0x8A,0x0C,0x19,0xF3,0xC3,0xD8,0x4D,0x44,0xE5,0xAC,0x2F,0x3C, + + 0xDA,0x8B,0x20,0x67,0xD6,0xA9,0x4C,0x04,0x9C,0xD6,0x30,0xB2,0x44,0x49,0x63,0x21, + + 0x56,0xE9,0x44,0xD2,0x3F,0x21,0x43,0x94,0x57,0x78,0x7A,0x05,0x23,0x4C,0xA1,0x47, + + 0x1F,0x26,0xA3,0xA5,0xCA,0xA2,0xC9,0xF9,0xC5,0x66,0xE6,0x16,0xA6,0xEF,0x0B,0x4E, + + 0x86,0x03,0xD1,0x90,0x55,0x87,0x81,0x6E,0x39,0x17,0xEA,0x97,0xD9,0x6C,0xB7,0xF9, + + 0x88,0x05,0x34,0x7D,0x70,0xC4,0x9E,0x4C,0xB7,0xD3,0x22,0x5C,0xB7,0x70,0xBA,0xEA, + + 0xFC,0x28,0x94,0x22,0x75,0xA4,0x82,0xFD,0x8F,0x69,0x3B,0x2A,0x3E,0xE1,0x71,0x58, + + 0x67,0xEE,0xC5,0x6E,0x9F,0x63,0xD8,0x4D,0xB4,0x85,0x95,0x77,0x85,0xE9,0xBC,0xE8, + + 0x09,0x06,0x54,0x6C,0xE5,0xC8,0x33,0x4F,0x48,0x3A,0xAD,0x66,0x36,0x53,0xF2,0xB9, + + 0x82,0x81,0xEA,0x5F,0xE2,0x4D,0x46,0xE8,0xCE,0xC6,0xF6,0x92,0x5E,0xF9,0xAA,0x1F, + + 0x82,0xCC,0xFE,0x4C,0xBE,0x2A,0x23,0x8A,0xEA,0x32,0x56,0xDB,0x8A,0x8E,0x18,0x6C, + + 0x2F,0x31,0x23,0xC2,0xDF,0xEC,0x4B,0x4B,0x2F,0x7E,0x66,0x67,0x5E,0x4E,0x51,0xB3, + + 0x40,0xC0,0x6B,0x4E,0x63,0x4E,0x7A,0x1D,0xFC,0xC2,0x50,0xB5,0x64,0xAD,0x1A,0xDA, + + 0xC4,0x3F,0x48,0xF5,0x00,0x16,0xE7,0xE5,0x05,0xD4,0x8C,0xE1,0xAA,0x6D,0xBC,0x61, + + 0xA1,0x1C,0x8C,0x7C,0xDC,0x80,0x65,0xF5,0xC0,0x2E,0xB7,0x32,0x47,0x71,0x85,0x90, + + 0x07,0xF6,0x68,0xF4,0xA3,0x3B,0x57,0xA1,0xE7,0x90,0x56,0x67,0xE0,0x5F,0x7F,0xD9, + + 0x4E,0xF7,0xB7,0x95,0x27,0xBB,0x64,0x6C,0x40,0x22,0x06,0x55,0x59,0x0E,0x75,0xB8, + + 0xEC,0x75,0xBE,0x0B,0x5E,0x05,0x4C,0x11,0x52,0x61,0xD3,0xE0,0xA6,0x90,0x52,0xE7, + + 0x80,0x85,0xF2,0xFB,0x14,0x3C,0xA9,0xAF,0x86,0x2A,0x2A,0x71,0x8B,0xB1,0x6D,0x56, + + 0x95,0x1D,0x25,0xE6,0x26,0xBB,0x64,0xDC,0x8A,0x94,0x35,0x52,0x10,0xB4,0x53,0xFB, + + 0x00,0x8C,0xD3,0xEE,0xF7,0x18,0xC2,0xB4,0x2D,0xED,0x4E,0xF0,0xF1,0x14,0xB6,0x62, + + 0x7C,0xD5,0x23,0x9D,0x04,0xE2,0xCE,0xCC,0xE3,0x5E,0xCE,0xDD,0x25,0x59,0x56,0xBD, + + 0xD0,0x96,0x5A,0xED,0x51,0xF6,0xA9,0x9E,0x5E,0x02,0x1E,0xCC,0x1F,0xCC,0xD8,0x83, + + 0x09,0x66,0x81,0xA3,0xA3,0xA1,0xF4,0xEB,0x94,0x96,0x8F,0x9F,0xDD,0x55,0xBF,0x19, + + 0x8F,0x8B,0x43,0x77,0xD2,0xF6,0x87,0x45,0xFD,0x96,0x7F,0x17,0xF6,0x7A,0x88,0xAC, + + 0x3E,0xD3,0x75,0xBD,0x4A,0xD0,0x3E,0x5F,0x0D,0xA6,0xF8,0x1F,0xE2,0xDE,0x2F,0xA5, + + 0x88,0x99,0xB4,0x13,0x57,0x6C,0x46,0x8B,0x03,0xD6,0x81,0x7A,0x11,0x8C,0x44,0xFE, + + 0x76,0x8F,0x81,0x06,0xBD,0xA4,0xE0,0x6F,0xC6,0xCA,0x1F,0x65,0xDC,0x28,0x3F,0x33, + + 0xCC,0xD2,0x2F,0xFE,0x2F,0xB2,0x6A,0x7F,0xC7,0xB8,0xA1,0xF0,0xB1,0xB1,0x61,0xA0, + + 0xD6,0xBF,0x97,0x80,0x38,0x56,0x6D,0xD0,0x96,0x71,0x6F,0xA0,0x2E,0x6D,0xA8,0x2E, + + 0x8D,0x43,0x0E,0x4A,0x9C,0x43,0x00,0xA9,0x47,0x00,0xB8,0x94,0x57,0x72,0xC1,0xB4, + + 0x66,0xF7,0x7A,0x22,0x31,0x39,0xD1,0x00,0x03,0x4F,0x51,0xAC,0x38,0x64,0xDF,0x96, + + 0x55,0xC6,0x22,0x90,0x02,0x1C,0x82,0x53,0xE2,0xA1,0xC5,0x12,0x38,0x12,0xD0,0x13, + + 0xA3,0x9F,0x05,0x22,0x90,0x88,0x71,0x02,0xBD,0xCB,0x81,0xE4,0xF3,0x62,0x9B,0xAE, + + 0x05,0x44,0x70,0xAB,0x15,0x2F,0x83,0x70,0xD2,0xB8,0xBC,0xF0,0x61,0x27,0x41,0x7C, + + 0x7D,0x9B,0xB9,0xA7,0xA1,0x04,0x49,0xF1,0xA1,0x66,0x81,0x6C,0x71,0x7D,0x8A,0xD5, + + 0x88,0x78,0x2D,0xBD,0x8F,0xDA,0x70,0x79,0x43,0xE7,0xE1,0xF7,0xF1,0x97,0xA5,0x3F, + + 0xE3,0xAD,0xFF,0xFC,0x1F,0x99,0x3D,0x43,0x91,0xBD,0xEA,0x0B,0xB1,0xF9,0xAF,0x1D, + + 0x8E,0x1F,0xF1,0xEC,0xDF,0x98,0xB6,0x47,0x83,0x18,0x5A,0xD1,0x9D,0x63,0xC3,0xBC, + + 0xD9,0xA1,0x43,0x29,0xB0,0x27,0x85,0xAD,0xB2,0x9D,0xEB,0xA9,0x8D,0xAC,0x5B,0x87, + + 0x72,0xAF,0xF5,0x1B,0x78,0xA8,0xA0,0xAA,0xF1,0x41,0x1B,0x7B,0xE1,0x6D,0x6D,0x37, + + 0xD3,0x90,0x3A,0x68,0xE5,0xA1,0xFE,0xCD,0x9F,0x2F,0xAA,0xEE,0xDA,0xD5,0xBE,0x16, + + 0xFE,0x51,0x14,0x1B,0xBE,0xDB,0xCA,0x91,0x03,0x5C,0x36,0xEE,0x57,0x65,0xF8,0x13, + + 0x8C,0x2E,0xA1,0x4D,0x6D,0x35,0xF8,0xA3,0x71,0x0C,0xEB,0xBD,0x86,0x91,0xE6,0x26, + + 0x16,0x9A,0x70,0x2D,0x1B,0x80,0x7B,0xDF,0x83,0xAE,0x5B,0x80,0xD7,0x9F,0x7A,0x29, + + 0xC9,0x03,0x3D,0x43,0xEE,0x38,0x16,0x42,0x89,0xB1,0x39,0xEA,0x8D,0x2C,0x32,0x25, + + 0x4B,0x86,0x1C,0x8B,0x0D,0x73,0x09,0x52,0xCD,0xFC,0x5C,0x90,0x22,0xAD,0x53,0x3A, + + 0x4B,0x01,0x05,0x42,0x94,0x5E,0xD5,0x80,0x02,0xFF,0x2C,0x21,0xD8,0x27,0x73,0x24, + + 0x5D,0x40,0xC5,0x12,0x82,0x43,0x8C,0x53,0xA9,0xB2,0x31,0x30,0x24,0x11,0xFC,0xA0, + + 0x3D,0x9F,0x68,0xB7,0x2D,0xC2,0xE0,0x82,0x91,0xDF,0x2B,0x0C,0x64,0x39,0x58,0xDA, + + 0x82,0x9A,0x37,0xF0,0xBE,0x98,0x66,0x40,0xA6,0xFA,0xA4,0x70,0x41,0x87,0x88,0xF0, + + 0xCE,0x54,0x3A,0xB6,0xA5,0xE0,0xC3,0xD8,0x09,0x12,0x72,0x07,0x32,0xDB,0x15,0x11, + + 0x48,0x06,0x00,0x46,0xA0,0xBC,0xF9,0x8B,0x40,0xA3,0xE5,0x0F,0x5F,0x7A,0xB5,0x21, + + 0xD0,0x0B,0x39,0x6A,0xF0,0x49,0x32,0xC0,0x4C,0xAC,0xFF,0x47,0x87,0xF3,0xB9,0xBC, + + 0x16,0xE9,0xD7,0xB8,0x9C,0x98,0x40,0x5A,0x6D,0xA4,0xE9,0xDE,0x0A,0x79,0x7C,0x4B, + + 0x2B,0x5C,0x94,0x2D,0xE0,0x38,0x00,0xC6,0xCB,0xDB,0x31,0x80,0xFE,0x3B,0x50,0x66, + + 0xD6,0x61,0x1A,0x6E,0xC9,0x38,0xDF,0x98,0x11,0x19,0x08,0x42,0x08,0xA8,0x78,0xE0, + + 0xA7,0xBA,0xE6,0x26,0x53,0x66,0xF6,0xF6,0xE6,0x39,0xA9,0xCB,0xDB,0xA3,0xD8,0xA9, + + 0x1B,0x14,0xAC,0xDC,0xC8,0x51,0x25,0x08,0xD2,0xEC,0x0E,0xAC,0x7D,0xFD,0x0A,0x09, + + 0xE7,0xB3,0xA6,0xE9,0x41,0xB3,0xE3,0x8B,0x82,0x53,0x63,0x8F,0x05,0x78,0x18,0x29, + + 0x37,0xBE,0x70,0x46,0x4A,0xB6,0x21,0xFF,0x0A,0xDC,0xE8,0xF9,0xB0,0xD6,0xD7,0xAE, + + 0xCC,0x57,0x8D,0xF5,0x98,0xAD,0xB2,0x3C,0x7C,0x34,0x90,0xDF,0xF5,0xE1,0x0E,0xA8, + + 0x6B,0xC3,0x57,0x7D,0x9A,0x57,0x4D,0x2F,0x82,0x6C,0x78,0xE2,0x10,0x1A,0x74,0x10, + + 0x7E,0x91,0x58,0x7D,0xF4,0xC2,0xA0,0x28,0xF4,0xF2,0x8F,0x2B,0xAB,0xA2,0xFF,0x3E, + + 0xEE,0xF7,0xA1,0x1E,0x20,0x22,0x28,0xC1,0xE4,0x82,0x39,0xB3,0x92,0xA2,0x32,0x79, + + 0x6C,0x51,0x98,0xCE,0xB3,0x2D,0x5C,0xD2,0x62,0x1F,0x77,0xE4,0x74,0x96,0x6C,0xF5, + + 0xFA,0xF4,0x28,0x46,0xAD,0xBE,0xD2,0x47,0x24,0xC1,0x40,0x66,0xF0,0xFE,0x33,0x7C, + + 0xEC,0xC4,0xC1,0xD4,0x35,0xE7,0x51,0x9E,0x42,0xC0,0x4E,0x85,0xE5,0xB4,0x96,0x2D, + + 0xB1,0x58,0x53,0x31,0x64,0xB7,0x01,0x9B,0xD5,0x8A,0x99,0x01,0x20,0x68,0xE0,0xCC, + + 0x9E,0x8B,0x26,0xF0,0xED,0xC6,0x68,0xE7,0x24,0x29,0x72,0xFF,0xE7,0x33,0x3C,0xA5, + + 0xE6,0xDA,0xB8,0x1B,0xEA,0x34,0x2B,0xD8,0x2D,0x18,0xA6,0x4C,0xA6,0xA9,0xC0,0xF0, + + 0x65,0xD9,0x40,0xCF,0xC8,0x97,0xF3,0x0A,0x5C,0x67,0x9A,0xD2,0x61,0x9F,0x15,0xB2, + + 0xE7,0x5C,0x47,0x81,0x9C,0x4B,0xFB,0x1A,0x5D,0xC6,0xF5,0x01,0x40,0x56,0xF2,0x38, + + 0xE5,0x6D,0x5A,0xB5,0x0E,0xE1,0x12,0x39,0xFB,0xC3,0xEA,0x63,0x58,0xFF,0x27,0x9A, + + 0x62,0x06,0x7A,0xB6,0x78,0xE0,0x18,0x6F,0x4C,0xA5,0x82,0x6C,0x6C,0xBF,0x5D,0x7E, + + 0x03,0x28,0x18,0x47,0x3B,0x51,0x2C,0x6A,0x37,0xA2,0xD2,0x90,0x2B,0x1A,0xCE,0x6A, + + 0xE3,0x90,0x10,0x57,0x3A,0x50,0xDC,0x7D,0x1B,0xAB,0x03,0x97,0xFF,0xA2,0xFF,0xAD, + + 0x22,0x3A,0x26,0x92,0xC8,0xC1,0xA4,0x7A,0xB1,0xBC,0x4F,0x22,0x50,0x92,0x12,0xA7, + + 0xA8,0x37,0xF5,0x03,0xDC,0xC0,0x41,0x59,0x06,0xB9,0xEE,0xA9,0x1F,0xAC,0x96,0xF1, + + 0x4F,0x73,0xDB,0xAA,0x68,0x23,0xF1,0xFD,0xEA,0xCC,0x75,0x66,0x4B,0x26,0x60,0x53, + + 0x88,0x18,0x55,0x15,0x97,0x83,0x2A,0x37,0xC1,0x11,0x7D,0x96,0x67,0x2C,0x75,0x28, + + 0x83,0x9D,0xC4,0x2C,0xC3,0x3D,0x5A,0x11,0xEA,0xD9,0xCE,0x1C,0x8D,0x8F,0xFA,0x56, + + 0x03,0xAB,0x6C,0xE8,0x5B,0x40,0x07,0x02,0xD2,0x64,0x85,0x72,0x7B,0x95,0x33,0xF8, + + 0x96,0x63,0xC5,0x4D,0x92,0x0D,0x88,0xA4,0x17,0xA0,0xB5,0x0B,0x9A,0xC9,0x65,0xEB, + + 0x5F,0x76,0xFC,0x2F,0xB7,0xF7,0x03,0xF5,0x06,0x54,0x20,0xCE,0xC0,0x80,0x83,0xBB, + + 0x40,0x87,0xDE,0x66,0x26,0x15,0x0E,0x50,0x0F,0x3C,0x02,0xCC,0x4F,0x18,0xD1,0x69, + + 0x15,0x36,0x29,0x7C,0x0E,0x29,0x6C,0xF1,0xED,0x78,0x7A,0x74,0xC6,0x06,0x9F,0xEB, + + 0xE3,0x11,0xB4,0x69,0x3E,0xB9,0x20,0x58,0x68,0x57,0x1C,0xE8,0xF2,0x26,0xBE,0x68, + + 0x9D,0x16,0x17,0x61,0xAD,0xF6,0x61,0x59,0xE9,0x76,0xE5,0x29,0xC1,0xB9,0xD1,0xE2, + + 0x28,0x7D,0x66,0x42,0x0D,0xE1,0x58,0x19,0xE2,0x41,0xAB,0xE6,0x4D,0xFC,0xA4,0x52, + + 0x4C,0xE7,0xD0,0x13,0x98,0xFC,0xE9,0x05,0x8E,0x0E,0xAE,0x6A,0x9E,0xF2,0xD2,0xF4, + + 0x9E,0xDC,0xD9,0x03,0x19,0xAE,0x0F,0xF2,0x8D,0xBE,0x37,0xBB,0x47,0xF8,0x79,0xF3, + + 0xA9,0xBE,0x2F,0x77,0xC4,0xFD,0x84,0xF9,0x01,0xC4,0x4B,0x80,0x5C,0xBE,0x5A,0x80, + + 0x68,0x11,0xE9,0xEF,0xAF,0x8B,0x6E,0xB6,0x46,0xA3,0xBD,0x5B,0xC9,0x5D,0xBD,0xE3, + + 0x8D,0x0C,0x9C,0x9B,0xE6,0x44,0x3E,0x70,0x9F,0xEE,0x67,0x4E,0x33,0xAD,0x7F,0x07, + + 0x61,0x81,0xF9,0x01,0x61,0x60,0xC9,0x32,0xBE,0x94,0xCA,0x25,0xB0,0x1F,0x99,0xE2, + + 0x05,0xAE,0xB1,0xFD,0xDD,0xFF,0x7E,0xC0,0x13,0x03,0x62,0x2A,0x55,0xCC,0x20,0x42, + + 0x31,0x09,0xF8,0xBA,0xBE,0x29,0xFC,0x22,0xC1,0x06,0xFF,0x1B,0x8B,0xE9,0xB7,0xD4, + + 0x63,0x2F,0xAE,0x7D,0x37,0x58,0xBB,0x83,0x9D,0xEE,0xCD,0xB4,0x7B,0xEE,0xBE,0x43, + + 0x86,0x8B,0x6D,0xD6,0xA6,0xFB,0x87,0x6B,0x23,0xE9,0x2E,0x1A,0x5F,0xC0,0x19,0x49, + + 0xCB,0x45,0x36,0xF0,0x59,0x2A,0x3E,0x79,0x28,0xD1,0x99,0x48,0xD5,0x46,0x7A,0xB8, + + 0xB4,0xA7,0x2E,0x89,0xCD,0x4A,0x6C,0x1E,0xA3,0xAD,0x36,0x4E,0xD5,0x0A,0x32,0x3C, + + 0xC1,0x8A,0x37,0x43,0x1F,0x68,0x28,0x7E,0xDB,0x25,0xE5,0x46,0x77,0xF6,0xA7,0x6B, + + 0x7F,0x6F,0xEA,0xE6,0x63,0xD6,0x4D,0x1A,0xD8,0xE5,0xEC,0x0A,0x79,0xDB,0xAB,0x0A, + + 0xA7,0x6F,0xED,0xE6,0x20,0x69,0x25,0x7D,0x03,0xE3,0x3C,0x3B,0x0D,0x0F,0x00,0xDD, + + 0x8F,0x9C,0x39,0x37,0x66,0xD3,0x2C,0x5E,0xA1,0xA9,0xF3,0x0E,0xAD,0xD5,0x5D,0x55, + + 0x38,0x5D,0xF4,0xFD,0xD1,0x8E,0x68,0x3E,0xD9,0xF0,0x49,0xF8,0x73,0x79,0x83,0x41, + + 0x8A,0x4C,0xF9,0xF1,0xBE,0x40,0x0D,0x5A,0xDE,0xE1,0xCB,0xE8,0xB9,0x14,0xF3,0xEB, + + 0x83,0x63,0xF5,0xFD,0x51,0xAC,0xF0,0x03,0x1E,0x54,0x81,0x82,0x78,0xE4,0x50,0x9F, + + 0x06,0x51,0x97,0xB4,0x70,0xCF,0x14,0x62,0xE3,0x16,0xCD,0xA0,0xA5,0x1C,0x9F,0x6F, + + 0xC8,0x60,0xD2,0xC5,0x31,0x95,0xA8,0x34,0x45,0xCB,0xE1,0x99,0x8A,0xAC,0xA9,0xF2, + + 0xD0,0xB4,0xBF,0x34,0x8C,0xED,0xA2,0x85,0xE6,0x73,0x51,0xFB,0xFE,0x6C,0x6B,0xA8, + + 0x56,0x52,0xDD,0xC1,0x0D,0xE2,0xB6,0xF6,0xEF,0x8F,0x4C,0xD5,0xFD,0x88,0x16,0xA2, + + 0x43,0x41,0xC0,0xF4,0xCD,0x72,0xE5,0x5E,0xDE,0xA3,0x59,0x41,0x56,0x1A,0x93,0xD8, + + 0x7D,0x9E,0xF2,0xA8,0xBE,0x93,0xE5,0xAE,0xE0,0x5B,0xF4,0x36,0xA7,0xAA,0x5D,0xC5, + + 0x2F,0x57,0x97,0xC1,0xFB,0xFE,0xFA,0x8E,0x3F,0x8A,0x95,0xDA,0xFA,0x1A,0x1C,0xEC, + + 0x48,0x53,0x91,0x15,0xAB,0xEC,0xBD,0xCE,0xC7,0xF3,0x7A,0x0A,0x98,0x08,0x38,0xA4, + + 0x40,0x15,0x37,0xB5,0xC0,0xA9,0xD2,0x62,0xD3,0x07,0x69,0x88,0xA5,0xC5,0xF5,0xBC, + + 0xC0,0xB0,0xC2,0xEF,0x1B,0x92,0xDE,0x99,0x91,0x1B,0x04,0x38,0x76,0x7F,0xF8,0xFA, + + 0x90,0x79,0xB4,0xA0,0xBE,0xA2,0x49,0x4B,0xEC,0xC7,0x38,0x89,0xFE,0x83,0xF2,0x75, + + 0xA9,0xA0,0xF7,0x99,0x59,0xEE,0x8F,0x61,0x3C,0x37,0x5F,0x69,0xB9,0xF6,0x7C,0x78, + + 0xAA,0xB3,0xE8,0x31,0xCC,0x7E,0x8B,0xEE,0xA2,0x07,0x83,0x4C,0x8D,0x1C,0x1E,0xE5, + + 0xC0,0x59,0x9E,0xD4,0x73,0xB0,0xCE,0x8B,0x07,0xFC,0x23,0x78,0x10,0x02,0xE3,0xAB, + + 0x5D,0x95,0x4A,0xBD,0x3A,0x2E,0xF3,0x18,0x49,0x1E,0x89,0x02,0xBA,0xD5,0x75,0x69, + + 0x2B,0xB0,0x30,0x59,0xF8,0x99,0x67,0xC9,0x8B,0xF0,0x99,0x0C,0x44,0xEF,0x7E,0xE0, + + 0x00,0x2D,0x30,0x5D,0x30,0x0B,0x4E,0x39,0xAD,0xE8,0x04,0x01,0xF5,0x8C,0x10,0xEC, + + 0xA9,0x8C,0x80,0xE7,0x6D,0x14,0x66,0x3D,0x49,0x8F,0x47,0x48,0x27,0x5D,0x30,0x87, + + 0xCC,0x72,0x34,0x04,0xFF,0x33,0x53,0x23,0x2F,0x56,0x75,0xDB,0xD4,0x53,0x3F,0xB7, + + 0x6E,0xC0,0xF7,0x2B,0x24,0x0E,0x58,0x93,0x13,0x7C,0x06,0x6C,0x26,0x68,0xA0,0x96, + + 0x46,0x09,0x70,0xE6,0x10,0x25,0xF2,0x25,0x68,0x18,0x63,0x57,0x66,0xA6,0x99,0xD0, + + 0x87,0xEC,0xC6,0xAB,0xE1,0xBE,0x06,0x69,0x93,0x51,0x80,0x6B,0xD7,0xDB,0x38,0x4F, + + 0x21,0x82,0xF1,0x4F,0xBE,0x7D,0xA5,0x3D,0x55,0xF9,0xE5,0x6D,0x77,0x64,0x51,0xF3, + + 0x6E,0x57,0x2E,0x31,0xF7,0x58,0x27,0x7C,0xC3,0x89,0xA3,0x06,0xBF,0xF6,0x99,0xBB, + + 0x26,0x27,0xBC,0x3E,0xEB,0x07,0x1B,0x45,0xDD,0x0D,0x31,0x07,0x5A,0xFB,0x9D,0xBE, + + 0x7E,0x89,0x94,0x23,0x90,0x0F,0x0B,0x6A,0xA9,0x5C,0x47,0x40,0x73,0xB6,0x77,0x2F, + + 0x78,0xA9,0xF3,0x7D,0x77,0x5B,0x41,0x23,0x28,0x6D,0xAE,0x4D,0xB4,0xE7,0xEB,0x1F, + + 0x9B,0x5F,0xB7,0xDF,0x9C,0x06,0x3A,0x0D,0x35,0x30,0x84,0x61,0x2C,0x37,0x02,0x48, + + 0x20,0x81,0x02,0xFE,0x18,0x04,0x13,0xCA,0x98,0x73,0x8B,0x08,0x1D,0xE3,0x52,0x27, + + 0x2C,0xCD,0x31,0x0D,0x60,0x23,0x22,0x6E,0x2C,0x51,0xE8,0x9C,0x22,0xE6,0x9C,0xC9, + + 0x0E,0xCD,0x69,0xEF,0xC6,0x9D,0x4D,0xD8,0x87,0x49,0x0C,0x87,0x8B,0xA3,0xC7,0x7F, + + 0x0D,0x8B,0xB2,0xC2,0x3A,0x26,0x82,0x94,0x4F,0x4F,0xFD,0x40,0xEF,0xAD,0x64,0x7A, + + 0x98,0xD1,0xDC,0xB7,0x40,0x1F,0xF0,0xFC,0x6A,0xCE,0xED,0xAA,0xD3,0xF1,0x80,0xD0, + + 0xA6,0x45,0xD2,0xAF,0xDC,0x18,0x93,0x36,0x2E,0xD4,0x3C,0xC5,0x56,0x9D,0xC9,0x03, + + 0x58,0xB2,0x36,0xF9,0xDE,0x03,0x48,0x58,0x39,0x8F,0x35,0xAB,0xF2,0x58,0xFA,0x8C, + + 0xA4,0x07,0xF3,0x75,0xB1,0x36,0x10,0xCC,0x7C,0x78,0xDF,0xBB,0xF4,0x9C,0xC0,0xA0, + + 0x53,0x9D,0xB4,0xDF,0x62,0x19,0xD4,0x90,0x04,0xE8,0xA4,0x0C,0x8D,0x5F,0x34,0xB0, + + 0x50,0x91,0xA4,0xC3,0x40,0x19,0xC8,0x90,0x43,0x0A,0xDB,0x09,0x1C,0x8A,0xE5,0x84, + + 0x82,0x6B,0x7E,0x80,0x7C,0xFD,0x0B,0xE4,0x47,0x09,0x08,0x6B,0x26,0x29,0xB2,0x73, + + 0xDC,0x17,0x32,0x05,0xB1,0xCF,0xC2,0xC2,0x46,0x28,0xA8,0x57,0x00,0x97,0x2A,0x91, + + 0x29,0x35,0x15,0x6C,0x54,0x29,0x4E,0xAE,0xD1,0x9A,0x76,0xF2,0x7D,0xFE,0x1C,0xAB, + + 0x2C,0x66,0x3B,0x6D,0x01,0x19,0x06,0x52,0x21,0x05,0x0F,0xBB,0x1E,0x06,0x29,0x7A, + + 0x0F,0xDA,0xD9,0xB7,0x49,0x19,0x23,0x24,0x1B,0xBF,0x97,0xEF,0x5D,0x7D,0x11,0x79, + + 0xC7,0x68,0x38,0x9D,0x07,0xFA,0x93,0x3E,0x38,0xB9,0xC7,0x1F,0xF7,0x1B,0x1D,0x4E, + + 0x2D,0xC4,0xFC,0xEA,0xE2,0xAD,0xCD,0x4F,0x99,0x71,0xA8,0x01,0x3E,0x57,0xC2,0xFE, + + 0xA0,0xDC,0xFA,0xD4,0x9E,0x12,0x40,0x16,0x19,0x9C,0xB8,0x0F,0xC0,0x2D,0xD8,0x97, + + 0x8F,0xDE,0xBD,0xF3,0xC2,0xFC,0xAA,0xD6,0x05,0x9A,0x0A,0x6B,0x95,0x81,0x83,0x5B, + + 0x53,0xBF,0xFA,0x5B,0xF6,0x0B,0xC6,0x7F,0xA7,0x2F,0xAF,0x15,0x04,0x54,0xFD,0x98, + + 0x6B,0x7F,0x8A,0x4D,0x03,0xDA,0xD0,0x01,0x86,0x9F,0xEE,0x23,0xF1,0xDF,0x58,0xFA, + + 0xFA,0xD4,0xD8,0xC9,0x3B,0x22,0xB3,0x77,0x4F,0x9D,0x9B,0x28,0xD1,0x8F,0x85,0xF0, + + 0x3F,0x01,0x0F,0xD5,0xAA,0x21,0xA5,0x43,0xF3,0xA2,0x51,0xF4,0xBA,0x50,0xF2,0x2E, + + 0x7E,0x0D,0x5B,0xB1,0x91,0x03,0xDD,0xFB,0x7A,0xBC,0x09,0x7E,0x2C,0x5F,0x51,0x40, + + 0x04,0x9F,0x7E,0xD1,0xB4,0x8A,0x94,0xB0,0x1C,0xFB,0x07,0x9D,0x72,0xFF,0x58,0x64, + + 0x5B,0x06,0x4C,0x4A,0xF2,0x49,0x23,0x0B,0x62,0x65,0xF0,0xF0,0x56,0xFE,0x05,0xE1, + + 0xAE,0x04,0x01,0x10,0xCC,0x64,0x01,0x5D,0xC4,0xC6,0xD1,0x98,0xD2,0xBD,0x0A,0x44, + + 0xB0,0xA3,0x2C,0xBA,0x72,0x71,0x1E,0x0E,0x4E,0xF1,0x66,0x29,0xF2,0x45,0x6A,0x8E, + + 0xF4,0x49,0x86,0x0D,0xE7,0xD7,0xD2,0x0C,0x1E,0xB5,0xC8,0xD3,0xA7,0xB7,0xF5,0xEB, + + 0x7D,0xA6,0x8A,0xE3,0xE6,0xF6,0x0C,0x5A,0x29,0x33,0xE4,0x8C,0xA8,0x05,0x5D,0x30, + + 0x80,0x81,0x7C,0x0D,0x98,0xD5,0x6B,0x52,0xA0,0x47,0xA4,0xE4,0x39,0xF5,0x9C,0xF1, + + 0x43,0xC6,0x74,0x1C,0x99,0xD4,0xDB,0x1D,0xAC,0x09,0xFD,0xF4,0xDA,0x68,0x98,0x48, + + 0x1A,0xC7,0x3B,0x3E,0x80,0x13,0x5A,0x65,0xB7,0x22,0xD4,0x55,0xB3,0xDD,0xA2,0x7C, + + 0x2F,0xB6,0x4E,0xD8,0x17,0xF9,0x5B,0x07,0x32,0x44,0x33,0xFE,0x52,0x80,0x47,0x0F, + + 0xAE,0x4F,0xF9,0xC7,0x29,0x2A,0x30,0xA9,0x8E,0x4A,0x7F,0xFF,0xD6,0x66,0x3A,0xDD, + + 0xD1,0x59,0x9B,0x8E,0xC3,0xA2,0x59,0x65,0x3D,0xCF,0x81,0x87,0x78,0x6B,0x4C,0x09, + + 0xDC,0x61,0x80,0xEC,0x30,0x30,0xF3,0x4F,0x00,0x80,0x2D,0x3A,0x73,0x40,0xB3,0x03, + + 0x5D,0xCC,0x2B,0xC8,0x11,0xB2,0xE5,0x32,0xA8,0x26,0x21,0xEB,0xA8,0xEC,0xC5,0xDD, + + 0x1D,0x7E,0x07,0x06,0x64,0x8A,0xD5,0x09,0xD9,0x5F,0x3E,0xCB,0x25,0x8E,0x6B,0xAD, + + 0xA2,0xF3,0x8B,0x7D,0x69,0xFE,0x25,0x40,0x42,0xD3,0xB2,0xAD,0x71,0x2F,0x9B,0x40, + + 0x51,0x10,0xC6,0xDB,0x13,0x30,0xAB,0x62,0x67,0x50,0xAB,0x19,0x7A,0x36,0x8C,0x8D, + + 0x69,0xEE,0x03,0x14,0x37,0xC1,0x24,0x8B,0x6D,0x37,0x10,0x96,0x30,0xAA,0x1A,0x94, + + 0x9D,0x21,0xC4,0xBA,0x3F,0x90,0xEE,0x03,0x4E,0xAB,0x13,0xD7,0x70,0x3E,0x4D,0x2D, + + 0x02,0x55,0x02,0xA6,0xDA,0x88,0x17,0x4C,0x61,0x1F,0xA5,0x77,0xF6,0x7E,0xA5,0xB4, + + 0xF4,0xE9,0xA6,0x84,0xB5,0x03,0x24,0x53,0x98,0x57,0x39,0xD7,0xA5,0x39,0x9B,0x9A, + + 0x88,0xB4,0x6C,0x0C,0xF1,0xC0,0x30,0xD6,0x15,0xA6,0x72,0x2E,0x35,0x71,0x21,0xA4, + + 0xD0,0xBA,0x20,0xFA,0x8B,0x8E,0xA0,0x91,0xEE,0x7A,0xA9,0x55,0xD9,0x32,0x18,0x63, + + 0x40,0xCA,0xF7,0xAF,0x4A,0xEE,0x25,0x05,0x64,0x39,0xDF,0x41,0x47,0x80,0x8E,0x09, + + 0x5D,0x69,0x9D,0xCC,0xEF,0x61,0xCB,0x0A,0xE8,0x58,0xEC,0x0E,0xD6,0x73,0x11,0xD8, + + 0x58,0x10,0x0E,0xDD,0xF2,0xC1,0x3C,0xF1,0x6A,0x9D,0xD6,0x79,0xDA,0xF7,0x98,0x49, + + 0x95,0x49,0x6C,0x92,0x07,0xC2,0x71,0x8B,0x15,0x32,0x17,0x3D,0xF2,0x78,0x8F,0x95, + + 0x76,0x5E,0xF0,0x82,0x46,0x51,0xE0,0x3E,0x29,0x40,0x28,0x1F,0x5A,0xF5,0x7E,0xE0, + + 0x58,0x05,0x5F,0x06,0x1C,0xA0,0x32,0xCB,0xF9,0x61,0xEA,0xEB,0x24,0xA2,0x50,0xE1, + + 0x75,0x82,0x57,0xE9,0x15,0x5E,0x80,0xC1,0xC1,0x4C,0xE0,0x13,0xE9,0x62,0x78,0x19, + + 0xE0,0x03,0x5E,0xF8,0x6B,0xA2,0x09,0x12,0x65,0x43,0xA5,0x2D,0x75,0xDB,0x2E,0x1F, + + 0xB6,0xC2,0xA9,0x17,0xDC,0x53,0x6B,0x78,0x2E,0xA7,0xBF,0x87,0xB6,0xE1,0x1A,0x52, + + 0x84,0x80,0x4C,0xD9,0xE9,0x29,0x5C,0x3D,0xB3,0x38,0x0B,0xE2,0x1D,0x4A,0xF3,0x30, + + 0x25,0x68,0x97,0x24,0xC5,0x3A,0x47,0xA2,0x4B,0x6E,0xB2,0x81,0xF4,0xE3,0x9E,0xA1, + + 0x04,0x82,0x02,0xB9,0x77,0x10,0xE1,0x38,0x3B,0x7A,0x91,0x26,0x5A,0xEB,0x2D,0xAA, + + 0xD4,0x1C,0x79,0x18,0x6A,0xDB,0x01,0xF3,0x27,0x38,0xB1,0xE0,0xB4,0xB2,0x9A,0xF5, + + 0x81,0x25,0xAC,0x8B,0x55,0xFA,0xB2,0x3A,0xB4,0x1C,0x27,0xAA,0x74,0xFC,0x74,0x37, + + 0x05,0x24,0xAA,0x0B,0x1D,0xA9,0x7B,0x5C,0xB2,0xCF,0xC8,0x5C,0xEA,0x8C,0x30,0x94, + + 0x67,0x1B,0xAD,0x2A,0x9C,0xAA,0xA6,0x34,0xBC,0xD1,0x88,0xCD,0xDA,0xCB,0xBE,0x5C, + + 0x47,0x1A,0xAB,0x27,0x9D,0xAB,0x15,0x81,0x6C,0xA7,0x83,0xD0,0x50,0x1D,0x62,0xB7, + + 0x1F,0x57,0x4B,0x30,0x8B,0x01,0x12,0x2E,0xCE,0xC1,0x8A,0x4A,0x7E,0x8E,0x0A,0x59, + + 0x0B,0xCD,0x2A,0x5F,0xD6,0x50,0xD5,0x95,0xFA,0x65,0x7D,0x18,0xBD,0xCD,0x43,0xCF, + + 0x8D,0xD6,0xFD,0xB4,0xED,0xAE,0x8A,0x4C,0x6F,0x44,0xA0,0xA9,0xD0,0xF5,0x69,0x60, + + 0xF8,0xFA,0x07,0xCC,0xBE,0xA7,0x03,0x85,0x72,0x37,0xFE,0x97,0x19,0x22,0xDB,0xF8, + + 0xD3,0xD1,0x3F,0xAD,0x49,0x8D,0xCF,0xDD,0x6A,0x2F,0xF4,0x4B,0xE7,0xAB,0x93,0xC9, + + 0x4E,0x9E,0xBF,0x65,0xB1,0x3C,0xC3,0xB0,0x69,0x8D,0x33,0x0E,0x3F,0x6A,0x88,0xF8, + + 0x39,0x2E,0xBD,0xB3,0x5D,0x6A,0x8E,0xC3,0xA4,0x89,0xB0,0xD5,0x0F,0xB0,0xAD,0xE8, + + 0xA3,0xB2,0xFB,0xCE,0x5E,0xD7,0x82,0xFD,0x86,0x03,0x2D,0x33,0xBE,0x97,0x5E,0x3C, + + 0x45,0xCD,0x82,0x1A,0x37,0xD4,0x7C,0xF6,0xE4,0x9C,0x1B,0x04,0xD7,0x7E,0x3E,0x9D, + + 0xCC,0xF1,0x40,0x45,0x6C,0xBF,0xEC,0xB4,0xAC,0xC8,0x83,0x14,0xF5,0xDD,0xF6,0x30, + + 0x22,0x1B,0x42,0x1B,0x92,0x4B,0xE8,0x81,0x9A,0xD9,0x08,0x05,0x57,0x7C,0x55,0x28, + + 0x86,0x26,0x6D,0xC8,0xEC,0xF6,0x2D,0x84,0xBB,0x90,0x59,0x95,0xB4,0x0A,0x11,0x0E, + + 0x08,0x02,0x9E,0x61,0xDF,0xB1,0xA3,0x2E,0x5E,0xE1,0x6D,0xAD,0x03,0xF4,0xEA,0x50, + + 0x96,0x66,0xF4,0x65,0x49,0x16,0x4D,0xD8,0x2D,0xD6,0x69,0x93,0x4E,0xB4,0x8C,0xCC, + + 0xA2,0x46,0x61,0xD0,0x01,0x46,0x8E,0x49,0x6E,0x76,0x77,0x56,0x9F,0xB8,0xEF,0xBF, + + 0xA3,0x66,0x0F,0xED,0xDF,0x17,0xAF,0xEE,0xB0,0x23,0x7F,0xAF,0x47,0xB9,0xCA,0x58, + + 0x6E,0x96,0xDC,0x3D,0x46,0xFE,0x18,0x98,0xE3,0xAA,0x8E,0xCA,0x4D,0x48,0x6C,0xA1, + + 0x4F,0x02,0x91,0x26,0xBE,0x42,0x44,0x71,0xD4,0x50,0x5D,0x1C,0x9F,0x42,0x65,0x33, + + 0xAE,0x9A,0x6E,0xA3,0x81,0xBF,0x8A,0x99,0x78,0x81,0x4D,0x11,0x17,0x07,0x14,0xA1, + + 0xA1,0xFD,0x34,0xDD,0xB9,0x9F,0x1E,0x11,0x1E,0xDC,0x3F,0x3F,0x82,0xBE,0xC0,0x21, + + 0xAC,0x42,0x0C,0x38,0x16,0x61,0x49,0x2D,0xE5,0xFF,0xAB,0x94,0xCC,0xFF,0xCC,0x4E, + + 0x0F,0x1F,0xC6,0x36,0xC0,0xDC,0x01,0x23,0xE2,0xA0,0xDE,0xDC,0xC6,0x2C,0x91,0xD9, + + 0x55,0x6E,0x43,0x67,0x6B,0x60,0x09,0x91,0xC6,0x90,0x4C,0xBD,0xD6,0x9A,0x74,0xEE, + + 0xE2,0x6B,0xA2,0xE5,0x57,0xF2,0x67,0x19,0xF6,0x36,0xEB,0x3D,0xDD,0x2D,0xFB,0xA6, + + 0x26,0xF0,0x13,0xE4,0x30,0xF5,0x30,0x24,0x36,0xC9,0xAF,0xE0,0x19,0xC7,0x16,0xB2, + + 0x07,0xA8,0x19,0xEC,0xF2,0x23,0xD8,0x42,0x23,0x54,0x78,0x06,0x65,0xCA,0x95,0xC5, + + 0xBB,0x4D,0x01,0xED,0x1C,0x64,0x29,0x45,0xA9,0x49,0x6C,0x54,0xA7,0xC9,0x9D,0xD5, + + 0xAB,0xB2,0x64,0x25,0x30,0x65,0x27,0x77,0x2A,0x48,0x7D,0x17,0x2C,0xDC,0x11,0x8C, + + 0x2C,0xCA,0x42,0x28,0xD1,0x25,0xCF,0xA8,0x80,0xA9,0x05,0x08,0x6B,0x36,0x3A,0x56, + + 0xF4,0x55,0x4A,0x38,0x31,0x6B,0x7B,0xC4,0xD5,0x0B,0x76,0xBC,0xA5,0x49,0x3B,0xF2, + + 0x8E,0xA0,0x7C,0xFD,0x9F,0xFB,0x80,0xDA,0xB4,0xB1,0x2B,0x3D,0x7F,0x2B,0x55,0xFB, + + 0x8D,0x76,0x1B,0x9A,0x26,0x7E,0x16,0xB3,0xBE,0x3E,0x37,0x7F,0x5A,0x29,0x7C,0x44, + + 0xA9,0x69,0xD2,0x4C,0x1C,0x7D,0x00,0xC6,0xA1,0x28,0x52,0x68,0x11,0xCF,0x32,0x5C, + + 0xE2,0x6E,0x93,0x8C,0xBE,0x24,0x62,0xA8,0x47,0xB2,0x76,0x3E,0xD8,0x2F,0x7D,0x44, + + 0x29,0xA5,0x01,0xED,0xE2,0x8E,0xC3,0xEB,0x4A,0xF6,0x3F,0xED,0x26,0x4E,0x2B,0x76, + + 0x45,0x4D,0xC9,0x2F,0xA8,0xD8,0xCB,0x66,0x9A,0x01,0x0D,0x9D,0x0B,0xB9,0x2C,0xE6, + + 0x01,0x60,0x67,0xC4,0x24,0x0D,0x2F,0x67,0xAA,0x59,0x31,0xB0,0xF7,0x66,0x2C,0xF6, + + 0x02,0x71,0x35,0x06,0x31,0xEE,0x02,0x52,0x81,0x0A,0x9C,0x76,0xF2,0x37,0xBD,0x11, + + 0x07,0x09,0x7A,0xEA,0x6E,0xCD,0x5D,0x98,0x11,0xF6,0xC5,0x3B,0x0B,0x89,0x54,0xD3, + + 0x06,0x08,0x1D,0xFE,0x8D,0xCC,0x1D,0x80,0xBA,0xAC,0x2A,0x91,0x9A,0x7C,0x9B,0xC1, + + 0xDF,0x78,0x04,0xE0,0x37,0x76,0x6B,0x62,0x40,0x64,0xBC,0x62,0x8E,0x35,0x16,0xE4, + + 0x5F,0x0A,0xF4,0x3B,0xCE,0x77,0x3C,0x50,0x3F,0x5A,0xD6,0xF0,0xD0,0x73,0x23,0xB0, + + 0xA1,0x37,0xD1,0x47,0x05,0x53,0x6B,0xB9,0x41,0xD6,0xB5,0x45,0xAC,0x7B,0xF5,0x2F, + + 0xC0,0xF6,0x5D,0x15,0x58,0x53,0xDD,0x30,0x38,0x83,0x8D,0x6C,0x90,0x57,0x4C,0xEE, + + 0x09,0x09,0xBC,0x20,0xCF,0x54,0xAF,0x19,0xCB,0x87,0x16,0xD7,0x7E,0x59,0x2E,0xFE, + + 0xD6,0xB4,0xC6,0x9D,0x1D,0xE5,0x78,0x64,0x6A,0xDB,0xA6,0x53,0x84,0xD8,0x3D,0x7A, + + 0xC4,0x01,0x38,0x16,0x4D,0xAC,0xA2,0x70,0x55,0x34,0xA0,0xCF,0x4F,0x1F,0x99,0xDE, + + 0x77,0x11,0xB4,0xC3,0x64,0x86,0x45,0x43,0x95,0xF4,0xA7,0x8D,0xBD,0xD4,0xD1,0x22, + + 0x8F,0x70,0x7F,0x2E,0x96,0x41,0x86,0xF7,0x44,0xC8,0xAE,0x6E,0x58,0x8E,0x8A,0x23, + + 0x48,0x96,0x0E,0xFD,0xAB,0x30,0x14,0xBE,0x14,0x1D,0xBE,0x5C,0x2D,0xF0,0xA4,0x37, + + 0x0E,0xF3,0xBF,0x3D,0x50,0x8F,0x05,0xF2,0x80,0x1C,0xEF,0xBD,0xF2,0x71,0xD8,0x2A, + + 0x2F,0x92,0x34,0x2D,0x7A,0xCE,0x9F,0xF8,0x7B,0xAA,0xA7,0x7F,0xFE,0xB5,0xE0,0x23, + + 0x9A,0x5F,0xD8,0x7C,0xFF,0xAF,0xEF,0xA2,0xF8,0xD1,0x66,0x2C,0x89,0x5D,0x83,0x55, + + 0x0B,0x5D,0xD0,0xBA,0xE2,0xE0,0xF8,0x6A,0x96,0x1A,0x1F,0xA9,0x3E,0x57,0x95,0x61, + + 0xB7,0x62,0x93,0x2A,0x6B,0x0F,0x80,0x16,0xBF,0x22,0x1E,0xD6,0x02,0xE2,0xED,0xD9, + + 0x3E,0x7C,0x04,0x68,0x08,0xFF,0x8C,0xCE,0xC7,0xB6,0x3C,0x45,0xD3,0x00,0x66,0x5F, + + 0xEF,0x14,0x18,0xAE,0xC5,0xE9,0x71,0x24,0x06,0xDF,0xD7,0xF9,0x3D,0x52,0x10,0xBA, + + 0xA3,0x48,0x2F,0x29,0x35,0x48,0xAC,0xA2,0xC6,0x4D,0x86,0x45,0x3C,0x60,0x19,0x64, + + 0x6F,0x36,0x1E,0x77,0x69,0xE0,0xB6,0x05,0x07,0xA5,0xF0,0xE3,0xB8,0x9D,0x96,0xA3, + + 0x6D,0x26,0xEF,0x5F,0x32,0xBC,0x09,0x9C,0x3F,0x6E,0x79,0x31,0x45,0x43,0x78,0xCE, + + 0x7C,0xCA,0x19,0x40,0xF5,0xF1,0x23,0x04,0x20,0x73,0x6F,0xDF,0xB4,0xEC,0xCE,0xE1, + + 0xB8,0xCB,0x55,0x6C,0x6F,0x76,0x35,0x51,0x69,0x75,0xDB,0x2D,0x29,0x7D,0xB3,0x2A, + + 0x8A,0xCB,0x0F,0x8A,0x27,0x1B,0x52,0xD3,0x50,0x88,0xED,0x1D,0x9C,0xA6,0xBB,0x40, + + 0xA9,0x90,0x47,0x70,0x43,0xF6,0x84,0x60,0x3D,0x31,0x9D,0x02,0x05,0x40,0xB6,0xCE, + + 0x26,0x98,0x15,0xA8,0x3A,0x07,0xC5,0x17,0x48,0x66,0x7C,0x74,0x96,0xF4,0xFC,0x3C, + + 0x82,0xEF,0xFE,0x65,0xBE,0xF2,0xCF,0x0B,0xB7,0x34,0x12,0xF4,0x7D,0x3B,0xDC,0xA9, + + 0xAA,0x95,0x9B,0x4B,0x67,0xEC,0x4F,0x19,0x25,0xC4,0xD4,0x9E,0x42,0x8E,0x0B,0x75, + + 0xEC,0x80,0x5F,0x3D,0x20,0x52,0xCC,0x06,0xC9,0x65,0x84,0x82,0xDF,0xE1,0xE1,0x72, + + 0xB8,0x31,0x0B,0xA2,0x16,0xB3,0x94,0x52,0x9A,0x03,0x14,0xD4,0x16,0xCC,0xAB,0xAD, + + 0x49,0xD3,0x92,0xFF,0x5D,0xBC,0xB9,0xAF,0x9B,0xD1,0x08,0xD4,0xCA,0x0C,0xB3,0x69, + + 0x01,0x9B,0x75,0xA7,0xC8,0x43,0x4B,0xA4,0x1D,0xDD,0x75,0x86,0x76,0xAD,0x67,0xC9, + + 0xA3,0x21,0xD2,0xE4,0x84,0xD0,0x39,0xAF,0x65,0x1E,0x7D,0x96,0x22,0xAE,0x36,0xEC, + + 0xCD,0xF0,0x9D,0xB8,0x91,0xF5,0x26,0x66,0x6E,0x60,0xAE,0xE3,0xD5,0x79,0x01,0xF6, + + 0xA5,0xBD,0x57,0x98,0xDE,0x6C,0x5B,0xE1,0x49,0x91,0x27,0xA5,0x08,0x6C,0x5A,0x21, + + 0xFA,0x92,0x48,0xB8,0x2B,0xEA,0xC2,0x52,0xE0,0xF6,0x0A,0x63,0xB5,0x50,0xC9,0xB1, + + 0xE6,0x87,0xF5,0x43,0xD7,0x48,0x5B,0x57,0x6B,0xDA,0x20,0xA7,0x16,0x48,0xE2,0xCA, + + 0x64,0x6D,0xDD,0x7E,0xBD,0x09,0x35,0xA8,0xB5,0x99,0xCE,0x89,0xC1,0xF7,0x28,0xAF, + + 0xAD,0xE7,0xFD,0xA1,0xB9,0x66,0x98,0x86,0x6B,0x98,0xAA,0xB4,0xDC,0x26,0xB1,0x0F, + + 0xD4,0x57,0xD9,0x89,0xDF,0x9E,0x9C,0xD4,0x39,0x51,0xED,0x1C,0x84,0xB8,0xBF,0x3B, + + 0xB1,0xC8,0x90,0xAF,0x2F,0x04,0x48,0xD9,0x12,0x50,0xE5,0x6B,0x81,0xE4,0x1E,0x48, + + 0x2F,0xE4,0x19,0xBC,0x5C,0x43,0xC2,0x15,0x68,0xFC,0x76,0x3F,0x8A,0x71,0x66,0x96, + + 0x6D,0x92,0x4E,0xB0,0x49,0x12,0x0E,0x3C,0xC5,0x9F,0x2E,0xEA,0xFD,0x51,0x3D,0xCF, + + 0x0D,0x98,0x1C,0xA0,0xC2,0x11,0x50,0x24,0x5D,0x92,0x08,0x11,0x05,0xFD,0x0F,0x9F, + + 0xD3,0x90,0x4B,0xBD,0x40,0x32,0xB3,0x7F,0xEB,0x15,0x0A,0x9D,0x87,0x40,0x60,0x53, + + 0xBE,0x0D,0xD0,0x9A,0xEB,0xDB,0x70,0x7F,0xE3,0xCB,0x91,0x12,0xBA,0x75,0x6B,0xD0, + + 0x47,0x7D,0x3F,0x30,0x6E,0xDE,0x62,0xC0,0x92,0x4E,0x2A,0x0F,0x2E,0x61,0x16,0xFB, + + 0x79,0x6E,0x81,0xC7,0x13,0x64,0x15,0xC3,0x42,0xBE,0x9B,0x13,0x20,0x72,0x36,0x5E, + + 0xD9,0x88,0xB3,0xEB,0x6A,0x38,0x79,0x6E,0x26,0xEE,0xF1,0xF7,0x57,0x96,0x80,0xF5, + + 0x23,0x46,0xCC,0x46,0xCB,0xD9,0x29,0x06,0x63,0xF4,0xAF,0xE6,0x53,0x9B,0xC8,0x96, + + 0x91,0x06,0x1E,0xBB,0xAE,0xDA,0x73,0xF4,0x7C,0x74,0x48,0x06,0xA8,0xEE,0x97,0x10, + + 0xE9,0x72,0xEE,0x3E,0x65,0x8B,0xE6,0x54,0xC4,0xCC,0xE9,0x45,0x73,0x59,0xAA,0xAA, + + 0xFC,0x07,0x25,0xCE,0x92,0xA7,0xEE,0x44,0xC7,0x1F,0xE2,0x4C,0xD5,0x74,0x02,0x25, + + 0xE3,0x4C,0xE4,0x7A,0xEB,0x95,0xDA,0xCA,0xE4,0xE5,0x02,0x33,0x34,0x73,0xAE,0x7A, + + 0x75,0xF6,0xD3,0x9B,0xFC,0x90,0xCE,0x9D,0x0A,0x45,0x82,0x18,0xB0,0x88,0x39,0xB9, + + 0x19,0xA5,0x2F,0x97,0x9B,0x58,0xDF,0xCB,0x75,0xC6,0x14,0x4B,0xB1,0x8B,0x31,0xA5, + + 0x7E,0x0F,0x93,0x99,0xFA,0x64,0x14,0xC7,0x20,0xB3,0xC3,0x25,0xEA,0xB9,0x2A,0x8A, + + 0x8C,0xF9,0x7F,0xB2,0xE3,0xD3,0xD6,0x79,0x26,0x48,0x85,0x0E,0x31,0x63,0xB5,0x2A, + + 0xFC,0x86,0xC2,0x46,0x12,0x99,0x08,0x88,0xFF,0x42,0x83,0x79,0x8E,0x01,0xD3,0xA1, + + 0x98,0x43,0x53,0x53,0xE4,0xDA,0x6B,0x4D,0x48,0x4A,0x55,0x5F,0x2E,0x61,0x3B,0x65, + + 0x8D,0x1C,0x43,0x32,0xBA,0x5D,0x80,0x7B,0xB4,0x4C,0x1F,0x23,0xD5,0x71,0xFC,0x70, + + 0xCA,0x61,0xCF,0x6C,0xCE,0x7F,0x3E,0x70,0xC3,0xD8,0xBC,0x20,0x0B,0xFB,0xB9,0x63, + + 0xAD,0x9C,0x51,0x89,0xCA,0x73,0x7E,0xB4,0x67,0xB2,0x64,0x30,0x0F,0x60,0x7B,0x87, + + 0x41,0x91,0x5E,0xDB,0xCF,0xF8,0x95,0x52,0x2A,0xF9,0x55,0x18,0xCC,0x69,0x75,0x9C, + + 0x21,0x9D,0xC3,0xAB,0xC6,0x6F,0x13,0x40,0x7D,0x41,0xC4,0xD3,0xF7,0x80,0x24,0xC2, + + 0x23,0x19,0x68,0x86,0xB1,0x9F,0x12,0xA2,0xC3,0x58,0xEA,0xB4,0xAC,0xD9,0x59,0xC8, + + 0xA1,0x11,0x92,0x47,0x2F,0xB8,0xFC,0xB2,0xE0,0xFE,0xE2,0xA4,0xAD,0x8A,0x3F,0xA1, + + 0xF6,0x54,0x27,0xC5,0x6A,0xD0,0x2D,0xA3,0x6E,0x5A,0x59,0x7B,0xF3,0x46,0x45,0xB3, + + 0xC2,0x42,0xB3,0x47,0xB5,0xD4,0x35,0x79,0xE5,0x57,0xE3,0xB0,0x25,0xA8,0x96,0x4F, + + 0x2A,0xED,0x59,0x12,0x07,0xC8,0xFE,0x22,0x4A,0x8E,0x87,0x2E,0xB5,0x77,0xCE,0x2D, + + 0x0A,0x5B,0x3D,0x60,0xEC,0xC2,0x76,0x3E,0x95,0x18,0x30,0x4E,0x7F,0xF9,0x03,0xCE, + + 0x29,0x14,0xBD,0x76,0xBE,0x90,0x68,0x54,0xE8,0x54,0x57,0xBD,0x00,0x7C,0xD9,0xF0, + + 0xAF,0xF8,0x91,0x70,0xE5,0xB6,0xF3,0x39,0x15,0x7B,0xB1,0xBD,0xF9,0x7B,0x5E,0xCD, + + 0x49,0xE3,0x73,0x48,0x54,0xC4,0xD7,0x6C,0x2D,0xDC,0x46,0x9E,0x8D,0x83,0x76,0x6A, + + 0x23,0xCD,0xAF,0x7C,0xED,0x82,0x26,0x7A,0x62,0x39,0xE6,0x2C,0x8C,0x72,0x3F,0x4B, + + 0x22,0x1E,0x99,0xC2,0xA8,0x70,0x37,0xA9,0x44,0xD3,0x47,0x6F,0xD8,0x8C,0x75,0x3B, + + 0xAD,0xAD,0x10,0xDD,0x38,0x31,0x67,0xA9,0xE3,0x50,0xBF,0xB9,0xBC,0xF2,0x1E,0x26, + + 0xE5,0xFF,0xB7,0x82,0x26,0x83,0x1A,0x87,0x07,0xCD,0x08,0xD7,0xF7,0x13,0x60,0x26, + + 0x66,0xF5,0xE0,0x02,0xC8,0x3C,0xF6,0x1D,0x46,0x81,0x98,0x26,0x2A,0xFF,0x9C,0x44, + + 0x4E,0xB8,0x99,0xFD,0x19,0x54,0xBA,0xD8,0x0C,0xE8,0x83,0xD8,0x20,0xED,0xBC,0xF9, + + 0x20,0x8A,0x06,0x49,0x6C,0x7F,0xB6,0x56,0x4A,0xC1,0x62,0x3E,0xD3,0xA9,0x26,0x3D, + + 0xA5,0x0F,0x25,0x35,0x13,0xD5,0x2F,0x67,0x35,0xC4,0x8D,0x99,0x35,0x79,0x3C,0x20, + + 0xA4,0x0E,0xE4,0xA5,0x9B,0xA8,0x42,0xED,0xB8,0x48,0x47,0x94,0x0F,0x52,0x99,0x7F, + + 0x80,0x95,0x9F,0x41,0x77,0x05,0xB1,0xA3,0xD3,0xAA,0xE6,0xE3,0xE4,0x55,0xEE,0x6E, + + 0x78,0x57,0x16,0x24,0x96,0xD6,0x9A,0xF1,0x47,0x04,0x1B,0xAC,0xF3,0x8B,0x61,0x55, + + 0xB1,0x74,0xA5,0x0C,0xCF,0x54,0x85,0x2B,0xC1,0xC4,0x4C,0xAC,0x5D,0x0F,0x6D,0x9F, + + 0x0C,0xAB,0xF3,0xDF,0xBA,0xAF,0x9E,0x29,0xC1,0x0F,0x3D,0x4D,0x31,0xA6,0xE3,0xDB, + + 0x5D,0xC8,0x18,0x50,0xB8,0x27,0x5B,0x34,0x48,0x1E,0xE9,0x2E,0x7F,0xF1,0x72,0xCB, + + 0xEE,0xAB,0x82,0x35,0x3E,0x04,0x1D,0x3D,0x03,0x76,0x2B,0xC3,0x55,0x10,0x91,0x46, + + 0xBF,0x57,0x9C,0x48,0xFF,0x0F,0x0A,0x4D,0xB3,0xC3,0xCD,0xE1,0xAF,0xBA,0x88,0xB6, + + 0x0F,0x00,0x92,0x5C,0xBA,0xEC,0x21,0x78,0x34,0xCE,0x6D,0x81,0xB6,0x85,0xC9,0xB6, + + 0x7F,0xF5,0x34,0xBC,0x12,0x53,0xA8,0x69,0xB1,0xDD,0xFB,0x66,0x37,0x66,0x14,0x5F, + + 0xD2,0x1C,0x07,0xDF,0x63,0x8F,0xA6,0x73,0xCB,0x37,0x28,0x81,0xFB,0x81,0xC0,0x06, + + 0x4A,0x2B,0xDB,0x82,0x7F,0x65,0x98,0xE0,0xE7,0x6D,0xB4,0xD4,0x47,0x66,0xAC,0xD4, + + 0xB7,0x35,0x00,0xD4,0xB6,0xF3,0x3D,0x41,0xAF,0x7A,0x2C,0x71,0x77,0x04,0x5B,0xB0, + + 0xCF,0x17,0x49,0x07,0x48,0x92,0x1F,0x73,0x47,0x5A,0x4F,0x4F,0x47,0xBD,0x23,0x89, + + 0x6D,0x5B,0x7B,0x77,0x5E,0x76,0x5A,0xBB,0x31,0x16,0xB9,0xF0,0x74,0xFD,0x05,0x22, + + 0x6A,0x6B,0x04,0xF9,0x12,0xB2,0x1C,0x20,0xE5,0x90,0x8C,0x64,0x54,0x06,0xF7,0xC8, + + 0x03,0x93,0x8C,0x89,0x80,0x08,0x14,0x90,0x41,0x21,0x9C,0x56,0x2D,0x78,0xA5,0xFF, + + 0x2F,0xD4,0x4A,0x28,0x4B,0xB9,0x1D,0xE4,0x65,0xD9,0xCD,0x37,0x0D,0xF9,0xC7,0x15, + + 0x06,0x1E,0x95,0x55,0x6A,0x88,0xAF,0x77,0xEE,0xD3,0x85,0x75,0x77,0x4E,0x01,0x7B, + + 0xB0,0xF8,0xD8,0xB9,0x57,0x1D,0x91,0x9D,0x07,0x7D,0x09,0x9E,0x78,0x57,0x51,0x67, + + 0x2D,0x97,0xFE,0x00,0xC6,0xA5,0xFE,0x0F,0x30,0x72,0x5C,0x4F,0xB7,0xB9,0xCF,0x01, + + 0x8E,0x4C,0xA6,0x0B,0xD2,0x0C,0x97,0x5A,0x0C,0x5A,0x51,0xDD,0x8A,0x55,0x47,0x1D, + + 0x51,0xDA,0x12,0xD5,0x59,0x3C,0x9A,0x23,0x6A,0xCD,0xE1,0x2D,0xBD,0x76,0x62,0x2A, + + 0x0A,0x33,0x5B,0x2C,0xBC,0x40,0xD1,0x5F,0x93,0x27,0xCE,0x3E,0x22,0xFA,0x08,0x13, + + 0x2C,0xAF,0x8E,0x9E,0x82,0x36,0xBB,0x12,0x4B,0x90,0xB0,0xCE,0xFD,0xF5,0xF1,0xB8, + + 0xC2,0xF2,0x9E,0xBC,0xF1,0xB1,0x77,0x15,0xCC,0x6E,0xA7,0x62,0x5D,0xBE,0x35,0xD4, + + 0xC7,0x7E,0xEB,0x3D,0x9D,0x40,0x69,0x4F,0x10,0x9D,0x43,0x80,0x5C,0xBE,0x5E,0xE2, + + 0x04,0xFD,0x84,0x43,0x91,0x2E,0x30,0xAA,0x41,0x20,0xAA,0xD7,0x3C,0xEB,0x98,0xA6, + + 0x07,0x20,0x3A,0x0B,0xFD,0x8E,0xB4,0xAB,0x40,0xC1,0x8C,0x3E,0xF0,0x0F,0xC1,0x20, + + 0x7B,0x40,0x41,0xB0,0xD7,0xF6,0xA6,0x5C,0xE4,0xBF,0x02,0x14,0xBC,0x20,0x32,0x6B, + + 0x22,0x66,0xBF,0x91,0xFF,0xBB,0xA6,0xAA,0x3E,0x02,0xFB,0x34,0xD0,0xC3,0x94,0xBA, + + 0x8D,0xF9,0x8A,0xBA,0xB1,0x29,0x7D,0x93,0xCE,0x49,0xE8,0xB4,0xA5,0x6B,0xCE,0x2F, + + 0xD9,0xFA,0xB0,0xD6,0x12,0xA2,0xC8,0x0F,0x16,0x4E,0xB8,0x35,0xA6,0x68,0x26,0x3F, + + 0x50,0x0E,0x8B,0x58,0xD3,0x2E,0xFD,0xFF,0x82,0xB9,0x65,0x95,0x8E,0x69,0xF2,0xCB, + + 0x74,0x46,0x72,0xB7,0x3F,0xDA,0x5F,0x6C,0x3D,0x47,0xD3,0x71,0x70,0x26,0x3D,0xEA, + + 0x63,0x07,0xDC,0x03,0x1C,0x66,0xCD,0x28,0x6C,0x93,0x25,0x19,0x5E,0x00,0x99,0x9C, + + 0x2D,0xCE,0x55,0x1C,0x9A,0x27,0x64,0x3E,0xA8,0xCA,0x0C,0x7B,0x9B,0x99,0x83,0x76, + + 0x8E,0x4B,0xE2,0xAD,0x4E,0x95,0x17,0xD9,0x7D,0x9B,0x4B,0x3C,0xB4,0xC7,0xCB,0x38, + + 0x5E,0x96,0x6B,0x22,0xBD,0x69,0x35,0xCA,0x45,0x46,0x93,0x4E,0xFD,0x96,0xEE,0x33, + + 0xD4,0xF3,0xBA,0x68,0x9F,0x0B,0x56,0x74,0xB3,0xD4,0x12,0x39,0xFC,0x20,0xE7,0x27, + + 0x96,0x51,0xED,0xA1,0x57,0x63,0x5A,0x79,0x1B,0x0F,0x20,0x3A,0x59,0x21,0x78,0xD7, + + 0x7D,0x4F,0x1C,0x5C,0x9C,0x0E,0x0B,0x78,0x92,0xF9,0x52,0x1F,0xE9,0xDA,0xF0,0x17, + + 0xE0,0x3E,0xBB,0x1B,0x39,0xD1,0x5F,0x2A,0x3E,0x46,0xDA,0x8E,0xAE,0x74,0xAF,0x04, + + 0x2B,0xE6,0xDE,0xC1,0x4C,0x72,0x2C,0x5B,0xED,0xAD,0x23,0xA5,0xFD,0x7C,0xE7,0xB4, + + 0xAE,0x13,0xD6,0x83,0x4D,0x73,0x67,0xF7,0x98,0xD7,0x5C,0x01,0xCD,0x33,0x03,0x59, + + 0xB8,0x16,0x15,0x11,0x11,0xED,0x72,0x5A,0x15,0xC4,0xFD,0x21,0x9E,0xB8,0xBA,0x90, + + 0x2C,0x1F,0x1D,0x2E,0x44,0x3C,0xF5,0xCB,0x23,0x53,0x4B,0xE8,0x9A,0x07,0xFC,0x33, + + 0x21,0x04,0x44,0x01,0x01,0x76,0xC4,0xA2,0xC3,0x58,0x56,0x60,0x39,0x10,0x4D,0xB6, + + 0xC8,0x5F,0xC4,0x7B,0xD2,0x3A,0xFC,0xB2,0xE0,0xFE,0xBE,0xFC,0x72,0x65,0xFD,0x32, + + 0xA9,0x0D,0x8B,0x35,0x96,0x30,0x2D,0xA3,0x6E,0x5A,0x8C,0xC6,0x17,0x18,0x4C,0xB7, + + 0x48,0x7D,0xAD,0x95,0x05,0x3A,0x35,0x71,0xE5,0x34,0x1D,0xDD,0xF3,0x35,0x6E,0x0C, + + 0x46,0x0C,0xDC,0x48,0x44,0x7A,0x1E,0xDB,0xEA,0x94,0x16,0x6A,0xEA,0x7B,0xB8,0x69, + + 0xC1,0x49,0xD4,0x0A,0x45,0x7B,0xA1,0x5A,0x4D,0x75,0xF6,0x7E,0xFF,0x8C,0x3D,0x7A, + + 0x4C,0xB5,0x17,0xAC,0x19,0xE5,0xAF,0xD7,0x4B,0x3F,0x74,0x56,0x87,0x7A,0xCF,0x2C, + + 0x73,0x18,0x1F,0xCE,0x4C,0x34,0x9E,0xFA,0xF1,0x77,0x0F,0xCE,0x8C,0x17,0xD6,0xD6, + + 0x0C,0xE8,0x8C,0x32,0x99,0x31,0x28,0x2A,0xE9,0x52,0xD9,0x57,0xFD,0xFD,0x91,0xF8, + + 0x2D,0x3D,0xC6,0x76,0xCE,0x32,0x26,0x3A,0xCA,0x1E,0x8E,0xF0,0x6B,0xF6,0x93,0x4D, + + 0xE9,0x52,0x8D,0xD0,0x19,0x38,0xF7,0x2B,0x66,0x50,0x47,0x6F,0xD8,0x6C,0x6E,0xE6, + + 0x8D,0x5D,0x7B,0xA2,0x18,0x7E,0x3F,0xB9,0x45,0xD2,0xEA,0x1F,0x57,0xF4,0x58,0x25, + + 0xFD,0x8F,0xE7,0x8C,0x35,0x42,0x4F,0x5D,0xC9,0x76,0x70,0x07,0xA5,0xA2,0x84,0x81, + + 0x1E,0x8B,0xF1,0xB9,0xB0,0x50,0xBA,0x5D,0x26,0x20,0x41,0x4C,0xF6,0x84,0xB1,0x71, + + 0x3F,0xBF,0xF8,0x40,0x31,0x5D,0x39,0x33,0x90,0x15,0x21,0x91,0xD2,0xC3,0x6A,0xE3, + + 0x9A,0xB2,0x51,0x71,0x1A,0x25,0xAA,0xC0,0x41,0x4E,0x86,0xD5,0x28,0xA1,0x44,0xB3, + + 0x32,0x88,0x19,0x80,0xB4,0xE1,0xF4,0x9F,0xB9,0x85,0x92,0x90,0xD3,0xA4,0x4E,0x3A, + + 0x4E,0x21,0x98,0x76,0x31,0x68,0x7C,0x35,0xC6,0xCB,0x31,0x74,0x3C,0x9F,0x3E,0xC3, + + 0xF5,0xF1,0x93,0xC1,0xB0,0xEA,0xE1,0xA4,0xC4,0x33,0x19,0x77,0xF2,0x4D,0x74,0x07, + + 0x7B,0xD6,0x79,0xD3,0xD4,0xEF,0xB9,0xC6,0x80,0x85,0xF9,0x9F,0xB0,0x6C,0xE2,0x2B, + + 0x9C,0x85,0xE0,0x4E,0x4C,0xAE,0x60,0x7C,0xA7,0xAC,0xA6,0xF0,0x5A,0xA9,0x85,0x60, + + 0xD0,0x35,0xAE,0xFC,0x39,0x24,0x70,0x7E,0xCF,0x05,0x81,0xDC,0xF1,0x54,0x58,0xF9, + + 0xAD,0x5A,0xAF,0x08,0x3D,0x22,0x0B,0xD4,0xE8,0x88,0x41,0xAB,0xF8,0x9B,0x16,0x40, + + 0x8B,0xB3,0xF2,0xB0,0x3A,0xEA,0x83,0x59,0x3E,0xAE,0xC3,0x1B,0x52,0xE9,0xD1,0x63, + + 0x0A,0x14,0x82,0x18,0xBB,0x71,0xA4,0x3B,0x25,0xB8,0x2D,0x88,0x4E,0x67,0x50,0xFF, + + 0xB0,0x26,0x2A,0x12,0xD5,0xA4,0x99,0x81,0x30,0xCD,0xB4,0x98,0x6C,0x05,0x2F,0x6D, + + 0x9A,0xE9,0x9B,0x68,0x63,0xA1,0xF3,0xAD,0x5C,0xCD,0x0C,0x89,0x3F,0xF5,0xE4,0x5B, + + 0xBC,0x4F,0x6F,0xE0,0x93,0xCF,0x13,0xB9,0x49,0x3A,0x03,0x5B,0xEC,0xCA,0xC7,0x79, + + 0xD8,0x67,0x34,0x04,0xBC,0x68,0x36,0xA1,0x27,0xD0,0xD2,0xDB,0x75,0x90,0x1F,0x28, + + 0xA6,0x9F,0x6C,0x46,0x96,0xB7,0x10,0x22,0xEC,0x83,0x70,0x65,0x73,0x5B,0x96,0x3D, + + 0x5C,0x25,0x9D,0xD7,0x34,0xBD,0x19,0x2A,0x6D,0x60,0xE5,0xAF,0xA0,0xB0,0xCD,0xAC, + + 0x81,0x3E,0x89,0xCB,0x14,0xBA,0xB5,0xFC,0x86,0xD3,0x5D,0x33,0xF8,0xD2,0x60,0xD9, + + 0xDA,0xF7,0xDE,0x38,0xC3,0x35,0x0C,0x60,0x67,0x93,0xC4,0x04,0x52,0x7F,0xA0,0x56, + + 0x23,0x5F,0x3C,0x2C,0xCE,0x3C,0x44,0x22,0x3B,0x5D,0xEC,0x14,0x53,0xF3,0xA5,0x13, + + 0x10,0xD4,0xF6,0x3C,0x57,0x35,0x4D,0xB3,0xEE,0xD9,0xC0,0x05,0x5A,0x7D,0xBE,0x23, + + 0x02,0x66,0x69,0x24,0x33,0x23,0x4D,0x11,0x65,0xDF,0xF5,0xC0,0x56,0x28,0xB9,0x65, + + 0xD5,0xE9,0xA5,0xFD,0x1F,0xD6,0x36,0xEE,0xF1,0x93,0x76,0x7F,0x15,0xBF,0x91,0xDD, + + 0xB3,0xC4,0x6E,0x4A,0x7D,0xBD,0x62,0xBA,0xE4,0x7A,0xB8,0xC2,0x59,0xF4,0xDA,0xF9, + + 0x82,0xC5,0xC5,0xFF,0xBF,0x1A,0x37,0xAB,0xE5,0xA6,0x36,0x8F,0xEC,0xBA,0x35,0x99, + + 0x1E,0x10,0x14,0x9B,0xB2,0xBD,0x3F,0x7C,0xEF,0x2E,0xA9,0xDD,0x06,0x76,0x18,0xCC, + + 0xCF,0x1F,0x42,0xB1,0x9D,0x6C,0x06,0x94,0xCD,0xB9,0x96,0xAE,0x92,0xF1,0x95,0x2A, + + 0x82,0x6C,0x8E,0x9F,0xC6,0xB0,0x76,0x4D,0x8E,0xD2,0xF6,0xFB,0xF0,0xF9,0x4A,0x38, + + 0x22,0x93,0x14,0x4F,0x03,0xFF,0xC8,0x09,0xCA,0xD8,0x5B,0x71,0x73,0x08,0x11,0xDD, + + 0x4E,0x1C,0xA5,0x21,0x1C,0xDA,0x1F,0xBB,0x09,0xD2,0xFB,0xB8,0xFC,0xF0,0x90,0x82, + + 0x05,0x5A,0xD9,0x20,0x9F,0x22,0x80,0x52,0xBF,0xCB,0x94,0xC6,0x74,0xFB,0xC2,0xF2, + + 0x83,0x49,0xE0,0x14,0x7A,0xC5,0x4C,0x52,0xB6,0x2D,0x85,0x1A,0x60,0x9A,0x3B,0xE3, + + 0x02,0x4A,0x36,0x04,0x1D,0x2E,0xE9,0x1C,0xC6,0x51,0xB5,0xDC,0x51,0x17,0x29,0x73, + + 0xC2,0xF8,0x8D,0x15,0x12,0x2D,0xDD,0xD3,0x9D,0xB4,0xF8,0xC9,0x4D,0x23,0x19,0xD9, + + 0xA5,0x45,0xC0,0x44,0x12,0x24,0x50,0x60,0x42,0x44,0xD0,0x64,0x52,0x64,0xB7,0x22, + + 0xA0,0xF8,0xC8,0x54,0x13,0x25,0x58,0x70,0x43,0x45,0xD8,0x74,0x53,0x65,0x21,0x01, + + 0x2C,0x0B,0xC1,0x45,0x92,0x26,0x51,0x61,0xC2,0x46,0xD1,0x65,0xD2,0x66,0x31,0x75, + + 0x85,0x15,0xC9,0x55,0x93,0x27,0x59,0x71,0xC3,0x47,0xD9,0x75,0xD3,0x67,0x7A,0x2F, + + 0xA9,0x82,0x62,0x33,0x3C,0x44,0x93,0xCB,0x4C,0xB0,0xDA,0xD7,0xDA,0x20,0xC6,0x2F, + + 0x76,0x0B,0xAD,0x8A,0x5B,0x8D,0x20,0xC2,0x94,0xD4,0x4A,0x78,0xFA,0x0C,0xF8,0xEB, + + 0xAC,0x48,0xDE,0x12,0x75,0x31,0x36,0x77,0x35,0x96,0x33,0x5F,0x7B,0x6C,0xD0,0xB6, + + 0x8F,0xFB,0x14,0xFF,0x79,0x94,0xB4,0x62,0x3C,0xF7,0xE3,0x39,0x92,0xEA,0x42,0x68, + + 0x5E,0x6C,0xC2,0x4C,0x1A,0x2C,0x52,0x68,0x4A,0x4C,0xD2,0x6C,0x5A,0x6C,0xED,0xFC, + + 0x0D,0x87,0xCA,0x5C,0x1B,0x2D,0x5A,0x78,0x4B,0x4D,0xDA,0x7C,0x5B,0x6D,0x83,0x88, + + 0xA3,0x4F,0xC3,0x4D,0x9A,0x2E,0x53,0x69,0xCA,0x4E,0xD3,0x6D,0xDA,0x6E,0x60,0x66, + + 0xAD,0x4F,0xCB,0x5D,0x9B,0x2F,0x5B,0x79,0xCB,0x4F,0xDB,0x7D,0xDB,0x6F,0x5F,0xA4, + + 0xAF,0x12,0x24,0x77,0xBC,0x8D,0x60,0x84,0xE7,0xF7,0x54,0xE8,0xB4,0x7D,0x04,0xA6, + + 0x80,0xBE,0x43,0x64,0x3D,0x3E,0xCE,0xF6,0xCB,0x10,0x0C,0x73,0x98,0x0B,0xB2,0x80, + + 0x2D,0x14,0xFD,0xA1,0x32,0x7A,0xBD,0x07,0xE6,0x98,0x6E,0x82,0x51,0x8D,0x9E,0x82, + + 0x7E,0xE2,0x4D,0x80,0x30,0x35,0xA2,0x80,0x40,0xF2,0xFB,0xD8,0x92,0x77,0x9B,0xD0, + + 0x24,0x9E,0xC4,0xC4,0x32,0x34,0x54,0xE0,0x62,0x54,0xD4,0xE4,0x72,0x74,0xCA,0x23, + + 0x50,0x54,0xCC,0xD4,0x33,0x35,0x5C,0xF0,0x63,0x55,0xDC,0xF4,0x73,0x75,0xB4,0xE5, + + 0x5F,0x97,0xC5,0xC5,0xB2,0x36,0x55,0xE1,0xE2,0x56,0xD5,0xE5,0xF2,0x76,0x4D,0xD1, + + 0xA3,0x17,0xCD,0xD5,0xB3,0x37,0x5D,0xF1,0xE3,0x57,0xDD,0xF5,0xF3,0x77,0xE6,0xB7, + + 0xDC,0xC9,0x0E,0x8B,0x5B,0xB8,0x2E,0x98,0x77,0x1A,0xEF,0xDD,0x6F,0x6E,0x75,0x01, + + 0xD4,0xA8,0x15,0x74,0xE1,0xF6,0x43,0x50,0x32,0x19,0xC4,0xB9,0xDA,0x7F,0xB0,0xB4, + + 0x8C,0x97,0xFF,0xA9,0x59,0x95,0x50,0x17,0xEE,0xDA,0x07,0x2F,0xF9,0x02,0x71,0x9F, + + 0x48,0xC8,0xEF,0xDD,0x07,0x34,0x1D,0x9A,0xEF,0x51,0x97,0xF1,0x18,0x74,0x46,0xC8, + + 0x2A,0x1C,0xC6,0xCC,0x3A,0x3C,0x56,0xE8,0x6A,0x5C,0xD6,0xEC,0x7A,0x7C,0x4E,0xD8, + + 0x2B,0x1D,0xCE,0xDC,0x3B,0x3D,0x5E,0xF8,0x6B,0x5D,0xDE,0xFC,0x7B,0x7D,0x47,0xC9, + + 0xAA,0x1E,0xC7,0xCD,0xBA,0x3E,0x57,0xE9,0xEA,0x5E,0xD7,0xED,0xFA,0x7E,0x4F,0xD9, + + 0xAB,0x1F,0xCF,0xDD,0xBB,0x3F,0x5F,0xF9,0xEB,0x5F,0xDF,0xFD,0xFB,0x7F,0xA6,0x86, + + 0x6C,0x0B,0x60,0xC6,0x69,0xE1,0xF0,0xF3,0x2E,0x50,0x0F,0xE1,0x8E,0xE8,0xA9,0xEA, + + 0x01,0xB2,0x28,0xF4,0x97,0xE2,0x06,0x4F,0xC8,0x47,0x28,0x71,0xAC,0x17,0x71,0x97, + + 0x88,0xC0,0xC1,0x43,0xEF,0x29,0x42,0x0E,0x6B,0x83,0xB3,0x58,0x0E,0x1D,0x3F,0x97, + + 0x8A,0x2D,0xA3,0x93,0xD5,0x0F,0x3F,0xF3,0xC9,0x4E,0x46,0x13,0x09,0xA7,0xE9,0x47, + + 0x83,0x75,0xE0,0x46,0x16,0xA4,0x70,0x62,0x46,0xC4,0xF0,0x66,0x56,0xE4,0x31,0x9C, + + 0xA0,0xC4,0xE8,0x56,0x17,0xA5,0x78,0x72,0x47,0xC5,0xF8,0x76,0x57,0xE5,0xCD,0xB3, + + 0x96,0x70,0xE1,0x47,0x96,0xA6,0x71,0x63,0xC6,0xC6,0xF1,0x67,0xD6,0xE6,0x39,0x63, + + 0xC3,0xC5,0xE9,0x57,0x97,0xA7,0x79,0x73,0xC7,0xC7,0xF9,0x77,0xD7,0xE7,0xD2,0x06, + + 0xE5,0x51,0xE4,0xDF,0x57,0x02,0x12,0x3E,0xA5,0x31,0x11,0x29,0xE1,0xE1,0xEA,0x57, + + 0xCC,0xCB,0x05,0x6C,0x61,0x56,0xC5,0x1E,0x4B,0xE9,0x0E,0x3C,0xB2,0xA8,0x7B,0x06, + + 0xC6,0x53,0x33,0x50,0xFD,0xCA,0x21,0xC4,0x41,0xA8,0x31,0xA2,0x25,0xE5,0x65,0x9D, + + 0x8B,0x78,0x91,0xAF,0xBB,0x5F,0x1C,0x7D,0x6F,0x85,0xE2,0x31,0x9B,0x26,0x64,0xC7, + + 0x08,0x24,0xE2,0x4E,0x1E,0xAC,0x72,0x6A,0x4E,0xCC,0xF2,0x6E,0x5E,0xEC,0xB5,0x4E, + + 0x09,0x07,0xEA,0x5E,0x1F,0xAD,0x7A,0x7A,0x4F,0xCD,0xFA,0x7E,0x5F,0xED,0x09,0x6F, + + 0x0B,0xA9,0xE3,0x4F,0x9E,0xAE,0x73,0x6B,0xCE,0xCE,0xF3,0x6F,0xDE,0xEE,0x9A,0x7F, + + 0x0A,0xA8,0xEB,0x5F,0x9F,0xAF,0x7B,0x7B,0xCF,0xCF,0xFB,0x7F,0xDF,0xEF,0x5A,0x85, + + 0x85,0x01,0xA6,0x64,0xB3,0xE5,0xC2,0x26,0x71,0x76,0x24,0x24,0xA9,0x7F,0x83,0xE8, + + 0xF8,0xD0,0x96,0x74,0x17,0x4E,0x65,0x0D,0x6D,0xB1,0x61,0xB7,0x71,0x09,0x5E,0xF8, + + 0x87,0xBD,0x35,0x05,0x96,0xD2,0x6D,0xA6,0xE0,0xB8,0x8F,0x45,0x68,0x18,0x74,0x9D, + + 0x40,0xFF,0xD2,0x15,0x97,0xD3,0xFD,0x62,0x86,0x92,0x21,0x35,0x28,0x7C,0x64,0xC2, + + 0x26,0x94,0xE4,0xC6,0x36,0xB4,0x74,0xE2,0x66,0xD4,0xF4,0xE6,0x76,0xF4,0x6C,0xD2, + + 0x27,0x95,0xEC,0xD6,0x37,0xB5,0x7C,0xF2,0x67,0xD5,0xFC,0xF6,0x77,0xF5,0x65,0xC3, + + 0xA6,0x96,0xE5,0xC7,0xB6,0xB6,0x75,0xE3,0xE6,0xD6,0xF5,0xE7,0xF6,0xF6,0x6D,0xD3, + + 0xA7,0x97,0xED,0xD7,0xB7,0xB7,0x7D,0xF3,0xE7,0xD7,0xFD,0xF7,0xF7,0xF7,0x44,0x16, + + 0x2F,0x08,0xFC,0x8F,0x9F,0xF9,0xF6,0x6A,0x82,0x9A,0xEC,0xAF,0xDF,0x5C,0xEE,0xD6, + + 0xE9,0x44,0xE4,0x65,0x9E,0xBF,0xC9,0xBF,0x61,0x99,0x22,0xCC,0x4E,0x29,0x7E,0x85, + + 0x49,0x5A,0xC7,0xCE,0x49,0xB7,0xBE,0x38,0xCD,0xBA,0xFF,0x7A,0xF8,0x02,0x57,0xBC, + + 0x50,0x94,0xA3,0xE4,0x1C,0x33,0x71,0x4B,0xEB,0xB1,0x47,0x57,0x29,0x34,0x66,0xCA, + + 0x2E,0x9C,0xE6,0xCE,0x3E,0xBC,0x76,0xEA,0x6E,0xDC,0xF6,0xEE,0x7E,0xFC,0x6E,0xDA, + + 0x2F,0x9D,0xEE,0xDE,0x3F,0xBD,0x7E,0xFA,0x6F,0xDD,0xFE,0xFE,0x7F,0xFD,0x67,0xCB, + + 0xAE,0x9E,0xE7,0xCF,0xBE,0xBE,0x77,0xEB,0xEE,0xDE,0xF7,0xEF,0xFE,0xFE,0x6F,0xDB, + + 0xAF,0x9F,0xEF,0xDF,0xBF,0xBF,0x7F,0xFB,0xEF,0xDF,0xFF,0xFF,0xFF,0xFF,0x00,0x00, + + 0x00,0x00,0x80,0x04,0x10,0x20,0x10,0x20,0x40,0x40,0x90,0x24,0x50,0x60,0x08,0x10, + + 0x01,0x01,0x88,0x14,0x11,0x21,0x18,0x30,0x41,0x41,0x98,0x34,0x51,0x61,0x01,0x01, + + 0x80,0x02,0x81,0x05,0x90,0x22,0x11,0x21,0xC0,0x42,0x91,0x25,0xD0,0x62,0x09,0x11, + + 0x81,0x03,0x89,0x15,0x91,0x23,0x19,0x31,0xC1,0x43,0x99,0x35,0xD1,0x63,0x40,0x40, + + 0x02,0x04,0xC0,0x44,0x12,0x24,0x50,0x60,0x42,0x44,0xD0,0x64,0x52,0x64,0x48,0x50, + + 0x03,0x05,0xC8,0x54,0x13,0x25,0x58,0x70,0x43,0x45,0xD8,0x74,0x53,0x65,0x41,0x41, + + 0x82,0x06,0xC1,0x45,0x92,0x26,0x51,0x61,0xC2,0x46,0xD1,0x65,0xD2,0x66,0x49,0x51, + + 0x83,0x07,0xC9,0x55,0x93,0x27,0x59,0x71,0xC3,0x47,0xD9,0x75,0xD3,0x67,0x02,0x08, + + 0x08,0x08,0x82,0x0C,0x18,0x28,0x12,0x28,0x48,0x48,0x92,0x2C,0x58,0x68,0x0A,0x18, + + 0x09,0x09,0x8A,0x1C,0x19,0x29,0x1A,0x38,0x49,0x49,0x9A,0x3C,0x59,0x69,0x03,0x09, + + 0x88,0x0A,0x83,0x0D,0x98,0x2A,0x13,0x29,0xC8,0x4A,0x93,0x2D,0xD8,0x6A,0x0B,0x19, + + 0x89,0x0B,0x8B,0x1D,0x99,0x2B,0x1B,0x39,0xC9,0x4B,0x9B,0x3D,0xD9,0x6B,0x42,0x48, + + 0x0A,0x0C,0xC2,0x4C,0x1A,0x2C,0x52,0x68,0x4A,0x4C,0xD2,0x6C,0x5A,0x6C,0x4A,0x58, + + 0x0B,0x0D,0xCA,0x5C,0x1B,0x2D,0x5A,0x78,0x4B,0x4D,0xDA,0x7C,0x5B,0x6D,0x43,0x49, + + 0x8A,0x0E,0xC3,0x4D,0x9A,0x2E,0x53,0x69,0xCA,0x4E,0xD3,0x6D,0xDA,0x6E,0x4B,0x59, + + 0x8B,0x0F,0xCB,0x5D,0x9B,0x2F,0x5B,0x79,0xCB,0x4F,0xDB,0x7D,0xDB,0x6F,0x04,0x80, + + 0x20,0x10,0x84,0x84,0x30,0x30,0x14,0xA0,0x60,0x50,0x94,0xA4,0x70,0x70,0x0C,0x90, + + 0x21,0x11,0x8C,0x94,0x31,0x31,0x1C,0xB0,0x61,0x51,0x9C,0xB4,0x71,0x71,0x05,0x81, + + 0xA0,0x12,0x85,0x85,0xB0,0x32,0x15,0xA1,0xE0,0x52,0x95,0xA5,0xF0,0x72,0x0D,0x91, + + 0xA1,0x13,0x8D,0x95,0xB1,0x33,0x1D,0xB1,0xE1,0x53,0x9D,0xB5,0xF1,0x73,0x44,0xC0, + + 0x22,0x14,0xC4,0xC4,0x32,0x34,0x54,0xE0,0x62,0x54,0xD4,0xE4,0x72,0x74,0x4C,0xD0, + + 0x23,0x15,0xCC,0xD4,0x33,0x35,0x5C,0xF0,0x63,0x55,0xDC,0xF4,0x73,0x75,0x45,0xC1, + + 0xA2,0x16,0xC5,0xC5,0xB2,0x36,0x55,0xE1,0xE2,0x56,0xD5,0xE5,0xF2,0x76,0x4D,0xD1, + + 0xA3,0x17,0xCD,0xD5,0xB3,0x37,0x5D,0xF1,0xE3,0x57,0xDD,0xF5,0xF3,0x77,0x06,0x88, + + 0x28,0x18,0x86,0x8C,0x38,0x38,0x16,0xA8,0x68,0x58,0x96,0xAC,0x78,0x78,0x0E,0x98, + + 0x29,0x19,0x8E,0x9C,0x39,0x39,0x1E,0xB8,0x69,0x59,0x9E,0xBC,0x79,0x79,0x07,0x89, + + 0xA8,0x1A,0x87,0x8D,0xB8,0x3A,0x17,0xA9,0xE8,0x5A,0x97,0xAD,0xF8,0x7A,0x0F,0x99, + + 0xA9,0x1B,0x8F,0x9D,0xB9,0x3B,0x1F,0xB9,0xE9,0x5B,0x9F,0xBD,0xF9,0x7B,0x46,0xC8, + + 0x2A,0x1C,0xC6,0xCC,0x3A,0x3C,0x56,0xE8,0x6A,0x5C,0xD6,0xEC,0x7A,0x7C,0x4E,0xD8, + + 0x2B,0x1D,0xCE,0xDC,0x3B,0x3D,0x5E,0xF8,0x6B,0x5D,0xDE,0xFC,0x7B,0x7D,0x47,0xC9, + + 0xAA,0x1E,0xC7,0xCD,0xBA,0x3E,0x57,0xE9,0xEA,0x5E,0xD7,0xED,0xFA,0x7E,0x4F,0xD9, + + 0xAB,0x1F,0xCF,0xDD,0xBB,0x3F,0x5F,0xF9,0xEB,0x5F,0xDF,0xFD,0xFB,0x7F,0x20,0x02, + + 0x04,0x80,0xA0,0x06,0x14,0xA0,0x30,0x22,0x44,0xC0,0xB0,0x26,0x54,0xE0,0x28,0x12, + + 0x05,0x81,0xA8,0x16,0x15,0xA1,0x38,0x32,0x45,0xC1,0xB8,0x36,0x55,0xE1,0x21,0x03, + + 0x84,0x82,0xA1,0x07,0x94,0xA2,0x31,0x23,0xC4,0xC2,0xB1,0x27,0xD4,0xE2,0x29,0x13, + + 0x85,0x83,0xA9,0x17,0x95,0xA3,0x39,0x33,0xC5,0xC3,0xB9,0x37,0xD5,0xE3,0x60,0x42, + + 0x06,0x84,0xE0,0x46,0x16,0xA4,0x70,0x62,0x46,0xC4,0xF0,0x66,0x56,0xE4,0x68,0x52, + + 0x07,0x85,0xE8,0x56,0x17,0xA5,0x78,0x72,0x47,0xC5,0xF8,0x76,0x57,0xE5,0x61,0x43, + + 0x86,0x86,0xE1,0x47,0x96,0xA6,0x71,0x63,0xC6,0xC6,0xF1,0x67,0xD6,0xE6,0x69,0x53, + + 0x87,0x87,0xE9,0x57,0x97,0xA7,0x79,0x73,0xC7,0xC7,0xF9,0x77,0xD7,0xE7,0x22,0x0A, + + 0x0C,0x88,0xA2,0x0E,0x1C,0xA8,0x32,0x2A,0x4C,0xC8,0xB2,0x2E,0x5C,0xE8,0x2A,0x1A, + + 0x0D,0x89,0xAA,0x1E,0x1D,0xA9,0x3A,0x3A,0x4D,0xC9,0xBA,0x3E,0x5D,0xE9,0x23,0x0B, + + 0x8C,0x8A,0xA3,0x0F,0x9C,0xAA,0x33,0x2B,0xCC,0xCA,0xB3,0x2F,0xDC,0xEA,0x2B,0x1B, + + 0x8D,0x8B,0xAB,0x1F,0x9D,0xAB,0x3B,0x3B,0xCD,0xCB,0xBB,0x3F,0xDD,0xEB,0x62,0x4A, + + 0x0E,0x8C,0xE2,0x4E,0x1E,0xAC,0x72,0x6A,0x4E,0xCC,0xF2,0x6E,0x5E,0xEC,0x6A,0x5A, + + 0x0F,0x8D,0xEA,0x5E,0x1F,0xAD,0x7A,0x7A,0x4F,0xCD,0xFA,0x7E,0x5F,0xED,0x63,0x4B, + + 0x8E,0x8E,0xE3,0x4F,0x9E,0xAE,0x73,0x6B,0xCE,0xCE,0xF3,0x6F,0xDE,0xEE,0x6B,0x5B, + + 0x8F,0x8F,0xEB,0x5F,0x9F,0xAF,0x7B,0x7B,0xCF,0xCF,0xFB,0x7F,0xDF,0xEF,0x24,0x82, + + 0x24,0x90,0xA4,0x86,0x34,0xB0,0x34,0xA2,0x64,0xD0,0xB4,0xA6,0x74,0xF0,0x2C,0x92, + + 0x25,0x91,0xAC,0x96,0x35,0xB1,0x3C,0xB2,0x65,0xD1,0xBC,0xB6,0x75,0xF1,0x25,0x83, + + 0xA4,0x92,0xA5,0x87,0xB4,0xB2,0x35,0xA3,0xE4,0xD2,0xB5,0xA7,0xF4,0xF2,0x2D,0x93, + + 0xA5,0x93,0xAD,0x97,0xB5,0xB3,0x3D,0xB3,0xE5,0xD3,0xBD,0xB7,0xF5,0xF3,0x64,0xC2, + + 0x26,0x94,0xE4,0xC6,0x36,0xB4,0x74,0xE2,0x66,0xD4,0xF4,0xE6,0x76,0xF4,0x6C,0xD2, + + 0x27,0x95,0xEC,0xD6,0x37,0xB5,0x7C,0xF2,0x67,0xD5,0xFC,0xF6,0x77,0xF5,0x65,0xC3, + + 0xA6,0x96,0xE5,0xC7,0xB6,0xB6,0x75,0xE3,0xE6,0xD6,0xF5,0xE7,0xF6,0xF6,0x6D,0xD3, + + 0xA7,0x97,0xED,0xD7,0xB7,0xB7,0x7D,0xF3,0xE7,0xD7,0xFD,0xF7,0xF7,0xF7,0x26,0x8A, + + 0x2C,0x98,0xA6,0x8E,0x3C,0xB8,0x36,0xAA,0x6C,0xD8,0xB6,0xAE,0x7C,0xF8,0x2E,0x9A, + + 0x2D,0x99,0xAE,0x9E,0x3D,0xB9,0x3E,0xBA,0x6D,0xD9,0xBE,0xBE,0x7D,0xF9,0x27,0x8B, + + 0xAC,0x9A,0xA7,0x8F,0xBC,0xBA,0x37,0xAB,0xEC,0xDA,0xB7,0xAF,0xFC,0xFA,0x2F,0x9B, + + 0xAD,0x9B,0xAF,0x9F,0xBD,0xBB,0x3F,0xBB,0xED,0xDB,0xBF,0xBF,0xFD,0xFB,0x66,0xCA, + + 0x2E,0x9C,0xE6,0xCE,0x3E,0xBC,0x76,0xEA,0x6E,0xDC,0xF6,0xEE,0x7E,0xFC,0x6E,0xDA, + + 0x2F,0x9D,0xEE,0xDE,0x3F,0xBD,0x7E,0xFA,0x6F,0xDD,0xFE,0xFE,0x7F,0xFD,0x67,0xCB, + + 0xAE,0x9E,0xE7,0xCF,0xBE,0xBE,0x77,0xEB,0xEE,0xDE,0xF7,0xEF,0xFE,0xFE,0x6F,0xDB, + + 0xAF,0x9F,0xEF,0xDF,0xBF,0xBF,0x7F,0xFB,0xEF,0xDF,0xFF,0xFF,0xFF,0xFF,0x00,0x00, + + 0x00,0x00,0x80,0x04,0x10,0x20,0x10,0x20,0x40,0x40,0x90,0x24,0x50,0x60,0x08,0x10, + + 0x01,0x01,0x88,0x14,0x11,0x21,0x18,0x30,0x41,0x41,0x98,0x34,0x51,0x61,0x01,0x01, + + 0x80,0x02,0x81,0x05,0x90,0x22,0x11,0x21,0xC0,0x42,0x91,0x25,0xD0,0x62,0x09,0x11, + + 0x81,0x03,0x89,0x15,0x91,0x23,0x19,0x31,0xC1,0x43,0x99,0x35,0xD1,0x63,0x40,0x40, + + 0x02,0x04,0xC0,0x44,0x12,0x24,0x50,0x60,0x42,0x44,0xD0,0x64,0x52,0x64,0x48,0x50, + + 0x03,0x05,0xC8,0x54,0x13,0x25,0x58,0x70,0x43,0x45,0xD8,0x74,0x53,0x65,0x41,0x41, + + 0x82,0x06,0xC1,0x45,0x92,0x26,0x51,0x61,0xC2,0x46,0xD1,0x65,0xD2,0x66,0x49,0x51, + + 0x83,0x07,0xC9,0x55,0x93,0x27,0x59,0x71,0xC3,0x47,0xD9,0x75,0xD3,0x67,0x02,0x08, + + 0x08,0x08,0x82,0x0C,0x18,0x28,0x12,0x28,0x48,0x48,0x92,0x2C,0x58,0x68,0x0A,0x18, + + 0x09,0x09,0x8A,0x1C,0x19,0x29,0x1A,0x38,0x49,0x49,0x9A,0x3C,0x59,0x69,0x03,0x09, + + 0x88,0x0A,0x83,0x0D,0x98,0x2A,0x13,0x29,0xC8,0x4A,0x93,0x2D,0xD8,0x6A,0x0B,0x19, + + 0x89,0x0B,0x8B,0x1D,0x99,0x2B,0x1B,0x39,0xC9,0x4B,0x9B,0x3D,0xD9,0x6B,0x42,0x48, + + 0x0A,0x0C,0xC2,0x4C,0x1A,0x2C,0x52,0x68,0x4A,0x4C,0xD2,0x6C,0x5A,0x6C,0x4A,0x58, + + 0x0B,0x0D,0xCA,0x5C,0x1B,0x2D,0x5A,0x78,0x4B,0x4D,0xDA,0x7C,0x5B,0x6D,0x43,0x49, + + 0x8A,0x0E,0xC3,0x4D,0x9A,0x2E,0x53,0x69,0xCA,0x4E,0xD3,0x6D,0xDA,0x6E,0x4B,0x59, + + 0x8B,0x0F,0xCB,0x5D,0x9B,0x2F,0x5B,0x79,0xCB,0x4F,0xDB,0x7D,0xDB,0x6F,0x04,0x80, + + 0x20,0x10,0x84,0x84,0x30,0x30,0x14,0xA0,0x60,0x50,0x94,0xA4,0x70,0x70,0x0C,0x90, + + 0x21,0x11,0x8C,0x94,0x31,0x31,0x1C,0xB0,0x61,0x51,0x9C,0xB4,0x71,0x71,0x05,0x81, + + 0xA0,0x12,0x85,0x85,0xB0,0x32,0x15,0xA1,0xE0,0x52,0x95,0xA5,0xF0,0x72,0x0D,0x91, + + 0xA1,0x13,0x8D,0x95,0xB1,0x33,0x1D,0xB1,0xE1,0x53,0x9D,0xB5,0xF1,0x73,0x44,0xC0, + + 0x22,0x14,0xC4,0xC4,0x32,0x34,0x54,0xE0,0x62,0x54,0xD4,0xE4,0x72,0x74,0x4C,0xD0, + + 0x23,0x15,0xCC,0xD4,0x33,0x35,0x5C,0xF0,0x63,0x55,0xDC,0xF4,0x73,0x75,0x45,0xC1, + + 0xA2,0x16,0xC5,0xC5,0xB2,0x36,0x55,0xE1,0xE2,0x56,0xD5,0xE5,0xF2,0x76,0x4D,0xD1, + + 0xA3,0x17,0xCD,0xD5,0xB3,0x37,0x5D,0xF1,0xE3,0x57,0xDD,0xF5,0xF3,0x77,0x06,0x88, + + 0x28,0x18,0x86,0x8C,0x38,0x38,0x16,0xA8,0x68,0x58,0x96,0xAC,0x78,0x78,0x0E,0x98, + + 0x29,0x19,0x8E,0x9C,0x39,0x39,0x1E,0xB8,0x69,0x59,0x9E,0xBC,0x79,0x79,0x07,0x89, + + 0xA8,0x1A,0x87,0x8D,0xB8,0x3A,0x17,0xA9,0xE8,0x5A,0x97,0xAD,0xF8,0x7A,0x0F,0x99, + + 0xA9,0x1B,0x8F,0x9D,0xB9,0x3B,0x1F,0xB9,0xE9,0x5B,0x9F,0xBD,0xF9,0x7B,0x46,0xC8, + + 0x2A,0x1C,0xC6,0xCC,0x3A,0x3C,0x56,0xE8,0x6A,0x5C,0xD6,0xEC,0x7A,0x7C,0x4E,0xD8, + + 0x2B,0x1D,0xCE,0xDC,0x3B,0x3D,0x5E,0xF8,0x6B,0x5D,0xDE,0xFC,0x7B,0x7D,0x47,0xC9, + + 0xAA,0x1E,0xC7,0xCD,0xBA,0x3E,0x57,0xE9,0xEA,0x5E,0xD7,0xED,0xFA,0x7E,0x4F,0xD9, + + 0xAB,0x1F,0xCF,0xDD,0xBB,0x3F,0x5F,0xF9,0xEB,0x5F,0xDF,0xFD,0xFB,0x7F,0x20,0x02, + + 0x04,0x80,0xA0,0x06,0x14,0xA0,0x30,0x22,0x44,0xC0,0xB0,0x26,0x54,0xE0,0x28,0x12, + + 0x05,0x81,0xA8,0x16,0x15,0xA1,0x38,0x32,0x45,0xC1,0xB8,0x36,0x55,0xE1,0x21,0x03, + + 0x84,0x82,0xA1,0x07,0x94,0xA2,0x31,0x23,0xC4,0xC2,0xB1,0x27,0xD4,0xE2,0x29,0x13, + + 0x85,0x83,0xA9,0x17,0x95,0xA3,0x39,0x33,0xC5,0xC3,0xB9,0x37,0xD5,0xE3,0x60,0x42, + + 0x06,0x84,0xE0,0x46,0x16,0xA4,0x70,0x62,0x46,0xC4,0xF0,0x66,0x56,0xE4,0x68,0x52, + + 0x07,0x85,0xE8,0x56,0x17,0xA5,0x78,0x72,0x47,0xC5,0xF8,0x76,0x57,0xE5,0x61,0x43, + + 0x86,0x86,0xE1,0x47,0x96,0xA6,0x71,0x63,0xC6,0xC6,0xF1,0x67,0xD6,0xE6,0x69,0x53, + + 0x87,0x87,0xE9,0x57,0x97,0xA7,0x79,0x73,0xC7,0xC7,0xF9,0x77,0xD7,0xE7,0x22,0x0A, + + 0x0C,0x88,0xA2,0x0E,0x1C,0xA8,0x32,0x2A,0x4C,0xC8,0xB2,0x2E,0x5C,0xE8,0x2A,0x1A, + + 0x0D,0x89,0xAA,0x1E,0x1D,0xA9,0x3A,0x3A,0x4D,0xC9,0xBA,0x3E,0x5D,0xE9,0x23,0x0B, + + 0x8C,0x8A,0xA3,0x0F,0x9C,0xAA,0x33,0x2B,0xCC,0xCA,0xB3,0x2F,0xDC,0xEA,0x2B,0x1B, + + 0x8D,0x8B,0xAB,0x1F,0x9D,0xAB,0x3B,0x3B,0xCD,0xCB,0xBB,0x3F,0xDD,0xEB,0x62,0x4A, + + 0x0E,0x8C,0xE2,0x4E,0x1E,0xAC,0x72,0x6A,0x4E,0xCC,0xF2,0x6E,0x5E,0xEC,0x6A,0x5A, + + 0x0F,0x8D,0xEA,0x5E,0x1F,0xAD,0x7A,0x7A,0x4F,0xCD,0xFA,0x7E,0x5F,0xED,0x63,0x4B, + + 0x8E,0x8E,0xE3,0x4F,0x9E,0xAE,0x73,0x6B,0xCE,0xCE,0xF3,0x6F,0xDE,0xEE,0x6B,0x5B, + + 0x8F,0x8F,0xEB,0x5F,0x9F,0xAF,0x7B,0x7B,0xCF,0xCF,0xFB,0x7F,0xDF,0xEF,0x24,0x82, + + 0x24,0x90,0xA4,0x86,0x34,0xB0,0x34,0xA2,0x64,0xD0,0xB4,0xA6,0x74,0xF0,0x2C,0x92, + + 0x25,0x91,0xAC,0x96,0x35,0xB1,0x3C,0xB2,0x65,0xD1,0xBC,0xB6,0x75,0xF1,0x25,0x83, + + 0xA4,0x92,0xA5,0x87,0xB4,0xB2,0x35,0xA3,0xE4,0xD2,0xB5,0xA7,0xF4,0xF2,0x2D,0x93, + + 0xA5,0x93,0xAD,0x97,0xB5,0xB3,0x3D,0xB3,0xE5,0xD3,0xBD,0xB7,0xF5,0xF3,0x64,0xC2, + + 0x26,0x94,0xE4,0xC6,0x36,0xB4,0x74,0xE2,0x66,0xD4,0xF4,0xE6,0x76,0xF4,0x6C,0xD2, + + 0x27,0x95,0xEC,0xD6,0x37,0xB5,0x7C,0xF2,0x67,0xD5,0xFC,0xF6,0x77,0xF5,0x65,0xC3, + + 0xA6,0x96,0xE5,0xC7,0xB6,0xB6,0x75,0xE3,0xE6,0xD6,0xF5,0xE7,0xF6,0xF6,0x6D,0xD3, + + 0xA7,0x97,0xED,0xD7,0xB7,0xB7,0x7D,0xF3,0xE7,0xD7,0xFD,0xF7,0xF7,0xF7,0x26,0x8A, + + 0x2C,0x98,0xA6,0x8E,0x3C,0xB8,0x36,0xAA,0x6C,0xD8,0xB6,0xAE,0x7C,0xF8,0x2E,0x9A, + + 0x2D,0x99,0xAE,0x9E,0x3D,0xB9,0x3E,0xBA,0x6D,0xD9,0xBE,0xBE,0x7D,0xF9,0x27,0x8B, + + 0xAC,0x9A,0xA7,0x8F,0xBC,0xBA,0x37,0xAB,0xEC,0xDA,0xB7,0xAF,0xFC,0xFA,0x2F,0x9B, + + 0xAD,0x9B,0xAF,0x9F,0xBD,0xBB,0x3F,0xBB,0xED,0xDB,0xBF,0xBF,0xFD,0xFB,0x66,0xCA, + + 0x2E,0x9C,0xE6,0xCE,0x3E,0xBC,0x76,0xEA,0x6E,0xDC,0xF6,0xEE,0x7E,0xFC,0x6E,0xDA, + + 0x2F,0x9D,0xEE,0xDE,0x3F,0xBD,0x7E,0xFA,0x6F,0xDD,0xFE,0xFE,0x7F,0xFD,0x67,0xCB, + + 0xAE,0x9E,0xE7,0xCF,0xBE,0xBE,0x77,0xEB,0xEE,0xDE,0xF7,0xEF,0xFE,0xFE,0x6F,0xDB, + + 0xAF,0x9F,0xEF,0xDF,0xBF,0xBF,0x7F,0xFB,0xEF,0xDF,0xFF,0xFF,0x90,0xE4,0xA8,0x30, + + 0x85,0x31,0x40,0xA1,0x4B,0x24,0x49,0xF3,0xE7,0x25,0xF0,0x26,0xCE,0x6D,0x32,0xF8, + + 0xF0,0x4E,0x5C,0x4A,0x82,0x1E,0xA0,0xCB,0x72,0xF6,0x35,0x5D,0xF2,0xEC,0xA9,0x29, + + 0x05,0xE3,0x87,0x42,0xBE,0xFE,0x29,0xC9,0x03,0x0D,0xDB,0x38,0x90,0x64,0x08,0xF7, + + 0xB2,0x26,0xD4,0x36,0x3E,0xFE,0xD9,0x94,0x73,0x58,0x66,0x4A,0xA2,0x63,0x80,0xE5, + + 0x07,0x02,0x48,0x74,0xF3,0x2B,0x30,0x24,0x05,0xCF,0xD7,0xE0,0x7C,0xEE,0xC0,0xD2, + + 0x0A,0xBA,0x7C,0x44,0xB0,0x23,0x91,0x92,0xC1,0x0D,0x65,0xF6,0x56,0x87,0x4D,0xB2, + + 0x84,0x65,0x75,0xA7,0x10,0x2E,0xD5,0x83,0x40,0x0E,0x0E,0x15,0xD4,0x0C,0x89,0xF4, + + 0x86,0x01,0x41,0x39,0x72,0x28,0x41,0x81,0xBC,0x48,0xE1,0x8A,0x12,0x05,0xF8,0xE0, + + 0xC6,0xC3,0xC7,0xEB,0x2B,0xD0,0x7C,0x4E,0x7B,0xB0,0x4F,0x2D,0x38,0x0E,0x53,0x93, + + 0xEE,0x12,0x75,0xDB,0x2A,0x4C,0x37,0x59,0xE8,0xD6,0x63,0xB8,0x51,0x3F,0x83,0x01, + + 0xEF,0x10,0x3B,0xF3,0x88,0x67,0xD3,0x8C,0x7A,0x4C,0xEE,0x57,0xBA,0x6E,0xEC,0x2F, + + 0xB4,0xA6,0x33,0x82,0x6C,0xA2,0x7B,0x3B,0x6D,0x46,0xE0,0xED,0x95,0x62,0x4E,0x4E, + + 0xAB,0x84,0xA2,0x0D,0x9E,0x21,0xE6,0x98,0xB5,0x43,0x16,0xBC,0x56,0x6F,0x9E,0xD6, + + 0x48,0xB2,0xCE,0xD8,0x35,0x7B,0x10,0xC7,0xE8,0x4B,0xDE,0xF8,0x75,0x15,0xC3,0xAB, + + 0x6B,0x4C,0xC9,0x49,0x39,0xA5,0x33,0xC9,0x76,0x43,0xEB,0x79,0x58,0x26,0x33,0xDB, + + 0x8E,0x56,0x81,0xA6,0x9D,0x4C,0xD3,0xBC,0x6A,0xC7,0x64,0x2F,0xD5,0x0D,0xD4,0xF3, + + 0x49,0x91,0x03,0x75,0x93,0x60,0xC0,0xFE,0x4E,0x8C,0x94,0x20,0x78,0x17,0xAB,0x72, + + 0xC1,0xEE,0x21,0xE8,0x92,0x37,0xE0,0xCE,0x7B,0x3E,0x27,0x11,0x86,0x8C,0xFE,0x7E, + + 0x49,0x3B,0xB7,0xB5,0xA4,0x34,0x7C,0x4A,0xDB,0x85,0x2A,0x94,0x51,0x8D,0x54,0x7A, + + 0x48,0x1C,0xAD,0x0F,0x10,0x35,0x44,0x0A,0x44,0xAC,0x8F,0x35,0x1A,0x08,0x84,0xA2, + + 0x63,0x54,0x94,0xF1,0x91,0x32,0x34,0xA4,0xEA,0x59,0xB4,0xA0,0x2A,0x36,0x34,0x52, + + 0x26,0x94,0xB3,0x36,0xB1,0x1D,0x0C,0xDF,0xC2,0xDF,0x96,0xDE,0x8E,0xD4,0x3D,0xA3, + + 0xE3,0x96,0xC9,0xAB,0x13,0xBC,0x1F,0x1A,0x41,0x50,0x01,0xA8,0xD6,0x34,0x17,0xD0, + + 0x00,0x11,0xF0,0x51,0x9D,0x7F,0xAA,0x13,0x61,0x1F,0xE5,0xC5,0x87,0xD8,0xFE,0x80, + + 0xD5,0x57,0x2B,0xF1,0x9B,0x35,0x17,0xCE,0x5B,0x1D,0x2D,0x1C,0xC6,0xD7,0xE0,0x75, + + 0x35,0x94,0x8C,0xE3,0x78,0x30,0xE6,0xC3,0x96,0x42,0x38,0xCE,0xDA,0x7F,0x97,0x75, + + 0x7D,0xE1,0x78,0x5D,0x1B,0x31,0xB8,0x4F,0xF8,0xA7,0x4E,0x89,0x7A,0x32,0x70,0x1D, + + 0xE2,0xCE,0xF7,0x1F,0x39,0x6D,0x2F,0xCB,0x4E,0x4B,0x93,0xC3,0x58,0xF1,0x4E,0xAF, + + 0x89,0x1A,0xA6,0x88,0x3E,0x31,0x4E,0x18,0x6B,0x53,0x76,0x9E,0x18,0xD4,0x2E,0x98, + + 0x85,0x12,0x46,0xC8,0x9A,0xB7,0x9E,0x28,0x63,0x5B,0x25,0x0C,0x73,0x1B,0x4F,0xEE, + + 0x4B,0x11,0x8D,0x36,0x19,0x38,0xE3,0x19,0xE6,0x51,0xA9,0xEA,0x1B,0x18,0x2F,0x99, + + 0x0D,0x12,0xB0,0x3F,0x39,0x77,0x57,0x7D,0x4A,0xD5,0x20,0x8F,0x00,0xC2,0xBD,0x45, + + 0xC6,0xC3,0x80,0xF5,0xB7,0xB2,0x28,0xA6,0x42,0xA3,0x32,0x5C,0xB7,0xE9,0x12,0xE1, + + 0x76,0x9A,0xD0,0x56,0x5D,0x7C,0xEC,0x6C,0x6B,0x1D,0x21,0x0B,0xBE,0xA5,0x69,0x07, + + 0xE3,0xC1,0x19,0x77,0x14,0x04,0x7E,0x21,0x8C,0xAE,0x31,0xE1,0xA0,0x69,0xC8,0xE5, + + 0x00,0xD2,0x51,0x1F,0x68,0xEC,0x50,0xD8,0xFE,0xC9,0x83,0x87,0x48,0x4C,0x3A,0x43, + + 0xA5,0x82,0x17,0x16,0x17,0xAB,0xF0,0x80,0xE7,0x4C,0x34,0xB6,0x5E,0xE7,0xE8,0xB0, + + 0xA6,0x0D,0x88,0x12,0xDB,0x2E,0x65,0x82,0x4F,0xCA,0xFE,0xF2,0x79,0x9D,0x69,0xC6, + + 0x27,0x0E,0xD9,0x97,0x29,0xA9,0x75,0x81,0x44,0x8E,0xC9,0x73,0x54,0xAE,0x6B,0xB1, + + 0x05,0x8F,0xED,0xB5,0x15,0xA4,0x19,0x37,0xB6,0xC8,0x99,0x33,0x91,0xEA,0x7B,0x85, + + 0xEB,0x93,0xC2,0x0C,0xD2,0xA5,0xCE,0x54,0x56,0xA7,0x16,0x54,0xFF,0x18,0x73,0x84, + + 0xEA,0xC5,0xB4,0xFC,0x9F,0xAD,0x22,0xBE,0x4B,0xAA,0xA6,0x01,0x74,0x32,0x9A,0xED, + + 0x9C,0xC5,0xE9,0x12,0x1E,0xD6,0x53,0x29,0x64,0xC7,0x44,0x3F,0x1B,0x48,0x38,0xF3, + + 0x57,0x40,0x4D,0x7D,0x5C,0x21,0x74,0x39,0x85,0xA7,0xBB,0x04,0xB4,0x70,0xA2,0x28, + + 0x4F,0xAC,0xE4,0x3C,0xBD,0xAA,0x12,0x2E,0x72,0xC3,0x0D,0xCE,0xFF,0x2C,0x7A,0xB8, + + 0xAE,0x05,0xBA,0xC7,0xBC,0xAB,0x40,0x98,0xCD,0x85,0x2E,0x33,0xA2,0x81,0x1B,0x6C, + + 0x2F,0x06,0xB3,0xE6,0x3D,0xA8,0xE3,0xE9,0xCB,0x57,0x93,0x2B,0xC6,0xAC,0x63,0xB9, + + 0x0D,0x87,0xBB,0x52,0x3C,0xA9,0x66,0xFF,0xE1,0x1C,0x3F,0xDF,0x7E,0x2F,0x1E,0x00, + + 0xBD,0x30,0x9C,0xD4,0x77,0x40,0x8B,0x44,0xE6,0xD4,0xCB,0x44,0xF6,0xD8,0xBF,0x7A, + + 0xE2,0xDE,0xD4,0x14,0xB5,0xE7,0xFC,0x17,0x3E,0xD5,0xC4,0x34,0x7C,0x3E,0x5D,0xC5, + + 0xD8,0xDE,0xA7,0x05,0x29,0x7B,0x07,0xC1,0xC5,0x90,0x4D,0xC5,0xB7,0x4D,0x4D,0xDC, + + 0x86,0x9C,0x95,0x47,0xE9,0x33,0x3B,0xF4,0xCB,0x0F,0x85,0x67,0x0E,0xFC,0x2E,0xDF, + + 0x67,0x95,0x65,0xA4,0x75,0x0B,0x89,0x00,0xC7,0x5E,0x58,0x75,0x0B,0xFE,0x57,0x30, + + 0x8B,0x28,0xD4,0x06,0xCC,0xBA,0x36,0x4D,0xC4,0xD8,0xA6,0xD6,0x0F,0xB7,0x1D,0x41, + + 0xA7,0x91,0x9D,0x45,0xB3,0x66,0x0A,0x01,0x4A,0xDB,0x33,0x63,0xD8,0x93,0x15,0x51, + + 0xA6,0x75,0x8D,0x93,0xBF,0xF5,0x37,0x2C,0x44,0xD1,0x29,0xBC,0xF1,0x94,0x46,0x88, + + 0x79,0x95,0xC6,0xC1,0x51,0xB7,0xE2,0xF4,0xFF,0xE7,0xD6,0xEF,0x8B,0xF5,0x7E,0x9E, + + 0x05,0x37,0x84,0x4E,0x61,0x39,0x7B,0x5D,0xEF,0xDD,0xB2,0xC5,0x7B,0x9A,0xE3,0x0D, + + 0x8E,0x9B,0xC7,0x8D,0x22,0xB7,0x6A,0x8C,0x43,0x07,0xFD,0x54,0x5F,0xFC,0x4F,0x99, + + 0x3F,0x96,0xCF,0xD0,0x8C,0xB4,0x8B,0xD9,0xCC,0x99,0xF5,0x3D,0xF4,0xD4,0xD9,0x28, + + 0xAC,0xD4,0x32,0x1E,0xBC,0xF4,0x7E,0x6E,0xCF,0x56,0x42,0x9D,0x03,0x4D,0x16,0x58, + + 0x2A,0x99,0x8E,0x9A,0x27,0xFF,0x34,0x15,0xCC,0xD0,0xD3,0xE7,0xFF,0x90,0x43,0xA9, + + 0xEF,0xBE,0xE1,0x4B,0x90,0x34,0x8C,0x09,0x42,0xD3,0xE5,0xCF,0xF8,0x9D,0x57,0x8B, + + 0x2F,0x90,0x3B,0x0F,0x3D,0xF7,0x35,0x00,0x4C,0xD9,0x6F,0x8D,0xCC,0x0D,0xF8,0xA0, + + 0x58,0x90,0x4F,0x66,0x51,0x00,0x49,0xB4,0xE5,0xBF,0xA8,0x74,0x54,0x6F,0xA4,0x82, + + 0x4B,0x09,0xB0,0x44,0x10,0x2E,0x50,0x74,0x47,0x22,0x25,0xB6,0x3F,0xE0,0x61,0x56, + + 0x45,0x0F,0xF9,0x87,0xB2,0x57,0x2F,0x80,0x4D,0xB4,0x4E,0xCB,0xD6,0x08,0x8D,0xE1, + + 0x89,0x4C,0xE9,0xB5,0xD9,0x2E,0x07,0x76,0x03,0xE1,0xA3,0xD7,0x7D,0xE8,0x20,0x6F, + + 0x14,0x09,0xCA,0x40,0xB1,0xD3,0x68,0x64,0x0A,0x55,0xA8,0x43,0xF1,0xDF,0x70,0xE2, + + 0x29,0x75,0x58,0x2A,0x6F,0xDA,0xDE,0x50,0xE2,0x05,0xF8,0xF0,0x10,0x8F,0x33,0xE8, + + 0x80,0x63,0x3E,0x40,0xED,0xD9,0xEE,0x33,0xCC,0xCC,0xD7,0x98,0xC4,0xBD,0xFD,0x33, + + 0x61,0xA4,0x59,0xA8,0xF2,0x65,0x5F,0x58,0x08,0xA6,0x66,0x87,0x93,0x61,0x52,0x8C, + + 0x47,0x4A,0x88,0x04,0xBB,0x4D,0x5A,0x39,0x4E,0x2B,0x6D,0xCE,0xF4,0xE3,0x32,0x29, + + 0xA8,0x88,0xDA,0x11,0xB8,0xA3,0xB6,0xAA,0x75,0x43,0x65,0xDE,0xDB,0x6A,0x49,0x23, + + 0x75,0xAB,0xD9,0x10,0x3B,0x2C,0xCF,0x2B,0xCE,0xB7,0x15,0xCF,0x74,0xE1,0xD9,0xEA, + + 0x0D,0x86,0xF3,0xFF,0x1B,0x28,0x5B,0x07,0xE7,0xEB,0x0B,0x4F,0x7A,0x6D,0xC0,0x6F, + + 0xAB,0x85,0x0E,0x23,0x98,0x64,0xEF,0xEA,0x43,0x73,0xF2,0xF1,0xF9,0x2D,0xB1,0x7C, + + 0x89,0x29,0x80,0x41,0x3F,0xA0,0x56,0x83,0x4D,0x2E,0xDA,0x7C,0x5B,0x6D,0x48,0x29, + + 0x8E,0x0A,0x05,0x2F,0x65,0xA2,0x93,0xCC,0xD7,0x48,0xD3,0x6D,0xDA,0x6E,0x43,0xA9, + + 0xB1,0x00,0xB5,0x68,0x19,0x2B,0xD6,0x88,0xA7,0x1F,0xDB,0x7D,0xDB,0x6F,0xF9,0x70, + + 0xDB,0xB1,0xFD,0x66,0xB2,0xD3,0x0A,0x24,0x4E,0x3B,0x90,0x19,0x43,0xB6,0x32,0x31, + + 0x49,0xE8,0xF4,0x16,0x34,0x38,0x1A,0x11,0xE1,0x4C,0xDC,0xD6,0x8E,0xF8,0x51,0x05, + + 0x8E,0x7C,0x51,0xE7,0xF3,0xCC,0x6B,0xA6,0x1D,0x5D,0x4F,0xED,0x72,0x07,0x1F,0x6A, + + 0xA7,0x70,0xB7,0x77,0x1D,0x3C,0x8D,0x33,0xE0,0x31,0x17,0x55,0xE4,0x75,0x3A,0xC6, + + 0xC3,0x97,0xC1,0xE1,0x34,0xFE,0x1E,0x1E,0xC1,0xAF,0xD4,0xE4,0x72,0x74,0x34,0xAF, + + 0x00,0x48,0xAE,0xD0,0x30,0xB5,0x25,0x90,0x6B,0xA5,0xDC,0xF4,0x73,0x75,0x65,0x32, + + 0x2E,0xCB,0xC7,0xB6,0xDE,0x5A,0xAA,0x92,0xD2,0xDC,0xD5,0xE5,0xF2,0x76,0xDD,0xA3, + + 0x48,0x06,0xCB,0xE0,0x33,0x09,0x63,0xDD,0xA0,0x48,0xDD,0xF5,0xF3,0x77,0xEA,0xB7, + + 0x0A,0xCD,0xE6,0xC8,0x6F,0xB8,0x2E,0x78,0x93,0x57,0x23,0x28,0xD9,0xA7,0x19,0x70, + + 0x21,0x5B,0x0E,0x7E,0xBB,0x71,0xCA,0x07,0x2A,0x26,0x2B,0x2C,0xD8,0x80,0x90,0xB2, + + 0xDC,0x8F,0xFF,0xAA,0x19,0xB2,0x2F,0x79,0x57,0x18,0x28,0xD1,0x07,0x7C,0x0D,0xCC, + + 0x75,0x18,0x56,0x6D,0xB1,0x34,0x67,0x3B,0xCB,0x59,0xC7,0x10,0x7B,0x0E,0x38,0xE1, + + 0xC1,0x4D,0x06,0x90,0x3B,0x38,0x4E,0xEC,0x36,0xAC,0xD6,0xEC,0x7A,0x7C,0xC2,0xBA, + + 0x68,0xC2,0x40,0x24,0x87,0x86,0x46,0xE0,0x8A,0x82,0xDE,0xFC,0x7B,0x7D,0x39,0xE4, + + 0x28,0x56,0x7E,0x31,0x3A,0xC5,0x69,0xC0,0xA9,0x41,0xD7,0xED,0xFA,0x7E,0x37,0x5B, + + 0xA2,0x40,0x8F,0x30,0x01,0x7D,0x61,0xD4,0xA8,0x40,0xDF,0xFD,0xFB,0x7F,0x72,0x53, + + 0xEF,0xE4,0xE4,0xF6,0x4E,0xE2,0xE4,0xD2,0x87,0x11,0xB8,0x6E,0x14,0xEF,0x78,0x0C, + + 0x79,0x35,0x62,0x64,0xB6,0xA7,0x16,0xC1,0xC9,0x3C,0xDE,0x44,0xAA,0xA1,0xE1,0x13, + + 0x4C,0x76,0x75,0xBB,0x16,0xEA,0x4F,0x25,0x25,0x41,0x8B,0xD8,0xD2,0x68,0xBA,0x09, + + 0xFD,0x0E,0x21,0xDB,0x36,0xA5,0x41,0x22,0xEF,0xC7,0x75,0x57,0xD3,0x6A,0xD4,0xB2, + + 0x2C,0x8B,0xE8,0xB6,0xE9,0xAB,0xB0,0x17,0x1E,0xC7,0xF0,0x66,0x56,0xE4,0xDC,0xA2, + + 0x56,0x8A,0x90,0xD2,0x39,0x50,0xC7,0x20,0x49,0x4F,0xF8,0x76,0x57,0xE5,0xD5,0xB3, + + 0xEC,0x89,0xDB,0xC5,0x16,0x4E,0x49,0x67,0x8E,0x97,0xF1,0x67,0xD6,0xE6,0xDD,0xA3, + + 0xA2,0x88,0x32,0x35,0x91,0x87,0xFF,0xD3,0x66,0x87,0xF9,0x77,0xD7,0xE7,0x5C,0xAB, + + 0xE5,0xAB,0x2A,0xFB,0x7F,0xD9,0x9D,0x58,0xA7,0xEB,0x9D,0xD3,0x3B,0x33,0x7E,0x69, + + 0x2F,0x03,0x92,0xCE,0xD0,0x21,0x04,0x9B,0xC0,0x3F,0x67,0x3F,0x5B,0x8A,0x8F,0x98, + + 0xF1,0x80,0xDB,0x8D,0xBD,0x5B,0x6A,0xBF,0x69,0x35,0x33,0x2B,0xD3,0x02,0x2F,0xE4, + + 0x70,0x0B,0xAA,0xFD,0x3C,0x21,0x73,0x27,0xCB,0xA8,0xCF,0xC3,0x5E,0xA9,0xD6,0xBA, + + 0x0C,0x83,0x35,0x08,0x06,0x77,0x74,0x47,0x85,0x2D,0xF2,0x6E,0x5E,0xEC,0x0A,0x0A, + + 0xF4,0xEB,0x9F,0xDA,0x5C,0x47,0x42,0xAA,0xB8,0xC2,0xFA,0x7E,0x5F,0xED,0xBC,0xCF, + + 0xD0,0x73,0x56,0xB2,0x9C,0x15,0xCE,0xE9,0xC7,0xF1,0xF3,0x6F,0xDE,0xEE,0x90,0xAB, + + 0x8F,0x7E,0x54,0x3F,0xD9,0xAE,0x1B,0x3A,0x34,0xC2,0xFB,0x7F,0xDF,0xEF,0x87,0xBF, + + 0xFC,0x41,0xC4,0xC2,0x0F,0xBF,0x6E,0xBF,0xC7,0xD6,0xF0,0xC4,0x8B,0x79,0x0C,0xD8, + + 0xC4,0x3E,0xD4,0x14,0x30,0x6A,0x44,0xE2,0x29,0xDE,0x09,0x33,0xD4,0x2E,0x06,0xBA, + + 0xEC,0xB1,0xC5,0xC3,0xCB,0x3F,0x65,0x8D,0x45,0x58,0x39,0x47,0xD2,0xF4,0xFD,0x60, + + 0x8B,0x48,0xAF,0x75,0x37,0xFB,0x5D,0x13,0xAF,0x58,0x02,0xCB,0x0A,0xF5,0x5C,0x12, + + 0xDD,0x9B,0x6B,0x57,0x30,0xAD,0x6C,0xF7,0x11,0xB4,0xF4,0xE6,0x76,0xF4,0x66,0xD6, + + 0x84,0x93,0xDA,0xB4,0xB5,0xB1,0xEC,0x8D,0x06,0x95,0xFC,0xF6,0x77,0xF5,0x05,0x82, + + 0x1D,0x9B,0xE5,0xE3,0x34,0xB2,0x55,0xE6,0x99,0x29,0xF5,0xE7,0xF6,0xF6,0x61,0x2D, + + 0x06,0x1D,0x2C,0x35,0x35,0xB3,0x65,0xF6,0x1A,0xDC,0xFD,0xF7,0xF7,0xF7,0x08,0x77, + + 0xDA,0xE3,0x86,0xEC,0x7F,0x46,0x32,0x48,0xEE,0xDB,0x03,0x3F,0xDD,0x01,0x60,0xA4, + + 0x0F,0x29,0x96,0x4E,0x82,0xB6,0x5E,0x1A,0x3D,0x52,0x05,0x48,0x86,0x02,0x34,0x72, + + 0x53,0xD8,0xDF,0x0D,0xD2,0xD9,0xF3,0x5B,0xA0,0xD5,0xEF,0x8A,0xCF,0x3C,0x7D,0xE9, + + 0x46,0xB8,0x97,0xCF,0xB5,0xB4,0xBB,0x59,0x6F,0x93,0xBB,0x3B,0xB3,0x7E,0x19,0x28, + + 0xAC,0xB4,0x54,0xAC,0xBC,0xB8,0xF0,0x68,0x67,0xE3,0xF6,0xEE,0x7E,0xFC,0x16,0x2B, + + 0x43,0xCD,0x31,0xBC,0xBD,0xB9,0xC5,0x08,0x4E,0x3D,0xFE,0xFE,0x7F,0xFD,0x18,0xA9, + + 0xEF,0xDE,0x22,0x2D,0x3C,0xBA,0x4F,0xBB,0xEA,0xD1,0xF7,0xEF,0xFE,0xFE,0xAF,0xAE, + + 0xF7,0x9E,0xAC,0x3D,0x13,0x32,0x1F,0xBA,0x14,0xD2,0xFF,0xFF,0xFF,0xFF,0xA8,0xA4, + + 0xE1,0x06,0x19,0x66,0x53,0x2C,0xDD,0xCD,0x32,0xFB,0x77,0x46,0x91,0xEA,0xA2,0x83, + + 0xA2,0xDA,0x0C,0xFC,0xA3,0x6E,0xC3,0x7B,0x3E,0x0C,0xD2,0xD6,0x39,0x6C,0x2C,0x32, + + 0x23,0x04,0xAB,0x80,0x9E,0xA8,0xEE,0xA5,0x8B,0x97,0x16,0x45,0x80,0x6F,0xA0,0xEC, + + 0x7D,0x78,0x31,0x85,0xB0,0xF3,0xC4,0x89,0xBA,0xBC,0xC4,0x6C,0x7E,0xEE,0x20,0x0E, + + 0x90,0x46,0x88,0x75,0xB3,0xAC,0x74,0x94,0xC2,0xE9,0xB0,0x66,0x47,0x69,0xF0,0xAA, + + 0x13,0x48,0x17,0x01,0x68,0x32,0x44,0x98,0x05,0x0A,0x20,0x0F,0x43,0x2A,0x95,0x3F, + + 0xB1,0x4C,0xE1,0xA7,0xE5,0x22,0x0D,0x50,0xE5,0xE9,0xAE,0x1B,0xE1,0x7E,0x36,0x0E, + + 0x3E,0xFB,0x09,0x85,0xDC,0xDA,0x49,0x68,0xD3,0xE8,0xB9,0x77,0x84,0x6A,0xCB,0xF1, + + 0xF7,0x4A,0xC0,0x6C,0x1E,0xA9,0xD2,0xF9,0xBC,0x93,0x46,0xA5,0xF7,0x73,0xFD,0xFE, + + 0x8C,0xFB,0xFB,0xEC,0x6E,0x66,0x9D,0x4A,0xB2,0x0B,0x22,0xC3,0xD6,0x72,0x4D,0x37, + + 0x69,0x11,0x03,0xED,0xD2,0x31,0xBA,0xD4,0x1E,0x31,0x37,0x4B,0x2F,0x7A,0xE3,0x05, + + 0x0E,0x3B,0xAB,0x98,0xAA,0x3C,0x55,0x07,0xBE,0x97,0x57,0x5B,0x07,0x79,0xE9,0x26, + + 0xDF,0x4E,0xB8,0x5C,0x98,0x28,0x0E,0x1A,0xA1,0x07,0xB2,0x3A,0x2E,0x63,0x8E,0x06, + + 0x05,0x13,0x91,0x5C,0x64,0x35,0x7A,0x04,0xEA,0xB2,0xBA,0x2A,0x27,0x62,0x97,0x3E, + + 0x5F,0x62,0x3C,0xAF,0xE1,0xB4,0x0A,0x6A,0x2D,0x48,0xB3,0x6F,0x85,0x63,0x36,0xDB, + + 0x12,0xAB,0x10,0x5F,0x9D,0x25,0x9F,0xFC,0x88,0xBD,0xBB,0x7F,0xFA,0x62,0x80,0x66, + + 0x57,0x34,0xE4,0x86,0x3B,0x3D,0x07,0xB4,0x89,0xC1,0x95,0xDB,0xD7,0x6B,0x53,0xD8, + + 0x1E,0x91,0x73,0x10,0x51,0x1B,0x64,0x58,0x34,0x1E,0x24,0x4F,0xF3,0x4D,0xDA,0xD5, + + 0xD3,0x16,0xDC,0x83,0x17,0xBF,0x17,0x5E,0x21,0xD8,0x31,0xC3,0x03,0x62,0xCD,0xCC, + + 0xEB,0xC8,0xD4,0x92,0x50,0x7C,0x7D,0xB3,0xBC,0x5E,0x05,0xCF,0x52,0x16,0xFF,0x22, + + 0x8E,0xE9,0xA6,0xBE,0xDB,0x2D,0xF8,0x73,0x45,0x5C,0x9E,0xF9,0x12,0xD4,0x97,0x87, + + 0x5C,0xD9,0xAC,0xD7,0x33,0x38,0x7C,0xF5,0xAB,0x1E,0x23,0x1C,0x7B,0x3A,0x3D,0x45, + + 0xCF,0xDF,0xA7,0xD5,0xB3,0x66,0x53,0xF2,0xC9,0xC7,0x8C,0x79,0x55,0x3B,0x16,0xD3, + + 0xD8,0xB9,0xD5,0xD1,0xBB,0x7F,0x4E,0x82,0x93,0xF6,0xE7,0x1D,0xAF,0x38,0x22,0x75, + + 0x79,0x63,0x87,0x7C,0x39,0x77,0x3C,0x78,0x34,0xD8,0xA9,0x4E,0x4B,0x32,0x40,0xA6, + + 0x2F,0xB0,0xC4,0x81,0x18,0x99,0xE5,0xC8,0x61,0x50,0x4A,0x67,0x4A,0xE1,0x5D,0xFB, + + 0x53,0x58,0xE7,0x8F,0x6E,0x37,0x4E,0x1E,0x4F,0x17,0xF7,0xE3,0x00,0x38,0x7E,0x1D, + + 0xA6,0xAA,0xD2,0x8F,0xBF,0x58,0x5D,0xCA,0x99,0xDA,0xFF,0xF3,0x2B,0x39,0x9B,0xE4, + + 0x2C,0xE4,0xE6,0x3A,0xD3,0x95,0xC9,0x78,0x81,0xCD,0x69,0x1D,0xD9,0x8F,0xD8,0x20, + + 0xAB,0xA6,0x32,0xB6,0x53,0x30,0x07,0xE7,0x8C,0x1F,0x1E,0x38,0x94,0x7B,0x01,0x35, + + 0x7F,0xE5,0xBE,0xBF,0x81,0x2A,0x71,0x94,0x49,0xDA,0xE5,0x12,0x0E,0x71,0xB9,0x34, + + 0xFD,0x5D,0x8A,0x3A,0x52,0x16,0x47,0x28,0x69,0x23,0xD7,0x4A,0x98,0x5F,0x79,0xAD, + + 0xA3,0x9B,0xFA,0xCA,0xB3,0xA4,0xEF,0x53,0x7B,0x30,0x08,0xB8,0x57,0xD0,0x56,0xDB, + + 0x36,0xCD,0x7A,0xF0,0x95,0x01,0x8B,0xB0,0xC5,0x39,0x40,0x44,0x23,0xF3,0x54,0xE5, + + 0x94,0xCD,0xA2,0xEF,0x26,0x29,0x0B,0xD8,0xC2,0x68,0x0E,0x17,0xD6,0xF2,0xD1,0xE0, + + 0xD6,0xCF,0xF0,0xBD,0x7C,0xFA,0x01,0xE3,0x99,0x6C,0x41,0xDF,0xD2,0xAE,0xA0,0xE7, + + 0xF3,0x29,0x69,0xC4,0x9E,0xE4,0x0E,0x1F,0x66,0x86,0x90,0x30,0x74,0xEB,0x52,0xF7, + + 0xF0,0x9E,0xC8,0x2A,0xB6,0xC6,0x46,0x93,0xC8,0x63,0x98,0x20,0x97,0xEA,0x72,0x73, + + 0xC6,0x79,0x21,0x57,0x6E,0xA0,0xF6,0x70,0xE1,0x3F,0x91,0x65,0xFF,0xEB,0x62,0x35, + + 0x74,0x97,0x09,0x57,0x7E,0x8E,0xA1,0x33,0x9B,0x63,0x51,0x48,0x52,0x85,0xE4,0xE2, + + 0x8D,0xC7,0x5A,0x8C,0x9C,0x12,0x21,0xCA,0x04,0x63,0x49,0x26,0xF9,0x17,0x82,0x1F, + + 0x3E,0x89,0x86,0xF8,0xB8,0xA2,0x04,0x02,0xC2,0x4F,0x5D,0xB6,0xF8,0x3F,0x8B,0x8A, + + 0x09,0x6A,0x9B,0xDF,0xC0,0xB1,0x20,0x2A,0x4C,0x9A,0x1F,0xC7,0x85,0xA7,0xD3,0xF3, + + 0xED,0x00,0x2F,0xEF,0xDD,0xE4,0xB9,0x7B,0xC1,0x60,0xF3,0x2E,0x28,0xA4,0xDA,0xB1, + + 0x08,0xEF,0xC4,0x3F,0xBD,0x29,0x2E,0x17,0xCE,0x9C,0x32,0x3B,0xF8,0x61,0xC1,0xDF, + + 0x9C,0xB2,0xF7,0x0F,0x2E,0xA4,0xFF,0x3A,0x43,0x66,0x02,0x96,0xD2,0xA2,0xDD,0x15, + + 0x03,0xEC,0xC5,0xAD,0xAF,0x01,0x4D,0x16,0x41,0x48,0x8D,0x8F,0xED,0x6E,0x94,0xD9, + + 0x16,0x26,0x6E,0x98,0x76,0x96,0xE4,0x76,0x26,0xE4,0x9B,0x7D,0x98,0xE2,0x44,0x80, + + 0x7D,0x9D,0x84,0x6E,0x33,0x3D,0x30,0x59,0x85,0xB3,0x60,0x7D,0xF6,0xF4,0xE8,0x14, + + 0x63,0x97,0x54,0x14,0xB5,0x47,0x07,0xC2,0xE5,0xCE,0xF6,0xAB,0x9E,0x60,0xE1,0x06, + + 0xE7,0x61,0x5D,0x8F,0xD7,0xB9,0x4E,0xDD,0x6B,0x64,0x85,0xC5,0x0B,0x7E,0x0D,0xCB, + + 0x04,0x88,0x95,0x47,0xE9,0xBA,0x67,0xB1,0x77,0xDB,0xAF,0xA7,0x4A,0x7E,0xEB,0x53, + + 0xA4,0x90,0x9D,0xB4,0x0D,0xE0,0xEB,0x80,0x99,0x58,0x8C,0x64,0x77,0x83,0x12,0x33, + + 0x86,0xF6,0xA9,0x31,0xB5,0xB1,0x84,0x76,0x46,0xD5,0x9C,0x56,0x7B,0xFA,0xFD,0xA1, + + 0xE5,0x64,0x19,0xAD,0xDE,0xBB,0x3F,0xFE,0xD5,0xE8,0xCF,0x05,0x73,0xA3,0x8D,0x57, + + 0x0B,0x9A,0xE0,0xB5,0x40,0xB1,0x1D,0xF1,0x92,0xDA,0x9D,0xF5,0x8C,0xFA,0xD4,0x6C, + + 0xAE,0x9C,0xA0,0x67,0x33,0xFA,0x34,0x42,0x82,0x25,0x62,0x40,0xA1,0x85,0x64,0x27, + + 0x23,0xDF,0x94,0x78,0x2D,0x32,0x06,0x6A,0x31,0x78,0x00,0xE0,0xF0,0x9B,0xAC,0xE9, + + 0xA2,0xF8,0x73,0x8D,0x8F,0x22,0xCF,0x29,0x6C,0xD0,0x18,0x51,0xFA,0x99,0x3F,0x67, + + 0x38,0x60,0x87,0x79,0x3F,0xBF,0x07,0x8A,0x4C,0x74,0x14,0x3A,0x6E,0xC4,0x2C,0x57, + + 0xC5,0xD7,0xC6,0x86,0x9F,0x03,0x66,0x9D,0x0C,0xC7,0x22,0x68,0x62,0xFF,0x69,0xFD, + + 0x8E,0x17,0xD1,0xD6,0x98,0xBB,0x1C,0xE2,0x6C,0xAC,0x69,0x9C,0x9C,0x02,0x5F,0xED, + + 0x47,0xD8,0x5C,0x27,0xF7,0xF1,0xB5,0x8D,0x11,0xB0,0x72,0x2F,0x7C,0xFA,0xE8,0x28, + + 0xC6,0x84,0xCF,0x92,0x1E,0x60,0xC0,0xBC,0x25,0x76,0x9F,0xFD,0x8B,0xF2,0x9F,0xE0, + + 0x58,0x0D,0xCA,0x19,0x78,0x2D,0x49,0xA9,0xA9,0x31,0x80,0xA6,0xD0,0x8B,0x4C,0x04, + + 0xA0,0x6D,0x70,0x96,0x91,0x25,0xD8,0x55,0xBA,0x03,0xE0,0x56,0xDC,0xE7,0xC5,0x87, + + 0x8A,0x01,0x97,0x67,0xA3,0x83,0xE9,0xA5,0x8C,0x4E,0xA9,0xA7,0x45,0x38,0xCD,0x94, + + 0x07,0xE3,0xB1,0x97,0x58,0x74,0x90,0x84,0xC7,0x2A,0x18,0xF5,0xDD,0xE8,0x6E,0xBA, + + 0xA1,0x1F,0xC4,0xAC,0x9A,0xAF,0xD1,0x47,0xE3,0x4D,0xA8,0x99,0x74,0x26,0x11,0xC0, + + 0xA4,0x15,0xE8,0x68,0xB0,0x67,0x02,0x71,0xE0,0x04,0xDA,0xF6,0x56,0x87,0x81,0xA7, + + 0x92,0x49,0x45,0xA3,0x73,0x20,0xD3,0xE3,0x5B,0xCF,0x1D,0x0A,0xD4,0xAC,0xB1,0xD3, + + 0x4A,0x70,0xD0,0x55,0xB7,0xAA,0x39,0x73,0xB6,0x4A,0xE1,0x8A,0x5E,0x05,0x62,0x0A, + + 0x2E,0x05,0xFA,0x6E,0x95,0xAE,0xBC,0x0E,0x4E,0xC5,0x88,0xCE,0x2F,0x74,0x74,0x35, + + 0x8B,0x0D,0x75,0xFE,0x2A,0x5B,0xE5,0xD0,0x17,0x04,0xA0,0xC7,0x5F,0xC3,0x7D,0x25, + + 0x24,0x07,0x02,0xCD,0x94,0xA1,0xC7,0xC1,0x40,0x82,0x4C,0x42,0x64,0x43,0xD2,0x7B, + + 0xBA,0x19,0x33,0xAF,0x66,0x4B,0xE0,0x6B,0xE7,0x28,0x28,0xBF,0x59,0xE5,0x3A,0xB4, + + 0x9B,0xF7,0xA2,0x4F,0x1A,0x23,0x42,0x1F,0x63,0x0E,0xC2,0x0E,0xFB,0x6A,0x35,0xB5, + + 0xCD,0x4F,0x35,0xBE,0x1D,0xE4,0x9A,0x79,0x35,0xF6,0xA5,0x9E,0x5D,0xA4,0xC0,0xA1, + + 0xE2,0x43,0xA3,0x4E,0x8F,0xA5,0x87,0x56,0xBD,0x43,0xDF,0x16,0x7B,0xE4,0x05,0x67, + + 0xFC,0xE3,0x0A,0xD9,0xBE,0x88,0x2E,0x84,0xC9,0x94,0xD4,0x02,0x38,0x66,0x91,0x1F, + + 0x21,0x50,0x95,0x66,0x9C,0x9D,0xD4,0x71,0x99,0x12,0xCC,0x2C,0x8D,0xF7,0x15,0xF2, + + 0xD6,0x17,0x1D,0x76,0x9D,0x9C,0xC0,0x32,0xE1,0xCA,0xFC,0xB6,0x01,0x7C,0xAD,0x80, + + 0x22,0x16,0x90,0x67,0x1C,0x9F,0x5B,0x75,0xC2,0x22,0xB4,0xA1,0x1B,0x19,0x2D,0xE4, + + 0x00,0xAC,0x18,0x77,0x91,0x83,0x25,0xE3,0xEF,0x31,0xEF,0xA2,0xED,0x68,0x4C,0xD4, + + 0x41,0x2B,0xC7,0x02,0x82,0x32,0xAB,0x10,0x60,0xA5,0x3C,0xF9,0xF2,0xD5,0x8C,0x75, + + 0xFB,0x97,0xB4,0x92,0xC7,0x7B,0xE9,0x03,0xEF,0x58,0x03,0xBC,0x04,0x71,0x53,0xED, + + 0x49,0x47,0xCD,0x23,0xD1,0x16,0x2B,0xE7,0x03,0xD5,0x8A,0x3D,0x81,0x76,0x35,0x55, + + 0x8D,0xA3,0x78,0x13,0x43,0x31,0xA6,0x01,0xAE,0xA6,0x1D,0x35,0xE6,0x71,0xBD,0x7B, + + 0x18,0xA5,0x02,0xFF,0x0C,0x37,0x5C,0xAD,0x5B,0xCA,0xDA,0x5C,0x7C,0x37,0x8C,0x38, + + 0x21,0x79,0x71,0x18,0x7A,0x9F,0x47,0x8C,0xCE,0x14,0x2A,0x5E,0x4A,0x9B,0x79,0xA0, + + 0x8A,0x6A,0x47,0xD1,0x7E,0xB7,0xEF,0xCB,0xAB,0xA9,0xCD,0xA6,0x5B,0xF5,0x5F,0x84, + + 0xF9,0x1D,0xB5,0x75,0x25,0xF4,0x41,0x5B,0xE5,0xDE,0x27,0x42,0x7B,0xD7,0x1E,0xDC, + + 0xA8,0xB0,0xCA,0xD9,0x59,0xFC,0x28,0xEE,0x8B,0xDF,0xF2,0xF8,0x7C,0xFC,0x48,0xE0, + + 0xAB,0x13,0xB6,0x5E,0x32,0x9D,0xC5,0x18,0x2B,0xAD,0x1E,0xEC,0x40,0x7B,0xB2,0xAB, + + 0xEA,0x11,0xBF,0x4F,0xB3,0xFE,0x77,0x1A,0x66,0x53,0xE0,0x6F,0x72,0x3E,0x2F,0x86, + + 0x4A,0xB2,0x95,0xC0,0x18,0x39,0xA8,0x53,0x4E,0xA8,0xFB,0xE9,0xFD,0xFF,0xD8,0x25, + + 0xA5,0x9B,0xFA,0xF8,0xB3,0xE2,0x7A,0x60,0x19,0x48,0x88,0xA4,0xC5,0xB5,0x90,0xED, + + 0xEC,0xD0,0x9E,0x92,0x5E,0x9E,0x8F,0x4F,0x43,0x6B,0x38,0x44,0xF6,0x4A,0xE4,0xE5, + + 0xB7,0x90,0x2A,0x96,0x92,0x90,0x61,0xCC,0x3C,0x6B,0xC9,0x45,0x36,0x1D,0x85,0x8C, + + 0x84,0x01,0x69,0xAB,0x39,0xB8,0x05,0x41,0xE5,0x73,0x65,0x3C,0x34,0xF8,0xBF,0xA8, + + 0x39,0x94,0x48,0x79,0x94,0x8C,0xC5,0xE6,0x05,0x2E,0x8D,0xE4,0xDE,0xBC,0xDB,0x20, + + 0xEC,0x14,0x90,0xD4,0x14,0x41,0x58,0x27,0xE6,0xCE,0xED,0xF0,0x5F,0xA9,0x3E,0x47, + + 0x80,0x2C,0x5D,0x25,0xD7,0xE6,0xCE,0x83,0x81,0xC0,0x4E,0x85,0xD0,0xAE,0x57,0x6B, + + 0x0A,0x21,0xB3,0x47,0x34,0xA1,0x7F,0x83,0xCE,0xC8,0x7E,0xF5,0x57,0x3E,0x1C,0x27, + + 0xD2,0x80,0xE3,0x68,0xE3,0xAE,0xB4,0xD9,0x4F,0xBD,0xFE,0xC8,0xDE,0xF4,0xD5,0x69, + + 0x39,0xE7,0x4D,0xF6,0x35,0xE6,0x44,0xFA,0xF1,0x60,0xA9,0x5C,0xA2,0x66,0xA4,0xE3, + + 0x92,0xC7,0x8D,0x70,0x3D,0xC6,0x2D,0xD0,0x4C,0x0A,0x0A,0xCD,0x5E,0xEE,0xCC,0xDB, + + 0xC5,0x26,0xCB,0x1D,0xBF,0x06,0x0C,0x46,0x31,0x32,0x40,0x18,0x7C,0x32,0x7C,0x8A, + + 0x36,0x07,0xAA,0x58,0xBD,0xAA,0x52,0x73,0xCC,0xB9,0xCA,0xCE,0xB3,0x64,0xD2,0x1D, + + 0x01,0x22,0x5E,0x4E,0xBC,0xEF,0x5A,0x2F,0xEE,0xA1,0xA5,0xD5,0x59,0x67,0xF5,0x7A, + + 0xFE,0x91,0x6B,0xE3,0x7F,0xA1,0x33,0x09,0x31,0xC8,0x28,0x6D,0xA1,0x06,0xFA,0x1C, + + 0x4D,0x6F,0xF5,0x61,0xF4,0xB8,0x9C,0x3B,0xE3,0x42,0x35,0x00,0xFE,0x6F,0x04,0xF3, + + 0x85,0x3F,0xFD,0x95,0xD3,0xA0,0x6A,0x40,0x2C,0x54,0xC7,0x44,0x47,0xE2,0xB9,0xD4, + + 0x79,0x6A,0xF5,0x91,0xD2,0xAA,0x5C,0xB0,0x12,0xDC,0x5F,0x76,0x35,0x2C,0xB4,0xA4, + + 0x05,0x3D,0x5F,0x6F,0x30,0x7D,0x55,0xF0,0x4F,0xDD,0x0D,0x59,0x09,0x9E,0x37,0x6F, + + 0xA5,0xD1,0x88,0x61,0x30,0xA1,0xC2,0xE1,0xA6,0x23,0xC5,0xB5,0xA9,0xE8,0x75,0x20, + + 0x8A,0x39,0xE8,0xD6,0x95,0xF4,0x05,0x6F,0x11,0xD0,0x92,0xA1,0x70,0x74,0x84,0xED, + + 0xA5,0x91,0x37,0xC6,0x31,0xFF,0x23,0x72,0x14,0xA0,0x7B,0x56,0x7F,0x65,0x70,0x21, + + 0x23,0x16,0xE9,0x11,0xC9,0xB6,0xAA,0xB6,0xD9,0xE1,0x27,0x87,0xF2,0xB8,0xE6,0xB1, + + 0x66,0xF5,0x86,0x55,0xB6,0xD0,0xBD,0xAE,0xAD,0xD4,0xED,0xEA,0xEF,0xF1,0xEA,0xDF, + + 0x1F,0x08,0x0E,0x16,0xBE,0xBC,0x6F,0x2A,0xCB,0x95,0x73,0xC8,0x83,0xFE,0x10,0xB3, + + 0x8A,0x82,0x54,0xE8,0xB0,0x3F,0xBA,0x4A,0x25,0x96,0x59,0xFE,0x71,0x04,0x19,0xA3, + + 0x0B,0x8A,0x7D,0xED,0x8F,0x5E,0x9B,0x39,0xA4,0xD0,0x99,0x15,0x5D,0x96,0xE9,0xE8, + + 0x99,0xD4,0xAE,0x5F,0xB9,0x70,0x5F,0xB9,0x9A,0xD6,0xFD,0x5D,0x1C,0xFD,0xA2,0x1A, + + 0x22,0x9F,0xBC,0xCF,0x9D,0xBA,0x76,0x72,0xEE,0xAC,0xD6,0xAE,0x1D,0x03,0x43,0xAA, + + 0x8C,0x9B,0x91,0x3C,0xBD,0x95,0x26,0xFF,0x0C,0xF5,0x3E,0x8B,0x61,0xBC,0x5F,0x5A, + + 0x4F,0x98,0xEB,0xB1,0x1F,0x34,0x17,0xE9,0xA3,0xD3,0x8F,0xEB,0xCF,0xFE,0x4F,0x19, + + 0x0E,0x96,0xD0,0xBD,0xFE,0xFF,0x07,0x3D,0xF9,0x93,0xFF,0xFF,0x07,0x71,0xAD,0x7F, + + 0x9D,0x1B,0x53,0xF7,0x68,0x84,0x4B,0x6E,0x3B,0x3A,0x50,0xA1,0xB8,0x68,0xB5,0x21, + + 0xA0,0xA0,0x64,0x87,0x46,0x2B,0xE5,0xCD,0x43,0x9A,0xC1,0xC9,0x97,0x73,0x4E,0x85, + + 0xC0,0xBB,0xCE,0x29,0x79,0x73,0x07,0x43,0xA8,0x4F,0xC5,0xE2,0x39,0x21,0x31,0x21, + + 0x9E,0xAC,0x00,0x66,0xE5,0x82,0xAC,0xB5,0x9C,0xE1,0x23,0xB1,0xD7,0x58,0x66,0x99, + + 0x36,0xA9,0xB6,0x37,0x2A,0x2B,0x45,0x41,0xEF,0xF9,0xD6,0x4C,0x7A,0xD3,0x00,0xA1, + + 0x60,0x9A,0xDE,0x36,0xEC,0x88,0x62,0x83,0x33,0xF7,0xBE,0x84,0xB8,0x14,0xD0,0x86, + + 0x48,0xDC,0xDD,0x47,0x7B,0xF5,0x09,0x65,0xEB,0x86,0x88,0x67,0x77,0x0A,0x5F,0x6D, + + 0x68,0x43,0x9E,0xF0,0x64,0x49,0x99,0xF4,0xF4,0x4A,0x80,0x81,0x76,0xB8,0xA2,0x7A, + + 0x6A,0x54,0xBA,0xF3,0xF1,0x99,0xC9,0x63,0x37,0xC4,0x9A,0x39,0x6B,0xB3,0x3D,0x09, + + 0x6A,0x48,0x4E,0x15,0x18,0xE9,0xDA,0xC9,0x45,0xC4,0x4A,0x4F,0x29,0x07,0x7D,0x0E, + + 0x8E,0x8A,0x43,0x89,0xEC,0x68,0x48,0x62,0xB3,0xA3,0x21,0x8C,0xC8,0xAF,0x55,0xB4, + + 0x89,0xAF,0xAD,0xA8,0xB3,0x8F,0x65,0x11,0x20,0x5A,0xF9,0x34,0xD8,0xDB,0x18,0xF7, + + 0x60,0xBD,0xFC,0xE8,0xC4,0xF1,0xAD,0xAF,0x80,0xDD,0xD3,0x0A,0xA5,0x00,0xDC,0x28, + + 0x57,0x04,0x48,0xDE,0x8A,0x78,0x7D,0x4D,0xB2,0x46,0x39,0x82,0xD4,0x90,0x3D,0x4E, + + 0x2B,0xA1,0x03,0xC9,0xA1,0x26,0x5B,0x79,0x16,0xDF,0xE9,0xF2,0x25,0xE3,0x81,0x2A, + + 0xE7,0x80,0xF3,0xBD,0xF3,0x6D,0xE0,0x8A,0xB7,0xEB,0xBD,0xC1,0x32,0xDC,0x0F,0x6C, + + 0x9C,0xAB,0xD6,0x3D,0xDB,0xB3,0x2A,0x88,0x08,0x5D,0x6B,0xD7,0x40,0x1C,0x4C,0x6C, + + 0x9F,0x53,0x58,0x85,0x41,0x91,0x62,0xB6,0x80,0xD2,0xBE,0x45,0xD2,0xF1,0x5D,0x79, + + 0x6C,0xE9,0xBB,0x20,0xC2,0x9D,0x03,0xC3,0x80,0x27,0x72,0xE5,0xF4,0x5B,0x06,0x50, + + 0xD6,0xE4,0x1C,0x84,0xC5,0x9E,0x34,0x42,0x6D,0x11,0xA3,0x9D,0xF7,0x31,0x3C,0xC2, + + 0x62,0xB4,0xFF,0x5A,0x33,0xA7,0x32,0xDD,0x63,0x14,0x65,0x86,0x51,0xB6,0x5F,0xA9, + + 0x00,0x17,0x0C,0x51,0xA9,0x93,0x49,0x8F,0x36,0x5C,0xDE,0x16,0xFC,0xF3,0x56,0xC3, + + 0x75,0xBB,0xFF,0x2D,0x36,0xF9,0x49,0xE3,0x2A,0xDD,0xB5,0xAA,0xDF,0x7B,0x17,0x47, + + 0xDB,0x55,0x1C,0xA6,0x89,0x75,0x5C,0x75,0xED,0xF0,0x59,0xB5,0xF1,0x6C,0xD9,0x72, + + 0x94,0x21,0x15,0x6C,0x96,0x98,0xD6,0x9B,0x97,0x43,0xE9,0x28,0x7E,0xDD,0xCE,0xC5, + + 0x5B,0x62,0x9B,0x9D,0x8C,0x7B,0x20,0x61,0x00,0x83,0x9C,0x9F,0x98,0xD6,0xB6,0xE1, + + 0xD3,0xE5,0x90,0x8F,0x44,0x9A,0x58,0x2D,0xA8,0x7F,0x68,0x45,0xA3,0x38,0x5A,0x68, + + 0xE8,0x38,0x4F,0x79,0xB8,0x11,0x47,0xB0,0x00,0xA1,0xCB,0x4E,0xDF,0xC4,0x82,0xF3, + + 0xC3,0xFD,0x02,0xFF,0x39,0xCC,0x6E,0x1B,0x52,0xFE,0xF0,0x18,0x66,0x6C,0x14,0xD9, + + 0x88,0xAD,0x9D,0xAF,0x05,0x7F,0x9E,0x7D,0xE2,0x55,0xFE,0xED,0x9A,0x7B,0x3F,0x4D, + + 0xA4,0x45,0x6B,0xBE,0x9C,0x98,0x0D,0x6D,0xEC,0xD7,0x0D,0x47,0x7D,0xEC,0x71,0xE5, + + 0xC3,0x12,0x0F,0x34,0xB8,0x5F,0x5D,0xE7,0xC1,0xAB,0x72,0x98,0x58,0x7E,0x69,0xBA, + + 0x37,0xAA,0xF1,0xA2,0x12,0xC2,0x9C,0xCA,0xD8,0x06,0xE9,0x29,0xB1,0x66,0xA1,0x74, + + 0xEE,0xF2,0x90,0x27,0x27,0x5E,0x02,0xC1,0x6F,0x6E,0xFB,0x33,0x53,0x9A,0x99,0xE3, + + 0x9C,0x99,0x6D,0x65,0x63,0xC7,0x39,0x27,0xEC,0x95,0x31,0xE7,0x90,0xE1,0x28,0x75, + + 0x6E,0x10,0x97,0xA2,0xE3,0x7C,0xE9,0xC0,0xA3,0x6C,0xAC,0x08,0xE5,0xE7,0x78,0xEE, + + 0xE7,0x2B,0x20,0xA2,0x17,0x64,0x63,0xC2,0x40,0x86,0x30,0xE3,0xBE,0xEC,0x0F,0x92, + + 0x55,0x0E,0xF0,0xDA,0x37,0x37,0x2C,0x4F,0x8F,0x86,0x9E,0x86,0x56,0x25,0x72,0x30, + + 0xF6,0xEA,0x81,0x0D,0x22,0xAB,0xA9,0x23,0x82,0x62,0xA7,0x14,0xEA,0x88,0x8B,0x62, + + 0xF7,0xC5,0x25,0x24,0xE5,0x06,0x29,0x83,0x01,0x66,0x99,0x3D,0x63,0xEA,0x7B,0xE7, + + 0xA9,0x27,0x76,0x9D,0xBD,0x17,0x64,0xD9,0x2E,0x67,0x32,0xD3,0x00,0xAA,0xF9,0x09, + + 0x3C,0x21,0xD4,0xAA,0xF4,0x0A,0x2B,0xBE,0x43,0x1B,0xBE,0xA0,0xBC,0x46,0x74,0x03, + + 0x29,0x25,0xD8,0x7C,0xFA,0x5B,0xE7,0xD8,0xBC,0x67,0xBA,0x80,0x94,0xFB,0x0D,0x72, + + 0xC8,0xF0,0x78,0xEC,0xF7,0x06,0x01,0xD9,0x61,0xC4,0xAA,0xD7,0x5D,0xA6,0xA6,0x71, + + 0xAF,0x25,0x31,0xB1,0xF7,0xDF,0xE4,0xEE,0x40,0x79,0xAA,0xEA,0xB7,0x67,0x5C,0x6B, + + 0x7F,0xCF,0x2A,0x2E,0xBE,0x32,0xBE,0xE6,0x49,0x4F,0x6B,0x8E,0xDF,0xFB,0xF5,0xAB, + + 0xDE,0x05,0xB5,0xF6,0x69,0xEC,0x4B,0x98,0xA2,0x8C,0xE1,0x6E,0xD8,0x8C,0xAF,0xA2, + + 0x2E,0x0F,0x5F,0x3D,0x10,0x59,0xFB,0xE8,0xED,0x12,0xF3,0xE7,0x5D,0xF3,0x13,0xEB, + + 0xD4,0x89,0x9E,0x79,0xC3,0x0F,0x2A,0xC2,0x47,0xB0,0x92,0x7B,0x4C,0x5D,0xEC,0xCB, + + 0x44,0xD3,0xFA,0xBD,0x57,0xA4,0xF3,0x9B,0x8C,0xE0,0xB4,0xB2,0x7C,0x95,0xFA,0xDB, + + 0xD3,0xE7,0xDE,0xA8,0xD2,0xE7,0xF5,0x4E,0xDC,0x76,0xA0,0x60,0x3E,0xFB,0xE9,0xD6, + + 0xA4,0x53,0x79,0x50,0xB3,0x33,0xD1,0x20,0xC4,0xD9,0x83,0x9E,0x3D,0x5A,0x9B,0xB1, + + 0x5E,0xF7,0xF4,0x5E,0x6C,0xF6,0xA4,0x91,0x5E,0x96,0xB7,0x6A,0x01,0xA8,0xAC,0x57, + + 0x3F,0x9D,0xC0,0x96,0x77,0x61,0x04,0xD5,0x8E,0x96,0xA3,0x76,0x04,0x80,0x9E,0x47, + + 0xA8,0xFC,0x25,0xB7,0xB0,0xD4,0xB5,0x97,0x0F,0xF5,0x2A,0x2A,0xC9,0x65,0xEF,0xC0, + + 0xC9,0xB4,0xB9,0xC8,0x91,0x1A,0x05,0xCC,0xDF,0x95,0x3D,0xAA,0xBD,0x2C,0x7F,0x9D, + + 0xC9,0x83,0xB6,0xCE,0x4A,0xA3,0xAF,0xD9,0x54,0x7C,0xCE,0x9C,0x83,0x2D,0x74,0x72, + + 0xAD,0xD4,0x6E,0x1B,0xA7,0xA2,0x46,0x42,0x6D,0x78,0xBE,0x83,0x96,0x28,0x02,0x7D, + + 0x4D,0x35,0x85,0xF9,0x9D,0x0A,0x29,0x49,0x0C,0x0F,0xCF,0xDC,0xA7,0xA1,0x77,0x9F, + + 0x84,0x1F,0x70,0x09,0xAF,0x76,0x70,0x48,0x99,0x46,0x06,0x03,0x16,0x4A,0x40,0x62, + + 0x08,0x3C,0xBC,0x4A,0x38,0x75,0x2E,0xEA,0x87,0x3D,0xDB,0x13,0x13,0x67,0xFD,0x3A, + + 0x2B,0x3D,0xD0,0x7A,0x9C,0x48,0xE9,0x18,0xC3,0x70,0xA0,0xFB,0xF7,0x58,0xF6,0xDA, + + 0xDA,0x33,0xD9,0x6E,0x1D,0xDB,0xB7,0x6E,0xB8,0x73,0xDA,0x16,0x3F,0xBC,0x78,0x9A, + + 0xA3,0x3F,0xB5,0x5B,0x9C,0xBF,0x2F,0x19,0xE9,0xBD,0xA6,0xED,0x1A,0xF6,0x84,0x94, + + 0x80,0xC0,0x84,0x90,0x34,0x3B,0x30,0xAA,0x41,0x80,0xE0,0xA0,0x09,0xE9,0x09,0xE6, + + 0xE0,0x1A,0x75,0x90,0x4C,0x83,0xC2,0xA0,0x72,0x45,0xFE,0x08,0xB8,0xD0,0x3B,0xE9, + + 0xF7,0xCD,0xA1,0x63,0xF8,0x2F,0xF9,0xA9,0xF3,0xC6,0x3D,0xCD,0x3F,0x2F,0x43,0xF7, + + 0x03,0x07,0x19,0x67,0x7A,0x52,0x27,0xC1,0x66,0x58,0x59,0xB0,0x78,0x69,0x08,0x0C, + + 0xDE,0x47,0x43,0xAC,0xB5,0x66,0xC4,0x44,0xA3,0x5F,0x10,0x42,0xAD,0x7F,0x6B,0x6D, + + 0xF7,0x1C,0x78,0x13,0x15,0x67,0xF0,0x55,0x67,0xEE,0x18,0x80,0xCF,0x6F,0xE2,0xE0, + + 0x5A,0x05,0x01,0x90,0x94,0x64,0xEA,0x87,0xD2,0x09,0x29,0xE1,0x92,0x51,0xFE,0x38, + + 0x85,0x65,0xE6,0x15,0xCF,0x8A,0x4C,0x75,0xA8,0x16,0x99,0x9D,0x60,0x2A,0x89,0x6A, + + 0xF7,0x84,0xFC,0x34,0x2B,0xE7,0xB6,0x5E,0xB7,0x41,0x14,0x5F,0x20,0x27,0x8A,0x5E, + + 0x4F,0xF4,0x3B,0xE1,0xEB,0x52,0x85,0x58,0x5D,0x52,0xA4,0x10,0x31,0xF8,0x49,0x14, + + 0xA8,0x07,0x7B,0x05,0x3F,0xF1,0x53,0xC1,0x48,0x07,0x92,0x5E,0xAC,0x25,0x21,0x9C, + + 0xCA,0xEB,0xC1,0xF3,0x62,0x69,0x44,0x4F,0x44,0xCD,0xE5,0x05,0x38,0xC8,0x64,0x3A, + + 0xB1,0x13,0x89,0x8B,0xD8,0x0C,0x1B,0x80,0x41,0x01,0xD0,0x8A,0xFF,0xEA,0x8A,0x5D, + + 0xDF,0x16,0x72,0xEE,0x13,0x6D,0x46,0x1A,0xB4,0xC6,0x81,0x68,0xDE,0x9C,0xF4,0xED, + + 0x7E,0x2D,0x8B,0x59,0xA9,0xA4,0x0B,0xE5,0x48,0x72,0xD7,0x2D,0xCE,0xC5,0x33,0x27, + + 0x2C,0x1F,0x27,0x79,0x16,0x6E,0x12,0x85,0xCF,0x53,0x4B,0x0F,0xE8,0x70,0x3C,0x05, + + 0x2E,0x9A,0xBE,0x77,0x08,0x9D,0xCF,0xEA,0x1F,0x25,0xAC,0x5F,0x99,0x13,0xA4,0x08, + + 0xA4,0x03,0x84,0x90,0x99,0xDE,0x22,0x40,0x09,0x5C,0xFD,0x4B,0x80,0xF2,0xD2,0x04, + + 0x26,0x13,0x90,0xC2,0x7A,0x1B,0x4E,0xEF,0x9B,0x28,0x41,0x5F,0x09,0xF3,0x33,0x61, + + 0x82,0xD1,0xB3,0xAD,0xD9,0x3E,0x0B,0xD3,0x5E,0x11,0xBF,0x4B,0x92,0x7F,0xEF,0x45, + + 0xB1,0x2B,0x51,0x3B,0xC7,0x67,0x2D,0xC7,0xCE,0x31,0xD4,0xE4,0x72,0x74,0xF9,0x2D, + + 0x23,0xCE,0xF7,0x7C,0xC0,0x33,0x9C,0x52,0xE0,0x58,0xDC,0xF4,0x73,0x75,0xB8,0x38, + + 0xA0,0x8D,0x3E,0xBE,0x88,0x89,0x6C,0xA3,0x43,0x14,0xD5,0xE5,0xF2,0x76,0x35,0x55, + + 0xAB,0xE4,0x63,0x27,0xB7,0xB7,0x24,0xB6,0x1E,0x21,0xDD,0xF5,0xF3,0x77,0xEA,0xFB, + + 0x37,0xBE,0x79,0xFF,0x04,0x5B,0x99,0x39,0xD4,0x61,0x81,0x5F,0xFC,0xF3,0x2E,0x72, + + 0xC0,0x43,0x71,0xE2,0x5B,0x8C,0x45,0xAF,0x16,0x5B,0xE5,0xCF,0x10,0xD8,0xD4,0xFA, + + 0xD2,0x93,0x7C,0xF2,0xD8,0x27,0xA6,0xC1,0x93,0x51,0xB3,0x15,0x00,0x3E,0x15,0x9B, + + 0x3B,0x13,0x74,0xEE,0x8D,0x44,0xC4,0x16,0xEF,0x51,0x81,0x52,0xFF,0x83,0x78,0xE4, + + 0x42,0x11,0xF1,0x4E,0xF7,0xB3,0xAB,0x96,0xFC,0x03,0xD6,0xEC,0x7A,0x7C,0xB5,0x28, + + 0x29,0x5F,0x97,0xCC,0x3D,0xBD,0x3F,0x12,0x9F,0x6C,0xDE,0xFC,0x7B,0x7D,0xB8,0xBA, + + 0x92,0x7D,0x07,0x49,0x52,0xC1,0x68,0x62,0x51,0xC3,0xD7,0xED,0xFA,0x7E,0x8B,0x08, + + 0x98,0xC2,0x41,0x5F,0x76,0x30,0xE8,0xD5,0x0A,0xC0,0xDF,0xFD,0xFB,0x7F,0x30,0x60, + + 0x00,0xCC,0x2F,0xBE,0x27,0x9F,0xB4,0xE2,0x40,0x00,0x25,0xD5,0x68,0xFB,0xEA,0x9A, + + 0x26,0xA1,0x10,0xE5,0x50,0xDA,0xC2,0xDA,0xDD,0x0C,0x14,0xB2,0x5B,0x7C,0x31,0xEB, + + 0x40,0x4F,0x19,0xF4,0xDD,0xB2,0xA1,0x51,0xF7,0x79,0x56,0x51,0x59,0x80,0xEB,0xFB, + + 0x41,0x4E,0x90,0xFB,0x6D,0x18,0xC6,0x74,0xF6,0x27,0xF1,0x86,0xD3,0x81,0xDF,0xA4, + + 0x22,0x9F,0x3F,0xC6,0x61,0xD1,0xCF,0x28,0x56,0xC0,0x08,0x42,0x56,0xE4,0x69,0x34, + + 0xEC,0xD4,0xA8,0xAA,0xAB,0xE7,0xAC,0x2C,0xD4,0xFA,0xF8,0x76,0x57,0xE5,0x1C,0x25, + + 0x6D,0xB7,0x21,0x83,0x84,0x5D,0x77,0x24,0xE8,0x1A,0xF1,0x67,0xD6,0xE6,0x7F,0x31, + + 0x78,0x2A,0xB6,0xA7,0xA4,0x31,0x07,0x5F,0x13,0xF6,0xF9,0x77,0xD7,0xE7,0x63,0x5E, + + 0x2F,0xCB,0xE2,0xF6,0xA0,0x53,0xD0,0xEA,0x54,0x35,0x79,0xDE,0x54,0xE7,0xEE,0x9F, + + 0x4E,0x7A,0xA1,0xDF,0xF4,0x00,0x32,0x9A,0x5F,0x7A,0xC2,0x0C,0x95,0xE6,0x43,0x09, + + 0xD5,0x87,0x9A,0xF3,0x64,0xE8,0x9F,0xB9,0xDC,0xC2,0x8D,0x06,0x14,0x43,0xEF,0x9D, + + 0xCB,0xEE,0xB9,0xE1,0x76,0xFA,0x62,0x34,0x29,0x40,0x6F,0xCC,0xBF,0x4A,0x77,0xEF, + + 0xF9,0x71,0x58,0x09,0xDC,0xAE,0xB2,0xEE,0xEC,0x8E,0xF2,0x6E,0x5E,0xEC,0xB9,0xA4, + + 0xF2,0x96,0x44,0xAC,0x2C,0x60,0x78,0xCE,0x4C,0xCE,0xFA,0x7E,0x5F,0xED,0x71,0x4C, + + 0x71,0x03,0xAB,0xC2,0xDA,0xA8,0xB3,0xD5,0x43,0x8C,0xF3,0x6F,0xDE,0xEE,0xED,0x05, + + 0x02,0xED,0x2B,0xDB,0xCE,0x52,0x1B,0x2C,0x6C,0xC2,0xFB,0x7F,0xDF,0xEF,0x22,0xF0, + + 0xDB,0xD2,0x7D,0x86,0x4F,0xBC,0x4B,0xD0,0x57,0xE4,0xF2,0xA4,0x76,0xEB,0x74,0x83, + + 0x16,0xD5,0xC2,0xE5,0x0D,0xF3,0x04,0x4D,0x56,0x95,0x78,0xCC,0x74,0x11,0xEF,0xD7, + + 0x4D,0x19,0xFE,0x25,0xB2,0xC1,0xCF,0x21,0x71,0x88,0x52,0xD1,0x7B,0xB0,0xAF,0x91, + + 0xE5,0x1E,0x69,0xCC,0x40,0xBC,0x87,0x74,0x3B,0xDB,0x7D,0x32,0xA2,0xFE,0xA4,0x46, + + 0xB4,0x39,0x24,0xD6,0xCE,0xB2,0x0B,0x25,0x60,0x54,0xF4,0xE6,0x76,0xF4,0x56,0x63, + + 0x1F,0x0A,0xC2,0xD6,0x37,0xB5,0x3F,0xF6,0xE8,0x94,0xFC,0xF6,0x77,0xF5,0xF4,0xF3, + + 0xA2,0x29,0x4B,0x35,0xB0,0x36,0xA7,0xA3,0xAE,0xD7,0xF5,0xE7,0xF6,0xF6,0xB2,0x53, + + 0xD0,0xE2,0xED,0xA5,0x84,0x21,0xBD,0x77,0x11,0xCA,0xFD,0xF7,0xF7,0xF7,0x7F,0x8C, + + 0xCB,0xDA,0x12,0xF1,0x9F,0x15,0xB3,0xD8,0x8B,0x27,0xBC,0xAA,0xDF,0x58,0x10,0x6A, + + 0x4D,0xD9,0x73,0xA7,0x56,0x31,0xBA,0x52,0xF5,0x19,0x0F,0x43,0x8F,0x4C,0xE3,0xCE, + + 0xAD,0xD8,0x36,0x74,0xCF,0xBA,0xF7,0x7F,0xA9,0xDE,0xA2,0x8C,0xF1,0x21,0xEF,0x1E, + + 0x99,0x10,0x7B,0x62,0x3C,0x60,0x66,0xB1,0x08,0xD2,0xA3,0x47,0xFD,0xB9,0xA6,0x0A, + + 0x3B,0x61,0x1C,0x4C,0xF3,0xB3,0x5E,0x88,0x5D,0x93,0xF6,0xEE,0x7E,0xFC,0x37,0xA4, + + 0x8A,0x1B,0xE5,0x19,0x39,0x3D,0x46,0x10,0xE2,0x20,0xFE,0xFE,0x7F,0xFD,0xEC,0x2B, + + 0xB2,0xF2,0xBE,0x29,0xB8,0xFC,0xB7,0x6F,0x48,0xD0,0xF7,0xEF,0xFE,0xFE,0x6B,0x9B, + + 0xB3,0xD1,0x3D,0x9F,0xA7,0xFD,0xBF,0x7F,0x36,0xD5,0xFF,0xFF,0xFF,0xFF,0x3A,0xF3, + + 0x38,0xAF,0x7F,0x76,0x72,0xDF,0x76,0x90,0xA9,0x4F,0x50,0x64,0xB9,0xB1,0x58,0x11, + + 0x6A,0x22,0x77,0x6A,0x3F,0xD5,0x42,0x40,0x29,0xA0,0xE0,0x47,0x3D,0x6A,0x12,0xF2, + + 0xF8,0xA9,0x7A,0x7A,0xF8,0x2F,0x77,0x84,0xC1,0x92,0xE9,0x02,0x39,0x93,0xFC,0xE0, + + 0xA7,0x01,0x29,0xE6,0x1D,0x61,0x67,0x37,0x20,0xC0,0x1D,0x26,0xE1,0x52,0x80,0x05, + + 0xA3,0xDB,0x77,0x6D,0x65,0x24,0xFC,0x1F,0x88,0x3D,0x89,0x3C,0x54,0x06,0x7B,0xD0, + + 0xA2,0x9A,0xC8,0xAF,0x60,0x25,0x42,0x72,0xD1,0x4F,0x98,0xB3,0x60,0x73,0xF5,0x23, + + 0x7D,0x00,0xFF,0x34,0x2D,0x7D,0x0B,0x63,0x71,0x9B,0x84,0x41,0xF2,0x77,0xFD,0x33, + + 0x78,0x6B,0x09,0x54,0x3D,0xDA,0xDC,0xF5,0x81,0x45,0x63,0xE7,0xA3,0x75,0x3C,0xC0, + + 0x60,0x71,0x02,0x8F,0x1E,0x6A,0xA1,0xDB,0xC4,0xC3,0x94,0x04,0xD8,0x24,0x74,0xBD, + + 0x8B,0x0D,0xC8,0x18,0x9E,0x9B,0xBA,0xD7,0xFD,0x46,0xBC,0x99,0x2D,0xCD,0x7D,0xB9, + + 0x69,0x69,0x3F,0x4D,0xD0,0x29,0x17,0xCB,0xCE,0x08,0x95,0x18,0xF0,0x32,0x51,0x7B, + + 0xE2,0xA8,0x4B,0x8D,0x81,0x8A,0xF7,0xAA,0xB1,0x16,0xC9,0x00,0x30,0x51,0xFD,0xD3, + + 0xF5,0xD1,0xD4,0x2E,0xE5,0xF1,0x40,0xEC,0x4C,0x0E,0x68,0x1C,0xDA,0xEA,0x58,0xA6, + + 0xF0,0x80,0x8A,0xA3,0xEE,0xAE,0x0A,0xE8,0x67,0xB8,0x4A,0x3B,0x7F,0x76,0x20,0xB7, + + 0x63,0x27,0x17,0xB3,0x67,0xAF,0xDF,0xED,0xC4,0x70,0xF7,0x2D,0xDE,0x00,0x19,0xA6, + + 0x78,0x4D,0x3E,0xA3,0xE0,0x2D,0x8D,0x85,0xCB,0xF3,0x97,0x1B,0xF8,0x64,0xB1,0x7D, + + 0x22,0xCB,0x28,0x01,0x5B,0x9B,0x75,0xE0,0x64,0x1E,0x03,0x5C,0x70,0xCB,0xA0,0xE3, + + 0x47,0x97,0xF2,0xA1,0xD8,0xD0,0xE1,0x9E,0xC2,0xFC,0x23,0x85,0x62,0x8E,0x36,0x05, + + 0xFD,0xB0,0x85,0x76,0xD7,0xBF,0x57,0x25,0xE6,0x16,0x93,0x21,0xF8,0x15,0x89,0xE2, + + 0xCB,0x9A,0x21,0x06,0x98,0x39,0xCF,0x81,0xE9,0xAC,0xA6,0x09,0x06,0xFE,0xC8,0xA2, + + 0xD5,0x71,0x0B,0xB7,0x1B,0xB6,0xC3,0x73,0x05,0xF9,0x56,0xD6,0x12,0x81,0x99,0xB2, + + 0xD0,0x70,0x2B,0x14,0x37,0x95,0x18,0x83,0x1F,0xF4,0x75,0x07,0xFF,0xFE,0x7D,0x3E, + + 0xA4,0x54,0x3A,0xB6,0x93,0x5A,0xC6,0x72,0x89,0x5E,0xAB,0xE3,0x13,0xF5,0x75,0x2A, + + 0x2E,0xE1,0xD5,0xF1,0x80,0x1D,0x87,0x0E,0x0A,0x86,0x22,0x17,0x5F,0x78,0x26,0x1A, + + 0xA8,0x12,0x08,0xFF,0x54,0xB8,0x2C,0x19,0x02,0x87,0xE9,0x2E,0xE9,0xFD,0x50,0x2C, + + 0x56,0x6C,0x22,0x0F,0x10,0x33,0xDE,0xB9,0xC7,0x37,0x5E,0xAC,0x1F,0x73,0x85,0x78, + + 0xC2,0x1A,0xF9,0xA5,0x51,0x2B,0x20,0x61,0x9B,0x5A,0x57,0x29,0x71,0x16,0x13,0xEB, + + 0x52,0xE0,0x59,0x19,0xBF,0x48,0xA2,0x26,0x1C,0xD2,0xDF,0x55,0xBA,0x36,0x38,0xE5, + + 0xDB,0xCA,0x7E,0x2C,0x6C,0x52,0x00,0x19,0xE7,0x3E,0x69,0x68,0x7C,0xB5,0x0E,0xE8, + + 0x2D,0x5F,0x03,0xAF,0x2C,0x7F,0x20,0x0C,0x6D,0x26,0xA1,0x14,0x6E,0x30,0x39,0xE5, + + 0xAC,0x9C,0x9E,0x7E,0x1F,0x98,0x29,0x18,0x17,0x3C,0xEF,0x17,0x56,0x73,0x8F,0x9C, + + 0xAD,0x9D,0x0B,0xBE,0xB8,0x1D,0x5F,0x8A,0x87,0x56,0x26,0xF5,0x5E,0x00,0x20,0xF1, + + 0x62,0xE5,0x70,0xED,0xFD,0x83,0x56,0x1A,0x45,0x90,0xE8,0xAE,0xBD,0x7A,0x38,0x16, + + 0x0C,0x7E,0xF8,0xE5,0x3F,0x95,0x58,0x78,0xA8,0x6C,0x00,0xD6,0x09,0xFA,0x19,0xF0, + + 0xEA,0x83,0xF7,0xE5,0x5C,0xA1,0x90,0x1B,0x58,0x73,0xE9,0xB7,0xE7,0xAE,0x13,0xE0, + + 0x92,0x2C,0x79,0x06,0xF9,0x83,0xAF,0xD1,0x39,0xD9,0xF3,0x51,0xF6,0xB3,0xE0,0xCE, + + 0x00,0xE6,0xBB,0x7D,0x10,0xAE,0xCD,0x39,0x97,0x99,0xE0,0xF3,0x2F,0x69,0x16,0x6F, + + 0x6C,0x64,0x78,0x25,0x4C,0xAC,0xB8,0xF7,0xA8,0xC6,0xB5,0xB6,0x3E,0x6E,0x47,0x31, + + 0x6D,0x57,0x9E,0x54,0xAE,0x47,0x5A,0xE7,0xCE,0xA1,0x0E,0x18,0x5B,0x40,0x6D,0x20, + + 0xAE,0x05,0x69,0xC6,0xCC,0x0A,0x3C,0xF3,0x7A,0x66,0x5C,0x4A,0x64,0xAA,0xEF,0xF7, + + 0x0E,0x53,0xBF,0x49,0xF5,0xD2,0xE9,0x2A,0xBC,0x6B,0x1A,0xA7,0xD9,0x6A,0x14,0x7B, + + 0x65,0x84,0xD3,0x6F,0x0A,0xBF,0xCE,0x55,0x4B,0xAB,0x9A,0x16,0x7D,0x4A,0xD6,0x8F, + + 0xD0,0x6A,0xC5,0x62,0xFF,0xAE,0x04,0x9F,0xCA,0xEA,0x1B,0xB6,0x59,0x49,0xD6,0xE2, + + 0x8F,0x10,0xE3,0x16,0x74,0xD2,0x6B,0x55,0xAC,0xCF,0xEB,0x01,0xA9,0x1E,0x9D,0x39, + + 0x62,0xE0,0xFC,0xDE,0xE1,0x01,0x4A,0x95,0xFB,0xAF,0xEA,0xA3,0x3D,0x96,0x99,0xDE, + + 0x4D,0x8F,0x6A,0x4F,0x48,0x00,0x5A,0x6A,0x07,0x2C,0xA8,0x51,0xB4,0x89,0x84,0x0B, + + 0x8A,0xA6,0x28,0x08,0x40,0xA4,0x88,0xEF,0xC0,0x21,0x64,0x9C,0x5A,0x63,0x79,0x47, + + 0x89,0xCD,0x24,0x3F,0x9B,0x0D,0x77,0x42,0x40,0x62,0xC3,0x81,0xB4,0xE0,0x3E,0x7E, + + 0xD0,0xD2,0x64,0x03,0xAF,0x1D,0x14,0x48,0xD1,0x59,0xEC,0xAB,0xF6,0xEC,0xBA,0xE1, + + 0x49,0xFD,0x6C,0x06,0x31,0x17,0xD4,0x3B,0x2D,0xC0,0xBC,0xB6,0x75,0xF1,0x6B,0xBD, + + 0x45,0x3D,0xB4,0x03,0xB2,0x01,0x15,0x29,0xE5,0x92,0x87,0x23,0xB4,0x5E,0x4B,0xF2, + + 0xA4,0xD3,0x3A,0xE9,0x7F,0x62,0x39,0x42,0x59,0xD0,0x2D,0x35,0x64,0x76,0xE4,0x59, + + 0xCD,0x25,0x84,0x8D,0x13,0xF6,0x71,0x73,0x0A,0x21,0x18,0x9D,0xE8,0x69,0xC0,0xA1, + + 0x1B,0xE3,0xDB,0x52,0x39,0x56,0x5C,0x15,0x61,0xAE,0x3A,0xF4,0x53,0x28,0xDE,0x59, + + 0x4D,0x07,0x25,0x51,0x34,0xEA,0xE3,0x67,0x91,0x7F,0x14,0xA7,0xB6,0xB8,0x53,0xFF, + + 0x31,0x9D,0x8D,0x99,0x65,0xB3,0x7D,0x80,0x8B,0xBB,0x87,0x97,0xA1,0x7C,0x32,0x2B, + + 0xCD,0x37,0xEE,0x12,0x3A,0xFA,0x87,0x0B,0xD4,0x9B,0x76,0xBE,0xB5,0xF8,0x48,0xEB, + + 0x2E,0xD2,0x11,0x7C,0x56,0xB6,0xFE,0xDD,0x6E,0xAB,0xC6,0xBA,0x94,0xD0,0x36,0xF8, + + 0x9C,0xF6,0x72,0xF1,0x1F,0xDF,0xF7,0xAF,0x89,0x98,0xB7,0xAF,0xFC,0x51,0xEF,0x1F, + + 0x29,0xF5,0x2F,0xEC,0x8D,0xF9,0x01,0xCA,0x8D,0x24,0x8D,0x8F,0xA9,0xB9,0x6B,0x8D, + + 0xC7,0x2D,0x61,0x4C,0xAB,0xAA,0x10,0x8B,0x6D,0xEC,0x15,0xD2,0x95,0xB8,0x66,0x9A, + + 0x29,0xDF,0xC3,0xCD,0x39,0xDF,0x60,0xEB,0x03,0xD9,0x5A,0x8C,0xDC,0x76,0x82,0xB8, + + 0xDE,0xC8,0x27,0x4B,0x78,0xB8,0xC0,0xDE,0xE8,0x05,0xCD,0x5F,0x6B,0x51,0xBA,0x5F, + + 0xA1,0xA1,0x39,0x5D,0x26,0x16,0x07,0x3D,0x85,0x9E,0x89,0xC3,0x14,0xBB,0x3A,0xB0, + + 0x99,0xAF,0x97,0xF7,0x68,0xAD,0xE8,0x53,0x78,0x2C,0x05,0xA0,0x12,0x50,0x16,0x2C, + + 0xB2,0x8C,0xB6,0x2D,0x79,0x50,0x88,0x42,0xAA,0x10,0x49,0xCE,0xB8,0x10,0xA5,0x73, + + 0x23,0x89,0xE7,0x3D,0x7B,0xB3,0x77,0x40,0xC1,0x62,0x04,0xDE,0x39,0x6D,0xF1,0x0C, + + 0x01,0xA5,0xF7,0x38,0x78,0xB2,0x67,0x1C,0xAA,0x92,0xBF,0x44,0x72,0xE6,0x7A,0xB3, + + 0x3A,0xA9,0x3B,0xC0,0x57,0x19,0x2E,0xCC,0xEE,0x49,0xA8,0x43,0xAF,0x6B,0x00,0x9C, + + 0x30,0xC8,0x73,0x0E,0x15,0x47,0x7B,0x8F,0xB6,0xC6,0x23,0x53,0xF2,0x9A,0x54,0x06, + + 0x48,0x57,0xEE,0x3A,0x4B,0xBA,0x2F,0xCC,0xC4,0x24,0x11,0xE1,0x84,0x6B,0x89,0xD5, + + 0xCC,0x1A,0x50,0x95,0x83,0x65,0xAC,0x8F,0x2A,0xEE,0x35,0xE7,0xD3,0xBA,0x92,0x7A, + + 0xE3,0x93,0xD4,0x20,0xF3,0x79,0x21,0xD9,0x34,0x4A,0xB4,0xCE,0x11,0xC7,0x9B,0xF0, + + 0x97,0xC6,0x9F,0x98,0x17,0x95,0xAD,0x11,0x4F,0xD2,0x31,0x52,0x8C,0x12,0x5A,0x87, + + 0x6F,0x46,0x84,0x0F,0x12,0x87,0x4C,0xA9,0xBB,0x3F,0x19,0x72,0x65,0x96,0x52,0x77, + + 0x2E,0x1B,0xB3,0xE7,0x35,0x26,0x8E,0x02,0xF1,0xBE,0xDB,0xD1,0x65,0x29,0x6A,0x2A, + + 0xB3,0x00,0x02,0xD0,0xBB,0xB3,0xAF,0x84,0x4A,0xF7,0xC8,0x6E,0x98,0x68,0xF7,0x1A, + + 0xAA,0xA0,0x8D,0x74,0xF2,0x1E,0x12,0x83,0xC9,0x51,0x93,0x8C,0xDB,0x72,0x7B,0x27, + + 0x0B,0x03,0x77,0x2F,0x61,0x2D,0x13,0x91,0x3E,0x0C,0xDB,0xF9,0x27,0xC8,0x1F,0x68, + + 0x2A,0xF0,0x27,0xCF,0x9F,0x27,0xE5,0x1B,0x30,0xBA,0x60,0x0D,0x5B,0x79,0xD3,0x9E, + + 0x02,0xE4,0x14,0xC3,0xC9,0x96,0x2A,0x9D,0x1C,0xFF,0x94,0xB7,0x44,0xB8,0x74,0xA2, + + 0x49,0x1C,0xEA,0xB8,0xDA,0xA0,0x62,0xB7,0xC0,0x8E,0x2B,0x89,0x85,0xA0,0x51,0xF2, + + 0xC9,0xA6,0x10,0x76,0xC8,0xAF,0xB5,0xD2,0x94,0x81,0x20,0x9C,0x44,0xE3,0xF2,0xE2, + + 0x02,0x70,0x61,0xE6,0xC9,0x95,0xA9,0xD3,0x1E,0xF7,0x5D,0xED,0xFA,0xDE,0x39,0x02, + + 0x83,0x0B,0x97,0x3E,0x34,0x76,0x01,0x93,0x58,0x38,0x0F,0xDA,0x76,0x7E,0x9F,0x2E, + + 0x9A,0xA6,0x6C,0xB6,0x84,0x50,0x60,0x52,0x65,0x17,0x8B,0xCF,0x1A,0xEE,0xF8,0xFC, + + 0x5D,0x4B,0x06,0x87,0x3E,0x3A,0x33,0x90,0xE3,0x16,0xAA,0xDB,0x80,0x83,0x32,0xBB, + + 0xD1,0x88,0xF5,0x3A,0xD8,0x38,0x9E,0x93,0x14,0x32,0xDD,0x71,0xF7,0x25,0xFD,0xF7, + + 0x48,0x1A,0x1B,0x7C,0xB8,0x27,0x81,0xAE,0xA0,0x89,0x07,0x5D,0xDB,0x38,0xFB,0x6B, + + 0x0F,0x92,0x0E,0x5A,0x1F,0x3A,0x21,0x3C,0x21,0xA9,0x89,0x4F,0x01,0xA4,0x79,0x2C, + + 0x5D,0x99,0x99,0xB5,0x2A,0x32,0xB3,0x58,0x4B,0x1A,0xA5,0x93,0x5B,0xDB,0x27,0xA4, + + 0x42,0x5F,0x5F,0x0D,0x99,0x0A,0x27,0x57,0x45,0x56,0xC9,0x85,0x12,0xEA,0x1F,0xBE, + + 0x2C,0x9C,0x46,0xBF,0x00,0xB9,0x6E,0x07,0xFF,0x81,0x75,0x54,0xA6,0xCF,0x1A,0x2B, + + 0x01,0x90,0xF0,0x3E,0x59,0x88,0x66,0x13,0xD8,0x88,0x65,0x4C,0xC5,0x22,0x32,0xBA, + + 0x96,0xBF,0xD5,0x4D,0x51,0x7A,0xFE,0x87,0xC4,0xF8,0x17,0x68,0x2A,0x01,0x19,0x79, + + 0x40,0x1C,0xB1,0xDA,0x1A,0xE0,0x01,0xC6,0x8C,0x82,0x70,0x92,0x26,0xA0,0xD8,0xEA, + + 0xD2,0x4F,0xDF,0x7C,0x99,0xC2,0xA7,0x1C,0x30,0x82,0xBB,0xE7,0x3F,0x71,0xF2,0xB6, + + 0x21,0x2C,0x04,0x65,0x29,0x57,0x06,0x43,0x25,0x1E,0xE6,0x0A,0xE9,0x4A,0x89,0x3B, + + 0xB7,0x34,0x5A,0x7C,0x9A,0x5D,0x6A,0x62,0x25,0x7D,0x04,0xD6,0xAC,0xE0,0x37,0x23, + + 0x72,0x22,0x97,0x3B,0x43,0xA9,0xC6,0x48,0x48,0x35,0x2E,0xB7,0x1D,0x92,0x5E,0xE2, + + 0x28,0x5B,0xF4,0x35,0x7F,0x25,0x21,0xE6,0x0D,0xC1,0xB8,0x6A,0xAB,0x45,0xD3,0xE2, + + 0xBB,0x5A,0x44,0xC9,0x14,0x67,0x70,0xE2,0xAE,0xD6,0xAE,0xCE,0xBC,0x76,0xDE,0x73, + + 0x84,0x79,0x1A,0xB8,0x7F,0x95,0xCE,0xA4,0x04,0x66,0xA6,0x94,0xAC,0x3B,0x57,0x7E, + + 0x38,0xDC,0xB3,0x27,0xFF,0xB4,0x1B,0x63,0xC6,0xB7,0xFF,0xDE,0x5E,0xCB,0x1A,0x15, + + 0xAF,0x0D,0x22,0xC8,0x3A,0x23,0x7A,0x5B,0xB5,0x49,0xA7,0x5D,0x64,0xE1,0x52,0xAA, + + 0xAE,0x56,0x6E,0x7A,0xBC,0x2E,0xC1,0x45,0x25,0xC4,0x3A,0xC5,0xBC,0x4A,0x31,0x0B, + + 0x73,0x27,0x1E,0x3E,0xA4,0xE8,0xB3,0xD4,0x2D,0xA9,0xE4,0x5C,0xA0,0x6B,0xF6,0x1A, + + 0x89,0xAB,0x2F,0x1A,0x39,0xE8,0xC4,0x45,0xE3,0x14,0x28,0xC5,0xB6,0x43,0x62,0xB3, + + 0xBF,0x17,0x9C,0x48,0xFF,0x2F,0x4C,0x0B,0x2E,0xB3,0x32,0xEB,0x6B,0xE6,0x02,0x38, + + 0xB0,0x83,0x98,0x5F,0x53,0x00,0x9D,0x3A,0x43,0x66,0x23,0x7E,0x24,0xEF,0x54,0xCF, + + 0xB0,0x20,0x50,0xBC,0x12,0xA3,0x8C,0x18,0xFC,0xA0,0xB3,0x1C,0xB7,0x91,0x53,0xB5, + + 0x0C,0x82,0x76,0x66,0x64,0x22,0x73,0x6A,0x2E,0x60,0xA0,0x44,0xA0,0xED,0x7E,0x81, + + 0x52,0x65,0x23,0x02,0x32,0xB7,0xC9,0xE5,0x99,0xA6,0x74,0x36,0x6C,0x25,0x2C,0x81, + + 0x4C,0x59,0x62,0x51,0x33,0x31,0x03,0x36,0x63,0x8E,0x2B,0xC8,0x1F,0x20,0x85,0x7D, + + 0xCF,0x3A,0xFC,0xF1,0xB2,0xF0,0xCA,0xDD,0x72,0x0D,0xCD,0x96,0x88,0x5D,0x98,0x32, + + 0x11,0x90,0x7F,0xD7,0xBD,0xF2,0x05,0x5D,0x49,0xDE,0xC3,0x8B,0xBF,0xC2,0x62,0xEB, + + 0xA6,0x62,0x50,0xA4,0x4E,0x4B,0xA0,0x71,0xC7,0x6B,0xAA,0xB3,0x76,0x50,0x12,0x6A, + + 0xCC,0x26,0xEC,0x2F,0x3B,0xF7,0xC7,0xB0,0xC6,0x28,0xCF,0x4E,0x71,0x8D,0xF5,0xDC, + + 0x94,0x1B,0x5E,0x7F,0x41,0x2D,0x0E,0x67,0xEA,0xB6,0xEB,0xAF,0x0E,0x45,0x53,0x7B, + + 0x6F,0x3E,0xE9,0x70,0x5E,0xBF,0x55,0x91,0x13,0x84,0x9F,0xD3,0xF7,0xF7,0x11,0x2F, + + 0xDC,0xDB,0x4A,0xAA,0xB1,0xF9,0xCB,0xED,0x91,0xAE,0x96,0x11,0x9D,0x57,0xFE,0x72, + + 0x83,0xD4,0xB0,0x0E,0xD6,0xE8,0x40,0x82,0x4F,0x34,0x04,0x3A,0x3D,0x36,0xA7,0xD3, + + 0xA7,0xD6,0x67,0x0A,0x74,0x17,0x49,0x92,0x19,0x8C,0xE7,0x5C,0xD6,0xE1,0x51,0xB2, + + 0xCE,0x64,0x91,0xFE,0xFF,0x14,0xBA,0xFC,0x0C,0x7D,0xBF,0xBF,0xFD,0xFB,0x1E,0xF8, + + 0xE6,0x93,0xF0,0xAC,0xC5,0xFE,0xC1,0x47,0x68,0xBE,0xF6,0xEE,0x7E,0xFC,0x66,0xDF, + + 0xC6,0x8E,0x09,0x21,0x8A,0x6B,0x46,0x11,0xDC,0xD3,0xFE,0xFE,0x7F,0xFD,0xB4,0x38, + + 0xD0,0x35,0x67,0x43,0x33,0xC3,0x51,0x85,0xC0,0x78,0xF7,0xEF,0xFE,0xFE,0xAF,0x5F, + + 0x18,0x92,0x87,0xD9,0x3C,0xDB,0x47,0x04,0x6C,0xD2,0xFF,0xFF,0x71,0x9D,0x80,0x19, + + 0x40,0x40,0x30,0x08,0xF1,0x43,0x16,0x7E,0xCD,0x22,0xA7,0x70,0x23,0x60,0xA7,0xE1, + + 0xED,0x0C,0x9A,0x10,0xF8,0xA0,0x0E,0x9D,0xAA,0x32,0x8E,0x56,0xAE,0xBC,0x00,0xDF, + + 0xEB,0xC7,0x83,0xF6,0xF4,0x89,0xBA,0xA4,0x53,0x7D,0x51,0x3D,0x83,0x9F,0x57,0x22, + + 0x01,0xA8,0x65,0x86,0xF9,0x29,0xA2,0x80,0xF7,0xEC,0x4D,0xCB,0x2C,0xE2,0x12,0x4F, + + 0xE9,0x95,0xB9,0x32,0xE1,0x34,0x46,0x48,0xA9,0x55,0x01,0x7B,0x6C,0x0A,0x5E,0x91, + + 0xFC,0x88,0x7B,0x69,0x15,0xF5,0xCE,0x0F,0x2B,0x34,0xE6,0xD8,0x91,0x65,0x61,0x61, + + 0x6B,0x47,0x7B,0xBE,0x6E,0x25,0xEA,0xD0,0xAE,0xE9,0xEF,0xC8,0x10,0x99,0x9D,0xAF, + + 0x7B,0xCF,0xD3,0x0F,0x66,0xBB,0x27,0x5C,0x36,0xE4,0xD1,0x61,0xB8,0x34,0x30,0x18, + + 0x8D,0x1E,0x06,0x08,0x58,0x9B,0xC3,0x7A,0xFB,0xC2,0xF3,0xDF,0x20,0xB5,0x2D,0x19, + + 0x62,0x7D,0xF4,0x20,0xF0,0xA8,0xCF,0x6A,0x0A,0xB9,0x2D,0x00,0xA4,0x0A,0x5D,0x13, + + 0x88,0xA1,0xBD,0xDD,0xDB,0x0A,0x6B,0x63,0xF9,0xE7,0xC1,0x22,0x33,0xFB,0x89,0xDF, + + 0x1B,0x08,0x91,0x19,0xB8,0x4B,0x12,0xCA,0xF3,0xE6,0xFD,0x5F,0x2E,0x96,0x19,0x48, + + 0x0C,0x9C,0xED,0x33,0xC3,0x22,0xC3,0x9B,0x7E,0x4D,0xD2,0x9D,0x64,0x93,0xB5,0x26, + + 0x25,0xD2,0x31,0x1B,0xE2,0xDB,0x76,0x0A,0xA0,0x2C,0xE9,0xC9,0x78,0x2D,0x08,0x36, + + 0xE2,0x03,0xFB,0xB2,0x19,0x23,0x54,0x6C,0xCE,0x2E,0xD5,0xC5,0x33,0x7D,0xF4,0x69, + + 0x19,0xA0,0xB5,0xED,0x6A,0xF9,0x65,0x5C,0x46,0xC9,0xDD,0xC8,0x99,0xC0,0x90,0x73, + + 0xA4,0x9D,0xA4,0x99,0x5B,0xD1,0x91,0xDD,0x89,0x31,0xAC,0x25,0x1B,0x91,0x36,0x72, + + 0x69,0x70,0xD2,0xBD,0x39,0x9A,0x65,0xE6,0x94,0x9D,0xC2,0x9D,0x79,0xDA,0x57,0xCB, + + 0x4B,0x76,0xB0,0x74,0x80,0x33,0x03,0xC3,0x80,0x28,0xA0,0x54,0xC0,0x7F,0x33,0xB4, + + 0x43,0xC3,0x1C,0xBE,0xDA,0x42,0x1C,0xE7,0x1C,0x9F,0x0C,0x9B,0x9A,0x02,0x8C,0xE6, + + 0x72,0x99,0xC8,0x2E,0xD7,0xAB,0x2A,0xE7,0xC3,0xFB,0xB7,0xF7,0x23,0x15,0x06,0xD1, + + 0x5E,0x1C,0x9C,0xEA,0x4F,0x77,0x0C,0xDF,0x5B,0x00,0xDC,0xB4,0x0A,0xD1,0x91,0x3E, + + 0x4B,0x9C,0xC4,0xB3,0x49,0xC3,0xC2,0xC6,0x43,0xF9,0xEB,0xC0,0x7D,0xF0,0x0F,0xA2, + + 0xFA,0x96,0x4E,0xA5,0x30,0x3A,0xCC,0xDA,0xDF,0x51,0xCC,0xF3,0x3B,0x96,0x39,0xFA, + + 0xC3,0x79,0x8E,0x2C,0x60,0x58,0xCD,0xA4,0x17,0xA1,0x96,0xAE,0x24,0xD3,0x8E,0xAA, + + 0x49,0x49,0x0B,0xB8,0xD0,0x78,0xDE,0xB5,0x14,0xF4,0x86,0x4D,0x41,0x59,0x39,0xAC, + + 0xC3,0x15,0x07,0x89,0xCE,0x39,0xA2,0x9D,0x10,0x69,0x01,0x86,0x93,0x6B,0xF0,0xEA, + + 0x0A,0x98,0x99,0x59,0x46,0xB6,0x8B,0x88,0x48,0xDA,0xC1,0x91,0x41,0xD0,0x1C,0x37, + + 0xCB,0x9F,0x51,0x3F,0x5C,0x32,0x56,0xF4,0x6C,0xCC,0x72,0x8E,0x8D,0x19,0x10,0x60, + + 0x23,0xB2,0xE8,0xF4,0xBF,0x99,0x26,0x59,0xE6,0xD6,0x6F,0xD0,0xC3,0x0C,0xF6,0x82, + + 0x57,0x22,0xFF,0x71,0x51,0x9D,0xE0,0x1A,0xCC,0xFA,0xEF,0x12,0x46,0x4F,0x18,0xD2, + + 0xDD,0x1B,0x59,0xDA,0x1A,0xE0,0xDF,0x6A,0x8B,0xF0,0x1F,0xE5,0x3B,0xC0,0xC3,0xF9, + + 0x20,0xC0,0x20,0x07,0xBA,0x0D,0xE5,0xF2,0x18,0x6F,0xA6,0x44,0xAB,0x3D,0x9F,0x13, + + 0x88,0x8D,0x2C,0x12,0x55,0xB2,0x5A,0x8F,0x44,0xB1,0xAF,0xC5,0x2D,0x3C,0xA6,0xAD, + + 0x0B,0x80,0x31,0x94,0x9F,0xAA,0xA3,0x50,0xFE,0xAC,0x65,0xD9,0x29,0x43,0x41,0x0C, + + 0xA1,0x82,0x97,0xD2,0xB7,0xAE,0x60,0x58,0xA6,0x3C,0xEF,0x0F,0x3E,0x72,0x77,0x3C, + + 0x64,0xF0,0x9E,0xE3,0xFF,0x97,0xF6,0x22,0x4A,0x84,0x50,0x7C,0xDA,0x49,0xD7,0xF7, + + 0xCD,0x88,0x91,0x20,0xE4,0xB5,0x6E,0x57,0xAC,0x81,0xA2,0x72,0x3F,0xF4,0x1F,0x7B, + + 0x7A,0x57,0xF7,0x25,0xF6,0xDC,0x73,0xCB,0xA5,0xD9,0x24,0x85,0x9E,0x87,0x92,0x2C, + + 0xEF,0x8A,0x53,0xAC,0x6B,0xE4,0x43,0xC3,0x0A,0x68,0x87,0x5F,0x36,0x44,0x25,0x0F, + + 0x08,0x88,0xE6,0xFF,0x70,0x9D,0xCA,0xC2,0xA9,0x87,0x32,0x2A,0x2A,0x45,0x74,0xB2, + + 0x0D,0x04,0xBF,0x1F,0x76,0xF8,0xBB,0xC7,0xB0,0xBC,0xB2,0x3B,0x59,0x69,0x5D,0xFA, + + 0xE2,0x96,0xFD,0x27,0x3C,0x01,0xB3,0x3B,0xB6,0x11,0x23,0x68,0x16,0xA0,0x55,0x3E, + + 0x6C,0x2A,0x9E,0xEE,0xA1,0xA7,0xA9,0x00,0xF7,0x89,0xEC,0x4C,0xD2,0xE8,0x9D,0x34, + + 0x20,0x53,0x51,0xEF,0x18,0x7C,0xD6,0x08,0x6F,0xAC,0x64,0x9D,0x32,0x67,0x7D,0x24, + + 0x65,0x1C,0x55,0x1C,0xBE,0x00,0x6B,0x4A,0x1B,0x62,0x6F,0x0C,0x35,0xBC,0xDC,0x7A, + + 0xF6,0x21,0xF9,0x31,0x1F,0xA3,0xF3,0x6E,0x2A,0x63,0x73,0x5E,0xE2,0x41,0x15,0x63, + + 0xAF,0x3F,0xBE,0x6E,0x3E,0x2E,0xDB,0x09,0xA5,0x2E,0x85,0x53,0xDB,0xAF,0x74,0x7C, + + 0xD9,0x19,0x70,0x78,0xCC,0x78,0x38,0x48,0xA1,0x0D,0x21,0xA4,0x54,0x40,0x88,0xF0, + + 0xDE,0x0A,0xE7,0xE9,0x5D,0xBC,0x96,0xA3,0x49,0x7C,0x0B,0x92,0x02,0xF1,0xA1,0x70, + + 0x20,0x46,0xFE,0x87,0xB2,0x22,0x9F,0xAB,0x21,0x2F,0xF8,0x07,0xE8,0x20,0x2D,0x7B, + + 0x44,0xDE,0x52,0xE9,0x9B,0x6C,0xA9,0xF4,0x27,0x93,0x8A,0xE3,0x86,0xF3,0x61,0x33, + + 0x54,0xB4,0x50,0xA4,0xBB,0x12,0x21,0xD3,0xC7,0x55,0xC7,0x04,0x70,0x24,0xBF,0x22, + + 0x9B,0x06,0x38,0x28,0x8B,0x84,0x7D,0x84,0x9C,0xAE,0xDA,0xCE,0xFB,0x28,0x3B,0x7A, + + 0x12,0x3D,0xB7,0x38,0x43,0x10,0x79,0x09,0x03,0x49,0x80,0xF4,0x8E,0xB2,0xDC,0x6A, + + 0x1F,0x44,0x5C,0xFB,0x0F,0xC6,0x7E,0xCC,0xC1,0x02,0x85,0xD0,0x0A,0xF8,0xDD,0x82, + + 0x89,0x67,0x19,0xBE,0xAE,0x17,0x7E,0xAF,0x68,0xD8,0x76,0xB6,0x2F,0x05,0x34,0x84, + + 0x1B,0x6D,0xD0,0xA6,0xBD,0x2B,0xE1,0xBB,0xED,0x99,0x6A,0x40,0x80,0x78,0xFA,0x87, + + 0xAA,0x4A,0xB0,0xF1,0xDE,0xCE,0x7D,0x8B,0xFC,0x5A,0xA1,0xCD,0x03,0x27,0xFA,0xE8, + + 0x93,0x80,0x18,0xBB,0xCA,0xBB,0xE0,0xBB,0x31,0x7A,0xDE,0x4C,0x85,0x26,0xA6,0xD2, + + 0x23,0x63,0x26,0xD6,0xFE,0xD0,0x22,0x6E,0x3A,0x55,0xAC,0xEF,0x16,0x2F,0xD1,0xEB, + + 0x8E,0x62,0x96,0x4D,0x55,0x22,0x56,0x98,0x86,0xEE,0xA9,0x0D,0x05,0x88,0xB3,0x58, + + 0x0F,0x41,0x81,0x7B,0x45,0x13,0xCC,0xA9,0x4F,0x23,0x89,0x53,0x1F,0x5D,0xD4,0x7E, + + 0x58,0x62,0x2F,0xC3,0x05,0x6B,0x69,0x99,0x8F,0xA5,0xAC,0x11,0x47,0x2C,0xC0,0x18, + + 0x0D,0xFF,0x05,0xB5,0xF9,0xCA,0x77,0x28,0x2B,0x85,0x35,0xD5,0x34,0x76,0xB7,0x21, + + 0xA0,0xFE,0x3F,0x40,0xE6,0x94,0x46,0x03,0xC1,0xEA,0xC0,0xAC,0xAD,0xA9,0xD5,0x92, + + 0x21,0xDD,0x8F,0xD1,0xB3,0xB0,0x77,0xD0,0x2C,0x49,0xAF,0xF0,0x99,0xA8,0xB2,0xB4, + + 0x76,0xFE,0x41,0xEF,0x97,0xB3,0x2B,0x21,0x44,0x55,0x62,0x0E,0xDA,0xFC,0x1E,0xD2, + + 0x06,0xD0,0xFE,0x3A,0xB1,0x41,0xC0,0x91,0xE1,0x04,0x46,0x95,0x62,0xC2,0x2F,0xA1, + + 0xD1,0x45,0x48,0x44,0xB6,0x2B,0x4A,0x83,0x23,0x98,0x16,0xCF,0x57,0x14,0xA2,0x5E, + + 0x5C,0xA9,0xFF,0x3A,0x31,0x54,0x63,0x5F,0x61,0xE7,0x8F,0x4C,0xB1,0x62,0x37,0x67, + + 0x68,0xE2,0xA1,0xD3,0x6F,0x66,0x0F,0x54,0x28,0x26,0xE7,0xB0,0xF1,0x6A,0x14,0x20, + + 0xE3,0x19,0xC9,0x73,0x70,0x25,0x31,0x32,0x90,0xFC,0x52,0x34,0x0B,0x95,0x9C,0x67, + + 0x61,0x78,0x35,0x2D,0x7D,0x86,0x7B,0x98,0x9F,0xF6,0x4E,0xC2,0xA4,0xC8,0xB8,0xB8, + + 0xE4,0xA5,0x7C,0x73,0xB6,0xF5,0x4D,0x26,0x9A,0x04,0x85,0x4F,0x27,0xB7,0x75,0x34, + + 0x7C,0xA8,0x19,0x63,0xF3,0x8A,0x45,0xAF,0x03,0xE0,0x09,0xCE,0xBD,0xB6,0x1C,0x7B, + + 0x1A,0xA3,0x2E,0xCC,0xE6,0x0C,0xEB,0x19,0x07,0x47,0x50,0x90,0xE2,0x97,0x69,0xA9, + + 0xD3,0x4D,0x5A,0x47,0x37,0xD0,0x64,0x2C,0x20,0x42,0xEF,0x81,0x7A,0xB9,0x71,0x0F, + + 0x18,0xA1,0x6F,0x0F,0x19,0xDA,0x40,0x7A,0x9B,0x7F,0xEB,0x6F,0x9A,0xB5,0x15,0x56, + + 0xCF,0x41,0xD9,0x7D,0x70,0x5E,0xDB,0x4B,0x3F,0x40,0x49,0x62,0xB7,0xC2,0xB3,0xA4, + + 0xAF,0x12,0x3B,0xB5,0x54,0x9F,0x33,0xBB,0x0B,0x24,0x40,0x5A,0x8D,0xD1,0x64,0x61, + + 0x0D,0x65,0xF2,0xA5,0xDA,0x50,0xFF,0x4B,0x43,0x41,0xCA,0x85,0x9A,0xD0,0xB2,0x80, + + 0x2D,0x1E,0x17,0xFB,0xDA,0x93,0x95,0x67,0x72,0x51,0x07,0x56,0x94,0xAF,0x53,0xA1, + + 0x33,0xB8,0xAB,0xA1,0xD1,0x73,0x1F,0x4C,0xE1,0x57,0xE3,0x90,0x39,0xB2,0x1A,0x2F, + + 0x2E,0xBF,0xBA,0xFD,0x49,0xB4,0xC0,0x26,0x3E,0x57,0xF4,0xF4,0x05,0x41,0x12,0xCA, + + 0x23,0xBE,0x84,0xD1,0x37,0x25,0x23,0xE3,0x9D,0xA8,0x7B,0xC1,0x9A,0xA4,0xB8,0x61, + + 0x27,0x00,0xFA,0x02,0x78,0xA7,0xB6,0x1A,0xC0,0x49,0x0A,0xE7,0x26,0xB7,0x6A,0xD5, + + 0xC8,0x63,0xA0,0x6E,0xF3,0x45,0x7B,0x4F,0x16,0xF3,0x6E,0xCC,0xC0,0x37,0x10,0x87, + + 0x43,0xD9,0x80,0x4B,0xC4,0x00,0x96,0x55,0x60,0xAC,0x84,0xEA,0x24,0xD5,0x03,0x64, + + 0x29,0xAC,0xD5,0x9C,0x3F,0xA9,0xC1,0xBC,0xE9,0x19,0x18,0xA9,0x85,0xE8,0x66,0xCF, + + 0xF4,0xEF,0x5C,0x8D,0x40,0xD2,0x82,0x09,0xFC,0xDA,0x06,0x4D,0xF4,0x3A,0x81,0x61, + + 0xA9,0x59,0xC4,0xE2,0x8A,0x7B,0xC0,0xB8,0x35,0x1A,0x20,0x18,0x33,0x76,0xC4,0x0E, + + 0xB8,0x1F,0xF8,0x09,0x18,0x31,0x21,0x93,0xA2,0xCB,0x7A,0x49,0xAF,0x1F,0xA2,0x4A, + + 0x2B,0x15,0xFE,0xDE,0x7B,0xE6,0x9F,0xFC,0x2F,0x0E,0x84,0x0F,0x43,0xA0,0xC0,0xA4, + + 0x43,0x2F,0x45,0x31,0x02,0xC5,0x6C,0x18,0x55,0x4C,0x7C,0x27,0x41,0xFF,0x9B,0x79, + + 0xF3,0x1D,0xFA,0x20,0x9B,0xEB,0x1A,0xFD,0xAF,0x1C,0x8D,0x6E,0x10,0x6E,0xB1,0xF1, + + 0x30,0x2D,0xDE,0x37,0x94,0xC2,0xD6,0xC6,0xA5,0x6F,0xE6,0x17,0xBF,0x41,0x1A,0x2C, + + 0xA6,0x20,0x57,0x65,0x52,0xC2,0x46,0xAC,0xAE,0x37,0xAE,0x54,0xAA,0x4C,0xB3,0xF2, + + 0x27,0xC2,0x9F,0xD2,0xFC,0xAF,0x57,0xD2,0x06,0x42,0x91,0xA2,0x3D,0x08,0x3E,0xE0, + + 0xFD,0x5E,0x52,0x68,0xFD,0x62,0x67,0xA8,0xD5,0x6C,0x73,0x92,0x22,0x1E,0x01,0xE2, + + 0xD0,0x3B,0xDA,0xF6,0xA2,0x0B,0x66,0x56,0xAD,0x05,0x63,0x58,0x2E,0xFF,0x9B,0xAC, + + 0xCF,0x32,0xB8,0x5E,0x1B,0x28,0x6E,0x4D,0x37,0x38,0x2C,0x28,0xC4,0xDA,0x47,0xFC, + + 0x79,0x22,0x70,0xB6,0xE6,0xE6,0xCA,0xD2,0xAE,0x69,0x71,0x20,0xF8,0x3A,0x16,0x40, + + 0x75,0x18,0x97,0x6F,0x6B,0x9F,0xAD,0xE0,0x66,0x18,0xEB,0x97,0x3C,0xD6,0x74,0x32, + + 0xE7,0x19,0xDC,0x3A,0xE9,0x0B,0x51,0xDB,0xA8,0x6E,0xA4,0x1A,0xB7,0x29,0x6C,0x2A, + + 0x09,0xA9,0xE7,0x2F,0xBC,0x56,0x0C,0xCB,0xAD,0x89,0xAC,0x4D,0x46,0x48,0x65,0x2E, + + 0x0C,0x1E,0xB5,0xFC,0xF4,0x07,0x6D,0x1C,0xEF,0x65,0x08,0x9E,0xB4,0x45,0xAA,0xD9, + + 0x0E,0xCD,0x95,0xD7,0xB3,0x74,0x93,0xB1,0x1D,0x5F,0x83,0xC0,0x34,0xF1,0x57,0x66, + + 0xB7,0x87,0x39,0x4E,0xE6,0x44,0xCD,0x5B,0xEF,0x33,0x49,0xDE,0x94,0x43,0xDB,0x0F, + + 0xBA,0x86,0xA1,0x21,0x77,0xA0,0x6C,0x4E,0xA4,0x4C,0x36,0xDE,0xFE,0x2D,0xE7,0x4F, + + 0xCA,0x83,0xB8,0x4F,0x98,0x3E,0xC8,0xCE,0x39,0x33,0xE2,0x6D,0xE6,0x43,0xEF,0x5F, + + 0xCB,0x11,0x95,0x63,0x6A,0xCC,0xC0,0xCA,0xA7,0x60,0x20,0x51,0xA0,0xEF,0x27,0x5A, + + 0xD9,0x31,0x08,0x23,0xE1,0xD3,0xE9,0xA6,0xD9,0xBE,0x4F,0xD9,0x1C,0xFD,0x03,0xED, + + 0xFC,0x0E,0xBD,0x65,0x05,0x6C,0xBC,0xA7,0x79,0x7C,0x03,0x87,0x15,0x5E,0x1D,0x7C, + + 0x51,0xF1,0x0E,0x4D,0x0F,0x13,0x53,0x8E,0xE7,0xB2,0x4A,0xD9,0xDA,0x2D,0x7D,0x9B, + + 0xE9,0x2E,0xFB,0xA2,0x5E,0x52,0x77,0x63,0xED,0x7C,0xAF,0xC9,0x9F,0x92,0x42,0xF2, + + 0xA2,0x30,0x76,0xD9,0x5A,0x1F,0x4A,0xCB,0xE9,0x52,0x44,0xFE,0x97,0x97,0x4A,0xAD, + + 0x84,0xD7,0xB4,0xD4,0x5C,0x02,0x7B,0x72,0xAF,0x54,0xF8,0x8B,0x56,0x77,0xF1,0xC4, + + 0x4F,0x4B,0xF4,0x54,0xDD,0x87,0x75,0xA3,0xC6,0xD5,0x0A,0x94,0xB5,0x7C,0x6E,0xAF, + + 0x27,0x27,0x69,0x5A,0x5E,0xDD,0xDD,0xE0,0xCB,0xB3,0xC3,0xAE,0x97,0x7C,0x30,0xE8, + + 0xD7,0x05,0x80,0x4A,0x08,0xBB,0x25,0xC5,0x0D,0x98,0xC8,0x8B,0xB4,0x60,0x04,0x4A, + + 0x8E,0x11,0x0B,0x6F,0x59,0xAF,0x58,0x4B,0x5D,0xD2,0xAF,0xA0,0xBB,0x0D,0xF3,0x71, + + 0x45,0x62,0x22,0x87,0xD7,0x1B,0x6F,0x73,0x87,0x3B,0xA2,0x91,0x90,0x0F,0x2E,0x68, + + 0x67,0x30,0x8F,0x32,0xD6,0x1A,0x19,0x7A,0xD9,0xD8,0x59,0xCD,0x16,0x5D,0x40,0xFA, + + 0xAA,0x38,0xB6,0xAC,0x7A,0x67,0x48,0x94,0xA6,0x21,0x09,0x9C,0x1C,0xA9,0x16,0xFD, + + 0xC6,0x60,0xEC,0x22,0x87,0x46,0x5E,0xE3,0xA7,0x5C,0x69,0xFF,0x94,0xFE,0xF3,0xCC, + + 0x47,0x43,0xD2,0x32,0x3F,0xBA,0x0F,0x6F,0xBE,0x07,0xDA,0x90,0x67,0x55,0x17,0x4A, + + 0x97,0x32,0xE7,0xC1,0xDB,0x4B,0xDF,0xE8,0xC3,0xBB,0xDA,0x5E,0x7F,0xCF,0x5E,0x3D, + + 0x08,0xAB,0x04,0x00,0x04,0x58,0xB8,0xAA,0x2B,0xD4,0x69,0x03,0xF1,0x1F,0x52,0x3F, + + 0x7D,0x54,0x08,0x1D,0xB8,0xA0,0x46,0x3F,0x0D,0x0F,0xC0,0x24,0xBA,0x19,0x51,0x2F, + + 0xEB,0x21,0x93,0x31,0xB3,0x42,0x11,0x32,0xD9,0xF6,0x3D,0xA1,0x80,0x8F,0x59,0x3A, + + 0xAB,0x41,0xE2,0x75,0x9D,0x63,0x78,0xC1,0xC9,0xE2,0xB9,0x6C,0xAE,0x43,0xF8,0xBF, + + 0x20,0xA9,0xB1,0x59,0xFA,0xD4,0x52,0x9A,0xA6,0xDB,0x74,0x95,0xF1,0x24,0xC8,0xAC, + + 0x03,0xD1,0x07,0x49,0x1E,0xD5,0xFB,0x9F,0x65,0x1A,0xE2,0xF3,0xA4,0xEE,0x43,0xBD, + + 0x8A,0x02,0xA1,0x58,0xA1,0xD6,0x58,0x8E,0x7F,0x39,0xEE,0xE1,0x82,0x79,0x03,0x2E, + + 0xC0,0xF5,0xDF,0x48,0xDB,0xF7,0xB7,0x9F,0xB0,0x18,0xDD,0xF2,0x2C,0x27,0x01,0x4D, + + 0xF7,0x6B,0x03,0xC1,0x2B,0x57,0x46,0xDB,0x62,0xC5,0x49,0x38,0x23,0x6E,0x1C,0x7A, + + 0xF6,0xD4,0x32,0xEF,0x54,0x3B,0xAF,0x05,0xFE,0x7C,0x8A,0x5E,0xEA,0x0C,0x65,0x6B, + + 0x7F,0xF7,0x3B,0xFE,0x8D,0x38,0x45,0x89,0x23,0x49,0xC8,0x2D,0x5A,0x22,0xDF,0xE7, + + 0x74,0xAA,0x33,0xEE,0xC4,0x39,0x4F,0xBD,0x99,0x23,0xA3,0xD6,0x75,0x66,0x3C,0x84, + + 0x39,0x33,0x7E,0x50,0xE4,0xFC,0xC6,0x83,0xDF,0x73,0xD1,0xD0,0x92,0x64,0xF2,0xAB, + + 0x10,0x16,0xC4,0x40,0x01,0x9D,0x70,0x92,0x36,0x52,0x84,0x9E,0x5F,0xD0,0xFB,0xBA, + + 0x99,0x1C,0xA2,0x51,0xB9,0xFE,0x0F,0x82,0xDC,0x51,0x73,0x7E,0xA4,0x0A,0xB1,0x3F, + + 0x60,0xC5,0x76,0x44,0x2D,0x9F,0x9E,0x8E,0x5A,0xA0,0x1B,0x65,0x68,0xE2,0x95,0x16, + + 0xE8,0x61,0x68,0x86,0x38,0x5C,0x05,0xB3,0x0C,0x14,0xAA,0x65,0x18,0x3A,0x52,0x02, + + 0x29,0xB5,0x4F,0xD3,0x3F,0x9E,0x62,0x80,0xCD,0x5C,0x8A,0xE8,0x9A,0xB9,0xE3,0x70, + + 0x6A,0x32,0x65,0x8C,0x4D,0xB8,0x33,0x95,0x6C,0x5F,0xEB,0xED,0x19,0xCA,0x1F,0x0F, + + 0x69,0xB2,0x83,0x17,0x05,0xB8,0x63,0x80,0xC3,0x85,0xA3,0x74,0x7E,0xD5,0xC0,0xD3, + + 0x29,0x1E,0x9A,0xCD,0x5E,0x24,0x15,0x06,0xC3,0x1B,0xB7,0x60,0x72,0xB4,0x4C,0xD2, + + 0x21,0x2E,0x9A,0xC1,0x96,0xD5,0x56,0x16,0x21,0x7A,0xE6,0x51,0x84,0x88,0x63,0x98, + + 0xF3,0x58,0xAC,0xCD,0x7E,0x26,0xE4,0x07,0x85,0x19,0xEA,0xD5,0xFA,0x89,0xB7,0xD8, + + 0x0E,0x9E,0x6E,0xC0,0x89,0xF7,0x63,0x12,0x59,0x78,0xCB,0x97,0x0C,0xAA,0xE1,0x79, + + 0xF2,0x08,0xBE,0x2C,0xD5,0xB8,0x69,0x30,0x6C,0x48,0x5E,0xEC,0x38,0x8D,0x1F,0xAE, + + 0xE1,0x28,0x26,0x84,0xBB,0x6C,0x14,0x7A,0xEA,0x1F,0x56,0xA3,0x60,0x62,0x3D,0x7A, + + 0x7A,0xBE,0x6F,0x95,0x38,0x7A,0xC5,0x30,0xEC,0xBA,0xDB,0xAF,0xFC,0x8F,0xB9,0x68, + + 0x41,0x1F,0xD5,0xFF,0x9B,0xF6,0xA8,0x9D,0x68,0x56,0xE7,0xCF,0x5E,0x7F,0xB3,0x28, + + 0x6A,0x2E,0x7A,0xD8,0xA6,0xFC,0xF1,0x0B,0x0F,0x73,0x02,0x12,0x93,0x74,0xCE,0x1E, + + 0x2F,0x1B,0xEE,0xCD,0x5F,0xBD,0xA7,0x1A,0xFC,0x52,0x09,0x40,0x90,0x19,0xFB,0xB9, + + 0x1E,0x15,0x13,0xDC,0x2D,0x9E,0x5F,0x0A,0xB8,0x51,0x40,0x1E,0x7E,0xD3,0x47,0xB7, + + 0xC8,0x3F,0x62,0xCD,0xC6,0xBF,0x2C,0x1B,0x4B,0x50,0xE5,0x7A,0x10,0xB9,0xB6,0xF1, + + 0x68,0x5D,0x18,0xF9,0x1A,0xE6,0xCF,0x87,0x8E,0xCD,0x49,0x01,0xF5,0x9F,0x0E,0x27, + + 0x81,0x2E,0x2C,0xD1,0x95,0x81,0xC7,0x4C,0x6B,0x1E,0xE0,0x97,0x3E,0x99,0x77,0x37, + + 0x6F,0x43,0x22,0x78,0xB6,0x4F,0xCA,0x5C,0xAC,0xCF,0x1D,0xA3,0x84,0x0F,0x8D,0x71, + + 0x6E,0x02,0x05,0x91,0x85,0x5E,0x86,0x02,0xA9,0x6C,0xBD,0x35,0xA5,0xF8,0x61,0x24, + + 0xED,0x6E,0xC1,0x5F,0x55,0x14,0xAA,0x95,0x2E,0x0B,0x14,0x95,0x90,0x6F,0x22,0xF2, + + 0xA6,0x95,0xDB,0x4E,0x34,0x35,0xAD,0x81,0xE4,0x6A,0xA6,0xE5,0x47,0x68,0x31,0x4B, + + 0x90,0x2B,0x22,0x5F,0x73,0x36,0x9B,0x95,0x56,0x09,0xF5,0xE0,0x3D,0x00,0x4F,0x97, + + 0x84,0x84,0x3D,0x5A,0x74,0xD7,0xCB,0x80,0x9C,0x68,0x87,0xE5,0x6A,0x18,0x96,0x68, + + 0xE7,0x29,0xF2,0x78,0x10,0xC6,0xA4,0x54,0x26,0x09,0x4F,0x48,0xB7,0xC2,0x48,0x1A, + + 0x0E,0xE9,0x2F,0xF6,0xAE,0xE4,0x2C,0x13,0xA6,0xF8,0xFB,0x58,0xB6,0x51,0x10,0x5E, + + 0x7D,0xE4,0x83,0x0E,0x11,0xEC,0x4D,0x1F,0xAF,0xDA,0xF2,0x49,0x37,0xA0,0xAB,0x13, + + 0x46,0x2F,0x54,0xBF,0x74,0xCB,0x01,0x8A,0xFD,0x64,0xFA,0x59,0x36,0x33,0x61,0x42, + + 0x8E,0x8E,0x16,0x43,0x35,0xDC,0xB0,0x98,0xC5,0x43,0x5E,0x9E,0x5C,0x1A,0x69,0x4B, + + 0xC7,0x55,0xDA,0x52,0x0C,0xFD,0xFB,0x9D,0xD2,0xA2,0xFA,0x8D,0x89,0x46,0x45,0x8A, + + 0x8D,0x8D,0xF4,0x43,0x73,0xFE,0x54,0x99,0xDB,0x41,0x8D,0xF0,0x3F,0x68,0x60,0x59, + + 0x9F,0x8B,0x68,0x56,0x1A,0x9F,0xD8,0x9C,0xC8,0xA0,0x9C,0x77,0x3E,0x40,0x1A,0xD7, + + 0x4F,0x9F,0xA6,0x40,0x20,0xB4,0x1C,0x40,0xE5,0xB4,0x6D,0x4E,0xCB,0xBD,0x12,0xB6, + + 0x06,0x13,0x1D,0x66,0x94,0x3B,0x62,0x70,0x75,0xD7,0x43,0x16,0x98,0x91,0x24,0xB1, + + 0x4F,0x17,0x25,0xC1,0xA0,0xB4,0x1D,0xA5,0x65,0xDC,0xCB,0x76,0xE6,0xBF,0x13,0xB6, + + 0x85,0x9E,0x7A,0x75,0xCA,0xB3,0x35,0x4C,0x44,0xD2,0x51,0xB5,0xFD,0x9F,0x1C,0x62, + + 0xD9,0x2B,0x24,0xC3,0xDC,0xD4,0xD2,0x00,0x1B,0xDB,0xAE,0xE7,0xF8,0x5B,0x04,0xD5, + + 0xA4,0x9A,0x0D,0xD2,0x09,0x95,0xAA,0x10,0x57,0xDA,0xC6,0x05,0xB5,0x09,0x0D,0x01, + + 0x25,0xD2,0x2B,0xC3,0x0D,0xF6,0xBC,0x01,0xAB,0xD9,0x13,0x16,0x3C,0xE6,0x05,0xB1, + + 0x81,0x97,0x86,0xD6,0xC4,0xD9,0x3E,0x11,0xE1,0xD5,0x40,0xA8,0x1C,0x21,0xA1,0xCC, + + 0xBE,0x33,0x7D,0x9A,0x47,0xBE,0x0E,0xAF,0x68,0x88,0x56,0xB7,0x81,0xFB,0x09,0x6B, + + 0xB1,0x59,0xBE,0xFC,0x8E,0xDC,0x7C,0x5A,0x61,0x99,0x9E,0xBA,0x02,0xF9,0x04,0x8B, + + 0x64,0xA2,0xFC,0x8F,0x3E,0xF2,0x2D,0x43,0x0F,0x97,0x0D,0xBF,0x83,0xDA,0xC7,0x11, + + 0x2D,0x2B,0x97,0x74,0x11,0xB6,0x3A,0x84,0xAF,0xD0,0x18,0x7A,0xCE,0xA4,0x66,0x35, + + 0x8E,0x63,0xA6,0xF1,0x36,0xD0,0x76,0xF7,0x91,0x2C,0x51,0x71,0x15,0x4A,0x4E,0x24, + + 0x07,0x22,0x49,0x9E,0x82,0xB6,0xC5,0xE7,0x8E,0x2D,0x4C,0xA1,0x14,0x18,0x6F,0x35, + + 0x0F,0x41,0xCF,0x0D,0x6A,0x4D,0x8A,0xF6,0x09,0x2E,0xF6,0x1C,0x2C,0x55,0x43,0x20, + + 0x8A,0x20,0xA9,0xC0,0x3B,0x6B,0x91,0xE6,0x76,0x2F,0xC7,0x0E,0x17,0xFB,0x5E,0x32, + + 0x40,0x4C,0x24,0xF7,0x9C,0x61,0x28,0x88,0xE3,0x01,0xB9,0x77,0xD4,0x7C,0x2F,0x11, + + 0x6A,0x75,0xB2,0xE2,0x82,0x9E,0xB8,0x3E,0xCD,0x4C,0xE0,0x13,0xC0,0xCD,0x60,0xF2, + + 0x50,0xA9,0x29,0x3A,0xA3,0xDD,0xE4,0x20,0xD4,0x76,0x38,0x76,0x5C,0x3E,0x8F,0xD7, + + 0x13,0x00,0xD7,0x37,0x4C,0x88,0x67,0xD3,0x6D,0x4E,0x39,0x7F,0x44,0xCF,0x48,0xF7, + + 0x61,0x24,0x48,0x41,0x71,0xD4,0xD2,0x0F,0x63,0x85,0xC0,0x84,0x1A,0x64,0x30,0x74, + + 0x8C,0x07,0xF0,0x04,0x17,0x2A,0x59,0x83,0x89,0xEE,0xB0,0xB6,0xD5,0x90,0x39,0xC3, + + 0x83,0x71,0xB9,0xC7,0x97,0x66,0x7B,0xB1,0x61,0xCE,0x8F,0x72,0xDA,0x66,0xFE,0x50, + + 0x0E,0x0B,0xF1,0x85,0x64,0x28,0x3E,0x79,0xA8,0x82,0x49,0xF1,0x8F,0x7C,0xE1,0xF3, + + 0x63,0xAE,0xA7,0x0C,0x73,0x0C,0x82,0xE8,0x0C,0xAC,0x36,0x62,0x87,0x55,0x54,0x2E, + + 0xD4,0xA2,0x0A,0x00,0xBA,0xA4,0x8A,0x97,0xBE,0xA9,0xC4,0x18,0x59,0xC2,0x0A,0xF8, + + 0x52,0x1A,0x7C,0x09,0xC0,0x40,0x6B,0x20,0x25,0x78,0x78,0x5A,0x58,0xBD,0xBD,0x7B, + + 0xE2,0xAE,0x6F,0x3A,0x2A,0xA6,0xA7,0xCA,0x6A,0x7B,0x0F,0x99,0x5C,0x2B,0x2A,0x56, + + 0xCC,0xF8,0xA2,0x08,0x56,0xA7,0xFD,0x99,0xA6,0x41,0x92,0x6C,0x5E,0x68,0x14,0xCA, + + 0x0F,0x80,0x48,0x3E,0x5A,0x6D,0x68,0x68,0xCE,0x5B,0x9A,0x78,0x5F,0x69,0xA5,0xB8, + + 0x40,0x4E,0x44,0xAF,0x18,0x66,0x0D,0x5A,0x4A,0xE5,0x57,0xE9,0x86,0xCF,0x35,0xC7, + + 0x60,0xF9,0xB3,0x3F,0xD8,0xF0,0x05,0x63,0xCB,0xE4,0xA3,0xF9,0x83,0x79,0xE4,0xBF, + + 0x04,0x67,0x86,0x76,0x77,0x34,0x2C,0x84,0x63,0x60,0x1D,0xB4,0xD3,0xCB,0xAD,0x97, + + 0x80,0x50,0xB6,0x96,0x2D,0x11,0xBE,0x52,0x71,0x9C,0x9C,0x48,0xF0,0x33,0x01,0x95, + + 0x38,0x56,0x81,0xD1,0x57,0xCC,0x28,0x90,0x64,0x4D,0xB5,0x5D,0xF0,0x89,0x45,0x95, + + 0x4C,0x52,0x0D,0x85,0xA1,0x31,0x8D,0x1E,0x16,0x03,0x1E,0xB9,0x0C,0xD2,0x67,0x31, + + 0xBE,0x54,0x04,0xD4,0x37,0x30,0x94,0xFD,0xC6,0xFF,0xD4,0xE4,0x72,0x74,0x33,0xA3, + + 0xC9,0xBD,0xCC,0xE0,0x00,0x3A,0x23,0x01,0xDC,0x07,0xDC,0xF4,0x73,0x75,0xAD,0x4B, + + 0x80,0xC0,0xC3,0xFA,0xF9,0x74,0xA8,0xF9,0xC0,0x49,0xD5,0xE5,0xF2,0x76,0x3F,0x31, + + 0xE7,0x9C,0x97,0xD0,0x14,0x76,0xF2,0x8A,0x3E,0x8B,0xDD,0xF5,0xF3,0x77,0xF3,0x76, + + 0x2C,0x75,0x96,0xCC,0xB8,0x3E,0x2B,0x99,0xEC,0x47,0x02,0x5F,0x54,0xA5,0xAA,0xEA, + + 0xA7,0x58,0x8A,0x1B,0x18,0xAE,0xA6,0x9C,0x80,0x3D,0xFE,0xFC,0x64,0xF2,0x97,0x82, + + 0x2C,0x4E,0x00,0x3B,0x59,0xE1,0xAF,0x5A,0x4B,0x4A,0xC1,0x89,0x13,0x3B,0xB0,0x82, + + 0x0A,0x9E,0x3B,0x62,0xFA,0xC8,0x8E,0x4A,0x65,0x66,0x1B,0x5F,0x7B,0x73,0x6D,0x26, + + 0x95,0x18,0xA6,0xAC,0x70,0x31,0x6D,0xB6,0x6C,0xAC,0xD6,0xEC,0x7A,0x7C,0xB9,0x87, + + 0x96,0xE1,0x30,0x5E,0xE6,0x82,0x0E,0x12,0x90,0xF6,0xDE,0xFC,0x7B,0x7D,0x45,0xE7, + + 0x5C,0x6B,0x6B,0x5F,0xBB,0x34,0xE7,0x18,0x55,0x8E,0xD7,0xED,0xFA,0x7E,0xE4,0xB7, + + 0x7E,0x11,0xF7,0x23,0xDB,0x33,0xA2,0x61,0x80,0x20,0xDF,0xFD,0xFB,0x7F,0x00,0xF3, + + 0xE4,0x00,0x44,0x21,0x15,0xC0,0x8C,0xAB,0x60,0xF4,0x8E,0x03,0x1E,0x81,0x28,0xE3, + + 0xDD,0xA1,0xA9,0xC9,0xF6,0xA5,0xDC,0xC1,0xE6,0x4A,0x86,0x13,0x1C,0xA0,0x89,0x89, + + 0xEF,0x16,0x5B,0x05,0x9C,0xED,0x91,0x2D,0x48,0x4F,0xE9,0x23,0x9E,0xA3,0x77,0x1C, + + 0xD7,0xCD,0xBC,0x65,0x1B,0xC6,0x3D,0xB4,0xE1,0xB4,0xE1,0xD1,0x57,0xEB,0x3E,0xD9, + + 0x16,0x2B,0x98,0xC2,0x4A,0x10,0x57,0x63,0x2D,0xB0,0xD0,0x09,0x82,0x3B,0xDE,0xA3, + + 0xEF,0xD5,0xB8,0x4A,0x01,0x10,0x9B,0x89,0xC5,0x39,0xAD,0xD6,0xA0,0x85,0x02,0xB0, + + 0x62,0x29,0x71,0xE7,0x8E,0xE7,0x32,0xA5,0x54,0xC5,0x56,0x98,0xBD,0x99,0x17,0x61, + + 0x02,0x91,0x20,0x68,0xDC,0xE5,0x41,0x54,0x6B,0xCA,0xA7,0x98,0x97,0x4C,0x43,0xAA, + + 0xDA,0x37,0xDB,0xDE,0x50,0x29,0x36,0xAA,0xA5,0x8C,0x76,0x4C,0x1D,0xF8,0x9E,0x78, + + 0xFA,0xEC,0x80,0xCE,0x41,0x21,0x9E,0x96,0xA6,0xAD,0xC2,0xBC,0x5C,0x91,0x43,0x54, + + 0x2D,0xEF,0xA0,0x45,0x11,0xC9,0x26,0xD8,0x48,0x67,0xCB,0x4D,0x9D,0xE8,0x13,0xE4, + + 0x0E,0x85,0xBB,0x55,0x11,0xA3,0x03,0xC8,0x6E,0xAE,0x81,0xDD,0x5F,0xE3,0x5D,0x14, + + 0xFF,0x50,0x64,0xCE,0xF7,0xF4,0x89,0x4D,0xEF,0x33,0x0F,0xEA,0x35,0x93,0xC1,0xFF, + + 0xDA,0x93,0xAE,0x2D,0x08,0xC1,0xEA,0xBD,0x4D,0x38,0xFA,0x7E,0x79,0xED,0x3A,0x5F, + + 0x03,0xED,0xA1,0x3E,0xD5,0xA5,0x1B,0xA9,0x48,0x3B,0xB5,0x4B,0xD6,0xEF,0x16,0xA8, + + 0x57,0x5B,0x89,0x5B,0x9E,0xFF,0x7F,0x3C,0x4E,0xC1,0xFB,0x7F,0xDF,0xEF,0x15,0x60, + + 0xF9,0x04,0xF4,0xF5,0x2C,0x3A,0xD0,0x51,0xC7,0xB5,0x3D,0xD4,0xD7,0x5D,0x0B,0x70, + + 0xC5,0x40,0x18,0xF6,0x3D,0x61,0xDB,0x41,0xC6,0x8C,0x87,0x56,0x35,0x7A,0x5D,0xB1, + + 0x94,0x4E,0x62,0x79,0x55,0xD4,0x08,0x24,0xC0,0xAF,0x21,0xF6,0xD0,0xE9,0xD6,0xB7, + + 0x6C,0x9C,0x02,0x47,0x34,0x12,0xDE,0xF7,0x46,0xEE,0x08,0xB5,0xF1,0x78,0x0C,0x44, + + 0xDA,0xD5,0x9A,0xC0,0xD7,0x37,0xF0,0x13,0xD9,0xD7,0xF4,0xE6,0x76,0xF4,0xC0,0x90, + + 0xA4,0x41,0x94,0xA8,0x77,0x3F,0x87,0xCD,0x98,0xDB,0xFC,0xF6,0x77,0xF5,0x89,0x43, + + 0x5A,0xB6,0xCA,0x34,0x3A,0x4B,0x25,0x09,0x1D,0x03,0xF5,0xE7,0xF6,0xF6,0x8F,0xCC, + + 0x69,0x3C,0x3A,0x55,0x6A,0x08,0x15,0x75,0x1B,0x96,0xFD,0xF7,0xF7,0xF7,0x5F,0xAD, + + 0x8D,0x89,0x9E,0xEE,0x8C,0xB0,0x51,0xEE,0xCF,0xC5,0x54,0x48,0x6C,0xB7,0x10,0x9C, + + 0x67,0xDD,0x57,0xEC,0xB3,0xDC,0x0C,0x8B,0xE9,0x76,0xF4,0x49,0xDE,0xF4,0x5F,0xD8, + + 0x0F,0x85,0xD6,0xFD,0x32,0xDF,0x54,0xFA,0x4F,0x9B,0xD7,0xEF,0xF2,0xF7,0x77,0x9F, + + 0xE7,0xFF,0xD6,0xED,0x33,0xDE,0x9F,0xC8,0x4E,0x78,0xF5,0xC0,0x5E,0xFD,0x00,0xC2, + + 0xCF,0x33,0x9E,0x4C,0x1F,0xCE,0xDE,0xD5,0x05,0xCB,0xF6,0xEE,0x7E,0xFC,0x89,0x2B, + + 0xF5,0x8D,0x02,0x5E,0xC3,0x9D,0x24,0xFB,0xCC,0x93,0xFE,0xFE,0x7F,0xFD,0x05,0xD1, + + 0x78,0x2A,0xBD,0xCE,0x1D,0xFF,0x73,0x69,0xEF,0xB1,0xF7,0xEF,0xFE,0xFE,0x11,0x41, + + 0xA9,0x9F,0x43,0x9D,0x3C,0x12,0x4E,0x3D,0x13,0xD9,0xFF,0xFF,0xAF,0xB9,0x80,0x00, + + 0x0C,0x4C,0x04,0x00,0x18,0x2E,0x6F,0xD8,0xC1,0xBF,0x43,0xCC,0x56,0xBD,0x51,0xEF, + + 0xE0,0xCE,0x90,0x11,0x15,0x01,0x47,0x32,0x32,0x41,0x45,0x36,0x2A,0x61,0xB6,0x85, + + 0xC0,0xB8,0x35,0x67,0xF1,0x38,0xEA,0xA5,0xC4,0x54,0x6B,0x2D,0x2D,0xAD,0x60,0xEA, + + 0xEA,0x06,0xE1,0x97,0x90,0x5B,0xC6,0x31,0xB6,0x4F,0xC2,0xB7,0xAE,0x63,0x38,0xC2, + + 0x01,0xE2,0x00,0x44,0x62,0xD1,0x22,0x80,0x06,0xCF,0xA8,0xE6,0x57,0x5D,0x31,0xB8, + + 0x09,0xCE,0xEE,0x59,0x97,0x81,0x5A,0x5E,0xB5,0x30,0x50,0xB1,0xF2,0xEF,0x79,0x31, + + 0x9A,0x0F,0xC4,0xC1,0x92,0xB7,0x7A,0x8F,0x7D,0x42,0xA9,0x42,0x71,0x60,0x4D,0xB9, + + 0x89,0xCA,0x48,0x52,0xEC,0x23,0xAE,0x2E,0x7E,0xBB,0x22,0x97,0x72,0xED,0xA9,0xE0, + + 0x08,0xF3,0xD8,0x09,0xBB,0x53,0xD2,0x2C,0x3E,0x53,0x49,0x6C,0x5E,0x28,0xE5,0xE2, + + 0x62,0x99,0xEA,0xE1,0x19,0xF2,0xA5,0xCE,0xCB,0x43,0x9A,0xC1,0x59,0xB2,0x03,0x7B, + + 0x2F,0x1A,0xC3,0xF4,0x98,0xB1,0xD3,0x57,0x2F,0x5A,0xF2,0xD4,0x58,0xF1,0x24,0xE8, + + 0xD1,0x0E,0xEA,0x99,0x9D,0x3D,0xFD,0xC9,0x8D,0x44,0xFB,0xB9,0xDD,0xB8,0x1A,0xA7, + + 0x0C,0x0C,0x19,0x44,0x9D,0x2B,0xF9,0x06,0x9F,0x42,0xAD,0x8E,0x87,0xB1,0x58,0xDC, + + 0x4B,0xA5,0xBA,0x82,0xF4,0x6F,0xF9,0x70,0x97,0x7D,0xBA,0x3C,0x75,0xE6,0x16,0x29, + + 0xEE,0x05,0x73,0xFF,0xB4,0x62,0x3B,0xEF,0x36,0x0F,0x7C,0xE9,0xD6,0x98,0x71,0xB6, + + 0x70,0x90,0xCB,0xE4,0x44,0x20,0x78,0x75,0x13,0x3F,0xDF,0x9F,0xFF,0xD3,0x04,0x80, + + 0x78,0xF8,0x84,0x7C,0xB2,0xCB,0xAB,0x94,0x87,0x42,0xEC,0x83,0x13,0x58,0xDE,0xB0, + + 0x26,0xE9,0x0C,0x1E,0x4A,0x38,0xA6,0x38,0x24,0x58,0xE4,0x93,0x12,0x69,0x4F,0x28, + + 0x82,0x11,0x85,0x79,0x10,0x70,0xAE,0x15,0x07,0x42,0xED,0x82,0x93,0x18,0x02,0x1D, + + 0xDA,0x02,0xD6,0x95,0xCE,0x33,0x1C,0x33,0xE8,0xBE,0xE5,0x92,0x10,0x7C,0xF3,0xC1, + + 0xAF,0x18,0xC4,0xFC,0xCE,0x64,0xBB,0x0E,0xE7,0xF3,0x60,0x9B,0xD1,0xC9,0xAA,0x21, + + 0xE9,0x55,0x49,0x50,0x33,0xA4,0xDD,0xF7,0x14,0x51,0xBC,0xB0,0x4E,0x7A,0x2D,0xDF, + + 0x64,0xE2,0x05,0xC5,0xC2,0xC3,0x73,0xEC,0x66,0xF2,0x11,0x60,0xB1,0x85,0x13,0x43, + + 0xA7,0x9A,0xEB,0xDC,0x37,0x93,0x82,0xE1,0x64,0x50,0x4D,0xEB,0xE3,0x83,0xD9,0x89, + + 0x2E,0x78,0x5D,0x0E,0x3E,0x78,0x4C,0x47,0xCB,0x5C,0xF6,0xE8,0x0C,0xF5,0x6E,0x58, + + 0xE7,0x92,0x74,0x94,0xC4,0xF6,0x26,0xC8,0x24,0x50,0xE6,0x3E,0x7A,0x9F,0x19,0xFB, + + 0x43,0x18,0x54,0x65,0xBE,0xE7,0xEC,0x2B,0x68,0x9B,0xEF,0x2F,0xF9,0x22,0x0D,0x7B, + + 0x2B,0x33,0x04,0xFD,0xA9,0x3D,0x9B,0xBD,0xE1,0x55,0xA7,0xCD,0xB5,0x72,0x38,0x56, + + 0xC1,0xEA,0xC7,0xCB,0x9B,0x59,0xE6,0x5A,0x44,0x19,0xD3,0x2A,0x90,0x30,0x2D,0x2B, + + 0xCF,0xB2,0x23,0x36,0xBE,0x3A,0xB1,0x0A,0x6D,0x5D,0x76,0x5F,0x04,0x7C,0x19,0x52, + + 0xBA,0xB1,0x38,0x49,0xBA,0xAF,0xA1,0x4C,0x6F,0x59,0x27,0x69,0xBA,0xD6,0xF9,0x28, + + 0x43,0x4F,0x27,0x7E,0xBD,0x5F,0x08,0x27,0x12,0x21,0x1F,0xFD,0x8B,0xF2,0x7E,0x1F, + + 0x54,0x2B,0xFF,0x86,0x67,0xA0,0x50,0x62,0x59,0x4B,0xE9,0xA3,0xA9,0x21,0xD7,0x16, + + 0x05,0x59,0x68,0x12,0x63,0xBA,0x67,0x32,0x36,0xCD,0x42,0x3E,0xB0,0xF3,0x04,0x03, + + 0xEF,0xA6,0x7E,0x07,0xE3,0xA4,0x35,0xC1,0xFB,0xC6,0x4B,0xAF,0x21,0x21,0x96,0xEE, + + 0x95,0xE0,0x69,0x69,0x72,0xB3,0xE6,0x33,0xB2,0xCB,0x33,0x57,0xC5,0xE5,0x9F,0xBC, + + 0x00,0xC4,0x0D,0x3C,0x93,0xA3,0x98,0xD1,0xC3,0x83,0x4F,0x3D,0xAF,0x6E,0x13,0xAD, + + 0xF0,0xC7,0xE9,0x49,0x0F,0x31,0xB8,0x72,0x37,0x30,0xCA,0x89,0xD5,0xAD,0xDB,0x31, + + 0x39,0x39,0x09,0xE4,0xB2,0x72,0xD9,0xC0,0xB9,0xB5,0x75,0x96,0x75,0xE4,0xED,0x66, + + 0x66,0x78,0x68,0x4C,0x8B,0xE9,0x39,0xF7,0xC7,0x56,0xD9,0x15,0x60,0x82,0xC2,0xBC, + + 0x8B,0x8F,0x1D,0xF8,0x49,0xA1,0xF2,0x2E,0xDE,0x73,0xBE,0x59,0x3F,0x97,0xBA,0x1E, + + 0x10,0x0B,0xF0,0xF1,0xBE,0xAD,0x3A,0xC6,0xCC,0x8B,0x9A,0x0A,0x3E,0x21,0x8B,0xA9, + + 0x53,0x65,0xA2,0x8D,0x95,0x47,0x13,0xD3,0xCC,0x31,0xCB,0x2D,0x2B,0xEC,0xBB,0xF9, + + 0x21,0xCA,0x50,0xF2,0xBC,0x10,0xBB,0x87,0xFE,0xA9,0xC3,0x18,0xBE,0x73,0x99,0xCE, + + 0x02,0x30,0x94,0x08,0xB8,0xEE,0xC5,0x62,0x48,0xCC,0xCA,0xBE,0x83,0x93,0x68,0x63, + + 0x09,0x8D,0x35,0x5A,0x19,0xAD,0x7A,0x42,0x30,0xDD,0x47,0x23,0xA0,0xEB,0xA3,0x5B, + + 0xCC,0xCC,0xE1,0x1E,0x1B,0x89,0x60,0x54,0xD6,0x8C,0x4A,0x3E,0x7D,0x31,0x3C,0x7F, + + 0x00,0x8D,0xF8,0x2D,0x60,0xED,0x93,0xD9,0x4A,0xC8,0x73,0x7D,0x2A,0xE0,0x80,0xE0, + + 0x65,0x10,0xA8,0xF1,0x57,0xCF,0x80,0xC0,0x05,0x28,0xCD,0x24,0x7D,0x96,0x76,0x93, + + 0x86,0x97,0xEC,0x97,0x0A,0xB5,0x54,0x95,0xC4,0x58,0xDC,0xF7,0xB9,0x7A,0x5D,0x01, + + 0xA1,0x63,0xDD,0x85,0x43,0x19,0x2D,0xA6,0xE0,0xF2,0x8D,0xF7,0xF0,0xFD,0xA5,0xAF, + + 0x06,0x95,0xF2,0x97,0xC6,0xB5,0xB2,0xD3,0xE9,0x93,0xB9,0x55,0x77,0xF9,0x1A,0xF0, + + 0xA3,0x82,0x99,0x42,0x76,0x9E,0x49,0xA4,0xC4,0x9A,0x0B,0x62,0x76,0x65,0x35,0xC6, + + 0xAA,0xF6,0x53,0x46,0x16,0x85,0xDB,0xFB,0xB7,0x85,0xEF,0xC9,0x6F,0xB7,0x5A,0x9D, + + 0x57,0x4A,0x75,0x99,0x4F,0x6A,0x01,0xC7,0x32,0xC6,0x42,0xEF,0xF0,0xF6,0xC6,0x76, + + 0x72,0x89,0xEF,0x37,0xCB,0xB1,0x5A,0xFE,0x60,0x70,0xFD,0xCF,0x72,0xF0,0x6E,0x1D, + + 0x4F,0x38,0x9C,0x71,0xCB,0xFA,0x32,0x68,0xC0,0xD5,0x50,0xCC,0x1D,0xE8,0x74,0x9B, + + 0x8E,0xFC,0xF5,0x9E,0x42,0xB9,0xBE,0xBB,0xEE,0xBC,0x1A,0xDC,0x3E,0x86,0x5F,0x09, + + 0xAD,0xC2,0x27,0x05,0xC7,0xBE,0x2D,0xFB,0xCD,0xBA,0xAF,0x45,0x7E,0xD2,0x15,0x79, + + 0x92,0x9F,0x74,0x1D,0xBB,0xFB,0x07,0xCB,0xF4,0xD2,0xC7,0xDD,0xBC,0xEB,0x1B,0x39, + + 0xF6,0x48,0xEE,0x6B,0xDF,0xB3,0xDE,0x4C,0xEB,0xFB,0x1E,0x4D,0x78,0x9C,0x86,0x50, + + 0x0D,0x4B,0xD6,0x0E,0xE0,0xB2,0x6D,0x88,0x90,0x9F,0x6E,0xB8,0xD5,0x06,0x44,0x3A, + + 0x32,0xDE,0x77,0x4D,0xBB,0xD4,0xA8,0xEE,0xE8,0xDE,0x8A,0x6B,0xBE,0xD4,0x10,0xA8, + + 0x45,0x37,0x8F,0x9B,0xCE,0x32,0x7F,0xC3,0x13,0xCF,0xF9,0x7B,0xFF,0x6E,0xDF,0x15, + + 0x87,0x07,0x80,0x04,0x10,0x20,0x10,0x20,0x40,0x40,0x90,0x24,0x50,0x60,0xE0,0xB2, + + 0xA5,0x86,0x88,0x14,0x11,0x21,0x18,0x30,0x41,0x41,0x98,0x34,0x51,0x61,0xA9,0xA3, + + 0x5F,0x5D,0x81,0x05,0x90,0x22,0x11,0x21,0xC0,0x42,0x91,0x25,0xD0,0x62,0xE9,0x11, + + 0x04,0x04,0x89,0x15,0x91,0x23,0x19,0x31,0xC1,0x43,0x99,0x35,0xD1,0x63,0x40,0x40, + + 0x02,0x04,0xC0,0x44,0x12,0x24,0x50,0x60,0x42,0x44,0xD0,0x64,0x52,0x64,0x48,0x50, + + 0x03,0x05,0xC8,0x54,0x13,0x25,0x58,0x70,0x43,0x45,0xD8,0x74,0x53,0x65,0x41,0x41, + + 0x82,0x06,0xC1,0x45,0x92,0x26,0x51,0x61,0xC2,0x46,0xD1,0x65,0xD2,0x66,0x49,0x51, + + 0x83,0x07,0xC9,0x55,0x93,0x27,0x59,0x71,0xC3,0x47,0xD9,0x75,0xD3,0x67,0x12,0x08, + + 0xED,0x49,0x82,0x0C,0x18,0x28,0x12,0x28,0x48,0x48,0x92,0x2C,0x58,0x68,0xCA,0x08, + + 0x40,0x45,0x8A,0x1C,0x19,0x29,0x1A,0x38,0x49,0x49,0x9A,0x3C,0x59,0x69,0xEB,0xBA, + + 0x0D,0x4D,0x83,0x0D,0x98,0x2A,0x13,0x29,0xC8,0x4A,0x93,0x2D,0xD8,0x6A,0x7F,0xE4, + + 0xA8,0x49,0x8B,0x1D,0x99,0x2B,0x1B,0x39,0xC9,0x4B,0x9B,0x3D,0xD9,0x6B,0x42,0x48, + + 0x0A,0x0C,0xC2,0x4C,0x1A,0x2C,0x52,0x68,0x4A,0x4C,0xD2,0x6C,0x5A,0x6C,0x4A,0x58, + + 0x0B,0x0D,0xCA,0x5C,0x1B,0x2D,0x5A,0x78,0x4B,0x4D,0xDA,0x7C,0x5B,0x6D,0x43,0x49, + + 0x8A,0x0E,0xC3,0x4D,0x9A,0x2E,0x53,0x69,0xCA,0x4E,0xD3,0x6D,0xDA,0x6E,0x4B,0x59, + + 0x8B,0x0F,0xCB,0x5D,0x9B,0x2F,0x5B,0x79,0xCB,0x4F,0xDB,0x7D,0xDB,0x6F,0x74,0x46, + + 0x8A,0xEF,0x84,0x84,0x30,0x30,0x14,0xA0,0x60,0x50,0x94,0xA4,0x70,0x70,0x8E,0x14, + + 0x21,0x80,0x8C,0x94,0x31,0x31,0x1C,0xB0,0x61,0x51,0x9C,0xB4,0x71,0x71,0x95,0xC7, + + 0x0A,0xE9,0x85,0x85,0xB0,0x32,0x15,0xA1,0xE0,0x52,0x95,0xA5,0xF0,0x72,0xA5,0x33, + + 0x26,0x34,0x8D,0x95,0xB1,0x33,0x1D,0xB1,0xE1,0x53,0x9D,0xB5,0xF1,0x73,0x44,0xC0, + + 0x22,0x14,0xC4,0xC4,0x32,0x34,0x54,0xE0,0x62,0x54,0xD4,0xE4,0x72,0x74,0x4C,0xD0, + + 0x23,0x15,0xCC,0xD4,0x33,0x35,0x5C,0xF0,0x63,0x55,0xDC,0xF4,0x73,0x75,0x45,0xC1, + + 0xA2,0x16,0xC5,0xC5,0xB2,0x36,0x55,0xE1,0xE2,0x56,0xD5,0xE5,0xF2,0x76,0x4D,0xD1, + + 0xA3,0x17,0xCD,0xD5,0xB3,0x37,0x5D,0xF1,0xE3,0x57,0xDD,0xF5,0xF3,0x77,0x96,0xCE, + + 0x82,0xE3,0x86,0x8C,0x38,0x38,0x16,0xA8,0x68,0x58,0x96,0xAC,0x78,0x78,0xA6,0x3A, + + 0xAE,0x3E,0x8E,0x9C,0x39,0x39,0x1E,0xB8,0x69,0x59,0x9E,0xBC,0x79,0x79,0x05,0x0D, + + 0xA8,0x8B,0x87,0x8D,0xB8,0x3A,0x17,0xA9,0xE8,0x5A,0x97,0xAD,0xF8,0x7A,0x9F,0xBD, + + 0xA9,0x1B,0x8F,0x9D,0xB9,0x3B,0x1F,0xB9,0xE9,0x5B,0x9F,0xBD,0xF9,0x7B,0x46,0xC8, + + 0x2A,0x1C,0xC6,0xCC,0x3A,0x3C,0x56,0xE8,0x6A,0x5C,0xD6,0xEC,0x7A,0x7C,0x4E,0xD8, + + 0x2B,0x1D,0xCE,0xDC,0x3B,0x3D,0x5E,0xF8,0x6B,0x5D,0xDE,0xFC,0x7B,0x7D,0x47,0xC9, + + 0xAA,0x1E,0xC7,0xCD,0xBA,0x3E,0x57,0xE9,0xEA,0x5E,0xD7,0xED,0xFA,0x7E,0x4F,0xD9, + + 0xAB,0x1F,0xCF,0xDD,0xBB,0x3F,0x5F,0xF9,0xEB,0x5F,0xDF,0xFD,0xFB,0x7F,0x20,0x3A, + + 0x81,0x87,0xA0,0x06,0x14,0xA0,0x30,0x22,0x44,0xC0,0xB0,0x26,0x54,0xE0,0x55,0x96, + + 0x45,0xAB,0xA8,0x16,0x15,0xA1,0x38,0x32,0x45,0xC1,0xB8,0x36,0x55,0xE1,0xC9,0xA0, + + 0x82,0xE2,0xA1,0x07,0x94,0xA2,0x31,0x23,0xC4,0xC2,0xB1,0x27,0xD4,0xE2,0xB9,0x55, + + 0x2F,0x78,0xA9,0x17,0x95,0xA3,0x39,0x33,0xC5,0xC3,0xB9,0x37,0xD5,0xE3,0x60,0x42, + + 0x06,0x84,0xE0,0x46,0x16,0xA4,0x70,0x62,0x46,0xC4,0xF0,0x66,0x56,0xE4,0x68,0x52, + + 0x07,0x85,0xE8,0x56,0x17,0xA5,0x78,0x72,0x47,0xC5,0xF8,0x76,0x57,0xE5,0x61,0x43, + + 0x86,0x86,0xE1,0x47,0x96,0xA6,0x71,0x63,0xC6,0xC6,0xF1,0x67,0xD6,0xE6,0x69,0x53, + + 0x87,0x87,0xE9,0x57,0x97,0xA7,0x79,0x73,0xC7,0xC7,0xF9,0x77,0xD7,0xE7,0x24,0x8E, + + 0x0C,0x19,0xA2,0x0E,0x1C,0xA8,0x32,0x2A,0x4C,0xC8,0xB2,0x2E,0x5C,0xE8,0x9A,0xA8, + + 0x23,0xC5,0xAA,0x1E,0x1D,0xA9,0x3A,0x3A,0x4D,0xC9,0xBA,0x3E,0x5D,0xE9,0xFC,0x03, + + 0x0B,0x8D,0xA3,0x0F,0x9C,0xAA,0x33,0x2B,0xCC,0xCA,0xB3,0x2F,0xDC,0xEA,0x5B,0xC4, + + 0x62,0xC7,0xAB,0x1F,0x9D,0xAB,0x3B,0x3B,0xCD,0xCB,0xBB,0x3F,0xDD,0xEB,0x62,0x4A, + + 0x0E,0x8C,0xE2,0x4E,0x1E,0xAC,0x72,0x6A,0x4E,0xCC,0xF2,0x6E,0x5E,0xEC,0x6A,0x5A, + + 0x0F,0x8D,0xEA,0x5E,0x1F,0xAD,0x7A,0x7A,0x4F,0xCD,0xFA,0x7E,0x5F,0xED,0x63,0x4B, + + 0x8E,0x8E,0xE3,0x4F,0x9E,0xAE,0x73,0x6B,0xCE,0xCE,0xF3,0x6F,0xDE,0xEE,0x6B,0x5B, + + 0x8F,0x8F,0xEB,0x5F,0x9F,0xAF,0x7B,0x7B,0xCF,0xCF,0xFB,0x7F,0xDF,0xEF,0x24,0x82, + + 0x24,0x90,0xA4,0x86,0x34,0xB0,0x34,0xA2,0x64,0xD0,0xB4,0xA6,0x74,0xF0,0x2C,0x92, + + 0x25,0x91,0xAC,0x96,0x35,0xB1,0x3C,0xB2,0x65,0xD1,0xBC,0xB6,0x75,0xF1,0x25,0x83, + + 0xA4,0x92,0xA5,0x87,0xB4,0xB2,0x35,0xA3,0xE4,0xD2,0xB5,0xA7,0xF4,0xF2,0x2D,0x93, + + 0xA5,0x93,0xAD,0x97,0xB5,0xB3,0x3D,0xB3,0xE5,0xD3,0xBD,0xB7,0xF5,0xF3,0x64,0xC2, + + 0x26,0x94,0xE4,0xC6,0x36,0xB4,0x74,0xE2,0x66,0xD4,0xF4,0xE6,0x76,0xF4,0x6C,0xD2, + + 0x27,0x95,0xEC,0xD6,0x37,0xB5,0x7C,0xF2,0x67,0xD5,0xFC,0xF6,0x77,0xF5,0x65,0xC3, + + 0xA6,0x96,0xE5,0xC7,0xB6,0xB6,0x75,0xE3,0xE6,0xD6,0xF5,0xE7,0xF6,0xF6,0x6D,0xD3, + + 0xA7,0x97,0xED,0xD7,0xB7,0xB7,0x7D,0xF3,0xE7,0xD7,0xFD,0xF7,0xF7,0xF7,0x26,0x8A, + + 0x2C,0x98,0xA6,0x8E,0x3C,0xB8,0x36,0xAA,0x6C,0xD8,0xB6,0xAE,0x7C,0xF8,0x2E,0x9A, + + 0x2D,0x99,0xAE,0x9E,0x3D,0xB9,0x3E,0xBA,0x6D,0xD9,0xBE,0xBE,0x7D,0xF9,0x27,0x8B, + + 0xAC,0x9A,0xA7,0x8F,0xBC,0xBA,0x37,0xAB,0xEC,0xDA,0xB7,0xAF,0xFC,0xFA,0x2F,0x9B, + + 0xAD,0x9B,0xAF,0x9F,0xBD,0xBB,0x3F,0xBB,0xED,0xDB,0xBF,0xBF,0xFD,0xFB,0x66,0xCA, + + 0x2E,0x9C,0xE6,0xCE,0x3E,0xBC,0x76,0xEA,0x6E,0xDC,0xF6,0xEE,0x7E,0xFC,0x6E,0xDA, + + 0x2F,0x9D,0xEE,0xDE,0x3F,0xBD,0x7E,0xFA,0x6F,0xDD,0xFE,0xFE,0x7F,0xFD,0x67,0xCB, + + 0xAE,0x9E,0xE7,0xCF,0xBE,0xBE,0x77,0xEB,0xEE,0xDE,0xF7,0xEF,0xFE,0xFE,0x6F,0xDB, + + 0xAF,0x9F,0xEF,0xDF,0xBF,0xBF,0x7F,0xFB,0xEF,0xDF,0xFF,0xFF,0x8F,0x95,0x80,0x00, + + 0x0C,0x4C,0xF9,0xE6,0x92,0x08,0x0A,0x28,0x63,0x78,0x15,0xE2,0xBA,0x2C,0x51,0xEF, + + 0xE0,0xCE,0xF0,0x76,0x50,0x31,0x30,0xCF,0xB6,0x03,0x4D,0xB0,0x55,0x90,0xB6,0x85, + + 0x80,0xD1,0x25,0x67,0xD3,0x5D,0xCC,0x23,0x3B,0xD9,0x61,0x63,0x7A,0x99,0x60,0xEA, + + 0x03,0x27,0xF1,0x97,0x92,0xC5,0x1D,0xD8,0xBA,0x47,0x46,0x34,0xD7,0x23,0xD0,0x1B, + + 0xFF,0xB8,0xC0,0x44,0x12,0x24,0x50,0x60,0x42,0x44,0xD0,0x64,0x52,0x64,0x30,0xD0, + + 0xE3,0xFA,0xC8,0x54,0x13,0x25,0x58,0x70,0x43,0x45,0xD8,0x74,0x53,0x65,0x7E,0x91, + + 0x8E,0xAD,0xC1,0x45,0x92,0x26,0x51,0x61,0xC2,0x46,0xD1,0x65,0xD2,0x66,0x29,0x15, + + 0x03,0x0A,0xC9,0x55,0x93,0x27,0x59,0x71,0xC3,0x47,0xD9,0x75,0xD3,0x67,0x0A,0xF5, + + 0x89,0xD3,0xD8,0xE7,0xBB,0x33,0x49,0x28,0x37,0x48,0x05,0x13,0x48,0x2A,0xE5,0xE2, + + 0xDE,0x56,0xCA,0x6A,0x3A,0x56,0xDD,0xD0,0x43,0x94,0x5A,0x38,0x25,0x92,0x8C,0x7B, + + 0x2B,0x6F,0xC3,0xF9,0x90,0x31,0xC8,0x6B,0xCE,0x6A,0x13,0x10,0x24,0x5A,0x55,0x3B, + + 0x5C,0x10,0x0B,0x1D,0xAF,0x45,0xE1,0x31,0x34,0x84,0x9A,0xFB,0x7B,0x27,0xBB,0x6F, + + 0xAB,0x86,0xC2,0x4C,0x1A,0x2C,0x52,0x68,0x4A,0x4C,0xD2,0x6C,0x5A,0x6C,0x32,0xA6, + + 0xB6,0xF5,0xCA,0x5C,0x1B,0x2D,0x5A,0x78,0x4B,0x4D,0xDA,0x7C,0x5B,0x6D,0xEC,0xA6, + + 0x3F,0xA6,0xC3,0x4D,0x9A,0x2E,0x53,0x69,0xCA,0x4E,0xD3,0x6D,0xDA,0x6E,0xB4,0xDB, + + 0x8E,0x0B,0xCB,0x5D,0x9B,0x2F,0x5B,0x79,0xCB,0x4F,0xDB,0x7D,0xDB,0x6F,0x04,0x80, + + 0x78,0xF8,0x05,0x77,0xD0,0x7C,0x3C,0x24,0x68,0xA2,0x79,0xCF,0xF5,0x77,0xDE,0xB0, + + 0x26,0xE9,0x27,0x7C,0x75,0x5D,0xE6,0x38,0x94,0x92,0xA3,0xEA,0x8C,0xF3,0x4F,0x28, + + 0x82,0x11,0xE4,0xFE,0x65,0xAF,0x4C,0x25,0x1D,0x93,0x7D,0x06,0xD4,0xAE,0x02,0x1D, + + 0xDA,0x02,0x59,0xCB,0x9F,0xEF,0xE7,0x59,0xE7,0x9E,0x85,0xBC,0xB1,0x78,0x44,0xC0, + + 0x22,0x14,0xC4,0xC4,0x32,0x34,0x54,0xE0,0x62,0x54,0xD4,0xE4,0x72,0x74,0x4C,0xD0, + + 0x23,0x15,0xCC,0xD4,0x33,0x35,0x5C,0xF0,0x63,0x55,0xDC,0xF4,0x73,0x75,0x45,0xC1, + + 0xA2,0x16,0xC5,0xC5,0xB2,0x36,0x55,0xE1,0xE2,0x56,0xD5,0xE5,0xF2,0x76,0x4D,0xD1, + + 0xA3,0x17,0xCD,0xD5,0xB3,0x37,0x5D,0xF1,0xE3,0x57,0xDD,0xF5,0xF3,0x77,0xD9,0x89, + + 0x2E,0x38,0xEF,0x67,0xD3,0x8C,0x57,0xFC,0x49,0x48,0x01,0x2E,0x79,0x1B,0x36,0x70, + + 0x27,0xD6,0x0E,0x5A,0xAB,0x3A,0xE3,0x5A,0xE9,0x86,0x16,0x79,0xD8,0xF3,0xA9,0x0B, + + 0xAB,0xFC,0x24,0x97,0xD3,0x4E,0x77,0xE8,0x05,0xD1,0xAD,0x4F,0xDC,0x7C,0x55,0x6B, + + 0x0A,0x1D,0x6C,0x66,0x50,0x9C,0x25,0x51,0xE7,0x94,0x70,0x5F,0x7B,0x33,0x46,0xC8, + + 0x2A,0x1C,0xC6,0xCC,0x3A,0x3C,0x56,0xE8,0x6A,0x5C,0xD6,0xEC,0x7A,0x7C,0x4E,0xD8, + + 0x2B,0x1D,0xCE,0xDC,0x3B,0x3D,0x5E,0xF8,0x6B,0x5D,0xDE,0xFC,0x7B,0x7D,0x47,0xC9, + + 0xAA,0x1E,0xC7,0xCD,0xBA,0x3E,0x57,0xE9,0xEA,0x5E,0xD7,0xED,0xFA,0x7E,0x4F,0xD9, + + 0xAB,0x1F,0xCF,0xDD,0xBB,0x3F,0x5F,0xF9,0xEB,0x5F,0xDF,0xFD,0xFB,0x7F,0x20,0xFF, + + 0x04,0x0D,0xE0,0x39,0x1C,0xCC,0x50,0xE2,0x8A,0x4B,0xC0,0xF9,0xE3,0xAC,0x76,0x0A, + + 0xDC,0x2A,0x0F,0x81,0x7E,0x07,0xB5,0xC2,0x4D,0xCE,0x9E,0x3A,0xD9,0x3A,0xD9,0x0B, + + 0x5B,0x1D,0x89,0xC5,0x40,0x64,0xCB,0xC1,0x46,0xCA,0xC7,0x34,0xC8,0xA6,0x2E,0x31, + + 0xEE,0x73,0x29,0xE6,0x57,0xE3,0xE4,0x31,0xBE,0xC3,0x99,0xCA,0x95,0xAD,0xDB,0xA0, + + 0xAA,0x79,0xE0,0x46,0x16,0xA4,0x70,0x62,0x46,0xC4,0xF0,0x66,0x56,0xE4,0x22,0xEF, + + 0x85,0xCD,0xE8,0x56,0x17,0xA5,0x78,0x72,0x47,0xC5,0xF8,0x76,0x57,0xE5,0x19,0x38, + + 0x88,0xE4,0xE1,0x47,0x96,0xA6,0x71,0x63,0xC6,0xC6,0xF1,0x67,0xD6,0xE6,0xF4,0xB1, + + 0xA3,0x7A,0xE9,0x57,0x97,0xA7,0x79,0x73,0xC7,0xC7,0xF9,0x77,0xD7,0xE7,0x21,0xFB, + + 0x94,0x88,0x98,0xFD,0xCA,0x07,0x69,0x68,0x33,0xC8,0xC2,0x08,0xBE,0x8B,0x2A,0x46, + + 0x09,0xF1,0xD4,0x84,0xF6,0x6C,0x67,0xC3,0xCD,0x52,0xCA,0xE1,0xBE,0xAB,0x7D,0x08, + + 0x73,0xCA,0x44,0xFE,0x46,0xBA,0xE8,0x6B,0xCA,0xEA,0x03,0x98,0xF2,0xA6,0x69,0x3F, + + 0xA9,0x8B,0xD5,0x28,0xF6,0x0E,0x3B,0xC6,0xCD,0x10,0x3B,0x87,0x0A,0x56,0xBD,0x42, + + 0x20,0xCA,0xE2,0x4E,0x1E,0xAC,0x72,0x6A,0x4E,0xCC,0xF2,0x6E,0x5E,0xEC,0x1A,0x85, + + 0xE0,0xCC,0xEA,0x5E,0x1F,0xAD,0x7A,0x7A,0x4F,0xCD,0xFA,0x7E,0x5F,0xED,0x91,0x8D, + + 0x2C,0xC2,0xE3,0x4F,0x9E,0xAE,0x73,0x6B,0xCE,0xCE,0xF3,0x6F,0xDE,0xEE,0x13,0x7C, + + 0xAB,0x8F,0xEB,0x5F,0x9F,0xAF,0x7B,0x7B,0xCF,0xCF,0xFB,0x7F,0xDF,0xEF,0x28,0x85, + + 0x85,0x18,0xAA,0x34,0x17,0x70,0x54,0x62,0xAA,0x5B,0xAF,0xD4,0xD7,0xF6,0xBB,0x62, + + 0x2D,0x9E,0x8C,0x86,0x81,0x66,0xAF,0xC0,0xC6,0xD7,0xC4,0x34,0x70,0x9B,0x27,0x61, + + 0x26,0xDA,0xFF,0xDD,0x03,0xCD,0xCB,0x41,0x66,0x9A,0x3D,0xCE,0x57,0x97,0x4D,0xD7, + + 0xD1,0x9C,0x18,0x28,0x68,0xCE,0x35,0xFF,0x46,0xD5,0x85,0x67,0x02,0xFC,0x64,0xC2, + + 0x26,0x94,0xE4,0xC6,0x36,0xB4,0x74,0xE2,0x66,0xD4,0xF4,0xE6,0x76,0xF4,0x6C,0xD2, + + 0x27,0x95,0xEC,0xD6,0x37,0xB5,0x7C,0xF2,0x67,0xD5,0xFC,0xF6,0x77,0xF5,0x65,0xC3, + + 0xA6,0x96,0xE5,0xC7,0xB6,0xB6,0x75,0xE3,0xE6,0xD6,0xF5,0xE7,0xF6,0xF6,0x6D,0xD3, + + 0xA7,0x97,0xED,0xD7,0xB7,0xB7,0x7D,0xF3,0xE7,0xD7,0xFD,0xF7,0xF7,0xF7,0x46,0x4A, + + 0xE2,0x13,0x09,0xD0,0x89,0x64,0x3A,0x2D,0xCD,0x50,0x8E,0x7E,0x87,0xF7,0xA7,0x6A, + + 0x25,0x96,0x3E,0x80,0x2D,0x4D,0x98,0x4A,0x65,0xD6,0x3E,0xBF,0xFF,0xF1,0x59,0x69, + + 0x2E,0x92,0xCF,0x4D,0x3A,0x4F,0xB7,0x49,0x6E,0xF2,0x18,0xD1,0x21,0xB8,0x9B,0xE9, + + 0x0E,0x56,0xAA,0x85,0xA9,0x0F,0x5F,0x7B,0x23,0x50,0x6B,0x4F,0xF5,0xF4,0x66,0xCA, + + 0x2E,0x9C,0xE6,0xCE,0x3E,0xBC,0x76,0xEA,0x6E,0xDC,0xF6,0xEE,0x7E,0xFC,0x6E,0xDA, + + 0x2F,0x9D,0xEE,0xDE,0x3F,0xBD,0x7E,0xFA,0x6F,0xDD,0xFE,0xFE,0x7F,0xFD,0x67,0xCB, + + 0xAE,0x9E,0xE7,0xCF,0xBE,0xBE,0x77,0xEB,0xEE,0xDE,0xF7,0xEF,0xFE,0xFE,0x6F,0xDB, + + 0xAF,0x9F,0xEF,0xDF,0xBF,0xBF,0x7F,0xFB,0xEF,0xDF,0xFF,0xFF,0x46,0x75,0x80,0x00, + + 0x0C,0x4C,0x88,0x49,0x73,0x00,0x6E,0xA0,0xC0,0xF3,0x26,0xD5,0xB8,0x30,0x51,0xEF, + + 0xE0,0xCE,0x88,0xE9,0x11,0xFA,0x41,0xB5,0x26,0x48,0xA7,0x6A,0xA0,0xBD,0xB6,0x85, + + 0x80,0x91,0xF9,0xFC,0x10,0xB9,0xAE,0x93,0x74,0xD2,0xEF,0x17,0x55,0x74,0x60,0xEA, + + 0xEA,0x06,0xA1,0x91,0x99,0x6A,0x18,0xC5,0xC1,0xE8,0xC0,0x21,0x5C,0x00,0x15,0x9E, + + 0xFB,0x7A,0xC0,0x44,0x12,0x24,0x50,0x60,0x42,0x44,0xD0,0x64,0x52,0x64,0x3C,0x74, + + 0x03,0x05,0xC8,0x54,0x13,0x25,0x58,0x70,0x43,0x45,0xD8,0x74,0x53,0x65,0x7C,0x07, + + 0x20,0x48,0xC1,0x45,0x92,0x26,0x51,0x61,0xC2,0x46,0xD1,0x65,0xD2,0x66,0x49,0x51, + + 0x83,0x07,0xC9,0x55,0x93,0x27,0x59,0x71,0xC3,0x47,0xD9,0x75,0xD3,0x67,0xA9,0xE0, + + 0x08,0xF3,0xDB,0x98,0xE5,0xE9,0x52,0x29,0xC8,0xF9,0x39,0x89,0x8D,0x76,0xE5,0xE2, + + 0x62,0x99,0x70,0x14,0xFC,0x3B,0x43,0xBD,0x6B,0x44,0xB9,0xCD,0xC5,0x29,0x03,0x7B, + + 0x2F,0x1A,0x79,0x85,0x6D,0xE9,0x29,0xDA,0xCA,0xB7,0xEE,0xDE,0x00,0xBE,0x24,0xE8, + + 0xD1,0x0E,0x01,0x7D,0x93,0x30,0x19,0xCD,0x69,0x4F,0x73,0xB7,0xFB,0xBD,0x42,0x48, + + 0x0A,0x0C,0xC2,0x4C,0x1A,0x2C,0x52,0x68,0x4A,0x4C,0xD2,0x6C,0x5A,0x6C,0x4A,0x58, + + 0x0B,0x0D,0xCA,0x5C,0x1B,0x2D,0x5A,0x78,0x4B,0x4D,0xDA,0x7C,0x5B,0x6D,0x43,0x49, + + 0x8A,0x0E,0xC3,0x4D,0x9A,0x2E,0x53,0x69,0xCA,0x4E,0xD3,0x6D,0xDA,0x6E,0x4B,0x59, + + 0x8B,0x0F,0xCB,0x5D,0x9B,0x2F,0x5B,0x79,0xCB,0x4F,0xDB,0x7D,0xDB,0x6F,0x04,0x80, + + 0x78,0xF8,0xE4,0x44,0xF2,0xBB,0xEE,0xD2,0x53,0xB2,0xB7,0xA8,0xA8,0x00,0xDE,0xB0, + + 0x26,0xE9,0x48,0xF6,0x72,0xDE,0x46,0xB1,0xC2,0x57,0x34,0x17,0x0E,0x02,0x4F,0x28, + + 0x82,0x11,0x7A,0x67,0x32,0x3A,0xEF,0x23,0xE5,0xA3,0x7D,0x16,0x75,0x35,0x02,0x1D, + + 0x92,0xF1,0xF5,0xF7,0xF2,0xCE,0x95,0x8D,0x42,0x55,0x5D,0xB5,0x81,0x86,0x44,0xC0, + + 0x22,0x14,0xC4,0xC4,0x32,0x34,0x54,0xE0,0x62,0x54,0xD4,0xE4,0x72,0x74,0x4C,0xD0, + + 0x23,0x15,0xCC,0xD4,0x33,0x35,0x5C,0xF0,0x63,0x55,0xDC,0xF4,0x73,0x75,0x45,0xC1, + + 0xA2,0x16,0xC5,0xC5,0xB2,0x36,0x55,0xE1,0xE2,0x56,0xD5,0xE5,0xF2,0x76,0x4D,0xD1, + + 0xA3,0x17,0xCD,0xD5,0xB3,0x37,0x5D,0xF1,0xE3,0x57,0xDD,0xF5,0xF3,0x77,0xDC,0x84, + + 0x1B,0xFA,0xFE,0x0E,0x39,0xDF,0x1E,0xE5,0xCB,0x5E,0xD6,0x28,0x78,0xE9,0x6E,0xD8, + + 0x27,0x14,0x86,0x33,0x9A,0x39,0xDA,0xCE,0x9E,0x49,0x8D,0x83,0x61,0x3B,0xC5,0xFF, + + 0x8B,0x45,0xDD,0x8C,0x1B,0x3C,0x1F,0xE5,0x4B,0x41,0x20,0xA5,0xFE,0x7A,0x05,0x91, + + 0x0A,0x16,0xD1,0x8A,0xB1,0x3B,0xA5,0x46,0xDA,0x79,0x9F,0x85,0x86,0x6B,0x46,0xC8, + + 0x2A,0x1C,0xC6,0xCC,0x3A,0x3C,0x56,0xE8,0x6A,0x5C,0xD6,0xEC,0x7A,0x7C,0x4E,0xD8, + + 0x2B,0x1D,0xCE,0xDC,0x3B,0x3D,0x5E,0xF8,0x6B,0x5D,0xDE,0xFC,0x7B,0x7D,0x47,0xC9, + + 0xAA,0x1E,0xC7,0xCD,0xBA,0x3E,0x57,0xE9,0xEA,0x5E,0xD7,0xED,0xFA,0x7E,0x4F,0xD9, + + 0xAB,0x1F,0xCF,0xDD,0xBB,0x3F,0x5F,0xF9,0xEB,0x5F,0xDF,0xFD,0xFB,0x7F,0x7E,0x1F, + + 0x54,0x2B,0x66,0x70,0x50,0xCC,0xB0,0xD6,0x65,0xD0,0xCF,0x55,0xBE,0x48,0xD7,0x16, + + 0x05,0x59,0xC8,0x57,0xF8,0x2A,0x82,0x75,0x4B,0xC8,0x93,0xD8,0xEA,0xE5,0x04,0x03, + + 0xEF,0xA6,0xC3,0x02,0x95,0x14,0xEB,0x23,0xF7,0xD0,0xC3,0xC7,0x90,0x69,0x96,0xEE, + + 0x95,0xE0,0x54,0xF5,0x15,0x7C,0x7B,0xDB,0xC3,0x4E,0xBB,0x19,0x23,0x96,0x60,0x42, + + 0x06,0x84,0xE0,0x46,0x16,0xA4,0x70,0x62,0x46,0xC4,0xF0,0x66,0x56,0xE4,0x68,0x52, + + 0x07,0x85,0xE8,0x56,0x17,0xA5,0x78,0x72,0x47,0xC5,0xF8,0x76,0x57,0xE5,0x61,0x43, + + 0x86,0x86,0xE1,0x47,0x96,0xA6,0x71,0x63,0xC6,0xC6,0xF1,0x67,0xD6,0xE6,0x69,0x53, + + 0x87,0x87,0xE9,0x57,0x97,0xA7,0x79,0x73,0xC7,0xC7,0xF9,0x77,0xD7,0xE7,0xC2,0xBC, + + 0x8B,0x8F,0xC2,0x4A,0x68,0x25,0xA0,0xDC,0x5E,0x43,0x45,0x71,0xE1,0x14,0xBA,0xF8, + + 0xA1,0xC8,0xF0,0x1B,0xBE,0xAF,0x78,0x48,0x29,0x06,0xD2,0xB8,0xA1,0xA8,0x8B,0xA9, + + 0x53,0x65,0xDB,0x8D,0x9D,0xD2,0x73,0x9F,0x2B,0xD1,0x18,0x41,0x09,0xE4,0xBB,0x1B, + + 0x8D,0x8B,0xA3,0x53,0x7C,0xA4,0x7A,0xCB,0xCF,0x08,0x18,0x37,0x01,0xDB,0x62,0x4A, + + 0x0E,0x8C,0xE2,0x4E,0x1E,0xAC,0x72,0x6A,0x4E,0xCC,0xF2,0x6E,0x5E,0xEC,0x6A,0x5A, + + 0x0F,0x8D,0xEA,0x5E,0x1F,0xAD,0x7A,0x7A,0x4F,0xCD,0xFA,0x7E,0x5F,0xED,0x63,0x4B, + + 0x8E,0x8E,0xE3,0x4F,0x9E,0xAE,0x73,0x6B,0xCE,0xCE,0xF3,0x6F,0xDE,0xEE,0x6B,0x5B, + + 0x8F,0x8F,0xEB,0x5F,0x9F,0xAF,0x7B,0x7B,0xCF,0xCF,0xFB,0x7F,0xDF,0xEF,0x2E,0x02, + + 0x87,0x96,0x84,0x6D,0xBB,0xB2,0x8E,0x58,0x74,0x1D,0x5C,0x04,0xF1,0xF7,0x6D,0x64, + + 0x16,0xB3,0xC4,0x88,0xF3,0x45,0x38,0x08,0xE7,0xD9,0x9A,0xBB,0xF1,0x55,0x6D,0x11, + + 0x05,0x89,0x12,0x86,0x39,0xBE,0x4A,0x4E,0xC4,0x90,0x5A,0x49,0x71,0x55,0xF7,0xF1, + + 0xB5,0x58,0x4B,0x66,0x7F,0xF3,0xB0,0xC1,0x46,0x68,0x3C,0xB0,0x82,0xF7,0x64,0xC2, + + 0x26,0x94,0xE4,0xC6,0x36,0xB4,0x74,0xE2,0x66,0xD4,0xF4,0xE6,0x76,0xF4,0x6C,0xD2, + + 0x27,0x95,0xEC,0xD6,0x37,0xB5,0x7C,0xF2,0x67,0xD5,0xFC,0xF6,0x77,0xF5,0x65,0xC3, + + 0xA6,0x96,0xE5,0xC7,0xB6,0xB6,0x75,0xE3,0xE6,0xD6,0xF5,0xE7,0xF6,0xF6,0x6D,0xD3, + + 0xA7,0x97,0xED,0xD7,0xB7,0xB7,0x7D,0xF3,0xE7,0xD7,0xFD,0xF7,0xF7,0xF7,0x26,0x62, + + 0x3E,0x55,0xF8,0x1C,0x38,0x35,0x16,0x50,0x93,0x03,0x69,0xBE,0xFB,0xFF,0x77,0x1F, + + 0x4A,0x95,0xF0,0x05,0x2D,0x16,0x67,0x2B,0x98,0x16,0x48,0x1B,0xF8,0xFE,0xD8,0x39, + + 0x7D,0x0A,0xD9,0x11,0x57,0x4C,0x1F,0x2F,0xE4,0x93,0x07,0x1D,0xD2,0xBF,0x2E,0x6F, + + 0xAD,0x16,0xCC,0x6C,0x59,0x14,0x3E,0xC4,0x0A,0xDD,0x50,0x4D,0xFB,0xFB,0x66,0xCA, + + 0x2E,0x9C,0xE6,0xCE,0x3E,0xBC,0x76,0xEA,0x6E,0xDC,0xF6,0xEE,0x7E,0xFC,0x6E,0xDA, + + 0x2F,0x9D,0xEE,0xDE,0x3F,0xBD,0x7E,0xFA,0x6F,0xDD,0xFE,0xFE,0x7F,0xFD,0x67,0xCB, + + 0xAE,0x9E,0xE7,0xCF,0xBE,0xBE,0x77,0xEB,0xEE,0xDE,0xF7,0xEF,0xFE,0xFE,0x6F,0xDB, + + 0xAF,0x9F,0xEF,0xDF,0xBF,0xBF,0x7F,0xFB,0xEF,0xDF,0xFF,0xFF,0x29,0x22,0x59,0x0E, + + 0xE5,0x0B,0xC8,0x90,0xF9,0x89,0x40,0x06,0xAD,0x22,0xEE,0x18,0x56,0x62,0x46,0xAA, + + 0xD5,0x72,0x5E,0x53,0xCF,0x29,0xDC,0xC3,0x6B,0xEC,0x5B,0x47,0x78,0xE3,0x81,0x60, + + 0xB4,0x40,0x93,0xFB,0x6F,0x8F,0x6F,0x81,0x29,0x61,0x25,0x56,0xBE,0x6B,0xAE,0xA9, + + 0x87,0x21,0x09,0x54,0xFD,0x61,0x8E,0x0F,0xB5,0x58,0xE6,0x46,0xE3,0x0F,0xBF,0xF1, + + 0x3C,0xAB,0x99,0xA8,0xB7,0xA4,0x68,0x10,0x4A,0x4F,0x10,0xE5,0xF7,0x11,0xC8,0x31, + + 0x67,0xA8,0x08,0x31,0x2F,0xD0,0x8B,0x41,0xE2,0xBA,0xC0,0xB4,0x1C,0x30,0x94,0x32, + + 0xEC,0x0D,0x39,0xC1,0x90,0x9D,0xD1,0x00,0xA6,0xEB,0x1E,0x0A,0x5D,0xC0,0x18,0xB1, + + 0x87,0x2E,0x9A,0x6B,0xAD,0x65,0x67,0xC8,0xC5,0x45,0x96,0x1B,0x5C,0xC1,0xB1,0x8C, + + 0x0A,0x38,0xC6,0xBA,0x72,0x5B,0x92,0x76,0xEC,0xA5,0xF5,0xEC,0x1A,0x2A,0x74,0xB4, + + 0xE0,0xA0,0x8C,0xAC,0xF0,0x80,0x63,0xCB,0x67,0x9D,0xE4,0x85,0xD4,0xC4,0x7D,0xA0, + + 0x24,0x07,0xFD,0xB4,0x91,0xCB,0xD7,0x77,0xC6,0x54,0xD7,0x9B,0xB2,0x19,0xF6,0xF5, + + 0x89,0xDE,0x99,0x1C,0x66,0xA6,0xCB,0x4B,0x22,0xC8,0xC8,0xA2,0x32,0x63,0xD0,0xCC, + + 0x00,0xCB,0x88,0x34,0x9A,0x6E,0x57,0x9B,0x3A,0x29,0x19,0xAC,0x0B,0x11,0x91,0x58, + + 0xE2,0x9E,0x1E,0x2F,0x3D,0x6F,0x52,0x49,0xEA,0xB2,0x63,0x41,0x5D,0x6F,0x15,0xE4, + + 0x61,0xBD,0x2F,0x3E,0xFC,0x88,0x6B,0x9A,0xB2,0xE3,0x2C,0xE9,0xD0,0x9D,0x5D,0x28, + + 0x60,0x07,0x8B,0xAD,0x9A,0xEF,0x65,0xC4,0xCD,0x4D,0xDB,0x8E,0xAF,0x0A,0x66,0x84, + + 0x23,0x32,0x96,0x7B,0xCF,0xBD,0x10,0x46,0x48,0x02,0x73,0x64,0x76,0x32,0x8E,0x14, + + 0x29,0x76,0xCC,0xA3,0xD8,0xD2,0x08,0x9B,0x49,0xBF,0xCF,0x27,0x18,0xDE,0xC5,0x00, + + 0xB6,0xA9,0xD7,0x7A,0x47,0x70,0x01,0x1D,0xC8,0xC8,0xD5,0x03,0x7D,0xDF,0x52,0x99, + + 0xA7,0x31,0x95,0x8D,0x3E,0xB5,0x09,0x5A,0xE7,0x51,0x95,0xC6,0xCF,0xF5,0xC2,0xB3, + + 0x48,0x5B,0x94,0x5C,0x36,0x10,0x4E,0xE2,0xF0,0x5C,0xB2,0xD9,0x8D,0xA9,0x50,0xD0, + + 0xAC,0xB8,0x96,0x4A,0x5B,0x36,0x98,0x0A,0x9E,0x37,0x62,0xE1,0xFE,0xF8,0x44,0xB2, + + 0xC4,0x59,0x90,0xB7,0x59,0x35,0x49,0x9F,0x46,0xBB,0xB3,0xD9,0x05,0x75,0x9F,0x42, + + 0x8D,0xBA,0xB3,0xD3,0x52,0xB4,0x22,0x82,0x93,0x12,0x3A,0x0A,0x12,0xA1,0xC2,0x71, + + 0x24,0x1C,0x82,0x4C,0x3C,0x10,0xA2,0xDB,0x41,0xDA,0x96,0x5F,0x06,0x50,0x51,0x8D, + + 0x2F,0x39,0x82,0xA9,0x71,0xBA,0x79,0x78,0x23,0xF4,0x80,0x47,0x0A,0x79,0x84,0x0D, + + 0xA2,0x48,0x11,0x09,0xBA,0x7D,0x68,0xDA,0xDA,0x36,0xC8,0xBC,0x9A,0xD7,0xFB,0x80, + + 0xAF,0x39,0xB1,0xA1,0x1D,0xD6,0x03,0x89,0x1E,0xE4,0x89,0xDF,0x06,0xE6,0x96,0x4C, + + 0x28,0x97,0x6F,0x3F,0xB6,0x31,0xE8,0x6D,0x9D,0xF1,0x2D,0xAB,0x87,0xDA,0x70,0x64, + + 0xC8,0x16,0xF4,0x2F,0x4B,0x92,0x8C,0x86,0x19,0xF2,0x45,0x76,0x78,0x37,0x0F,0xCD, + + 0x83,0xDF,0x9F,0xC9,0x32,0xEF,0x40,0x6C,0x92,0xF1,0x83,0x1D,0x7A,0x61,0xCB,0xAA, + + 0xD1,0x90,0xD8,0xAE,0x99,0x9E,0x09,0x3E,0x02,0x9C,0x5E,0xFF,0x0F,0x0F,0xF5,0x3D, + + 0x76,0x3F,0x60,0x86,0xDE,0x0D,0x0E,0x92,0xC9,0x46,0x8E,0x8B,0x82,0x4F,0xE9,0x0D, + + 0x37,0x54,0xCA,0x17,0x16,0xE1,0x38,0xC2,0xBA,0x6E,0xEA,0xC6,0x51,0x40,0x7A,0x03, + + 0x82,0xC2,0xF0,0x67,0xDE,0xCC,0x30,0x63,0xC0,0xE2,0x66,0x66,0xAF,0x42,0xFC,0x2C, + + 0xF7,0x3F,0xA5,0x22,0x7C,0x30,0x6E,0xC0,0xB3,0x6E,0xEA,0xC4,0xA7,0x6E,0xDB,0xF3, + + 0x38,0x2B,0x20,0xC6,0x6D,0xE6,0x75,0x9C,0xEA,0xC9,0xC8,0x95,0x2A,0x8A,0x28,0xAB, + + 0xA6,0x0C,0xEC,0x74,0x33,0x2E,0x1E,0x4B,0xAE,0x54,0xE2,0x74,0xE4,0x48,0xB6,0x02, + + 0xFD,0xC4,0x7D,0x6A,0xDE,0x25,0x8E,0xA4,0x2F,0x95,0x97,0x5E,0x3F,0x77,0x6D,0xB3, + + 0x83,0xAE,0xED,0xB5,0x6B,0x34,0x63,0x71,0x74,0x6A,0x6A,0x07,0x57,0xF1,0x9F,0x51, + + 0x7F,0x88,0xC4,0x7F,0xF7,0x7B,0x60,0x98,0x5C,0xC8,0xE4,0x83,0xB7,0x9B,0xFC,0xBA, + + 0x1F,0xBB,0xD4,0xA7,0x14,0x48,0x5A,0x5A,0xBB,0x68,0xF9,0x4D,0x74,0x6B,0xE3,0x0F, + + 0x9A,0x3E,0x9D,0xA2,0x5E,0xAA,0x3B,0x2F,0xC5,0x2B,0x73,0xAE,0xB3,0xE0,0x72,0x14, + + 0x68,0xE7,0xAD,0xAF,0x74,0x02,0x03,0xDE,0xC5,0x17,0x44,0x4C,0xEF,0x87,0xF0,0xCE, + + 0x04,0x59,0x51,0xE3,0x18,0x44,0x27,0x1A,0xCE,0xDA,0xFA,0x7A,0x96,0x3D,0x2A,0x33, + + 0x0E,0x5D,0x8D,0x3C,0xF4,0x8E,0xAB,0xE5,0xBA,0x44,0x3A,0xFF,0xAE,0xE0,0xA3,0xCB, + + 0x96,0xCC,0xF4,0x6B,0x1C,0xAA,0x7B,0x8B,0x41,0x63,0xE0,0x7C,0xA2,0x5F,0xAB,0xDB, + + 0xF9,0x85,0xB3,0x5B,0x17,0x16,0x5B,0x91,0x26,0xFC,0x00,0x58,0x7E,0x83,0xE0,0x7B, + + 0x6C,0xD2,0x60,0x75,0x12,0x1D,0x0A,0x0A,0xE9,0x66,0x74,0x26,0xBE,0x5D,0xEC,0x96, + + 0x33,0x45,0x92,0xAB,0xC1,0x60,0x02,0x0A,0x19,0x7E,0xF8,0x43,0x76,0x81,0x21,0x24, + + 0xDF,0x82,0x32,0x02,0x5F,0xD1,0x3D,0xA7,0xED,0x33,0xE4,0xC7,0xF6,0xB0,0x7D,0x8C, + + 0x8F,0x88,0xF4,0x92,0x60,0xF6,0xEE,0xCD,0x65,0x92,0x7D,0x37,0x53,0x5E,0x7C,0x4B, + + 0xCF,0x47,0xDC,0xF7,0x97,0x35,0x12,0x43,0x8F,0xD7,0xD4,0xC1,0xFB,0xEF,0x3B,0x56, + + 0x25,0xA5,0xBE,0x9D,0xDC,0xD1,0x2B,0x76,0x6D,0x00,0xC2,0xCE,0x71,0xF7,0x73,0xA1, + + 0x59,0x3B,0x5D,0x34,0x32,0x3B,0xB5,0x63,0x85,0xDE,0x83,0x81,0x3C,0x47,0x96,0xF4, + + 0x06,0xFB,0x2D,0xC7,0x8C,0x43,0xBD,0x73,0xFF,0x95,0xF3,0x37,0x89,0x7C,0x0E,0xEC, + + 0x0F,0xE8,0x18,0x0B,0xE9,0xDA,0x30,0x1A,0x85,0x71,0xE5,0x97,0x97,0xF0,0x77,0x76, + + 0x88,0xF7,0x90,0xA3,0xE3,0x16,0x6C,0x45,0x6B,0xDB,0xEC,0x4E,0x8A,0x58,0x7E,0x8D, + + 0x09,0x65,0xCE,0x65,0x43,0xD6,0x25,0x54,0x13,0x57,0x8C,0xAD,0xC8,0x5A,0xC8,0xDB, + + 0xFD,0x36,0x38,0xEC,0xC9,0x6D,0xDD,0x3F,0xE7,0x30,0xEC,0x4C,0x8F,0x70,0x00,0x7E, + + 0xC7,0x3F,0xFE,0xD0,0x61,0x08,0x36,0x83,0x6F,0xDD,0xE8,0xDF,0x5C,0xE3,0xEE,0xBB, + + 0x4B,0xB4,0xCE,0xB8,0x57,0xB0,0xF8,0x89,0x05,0x92,0xA8,0x03,0x77,0xBF,0xA7,0x4B, + + 0x87,0x96,0x2C,0xD5,0xE5,0xA5,0xB7,0x6B,0x98,0xD4,0x4F,0x3F,0xA2,0xF5,0x7F,0x5F, + + 0xAD,0x24,0xF9,0xBD,0xDF,0xC5,0x7E,0x88,0x89,0x90,0xF6,0x50,0xCC,0xFB,0xB8,0xFF, + + 0x06,0x22,0x40,0x84,0x0F,0x28,0x6E,0x09,0xBD,0x2C,0xC8,0x20,0x42,0x2D,0xBC,0x63, + + 0x79,0x0E,0x94,0x84,0x78,0xC0,0x34,0x6D,0x72,0x6B,0xA6,0xE8,0x38,0xDB,0xF2,0x72, + + 0xF0,0x0D,0x01,0x46,0xEA,0x8F,0x73,0x3C,0xC1,0x02,0xC9,0x21,0x59,0xD1,0x53,0x1E, + + 0xFD,0x1C,0x91,0x85,0xE6,0x23,0xA1,0xD1,0x9D,0x2D,0xC1,0x2D,0x5C,0xCE,0x38,0x67, + + 0xFF,0x0B,0xBE,0x68,0xCE,0x55,0x2F,0x1E,0x30,0xDB,0xEF,0x82,0x31,0x47,0x12,0xAF, + + 0xA4,0x69,0xB1,0x32,0x30,0x44,0x63,0xF4,0x41,0x75,0x17,0x06,0xF0,0xC8,0x1B,0x4E, + + 0xFA,0x19,0x9B,0x91,0xFA,0xC7,0x6E,0x50,0x63,0xB9,0xC7,0x50,0xD4,0x44,0xF6,0xC3, + + 0x7C,0xDA,0xEE,0x53,0x43,0x43,0xA2,0x56,0x62,0xB8,0x4F,0xF1,0xD1,0x4B,0x58,0xF7, + + 0xAF,0x64,0xBC,0x21,0x70,0x81,0x4B,0x9B,0xED,0xEE,0x8A,0xBF,0x07,0x06,0x34,0x20, + + 0x68,0x0D,0x4A,0x9C,0x15,0x6B,0x5A,0x69,0x48,0x09,0xB6,0x85,0xD4,0xC4,0x3D,0x30, + + 0x4A,0xF5,0x7C,0x73,0xF2,0x7B,0xDE,0x5A,0xDF,0x08,0xF1,0x3D,0xD9,0x2A,0x69,0x1B, + + 0x8A,0x3B,0xCB,0xD0,0x98,0x6B,0x37,0x64,0x28,0xE4,0x50,0xAE,0x82,0x05,0x58,0x4A, + + 0xC8,0x08,0xFA,0xB2,0xB6,0x21,0xBE,0xE7,0xBF,0x1A,0x12,0xED,0xCF,0x2E,0xF2,0xA7, + + 0x68,0x79,0xB0,0xBC,0x1F,0x00,0xF1,0x27,0xF6,0xB1,0x16,0x0F,0x37,0x2F,0x0B,0x45, + + 0xB9,0xCA,0xB9,0xAD,0x9E,0xF3,0x5B,0x7D,0x1F,0x13,0x93,0x32,0xDC,0x4C,0x5C,0xB3, + + 0x76,0x40,0xE5,0x46,0x1F,0xBB,0x65,0xC8,0xA3,0x5F,0x9B,0xF4,0xDD,0x4D,0x3F,0x13, + + 0x11,0x1A,0xBA,0xA9,0xFA,0x99,0x32,0x42,0x54,0xFF,0xDB,0x5B,0x91,0xF6,0x72,0x96, + + 0x42,0xE6,0x8C,0x10,0x33,0x51,0x22,0x98,0xEC,0xF7,0x33,0x04,0x71,0xAE,0x14,0x71, + + 0x53,0xA3,0x7A,0xF6,0x84,0xB4,0x80,0xD3,0x0B,0x43,0x95,0xFA,0x90,0x52,0x5E,0x62, + + 0x2D,0x1E,0x4D,0x15,0xAE,0x3B,0x03,0xF1,0xE5,0x7F,0x5D,0xB4,0x5F,0x68,0xD1,0xB3, + + 0x1E,0x1D,0xD5,0xE3,0x93,0x9B,0x0E,0x78,0xC1,0x52,0x67,0xCC,0x74,0x2D,0xDD,0xD3, + + 0xB2,0xB5,0x68,0xB6,0x84,0x50,0x24,0x18,0xAF,0x18,0x4A,0xB3,0xB1,0x85,0xC5,0xC2, + + 0x33,0xB6,0xD0,0xDE,0x36,0xA2,0xFF,0xF3,0x81,0xD4,0xFD,0xF4,0x9E,0xDB,0xDB,0xD2, + + 0x0B,0x56,0xF5,0x27,0x90,0x77,0x26,0xF9,0x46,0xE8,0x95,0xF1,0x7A,0x58,0x5E,0x18, + + 0xD1,0xB9,0x06,0xCF,0x42,0x7A,0x9B,0x2C,0x62,0x6C,0x36,0xCA,0x83,0x14,0x4E,0x91, + + 0x9E,0x7C,0xF6,0x8F,0x09,0x83,0x49,0xCB,0x55,0xF8,0x9E,0xFC,0x6D,0x62,0x3F,0x76, + + 0x59,0x58,0xC3,0x86,0xDB,0x1A,0x2F,0xC9,0xEC,0x76,0x28,0x36,0x0D,0xFC,0x37,0x76, + + 0xAF,0x39,0xA9,0xB5,0xEE,0x9F,0x27,0x46,0x00,0x0A,0xD5,0x4D,0xF1,0x34,0xE1,0x78, + + 0xF2,0xBF,0x7F,0x3E,0x19,0x55,0xE1,0xE5,0x9E,0x0C,0x46,0x9E,0x91,0x9D,0x0A,0x61, + + 0xD6,0xBC,0x6E,0xC6,0xB7,0x00,0xDF,0xE7,0x77,0x46,0xE0,0xC9,0xF6,0x8B,0x6A,0xA6, + + 0x33,0x5C,0x9A,0xC8,0xA0,0x8A,0x97,0x81,0x0A,0x8A,0x8E,0xEF,0x5F,0x81,0x4A,0x26, + + 0x5A,0xCC,0x0F,0x5D,0xE9,0xE2,0x7A,0x9F,0x18,0x4F,0x97,0x7C,0x98,0x0B,0x79,0x00, + + 0xA1,0x01,0x8C,0xBF,0xFD,0xB1,0xA6,0x51,0x28,0xAC,0xD2,0x36,0x55,0xF0,0xD0,0xFA, + + 0x85,0xCC,0xBE,0x74,0xEA,0x0C,0x14,0x6F,0x26,0x87,0xE0,0x32,0xDC,0x52,0x84,0xE9, + + 0x6D,0x33,0xB9,0x96,0x7D,0xD3,0x57,0x42,0xC5,0x82,0x8F,0x47,0xBD,0x18,0x2B,0xF5, + + 0xCD,0x80,0x38,0xB2,0x62,0x28,0x2F,0x06,0x2E,0x87,0x15,0x44,0xF4,0x45,0x39,0x9B, + + 0x00,0x04,0x44,0xB6,0xE9,0xAB,0x0E,0x6A,0xFF,0x65,0x59,0xE2,0x54,0x47,0x7D,0xD6, + + 0x0D,0xC8,0xFE,0x63,0xA4,0x28,0x61,0x72,0xC5,0xC1,0x6E,0xF2,0x55,0xAF,0x7E,0xB3, + + 0x99,0x27,0x55,0xA5,0xF5,0x2A,0x74,0x90,0xDE,0x86,0x31,0xE6,0xD9,0x4B,0x33,0x43, + + 0xEF,0xB6,0x11,0x34,0x5E,0x0A,0x76,0x11,0x06,0x4D,0x39,0xF6,0x42,0xA5,0x1C,0xAA, + + 0x81,0x0E,0x21,0x8A,0x1E,0x18,0x08,0x9A,0xF8,0x67,0x7D,0xD1,0xBD,0x6E,0x23,0x68, + + 0xF6,0x16,0x2A,0x5D,0x67,0x04,0x16,0x77,0xA4,0x28,0xC5,0x4C,0x23,0x76,0xA4,0xCB, + + 0x88,0xA3,0x63,0x8F,0x83,0xA2,0x97,0x49,0xEF,0x8A,0xB3,0x70,0xBC,0xCA,0x87,0x60, + + 0x47,0xB2,0x3D,0x7F,0xDF,0xC7,0x1D,0x4A,0x6E,0x4E,0x17,0x4C,0x8A,0x4D,0x1C,0x63, + + 0x3D,0x88,0x74,0xCA,0x1C,0x93,0xF6,0x1A,0x42,0xC5,0xB2,0x74,0x58,0xCE,0xC6,0xC8, + + 0x53,0x87,0x15,0x2D,0x73,0xEF,0x20,0xEF,0xEC,0xA8,0x63,0x3C,0xA7,0x9C,0xDB,0x5B, + + 0x29,0xC3,0xDB,0xB1,0x32,0xA3,0x31,0xE9,0x0B,0x1F,0x3F,0x6D,0x8A,0xAC,0xAB,0x4A, + + 0xBF,0x2F,0xAF,0x4A,0x3E,0x00,0x21,0xF2,0x6C,0xAA,0xC8,0x53,0x23,0xDE,0x1F,0xEC, + + 0x87,0xF5,0x32,0x5B,0xFC,0x51,0xF4,0x22,0x7C,0x4F,0xED,0xE4,0x17,0x72,0x2C,0x93, + + 0x75,0x95,0xF5,0x85,0xC4,0xFE,0x65,0x4A,0xC0,0x67,0x43,0x71,0x46,0xE5,0x98,0x61, + + 0xFC,0x25,0xBD,0x6F,0x83,0xFD,0x81,0xC1,0x1F,0xBC,0x4D,0x4F,0xC3,0xBF,0x82,0xB7, + + 0x44,0x88,0xAC,0xEC,0x12,0x3E,0x06,0x37,0xE7,0x7B,0x5F,0xF7,0xF1,0x0E,0x4B,0xBD, + + 0xFF,0x0B,0x9C,0xE1,0xCB,0xBB,0xCC,0x19,0x9A,0x64,0xE2,0xD3,0xC5,0xB9,0x57,0x56, + + 0x25,0xA5,0x7D,0xD1,0x8E,0xF7,0x4E,0xEC,0x37,0x21,0x3C,0x22,0x65,0x55,0x5A,0xF2, + + 0x07,0x69,0xC3,0xEA,0x32,0x12,0xC6,0xFB,0xE0,0xCF,0xED,0xF6,0x0A,0x17,0xDD,0xA4, + + 0xA9,0x48,0xAD,0x7F,0xB1,0x95,0x7A,0xD7,0x06,0x78,0x6B,0xF5,0x1E,0xEC,0x6C,0x6C, + + 0x1F,0x9C,0xFF,0x80,0xDB,0x4D,0x3E,0xAE,0xE5,0x6B,0x4C,0x46,0xB4,0xB5,0x77,0x98, + + 0x88,0x66,0xE4,0xE6,0x3B,0xB0,0x2F,0xDA,0x3D,0x52,0xE7,0xBC,0xD8,0x46,0xDF,0x0F, + + 0x81,0x59,0x32,0xB1,0x88,0xF8,0x09,0xDA,0xAE,0x73,0x4C,0xA7,0x59,0x05,0x39,0xF9, + + 0xC5,0x96,0xAF,0x77,0x79,0xF6,0xFF,0x3F,0xEF,0x6B,0x7F,0x3E,0x0B,0x26,0xD2,0xA8, + + 0x20,0xE3,0x2A,0xA5,0x1D,0xF1,0xE0,0x99,0x02,0x9E,0x96,0x1A,0x81,0xE7,0x3C,0xA5, + + 0x01,0x3B,0x97,0xB8,0xC4,0x36,0x05,0x89,0x03,0x9F,0xC0,0xF2,0xF2,0x9F,0xCE,0xB5, + + 0x3B,0x6B,0xBD,0x1B,0xD6,0x5F,0x37,0x30,0x16,0x9A,0xD7,0x89,0xDF,0x1E,0x57,0x25, + + 0x52,0x2E,0xC5,0xEE,0xD3,0xA0,0x3F,0x94,0x13,0x9B,0xA6,0x7D,0x18,0xBE,0xA3,0xB4, + + 0xDC,0xE3,0xE6,0xB0,0x11,0x70,0x94,0x25,0xC3,0x4D,0x92,0x77,0x50,0x60,0x6E,0xDD, + + 0xE8,0x5B,0x77,0x67,0x77,0xA2,0x70,0x52,0xFA,0x4F,0x1B,0xC7,0x0D,0xC5,0xED,0xE9, + + 0x5E,0x4F,0xBF,0xB0,0xF0,0xDD,0xEC,0xE3,0x61,0x1D,0x91,0x25,0x31,0xCD,0xC9,0x91, + + 0xC8,0x09,0x76,0xEB,0xB5,0x9F,0x21,0xDB,0xC7,0x03,0x56,0x3D,0x38,0x73,0x9D,0x41, + + 0xE3,0xBB,0x74,0x26,0x7A,0x95,0x57,0x93,0x1A,0x56,0xE8,0x84,0x09,0xC9,0x00,0x41, + + 0x13,0x24,0x64,0xD1,0xE4,0xD8,0x5B,0xF4,0x49,0xAA,0x4A,0x07,0x2F,0xEF,0x9E,0x40, + + 0x84,0xCF,0x3E,0x36,0xE2,0xF5,0xE9,0xF2,0x92,0xE9,0xC6,0xB5,0x25,0x6F,0xEA,0xD3, + + 0x46,0x0F,0x0D,0xAA,0x13,0x25,0x99,0x61,0x09,0x2B,0x22,0x15,0xF3,0x25,0xC3,0x8A, + + 0x91,0x21,0x3D,0x57,0xC9,0xF5,0xE8,0xAA,0x8D,0xC0,0x7E,0xBF,0x79,0x62,0x34,0xAD, + + 0x98,0xF4,0x66,0x67,0xDB,0x29,0xCC,0x09,0x15,0xE6,0xA4,0x35,0xD6,0xCF,0x3B,0xF6, + + 0xA9,0x68,0xA8,0x7F,0x27,0x75,0xD3,0x39,0x30,0xE7,0xCA,0x3E,0x83,0x5A,0x22,0x11, + + 0x09,0xAB,0xB0,0x8F,0x9D,0x23,0x9C,0x4A,0xAF,0xE8,0x50,0xFD,0x90,0x29,0x82,0x58, + + 0x31,0x17,0x02,0xCD,0x9A,0x8D,0x92,0x78,0x2C,0x46,0x96,0x10,0x38,0xB3,0x2A,0x0E, + + 0x0A,0x4F,0x19,0xA2,0x1D,0x0F,0x9A,0x68,0xB3,0xE0,0x3D,0x0F,0x23,0xBB,0x46,0xCD, + + 0xCA,0x54,0xD4,0xB2,0x73,0xBF,0xD1,0xED,0xC0,0xA1,0x28,0xAA,0x33,0xBF,0x0B,0x7D, + + 0x09,0xC3,0xC2,0xD9,0x91,0xE9,0xD8,0x2B,0x78,0xC5,0x93,0xFC,0xE8,0x3B,0xD2,0x04, + + 0x22,0x21,0x80,0xC4,0x2A,0xBD,0x72,0x11,0x9F,0xDB,0xAE,0x4B,0x0B,0x8F,0xF7,0x14, + + 0x2D,0x71,0x73,0x16,0xF4,0xC0,0xDC,0xD9,0x3D,0x3D,0x80,0x24,0x8E,0xDC,0xB2,0x88, + + 0x53,0xAD,0x92,0x7A,0x41,0xB1,0x17,0x32,0x82,0x8D,0x55,0xD1,0xF3,0xDF,0x65,0xF3, + + 0x1E,0x1D,0x4D,0x14,0xCD,0x71,0x27,0x2E,0x1E,0xD8,0x85,0xF2,0x2F,0x79,0xD4,0x42, + + 0xE7,0x9C,0xE2,0x26,0x59,0xD5,0xF7,0xD8,0xBE,0xE5,0xB4,0xB2,0xBA,0x79,0xC8,0xCE, + + 0xC2,0xE4,0x88,0xFC,0x10,0x75,0x67,0xBE,0x65,0x77,0xDB,0x76,0xF3,0x1C,0x85,0xD1, + + 0x99,0x54,0x42,0x54,0xDE,0x74,0xF8,0x9A,0x7F,0x0A,0x79,0x77,0xC1,0x7C,0x33,0xC8, + + 0x56,0x94,0xF9,0xF4,0x7B,0x6E,0x7D,0x0E,0x6C,0xF1,0xE5,0xD5,0x16,0xB7,0x3E,0x66, + + 0xAB,0x15,0x82,0xDF,0xC5,0x49,0x14,0x36,0x9F,0x5B,0x95,0xBF,0x59,0x68,0xCE,0x9C, + + 0xCE,0x1F,0xD5,0x9D,0x42,0x39,0xE1,0xBA,0x47,0x37,0x29,0xCD,0x7F,0xB0,0x7A,0x4B, + + 0x09,0x05,0x7A,0xF3,0x8E,0x65,0xA9,0x01,0x09,0x85,0xAD,0x42,0x83,0x5A,0xA5,0xD9, + + 0xAF,0x9B,0xEF,0xCB,0xCD,0x36,0x21,0x08,0x23,0x68,0xD7,0xAE,0xD8,0x6B,0x42,0x3B, + + 0x7A,0x5E,0xD7,0x48,0x38,0xCB,0x41,0x96,0xA0,0xCD,0x8C,0x94,0x12,0x6D,0x41,0xBA, + + 0xD4,0x91,0xF6,0x2F,0x5D,0x7F,0x57,0x03,0xE4,0xA0,0x72,0x6F,0x4E,0x77,0xDD,0xE7, + + 0x28,0x1A,0xFF,0x3E,0xD0,0x5B,0x5F,0xE4,0xEC,0x7C,0xA9,0xC5,0x13,0x6F,0x8B,0x5C, + + 0xE8,0x7F,0x8F,0x86,0x1A,0x90,0x38,0x87,0x39,0x55,0x5B,0xEE,0xCE,0x6E,0x8B,0x45, + + 0x0A,0x5C,0xE5,0x74,0x6C,0x5F,0xB3,0xD1,0x10,0x81,0xF4,0x9F,0xA9,0x41,0xFE,0x0C, + + 0x63,0x87,0x02,0xB6,0x13,0x83,0x1B,0x86,0x9D,0x22,0x43,0x11,0xF4,0x1E,0xE5,0xC9, + + 0x3F,0x2D,0x9A,0xB7,0x63,0xA4,0x92,0x93,0x18,0x61,0xB4,0xA3,0xD6,0xE2,0x83,0x53, + + 0x83,0x03,0x3E,0x93,0x9D,0x0F,0x03,0x02,0xAB,0x6C,0x79,0x5F,0xD5,0x4E,0x68,0xC6, + + 0x46,0xBF,0x45,0x40,0x82,0xC0,0x08,0x28,0x77,0x6B,0x30,0xE7,0x75,0x67,0xFF,0xA1, + + 0x1B,0x58,0x90,0x72,0xFE,0x3F,0x32,0x6F,0x56,0x6A,0xA8,0xE9,0xBE,0x14,0xA1,0x46, + + 0x52,0x0B,0x5A,0xA5,0x3A,0x5B,0xF2,0x10,0x9A,0x4A,0x0A,0x99,0x59,0x4B,0x3B,0x52, + + 0x6C,0xD7,0xF1,0x4A,0x15,0x6B,0xFE,0x34,0x05,0x18,0x1A,0x37,0x9B,0xFC,0x44,0x60, + + 0x8D,0x85,0x1F,0x33,0xA3,0xF5,0x67,0x59,0x2A,0x4B,0xB3,0x5F,0x7D,0xE3,0x02,0x78, + + 0xB0,0x85,0xF5,0x1E,0x92,0x14,0x04,0x8A,0x8F,0x49,0x39,0xCD,0x4D,0x44,0x1E,0x49, + + 0x2D,0xD7,0x70,0xE1,0xEF,0xEA,0x48,0xD8,0xFE,0xA6,0x26,0x5C,0x83,0xE3,0x13,0x25, + + 0xEB,0x7E,0xC9,0x1F,0x6C,0x2D,0x73,0xA2,0x40,0x46,0xA5,0xCD,0x9D,0x14,0x02,0x1C, + + 0x4F,0xCE,0xC4,0x2C,0x91,0x2A,0x4C,0x76,0x8C,0xCC,0x83,0x08,0xB5,0xFD,0xAA,0x4A, + + 0x18,0x8B,0xF8,0x52,0xBC,0xA9,0xA0,0x85,0x6B,0x60,0x25,0x1C,0x7D,0x20,0x61,0xA2, + + 0xBD,0xBE,0xBA,0x8F,0x82,0xA3,0x2A,0x4D,0xCF,0xAE,0xD3,0x63,0x5C,0xEA,0xC1,0x0B, + + 0x89,0x8D,0xED,0x2D,0x1D,0x63,0xFC,0x8D,0x8B,0x8E,0x7F,0x8E,0xEF,0x2C,0x13,0x00, + + 0xE1,0x18,0x5B,0x7A,0x34,0xF2,0x0A,0x12,0xAE,0xC3,0xB2,0xAF,0xF4,0x77,0x04,0xF0, + + 0x9C,0x9D,0xAB,0xBB,0x8A,0x6C,0x5A,0x1B,0x9A,0x7C,0xC2,0xBF,0x4A,0x0E,0xE5,0x93, + + 0x6E,0x8F,0xE1,0x37,0xB2,0xF0,0x3D,0x8B,0x0D,0x71,0x8B,0x7E,0xD5,0x82,0x15,0xFD, + + 0x24,0x9E,0x7C,0x69,0x68,0xCE,0x6F,0x20,0xD7,0x0C,0x87,0x4C,0x8A,0x0C,0x34,0xA0, + + 0x72,0xF8,0x32,0xE1,0x97,0x1B,0xB2,0x66,0x6C,0xD0,0x47,0xDF,0x8A,0x25,0xE9,0x21, + + 0x3B,0x87,0x92,0xD1,0x96,0x1A,0xC7,0x61,0x17,0xDF,0x3C,0x32,0x73,0x21,0x3C,0xC9, + + 0x03,0x30,0xB4,0x43,0xB4,0xC8,0x8A,0xA4,0x2C,0x67,0xC2,0x53,0x06,0x55,0xD5,0x40, + + 0xB3,0x38,0xFA,0xF0,0x16,0x18,0xE9,0x77,0xED,0xCF,0xA9,0xE8,0xD1,0x22,0x9B,0xC8, + + 0x8D,0x4D,0x09,0xAA,0xBE,0x74,0xF6,0xC3,0x30,0x75,0x76,0xDA,0x7F,0x55,0x6E,0xB3, + + 0xD1,0x89,0xAE,0x9E,0x3D,0xB9,0x6F,0x06,0x9A,0xB5,0x75,0xF9,0xA3,0xF3,0xF5,0xB4, + + 0xC2,0xD8,0xAF,0x0B,0xFC,0x16,0x62,0x96,0x13,0x77,0xA9,0x3F,0x03,0x57,0x54,0x60, + + 0x5A,0xD9,0xCF,0xC9,0xFC,0xF9,0x80,0x28,0x83,0x06,0xBC,0xAC,0xAA,0xCB,0xE7,0xB5, + + 0xEF,0xFE,0x75,0x4A,0x3C,0x81,0x09,0xAD,0x93,0x6A,0x61,0xD1,0x5C,0x49,0x3E,0xB8, + + 0x7B,0xF1,0x79,0xF9,0x9E,0x12,0xDB,0xFC,0xFB,0xB9,0x36,0xFA,0xAB,0x9E,0xA3,0x4E, + + 0xED,0xBE,0x99,0xC8,0x1F,0x11,0xCC,0x71,0xED,0xCC,0xA6,0xD5,0x90,0xBC,0x36,0xD5, + + 0x0A,0x39,0xBF,0x5B,0xB5,0xC5,0xCB,0xDC,0x4E,0x00,0x58,0x4F,0x0B,0xDC,0xB7,0xA4, + + 0xF0,0x63,0x2C,0x81,0x6C,0xDF,0x2E,0x91,0x8A,0x63,0x50,0xA5,0xD7,0x22,0xA4,0x5F, + + 0xFC,0x7D,0x53,0x14,0x72,0xAD,0x4C,0x23,0x23,0x02,0x71,0x0F,0x25,0xF4,0x36,0xB1, + + 0x86,0x6A,0x41,0x84,0xB8,0xDD,0x6F,0x08,0x08,0x21,0xD1,0x80,0xD6,0x40,0xA0,0x6F, + + 0x14,0x6D,0x9F,0x20,0x22,0x6E,0x39,0x2F,0x4E,0xEE,0x8E,0x0A,0xE5,0xB6,0x19,0x44, + + 0x8F,0x67,0xF3,0x69,0xEE,0xB7,0xE3,0xCD,0xBE,0xD7,0xF3,0x63,0xBB,0x20,0x35,0x97, + + 0xC9,0x96,0x7F,0x4A,0x2F,0xD1,0x98,0x69,0x2B,0xD6,0xE2,0xC5,0xDF,0xCA,0xEA,0xE4, + + 0x57,0x18,0x72,0xE8,0x94,0xDE,0x7E,0x0E,0x1B,0x04,0xC3,0x75,0x39,0x22,0xF2,0xC2, + + 0xBD,0x0D,0xDA,0xBD,0x5F,0x6A,0x27,0xC9,0x36,0xE4,0x7D,0x17,0x20,0x02,0xBF,0x9B, + + 0x38,0x55,0xFD,0xF4,0x18,0x6A,0x42,0xBB,0x7A,0xE5,0x87,0xA8,0x5F,0x28,0x2E,0xA2, + + 0x8E,0x4A,0x9E,0xE3,0x7A,0xA5,0x99,0x4B,0x7B,0xE8,0xAD,0x9C,0xA9,0x98,0x61,0x09, + + 0x8B,0x4A,0x8E,0x35,0x9E,0x08,0x84,0xBA,0xA6,0x42,0x30,0x84,0x04,0x39,0x52,0x5A, + + 0x2C,0xF4,0x9D,0x28,0x2A,0xD6,0xCB,0xCA,0xB9,0xE6,0x2C,0x05,0x2D,0x1A,0x81,0x0F, + + 0xE3,0x9F,0x39,0x44,0xBF,0xD3,0x87,0x9B,0x74,0x48,0xEA,0xE8,0x50,0xAA,0x02,0xD0, + + 0xE2,0x9E,0xAC,0x75,0x18,0x7D,0x8B,0xFC,0x49,0x7C,0xE4,0xDC,0x3B,0xED,0x24,0x3A, + + 0xB4,0x98,0x2F,0xDE,0xAE,0xF3,0xD9,0x57,0xF0,0xBB,0x70,0xC9,0x06,0x0D,0xF8,0xF4, + + 0xB8,0x4F,0x74,0x6D,0x64,0x80,0x9B,0xFD,0xCF,0x43,0xA5,0x7B,0x3A,0xCC,0x62,0xA8, + + 0xDF,0x4D,0x4A,0x00,0x32,0xDF,0xC6,0x8C,0xA8,0xB3,0x38,0xD7,0x56,0x86,0x58,0xAB, + + 0x07,0x53,0xB4,0x67,0x05,0x73,0xDC,0x30,0xFE,0xFE,0x67,0x36,0xB3,0xB6,0x67,0x81, + + 0x57,0x87,0xBD,0x76,0x88,0x57,0x80,0xB2,0xD2,0xC3,0x6A,0xD6,0xDA,0xA4,0x09,0x36, + + 0x78,0x6E,0xC9,0x84,0x10,0x9C,0xB9,0xC2,0xD9,0x5C,0x5D,0x31,0xB3,0xEC,0xDF,0x70, + + 0xD1,0xCB,0x84,0x04,0x34,0x16,0x94,0xE4,0xE3,0x59,0xB6,0xE4,0xEF,0x89,0x72,0xF9, + + 0xF5,0x1F,0x0C,0x55,0xA4,0x77,0x0A,0xCF,0x05,0x17,0xA5,0xCA,0x0B,0x80,0xA9,0xB2, + + 0x96,0xE0,0x2D,0x41,0xB0,0x62,0xEA,0xA3,0x43,0x83,0x78,0x0B,0x13,0x49,0x09,0x39, + + 0x37,0x55,0x8D,0x22,0xB5,0x15,0x1D,0xD8,0x60,0x5A,0x4E,0x0F,0x08,0x35,0x29,0xD2, + + 0x9D,0x84,0x13,0xAB,0x99,0x97,0xA2,0xDB,0x5C,0x57,0x22,0xCE,0x83,0x14,0x5A,0x87, + + 0x0F,0x1A,0xB6,0x6F,0x41,0x5C,0xBA,0xCB,0x55,0x56,0xA0,0x19,0xAB,0xE6,0xC7,0x88, + + 0x61,0xCE,0x94,0x09,0xBA,0xD8,0xD7,0x29,0x51,0xF5,0xA9,0x1D,0x22,0xC5,0xDF,0x39, + + 0x2C,0x58,0xB7,0x6E,0xCD,0x79,0xAB,0xCA,0x99,0x54,0x5F,0xF8,0x74,0xAF,0x02,0x28, + + 0x48,0x83,0x2E,0x48,0x30,0x9C,0xA9,0x2A,0xCB,0x83,0x92,0xCA,0x8F,0x70,0xA9,0xAB, + + 0x17,0xCB,0x58,0xBC,0x3F,0x18,0x8B,0xE7,0x19,0xF9,0x6D,0x58,0x87,0x1E,0xBC,0x0E, + + 0x43,0x8F,0x07,0x4C,0x2D,0x93,0x97,0xEC,0x3E,0x8A,0xEF,0x92,0x7B,0x73,0x47,0xDC, + + 0xC0,0x0E,0x5A,0xF9,0x6F,0x8E,0x0B,0xBC,0x23,0x1C,0x1F,0x7D,0xC3,0x8A,0xCC,0x71, + + 0x22,0x76,0x58,0x75,0x78,0xA9,0xE6,0x93,0x6E,0x6F,0x70,0xE2,0x50,0x34,0x60,0x07, + + 0xE4,0x2E,0xF6,0x23,0x49,0x03,0x06,0x9A,0x8F,0x82,0xED,0x09,0x63,0x74,0x1F,0xA2, + + 0x46,0x82,0x21,0x66,0xDD,0xE3,0xA4,0x21,0x9C,0xAE,0x64,0x38,0xA6,0x37,0x7D,0xE0, + + 0xA3,0x87,0x3F,0x95,0x15,0x18,0x47,0x0B,0x2C,0x20,0x6C,0x0C,0xA7,0xA1,0xCC,0xE7, + + 0xD3,0xE7,0x71,0x38,0x74,0x5B,0x48,0x1D,0xC7,0xC9,0x67,0x95,0xDA,0xB9,0x0E,0xFE, + + 0xF2,0x23,0x50,0xA8,0x07,0xE8,0xB8,0xF2,0x7F,0xCB,0x38,0xF7,0x3A,0xE8,0xCA,0x89, + + 0x3D,0xE8,0x9F,0x6E,0xA5,0x92,0xC2,0xD2,0x3A,0x05,0x89,0x40,0x6B,0xE9,0x3C,0x13, + + 0x8B,0x2C,0x16,0x90,0x5D,0x36,0x41,0x8C,0x44,0xCA,0x06,0x50,0x76,0xA5,0xB3,0x79, + + 0x2A,0x02,0x9A,0xDE,0x40,0x29,0x54,0x8B,0xA7,0xB9,0x3E,0x69,0x88,0x4B,0xBA,0x74, + + 0x4E,0x56,0x60,0x2F,0x71,0xB6,0x3E,0xD8,0xCD,0x59,0xDB,0xBA,0x5B,0x6B,0x03,0x5A, + + 0xA6,0x81,0xE5,0xFC,0xAC,0x21,0xF3,0xAA,0xD3,0x41,0x14,0x9B,0x5E,0x6C,0x73,0x82, + + 0x00,0xF6,0x13,0xFF,0x99,0x86,0x1D,0x8A,0xF5,0x6F,0x40,0x18,0x7C,0x14,0x73,0xB5, + + 0xE7,0xBD,0x59,0xDD,0x22,0xA6,0x89,0xEE,0x42,0x18,0xB6,0x1B,0xF2,0x89,0x54,0x77, + + 0x4C,0x12,0x94,0x66,0xEA,0x2E,0xC9,0xD7,0xB3,0x5E,0x82,0x39,0x3C,0xEF,0x29,0xB1, + + 0xAF,0x4F,0x62,0x30,0xFE,0x51,0xD0,0xC2,0x12,0x9D,0x5C,0x8D,0x72,0x13,0x73,0x7B, + + 0x89,0xAD,0x14,0xAC,0xA3,0xED,0xBB,0xFB,0xF7,0x8D,0x9D,0xDE,0x20,0x62,0xC8,0xF1, + + 0x50,0x36,0xE4,0x23,0x95,0x1F,0xF4,0x22,0x9A,0x7D,0x62,0xB9,0x46,0x5D,0x7A,0xD2, + + 0x71,0x3C,0xFC,0x12,0x37,0xBB,0xAD,0x50,0x63,0xD3,0xEA,0xD6,0x79,0x5A,0xF7,0xF0, + + 0xDC,0x34,0x32,0xA0,0x15,0x1D,0x20,0x41,0x48,0x7F,0x67,0x77,0x74,0x5A,0xFF,0xA2, + + 0x83,0x3C,0x95,0x64,0x9F,0xD6,0x12,0xC0,0xD9,0xDC,0xAC,0x48,0x1C,0xE2,0x9B,0x85, + + 0xCF,0x87,0x43,0xFA,0xE6,0x45,0x7E,0xCD,0x12,0x81,0xA0,0x1C,0x8D,0x2B,0x0A,0x63, + + 0x26,0xA4,0x2C,0x57,0x5A,0xD0,0x69,0xCD,0x51,0x00,0xC4,0xCB,0x88,0xFB,0x03,0x77, + + 0x4F,0x75,0xC2,0x67,0x2A,0x95,0x62,0xD8,0xD2,0x43,0x35,0x66,0x52,0xF8,0x53,0xFB, + + 0x18,0x42,0x59,0xB5,0x00,0xD2,0x28,0x77,0xBA,0x22,0xC5,0x4B,0xF1,0xD5,0xB7,0xF9, + + 0x46,0x3B,0x9E,0x7D,0x1A,0xFA,0x82,0xD9,0x1C,0xD7,0xC9,0x56,0x7C,0x94,0x29,0xDD, + + 0xC4,0x5A,0x7A,0xB9,0x9C,0x16,0x47,0xDC,0xE0,0xBB,0xEB,0x24,0x7E,0x5B,0x73,0x78, + + 0x94,0x9E,0xE7,0x81,0x1D,0x15,0x6D,0xF9,0x84,0x3B,0x89,0x03,0x26,0x57,0x49,0x3F, + + 0x46,0xCA,0xFD,0x1B,0xBF,0x59,0xC0,0x3F,0xE7,0xCA,0x81,0x13,0x09,0xC8,0x33,0xF5, + + 0x18,0x23,0xDE,0x21,0x38,0x9E,0xD5,0xC3,0xB2,0x8D,0x68,0x0C,0xD2,0x01,0xBF,0x29, + + 0x19,0x40,0xD6,0xF3,0xC0,0x60,0x2C,0xAA,0xD3,0xDE,0x2A,0xDA,0x7F,0xFD,0xA7,0x4F, + + 0xF6,0x3F,0x79,0xAD,0x49,0xDB,0x51,0x4E,0xE3,0x7A,0x8F,0xD1,0xD8,0x0B,0x39,0x72, + + 0x44,0xAC,0x3E,0x21,0x67,0xFB,0xCE,0xC6,0x17,0x4E,0xFF,0xFF,0xA6,0x17,0x59,0xEB, + + 0xA5,0x5F,0x00,0x8C,0xB5,0x2B,0x68,0x07,0xB9,0x4F,0x14,0xE4,0x5C,0xA0,0x48,0xE8, + + 0xBD,0xFA,0x48,0xF4,0x11,0x00,0x4A,0x31,0xAA,0x30,0x70,0x1D,0xB0,0x7A,0x00,0x67, + + 0x3F,0xB9,0x80,0x81,0x99,0x43,0xAE,0x11,0xCC,0x9F,0xB1,0xA0,0x57,0x03,0x30,0xED, + + 0x79,0x43,0xEC,0xFD,0x2A,0x6E,0xC6,0x31,0xB6,0x4C,0xFC,0xC3,0x5C,0x78,0x3E,0x79, + + 0xE9,0x95,0xDC,0xBB,0xF9,0x95,0x28,0x02,0x02,0x4B,0x50,0x75,0x6E,0x08,0x93,0x53, + + 0x7C,0x09,0x08,0x55,0x6D,0xA8,0xB9,0x12,0x03,0x4A,0xBA,0x74,0x52,0xC8,0x3F,0x6C, + + 0x69,0x57,0x3E,0xC1,0xF9,0x30,0x09,0x75,0x40,0x1A,0xB3,0x68,0x3B,0x17,0x7E,0x38, + + 0x73,0x1E,0xB7,0x78,0x78,0xB6,0x86,0x71,0xB4,0x43,0xC5,0x8A,0xD5,0xCC,0x4A,0xF3, + + 0x3B,0x37,0x79,0x04,0xBD,0x97,0xD2,0xEC,0x43,0xE3,0x29,0x4A,0x9A,0x48,0xB2,0xEB, + + 0x23,0x67,0xCD,0xFC,0x11,0xBB,0x5A,0xC9,0x3D,0x46,0xEA,0xB8,0x7A,0x2B,0xBB,0xFA, + + 0xAA,0x1A,0xA8,0x73,0x49,0x97,0x00,0x06,0xA3,0xFB,0xDB,0x28,0xDE,0xC1,0x52,0x66, + + 0x2C,0x8D,0xB4,0x2C,0x38,0xD4,0x45,0x04,0xC9,0xE6,0x0B,0x7B,0x25,0x6D,0x82,0x88, + + 0x1F,0xF8,0x02,0xBD,0x7C,0x21,0x92,0xAC,0x41,0x4A,0x9A,0xE8,0x31,0x7D,0xDF,0x42, + + 0x3F,0xD0,0xD9,0x2F,0x6B,0x26,0x69,0x64,0xE8,0x4B,0xE4,0x44,0x78,0x2D,0x54,0x57, + + 0xFA,0xBA,0xB1,0xB2,0x98,0x8E,0xFA,0xE7,0x6B,0x48,0xEC,0x8F,0x92,0xFF,0x63,0x3B, + + 0x76,0x03,0x4B,0x4C,0xA7,0x24,0xF2,0xF6,0x6A,0x49,0xDD,0x50,0xF8,0xEF,0x45,0xE6, + + 0x42,0x10,0x21,0x66,0x36,0x70,0x4E,0xA1,0x0A,0x81,0x07,0xD6,0xD3,0x0B,0xB4,0x6B, + + 0xC8,0x32,0x27,0xD3,0x02,0xCC,0x3C,0x63,0x45,0x3D,0x63,0x48,0xE3,0x33,0xFD,0xE7, + + 0x53,0x02,0xCD,0xFE,0xE1,0x39,0x6B,0x9D,0xAA,0x23,0x94,0x5E,0x83,0x7E,0x1B,0xF3, + + 0x5E,0xBE,0x35,0x07,0xF9,0x21,0x44,0xCF,0x44,0xD5,0x99,0x08,0x8A,0x63,0x64,0xE0, + + 0x41,0x41,0xBE,0xA4,0x26,0xC9,0x74,0xA0,0xC3,0xD3,0x6F,0x76,0x72,0x7E,0x34,0xF7, + + 0xD6,0x1A,0xD4,0xD1,0x58,0x84,0x5E,0x72,0xFE,0x9E,0xE6,0x16,0x98,0x04,0x3D,0xE6, + + 0xC1,0xBC,0xDA,0x25,0xBA,0xEB,0x81,0x0A,0xE4,0x9C,0x04,0x61,0x99,0xDE,0xF9,0xAE, + + 0x00,0x72,0xC9,0xA6,0xCB,0x3E,0x65,0x81,0xC9,0x5E,0xA3,0xCD,0xF5,0xDC,0x56,0x2D, + + 0x2E,0xB3,0x3E,0x1E,0x38,0x30,0x12,0x68,0x64,0x1A,0xCD,0xAC,0x07,0x78,0x31,0x7A, + + 0xC0,0x3A,0x71,0x67,0x0A,0xD6,0xB6,0x89,0xEE,0x38,0xC5,0xC3,0x2C,0x70,0x0D,0xF3, + + 0x0B,0x7F,0x8D,0x65,0x66,0xF7,0x49,0x0B,0x6D,0x9B,0x4C,0xEF,0xFE,0x32,0x1D,0x98, + + 0x52,0x96,0x37,0x06,0xDA,0x3F,0xF7,0x90,0x08,0x40,0x9E,0x3F,0xF0,0x96,0xFD,0x2A, + + 0x86,0xE1,0x91,0x48,0x1D,0xF5,0xD6,0x89,0xDA,0xE3,0x04,0x9E,0xD9,0xDC,0x5E,0x24, + + 0xAB,0x5F,0x90,0xF4,0xC2,0x32,0x9E,0x28,0x24,0xA0,0x5E,0xED,0x47,0x76,0x3F,0x30, + + 0xEE,0xE5,0x07,0x3C,0xB9,0x7C,0x88,0x13,0x9D,0xA9,0xC4,0x9E,0x8A,0x75,0x05,0x0C, + + 0x56,0x90,0xC9,0xE5,0x52,0xAE,0x47,0xFC,0x80,0x8E,0xDD,0x8E,0xC7,0xF6,0x30,0x8A, + + 0xA1,0x06,0x9B,0xA3,0xE3,0x0D,0xA5,0x42,0x28,0x4D,0xBC,0x21,0xF5,0x68,0x81,0x90, + + 0xC0,0x27,0x96,0x3F,0x63,0x0E,0xAB,0x0D,0x3D,0x14,0xB1,0x44,0xF6,0xE7,0xAA,0x43, + + 0x80,0xA2,0x30,0x3A,0x7F,0xE6,0xCC,0x18,0xB8,0x57,0xB0,0xC5,0x56,0xEA,0x11,0xD4, + + 0x47,0x63,0x0D,0x75,0x31,0x4E,0x2A,0xB7,0xD0,0x3F,0xB1,0x90,0x76,0xE5,0x58,0x7C, + + 0x37,0x71,0xE2,0x35,0x2A,0x2D,0x43,0x7F,0xE5,0xBF,0xCE,0x4B,0x37,0xC4,0xC1,0x2C, + + 0x92,0x08,0xFB,0xB6,0x57,0x08,0x58,0x8F,0x13,0x1E,0x98,0x39,0x30,0xE8,0x7C,0x0C, + + 0x7B,0xFA,0xE5,0xA7,0x2F,0x0B,0xF1,0x9A,0x31,0x5D,0xA9,0x08,0x56,0x95,0x14,0xB9, + + 0x04,0x8A,0x7C,0x27,0x9F,0xAC,0x4A,0x77,0xD2,0x3B,0xE3,0xC2,0xF4,0x1F,0x2A,0x0E, + + 0x04,0xD4,0x66,0xE0,0xB0,0xA5,0x08,0x1B,0x34,0x67,0xBA,0x63,0x3F,0xA8,0x28,0xF8, + + 0x3E,0x74,0x92,0xE1,0xEC,0xCA,0x29,0xC9,0x3D,0x44,0xF8,0xDC,0xDF,0xA1,0x43,0x5D, + + 0x46,0x87,0x67,0xE0,0x65,0x0B,0x24,0xDB,0xC4,0x69,0xCB,0xAD,0xDD,0xB2,0x93,0x2B, + + 0x85,0xC4,0x6B,0xEE,0xDC,0xF6,0x2D,0x06,0x26,0x3A,0x2C,0xDD,0x5F,0xA3,0x9D,0x88, + + 0xAF,0x53,0xA7,0xCC,0xDB,0x21,0x48,0x99,0x7A,0x67,0x32,0x9F,0xDE,0xE4,0x7D,0x44, + + 0x7F,0x39,0x15,0x6E,0x1D,0xEF,0x72,0x8A,0x69,0xC2,0x3A,0x8F,0xF7,0xE5,0xA3,0x4E, + + 0x5A,0x7A,0xDB,0xB1,0x32,0xA3,0xE0,0xBA,0x4C,0xCA,0x77,0x9E,0xAA,0xBB,0xFE,0x41, + + 0xBB,0x89,0xB5,0x17,0x3E,0x10,0xBB,0xAF,0x8F,0xC9,0x73,0x00,0x1D,0x9F,0x72,0x22, + + 0xD7,0x6B,0xDA,0x64,0x26,0xFD,0x51,0x54,0x62,0xF8,0xEE,0x5C,0xD7,0xF4,0x64,0xDE, + + 0xA8,0x1C,0xE4,0xAB,0xC8,0xDD,0xBC,0x52,0x63,0x7A,0xDC,0xF6,0x7B,0xFC,0x65,0x7F, + + 0x18,0xD0,0xBF,0x85,0x7E,0xBD,0xA1,0x27,0xC7,0xD2,0x4E,0x23,0xBF,0x5C,0xCA,0x68, + + 0x44,0x45,0x69,0x68,0x38,0xA8,0x28,0x88,0x8E,0x82,0xF7,0x08,0x56,0xFE,0x66,0x40, + + 0xA6,0x55,0xBC,0xC2,0x7E,0xC5,0xC5,0x66,0x0D,0xD0,0xF0,0x06,0xCB,0xF2,0x8E,0x56, + + 0x2F,0x66,0xF6,0xD7,0x14,0xC8,0xCD,0x76,0x0C,0xF0,0x48,0x94,0x8C,0xB7,0x1D,0xE7, + + 0xA0,0x3D,0xBD,0xD7,0x5F,0xC7,0x7D,0xE6,0x8D,0x07,0x5F,0x95,0x57,0x69,0x0D,0xE9, + + 0xF3,0x9A,0xD7,0x24,0x8B,0x18,0x35,0xF7,0xCE,0x28,0xA3,0x16,0xC8,0xD7,0x5D,0xF9, + + 0x06,0x39,0xDA,0xE8,0xE2,0xAA,0x0F,0xEC,0x00,0xDE,0xFC,0x71,0xDF,0xFE,0xFA,0x64, + + 0x4E,0xDB,0xD6,0x5E,0x6B,0xA2,0x80,0xBE,0x45,0x4F,0x40,0x5C,0xDC,0x71,0x1F,0x74, + + 0x45,0x99,0x1F,0xFF,0x3C,0x1C,0x17,0xD7,0x4D,0xD9,0xBB,0xA8,0x5D,0x70,0xEF,0x6A, + + 0xE0,0x06,0xCA,0xE9,0x30,0x3D,0x66,0xC4,0x48,0xD0,0xBD,0x5D,0xD9,0x76,0x9D,0xED, + + 0x8F,0x07,0xF5,0xBD,0x4E,0xFE,0xC9,0x78,0x72,0x01,0x36,0xA2,0xA3,0xFA,0x55,0x66, + + 0xAD,0xC1,0x2E,0x92,0xE2,0x1D,0x62,0x05,0x86,0x0C,0xA0,0x87,0x9E,0x82,0x67,0xFB, + + 0xAE,0x61,0xB9,0xB6,0x5F,0xC1,0x15,0xEB,0xEF,0x9E,0x5D,0x9C,0x5F,0xBC,0x8E,0x39, + + 0x03,0x62,0xFC,0xAC,0xCF,0xB4,0x65,0x2A,0xCE,0x9F,0x3F,0xB3,0x22,0xBD,0xCA,0x10, + + 0x82,0x04,0x98,0x89,0x70,0x30,0xCD,0x21,0x46,0x18,0xF0,0x9B,0xA3,0x6D,0x68,0x12, + + 0x00,0x8A,0x52,0xE4,0x3B,0x25,0x8D,0xD0,0x45,0xE1,0x32,0x46,0xA4,0x6E,0x8B,0x72, + + 0xF4,0x0D,0xD9,0x89,0x12,0x5E,0xBE,0x30,0xFC,0xEF,0x6E,0xD9,0xD0,0x64,0x5B,0x95, + + 0xEA,0xCA,0x08,0x91,0xF2,0x0F,0x88,0x76,0x03,0x33,0x2D,0x4A,0x72,0x0D,0x40,0x40, + + 0x02,0x04,0xC0,0x44,0x12,0x24,0x50,0x60,0x42,0x44,0xD0,0x64,0x52,0x64,0x48,0x50, + + 0x03,0x05,0xC8,0x54,0x13,0x25,0x58,0x70,0x43,0x45,0xD8,0x74,0x53,0x65,0x41,0x41, + + 0x82,0x06,0xC1,0x45,0x92,0x26,0x51,0x61,0xC2,0x46,0xD1,0x65,0xD2,0x66,0x49,0x51, + + 0x83,0x07,0xC9,0x55,0x93,0x27,0x59,0x71,0xC3,0x47,0xD9,0x75,0xD3,0x67,0xDD,0xE6, + + 0x0E,0x62,0xA2,0x10,0x9A,0x54,0x2C,0x04,0x8A,0x48,0xF0,0x20,0xAD,0xEE,0x6A,0x1A, + + 0x08,0x04,0x4A,0xF8,0xBB,0x2D,0x12,0xC8,0x2B,0x46,0x47,0x1C,0x22,0x6B,0xBE,0x8D, + + 0xCF,0x8A,0x59,0xFD,0xF6,0x25,0x1B,0x16,0x4A,0x4E,0x93,0x09,0xA7,0x6A,0x13,0x98, + + 0xC1,0x9A,0x0F,0x99,0xFA,0x28,0x21,0xCA,0xFD,0xE4,0xC0,0x12,0xAE,0x6F,0x42,0x48, + + 0x0A,0x0C,0xC2,0x4C,0x1A,0x2C,0x52,0x68,0x4A,0x4C,0xD2,0x6C,0x5A,0x6C,0x4A,0x58, + + 0x0B,0x0D,0xCA,0x5C,0x1B,0x2D,0x5A,0x78,0x4B,0x4D,0xDA,0x7C,0x5B,0x6D,0x43,0x49, + + 0x8A,0x0E,0xC3,0x4D,0x9A,0x2E,0x53,0x69,0xCA,0x4E,0xD3,0x6D,0xDA,0x6E,0x4B,0x59, + + 0x8B,0x0F,0xCB,0x5D,0x9B,0x2F,0x5B,0x79,0xCB,0x4F,0xDB,0x7D,0xDB,0x6F,0x95,0x80, + + 0x4B,0x61,0x7B,0xF7,0x0C,0xE3,0x84,0x24,0x27,0xD0,0x94,0xA4,0x70,0x70,0x32,0xBD, + + 0xD6,0x9C,0xF2,0x92,0x52,0x44,0x3C,0xF0,0x02,0xD2,0x9C,0xB4,0x71,0x71,0x01,0x05, + + 0xE7,0x92,0x7E,0x75,0xB2,0xC3,0xD5,0x45,0x85,0x54,0x95,0xA5,0xF0,0x72,0x1F,0x11, + + 0x5E,0xCE,0x5E,0x66,0x3D,0x72,0x65,0xC3,0x0A,0x02,0x9D,0xB5,0xF1,0x73,0x44,0xC0, + + 0x22,0x14,0xC4,0xC4,0x32,0x34,0x54,0xE0,0x62,0x54,0xD4,0xE4,0x72,0x74,0x4C,0xD0, + + 0x23,0x15,0xCC,0xD4,0x33,0x35,0x5C,0xF0,0x63,0x55,0xDC,0xF4,0x73,0x75,0x45,0xC1, + + 0xA2,0x16,0xC5,0xC5,0xB2,0x36,0x55,0xE1,0xE2,0x56,0xD5,0xE5,0xF2,0x76,0x4D,0xD1, + + 0xA3,0x17,0xCD,0xD5,0xB3,0x37,0x5D,0xF1,0xE3,0x57,0xDD,0xF5,0xF3,0x77,0x54,0xA7, + + 0xDF,0x95,0xE6,0xDA,0xD1,0x35,0x68,0x85,0x17,0x07,0x96,0xAC,0x78,0x78,0xB1,0xF8, + + 0x1D,0xB4,0xB6,0x66,0x95,0x34,0xD4,0xA8,0xEB,0x5D,0x9E,0xBC,0x79,0x79,0x78,0x0D, + + 0xEB,0xF0,0x78,0x0F,0x7D,0xB7,0xD7,0x6C,0x55,0x18,0x97,0xAD,0xF8,0x7A,0x9A,0x64, + + 0xA9,0xC4,0x9D,0x1D,0x52,0x7F,0x17,0xDB,0xC8,0x79,0x9F,0xBD,0xF9,0x7B,0x46,0xC8, + + 0x2A,0x1C,0xC6,0xCC,0x3A,0x3C,0x56,0xE8,0x6A,0x5C,0xD6,0xEC,0x7A,0x7C,0x4E,0xD8, + + 0x2B,0x1D,0xCE,0xDC,0x3B,0x3D,0x5E,0xF8,0x6B,0x5D,0xDE,0xFC,0x7B,0x7D,0x47,0xC9, + + 0xAA,0x1E,0xC7,0xCD,0xBA,0x3E,0x57,0xE9,0xEA,0x5E,0xD7,0xED,0xFA,0x7E,0x4F,0xD9, + + 0xAB,0x1F,0xCF,0xDD,0xBB,0x3F,0x5F,0xF9,0xEB,0x5F,0xDF,0xFD,0xFB,0x7F,0x1E,0x3A, + + 0x27,0xC0,0x9A,0xF5,0x75,0xA6,0xA5,0xDF,0xF3,0x82,0x20,0xA4,0x91,0x6D,0x40,0x61, + + 0x39,0x07,0xF2,0xEC,0x7D,0x30,0x3A,0xB0,0xC5,0xC9,0x47,0xF1,0x97,0xE1,0x27,0x2E, + + 0x09,0x04,0x81,0x53,0x37,0xE3,0xFD,0x4C,0xC2,0x08,0x89,0xD9,0x78,0xEF,0xAF,0x53, + + 0x2C,0xC2,0xD7,0x11,0xF6,0x54,0x01,0x53,0xCF,0x63,0x02,0xA5,0xD5,0xA2,0x60,0x42, + + 0x06,0x84,0xE0,0x46,0x16,0xA4,0x70,0x62,0x46,0xC4,0xF0,0x66,0x56,0xE4,0x68,0x52, + + 0x07,0x85,0xE8,0x56,0x17,0xA5,0x78,0x72,0x47,0xC5,0xF8,0x76,0x57,0xE5,0x61,0x43, + + 0x86,0x86,0xE1,0x47,0x96,0xA6,0x71,0x63,0xC6,0xC6,0xF1,0x67,0xD6,0xE6,0x69,0x53, + + 0x87,0x87,0xE9,0x57,0x97,0xA7,0x79,0x73,0xC7,0xC7,0xF9,0x77,0xD7,0xE7,0xE2,0xDE, + + 0x4C,0x8E,0xF4,0x23,0xF7,0xCC,0xA7,0x59,0x70,0xC3,0xB3,0x48,0x3C,0xE8,0x52,0x9E, + + 0x66,0x4F,0x94,0x7C,0x62,0xA9,0x58,0xF8,0xA4,0x98,0xBE,0xD8,0x79,0xE9,0x03,0x4B, + + 0xEF,0xC9,0x9B,0xF4,0x1E,0x66,0xB3,0x3A,0xF8,0xA6,0x4B,0xA7,0x79,0x69,0xEB,0x1A, + + 0xF3,0x20,0x50,0x60,0xF5,0x3A,0x59,0x2E,0xCC,0xE6,0xBB,0x3F,0xDD,0xEB,0x62,0x4A, + + 0x0E,0x8C,0xE2,0x4E,0x1E,0xAC,0x72,0x6A,0x4E,0xCC,0xF2,0x6E,0x5E,0xEC,0x6A,0x5A, + + 0x0F,0x8D,0xEA,0x5E,0x1F,0xAD,0x7A,0x7A,0x4F,0xCD,0xFA,0x7E,0x5F,0xED,0x63,0x4B, + + 0x8E,0x8E,0xE3,0x4F,0x9E,0xAE,0x73,0x6B,0xCE,0xCE,0xF3,0x6F,0xDE,0xEE,0x6B,0x5B, + + 0x8F,0x8F,0xEB,0x5F,0x9F,0xAF,0x7B,0x7B,0xCF,0xCF,0xFB,0x7F,0xDF,0xEF,0x9B,0xB2, + + 0x26,0xD2,0xFE,0xA9,0x46,0x1F,0x32,0x8F,0x8D,0xA1,0xB4,0xA6,0x74,0xF0,0x3E,0x12, + + 0xDA,0x4C,0xD2,0xBB,0xDE,0x20,0x90,0x20,0xE6,0x7C,0xBC,0xB6,0x75,0xF1,0x7B,0xCB, + + 0x45,0x9D,0x01,0xF8,0x17,0x3F,0x6D,0xA7,0xAC,0x83,0xB5,0xA7,0xF4,0xF2,0x7F,0xBC, + + 0x52,0x4E,0x3D,0x6E,0xB5,0x2C,0xAC,0x21,0xA9,0xDB,0xBD,0xB7,0xF5,0xF3,0x64,0xC2, + + 0x26,0x94,0xE4,0xC6,0x36,0xB4,0x74,0xE2,0x66,0xD4,0xF4,0xE6,0x76,0xF4,0x6C,0xD2, + + 0x27,0x95,0xEC,0xD6,0x37,0xB5,0x7C,0xF2,0x67,0xD5,0xFC,0xF6,0x77,0xF5,0x65,0xC3, + + 0xA6,0x96,0xE5,0xC7,0xB6,0xB6,0x75,0xE3,0xE6,0xD6,0xF5,0xE7,0xF6,0xF6,0x6D,0xD3, + + 0xA7,0x97,0xED,0xD7,0xB7,0xB7,0x7D,0xF3,0xE7,0xD7,0xFD,0xF7,0xF7,0xF7,0x0E,0xE8, + + 0xC5,0xE9,0x99,0xBE,0x3E,0x47,0x0A,0x8E,0x07,0x51,0xB6,0xAE,0x7C,0xF8,0x51,0xE4, + + 0x4F,0x9D,0x94,0xA7,0xC6,0x24,0x26,0x3F,0x0D,0x06,0xBE,0xBE,0x7D,0xF9,0xDC,0xF9, + + 0xCC,0x9A,0x9C,0x3F,0x00,0x65,0x33,0xD4,0x8C,0xA6,0xB7,0xAF,0xFC,0xFA,0x54,0x59, + + 0x0C,0x44,0xFD,0x9D,0x4E,0xFA,0x27,0x2B,0x8D,0x04,0xBF,0xBF,0xFD,0xFB,0x66,0xCA, + + 0x2E,0x9C,0xE6,0xCE,0x3E,0xBC,0x76,0xEA,0x6E,0xDC,0xF6,0xEE,0x7E,0xFC,0x6E,0xDA, + + 0x2F,0x9D,0xEE,0xDE,0x3F,0xBD,0x7E,0xFA,0x6F,0xDD,0xFE,0xFE,0x7F,0xFD,0x67,0xCB, + + 0xAE,0x9E,0xE7,0xCF,0xBE,0xBE,0x77,0xEB,0xEE,0xDE,0xF7,0xEF,0xFE,0xFE,0x6F,0xDB, + + 0xAF,0x9F,0xEF,0xDF,0xBF,0xBF,0x7F,0xFB,0xEF,0xDF,0xFF,0xFF,0xFF,0xFF,0x00,0x00, + + 0x00,0x00,0x80,0x04,0x10,0x20,0x10,0x20,0x40,0x40,0x90,0x24,0x50,0x60,0x08,0x10, + + 0x01,0x01,0x88,0x14,0x11,0x21,0x18,0x30,0x41,0x41,0x98,0x34,0x51,0x61,0x01,0x01, + + 0x80,0x02,0x81,0x05,0x90,0x22,0x11,0x21,0xC0,0x42,0x91,0x25,0xD0,0x62,0x09,0x11, + + 0x81,0x03,0x89,0x15,0x91,0x23,0x19,0x31,0xC1,0x43,0x99,0x35,0xD1,0x63,0x40,0x40, + + 0x02,0x04,0xC0,0x44,0x12,0x24,0x50,0x60,0x42,0x44,0xD0,0x64,0x52,0x64,0x48,0x50, + + 0x03,0x05,0xC8,0x54,0x13,0x25,0x58,0x70,0x43,0x45,0xD8,0x74,0x53,0x65,0x41,0x41, + + 0x82,0x06,0xC1,0x45,0x92,0x26,0x51,0x61,0xC2,0x46,0xD1,0x65,0xD2,0x66,0x49,0x51, + + 0x83,0x07,0xC9,0x55,0x93,0x27,0x59,0x71,0xC3,0x47,0xD9,0x75,0xD3,0x67,0x02,0x08, + + 0x08,0x08,0x82,0x0C,0x18,0x28,0x12,0x28,0x48,0x48,0x92,0x2C,0x58,0x68,0x0A,0x18, + + 0x09,0x09,0x8A,0x1C,0x19,0x29,0x1A,0x38,0x49,0x49,0x9A,0x3C,0x59,0x69,0x03,0x09, + + 0x88,0x0A,0x83,0x0D,0x98,0x2A,0x13,0x29,0xC8,0x4A,0x93,0x2D,0xD8,0x6A,0x0B,0x19, + + 0x89,0x0B,0x8B,0x1D,0x99,0x2B,0x1B,0x39,0xC9,0x4B,0x9B,0x3D,0xD9,0x6B,0x42,0x48, + + 0x0A,0x0C,0xC2,0x4C,0x1A,0x2C,0x52,0x68,0x4A,0x4C,0xD2,0x6C,0x5A,0x6C,0x4A,0x58, + + 0x0B,0x0D,0xCA,0x5C,0x1B,0x2D,0x5A,0x78,0x4B,0x4D,0xDA,0x7C,0x5B,0x6D,0x43,0x49, + + 0x8A,0x0E,0xC3,0x4D,0x9A,0x2E,0x53,0x69,0xCA,0x4E,0xD3,0x6D,0xDA,0x6E,0x4B,0x59, + + 0x8B,0x0F,0xCB,0x5D,0x9B,0x2F,0x5B,0x79,0xCB,0x4F,0xDB,0x7D,0xDB,0x6F,0x04,0x80, + + 0x20,0x10,0x84,0x84,0x30,0x30,0x14,0xA0,0x60,0x50,0x94,0xA4,0x70,0x70,0x0C,0x90, + + 0x21,0x11,0x8C,0x94,0x31,0x31,0x1C,0xB0,0x61,0x51,0x9C,0xB4,0x71,0x71,0x05,0x81, + + 0xA0,0x12,0x85,0x85,0xB0,0x32,0x15,0xA1,0xE0,0x52,0x95,0xA5,0xF0,0x72,0x0D,0x91, + + 0xA1,0x13,0x8D,0x95,0xB1,0x33,0x1D,0xB1,0xE1,0x53,0x9D,0xB5,0xF1,0x73,0x44,0xC0, + + 0x22,0x14,0xC4,0xC4,0x32,0x34,0x54,0xE0,0x62,0x54,0xD4,0xE4,0x72,0x74,0x4C,0xD0, + + 0x23,0x15,0xCC,0xD4,0x33,0x35,0x5C,0xF0,0x63,0x55,0xDC,0xF4,0x73,0x75,0x45,0xC1, + + 0xA2,0x16,0xC5,0xC5,0xB2,0x36,0x55,0xE1,0xE2,0x56,0xD5,0xE5,0xF2,0x76,0x4D,0xD1, + + 0xA3,0x17,0xCD,0xD5,0xB3,0x37,0x5D,0xF1,0xE3,0x57,0xDD,0xF5,0xF3,0x77,0x06,0x88, + + 0x28,0x18,0x86,0x8C,0x38,0x38,0x16,0xA8,0x68,0x58,0x96,0xAC,0x78,0x78,0x0E,0x98, + + 0x29,0x19,0x8E,0x9C,0x39,0x39,0x1E,0xB8,0x69,0x59,0x9E,0xBC,0x79,0x79,0x07,0x89, + + 0xA8,0x1A,0x87,0x8D,0xB8,0x3A,0x17,0xA9,0xE8,0x5A,0x97,0xAD,0xF8,0x7A,0x0F,0x99, + + 0xA9,0x1B,0x8F,0x9D,0xB9,0x3B,0x1F,0xB9,0xE9,0x5B,0x9F,0xBD,0xF9,0x7B,0x46,0xC8, + + 0x2A,0x1C,0xC6,0xCC,0x3A,0x3C,0x56,0xE8,0x6A,0x5C,0xD6,0xEC,0x7A,0x7C,0x4E,0xD8, + + 0x2B,0x1D,0xCE,0xDC,0x3B,0x3D,0x5E,0xF8,0x6B,0x5D,0xDE,0xFC,0x7B,0x7D,0x47,0xC9, + + 0xAA,0x1E,0xC7,0xCD,0xBA,0x3E,0x57,0xE9,0xEA,0x5E,0xD7,0xED,0xFA,0x7E,0x4F,0xD9, + + 0xAB,0x1F,0xCF,0xDD,0xBB,0x3F,0x5F,0xF9,0xEB,0x5F,0xDF,0xFD,0xFB,0x7F,0x20,0x02, + + 0x04,0x80,0xA0,0x06,0x14,0xA0,0x30,0x22,0x44,0xC0,0xB0,0x26,0x54,0xE0,0x28,0x12, + + 0x05,0x81,0xA8,0x16,0x15,0xA1,0x38,0x32,0x45,0xC1,0xB8,0x36,0x55,0xE1,0x21,0x03, + + 0x84,0x82,0xA1,0x07,0x94,0xA2,0x31,0x23,0xC4,0xC2,0xB1,0x27,0xD4,0xE2,0x29,0x13, + + 0x85,0x83,0xA9,0x17,0x95,0xA3,0x39,0x33,0xC5,0xC3,0xB9,0x37,0xD5,0xE3,0x60,0x42, + + 0x06,0x84,0xE0,0x46,0x16,0xA4,0x70,0x62,0x46,0xC4,0xF0,0x66,0x56,0xE4,0x68,0x52, + + 0x07,0x85,0xE8,0x56,0x17,0xA5,0x78,0x72,0x47,0xC5,0xF8,0x76,0x57,0xE5,0x61,0x43, + + 0x86,0x86,0xE1,0x47,0x96,0xA6,0x71,0x63,0xC6,0xC6,0xF1,0x67,0xD6,0xE6,0x69,0x53, + + 0x87,0x87,0xE9,0x57,0x97,0xA7,0x79,0x73,0xC7,0xC7,0xF9,0x77,0xD7,0xE7,0x22,0x0A, + + 0x0C,0x88,0xA2,0x0E,0x1C,0xA8,0x32,0x2A,0x4C,0xC8,0xB2,0x2E,0x5C,0xE8,0x2A,0x1A, + + 0x0D,0x89,0xAA,0x1E,0x1D,0xA9,0x3A,0x3A,0x4D,0xC9,0xBA,0x3E,0x5D,0xE9,0x23,0x0B, + + 0x8C,0x8A,0xA3,0x0F,0x9C,0xAA,0x33,0x2B,0xCC,0xCA,0xB3,0x2F,0xDC,0xEA,0x2B,0x1B, + + 0x8D,0x8B,0xAB,0x1F,0x9D,0xAB,0x3B,0x3B,0xCD,0xCB,0xBB,0x3F,0xDD,0xEB,0x62,0x4A, + + 0x0E,0x8C,0xE2,0x4E,0x1E,0xAC,0x72,0x6A,0x4E,0xCC,0xF2,0x6E,0x5E,0xEC,0x6A,0x5A, + + 0x0F,0x8D,0xEA,0x5E,0x1F,0xAD,0x7A,0x7A,0x4F,0xCD,0xFA,0x7E,0x5F,0xED,0x63,0x4B, + + 0x8E,0x8E,0xE3,0x4F,0x9E,0xAE,0x73,0x6B,0xCE,0xCE,0xF3,0x6F,0xDE,0xEE,0x6B,0x5B, + + 0x8F,0x8F,0xEB,0x5F,0x9F,0xAF,0x7B,0x7B,0xCF,0xCF,0xFB,0x7F,0xDF,0xEF,0x24,0x82, + + 0x24,0x90,0xA4,0x86,0x34,0xB0,0x34,0xA2,0x64,0xD0,0xB4,0xA6,0x74,0xF0,0x2C,0x92, + + 0x25,0x91,0xAC,0x96,0x35,0xB1,0x3C,0xB2,0x65,0xD1,0xBC,0xB6,0x75,0xF1,0x25,0x83, + + 0xA4,0x92,0xA5,0x87,0xB4,0xB2,0x35,0xA3,0xE4,0xD2,0xB5,0xA7,0xF4,0xF2,0x2D,0x93, + + 0xA5,0x93,0xAD,0x97,0xB5,0xB3,0x3D,0xB3,0xE5,0xD3,0xBD,0xB7,0xF5,0xF3,0x64,0xC2, + + 0x26,0x94,0xE4,0xC6,0x36,0xB4,0x74,0xE2,0x66,0xD4,0xF4,0xE6,0x76,0xF4,0x6C,0xD2, + + 0x27,0x95,0xEC,0xD6,0x37,0xB5,0x7C,0xF2,0x67,0xD5,0xFC,0xF6,0x77,0xF5,0x65,0xC3, + + 0xA6,0x96,0xE5,0xC7,0xB6,0xB6,0x75,0xE3,0xE6,0xD6,0xF5,0xE7,0xF6,0xF6,0x6D,0xD3, + + 0xA7,0x97,0xED,0xD7,0xB7,0xB7,0x7D,0xF3,0xE7,0xD7,0xFD,0xF7,0xF7,0xF7,0x26,0x8A, + + 0x2C,0x98,0xA6,0x8E,0x3C,0xB8,0x36,0xAA,0x6C,0xD8,0xB6,0xAE,0x7C,0xF8,0x2E,0x9A, + + 0x2D,0x99,0xAE,0x9E,0x3D,0xB9,0x3E,0xBA,0x6D,0xD9,0xBE,0xBE,0x7D,0xF9,0x27,0x8B, + + 0xAC,0x9A,0xA7,0x8F,0xBC,0xBA,0x37,0xAB,0xEC,0xDA,0xB7,0xAF,0xFC,0xFA,0x2F,0x9B, + + 0xAD,0x9B,0xAF,0x9F,0xBD,0xBB,0x3F,0xBB,0xED,0xDB,0xBF,0xBF,0xFD,0xFB,0x66,0xCA, + + 0x2E,0x9C,0xE6,0xCE,0x3E,0xBC,0x76,0xEA,0x6E,0xDC,0xF6,0xEE,0x7E,0xFC,0x6E,0xDA, + + 0x2F,0x9D,0xEE,0xDE,0x3F,0xBD,0x7E,0xFA,0x6F,0xDD,0xFE,0xFE,0x7F,0xFD,0x67,0xCB, + + 0xAE,0x9E,0xE7,0xCF,0xBE,0xBE,0x77,0xEB,0xEE,0xDE,0xF7,0xEF,0xFE,0xFE,0x6F,0xDB, + + 0xAF,0x9F,0xEF,0xDF,0xBF,0xBF,0x7F,0xFB,0xEF,0xDF,0xFF,0xFF,0xFF,0xFF,0x00,0x00, + + 0x00,0x00,0x80,0x04,0x10,0x20,0x10,0x20,0x40,0x40,0x90,0x24,0x50,0x60,0x08,0x10, + + 0x01,0x01,0x88,0x14,0x11,0x21,0x18,0x30,0x41,0x41,0x98,0x34,0x51,0x61,0x01,0x01, + + 0x80,0x02,0x81,0x05,0x90,0x22,0x11,0x21,0xC0,0x42,0x91,0x25,0xD0,0x62,0x09,0x11, + + 0x81,0x03,0x89,0x15,0x91,0x23,0x19,0x31,0xC1,0x43,0x99,0x35,0xD1,0x63,0x40,0x40, + + 0x02,0x04,0xC0,0x44,0x12,0x24,0x50,0x60,0x42,0x44,0xD0,0x64,0x52,0x64,0x48,0x50, + + 0x03,0x05,0xC8,0x54,0x13,0x25,0x58,0x70,0x43,0x45,0xD8,0x74,0x53,0x65,0x41,0x41, + + 0x82,0x06,0xC1,0x45,0x92,0x26,0x51,0x61,0xC2,0x46,0xD1,0x65,0xD2,0x66,0x49,0x51, + + 0x83,0x07,0xC9,0x55,0x93,0x27,0x59,0x71,0xC3,0x47,0xD9,0x75,0xD3,0x67,0x02,0x08, + + 0x08,0x08,0x82,0x0C,0x18,0x28,0x12,0x28,0x48,0x48,0x92,0x2C,0x58,0x68,0x0A,0x18, + + 0x09,0x09,0x8A,0x1C,0x19,0x29,0x1A,0x38,0x49,0x49,0x9A,0x3C,0x59,0x69,0x03,0x09, + + 0x88,0x0A,0x83,0x0D,0x98,0x2A,0x13,0x29,0xC8,0x4A,0x93,0x2D,0xD8,0x6A,0x0B,0x19, + + 0x89,0x0B,0x8B,0x1D,0x99,0x2B,0x1B,0x39,0xC9,0x4B,0x9B,0x3D,0xD9,0x6B,0x42,0x48, + + 0x0A,0x0C,0xC2,0x4C,0x1A,0x2C,0x52,0x68,0x4A,0x4C,0xD2,0x6C,0x5A,0x6C,0x4A,0x58, + + 0x0B,0x0D,0xCA,0x5C,0x1B,0x2D,0x5A,0x78,0x4B,0x4D,0xDA,0x7C,0x5B,0x6D,0x43,0x49, + + 0x8A,0x0E,0xC3,0x4D,0x9A,0x2E,0x53,0x69,0xCA,0x4E,0xD3,0x6D,0xDA,0x6E,0x4B,0x59, + + 0x8B,0x0F,0xCB,0x5D,0x9B,0x2F,0x5B,0x79,0xCB,0x4F,0xDB,0x7D,0xDB,0x6F,0x04,0x80, + + 0x20,0x10,0x84,0x84,0x30,0x30,0x14,0xA0,0x60,0x50,0x94,0xA4,0x70,0x70,0x0C,0x90, + + 0x21,0x11,0x8C,0x94,0x31,0x31,0x1C,0xB0,0x61,0x51,0x9C,0xB4,0x71,0x71,0x05,0x81, + + 0xA0,0x12,0x85,0x85,0xB0,0x32,0x15,0xA1,0xE0,0x52,0x95,0xA5,0xF0,0x72,0x0D,0x91, + + 0xA1,0x13,0x8D,0x95,0xB1,0x33,0x1D,0xB1,0xE1,0x53,0x9D,0xB5,0xF1,0x73,0x44,0xC0, + + 0x22,0x14,0xC4,0xC4,0x32,0x34,0x54,0xE0,0x62,0x54,0xD4,0xE4,0x72,0x74,0x4C,0xD0, + + 0x23,0x15,0xCC,0xD4,0x33,0x35,0x5C,0xF0,0x63,0x55,0xDC,0xF4,0x73,0x75,0x45,0xC1, + + 0xA2,0x16,0xC5,0xC5,0xB2,0x36,0x55,0xE1,0xE2,0x56,0xD5,0xE5,0xF2,0x76,0x4D,0xD1, + + 0xA3,0x17,0xCD,0xD5,0xB3,0x37,0x5D,0xF1,0xE3,0x57,0xDD,0xF5,0xF3,0x77,0x06,0x88, + + 0x28,0x18,0x86,0x8C,0x38,0x38,0x16,0xA8,0x68,0x58,0x96,0xAC,0x78,0x78,0x0E,0x98, + + 0x29,0x19,0x8E,0x9C,0x39,0x39,0x1E,0xB8,0x69,0x59,0x9E,0xBC,0x79,0x79,0x07,0x89, + + 0xA8,0x1A,0x87,0x8D,0xB8,0x3A,0x17,0xA9,0xE8,0x5A,0x97,0xAD,0xF8,0x7A,0x0F,0x99, + + 0xA9,0x1B,0x8F,0x9D,0xB9,0x3B,0x1F,0xB9,0xE9,0x5B,0x9F,0xBD,0xF9,0x7B,0x46,0xC8, + + 0x2A,0x1C,0xC6,0xCC,0x3A,0x3C,0x56,0xE8,0x6A,0x5C,0xD6,0xEC,0x7A,0x7C,0x4E,0xD8, + + 0x2B,0x1D,0xCE,0xDC,0x3B,0x3D,0x5E,0xF8,0x6B,0x5D,0xDE,0xFC,0x7B,0x7D,0x47,0xC9, + + 0xAA,0x1E,0xC7,0xCD,0xBA,0x3E,0x57,0xE9,0xEA,0x5E,0xD7,0xED,0xFA,0x7E,0x4F,0xD9, + + 0xAB,0x1F,0xCF,0xDD,0xBB,0x3F,0x5F,0xF9,0xEB,0x5F,0xDF,0xFD,0xFB,0x7F,0x20,0x02, + + 0x04,0x80,0xA0,0x06,0x14,0xA0,0x30,0x22,0x44,0xC0,0xB0,0x26,0x54,0xE0,0x28,0x12, + + 0x05,0x81,0xA8,0x16,0x15,0xA1,0x38,0x32,0x45,0xC1,0xB8,0x36,0x55,0xE1,0x21,0x03, + + 0x84,0x82,0xA1,0x07,0x94,0xA2,0x31,0x23,0xC4,0xC2,0xB1,0x27,0xD4,0xE2,0x29,0x13, + + 0x85,0x83,0xA9,0x17,0x95,0xA3,0x39,0x33,0xC5,0xC3,0xB9,0x37,0xD5,0xE3,0x60,0x42, + + 0x06,0x84,0xE0,0x46,0x16,0xA4,0x70,0x62,0x46,0xC4,0xF0,0x66,0x56,0xE4,0x68,0x52, + + 0x07,0x85,0xE8,0x56,0x17,0xA5,0x78,0x72,0x47,0xC5,0xF8,0x76,0x57,0xE5,0x61,0x43, + + 0x86,0x86,0xE1,0x47,0x96,0xA6,0x71,0x63,0xC6,0xC6,0xF1,0x67,0xD6,0xE6,0x69,0x53, + + 0x87,0x87,0xE9,0x57,0x97,0xA7,0x79,0x73,0xC7,0xC7,0xF9,0x77,0xD7,0xE7,0x22,0x0A, + + 0x0C,0x88,0xA2,0x0E,0x1C,0xA8,0x32,0x2A,0x4C,0xC8,0xB2,0x2E,0x5C,0xE8,0x2A,0x1A, + + 0x0D,0x89,0xAA,0x1E,0x1D,0xA9,0x3A,0x3A,0x4D,0xC9,0xBA,0x3E,0x5D,0xE9,0x23,0x0B, + + 0x8C,0x8A,0xA3,0x0F,0x9C,0xAA,0x33,0x2B,0xCC,0xCA,0xB3,0x2F,0xDC,0xEA,0x2B,0x1B, + + 0x8D,0x8B,0xAB,0x1F,0x9D,0xAB,0x3B,0x3B,0xCD,0xCB,0xBB,0x3F,0xDD,0xEB,0x62,0x4A, + + 0x0E,0x8C,0xE2,0x4E,0x1E,0xAC,0x72,0x6A,0x4E,0xCC,0xF2,0x6E,0x5E,0xEC,0x6A,0x5A, + + 0x0F,0x8D,0xEA,0x5E,0x1F,0xAD,0x7A,0x7A,0x4F,0xCD,0xFA,0x7E,0x5F,0xED,0x63,0x4B, + + 0x8E,0x8E,0xE3,0x4F,0x9E,0xAE,0x73,0x6B,0xCE,0xCE,0xF3,0x6F,0xDE,0xEE,0x6B,0x5B, + + 0x8F,0x8F,0xEB,0x5F,0x9F,0xAF,0x7B,0x7B,0xCF,0xCF,0xFB,0x7F,0xDF,0xEF,0x24,0x82, + + 0x24,0x90,0xA4,0x86,0x34,0xB0,0x34,0xA2,0x64,0xD0,0xB4,0xA6,0x74,0xF0,0x2C,0x92, + + 0x25,0x91,0xAC,0x96,0x35,0xB1,0x3C,0xB2,0x65,0xD1,0xBC,0xB6,0x75,0xF1,0x25,0x83, + + 0xA4,0x92,0xA5,0x87,0xB4,0xB2,0x35,0xA3,0xE4,0xD2,0xB5,0xA7,0xF4,0xF2,0x2D,0x93, + + 0xA5,0x93,0xAD,0x97,0xB5,0xB3,0x3D,0xB3,0xE5,0xD3,0xBD,0xB7,0xF5,0xF3,0x64,0xC2, + + 0x26,0x94,0xE4,0xC6,0x36,0xB4,0x74,0xE2,0x66,0xD4,0xF4,0xE6,0x76,0xF4,0x6C,0xD2, + + 0x27,0x95,0xEC,0xD6,0x37,0xB5,0x7C,0xF2,0x67,0xD5,0xFC,0xF6,0x77,0xF5,0x65,0xC3, + + 0xA6,0x96,0xE5,0xC7,0xB6,0xB6,0x75,0xE3,0xE6,0xD6,0xF5,0xE7,0xF6,0xF6,0x6D,0xD3, + + 0xA7,0x97,0xED,0xD7,0xB7,0xB7,0x7D,0xF3,0xE7,0xD7,0xFD,0xF7,0xF7,0xF7,0x26,0x8A, + + 0x2C,0x98,0xA6,0x8E,0x3C,0xB8,0x36,0xAA,0x6C,0xD8,0xB6,0xAE,0x7C,0xF8,0x2E,0x9A, + + 0x2D,0x99,0xAE,0x9E,0x3D,0xB9,0x3E,0xBA,0x6D,0xD9,0xBE,0xBE,0x7D,0xF9,0x27,0x8B, + + 0xAC,0x9A,0xA7,0x8F,0xBC,0xBA,0x37,0xAB,0xEC,0xDA,0xB7,0xAF,0xFC,0xFA,0x2F,0x9B, + + 0xAD,0x9B,0xAF,0x9F,0xBD,0xBB,0x3F,0xBB,0xED,0xDB,0xBF,0xBF,0xFD,0xFB,0x66,0xCA, + + 0x2E,0x9C,0xE6,0xCE,0x3E,0xBC,0x76,0xEA,0x6E,0xDC,0xF6,0xEE,0x7E,0xFC,0x6E,0xDA, + + 0x2F,0x9D,0xEE,0xDE,0x3F,0xBD,0x7E,0xFA,0x6F,0xDD,0xFE,0xFE,0x7F,0xFD,0x67,0xCB, + + 0xAE,0x9E,0xE7,0xCF,0xBE,0xBE,0x77,0xEB,0xEE,0xDE,0xF7,0xEF,0xFE,0xFE,0x6F,0xDB, + + 0xAF,0x9F,0xEF,0xDF,0xBF,0xBF,0x7F,0xFB,0xEF,0xDF,0xFF,0xFF,0x2B,0xFD,0xA7,0x2C, + + 0xFD,0x06,0xD2,0x7D,0x16,0xB9,0x30,0xB0,0xA9,0x11,0x06,0x46,0xAF,0x1B,0xC8,0x18, + + 0x01,0x0B,0xB2,0xF6,0xBD,0xDC,0x9E,0x43,0x75,0x2F,0xDA,0xF8,0x57,0xF8,0x8E,0xC7, + + 0x0E,0xFD,0x62,0x81,0xAD,0x09,0xBD,0xB3,0xD2,0x4A,0x95,0xDC,0x8A,0x20,0x8D,0xEC, + + 0x7C,0x42,0xF1,0x91,0xAC,0x76,0x7B,0xAD,0xC0,0x83,0x9B,0x4A,0x72,0x67,0xA7,0x00, + + 0x0E,0xF9,0x7F,0xA6,0xFB,0x35,0x8B,0xE2,0x87,0xC7,0x6F,0x2F,0xA8,0x44,0x59,0xD2, + + 0x92,0x42,0xD3,0xE6,0xD1,0x7A,0x43,0x8F,0xA2,0xEA,0x86,0xCC,0xD9,0xBE,0x19,0x90, + + 0x63,0xA9,0x01,0x28,0x5E,0x64,0x0B,0x4F,0x61,0xED,0xD6,0x94,0xEC,0x9F,0x71,0x21, + + 0x8B,0x0C,0x72,0xC7,0x93,0x2D,0x40,0x8D,0x52,0xBC,0x5E,0x07,0x38,0xD4,0x3C,0x24, + + 0x85,0x8E,0x90,0x2F,0xF3,0x6C,0xD2,0x50,0x2B,0xCF,0x94,0xA8,0x29,0xE8,0x74,0x35, + + 0xE0,0x58,0x4A,0x64,0xCF,0x6B,0xF9,0xC8,0x4A,0x46,0x79,0x5E,0xA6,0x05,0x42,0xC9, + + 0x95,0x87,0xBD,0x0A,0xFA,0xF3,0x8F,0x21,0xCE,0x33,0xA9,0xCF,0xDE,0x13,0xF0,0xE8, + + 0x2A,0x3B,0x16,0xCC,0x78,0x69,0x3B,0x20,0xCF,0xD2,0xF9,0xEC,0x5B,0xC7,0xCB,0xCC, + + 0x7B,0x0E,0x82,0xC8,0x27,0xBB,0xEE,0x90,0xD3,0xF7,0xF2,0x70,0xA0,0x2C,0x8A,0x38, + + 0x0B,0xF9,0xB5,0xDE,0xDE,0x8E,0x62,0x97,0x4D,0x24,0x84,0xC4,0xF3,0xB6,0x79,0xAB, + + 0x76,0x1F,0xFB,0xB7,0x36,0x23,0xEF,0xEB,0x1F,0xAF,0x56,0x9C,0xE4,0x97,0x5E,0xDB, + + 0x42,0xA6,0x0B,0x25,0x23,0x27,0x66,0xFB,0x1E,0xAE,0x5C,0x8C,0xA1,0x6C,0x1F,0x17, + + 0xC2,0x00,0xD2,0xC3,0x3E,0xEF,0x50,0xE0,0x6A,0xFD,0x78,0x3A,0x71,0x12,0x74,0x99, + + 0xC1,0x90,0x24,0x10,0x0C,0xA2,0x9C,0x91,0xEB,0xFC,0x94,0xA1,0x98,0x20,0x6B,0xF2, + + 0x94,0xB9,0x3A,0x00,0x32,0xC7,0x84,0x33,0xF2,0x58,0xAB,0x89,0x32,0x60,0x31,0x62, + + 0x25,0x9E,0x36,0x77,0x1D,0xCE,0x8C,0x76,0x23,0x81,0x71,0x27,0xA7,0x7B,0x5F,0xC8, + + 0x83,0x78,0xDD,0xB7,0x03,0x5A,0x34,0xB3,0x9A,0x59,0x01,0x5C,0x99,0x10,0x5D,0xA8, + + 0xCA,0x0C,0xF2,0xAC,0x35,0x4C,0x24,0x74,0x5E,0xC2,0x70,0x6F,0x70,0x35,0xA2,0x01, + + 0xAE,0xB2,0xA7,0xC4,0xB3,0xA4,0x27,0xE0,0xB6,0xDB,0xEF,0x62,0x09,0x4B,0x3F,0xD0, + + 0xAF,0xB3,0x6B,0xB7,0x44,0x52,0x07,0xFC,0x40,0x32,0x7A,0x59,0xAF,0x73,0x54,0xF0, + + 0xC3,0x7C,0xFE,0x0E,0x9A,0xAC,0x1E,0xAC,0x40,0x7E,0x14,0x28,0x09,0xF3,0x6E,0x3B, + + 0x7E,0x16,0x75,0xBB,0x98,0xC6,0x5F,0xCB,0x5D,0x53,0xB0,0xCD,0x1A,0x59,0x3D,0x0E, + + 0xEB,0xEA,0x47,0xF5,0xE7,0x37,0x29,0x85,0x65,0xDC,0xE5,0xC8,0xE0,0x7C,0x6F,0xCA, + + 0x15,0x90,0xB1,0xA5,0xBF,0x42,0xDB,0x48,0x4A,0x6B,0xE7,0x82,0xCD,0x3A,0x57,0xB0, + + 0x62,0x0D,0xFE,0x33,0xD3,0x2D,0x0C,0x42,0xC9,0x75,0xBA,0x9F,0x08,0xAD,0x5E,0x98, + + 0xDF,0x90,0xB5,0xFB,0x9A,0x51,0x66,0x17,0x10,0x49,0xE3,0x3B,0xA5,0x75,0x79,0xE1, + + 0x27,0x98,0x07,0xA0,0x76,0x33,0x8B,0x6B,0x23,0x2B,0x17,0x95,0x44,0x81,0x31,0xA5, + + 0x29,0xB3,0x28,0xA7,0x6D,0x35,0x04,0x5B,0x94,0x53,0x5F,0xE3,0xCD,0xD2,0xE0,0x6F, + + 0xF8,0xC2,0xBB,0x95,0xF6,0x50,0xBD,0x50,0xFB,0x82,0x83,0x66,0x1C,0x6B,0x5C,0xD2, + + 0x03,0xF8,0x96,0x3B,0x7D,0xAC,0xDB,0x4D,0xE6,0x83,0xE2,0x02,0xF6,0xE7,0x3A,0x76, + + 0x45,0x84,0x49,0x75,0x7F,0xD3,0x73,0xEF,0xC2,0xBB,0x20,0xC5,0x54,0x82,0x90,0x6C, + + 0x26,0x28,0xD7,0x2F,0x17,0x56,0xA4,0xAD,0x64,0x3C,0x97,0x19,0x74,0x3C,0x58,0x22, + + 0x7A,0x29,0xA1,0x81,0xEB,0x22,0x48,0xF2,0xBD,0x3F,0xCA,0x99,0xAB,0x88,0x7D,0x43, + + 0x36,0x28,0xE0,0x06,0x11,0xDC,0x66,0x83,0xA6,0x6A,0xAB,0x4B,0x51,0x7C,0x74,0x33, + + 0x7B,0x8F,0x18,0x39,0x54,0xA6,0x58,0x9F,0x20,0x84,0x12,0xA7,0xE2,0x4B,0x70,0x94, + + 0x45,0xA7,0x9A,0x35,0x60,0xC2,0x68,0xF7,0xB6,0xC5,0x0C,0x8C,0x6E,0x8B,0x5A,0x03, + + 0xF9,0xCA,0x88,0x8A,0x21,0x5B,0x52,0x79,0xF8,0xC5,0x0D,0x69,0x8A,0xE0,0xB4,0x98, + + 0xA7,0xA3,0xCA,0x21,0x9C,0xEB,0x72,0x3E,0x65,0xC4,0x82,0xC1,0xDF,0x45,0xBE,0x34, + + 0x8A,0x13,0x9B,0xF1,0x30,0xA7,0xC8,0x54,0x41,0x1C,0x26,0xAB,0xAD,0x6A,0xEB,0x76, + + 0x38,0xC9,0x36,0xA7,0x9B,0x32,0x05,0x17,0x42,0x4D,0x88,0x5D,0x2A,0x16,0x6A,0xC2, + + 0x6D,0x95,0xDA,0x09,0xDC,0x25,0x48,0x88,0xB2,0xDD,0x95,0x2E,0x40,0x11,0x6B,0x38, + + 0xF0,0x06,0xBC,0xDA,0x6E,0xAF,0x6F,0x09,0x77,0x4A,0x2E,0x84,0xB6,0x7E,0x75,0x33, + + 0x88,0x17,0x58,0xDD,0x9E,0xA4,0xB3,0x07,0x7F,0x3A,0xE1,0x6E,0x25,0x63,0x72,0x6A, + + 0xBF,0xCD,0xB1,0x5E,0x3C,0x0F,0x86,0x7F,0x4F,0xFF,0xEC,0x8C,0x5B,0x42,0x64,0x60, + + 0xCD,0x49,0x6C,0x02,0x45,0x13,0x06,0x92,0xFF,0x7F,0x6B,0xD9,0x50,0x5B,0xEC,0xEA, + + 0x46,0x16,0x68,0x69,0xB7,0xB6,0x42,0xB5,0x84,0xB7,0x43,0x34,0xB0,0x72,0x3F,0x82, + + 0x85,0x22,0x09,0x02,0x43,0x4F,0x95,0xD1,0x86,0x4B,0x7A,0xA6,0x9F,0x6B,0xB2,0x86, + + 0xA3,0xEA,0x0C,0x13,0xC4,0x49,0x43,0x8B,0x65,0x53,0xE7,0x66,0x56,0x7E,0x7A,0xA0, + + 0x07,0xD4,0x60,0xD5,0x06,0x2D,0xAF,0xDD,0x60,0xBD,0x25,0x17,0xD5,0x94,0xB3,0xB0, + + 0x07,0x78,0x6D,0xC5,0x07,0x2C,0xA3,0x70,0x10,0x32,0x6C,0xE8,0x43,0x01,0x79,0x3F, + + 0x24,0x92,0xDB,0xAF,0x54,0x96,0x48,0x67,0x97,0xFC,0xC7,0xD6,0x8C,0x09,0xED,0xB2, + + 0xD0,0x91,0xCD,0xC6,0xB1,0x2E,0xBD,0x82,0x8C,0x6C,0x68,0xED,0x87,0x43,0xC5,0xF8, + + 0x8F,0x9C,0x1D,0x0A,0x4D,0x1E,0x24,0x59,0x87,0x49,0xD6,0xFD,0x15,0xF7,0x2A,0x92, + + 0x2B,0x00,0xCE,0xCD,0x81,0x32,0xA3,0x94,0x0D,0xFE,0x13,0xDC,0x82,0xFF,0xF5,0xF8, + + 0xD9,0x1D,0xBD,0x93,0x9F,0xBD,0x0D,0x58,0xD0,0x98,0xC9,0xC7,0x7E,0x16,0x75,0x29, + + 0xD0,0xDB,0xE8,0x7D,0x3F,0x67,0x41,0xBD,0x04,0xBF,0x96,0x09,0x5C,0x95,0xC8,0xA9, + + 0x8F,0x63,0xA6,0xBC,0x9D,0x1C,0x16,0x12,0x80,0x27,0xE1,0xE1,0x0A,0xFA,0x82,0x45, + + 0x2E,0x3D,0x8C,0xD2,0x3C,0xFD,0x67,0xFA,0x69,0xA4,0x88,0xFE,0x7F,0xFD,0x07,0x81, + + 0x48,0x93,0xF6,0xBC,0x8E,0xD2,0x5E,0x17,0x08,0x9C,0xD9,0x4F,0xF8,0x5E,0xD0,0xBB, + + 0xAB,0xB6,0xE3,0xE4,0x9B,0x83,0x0C,0x85,0x4C,0xBA,0xFF,0x8D,0x14,0x0E,0x3E,0x3C, + + 0x42,0xFF,0xA0,0xC4,0x1D,0x62,0x87,0xA4,0x7D,0xBD,0xEE,0x19,0xBB,0xB1,0x00,0x14, + + 0xA9,0x8A,0xFA,0xE4,0xF3,0xD7,0x67,0x77,0xBC,0xF7,0x57,0xBE,0xB0,0x9E,0x3F,0x3C, + + 0x0D,0xF4,0x1C,0x54,0x96,0xBB,0x29,0xDB,0x6C,0x4F,0x4C,0x6F,0x2B,0x20,0x2F,0x3C, + + 0x05,0xA7,0x76,0x67,0x47,0x27,0xA2,0xAB,0xC0,0xE3,0x62,0xCE,0x22,0x21,0x80,0x38, + + 0x7E,0xD9,0xA0,0x0E,0xB4,0x29,0xE9,0x90,0x1F,0xE5,0xD0,0x64,0x52,0x64,0xE4,0x23, + + 0x25,0xA3,0x77,0x93,0xD1,0x25,0x0A,0xD3,0xA8,0x21,0xD8,0x74,0x53,0x65,0x39,0x66, + + 0x7F,0x09,0x3A,0x38,0xB3,0xE6,0xC4,0x92,0x46,0xCB,0xD1,0x65,0xD2,0x66,0x9D,0x96, + + 0x41,0x27,0x81,0x59,0x66,0xA0,0xE6,0x93,0xC5,0x3E,0xD9,0x75,0xD3,0x67,0x93,0x0F, + + 0xE1,0xF9,0x91,0xCB,0xF1,0xAB,0x4C,0x99,0x40,0x4C,0x89,0x7F,0xD5,0x2A,0x11,0xA4, + + 0x0F,0x70,0xD4,0xFE,0x1D,0x84,0xA9,0x98,0xB5,0x6A,0xB6,0xF9,0xB8,0xC6,0xC3,0x64, + + 0x9D,0x48,0x99,0x0F,0x5A,0x2E,0x97,0xD8,0xA2,0xB5,0x95,0x34,0xFB,0x2A,0x97,0x6A, + + 0xB5,0xFA,0x1C,0x9F,0x3F,0x39,0x40,0x39,0xB2,0xC9,0x4F,0xCE,0xA1,0xC6,0x4A,0x61, + + 0xE3,0x6F,0xC6,0x45,0xE7,0x42,0x49,0xEC,0x3B,0x37,0xD2,0x6C,0x5A,0x6C,0x2C,0xFC, + + 0x08,0xFF,0x15,0xA7,0x3F,0xA0,0x41,0x72,0x03,0x3C,0xDA,0x7C,0x5B,0x6D,0x41,0xB6, + + 0x77,0x62,0xA1,0x4C,0x9B,0x4E,0x93,0x04,0xC9,0x0C,0xD3,0x6D,0xDA,0x6E,0x8B,0x21, + + 0x98,0xA2,0xB5,0x70,0x72,0x5E,0x7B,0x2A,0xEF,0xC2,0xDB,0x7D,0xDB,0x6F,0x1F,0x18, + + 0x26,0xCA,0x8A,0xFA,0x93,0x55,0x72,0x01,0x89,0x13,0xC2,0x99,0x9B,0x81,0xD8,0x14, + + 0x50,0x79,0x3B,0x35,0xC1,0x72,0xAB,0x15,0x12,0x51,0x0F,0xC6,0x0E,0xF8,0x40,0x9F, + + 0x86,0xE6,0x3A,0x67,0x44,0x31,0x73,0x01,0x14,0x11,0xAE,0x14,0x84,0xDD,0xCD,0xFC, + + 0x8C,0xBE,0xBA,0x30,0xB7,0x19,0x55,0xBD,0x9A,0xDA,0x66,0x9A,0xDB,0x26,0x70,0x5F, + + 0x24,0x8D,0x3B,0xB6,0x1C,0xEB,0x48,0x92,0x99,0xAF,0xD4,0xE4,0x72,0x74,0xB3,0xF7, + + 0x82,0x57,0x6C,0x24,0x8F,0xE6,0x97,0xA0,0x9E,0x5C,0xDC,0xF4,0x73,0x75,0x0C,0xE6, + + 0x0E,0x1B,0x9F,0x30,0xCE,0x99,0x0F,0x1D,0x5E,0x14,0xD5,0xE5,0xF2,0x76,0x56,0x19, + + 0x7E,0x18,0xB3,0xD2,0x12,0xC8,0x58,0xE0,0xDF,0xFA,0xDD,0xF5,0xF3,0x77,0x93,0xB5, + + 0xC3,0x5C,0x4C,0x92,0x0A,0xCC,0xD6,0xC5,0xFD,0xF3,0xC6,0x87,0x04,0x6D,0xAA,0xFA, + + 0xDA,0x7C,0x95,0xA4,0xD0,0x2A,0x41,0xB4,0x6F,0x20,0x5E,0xC4,0xB0,0x3B,0x39,0xA5, + + 0xDE,0xB5,0xD2,0xFE,0xC4,0x78,0xC1,0xA8,0x68,0x4A,0x04,0x29,0xF4,0x75,0x37,0x62, + + 0x61,0x6A,0xF7,0xBA,0x50,0x08,0xB6,0x48,0x87,0x1B,0x9D,0x50,0x25,0x38,0xF2,0xB7, + + 0x89,0x5D,0x98,0x2E,0x3E,0x91,0xC3,0xAF,0xA8,0x3C,0xD6,0xEC,0x7A,0x7C,0x55,0x35, + + 0xA9,0x1A,0xF4,0x3E,0x97,0xC0,0xF2,0x6A,0x67,0x55,0xDE,0xFC,0x7B,0x7D,0x27,0xF6, + + 0x2B,0x5C,0x52,0x49,0x87,0x94,0x5F,0x22,0x03,0x2F,0xD7,0xED,0xFA,0x7E,0x6E,0x5D, + + 0xDA,0x0B,0xB7,0xCC,0x87,0x3B,0xDB,0x04,0x54,0x1E,0xDF,0xFD,0xFB,0x7F,0x5E,0x04, + + 0xED,0xD1,0xE8,0x1A,0x12,0x00,0xF0,0x26,0xD9,0xAE,0xA7,0x61,0x9E,0x71,0xE3,0x9B, + + 0xD1,0x82,0x90,0x26,0xF7,0x5E,0xE8,0xAC,0x46,0x01,0x86,0x0F,0x53,0x78,0xE1,0x7B, + + 0xA8,0xC0,0x5E,0x65,0x63,0xC7,0x0F,0x86,0x1A,0x6F,0xB9,0x23,0x5D,0xAA,0x8E,0xB2, + + 0x4D,0x32,0x93,0xAB,0x15,0x13,0x07,0x92,0x8C,0xC0,0xAA,0x55,0x22,0x86,0xB0,0xC6, + + 0x77,0xAD,0x4C,0xD5,0x66,0xAE,0x0E,0x5A,0xBB,0x45,0xF0,0x66,0x56,0xE4,0x17,0xD6, + + 0x76,0x9F,0x7D,0xA5,0x93,0x28,0xEB,0x72,0xAC,0x74,0xF8,0x76,0x57,0xE5,0x59,0xB9, + + 0x2A,0x8B,0xB2,0xB7,0xF9,0x07,0x75,0x9C,0x3B,0x6D,0xF1,0x67,0xD6,0xE6,0x37,0xB1, + + 0x83,0x7A,0xBB,0x78,0x7C,0xC3,0x43,0x80,0xFB,0x4A,0xF9,0x77,0xD7,0xE7,0x82,0x19, + + 0x7C,0xEC,0x62,0x1F,0xE3,0xEA,0x6A,0x27,0x4A,0xB1,0x8A,0xD1,0xBD,0x77,0xF5,0x9E, + + 0x7C,0x5A,0x4D,0xE1,0x7E,0x89,0x60,0xF6,0xEE,0xCD,0xC4,0x9F,0xB4,0xEA,0x1D,0x36, + + 0x8A,0xF3,0xB8,0xBD,0xFF,0xB3,0x3D,0x59,0x6F,0xAF,0xCC,0x5C,0xF6,0x1B,0xEB,0x76, + + 0xA0,0xC9,0x48,0xE1,0x9B,0xD2,0x6D,0xFC,0x24,0xA8,0x68,0xCC,0xFF,0x56,0xA2,0x5B, + + 0xF1,0x11,0xDA,0xB1,0xF7,0xDD,0x64,0x56,0xB1,0x61,0xF2,0x6E,0x5E,0xEC,0xED,0x58, + + 0x90,0x29,0x92,0x79,0xE2,0xA2,0xA7,0x7E,0x34,0x46,0xFA,0x7E,0x5F,0xED,0x1B,0x6C, + + 0x77,0x81,0x23,0x22,0xEB,0x23,0x64,0xDB,0x4E,0x11,0xF3,0x6F,0xDE,0xEE,0xBB,0xFE, + + 0xC7,0x3E,0xD5,0x67,0xF7,0xDE,0x20,0x54,0xC9,0xEF,0xFB,0x7F,0xDF,0xEF,0x84,0x91, + + 0x10,0xF4,0xDC,0x02,0x45,0x1C,0x03,0x17,0x98,0x13,0x8A,0x02,0xFB,0x76,0x4D,0x16, + + 0x54,0xA4,0x28,0xF1,0xB7,0x1D,0xA1,0xE3,0x84,0xDE,0x6C,0x26,0x8A,0xF5,0x1B,0xBE, + + 0xA2,0xEB,0x9F,0x7D,0x4F,0xF0,0xF5,0xC6,0x9B,0x90,0xB5,0xE7,0xB0,0x5F,0x25,0x82, + + 0xCE,0x10,0xFD,0x13,0xFD,0x05,0x89,0xCC,0x46,0x5E,0x3D,0x88,0xD3,0x07,0x3A,0xEF, + + 0x2E,0x92,0x93,0xF9,0x46,0xF5,0x14,0xCD,0x01,0xD9,0xF4,0xE6,0x76,0xF4,0x52,0xFF, + + 0xAA,0x63,0x53,0x44,0xD5,0x68,0x0E,0x0D,0x6B,0x2E,0xFC,0xF6,0x77,0xF5,0x4B,0xEC, + + 0x07,0x69,0x25,0x1B,0xAC,0xD8,0x0B,0xDB,0x0F,0x47,0xF5,0xE7,0xF6,0xF6,0x25,0x73, + + 0xA1,0xEE,0x8F,0xD7,0xB6,0xA7,0x82,0xD7,0x0E,0x46,0xFD,0xF7,0xF7,0xF7,0x22,0x88, + + 0x20,0x33,0xA0,0xB3,0xB4,0xB8,0x48,0x1F,0xE1,0x75,0x66,0xDD,0x04,0xBA,0x6D,0x89, + + 0x55,0xDD,0x3B,0x85,0x4D,0x34,0x1E,0xFA,0x2B,0x74,0x0A,0xDC,0x82,0xBB,0x75,0x74, + + 0xAA,0x03,0x37,0x91,0x88,0x4E,0x61,0xDB,0x6C,0x5C,0x2A,0xFA,0x5D,0x25,0x09,0xA3, + + 0x21,0x36,0xD1,0x3E,0x56,0xB8,0x6D,0xCB,0x6D,0x5D,0xA4,0x77,0x14,0xB8,0x7D,0xA8, + + 0xD9,0xF9,0xBC,0xA6,0xE0,0x43,0x6E,0xFE,0xEC,0xA9,0xF6,0xEE,0x7E,0xFC,0x26,0xB8, + + 0xDC,0xF8,0x7E,0xDE,0x3F,0xBD,0xA1,0x01,0x4B,0xDB,0xFE,0xFE,0x7F,0xFD,0x5F,0x34, + + 0xA8,0xE7,0xBD,0xCE,0x68,0x61,0x2D,0x89,0xCD,0xBE,0xF7,0xEF,0xFE,0xFE,0x57,0x20, + + 0xA9,0x2E,0xEF,0xDF,0xBF,0xBF,0xCA,0x0A,0x4E,0x20,0xFF,0xFF,0xFF,0xFF,0xA3,0x2C, + + 0xDC,0x71,0x7F,0xF4,0xEF,0x2F,0x8D,0xB6,0xE1,0x9F,0x34,0x46,0xAB,0x05,0xAF,0x16, + + 0xD5,0x65,0xB6,0xB4,0xF3,0xA8,0x0F,0x36,0x89,0xD0,0xB7,0xD6,0xFD,0xDC,0x22,0x39, + + 0x58,0xB3,0x35,0xE7,0xD8,0x21,0xA5,0x43,0x3F,0xE6,0xA9,0xA7,0x15,0x19,0x31,0xEF, + + 0x2D,0x0E,0xB4,0x91,0xAC,0x45,0xBD,0xB5,0xF4,0xBD,0xE1,0x46,0xE3,0x92,0x20,0x16, + + 0xCA,0xF8,0x5D,0x57,0x71,0x04,0xFA,0x93,0xC6,0xC9,0xA8,0x60,0x56,0xC4,0x76,0x6C, + + 0x8E,0x83,0xB0,0xA9,0xAC,0x64,0x27,0xF2,0x86,0x71,0xE0,0x44,0xB0,0xCA,0x39,0x66, + + 0x7F,0x09,0xB9,0x62,0xF1,0xA9,0x07,0xD4,0xC4,0x3F,0x2E,0x16,0xE6,0xC7,0xCD,0x11, + + 0xDD,0xAA,0x09,0x21,0xD0,0xAA,0xF6,0x93,0x6F,0xBA,0x79,0x07,0xB1,0xCB,0xFD,0x13, + + 0x8C,0x9C,0xBA,0xF7,0xB4,0x25,0x72,0x07,0x1C,0x0A,0xEC,0x2A,0xB1,0x8B,0x6A,0x37, + + 0x0B,0xD4,0xF2,0x3B,0xE0,0x26,0x4C,0xC6,0x4F,0x30,0x30,0xC5,0x84,0x66,0xA7,0x8D, + + 0xBD,0xF4,0x43,0x75,0x1F,0x96,0x8E,0xBF,0xCE,0xD3,0x53,0x40,0x2B,0x6C,0x73,0x3E, + + 0x74,0x04,0x2C,0x20,0x70,0xDA,0xFF,0x47,0x6A,0x2E,0x2F,0x42,0x7A,0xCF,0xD5,0xDA, + + 0x0E,0x04,0xA2,0x1F,0xE2,0x23,0x2A,0x57,0x78,0x99,0xAC,0x6B,0x7E,0x6A,0xB1,0xDC, + + 0x36,0xF7,0xCE,0xD8,0x59,0x77,0x7C,0xC0,0x79,0xE9,0x84,0x9E,0x5F,0x2D,0x06,0x3A, + + 0xF6,0x8F,0x03,0x35,0x87,0x55,0x85,0x7A,0xF4,0xAD,0x66,0xED,0x33,0xBF,0x75,0xE1, + + 0xF7,0xA0,0x0B,0x30,0x53,0xF2,0x0E,0xD4,0x03,0x1C,0xDD,0x82,0xB8,0xC7,0xDA,0xE2, + + 0xD3,0x75,0xD6,0xC3,0xD9,0xB3,0x4A,0x18,0x52,0xFB,0xEA,0x26,0xB5,0x54,0xA1,0xF2, + + 0xD6,0x74,0xEE,0x94,0x32,0xD1,0x8F,0x23,0x47,0xAE,0xE4,0xC7,0x0D,0x1D,0x3D,0x7A, + + 0xA6,0x8B,0xE7,0x3D,0x59,0x51,0x86,0xA0,0x6D,0xFF,0x3A,0x47,0x5C,0x8F,0x35,0x6E, + + 0xA7,0xFA,0xB7,0x66,0x9F,0x9C,0x23,0x8D,0x89,0x10,0xFF,0xB1,0xF0,0x41,0xE4,0xB2, + + 0x40,0xD8,0xBC,0xC0,0x36,0x94,0x34,0xB6,0xF6,0x59,0xC6,0x42,0x99,0x30,0x2C,0x86, + + 0xB7,0x18,0x3C,0x5C,0x58,0x3A,0x79,0x92,0xA1,0x55,0x78,0xD0,0x75,0x35,0x85,0xB9, + + 0xC2,0x78,0x3A,0xB6,0xCE,0x30,0x37,0x77,0x60,0x9A,0xEF,0x55,0x3B,0xD9,0xAA,0x53, + + 0x66,0x23,0x4D,0xD1,0xFB,0xC8,0x55,0xF9,0x80,0xA8,0x70,0xAF,0x06,0xEB,0x1C,0x79, + + 0x8B,0x58,0xD4,0x8E,0x7E,0x54,0x68,0x09,0x81,0x1B,0xA8,0x91,0x18,0xA7,0xED,0x1C, + + 0x61,0xE6,0xB0,0x39,0xFB,0x39,0xCA,0x42,0x80,0x88,0x4C,0x81,0x92,0x3D,0x39,0xB4, + + 0x2A,0x8F,0xB9,0x3D,0x7A,0x60,0x05,0xA8,0x13,0xD7,0x57,0xC0,0xA7,0xD7,0xCF,0xE1, + + 0xC3,0xC4,0x87,0x90,0x50,0xB8,0xB3,0x22,0x18,0xD2,0xA1,0x0C,0xFF,0x02,0x7E,0x56, + + 0x2B,0xBC,0xF8,0xE1,0x51,0x33,0x08,0x0A,0x5F,0x1E,0xF9,0x93,0xA3,0xD1,0x36,0xC9, + + 0x09,0xB0,0x4E,0xCD,0xC4,0x90,0x7B,0x9A,0x9C,0x38,0xE0,0x5D,0x75,0xCC,0xFC,0x2B, + + 0x06,0xE3,0x47,0x4F,0x18,0x2A,0xD3,0x81,0x68,0x92,0x87,0xAA,0xF4,0xA1,0x1F,0x6B, + + 0xE7,0x21,0x58,0xED,0x44,0xC0,0x67,0x06,0xCF,0x52,0x20,0x87,0x8D,0xA0,0x40,0x2D, + + 0x06,0x8D,0x4C,0x95,0x3E,0xA8,0x8F,0xC0,0x0C,0x11,0x62,0x20,0x9C,0x43,0x1B,0x30, + + 0xD8,0x8E,0xB3,0x59,0x13,0xD8,0x22,0x72,0xCE,0x6A,0x80,0xC9,0xF9,0xEC,0xDE,0x24, + + 0x25,0x84,0x21,0x46,0xEF,0xE0,0x0F,0x1F,0x49,0x44,0x15,0xA3,0xE9,0x59,0x9D,0x6C, + + 0x26,0x38,0x4B,0x75,0x62,0xC6,0xEF,0x0D,0xAE,0xD0,0xD9,0x61,0xAA,0x1F,0xC0,0x31, + + 0x38,0xC6,0x98,0x61,0xEB,0xAB,0x23,0x71,0x2C,0xF7,0xE6,0x4A,0xBD,0xA0,0xCE,0x0D, + + 0xA4,0xE0,0x13,0x71,0xB6,0xCB,0x2E,0x6D,0x21,0x65,0x5C,0x52,0x3C,0xEA,0xFC,0xB9, + + 0x04,0x4A,0x21,0x2A,0x5E,0xAB,0x57,0xD7,0xF0,0x12,0xCB,0xD7,0x1F,0x49,0xD6,0xB1, + + 0xE4,0x78,0x8B,0x6F,0x62,0x21,0xEA,0x00,0xB3,0xAB,0x7E,0x04,0xA7,0x62,0x38,0xF7, + + 0x6D,0xCA,0x9A,0xF1,0x1A,0xD1,0x62,0xDB,0x26,0x5D,0xCA,0x09,0xA1,0xE7,0xAC,0xE9, + + 0x2B,0x22,0x92,0xE5,0x1B,0x40,0x6F,0x9D,0x26,0x9A,0x3A,0x7E,0x09,0xAB,0xEC,0x05, + + 0x71,0x0B,0x7D,0x6D,0x6F,0xCF,0x6D,0x9F,0x6C,0x61,0x8D,0x13,0x51,0x6C,0xBC,0x1A, + + 0x8B,0xF2,0xB1,0x01,0xB3,0x5F,0x0A,0xCA,0xF3,0x6C,0x26,0xF2,0xDB,0x92,0x02,0x1C, + + 0x96,0x83,0xE6,0x0E,0x5A,0xAA,0x10,0x1A,0x4D,0x8C,0xE4,0x43,0xB5,0xA8,0x3A,0x29, + + 0x2D,0x2C,0x92,0xA3,0xE2,0xEC,0x8A,0x18,0xC0,0x4B,0x5E,0x0D,0xDB,0xAC,0xD7,0xA9, + + 0x6F,0x21,0xCD,0x74,0xFD,0x8E,0x77,0x3D,0x4C,0xD2,0xC9,0xDE,0x7D,0x41,0x53,0x6B, + + 0xB0,0x20,0x14,0x2C,0xEF,0x04,0x7A,0x3B,0x81,0xA1,0xC5,0x57,0xB7,0xE2,0x7A,0x60, + + 0x20,0x3D,0xB2,0xE4,0xDF,0x33,0x14,0x48,0x07,0xD4,0xCF,0x24,0xB1,0x94,0xEC,0x83, + + 0xDA,0x4C,0x78,0x6A,0xF0,0x4A,0x38,0xC1,0x4F,0xBF,0xC4,0xC5,0x01,0x9D,0xB2,0x01, + + 0x54,0x97,0x9B,0x22,0x9A,0x1D,0x54,0x63,0xE0,0x29,0x1A,0x45,0x58,0x0F,0x55,0xB4, + + 0x58,0x9C,0x70,0x7A,0xE1,0x08,0x5F,0xC3,0xE4,0xB3,0xDF,0xB3,0xF4,0xE1,0x04,0x94, + + 0xB2,0x99,0xDE,0x76,0xC9,0x6B,0x0F,0xC5,0xC7,0x6B,0xC7,0x46,0x8E,0xD7,0xC6,0xD9, + + 0x86,0x36,0x57,0x73,0xC0,0xF4,0xDB,0xDE,0x61,0x1C,0x2E,0xD2,0x34,0x05,0x73,0x73, + + 0x59,0x90,0x5A,0xF6,0x17,0x49,0xB5,0x96,0x87,0x97,0x35,0xE3,0x2D,0x02,0xB9,0x2D, + + 0xA1,0x0E,0xD3,0xFA,0xDC,0xB8,0x9A,0x71,0x2E,0xA2,0x02,0x84,0xCB,0x5C,0x20,0xB7, + + 0xC5,0x69,0x59,0x0A,0x63,0xAE,0x68,0x0B,0x41,0x55,0x88,0x93,0xBE,0x98,0x00,0x6B, + + 0x59,0xB9,0x7C,0xA3,0xD6,0xFD,0xD6,0x4B,0xCE,0x99,0xAC,0x45,0x7B,0x80,0x8B,0x19, + + 0xCD,0x92,0x67,0xE2,0xA3,0x17,0x49,0x0B,0xEA,0x43,0xBF,0x2B,0x15,0x0B,0xEF,0xE3, + + 0x30,0xD9,0x91,0x2E,0xCB,0x14,0x01,0x1B,0xEB,0x7B,0x70,0x3B,0xC0,0x54,0x8E,0x4E, + + 0x13,0x27,0x66,0x4C,0xC2,0xB0,0xC9,0x08,0x8D,0xD5,0x8E,0xEA,0x7A,0x5C,0x16,0xCB, + + 0x53,0xBC,0xF9,0xD8,0xF7,0x2C,0x83,0x9A,0x2F,0x20,0x80,0xF8,0x96,0xCE,0xDC,0x29, + + 0x02,0x63,0x67,0xDE,0x41,0x1A,0xF6,0x89,0x11,0x57,0x08,0x9C,0xC8,0x0F,0xAC,0xA8, + + 0x9D,0x1E,0x4B,0xAC,0xC3,0x14,0x0D,0x00,0xB7,0x9D,0x2C,0x0C,0x73,0xF2,0xFF,0x27, + + 0xA1,0x41,0xF1,0xF0,0x53,0x63,0x3E,0x1E,0x9D,0x4F,0xDA,0x75,0x63,0x30,0x76,0x16, + + 0xE0,0x82,0x71,0x9E,0x76,0x4B,0x20,0xCF,0xED,0x4C,0x52,0xE4,0x18,0x09,0x5B,0x69, + + 0xE8,0x53,0x06,0x95,0x98,0xDD,0xA5,0x5E,0x63,0x03,0x6E,0xDA,0x2B,0x77,0x27,0xE2, + + 0x0D,0x42,0x9D,0x15,0xCD,0x63,0x79,0x62,0x63,0xBF,0x1D,0xCA,0x2E,0x3C,0x87,0xFD, + + 0x3B,0xB3,0xCB,0x56,0xE2,0x29,0x40,0x75,0x42,0x62,0x2C,0x9B,0x94,0x91,0xD7,0x15, + + 0x03,0x74,0x72,0x27,0x0D,0xB7,0xCD,0xBC,0xAB,0x6A,0xFB,0x85,0xD5,0x62,0xFA,0xBE, + + 0x2F,0xC1,0x3E,0xAE,0x67,0x7B,0x1C,0x49,0x8E,0x46,0xFE,0x92,0x05,0xE1,0x10,0x7A, + + 0x62,0xCA,0x50,0x42,0x3D,0x5B,0xA6,0xA3,0x51,0xAD,0x83,0xA1,0xE1,0x35,0x58,0x06, + + 0x60,0x19,0x56,0xA9,0xC9,0x64,0x6A,0x0F,0xB5,0x47,0xA3,0xFC,0x19,0xC0,0x24,0xEB, + + 0x85,0x48,0x0D,0xB9,0x3F,0x94,0x62,0x29,0x75,0xE4,0xD6,0x19,0x1C,0x32,0x7D,0x0F, + + 0x69,0x89,0x57,0xB5,0x49,0xBA,0x83,0xCB,0x64,0xB7,0xD9,0x39,0x27,0x8F,0x35,0x20, + + 0xF5,0xA4,0xA1,0xB8,0xED,0xB5,0x8E,0x1D,0x22,0x2F,0x30,0xC2,0xD9,0x94,0x6E,0xA5, + + 0x17,0x6E,0xFB,0xA2,0xB3,0x40,0x41,0x68,0x4A,0xCE,0xD6,0x6C,0x12,0x1C,0x25,0xA7, + + 0x53,0xDF,0xCA,0x5C,0x57,0xDD,0x07,0x7E,0xCD,0x88,0x48,0x45,0x75,0x3E,0x06,0xE4, + + 0xB5,0x2B,0x65,0x39,0xD7,0x5C,0x42,0x29,0x95,0x45,0x93,0xFC,0xC4,0x6F,0x59,0x75, + + 0xBD,0xA7,0x8E,0x6D,0xB1,0x17,0x73,0xBA,0x2E,0x50,0xD7,0x34,0xD0,0x35,0xB0,0xE2, + + 0xDB,0xBD,0xD6,0xD8,0x91,0x51,0x6A,0xA7,0x81,0x36,0x9E,0x32,0xB7,0x8F,0x36,0x35, + + 0x05,0x17,0xA7,0x11,0x43,0xED,0x9C,0xA1,0x52,0xF5,0x1F,0xB4,0x6D,0x62,0x92,0xB1, + + 0xA8,0xED,0x86,0x80,0x9C,0xA1,0x85,0x23,0x29,0x51,0xBC,0x83,0x81,0x23,0xA6,0xA4, + + 0x00,0x91,0x59,0x90,0xF1,0xA4,0x88,0xB7,0x29,0x02,0x00,0x0F,0x48,0x73,0x32,0x82, + + 0xF3,0xDA,0x5E,0x01,0x42,0xC6,0xB6,0xBB,0x8D,0x08,0xD4,0xE4,0x72,0x74,0x63,0x7B, + + 0x40,0xCF,0x93,0x4B,0xBE,0x78,0x2C,0x0F,0xEC,0x43,0xDC,0xF4,0x73,0x75,0x7F,0xBE, + + 0x5D,0xE9,0xC0,0xC5,0xD0,0x8C,0x76,0xB8,0x98,0xFD,0xD5,0xE5,0xF2,0x76,0x58,0x44, + + 0xA3,0xD7,0x32,0xAB,0x6A,0x70,0x0F,0xF0,0xF5,0x6C,0xDD,0xF5,0xF3,0x77,0xF9,0x0A, + + 0xE1,0x6D,0xA9,0x09,0x4A,0xA4,0xB2,0x8C,0xA0,0x4B,0x17,0x24,0x1C,0x82,0x28,0xB5, + + 0xAD,0xBD,0xA5,0xC6,0x17,0xAA,0x8E,0xB8,0xFB,0x92,0x7A,0x82,0xF2,0xB4,0x3F,0x19, + + 0x53,0x5B,0xBF,0xA8,0xB4,0xBA,0xB7,0xBA,0x86,0x3E,0xCF,0x44,0x7C,0x6E,0x9E,0x9E, + + 0x8D,0xB6,0xA4,0x38,0x95,0xAB,0x01,0xFC,0xCF,0x59,0xE6,0x42,0xE5,0x1B,0x57,0x9D, + + 0xFA,0x29,0xA2,0xB1,0x3D,0xDF,0xB9,0xCB,0x7F,0x6E,0xD6,0xEC,0x7A,0x7C,0xA5,0x1A, + + 0x9D,0x38,0x23,0x67,0xE1,0xE9,0x16,0x7D,0x2E,0x26,0xDE,0xFC,0x7B,0x7D,0xAA,0x2B, + + 0x15,0x63,0xC7,0x37,0x5D,0x23,0x1A,0x8F,0x65,0xE8,0xD7,0xED,0xFA,0x7E,0xEA,0xA8, + + 0xBE,0x0C,0xD0,0xBD,0xAE,0x9C,0xF3,0x37,0x73,0x9C,0xDF,0xFD,0xFB,0x7F,0x80,0x71, + + 0x74,0x53,0xA3,0x02,0x57,0xC8,0x0A,0xA5,0xBB,0x6B,0x09,0xD7,0x15,0x49,0x9C,0x70, + + 0xFA,0xC0,0xC3,0x1B,0x49,0xE3,0xA8,0x50,0xF2,0xA4,0x47,0x25,0xB6,0x30,0x5F,0x04, + + 0x25,0x5D,0xF5,0xDD,0x3A,0xE1,0x49,0x33,0x2D,0xB3,0x68,0x79,0x2B,0xE2,0x49,0xB5, + + 0x24,0x28,0xBD,0x58,0x37,0xE1,0x01,0xDC,0x48,0x7E,0x94,0x21,0xBC,0xA0,0x2F,0xC9, + + 0xBA,0x43,0x2E,0xA2,0xC2,0x01,0x8F,0x62,0x42,0x74,0xEA,0x66,0x4A,0x74,0x97,0xD7, + + 0x7D,0x4C,0xC3,0x65,0x83,0x1C,0x8C,0xA0,0xA6,0xBA,0x3A,0xFA,0x09,0x44,0x4E,0x8C, + + 0x63,0xB9,0x16,0x8C,0x6B,0x59,0xE3,0x2B,0x95,0x22,0x72,0x7A,0xDC,0x64,0x8D,0xE9, + + 0x26,0x18,0xA5,0x73,0x97,0x06,0x82,0x95,0x72,0xC9,0x6E,0xCA,0x88,0x10,0x5A,0x0E, + + 0x08,0x28,0xC9,0xB4,0x00,0xC8,0xD7,0x50,0xDA,0x89,0x35,0x7C,0xAC,0x63,0x12,0x27, + + 0xF2,0x14,0xA1,0xD8,0x33,0xC9,0xC5,0x7D,0x69,0x66,0xB8,0xAB,0x6D,0x03,0xDC,0x69, + + 0x7F,0xEF,0xF1,0x42,0x45,0x29,0x0B,0xD5,0x60,0xC7,0x3B,0x0F,0x9A,0x8A,0xF8,0x3F, + + 0x2C,0x14,0x2F,0x3B,0x6D,0x7B,0x9B,0x49,0xA7,0xB8,0x9A,0x81,0x1E,0x14,0x9D,0xB9, + + 0xD3,0x39,0xE8,0x3E,0x9E,0x5A,0xE9,0xB7,0x09,0x5F,0x0D,0x6E,0x5E,0xEC,0xEB,0xC7, + + 0x33,0xDE,0x93,0xA8,0xA6,0x00,0xE0,0xFD,0x9A,0x62,0xFA,0x7E,0x5F,0xED,0xC7,0x16, + + 0xA2,0x8E,0xCF,0x2D,0x61,0x51,0x71,0x6A,0xC4,0x1D,0xF3,0x6F,0xDE,0xEE,0x64,0x26, + + 0x17,0x4A,0x87,0xE0,0x49,0xFB,0x84,0x99,0x14,0xFD,0xFB,0x7F,0xDF,0xEF,0x37,0x73, + + 0x87,0xD0,0xA2,0x91,0x53,0xD8,0xCB,0xBE,0x64,0x1B,0xB0,0x2E,0x5A,0x99,0xC5,0x61, + + 0xA1,0x3C,0x2D,0x8A,0x52,0x38,0xBB,0x4C,0x90,0xD1,0xD9,0xF8,0x96,0x4E,0xA5,0x92, + + 0x5B,0x13,0xE5,0x87,0xF3,0xA9,0xAF,0xD2,0xA5,0x91,0xEF,0x56,0xCB,0x76,0x89,0x23, + + 0xD4,0x3C,0xAD,0x97,0xD1,0x5A,0x5C,0x39,0xDC,0x97,0xC2,0xB3,0xAD,0x32,0xF2,0x4B, + + 0x7E,0x34,0x75,0x52,0x62,0xB4,0xB1,0x22,0xE4,0xCA,0xF4,0xE6,0x76,0xF4,0xB4,0x70, + + 0x86,0x48,0x22,0xE6,0x31,0xF7,0x31,0x61,0xF6,0x2A,0xFC,0xF6,0x77,0xF5,0x65,0x42, + + 0xC2,0x3C,0x5B,0x81,0x0E,0x3D,0x01,0x93,0xF4,0xA4,0xF5,0xE7,0xF6,0xF6,0x92,0x21, + + 0x20,0x12,0xFB,0xB7,0x90,0x32,0x7F,0xF3,0xB3,0x36,0xFD,0xF7,0xF7,0xF7,0x82,0xF8, + + 0xA2,0xD9,0x78,0x9B,0x78,0x47,0xF6,0x8E,0x48,0xF8,0x3F,0xCA,0x5B,0xA3,0xC6,0x1D, + + 0x09,0x94,0x29,0x61,0x61,0x46,0x5F,0x4E,0x04,0xDA,0x05,0x4C,0xCA,0x06,0x19,0xA7, + + 0x2E,0x62,0x58,0x7C,0xD9,0x70,0x33,0x54,0x1B,0x84,0x11,0x28,0x42,0x97,0xD0,0xBC, + + 0x0C,0x9D,0x50,0x64,0x0D,0x71,0xB8,0xBA,0xB1,0x66,0x53,0x9D,0xE6,0xD8,0xC3,0x1B, + + 0x54,0x3E,0x4E,0xB5,0xC1,0xBC,0xFD,0x0A,0x11,0x88,0xF6,0xEE,0x7E,0xFC,0x9F,0xE9, + + 0xFD,0x79,0x72,0xAA,0x02,0x26,0x81,0x14,0x8C,0x4F,0xFE,0xFE,0x7F,0xFD,0x98,0x28, + + 0x03,0x72,0xA1,0x6B,0xA7,0x44,0x92,0x51,0x4B,0x71,0xF7,0xEF,0xFE,0xFE,0xB6,0x0F, + + 0xFE,0xDC,0x89,0x7C,0x66,0x52,0xF8,0xF3,0xEF,0xEE,0xFF,0xFF,0xFA,0xC0,0x80,0x00, + + 0x55,0x40,0xF8,0x76,0xFB,0xDA,0x69,0xF0,0x0C,0xC1,0x50,0x25,0xAC,0x9B,0x4C,0xB4, + + 0x25,0x41,0x92,0x3A,0x30,0xC1,0x32,0xE0,0x1D,0xC9,0xE8,0xEB,0xE6,0x2D,0x01,0x85, + + 0x86,0x02,0xE1,0xC5,0x5E,0x2F,0x12,0x6B,0x4D,0x21,0x90,0xE3,0x72,0x2E,0x09,0x05, + + 0x22,0x66,0x49,0xC4,0x90,0xAE,0x09,0x7B,0x4D,0x4B,0xEF,0x26,0xF7,0x27,0x65,0x46, + + 0x96,0x60,0xBB,0x3A,0xC8,0xFB,0xF0,0x6E,0xCE,0xC9,0x90,0x17,0xD6,0x55,0xA7,0xBE, + + 0x83,0x9D,0xF2,0x0A,0xE8,0x64,0xB7,0x9B,0xC3,0xD9,0x09,0x87,0xDF,0x68,0x79,0x66, + + 0x25,0x16,0x46,0x96,0x31,0x1B,0xB5,0x46,0x65,0x56,0xAF,0x63,0x3B,0x02,0x69,0x97, + + 0x03,0x58,0xF6,0xBF,0x78,0x28,0x78,0x93,0x3E,0x4E,0xA7,0x97,0x7F,0x6A,0x92,0x2C, + + 0x2E,0x48,0xDB,0x15,0xBF,0x6A,0x10,0xDA,0x0F,0x4C,0xB4,0x8D,0xD4,0xB3,0x0A,0x18, + + 0x09,0x49,0x4A,0xC1,0xFD,0x2F,0x20,0x3A,0x55,0x69,0xEA,0x1A,0xBB,0x0A,0xC5,0x6E, + + 0xAE,0x49,0x5D,0xB9,0x1D,0xDF,0x17,0x7D,0x2F,0xB4,0xB3,0xD0,0x98,0x24,0x1E,0x26, + + 0x89,0x0B,0x03,0x58,0x38,0xA1,0x9B,0x29,0xD9,0x49,0x2B,0x8A,0xF7,0x27,0x62,0x1E, + + 0x8A,0x82,0x79,0x5E,0x3A,0x62,0x56,0x74,0x1F,0x45,0x42,0xAC,0x42,0x51,0x6A,0xFD, + + 0x8B,0x0F,0x94,0xBE,0x0B,0xD0,0x48,0x7C,0xA9,0xCD,0xA2,0x74,0xBE,0x2C,0x63,0x20, + + 0x0A,0x41,0x80,0xB3,0x62,0x21,0xFF,0x63,0x69,0xF3,0xC5,0x6B,0x69,0xAA,0x6B,0x6F, + + 0x0B,0x52,0x5C,0xA2,0x62,0x4C,0x5B,0xB9,0x71,0xE0,0x2E,0x83,0xCF,0x52,0x04,0x80, + + 0x78,0xF8,0x7C,0x74,0x38,0x3F,0x2C,0xC0,0xD0,0x58,0x7B,0x4A,0xF0,0xB8,0xDE,0xB0, + + 0x26,0xE9,0x64,0xAE,0xB3,0x19,0xE5,0xC2,0xEF,0x34,0x73,0x5A,0xF1,0xA2,0x4F,0x28, + + 0x82,0x11,0x2D,0xBB,0x37,0x47,0x64,0xD3,0x6E,0x37,0x2B,0xAC,0x57,0x62,0x02,0x1D, + + 0x24,0xE6,0x0B,0x65,0xF5,0x3C,0x64,0xC3,0x6F,0x36,0xBC,0xB3,0x21,0x17,0x6A,0xC6, + + 0xB3,0x88,0xBF,0xBA,0x10,0xD9,0xAF,0xE4,0xCF,0x15,0x70,0x48,0x99,0x10,0x71,0x0E, + + 0xCE,0x11,0x60,0x4B,0xCC,0xB8,0x66,0x77,0x47,0xA8,0x68,0x16,0x57,0x7F,0x6B,0xC6, + + 0x73,0xE8,0x83,0x63,0x79,0xBB,0x70,0xE7,0x76,0x32,0xEC,0x07,0x1B,0x79,0x4A,0xDA, + + 0x27,0x43,0x2E,0x2B,0xB5,0x77,0x7A,0x13,0x03,0x42,0xD8,0x9E,0x9B,0x33,0xC6,0x55, + + 0xCC,0xB3,0xE6,0xCD,0x7C,0x37,0x3F,0xFB,0xEC,0x44,0x28,0xA5,0xDB,0x1D,0x21,0x69, + + 0x02,0x1C,0x09,0x7E,0xBB,0x11,0x66,0x9F,0xF8,0xF5,0x22,0xB5,0x9E,0x69,0x37,0xD7, + + 0xC3,0x11,0xE7,0xCC,0xF0,0xB1,0xBE,0xFA,0x64,0x06,0x78,0x43,0x78,0x39,0x51,0x91, + + 0x8A,0xB0,0x8D,0x7F,0xBD,0xD8,0xBF,0xF3,0x7C,0xF7,0x70,0x53,0x79,0x60,0xE2,0xBA, + + 0xA4,0x79,0xA9,0x8B,0xDB,0x8A,0x2E,0xB7,0xBA,0x53,0xFF,0x1A,0x6A,0xB9,0x75,0x36, + + 0x93,0x12,0xEE,0xD9,0x3D,0x7D,0x26,0xCA,0x1F,0x82,0xDB,0x97,0x13,0x39,0xBD,0xC1, + + 0x75,0x21,0xB8,0xBF,0x68,0xA1,0x65,0xC1,0x3F,0xEA,0xAF,0xC9,0x44,0xA1,0x70,0x36, + + 0x8F,0x2B,0xA0,0x7D,0x70,0xDF,0xCF,0x43,0xEB,0x2F,0xF6,0x1B,0x12,0x70,0x20,0x02, + + 0x04,0xC0,0x5B,0xE4,0x96,0x88,0x20,0x62,0xC4,0xC6,0xC0,0xF9,0xB7,0xA2,0x28,0x12, + + 0x05,0xC1,0xD0,0x94,0x10,0xF2,0x3C,0xB5,0x64,0x56,0x55,0x5D,0xD0,0xE6,0xEE,0x07, + + 0x84,0x82,0x1D,0x65,0xD5,0xE2,0x7E,0x83,0x25,0x19,0xB1,0x3B,0x03,0x5F,0x29,0x87, + + 0x85,0x83,0x93,0xF5,0x39,0x23,0x8D,0xCC,0x86,0x30,0x51,0x94,0xF1,0x1E,0x40,0xCC, + + 0x86,0x91,0x9F,0x06,0x5A,0xB2,0xD0,0x0D,0x26,0x84,0xE6,0x60,0xE5,0xA9,0x48,0x1C, + + 0x87,0xE6,0x10,0x72,0x9A,0xB3,0xCF,0x57,0x6B,0x6D,0x68,0x05,0xDB,0xB4,0x41,0x8D, + + 0x06,0xCB,0xA9,0x53,0x5D,0xA9,0x03,0x73,0xC6,0xCC,0x8F,0x85,0xC6,0xAB,0x4C,0x55, + + 0x13,0xE3,0x96,0x4A,0x5C,0xA8,0xD9,0x56,0x45,0x87,0x87,0x70,0x6E,0x81,0x22,0x0A, + + 0x0C,0xC8,0xDA,0x8A,0x43,0x06,0x62,0x59,0x54,0x42,0x6D,0x26,0x72,0xAE,0x2A,0x1A, + + 0x0D,0xC9,0xD7,0xEF,0xAF,0x39,0x8E,0x5A,0x45,0x19,0xCA,0xE1,0xB2,0xA8,0x23,0x9E, + + 0x8C,0x8A,0x7C,0xA2,0x9A,0x5B,0xF4,0xD5,0x2D,0xAC,0x41,0xE9,0x7E,0xA6,0xE6,0x47, + + 0x8D,0x8B,0x43,0x35,0x1F,0xA3,0x94,0xEB,0x4C,0x6A,0x05,0x36,0x3A,0xFB,0x59,0xA4, + + 0xEF,0xEA,0x5B,0x6A,0x9B,0x02,0x71,0x8F,0xF0,0xEC,0x8C,0x8C,0xF2,0xD1,0x43,0x00, + + 0xC6,0xE9,0x1A,0x8D,0xFE,0xC1,0xDE,0x18,0x6B,0xC7,0xFE,0xFF,0xB6,0xA9,0xD7,0x01, + + 0x47,0xCA,0xD8,0xEF,0x73,0x9E,0xF1,0x60,0x4A,0x9A,0x17,0x4B,0x6D,0x99,0x40,0xB9, + + 0x23,0x93,0x8C,0xA4,0x7E,0x39,0xFB,0x0C,0xEB,0xB8,0xEE,0x8C,0x5B,0x42,0x01,0x82, + + 0x4F,0xB4,0xED,0x98,0x48,0x44,0x90,0xEC,0xBB,0xED,0x08,0xAF,0xD3,0xE0,0xAC,0x92, + + 0x94,0x1C,0x7C,0x50,0xDF,0xFD,0x63,0xFA,0x1A,0xF1,0x9D,0xB0,0xA5,0x95,0xDA,0x87, + + 0xA4,0xF7,0xF5,0x9D,0x9E,0x06,0xDE,0xD4,0x64,0x05,0x5A,0x49,0x74,0xF9,0xC9,0xB4, + + 0x16,0x1E,0x5D,0xD1,0x1F,0x48,0xFD,0x73,0xF6,0xD5,0x01,0xBE,0x56,0x96,0xC4,0xCC, + + 0xAA,0x09,0x48,0xB4,0xE8,0x4B,0x87,0xE2,0x5E,0x29,0xF5,0x00,0x52,0x09,0x42,0xD4, + + 0xB6,0x09,0xC2,0x34,0x84,0xD0,0x4B,0x10,0x43,0x58,0x07,0x8D,0x4D,0x4A,0x9C,0xA1, + + 0x0A,0x8A,0xDF,0x59,0x41,0xF7,0x52,0x01,0x26,0x29,0x60,0x18,0x03,0xA5,0x43,0xD4, + + 0x76,0x98,0xD5,0xFF,0x14,0x1B,0x56,0x19,0x8C,0xD8,0xC6,0x5F,0x04,0xB6,0xC2,0xAD, + + 0x2D,0xF8,0x73,0x0A,0x34,0x4D,0x3A,0xD4,0xCD,0x52,0x59,0x40,0xFC,0x71,0x2F,0x45, + + 0xCE,0x9D,0x19,0xA1,0x41,0xFB,0xB9,0x58,0xEF,0xF1,0x86,0x99,0x9A,0xE9,0xDD,0x89, + + 0xA4,0xD5,0x10,0x52,0xBA,0x9A,0xCC,0x49,0x40,0x51,0x92,0xA9,0x68,0x9E,0x3A,0xE9, + + 0x23,0xFE,0xAB,0xA0,0x41,0xB8,0x84,0xD9,0xAC,0x9B,0x50,0x51,0x7D,0xE1,0xD2,0x80, + + 0xE7,0xD8,0x9E,0x24,0xD7,0xF8,0x77,0x95,0x12,0x23,0xCF,0xF1,0xDD,0x79,0x45,0x05, + + 0x9A,0x43,0xA8,0xD9,0x9E,0xAE,0xAA,0x00,0x9A,0x6B,0xED,0x04,0xC6,0x29,0x4E,0x91, + + 0x67,0xFA,0xA1,0xC9,0x9D,0xFE,0xCC,0x4E,0x19,0x43,0xDC,0xE0,0x5D,0x7B,0x56,0xD9, + + 0x30,0xAB,0x97,0xFB,0x01,0x9F,0x44,0x71,0xEE,0x7F,0x87,0xCD,0x8F,0x60,0xA1,0xE2, + + 0xF9,0x85,0xEE,0xE6,0x87,0xAD,0x5D,0x8E,0x40,0xF1,0x24,0x46,0xEF,0x21,0x70,0x22, + + 0xD8,0x14,0x71,0x66,0x80,0x1E,0xB7,0x6E,0x98,0xDE,0xE5,0x3C,0xF4,0x3E,0x12,0xFB, + + 0x35,0xD6,0xAE,0xEA,0x71,0xBE,0x2A,0x2E,0x63,0xC6,0x29,0xCA,0xC0,0x2F,0x71,0x1E, + + 0x22,0x86,0x19,0x7A,0x4F,0x8C,0x27,0xD3,0x5C,0x7C,0x98,0x53,0x4C,0x7C,0x56,0x46, + + 0xE9,0x40,0xC0,0x5B,0x96,0x8B,0x9F,0xEA,0xC0,0x58,0xFE,0xD4,0x8F,0x6B,0x36,0x57, + + 0x27,0x0B,0x63,0xBC,0x17,0xF9,0xEC,0x03,0x73,0x4A,0x98,0x07,0x6A,0xE2,0x7F,0xA3, + + 0xE8,0x62,0x65,0x2A,0x47,0x7B,0xED,0x12,0xAE,0x49,0x65,0x1A,0x71,0x62,0xED,0x93, + + 0x07,0x18,0x65,0xD0,0x46,0x45,0x39,0x3A,0x6E,0x05,0x5D,0x78,0x32,0xC8,0x15,0x52, + + 0x3A,0xA9,0xFA,0x62,0xCE,0x60,0x4B,0xA0,0xB5,0xB9,0x02,0x56,0xBF,0x78,0x72,0x2A, + + 0x79,0xB5,0xF2,0x76,0xCB,0x81,0x25,0x9D,0xB2,0xD4,0x60,0x34,0xA4,0xA6,0x7B,0xF2, + + 0x31,0xFE,0xFB,0x66,0x42,0x62,0xEC,0x57,0xE6,0x95,0xAC,0xDB,0xC8,0xB7,0x5D,0xFB, + + 0x7A,0x76,0xF3,0x39,0x28,0x22,0xCF,0xC3,0x74,0x28,0x0B,0x47,0x7A,0x0E,0x78,0xCF, + + 0x29,0x4E,0xAB,0xA7,0xE5,0x42,0x92,0xEC,0x6E,0x22,0xCF,0xEE,0x93,0xA5,0x4D,0x7F, + + 0xA7,0x6B,0xDC,0xC2,0x18,0x94,0x4B,0xF0,0xEE,0xEB,0xA2,0xFE,0x92,0xB8,0x19,0x48, + + 0x04,0x05,0xFD,0x79,0x44,0x83,0x0A,0x58,0x6F,0xE8,0xAB,0x4A,0xB9,0x91,0x32,0xA9, + + 0x83,0x69,0xF5,0x5B,0x6F,0x4B,0xCD,0x39,0xC7,0x0D,0x6C,0x55,0x2F,0x8E,0x7C,0x88, + + 0x4B,0x54,0xFF,0x4E,0x9B,0x71,0xC0,0xEB,0x62,0xBE,0xBF,0x20,0x38,0xEC,0xB7,0x35, + + 0xD6,0xAD,0xF3,0x9C,0xD4,0xEE,0x14,0xA5,0x90,0x27,0x9A,0xEE,0x90,0x1A,0x05,0xFE, + + 0xDC,0xED,0x3F,0x7F,0xA0,0xFF,0x13,0x2E,0x59,0x04,0x55,0xB4,0x21,0x30,0xD9,0xCA, + + 0x70,0x70,0x8C,0xE3,0x4E,0x72,0x66,0xDA,0x77,0x6C,0xA7,0x32,0x5D,0xDF,0x5C,0x01, + + 0x24,0x56,0x79,0x56,0x26,0x69,0xF8,0x08,0x40,0x19,0xEB,0x76,0x91,0xE9,0x88,0x44, + + 0x10,0x54,0x20,0xA7,0xB7,0xB3,0x3A,0xD9,0x60,0x35,0x85,0xC1,0xD6,0x8A,0xC3,0x29, + + 0xC2,0x54,0xA7,0xC5,0xB3,0x1C,0x33,0xCD,0xF0,0x1B,0xB7,0xE4,0xF3,0x07,0x8D,0x54, + + 0xE5,0x0C,0x4C,0xA6,0x3F,0xB1,0x9D,0x74,0xB5,0x15,0x71,0x67,0x73,0x7F,0x2D,0xDB, + + 0xAC,0x7B,0xBE,0x76,0x94,0x35,0x91,0x62,0xC9,0xD5,0x32,0xFF,0xDB,0xD4,0xEF,0xE2, + + 0xB3,0xB4,0x3A,0xFE,0xC6,0x78,0xE3,0x9C,0x02,0x56,0xB7,0x5E,0xD5,0xD5,0x29,0x8F, + + 0x36,0xA7,0xF8,0xAA,0x19,0xE5,0x3A,0x47,0x09,0xC6,0x33,0xE7,0x31,0x3E,0xAF,0x13, + + 0xA8,0x8B,0x37,0x67,0xA9,0x76,0x5F,0xC6,0x95,0xA4,0x3B,0xEE,0x5A,0xD7,0x53,0x4C, + + 0x24,0xCE,0xC6,0x8C,0x7F,0x97,0x96,0xDF,0x96,0x4D,0xD4,0x1C,0xFE,0x33,0x8D,0x29, + + 0x16,0x3D,0xCA,0x22,0xDA,0x5E,0x1B,0xE6,0x03,0xA9,0xD6,0x0F,0xF7,0xD0,0x1E,0xF4, + + 0xAC,0x7C,0xDA,0xCC,0x47,0xBF,0xE4,0xDC,0xEC,0x84,0x47,0x92,0xFC,0x7C,0x16,0xEC, + + 0xC8,0x3F,0xAF,0x8E,0xDE,0x30,0xCD,0x7D,0xE1,0xE2,0x49,0x1F,0x57,0xD2,0x83,0xE0, + + 0xE4,0x5F,0x27,0x7C,0x99,0xC2,0xCD,0xA2,0x8B,0xA0,0x8F,0xC4,0xF8,0x3D,0x50,0x20, + + 0xD8,0x2D,0x13,0x93,0xE2,0x5C,0x5D,0xDD,0x19,0xDF,0x28,0x4C,0xF2,0xF1,0x14,0xE1, + + 0x39,0x76,0xDA,0x7C,0x9A,0x1D,0x54,0x63,0x84,0xBF,0xC9,0x00,0x29,0xED,0x51,0x2F, + + 0x5C,0xB0,0x6D,0xE8,0x06,0x8C,0x07,0x41,0x7E,0x9C,0x86,0xD1,0xC5,0x3E,0x1E,0x44, + + 0x96,0xE0,0xB9,0x42,0xC3,0xC8,0xB4,0xF6,0xCB,0xDF,0x30,0x73,0xB5,0x30,0x8C,0x3A, + + 0x26,0x78,0x95,0xA9,0x98,0x18,0x39,0x14,0x8D,0x24,0xD6,0xD4,0xAB,0xB4,0x5B,0xA6, + + 0xE5,0xC6,0x25,0x19,0x98,0xB8,0xE5,0x05,0x0C,0xD7,0xE7,0x78,0xB2,0xE0,0xDD,0x74, + + 0x2B,0x83,0x0E,0x2D,0x41,0xAD,0x31,0x76,0xC1,0xA5,0x4A,0x5E,0xD1,0x07,0xD9,0x78, + + 0x7E,0x17,0x32,0x64,0x3D,0x58,0xA2,0xC2,0x5E,0x35,0x4A,0x26,0xA1,0xA7,0x7C,0xF8, + + 0xF6,0x04,0x11,0xBB,0xEA,0x14,0xC1,0x41,0x63,0x76,0x1E,0xDC,0xDE,0x8D,0x9A,0x39, + + 0xF4,0x56,0x1C,0x48,0xB2,0x55,0xA4,0xD4,0x39,0xA9,0x23,0x05,0x58,0x4E,0x78,0xE1, + + 0xA9,0x20,0x7F,0xE4,0x6C,0xC8,0x00,0x9E,0x3E,0xF7,0xD3,0x39,0xDB,0x4B,0x8D,0x54, + + 0x62,0x78,0xAB,0x3D,0x27,0x25,0xB0,0xAD,0x7D,0x9D,0x88,0xEA,0x1C,0x4F,0xFB,0xDE, + + 0x46,0xAB,0x7C,0x38,0xE0,0x2B,0xC2,0xE9,0x77,0xC5,0x80,0x0D,0x37,0x6B,0x72,0x51, + + 0xB6,0x3A,0xE7,0x2F,0x99,0xB5,0xCB,0xF8,0xFA,0xDC,0x5F,0x1C,0xBA,0x68,0x55,0x36, + + 0xEE,0xAF,0x6F,0x1F,0x8A,0xC1,0xFF,0xFF,0xC1,0x1D,0xFF,0xBF,0xC7,0x83,0x5A,0x84, + + 0xD1,0xE6,0xDB,0x8E,0x91,0x6F,0x8F,0x07,0x93,0x6D,0x10,0xEC,0xBD,0xB4,0x17,0x19, + + 0xD6,0x61,0x96,0x11,0xC6,0x3A,0x17,0xF8,0x4B,0xCD,0xD4,0xB0,0x94,0x97,0xDE,0xF8, + + 0x32,0x2D,0xA4,0xE1,0x4B,0xF3,0xE1,0x58,0x35,0xB1,0x9C,0x83,0x77,0x96,0x43,0x71, + + 0x62,0x1E,0xA9,0x10,0x4E,0x38,0x7D,0x64,0xA9,0xA5,0x45,0xBF,0x96,0xD3,0x9C,0x3E, + + 0xB7,0x6F,0x50,0x98,0x95,0xB2,0xC3,0xCE,0x92,0xE5,0xE5,0x04,0x8B,0xB6,0x93,0x56, + + 0x78,0x83,0xE7,0x3E,0x13,0xB3,0xC3,0xA9,0xB6,0x08,0x3C,0x72,0x71,0xB7,0x5B,0x2E, + + 0x51,0x2D,0xCB,0xCD,0xB0,0x94,0xB5,0x3F,0xFC,0x6A,0xB5,0x3E,0x1D,0x92,0xB6,0x98, + + 0xD8,0x3A,0xC3,0x92,0xB1,0xD5,0x56,0x77,0xED,0x18,0x3D,0xE2,0xC4,0x16,0x8D,0x65, + + 0xCD,0x24,0x26,0x09,0xCB,0x33,0x0D,0x24,0xDD,0xEE,0x52,0x48,0x6C,0x73,0x1F,0x9C, + + 0x09,0x8E,0x96,0x74,0x91,0xB4,0x41,0xC0,0xFB,0x46,0xE4,0xBB,0xF3,0xB6,0xDE,0xF9, + + 0x7D,0xA5,0x23,0x08,0x43,0xFB,0x3F,0xA7,0x15,0xAC,0x37,0x28,0x5B,0xEA,0x2F,0xD8, + + 0x17,0x9B,0xD2,0xB8,0x1C,0xE4,0x06,0x30,0x5E,0x2B,0xE5,0xAF,0xD2,0x7E,0xBB,0x34, + + 0x55,0x63,0x74,0x26,0x06,0xBA,0xDB,0x95,0xF3,0x83,0x4E,0xFE,0xD9,0xBD,0x47,0x27, + + 0x33,0xE6,0x7C,0x36,0x43,0xF0,0x7F,0x9C,0x90,0xB1,0x81,0x7A,0x28,0xCF,0xA7,0x16, + + 0x3C,0x45,0xC9,0x29,0xB8,0xDC,0x2E,0xC2,0x4B,0x01,0xCF,0x15,0x52,0xF3,0x4F,0x22, + + 0x50,0xDD,0x10,0xD7,0x1A,0xB9,0x26,0x5B,0xE9,0x9D,0x6F,0xFF,0xFF,0xFF,0x3A,0xF3, + + 0x74,0xFD,0xC0,0x18,0x9D,0xA6,0x72,0x20,0x41,0x00,0x16,0x2C,0xF5,0xBF,0xB7,0x60, + + 0x00,0x08,0xC0,0x15,0x35,0x8C,0x0F,0xB2,0x88,0xA2,0x74,0x10,0xA4,0x90,0x1B,0x75, + + 0xA1,0x10,0x89,0x7B,0x52,0x22,0xFD,0x05,0x21,0xED,0xF3,0x20,0xD1,0x22,0xCD,0x62, + + 0xF4,0x84,0x10,0xA7,0x95,0xD3,0x21,0xCE,0x28,0xF2,0x66,0x47,0xFF,0xBC,0xA7,0x80, + + 0x06,0xD0,0x39,0x83,0x8C,0x2E,0xEA,0x02,0x9C,0x42,0x69,0xFE,0x53,0x45,0x08,0x10, + + 0x05,0x27,0x8C,0x58,0x60,0x25,0x50,0x79,0xBE,0xC3,0x98,0xC9,0x55,0x67,0x56,0x32, + + 0xFA,0x44,0x41,0x06,0xAB,0x64,0x78,0x12,0x63,0x90,0xB1,0x36,0xBC,0x24,0xC9,0xBE, + + 0xEB,0x0A,0x96,0x50,0x95,0x67,0x71,0x0F,0x01,0x47,0x8F,0x45,0x98,0xD8,0x06,0x0D, + + 0xF6,0xF1,0xDB,0x24,0xBD,0x6A,0xBE,0xB7,0x49,0x08,0x7E,0x53,0x9A,0xC8,0x0E,0x78, + + 0x41,0xFE,0x82,0x62,0xDB,0x29,0xDA,0xB8,0x48,0xE6,0xBA,0x7C,0x5D,0x07,0x06,0x7A, + + 0xFD,0x83,0xC3,0x11,0x15,0xAC,0x3F,0x40,0x21,0xFB,0x28,0x5D,0x58,0xEC,0x94,0x1D, + + 0x06,0x4A,0xC3,0x1C,0xBD,0x86,0xBF,0x1E,0x68,0xB4,0x0B,0xB9,0x88,0x5C,0xBD,0x26, + + 0x24,0xD3,0xAD,0x23,0x1C,0x2E,0x1A,0x69,0x6E,0x0E,0xE8,0xD4,0xA9,0xC7,0xBC,0xDC, + + 0x09,0x13,0x5D,0xA3,0xEA,0xFE,0x0C,0x83,0x20,0x42,0x9A,0xBC,0x5D,0x6F,0x1C,0x4C, + + 0x8C,0x6C,0x8C,0xC9,0x98,0x8D,0x17,0x63,0xCC,0x4C,0xAB,0x69,0x27,0x2C,0x03,0xC9, + + 0x8D,0x0D,0x0B,0xDD,0x23,0xB4,0xDB,0x06,0xCD,0x4D,0x1D,0x3A,0x01,0xB2,0x52,0x74, + + 0x38,0xE5,0xC4,0x5D,0xDB,0x54,0x84,0xB1,0x18,0x54,0x78,0x36,0xE1,0xAD,0x0F,0x21, + + 0xA9,0x61,0xCC,0x58,0x37,0xE1,0xA4,0xB4,0xEE,0x10,0xA2,0xD8,0x10,0x31,0xDB,0x8C, + + 0xC6,0x49,0x31,0xE7,0x4F,0x70,0x3F,0xD2,0x81,0x53,0xF7,0xA5,0xF3,0xB2,0xBB,0x97, + + 0xBD,0x0E,0xD3,0xD5,0xB5,0x5D,0x44,0x9C,0x44,0x3D,0x85,0xB1,0x7E,0x32,0x84,0x40, + + 0x4F,0x56,0x28,0x56,0x36,0x3E,0x50,0x20,0x66,0x38,0x38,0x76,0x73,0xE9,0x93,0xAE, + + 0xE1,0x15,0xCE,0x94,0x37,0x5B,0xA3,0x74,0x61,0x5D,0x30,0xD0,0x75,0x77,0x05,0x54, + + 0x2D,0x90,0x47,0xCD,0x17,0xB0,0xC5,0x09,0x86,0x1B,0xB7,0xE5,0xF3,0x36,0x05,0xD5, + + 0x2A,0x2E,0x5D,0x12,0x31,0x0B,0x9D,0x71,0x89,0xE8,0x4F,0x32,0xF5,0x35,0xA2,0x90, + + 0xA4,0x9C,0x16,0xFF,0x41,0xB1,0x74,0xBC,0x6B,0xE8,0xCF,0x8D,0xDD,0x3A,0x30,0xE8, + + 0x09,0x34,0x93,0x18,0x3B,0x63,0x9C,0x78,0x2D,0xA4,0x8F,0x38,0x7B,0xE3,0x07,0x89, + + 0xFC,0x23,0x03,0xED,0xBC,0x16,0x16,0xCF,0x17,0xDC,0xD7,0xB1,0x07,0x61,0x8F,0x5E, + + 0x8D,0x00,0xF1,0x9A,0x15,0x36,0xB3,0x2B,0xE5,0x51,0x5F,0x3D,0x93,0xC4,0xAA,0xEC, + + 0xC3,0x75,0xFC,0xAE,0xF8,0x69,0x0F,0xC9,0xCF,0x83,0x88,0xAC,0x36,0x3E,0xDE,0x30, + + 0x17,0x50,0x49,0x34,0x57,0x70,0x1A,0xFC,0xE6,0xEB,0x32,0xD8,0x7D,0x7F,0x57,0xBA, + + 0xAE,0x70,0x07,0x5D,0xCE,0x34,0x97,0x69,0xEB,0x1C,0xD9,0xE9,0xFB,0x3E,0xA3,0x4B, + + 0xA7,0x15,0x30,0x59,0xB9,0x0E,0xE6,0x63,0xE8,0x5D,0x41,0x79,0xF9,0x9D,0x9F,0x86, + + 0x40,0xF0,0xBF,0x76,0x10,0xAB,0xF0,0xA2,0x51,0x82,0xF8,0x27,0x70,0xA2,0x16,0x52, + + 0x55,0xE5,0x90,0xE9,0x26,0x60,0x28,0xF2,0x03,0x6C,0xBC,0x56,0x51,0xCD,0xA4,0x69, + + 0xF2,0x32,0xB2,0x85,0x5D,0xD1,0xB2,0x4E,0x49,0x44,0xFA,0x19,0x29,0x6B,0xE2,0x0B, + + 0x0E,0xEA,0x11,0xE9,0xE8,0xA8,0x2E,0xB7,0xC7,0x79,0xA4,0xF0,0xF1,0x4E,0xE9,0xB1, + + 0x8A,0xE1,0xE0,0xBF,0x1A,0xE6,0x38,0xE6,0x44,0x26,0x93,0x26,0x52,0xC8,0x47,0xD6, + + 0x58,0xD1,0xA8,0x8F,0x11,0xA7,0x1B,0x32,0x5B,0xAB,0xE2,0x56,0xF6,0xA5,0x59,0xBC, + + 0x5F,0xFB,0x61,0x9C,0x23,0xE4,0x8E,0xA4,0x1C,0x1B,0xEC,0xA0,0xF2,0x4B,0xD6,0x14, + + 0x45,0xC4,0xBF,0x10,0x49,0x3A,0xC6,0xE1,0xC6,0x1A,0x15,0x53,0xA8,0xC7,0x23,0xC2, + + 0x65,0x38,0xA5,0x49,0x9E,0x94,0x4C,0x2D,0xE0,0xC5,0xA8,0x0E,0xBD,0xA8,0x35,0x13, + + 0x26,0x70,0x6A,0x8E,0x69,0xA3,0xFA,0x26,0x70,0xA5,0xA2,0xAE,0x6E,0x28,0x37,0x7F, + + 0x9C,0x26,0x99,0x6D,0x5E,0x51,0xCC,0xAF,0xCE,0x23,0x5F,0x0B,0x35,0x53,0xAA,0xDF, + + 0xA2,0x1B,0xAF,0x3B,0x68,0xE9,0x59,0x1B,0xCE,0xEB,0x03,0xBB,0xDF,0x3B,0x2A,0x4E, + + 0x81,0xCD,0x01,0x0E,0x1A,0x80,0x10,0x6A,0x4F,0x8C,0x32,0x37,0x7A,0xE4,0x52,0xC8, + + 0x9E,0xCF,0xFA,0x28,0x1B,0xC3,0xD6,0xE8,0x47,0xC5,0xC2,0x81,0x59,0xEF,0x8F,0xC9, + + 0x17,0x03,0xFE,0x6B,0x77,0xC7,0x9F,0x4F,0x27,0x77,0x37,0xED,0x17,0x2D,0x29,0x67, + + 0x8C,0x8D,0x7B,0xB7,0xA3,0xE2,0xF9,0x08,0xFA,0x49,0xF3,0xFB,0xDD,0x4C,0xB1,0xE4, + + 0xC6,0xD0,0x5B,0x04,0xFD,0x43,0xB4,0x65,0x40,0x7D,0x74,0x7A,0x6E,0x9E,0xC0,0x00, + + 0x29,0x9B,0x6C,0x8A,0x5E,0xBB,0x7C,0xC7,0x63,0xD3,0xDE,0xB6,0x74,0xB1,0xA6,0x8B, + + 0x01,0x6D,0x9D,0x03,0xB6,0x08,0xAC,0xC3,0xB0,0x90,0x0A,0x35,0x8B,0x2F,0xAF,0xEC, + + 0x28,0x15,0x2D,0xD4,0x8C,0xDD,0xFB,0xF4,0x27,0xD7,0x51,0x93,0xC6,0x42,0xE6,0xCA, + + 0x83,0x12,0x48,0x54,0x7D,0x29,0xCF,0x66,0x64,0x6E,0x34,0x67,0x54,0xFC,0xFC,0x50, + + 0xB6,0xE5,0x00,0xF2,0xB5,0xA9,0x1E,0x3E,0x96,0x53,0xC2,0x93,0x57,0x98,0x67,0x83, + + 0xA2,0xF8,0x87,0xC7,0xB5,0xF6,0xB5,0x63,0x8C,0xB8,0x75,0xA4,0xCF,0xB7,0x55,0x14, + + 0x65,0x17,0xD7,0xB5,0xD7,0x1D,0x7D,0x33,0xEF,0x96,0x7D,0x30,0xD3,0x0C,0x22,0x4A, + + 0x28,0xF6,0x36,0xFD,0x5D,0xB9,0x8D,0x38,0x6C,0xD2,0x0E,0x5D,0x04,0xBA,0x14,0xF8, + + 0xEF,0x9C,0xF7,0xB3,0x98,0x46,0xA7,0x08,0x65,0x29,0x59,0xFE,0x69,0xE2,0xB7,0x4C, + + 0x2E,0x86,0x1B,0x8B,0x33,0xFB,0xB7,0x6C,0xC8,0x77,0x73,0xE1,0x0B,0x94,0x4F,0xD1, + + 0x00,0x96,0x43,0x0D,0xB1,0xB1,0x66,0x9A,0x48,0x99,0xAE,0xD9,0x02,0x26,0x2E,0xDF, + + 0x82,0x91,0x99,0x4C,0xAF,0xD1,0x48,0x93,0x8C,0xFC,0xF2,0x6A,0x27,0xBD,0xFE,0x5E, + + 0x29,0x2E,0x2E,0x5E,0x4D,0xFF,0x86,0x12,0x47,0x90,0x2C,0x9C,0x80,0xBF,0x05,0xDB, + + 0xAD,0xBE,0xDF,0x7F,0xBE,0x21,0x75,0x03,0x96,0x23,0xFF,0x6A,0x7C,0x52,0x90,0x1C, + + 0x2D,0x83,0xAB,0xDB,0x32,0x09,0x82,0x13,0x97,0x92,0xBF,0xBF,0xF9,0xFD,0x56,0x47, + + 0xC2,0x0C,0xF2,0x00,0x08,0x62,0x0D,0xE7,0x64,0xED,0xBC,0x4D,0x63,0x81,0x88,0xD7, + + 0x25,0x43,0x80,0x10,0x9E,0x60,0xF4,0x14,0xA0,0xBE,0x38,0x46,0x33,0x7D,0x3A,0x93, + + 0x80,0x08,0x45,0x4B,0x1F,0xD4,0x8D,0x01,0x21,0x02,0x29,0x15,0xC8,0xCD,0x49,0x25, + + 0x0C,0x41,0x25,0x91,0x97,0xE8,0xD9,0x68,0xE5,0x4B,0xE7,0x32,0x70,0x9C,0xC2,0x00, + + 0x06,0x6A,0xFA,0xAC,0x29,0xEB,0x8F,0x44,0x29,0xA5,0x28,0x23,0x90,0xE4,0x11,0x78, + + 0xA6,0xFA,0x91,0xC1,0xB6,0xA5,0xA7,0x9D,0x2F,0xFE,0x87,0x16,0x10,0x66,0xD1,0x33, + + 0x69,0xB7,0x98,0x65,0x37,0xD9,0xAE,0x89,0xFD,0x8B,0xD9,0x45,0x50,0x62,0x77,0x68, + + 0x0E,0xF1,0x31,0x92,0x4D,0x2D,0x1D,0xF5,0xF9,0x48,0x26,0xCA,0xD1,0x57,0xC2,0xF9, + + 0x0B,0xA8,0x8A,0x08,0x91,0x11,0xD6,0xAA,0x81,0x3B,0x3E,0xBE,0x18,0x60,0xCB,0x9C, + + 0x0B,0xE0,0x75,0x98,0x50,0x69,0x55,0xBC,0x4B,0xEA,0x99,0xFC,0x5D,0x45,0xC3,0x58, + + 0x8C,0x00,0xE3,0x5E,0xFE,0x27,0x2B,0xD6,0xCE,0x48,0x92,0x52,0x57,0xEC,0xCB,0x99, + + 0xC7,0x65,0x83,0x19,0x10,0x12,0xF7,0xAB,0xC8,0xD6,0x86,0xB9,0xDB,0x82,0x0A,0x79, + + 0xE3,0xBD,0x42,0x2F,0xF8,0xA1,0xF5,0x5C,0x79,0x97,0xEC,0xB8,0x7B,0xCC,0x0A,0xCD, + + 0xF4,0x82,0x6D,0x69,0xCF,0xEC,0x60,0x83,0x4D,0x7E,0xDD,0x0E,0x68,0xBD,0x83,0xC9, + + 0x8B,0x4C,0x3B,0xC9,0x91,0xE1,0xE9,0x96,0xF5,0xAF,0x6B,0xFD,0x7D,0x6A,0xC0,0x39, + + 0x8D,0xF2,0xF1,0xA2,0xA8,0xFF,0x23,0x66,0xA3,0xE2,0x23,0x95,0x99,0x22,0x94,0xC0, + + 0x2E,0x16,0xC4,0x18,0xBD,0xC6,0x94,0xE3,0x59,0x56,0x1D,0x20,0x72,0x92,0xCC,0x10, + + 0x7A,0x53,0x1C,0x16,0xA0,0x9C,0xDC,0xE1,0x65,0x5B,0xDC,0x09,0x77,0x73,0x2B,0x2C, + + 0x01,0xED,0xBE,0x1B,0xB3,0x12,0x3B,0x0C,0x41,0xAD,0x55,0x24,0xFE,0x30,0x4D,0x20, + + 0x2C,0x95,0xB5,0x6B,0x1D,0x3E,0x9D,0xF2,0xD8,0x3D,0xCB,0x4E,0xF7,0xA9,0x53,0xA6, + + 0xC9,0xA5,0x43,0xD6,0xD9,0x95,0x1C,0xE4,0xBE,0xB5,0x79,0xFB,0x1A,0x6F,0x16,0xDC, + + 0x4B,0xA4,0x8E,0xA7,0x5B,0x2E,0x16,0x4D,0xEE,0xF3,0xC4,0xE0,0x97,0xD4,0x65,0xC5, + + 0x76,0xA7,0x9C,0x39,0xD7,0x3F,0x6B,0xC9,0xEC,0x34,0x08,0x93,0x9B,0xD7,0x33,0xD7, + + 0x42,0x94,0x10,0xA1,0x92,0x87,0xCB,0xB1,0xC9,0x4C,0xE7,0x1D,0xF7,0x38,0x2E,0xF2, + + 0xEA,0x18,0x6A,0x08,0x3A,0xD6,0x86,0xDB,0x09,0x59,0xD3,0x28,0x76,0x3D,0xCE,0x18, + + 0x3C,0x5B,0xAF,0x18,0x3B,0x9A,0xC1,0xB9,0x6F,0xE1,0xA6,0x46,0xF6,0x84,0x4F,0x8D, + + 0x27,0x5B,0x8F,0x05,0xBE,0x18,0x2F,0xAD,0x67,0x1B,0xFF,0xCF,0x03,0x74,0x4F,0x28, + + 0xAF,0x79,0xF0,0x6C,0x1A,0x7B,0x8F,0x79,0xE1,0x1A,0xF8,0xC3,0x2B,0x71,0x6F,0x3B, + + 0xA6,0x11,0x9F,0xD0,0x59,0x1C,0x14,0x8E,0x95,0x47,0xE8,0x38,0x5B,0x4C,0x4A,0xFC, + + 0x2D,0x1F,0xD8,0xAE,0x08,0x7D,0x07,0x61,0xCE,0xE2,0x87,0xF8,0xDE,0x8C,0xEB,0x5B, + + 0xBA,0x14,0x3F,0x25,0x85,0xFB,0x77,0x9F,0x34,0x81,0x8E,0xEE,0x5F,0x81,0xC6,0x5D, + + 0xA9,0xFD,0x37,0x35,0xE5,0x72,0xF3,0x87,0x31,0xF0,0x27,0x7F,0x66,0xBA,0xE0,0x83, + + 0x2E,0x8A,0x30,0xEE,0x57,0xED,0x52,0x22,0x45,0x80,0x70,0xA6,0x1A,0xA2,0x06,0xA6, + + 0xA4,0x7E,0x38,0xFE,0x29,0xEC,0xB1,0xB6,0x47,0x62,0xF8,0xEF,0x53,0xE3,0xA1,0x40, + + 0xBD,0x84,0xB1,0x75,0x90,0xCC,0xDD,0x07,0xC2,0xC0,0xF5,0xA2,0x75,0xA0,0xE9,0x42, + + 0x81,0x8B,0x45,0x85,0xDD,0xA9,0xF9,0xB6,0xF2,0xCB,0xEF,0xCC,0xD3,0x39,0xEB,0x22, + + 0x52,0x29,0x58,0x26,0x5A,0xBF,0x66,0x90,0x67,0xA4,0xE6,0x52,0xA9,0xA6,0x97,0xA0, + + 0x52,0x8C,0x7A,0xA9,0xEA,0xCB,0xA3,0x04,0x2C,0xCA,0x63,0x14,0xA8,0x48,0x76,0xC7, + + 0x84,0x56,0xA1,0x21,0x1B,0x00,0x57,0x52,0xA2,0xDD,0xBD,0x62,0x54,0x9A,0x6B,0x2C, + + 0xD2,0x8C,0x8B,0x53,0x96,0x97,0xFE,0x41,0xF4,0x5C,0x6F,0xB0,0x09,0xEF,0xA2,0x49, + + 0x35,0xE6,0x20,0x06,0xB9,0x2E,0x34,0xAE,0x05,0x88,0xF7,0xD6,0x5C,0x53,0x92,0x1E, + + 0x82,0xC8,0x3A,0x9C,0x84,0x24,0xB3,0xBE,0x4F,0x2B,0x01,0x7C,0xFC,0x14,0xB3,0x78, + + 0xA1,0x8B,0xA1,0x4F,0x98,0xC4,0x3B,0xA2,0xCA,0xC8,0x37,0xAB,0xD8,0x96,0x11,0xE4, + + 0x8B,0x33,0x93,0x2F,0xAD,0xE9,0xFB,0xBB,0x0A,0xC3,0x93,0x5D,0xDB,0xE9,0xE2,0x8D, + + 0x2A,0x2C,0x5D,0xDC,0xE9,0xA6,0xE0,0x95,0x48,0x96,0x76,0xEA,0x61,0x58,0xAE,0x14, + + 0xF8,0xE1,0x12,0xB6,0x1D,0x00,0x23,0xFB,0xEA,0x32,0x3C,0x96,0x0B,0xA0,0x74,0x49, + + 0x05,0xCC,0xE1,0x3D,0xAD,0x7E,0x7B,0x15,0x25,0xDF,0xAA,0x86,0x3B,0xE5,0x8C,0x9B, + + 0xC3,0x94,0x79,0xB9,0xF4,0xA0,0x45,0x4E,0x42,0x39,0xA3,0xFB,0xD9,0xB5,0xFD,0xC2, + + 0x6C,0xD2,0x1B,0x02,0x36,0xBA,0x54,0xE9,0x85,0xDD,0x34,0xE5,0x4D,0x9E,0xEC,0x12, + + 0x30,0xD3,0xCB,0xE8,0xE7,0xBB,0xFF,0x49,0xE8,0x27,0xAC,0xC5,0x71,0x9F,0x2B,0x87, + + 0xA7,0xA0,0x65,0x07,0xFA,0xDE,0x27,0xE3,0xE2,0xD0,0x25,0x4F,0xB7,0xBF,0x6D,0x06, + + 0xA3,0x91,0xA9,0xB3,0xB3,0x30,0x06,0x2D,0xE6,0xF3,0x2D,0xC4,0xC0,0x7A,0xC8,0x50, + + 0x06,0x49,0xF2,0xF3,0xC9,0xD8,0x62,0x91,0x02,0xB8,0xCC,0x19,0x45,0xB4,0xFC,0x95, + + 0x03,0x3A,0x33,0x29,0xDE,0xA4,0x25,0x1B,0x23,0x18,0xFA,0x84,0xD0,0xB7,0x07,0xC3, + + 0xA5,0xB6,0x83,0xF2,0xB5,0xF6,0x13,0xD2,0xE5,0x44,0x4D,0xA0,0x28,0xFE,0xC9,0xF4, + + 0x06,0x28,0x01,0x48,0xB6,0x74,0x1F,0xF2,0xE6,0x55,0x36,0xF0,0xD3,0x99,0xCC,0xCA, + + 0x28,0xB4,0xAD,0x31,0x34,0xF8,0xA6,0x2E,0x6E,0x4B,0x32,0xCE,0x6C,0x55,0x16,0x65, + + 0x2B,0x31,0xEC,0xFC,0xC2,0xFB,0x7E,0x6C,0x6E,0xF9,0x3E,0x79,0x59,0xE2,0x3A,0x09, + + 0x65,0xE9,0x4B,0xAB,0xBA,0x98,0xF7,0x2B,0xA2,0x98,0x2E,0xDF,0xF8,0xF3,0xAF,0xDB, + + 0xA9,0xB7,0xA1,0x9B,0xBE,0xFB,0xAF,0x53,0x9D,0x96,0x2A,0xD9,0x72,0x7D,0xA6,0x17, + + 0xBA,0x61,0xBF,0xD2,0x9B,0xB7,0x48,0xDE,0x12,0x23,0xB6,0xD1,0x76,0x90,0x56,0x21, + + 0x29,0x67,0xD4,0x36,0x3B,0xF2,0xB5,0xFD,0x8E,0xC6,0x58,0xFF,0x7F,0xF3,0xF7,0x38, + + 0x22,0xFB,0x61,0xA9,0xFE,0xF1,0xB7,0x2A,0xE2,0x9C,0xDF,0x2D,0xFE,0x55,0xCE,0xA4, + + 0x20,0x19,0xB6,0xC3,0x1A,0x3F,0xB9,0x1D,0x6F,0x5F,0x97,0x79,0x03,0xBE,0x7E,0x06, + + 0xE9,0x0F,0x10,0xBC,0xFB,0x44,0x6B,0xDB,0xF7,0x7F,0x6F,0x03,0xA5,0x6F,0xB3,0xF2, + + 0xAD,0xFC,0x18,0xEF,0x93,0x1D,0x31,0x4A,0xD0,0x7D,0xC1,0x01,0xF4,0x9E,0x53,0x93, + + 0x6B,0x66,0xB9,0xEB,0x3C,0x2F,0x68,0xA5,0xCC,0x4D,0x25,0x5A,0x73,0x23,0x71,0x67, + + 0xE9,0x0E,0x35,0x77,0x66,0x46,0x26,0x7A,0x54,0x9E,0xC7,0xD7,0xD5,0xE6,0xF8,0xDF, + + 0xFD,0x16,0x23,0x60,0xC7,0xB9,0xC0,0xE5,0xBD,0xC9,0xB7,0xE6,0xC3,0x09,0x66,0x6E, + + 0xEA,0xE4,0x58,0xA5,0xB0,0x65,0xA7,0x1E,0x35,0x9A,0x47,0xF6,0x0E,0x2B,0xF9,0xDF, + + 0xA6,0x00,0x6A,0x1A,0x6B,0xDA,0x2A,0x9A,0x7F,0xB7,0xE9,0xFF,0xF6,0xCB,0x31,0x76, + + 0x6A,0x16,0xFB,0x65,0x86,0x88,0x66,0xD8,0x38,0xDA,0x3D,0x51,0x3A,0x24,0x10,0x6F, + + 0xE3,0x4C,0xBA,0xF3,0x3C,0xD7,0xBB,0x67,0xB5,0x34,0x80,0xF3,0xB3,0x2C,0xAE,0x7A, + + 0xFE,0x6C,0xDC,0xEF,0x9D,0xA4,0x24,0x04,0x4F,0xE9,0x0A,0xCD,0xFA,0x29,0x39,0xB9, + + 0x11,0xA5,0xDA,0x20,0x3D,0xAB,0x83,0xD8,0x6B,0x0A,0xAD,0xCF,0xBA,0x76,0x33,0x3D, + + 0x76,0x0D,0xD9,0x4E,0x72,0x4F,0xE4,0x5B,0x3A,0x2E,0xA9,0x0D,0xF9,0xC4,0x3A,0x6F, + + 0xE3,0x3D,0x62,0x3F,0xB9,0xAF,0x03,0x92,0xBF,0x0D,0xC8,0x6E,0x98,0x68,0x32,0x7C, + + 0xD5,0xF2,0x32,0x54,0xF2,0x3C,0x7C,0x54,0xC7,0x0C,0x21,0x03,0x55,0x92,0x3B,0x6E, + + 0x63,0x5F,0x23,0x69,0x73,0xCF,0xAC,0x7A,0xF6,0x0A,0x43,0xD1,0x57,0x0C,0x73,0xC7, + + 0x7C,0x82,0x33,0x79,0x72,0x1E,0x04,0x79,0xF4,0xB0,0x60,0x9F,0x77,0x92,0x12,0xE2, + + 0x40,0x7D,0x95,0x74,0x0E,0xC1,0xAF,0x42,0xCC,0xAD,0xAA,0x1D,0x54,0xFB,0x25,0xB4, + + 0x12,0xF0,0xA2,0x67,0xBD,0x70,0xA4,0x41,0xC2,0x11,0x3C,0xC6,0x13,0x6D,0x7B,0x87, + + 0x41,0x91,0xFB,0x83,0x51,0xB1,0x6D,0x85,0xD3,0x83,0x10,0x94,0xC2,0xDD,0xB5,0x60, + + 0x02,0x53,0xD4,0xA5,0x14,0xCC,0x2F,0x81,0xA4,0xFC,0xE3,0xB2,0x50,0x32,0x7C,0x3E, + + 0x8E,0x19,0x54,0xB7,0x0E,0xC5,0xE0,0x82,0x9D,0xD9,0x79,0x86,0x8D,0x72,0xF3,0x32, + + 0xA1,0x29,0x1F,0xF0,0xBC,0x98,0x4A,0x92,0x03,0xF8,0x3B,0xD0,0x40,0x54,0xD5,0x9E, + + 0x01,0x73,0xBB,0xC3,0x5B,0x67,0x2E,0x1A,0xC6,0x6B,0xFC,0x53,0x53,0x18,0xF1,0xB3, + + 0x5C,0x72,0x19,0xA5,0x33,0xB1,0x23,0xF7,0x02,0xD4,0x65,0x0A,0xC0,0xB6,0x34,0xB8, + + 0x81,0xB7,0x87,0xEA,0xE5,0x37,0xB6,0xDB,0xCB,0xDB,0xA8,0x00,0x13,0x77,0x27,0xBC, + + 0x1A,0xA8,0x27,0xE2,0xAC,0xB4,0x7E,0xF2,0x88,0x54,0xE0,0xBA,0x90,0x76,0xA7,0xFA, + + 0x0B,0x99,0x33,0xF2,0x1B,0x7B,0x73,0x8D,0x65,0xA5,0x17,0x9F,0x98,0x7F,0xB7,0xA8, + + 0x08,0x9A,0xF2,0x77,0x3B,0xD7,0xF8,0x3B,0x78,0x36,0xCD,0x87,0xDD,0x76,0x7E,0xEC, + + 0xD5,0x97,0xE6,0xE8,0x51,0x33,0x7B,0xCC,0xD3,0xFD,0x6E,0xC8,0x49,0x4D,0xEE,0xAA, + + 0x49,0x3A,0xB0,0xDA,0xD2,0x32,0xFE,0x8A,0x09,0x41,0xA1,0x3B,0xA5,0xE0,0x0F,0xF8, + + 0x90,0xB1,0x47,0xFF,0xDA,0x32,0x6F,0xD9,0x03,0xF1,0x6F,0x17,0xEA,0x33,0x31,0xDE, + + 0x0A,0xA0,0x9D,0xE2,0x9F,0x90,0xCF,0x0A,0x67,0xC2,0x3C,0xD9,0x98,0x50,0x0D,0x65, + + 0xA5,0x03,0x30,0x75,0x26,0x0B,0x08,0xD9,0xAD,0x11,0x10,0x55,0xF7,0x63,0x90,0xE3, + + 0xA6,0xC1,0xE8,0xE5,0x91,0x0C,0xEC,0xCC,0xB8,0x60,0xB8,0x29,0x3B,0x4C,0x21,0xFD, + + 0xB7,0x63,0xD9,0x03,0x74,0x23,0x23,0x22,0x3B,0x4F,0xD3,0x03,0xBF,0x21,0x1B,0x23, + + 0x2C,0x2C,0xD1,0xA7,0x29,0xE2,0x01,0xCC,0x30,0xA0,0xEC,0x07,0x2A,0x1C,0x1B,0xB9, + + 0x39,0x24,0x18,0x4E,0xFF,0xF5,0xAB,0x62,0x39,0x44,0x88,0x42,0x25,0xE4,0xEC,0xB0, + + 0xE6,0xFE,0xE9,0x30,0xCA,0xAA,0x51,0x15,0xE6,0x5A,0x55,0x05,0x2B,0x5A,0x98,0xA8, + + 0x35,0xC4,0x19,0x63,0x33,0x59,0xF1,0x67,0x16,0xC0,0xAE,0x76,0xD2,0xA6,0x6B,0xBD, + + 0x3C,0x98,0x5D,0x28,0x34,0xE6,0xCD,0x11,0x3C,0x86,0x55,0x05,0x0D,0x58,0x82,0x79, + + 0xAF,0x0B,0x0E,0xF1,0x9E,0x94,0xC9,0x0E,0x27,0xC7,0x88,0x9E,0xA3,0x37,0x51,0x3D, + + 0xAC,0xC8,0x87,0x79,0xBC,0x7F,0x44,0x3C,0xA4,0xC6,0x01,0x9B,0xAE,0x44,0x0E,0xF8, + + 0x00,0x87,0x99,0x6D,0x42,0xAC,0x31,0x19,0xAC,0x8B,0x0C,0x1E,0x7D,0x55,0x4B,0x48, + + 0xEB,0x86,0x3B,0x20,0xAD,0x0B,0x69,0xA9,0x26,0xAF,0x68,0x06,0x36,0xAF,0xE2,0x5A, + + 0x31,0x8A,0xDC,0xE7,0x75,0xA3,0x8D,0x08,0xBD,0xA9,0xC8,0xFC,0x5E,0x73,0xDE,0x38, + + 0xF0,0xCC,0xD4,0x77,0x63,0x02,0x41,0xE4,0x6B,0xCB,0xFA,0xFA,0x5B,0x53,0x07,0x03, + + 0x2F,0x51,0x63,0x4B,0xD6,0x51,0x4B,0x90,0x41,0x38,0x63,0x96,0x9A,0x75,0x14,0xD9, + + 0x1E,0xE2,0x4B,0x2C,0xAF,0x7C,0xD1,0xCE,0x6E,0x10,0x17,0x5B,0x5D,0x03,0x98,0x71, + + 0xA0,0x1D,0x0E,0xE4,0xCB,0xDC,0x0C,0x3C,0x40,0x0B,0x18,0x23,0x8B,0x9E,0xBA,0xF4, + + 0x4E,0x9E,0x96,0x04,0x35,0x6E,0x11,0x4B,0xC8,0xCA,0x86,0x24,0x75,0xB0,0x77,0xC8, + + 0x80,0x89,0xFF,0x16,0x6A,0x4D,0x1C,0x5E,0x49,0x49,0x0D,0x5C,0x09,0x44,0xAD,0xA1, + + 0xC5,0xBE,0x97,0x6D,0x4E,0xF1,0xAB,0xD5,0x5A,0x92,0x42,0x35,0x6C,0x9E,0xF4,0x85, + + 0xF8,0x6B,0x40,0xA4,0xCD,0xD1,0x0C,0xC5,0x9F,0xDB,0x61,0x15,0xF2,0x79,0x14,0xD6, + + 0xDE,0x10,0xFA,0xEB,0xDC,0xF1,0xD5,0x8C,0xF2,0x58,0x6C,0xC7,0x19,0x5A,0x5E,0x5D, + + 0x51,0x3D,0xDD,0xE3,0xD5,0x26,0xE5,0xAC,0x1B,0xAA,0xA7,0xB0,0x1D,0x92,0x7F,0xD9, + + 0x4C,0xD3,0xD7,0x67,0x26,0x18,0x00,0x19,0xC3,0xD1,0x2B,0x07,0x08,0x54,0x58,0x8C, + + 0xC5,0x97,0x22,0x6C,0xCD,0xF9,0xC9,0xB9,0x54,0x9C,0x8E,0x54,0xD0,0xF5,0x84,0x2F, + + 0x8C,0x46,0xEF,0xF8,0x4B,0xD5,0xAD,0x4B,0xCE,0x99,0x06,0x40,0x6D,0xB4,0x75,0xC0, + + 0x88,0x9C,0x58,0xE9,0xC0,0x45,0x11,0x83,0x60,0x77,0xC8,0x8B,0xCF,0x7B,0x9B,0xF9, + + 0x52,0x16,0x6B,0x61,0x40,0xD9,0xFF,0xAA,0x12,0xD6,0xE6,0x9A,0x02,0x97,0x58,0x28, + + 0x4C,0x9B,0x42,0xAC,0x1A,0xB1,0x5F,0x8D,0xCF,0x23,0x24,0x1D,0x18,0xBD,0x54,0xB8, + + 0xF5,0x9B,0x42,0xFA,0xC4,0xD3,0xCA,0x98,0x9C,0xB8,0x03,0x39,0x86,0x8B,0xF7,0x30, + + 0x2C,0xA2,0x1C,0xE8,0x1F,0x41,0xC3,0x89,0xCA,0xBB,0xCF,0x01,0x52,0xF3,0x42,0xBC, + + 0x0E,0x09,0x8F,0x95,0x5E,0xB2,0x47,0x3C,0x31,0x42,0xC4,0x71,0xDB,0x52,0xD6,0x31, + + 0xA1,0xFF,0x40,0xD0,0xAB,0xFB,0xA8,0x1B,0x34,0xB5,0xAE,0x8C,0xDD,0xD6,0x98,0xE3, + + 0x8D,0x0C,0xB6,0xBD,0xF1,0xA0,0xBF,0x88,0xA8,0xB0,0xC2,0x36,0xC3,0x6B,0x3F,0xB5, + + 0xAE,0xDD,0x81,0xF4,0x33,0x62,0x06,0xA5,0x9F,0x16,0xAA,0x55,0x50,0x7D,0xF6,0x36, + + 0x20,0x42,0x6A,0x91,0x9B,0x3D,0x41,0x38,0x43,0x5F,0x19,0xC8,0xD9,0xCE,0x70,0xB1, + + 0x78,0xD1,0xBA,0xA4,0x56,0xFF,0x90,0xB4,0xF9,0x06,0xE8,0x14,0xE6,0x6D,0x1D,0x23, + + 0x39,0x6B,0x49,0x27,0x3D,0x84,0xFC,0x12,0xA8,0x46,0x83,0x74,0x33,0x9A,0x1F,0xFD, + + 0xA0,0xF2,0x3E,0xB8,0x6D,0x22,0x15,0x57,0xB0,0xE9,0xC3,0x16,0xA6,0xD9,0x2F,0xFC, + + 0x82,0x47,0x1F,0xAA,0x7A,0x64,0xED,0x13,0x28,0x64,0x26,0x0F,0xB1,0x98,0x79,0x2F, + + 0xA9,0xB7,0x42,0x8C,0x72,0xD9,0x97,0x4A,0x4E,0xA2,0x47,0xEB,0x92,0xB9,0x69,0x3C, + + 0x7A,0x09,0xB4,0xB5,0x1F,0x0B,0xB0,0x88,0xE8,0xCE,0xD8,0xCF,0x67,0xC4,0xEF,0x76, + + 0x52,0xD7,0x7C,0x73,0xEA,0xF5,0xA4,0x2B,0x90,0x4C,0x9B,0x3C,0x31,0xBB,0x54,0x15, + + 0x8F,0x4B,0x63,0x99,0x9B,0xFC,0x55,0xAC,0x28,0xF4,0xCA,0x9D,0x78,0x38,0x7E,0xA1, + + 0xE3,0xFD,0x94,0xF8,0xED,0xF8,0x32,0x3E,0x28,0x41,0x12,0xEC,0xE2,0xC1,0xE6,0xDC, + + 0x0D,0x47,0x19,0x5A,0xD3,0x9E,0xF6,0x0B,0x25,0xCB,0xE4,0xC1,0x2D,0x2F,0x1B,0x3D, + + 0x8C,0x2C,0x13,0x52,0xB4,0x8A,0x49,0xB8,0xE9,0xCD,0xDB,0x50,0x31,0x2A,0x8B,0x8C, + + 0x61,0x4D,0x6F,0xD9,0x95,0x2C,0x5D,0x0A,0xAD,0xC9,0x9B,0xE8,0x24,0xC2,0xF9,0xFB, + + 0xBE,0x8D,0xF9,0x78,0x30,0x9B,0xA0,0xDF,0xC3,0xDB,0x80,0x20,0x7E,0x8A,0x1E,0x57, + + 0xCA,0x55,0xBE,0xA4,0x65,0x73,0x4F,0x32,0xDD,0x53,0xE4,0x93,0x88,0x7E,0xE4,0xA5, + + 0xC8,0x1F,0xFD,0x81,0x59,0x21,0x91,0x90,0x92,0xFD,0xF5,0x9B,0xD2,0xCE,0x37,0x21, + + 0x30,0x52,0xC9,0xBC,0xB7,0x31,0x25,0x4E,0x4D,0x5E,0xC3,0x08,0x05,0xD8,0x7A,0x74, + + 0x54,0xBB,0x96,0xDB,0x58,0x5A,0x90,0x1F,0x8B,0x77,0x06,0xC3,0xD3,0xDB,0x6A,0x69, + + 0xAF,0xB8,0xF2,0x70,0xF9,0x36,0x8F,0x0E,0xE3,0x07,0xE4,0x33,0xB1,0x65,0x95,0xD2, + + 0xD4,0x52,0xFB,0x60,0x78,0x15,0xC2,0x1E,0x0B,0x55,0x03,0x67,0x63,0x31,0x18,0x55, + + 0xA1,0x28,0xC5,0xC1,0x7B,0x34,0x63,0x50,0x00,0x5C,0xD5,0x75,0x7C,0xDA,0xBE,0x72, + + 0x38,0x55,0xD0,0xB1,0xC7,0xE5,0x76,0x92,0xC8,0xA4,0x9E,0x0C,0x13,0xCB,0xED,0xBC, + + 0xF5,0xA8,0x9A,0x18,0x3B,0xEE,0x44,0xBC,0xE6,0xFF,0xBE,0x85,0x98,0xD6,0x78,0xCE, + + 0x76,0x87,0xD4,0x73,0xBE,0x18,0x6F,0x8E,0x15,0x55,0xA4,0x5C,0x8E,0x7F,0x28,0xA5, + + 0x35,0xEA,0x89,0x35,0x39,0xD7,0x4C,0xF9,0xE5,0xF0,0x4E,0x39,0xF7,0x4E,0xBD,0xEF, + + 0x8B,0xBD,0x16,0xDF,0x10,0x5F,0xD2,0x9B,0x48,0xD3,0x00,0x7E,0xBC,0xD1,0x9C,0x64, + + 0xC0,0x9E,0x1A,0xAF,0x59,0x9B,0x81,0x07,0xEB,0x0D,0xD8,0x0C,0x4E,0x3F,0x91,0x3A, + + 0xC0,0xB3,0x6B,0xBE,0xD0,0x98,0x0F,0xFD,0x9D,0xA1,0x05,0x7F,0xFA,0x76,0xE3,0xAA, + + 0x85,0xB9,0x1F,0x1D,0xFF,0x9B,0x61,0x58,0x83,0xBC,0x1B,0x96,0x0F,0xBC,0x8D,0xC5, + + 0xF9,0xC1,0xA6,0xAF,0x94,0x8C,0xCF,0xA6,0x03,0xFF,0x8A,0xD5,0x62,0xA2,0x3A,0x02, + + 0xFA,0x0C,0xF9,0x51,0xDF,0x32,0x0A,0xCD,0xC7,0xB4,0x38,0x45,0x63,0x64,0x41,0x54, + + 0x11,0x8F,0xFF,0xAF,0x9C,0x0F,0x8E,0xD2,0x67,0x82,0x75,0x0C,0xBF,0xED,0xFD,0x37, + + 0x07,0xBF,0xE1,0xB3,0x7C,0x52,0x79,0x40,0x66,0xCC,0xAB,0x97,0x3E,0xA7,0x24,0x74, + + 0x00,0xA6,0xD8,0xB5,0x74,0xC1,0x70,0xA2,0x0A,0x49,0xE7,0x5F,0xAD,0x69,0x97,0x3D, + + 0x7B,0x2A,0xB0,0x53,0xFE,0x26,0x58,0x63,0x24,0xBA,0x97,0x05,0x23,0x64,0x65,0xAC, + + 0x80,0xE4,0xD9,0xB4,0xFC,0x29,0x0F,0xD7,0x2D,0x25,0x25,0x9D,0xD2,0xA6,0x3D,0x3D, + + 0xF1,0x28,0x93,0xB7,0xD3,0x7C,0xB9,0xF6,0x7E,0x6A,0x06,0x88,0x36,0x64,0x9E,0x68, + + 0xCE,0x88,0xFA,0x06,0x1A,0x8A,0x86,0x55,0xEF,0xCC,0x8C,0xCC,0x3E,0x3D,0x05,0x65, + + 0xD4,0xC8,0x8A,0x0B,0xFC,0x16,0xFA,0xEE,0xF6,0xCF,0x6B,0x4D,0x6B,0x6E,0xB3,0x51, + + 0x79,0x16,0x0F,0x8B,0xD3,0x5F,0x71,0x59,0x37,0x35,0x73,0xAB,0x07,0x4A,0x13,0xF5, + + 0x21,0x86,0x1C,0xB7,0x9B,0x61,0x8E,0xBB,0x2C,0xC4,0xA1,0x4C,0xDB,0xC9,0x32,0x39, + + 0x0F,0x3D,0x1D,0xB3,0xE1,0xA8,0x26,0x98,0x6D,0xAC,0x0D,0xEA,0x5C,0xD9,0x39,0xDE, + + 0x0D,0x6F,0x3C,0xA1,0xF6,0x2E,0xF8,0x86,0xB0,0x36,0x5A,0x0D,0x21,0x3E,0x1D,0x4D, + + 0x67,0x7D,0x62,0x3C,0xF4,0x0F,0x4D,0xCB,0x2D,0xC5,0xCD,0x2F,0xA2,0x41,0x7D,0xEE, + + 0x64,0xEC,0xBD,0xEB,0x68,0x7B,0x84,0x79,0xA3,0x8D,0x85,0x78,0x7E,0x40,0x1E,0x71, + + 0x12,0xFC,0xFA,0x2E,0x3C,0x1D,0x67,0xA6,0x0F,0xE3,0x74,0x27,0xF7,0xB2,0x16,0x00, + + 0x25,0x4E,0xA4,0x92,0x9C,0x0A,0x5A,0x0A,0x66,0xC2,0x82,0x1A,0x97,0x78,0x1F,0x10, + + 0xD8,0x6D,0xF4,0xC0,0x7E,0x03,0x31,0xD0,0xDE,0xBE,0x75,0x7C,0xBC,0xA1,0xED,0x12, + + 0x26,0xD1,0x01,0xE4,0x87,0x15,0x03,0x8E,0xC6,0x43,0xC5,0x33,0xFF,0xD2,0x30,0xB1, + + 0x00,0x32,0xB6,0x62,0xFE,0x17,0x8B,0x91,0x44,0x77,0x43,0x53,0x52,0xF8,0x3C,0x76, + + 0xEF,0xB6,0xCA,0x6B,0xBB,0xF7,0xDB,0x53,0x8E,0xDD,0x58,0xB4,0xF3,0xF9,0x35,0x03, + + 0xE2,0x32,0x31,0xD4,0xB7,0xF2,0xA7,0x1D,0x32,0xD5,0xCD,0xA5,0x55,0xFA,0xB9,0x14, + + 0x4E,0x34,0x29,0x77,0x5E,0xF4,0x6A,0x00,0x63,0x7A,0x95,0x06,0x74,0xF5,0x66,0x34, + + 0xC5,0xCB,0xF5,0x71,0xD5,0xAB,0x56,0xE0,0x70,0xD5,0x76,0x2B,0x23,0xFE,0x6E,0x24, + + 0x65,0xCA,0x90,0x26,0x5D,0x99,0xF0,0x09,0xED,0x39,0x0A,0xC5,0xDE,0x52,0xE7,0x0A, + + 0x80,0xD8,0xB1,0x37,0x57,0xC9,0xF7,0x2F,0xEB,0x98,0x84,0x8D,0x25,0xF5,0x11,0x37, + + 0x4F,0x12,0xD0,0xED,0x93,0x24,0x08,0x12,0x0C,0x24,0x68,0x85,0x96,0xF3,0x00,0x6F, + + 0xC7,0x1F,0x9E,0xE9,0xD7,0xDF,0xA1,0x52,0x85,0xB8,0x36,0xAB,0x14,0xF2,0x52,0xAB, + + 0x86,0x67,0xEB,0xCF,0x0D,0x98,0x46,0x09,0x41,0x52,0x5A,0x3C,0xDC,0xF3,0x01,0x6F, + + 0xAD,0xDE,0x9F,0xDE,0x84,0x92,0x4F,0x18,0xC8,0xBB,0x9F,0x2D,0x7A,0xF0,0x58,0x72, + + 0x53,0x8C,0x73,0x5D,0x7A,0x3C,0x27,0xFE,0x06,0x9C,0xC7,0x5B,0xFF,0xFF,0x60,0x4A, + + 0xDC,0x42,0x6C,0x9B,0x11,0x22,0xA5,0x44,0xF4,0x69,0x66,0x46,0x31,0x40,0x30,0x72, + + 0xFE,0x07,0x26,0x77,0xB0,0xDE,0xD8,0xE1,0xC4,0xCC,0xF8,0x7E,0x89,0x6C,0x52,0x6D, + + 0x02,0xEE,0x3E,0x65,0xC8,0x24,0x4E,0xA1,0xB3,0x35,0x89,0x21,0xD9,0x4E,0x20,0x0E, + + 0x20,0x6D,0x32,0xD2,0x4F,0x2B,0x40,0xE0,0x66,0x01,0x81,0xE0,0x53,0x7F,0x46,0x31, + + 0x20,0xF6,0xA2,0x46,0x13,0x64,0x28,0x12,0xEE,0x4B,0x37,0xA4,0x5E,0xCF,0x4C,0xC0, + + 0x30,0x9E,0x90,0x50,0x3A,0x93,0xEC,0x92,0xA8,0x5F,0x82,0x8B,0xD1,0xC9,0x94,0x32, + + 0xEB,0x81,0xDD,0xDE,0x7B,0x5F,0xE5,0x83,0x6E,0x49,0x4E,0x9A,0x57,0xD4,0xF1,0x81, + + 0x8F,0xF8,0x21,0xCC,0xB1,0x67,0x39,0x3B,0x49,0x05,0x6A,0x97,0x7F,0x68,0xE5,0x48, + + 0x04,0x85,0x06,0x73,0x3B,0x38,0xD8,0x95,0x7B,0x4C,0x62,0x4E,0xA7,0x06,0xCA,0xD9, + + 0xE5,0x08,0xD9,0x70,0x99,0x49,0x07,0x5E,0x6A,0x09,0x25,0xDC,0x49,0x72,0x7D,0x78, + + 0x69,0xF5,0xE3,0x47,0x7E,0x68,0xAB,0xC9,0x84,0x51,0xF1,0x30,0xDB,0x00,0xCF,0x1C, + + 0x8F,0xE2,0x07,0xD4,0x89,0x86,0xB3,0xA1,0xEB,0xB9,0x0D,0x5B,0x3B,0x4B,0xB5,0x49, + + 0x16,0xA1,0xC7,0xA4,0x96,0xE1,0x01,0x8C,0x2A,0xB0,0xB2,0x3F,0xF8,0x63,0xD5,0xDA, + + 0x9A,0x21,0x82,0x94,0xF2,0x17,0x73,0xFC,0x75,0x60,0x82,0x79,0x30,0x77,0x8D,0x79, + + 0x0B,0xA1,0xBC,0xB0,0x92,0x6C,0x2D,0x6F,0x2B,0xCD,0x67,0x8F,0x33,0x74,0x6B,0xC9, + + 0x62,0xA6,0xD1,0x5C,0xB8,0x1E,0x3B,0x33,0x45,0x0D,0xDF,0xF9,0x8C,0x3A,0x86,0x04, + + 0x01,0x5D,0x74,0xE6,0x13,0x12,0xFC,0x3D,0x8B,0xBA,0x54,0x71,0x5F,0x6B,0xC3,0xB4, + + 0x03,0x50,0x4C,0x2C,0xD5,0xEA,0x43,0x90,0x67,0x11,0xFC,0xFE,0xD7,0x7C,0xC5,0xF1, + + 0xBD,0x50,0xE5,0xCF,0x56,0x3D,0xCE,0xA1,0x93,0x32,0x03,0xC3,0xB2,0x8D,0x89,0x15, + + 0xAC,0x5D,0x23,0x68,0x1A,0x48,0xB0,0x33,0x70,0xF5,0x8F,0x56,0x1A,0x37,0x7A,0xB1, + + 0x43,0x54,0xFE,0x2C,0x46,0x7B,0xE5,0x92,0xE0,0x48,0xD7,0x44,0x9F,0x95,0xF4,0x70, + + 0xC2,0xBE,0x9B,0x50,0x36,0x1E,0xAA,0x92,0x81,0x15,0x70,0x66,0x3B,0x7D,0x1D,0x2C, + + 0x91,0x8D,0xE3,0xB0,0xA1,0x32,0x21,0x03,0x60,0x4A,0xB5,0xB2,0x0B,0x7B,0x2D,0x9B, + + 0x2A,0x9C,0x0D,0xF0,0x54,0x9A,0x9D,0x73,0x72,0xE3,0x1E,0x87,0x18,0x0E,0xDD,0x37, + + 0x57,0x87,0xC6,0x77,0x3E,0xC2,0xAD,0x4A,0xC4,0xA5,0xAC,0x1C,0xB5,0xD7,0x34,0x63, + + 0x2F,0x23,0xEC,0x9D,0x38,0x89,0x0C,0xB8,0x9E,0x4B,0xB7,0x1A,0xD8,0xF9,0xB2,0xED, + + 0x1C,0x33,0xE6,0xFE,0xA3,0x54,0x6F,0x41,0xCF,0x17,0x33,0xD2,0x5B,0x7C,0xBC,0x1D, + + 0x9A,0x1B,0xB5,0x75,0xD5,0x74,0xA7,0x09,0xED,0x5D,0xE7,0x3F,0x68,0x9C,0x6D,0x2A, + + 0x86,0x91,0x43,0xAC,0x36,0xB1,0x6E,0x17,0xE8,0xB0,0x3E,0x74,0xFF,0x9C,0x76,0x26, + + 0x87,0x10,0x76,0x2F,0x28,0x3B,0x16,0xE9,0x6D,0xCE,0x26,0x14,0x23,0x32,0x3F,0x4B, + + 0x3B,0x38,0xB9,0xC0,0x89,0xDF,0xEF,0x8B,0x65,0xA8,0x8E,0xF0,0x99,0x3E,0xB0,0x5B, + + 0x3A,0x73,0xEF,0x20,0x1A,0x3C,0xC6,0x98,0x56,0xD2,0xBF,0xB2,0x64,0x70,0x1D,0x86, + + 0x17,0x45,0x6A,0xE6,0x5C,0xBB,0x72,0xCA,0x7D,0x8D,0x20,0x24,0x0E,0xE6,0x50,0xBF, + + 0xEE,0x12,0xF8,0x8E,0x19,0xC9,0x18,0xD4,0xC0,0x33,0xC0,0xC5,0xD1,0x6C,0xE1,0xBB, + + 0x56,0x26,0x81,0x61,0xB5,0x68,0x29,0x3E,0x25,0xD9,0x98,0x81,0x75,0x63,0xF2,0x10, + + 0xFA,0x8F,0xE4,0x15,0x74,0xA5,0x47,0x5E,0x2E,0x29,0xEB,0x60,0x3E,0x87,0x12,0x46, + + 0x4C,0x9F,0x9E,0x8F,0x7D,0x9D,0x23,0x86,0x26,0xEA,0xA0,0x7B,0x5A,0xE5,0x70,0x4E, + + 0x6C,0x7C,0x57,0xB6,0x5D,0xE7,0x51,0xF6,0x79,0xE8,0xA8,0x01,0x07,0xFE,0x3A,0x25, + + 0xC5,0xE6,0x65,0xC3,0xBC,0xE7,0x0F,0x65,0x27,0x45,0xF4,0x36,0x3F,0xDC,0x42,0xD1, + + 0x16,0xAB,0xBA,0xF5,0x7E,0x5E,0x7F,0xBB,0x2E,0xDD,0xDD,0x11,0x28,0xE1,0xFB,0xA5, + + 0x33,0x8A,0x8B,0x11,0xBF,0xAE,0x6B,0x1F,0xEB,0x67,0x8A,0x1E,0x58,0x17,0xEA,0xDE, + + 0x96,0xCB,0xCA,0x54,0x9F,0xA4,0x62,0x02,0x7E,0xCD,0x2C,0x58,0x20,0xE2,0x7C,0x81, + + 0xFF,0xFE,0x8A,0xB8,0xDC,0xA5,0x2D,0xC3,0xF5,0x87,0x89,0x8A,0x2B,0xF1,0x64,0x9B, + + 0xAF,0xE9,0xF3,0x8A,0x1F,0xB7,0x83,0xC4,0xEC,0x0A,0xBF,0x41,0xFE,0x8B,0x38,0x10, + + 0xAD,0xE9,0x19,0xB6,0x1E,0x21,0x00,0x7B,0xD5,0x67,0x5C,0x15,0xFF,0x1D,0xC2,0xC7, + + 0xEE,0x8B,0x39,0xDC,0x8E,0x81,0x64,0xF8,0xDE,0x8A,0x9A,0x29,0xA6,0xE2,0x59,0xA9, + + 0x65,0x27,0xF5,0x3A,0x61,0x33,0xEC,0x31,0x2F,0x61,0x8B,0x6D,0x96,0x63,0x42,0xEC, + + 0x86,0x38,0x93,0x78,0x62,0xA0,0x79,0x99,0xC9,0x15,0xC5,0xB6,0xFF,0x82,0xFD,0x2D, + + 0x1B,0x92,0xFD,0xBA,0x93,0x1F,0x1D,0x29,0xC7,0xB5,0xEE,0xA2,0xD7,0xF4,0x95,0xCC, + + 0xA7,0x95,0x9C,0x14,0xA4,0x17,0xDF,0x30,0xF4,0x36,0xE6,0xB7,0xD6,0x7C,0x8A,0xEC, + + 0x79,0x4E,0x38,0x74,0xDD,0x9B,0x9E,0x41,0xE2,0x39,0x37,0x25,0x65,0xB5,0xE5,0xF1, + + 0xE6,0x63,0x95,0x69,0x19,0xBE,0x05,0x01,0xE1,0x53,0xDD,0xE0,0x50,0xFC,0xDF,0x20, + + 0x8A,0x69,0x5C,0xCE,0xDF,0x5D,0x14,0xA8,0x88,0xDB,0xCE,0x64,0xEB,0xFF,0x54,0x28, + + 0x8B,0x98,0x72,0x1E,0xB5,0xA9,0x78,0xB2,0x6D,0x7E,0x3C,0x02,0x72,0xB7,0x1D,0x41, + + 0x37,0xF0,0x9F,0xA7,0xBA,0x12,0x4B,0x2A,0x69,0x50,0x8D,0x18,0x81,0xB4,0x12,0x51, + + 0x36,0x3B,0x45,0xA5,0x14,0xB1,0x60,0xF6,0x06,0x78,0x36,0x3E,0xD7,0x05,0x59,0x72, + + 0x2C,0x3C,0x59,0x0C,0xAD,0x8E,0x0C,0x42,0xA8,0x97,0x76,0xEF,0xC8,0x05,0x7C,0x1E, + + 0x66,0xDD,0xD1,0x1A,0x79,0x9A,0xBA,0x3E,0x1F,0x80,0xB2,0xFD,0x94,0xC3,0x3B,0x2E, + + 0x64,0xD3,0x9F,0x75,0x10,0xB7,0xF7,0x13,0xA9,0xD0,0xAD,0xAE,0xDD,0xBA,0xF4,0x34, + + 0xD2,0x99,0xB3,0xBD,0x3F,0xA7,0xFF,0x03,0x91,0x04,0xA7,0xBB,0xF4,0xD7,0x5D,0x28, + + 0x82,0x21,0xCF,0x8D,0x9F,0xB3,0x3B,0x02,0x1A,0x93,0x72,0x9C,0x95,0x16,0xDA,0xA5, + + 0x8C,0xF8,0x96,0x5C,0xAE,0x69,0x08,0x18,0x46,0x6B,0x34,0x1C,0x4C,0xF9,0x1F,0xEC, + + 0x5B,0x91,0x53,0xAD,0xF7,0xA4,0x09,0x9A,0x6C,0xC2,0x97,0xA5,0x7C,0x53,0x54,0x39, + + 0x03,0x22,0x2F,0x67,0x99,0xD3,0x26,0xCE,0x4A,0xB1,0x47,0x9F,0xF3,0xF2,0x02,0xE2, + + 0x04,0x7A,0x80,0xF7,0x2E,0x05,0x68,0xA2,0x12,0xA4,0xD8,0xBC,0xB9,0xBA,0x50,0x14, + + 0x88,0x4E,0x90,0x24,0xEE,0xDE,0xFE,0x33,0xFF,0x65,0x34,0xAB,0x52,0x23,0x31,0xE9, + + 0x0A,0xCF,0xF9,0x14,0xB6,0x8F,0x07,0x43,0xEF,0x66,0xD3,0xDA,0x39,0xA1,0xC9,0xAC, + + 0x2E,0xD7,0xB3,0xA5,0x6E,0xFC,0xA5,0x12,0x8D,0x66,0x59,0x61,0xFE,0x0F,0x48,0x5C, + + 0x04,0xCC,0xDA,0x6A,0x33,0x06,0xBC,0x13,0x70,0xB2,0xD2,0x56,0x32,0xF6,0x9C,0xB6, + + 0x13,0xA8,0xD0,0x59,0xFA,0xDC,0x66,0xC5,0x22,0x41,0x1C,0xA9,0xD1,0x79,0x61,0x81, + + 0xCE,0xAB,0xFF,0x38,0xF3,0x51,0xEA,0x11,0x42,0x59,0x11,0xE4,0x0C,0x24,0x1B,0xB7, + + 0x0A,0xEB,0xD3,0x7A,0xB2,0x87,0x38,0x31,0x9C,0x9A,0x77,0x2E,0x70,0x02,0x57,0x17, + + 0x3E,0x4A,0x42,0x58,0x29,0x85,0x04,0x0B,0x6F,0x6D,0xAC,0x80,0x92,0x61,0xBE,0x7A, + + 0xE2,0x1A,0xE8,0x1D,0x1A,0x69,0x90,0x48,0xA0,0x93,0xF8,0x3C,0xB2,0xDA,0x89,0x29, + + 0x63,0xE9,0xD5,0x6D,0xC8,0x44,0x23,0x0A,0x4D,0x08,0xED,0x91,0x31,0x59,0x35,0x79, + + 0x36,0x50,0xBF,0xFF,0x9F,0xE3,0x59,0xC2,0x20,0x88,0xB7,0x68,0x91,0x28,0xAE,0x3B, + + 0x68,0xAA,0xFC,0x31,0xF8,0x7B,0xE2,0x1F,0x44,0xD3,0xED,0x8E,0x31,0x63,0xC0,0x18, + + 0x08,0x4D,0xDB,0xD8,0x15,0xC9,0xCB,0x5E,0xA6,0x2F,0x19,0xF8,0x51,0x9B,0x17,0x3A, + + 0xA8,0x4C,0xC1,0x3E,0xFF,0x2A,0xEC,0xEC,0x31,0xE3,0xD1,0x12,0x3A,0xEF,0x67,0x27, + + 0x62,0x9C,0x34,0xEF,0x13,0x8F,0xA0,0x0A,0xF7,0x2D,0x1B,0xED,0xC3,0x69,0x03,0x04, + + 0x2C,0x53,0x28,0xF7,0x48,0xC6,0x2E,0x10,0x9F,0x12,0x92,0x00,0x13,0xAF,0x53,0x81, + + 0x27,0xD9,0x6F,0x67,0x41,0x73,0xFC,0x70,0x27,0xFC,0xC6,0x4B,0x1B,0x42,0xA6,0xB9, + + 0x7C,0xA3,0xFB,0xBC,0x59,0xA3,0x9F,0x74,0xE6,0x9A,0x83,0x09,0x1B,0x21,0xB9,0x68, + + 0xB1,0x51,0x07,0xE5,0x58,0x90,0x05,0x81,0x16,0xAC,0xE3,0x1C,0x18,0xD0,0x25,0x80, + + 0x26,0x38,0x62,0x46,0xA3,0x18,0x6A,0x45,0xC5,0x44,0xD5,0x82,0xDE,0xC8,0xC6,0x99, + + 0x82,0x9C,0xAC,0xD6,0x4C,0x38,0xF2,0x8E,0xC2,0xD5,0x1C,0x75,0xFB,0x73,0xFE,0x82, + + 0x13,0x54,0xBD,0xE2,0x53,0x39,0x6B,0x51,0x45,0x50,0xAD,0xC2,0x0B,0x79,0x49,0x31, + + 0xA7,0x3B,0x9D,0xB3,0xBF,0x75,0x25,0x75,0xA6,0x6F,0xF3,0xB4,0x52,0x88,0x82,0x2C, + + 0xFC,0xC9,0x9E,0x10,0xD1,0xE2,0x28,0x19,0xE5,0xAE,0xCE,0xA8,0xF1,0xA5,0xBD,0xA0, + + 0x1A,0x59,0x22,0x07,0x3A,0xBB,0xDE,0xEC,0xF7,0xFA,0xB2,0xC2,0x7F,0xB1,0xA0,0xB4, + + 0x41,0xAB,0xC5,0x76,0x51,0xF9,0x1F,0xAD,0x40,0x55,0xA9,0x19,0xDB,0x3A,0xA4,0xBF, + + 0x44,0x79,0x4F,0xC9,0x27,0x98,0x4A,0x4A,0xD7,0x7E,0x7A,0x0C,0xC3,0xD4,0xFD,0xBB, + + 0x58,0xBD,0x56,0xC0,0xB8,0x38,0x96,0x74,0xC5,0xA9,0x62,0x8E,0xF8,0x60,0x8E,0x8C, + + 0x47,0xB2,0x4A,0x58,0x1D,0x0E,0x95,0x84,0xEB,0x1F,0x61,0x1E,0xF9,0xB1,0x7F,0x36, + + 0x43,0x6D,0x18,0xAF,0x9A,0x73,0x86,0xD7,0xD0,0x1C,0x7A,0xB2,0x59,0x1B,0xDE,0xFE, + + 0x0A,0xB0,0xAF,0x4F,0x9B,0x32,0xB3,0x8A,0x89,0xF9,0x09,0x9F,0x04,0x1A,0x20,0x3C, + + 0x3E,0x75,0x7C,0x25,0xB7,0x00,0x9C,0xB9,0x47,0x62,0x8E,0x46,0xAF,0x7B,0xE8,0x17, + + 0x23,0x75,0x16,0x93,0xFE,0xA2,0x47,0x41,0x23,0xAD,0x83,0xB2,0x10,0x2B,0xF0,0xF8, + + 0xF7,0x82,0x71,0x74,0xE4,0xE7,0x0F,0xFF,0xA4,0x1D,0xB1,0x16,0x75,0x1D,0xFB,0x2D, + + 0xBF,0x76,0x97,0x2E,0x9B,0x0C,0x5E,0x73,0xC1,0xE6,0x87,0x83,0xF4,0xE1,0x1A,0xA2, + + 0x0A,0x29,0xBE,0x3B,0x04,0xA0,0x67,0x91,0x24,0x19,0xD9,0x2D,0x8B,0xEB,0x56,0xEA, + + 0x6F,0x88,0xEE,0x24,0xFC,0x5C,0x46,0xC2,0x8D,0x34,0x3C,0x61,0xB5,0x5C,0xB4,0xB1, + + 0xA7,0x34,0xA4,0x38,0x74,0xE2,0x22,0x90,0xE8,0xA8,0x45,0x18,0x75,0xA4,0x96,0x20, + + 0xB9,0xC5,0xC9,0xD7,0x6A,0x20,0x47,0x4F,0xC1,0x0F,0x3A,0xF5,0x46,0x8B,0xF3,0x51, + + 0xB1,0x34,0xF6,0x7D,0x64,0x7D,0x4A,0x59,0x7A,0x39,0x72,0x7A,0xDA,0xE2,0xFA,0x01, + + 0x67,0x32,0x1A,0x69,0x13,0x75,0xAA,0x2B,0x6B,0x64,0x84,0x92,0x25,0x46,0x78,0x0B, + + 0x8A,0xEA,0xB0,0xE7,0x90,0x76,0x4D,0x93,0x39,0xCE,0x36,0xAB,0x99,0x81,0xAD,0x9F, + + 0xC8,0xEE,0x6F,0xD5,0x2E,0x54,0x23,0x0B,0x32,0x34,0x68,0x45,0x5D,0xBA,0xE8,0x7F, + + 0xF9,0xE9,0x46,0x5F,0x75,0x55,0x7A,0x2A,0x70,0x8E,0x32,0xEF,0x0F,0xF7,0x54,0xFF, + + 0x6E,0x89,0x98,0x4C,0x13,0x06,0x2C,0x3A,0x67,0x8F,0x42,0xFA,0x55,0xE9,0x5B,0x0C, + + 0x44,0x0D,0xA6,0x4D,0xD2,0x53,0xF9,0x4B,0xC8,0x06,0x64,0x09,0x29,0xFE,0x12,0x25, + + 0xEE,0x8B,0x74,0xD3,0x99,0xCD,0xF1,0x79,0xCC,0x2F,0xA2,0x5B,0x7A,0x50,0x8F,0x07, + + 0xB7,0x8F,0xF1,0x75,0x0A,0xDC,0x4C,0xB3,0x42,0x7D,0x61,0x5A,0x74,0x5D,0x16,0x61, + + 0x03,0x3C,0x7F,0xE5,0x0F,0x67,0x06,0x36,0x20,0x1B,0x6F,0xC8,0x1F,0xC2,0x5B,0x22, + + 0x70,0x91,0x9B,0x2B,0x6A,0x1D,0x2D,0x93,0xEC,0x2D,0x64,0x96,0xD5,0x5D,0xFD,0xD4, + + 0x67,0x83,0xD3,0x2E,0x3C,0x5B,0x03,0x07,0xC4,0x71,0xC3,0x0E,0x7C,0x1B,0xF1,0xB1, + + 0x50,0x35,0x1B,0xE1,0x97,0xB2,0x20,0x91,0x44,0x96,0xCC,0x64,0xE7,0x48,0xAC,0x86, + + 0x4B,0x4A,0x58,0xA9,0x94,0xB3,0xBC,0xA6,0x7E,0x97,0x84,0x1E,0x53,0xB8,0x5D,0x3C, + + 0x4F,0x25,0xCC,0x80,0x6B,0xB9,0xFF,0xA3,0xE7,0x16,0x5A,0x05,0x5A,0x0B,0xD9,0xB1, + + 0x58,0xF9,0x8F,0xF3,0x16,0x48,0xBE,0x14,0xAF,0x94,0x06,0xFF,0x52,0xEC,0x6E,0x0D, + + 0x4F,0x67,0xA0,0x2A,0x5F,0xF8,0xDA,0x38,0x64,0xD2,0x76,0xFA,0x65,0xF5,0x10,0x3E, + + 0xCF,0x89,0x94,0x2F,0x07,0x16,0xEF,0x29,0x4C,0x76,0x92,0xC0,0x7B,0x31,0x59,0x26, + + 0x47,0x09,0xB1,0x23,0x57,0xE9,0xB7,0x88,0x4F,0x77,0xAD,0xAE,0xDF,0xBA,0x2F,0xDB, + + 0xA9,0xBE,0xFA,0x1B,0xF8,0xFD,0x6C,0xC8,0xD7,0x5D,0xAF,0x3B,0xB8,0x58,0x58,0x62, + + 0xE4,0xED,0x52,0xAC,0xBC,0xA0,0x52,0x87,0x4A,0x57,0xE0,0x6A,0x74,0x77,0x17,0xA9, + + 0x41,0x14,0x51,0x3C,0x0C,0x5C,0xCD,0x53,0x69,0x57,0xFF,0x98,0x4C,0xAC,0x59,0xE7, + + 0xCF,0x9A,0xC9,0x90,0x1D,0xDB,0x73,0x09,0x12,0x8D,0xAE,0xD2,0x5B,0x21,0x4F,0x51, + + 0xAE,0x46,0x57,0x20,0xD4,0xB0,0x00,0xDF,0x06,0x26,0x3F,0x7E,0x9C,0xBE,0xA7,0x3D, + + 0x33,0x53,0x3A,0xFB,0x73,0x73,0x40,0x81,0xC0,0xC0,0x2F,0xA0,0x52,0xD9,0x55,0xF6, + + 0x07,0x43,0x73,0xD3,0xCF,0x29,0xD8,0xB4,0x3B,0x95,0xF8,0xA6,0x71,0x6C,0x5A,0x01, + + 0xB7,0xFA,0x97,0xA5,0x23,0xEF,0x57,0x81,0xC8,0x13,0xEF,0x22,0xF8,0xDD,0x6A,0x93, + + 0x18,0x6E,0xC9,0xE5,0xA7,0x82,0xC9,0xC2,0xEF,0x97,0x62,0x12,0x70,0x65,0x78,0xC2, + + 0xC0,0xC7,0xBE,0x6C,0x14,0x06,0x09,0x58,0xE7,0x4D,0xC3,0x97,0x2A,0xCB,0x30,0x74, + + 0x30,0x34,0x08,0xD5,0x69,0x28,0x76,0xC4,0xE2,0xBA,0x27,0x07,0x63,0x09,0xEE,0xA3, + + 0x2E,0xFB,0x96,0x27,0x79,0x77,0xD1,0x7F,0xF6,0x40,0xC0,0x8D,0xBE,0x2B,0x12,0x51, + + 0xF8,0x07,0xB7,0x78,0x95,0x05,0x27,0x5C,0xF0,0xA6,0x3E,0xB5,0x85,0xCA,0x3A,0xF6, + + 0xA4,0x05,0xD6,0xE6,0xDD,0xF5,0x40,0xDB,0x22,0xC5,0xF0,0x8C,0x5E,0x2A,0xA9,0xB0, + + 0xE2,0x3A,0xDA,0xF6,0xDC,0xD4,0xF6,0xAB,0x63,0x43,0xF8,0x04,0x5F,0xEB,0xA0,0xBD, + + 0x63,0xE9,0x29,0xFD,0xAE,0x8B,0x6D,0x89,0x21,0x49,0xE3,0x6D,0xC8,0x6C,0x51,0xE6, + + 0x62,0x48,0x21,0x0C,0xB3,0x2F,0x57,0x4A,0xEB,0x09,0xC8,0x7D,0xDA,0x6D,0x9F,0xB7, + + 0x3D,0xF4,0x95,0x2E,0xF1,0xBD,0xEA,0xF8,0xBD,0xE3,0xC5,0xE8,0x58,0xD6,0x95,0x4C, + + 0x0D,0x4D,0x0A,0xDD,0x5A,0x20,0x62,0x83,0xC4,0xBB,0xE4,0x54,0x5D,0x6F,0x1E,0xBF, + + 0xFD,0x0E,0x99,0xE0,0xF2,0x3F,0x40,0xEB,0x03,0x3D,0x13,0xED,0xB0,0xD1,0x68,0xA8, + + 0xE6,0xF0,0x34,0xAF,0xBA,0xAF,0x53,0x75,0xF8,0xDE,0x94,0xF9,0xD1,0x2F,0x0C,0x04, + + 0x22,0xF2,0xFD,0xF2,0x36,0x32,0xB3,0x11,0xA8,0x53,0x9C,0xAC,0xF2,0xF6,0xCC,0x4C, + + 0x3B,0xCC,0x73,0x65,0x92,0xB1,0x5C,0xAC,0x9E,0x3D,0x94,0x85,0xF3,0xF7,0xFA,0x05, + + 0xA6,0xF7,0x8D,0x01,0xB2,0xD0,0xC0,0xD2,0xC2,0x10,0x06,0x21,0xB2,0xE1,0x25,0xF3, + + 0x5C,0x1F,0xB3,0x35,0x51,0xB2,0x7B,0x04,0x14,0xF5,0x0E,0x31,0xFF,0xFC,0x1A,0xB5, + + 0x26,0x3D,0x86,0x37,0x4A,0x9F,0x6E,0x13,0x5A,0x52,0x4A,0xF0,0x56,0xD9,0x8C,0xC4, + + 0x3F,0x54,0xF6,0x27,0x0B,0x33,0xCD,0x18,0x0F,0x18,0xE6,0x07,0x43,0xFE,0xE9,0x45, + + 0xAC,0xF2,0x5B,0xD4,0x9B,0x5A,0x7B,0x4C,0x43,0xF9,0x4B,0x17,0xD3,0xC7,0x3C,0x6D, + + 0x8F,0x40,0xE3,0x61,0x12,0x98,0x1F,0x02,0xDF,0xFC,0xC8,0xC4,0xC3,0x68,0x3E,0xFB, + + 0x0A,0x5A,0x94,0x08,0x3A,0x38,0xC4,0x68,0x24,0x8C,0x9E,0xB4,0xFA,0xFE,0x35,0x1C, + + 0x7E,0x2B,0xB0,0x3C,0xD9,0xB8,0x4E,0x00,0xE6,0xA4,0xA6,0x23,0x88,0xAF,0x47,0x95, + + 0xAE,0x38,0x78,0x7C,0x1B,0xBA,0xC5,0xB6,0x86,0xFE,0x47,0xCF,0x0B,0x1F,0xCF,0x09, + + 0xC3,0x15,0x1D,0x19,0xBB,0x2C,0x79,0x10,0x1C,0xFD,0x97,0x3C,0xFF,0x39,0x4E,0xEC, + + 0xAB,0xC6,0x57,0x3F,0x06,0x93,0xC8,0xED,0x43,0x30,0x6C,0x13,0x99,0x75,0x47,0xA9, + + 0x07,0x4A,0xF6,0x23,0xD2,0x2C,0x3E,0xAB,0x55,0x50,0xD6,0x78,0x79,0x9F,0xD7,0xB0, + + 0x87,0x7F,0xD6,0x4F,0x73,0xDD,0x0E,0xC8,0x4F,0xA1,0x92,0x92,0xFC,0x7C,0xD5,0xFD, + + 0x68,0xA6,0x63,0x42,0xB8,0x4D,0xA4,0x84,0xC8,0xBF,0x20,0x0C,0x58,0xFF,0x5E,0xA7, + + 0x37,0x61,0x4C,0x17,0x36,0x0D,0x70,0x62,0x42,0xC2,0xD2,0x1E,0x52,0x82,0x56,0xB2, + + 0x36,0x60,0x68,0x92,0xE8,0xA7,0xEC,0x4C,0x8F,0x82,0xDA,0x96,0xF4,0x7E,0x99,0x93, + + 0x6F,0xA1,0xF1,0xB5,0xD4,0x9E,0xF7,0xDC,0x49,0x64,0xCB,0x67,0x84,0xE4,0x91,0x54, + + 0x8B,0x7C,0xCB,0x37,0x93,0xE1,0x71,0x26,0x11,0x80,0x0D,0x55,0x0B,0x7E,0x5E,0x3F, + + 0x67,0xD1,0x47,0x7F,0x96,0x64,0xC8,0xD0,0x4E,0x44,0x1C,0xFD,0xE3,0x72,0x72,0xFD, + + 0x26,0xF5,0x96,0x6F,0x97,0x47,0x21,0x4A,0xE2,0x42,0xEF,0x67,0x67,0xE1,0x79,0xC2, + + 0x6F,0x7F,0xB8,0x72,0x33,0x24,0x56,0x5B,0x46,0x56,0xF9,0x62,0x1E,0xF7,0x57,0x2E, + + 0xE6,0xF2,0xD3,0xA4,0xAF,0xA1,0xF9,0x67,0x45,0x6B,0x90,0x08,0x95,0x48,0x1C,0xAA, + + 0x83,0x7E,0xAC,0x8C,0xDE,0xE9,0x95,0x8F,0x84,0xCB,0x51,0x6E,0x2E,0xEE,0x30,0x1B, + + 0x2E,0x11,0xD2,0x6C,0xF6,0xAA,0x6C,0x44,0x87,0x4A,0x0E,0x5C,0xDF,0x6F,0x2B,0xCF, + + 0x65,0x7B,0x0C,0xED,0x30,0x57,0xE2,0xEC,0x31,0x6C,0xD1,0x0B,0x7D,0x35,0x15,0xBB, + + 0x8B,0x89,0xF1,0xB3,0xF5,0xA8,0x33,0x2E,0x19,0x48,0x6B,0xBB,0xDB,0xEC,0x7A,0x5B, + + 0xE7,0x75,0xCC,0xE3,0xBF,0x03,0x21,0x08,0xA5,0x5D,0x61,0x9F,0x33,0x2C,0x14,0x73, + + 0x3C,0x6C,0x7F,0x79,0xBE,0x02,0x40,0x89,0x77,0xCB,0xDA,0x7A,0xBE,0x12,0x11,0xE5, + + 0xDA,0x03,0x72,0x68,0x3F,0x01,0xD0,0x52,0xE7,0xA6,0xD3,0x76,0xA1,0xCE,0xD3,0xCB, + + 0x64,0xDE,0xF8,0xB7,0xF3,0xE2,0x55,0xCF,0x4F,0x0F,0x3B,0x5F,0xDF,0x44,0x1C,0x7D, + + 0xA7,0x9D,0xA2,0x26,0xDD,0xB3,0x65,0xE2,0x28,0x04,0x0B,0x24,0xB6,0xF3,0x8F,0x22, + + 0xF9,0x32,0x3B,0x76,0x6F,0xAA,0x6C,0x0B,0x2D,0xD2,0xDE,0x12,0xA8,0xFE,0xDE,0x07, + + 0xAF,0x58,0xD7,0x97,0x7F,0x1F,0x64,0xBC,0xDE,0x76,0x75,0x23,0xBD,0xF4,0xC1,0xE0, + + 0xCF,0x35,0x3B,0xF1,0x4A,0xF1,0x1D,0x99,0x04,0x7C,0x09,0xC8,0x56,0xB1,0xF0,0x74, + + 0x5B,0xD5,0xDA,0xEB,0x30,0xB6,0xD7,0xCB,0x0D,0xC5,0xCA,0xCE,0x96,0x75,0xB2,0xD2, + + 0x27,0xF4,0x2C,0x56,0x6C,0xF7,0xEE,0x94,0x12,0xDE,0x03,0x85,0x47,0xB7,0x4D,0x37, + + 0x8A,0x07,0x66,0x38,0x5F,0xA7,0x71,0xE1,0xF8,0xCD,0xE5,0x63,0xF4,0xF6,0xC1,0xA1, + + 0x4C,0xA6,0xAD,0x66,0x3A,0x41,0x3D,0x80,0x9E,0x50,0xBD,0x51,0xBF,0xE6,0xF2,0xF9, + + 0x4E,0x3E,0xE6,0xD7,0x3A,0xDA,0x66,0xB9,0x4E,0xFB,0x76,0xD1,0xFE,0x7E,0x7C,0x3E, + + 0xE5,0x3A,0x81,0x7C,0x91,0x04,0x3C,0x7A,0x09,0x52,0x01,0x5C,0xFF,0xC5,0xF7,0x4B, + + 0xBC,0x3E,0x68,0x0D,0x7E,0x39,0x09,0x0A,0x61,0x5C,0xE5,0xF0,0x5F,0x9F,0xFB,0x99, + + 0xE5,0x3F,0xD7,0x6E,0x1E,0xFB,0xEE,0x8A,0xC7,0xC4,0x03,0xDD,0x02,0x9E,0x18,0xE6, + + 0xAC,0x30,0xDD,0x50,0x3D,0xDC,0xF2,0xE7,0xEC,0x70,0xC8,0xC6,0x9C,0x3C,0x40,0x77, + + 0x8E,0x42,0xFF,0xDC,0xA8,0xBB,0x20,0xD2,0x6B,0xD9,0x68,0x0F,0x02,0x02,0xB5,0xA9, + + 0x51,0x98,0xC1,0xE7,0x82,0x1E,0x24,0x89,0x05,0xEF,0x1D,0xCB,0x1F,0x51,0xC3,0x44, + + 0xAC,0x7F,0xC1,0x6A,0x1E,0x10,0x79,0x89,0x04,0xEE,0xA6,0xCA,0x5A,0x93,0x62,0x05, + + 0x03,0x40,0x40,0x35,0xD5,0x62,0x70,0x76,0x7B,0x9D,0xAE,0x10,0x73,0x25,0x54,0x62, + + 0xEA,0xA0,0x8E,0x90,0x4D,0xDC,0x78,0x66,0x7A,0x4C,0xA6,0x5C,0xDC,0xE7,0x35,0xB7, + + 0x86,0x4A,0x8E,0xE6,0xB0,0x62,0x69,0x06,0x3D,0x4D,0x97,0x14,0x50,0xB4,0x77,0x25, + + 0x7D,0xC2,0xA9,0xFF,0xEE,0xBF,0xB5,0xB4,0x62,0x26,0x9D,0x75,0xF9,0x65,0x80,0xD2, + + 0x04,0x46,0x00,0xC0,0xD0,0x66,0x94,0xC8,0x44,0x46,0x94,0x25,0xBB,0xB5,0x4C,0x52, + + 0x07,0xFE,0xF0,0xAF,0xEE,0x9C,0x23,0x57,0xE2,0xFA,0x4D,0x50,0xBA,0x34,0xBF,0x01, + + 0xC2,0xFD,0x81,0xB2,0x61,0x43,0x97,0xE5,0xC0,0x49,0xA9,0x74,0xA6,0x4A,0x49,0x4E, + + 0xA1,0xDC,0x91,0x51,0x66,0xBE,0xE6,0x08,0xE0,0x07,0xCF,0x4D,0xBB,0x6A,0x58,0x59, + + 0x74,0xA7,0x59,0x0C,0x1E,0x70,0x2A,0xAD,0xEB,0xC5,0x38,0x9C,0xF9,0xEF,0x74,0x1F, + + 0xE8,0x06,0xB0,0xEF,0x46,0xD2,0x3B,0xBC,0x47,0x22,0x05,0x38,0x0F,0xB6,0xA3,0x7B, + + 0xEA,0xA6,0x02,0x89,0xB1,0x47,0x6D,0x55,0x4A,0xE6,0xDD,0x39,0x10,0xF3,0x51,0x71, + + 0xF5,0xA4,0x3A,0xE3,0x9F,0x73,0x7B,0x6A,0x88,0x46,0xA5,0x45,0x99,0xC4,0x6C,0xB5, + + 0x34,0x77,0x9A,0x48,0xA6,0x2F,0xE9,0x10,0x69,0x0C,0xC0,0xF1,0xB1,0x28,0x85,0xD2, + + 0x7C,0xA1,0xD1,0x62,0x35,0xD8,0xC7,0x18,0x35,0x98,0x7E,0x58,0x68,0xB6,0xC1,0xB0, + + 0x75,0x4C,0xFD,0xED,0xA7,0x27,0xE6,0x54,0x23,0xBF,0xE9,0xDD,0x47,0xC1,0x94,0xED, + + 0xB4,0xAF,0x99,0xD9,0xD9,0x7D,0x0F,0x46,0xED,0x0D,0x61,0x4D,0xBA,0xC0,0x7C,0x68, + + 0x18,0x5D,0xF9,0x7F,0xE1,0xED,0x2C,0x22,0xA9,0xD3,0xF4,0xF2,0x4B,0x7D,0x5C,0x14, + + 0x2B,0xCE,0x2C,0x64,0xF3,0x73,0x5C,0xBA,0x67,0x13,0x3B,0x9D,0xA1,0x20,0xFE,0x89, + + 0x05,0x09,0xAE,0xB5,0x90,0x9D,0xD5,0x25,0xF6,0x10,0x76,0x81,0x24,0x63,0x6D,0xC7, + + 0xCF,0x1C,0xC9,0x94,0x0E,0x9E,0xE8,0x76,0xE7,0xF3,0xBA,0x98,0x6D,0xE2,0x84,0x45, + + 0x10,0x56,0xDB,0xB7,0x4B,0xB3,0xC1,0x86,0x9D,0x38,0xAA,0xE3,0x56,0xFF,0x87,0x59, + + 0xF7,0x36,0xEC,0xF4,0xDA,0x8C,0x06,0x44,0x1F,0xFA,0x7C,0x86,0x11,0x09,0x05,0x54, + + 0x5D,0x54,0xC1,0xD5,0x81,0xF7,0x37,0xF0,0xE1,0xE6,0x32,0xD4,0x8E,0xD9,0xEA,0x75, + + 0xA5,0x55,0xBF,0xD1,0xE5,0x2C,0xFD,0x83,0x81,0xFB,0xA3,0xF2,0xD7,0xDC,0xB2,0xF7, + + 0x8B,0x5A,0x14,0xBD,0x99,0xC7,0x11,0xE8,0x64,0xF3,0xAC,0x5F,0x01,0xD7,0x16,0x9C, + + 0x81,0x2F,0xD4,0xFB,0x45,0x96,0x97,0x3C,0x6B,0xFA,0x9F,0x5A,0x92,0xDA,0x56,0x67, + + 0x55,0x95,0xB9,0xBC,0x96,0xE5,0x8C,0xA8,0xEE,0x58,0x0E,0x45,0xC4,0x35,0xCF,0xC5, + + 0xEE,0x11,0x2F,0x6D,0x28,0xE8,0xDF,0x3D,0x9B,0xA4,0x38,0xBB,0x2D,0x1F,0x20,0x4C, + + 0x28,0xBA,0xD1,0xCE,0x74,0x91,0x28,0xEF,0x83,0x8D,0xAE,0xF1,0xBA,0xB3,0x0E,0x4D, + + 0xD4,0x5F,0xC8,0xB0,0xD2,0x64,0x5C,0x1E,0x6D,0x5F,0x59,0xEE,0x5F,0xD2,0x87,0x4C, + + 0xA3,0x5C,0x97,0x7F,0xB2,0x9C,0x2F,0x01,0xD6,0x13,0xE9,0xD0,0x91,0x71,0x84,0x50, + + 0x7F,0x7C,0xBD,0xDC,0xFB,0x24,0xEF,0x7D,0xE5,0x77,0x7B,0x9F,0x0C,0x1A,0x80,0x70, + + 0x66,0x2C,0x21,0x74,0xFF,0x01,0x50,0x71,0x49,0x82,0x2F,0xCE,0x38,0xAD,0x50,0x03, + + 0x61,0x2C,0x10,0xE9,0x98,0x0C,0x19,0xB0,0x8C,0xE9,0xD8,0x7C,0xDC,0xEE,0x5F,0x04, + + 0xE7,0x7D,0xDF,0x33,0xA7,0x43,0xF1,0xAF,0xC2,0xC0,0xCF,0x52,0x3D,0x1B,0xBB,0xF3, + + 0x81,0x23,0x3B,0x88,0x7C,0x02,0xF9,0xB7,0x33,0xAF,0x0D,0x45,0x76,0xA2,0x3F,0xBD, + + 0x00,0x7E,0x86,0xE2,0xE3,0x02,0x32,0xEE,0x8C,0x47,0x50,0x14,0x34,0x98,0x36,0x6E, + + 0x0F,0x28,0xBA,0x67,0xB6,0x5A,0x2C,0x01,0x61,0x64,0x6F,0x47,0xF6,0x44,0x00,0x31, + + 0x6D,0x37,0xB5,0x07,0xC1,0x0B,0xCA,0xF0,0xE8,0xCE,0x8F,0x60,0xF2,0x4B,0x7A,0xC3, + + 0x78,0x2A,0xD7,0xF2,0xB9,0x78,0x41,0x8C,0x2E,0xE4,0xC1,0x47,0x7A,0x48,0x34,0x7A, + + 0x2C,0x20,0xC0,0x0E,0x1F,0x22,0xF2,0x3B,0x14,0xC0,0xEC,0x5A,0xA3,0x43,0x6E,0xEC, + + 0x8F,0x25,0xF3,0x1A,0x90,0xCA,0x02,0xC4,0xE1,0xC4,0x71,0xB7,0xD0,0xEF,0x35,0xEB, + + 0x43,0xC8,0x9D,0x3B,0x68,0x0B,0x27,0xA9,0x05,0x85,0x2C,0xD0,0xF8,0xA8,0x27,0xF9, + + 0x21,0x76,0x00,0xBA,0x48,0xB5,0xC4,0xB9,0x04,0x68,0x11,0xD3,0x7C,0x1D,0xF1,0x0D, + + 0xD0,0x84,0x0E,0x31,0xD4,0xEF,0xA6,0x94,0xC1,0x31,0x52,0x1C,0x3C,0xB0,0x7F,0x5C, + + 0xC7,0x9C,0x6A,0x4F,0x75,0x00,0xAE,0xBA,0x4B,0x6D,0x4C,0x4F,0x67,0x42,0xE3,0x28, + + 0x16,0x2A,0x58,0xDC,0xB4,0xA4,0x15,0xDB,0x3B,0x68,0x8D,0x68,0xFA,0x65,0xCF,0xDF, + + 0x8D,0x29,0xBB,0xBF,0xDD,0x0F,0x2D,0x74,0xB3,0xD4,0x5B,0x0D,0xBD,0x93,0xA4,0xA1, + + 0xC2,0x3D,0xDA,0x81,0x81,0xBF,0xF4,0x93,0x8A,0xD8,0x8C,0x58,0xD8,0xFD,0xAC,0x91, + + 0x8A,0x97,0x3C,0xAF,0xDE,0xF5,0xFC,0x33,0x7D,0x93,0x9A,0x9E,0xF9,0xB3,0x38,0xF3, + + 0xAC,0x9B,0x11,0xE8,0x17,0x39,0xB0,0x27,0xE6,0x13,0x4A,0xB4,0xCC,0xB6,0x87,0x26, + + 0x04,0x4C,0xF7,0x05,0xC7,0xF1,0x2B,0x04,0xE6,0xB3,0x7D,0x40,0xF4,0x73,0xC3,0x72, + + 0x20,0x96,0xF0,0xC4,0x7A,0x19,0xB4,0x62,0x28,0x96,0xCC,0x19,0x9F,0x8C,0xAC,0x52, + + 0x69,0xD7,0xB5,0xFE,0xDE,0x64,0x82,0x76,0x25,0xD7,0x84,0xF2,0x9E,0xAD,0xD5,0x47, + + 0xA8,0x85,0x7C,0x75,0xB2,0x16,0xB5,0x71,0xE0,0xD4,0xE3,0x85,0xD2,0x5D,0x2D,0x31, + + 0xA1,0x15,0x15,0xD8,0x95,0xAC,0x75,0xE3,0x98,0xF7,0xCF,0x04,0x73,0x53,0x92,0xE8, + + 0xD3,0x9E,0xE6,0x3F,0xC7,0x33,0x0C,0x59,0x19,0x73,0x69,0xAF,0xFC,0xB8,0x5A,0xDA, + + 0x65,0xDB,0xF4,0xD5,0x4B,0xFB,0x86,0x45,0x6B,0x48,0x7E,0x3A,0xB7,0xF4,0x09,0xCA, + + 0xAA,0xD8,0x1B,0xB2,0x57,0xFE,0x2A,0xAE,0xDF,0x3B,0x68,0xAF,0x20,0x0B,0xEB,0x9F, + + 0x2D,0x9B,0x6F,0x44,0xF5,0x7A,0x0B,0x3F,0xEF,0xB6,0x44,0x98,0x5C,0xB9,0x26,0x8A, + + 0x6E,0x67,0xF5,0xA8,0x7E,0xF3,0x56,0xEE,0x11,0xDC,0x8E,0xE9,0x5A,0x77,0x6E,0x95, + + 0xD2,0xE1,0x6C,0x1E,0x2B,0x48,0x3E,0xDC,0x69,0xBF,0x5E,0x8C,0x1D,0x31,0x63,0xC9, + + 0xAA,0x65,0xD9,0xF6,0x33,0x38,0xDA,0x94,0x73,0x9C,0xCC,0xDE,0x86,0x51,0xAF,0x5B, + + 0x0B,0xDD,0xF8,0xCE,0xC7,0xFD,0x73,0x7F,0xED,0x3D,0x81,0xF8,0xDB,0xFF,0x3A,0xE8, + + 0x56,0x4F,0xBE,0x64,0x78,0x03,0x4F,0x56,0xCD,0x96,0x40,0x35,0x72,0x64,0xA4,0xF8, + + 0x81,0xCC,0xAA,0xFC,0x0F,0x6E,0xE3,0xC6,0x72,0xFA,0xDC,0xDC,0x13,0x2C,0x58,0x91, + + 0x25,0xFD,0xC3,0x16,0xBA,0x2D,0x19,0x31,0x3D,0xC3,0xE5,0x34,0xAC,0x43,0xEE,0xE2, + + 0xFD,0x18,0xB3,0xE6,0xB7,0x8C,0xA3,0xCE,0xF2,0x21,0xF9,0x63,0x34,0x6C,0x47,0xC4, + + 0x5D,0xDD,0x0B,0xD3,0x92,0xC5,0xB7,0x9F,0xB3,0xE2,0x40,0x16,0xB9,0x55,0xFF,0x48, + + 0x05,0xDF,0x0A,0x32,0xEC,0x3E,0x03,0x70,0x45,0x05,0xEB,0x85,0x27,0x67,0x18,0x55, + + 0x7F,0x49,0x01,0x99,0x5C,0x3D,0x29,0x9F,0x3A,0x4F,0xAF,0x49,0xB9,0xD7,0xE6,0xB9, + + 0xC3,0xFA,0x0A,0x33,0x1E,0xD1,0xF4,0x99,0xDB,0x9A,0x86,0xF5,0xA0,0x12,0xA2,0x8C, + + 0x64,0xF4,0x15,0xE4,0x06,0x65,0xEA,0xC0,0x12,0x05,0xCB,0x2E,0xBD,0x0D,0xD4,0xEC, + + 0x55,0xA4,0x6D,0xDC,0x6C,0x6B,0x4A,0x28,0x5D,0x04,0x2E,0xDE,0x6A,0xF9,0x25,0xEB, + + 0xA2,0x11,0x7C,0x7E,0xE4,0x46,0x84,0xC1,0x82,0x05,0xEB,0xC4,0xC4,0x07,0x5F,0x79, + + 0xC9,0xC4,0x1D,0x2A,0x9F,0x8B,0x42,0xBC,0x6E,0x50,0x23,0x1A,0x7A,0x0E,0xBA,0xCC, + + 0x11,0x77,0x8A,0x55,0x1C,0xD6,0xAA,0x60,0xB7,0x03,0x65,0x44,0x5C,0x75,0x13,0xDA, + + 0x4E,0xF2,0x93,0xC0,0xBE,0xAD,0xD9,0x0B,0x53,0xE4,0x1A,0xBC,0x0E,0x67,0xF3,0xC9, + + 0x6B,0x6D,0x98,0xC9,0x87,0xF7,0x0D,0x20,0xCA,0x4A,0x55,0x1F,0x31,0x8F,0x12,0xD5, + + 0x2E,0xD0,0x33,0x5F,0x83,0x34,0xDA,0x99,0x83,0xE4,0x0F,0xF9,0xD8,0xBF,0xFE,0x68, + + 0x6E,0x5F,0xAC,0x83,0xB1,0x74,0xD4,0x95,0xBD,0x4B,0x9B,0xA4,0x1B,0xA8,0x5C,0x8D, + + 0x80,0x7D,0xF1,0xB3,0x90,0x6E,0xDC,0x7C,0xFC,0x4A,0xC2,0x74,0x71,0xDA,0x55,0x99, + + 0xBE,0x14,0xBD,0x6F,0x1C,0x3F,0x4E,0xD2,0x43,0x9D,0x95,0x54,0xAD,0x72,0x54,0x68, + + 0x67,0x28,0x39,0xF7,0x0E,0x2E,0xC0,0xCE,0x06,0xDE,0xD1,0xB5,0x10,0x0C,0x1D,0x28, + + 0xC7,0x6B,0xFA,0xEC,0xBF,0x92,0x2A,0x20,0x72,0x19,0xAD,0x60,0x31,0xBF,0x7E,0xC3, + + 0x02,0x1A,0xAC,0x82,0x5E,0x38,0x9C,0x3C,0x40,0x17,0xA4,0xD3,0x8E,0x7A,0x7B,0xCD, + + 0x3E,0x19,0x0E,0x85,0xBA,0x77,0x2B,0x20,0x1A,0x6E,0x15,0x25,0xA6,0xAB,0x7F,0x2E, + + 0x90,0xF7,0xBF,0xFB,0xC3,0x52,0x12,0x8A,0x0A,0x67,0xDB,0xC0,0x73,0x6B,0x41,0x6F, + + 0x1B,0xAA,0xAE,0xEE,0x81,0x34,0x4F,0x55,0x8F,0x5E,0xE9,0x53,0x7E,0x22,0x0B,0x6A, + + 0x69,0x56,0x75,0x67,0xCA,0xB2,0xDB,0x5E,0xCC,0x52,0x5D,0xDA,0x58,0x39,0xBF,0x76, + + 0x8A,0xF7,0xBF,0xFF,0xC7,0x1A,0x37,0xAF,0x49,0x41,0xCF,0xCC,0xC4,0x61,0x37,0x71, + + 0xD2,0xD4,0xDB,0xAC,0x9F,0x24,0x9F,0xA9,0x4E,0x40,0x83,0xAD,0x10,0x4B,0x78,0x2A, + + 0x8D,0x0C,0xFE,0x7E,0x71,0xDD,0xBA,0x7B,0x7E,0x54,0xE1,0xC4,0x86,0xAD,0x17,0x54, + + 0x8E,0x16,0x5E,0xFB,0x9A,0xBA,0x00,0xF1,0x6B,0x13,0x24,0x8E,0x90,0x9C,0xF8,0x2F, + + 0x1E,0xAE,0x73,0xAF,0x58,0x94,0x9D,0x6D,0xB5,0x54,0x64,0xD4,0xFC,0x17,0xCF,0xF7, + + 0xFB,0x04,0x7E,0x44,0x39,0xF3,0xDC,0x3F,0xE7,0x44,0x1F,0x3D,0xAE,0x75,0x79,0x04, + + 0x40,0x9B,0xD6,0x06,0x14,0xA0,0x6F,0x54,0x77,0x62,0xEA,0x27,0xF7,0xA2,0xA9,0x52, + + 0x41,0x4A,0xCE,0xB7,0xEA,0x0C,0x58,0x92,0x5D,0xCE,0xE3,0x02,0xD7,0x2D,0x81,0x75, + + 0x0B,0x04,0xA1,0x40,0x7D,0xAB,0xC9,0xCB,0xCA,0x8F,0x27,0xA9,0x75,0xF9,0xA8,0xFB, + + 0xEA,0x48,0x79,0xD0,0x4B,0xAB,0x60,0xA2,0x60,0xC5,0x04,0xD5,0xF1,0xEF,0x4A,0xE7, + + 0x28,0x0E,0x23,0x34,0xB1,0xEA,0x7D,0x67,0xC6,0xA4,0xC8,0x98,0xFA,0xE9,0x95,0x69, + + 0x26,0x70,0x28,0x02,0xE7,0xAB,0x7D,0xE2,0xB8,0x80,0x41,0xD3,0x9D,0xE8,0x49,0x1E, + + 0xC7,0x85,0x65,0xC3,0x89,0x5B,0x2F,0x2A,0xCE,0x6B,0x0C,0x29,0x23,0xBA,0xE8,0xD7, + + 0xD8,0xC0,0x81,0x95,0x13,0xA9,0xFB,0xD4,0x26,0xA4,0x84,0x9D,0x23,0x96,0xA5,0x88, + + 0x2E,0xB8,0x22,0x11,0x3A,0x25,0x62,0x37,0xEF,0xD3,0x8A,0x6C,0xFF,0xE4,0x82,0x0A, + + 0xEC,0x92,0x06,0x8D,0x37,0xA3,0x63,0xC3,0xA8,0x3F,0xD2,0xCF,0xDE,0xEB,0x1B,0xE3, + + 0xF7,0x45,0xDD,0xAF,0x75,0xA9,0x71,0x4D,0x33,0xA6,0x17,0x6D,0x58,0xE6,0x6C,0xFD, + + 0xBE,0xB0,0xA2,0x9B,0xF1,0x4E,0x45,0x06,0xFE,0x10,0xEB,0x32,0xCF,0x40,0x3B,0x5A, + + 0xAB,0x73,0x46,0x8C,0xBD,0xA2,0x8F,0x9B,0x17,0xCC,0x45,0x56,0xAB,0x8F,0x34,0x03, + + 0x0F,0xF8,0xB3,0xA7,0xBA,0x02,0xF1,0x72,0xEA,0x62,0x3A,0x7B,0xFC,0x60,0x3A,0x5F, + + 0x2B,0x31,0xDB,0xEB,0x1B,0xCF,0x2A,0x7E,0x6B,0x61,0x95,0x0D,0x25,0x71,0x73,0xDF, + + 0xD0,0x58,0xFA,0xAF,0x60,0xE0,0xF4,0x93,0xD7,0x82,0x26,0x7D,0x68,0xD0,0xCC,0x92, + + 0x22,0x6A,0x1C,0x6D,0x87,0xF2,0xF1,0xC4,0xEB,0x56,0xAE,0xA7,0x55,0xB0,0xD3,0x7A, + + 0x5E,0x5C,0xD1,0x54,0x94,0xAE,0xBB,0x54,0x56,0xA3,0x04,0x56,0x37,0x04,0xF5,0x6B, + + 0xE6,0xDF,0xA3,0x26,0x37,0xBF,0xB2,0xE3,0xE8,0x59,0xB9,0x2C,0xC7,0xA0,0xC1,0x0C, + + 0xA6,0xF3,0x10,0xCA,0x4A,0xEE,0x85,0x4C,0x0C,0xDA,0xBE,0x33,0xAA,0x2A,0xBD,0xB4, + + 0x46,0x6B,0xFB,0xA4,0xC1,0xD1,0x2D,0xF6,0x5D,0xCF,0x6A,0x95,0x1A,0x75,0x97,0xE9, + + 0x33,0x0E,0x71,0xB4,0xC4,0xD0,0x9E,0xB2,0x66,0xCE,0x07,0x89,0x1F,0xF8,0x9A,0xB1, + + 0xC4,0x69,0xDD,0x38,0x34,0x7A,0xCB,0xA4,0xD5,0x8D,0x75,0x18,0x17,0x95,0x6D,0x57, + + 0xA3,0xEB,0xD5,0x2C,0xCA,0xBC,0x24,0x07,0xE7,0xCC,0x02,0x89,0xD9,0x28,0x99,0x9A, + + 0xCB,0x83,0x2D,0x70,0x85,0x00,0x91,0x48,0xAC,0x77,0xEF,0xBE,0x81,0xB7,0x77,0x98, + + 0xC8,0x6F,0xC6,0x98,0xBE,0xDD,0x46,0xA8,0x84,0xD6,0x11,0x56,0x39,0x04,0x60,0xED, + + 0x53,0xF6,0xD8,0xE5,0xED,0x25,0x63,0xD8,0xCD,0x2E,0x00,0xB6,0xFA,0x20,0xD0,0x0B, + + 0x5A,0x80,0x6F,0x8E,0x67,0x1B,0x27,0xBF,0xA5,0xF8,0x47,0xBD,0xFB,0x0E,0xD9,0xE6, + + 0xD5,0x01,0x66,0xB4,0x4B,0xB7,0x52,0xFE,0x4C,0xEC,0xC8,0xD2,0x02,0x53,0x56,0xC9, + + 0x3B,0x92,0xFD,0xDC,0x7B,0xF1,0x27,0x66,0x0C,0xFD,0x80,0xF9,0xDE,0x22,0xB4,0x31, + + 0x13,0x3F,0x65,0xD5,0x82,0x0A,0xA5,0x4B,0xEE,0xBD,0x57,0x9C,0x86,0x2D,0x5D,0x24, + + 0x22,0x22,0x2F,0x99,0xA9,0xD3,0x87,0xBD,0xE3,0x9D,0x4B,0x9D,0x00,0x5B,0x93,0x06, + + 0xC8,0xB1,0xE6,0x3C,0x11,0xA0,0x30,0xCA,0x29,0x31,0xAE,0x08,0xDD,0x02,0x36,0x25, + + 0x07,0xA1,0x8E,0x3D,0x91,0xA6,0x8C,0x90,0x6D,0x23,0x58,0x37,0xD0,0x6C,0xA5,0xF0, + + 0x23,0x42,0x22,0x3D,0x4C,0x93,0x70,0x61,0xC4,0x0C,0x6A,0x56,0xEC,0x20,0xF6,0x73, + + 0x72,0x66,0x25,0x66,0xAD,0x85,0x09,0xB9,0x95,0x01,0x26,0x77,0x70,0xB6,0x8B,0xC9, + + 0xD6,0x07,0x88,0x55,0x79,0xE7,0x17,0x27,0x44,0x26,0x2D,0x16,0xE5,0x5B,0x38,0x32, + + 0xF0,0x60,0x1E,0x93,0xD1,0x37,0x9C,0x6E,0x40,0xE5,0x08,0x8E,0xA8,0x27,0xE6,0xE0, + + 0x00,0xAA,0x41,0x47,0x86,0x8B,0xDC,0xA1,0xD6,0x04,0xA8,0x5B,0xF8,0x93,0x71,0xAA, + + 0x7F,0xF6,0xC1,0x50,0xF8,0xE4,0x07,0xC0,0xD3,0x43,0x5D,0x97,0x32,0x1C,0x3A,0xF3, + + 0x85,0xF5,0x15,0xFF,0x24,0x85,0x5A,0x28,0x58,0x0A,0x03,0x13,0x64,0x2A,0xF1,0x9C, + + 0x0A,0xD9,0x1B,0x5B,0xF0,0x98,0x1C,0x21,0x48,0x69,0x65,0xFE,0xF8,0xB6,0x64,0xF6, + + 0x7D,0x9C,0x12,0x9E,0xEC,0x85,0x5B,0x8D,0x47,0x08,0x53,0x5E,0x5B,0x67,0x33,0xE3, + + 0x25,0x06,0xED,0xBC,0x72,0x9A,0x8B,0xFE,0xED,0x27,0x5B,0x2D,0xE6,0xC6,0xF1,0x74, + + 0x0C,0xD6,0x46,0x3F,0x70,0xA5,0x55,0xEC,0x44,0x14,0x52,0x82,0xE1,0x73,0xE3,0x26, + + 0x9E,0x0B,0x9C,0xEE,0x4B,0x5D,0xF9,0x38,0x47,0xE6,0xF2,0x1E,0xA6,0x61,0x06,0x06, + + 0x77,0x72,0xC1,0x2D,0xD2,0x83,0x1B,0x61,0xCC,0x2C,0x13,0x68,0x79,0xB3,0x65,0x67, + + 0x8D,0x6D,0xF5,0xEC,0xFB,0x4F,0x0D,0x61,0x3F,0x4C,0xE3,0x95,0xC7,0x22,0x52,0xA9, + + 0xCB,0x21,0x67,0x44,0x2A,0x5C,0x2A,0x89,0xED,0xF6,0x6F,0xD7,0x08,0x32,0x32,0xB8, + + 0x49,0x1C,0xB2,0xB8,0xFB,0xA0,0x09,0x34,0x63,0x59,0x23,0xF6,0xD0,0xA4,0x03,0xB4, + + 0x20,0x94,0xBB,0xA8,0x7A,0x83,0x04,0x61,0xA9,0xFF,0x55,0xA6,0x71,0x7F,0x1F,0x2B, + + 0x4A,0x57,0xC5,0x9D,0x79,0xA2,0xDD,0x31,0xAF,0xAC,0x8E,0x8A,0x89,0x31,0x34,0x44, + + 0x2C,0x7F,0x9A,0x61,0xB2,0x9F,0x00,0x65,0x1A,0xAB,0x2B,0x14,0xA4,0xD5,0xDF,0x10, + + 0x6B,0xBE,0xA7,0x24,0xB3,0x3A,0x0C,0xCB,0x49,0x17,0x8E,0xBB,0x98,0x11,0x23,0xFC, + + 0x57,0xB0,0x97,0xC3,0x30,0x4A,0x6E,0x5D,0x15,0xC3,0x42,0x16,0x76,0xFB,0x99,0xD0, + + 0x23,0x35,0x94,0x45,0x16,0x31,0xDD,0x2A,0x3F,0xB4,0xE5,0x0B,0x7E,0x8A,0x3C,0x38, + + 0x9C,0xB7,0x17,0x9F,0x40,0x49,0xBA,0x3B,0x14,0x85,0x56,0xDF,0xFB,0x75,0x36,0x63, + + 0xD8,0x75,0x9D,0x8F,0x05,0x88,0xBD,0x84,0xB5,0xA8,0x5E,0xAC,0x46,0xD4,0xA3,0xEB, + + 0x5B,0x7F,0xA7,0x99,0x70,0x6B,0x71,0x95,0xEB,0xDA,0x68,0x6F,0x59,0xA5,0xCB,0x67, + + 0x50,0x79,0xB5,0x6E,0x81,0x96,0xF3,0xC6,0x23,0x2A,0x8A,0x39,0xFB,0xC1,0xF9,0xB9, + + 0x56,0x17,0x6B,0x53,0x99,0x97,0x76,0xED,0x01,0xBF,0x35,0x2E,0xFE,0x72,0x16,0xC8, + + 0xC0,0x7E,0x62,0x4E,0x77,0x35,0x3C,0xE8,0x68,0xFD,0x84,0xF9,0x13,0xFE,0xC3,0xB7, + + 0xC3,0xCF,0x50,0xCC,0x53,0xCF,0x87,0x9A,0x84,0x30,0x73,0x0F,0xB2,0x8F,0x6F,0xDC, + + 0xC0,0x7C,0x4F,0xBE,0x52,0x9B,0x65,0x0A,0x8D,0x5B,0xA1,0x4D,0x1A,0xDC,0x5F,0x45, + + 0xF9,0x36,0x9E,0x3E,0xDE,0xA3,0xA0,0x3D,0x74,0x82,0xA5,0xA2,0x56,0xE8,0x56,0x3F, + + 0x27,0x6C,0xBF,0x92,0x1B,0x06,0x46,0x1F,0x91,0x10,0xAD,0xB2,0x57,0x31,0x5F,0x3B, + + 0x71,0x14,0xDF,0x3F,0x63,0x57,0xF1,0x9A,0x10,0x93,0x71,0xA7,0x22,0x4F,0xAC,0x54, + + 0x64,0x25,0x97,0x3A,0x4B,0x0E,0x47,0x0E,0x47,0xFF,0x15,0xA4,0xFF,0x1C,0xBC,0xD1, + + 0x7E,0x59,0x4C,0xD5,0x70,0x0B,0xC7,0xC3,0x40,0xA6,0x0B,0x6E,0xF3,0x9B,0x36,0xF6, + + 0x0F,0x81,0xBE,0x67,0x71,0x0A,0xC1,0xEC,0x44,0x04,0x85,0x9C,0xD4,0xE8,0x07,0x7B, + + 0x85,0x26,0xB3,0x45,0xD2,0x0B,0xC1,0x24,0x7B,0x30,0x58,0x19,0x43,0x6B,0x2D,0x2C, + + 0xEE,0x36,0xBB,0x68,0xF5,0xE6,0xD2,0x1D,0x12,0x3B,0x06,0xB5,0x76,0x38,0x31,0xF9, + + 0x7C,0x05,0x33,0x90,0x1D,0x58,0x8E,0x48,0xBB,0xAD,0x09,0xBD,0x7E,0x37,0x14,0x22, + + 0x65,0xD8,0x6A,0x9B,0xF7,0x04,0x6E,0x24,0x3D,0x66,0x45,0xBA,0x5F,0xAD,0x45,0x26, + + 0x67,0xFB,0x10,0x23,0x60,0xDB,0x0B,0x35,0xEE,0x65,0x89,0xD5,0x27,0x91,0x55,0x37, + + 0x64,0xFA,0xBC,0x80,0x74,0x3A,0x2C,0x49,0x26,0xFA,0x85,0x07,0x50,0x89,0x3A,0x4F, + + 0xFB,0x25,0x82,0x4C,0x2F,0xA1,0xCF,0x35,0x35,0x9C,0x32,0x7E,0x61,0xAE,0xBA,0x58, + + 0x03,0x26,0xD2,0xA5,0xEA,0x02,0x38,0xCB,0xA6,0xCE,0x3A,0x4B,0xD2,0xE1,0x70,0xAB, + + 0xCE,0x21,0x18,0xCD,0x1E,0x47,0xB3,0x6F,0x53,0x8C,0x65,0x28,0x23,0xE1,0xBB,0xA4, + + 0x0D,0x23,0xBF,0x24,0x74,0xEC,0xD7,0xFE,0x38,0x62,0x5F,0x3D,0x5B,0xE2,0xDB,0xC5, + + 0xCD,0xC1,0xB1,0xC1,0xFE,0xA1,0x8F,0x31,0x50,0xD8,0x74,0x26,0x82,0x50,0x64,0x96, + + 0xA2,0xF0,0x92,0xBF,0x33,0xB3,0xA9,0xC1,0x5D,0x93,0xBC,0x92,0xA1,0x60,0xC2,0xF0, + + 0x9C,0x44,0xAD,0x83,0x1C,0x5F,0x37,0xBD,0xD0,0x26,0xA0,0x84,0xAB,0x09,0x81,0xE8, + + 0x6F,0xC2,0xA5,0x13,0xB7,0x51,0x7D,0xAF,0x1A,0xBF,0x1A,0x8E,0x25,0x22,0x9B,0x46, + + 0x28,0xCC,0xB6,0xC0,0xFE,0xD7,0x24,0x91,0x08,0xBA,0x20,0x15,0x58,0xD9,0xCF,0x92, + + 0x6F,0x18,0xB6,0x0C,0x5F,0x44,0x42,0x47,0xE8,0x53,0x9C,0xB9,0x9F,0xFA,0x6D,0xCF, + + 0xA0,0xF4,0x41,0xE0,0x17,0x49,0x17,0xF3,0xE7,0x46,0x3F,0x0F,0x76,0x3B,0x13,0x62, + + 0x27,0x46,0x93,0xD1,0x56,0x34,0xFC,0x33,0xAF,0x7C,0xA4,0x0E,0x12,0x08,0x58,0xB2, + + 0xDD,0x3E,0x0A,0x1D,0x40,0x47,0x50,0x0B,0x99,0x7E,0x91,0x93,0x9D,0x57,0xCE,0xEC, + + 0xD2,0xF7,0x94,0x64,0xC6,0xC2,0x6E,0xA5,0x47,0xB7,0x90,0x80,0xDC,0x66,0x32,0x78, + + 0x90,0x81,0x1C,0x1C,0xC8,0x65,0x67,0x6B,0xAC,0x0E,0xE5,0x5C,0x96,0xFC,0x11,0xA3, + + 0x73,0x10,0x50,0x1B,0xBF,0xFF,0x80,0x28,0x95,0x06,0x0B,0xDD,0x06,0xB9,0xCA,0x4E, + + 0x20,0xE4,0x4B,0x3D,0xB2,0x41,0xA4,0xEB,0xEE,0x6E,0x36,0x36,0xDD,0xFA,0xAA,0xC4, + + 0x2C,0x3D,0xC8,0x7B,0xB3,0xD8,0xFF,0xBA,0x3F,0x70,0x6E,0x7C,0x7E,0x90,0x6F,0xC6, + + 0x21,0xDC,0x9F,0xDC,0xDC,0xFA,0x49,0x5E,0x61,0x58,0x5A,0x8A,0x03,0xF1,0x31,0x6A, + + 0xEF,0x9B,0x5B,0xBD,0x54,0xBC,0xA9,0x3C,0x2D,0xCD,0x40,0x1D,0xDB,0xFF,0x5E,0x34, + + 0x1C,0x06,0x92,0x04,0xEF,0xAD,0x4F,0x21,0x46,0x63,0x28,0xCB,0x2B,0x78,0xA1,0x6F, + + 0xA2,0x07,0x9A,0x30,0x17,0x52,0x1E,0x42,0xAA,0xA0,0x43,0xB2,0x57,0x22,0x28,0x42, + + 0x86,0x71,0x50,0x81,0xE2,0x40,0xD0,0x52,0x8F,0x4B,0xCA,0xA6,0xAF,0xFA,0x20,0x57, + + 0x87,0x70,0x64,0x04,0xF9,0x03,0x67,0x19,0xC7,0x30,0x8F,0xF5,0xED,0x78,0x80,0xC0, + + 0xDF,0x46,0x9A,0x7D,0x7A,0x35,0xC6,0x06,0xFD,0xE9,0x03,0xE0,0x50,0xC7,0x2C,0x18, + + 0xA2,0x9A,0x4F,0x56,0xDC,0x85,0x12,0x03,0x73,0x07,0xB0,0x16,0xA4,0x27,0x01,0xD4, + + 0x7D,0x00,0xB8,0x13,0x67,0xEA,0x40,0x26,0x5C,0x4C,0xAE,0xA7,0x73,0x99,0xFD,0x33, + + 0x0E,0xF1,0xD8,0x26,0xA3,0xA0,0x19,0x31,0xC5,0x65,0x12,0xFC,0x07,0x64,0xAB,0x77, + + 0xAB,0x0E,0x34,0xFD,0x65,0xD7,0x39,0x5B,0x78,0x47,0x01,0x4A,0xE7,0xC3,0x72,0x7A, + + 0xF2,0x00,0x47,0xF4,0x1F,0x21,0xB7,0x47,0xEA,0xE9,0xC1,0xBF,0x26,0xF1,0x2A,0xAF, + + 0x29,0x88,0xB9,0xFE,0xD7,0x6A,0x2D,0x1C,0xCE,0x39,0x00,0x2C,0xA3,0x72,0x07,0x9B, + + 0x01,0x93,0x8B,0x03,0xF5,0xDF,0x0D,0x4A,0xA1,0x27,0x40,0xBB,0xDF,0x08,0x79,0xD6, + + 0x09,0x7C,0xC0,0x12,0xFB,0x83,0xD2,0x87,0xC7,0xEA,0x75,0xCD,0x92,0xFD,0x76,0x49, + + 0x60,0xF4,0xDB,0xB6,0xFE,0x6F,0x12,0x6D,0xDF,0x7C,0x84,0x9E,0x5F,0xC0,0x1A,0x99, + + 0x2F,0x0D,0xD2,0xBD,0xE2,0x8F,0xC2,0x07,0x00,0x7F,0x73,0x7E,0xE6,0x0A,0x42,0x5B, + + 0x87,0xA4,0x8B,0x1D,0x9D,0x2D,0xFE,0x55,0x03,0x5E,0x4C,0xF9,0x93,0x90,0x56,0xD7, + + 0xCB,0x74,0xE6,0x80,0x31,0x72,0x6A,0x88,0x81,0xEF,0x02,0x20,0x72,0x99,0x1A,0xA1, + + 0xCA,0x55,0xC4,0x8C,0xC4,0xB7,0xDC,0xF0,0x61,0x85,0x70,0x30,0x7B,0x32,0x3D,0x7E, + + 0xC3,0xEA,0x3A,0x42,0x72,0x3A,0xA2,0x89,0x14,0xB3,0x55,0x25,0xBE,0x8D,0x37,0x21, + + 0x29,0xBC,0x85,0x55,0xFD,0x28,0x8B,0xAE,0xD1,0xAE,0x95,0x39,0xF7,0x71,0x3F,0x44, + + 0x24,0x82,0xD5,0x76,0x72,0x1A,0x7F,0x8E,0xB3,0xE8,0xEC,0x1A,0x74,0xAE,0x59,0x23, + + 0x17,0xC1,0x5D,0xCE,0x0F,0x81,0xCB,0x37,0xDE,0xA3,0x08,0xCA,0x51,0x80,0x85,0x45, + + 0xD8,0xC2,0x55,0xDB,0x8A,0xC2,0xE8,0xBA,0x2A,0x47,0x90,0xFB,0xD4,0x82,0xD8,0x22, + + 0xD3,0x55,0xDE,0xDA,0xCB,0xBA,0xE4,0x6F,0xE2,0x67,0x89,0xBA,0x0E,0x0B,0xA2,0xF7, + + 0x8B,0xB8,0xCC,0xEA,0x7B,0x58,0x6D,0xDB,0x04,0xD9,0x3C,0x28,0x7A,0x9A,0x6E,0xD2, + + 0x8F,0x16,0x1E,0x18,0x3B,0x54,0xDE,0x00,0x67,0xD8,0x5E,0x38,0xC2,0x71,0x11,0x8B, + + 0x67,0x97,0xDF,0x88,0xC7,0x1A,0x17,0x56,0x09,0xC9,0x68,0x2F,0x72,0x62,0x2F,0xCD, + + 0x48,0xB4,0x4F,0x39,0xD1,0x31,0x0F,0x3D,0xD7,0x25,0x1A,0x55,0xBA,0x36,0x02,0xC4, + + 0xD1,0x80,0xB8,0xF1,0xD3,0x8D,0xFD,0x86,0xBF,0xA0,0x16,0x6D,0x69,0x70,0x54,0xF6, + + 0x0A,0x3F,0x62,0x43,0x3A,0x7D,0x0E,0xE9,0x5B,0x59,0x65,0xBE,0xDA,0x80,0xFC,0x93, + + 0x43,0xE7,0x85,0x32,0x53,0xCF,0xEA,0xB6,0x22,0x4F,0xEF,0x96,0x7B,0x73,0x71,0xA4, + + 0xCA,0x68,0xEB,0x91,0x73,0x6E,0xEF,0x8B,0x00,0x4E,0xF7,0x9F,0x0F,0x3C,0x18,0x52, + + 0x84,0x8F,0xB1,0x22,0xF5,0x0F,0x52,0xA2,0x45,0x77,0xBE,0x66,0x1A,0xA2,0x9C,0x69, + + 0xA6,0x0C,0x68,0x93,0xE3,0xA9,0x2E,0x75,0x8F,0xDB,0xEE,0xCD,0x53,0xA3,0x95,0xF3, + + 0xA0,0x8D,0xB7,0xF6,0xE9,0x5D,0x0B,0xD0,0xAC,0x6F,0xF1,0x71,0xD2,0xE0,0x57,0x22, + + 0x07,0x9F,0x2B,0x68,0xB4,0xC3,0x71,0x56,0xC3,0x50,0x6D,0xB3,0xF3,0x12,0x76,0x43, + + 0xFA,0x25,0x26,0xB9,0xFF,0xB5,0x67,0xA5,0xFB,0x62,0xC8,0x98,0xFA,0xE9,0x31,0x6A, + + 0xA2,0xEB,0x62,0xD2,0x15,0x65,0x70,0x67,0xD3,0xB4,0x47,0x34,0xF6,0x48,0xF1,0xC7, + + 0xEE,0x4A,0xF7,0x25,0x90,0x24,0x62,0x0D,0x0C,0xB7,0x0E,0x19,0x57,0xEB,0x0B,0x53, + + 0xA3,0xC5,0x16,0x24,0xA7,0x06,0xDC,0x4B,0x0F,0xD6,0x6E,0xF3,0xD5,0x62,0xD2,0x68, + + 0xF3,0x25,0x7D,0x0F,0x38,0xB3,0x70,0x1A,0x6C,0x67,0x0A,0xD5,0xD1,0x15,0xE9,0xEA, + + 0xA6,0x28,0xC8,0x1A,0x1C,0xFB,0x58,0xC9,0xC1,0xC4,0xF2,0x3B,0x36,0x48,0x35,0x4C, + + 0x52,0x80,0x35,0x69,0x63,0xC6,0x93,0x58,0x6F,0x49,0xD4,0x5D,0x1E,0xEA,0x3D,0xE8, + + 0x09,0x06,0xF2,0x23,0x38,0x74,0x45,0x0E,0x61,0xC6,0xBF,0x4C,0xB5,0xE0,0xA9,0xC3, + + 0xFB,0xE0,0xDA,0x7F,0xBF,0x2D,0xE1,0x19,0x7E,0x8E,0xCC,0x56,0x22,0x43,0xFA,0xB2, + + 0x77,0x16,0xB8,0x14,0x19,0xAF,0xFA,0x95,0xC2,0x7B,0x3A,0xFE,0x35,0x52,0xA7,0xB4, + + 0xBD,0x47,0x8D,0xBC,0x1A,0x23,0x33,0xB2,0xC8,0xEC,0x53,0x1C,0xE2,0x3D,0x6B,0xB7, + + 0xD2,0xB4,0x18,0x4E,0xAF,0x02,0xC2,0xE1,0xCC,0xFF,0x93,0x1D,0x20,0xE1,0x32,0xF1, + + 0x4C,0x91,0x65,0x02,0x36,0xDD,0xF4,0x1A,0x26,0x51,0xE4,0xC4,0x3C,0x5B,0xA8,0x6D, + + 0xC4,0x2E,0x78,0xC7,0x34,0x41,0x44,0x02,0xA7,0x93,0x82,0x87,0x56,0x92,0x1D,0x13, + + 0xA2,0x01,0xFB,0xBB,0xBC,0xF0,0xA5,0x50,0x60,0x7F,0x2A,0xFB,0x74,0xA1,0xED,0x32, + + 0xB3,0x3E,0x6D,0x17,0xD1,0xF1,0x6E,0xAB,0x34,0x0E,0x7D,0x37,0x98,0xB1,0x7C,0xCF, + + 0xCF,0x6D,0x44,0xD5,0x0E,0xD0,0xC3,0xCA,0x9B,0xB8,0x43,0x43,0x97,0x6B,0x52,0xAF, + + 0xC5,0xC2,0x3C,0xB4,0xC0,0xD0,0x26,0xCB,0x1B,0xCA,0xBC,0xF0,0xF4,0xF8,0x7F,0xEC, + + 0x87,0x36,0xDB,0xFA,0xB0,0xD4,0x17,0xF3,0xE5,0xB7,0x8A,0x0A,0xEC,0xB4,0xEA,0xA1, + + 0x4C,0x26,0xD5,0x28,0x42,0xBB,0xC7,0x0D,0x84,0x66,0x02,0x35,0x56,0x28,0xE8,0xEA, + + 0x32,0x33,0xE2,0x87,0x3A,0xFB,0x1D,0x55,0x17,0xF8,0xF6,0x3B,0x7A,0xDA,0x0E,0x0A, + + 0xC4,0x38,0x94,0x5E,0x31,0x12,0x85,0xE0,0xB4,0x24,0x2D,0xD8,0x16,0xF6,0xB1,0x8B, + + 0x47,0x8B,0x30,0xC8,0xBA,0x98,0xF7,0xEB,0xEC,0x46,0xE7,0x6F,0xCC,0xE1,0xEF,0x23, + + 0xA1,0x64,0xB9,0x9E,0x8E,0x6A,0x10,0xC4,0x5A,0x46,0x3F,0x8D,0x9D,0x73,0x18,0xF6, + + 0x1D,0x7D,0xDE,0xB1,0xBF,0xB1,0x60,0xC2,0xDD,0x11,0x9E,0x8C,0x85,0xF2,0x10,0x7A, + + 0x06,0xDF,0xDC,0xAD,0x0B,0x4C,0xF9,0x0A,0x17,0x2C,0xF8,0xE7,0x7E,0x3D,0xDF,0x5B, + + 0x45,0x6F,0xD9,0xF2,0xB8,0xBC,0x08,0x2C,0x38,0xD6,0xCF,0x15,0x71,0xBC,0x55,0x28, + + 0x9F,0x84,0x91,0xD9,0x56,0x8E,0x06,0xAD,0x16,0x13,0xC1,0xC3,0xDC,0xBF,0xEC,0x24, + + 0x06,0x82,0xC0,0xB5,0x9F,0xD6,0xAF,0xBB,0xB5,0xD6,0xB6,0x42,0x10,0xCB,0x3F,0xB1, + + 0x07,0x41,0x48,0x90,0xDC,0x63,0xB6,0xB4,0x43,0xA3,0x08,0xDC,0x99,0x2C,0x13,0xFF, + + 0x70,0x01,0xBA,0x9B,0x93,0x91,0x59,0x94,0xC6,0x00,0xE9,0x2D,0x30,0x9D,0xA4,0x63, + + 0x72,0xBC,0xC9,0xA4,0x1C,0xD5,0xB5,0xAA,0x34,0xD5,0x66,0xD8,0x2E,0xEE,0x55,0x33, + + 0x66,0xA7,0xB3,0xE1,0xDA,0x07,0xF7,0x57,0x29,0xE1,0x8A,0xE4,0xF1,0x62,0x4A,0xBB, + + 0xFC,0xDE,0xF2,0xA7,0xD9,0x8E,0xF0,0xFA,0xD7,0xD1,0xA7,0x96,0xD1,0x61,0x50,0xB2, + + 0xB2,0x5B,0x23,0x56,0xB4,0xC0,0xD1,0x90,0x22,0x06,0xDD,0x1E,0x73,0xEC,0x49,0x6B, + + 0xE7,0xB2,0xAB,0x51,0x6F,0x63,0xFC,0x6A,0xA8,0x33,0x86,0x17,0xFD,0x21,0x39,0x4A, + + 0xA9,0xB5,0xB9,0x92,0x19,0x0B,0x1A,0x05,0xCA,0x54,0xED,0xA8,0x26,0xA0,0x32,0x67, + + 0x88,0x04,0x4A,0x9C,0x57,0xA8,0xE5,0xBA,0xD8,0x24,0x22,0xC3,0x66,0x49,0x2B,0x6B, + + 0x7D,0x06,0xBE,0x89,0x9A,0x22,0x29,0x4B,0xA8,0x4B,0x34,0x1C,0xEB,0xCE,0x35,0xBC, + + 0x7D,0x48,0x9B,0xE2,0x78,0xF8,0x23,0x89,0xC9,0x94,0xC4,0x24,0xDF,0x98,0xD4,0xCC, + + 0x0E,0x70,0x71,0x4B,0xCE,0xFA,0x16,0xAE,0xD8,0x4F,0xD7,0xCC,0x42,0x8C,0x5D,0x65, + + 0xE0,0xBC,0x4A,0xAD,0xC9,0x6D,0xB8,0x6B,0x6D,0xAB,0xDE,0x7E,0x5F,0x21,0x79,0xB3, + + 0x71,0xA3,0x64,0xD2,0xF1,0x98,0xB0,0x92,0x02,0x6D,0x13,0xB9,0xD2,0x28,0x75,0x61, + + 0xFD,0xA0,0x68,0x6B,0x47,0xCA,0x61,0x8A,0x01,0xE4,0xDF,0x3B,0x83,0x69,0x97,0x32, + + 0x28,0x50,0x86,0x95,0x4C,0x34,0xD4,0x21,0x22,0x5D,0x4B,0x5A,0x54,0x20,0x10,0x54, + + 0xAC,0x50,0xB2,0xA9,0xD3,0x11,0x14,0xB5,0x1E,0x71,0x25,0x73,0xEF,0x79,0xE9,0xA5, + + 0xE8,0xE3,0x01,0x8C,0x38,0x0F,0xEA,0x25,0xA9,0x12,0xB5,0xDF,0xC7,0xC2,0x37,0x62, + + 0xDD,0x15,0x09,0x68,0xB1,0x72,0x8D,0x35,0xEB,0x47,0x1E,0x31,0xF2,0x86,0xD1,0xDA, + + 0x16,0xC1,0xFA,0x74,0x58,0x83,0x0A,0xEF,0x2C,0x1A,0x8E,0x1B,0xD1,0x36,0xF3,0x9F, + + 0xB6,0xC8,0x9A,0x6E,0xD8,0x56,0x66,0x03,0xA5,0xFA,0x1C,0x9C,0x62,0x71,0x54,0xFE, + + 0x9A,0x6A,0xBB,0x75,0x5B,0x55,0x34,0x41,0x34,0xE9,0xCC,0xAA,0x72,0xA6,0xE4,0xA3, + + 0x18,0x08,0x7A,0x61,0x47,0x94,0xBB,0x00,0x29,0x47,0xD8,0x1D,0xAB,0x3A,0x2F,0xFB, + + 0x89,0xC7,0x59,0x8D,0x1C,0x23,0xD6,0x28,0x02,0xE7,0x56,0x6C,0xC2,0x70,0xE4,0x58, + + 0x40,0x1F,0x22,0x74,0x06,0x74,0xDE,0x38,0x6A,0x1B,0x5F,0xBE,0x80,0xF4,0xB3,0xEB, + + 0xAE,0x18,0x27,0xEB,0x4F,0x85,0x49,0x4B,0xEC,0xA7,0x13,0x50,0x0F,0x3B,0x21,0x2D, + + 0x08,0xE4,0xE8,0x6D,0x39,0x94,0x5F,0x2C,0x64,0xED,0xE1,0x95,0x12,0x4A,0xF1,0xF1, + + 0xDE,0x8D,0xF1,0x7C,0xC9,0x32,0x28,0x7A,0x96,0x18,0xA4,0xE8,0x76,0x3E,0xA2,0x58, + + 0xD7,0x3D,0x11,0xDC,0x4C,0xBD,0xF9,0x67,0x80,0xEB,0x76,0xF0,0xFE,0x3D,0x87,0xD9, + + 0x95,0x5F,0xAF,0x4B,0x46,0x7F,0xE4,0xEE,0x3E,0x88,0xDD,0x94,0x7D,0x5C,0xE3,0x9B, + + 0x28,0xCB,0x0F,0x04,0xCA,0x39,0x01,0x63,0xEF,0x8B,0xCF,0xF9,0xEF,0x3D,0x79,0x06, + + 0x89,0xE3,0x5B,0x82,0x16,0x38,0x0D,0xA6,0x46,0xC8,0x3A,0x69,0xA9,0x9C,0x55,0xFD, + + 0x03,0xC3,0x44,0x89,0xE4,0x77,0xDF,0x48,0x93,0xCB,0x54,0xA4,0x59,0xE9,0x8A,0xA6, + + 0x51,0x9C,0x61,0x87,0xFE,0x1D,0xF1,0xA3,0xAE,0xAC,0x1D,0x48,0x1E,0x43,0x10,0xD1, + + 0x24,0x7C,0xE1,0x92,0x93,0xE1,0x3A,0xB7,0xC3,0x8D,0x3D,0xCA,0x22,0xA2,0x73,0x39, + + 0x6C,0xF5,0xBE,0x75,0x12,0x0F,0x12,0x66,0xBA,0x80,0xD0,0x1A,0xF7,0xE7,0xF9,0xA1, + + 0x33,0xD5,0x49,0x4C,0x8B,0x11,0xDF,0xED,0x2C,0x73,0x27,0x23,0x2C,0xD2,0x1F,0x6E, + + 0x77,0x25,0xD3,0x43,0x13,0xB0,0xC2,0x64,0x12,0x10,0x4F,0x43,0xA1,0xE2,0x49,0xE9, + + 0x7B,0x36,0xB7,0x58,0xD1,0xE9,0xF9,0x82,0x15,0x87,0x39,0xAB,0x96,0x1A,0x4A,0x68, + + 0xFB,0x86,0x4A,0x8A,0x1E,0x4A,0xF2,0xAA,0x26,0xA6,0x88,0xC0,0xE9,0x84,0x51,0x5D, + + 0x0B,0x29,0x79,0xE0,0x92,0x14,0x38,0x2B,0x31,0xCD,0x7A,0xFE,0xA1,0xAB,0x1B,0xF0, + + 0x0F,0x87,0xB1,0x2F,0x63,0x27,0xD4,0x51,0x1A,0xC2,0xD5,0x1E,0xDF,0x3A,0x2C,0xDB, + + 0xC1,0x26,0x4C,0x65,0x4B,0xA3,0xAA,0x32,0x45,0x12,0xF3,0x94,0xDC,0x8B,0xD1,0x72, + + 0xF6,0xFD,0x83,0xEE,0xC8,0x13,0xD1,0x5C,0x92,0x29,0xEA,0x6A,0xD9,0x5C,0xAA,0x4B, + + 0x25,0x79,0x94,0xEA,0xF6,0x0E,0x48,0x7E,0xCA,0xDB,0xFE,0x62,0x7F,0x5D,0x50,0x67, + + 0xBD,0xEE,0xDD,0xFB,0xF6,0x59,0x2D,0x58,0xCA,0x65,0xA3,0x66,0xD2,0xED,0x7C,0x45, + + 0xFF,0x3B,0xBD,0xE1,0x74,0x0C,0xDA,0x61,0x53,0x7B,0x7E,0xFD,0x5F,0xE7,0xE4,0xD3, + + 0x20,0x9A,0xDC,0x0E,0x91,0x39,0x8F,0x38,0x67,0xB0,0xCA,0x9F,0x9F,0x61,0x4C,0xC1, + + 0x43,0x9C,0x28,0x6B,0xCA,0xF0,0x41,0x36,0x6F,0x53,0x0D,0x87,0xC0,0x9F,0xA1,0x7E, + + 0xAC,0xD3,0x85,0x14,0x17,0xB8,0xEA,0xA2,0xC0,0x5F,0xCB,0x8A,0x1F,0xA3,0x2F,0x78, + + 0x96,0x72,0xBD,0xB7,0xA3,0x6E,0x05,0x23,0x1A,0xEE,0x58,0x77,0x8B,0xB1,0x30,0xDD, + + 0x00,0x20,0xEC,0x61,0x55,0x94,0xC6,0xFD,0x8A,0x7B,0x73,0x99,0x9F,0x84,0x12,0x44, + + 0xCC,0x73,0xB4,0xB3,0xB5,0x91,0xD4,0x78,0xF3,0x41,0x00,0x72,0x28,0x0B,0xC5,0xD9, + + 0x2A,0x1B,0x9D,0x2F,0xEE,0xFB,0x43,0x12,0x06,0x96,0x59,0x75,0xE2,0xFE,0x33,0x40, + + 0xB7,0x38,0xE5,0x27,0xFA,0xB8,0xD8,0xE8,0x8C,0xA3,0xAD,0xF7,0xFB,0xB5,0x9E,0x1A, + + 0xD3,0xA5,0x59,0xC9,0x0F,0xD1,0x9A,0x35,0x6F,0x52,0xFE,0x91,0xC9,0xBA,0x13,0x1E, + + 0x2F,0x49,0xCC,0x9E,0x3C,0xD9,0x7E,0x2F,0x92,0xE4,0x2C,0x99,0xDC,0x56,0x8B,0x14, + + 0xAF,0x63,0x1F,0x10,0xAE,0xF7,0xF7,0x2B,0x81,0x98,0xB1,0x50,0x5D,0x55,0xEF,0x1A, + + 0x5C,0xF5,0x70,0x61,0x99,0xA0,0xFF,0x3B,0xB6,0x99,0x29,0x8E,0xC5,0x54,0x04,0xD4, + + 0xF8,0x68,0x52,0x3E,0x77,0xB3,0xF2,0x2C,0xFC,0xDF,0x2B,0x48,0x78,0x87,0x0D,0xDE, + + 0xD3,0xD9,0x5A,0xCE,0x9C,0xD8,0xAC,0xE9,0x99,0x7E,0xDE,0x98,0x7F,0xFD,0x80,0x38, + + 0x74,0x35,0x53,0x3F,0xB1,0xB1,0x94,0x10,0x26,0x29,0xC0,0x6B,0xC1,0x89,0xDC,0xDC, + + 0x7B,0x5A,0xB5,0x1F,0x1C,0xDA,0x59,0x40,0x8D,0x7B,0xFF,0xFF,0xFF,0xFF,0xAD,0x7F, + + 0x9D,0x5C,0x88,0x10,0xED,0x29,0x03,0xD3,0x30,0xE2,0xB8,0x46,0xA9,0x6C,0x4A,0xE3, + + 0x31,0xAC,0x48,0x94,0xBC,0x63,0x66,0x0C,0xAA,0xB0,0x27,0x76,0xF0,0x1A,0xBA,0x4F, + + 0x69,0x0B,0x05,0x3A,0xF5,0x63,0x87,0x23,0x32,0xCF,0xA9,0x5B,0x51,0x6F,0xC2,0x81, + + 0x6A,0x32,0x9F,0x43,0xA2,0xB2,0x40,0xBB,0xC7,0xE3,0xDC,0xB1,0xD3,0x88,0x02,0x26, + + 0xFD,0x68,0xCA,0x51,0xB1,0x22,0x2E,0xC0,0xB7,0x4D,0xB0,0x20,0x69,0x6B,0x5F,0xA1, + + 0x77,0xF5,0xB0,0xD6,0x31,0x47,0x98,0x45,0xEC,0x48,0xA0,0xF6,0x56,0xBE,0x7F,0xE0, + + 0x5C,0xA9,0x91,0xD4,0xF1,0x06,0xD5,0x90,0xE0,0xB9,0xB1,0x21,0xAD,0xEB,0x10,0x57, + + 0x66,0x85,0x93,0x40,0x30,0x21,0xA6,0x02,0xE1,0x29,0xDB,0x97,0x51,0x2F,0x3C,0x68, + + 0x63,0x07,0x3A,0xEC,0x43,0x2E,0xA8,0x28,0x48,0x48,0xFA,0x4E,0xA7,0x66,0x34,0xFA, + + 0x3F,0x96,0x3E,0x7E,0xA6,0x6B,0x24,0x0D,0xC4,0xEF,0xE5,0xFE,0xF8,0xF6,0x83,0x3B, + + 0xB4,0xB5,0xAD,0x4C,0x39,0xF5,0x13,0x5B,0x23,0xAB,0xAB,0xD3,0x5B,0x67,0x35,0x30, + + 0x41,0x02,0x4B,0x77,0x9F,0xA9,0x0A,0xF9,0xDE,0x50,0x37,0xB9,0x91,0xDB,0x5C,0x61, + + 0x29,0xAC,0x92,0x54,0x79,0x4C,0xB5,0x28,0x0E,0x0E,0xF2,0x0E,0x19,0x92,0xD9,0x1F, + + 0x38,0x09,0xF2,0x0C,0x13,0x22,0x22,0x0B,0x33,0x44,0xE2,0xAC,0xE4,0x62,0x1A,0xBC, + + 0x6F,0xA1,0xBB,0xCF,0x9F,0xD4,0xC5,0x8E,0x23,0x4D,0xAB,0xEF,0xB4,0x0D,0xF1,0xC6, + + 0x74,0x14,0xAB,0xFD,0x27,0x22,0x1A,0x3E,0x01,0x2C,0xE3,0x2D,0xD3,0x60,0x22,0xA9, + + 0x4C,0xBD,0x68,0x00,0x78,0x80,0xEF,0xD3,0x58,0x2F,0xC4,0xD3,0x7C,0xDB,0x1B,0xA0, + + 0x25,0xAE,0x4C,0x51,0x85,0x3B,0x47,0x8B,0x67,0x92,0xED,0x30,0x7F,0x1A,0x93,0xE1, + + 0xA1,0xBF,0x8D,0xA9,0xCF,0x12,0xCC,0xA1,0x9B,0x4F,0x0F,0x0A,0x72,0x6E,0x37,0x20, + + 0xD1,0x8C,0x19,0x11,0xB3,0xDA,0x54,0x73,0x40,0x2C,0xC4,0x99,0x54,0x85,0xF0,0xA2, + + 0x9D,0x48,0x3F,0x26,0x93,0xBE,0x6A,0x44,0xED,0xA2,0xDC,0xAC,0x32,0x7B,0xF4,0x2F, + + 0xCA,0xA4,0x06,0xA6,0x90,0x33,0xAA,0x83,0x45,0x5A,0x12,0x9E,0xD2,0x8A,0xFE,0x8F, + + 0x91,0x84,0xBA,0x27,0x30,0x7E,0x5D,0xF5,0xE4,0xB7,0x15,0x38,0xF1,0x36,0xE1,0x4E, + + 0xA2,0x67,0x45,0x19,0x10,0x31,0x6C,0xDC,0x06,0xA8,0x6E,0xC1,0xBB,0xB6,0x58,0x25, + + 0x28,0xBC,0x46,0x0C,0x76,0x7A,0x7E,0xCA,0xDF,0x56,0xD7,0xCA,0xAE,0x70,0xBF,0xB4, + + 0xD5,0xA8,0xB0,0xF9,0x19,0x34,0x67,0xD7,0x15,0xA6,0xA6,0x42,0xD5,0x74,0x16,0x31, + + 0x14,0x6B,0xC3,0x2D,0xBB,0xAA,0x2F,0x42,0x6B,0x57,0x57,0x2F,0x35,0x87,0xBC,0xA1, + + 0xAF,0x51,0x0F,0xBC,0x0C,0x90,0xA6,0x05,0x1E,0x66,0x60,0x7A,0xCA,0x78,0x56,0xD5, + + 0x3A,0x07,0x4E,0x39,0x59,0x4D,0x68,0x4C,0xE5,0xAA,0x8C,0xAC,0x0E,0xD3,0x74,0x74, + + 0x9C,0xE8,0xF6,0x0C,0xF6,0xB5,0xCE,0xCE,0x4D,0xA8,0xA0,0xFB,0x5F,0xD2,0x80,0xAF, + + 0x96,0x61,0xBF,0x4F,0x9B,0xCF,0x5F,0xEC,0x95,0xA1,0x77,0x9F,0x98,0x5A,0x1B,0xC8, + + 0x81,0x5D,0xCE,0x3F,0x1A,0xB5,0xC8,0xDD,0x69,0x57,0x7F,0x8E,0x58,0xFC,0x58,0x30, + + 0xCC,0x8F,0xB2,0x82,0x1E,0xD9,0x51,0xA6,0x47,0x83,0xF8,0x6E,0xB5,0x1F,0x95,0x4D, + + 0xD0,0xDC,0x90,0x68,0x94,0xAC,0x10,0x50,0xF0,0xCD,0xB4,0xB2,0x57,0xB9,0xF4,0xF0, + + 0xF6,0x7E,0x89,0x65,0x6D,0xAE,0x08,0x61,0x65,0xFF,0x71,0xE2,0x60,0xE8,0x82,0xFE, + + 0x87,0xD8,0x16,0x55,0x34,0xD8,0x01,0x5C,0x44,0xCE,0x79,0xB7,0x9B,0xA1,0x27,0x24, + + 0xF1,0xE8,0xEA,0x06,0xB5,0xA2,0x38,0xE7,0xBA,0x75,0xC8,0x36,0x52,0xEB,0xBC,0xA3, + + 0x21,0x7A,0xE9,0xB4,0xBB,0x2E,0x06,0xD2,0xCA,0x63,0x7C,0xF4,0x39,0x64,0xDE,0xDD, + + 0xC4,0x29,0xB1,0x56,0x37,0x2E,0xB1,0xAF,0xC7,0x1B,0x2E,0x89,0xD0,0x3C,0x37,0x6E, + + 0x78,0x0A,0x6E,0xB5,0x15,0xA4,0xA9,0xB3,0x83,0x63,0xC3,0x95,0x7B,0x6C,0x97,0x8E, + + 0x0B,0xB6,0xA0,0x8A,0x1E,0x43,0x0C,0x17,0x24,0xC5,0xF2,0xF8,0x5F,0xB8,0xBF,0x9A, + + 0x66,0x18,0x92,0xE0,0x9E,0xA4,0xC1,0x45,0x2D,0xCB,0xBD,0xCF,0x38,0xBC,0x7D,0x27, + + 0x30,0x21,0xCB,0x6D,0x63,0xA4,0xCC,0x58,0xB8,0xA9,0x8D,0x5F,0xFE,0x47,0x9E,0xEA, + + 0xF5,0x89,0xD4,0xDD,0x3C,0x34,0xC4,0x45,0xAF,0xBE,0x9B,0x37,0x34,0x62,0x1C,0x72, + + 0xE7,0x1D,0x67,0x2C,0x5D,0xA3,0x22,0xCE,0x86,0x7D,0x0D,0x8C,0xF2,0x67,0xEA,0x1B, + + 0xB1,0xCF,0xB0,0xC7,0xBC,0xAB,0x6D,0x3B,0x69,0x8F,0x05,0x9C,0xDD,0xEE,0xCF,0xD8, + + 0xFA,0x86,0x9B,0xCD,0xBC,0x8C,0xE4,0x7A,0xBE,0x6E,0x75,0x8D,0x72,0x65,0xFD,0x55, + + 0x2E,0x50,0x63,0x9A,0x3E,0x25,0xED,0xCC,0x6E,0x30,0x6B,0x0D,0x7C,0xE9,0x49,0xF1, + + 0x14,0x3B,0x3E,0xA9,0x1C,0xED,0x63,0x59,0xD5,0x43,0x0C,0x39,0x66,0xBD,0x54,0xA3, + + 0x19,0x3E,0x2C,0xB7,0x80,0x1A,0x3A,0x99,0x8C,0xE0,0x26,0x49,0xBD,0x38,0x5D,0x87, + + 0x44,0x47,0x9B,0xF7,0x94,0x7F,0x4E,0x4B,0x76,0x90,0x56,0xE7,0xF8,0x59,0xB8,0xED, + + 0xCF,0xC2,0x37,0x39,0x9D,0xEE,0x2B,0x8E,0x0E,0x22,0x22,0x88,0x90,0xB2,0x2F,0x20, + + 0xFA,0x97,0x9D,0x24,0xB4,0x57,0xB0,0x80,0x25,0x6B,0x96,0x15,0xFA,0x29,0x13,0x2C, + + 0x21,0xF5,0x94,0x54,0x32,0xBC,0x04,0x70,0x45,0xA0,0x6C,0x06,0x4D,0x24,0x5F,0x28, + + 0x15,0x09,0x31,0xA5,0xF5,0x48,0x0D,0x81,0xA5,0xA9,0x8D,0xC0,0x0B,0xF9,0x15,0x3B, + + 0xEB,0xD5,0xD7,0x35,0x1B,0xB8,0x45,0xA3,0xA7,0xD8,0x83,0xF1,0x16,0x74,0x58,0xA6, + + 0xC5,0x91,0xFF,0xA3,0x99,0xB3,0x0C,0x1B,0x18,0x77,0x11,0x87,0xA4,0xA9,0x9D,0x78, + + 0x45,0x28,0x96,0x60,0x91,0xB4,0xD9,0x9E,0x06,0x10,0x29,0x3A,0x11,0x0F,0x79,0x69, + + 0xA8,0x1F,0xF9,0x0D,0x75,0x92,0xA4,0xBA,0x80,0xDE,0x12,0x82,0x9F,0x73,0x51,0xA2, + + 0x58,0x38,0x52,0x1B,0xB7,0xA1,0xC0,0x3F,0xE3,0x0C,0x87,0x4C,0xD7,0xE0,0x60,0x56, + + 0xBB,0x41,0x86,0x8A,0x69,0x3C,0x4E,0x3A,0xD1,0xD3,0x5C,0x1D,0xF2,0xF1,0xAE,0xEF, + + 0xBB,0xC0,0x6E,0x3C,0xBD,0xF5,0xF9,0x18,0xED,0xDE,0xAC,0x5A,0x8C,0x40,0xCE,0x84, + + 0x53,0xE2,0x9F,0xE8,0x1F,0x36,0x17,0x4B,0xEC,0x55,0xE5,0xEF,0x05,0x73,0x17,0xFC, + + 0x12,0x90,0x36,0x2F,0xB7,0xB0,0xCE,0x99,0xAC,0xD0,0xE5,0xFA,0x14,0xBB,0x23,0x07, + + 0x24,0xA1,0x15,0x80,0x12,0xEC,0x02,0x47,0xAB,0x04,0x1A,0xA0,0x52,0xC3,0xA8,0x62, + + 0x63,0x1D,0x48,0x91,0x96,0x29,0x0E,0x52,0x21,0x2C,0xFD,0xB0,0x57,0xDF,0x39,0x31, + + 0x0D,0xAD,0x41,0x85,0xDE,0xDD,0x2B,0x91,0x51,0x03,0xEE,0x5A,0xD6,0x40,0x77,0x16, + + 0x20,0xDC,0x8F,0x91,0x9F,0x63,0x67,0x37,0x20,0xC0,0x1E,0x8A,0xC1,0xDE,0xE0,0x33, + + 0x6A,0xD7,0x92,0x46,0xA5,0x66,0xDB,0x02,0x4C,0x02,0xEE,0xC5,0xA6,0x67,0xFC,0x32, + + 0xFC,0xA1,0x82,0x41,0x32,0xC5,0x64,0x21,0xC1,0x41,0x1C,0x2A,0x5D,0x7B,0x3F,0x46, + + 0x23,0xD9,0x41,0xE3,0x79,0xD7,0xC1,0x41,0xE6,0x06,0x88,0x61,0x07,0x0A,0xDB,0x57, + + 0x4B,0xA6,0xF7,0x68,0x70,0x2E,0x38,0x13,0xF0,0x03,0xA4,0x86,0xFD,0xB3,0xB6,0x6A, + + 0x2C,0xD7,0xA2,0x0C,0x9A,0x34,0x3F,0x0C,0xD5,0xB5,0x02,0x32,0x30,0x9C,0x1C,0x2A, + + 0x2D,0xBF,0x35,0xFE,0x1F,0x6B,0x20,0xD3,0xFA,0x08,0xA4,0x11,0xD4,0xCF,0x5D,0xEB, + + 0xC8,0xA7,0xEE,0x73,0x3B,0x4F,0xBE,0x67,0x3D,0x16,0x01,0x5F,0x33,0x1B,0x30,0x69, + + 0x09,0x14,0x5F,0xF5,0xE5,0x69,0x42,0xBD,0x6C,0xB4,0x50,0x7D,0xDD,0x47,0xE6,0x2A, + + 0xF9,0x69,0x42,0x8A,0x3A,0xA7,0xAA,0xEA,0xCA,0x6B,0x02,0xE8,0x59,0xD1,0x71,0xE4, + + 0xE0,0xEC,0xF4,0x2F,0x67,0x22,0xA5,0x84,0x4B,0x40,0x49,0x5B,0xFA,0xC2,0x7B,0x74, + + 0x61,0x1F,0xA6,0x70,0x9C,0x24,0x6B,0x09,0x84,0x03,0x13,0xAD,0x51,0xC1,0x12,0xDF, + + 0x6E,0xF0,0x4C,0xE2,0xDB,0xC1,0x24,0x81,0xCB,0x0D,0x4C,0x3A,0x11,0x4C,0xBF,0xE2, + + 0x61,0x50,0x30,0xE6,0x4C,0xCF,0x2C,0x22,0xF1,0x3E,0xAE,0x37,0x1C,0xDF,0x34,0xF2, + + 0xDE,0x17,0x4C,0x11,0xFB,0x37,0x35,0x67,0x94,0x5E,0xFA,0x98,0x98,0x40,0x7D,0xA5, + + 0x22,0xFE,0xBE,0x07,0x21,0x4C,0xD5,0x24,0x2A,0x54,0x03,0x62,0x19,0x63,0x24,0x32, + + 0x00,0x7D,0xA4,0x46,0x10,0xCC,0xA9,0xCE,0x42,0xFE,0x87,0xB7,0x42,0xDE,0x3D,0xB3, + + 0x4E,0x9D,0x7F,0x74,0x8C,0x9B,0x2C,0x00,0x22,0xA9,0x2F,0x8B,0x99,0x30,0x15,0x11, + + 0x86,0x95,0xE1,0xBB,0x1D,0x73,0x7C,0x7E,0xC2,0xD9,0x78,0x8B,0x1B,0x31,0x65,0x4B, + + 0xA1,0xB6,0x19,0xE1,0x2B,0x8B,0x5F,0x81,0x45,0x50,0x01,0x76,0x53,0xD9,0xB5,0xA2, + + 0x9F,0x55,0x59,0x8E,0x4E,0x8B,0x17,0xEC,0xA3,0x51,0x22,0x8B,0x99,0x13,0xE1,0xAC, + + 0xA7,0x1E,0x32,0xEE,0xBA,0x24,0x89,0xD8,0x3D,0x53,0x00,0xDC,0xF8,0x6E,0x6E,0xD2, + + 0x87,0x14,0x31,0x7E,0xBB,0x25,0xDE,0x3D,0xEE,0x51,0x8B,0xAF,0x49,0x28,0x2E,0x3B, + + 0x09,0xEC,0xE8,0xD2,0x1B,0x5F,0x04,0x2D,0xEE,0x39,0x9F,0xB9,0x30,0x9B,0xEC,0xBD, + + 0x2B,0x1F,0x62,0xFF,0x46,0x5E,0x19,0x3D,0xE7,0x1B,0xC6,0xA2,0x1C,0x84,0x0D,0x71, + + 0xC3,0x2D,0xF9,0xA5,0x19,0x7C,0xFC,0x7B,0xC9,0x5A,0x16,0x2C,0xF1,0xA3,0x36,0xAB, + + 0x0A,0xB6,0x79,0xA7,0x3D,0x9D,0xD9,0xE8,0xE9,0x91,0x49,0x82,0xB1,0xAC,0x3F,0xEE, + + 0x43,0x4F,0xFB,0xB2,0xBC,0x34,0x77,0x67,0x4B,0xD4,0x63,0x8F,0x77,0xD8,0x37,0xDD, + + 0x4B,0xCA,0x30,0xBF,0x50,0xEE,0xBD,0x1B,0x69,0x5B,0x97,0x7C,0x7B,0xDF,0x7A,0x00, + + 0x96,0xC1,0xE2,0xC6,0x17,0x00,0x0E,0x42,0x98,0xCF,0x2B,0x55,0x75,0x5F,0x3A,0x13, + + 0xFE,0x0C,0xA8,0x94,0x84,0x0F,0xC0,0xC1,0x78,0xC7,0xE6,0x9A,0x39,0x4A,0xE5,0x86, + + 0xC7,0x71,0x61,0x82,0x90,0xA6,0x03,0x07,0xF7,0x23,0xEA,0x27,0xEB,0xD3,0xFD,0xE9, + + 0xA1,0x85,0x12,0xF5,0x39,0x5E,0x10,0x90,0x66,0x82,0x6C,0x33,0x29,0x22,0x1F,0x85, + + 0xEF,0x95,0xF0,0x66,0x56,0x29,0xF0,0x2D,0xC4,0xC0,0xCE,0x5A,0x9C,0xE7,0x76,0x67, + + 0x95,0x8D,0x23,0x69,0x40,0x7E,0xF8,0xA9,0x74,0x81,0x7A,0x0D,0xDA,0x63,0x06,0xB3, + + 0x06,0x99,0xB8,0x40,0x31,0x04,0xBD,0x01,0x3D,0x84,0xB9,0x37,0xF4,0x87,0x6B,0xBB, + + 0xC8,0x83,0xE9,0x6C,0xB6,0x3C,0xC6,0x95,0x45,0xC3,0x79,0xB7,0xCF,0xE6,0x8C,0x45, + + 0xAD,0x77,0xDA,0xE6,0x68,0xE5,0xF2,0xAA,0x59,0x8A,0x01,0x1F,0x5A,0x50,0xBA,0xF8, + + 0xA1,0x02,0xEA,0x8B,0xE2,0xAF,0x13,0x48,0xEC,0x38,0x04,0x1A,0xD0,0x64,0x43,0x41, + + 0x6A,0x87,0x63,0x8A,0x84,0xE8,0x73,0xBE,0x33,0xCC,0x12,0x5C,0xB0,0xE9,0xAC,0xF9, + + 0x0F,0xA3,0x4B,0x47,0x3C,0x34,0xC4,0xB9,0x5C,0xA6,0xDD,0x17,0x36,0xFA,0x27,0x0D, + + 0xEF,0x7A,0xE2,0xCA,0x1A,0xD0,0x94,0x08,0x0D,0x3C,0x66,0x52,0xA7,0x82,0x91,0x1D, + + 0xE6,0x9C,0x51,0xFB,0xE8,0x50,0x5A,0xE0,0xEE,0xDD,0x3A,0xBE,0xE4,0xE5,0x9C,0x39, + + 0x4C,0x8E,0x5C,0x7E,0x3F,0x51,0x2A,0x6C,0x69,0xC8,0x91,0x62,0xDD,0xFF,0x8C,0x25, + + 0xEE,0x8B,0xF9,0xDF,0x74,0x24,0x83,0x1D,0x30,0x45,0x2B,0xFB,0xDC,0x52,0x3B,0xE0, + + 0xE5,0x1A,0x9C,0x04,0xA5,0x4E,0x14,0xA2,0xE6,0xCC,0x18,0xD5,0x40,0x06,0x54,0xB6, + + 0x16,0xB5,0xD4,0x14,0xA4,0x8F,0x83,0x50,0x63,0xD3,0xA9,0x3C,0x76,0xD8,0xA2,0x01, + + 0x86,0xE0,0x0A,0x65,0x18,0x4F,0x5B,0xDD,0x47,0xB7,0xEF,0xA5,0x47,0x5B,0x95,0x6C, + + 0x04,0x62,0x95,0x68,0x19,0xBE,0x97,0x37,0xE7,0x31,0x83,0xD7,0x95,0x0C,0x1C,0xF3, + + 0x42,0x3B,0x50,0xA4,0xDD,0x45,0x91,0x80,0xA7,0x5E,0x34,0x26,0xCD,0xFC,0x12,0xE3, + + 0x6F,0xE4,0x47,0x91,0x39,0x69,0x9A,0x10,0xE5,0xD1,0xDC,0xE7,0xCA,0x44,0xF7,0xBD, + + 0xCC,0x37,0x56,0xFB,0x85,0xD6,0xF2,0xF3,0x64,0x1A,0x74,0x88,0x8E,0x49,0x59,0x59, + + 0x83,0x4C,0x29,0x1D,0x0C,0x18,0x98,0x91,0xA4,0x27,0x82,0x94,0xF4,0x0B,0x5E,0xAE, + + 0x8D,0x47,0xC6,0xC4,0x95,0x44,0xC9,0xA2,0x6A,0x5A,0x49,0xDC,0x1E,0x07,0x67,0xAB, + + 0x8C,0x38,0xF0,0xEB,0x7D,0x34,0xFA,0xBE,0xED,0xD9,0x41,0xC0,0x53,0x26,0x93,0xE9, + + 0x53,0x37,0xDF,0xA8,0x41,0xB5,0x7F,0x6B,0xA4,0x98,0x4C,0xD0,0x94,0xF7,0x17,0xBF, + + 0xC5,0x96,0x50,0xE0,0xBB,0x39,0x5F,0xF1,0x76,0xDF,0x81,0x8B,0x81,0x54,0xCD,0x37, + + 0xE6,0xE7,0xB2,0xD0,0x1C,0xD0,0x74,0x68,0xAB,0xCA,0xC9,0xB1,0x5A,0xE7,0xA1,0x50, + + 0xAA,0xBC,0x90,0x7F,0xD6,0x6C,0x25,0xFA,0x50,0xFD,0x33,0x43,0xDE,0x22,0x66,0xB9, + + 0x55,0xDC,0xD9,0xF2,0x74,0x9D,0x0F,0x99,0x11,0x23,0x93,0x7B,0x1B,0xBC,0xC7,0xFB, + + 0x2D,0x9B,0x89,0x7F,0x54,0xBC,0x6D,0x7C,0x54,0x42,0x4B,0x9D,0x00,0xBE,0xA3,0x29, + + 0xDC,0x51,0x27,0xA0,0xC4,0x03,0x42,0xDF,0xAB,0xB1,0x03,0xD7,0xD4,0xED,0xC0,0x76, + + 0xEA,0x62,0xB2,0xE7,0x3F,0x8C,0x0B,0x43,0x3D,0xE7,0x27,0xD6,0x19,0x02,0x3E,0x61, + + 0xD4,0x19,0xA6,0xA5,0x40,0xD3,0xBD,0x52,0xE2,0xE4,0xC3,0x6A,0x3B,0x06,0x08,0x77, + + 0x6A,0x80,0x5D,0x52,0x5B,0x73,0x8C,0xF1,0x85,0xE7,0xB9,0x6A,0x30,0xCC,0x3E,0x31, + + 0x80,0x18,0x3F,0x2A,0x14,0x26,0x70,0x86,0x71,0xA5,0xC8,0x94,0x2D,0x6B,0x70,0xD2, + + 0x92,0x23,0x71,0xD0,0x19,0xB3,0x3A,0x30,0x42,0x25,0xB8,0x30,0x5C,0x68,0xFD,0x23, + + 0x7D,0x63,0x31,0xB4,0x31,0xA6,0xE9,0x92,0xD1,0x28,0x65,0x95,0x2D,0x69,0xE6,0xB3, + + 0x2F,0xFA,0x09,0xD5,0xDD,0xD8,0x07,0xB9,0xC2,0xCA,0xD3,0x74,0x70,0x61,0x62,0x0A, + + 0x17,0x0C,0xCA,0xBD,0xF1,0x6B,0x87,0x15,0x80,0xD9,0x46,0xC4,0x5E,0x25,0x74,0xBD, + + 0x19,0x44,0x88,0xF3,0x7A,0x0E,0x7C,0x00,0xA2,0x4A,0x7D,0xFC,0x0D,0x2B,0x00,0xE1, + + 0xD5,0x47,0xC9,0x0C,0x67,0xD7,0x43,0x6E,0x21,0x49,0x6C,0x5E,0xF6,0x06,0x75,0xA9, + + 0x0B,0x0F,0x9D,0xB8,0x9F,0x31,0x25,0x04,0x03,0x3A,0xD2,0x3D,0xDF,0x71,0x3A,0xCA, + + 0x93,0x61,0x7B,0xC8,0x18,0x24,0xAB,0x06,0xC7,0xEA,0xDE,0x6B,0xFB,0xE4,0x2A,0x12, + + 0x85,0xF1,0xB2,0x4C,0xAE,0xA8,0xCD,0x90,0x27,0x00,0x1E,0x1E,0x1A,0x2D,0x7B,0xB6, + + 0x26,0x03,0x03,0xCD,0x6C,0x85,0x1A,0x29,0xCE,0x67,0x93,0x8F,0x58,0x66,0x33,0x7E, + + 0x76,0x00,0xD9,0x79,0x9D,0x0D,0x24,0xEB,0xCA,0x47,0xA3,0x1F,0x9A,0xEF,0xC0,0x05, + + 0x63,0x30,0xD4,0x9E,0x4C,0x90,0x3C,0xC2,0x9D,0x5C,0x9C,0xBC,0x8D,0x79,0x19,0xAD, + + 0xE9,0x40,0xF2,0x24,0xDA,0x92,0xCC,0x34,0x13,0x17,0xFC,0xFE,0x9B,0x7E,0x1A,0xE1, + + 0xB4,0xB6,0x51,0x87,0x71,0xBF,0x2D,0x9F,0xCA,0xA7,0x90,0xD7,0x1B,0xDB,0x5D,0x79, + + 0x8A,0x17,0x56,0xDA,0xCE,0x18,0x75,0xD3,0x1E,0x5D,0x62,0x91,0xF7,0xE0,0x17,0xCA, + + 0x24,0x87,0xA8,0x64,0x66,0x16,0x6A,0xC8,0xED,0xA2,0x9C,0x2C,0xF7,0x56,0x8C,0x94, + + 0x0E,0x1D,0xBE,0xD1,0x3F,0x5B,0xAC,0x92,0x9C,0x28,0x58,0x70,0x2C,0x37,0x46,0x43, + + 0x3B,0x7B,0xA5,0x9A,0x11,0x3B,0x1D,0xFD,0x60,0x4A,0x45,0x96,0xEA,0x7D,0x4B,0xA3, + + 0x48,0xBE,0xED,0xD4,0x3E,0x3F,0xF1,0x6E,0xE0,0xD7,0x1D,0x2C,0x0A,0x3B,0x07,0x9B, + + 0x10,0xE9,0x5B,0xB4,0x43,0xC7,0x2E,0x56,0x6E,0xD8,0x1C,0xEC,0x7C,0x50,0x91,0xFE, + + 0xC2,0x3A,0x8D,0x2C,0xD8,0x96,0xDF,0x5E,0x4B,0xC9,0x1E,0xBE,0x15,0x7F,0x21,0xA5, + + 0x8A,0x01,0x47,0x50,0x2A,0x39,0xCA,0x8D,0x09,0x41,0x98,0xDE,0x91,0x71,0x0E,0xFF, + + 0x42,0x58,0x5B,0x75,0xBF,0x76,0x1C,0x3B,0x2C,0x68,0xB6,0xDA,0x58,0xA4,0xB9,0xEC, + + 0x62,0xBD,0x46,0xAD,0xB1,0x70,0xF7,0xC1,0xEA,0xDE,0x52,0xC8,0x9B,0xD3,0xDE,0x27, + + 0x8A,0x82,0xD6,0xB1,0x19,0x0D,0x1C,0x07,0xD6,0x31,0xCB,0x0F,0x4F,0x02,0x67,0x92, + + 0xD5,0x3E,0x44,0x25,0x32,0xF3,0x37,0xA3,0x4C,0x53,0x41,0x1E,0xCA,0xD1,0xFB,0xBB, + + 0x50,0x5D,0x0B,0x7D,0xBB,0x3D,0xB8,0x39,0xF3,0x1D,0x70,0x92,0x26,0x3D,0x6B,0x60, + + 0xF7,0x0C,0x36,0x69,0xB7,0x0D,0x4E,0x1F,0xC9,0x6D,0x33,0xD5,0xD8,0x1D,0x38,0x20, + + 0xCD,0x8E,0xDC,0x92,0x06,0x40,0xE8,0x41,0x6F,0x67,0x81,0x12,0x66,0x7A,0x6B,0x1E, + + 0xEF,0x8D,0x75,0x36,0x80,0x23,0xE1,0xB0,0xB4,0x6D,0xC9,0x36,0xFA,0xE6,0xBC,0xE0, + + 0xF5,0x1E,0x14,0xF5,0x69,0xE0,0xAC,0xC0,0xEF,0x16,0x01,0xD7,0xD1,0x1C,0x5A,0xB1, + + 0x6E,0x9F,0x07,0xC2,0x14,0x46,0xB0,0x0C,0xB9,0x1F,0x88,0x04,0x17,0xE5,0x7E,0x15, + + 0xD9,0x8F,0xA7,0xD2,0x15,0x72,0xF8,0x3D,0xBF,0xDF,0x80,0xF4,0x52,0xC1,0xF7,0x25, + + 0x79,0x2B,0x1E,0x29,0x90,0xA4,0x71,0x9B,0xC6,0x84,0x89,0x05,0x97,0xEE,0x7C,0x20, + + 0xEF,0xC5,0x68,0x16,0x1D,0xBC,0xB9,0x77,0x1C,0x33,0xC1,0x27,0xDF,0xE8,0x68,0x17, + + 0x67,0x87,0x11,0xAF,0xE4,0xAB,0xA5,0x15,0x6E,0x8A,0x22,0xAC,0xCD,0x4F,0x3D,0xE9, + + 0x79,0x8F,0x6A,0x0F,0x4B,0x5D,0x8D,0x8A,0xBE,0x76,0xF7,0xDE,0x49,0xAB,0x33,0x39, + + 0x44,0x85,0x90,0x32,0xAF,0x8A,0x60,0xAD,0x38,0xA9,0x8B,0xCF,0x88,0x47,0x0B,0x42, + + 0x2C,0xE9,0x7B,0x01,0xB7,0x1F,0xFB,0x3E,0x6E,0x16,0xE8,0x02,0x52,0x1D,0x31,0xB6, + + 0x08,0x1F,0x74,0x3D,0x0D,0xE3,0x63,0x68,0x4A,0x98,0x92,0x2A,0xDE,0xE1,0xAA,0x1E, + + 0x22,0x87,0xF6,0x9D,0x2C,0x7F,0x42,0x1A,0x37,0x8F,0x39,0x5E,0x05,0x2D,0x60,0xC9, + + 0x1F,0xE3,0x73,0x6F,0x92,0xEE,0x62,0xE9,0x5F,0x7A,0xF9,0x6D,0x7D,0xA0,0x2B,0x28, + + 0xE7,0xCD,0x53,0x3F,0x9B,0x86,0xBF,0xA5,0x6E,0x30,0xC1,0x84,0x20,0xAD,0x88,0xF1, + + 0x02,0x36,0x5B,0xF5,0x1A,0xDC,0x0C,0xE5,0xA6,0x72,0x00,0xC4,0xF6,0xEC,0x78,0x01, + + 0x5D,0x3E,0xE5,0x96,0xB8,0x37,0xC4,0x12,0x67,0xAB,0x7C,0x0E,0x72,0xF9,0xB6,0x70, + + 0x82,0x3F,0x42,0x47,0xB1,0xF0,0x3D,0xA6,0x87,0xF2,0xD1,0x23,0xF1,0xC8,0x79,0xD4, + + 0x4C,0x90,0xEB,0x57,0xFD,0xF1,0xFD,0x6F,0x1F,0x2E,0x7D,0x35,0x6C,0x9E,0xAF,0x4B, + + 0x02,0x6B,0x0C,0xCA,0x05,0xD6,0xB0,0x3C,0x8F,0xE5,0x7A,0x59,0x8B,0x9A,0x13,0x56, + + 0x70,0xA7,0x94,0x3E,0x7D,0xF8,0x42,0xDA,0x61,0xD7,0xC6,0x05,0x1F,0x5A,0x5D,0x39, + + 0x0A,0x9B,0x5D,0x45,0x94,0x86,0x0D,0xED,0xDE,0xA6,0x97,0xE2,0xF7,0x16,0xC1,0xAD, + + 0x65,0xF7,0x8D,0x77,0xEB,0xB8,0x75,0x77,0xE5,0x35,0x6F,0xF5,0xB8,0xB5,0x40,0x2E, + + 0xC5,0x69,0xEF,0x92,0xBC,0xFA,0x20,0xC8,0x04,0xD5,0x8E,0x50,0xD0,0xF5,0x10,0x3E, + + 0x4D,0x66,0xE6,0x1E,0xC9,0x1A,0x04,0x0A,0x7E,0x76,0x36,0x77,0x7B,0x6A,0x41,0x2A, + + 0xAD,0x0A,0x18,0xC8,0x7E,0xCB,0x25,0xCB,0x07,0x9E,0xD7,0xE5,0x72,0xB8,0x51,0x3B, + + 0x44,0xB8,0xA9,0x2E,0xDE,0x5F,0x9B,0x3F,0xA5,0xC2,0x77,0x7F,0xD5,0x76,0xF6,0xB8, + + 0x91,0xC3,0x0E,0xCA,0xBB,0xDC,0x89,0x1B,0xCD,0x5C,0xBE,0xD1,0xC3,0xBE,0x10,0xDD, + + 0xCE,0x92,0x6A,0x3C,0xBD,0xF5,0xBE,0x7A,0xDD,0x70,0xE8,0xD9,0xDE,0x52,0xDE,0x4F, + + 0xA4,0xA8,0x87,0x8B,0xF9,0x35,0xCE,0xD9,0x8E,0xDF,0xF1,0x10,0x5F,0x51,0xDB,0x39, + + 0xBB,0xC8,0x26,0x3D,0x3D,0xF7,0x6E,0x7F,0xED,0x0F,0x6D,0xB8,0x35,0xAE,0x3E,0x29, + + 0x61,0x04,0x2D,0x20,0x7B,0x2F,0x81,0xA4,0x5D,0xBE,0xF6,0x22,0xB9,0x04,0x28,0x9A, + + 0x02,0xC1,0xC0,0x90,0x13,0x82,0x8A,0xC3,0x2D,0xEE,0x82,0x36,0xC3,0x69,0x78,0x72, + + 0xE8,0x8B,0x01,0x7A,0x96,0x20,0x2B,0xD2,0xA8,0xED,0x8B,0x27,0x63,0xBF,0x2F,0x20, + + 0xB9,0xA7,0xF6,0x6A,0x97,0x21,0x08,0xCC,0xA9,0xF8,0x19,0xF2,0xF5,0x0F,0xC0,0x3B, + + 0xE2,0x85,0xF5,0xC0,0x5F,0xB5,0x09,0x1C,0xE7,0xE2,0xEB,0x7F,0xF1,0x26,0x88,0xD0, + + 0xF5,0x48,0x95,0x15,0x15,0xC4,0x78,0x83,0xE0,0x57,0x30,0x4A,0x79,0x90,0x48,0xC5, + + 0x80,0xFA,0x1C,0x44,0xA5,0x5A,0x03,0x12,0xEC,0xCF,0x55,0x0D,0x8E,0x62,0x4B,0xB7, + + 0xA7,0xB8,0x77,0xD1,0x9F,0xFC,0xE1,0x01,0x43,0xE1,0x09,0x4E,0xF2,0xFC,0x90,0x24, + + 0xE1,0xA9,0x8A,0x88,0x12,0x68,0x84,0xAC,0x15,0x3A,0x02,0x5F,0x1F,0xE1,0x74,0x29, + + 0xE2,0xC8,0x33,0x86,0xF2,0x4A,0x8B,0x4B,0x21,0xEF,0x09,0x5A,0xA6,0x05,0x53,0x7E, + + 0xC0,0x87,0x2F,0x96,0x73,0xA9,0xBF,0x5A,0xAC,0xEC,0x13,0xCD,0xB7,0x71,0xE7,0x6A, + + 0xED,0x8D,0xD5,0xFF,0x9D,0xD6,0x0E,0xF9,0xC6,0x27,0xF9,0x7D,0xD8,0xEB,0x7A,0xB6, + + 0xA6,0x01,0xBD,0x8B,0xE7,0x9A,0x2A,0x4C,0xA3,0x45,0xD2,0x7F,0x38,0x3F,0xA6,0x27, + + 0xC9,0x0D,0xCF,0xD8,0x77,0xC0,0xF6,0xE7,0x6F,0xE0,0x0E,0xF8,0x02,0x39,0xBC,0xCD, + + 0xDD,0x3C,0x78,0xDE,0x39,0x26,0x11,0x96,0x23,0xED,0x8D,0xC0,0xD2,0x1B,0xF0,0xCB, + + 0x8F,0x4E,0x70,0x42,0x38,0x6D,0x8A,0x49,0xC3,0xE0,0xFB,0xFC,0xE4,0x67,0x22,0xB1, + + 0x4C,0xB4,0xC0,0x80,0xBD,0x86,0x1C,0x5B,0x1F,0x4C,0x8C,0x3C,0x76,0x12,0xBB,0xFF, + + 0x27,0xB1,0xF2,0x21,0xCC,0x73,0x7D,0x32,0xFC,0x87,0xFC,0xFE,0xBF,0x33,0x97,0xA9, + + 0xA6,0x18,0xFB,0x2D,0x05,0xA4,0xCE,0x22,0xE6,0xA8,0x90,0x21,0xF2,0xD1,0xF2,0xE2, + + 0xC9,0x1C,0xCD,0x4C,0xB7,0x31,0x25,0xA1,0x42,0x58,0x17,0xA8,0xF2,0xA3,0x5E,0xC2, + + 0x91,0xB9,0x90,0xCB,0x14,0x32,0x44,0x13,0xE6,0xD9,0x2F,0x14,0xE8,0xA5,0xDC,0x20, + + 0xD0,0xB4,0x82,0x27,0x0D,0x91,0xB1,0xC0,0x62,0xFA,0xA3,0x94,0x0B,0x19,0x91,0xB1, + + 0x22,0x00,0x68,0x0A,0x13,0x3D,0x07,0xCA,0xE4,0xB7,0x15,0x25,0x1B,0x7B,0x9C,0x22, + + 0x27,0x9C,0xD5,0x6D,0x0F,0x34,0xFD,0x83,0x81,0x62,0xBF,0xE5,0xF0,0xF7,0xB2,0xFB, + + 0x4C,0x17,0xD0,0x77,0xC5,0x7A,0x94,0x2A,0xF5,0xEE,0x56,0x2C,0xBD,0x3A,0x56,0x9E, + + 0x1A,0x42,0x48,0xDB,0xE3,0xC6,0xB3,0x23,0xC8,0xDE,0x7B,0x38,0x3C,0x89,0x82,0xE6, + + 0xC9,0xCA,0x47,0xC7,0xBE,0x38,0x2F,0xB9,0x4B,0x5C,0xD7,0x1C,0x7A,0x66,0x31,0xAC, + + 0x0E,0x0B,0x34,0x07,0x24,0xC6,0x1B,0xA0,0x45,0x56,0x97,0x1D,0x7B,0x67,0xB1,0x79, + + 0x10,0xB3,0x77,0xF1,0x41,0x2A,0x96,0xBD,0x1A,0xF1,0x8D,0xEC,0xFA,0xFC,0xE2,0xAB, + + 0x1D,0xEB,0xA3,0xAE,0xC4,0xC0,0x66,0x02,0xC7,0x50,0xE5,0x79,0x75,0x1F,0xE3,0xED, + + 0x84,0xC1,0x9C,0xC2,0xBC,0x74,0xDE,0x6D,0x86,0x8A,0xE8,0xDD,0x09,0xE1,0x31,0x75, + + 0x42,0x2C,0x63,0x4E,0x9A,0x35,0xF3,0x66,0x1A,0x89,0x95,0x60,0x00,0x7C,0xDF,0x71, + + 0x6C,0x09,0x60,0x86,0x64,0x1F,0x0A,0xB1,0x74,0x3F,0xEA,0x67,0xF3,0xA1,0xAA,0xE3, + + 0x6D,0x71,0x68,0x97,0x11,0xCD,0x94,0x4D,0x8F,0x90,0x98,0xCF,0xAA,0x1A,0x01,0x91, + + 0x58,0x8A,0x1E,0x83,0x96,0x18,0x0B,0xB0,0xA8,0x1D,0x0E,0xC7,0x92,0x99,0x77,0x27, + + 0x7A,0xED,0xCE,0xE4,0xF3,0xFE,0x82,0xA0,0xFD,0xC9,0xB2,0xCB,0x53,0xA1,0x5E,0xEE, + + 0x6E,0x89,0x64,0xF0,0x5E,0xFC,0x23,0x10,0x62,0x11,0xCA,0x9D,0xAA,0xA7,0x93,0xA2, + + 0x05,0x74,0x6F,0x16,0xD7,0xE4,0x78,0x76,0x43,0xB9,0x99,0xF4,0xCA,0x9B,0x9E,0x30, + + 0xBC,0xE5,0xDF,0x0B,0x1B,0x20,0xA7,0x5C,0xF4,0x5D,0x42,0xC6,0xD0,0x1C,0x17,0x55, + + 0xE4,0xF0,0x97,0x50,0x36,0x38,0x43,0x80,0xD2,0x63,0xC1,0xE7,0x74,0x4A,0x1C,0x3E, + + 0xC6,0x99,0xC1,0xFD,0x76,0x55,0x3E,0x0A,0x00,0xC6,0x7D,0xA4,0x63,0xEC,0x53,0x69, + + 0x65,0x00,0xEA,0xAF,0xE6,0x54,0xD6,0xA8,0x50,0xC1,0x61,0xBD,0x5B,0x13,0x1D,0x3E, + + 0xED,0x8E,0x63,0x8F,0x9D,0xE8,0x53,0x64,0xEF,0xC7,0xEC,0xD0,0xA3,0xF2,0x0B,0x91, + + 0x8C,0x4B,0x6B,0x9B,0x12,0xE9,0x38,0x49,0x6E,0xB0,0xDA,0xD7,0xA9,0xA6,0xB1,0xB9, + + 0x82,0x81,0x56,0x2C,0xE5,0xEE,0xFB,0x27,0x6C,0x0C,0xEA,0x81,0x69,0xEC,0x52,0xA9, + + 0x6D,0xE3,0xFD,0x41,0x6B,0x39,0xF7,0x89,0x52,0x60,0x25,0xF4,0x28,0x99,0xF3,0xB8, + + 0xA0,0xEB,0xAF,0x9B,0xBA,0x7A,0xF1,0x9B,0xCF,0x6F,0xC4,0x53,0x2E,0x5F,0x0D,0x62, + + 0x66,0x1E,0x7C,0x44,0xBD,0xFB,0xF6,0x4A,0x6E,0x4E,0x7B,0xAB,0x61,0x62,0x1A,0xAA, + + 0x83,0x8B,0x09,0x68,0xC4,0x13,0x46,0x57,0x74,0xD6,0x52,0xC4,0x83,0x95,0x2D,0xE1, + + 0x11,0xDE,0x1B,0x3E,0x33,0xF1,0x44,0xB0,0x35,0x2A,0x04,0x4D,0x1E,0xFE,0x7C,0xF0, + + 0x9C,0xDD,0x92,0x33,0x40,0x51,0x1C,0xB9,0x87,0xF2,0x8D,0x58,0xC7,0x23,0xBD,0x7B, + + 0x23,0x5E,0x00,0x89,0x39,0x47,0x3D,0x4F,0xE3,0x93,0x3D,0x85,0x95,0x6B,0x87,0x31, + + 0x1C,0xD5,0xF5,0xD5,0x14,0xF0,0x3C,0xEE,0x8F,0x8C,0xE4,0x62,0x36,0x6B,0xD3,0xE3, + + 0x11,0x3A,0x94,0xD2,0xCA,0xF7,0x04,0xD5,0x9A,0xDA,0x43,0xB1,0xAD,0xFD,0xD2,0xA3, + + 0xD1,0x96,0xC3,0xFA,0x3A,0x1D,0xB5,0xD6,0x32,0x0B,0xCA,0x87,0xFE,0x44,0xBC,0xAD, + + 0xCD,0xA4,0xEB,0x28,0x16,0x28,0x43,0xBE,0x8F,0xDA,0x78,0x88,0x78,0x61,0x78,0xA3, + + 0x2C,0x37,0x06,0xD4,0x89,0x24,0xEC,0xEE,0x8D,0xDE,0x76,0x2B,0x20,0xBA,0x16,0xFA, + + 0x69,0x94,0x7A,0xA1,0x5F,0xFB,0x5E,0xF5,0xB7,0xD6,0x5B,0xDC,0x8A,0x9C,0xB6,0x09, + + 0x2C,0x5D,0x88,0xE0,0x65,0x6F,0x1E,0xB1,0x4F,0x57,0xF7,0x11,0x7E,0xE6,0x71,0xB2, + + 0xAD,0x34,0x2F,0xD0,0x32,0x46,0x8B,0x59,0xEB,0xC2,0x87,0x40,0x96,0xF4,0x18,0x63, + + 0x0A,0x31,0x52,0xAC,0xC5,0x18,0x64,0x8A,0x85,0x98,0xBE,0xFA,0xFE,0xEC,0x3D,0xA9, + + 0x15,0x1E,0x4A,0x2F,0x9C,0xFD,0xE8,0x35,0x0F,0xD9,0x7D,0x40,0x3F,0x51,0xB6,0xFB, + + 0x51,0x31,0x37,0xC9,0x76,0x9D,0x4D,0x5B,0x56,0x9C,0x48,0x96,0xDF,0x7E,0x90,0x28, + + 0x91,0xDE,0x50,0x5B,0xF7,0x40,0x01,0xFD,0x0E,0x5C,0x50,0x81,0x22,0xBE,0x59,0x06, + + 0xA5,0x7F,0xD2,0x2A,0xFB,0x44,0x92,0x52,0x73,0x34,0x50,0xFC,0x05,0x6A,0xB0,0x3D, + + 0x13,0x4C,0x8C,0x9E,0x35,0xAC,0xC3,0x1E,0x3E,0x07,0x0A,0xD2,0x75,0x95,0xD8,0x01, + + 0xB3,0x39,0xDB,0x04,0x33,0xD2,0xE9,0x29,0x67,0x03,0x97,0xCD,0xAB,0xCF,0xD8,0x56, + + 0xE0,0x07,0xF7,0x38,0x7A,0xB2,0x27,0xED,0x7E,0x18,0x15,0x2E,0x90,0xCE,0x5A,0xDF, + + 0x69,0x0B,0xE0,0xE1,0xEC,0xFB,0x0A,0x61,0xE1,0x05,0xB0,0x66,0x2B,0x69,0xB7,0x74, + + 0xDF,0x14,0xDB,0xA8,0x57,0xA8,0x10,0xCD,0xCE,0x07,0x34,0xE6,0x5F,0x6D,0xC0,0x53, + + 0xEA,0xCE,0xC3,0xB9,0xDA,0x22,0x91,0xA1,0xC2,0x04,0xFB,0xB5,0x8E,0x99,0x73,0xA2, + + 0xB7,0x01,0xB6,0xA5,0x09,0x96,0x5F,0x68,0xC0,0xE6,0x59,0x88,0xDF,0x97,0x60,0x0A, + + 0x0B,0x68,0xFC,0x3D,0xF1,0x89,0x12,0x5A,0xB3,0x0A,0x98,0xA8,0x56,0x22,0x0A,0xE1, + + 0x49,0xF5,0xC1,0x6F,0x69,0x88,0xA5,0x7F,0x83,0x93,0xA4,0x79,0x5F,0x6B,0xAB,0x28, + + 0xAC,0x91,0x2F,0x9E,0xCF,0x20,0x5E,0x17,0x29,0xB5,0x53,0xAD,0x96,0x95,0xB6,0x46, + + 0x5C,0x56,0xB3,0xE2,0x70,0x5A,0x53,0x41,0x34,0x09,0x93,0xB9,0xDB,0xC8,0x4A,0x00, + + 0xEB,0x03,0x02,0x8C,0xF3,0x21,0x32,0x3E,0x67,0x41,0x55,0xEE,0x78,0x1E,0x4B,0xA3, + + 0x78,0x01,0x75,0xC6,0xA4,0xB0,0x63,0x3A,0xEA,0x0F,0x58,0xFE,0xC6,0x94,0x83,0x84, + + 0xA6,0x75,0xB8,0x2D,0x8C,0x42,0x2A,0x4E,0x66,0x2B,0x6C,0x8F,0xE9,0x95,0xB4,0xA5, + + 0x59,0x4D,0x27,0xC2,0x9A,0x4F,0x13,0x79,0x48,0x42,0xE3,0x83,0x38,0x66,0x66,0x82, + + 0x23,0x52,0x11,0xC3,0x03,0x29,0xB0,0x50,0x68,0x5F,0x8E,0xD7,0x39,0xF6,0x55,0x8A, + + 0x84,0xE0,0x1A,0x10,0x62,0xA9,0x64,0xB4,0x81,0xD0,0x58,0x92,0x8C,0x6A,0x5C,0x82, + + 0x05,0xED,0x3D,0x16,0x80,0x9F,0xAA,0xC1,0xFE,0xF9,0x95,0xE5,0xB6,0x30,0xF5,0xF7, + + 0x2E,0x95,0xC5,0x8D,0x58,0xD2,0x9E,0x35,0xB2,0x3B,0x1D,0xEB,0x7C,0x11,0x64,0x3E, + + 0xA0,0x1E,0x9E,0xC5,0x95,0x75,0x3C,0x82,0xD1,0x38,0x8D,0x19,0x97,0x80,0x2C,0x90, + + 0xCD,0x98,0x33,0x24,0x3B,0x29,0xB0,0x74,0x2B,0xE5,0x1C,0xC1,0xCB,0x78,0x27,0xB2, + + 0x92,0x19,0x7E,0xA5,0x96,0xB4,0xEA,0x65,0xE1,0xA4,0xAD,0xF7,0x1B,0x79,0x35,0x53, + + 0xA2,0x60,0x72,0x9F,0xA3,0x33,0x15,0x69,0xD0,0x12,0xA6,0xD2,0x52,0xC8,0xC5,0xC8, + + 0x4A,0x54,0x7E,0x84,0xD1,0x29,0xD6,0x70,0x27,0x50,0x3D,0x29,0xEB,0x47,0xA5,0xC7, + + 0x94,0xE5,0x98,0x7A,0xB6,0x22,0x60,0xBE,0x88,0xDA,0x25,0x0D,0x30,0xD6,0x13,0xAD, + + 0x7D,0x47,0x7F,0x65,0xC3,0x97,0x10,0x59,0x62,0xAB,0x81,0xF9,0x13,0xB2,0x54,0x99, + + 0xD2,0x5B,0x91,0xFB,0x73,0x6A,0xAE,0x4A,0x65,0xD0,0x91,0x83,0xB0,0x8E,0x3E,0x4A, + + 0x2B,0x7E,0x46,0x8B,0x14,0x22,0x96,0x28,0x4C,0x5A,0x62,0x8E,0x8D,0x19,0x76,0x08, + + 0xD5,0x12,0x97,0xD2,0x9E,0x36,0xEA,0x9A,0x90,0x38,0xD4,0x78,0x33,0xCB,0x7F,0x19, + + 0x75,0x11,0xBC,0x25,0x3A,0x71,0xFD,0x8C,0x4B,0xC1,0xEF,0x12,0x78,0x3D,0x2F,0x98, + + 0x27,0x12,0x8F,0x35,0x3B,0x72,0x67,0x07,0x47,0x52,0x5F,0x20,0xF2,0x64,0x8B,0x86, + + 0x08,0xC3,0x74,0xF8,0xE9,0x21,0x7B,0x9B,0xE5,0x5F,0x70,0xA2,0x7D,0xA2,0xCF,0x6C, + + 0x64,0x85,0x5D,0xE8,0xED,0xA8,0xD8,0x44,0xFA,0xAF,0x34,0xB2,0x57,0x5B,0xCD,0xEB, + + 0xBB,0xCF,0xE1,0xF8,0x61,0x21,0x85,0x41,0x3F,0xD9,0xF1,0x96,0x2F,0x4F,0x57,0xF1, + + 0x97,0xCE,0xF2,0x17,0xAA,0x42,0x06,0xBC,0xA6,0xC7,0x79,0xB6,0xD1,0x8F,0x64,0x23, + + 0x7D,0x94,0xDB,0xD9,0xA9,0xBF,0x09,0x25,0xBB,0xB2,0x35,0x8E,0x48,0xA9,0xB3,0x10, + + 0x01,0x7D,0x04,0xCC,0x14,0x05,0x31,0x9E,0x43,0x87,0x80,0x64,0xA8,0x48,0x3A,0x43, + + 0xF9,0x86,0x45,0x21,0x65,0xDB,0x8E,0x1D,0x50,0xBD,0x8E,0x14,0xF7,0x52,0x30,0x2C, + + 0xD2,0x8E,0xD6,0x47,0x60,0xA3,0x31,0x46,0x4A,0x85,0xE1,0x6C,0x74,0x63,0x38,0x08, + + 0xC6,0x87,0xFC,0xBA,0x24,0xEA,0x4B,0x50,0x2D,0xCC,0xD5,0xD5,0xE9,0x7E,0x92,0x27, + + 0x1F,0xC4,0xBC,0x26,0xF6,0x38,0xDA,0x07,0xA6,0x8D,0x19,0x6F,0x81,0x21,0x6B,0x17, + + 0xBF,0xB1,0x69,0xF6,0x75,0xA3,0x52,0x6B,0xCF,0x41,0xC8,0xAB,0xD7,0x20,0xF8,0x5C, + + 0xEC,0x8F,0x91,0xAE,0xA1,0x04,0x01,0x8B,0x79,0x64,0x17,0x4C,0x98,0x6D,0x26,0x5B, + + 0x3A,0x21,0xE0,0x57,0xE4,0x2C,0x74,0x73,0x4D,0xEC,0xCC,0x8C,0x7F,0xCC,0x62,0x89, + + 0x8D,0xA5,0xE8,0x1E,0x07,0xC5,0x43,0x38,0xEE,0xD6,0xD8,0x96,0x20,0x22,0xF2,0x0C, + + 0x4C,0xEE,0x8A,0x31,0x11,0x28,0xE3,0xEF,0xCD,0x3D,0x74,0x11,0x02,0xE1,0xD5,0xAB, + + 0x7C,0x80,0xA6,0x5B,0xAC,0xAB,0xCB,0xFF,0xCC,0x8F,0xA2,0xF2,0x7A,0x10,0xE4,0x87, + + 0x02,0x8B,0x9A,0xAF,0x32,0x2A,0x30,0x40,0x8D,0x0A,0x3E,0x5E,0x74,0x4B,0x94,0x69, + + 0xA8,0x8A,0xB9,0x70,0x25,0x1C,0xDF,0x72,0x37,0x7A,0x1F,0xE7,0xA9,0x39,0x7C,0xE5, + + 0x57,0x82,0xAE,0xC7,0xA0,0x1F,0x77,0x5D,0x19,0xBE,0x34,0x23,0xF0,0x4C,0xF0,0xF5, + + 0x7F,0x2C,0x3C,0x71,0x7D,0x12,0x45,0xB7,0x18,0x56,0xE7,0xBA,0x9D,0x9B,0x2E,0x35, + + 0x85,0x19,0xBD,0xC8,0x91,0x39,0xD8,0x66,0x65,0x26,0x50,0x90,0x8D,0x0F,0xEB,0x50, + + 0x24,0x13,0x7C,0xA4,0x04,0xE1,0x74,0xEF,0x8E,0x1F,0x3C,0x23,0x11,0xEE,0x9A,0x32, + + 0x6A,0xB6,0x85,0x8D,0x1C,0xB9,0x99,0x67,0xAE,0x66,0xF1,0x63,0xF5,0xEC,0x55,0x61, + + 0x58,0x38,0x15,0xF3,0xB1,0x56,0x91,0x61,0xEF,0xDD,0xBC,0x91,0x9C,0xF8,0x67,0xEC, + + 0xFE,0x07,0x34,0x9F,0x54,0xBC,0x24,0x2E,0x6A,0x42,0x76,0x2F,0xB1,0x07,0x34,0x98, + + 0x9E,0x04,0x51,0xD9,0x0E,0xA0,0x36,0xA3,0x0E,0xBF,0x7E,0x3A,0x32,0xBB,0x8B,0xF0, + + 0x72,0x47,0xC0,0x67,0x3A,0x77,0xBB,0x2F,0xBF,0x30,0xED,0x6F,0x94,0x72,0x35,0x99, + + 0x3F,0x91,0x17,0x00,0xDE,0xBF,0xA8,0x48,0x69,0x56,0x71,0x0C,0x70,0x70,0xA6,0x1B, + + 0x2F,0x9A,0x07,0xAC,0xBC,0xBF,0xF4,0x02,0x29,0x91,0x21,0xDC,0x81,0x29,0x16,0x58, + + 0x2C,0x1B,0x2E,0xEB,0xED,0xB0,0xEE,0xBD,0x4B,0x2A,0x9E,0xBE,0x91,0x76,0x2F,0x58, + + 0x47,0xAF,0xE2,0x2D,0x8D,0xC5,0x05,0xEA,0xEA,0xB0,0x8F,0x6B,0xA5,0x1A,0x17,0x59, + + 0xAE,0x87,0x8F,0x7F,0xE3,0xB0,0x80,0xEB,0x0E,0x00,0xFB,0x1D,0xCC,0xAD,0xB8,0x52, + + 0x2E,0x63,0xE2,0x1D,0x13,0x60,0x28,0xDF,0x4E,0x22,0xAE,0x84,0x92,0x60,0xF5,0x2B, + + 0x20,0xFA,0x64,0x86,0x11,0x2B,0x90,0xFD,0xE2,0xBC,0x34,0x10,0xDE,0x63,0x4B,0x43, + + 0xC1,0x01,0x87,0xA5,0x79,0x21,0xD5,0xF1,0xCC,0x44,0xD9,0x21,0x5F,0x23,0x0D,0x95, + + 0xDE,0x44,0x8E,0x66,0xBB,0xA5,0x53,0x24,0x43,0x40,0x2E,0x34,0x5C,0x6F,0xFF,0xA2, + + 0x69,0x15,0x52,0xB7,0x7E,0x8B,0xD0,0xA7,0x66,0xDF,0x32,0x7B,0x9C,0xCF,0xB7,0x23, + + 0x33,0x69,0x5E,0xD0,0x4E,0x57,0x60,0x9E,0xEF,0x48,0x58,0x06,0xB8,0xB3,0x45,0xA9, + + 0xEE,0x4B,0xD0,0xB8,0xFA,0x9D,0x51,0xE3,0x0B,0x6E,0xB7,0x61,0xB9,0xE0,0xAE,0x91, + + 0xC6,0xAA,0xD9,0x40,0x6A,0xAA,0xA4,0x8E,0x16,0x1A,0xA7,0xEA,0xB8,0xD1,0x38,0xFB, + + 0x51,0x7D,0x02,0x4C,0x00,0x85,0x51,0xCA,0xCA,0x00,0xFA,0x32,0x32,0x9C,0xCA,0xC5, + + 0xFF,0x4B,0x82,0x18,0x96,0x68,0x7A,0x3A,0x38,0x44,0xCB,0x4F,0x67,0xC2,0x1B,0xF2, + + 0xF7,0x2A,0x53,0xCA,0x5A,0x6A,0x5F,0xD9,0xC4,0x45,0x41,0x37,0xB6,0xDE,0x58,0xC5, + + 0xBA,0x69,0x8D,0x20,0x19,0x4E,0xE4,0x6B,0xC7,0x29,0xE3,0x39,0x39,0xCA,0x53,0xCC, + + 0x08,0x04,0xA2,0x03,0x39,0x23,0xF9,0xEC,0x4E,0xF2,0xD3,0x9F,0x88,0xC3,0x74,0x70, + + 0x0D,0x0F,0x10,0x18,0x3F,0xD9,0x62,0xE7,0xC9,0x81,0xEC,0x70,0xB0,0xE8,0x83,0xC9, + + 0xC4,0xF1,0x3C,0xB1,0x9C,0x6C,0xFF,0xEB,0x0F,0x5D,0x61,0x9E,0x36,0xC5,0x04,0xDD, + + 0x89,0xAC,0x5E,0x46,0xEB,0x6D,0x8D,0x1B,0x1D,0x47,0x73,0xF7,0x22,0xB3,0xB0,0x70, + + 0x00,0x1F,0xF6,0x85,0x14,0x2B,0x4A,0x9D,0x68,0x4B,0xA2,0xAC,0x9B,0xF5,0x08,0x72, + + 0xA6,0x61,0x4D,0x9C,0x94,0x5F,0xE3,0xC3,0x1D,0x3D,0xCD,0x27,0x4F,0xDE,0x65,0x21, + + 0xAC,0x99,0x10,0xE3,0x52,0x12,0x83,0xC7,0x80,0xED,0x3D,0x2F,0x7D,0xDF,0xE5,0xAE, + + 0x85,0x51,0xEF,0x91,0xB2,0x51,0xFA,0x71,0xEA,0xD8,0xBA,0xC6,0x9F,0xF5,0x3C,0xB3, + + 0x12,0x56,0xCC,0xAF,0x4D,0x14,0x0C,0xE8,0x51,0xA4,0x29,0xE6,0x32,0x21,0x49,0x52, + + 0xEA,0x12,0x4A,0x50,0xFB,0x44,0xA4,0xD4,0x9E,0xDC,0x61,0xAB,0xA6,0x28,0x05,0x18, + + 0xA4,0x94,0x05,0x04,0x5E,0x37,0xEA,0x07,0xD1,0xE6,0x26,0xCA,0x0C,0x8A,0xE2,0x33, + + 0x0F,0xEA,0x19,0xC6,0xC3,0xB4,0xDD,0x11,0xFE,0x1B,0x76,0x37,0x70,0x31,0x55,0x54, + + 0x1B,0x68,0xB8,0x2D,0xFA,0x3C,0x93,0x99,0x14,0x1A,0x96,0x5F,0xA8,0xD3,0xF1,0x1C, + + 0x7A,0x17,0xC6,0x95,0xB4,0xC4,0xDA,0xCC,0x92,0x1B,0xCE,0x22,0x82,0x65,0xBF,0x77, + + 0xB8,0x57,0xB9,0x2D,0x7A,0x3A,0x53,0xFE,0x17,0x18,0x32,0xA8,0x7F,0x6C,0x56,0x1C, + + 0x0C,0xE4,0xED,0x4C,0x4C,0xBD,0xD0,0xB7,0xEF,0x39,0x22,0xF7,0x1D,0xFC,0x3E,0xD9, + + 0x1A,0x18,0x1B,0x86,0x41,0x25,0xD0,0x00,0x36,0xA1,0x61,0xC8,0x57,0x15,0xED,0xBA, + + 0x68,0xED,0x55,0x1A,0x77,0x7C,0x64,0x0B,0x77,0x5B,0x00,0x09,0x14,0x96,0x37,0xED, + + 0x28,0x1A,0x18,0x85,0xBC,0xC6,0xAF,0x01,0xB2,0x11,0x4B,0x9C,0x93,0xD7,0x5D,0xCD, + + 0x54,0xE2,0xE9,0xF0,0x95,0x9B,0xF2,0x36,0x88,0x1F,0xC0,0x84,0x82,0xC6,0x98,0x80, + + 0x26,0xB0,0x0C,0x22,0xC8,0x51,0xF4,0xF2,0x4C,0xC6,0x62,0xD9,0xBD,0xEF,0xD3,0x1A, + + 0xA0,0x7E,0xE8,0xA7,0x13,0xE3,0x12,0xB7,0x06,0xA1,0x1F,0xA1,0xB4,0x4E,0x59,0xEB, + + 0x98,0xCF,0x61,0x87,0x81,0xE0,0xB9,0xFB,0x67,0x3F,0xE7,0x96,0x3F,0x24,0xE9,0xCB, + + 0x06,0xCF,0xFA,0xE8,0x93,0x79,0x8D,0xD1,0x47,0xC7,0xDF,0xC6,0x17,0xA3,0x1F,0xC6, + + 0x7E,0xD9,0x28,0x03,0xF7,0x0B,0x32,0x10,0xFD,0xDB,0xCB,0x38,0x65,0x24,0x16,0x54, + + 0xE6,0x06,0x28,0x4B,0xEA,0xA3,0x83,0xF6,0x45,0x61,0x53,0xBC,0xEC,0x4A,0x3B,0x4F, + + 0xEE,0x97,0x64,0xC3,0xC9,0x8E,0xC6,0x4B,0x35,0x79,0x5D,0xC2,0x03,0x85,0x40,0xA0, + + 0x0B,0x7A,0x46,0xB5,0x36,0x20,0xB9,0xF7,0x79,0xAB,0xDE,0x69,0x07,0x4C,0x93,0x88, + + 0x2E,0x38,0xE7,0x10,0x3E,0x5C,0x6F,0x48,0x0F,0x28,0x94,0x9F,0x8A,0x4C,0xE5,0xE2, + + 0x8F,0x8A,0x6A,0x9F,0x05,0xEB,0xAA,0x48,0xA6,0xCA,0xE4,0xA4,0x59,0x46,0x79,0x0A, + + 0x2F,0xC8,0xF7,0x8B,0x9E,0x6B,0x53,0x6F,0xE9,0xC5,0x61,0xB0,0x37,0x5C,0x6A,0xEB, + + 0x35,0x84,0x60,0x96,0x74,0x5A,0x45,0x9A,0x26,0x88,0x09,0xCC,0x31,0x40,0x1A,0x39, + + 0x3E,0xCE,0x66,0x4B,0x91,0xA8,0xB2,0x7B,0x16,0xC6,0x57,0x6A,0xD9,0xFA,0x6F,0xD8, + + 0xC6,0x58,0x2A,0x83,0xC0,0x00,0xEA,0x92,0x13,0x80,0x8C,0x2F,0xBD,0xE6,0x23,0x0B, + + 0x88,0x0C,0xE7,0x08,0x9F,0xFE,0xF3,0xAC,0xEA,0xA2,0xA3,0xF1,0x25,0x43,0xC4,0xB9, + + 0x23,0x72,0x6E,0x98,0x5D,0xFF,0xE4,0x1B,0xD0,0x32,0x79,0x8F,0x0E,0xB0,0x44,0x22, + + 0x3C,0x9F,0xA4,0x46,0x5C,0xDE,0xAE,0x5C,0x07,0xA0,0xB5,0x90,0x9E,0xE5,0x2F,0xF4, + + 0xA7,0x92,0x40,0x04,0x31,0xBB,0x92,0x49,0xEA,0x07,0x0E,0x8D,0x0A,0xF1,0x7C,0x12, + + 0x86,0x02,0x35,0x6F,0x88,0xFF,0x23,0x9E,0xE2,0xF0,0x64,0x91,0x04,0xE2,0xAA,0x71, + + 0x27,0x90,0xE8,0x9F,0x10,0x34,0x35,0xA3,0xAD,0xF0,0xD5,0x75,0x73,0x06,0xBB,0xC2, + + 0xD1,0x2F,0xF7,0x76,0x09,0xA9,0x0C,0xC2,0x62,0x64,0xEB,0x03,0x59,0xAF,0xC0,0x50, + + 0xEE,0xDD,0x2C,0x8B,0x42,0xF9,0xFB,0x8D,0x8E,0xA5,0x66,0xB6,0x10,0x26,0xE7,0x32, + + 0x96,0x56,0xBA,0xED,0xC9,0xA2,0xB5,0x3E,0x39,0x94,0x6F,0x93,0x93,0x3F,0x55,0x4C, + + 0x25,0x3B,0x6B,0xF3,0x80,0x91,0x91,0x61,0xF3,0xDF,0x36,0xF1,0x7F,0x93,0x21,0xF8, + + 0x8F,0x9C,0xA2,0x1E,0xB3,0x45,0x16,0xBF,0x95,0xB4,0x26,0x2A,0x7A,0x05,0x7E,0x83, + + 0x4E,0xB9,0xAE,0x5E,0x21,0xD5,0xEE,0xC5,0xE2,0x5F,0x7E,0xEF,0xFF,0x55,0x26,0xF4, + + 0x0B,0x9C,0xC5,0x8D,0x49,0x3C,0xD4,0x6B,0xE8,0x7A,0xD7,0xFC,0x08,0xB8,0x57,0x19, + + 0x2D,0xE2,0x91,0x3E,0x7F,0x11,0xBB,0xFB,0xA1,0x26,0xCF,0xE0,0x5E,0x9E,0x6A,0xA8, + + 0xF8,0x94,0xBD,0x4D,0x49,0x9A,0x0E,0x02,0x74,0x91,0xD4,0x93,0x7E,0xFC,0x56,0x45, + + 0xAD,0x51,0x02,0x5E,0xC3,0x9D,0x86,0x7E,0x72,0x23,0x01,0x01,0x80,0x02,0x64,0x49, + + 0x6B,0x8D,0x27,0x9A,0xD0,0xFF,0x2F,0x62,0x4B,0x5E,0xF7,0xEF,0x01,0x01,0xB9,0xB9, + + 0x79,0x95,0x43,0x9D,0x3C,0x6B,0x45,0x08,0x87,0x70,0xFF,0xFF,0xFF,0xFF,0x59,0x92, + + 0xA5,0x9F,0xE6,0xA0,0x34,0xBC,0x68,0xA2,0x45,0x79,0xC0,0xDA,0x5C,0xCB,0xB0,0xEE, + + 0x11,0x4C,0xF0,0x96,0x8C,0x48,0x90,0xF5,0xE0,0xCB,0x58,0xC5,0xEE,0xC3,0x00,0x67, + + 0x7B,0x12,0x3E,0x5F,0x96,0xB8,0x69,0x06,0x63,0x44,0x6C,0x35,0xBB,0x1D,0xF6,0x35, + + 0xEA,0x0C,0x36,0xF7,0x4C,0xBE,0xE2,0xD3,0x60,0xC9,0xC7,0xDA,0x85,0x60,0xE0,0x36, + + 0x69,0x0B,0x72,0x5B,0xFE,0x8B,0x6D,0x90,0x46,0x4B,0x8E,0xFF,0x42,0xCB,0xDA,0x60, + + 0xA0,0xAA,0x60,0xDE,0xDB,0x56,0x65,0x80,0x4B,0x4A,0x77,0x0F,0x8E,0xB1,0xC6,0x73, + + 0xB1,0xED,0xF7,0xB4,0x72,0x66,0x71,0x75,0xC4,0x35,0xB2,0x3B,0x23,0xBA,0x5C,0xF1, + + 0xD3,0x57,0xEA,0x46,0xE1,0x93,0xDA,0x30,0xDA,0x06,0x6B,0x6A,0x3F,0xCC,0x82,0x7B, + + 0x64,0x8D,0x2D,0xAC,0x48,0xD8,0x6D,0xCA,0x95,0x95,0xEB,0xD7,0x33,0x17,0x34,0xFA, + + 0x6B,0x7C,0x75,0xBC,0x59,0xC9,0x7A,0x78,0x67,0xC2,0xC4,0xD3,0x7B,0x6A,0x11,0x89, + + 0x63,0x4E,0xDA,0x94,0x3D,0xBB,0xBC,0xAD,0xC7,0x97,0xD0,0xDC,0x67,0x0A,0x75,0x1E, + + 0xAD,0x7D,0x20,0x67,0x4C,0xB4,0x1F,0xDB,0x4B,0x43,0xE2,0xC6,0x2D,0xB4,0x1B,0xD1, + + 0xAF,0xF3,0x9C,0x43,0x16,0x62,0x68,0x80,0x82,0x03,0xE4,0x68,0x31,0xE9,0x34,0x71, + + 0x30,0x2D,0x15,0x5C,0x98,0x23,0x03,0x1C,0xEC,0x5D,0xF9,0x73,0x83,0xC6,0xEF,0x3A, + + 0xB2,0xF8,0xA2,0xED,0x4C,0x91,0x2D,0x58,0x21,0x8F,0x53,0x2B,0x48,0x3A,0x76,0x1E, + + 0x41,0x3E,0x2B,0x62,0xBF,0x41,0xA3,0x86,0xCD,0x45,0x7E,0x79,0x5C,0x79,0xAE,0xE5, + + 0x81,0x0F,0x44,0xE4,0x30,0x3A,0x2C,0x5F,0x53,0x14,0x8C,0xB0,0x1B,0xC1,0x34,0x7E, + + 0x8D,0x1C,0xAC,0x6D,0x90,0x30,0x7B,0x40,0xE1,0x4E,0x45,0x9B,0x4E,0x73,0xB1,0xE3, + + 0x1B,0x77,0x05,0xC3,0xA2,0x34,0xAD,0x5A,0x6D,0xAF,0x95,0xB6,0xD1,0xA3,0xF0,0xB5, + + 0x48,0x1A,0xB3,0x84,0xCE,0x73,0xA6,0xC1,0x61,0x45,0xBB,0x8C,0x93,0xD7,0x7F,0x3E, + + 0x06,0x0F,0x6F,0x9B,0x8F,0xC8,0x72,0x9F,0xC5,0x50,0x7E,0x51,0x41,0xBD,0xB7,0xAE, + + 0xAE,0xE3,0x92,0xE7,0xB3,0x9E,0xE4,0x6B,0x71,0x18,0x5C,0x33,0x57,0x19,0x85,0xA7, + + 0x5D,0x9B,0x66,0xF3,0x6E,0xD3,0xD2,0xA6,0xD1,0x3F,0x15,0x64,0x2D,0x7E,0x05,0x90, + + 0x83,0xF7,0xFF,0xC5,0x36,0x21,0x3E,0x31,0xAB,0xCA,0x4D,0x86,0xC3,0x7C,0x14,0x76, + + 0xD7,0xB5,0x46,0xE4,0x38,0x78,0x86,0x56,0x95,0xF9,0x05,0x1D,0x07,0x6E,0xA5,0xE3, + + 0xFC,0xE4,0x39,0x9D,0xB4,0x35,0xE5,0xCB,0x0A,0xA8,0x59,0x40,0xC5,0x82,0x91,0xCE, + + 0x76,0x5B,0x48,0xC3,0x37,0x38,0x2F,0x56,0x1D,0x39,0x4C,0xA2,0xFE,0x10,0x4D,0xF9, + + 0xAB,0x9B,0xE7,0x83,0x4E,0xCF,0x61,0xBF,0x00,0x30,0xDF,0x92,0x8D,0x2E,0xC5,0xB7, + + 0x6A,0x70,0xE0,0x7C,0xEA,0x98,0xAE,0xE0,0x93,0x13,0x13,0x68,0x78,0x11,0xF5,0x9F, + + 0x2D,0x8E,0x4C,0x1A,0xA9,0x3E,0xCE,0x3F,0x69,0xA8,0x0A,0xAD,0x78,0x3D,0x83,0x4D, + + 0xD8,0x0F,0x91,0xD6,0xD1,0x4A,0xD0,0x56,0xBE,0x92,0xED,0x1E,0x8E,0x3C,0x8A,0x99, + + 0xF5,0x1C,0x2C,0x26,0xC4,0x3F,0x5B,0xBE,0x6A,0x51,0x73,0xD9,0x79,0xD3,0xDF,0x7C, + + 0x92,0xFB,0x0F,0x78,0xC9,0xBB,0x84,0x50,0xE7,0x3B,0x07,0xD9,0xD7,0xEE,0x17,0x99, + + 0xFE,0x1C,0xF8,0x1F,0xB6,0xBA,0x58,0x72,0xE9,0x4A,0x07,0x6C,0x77,0xD1,0x32,0xEF, + + 0x8C,0x5D,0x65,0x7D,0x33,0xA4,0xE4,0xA7,0xB8,0xFD,0x51,0x18,0xF0,0x7E,0x48,0xE9, + + 0x64,0xBC,0xEF,0x68,0x32,0xA5,0x3D,0xD1,0xE1,0x67,0xB0,0x97,0xD5,0x4B,0x28,0xCA, + + 0xDB,0xB9,0xA0,0x79,0x1E,0xC8,0xC7,0x1D,0x40,0x64,0xA0,0xF8,0xAD,0x1F,0xC4,0x2D, + + 0xCD,0x14,0x4F,0xC1,0x7C,0x03,0x40,0x89,0xC8,0x63,0x4F,0x52,0x8B,0xF4,0xCE,0xC7, + + 0x91,0x8E,0xC9,0x85,0x42,0x60,0x8E,0x01,0x35,0xA3,0xF1,0xA5,0x55,0xA0,0xD2,0xC0, + + 0xBB,0x8D,0x69,0xA6,0x55,0xE7,0xEB,0x09,0x0D,0x66,0xC7,0x5F,0xB6,0xC7,0x5B,0x2E, + + 0xA9,0xF7,0xF2,0x13,0xBF,0xB3,0x68,0x2C,0x84,0xA3,0xD2,0x61,0x71,0xE5,0x92,0xF4, + + 0x1D,0xC4,0x12,0xE1,0x1B,0x33,0xAA,0x54,0x4B,0x69,0xE9,0xA4,0x95,0xE6,0x22,0x6D, + + 0x37,0x9A,0x26,0x69,0x6B,0xBA,0x97,0xDA,0x6F,0x8A,0xCC,0x4F,0xAA,0xA8,0x86,0xF1, + + 0xA9,0x8D,0xC3,0x9B,0xAD,0xAB,0xC4,0x59,0x3A,0xAE,0xAC,0xCC,0xA9,0x76,0xE0,0x54, + + 0x32,0x78,0x4D,0x35,0xC3,0x07,0x7A,0xEF,0x7D,0x85,0xAA,0xE3,0x58,0xEE,0x4A,0x3C, + + 0xE6,0xDC,0xB4,0xC5,0x03,0x20,0x44,0x4E,0xE8,0x59,0x3A,0xDB,0x16,0xE7,0x70,0x40, + + 0xBA,0xBE,0x00,0x4F,0x42,0x58,0x4D,0x5A,0x69,0xDE,0x4F,0x9E,0xAA,0xCE,0x10,0x28, + + 0xB3,0x70,0x95,0xC5,0x4A,0xF2,0x6D,0x60,0xAB,0xD4,0x7B,0x38,0xFB,0xE9,0x7C,0xDA, + + 0xA6,0x98,0x5B,0x77,0x8B,0x83,0xE7,0x51,0xE8,0xDD,0xA3,0x5F,0x38,0xB2,0x24,0xB5, + + 0x86,0x6A,0x51,0x86,0x5E,0xCE,0x6E,0xE4,0x8E,0xB5,0x63,0x36,0xC9,0x20,0xF1,0xF1, + + 0x07,0x94,0xF5,0x79,0xB8,0x19,0xA5,0x50,0x60,0x5F,0xF8,0x78,0x83,0x87,0xAE,0x91, + + 0xC3,0x95,0x6D,0x66,0x0A,0x11,0xAD,0xDC,0x1A,0xB0,0x0C,0x8E,0x8E,0xE5,0xE2,0xF2, + + 0xDB,0x14,0x8C,0x04,0xB0,0x41,0xD7,0x74,0xBA,0x32,0xF8,0x0E,0x07,0xB6,0x91,0x15, + + 0x21,0x06,0xE8,0x91,0xB6,0xBB,0x1E,0xF6,0xB2,0x48,0x10,0xD2,0xFA,0xB4,0xA5,0x7B, + + 0xC6,0x4B,0x75,0x00,0xB4,0x43,0x4F,0x10,0x2C,0x7D,0xB1,0x38,0xF7,0xB6,0xA8,0x93, + + 0xFB,0x6A,0x52,0xE7,0xB3,0x18,0xD6,0xAC,0x1E,0x2B,0x51,0xD3,0x2E,0x0A,0xAE,0x4F, + + 0x8D,0x12,0xF8,0x61,0x6C,0xBB,0x50,0xC8,0x9B,0x65,0xED,0xA1,0x7A,0x92,0xF2,0x6A, + + 0x25,0x96,0x6F,0x84,0xCA,0x0D,0xAE,0x7D,0x84,0x28,0xBA,0x4E,0x82,0x56,0xC8,0x69, + + 0x2E,0xD2,0xDE,0x74,0xD7,0xC5,0xA0,0x54,0x0D,0x09,0xA9,0x8B,0x97,0xAB,0x4F,0xDF, + + 0xDC,0x16,0x50,0x6E,0x02,0x88,0x59,0x1E,0x04,0x0A,0x2A,0x4C,0x8D,0xE0,0x38,0x28, + + 0x22,0x19,0x00,0xBC,0x48,0x13,0xD5,0x74,0xB2,0x2A,0xD9,0x95,0x3D,0x9C,0xD3,0x5E, + + 0x5D,0xEF,0xB0,0x4C,0x7F,0x30,0xFE,0xA4,0xDA,0x01,0x01,0x7C,0x7A,0xF9,0xA7,0x73, + + 0xCE,0xF2,0x05,0x3E,0x74,0xFE,0x09,0x70,0x85,0x48,0xA9,0x0D,0xFC,0x7B,0x67,0xD3, + + 0xA9,0xEC,0x91,0x41,0x54,0x49,0xD0,0x94,0x32,0x0B,0xC7,0x11,0x53,0xF2,0x4A,0x5F, + + 0xBF,0x5D,0x29,0x7A,0x85,0x8D,0xF5,0xCF,0xA1,0x16,0xE8,0x00,0xDF,0x62,0x87,0xEF, + + 0x83,0x49,0x48,0x10,0xCA,0xDC,0x22,0xBA,0xF2,0xDC,0xF0,0x2A,0x97,0x95,0x0F,0xE3, + + 0x77,0x7F,0x99,0xFE,0xE3,0x22,0xE8,0x53,0x5A,0x7D,0x26,0x24,0x5D,0x6E,0x29,0x6F, + + 0x22,0x66,0x65,0x86,0xCA,0x2B,0x49,0x46,0x8F,0x04,0x7F,0x47,0x3A,0xC5,0xD0,0xC2, + + 0x82,0x87,0xF8,0x34,0x59,0x2F,0x54,0x27,0xC3,0x4A,0x83,0x98,0x54,0x17,0xC8,0x17, + + 0x27,0xFE,0x0C,0x90,0x15,0x27,0x62,0x83,0x89,0xEE,0xE0,0x8A,0xFF,0x68,0x79,0x31, + + 0x36,0x0F,0xD4,0x36,0x97,0x64,0xF2,0xF7,0x1E,0xA0,0xED,0xE7,0x43,0x50,0x48,0xCC, + + 0xE0,0x14,0x0F,0xAA,0x7A,0x0F,0x3B,0x75,0x28,0x82,0x26,0x0E,0xD5,0xF4,0xBD,0xEA, + + 0xF1,0x6A,0x80,0x13,0x43,0x2C,0x7C,0xAC,0x0B,0xDD,0xCC,0xBE,0x5C,0xFC,0x82,0x75, + + 0xAA,0x0F,0xC1,0xDC,0x1D,0xDD,0xB6,0xB7,0xF6,0xC4,0xFD,0x34,0xB2,0xFF,0xC7,0xD9, + + 0xF6,0x0C,0x82,0x72,0x15,0x8C,0xD3,0x39,0xF7,0xC7,0x70,0x36,0x06,0xC1,0x2B,0x0A, + + 0x28,0xF4,0xC0,0x6E,0xB8,0x94,0xFA,0xD7,0x28,0x7D,0x30,0x53,0x0C,0x97,0xD5,0xBB, + + 0x8E,0x81,0x02,0xCC,0x1B,0x6E,0x2C,0x5F,0x21,0xE9,0xF3,0xE8,0x64,0x41,0x72,0xA6, + + 0x68,0x0E,0xD6,0xD8,0x19,0x8E,0x3B,0x62,0x9B,0xF9,0xA5,0x5B,0xFA,0x6B,0x11,0x4B, + + 0x61,0x6A,0x83,0xFC,0x9C,0x6C,0x52,0x9A,0x2A,0x02,0xB3,0x27,0x10,0x63,0xDC,0xAA, + + 0x0F,0x82,0xB4,0x2E,0x92,0x6D,0x7C,0x88,0x57,0x5D,0xF5,0x43,0x02,0x60,0xC4,0x50, + + 0x96,0x13,0xBE,0x77,0x0C,0x72,0x12,0x48,0x53,0x9D,0x23,0x80,0xFF,0x72,0xD3,0x87, + + 0x12,0x43,0xF3,0x6C,0xB0,0xCE,0xC5,0xC7,0x52,0x4A,0xF4,0xAA,0xB7,0x85,0x06,0xBC, + + 0xD7,0x6E,0x48,0xA0,0x8F,0x33,0x35,0xA9,0x6D,0x69,0x22,0xA4,0x7D,0x7E,0xB5,0xE1, + + 0xA9,0x92,0x56,0x97,0xB7,0x13,0xFF,0x21,0x29,0x03,0x7B,0xC7,0x1A,0xD5,0xD4,0x6C, + + 0x11,0x10,0xFE,0x26,0x9E,0x3B,0x7C,0x22,0xB6,0x92,0xEB,0x7B,0x85,0xA9,0x51,0xB6, + + 0x00,0x95,0xAC,0x90,0x74,0x3A,0x3A,0x01,0xA1,0x15,0xFC,0x78,0x86,0xFC,0xFD,0x21, + + 0x92,0x0D,0xA5,0x81,0xA5,0x39,0xF2,0x76,0x03,0xF9,0x8D,0xF5,0x81,0xFF,0x73,0x05, + + 0x82,0x97,0xAD,0x91,0x33,0x3A,0x23,0x6F,0x08,0xA1,0xD9,0x95,0xFF,0xA0,0xF9,0x0E, + + 0x40,0x58,0x9A,0x75,0x18,0xA3,0x6E,0x9A,0x9B,0x8D,0xC8,0x3E,0x7C,0xD7,0xA2,0x0B, + + 0x79,0x13,0xA6,0x18,0x64,0x22,0x06,0x9C,0x80,0x21,0xF9,0xB4,0x92,0xEF,0x4D,0x27, + + 0x41,0x2A,0x87,0x70,0xB8,0xE1,0x12,0x82,0xFC,0x67,0x74,0x5E,0x26,0xD1,0x89,0x65, + + 0x34,0xE0,0x30,0xC1,0x98,0x19,0x0C,0x4A,0x6D,0xD6,0x34,0xC7,0x2C,0x87,0x7C,0x20, + + 0xEE,0x53,0x8C,0x31,0x99,0x59,0x08,0x73,0x7A,0xF3,0x51,0xFC,0x09,0xB4,0x04,0xC5, + + 0xD4,0x06,0xAE,0x9C,0x35,0x30,0xF1,0x83,0xB6,0x89,0x5E,0x9C,0x77,0xAA,0x1E,0xDB, + + 0x0F,0x92,0xFF,0x1D,0x4D,0x31,0x34,0xB7,0x1B,0x82,0xF7,0xF1,0x0F,0xF7,0xED,0xBF, + + 0x26,0xE9,0x85,0x62,0x18,0x32,0xED,0xE6,0x07,0xF0,0x5C,0xED,0x88,0xAD,0x8C,0x90, + + 0x1C,0x88,0xFB,0x06,0xC1,0xFD,0x4D,0x50,0xD6,0xDF,0x0D,0x79,0x80,0x25,0x51,0x52, + + 0x41,0x87,0x68,0x12,0xCE,0x5D,0xE5,0x92,0x8E,0x71,0xE6,0x04,0x51,0xAD,0xA3,0x7C, + + 0x0B,0x04,0x0A,0x58,0x29,0x5E,0x11,0x26,0xC2,0x42,0x16,0x10,0x3F,0x47,0xA1,0x7E, + + 0x24,0x72,0x96,0x48,0x68,0xCD,0x03,0x74,0x1B,0x3C,0xD8,0x24,0xFB,0x77,0x32,0x40, + + 0xED,0xE0,0xA0,0x9F,0x10,0x86,0x98,0xE8,0x64,0x12,0x44,0x1D,0xF5,0xE2,0xC4,0x76, + + 0xFA,0x8E,0x51,0xCC,0xE4,0xE5,0xCA,0xC0,0x57,0x00,0x4C,0x09,0xF4,0xA8,0x59,0x3F, + + 0xA7,0xC6,0x61,0x00,0x4C,0x19,0x0E,0x29,0x7B,0xDA,0xDF,0xC5,0x23,0xE9,0x51,0xAF, + + 0x07,0x7C,0xA5,0x83,0x6F,0xEF,0x0F,0x59,0xA1,0x02,0xFB,0x91,0xF3,0x18,0x5A,0x2E, + + 0x2E,0x8A,0xC4,0xC3,0x1D,0xC8,0x08,0xB4,0xBB,0x45,0x94,0x9E,0x84,0x43,0x76,0xF2, + + 0x1B,0xC4,0x06,0x8D,0x0A,0xA3,0x41,0x1E,0x99,0x91,0xEA,0xA0,0xA6,0x12,0x37,0xF7, + + 0x11,0x71,0x04,0xC2,0xB8,0x57,0x54,0xD0,0x2D,0x5C,0x16,0x2A,0x5B,0xFC,0x39,0xE4, + + 0x0B,0x2A,0x2B,0x00,0x8A,0xEA,0x9C,0x76,0xED,0x6A,0xBB,0xFD,0x5E,0xAD,0x32,0xB3, + + 0x4E,0x13,0x55,0x0F,0x18,0x94,0x41,0x62,0xAA,0x79,0x92,0xCD,0x5D,0xE1,0xE1,0x3A, + + 0x0B,0xE1,0x26,0x3C,0x5C,0x72,0x9A,0x45,0x6B,0xA3,0xF2,0x6F,0xA2,0x5B,0xA3,0x83, + + 0x5D,0x73,0x46,0x6B,0x1C,0xE6,0xAC,0x6B,0x4D,0xC0,0x8C,0x10,0x51,0x58,0xFB,0x9C, + + 0xAB,0x8C,0x93,0xDD,0x9A,0xA6,0x3B,0x44,0xC7,0xA3,0x00,0x7D,0x9F,0x83,0x78,0x06, + + 0x33,0x92,0xA2,0xAB,0xDD,0xC1,0x62,0xEE,0x8F,0xB4,0x8B,0xF9,0xA0,0x35,0x29,0xD5, + + 0xEF,0x21,0x45,0x14,0x3C,0x5C,0xF8,0xED,0xD8,0x2D,0x3C,0x47,0x95,0xB1,0x75,0x9B, + + 0xF0,0x3F,0x09,0x15,0xB8,0xBA,0x0D,0x4C,0x07,0xDB,0x12,0x90,0x9F,0x57,0x65,0x86, + + 0xD2,0xEF,0xF7,0x6D,0x16,0xB7,0x67,0x10,0x91,0x91,0x15,0x3D,0x61,0x67,0x2C,0xCE, + + 0x15,0xB0,0xAE,0x19,0x95,0xB9,0x42,0x13,0x86,0x94,0xD4,0xE2,0x97,0x6B,0xD4,0xEF, + + 0x80,0xD4,0xA6,0x2D,0x94,0xB3,0xD9,0xE9,0x0C,0xA1,0xC6,0x09,0x8A,0x74,0xDD,0x3C, + + 0x95,0x52,0xAF,0x28,0x15,0xBB,0xDD,0x69,0x72,0x42,0x5A,0x9D,0x2B,0xB7,0xAD,0x9B, + + 0xA7,0x1A,0xE1,0xD0,0x16,0x3D,0xFD,0x35,0x75,0xD4,0xEE,0x0C,0x16,0x74,0xF9,0x9D, + + 0x2A,0xC2,0x5D,0x0A,0x63,0x7D,0x7F,0x9F,0xCD,0x67,0x13,0xB5,0x17,0x8C,0x17,0x3A, + + 0xC0,0x69,0xE4,0x69,0x9E,0xBF,0x3D,0xA6,0xED,0xA7,0x5D,0x45,0x02,0xF9,0x67,0xAF, + + 0x29,0x34,0xC7,0xCE,0x30,0xB7,0xF7,0x77,0x47,0xE8,0x37,0x69,0x6E,0xF9,0xDF,0x48, + + 0x4C,0xF7,0xE7,0x08,0xDE,0xEE,0xAF,0xF4,0x10,0xA7,0xD7,0x7D,0x7B,0x0E,0x3F,0xC8, + + 0x89,0xDE,0x59,0x2C,0x1A,0xBA,0x95,0x11,0x11,0xDC,0x26,0x14,0x87,0x75,0xA2,0x5E, + + 0x3A,0xE2,0x5A,0xBC,0xC0,0xA6,0xEE,0xE5,0x66,0x69,0x5A,0x8C,0xDC,0x0D,0xAF,0x49, + + 0xA8,0x3D,0xCE,0x5C,0x1F,0x61,0x1F,0x29,0x68,0x2B,0x73,0x1C,0x7A,0x6A,0xFF,0x1C, + + 0xAD,0x6A,0x79,0xB9,0x44,0xFD,0xF7,0x79,0x2A,0x5C,0x08,0x7F,0x42,0xBE,0x5A,0xA9, + + 0x68,0x63,0x68,0x8E,0x32,0xF6,0xF4,0xDE,0x23,0x60,0xF0,0x0A,0x33,0x6F,0xA2,0xE3, + + 0x8D,0x0C,0x7B,0x2F,0xEB,0xB4,0x27,0x77,0x8B,0x11,0xFE,0x54,0x52,0x40,0x7F,0x07, + + 0x61,0x81,0xFE,0x3A,0x6E,0xF7,0xF5,0xDE,0x21,0xFD,0x4E,0x24,0x2D,0x0E,0xF6,0x35, + + 0x75,0x80,0xFA,0xD7,0x12,0x65,0x51,0xA4,0xC7,0x59,0xC3,0x95,0xAD,0x7C,0x67,0xB1, + + 0x9E,0x96,0x53,0xC0,0x7E,0xD2,0x18,0x82,0xEE,0xE9,0x85,0xE6,0xC3,0x10,0x37,0xAD, + + 0x03,0x0B,0x5B,0xD0,0x7F,0x52,0x8C,0xD5,0x00,0x49,0xEA,0x8B,0xA7,0x6A,0xA9,0xCB, + + 0xA0,0xD0,0x7E,0xA7,0xF1,0xC3,0x1D,0x83,0x7F,0xCA,0xE9,0x94,0x71,0x39,0x21,0xD7, + + 0x7F,0x46,0xF3,0xB7,0xF0,0xD7,0x56,0x8F,0x2A,0xFF,0x19,0xB8,0x42,0x61,0x04,0xB8, + + 0x6B,0x23,0x35,0x28,0x6F,0x28,0xD7,0xD8,0x68,0xF9,0x2A,0xD2,0x3B,0x4B,0x58,0x57, + + 0x2D,0xF4,0x31,0xAC,0xDC,0xF6,0x53,0xB5,0xA0,0x19,0x79,0xC2,0xFD,0x84,0x90,0xFA, + + 0x0C,0x87,0xD9,0x62,0xE4,0xD5,0xD3,0xE1,0xB4,0x08,0x04,0xC7,0x7D,0x06,0x1C,0xEA, + + 0x0D,0x86,0x2C,0x1B,0x72,0x4F,0x0C,0x09,0xE9,0x09,0x5F,0xC6,0xBA,0xE0,0xEF,0x37, + + 0x97,0x50,0x55,0xB3,0x4E,0xFB,0x78,0xCD,0x09,0x41,0xFB,0x63,0xFB,0xEB,0x52,0xCC, + + 0x6B,0xF2,0x15,0x26,0x24,0xEB,0x14,0x57,0x1E,0x0D,0x57,0x1E,0x78,0x0D,0xF8,0x07, + + 0x63,0x3E,0x42,0x27,0xED,0xE2,0xD8,0x92,0x02,0xB6,0x93,0x79,0x58,0x4A,0xB4,0x2B, + + 0xE9,0xF0,0x12,0x5D,0x7A,0x90,0x10,0x09,0x49,0x4C,0x1B,0xA0,0x84,0x2E,0x04,0x7F, + + 0x20,0xEF,0x3F,0xE4,0x3C,0xCB,0x2B,0x90,0xF2,0xEF,0x37,0x92,0xAC,0x95,0x0C,0x6F, + + 0xDE,0x11,0x1B,0x8E,0x13,0x85,0xC1,0x28,0x67,0xCB,0xAE,0xB5,0xF4,0x67,0xFA,0x7F, + + 0x5F,0x32,0x7A,0xA1,0x94,0xC6,0x2E,0x11,0x7C,0xCD,0xCB,0x96,0xFC,0xD9,0x09,0x91, + + 0x5E,0xEC,0xD9,0xE7,0x5A,0x70,0xDF,0x59,0x2D,0x1E,0x3C,0xAF,0x6D,0xC7,0xE9,0xBF, + + 0xBF,0x56,0xBC,0xC0,0xD2,0xB5,0x8F,0xAF,0x1D,0xA6,0xD0,0x06,0x56,0xF9,0xE5,0xBE, + + 0x5C,0x15,0xB4,0x64,0x85,0x9A,0xDC,0x2D,0xF1,0xAE,0xF3,0x8B,0xAA,0xE9,0x08,0x45, + + 0x37,0xEB,0xD4,0x36,0x36,0x9B,0x88,0xB1,0x03,0xE9,0x8C,0x18,0x55,0x37,0xB6,0x71, + + 0xF3,0xE5,0x69,0xF1,0x32,0x3A,0xA2,0x83,0x14,0xE8,0x66,0xAF,0xF5,0xAD,0xF9,0x88, + + 0xD7,0xE7,0xFB,0xE7,0xB5,0x9E,0x64,0xAC,0x64,0x16,0xC8,0xA3,0x6A,0x36,0x47,0x31, + + 0x3A,0xAA,0xDA,0xB5,0xD2,0x7D,0xA6,0xA8,0xCE,0x18,0x41,0xBC,0xFA,0x77,0x07,0x76, + + 0xA8,0x1A,0x10,0x4D,0xFE,0x97,0x03,0x8D,0xDB,0xBE,0xF6,0x0D,0x2E,0xC5,0x46,0xC9, + + 0xBA,0xA3,0xB5,0x2C,0x9B,0x94,0xF3,0x39,0x15,0x7B,0x7F,0x82,0xDD,0x15,0x1F,0x51, + + 0x8F,0x6D,0xEE,0x2E,0xBB,0x58,0x0F,0xEE,0x8F,0xC3,0x41,0xA3,0x87,0x00,0x61,0xA7, + + 0xF2,0xA0,0x90,0x1E,0x29,0x7F,0x9B,0x10,0x1C,0x90,0x15,0xC1,0xF6,0x80,0xB8,0x4D, + + 0xB1,0x5C,0xEF,0xCB,0x3B,0x30,0x68,0xAE,0x38,0x54,0x7E,0x93,0x6F,0x3C,0xB4,0xB7, + + 0x40,0x5B,0xCF,0xD1,0xBD,0xC5,0x40,0x99,0xED,0xD4,0x3A,0x02,0x0E,0x29,0xF3,0xF1, + + 0x88,0x0D,0x98,0x41,0x1A,0x1F,0x79,0x1F,0x1C,0xC4,0x27,0xD5,0xD0,0x6D,0x88,0x60, + + 0x67,0xFD,0x92,0xB3,0xE6,0x55,0xE8,0x12,0x6D,0x30,0x87,0xD4,0x09,0xE5,0xC5,0xF9, + + 0xA0,0x2D,0x15,0x65,0xEC,0x1D,0x8D,0x07,0xE6,0x83,0xE3,0x09,0x3F,0x86,0x57,0x14, + + 0xA1,0x2C,0x09,0x09,0x19,0xC6,0x07,0x57,0xAD,0xCE,0xD4,0x13,0x5A,0xE1,0x9B,0x2D, + + 0x7A,0x2B,0x60,0x8F,0xE2,0xA2,0xB7,0x00,0x07,0x84,0x2B,0x64,0x29,0x0C,0xCC,0x30, + + 0xF8,0x08,0xE9,0xB4,0x95,0xAD,0x22,0x73,0xE4,0xC3,0xF2,0x09,0x76,0x07,0xC1,0x2D, + + 0xF0,0x29,0xED,0x40,0x37,0x2E,0x09,0xE1,0xE4,0x74,0xAE,0xCC,0xD0,0x3C,0x16,0xD7, + + 0xD0,0xA8,0x64,0xA7,0x93,0xA8,0x29,0xEE,0x66,0x4F,0xA0,0x74,0x72,0x18,0x82,0x78, + + 0x6E,0xDD,0x16,0x6C,0x91,0xCA,0x4D,0x59,0x65,0xAB,0x05,0x2F,0xD1,0xE4,0xBA,0x1B, + + 0x05,0xA9,0x11,0xA6,0x90,0xCB,0x44,0x3C,0x2E,0xED,0x9D,0xA9,0x36,0x4F,0x5D,0x0C, + + 0x7D,0x85,0x78,0x0F,0xE4,0x55,0x48,0xDB,0x4D,0x7B,0xDB,0xDE,0x1A,0xEA,0xD4,0xE4, + + 0x72,0x8B,0x50,0x60,0x93,0x54,0x68,0x04,0x49,0x14,0x3E,0x4D,0x36,0x6D,0xDF,0x7B, + + 0x16,0x23,0x82,0x0E,0x0B,0x2E,0x76,0x88,0xCC,0xCF,0xAB,0x93,0xFB,0x1D,0xCE,0x38, + + 0xF0,0x36,0x92,0xDC,0x1A,0x7C,0xF2,0xAE,0x2C,0xAD,0xB8,0x3E,0x0F,0xEB,0xC3,0x39, + + 0xB8,0x21,0x9B,0xCD,0x9B,0x5F,0xB0,0x19,0x6D,0xC8,0x0B,0x09,0x51,0x68,0xEB,0x5F, + + 0xD8,0xA0,0xD1,0xBD,0xBB,0x04,0x03,0xFF,0x90,0xC5,0xF7,0x78,0x7E,0x67,0x24,0x82, + + 0x24,0x70,0x00,0xE4,0xCB,0xF2,0x98,0xE0,0xE7,0x04,0xF4,0x99,0x7C,0x9C,0x2C,0x92, + + 0x2D,0x88,0xAA,0x32,0x2D,0xB5,0x5A,0xB6,0x0E,0x57,0xF6,0x54,0x34,0xE1,0x25,0x83, + + 0xA4,0x03,0xAB,0x83,0xB7,0xF2,0xD7,0xBC,0x2A,0x79,0x9D,0x65,0x0D,0x7E,0x2D,0x93, + + 0xE1,0xB5,0x97,0xE4,0x93,0xBA,0xBD,0xC1,0x0E,0x16,0xC3,0x24,0x9E,0x45,0x3A,0xC5, + + 0x26,0x39,0x0B,0x44,0x37,0xD3,0xC2,0xDB,0x60,0x35,0x0F,0xA1,0x8B,0x42,0x64,0xC3, + + 0xCE,0xD1,0x48,0xB4,0x76,0x95,0x9B,0x32,0x23,0x29,0x10,0xF4,0x7F,0x99,0xC5,0x3C, + + 0x29,0x20,0xDF,0x25,0x34,0x9E,0x80,0x81,0x15,0xBA,0x4E,0x7D,0xF7,0x96,0x96,0xA8, + + 0x58,0xD6,0x95,0x15,0x34,0xB9,0x46,0xAC,0x32,0x6A,0xB5,0x9C,0xD3,0xF1,0xE6,0x56, + + 0xD6,0x65,0x20,0xFF,0x40,0xB1,0x48,0x9D,0x07,0x7D,0xB7,0xB0,0x98,0x0C,0x50,0x9C, + + 0xCC,0x1A,0x71,0x9E,0x19,0xA2,0x5F,0xA0,0xBD,0x6D,0xE0,0x8C,0x3D,0xB5,0x31,0xE9, + + 0xCC,0x80,0x23,0x72,0xB4,0xFB,0xB6,0x58,0x0C,0x96,0x01,0x5E,0x14,0xBE,0x66,0x68, + + 0x21,0x16,0xFB,0xF9,0x30,0xD9,0x18,0x4A,0x71,0xC9,0xDE,0xB1,0x2D,0x8F,0x06,0x95, + + 0x8D,0x17,0x46,0x0C,0xB2,0xB2,0xDD,0xF3,0xEE,0x42,0xA6,0x73,0xDF,0x76,0x14,0x2A, + + 0xFC,0x92,0x8E,0x9F,0xCA,0xB0,0x27,0x6A,0xCA,0x22,0x34,0x8C,0xDC,0xFB,0x63,0x29, + + 0x2C,0x62,0x9F,0x0D,0x1F,0xFD,0xD8,0x95,0x33,0x9F,0x0C,0x0D,0x7C,0xB6,0x0F,0x84, + + 0x48,0x32,0xE5,0xDE,0xB9,0x2C,0x45,0x05,0x8C,0x56,0xAF,0x62,0x5E,0x75,0x7F,0xE2, + + 0x82,0x03,0x73,0x10,0xED,0xAB,0xEF,0xDB,0xC2,0x48,0xE0,0x5A,0xF3,0x05,0x28,0x69, + + 0xA0,0xFE,0xB2,0xA4,0x8C,0x8E,0x65,0x14,0xA8,0x11,0x90,0x83,0xB0,0x6E,0x46,0x73, + + 0x23,0x04,0xEA,0x39,0x7B,0x66,0xEE,0x43,0xE0,0x4F,0x2E,0xC7,0xF4,0x64,0x23,0xC1, + + 0xDD,0x05,0x2D,0x77,0x6E,0x62,0xE4,0x4A,0xFD,0x3C,0xF9,0x75,0x37,0x6E,0x46,0x49, + + 0x26,0x02,0xB8,0x60,0x93,0x29,0xEF,0x82,0x66,0xC9,0xA8,0xE6,0x74,0x2C,0x28,0x10, + + 0xEF,0x08,0x08,0x89,0xAA,0x2B,0x98,0x45,0xFD,0x48,0x13,0x16,0xAE,0x0B,0x49,0x76, + + 0x23,0xD9,0xE9,0x42,0x13,0x62,0xAE,0x91,0x2E,0xB7,0xA9,0x42,0x71,0x26,0xE5,0xCF, + + 0x0E,0xF1,0x69,0x97,0x1F,0x29,0xA2,0x36,0xCD,0x48,0xBE,0x35,0x93,0x9A,0x52,0x85, + + 0xAB,0x48,0x2A,0x90,0x2B,0x4C,0x28,0x8D,0xFF,0xB5,0xD8,0xD2,0xFB,0x65,0xAD,0xB8, + + 0xD9,0x2A,0x4A,0xDC,0x0A,0x6B,0x3A,0xD2,0x2A,0x4D,0xE2,0xBE,0x58,0xEE,0xC8,0x6B, + + 0x5C,0xFB,0x39,0xF6,0xE7,0x0A,0xBF,0xA6,0x7D,0xC3,0xD9,0x30,0x99,0x62,0x2C,0xBD, + + 0x34,0x02,0x45,0xA9,0x78,0x84,0x7A,0x79,0xC5,0xBE,0x20,0xDF,0x75,0x96,0x4A,0x4D, + + 0x85,0x08,0xFA,0xE8,0x98,0x64,0xD5,0xD7,0x5E,0x63,0xB5,0x93,0x7E,0x00,0xDA,0x9F, + + 0xF6,0xBB,0x0A,0x04,0x46,0x2B,0x15,0x5E,0xA2,0x7D,0x7D,0x7A,0x8F,0x09,0x47,0x0E, + + 0x89,0x01,0x0C,0xBD,0x96,0x21,0xD3,0x84,0x12,0x0C,0xEC,0xF2,0x25,0x2F,0xF0,0xC3, + + 0x8A,0xEF,0x43,0x5A,0xF8,0xAF,0x03,0x74,0x81,0x7F,0x66,0x1D,0x9F,0x1D,0x36,0xB0, + + 0x22,0xBF,0xFE,0x87,0x5C,0x30,0x4F,0xF3,0x1B,0x23,0xF4,0xE4,0xC6,0x7D,0xB9,0x63, + + 0xAD,0x50,0x11,0x94,0xB9,0xFB,0x04,0xB5,0x1E,0x71,0xD6,0xA9,0xD2,0x77,0xA5,0xF2, + + 0x03,0x91,0xA1,0xB9,0xB0,0x12,0xD5,0x68,0xAD,0xAF,0xDF,0x5B,0x53,0x7F,0x17,0x93, + + 0x4A,0x1C,0x8D,0x95,0x4C,0x92,0x8D,0x4C,0xE1,0x12,0x95,0x1F,0x04,0x7C,0x51,0xFF, + + 0x16,0x55,0x54,0x46,0x10,0x54,0x36,0xF1,0x61,0x34,0xAE,0x14,0x7A,0x7B,0x5B,0x23, + + 0xA7,0x98,0xB3,0x56,0x11,0x55,0xDD,0xC0,0xDC,0x39,0x97,0x84,0x92,0x6E,0x7F,0x3B, + + 0xF8,0xEB,0xFF,0x27,0x90,0xC9,0x6F,0xE3,0xA6,0xFB,0xF3,0xBC,0xB9,0x36,0x9E,0x22, + + 0x2F,0x1A,0x97,0xD4,0x10,0x76,0x99,0x0E,0xC7,0x3B,0x5E,0x13,0xC0,0x4C,0x47,0xEE, + + 0x49,0x1C,0xBE,0xBD,0x99,0xB9,0x2C,0x52,0x93,0x23,0x22,0xD3,0xDB,0x39,0x75,0xBF, + + 0x88,0x77,0xDC,0xD6,0xD2,0x5D,0x67,0x3C,0x65,0x56,0x66,0xB4,0x98,0x36,0x61,0x6B, + + 0x8C,0x17,0xE0,0x7E,0x3C,0xB7,0x57,0x45,0x84,0x65,0xCE,0xD8,0x9B,0x7E,0x6D,0x91, + + 0x58,0x92,0xB7,0x67,0x15,0x36,0xC2,0x80,0xDE,0x2C,0xC6,0xCD,0x9A,0x80,0x55,0x32, + + 0xD3,0x17,0xFC,0x32,0xE7,0xE1,0x0B,0x04,0x87,0x47,0x2C,0x04,0x34,0x33,0xDE,0x5A, + + 0xA3,0x65,0x05,0x3F,0x6F,0xEA,0xDF,0x1A,0x8B,0xE2,0x01,0x08,0x0C,0x3D,0x3B,0x96, + + 0x5B,0xE2,0x68,0xBF,0x41,0x7C,0x0E,0x7F,0xA8,0xFA,0x47,0x69,0xCC,0xA0,0x77,0xB9, + + 0xA7,0x5F,0x5A,0x2F,0x9F,0x39,0x9F,0x21,0x7F,0x1E,0x5F,0x24,0x45,0x79,0xE5,0x8F, + + 0xED,0xC3,0xA5,0xEE,0x27,0x6F,0xB1,0x06,0xB9,0xAC,0xC8,0x02,0xD6,0xE3,0x7E,0xB3, + + 0xEE,0xE5,0xF1,0x15,0xF2,0xED,0x5F,0xCD,0x61,0x3A,0xE2,0x1D,0xF6,0x84,0xB4,0xF0, + + 0x00,0x0F,0x09,0x13,0x11,0x72,0x56,0x63,0x84,0x3F,0xF0,0x87,0x90,0xD2,0x11,0xEC, + + 0x6C,0x80,0x29,0xD1,0x99,0xE2,0x39,0x17,0xF6,0xB2,0xE3,0x15,0x76,0xE7,0xDF,0xD9, + + 0xF9,0x59,0x98,0x62,0x10,0x1E,0xB0,0xAE,0x90,0x86,0xCF,0x84,0xFA,0xE0,0x57,0xCD, + + 0xF8,0x18,0x1D,0xD2,0x6D,0x83,0xE3,0x56,0xA6,0x87,0x75,0x86,0x5B,0xEA,0x02,0xBD, + + 0xA2,0xEA,0x8B,0xBA,0x94,0x7D,0xBE,0x9B,0xC0,0xBE,0x0F,0x43,0x54,0xEE,0x8A,0xAD, + + 0xA3,0xE9,0x29,0x1F,0x07,0xE7,0x2A,0x45,0x45,0xDB,0x99,0x37,0xC2,0x6A,0xB7,0xF9, + + 0x88,0x05,0x8E,0x1A,0x95,0xCC,0x8A,0xD5,0x3F,0x64,0x34,0xDE,0xE4,0xE7,0x95,0xF8, + + 0x8D,0xC4,0xA6,0x4D,0xED,0x68,0xB4,0x45,0x6E,0x19,0x4A,0x2A,0x79,0xEF,0x75,0x36, + + 0x67,0xEE,0xAF,0x5C,0x28,0x62,0x6C,0x9F,0xCA,0xF0,0x07,0xDF,0xFC,0xE5,0xBB,0xEA, + + 0x2E,0xCB,0x23,0x49,0xF7,0x8B,0x62,0x03,0x68,0x34,0xB3,0x90,0x3C,0xE4,0x22,0x75, + + 0x06,0xE0,0xEF,0x43,0xFF,0x03,0x80,0x88,0xA7,0x35,0x8A,0x4A,0xDC,0x10,0x14,0x73, + + 0xC7,0x73,0x8A,0x1E,0xA1,0xA2,0x1A,0x30,0xE9,0xC2,0xB4,0x93,0x57,0xAD,0x03,0x0B, + + 0x6A,0x83,0xE6,0xA7,0xAD,0x61,0x01,0x94,0x86,0x43,0x89,0x1D,0x7D,0x9A,0xFA,0xDD, + + 0x73,0x5A,0xE9,0xBD,0x18,0xFA,0xEB,0x08,0xDB,0xA3,0xB0,0x0F,0x5D,0x13,0x04,0x10, + + 0xA4,0xD1,0xDB,0xA1,0x95,0x6F,0x69,0xAA,0x57,0xD0,0x4C,0xAE,0x17,0x0F,0x54,0x10, + + 0xF8,0xCE,0x65,0x92,0x7D,0x97,0x6C,0x26,0x84,0xDE,0x44,0x5E,0x7E,0xBE,0x45,0xDC, + + 0x1B,0x6F,0x11,0xE5,0x4B,0xA9,0xF5,0x73,0x83,0xD4,0x4D,0xD5,0xC7,0x18,0x12,0x71, + + 0x27,0x6F,0xCD,0xD7,0x1B,0x3E,0x89,0xCC,0x46,0x92,0x2D,0xC4,0xED,0x9F,0xA9,0x2A, + + 0xCF,0x6D,0xE8,0xBD,0x97,0x3E,0x14,0xA6,0x1D,0x5F,0xFC,0x41,0xD7,0x0B,0x3C,0xD2, + + 0x21,0x6F,0xA6,0x28,0x31,0x26,0x76,0x76,0x2F,0x72,0x6C,0xE7,0x6B,0xF3,0x1F,0xA3, + + 0xAA,0xD6,0x1E,0x25,0x1A,0xBB,0xF5,0x01,0x64,0x95,0xCF,0x05,0x0B,0xF9,0xA2,0xF7, + + 0x94,0xB1,0xB8,0xF3,0x84,0xAC,0x3B,0x22,0xAC,0x7D,0x50,0x17,0x56,0x77,0x5B,0xE5, + + 0x8F,0x9E,0xDE,0x0C,0x3D,0xFF,0xED,0xAB,0x0F,0x2E,0xD0,0xA2,0x7F,0x68,0x56,0x18, + + 0x2C,0xE4,0x96,0x4E,0x61,0x31,0x06,0x41,0x90,0xB5,0x71,0x46,0x7B,0x73,0x88,0x61, + + 0x45,0x30,0x9F,0xDF,0xB4,0xB5,0xA4,0x2F,0x80,0x36,0x77,0x76,0x58,0xB8,0x75,0x9A, + + 0x0E,0x98,0x9F,0x7D,0x3F,0xB3,0x58,0xFB,0xAD,0x0B,0x6F,0x3B,0xA2,0xD3,0xDC,0x8D, + + 0xEC,0x4E,0x5C,0x30,0xD7,0xEC,0xE6,0xB5,0x0F,0xBC,0x8E,0xCA,0x7E,0xFC,0xD4,0xCE, + + 0x29,0xE7,0x2E,0x06,0xAB,0xFC,0x44,0x4A,0x49,0x29,0xFE,0xFE,0x7F,0xFD,0x2F,0xD3, + + 0x9D,0xB8,0x44,0x2D,0x5E,0x01,0xD8,0x99,0x92,0x21,0xF7,0xEF,0xFE,0xFE,0xB8,0xA5, + + 0x0C,0xFA,0x8F,0x9B,0x3B,0x32,0xDF,0x08,0x63,0x62,0xFF,0xFF,0x9E,0x15,0x10,0x95, + + 0x02,0x6E,0xD9,0x17,0xF7,0x3B,0xBA,0xD1,0x46,0xE0,0x13,0xCC,0x98,0xAD,0x1B,0x98, + + 0xA4,0x88,0xAD,0xE2,0x7A,0x80,0x1E,0x22,0x47,0x21,0x9E,0x4A,0x8F,0xAE,0x58,0x86, + + 0x25,0x84,0xA0,0xF1,0xB6,0x39,0x59,0xC9,0x52,0x00,0x6A,0xE2,0x0E,0x6A,0x29,0x83, + + 0x09,0x0B,0x6B,0xE8,0x57,0x2C,0xA5,0xB3,0x04,0xE8,0xB9,0x25,0x30,0x78,0x41,0x3F, + + 0xA5,0x07,0x5F,0xD1,0x11,0x84,0x33,0x06,0xB1,0x54,0xB3,0x02,0xA5,0x74,0x9A,0x90, + + 0x4B,0x47,0x8E,0xBC,0x83,0xE8,0x3F,0x8F,0xB6,0xD3,0x60,0x8E,0x43,0x28,0x81,0x4D, + + 0x84,0x77,0x01,0x38,0xDE,0x2C,0xE9,0x9A,0x4F,0xBB,0x69,0x9A,0xE1,0x8F,0xD6,0x8B, + + 0x03,0xF5,0x36,0x35,0xCF,0x49,0xA2,0x4A,0xA7,0xDC,0xA6,0x32,0x0D,0x98,0x82,0xCF, + + 0x2C,0x64,0xD2,0x99,0x14,0x2B,0x92,0x39,0x92,0x4E,0xB4,0xDA,0x6B,0xCC,0xF2,0xF0, + + 0xC1,0xC6,0xF5,0x5B,0x2A,0x4F,0x52,0xD0,0x09,0x0B,0x92,0x2C,0xDE,0x5B,0x93,0x7B, + + 0xBB,0x1F,0xC1,0x11,0x71,0x8B,0xB9,0xD8,0xCE,0xEA,0x29,0xEA,0x1A,0x3A,0xA3,0x90, + + 0xBA,0xCF,0x33,0x86,0x3E,0x39,0x1D,0xA5,0xCF,0xB2,0xA1,0xCB,0xFB,0x59,0x1B,0x53, + + 0x6D,0x4C,0xA4,0x7D,0x1B,0xEC,0x52,0xEC,0x37,0xEA,0xE9,0xF2,0xAD,0x51,0x21,0xB0, + + 0xD3,0xA0,0xEA,0x4C,0xFA,0x36,0xE2,0x41,0xEC,0x5F,0x27,0x0E,0x99,0x6D,0x63,0xD4, + + 0x8C,0xF7,0x7C,0xDE,0xF2,0xE1,0x5B,0x65,0xF9,0xF8,0x2E,0x2A,0x3B,0x18,0x5D,0x6D, + + 0x6C,0xC2,0xEA,0xAB,0xA8,0x3B,0xE3,0xC1,0x4B,0x6E,0x22,0x3A,0x26,0x19,0x5E,0x84, + + 0x87,0x00,0x3C,0x7A,0x5B,0x3F,0xD4,0xB1,0x63,0x4B,0x55,0xA1,0x50,0x32,0x55,0x82, + + 0xC6,0x0A,0xF3,0x7C,0x7E,0x7C,0xDC,0xFC,0xA1,0x5B,0xA2,0x60,0x52,0x29,0x5F,0x49, + + 0x07,0x9F,0x83,0xB7,0xD0,0x92,0xA5,0x25,0xA8,0x67,0xCD,0x21,0xD1,0x6B,0xED,0xE7, + + 0x92,0x87,0xF6,0x52,0x6B,0x3B,0x5D,0x59,0x59,0x1E,0xC4,0xC5,0x54,0xAC,0xDB,0x91, + + 0x23,0x54,0x3B,0x83,0xCB,0xC2,0x54,0x06,0x51,0x40,0x78,0x60,0x0F,0xB3,0xF6,0x55, + + 0x2D,0x9F,0x95,0x52,0xD6,0x0A,0xE6,0x10,0x29,0x7C,0x1A,0x70,0x0E,0x95,0x49,0x9A, + + 0x91,0x82,0x3A,0xBF,0x64,0xE9,0x8F,0xED,0xD1,0x42,0x15,0x98,0xBC,0x7C,0x9A,0x2E, + + 0x1C,0x79,0xB2,0x51,0xCE,0x91,0xAC,0x75,0x9E,0x7C,0x95,0x71,0xC0,0x43,0xFC,0x0C, + + 0x09,0xBA,0x85,0x64,0xFC,0xF5,0x14,0x4E,0xCD,0xDE,0x97,0xCA,0x87,0xA5,0xF1,0xEB, + + 0x7E,0xED,0x1E,0x68,0x31,0x3D,0x2F,0x48,0x2D,0x16,0xA4,0x23,0x86,0xF4,0x39,0xE9, + + 0xC8,0xC5,0x6B,0x1F,0xB0,0x30,0x13,0xE9,0xFC,0x41,0xC7,0xDA,0xB4,0x16,0x77,0xAB, + + 0x56,0x00,0x4D,0xE7,0xD2,0x34,0x8F,0xCB,0xDA,0x6E,0x7C,0x43,0xCA,0x92,0x79,0x47, + + 0x2C,0xE5,0xCE,0x49,0x09,0xD5,0x0F,0xF2,0x8F,0x30,0xE8,0xDD,0x1E,0xB3,0xD1,0xCD, + + 0x2A,0x7D,0x97,0x46,0xE2,0x72,0xC1,0x6E,0x68,0xDD,0xD6,0xF0,0x48,0x68,0x8F,0x09, + + 0xBA,0x5C,0x7F,0x36,0xAA,0x73,0x93,0x12,0x67,0x1C,0x6D,0xAA,0x38,0xDE,0x5F,0x51, + + 0xDE,0x04,0xCE,0xA6,0x1C,0x24,0x06,0xF3,0x8C,0x1C,0x85,0xF8,0x5C,0x3E,0xDA,0xEA, + + 0xD6,0xCF,0x18,0x94,0x14,0xEF,0x8C,0xA6,0x0C,0x67,0x75,0xCE,0x9C,0x4D,0xD2,0x54, + + 0x1B,0x9A,0xF8,0x61,0x17,0xA2,0x02,0xDA,0x89,0x0E,0x72,0x56,0x51,0x6C,0x20,0xE5, + + 0xB7,0xB6,0xF8,0x81,0x31,0xB2,0x31,0x23,0xC4,0xC2,0xA7,0x13,0x33,0x4F,0x08,0xE7, + + 0xA3,0xC2,0x6F,0x13,0x12,0x61,0x59,0x65,0xE8,0x81,0x43,0xDF,0x1D,0x2E,0x8C,0xD0, + + 0x0E,0x8C,0x5A,0xA6,0x12,0xEA,0xDC,0x10,0x8C,0x05,0x49,0x16,0xD6,0xFB,0xA8,0x5F, + + 0x01,0xF4,0xF4,0x14,0xFE,0x6F,0x03,0x35,0xBA,0x73,0xB0,0x7B,0x64,0x73,0x21,0x31, + + 0x61,0x85,0x24,0x67,0x88,0xE6,0x0E,0x11,0x04,0xC6,0x4A,0x17,0x56,0xF0,0xBB,0x93, + + 0xC3,0x9C,0xB1,0x0A,0xA4,0x6D,0x42,0x03,0x47,0xD8,0xC2,0x91,0xC7,0x5A,0x8A,0x8F, + + 0x89,0x9A,0x4A,0x9B,0x2F,0xEE,0x34,0xEA,0x7F,0x8D,0x5E,0xBC,0x4C,0xE0,0xEA,0x67, + + 0xDE,0x92,0xF0,0x26,0xBA,0xA8,0xFA,0x2B,0x15,0xC1,0x8B,0x2E,0xFA,0xA8,0x8B,0x9E, + + 0x09,0x48,0xF9,0x0E,0x3B,0xBA,0xF3,0x3A,0x0C,0xA4,0x35,0x5D,0x3B,0xF1,0x88,0xED, + + 0xBE,0xCD,0xEE,0xCF,0xAE,0x81,0xBE,0xB9,0x08,0xA2,0xAB,0xAE,0x99,0xEA,0x53,0xBA, + + 0x4E,0xC3,0x5A,0xAE,0x0B,0xEE,0xC9,0x1A,0xCE,0xDA,0x0A,0x86,0xCE,0x27,0x66,0x38, + + 0x2D,0x2F,0xCA,0xAB,0x2C,0x3B,0x1D,0x1C,0x85,0x0C,0xA2,0x6A,0x6C,0xF8,0xF3,0x6B, + + 0x88,0xCE,0x7C,0x1E,0x9F,0xEE,0x3B,0xEB,0x43,0xD5,0x72,0x87,0x4E,0x23,0xEB,0x1A, + + 0x2E,0xCD,0x53,0xA1,0x8F,0xE2,0x83,0xF3,0x6A,0x49,0xA1,0x7B,0x78,0xAE,0x95,0xF1, + + 0x87,0xDF,0xA2,0xB4,0x54,0x10,0xCC,0x86,0x85,0x7F,0x0C,0x5C,0x64,0xBD,0xF3,0x12, + + 0x52,0xE4,0xA4,0x03,0x06,0x75,0x86,0x4C,0xE8,0xB3,0xA6,0xB4,0xC6,0x6C,0x24,0xFC, + + 0x03,0xD3,0xDA,0xF9,0x3B,0x04,0x23,0x5C,0xD7,0x94,0xCA,0x60,0x2A,0x2F,0xED,0xE3, + + 0xD5,0x68,0x17,0xE7,0xBD,0xBA,0x43,0x87,0xD6,0xF7,0xA7,0xB5,0x67,0xFB,0x45,0xB4, + + 0xD9,0xFA,0xC5,0x32,0x10,0xB0,0x24,0x66,0x2E,0xD5,0xCE,0x0E,0xEE,0x3B,0xD3,0x41, + + 0x4F,0x5A,0x7E,0x26,0xB7,0xAA,0x25,0xF8,0x82,0x2A,0x01,0xD8,0xD4,0x6E,0x03,0xF2, + + 0xA7,0x56,0xAD,0x00,0x4B,0x10,0x33,0xE7,0xCF,0x5B,0x65,0x63,0x8B,0x92,0x4D,0xC3, + + 0x46,0x8C,0x76,0x5D,0xB6,0x47,0x91,0x60,0x8F,0xDF,0xD9,0x0E,0x76,0x0C,0x66,0x76, + + 0x90,0xDA,0x27,0x7A,0x38,0xA3,0x8E,0xCA,0x24,0x73,0x34,0xF0,0x8D,0x24,0x94,0xDD, + + 0xEF,0x9B,0x54,0x9C,0x73,0x34,0x5E,0xF0,0xBD,0xD4,0x59,0x3A,0x00,0xDB,0x76,0x8B, + + 0x9F,0x7E,0x81,0xFC,0xD4,0x7B,0x21,0xAA,0x93,0x9A,0x18,0xD4,0x21,0xE1,0x67,0x0A, + + 0xE9,0x9D,0xF6,0x89,0x5A,0xBF,0x4D,0xBA,0xE7,0x56,0xF7,0x3B,0x08,0xB4,0x47,0x3C, + + 0x1D,0x88,0xBF,0xBB,0x9B,0x43,0xF4,0x95,0xA4,0x7D,0x97,0x12,0xE2,0xBC,0xAB,0x7A, + + 0x31,0x14,0x41,0x38,0x2F,0x40,0x27,0xF0,0x88,0xB3,0x59,0x5E,0x96,0xF4,0xDD,0x2B, + + 0xAA,0xD0,0xE6,0xA9,0x8D,0x28,0x8D,0xE9,0xAE,0x53,0x3D,0x40,0x2A,0x0F,0xAF,0xA6, + + 0x84,0x84,0x17,0xDD,0x99,0xA4,0xBF,0x86,0x09,0x9D,0xD8,0x1D,0x1F,0x5E,0x38,0xFF, + + 0xE9,0x0F,0x98,0x34,0xE7,0x8F,0x29,0x53,0x61,0xC1,0x87,0x3F,0x20,0xF4,0x48,0xE3, + + 0x27,0xDC,0xB6,0x25,0x9C,0x87,0x66,0x19,0xA8,0x70,0x00,0xB0,0x2C,0x80,0xD5,0xFF, + + 0x7D,0x83,0x13,0x77,0x7B,0x83,0xEA,0xD2,0xF4,0xCF,0x04,0x1B,0xF9,0x97,0x5B,0xBE, + + 0x6A,0x20,0x42,0xD5,0xBC,0x8E,0xB5,0xA2,0x96,0x49,0x2E,0x09,0x25,0xD2,0x41,0x26, + + 0xE9,0x55,0xC8,0x80,0xF3,0x8B,0x38,0x02,0xB5,0x06,0x56,0x99,0xC0,0xBF,0x5B,0x23, + + 0x37,0xA4,0x91,0x7B,0xB6,0x83,0xFB,0x45,0x9B,0x84,0x81,0x5A,0xF6,0x3A,0x7B,0xB2, + + 0xBE,0xA9,0xD4,0xB6,0xA6,0x48,0x53,0x8C,0x1E,0x57,0xF3,0xE1,0xC9,0x98,0x71,0xAE, + + 0x6A,0x36,0x58,0xDD,0x36,0x81,0x7A,0x40,0x41,0x43,0xD8,0x13,0x6C,0xDC,0x58,0x4A, + + 0x74,0xA7,0x93,0x3D,0xB9,0xD7,0x1A,0x5B,0x2C,0xC9,0x52,0x3C,0x67,0x73,0xBD,0x1E, + + 0xFE,0xA2,0x35,0x2C,0xA8,0xD6,0x0C,0xC6,0x22,0x3A,0x25,0xDA,0x7D,0x25,0xA3,0xF9, + + 0x00,0xD9,0xBD,0x38,0xB6,0xF5,0x11,0xD6,0x29,0xE9,0xA3,0x53,0x7F,0x7A,0xDE,0x19, + + 0x41,0x02,0x30,0xAD,0x61,0xF4,0x1B,0x2A,0xFD,0xD8,0x5B,0x7B,0x93,0x27,0x96,0xB6, + + 0xF7,0x8D,0xD7,0x8C,0x1E,0x01,0x42,0x0A,0xBD,0x29,0x92,0x94,0xE6,0x97,0xB1,0x27, + + 0x38,0xED,0xF2,0xA2,0xB7,0x20,0xDE,0x06,0x2A,0x18,0x16,0x0D,0xB2,0xFC,0xE7,0xB6, + + 0x6B,0xDD,0xB5,0xC9,0xE7,0x0D,0x6B,0x19,0x81,0x45,0xB2,0x91,0x1A,0x2C,0xE0,0x1E, + + 0x85,0xD3,0x36,0x13,0x6E,0x73,0x43,0x7D,0x62,0x81,0x68,0x50,0xE8,0x8F,0x7C,0x2D, + + 0xCB,0x83,0xFB,0x7C,0x30,0x4B,0x94,0x92,0x94,0x5F,0x6D,0xAC,0xD5,0x0F,0x8C,0x54, + + 0xBA,0x0A,0x53,0xD6,0x46,0x36,0xA7,0x01,0x09,0xFE,0xE5,0xDA,0x10,0x75,0xB2,0xA9, + + 0x54,0xF3,0x90,0x74,0xD6,0xC3,0x03,0x95,0x0B,0x93,0x79,0x3E,0x93,0x76,0x3C,0xF7, + + 0x80,0x92,0x4D,0x41,0xCA,0x5F,0x0B,0xA0,0xD9,0x57,0xFC,0xF5,0xBD,0x70,0xC4,0x3B, + + 0xC3,0xB7,0x7F,0x9E,0x34,0xCD,0x5E,0x9F,0x43,0x14,0xAC,0xC3,0x11,0x21,0x97,0xFF, + + 0x25,0x0F,0xF3,0x36,0x7B,0x64,0x7C,0x0E,0x98,0xCA,0xA4,0xD3,0x9A,0xE4,0x50,0x3B, + + 0xDD,0x14,0x91,0xBF,0x11,0x53,0x69,0x37,0x03,0xAD,0xAD,0xC2,0x1B,0x07,0x26,0xAE, + + 0xF6,0x1E,0xF3,0xF9,0x90,0x77,0xE8,0xD9,0x57,0xB6,0xA5,0xD2,0x1A,0x06,0xEA,0x1A, + + 0x64,0x10,0xDF,0xBB,0x9D,0x9E,0x63,0x8C,0x89,0xF7,0x56,0x38,0xFF,0xDA,0x9E,0x64, + + 0xA1,0xE2,0x11,0x0D,0x3A,0xD9,0xAC,0x5E,0x79,0x16,0x5A,0x43,0xF6,0x04,0x05,0xEF, + + 0xEA,0x55,0x16,0xFE,0x80,0x78,0x81,0x5A,0xD8,0x41,0xB7,0x29,0x05,0x16,0x27,0x1D, + + 0xC8,0x8A,0xB1,0xB4,0x1E,0x2B,0xC4,0x97,0x96,0xCC,0x78,0x4D,0x79,0x64,0xC6,0xAB, + + 0xED,0x70,0xC0,0xE5,0xBA,0x5B,0x63,0xDC,0xDA,0xFD,0xAE,0xCB,0x93,0xED,0x4A,0x98, + + 0x2F,0x53,0xCE,0x24,0xBA,0xC6,0x76,0x9A,0x96,0x51,0x74,0x89,0xD8,0x18,0x1E,0xC7, + + 0x4F,0x98,0x07,0xB0,0x6C,0x85,0x97,0xEC,0x49,0x83,0xAF,0xC9,0x1B,0x78,0x8F,0x25, + + 0x23,0xE4,0x8F,0x21,0x07,0x7D,0x67,0x7B,0x6B,0x1E,0xA7,0xDA,0x58,0x1A,0x73,0x2D, + + 0x26,0xD5,0x9E,0x32,0xAB,0xFB,0x85,0x0A,0xF0,0x21,0xF2,0x60,0x42,0xA2,0x7C,0x16, + + 0x02,0xBF,0xD8,0x92,0x73,0xBB,0xF8,0xF6,0xDE,0x6C,0xE6,0xB2,0x34,0xAF,0xB6,0x38, + + 0xA2,0x17,0xA1,0xFE,0x15,0x39,0x06,0x17,0x34,0x63,0xAF,0xC8,0xD2,0x6B,0x84,0x6C, + + 0x18,0xDF,0x97,0x26,0xFD,0xAE,0xA8,0xC2,0x66,0x83,0x55,0xDF,0x49,0x2E,0xA4,0x88, + + 0xBD,0xFB,0x59,0xE3,0xDC,0xA9,0x10,0x60,0x26,0xC9,0x5C,0xC3,0x83,0x87,0xB7,0x52, + + 0x70,0x8A,0x5F,0x6E,0xE2,0xC6,0x18,0x70,0x63,0xC8,0xD3,0x08,0x86,0xA7,0x3E,0xC3, + + 0xF5,0xF3,0x9C,0xAD,0x62,0xD7,0x8A,0x44,0x67,0x39,0x5A,0xAD,0x6D,0x59,0xA9,0x52, + + 0xAE,0xC5,0x8F,0x35,0x6C,0x38,0x02,0x54,0x66,0x3E,0x66,0xE9,0xA8,0xE5,0x99,0x44, + + 0x67,0x69,0xB0,0xB4,0xF7,0xEC,0x00,0x14,0xEF,0x69,0xD0,0x2F,0x4E,0x25,0x75,0x9A, + + 0x7E,0xFE,0x0E,0x60,0xBE,0xCC,0x6C,0x0F,0xA6,0x28,0xE3,0x24,0xB8,0x16,0x07,0xFA, + + 0xBC,0x86,0x99,0xBF,0x28,0x05,0x22,0xD8,0xFC,0x17,0xD1,0x2F,0xDD,0xE9,0xEB,0x66, + + 0x01,0x2F,0x14,0xFD,0x74,0x6A,0x05,0x5B,0xA6,0xC4,0xC4,0xD7,0x39,0xA6,0xFD,0xEB, + + 0xAF,0x73,0x22,0x4B,0xBD,0x21,0x2A,0x6E,0xBF,0x15,0x29,0x41,0x58,0x46,0xC5,0xAC, + + 0x1F,0x70,0x93,0xDA,0x5C,0x66,0x25,0x6F,0x30,0xCC,0xA0,0x50,0xFC,0x88,0xD7,0x29, + + 0xBD,0xDA,0x3E,0x4D,0x29,0x91,0x6B,0x6F,0x67,0x00,0x53,0xED,0x1B,0x07,0x91,0x28, + + 0xBB,0x0E,0xC4,0x20,0x46,0x33,0xA0,0x79,0xC9,0x15,0xA1,0xAE,0x7C,0x8A,0xFF,0x81, + + 0x5B,0x9C,0x9A,0xAA,0x93,0x1D,0xE9,0x72,0xD3,0x6F,0x2D,0x2C,0x75,0xB0,0xB3,0x54, + + 0x23,0x38,0xBD,0xE4,0x5F,0x50,0x8D,0xD4,0x8E,0xA2,0x7C,0xCB,0xF9,0x5A,0xE5,0x2B, + + 0xA4,0xD0,0x37,0xB6,0x84,0x1D,0xF5,0x6A,0x10,0xC9,0x5D,0x2B,0x73,0xB0,0xC8,0x17, + + 0x84,0x31,0xD3,0xA2,0xFD,0x12,0x3C,0xD5,0x0E,0x40,0xC5,0xB3,0x15,0x8C,0x4C,0xF9, + + 0x03,0x01,0xAA,0xC0,0xCE,0x25,0x4C,0x1C,0xCA,0xD9,0x8C,0x0E,0xE2,0x3B,0xCB,0xFA, + + 0xF3,0x74,0xBE,0xDE,0x92,0x1A,0x14,0x90,0x98,0xDB,0x6C,0x1E,0xA3,0x35,0x79,0x47, + + 0xB5,0x08,0xBC,0xE9,0x13,0x19,0x88,0x67,0x9B,0x87,0xF4,0x11,0x73,0xB4,0x4A,0xE7, + + 0x77,0x36,0xBB,0x3A,0x25,0xEC,0x45,0x0D,0xE1,0x57,0x3D,0x92,0x1E,0xEC,0x1C,0x62, + + 0x36,0xD7,0x86,0x18,0x4B,0xED,0xEB,0xC0,0x5B,0x6D,0x07,0x4C,0x0B,0x8F,0x70,0xAE, + + 0xAC,0x32,0xF5,0x9E,0x3B,0xA3,0xE1,0xD0,0x1A,0x6C,0x3E,0x77,0x89,0xE2,0xB7,0x7A, + + 0xC4,0xBE,0x78,0x35,0x44,0x60,0x68,0x2B,0x9F,0xAF,0x68,0x2F,0x1D,0x45,0xB9,0xA0, + + 0xC6,0x8A,0xC4,0x80,0xC9,0x6F,0xFF,0x7F,0x76,0x76,0x0E,0xD9,0x16,0xCA,0xDD,0x88, + + 0x8F,0x61,0xC4,0x33,0x3C,0x67,0xAB,0xF4,0x52,0x28,0x55,0x98,0xF1,0x7A,0xD9,0xBE, + + 0x29,0x64,0xB7,0xF0,0x9A,0xE2,0x1C,0x05,0x86,0xAC,0xE0,0x71,0x79,0xE4,0x4F,0xA9, + + 0x5A,0xB7,0x52,0x4B,0xB1,0x4C,0x64,0x2C,0x07,0x4F,0x77,0xAF,0xEE,0xBC,0xF9,0x19, + + 0x0E,0x60,0xEE,0xB9,0x00,0x04,0x65,0xF9,0x2D,0xDB,0xB8,0x39,0xF1,0xBE,0xBF,0x30, + + 0x4C,0x1B,0xA0,0x32,0xB1,0xFF,0x4B,0x0F,0x3B,0x42,0xCA,0x56,0xAB,0x22,0x10,0x20, + + 0xF6,0xA0,0xF7,0x6A,0xFA,0x48,0xC3,0xF2,0x47,0x61,0xB8,0xB0,0x0E,0x9B,0x30,0xE7, + + 0xA4,0xAF,0xE1,0x07,0x78,0x2F,0xCC,0x20,0xBF,0x42,0x5E,0xAF,0xD6,0x7B,0x31,0x0E, + + 0x22,0x86,0xB6,0xE6,0xF0,0x25,0x05,0xD9,0x4D,0x88,0x42,0x7F,0xAE,0xD5,0x60,0xE3, + + 0xA3,0x0D,0x8E,0x26,0x90,0x38,0x51,0x93,0x12,0xC9,0x7D,0x06,0xD0,0x88,0x16,0xB2, + + 0x0F,0x80,0xA8,0x56,0x08,0x28,0xA2,0xF2,0xC3,0x9C,0x34,0x16,0xB1,0x9A,0x07,0x23, + + 0x65,0xCB,0x36,0xC1,0xEF,0x92,0x2F,0x78,0xF1,0x40,0xED,0x87,0x50,0x62,0xFA,0xB3, + + 0xB0,0x47,0xA9,0x02,0x52,0x65,0x61,0x8E,0xCD,0x25,0xDE,0x07,0x51,0x7B,0x10,0x08, + + 0xF7,0xA5,0xA2,0xF1,0xB9,0xA2,0x1B,0xAA,0xF4,0x4A,0x4F,0xBC,0x23,0x97,0xD7,0x19, + + 0x0D,0x29,0xB4,0x6C,0x50,0x40,0x42,0x98,0xCB,0x3C,0xB3,0xC1,0xEF,0x12,0x7B,0xB9, + + 0x2B,0xD5,0x77,0xE5,0xDB,0x65,0x2B,0xD6,0xA9,0x82,0x53,0xF0,0x4A,0xB1,0x17,0xE5, + + 0x01,0xF0,0xD3,0x14,0x3C,0x20,0xDB,0x5B,0x3E,0xB6,0x9D,0x4F,0x22,0x29,0xE9,0x0F, + + 0x04,0xD0,0x5D,0x57,0x98,0x28,0x18,0xF5,0xA1,0x1C,0xF5,0x8E,0xD8,0x80,0xAA,0xAE, + + 0x38,0x54,0xAA,0x0B,0x8A,0x22,0x5D,0x74,0xA2,0xDD,0xE6,0x9E,0xD9,0x71,0x87,0x83, + + 0x31,0x15,0x8E,0x2F,0xD9,0xDE,0x43,0xE9,0x96,0xEA,0x7E,0x0F,0x58,0x82,0x71,0xBF, + + 0x9B,0x84,0x7F,0x2F,0x38,0x29,0xB7,0xEA,0x93,0x47,0xFC,0x1F,0x54,0xE9,0x3E,0x68, + + 0xEC,0xDF,0x82,0x74,0x34,0x7F,0x4D,0xA7,0x95,0x9F,0x16,0xE4,0x7C,0xDB,0x36,0x63, + + 0x49,0x8A,0x74,0x96,0x77,0x9C,0x54,0x78,0x45,0x1D,0x13,0xD6,0xB0,0xFB,0x5C,0xAA, + + 0x07,0x53,0xA5,0x08,0xD3,0x30,0x6A,0x5C,0xE8,0x10,0x06,0xB1,0x72,0x76,0xB8,0x68, + + 0xA3,0x68,0x11,0x35,0x5C,0xF3,0x89,0xC3,0x63,0x4F,0x1A,0xA5,0xC2,0xA8,0x1B,0x13, + + 0x1D,0x45,0xFB,0x46,0xB2,0xE0,0xC7,0xD1,0x76,0xD6,0x9E,0xF9,0x41,0xED,0xE7,0x2D, + + 0x09,0x8E,0xAC,0x9E,0x9D,0x3A,0x24,0xE2,0x50,0x0E,0x85,0x80,0xD4,0x6E,0x85,0x19, + + 0xE4,0xCD,0xFD,0x97,0xF1,0xC6,0x2B,0xDD,0x2A,0x06,0x2D,0x87,0xB1,0x86,0x6D,0x28, + + 0x4D,0x6C,0x79,0xA7,0x10,0x31,0xA7,0x75,0x95,0xAE,0xC6,0x93,0xD0,0x17,0x86,0x75, + + 0x28,0xC3,0xDF,0x74,0x9D,0xB0,0xE4,0x4A,0xEA,0xB4,0x6E,0xCA,0x87,0xF1,0xD5,0xB7, + + 0x56,0x1B,0xDE,0xFF,0x7D,0x22,0xB6,0x25,0x82,0xB3,0x0D,0x8C,0x71,0xC6,0x3F,0x0D, + + 0xA0,0x33,0xC3,0x6B,0x51,0x53,0x28,0x4B,0x03,0x60,0x93,0xCD,0xBA,0xD7,0x50,0x32, + + 0xAF,0xC1,0xD4,0xFB,0xF8,0x79,0xB7,0x20,0x6C,0x89,0xA5,0x18,0x0A,0x15,0x85,0x4C, + + 0x79,0xDE,0xEF,0x6B,0x9B,0x37,0x36,0xEA,0x51,0x51,0x8C,0xFD,0xDD,0x67,0x04,0x45, + + 0xC0,0x8D,0xCB,0x5E,0xAA,0x5A,0x99,0x7A,0xA6,0x50,0x84,0xF4,0xDC,0xD9,0x27,0xCB, + + 0x8F,0x13,0x47,0xEA,0x1B,0x35,0x93,0x6C,0xE4,0xD4,0x4D,0x8B,0xD9,0x1E,0x77,0x7C, + + 0x2D,0x1D,0x95,0xD8,0x18,0x5A,0x27,0x9B,0xC8,0x3F,0xC7,0xC1,0xFD,0x86,0x08,0x86, + + 0x36,0x80,0x22,0xF7,0x39,0xC0,0xAB,0xDD,0xC6,0xB5,0x7F,0xAC,0x23,0x3C,0x63,0xFA, + + 0xA1,0xC3,0x88,0xEB,0xB4,0xA2,0x2C,0xB0,0xF9,0xE3,0x82,0xCD,0x53,0x1B,0x78,0x89, + + 0x82,0x22,0xFF,0x77,0x6B,0xA4,0x73,0x41,0xB9,0xC9,0x6E,0xFE,0xEB,0x42,0x2F,0x38, + + 0x83,0x7A,0x15,0x8E,0x7C,0xCA,0x01,0xCC,0x27,0xAB,0xD8,0xB5,0x55,0x1B,0x68,0xA4, + + 0x84,0x80,0xC9,0xF9,0xB7,0xAF,0xF7,0x71,0x16,0x94,0x71,0x26,0x5A,0x6F,0xEF,0x32, + + 0x5B,0x88,0xA9,0xD4,0x97,0x9F,0x94,0xE0,0x5B,0xCD,0x9C,0x14,0x14,0x15,0x82,0x21, + + 0x47,0x0C,0x61,0x60,0x37,0xAD,0x51,0x6F,0x2F,0x96,0x70,0x85,0x54,0xE2,0x43,0x83, + + 0xDB,0x2C,0xD1,0xB7,0x91,0xA1,0xFD,0x82,0xD3,0xB7,0x99,0x20,0x42,0xE8,0xCA,0xE2, + + 0x9E,0xCA,0xF2,0x79,0x50,0xB3,0x77,0xA8,0xF0,0xAA,0x8A,0xFE,0x00,0x47,0x96,0x9E, + + 0x45,0x2E,0x8A,0x2B,0xF4,0xC0,0xC5,0xB8,0xF1,0x6B,0x29,0x3F,0xDD,0xB9,0x25,0xD3, + + 0x8A,0x73,0xF8,0xFF,0x94,0xE5,0x0B,0xD5,0x31,0x13,0x20,0xCF,0x94,0x41,0x2B,0x1B, + + 0x8D,0x8B,0xF2,0xE7,0xBF,0x86,0x03,0x46,0xEE,0x9B,0x85,0x03,0x52,0x6D,0x1A,0x6A, + + 0xEE,0xB7,0xCB,0xF1,0x18,0x55,0x4C,0x72,0xC3,0x6A,0x92,0x6C,0xD4,0xE1,0x2F,0xBD, + + 0x78,0x41,0x2A,0x23,0xE6,0xAB,0x79,0x46,0xCF,0xAD,0x54,0x28,0xFC,0xEB,0xFE,0xAC, + + 0x67,0x81,0xDC,0xCD,0x53,0x22,0x74,0x2B,0x86,0x6A,0xD9,0xBF,0x82,0xE8,0xB4,0xF2, + + 0xFC,0x8B,0x45,0x15,0x99,0x56,0x5D,0x62,0xBB,0x62,0xDB,0x7C,0x7E,0x63,0x2E,0xFD, + + 0x05,0xE0,0x5C,0x6E,0x6C,0xFD,0x54,0xE8,0x8E,0xDF,0x0B,0x3D,0x85,0x79,0xAC,0x52, + + 0x9E,0x31,0x88,0xA5,0xB0,0x41,0x72,0x54,0x8E,0x1B,0xDD,0xF6,0x31,0x5C,0x1B,0xB2, + + 0x29,0x14,0xBF,0x83,0x97,0xF2,0x6C,0x5E,0x43,0xC9,0x95,0x4D,0x97,0xF6,0x3B,0x91, + + 0x76,0x48,0x05,0x86,0xC2,0x97,0x43,0xC2,0x8E,0x2A,0x2E,0xA7,0xC6,0x28,0xD0,0xA0, + + 0x65,0x66,0xDE,0x24,0xB4,0xB0,0x2E,0xFF,0xC5,0xD2,0x8E,0x46,0xD7,0x94,0x52,0x54, + + 0x77,0xF0,0x8C,0x9C,0xEF,0xBA,0xFB,0x70,0xAA,0xA9,0xE7,0x72,0x0A,0xAF,0x1B,0xDA, + + 0x07,0xD3,0x09,0xA5,0xF5,0x46,0x55,0x2F,0x47,0x5C,0xD3,0x3B,0x82,0xED,0x55,0x03, + + 0xFB,0x38,0x8D,0xD5,0x38,0xBA,0x05,0x91,0x8C,0xD8,0xA4,0x8F,0x50,0x53,0x06,0x77, + + 0x61,0x03,0x79,0xDA,0x4F,0xBC,0xC9,0x28,0xEC,0x12,0x4E,0x2C,0xFC,0x72,0x5B,0x1E, + + 0x7E,0x5B,0x6E,0x46,0x7B,0x62,0x3C,0x38,0xFC,0xAD,0xDE,0xBC,0x72,0xF4,0x92,0x72, + + 0xAE,0xE1,0xF8,0xC7,0x83,0x3A,0x0F,0xF9,0xAF,0x2A,0x8F,0x47,0x7A,0x35,0xEF,0xF3, + + 0x30,0xDA,0x8B,0x62,0xEC,0xC0,0x47,0xFD,0xF1,0xDD,0xE6,0xA0,0x1A,0xFD,0x7E,0x22, + + 0xAC,0x57,0xCC,0x1E,0x62,0x17,0xF7,0xD8,0xCD,0xDA,0x3D,0xD2,0x78,0x05,0x69,0x29, + + 0x78,0x86,0x40,0xBD,0x9C,0xB0,0x34,0xE7,0xED,0xC1,0xD8,0x9E,0x0B,0x70,0x47,0xB8, + + 0xFE,0x3F,0x9F,0xC3,0x5E,0xB8,0x57,0x27,0x4F,0x52,0x8D,0x4F,0x5F,0x9E,0xAF,0x3D, + + 0x8F,0x0F,0xB7,0xD7,0x3D,0x53,0xDC,0x19,0x6D,0xDB,0x9F,0xB5,0x4D,0xF0,0xB4,0xE2, + + 0x63,0xFF,0x87,0x62,0x71,0x60,0x2B,0x53,0x69,0xC6,0x4B,0x24,0x56,0xDA,0xBC,0xF2, + + 0x83,0x05,0xD7,0x76,0x3F,0x67,0x3C,0x30,0xE0,0x48,0x82,0x30,0x70,0xBB,0x61,0x56, + + 0x7D,0x0D,0x99,0xED,0x12,0x26,0x13,0x61,0x84,0x44,0x64,0xCD,0x88,0x2F,0xE1,0x73, + + 0x0E,0x85,0x8C,0x97,0x11,0x8A,0xE0,0x42,0xE0,0x5C,0xF9,0x37,0xE0,0x6E,0xF8,0xBE, + + 0xC3,0x67,0x43,0xC0,0x4D,0x2E,0x09,0xFD,0xE5,0x42,0x33,0x9A,0x76,0x7F,0x42,0xF0, + + 0xBC,0xB0,0xF2,0xCB,0xEC,0xA8,0xF5,0x0C,0xE0,0x48,0xC0,0x6B,0xF0,0xE0,0x95,0x91, + + 0x03,0xFE,0x29,0x7A,0xB6,0x4A,0x71,0x63,0x63,0x40,0x11,0x03,0x2D,0xCB,0x51,0x6E, + + 0x97,0x45,0xAB,0x55,0x64,0x3C,0xF5,0xE3,0xD7,0x4D,0x49,0x27,0x90,0x97,0x02,0x48, + + 0x7A,0x05,0xBA,0xFF,0x60,0x2B,0x28,0xC1,0x6B,0x27,0x69,0xAE,0xD8,0x81,0x40,0xF2, + + 0xE2,0xD8,0x1D,0x7E,0xFA,0xD6,0xE6,0x4B,0x1E,0x56,0x0F,0x47,0xB2,0xF8,0x79,0x69, + + 0xBA,0x07,0x86,0xD8,0x1A,0x2E,0x2A,0x18,0x69,0x78,0xAB,0xD6,0x2D,0xC5,0x55,0xFB, + + 0x88,0x8E,0xEB,0x1F,0xED,0x26,0x21,0xD0,0xEE,0x24,0xFB,0x3F,0xEC,0x66,0x8D,0xEE, + + 0xEB,0x0D,0xDC,0x0B,0xBF,0xDA,0xD6,0x98,0xB5,0x43,0xAA,0x4B,0xBB,0x63,0xFF,0x38, + + 0xF0,0x09,0xB2,0xD4,0xBE,0xA4,0xC5,0x58,0x4D,0xB4,0x80,0x7E,0xE8,0xB4,0x40,0x5C, + + 0x61,0xB6,0x78,0x3D,0x1A,0x81,0x33,0x6B,0xFD,0x0C,0x43,0xAA,0x27,0xD8,0xC9,0xAA, + + 0xD2,0x7A,0xEB,0xCE,0x38,0x6E,0x68,0x3B,0x6A,0xB2,0xBA,0x59,0xE8,0x3A,0x56,0x81, + + 0xF9,0x91,0xA4,0x68,0x91,0x2B,0xEF,0x22,0xE0,0x08,0x23,0x9D,0x76,0x89,0x6C,0xC7, + + 0xDC,0x1E,0xD5,0x96,0xD6,0x2A,0xB4,0x34,0x2E,0x92,0xB4,0xD6,0x77,0x88,0x05,0x7E, + + 0x59,0xC1,0xC7,0x63,0x1C,0x3F,0x4C,0x65,0xE6,0xAB,0x26,0xE7,0x51,0x8F,0xB9,0xEE, + + 0x02,0x08,0xCF,0xF3,0x46,0x9E,0x27,0x42,0xFD,0x48,0x34,0x31,0x8C,0x22,0x44,0xC4, + + 0xAB,0xE9,0x71,0x78,0xD9,0x50,0xEB,0xA2,0xC3,0x16,0xF4,0xC0,0xD3,0xCB,0x66,0x55, + + 0x2D,0x9F,0x33,0x3C,0x5E,0x78,0xCD,0x32,0xC2,0xAA,0x24,0xD0,0x40,0x05,0x25,0xC3, + + 0xD1,0x1B,0x55,0x2D,0x6E,0xFB,0xCA,0xAF,0xE4,0xAF,0x6E,0x03,0x0B,0x66,0xC9,0x39, + + 0xE5,0x58,0xB6,0xDD,0x16,0x88,0x35,0x93,0x14,0x15,0x65,0x0B,0xE3,0x3A,0x9C,0x0C, + + 0x55,0x42,0x91,0xCB,0xEE,0x30,0x10,0x4E,0x5B,0x7C,0xFE,0xCE,0x87,0x76,0x6E,0xD2, + + 0x8F,0x16,0x0D,0x74,0xB9,0xF4,0x26,0x88,0x21,0x42,0x43,0x54,0x77,0x84,0x5E,0xFD, + + 0x0F,0x97,0x47,0xF2,0x6E,0x32,0xEF,0x2B,0x68,0x5D,0xAF,0x53,0xFE,0xFA,0x6F,0xD3, + + 0x47,0x14,0x74,0xEE,0xC1,0x55,0x5E,0x5F,0x4C,0x40,0x67,0x3F,0x79,0xD2,0x7E,0x18, + + 0x54,0x07,0x6A,0x53,0x59,0x38,0x54,0x05,0x59,0x58,0x2B,0xC8,0x49,0x6A,0x36,0xDD, + + 0xCB,0xB6,0xAF,0xF8,0x9E,0xC2,0x27,0x7C,0x5B,0x5D,0xBC,0xF8,0x33,0x48,0x57,0x2F, + + 0x0F,0xB5,0xBE,0xB7,0xDB,0x3A,0xE8,0x1F,0xEC,0x04,0x17,0xFC,0xA9,0x65,0x37,0xC8, + + 0x6B,0x19,0x14,0xDD,0x43,0xEE,0x9F,0x24,0x7E,0x1D,0xE5,0x15,0x2D,0x30,0xDF,0x80, + + 0x95,0x97,0x3F,0xE6,0x4C,0xAD,0x09,0x13,0xE5,0xF2,0x4B,0xA4,0xD4,0xD9,0x97,0xF0, + + 0x87,0x85,0x2F,0x02,0xB4,0xCD,0xC7,0x60,0x06,0x31,0x3D,0xD0,0xAC,0xF1,0x1F,0xE1, + + 0x27,0xE7,0x65,0x81,0xC8,0xA1,0xCD,0xCB,0x04,0x8F,0x89,0xDC,0x21,0xF9,0xC1,0x71, + + 0xC6,0x63,0x6D,0x92,0x13,0x03,0x60,0x25,0x62,0xC5,0x41,0x51,0xF6,0xA3,0x78,0x79, + + 0x12,0x71,0xD8,0xB5,0x62,0x71,0x58,0x00,0x40,0x3D,0x48,0x95,0x78,0xF4,0x08,0xF2, + + 0x0B,0x0E,0x57,0x19,0x82,0x78,0x10,0x10,0xB8,0xCB,0xB8,0x9A,0xEB,0xA4,0xE0,0xC7, + + 0xD9,0x51,0x74,0x78,0xE6,0xDA,0xD8,0xE7,0xBB,0x97,0x49,0x94,0xB4,0x9D,0x6D,0xB1, + + 0x81,0x7D,0x40,0x25,0x2C,0xB8,0x41,0x8D,0xC1,0x47,0x4E,0x4B,0x24,0x58,0x5C,0x36, + + 0x2D,0xFA,0xF2,0x0F,0x2A,0xA9,0x12,0x63,0xED,0x17,0xF3,0x48,0x7F,0xD8,0x12,0x2A, + + 0x0D,0x36,0x7A,0x7C,0xF6,0x18,0xB5,0xBE,0x30,0x85,0x42,0x36,0x3E,0x82,0xD8,0x89, + + 0x1D,0xBD,0xA4,0xBA,0x1E,0xAE,0x53,0x29,0xDD,0xD1,0xEA,0x22,0xBF,0x88,0x4B,0x51, + + 0x3F,0x86,0x1F,0x7D,0x62,0xAD,0x5B,0x39,0xD0,0xC6,0x43,0xBB,0xA0,0x8A,0xB2,0xA2, + + 0x56,0xC1,0x72,0x3D,0x2A,0x0D,0xAF,0x82,0x0C,0x31,0x09,0xEA,0x52,0xE3,0x46,0x25, + + 0x2F,0xBD,0x3E,0xA0,0x7C,0xAF,0xBA,0x07,0x6F,0x8F,0x40,0x81,0xA4,0xF6,0x79,0x4F, + + 0xAD,0xCE,0xDB,0xB0,0x77,0x9F,0x8B,0xE9,0x4E,0xB5,0x48,0x4B,0xED,0xA8,0xEB,0x18, + + 0x72,0x8E,0x7C,0xAC,0x1B,0x24,0xE4,0x41,0x4E,0xC2,0xE2,0x19,0x05,0x64,0x5A,0xEB, + + 0xCF,0x49,0x47,0x46,0x74,0x4D,0x30,0x44,0x0F,0xDF,0x8C,0x58,0xD8,0xFD,0x69,0x74, + + 0x23,0x98,0x8C,0xE7,0x94,0x1E,0x44,0x36,0x3E,0x35,0xFA,0x50,0x73,0x69,0x7C,0x83, + + 0x03,0x89,0x46,0xC7,0xF0,0xB4,0xE2,0x91,0x1B,0x07,0x19,0x39,0x88,0xE9,0x7D,0xE0, + + 0xF2,0x37,0xBA,0xB1,0xE9,0xF5,0x5D,0xF3,0x0B,0x58,0x32,0x33,0xF4,0x3D,0xC9,0xF4, + + 0x85,0x92,0xBF,0xC6,0x30,0xF4,0xE3,0x42,0x55,0x56,0xF5,0x00,0x52,0xF2,0x26,0xCF, + + 0x14,0xB7,0xA6,0x34,0xA6,0x48,0x4E,0x90,0xEA,0x23,0x9B,0x74,0xB2,0x5E,0x45,0x3F, + + 0x07,0x1A,0x48,0xB9,0x77,0xA9,0xCD,0x1C,0x64,0xAA,0x5F,0x82,0xF0,0x56,0x95,0xB5, + + 0x2A,0x11,0xC7,0x07,0xEB,0xAF,0x24,0x6B,0x40,0xD1,0x6D,0x07,0xF3,0xF8,0x3E,0x68, + + 0xCC,0x3C,0xA6,0x0C,0xBC,0x60,0x32,0x48,0xE9,0x2D,0x76,0x67,0x43,0xBA,0x20,0xFB, + + 0x0C,0xE9,0x96,0x8E,0x99,0x89,0x46,0xFC,0xD9,0xDF,0x84,0x1B,0x4E,0xFF,0x5F,0xEA, + + 0x47,0xD3,0x9F,0xC8,0xB2,0xBB,0x57,0xEB,0x52,0x57,0xFE,0x4F,0x58,0xF8,0xC3,0xE8, + + 0x88,0x1D,0x4F,0x9F,0xC2,0x32,0x6F,0xBE,0x4E,0xC0,0x35,0x40,0xCE,0xA9,0x60,0x0A, + + 0x22,0x17,0x76,0x26,0x5F,0xF1,0x26,0xE2,0x0D,0xFC,0x42,0x9C,0xDD,0xBD,0xB5,0xB8, + + 0x6C,0x6D,0x42,0x36,0x0E,0xF0,0x06,0x88,0x5C,0xF9,0x3A,0x7B,0x71,0x77,0x61,0x2D, + + 0x2C,0x9A,0x1C,0xC7,0x1B,0x41,0x0F,0x69,0xCC,0x0E,0x97,0xED,0xA7,0xF3,0x79,0xB9, + + 0xC7,0x92,0x08,0x20,0xAD,0xF2,0x85,0x08,0xF7,0x93,0x38,0xDB,0x1A,0x74,0xA7,0xA0, + + 0xD8,0x23,0x91,0x80,0x63,0x4B,0x2A,0x85,0xB3,0x02,0x50,0xDD,0x1C,0xFD,0x53,0x7B, + + 0xD4,0x6D,0xF0,0xFC,0x93,0x6C,0x8E,0x2B,0x71,0x03,0x75,0x10,0xC8,0x9C,0xC1,0xF9, + + 0xFD,0x40,0x3A,0xE7,0x3C,0xDF,0xDA,0xA8,0xE4,0xB6,0xE9,0x38,0x88,0xBC,0xCD,0x4F, + + 0x8F,0x1D,0x72,0x1D,0x34,0xDC,0x42,0x4C,0xC7,0xD8,0xB4,0xC5,0x2E,0x9C,0xD6,0x32, + + 0xE9,0xC5,0xD2,0xD9,0x14,0xBF,0x2E,0x49,0x21,0xBB,0x98,0x25,0xBB,0xC5,0x88,0xA8, + + 0x82,0x08,0xF0,0x65,0x6F,0x9A,0x26,0x4C,0xA8,0xB4,0x96,0x12,0xAC,0xC8,0x1B,0xEF, + + 0xEA,0xC7,0x1B,0x27,0x61,0x43,0x2F,0x59,0x29,0xF7,0xD3,0x96,0xB6,0x7D,0x51,0xC4, + + 0x7B,0xC6,0xF7,0x69,0xE1,0xB8,0x63,0x82,0xAF,0xCC,0x4B,0x32,0x0D,0x6D,0x7F,0xF7, + + 0x6B,0x28,0xBC,0x24,0x1E,0x93,0x2F,0x76,0xC5,0x2A,0x69,0xC4,0x13,0x25,0x30,0xA8, + + 0x98,0x4B,0x31,0xFE,0xB5,0xD4,0x61,0x4B,0x79,0x0B,0xCA,0xD4,0x12,0x24,0x15,0xA8, + + 0x63,0x4E,0x4A,0x89,0xEB,0xE1,0xB8,0xAC,0x5B,0x75,0xEC,0x5F,0x2B,0xC5,0x54,0x1F, + + 0xEA,0x66,0xF3,0xF5,0x41,0x66,0x40,0xD9,0xCF,0xD0,0x66,0x47,0x54,0x1D,0xF5,0x79, + + 0x0C,0x07,0x2E,0x37,0xC4,0xB1,0xA3,0x59,0x26,0x0E,0xC7,0x9C,0x75,0xCD,0x5F,0x26, + + 0xC1,0x1C,0x5B,0x67,0x63,0xB8,0x0B,0x88,0x5D,0xEC,0x9D,0x47,0x3F,0x98,0x43,0x0E, + + 0x77,0xA8,0x20,0x0D,0x8E,0x5B,0x08,0x2B,0x6B,0x47,0x41,0x87,0x7F,0x67,0x03,0x4C, + + 0x5F,0x1E,0xD8,0x62,0xAB,0x2B,0xCD,0xFD,0xB8,0x0B,0xCD,0xF9,0xF8,0x8B,0xFB,0x70, + + 0x64,0xB1,0x7F,0x74,0x1F,0xC1,0xD0,0x6A,0xDB,0xCF,0x20,0xC6,0xCF,0x1C,0x5E,0xDA, + + 0x27,0xAA,0xC4,0x80,0x52,0x5A,0xD5,0x34,0x12,0x9A,0x99,0xEA,0xC4,0xAD,0x51,0x72, + + 0x24,0x9F,0xFC,0xE3,0x3D,0xE4,0x2B,0x89,0xE6,0xE9,0x72,0xCB,0x26,0x78,0xAD,0x61, + + 0x10,0xB2,0x1A,0x7F,0x44,0x7C,0xDD,0x49,0x58,0x8F,0x32,0xDA,0x2C,0xCF,0x1F,0xC6, + + 0x83,0x94,0xBD,0xA2,0x13,0xC5,0x54,0xA7,0x9F,0xF2,0xC2,0xE6,0x90,0x81,0x13,0xB1, + + 0x25,0x8E,0xF2,0x19,0xF9,0x6F,0x14,0xE5,0xB7,0x84,0xE6,0x07,0x1B,0xFE,0x3D,0xB2, + + 0xCA,0x54,0x05,0x1C,0xE7,0x5A,0xC2,0x9F,0x28,0x87,0xC3,0xE1,0xDD,0x95,0x97,0xA2, + + 0x93,0x18,0xCF,0x2A,0x3E,0x9A,0xFA,0xCC,0x2B,0xB6,0x1C,0xC4,0x9B,0x35,0x52,0x7B, + + 0xAC,0x95,0xDC,0x69,0x40,0x27,0xBA,0x2D,0xBD,0x3A,0xAD,0xF7,0x28,0x7C,0xD7,0xC3, + + 0xD4,0xA5,0xB6,0xAD,0x98,0xC6,0x25,0xE7,0x6F,0xA3,0x0E,0x51,0x31,0xC2,0x55,0xDE, + + 0xAE,0x11,0xBD,0x6B,0x45,0x9B,0x7E,0x42,0x13,0xA6,0xBD,0xF2,0x01,0x86,0x24,0xE7, + + 0x78,0x59,0xB0,0xAC,0x18,0x9A,0xBE,0xC6,0x02,0x54,0x60,0x40,0xC1,0xA0,0xF2,0xBB, + + 0x12,0x13,0x89,0x5F,0x69,0xBC,0xC3,0xF9,0x06,0xF1,0x8D,0xEA,0xDB,0xFB,0xDE,0x5C, + + 0x58,0xE6,0xCF,0x1C,0x71,0xE0,0x56,0x4B,0x82,0xEC,0x1E,0x18,0x54,0xDD,0x41,0xF8, + + 0x82,0xF3,0x3C,0xB2,0x37,0xB8,0xC1,0xAE,0x28,0xFE,0x57,0xFC,0x06,0xDF,0xF2,0x3B, + + 0xCB,0x4D,0x63,0x4F,0xAB,0x35,0x25,0x19,0xE7,0xF2,0xC9,0x8E,0x93,0x13,0x36,0xA3, + + 0xEF,0xC4,0x5F,0xF6,0x59,0x01,0x0D,0x7C,0xC9,0xA2,0xF8,0x83,0x37,0xD1,0x70,0xFE, + + 0xD1,0xC2,0x17,0xF4,0x31,0x55,0x47,0x6D,0xB4,0x3D,0x80,0x5F,0x76,0x20,0x1B,0xB3, + + 0x49,0xC0,0xB0,0x83,0xE7,0xE6,0x9A,0xA6,0x57,0xFD,0xA2,0xA3,0xA7,0xA6,0x8E,0xB6, + + 0x6C,0x80,0x3F,0x93,0xCE,0x7B,0xF9,0xEE,0x51,0x37,0x0C,0x97,0x9D,0xE0,0xC7,0x6B, + + 0xCE,0x45,0xE1,0x69,0x2A,0x11,0x48,0x82,0x32,0x71,0x1C,0x8E,0x6B,0xA9,0xFA,0x15, + + 0xC5,0x25,0xFD,0xD2,0x30,0x9F,0x20,0x72,0xCA,0x38,0xF0,0x6E,0xAF,0x24,0xF7,0x52, + + 0xE2,0x2B,0x76,0x7D,0xE2,0x53,0xE7,0x5C,0xF6,0x84,0x16,0xEF,0x73,0x30,0x61,0x85, + + 0x6E,0x66,0xB3,0xDB,0xFF,0x66,0x1F,0x4A,0x32,0x61,0x4E,0x46,0xD1,0xCC,0xE2,0xF3, + + 0x0C,0xCA,0x15,0x3B,0x18,0xA3,0x27,0x59,0x20,0x8A,0xE8,0xAE,0x60,0xAA,0x17,0x44, + + 0x80,0xEB,0x92,0x8E,0xBE,0x22,0xE0,0xBE,0x3E,0xF4,0x7A,0xC7,0x74,0xAB,0x78,0xFF, + + 0x8A,0x11,0xDB,0x8D,0x59,0x1C,0x6C,0x2B,0xCA,0x51,0xE8,0x29,0x2D,0xE5,0x80,0x9E, + + 0x1E,0xB4,0x77,0x26,0x2E,0xE6,0x90,0x7C,0xC3,0x17,0xE0,0xCB,0x7C,0xB4,0x18,0x2A, + + 0x66,0x07,0x22,0xB6,0x9A,0x27,0x61,0xAA,0x02,0x18,0xA4,0x51,0x36,0xAE,0x31,0x5C, + + 0xE6,0x6C,0xCA,0x54,0xBE,0xA4,0xEC,0x56,0xB7,0x2C,0xDA,0x25,0xA3,0x4C,0x76,0x7A, + + 0xE6,0xCC,0xE7,0xAD,0xBA,0xA8,0x60,0x74,0xB6,0x6A,0xAF,0x42,0x96,0x2F,0x13,0x6B, + + 0x99,0xCD,0x39,0xAF,0xB0,0x5E,0xCC,0x52,0xC9,0xC4,0x3B,0x9A,0xB1,0x4F,0xA4,0xCD, + + 0xB1,0x4D,0x9C,0x7D,0x43,0x30,0x06,0x59,0x94,0xDF,0x01,0x22,0x2B,0xE6,0x1F,0x36, + + 0xDD,0xF2,0xF3,0x9A,0x94,0x2E,0x0E,0x8B,0x9A,0x7C,0xF2,0xD0,0x8A,0x5C,0x8C,0xCC, + + 0x59,0xEE,0xFF,0x1C,0xCC,0xF0,0x0B,0x8A,0x0F,0xDD,0x8F,0x54,0x9C,0xE9,0x9E,0x37, + + 0x59,0xF0,0x6D,0x6E,0xF9,0xBE,0x45,0x0B,0x12,0x92,0xAB,0xF0,0x2B,0xF9,0xA4,0x3A, + + 0xA2,0x1F,0x63,0xB9,0xE2,0xBB,0x67,0x10,0x47,0x9E,0x96,0xE2,0x77,0x19,0x33,0xB3, + + 0x21,0x0E,0xCD,0xB4,0xC0,0x48,0x69,0xC0,0x07,0x27,0x82,0xF0,0x96,0x76,0x61,0x21, + + 0x5B,0xD4,0xD7,0x38,0x34,0xB2,0x2B,0x01,0xE2,0x7B,0x65,0x17,0x5B,0x07,0xB7,0xA9, + + 0x04,0xF2,0x41,0x49,0xB6,0xD7,0xBD,0x0B,0x80,0xDA,0x53,0x04,0x7B,0xFA,0xE6,0x8E, + + 0xB1,0x65,0x4A,0x14,0x3D,0x38,0x91,0x82,0x6A,0x83,0x28,0x5E,0x53,0x59,0xD5,0xBE, + + 0xC6,0xFD,0x73,0x9E,0xC8,0x33,0xC5,0xB2,0xC8,0x26,0x73,0x4E,0x82,0x56,0xB2,0x74, + + 0x59,0xC9,0x7A,0x8E,0x3C,0xFA,0xE2,0x43,0x38,0x97,0xA1,0x45,0x59,0xF3,0x17,0xAA, + + 0x0C,0x24,0xAB,0xF2,0x9C,0x1B,0x61,0x59,0xE9,0x76,0xAE,0x4C,0xC5,0x54,0x59,0x28, + + 0x0A,0x68,0x6A,0x07,0x7E,0xFD,0x8D,0xCD,0xCF,0x7D,0x0D,0x1E,0x76,0x0D,0x0E,0xF5, + + 0x2D,0x90,0xA0,0xB8,0x7D,0x42,0xAD,0x04,0x04,0xD2,0xD7,0x0D,0xF3,0x20,0xF5,0x4F, + + 0x85,0xCA,0xDD,0x3C,0xD6,0xA5,0x60,0x14,0x07,0x4F,0x89,0xE9,0x1F,0x7D,0x11,0xF3, + + 0x03,0x92,0xD1,0xEE,0x32,0x49,0xFF,0x88,0xDF,0x5A,0x87,0x0F,0x4E,0x0E,0x7E,0x06, + + 0xE1,0x83,0x20,0xF4,0x18,0x2F,0x49,0xDC,0xE5,0x7C,0x96,0xF0,0x0C,0x45,0xF3,0xE0, + + 0x45,0xF0,0xD3,0x12,0xA4,0x2E,0x8D,0xDA,0xF8,0x0E,0xD1,0x09,0xE2,0x2C,0xAF,0xF2, + + 0x0C,0x0F,0xDB,0x2C,0xAC,0x60,0x1C,0x6A,0xA3,0xF8,0xC6,0x57,0x2F,0xE9,0x77,0x17, + + 0x60,0x80,0xA9,0x05,0x85,0x74,0x9C,0x9E,0x89,0x8D,0x81,0xC5,0xD7,0xD8,0x44,0xA2, + + 0x5E,0xF9,0xB8,0xC6,0x17,0x7E,0x30,0x21,0xC6,0x49,0xAE,0x55,0x31,0x36,0x7C,0x47, + + 0x27,0xF1,0x92,0xA9,0xB0,0x40,0xD0,0x1C,0x20,0x65,0x78,0x16,0xDC,0xE3,0x5B,0x45, + + 0xA3,0x46,0xB9,0xC7,0x97,0x2F,0x1B,0x9A,0x61,0x40,0xC7,0x54,0xD4,0xFD,0xDB,0xA1, + + 0x95,0x45,0x93,0xAA,0x30,0x21,0x21,0xF3,0xC2,0x25,0xDD,0x35,0x9B,0x92,0x2B,0xFB, + + 0x84,0xD5,0x84,0xDF,0x04,0x0C,0x28,0xC7,0x7B,0xE2,0x40,0xA8,0x2B,0xBE,0xA5,0x43, + + 0xBC,0xB5,0xD0,0xC5,0x6D,0x36,0xFD,0xF8,0x7E,0xC2,0xC5,0xB8,0x5F,0xF2,0x7B,0x2D, + + 0x55,0x77,0x63,0x29,0x79,0xF5,0xAB,0xD6,0x75,0x26,0x53,0xD4,0xD1,0x28,0x20,0x66, + + 0x58,0xA0,0x33,0xE2,0xDA,0xDB,0xC7,0x14,0x7A,0x06,0x2C,0xBF,0x59,0xD3,0x19,0x4B, + + 0xAB,0xA3,0x92,0x63,0xBB,0xA6,0x6A,0x38,0x4E,0x43,0xC4,0xE8,0x3D,0x1C,0x70,0xA6, + + 0xFE,0x61,0x06,0x3E,0x5A,0x6D,0x3A,0x38,0x4D,0x40,0x76,0xEE,0x13,0x65,0xD5,0xCD, + + 0xA1,0x5A,0x34,0xAF,0x18,0x66,0x6B,0x39,0x8A,0x41,0xD5,0x5C,0x33,0xCF,0x2D,0x6C, + + 0x88,0x2E,0xB3,0x3F,0xDA,0x0F,0x51,0x78,0x68,0x2A,0xE5,0x59,0xE8,0xC5,0x3F,0xB2, + + 0x40,0xA3,0x7F,0xFB,0xBD,0xE6,0x2A,0x24,0x03,0x92,0x20,0xC6,0x8B,0x1E,0x57,0xFB, + + 0xF4,0x7D,0x53,0xF6,0xC6,0xBE,0x64,0x40,0x3A,0x00,0x48,0x5C,0x52,0x3C,0xC5,0x79, + + 0xC7,0x50,0xCD,0x38,0xB6,0xA9,0xD5,0x59,0x0E,0xAF,0x55,0x5C,0x28,0x7A,0xC9,0xCF, + + 0xAF,0x0D,0x95,0x25,0xB7,0xA8,0x64,0xDA,0x46,0x57,0xFA,0x4E,0xE3,0x3E,0x29,0xE4, + + 0xA0,0x5C,0xFC,0x14,0xCC,0x3B,0x2C,0x62,0x63,0x33,0xAB,0x19,0x64,0xAF,0xC4,0x7D, + + 0x80,0x13,0xC4,0x36,0x9F,0xBE,0xA2,0x92,0x22,0x75,0x85,0x25,0xD6,0x7C,0xE3,0xB3, + + 0x01,0x10,0xA5,0x81,0x93,0xBD,0x6F,0x03,0x60,0x5E,0x60,0x61,0xAD,0x60,0x41,0xC5, + + 0xC0,0x57,0x49,0x37,0x31,0x3F,0x25,0x73,0xE2,0x90,0x4B,0x71,0xCC,0xCD,0x7B,0x77, + + 0x4B,0x05,0x19,0xEE,0xCB,0x5D,0x1A,0x58,0x50,0x29,0xF5,0x56,0xF5,0x3A,0x5C,0xCF, + + 0xC2,0x7D,0xD1,0x29,0x3F,0xA2,0x64,0x58,0x07,0xD2,0xFE,0xEB,0xB8,0x74,0x10,0x7A, + + 0x2C,0x97,0xBF,0x76,0x4D,0x78,0xD7,0x51,0x6C,0x57,0xC8,0xB6,0xFB,0xFB,0xB0,0x7B, + + 0x8D,0x00,0x38,0x6C,0x1A,0x7B,0xC3,0x94,0x5A,0x16,0xE4,0x9A,0x58,0xC4,0x3E,0x4A, + + 0x23,0x9C,0x06,0xAE,0x79,0x43,0x6E,0x38,0x36,0xD4,0x16,0x09,0x19,0x7A,0xF1,0x28, + + 0x63,0x12,0xB6,0xBE,0x78,0xE2,0xAE,0x9A,0x28,0xAD,0xAC,0xF8,0x77,0x15,0x45,0x2B, + + 0x28,0x36,0xBF,0xAF,0xF9,0x81,0x4F,0x0B,0x68,0x56,0x7D,0x76,0x5B,0x81,0x2F,0x98, + + 0x5E,0x12,0xB7,0x5F,0xBE,0xBE,0x55,0x79,0x48,0x59,0x92,0xFC,0x06,0x11,0x58,0x06, + + 0xF5,0xC2,0xB8,0x82,0x4A,0x5D,0x28,0xC2,0x27,0xF1,0x88,0xA3,0x5A,0x82,0x15,0x4C, + + 0x88,0xE3,0xAE,0xC2,0x95,0xB1,0x00,0xDC,0xA6,0xC8,0x3F,0xB2,0x2E,0xC9,0x7A,0xE6, + + 0x82,0x19,0xEB,0x1A,0xB5,0x22,0xA4,0xA7,0xB7,0x86,0xFB,0xBA,0xF6,0xEF,0x82,0x96, + + 0x16,0xBC,0xF3,0xB9,0xE1,0xE1,0x2B,0xC3,0x9E,0x92,0x79,0xCF,0x03,0xA1,0x3A,0xC2, + + 0x72,0xC6,0x98,0xC4,0x13,0x9D,0x48,0x32,0x66,0xCB,0x48,0x99,0x65,0xDD,0xF7,0x32, + + 0x09,0x0E,0x60,0x2E,0xB4,0xA3,0x18,0x32,0x41,0xC8,0x98,0x20,0x8D,0xEA,0x3A,0x45, + + 0x27,0x39,0xBB,0x46,0x35,0xA0,0x49,0x33,0xC7,0xC9,0x49,0x99,0x5B,0x10,0x7C,0x6A, + + 0x81,0x1C,0xE5,0xC0,0xD7,0xA8,0x33,0x88,0x64,0xCA,0xA0,0xA6,0x22,0xA8,0xDD,0xFA, + + 0xA1,0x39,0xF9,0x4C,0xFD,0xA7,0x4B,0x4C,0xF7,0x42,0xED,0x9A,0x5A,0x53,0x84,0xE9, + + 0x81,0x74,0xAC,0xC0,0x39,0x24,0x70,0xD8,0xD4,0x35,0x05,0xDE,0x10,0xEF,0x5D,0x0D, + + 0x6D,0x09,0x1C,0xE9,0xC8,0x7D,0xB4,0x4B,0x8C,0xF6,0x73,0xAB,0xAF,0x1F,0x53,0xEA, + + 0x2E,0xCB,0x54,0xF7,0xD6,0xE6,0x82,0x64,0xCB,0xA0,0x92,0x80,0x7C,0x74,0xC2,0xBA, + + 0xF1,0x83,0x82,0x0A,0x22,0x2E,0x78,0x7A,0xED,0xCA,0x29,0x30,0x21,0xF6,0xAA,0xA2, + + 0x8B,0x80,0xCE,0x3C,0x5C,0x12,0x02,0xF8,0x4E,0xA0,0x3A,0xA3,0xCD,0x60,0x39,0xC7, + + 0xE6,0x4F,0x9B,0x6B,0x1C,0xE6,0xFB,0x5B,0xAD,0xEE,0x2E,0x7E,0x3F,0x51,0x29,0xB9, + + 0xDB,0x8B,0x93,0xDD,0xBD,0xDA,0x03,0xF9,0xCE,0xAA,0x85,0xAB,0xE0,0x4F,0x83,0xF4, + + 0xCF,0x31,0x1B,0xB4,0x54,0x03,0xD8,0x31,0x0C,0xD8,0x74,0x5F,0xE6,0xF8,0xB9,0x16, + + 0x56,0x9D,0xD7,0xB1,0x94,0x0E,0x67,0x09,0xC4,0xDA,0x84,0x4C,0xD9,0xFC,0x1F,0x6C, + + 0xC7,0xC5,0x65,0x7F,0xD3,0xBF,0x22,0xD1,0x53,0x90,0x73,0x25,0x39,0xEE,0x15,0xF3, + + 0xFF,0x18,0x6D,0x6F,0xCA,0xBE,0x29,0x37,0x86,0x11,0xC2,0x5F,0xD2,0xBE,0x6E,0xC6, + + 0x85,0x99,0xDE,0x24,0x9A,0xBB,0x7C,0x40,0x05,0x24,0x96,0xE2,0x77,0x14,0x64,0x46, + + 0xC6,0x9A,0x94,0x54,0x15,0x15,0x1C,0xB2,0x29,0x55,0xB1,0xF2,0x53,0xB7,0x6F,0xC2, + + 0x05,0x90,0x85,0x83,0x7A,0x36,0x0D,0xC4,0x07,0xD9,0xAB,0x33,0xFA,0x9E,0x0D,0x93, + + 0x45,0x4A,0xD7,0x35,0x35,0xB4,0x05,0x71,0xE2,0xF3,0xA1,0x3C,0xF1,0x9C,0xE7,0xA7, + + 0x2A,0x03,0x66,0x77,0x39,0xFA,0x99,0xC4,0xB1,0x9A,0xD1,0x55,0x6E,0xB5,0x74,0x43, + + 0x11,0x86,0x71,0xFC,0x5D,0xA3,0xC8,0xC5,0xCE,0x52,0xE1,0x34,0x7C,0x39,0x87,0xE9, + + 0x8F,0x18,0xFC,0xB0,0xBA,0x21,0xEB,0xD8,0xEA,0x41,0xD4,0x55,0x71,0xB8,0x97,0x70, + + 0x8E,0x5B,0xD6,0x6F,0x3D,0xF4,0xFE,0x97,0xEB,0x40,0xDF,0xF5,0x17,0x70,0x1E,0xED, + + 0xD3,0x93,0xB3,0x2C,0xBC,0xBF,0x4E,0xBA,0x66,0xD3,0xDF,0x6A,0x11,0x07,0x64,0xDE, + + 0x8C,0x9B,0x6B,0x3C,0xBD,0xBE,0x74,0xF8,0xCC,0xDB,0xA0,0x6A,0x79,0x56,0x07,0x8A, + + 0x2A,0x93,0xA0,0x2D,0x3C,0xBD,0x17,0xAF,0x6E,0xD3,0x37,0x1F,0xA1,0xBC,0x67,0x7E, + + 0x4E,0x90,0x79,0x3D,0x9B,0x32,0xF7,0x2F,0x8C,0xBF,0x2A,0xDB,0xFF,0xFF,0x3A,0xF3, + + 0x6C,0x1B,0xE6,0xDC,0x9F,0xA6,0x05,0x11,0x61,0xBF,0xB7,0xA0,0x2B,0xCB,0xF0,0xE3, + + 0x69,0xAC,0xB6,0xD9,0xDB,0x7B,0x43,0x3E,0x47,0xDA,0xA0,0x5A,0xD0,0x6C,0x1C,0xE7, + + 0xB3,0xC8,0x83,0xC5,0xCD,0x4E,0xAA,0x90,0xF0,0x00,0xB9,0x47,0x69,0x6E,0x1F,0x56, + + 0x4B,0xD9,0x65,0x87,0xD1,0x2B,0xF4,0x71,0xC5,0x62,0x24,0x77,0x70,0x21,0xBB,0x67, + + 0xA3,0x66,0xC5,0xC0,0x5A,0x07,0xD3,0x93,0x29,0xE9,0xA8,0x8C,0x6B,0x29,0xFF,0x79, + + 0xFE,0x66,0x97,0x73,0x91,0xE9,0x62,0x9F,0x38,0xBA,0x64,0x33,0x5D,0x6A,0xBC,0x0F, + + 0x77,0x5A,0xA1,0x13,0x18,0x64,0x49,0x93,0x82,0xB9,0xC9,0x71,0xE9,0xB2,0x2F,0x33, + + 0x74,0xFA,0xAD,0xD1,0xE0,0x3B,0x99,0x98,0x2E,0xEA,0x49,0x07,0x28,0x25,0x0A,0x0C, + + 0x20,0x11,0x00,0x7F,0x43,0x81,0xD8,0x5B,0x2C,0x41,0xCD,0x74,0xA4,0xA3,0x74,0x1E, + + 0xE8,0x8A,0x97,0x7A,0xE2,0xA8,0x22,0xC7,0xA0,0x58,0x1E,0xDE,0xDA,0x64,0x59,0x8F, + + 0xE0,0xAB,0xC8,0x6D,0xE6,0x31,0x55,0x5A,0xF0,0xEB,0xE8,0xD6,0x2F,0x28,0xBA,0xEA, + + 0x05,0x06,0x57,0xF7,0xFA,0xD4,0xCF,0xC7,0xAA,0x9B,0x66,0xFF,0x78,0x34,0x55,0xB3, + + 0xFF,0x9F,0x02,0x5C,0x25,0xA1,0x99,0xF8,0xB5,0xE1,0x8D,0x52,0xFB,0xC7,0xB5,0x22, + + 0x0D,0x96,0x71,0xEC,0x13,0x3F,0x59,0x6B,0x10,0xE6,0xA2,0x94,0x57,0xB1,0x38,0x32, + + 0xE2,0x03,0x54,0xA5,0x10,0x61,0x1C,0x2E,0x14,0x44,0xAB,0x78,0x3A,0xBB,0x2B,0xA7, + + 0x27,0x02,0x33,0xDF,0x1B,0x97,0x61,0x96,0xB0,0x6F,0x77,0xF8,0x0E,0x0D,0x84,0xA1, + + 0x67,0xBD,0xDB,0x88,0x36,0x90,0x00,0x74,0x66,0xEB,0xCA,0x5E,0x8B,0xAF,0x32,0xB8, + + 0x27,0x8A,0x1A,0x67,0x5D,0x2A,0x3A,0x84,0x76,0xF5,0xA4,0x5B,0xF2,0x7C,0x10,0xB0, + + 0x01,0xED,0xE2,0x75,0xF0,0x93,0x0C,0x51,0xE8,0x5D,0x55,0xA0,0x53,0x7C,0x6D,0x6B, + + 0x0D,0x1E,0x90,0xF3,0xF1,0x7C,0x8F,0x7C,0x29,0xF2,0x64,0x77,0x50,0x4C,0x32,0xC0, + + 0x22,0x14,0x00,0x41,0x3C,0xBE,0x99,0xA7,0xBC,0x5E,0x53,0x9B,0xF2,0x9B,0x8C,0xC1, + + 0xC9,0x15,0x95,0x56,0x96,0xEA,0x81,0xF1,0x82,0xEA,0xE2,0xF9,0xAF,0x7A,0x45,0x43, + + 0x67,0x30,0xC1,0x65,0x13,0xB4,0x56,0xF2,0xFD,0x9D,0x8C,0x6D,0x57,0x89,0x4D,0xD1, + + 0xA3,0x9A,0xCC,0xB3,0x4C,0x5B,0x82,0xF0,0xE5,0x6C,0xEF,0x0A,0xC0,0x57,0x79,0x60, + + 0xAE,0xD5,0x3E,0xCB,0xFA,0x98,0x5D,0xBB,0x00,0xE2,0xFE,0xCE,0xFA,0xB4,0x54,0x9A, + + 0x9A,0x84,0x88,0xB5,0xD0,0x08,0x47,0xC1,0x98,0x16,0xFE,0xEA,0xA9,0x74,0xFA,0xCE, + + 0x51,0x6C,0xCF,0x09,0xF0,0xFB,0x77,0xFE,0x1D,0x55,0xF3,0x29,0x8B,0x75,0x15,0x9B, + + 0x3B,0x11,0x97,0x99,0xB1,0x78,0x1E,0xC2,0x4E,0xD6,0x89,0x85,0x5A,0x7D,0x26,0x9E, + + 0xB6,0x13,0x9F,0x28,0x9F,0xCA,0xE8,0xF9,0x01,0x74,0x2E,0x04,0x32,0x31,0x10,0xAB, + + 0x40,0x73,0x76,0x42,0x21,0x52,0x9E,0x00,0xB6,0x46,0x5B,0x9A,0xF4,0xFB,0xF3,0x2B, + + 0x62,0x84,0x9A,0x4E,0x15,0x2C,0x1A,0x6B,0x2F,0xEA,0x40,0x0B,0x1B,0xD1,0x29,0x00, + + 0xA8,0xB4,0x5F,0xAF,0x50,0x9E,0x5A,0x7D,0xA3,0x7C,0xC5,0xBD,0xE1,0x32,0x78,0x06, + + 0x2C,0x09,0x58,0x41,0xE9,0x26,0xF0,0xDA,0x86,0x82,0xD8,0x44,0xEF,0xEE,0x50,0x20, + + 0xCD,0x8E,0xCA,0x14,0x16,0xF1,0x2C,0xE6,0xAC,0x60,0x78,0xCE,0xF6,0xE7,0x1F,0x32, + + 0x4C,0x8B,0x5E,0x79,0xF5,0xA6,0x6A,0xEC,0xC5,0x82,0x89,0xA5,0x11,0x56,0x38,0xE0, + + 0xBD,0x0E,0xF0,0x6B,0x30,0x5C,0x21,0xA3,0x48,0x6E,0x13,0xB4,0xD3,0x58,0x9F,0x85, + + 0x98,0x59,0xD8,0xB9,0xD7,0xC6,0xC7,0x02,0x40,0xFF,0x99,0x8D,0xA9,0xA6,0xD1,0x0C, + + 0xDA,0xF8,0xD0,0xC6,0x24,0x71,0x7E,0x86,0xC7,0x22,0xFF,0xCD,0x91,0x88,0x80,0x03, + + 0xC2,0x5A,0x25,0x97,0x9A,0xA5,0xCF,0x70,0x9D,0x6D,0xAE,0x59,0x2B,0xE9,0xC6,0x20, + + 0xB3,0x26,0x51,0xAD,0x87,0xEA,0x47,0xBF,0xE6,0xB7,0x69,0x31,0xD3,0xA7,0x5C,0x3E, + + 0xE5,0x49,0xF8,0xEB,0x64,0xB7,0x27,0xB9,0x6D,0x37,0xEC,0x6C,0xFD,0xD5,0xAA,0x3B, + + 0x6C,0xCB,0x6A,0x0F,0x5C,0x22,0xFA,0xC2,0xD9,0x8B,0x82,0x51,0xDC,0xE4,0x8F,0x98, + + 0xAD,0x82,0x1C,0xE9,0xAF,0xF0,0x0D,0x03,0x0E,0xCA,0x9B,0x4D,0x69,0xE6,0x74,0x73, + + 0x2C,0x82,0xCC,0x2E,0xF1,0xE9,0x60,0xF4,0xCC,0x8B,0x7B,0xC6,0x8C,0x1E,0x3C,0xB9, + + 0x65,0xB1,0x9D,0x09,0x2D,0xA7,0x0C,0x9E,0x71,0x33,0xB3,0x6E,0x7C,0xBC,0xEA,0xB3, + + 0x36,0x8B,0x16,0xD6,0xBA,0x3B,0xBA,0x93,0xA2,0x60,0x79,0x78,0x7B,0x40,0x75,0xBF, + + 0x65,0x45,0x5B,0xD4,0xA5,0x5A,0x49,0x90,0xB1,0x31,0xF5,0x29,0xCA,0xAC,0xC1,0x40, + + 0x89,0x2F,0xAE,0xB8,0x62,0x23,0x63,0xEB,0x30,0x62,0x7E,0x9F,0x97,0xAD,0xA4,0xA3, + + 0x63,0x3D,0xA2,0xAE,0x3C,0xF3,0x6D,0x21,0x83,0x25,0x1E,0xA9,0xD5,0x53,0x34,0x8A, + + 0x46,0xD3,0x3C,0x88,0x09,0x45,0xF7,0xCE,0x63,0x43,0xA9,0xAD,0x41,0xCD,0x3D,0x13, + + 0xCD,0x53,0xA3,0xB6,0xBC,0xC2,0x20,0x9D,0xD4,0x90,0x20,0x45,0xD0,0x06,0xED,0x6B, + + 0x67,0xD1,0xBE,0x50,0x5C,0x22,0x3B,0x5B,0x9C,0x9E,0x00,0xFC,0xF3,0x48,0x42,0x0E, + + 0x41,0x39,0xBD,0xAF,0x93,0x4B,0x14,0xB4,0xBE,0x96,0xE6,0x7C,0xD1,0xEF,0x24,0x96, + + 0x21,0x2E,0xA4,0x57,0x54,0xDE,0x5B,0x76,0x14,0xC9,0xA5,0xF6,0xD2,0x75,0xBF,0x04, + + 0x6C,0xEC,0xDB,0xF6,0x3B,0x40,0x2A,0xC4,0x64,0x1A,0xD1,0x17,0xFE,0xB9,0x7F,0x57, + + 0xD4,0xC3,0xFB,0xE6,0x04,0xFA,0xBD,0xE3,0xD8,0x5A,0x05,0x91,0x78,0x71,0x7D,0x45, + + 0x2D,0xD8,0xC4,0x8E,0xD5,0xC9,0xCD,0xA2,0xC9,0x27,0xA4,0xF5,0x81,0x44,0x6C,0xEB, + + 0x45,0x90,0xF0,0xB3,0x6D,0x12,0xF3,0xCB,0x7A,0xD2,0x41,0xC4,0x7B,0x62,0x33,0x5F, + + 0x45,0x40,0xC5,0x97,0xBD,0x7A,0xBC,0xCB,0xB3,0x77,0xCC,0xD4,0x94,0xF7,0x6D,0x67, + + 0xAD,0x36,0xBC,0x9F,0x3F,0x77,0xBE,0xFC,0x04,0x61,0xDF,0x99,0x10,0x99,0x9D,0xED, + + 0x8F,0x63,0xFE,0xDF,0xC2,0x1D,0xE1,0x02,0xB2,0x93,0xDF,0xAE,0x66,0x77,0x30,0xAB, + + 0x74,0x96,0xF8,0xDC,0xD6,0xBB,0x86,0x78,0xAA,0xFB,0xC4,0x16,0xF7,0xB2,0xA7,0x22, + + 0x97,0x33,0x27,0x2E,0x82,0x1E,0xCC,0x5B,0xE6,0xCC,0xDE,0x09,0x7E,0x7E,0xFA,0xA8, + + 0xFC,0x96,0x42,0xA2,0xDC,0x40,0xBF,0x03,0x32,0xC4,0xA6,0xE6,0x5A,0x78,0x80,0x15, + + 0xE1,0x1B,0xDE,0xE6,0x14,0xA5,0x05,0x1D,0xAB,0x04,0xA9,0x00,0xBB,0x04,0xF0,0xF8, + + 0x87,0xCC,0xEF,0x29,0xFA,0x65,0xBC,0x14,0xB6,0xBC,0x67,0x4E,0x27,0xBE,0x86,0xE7, + + 0xB3,0xB2,0x93,0xBC,0xB4,0xA9,0x2B,0x91,0x7C,0xED,0xA9,0xDD,0xD0,0x93,0xF6,0xD6, + + 0xB2,0x1A,0xB3,0xA5,0x00,0x8C,0x0F,0x53,0x3E,0x9E,0x09,0xB7,0x1C,0xDF,0x40,0x40, + + 0x02,0x04,0xC0,0x44,0x12,0x24,0x50,0x60,0x42,0x44,0xD0,0x64,0x52,0x64,0x48,0x50, + + 0x03,0x05,0xC8,0x54,0x13,0x25,0x58,0x70,0x43,0x45,0xD8,0x74,0x53,0x65,0x41,0x41, + + 0x82,0x06,0xC1,0x45,0x92,0x26,0x51,0x61,0xC2,0x46,0xD1,0x65,0xD2,0x66,0x49,0x51, + + 0x83,0x07,0xC9,0x55,0x93,0x27,0x59,0x71,0xC3,0x47,0xD9,0x75,0xD3,0x67,0xBA,0x97, + + 0x6B,0x0C,0x26,0x28,0xF3,0x4C,0xC6,0xD6,0x2B,0x4A,0xAA,0xB7,0xDA,0x84,0x10,0x1A, + + 0xC3,0x06,0xF5,0x63,0x71,0x24,0xEF,0x84,0xA2,0x2D,0xFA,0x6B,0x96,0x64,0x7D,0xEB, + + 0x9A,0x47,0xBB,0xF7,0x34,0x27,0x84,0xDA,0x4C,0xC1,0xB8,0x4F,0x0A,0x2B,0x43,0x99, + + 0xBA,0x4F,0x99,0x96,0x72,0x6F,0x23,0x1D,0x22,0x2F,0xFC,0xBF,0x14,0xA5,0x42,0x48, + + 0x0A,0x0C,0xC2,0x4C,0x1A,0x2C,0x52,0x68,0x4A,0x4C,0xD2,0x6C,0x5A,0x6C,0x4A,0x58, + + 0x0B,0x0D,0xCA,0x5C,0x1B,0x2D,0x5A,0x78,0x4B,0x4D,0xDA,0x7C,0x5B,0x6D,0x43,0x49, + + 0x8A,0x0E,0xC3,0x4D,0x9A,0x2E,0x53,0x69,0xCA,0x4E,0xD3,0x6D,0xDA,0x6E,0x4B,0x59, + + 0x8B,0x0F,0xCB,0x5D,0x9B,0x2F,0x5B,0x79,0xCB,0x4F,0xDB,0x7D,0xDB,0x6F,0x5D,0x80, + + 0x85,0xCF,0x14,0xFB,0x58,0x3D,0x6A,0xA6,0x81,0xD3,0x94,0xA4,0x70,0x70,0x6C,0xDA, + + 0xF9,0x1C,0xB6,0x24,0xFC,0x70,0xE1,0xFE,0x94,0x0D,0x9C,0xB4,0x71,0x71,0xE9,0x1E, + + 0xA1,0x80,0x97,0x53,0x5B,0x76,0x3C,0x52,0x6C,0x13,0x95,0xA5,0xF0,0x72,0x0F,0x6E, + + 0x54,0x7D,0x3E,0xB8,0x4D,0xA2,0x27,0x5A,0x52,0x5E,0x9D,0xB5,0xF1,0x73,0x44,0xC0, + + 0x22,0x14,0xC4,0xC4,0x32,0x34,0x54,0xE0,0x62,0x54,0xD4,0xE4,0x72,0x74,0x4C,0xD0, + + 0x23,0x15,0xCC,0xD4,0x33,0x35,0x5C,0xF0,0x63,0x55,0xDC,0xF4,0x73,0x75,0x45,0xC1, + + 0xA2,0x16,0xC5,0xC5,0xB2,0x36,0x55,0xE1,0xE2,0x56,0xD5,0xE5,0xF2,0x76,0x4D,0xD1, + + 0xA3,0x17,0xCD,0xD5,0xB3,0x37,0x5D,0xF1,0xE3,0x57,0xDD,0xF5,0xF3,0x77,0xE1,0xC8, + + 0x22,0x1E,0x2B,0xF3,0xA5,0x64,0x6D,0x8F,0xC9,0xE7,0x96,0xAC,0x78,0x78,0x8B,0x38, + + 0x0D,0x79,0xF7,0xB8,0x52,0x36,0x26,0x47,0x4D,0x86,0x9E,0xBC,0x79,0x79,0x23,0xC4, + + 0x09,0x11,0x3C,0xC3,0x59,0x05,0xA3,0xCB,0x1F,0x3F,0x97,0xAD,0xF8,0x7A,0x5F,0xB8, + + 0xE1,0xE0,0x0F,0xAF,0xD9,0x88,0xAB,0xDB,0x66,0xED,0x9F,0xBD,0xF9,0x7B,0x46,0xC8, + + 0x2A,0x1C,0xC6,0xCC,0x3A,0x3C,0x56,0xE8,0x6A,0x5C,0xD6,0xEC,0x7A,0x7C,0x4E,0xD8, + + 0x2B,0x1D,0xCE,0xDC,0x3B,0x3D,0x5E,0xF8,0x6B,0x5D,0xDE,0xFC,0x7B,0x7D,0x47,0xC9, + + 0xAA,0x1E,0xC7,0xCD,0xBA,0x3E,0x57,0xE9,0xEA,0x5E,0xD7,0xED,0xFA,0x7E,0x4F,0xD9, + + 0xAB,0x1F,0xCF,0xDD,0xBB,0x3F,0x5F,0xF9,0xEB,0x5F,0xDF,0xFD,0xFB,0x7F,0x98,0xFD, + + 0x37,0xFB,0x9A,0xB6,0x85,0xE1,0x08,0xD8,0xE8,0xCD,0x88,0xBC,0x70,0xA2,0x32,0x10, + + 0xCF,0x8E,0x9F,0x76,0x66,0xA1,0x2A,0xA1,0xAE,0x85,0x1D,0x54,0xA2,0x84,0x99,0x9C, + + 0x96,0xCF,0x16,0xF6,0xE3,0xA2,0x4E,0x5C,0xAC,0xCF,0xB7,0xBC,0x56,0x2E,0x21,0x06, + + 0x64,0x98,0x69,0x13,0x08,0x5E,0x03,0x83,0x54,0x6C,0x81,0x13,0xB6,0x7E,0x60,0x42, + + 0x06,0x84,0xE0,0x46,0x16,0xA4,0x70,0x62,0x46,0xC4,0xF0,0x66,0x56,0xE4,0x68,0x52, + + 0x07,0x85,0xE8,0x56,0x17,0xA5,0x78,0x72,0x47,0xC5,0xF8,0x76,0x57,0xE5,0x61,0x43, + + 0x86,0x86,0xE1,0x47,0x96,0xA6,0x71,0x63,0xC6,0xC6,0xF1,0x67,0xD6,0xE6,0x69,0x53, + + 0x87,0x87,0xE9,0x57,0x97,0xA7,0x79,0x73,0xC7,0xC7,0xF9,0x77,0xD7,0xE7,0x22,0xEC, + + 0xF3,0x8C,0xB4,0xFA,0xE3,0x35,0x96,0x50,0xEF,0xAD,0xA5,0xDD,0xD8,0x65,0x72,0x36, + + 0x8F,0x65,0x92,0x2E,0xCC,0x06,0xE6,0x17,0xFE,0x84,0x2A,0x3E,0x5D,0xE9,0x30,0xE3, + + 0xD0,0xC7,0x70,0x2B,0x61,0x0B,0x0C,0xC9,0xE8,0x41,0xE1,0x79,0x37,0x8E,0x13,0x79, + + 0xCD,0x74,0x0B,0x6D,0xFF,0x47,0xC4,0xCB,0x7B,0x9A,0xBB,0x3F,0xDD,0xEB,0x62,0x4A, + + 0x0E,0x8C,0xE2,0x4E,0x1E,0xAC,0x72,0x6A,0x4E,0xCC,0xF2,0x6E,0x5E,0xEC,0x6A,0x5A, + + 0x0F,0x8D,0xEA,0x5E,0x1F,0xAD,0x7A,0x7A,0x4F,0xCD,0xFA,0x7E,0x5F,0xED,0x63,0x4B, + + 0x8E,0x8E,0xE3,0x4F,0x9E,0xAE,0x73,0x6B,0xCE,0xCE,0xF3,0x6F,0xDE,0xEE,0x6B,0x5B, + + 0x8F,0x8F,0xEB,0x5F,0x9F,0xAF,0x7B,0x7B,0xCF,0xCF,0xFB,0x7F,0xDF,0xEF,0xA4,0x06, + + 0x71,0xA7,0x34,0x77,0x97,0xF0,0x0F,0xD2,0xE4,0xCF,0xB4,0xA6,0x74,0xF0,0x29,0x82, + + 0xC4,0x8A,0xF6,0x6C,0x5D,0x80,0xAC,0xD0,0x92,0xB4,0xBC,0xB6,0x75,0xF1,0x75,0x9E, + + 0xE8,0x91,0x97,0xB7,0xEA,0xF3,0x8E,0xD3,0x64,0xC4,0xB5,0xA7,0xF4,0xF2,0x2D,0x75, + + 0x81,0x6E,0xD3,0x91,0xD6,0x44,0x05,0x5B,0xA9,0x92,0xBD,0xB7,0xF5,0xF3,0x64,0xC2, + + 0x26,0x94,0xE4,0xC6,0x36,0xB4,0x74,0xE2,0x66,0xD4,0xF4,0xE6,0x76,0xF4,0x6C,0xD2, + + 0x27,0x95,0xEC,0xD6,0x37,0xB5,0x7C,0xF2,0x67,0xD5,0xFC,0xF6,0x77,0xF5,0x65,0xC3, + + 0xA6,0x96,0xE5,0xC7,0xB6,0xB6,0x75,0xE3,0xE6,0xD6,0xF5,0xE7,0xF6,0xF6,0x6D,0xD3, + + 0xA7,0x97,0xED,0xD7,0xB7,0xB7,0x7D,0xF3,0xE7,0xD7,0xFD,0xF7,0xF7,0xF7,0x78,0x68, + + 0x28,0x1D,0xF0,0xA6,0xD7,0xDC,0x4F,0xC5,0x10,0x27,0xB6,0xAE,0x7C,0xF8,0x10,0x78, + + 0x4F,0xEC,0x96,0x75,0x91,0xB4,0x69,0x41,0xDC,0x4A,0xBE,0xBE,0x7D,0xF9,0x35,0x2E, + + 0x47,0xDE,0x37,0xED,0x0F,0xDF,0x8E,0x17,0x1B,0xE7,0xB7,0xAF,0xFC,0xFA,0x51,0x9C, + + 0x89,0x10,0x56,0xB8,0x1C,0xC4,0x44,0xBF,0xA5,0x6D,0xBF,0xBF,0xFD,0xFB,0x66,0xCA, + + 0x2E,0x9C,0xE6,0xCE,0x3E,0xBC,0x76,0xEA,0x6E,0xDC,0xF6,0xEE,0x7E,0xFC,0x6E,0xDA, + + 0x2F,0x9D,0xEE,0xDE,0x3F,0xBD,0x7E,0xFA,0x6F,0xDD,0xFE,0xFE,0x7F,0xFD,0x67,0xCB, + + 0xAE,0x9E,0xE7,0xCF,0xBE,0xBE,0x77,0xEB,0xEE,0xDE,0xF7,0xEF,0xFE,0xFE,0x6F,0xDB, + + 0xAF,0x9F,0xEF,0xDF,0xBF,0xBF,0x7F,0xFB,0xEF,0xDF,0xFF,0xFF,0xEB,0x12,0x80,0x05, + + 0x76,0x8D,0xDE,0x85,0xB1,0x8B,0x52,0x92,0x14,0x40,0xCE,0xA1,0x58,0xCB,0xAC,0x72, + + 0x40,0x81,0x90,0xE5,0x5B,0x21,0x24,0xB2,0x41,0xA7,0xC6,0xB5,0xD3,0xCA,0x7F,0x19, + + 0x02,0x2A,0x41,0x05,0xFB,0xA0,0x19,0x24,0xC4,0x62,0x90,0x05,0x50,0x48,0x71,0xEC, + + 0xC1,0x41,0xD7,0x1D,0xB1,0x88,0x47,0xD3,0xCD,0xC6,0x59,0x35,0xBA,0xE1,0x7E,0x48, + + 0xC0,0x06,0x3F,0xBA,0x14,0xE4,0x46,0xF1,0xA9,0xE6,0xF9,0x23,0x7C,0xE8,0xFB,0xC0, + + 0x05,0xA5,0x08,0x40,0x82,0xA8,0x1A,0x03,0x5F,0x4C,0xF1,0x73,0x52,0xE5,0x49,0xC5, + + 0x7E,0xA4,0xD4,0xC1,0xD6,0xBB,0xEA,0xD0,0x80,0xE9,0x9B,0x78,0x93,0x67,0x05,0x23, + + 0xEB,0xA5,0x36,0xD1,0xD7,0xD2,0x2F,0xF3,0xCA,0x3A,0xA3,0xA1,0x53,0x47,0x80,0x6A, + + 0x73,0xDA,0x87,0x0C,0x9A,0x20,0x3C,0x2F,0x20,0x47,0x82,0xDD,0x12,0x68,0x7A,0x5E, + + 0xF5,0x4B,0xEA,0x5C,0x0C,0x26,0x1A,0x7B,0x4D,0x49,0x9B,0x1C,0xD9,0xA8,0xDC,0x08, + + 0x8E,0x8A,0x0E,0xFD,0x90,0x25,0x3D,0x2E,0xE7,0x0A,0xCD,0xA8,0xD0,0xC1,0x89,0x63, + + 0x0B,0x23,0x0B,0x1C,0x30,0x80,0xF1,0x3D,0xC9,0xE4,0xC5,0xBC,0x5B,0xC0,0xBD,0x3B, + + 0x48,0x8F,0x02,0x5D,0x8D,0x6E,0x08,0x75,0xE9,0x4A,0x58,0x9A,0x85,0xE1,0x74,0x54, + + 0x6A,0xED,0xB5,0xA6,0xE4,0xF2,0xDA,0x9A,0xEA,0xB2,0xD8,0x74,0x59,0x6C,0x03,0xB7, + + 0x0A,0x5E,0x41,0xF7,0x7B,0x51,0x5F,0x07,0x6B,0xC6,0xF3,0x60,0xD2,0x2E,0x53,0x4C, + + 0x77,0xAD,0x0B,0x4D,0xB1,0xA2,0x11,0x78,0x28,0xC5,0xD3,0x7F,0x59,0x8F,0xBF,0xE2, + + 0x61,0x50,0x03,0x75,0x3A,0x36,0xBA,0x51,0x6A,0x5C,0x95,0x84,0x1B,0x40,0x74,0xE3, + + 0x71,0x18,0xCE,0x1E,0x5A,0x93,0x62,0x20,0x8A,0xF3,0xD8,0x36,0x1A,0x33,0x7D,0xE3, + + 0xE3,0xCD,0xDB,0x01,0xB0,0x99,0x4B,0x25,0xE0,0xDF,0x95,0xA7,0xB2,0xD9,0x4C,0x6C, + + 0xC7,0x51,0x8D,0x64,0xA1,0x23,0x43,0xB9,0xC1,0xFC,0x9D,0x44,0xB3,0x7D,0x3A,0xCD, + + 0xAD,0xB9,0x04,0xD0,0xC3,0x2F,0x6C,0xB0,0x66,0x5B,0xEE,0x63,0xDE,0x2B,0x4D,0x42, + + 0x23,0x1D,0xB3,0x56,0xB3,0x35,0x26,0x20,0x6B,0x8A,0xE6,0x73,0xDF,0x69,0x40,0x53, + + 0x22,0xBB,0x3A,0xB7,0x55,0x28,0x6D,0x1E,0xA1,0x76,0xEF,0x62,0x5E,0x69,0x09,0x20, + + 0xB7,0x13,0x12,0xD5,0xC4,0x3D,0xE2,0x21,0x14,0x8F,0xF3,0xF3,0x62,0x2B,0x84,0x62, + + 0x57,0x10,0xD8,0x85,0x38,0x78,0x13,0x2A,0x69,0x20,0xC8,0x3D,0x78,0xF5,0x70,0x1A, + + 0x28,0xFE,0xEE,0x6D,0x3F,0x39,0x26,0x49,0x6F,0x59,0xDE,0x4F,0x61,0x7F,0xDC,0x8D, + + 0xAE,0xBA,0x83,0xEE,0xD3,0x18,0x37,0x3D,0x83,0x78,0xE9,0x28,0x93,0x6A,0x55,0x98, + + 0x0A,0xB4,0xD1,0x0D,0x19,0x90,0x41,0x29,0xC9,0xF0,0x97,0xF0,0x9A,0x1B,0x1C,0xCA, + + 0x42,0x2C,0xFC,0x2E,0x96,0xC2,0x2E,0x19,0x3A,0x7C,0xF8,0xEB,0xEF,0x73,0x18,0xD0, + + 0xC0,0x0D,0xFE,0x62,0x50,0x09,0x26,0x8B,0x3B,0x56,0xF7,0xB2,0xB2,0x19,0x39,0xC0, + + 0xC9,0xE1,0xBC,0x13,0x0D,0x95,0x37,0x29,0x24,0xD3,0x63,0xA7,0x33,0x3A,0x6F,0xCD, + + 0x63,0x2F,0xCF,0x2C,0x33,0xC0,0x24,0x99,0xBC,0x54,0x76,0x22,0x42,0xA1,0x9D,0xF2, + + 0x58,0x8F,0xE4,0x84,0x7F,0xE2,0xB0,0x23,0x44,0x80,0x70,0x26,0x3F,0x62,0x22,0x16, + + 0xA6,0x8C,0xF6,0x87,0x15,0x0A,0x68,0x36,0x4D,0xE9,0xE6,0xB3,0x5D,0x4A,0x41,0x42, + + 0x31,0x8F,0xA1,0xF6,0xD6,0xA6,0x35,0xBE,0xC0,0xE2,0xB9,0xD6,0x9E,0xE2,0xD6,0xC3, + + 0x8D,0x0C,0xA8,0x97,0x15,0xA2,0xB9,0x32,0x82,0x83,0xB8,0x17,0x55,0xA1,0xD3,0xD2, + + 0x00,0x24,0x1D,0xBD,0xE5,0x5B,0x74,0x9C,0xBB,0x4E,0xF2,0x14,0x21,0xC4,0x32,0x4F, + + 0xA4,0x83,0xD2,0xB9,0xEC,0x3A,0xF0,0x4E,0xA6,0xCA,0x07,0xA6,0x29,0xE6,0x2D,0xC1, + + 0x8F,0xFB,0x1A,0xC3,0x9A,0xCB,0x8A,0x3F,0x65,0xC0,0x15,0x07,0x24,0x83,0x65,0x3D, + + 0x26,0x0F,0x16,0xA9,0x91,0x27,0x19,0x33,0xDA,0x4C,0xC7,0x7E,0x94,0x15,0x68,0x0B, + + 0xFB,0x75,0xFC,0x8F,0x9E,0x03,0x36,0x5A,0x48,0xE8,0xEC,0xAF,0xDE,0x43,0x4A,0x5B, + + 0xF0,0x02,0xCA,0xEF,0x57,0xA9,0xBA,0x3B,0x9F,0x89,0xA2,0xCF,0x17,0xE9,0x69,0xF5, + + 0xD9,0x85,0x63,0x0F,0xF7,0x28,0x6D,0x2F,0xC4,0xDE,0x73,0x2F,0xB7,0x68,0xAC,0xF9, + + 0x0F,0xA3,0xF5,0x17,0x8D,0xAF,0x3F,0x99,0xC9,0xEB,0xE5,0xBA,0xD5,0x40,0xE2,0xA8, + + 0xAF,0x73,0x3A,0x3C,0xE1,0x73,0xF6,0x88,0xCC,0xC4,0x09,0x1C,0xD0,0x89,0x6E,0xA4, + + 0xF2,0x07,0x68,0xDE,0x19,0x6D,0x76,0x05,0x2C,0x3D,0xB0,0x3C,0x37,0xE0,0x29,0x4A, + + 0x6D,0x04,0x23,0x5E,0x95,0xEC,0xFA,0x19,0x6D,0xC8,0xEB,0x6E,0x8A,0x12,0x90,0x07, + + 0x2C,0x02,0x63,0x7B,0x1A,0x5A,0x03,0xF9,0xC6,0x12,0xE3,0x55,0xDE,0xF8,0x55,0x44, + + 0xD4,0xDE,0xE2,0x86,0xB4,0xD3,0x72,0xA2,0x0F,0xC0,0xCC,0x24,0x7D,0x8D,0x76,0x93, + + 0x86,0x97,0x6C,0x96,0x5E,0x33,0x5C,0xF2,0x78,0x5C,0xB0,0xD8,0xD4,0x79,0x92,0x01, + + 0xA1,0x63,0xFB,0x06,0x36,0x19,0x25,0x52,0xFC,0xD2,0xEF,0xBA,0x57,0xF4,0xA5,0xAF, + + 0x06,0x95,0x85,0x66,0xFF,0xB3,0x45,0x31,0xE4,0x8B,0x3D,0x55,0x54,0x0C,0xE5,0x33, + + 0x3A,0xB4,0x64,0xC3,0xE0,0xF4,0x3F,0x0D,0x9D,0x2B,0x4A,0xE4,0x80,0x20,0x5F,0x42, + + 0xDB,0xD7,0x58,0x3C,0xD6,0xD3,0xBC,0xE6,0x44,0x97,0x7B,0xED,0x75,0xBB,0xD0,0xCF, + + 0x5E,0x34,0xE5,0xC2,0x57,0xD0,0x8E,0x67,0xA2,0x58,0xF2,0xF8,0xA2,0x62,0xDE,0x52, + + 0xA1,0x17,0x59,0x97,0xBB,0x78,0x7B,0x0A,0x98,0x87,0x8B,0xB1,0x51,0xBB,0x6E,0x1D, + + 0x8D,0x91,0xF8,0x86,0x3E,0xBC,0x34,0x48,0x68,0xF8,0xFC,0xAF,0x9F,0x72,0x16,0x69, + + 0x39,0x14,0xF0,0x1A,0x3D,0x34,0x60,0x3E,0x6D,0x72,0x45,0xE2,0xDE,0x97,0xDE,0x09, + + 0xAF,0x7C,0xA8,0x7E,0xB6,0xBC,0x0B,0x5A,0xE6,0xD6,0xB3,0x51,0x01,0x70,0x51,0x1E, + + 0x44,0xCB,0xD1,0x0F,0x56,0x19,0x7D,0xFB,0x6D,0xEB,0x81,0xB6,0x3F,0xFB,0xBE,0xF5, + + 0x3A,0x47,0xC6,0xCF,0x99,0xAC,0xB6,0xFE,0x79,0x9E,0x82,0x13,0x40,0xBE,0x10,0x5E, + + 0xDA,0x3E,0xD4,0x59,0x93,0xA2,0x7E,0x7E,0x2B,0x79,0x3E,0xEA,0x83,0x08,0x67,0xB4, + + 0xC6,0xDC,0x08,0x3D,0x3E,0x8F,0xF5,0x65,0xE8,0xDE,0x75,0xD0,0x02,0x9C,0x2B,0x28, + + 0xA5,0x62,0xA5,0xCA,0xDF,0x2F,0xBF,0xEA,0x3D,0x52,0xF8,0x7B,0xBB,0x0A,0xB7,0x1C, + + 0x06,0xC0,0x24,0x66,0x33,0x40,0x63,0x66,0xEA,0xBB,0x94,0x63,0xD2,0x68,0x78,0x56, + + 0xA3,0xFF,0x68,0x1C,0x33,0x31,0xAF,0xB5,0x47,0x81,0xBE,0xEF,0x05,0xC5,0xB6,0xFC, + + 0x90,0x4C,0x6D,0x07,0x98,0x4E,0x91,0xA5,0x84,0xB7,0xA0,0x47,0x3B,0xD2,0xF0,0x57, + + 0x6B,0xA7,0x8C,0x06,0xDF,0x67,0xAE,0x0E,0x9D,0x01,0x72,0x28,0x19,0x9D,0x38,0x22, + + 0x41,0xF4,0x2F,0x36,0xB1,0x65,0xE3,0x79,0xBE,0x94,0xD0,0x64,0x52,0x64,0x40,0xE2, + + 0xF6,0x0A,0xB0,0x73,0x37,0x25,0x5C,0x37,0xC1,0x4D,0xD8,0x74,0x53,0x65,0x4B,0x01, + + 0x21,0x00,0xC5,0x65,0x92,0x26,0xC1,0xA6,0xC0,0xB3,0xD1,0x65,0xD2,0x66,0xFD,0x2E, + + 0x20,0x46,0xC9,0x55,0x93,0x27,0xEB,0x13,0x28,0xF7,0xD9,0x75,0xD3,0x67,0x42,0x0E, + + 0xC0,0xF8,0xA4,0x98,0x94,0xA3,0x90,0x17,0xB4,0x4A,0xD2,0xAA,0xA4,0x9D,0x08,0xDE, + + 0xAB,0x4C,0x71,0x3A,0x09,0xA4,0x99,0x3E,0x81,0xF9,0x19,0x06,0x01,0x28,0xA7,0xF5, + + 0x08,0xF1,0x87,0xEF,0x9E,0xEA,0xD3,0x3D,0x34,0xEE,0xD3,0x13,0x84,0xDF,0x79,0xBC, + + 0x2D,0xEC,0x5F,0xE2,0x1A,0x25,0xBF,0x5B,0x65,0xB4,0x77,0xBD,0x25,0x4B,0xAA,0xFB, + + 0x8F,0x4B,0xC2,0x4C,0x1A,0x2C,0x74,0xB7,0x1E,0x0A,0xD2,0x6C,0x5A,0x6C,0x3E,0xA5, + + 0x2A,0x4F,0xCA,0x5C,0x1B,0x2D,0xD9,0x5C,0xC4,0x4F,0xDA,0x7C,0x5B,0x6D,0x83,0x5D, + + 0x78,0x42,0xC3,0x4D,0x9A,0x2E,0xE4,0x57,0x92,0xBB,0xD3,0x6D,0xDA,0x6E,0xC9,0x66, + + 0x0E,0x08,0xCB,0x5D,0x9B,0x2F,0xEC,0x78,0x46,0x49,0xDB,0x7D,0xDB,0x6F,0x80,0x04, + + 0x64,0xE5,0x0C,0x86,0xC5,0x3F,0x74,0xE4,0x6F,0x5D,0xBC,0x66,0xF2,0x78,0xBB,0xAF, + + 0x79,0x53,0x48,0x11,0x72,0xC2,0x94,0xC8,0x80,0x5E,0xFC,0xF4,0x8A,0x7C,0x3F,0x7E, + + 0xA6,0xD2,0x31,0xFA,0x13,0x8F,0x5F,0x7E,0x43,0x54,0x7A,0x55,0xA8,0x7D,0x8F,0xAE, + + 0x5D,0xC3,0xED,0xD1,0x8C,0x3C,0x7D,0xF5,0xD8,0x5C,0xEF,0xAC,0xB1,0x88,0x3C,0xE4, + + 0xA7,0x33,0xC4,0xC4,0x32,0x34,0x94,0xF4,0x9E,0x18,0xD4,0xE4,0x72,0x74,0xFB,0x2D, + + 0x33,0x5B,0xCC,0xD4,0x33,0x35,0xF4,0x53,0x1C,0xD5,0xDC,0xF4,0x73,0x75,0x9A,0xD0, + + 0xA4,0xD6,0xC5,0xC5,0xB2,0x36,0x25,0x27,0x48,0x17,0xD5,0xE5,0xF2,0x76,0x3D,0xF7, + + 0x41,0x74,0xCD,0xD5,0xB3,0x37,0x9D,0xE5,0x1F,0x1B,0xDD,0xF5,0xF3,0x77,0xC6,0x9C, + + 0xD4,0xBC,0x16,0x92,0x60,0xCC,0xA2,0x4A,0xEA,0x10,0x92,0xAE,0x7C,0x83,0xAA,0x65, + + 0xA9,0xC2,0x7E,0x18,0x7D,0xAE,0x66,0xDA,0x2A,0xE6,0x29,0x98,0xFC,0x5E,0x47,0x8F, + + 0x60,0xEA,0x04,0x4B,0x52,0x76,0xDB,0xCB,0xAB,0x85,0x97,0x6F,0x7B,0x3C,0x0E,0x5F, + + 0x0B,0x5E,0x27,0x3E,0xC6,0x3A,0x67,0xE6,0x1C,0xA7,0x40,0xAC,0xFF,0xBB,0xEE,0x6A, + + 0xF5,0xF3,0xC6,0xCC,0x3A,0x3C,0x26,0x2E,0xC0,0x1D,0xD6,0xEC,0x7A,0x7C,0xB1,0xFC, + + 0xA9,0x15,0xCE,0xDC,0x3B,0x3D,0xF2,0xBA,0xE8,0x53,0xDE,0xFC,0x7B,0x7D,0xEF,0x6B, + + 0x2D,0x39,0xC7,0xCD,0xBA,0x3E,0xBB,0x69,0x16,0x7E,0xD7,0xED,0xFA,0x7E,0xF9,0xBB, + + 0x5C,0x19,0xCF,0xDD,0xBB,0x3F,0x37,0x7F,0x17,0x1E,0xDF,0xFD,0xFB,0x7F,0xF4,0x44, + + 0xA6,0x7E,0x40,0x39,0x30,0x1C,0xF0,0x36,0xB8,0xBE,0x1C,0xA4,0x55,0x65,0xC3,0x69, + + 0x9A,0xBC,0x2C,0xE7,0xB6,0xA3,0x4C,0xB6,0x0D,0x9F,0xD7,0x2A,0x9D,0x3F,0x5B,0x87, + + 0xC8,0x92,0x1E,0x5C,0x6D,0x28,0x48,0x65,0x66,0x8C,0x89,0xD4,0x8C,0x46,0x81,0xB1, + + 0x02,0xA4,0x9B,0xE8,0x17,0xEB,0xF9,0x27,0x54,0x82,0x3E,0x24,0x0A,0xE1,0x88,0xE1, + + 0x00,0x24,0xE0,0x46,0x16,0xA4,0x78,0x50,0xE7,0x6B,0xF0,0x66,0x56,0xE4,0xF8,0xD0, + + 0x06,0xF2,0xE8,0x56,0x17,0xA5,0x98,0x4D,0xB3,0x75,0xF8,0x76,0x57,0xE5,0x88,0xC7, + + 0xC2,0x9A,0xE1,0x47,0x96,0xA6,0x76,0x70,0x1D,0x16,0xF1,0x67,0xD6,0xE6,0x53,0xB1, + + 0x05,0x8F,0xE9,0x57,0x97,0xA7,0xCE,0x6F,0xE3,0x3A,0xF9,0x77,0xD7,0xE7,0xB2,0x14, + + 0x54,0x7C,0x82,0x6C,0xAB,0xCD,0x99,0x51,0x99,0x35,0x52,0x11,0xA0,0xEA,0x6A,0xDC, + + 0xE7,0xC5,0x13,0x4F,0xBE,0x76,0x62,0x07,0xCF,0xC1,0x89,0x27,0x79,0x87,0xA0,0x11, + + 0xD0,0x3E,0x9B,0xDF,0x41,0xD5,0x71,0x4B,0xD4,0x4A,0x00,0x32,0x24,0x3A,0xDB,0x5D, + + 0x27,0x70,0x16,0x42,0x62,0xAD,0xEF,0x49,0x6E,0x8A,0xFB,0x00,0xD5,0x87,0x93,0x28, + + 0x4D,0x53,0xE2,0x4E,0x1E,0xAC,0xAD,0x62,0x60,0x8A,0xF2,0x6E,0x5E,0xEC,0x12,0xD8, + + 0x0E,0x9A,0xEA,0x5E,0x1F,0xAD,0x0A,0xA5,0xA0,0x8C,0xFA,0x7E,0x5F,0xED,0x1B,0x29, + + 0xCD,0x7E,0xE3,0x4F,0x9E,0xAE,0x81,0xAD,0x6C,0x82,0xF3,0x6F,0xDE,0xEE,0xD0,0xB9, + + 0x23,0x72,0xEB,0x5F,0x9F,0xAF,0xD3,0xD8,0xB0,0x0F,0xFB,0x7F,0xDF,0xEF,0x56,0x27, + + 0xA1,0x97,0x64,0x92,0xC8,0x45,0xF4,0xB3,0x48,0xD6,0x03,0x5B,0x38,0xBE,0x2D,0x4D, + + 0x86,0xEF,0x1B,0x8F,0x33,0x71,0x44,0x96,0xEA,0xD3,0x45,0x70,0xD7,0xB4,0xCE,0x74, + + 0xA2,0x72,0x61,0x03,0xF0,0x47,0x3D,0x06,0x87,0xF2,0xC5,0xE1,0x56,0x0C,0x16,0xD5, + + 0x07,0xDD,0x1A,0xA8,0xE1,0xF1,0x8A,0xB2,0x68,0xDF,0xCF,0x31,0xED,0xBF,0x6C,0xF5, + + 0x87,0xF8,0xE4,0xC6,0x36,0xB4,0x14,0xA2,0x6A,0x29,0xF4,0xE6,0x76,0xF4,0xE8,0x15, + + 0xA7,0xB5,0xEC,0xD6,0x37,0xB5,0x26,0xF3,0xC4,0x94,0xFC,0xF6,0x77,0xF5,0x86,0x84, + + 0x78,0x9E,0xE5,0xC7,0xB6,0xB6,0x0D,0x61,0xE7,0x96,0xF5,0xE7,0xF6,0xF6,0xC1,0x13, + + 0x04,0xD6,0xED,0xD7,0xB7,0xB7,0x1D,0xB3,0xFA,0x5C,0xFD,0xF7,0xF7,0xF7,0x52,0xAE, + + 0xF8,0x28,0x24,0xB1,0xB9,0xBF,0x5E,0xB4,0x2A,0x2C,0xC6,0x8E,0x64,0x35,0x09,0x1A, + + 0xAA,0x3E,0x47,0x1A,0x79,0xA5,0x81,0xDA,0xDA,0x7D,0x84,0x5C,0xFF,0xF1,0x80,0x97, + + 0x7C,0x6A,0x4F,0x2C,0xBA,0x1A,0xF1,0x2F,0xA4,0xAD,0x27,0x2D,0xFD,0x1D,0x87,0x3D, + + 0xAB,0x5B,0x3F,0x58,0xBF,0x4E,0xF9,0xBD,0x25,0x19,0x4D,0xDD,0xBE,0x24,0x8A,0x4A, + + 0xD2,0xBC,0xE6,0xCE,0x3E,0xBC,0xF2,0x08,0xEC,0xD4,0xF6,0xEE,0x7E,0xFC,0x56,0x29, + + 0x77,0x39,0xEE,0xDE,0x3F,0xBD,0x1E,0xBA,0xC2,0x20,0xFE,0xFE,0x7F,0xFD,0xCB,0x49, + + 0xAF,0xCB,0xE7,0xCF,0xBE,0xBE,0xFE,0x99,0x4D,0x9F,0xF7,0xEF,0xFE,0xFE,0x80,0xC7, + + 0x29,0x6A,0xEF,0xDF,0xBF,0xBF,0x07,0xDF,0x6D,0xD7,0xFF,0xFF,0xFF,0xFF,0x00,0x00, + + 0x00,0x00,0x80,0x04,0x10,0x20,0x10,0x20,0x40,0x40,0x90,0x24,0x50,0x60,0x08,0x10, + + 0x01,0x01,0x88,0x14,0x11,0x21,0x18,0x30,0x41,0x41,0x98,0x34,0x51,0x61,0x01,0x01, + + 0x80,0x02,0x81,0x05,0x90,0x22,0x11,0x21,0xC0,0x42,0x91,0x25,0xD0,0x62,0x09,0x11, + + 0x81,0x03,0x89,0x15,0x91,0x23,0x19,0x31,0xC1,0x43,0x99,0x35,0xD1,0x63,0x40,0x40, + + 0x02,0x04,0xC0,0x44,0x12,0x24,0x50,0x60,0x42,0x44,0xD0,0x64,0x52,0x64,0x48,0x50, + + 0x03,0x05,0xC8,0x54,0x13,0x25,0x58,0x70,0x43,0x45,0xD8,0x74,0x53,0x65,0x41,0x41, + + 0x82,0x06,0xC1,0x45,0x92,0x26,0x51,0x61,0xC2,0x46,0xD1,0x65,0xD2,0x66,0x49,0x51, + + 0x83,0x07,0xC9,0x55,0x93,0x27,0x59,0x71,0xC3,0x47,0xD9,0x75,0xD3,0x67,0x02,0x08, + + 0x08,0x08,0x82,0x0C,0x18,0x28,0x12,0x28,0x48,0x48,0x92,0x2C,0x58,0x68,0x0A,0x18, + + 0x09,0x09,0x8A,0x1C,0x19,0x29,0x1A,0x38,0x49,0x49,0x9A,0x3C,0x59,0x69,0x03,0x09, + + 0x88,0x0A,0x83,0x0D,0x98,0x2A,0x13,0x29,0xC8,0x4A,0x93,0x2D,0xD8,0x6A,0x0B,0x19, + + 0x89,0x0B,0x8B,0x1D,0x99,0x2B,0x1B,0x39,0xC9,0x4B,0x9B,0x3D,0xD9,0x6B,0x42,0x48, + + 0x0A,0x0C,0xC2,0x4C,0x1A,0x2C,0x52,0x68,0x4A,0x4C,0xD2,0x6C,0x5A,0x6C,0x4A,0x58, + + 0x0B,0x0D,0xCA,0x5C,0x1B,0x2D,0x5A,0x78,0x4B,0x4D,0xDA,0x7C,0x5B,0x6D,0x43,0x49, + + 0x8A,0x0E,0xC3,0x4D,0x9A,0x2E,0x53,0x69,0xCA,0x4E,0xD3,0x6D,0xDA,0x6E,0x4B,0x59, + + 0x8B,0x0F,0xCB,0x5D,0x9B,0x2F,0x5B,0x79,0xCB,0x4F,0xDB,0x7D,0xDB,0x6F,0x04,0x80, + + 0x20,0x10,0x84,0x84,0x30,0x30,0x14,0xA0,0x60,0x50,0x94,0xA4,0x70,0x70,0x0C,0x90, + + 0x21,0x11,0x8C,0x94,0x31,0x31,0x1C,0xB0,0x61,0x51,0x9C,0xB4,0x71,0x71,0x05,0x81, + + 0xA0,0x12,0x85,0x85,0xB0,0x32,0x15,0xA1,0xE0,0x52,0x95,0xA5,0xF0,0x72,0x0D,0x91, + + 0xA1,0x13,0x8D,0x95,0xB1,0x33,0x1D,0xB1,0xE1,0x53,0x9D,0xB5,0xF1,0x73,0x44,0xC0, + + 0x22,0x14,0xC4,0xC4,0x32,0x34,0x54,0xE0,0x62,0x54,0xD4,0xE4,0x72,0x74,0x4C,0xD0, + + 0x23,0x15,0xCC,0xD4,0x33,0x35,0x5C,0xF0,0x63,0x55,0xDC,0xF4,0x73,0x75,0x45,0xC1, + + 0xA2,0x16,0xC5,0xC5,0xB2,0x36,0x55,0xE1,0xE2,0x56,0xD5,0xE5,0xF2,0x76,0x4D,0xD1, + + 0xA3,0x17,0xCD,0xD5,0xB3,0x37,0x5D,0xF1,0xE3,0x57,0xDD,0xF5,0xF3,0x77,0x06,0x88, + + 0x28,0x18,0x86,0x8C,0x38,0x38,0x16,0xA8,0x68,0x58,0x96,0xAC,0x78,0x78,0x0E,0x98, + + 0x29,0x19,0x8E,0x9C,0x39,0x39,0x1E,0xB8,0x69,0x59,0x9E,0xBC,0x79,0x79,0x07,0x89, + + 0xA8,0x1A,0x87,0x8D,0xB8,0x3A,0x17,0xA9,0xE8,0x5A,0x97,0xAD,0xF8,0x7A,0x0F,0x99, + + 0xA9,0x1B,0x8F,0x9D,0xB9,0x3B,0x1F,0xB9,0xE9,0x5B,0x9F,0xBD,0xF9,0x7B,0x46,0xC8, + + 0x2A,0x1C,0xC6,0xCC,0x3A,0x3C,0x56,0xE8,0x6A,0x5C,0xD6,0xEC,0x7A,0x7C,0x4E,0xD8, + + 0x2B,0x1D,0xCE,0xDC,0x3B,0x3D,0x5E,0xF8,0x6B,0x5D,0xDE,0xFC,0x7B,0x7D,0x47,0xC9, + + 0xAA,0x1E,0xC7,0xCD,0xBA,0x3E,0x57,0xE9,0xEA,0x5E,0xD7,0xED,0xFA,0x7E,0x4F,0xD9, + + 0xAB,0x1F,0xCF,0xDD,0xBB,0x3F,0x5F,0xF9,0xEB,0x5F,0xDF,0xFD,0xFB,0x7F,0x20,0x02, + + 0x04,0x80,0xA0,0x06,0x14,0xA0,0x30,0x22,0x44,0xC0,0xB0,0x26,0x54,0xE0,0x28,0x12, + + 0x05,0x81,0xA8,0x16,0x15,0xA1,0x38,0x32,0x45,0xC1,0xB8,0x36,0x55,0xE1,0x21,0x03, + + 0x84,0x82,0xA1,0x07,0x94,0xA2,0x31,0x23,0xC4,0xC2,0xB1,0x27,0xD4,0xE2,0x29,0x13, + + 0x85,0x83,0xA9,0x17,0x95,0xA3,0x39,0x33,0xC5,0xC3,0xB9,0x37,0xD5,0xE3,0x60,0x42, + + 0x06,0x84,0xE0,0x46,0x16,0xA4,0x70,0x62,0x46,0xC4,0xF0,0x66,0x56,0xE4,0x68,0x52, + + 0x07,0x85,0xE8,0x56,0x17,0xA5,0x78,0x72,0x47,0xC5,0xF8,0x76,0x57,0xE5,0x61,0x43, + + 0x86,0x86,0xE1,0x47,0x96,0xA6,0x71,0x63,0xC6,0xC6,0xF1,0x67,0xD6,0xE6,0x69,0x53, + + 0x87,0x87,0xE9,0x57,0x97,0xA7,0x79,0x73,0xC7,0xC7,0xF9,0x77,0xD7,0xE7,0x22,0x0A, + + 0x0C,0x88,0xA2,0x0E,0x1C,0xA8,0x32,0x2A,0x4C,0xC8,0xB2,0x2E,0x5C,0xE8,0x2A,0x1A, + + 0x0D,0x89,0xAA,0x1E,0x1D,0xA9,0x3A,0x3A,0x4D,0xC9,0xBA,0x3E,0x5D,0xE9,0x23,0x0B, + + 0x8C,0x8A,0xA3,0x0F,0x9C,0xAA,0x33,0x2B,0xCC,0xCA,0xB3,0x2F,0xDC,0xEA,0x2B,0x1B, + + 0x8D,0x8B,0xAB,0x1F,0x9D,0xAB,0x3B,0x3B,0xCD,0xCB,0xBB,0x3F,0xDD,0xEB,0x62,0x4A, + + 0x0E,0x8C,0xE2,0x4E,0x1E,0xAC,0x72,0x6A,0x4E,0xCC,0xF2,0x6E,0x5E,0xEC,0x6A,0x5A, + + 0x0F,0x8D,0xEA,0x5E,0x1F,0xAD,0x7A,0x7A,0x4F,0xCD,0xFA,0x7E,0x5F,0xED,0x63,0x4B, + + 0x8E,0x8E,0xE3,0x4F,0x9E,0xAE,0x73,0x6B,0xCE,0xCE,0xF3,0x6F,0xDE,0xEE,0x6B,0x5B, + + 0x8F,0x8F,0xEB,0x5F,0x9F,0xAF,0x7B,0x7B,0xCF,0xCF,0xFB,0x7F,0xDF,0xEF,0x24,0x82, + + 0x24,0x90,0xA4,0x86,0x34,0xB0,0x34,0xA2,0x64,0xD0,0xB4,0xA6,0x74,0xF0,0x2C,0x92, + + 0x25,0x91,0xAC,0x96,0x35,0xB1,0x3C,0xB2,0x65,0xD1,0xBC,0xB6,0x75,0xF1,0x25,0x83, + + 0xA4,0x92,0xA5,0x87,0xB4,0xB2,0x35,0xA3,0xE4,0xD2,0xB5,0xA7,0xF4,0xF2,0x2D,0x93, + + 0xA5,0x93,0xAD,0x97,0xB5,0xB3,0x3D,0xB3,0xE5,0xD3,0xBD,0xB7,0xF5,0xF3,0x64,0xC2, + + 0x26,0x94,0xE4,0xC6,0x36,0xB4,0x74,0xE2,0x66,0xD4,0xF4,0xE6,0x76,0xF4,0x6C,0xD2, + + 0x27,0x95,0xEC,0xD6,0x37,0xB5,0x7C,0xF2,0x67,0xD5,0xFC,0xF6,0x77,0xF5,0x65,0xC3, + + 0xA6,0x96,0xE5,0xC7,0xB6,0xB6,0x75,0xE3,0xE6,0xD6,0xF5,0xE7,0xF6,0xF6,0x6D,0xD3, + + 0xA7,0x97,0xED,0xD7,0xB7,0xB7,0x7D,0xF3,0xE7,0xD7,0xFD,0xF7,0xF7,0xF7,0x26,0x8A, + + 0x2C,0x98,0xA6,0x8E,0x3C,0xB8,0x36,0xAA,0x6C,0xD8,0xB6,0xAE,0x7C,0xF8,0x2E,0x9A, + + 0x2D,0x99,0xAE,0x9E,0x3D,0xB9,0x3E,0xBA,0x6D,0xD9,0xBE,0xBE,0x7D,0xF9,0x27,0x8B, + + 0xAC,0x9A,0xA7,0x8F,0xBC,0xBA,0x37,0xAB,0xEC,0xDA,0xB7,0xAF,0xFC,0xFA,0x2F,0x9B, + + 0xAD,0x9B,0xAF,0x9F,0xBD,0xBB,0x3F,0xBB,0xED,0xDB,0xBF,0xBF,0xFD,0xFB,0x66,0xCA, + + 0x2E,0x9C,0xE6,0xCE,0x3E,0xBC,0x76,0xEA,0x6E,0xDC,0xF6,0xEE,0x7E,0xFC,0x6E,0xDA, + + 0x2F,0x9D,0xEE,0xDE,0x3F,0xBD,0x7E,0xFA,0x6F,0xDD,0xFE,0xFE,0x7F,0xFD,0x67,0xCB, + + 0xAE,0x9E,0xE7,0xCF,0xBE,0xBE,0x77,0xEB,0xEE,0xDE,0xF7,0xEF,0xFE,0xFE,0x6F,0xDB, + + 0xAF,0x9F,0xEF,0xDF,0xBF,0xBF,0x7F,0xFB,0xEF,0xDF,0xFF,0xFF,0xFF,0xFF,0x00,0x00, + + 0x00,0x00,0x80,0x04,0x10,0x20,0x10,0x20,0x40,0x40,0x90,0x24,0x50,0x60,0x08,0x10, + + 0x01,0x01,0x88,0x14,0x11,0x21,0x18,0x30,0x41,0x41,0x98,0x34,0x51,0x61,0x01,0x01, + + 0x80,0x02,0x81,0x05,0x90,0x22,0x11,0x21,0xC0,0x42,0x91,0x25,0xD0,0x62,0x09,0x11, + + 0x81,0x03,0x89,0x15,0x91,0x23,0x19,0x31,0xC1,0x43,0x99,0x35,0xD1,0x63,0x40,0x40, + + 0x02,0x04,0xC0,0x44,0x12,0x24,0x50,0x60,0x42,0x44,0xD0,0x64,0x52,0x64,0x48,0x50, + + 0x03,0x05,0xC8,0x54,0x13,0x25,0x58,0x70,0x43,0x45,0xD8,0x74,0x53,0x65,0x41,0x41, + + 0x82,0x06,0xC1,0x45,0x92,0x26,0x51,0x61,0xC2,0x46,0xD1,0x65,0xD2,0x66,0x49,0x51, + + 0x83,0x07,0xC9,0x55,0x93,0x27,0x59,0x71,0xC3,0x47,0xD9,0x75,0xD3,0x67,0x02,0x08, + + 0x08,0x08,0x82,0x0C,0x18,0x28,0x12,0x28,0x48,0x48,0x92,0x2C,0x58,0x68,0x0A,0x18, + + 0x09,0x09,0x8A,0x1C,0x19,0x29,0x1A,0x38,0x49,0x49,0x9A,0x3C,0x59,0x69,0x03,0x09, + + 0x88,0x0A,0x83,0x0D,0x98,0x2A,0x13,0x29,0xC8,0x4A,0x93,0x2D,0xD8,0x6A,0x0B,0x19, + + 0x89,0x0B,0x8B,0x1D,0x99,0x2B,0x1B,0x39,0xC9,0x4B,0x9B,0x3D,0xD9,0x6B,0x42,0x48, + + 0x0A,0x0C,0xC2,0x4C,0x1A,0x2C,0x52,0x68,0x4A,0x4C,0xD2,0x6C,0x5A,0x6C,0x4A,0x58, + + 0x0B,0x0D,0xCA,0x5C,0x1B,0x2D,0x5A,0x78,0x4B,0x4D,0xDA,0x7C,0x5B,0x6D,0x43,0x49, + + 0x8A,0x0E,0xC3,0x4D,0x9A,0x2E,0x53,0x69,0xCA,0x4E,0xD3,0x6D,0xDA,0x6E,0x4B,0x59, + + 0x8B,0x0F,0xCB,0x5D,0x9B,0x2F,0x5B,0x79,0xCB,0x4F,0xDB,0x7D,0xDB,0x6F,0x04,0x80, + + 0x20,0x10,0x84,0x84,0x30,0x30,0x14,0xA0,0x60,0x50,0x94,0xA4,0x70,0x70,0x0C,0x90, + + 0x21,0x11,0x8C,0x94,0x31,0x31,0x1C,0xB0,0x61,0x51,0x9C,0xB4,0x71,0x71,0x05,0x81, + + 0xA0,0x12,0x85,0x85,0xB0,0x32,0x15,0xA1,0xE0,0x52,0x95,0xA5,0xF0,0x72,0x0D,0x91, + + 0xA1,0x13,0x8D,0x95,0xB1,0x33,0x1D,0xB1,0xE1,0x53,0x9D,0xB5,0xF1,0x73,0x44,0xC0, + + 0x22,0x14,0xC4,0xC4,0x32,0x34,0x54,0xE0,0x62,0x54,0xD4,0xE4,0x72,0x74,0x4C,0xD0, + + 0x23,0x15,0xCC,0xD4,0x33,0x35,0x5C,0xF0,0x63,0x55,0xDC,0xF4,0x73,0x75,0x45,0xC1, + + 0xA2,0x16,0xC5,0xC5,0xB2,0x36,0x55,0xE1,0xE2,0x56,0xD5,0xE5,0xF2,0x76,0x4D,0xD1, + + 0xA3,0x17,0xCD,0xD5,0xB3,0x37,0x5D,0xF1,0xE3,0x57,0xDD,0xF5,0xF3,0x77,0x06,0x88, + + 0x28,0x18,0x86,0x8C,0x38,0x38,0x16,0xA8,0x68,0x58,0x96,0xAC,0x78,0x78,0x0E,0x98, + + 0x29,0x19,0x8E,0x9C,0x39,0x39,0x1E,0xB8,0x69,0x59,0x9E,0xBC,0x79,0x79,0x07,0x89, + + 0xA8,0x1A,0x87,0x8D,0xB8,0x3A,0x17,0xA9,0xE8,0x5A,0x97,0xAD,0xF8,0x7A,0x0F,0x99, + + 0xA9,0x1B,0x8F,0x9D,0xB9,0x3B,0x1F,0xB9,0xE9,0x5B,0x9F,0xBD,0xF9,0x7B,0x46,0xC8, + + 0x2A,0x1C,0xC6,0xCC,0x3A,0x3C,0x56,0xE8,0x6A,0x5C,0xD6,0xEC,0x7A,0x7C,0x4E,0xD8, + + 0x2B,0x1D,0xCE,0xDC,0x3B,0x3D,0x5E,0xF8,0x6B,0x5D,0xDE,0xFC,0x7B,0x7D,0x47,0xC9, + + 0xAA,0x1E,0xC7,0xCD,0xBA,0x3E,0x57,0xE9,0xEA,0x5E,0xD7,0xED,0xFA,0x7E,0x4F,0xD9, + + 0xAB,0x1F,0xCF,0xDD,0xBB,0x3F,0x5F,0xF9,0xEB,0x5F,0xDF,0xFD,0xFB,0x7F,0x20,0x02, + + 0x04,0x80,0xA0,0x06,0x14,0xA0,0x30,0x22,0x44,0xC0,0xB0,0x26,0x54,0xE0,0x28,0x12, + + 0x05,0x81,0xA8,0x16,0x15,0xA1,0x38,0x32,0x45,0xC1,0xB8,0x36,0x55,0xE1,0x21,0x03, + + 0x84,0x82,0xA1,0x07,0x94,0xA2,0x31,0x23,0xC4,0xC2,0xB1,0x27,0xD4,0xE2,0x29,0x13, + + 0x85,0x83,0xA9,0x17,0x95,0xA3,0x39,0x33,0xC5,0xC3,0xB9,0x37,0xD5,0xE3,0x60,0x42, + + 0x06,0x84,0xE0,0x46,0x16,0xA4,0x70,0x62,0x46,0xC4,0xF0,0x66,0x56,0xE4,0x68,0x52, + + 0x07,0x85,0xE8,0x56,0x17,0xA5,0x78,0x72,0x47,0xC5,0xF8,0x76,0x57,0xE5,0x61,0x43, + + 0x86,0x86,0xE1,0x47,0x96,0xA6,0x71,0x63,0xC6,0xC6,0xF1,0x67,0xD6,0xE6,0x69,0x53, + + 0x87,0x87,0xE9,0x57,0x97,0xA7,0x79,0x73,0xC7,0xC7,0xF9,0x77,0xD7,0xE7,0x22,0x0A, + + 0x0C,0x88,0xA2,0x0E,0x1C,0xA8,0x32,0x2A,0x4C,0xC8,0xB2,0x2E,0x5C,0xE8,0x2A,0x1A, + + 0x0D,0x89,0xAA,0x1E,0x1D,0xA9,0x3A,0x3A,0x4D,0xC9,0xBA,0x3E,0x5D,0xE9,0x23,0x0B, + + 0x8C,0x8A,0xA3,0x0F,0x9C,0xAA,0x33,0x2B,0xCC,0xCA,0xB3,0x2F,0xDC,0xEA,0x2B,0x1B, + + 0x8D,0x8B,0xAB,0x1F,0x9D,0xAB,0x3B,0x3B,0xCD,0xCB,0xBB,0x3F,0xDD,0xEB,0x62,0x4A, + + 0x0E,0x8C,0xE2,0x4E,0x1E,0xAC,0x72,0x6A,0x4E,0xCC,0xF2,0x6E,0x5E,0xEC,0x6A,0x5A, + + 0x0F,0x8D,0xEA,0x5E,0x1F,0xAD,0x7A,0x7A,0x4F,0xCD,0xFA,0x7E,0x5F,0xED,0x63,0x4B, + + 0x8E,0x8E,0xE3,0x4F,0x9E,0xAE,0x73,0x6B,0xCE,0xCE,0xF3,0x6F,0xDE,0xEE,0x6B,0x5B, + + 0x8F,0x8F,0xEB,0x5F,0x9F,0xAF,0x7B,0x7B,0xCF,0xCF,0xFB,0x7F,0xDF,0xEF,0x24,0x82, + + 0x24,0x90,0xA4,0x86,0x34,0xB0,0x34,0xA2,0x64,0xD0,0xB4,0xA6,0x74,0xF0,0x2C,0x92, + + 0x25,0x91,0xAC,0x96,0x35,0xB1,0x3C,0xB2,0x65,0xD1,0xBC,0xB6,0x75,0xF1,0x25,0x83, + + 0xA4,0x92,0xA5,0x87,0xB4,0xB2,0x35,0xA3,0xE4,0xD2,0xB5,0xA7,0xF4,0xF2,0x2D,0x93, + + 0xA5,0x93,0xAD,0x97,0xB5,0xB3,0x3D,0xB3,0xE5,0xD3,0xBD,0xB7,0xF5,0xF3,0x64,0xC2, + + 0x26,0x94,0xE4,0xC6,0x36,0xB4,0x74,0xE2,0x66,0xD4,0xF4,0xE6,0x76,0xF4,0x6C,0xD2, + + 0x27,0x95,0xEC,0xD6,0x37,0xB5,0x7C,0xF2,0x67,0xD5,0xFC,0xF6,0x77,0xF5,0x65,0xC3, + + 0xA6,0x96,0xE5,0xC7,0xB6,0xB6,0x75,0xE3,0xE6,0xD6,0xF5,0xE7,0xF6,0xF6,0x6D,0xD3, + + 0xA7,0x97,0xED,0xD7,0xB7,0xB7,0x7D,0xF3,0xE7,0xD7,0xFD,0xF7,0xF7,0xF7,0x26,0x8A, + + 0x2C,0x98,0xA6,0x8E,0x3C,0xB8,0x36,0xAA,0x6C,0xD8,0xB6,0xAE,0x7C,0xF8,0x2E,0x9A, + + 0x2D,0x99,0xAE,0x9E,0x3D,0xB9,0x3E,0xBA,0x6D,0xD9,0xBE,0xBE,0x7D,0xF9,0x27,0x8B, + + 0xAC,0x9A,0xA7,0x8F,0xBC,0xBA,0x37,0xAB,0xEC,0xDA,0xB7,0xAF,0xFC,0xFA,0x2F,0x9B, + + 0xAD,0x9B,0xAF,0x9F,0xBD,0xBB,0x3F,0xBB,0xED,0xDB,0xBF,0xBF,0xFD,0xFB,0x66,0xCA, + + 0x2E,0x9C,0xE6,0xCE,0x3E,0xBC,0x76,0xEA,0x6E,0xDC,0xF6,0xEE,0x7E,0xFC,0x6E,0xDA, + + 0x2F,0x9D,0xEE,0xDE,0x3F,0xBD,0x7E,0xFA,0x6F,0xDD,0xFE,0xFE,0x7F,0xFD,0x67,0xCB, + + 0xAE,0x9E,0xE7,0xCF,0xBE,0xBE,0x77,0xEB,0xEE,0xDE,0xF7,0xEF,0xFE,0xFE,0x6F,0xDB, + + 0xAF,0x9F,0xEF,0xDF,0xBF,0xBF,0x7F,0xFB,0xEF,0xDF,0xFF,0xFF,0x90,0xAF, diff --git a/drivers/input/touchscreen/GT917D/Kconfig b/drivers/input/touchscreen/GT917D/Kconfig new file mode 100644 index 0000000000000..f714e46bbea07 --- /dev/null +++ b/drivers/input/touchscreen/GT917D/Kconfig @@ -0,0 +1,5 @@ + +config TOUCHSCREEN_GT917D + tristate "ATMEL GT917D touchpanel driver" + depends on CONFIG_INPUT_TOUCHSCREEN + default n diff --git a/drivers/input/touchscreen/GT917D/Makefile b/drivers/input/touchscreen/GT917D/Makefile new file mode 100644 index 0000000000000..c050268fc9335 --- /dev/null +++ b/drivers/input/touchscreen/GT917D/Makefile @@ -0,0 +1,4 @@ +#GT915L touchpanel driver + +obj-y += gt917.o goodix_tool.o gt9xx_update.o + diff --git a/drivers/input/touchscreen/GT917D/goodix_tool.c b/drivers/input/touchscreen/GT917D/goodix_tool.c new file mode 100644 index 0000000000000..d09b181020043 --- /dev/null +++ b/drivers/input/touchscreen/GT917D/goodix_tool.c @@ -0,0 +1,707 @@ +/* + * Goodix GT9xx touchscreen driver + * + * Copyright (C) 2010 - 2014 Goodix. Ltd. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be a reference + * to you, when you are integrating the GOODiX's CTP IC into your system, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * Version: 2.4 + * Release Date: 2014/11/28 + */ + + +#include "gt9xx.h" + +#define DATA_LENGTH_UINT 512 +#define CMD_HEAD_LENGTH (sizeof(st_cmd_head) - sizeof(u8*)) +static char procname[20] = {0}; + +#define UPDATE_FUNCTIONS + +#ifdef UPDATE_FUNCTIONS +extern s32 gup_enter_update_mode(struct i2c_client *client); +extern void gup_leave_update_mode(void); +extern s32 gup_update_proc(void *dir); +#endif + +extern void gtp_irq_disable(struct goodix_ts_data *); +extern void gtp_irq_enable(struct goodix_ts_data *); + +#pragma pack(1) +typedef struct{ + u8 wr; + u8 flag; + u8 flag_addr[2]; + u8 flag_val; + u8 flag_relation; + u16 circle; + u8 times; + u8 retry; + u16 delay; + u16 data_len; + u8 addr_len; + u8 addr[2]; + u8 res[3]; + u8* data; +}st_cmd_head; +#pragma pack() +st_cmd_head cmd_head; + +static struct i2c_client *gt_client = NULL; + +static struct proc_dir_entry *goodix_proc_entry; + + +static ssize_t goodix_tool_read(struct file *, char __user *, size_t, loff_t *); +static ssize_t goodix_tool_write(struct file *, const char __user *, size_t, loff_t *); +static const struct file_operations tool_ops = { + .owner = THIS_MODULE, + .read = goodix_tool_read, + .write = goodix_tool_write, +}; + +static struct class *ft_class; +#define CLASS_NAME "touchscreen" +static ssize_t goodix_sys_tool_write(struct class *class, struct class_attribute *attr,const char *buf, size_t len); +static ssize_t goodix_sys_tool_read(struct class *class, struct class_attribute *attr, char *buf); + +static CLASS_ATTR(gmnode, 0664,goodix_sys_tool_read, goodix_sys_tool_write); + + +static s32 (*tool_i2c_read)(u8 *, u16); +static s32 (*tool_i2c_write)(u8 *, u16); + +#if GTP_ESD_PROTECT +extern void gtp_esd_switch(struct i2c_client *, s32); +#endif +s32 DATA_LENGTH = 0; +s8 IC_TYPE[16] = "GT9XX"; + +static void tool_set_proc_name(char * procname) +{ + char *months[12] = {"Jan", "Feb", "Mar", "Apr", "May", + "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; + char date[20] = {0}; + char month[4] = {0}; + int i = 0, n_month = 1, n_day = 0, n_year = 0; + + + GTP_DEBUG("compile date: %s", date); + + sscanf(date, "%s %d %d", month, &n_day, &n_year); + + for (i = 0; i < 12; ++i) { + if (!memcmp(months[i], month, 3)) { + n_month = i+1; + break; + } + } + + sprintf(procname, "gmnode%04d%02d%02d", n_year, n_month, n_day); +} + + +static s32 tool_i2c_read_no_extra(u8* buf, u16 len) +{ + s32 ret = -1; + s32 i = 0; + struct i2c_msg msgs[2]; + + msgs[0].flags = !I2C_M_RD; + msgs[0].addr = gt_client->addr; + msgs[0].len = cmd_head.addr_len; + msgs[0].buf = &buf[0]; + + msgs[1].flags = I2C_M_RD; + msgs[1].addr = gt_client->addr; + msgs[1].len = len; + msgs[1].buf = &buf[GTP_ADDR_LENGTH]; + + for (i = 0; i < cmd_head.retry; i++) { + ret=i2c_transfer(gt_client->adapter, msgs, 2); + if (ret > 0) { + break; + } + } + return ret; +} + +static s32 tool_i2c_write_no_extra(u8* buf, u16 len) +{ + s32 ret = -1; + s32 i = 0; + struct i2c_msg msg; + + msg.flags = !I2C_M_RD; + msg.addr = gt_client->addr; + msg.len = len; + msg.buf = buf; + + for (i = 0; i < cmd_head.retry; i++) { + ret=i2c_transfer(gt_client->adapter, &msg, 1); + if (ret > 0) { + break; + } + } + return ret; +} + +static s32 tool_i2c_read_with_extra(u8* buf, u16 len) +{ + s32 ret = -1; + u8 pre[2] = {0x0f, 0xff}; + u8 end[2] = {0x80, 0x00}; + + tool_i2c_write_no_extra(pre, 2); + ret = tool_i2c_read_no_extra(buf, len); + tool_i2c_write_no_extra(end, 2); + + return ret; +} + +static s32 tool_i2c_write_with_extra(u8* buf, u16 len) +{ + s32 ret = -1; + u8 pre[2] = {0x0f, 0xff}; + u8 end[2] = {0x80, 0x00}; + + tool_i2c_write_no_extra(pre, 2); + ret = tool_i2c_write_no_extra(buf, len); + tool_i2c_write_no_extra(end, 2); + + return ret; +} + +static void register_i2c_func(void) +{ + if (strncmp(IC_TYPE, "GT8110", 6) && strncmp(IC_TYPE, "GT8105", 6) + && strncmp(IC_TYPE, "GT801", 5) && strncmp(IC_TYPE, "GT800", 5) + && strncmp(IC_TYPE, "GT801PLUS", 9) && strncmp(IC_TYPE, "GT811", 5) + && strncmp(IC_TYPE, "GTxxx", 5) && strncmp(IC_TYPE, "GT9XX", 5)) { + tool_i2c_read = tool_i2c_read_with_extra; + tool_i2c_write = tool_i2c_write_with_extra; + GTP_DEBUG("I2C function: with pre and end cmd!"); + } else { + tool_i2c_read = tool_i2c_read_no_extra; + tool_i2c_write = tool_i2c_write_no_extra; + GTP_INFO("I2C function: without pre and end cmd!"); + } +} + +static void unregister_i2c_func(void) +{ + tool_i2c_read = NULL; + tool_i2c_write = NULL; + GTP_INFO("I2C function: unregister i2c transfer function!"); +} + +s32 init_wr_node(struct i2c_client *client) +{ + s32 i; + s32 err; + + gt_client = client; + memset(&cmd_head, 0, sizeof(cmd_head)); + cmd_head.data = NULL; + + i = 5; + while ((!cmd_head.data) && i) { + cmd_head.data = kzalloc(i * DATA_LENGTH_UINT, GFP_KERNEL); + if (NULL != cmd_head.data) { + break; + } + i--; + } + if (i) { + DATA_LENGTH = i * DATA_LENGTH_UINT + GTP_ADDR_LENGTH; + GTP_INFO("Applied memory size:%d.", DATA_LENGTH); + } else { + GTP_ERROR("Apply for memory failed."); + return FAIL; + } + + cmd_head.addr_len = 2; + cmd_head.retry = 5; + + register_i2c_func(); + + tool_set_proc_name(procname); + goodix_proc_entry = proc_create(procname, 0666, NULL, &tool_ops); + if (goodix_proc_entry == NULL) { + GTP_ERROR("Couldn't create proc entry!"); + return FAIL; + } else { + GTP_INFO("Create proc entry success!"); + } + + ft_class = class_create(THIS_MODULE, CLASS_NAME); + if (IS_ERR(ft_class)) { + GTP_ERROR("Failed to create class.\n"); + return FAIL; + } + err = class_create_file(ft_class, &class_attr_gmnode); + if (err) { + GTP_ERROR("Failed to create class file.\n"); + } + return SUCCESS; +} + +void uninit_wr_node(void) +{ + kfree(cmd_head.data); + cmd_head.data = NULL; + unregister_i2c_func(); + remove_proc_entry(procname, NULL); +} + +static u8 relation(u8 src, u8 dst, u8 rlt) +{ + u8 ret = 0; + + switch (rlt) { + case 0: + ret = (src != dst) ? true : false; + break; + + case 1: + ret = (src == dst) ? true : false; + GTP_DEBUG("equal:src:0x%02x dst:0x%02x ret:%d.", src, dst, (s32)ret); + break; + + case 2: + ret = (src > dst) ? true : false; + break; + + case 3: + ret = (src < dst) ? true : false; + break; + + case 4: + ret = (src & dst) ? true : false; + break; + + case 5: + ret = (!(src | dst)) ? true : false; + break; + + default: + ret = false; + break; + } + + return ret; +} + +/******************************************************* +Function: + Comfirm function. +Input: + None. +Output: + Return write length. +********************************************************/ +static u8 comfirm(void) +{ + s32 i = 0; + u8 buf[32]; + + memcpy(buf, cmd_head.flag_addr, cmd_head.addr_len); + + for (i = 0; i < cmd_head.times; i++) { + if (tool_i2c_read(buf, 1) <= 0) { + GTP_ERROR("Read flag data failed!"); + return FAIL; + } + if (true == relation(buf[GTP_ADDR_LENGTH], cmd_head.flag_val, cmd_head.flag_relation)) { + GTP_DEBUG("value at flag addr:0x%02x.", buf[GTP_ADDR_LENGTH]); + GTP_DEBUG("flag value:0x%02x.", cmd_head.flag_val); + break; + } + + msleep(cmd_head.circle); + } + + if (i >= cmd_head.times) { + GTP_ERROR("Didn't get the flag to continue!"); + return FAIL; + } + + return SUCCESS; +} + +static ssize_t goodix_sys_tool_write(struct class *class, struct class_attribute *attr,const char *buf, size_t len) +{ + + GTP_DEBUG_FUNC(); + GTP_DEBUG_ARRAY((u8*)buf, len); + + memcpy(&cmd_head, buf, CMD_HEAD_LENGTH); + + GTP_DEBUG("[Operation]wr: %02X", cmd_head.wr); + GTP_DEBUG("[Flag]flag: %02X, addr: %02X%02X, value: %02X, relation: %02X", cmd_head.flag, cmd_head.flag_addr[0], + cmd_head.flag_addr[1], cmd_head.flag_val, cmd_head.flag_relation); + GTP_DEBUG("[Retry]circle: %d, times: %d, retry: %d, delay: %d", (s32)cmd_head.circle, (s32)cmd_head.times, + (s32)cmd_head.retry, (s32)cmd_head.delay); + GTP_DEBUG("[Data]data len: %d, addr len: %d, addr: %02X%02X, buffer len: %d, data[0]: %02X", (s32)cmd_head.data_len, + (s32)cmd_head.addr_len, cmd_head.addr[0], cmd_head.addr[1], (s32)len, buf[CMD_HEAD_LENGTH]); + + if (1 == cmd_head.wr) { + memcpy(&cmd_head.data[GTP_ADDR_LENGTH], &buf[CMD_HEAD_LENGTH], cmd_head.data_len); + memcpy(&cmd_head.data[GTP_ADDR_LENGTH - cmd_head.addr_len], cmd_head.addr, cmd_head.addr_len); + + GTP_DEBUG_ARRAY(cmd_head.data, cmd_head.data_len + cmd_head.addr_len); + GTP_DEBUG_ARRAY((u8*)&buf[CMD_HEAD_LENGTH], cmd_head.data_len); + + if (1 == cmd_head.flag) { + if (FAIL == comfirm()) { + GTP_ERROR("[WRITE]Comfirm fail!"); + return -EPERM; + } + } else if (2 == cmd_head.flag) { + } + if (tool_i2c_write(&cmd_head.data[GTP_ADDR_LENGTH - cmd_head.addr_len], + cmd_head.data_len + cmd_head.addr_len) <= 0) { + GTP_ERROR("[WRITE]Write data failed!"); + return -EPERM; + } + + GTP_DEBUG_ARRAY(&cmd_head.data[GTP_ADDR_LENGTH - cmd_head.addr_len],cmd_head.data_len + cmd_head.addr_len); + if (cmd_head.delay) { + msleep(cmd_head.delay); + } + } else if (3 == cmd_head.wr) { + memcpy(&cmd_head.data[0], &buf[CMD_HEAD_LENGTH], cmd_head.data_len); + + memcpy(IC_TYPE, cmd_head.data, cmd_head.data_len); + + register_i2c_func(); + } else if (5 == cmd_head.wr) { + } else if (7 == cmd_head.wr) { + gtp_irq_disable(i2c_get_clientdata(gt_client)); + + #if GTP_ESD_PROTECT + gtp_esd_switch(gt_client, SWITCH_OFF); + #endif + } else if (9 == cmd_head.wr) { + gtp_irq_enable(i2c_get_clientdata(gt_client)); + + #if GTP_ESD_PROTECT + gtp_esd_switch(gt_client, SWITCH_ON); + #endif + } else if (17 == cmd_head.wr) { + struct goodix_ts_data *ts = i2c_get_clientdata(gt_client); + memcpy(&cmd_head.data[GTP_ADDR_LENGTH], &buf[CMD_HEAD_LENGTH], cmd_head.data_len); + + if (cmd_head.data[GTP_ADDR_LENGTH]) { + GTP_INFO("gtp enter rawdiff."); + ts->gtp_rawdiff_mode = true; + } else { + ts->gtp_rawdiff_mode = false; + GTP_INFO("gtp leave rawdiff."); + } + } +#ifdef UPDATE_FUNCTIONS + else if (11 == cmd_head.wr) { + if (FAIL == gup_enter_update_mode(gt_client)) { + return -EPERM; + } + } else if (13 == cmd_head.wr) { + gup_leave_update_mode(); + } else if (15 == cmd_head.wr) { + show_len = 0; + total_len = 0; + memset(cmd_head.data, 0, cmd_head.data_len + 1); + memcpy(cmd_head.data, &buf[CMD_HEAD_LENGTH], cmd_head.data_len); + + if (FAIL == gup_update_proc((void*)cmd_head.data)) { + return -EPERM; + } + } + +#endif + + return len; +} +/******************************************************* +Function: + Goodix tool write function. +Input: + standard proc write function param. +Output: + Return write length. +********************************************************/ +ssize_t goodix_tool_write(struct file *filp, const char __user *buff, size_t len, loff_t *off) +{ + s32 ret = 0; + + GTP_DEBUG_FUNC(); + GTP_DEBUG_ARRAY((u8*)buff, len); + + ret = copy_from_user(&cmd_head, buff, CMD_HEAD_LENGTH); + if (ret) { + GTP_ERROR("copy_from_user failed."); + return -EPERM; + } + + + GTP_DEBUG("[Operation]wr: %02X", cmd_head.wr); + GTP_DEBUG("[Flag]flag: %02X, addr: %02X%02X, value: %02X, relation: %02X", cmd_head.flag, cmd_head.flag_addr[0], + cmd_head.flag_addr[1], cmd_head.flag_val, cmd_head.flag_relation); + GTP_DEBUG("[Retry]circle: %d, times: %d, retry: %d, delay: %d", (s32)cmd_head.circle, (s32)cmd_head.times, + (s32)cmd_head.retry, (s32)cmd_head.delay); + GTP_DEBUG("[Data]data len: %d, addr len: %d, addr: %02X%02X, buffer len: %d, data[0]: %02X", (s32)cmd_head.data_len, + (s32)cmd_head.addr_len, cmd_head.addr[0], cmd_head.addr[1], (s32)len, buff[CMD_HEAD_LENGTH]); + + if (1 == cmd_head.wr) { + ret = copy_from_user(&cmd_head.data[GTP_ADDR_LENGTH], &buff[CMD_HEAD_LENGTH], cmd_head.data_len); + if (ret) { + GTP_ERROR("copy_from_user failed."); + return -EPERM; + } + memcpy(&cmd_head.data[GTP_ADDR_LENGTH - cmd_head.addr_len], cmd_head.addr, cmd_head.addr_len); + + GTP_DEBUG_ARRAY(cmd_head.data, cmd_head.data_len + cmd_head.addr_len); + GTP_DEBUG_ARRAY((u8*)&buff[CMD_HEAD_LENGTH], cmd_head.data_len); + + if (1 == cmd_head.flag) { + if (FAIL == comfirm()) { + GTP_ERROR("[WRITE]Comfirm fail!"); + return -EPERM; + } + } else if (2 == cmd_head.flag) { + } + if (tool_i2c_write(&cmd_head.data[GTP_ADDR_LENGTH - cmd_head.addr_len], + cmd_head.data_len + cmd_head.addr_len) <= 0) { + GTP_ERROR("[WRITE]Write data failed!"); + return -EPERM; + } + + GTP_DEBUG_ARRAY(&cmd_head.data[GTP_ADDR_LENGTH - cmd_head.addr_len],cmd_head.data_len + cmd_head.addr_len); + if (cmd_head.delay) { + msleep(cmd_head.delay); + } + } else if (3 == cmd_head.wr) { + ret = copy_from_user(&cmd_head.data[0], &buff[CMD_HEAD_LENGTH], cmd_head.data_len); + if (ret) { + GTP_ERROR("copy_from_user failed."); + return -EPERM; + } + memcpy(IC_TYPE, cmd_head.data, cmd_head.data_len); + + register_i2c_func(); + } else if (5 == cmd_head.wr) { + } else if (7 == cmd_head.wr) { + gtp_irq_disable(i2c_get_clientdata(gt_client)); + + #if GTP_ESD_PROTECT + gtp_esd_switch(gt_client, SWITCH_OFF); + #endif + } else if (9 == cmd_head.wr) { + gtp_irq_enable(i2c_get_clientdata(gt_client)); + + #if GTP_ESD_PROTECT + gtp_esd_switch(gt_client, SWITCH_ON); + #endif + } else if (17 == cmd_head.wr) { + struct goodix_ts_data *ts = i2c_get_clientdata(gt_client); + ret = copy_from_user(&cmd_head.data[GTP_ADDR_LENGTH], &buff[CMD_HEAD_LENGTH], cmd_head.data_len); + if (ret) { + GTP_DEBUG("copy_from_user failed."); + return -EPERM; + } + if (cmd_head.data[GTP_ADDR_LENGTH]) { + GTP_INFO("gtp enter rawdiff."); + ts->gtp_rawdiff_mode = true; + } else { + ts->gtp_rawdiff_mode = false; + GTP_INFO("gtp leave rawdiff."); + } + } +#ifdef UPDATE_FUNCTIONS + else if (11 == cmd_head.wr) { + if (FAIL == gup_enter_update_mode(gt_client)) { + return -EPERM; + } + } else if (13 == cmd_head.wr) { + gup_leave_update_mode(); + } else if (15 == cmd_head.wr) { + show_len = 0; + total_len = 0; + memset(cmd_head.data, 0, cmd_head.data_len + 1); + memcpy(cmd_head.data, &buff[CMD_HEAD_LENGTH], cmd_head.data_len); + + if (FAIL == gup_update_proc((void*)cmd_head.data)) { + return -EPERM; + } + } + +#endif + + return len; +} +static ssize_t goodix_sys_tool_read(struct class *class, struct class_attribute *attr, char *buf) +{ + s32 ret = 0; + + GTP_DEBUG_FUNC(); + + if (cmd_head.wr % 2) { + return -EPERM; + } else if (!cmd_head.wr) { + u16 len = 0; + s16 data_len = 0; + u16 loc = 0; + + if (1 == cmd_head.flag) { + if (FAIL == comfirm()) { + GTP_ERROR("[READ]Comfirm fail!"); + return -EPERM; + } + } else if (2 == cmd_head.flag) { + } + + memcpy(cmd_head.data, cmd_head.addr, cmd_head.addr_len); + + GTP_DEBUG("[CMD HEAD DATA] ADDR:0x%02x%02x.", cmd_head.data[0], cmd_head.data[1]); + GTP_DEBUG("[CMD HEAD ADDR] ADDR:0x%02x%02x.", cmd_head.addr[0], cmd_head.addr[1]); + + if (cmd_head.delay) { + msleep(cmd_head.delay); + } + + data_len = cmd_head.data_len; + + while(data_len > 0) { + if (data_len > DATA_LENGTH) { + len = DATA_LENGTH; + } else { + len = data_len; + } + data_len -= len; + + if (tool_i2c_read(cmd_head.data, len) <= 0) { + GTP_ERROR("[READ]Read data failed!"); + return -EPERM; + } + + memcpy(&buf[loc], &cmd_head.data[GTP_ADDR_LENGTH], len); + loc += len; + + GTP_DEBUG_ARRAY(&cmd_head.data[GTP_ADDR_LENGTH], len); + GTP_DEBUG_ARRAY(buf, len); + } + return cmd_head.data_len; + } else if (2 == cmd_head.wr) { + memcpy(buf, IC_TYPE, sizeof(IC_TYPE)); + return ret; + } else if (4 == cmd_head.wr) { + u8 progress_buf[4]; + progress_buf[0] = show_len >> 8; + progress_buf[1] = show_len & 0xff; + progress_buf[2] = total_len >> 8; + progress_buf[3] = total_len & 0xff; + memcpy(buf, progress_buf, 4); + return ret; + } else if (6 == cmd_head.wr) { + } else if (8 == cmd_head.wr) { + memcpy(buf, GTP_DRIVER_VERSION, strlen(GTP_DRIVER_VERSION)); + return ret; + } + return -EPERM; +} +/******************************************************* +Function: + Goodix tool read function. +Input: + standard proc read function param. +Output: + Return read length. +********************************************************/ +ssize_t goodix_tool_read(struct file *file, char __user *page, size_t size, loff_t *ppos) +{ + s32 ret = 0; + + GTP_DEBUG_FUNC(); + + if (*ppos) { + *ppos = 0; + return 0; + } + + if (cmd_head.wr % 2) { + return -EPERM; + } else if (!cmd_head.wr) { + u16 len = 0; + s16 data_len = 0; + u16 loc = 0; + + if (1 == cmd_head.flag) { + if (FAIL == comfirm()) { + GTP_ERROR("[READ]Comfirm fail!"); + return -EPERM; + } + } else if (2 == cmd_head.flag) { + } + + memcpy(cmd_head.data, cmd_head.addr, cmd_head.addr_len); + + GTP_DEBUG("[CMD HEAD DATA] ADDR:0x%02x%02x.", cmd_head.data[0], cmd_head.data[1]); + GTP_DEBUG("[CMD HEAD ADDR] ADDR:0x%02x%02x.", cmd_head.addr[0], cmd_head.addr[1]); + + if (cmd_head.delay) { + msleep(cmd_head.delay); + } + + data_len = cmd_head.data_len; + + while(data_len > 0) { + if (data_len > DATA_LENGTH) { + len = DATA_LENGTH; + } else { + len = data_len; + } + data_len -= len; + + if (tool_i2c_read(cmd_head.data, len) <= 0) { + GTP_ERROR("[READ]Read data failed!"); + return -EPERM; + } + + ret = simple_read_from_buffer(&page[loc], size, ppos, &cmd_head.data[GTP_ADDR_LENGTH], len); + if (ret < 0) { + return ret; + } + loc += len; + + GTP_DEBUG_ARRAY(&cmd_head.data[GTP_ADDR_LENGTH], len); + GTP_DEBUG_ARRAY(page, len); + } + return cmd_head.data_len; + } else if (2 == cmd_head.wr) { + ret = simple_read_from_buffer(page, size, ppos, IC_TYPE, sizeof(IC_TYPE)); + return ret; + } else if (4 == cmd_head.wr) { + u8 progress_buf[4]; + progress_buf[0] = show_len >> 8; + progress_buf[1] = show_len & 0xff; + progress_buf[2] = total_len >> 8; + progress_buf[3] = total_len & 0xff; + + ret = simple_read_from_buffer(page, size, ppos, progress_buf, 4); + return ret; + } else if (6 == cmd_head.wr) { + } else if (8 == cmd_head.wr) { + ret = simple_read_from_buffer(page, size, ppos, GTP_DRIVER_VERSION, strlen(GTP_DRIVER_VERSION)); + return ret; + } + return -EPERM; +} diff --git a/drivers/input/touchscreen/GT917D/gt917.c b/drivers/input/touchscreen/GT917D/gt917.c new file mode 100644 index 0000000000000..f7fed69dc383d --- /dev/null +++ b/drivers/input/touchscreen/GT917D/gt917.c @@ -0,0 +1,3570 @@ +/* + * Goodix GT9xx touchscreen driver + * + * Copyright (C) 2010 - 2014 Goodix. Ltd. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be a reference + * to you, when you are integrating the GOODiX's CTP IC into your system, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * Version: 2.4 + * Release Date: 2014/11/28 + */ + +#include +#include "gt9xx.h" + +#if GTP_ICS_SLOT_REPORT + #include +#endif + + +#if WT_ADD_CTP_INFO +#include +static char tp_string_version[40]; +static int tp_sensor_id = -1; +static u8 cfg_version; + +/*TP Color*/ +#define TP_White 0x31 +#define TP_Black 0x32 +#define TP_Golden 0x38 +/*TP Maker*/ +#define TP_BIEL 0x31 +#define GTP_LOCKDOWN_SIZE 8 +#define GTP_READ_LOCKDOWN_INFO_ADDR 0x81A0 +static u8 lockdown_info[GTP_LOCKDOWN_SIZE]; +static u8 TP_Maker, LCD_Maker, Panel_Ink; +extern u8 tp_color; +static u16 IC_Version; +static int gtp_read_lockdown_info(void); +int gtp_hardwareinfo_set(void); +#endif + +static const char *goodix_ts_name = "goodix-ts"; +static const char *goodix_input_phys = "input/ts"; +static struct workqueue_struct *goodix_wq; +struct i2c_client *i2c_connect_client = NULL; +/* +int gtp_rst_gpio; +int gtp_int_gpio; +*/ +unsigned int gtp_rst_gpio; +unsigned int gtp_int_gpio; + + +int gtp_ics_slot_report = 0;/*use to choose report mode A or B, 0 for A and 1 for B */ + + +u8 config[GTP_CONFIG_MAX_LENGTH + GTP_ADDR_LENGTH] + = {GTP_REG_CONFIG_DATA >> 8, GTP_REG_CONFIG_DATA & 0xff}; + + +#ifdef GTP_GLOVE_MODE +u8 gtp_glove_config[GTP_CONFIG_MAX_LENGTH + GTP_ADDR_LENGTH] + = {GTP_REG_CONFIG_DATA >> 8, GTP_REG_CONFIG_DATA & 0xff}; +#endif + + +#if GTP_HAVE_TOUCH_KEY + static const u16 touch_key_array[] = GTP_KEY_TAB; + #define GTP_MAX_KEY_NUM (sizeof(touch_key_array)/sizeof(touch_key_array[0])) + + #define GTP_KEY_MAP_ARRAY {{175, 1500} , {387, 1500} , {582, 1500} } + struct touch_virtual_key_map_t { + int point_x; + int point_y; +}; +static struct touch_virtual_key_map_t touch_key_point_maping_array[] = GTP_KEY_MAP_ARRAY; + + +#if GTP_DEBUG_ON + static const int key_codes[] = {KEY_HOME, KEY_BACK, KEY_MENU, KEY_SEARCH}; + static const char *key_names[] = {"Key_Home", "Key_Back", "Key_Menu", "Key_Search"}; +#endif + +#endif + +#ifdef PMX_DRIVER_GT915L +#define PINCTRL_STATE_ACTIVE "pmx_ts_active" +#define PINCTRL_STATE_SUSPEND "pmx_ts_suspend" +#define PINCTRL_STATE_RELEASE "pmx_ts_release" +static int goodix_ts_pinctrl_init(struct goodix_ts_data *goodix_data); +static int goodix_ts_pinctrl_select(struct goodix_ts_data *goodix_data, bool on); +#endif + +static s8 gtp_i2c_test(struct i2c_client *client); +void gtp_reset_guitar(struct i2c_client *client, s32 ms); +s32 gtp_send_cfg(struct i2c_client *client); +void gtp_int_sync(s32 ms); + +static ssize_t gt91xx_config_read_proc(struct file *, char __user *, size_t, loff_t *); +static ssize_t gt91xx_config_write_proc(struct file *, const char __user *, size_t, loff_t *); + +static struct proc_dir_entry *gt91xx_config_proc = NULL; +static const struct file_operations config_proc_ops = { + .owner = THIS_MODULE, + .read = gt91xx_config_read_proc, + .write = gt91xx_config_write_proc, +}; +static int gtp_register_powermanger(struct goodix_ts_data *ts); +static int gtp_unregister_powermanger(struct goodix_ts_data *ts); + +#if GTP_CREATE_WR_NODE +extern s32 init_wr_node(struct i2c_client *); +extern void uninit_wr_node(void); +#endif + +#if GTP_AUTO_UPDATE +extern u8 gup_init_update_proc(struct goodix_ts_data *); +#endif + +#if GTP_ESD_PROTECT +static struct delayed_work gtp_esd_check_work; +static struct workqueue_struct *gtp_esd_check_workqueue = NULL; +static void gtp_esd_check_func(struct work_struct *); +static s32 gtp_init_ext_watchdog(struct i2c_client *client); +void gtp_esd_switch(struct i2c_client *, s32); +#endif + + +#if GTP_COMPATIBLE_MODE +extern s32 i2c_read_bytes(struct i2c_client *client, u16 addr, u8 *buf, s32 len); +extern s32 i2c_write_bytes(struct i2c_client *client, u16 addr, u8 *buf, s32 len); +extern s32 gup_clk_calibration(void); +extern s32 gup_fw_download_proc(void *dir, u8 dwn_mode); +extern u8 gup_check_fs_mounted(char *path_name); + +void gtp_recovery_reset(struct i2c_client *client); +static s32 gtp_esd_recovery(struct i2c_client *client); +s32 gtp_fw_startup(struct i2c_client *client); +static s32 gtp_main_clk_proc(struct goodix_ts_data *ts); +static s32 gtp_bak_ref_proc(struct goodix_ts_data *ts, u8 mode); + +#endif + + +#if GTP_GESTURE_WAKEUP +typedef enum { + DOZE_DISABLED = 0, + DOZE_ENABLED = 1, + DOZE_WAKEUP = 2, +} DOZE_T; +static DOZE_T doze_status = DOZE_DISABLED; +static s8 gtp_enter_doze(struct goodix_ts_data *ts); +#endif + +#ifdef GTP_CONFIG_OF +int gtp_parse_dt_cfg(struct device *dev, u8 *cfg, int *cfg_len, u8 sid); +#endif + + +#if GTP_GLOVE_MODE +char gtp_glove_onoff = '0'; +static char gtp_glove_support_flag_changed = 0; +static const char gtp_glove_support_flag = GTP_GLOVE_SUPPORT_ONOFF; +s32 gtp_send_glove_cfg(struct i2c_client *client); + +static ssize_t proc_glove_onoff_read(struct file *file, char __user *page, size_t count, loff_t *ppos) +{ + int num; + if (*ppos) + return 0; + if (0 == gtp_glove_support_flag_changed) + num = sprintf(page, "%c\n", gtp_glove_support_flag); + else + num = sprintf(page, "%c\n", gtp_glove_onoff); + *ppos += num; + return num; +} + +static ssize_t proc_glove_onoff_write(struct file *file, const char __user *buffer, size_t count, loff_t *ppos) +{ + sscanf(buffer, "%c", >p_glove_onoff); + gtp_glove_support_flag_changed = 1; + + if ('1' == gtp_glove_onoff) { + u8 cfg_group[] = CTP_CFG_GROUP1_GLOVE; + gtp_reset_guitar(i2c_connect_client, 50); + msleep(100); + memcpy(>p_glove_config[GTP_ADDR_LENGTH], cfg_group, GTP_CONFIG_MAX_LENGTH); + gtp_send_glove_cfg(i2c_connect_client); + } else if ('0' == gtp_glove_onoff) { + gtp_reset_guitar(i2c_connect_client, 50); + msleep(100); + gtp_send_cfg(i2c_connect_client); + } + return count; +} + +static const struct file_operations gt_glove_onoff_proc_fops = { + .write = proc_glove_onoff_write, + .read = proc_glove_onoff_read, + .open = simple_open, + .owner = THIS_MODULE, +}; + +#endif + + +#if GTP_GESTURE_WAKEUP +char gtp_gesture_coordinate[60] = {0X8140 >> 8, 0X8140 & 0xFF}; +char gtp_gesture_value = 0; +char gtp_gesture_onoff = '0'; +const char gtp_gesture_type[] = GTP_GESTURE_TPYE_STR; +static const char gtp_gesture_support_flag = GTP_GESTURE_SUPPORT_ONOFF; +static const char gtp_verson[] = GTP_PROC_DRIVER_VERSION; +static char gtp_gesture_support_flag_changed = 0; +struct i2c_client *i2c_client_point = NULL; + + +static ssize_t proc_gesture_data_read(struct file *file, char __user *buffer, size_t count, loff_t *ppos) +{ + int num = 0; + if (*ppos) + return 0; + printk("proc_gesture_data_read=%d\n", gtp_gesture_value); + num = sprintf(buffer, "%c\n", gtp_gesture_value); + *ppos += num; + return num; +} + +static ssize_t proc_gesture_data_write(struct file *file, const char __user *buffer, size_t count, loff_t *ppos) +{ + sscanf(buffer, "%c", >p_gesture_value); + return count; +} + +static ssize_t proc_gesture_type_read(struct file *file, char __user *buffer, size_t count, loff_t *ppos) +{ + int num; + if (*ppos) { + printk("%s\n", __func__); + return 0; + } + num = sprintf(buffer, "%s\n", gtp_gesture_type); + *ppos += num; + return num; +} + +static ssize_t proc_gesture_type_write(struct file *file, const char __user *buffer, size_t count, loff_t *ppos) +{ + return -EPERM; +} + +static ssize_t proc_gesture_onoff_read(struct file *file, char __user *page, size_t count, loff_t *ppos) +{ + int num; + if (*ppos) + return 0; + if (0 == gtp_gesture_support_flag_changed) + num = sprintf(page, "%c\n", gtp_gesture_support_flag); + else + num = sprintf(page, "%c\n", gtp_gesture_onoff); + *ppos += num; + return num; +} + +static ssize_t proc_gesture_onoff_write(struct file *file, const char __user *buffer, size_t count, loff_t *ppos) +{ + sscanf(buffer, "%c", >p_gesture_onoff); + gtp_gesture_support_flag_changed = 1; + printk("in proc_gesture_onoff_write %c \n", gtp_gesture_onoff); + return count; +} + +static ssize_t proc_version_read(struct file *file, char __user *page, size_t count, loff_t *ppos) +{ + int num; + if (*ppos) + return 0; + num = sprintf(page, "%s\n", gtp_verson); + *ppos += num; + return num; +} + +static ssize_t proc_version_write(struct file *file, const char __user *buffer, size_t count, loff_t *ppos) +{ + return count; +} + +static ssize_t proc_gesture_coordinate_read(struct file *file, char __user *page, size_t count, loff_t *ppos) +{ + if (*ppos) + return 0; + memcpy(page, gtp_gesture_coordinate, 60); + printk("GTP gtp_ges 0x%02x\n", gtp_gesture_coordinate[13]); + memset(gtp_gesture_coordinate, 0, 60); + *ppos += 60; + return 60; +} + +static ssize_t proc_gesture_coordinate_write(struct file *file, const char __user *buffer, size_t count, loff_t *ppos) +{ + return count; +} + +static const struct file_operations gt_gesture_var_proc_fops = { + .write = proc_gesture_data_write, + .read = proc_gesture_data_read, + .open = simple_open, + .owner = THIS_MODULE, +}; + +static const struct file_operations gt_gesture_type_proc_fops = { + .write = proc_gesture_type_write, + .read = proc_gesture_type_read, + .open = simple_open, + .owner = THIS_MODULE, +}; + +static const struct file_operations gt_gesture_onoff_proc_fops = { + .write = proc_gesture_onoff_write, + .read = proc_gesture_onoff_read, + .open = simple_open, + .owner = THIS_MODULE, +}; + +static const struct file_operations gt_version_proc_fops = { + .write = proc_version_write, + .read = proc_version_read, + .open = simple_open, + .owner = THIS_MODULE, +}; + +static const struct file_operations gt_coordinate_proc_fops = { + .write = proc_gesture_coordinate_write, + .read = proc_gesture_coordinate_read, + .open = simple_open, + .owner = THIS_MODULE, +}; + + +void Ctp_Gesture_Fucntion_Proc_File(void) +{ + struct proc_dir_entry *ctp_device_proc = NULL; + struct proc_dir_entry *ctp_gesture_wakup_proc = NULL; + struct proc_dir_entry *ctp_gesture_var_proc = NULL; + struct proc_dir_entry *ctp_gesture_type_proc = NULL; + struct proc_dir_entry *ctp_gesture_onoff_proc = NULL; + struct proc_dir_entry *ctp_glove_onoff_proc = NULL; + struct proc_dir_entry *ctp_version_proc = NULL; + struct proc_dir_entry *ctp_coordinate_proc = NULL; +#define CTP_GESTURE_FUNCTION_AUTHORITY_PROC 0777 + + ctp_device_proc = proc_mkdir("touchscreen_feature", NULL); + ctp_gesture_wakup_proc = proc_mkdir("gesture", NULL); + + ctp_gesture_var_proc = proc_create("data", 0444, ctp_gesture_wakup_proc, >_gesture_var_proc_fops); + if (ctp_gesture_var_proc == NULL) { + GTP_ERROR("ctp_gesture_var_proc create failed\n"); + } + + ctp_gesture_type_proc = proc_create("gesture_type", 0444, ctp_device_proc, >_gesture_type_proc_fops); + if (ctp_gesture_type_proc == NULL) { + GTP_ERROR("ctp_gesture_type_proc create failed\n"); + } + + ctp_gesture_onoff_proc = proc_create("onoff", 0666, ctp_gesture_wakup_proc, >_gesture_onoff_proc_fops); + if (ctp_gesture_onoff_proc == NULL) { + GTP_ERROR("ctp_gesture_onoff_proc create failed\n"); + } + +#if GTP_GLOVE_MODE + ctp_glove_onoff_proc = proc_create("glove_onoff", 0666, ctp_device_proc, >_glove_onoff_proc_fops); + if (ctp_glove_onoff_proc == NULL) { + GTP_ERROR("ctp_gesture_onoff_proc create failed\n"); + } +#endif + + ctp_version_proc = proc_create("version", 0444, ctp_device_proc, >_version_proc_fops); + if (ctp_version_proc == NULL) { + GTP_ERROR("create_proc_entry version failed\n"); + } + + ctp_coordinate_proc = proc_create("gesture_coordinate", 0777, ctp_device_proc, >_coordinate_proc_fops); + if (ctp_coordinate_proc == NULL) { + GTP_ERROR("create_proc_entry version failed\n"); + } + +} + +#endif + + + + + +#ifdef CONFIG_TOUCHSCREEN_LOCKDOWN_INFO +static ssize_t ctp_lockdown_proc_read(struct file *file, char __user *buf, size_t count, loff_t *ppos) +{ + char *ptr = buf; + + if (*ppos) { + GTP_INFO("tp test again return\n"); + return 0; + } + *ppos += count; + + return sprintf(ptr, "%02X%02X%02X%02X%02X%02X%02X%02X\n", + lockdown_info[0], lockdown_info[1], lockdown_info[2], lockdown_info[3], + lockdown_info[4], lockdown_info[5], lockdown_info[6], lockdown_info[7]); +} +static ssize_t ctp_lockdown_proc_write(struct file *filp, const char __user *userbuf, size_t count, loff_t *ppos) +{ + return -EPERM; +} + +static const struct file_operations ctp_lockdown_procs_fops = { + .write = ctp_lockdown_proc_write, + .read = ctp_lockdown_proc_read, + .owner = THIS_MODULE, +}; + +void ctp_lockdown_fucntion_proc_file(void) +{ + struct proc_dir_entry *ctp_device_proc = NULL; + struct proc_dir_entry *ctp_lockdown_proc = NULL; + + ctp_device_proc = proc_mkdir("touchscreen", NULL); + + ctp_lockdown_proc = proc_create("lockdown_info", 0666, ctp_device_proc, &ctp_lockdown_procs_fops); + if (ctp_lockdown_proc == NULL) { + GTP_ERROR("create_proc_entry lockdown failed\n"); + } +} +#endif + + +/******************************************************* +Function: + Read data from the i2c slave device. +Input: + client: i2c device. + buf[0~1]: read start address. + buf[2~len-1]: read data buffer. + len: GTP_ADDR_LENGTH + read bytes count +Output: + numbers of i2c_msgs to transfer: + 2: succeed, otherwise: failed +*********************************************************/ +s32 gtp_i2c_read(struct i2c_client *client, u8 *buf, s32 len) +{ + struct i2c_msg msgs[2]; + s32 ret = -1; + s32 retries = 0; + + GTP_DEBUG_FUNC(); + + msgs[0].flags = !I2C_M_RD; + msgs[0].addr = client->addr; + msgs[0].len = GTP_ADDR_LENGTH; + msgs[0].buf = &buf[0]; + + + msgs[1].flags = I2C_M_RD; + msgs[1].addr = client->addr; + msgs[1].len = len - GTP_ADDR_LENGTH; + msgs[1].buf = &buf[GTP_ADDR_LENGTH]; + + + while (retries < 5) { + ret = i2c_transfer(client->adapter, msgs, 2); + if (ret == 2) + break; + retries++; + } + if ((retries >= 5)) { + #if GTP_COMPATIBLE_MODE + struct goodix_ts_data *ts = i2c_get_clientdata(client); + #endif + + #if GTP_GESTURE_WAKEUP + + if (DOZE_ENABLED == doze_status) { + return ret; + } + #endif + GTP_ERROR("I2C Read: 0x%04X, %d bytes failed, errcode: %d! Process reset.", (((u16)(buf[0] << 8)) | buf[1]), len-2, ret); + #if GTP_COMPATIBLE_MODE + if (CHIP_TYPE_GT9F == ts->chip_type) { + gtp_recovery_reset(client); + } else + #endif + { + gtp_reset_guitar(client, 10); + } + } + return ret; +} + + + +/******************************************************* +Function: + Write data to the i2c slave device. +Input: + client: i2c device. + buf[0~1]: write start address. + buf[2~len-1]: data buffer + len: GTP_ADDR_LENGTH + write bytes count +Output: + numbers of i2c_msgs to transfer: + 1: succeed, otherwise: failed +*********************************************************/ +s32 gtp_i2c_write(struct i2c_client *client, u8 *buf, s32 len) +{ + struct i2c_msg msg; + s32 ret = -1; + s32 retries = 0; + + GTP_DEBUG_FUNC(); + + msg.flags = !I2C_M_RD; + msg.addr = client->addr; + msg.len = len; + msg.buf = buf; + + + while (retries < 5) { + ret = i2c_transfer(client->adapter, &msg, 1); + if (ret == 1) + break; + retries++; + } + if ((retries >= 5)) { + #if GTP_COMPATIBLE_MODE + struct goodix_ts_data *ts = i2c_get_clientdata(client); + #endif + + #if GTP_GESTURE_WAKEUP + if (DOZE_ENABLED == doze_status) { + return ret; + } + #endif + GTP_ERROR("I2C Write: 0x%04X, %d bytes failed, errcode: %d! Process reset.", (((u16)(buf[0] << 8)) | buf[1]), len-2, ret); + #if GTP_COMPATIBLE_MODE + if (CHIP_TYPE_GT9F == ts->chip_type) { + gtp_recovery_reset(client); + } else + #endif + { + gtp_reset_guitar(client, 10); + } + } + return ret; +} + + +/******************************************************* +Function: + i2c read twice, compare the results +Input: + client: i2c device + addr: operate address + rxbuf: read data to store, if compare successful + len: bytes to read +Output: + FAIL: read failed + SUCCESS: read successful +*********************************************************/ +s32 gtp_i2c_read_dbl_check(struct i2c_client *client, u16 addr, u8 *rxbuf, int len) +{ + u8 buf[16] = {0}; + u8 confirm_buf[16] = {0}; + u8 retry = 0; + + while (retry++ < 3) { + memset(buf, 0xAA, 16); + buf[0] = (u8)(addr >> 8); + buf[1] = (u8)(addr & 0xFF); + gtp_i2c_read(client, buf, len + 2); + + memset(confirm_buf, 0xAB, 16); + confirm_buf[0] = (u8)(addr >> 8); + confirm_buf[1] = (u8)(addr & 0xFF); + gtp_i2c_read(client, confirm_buf, len + 2); + + if (!memcmp(buf, confirm_buf, len+2)) { + memcpy(rxbuf, confirm_buf+2, len); + return SUCCESS; + } + } + GTP_ERROR("I2C read 0x%04X, %d bytes, double check failed!", addr, len); + return FAIL; +} + +/******************************************************* +Function: + Send config. +Input: + client: i2c device. +Output: + result of i2c write operation. + 1: succeed, otherwise: failed +*********************************************************/ + +s32 gtp_send_glove_cfg(struct i2c_client *client) +{ + s32 ret = 2; + +#if GTP_DRIVER_SEND_CFG + s32 retry = 0; + struct goodix_ts_data *ts = i2c_get_clientdata(client); + + if (ts->pnl_init_error) { + GTP_INFO("Error occured in init_panel, no config sent"); + return 0; + } + GTP_INFO("Driver send config."); + for (retry = 0; retry < 5; retry++) { + ret = gtp_i2c_write(client, gtp_glove_config , GTP_CONFIG_MAX_LENGTH + GTP_ADDR_LENGTH); + if (ret > 0) { + break; + } + } +#endif + return ret; +} + +/******************************************************* +Function: + Send config. +Input: + client: i2c device. +Output: + result of i2c write operation. + 1: succeed, otherwise: failed +*********************************************************/ + +s32 gtp_send_cfg(struct i2c_client *client) +{ + s32 ret = 2; + +#if GTP_DRIVER_SEND_CFG + s32 retry = 0; + struct goodix_ts_data *ts = i2c_get_clientdata(client); + + if (ts->pnl_init_error) { + GTP_INFO("Error occured in init_panel, no config sent"); + return 0; + } + + GTP_INFO("Driver send config."); + for (retry = 0; retry < 5; retry++) { + ret = gtp_i2c_write(client, config , GTP_CONFIG_MAX_LENGTH + GTP_ADDR_LENGTH); + if (ret > 0) { + break; + } + } +#endif + return ret; +} +/******************************************************* +Function: + Disable irq function +Input: + ts: goodix i2c_client private data +Output: + None. +*********************************************************/ +void gtp_irq_disable(struct goodix_ts_data *ts) +{ + unsigned long irqflags; + + GTP_DEBUG_FUNC(); + + spin_lock_irqsave(&ts->irq_lock, irqflags); + if (!ts->irq_is_disable) { + ts->irq_is_disable = 1; + disable_irq_nosync(ts->client->irq); + } + spin_unlock_irqrestore(&ts->irq_lock, irqflags); +} + +/******************************************************* +Function: + Enable irq function +Input: + ts: goodix i2c_client private data +Output: + None. +*********************************************************/ +void gtp_irq_enable(struct goodix_ts_data *ts) +{ + unsigned long irqflags = 0; + + GTP_DEBUG_FUNC(); + + spin_lock_irqsave(&ts->irq_lock, irqflags); + if (ts->irq_is_disable) { + enable_irq(ts->client->irq); + ts->irq_is_disable = 0; + } + spin_unlock_irqrestore(&ts->irq_lock, irqflags); +} + + +/******************************************************* +Function: + Report touch point event +Input: + ts: goodix i2c_client private data + id: trackId + x: input x coordinate + y: input y coordinate + w: input pressure +Output: + None. +*********************************************************/ +static void gtp_touch_down(struct goodix_ts_data *ts, s32 id, s32 x, s32 y, s32 w) +{ +#if GTP_CHANGE_X2Y + GTP_SWAP(x, y); +#endif + + + if (gtp_ics_slot_report == 1) { + input_mt_slot(ts->input_dev, id); + input_report_abs(ts->input_dev, ABS_MT_TRACKING_ID, id); + input_report_abs(ts->input_dev, ABS_MT_POSITION_X, x); + input_report_abs(ts->input_dev, ABS_MT_POSITION_Y, y); + input_report_abs(ts->input_dev, ABS_MT_TOUCH_MAJOR, w); + input_report_abs(ts->input_dev, ABS_MT_WIDTH_MAJOR, w); + } else { + input_report_key(ts->input_dev, BTN_TOUCH, 1); + input_report_abs(ts->input_dev, ABS_MT_POSITION_X, x); + input_report_abs(ts->input_dev, ABS_MT_POSITION_Y, y); + input_report_abs(ts->input_dev, ABS_MT_TOUCH_MAJOR, w); + input_report_abs(ts->input_dev, ABS_MT_WIDTH_MAJOR, w); + input_report_abs(ts->input_dev, ABS_MT_TRACKING_ID, id); + input_mt_sync(ts->input_dev); + } + + GTP_DEBUG("ID:%d, X:%d, Y:%d, W:%d", id, x, y, w); +} + +/******************************************************* +Function: + Report touch release event +Input: + ts: goodix i2c_client private data +Output: + None. +*********************************************************/ +static void gtp_touch_up(struct goodix_ts_data *ts, s32 id) +{ + + if (gtp_ics_slot_report == 1) { + input_mt_slot(ts->input_dev, id); + input_report_abs(ts->input_dev, ABS_MT_TRACKING_ID, -1); + GTP_DEBUG("Touch id[%2d] release!", id); + } else { + input_report_key(ts->input_dev, BTN_TOUCH, 0); + } + +} + +#if GTP_WITH_PEN + +static void gtp_pen_init(struct goodix_ts_data *ts) +{ + s32 ret = 0; + + GTP_INFO("Request input device for pen/stylus."); + + ts->pen_dev = input_allocate_device(); + if (ts->pen_dev == NULL) { + GTP_ERROR("Failed to allocate input device for pen/stylus."); + return; + } + + ts->pen_dev->evbit[0] = BIT_MASK(EV_SYN) | BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS) ; + + + if (gtp_ics_slot_report == 1) { + input_mt_init_slots(ts->pen_dev, 16); + } else { + ts->pen_dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH); + } + + set_bit(BTN_TOOL_PEN, ts->pen_dev->keybit); + set_bit(INPUT_PROP_DIRECT, ts->pen_dev->propbit); + + +#if GTP_PEN_HAVE_BUTTON + input_set_capability(ts->pen_dev, EV_KEY, BTN_STYLUS); + input_set_capability(ts->pen_dev, EV_KEY, BTN_STYLUS2); +#endif + + input_set_abs_params(ts->pen_dev, ABS_MT_POSITION_X, 0, ts->abs_x_max, 0, 0); + input_set_abs_params(ts->pen_dev, ABS_MT_POSITION_Y, 0, ts->abs_y_max, 0, 0); + input_set_abs_params(ts->pen_dev, ABS_MT_PRESSURE, 0, 255, 0, 0); + input_set_abs_params(ts->pen_dev, ABS_MT_TOUCH_MAJOR, 0, 255, 0, 0); + input_set_abs_params(ts->pen_dev, ABS_MT_TRACKING_ID, 0, 255, 0, 0); + + ts->pen_dev->name = "goodix-pen"; + ts->pen_dev->id.bustype = BUS_I2C; + + ret = input_register_device(ts->pen_dev); + if (ret) { + GTP_ERROR("Register %s input device failed", ts->pen_dev->name); + return; + } +} + +static void gtp_pen_down(s32 x, s32 y, s32 w, s32 id) +{ + struct goodix_ts_data *ts = i2c_get_clientdata(i2c_connect_client); + +#if GTP_CHANGE_X2Y + GTP_SWAP(x, y); +#endif + + input_report_key(ts->pen_dev, BTN_TOOL_PEN, 1); + + + if (gtp_ics_slot_report == 1) { + input_mt_slot(ts->pen_dev, id); + input_report_abs(ts->pen_dev, ABS_MT_TRACKING_ID, id); + input_report_abs(ts->pen_dev, ABS_MT_POSITION_X, x); + input_report_abs(ts->pen_dev, ABS_MT_POSITION_Y, y); + input_report_abs(ts->pen_dev, ABS_MT_PRESSURE, w); + input_report_abs(ts->pen_dev, ABS_MT_TOUCH_MAJOR, w); + } else { + input_report_key(ts->pen_dev, BTN_TOUCH, 1); + input_report_abs(ts->pen_dev, ABS_MT_POSITION_X, x); + input_report_abs(ts->pen_dev, ABS_MT_POSITION_Y, y); + input_report_abs(ts->pen_dev, ABS_MT_PRESSURE, w); + input_report_abs(ts->pen_dev, ABS_MT_TOUCH_MAJOR, w); + input_report_abs(ts->pen_dev, ABS_MT_TRACKING_ID, id); + input_mt_sync(ts->pen_dev); + } + + GTP_DEBUG("(%d)(%d, %d)[%d]", id, x, y, w); +} + +static void gtp_pen_up(s32 id) +{ + struct goodix_ts_data *ts = i2c_get_clientdata(i2c_connect_client); + + input_report_key(ts->pen_dev, BTN_TOOL_PEN, 0); + + + if (gtp_ics_slot_report == 1) { + input_mt_slot(ts->pen_dev, id); + input_report_abs(ts->pen_dev, ABS_MT_TRACKING_ID, -1); + } else { + input_report_key(ts->pen_dev, BTN_TOUCH, 0); + } + +} +#endif + +/******************************************************* +Function: + Goodix touchscreen work function +Input: + work: work struct of goodix_workqueue +Output: + None. +*********************************************************/ +static void goodix_ts_work_func(struct work_struct *work) +{ + u8 end_cmd[3] = {GTP_READ_COOR_ADDR >> 8, GTP_READ_COOR_ADDR & 0xFF, 0}; + u8 point_data[2 + 1 + 8 * GTP_MAX_TOUCH + 1] = {GTP_READ_COOR_ADDR >> 8, GTP_READ_COOR_ADDR & 0xFF}; + u8 touch_num = 0; + u8 finger = 0; + static u16 pre_touch; + static u8 pre_key; +#if GTP_WITH_PEN + u8 pen_active = 0; + static u8 pre_pen; +#endif + u8 key_value = 0; + u8 *coor_data = NULL; + s32 input_x = 0; + s32 input_y = 0; + s32 input_w = 0; + s32 id = 0; + s32 i = 0; + s32 ret = -1; + struct goodix_ts_data *ts = NULL; + +#if GTP_COMPATIBLE_MODE + u8 rqst_buf[3] = {0x80, 0x43}; +#endif + +#if GTP_GESTURE_WAKEUP + u8 doze_buf[3] = {0x81, 0x4B}; +#endif + + GTP_DEBUG_FUNC(); + ts = container_of(work, struct goodix_ts_data, work); + if (ts->enter_update) { + return; + } +#if GTP_GESTURE_WAKEUP + if (DOZE_ENABLED == doze_status) { + ret = gtp_i2c_read(i2c_connect_client, doze_buf, 3); + GTP_DEBUG("0x814B = 0x%02X", doze_buf[2]); + if (ret > 0) { + if ('1' == gtp_gesture_onoff) { + gtp_gesture_coordinate[0] = 0X8140 >> 8; + gtp_gesture_coordinate[1] = 0X8140 & 0xFF; + + if ((doze_buf[2] == 'a') || (doze_buf[2] == 'b') || (doze_buf[2] == 'c') || + (doze_buf[2] == 'd') || (doze_buf[2] == 'e') || (doze_buf[2] == 'g') || + (doze_buf[2] == 'h') || (doze_buf[2] == 'm') || (doze_buf[2] == 'o') || + (doze_buf[2] == 'q') || (doze_buf[2] == 's') || (doze_buf[2] == 'v') || + (doze_buf[2] == 'w') || (doze_buf[2] == 'y') || (doze_buf[2] == 'z') || + (doze_buf[2] == 0x5E) /* ^ */ + ) { + GTP_INFO("Gesture type;%c\n", doze_buf[2]); + gtp_gesture_value = doze_buf[2]; + if (doze_buf[2] != 0x5E) { + GTP_INFO("Wakeup by gesture(%c), light up the screen!", doze_buf[2]); + } else { + GTP_INFO("Wakeup by gesture(^), light up the screen!"); + } + + gtp_i2c_read(i2c_client_point, gtp_gesture_coordinate, 47); + if (NULL != strchr(gtp_gesture_type, gtp_gesture_value)) { + input_report_key(ts->input_dev, KEY_WAKEUP, 1); + input_sync(ts->input_dev); + msleep(300); + input_report_key(ts->input_dev, KEY_WAKEUP, 0); + input_sync(ts->input_dev); + }; + doze_buf[2] = 0x00; + gtp_i2c_write(i2c_connect_client, doze_buf, 3); + } else if ((doze_buf[2] == 0xAA) || (doze_buf[2] == 0xBB) || + (doze_buf[2] == 0xAB) || (doze_buf[2] == 0xBA)) { + char *direction[4] = {"Right", "Down", "Up", "Left"}; + u8 type = ((doze_buf[2] & 0x0F) - 0x0A) + (((doze_buf[2] >> 4) & 0x0F) - 0x0A) * 2; + GTP_INFO("%s slide to light up the screen!", direction[type]); + switch (doze_buf[2]) { + case 0xAA: + gtp_gesture_value = 'R'; + break; + case 0xAB: + gtp_gesture_value = 'D'; + break; + case 0xBA: + gtp_gesture_value = 'U'; + break; + case 0xBB: + gtp_gesture_value = 'L'; + break; + } + gtp_i2c_read(i2c_client_point, gtp_gesture_coordinate, 47); + if (NULL != strchr(gtp_gesture_type, gtp_gesture_value)) { + input_report_key(ts->input_dev, KEY_WAKEUP, 1); + input_sync(ts->input_dev); + msleep(300); + input_report_key(ts->input_dev, KEY_WAKEUP, 0); + input_sync(ts->input_dev); + } + doze_buf[2] = 0x00; + gtp_i2c_write(i2c_connect_client, doze_buf, 3); + } else if (0xCC == doze_buf[2]) { + GTP_INFO("Double click to light up the screen!"); + gtp_gesture_value = 'K'; + gtp_i2c_read(i2c_client_point, gtp_gesture_coordinate, 47); + if (NULL != strchr(gtp_gesture_type, gtp_gesture_value)) { + input_report_key(ts->input_dev, KEY_WAKEUP, 1); + input_sync(ts->input_dev); + msleep(300); + input_report_key(ts->input_dev, KEY_WAKEUP, 0); + input_sync(ts->input_dev); + } + doze_buf[2] = 0x00; + gtp_i2c_write(i2c_connect_client, doze_buf, 3); + } else { + doze_buf[2] = 0x00; + gtp_i2c_write(i2c_connect_client, doze_buf, 3); + gtp_enter_doze(ts); + } + } + } + if (ts->use_irq) { + gtp_irq_enable(ts); + } + return; + } +#endif + + ret = gtp_i2c_read(ts->client, point_data, 12); + if (ret < 0) { + GTP_ERROR("I2C transfer error. errno:%d\n ", ret); + if (ts->use_irq) { + gtp_irq_enable(ts); + } + return; + } + + finger = point_data[GTP_ADDR_LENGTH]; + +#if GTP_COMPATIBLE_MODE + + if ((finger == 0x00) && (CHIP_TYPE_GT9F == ts->chip_type)) { + ret = gtp_i2c_read(ts->client, rqst_buf, 3); + if (ret < 0) { + GTP_ERROR("Read request status error!"); + goto exit_work_func; + } + + switch (rqst_buf[2]) { + case GTP_RQST_CONFIG: + GTP_INFO("Request for config."); + ret = gtp_send_cfg(ts->client); + if (ret < 0) { + GTP_ERROR("Request for config unresponded!"); + } else { + rqst_buf[2] = GTP_RQST_RESPONDED; + gtp_i2c_write(ts->client, rqst_buf, 3); + GTP_INFO("Request for config responded!"); + } + break; + + case GTP_RQST_BAK_REF: + GTP_INFO("Request for backup reference."); + ts->rqst_processing = 1; + ret = gtp_bak_ref_proc(ts, GTP_BAK_REF_SEND); + if (SUCCESS == ret) { + rqst_buf[2] = GTP_RQST_RESPONDED; + gtp_i2c_write(ts->client, rqst_buf, 3); + ts->rqst_processing = 0; + GTP_INFO("Request for backup reference responded!"); + } else { + GTP_ERROR("Requeset for backup reference unresponed!"); + } + break; + + case GTP_RQST_RESET: + GTP_INFO("Request for reset."); + gtp_recovery_reset(ts->client); + break; + + case GTP_RQST_MAIN_CLOCK: + GTP_INFO("Request for main clock."); + ts->rqst_processing = 1; + ret = gtp_main_clk_proc(ts); + if (FAIL == ret) { + GTP_ERROR("Request for main clock unresponded!"); + } else { + GTP_INFO("Request for main clock responded!"); + rqst_buf[2] = GTP_RQST_RESPONDED; + gtp_i2c_write(ts->client, rqst_buf, 3); + ts->rqst_processing = 0; + ts->clk_chk_fs_times = 0; + } + break; + + default: + GTP_INFO("Undefined request: 0x%02X", rqst_buf[2]); + rqst_buf[2] = GTP_RQST_RESPONDED; + gtp_i2c_write(ts->client, rqst_buf, 3); + break; + } + } +#endif + if (finger == 0x00) { + if (ts->use_irq) { + gtp_irq_enable(ts); + } + return; + } + + if ((finger & 0x80) == 0) { + goto exit_work_func; + } + + touch_num = finger & 0x0f; + + if (touch_num > GTP_MAX_TOUCH) { + goto exit_work_func; + } + + if (touch_num > 1) { + u8 buf[8 * GTP_MAX_TOUCH] = {(GTP_READ_COOR_ADDR + 10) >> 8, (GTP_READ_COOR_ADDR + 10) & 0xff}; + + ret = gtp_i2c_read(ts->client, buf, 2 + 8 * (touch_num - 1)); + memcpy(&point_data[12], &buf[2], 8 * (touch_num - 1)); + } + +#if (GTP_HAVE_TOUCH_KEY || GTP_PEN_HAVE_BUTTON) + key_value = point_data[3 + 8 * touch_num]; + + if (key_value || pre_key) { + #if GTP_PEN_HAVE_BUTTON + if (key_value == 0x40) { + GTP_DEBUG("BTN_STYLUS & BTN_STYLUS2 Down."); + input_report_key(ts->pen_dev, BTN_STYLUS, 1); + input_report_key(ts->pen_dev, BTN_STYLUS2, 1); + pen_active = 1; + } else if (key_value == 0x10) { + GTP_DEBUG("BTN_STYLUS Down, BTN_STYLUS2 Up."); + input_report_key(ts->pen_dev, BTN_STYLUS, 1); + input_report_key(ts->pen_dev, BTN_STYLUS2, 0); + pen_active = 1; + } else if (key_value == 0x20) { + GTP_DEBUG("BTN_STYLUS Up, BTN_STYLUS2 Down."); + input_report_key(ts->pen_dev, BTN_STYLUS, 0); + input_report_key(ts->pen_dev, BTN_STYLUS2, 1); + pen_active = 1; + } else { + GTP_DEBUG("BTN_STYLUS & BTN_STYLUS2 Up."); + input_report_key(ts->pen_dev, BTN_STYLUS, 0); + input_report_key(ts->pen_dev, BTN_STYLUS2, 0); + if ((pre_key == 0x40) || (pre_key == 0x20) || + (pre_key == 0x10) + ) { + pen_active = 1; + } + } + if (pen_active) { + touch_num = 0; + + } + #endif + + #if GTP_HAVE_TOUCH_KEY + if (!pre_touch) { + for (i = 0; i < GTP_MAX_KEY_NUM; i++) { + #if GTP_DEBUG_ON + for (ret = 0; ret < 4; ++ret) { + if (key_codes[ret] == touch_key_array[i]) { + GTP_DEBUG("Key: %s %s", key_names[ret], (key_value & (0x01 << i)) ? "Down" : "Up"); + break; + } + } + #endif + + if (gtp_ics_slot_report == 1) + input_report_key(ts->input_dev, touch_key_array[i], key_value & (0x01<pen_dev); + } else +#endif + { + input_sync(ts->input_dev); + } + +exit_work_func: + if (!ts->gtp_rawdiff_mode) { + ret = gtp_i2c_write(ts->client, end_cmd, 3); + if (ret < 0) { + GTP_INFO("I2C write end_cmd error!"); + } + } + if (ts->use_irq) { + gtp_irq_enable(ts); + } +} + +/******************************************************* +Function: + Timer interrupt service routine for polling mode. +Input: + timer: timer struct pointer +Output: + Timer work mode. + HRTIMER_NORESTART: no restart mode +*********************************************************/ +static enum hrtimer_restart goodix_ts_timer_handler(struct hrtimer *timer) +{ + struct goodix_ts_data *ts = container_of(timer, struct goodix_ts_data, timer); + + GTP_DEBUG_FUNC(); + + queue_work(goodix_wq, &ts->work); + hrtimer_start(&ts->timer, ktime_set(0, (GTP_POLL_TIME+6)*1000000), HRTIMER_MODE_REL); + return HRTIMER_NORESTART; +} + +/******************************************************* +Function: + External interrupt service routine for interrupt mode. +Input: + irq: interrupt number. + dev_id: private data pointer +Output: + Handle Result. + IRQ_HANDLED: interrupt handled successfully +*********************************************************/ +static irqreturn_t goodix_ts_irq_handler(int irq, void *dev_id) +{ + struct goodix_ts_data *ts = dev_id; + + GTP_DEBUG_FUNC(); + + gtp_irq_disable(ts); + + queue_work(goodix_wq, &ts->work); + + return IRQ_HANDLED; +} +/******************************************************* +Function: + Synchronization. +Input: + ms: synchronization time in millisecond. +Output: + None. +*******************************************************/ +void gtp_int_sync(s32 ms) +{ + GTP_GPIO_OUTPUT(gtp_int_gpio, 0); + msleep(ms); + GTP_GPIO_AS_INT(gtp_int_gpio); +} + + +/******************************************************* +Function: + Reset chip. +Input: + ms: reset time in millisecond +Output: + None. +*******************************************************/ +void gtp_reset_guitar(struct i2c_client *client, s32 ms) +{ +#if GTP_COMPATIBLE_MODE + struct goodix_ts_data *ts = i2c_get_clientdata(client); +#endif + + GTP_DEBUG_FUNC(); + GTP_INFO("Guitar reset"); + GTP_GPIO_OUTPUT(gtp_rst_gpio, 0); + msleep(ms); + + GTP_GPIO_OUTPUT(gtp_int_gpio, client->addr == 0x14); + + msleep(2); + GTP_GPIO_OUTPUT(gtp_rst_gpio, 1); + + msleep(6); + + GTP_GPIO_AS_INPUT(gtp_rst_gpio); + +#if GTP_COMPATIBLE_MODE + if (CHIP_TYPE_GT9F == ts->chip_type) { + return; + } +#endif + + gtp_int_sync(50); +#if GTP_ESD_PROTECT + gtp_init_ext_watchdog(client); +#endif +} + +#if GTP_GESTURE_WAKEUP +/******************************************************* +Function: + Enter doze mode for sliding wakeup. +Input: + ts: goodix tp private data +Output: + 1: succeed, otherwise failed +*******************************************************/ +static s8 gtp_enter_doze(struct goodix_ts_data *ts) +{ + s8 ret = -1; + s8 retry = 0; + u8 i2c_control_buf[3] = {(u8)(GTP_REG_SLEEP >> 8), (u8)GTP_REG_SLEEP, 8}; + + GTP_DEBUG_FUNC(); + + GTP_DEBUG("Entering gesture mode."); + while (retry++ < 5) { + i2c_control_buf[0] = 0x80; + i2c_control_buf[1] = 0x46; + ret = gtp_i2c_write(ts->client, i2c_control_buf, 3); + if (ret < 0) { + GTP_DEBUG("failed to set doze flag into 0x8046, %d", retry); + continue; + } + i2c_control_buf[0] = 0x80; + i2c_control_buf[1] = 0x40; + ret = gtp_i2c_write(ts->client, i2c_control_buf, 3); + if (ret > 0) { + doze_status = DOZE_ENABLED; + GTP_INFO("Gesture mode enabled."); + return ret; + } + msleep(10); + } + GTP_ERROR("GTP send gesture cmd failed."); + return ret; +} +#endif +/******************************************************* +Function: + Enter sleep mode. +Input: + ts: private data. +Output: + Executive outcomes. + 1: succeed, otherwise failed. +*******************************************************/ +static s8 gtp_enter_sleep(struct goodix_ts_data *ts) +{ + s8 ret = -1; + s8 retry = 0; + u8 i2c_control_buf[3] = {(u8)(GTP_REG_SLEEP >> 8), (u8)GTP_REG_SLEEP, 5}; + +#if GTP_COMPATIBLE_MODE + u8 status_buf[3] = {0x80, 0x44}; +#endif + + GTP_DEBUG_FUNC(); + +#if GTP_COMPATIBLE_MODE + if (CHIP_TYPE_GT9F == ts->chip_type) { + + ret = gtp_i2c_read(ts->client, status_buf, 3); + if (ret < 0) { + GTP_ERROR("failed to get backup-reference status"); + } + + if (status_buf[2] & 0x80) { + ret = gtp_bak_ref_proc(ts, GTP_BAK_REF_STORE); + if (FAIL == ret) { + GTP_ERROR("failed to store bak_ref"); + } + } + } +#endif + + GTP_GPIO_OUTPUT(gtp_int_gpio, 0); + msleep(5); + + while (retry++ < 5) { + ret = gtp_i2c_write(ts->client, i2c_control_buf, 3); + if (ret > 0) { + GTP_INFO("GTP enter sleep!"); + + return ret; + } + msleep(10); + } + GTP_ERROR("GTP send sleep cmd failed."); + return ret; +} + +/******************************************************* +Function: + Wakeup from sleep. +Input: + ts: private data. +Output: + Executive outcomes. + >0: succeed, otherwise: failed. +*******************************************************/ +static s8 gtp_wakeup_sleep(struct goodix_ts_data *ts) +{ + u8 retry = 0; + s8 ret = -1; + + GTP_DEBUG_FUNC(); + +#if GTP_COMPATIBLE_MODE + if (CHIP_TYPE_GT9F == ts->chip_type) { + u8 opr_buf[3] = {0x41, 0x80}; + + GTP_GPIO_OUTPUT(gtp_int_gpio, 1); + msleep(5); + + for (retry = 0; retry < 10; ++retry) { + + opr_buf[2] = 0x0C; + ret = gtp_i2c_write(ts->client, opr_buf, 3); + if (FAIL == ret) { + GTP_ERROR("failed to hold ss51 & dsp!"); + continue; + } + opr_buf[2] = 0x00; + ret = gtp_i2c_read(ts->client, opr_buf, 3); + if (FAIL == ret) { + GTP_ERROR("failed to get ss51 & dsp status!"); + continue; + } + if (0x0C != opr_buf[2]) { + GTP_DEBUG("ss51 & dsp not been hold, %d", retry+1); + continue; + } + GTP_DEBUG("ss51 & dsp confirmed hold"); + + ret = gtp_fw_startup(ts->client); + if (FAIL == ret) { + GTP_ERROR("failed to startup GT9XXF, process recovery"); + gtp_esd_recovery(ts->client); + } + break; + } + if (retry >= 10) { + GTP_ERROR("failed to wakeup, processing esd recovery"); + gtp_esd_recovery(ts->client); + } else { + GTP_INFO("GT9XXF gtp wakeup success"); + } + return ret; + } +#endif + +#if GTP_POWER_CTRL_SLEEP + while (retry++ < 5) { + gtp_reset_guitar(ts->client, 20); + + GTP_INFO("GTP wakeup sleep."); + return 1; + } +#else + while (retry++ < 10) { + #if GTP_GESTURE_WAKEUP + if (DOZE_WAKEUP != doze_status) { + GTP_INFO("Powerkey wakeup."); + } else { + GTP_INFO("Gesture wakeup."); + } + doze_status = DOZE_DISABLED; + gtp_irq_disable(ts); + gtp_reset_guitar(ts->client, 10); + gtp_irq_enable(ts); + #else + GTP_GPIO_OUTPUT(gtp_int_gpio, 1); + msleep(5); + + #endif + + ret = gtp_i2c_test(ts->client); + if (ret > 0) { + GTP_INFO("GTP wakeup sleep."); + + #if (!GTP_GESTURE_WAKEUP) + { + gtp_int_sync(25); + #if GTP_ESD_PROTECT + gtp_init_ext_watchdog(ts->client); + #endif + } + #endif + + return ret; + } + gtp_reset_guitar(ts->client, 20); + } +#endif + + GTP_ERROR("GTP wakeup sleep failed."); + return ret; +} + +/******************************************************* +Function: + Initialize gtp. +Input: + ts: goodix private data +Output: + Executive outcomes. + 0: succeed, otherwise: failed +*******************************************************/ +static s32 gtp_init_panel(struct goodix_ts_data *ts) +{ + s32 ret = -1; + +#if GTP_DRIVER_SEND_CFG + s32 i = 0; + u8 check_sum = 0; + u8 opr_buf[16] = {0}; + u8 sensor_id = 0; + u8 drv_cfg_version; + u8 flash_cfg_version; + +/* if defined CONFIG_OF, parse config data from dtsi + * else parse config data form header file. + */ + +#ifdef GTP_CONFIG_OF + u8 cfg_info_group0[] = CTP_CFG_GROUP0; + u8 cfg_info_group1[] = CTP_CFG_GROUP1; + u8 cfg_info_group2[] = CTP_CFG_GROUP2; + u8 cfg_info_group3[] = CTP_CFG_GROUP3; + u8 cfg_info_group4[] = CTP_CFG_GROUP4; + u8 cfg_info_group5[] = CTP_CFG_GROUP5; + + u8 *send_cfg_buf[] = {cfg_info_group0, cfg_info_group1, + cfg_info_group2, cfg_info_group3, + cfg_info_group4, cfg_info_group5}; + u8 cfg_info_len[] = { CFG_GROUP_LEN(cfg_info_group0), + CFG_GROUP_LEN(cfg_info_group1), + CFG_GROUP_LEN(cfg_info_group2), + CFG_GROUP_LEN(cfg_info_group3), + CFG_GROUP_LEN(cfg_info_group4), + CFG_GROUP_LEN(cfg_info_group5)}; + + GTP_DEBUG("Config Groups\' Lengths: %d, %d, %d, %d, %d, %d", + cfg_info_len[0], cfg_info_len[1], cfg_info_len[2], cfg_info_len[3], + cfg_info_len[4], cfg_info_len[5]); +#endif + +#if GTP_COMPATIBLE_MODE + if (CHIP_TYPE_GT9F == ts->chip_type) { + ts->fw_error = 0; + } else +#endif + { /* check firmware */ + ret = gtp_i2c_read_dbl_check(ts->client, 0x41E4, opr_buf, 1); + if (SUCCESS == ret) { + if (opr_buf[0] != 0xBE) { + ts->fw_error = 1; + GTP_ERROR("Firmware error, no config sent!"); + return -EPERM; + } + } + } + + /* read sensor id */ +#if GTP_COMPATIBLE_MODE + msleep(50); +#endif + ret = gtp_i2c_read_dbl_check(ts->client, GTP_REG_SENSOR_ID, &sensor_id, 1); + if (SUCCESS == ret) { + if (sensor_id >= 0x06) { + GTP_ERROR("Invalid sensor_id(0x%02X), No Config Sent!", sensor_id); + ts->pnl_init_error = 1; + return -EPERM; + } + } else { + GTP_ERROR("Failed to get sensor_id, No config sent!"); + ts->pnl_init_error = 1; + return -EPERM; + } + GTP_INFO("Sensor_ID: %d", sensor_id); + tp_sensor_id = sensor_id; + + /* parse config data*/ + + GTP_DEBUG("Get config data from header file."); + if ((!cfg_info_len[1]) && (!cfg_info_len[2]) && + (!cfg_info_len[3]) && (!cfg_info_len[4]) && + (!cfg_info_len[5])) { + sensor_id = 0; + } + ts->gtp_cfg_len = cfg_info_len[sensor_id]; + memset(&config[GTP_ADDR_LENGTH], 0, GTP_CONFIG_MAX_LENGTH); + memcpy(&config[GTP_ADDR_LENGTH], send_cfg_buf[sensor_id], ts->gtp_cfg_len); + + GTP_INFO("Config group%d used,length: %d", sensor_id, ts->gtp_cfg_len); + + if (ts->gtp_cfg_len < GTP_CONFIG_MIN_LENGTH) { + GTP_ERROR("Config Group%d is INVALID CONFIG GROUP(Len: %d)! NO Config Sent! You need to check you header file CFG_GROUP section!", sensor_id, ts->gtp_cfg_len); + ts->pnl_init_error = 1; + return -EPERM; + } + +#if GTP_COMPATIBLE_MODE + if (ts->chip_type != CHIP_TYPE_GT9F) +#endif + { + ret = gtp_i2c_read_dbl_check(ts->client, GTP_REG_CONFIG_DATA, &opr_buf[0], 1); + if (ret == SUCCESS) { + GTP_DEBUG("Config Version: %d, 0x%02X; IC Config Version: %d, 0x%02X", + config[GTP_ADDR_LENGTH], config[GTP_ADDR_LENGTH], opr_buf[0], opr_buf[0]); + + flash_cfg_version = opr_buf[0]; + drv_cfg_version = config[GTP_ADDR_LENGTH]; + + if (flash_cfg_version < 90 && flash_cfg_version > drv_cfg_version) { + config[GTP_ADDR_LENGTH] = 0x00; + } + } else { + GTP_ERROR("Failed to get ic config version!No config sent!"); + return -EPERM; + } + } + +#if GTP_CUSTOM_CFG + config[RESOLUTION_LOC] = (u8)GTP_MAX_WIDTH; + config[RESOLUTION_LOC + 1] = (u8)(GTP_MAX_WIDTH>>8); + config[RESOLUTION_LOC + 2] = (u8)GTP_MAX_HEIGHT; + config[RESOLUTION_LOC + 3] = (u8)(GTP_MAX_HEIGHT>>8); + + if (GTP_INT_TRIGGER == 0) { + config[TRIGGER_LOC] &= 0xfe; + } else if (GTP_INT_TRIGGER == 1) { + config[TRIGGER_LOC] |= 0x01; + } +#endif + + check_sum = 0; + for (i = GTP_ADDR_LENGTH; i < ts->gtp_cfg_len; i++) { + check_sum += config[i]; + } + config[ts->gtp_cfg_len] = (~check_sum) + 1; + +#else + + ts->gtp_cfg_len = GTP_CONFIG_MAX_LENGTH; + ret = gtp_i2c_read(ts->client, config, ts->gtp_cfg_len + GTP_ADDR_LENGTH); + if (ret < 0) { + GTP_ERROR("Read Config Failed, Using Default Resolution & INT Trigger!"); + ts->abs_x_max = GTP_MAX_WIDTH; + ts->abs_y_max = GTP_MAX_HEIGHT; + ts->int_trigger_type = GTP_INT_TRIGGER; + } + +#endif + + if ((ts->abs_x_max == 0) && (ts->abs_y_max == 0)) { + ts->abs_x_max = (config[RESOLUTION_LOC + 1] << 8) + config[RESOLUTION_LOC]; + ts->abs_y_max = (config[RESOLUTION_LOC + 3] << 8) + config[RESOLUTION_LOC + 2]; + ts->int_trigger_type = (config[TRIGGER_LOC]) & 0x03; + } + +#if GTP_COMPATIBLE_MODE + if (CHIP_TYPE_GT9F == ts->chip_type) { + u8 sensor_num = 0; + u8 driver_num = 0; + u8 have_key = 0; + + have_key = (config[GTP_REG_HAVE_KEY - GTP_REG_CONFIG_DATA + 2] & 0x01); + + if (1 == ts->is_950) { + driver_num = config[GTP_REG_MATRIX_DRVNUM - GTP_REG_CONFIG_DATA + 2]; + sensor_num = config[GTP_REG_MATRIX_SENNUM - GTP_REG_CONFIG_DATA + 2]; + if (have_key) { + driver_num--; + } + ts->bak_ref_len = (driver_num * (sensor_num - 1) + 2) * 2 * 6; + } else { + driver_num = (config[CFG_LOC_DRVA_NUM] & 0x1F) + (config[CFG_LOC_DRVB_NUM]&0x1F); + if (have_key) { + driver_num--; + } + sensor_num = (config[CFG_LOC_SENS_NUM] & 0x0F) + ((config[CFG_LOC_SENS_NUM] >> 4) & 0x0F); + ts->bak_ref_len = (driver_num * (sensor_num - 2) + 2) * 2; + } + + GTP_INFO("Drv * Sen: %d * %d(key: %d), X_MAX: %d, Y_MAX: %d, TRIGGER: 0x%02x", + driver_num, sensor_num, have_key, ts->abs_x_max, ts->abs_y_max, ts->int_trigger_type); + return 0; + } else +#endif + { +#if GTP_DRIVER_SEND_CFG + ret = gtp_send_cfg(ts->client); + if (ret < 0) { + GTP_ERROR("Send config error."); + } +#if GTP_COMPATIBLE_MODE + if (ts->chip_type != CHIP_TYPE_GT9F) +#endif + { + if (flash_cfg_version < 90 && flash_cfg_version > drv_cfg_version) { + check_sum = 0; + config[GTP_ADDR_LENGTH] = drv_cfg_version; + for (i = GTP_ADDR_LENGTH; i < ts->gtp_cfg_len; i++) { + check_sum += config[i]; + } + config[ts->gtp_cfg_len] = (~check_sum) + 1; + } + } + +#endif + GTP_INFO("X_MAX: %d, Y_MAX: %d, TRIGGER: 0x%02x", ts->abs_x_max, ts->abs_y_max, ts->int_trigger_type); + } + + msleep(10); + return 0; + +} + +static ssize_t gt91xx_config_read_proc(struct file *file, char __user *page, size_t size, loff_t *ppos) +{ + char *ptr = page; + char temp_data[GTP_CONFIG_MAX_LENGTH + 2] = {0x80, 0x47}; + int i; + + if (*ppos) { + return 0; + } + ptr += sprintf(ptr, "==== GT9XX config init value====\n"); + + for (i = 0 ; i < GTP_CONFIG_MAX_LENGTH ; i++) { + ptr += sprintf(ptr, "0x%02X ", config[i + 2]); + + if (i % 8 == 7) + ptr += sprintf(ptr, "\n"); + } + + ptr += sprintf(ptr, "\n"); + + ptr += sprintf(ptr, "==== GT9XX config real value====\n"); + gtp_i2c_read(i2c_connect_client, temp_data, GTP_CONFIG_MAX_LENGTH + 2); + for (i = 0 ; i < GTP_CONFIG_MAX_LENGTH ; i++) { + ptr += sprintf(ptr, "0x%02X ", temp_data[i+2]); + + if (i % 8 == 7) + ptr += sprintf(ptr, "\n"); + } + *ppos += ptr - page; + return (ptr - page); +} + +static ssize_t gt91xx_config_write_proc(struct file *filp, const char __user *buffer, size_t count, loff_t *off) +{ + s32 ret = 0; + + GTP_DEBUG("write count %ld\n", count); + + if (count > GTP_CONFIG_MAX_LENGTH) { + GTP_ERROR("size not match [%d:%ld]\n", GTP_CONFIG_MAX_LENGTH, count); + return -EFAULT; + } + + if (copy_from_user(&config[2], buffer, count)) { + GTP_ERROR("copy from user fail\n"); + return -EFAULT; + } + + ret = gtp_send_cfg(i2c_connect_client); + + if (ret < 0) { + GTP_ERROR("send config failed."); + } + + return count; +} +/******************************************************* +Function: + Read chip version. +Input: + client: i2c device + version: buffer to keep ic firmware version +Output: + read operation return. + 2: succeed, otherwise: failed +*******************************************************/ +s32 gtp_read_version(struct i2c_client *client, u16 *version) +{ + s32 ret = -1; + u8 buf[8] = {GTP_REG_VERSION >> 8, GTP_REG_VERSION & 0xff}; + + GTP_DEBUG_FUNC(); + + ret = gtp_i2c_read(client, buf, sizeof(buf)); + if (ret < 0) { + GTP_ERROR("GTP read version failed"); + return ret; + } + + if (version) { + *version = (buf[7] << 8) | buf[6]; + } + if (buf[5] == 0x00) { + GTP_INFO("IC Version: %c%c%c_%02x%02x", buf[2], buf[3], buf[4], buf[7], buf[6]); + } else { + GTP_INFO("IC Version: %c%c%c%c_%02x%02x", buf[2], buf[3], buf[4], buf[5], buf[7], buf[6]); + } + return ret; +} + +/******************************************************* +Function: + I2c test Function. +Input: + client:i2c client. +Output: + Executive outcomes. + 2: succeed, otherwise failed. +*******************************************************/ +static s8 gtp_i2c_test(struct i2c_client *client) +{ + u8 test[3] = {GTP_REG_CONFIG_DATA >> 8, GTP_REG_CONFIG_DATA & 0xff}; + u8 retry = 0; + s8 ret = -1; + + GTP_DEBUG_FUNC(); + + while (retry++ < 5) { + ret = gtp_i2c_read(client, test, 3); + if (ret > 0) { + return ret; + } + GTP_ERROR("GTP i2c test failed time %d.", retry); + msleep(10); + } + return ret; +} + +/******************************************************* +Function: + Request gpio(INT & RST) ports. +Input: + ts: private data. +Output: + Executive outcomes. + >= 0: succeed, < 0: failed +*******************************************************/ +static s8 gtp_request_io_port(struct goodix_ts_data *ts) +{ + s32 ret = 0; + + GTP_DEBUG_FUNC(); + ret = GTP_GPIO_REQUEST(gtp_int_gpio, "GTP INT IRQ"); + + if (ret < 0) { + GTP_ERROR("Failed to request GPIO:%d, ERRNO:%d", (s32)gtp_int_gpio, ret); + ret = -ENODEV; + } else { + GTP_GPIO_AS_INT(gtp_int_gpio); + ts->client->irq = gpio_to_irq(gtp_int_gpio); + } + + ret = GTP_GPIO_REQUEST(gtp_rst_gpio, "GTP RST PORT"); + if (ret < 0) { + GTP_ERROR("Failed to request GPIO:%d, ERRNO:%d", (s32)gtp_rst_gpio, ret); + ret = -ENODEV; + } + + GTP_GPIO_AS_INPUT(gtp_rst_gpio); + + gtp_reset_guitar(ts->client, 20); + + if (ret < 0) { + GTP_GPIO_FREE(gtp_rst_gpio); + GTP_GPIO_FREE(gtp_int_gpio); + } + + return ret; +} + +/******************************************************* +Function: + Request interrupt. +Input: + ts: private data. +Output: + Executive outcomes. + 0: succeed, -1: failed. +*******************************************************/ +static s8 gtp_request_irq(struct goodix_ts_data *ts) +{ + s32 ret = -1; + const u8 irq_table[] = GTP_IRQ_TAB; + + GTP_DEBUG_FUNC(); + GTP_DEBUG("INT trigger type:%x", ts->int_trigger_type); + + ret = request_irq(ts->client->irq, + goodix_ts_irq_handler, + irq_table[ts->int_trigger_type], + ts->client->name, + ts); + if (ret) { + GTP_ERROR("Request IRQ failed!ERRNO:%d.", ret); + GTP_GPIO_AS_INPUT(gtp_int_gpio); + GTP_GPIO_FREE(gtp_int_gpio); + + hrtimer_init(&ts->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); + ts->timer.function = goodix_ts_timer_handler; + hrtimer_start(&ts->timer, ktime_set(1, 0), HRTIMER_MODE_REL); + return -EPERM; + } else { + gtp_irq_disable(ts); + ts->use_irq = 1; + return 0; + } +} + +static int fts_input_event(struct input_dev *dev, + unsigned int type, unsigned int code, int value) +{ + char buffer[16]; + + if (type == EV_SYN && code == SYN_CONFIG) { + sprintf(buffer, "%d", value); + + GTP_INFO("GTP:Gesture on/off : %d", value); + if (value >= MXT_INPUT_EVENT_START && value <= MXT_INPUT_EVENT_END) { + if (value == MXT_INPUT_EVENT_WAKUP_MODE_ON) { + gtp_gesture_onoff = '1'; + } else if (value == MXT_INPUT_EVENT_WAKUP_MODE_OFF) { + gtp_gesture_onoff = '0'; + } else { + gtp_gesture_onoff = '0'; + GTP_ERROR("Failed Open/Close Gesture Function!\n"); + return -ENOMEM; + } + } + } + + return 0; +} +/******************************************************* +Function: + Request input device Function. +Input: + ts:private data. +Output: + Executive outcomes. + 0: succeed, otherwise: failed. +*******************************************************/ +static s8 gtp_request_input_dev(struct goodix_ts_data *ts) +{ + s8 ret = -1; +#if GTP_HAVE_TOUCH_KEY + u8 index = 0; +#endif + + GTP_DEBUG_FUNC(); + + ts->input_dev = input_allocate_device(); + if (ts->input_dev == NULL) { + GTP_ERROR("Failed to allocate input device."); + return -ENOMEM; + } + + ts->input_dev->evbit[0] = BIT_MASK(EV_SYN) | BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS) ; + + +if (gtp_ics_slot_report == 1) { + input_mt_init_slots(ts->input_dev, 10, 0); +} else { + ts->input_dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH); +} + + __set_bit(INPUT_PROP_DIRECT, ts->input_dev->propbit); + +#if GTP_HAVE_TOUCH_KEY + for (index = 0; index < GTP_MAX_KEY_NUM; index++) { + input_set_capability(ts->input_dev, EV_KEY, touch_key_array[index]); + } +#endif + +#if GTP_GESTURE_WAKEUP + input_set_capability(ts->input_dev, EV_KEY, KEY_POWER); + input_set_capability(ts->input_dev, EV_KEY, KEY_WAKEUP); + __set_bit(KEY_WAKEUP, ts->input_dev->keybit); + Ctp_Gesture_Fucntion_Proc_File(); +#endif + +#if GTP_CHANGE_X2Y + GTP_SWAP(ts->abs_x_max, ts->abs_y_max); +#endif + + input_set_abs_params(ts->input_dev, ABS_MT_POSITION_X, 0, ts->abs_x_max, 0, 0); + input_set_abs_params(ts->input_dev, ABS_MT_POSITION_Y, 0, ts->abs_y_max, 0, 0); + input_set_abs_params(ts->input_dev, ABS_MT_WIDTH_MAJOR, 0, 255, 0, 0); + input_set_abs_params(ts->input_dev, ABS_MT_TOUCH_MAJOR, 0, 255, 0, 0); + input_set_abs_params(ts->input_dev, ABS_MT_TRACKING_ID, 0, 255, 0, 0); + + ts->input_dev->name = goodix_ts_name; + ts->input_dev->phys = goodix_input_phys; + ts->input_dev->id.bustype = BUS_I2C; + ts->input_dev->id.vendor = 0xDEAD; + ts->input_dev->id.product = 0xBEEF; + ts->input_dev->id.version = 10427; + + ts->input_dev->event = fts_input_event; + + + ret = input_register_device(ts->input_dev); + if (ret) { + GTP_ERROR("Register %s input device failed", ts->input_dev->name); + return -ENODEV; + } + +#if GTP_WITH_PEN + gtp_pen_init(ts); +#endif + + return 0; +} + + +#if GTP_COMPATIBLE_MODE + +s32 gtp_fw_startup(struct i2c_client *client) +{ + u8 opr_buf[4]; + s32 ret = 0; + + + opr_buf[0] = 0xAA; + ret = i2c_write_bytes(client, 0x8041, opr_buf, 1); + if (ret < 0) { + return FAIL; + } + + + opr_buf[0] = 0x00; + ret = i2c_write_bytes(client, 0x4180, opr_buf, 1); + if (ret < 0) { + return FAIL; + } + + gtp_int_sync(25); + + + ret = i2c_read_bytes(client, 0x8041, opr_buf, 1); + if (ret < 0) { + return FAIL; + } + if (0xAA == opr_buf[0]) { + GTP_ERROR("IC works abnormally,startup failed."); + return FAIL; + } else { + GTP_INFO("IC works normally, Startup success."); + opr_buf[0] = 0xAA; + i2c_write_bytes(client, 0x8041, opr_buf, 1); + return SUCCESS; + } +} + +static s32 gtp_esd_recovery(struct i2c_client *client) +{ + s32 retry = 0; + s32 ret = 0; + struct goodix_ts_data *ts; + + ts = i2c_get_clientdata(client); + + gtp_irq_disable(ts); + + GTP_INFO("GT9XXF esd recovery mode"); + for (retry = 0; retry < 5; retry++) { + ret = gup_fw_download_proc(NULL, GTP_FL_ESD_RECOVERY); + if (FAIL == ret) { + GTP_ERROR("esd recovery failed %d", retry+1); + continue; + } + ret = gtp_fw_startup(ts->client); + if (FAIL == ret) { + GTP_ERROR("GT9XXF start up failed %d", retry+1); + continue; + } + break; + } + gtp_irq_enable(ts); + + if (retry >= 5) { + GTP_ERROR("failed to esd recovery"); + return FAIL; + } + + GTP_INFO("Esd recovery successful"); + return SUCCESS; +} + +void gtp_recovery_reset(struct i2c_client *client) +{ +#if GTP_ESD_PROTECT + gtp_esd_switch(client, SWITCH_OFF); +#endif + GTP_DEBUG_FUNC(); + + gtp_esd_recovery(client); + +#if GTP_ESD_PROTECT + gtp_esd_switch(client, SWITCH_ON); +#endif +} + +static s32 gtp_bak_ref_proc(struct goodix_ts_data *ts, u8 mode) +{ + s32 ret = 0; + s32 i = 0; + s32 j = 0; + u16 ref_sum = 0; + u16 learn_cnt = 0; + u16 chksum = 0; + s32 ref_seg_len = 0; + s32 ref_grps = 0; + struct file *ref_filp = NULL; + u8 *p_bak_ref; + + ret = gup_check_fs_mounted("/data"); + if (FAIL == ret) { + ts->ref_chk_fs_times++; + GTP_DEBUG("Ref check /data times/MAX_TIMES: %d / %d", ts->ref_chk_fs_times, GTP_CHK_FS_MNT_MAX); + if (ts->ref_chk_fs_times < GTP_CHK_FS_MNT_MAX) { + msleep(50); + GTP_INFO("/data not mounted."); + return FAIL; + } + GTP_INFO("check /data mount timeout..."); + } else { + GTP_INFO("/data mounted!!!(%d/%d)", ts->ref_chk_fs_times, GTP_CHK_FS_MNT_MAX); + } + + p_bak_ref = (u8 *)kzalloc(ts->bak_ref_len, GFP_KERNEL); + + if (NULL == p_bak_ref) { + GTP_ERROR("Allocate memory for p_bak_ref failed!"); + return FAIL; + } + + if (ts->is_950) { + ref_seg_len = ts->bak_ref_len / 6; + ref_grps = 6; + } else { + ref_seg_len = ts->bak_ref_len; + ref_grps = 1; + } + ref_filp = filp_open(GTP_BAK_REF_PATH, O_RDWR | O_CREAT, 0666); + if (IS_ERR(ref_filp)) { + GTP_ERROR("Failed to open/create %s.", GTP_BAK_REF_PATH); + if (GTP_BAK_REF_SEND == mode) { + goto bak_ref_default; + } else { + goto bak_ref_exit; + } + } + + switch (mode) { + case GTP_BAK_REF_SEND: + GTP_INFO("Send backup-reference"); + ref_filp->f_op->llseek(ref_filp, 0, SEEK_SET); + ret = ref_filp->f_op->read(ref_filp, (char *)p_bak_ref, ts->bak_ref_len, &ref_filp->f_pos); + if (ret < 0) { + GTP_ERROR("failed to read bak_ref info from file, sending defualt bak_ref"); + goto bak_ref_default; + } + for (j = 0; j < ref_grps; ++j) { + ref_sum = 0; + for (i = 0; i < (ref_seg_len); i += 2) { + ref_sum += (p_bak_ref[i + j * ref_seg_len] << 8) + p_bak_ref[i+1 + j * ref_seg_len]; + } + learn_cnt = (p_bak_ref[j * ref_seg_len + ref_seg_len - 4] << 8) + (p_bak_ref[j * ref_seg_len + ref_seg_len - 3]); + chksum = (p_bak_ref[j * ref_seg_len + ref_seg_len - 2] << 8) + (p_bak_ref[j * ref_seg_len + ref_seg_len - 1]); + GTP_DEBUG("learn count = %d", learn_cnt); + GTP_DEBUG("chksum = %d", chksum); + GTP_DEBUG("ref_sum = 0x%04X", ref_sum & 0xFFFF); + + if (1 != ref_sum) { + GTP_INFO("wrong chksum for bak_ref, reset to 0x00 bak_ref"); + memset(&p_bak_ref[j * ref_seg_len], 0, ref_seg_len); + p_bak_ref[ref_seg_len + j * ref_seg_len - 1] = 0x01; + } else { + if (j == (ref_grps - 1)) { + GTP_INFO("backup-reference data in %s used", GTP_BAK_REF_PATH); + } + } + } + ret = i2c_write_bytes(ts->client, GTP_REG_BAK_REF, p_bak_ref, ts->bak_ref_len); + if (FAIL == ret) { + GTP_ERROR("failed to send bak_ref because of iic comm error"); + goto bak_ref_exit; + } + break; + + case GTP_BAK_REF_STORE: + GTP_INFO("Store backup-reference"); + ret = i2c_read_bytes(ts->client, GTP_REG_BAK_REF, p_bak_ref, ts->bak_ref_len); + if (ret < 0) { + GTP_ERROR("failed to read bak_ref info, sending default back-reference"); + goto bak_ref_default; + } + ref_filp->f_op->llseek(ref_filp, 0, SEEK_SET); + ref_filp->f_op->write(ref_filp, (char *)p_bak_ref, ts->bak_ref_len, &ref_filp->f_pos); + break; + + default: + GTP_ERROR("invalid backup-reference request"); + break; + } + ret = SUCCESS; + goto bak_ref_exit; + +bak_ref_default: + + for (j = 0; j < ref_grps; ++j) { + memset(&p_bak_ref[j * ref_seg_len], 0, ref_seg_len); + p_bak_ref[j * ref_seg_len + ref_seg_len - 1] = 0x01; + } + ret = i2c_write_bytes(ts->client, GTP_REG_BAK_REF, p_bak_ref, ts->bak_ref_len); + if (!IS_ERR(ref_filp)) { + GTP_INFO("write backup-reference data into %s", GTP_BAK_REF_PATH); + ref_filp->f_op->llseek(ref_filp, 0, SEEK_SET); + ref_filp->f_op->write(ref_filp, (char *)p_bak_ref, ts->bak_ref_len, &ref_filp->f_pos); + } + if (ret == FAIL) { + GTP_ERROR("failed to load the default backup reference"); + } + +bak_ref_exit: + + if (p_bak_ref) { + kfree(p_bak_ref); + } + if (ref_filp && !IS_ERR(ref_filp)) { + filp_close(ref_filp, NULL); + } + return ret; +} + + +static s32 gtp_verify_main_clk(u8 *p_main_clk) +{ + u8 chksum = 0; + u8 main_clock = p_main_clk[0]; + s32 i = 0; + + if (main_clock < 50 || main_clock > 120) { + return FAIL; + } + + for (i = 0; i < 5; ++i) { + if (main_clock != p_main_clk[i]) { + return FAIL; + } + chksum += p_main_clk[i]; + } + chksum += p_main_clk[5]; + if ((chksum) == 0) { + return SUCCESS; + } else { + return FAIL; + } +} + +static s32 gtp_main_clk_proc(struct goodix_ts_data *ts) +{ + s32 ret = 0; + s32 i = 0; + s32 clk_chksum = 0; + struct file *clk_filp = NULL; + u8 p_main_clk[6] = {0}; + + ret = gup_check_fs_mounted("/data"); + if (FAIL == ret) { + ts->clk_chk_fs_times++; + GTP_DEBUG("Clock check /data times/MAX_TIMES: %d / %d", ts->clk_chk_fs_times, GTP_CHK_FS_MNT_MAX); + if (ts->clk_chk_fs_times < GTP_CHK_FS_MNT_MAX) { + msleep(50); + GTP_INFO("/data not mounted."); + return FAIL; + } + GTP_INFO("Check /data mount timeout!"); + } else { + GTP_INFO("/data mounted!!!(%d/%d)", ts->clk_chk_fs_times, GTP_CHK_FS_MNT_MAX); + } + + clk_filp = filp_open(GTP_MAIN_CLK_PATH, O_RDWR | O_CREAT, 0666); + if (IS_ERR(clk_filp)) { + GTP_ERROR("%s is unavailable, calculate main clock", GTP_MAIN_CLK_PATH); + } else { + clk_filp->f_op->llseek(clk_filp, 0, SEEK_SET); + clk_filp->f_op->read(clk_filp, (char *)p_main_clk, 6, &clk_filp->f_pos); + + ret = gtp_verify_main_clk(p_main_clk); + if (FAIL == ret) { + + GTP_ERROR("main clock data in %s is wrong, recalculate main clock", GTP_MAIN_CLK_PATH); + } else { + GTP_INFO("main clock data in %s used, main clock freq: %d", GTP_MAIN_CLK_PATH, p_main_clk[0]); + filp_close(clk_filp, NULL); + goto update_main_clk; + } + } + +#if GTP_ESD_PROTECT + gtp_esd_switch(ts->client, SWITCH_OFF); +#endif + ret = gup_clk_calibration(); + gtp_esd_recovery(ts->client); + +#if GTP_ESD_PROTECT + gtp_esd_switch(ts->client, SWITCH_ON); +#endif + + GTP_INFO("calibrate main clock: %d", ret); + if (ret < 50 || ret > 120) { + GTP_ERROR("wrong main clock: %d", ret); + goto exit_main_clk; + } + + + for (i = 0; i < 5; ++i) { + p_main_clk[i] = ret; + clk_chksum += p_main_clk[i]; + } + p_main_clk[5] = 0 - clk_chksum; + + if (!IS_ERR(clk_filp)) { + GTP_DEBUG("write main clock data into %s", GTP_MAIN_CLK_PATH); + clk_filp->f_op->llseek(clk_filp, 0, SEEK_SET); + clk_filp->f_op->write(clk_filp, (char *)p_main_clk, 6, &clk_filp->f_pos); + filp_close(clk_filp, NULL); + } + +update_main_clk: + ret = i2c_write_bytes(ts->client, GTP_REG_MAIN_CLK, p_main_clk, 6); + if (FAIL == ret) { + GTP_ERROR("update main clock failed!"); + return FAIL; + } + return SUCCESS; + +exit_main_clk: + if (!IS_ERR(clk_filp)) + filp_close(clk_filp, NULL); + return FAIL; +} + + +s32 gtp_gt9xxf_init(struct i2c_client *client) +{ + s32 ret = 0; + + ret = gup_fw_download_proc(NULL, GTP_FL_FW_BURN); + if (FAIL == ret) + return FAIL; + + ret = gtp_fw_startup(client); + if (FAIL == ret) + return FAIL; + return SUCCESS; +} + +void gtp_get_chip_type(struct goodix_ts_data *ts) +{ + u8 opr_buf[10] = {0x00}; + s32 ret = 0; + + msleep(10); + + ret = gtp_i2c_read_dbl_check(ts->client, GTP_REG_CHIP_TYPE, opr_buf, 10); + + if (FAIL == ret) { + GTP_ERROR("Failed to get chip-type, set chip type default: GOODIX_GT9"); + ts->chip_type = CHIP_TYPE_GT9; + return; + } + + if (!memcmp(opr_buf, "GOODIX_GT9", 10)) { + ts->chip_type = CHIP_TYPE_GT9; + } else { + ts->chip_type = CHIP_TYPE_GT9F; + } + GTP_INFO("Chip Type: %s", (ts->chip_type == CHIP_TYPE_GT9) ? "GOODIX_GT9" : "GOODIX_GT9F"); +} +#endif + +/* + * Devices Tree support, +*/ +#ifdef GTP_CONFIG_OF +/** + * gtp_parse_dt - parse platform infomation form devices tree. + */ +static void gtp_parse_dt(struct device *dev) +{ + struct device_node *np = dev->of_node; + + gtp_int_gpio = of_get_named_gpio(np, "goodix,irq-gpio", 0); + gtp_rst_gpio = of_get_named_gpio(np, "goodix,rst-gpio", 0); + + /********************** add 2016.4.28 **************/ + + +} + +/** + * gtp_parse_dt_cfg - parse config data from devices tree. + * @dev: device that this driver attached. + * @cfg: pointer of the config array. + * @cfg_len: pointer of the config length. + * @sid: sensor id. + * Return: 0-succeed, -1-faileds + */ +int gtp_parse_dt_cfg(struct device *dev, u8 *cfg, int *cfg_len, u8 sid) +{ + struct device_node *np = dev->of_node; + struct property *prop; + char cfg_name[18]; + + snprintf(cfg_name, sizeof(cfg_name), "goodix,cfg-group%d", sid); + prop = of_find_property(np, cfg_name, cfg_len); + if (!prop || !prop->value || *cfg_len == 0 || *cfg_len > GTP_CONFIG_MAX_LENGTH) { + return -EPERM;/* failed */ + } else { + memcpy(cfg, prop->value, *cfg_len); + return 0; + } +} + +/** + * gtp_power_switch - power switch . + * @on: 1-switch on, 0-switch off. + * return: 0-succeed, -1-faileds + */ +static int gtp_power_switch(struct i2c_client *client, int on) +{ + static struct regulator *vdd_ana; + static struct regulator *vcc_i2c; + int ret; + + if (!vdd_ana) { + vdd_ana = regulator_get(&client->dev, "vdd_ana"); + if (IS_ERR(vdd_ana)) { + GTP_ERROR("regulator get of vdd_ana failed"); + ret = PTR_ERR(vdd_ana); + vdd_ana = NULL; + return ret; + } + } + + if (!vcc_i2c) { + vcc_i2c = regulator_get(&client->dev, "vcc_i2c"); + if (IS_ERR(vcc_i2c)) { + GTP_ERROR("regulator get of vcc_i2c failed"); + ret = PTR_ERR(vcc_i2c); + vcc_i2c = NULL; + goto ERR_GET_VCC; + } + } + + if (on) { + GTP_DEBUG("GTP power on."); + ret = regulator_enable(vdd_ana); + udelay(2); + ret = regulator_enable(vcc_i2c); + } else { + GTP_DEBUG("GTP power off."); + ret = regulator_disable(vcc_i2c); + udelay(2); + ret = regulator_disable(vdd_ana); + } + return ret; + +ERR_GET_VCC: + regulator_put(vdd_ana); + return ret; +} +#endif + +#ifdef PMX_DRIVER_GT915L +static int goodix_ts_pinctrl_init(struct goodix_ts_data *goodix_data) +{ + int retval; + + goodix_data->ts_pinctrl = devm_pinctrl_get(&(goodix_data->client->dev)); + if (IS_ERR_OR_NULL(goodix_data->ts_pinctrl)) { + retval = PTR_ERR(goodix_data->ts_pinctrl); + dev_dbg(&goodix_data->client->dev, "Target does not use pinctrl %d\n", retval); + goto err_pinctrl_get; + } + goodix_data->pinctrl_state_active = pinctrl_lookup_state(goodix_data->ts_pinctrl, PINCTRL_STATE_ACTIVE); + + if (IS_ERR_OR_NULL(goodix_data->pinctrl_state_active)) { + retval = PTR_ERR(goodix_data->pinctrl_state_active); + dev_err(&goodix_data->client->dev, "Can not lookup %s pinstate %d\n", PINCTRL_STATE_ACTIVE, retval); + goto err_pinctrl_lookup; + } + + goodix_data->pinctrl_state_suspend = pinctrl_lookup_state(goodix_data->ts_pinctrl, PINCTRL_STATE_SUSPEND); + + if (IS_ERR_OR_NULL(goodix_data->pinctrl_state_suspend)) { + retval = PTR_ERR(goodix_data->pinctrl_state_suspend); + dev_err(&goodix_data->client->dev, "Can not lookup %s pinstate %d\n", PINCTRL_STATE_SUSPEND, retval); + goto err_pinctrl_lookup; + } + + goodix_data->pinctrl_state_release = pinctrl_lookup_state(goodix_data->ts_pinctrl, PINCTRL_STATE_RELEASE); + + if (IS_ERR_OR_NULL(goodix_data->pinctrl_state_release)) { + retval = PTR_ERR(goodix_data->pinctrl_state_release); + dev_dbg(&goodix_data->client->dev, "Can not lookup %s pinstate %d\n", PINCTRL_STATE_RELEASE, retval); + } + return 0; + +err_pinctrl_lookup: + devm_pinctrl_put(goodix_data->ts_pinctrl); +err_pinctrl_get: + goodix_data->ts_pinctrl = NULL; + return retval; +} + + +static void goodix_ts_pinctrl_free(struct goodix_ts_data *goodix_data) +{ + /* Put pinctrl if target uses pinctrl */ + if (!IS_ERR_OR_NULL(goodix_data->ts_pinctrl)) { + devm_pinctrl_put(goodix_data->ts_pinctrl); + goodix_data->ts_pinctrl = NULL; + } +} + +static int goodix_ts_pinctrl_select(struct goodix_ts_data *goodix_data, bool on) +{ + struct pinctrl_state *pins_state; + int ret; + + pins_state = on ? goodix_data->pinctrl_state_active + : goodix_data->pinctrl_state_suspend; + if (!IS_ERR_OR_NULL(pins_state)) { + ret = pinctrl_select_state(goodix_data->ts_pinctrl, pins_state); + if (ret) { + dev_err(&goodix_data->client->dev, + "can not set %s pins\n", + on ? "pmx_ts_active" : "pmx_ts_suspend"); + return ret; + } + } else { + dev_err(&goodix_data->client->dev, + "not a valid '%s' pinstate\n", + on ? "pmx_ts_active" : "pmx_ts_suspend"); + } + + return 0; +} + +#endif + + +void parse_cmdline_for_gt915(void) +{ + int ret; + char *cmdline_tp; + char *temp; + + cmdline_tp = strstr(saved_command_line, "androidboot.mode="); + if (cmdline_tp != NULL) { + temp = cmdline_tp + strlen("androidboot.mode="); + ret = strncmp(temp, "ffbm", strlen("ffbm")); + if (ret == 0) { + gtp_ics_slot_report = 1;/* factory mode*/ + return; + } + } + gtp_ics_slot_report = 0; + return; +} + + +static int get_boot_mode(struct i2c_client *client) +{ + int ret; + char *cmdline_tp = NULL; + char *temp; + char cmd_line[15] = {'\0'}; + + cmdline_tp = strstr(saved_command_line, "androidboot.mode="); + if (cmdline_tp != NULL) { + temp = cmdline_tp + strlen("androidboot.mode="); + ret = strncmp(temp, "ffbm", strlen("ffbm")); + memcpy(cmd_line, temp, 10); + dev_err(&client->dev, "cmd_line =%s \n", cmd_line); + if (ret == 0) { + dev_err(&client->dev, "mode: ffbm\n"); + return 1;/* factory mode*/ + } else { + dev_err(&client->dev, "mode: no ffbm\n"); + return 2;/* no factory mode*/ + } + } + dev_err(&client->dev, "has no androidboot.mode \n"); + return 0; +} + + +static int gtp_read_lockdown_info(void) +{ + int ret, k; + char buf[2+GTP_LOCKDOWN_SIZE] = {GTP_READ_LOCKDOWN_INFO_ADDR >> 8, GTP_READ_LOCKDOWN_INFO_ADDR & 0xFF}; + + ret = gtp_i2c_read(i2c_connect_client, buf, GTP_LOCKDOWN_SIZE+2); + if (ret < 0) { + printk("Read Lockdown info error!"); + return -EPERM; + } + + for (k = 0; k < GTP_LOCKDOWN_SIZE; k++) { + lockdown_info[k] = buf[2+k]; + } + + TP_Maker = lockdown_info[0]; + LCD_Maker = lockdown_info[1]; + Panel_Ink = lockdown_info[2]; + tp_color = lockdown_info[2]; + GTP_INFO("Lockdown info: %02X %02X %02X %02X %02X %02X %02X %02X", + lockdown_info[0], lockdown_info[1], + lockdown_info[2], lockdown_info[3], + lockdown_info[4], lockdown_info[5], + lockdown_info[6], lockdown_info[7]); + + GTP_INFO("WT: TP_Maker = 0x%x\n", TP_Maker); + GTP_INFO("WT: LCD_Maker = 0x%x\n", LCD_Maker); + GTP_INFO("WT: Panel_Ink = 0x%x\n", Panel_Ink); + + return 0; +} + +int gtp_hardwareinfo_set(void) +{ + char color[HARDWARE_MAX_ITEM_LONGTH]; + char vendor[HARDWARE_MAX_ITEM_LONGTH]; + int ret; + u16 ic_ver; + gtp_read_lockdown_info(); + switch (tp_color) { + case TP_White: + snprintf(color, HARDWARE_MAX_ITEM_LONGTH, "White"); + break; + case TP_Black: + snprintf(color, HARDWARE_MAX_ITEM_LONGTH, "Black"); + break; + case TP_Golden: + snprintf(color, HARDWARE_MAX_ITEM_LONGTH, "Golden"); + break; + default: + snprintf(color, HARDWARE_MAX_ITEM_LONGTH, "Other Color"); + } + + switch (TP_Maker) { + case TP_BIEL: + snprintf(vendor, HARDWARE_MAX_ITEM_LONGTH, "BIEL"); + break; + default: + snprintf(vendor, HARDWARE_MAX_ITEM_LONGTH, "Other Vendor"); + } + + ret = gtp_i2c_read_dbl_check(i2c_client_point, GTP_REG_CONFIG_DATA, &cfg_version, 1); + if (ret == FAIL) { + printk("Read IC Config Version Error\n"); + return -EPERM; + } + + ret = gtp_read_version(i2c_client_point, &ic_ver); + if (ret < 0) { + GTP_ERROR("Read version failed."); + return -EPERM; + } + IC_Version = ic_ver; + + printk("IC Config Version: %x, V%d\n", IC_Version, cfg_version); + + + sprintf(tp_string_version, "%s, GT917D_%x, V%d, %s", vendor, IC_Version, cfg_version, color); + hardwareinfo_set_prop(HARDWARE_TP, tp_string_version); + return 0; +} + +/******************************************************* +Function: + I2c probe. +Input: + client: i2c device struct. + id: device id. +Output: + Executive outcomes. + 0: succeed. +*******************************************************/ +static int goodix_ts_probe(struct i2c_client *client, const struct i2c_device_id *id) +{ + s32 ret = -1; + struct goodix_ts_data *ts; + u16 version_info; +#ifdef PMX_DRIVER_GT915L + int err; +#endif + + GTP_DEBUG_FUNC(); + + + parse_cmdline_for_gt915(); + + + GTP_INFO("GTP Driver Version: %s", GTP_DRIVER_VERSION); + + GTP_INFO("GTP I2C Address: 0x%02x", client->addr); + + i2c_connect_client = client; + i2c_client_point = client; + + if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { + GTP_ERROR("I2C check functionality failed."); + return -ENODEV; + } + ts = kzalloc(sizeof(*ts), GFP_KERNEL); + if (ts == NULL) { + GTP_ERROR("Alloc GFP_KERNEL memory failed."); + return -ENOMEM; + } + + ts->client = client; + +#ifdef GTP_CONFIG_OF /* device tree support */ + if (client->dev.of_node) { + gtp_parse_dt(&client->dev); + } + ret = gtp_power_switch(client, 1); + if (ret) { + GTP_ERROR("GTP power on failed."); + return -EINVAL; + } +#else /* use gpio defined in gt9xx.h */ + gtp_rst_gpio = GTP_RST_PORT; + gtp_int_gpio = GTP_INT_PORT; +#endif + +#ifdef PMX_DRIVER_GT915L + err = goodix_ts_pinctrl_init(ts); + if (!err && ts->ts_pinctrl) { + ret = goodix_ts_pinctrl_select(ts, 1); + if (ret < 0) { + dev_err(&client->dev, "can not get idle pin state\n"); + goto gtp_power_off; + } +} + #endif + + INIT_WORK(&ts->work, goodix_ts_work_func); + ts->client = client; + spin_lock_init(&ts->irq_lock); + +#if GTP_ESD_PROTECT + ts->clk_tick_cnt = 2 * HZ; + GTP_DEBUG("Clock ticks for an esd cycle: %d", ts->clk_tick_cnt); + spin_lock_init(&ts->esd_lock); + +#endif + i2c_set_clientdata(client, ts); + ts->gtp_rawdiff_mode = 0; + ret = gtp_request_io_port(ts); + if (ret < 0) { + GTP_ERROR("GTP request IO port failed."); + kfree(ts); + return ret; + } + +#if GTP_COMPATIBLE_MODE + gtp_get_chip_type(ts); + if (CHIP_TYPE_GT9F == ts->chip_type) { + ret = gtp_gt9xxf_init(ts->client); + if (FAIL == ret) { + GTP_INFO("Failed to init GT9XXF."); + } + } +#endif + +#ifdef WT_COMPILE_FACTORY_VERSION + ret = gtp_read_version(client, &version_info); + if (ret < 0) { + GTP_ERROR("Read version failed."); + goto free_reset_irq_gpio; + } + + IC_Version = version_info; + + ret = gtp_i2c_test(client); + if (ret < 0) { + GTP_ERROR("I2C communication ERROR!"); + goto free_reset_irq_gpio; + } +#else + ret = gtp_i2c_test(client); + if (ret < 0) { + GTP_ERROR("I2C communication ERROR!"); + goto free_reset_irq_gpio; + } + + ret = gtp_read_version(client, &version_info); + if (ret < 0) { + GTP_ERROR("Read version failed."); + goto free_reset_irq_gpio; + } + + IC_Version = version_info; +#endif + + ret = gtp_init_panel(ts); + if (ret < 0) { + GTP_ERROR("GTP init panel failed."); + ts->abs_x_max = GTP_MAX_WIDTH; + ts->abs_y_max = GTP_MAX_HEIGHT; + ts->int_trigger_type = GTP_INT_TRIGGER; + } + + + gt91xx_config_proc = proc_create(GT91XX_CONFIG_PROC_FILE, 0666, NULL, &config_proc_ops); + if (gt91xx_config_proc == NULL) { + GTP_ERROR("create_proc_entry %s failed\n", GT91XX_CONFIG_PROC_FILE); + } else { + GTP_INFO("create proc entry %s success", GT91XX_CONFIG_PROC_FILE); + } + +#if GTP_ESD_PROTECT + gtp_esd_switch(client, SWITCH_ON); +#endif + +#if GTP_AUTO_UPDATE + +err = get_boot_mode(client); +if (err == 0) { + ret = gup_init_update_proc(ts); + if (ret < 0) { + GTP_ERROR("Create update thread error."); + } +} else { + GTP_INFO("not nomal_boot\n"); +} +#endif + + ret = gtp_request_input_dev(ts); + if (ret < 0) { + GTP_ERROR("GTP request input dev failed"); + } + + ret = gtp_request_irq(ts); + if (ret < 0) { + GTP_INFO("GTP works in polling mode."); + } else { + GTP_INFO("GTP works in interrupt mode."); + } + + if (ts->use_irq) { + gtp_irq_enable(ts); +#if GTP_GESTURE_WAKEUP + enable_irq_wake(client->irq); +#endif + } + +#if WT_ADD_CTP_INFO + gtp_hardwareinfo_set(); +#endif + + +#ifdef CONFIG_TOUCHSCREEN_LOCKDOWN_INFO + ctp_lockdown_fucntion_proc_file(); +#endif + + + /* register suspend and resume fucntion*/ + gtp_register_powermanger(ts); + +#if GTP_CREATE_WR_NODE + init_wr_node(client); +#endif + return 0; + + +free_reset_irq_gpio: + if (gpio_is_valid(gtp_rst_gpio)) + GTP_GPIO_FREE(gtp_rst_gpio); + if (ts->ts_pinctrl) { + err = goodix_ts_pinctrl_select(ts, false); + if (err < 0) + GTP_ERROR("Cannot get idle pinctrl state\n"); + } + + if (gpio_is_valid(gtp_int_gpio)) + GTP_GPIO_FREE(gtp_int_gpio); + if (ts->ts_pinctrl) { + err = goodix_ts_pinctrl_select(ts, false); + if (err < 0) + GTP_ERROR("Cannot get idle pinctrl state\n"); + } + + goodix_ts_pinctrl_free(ts); + +gtp_power_off: + gtp_power_switch(client, 0); + + return err; +} + + +/******************************************************* +Function: + Goodix touchscreen driver release function. +Input: + client: i2c device struct. +Output: + Executive outcomes. 0---succeed. +*******************************************************/ +static int goodix_ts_remove(struct i2c_client *client) +{ + struct goodix_ts_data *ts = i2c_get_clientdata(client); + + GTP_DEBUG_FUNC(); + + gtp_unregister_powermanger(ts); + +#if GTP_CREATE_WR_NODE + uninit_wr_node(); +#endif + +#if GTP_ESD_PROTECT + destroy_workqueue(gtp_esd_check_workqueue); +#endif + + if (ts) { + if (ts->use_irq) { + GTP_GPIO_AS_INPUT(gtp_int_gpio); + GTP_GPIO_FREE(gtp_int_gpio); + free_irq(client->irq, ts); + } else { + hrtimer_cancel(&ts->timer); + } + } + + GTP_INFO("GTP driver removing..."); + i2c_set_clientdata(client, NULL); + input_unregister_device(ts->input_dev); + kfree(ts); + + return 0; +} + + +/******************************************************* +Function: + Early suspend function. +Input: + h: early_suspend struct. +Output: + None. +*******************************************************/ +static void goodix_ts_suspend(struct goodix_ts_data *ts) +{ + s8 ret = -1; + + GTP_DEBUG_FUNC(); + if (ts->enter_update) { + return; + } + GTP_INFO("System suspend."); + + ts->gtp_is_suspend = 1; +#if GTP_ESD_PROTECT + gtp_esd_switch(ts->client, SWITCH_OFF); +#endif + + +#if GTP_GESTURE_WAKEUP +GTP_INFO("Gesture gtp_gesture_onoff :%c\n", gtp_gesture_onoff); +if ('1' == gtp_gesture_onoff) + ret = gtp_enter_doze(ts); +else +#endif +{ + if (ts->use_irq) { + gtp_irq_disable(ts); + } else { + hrtimer_cancel(&ts->timer); + } + ret = gtp_enter_sleep(ts); +} + + if (ret < 0) { + GTP_ERROR("GTP early suspend failed."); + } + + + msleep(58); +} + +/******************************************************* +Function: + Late resume function. +Input: + h: early_suspend struct. +Output: + None. +*******************************************************/ +static void goodix_ts_resume(struct goodix_ts_data *ts) +{ + s8 ret = -1; + + GTP_DEBUG_FUNC(); + if (ts->enter_update) { + return; + } + GTP_INFO("System resume."); + + ret = gtp_wakeup_sleep(ts); + +#if GTP_GESTURE_WAKEUP + doze_status = DOZE_DISABLED; +#endif + + if (ret < 0) { + GTP_ERROR("GTP later resume failed."); + } +#if (GTP_COMPATIBLE_MODE) + if (CHIP_TYPE_GT9F == ts->chip_type) { + + } else +#endif + { + gtp_send_cfg(ts->client); + } + + if (ts->use_irq) { + GTP_DEBUG("GTP use_irq."); + gtp_irq_enable(ts); + } else { + hrtimer_start(&ts->timer, ktime_set(1, 0), HRTIMER_MODE_REL); + } + + ts->gtp_is_suspend = 0; +#if GTP_ESD_PROTECT + gtp_esd_switch(ts->client, SWITCH_ON); +#endif +} + + +#if defined(CONFIG_FB) +/* frame buffer notifier block control the suspend/resume procedure */ +static int gtp_fb_notifier_callback(struct notifier_block *noti, unsigned long event, void *data) +{ + struct fb_event *ev_data = data; + struct goodix_ts_data *ts = container_of(noti, struct goodix_ts_data, notifier); + int *blank; + + if (ev_data && ev_data->data && event == FB_EVENT_BLANK && ts) { + blank = ev_data->data; + if (*blank == FB_BLANK_UNBLANK) { + GTP_DEBUG("Resume by fb notifier."); + goodix_ts_resume(ts); + + } else if (*blank == FB_BLANK_POWERDOWN) { + GTP_DEBUG("Suspend by fb notifier."); + goodix_ts_suspend(ts); + } + } + + return 0; +} +#elif defined(CONFIG_PM) +/* bus control the suspend/resume procedure */ +static int gtp_pm_suspend(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct goodix_ts_data *ts = i2c_get_clientdata(client); + + if (ts) { + GTP_DEBUG("Suspend by i2c pm."); + goodix_ts_suspend(ts); + } + + return 0; +} +static int gtp_pm_resume(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct goodix_ts_data *ts = i2c_get_clientdata(client); + + if (ts) { + GTP_DEBUG("Resume by i2c pm."); + goodix_ts_resume(ts); + } + + return 0; +} + +static struct dev_pm_ops gtp_pm_ops = { + .suspend = gtp_pm_suspend, + .resume = gtp_pm_resume, +}; + +#elif defined(CONFIG_HAS_EARLYSUSPEND) +/* earlysuspend module the suspend/resume procedure */ +static void gtp_early_suspend(struct early_suspend *h) +{ + struct goodix_ts_data *ts = container_of(h, struct goodix_ts_data, early_suspend); + + if (ts) { + GTP_DEBUG("Suspend by earlysuspend module."); + goodix_ts_suspend(ts); + } +} +static void gtp_early_resume(struct early_suspend *h) +{ + struct goodix_ts_data *ts = container_of(h, struct goodix_ts_data, early_suspend); + + if (ts) { + GTP_DEBUG("Resume by earlysuspend module."); + goodix_ts_resume(ts); + } +} +#endif + +static int gtp_register_powermanger(struct goodix_ts_data *ts) +{ +#if defined(CONFIG_FB) + ts->notifier.notifier_call = gtp_fb_notifier_callback; + fb_register_client(&ts->notifier); + +#elif defined(CONFIG_HAS_EARLYSUSPEND) + ts->early_suspend.level = EARLY_SUSPEND_LEVEL_BLANK_SCREEN + 1; + ts->early_suspend.suspend = goodix_ts_early_suspend; + ts->early_suspend.resume = goodix_ts_late_resume; + register_early_suspend(&ts->early_suspend); +#endif + + return 0; +} + +static int gtp_unregister_powermanger(struct goodix_ts_data *ts) +{ +#if defined(CONFIG_FB) + fb_unregister_client(&ts->notifier); + +#elif defined(CONFIG_HAS_EARLYSUSPEND) + unregister_early_suspend(&ts->early_suspend); +#endif + return 0; +} + +/* end */ + +#if GTP_ESD_PROTECT +s32 gtp_i2c_read_no_rst(struct i2c_client *client, u8 *buf, s32 len) +{ + struct i2c_msg msgs[2]; + s32 ret = -1; + s32 retries = 0; + + GTP_DEBUG_FUNC(); + + msgs[0].flags = !I2C_M_RD; + msgs[0].addr = client->addr; + msgs[0].len = GTP_ADDR_LENGTH; + msgs[0].buf = &buf[0]; + + + msgs[1].flags = I2C_M_RD; + msgs[1].addr = client->addr; + msgs[1].len = len - GTP_ADDR_LENGTH; + msgs[1].buf = &buf[GTP_ADDR_LENGTH]; + + + while (retries < 5) { + ret = i2c_transfer(client->adapter, msgs, 2); + if (ret == 2) + break; + retries++; + } + if ((retries >= 5)) { + GTP_ERROR("I2C Read: 0x%04X, %d bytes failed, errcode: %d!", (((u16)(buf[0] << 8)) | buf[1]), len-2, ret); + } + return ret; +} + +s32 gtp_i2c_write_no_rst(struct i2c_client *client, u8 *buf, s32 len) +{ + struct i2c_msg msg; + s32 ret = -1; + s32 retries = 0; + + GTP_DEBUG_FUNC(); + + msg.flags = !I2C_M_RD; + msg.addr = client->addr; + msg.len = len; + msg.buf = buf; + + + while (retries < 5) { + ret = i2c_transfer(client->adapter, &msg, 1); + if (ret == 1) + break; + retries++; + } + if ((retries >= 5)) { + GTP_ERROR("I2C Write: 0x%04X, %d bytes failed, errcode: %d!", (((u16)(buf[0] << 8)) | buf[1]), len-2, ret); + } + return ret; +} +/******************************************************* +Function: + switch on & off esd delayed work +Input: + client: i2c device + on: SWITCH_ON / SWITCH_OFF +Output: + void +*********************************************************/ +void gtp_esd_switch(struct i2c_client *client, s32 on) +{ + struct goodix_ts_data *ts; + + ts = i2c_get_clientdata(client); + spin_lock(&ts->esd_lock); + + if (SWITCH_ON == on) { + if (!ts->esd_running) { + ts->esd_running = 1; + spin_unlock(&ts->esd_lock); + GTP_INFO("Esd started"); + queue_delayed_work(gtp_esd_check_workqueue, >p_esd_check_work, ts->clk_tick_cnt); + } else { + spin_unlock(&ts->esd_lock); + } + } else { + if (ts->esd_running) { + ts->esd_running = 0; + spin_unlock(&ts->esd_lock); + GTP_INFO("Esd cancelled"); + cancel_delayed_work_sync(>p_esd_check_work); + } else { + spin_unlock(&ts->esd_lock); + } + } +} + +/******************************************************* +Function: + Initialize external watchdog for esd protect +Input: + client: i2c device. +Output: + result of i2c write operation. + 1: succeed, otherwise: failed +*********************************************************/ +static s32 gtp_init_ext_watchdog(struct i2c_client *client) +{ + u8 opr_buffer[3] = {0x80, 0x41, 0xAA}; + GTP_DEBUG("[Esd]Init external watchdog"); + return gtp_i2c_write_no_rst(client, opr_buffer, 3); +} + +/******************************************************* +Function: + Esd protect function. + External watchdog added by meta, 2013/03/07 +Input: + work: delayed work +Output: + None. +*******************************************************/ +static void gtp_esd_check_func(struct work_struct *work) +{ + s32 i; + s32 ret = -1; + struct goodix_ts_data *ts = NULL; + u8 esd_buf[5] = {0x80, 0x40}; + + GTP_DEBUG_FUNC(); + + ts = i2c_get_clientdata(i2c_connect_client); + + if (ts->gtp_is_suspend || ts->enter_update) { + GTP_INFO("Esd suspended!"); + return; + } + + for (i = 0; i < 3; i++) { + ret = gtp_i2c_read_no_rst(ts->client, esd_buf, 4); + + GTP_DEBUG("[Esd]0x8040 = 0x%02X, 0x8041 = 0x%02X", esd_buf[2], esd_buf[3]); + if ((ret < 0)) { + continue; + } else { + if ((esd_buf[2] == 0xAA) || (esd_buf[3] != 0xAA)) { + u8 chk_buf[4] = {0x80, 0x40}; + gtp_i2c_read_no_rst(ts->client, chk_buf, 4); + GTP_DEBUG("[Check]0x8040 = 0x%02X, 0x8041 = 0x%02X", chk_buf[2], chk_buf[3]); + if ((chk_buf[2] == 0xAA) || (chk_buf[3] != 0xAA)) { + i = 3; + break; + } else { + continue; + } + } else { + + esd_buf[2] = 0xAA; + gtp_i2c_write_no_rst(ts->client, esd_buf, 3); + break; + } + } + } + if (i >= 3) { + #if GTP_COMPATIBLE_MODE + if (CHIP_TYPE_GT9F == ts->chip_type) { + if (ts->rqst_processing) { + GTP_INFO("Request processing, no esd recovery"); + } else { + GTP_ERROR("IC working abnormally! Process esd recovery."); + esd_buf[0] = 0x42; + esd_buf[1] = 0x26; + esd_buf[2] = 0x01; + esd_buf[3] = 0x01; + esd_buf[4] = 0x01; + gtp_i2c_write_no_rst(ts->client, esd_buf, 5); + msleep(50); + #ifdef GTP_CONFIG_OF + gtp_power_switch(ts->client, 0); + msleep(20); + gtp_power_switch(ts->client, 1); + msleep(20); + #endif + gtp_esd_recovery(ts->client); + } + } else + #endif + { + GTP_ERROR("IC working abnormally! Process reset guitar."); + esd_buf[0] = 0x42; + esd_buf[1] = 0x26; + esd_buf[2] = 0x01; + esd_buf[3] = 0x01; + esd_buf[4] = 0x01; + gtp_i2c_write_no_rst(ts->client, esd_buf, 5); + msleep(50); + #ifdef GTP_CONFIG_OF + gtp_power_switch(ts->client, 0); + msleep(20); + gtp_power_switch(ts->client, 1); + msleep(20); + #endif + gtp_reset_guitar(ts->client, 50); + msleep(50); + gtp_send_cfg(ts->client); + } + } + + if (!ts->gtp_is_suspend) { + queue_delayed_work(gtp_esd_check_workqueue, >p_esd_check_work, ts->clk_tick_cnt); + } else { + GTP_INFO("Esd suspended!"); + } + return; +} +#endif + +#ifdef GTP_CONFIG_OF +static const struct of_device_id goodix_match_table[] = { + {.compatible = "goodix,gt9xx",}, + { }, +}; +#endif + +static const struct i2c_device_id goodix_ts_id[] = { + { GTP_I2C_NAME, 0 }, + { } +}; + +static struct i2c_driver goodix_ts_driver = { + .probe = goodix_ts_probe, + .remove = goodix_ts_remove, + .id_table = goodix_ts_id, + .driver = { + .name = GTP_I2C_NAME, + .owner = THIS_MODULE, +#ifdef GTP_CONFIG_OF + .of_match_table = goodix_match_table, +#endif +#if !defined(CONFIG_FB) && defined(CONFIG_PM) + .pm = >p_pm_ops, +#endif + }, +}; + +/******************************************************* +Function: + Driver Install function. +Input: + None. +Output: + Executive Outcomes. 0---succeed. +********************************************************/ + +static int __init goodix_ts_init(void) +{ + s32 ret; + + GTP_DEBUG_FUNC(); + GTP_INFO("GTP driver installing..."); + goodix_wq = create_singlethread_workqueue("goodix_wq"); + if (!goodix_wq) { + GTP_ERROR("Creat workqueue failed."); + return -ENOMEM; + } +#if GTP_ESD_PROTECT + INIT_DELAYED_WORK(>p_esd_check_work, gtp_esd_check_func); + gtp_esd_check_workqueue = create_workqueue("gtp_esd_check"); +#endif + ret = i2c_add_driver(&goodix_ts_driver); + return ret; +} + +/******************************************************* +Function: + Driver uninstall function. +Input: + None. +Output: + Executive Outcomes. 0---succeed. +********************************************************/ +static void __exit goodix_ts_exit(void) +{ + GTP_DEBUG_FUNC(); + GTP_INFO("GTP driver exited."); + i2c_del_driver(&goodix_ts_driver); + if (goodix_wq) { + destroy_workqueue(goodix_wq); + } +} + +device_initcall_sync(goodix_ts_init); +module_exit(goodix_ts_exit); + +MODULE_DESCRIPTION("GTP Series Driver"); +MODULE_LICENSE("GPL"); diff --git a/drivers/input/touchscreen/GT917D/gt9xx.h b/drivers/input/touchscreen/GT917D/gt9xx.h new file mode 100644 index 0000000000000..c98ca79877bd7 --- /dev/null +++ b/drivers/input/touchscreen/GT917D/gt9xx.h @@ -0,0 +1,349 @@ +/* + * Goodix GT9xx touchscreen driver + * + * Copyright (C) 2010 - 2014 Goodix. Ltd. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be a reference + * to you, when you are integrating the GOODiX's CTP IC into your system, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * Version: 2.4 + * Release Date: 2014/11/28 + */ + +#ifndef _GOODIX_GT9XX_H_ +#define _GOODIX_GT9XX_H_ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef CONFIG_OF +#include +#include +#endif +#ifdef CONFIG_FB +#include +#include +#endif +#ifdef CONFIG_HAS_EARLYSUSPEND +#include +#endif + +#ifndef GTP_CONFIG_OF +#define GTP_CONFIG_OF +#endif + +#ifndef CONFIG_PM +#define CONFIG_PM +#endif + +#define PMX_DRIVER_GT915L + +/***************************PART1:ON/OFF define*******************************/ +#define GTP_CUSTOM_CFG 1 +#define GTP_CHANGE_X2Y 0 +#define GTP_DRIVER_SEND_CFG 1 +#define GTP_HAVE_TOUCH_KEY 1 +#define GTP_POWER_CTRL_SLEEP 0 +#define GTP_ICS_SLOT_REPORT 1 + +#define GTP_AUTO_UPDATE 1 +#define GTP_HEADER_FW_UPDATE 1 +#define GTP_AUTO_UPDATE_CFG 0 + +#define GTP_COMPATIBLE_MODE 0 + +#define GTP_CREATE_WR_NODE 1 +#define GTP_ESD_PROTECT 1 + +#define GTP_WITH_PEN 0 +#define GTP_PEN_HAVE_BUTTON 0 + +#define GTP_GESTURE_WAKEUP 1 +#if GTP_GESTURE_WAKEUP +#define GTP_GESTURE_TPYE_STR "RLUDKcemosvwz" +#define GTP_GESTURE_SUPPORT_ONOFF 'Y' +#define GTP_PROC_DRIVER_VERSION "GTP_V1.0_20160606" +#define GTP_GESTURE_MAX_POINT_COUNT 64 + +#define MXT_INPUT_EVENT_START 0 +#define MXT_INPUT_EVENT_SENSITIVE_MODE_OFF 0 +#define MXT_INPUT_EVENT_SENSITIVE_MODE_ON 1 +#define MXT_INPUT_EVENT_STYLUS_MODE_OFF 2 +#define MXT_INPUT_EVENT_STYLUS_MODE_ON 3 +#define MXT_INPUT_EVENT_WAKUP_MODE_OFF 4 +#define MXT_INPUT_EVENT_WAKUP_MODE_ON 5 +#define MXT_INPUT_EVENT_EDGE_DISABLE 6 +#define MXT_INPUT_EVENT_EDGE_FINGER 7 +#define MXT_INPUT_EVENT_EDGE_HANDGRIP 8 +#define MXT_INPUT_EVENT_EDGE_FINGER_HANDGRIP 9 +#define MXT_INPUT_EVENT_END 9 +#endif + +#define GTP_GLOVE_MODE 1 +#if GTP_GLOVE_MODE +#define GTP_GLOVE_SUPPORT_ONOFF 'Y' +#endif + +#define WT_ADD_CTP_INFO 1 + +#define GTP_DEBUG_ON 0 +#define GTP_DEBUG_ARRAY_ON 0 +#define GTP_DEBUG_FUNC_ON 0 + +#if GTP_COMPATIBLE_MODE +typedef enum +{ + CHIP_TYPE_GT9 = 0, + CHIP_TYPE_GT9F = 1, +} CHIP_TYPE_T; +#endif + +struct goodix_ts_data { + spinlock_t irq_lock; + struct i2c_client *client; + struct input_dev *input_dev; + struct hrtimer timer; + struct work_struct work; + s32 irq_is_disable; + s32 use_irq; + u16 abs_x_max; + u16 abs_y_max; + u8 max_touch_num; + u8 int_trigger_type; + u8 green_wake_mode; + u8 enter_update; + u8 gtp_is_suspend; + u8 gtp_rawdiff_mode; + int gtp_cfg_len; + u8 fw_error; + u8 pnl_init_error; + +#if defined(CONFIG_FB) + struct notifier_block notifier; +#elif defined(CONFIG_HAS_EARLYSUSPEND) + struct early_suspend early_suspend; +#endif + +#if GTP_WITH_PEN + struct input_dev *pen_dev; +#endif + +#if GTP_ESD_PROTECT + spinlock_t esd_lock; + u8 esd_running; + s32 clk_tick_cnt; +#endif +#if GTP_COMPATIBLE_MODE + u16 bak_ref_len; + s32 ref_chk_fs_times; + s32 clk_chk_fs_times; + CHIP_TYPE_T chip_type; + u8 rqst_processing; + u8 is_950; +#endif + +#ifdef PMX_DRIVER_GT915L + struct pinctrl *ts_pinctrl; + struct pinctrl_state *pinctrl_state_active; + struct pinctrl_state *pinctrl_state_suspend; + struct pinctrl_state *pinctrl_state_release; + + struct pinctrl_state *pinctrl_state_int_active; + struct pinctrl_state *pinctrl_state_reset_active; +#endif +}; + +extern u16 show_len; +extern u16 total_len; + +extern unsigned int gtp_rst_gpio; +extern unsigned int gtp_int_gpio; + + +/*************************** PART2:TODO define **********************************/ +/* STEP_1(REQUIRED): Define Configuration Information Group(s) + sensor_opt1 sensor_opt2 Sensor_ID + GND GND 0 + VDDIO GND 1 + NC GND 2 + GND NC/300K 3 + VDDIO NC/300K 4 + NC NC/300K 5 +*/ + + +#define CTP_CFG_GROUP0 {\ +0x45,0xD0,0x02,0x00,0x05,0x0A,0x3C,0x4D,0x01,0xC8,0x28,0x0F,0x5A,0x3C,0x03,0x65,0x00,0x00,0x60,0x62,0x22,0x23,0x0A,0x15,0x16,0x28,0x14,0x87,0x26,0xCC,0x40,0x42,0xD3,0x07,0xD3,0x07,0x00,0x22,0x33,0x91,0x00,0x00,0x00,0x00,0x00,0x84,0xC4,0x0A,0x14,0x00,0x32,0x32,0x5A,0x94,0xD0,0x83,0x07,0x1E,0x00,0x04,0x94,0x35,0x00,0x88,0x3B,0x00,0x7B,0x43,0x00,0x72,0x4B,0x00,0x68,0x55,0x00,0x68,0x18,0x38,0x58,0x00,0x57,0x60,0x48,0xBB,0xBB,0x17,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x0F,0x28,0x00,0x00,0x00,0x00,0x00,0x0A,0x50,0x00,0x00,0x00,0x00,0x32,0x00,0x01,0x02,0x03,0x04,0x0B,0x0A,0x09,0x08,0x07,0x06,0x05,0x0C,0x0D,0x0E,0x0F,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x02,0x04,0x05,0x06,0x08,0x0A,0x1E,0x1F,0x20,0x22,0x24,0x28,0xFF,0xFF,0xFF,0xFF,0x78,0x31,0x00,0x00,0x00,0x87,0x70,0x12,0x00,0x28,0x32,0x3C,0x10,0x23,0x28,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x4B,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x4B,0x00,0x00,0x00,0x00,0x32,0x00,0x00,0x01,0x01,0x14,0x78,0x1C,0x1E,0x55,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x01} + + +#define CTP_CFG_GROUP1 {\ +0x41,0xD0,0x02,0x00,0x05,0x05,0x04,0xC1,0x12,0x0F,0x28,0x0A,0x50,0x32,0x03,0x05,0x00,0x00,0xFF,0x67,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8C,0x2C,0x0D,0x3C,0x3E,0xD3,0x07,0x0F,0x0F,0x00,0x99,0x33,0x10,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x32,0x00,0x00,0x29,0x28,0x5A,0x94,0x85,0x02,0x07,0x00,0x00,0x04,0xA9,0x2B,0x00,0x92,0x33,0x00,0x80,0x3C,0x00,0x71,0x46,0x00,0x63,0x53,0x00,0x63,0x18,0x38,0x58,0x00,0xF0,0x4A,0x3A,0x77,0x77,0x27,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x42,0xF8,0x0F,0x00,0x00,0x00,0x0F,0x00,0x00,0x50,0x3C,0x02,0x04,0x0A,0x0C,0x0E,0x10,0x12,0x14,0x16,0x18,0x1A,0x08,0x06,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x5A,0x00,0x00,0x00,0x0F,0x10,0x12,0x13,0x14,0x0C,0x0A,0x08,0x06,0x04,0x02,0x00,0x16,0x18,0x1C,0x1D,0x1E,0x1F,0x20,0x21,0x22,0x24,0x28,0x26,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x56,0x01\ + } + + +#define CTP_CFG_GROUP2 {\ +0x49,0xD0,0x02,0x00,0x05,0x0A,0x04,0xC1,0x12,0x3F,0x25,0x0A,0x5A,0x3C,0x03,0x05,0x00,0x00,0x00,0x67,0x11,0x11,0x30,0x00,0x00,0x00,0x00,0x8C,0x2C,0x0D,0x3C,0x3E,0xD3,0x07,0xD3,0x07,0x00,0x9A,0x33,0x10,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2A,0x28,0x5A,0x94,0x80,0x02,0x0B,0x00,0x00,0x04,0xA9,0x2B,0x00,0x92,0x33,0x1E,0x80,0x3C,0x00,0x71,0x46,0x00,0x63,0x53,0x00,0x63,0x18,0x38,0x58,0x00,0xF0,0x4A,0x3A,0x77,0x77,0x27,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7D,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x50,0x0F,0x00,0x00,0x50,0x3C,0x02,0x04,0x0C,0x0E,0x10,0x12,0x14,0x16,0x18,0x1A,0x0A,0x08,0x06,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x64,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x18,0x1C,0x1D,0x1E,0x1F,0x20,0x21,0x22,0x28,0x26,0x24,0x0C,0x0A,0x0F,0x08,0x10,0x06,0x12,0x04,0x13,0x02,0x14,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x01\ +} + + +#define CTP_CFG_GROUP3 {\ +} + +#define CTP_CFG_GROUP4 {\ + } + + +#define CTP_CFG_GROUP5 {\ + } + + +#define CTP_CFG_GROUP1_GLOVE {\ +0x44,0x38,0x04,0x80,0x07,0x0A,0x04,0xC1,0x12,0x3F,0x28,0x0A,0x50,0x32,0x03,0x05,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8C,0x2C,0x0E,0x3C,0x3E,0xD3,0x07,0xD3,0x07,0x00,0xF8,0x33,0x90,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x32,0x00,0x00,0x29,0x32,0x5A,0x94,0x85,0x02,0x80,0x00,0x00,0x04,0x8C,0x35,0x00,0x81,0x3B,0x1E,0x76,0x43,0x00,0x6D,0x4B,0x00,0x65,0x55,0x00,0x65,0x18,0x40,0x60,0x00,0xF0,0x50,0x3A,0x77,0x77,0x27,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x67,0x00,0x00,0x00,0x06,0x00,0x42,0xF8,0x0F,0x00,0x0F,0x50,0x0F,0x00,0x00,0x50,0x3C,0x0C,0x0E,0x10,0x12,0x14,0x16,0x18,0x1A,0x1C,0x0A,0x08,0x06,0x04,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x41,0x00,0x00,0x00,0x00,0x04,0x02,0x06,0x08,0x0A,0x0C,0x0F,0x10,0x12,0x13,0x14,0x28,0x26,0x24,0x22,0x21,0x20,0x1F,0x1E,0x1D,0x1C,0x18,0x16,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9A,0x01\ + } + +#define GTP_RST_PORT 16 +#define GTP_INT_PORT 17 + +#define GTP_GPIO_AS_INPUT(pin) do{\ + gpio_direction_input(pin);\ + }while(0) +#define GTP_GPIO_AS_INT(pin) do{\ + GTP_GPIO_AS_INPUT(pin);\ + }while(0) +#define GTP_GPIO_GET_VALUE(pin) gpio_get_value(pin) +#define GTP_GPIO_OUTPUT(pin,level) gpio_direction_output(pin,level) +#define GTP_GPIO_REQUEST(pin, label) gpio_request(pin, label) +#define GTP_GPIO_FREE(pin) gpio_free(pin) +#define GTP_IRQ_TAB {IRQ_TYPE_EDGE_RISING, IRQ_TYPE_EDGE_FALLING, IRQ_TYPE_LEVEL_LOW, IRQ_TYPE_LEVEL_HIGH} + + +#if GTP_CUSTOM_CFG + #define GTP_MAX_HEIGHT 1280 + #define GTP_MAX_WIDTH 720 + #define GTP_INT_TRIGGER 0 +#else + #define GTP_MAX_HEIGHT 1280 + #define GTP_MAX_WIDTH 720 + #define GTP_INT_TRIGGER 1 +#endif +#define GTP_MAX_TOUCH 10 + + +#if GTP_HAVE_TOUCH_KEY + + #define GTP_KEY_TAB {KEY_MENU, KEY_HOMEPAGE, KEY_BACK} +#endif + +/***************************PART3:OTHER define*********************************/ +#define GTP_DRIVER_VERSION "V2.4<2014/11/28>" +#define GTP_I2C_NAME "Goodix-TS" +#define GT91XX_CONFIG_PROC_FILE "gt9xx_config" +#define GTP_POLL_TIME 10 +#define GTP_ADDR_LENGTH 2 +#define GTP_CONFIG_MIN_LENGTH 186 +#define GTP_CONFIG_MAX_LENGTH 240 +#define FAIL 0 +#define SUCCESS 1 +#define SWITCH_OFF 0 +#define SWITCH_ON 1 + +/******************** For GT9XXF Start **********************/ +#define GTP_REG_BAK_REF 0x99D0 +#define GTP_REG_MAIN_CLK 0x8020 +#define GTP_REG_CHIP_TYPE 0x8000 +#define GTP_REG_HAVE_KEY 0x804E +#define GTP_REG_MATRIX_DRVNUM 0x8069 +#define GTP_REG_MATRIX_SENNUM 0x806A + +#define GTP_FL_FW_BURN 0x00 +#define GTP_FL_ESD_RECOVERY 0x01 +#define GTP_FL_READ_REPAIR 0x02 + +#define GTP_BAK_REF_SEND 0 +#define GTP_BAK_REF_STORE 1 +#define CFG_LOC_DRVA_NUM 29 +#define CFG_LOC_DRVB_NUM 30 +#define CFG_LOC_SENS_NUM 31 + +#define GTP_CHK_FW_MAX 40 +#define GTP_CHK_FS_MNT_MAX 300 +#define GTP_BAK_REF_PATH "/data/gtp_ref.bin" +#define GTP_MAIN_CLK_PATH "/data/gtp_clk.bin" +#define GTP_RQST_CONFIG 0x01 +#define GTP_RQST_BAK_REF 0x02 +#define GTP_RQST_RESET 0x03 +#define GTP_RQST_MAIN_CLOCK 0x04 +#define GTP_RQST_RESPONDED 0x00 +#define GTP_RQST_IDLE 0xFF + +/******************** For GT9XXF End **********************/ + +#define GTP_READ_COOR_ADDR 0x814E +#define GTP_REG_SLEEP 0x8040 +#define GTP_REG_SENSOR_ID 0x814A +#define GTP_REG_CONFIG_DATA 0x8047 +#define GTP_REG_VERSION 0x8140 + +#define RESOLUTION_LOC 3 +#define TRIGGER_LOC 8 + +#define CFG_GROUP_LEN(p_cfg_grp) (sizeof(p_cfg_grp) / sizeof(p_cfg_grp[0])) + +#define GTP_INFO(fmt,arg...) printk("<<-GTP-INFO->> "fmt"\n",##arg) +#define GTP_ERROR(fmt,arg...) printk("<<-GTP-ERROR->> "fmt"\n",##arg) +#define GTP_DEBUG(fmt,arg...) do{\ + if(GTP_DEBUG_ON)\ + printk("<<-GTP-DEBUG->> [%d]"fmt"\n",__LINE__, ##arg);\ + }while(0) +#define GTP_DEBUG_ARRAY(array, num) do{\ + s32 i;\ + u8* a = array;\ + if(GTP_DEBUG_ARRAY_ON)\ + {\ + printk("<<-GTP-DEBUG-ARRAY->>\n");\ + for (i = 0; i < (num); i++)\ + {\ + printk("%02x ", (a)[i]);\ + if ((i + 1 ) %10 == 0)\ + {\ + printk("\n");\ + }\ + }\ + printk("\n");\ + }\ + }while(0) +#define GTP_DEBUG_FUNC() do{\ + if(GTP_DEBUG_FUNC_ON)\ + printk("<<-GTP-FUNC->> Func:%s@Line:%d\n",__func__,__LINE__);\ + }while(0) +#define GTP_SWAP(x, y) do{\ + typeof(x) z = x;\ + x = y;\ + y = z;\ + }while (0) + +/*****************************End of Part III********************************/ +#ifdef CONFIG_OF +int gtp_parse_dt_cfg(struct device *dev, u8 *cfg, int *cfg_len, u8 sid); +#endif +#endif /* _GOODIX_GT9XX_H_ */ diff --git a/drivers/input/touchscreen/GT917D/gt9xx_firmware.h b/drivers/input/touchscreen/GT917D/gt9xx_firmware.h new file mode 100644 index 0000000000000..53c2517e9dc88 --- /dev/null +++ b/drivers/input/touchscreen/GT917D/gt9xx_firmware.h @@ -0,0 +1,42 @@ +/* Copyright Statement: + * This firmware are protected under relevant copyright laws,this information contained + * herein is confidential and proprietary to Goodix. + * + * Copyright (C) 2010 - 2014 Goodix. Ltd. + * + * WARNING:The GTP_COMPATIBLE_MODE part of this file was generated by the specialized tools, + * please do not modify it manually! + * +*/ + +#ifndef _GT9XX_FIRMWARE_H_ +#define _GT9XX_FIRMWARE_H_ + + +#if GTP_HEADER_FW_UPDATE + + +#define WT_ADD_FW_BIEL + +unsigned char gtp_default_FW[] = { + +#ifdef WT_ADD_FW_EACH + #include "FW_EACH.txt" +#elif defined WT_ADD_FW_BIEL + #include "FW_BIEL.txt" +#endif +}; +#endif + +/* +*[HW INFO]00900600 +*[PID]910 +*[VID]1010 +*[GENERATED]2013/08/27 20:59:13 +*/ +#if GTP_COMPATIBLE_MODE +unsigned char gtp_default_FW_fl[] = { +}; +#endif + +#endif diff --git a/drivers/input/touchscreen/GT917D/gt9xx_update.c b/drivers/input/touchscreen/GT917D/gt9xx_update.c new file mode 100644 index 0000000000000..21ac5a609ee20 --- /dev/null +++ b/drivers/input/touchscreen/GT917D/gt9xx_update.c @@ -0,0 +1,3251 @@ +/* + * Goodix GT9xx touchscreen driver + * + * Copyright (C) 2010 - 2014 Goodix. Ltd. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be a reference + * to you, when you are integrating the GOODiX's CTP IC into your system, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * Version: 2.4 + * Release Date: 2014/11/28 + */ + +#include +#include "gt9xx.h" + +#include +#include +#if ((GTP_AUTO_UPDATE && GTP_HEADER_FW_UPDATE) || GTP_COMPATIBLE_MODE) + #include "gt9xx_firmware.h" +#endif + +#define GUP_REG_HW_INFO 0x4220 +#define GUP_REG_FW_MSG 0x41E4 +#define GUP_REG_PID_VID 0x8140 + +#define GUP_SEARCH_FILE_TIMES 50 + +#define UPDATE_FILE_PATH_1 "/data/_goodix_update_.bin" +#define UPDATE_FILE_PATH_2 "/sdcard/_goodix_update_.bin" + +#define CONFIG_FILE_PATH_1 "/data/_goodix_config_.cfg" +#define CONFIG_FILE_PATH_2 "/sdcard/_goodix_config_.cfg" + +#define FW_HEAD_LENGTH 14 +#define FW_SECTION_LENGTH 0x2000 +#define FW_DSP_ISP_LENGTH 0x1000 +#define FW_DSP_LENGTH 0x1000 +#define FW_BOOT_LENGTH 0x800 +#define FW_SS51_LENGTH (4 * FW_SECTION_LENGTH) +#define FW_BOOT_ISP_LENGTH 0x800 +#define FW_GLINK_LENGTH 0x3000 +#define FW_GWAKE_LENGTH (4 * FW_SECTION_LENGTH) + +#define PACK_SIZE 256 +#define MAX_FRAME_CHECK_TIME 5 + + +#define _bRW_MISCTL__SRAM_BANK 0x4048 +#define _bRW_MISCTL__MEM_CD_EN 0x4049 +#define _bRW_MISCTL__CACHE_EN 0x404B +#define _bRW_MISCTL__TMR0_EN 0x40B0 +#define _rRW_MISCTL__SWRST_B0_ 0x4180 +#define _bWO_MISCTL__CPU_SWRST_PULSE 0x4184 +#define _rRW_MISCTL__BOOTCTL_B0_ 0x4190 +#define _rRW_MISCTL__BOOT_OPT_B0_ 0x4218 +#define _rRW_MISCTL__BOOT_CTL_ 0x5094 + +#define AUTO_SEARCH_BIN 0x01 +#define AUTO_SEARCH_CFG 0x02 +#define BIN_FILE_READY 0x80 +#define CFG_FILE_READY 0x08 +#define HEADER_FW_READY 0x00 + +#pragma pack(1) +typedef struct { + u8 hw_info[4]; + u8 pid[8]; + u16 vid; +} st_fw_head; +#pragma pack() + +typedef struct { + u8 force_update; + u8 fw_flag; + struct file *file; + struct file *cfg_file; + st_fw_head ic_fw_msg; + mm_segment_t old_fs; + u32 fw_total_len; + u32 fw_burned_len; +} st_update_msg; + +st_update_msg update_msg; +u16 show_len; +u16 total_len; +u8 got_file_flag = 0; +u8 searching_file = 0; + + +int FW_VERSION_ID; +static u8 GTP_FW_SENSOR_ID; + +#if WT_ADD_CTP_INFO +extern int gtp_hardwareinfo_set(void); +#endif + +extern u8 config[GTP_CONFIG_MAX_LENGTH + GTP_ADDR_LENGTH]; +extern void gtp_reset_guitar(struct i2c_client *client, s32 ms); +extern s32 gtp_send_cfg(struct i2c_client *client); +extern s32 gtp_read_version(struct i2c_client *, u16*); +extern struct i2c_client *i2c_connect_client; +extern void gtp_irq_enable(struct goodix_ts_data *ts); +extern void gtp_irq_disable(struct goodix_ts_data *ts); +extern s32 gtp_i2c_read_dbl_check(struct i2c_client *, u16, u8 *, int); +static u8 gup_burn_fw_gwake_section(struct i2c_client *client, u8 *fw_section, u16 start_addr, u32 len, u8 bank_cmd); + +#define _CLOSE_FILE(p_file) if (p_file && !IS_ERR(p_file)) \ + { \ + filp_close(p_file, NULL); \ + } + +#if GTP_ESD_PROTECT +extern void gtp_esd_switch(struct i2c_client *, s32); +#endif + +#if GTP_COMPATIBLE_MODE +s32 gup_fw_download_proc(void *dir, u8 dwn_mode); +#endif +/******************************************************* +Function: + Read data from the i2c slave device. +Input: + client: i2c device. + buf[0~1]: read start address. + buf[2~len-1]: read data buffer. + len: GTP_ADDR_LENGTH + read bytes count +Output: + numbers of i2c_msgs to transfer: + 2: succeed, otherwise: failed +*********************************************************/ +s32 gup_i2c_read(struct i2c_client *client, u8 *buf, s32 len) +{ + struct i2c_msg msgs[2]; + s32 ret = -1; + s32 retries = 0; + + GTP_DEBUG_FUNC(); + + msgs[0].flags = !I2C_M_RD; + msgs[0].addr = client->addr; + msgs[0].len = GTP_ADDR_LENGTH; + msgs[0].buf = &buf[0]; + + + msgs[1].flags = I2C_M_RD; + msgs[1].addr = client->addr; + msgs[1].len = len - GTP_ADDR_LENGTH; + msgs[1].buf = &buf[GTP_ADDR_LENGTH]; + + + while (retries < 5) { + ret = i2c_transfer(client->adapter, msgs, 2); + if (ret == 2) + break; + retries++; + } + + return ret; +} + +/******************************************************* +Function: + Write data to the i2c slave device. +Input: + client: i2c device. + buf[0~1]: write start address. + buf[2~len-1]: data buffer + len: GTP_ADDR_LENGTH + write bytes count +Output: + numbers of i2c_msgs to transfer: + 1: succeed, otherwise: failed +*********************************************************/ +s32 gup_i2c_write(struct i2c_client *client, u8 *buf, s32 len) +{ + struct i2c_msg msg; + s32 ret = -1; + s32 retries = 0; + + GTP_DEBUG_FUNC(); + + msg.flags = !I2C_M_RD; + msg.addr = client->addr; + msg.len = len; + msg.buf = buf; + + + while (retries < 5) { + ret = i2c_transfer(client->adapter, &msg, 1); + if (ret == 1) + break; + retries++; + } + + return ret; +} + +static s32 gup_init_panel(struct goodix_ts_data *ts) +{ + s32 ret = 0; + s32 i = 0; + u8 check_sum = 0; + u8 opr_buf[16]; + u8 sensor_id = 0; + u16 version = 0; + u8 drv_cfg_version; + u8 flash_cfg_version; + +#ifndef GTP_CONFIG_OF + u8 cfg_info_group0[] = CTP_CFG_GROUP0; + u8 cfg_info_group1[] = CTP_CFG_GROUP1; + u8 cfg_info_group2[] = CTP_CFG_GROUP2; + u8 cfg_info_group3[] = CTP_CFG_GROUP3; + u8 cfg_info_group4[] = CTP_CFG_GROUP4; + u8 cfg_info_group5[] = CTP_CFG_GROUP5; + u8 *send_cfg_buf[] = {cfg_info_group0, cfg_info_group1, + cfg_info_group2, cfg_info_group3, + cfg_info_group4, cfg_info_group5}; + u8 cfg_info_len[] = { CFG_GROUP_LEN(cfg_info_group0), + CFG_GROUP_LEN(cfg_info_group1), + CFG_GROUP_LEN(cfg_info_group2), + CFG_GROUP_LEN(cfg_info_group3), + CFG_GROUP_LEN(cfg_info_group4), + CFG_GROUP_LEN(cfg_info_group5)}; + #endif + + ret = gtp_i2c_read_dbl_check(ts->client, GTP_REG_SENSOR_ID, &sensor_id, 1); + if (SUCCESS == ret) { + if (sensor_id >= 0x06) { + GTP_ERROR("Invalid sensor_id(0x%02X), No Config Sent!", sensor_id); + return -EPERM; + } + } else { + GTP_ERROR("Failed to get sensor_id, No config sent!"); + return -EPERM; + } + + /* parse config data*/ +#ifdef GTP_CONFIG_OF + GTP_DEBUG("Get config data from dts file."); + ret = gtp_parse_dt_cfg(&ts->client->dev, &config[GTP_ADDR_LENGTH], &ts->gtp_cfg_len, sensor_id); + if (ret < 0) { + GTP_ERROR("Failed to parse config data form dts file."); + ts->pnl_init_error = 1; + return -EPERM; + } +#else + GTP_DEBUG("Get config data from header file."); + if ((!cfg_info_len[1]) && (!cfg_info_len[2]) && + (!cfg_info_len[3]) && (!cfg_info_len[4]) && + (!cfg_info_len[5])) { + sensor_id = 0; + } + ts->gtp_cfg_len = cfg_info_len[sensor_id]; + memset(&config[GTP_ADDR_LENGTH], 0, GTP_CONFIG_MAX_LENGTH); + memcpy(&config[GTP_ADDR_LENGTH], send_cfg_buf[sensor_id], ts->gtp_cfg_len); +#endif + + GTP_DEBUG("Sensor_ID: %d", sensor_id); + + if (ts->gtp_cfg_len < GTP_CONFIG_MIN_LENGTH) { + GTP_ERROR("Sensor_ID(%d) matches with NULL or INVALID CONFIG GROUP! NO Config Sent! You need to check you header file CFG_GROUP section!", sensor_id); + return -EPERM; + } + + ret = gtp_i2c_read_dbl_check(ts->client, GTP_REG_CONFIG_DATA, &opr_buf[0], 1); + if (ret == SUCCESS) { + GTP_DEBUG("CFG_GROUP%d Config Version: %d, IC Config Version: %d", sensor_id, + config[GTP_ADDR_LENGTH], opr_buf[0]); + + flash_cfg_version = opr_buf[0]; + drv_cfg_version = config[GTP_ADDR_LENGTH]; + + if (flash_cfg_version < 90 && flash_cfg_version > drv_cfg_version) { + config[GTP_ADDR_LENGTH] = 0x00; + } + } else { + GTP_ERROR("Failed to get ic config version!No config sent!"); + return -EPERM; + } + + GTP_DEBUG("X_MAX = %d, Y_MAX = %d, TRIGGER = 0x%02x", + ts->abs_x_max, ts->abs_y_max, ts->int_trigger_type); + + config[RESOLUTION_LOC] = (u8)GTP_MAX_WIDTH; + config[RESOLUTION_LOC + 1] = (u8)(GTP_MAX_WIDTH>>8); + config[RESOLUTION_LOC + 2] = (u8)GTP_MAX_HEIGHT; + config[RESOLUTION_LOC + 3] = (u8)(GTP_MAX_HEIGHT>>8); + + if (GTP_INT_TRIGGER == 0) { + config[TRIGGER_LOC] &= 0xfe; + } else if (GTP_INT_TRIGGER == 1) { + config[TRIGGER_LOC] |= 0x01; + } + + check_sum = 0; + for (i = GTP_ADDR_LENGTH; i < ts->gtp_cfg_len; i++) { + check_sum += config[i]; + } + config[ts->gtp_cfg_len] = (~check_sum) + 1; + + GTP_DEBUG_FUNC(); + ret = gtp_send_cfg(ts->client); + if (ret < 0) { + GTP_ERROR("Send config error."); + } + + if (flash_cfg_version < 90 && flash_cfg_version > drv_cfg_version) { + check_sum = 0; + config[GTP_ADDR_LENGTH] = drv_cfg_version; + for (i = GTP_ADDR_LENGTH; i < ts->gtp_cfg_len; i++) { + check_sum += config[i]; + } + config[ts->gtp_cfg_len] = (~check_sum) + 1; + } + gtp_read_version(ts->client, &version); + msleep(10); + return 0; +} + + +static u8 gup_get_ic_msg(struct i2c_client *client, u16 addr, u8 *msg, s32 len) +{ + s32 i = 0; + + msg[0] = (addr >> 8) & 0xff; + msg[1] = addr & 0xff; + + for (i = 0; i < 5; i++) { + if (gup_i2c_read(client, msg, GTP_ADDR_LENGTH + len) > 0) { + break; + } + } + + if (i >= 5) { + GTP_ERROR("Read data from 0x%02x%02x failed!", msg[0], msg[1]); + return FAIL; + } + + return SUCCESS; +} + +static u8 gup_set_ic_msg(struct i2c_client *client, u16 addr, u8 val) +{ + s32 i = 0; + u8 msg[3]; + + msg[0] = (addr >> 8) & 0xff; + msg[1] = addr & 0xff; + msg[2] = val; + + for (i = 0; i < 5; i++) { + if (gup_i2c_write(client, msg, GTP_ADDR_LENGTH + 1) > 0) { + break; + } + } + + if (i >= 5) { + GTP_ERROR("Set data to 0x%02x%02x failed!", msg[0], msg[1]); + return FAIL; + } + + return SUCCESS; +} + +static u8 gup_get_ic_fw_msg(struct i2c_client *client) +{ + s32 ret = -1; + u8 retry = 0; + u8 buf[16]; + u8 i; + + + ret = gtp_i2c_read_dbl_check(client, GUP_REG_HW_INFO, &buf[GTP_ADDR_LENGTH], 4); + if (FAIL == ret) { + GTP_ERROR("[get_ic_fw_msg]get hw_info failed,exit"); + return FAIL; + } + + + + for (i = 0; i < 4; i++) { + update_msg.ic_fw_msg.hw_info[i] = buf[GTP_ADDR_LENGTH + 3 - i]; + } + GTP_DEBUG("IC Hardware info:%02x%02x%02x%02x", update_msg.ic_fw_msg.hw_info[0], update_msg.ic_fw_msg.hw_info[1], + update_msg.ic_fw_msg.hw_info[2], update_msg.ic_fw_msg.hw_info[3]); + + for (retry = 0; retry < 2; retry++) { + ret = gup_get_ic_msg(client, GUP_REG_FW_MSG, buf, 1); + if (FAIL == ret) { + GTP_ERROR("Read firmware message fail."); + return ret; + } + + update_msg.force_update = buf[GTP_ADDR_LENGTH]; + if ((0xBE != update_msg.force_update) && (!retry)) { + GTP_INFO("The check sum in ic is error."); + GTP_INFO("The IC will be updated by force."); + continue; + } + break; + } + GTP_DEBUG("IC force update flag:0x%x", update_msg.force_update); + + + ret = gtp_i2c_read_dbl_check(client, GUP_REG_PID_VID, &buf[GTP_ADDR_LENGTH], 6); + if (FAIL == ret) { + GTP_ERROR("[get_ic_fw_msg]get pid & vid failed,exit"); + return FAIL; + } + + memset(update_msg.ic_fw_msg.pid, 0, sizeof(update_msg.ic_fw_msg.pid)); + memcpy(update_msg.ic_fw_msg.pid, &buf[GTP_ADDR_LENGTH], 4); + GTP_DEBUG("IC Product id:%s", update_msg.ic_fw_msg.pid); + + + /*|-----FLASH-----RAM-----| + |------918------918-----| + |------968------968-----| + |------913------913-----| + |------913P-----913P----| + |------927------927-----| + |------927P-----927P----| + |------9110-----9110----| + |------9110P----9111----|*/ + if (update_msg.ic_fw_msg.pid[0] != 0) { + if (!memcmp(update_msg.ic_fw_msg.pid, "9111", 4)) { + GTP_DEBUG("IC Mapping Product id:%s", update_msg.ic_fw_msg.pid); + memcpy(update_msg.ic_fw_msg.pid, "9110P", 5); + } + } + + update_msg.ic_fw_msg.vid = buf[GTP_ADDR_LENGTH+4] + (buf[GTP_ADDR_LENGTH+5]<<8); + GTP_DEBUG("IC version id:%04x", update_msg.ic_fw_msg.vid); + + return SUCCESS; +} + +s32 gup_enter_update_mode(struct i2c_client *client) +{ + s32 ret = -1; + s32 retry = 0; + u8 rd_buf[3]; + + + GTP_GPIO_OUTPUT(gtp_rst_gpio, 0); + msleep(2); + + + GTP_GPIO_OUTPUT(gtp_int_gpio, (client->addr == 0x14)); + msleep(2); + + + GTP_GPIO_OUTPUT(gtp_rst_gpio, 1); + + + msleep(5); + while (retry++ < 200) { + + ret = gup_set_ic_msg(client, _rRW_MISCTL__SWRST_B0_, 0x0C); + if (ret <= 0) { + GTP_DEBUG("Hold ss51 & dsp I2C error,retry:%d", retry); + continue; + } + + + ret = gup_get_ic_msg(client, _rRW_MISCTL__SWRST_B0_, rd_buf, 1); + if (ret <= 0) { + GTP_DEBUG("Hold ss51 & dsp I2C error,retry:%d", retry); + continue; + } + if (0x0C == rd_buf[GTP_ADDR_LENGTH]) { + GTP_DEBUG("Hold ss51 & dsp confirm SUCCESS"); + break; + } + GTP_DEBUG("Hold ss51 & dsp confirm 0x4180 failed,value:%d", rd_buf[GTP_ADDR_LENGTH]); + } + if (retry >= 200) { + GTP_ERROR("Enter update Hold ss51 failed."); + return FAIL; + } + + + ret = gup_set_ic_msg(client, 0x4010, 0x00); + + + return ret; +} + +void gup_leave_update_mode(void) +{ + GTP_GPIO_AS_INT(gtp_int_gpio); + + GTP_DEBUG("[leave_update_mode]reset chip."); + gtp_reset_guitar(i2c_connect_client, 20); +} + + + + + + + +/* Update Conditions: + 1. Same hardware info + 2. Same PID + 3. File VID > IC VID + Force Update Conditions: + 1. Wrong ic firmware checksum + 2. INVALID IC PID or VID + 3. (IC PID == 91XX || File PID == 91XX) && (File VID > IC VID) +*/ + +static u8 gup_enter_update_judge(st_fw_head *fw_head) +{ + u16 u16_tmp; + s32 i = 0; + u32 fw_len = 0; + s32 pid_cmp_len = 0; + u16_tmp = fw_head->vid; + fw_head->vid = (u16)(u16_tmp>>8) + (u16)(u16_tmp<<8); + + GTP_INFO("FILE HARDWARE INFO:%02x%02x%02x%02x", fw_head->hw_info[0], fw_head->hw_info[1], fw_head->hw_info[2], fw_head->hw_info[3]); + GTP_INFO("FILE PID:%s", fw_head->pid); + GTP_INFO("FILE VID:%04x", fw_head->vid); + GTP_INFO("IC HARDWARE INFO:%02x%02x%02x%02x", update_msg.ic_fw_msg.hw_info[0], update_msg.ic_fw_msg.hw_info[1], + update_msg.ic_fw_msg.hw_info[2], update_msg.ic_fw_msg.hw_info[3]); + GTP_INFO("IC PID:%s", update_msg.ic_fw_msg.pid); + GTP_INFO("IC VID:%04x", update_msg.ic_fw_msg.vid); + + if (!memcmp(fw_head->pid, "9158", 4) && !memcmp(update_msg.ic_fw_msg.pid, "915S", 4)) { + GTP_INFO("Update GT915S to GT9158 directly!"); + return SUCCESS; + } + + if (!memcmp(fw_head->hw_info, update_msg.ic_fw_msg.hw_info, sizeof(update_msg.ic_fw_msg.hw_info))) { + fw_len = 42 * 1024; + } else { + fw_len = fw_head->hw_info[3]; + fw_len += (((u32)fw_head->hw_info[2]) << 8); + fw_len += (((u32)fw_head->hw_info[1]) << 16); + fw_len += (((u32)fw_head->hw_info[0]) << 24); + } + if (update_msg.fw_total_len != fw_len) { + GTP_ERROR("Inconsistent firmware size, Update aborted! Default size: %d(%dK), actual size: %d(%dK)", fw_len, fw_len/1024, update_msg.fw_total_len, update_msg.fw_total_len/1024); + return FAIL; + } + GTP_INFO("Firmware length:%d(%dK)", update_msg.fw_total_len, update_msg.fw_total_len/1024); + + if (update_msg.force_update != 0xBE) { + GTP_INFO("FW chksum error,need enter update."); + return SUCCESS; + } + + + if (strlen(update_msg.ic_fw_msg.pid) < 3) { + GTP_INFO("Illegal IC pid, need enter update"); + return SUCCESS; + } else { + for (i = 0; i < 3; i++) { + if ((update_msg.ic_fw_msg.pid[i] < 0x30) || (update_msg.ic_fw_msg.pid[i] > 0x39)) { + GTP_INFO("Illegal IC pid, out of bound, need enter update"); + return SUCCESS; + } + } + } + + + pid_cmp_len = strlen(fw_head->pid); + if (pid_cmp_len < strlen(update_msg.ic_fw_msg.pid)) { + pid_cmp_len = strlen(update_msg.ic_fw_msg.pid); + } + + if ((!memcmp(fw_head->pid, update_msg.ic_fw_msg.pid, pid_cmp_len)) || + (!memcmp(update_msg.ic_fw_msg.pid, "91XX", 4)) || + (!memcmp(fw_head->pid, "91XX", 4))) { + if (!memcmp(fw_head->pid, "91XX", 4)) { + GTP_DEBUG("Force none same pid update mode."); + } else { + GTP_DEBUG("Get the same pid."); + } + + + if (fw_head->vid > update_msg.ic_fw_msg.vid) { + GTP_INFO("Need enter update."); + return SUCCESS; + } + GTP_ERROR("Don't meet the third condition."); + GTP_ERROR("File VID <= Ic VID, update aborted!"); + } else { + GTP_ERROR("File PID != Ic PID, update aborted!"); + } + + return FAIL; +} + + + +#if GTP_AUTO_UPDATE_CFG +static u8 ascii2hex(u8 a) +{ + s8 value = 0; + + if (a >= '0' && a <= '9') { + value = a - '0'; + } else if (a >= 'A' && a <= 'F') { + value = a - 'A' + 0x0A; + } else if (a >= 'a' && a <= 'f') { + value = a - 'a' + 0x0A; + } else { + value = 0xff; + } + + return value; +} + +static s8 gup_update_config(struct i2c_client *client) +{ + s32 file_len = 0; + s32 ret = 0; + s32 i = 0; + s32 file_cfg_len = 0; + s32 chip_cfg_len = 0; + s32 count = 0; + u8 *buf; + u8 *pre_buf; + u8 *file_config; + + struct goodix_ts_data *ts = i2c_get_clientdata(client); + + if (NULL == update_msg.cfg_file) { + GTP_ERROR("[update_cfg]No need to upgrade config!"); + return FAIL; + } + file_len = update_msg.cfg_file->f_op->llseek(update_msg.cfg_file, 0, SEEK_END); + + chip_cfg_len = ts->gtp_cfg_len; + + GTP_DEBUG("[update_cfg]config file len:%d", file_len); + GTP_DEBUG("[update_cfg]need config len:%d", chip_cfg_len); + if ((file_len+5) < chip_cfg_len*5) { + GTP_ERROR("Config length error"); + return -EPERM; + } + + buf = (u8 *)kzalloc(file_len, GFP_KERNEL); + pre_buf = (u8 *)kzalloc(file_len, GFP_KERNEL); + file_config = (u8 *)kzalloc(chip_cfg_len + GTP_ADDR_LENGTH, GFP_KERNEL); + update_msg.cfg_file->f_op->llseek(update_msg.cfg_file, 0, SEEK_SET); + + GTP_DEBUG("[update_cfg]Read config from file."); + ret = update_msg.cfg_file->f_op->read(update_msg.cfg_file, (char *)pre_buf, file_len, &update_msg.cfg_file->f_pos); + if (ret < 0) { + GTP_ERROR("[update_cfg]Read config file failed."); + goto update_cfg_file_failed; + } + + GTP_DEBUG("[update_cfg]Delete illgal charactor."); + for (i = 0, count = 0; i < file_len; i++) { + if (pre_buf[i] == ' ' || pre_buf[i] == '\r' || pre_buf[i] == '\n') { + continue; + } + buf[count++] = pre_buf[i]; + } + + GTP_DEBUG("[update_cfg]Ascii to hex."); + file_config[0] = GTP_REG_CONFIG_DATA >> 8; + file_config[1] = GTP_REG_CONFIG_DATA & 0xff; + for (i = 0, file_cfg_len = GTP_ADDR_LENGTH; i < count; i += 5) { + if ((buf[i] == '0') && ((buf[i+1] == 'x') || (buf[i+1] == 'X'))) { + u8 high, low; + high = ascii2hex(buf[i+2]); + low = ascii2hex(buf[i+3]); + + if ((high == 0xFF) || (low == 0xFF)) { + ret = 0; + GTP_ERROR("[update_cfg]Illegal config file."); + goto update_cfg_file_failed; + } + file_config[file_cfg_len++] = (high<<4) + low; + } else { + ret = 0; + GTP_ERROR("[update_cfg]Illegal config file."); + goto update_cfg_file_failed; + } + } + + + GTP_DEBUG("config:"); + GTP_DEBUG_ARRAY(file_config+2, file_cfg_len); + + i = 0; + while (i++ < 5) { + ret = gup_i2c_write(client, file_config, file_cfg_len); + if (ret > 0) { + GTP_INFO("[update_cfg]Send config SUCCESS."); + break; + } + GTP_ERROR("[update_cfg]Send config i2c error."); + } + +update_cfg_file_failed: + kfree(pre_buf); + kfree(buf); + kfree(file_config); + return ret; +} + +#endif + +#if (GTP_AUTO_UPDATE && (!GTP_HEADER_FW_UPDATE || GTP_AUTO_UPDATE_CFG)) +static void gup_search_file(s32 search_type) +{ + s32 i = 0; + struct file *pfile = NULL; + + got_file_flag = 0x00; + + searching_file = 1; + for (i = 0; i < GUP_SEARCH_FILE_TIMES; ++i) { + if (0 == searching_file) { + GTP_INFO("Force exiting file searching"); + got_file_flag = 0x00; + return; + } + + if (search_type & AUTO_SEARCH_BIN) { + GTP_DEBUG("Search for %s, %s for fw update.(%d/%d)", UPDATE_FILE_PATH_1, UPDATE_FILE_PATH_2, i+1, GUP_SEARCH_FILE_TIMES); + pfile = filp_open(UPDATE_FILE_PATH_1, O_RDONLY, 0); + if (IS_ERR(pfile)) { + pfile = filp_open(UPDATE_FILE_PATH_2, O_RDONLY, 0); + if (!IS_ERR(pfile)) { + GTP_INFO("Bin file: %s for fw update.", UPDATE_FILE_PATH_2); + got_file_flag |= BIN_FILE_READY; + update_msg.file = pfile; + } + } else { + GTP_INFO("Bin file: %s for fw update.", UPDATE_FILE_PATH_1); + got_file_flag |= BIN_FILE_READY; + update_msg.file = pfile; + } + if (got_file_flag & BIN_FILE_READY) { + #if GTP_AUTO_UPDATE_CFG + if (search_type & AUTO_SEARCH_CFG) { + i = GUP_SEARCH_FILE_TIMES; + } else + #endif + { + searching_file = 0; + return; + } + } + } + + #if GTP_AUTO_UPDATE_CFG + if ((search_type & AUTO_SEARCH_CFG) && !(got_file_flag & CFG_FILE_READY)) { + GTP_DEBUG("Search for %s, %s for config update.(%d/%d)", CONFIG_FILE_PATH_1, CONFIG_FILE_PATH_2, i+1, GUP_SEARCH_FILE_TIMES); + pfile = filp_open(CONFIG_FILE_PATH_1, O_RDONLY, 0); + if (IS_ERR(pfile)) { + pfile = filp_open(CONFIG_FILE_PATH_2, O_RDONLY, 0); + if (!IS_ERR(pfile)) { + GTP_INFO("Cfg file: %s for config update.", CONFIG_FILE_PATH_2); + got_file_flag |= CFG_FILE_READY; + update_msg.cfg_file = pfile; + } + } else { + GTP_INFO("Cfg file: %s for config update.", CONFIG_FILE_PATH_1); + got_file_flag |= CFG_FILE_READY; + update_msg.cfg_file = pfile; + } + if (got_file_flag & CFG_FILE_READY) { + searching_file = 0; + return; + } + } + #endif + msleep(3000); + } + searching_file = 0; +} +#endif + + +static u8 gup_check_update_file(struct i2c_client *client, st_fw_head *fw_head, u8 *path) +{ + s32 ret = 0; + s32 i = 0; + s32 fw_checksum = 0; + u8 buf[FW_HEAD_LENGTH]; + + got_file_flag = 0x00; + if (path) { + GTP_DEBUG("Update File path:%s, %ld", path, strlen(path)); + update_msg.file = filp_open(path, O_RDONLY, 0); + + if (IS_ERR(update_msg.file)) { + GTP_ERROR("Open update file(%s) error!", path); + return FAIL; + } + got_file_flag = BIN_FILE_READY; + } else { +#if GTP_AUTO_UPDATE + #if GTP_HEADER_FW_UPDATE + + + ret = gtp_i2c_read_dbl_check(client, GTP_REG_SENSOR_ID, >P_FW_SENSOR_ID, 1); + if (SUCCESS == ret) { + if (GTP_FW_SENSOR_ID >= 0x09) { + GTP_ERROR("Invalid sensor_id(0x%02X), No Config Sent!", GTP_FW_SENSOR_ID); + + } + } + + if (GTP_FW_SENSOR_ID == 0x2) { + GTP_INFO("Update GT915L FW, Sensor ID : %d", GTP_FW_SENSOR_ID); + } else { + GTP_INFO("Force Upgrade Error !"); + + } + + GTP_INFO("Update by default firmware array"); + update_msg.fw_total_len = sizeof(gtp_default_FW) - FW_HEAD_LENGTH; + if (sizeof(gtp_default_FW) < (FW_HEAD_LENGTH+FW_SECTION_LENGTH*4+FW_DSP_ISP_LENGTH+FW_DSP_LENGTH+FW_BOOT_LENGTH)) { + GTP_ERROR("INVALID gtp_default_FW, check your gt9xx_firmware.h file!"); + return FAIL; + } + GTP_DEBUG("Firmware actual size: %d(%dK)", update_msg.fw_total_len, update_msg.fw_total_len/1024); + memcpy(fw_head, >p_default_FW[0], FW_HEAD_LENGTH); + + + fw_checksum = 0; + for (i = 0; i < update_msg.fw_total_len; i += 2) { + fw_checksum += (gtp_default_FW[FW_HEAD_LENGTH + i] << 8) + gtp_default_FW[FW_HEAD_LENGTH + i + 1]; + } + + GTP_DEBUG("firmware checksum:%x", fw_checksum&0xFFFF); + if (fw_checksum&0xFFFF) { + GTP_ERROR("Illegal firmware file."); + return FAIL; + } + got_file_flag = HEADER_FW_READY; + return SUCCESS; + #else + + #if GTP_AUTO_UPDATE_CFG + gup_search_file(AUTO_SEARCH_BIN | AUTO_SEARCH_CFG); + if (got_file_flag & CFG_FILE_READY) { + ret = gup_update_config(i2c_connect_client); + if (ret <= 0) { + GTP_ERROR("Update config failed."); + } + _CLOSE_FILE(update_msg.cfg_file); + msleep(500); + } + #else + gup_search_file(AUTO_SEARCH_BIN); + #endif + + if (!(got_file_flag & BIN_FILE_READY)) { + GTP_ERROR("No bin file for fw update"); + return FAIL; + } + #endif + +#else + { + GTP_ERROR("NULL file for firmware update"); + return FAIL; + } +#endif + } + + update_msg.old_fs = get_fs(); + set_fs(KERNEL_DS); + + update_msg.file->f_op->llseek(update_msg.file, 0, SEEK_SET); + update_msg.fw_total_len = update_msg.file->f_op->llseek(update_msg.file, 0, SEEK_END); + if (update_msg.fw_total_len < (FW_HEAD_LENGTH + FW_SECTION_LENGTH*4+FW_DSP_ISP_LENGTH+FW_DSP_LENGTH+FW_BOOT_LENGTH)) { + GTP_ERROR("INVALID bin file(size: %d), update aborted.", update_msg.fw_total_len); + return FAIL; + } + + update_msg.fw_total_len -= FW_HEAD_LENGTH; + + GTP_DEBUG("Bin firmware actual size: %d(%dK)", update_msg.fw_total_len, update_msg.fw_total_len/1024); + + update_msg.file->f_op->llseek(update_msg.file, 0, SEEK_SET); + ret = update_msg.file->f_op->read(update_msg.file, (char *)buf, FW_HEAD_LENGTH, &update_msg.file->f_pos); + if (ret < 0) { + GTP_ERROR("Read firmware head in update file error."); + return FAIL; + } + + memcpy(fw_head, buf, FW_HEAD_LENGTH); + + + fw_checksum = 0; + for (i = 0; i < update_msg.fw_total_len; i += 2) { + u16 temp; + ret = update_msg.file->f_op->read(update_msg.file, (char *)buf, 2, &update_msg.file->f_pos); + if (ret < 0) { + GTP_ERROR("Read firmware file error."); + return FAIL; + } + + temp = (buf[0]<<8) + buf[1]; + fw_checksum += temp; + } + + GTP_DEBUG("firmware checksum:%x", fw_checksum&0xFFFF); + if (fw_checksum&0xFFFF) { + GTP_ERROR("Illegal firmware file."); + return FAIL; + } + + return SUCCESS; +} + +static u8 gup_burn_proc(struct i2c_client *client, u8 *burn_buf, u16 start_addr, u16 total_length) +{ + s32 ret = 0; + u16 burn_addr = start_addr; + u16 frame_length = 0; + u16 burn_length = 0; + u8 wr_buf[PACK_SIZE + GTP_ADDR_LENGTH]; + u8 rd_buf[PACK_SIZE + GTP_ADDR_LENGTH]; + u8 retry = 0; + + GTP_DEBUG("Begin burn %dk data to addr 0x%x", (total_length/1024), start_addr); + while (burn_length < total_length) { + GTP_DEBUG("B/T:%04d/%04d", burn_length, total_length); + frame_length = ((total_length - burn_length) > PACK_SIZE) ? PACK_SIZE : (total_length - burn_length); + wr_buf[0] = (u8)(burn_addr>>8); + rd_buf[0] = wr_buf[0]; + wr_buf[1] = (u8)burn_addr; + rd_buf[1] = wr_buf[1]; + memcpy(&wr_buf[GTP_ADDR_LENGTH], &burn_buf[burn_length], frame_length); + + for (retry = 0; retry < MAX_FRAME_CHECK_TIME; retry++) { + ret = gup_i2c_write(client, wr_buf, GTP_ADDR_LENGTH + frame_length); + if (ret <= 0) { + GTP_ERROR("Write frame data i2c error."); + continue; + } + ret = gup_i2c_read(client, rd_buf, GTP_ADDR_LENGTH + frame_length); + if (ret <= 0) { + GTP_ERROR("Read back frame data i2c error."); + continue; + } + + if (memcmp(&wr_buf[GTP_ADDR_LENGTH], &rd_buf[GTP_ADDR_LENGTH], frame_length)) { + GTP_ERROR("Check frame data fail,not equal."); + GTP_DEBUG("write array:"); + GTP_DEBUG_ARRAY(&wr_buf[GTP_ADDR_LENGTH], frame_length); + GTP_DEBUG("read array:"); + GTP_DEBUG_ARRAY(&rd_buf[GTP_ADDR_LENGTH], frame_length); + continue; + } else { + + break; + } + } + if (retry >= MAX_FRAME_CHECK_TIME) { + GTP_ERROR("Burn frame data time out,exit."); + return FAIL; + } + burn_length += frame_length; + burn_addr += frame_length; + } + return SUCCESS; +} + +static u8 gup_load_section_file(u8 *buf, u32 offset, u16 length, u8 set_or_end) +{ +#if (GTP_AUTO_UPDATE && GTP_HEADER_FW_UPDATE) + if (got_file_flag == HEADER_FW_READY) { + if (SEEK_SET == set_or_end) { + memcpy(buf, >p_default_FW[FW_HEAD_LENGTH + offset], length); + } else { + memcpy(buf, >p_default_FW[update_msg.fw_total_len + FW_HEAD_LENGTH - offset], length); + } + return SUCCESS; + } +#endif + { + s32 ret = 0; + + if ((update_msg.file == NULL) || IS_ERR(update_msg.file)) { + GTP_ERROR("cannot find update file,load section file fail."); + return FAIL; + } + + if (SEEK_SET == set_or_end) { + update_msg.file->f_pos = FW_HEAD_LENGTH + offset; + } else { + update_msg.file->f_pos = update_msg.fw_total_len + FW_HEAD_LENGTH - offset; + } + + ret = update_msg.file->f_op->read(update_msg.file, (char *)buf, length, &update_msg.file->f_pos); + + if (ret < 0) { + GTP_ERROR("Read update file fail."); + return FAIL; + } + + return SUCCESS; + } +} + +static u8 gup_recall_check(struct i2c_client *client, u8 *chk_src, u16 start_rd_addr, u16 chk_length) +{ + u8 rd_buf[PACK_SIZE + GTP_ADDR_LENGTH]; + s32 ret = 0; + u16 recall_addr = start_rd_addr; + u16 recall_length = 0; + u16 frame_length = 0; + + while (recall_length < chk_length) { + frame_length = ((chk_length - recall_length) > PACK_SIZE) ? PACK_SIZE : (chk_length - recall_length); + ret = gup_get_ic_msg(client, recall_addr, rd_buf, frame_length); + if (ret <= 0) { + GTP_ERROR("recall i2c error,exit"); + return FAIL; + } + + if (memcmp(&rd_buf[GTP_ADDR_LENGTH], &chk_src[recall_length], frame_length)) { + GTP_ERROR("Recall frame data fail,not equal."); + GTP_DEBUG("chk_src array:"); + GTP_DEBUG_ARRAY(&chk_src[recall_length], frame_length); + GTP_DEBUG("recall array:"); + GTP_DEBUG_ARRAY(&rd_buf[GTP_ADDR_LENGTH], frame_length); + return FAIL; + } + + recall_length += frame_length; + recall_addr += frame_length; + } + GTP_DEBUG("Recall check %dk firmware success.", (chk_length/1024)); + + return SUCCESS; +} + +static u8 gup_burn_fw_section(struct i2c_client *client, u8 *fw_section, u16 start_addr, u8 bank_cmd) +{ + s32 ret = 0; + u8 rd_buf[5]; + + + ret = gup_set_ic_msg(client, _rRW_MISCTL__SWRST_B0_, 0x0C); + if (ret <= 0) { + GTP_ERROR("[burn_fw_section]hold ss51 & dsp fail."); + return FAIL; + } + + + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOT_OPT_B0_, 0x00); + if (ret <= 0) { + GTP_ERROR("[burn_fw_section]set scramble fail."); + return FAIL; + } + + + ret = gup_set_ic_msg(client, _bRW_MISCTL__SRAM_BANK, (bank_cmd >> 4)&0x0F); + if (ret <= 0) { + GTP_ERROR("[burn_fw_section]select bank %d fail.", (bank_cmd >> 4)&0x0F); + return FAIL; + } + + + ret = gup_set_ic_msg(client, _bRW_MISCTL__MEM_CD_EN, 0x01); + if (ret <= 0) { + GTP_ERROR("[burn_fw_section]enable accessing code fail."); + return FAIL; + } + + + ret = gup_burn_proc(client, fw_section, start_addr, FW_SECTION_LENGTH); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_section]burn fw_section fail."); + return FAIL; + } + + + ret = gup_set_ic_msg(client, _rRW_MISCTL__SWRST_B0_, 0x04); + if (ret <= 0) { + GTP_ERROR("[burn_fw_section]hold ss51 & release dsp fail."); + return FAIL; + } + + msleep(1); + + + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOT_CTL_, bank_cmd&0x0f); + if (ret <= 0) { + GTP_ERROR("[burn_fw_section]send burn cmd fail."); + return FAIL; + } + GTP_DEBUG("[burn_fw_section]Wait for the burn is complete......"); + do { + ret = gup_get_ic_msg(client, _rRW_MISCTL__BOOT_CTL_, rd_buf, 1); + if (ret <= 0) { + GTP_ERROR("[burn_fw_section]Get burn state fail"); + return FAIL; + } + msleep(10); + + } while (rd_buf[GTP_ADDR_LENGTH]); + + + ret = gup_set_ic_msg(client, _bRW_MISCTL__SRAM_BANK, (bank_cmd >> 4)&0x0F); + if (ret <= 0) { + GTP_ERROR("[burn_fw_section]select bank %d fail.", (bank_cmd >> 4)&0x0F); + return FAIL; + } + + + ret = gup_set_ic_msg(client, _bRW_MISCTL__MEM_CD_EN, 0x01); + if (ret <= 0) { + GTP_ERROR("[burn_fw_section]enable accessing code fail."); + return FAIL; + } + + + ret = gup_recall_check(client, fw_section, start_addr, FW_SECTION_LENGTH); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_section]recall check %dk firmware fail.", FW_SECTION_LENGTH/1024); + return FAIL; + } + + + ret = gup_set_ic_msg(client, _bRW_MISCTL__MEM_CD_EN, 0x00); + if (ret <= 0) { + GTP_ERROR("[burn_fw_section]disable accessing code fail."); + return FAIL; + } + + return SUCCESS; +} + +static u8 gup_burn_dsp_isp(struct i2c_client *client) +{ + s32 ret = 0; + u8 *fw_dsp_isp = NULL; + u8 retry = 0; + + GTP_INFO("[burn_dsp_isp]Begin burn dsp isp---->>"); + + + GTP_DEBUG("[burn_dsp_isp]step1:alloc memory"); + while (retry++ < 5) { + fw_dsp_isp = (u8 *)kzalloc(FW_DSP_ISP_LENGTH, GFP_KERNEL); + if (fw_dsp_isp == NULL) { + continue; + } else { + GTP_INFO("[burn_dsp_isp]Alloc %dk byte memory success.", (FW_DSP_ISP_LENGTH/1024)); + break; + } + } + if (retry >= 5) { + GTP_ERROR("[burn_dsp_isp]Alloc memory fail,exit."); + return FAIL; + } + + + GTP_DEBUG("[burn_dsp_isp]step2:load dsp isp file data"); + ret = gup_load_section_file(fw_dsp_isp, FW_DSP_ISP_LENGTH, FW_DSP_ISP_LENGTH, SEEK_END); + if (FAIL == ret) { + GTP_ERROR("[burn_dsp_isp]load firmware dsp_isp fail."); + goto exit_burn_dsp_isp; + } + + + GTP_DEBUG("[burn_dsp_isp]step3:disable wdt,clear cache enable"); + ret = gup_set_ic_msg(client, _bRW_MISCTL__TMR0_EN, 0x00); + if (ret <= 0) { + GTP_ERROR("[burn_dsp_isp]disable wdt fail."); + ret = FAIL; + goto exit_burn_dsp_isp; + } + ret = gup_set_ic_msg(client, _bRW_MISCTL__CACHE_EN, 0x00); + if (ret <= 0) { + GTP_ERROR("[burn_dsp_isp]clear cache enable fail."); + ret = FAIL; + goto exit_burn_dsp_isp; + } + + + GTP_DEBUG("[burn_dsp_isp]step4:hold ss51 & dsp"); + ret = gup_set_ic_msg(client, _rRW_MISCTL__SWRST_B0_, 0x0C); + if (ret <= 0) { + GTP_ERROR("[burn_dsp_isp]hold ss51 & dsp fail."); + ret = FAIL; + goto exit_burn_dsp_isp; + } + + + GTP_DEBUG("[burn_dsp_isp]step5:set boot from sram"); + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOTCTL_B0_, 0x02); + if (ret <= 0) { + GTP_ERROR("[burn_dsp_isp]set boot from sram fail."); + ret = FAIL; + goto exit_burn_dsp_isp; + } + + + GTP_DEBUG("[burn_dsp_isp]step6:software reboot"); + ret = gup_set_ic_msg(client, _bWO_MISCTL__CPU_SWRST_PULSE, 0x01); + if (ret <= 0) { + GTP_ERROR("[burn_dsp_isp]software reboot fail."); + ret = FAIL; + goto exit_burn_dsp_isp; + } + + + GTP_DEBUG("[burn_dsp_isp]step7:select bank2"); + ret = gup_set_ic_msg(client, _bRW_MISCTL__SRAM_BANK, 0x02); + if (ret <= 0) { + GTP_ERROR("[burn_dsp_isp]select bank2 fail."); + ret = FAIL; + goto exit_burn_dsp_isp; + } + + + GTP_DEBUG("[burn_dsp_isp]step8:enable accessing code"); + ret = gup_set_ic_msg(client, _bRW_MISCTL__MEM_CD_EN, 0x01); + if (ret <= 0) { + GTP_ERROR("[burn_dsp_isp]enable accessing code fail."); + ret = FAIL; + goto exit_burn_dsp_isp; + } + + + GTP_DEBUG("[burn_dsp_isp]step9:burn 4k dsp_isp"); + ret = gup_burn_proc(client, fw_dsp_isp, 0xC000, FW_DSP_ISP_LENGTH); + if (FAIL == ret) { + GTP_ERROR("[burn_dsp_isp]burn dsp_isp fail."); + goto exit_burn_dsp_isp; + } + + + GTP_DEBUG("[burn_dsp_isp]step10:set scramble"); + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOT_OPT_B0_, 0x00); + if (ret <= 0) { + GTP_ERROR("[burn_dsp_isp]set scramble fail."); + ret = FAIL; + goto exit_burn_dsp_isp; + } + update_msg.fw_burned_len += FW_DSP_ISP_LENGTH; + GTP_DEBUG("[burn_dsp_isp]Burned length:%d", update_msg.fw_burned_len); + ret = SUCCESS; + +exit_burn_dsp_isp: + kfree(fw_dsp_isp); + return ret; +} + +static u8 gup_burn_fw_ss51(struct i2c_client *client) +{ + u8 *fw_ss51 = NULL; + u8 retry = 0; + s32 ret = 0; + + GTP_INFO("[burn_fw_ss51]Begin burn ss51 firmware---->>"); + + + GTP_DEBUG("[burn_fw_ss51]step1:alloc memory"); + while (retry++ < 5) { + fw_ss51 = (u8 *)kzalloc(FW_SECTION_LENGTH, GFP_KERNEL); + if (fw_ss51 == NULL) { + continue; + } else { + GTP_DEBUG("[burn_fw_ss51]Alloc %dk byte memory success.", (FW_SECTION_LENGTH / 1024)); + break; + } + } + if (retry >= 5) { + GTP_ERROR("[burn_fw_ss51]Alloc memory fail,exit."); + return FAIL; + } + + + + + + + + + + + GTP_INFO("[burn_fw_ss51]Reset first 8K of ss51 to 0xFF."); + GTP_DEBUG("[burn_fw_ss51]step2: reset bank0 0xC000~0xD000"); + memset(fw_ss51, 0xFF, FW_SECTION_LENGTH); + + + GTP_DEBUG("[burn_fw_ss51]step3:clear control flag"); + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOT_CTL_, 0x00); + if (ret <= 0) { + GTP_ERROR("[burn_fw_ss51]clear control flag fail."); + ret = FAIL; + goto exit_burn_fw_ss51; + } + + + GTP_DEBUG("[burn_fw_ss51]step4:burn ss51 firmware section 1"); + ret = gup_burn_fw_section(client, fw_ss51, 0xC000, 0x01); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_ss51]burn ss51 firmware section 1 fail."); + goto exit_burn_fw_ss51; + } + + + GTP_DEBUG("[burn_fw_ss51]step5:load ss51 firmware section 2 file data"); + ret = gup_load_section_file(fw_ss51, FW_SECTION_LENGTH, FW_SECTION_LENGTH, SEEK_SET); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_ss51]load ss51 firmware section 2 fail."); + goto exit_burn_fw_ss51; + } + + + GTP_DEBUG("[burn_fw_ss51]step6:burn ss51 firmware section 2"); + ret = gup_burn_fw_section(client, fw_ss51, 0xE000, 0x02); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_ss51]burn ss51 firmware section 2 fail."); + goto exit_burn_fw_ss51; + } + + + GTP_DEBUG("[burn_fw_ss51]step7:load ss51 firmware section 3 file data"); + ret = gup_load_section_file(fw_ss51, 2 * FW_SECTION_LENGTH, FW_SECTION_LENGTH, SEEK_SET); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_ss51]load ss51 firmware section 3 fail."); + goto exit_burn_fw_ss51; + } + + + GTP_DEBUG("[burn_fw_ss51]step8:burn ss51 firmware section 3"); + ret = gup_burn_fw_section(client, fw_ss51, 0xC000, 0x13); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_ss51]burn ss51 firmware section 3 fail."); + goto exit_burn_fw_ss51; + } + + + GTP_DEBUG("[burn_fw_ss51]step9:load ss51 firmware section 4 file data"); + ret = gup_load_section_file(fw_ss51, 3 * FW_SECTION_LENGTH, FW_SECTION_LENGTH, SEEK_SET); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_ss51]load ss51 firmware section 4 fail."); + goto exit_burn_fw_ss51; + } + + + GTP_DEBUG("[burn_fw_ss51]step10:burn ss51 firmware section 4"); + ret = gup_burn_fw_section(client, fw_ss51, 0xE000, 0x14); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_ss51]burn ss51 firmware section 4 fail."); + goto exit_burn_fw_ss51; + } + + update_msg.fw_burned_len += (FW_SECTION_LENGTH*4); + GTP_DEBUG("[burn_fw_ss51]Burned length:%d", update_msg.fw_burned_len); + ret = SUCCESS; + +exit_burn_fw_ss51: + kfree(fw_ss51); + return ret; +} + +static u8 gup_burn_fw_dsp(struct i2c_client *client) +{ + s32 ret = 0; + u8 *fw_dsp = NULL; + u8 retry = 0; + u8 rd_buf[5]; + + GTP_INFO("[burn_fw_dsp]Begin burn dsp firmware---->>"); + + GTP_DEBUG("[burn_fw_dsp]step1:alloc memory"); + while (retry++ < 5) { + fw_dsp = (u8 *)kzalloc(FW_DSP_LENGTH, GFP_KERNEL); + if (fw_dsp == NULL) { + continue; + } else { + GTP_DEBUG("[burn_fw_dsp]Alloc %dk byte memory success.", (FW_SECTION_LENGTH / 1024)); + break; + } + } + if (retry >= 5) { + GTP_ERROR("[burn_fw_dsp]Alloc memory fail,exit."); + return FAIL; + } + + + GTP_DEBUG("[burn_fw_dsp]step2:load firmware dsp"); + ret = gup_load_section_file(fw_dsp, 4 * FW_SECTION_LENGTH, FW_DSP_LENGTH, SEEK_SET); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_dsp]load firmware dsp fail."); + goto exit_burn_fw_dsp; + } + + + GTP_DEBUG("[burn_fw_dsp]step3:select bank3"); + ret = gup_set_ic_msg(client, _bRW_MISCTL__SRAM_BANK, 0x03); + if (ret <= 0) { + GTP_ERROR("[burn_fw_dsp]select bank3 fail."); + ret = FAIL; + goto exit_burn_fw_dsp; + } + + + GTP_DEBUG("[burn_fw_dsp]step4:hold ss51 & dsp"); + ret = gup_set_ic_msg(client, _rRW_MISCTL__SWRST_B0_, 0x0C); + if (ret <= 0) { + GTP_ERROR("[burn_fw_dsp]hold ss51 & dsp fail."); + ret = FAIL; + goto exit_burn_fw_dsp; + } + + + GTP_DEBUG("[burn_fw_dsp]step5:set scramble"); + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOT_OPT_B0_, 0x00); + if (ret <= 0) { + GTP_ERROR("[burn_fw_dsp]set scramble fail."); + ret = FAIL; + goto exit_burn_fw_dsp; + } + + + GTP_DEBUG("[burn_fw_dsp]step6:release ss51 & dsp"); + ret = gup_set_ic_msg(client, _rRW_MISCTL__SWRST_B0_, 0x04); + if (ret <= 0) { + GTP_ERROR("[burn_fw_dsp]release ss51 & dsp fail."); + ret = FAIL; + goto exit_burn_fw_dsp; + } + + msleep(1); + + + GTP_DEBUG("[burn_fw_dsp]step7:burn 4k dsp firmware"); + ret = gup_burn_proc(client, fw_dsp, 0x9000, FW_DSP_LENGTH); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_dsp]burn fw_section fail."); + goto exit_burn_fw_dsp; + } + + + GTP_DEBUG("[burn_fw_dsp]step8:send burn cmd to move data to flash from sram"); + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOT_CTL_, 0x05); + if (ret <= 0) { + GTP_ERROR("[burn_fw_dsp]send burn cmd fail."); + goto exit_burn_fw_dsp; + } + GTP_DEBUG("[burn_fw_dsp]Wait for the burn is complete......"); + do { + ret = gup_get_ic_msg(client, _rRW_MISCTL__BOOT_CTL_, rd_buf, 1); + if (ret <= 0) { + GTP_ERROR("[burn_fw_dsp]Get burn state fail"); + goto exit_burn_fw_dsp; + } + msleep(10); + + } while (rd_buf[GTP_ADDR_LENGTH]); + + + GTP_DEBUG("[burn_fw_dsp]step9:recall check 4k dsp firmware"); + ret = gup_recall_check(client, fw_dsp, 0x9000, FW_DSP_LENGTH); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_dsp]recall check 4k dsp firmware fail."); + goto exit_burn_fw_dsp; + } + + update_msg.fw_burned_len += FW_DSP_LENGTH; + GTP_DEBUG("[burn_fw_dsp]Burned length:%d", update_msg.fw_burned_len); + ret = SUCCESS; + +exit_burn_fw_dsp: + kfree(fw_dsp); + return ret; +} + +static u8 gup_burn_fw_boot(struct i2c_client *client) +{ + s32 ret = 0; + u8 *fw_boot = NULL; + u8 retry = 0; + u8 rd_buf[5]; + + GTP_INFO("[burn_fw_boot]Begin burn bootloader firmware---->>"); + + + GTP_DEBUG("[burn_fw_boot]step1:Alloc memory"); + while (retry++ < 5) { + fw_boot = (u8 *)kzalloc(FW_BOOT_LENGTH, GFP_KERNEL); + if (fw_boot == NULL) { + continue; + } else { + GTP_DEBUG("[burn_fw_boot]Alloc %dk byte memory success.", (FW_BOOT_LENGTH/1024)); + break; + } + } + if (retry >= 5) { + GTP_ERROR("[burn_fw_boot]Alloc memory fail,exit."); + return FAIL; + } + + + GTP_DEBUG("[burn_fw_boot]step2:load firmware bootloader"); + ret = gup_load_section_file(fw_boot, (4 * FW_SECTION_LENGTH + FW_DSP_LENGTH), FW_BOOT_LENGTH, SEEK_SET); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_boot]load firmware bootcode fail."); + goto exit_burn_fw_boot; + } + + + GTP_DEBUG("[burn_fw_boot]step3:hold ss51 & dsp"); + ret = gup_set_ic_msg(client, _rRW_MISCTL__SWRST_B0_, 0x0C); + if (ret <= 0) { + GTP_ERROR("[burn_fw_boot]hold ss51 & dsp fail."); + ret = FAIL; + goto exit_burn_fw_boot; + } + + + GTP_DEBUG("[burn_fw_boot]step4:set scramble"); + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOT_OPT_B0_, 0x00); + if (ret <= 0) { + GTP_ERROR("[burn_fw_boot]set scramble fail."); + ret = FAIL; + goto exit_burn_fw_boot; + } + + + GTP_DEBUG("[burn_fw_boot]step5:hold ss51 & release dsp"); + ret = gup_set_ic_msg(client, _rRW_MISCTL__SWRST_B0_, 0x04); + if (ret <= 0) { + GTP_ERROR("[burn_fw_boot]release ss51 & dsp fail."); + ret = FAIL; + goto exit_burn_fw_boot; + } + + msleep(1); + + + GTP_DEBUG("[burn_fw_boot]step6:select bank3"); + ret = gup_set_ic_msg(client, _bRW_MISCTL__SRAM_BANK, 0x03); + if (ret <= 0) { + GTP_ERROR("[burn_fw_boot]select bank3 fail."); + ret = FAIL; + goto exit_burn_fw_boot; + } + + + GTP_DEBUG("[burn_fw_boot]step6:burn 2k bootloader firmware"); + ret = gup_burn_proc(client, fw_boot, 0x9000, FW_BOOT_LENGTH); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_boot]burn fw_boot fail."); + goto exit_burn_fw_boot; + } + + + GTP_DEBUG("[burn_fw_boot]step7:send burn cmd to move data to flash from sram"); + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOT_CTL_, 0x06); + if (ret <= 0) { + GTP_ERROR("[burn_fw_boot]send burn cmd fail."); + goto exit_burn_fw_boot; + } + GTP_DEBUG("[burn_fw_boot]Wait for the burn is complete......"); + do { + ret = gup_get_ic_msg(client, _rRW_MISCTL__BOOT_CTL_, rd_buf, 1); + if (ret <= 0) { + GTP_ERROR("[burn_fw_boot]Get burn state fail"); + goto exit_burn_fw_boot; + } + msleep(10); + + } while (rd_buf[GTP_ADDR_LENGTH]); + + + GTP_DEBUG("[burn_fw_boot]step8:recall check 2k bootloader firmware"); + ret = gup_recall_check(client, fw_boot, 0x9000, FW_BOOT_LENGTH); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_boot]recall check 2k bootcode firmware fail."); + goto exit_burn_fw_boot; + } + + update_msg.fw_burned_len += FW_BOOT_LENGTH; + GTP_DEBUG("[burn_fw_boot]Burned length:%d", update_msg.fw_burned_len); + ret = SUCCESS; + +exit_burn_fw_boot: + kfree(fw_boot); + return ret; +} +static u8 gup_burn_fw_boot_isp(struct i2c_client *client) +{ + s32 ret = 0; + u8 *fw_boot_isp = NULL; + u8 retry = 0; + u8 rd_buf[5]; + + if (update_msg.fw_burned_len >= update_msg.fw_total_len) { + GTP_DEBUG("No need to upgrade the boot_isp code!"); + return SUCCESS; + } + GTP_INFO("[burn_fw_boot_isp]Begin burn boot_isp firmware---->>"); + + + GTP_DEBUG("[burn_fw_boot_isp]step1:Alloc memory"); + while (retry++ < 5) { + fw_boot_isp = (u8 *)kzalloc(FW_BOOT_ISP_LENGTH, GFP_KERNEL); + if (fw_boot_isp == NULL) { + continue; + } else { + GTP_DEBUG("[burn_fw_boot_isp]Alloc %dk byte memory success.", (FW_BOOT_ISP_LENGTH/1024)); + break; + } + } + if (retry >= 5) { + GTP_ERROR("[burn_fw_boot_isp]Alloc memory fail,exit."); + return FAIL; + } + + + GTP_DEBUG("[burn_fw_boot_isp]step2:load firmware bootloader isp"); + + ret = gup_load_section_file(fw_boot_isp, (update_msg.fw_burned_len - FW_DSP_ISP_LENGTH), FW_BOOT_ISP_LENGTH, SEEK_SET); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_boot_isp]load firmware boot_isp fail."); + goto exit_burn_fw_boot_isp; + } + + + GTP_DEBUG("[burn_fw_boot_isp]step3:hold ss51 & dsp"); + ret = gup_set_ic_msg(client, _rRW_MISCTL__SWRST_B0_, 0x0C); + if (ret <= 0) { + GTP_ERROR("[burn_fw_boot_isp]hold ss51 & dsp fail."); + ret = FAIL; + goto exit_burn_fw_boot_isp; + } + + + GTP_DEBUG("[burn_fw_boot_isp]step4:set scramble"); + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOT_OPT_B0_, 0x00); + if (ret <= 0) { + GTP_ERROR("[burn_fw_boot_isp]set scramble fail."); + ret = FAIL; + goto exit_burn_fw_boot_isp; + } + + + + GTP_DEBUG("[burn_fw_boot_isp]step5:hold ss51 & release dsp"); + ret = gup_set_ic_msg(client, _rRW_MISCTL__SWRST_B0_, 0x04); + if (ret <= 0) { + GTP_ERROR("[burn_fw_boot_isp]release ss51 & dsp fail."); + ret = FAIL; + goto exit_burn_fw_boot_isp; + } + + msleep(1); + + + GTP_DEBUG("[burn_fw_boot_isp]step6:select bank3"); + ret = gup_set_ic_msg(client, _bRW_MISCTL__SRAM_BANK, 0x03); + if (ret <= 0) { + GTP_ERROR("[burn_fw_boot_isp]select bank3 fail."); + ret = FAIL; + goto exit_burn_fw_boot_isp; + } + + + GTP_DEBUG("[burn_fw_boot_isp]step7:burn 2k bootloader firmware"); + ret = gup_burn_proc(client, fw_boot_isp, 0x9000, FW_BOOT_ISP_LENGTH); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_boot_isp]burn fw_section fail."); + goto exit_burn_fw_boot_isp; + } + + + GTP_DEBUG("[burn_fw_boot_isp]step8:send burn cmd to move data to flash from sram"); + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOT_CTL_, 0x07); + if (ret <= 0) { + GTP_ERROR("[burn_fw_boot_isp]send burn cmd fail."); + goto exit_burn_fw_boot_isp; + } + GTP_DEBUG("[burn_fw_boot_isp]Wait for the burn is complete......"); + do { + ret = gup_get_ic_msg(client, _rRW_MISCTL__BOOT_CTL_, rd_buf, 1); + if (ret <= 0) { + GTP_ERROR("[burn_fw_boot_isp]Get burn state fail"); + goto exit_burn_fw_boot_isp; + } + msleep(10); + + } while (rd_buf[GTP_ADDR_LENGTH]); + + + GTP_DEBUG("[burn_fw_boot_isp]step9:recall check 2k bootloader firmware"); + ret = gup_recall_check(client, fw_boot_isp, 0x9000, FW_BOOT_ISP_LENGTH); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_boot_isp]recall check 2k bootcode_isp firmware fail."); + goto exit_burn_fw_boot_isp; + } + + update_msg.fw_burned_len += FW_BOOT_ISP_LENGTH; + GTP_DEBUG("[burn_fw_boot_isp]Burned length:%d", update_msg.fw_burned_len); + ret = SUCCESS; + +exit_burn_fw_boot_isp: + kfree(fw_boot_isp); + return ret; +} + +static u8 gup_burn_fw_link(struct i2c_client *client) +{ + s32 ret = 0; + u8 *fw_link = NULL; + u8 retry = 0; + u32 offset; + + if (update_msg.fw_burned_len >= update_msg.fw_total_len) { + GTP_DEBUG("No need to upgrade the link code!"); + return SUCCESS; + } + GTP_INFO("[burn_fw_link]Begin burn link firmware---->>"); + + + GTP_DEBUG("[burn_fw_link]step1:Alloc memory"); + while (retry++ < 5) { + fw_link = (u8 *)kzalloc(FW_SECTION_LENGTH, GFP_KERNEL); + if (fw_link == NULL) { + continue; + } else { + GTP_DEBUG("[burn_fw_link]Alloc %dk byte memory success.", (FW_SECTION_LENGTH/1024)); + break; + } + } + if (retry >= 5) { + GTP_ERROR("[burn_fw_link]Alloc memory fail,exit."); + return FAIL; + } + + + GTP_DEBUG("[burn_fw_link]step2:load firmware link section 1"); + offset = update_msg.fw_burned_len - FW_DSP_ISP_LENGTH; + ret = gup_load_section_file(fw_link, offset, FW_SECTION_LENGTH, SEEK_SET); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_link]load firmware link section 1 fail."); + goto exit_burn_fw_link; + } + + + GTP_DEBUG("[burn_fw_link]step3:burn link firmware section 1"); + ret = gup_burn_fw_gwake_section(client, fw_link, 0x9000, FW_SECTION_LENGTH, 0x38); + + if (FAIL == ret) { + GTP_ERROR("[burn_fw_link]burn link firmware section 1 fail."); + goto exit_burn_fw_link; + } + + + GTP_DEBUG("[burn_fw_link]step4:load link firmware section 2 file data"); + offset += FW_SECTION_LENGTH; + ret = gup_load_section_file(fw_link, offset, FW_GLINK_LENGTH - FW_SECTION_LENGTH, SEEK_SET); + + if (FAIL == ret) { + GTP_ERROR("[burn_fw_link]load link firmware section 2 fail."); + goto exit_burn_fw_link; + } + + + GTP_DEBUG("[burn_fw_link]step4:burn link firmware section 2"); + ret = gup_burn_fw_gwake_section(client, fw_link, 0x9000, FW_GLINK_LENGTH - FW_SECTION_LENGTH, 0x39); + + if (FAIL == ret) { + GTP_ERROR("[burn_fw_link]burn link firmware section 2 fail."); + goto exit_burn_fw_link; + } + + update_msg.fw_burned_len += FW_GLINK_LENGTH; + GTP_DEBUG("[burn_fw_link]Burned length:%d", update_msg.fw_burned_len); + ret = SUCCESS; + +exit_burn_fw_link: + kfree(fw_link); + return ret; +} + +static u8 gup_burn_fw_gwake_section(struct i2c_client *client, u8 *fw_section, u16 start_addr, u32 len, u8 bank_cmd) +{ + s32 ret = 0; + u8 rd_buf[5]; + + + ret = gup_set_ic_msg(client, _rRW_MISCTL__SWRST_B0_, 0x0C); + if (ret <= 0) { + GTP_ERROR("[burn_fw_app_section]hold ss51 & dsp fail."); + return FAIL; + } + + + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOT_OPT_B0_, 0x00); + if (ret <= 0) { + GTP_ERROR("[burn_fw_app_section]set scramble fail."); + return FAIL; + } + + + ret = gup_set_ic_msg(client, _rRW_MISCTL__SWRST_B0_, 0x04); + if (ret <= 0) { + GTP_ERROR("[burn_fw_app_section]hold ss51 & release dsp fail."); + return FAIL; + } + + msleep(1); + + + ret = gup_set_ic_msg(client, _bRW_MISCTL__SRAM_BANK, (bank_cmd >> 4)&0x0F); + if (ret <= 0) { + GTP_ERROR("[burn_fw_section]select bank %d fail.", (bank_cmd >> 4)&0x0F); + return FAIL; + } + + + ret = gup_burn_proc(client, fw_section, start_addr, len); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_app_section]burn fw_section fail."); + return FAIL; + } + + + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOT_CTL_, bank_cmd&0x0F); + if (ret <= 0) { + GTP_ERROR("[burn_fw_app_section]send burn cmd fail."); + return FAIL; + } + GTP_DEBUG("[burn_fw_section]Wait for the burn is complete......"); + do { + ret = gup_get_ic_msg(client, _rRW_MISCTL__BOOT_CTL_, rd_buf, 1); + if (ret <= 0) { + GTP_ERROR("[burn_fw_app_section]Get burn state fail"); + return FAIL; + } + msleep(10); + + } while (rd_buf[GTP_ADDR_LENGTH]); + + + ret = gup_recall_check(client, fw_section, start_addr, len); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_app_section]recall check %dk firmware fail.", len/1024); + return FAIL; + } + + return SUCCESS; +} + +static u8 gup_burn_fw_gwake(struct i2c_client *client) +{ + u8 *fw_gwake = NULL; + u8 retry = 0; + s32 ret = 0; + u16 start_index = 4*FW_SECTION_LENGTH+FW_DSP_LENGTH+FW_BOOT_LENGTH + FW_BOOT_ISP_LENGTH + FW_GLINK_LENGTH; + + + if (update_msg.fw_burned_len >= update_msg.fw_total_len) { + GTP_DEBUG("No need to upgrade the gwake code!"); + return SUCCESS; + } + + GTP_INFO("[burn_fw_gwake]Begin burn gwake firmware---->>"); + + + GTP_DEBUG("[burn_fw_gwake]step1:alloc memory"); + while (retry++ < 5) { + fw_gwake = (u8 *)kzalloc(FW_SECTION_LENGTH, GFP_KERNEL); + if (fw_gwake == NULL) { + continue; + } else { + GTP_DEBUG("[burn_fw_gwake]Alloc %dk byte memory success.", (FW_SECTION_LENGTH/1024)); + break; + } + } + if (retry >= 5) { + GTP_ERROR("[burn_fw_gwake]Alloc memory fail,exit."); + return FAIL; + } + + + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOT_CTL_, 0x00); + if (ret <= 0) { + GTP_ERROR("[burn_fw_finish]clear control flag fail."); + goto exit_burn_fw_gwake; + } + + + GTP_DEBUG("[burn_fw_gwake]step2:load app_code firmware section 1 file data"); + ret = gup_load_section_file(fw_gwake, start_index, FW_SECTION_LENGTH, SEEK_SET); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_gwake]load app_code firmware section 1 fail."); + goto exit_burn_fw_gwake; + } + + + GTP_DEBUG("[burn_fw_gwake]step3:burn app_code firmware section 1"); + ret = gup_burn_fw_gwake_section(client, fw_gwake, 0x9000, FW_SECTION_LENGTH, 0x3A); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_gwake]burn app_code firmware section 1 fail."); + goto exit_burn_fw_gwake; + } + + + GTP_DEBUG("[burn_fw_gwake]step5:load app_code firmware section 2 file data"); + ret = gup_load_section_file(fw_gwake, start_index+FW_SECTION_LENGTH, FW_SECTION_LENGTH, SEEK_SET); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_gwake]load app_code firmware section 2 fail."); + goto exit_burn_fw_gwake; + } + + + GTP_DEBUG("[burn_fw_gwake]step6:burn app_code firmware section 2"); + ret = gup_burn_fw_gwake_section(client, fw_gwake, 0x9000, FW_SECTION_LENGTH, 0x3B); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_gwake]burn app_code firmware section 2 fail."); + goto exit_burn_fw_gwake; + } + + + GTP_DEBUG("[burn_fw_gwake]step7:load app_code firmware section 3 file data"); + ret = gup_load_section_file(fw_gwake, start_index+2*FW_SECTION_LENGTH, FW_SECTION_LENGTH, SEEK_SET); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_gwake]load app_code firmware section 3 fail."); + goto exit_burn_fw_gwake; + } + + + GTP_DEBUG("[burn_fw_gwake]step8:burn app_code firmware section 3"); + ret = gup_burn_fw_gwake_section(client, fw_gwake, 0x9000, FW_SECTION_LENGTH, 0x3C); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_gwake]burn app_code firmware section 3 fail."); + goto exit_burn_fw_gwake; + } + + + GTP_DEBUG("[burn_fw_gwake]step9:load app_code firmware section 4 file data"); + ret = gup_load_section_file(fw_gwake, start_index + 3*FW_SECTION_LENGTH, FW_SECTION_LENGTH, SEEK_SET); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_gwake]load app_code firmware section 4 fail."); + goto exit_burn_fw_gwake; + } + + + GTP_DEBUG("[burn_fw_gwake]step10:burn app_code firmware section 4"); + ret = gup_burn_fw_gwake_section(client, fw_gwake, 0x9000, FW_SECTION_LENGTH, 0x3D); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_gwake]burn app_code firmware section 4 fail."); + goto exit_burn_fw_gwake; + } + + + GTP_DEBUG("[burn_fw_gwake]Burned length:%d", update_msg.fw_burned_len); + ret = SUCCESS; + +exit_burn_fw_gwake: + kfree(fw_gwake); + return ret; +} + +static u8 gup_burn_fw_finish(struct i2c_client *client) +{ + u8 *fw_ss51 = NULL; + u8 retry = 0; + s32 ret = 0; + + GTP_INFO("[burn_fw_finish]burn first 8K of ss51 and finish update."); + + GTP_DEBUG("[burn_fw_finish]step1:alloc memory"); + while (retry++ < 5) { + fw_ss51 = (u8 *)kzalloc(FW_SECTION_LENGTH, GFP_KERNEL); + if (fw_ss51 == NULL) { + continue; + } else { + GTP_DEBUG("[burn_fw_finish]Alloc %dk byte memory success.", (FW_SECTION_LENGTH/1024)); + break; + } + } + if (retry >= 5) { + GTP_ERROR("[burn_fw_finish]Alloc memory fail,exit."); + return FAIL; + } + + GTP_DEBUG("[burn_fw_finish]step2: burn ss51 first 8K."); + ret = gup_load_section_file(fw_ss51, 0, FW_SECTION_LENGTH, SEEK_SET); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_finish]load ss51 firmware section 1 fail."); + goto exit_burn_fw_finish; + } + + GTP_DEBUG("[burn_fw_finish]step3:clear control flag"); + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOT_CTL_, 0x00); + if (ret <= 0) { + GTP_ERROR("[burn_fw_finish]clear control flag fail."); + goto exit_burn_fw_finish; + } + + GTP_DEBUG("[burn_fw_finish]step4:burn ss51 firmware section 1"); + ret = gup_burn_fw_section(client, fw_ss51, 0xC000, 0x01); + if (FAIL == ret) { + GTP_ERROR("[burn_fw_finish]burn ss51 firmware section 1 fail."); + goto exit_burn_fw_finish; + } + + + GTP_DEBUG("[burn_fw_finish]step5:enable download DSP code "); + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOT_CTL_, 0x99); + if (ret <= 0) { + GTP_ERROR("[burn_fw_finish]enable download DSP code fail."); + goto exit_burn_fw_finish; + } + + + GTP_DEBUG("[burn_fw_finish]step6:release ss51 & hold dsp"); + ret = gup_set_ic_msg(client, _rRW_MISCTL__SWRST_B0_, 0x08); + if (ret <= 0) { + GTP_ERROR("[burn_fw_finish]release ss51 & hold dsp fail."); + goto exit_burn_fw_finish; + } + + if (fw_ss51) { + kfree(fw_ss51); + } + return SUCCESS; + +exit_burn_fw_finish: + if (fw_ss51) { + kfree(fw_ss51); + } + return FAIL; +} +s32 gup_update_proc(void *dir) +{ + s32 ret = 0; + s32 update_ret = FAIL; + u8 retry = 0; + st_fw_head fw_head; + struct goodix_ts_data *ts = NULL; + + GTP_DEBUG("[update_proc]Begin update ......"); + + ts = i2c_get_clientdata(i2c_connect_client); + +#if GTP_AUTO_UPDATE + if (searching_file) { + u8 timeout = 0; + searching_file = 0; + GTP_INFO("Exiting searching .bin update file..."); + while ((show_len != 200) && (show_len != 100) && (timeout++ < 100)) { + msleep(100); + } + } +#endif + + show_len = 1; + total_len = 100; + +#if GTP_COMPATIBLE_MODE + if (CHIP_TYPE_GT9F == ts->chip_type) { + return gup_fw_download_proc(dir, GTP_FL_FW_BURN); + } +#endif + + update_msg.file = NULL; + ret = gup_check_update_file(i2c_connect_client, &fw_head, (u8 *)dir); + if (FAIL == ret) { + GTP_ERROR("[update_proc]check update file fail."); + goto file_fail; + } + + ret = gup_get_ic_fw_msg(i2c_connect_client); + if (FAIL == ret) { + GTP_ERROR("[update_proc]get ic message fail."); + goto file_fail; + } + + ret = gup_enter_update_judge(&fw_head); + if (FAIL == ret) { + GTP_ERROR("[update_proc]Check *.bin file fail."); + goto file_fail; + } + + ts->enter_update = 1; + gtp_irq_disable(ts); +#if GTP_ESD_PROTECT + gtp_esd_switch(ts->client, SWITCH_OFF); +#endif + ret = gup_enter_update_mode(i2c_connect_client); + if (FAIL == ret) { + GTP_ERROR("[update_proc]enter update mode fail."); + goto update_fail; + } + + while (retry++ < 5) { + show_len = 10; + total_len = 100; + update_msg.fw_burned_len = 0; + ret = gup_burn_dsp_isp(i2c_connect_client); + if (FAIL == ret) { + GTP_ERROR("[update_proc]burn dsp isp fail."); + continue; + } + + show_len = 20; + ret = gup_burn_fw_gwake(i2c_connect_client); + if (FAIL == ret) { + GTP_ERROR("[update_proc]burn app_code firmware fail."); + continue; + } + + show_len = 30; + ret = gup_burn_fw_ss51(i2c_connect_client); + if (FAIL == ret) { + GTP_ERROR("[update_proc]burn ss51 firmware fail."); + continue; + } + + show_len = 40; + ret = gup_burn_fw_dsp(i2c_connect_client); + if (FAIL == ret) { + GTP_ERROR("[update_proc]burn dsp firmware fail."); + continue; + } + + show_len = 50; + ret = gup_burn_fw_boot(i2c_connect_client); + if (FAIL == ret) { + GTP_ERROR("[update_proc]burn bootloader firmware fail."); + continue; + } + show_len = 60; + + ret = gup_burn_fw_boot_isp(i2c_connect_client); + if (FAIL == ret) { + GTP_ERROR("[update_proc]burn boot_isp firmware fail."); + continue; + } + + show_len = 70; + ret = gup_burn_fw_link(i2c_connect_client); + if (FAIL == ret) { + GTP_ERROR("[update_proc]burn link firmware fail."); + continue; + } + + show_len = 80; + ret = gup_burn_fw_finish(i2c_connect_client); + if (FAIL == ret) { + GTP_ERROR("[update_proc]burn finish fail."); + continue; + } + show_len = 90; + GTP_INFO("[update_proc]UPDATE SUCCESS."); + retry = 0; + break; + } + + if (retry >= 5) { + GTP_ERROR("[update_proc]retry timeout,UPDATE FAIL."); + update_ret = FAIL; + } else { + update_ret = SUCCESS; + } + +update_fail: + GTP_DEBUG("[update_proc]leave update mode."); + gup_leave_update_mode(); + + msleep(100); + +#if WT_ADD_CTP_INFO + gtp_hardwareinfo_set(); +#endif + + if (SUCCESS == update_ret) { + if (ts->fw_error) { + GTP_INFO("firmware error auto update, resent config!"); + gup_init_panel(ts); + } else { + GTP_DEBUG("[update_proc]send config."); + ret = gtp_send_cfg(i2c_connect_client); + if (ret < 0) { + GTP_ERROR("[update_proc]send config fail."); + } else { + msleep(100); + } + } + } + ts->enter_update = 0; + gtp_irq_enable(ts); + +#if GTP_ESD_PROTECT + gtp_esd_switch(ts->client, SWITCH_ON); +#endif + +file_fail: + if (update_msg.file && !IS_ERR(update_msg.file)) { + if (update_msg.old_fs) { + set_fs(update_msg.old_fs); + } + filp_close(update_msg.file, NULL); + } +#if (GTP_AUTO_UPDATE && GTP_AUTO_UPDATE_CFG && GTP_HEADER_FW_UPDATE) + if (NULL == dir) { + gup_search_file(AUTO_SEARCH_CFG); + if (got_file_flag & CFG_FILE_READY) { + ret = gup_update_config(i2c_connect_client); + if (ret <= 0) { + GTP_ERROR("Update config failed."); + } + _CLOSE_FILE(update_msg.cfg_file); + msleep(500); + } + } +#endif + + total_len = 100; + if (SUCCESS == update_ret) { + show_len = 100; + return SUCCESS; + } else { + show_len = 200; + return FAIL; + } +} + +#if GTP_AUTO_UPDATE +u8 gup_init_update_proc(struct goodix_ts_data *ts) +{ + struct task_struct *thread = NULL; + + GTP_INFO("Ready to run update thread."); + +#if GTP_COMPATIBLE_MODE + if (CHIP_TYPE_GT9F == ts->chip_type) { + thread = kthread_run(gup_update_proc, "update", "fl update"); + } else +#endif + { + thread = kthread_run(gup_update_proc, (void *)NULL, "guitar_update"); + } + if (IS_ERR(thread)) { + GTP_ERROR("Failed to create update thread.\n"); + return -EPERM; + } + + return 0; +} +#endif + + + +#define FW_DOWNLOAD_LENGTH 0x4000 +#define FW_SS51_SECTION_LEN 0x2000 +#define FL_PACK_SIZE 1024 +#define GUP_FW_CHK_SIZE FL_PACK_SIZE + +#define FL_UPDATE_PATH "/data/_fl_update_.bin" +#define FL_UPDATE_PATH_SD "/sdcard/_fl_update_.bin" + +#define PULSE_LENGTH (200) +#define INIT_CLK_DAC (50) +#define MAX_CLK_DAC (120) +#define CLK_AVG_TIME (1) +#define MILLION 1000000 + +#define _wRW_MISCTL__RG_DMY 0x4282 +#define _bRW_MISCTL__RG_OSC_CALIB 0x4268 +#define _fRW_MISCTL__GIO0 0x41e9 +#define _fRW_MISCTL__GIO1 0x41ed +#define _fRW_MISCTL__GIO2 0x41f1 +#define _fRW_MISCTL__GIO3 0x41f5 +#define _fRW_MISCTL__GIO4 0x41f9 +#define _fRW_MISCTL__GIO5 0x41fd +#define _fRW_MISCTL__GIO6 0x4201 +#define _fRW_MISCTL__GIO7 0x4205 +#define _fRW_MISCTL__GIO8 0x4209 +#define _fRW_MISCTL__GIO9 0x420d +#define _fRW_MISCTL__MEA 0x41a0 +#define _bRW_MISCTL__MEA_MODE 0x41a1 +#define _wRW_MISCTL__MEA_MAX_NUM 0x41a4 +#define _dRO_MISCTL__MEA_VAL 0x41b0 +#define _bRW_MISCTL__MEA_SRCSEL 0x41a3 +#define _bRO_MISCTL__MEA_RDY 0x41a8 +#define _rRW_MISCTL__ANA_RXADC_B0_ 0x4250 +#define _bRW_MISCTL__RG_LDO_A18_PWD 0x426f +#define _bRW_MISCTL__RG_BG_PWD 0x426a +#define _bRW_MISCTL__RG_CLKGEN_PWD 0x4269 +#define _fRW_MISCTL__RG_RXADC_PWD 0x426a +#define _bRW_MISCTL__OSC_CK_SEL 0x4030 +#define _rRW_MISCTL_RG_DMY83 0x4283 +#define _rRW_MISCTL__GIO1CTL_B2_ 0x41ee +#define _rRW_MISCTL__GIO1CTL_B1_ 0x41ed + + +#if GTP_COMPATIBLE_MODE + +u8 i2c_opr_buf[GTP_ADDR_LENGTH + FL_PACK_SIZE] = {0}; +u8 chk_cmp_buf[FL_PACK_SIZE] = {0}; + +extern s32 gtp_fw_startup(struct i2c_client *client); +static u8 gup_download_fw_dsp(struct i2c_client *client, u8 dwn_mode); +static s32 gup_burn_fw_proc(struct i2c_client *client, u16 start_addr, s32 start_index, s32 burn_len); +static s32 gup_check_and_repair(struct i2c_client *client, u16 start_addr, s32 start_index, s32 chk_len); + + +u8 gup_check_fs_mounted(char *path_name) +{ + struct path root_path; + struct path path; + int err = -1; + err = kern_path("/", LOOKUP_FOLLOW, &root_path); + + if (err) { + GTP_DEBUG("\"/\" NOT Mounted: %d", err); + return FAIL; + } + err = kern_path(path_name, LOOKUP_FOLLOW, &path); + + if (err) { + GTP_DEBUG("%s NOT Mounted: %d", path_name, err); + err = FAIL; + goto exit_chk; + } + + if (path.mnt->mnt_sb == root_path.mnt->mnt_sb) { + err = FAIL; + } else { + err = SUCCESS; + } + + path_put(&path); +exit_chk: + path_put(&root_path); + return err; +} + +s32 i2c_write_bytes(struct i2c_client *client, u16 addr, u8 *buf, s32 len) +{ + s32 ret = 0; + s32 write_bytes = 0; + s32 retry = 0; + u8 *tx_buf = buf; + + while (len > 0) { + i2c_opr_buf[0] = (u8)(addr >> 8); + i2c_opr_buf[1] = (u8)(addr & 0xFF); + if (len > FL_PACK_SIZE) { + write_bytes = FL_PACK_SIZE; + } else { + write_bytes = len; + } + memcpy(i2c_opr_buf + 2, tx_buf, write_bytes); + for (retry = 0; retry < 5; ++retry) { + ret = gup_i2c_write(client, i2c_opr_buf, write_bytes + GTP_ADDR_LENGTH); + if (ret == 1) { + break; + } + } + if (retry >= 5) { + GTP_ERROR("retry timeout, I2C write 0x%04X %d bytes failed!", addr, write_bytes); + return -EPERM; + } + addr += write_bytes; + len -= write_bytes; + tx_buf += write_bytes; + } + + return 1; +} + +s32 i2c_read_bytes(struct i2c_client *client, u16 addr, u8 *buf, s32 len) +{ + s32 ret = 0; + s32 read_bytes = 0; + s32 retry = 0; + u8 *tx_buf = buf; + + while (len > 0) { + i2c_opr_buf[0] = (u8)(addr >> 8); + i2c_opr_buf[1] = (u8)(addr & 0xFF); + if (len > FL_PACK_SIZE) { + read_bytes = FL_PACK_SIZE; + } else { + read_bytes = len; + } + for (retry = 0; retry < 5; ++retry) { + ret = gup_i2c_read(client, i2c_opr_buf, read_bytes + GTP_ADDR_LENGTH); + if (ret == 2) { + break; + } + } + if (retry >= 5) { + GTP_ERROR("retry timeout, I2C read 0x%04X %d bytes failed!", addr, read_bytes); + return -EPERM; + } + memcpy(tx_buf, i2c_opr_buf + 2, read_bytes); + addr += read_bytes; + len -= read_bytes; + tx_buf += read_bytes; + } + return 2; +} + + + + + +static void gup_bit_write(s32 addr, s32 bit, s32 val) +{ + u8 buf; + i2c_read_bytes(i2c_connect_client, addr, &buf, 1); + + buf = (buf & (~((u8)1 << bit))) | ((u8)val << bit); + + i2c_write_bytes(i2c_connect_client, addr, &buf, 1); +} + +static void gup_clk_count_init(s32 bCh, s32 bCNT) +{ + u8 buf; + + + gup_bit_write(_fRW_MISCTL__MEA, 0, 0); + + gup_bit_write(_fRW_MISCTL__MEA, 1, 1); + + buf = 0; + i2c_write_bytes(i2c_connect_client, _bRW_MISCTL__MEA_MODE, &buf, 1); + + buf = 8 + bCh; + i2c_write_bytes(i2c_connect_client, _bRW_MISCTL__MEA_SRCSEL, &buf, 1); + + buf = bCNT; + i2c_write_bytes(i2c_connect_client, _wRW_MISCTL__MEA_MAX_NUM, &buf, 1); + + gup_bit_write(_fRW_MISCTL__MEA, 1, 0); + + gup_bit_write(_fRW_MISCTL__MEA, 0, 1); +} + +static u32 gup_clk_count_get(void) +{ + s32 ready = 0; + s32 temp; + s8 buf[4]; + + while ((ready == 0)) { + i2c_read_bytes(i2c_connect_client, _bRO_MISCTL__MEA_RDY, buf, 1); + ready = buf[0]; + } + + msleep(50); + + + gup_bit_write(_fRW_MISCTL__MEA, 0, 0); + i2c_read_bytes(i2c_connect_client, _dRO_MISCTL__MEA_VAL, buf, 4); + GTP_DEBUG("Clk_count 0: %2X", buf[0]); + GTP_DEBUG("Clk_count 1: %2X", buf[1]); + GTP_DEBUG("Clk_count 2: %2X", buf[2]); + GTP_DEBUG("Clk_count 3: %2X", buf[3]); + + temp = (s32)buf[0] + ((s32)buf[1] << 8) + ((s32)buf[2] << 16) + ((s32)buf[3] << 24); + GTP_INFO("Clk_count : %d", temp); + return temp; +} +u8 gup_clk_dac_setting(int dac) +{ + s8 buf1, buf2; + + i2c_read_bytes(i2c_connect_client, _wRW_MISCTL__RG_DMY, &buf1, 1); + i2c_read_bytes(i2c_connect_client, _bRW_MISCTL__RG_OSC_CALIB, &buf2, 1); + + buf1 = (buf1 & 0xFFCF) | ((dac & 0x03) << 4); + buf2 = (dac >> 2) & 0x3f; + + i2c_write_bytes(i2c_connect_client, _wRW_MISCTL__RG_DMY, &buf1, 1); + i2c_write_bytes(i2c_connect_client, _bRW_MISCTL__RG_OSC_CALIB, &buf2, 1); + + return 0; +} + +static u8 gup_clk_calibration_pin_select(s32 bCh) +{ + s32 i2c_addr; + + switch (bCh) { + case 0: + i2c_addr = _fRW_MISCTL__GIO0; + break; + + case 1: + i2c_addr = _fRW_MISCTL__GIO1; + break; + + case 2: + i2c_addr = _fRW_MISCTL__GIO2; + break; + + case 3: + i2c_addr = _fRW_MISCTL__GIO3; + break; + + case 4: + i2c_addr = _fRW_MISCTL__GIO4; + break; + + case 5: + i2c_addr = _fRW_MISCTL__GIO5; + break; + + case 6: + i2c_addr = _fRW_MISCTL__GIO6; + break; + + case 7: + i2c_addr = _fRW_MISCTL__GIO7; + break; + + case 8: + i2c_addr = _fRW_MISCTL__GIO8; + break; + + case 9: + i2c_addr = _fRW_MISCTL__GIO9; + break; + } + + gup_bit_write(i2c_addr, 1, 0); + + return 0; +} + +void gup_output_pulse(int t) +{ + unsigned long flags; + + + GTP_GPIO_OUTPUT(gtp_int_gpio, 0); + msleep(10); + + local_irq_save(flags); + + GTP_GPIO_OUTPUT(gtp_int_gpio, 1); + msleep(50); + GTP_GPIO_OUTPUT(gtp_int_gpio, 0); + msleep(t - 50); + GTP_GPIO_OUTPUT(gtp_int_gpio, 1); + + local_irq_restore(flags); + + msleep(20); + GTP_GPIO_OUTPUT(gtp_int_gpio, 0); +} + +static void gup_sys_clk_init(void) +{ + u8 buf; + + + gup_bit_write(_rRW_MISCTL__ANA_RXADC_B0_, 5, 0); + + buf = 0; + i2c_write_bytes(i2c_connect_client, _bRW_MISCTL__RG_LDO_A18_PWD, &buf, 1); + + buf = 0; + i2c_write_bytes(i2c_connect_client, _bRW_MISCTL__RG_BG_PWD, &buf, 1); + + buf = 0; + i2c_write_bytes(i2c_connect_client, _bRW_MISCTL__RG_CLKGEN_PWD, &buf, 1); + + gup_bit_write(_rRW_MISCTL__ANA_RXADC_B0_, 0, 0); + + gup_bit_write(_rRW_MISCTL__ANA_RXADC_B0_, 1, 0); + + + buf = 1; + i2c_write_bytes(i2c_connect_client, _bRW_MISCTL__OSC_CK_SEL, &buf, 1); +} + +s32 gup_clk_calibration(void) +{ + u8 buf; + + s32 i; + struct timeval start, end; + s32 count; + s32 count_ref; + s32 sec; + s32 usec; + + struct goodix_ts_data *ts; + + buf = 0x0C; + i2c_write_bytes(i2c_connect_client, _rRW_MISCTL__SWRST_B0_, &buf, 1); + + + gup_bit_write(_rRW_MISCTL_RG_DMY83, 7, 0); + + + gup_bit_write(_rRW_MISCTL__GIO1CTL_B2_, 0, 0); + + + gup_bit_write(_rRW_MISCTL__GIO1CTL_B1_, 1, 0); + + + + + + GTP_INFO("CLK calibration GO"); + gup_sys_clk_init(); + gup_clk_calibration_pin_select(1); + + GTP_GPIO_OUTPUT(gtp_int_gpio, 0); + + ts = i2c_get_clientdata(i2c_connect_client); + + for (i = INIT_CLK_DAC; i < MAX_CLK_DAC; i++) { + GTP_INFO("CLK calibration DAC %d", i); + + if (ts->gtp_is_suspend) { + i = 72; + break; + } + + gup_clk_dac_setting(i); + gup_clk_count_init(1, CLK_AVG_TIME); + + #if 0 + gup_output_pulse(PULSE_LENGTH); + count = gup_clk_count_get(); + + if (count > PULSE_LENGTH * 60) { + break; + } + + #else + GTP_GPIO_OUTPUT(gtp_int_gpio, 0); + + + do_gettimeofday(&start); + GTP_GPIO_OUTPUT(gtp_int_gpio, 1); + + + msleep(1); + GTP_GPIO_OUTPUT(gtp_int_gpio, 0); + msleep(1); + + + do_gettimeofday(&end); + GTP_GPIO_OUTPUT(gtp_int_gpio, 1); + + + count = gup_clk_count_get(); + msleep(20); + GTP_GPIO_OUTPUT(gtp_int_gpio, 0); + + usec = end.tv_usec - start.tv_usec; + sec = end.tv_sec - start.tv_sec; + count_ref = 60 * (usec+ sec * MILLION); + + GTP_DEBUG("== time %d, %d, %d", sec, usec, count_ref); + + if (count > count_ref) { + GTP_DEBUG("== count_diff %d", count - count_ref); + break; + } + + #endif + } + + + + gtp_reset_guitar(i2c_connect_client, 20); + +#if 0 + + buf = 0x00; + i2c_write_bytes(i2c_connect_client, 0x41FA, &buf, 1); + buf = 0x00; + i2c_write_bytes(i2c_connect_client, 0x4104, &buf, 1); + buf = 0x00; + i2c_write_bytes(i2c_connect_client, 0x4105, &buf, 1); + buf = 0x00; + i2c_write_bytes(i2c_connect_client, 0x4106, &buf, 1); + buf = 0x01; + i2c_write_bytes(i2c_connect_client, 0x4107, &buf, 1); + buf = 0x06; + i2c_write_bytes(i2c_connect_client, 0x41F8, &buf, 1); + buf = 0x02; + i2c_write_bytes(i2c_connect_client, 0x41F9, &buf, 1); +#endif + + GTP_GPIO_AS_INT(gtp_int_gpio); + return i; +} + + + +s32 gup_hold_ss51_dsp(struct i2c_client *client) +{ + s32 ret = -1; + s32 retry = 0; + u8 rd_buf[3]; + + while (retry++ < 200) { + + ret = gup_set_ic_msg(client, _rRW_MISCTL__SWRST_B0_, 0x0C); + if (ret <= 0) { + GTP_DEBUG("Hold ss51 & dsp I2C error,retry:%d", retry); + continue; + } + + + ret = gup_get_ic_msg(client, _rRW_MISCTL__SWRST_B0_, rd_buf, 1); + if (ret <= 0) { + GTP_DEBUG("Hold ss51 & dsp I2C error,retry:%d", retry); + continue; + } + if (0x0C == rd_buf[GTP_ADDR_LENGTH]) { + GTP_DEBUG("[enter_update_mode]Hold ss51 & dsp confirm SUCCESS"); + break; + } + GTP_DEBUG("Hold ss51 & dsp confirm 0x4180 failed,value:%d", rd_buf[GTP_ADDR_LENGTH]); + } + if (retry >= 200) { + GTP_ERROR("Enter update Hold ss51 failed."); + return FAIL; + } + + ret = gup_set_ic_msg(client, 0x4010, 0x00); + if (ret <= 0) { + GTP_ERROR("[enter_update_mode]DSP_CK and DSP_ALU_CK PowerOn fail."); + return FAIL; + } + + + ret = gup_set_ic_msg(client, _bRW_MISCTL__TMR0_EN, 0x00); + + if (ret <= 0) { + GTP_ERROR("[enter_update_mode]disable wdt fail."); + return FAIL; + } + + + ret = gup_set_ic_msg(client, _bRW_MISCTL__CACHE_EN, 0x00); + + if (ret <= 0) { + GTP_ERROR("[enter_update_mode]clear cache enable fail."); + return FAIL; + } + + + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOTCTL_B0_, 0x02); + + if (ret <= 0) { + GTP_ERROR("[enter_update_mode]set boot from sram fail."); + return FAIL; + } + + + ret = gup_set_ic_msg(client, _bWO_MISCTL__CPU_SWRST_PULSE, 0x01); + if (ret <= 0) { + GTP_ERROR("[enter_update_mode]software reboot fail."); + return FAIL; + } + + return SUCCESS; +} + +s32 gup_enter_update_mode_fl(struct i2c_client *client) +{ + s32 ret = -1; + + + + + GTP_GPIO_OUTPUT(gtp_rst_gpio, 0); + msleep(2); + + + GTP_GPIO_OUTPUT(gtp_int_gpio, (client->addr == 0x14)); + msleep(2); + + + GTP_GPIO_OUTPUT(gtp_rst_gpio, 1); + + msleep(5); + + + ret = gup_hold_ss51_dsp(client); + if (ret <= 0) { + GTP_ERROR("[enter_update_mode]hold ss51 & dsp failed."); + return FAIL; + } + + + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOT_CTL_, 0x00); + + if (ret <= 0) { + GTP_ERROR("[enter_update_mode]clear control flag fail."); + return FAIL; + } + + + ret = gup_set_ic_msg(client, _rRW_MISCTL__BOOT_OPT_B0_, 0x00); + + if (ret <= 0) { + GTP_ERROR("[enter_update_mode]set scramble fail."); + return FAIL; + } + + + ret = gup_set_ic_msg(client, _bRW_MISCTL__MEM_CD_EN, 0x01); + + if (ret <= 0) { + GTP_ERROR("[enter_update_mode]enable accessing code fail."); + return FAIL; + } + + return SUCCESS; +} + +static u8 gup_download_fw_dsp(struct i2c_client *client, u8 dwn_mode) +{ + s32 ret = 0; + + + GTP_DEBUG("[download_fw_dsp]step1:select bank2"); + ret = gup_set_ic_msg(client, _bRW_MISCTL__SRAM_BANK, 0x02); + if (ret == FAIL) { + GTP_ERROR("select bank 2 fail"); + return FAIL; + } + + if (GTP_FL_FW_BURN == dwn_mode) { + GTP_INFO("[download_fw_dsp]Begin download dsp fw---->>"); + + if (ret <= 0) { + GTP_ERROR("[download_fw_dsp]select bank2 fail."); + return FAIL; + } + GTP_DEBUG("burn fw dsp"); + ret = gup_burn_fw_proc(client, 0xC000, 2 * FW_DOWNLOAD_LENGTH, FW_DSP_LENGTH); + if (FAIL == ret) { + GTP_ERROR("[download_fw_dsp]download FW dsp fail."); + return FAIL; + } + GTP_INFO("check firmware dsp"); + ret = gup_check_and_repair(client, 0xC000, 2 * FW_DOWNLOAD_LENGTH, FW_DSP_LENGTH); + if (FAIL == ret) { + GTP_ERROR("check fw dsp failed!"); + return FAIL; + } + } else if (GTP_FL_ESD_RECOVERY == dwn_mode) { + GTP_INFO("[download_fw_dsp]Begin esd check dsp fw---->>"); + + + + + { + + GTP_INFO("esd recovery redownload firmware dsp code"); + ret = gup_burn_fw_proc(client, 0xC000, 2 * FW_DOWNLOAD_LENGTH, FW_DSP_LENGTH); + if (FAIL == ret) { + GTP_ERROR("redownload fw dsp failed!"); + return FAIL; + } + } + } else { + GTP_INFO("check firmware dsp"); + ret = gup_check_and_repair(client, 0xC000, 2 * FW_DOWNLOAD_LENGTH, FW_DSP_LENGTH); + if (FAIL == ret) { + GTP_ERROR("check fw dsp failed!"); + return FAIL; + } + } + return SUCCESS; +} + +static s32 gup_burn_fw_proc(struct i2c_client *client, u16 start_addr, s32 start_index, s32 burn_len) +{ + s32 ret = 0; + + GTP_DEBUG("burn firmware: 0x%04X, %d bytes, start_index: 0x%04X", start_addr, burn_len, start_index); + + ret = i2c_write_bytes(client, start_addr, (u8 *)>p_default_FW_fl[FW_HEAD_LENGTH + start_index], burn_len); + if (ret < 0) { + GTP_ERROR("burn 0x%04X, %d bytes failed!", start_addr, burn_len); + return FAIL; + } + return SUCCESS; +} + +static s32 gup_check_and_repair(struct i2c_client *client, u16 start_addr, s32 start_index, s32 chk_len) +{ + s32 ret = 0; + s32 cmp_len = 0; + u16 cmp_addr = start_addr; + s32 i = 0; + s32 chked_times = 0; + u8 chk_fail = 0; + + GTP_DEBUG("check firmware: start 0x%04X, %d bytes", start_addr, chk_len); + while ((chk_len > 0) && (chked_times < GTP_CHK_FW_MAX)) { + if (chk_len >= GUP_FW_CHK_SIZE) { + cmp_len = GUP_FW_CHK_SIZE; + } else { + cmp_len = chk_len; + } + ret = i2c_read_bytes(client, cmp_addr, chk_cmp_buf, cmp_len); + if (ret < 0) { + chk_fail = 1; + break; + } + for (i = 0; i < cmp_len; ++i) { + if (chk_cmp_buf[i] != gtp_default_FW_fl[FW_HEAD_LENGTH + start_index + i]) { + chk_fail = 1; + i2c_write_bytes(client, cmp_addr+i, >p_default_FW_fl[FW_HEAD_LENGTH + start_index + i], cmp_len-i); + GTP_ERROR("Check failed index: %d(%d != %d), redownload chuck", i, chk_cmp_buf[i], + gtp_default_FW_fl[FW_HEAD_LENGTH + start_index + i]); + break; + } + } + if (chk_fail == 1) { + chk_fail = 0; + chked_times++; + } else { + cmp_addr += cmp_len; + start_index += cmp_len; + chk_len -= cmp_len; + } + } + if (chk_len > 0) { + GTP_ERROR("cmp_addr: 0x%04X, start_index: 0x%02X, chk_len: 0x%04X", cmp_addr, + start_index, chk_len); + return FAIL; + } + return SUCCESS; +} + +static u8 gup_download_fw_ss51(struct i2c_client *client, u8 dwn_mode) +{ + s32 section = 0; + s32 ret = 0; + s32 start_index = 0; + u8 bank = 0; + u16 burn_addr = 0xC000; + + if (GTP_FL_FW_BURN == dwn_mode) { + GTP_INFO("download firmware ss51"); + } else { + GTP_INFO("check firmware ss51"); + } + for (section = 1; section <= 4; section += 2) { + switch (section) { + case 1: + bank = 0x00; + burn_addr = (section - 1) * FW_SS51_SECTION_LEN + 0xC000; + break; + case 3: + bank = 0x01; + burn_addr = (section - 3) * FW_SS51_SECTION_LEN + 0xC000; + break; + } + start_index = (section - 1) * FW_SS51_SECTION_LEN; + + GTP_DEBUG("download firmware ss51: select bank%d", bank); + ret = gup_set_ic_msg(client, _bRW_MISCTL__SRAM_BANK, bank); + if (GTP_FL_FW_BURN == dwn_mode) { + GTP_DEBUG("download firmware ss51 section%d & %d", section, section+1); + ret = gup_burn_fw_proc(client, burn_addr, start_index, 2 * FW_SS51_SECTION_LEN); + if (ret == FAIL) { + GTP_ERROR("download fw ss51 section%d & %d failed!", section, section+1); + return FAIL; + } + GTP_DEBUG("check firmware ss51 section%d & %d", section, section+1); + ret = gup_check_and_repair(client, burn_addr, start_index, 2 * FW_SS51_SECTION_LEN); + if (ret == FAIL) { + GTP_ERROR("check ss51 section%d & %d failed!", section, section+1); + return FAIL; + } + } else if (GTP_FL_ESD_RECOVERY == dwn_mode) { + + + + { + + GTP_DEBUG("esd recovery redownload ss51 section%d & %d", section, section+1); + ret = gup_burn_fw_proc(client, burn_addr, start_index, 2 * FW_SS51_SECTION_LEN); + if (ret == FAIL) { + GTP_ERROR("download fw ss51 section%d failed!", section); + return FAIL; + } + } + } else { + GTP_DEBUG("check firmware ss51 section%d & %d", section, section+1); + ret = gup_check_and_repair(client, burn_addr, start_index, 2 * FW_SS51_SECTION_LEN); + if (ret == FAIL) { + GTP_ERROR("check ss51 section%d & %d failed!", section, section+1); + return FAIL; + } + } + } + + return SUCCESS; +} + + +static s32 gup_prepare_fl_fw(char *path, st_fw_head *fw_head) +{ + s32 ret = 0; + s32 i = 0; + s32 timeout = 0; + struct goodix_ts_data *ts = i2c_get_clientdata(i2c_connect_client); + + if (!memcmp(path, "update", 6)) { + GTP_INFO("Search for GT9XXF firmware file to update"); + + searching_file = 1; + for (i = 0; i < GUP_SEARCH_FILE_TIMES; ++i) { + if (0 == searching_file) { + GTP_INFO("Force terminate auto update for GT9XXF..."); + return FAIL; + } + GTP_DEBUG("Search for %s, %s for fw update.(%d/%d)", FL_UPDATE_PATH, FL_UPDATE_PATH_SD, i+1, GUP_SEARCH_FILE_TIMES); + update_msg.file = filp_open(FL_UPDATE_PATH, O_RDONLY, 0); + if (IS_ERR(update_msg.file)) { + update_msg.file = filp_open(FL_UPDATE_PATH_SD, O_RDONLY, 0); + if (IS_ERR(update_msg.file)) { + msleep(3000); + continue; + } else { + path = FL_UPDATE_PATH_SD; + break; + } + } else { + path = FL_UPDATE_PATH; + break; + } + } + searching_file = 0; + if (i == 50) { + GTP_INFO("Search timeout, update aborted"); + return FAIL; + } else { + GTP_INFO("GT9XXF firmware file %s found!", path); + _CLOSE_FILE(update_msg.file); + } + while (ts->rqst_processing && (timeout++ < 5)) { + GTP_DEBUG("request processing, waiting for accomplishment"); + msleep(1000); + } + } + GTP_INFO("Firmware update file path: %s", path); + + update_msg.file = filp_open(path, O_RDONLY, 0); + + if (IS_ERR(update_msg.file)) { + GTP_ERROR("Open update file(%s) error!", path); + return FAIL; + } + + update_msg.old_fs = get_fs(); + set_fs(KERNEL_DS); + + update_msg.file->f_op->llseek(update_msg.file, 0, SEEK_SET); + update_msg.fw_total_len = update_msg.file->f_op->llseek(update_msg.file, 0, SEEK_END); + + update_msg.force_update = 0xBE; + if (update_msg.fw_total_len != sizeof(gtp_default_FW_fl)) { + GTP_ERROR("Inconsistent fw size. default size: %d(%dK), file size: %d(%dK)", sizeof(gtp_default_FW_fl), sizeof(gtp_default_FW_fl)/1024, update_msg.fw_total_len, update_msg.fw_total_len/1024); + set_fs(update_msg.old_fs); + _CLOSE_FILE(update_msg.file); + return FAIL; + } + + update_msg.fw_total_len -= FW_HEAD_LENGTH; + GTP_DEBUG("Fimrware size: %d(%dK)", update_msg.fw_total_len, update_msg.fw_total_len / 1024); + + update_msg.file->f_op->llseek(update_msg.file, 0, SEEK_SET); + ret = update_msg.file->f_op->read(update_msg.file, (char *)gtp_default_FW_fl, + update_msg.fw_total_len + FW_HEAD_LENGTH, + &update_msg.file->f_pos); + update_msg.fw_total_len += FW_HEAD_LENGTH; + set_fs(update_msg.old_fs); + _CLOSE_FILE(update_msg.file); + + if (ret < 0) { + GTP_ERROR("read %s failed, err-code: %d", path, ret); + return FAIL; + } + return SUCCESS; +} +static u8 gup_check_update_file_fl(struct i2c_client *client, st_fw_head *fw_head, char *path) +{ + s32 ret = 0; + s32 i = 0; + s32 fw_checksum = 0; + + if (NULL != path) { + ret = gup_prepare_fl_fw(path, fw_head); + if (FAIL == ret) { + return FAIL; + } + } + else { + update_msg.fw_total_len = sizeof(gtp_default_FW_fl); + } + + memcpy(fw_head, gtp_default_FW_fl, FW_HEAD_LENGTH); + GTP_INFO("FILE HARDWARE INFO: %02x%02x%02x%02x", fw_head->hw_info[0], fw_head->hw_info[1], fw_head->hw_info[2], fw_head->hw_info[3]); + GTP_INFO("FILE PID: %s", fw_head->pid); + fw_head->vid = ((fw_head->vid & 0xFF00) >> 8) + ((fw_head->vid & 0x00FF) << 8); + GTP_INFO("FILE VID: %04x", fw_head->vid); + + + fw_checksum = 0; + for (i = FW_HEAD_LENGTH; i < update_msg.fw_total_len; i += 2) { + fw_checksum += (gtp_default_FW_fl[i] << 8) + gtp_default_FW_fl[i+1]; + } + ret = SUCCESS; + + GTP_DEBUG("firmware checksum: %x", fw_checksum&0xFFFF); + if (fw_checksum & 0xFFFF) { + GTP_ERROR("Illegal firmware file."); + ret = FAIL; + } + + return ret; +} + +s32 gup_fw_download_proc(void *dir, u8 dwn_mode) +{ + s32 ret = 0; + u8 retry = 0; + st_fw_head fw_head; + struct goodix_ts_data *ts; + + ts = i2c_get_clientdata(i2c_connect_client); + if (NULL == dir) { + if (GTP_FL_FW_BURN == dwn_mode) { + GTP_INFO("[fw_download_proc]Begin fw download ......"); + } else if (GTP_FL_ESD_RECOVERY == dwn_mode) { + GTP_INFO("[fw_download_proc]Begin fw esd recovery check ......"); + } else { + GTP_INFO("[fw_download_proc]Being fw repair check......"); + } + } else { + GTP_INFO("[fw_download_proc]Begin firmware update by bin file"); + } + + total_len = 100; + show_len = 0; + + ret = gup_check_update_file_fl(i2c_connect_client, &fw_head, (char *)dir); + show_len = 10; + + if (FAIL == ret) { + GTP_ERROR("[fw_download_proc]check update file fail."); + goto file_fail; + } + + if (!memcmp(fw_head.pid, "950", 3)) { + ts->is_950 = 1; + GTP_DEBUG("GT9XXF Ic Type: gt950"); + } else { + ts->is_950 = 0; + } + + if (NULL != dir) { + gtp_irq_disable(ts); +#if GTP_ESD_PROTECT + gtp_esd_switch(ts->client, SWITCH_OFF); +#endif + } + + ret = gup_enter_update_mode_fl(i2c_connect_client); + show_len = 20; + if (FAIL == ret) { + GTP_ERROR("[fw_download_proc]enter update mode fail."); + goto download_fail; + } + + while (retry++ < 5) { + ret = gup_download_fw_ss51(i2c_connect_client, dwn_mode); + show_len = 60; + if (FAIL == ret) { + GTP_ERROR("[fw_download_proc]burn ss51 firmware fail."); + continue; + } + + ret = gup_download_fw_dsp(i2c_connect_client, dwn_mode); + show_len = 80; + if (FAIL == ret) { + GTP_ERROR("[fw_download_proc]burn dsp firmware fail."); + continue; + } + + GTP_INFO("[fw_download_proc]UPDATE SUCCESS."); + break; + } + + if (retry >= 5) { + GTP_ERROR("[fw_download_proc]retry timeout,UPDATE FAIL."); + goto download_fail; + } + + if (NULL != dir) { + gtp_irq_enable(ts); + gtp_fw_startup(ts->client); + #if GTP_ESD_PROTECT + gtp_esd_switch(ts->client, SWITCH_ON); + #endif + } + show_len = 100; + return SUCCESS; + +download_fail: + if (NULL != dir) { + gtp_irq_enable(ts); + gtp_fw_startup(ts->client); + #if GTP_ESD_PROTECT + gtp_esd_switch(ts->client, SWITCH_ON); + #endif + } +file_fail: + show_len = 200; + + return FAIL; +} + +#endif + + diff --git a/drivers/input/touchscreen/Kconfig b/drivers/input/touchscreen/Kconfig index dd9b928e36948..7fa3abaa206b3 100644 --- a/drivers/input/touchscreen/Kconfig +++ b/drivers/input/touchscreen/Kconfig @@ -1137,4 +1137,34 @@ config TOUCHSCREEN_MAXIM_STI source "drivers/input/touchscreen/gt9xx/Kconfig" +source "drivers/input/touchscreen/FT8716/Kconfig" +source "drivers/input/touchscreen/FT8006m/Kconfig" + +config TOUCHSCREEN_FT5336 + bool "FOCALTECH touchpanel FT5336 series" + depends on I2C + +source "drivers/input/touchscreen/ft5336/Kconfig" + +config TOUCHSCREEN_FT5346 + bool "FOCALTECH touchpanel FT5346 series" + depends on I2C + +source "drivers/input/touchscreen/FT5346/Kconfig" + +config TOUCHSCREEN_GT915L + tristate "GT915L touchscreens" + depends on I2C + +source "drivers/input/touchscreen/GT915L/Kconfig" + +config TOUCHSCREEN_GT917D + tristate "GT917D touchscreens" + depends on I2C + +source "drivers/input/touchscreen/GT917D/Kconfig" + +config TOUCHSCREEN_LOCKDOWN_INFO + bool "lockdown info" + default n endif diff --git a/drivers/input/touchscreen/Makefile b/drivers/input/touchscreen/Makefile index be0eb9b34f5b6..318c9c9f721ec 100644 --- a/drivers/input/touchscreen/Makefile +++ b/drivers/input/touchscreen/Makefile @@ -37,6 +37,7 @@ obj-$(CONFIG_TOUCHSCREEN_EGALAX) += egalax_ts.o obj-$(CONFIG_TOUCHSCREEN_FT5X06) += ft5x06_ts.o obj-$(CONFIG_TOUCHSCREEN_FUJITSU) += fujitsu_ts.o obj-$(CONFIG_TOUCHSCREEN_GEN_VKEYS) += gen_vkeys.o +obj-$(CONFIG_TOUCHSCREEN_GEN_VKEYS) += gen_vkeys_gt.o obj-$(CONFIG_TOUCHSCREEN_ILI210X) += ili210x.o obj-$(CONFIG_TOUCHSCREEN_INEXIO) += inexio.o obj-$(CONFIG_TOUCHSCREEN_INTEL_MID) += intel-mid-touch.o @@ -89,4 +90,10 @@ obj-$(CONFIG_TOUCHSCREEN_ZFORCE) += zforce_ts.o obj-$(CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4) += synaptics_i2c_rmi4.o obj-$(CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_RMI4_DEV) += synaptics_rmi_dev.o obj-$(CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_FW_UPDATE) += synaptics_fw_update.o +obj-$(CONFIG_TOUCHSCREEN_GT915L) += GT915L/ +obj-$(CONFIG_TOUCHSCREEN_GT917D) += GT917D/ +obj-$(CONFIG_TOUCHSCREEN_FT5346) += FT5346/ +obj-$(CONFIG_TOUCHSCREEN_FT5336) += ft5336/ obj-$(CONFIG_TOUCHSCREEN_GT9XX) += gt9xx/ +obj-$(CONFIG_TOUCHSCREEN_FTS) += FT8716/ +obj-$(CONFIG_TOUCHSCREEN_FT8006M) += FT8006m/ diff --git a/drivers/input/touchscreen/ft5336/Kconfig b/drivers/input/touchscreen/ft5336/Kconfig new file mode 100644 index 0000000000000..d43e699ec034b --- /dev/null +++ b/drivers/input/touchscreen/ft5336/Kconfig @@ -0,0 +1,5 @@ + +config TOUCHSCREEN_FT5336 + tristate "FOCALTECH FT5336 touchpanel driver" + depends on CONFIG_INPUT_TOUCHSCREEN + default n diff --git a/drivers/input/touchscreen/ft5336/Makefile b/drivers/input/touchscreen/ft5336/Makefile new file mode 100644 index 0000000000000..0e63ed69d53a4 --- /dev/null +++ b/drivers/input/touchscreen/ft5336/Makefile @@ -0,0 +1,3 @@ +#FT5336 touchpanel driver + +obj-y += ft5x06_720p.o focal_mcap_test_lib64.a diff --git a/drivers/input/touchscreen/ft5336/focal_mcap_test_lib64.a_shipped b/drivers/input/touchscreen/ft5336/focal_mcap_test_lib64.a_shipped new file mode 100644 index 0000000000000000000000000000000000000000..e8064eb692a414c731dd8ef1afc10571bf515ccf GIT binary patch literal 71588 zcmd?S33yf2)i=J+JvZT!gb)aG0=WrOL^1#Y5@onah)e-O5)g;JH`C2vMv@y0LQPbx zwy|GHMa7B=4lN+IwAHGu71Y+3R&AYXZM78~T3e~5RV!2}-*4@`_PHlJ$y=ZIeV^z5 zJIHD?Ul{TD#MkcE*M6*jlvz__J)=^u{@-r zH&!-vhMZ8D6X~RPrxj(KN(x=s(hv@=oLd+y4OP|zFY0Wm7PYO_l}!#N9FB|I8^R%z ztg1uqD*Kv9$@YbwOP7Yiim_$w&ma%DYOt)^;|FhH`aLA#kZM z2nShLTiZc6$xw7@7iHw&4h>utqN8$4C>UyQZ*33OkO@g#<(0DF7lr4~o3|iHCSoYR zrDj<}ZLO$6n7AoQ(5bvll!YtX!;&r$4J{2pR6r1BZVtBh4>rkQT__xE3~d#K7cCF2 zEiaSTva({nmO4Bgq3Uo$YfFb{-Wse7w>F4|j*hm<>JY9q4RsA+Awel+WtnKMu56Po z5Nv9w%52SI@6VYJCwKe(ob2ocIcO2{=gps+EB(JBrn{*4B9CRE5vaowkBCS}qe5)D zB0>iw84%;e7;$#n69>-PqVL04aVAlSofV$I86g5^!1EB;c6A`!?Ga}_j18PQyX~p{ zNA2LN=WO4LXSe-Wr7N=zeE(_D_mSq%1D-(7OCQ_f;6H5Z;Bh%4ux_K3bC-7(;eRoK(szA=&~PKE8LK9WKDQW>uO&b6hg4C7@PZbm&y z{N5cBuZR{~kJ~D)!Xvg)T!GcoFHJ?f!mnM@9~X;6;?M58_NDshqg(4dN4Hj9mD^Vv ze{^euXLv9Ak}idiu>*e|{Hbz`J6N42@@i&?yzWeqS3OtcQCUT@D65zy^8E8e z4yAMRQ+x$@W!YSEB#!iVAiqgSGZB9i@VD(k(KjA^j~Ci~m!eJN;co)|K8Y5i{$VE_ zOhjA<=(p|hv)-{2XT4=lf)7oEpC=!@yIUN%yW7H_2Y)vHy!ea4Uo`%P$$Cjc`V-(i zZcmVPa&(61>b^>Bt~`6L{2Z>^J`{cXK2vr$di`}TB|#_BufrpHE1(DIxp%2J69Bz; zxj5seYoVYv1pQ?@>)U&w3IprgyHK3bzDPbbewY|VWxr=>;0%>v-}1nj&#U|1!oZog zAcOQL87U&Av3Z6lAJ-kY+3OYSkAATIkx<&TPdHR>LwNTciTzY=)(UU8?8zHf5}G4L)$3%zhR?=|2sCy z7(KX+{`ool=trN!k1mC;1nng0M*+i+D6XF$1!hU!|1Cd)?48ukJZO*9=Kd$`ZG=zR z$>#P}&F$^<=djab9=kUQZGgt5f$c3dHx=z|0&J0DPn32NhMg#m?DW)A7xsP$?JYl$ zD|u6e)r+<`>PcL6d-KDWD4+kTy;b~O^iiMpA?6CFVV5U=d#+rMsh?CAVvJmdF|r8r zfM@n&OqKJ1YmhIcOO3;rgT6CGB)vh9za3{@1zjgN`E@lUg|L z?6xCvyidiv#xG<)yi33iXSY2m=S`G864z5obDP01nv+F=cPgbtAAjFToyIdznY>%w> zbDW3Yw)*zYQ}Z11=|}%)<$2(5 ze$ad0w%|Ks50d|puj}@eiuUXuetIGLtJs`HqO50$NVK-6B&KekT;>5*;1i>R!fLdV z#i)J5MLFf`Kio4(q!+$iF-+tnqTYIj^_1?KBFd;AjqcuiM+fM=7z1feI3D^<64AXK z?UT#K!3Gs6qU;3vlpP+iS_H%>((5hETY6x#>Ci33FE-zuB+l&EdF!ORFBFea-+4RY z?n7DhJo0UO;w&m3m518--l)?Hr*&IpkeP$I*7}C-%VN*_qLqmHc8!*=$2EM(R z>tfz8YOEOh?8Bb1y(iHYebDKfp19sr==3xA!B73keZ#Hcy+6Uc^nMZ5yF++;qpYaj zzrZ&B$w#+(EpIOt>N)PmW&O|`v8ctrVFguekfNJHb!u5R1kSOvcPx0m+ai#C*$ea9pkcela!{Kw|!c4D0w z6k{82f{z{rpO%HRJ8AusF-*y%bp+N)kULSzJ>u~n8L~M?HD7Z<$mLxwoKP zfn#~Ok3nv?m?-6T!xvB|SX1SakIhiNvcP;X|9I}<3$&DG{zYad*haNNRiG4>rNsXVJJvU#;m^5pc z7{B@)@^8kP=eLk|68=woTK;>~Mxe`4=yn10xcFZCMY5Y-w-0r#aM|iFQ$+cb2>Yo2 zg6*TwSNIl-vgOxJ>^l!O@kOCM{bl>h;%G|Wj3}`_UHG2$eSG!H&nyyU&!FFU2EM%1 zN@=u^t{J}cwkN9B3x9qKf7SJsT|4ksExfA>>r=bb8bA7d>fi6j`u~XVy`Ku2>`5|c zZB6w=a`Isl=szp<*p<1ozWxOLF_n$%sO&es@g&td%1-!r_~mi-NB>w+{%KkukNmMa zR%~98fc_eOdfs?ZP8ii8`B3*%vH3Xi+%~Ug(s4UU))VQ1j;QaGd*)OA2TAr&*DIwi zV&_xp+IIqb9ps-f4QL-^Q(y9z5h~x|@XPbie^CC()aN6wvB)b@rj*9#V@3I-F9vS5 zk@k|mZhsl}AC+fMdiFNdO`bimHx_<&L|BdQqkjsbA815>(F>YnR6Biv-S{BJs2cP; zC*E4xxA)o!eKT!u?>*N}?0dj7u`jj$s@#JppQx|NJ&E>O(Dlczcg3(?^4G?On%vYl zF>1}$x~?zb?>Of1`P;3e#xEu(d8rSxqF1MGPfEI;>KJPwl(m=ELaA}jPU-=D2z}MH z2tOmNSkjIBUp~keI$$7}$ z%s?LXSC^tsCtWD4`o2l*H-lfFgf9D__wl)bJj^*CqqLubCV!X+f5^L+d~YJl82nlZ zol|`9ZM2mn)EAXw9WY&{V$erXp5gGvbkNf8ovu2j9vFu4!nI;eyJJ5N?Y^@X9WU<8}<)>j<^ey%2|62m@zsLAP1x7LK|PA}J|G z6t&dI5aNQxp)H{%1>>gCmdd7vnzgMpA&E@yxNLgO7wAthtX#V>zj)=c;M#S|u)XWj zyRs{YJ3J`Q^cup;+CtS0l}%IxdAQ0a`ARBVLQO$cl;9dp49@;|LyKeve%VFkWnU<2 z35VMKwUyQ3*7mKqHZ*m%hhn6BSG>ICQ&wHs;-6llA~`v3BKi3iQUAnHyJoihf1wn{ z{O#&?l0S@FNjgEMzZpuwMxCL>(`)?A(A)_yzcv`+b@n5ekXoucW>C)2Pr@~*R=Ruj zxwF#=T>1Hx`fsNRfg3V7d~h*=d8l#hp}9IA9-r-vYG?@yuMZuH5K#+oT7$o6I$0VX z=DQR@AI2=gYZt~dm8nAAeXc}HKXC zo_!!=z25H>!bEYPh4*k4U0A?(Gl9qYybo17@eh-xI{pW1fsdeYg7>kT9iAT&$?_!a zgU&6$Fv}$MZwKj3kQR#dMol`Z6GkNwDa1%e!>Hs3fXE!Y(PRFk8KcMkR5B)bqw~*# z8bzt13tk|QnF9$h#Ar&v%0?Fxr?lFz@l+nkIKh{?8jP~+zBEe1^i%TdXG#z#0#SJX`YY8F02G;)Q*Ff&|i3W4$pm z{xNiFl|rYJQ-6e6Chjo!WQSuxu&%@-|C(py>IYypiO}z%q+!ZGsA{l`(!5D3>w0D)1lHTBHf6K$S&ayg~)4Eo#oiDo|^kLZCzi z8l-?tDsY7iRH#6kRSs$ON#GSRJr=da9$SU3k)a(Nx>gFmkwe#8) zT7nLH6Nes`aTOeTONQz>^tKGOap)Zx>f+F!ta7qM6xt_MAvcM)zk-^RPUdbB>`}@? z0x=)_CzzBc{8e_ZiatfOSJ8hX+NbD`h&@4h%dbI7Z}BK$6)~UCU^1?)x=qBKrp#IJ z+1o${lz@K`OTLIA2sbvAfF$maV!YCihSXV(f8A5KM_f_Ma3Y&X z)7c`5+=29KgFf2qUHph<|-Dkk5XjHS4ezt&4e$K#U))kD3kKk^tkkA5iLD3?mQC5 z^sE;^D_4&@{}a#&if6V5gYyJMXJi2P3qPqe%tvxk-^GdkQcmIo@O@m;hWY-E3zz3r zkbYtr<~xhC91jylOv->*DRo2=wP2=`-vvqYl6i=htbzDNzt^nsizBS@OXO5QiilrI z(v*_%f!|;^!>{oCbX?QNb<~LXf_Wgb6 z!R0EL%)u2Zn6wBA`=G%vAE_$Uo-ks25;Bqbjrd{?NT#pe1X|g7ME4g#Cy3M$@PA@S zp<<+vj1=rdkUWwhqbZdun(UC`K{D`MKs;pNc87;3#B|}piv0&jshD@io9Q#ftpeZCr79DYUpojTNaQ6KfVp3~B(VvdLf?~-3 zhxs;ulx88hI=&P1G%B)hczpO-1n?iZbrLD2OL~hO3#=JcowXwV%GVL$wNy-(92tg- zD5@NakX-}rZ_u>tB*HV-fH*gdJs^JDWLSj+i}>wx$UutzVhLzA#?@DWh6j*jVo9MY zP|EriAUw=RGE%9!DU~~VgN$B8(UdyeFFJ*SNc|OL>Fbu9m&tQ4&OXwW;)OpU^LY?b zuY@cj#kg=ojY!C*4oT^lFo$N!s=^ZH5=|Xe2I8d%U&7))gTO2`VTtVY6nr#c*&k4e zN^%jAOfPpyUO_ZVUP*;eu8^>b=wy|4HPL=W7ZW{gTx+XHSo1P6O&^Dqu1F{$I(rpy)D6N}hxa%c&b%q38{SlRp99NOZZPFD81EqBoKGD-?YRHH>;i zUq+3gOVRZwQN%}Kn4QQ!>N5oBPdW(IgJ-1U(_}5A!}4gv1fauwQ*f45xClgwJY^v| zLV+g?KqZP_BNLVBM0NcVDd%1=)f%3fz!tY+woz_UO)HjYkD}v<_9}V=(b0+?N$#xb z-bx^PxWY#f9iwR6wZzg((YRXz@roWx*~ZJ}VvQqu+%OdwPk|{MGl2p##;TZ!6v#{# zQKZ5`(9&p=)mfwi6c(n^h&Zpg10>l-K0zR?MB91;`1z72(LM=!wxq|}WH3dKv;Xek z<82QXr5RTUYl4eI(HTvl7L8{#XiCYLXp?e^p5&sFY^jY@opNWThxtgYDAIxQlc-09 zN9*u~B2%imnIv0zfTbu)hO=c<2StfFl5U_g9XaYEtUWbIGnYfcmj-Gcg{*B-5J%j| zS8ER@Q7W;u?M()ytN}rtTq*HI3eKkl*3~4!?(5m^=>g)>yFW4 z1;4CwAgR0Pgu~i%3mBC~U+%BqP(h{DSF~0OWCiw;a7U-16>KF1m2GdQ{OLH2DJC7( zp70o5=sSo+p|`2r?${xNN3Y_b&U_(!YL70LvYZUM$OUjJi7jYkVsJJ4)$9LmfC}wo z+D~*pL-k{$`g77ywK{?Sm(x(;l>bqM$rjkH!n<^MDZ68pt~RQAIXRFn@DliP2(qfQ zJ31vNR~5N3GFdJ;h@=B)FZKm+3ygL zhPBuf9sP2MSaR|>Ar@`HcE8o(pj%1*bWUuZpR@nsoFd~_^Q7bO1_$<+wZ zD>;-FHz_UpB3e*^`m3aB{f;5zmW|hP?{vw%>vPL}u%FfBcnO`YJ>Q00`N9}O;ARnXIeRL}-T?9+}|Rf0&^v8?nPCF|HA zvi3Q$jv2Bd;r_Bzk)QA9!}U(>$4}Hne%_EkGu+1m3*Y%COB#!<`aKrHK^Q#YM@>2wR7 z_R;AvjP0(VM$ zkP5ld&FbSc)<#bn#1F#mBp%R$K1a-t+$N@g5Uc3)8_J8UBg?a#%tOa&GLhZ)X!mL| zlcz5rEw!91MaOco79E3G%+W?=;{;tE`7P|Zssm3r$-~;SV2W<%2W;x+RNWqwG}ZV6 za$ZSu(?hNq=7Tc6m}FSrmNb#vj$LvNyXfz_=jbDHa{@yP7&@k(02*iiN74qg4M*DlSoHr`K)b{*ozckVSYE;@J3!s}swqt}k7{N(Q9SpD33TRC| z+_BnxN?;WZ1}+;6Eb0%+W!$sKikG)a+(kbEV&<`YFmOeGP>M_P^Q!QV!&v84F@PfS zBv$~C%=8>Ht);iTh5 zK-MD@%qVE75ix}V7ZeNv=F)P(O7>?gfwo)U>l`5C2>8cxon=9fYn{EC0{cFKT8kQ625Vv3?B2hH&(QPjXF zYkGWQtR0^eKgt?CECIuUXQYV5uC6@|mnE?_s?^IQb_k;^Yh@xmOdp*pRwibF4^5!0&z00v)SJH7v%F0oi@l*(G<2p&DY7?a{QP5OM zn#9>fseF=L!6>ZP9K|Iww!dWt%sgeRHFF}VlM*F!!b7<;CsLNF6rn7cHUrf$m8HUJ zv9Tj!<6=p@X^tXNujvt>JSBk6n5yNt0vQO9xnxXcMDEH&B{_>z%DT?xlrk{K$p&hWX9XtQRv;}g_siE> zVw5!pdChY(txW94mJ<=}fm6#>#0hd&W$!D8NO_faxGGQAff;B0O5_1wM z(`7jzumqY6j#6vG_)W2wNT<6f76GgRD4O_IPy(!Hh>s*`zE#9W-nd$FLY-n)F_3Ug z3|Bq|BlOW?9Y>=|mrkVSSQ6n^zISG9~~9)jJ`~iXmYm$h3;eWa0Ft?xoAN(4$FE?Mg-Lk6eN3F zM+yinhIqOur9hUVv)k6^|!mp^q9QC-vB4<->wih_+q{C9O4ATlaF6ZkY237YL zF&M=uR=gnL*YqOBEU{jbZ7w!VhaI*Ob<-9%pImHBn2ph~ldqJ61YD=X%s+v7EK#4# zWNrjn!K9W5E|&~RPUDhhM@pQ)sm3^hN-k%zA_AF$9%qdfIV=qWvu`j{y)jxLn=p3K zVTs0f#whYVz5)_s6*PvgfSQ=x6M+sfc{l<+%H-n_=oKbki$F?v*o!G(9WgZwI446W3;RCRXt82_)!XzJJJ+p zb1j%&WTv=}YiU1Ub*(+bVUxd@tFVNx6?|>ttI1D~@q0urOyspbjUOQ_9N@v9RU|CnXH6)pvZFbpF4PigZ>Sbot!?3~riPZzu8et^ zbFwoRW+S0u>#S^R=*O!gB>P|~>BDhZmF>+7avUMZOBf&1swOq@@}XV>=H{zfTSAI%3$<6bbt<~Cwdx9dBP`fLI#9-2J8GHaDCTPq)iOs@XH~F9 zhx&gqte#5QhA+p3IorliJ6@kr37bRBcpC;Z%7XkOx`i8>S+gtfYDt4M2UH=rT_wG; zwY_n3XQ-3eI+`l0R0O`11_GI?@6{==Ce&0(`9Q{^s?LU{a7IJR66H+8Rr^A~{*$m4 zuTIOdM=V-1dCufHi?5$+U$tq*r82POOJA_JUORKnOnYnQyreH&Iwv`0UUJ5~n})KQg6o{6CSU})31PZq zNjg7MUY5v9mMw#}ErWIlQTBColETYCd1l*VH?2($*y)+}k#4{Jr10ArnfCqNir>5Fh)!HfkVsNefH(XObFW1HYUe=$k z&a@x#tfErbpIm*2u2W=S16g4Zx*RWd0=HKzvUhcd6H~IX)9i=sMTtx1;D2g{KlQ@Y z#dF3b&z+K%k(vbqWF}^0F)$@<+S0_-6#Pq_I&D^38fws=wm5yMn_iMeTH!r*q*-0zRYh=_uCbVGE%2xFJ3ZbPF+gsQakQd z`>I7VR%}emE>7E#m60_$ZH3*IX?JAW*<@-z+VQK>rexb=GnX!%d)OW+ z+m@ZSNhYtN(pj^~0MG-p$8O(r>9?l@p;7jfY?uRPnVB>LXZ!e-o9ugh{^`?`?bojK zPqh#DGPCUjzumS;o-^ru`_-H5Jysa{XW1#M?DS3cGgpVvzUSI6iJeK)lTxSIV}6)r zZ=q7#A6&gEC3R(L2RterT}c+%{faGD+FSo_U*DZMZ5lG2OBVllYo`76=*-n?rOHiy zdlB08)>ZZs(V6q@<%{54jqtIoz*LVHqh4!!U67uAsA*^qZw*#eHdVG%hl1^)j!^rS zkmzW*DijRUhbYwtE-6eSi{NiT2GI`(n=9KyNny!`;6;VOwWSzZDqC7YHNm#Zx=@GM z(u}W9R)z(}i6A;^MlW8IU%EQDV&(D`g5Mv6lrBNT3SQF0`;Nhj(MzwP_c5CqI>Nzv ze6dqpx^8U|UcoF~lV2>F+B@-G$&RoZV}h-19ipv%Ye%pWU+sj#&B4+x^`T8sRT-|X z7eNw@VFw?t42HW}@!ibghL#Y0%2O7HG^@g=Me#?ascvn?hb_aw>dNYRl%%<#uDuc; z6K$()5mc&RU3+V1Td-}d2;VfNS7+51I;lQF zLA=l@$7kV|Q6|=w2Fr@`3xXTgmKGHj=dWCoUjQxX^-p}tHH?>A1--Y*w(Y>ILeP7u z!WmTQTce%TVL`J9KfPcn>yM@%jpw@6>O;K5}nnBQj@}h z$VXmL&iYVSu(G2X4XF-o!VhiRrPR`*qF~{g{9sA`a=3@ov$mq;*f{CmQ(rbu!S?G!GFZlgnlyIQC_!7N$zOlUAQbAqbr z%d!UXm0g;_20N*7sBTq#E?AbM8E<`ayHXvcYHpYvS9Ugq@x|S6J9@8hBYdy2hV)nS z^&ks_nWTLMii)uuXVs>G*)Nhjn7U+2Ew zd8^*|;<9W4%d4vg|3#%tWXyXO#F%HmQWb0y+-Oys`2gQ zR(OkA)94}8{jqDc@Q{6Yc^j3tYz5q~Uk@EzTU1Ufo*=DTWIIwrhN_gxst(ae!%w?( zZf%At3UxF#v;}LMIy>sAZ=kP3%SMdxn$}p65eq(|2CdRiA+;~(E7{t4sL!Id*-)bz zpd7lm+R^dS@<~PL?5W@lsBqLZk8I?=dW77tR`*4+?YPGeXAprYC|A`>yN61Q{2`3Z z^0U;{t(`P=5H0X5j28Vq(K+jt{c|` z<$!=TRUTYfUbIHe0pzf!1}E7IQ@TjISD#U@ZPQ<37wt|K)Dv=URDY0*S^(dJDxP6Vpt01fv9MQ zgEFVDc2Jj5j*%8Y_w38nhu2qj)Cb`@lmoU6L=_E4s)(`$NV&2hp%KwY?KqL{fP>{B z1^jD@*I|gQX>V<#p-U}9V=FcUN96>v%&f-D!a0Tl&tS!V! zi+%*5xh>Le_0o%GI+QJ|1IL&1VKrMVUU#veZtlv0PWk{58TlfbysN&ktrim`waSna zP2~|-jIcXU->$kjS!O-Al8yyQa$Z|rn!mQJB)_z1ZFz9ThUG;{GUResaB(Sm{LFC7J=OJ%c)E2F~D$AIKg(HUvoE4qTMVY&Q;mvcKn zLPL<9gutNE9+s0GDVcv+BFv7{OtXYeI_nWdI-%4XR&Q;Wu1Uf2qP2R#<_rW-fRJLLxtv?_>LcuI{S>V!KppDpQ$^%SH(9Ae zT!eX5|Bk?w3k)iFk)VD71$7s$*SkZ)^{Xg)-l%7dt|2wDT8sQX3^gR#wrOh!(=yew z1m&brXqS*9y!^2k=@To_gRjMiBU(aT7?YhE!x|~Hh1XpRa$rWgm@^}FA5*p#>H-^tr($}5b>D~K26S~0%rcOmoRPem2RzYu-r6?Zj2 zzl(0J-&J=@?X98PYIaxOUiFR2J1X`B?Vno^{`wog`R%V?Q!1Z|k}5;iG()Zq7sMyr zi4T83WYO<`2OF8U0d-hkwHO`Nax|XH1lzxG#AFyBa!tN$<|}aOX~m#?I$fco=dwZh zW)G0Je9-bFGoO~rLFWath~BFP&1VrO_;-Bi{rL(|WrNE5ynI^kd}Rm7D;!kbP<%PM zpnR?GuOI3O?PN9FhZ;(L?24Dk!@+a8k?ttp%*&5IYTY^EuJKT0`OV{YjlE^et%AaUo1G>yS$pruZQpjjTi_Ei7olnc0HnLMGNZ zJb8C3AeRl=Qvb87AIWiRSVS9Q0vtArkDX9HJ__KN zpe}+QIwqW-!edm3H}DuJ9nQUI6_mV8$_x1o$u!d+=k&)`xVa%73l~_^Q)y zG8EAIQyMyo@TX}B@JW5lOo%_GxzT~V0YndGznx!K=}zUTE7_0gNawHZw;tGF`KQSD zY=wB-5N`4Yhe-c=J|b{5^Sk{jG%&ALM3^#(cg0GTLbpp58pwMEA`BHJYtM82(^L8B z(L%HQR|6X?|1Qq|loI2dP2RpC($}w2Nz}(Ko#X@Zx(QK(>3^8@*Y!mD(?e^f{&xZ+ zolHBmQN`j|&X1a@P^7H79QzS5So%k5REi6ALcZ#B`ubf?Z?K8Kb9xik=`{Y#5a~~I z`Wp@7=<@6IPl7O5WYjUXUkOK&{pjgConG5@6fm>xlYkz6c<*HjxDHc)3L8yaa!+Ve ziFR_wNRPPDTPtS%!+{N!|Nbp1eWfAX%wKU0JQJT+{O#Pp7|L&ODfXb65dT06liecT z)IS$|#jQVpkeWXZg%6ZZ-7n_+jvP%*WnA0wJ?>vJ89&8g-R>4Jewv@J(?zFel}P?+ zexQ)*h7M}>gilD2L80Z)yoGQ-j|-Y#^?zOwFmTncc|`@|S`NL`MRMv{fW|2|d%!44 zDB-%aDy+}8AnzG?*s`Y^438TK0?{8nH6v}o#xWvn^@-VjsH)%5_^8&v!?Fnl2Q z4zP`eh4hib#I3lFg5BDtD?nRhKY|0L2=Q&;BuA&eQ6&?P55fQR5cn^Lz+VAQ@<|>Y zyVOOzjq70gybqlCOSouyop%~Im8*-(wSXKPhZlUruiqhz!=7-0Vg>} zS13T+XCCwGw+J-3;J=vp^}7MNEI-J&e%e2q@p{JfBmP>?PAT7JF7kPGT*LhQ znEz~s{}02(j3+ZrA4jHQ9cDFkZ@8E7ZyWfxSWZ35S;TS=H1NUPYT^*M zpXKPslmkAM@dZQh=K~*wjsR-OLtodj9Q|na9**C@coTPT+8qWwkvpwROsnB-Dz$ax z+Opy;D(A+4>sG((_MGdXCAE*NZX41zu=_T+-sBu)Kh1Rm5^E&dfmd6n`cB$Lc~gqF zmfd$KNW-xmh#?Ap0+R?{A$ygw)R^jH4>>X(^eUHRCG>&6^!Uh>WTp`VID zQred8_gIG9Q1Ab<&Fp`AAX^AWrELp+=r%$xaJg~a9+QCkH8ZZ7Hu-CqhxpT6{JQ;` z`F1gnDW}IJhkJI3+~mS_mr2k`7w*pY6ys*Ty1|f1GjBU-zXXNq(drSJTd~81lLM5^ostHU19c zBqvp=D9`UPPWEx@3Fraq`gR-N|}-4SX--J_A3@IDRQw9=d+DoMZ#v%lv)= z*K+C^CwscvSCiVv za38OzP5HAK*X8X|>WLi2b$Kq{yYh9*XKuXSn!xxcJ@pZpKadhg|$_`FdGs%74wp@0PE3D2RWKOP@Gihmrl=_!!2? zo>?w_hD|ZEhY+*KC5Cp4^r4rXBqv9MxR$u&&v)VFF8OZ$O)lKczulFuTm79b+^x@} zF5J!koC|mJpB@7D$10`CY;OL53wO)cZ@imkZeo6Nf9@Hj;O&f)`@8WT#wQ!Neyg42 z^9=?mN58jj;-`nuGmhu~rk?t3Tf&#R>MPyF@3w>bGP&vw-F8r4BUiXvPQ?&%^b75# z|LkUda%Z=n>}OneC$x(~hknsrcPARxubY#6cQZQXlJCZkGfw<&KYYi<@5Wb*Q27)8 z`HGZh{bc~s-;L{+=FRdtZ{>sEUEZ2_C6wwV;F7Q3rq*^yM?4*E%&+aB@$e9GdKlMo zRiVv@RN+2{`nc>+MYMEJ@tmL#&gW(72Y9 z%sA=O&p%zbyI%IVa5w*97w)bX{rLdX&d)KwSzoU(Zt|aGoa|qqiXzV+F|O_N9@|IX zWzgl-cwB-?Omf_JkP{duJGjf6&bX=PB9|PuKP(#pFCGFf9|GURIO*fIXB*?DK3y(3 zxi0(k3?XN~3wPJ!LyVI>WxG?ioy0N5oqQR8fpM}Y-}sifzcz$?Kc_S0EMuJHxbJ|j zVBGXi{WS(tj{Z6W$#IV(kGkZ$>+9$c_^~1I7ly!JVce{*cU-vJ&Lne(lbB;_$W5y>+PlzLypEPT)4Zv z)G%(=%Z(;K=evIh{&e`>TkN3c0TEnljD-_ zAFBe6KX6<+<0RkhKe;a4?GJ$=@D)SgB}3pfF5I1O8{>|i+>W-p_}%*K7y`d(2z=KN zxc(B5S?_N!zgb_W7$<&reT|{V7jTe0-OKkT7w(?VKjgv#GNn4b!?>C6Nyg25KXS>* za>)^V+llmX_a|N#zQD!rW1RAJ`%fI>roWAG$yw-vHj#>U@IQMLzz_Z5I}H7wt~t-eKY?kw=&_#kp|sg7 zzl3=-p2^`V1OEk2>KhFFhrE5!X5e+a{dlE;zsva520lGO0oNP2m&dc441Bjw0XG|X z6R*=AG;sPYIy!!+E{;9*(}zb4ypgvVe{SF(bH2Ya@W1nV;134Ag3I+c1E0wH{L8>^ zU_0BWCpvV!Oi@7*Z{R%~o@n3}I}|>uw*SQjuK8;Wd>)UB ztp>hNWhb^7_!Q>9!N4;a|Av9z#CpuuF}2CmDs)WAzvPO*W%%l;5F z@O8W|w%x!V=I{*$9%MUcJLz&&a=ZJ6!C%k$?lti5a=ZAZfsbbW4;lE=Ea!U$zKYw? zqXw=YSNW-dzr^Kz$-u8-zk1EU-{JM@?+yHWYzKWiPTL`d<>-D|W zuVvik{!+`SWc!RX@RvE?*#=(1eqL(e1?->yVc^+Z-Wmh1X1iTs;FodxYBTVi9NuE! zySTo#8~9&Y{L%Z{Xi#`^+)$Hg2a24g4&(=fwt|#qyUKcs-X_KaH)+ ztM8*+Zt#DV!wm-hZEhEx2L2rDe~p2UVSThbo$puKZU+s1jX!GO*Kqs&sexa~c6iCa zv$-DMG;nSf;-rD!!2QM<1J~nVG`DZ9|MSeBXyCtN|MVMpGRw^{a9TIeae;yB{&~59 zU(N;CVBoKEyRJ6y7REOl_@x}~Ht;WS{eIQJb-mwV;Pgw~bQ~~ne05(Qj~IA`g2hh_ z{I5LTy=>qwarlIRA7;P$tAYQE{p75HYx~BsJ#;;O!g3}WxW3OZ)4)qv|M>wWo&+|G18KEdG`22MZ1PRDEme?Y-v zu7Q8Z<;peiH`!0N8TeuD2fl3JU*>-4Rs+9@$0PmNh1UNAmj6A2-{$%~YT%=|zx{=Q z|C#OehJpWv>;2CLK8pGE)9_lK->|<$v;S&*3F|Y)!0+UKEX}}YaQ$W*cq*5-$iPcj zPN{)^mFp{L;7hr_nhksl>#yhCTK{sk+YJW)A6fn_242Gb(hCN@oa^^>15aUl>c?Aj zz6)8tUf*kc7W8941r(Q$`?k6?fJmVxWXrM_?A&vL#; z415avtzJ*-axG?l?xr>TB)jui1J~Vrs)5sQM$(aE;MZ}s0Rz`^^kXtQ-|sM=e(Xi# z`st(^L(bRO-P#QNN38!12L2Lv7dIRD-E8K24E#f`mhT$)5_Zp{2ELHX`%44Y!{z%1 zepFgbh))c>m#fd#%?WzYHe?0cd8C2sZJZqjuFJdAz>``2od&M$dBDIAvVIR6xPF=N zNdteD?VzWXx*lT~KW^~9&i2&5C87Bzb9wb+I~vz^Q@?s2*{<8i-9rNJ8*BdS*dO%c zJQ~+_%QE=&Q>DEIUdYW?KZc{_yvoh!K7)S=Z_7Pl;3wJse=+cbjGr-awnG$`L+7j8 z5q|kg9vat=OX=mA#=pqjQ`ruBdaC6- z%3X;yqEoXse#|Z{?lUM*K_}Hm4WMa^d$o? zU_HNX;4kwquBVB*yd7-+g9iUg+%A4#;JV(QGH~5ae_`OdJ^t3fujlgWX_?k%Gv^!6 z(<6<)&-N@d@PBc=>t(s-e}VhYPJ{m%<*woy1AmI;eAU1o=K8wbz@KM*?l zFJiy^v4Nk@{`@lo*V`<=GVswHK4IXw+&}!q!2g5$yMG#ZE91ks9NKP&*-yq8_*V9l zTm!FU{nr`z{Ve}-1J^(ORBzyCxL(2rK8^L(kK1THFXDQ+)!<*pc7D{rzr+6a69dd`z`z^X-vW%Aw+Amaa6j88WXLIDJGUDA z`quE541W5RP&#(HaK2M6@mpLtjr(J{|Ge9U6aPxdErk9N7j2(ITwmWd_`lBl-*@38 z|L4sAgn?^&KF_$ePd&@|t%2`g{Er5{lksS_x7PCxu9pPHwfx7Kf2P5&?Ka1SlO0}X z{sk`FZMT36Cw_gKugHZHzqZ>t7f$@m+>e#JaN^hYX<=OJe+qGQY%}mUmUE+lYkh7t zDUH7Bf&Sl(=UNrcJaXr1~!l}GJU_Jlh!l}GZb3b$1z|*)M zwV!G`yuxzQ*nc&yA6LvWa4(OWiws=f{-Yn_q(jTeVg8K_yq1hUo-Gx#@{vY%NhT>fxpA} zIRjtB^{XGt(spiRd?G)aq46HZXBfEt2*o@D*UQ#`f$wHNUt{3=8NbxP_4Z4hfd_be zyoGV?|N3pMyA6K*_RJ3q{#tHFM_o9zi{G$6|J0CE!TG-I;-~iV3vMUBH~95>_G5$p zLT*R$>r_Zj`cuB2alX+Mz@f{fx8+AM?$itGqaRz-{8MK>eXWYKdGx(Xk*kHedr&X63?0Wm9!Qj_V4YwKmdRyiOgMSrw8@CwvO>Bny4179@ zK*x6s`TAoT&lvn#{!0d~%XPw#)5CW7z`%Dg{+S_XJL^A;pF-2-*B|ki!nk%fU9MRM zuJy??OQX zBYV2Op5kG16yv&F+037A@N0X{bKzvq)vRZ(3nzQ(ZG%D=PW&y*zk+d{?=sF;{#G;i zw4P~P_3J-_C{iT@$y-^IArvx4=!$Hh-_9_D&{ z(BRh}pZSTwe+zf#zjWc0@2@%ES6n#BZ{=y}n=YLAM{qs<)xZlG|A=v|{~p%gBB3}m zew6W%jBESr<@^Ez*Z#KLkn;k|sdDj?p0%vcod&=B$S~sXck#0elX~L2L*PGg;Ur%# zFP=B#>)!$f?# z8~7=<|CbG1Kh1Effd{x=?lo}zwD(~H*H7d9*uXcjoSz%`cE*2g;IASf;moxqg1FvWNbp!8V z{5=D|k@1fWd?(``emy|f<8H=B8u$cWKO`HtUN45H}GYQ|H;5lbGiOu;QB2nJ4Gp`?Wx~t zN-*$rmOt6Ra~Ypy;5CfrGOq2J#qGM#;MX4yywt#NVmbAOoV&T*g!9zsq{Y8TdY)UrjJ@{ne8T3|v3Owb8&|XE~JyK9BvdnQ>~@=PT9Zd5gh+KDUc& zUHlm?{$7J$KmB@}i@(stzt`Zugzb6A#h>Hif7sxk&h73=7yo=0|IZD6{nXp5F8(<# z{x=Q&VwV5Di$C4P|B=CeE$gqpEJpU^rY2JjPg99?z2C>}dXjPIByROkh4sQ8Nk1SaV=l_)~+G=cN_eVbNHPh_}?@5_3gVw zTt8IrZv6v{Ykl->3isQCZvJ|MU*BHXK7@Sz7NnN1KjyV-2>#uMe7*hu_z?U@4Su~n z|IQHn`gWk!M{l3Uab=tK(QgT9e(rws-9VE)*Ki-bz3qPK&uz{UgI{k~hlfz7%i!1B z$@(sXsn1@6UvKyRWC;1k41T@sdU6PU{nDH^kKXur+R+^v}UXEUz(^|bo(A^0l{em!l(hnh26v;596 zCueS6_QHh==gjx}vn8s|bF#A+Y5WUxsqh5yQhLPZ zCq1IPCR+6U!5%Y9l|_uXeoP?u2;x!^M|z&Hy$8ERbYuRxbLAxG1Z3)b==xz<{(+A# zD>!g=+td4@Yai)+0yxRL)?=?G9SXJwZYKRsojW)F-<5}SkCbPO)SJqv%d^E*o^F)q zd6cKeGp<*h3g%LoQf=rRE$HFhF*`g_y(q)_9f-Rdar?mgu5HgMJa=w>q%10r=^?S%f}VF@ z;is;jW(m7az|NHK4CHyj7PFSZHphW=c&ym>QO`ZdU)uvObsn@JFDOzP$yTY5J0ePy zKXpZAZV`uG7Kv@j(Z-PE=0K zpMo;}0rpsfGNE0(gf4l^o6z%l*yMVY_buC+b(_cPO+}fGOcR^^XuH&=kE0HPsOPVs zZ6Emv{SvMPXyYluBm0GXl<#_^y9P3rBK}GASJ)jN<7O0)>yEoECsV(R>O6>tJrpor2kG4xb zT!?mZ?awQ7E4fVrE5F1e=1&+VM(K7~>B@T*e5DI@fOb1;D8ED5rC)j=zvuO?(9+A_H`h$O$u0&m{alkukI>H*Shp(g}-7>4Ev@ki4E4<#MN`$8(J@GV< zFKrh|ls4ZR$h-R?DQ`6VrEeaEWK+Ah8ovx$_{Dna`%c_& z_oU-!2P8`%E&1SaU=%*P?FpyPrm=+^*eq&mJs2Z;zAe_jg>XvOly=Pj z%894vDY4!{n`-O<5 z`Z>Gpsr{r!I69Em5hMEEM|q}R@P*6h#Vj?=fn*%=M1($yc@0QmkI(i-;b+2yS3S7J zmnh#VL`JW}$!ke=uUD>Qy_Q_TY0x9LiM$>a=TjjqNrq&MXXFA%Qsnag12W2|M8jtM zJ66`^Ru*XMd7OrK2@Z-FVz4X~Hx)&Z_t^m42YfJ^gv2!n%a%#vu5hU8`Z>b#T9mIC zLAmIoh6!s=9puOVo`WO*48mHUKvT|9^z^1xK586YN=N^LSmf%}`YGw5j~AG*_6TwY z`hD^U!&v%B3hO^fzj4q{62w2AelXiQMk(yRp6wG@hM)&Goj{vA&@bkCcMJu@L@FYE zO=Z$z5cqW%rRiI4O`qdjtUdHu5v8fapfr7lG#v{~C84x@_kT}IRk5k6Vxuwk4439g zl@&X@F|<`!sg}g?o6(x4ik+$|wh^_d$+->*3o8&FM&(sSpGrm1$6;Q2SbONv$s~fU zsoFM1aE#Prs93phw5F37yYJMM{eq{r$r}*X43g|3$3nxI(g)h{n=^_e73B81m97;{ zA<$23#OJ6_*%eDmXR}OWvt|zi6 z)@Aar_N+qRs66QA{tk6B#n3SZKb0;lC%JN&Ta^c$-bT)G8;Mp9Bgt{nPb5hKl%MR@ z`71wpgktD$s_DN|8U518(ntA9pm&t72BN2ud~1bld_>Z5le!3N&jIjF!_V#z$1+Bz z)74t#q)_42PFRfiE_2dlHq+LgcOfhODGtuytA4IVj8-v9otlU+@Hu;kd&Xg?!LLPG zu6WhoG+Q@-(b|Z3HFz}3{wA(kSglglOv=w{lWdCKtnyG9-qJ5aT1L@f?Rg#o(R`fZ%#?zH3Mo@SwzT~EaKxdGe`)vO%)>(I$6=qyvj;aGOH-x37~W4l8C4=Ql=vq z)iBDM9-kO%$0x;)vPKU}z@peQQpBR7?P<6yiM5f~%Ovi*L{TKYR}eiz&}G;-VaHz( zd!fX9nby*YG8i>;;>tvStObtYQNs3tBZ}B#GA%Pc7V#uO#>eHjm`7wVC?)+Bg3=L6GHa7HX@o0iryBRHC1 z#Qwx|o-2QpY8ExR^CS8$owx{(0?m#HP(X&8gUXw!v?Sx_APHFtMj{u;cJ!B3qvGaJ zpEcKvA(!Q&n6LN+#}Xzlk3dX0ml~#=&Q_FYQqAw-_@a6O4?;P71>{IzLeEamao7@N ze&)_{Qk9vhw7|<9mJ&_A;y^Wed!OcqbXY>Gt-^HXD6dyRD19=M(;O%iVDd2Piw;YK z6yZ9vApK!0ORU#|^fs|28U_k#aEVYP3o3JzE***`l2_Tlysj9S*A=FqHb*lTERHXw`4e;6b*us0ARP_T>)kkts)Gn|6P&$58+=y~ZFq<)e)N?(yme?oVYlS=n{N(#=J+wZV!NN4i$ z2oz>=djxVMFrlM%J1ix8nbcowfktL3{kGYmNGg-%QI2{p!lKEK9H?6VIO+;aHRu?m zAJ*LZjd8GOZoM-zNUF~`51%7=z5a4hb_7zHM$WTAs&>yj9Hldga4M>eTau3*CV{W@ zeBIAi?Yw4sZ4s@KHpfu;ErD_#aX-X(txw}e&`u8xD)_T%+8efn+B>ouTG~3pS>e{s z>iUlA_7FBvvRd21SxpTson0C8GUsGxF3bi~byH_eD66xwts$$jqdB84)DmiMs1`ax zvI_(oGBMZ3M7Fh~p(_~P+7{}_tS1wx9~A|SUb!*U-V$n3G!`}Zkyk}y0;oGtVPm^_ zd{#=@lC^f%Dmx}K&EA?he@dGDP`7{DtU$7VTGrA_vV_O$xsy)VxAS^Z=C84@tWBA2 zkKCkLE|o0NhbTHaWhTW>yU6~*)tQ$kuPU*}_|vD@E&e4bsWXOISJ{^3r$Es9qfKo?Ew(k$N)uX5OBz#t5&8Pn_hg=gNI~uy9jSTUfdDEp9g_Pjn}G zZlS*}T36RdPMUtJ`*b9B!^Fv(+zp;vLrGq(`vq@tZC&jH?z-5_sqWaO>+9%d0ynqm zbMqRnpXq)j*5s~=)h?YdW!lY)>uRI!q`+O>HiDip9HHZrq6M^UqUfiBbS_(TXdS7M z-)1^;TGS}JZWOCUq&%E_yi|MYc-{J8}=pg2pB+%1>3tj@Gbxe5b4!svNHf4lRFZ_jU@2RA*Ph&vrP)HMv6Il^LQE z5@akv9kn}=acG5s?TS0N#}B3!*d^?dAQ#Z8nn}xN(g8K6HxbscnBM5~Y2l=c#e6d5 z)5*}A$kWW8lFha=o$=X&B- ze>&wwJC`kLrYJQm$oNrmTRNGgxVa`IGtq+IRgC7cnOnn8K9 zxhOd)oeHAKOgdSllRt#1Tz7Yl%&?$?$_)HywkMN`=5y2zzYtBW@l$JyFpx~Gjphrv zfI4Na5W-w{I*4`_lHES?2+s%UZt_dCm~N-bR97^W%w)vS`eY#*6v!C!WRW{#x1SA4 z#h7~L=sMY%$vsHsxTpJt^<*ocOb+*&Vk#(_u0y9pr(baB(bU`n*x`IAjn}DIpA+~w z*v&1iiRH_e$o6h$jlUt0ET+uCFuC|Jl}Bhz4|5T zY_gE^D8ffB%Ev9%*f{ln9Y$Kcrw@StP>48H8zxoPnwz-x=S+u07TA#XF~5n|Y^`dp zIaYPJ<;b1!Q4`~P=I@Qq-@Ra50)~a}o6E`bBj-&0I61x@cv=48G zT3r^f&>XKhdJWkcdAL7vWLJc1wEM}(z!Q;{J$;eA-;L~hJhFdhXgid%J^VJ8gqPxLt!iI_Z@`7 zwHJ#{%+L5nKD^OX1jdK9f}dNY?-q|lBohtj4uUr z7CNyko!~LLGRf&?SHPU;($fEL<56}V6v@!LWNe=7>9Lgz;YvDQk=Be8-!dzOj#HX* z5#w?&Qlym+6K>4%|Ojs`K}wAX`lPIzQh!)Qqzr|G$+Tt!*T& zt|RB)Z#H#m_z&L6Vo;cIXlPjyW<=!jS0iJ*79USGgeNO6Nc^wmj$g| zO{to3hC}j`!Um35L2K`)wBg$C#luX<&(#@8FWvqeF>RA`o|5wO9I=AdK1^wvvAoIL zDjEET2$;~??@+>U^(BR_*(TaayC!TlcUc@~uj-g6A6s6q9xng5 zy3o!Y;imMCeAqrC`AY)Xxl8hEj(p(1q#eyTZJFf91G}I{`w@SMc82rcns}%&kI;iWu$DsbQAYVw``8HI`nweD0IOl^@>epnqBk z&6M7C`K1K4!@4Tx3YJ65QfX#U7DvP#z9vM6dN`c054FR0qDENuJ7Ao)uDJqPKz7~m z%M(Kq+>*D-lU#EqmotvJ;cc%W32y2BT6vP|(0!6&f?K-THkep%cE=2p!sW`va!_ve zT<1DP!k?RrCI7%LZ;9e|+KwKgcAR(xzOVvcMx5gpO0I5yFMo>@CEWwrtRQ?E1G94y{C;qyL z_4aY;v-C2QGamX_xbDxFEpGeyQ;XaEVZ4mXbv-9o+^(l*al5_s!u4@)vbbHJ`z&tP z=cHxdZtr=yGr;xqq>u1Mkar{K?ZpA;4dahI)*WcBOBi^O>KCzQk{AJ-iihm;U zO^Ty_k0_4$0DrD?KzlP`)Y&ClaFlmY@#myIKT*6-_)Chf6pryQ?0-$p^FJ&7I??}4 zarzOD3I9}_ztO>=UbgzUHw))-dCZQm#^T)HJc$=%3p*I^?Y8u6XSNvnvEo~Vzpm`` z3qPeekDEB)pBz!{u@IO3kq{gM9XtsDyg}@al}-;o^Oghtu@riYGx5L$_~+$N?)YK{ z`qg5mpg8=vMe(ho?^7J@KcM)hqJKd+>fa=MlpKHXH-z6L9QDLWA5(htEA%_G_cLkl z9HqxsS6VI3$Gug`{g&eW!tb{@_p9gOPm8mipNsz67H9of(f2A&UmP+4pQrFcQta$j z`m}KTWFPIlD*P8pKU3`E^B4Nfay)*k^nVfkAB4mI_}Ya2%_Q#OzHix)rEX)%ez2U) zUHQC5ecq7zj8Popo-ZoiBIVI<&rCo)H%L6D_zJOqhvFDVE>s-j$a@suBzD>r|4?{N z@qY>5q&V8OQ*n&v_9{MJ+WP~=R|`L;IQ~)iHO0}-ey@0+*g2>8uY`Z7I39#}MREA? zGsRa(oW8VJcD&Gk#%nI|n-vcvK11=X5}&Jhzrxu!*M7hopTD@y z?6mCg`TmUf=ShpR{|;EAN$GJN zz<3q2{^Zdc`(N&;G~xv(w`2|6Ou?2Q1F|kHl{WEYA9ia@?P_IO`{fzkVtl{=qs4 z{(%?A#TWe_l^%cb^pRzs%iSpDUQv3iw~Ubv1N(R&;Y}82JKq;O_&yZ;`LOV>EB$QY zZHlMGZ}%#`L-g&!;Rme$^eR2d-DYw2=dZ;-PbfS1PS74p&!0Q<=*8h_i?f~2i@%jKSLt_%ezB#u*GX0=eVgdlDgKJs->x|3@XslZ`n;}qquBpI zaeS#*4yTz1iOY>CtT*C#!9M0SnqyAQenwu-gSKn^G%=|44Z@-Cka$o*zd`9So`1E1 z{)EzFoQ!9p-sjkMS?`xPCq>cC`M7%08}duU62XP +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#include + + + +#if CTP_CHARGER_DETECT +#include +#endif + +#if defined(CONFIG_FB) +#include +#include + +#elif defined(CONFIG_HAS_EARLYSUSPEND) +#include +/* Early-suspend level */ +#define FT_SUSPEND_LEVEL 1 +#endif + +#if CTP_PROC_INTERFACE +#include "ft5x06_test_lib.h" +#endif + +#if CTP_LOCKDOWN_INFO +static u8 lockdown_info[FT_LOCKDOWN_SIZE]; +extern u8 tp_color; + +static u8 nomal_boot; +#endif + +static u8 TP_Maker, LCD_Maker; + +#define FT_DEBUG_DIR_NAME "ts_debug" + +#define TPD_MAX_POINTS_5 5 +#define TPD_MAX_POINTS_10 10 + +#define TPD_MAX_POINTS_2 2 +#define AUTO_CLB_NEED 1 +#define AUTO_CLB_NONEED 0 +static struct Upgrade_Info fts_updateinfo[] = { + {0x55, "FT5x06", TPD_MAX_POINTS_5, AUTO_CLB_NEED, 50, 30, 0x79, 0x03, 1, 2000}, + {0x08, "FT5606", TPD_MAX_POINTS_5, AUTO_CLB_NEED, 50, 30, 0x79, 0x06, 100, 2000}, + {0x0a, "FT5x16", TPD_MAX_POINTS_5, AUTO_CLB_NEED, 50, 30, 0x79, 0x07, 1, 1500}, + {0x05, "FT6208", TPD_MAX_POINTS_2, AUTO_CLB_NONEED, 60, 30, 0x79, 0x05, 10, 2000}, + {0x06, "FT6x06", TPD_MAX_POINTS_2, AUTO_CLB_NONEED, 100, 30, 0x79, 0x08, 10, 2000}, + {0x36, "FT6x36", TPD_MAX_POINTS_2, AUTO_CLB_NONEED, 100, 30, 0x79, 0x18, 10, 2000}, + {0x55, "FT5x06i", TPD_MAX_POINTS_5, AUTO_CLB_NEED, 50, 30, 0x79, 0x03, 1, 2000}, + {0x14, "FT5336", TPD_MAX_POINTS_10, AUTO_CLB_NONEED, 30, 30, 0x79, 0x11, 10, 2000}, + {0x13, "FT3316", TPD_MAX_POINTS_5, AUTO_CLB_NONEED, 30, 30, 0x79, 0x11, 10, 2000}, + {0x12, "FT5436i", TPD_MAX_POINTS_5, AUTO_CLB_NONEED, 30, 30, 0x79, 0x11, 10, 2000}, + {0x11, "FT5336i", TPD_MAX_POINTS_5, AUTO_CLB_NONEED, 30, 30, 0x79, 0x11, 10, 2000}, +}; + +#define FT_STORE_TS_INFO(buf, id, name, max_tch, group_id, fw_vkey_support, \ + fw_name, fw_maj, fw_min, fw_sub_min) \ + snprintf(buf, FT_INFO_MAX_LEN, \ + "controller\t= focaltech\n" \ + "model\t\t= 0x%x\n" \ + "name\t\t= %s\n" \ + "max_touches\t= %d\n" \ + "drv_ver\t\t= 0x%x\n" \ + "group_id\t= 0x%x\n" \ + "fw_vkey_support\t= %s\n" \ + "fw_name\t\t= %s\n" \ + "fw_ver\t\t= %d.%d.%d\n", id, name, \ + max_tch, FT_DRIVER_VERSION, group_id, \ + fw_vkey_support, fw_name, fw_maj, fw_min, \ + fw_sub_min) + +#if CTP_PROC_INTERFACE +#define CTP_PARENT_PROC_NAME "touchscreen" +#define CTP_OPEN_PROC_NAME "ctp_openshort_test" +#define CTP_LOCKDOWN_INFOR_NAME "lockdown_info" + +#define CTP_COLOR_INFOR_NAME "panel_color" + + + + + +static struct semaphore g_device_mutex; + +static ssize_t ctp_open_proc_read(struct file *file, char __user *buf, size_t count, loff_t *ppos); +static ssize_t ctp_open_proc_write(struct file *filp, const char __user *userbuf, size_t count, loff_t *ppos); +static const struct file_operations ctp_open_procs_fops = { + .write = ctp_open_proc_write, + .read = ctp_open_proc_read, + .owner = THIS_MODULE, +}; + +static ssize_t ctp_lockdown_proc_read(struct file *file, char __user *buf, size_t count, loff_t *ppos); +static ssize_t ctp_lockdown_proc_write(struct file *filp, const char __user *userbuf, size_t count, loff_t *ppos); + +static ssize_t ctp_color_proc_read(struct file *file, char __user *buf, size_t count, loff_t *ppos); +static ssize_t ctp_color_proc_write(struct file *filp, const char __user *userbuf, size_t count, loff_t *ppos); + +static const struct file_operations ctp_lockdown_procs_fops = { + .write = ctp_lockdown_proc_write, + .read = ctp_lockdown_proc_read, + .owner = THIS_MODULE, +}; + + +static const struct file_operations ctp_color_procs_fops = { + .write = ctp_color_proc_write, + .read = ctp_color_proc_read, + .owner = THIS_MODULE, +}; + +#endif + +#if FTS_PROC_APK_DEBUG +#define PROC_UPGRADE 0 +#define PROC_READ_REGISTER 1 +#define PROC_WRITE_REGISTER 2 +#define PROC_RAWDATA 3 +#define PROC_AUTOCLB 4 + +#define PROC_NAME "ft5x0x-debug" +static unsigned char proc_operate_mode = PROC_RAWDATA; +static struct proc_dir_entry *ft5x0x_proc_entry +#endif + +static u8 is_ic_update_crash +static struct i2c_client *update_client + +#if CTP_CHARGER_DETECT +extern int power_supply_get_battery_charge_state(struct power_supply *psy); +static struct power_supply *batt_psy +static u8 is_charger_plug +static u8 pre_charger_status + +#endif + +#if CTP_PROC_INTERFACE +static struct i2c_client *g_focalclient +#endif + +#if CTP_PROC_INTERFACE +static int focal_i2c_Read(unsigned char *writebuf, + int writelen, unsigned char *readbuf, int readlen) +{ + int ret; + + if (writelen > 0) { + struct i2c_msg msgs[] = { + { + .addr = g_focalclient->addr, + .flags = 0, + .len = writelen, + .buf = writebuf, + }, + { + .addr = g_focalclient->addr, + .flags = I2C_M_RD, + .len = readlen, + .buf = readbuf, + }, + }; + ret = i2c_transfer(g_focalclient->adapter, msgs, 2); + if (ret < 0) + dev_err(&g_focalclient->dev, "f%s: i2c read error.\n", + __func__); + } else { + struct i2c_msg msgs[] = { + { + .addr = g_focalclient->addr, + .flags = I2C_M_RD, + .len = readlen, + .buf = readbuf, + }, + }; + ret = i2c_transfer(g_focalclient->adapter, msgs, 1); + if (ret < 0) + dev_err(&g_focalclient->dev, "%s:i2c read error.\n", __func__); + } + return ret; +} +/*write data by i2c*/ +static int focal_i2c_Write(unsigned char *writebuf, int writelen) +{ + int ret; + + struct i2c_msg msg[] = { + { + .addr = g_focalclient->addr, + .flags = 0, + .len = writelen, + .buf = writebuf, + }, + }; + + ret = i2c_transfer(g_focalclient->adapter, msg, 1); + if (ret < 0) + dev_err(&g_focalclient->dev, "%s i2c write error.\n", __func__); + + return ret; +} +#endif + +static int ft5x06_i2c_read(struct i2c_client *client, char *writebuf, + int writelen, char *readbuf, int readlen) +{ + int ret; + + if (writelen > 0) { + struct i2c_msg msgs[] = { + { + .addr = client->addr, + .flags = 0, + .len = writelen, + .buf = writebuf, + }, + { + .addr = client->addr, + .flags = I2C_M_RD, + .len = readlen, + .buf = readbuf, + }, + }; + ret = i2c_transfer(client->adapter, msgs, 2); + if (ret < 0) + dev_err(&client->dev, "%s: i2c read error.\n", __func__); + } else { + struct i2c_msg msgs[] = { + { + .addr = client->addr, + .flags = I2C_M_RD, + .len = readlen, + .buf = readbuf, + }, + }; + ret = i2c_transfer(client->adapter, msgs, 1); + if (ret < 0) + dev_err(&client->dev, "%s:i2c read error.\n", __func__); + } + return ret; +} + +static int ft5x06_i2c_write(struct i2c_client *client, char *writebuf, + int writelen) { + int ret; + + struct i2c_msg msgs[] = { + { + .addr = client->addr, + .flags = 0, + .len = writelen, + .buf = writebuf, + }, + }; + ret = i2c_transfer(client->adapter, msgs, 1); + if (ret < 0) + dev_err(&client->dev, "%s: i2c write error.\n", __func__); + + return ret; +} + +static int ft5x0x_write_reg(struct i2c_client *client, u8 addr, const u8 val) +{ + u8 buf[2] = {0}; + + buf[0] = addr; + buf[1] = val; + + return ft5x06_i2c_write(client, buf, sizeof(buf)); +} + +static int ft5x0x_read_reg(struct i2c_client *client, u8 addr, u8 *val) +{ + return ft5x06_i2c_read(client, &addr, 1, val, 1); +} + +static void ft5x06_update_fw_vendor_id(struct ft5x06_ts_data *data) +{ + struct i2c_client *client = data->client; + u8 reg_addr; + int err; + + reg_addr = FT_REG_FW_VENDOR_ID; + err = ft5x06_i2c_read(client, ®_addr, 1, &data->fw_vendor_id, 1); + if (err < 0) + dev_err(&client->dev, "fw vendor id read failed"); +} + +static void ft5x06_update_fw_ver(struct ft5x06_ts_data *data) +{ + struct i2c_client *client = data->client; + u8 reg_addr; + int err; + + reg_addr = FT_REG_FW_VER; + err = ft5x06_i2c_read(client, ®_addr, 1, &data->fw_ver[0], 1); + if (err < 0) + dev_err(&client->dev, "fw major version read failed"); + + reg_addr = FT_REG_FW_MIN_VER; + err = ft5x06_i2c_read(client, ®_addr, 1, &data->fw_ver[1], 1); + if (err < 0) + dev_err(&client->dev, "fw minor version read failed"); + + reg_addr = FT_REG_FW_SUB_MIN_VER; + err = ft5x06_i2c_read(client, ®_addr, 1, &data->fw_ver[2], 1); + if (err < 0) + dev_err(&client->dev, "fw sub minor version read failed"); + + dev_info(&client->dev, "Firmware version = %d.%d.%d\n", + data->fw_ver[0], data->fw_ver[1], data->fw_ver[2]); +} + +static irqreturn_t ft5x06_ts_interrupt(int irq, void *dev_id) +{ + struct ft5x06_ts_data *data = dev_id; + struct input_dev *ip_dev; + int rc, i; + u32 id, x, y, status, num_touches; + u8 reg = 0x00, *buf; + bool update_input = false; + + if (!data) { + CTP_ERROR("%s: Invalid data\n", __func__); + return IRQ_HANDLED; + } + + +#if CTP_CHARGER_DETECT + if (!batt_psy) { + + batt_psy = power_supply_get_by_name("usb"); + } else{ + is_charger_plug = (u8)power_supply_get_battery_charge_state(batt_psy); + + + if (is_charger_plug != pre_charger_status) { + pre_charger_status = is_charger_plug; + ft5x0x_write_reg(update_client, 0x8B, is_charger_plug); + + } + } + +#endif + + ip_dev = data->input_dev; + buf = data->tch_data; + + rc = ft5x06_i2c_read(data->client, ®, 1, + buf, data->tch_data_len); + if (rc < 0) { + dev_err(&data->client->dev, "%s: read data fail\n", __func__); + return IRQ_HANDLED; + } + + for (i = 0; i < data->pdata->num_max_touches; i++) { + id = (buf[FT_TOUCH_ID_POS + FT_ONE_TCH_LEN * i]) >> 4; + if (id >= FT_MAX_ID) + break; + + update_input = true; + + x = (buf[FT_TOUCH_X_H_POS + FT_ONE_TCH_LEN * i] & 0x0F) << 8 | + (buf[FT_TOUCH_X_L_POS + FT_ONE_TCH_LEN * i]); + y = (buf[FT_TOUCH_Y_H_POS + FT_ONE_TCH_LEN * i] & 0x0F) << 8 | + (buf[FT_TOUCH_Y_L_POS + FT_ONE_TCH_LEN * i]); + + status = buf[FT_TOUCH_EVENT_POS + FT_ONE_TCH_LEN * i] >> 6; + + num_touches = buf[FT_TD_STATUS] & FT_STATUS_NUM_TP_MASK; + + /* invalid combination */ + if (!num_touches && !status && !id) + break; + + if (y == 2000) { + y = 1344; + switch (x) { + case 180: + x = 150; + break; + case 540: + x = 360; + break; + case 900: + x = 580; + break; + default: + break; + } + + } + + input_mt_slot(ip_dev, id); + if (status == FT_TOUCH_DOWN || status == FT_TOUCH_CONTACT) { + input_mt_report_slot_state(ip_dev, MT_TOOL_FINGER, 1); + input_report_abs(ip_dev, ABS_MT_POSITION_X, x); + input_report_abs(ip_dev, ABS_MT_POSITION_Y, y); + } else { + input_mt_report_slot_state(ip_dev, MT_TOOL_FINGER, 0); + } + } + + if (update_input) { + input_mt_report_pointer_emulation(ip_dev, false); + input_sync(ip_dev); + } + + if (num_touches == 0) { + for (i = 0; i < data->pdata->num_max_touches; i++) { + input_mt_slot(ip_dev, i); + input_mt_report_slot_state(ip_dev, MT_TOOL_FINGER, 0); + } + input_mt_report_pointer_emulation(ip_dev, false); + input_sync(ip_dev); + } + return IRQ_HANDLED; +} + +static int ft5x06_power_on(struct ft5x06_ts_data *data, bool on) +{ + int rc; + + if (!on) + goto power_off; + + rc = regulator_enable(data->vdd); + if (rc) { + dev_err(&data->client->dev, + "Regulator vdd enable failed rc=%d\n", rc); + return rc; + } + + rc = regulator_enable(data->vcc_i2c); + if (rc) { + dev_err(&data->client->dev, + "Regulator vcc_i2c enable failed rc=%d\n", rc); + regulator_disable(data->vdd); + } + + return rc; + +power_off: + rc = regulator_disable(data->vdd); + if (rc) { + dev_err(&data->client->dev, + "Regulator vdd disable failed rc=%d\n", rc); + return rc; + } + + rc = regulator_disable(data->vcc_i2c); + if (rc) { + dev_err(&data->client->dev, + "Regulator vcc_i2c disable failed rc=%d\n", rc); + rc = regulator_enable(data->vdd); + if (rc) { + dev_err(&data->client->dev, + "Regulator vdd enable failed rc=%d\n", rc); + } + } + + return rc; +} + +static int ft5x06_power_init(struct ft5x06_ts_data *data, bool on) +{ + int rc; + + if (!on) + goto pwr_deinit; + + data->vdd = regulator_get(&data->client->dev, "vdd"); + if (IS_ERR(data->vdd)) { + rc = PTR_ERR(data->vdd); + dev_err(&data->client->dev, + "Regulator get failed vdd rc=%d\n", rc); + return rc; + } + + if (regulator_count_voltages(data->vdd) > 0) { + rc = regulator_set_voltage(data->vdd, FT_VTG_MIN_UV, + FT_VTG_MAX_UV); + if (rc) { + dev_err(&data->client->dev, + "Regulator set_vtg failed vdd rc=%d\n", rc); + goto reg_vdd_put; + } + } + + data->vcc_i2c = regulator_get(&data->client->dev, "vcc_i2c"); + if (IS_ERR(data->vcc_i2c)) { + rc = PTR_ERR(data->vcc_i2c); + dev_err(&data->client->dev, + "Regulator get failed vcc_i2c rc=%d\n", rc); + goto reg_vdd_set_vtg; + } + + if (regulator_count_voltages(data->vcc_i2c) > 0) { + rc = regulator_set_voltage(data->vcc_i2c, FT_I2C_VTG_MIN_UV, + FT_I2C_VTG_MAX_UV); + if (rc) { + dev_err(&data->client->dev, + "Regulator set_vtg failed vcc_i2c rc=%d\n", rc); + goto reg_vcc_i2c_put; + } + } + + return 0; + +reg_vcc_i2c_put: + regulator_put(data->vcc_i2c); +reg_vdd_set_vtg: + if (regulator_count_voltages(data->vdd) > 0) + regulator_set_voltage(data->vdd, 0, FT_VTG_MAX_UV); +reg_vdd_put: + regulator_put(data->vdd); + return rc; + +pwr_deinit: + if (regulator_count_voltages(data->vdd) > 0) + regulator_set_voltage(data->vdd, 0, FT_VTG_MAX_UV); + + regulator_put(data->vdd); + + if (regulator_count_voltages(data->vcc_i2c) > 0) + regulator_set_voltage(data->vcc_i2c, 0, FT_I2C_VTG_MAX_UV); + + regulator_put(data->vcc_i2c); + return 0; +} + +static int ft5x06_ts_pinctrl_select(struct ft5x06_ts_data *ft5x06_data, + bool on) +{ + struct pinctrl_state *pins_state; + int ret; + + pins_state = on ? ft5x06_data->gpio_state_active + : ft5x06_data->gpio_state_suspend; + if (!IS_ERR_OR_NULL(pins_state)) { + ret = pinctrl_select_state(ft5x06_data->ts_pinctrl, pins_state); + if (ret) { + dev_err(&ft5x06_data->client->dev, + "can not set %s pins\n", + on ? "pmx_ts_active" : "pmx_ts_suspend"); + return ret; + } + } else { + dev_err(&ft5x06_data->client->dev, + "not a valid '%s' pinstate\n", + on ? "pmx_ts_active" : "pmx_ts_suspend"); + } + + return 0; +} + + +#ifdef CONFIG_PM +static int ft5x06_ts_suspend(struct device *dev) +{ + struct ft5x06_ts_data *data = dev_get_drvdata(dev); + char txbuf[2], i; + int err; + + if (data->loading_fw) { + dev_info(dev, "Firmware loading in process...\n"); + return 0; + } + + if (data->suspended) { + dev_info(dev, "Already in suspend state\n"); + return 0; + } + + disable_irq(data->client->irq); + + /* release all touches */ + for (i = 0; i < data->pdata->num_max_touches; i++) { + input_mt_slot(data->input_dev, i); + input_mt_report_slot_state(data->input_dev, MT_TOOL_FINGER, 0); + } + input_mt_report_pointer_emulation(data->input_dev, false); + input_sync(data->input_dev); + + if (gpio_is_valid(data->pdata->reset_gpio)) { + txbuf[0] = FT_REG_PMODE; + txbuf[1] = FT_PMODE_HIBERNATE; + err = ft5x06_i2c_write(data->client, txbuf, sizeof(txbuf)); + + msleep(data->pdata->hard_rst_dly); + } + + + if (data->pdata->power_on) { + err = data->pdata->power_on(false); + if (err) { + dev_err(dev, "power off failed"); + goto pwr_off_fail; + } + } else { + err = ft5x06_power_on(data, false); + if (err) { + dev_err(dev, "power off failed"); + goto pwr_off_fail; + } + } + + data->suspended = true; + + return 0; + + +pwr_off_fail: + if (gpio_is_valid(data->pdata->reset_gpio)) { + gpio_set_value_cansleep(data->pdata->reset_gpio, 0); + msleep(data->pdata->hard_rst_dly); + gpio_set_value_cansleep(data->pdata->reset_gpio, 1); + } + enable_irq(data->client->irq); + return err; + +} + +static int ft5x06_ts_resume(struct device *dev) +{ + struct ft5x06_ts_data *data = dev_get_drvdata(dev); + int err; + + if (!data->suspended) { + dev_dbg(dev, "Already in awake state\n"); + return 0; + } + + + if (data->pdata->power_on) { + err = data->pdata->power_on(true); + if (err) { + dev_err(dev, "power on failed"); + return err; + } + } else { + err = ft5x06_power_on(data, true); + if (err) { + dev_err(dev, "power on failed"); + return err; + } + } + + if (gpio_is_valid(data->pdata->reset_gpio)) { + gpio_set_value_cansleep(data->pdata->reset_gpio, 0); + msleep(data->pdata->hard_rst_dly); + gpio_set_value_cansleep(data->pdata->reset_gpio, 1); + } + + msleep(data->pdata->soft_rst_dly); + + enable_irq(data->client->irq); + +#if CTP_CHARGER_DETECT + batt_psy = power_supply_get_by_name("usb"); + if (!batt_psy) + CTP_ERROR("tp resume battery supply not found\n"); + else{ + is_charger_plug = (u8)power_supply_get_battery_charge_state(batt_psy); + + CTP_DEBUG("is_charger_plug %d, prev %d", is_charger_plug, pre_charger_status); + if (is_charger_plug) { + ft5x0x_write_reg(update_client, 0x8B, 1); + } else{ + ft5x0x_write_reg(update_client, 0x8B, 0); + } + } + pre_charger_status = is_charger_plug; +#endif + + + data->suspended = false; + + return 0; +} + +static const struct dev_pm_ops ft5x06_ts_pm_ops = { +#if (!defined(CONFIG_FB) && !defined(CONFIG_HAS_EARLYSUSPEND)) + .suspend = ft5x06_ts_suspend, + .resume = ft5x06_ts_resume, +#endif +}; + +#else +static int ft5x06_ts_suspend(struct device *dev) +{ + return 0; +} + +static int ft5x06_ts_resume(struct device *dev) +{ + return 0; +} + +#endif + +#if defined(CONFIG_FB) + +static void fb_notify_resume_work(struct work_struct *work) +{ + struct ft5x06_ts_data *ft5x06_data = + container_of(work, struct ft5x06_ts_data, fb_notify_work); + ft5x06_ts_resume(&ft5x06_data->client->dev); +} +static int fb_notifier_callback(struct notifier_block *self, + unsigned long event, void *data) +{ + struct fb_event *evdata = data; + int *blank; + struct ft5x06_ts_data *ft5x06_data = + container_of(self, struct ft5x06_ts_data, fb_notif); + + if (evdata && evdata->data && event == FB_EVENT_BLANK && + ft5x06_data && ft5x06_data->client) { + blank = evdata->data; + if (*blank == FB_BLANK_UNBLANK) + schedule_work(&ft5x06_data->fb_notify_work); + else if (*blank == FB_BLANK_POWERDOWN) { + flush_work(&ft5x06_data->fb_notify_work); + ft5x06_ts_suspend(&ft5x06_data->client->dev); + } + } + + return 0; +} +#elif defined(CONFIG_HAS_EARLYSUSPEND) +static void ft5x06_ts_early_suspend(struct early_suspend *handler) +{ + struct ft5x06_ts_data *data = container_of(handler, + struct ft5x06_ts_data, + early_suspend); + + ft5x06_ts_suspend(&data->client->dev); +} + +static void ft5x06_ts_late_resume(struct early_suspend *handler) +{ + struct ft5x06_ts_data *data = container_of(handler, + struct ft5x06_ts_data, + early_suspend); + + ft5x06_ts_resume(&data->client->dev); +} +#endif + +static int ft5x06_fw_upgrade_start(struct i2c_client *client, + const u8 *data, u32 data_len) +{ + struct ft5x06_ts_data *ts_data = i2c_get_clientdata(client); + struct fw_upgrade_info info = ts_data->pdata->info; + + u8 reg_addr; + u8 chip_id = 0x00; + u8 w_buf[FT_MAX_WR_BUF] = {0}, r_buf[FT_MAX_RD_BUF] = {0}; + u8 pkt_buf[FT_FW_PKT_LEN + FT_FW_PKT_META_LEN]; + int i, j, temp; + u32 pkt_num, pkt_len; + u8 is_5336_new_bootloader = false; + u8 is_5336_fwsize_30 = false; + u8 fw_ecc; + + +#if 1 + reg_addr = FT_REG_ID; + temp = ft5x06_i2c_read(client, ®_addr, 1, &chip_id, 1); + if (temp < 0) { + dev_err(&client->dev, "version read failed"); + } + + if (is_ic_update_crash) { + chip_id = CTP_IC_TYPE_1; + + } + for (i = 0; i < sizeof(fts_updateinfo)/sizeof(struct Upgrade_Info); i++) { + if (chip_id == fts_updateinfo[i].CHIP_ID) { + info.auto_cal = fts_updateinfo[i].AUTO_CLB; + info.delay_55 = fts_updateinfo[i].delay_55; + info.delay_aa = fts_updateinfo[i].delay_aa; + info.delay_erase_flash = fts_updateinfo[i].delay_earse_flash; + info.delay_readid = fts_updateinfo[i].delay_readid; + info.upgrade_id_1 = fts_updateinfo[i].upgrade_id_1; + info.upgrade_id_2 = fts_updateinfo[i].upgrade_id_2; + + break; + } + } + + ts_data->family_id = chip_id; + + if (i >= sizeof(fts_updateinfo)/sizeof(struct Upgrade_Info)) { + info.auto_cal = fts_updateinfo[7].AUTO_CLB; + info.delay_55 = fts_updateinfo[7].delay_55; + info.delay_aa = fts_updateinfo[7].delay_aa; + info.delay_erase_flash = fts_updateinfo[7].delay_earse_flash; + info.delay_readid = fts_updateinfo[7].delay_readid; + info.upgrade_id_1 = fts_updateinfo[7].upgrade_id_1; + info.upgrade_id_2 = fts_updateinfo[7].upgrade_id_2; + } +#endif + + CTP_DEBUG("enter fw_upgrade_start"); + dev_err(&client->dev, "id1 = 0x%x id2 = 0x%x family_id=0x%x\n", + info.upgrade_id_1, info.upgrade_id_2, ts_data->family_id); + /* determine firmware size */ + if (*(data + data_len - FT_BLOADER_SIZE_OFF) == FT_BLOADER_NEW_SIZE) + is_5336_fwsize_30 = true; + else + is_5336_fwsize_30 = false; + + + for (i = 0, j = 0; i < FT_UPGRADE_LOOP; i++) { + msleep(FT_EARSE_DLY_MS); + + if (gpio_is_valid(ts_data->pdata->reset_gpio)) { + gpio_set_value_cansleep(ts_data->pdata->reset_gpio, 0); + msleep(ts_data->pdata->hard_rst_dly); + gpio_set_value_cansleep(ts_data->pdata->reset_gpio, 1); + } + + if (i <= (FT_UPGRADE_LOOP / 2)) + msleep(info.delay_55 + i * 3); + else + msleep(info.delay_55 - (i - (FT_UPGRADE_LOOP / 2)) * 2); + + /* Enter upgrade mode */ + w_buf[0] = FT_UPGRADE_55; + ft5x06_i2c_write(client, &w_buf[0], 1); + usleep(FT_55_AA_DLY_NS); + w_buf[0] = FT_UPGRADE_AA; + ft5x06_i2c_write(client, &w_buf[0], 1); + + /* check READ_ID */ + msleep(info.delay_readid); + w_buf[0] = FT_READ_ID_REG; + w_buf[1] = 0x00; + w_buf[2] = 0x00; + w_buf[3] = 0x00; + + ft5x06_i2c_read(client, w_buf, 4, r_buf, 2); + + CTP_DEBUG("%X, %X", r_buf[0], r_buf[1]); + if (r_buf[0] != info.upgrade_id_1 + || r_buf[1] != info.upgrade_id_2) { + dev_err(&client->dev, "Upgrade ID mismatch(%d), IC=0x%x 0x%x, info=0x%x 0x%x\n", + i, r_buf[0], r_buf[1], + info.upgrade_id_1, info.upgrade_id_2); + } else + break; + } + + if (i >= FT_UPGRADE_LOOP) { + dev_err(&client->dev, "Abort upgrade\n"); + return -EIO; + } + + w_buf[0] = 0xcd; + ft5x06_i2c_read(client, w_buf, 1, r_buf, 1); + + if (r_buf[0] <= 4) + is_5336_new_bootloader = FT_BLOADER_VERSION_LZ4; + else if (r_buf[0] == 7) + is_5336_new_bootloader = FT_BLOADER_VERSION_Z7; + else if (r_buf[0] >= 0x0f && + ((ts_data->family_id == FT_FT5336_FAMILY_ID_0x11) || + (ts_data->family_id == FT_FT5336_FAMILY_ID_0x12) || + (ts_data->family_id == FT_FT5336_FAMILY_ID_0x13) || + (ts_data->family_id == FT_FT5336_FAMILY_ID_0x14))) + is_5336_new_bootloader = FT_BLOADER_VERSION_GZF; + else + is_5336_new_bootloader = FT_BLOADER_VERSION_LZ4; + + dev_dbg(&client->dev, "bootloader type=%d, r_buf=0x%x, family_id=0x%x\n", + is_5336_new_bootloader, r_buf[0], ts_data->family_id); + + /* erase app and panel paramenter area */ + w_buf[0] = FT_ERASE_APP_REG; + ft5x06_i2c_write(client, w_buf, 1); + msleep(info.delay_erase_flash); + + if (is_5336_fwsize_30) { + w_buf[0] = FT_ERASE_PANEL_REG; + ft5x06_i2c_write(client, w_buf, 1); + } + msleep(FT_EARSE_DLY_MS); + + /* program firmware */ + if (is_5336_new_bootloader == FT_BLOADER_VERSION_LZ4 + || is_5336_new_bootloader == FT_BLOADER_VERSION_Z7) + data_len = data_len - FT_DATA_LEN_OFF_OLD_FW; + else + data_len = data_len - FT_DATA_LEN_OFF_NEW_FW; + + pkt_num = (data_len) / FT_FW_PKT_LEN; + pkt_len = FT_FW_PKT_LEN; + pkt_buf[0] = FT_FW_START_REG; + pkt_buf[1] = 0x00; + fw_ecc = 0; + + for (i = 0; i < pkt_num; i++) { + temp = i * FT_FW_PKT_LEN; + pkt_buf[2] = (u8) (temp >> FT_8BIT_SHIFT); + pkt_buf[3] = (u8) temp; + pkt_buf[4] = (u8) (pkt_len >> FT_8BIT_SHIFT); + pkt_buf[5] = (u8) pkt_len; + + for (j = 0; j < FT_FW_PKT_LEN; j++) { + pkt_buf[6 + j] = data[i * FT_FW_PKT_LEN + j]; + fw_ecc ^= pkt_buf[6 + j]; + } + + ft5x06_i2c_write(client, pkt_buf, + FT_FW_PKT_LEN + FT_FW_PKT_META_LEN); + msleep(FT_FW_PKT_DLY_MS); + } + + /* send remaining bytes */ + if ((data_len) % FT_FW_PKT_LEN > 0) { + temp = pkt_num * FT_FW_PKT_LEN; + pkt_buf[2] = (u8) (temp >> FT_8BIT_SHIFT); + pkt_buf[3] = (u8) temp; + temp = (data_len) % FT_FW_PKT_LEN; + pkt_buf[4] = (u8) (temp >> FT_8BIT_SHIFT); + pkt_buf[5] = (u8) temp; + + for (i = 0; i < temp; i++) { + pkt_buf[6 + i] = data[pkt_num * FT_FW_PKT_LEN + i]; + fw_ecc ^= pkt_buf[6 + i]; + } + + ft5x06_i2c_write(client, pkt_buf, temp + FT_FW_PKT_META_LEN); + msleep(FT_FW_PKT_DLY_MS); + } + + /* send the finishing packet */ + if (is_5336_new_bootloader == FT_BLOADER_VERSION_LZ4 || + is_5336_new_bootloader == FT_BLOADER_VERSION_Z7) { + for (i = 0; i < FT_FINISHING_PKT_LEN_OLD_FW; i++) { + if (is_5336_new_bootloader == FT_BLOADER_VERSION_Z7) + temp = FT_MAGIC_BLOADER_Z7 + i; + else if (is_5336_new_bootloader == + FT_BLOADER_VERSION_LZ4) + temp = FT_MAGIC_BLOADER_LZ4 + i; + pkt_buf[2] = (u8)(temp >> 8); + pkt_buf[3] = (u8)temp; + temp = 1; + pkt_buf[4] = (u8)(temp >> 8); + pkt_buf[5] = (u8)temp; + pkt_buf[6] = data[data_len + i]; + fw_ecc ^= pkt_buf[6]; + + ft5x06_i2c_write(client, + pkt_buf, temp + FT_FW_PKT_META_LEN); + msleep(FT_FW_PKT_DLY_MS); + } + } else if (is_5336_new_bootloader == FT_BLOADER_VERSION_GZF) { + for (i = 0; i < FT_FINISHING_PKT_LEN_NEW_FW; i++) { + if (is_5336_fwsize_30) + temp = FT_MAGIC_BLOADER_GZF_30 + i; + else + temp = FT_MAGIC_BLOADER_GZF + i; + pkt_buf[2] = (u8)(temp >> 8); + pkt_buf[3] = (u8)temp; + temp = 1; + pkt_buf[4] = (u8)(temp >> 8); + pkt_buf[5] = (u8)temp; + pkt_buf[6] = data[data_len + i]; + fw_ecc ^= pkt_buf[6]; + + ft5x06_i2c_write(client, + pkt_buf, temp + FT_FW_PKT_META_LEN); + msleep(FT_FW_PKT_DLY_MS); + + } + } + + /* verify checksum */ + w_buf[0] = FT_REG_ECC; + ft5x06_i2c_read(client, w_buf, 1, r_buf, 1); + if (r_buf[0] != fw_ecc) { + dev_err(&client->dev, "ECC error! dev_ecc=%02x fw_ecc=%02x\n", + r_buf[0], fw_ecc); + return -EIO; + } + + /* reset */ + w_buf[0] = FT_REG_RESET_FW; + ft5x06_i2c_write(client, w_buf, 1); + msleep(ts_data->pdata->soft_rst_dly); + + dev_info(&client->dev, "Firmware upgrade successful\n"); + + return 0; +} + +static void fts_ctpm_read_lockdown(struct i2c_client *client, struct ft5x06_ts_data *data) +{ + u8 buf[128]; + u8 w_buf[4], r_buf[2]; + u32 i = 0, j = 0; + u32 k = 0; + struct ft5x06_ts_data *ts_data = i2c_get_clientdata(client); + + + for (i = 0, j = 0; i < FT_UPGRADE_LOOP; i++) { + msleep(FT_EARSE_DLY_MS); + + + if (gpio_is_valid(ts_data->pdata->reset_gpio)) { + gpio_set_value_cansleep(ts_data->pdata->reset_gpio, 0); + msleep(ts_data->pdata->hard_rst_dly); + gpio_set_value_cansleep(ts_data->pdata->reset_gpio, 1); + } + + if (i <= (FT_UPGRADE_LOOP / 2)) + msleep(30 + i * 3); + else + msleep(30 - (i - (FT_UPGRADE_LOOP / 2)) * 2); + + /* Enter upgrade mode */ + w_buf[0] = FT_UPGRADE_55; + ft5x06_i2c_write(client, &w_buf[0], 1); + usleep(FT_55_AA_DLY_NS); + w_buf[0] = FT_UPGRADE_AA; + ft5x06_i2c_write(client, &w_buf[0], 1); + + /* check READ_ID */ + msleep(10); + w_buf[0] = FT_READ_ID_REG; + w_buf[1] = 0x00; + w_buf[2] = 0x00; + w_buf[3] = 0x00; + + ft5x06_i2c_read(client, w_buf, 4, r_buf, 2); + + if (r_buf[0] != 0x79 || r_buf[1] != 0x11) { + continue; + } else + break; + } + /*--------- read current project setting ---------- */ + /*set read start address */ + + buf[0] = 0x03; + buf[1] = 0x00; + buf[2] = (u8)(0x07d0 >> 8); + buf[3] = (u8)(0x07d0); + + ft5x06_i2c_read(client, buf, 4, data->lockdown_info, 8); + msleep(10); + + if (gpio_is_valid(ts_data->pdata->reset_gpio)) { + gpio_set_value_cansleep(ts_data->pdata->reset_gpio, 0); + msleep(ts_data->pdata->hard_rst_dly); + gpio_set_value_cansleep(ts_data->pdata->reset_gpio, 1); + } + + msleep(200); + + for (k = 0 ; k < FT_LOCKDOWN_SIZE; k++) { + + lockdown_info[k] = data->lockdown_info[k]; + } + + tp_color = lockdown_info[2]; + TP_Maker = lockdown_info[0]; + LCD_Maker = lockdown_info[1]; + dev_info(&client->dev, "Lockdown info: %02X %02X %02X %02X %02X %02X %02X %02X", + lockdown_info[0], lockdown_info[1], + lockdown_info[2], lockdown_info[3], + lockdown_info[4], lockdown_info[5], + lockdown_info[6], lockdown_info[7]); +} + +#if TPD_AUTO_UPGRADE + +static unsigned char CTPM_FW1[] = { +#include "ft_app_ic_biel_ebbg_720p.txt" +}; + +static unsigned char CTPM_FW2[] = { +#include "ft_app_ic_oufei_boe_720p.txt" +}; + +static int fts_ctpm_fw_upgrade_with_i_file(struct ft5x06_ts_data *data) +{ + struct i2c_client *client = data->client; + int flag_TPID = 0; + u8 *pbt_buf = 0x0; + int rc = 0, fw_len = 0; + u8 uc_host_fm_ver, uc_tp_fm_ver, vendor_id, ic_type; + u8 reg_addr; + + reg_addr = 0xA6; + ft5x06_i2c_read(client, ®_addr, 1, &uc_tp_fm_ver, 1); + reg_addr = 0xA8; + ft5x06_i2c_read(client, ®_addr, 1, &vendor_id, 1); + reg_addr = 0xA3; + ft5x06_i2c_read(client, ®_addr, 1, &ic_type, 1); + + CTP_DEBUG("Vendor ID:0x%02X, TP FW:0x%02X, IC TYPE:%d", vendor_id, uc_tp_fm_ver, ic_type); + + if (vendor_id == 0xA8 || vendor_id == 0x00 || ic_type == 0xA3 || ic_type == 0x00) { + CTP_ERROR("vend_id read error,need project"); + + fts_ctpm_read_lockdown(client, data); + flag_TPID = 1; + is_ic_update_crash = 1; + } + + + if ((TP_Maker == TP_Biel && LCD_Maker == LCD_EBBG)) { + pbt_buf = CTPM_FW1; + fw_len = sizeof(CTPM_FW1); + CTP_DEBUG("BIEL+EBBG"); + } else if (((TP_Maker == TP_OUFEI && LCD_Maker == LCD_BOE)) || (vendor_id == 0x51)) { + pbt_buf = CTPM_FW2; + fw_len = sizeof(CTPM_FW2); + CTP_DEBUG("OUFEI+BOE"); + } + + else { + CTP_ERROR("read vendor_id fail"); + return -EPERM; + } + + CTP_DEBUG("update firmware size:%d", fw_len); + + if (sizeof(CTPM_FW1) < 8 || sizeof(CTPM_FW1) > 32 * 1024 || sizeof(CTPM_FW2) < 8 || sizeof(CTPM_FW2) > 32 * 1024) { + CTP_ERROR("FW length error\n"); + return -EPERM; + } + + if ((pbt_buf[fw_len - 8] ^ pbt_buf[fw_len - 6]) == 0xFF + && (pbt_buf[fw_len - 7] ^ pbt_buf[fw_len - 5]) == 0xFF + && (pbt_buf[fw_len - 3] ^ pbt_buf[fw_len - 4]) == 0xFF) { + + uc_host_fm_ver = pbt_buf[fw_len - 2]; + CTP_DEBUG("[FTS] uc_tp_fm_ver = %d.\n", uc_tp_fm_ver); + CTP_DEBUG("[FTS] uc_host_fm_ver = %d.\n", uc_host_fm_ver); + + if ((uc_tp_fm_ver < uc_host_fm_ver) || (is_ic_update_crash == 1)) { + rc = ft5x06_fw_upgrade_start(update_client, pbt_buf, fw_len); + if (rc != 0) { + CTP_DEBUG("[FTS] upgrade failed rc = %d.\n", rc); + } else { + CTP_DEBUG("[FTS] upgrade successfully.\n"); + } + } + } + + return rc; +} +#endif + +#if CTP_SYS_APK_UPDATE +static ssize_t ft5x06_fw_name_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + u8 fw_version = 0x00; + + ft5x0x_read_reg(update_client, FT5x0x_REG_FW_VER, &fw_version); + + return sprintf(buf, "firmware version %02X\n", fw_version); +} + +static ssize_t ft5x06_fw_name_store(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t size) +{ + struct ft5x06_ts_data *data = dev_get_drvdata(dev); + + if (size > FT_FW_NAME_MAX_LEN - 1) + return -EINVAL; + + strlcpy(data->fw_name, buf, size); + if (data->fw_name[size-1] == '\n') + data->fw_name[size-1] = 0; + + return size; +} + +static DEVICE_ATTR(fw_name, 0664, ft5x06_fw_name_show, ft5x06_fw_name_store); + +static int ft5x06_auto_cal(struct i2c_client *client) +{ + struct ft5x06_ts_data *data = i2c_get_clientdata(client); + u8 temp = 0, i; + + /* set to factory mode */ + msleep(2 * data->pdata->soft_rst_dly); + ft5x0x_write_reg(client, FT_REG_DEV_MODE, FT_FACTORYMODE_VALUE); + msleep(data->pdata->soft_rst_dly); + + /* start calibration */ + ft5x0x_write_reg(client, FT_DEV_MODE_REG_CAL, FT_CAL_START); + msleep(2 * data->pdata->soft_rst_dly); + for (i = 0; i < FT_CAL_RETRY; i++) { + ft5x0x_read_reg(client, FT_REG_CAL, &temp); + /*return to normal mode, calibration finish */ + if (((temp & FT_CAL_MASK) >> FT_4BIT_SHIFT) == FT_CAL_FIN) + break; + } + + /*calibration OK */ + msleep(2 * data->pdata->soft_rst_dly); + ft5x0x_write_reg(client, FT_REG_DEV_MODE, FT_FACTORYMODE_VALUE); + msleep(data->pdata->soft_rst_dly); + + ft5x0x_write_reg(client, FT_DEV_MODE_REG_CAL, FT_CAL_STORE); + msleep(2 * data->pdata->soft_rst_dly); + + /* set to normal mode */ + ft5x0x_write_reg(client, FT_REG_DEV_MODE, FT_WORKMODE_VALUE); + msleep(2 * data->pdata->soft_rst_dly); + + return 0; +} + + +static int ft5x06_fw_upgrade(struct device *dev, bool force) +{ + struct ft5x06_ts_data *data = dev_get_drvdata(dev); + const struct firmware *fw = NULL; + int rc; + u8 fw_file_maj, fw_file_min, fw_file_sub_min, fw_file_vendor_id; + bool fw_upgrade = false; + + if (data->suspended) { + dev_err(dev, "Device is in suspend state: Exit FW upgrade\n"); + return -EBUSY; + } + + rc = request_firmware(&fw, data->fw_name, dev); + if (rc < 0) { + dev_err(dev, "Request firmware failed - %s (%d)\n", + data->fw_name, rc); + return rc; + } + + if (fw->size < FT_FW_MIN_SIZE || fw->size > FT_FW_MAX_SIZE) { + dev_err(dev, "Invalid firmware size (%zu)\n", fw->size); + rc = -EIO; + goto rel_fw; + } + + if (data->family_id == FT6X36_ID) { + fw_file_maj = FT_FW_FILE_MAJ_VER_FT6X36(fw); + fw_file_vendor_id = FT_FW_FILE_VENDOR_ID_FT6X36(fw); + } else { + fw_file_maj = FT_FW_FILE_MAJ_VER(fw); + fw_file_vendor_id = FT_FW_FILE_VENDOR_ID(fw); + } + fw_file_min = FT_FW_FILE_MIN_VER(fw); + fw_file_sub_min = FT_FW_FILE_SUB_MIN_VER(fw); + + dev_info(dev, "Current firmware: %d.%d.%d", data->fw_ver[0], + data->fw_ver[1], data->fw_ver[2]); + dev_info(dev, "New firmware: %d.%d.%d", fw_file_maj, + fw_file_min, fw_file_sub_min); + + if (force) + fw_upgrade = true; + else if ((data->fw_ver[0] < fw_file_maj) && + data->fw_vendor_id == fw_file_vendor_id) + fw_upgrade = true; + + if (!fw_upgrade) { + dev_info(dev, "Exiting fw upgrade...\n"); + rc = -EFAULT; + goto rel_fw; + } + + /* start firmware upgrade */ + if (FT_FW_CHECK(fw, data)) { + rc = ft5x06_fw_upgrade_start(data->client, fw->data, fw->size); + if (rc < 0) + dev_err(dev, "update failed (%d). try later...\n", rc); + else if (data->pdata->info.auto_cal) + ft5x06_auto_cal(data->client); + } else { + dev_err(dev, "FW format error\n"); + rc = -EIO; + } + + ft5x06_update_fw_ver(data); + + FT_STORE_TS_INFO(data->ts_info, data->family_id, data->pdata->name, + data->pdata->num_max_touches, data->pdata->group_id, + data->pdata->fw_vkey_support ? "yes" : "no", + data->pdata->fw_name, data->fw_ver[0], + data->fw_ver[1], data->fw_ver[2]); +rel_fw: + release_firmware(fw); + return rc; +} + + +static ssize_t ft5x06_update_fw_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct ft5x06_ts_data *data = dev_get_drvdata(dev); + return snprintf(buf, 2, "%d\n", data->loading_fw); +} + +static ssize_t ft5x06_update_fw_store(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t size) +{ + struct ft5x06_ts_data *data = dev_get_drvdata(dev); + unsigned long val; + int rc; + + if (size > 2) + return -EINVAL; + + rc = kstrtoul(buf, 10, &val); + if (rc != 0) + return rc; + + if (data->suspended) { + dev_info(dev, "In suspend state, try again later...\n"); + return size; + } + + mutex_lock(&data->input_dev->mutex); + if (!data->loading_fw && val) { + data->loading_fw = true; + ft5x06_fw_upgrade(dev, false); + data->loading_fw = false; + } + mutex_unlock(&data->input_dev->mutex); + + return size; +} + +static DEVICE_ATTR(update_fw, 0664, ft5x06_update_fw_show, + ft5x06_update_fw_store); + +static ssize_t ft5x06_force_update_fw_store(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t size) +{ + struct ft5x06_ts_data *data = dev_get_drvdata(dev); + unsigned long val; + int rc; + + if (size > 2) + return -EINVAL; + + rc = kstrtoul(buf, 10, &val); + if (rc != 0) + return rc; + + mutex_lock(&data->input_dev->mutex); + if (!data->loading_fw && val) { + data->loading_fw = true; + ft5x06_fw_upgrade(dev, true); + data->loading_fw = false; + } + mutex_unlock(&data->input_dev->mutex); + + return size; +} + +static DEVICE_ATTR(force_update_fw, 0664, ft5x06_update_fw_show, + ft5x06_force_update_fw_store); + + +#define FT_DEBUG_DIR_NAME "ts_debug" + +static bool ft5x06_debug_addr_is_valid(int addr) +{ + if (addr < 0 || addr > 0xFF) { + pr_err("FT reg address is invalid: 0x%x\n", addr); + return false; + } + + return true; +} + +static int ft5x06_debug_data_set(void *_data, u64 val) +{ + struct ft5x06_ts_data *data = _data; + + mutex_lock(&data->input_dev->mutex); + + if (ft5x06_debug_addr_is_valid(data->addr)) + dev_info(&data->client->dev, + "Writing into FT registers not supported\n"); + + mutex_unlock(&data->input_dev->mutex); + + return 0; +} + +static int ft5x06_debug_data_get(void *_data, u64 *val) +{ + struct ft5x06_ts_data *data = _data; + int rc; + u8 reg; + + mutex_lock(&data->input_dev->mutex); + + if (ft5x06_debug_addr_is_valid(data->addr)) { + rc = ft5x0x_read_reg(data->client, data->addr, ®); + if (rc < 0) + dev_err(&data->client->dev, + "FT read register 0x%x failed (%d)\n", + data->addr, rc); + else + *val = reg; + } + + mutex_unlock(&data->input_dev->mutex); + + return 0; +} + +DEFINE_SIMPLE_ATTRIBUTE(debug_data_fops, ft5x06_debug_data_get, + ft5x06_debug_data_set, "0x%02llX\n"); + +static int ft5x06_debug_addr_set(void *_data, u64 val) +{ + struct ft5x06_ts_data *data = _data; + + if (ft5x06_debug_addr_is_valid(val)) { + mutex_lock(&data->input_dev->mutex); + data->addr = val; + mutex_unlock(&data->input_dev->mutex); + } + + return 0; +} + +static int ft5x06_debug_addr_get(void *_data, u64 *val) +{ + struct ft5x06_ts_data *data = _data; + + mutex_lock(&data->input_dev->mutex); + + if (ft5x06_debug_addr_is_valid(data->addr)) + *val = data->addr; + + mutex_unlock(&data->input_dev->mutex); + + return 0; +} + +DEFINE_SIMPLE_ATTRIBUTE(debug_addr_fops, ft5x06_debug_addr_get, + ft5x06_debug_addr_set, "0x%02llX\n"); + +static int ft5x06_debug_suspend_set(void *_data, u64 val) +{ + struct ft5x06_ts_data *data = _data; + + mutex_lock(&data->input_dev->mutex); + + if (val) + ft5x06_ts_suspend(&data->client->dev); + else + ft5x06_ts_resume(&data->client->dev); + + mutex_unlock(&data->input_dev->mutex); + + return 0; +} + +static int ft5x06_debug_suspend_get(void *_data, u64 *val) +{ + struct ft5x06_ts_data *data = _data; + + mutex_lock(&data->input_dev->mutex); + *val = data->suspended; + mutex_unlock(&data->input_dev->mutex); + + return 0; +} + +DEFINE_SIMPLE_ATTRIBUTE(debug_suspend_fops, ft5x06_debug_suspend_get, + ft5x06_debug_suspend_set, "%lld\n"); + +static int ft5x06_debug_dump_info(struct seq_file *m, void *v) +{ + struct ft5x06_ts_data *data = m->private; + + seq_printf(m, "%s\n", data->ts_info); + + return 0; +} + +static int debugfs_dump_info_open(struct inode *inode, struct file *file) +{ + return single_open(file, ft5x06_debug_dump_info, inode->i_private); +} + +static const struct file_operations debug_dump_info_fops = { + .owner = THIS_MODULE, + .open = debugfs_dump_info_open, + .read = seq_read, + .release = single_release, +}; + +#endif + +static int ft5x0x_GetFirmwareSize(char *firmware_name) +{ + struct file *pfile = NULL; + struct inode *inode; + unsigned long magic; + off_t fsize = 0; + char filepath[128]; + memset(filepath, 0, sizeof(filepath)); + + sprintf(filepath, "%s", firmware_name); + CTP_ERROR("filepath=%s\n", filepath); + if (NULL == pfile) { + pfile = filp_open(filepath, O_RDONLY, 0); + } + if (IS_ERR(pfile)) { + CTP_ERROR("error occured while opening file %s.\n", filepath); + return -EPERM; + } + inode = pfile->f_dentry->d_inode; + magic = inode->i_sb->s_magic; + fsize = inode->i_size; + filp_close(pfile, NULL); + return fsize; +} + +static int ft5x0x_ReadFirmware(char *firmware_name, unsigned char *firmware_buf) +{ + struct file *pfile = NULL; + struct inode *inode; + unsigned long magic; + off_t fsize; + char filepath[128]; + loff_t pos; + mm_segment_t old_fs; + + memset(filepath, 0, sizeof(filepath)); + sprintf(filepath, "%s", firmware_name); + CTP_INFO("filepath=%s\n", filepath); + if (NULL == pfile) { + pfile = filp_open(filepath, O_RDONLY, 0); + } + if (IS_ERR(pfile)) { + CTP_ERROR("error occured while opening file %s.\n", filepath); + return -EPERM; + } + inode = pfile->f_dentry->d_inode; + magic = inode->i_sb->s_magic; + fsize = inode->i_size; + + old_fs = get_fs(); + set_fs(KERNEL_DS); + pos = 0; + + vfs_read(pfile, firmware_buf, fsize, &pos); + + filp_close(pfile, NULL); + set_fs(old_fs); + return 0; +} + +static void delay_qt_ms(unsigned long w_ms) +{ + unsigned long i; + unsigned long j; + + for (i = 0; i < w_ms; i++) { + for (j = 0; j < 1000; j++) { + udelay(1); + } + } +} + +static int fts_ctpm_auto_clb(void) +{ + unsigned char uc_temp; + unsigned char i ; + + printk("[FTS] start auto CLB.\n"); + msleep(200); + ft5x0x_write_reg(update_client, 0, 0x40); + delay_qt_ms(100); + ft5x0x_write_reg(update_client, 2, 0x4); + delay_qt_ms(300); + for (i = 0; i < 100; i++) { + ft5x0x_read_reg(update_client, 0, &uc_temp); + if (((uc_temp&0x70)>>4) == 0x0) { + break; + } + delay_qt_ms(200); + printk("[FTS] waiting calibration %d\n", i); + } + + printk("[FTS] calibration OK.\n"); + + msleep(300); + ft5x0x_write_reg(update_client, 0, 0x40); + delay_qt_ms(100); + ft5x0x_write_reg(update_client, 2, 0x5); + delay_qt_ms(300); + ft5x0x_write_reg(update_client, 0, 0x0); + msleep(300); + printk("[FTS] store CLB result OK.\n"); + return 0; +} + + +static int fts_ctpm_fw_upgrade_with_app_file(char *firmware_name) +{ + unsigned char *pbt_buf = NULL; + int i_ret; + u8 fwver; + int fwsize = ft5x0x_GetFirmwareSize(firmware_name); + + CTP_DEBUG("enter fw_upgrade_with_app_file"); + if (fwsize <= 0) { + CTP_ERROR("%s ERROR:Get firmware size failed\n", __FUNCTION__); + return -EPERM; + } + + pbt_buf = (unsigned char *) kmalloc(fwsize+1, GFP_ATOMIC); + if (ft5x0x_ReadFirmware(firmware_name, pbt_buf)) { + CTP_ERROR("%s() - ERROR: request_firmware failed\n", __FUNCTION__); + kfree(pbt_buf); + return -EPERM; + } + + + + if ((pbt_buf[fwsize - 8] ^ pbt_buf[fwsize - 6]) != 0xFF + || (pbt_buf[fwsize - 7] ^ pbt_buf[fwsize - 5]) != 0xFF + || (pbt_buf[fwsize - 3] ^ pbt_buf[fwsize - 4]) != 0xFF) { + CTP_ERROR("the update file is not correct, please check\n"); + CTP_ERROR("checksum is %2x, %2x, %2x, %2x, %2x, %2x", pbt_buf[fwsize - 8], pbt_buf[fwsize - 6], pbt_buf[fwsize - 7], pbt_buf[fwsize - 5], pbt_buf[fwsize - 3], pbt_buf[fwsize - 4]); + return -EPERM; + } + /*call the upgrade function*/ + i_ret = ft5x06_fw_upgrade_start(update_client, pbt_buf, fwsize); + if (i_ret != 0) { + CTP_ERROR("%s() - ERROR:[FTS] upgrade failed i_ret = %d.\n", __FUNCTION__, i_ret); + + + } else { + CTP_INFO("[FTS] upgrade successfully.\n"); + if (ft5x0x_read_reg(update_client, FT5x0x_REG_FW_VER, &fwver) >= 0) + CTP_INFO("the new fw ver is 0x%02x\n", fwver); + + } + kfree(pbt_buf); + return i_ret; +} + +#if CTP_SYS_APK_UPDATE + +static ssize_t ft5x0x_fwupgradeapp_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + /* place holder for future use */ + return -EPERM; +} +#endif + +#if CTP_SYS_APK_UPDATE + +static ssize_t ft5x0x_fwupgradeapp_store(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t count) +{ + + + struct i2c_client *client = container_of(dev, struct i2c_client, dev); + + char fwname[128]; + memset(fwname, 0, sizeof(fwname)); + sprintf(fwname, "%s", buf); + fwname[count-1] = '\0'; + + disable_irq(client->irq); + + fts_ctpm_fw_upgrade_with_app_file(fwname); + + enable_irq(client->irq); + + return count; +} + +#endif + +#if CTP_SYS_APK_UPDATE + +static DEVICE_ATTR(ftsfwupgradeapp, S_IRUGO|S_IWUSR, ft5x0x_fwupgradeapp_show, ft5x0x_fwupgradeapp_store); +#endif + +#if CTP_PROC_INTERFACE + +#define FT5X0X_INI_FILEPATH "/system/etc/" + +static int ft5x0x_GetInISize(char *config_name) +{ + struct file *pfile = NULL; + struct inode *inode; + unsigned long magic; + off_t fsize = 0; + char filepath[128]; + memset(filepath, 0, sizeof(filepath)); + sprintf(filepath, "%s%s", FT5X0X_INI_FILEPATH, config_name); + if (NULL == pfile) + pfile = filp_open(filepath, O_RDONLY, 0); + if (IS_ERR(pfile)) { + pr_err("error occured while opening file %s.\n", filepath); + return -EIO; + } + inode = pfile->f_dentry->d_inode; + magic = inode->i_sb->s_magic; + fsize = inode->i_size; + filp_close(pfile, NULL); + return fsize; +} + +static int ft5x0x_ReadInIData(char *config_name, char *config_buf) + +{ + struct file *pfile = NULL; + struct inode *inode; + unsigned long magic; + off_t fsize; + char filepath[128]; + loff_t pos; + mm_segment_t old_fs; + memset(filepath, 0, sizeof(filepath)); + sprintf(filepath, "%s%s", FT5X0X_INI_FILEPATH, config_name); + if (NULL == pfile) + pfile = filp_open(filepath, O_RDONLY, 0); + if (IS_ERR(pfile)) { + pr_err("error occured while opening file %s.\n", filepath); + return -EIO; + } + inode = pfile->f_dentry->d_inode; + magic = inode->i_sb->s_magic; + fsize = inode->i_size; + old_fs = get_fs(); + set_fs(KERNEL_DS); + pos = 0; + vfs_read(pfile, config_buf, fsize, &pos); + filp_close(pfile, NULL); + set_fs(old_fs); + return 0; +} + +static int ft5x0x_get_testparam_from_ini(char *config_name) + +{ + char *filedata = NULL; + int inisize = ft5x0x_GetInISize(config_name); + CTP_INFO("inisize = %d \n ", inisize); + if (inisize <= 0) { + pr_err("%s ERROR:Get firmware size failed\n", __func__); + return -EIO; + } + filedata = kmalloc(inisize + 1, GFP_ATOMIC); + if (ft5x0x_ReadInIData(config_name, filedata)) { + pr_err("%s() - ERROR: request_firmware failed\n", __func__); + kfree(filedata); + return -EIO; + } else { + CTP_INFO("ft5x0x_ReadInIData successful\n"); + } + SetParamData(filedata); + return 0; +} + +#if CTP_SYS_APK_UPDATE +static ssize_t ft5x0x_ftsmcaptest_show(struct device *dev, struct device_attribute *attr, char *buf) + +{ + /* place holder for future use */ + return -EPERM; +} + +static ssize_t ft5x0x_ftsmcaptest_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) + +{ + char cfgname[128]; + memset(cfgname, 0, sizeof(cfgname)); + sprintf(cfgname, "%s", buf); + cfgname[count-1] = '\0'; + Init_I2C_Write_Func(focal_i2c_Write); + Init_I2C_Read_Func(focal_i2c_Read); + if (ft5x0x_get_testparam_from_ini(cfgname) < 0) + CTP_ERROR("get testparam from ini failure\n"); + else { + if (true == StartTestTP()) + CTP_INFO("tp test pass\n"); + else + CTP_INFO("tp test failure\n"); + FreeTestParamData(); + } + return count; +} + +static DEVICE_ATTR(ftsmcaptest, S_IRUGO|S_IWUSR, ft5x0x_ftsmcaptest_show, ft5x0x_ftsmcaptest_store); +#endif + +#endif + +#ifdef CONFIG_OF +static int ft5x06_get_dt_coords(struct device *dev, char *name, + struct ft5x06_ts_platform_data *pdata) +{ + u32 coords[FT_COORDS_ARR_SIZE]; + struct property *prop; + struct device_node *np = dev->of_node; + int coords_size, rc; + + prop = of_find_property(np, name, NULL); + if (!prop) + return -EINVAL; + if (!prop->value) + return -ENODATA; + + coords_size = prop->length / sizeof(u32); + if (coords_size != FT_COORDS_ARR_SIZE) { + dev_err(dev, "invalid %s\n", name); + return -EINVAL; + } + + rc = of_property_read_u32_array(np, name, coords, coords_size); + if (rc && (rc != -EINVAL)) { + dev_err(dev, "Unable to read %s\n", name); + return rc; + } + + if (!strcmp(name, "ftech,panel-coords")) { + pdata->panel_minx = coords[0]; + pdata->panel_miny = coords[1]; + pdata->panel_maxx = coords[2]; + pdata->panel_maxy = coords[3]; + } else if (!strcmp(name, "ftech,display-coords")) { + pdata->x_min = coords[0]; + pdata->y_min = coords[1]; + pdata->x_max = coords[2]; + pdata->y_max = coords[3]; + } else { + dev_err(dev, "unsupported property %s\n", name); + return -EINVAL; + } + + return 0; +} + +static int ft5x06_parse_dt(struct device *dev, + struct ft5x06_ts_platform_data *pdata) +{ + int rc; + struct device_node *np = dev->of_node; + struct property *prop; + u32 temp_val, num_buttons; + u32 button_map[MAX_BUTTONS]; + + pdata->name = "ftech"; + rc = of_property_read_string(np, "ftech,name", &pdata->name); + if (rc && (rc != -EINVAL)) { + dev_err(dev, "Unable to read name\n"); + return rc; + } + + rc = ft5x06_get_dt_coords(dev, "ftech,panel-coords", pdata); + if (rc && (rc != -EINVAL)) + return rc; + + rc = ft5x06_get_dt_coords(dev, "ftech,display-coords", pdata); + if (rc) + return rc; + + + pdata->i2c_pull_up = of_property_read_bool(np, + "ftech,i2c-pull-up"); + + pdata->no_force_update = of_property_read_bool(np, + "ftech,no-force-update"); + /* reset, irq gpio info */ + pdata->reset_gpio = of_get_named_gpio_flags(np, "ftech,reset-gpio", + 0, &pdata->reset_gpio_flags); + if (pdata->reset_gpio < 0) + return pdata->reset_gpio; + + pdata->irq_gpio = of_get_named_gpio_flags(np, "ftech,irq-gpio", + 0, &pdata->irq_gpio_flags); + if (pdata->irq_gpio < 0) + return pdata->irq_gpio; + + pdata->fw_name = "ft_fw.bin"; + rc = of_property_read_string(np, "ftech,fw-name", &pdata->fw_name); + if (rc && (rc != -EINVAL)) { + dev_err(dev, "Unable to read fw name\n"); + return rc; + } + + rc = of_property_read_u32(np, "ftech,group-id", &temp_val); + if (!rc) + pdata->group_id = temp_val; + else + return rc; + + rc = of_property_read_u32(np, "ftech,hard-reset-delay-ms", + &temp_val); + if (!rc) + pdata->hard_rst_dly = temp_val; + else + return rc; + + rc = of_property_read_u32(np, "ftech,soft-reset-delay-ms", + &temp_val); + if (!rc) + pdata->soft_rst_dly = temp_val; + else + return rc; + + rc = of_property_read_u32(np, "ftech,num-max-touches", &temp_val); + if (!rc) + pdata->num_max_touches = temp_val; + else + return rc; + + rc = of_property_read_u32(np, "ftech,fw-delay-aa-ms", &temp_val); + if (rc && (rc != -EINVAL)) { + dev_err(dev, "Unable to read fw delay aa\n"); + return rc; + } else if (rc != -EINVAL) + pdata->info.delay_aa = temp_val; + + rc = of_property_read_u32(np, "ftech,fw-delay-55-ms", &temp_val); + if (rc && (rc != -EINVAL)) { + dev_err(dev, "Unable to read fw delay 55\n"); + return rc; + } else if (rc != -EINVAL) + pdata->info.delay_55 = temp_val; + + rc = of_property_read_u32(np, "ftech,fw-upgrade-id1", &temp_val); + if (rc && (rc != -EINVAL)) { + dev_err(dev, "Unable to read fw upgrade id1\n"); + return rc; + } else if (rc != -EINVAL) + pdata->info.upgrade_id_1 = temp_val; + + rc = of_property_read_u32(np, "ftech,fw-upgrade-id2", &temp_val); + if (rc && (rc != -EINVAL)) { + dev_err(dev, "Unable to read fw upgrade id2\n"); + return rc; + } else if (rc != -EINVAL) + pdata->info.upgrade_id_2 = temp_val; + + rc = of_property_read_u32(np, "ftech,fw-delay-readid-ms", + &temp_val); + if (rc && (rc != -EINVAL)) { + dev_err(dev, "Unable to read fw delay read id\n"); + return rc; + } else if (rc != -EINVAL) + pdata->info.delay_readid = temp_val; + + rc = of_property_read_u32(np, "ftech,fw-delay-era-flsh-ms", + &temp_val); + if (rc && (rc != -EINVAL)) { + dev_err(dev, "Unable to read fw delay erase flash\n"); + return rc; + } else if (rc != -EINVAL) + pdata->info.delay_erase_flash = temp_val; + + pdata->info.auto_cal = of_property_read_bool(np, + "ftech,fw-auto-cal"); + + pdata->fw_vkey_support = of_property_read_bool(np, + "ftech,fw-vkey-support"); + + pdata->ignore_id_check = of_property_read_bool(np, + "ftech,ignore-id-check"); + + rc = of_property_read_u32(np, "ftech,family-id", &temp_val); + if (!rc) + pdata->family_id = temp_val; + else + return rc; + + prop = of_find_property(np, "ftech,button-map", NULL); + if (prop) { + num_buttons = prop->length / sizeof(temp_val); + if (num_buttons > MAX_BUTTONS) + return -EINVAL; + + rc = of_property_read_u32_array(np, + "ftech,button-map", button_map, + num_buttons); + if (rc) { + dev_err(dev, "Unable to read key codes\n"); + return rc; + } + } + + return 0; +} +#else +static int ft5x06_parse_dt(struct device *dev, + struct ft5x06_ts_platform_data *pdata) +{ + return -ENODEV; +} +#endif + +#if CTP_PROC_INTERFACE +static ssize_t ctp_lockdown_proc_read(struct file *file, char __user *buf, size_t count, loff_t *ppos) +{ + char *ptr = buf; + + if (*ppos) { + CTP_INFO("tp test again return\n"); + return 0; + } + *ppos += count; + + return sprintf(ptr, "%02X%02X%02X%02X%02X%02X%02X%02X\n", + lockdown_info[0], lockdown_info[1], lockdown_info[2], lockdown_info[3], + lockdown_info[4], lockdown_info[5], lockdown_info[6], lockdown_info[7]); + +} + +static ssize_t ctp_lockdown_proc_write(struct file *filp, const char __user *userbuf, size_t count, loff_t *ppos) +{ + return -EPERM; +} + +static ssize_t ctp_color_proc_read(struct file *file, char __user *buf, size_t count, loff_t *ppos) +{ + char *ptr = buf; + + if (*ppos) { + CTP_INFO("tp test again return\n"); + return 0; + } + *ppos += count; + + return sprintf(ptr, "%02X\n", lockdown_info[2]); + +} + +static ssize_t ctp_color_proc_write(struct file *filp, const char __user *userbuf, size_t count, loff_t *ppos) +{ + return -EPERM; +} + +static ssize_t ctp_open_proc_read(struct file *file, char __user *buf, size_t count, loff_t *ppos) +{ + char *ptr = buf; + char cfgname[128]; + u8 fw_info[6] = {0x00}; + u8 reg_addr = 0xA3; + u8 result = 0; + + if (*ppos) { + CTP_INFO("tp test again return\n"); + return 0; + } + *ppos += count; + + ft5x06_i2c_read(update_client, ®_addr, 1, fw_info, 6); + CTP_INFO("ic is %x", fw_info[5]); + + if (fw_info[5] == VENDOR_BIEL_1080P) { + sprintf(cfgname, "%s", "ft5336_biel_1080p.ini"); + CTP_INFO(" *** cfgname is: %s *** \n", cfgname); + } else if (fw_info[5] == VENDOR_BIEL_720P) { + sprintf(cfgname, "%s", "ft5336_biel_720p.ini"); + CTP_INFO(" *** cfgname is: %s *** \n", cfgname); + } else if (fw_info[5] == VENDOR_TPK_1080P) { + sprintf(cfgname, "%s", "ft5336_tpk_1080p.ini"); + CTP_INFO(" *** cfgname is: %s *** \n", cfgname); + } else if (fw_info[5] == VENDOR_TPK_720P) { + sprintf(cfgname, "%s", "ft5336_tpk_720p.ini"); + CTP_INFO(" *** cfgname is: %s *** \n", cfgname); + } else if (fw_info[5] == VENDOR_O_FILM) { + sprintf(cfgname, "%s", "ft5336_oufei_720p.ini"); + CTP_INFO(" *** cfgname is: %s *** \n", cfgname); + } else if (fw_info[5] == VENDOR_LENS_720P) { + sprintf(cfgname, "%s", "ft5336_lens_720p.ini"); + CTP_INFO(" *** cfgname is: %s *** \n", cfgname); + } else { + CTP_INFO("no ini match the project ctp,please check!"); + return count; + } + + Init_I2C_Write_Func(focal_i2c_Write); + Init_I2C_Read_Func(focal_i2c_Read); + if (ft5x0x_get_testparam_from_ini(cfgname) < 0) { + CTP_ERROR("get testparam from ini failure\n"); + sprintf(ptr, "result=%d\n", 0); + } else { + if (true == StartTestTP()) { + CTP_INFO("tp test pass\n"); + result = 1; + + } else { + CTP_INFO("tp test failure\n"); + result = 0; + + } + FreeTestParamData(); + } + return sprintf(ptr, "result=%d\n", result); +} +static ssize_t ctp_open_proc_write(struct file *filp, const char __user *userbuf, size_t count, loff_t *ppos) +{ + return -EPERM; +} + +static void create_ctp_proc(void) +{ + + + + + + struct proc_dir_entry *ctp_device_proc = NULL; + struct proc_dir_entry *ctp_open_proc = NULL; + struct proc_dir_entry *ctp_lockdown_proc = NULL; + struct proc_dir_entry *ctp_color_proc = NULL; + + ctp_device_proc = proc_mkdir(CTP_PARENT_PROC_NAME, NULL); + if (ctp_device_proc == NULL) { + CTP_ERROR("ft5x06: create parent_proc fail\n"); + return; + } + + ctp_open_proc = proc_create(CTP_OPEN_PROC_NAME, 0777, ctp_device_proc, &ctp_open_procs_fops); + if (ctp_open_proc == NULL) { + CTP_ERROR("ft5x06: create open_proc fail\n"); + } + + ctp_lockdown_proc = proc_create(CTP_LOCKDOWN_INFOR_NAME, 0666, ctp_device_proc, &ctp_lockdown_procs_fops); + if (ctp_lockdown_proc == NULL) { + CTP_ERROR("ft5x06: create ctp_lockdown_proc fail\n"); + } + + + ctp_color_proc = proc_create(CTP_COLOR_INFOR_NAME, 0666, ctp_device_proc, &ctp_color_procs_fops); + if (ctp_color_proc == NULL) { + CTP_ERROR("ft5x06: create ctp_color_proc fail\n"); + } + +} +#endif + +#if WT_ADD_CTP_INFO +static int hardwareinfo_set(struct ft5x06_ts_data *data, u8 value_name, u8 color) +{ + char firmware_ver[HARDWARE_MAX_ITEM_LONGTH]; + char vendor_for_id[HARDWARE_MAX_ITEM_LONGTH]; + char ic_name[HARDWARE_MAX_ITEM_LONGTH]; + char ic_color[HARDWARE_MAX_ITEM_LONGTH]; + int err; + + u8 uc_tp_fm_ver, reg_addr; + if (lockdown_info[0] == TP_Biel) + snprintf(vendor_for_id, HARDWARE_MAX_ITEM_LONGTH, "BIEL_HD"); + else if (lockdown_info[0] == TP_OUFEI) + snprintf(vendor_for_id, HARDWARE_MAX_ITEM_LONGTH, "OUFEI_HD"); + else if (lockdown_info[0] == TP_LENS) + snprintf(vendor_for_id, HARDWARE_MAX_ITEM_LONGTH, "LENS_HD"); + else + snprintf(vendor_for_id, HARDWARE_MAX_ITEM_LONGTH, "Other vendor"); + + switch (value_name) { + case IC_FT5X06: + snprintf(ic_name, HARDWARE_MAX_ITEM_LONGTH, "FT5X06"); + break; + case IC_FT5606: + snprintf(ic_name, HARDWARE_MAX_ITEM_LONGTH, "FT5606"); + break; + case IC_FT5X16: + snprintf(ic_name, HARDWARE_MAX_ITEM_LONGTH, "FT5X16"); + break; + case IC_FT6208: + snprintf(ic_name, HARDWARE_MAX_ITEM_LONGTH, "FT6208"); + break; + case IC_FT6X06: + snprintf(ic_name, HARDWARE_MAX_ITEM_LONGTH, "FT6X06"); + break; + case IC_FT6X36: + snprintf(ic_name, HARDWARE_MAX_ITEM_LONGTH, "FT6X36"); + break; + case IC_FT5336: + snprintf(ic_name, HARDWARE_MAX_ITEM_LONGTH, "FT5336"); + break; + case IC_FT3316: + snprintf(ic_name, HARDWARE_MAX_ITEM_LONGTH, "FT3316"); + break; + case IC_FT5436i: + snprintf(ic_name, HARDWARE_MAX_ITEM_LONGTH, "FT5436i"); + break; + case IC_FT5336i: + snprintf(ic_name, HARDWARE_MAX_ITEM_LONGTH, "FT5336i"); + break; + default: + snprintf(ic_name, HARDWARE_MAX_ITEM_LONGTH, "Other IC"); + } + + switch (color) { + case TP_White: + snprintf(ic_color, HARDWARE_MAX_ITEM_LONGTH, "White"); + break; + case TP_Black: + snprintf(ic_color, HARDWARE_MAX_ITEM_LONGTH, "Black"); + break; + case TP_Golden: + snprintf(ic_color, HARDWARE_MAX_ITEM_LONGTH, "Golden"); + break; + default: + snprintf(ic_color, HARDWARE_MAX_ITEM_LONGTH, "other Color"); + } + + + if (nomal_boot) { + reg_addr = 0xA6; + ft5x06_i2c_read(data->client, ®_addr, 1, &uc_tp_fm_ver, 1); + snprintf(firmware_ver, HARDWARE_MAX_ITEM_LONGTH, "%s, %s, FW:0x%x, %s", vendor_for_id, ic_name, uc_tp_fm_ver, ic_color); + } else + snprintf(firmware_ver, HARDWARE_MAX_ITEM_LONGTH, "%s, %s, FW:0x%x, %s", vendor_for_id, ic_name, data->fw_ver[0], ic_color); + + err = hardwareinfo_set_prop(HARDWARE_TP, firmware_ver); + if (err < 0) + return -EPERM; + + return 0; +} +#endif +#if FTS_PROC_APK_DEBUG +static int ft5x0x_i2c_Read(struct i2c_client *client, char *writebuf, + int writelen, char *readbuf, int readlen) +{ + int ret; + + if (writelen > 0) { + struct i2c_msg msgs[] = { + { + .addr = client->addr, + .flags = 0, + .len = writelen, + .buf = writebuf, + }, + { + .addr = client->addr, + .flags = I2C_M_RD, + .len = readlen, + .buf = readbuf, + }, + }; + ret = i2c_transfer(client->adapter, msgs, 2); + if (ret < 0) + dev_err(&client->dev, "f%s: i2c read error.\n", + __func__); + } else { + struct i2c_msg msgs[] = { + { + .addr = client->addr, + .flags = I2C_M_RD, + .len = readlen, + .buf = readbuf, + }, + }; + ret = i2c_transfer(client->adapter, msgs, 1); + if (ret < 0) + dev_err(&client->dev, "%s:i2c read error.\n", __func__); + } + return ret; +} +/*write data by i2c*/ +static int ft5x0x_i2c_Write(struct i2c_client *client, char *writebuf, int writelen) +{ + int ret; + + struct i2c_msg msg[] = { + { + .addr = client->addr, + .flags = 0, + .len = writelen, + .buf = writebuf, + }, + }; + + ret = i2c_transfer(client->adapter, msg, 1); + if (ret < 0) + dev_err(&client->dev, "%s i2c write error.\n", __func__); + + return ret; +} + +static ssize_t ft5x0x_debug_write(struct file *filp, const char __user *buff, size_t len, loff_t *ppos) +{ + struct i2c_client *client = update_client; + unsigned char writebuf[FTS_PACKET_LENGTH]; + int buflen = len; + int writelen = 0; + int ret = 0; + + if (*ppos) + return -EPERM; + + if (copy_from_user(&writebuf, buff, buflen)) { + dev_err(&client->dev, "%s:copy from user error\n", __func__); + return -EFAULT; + } + proc_operate_mode = writebuf[0]; + CTP_INFO("write mode %x", proc_operate_mode); + switch (proc_operate_mode) { + case PROC_UPGRADE: + { + char upgrade_file_path[128]; + memset(upgrade_file_path, 0, sizeof(upgrade_file_path)); + sprintf(upgrade_file_path, "%s", writebuf + 1); + upgrade_file_path[buflen-1] = '\0'; + + disable_irq(client->irq); + + ret = fts_ctpm_fw_upgrade_with_app_file(upgrade_file_path); + + enable_irq(client->irq); + if (ret < 0) { + dev_err(&client->dev, "%s:upgrade failed.\n", __func__); + return ret; + } + } + break; + case PROC_READ_REGISTER: + writelen = 1; + ret = ft5x0x_i2c_Write(client, writebuf + 1, writelen); + if (ret < 0) { + dev_err(&client->dev, "%s:write iic error\n", __func__); + return ret; + } + break; + case PROC_WRITE_REGISTER: + writelen = 2; + ret = ft5x0x_i2c_Write(client, writebuf + 1, writelen); + if (ret < 0) { + dev_err(&client->dev, "%s:write iic error\n", __func__); + return ret; + } + break; + case PROC_RAWDATA: + break; + case PROC_AUTOCLB: + fts_ctpm_auto_clb(); + break; + default: + break; + } + + *ppos += len; + return len; +} + +static unsigned char debug_read_buf[PAGE_SIZE]; + +/*interface of read proc*/ +static ssize_t ft5x0x_debug_read(struct file *file, char __user *user_buf, size_t count, loff_t *ppos) +{ + struct i2c_client *client = update_client; + int ret = 0; + int num_read_chars = 0; + int readlen = 0; + u8 regvalue = 0x00, regaddr = 0x00; + + if (*ppos) + return -EPERM; + + switch (proc_operate_mode) { + case PROC_UPGRADE: + /*after calling ft5x0x_debug_write to upgrade*/ + regaddr = 0xA6; + ret = ft5x0x_read_reg(client, regaddr, ®value); + if (ret < 0) + num_read_chars = sprintf(debug_read_buf, "%s", "get fw version failed.\n"); + else + num_read_chars = sprintf(debug_read_buf, "current fw version:0x%02x\n", regvalue); + break; + case PROC_READ_REGISTER: + readlen = 1; + ret = ft5x0x_i2c_Read(client, NULL, 0, debug_read_buf, readlen); + if (ret < 0) { + dev_err(&client->dev, "%s:read iic error\n", __func__); + return ret; + } else + + num_read_chars = 1; + break; + case PROC_RAWDATA: + break; + default: + break; + } + + memcpy(user_buf, debug_read_buf, num_read_chars); + *ppos += num_read_chars; + return num_read_chars; +} + +static const struct file_operations ctp_apk_proc_fops = { + .write = ft5x0x_debug_write, + .read = ft5x0x_debug_read, + .open = simple_open, + .owner = THIS_MODULE, +}; + +static int ft5x0x_create_apk_debug_channel(struct i2c_client *client) +{ + ft5x0x_proc_entry = proc_create(PROC_NAME, 0666, NULL, &ctp_apk_proc_fops); + if (NULL == ft5x0x_proc_entry) { + dev_err(&client->dev, "Couldn't create proc entry!\n"); + return -ENOMEM; + } + return 0; +} + +static void ft5x0x_release_apk_debug_channel(void) +{ + if (ft5x0x_proc_entry) + remove_proc_entry(PROC_NAME, NULL); +} + +#endif + + +int get_boot_mode(struct i2c_client *client) +{ + int ret; + char *cmdline_tp = NULL; + char *temp; + char cmd_line[15] = {'\0'}; + + cmdline_tp = strstr(saved_command_line, "androidboot.mode="); + if (cmdline_tp != NULL) { + temp = cmdline_tp + strlen("androidboot.mode="); + ret = strncmp(temp, "ffbm", strlen("ffbm")); + memcpy(cmd_line, temp, 10); + dev_err(&client->dev, "cmd_line =%s \n", cmd_line); + if (ret == 0) { + dev_err(&client->dev, "mode: ffbm\n"); + return 1;/* factory mode*/ + } + else { + dev_err(&client->dev, "mode: no ffbm\n"); + return 2;/* no factory mode*/ + } + } + + nomal_boot = 1; + dev_err(&client->dev, "has no androidboot.mode \n"); + return 0; +} + +static int ft5x06_ts_probe(struct i2c_client *client, + const struct i2c_device_id *id) { + struct ft5x06_ts_platform_data *pdata; + struct ft5x06_ts_data *data; + struct input_dev *input_dev; + struct dentry *temp; + u8 reg_value; + u8 reg_addr; + int err; + int len; + u8 ic_name; +#if TPD_AUTO_UPGRADE + int ret_auto_upgrade = 0; + int i; +#endif + + temp = NULL; + update_client = client; +#if CTP_PROC_INTERFACE + g_focalclient = client; + sema_init(&g_device_mutex, 1); +#endif + + if (client->dev.of_node) { + pdata = devm_kzalloc(&client->dev, + sizeof(struct ft5x06_ts_platform_data), GFP_KERNEL); + if (!pdata) { + dev_err(&client->dev, "Failed to allocate memory\n"); + return -ENOMEM; + } + + err = ft5x06_parse_dt(&client->dev, pdata); + if (err) { + dev_err(&client->dev, "DT parsing failed\n"); + return err; + } + } else + pdata = client->dev.platform_data; + + if (!pdata) { + dev_err(&client->dev, "Invalid pdata\n"); + return -EINVAL; + } + + if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { + dev_err(&client->dev, "I2C not supported\n"); + return -ENODEV; + } + + data = devm_kzalloc(&client->dev, + sizeof(struct ft5x06_ts_data), GFP_KERNEL); + if (!data) { + dev_err(&client->dev, "Not enough memory\n"); + return -ENOMEM; + } + + if (pdata->fw_name) { + len = strlen(pdata->fw_name); + if (len > FT_FW_NAME_MAX_LEN - 1) { + dev_err(&client->dev, "Invalid firmware name\n"); + return -EINVAL; + } + + strlcpy(data->fw_name, pdata->fw_name, len + 1); + } + + data->tch_data_len = FT_TCH_LEN(pdata->num_max_touches); + data->tch_data = devm_kzalloc(&client->dev, + data->tch_data_len, GFP_KERNEL); + if (!data) { + return -ENOMEM; + } + + input_dev = input_allocate_device(); + if (!input_dev) { + return -ENOMEM; + } + + data->input_dev = input_dev; + data->client = client; + data->pdata = pdata; + + input_dev->name = "ft5x06_720p"; + input_dev->id.bustype = BUS_I2C; + input_dev->dev.parent = &client->dev; + + input_set_drvdata(input_dev, data); + i2c_set_clientdata(client, data); + + __set_bit(EV_KEY, input_dev->evbit); + __set_bit(EV_ABS, input_dev->evbit); + __set_bit(BTN_TOUCH, input_dev->keybit); + __set_bit(INPUT_PROP_DIRECT, input_dev->propbit); + + input_mt_init_slots(input_dev, pdata->num_max_touches, 0); + input_set_abs_params(input_dev, ABS_MT_POSITION_X, pdata->x_min, + pdata->x_max, 0, 0); + input_set_abs_params(input_dev, ABS_MT_POSITION_Y, pdata->y_min, + pdata->y_max, 0, 0); + + err = input_register_device(input_dev); + if (err) { + dev_err(&client->dev, "Input device registration failed\n"); + goto free_inputdev; + } + + if (pdata->power_init) { + err = pdata->power_init(true); + if (err) { + dev_err(&client->dev, "power init failed"); + goto unreg_inputdev; + } + } else { + err = ft5x06_power_init(data, true); + if (err) { + dev_err(&client->dev, "power init failed"); + goto unreg_inputdev; + } + } + + if (pdata->power_on) { + err = pdata->power_on(true); + if (err) { + dev_err(&client->dev, "power on failed"); + goto pwr_deinit; + } + } else { + err = ft5x06_power_on(data, true); + if (err) { + dev_err(&client->dev, "power on failed"); + goto pwr_deinit; + } + } + if (gpio_is_valid(pdata->irq_gpio)) { + err = gpio_request(pdata->irq_gpio, "ft5x06_irq_gpio"); + if (err) { + dev_err(&client->dev, "irq gpio request failed"); + goto pwr_off; + } + err = gpio_direction_input(pdata->irq_gpio); + if (err) { + dev_err(&client->dev, + "set_direction for irq gpio failed\n"); + goto free_irq_gpio; + } + } + + if (gpio_is_valid(pdata->reset_gpio)) { + err = gpio_request(pdata->reset_gpio, "ft5x06_reset_gpio"); + if (err) { + goto free_irq_gpio; + } + + err = gpio_direction_output(pdata->reset_gpio, 0); + if (err) { + dev_err(&client->dev, + "set_direction for reset gpio failed\n"); + goto free_reset_gpio; + } + msleep(data->pdata->hard_rst_dly); + gpio_set_value_cansleep(data->pdata->reset_gpio, 1); + } + + /* make sure CTP already finish startup process */ + msleep(data->pdata->soft_rst_dly); + + /* check the controller id */ + reg_addr = FT_REG_ID; + err = ft5x06_i2c_read(client, ®_addr, 1, ®_value, 1); + if (err < 0) { + dev_err(&client->dev, "version read failed"); + + client->addr = 0x3E; + err = ft5x06_i2c_read(client, ®_addr, 1, ®_value, 1); + if (err < 0) { + dev_err(&client->dev, "version read failed addr -----3E"); + goto free_reset_gpio; + + } + } + ic_name = reg_value; + + dev_info(&client->dev, "Device ID = 0x%x\n", reg_value); + + if ((pdata->family_id != reg_value) && (!pdata->ignore_id_check)) { + dev_err(&client->dev, "%s:Unsupported controller\n", __func__); + goto free_reset_gpio; + } + + data->family_id = pdata->family_id; + + err = request_threaded_irq(client->irq, NULL, + ft5x06_ts_interrupt, + IRQF_TRIGGER_FALLING | IRQF_ONESHOT, + client->dev.driver->name, data); + if (err) { + dev_err(&client->dev, "request irq failed\n"); + goto free_reset_gpio; + } + + disable_irq(data->client->irq); + +#if CTP_SYS_APK_UPDATE + err = device_create_file(&client->dev, &dev_attr_fw_name); + if (err) { + dev_err(&client->dev, "sys file creation failed\n"); + } + + err = device_create_file(&client->dev, &dev_attr_ftsfwupgradeapp); + if (err) { + dev_err(&client->dev, "upgradeapp sys file creation failed\n"); + } + + err = device_create_file(&client->dev, &dev_attr_ftsmcaptest); + if (err) { + dev_err(&client->dev, "ftsmcaptest sys file creation failed\n"); + } + err = device_create_file(&client->dev, &dev_attr_update_fw); + if (err) { + dev_err(&client->dev, "sys file creation failed\n"); + } + + err = device_create_file(&client->dev, &dev_attr_force_update_fw); + if (err) { + dev_err(&client->dev, "sys file creation failed\n"); + } + + data->dir = debugfs_create_dir(FT_DEBUG_DIR_NAME, NULL); + if (data->dir == NULL || IS_ERR(data->dir)) { + pr_err("debugfs_create_dir failed(%ld)\n", PTR_ERR(data->dir)); + err = PTR_ERR(data->dir); + } else { + temp = debugfs_create_file("addr", S_IRUSR | S_IWUSR, data->dir, data, + &debug_addr_fops); + if (temp == NULL || IS_ERR(temp)) { + pr_err("debugfs_create_file failed: rc=%ld\n", PTR_ERR(temp)); + err = PTR_ERR(temp); + } + + temp = debugfs_create_file("data", S_IRUSR | S_IWUSR, data->dir, data, + &debug_data_fops); + if (temp == NULL || IS_ERR(temp)) { + pr_err("debugfs_create_file failed: rc=%ld\n", PTR_ERR(temp)); + err = PTR_ERR(temp); + } + + temp = debugfs_create_file("suspend", S_IRUSR | S_IWUSR, data->dir, + data, &debug_suspend_fops); + if (temp == NULL || IS_ERR(temp)) { + pr_err("debugfs_create_file failed: rc=%ld\n", PTR_ERR(temp)); + err = PTR_ERR(temp); + } + + temp = debugfs_create_file("dump_info", S_IRUSR | S_IWUSR, data->dir, + data, &debug_dump_info_fops); + if (temp == NULL || IS_ERR(temp)) { + pr_err("debugfs_create_file failed: rc=%ld\n", PTR_ERR(temp)); + err = PTR_ERR(temp); + } + } +#endif + + data->ts_info = devm_kzalloc(&client->dev, + FT_INFO_MAX_LEN, GFP_KERNEL); + if (!data->ts_info) { + dev_err(&client->dev, "Not enough memory\n"); + goto free_irq_gpio; + } + + /*get some register information */ + reg_addr = FT_REG_POINT_RATE; + ft5x06_i2c_read(client, ®_addr, 1, ®_value, 1); + if (err < 0) + dev_err(&client->dev, "report rate read failed"); + + dev_info(&client->dev, "report rate = %dHz\n", reg_value * 10); + + reg_addr = FT_REG_THGROUP; + err = ft5x06_i2c_read(client, ®_addr, 1, ®_value, 1); + if (err < 0) + dev_err(&client->dev, "threshold read failed"); + + dev_dbg(&client->dev, "touch threshold = %d\n", reg_value * 4); + + ft5x06_update_fw_ver(data); + ft5x06_update_fw_vendor_id(data); + + FT_STORE_TS_INFO(data->ts_info, data->family_id, data->pdata->name, + data->pdata->num_max_touches, data->pdata->group_id, + data->pdata->fw_vkey_support ? "yes" : "no", + data->pdata->fw_name, data->fw_ver[0], + data->fw_ver[1], data->fw_ver[2]); + +#if CTP_LOCKDOWN_INFO + fts_ctpm_read_lockdown(client, data); +#endif + +#if defined(CONFIG_FB) + INIT_WORK(&data->fb_notify_work, fb_notify_resume_work); + data->fb_notif.notifier_call = fb_notifier_callback; + + err = fb_register_client(&data->fb_notif); + + if (err) + dev_err(&client->dev, "Unable to register fb_notifier: %d\n", + err); +#elif defined(CONFIG_HAS_EARLYSUSPEND) + data->early_suspend.level = EARLY_SUSPEND_LEVEL_BLANK_SCREEN + + FT_SUSPEND_LEVEL; + data->early_suspend.suspend = ft5x06_ts_early_suspend; + data->early_suspend.resume = ft5x06_ts_late_resume; + register_early_suspend(&data->early_suspend); +#endif + +#if CTP_PROC_INTERFACE + create_ctp_proc(); +#endif + +#if FTS_PROC_APK_DEBUG + ft5x0x_create_apk_debug_channel(update_client); +#endif + + +#if TPD_AUTO_UPGRADE + + err = get_boot_mode(client); + if (err == 0) { + dev_err(&client->dev, "upgrade\n"); + CTP_DEBUG("********************Enter CTP Auto Upgrade********************\n"); + msleep(50); + i = 0; + do { + ret_auto_upgrade = fts_ctpm_fw_upgrade_with_i_file(data); + i++; + if (ret_auto_upgrade < 0) { + CTP_DEBUG(" ctp upgrade fail err = %d \n", ret_auto_upgrade); + } + } while ((ret_auto_upgrade < 0) && (i < 3)); + } else { + dev_err(&client->dev, "no upgrade\n"); + } +#endif + +#if WT_ADD_CTP_INFO + err = hardwareinfo_set(data, ic_name, lockdown_info[2]); + if (err < 0) + dev_err(&client->dev, "hardwareinfo set failed"); +#endif + +#if CTP_CHARGER_DETECT + batt_psy = power_supply_get_by_name("usb"); + if (!batt_psy) + CTP_DEBUG("tp battery supply not found\n"); +#endif + + enable_irq(data->client->irq); + + return 0; + + +free_reset_gpio: + if (gpio_is_valid(pdata->reset_gpio)) + gpio_free(pdata->reset_gpio); + if (data->ts_pinctrl) { + err = ft5x06_ts_pinctrl_select(data, false); + if (err < 0) + CTP_ERROR("Cannot get idle pinctrl state\n"); + } +free_irq_gpio: + if (gpio_is_valid(pdata->irq_gpio)) + gpio_free(pdata->irq_gpio); + if (data->ts_pinctrl) { + err = ft5x06_ts_pinctrl_select(data, false); + if (err < 0) + CTP_ERROR("Cannot get idle pinctrl state\n"); + } +pwr_off: +pwr_deinit: +unreg_inputdev: + input_unregister_device(input_dev); + input_dev = NULL; +free_inputdev: + input_free_device(input_dev); + return err; +} + +static int ft5x06_ts_remove(struct i2c_client *client) +{ + struct ft5x06_ts_data *data = i2c_get_clientdata(client); + int retval; + +#if CTP_SYS_APK_UPDATE + device_remove_file(&client->dev, &dev_attr_fw_name); +#endif + +#if FTS_PROC_APK_DEBUG + ft5x0x_release_apk_debug_channel(); +#endif + + +#if defined(CONFIG_FB) + if (fb_unregister_client(&data->fb_notif)) + dev_err(&client->dev, "Error occurred while unregistering fb_notifier.\n"); +#elif defined(CONFIG_HAS_EARLYSUSPEND) + unregister_early_suspend(&data->early_suspend); +#endif + free_irq(client->irq, data); + + if (gpio_is_valid(data->pdata->reset_gpio)) + gpio_free(data->pdata->reset_gpio); + + if (gpio_is_valid(data->pdata->irq_gpio)) + gpio_free(data->pdata->irq_gpio); + + if (data->ts_pinctrl) { + retval = ft5x06_ts_pinctrl_select(data, false); + if (retval < 0) + CTP_ERROR("Cannot get idle pinctrl state\n"); + } + input_unregister_device(data->input_dev); + + return 0; +} + + +void ft5x06_ts_shutdown(struct i2c_client *client) +{ + struct ft5x06_ts_data *data = i2c_get_clientdata(client); + int retval; + + free_irq(client->irq, data); + + if (gpio_is_valid(data->pdata->reset_gpio)) { + retval = gpio_direction_output(data->pdata->reset_gpio, 0); + if (retval) { + dev_err(&data->client->dev, + "set_direction for reset gpio failed\n"); + } + gpio_free(data->pdata->reset_gpio); + } + + if (gpio_is_valid(data->pdata->irq_gpio)) + gpio_free(data->pdata->irq_gpio); + + if (data->pdata->power_init) + data->pdata->power_init(false); + else + ft5x06_power_init(data, false); +} + + +static const struct i2c_device_id ft5x06_ts_id[] = { + {"ft5x06_720p", 0}, + {}, +}; + +MODULE_DEVICE_TABLE(i2c, ft5x06_ts_id); + +#ifdef CONFIG_OF +static struct of_device_id ft5x06_match_table[] = { + { .compatible = "focaltech,5336",}, + { }, +}; +#else +#define ft5x06_match_table NULL +#endif + +static struct i2c_driver ft5x06_ts_driver = { + .probe = ft5x06_ts_probe, + .remove = ft5x06_ts_remove, + .shutdown = ft5x06_ts_shutdown, + .driver = { + .name = "ft5x06_720p", + .owner = THIS_MODULE, + .of_match_table = ft5x06_match_table, +#ifdef CONFIG_PM + .pm = &ft5x06_ts_pm_ops, +#endif + }, + .id_table = ft5x06_ts_id, +}; + +static int __init ft5x06_ts_init(void) +{ + return i2c_add_driver(&ft5x06_ts_driver); +} +module_init(ft5x06_ts_init); + +static void __exit ft5x06_ts_exit(void) +{ + i2c_del_driver(&ft5x06_ts_driver); +} +module_exit(ft5x06_ts_exit); + +MODULE_DESCRIPTION("FocalTech ft5x06 TouchScreen driver"); +MODULE_LICENSE("GPL v2"); diff --git a/drivers/input/touchscreen/ft5336/ft5x06_test_lib.h b/drivers/input/touchscreen/ft5336/ft5x06_test_lib.h new file mode 100755 index 0000000000000..77311c36e9173 --- /dev/null +++ b/drivers/input/touchscreen/ft5336/ft5x06_test_lib.h @@ -0,0 +1,24 @@ +#ifndef _FOCAL_MCAPTESTLIB_H +#define _FOCAL_MCAPTESTLIB_H + +#define TX_NUM_MAX 30 +#define RX_NUM_MAX 30 + + +#define boolean unsigned char +#define false 0 +#define true 1 + +typedef int (*FTS_I2c_Read_Function)(unsigned char * , int , unsigned char *, int); +typedef int (*FTS_I2c_Write_Function)(unsigned char * , int); + +int Init_I2C_Read_Func(FTS_I2c_Read_Function fpI2C_Read); +int Init_I2C_Write_Func(FTS_I2c_Write_Function fpI2C_Write); + + +int SetParamData(char *TestParamData); +int focal_save_error_data(char *databuf, int databuflen); +void FreeTestParamData(void); +boolean StartTestTP(void); + +#endif diff --git a/drivers/input/touchscreen/ft5336/ft_app_ic_biel_boe_720p.txt b/drivers/input/touchscreen/ft5336/ft_app_ic_biel_boe_720p.txt new file mode 100644 index 0000000000000..9668f76f858c2 --- /dev/null +++ b/drivers/input/touchscreen/ft5336/ft_app_ic_biel_boe_720p.txt @@ -0,0 +1,1807 @@ +0x2, 0x50,0xf0,0x2, 0x68,0x7c,0xe5,0x74,0x60,0x9, 0x74,0x1, 0x12,0x6e,0xa0,0x75, +0x74,0x0, 0x22,0xe4,0x12,0x6e,0xa0,0x75,0x74,0x1, 0x22,0x2, 0x50,0x5a,0xe5,0x55, +0xbe,0xb0,0x1, 0x68,0xf9,0x12,0x6e,0x86,0x60,0xfb,0x22,0x2, 0x67,0x13,0x7e,0x34, +0x10,0x2b,0x12,0x5b,0x10,0x7e,0x34,0x10,0x2b,0x12,0x64,0xb9,0x12,0x6e,0x8f,0x60, +0xfb,0x22,0x22,0x2, 0x6e,0x56,0xc2,0x8e,0x75,0x8d,0x0, 0xa9,0x34,0xc9,0x5, 0x75, +0x8b,0xe6,0x80,0x3, 0x75,0x8b,0x78,0xd2,0x8e,0x22,0x32,0x2, 0x63,0x5b,0xbe,0xb0, +0xa, 0x50,0x6, 0xa, 0x2b,0x19,0x72,0x16,0xa2,0x22,0x22,0x2, 0x0, 0x5a,0xe5,0x52, +0x24,0xff,0x22,0x2, 0x67,0x4b,0xca,0x3b,0x7e,0xb3,0xf, 0x1b,0xf5,0x26,0x7e,0xd3, +0xf, 0x1c,0x7e,0x34,0xe, 0xdf,0x7a,0x35,0x33,0x7e,0x34,0x0, 0x27,0x7e,0x24,0x0, +0xa, 0xe4,0x12,0x6d,0xee,0x6c,0xcc,0x7e,0xa0,0xff,0x7e,0x70,0x7, 0xac,0x7c,0x19, +0xa3,0x13,0xba,0x7e,0x34,0x7f,0xff,0x74,0x7, 0xac,0xbc,0x59,0x35,0x13,0xb6,0x74, +0x7, 0xac,0xbc,0x59,0x35,0x13,0xb8,0xb, 0xc0,0xbe,0xc0,0xa, 0x78,0xd9,0xe5,0x26, +0x60,0x3, 0x2, 0x0, 0xef,0x12,0x6a,0xbb,0xbe,0xd0,0x0, 0x38,0x3, 0x2, 0x0, 0xdf, +0x74,0x1, 0x7a,0xb3,0xf, 0x20,0xe4,0x7a,0xb3,0xf, 0x22,0x7a,0xb3,0xf, 0x23,0x7e, +0x34,0x13,0x6, 0x7e,0x24,0x0, 0xa, 0x74,0xff,0x12,0x6d,0xee,0x2, 0x1, 0x14,0x4c, +0xdd,0x68,0x3, 0x2, 0x1, 0x14,0x75,0x25,0x0, 0x7e,0xa0,0xff,0x7e,0x71,0x25,0x74, +0x7, 0xac,0x7b,0x19,0xa3,0xe, 0x57,0x5, 0x25,0xe5,0x25,0xb4,0xa, 0xeb,0x74,0x1, +0x7a,0xb3,0xf, 0x1f,0x75,0x25,0x0, 0x2, 0x1, 0x4c,0x7e,0x51,0x25,0x74,0x7, 0xac, +0x5b,0x2e,0x24,0xe, 0xd, 0xb, 0x28,0x30,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x3e,0x34, +0x1b,0x28,0x30,0x7e,0x51,0x25,0xac,0x5b,0x2e,0x24,0xe, 0xf, 0xb, 0x28,0x30,0x3e, +0x34,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x1b,0x28,0x30,0x5, 0x25,0xe5,0x26,0xbe,0xb1, +0x25,0x38,0xc7,0xe4,0x6c,0x77,0x7e,0x61,0x26,0x7e,0x24,0x13,0xb6,0x12,0x52,0xa6, +0x7e,0x71,0x26,0x7e,0x60,0xa, 0x7e,0x24,0x13,0xb6,0x12,0x52,0xa6,0x7c,0xcb,0x6c, +0xee,0x75,0x25,0x0, 0x2, 0x1, 0x92,0x7e,0xa1,0x25,0x74,0x7, 0xa4,0x9, 0x65,0x13, +0xba,0x74,0x7, 0xac,0xbe,0x9, 0x75,0xe, 0x11,0xbc,0x76,0x78,0x3, 0x2, 0x1, 0x97, +0x5, 0x25,0xbe,0xc1,0x25,0x38,0xe0,0xbe,0xc1,0x25,0x68,0x3, 0x2, 0x1, 0xb8,0x7e, +0x70,0x7, 0xac,0x7e,0x2e,0x34,0xe, 0xd, 0x7e,0x30,0x7, 0xac,0x3c,0x2e,0x14,0x13, +0xb6,0x74,0x7, 0x12,0x48,0xc5,0xb, 0xc0,0xb, 0xe0,0xbe,0xe0,0xa, 0x78,0xb2,0x7e, +0x24,0x13,0xb6,0x7e,0x34,0xe, 0x53,0x7e,0x14,0x0, 0x46,0x12,0x6d,0x4a,0x4c,0xdd, +0x68,0x3, 0x2, 0x1, 0xe7,0x7e,0x24,0xe, 0xd, 0x7e,0x34,0xe, 0x53,0x7e,0x14,0x0, +0x46,0x12,0x6d,0x4a,0x2, 0x4, 0x84,0x7e,0xb3,0xf, 0x22,0x60,0x3, 0x2, 0x4, 0x84, +0x6c,0xee,0x2, 0x4, 0x7b,0x75,0x25,0x0, 0x7e,0xa1,0x25,0x74,0x7, 0xa4,0x9, 0x65, +0xe, 0x57,0x7e,0x90,0x7, 0xac,0x9e,0x9, 0x74,0xe, 0x11,0xbc,0x67,0x78,0x3, 0x2, +0x2, 0x1b,0x5, 0x25,0xe5,0x25,0xbe,0xb0,0xa, 0x40,0xdd,0x7e,0xa1,0x25,0x74,0x7, +0xa4,0x9, 0xf5,0xe, 0x57,0x49,0x34,0xe, 0xf, 0x49,0x25,0xe, 0x55,0x12,0x6d,0xbe, +0x7d,0x63,0x74,0x7, 0xac,0xbe,0x49,0x35,0xe, 0xd, 0x7e,0xa1,0x25,0x74,0x7, 0xa4, +0x49,0x25,0xe, 0x53,0x12,0x6d,0xbe,0x7d,0x13,0x2d,0x16,0x7a,0x15,0x21,0x7c,0x1f, +0x2e,0x10,0x27,0x74,0x1, 0xa5,0xf7,0xbe,0x14,0x0, 0x40,0x28,0x3, 0x2, 0x2, 0xd9, +0x7e,0x35,0x21,0xbe,0x34,0x0, 0x20,0x38,0x3, 0x2, 0x2, 0xae,0x7e,0x70,0x3, 0xac, +0x7f,0x9, 0xb3,0x12,0x2, 0x60,0x3, 0x2, 0x2, 0x97,0x9, 0xb3,0x12,0x3, 0xbe,0xb0, +0x0, 0x38,0x3, 0x2, 0x2, 0x89,0x2, 0x2, 0xbf,0x74,0x1, 0x19,0xb3,0x12,0x2, 0x6d, +0x22,0x7a,0x25,0x21,0x2, 0x2, 0xed,0x9, 0xb3,0x12,0x3, 0xbe,0xb0,0xa, 0x40,0x3, +0x2, 0x2, 0xed,0x2e,0x34,0x12,0x3, 0x4, 0x7a,0x39,0xb0,0x2, 0x2, 0xd1,0x7e,0x70, +0x3, 0xac,0x7f,0x9, 0xb3,0x12,0x3, 0xbe,0xb0,0x0, 0x38,0x3, 0x2, 0x2, 0xcc,0x7d, +0x23,0x2e,0x24,0x12,0x3, 0x14,0x7a,0x29,0xb0,0x2, 0x2, 0xed,0xe4,0x19,0xb3,0x12, +0x2, 0x6d,0x33,0x7a,0x35,0x21,0x2, 0x2, 0xed,0x6c,0xaa,0x7e,0x70,0x3, 0xac,0x7f, +0x19,0xa3,0x12,0x3, 0x7e,0x70,0x3, 0xac,0x7f,0x19,0xa3,0x12,0x2, 0x7e,0x35,0x21, +0xbe,0x34,0x0, 0x20,0x28,0x3, 0x2, 0x3, 0x2e,0x7e,0xa1,0x25,0x74,0x7, 0xa4,0x49, +0x35,0xe, 0x53,0x74,0x7, 0xac,0xbe,0x59,0x35,0xe, 0xd, 0x7e,0xa1,0x25,0x74,0x7, +0xa4,0x49,0x35,0xe, 0x55,0x74,0x7, 0xac,0xbe,0x59,0x35,0xe, 0xf, 0x6d,0x33,0x7a, +0x35,0x21,0x7e,0xa0,0x1, 0x7e,0x70,0x3, 0xac,0x7f,0x19,0xa3,0x12,0x1, 0x7e,0xf5, +0x21,0x7a,0xf5,0x23,0xa, 0xef,0x2e,0xe5,0x33,0x7e,0xe9,0xb0,0xb4,0x1, 0x2, 0x80, +0x3, 0x2, 0x3, 0x52,0x6d,0xee,0x74,0x2, 0xac,0xbf,0x59,0xe5,0x11,0xed,0x59,0xe5, +0x12,0x1f,0x7e,0x17,0xf, 0x5d,0xbe,0x15,0x23,0x28,0x3, 0x2, 0x3, 0x68,0x7e,0x4, +0x1, 0x0, 0x7a,0x5, 0x31,0x2, 0x3, 0x8b,0x7e,0x35,0x23,0x6d,0x22,0x7c,0x56,0x7c, +0x67,0x6c,0x77,0x12,0x48,0x3e,0x7d,0xe3,0x7a,0xe5,0x31,0xbe,0xe4,0x0, 0x10,0x40, +0x3, 0x2, 0x3, 0x8b,0x7e,0xe4,0x0, 0x10,0x7a,0xe5,0x31,0x74,0x2, 0xac,0xbf,0x49, +0x45,0x12,0x1f,0xbe,0x45,0x21,0x38,0x3, 0x2, 0x3, 0xa5,0x49,0x45,0x11,0xed,0x7a, +0x45,0x31,0x2, 0x3, 0xac,0x7e,0x45,0x31,0x59,0x45,0x11,0xed,0x59,0xf5,0x12,0x1f, +0x7e,0x35,0x31,0xbe,0x34,0x1, 0x0, 0x38,0x3, 0x2, 0x3, 0xc3,0x7e,0x34,0x1, 0x0, +0x7a,0x35,0x31,0x74,0x7, 0xac,0xbe,0x49,0x35,0xe, 0xd, 0x7e,0xa1,0x25,0x74,0x7, +0xa4,0x49,0x25,0xe, 0x53,0x12,0x6d,0xbe,0x7d,0x23,0x7a,0x25,0x21,0x7e,0x35,0x31, +0xad,0x32,0x7c,0x76,0x7c,0x65,0xa, 0x24,0x7a,0x35,0x21,0x7e,0x51,0x25,0x74,0x7, +0xac,0x5b,0x49,0x32,0xe, 0x53,0xac,0xbe,0x49,0x15,0xe, 0xd, 0xbd,0x13,0x38,0x3, +0x2, 0x4, 0x14,0x7d,0x2, 0x2e,0x4, 0xe, 0x53,0x7d,0x13,0x2e,0x15,0x21,0x1b,0x8, +0x10,0x2, 0x4, 0x1e,0x2e,0x24,0xe, 0x53,0x9e,0x35,0x21,0x1b,0x28,0x30,0x74,0x7, +0xac,0xbe,0x49,0x35,0xe, 0xf, 0x7e,0xa1,0x25,0x74,0x7, 0xa4,0x49,0x25,0xe, 0x55, +0x12,0x6d,0xbe,0x7d,0x23,0x7a,0x25,0x21,0x7e,0x35,0x31,0xad,0x32,0x7c,0x76,0x7c, +0x65,0xa, 0x24,0x7a,0x35,0x21,0x7e,0x51,0x25,0x74,0x7, 0xac,0x5b,0x49,0x32,0xe, +0x55,0xac,0xbe,0x49,0x15,0xe, 0xf, 0xbd,0x13,0x38,0x3, 0x2, 0x4, 0x6f,0x7d,0x2, +0x2e,0x4, 0xe, 0x55,0x7d,0x13,0x2e,0x15,0x21,0x1b,0x8, 0x10,0x2, 0x4, 0x79,0x2e, +0x24,0xe, 0x55,0x9e,0x35,0x21,0x1b,0x28,0x30,0xb, 0xe0,0xe5,0x26,0xbc,0xbe,0x28, +0x3, 0x2, 0x1, 0xf5,0x6c,0xee,0x74,0x7, 0xac,0xbe,0x49,0x45,0xe, 0x53,0x1e,0x44, +0x1e,0x44,0x1e,0x44,0x1e,0x44,0x7a,0x45,0x35,0x49,0x45,0xe, 0x55,0x1e,0x44,0x1e, +0x44,0x1e,0x44,0x1e,0x44,0x7a,0x45,0x37,0x9, 0xf5,0xe, 0x57,0x19,0xf5,0xe, 0x11, +0x74,0x7, 0xac,0xbe,0x9, 0x75,0xe, 0x58,0x19,0x75,0xe, 0x12,0x74,0x7, 0xac,0xbe, +0x9, 0x75,0xe, 0x59,0x19,0x75,0xe, 0x13,0x7c,0xbf,0x54,0xf, 0xbe,0xb0,0xa, 0x40, +0x3, 0x2, 0x5, 0xd7,0x7c,0xfb,0xa, 0xf, 0x7d,0x10,0x2e,0x15,0x33,0x7e,0x19,0xb0, +0xbe,0xb0,0x3, 0x78,0x3, 0x2, 0x5, 0xf4,0xb4,0x1, 0x2, 0x80,0x3, 0x2, 0x4, 0xf9, +0x74,0xff,0x19,0xb0,0x13,0x6, 0x2, 0x5, 0xd7,0x9, 0x90,0x13,0x6, 0xbe,0x90,0xff, +0x68,0x3, 0x2, 0x5, 0x4b,0x74,0x1, 0x19,0xb0,0x13,0x6, 0x7e,0x15,0x35,0x74,0x7, +0xac,0xbe,0x59,0x15,0xe, 0xd, 0x7e,0x15,0x37,0x74,0x7, 0xac,0xbe,0x59,0x15,0xe, +0xf, 0x6c,0xdd,0x7e,0x70,0x7, 0xac,0x7e,0x2e,0x34,0xe, 0xd, 0x7e,0x50,0x7, 0xac, +0x5d,0x7e,0x30,0x15,0xac,0x3f,0x2d,0x12,0x2e,0x14,0x12,0x34,0x74,0x7, 0x12,0x48, +0xc5,0xb, 0xd0,0xbe,0xd0,0x3, 0x78,0xdb,0x2, 0x5, 0xd7,0xbe,0x90,0x3, 0x50,0x3, +0x2, 0x5, 0x58,0xe4,0x19,0xb0,0x13,0x6, 0x7e,0x25,0x35,0x9, 0x80,0x13,0x6, 0x7e, +0x90,0x7, 0xac,0x89,0x7e,0x70,0x15,0xac,0x7f,0x2d,0x43,0x59,0x24,0x12,0x34,0x7e, +0x25,0x37,0x59,0x24,0x12,0x36,0x7e,0xb3,0xf, 0x22,0x60,0x3, 0x2, 0x5, 0xa0,0xe4, +0x2e,0x34,0x12,0x34,0x12,0x67,0xe7,0x74,0x7, 0xac,0xbe,0x59,0x35,0xe, 0xd, 0x74, +0x1, 0x7e,0x70,0x15,0xac,0x7f,0x2e,0x34,0x12,0x34,0x12,0x67,0xe7,0x2, 0x5, 0xc2, +0x49,0x34,0x12,0x34,0x74,0x7, 0xac,0xbe,0x59,0x35,0xe, 0xd, 0xa, 0x3f,0x9, 0x43, +0x13,0x6, 0x7e,0x50,0x7, 0xac,0x45,0x7e,0x70,0x15,0xac,0x7f,0x2d,0x32,0x49,0x33, +0x12,0x36,0x74,0x7, 0xac,0xbe,0x59,0x35,0xe, 0xf, 0xa, 0x3f,0x2e,0x34,0x13,0x6, +0x7e,0x39,0xb0,0x4, 0x7a,0x39,0xb0,0x7c,0x1e,0x2e,0x10,0x27,0xa5,0xe7,0x60,0x3, +0x2, 0x5, 0xf4,0x7e,0x70,0x3, 0xac,0x7e,0x2e,0x34,0x12,0x1, 0x7e,0x24,0x0, 0x3, +0xe4,0x12,0x6d,0xee,0xb, 0xe0,0xbe,0xe0,0xa, 0x68,0x3, 0x2, 0x4, 0x86,0xe5,0x26, +0xbe,0xb0,0x0, 0x38,0x3, 0x2, 0x6, 0xe, 0x74,0x1, 0x7a,0xb3,0xf, 0x24,0xda,0x3b, +0x22,0xca,0x3b,0x7e,0xe3,0xf, 0x1b,0x4c,0xee,0x78,0x27,0x6c,0xff,0x6d,0x11,0x74, +0x2, 0xac,0xbf,0x59,0x15,0x13,0x56,0x7e,0xa0,0xff,0x7e,0x30,0x7, 0xac,0x3f,0x19, +0xa1,0x13,0x14,0x74,0x2, 0xa, 0x1f,0x19,0xb1,0x13,0x6a,0xb, 0xf0,0xbe,0xf0,0xa, +0x78,0xdb,0x6c,0xff,0x2, 0x7, 0xac,0x74,0x7, 0xac,0xbf,0x9, 0xb5,0xe, 0x11,0x54, +0xf, 0xf5,0x22,0xbe,0xb0,0xa, 0x40,0x3, 0x2, 0x7, 0xaa,0xe5,0x22,0xa, 0x1b,0x9, +0xb1,0xe, 0xdf,0xbe,0xb0,0x1, 0x78,0x3, 0x2, 0x7, 0x85,0x75,0x21,0x0, 0x7e,0x31, +0x21,0x74,0x7, 0xac,0x3b,0x9, 0x71,0x13,0x14,0x7a,0x71,0x23,0xbe,0x71,0x22,0x68, +0x3, 0x2, 0x7, 0x77,0x49,0x21,0x13,0x12,0x74,0x7, 0xac,0xbf,0x49,0x35,0xe, 0xf, +0x9d,0x32,0x12,0x6d,0xde,0x7d,0x63,0x7e,0xa1,0x21,0x74,0x7, 0xa4,0x49,0x25,0x13, +0x10,0x74,0x7, 0xac,0xbf,0x49,0x35,0xe, 0xd, 0x9d,0x32,0x12,0x6d,0xde,0x7d,0x3, +0x2d,0x6, 0xe5,0x23,0xa, 0x1b,0x9, 0xa1,0x13,0x6a,0xbe,0xa0,0x0, 0x28,0x18,0x7e, +0x71,0x23,0x74,0x2, 0xac,0x7b,0x59,0x3, 0x13,0x56,0x2e,0x14,0x13,0x6a,0x7c,0xba, +0x14,0x7a,0x19,0xb0,0x2, 0x7, 0xaa,0x7e,0xa1,0x23,0x74,0x2, 0xa4,0x49,0x15,0x13, +0x56,0xbe,0x14,0x0, 0x32,0x28,0x9, 0xbe,0x4, 0x0, 0x32,0x28,0x3, 0x2, 0x7, 0x71, +0x7d,0x41,0x2e,0x44,0x0, 0x32,0xbd,0x40,0x50,0x8, 0xbe,0x14,0x0, 0x32,0x28,0x2, +0x80,0x6f,0xbe,0x4, 0x0, 0x96,0x28,0x63,0xe5,0x22,0xa, 0x1b,0x9, 0xb1,0xe, 0xdf, +0x70,0x4, 0x74,0x3, 0x80,0x2, 0x74,0x1, 0x19,0xb1,0xe, 0xdf,0x7e,0xa0,0x3, 0xe5, +0x22,0xa, 0x1b,0x19,0xa1,0xe, 0xe9,0x7e,0x71,0x21,0x74,0x7, 0xac,0x7b,0x2e,0x34, +0x13,0x10,0x7e,0x14,0x13,0xb6,0x12,0x48,0xc5,0xbe,0xe0,0x0, 0x28,0x2d,0x1b,0xe0, +0x7e,0x70,0x7, 0xac,0x7e,0x2e,0x34,0xe, 0xd, 0x7e,0x30,0x7, 0xac,0x3f,0x2e,0x14, +0xe, 0xd, 0x74,0x7, 0x12,0x48,0xc5,0x7e,0x34,0x13,0xb6,0x7e,0x30,0x7, 0xac,0x3e, +0x2e,0x14,0xe, 0xd, 0x74,0x7, 0x12,0x48,0xc5,0x1b,0xf0,0x7e,0xa1,0x23,0x74,0x2, +0xa4,0x59,0x5, 0x13,0x56,0x80,0x33,0x5, 0x21,0xe5,0x21,0xbe,0xb0,0xa, 0x50,0x3, +0x2, 0x6, 0x6e,0x80,0x25,0x6d,0x11,0x7e,0xa1,0x22,0x74,0x2, 0xa4,0x59,0x15,0x13, +0x56,0x7e,0xa0,0xff,0x7e,0x31,0x22,0x74,0x7, 0xac,0x3b,0x19,0xa1,0x13,0x14,0x7e, +0xa0,0x2, 0xe5,0x22,0xa, 0x1b,0x19,0xa1,0x13,0x6a,0xb, 0xf0,0xbc,0xef,0x28,0x3, +0x2, 0x6, 0x47,0x7a,0xe3,0xf, 0x1b,0x7e,0x24,0xe, 0xd, 0x7e,0x34,0x13,0x10,0x7e, +0x14,0x0, 0x46,0x12,0x6d,0x4a,0xda,0x3b,0x22,0x6c,0xaa,0x7e,0x50,0x2, 0xac,0x5a, +0x7d,0x12,0x2d,0x13,0x9, 0xb1,0x0, 0x1, 0x54,0x3f,0xa, 0xb, 0x3e,0x4, 0x3e,0x4, +0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x7e,0x19,0xb0,0x54,0x3f,0xa, 0x1b,0x4d, +0x10,0x2e,0x24,0x1c,0x36,0x1b,0x28,0x10,0xb, 0xa0,0xbe,0xa0,0x2, 0x40,0xcc,0x22, +0xd2,0x9f,0x6d,0x33,0x89,0x34,0xca,0x3b,0x7d,0x63,0x75,0x24,0xc, 0x75,0x25,0x0, +0x75,0x26,0x17,0x75,0x27,0x0, 0x7e,0x34,0x13,0xd0,0x7e,0x24,0x0, 0x28,0xe4,0x12, +0x6d,0xee,0x6c,0x66,0x2, 0x8, 0xed,0x74,0x2, 0xac,0xb6,0x9, 0x75,0xd, 0x18,0x7a, +0x71,0x23,0x9, 0xa5,0xd, 0x19,0x1a,0x17,0x7d,0x21,0x1b,0x25,0xb, 0x15,0x7c,0x43, +0x1a,0x1a,0x1b,0x15,0x1a,0xa, 0xb, 0x5, 0x7c,0x21,0xbe,0x50,0x0, 0x58,0x2, 0x6c, +0x55,0x7e,0x73,0x10,0x2b,0xa, 0x7, 0x1b,0x4, 0x1a,0x44,0xbd,0x40,0x8, 0x2, 0x7c, +0x41,0xbe,0x30,0x0, 0x58,0x2, 0x6c,0x33,0x7e,0x73,0x10,0x2c,0xa, 0x7, 0x1b,0x4, +0x1a,0x42,0xbd,0x40,0x8, 0x2, 0x7c,0x21,0xbe,0x51,0x24,0x58,0x3, 0x7a,0x51,0x24, +0xbe,0x41,0x25,0x8, 0x3, 0x7a,0x41,0x25,0xbe,0x31,0x26,0x58,0x3, 0x7a,0x31,0x26, +0xbe,0x21,0x27,0x8, 0x3, 0x7a,0x21,0x27,0x7c,0xf5,0x80,0x4b,0x7c,0xe3,0x80,0x41, +0x1a,0xef,0x7e,0xf4,0x0, 0x18,0xad,0xfe,0x1a,0xe, 0x2d,0xf, 0xe, 0x4, 0xe, 0x4, +0xe, 0x4, 0x7c,0x71,0x7a,0x71,0x21,0x7e,0x10,0x18,0xac,0x1f,0x7c,0xb1,0x2c,0xbe, +0x54,0x7, 0x7e,0x4, 0x0, 0x1, 0x60,0x5, 0x3e,0x4, 0x14,0x78,0xfb,0x7c,0xb1,0xf5, +0x22,0xa, 0x7, 0x2e,0x4, 0x13,0xd0,0x7e,0x9, 0xb0,0x45,0x22,0x7a,0x9, 0xb0,0xb, +0xe0,0xbc,0x2e,0x58,0xbb,0xb, 0xf0,0xbc,0x4f,0x58,0xb1,0xb, 0x60,0x7e,0x73,0xd, +0xf7,0xbc,0x76,0x28,0x3, 0x2, 0x8, 0x27,0xbe,0x70,0x0, 0x38,0x3, 0x2, 0xd, 0x43, +0x7e,0xe1,0x26,0x2, 0xd, 0x3a,0x6c,0xff,0x80,0x1f,0x1a,0x3e,0x3e,0x34,0x1a,0x2f, +0x7e,0x14,0x0, 0x30,0xad,0x12,0x2d,0x31,0x2d,0x36,0xb, 0x38,0x30,0xe, 0x34,0xe, +0x34,0x3e,0x24,0x59,0x32,0x13,0xb6,0xb, 0xf0,0x7e,0x73,0x10,0x2b,0xbc,0x7f,0x18, +0xd9,0x7e,0xf1,0x24,0x2, 0xd, 0x2f,0x1a,0x4f,0x7e,0x14,0x0, 0x18,0xad,0x14,0x1a, +0x3e,0x7d,0x51,0x2d,0x53,0xe, 0x54,0xe, 0x54,0xe, 0x54,0x7c,0xab,0x7a,0xa1,0x21, +0x7e,0x50,0x18,0xac,0x5f,0x7c,0xb5,0x2c,0xbe,0x54,0x7, 0x7e,0x24,0x0, 0x1, 0x60, +0x5, 0x3e,0x24,0x14,0x78,0xfb,0x7c,0xb5,0xf5,0x22,0xa, 0x2a,0x9, 0xb2,0x13,0xd0, +0x55,0x22,0x78,0x3, 0x2, 0xd, 0x2d,0xbe,0xf0,0x3, 0x58,0x3, 0x2, 0x9, 0xfe,0x7e, +0x53,0x10,0x2b,0xa, 0x25,0x1b,0x26,0xbd,0x42,0x18,0x73,0x7d,0xf4,0x3e,0xf4,0x49, +0x5f,0x13,0xba,0x49,0x2f,0x13,0xb2,0x2d,0x25,0x7d,0x52,0x3e,0x54,0x3e,0x24,0x3e, +0x24,0x3e,0x24,0x2d,0x25,0x49,0x5f,0x13,0xbc,0x49,0xef,0x13,0xb0,0x2d,0xe5,0x7d, +0x5e,0x3e,0x54,0x2d,0x5e,0x9d,0x25,0x49,0xef,0x13,0xb8,0x49,0x5f,0x13,0xb4,0x2d, +0x5e,0x7d,0xe5,0x3e,0xe4,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x2d, +0x5e,0x9d,0x25,0x49,0x5f,0x13,0xb6,0x7d,0x5, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x3e, +0x4, 0x7d,0x15,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x3e, +0x14,0x9d,0x10,0x3e,0x54,0x3e,0x54,0x2d,0x51,0x2d,0x52,0x2, 0xb, 0x55,0x4c,0xff, +0x78,0x5d,0x7d,0x24,0x3e,0x24,0x49,0x12,0x13,0xb6,0x7d,0x1, 0x3e,0x4, 0x3e,0x4, +0x3e,0x4, 0x3e,0x4, 0x7d,0x51,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x3e,0x54, +0x3e,0x54,0x2d,0x50,0x7d,0x1, 0x3e,0x4, 0x2d,0x5, 0x2d,0x1, 0x49,0x12,0x13,0xb8, +0x7d,0x51,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x9d,0x5, 0x3e,0x14,0x3e,0x14, +0x3e,0x14,0x9d,0x1, 0x49,0x12,0x13,0xba,0x7d,0x51,0x3e,0x54,0x3e,0x54,0x3e,0x54, +0x2d,0x50,0x9d,0x51,0x49,0x22,0x13,0xbc,0x3e,0x24,0x9d,0x52,0x2, 0xb, 0x55,0xbe, +0xf0,0x1, 0x78,0x69,0x7d,0x4, 0x3e,0x4, 0x49,0x10,0x13,0xb4,0x7d,0x21,0x3e,0x24, +0x3e,0x24,0x3e,0x24,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x2d,0x12,0x49,0x20, +0x13,0xb6,0x7d,0x52,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x3e,0x24,0x3e,0x24, +0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x9d,0x25,0x9d,0x21,0x49,0x10, +0x13,0xb8,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x9d,0x21,0x49,0x10, +0x13,0xba,0x7d,0x51,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x2d,0x51,0x2d,0x52,0x49,0x10, +0x13,0xbc,0x7d,0x21,0x3e,0x24,0x2d,0x21,0x9d,0x52,0x2, 0xb, 0x55,0xbe,0xf0,0x2, +0x68,0x3, 0x2, 0xb, 0x75,0x7d,0x4, 0x3e,0x4, 0x49,0x10,0x13,0xb4,0x7d,0x21,0x3e, +0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x2d,0x21,0x49,0x50,0x13,0xb2,0x7d, +0x15,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x9d,0x15,0x9d,0x12,0x49,0x20,0x13,0xb6,0x7d, +0xf2,0x3e,0xf4,0x3e,0xf4,0x3e,0xf4,0x3e,0xf4,0x7d,0x52,0x3e,0x54,0x3e,0x54,0x3e, +0x54,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x9d,0x5f,0x3e,0x24,0x3e,0x24,0x2d, +0x25,0x2d,0x21,0x49,0x50,0x13,0xb8,0x7d,0x15,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x3e, +0x14,0x3e,0x14,0x2d,0x15,0x9d,0x21,0x49,0x50,0x13,0xba,0x7d,0x15,0x3e,0x14,0x3e, +0x54,0x3e,0x54,0x3e,0x54,0x2d,0x51,0x2d,0x52,0x49,0x10,0x13,0xbc,0x7d,0x21,0x3e, +0x24,0x2d,0x21,0x9d,0x52,0xe, 0x54,0xe, 0x54,0xe, 0x54,0xe, 0x54,0xe, 0x54,0xe, +0x54,0x7d,0x23,0x3e,0x24,0x7e,0x14,0x0, 0x30,0xad,0x14,0x2d,0x21,0x2d,0x26,0x1b, +0x28,0x50,0x2, 0xd, 0x11,0x7e,0xa3,0x10,0x2b,0x7c,0xba,0x24,0xfd,0xbc,0xbf,0x68, +0x3, 0x2, 0xc, 0x11,0x3e,0x44,0x49,0x24,0x13,0xb2,0x7d,0x12,0x3e,0x14,0x3e,0x24, +0x3e,0x24,0x3e,0x24,0x2d,0x21,0x49,0x4, 0x13,0xb0,0x7d,0x10,0x3e,0x14,0x2d,0x10, +0x9d,0x21,0x49,0x4, 0x13,0xb4,0x7d,0x10,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x3e,0x14, +0x3e,0x14,0x2d,0x10,0x9d,0x21,0x49,0x14,0x13,0xb6,0x7d,0xf1,0x3e,0xf4,0x3e,0xf4, +0x3e,0xf4,0x3e,0xf4,0x7d,0x1, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, +0x3e,0x4, 0x3e,0x4, 0x9d,0xf, 0x3e,0x14,0x3e,0x14,0x2d,0x10,0x2d,0x12,0x49,0x4, +0x13,0xb8,0x7d,0x20,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x2d,0x20, +0x9d,0x12,0x49,0x4, 0x13,0xba,0x7d,0x20,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x9d,0x20, +0x2d,0x21,0xe, 0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0x2, 0xd, +0x0, 0x7c,0xba,0x24,0xfe,0xbc,0xbf,0x78,0x76,0x1a,0xf, 0x3e,0x4, 0x49,0x30,0x13, +0xb0,0x7d,0x23,0x3e,0x24,0x2d,0x23,0x49,0x10,0x13,0xb2,0x7d,0x31,0x3e,0x34,0x3e, +0x34,0x3e,0x34,0x2d,0x31,0x9d,0x32,0x49,0x20,0x13,0xb4,0x3e,0x24,0x3e,0x24,0x3e, +0x24,0x3e,0x24,0x3e,0x24,0x9d,0x32,0x49,0x20,0x13,0xb6,0x7d,0x12,0x3e,0x14,0x3e, +0x14,0x3e,0x14,0x3e,0x14,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e, +0x24,0x3e,0x24,0x9d,0x21,0x2d,0x23,0x49,0x30,0x13,0xb8,0x7d,0x13,0x3e,0x14,0x3e, +0x14,0x3e,0x14,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x2d,0x31,0x9d,0x23,0xe, +0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0x1a,0x3e,0x80,0x71,0x7e, +0xb3,0x10,0x2b,0x14,0xbc,0xbf,0x78,0x79,0x1a,0x5f,0x3e,0x54,0x49,0x25,0x13,0xb2, +0x7d,0x32,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x9d,0x32,0x49,0x25,0x13,0xb0,0x3e,0x24, +0x9d,0x32,0x49,0x25,0x13,0xb4,0x7d,0x42,0x3e,0x44,0x3e,0x44,0x3e,0x44,0x3e,0x24, +0x3e,0x24,0x3e,0x24,0x3e,0x24,0x2d,0x24,0x9d,0x32,0x49,0x15,0x13,0xb6,0x7d,0x21, +0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x7d,0x1, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, +0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x2d,0x2, 0x7d,0x21,0x3e,0x24,0x2d,0x20,0x2d,0x21, +0x2d,0x23,0xe, 0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0x1a,0x3e, +0x3e,0x34,0x1a,0xf, 0x7e,0x14,0x0, 0x30,0xad,0x10,0x2d,0x31,0x2d,0x36,0x1b,0x38, +0x20,0x1a,0x1e,0x3e,0x14,0x1a,0x2f,0x7e,0x34,0x0, 0x30,0xad,0x32,0x7d,0x23,0x2d, +0x21,0x2d,0x26,0xb, 0x28,0x30,0x3e,0x34,0x3e,0x34,0x1b,0x28,0x30,0xb, 0xf0,0xe5, +0x25,0xbc,0xbf,0x48,0x3, 0x2, 0x9, 0x37,0xb, 0xe0,0xe5,0x27,0xbc,0xbe,0x48,0x3, +0x2, 0x9, 0x6, 0xda,0x3b,0x22,0xca,0x3b,0x7c,0xfb,0x7e,0xb3,0xd, 0xf7,0xf5,0x2c, +0x75,0x10,0x0, 0xe4,0x7a,0xb3,0x15,0x54,0x7a,0xb3,0x15,0x55,0x6d,0x22,0x7e,0x34, +0x7f,0xff,0x7e,0x67,0xf, 0xda,0x6c,0xee,0xe4,0xa, 0x1e,0x19,0xb1,0x13,0xb6,0x6c, +0xaa,0x7e,0x10,0x2, 0xac,0x1e,0x19,0xa0,0x15,0x2b,0x19,0xb0,0x15,0x2c,0xe5,0x2c, +0xbc,0xbe,0x28,0x24,0x9, 0x20,0xd, 0x18,0x7e,0x30,0x18,0xac,0x23,0x9, 0x10,0xd, +0x19,0xa, 0x1, 0x2d,0x10,0x3e,0x14,0x2d,0x16,0xb, 0x18,0x10,0xbd,0x12,0x48,0x2, +0x7d,0x21,0xbd,0x13,0x18,0x2, 0x7d,0x31,0xb, 0xe0,0xbe,0xe0,0x14,0x78,0xb9,0x2d, +0x32,0xe, 0x34,0xe5,0x2c,0xbe,0xb0,0x2, 0x50,0x3, 0x2, 0x11,0x9d,0x6c,0xee,0x7e, +0x30,0x6, 0xac,0x3e,0x7d,0x51,0x2e,0x54,0x69,0x5c,0x7e,0x44,0x0, 0xff,0xb, 0x2a, +0x20,0xbd,0x23,0x58,0x20,0x7d,0x51,0x2e,0x54,0x69,0x5e,0x7e,0x44,0x0, 0xff,0xb, +0x2a,0x20,0x7a,0x25,0x30,0x2e,0x14,0x69,0x60,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0x20, +0x7a,0x25,0x32,0x80,0x7, 0xb, 0xe0,0xbe,0xe0,0x7, 0x40,0xc3,0x6c,0xee,0x2, 0x11, +0x8b,0x7e,0x70,0x2, 0xac,0x7e,0x9, 0xb3,0xd, 0x18,0xf5,0x22,0x9, 0xb3,0xd, 0x19, +0xf5,0x23,0x4c,0xee,0x68,0x8, 0xa, 0x3e,0x9, 0xb3,0x13,0xb6,0x70,0xa, 0xa, 0x3e, +0xb, 0x34,0xa, 0x2e,0x19,0x72,0x13,0xb6,0xe5,0x2c,0x14,0xbc,0xbe,0x78,0x3, 0x2, +0x11,0x94,0xa, 0x5e,0xb, 0x54,0xf5,0x2d,0x2, 0x11,0x7f,0x7e,0x71,0x2d,0x74,0x2, +0xac,0x7b,0x9, 0xa3,0xd, 0x18,0x7a,0xa1,0x24,0x9, 0xb3,0xd, 0x19,0xf5,0x25,0xa, +0x2a,0xe5,0x22,0xa, 0x3b,0x9d,0x32,0x12,0x6d,0xde,0x7c,0xb7,0xf5,0x2a,0xe5,0x25, +0xa, 0x2b,0xe5,0x23,0xa, 0x3b,0x9d,0x32,0x12,0x6d,0xde,0x7c,0xb7,0xf5,0x2b,0x75, +0x3d,0x2, 0x75,0x2f,0x0, 0x7e,0x51,0x22,0x74,0x18,0xac,0x5b,0xe5,0x23,0xa, 0x3b, +0x2d,0x23,0x3e,0x24,0x2d,0x26,0xb, 0x28,0x20,0x7a,0x25,0x34,0x7e,0x11,0x24,0x74, +0x18,0xac,0x1b,0xe5,0x25,0xa, 0x1b,0x7d,0x20,0x2d,0x21,0x3e,0x24,0x2d,0x26,0xb, +0x28,0x20,0x7a,0x25,0x36,0x7d,0x52,0x3e,0x54,0x3e,0x54,0x3e,0x54,0xe, 0x54,0xe, +0x54,0xe, 0x54,0xe, 0x54,0x7a,0x55,0x38,0xbe,0x25,0x34,0x8, 0x14,0x7e,0x25,0x34, +0x3e,0x24,0x3e,0x24,0x3e,0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0x7a,0x25, +0x38,0xe5,0x2a,0xbe,0xb0,0x1, 0x38,0x37,0xe5,0x2b,0xbe,0xb0,0x1, 0x38,0x30,0x7c, +0xbf,0x54,0x2, 0xb4,0x2, 0x29,0x2d,0x3, 0x3e,0x4, 0x2d,0x6, 0xb, 0x8, 0x20,0x7e, +0x71,0x22,0x74,0x18,0xac,0x7b,0x2d,0x31,0x3e,0x34,0x2d,0x36,0xb, 0x38,0x30,0x2d, +0x32,0xbe,0x35,0x38,0x18,0x3, 0x2, 0x11,0x13,0x75,0x2f,0x1, 0x2, 0x11,0x13,0xe5, +0x2a,0xbe,0xb0,0x1, 0x38,0xa, 0xe5,0x2b,0xbe,0xb0,0x1, 0x38,0x3, 0x2, 0x11,0x13, +0xe5,0x2a,0xbe,0xb0,0x4, 0x40,0x3, 0x2, 0x11,0x13,0xe5,0x2b,0xbe,0xb0,0x4, 0x40, +0x3, 0x2, 0x11,0x13,0x7c,0xbf,0x54,0x1, 0xb4,0x1, 0x2, 0x80,0x3, 0x2, 0x11,0x13, +0x6d,0x33,0x7a,0x35,0x3a,0x75,0x3c,0x0, 0x85,0x22,0x26,0x85,0x24,0x28,0xe5,0x24, +0xbe,0xb1,0x22,0x50,0x6, 0x85,0x24,0x26,0x85,0x22,0x28,0x85,0x23,0x27,0x85,0x25, +0x29,0xe5,0x25,0xbe,0xb1,0x23,0x50,0x6, 0x85,0x25,0x27,0x85,0x23,0x29,0x75,0x40, +0x0, 0x75,0x41,0x0, 0xe5,0x28,0xbe,0xb1,0x26,0x78,0x21,0x75,0x40,0x1, 0xe5,0x26, +0x60,0x5, 0xe5,0x26,0xb4,0xc, 0x3, 0x75,0x41,0x1, 0xe5,0x26,0xbe,0xb0,0x0, 0x28, +0x2, 0x15,0x26,0xe5,0x28,0xbe,0xb0,0xc, 0x50,0x2, 0x5, 0x28,0xe5,0x29,0xbe,0xb1, +0x27,0x78,0x21,0x75,0x40,0x1, 0xe5,0x27,0x60,0x5, 0xe5,0x27,0xb4,0x17,0x3, 0x75, +0x41,0x1, 0xe5,0x27,0xbe,0xb0,0x0, 0x28,0x2, 0x15,0x27,0xe5,0x29,0xbe,0xb0,0x17, +0x50,0x2, 0x5, 0x29,0x85,0x26,0x3e,0x80,0x78,0x85,0x27,0x3f,0x80,0x6a,0xe5,0x26, +0xbe,0xb1,0x3e,0x68,0x15,0xe5,0x28,0xbe,0xb1,0x3e,0x68,0xe, 0xe5,0x27,0xbe,0xb1, +0x3f,0x68,0x7, 0xe5,0x29,0xbe,0xb1,0x3f,0x78,0x24,0x7e,0x51,0x3e,0x74,0x18,0xac, +0x5b,0xe5,0x3f,0xa, 0x1b,0x2d,0x21,0x3e,0x24,0x2d,0x26,0xb, 0x28,0x20,0xbe,0x24, +0x0, 0x0, 0x8, 0x6, 0x2e,0x25,0x3a,0x7a,0x25,0x3a,0x5, 0x3c,0x80,0x28,0x7e,0x51, +0x3e,0x74,0x18,0xac,0x5b,0xe5,0x3f,0xa, 0x1b,0x2d,0x21,0x3e,0x24,0x2d,0x26,0xb, +0x28,0x20,0xbe,0x25,0x32,0x8, 0xc, 0xe5,0x3d,0xbe,0xb0,0x0, 0x28,0x5, 0x75,0x3d, +0x1, 0x80,0x3, 0x75,0x3d,0x0, 0x5, 0x3f,0xe5,0x29,0xbe,0xb1,0x3f,0x50,0x8f,0x5, +0x3e,0xe5,0x28,0xbe,0xb1,0x3e,0x50,0x81,0x7e,0x51,0x28,0x74,0x18,0xac,0x5b,0xe5, +0x27,0xa, 0x4b,0x2d,0x24,0x3e,0x24,0x2d,0x26,0xb, 0x28,0x50,0x7e,0x25,0x3a,0x9d, +0x25,0x7e,0x31,0x26,0x74,0x18,0xac,0x3b,0xe5,0x29,0xa, 0xb, 0x7d,0x51,0x2d,0x50, +0x3e,0x54,0x2d,0x56,0xb, 0x58,0x50,0x9d,0x25,0x2d,0x14,0x3e,0x14,0x2d,0x16,0xb, +0x18,0x10,0x9d,0x21,0x7e,0x31,0x28,0x74,0x18,0xac,0x3b,0x2d,0x10,0x3e,0x14,0x2d, +0x16,0xb, 0x18,0x10,0x9d,0x21,0x7a,0x25,0x3a,0x7e,0x25,0x36,0x2e,0x25,0x34,0x7a, +0x25,0x38,0xe5,0x40,0xb4,0x1, 0x11,0xe5,0x41,0x70,0xd, 0x7e,0x25,0x3a,0x9e,0x25, +0x38,0x7a,0x25,0x3a,0x15,0x3c,0x15,0x3c,0xe5,0x3c,0xbe,0xb0,0x4, 0x28,0x6, 0xe5, +0x3c,0x24,0xfc,0xf5,0x3c,0x7e,0x25,0x3a,0xbe,0x24,0x0, 0x0, 0x58,0x3, 0x7a,0x35, +0x3a,0x7e,0x15,0x38,0x1a,0x2, 0x1a,0x0, 0x7e,0x35,0x30,0x1a,0x26,0x1a,0x24,0x12, +0x48,0x24,0xe5,0x3c,0xa, 0x1b,0x6d,0x0, 0x12,0x48,0x24,0x7f,0x21,0x7e,0x35,0x3a, +0x1a,0x26,0x1a,0x24,0x7e,0x14,0x0, 0x28,0x12,0x48,0x35,0xbf,0x12,0x8, 0xa, 0xe5, +0x3d,0xbe,0xb0,0x0, 0x28,0x3, 0x75,0x2f,0x2, 0x7e,0xb3,0xd, 0xfd,0xb4,0x1, 0x3, +0x75,0x2f,0x2, 0xe5,0x2f,0xbe,0xb0,0x0, 0x28,0x63,0xe5,0x2f,0xa, 0x3b,0x2e,0x34, +0x15,0x53,0x7e,0x39,0xb0,0x4, 0x7a,0x39,0xb0,0xe5,0x2d,0xa, 0x3b,0x9, 0xb3,0x13, +0xb6,0x70,0xc, 0xa, 0x2e,0x9, 0x52,0x13,0xb6,0x19,0x53,0x13,0xb6,0x80,0x3e,0x75, +0x2e,0x0, 0x80,0x32,0x9, 0x33,0x13,0xb6,0xa, 0x2e,0x9, 0xa2,0x13,0xb6,0xbc,0xa3, +0x28,0x12,0xe5,0x2e,0xa, 0x2b,0x9, 0x22,0x13,0xb6,0xbc,0x2a,0x78,0x16,0x19,0x32, +0x13,0xb6,0x80,0x10,0xe5,0x2e,0xa, 0x2b,0x9, 0xb2,0x13,0xb6,0xbc,0xb3,0x78,0x4, +0x19,0xa2,0x13,0xb6,0x5, 0x2e,0xe5,0x2c,0xbe,0xb1,0x2e,0x38,0xc7,0x5, 0x2d,0xe5, +0x2c,0xbe,0xb1,0x2d,0x28,0x3, 0x2, 0xe, 0x3b,0xb, 0xe0,0xe5,0x2c,0xbc,0xbe,0x28, +0x3, 0x2, 0xe, 0x1, 0x7e,0x34,0x13,0xb6,0x12,0x39,0xc4,0xf5,0x10,0xda,0x3b,0x22, +0xca,0x3b,0x7c,0xf6,0x7c,0xe7,0x7c,0xdb,0x6c,0x33,0x6c,0x44,0x6c,0x22,0x6c,0x55, +0x7e,0x37,0xf, 0x61,0x7a,0x35,0x3e,0x6c,0xaa,0x7e,0x70,0x7, 0xac,0x7f,0x19,0xa3, +0xd, 0x70,0xe4,0x19,0xb3,0xd, 0x71,0xa, 0x5d,0x3e,0x54,0xb, 0x54,0x7c,0xab,0x7e, +0x70,0x2, 0xac,0x7e,0x9, 0xb3,0xd, 0x18,0xf5,0x39,0x9, 0xb3,0xd, 0x19,0xf5,0x3a, +0xbe,0xd1,0x3a,0x28,0x3, 0x2, 0x12,0xe, 0x7e,0xb3,0x10,0x2c,0xa, 0xb, 0x1b,0x4, +0xa, 0x3d,0x9d,0x3, 0xe5,0x3a,0xa, 0x3b,0xbd,0x30,0x8, 0x3, 0x2, 0x12,0xe, 0x7c, +0x3a,0xa, 0x4d,0xe5,0x3a,0xa, 0xb, 0x9d,0x4, 0x7c,0x51,0x2, 0x12,0x59,0xbe,0xd1, +0x3a,0x38,0x3, 0x2, 0x12,0x27,0xe5,0x3a,0xa, 0xb, 0xa, 0x3d,0x2d,0x30,0xb, 0x34, +0x7c,0x37,0x6c,0x55,0x2, 0x12,0x59,0xa, 0xfd,0xe5,0x3a,0xa, 0x4b,0x2d,0xf4,0x7e, +0xb3,0x10,0x2c,0xa, 0xb, 0x7d,0x30,0x1b,0x34,0xbd,0xf3,0x18,0x3, 0x2, 0x12,0x59, +0xbd,0x43,0x8, 0x3, 0x2, 0x12,0x59,0xa, 0x3d,0x2d,0x30,0xe5,0x3a,0xa, 0xb, 0x9d, +0x30,0x7c,0x37,0xa, 0x3d,0x9d,0x3, 0x7c,0x51,0xbe,0xd1,0x39,0x28,0x3, 0x2, 0x12, +0x83,0x7e,0xb3,0x10,0x2b,0xa, 0xb, 0x1b,0x4, 0xa, 0x3d,0x9d,0x3, 0xe5,0x39,0xa, +0x3b,0xbd,0x30,0x8, 0x3, 0x2, 0x12,0x83,0x7c,0x4a,0xa, 0xd, 0xe5,0x39,0xa, 0x3b, +0x2, 0x12,0xca,0xbe,0xd1,0x39,0x38,0x3, 0x2, 0x12,0x9c,0xe5,0x39,0xa, 0xb, 0xa, +0x3d,0x2d,0x30,0xb, 0x34,0x7c,0x47,0x6c,0x22,0x2, 0x12,0xce,0xa, 0x4d,0xe5,0x39, +0xa, 0x5b,0x2d,0x45,0x7e,0x73,0x10,0x2b,0xa, 0x37,0x7d,0x3, 0x1b,0x4, 0xbd,0x40, +0x18,0x3, 0x2, 0x12,0xce,0xbd,0x50,0x8, 0x3, 0x2, 0x12,0xce,0xa, 0xd, 0x2d,0x3, +0xe5,0x39,0xa, 0x3b,0x9d,0x3, 0x7c,0x41,0xa, 0xd, 0x9d,0x30,0x7c,0x27,0x7e,0x37, +0xf, 0xda,0x7c,0xb2,0x7e,0x23,0xf, 0x53,0x7e,0x4, 0x9, 0xc8,0x12,0x5c,0x41,0x7e, +0x37,0x9, 0xc8,0x7d,0x3, 0x6d,0x11,0x7e,0x37,0x9, 0xca,0x7d,0x20,0x7a,0x1d,0x28, +0x7e,0x37,0x9, 0xcc,0x7d,0x3, 0x7e,0x37,0x9, 0xce,0x7d,0x20,0x7a,0x1d,0x2c,0x7e, +0x37,0x9, 0xd0,0x7d,0x3, 0x7e,0x37,0x9, 0xd2,0x7d,0x20,0x7a,0x1d,0x30,0x7e,0x37, +0x9, 0xd4,0x7d,0x3, 0x7e,0x37,0x9, 0xd6,0x7d,0x20,0x7a,0x1d,0x34,0xa, 0x2d,0xe5, +0x39,0xa, 0x3b,0x9d,0x32,0x7c,0xc7,0x2, 0x15,0x24,0xa, 0x4d,0xe5,0x3a,0xa, 0x5b, +0x9d,0x54,0xf5,0x38,0x2, 0x15,0xd, 0xbe,0xc0,0x0, 0x58,0x3, 0x2, 0x15,0xb, 0x7e, +0x73,0x10,0x2b,0xbc,0x7c,0x18,0x3, 0x2, 0x15,0xb, 0xe5,0x38,0xbe,0xb0,0x0, 0x58, +0x3, 0x2, 0x15,0xb, 0x7e,0x73,0x10,0x2c,0xbe,0x71,0x38,0x18,0x3, 0x2, 0x15,0xb, +0xe5,0x38,0x1a,0x1b,0x3e,0x14,0x1a,0x2c,0x7e,0x34,0x0, 0x30,0xad,0x32,0x2d,0x31, +0x2e,0x37,0xf, 0xda,0xb, 0x38,0x30,0x7e,0x53,0xf, 0x53,0xa, 0x25,0x9d,0x32,0x7a, +0x35,0x3c,0xbe,0x34,0x0, 0x0, 0x18,0x3, 0x2, 0x15,0xb, 0x7e,0x35,0x3e,0xbe,0x35, +0x3c,0x28,0x3, 0x2, 0x13,0xa6,0x7e,0x70,0x7, 0xac,0x7f,0x2e,0x34,0xd, 0x71,0x7e, +0x39,0xb0,0x4, 0x7a,0x39,0xb0,0xe5,0x39,0xa, 0x2b,0x1a,0x3c,0x9d,0x32,0x12,0x6d, +0xde,0xbe,0x34,0x0, 0x1, 0x8, 0x3, 0x2, 0x13,0xd0,0xe5,0x3a,0xa, 0x2b,0xe5,0x38, +0x1a,0x3b,0x9d,0x32,0x12,0x6d,0xde,0xbe,0x34,0x0, 0x1, 0x18,0x3, 0x2, 0x15,0xb, +0x75,0x3b,0x0, 0x2, 0x14,0x60,0xbe,0xe1,0x3b,0x78,0x3, 0x2, 0x14,0x5e,0xe5,0x3b, +0x1a,0x3b,0x3e,0x34,0x9, 0x73,0xd, 0x18,0xa, 0x27,0x1a,0x3c,0x9d,0x32,0x12,0x6d, +0xde,0xbe,0x34,0x0, 0x1, 0x8, 0x3, 0x2, 0x14,0x1e,0xe5,0x3b,0x1a,0x3b,0x3e,0x34, +0x9, 0x73,0xd, 0x19,0xa, 0x27,0xe5,0x38,0x1a,0x3b,0x9d,0x32,0x12,0x6d,0xde,0xbe, +0x34,0x0, 0x1, 0x8, 0x3, 0x2, 0x14,0x1e,0x75,0x3b,0xff,0x2, 0x14,0x6c,0xe5,0x3b, +0x1a,0x3b,0x3e,0x34,0x9, 0x73,0xd, 0x18,0xa, 0x27,0x1a,0x3c,0x9d,0x32,0x12,0x6d, +0xde,0xbe,0x34,0x0, 0x2, 0x8, 0x3, 0x2, 0x14,0x5e,0xe5,0x3b,0x1a,0x3b,0x3e,0x34, +0x9, 0x73,0xd, 0x19,0xa, 0x27,0xe5,0x38,0x1a,0x3b,0x9d,0x32,0x12,0x6d,0xde,0xbe, +0x34,0x0, 0x2, 0x8, 0x3, 0x2, 0x14,0x5e,0x75,0x3b,0x0, 0x2, 0x14,0x6c,0x5, 0x3b, +0x7e,0x73,0xd, 0xf7,0xbe,0x71,0x3b,0x8, 0x3, 0x2, 0x13,0xd6,0xe5,0x3b,0x60,0x3, +0x2, 0x14,0xc0,0x7e,0x35,0x3c,0x7d,0x23,0xe, 0x24,0x9d,0x32,0x7a,0x35,0x3c,0x7e, +0xf5,0x3c,0x7d,0x3f,0x1a,0x36,0x1a,0xe6,0x1a,0x1c,0x1a,0x2, 0x7f,0x17,0x12,0x48, +0x24,0x7f,0x1, 0x7e,0x1d,0x2c,0x9f,0x10,0x7a,0x1d,0x2c,0xe5,0x38,0x1a,0x1b,0x1a, +0x2, 0x7f,0x17,0x12,0x48,0x24,0x7f,0x1, 0x7e,0x1d,0x34,0x9f,0x10,0x7a,0x1d,0x34, +0x7e,0x1d,0x28,0x9f,0x17,0x7a,0x1d,0x28,0x7e,0x1d,0x30,0x9f,0x17,0x7a,0x1d,0x30, +0xe5,0x3b,0xb4,0xff,0x2, 0x80,0x3, 0x2, 0x15,0xb, 0x7e,0xf5,0x3c,0x7d,0x3f,0x1a, +0x36,0x1a,0xe6,0x1a,0x1c,0x1a,0x2, 0x7f,0x17,0x12,0x48,0x24,0x7f,0x1, 0x7e,0x1d, +0x2c,0x9f,0x10,0x7a,0x1d,0x2c,0xe5,0x38,0x1a,0x1b,0x1a,0x2, 0x7f,0x17,0x12,0x48, +0x24,0x7f,0x1, 0x7e,0x1d,0x34,0x9f,0x10,0x7a,0x1d,0x34,0x7e,0x1d,0x28,0x9f,0x17, +0x7a,0x1d,0x28,0x7e,0x1d,0x30,0x9f,0x17,0x7a,0x1d,0x30,0x5, 0x38,0xa, 0x2d,0xe5, +0x3a,0xa, 0x3b,0x2d,0x32,0x1a,0x27,0xe5,0x38,0x1a,0x3b,0xbd,0x32,0x18,0x3, 0x2, +0x13,0x37,0xb, 0xc0,0xa, 0x2d,0xe5,0x39,0xa, 0x3b,0x2d,0x32,0x1a,0x27,0x1a,0x3c, +0xbd,0x32,0x18,0x3, 0x2, 0x13,0x2a,0x74,0x6, 0x7e,0x1d,0x2c,0x2f,0x11,0x14,0x78, +0xfb,0x7a,0x1d,0x2c,0x7e,0xd, 0x28,0x7e,0x1d,0x2c,0x12,0x48,0x40,0x2e,0x34,0x0, +0x20,0x7e,0xd0,0x7, 0xac,0xdf,0x59,0x36,0xd, 0x6b,0x74,0x6, 0x7e,0x1d,0x34,0x2f, +0x11,0x14,0x78,0xfb,0x7a,0x1d,0x34,0x7e,0x7d,0x30,0x7e,0x1d,0x34,0x7f,0x7, 0x12, +0x48,0x40,0x2e,0x34,0x0, 0x20,0x59,0x36,0xd, 0x6d,0x7e,0xb3,0xf, 0x60,0x7f,0x17, +0x70,0x3, 0x2, 0x15,0x91,0x1e,0x34,0x1e,0x24,0x50,0x3, 0x4e,0x60,0x80,0x14,0x78, +0xf4,0x7a,0x1d,0x30,0xbe,0x18,0x0, 0x7f,0x38,0x3, 0x2, 0x15,0xa4,0x7e,0x18,0x0, +0x7f,0x7a,0x1d,0x30,0x7e,0x2d,0x30,0x7c,0xab,0x7e,0x70,0x7, 0xac,0x7f,0x19,0xa3, +0xd, 0x70,0x74,0x7, 0xac,0xbe,0x9, 0xa5,0xd, 0x71,0x7e,0x70,0x7, 0xac,0x7f,0x19, +0xa3,0xd, 0x71,0x74,0x7, 0xac,0xbf,0x9, 0x75,0xd, 0x71,0xbe,0x70,0xf, 0x38,0x3, +0x2, 0x15,0xdf,0x7e,0xa0,0xf, 0x7e,0x70,0x7, 0xac,0x7f,0x19,0xa3,0xd, 0x71,0xda, +0x3b,0x22,0xca,0x3b,0x7c,0x6b,0xbe,0x60,0x3, 0x40,0x6, 0x74,0x1, 0x7a,0xb3,0x11, +0x96,0xa5,0xbe,0x1, 0x58,0x7e,0xa3,0x10,0x2b,0xbc,0xa7,0x28,0xd, 0x7a,0x71,0xd, +0x74,0x30,0xac,0x7b,0x2e,0x37,0x16,0x9e,0x80,0x3c,0x7a,0x71,0xd, 0xbc,0xa7,0x78, +0x6, 0x7e,0x34,0x8, 0x9a,0x80,0x2f,0xa, 0x2a,0x7d,0x2, 0xb, 0x4, 0xa, 0x17,0xbd, +0x10,0x78,0x6, 0x7e,0x34,0x8, 0xca,0x80,0x1d,0x7d,0x2, 0xb, 0x5, 0xbd,0x10,0x78, +0x6, 0x7e,0x34,0x9, 0x2e,0x80,0xf, 0x2e,0x24,0x0, 0x3, 0xbd,0x12,0x68,0x3, 0x2, +0x19,0x6a,0x7e,0x34,0x9, 0x5e,0x7a,0x37,0x16,0x4f,0x2, 0x19,0x6a,0xa5,0xbe,0x0, +0x46,0x7e,0x64,0x0, 0xb, 0x7a,0x69,0x70,0x7c,0xb7,0x54,0x70,0xc4,0x54,0xf, 0x7c, +0x7b,0x4c,0x77,0x68,0x4, 0xa5,0xbf,0x1, 0x15,0x7e,0xb3,0x10,0xa5,0xb4,0x3, 0x7, +0x74,0x1, 0x7e,0x70,0x1, 0x80,0x36,0x74,0x27,0x7e,0x70,0x1, 0x80,0x13,0x7e,0xb3, +0x10,0xa5,0xb4,0x3, 0x7, 0x74,0x1, 0x7e,0x70,0x3, 0x80,0x21,0x74,0x27,0x7e,0x70, +0x3, 0x12,0x6d,0xad,0x2, 0x19,0x6a,0xa5,0xbe,0x2, 0x23,0xa5,0xbf,0x4, 0x7, 0x74, +0x1, 0x7e,0x70,0x4, 0x80,0x7, 0xa5,0xbf,0x5, 0x9, 0xe4,0x6c,0x77,0x12,0x0, 0x5e, +0x2, 0x19,0x6a,0xbe,0x70,0x1, 0x50,0x3, 0x2, 0x19,0x6a,0x2, 0x19,0x6a,0xa5,0xbe, +0x3, 0x15,0xbe,0x70,0xd, 0x28,0x9, 0x74,0xd, 0x7a,0xb3,0x10,0x2b,0x2, 0x19,0x6a, +0x7a,0x73,0x10,0x2b,0x2, 0x19,0x6a,0xa5,0xbe,0x4, 0x15,0xbe,0x70,0x18,0x28,0x9, +0x74,0x18,0x7a,0xb3,0x10,0x2c,0x2, 0x19,0x6a,0x7a,0x73,0x10,0x2c,0x2, 0x19,0x6a, +0xa5,0xbe,0x5, 0x7, 0x7a,0x73,0x10,0x2d,0x2, 0x19,0x6a,0xa5,0xbe,0x7, 0x1e,0x7a, +0x73,0x10,0x4b,0x7c,0xb7,0x54,0x3f,0xa, 0x2b,0x3e,0x24,0x3e,0x24,0x7e,0x37,0x10, +0x54,0x5e,0x70,0x3, 0x4d,0x32,0x7a,0x37,0x10,0x54,0x2, 0x19,0x6a,0xa5,0xbe,0x8, +0x14,0x7e,0xb3,0x10,0x3b,0x70,0x7, 0x7a,0x73,0xa, 0xac,0x2, 0x19,0x6a,0x7a,0x73, +0x11,0x16,0x2, 0x19,0x6a,0xa5,0xbe,0x9, 0x1c,0xbe,0x70,0xa, 0x50,0x3, 0x7e,0x70, +0xa, 0x7e,0xb3,0x10,0x3b,0x70,0x7, 0x7a,0x73,0xa, 0xad,0x2, 0x19,0x6a,0x7a,0x73, +0x11,0x49,0x2, 0x19,0x6a,0xa5,0xbe,0xa, 0x10,0xa5,0xbf,0x0, 0x3, 0xe4,0x80,0x2, +0x74,0x1, 0x7a,0xb3,0x10,0x3b,0x2, 0x19,0x6a,0xa5,0xbe,0xb, 0x14,0x7e,0xb3,0x10, +0x3b,0x70,0x7, 0x7a,0x73,0xa, 0xae,0x2, 0x19,0x6a,0x7a,0x73,0x11,0x94,0x2, 0x19, +0x6a,0xa5,0xbe,0xc, 0x14,0x7e,0xb3,0x10,0x3b,0x70,0x7, 0x7a,0x73,0xd, 0xfe,0x2, +0x19,0x6a,0x7a,0x73,0x11,0x9d,0x2, 0x19,0x6a,0xa5,0xbe,0x4c,0x7, 0x7a,0x73,0xf, +0x46,0x2, 0x19,0x6a,0xa5,0xbe,0xfb,0x29,0x7a,0x71,0x8, 0x7e,0x37,0x10,0x50,0x5e, +0x70,0xdf,0x7a,0x37,0x10,0x50,0xe5,0x8, 0x54,0x1, 0xa, 0x3b,0x3e,0x34,0x3e,0x34, +0x3e,0x34,0x3e,0x34,0x3e,0x34,0x4e,0x37,0x10,0x50,0x7a,0x37,0x10,0x50,0x2, 0x19, +0x6a,0xa5,0xbe,0x4e,0x7, 0x7a,0x73,0x10,0x4a,0x2, 0x19,0x6a,0xa5,0xbe,0x4f,0x6, +0x12,0x0, 0x6, 0x2, 0x19,0x6a,0xbe,0x60,0x50,0x40,0x12,0xbe,0x60,0x51,0x38,0xd, +0xa, 0x26,0x2e,0x27,0x10,0x2f,0x9e,0x24,0x0, 0x50,0x2, 0x19,0x54,0xbe,0x60,0x52, +0x40,0x12,0xbe,0x60,0x55,0x38,0xd, 0xa, 0x26,0x2e,0x27,0x10,0x31,0x9e,0x24,0x0, +0x52,0x2, 0x19,0x54,0xbe,0x60,0x56,0x40,0x12,0xbe,0x60,0x62,0x38,0xd, 0xa, 0x26, +0x2e,0x27,0x10,0x33,0x9e,0x24,0x0, 0x56,0x2, 0x19,0x54,0xbe,0x60,0x63,0x40,0x12, +0xbe,0x60,0x7a,0x38,0xd, 0xa, 0x26,0x2e,0x27,0x10,0x35,0x9e,0x24,0x0, 0x63,0x2, +0x19,0x54,0xbe,0x60,0x7b,0x50,0x3, 0x2, 0x18,0xe8,0xbe,0x60,0x9f,0x28,0x3, 0x2, +0x18,0xe8,0x7e,0xb3,0x10,0x3b,0x70,0x48,0xa, 0x26,0x9e,0x24,0x0, 0x7b,0xbe,0x24, +0x0, 0x18,0x58,0x20,0xa, 0x26,0x2e,0x27,0x10,0x35,0x9e,0x24,0x0, 0x7b,0x7e,0x29, +0xf0,0x7c,0xbf,0x30,0xe0,0xa, 0xa, 0x7f,0x2e,0x74,0x0, 0x18,0xe, 0x74,0x80,0x17, +0x1e,0xf0,0x80,0x13,0xa, 0x26,0x2e,0x27,0x10,0x33,0x9e,0x24,0x0, 0x93,0x7e,0x29, +0x60,0xa, 0x76,0x2e,0x74,0x0, 0x18,0xa, 0x2f,0x19,0x72,0xf, 0xdc,0x2, 0x19,0x6a, +0xa, 0x26,0x9e,0x24,0x0, 0x7b,0xbe,0x24,0x0, 0x18,0x58,0x20,0xa, 0x26,0x2e,0x27, +0x10,0x35,0x9e,0x24,0x0, 0x7b,0x7e,0x29,0xf0,0x7c,0xbf,0x30,0xe0,0xa, 0xa, 0x7f, +0x2e,0x74,0x0, 0x18,0xe, 0x74,0x80,0x17,0x1e,0xf0,0x80,0x13,0xa, 0x26,0x2e,0x27, +0x10,0x33,0x9e,0x24,0x0, 0x93,0x7e,0x29,0x60,0xa, 0x76,0x2e,0x74,0x0, 0x18,0xa, +0x2f,0x19,0x72,0xf, 0x63,0x2, 0x19,0x6a,0xbe,0x60,0xa0,0x40,0x11,0xbe,0x60,0xac, +0x38,0xc, 0xa, 0x26,0x2e,0x27,0x10,0x6c,0x9e,0x24,0x0, 0xa0,0x80,0x56,0xbe,0x60, +0xad,0x40,0x11,0xbe,0x60,0xb9,0x38,0xc, 0xa, 0x26,0x2e,0x27,0x10,0x6e,0x9e,0x24, +0x0, 0xad,0x80,0x40,0xbe,0x60,0xba,0x40,0x11,0xbe,0x60,0xd1,0x38,0xc, 0xa, 0x26, +0x2e,0x27,0x10,0x70,0x9e,0x24,0x0, 0xba,0x80,0x2a,0xbe,0x60,0xd2,0x40,0x11,0xbe, +0x60,0xd5,0x38,0xc, 0xa, 0x26,0x2e,0x27,0x10,0x72,0x9e,0x24,0x0, 0xd2,0x80,0x14, +0xbe,0x60,0xd6,0x40,0x14,0xbe,0x60,0xed,0x38,0xf, 0xa, 0x26,0x2e,0x27,0x10,0x74, +0x9e,0x24,0x0, 0xd6,0x7a,0x29,0x70,0x80,0x11,0xa5,0xbe,0xf8,0x6, 0x7a,0x73,0x11, +0xe8,0x80,0x7, 0xa5,0xbe,0xfe,0x3, 0x7a,0x71,0xc, 0xda,0x3b,0x22,0xca,0x3b,0xe4, +0x7a,0xb3,0x13,0xde,0x7e,0x34,0xe, 0xdf,0x7a,0x35,0x23,0x6c,0xee,0x7e,0xa0,0xff, +0x7e,0x70,0x7, 0xac,0x7e,0x19,0xa3,0xe, 0x11,0x74,0xff,0xa, 0x3e,0x19,0xb3,0x13, +0xca,0x7e,0x34,0xff,0xff,0x74,0x2, 0xac,0xbe,0x59,0x35,0x13,0xb6,0xe4,0xa, 0x3e, +0x19,0xb3,0x13,0xd4,0xb, 0xe0,0xbe,0xe0,0xa, 0x78,0xd2,0x7e,0xb3,0xf, 0x1b,0x60, +0x3, 0x2, 0x19,0xe5,0x7e,0xb3,0xf, 0x1c,0x70,0x3, 0x2, 0x1b,0xfc,0x6c,0xee,0x7e, +0x34,0xff,0xff,0x7e,0x50,0x2, 0xac,0x5e,0x2e,0x25,0x23,0x59,0x32,0x0, 0x14,0x7e, +0x50,0x2, 0xac,0x5e,0x2e,0x25,0x23,0x59,0x32,0x0, 0x28,0xb, 0xe0,0xbe,0xe0,0xa, +0x78,0xdd,0x2, 0x1b,0xfc,0x7e,0xb3,0xf, 0x1c,0x60,0x3, 0x2, 0x1a,0x38,0x6c,0xee, +0x2, 0x1a,0x2d,0x74,0x7, 0xac,0xbe,0x49,0x35,0xe, 0xd, 0x7e,0x50,0x2, 0xac,0x5e, +0x2e,0x25,0x23,0x59,0x32,0x0, 0x14,0x74,0x7, 0xac,0xbe,0x49,0x35,0xe, 0xf, 0x7e, +0x50,0x2, 0xac,0x5e,0x2e,0x25,0x23,0x59,0x32,0x0, 0x28,0x74,0x7, 0xac,0xbe,0x19, +0xe5,0xe, 0x11,0x74,0x1, 0xa, 0x3e,0x19,0xb3,0x13,0xd4,0xb, 0xe0,0x7e,0x73,0xf, +0x1b,0xbc,0x7e,0x38,0xbe,0x2, 0x1b,0xfc,0x6c,0xee,0x2, 0x1a,0x9e,0x6c,0xff,0x7e, +0x70,0x2, 0xac,0x7f,0x2e,0x35,0x23,0x49,0x23,0x0, 0x28,0x74,0x7, 0xac,0xbe,0x49, +0x35,0xe, 0xf, 0x9d,0x32,0x12,0x6d,0xde,0x7d,0x63,0x7e,0x70,0x2, 0xac,0x7f,0x2e, +0x35,0x23,0x49,0x23,0x0, 0x14,0x74,0x7, 0xac,0xbe,0x49,0x35,0xe, 0xd, 0x9d,0x32, +0x12,0x6d,0xde,0x2d,0x36,0x7a,0x35,0x21,0x74,0x2, 0xac,0xbe,0x49,0x45,0x13,0xb6, +0xbe,0x45,0x21,0x38,0x3, 0x2, 0x1a,0x95,0xa, 0x4e,0x19,0xf4,0x13,0xca,0x7e,0x35, +0x21,0x59,0x35,0x13,0xb6,0xb, 0xf0,0xbe,0xf0,0xa, 0x78,0xa3,0xb, 0xe0,0x7e,0x73, +0xf, 0x1b,0xbc,0x7e,0x38,0x97,0x6c,0xee,0x2, 0x1b,0x52,0x74,0x1, 0x7a,0xb3,0x13, +0xde,0x6c,0xff,0x2, 0x1a,0xf1,0xbc,0xfe,0x78,0x3, 0x2, 0x1a,0xef,0xa, 0x3f,0x9, +0x63,0x13,0xca,0xa, 0x2e,0x9, 0x72,0x13,0xca,0xbc,0x76,0x68,0x3, 0x2, 0x1a,0xef, +0x74,0x2, 0xac,0xbf,0x49,0x25,0x13,0xb6,0x74,0x2, 0xac,0xbe,0x49,0x35,0x13,0xb6, +0xbd,0x32,0x50,0x3, 0x2, 0x1a,0xef,0xe4,0x7a,0xb3,0x13,0xde,0x2, 0x1a,0xf9,0xb, +0xf0,0x7e,0x73,0xf, 0x1b,0xbc,0x7f,0x38,0xbd,0x7e,0xb3,0x13,0xde,0xb4,0x1, 0x2, +0x80,0x3, 0x2, 0x1b,0x50,0x74,0x1, 0xa, 0x3e,0x9, 0xa3,0x13,0xca,0xa, 0x4a,0x19, +0xb4,0x13,0xd4,0x7e,0x70,0x7, 0xac,0x7e,0x19,0xa3,0xe, 0x11,0x74,0x7, 0xac,0xbe, +0x49,0x35,0xe, 0xd, 0xa, 0x2e,0x9, 0x42,0x13,0xca,0x7e,0x50,0x2, 0xac,0x45,0x2e, +0x25,0x23,0x59,0x32,0x0, 0x14,0x74,0x7, 0xac,0xbe,0x49,0x35,0xe, 0xf, 0xa, 0x2e, +0x9, 0x42,0x13,0xca,0x7e,0x50,0x2, 0xac,0x45,0x2e,0x25,0x23,0x59,0x32,0x0, 0x28, +0xb, 0xe0,0x7e,0x73,0xf, 0x1b,0xbc,0x7e,0x28,0x3, 0x2, 0x1a,0xab,0x6c,0xee,0x2, +0x1b,0xc1,0x74,0x7, 0xac,0xbe,0x9, 0xb5,0xe, 0x11,0xb4,0xff,0x2, 0x80,0x3, 0x2, +0x1b,0xbf,0x6c,0xff,0xa, 0x3f,0x9, 0xb3,0x13,0xd4,0x60,0x3, 0x2, 0x1b,0xb8,0x74, +0x1, 0x19,0xb3,0x13,0xd4,0x74,0x7, 0xac,0xbe,0x49,0x35,0xe, 0xd, 0x7e,0x50,0x2, +0xac,0x5f,0x2e,0x25,0x23,0x59,0x32,0x0, 0x14,0x74,0x7, 0xac,0xbe,0x49,0x35,0xe, +0xf, 0x7e,0x50,0x2, 0xac,0x5f,0x2e,0x25,0x23,0x59,0x32,0x0, 0x28,0x74,0x7, 0xac, +0xbe,0x19,0xf5,0xe, 0x11,0x2, 0x1b,0xbf,0xb, 0xf0,0xbe,0xf0,0xa, 0x40,0xb5,0xb, +0xe0,0x7e,0x73,0xf, 0x1b,0xbc,0x7e,0x38,0x99,0x6c,0xee,0xa, 0x3e,0x9, 0xb3,0x13, +0xd4,0xbe,0xb0,0x1, 0x78,0x3, 0x2, 0x1b,0xf5,0x7e,0x34,0xff,0xff,0x7e,0x50,0x2, +0xac,0x5e,0x2e,0x25,0x23,0x59,0x32,0x0, 0x14,0x7e,0x50,0x2, 0xac,0x5e,0x2e,0x25, +0x23,0x59,0x32,0x0, 0x28,0xb, 0xe0,0xbe,0xe0,0xa, 0x78,0xcf,0x7e,0xf3,0xf, 0x1b, +0x6c,0xee,0xa, 0x3e,0x9, 0xb3,0x13,0xd4,0xb4,0x1, 0x2, 0x80,0x3, 0x2, 0x1c,0x4e, +0xa, 0x3e,0x2e,0x35,0x23,0x9, 0xb3,0x0, 0xa, 0xb4,0x1, 0x2, 0x80,0x3, 0x2, 0x1c, +0x27,0x74,0x3, 0x19,0xb3,0x0, 0xa, 0xa, 0x3e,0x2e,0x35,0x23,0x9, 0xa3,0x0, 0xa, +0xbe,0xa0,0x3, 0x68,0x3, 0x2, 0x1c,0x3f,0xe4,0x7a,0x39,0xb0,0x2, 0x1c,0x7c,0x4c, +0xaa,0x68,0x3, 0x2, 0x1c,0x7c,0x74,0x2, 0x7a,0x39,0xb0,0x2, 0x1c,0x7c,0xa, 0x3e, +0x2e,0x35,0x23,0x9, 0xb3,0x0, 0xa, 0xbe,0xb0,0x2, 0x78,0x3, 0x2, 0x1c,0x64,0x60, +0x3, 0x2, 0x1c,0x77,0x74,0x1, 0x7a,0x39,0xb0,0x7c,0xaf,0xb, 0xf0,0x74,0x7, 0xa4, +0x19,0xe5,0xe, 0x11,0x2, 0x1c,0x7c,0x74,0x3, 0x7a,0x39,0xb0,0xa, 0x2e,0x2e,0x25, +0x23,0x7e,0x29,0x70,0x19,0x72,0x0, 0xa, 0xb, 0xe0,0xbe,0xe0,0xa, 0x50,0x3, 0x2, +0x1c,0x2, 0xda,0x3b,0x22,0xca,0x3b,0x75,0x24,0x0, 0x75,0x26,0x0, 0x75,0x27,0x0, +0x75,0x28,0x0, 0x7e,0x34,0xe, 0xdf,0x7a,0x35,0x2a,0x7e,0xa3,0xf, 0x24,0x4c,0xaa, +0x78,0xf, 0x7e,0xb3,0xf, 0x20,0x70,0x9, 0x7e,0xb3,0xf, 0x21,0x70,0x3, 0x2, 0x1f, +0x54,0x4c,0xaa,0x78,0x11,0x7e,0xb3,0xf, 0x20,0x60,0x16,0x80,0x9, 0x7e,0x73,0x0, +0xff,0xbe,0x70,0xf, 0x38,0x6, 0x7e,0xb3,0x0, 0x8b,0x60,0xf1,0xe4,0x7a,0xb3,0x0, +0x8b,0x20,0x0, 0x6, 0x7e,0x74,0x15,0xca,0x80,0x4, 0x7e,0x74,0x16,0xc, 0x7d,0x37, +0x7e,0x24,0x0, 0x42,0x74,0xff,0x12,0x6d,0xee,0x74,0xaa,0x7a,0x79,0xb0,0x19,0xb7, +0x0, 0x1, 0x7e,0x73,0xf, 0x1d,0x19,0x77,0x0, 0x3, 0x75,0x25,0x0, 0x6c,0xdd,0x2, +0x1e,0xe1,0x7e,0x70,0x7, 0xac,0x7d,0x9, 0xa3,0xe, 0x9d,0x7a,0xa1,0x29,0x7c,0xba, +0x54,0xf, 0xa, 0x2b,0x2e,0x25,0x2a,0x7e,0x29,0xc0,0x7c,0xba,0x54,0xf0,0xbe,0xb0, +0x0, 0x28,0x13,0xb4,0xb0,0x2, 0x80,0x3, 0x2, 0x1e,0xdf,0x53,0x29,0xf, 0xbe,0xc0, +0x1, 0x68,0x3, 0x2, 0x1e,0xdf,0xbe,0xc0,0x3, 0x78,0x3, 0x2, 0x1e,0xdf,0x7e,0xa1, +0x25,0x74,0x6, 0xa4,0xf5,0x21,0x9, 0xb3,0xe, 0x9e,0xf5,0x27,0x74,0x7, 0xac,0xbd, +0x9, 0xb5,0xe, 0x9f,0xc4,0x54,0xf0,0xf5,0x28,0x7e,0x73,0xf, 0x46,0xbe,0x71,0x29, +0x28,0x68,0x7e,0xb3,0xf, 0x22,0x70,0x2a,0x7e,0x8, 0x0, 0x27,0xe5,0x29,0xa, 0x3b, +0x2e,0x34,0x0, 0x77,0x74,0x1, 0x7e,0x50,0xf, 0x12,0x5f,0x84,0x7e,0x8, 0x0, 0x28, +0xe5,0x29,0xa, 0x3b,0x2e,0x34,0x0, 0x81,0x74,0x10,0x7e,0x50,0x20,0x12,0x5f,0x84, +0x80,0x14,0xe5,0x29,0xa, 0x3b,0x9, 0xb3,0x0, 0x77,0xf5,0x27,0xe5,0x29,0xa, 0x3b, +0x9, 0xb3,0x0, 0x81,0xf5,0x28,0xe5,0x29,0xa, 0x3b,0x7d,0x23,0x2e,0x25,0x2a,0x7e, +0x29,0xb0,0xb4,0x1, 0x15,0xe4,0x19,0xb3,0x0, 0x77,0x6c,0xaa,0xe5,0x29,0xa, 0x3b, +0x19,0xa3,0x0, 0x81,0x75,0x27,0x0, 0x75,0x28,0x0, 0x7e,0xb3,0xf, 0x5f,0xb4,0xff, +0x15,0x74,0x7, 0xac,0xbd,0x9, 0xb5,0xe, 0x9d,0xbe,0xb0,0xff,0x68,0x5, 0x75,0x27, +0x1, 0x80,0x3, 0x75,0x27,0x0, 0x7e,0x90,0x7, 0xac,0x9d,0x49,0x54,0xe, 0x99,0x7a, +0x55,0x2c,0x49,0x54,0xe, 0x9b,0x7a,0x55,0x2e,0xbe,0xc0,0x1, 0x78,0x2e,0x75,0x30, +0x0, 0x7e,0x71,0x30,0x74,0x7, 0xac,0x7b,0x9, 0xb3,0x0, 0x90,0x54,0xf, 0xbe,0xb1, +0x29,0x78,0x10,0x49,0x23,0x0, 0x8c,0x7a,0x25,0x2c,0x49,0x53,0x0, 0x8e,0x7a,0x55, +0x2e,0x80,0x9, 0x5, 0x30,0xe5,0x30,0xbe,0xb0,0xa, 0x40,0xd5,0x7e,0x25,0x2c,0x7a, +0x25,0x22,0xa, 0x54,0x5e,0x54,0x0, 0xf, 0x7c,0xab,0xe5,0x21,0xa, 0x3b,0x7d,0x13, +0x2d,0x17,0x19,0xa1,0x0, 0x5, 0x7d,0x53,0x2d,0x57,0x19,0x55,0x0, 0x6, 0x7e,0x25, +0x2e,0x7a,0x25,0x22,0xa, 0x14,0x5e,0x14,0x0, 0xf, 0x7d,0x53,0x2d,0x57,0x19,0x35, +0x0, 0x7, 0x7d,0x53,0x2d,0x57,0x19,0x55,0x0, 0x8, 0xe5,0x27,0x7d,0x23,0x2d,0x27, +0x19,0xb2,0x0, 0x9, 0xe5,0x28,0x7d,0x23,0x2d,0x27,0x19,0xb2,0x0, 0xa, 0x9, 0xa4, +0xe, 0x9d,0x7c,0xba,0xc4,0x54,0xf0,0x7c,0x3b,0x7d,0x23,0x2d,0x27,0x2e,0x24,0x0, +0x7, 0x7e,0x29,0xb0,0x2c,0xb3,0x7a,0x29,0xb0,0xbe,0xa0,0xff,0x68,0x21,0xbe,0xc0, +0x1, 0x68,0x2, 0x5, 0x24,0x5, 0x26,0x7c,0xbc,0x3, 0x3, 0x54,0xc0,0x7d,0x13,0x2d, +0x17,0x2e,0x14,0x0, 0x5, 0x7e,0x19,0x50,0x2c,0x5b,0x7a,0x19,0x50,0x80,0xe, 0x2d, +0x37,0x2e,0x34,0x0, 0x5, 0x7e,0x39,0xb0,0x24,0xc0,0x7a,0x39,0xb0,0x5, 0x25,0xb, +0xd0,0x7e,0x73,0xf, 0x46,0xbc,0x7d,0x28,0x3, 0x2, 0x1d,0x12,0xe5,0x24,0x19,0xb7, +0x0, 0x4, 0xe5,0x26,0xbe,0xb0,0x0, 0x28,0x2d,0x74,0x42,0x19,0xb7,0x0, 0x2, 0xe4, +0x19,0xb7,0x0, 0x41,0x6c,0xdd,0xa, 0x3d,0x2d,0x37,0x7e,0x39,0x60,0x7d,0x27,0x2e, +0x24,0x0, 0x41,0x7e,0x29,0x70,0x6c,0x76,0x7a,0x29,0x70,0xb, 0xd0,0xbe,0xd0,0x41, +0x78,0xe4,0xb2,0x0, 0x80,0xe, 0x7e,0xb3,0xf, 0x21,0xb4,0x1, 0xc, 0x7e,0xb3,0x10, +0xd1,0xb4,0x24,0x5, 0x74,0x1, 0x12,0x6e,0xa0,0x7e,0xb3,0xf, 0x20,0x60,0x6, 0x7e, +0x35,0x2a,0x12,0x68,0x19,0xe4,0x7a,0xb3,0xf, 0x24,0x7a,0xb3,0xf, 0x20,0x7a,0xb3, +0xf, 0x21,0x80,0x4, 0xe4,0x12,0x6e,0xa0,0x7e,0x24,0xe, 0x99,0x7e,0x34,0x0, 0x8c, +0x7e,0x14,0x0, 0x46,0x12,0x6d,0x4a,0xe5,0x26,0x70,0xd, 0x7e,0x34,0x0, 0x8c,0x7e, +0x24,0x0, 0x46,0x74,0xff,0x12,0x6d,0xee,0xda,0x3b,0x22,0xca,0x79,0x75,0x26,0x17, +0x7e,0xb3,0xd, 0xf7,0xf5,0x21,0x70,0x3, 0x2, 0x22,0x1d,0x7e,0x34,0x13,0xb6,0x7e, +0x24,0x1, 0x2b,0xe4,0x12,0x6d,0xee,0x7e,0x34,0x14,0xe1,0x7e,0x24,0x0, 0x2, 0xe4, +0x12,0x6d,0xee,0x6c,0xaa,0x2, 0x20,0x32,0x7e,0x70,0x2, 0xac,0x7a,0x9, 0x33,0xd, +0x18,0x9, 0x23,0xd, 0x19,0x1a,0x3, 0x1b,0x5, 0x80,0x69,0xbe,0x10,0x0, 0x48,0x62, +0xbe,0x10,0xd, 0x58,0x5d,0x7c,0x1, 0xe, 0x0, 0xe, 0x0, 0xe, 0x0, 0x7a,0x1, 0x25, +0x7c,0xb1,0x54,0x7, 0x7e,0x74,0x0, 0x1, 0x60,0x5, 0x3e,0x74,0x14,0x78,0xfb,0x7c, +0xef,0xa, 0x40,0x2e,0x44,0x14,0xe1,0x7e,0x49,0xb0,0x4c,0xbe,0x7a,0x49,0xb0,0x1a, +0x32,0x1b,0x35,0x7c,0xf7,0x80,0x1f,0xbe,0xf0,0x0, 0x48,0x18,0xe5,0x26,0xbc,0xbf, +0x8, 0x12,0x74,0x1, 0x1a,0x21,0x7e,0x34,0x0, 0x17,0xad,0x32,0x1a,0x4f,0x2d,0x43, +0x19,0xb4,0x13,0xb6,0xb, 0xf0,0x1a,0x22,0x2e,0x24,0x0, 0x3, 0x1a,0x3f,0xbd,0x32, +0x48,0xd5,0xb, 0x10,0x1a,0x23,0x2e,0x24,0x0, 0x3, 0x1a,0x31,0xbd,0x32,0x48,0x8b, +0xb, 0xa0,0xe5,0x21,0xbc,0xba,0x28,0x3, 0x2, 0x1f,0xa8,0x6c,0x11,0x7c,0x1, 0xe, +0x0, 0xe, 0x0, 0xe, 0x0, 0x7a,0x1, 0x25,0x7c,0xb1,0x54,0x7, 0x7e,0x44,0x0, 0x1, +0x60,0x5, 0x3e,0x44,0x14,0x78,0xfb,0x7c,0xe9,0xa, 0x30,0x9, 0xb3,0x14,0xe1,0x5c, +0xbe,0x78,0x3, 0x2, 0x20,0xf9,0x6d,0x33,0x7a,0x35,0x22,0x75,0x24,0x0, 0x1a,0x21, +0x7e,0x34,0x0, 0x30,0xad,0x32,0x7d,0x43,0x2e,0x47,0xf, 0xda,0x6c,0x0, 0x80,0x26, +0x1a,0xe1,0x7e,0xf4,0x0, 0x17,0xad,0xfe,0xa, 0x30,0x2d,0x3f,0x9, 0xb3,0x13,0xb6, +0x70,0x12,0x7e,0x70,0x2, 0xac,0x70,0x2d,0x34,0xb, 0x38,0x30,0x2e,0x35,0x22,0x7a, +0x35,0x22,0x5, 0x24,0xb, 0x0, 0xe5,0x26,0xbc,0xb0,0x38,0xd4,0xe5,0x24,0x60,0x49, +0xe5,0x24,0x1a,0x2b,0x7e,0x35,0x22,0x12,0x47,0xf2,0x7a,0x35,0x22,0x6c,0xff,0x80, +0x32,0x1a,0x21,0x7e,0x34,0x0, 0x17,0xad,0x32,0x1a,0xff,0x7d,0xe3,0x2d,0xef,0x9, +0xbe,0x13,0xb6,0xb4,0x1, 0x1b,0x1a,0x21,0x7e,0x34,0x0, 0x18,0xad,0x32,0x7d,0x23, +0x2d,0x2f,0x3e,0x24,0x2e,0x27,0xf, 0xda,0xb, 0x28,0x30,0x9e,0x35,0x22,0x1b,0x28, +0x30,0xb, 0xf0,0xe5,0x26,0xbc,0xbf,0x18,0xc8,0xb, 0x10,0xa5,0xb9,0xd, 0x2, 0x80, +0x3, 0x2, 0x20,0x3d,0x6c,0xaa,0x2, 0x22,0x14,0x7e,0x10,0x2, 0xac,0x1a,0x9, 0x30, +0xd, 0x18,0x9, 0x20,0xd, 0x19,0x7c,0xba,0xc4,0x23,0x54,0x1f,0xf5,0x25,0x7c,0xba, +0x54,0x7, 0x7e,0x44,0x0, 0x1, 0x60,0x5, 0x3e,0x44,0x14,0x78,0xfb,0x7c,0xe9,0xa5, +0xbb,0x0, 0x2c,0x1a,0xe3,0x7e,0xf4,0x0, 0x18,0xad,0xfe,0x1a,0x32,0x2d,0x3f,0x3e, +0x34,0x2e,0x37,0xf, 0xda,0xb, 0x38,0x20,0x49,0x33,0x0, 0x30,0xbd,0x32,0x18,0x3, +0x2, 0x21,0xd9,0x1a,0x33,0xb, 0x34,0x7c,0xb7,0x19,0xb0,0xd, 0x18,0x80,0x7a,0xa5, +0xbb,0xc, 0x2c,0x1a,0x23,0x7e,0x34,0x0, 0x18,0xad,0x32,0x1a,0x22,0x2d,0x23,0x3e, +0x24,0x2e,0x27,0xf, 0xda,0xb, 0x28,0x30,0x49,0x2, 0xff,0xd0,0xbd,0x3, 0x8, 0x59, +0x1a,0x33,0x1b,0x34,0x7e,0x10,0x2, 0xac,0x1a,0x19,0x70,0xd, 0x18,0x80,0x4a,0x1a, +0xe3,0x7e,0xf4,0x0, 0x18,0xad,0xfe,0x1a,0x32,0x2d,0x3f,0x3e,0x34,0x2e,0x37,0xf, +0xda,0x49,0x43,0x0, 0x30,0x49,0x3, 0xff,0xd0,0xbd,0x4, 0x8, 0x16,0xb, 0x38,0x20, +0xbd,0x2, 0x8, 0x25,0x1a,0x23,0x1b,0x24,0x7e,0x10,0x2, 0xac,0x1a,0x19,0x50,0xd, +0x18,0x80,0x16,0xb, 0x38,0x0, 0xbd,0x40,0x8, 0xf, 0x1a,0x33,0xb, 0x34,0x7c,0x37, +0x7e,0x10,0x2, 0xac,0x1a,0x19,0x30,0xd, 0x18,0x7e,0x70,0x2, 0xac,0x7a,0x9, 0x33, +0xd, 0x18,0x1a,0x23,0x7e,0x34,0x0, 0x18,0xad,0x32,0x1a,0x2, 0x2d,0x3, 0x3e,0x4, +0x2e,0x7, 0xf, 0xda,0xb, 0x8, 0x0, 0xbe,0x4, 0x0, 0x3c,0x58,0x15,0x7c,0x7e,0x6e, +0x70,0xff,0xe5,0x25,0xa, 0x4b,0x2e,0x44,0xd, 0x68,0x7e,0x49,0xb0,0x5c,0xb7,0x7a, +0x49,0xb0,0xb, 0xa0,0xe5,0x21,0xbc,0xba,0x28,0x3, 0x2, 0x21,0x9, 0xda,0x79,0x22, +0xca,0xd8,0xca,0x79,0x6c,0xaa,0x7e,0x34,0x11,0x9e,0x7e,0x44,0x11,0x4a,0xe4,0x7a, +0xb3,0x16,0xbc,0x7e,0xb3,0xe, 0xa, 0x54,0xfe,0x7a,0xb3,0xe, 0xa, 0x7e,0xb3,0xd, +0x17,0xbe,0xb0,0x0, 0x28,0x4f,0x7e,0x53,0xd, 0xf8,0xbe,0x50,0x0, 0x28,0x46,0x6c, +0xff,0x80,0x3c,0x7e,0x30,0x2, 0xac,0x3f,0x9, 0xd1,0xd, 0x40,0x9, 0xe1,0xd, 0x41, +0x7e,0x30,0x2, 0xac,0x3e,0x2d,0x13,0xb, 0x18,0x0, 0x6d,0x11,0x9e,0x17,0xf, 0x4c, +0xbd,0x1, 0x58,0x19,0x7e,0x30,0x2, 0xac,0x3d,0x2d,0x13,0x49,0x1, 0x0, 0x30,0x6d, +0x11,0x9e,0x17,0xf, 0x4a,0xbd,0x1, 0x58,0x4, 0x5, 0x6b,0x80,0xb, 0xb, 0xf0,0xbc, +0x5f,0x38,0xc0,0x80,0x3, 0x75,0x6b,0x0, 0xe5,0x6b,0xbe,0xb0,0x3, 0x40,0x17,0x7e, +0xb3,0xe, 0xa, 0x44,0x1, 0x7a,0xb3,0xe, 0xa, 0x75,0x6b,0x0, 0x7e,0xb3,0x16,0xbc, +0x44,0x1, 0x7a,0xb3,0x16,0xbc,0x7e,0xb3,0xe, 0xa, 0x54,0xfd,0x7a,0xb3,0xe, 0xa, +0x7e,0xb3,0xd, 0x16,0x70,0x59,0x7e,0x53,0xd, 0xf7,0xbe,0x50,0x0, 0x28,0x50,0x6c, +0xff,0x80,0x48,0x7e,0x30,0x2, 0xac,0x3f,0x9, 0xd1,0xd, 0x18,0x9, 0xe1,0xd, 0x19, +0x7e,0x30,0x2, 0xac,0x3d,0x2d,0x14,0x49,0x11,0x0, 0x30,0x6d,0x0, 0x9e,0x7, 0xd, +0xff,0xbd,0x10,0x48,0xe, 0x7e,0x30,0x2, 0xac,0x3e,0x2d,0x14,0xb, 0x18,0x10,0xbd, +0x10,0x58,0x16,0x7e,0xb3,0xe, 0xa, 0x44,0x2, 0x7a,0xb3,0xe, 0xa, 0x7e,0xb3,0x16, +0xbc,0x44,0x2, 0x7a,0xb3,0x16,0xbc,0x80,0x6, 0xb, 0xf0,0xbc,0x5f,0x38,0xb4,0x7e, +0xb3,0xe, 0x9, 0xb4,0x1, 0x2, 0x80,0x3, 0x2, 0x23,0xc3,0x7e,0xb3,0xd, 0x16,0x70, +0x6d,0x6c,0xff,0x80,0x61,0x7e,0x50,0x2, 0xac,0x5f,0x7d,0x12,0x2d,0x14,0xb, 0x18, +0x10,0xbe,0x17,0xd, 0xff,0x8, 0x4d,0x2d,0x23,0xb, 0x28,0x20,0xbe,0x27,0xd, 0xff, +0x58,0x42,0xbe,0xf1,0x6c,0x68,0x6, 0x7a,0xf1,0x6c,0x75,0x6d,0x0, 0xbe,0xf1,0x6c, +0x78,0x2, 0x5, 0x6d,0xe5,0x6d,0xbe,0xb0,0x10,0x28,0x33,0x75,0x6d,0x10,0xe5,0x51, +0x70,0x16,0x7e,0xb3,0xe, 0xa, 0x44,0x4, 0x7a,0xb3,0xe, 0xa, 0x7e,0xb3,0x16,0xbc, +0x44,0x4, 0x7a,0xb3,0x16,0xbc,0x80,0x16,0x7e,0xb3,0xe, 0xa, 0x54,0xfb,0x7a,0xb3, +0xe, 0xa, 0x80,0xa, 0xb, 0xf0,0x7e,0xb3,0x10,0x2c,0xbc,0xbf,0x38,0x97,0x6c,0xaa, +0x6c,0xff,0x80,0x17,0x7e,0x70,0x2, 0xac,0x7f,0x2d,0x34,0xb, 0x38,0x30,0xbe,0x37, +0xd, 0xff,0x8, 0x5, 0x7e,0xa0,0x1, 0x80,0xa, 0xb, 0xf0,0x7e,0xb3,0x10,0x2c,0xbc, +0xbf,0x38,0xe1,0x4c,0xaa,0x78,0x1a,0x7e,0xb3,0xe, 0xa, 0x54,0xfb,0x7a,0xb3,0xe, +0xa, 0x75,0x6c,0xff,0x75,0x6d,0x0, 0x7e,0xb3,0x16,0xbc,0x54,0xfb,0x7a,0xb3,0x16, +0xbc,0x7e,0xb3,0xe, 0xa, 0x54,0xf7,0x7a,0xb3,0xe, 0xa, 0x7e,0x73,0xd, 0xfa,0xa, +0x27,0x7e,0x73,0xd, 0xf9,0xa, 0x37,0x2d,0x32,0xbe,0x37,0xe, 0x3, 0x28,0x14,0x7e, +0xb3,0xe, 0xa, 0x44,0x8, 0x7a,0xb3,0xe, 0xa, 0x7e,0xb3,0x16,0xbc,0x44,0x8, 0x7a, +0xb3,0x16,0xbc,0x7e,0xb3,0xe, 0xa, 0x44,0x10,0x7a,0xb3,0xe, 0xa, 0x6c,0xff,0x80, +0x49,0x7e,0x50,0x2, 0xac,0x5f,0x9, 0xd2,0xd, 0x18,0x9, 0xe2,0xd, 0x19,0x7e,0x70, +0x18,0xac,0x7d,0xa, 0x1e,0x2d,0x31,0x3e,0x34,0x2e,0x37,0xf, 0xda,0xb, 0x38,0x30, +0x49,0x22,0x10,0x3, 0x9d,0x32,0x7a,0x35,0x21,0x12,0x6d,0xde,0xbe,0x37,0xe, 0x1, +0x28,0x16,0x7e,0xb3,0xe, 0xa, 0x54,0xef,0x7a,0xb3,0xe, 0xa, 0x7e,0xb3,0x16,0xbc, +0x44,0x10,0x7a,0xb3,0x16,0xbc,0x80,0xa, 0xb, 0xf0,0x7e,0x73,0xd, 0xf7,0xbc,0x7f, +0x38,0xaf,0x7e,0x34,0x10,0x3, 0x7e,0x24,0x0, 0x28,0xe4,0x12,0x6d,0xee,0x6c,0xff, +0x80,0x25,0x7e,0x50,0x2, 0xac,0x5f,0x9, 0xd2,0xd, 0x18,0x9, 0xe2,0xd, 0x19,0x7e, +0x70,0x18,0xac,0x7d,0xa, 0x1e,0x2d,0x31,0x3e,0x34,0x2e,0x37,0xf, 0xda,0xb, 0x38, +0x30,0x59,0x32,0x10,0x3, 0xb, 0xf0,0x7e,0x73,0xd, 0xf7,0xbc,0x7f,0x38,0xd3,0xda, +0x79,0xda,0xd8,0x22,0xca,0x3b,0x6d,0x33,0x7a,0x35,0x21,0x75,0x25,0x0, 0x75,0x26, +0x0, 0x7e,0x23,0xd, 0xf7,0x7a,0x21,0x23,0x7e,0x37,0xf, 0xda,0x7a,0x37,0x13,0xb6, +0x7e,0x30,0x2, 0xac,0x23,0x7e,0x24,0xd, 0x18,0x7e,0x34,0x13,0xb8,0x12,0x6d,0x4a, +0xe5,0x23,0xbe,0xb0,0xa, 0x38,0x3, 0x2, 0x26,0xb9,0x75,0x24,0x0, 0x6c,0xff,0x2, +0x25,0xcd,0x7e,0x34,0x3, 0xff,0x7a,0x35,0x27,0x75,0x26,0xff,0x6c,0xee,0x80,0x7e, +0x7e,0x70,0x2, 0xac,0x7e,0x9, 0xb3,0x13,0xb8,0xbe,0xb0,0xff,0x68,0x6e,0x7c,0xbe, +0xc4,0x23,0x54,0x1f,0x7c,0xab,0x7a,0xa1,0x2b,0x7c,0xbe,0x54,0x7, 0x7e,0x24,0x0, +0x1, 0x60,0x5, 0x3e,0x24,0x14,0x78,0xfb,0x7c,0xb5,0xf5,0x2c,0xa, 0x2a,0x9, 0xb2, +0xd, 0x68,0x55,0x2c,0x68,0x46,0x9, 0x73,0x13,0xb9,0xa, 0x27,0x74,0x2, 0xac,0xbf, +0x9, 0x75,0x15,0xa3,0xa, 0x37,0x9d,0x32,0x12,0x6d,0xde,0x7d,0x63,0x74,0x2, 0xac, +0xbe,0x9, 0x75,0x13,0xb8,0xa, 0x27,0x74,0x2, 0xac,0xbf,0x9, 0x75,0x15,0xa2,0xa, +0x37,0x9d,0x32,0x12,0x6d,0xde,0x2d,0x36,0x7a,0x35,0x29,0x7e,0x35,0x27,0xbe,0x35, +0x29,0x28,0x9, 0x7e,0x35,0x29,0x7a,0x35,0x27,0x7a,0xe1,0x26,0xb, 0xe0,0xe5,0x23, +0xbc,0xbe,0x28,0x3, 0x2, 0x25,0x0, 0xe5,0x26,0xbe,0xb0,0xff,0x68,0x3d,0x7e,0x71, +0x26,0x74,0x2, 0xac,0x7b,0x9, 0x33,0x13,0xb8,0x7e,0x50,0x18,0xac,0x53,0x9, 0xa3, +0x13,0xb9,0xa, 0xa, 0x2d,0x20,0x3e,0x24,0x2e,0x27,0x13,0xb6,0xb, 0x28,0x20,0xbe, +0x24,0x0, 0x3c,0x48,0x16,0xe5,0x24,0x1a,0x2b,0x3e,0x24,0x19,0x32,0x13,0xe0,0x19, +0xa2,0x13,0xe1,0x74,0xff,0x19,0xb3,0x13,0xb8,0x5, 0x24,0xb, 0xf0,0xe5,0x11,0xbc, +0xbf,0x28,0x3, 0x2, 0x24,0xf2,0x7e,0xf1,0x24,0x2, 0x26,0x9f,0x6d,0x33,0x7a,0x35, +0x21,0x7e,0xa0,0xff,0x6c,0xee,0x2, 0x26,0x71,0x7c,0xbe,0xc4,0x23,0x54,0x1f,0x7c, +0x7b,0x7a,0x71,0x2b,0x7c,0xbe,0x54,0x7, 0x7e,0x44,0x0, 0x1, 0x60,0x5, 0x3e,0x44, +0x14,0x78,0xfb,0x7c,0xb9,0xf5,0x2c,0xa, 0x37,0x9, 0xb3,0xd, 0x68,0x55,0x2c,0x68, +0x5e,0x7e,0x90,0x2, 0xac,0x9e,0x9, 0x44,0x13,0xb8,0xbe,0x40,0xff,0x68,0x50,0x7e, +0x50,0x18,0xac,0x45,0x9, 0xb4,0x13,0xb9,0xa, 0x3b,0x2d,0x23,0x3e,0x24,0x2e,0x27, +0x13,0xb6,0xb, 0x28,0x30,0xbe,0x34,0x0, 0x0, 0x58,0x5, 0x6d,0x33,0x1b,0x28,0x30, +0x7e,0x50,0x2, 0xac,0x5e,0x9, 0x62,0x13,0xb8,0x7e,0x30,0x18,0xac,0x36,0x9, 0x72, +0x13,0xb9,0xa, 0x7, 0x2d,0x10,0x3e,0x14,0x2e,0x17,0x13,0xb6,0xb, 0x18,0x40,0xbe, +0x45,0x21,0x8, 0xb, 0x7a,0x61,0x25,0x7a,0x71,0x26,0x7a,0x45,0x21,0x7c,0xae,0xb, +0xe0,0xe5,0x23,0xbc,0xbe,0x28,0x3, 0x2, 0x25,0xe9,0xbe,0xa0,0xff,0x68,0x1e,0x7e, +0x71,0x25,0x7e,0x90,0x2, 0xac,0x9f,0x19,0x74,0x13,0xe0,0xe5,0x26,0x19,0xb4,0x13, +0xe1,0x7e,0x70,0xff,0x7e,0x50,0x2, 0xac,0x5a,0x19,0x72,0x13,0xb8,0xb, 0xf0,0xbe, +0xf0,0xa, 0x50,0x3, 0x2, 0x25,0xdc,0x7e,0x24,0x13,0xe0,0x7e,0x34,0x13,0xb8,0x7e, +0x14,0x0, 0x28,0x12,0x6d,0x4a,0x75,0x23,0xa, 0x7e,0x34,0x15,0xa2,0x7e,0x24,0x0, +0x14,0x74,0xff,0x12,0x6d,0xee,0xe5,0x23,0xbe,0xb0,0x0, 0x28,0x55,0x7e,0x31,0x23, +0x74,0x2, 0xac,0x3b,0x7e,0x24,0x13,0xb8,0x7e,0x34,0xd, 0x18,0x12,0x6d,0x4a,0x7e, +0x31,0x23,0x74,0x2, 0xac,0x3b,0x7e,0x24,0x13,0xb8,0x7e,0x34,0x15,0xa2,0x12,0x6d, +0x4a,0x6c,0xff,0x80,0x27,0x7c,0xbf,0x54,0x7, 0x7e,0x34,0x0, 0x1, 0x60,0x5, 0x3e, +0x34,0x14,0x78,0xfb,0x7c,0x67,0x7c,0xbf,0xc4,0x23,0x54,0x1f,0xa, 0x2b,0x2e,0x24, +0xd, 0x68,0x7e,0x29,0x70,0x4c,0x76,0x7a,0x29,0x70,0xb, 0xf0,0xe5,0x23,0xbc,0xbf, +0x38,0xd3,0x85,0x23,0x11,0xe5,0x23,0x7a,0xb3,0xd, 0xf7,0xda,0x3b,0x22,0x7c,0x7b, +0xbe,0x70,0x10,0x40,0x12,0xbe,0x70,0x4b,0x38,0xd, 0xa, 0x37,0x2e,0x37,0x16,0x4f, +0x9e,0x34,0x0, 0x10,0x2, 0x29,0x69,0xa5,0xbf,0x0, 0x3, 0xe5,0xb, 0x22,0xa5,0xbf, +0x1, 0x3, 0xe5,0xd, 0x22,0xa5,0xbf,0x2, 0x5, 0x7e,0xb3,0xf, 0x28,0x22,0xbe,0x70, +0x3, 0x40,0x12,0xbe,0x70,0x5, 0x38,0xd, 0xa, 0x37,0x2e,0x34,0x10,0x2b,0x9e,0x34, +0x0, 0x3, 0x2, 0x29,0x69,0xa5,0xbf,0x6, 0x3, 0x74,0x1, 0x22,0xa5,0xbf,0x7, 0x5, +0x7e,0xb3,0x10,0x4b,0x22,0xa5,0xbf,0x8, 0x10,0x7e,0xb3,0x10,0x3b,0x70,0x5, 0x7e, +0xb3,0xa, 0xac,0x22,0x7e,0xb3,0x11,0x16,0x22,0xa5,0xbf,0x9, 0x10,0x7e,0xb3,0x10, +0x3b,0x70,0x5, 0x7e,0xb3,0xa, 0xad,0x22,0x7e,0xb3,0x11,0x49,0x22,0xa5,0xbf,0xa, +0x5, 0x7e,0xb3,0x10,0x3b,0x22,0xa5,0xbf,0xb, 0x10,0x7e,0xb3,0x10,0x3b,0x70,0x5, +0x7e,0xb3,0xa, 0xae,0x22,0x7e,0xb3,0x11,0x94,0x22,0xa5,0xbf,0xc, 0x10,0x7e,0xb3, +0x10,0x3b,0x70,0x5, 0x7e,0xb3,0xd, 0xfe,0x22,0x7e,0xb3,0x11,0x9d,0x22,0xa5,0xbf, +0x4c,0x5, 0x7e,0xb3,0xf, 0x46,0x22,0xa5,0xbf,0xfb,0x3, 0xe5,0x8, 0x22,0xa5,0xbf, +0x4e,0x5, 0x7e,0xb3,0x10,0x4a,0x22,0xbe,0x70,0x50,0x40,0x12,0xbe,0x70,0x51,0x38, +0xd, 0xa, 0x37,0x2e,0x37,0x10,0x2f,0x9e,0x34,0x0, 0x50,0x2, 0x29,0x69,0xbe,0x70, +0x52,0x40,0x12,0xbe,0x70,0x55,0x38,0xd, 0xa, 0x37,0x2e,0x37,0x10,0x31,0x9e,0x34, +0x0, 0x52,0x2, 0x29,0x69,0xbe,0x70,0x56,0x40,0x12,0xbe,0x70,0x62,0x38,0xd, 0xa, +0x37,0x2e,0x37,0x10,0x33,0x9e,0x34,0x0, 0x56,0x2, 0x29,0x69,0xbe,0x70,0x63,0x40, +0x12,0xbe,0x70,0x7a,0x38,0xd, 0xa, 0x37,0x2e,0x37,0x10,0x35,0x9e,0x34,0x0, 0x63, +0x2, 0x29,0x69,0xbe,0x70,0x7b,0x50,0x3, 0x2, 0x28,0xfd,0xbe,0x70,0x9f,0x28,0x3, +0x2, 0x28,0xfd,0x7e,0xb3,0x10,0x3b,0x70,0x4a,0xa, 0x27,0x9e,0x24,0x0, 0x7b,0xbe, +0x24,0x0, 0x18,0x58,0x22,0xa, 0x37,0x2e,0x37,0x10,0x35,0x9e,0x34,0x0, 0x7b,0x7e, +0x39,0xa0,0x7c,0xba,0x30,0xe0,0xc, 0xa, 0x5a,0x2e,0x54,0x0, 0x18,0xe, 0x54,0x7c, +0xab,0x80,0x19,0x1e,0xa0,0x80,0x15,0xa, 0x37,0x2e,0x37,0x10,0x33,0x9e,0x34,0x0, +0x93,0x7e,0x39,0x70,0xa, 0x57,0x2e,0x54,0x0, 0x18,0x7c,0xab,0xa, 0x3a,0x9, 0xb3, +0xf, 0xdc,0x22,0xa, 0x27,0x9e,0x24,0x0, 0x7b,0xbe,0x24,0x0, 0x18,0x58,0x22,0xa, +0x37,0x2e,0x37,0x10,0x35,0x9e,0x34,0x0, 0x7b,0x7e,0x39,0xa0,0x7c,0xba,0x30,0xe0, +0xc, 0xa, 0x5a,0x2e,0x54,0x0, 0x18,0xe, 0x54,0x7c,0xab,0x80,0x19,0x1e,0xa0,0x80, +0x15,0xa, 0x37,0x2e,0x37,0x10,0x33,0x9e,0x34,0x0, 0x93,0x7e,0x39,0x70,0xa, 0x57, +0x2e,0x54,0x0, 0x18,0x7c,0xab,0xa, 0x3a,0x9, 0xb3,0xf, 0x63,0x22,0xbe,0x70,0xa0, +0x40,0x11,0xbe,0x70,0xac,0x38,0xc, 0xa, 0x37,0x2e,0x37,0x10,0x6c,0x9e,0x34,0x0, +0xa0,0x80,0x56,0xbe,0x70,0xad,0x40,0x11,0xbe,0x70,0xb9,0x38,0xc, 0xa, 0x37,0x2e, +0x37,0x10,0x6e,0x9e,0x34,0x0, 0xad,0x80,0x40,0xbe,0x70,0xba,0x40,0x11,0xbe,0x70, +0xd1,0x38,0xc, 0xa, 0x37,0x2e,0x37,0x10,0x70,0x9e,0x34,0x0, 0xba,0x80,0x2a,0xbe, +0x70,0xd2,0x40,0x11,0xbe,0x70,0xd5,0x38,0xc, 0xa, 0x37,0x2e,0x37,0x10,0x72,0x9e, +0x34,0x0, 0xd2,0x80,0x14,0xbe,0x70,0xd6,0x40,0x13,0xbe,0x70,0xed,0x38,0xe, 0xa, +0x37,0x2e,0x37,0x10,0x74,0x9e,0x34,0x0, 0xd6,0x7e,0x39,0xb0,0x22,0xa5,0xbf,0xf8, +0x5, 0x7e,0xb3,0x11,0xe8,0x22,0xa5,0xbf,0xfe,0x3, 0xe5,0xc, 0x22,0x74,0xff,0x22, +0x0, 0x0, 0x3, 0xe0,0x3, 0xff,0x3, 0xff,0x0, 0x20,0x0, 0x41,0x0, 0x42,0x0, 0x22, +0x3, 0xe0,0x3, 0xbe,0x3, 0x9c,0x3, 0xdd,0x0, 0x40,0x0, 0xa3,0x0, 0xa5,0x0, 0x44, +0x3, 0xc0,0x3, 0x5c,0x3, 0x5a,0x3, 0xbb,0x0, 0x60,0x0, 0xe5,0x0, 0xe8,0x0, 0x66, +0x3, 0xa0,0x3, 0x1a,0x2, 0xf7,0x3, 0x99,0x0, 0x80,0x1, 0x47,0x1, 0x4b,0x0, 0x88, +0x3, 0x80,0x2, 0xb8,0x2, 0xb4,0x3, 0x77,0x0, 0xa0,0x1, 0x89,0x1, 0xad,0x0, 0xaa, +0x3, 0x60,0x2, 0x56,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xaa, +0x3, 0x60,0x2, 0x76,0x2, 0x93,0x3, 0x77,0x0, 0xa0,0x1, 0x69,0x1, 0x6c,0x0, 0x88, +0x3, 0x80,0x2, 0xd8,0x2, 0xd5,0x3, 0x99,0x0, 0x80,0x1, 0x27,0x1, 0x9, 0x0, 0x66, +0x3, 0xa0,0x3, 0x3a,0x3, 0x38,0x3, 0xbb,0x0, 0x60,0x0, 0xc5,0x0, 0xc6,0x0, 0x44, +0x3, 0xc0,0x3, 0x7c,0x3, 0x7b,0x3, 0xdd,0x0, 0x40,0x0, 0x83,0x0, 0x64,0x0, 0x22, +0x3, 0xe0,0x3, 0xde,0x3, 0xde,0x3, 0xff,0x0, 0x20,0x0, 0x21,0x0, 0x21,0x0, 0x0, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0xca,0x3b,0x7e,0x34,0x13,0xff,0x7e,0x24,0x0, 0x18,0xe4,0x12,0x6d,0xee,0x7e,0xe0, +0x1, 0x7e,0x73,0x10,0x4d,0x7a,0x73,0x13,0xb6,0xe4,0x7a,0xb3,0x10,0x4d,0x6c,0xdd, +0x6c,0xcc,0x80,0x11,0xa, 0x3c,0x2e,0x37,0x10,0x6e,0x7e,0x39,0x70,0xbc,0x7d,0x40, +0x2, 0x7c,0xd7,0xb, 0xc0,0x7e,0x73,0x10,0x2b,0xbc,0x7c,0x38,0xe7,0xbe,0xd0,0x1f, +0x50,0xc, 0xa, 0x2d,0x7e,0x34,0x0, 0x1f,0x9d,0x32,0x7c,0xd7,0x80,0x2, 0x6c,0xdd, +0x7a,0xd1,0x21,0x7e,0x34,0x10,0x2b,0x12,0x31,0xbc,0x7e,0x34,0x10,0x2b,0x12,0x6a, +0x72,0x2, 0x2d,0x7d,0x6d,0x33,0x7a,0x37,0x10,0x1, 0x7e,0x34,0xd, 0xac,0x7a,0x37, +0xa, 0xaf,0x12,0x6e,0xdd,0x12,0x69,0x31,0x12,0x6e,0x86,0x60,0xfb,0xa9,0xb7,0xea, +0x7e,0x37,0xf, 0xda,0x7e,0x27,0xf, 0xd8,0x7e,0x14,0x18,0x0, 0x12,0x67,0x82,0x6c, +0xcc,0x80,0x78,0x6c,0xff,0x80,0x6a,0x4c,0xcc,0x78,0x11,0xe4,0xa, 0x3f,0x19,0xb3, +0x13,0xe7,0x6d,0x33,0x74,0x2, 0xac,0xbf,0x59,0x35,0x13,0xb7,0xbe,0xf0,0x17,0x78, +0x13,0x7e,0x34,0x0, 0x1, 0x7c,0xbc,0x60,0x5, 0x3e,0x34,0x14,0x78,0xfb,0x5e,0x34, +0x4, 0x44,0x68,0x3b,0x7e,0x50,0x30,0xac,0x5c,0x7e,0x70,0x2, 0xac,0x7f,0x2d,0x32, +0x2e,0x37,0xf, 0xda,0xb, 0x38,0x10,0xe, 0x14,0xe, 0x14,0xe, 0x14,0xe, 0x14,0xe, +0x14,0x7e,0x50,0x2, 0xac,0x5f,0x2e,0x24,0x13,0xb7,0xb, 0x28,0x30,0x2d,0x31,0x1b, +0x28,0x30,0xa, 0x3f,0x2e,0x34,0x13,0xe7,0x7e,0x39,0xb0,0x4, 0x7a,0x39,0xb0,0xb, +0xf0,0x7e,0x73,0x10,0x2c,0xbc,0x7f,0x38,0x8e,0xb, 0xc0,0x7e,0x73,0x10,0x2b,0xbc, +0x7c,0x38,0x80,0x75,0x22,0x0, 0x6c,0xcc,0x2, 0x2d,0x5b,0xa, 0x3c,0x9, 0xa3,0x13, +0xe7,0x4c,0xaa,0x78,0xf, 0x7e,0x44,0x22,0xc4,0x7e,0x70,0x2, 0xac,0x7c,0x59,0x43, +0x13,0xb7,0x80,0x25,0x7e,0x50,0x2, 0xac,0x5c,0x49,0x12,0x13,0xb7,0xa, 0xa, 0x8d, +0x10,0x59,0x12,0x13,0xb7,0x2e,0x24,0x13,0xb7,0xb, 0x28,0x30,0x3e,0x34,0x3e,0x34, +0x3e,0x34,0x3e,0x34,0x3e,0x34,0x1b,0x28,0x30,0x7e,0x50,0x2, 0xac,0x5c,0x49,0x32, +0x13,0xb7,0xbe,0x34,0x1f,0xa4,0x50,0x22,0xa, 0x1c,0x2e,0x14,0x13,0xff,0x7e,0x19, +0xb0,0x4, 0x7a,0x19,0xb0,0xa, 0x1c,0x2e,0x17,0x10,0x74,0x7e,0x19,0xb0,0xbc,0xbd, +0x50,0x2f,0x4, 0x7a,0x19,0xb0,0x80,0x31,0x80,0x27,0xbe,0x34,0x25,0xe4,0x28,0x27, +0xa, 0x3c,0x2e,0x34,0x13,0xff,0x7e,0x39,0xb0,0x4, 0x7a,0x39,0xb0,0xa, 0x3c,0x2e, +0x37,0x10,0x74,0x7e,0x39,0xb0,0xbe,0xb0,0x0, 0x28,0x6, 0x14,0x7a,0x39,0xb0,0x80, +0x8, 0x5, 0x22,0x6c,0xee,0x80,0x2, 0x5, 0x22,0xb, 0xc0,0x7e,0x73,0x10,0x2c,0xbc, +0x7c,0x28,0x3, 0x2, 0x2c,0xbb,0x7e,0x34,0x10,0x2b,0x12,0x31,0xbc,0x7e,0x34,0x10, +0x2b,0x12,0x6a,0x72,0x7e,0x73,0x10,0x2c,0xbe,0x71,0x22,0x68,0xf, 0x7e,0xa1,0x21, +0x7c,0xba,0x14,0xf5,0x21,0x4c,0xaa,0x68,0x3, 0x2, 0x2c,0x4, 0x7e,0x73,0x13,0xb6, +0x7a,0x73,0x10,0x4d,0x6c,0xff,0x80,0x10,0xa, 0x3f,0x9, 0x73,0x13,0xff,0xbc,0x7d, +0x78,0x4, 0x6c,0xee,0x80,0xa, 0xb, 0xf0,0x7e,0x73,0x10,0x2c,0xbc,0x7f,0x38,0xe8, +0x7c,0xbe,0xda,0x3b,0x22,0xca,0x3b,0x7e,0xb3,0x10,0x3c,0xf5,0x21,0xe4,0x7a,0xb3, +0x10,0x3c,0x7e,0xb3,0x10,0x3a,0xf5,0x22,0x74,0x3, 0x7a,0xb3,0x10,0x3a,0x7e,0x37, +0x10,0x48,0x7e,0x24,0x0, 0x25,0xe4,0x12,0x6d,0xee,0x7e,0xe0,0x7, 0x6d,0x33,0x7a, +0x37,0x10,0x1, 0x7e,0x34,0xd, 0xac,0x7a,0x37,0xa, 0xaf,0x12,0x6e,0xdd,0x6c,0xdd, +0x7e,0x14,0x0, 0x1, 0x7c,0xbe,0x60,0x5, 0x3e,0x14,0x14,0x78,0xfb,0xa, 0x2d,0x2e, +0x27,0x10,0x48,0x7e,0x29,0x70,0x4c,0x73,0x7a,0x29,0x70,0xb, 0xd0,0xbe,0xd0,0x25, +0x78,0xde,0x7e,0x34,0x10,0x2b,0x12,0x5b,0x10,0x7e,0x34,0x10,0x2b,0x12,0x64,0xb9, +0x12,0x6e,0x8f,0x60,0xfb,0x7e,0x37,0xf, 0xd6,0x7e,0x25,0x70,0x12,0x54,0xde,0x6c, +0xdd,0xbe,0xd0,0x18,0x50,0x1e,0xa, 0x3d,0x2e,0x37,0x10,0x35,0x7e,0x39,0xf0,0x7c, +0xbf,0x30,0xe0,0xc, 0xa, 0x3f,0x2e,0x34,0x0, 0x18,0xe, 0x34,0x7c,0xf7,0x80,0x16, +0x1e,0xf0,0x80,0x12,0xa, 0x3d,0x2e,0x37,0x10,0x33,0x9, 0x73,0xff,0xe8,0xa, 0x37, +0x2e,0x34,0x0, 0x18,0x7c,0xf7,0x7e,0x70,0x2, 0xac,0x7d,0x2e,0x37,0xf, 0xd6,0xb, +0x38,0x30,0xbe,0x34,0x25,0x80,0x18,0x21,0x7e,0x34,0x0, 0x1, 0x7c,0xbe,0x60,0x5, +0x3e,0x34,0x14,0x78,0xfb,0x7d,0x13,0x6e,0x14,0xff,0xff,0xa, 0x2f,0x2e,0x27,0x10, +0x48,0x7e,0x29,0x70,0x5c,0x73,0x7a,0x29,0x70,0xb, 0xd0,0xbe,0xd0,0x25,0x78,0x91, +0x1b,0xe0,0xbe,0xe0,0x0, 0x48,0x3, 0x2, 0x2d,0xdd,0x7e,0xe0,0xa, 0x74,0x2, 0x7a, +0xb3,0x10,0x3a,0x2, 0x2f,0xac,0x6d,0x33,0x7a,0x37,0x10,0x1, 0x7e,0x34,0xd, 0xac, +0x7a,0x37,0xa, 0xaf,0x12,0x6e,0xdd,0x7e,0x73,0x10,0x2b,0xa, 0x37,0x7e,0x53,0x10, +0x2c,0xa, 0x65,0x2d,0x63,0x7c,0xcd,0x6c,0xdd,0x2, 0x2f,0x74,0x7e,0xa3,0x10,0x2c, +0xbc,0xad,0x28,0x27,0xa, 0x3d,0x2e,0x37,0x10,0x35,0x7e,0x39,0xf0,0x7c,0xbf,0x30, +0xe0,0xc, 0xa, 0x3f,0x2e,0x34,0x0, 0x18,0xe, 0x34,0x7c,0xf7,0x80,0x2, 0x1e,0xf0, +0x7e,0x70,0x2, 0xac,0x7d,0x2e,0x37,0xf, 0xd6,0x80,0x27,0xa, 0x2a,0xa, 0x3d,0x9d, +0x32,0x2e,0x37,0x10,0x33,0x7e,0x39,0xb0,0xa, 0x3b,0x2e,0x34,0x0, 0x18,0x7c,0xf7, +0x7e,0x70,0x2, 0xac,0x7d,0x2e,0x37,0xf, 0xd6,0x2e,0x34,0x0, 0x30,0x74,0x2, 0xa4, +0x9d,0x35,0xb, 0x38,0x30,0x7a,0x35,0x23,0xbe,0x34,0x2e,0xe0,0x8, 0x18,0x4c,0xee, +0x68,0x30,0xa, 0x2f,0x2e,0x27,0x10,0x48,0x7e,0x29,0xb0,0xbe,0xb0,0xfe,0x50,0x22, +0x4, 0x7a,0x29,0xb0,0x80,0x1c,0xbe,0x34,0x17,0x70,0x58,0x14,0xa, 0x3f,0x2e,0x37, +0x10,0x48,0x7e,0x39,0xb0,0xbe,0xb0,0x0, 0x28,0x8, 0x14,0x7a,0x39,0xb0,0x80,0x2, +0x1b,0xc0,0xb, 0xd0,0x7e,0x73,0x10,0x2b,0xa, 0x37,0x7e,0x53,0x10,0x2c,0xa, 0x25, +0x2d,0x23,0xa, 0x3d,0xbd,0x32,0x58,0x3, 0x2, 0x2e,0xdc,0x4c,0xcc,0x68,0x28,0x7e, +0x34,0x10,0x2b,0x12,0x5b,0x10,0x7e,0x34,0x10,0x2b,0x12,0x64,0xb9,0x12,0x6e,0x8f, +0x60,0xfb,0x7e,0x37,0xf, 0xd6,0x7e,0x25,0x70,0x12,0x54,0xde,0x7c,0xae,0x1b,0xe0, +0x4c,0xaa,0x68,0x3, 0x2, 0x2e,0xb6,0xe5,0x21,0x7a,0xb3,0x10,0x3c,0xe5,0x22,0x7a, +0xb3,0x10,0x3a,0xda,0x3b,0x22,0xca,0xf8,0x6c,0xff,0x7e,0x24,0x15,0x56,0x7e,0x34, +0x13,0xfe,0x7e,0x14,0x0, 0x48,0x12,0x6d,0x4a,0x7e,0x24,0xe, 0xd, 0x7e,0x34,0x13, +0xb6,0x7e,0x14,0x0, 0x46,0x12,0x6d,0x4a,0x7e,0x73,0xf, 0x1b,0x7a,0x73,0x13,0xfc, +0x7e,0x73,0xf, 0x1c,0x7a,0x73,0x13,0xfd,0x7e,0xa3,0x13,0xfc,0xbe,0xa0,0x1, 0x38, +0x3, 0x7e,0xf0,0x1, 0x7e,0xb3,0xf, 0x1c,0x70,0x3, 0xe4,0x80,0x10,0x7e,0xb3,0x15, +0xa1,0x4, 0x7a,0xb3,0x15,0xa1,0xbe,0xb0,0xc8,0x28,0x6, 0x74,0x14,0x7a,0xb3,0x15, +0xa1,0x7e,0xb3,0x15,0xa1,0xbe,0xb0,0x6, 0x50,0x3, 0x7e,0xf0,0x1, 0xbe,0xa0,0x1, +0x28,0x3f,0x7e,0x34,0x0, 0x21,0x7e,0x24,0x0, 0x23,0x7e,0x14,0x13,0xfe,0x12,0x65, +0xb6,0x7e,0x34,0x0, 0x25,0x7e,0x24,0x0, 0x27,0x7e,0x14,0x13,0xb6,0x12,0x65,0xb6, +0x7e,0x35,0x25,0x9e,0x35,0x21,0x12,0x6d,0xde,0xbe,0x34,0x0, 0x80,0x18,0xf, 0x7e, +0x35,0x27,0x9e,0x35,0x23,0x12,0x6d,0xde,0xbe,0x34,0x0, 0x80,0x8, 0x3, 0x7e,0xf0, +0x1, 0xbe,0xf0,0x0, 0x28,0x3, 0x2, 0x31,0x24,0x7e,0xf3,0x15,0x9f,0xbe,0xf3,0x15, +0x29,0x50,0x55,0x7e,0x73,0x15,0x29,0xbe,0x73,0x13,0xfc,0x28,0x12,0x7e,0x24,0x15, +0x56,0x7e,0x34,0x14,0xe3,0x7e,0x14,0x0, 0x48,0x12,0x6d,0x4a,0x2, 0x31,0x24,0x7e, +0x73,0x15,0x9e,0xbe,0x70,0x2, 0x58,0x22,0x7e,0x24,0x15,0x56,0x7e,0x34,0x14,0xe3, +0x7e,0x14,0x0, 0x48,0x12,0x6d,0x4a,0x74,0x1, 0x7a,0xb3,0x15,0xa0,0xe4,0x7a,0xb3, +0x15,0x53,0x7e,0xb3,0x15,0x9e,0x4, 0x2, 0x31,0x60,0x74,0x1, 0x7a,0xb3,0x15,0xa0, +0xe4,0x7a,0xb3,0x15,0x53,0x2, 0x31,0x60,0xbe,0xf3,0x15,0x29,0x78,0x2d,0x7e,0xa3, +0x15,0x29,0xbe,0xa3,0x13,0xfc,0x50,0xd, 0x74,0x1, 0x7a,0xb3,0x15,0xa0,0xe4,0x7a, +0xb3,0x15,0x53,0x80,0x6b,0xbe,0xa3,0x13,0xfc,0x28,0x4, 0x74,0x1, 0x80,0x1, 0xe4, +0x7a,0xb3,0x15,0xa0,0xe4,0x7a,0xb3,0x15,0x53,0x80,0x55,0x7e,0x73,0x15,0x29,0xbe, +0x73,0x13,0xfc,0x50,0x1a,0x7e,0x24,0x15,0x56,0x7e,0x34,0x14,0xe3,0x7e,0x14,0x0, +0x48,0x12,0x6d,0x4a,0xe4,0x7a,0xb3,0x15,0xa0,0x7a,0xb3,0x15,0x53,0x80,0x31,0x7e, +0x73,0x15,0x53,0xbe,0x70,0x2, 0x58,0x1c,0x7e,0x24,0x15,0x56,0x7e,0x34,0x14,0xe3, +0x7e,0x14,0x0, 0x48,0x12,0x6d,0x4a,0x74,0x1, 0x7a,0xb3,0x15,0xa0,0x7e,0xb3,0x15, +0x53,0x4, 0x80,0x7, 0x74,0x1, 0x7a,0xb3,0x15,0xa0,0xe4,0x7a,0xb3,0x15,0x53,0xe4, +0x7a,0xb3,0x15,0x9e,0x7e,0xb3,0x15,0xa0,0x14,0x68,0x9, 0x4, 0x78,0x15,0x7e,0x24, +0x13,0xb6,0x80,0x4, 0x7e,0x24,0x14,0xe3,0x7e,0x34,0x15,0x56,0x7e,0x14,0x0, 0x48, +0x12,0x6d,0x4a,0x7e,0x73,0x15,0x29,0x7a,0x73,0x15,0x9f,0x7e,0x24,0x13,0xb6,0x7e, +0x34,0x14,0xe3,0x7e,0x14,0x0, 0x48,0x12,0x6d,0x4a,0x7e,0x24,0x15,0x56,0x7e,0x34, +0xe, 0xd, 0x7e,0x14,0x0, 0x46,0x12,0x6d,0x4a,0x7e,0x73,0x15,0x9c,0x7a,0x73,0xf, +0x1b,0x7e,0x73,0x15,0x9d,0x7a,0x73,0xf, 0x1c,0xda,0xf8,0x22,0xca,0x79,0x7d,0x73, +0x12,0x60,0xdc,0x49,0x27,0x0, 0x25,0x7e,0x34,0x1c,0xa, 0x1b,0x38,0x20,0x49,0x27, +0x0, 0x27,0x7e,0x34,0x1c,0xc, 0x1b,0x38,0x20,0x49,0x27,0x0, 0x29,0x7e,0x34,0x1c, +0xe, 0x1b,0x38,0x20,0x49,0x27,0x0, 0x2b,0x7e,0x34,0x1c,0x10,0x1b,0x38,0x20,0x49, +0x27,0x0, 0x2d,0x7e,0x34,0x1c,0x12,0x1b,0x38,0x20,0x49,0x27,0x0, 0x2f,0x7e,0x34, +0x1c,0x14,0x1b,0x38,0x20,0x49,0x27,0x0, 0x6, 0x9, 0x72,0x0, 0x1, 0xa, 0x37,0x7c, +0x67,0x6c,0x77,0x7e,0x29,0x30,0xa, 0x13,0x4d,0x13,0x7e,0x34,0x1c,0x18,0x1b,0x38, +0x10,0x9, 0x72,0x0, 0x3, 0xa, 0x37,0x7c,0x67,0x6c,0x77,0x9, 0x52,0x0, 0x2, 0xa, +0x25,0x4d,0x23,0x7e,0x34,0x1c,0x1a,0x1b,0x38,0x20,0x9, 0x77,0x0, 0x1, 0xa, 0x27, +0x7e,0x34,0x1c,0x16,0x1b,0x38,0x20,0x6d,0x22,0x7e,0x34,0x1c,0x1c,0x1b,0x38,0x20, +0x6c,0xaa,0xa, 0x2a,0x49,0x37,0x0, 0xa, 0x2d,0x32,0x7e,0x39,0xb0,0xa, 0x2b,0x7e, +0x34,0x1c,0x1e,0x1b,0x38,0x20,0xb, 0xa0,0xbe,0xa0,0x18,0x78,0xe5,0x6d,0x22,0x7e, +0x34,0x1c,0x1c,0x1b,0x38,0x20,0x6c,0xaa,0x7e,0x50,0x2, 0xac,0x5a,0x49,0x37,0x0, +0x4b,0x2d,0x32,0xb, 0x38,0x20,0x7e,0x34,0x1c,0x20,0x1b,0x38,0x20,0xb, 0xa0,0xbe, +0xa0,0x19,0x78,0xe4,0x6d,0x22,0x7e,0x34,0x1c,0x1c,0x1b,0x38,0x20,0x6c,0xaa,0x7e, +0x70,0x2, 0xac,0x7a,0x2e,0x34,0x29,0x80,0x7e,0x24,0x0, 0xff,0xb, 0x1a,0x30,0x7e, +0x24,0x1c,0x22,0x1b,0x28,0x30,0xb, 0xa0,0xbe,0xa0,0xff,0x78,0xe2,0x7e,0x14,0x2b, +0x7e,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0x30,0x1b,0x28,0x30,0x7e,0x24,0x1, 0x0, 0x7e, +0x34,0x1c,0x1c,0x1b,0x38,0x20,0x6c,0xaa,0x7e,0x70,0x2, 0xac,0x7a,0x2e,0x34,0x2b, +0x80,0x7e,0x24,0x0, 0xff,0xb, 0x1a,0x20,0x7e,0x34,0x1c,0x22,0x1b,0x38,0x20,0xb, +0xa0,0xbe,0xa0,0x10,0x40,0xe2,0x7d,0x37,0x12,0x5d,0xcb,0x49,0x27,0x0, 0x39,0x7e, +0x34,0x1c,0x28,0x1b,0x38,0x20,0x7e,0x24,0x0, 0x1, 0x7e,0x34,0x1c,0x2a,0x1b,0x38, +0x20,0x49,0x27,0x0, 0x31,0x7e,0x34,0x1c,0x2c,0x1b,0x38,0x20,0x49,0x27,0x0, 0x33, +0x7e,0x34,0x1c,0x2e,0x1b,0x38,0x20,0x49,0x37,0x0, 0x45,0x49,0x27,0x0, 0xa, 0x9, +0xb7,0x0, 0x1, 0x12,0x64,0x78,0x49,0x37,0x0, 0x47,0x12,0x7, 0xc9,0x49,0x37,0x0, +0x49,0x49,0x27,0x0, 0xa, 0x9, 0xb7,0x0, 0x1, 0x12,0x5c,0xa5,0x49,0x27,0x0, 0x35, +0x7e,0x34,0x1c,0x52,0x1b,0x38,0x20,0x49,0x27,0x0, 0x3d,0x7e,0x34,0x1c,0x54,0x1b, +0x38,0x20,0x49,0x27,0x0, 0x37,0x7e,0x34,0x1c,0x56,0x1b,0x38,0x20,0xda,0x79,0x22, +0xca,0x3b,0x6d,0x33,0x7a,0x35,0x23,0x7e,0xb3,0xf, 0x1b,0x60,0x6, 0x7e,0xb3,0xf, +0x1c,0x60,0x11,0xe5,0x22,0x60,0x5, 0x75,0x19,0x1, 0x80,0x3, 0x75,0x19,0x0, 0xe5, +0x19,0x2, 0x35,0x1f,0x7e,0xb3,0xd, 0x18,0xf5,0x21,0x7e,0x73,0xd, 0x19,0x7a,0x71, +0x22,0x6d,0x66,0x75,0x25,0x0, 0x75,0x26,0x0, 0xa, 0x37,0x7d,0x73,0x80,0x3a,0x7e, +0x51,0x21,0x74,0x18,0xac,0x5b,0x2d,0x27,0x3e,0x24,0x2e,0x27,0xf, 0xda,0xb, 0x28, +0x10,0xbe,0x14,0x0, 0x3c,0x8, 0x28,0x5, 0x25,0xe5,0x21,0xbe,0xb0,0x0, 0x28,0x8, +0x49,0x12,0xff,0xd0,0x2d,0x61,0x5, 0x26,0xe5,0x21,0xbe,0xb0,0xc, 0x50,0x8, 0x49, +0x22,0x0, 0x30,0x2d,0x62,0x5, 0x26,0x1b,0x74,0xbe,0x74,0x0, 0x0, 0x58,0xc0,0x7d, +0x73,0x80,0x38,0x7e,0x71,0x21,0x74,0x18,0xac,0x7b,0x2d,0x37,0x3e,0x34,0x2e,0x37, +0xf, 0xda,0xb, 0x38,0x20,0xbe,0x24,0x0, 0x3c,0x8, 0x2c,0x5, 0x25,0xe5,0x21,0xbe, +0xb0,0x0, 0x28,0x8, 0x49,0x23,0xff,0xd0,0x2d,0x62,0x5, 0x26,0xe5,0x21,0xbe,0xb0, +0xc, 0x50,0x8, 0x49,0x33,0x0, 0x30,0x2d,0x63,0x5, 0x26,0x7d,0x37,0xb, 0x34,0x7d, +0x73,0xbe,0x34,0x0, 0x18,0x48,0xbc,0xe5,0x25,0xbe,0xb0,0x3, 0x50,0x2, 0x80,0x12, +0x7d,0x36,0x12,0x6d,0xde,0xe5,0x26,0xa, 0x2b,0x12,0x47,0xf2,0xbe,0x34,0x0, 0xf, +0x8, 0x8, 0x75,0x19,0x1, 0x74,0x1, 0x2, 0x35,0x1f,0x6d,0x33,0xe5,0x21,0xbe,0xb0, +0x0, 0x28,0x19,0x7e,0x51,0x21,0x74,0x18,0xac,0x5b,0xe5,0x22,0xa, 0x1b,0x2d,0x21, +0x3e,0x24,0x2e,0x27,0xf, 0xda,0x49,0x22,0xff,0xd0,0x2d,0x32,0xe5,0x21,0xbe,0xb0, +0xc, 0x50,0x19,0x7e,0x51,0x21,0x74,0x18,0xac,0x5b,0xe5,0x22,0xa, 0x1b,0x2d,0x21, +0x3e,0x24,0x2e,0x27,0xf, 0xda,0x49,0x22,0x0, 0x30,0x2d,0x32,0x7e,0xa0,0x8, 0x80, +0x2d,0x7e,0x50,0x2, 0xac,0x5a,0x7d,0x12,0x2e,0x14,0x6d,0xce,0x7a,0x31,0x82,0x7a, +0x21,0x83,0xe4,0x93,0x1a,0x1b,0xbd,0x13,0x8, 0x14,0x2e,0x24,0x6d,0xcf,0x7a,0x51, +0x82,0x7a,0x41,0x83,0xe4,0x93,0x1a,0x2b,0x2e,0x25,0x23,0x7a,0x25,0x23,0x7c,0x5a, +0x1b,0xa0,0xa5,0xbd,0x0, 0xcb,0x7e,0x71,0x21,0x74,0x18,0xac,0x7b,0xe5,0x22,0xa, +0x2b,0x2d,0x32,0x3e,0x34,0x2e,0x37,0xf, 0xda,0xb, 0x38,0x30,0x12,0x6d,0xde,0xbe, +0x34,0x3, 0xe8,0x8, 0xa, 0x7e,0x35,0x23,0x2e,0x34,0x0, 0x28,0x7a,0x35,0x23,0x7e, +0x35,0x23,0xbe,0x34,0x0, 0xfa,0x28,0x7, 0x7e,0x34,0x0, 0xfa,0x7a,0x35,0x23,0xe5, +0x19,0xa, 0x3b,0xbe,0x35,0x23,0x50,0x5, 0x7e,0x55,0x23,0xf5,0x19,0xe5,0x19,0xda, +0x3b,0x22,0xca,0x3b,0x7c,0x9b,0x7d,0xa3,0xbe,0x90,0x1, 0x28,0x1e,0xa, 0x15,0x1b, +0x15,0xa, 0x39,0xbd,0x31,0x58,0x14,0x74,0x2, 0xac,0xb9,0x7d,0xb5,0x2d,0xba,0x1b, +0xb6,0xb, 0xb8,0x30,0x12,0x6d,0x61,0x7d,0xb3,0x80,0x7, 0xbe,0x90,0x1, 0x78,0x15, +0x6d,0xbb,0x7e,0x70,0x2, 0xac,0x79,0x2d,0x3a,0x1b,0x35,0xb, 0x38,0x30,0x12,0x6d, +0x61,0x7d,0xc3,0x80,0x8, 0x4c,0x99,0x78,0x38,0x6d,0xcc,0x7d,0xbc,0x74,0x2, 0xac, +0xb9,0x7d,0xd5,0x2d,0xda,0xb, 0xd8,0x30,0x12,0x6d,0x61,0x7d,0xd3,0x7e,0x70,0x2, +0xac,0x79,0x2d,0x3a,0x49,0x33,0x0, 0x2, 0x12,0x6d,0x61,0x7d,0xe3,0x74,0x2, 0xac, +0xb9,0x7d,0xf5,0x2d,0xfa,0x49,0x3f,0x0, 0x4, 0x12,0x6d,0x61,0x7d,0xf3,0x2, 0x36, +0x2d,0x7c,0xb5,0x24,0xfe,0xbc,0xb9,0x78,0x46,0x74,0x2, 0xac,0xb9,0x7d,0xb5,0x2d, +0xba,0x1b,0xb6,0xb, 0xb8,0x30,0x12,0x6d,0x61,0x7d,0xb3,0x7e,0x70,0x2, 0xac,0x79, +0x2d,0x3a,0x1b,0x35,0xb, 0x38,0x30,0x12,0x6d,0x61,0x7d,0xc3,0x74,0x2, 0xac,0xb9, +0x7d,0xd5,0x2d,0xda,0xb, 0xd8,0x30,0x12,0x6d,0x61,0x7d,0xd3,0x74,0x2, 0xac,0xb9, +0x2d,0xa5,0x49,0x3a,0x0, 0x2, 0x12,0x6d,0x61,0x7d,0xe3,0x6d,0xff,0x80,0x3e,0x7c, +0xb5,0x14,0xbc,0xb9,0x78,0x37,0x74,0x2, 0xac,0xb9,0x7d,0xb5,0x2d,0xba,0x1b,0xb6, +0xb, 0xb8,0x30,0x12,0x6d,0x61,0x7d,0xb3,0x7e,0x70,0x2, 0xac,0x79,0x2d,0x3a,0x1b, +0x35,0xb, 0x38,0x30,0x12,0x6d,0x61,0x7d,0xc3,0x74,0x2, 0xac,0xb9,0x7d,0xd5,0x2d, +0xda,0xb, 0xd8,0x30,0x12,0x6d,0x61,0x7d,0xd3,0x6d,0xff,0x7d,0xef,0xa, 0x79,0x6d, +0x66,0x7f,0x3, 0x1b,0xc, 0x7d,0x3c,0x1a,0x26,0x1a,0x24,0x12,0x48,0x24,0x7f,0x41, +0x7f,0x3, 0x1b,0xd, 0x7d,0x3b,0x1a,0x26,0x1a,0x24,0x12,0x48,0x24,0x2f,0x41,0x7d, +0x3d,0x1a,0x26,0x1a,0x24,0xa, 0x19,0x6d,0x0, 0x12,0x48,0x24,0x2f,0x41,0xa, 0x19, +0x6d,0x0, 0xb, 0xc, 0x7d,0x3e,0x1a,0x26,0x1a,0x24,0x12,0x48,0x24,0x2f,0x41,0xa, +0x19,0x6d,0x0, 0xb, 0xd, 0x7d,0x3f,0x1a,0x26,0x1a,0x24,0x12,0x48,0x24,0x2f,0x14, +0x7d,0x1c,0x1a,0x2, 0x1a,0x0, 0x7d,0x5b,0x1a,0x4a,0x1a,0x48,0x2f,0x20,0x7d,0x1d, +0x1a,0x2, 0x1a,0x0, 0x2f,0x2, 0x7d,0x5e,0x1a,0x4a,0x1a,0x48,0x2f,0x20,0x7d,0x1f, +0x1a,0x2, 0x1a,0x0, 0x2f,0x2, 0x74,0x6, 0x2f,0x11,0x14,0x78,0xfb,0x12,0x48,0x40, +0x2e,0x34,0x0, 0x20,0xda,0x3b,0x22,0xca,0x3b,0x7e,0xf3,0xf, 0x1b,0x7e,0x64,0xe, +0xdf,0xe5,0x51,0xb4,0x1, 0x21,0x7e,0xb3,0xf, 0x1c,0xb4,0x1, 0x1a,0x7e,0xb3,0xd, +0xf7,0xb4,0x1, 0x13,0x7e,0x73,0xd, 0xf9,0xbe,0x70,0x15,0x40,0xa, 0x74,0x1e,0x7a, +0xb3,0xf, 0x26,0x74,0x14,0x80,0x8, 0x74,0x5, 0x7a,0xb3,0xf, 0x26,0x74,0x4, 0x7a, +0xb3,0xf, 0x27,0x4c,0xff,0x78,0xd, 0x75,0x1a,0x0, 0x7e,0xb3,0xf, 0x26,0x12,0x6e, +0xaf,0x2, 0x38,0x47,0xe5,0x51,0xb4,0x1, 0x1b,0x7e,0xb3,0xf, 0x1c,0xb4,0x1, 0x14, +0x7e,0xb3,0xd, 0xf7,0xb4,0x1, 0xd, 0x7e,0x73,0xd, 0xf9,0xbe,0x70,0x15,0x40,0x4, +0x74,0x1, 0x80,0x1, 0xe4,0xb4,0x1, 0x9, 0xe5,0x1a,0x70,0x5, 0x75,0x17,0x1e,0xf5, +0x18,0xe5,0x51,0xb4,0x1, 0x1b,0x7e,0xb3,0xf, 0x1c,0xb4,0x1, 0x14,0x7e,0xb3,0xd, +0xf7,0xb4,0x1, 0xd, 0x7e,0x73,0xd, 0xf9,0xbe,0x70,0x15,0x40,0x4, 0x74,0x1, 0x80, +0x1, 0xe4,0xf5,0x1a,0x6c,0xee,0x7e,0x70,0x7, 0xac,0x7e,0x9, 0xb3,0xe, 0x9d,0xf5, +0x21,0xbe,0xb0,0xff,0x78,0x3, 0x2, 0x38,0x3d,0xe5,0x21,0xa, 0x2b,0x2d,0x26,0x7e, +0x29,0xb0,0xb4,0x2, 0x2, 0x80,0x3, 0x2, 0x38,0x3d,0x49,0x33,0xe, 0x99,0x7e,0xa1, +0x21,0x74,0x4, 0xa4,0x49,0x25,0x13,0x74,0x12,0x6d,0xbe,0x7a,0x35,0x22,0x74,0x7, +0xac,0xbe,0x49,0x35,0xe, 0x9b,0x7e,0xa1,0x21,0x74,0x4, 0xa4,0x49,0x25,0x13,0x76, +0x12,0x6d,0xbe,0x7a,0x35,0x24,0xe5,0x17,0xa, 0x3b,0xbe,0x35,0x22,0x28,0x56,0xbe, +0x35,0x24,0x28,0x51,0x7e,0xa1,0x21,0x74,0x4, 0xa4,0x49,0x35,0x13,0x74,0x74,0x7, +0xac,0xbe,0x59,0x35,0xe, 0x99,0x7e,0xa1,0x21,0x74,0x4, 0xa4,0x49,0x35,0x13,0x76, +0x74,0x7, 0xac,0xbe,0x59,0x35,0xe, 0x9b,0xe5,0x21,0xa, 0x3b,0x2d,0x36,0x7e,0x39, +0xb0,0xb4,0x2, 0x7, 0xbe,0xf0,0x0, 0x28,0x2, 0x1b,0xf0,0x4c,0xff,0x78,0x4e,0x5, +0x18,0x7e,0x73,0xf, 0x27,0xbe,0x71,0x17,0x28,0x43,0xe5,0x18,0xbe,0xb0,0x32,0x40, +0x3c,0x5, 0x17,0x80,0x35,0x7e,0x90,0x7, 0xac,0x9e,0x49,0x34,0xe, 0x99,0x7e,0xa1, +0x21,0x74,0x4, 0xa4,0x59,0x35,0x13,0x74,0x49,0x34,0xe, 0x9b,0x59,0x35,0x13,0x76, +0x7e,0x73,0xf, 0x26,0xbe,0x71,0x17,0x78,0x8, 0x7e,0xb3,0xf, 0x27,0xf5,0x17,0x80, +0x9, 0xe5,0x17,0xbe,0xb0,0x1, 0x28,0x2, 0x15,0x17,0x75,0x18,0x0, 0xb, 0xe0,0xbe, +0xe0,0xa, 0x68,0x3, 0x2, 0x37,0x56,0xda,0x3b,0x22,0xca,0x3b,0x6c,0xff,0x7e,0xb3, +0x10,0x2b,0xf5,0x24,0x7e,0xe3,0x10,0x2c,0x1b,0xe0,0x6c,0xdd,0x7e,0x70,0x30,0xac, +0x7d,0x2e,0x37,0xf, 0xda,0x49,0x33,0x0, 0x2e,0x74,0x2, 0xac,0xbd,0x59,0x35,0x13, +0xb6,0xb, 0xd0,0xbe,0xd0,0xd, 0x78,0xe4,0x7e,0xb3,0xf, 0xd3,0xb4,0x1, 0x2, 0x80, +0x3, 0x2, 0x39,0xc1,0x6c,0xcc,0x2, 0x39,0xb2,0x7e,0x70,0x2, 0xac,0x7c,0x9, 0xb3, +0xd, 0x18,0xf5,0x22,0x9, 0xb3,0xd, 0x19,0xf5,0x23,0x75,0x21,0x3, 0x7e,0x73,0xe, +0x12,0xbe,0x70,0x20,0x50,0xa, 0x7e,0xb3,0xd, 0xf7,0xb4,0x1, 0x3, 0x75,0x21,0x1, +0x7e,0xb3,0xd, 0xfd,0xb4,0x1, 0x3, 0x75,0x21,0x2, 0x74,0x8, 0x7a,0xb3,0xf, 0x53, +0xe5,0x22,0xbe,0xb0,0x0, 0x28,0x21,0xe5,0x24,0xa, 0x2b,0x1b,0x24,0xe5,0x22,0xa, +0x3b,0xbd,0x32,0x58,0x13,0xe5,0x23,0xbe,0xb0,0x0, 0x28,0xc, 0xa, 0x2e,0x1b,0x24, +0xe5,0x23,0xa, 0x3b,0xbd,0x32,0x48,0x3, 0x75,0x21,0x2, 0x75,0x25,0x0, 0x80,0x45, +0xe5,0x25,0xbc,0xbc,0x68,0x3d,0x7e,0x71,0x25,0x74,0x2, 0xac,0x7b,0x9, 0xa3,0xd, +0x18,0x7a,0xa1,0x26,0x9, 0xb3,0xd, 0x19,0xf5,0x27,0xa, 0x2a,0xe5,0x22,0xa, 0x3b, +0x9d,0x32,0x12,0x6d,0xde,0xbe,0x34,0x0, 0x3, 0x18,0x18,0xe5,0x27,0xa, 0x2b,0xe5, +0x23,0xa, 0x3b,0x9d,0x32,0x12,0x6d,0xde,0xbe,0x34,0x0, 0x3, 0x18,0x5, 0x75,0x21, +0x1, 0x80,0xb, 0x5, 0x25,0x7e,0x73,0xd, 0xf7,0xbe,0x71,0x25,0x38,0xb2,0xe5,0x51, +0xb4,0x1, 0x20,0x7e,0xb3,0xf, 0x1c,0xb4,0x1, 0x19,0x7e,0xb3,0xd, 0xf7,0xb4,0x1, +0x12,0x7e,0x73,0xd, 0xf9,0xbe,0x70,0x15,0x40,0x9, 0x75,0x21,0x3, 0x74,0x1e,0x7a, +0xb3,0xf, 0x53,0xe5,0x23,0xbe,0xb0,0x17,0x50,0x1a,0x6c,0xdd,0x6d,0x33,0x7e,0x50, +0x30,0xac,0x5d,0x2e,0x27,0xf, 0xda,0x59,0x32,0x0, 0x2e,0xb, 0xd0,0xbe,0xd0,0xd, +0x78,0xec,0x80,0x3, 0x75,0x21,0x0, 0xe5,0x21,0x7c,0x7c,0x7c,0x6f,0x12,0x11,0xa0, +0x6c,0xdd,0x74,0x2, 0xac,0xbd,0x49,0x35,0x13,0xb6,0x7e,0x50,0x30,0xac,0x5d,0x2e, +0x27,0xf, 0xda,0x59,0x32,0x0, 0x2e,0xb, 0xd0,0xbe,0xd0,0xd, 0x78,0xe4,0xb, 0xf0, +0xb, 0xc0,0x7e,0x73,0xd, 0xf7,0xbc,0x7c,0x28,0x3, 0x2, 0x38,0x89,0x7a,0xf3,0xd, +0xf7,0xda,0x3b,0x22,0xca,0x3b,0x7d,0x73,0x7e,0xb3,0xd, 0xf7,0xf5,0x4c,0x7e,0x37, +0xf, 0xda,0x7a,0x35,0x4f,0x75,0x42,0x0, 0x7e,0xc0,0x1, 0x80,0x19,0xe5,0x42,0xa, +0x3b,0x2d,0x37,0x7e,0x39,0x60,0xa, 0x2c,0x2d,0x27,0x7e,0x29,0x70,0xbc,0x76,0x40, +0x3, 0x7a,0xc1,0x42,0xb, 0xc0,0xe5,0x4c,0xbc,0xbc,0x38,0xe1,0xe5,0x42,0xa, 0x3b, +0x2d,0x37,0x7e,0x39,0xb0,0xf5,0x42,0x75,0x44,0x0, 0x7e,0xc0,0x1, 0x2, 0x3b,0xe, +0x75,0x4b,0x0, 0x6d,0x33,0x7a,0x35,0x4d,0x6c,0xdd,0x75,0x45,0x0, 0x75,0x46,0x0, +0x75,0x43,0x0, 0x2, 0x3a,0xc3,0x7e,0x71,0x43,0x74,0x2, 0xac,0x7b,0x9, 0xb3,0xd, +0x18,0xf5,0x47,0x9, 0xb3,0xd, 0x19,0xf5,0x48,0xe5,0x43,0xa, 0x3b,0x2d,0x37,0x7e, +0x39,0x70,0xbc,0x7c,0x78,0x7b,0xb, 0xd0,0xe5,0x47,0x25,0x45,0xf5,0x45,0xe5,0x48, +0x25,0x46,0xf5,0x46,0x7e,0x51,0x47,0xac,0x5d,0xe5,0x45,0xa, 0x3b,0x9d,0x32,0x12, +0x6d,0xde,0x7c,0xb7,0xf5,0x49,0x7e,0x51,0x48,0xac,0x5d,0xe5,0x46,0xa, 0x3b,0x9d, +0x32,0x12,0x6d,0xde,0x7c,0xb7,0xf5,0x4a,0x7e,0x51,0x4b,0xac,0x5d,0xe5,0x49,0xa, +0x3b,0xbd,0x32,0x8, 0x9, 0xa, 0x2d,0x12,0x47,0xf2,0x7c,0xb7,0xf5,0x4b,0x7e,0x51, +0x4b,0xac,0x5d,0xe5,0x4a,0xa, 0x3b,0xbd,0x32,0x8, 0x9, 0xa, 0x2d,0x12,0x47,0xf2, +0x7c,0xb7,0xf5,0x4b,0x7e,0x71,0x47,0x74,0x18,0xac,0x7b,0xe5,0x48,0xa, 0x2b,0x2d, +0x32,0x3e,0x34,0x2e,0x35,0x4f,0xb, 0x38,0x30,0xbe,0x35,0x4d,0x8, 0x3, 0x7a,0x35, +0x4d,0x5, 0x43,0xe5,0x4c,0xbe,0xb1,0x43,0x28,0x3, 0x2, 0x3a,0x26,0xbe,0xd0,0x0, +0x28,0x3a,0xe5,0x45,0x8c,0xbd,0xf5,0x45,0xe5,0x46,0x8c,0xbd,0xf5,0x46,0x7e,0xa1, +0x45,0x7e,0x71,0x44,0x74,0x2, 0xac,0x7b,0x19,0xa3,0x15,0x2b,0xe5,0x46,0x19,0xb3, +0x15,0x2c,0x7e,0x25,0x4d,0x7e,0x71,0x45,0x74,0x18,0xac,0x7b,0xe5,0x46,0xa, 0x1b, +0x2d,0x31,0x3e,0x34,0x2e,0x35,0x4f,0x1b,0x38,0x20,0x5, 0x44,0xb, 0xc0,0xe5,0x42, +0xbc,0xbc,0x40,0x3, 0x2, 0x3a,0x10,0xe5,0x44,0xda,0x3b,0x22,0x74,0xd, 0x7a,0xb3, +0x10,0x2b,0x74,0x18,0x7a,0xb3,0x10,0x2c,0x74,0x4, 0x7a,0xb3,0x10,0x2d,0xe4,0x7a, +0xb3,0x10,0x2e,0x7e,0x34,0x11,0x9b,0x7a,0x37,0x10,0x2f,0x7e,0x34,0x11,0x97,0x7a, +0x37,0x10,0x31,0x7e,0x34,0xf, 0xc5,0x7a,0x37,0x10,0x33,0x7e,0x34,0xf, 0xad,0x7a, +0x37,0x10,0x35,0x74,0x15,0x7a,0xb3,0x10,0x37,0x74,0x17,0x7a,0xb3,0x10,0x38,0x74, +0x4, 0x7a,0xb3,0x10,0x3a,0xe4,0x7a,0xb3,0x10,0x3b,0x7a,0xb3,0x10,0x3c,0x7a,0xb3, +0x10,0x3d,0x74,0x2, 0x7a,0xb3,0x10,0x3e,0x74,0x45,0x7a,0xb3,0x10,0x3f,0x74,0x71, +0x7a,0xb3,0x10,0x40,0x74,0x3, 0x7a,0xb3,0x10,0x41,0x7e,0x34,0x1f,0xff,0x7a,0x37, +0x10,0x42,0x6d,0x33,0x7a,0x37,0x10,0x44,0x7e,0x34,0xd, 0xfe,0x7a,0x37,0x10,0x46, +0x7e,0x34,0xf, 0xdc,0x7a,0x37,0x10,0x48,0x74,0x23,0x7a,0xb3,0x10,0x4a,0x74,0xa, +0x7a,0xb3,0x10,0x4b,0xe4,0x7a,0xb3,0x10,0x4c,0x7a,0xb3,0x10,0x4d,0x7a,0xb3,0x10, +0x4e,0x74,0x2, 0x7a,0xb3,0x10,0x4f,0x7e,0x34,0x0, 0xf4,0x7a,0x37,0x10,0x52,0x7e, +0x34,0x3f,0xe0,0x7a,0x37,0x10,0x50,0x7e,0x34,0x29,0x28,0x7a,0x37,0x10,0x54,0x7e, +0x34,0x10,0x91,0x7a,0x37,0x10,0x62,0x7e,0x34,0x0, 0x3d,0x7a,0x37,0x10,0x64,0x7e, +0x34,0x0, 0x22,0x7a,0x37,0x10,0x66,0x7e,0x34,0x4c,0x0, 0x7a,0x37,0x10,0x56,0x7e, +0x34,0x3, 0xcf,0x7a,0x37,0x10,0x58,0x7e,0x34,0x7, 0x9a,0x7a,0x37,0x10,0x5a,0x7e, +0x34,0x5, 0x84,0x7a,0x37,0x10,0x5c,0x7e,0x34,0x0, 0x9, 0x7a,0x37,0x10,0x5e,0x7e, +0x34,0x0, 0xf, 0x7a,0x37,0x10,0x60,0x7e,0x34,0x0, 0x5d,0x7a,0x37,0x10,0x68,0xe4, +0x7a,0xb3,0x10,0x6a,0x74,0x7, 0x7a,0xb3,0x10,0x6b,0x7e,0x34,0x10,0xff,0x7a,0x37, +0x10,0x6c,0x7e,0x34,0xf, 0xa0,0x7a,0x37,0x10,0x6e,0x7e,0x34,0xf, 0x2e,0x7a,0x37, +0x10,0x70,0x12,0x42,0x8d,0x7e,0x34,0x11,0xe9,0x7a,0x37,0x10,0x72,0x7e,0x34,0xf, +0x88,0x7a,0x37,0x10,0x74,0x7e,0x34,0x11,0x17,0x7a,0x37,0x10,0x76,0x2, 0x6c,0x66, +0xca,0x69,0xca,0xf8,0x7d,0xb1,0x7d,0xf2,0x7d,0xe3,0x9f,0x0, 0x7f,0x60,0x7f,0x40, +0x6d,0x66,0x7a,0x67,0x13,0xb6,0x7f,0x10,0x7d,0xa6,0x75,0x21,0x0, 0x6c,0xaa,0x80, +0x4b,0x7e,0x30,0x2, 0xac,0x3a,0x7d,0xa1,0x2d,0xae,0xb, 0xa8,0xa0,0x7c,0xba,0x20, +0xe0,0x1e,0xbd,0xab,0x8, 0x4, 0x7d,0xab,0x80,0xa, 0x6d,0x11,0x9d,0x1b,0xbd,0x1a, +0x8, 0x2, 0x7d,0xa1,0x7d,0x1a,0x1a,0x2, 0x1a,0x0, 0x2f,0x60,0x5, 0x21,0x80,0x1a, +0xbd,0xab,0x8, 0x4, 0x7d,0xab,0x80,0xa, 0x6d,0x11,0x9d,0x1b,0xbd,0x1a,0x8, 0x2, +0x7d,0xa1,0x7d,0x1a,0x1a,0x2, 0x1a,0x0, 0x2f,0x40,0xb, 0xa0,0x7e,0xf3,0x10,0x2c, +0xbc,0xfa,0x38,0xad,0xe5,0x21,0xa, 0x1b,0x6d,0x0, 0x7f,0x16,0x12,0x48,0x91,0x7a, +0x37,0x13,0xb6,0xe5,0x21,0xa, 0x3b,0x6d,0x22,0xa, 0x1f,0x6d,0x0, 0x9f,0x1, 0x7f, +0x14,0x12,0x48,0x91,0x6c,0xaa,0x80,0x2f,0x7c,0xba,0x7e,0x30,0x2, 0x7c,0x9a,0x20, +0xe0,0xf, 0xac,0x93,0x7d,0x14,0x2d,0x1e,0xb, 0x18,0x0, 0x9e,0x7, 0x13,0xb6,0x80, +0xd, 0xac,0x93,0x7d,0x14,0x2d,0x1e,0xb, 0x18,0x0, 0x7d,0x13,0x9d,0x1, 0x7d,0x14, +0x2d,0x1f,0x1b,0x18,0x0, 0xb, 0xa0,0x7e,0xb3,0x10,0x2c,0xbc,0xba,0x38,0xc9,0x9f, +0x66,0x7a,0x67,0x13,0xb6,0x6c,0xaa,0x80,0x29,0x7e,0x70,0x2, 0xac,0x7a,0x7d,0xa3, +0x2d,0xae,0x49,0xaa,0x0, 0x30,0xbd,0xab,0x8, 0x4, 0x7d,0xab,0x80,0xa, 0x6d,0x33, +0x9d,0x3b,0xbd,0x3a,0x8, 0x2, 0x7d,0xa3,0x7d,0x3a,0x1a,0x26,0x1a,0x24,0x2f,0x61, +0xb, 0xa0,0x7e,0x63,0x10,0x2b,0xbc,0x6a,0x38,0xcf,0xa, 0x16,0x6d,0x0, 0x7f,0x16, +0x12,0x48,0x91,0x7a,0x37,0x13,0xb6,0x6c,0xaa,0x80,0x1d,0x7e,0x70,0x2, 0x7c,0x5a, +0xac,0x57,0x7d,0x32,0x2d,0x3e,0x49,0x43,0x0, 0x30,0x9e,0x47,0x13,0xb6,0x7d,0x32, +0x2d,0x3f,0x59,0x43,0x0, 0x30,0xb, 0xa0,0x7e,0xb3,0x10,0x2b,0xbc,0xba,0x38,0xdb, +0xda,0xf8,0xda,0x69,0x22,0x7e,0x50,0x1, 0xe4,0x7a,0xb3,0xe, 0xb, 0x74,0x1, 0x7a, +0xb3,0xe, 0xc, 0x7e,0xa3,0xd, 0xf7,0x4c,0xaa,0x78,0xb, 0x74,0x1, 0x7a,0xb3,0x16, +0xba,0xe4,0x7a,0xb3,0x16,0xbb,0xbe,0xa0,0x0, 0x28,0x5, 0xe4,0x7a,0xb3,0xe, 0xc, +0x7e,0x43,0xd, 0xfc,0xbe,0x40,0x0, 0x28,0x5, 0xe4,0x7a,0xb3,0xe, 0xc, 0x7e,0x43, +0xd, 0x17,0xbe,0x40,0x0, 0x28,0x6b,0x7e,0xb3,0x16,0xb4,0x70,0x65,0x7e,0xb3,0x16, +0xb6,0x70,0x5f,0x74,0x1, 0x7a,0xb3,0xe, 0xc, 0x6d,0x33,0x6c,0x44,0x7e,0x30,0x2, +0xac,0x34,0x2e,0x17,0xf, 0xd6,0xb, 0x18,0x10,0xbd,0x13,0x58,0x2, 0x7d,0x31,0xb, +0x40,0xa5,0xbc,0x25,0xe8,0xbe,0x34,0xf8,0xf8,0x58,0x5, 0x7e,0x50,0x5, 0x80,0x1f, +0xbe,0x34,0xfb,0x50,0x58,0x5, 0x7e,0x50,0x4, 0x80,0x14,0xbe,0x34,0xfc,0xe0,0x58, +0x5, 0x7e,0x50,0x3, 0x80,0x9, 0xbe,0x34,0xfe,0xd4,0x58,0x3, 0x7e,0x50,0x2, 0xbe, +0x34,0xfc,0x18,0x58,0x3c,0x74,0x1, 0x7a,0xb3,0xe, 0xb, 0xe4,0x7a,0xb3,0x10,0x3d, +0x80,0x2f,0x7e,0x43,0xd, 0x16,0xa5,0xbc,0x0, 0x1d,0xbe,0xa0,0x0, 0x28,0x18,0x7e, +0xb3,0x16,0xb4,0x70,0x12,0x7e,0xb3,0x16,0xb6,0x70,0xc, 0xbe,0x50,0x3, 0x50,0x3, +0x7e,0x50,0x3, 0x74,0x1, 0x80,0x6, 0xbe,0x40,0x0, 0x28,0x5, 0xe4,0x7a,0xb3,0xe, +0xc, 0x7e,0x43,0x16,0xba,0xbc,0x45,0x50,0x4, 0x7a,0x53,0x16,0xba,0xbe,0x50,0x2, +0x28,0x6, 0x74,0x1, 0x7a,0xb3,0x16,0xbb,0xbe,0xa0,0x0, 0x28,0x1b,0x7e,0xb3,0xd, +0x16,0x70,0x15,0x7e,0xb3,0x16,0xb4,0x70,0xf, 0x7e,0xb3,0x16,0xb6,0x70,0x9, 0xe4, +0x7a,0xb3,0xf, 0xd3,0x7a,0xb3,0xf, 0xd2,0x7e,0xb3,0x16,0xb6,0xb4,0x1, 0x18,0xe4, +0x7a,0xb3,0x16,0xb6,0x74,0x1, 0x7a,0xb3,0xe, 0xb, 0xe4,0x7a,0xb3,0x10,0x3d,0x7a, +0xb3,0xf, 0xd3,0x7a,0xb3,0xf, 0xd2,0x7e,0xa3,0x16,0xba,0x74,0x2, 0xa4,0x7a,0x57, +0xe, 0x5, 0x7a,0x57,0xe, 0x7, 0x22,0xca,0x79,0x7c,0xfb,0xe5,0x55,0xbe,0xb0,0x1, +0x68,0xf9,0xe5,0x55,0xb4,0x2, 0x2, 0x80,0x3, 0x2, 0x3f,0xe7,0xa9,0xd7,0xea,0x7e, +0x37,0xf, 0xda,0x7e,0x27,0xf, 0xd8,0x7e,0x14,0x18,0x0, 0x12,0x67,0x82,0x12,0x0, +0x6e,0x50,0x27,0xa9,0xc7,0xea,0x7e,0xe3,0x10,0x4d,0xe4,0x7a,0xb3,0x10,0x4d,0x7e, +0x24,0x5, 0xe0,0x7d,0x32,0x7e,0x14,0x18,0x0, 0x12,0x67,0x82,0x7a,0xe3,0x10,0x4d, +0x7e,0xb3,0x10,0xa5,0xb4,0x1, 0x3, 0x12,0x6a,0xdf,0x74,0x1, 0x7a,0xb3,0xf, 0xd3, +0x7e,0x34,0x9, 0x2e,0x7e,0x24,0x8, 0xe4,0x7e,0x14,0xa, 0x18,0x12,0x66,0x67,0x7e, +0x37,0xf, 0xd6,0x7e,0x27,0xf, 0xd4,0x7e,0x14,0xa, 0x62,0x12,0x66,0x67,0x6c,0xaa, +0x80,0x36,0x7e,0x50,0x2, 0xac,0x5a,0x49,0x32,0xa, 0x92,0xbe,0x34,0x13,0x88,0x40, +0xc, 0xbe,0x34,0x75,0x30,0x28,0x1a,0xbe,0x34,0x7e,0xf4,0x50,0x14,0x7e,0xb3,0x16, +0xb7,0x4, 0x7a,0xb3,0x16,0xb7,0xb4,0xa, 0xd, 0x74,0x1, 0x7a,0xb3,0x16,0xb6,0x80, +0xf, 0xe4,0x7a,0xb3,0x16,0xb7,0xb, 0xa0,0x7e,0xb3,0x10,0x2b,0xbc,0xba,0x38,0xc2, +0x7e,0xa3,0x16,0xb6,0xbe,0xa0,0x1, 0x78,0x7, 0x7e,0xb3,0x16,0xb5,0x4, 0x80,0x1, +0xe4,0x7a,0xb3,0x16,0xb5,0xbe,0xb0,0x0, 0x28,0x6, 0x74,0x1, 0x7a,0xb3,0x16,0xb4, +0x4c,0xaa,0x78,0xd, 0xe4,0x7a,0xb3,0x16,0xb5,0x7a,0xb3,0x16,0xb4,0x7a,0xb3,0x16, +0xb7,0x74,0x1, 0x7a,0xb3,0xf, 0xd2,0x12,0x66,0xa1,0x12,0x6b,0x8a,0x7e,0xb3,0x11, +0xc, 0xb4,0x1, 0x31,0xbe,0xf0,0x1, 0x78,0x2c,0x7e,0xb3,0xd, 0xfc,0x70,0x26,0x12, +0x46,0xe9,0x7e,0xb3,0xd, 0xf7,0x70,0x19,0x7e,0x73,0x11,0x95,0xa, 0x37,0x9, 0x73, +0xf, 0x29,0x7a,0x73,0x10,0x4a,0xe4,0x7a,0xb3,0x10,0x4e,0x7a,0xb3,0x11,0xc, 0x80, +0x6, 0x6c,0xff,0x80,0x2, 0x6c,0xff,0x12,0x65,0xf2,0x12,0x6b,0xec,0x7c,0xbf,0xda, +0x79,0x22,0xca,0x3b,0x75,0x21,0x0, 0x7e,0x34,0xb, 0x79,0x7e,0x24,0x0, 0xd, 0xe4, +0x12,0x6d,0xee,0xe4,0x7a,0xb3,0xd, 0x16,0x7a,0xb3,0xd, 0x17,0x7e,0xb3,0xf, 0xd2, +0xb4,0x1, 0x2, 0x80,0x3, 0x2, 0x41,0x68,0x7e,0x34,0x13,0xb6,0x7e,0x24,0x0, 0xa, +0x74,0xff,0x12,0x6d,0xee,0x7e,0x34,0x13,0xc0,0x7e,0x24,0x0, 0xa, 0x74,0xff,0x12, +0x6d,0xee,0x7e,0x37,0xf, 0xd6,0x7e,0xb3,0x10,0x2c,0x7e,0x27,0xf, 0x4c,0x7e,0x14, +0x13,0xb6,0x6c,0x11,0x12,0x4f,0xf, 0x7c,0xeb,0x7e,0x37,0xf, 0xd6,0x2e,0x34,0x0, +0x30,0x7e,0xb3,0x10,0x2b,0x7e,0x27,0xf, 0x4a,0x7e,0x14,0x13,0xc0,0x12,0x4f,0xf, +0x7c,0xdb,0x6c,0xff,0x6c,0xaa,0x80,0x51,0x6c,0xcc,0x80,0x47,0x7c,0xbf,0xc4,0x23, +0x54,0x1f,0x7c,0x6b,0x7a,0x61,0x21,0xa, 0x2a,0x9, 0x72,0x13,0xc0,0x7e,0x50,0x2, +0xac,0x5f,0x19,0x72,0xa, 0xb1,0xa, 0x1c,0x9, 0x71,0x13,0xb6,0x19,0x72,0xa, 0xb2, +0x7c,0xbf,0x54,0x7, 0x7e,0x44,0x0, 0x1, 0x60,0x5, 0x3e,0x44,0x14,0x78,0xfb,0x7c, +0x79,0xa, 0x46,0x2e,0x44,0xb, 0x79,0x7e,0x49,0xb0,0x4c,0xb7,0x7a,0x49,0xb0,0xb, +0xf0,0xb, 0xc0,0xbc,0xec,0x38,0xb5,0xb, 0xa0,0xbc,0xda,0x38,0xab,0x7a,0xf3,0xd, +0x16,0x7e,0x34,0x13,0xb6,0x7e,0x24,0x0, 0xa, 0x74,0xff,0x12,0x6d,0xee,0x7e,0x34, +0x13,0xc0,0x7e,0x24,0x0, 0xa, 0x74,0xff,0x12,0x6d,0xee,0x7e,0x37,0xf, 0xd6,0x7e, +0xb3,0x10,0x2c,0x7e,0x27,0xf, 0x4e,0x7e,0x14,0x13,0xb6,0x7e,0x10,0x1, 0x12,0x4f, +0xf, 0x7c,0xeb,0x7e,0x37,0xf, 0xd6,0x2e,0x34,0x0, 0x30,0x7e,0xb3,0x10,0x2b,0x7e, +0x27,0xf, 0x4e,0x7e,0x14,0x13,0xc0,0x12,0x4f,0xf, 0x7c,0xdb,0x6c,0xff,0x6c,0xaa, +0x80,0xe, 0x6c,0xcc,0x80,0x4, 0xb, 0xf0,0xb, 0xc0,0xbc,0xec,0x38,0xf8,0xb, 0xa0, +0xbc,0xda,0x38,0xee,0x7a,0xf3,0xd, 0x17,0xda,0x3b,0x22,0xca,0xf8,0x6d,0x33,0x7a, +0x37,0x10,0x1, 0x7e,0x34,0xd, 0xac,0x7a,0x37,0xa, 0xaf,0x74,0x1, 0x7a,0xb3,0x10, +0x3c,0x7a,0xb3,0x10,0x4d,0x7a,0xb3,0x10,0xa5,0x7e,0xb3,0xf, 0x26,0x12,0x6e,0xaf, +0x12,0x63,0xec,0x7e,0xb3,0x10,0xa5,0xb4,0x1, 0x2, 0x80,0x3, 0x2, 0x42,0x84,0x6d, +0x33,0x7a,0x37,0x10,0x1, 0x7e,0x34,0x0, 0x64,0x7a,0x37,0xa, 0xaf,0xe4,0x7a,0xb3, +0x0, 0xff,0x12,0x6c,0x48,0x12,0x45,0xdf,0x12,0x6b,0x2, 0x6c,0xff,0x1a,0x2f,0x7e, +0x34,0x0, 0x18,0xad,0x32,0x3e,0x34,0x2e,0x37,0xf, 0xda,0x2e,0x34,0x0, 0x30,0x1b, +0x35,0xb, 0x38,0x30,0x1a,0x2f,0x3e,0x24,0x59,0x32,0x13,0x9c,0xb, 0xf0,0xbe,0xf0, +0xd, 0x78,0xda,0x12,0x6b,0x48,0x12,0x6c,0x9e,0x12,0x69,0x5, 0x6c,0xff,0x1a,0x3f, +0x3e,0x34,0x49,0x23,0x13,0x9c,0x1a,0xf, 0x7e,0x14,0x0, 0x18,0xad,0x10,0x7d,0x31, +0x3e,0x34,0x2e,0x37,0xf, 0xda,0x2e,0x34,0x0, 0x30,0x1b,0x35,0x1b,0x38,0x20,0xb, +0xf0,0xbe,0xf0,0xd, 0x78,0xd8,0x12,0x69,0xd8,0x12,0x48,0xe6,0x7e,0xb3,0xf, 0xd3, +0x70,0x9, 0x7e,0xb3,0xf, 0xd2,0x70,0x3, 0x2, 0x41,0x93,0x12,0x1f,0x7b,0x12,0x33, +0x70,0x7a,0xb3,0xf, 0x25,0x12,0x6e,0xd, 0x12,0x6d,0x4, 0x70,0x3, 0x2, 0x41,0x93, +0x12,0x44,0xc9,0x7e,0x37,0xf, 0xda,0x12,0x8, 0x6, 0x12,0x6e,0xb5,0x12,0x4e,0x65, +0x12,0x0, 0x6e,0x50,0x3, 0x12,0x2f,0xc6,0x7e,0xb3,0x11,0x15,0xb4,0x1, 0x4, 0xe4, +0x12,0x6e,0xa0,0x12,0x68,0xd8,0x12,0x66,0xda,0x12,0x19,0x6d,0x12,0x6, 0x11,0x12, +0x6e,0xd4,0x12,0x65,0x3a,0x12,0x36,0xb7,0x12,0x55,0xf2,0x12,0x1c,0x95,0x12,0x49, +0xd0,0x2, 0x41,0x93,0x12,0x0, 0x1e,0x12,0x6e,0x29,0xda,0xf8,0x22,0xca,0x79,0x7e, +0x34,0x0, 0x60,0x12,0x69,0x86,0x7c,0xab,0x7a,0xa1,0x6a,0xbe,0xa0,0x8, 0x40,0x3, +0x2, 0x43,0xab,0xbe,0xa0,0x4, 0x50,0x5, 0x7e,0xe0,0x6, 0x80,0x3, 0x7e,0xe0,0x5, +0x7c,0xba,0xbe,0xb0,0x8, 0x50,0x48,0x7e,0xa0,0x3, 0xa4,0x90,0x42,0xbf,0x73,0x2, +0x42,0xd7,0x2, 0x42,0xdc,0x2, 0x42,0xe1,0x2, 0x42,0xe6,0x2, 0x42,0xeb,0x2, 0x42, +0xf0,0x2, 0x42,0xf5,0x2, 0x42,0xfa,0x7e,0xf0,0x5e,0x80,0x26,0x7e,0xf0,0x5f,0x80, +0x21,0x7e,0xf0,0x61,0x80,0x1c,0x7e,0xf0,0x63,0x80,0x17,0x7e,0xf0,0x65,0x80,0x12, +0x7e,0xf0,0x67,0x80,0xd, 0x7e,0xf0,0x69,0x80,0x8, 0x7e,0xf0,0x6a,0x80,0x3, 0x7e, +0xf0,0x64,0x6c,0xaa,0xa, 0x3a,0x9, 0xb3,0x11,0xe9,0xa, 0xb, 0x7e,0xb3,0x10,0xff, +0xa, 0x1b,0x2d,0x1, 0x7c,0xb1,0x7c,0x1a,0x2e,0x10,0x21,0xa5,0xf7,0x7c,0x9b,0xa, +0x9, 0x5e,0x4, 0x0, 0x1, 0xbe,0x4, 0x0, 0x1, 0x78,0x1c,0x7c,0x79,0xac,0x7f,0x7e, +0x50,0x3, 0xac,0x5f,0xe, 0x24,0xe, 0x24,0x2d,0x32,0x7c,0xba,0x3e,0xb0,0x24,0x25, +0xa, 0xb, 0x1b,0x8, 0x30,0x80,0xd, 0xac,0x9f,0x7c,0xba,0x3e,0xb0,0x24,0x25,0xa, +0xb, 0x1b,0x8, 0x40,0x7c,0xba,0x3e,0xb0,0x24,0x25,0xa, 0xb, 0xb, 0x8, 0xf0,0x7e, +0x4, 0x0, 0xa, 0x7d,0x3f,0x8d,0x30,0x8d,0x30,0x7c,0x75,0xbe,0x70,0x0, 0x40,0x14, +0xbc,0xe7,0x28,0x10,0x7e,0xc4,0x0, 0x64,0x7d,0xdf,0x8d,0xdc,0x7d,0xd, 0x9d,0x1, +0x7c,0x61,0x80,0x17,0xbc,0xe7,0x38,0x19,0xbe,0x70,0x9, 0x38,0x14,0x7e,0xe4,0x0, +0x64,0x8d,0xfe,0x7d,0x2f,0xb, 0x24,0x9d,0x21,0x7c,0x65,0xa, 0x2a,0x19,0x62,0x11, +0xe9,0xb, 0xa0,0xbe,0xa0,0x4, 0x68,0x3, 0x2, 0x43,0x4, 0xda,0x79,0x22,0xca,0x3b, +0x7c,0xeb,0x7e,0x73,0xd, 0xf7,0xbe,0x70,0x1, 0x38,0x3, 0x2, 0x44,0xc0,0x7c,0xbe, +0x12,0xd, 0x46,0x7e,0xb3,0xd, 0xfc,0x60,0x1e,0x7e,0xb3,0x15,0x54,0x70,0x8, 0x7e, +0xb3,0x15,0x55,0x70,0x2, 0x80,0x10,0x7e,0x73,0xd, 0xf7,0xbe,0x70,0x1, 0x28,0xc, +0xe5,0x12,0xbe,0xb0,0x8, 0x28,0x5, 0x7e,0xf0,0x1, 0x80,0x1e,0x7e,0xf0,0x1, 0xbe, +0x73,0xf, 0x1c,0x78,0x6, 0x6c,0xee,0x6c,0xff,0x80,0xf, 0x9e,0x73,0x15,0x54,0xbe, +0x73,0xf, 0x1c,0x78,0x5, 0x7e,0xe0,0x2, 0x6c,0xff,0x4c,0xff,0x78,0x5, 0x7c,0xbe, +0x12,0xd, 0x46,0xe5,0x10,0x7a,0xb3,0xd, 0xf7,0x7e,0x31,0x10,0x74,0x2, 0xac,0x3b, +0x7e,0x24,0x15,0x2b,0x7e,0x34,0xd, 0x18,0x12,0x6d,0x4a,0x75,0x12,0x64,0x75,0x13, +0x64,0x6c,0xee,0x80,0x67,0x6c,0xdd,0x80,0x59,0x74,0x2, 0xac,0xbd,0x9, 0x75,0xd, +0x18,0xa, 0x27,0x74,0x2, 0xac,0xbe,0x9, 0x75,0xd, 0x18,0xa, 0x37,0x9d,0x32,0x12, +0x6d,0xde,0x7c,0xb7,0xf5,0x21,0x74,0x2, 0xac,0xbd,0x9, 0x75,0xd, 0x19,0xa, 0x27, +0x74,0x2, 0xac,0xbe,0x9, 0x75,0xd, 0x19,0xa, 0x37,0x9d,0x32,0x12,0x6d,0xde,0x7c, +0xc7,0xe5,0x21,0xbe,0xb0,0x0, 0x28,0xa, 0xe5,0x12,0xbe,0xb1,0x21,0x28,0x3, 0x85, +0x21,0x12,0xbe,0xc0,0x0, 0x28,0x9, 0xe5,0x13,0xbc,0xbc,0x28,0x3, 0x7a,0xc1,0x13, +0xb, 0xd0,0x7e,0x73,0xd, 0xf7,0xbc,0x7d,0x38,0x9f,0xb, 0xe0,0x7e,0x73,0xd, 0xf7, +0xbc,0x7e,0x38,0x91,0xe5,0x12,0xb4,0x64,0x3, 0x75,0x12,0x0, 0xe5,0x13,0xb4,0x64, +0x3, 0x75,0x13,0x0, 0xe5,0x13,0xbe,0xb1,0x12,0x28,0xb, 0x85,0x13,0x12,0x80,0x6, +0x75,0x12,0x64,0x75,0x13,0x64,0xda,0x3b,0x22,0x12,0x59,0x54,0x70,0x3, 0x2, 0x45, +0x50,0x75,0x6f,0x14,0x75,0x6e,0x1, 0x6c,0x11,0x80,0x2d,0x7c,0xb1,0x54,0x7, 0xa, +0x3b,0x2e,0x34,0x6e,0x98,0x7a,0x71,0x82,0x7a,0x61,0x83,0xe4,0x93,0x7c,0xab,0x6e, +0xa0,0xff,0x7c,0xb1,0xc4,0x23,0x54,0x1f,0xa, 0x1b,0x2e,0x14,0xd, 0x68,0x7e,0x19, +0x0, 0x5c,0xa, 0x7a,0x19,0x0, 0xb, 0x10,0x7e,0x3, 0xd, 0xf7,0xbc,0x1, 0x38,0xcb, +0x6c,0x11,0x80,0x32,0x7c,0xb1,0x54,0x7, 0xa, 0x3b,0x2e,0x34,0x6e,0x98,0x7a,0x71, +0x82,0x7a,0x61,0x83,0xe4,0x93,0x7c,0xab,0x6e,0xa0,0xff,0x7c,0xb1,0xc4,0x23,0x54, +0x1f,0xa, 0x1b,0x2e,0x14,0xb, 0x79,0x7e,0x19,0x0, 0x5c,0xa, 0x7a,0x19,0x0, 0xe4, +0x7a,0xb3,0xd, 0x16,0xb, 0x10,0x7e,0x3, 0xd, 0x16,0xbc,0x1, 0x38,0xc6,0xe4,0x22, +0xe5,0x6e,0xb4,0x1, 0x2, 0x80,0x3, 0x2, 0x45,0xdc,0x15,0x6f,0xe5,0x6f,0x60,0x79, +0x6c,0x11,0x80,0x2d,0x7c,0xb1,0x54,0x7, 0xa, 0x3b,0x2e,0x34,0x6e,0x98,0x7a,0x71, +0x82,0x7a,0x61,0x83,0xe4,0x93,0x7c,0xab,0x6e,0xa0,0xff,0x7c,0xb1,0xc4,0x23,0x54, +0x1f,0xa, 0x1b,0x2e,0x14,0xd, 0x68,0x7e,0x19,0x0, 0x5c,0xa, 0x7a,0x19,0x0, 0xb, +0x10,0x7e,0x3, 0xd, 0xf7,0xbc,0x1, 0x38,0xcb,0x6c,0x11,0x80,0x32,0x7c,0xb1,0x54, +0x7, 0xa, 0x3b,0x2e,0x34,0x6e,0x98,0x7a,0x71,0x82,0x7a,0x61,0x83,0xe4,0x93,0x7c, +0xab,0x6e,0xa0,0xff,0x7c,0xb1,0xc4,0x23,0x54,0x1f,0xa, 0x1b,0x2e,0x14,0xb, 0x79, +0x7e,0x19,0x0, 0x5c,0xa, 0x7a,0x19,0x0, 0xe4,0x7a,0xb3,0xd, 0x16,0xb, 0x10,0x7e, +0x3, 0xd, 0x16,0xbc,0x1, 0x38,0xc6,0xe4,0x22,0x75,0x6e,0x0, 0xe5,0x21,0x22,0xca, +0x79,0x7e,0x74,0x10,0x7e,0x7e,0xb3,0x10,0xfe,0x20,0xe0,0x3, 0x2, 0x46,0xe6,0x54, +0xfe,0x7a,0xb3,0x10,0xfe,0x9, 0x77,0x0, 0x2, 0xbe,0x73,0xf, 0x52,0x68,0x16,0x7a, +0x73,0xf, 0x52,0xa, 0x37,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x3e, +0x34,0x7a,0x37,0xf, 0x48,0x7e,0x79,0x70,0xbe,0x73,0xf, 0x5c,0x68,0xe, 0x7a,0x73, +0xf, 0x5c,0xa, 0x37,0x3e,0x34,0x3e,0x34,0x7a,0x37,0xf, 0x54,0x9, 0x77,0x0, 0x1, +0xa, 0x37,0xbe,0x37,0xf, 0x56,0x68,0x4, 0x7a,0x37,0xf, 0x56,0x7e,0x27,0xf, 0x5d, +0x1e,0x24,0x1e,0x24,0x1e,0x24,0x1e,0x24,0x9, 0x77,0x0, 0x5, 0xa, 0x37,0xbd,0x32, +0x68,0xc, 0x3e,0x34,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x7a,0x37,0xf, 0x5d,0x9, 0x77, +0x0, 0x8, 0xbe,0x73,0x11,0x11,0x68,0x24,0x7a,0x73,0x11,0x11,0xbe,0x70,0xf, 0x40, +0x5, 0xe4,0x19,0xb7,0x0, 0x8, 0x9, 0x77,0x0, 0x8, 0xa, 0x37,0x2e,0x34,0x6d,0xfe, +0x7a,0x71,0x82,0x7a,0x61,0x83,0xe4,0x93,0x7a,0xb3,0x11,0x10,0x9, 0x77,0x0, 0x9, +0xbe,0x73,0x11,0x13,0x68,0x8, 0x7a,0x73,0x11,0x13,0x7a,0x73,0x11,0x12,0x9, 0x77, +0x0, 0x7, 0xbe,0x73,0x11,0x14,0x68,0x4, 0x7a,0x73,0x11,0x14,0x9, 0xb7,0x0, 0xb, +0xbe,0xb1,0x51,0x68,0x5, 0xf5,0x51,0x12,0x6c,0xec,0x9, 0x77,0x0, 0x25,0xa, 0x37, +0xbe,0x37,0x11,0xd, 0x68,0x4, 0x7a,0x37,0x11,0xd, 0x9, 0x77,0x0, 0x6, 0xbe,0x73, +0x11,0xf, 0x68,0x4, 0x7a,0x73,0x11,0xf, 0x9, 0x77,0x0, 0x24,0xbe,0x73,0x11,0x15, +0x68,0x4, 0x7a,0x73,0x11,0x15,0xda,0x79,0x22,0xca,0x79,0xe4,0x6c,0xaa,0xa, 0x4a, +0x19,0xb4,0xd, 0x68,0xb, 0xa0,0xbe,0xa0,0x3, 0x78,0xf3,0xe4,0x7a,0xb3,0xd, 0xf7, +0x7a,0xb3,0xd, 0xf8,0x7a,0xb3,0xd, 0xf9,0x7a,0xb3,0xd, 0xfa,0x7e,0xb3,0xf, 0xd3, +0xb4,0x1, 0x2, 0x80,0x3, 0x2, 0x47,0xef,0x7e,0xb3,0x10,0x2b,0xf5,0x21,0x7e,0xb3, +0x10,0x2c,0xf5,0x22,0x7e,0x37,0xf, 0x56,0x7a,0x35,0x23,0x7e,0x37,0xf, 0x58,0x7a, +0x35,0x25,0x7e,0x37,0xf, 0x5a,0x7a,0x35,0x27,0x7e,0x34,0x0, 0x14,0x7a,0x35,0x2d, +0x7e,0x37,0xf, 0xda,0x7e,0x24,0x0, 0x21,0x7e,0x14,0x0, 0x29,0x7e,0x4, 0x9, 0xc8, +0x12,0x4d,0xb6,0xe5,0x29,0x7a,0xb3,0xd, 0xf7,0xe5,0x2a,0x7a,0xb3,0xd, 0xf8,0xe5, +0x2b,0x7a,0xb3,0xd, 0xf9,0xe5,0x2c,0x7a,0xb3,0xd, 0xfa,0x6c,0xaa,0x80,0x6c,0x7e, +0x53,0xd, 0xf7,0xbc,0x5a,0x28,0x44,0x7c,0xba,0xc4,0x23,0x54,0x1f,0x7c,0x7b,0x7c, +0xba,0x54,0x7, 0x7e,0x44,0x0, 0x1, 0x60,0x5, 0x3e,0x44,0x14,0x78,0xfb,0x7c,0x69, +0x7e,0x30,0x2, 0xac,0x3a,0x49,0x71,0x9, 0xc8,0x7d,0x7, 0xa, 0x0, 0x7c,0x41,0x19, +0x41,0xd, 0x18,0x7d,0x7, 0x7c,0x41,0x19,0x41,0xd, 0x19,0xa, 0x47,0x2e,0x44,0xd, +0x68,0x7e,0x49,0xb0,0x4c,0xb6,0x7a,0x49,0xb0,0x80,0x1e,0xa, 0x15,0xa, 0x2a,0x9d, +0x21,0x3e,0x24,0x49,0x72,0x9, 0xf0,0x7d,0x17,0xa, 0x12,0x7c,0xb3,0x19,0xb2,0xd, +0x40,0x7d,0x17,0x7c,0xb3,0x19,0xb2,0xd, 0x41,0xb, 0xa0,0x7e,0xb3,0xd, 0xf8,0xa, +0x2b,0x7e,0xb3,0xd, 0xf7,0xa, 0x1b,0x2d,0x12,0xa, 0x2a,0xbd,0x21,0x48,0x80,0xda, +0x79,0x22,0xc2,0xd5,0x7c,0xb4,0x30,0xe7,0x8, 0xb2,0xd5,0x6e,0x24,0xff,0xff,0xb, +0x24,0x7c,0xb6,0x30,0xe7,0x12,0xb2,0xd5,0x6e,0x34,0xff,0xff,0xb, 0x34,0x8d,0x32, +0x6e,0x24,0xff,0xff,0xb, 0x24,0x80,0x2, 0x8d,0x32,0x30,0xd5,0x6, 0x6e,0x34,0xff, +0xff,0xb, 0x34,0x22,0x7d,0x51,0xad,0x3, 0x7d,0x2, 0x7d,0x21,0xad,0x5, 0x2d,0x12, +0xad,0x35,0x2d,0x21,0x22,0x7d,0x2, 0xad,0x31,0xad,0x10,0x2d,0x21,0x22,0x6d,0x0, +0x74,0x10,0x4d,0x0, 0x78,0xb, 0x4d,0x22,0x78,0x27,0x8d,0x31,0x7d,0x12,0x6d,0x22, +0x22,0x7d,0x43,0x7d,0x32,0x6d,0x22,0x2f,0x11,0x2d,0x44,0x50,0x2, 0xa5,0xf, 0xbf, +0x10,0x40,0x4, 0x9f,0x10,0xb, 0x90,0x14,0x78,0xed,0x7f,0x1, 0x6d,0x22,0x7d,0x34, +0x22,0x7d,0x41,0x7d,0x13,0x8d,0x24,0x7d,0x2, 0x2f,0x0, 0x40,0x4, 0xbd,0x4, 0x40, +0x4, 0x9d,0x4, 0xb, 0x14,0x14,0x78,0xf1,0x7d,0x23,0x7d,0x31,0x7d,0x10,0x6d,0x0, +0x22,0xc2,0xd5,0x7c,0xb0,0x30,0xe7,0x8, 0xb2,0xd5,0x9f,0x22,0x9f,0x20,0x7f,0x2, +0x7c,0xb4,0x30,0xe7,0x13,0xb2,0xd5,0x9f,0x22,0x9f,0x21,0x7f,0x12,0x12,0x48,0x40, +0x9f,0x22,0x9f,0x20,0x7f,0x2, 0x80,0x3, 0x12,0x48,0x40,0x30,0xd5,0x6, 0x9f,0x22, +0x9f,0x21,0x7f,0x12,0x22,0x6c,0xaa,0x4d,0x11,0x68,0x1a,0x1e,0x54,0x68,0xe, 0xb, +0x38,0x20,0x1b,0x18,0x20,0xb, 0x35,0xb, 0x15,0x1b,0x54,0x78,0xf2,0x50,0x6, 0x7e, +0x39,0x40,0x7a,0x19,0x40,0x22,0xca,0x79,0x6c,0xee,0x12,0x65,0x79,0x7d,0x43,0x6c, +0xaa,0x6c,0x77,0x7e,0x30,0x6, 0xac,0x37,0x2e,0x14,0x6c,0x2a,0x7e,0x4, 0x0, 0xff, +0xb, 0xa, 0x20,0xbd,0x24,0x48,0x4, 0x7c,0xa7,0x80,0x7, 0xb, 0x70,0xbe,0x70,0x5, +0x40,0xe1,0xbe,0xa0,0x5, 0x78,0x3, 0x2, 0x49,0xb7,0x7e,0x63,0xd, 0xf7,0xbe,0x60, +0x0, 0x38,0x3, 0x2, 0x49,0xb7,0x6c,0x77,0x2, 0x49,0xac,0x6c,0xff,0x6c,0x66,0x80, +0x41,0x7e,0x90,0x30,0xac,0x96,0x7e,0x50,0x2, 0xac,0x57,0x2d,0x24,0x2e,0x27,0xf, +0xda,0xb, 0x28,0x20,0x7e,0x30,0x6, 0xac,0x3a,0x7d,0xf1,0x2e,0xf4,0x6c,0x2c,0x7e, +0xe4,0x0, 0xff,0xb, 0x7a,0x0, 0xbd,0x2, 0x18,0x14,0xb, 0xf0,0x2e,0x14,0x6c,0x2e, +0x7a,0x31,0x82,0x7a,0x21,0x83,0xe4,0x93,0xbc,0xbf,0x28,0xe, 0x80,0x2, 0x6c,0xff, +0xb, 0x60,0x7e,0xb3,0x10,0x2b,0xbc,0xb6,0x38,0xb7,0x7e,0x50,0x6, 0xac,0x5a,0x7d, +0x12,0x2e,0x14,0x6c,0x2e,0x7a,0x31,0x82,0x7a,0x21,0x83,0xe4,0x93,0xbc,0xbf,0x38, +0x17,0xb, 0xe0,0x2e,0x24,0x6c,0x2f,0x7a,0x51,0x82,0x7a,0x41,0x83,0xe4,0x93,0xbc, +0xbe,0x38,0x7, 0x75,0x14,0x40,0x80,0xf, 0x6c,0xee,0xb, 0x70,0x7e,0xb3,0x10,0x2c, +0xbc,0xb7,0x28,0x3, 0x2, 0x49,0x2b,0xe5,0x15,0x25,0x14,0xf5,0x14,0xbe,0xb0,0x0, +0x28,0xb, 0x15,0x14,0xe4,0x7a,0xb3,0xf, 0xd3,0x7a,0xb3,0xf, 0xd2,0xda,0x79,0x22, +0xca,0x3b,0x7e,0x73,0xd, 0xfb,0x7a,0x73,0xd, 0xfc,0x7e,0xa3,0xf, 0x1b,0x7a,0xa3, +0xf, 0x1c,0xe4,0x7a,0xb3,0xf, 0x1f,0x7e,0x37,0x11,0xd, 0x4d,0x33,0x78,0x3f,0xbe, +0xa0,0x0, 0x28,0x8, 0xe4,0x7a,0xb3,0x16,0xae,0x2, 0x4a,0x97,0x7e,0xb3,0x11,0xf, +0x20,0xe0,0x3, 0x2, 0x4a,0x97,0x7e,0xb3,0x11,0x14,0xbe,0xb3,0x16,0xae,0x28,0x3, +0x2, 0x4a,0x97,0xe4,0x7a,0xb3,0x16,0xae,0x7e,0x24,0x0, 0x1, 0x7a,0x27,0x11,0xd, +0x74,0x1, 0x7a,0xb3,0x10,0xa3,0x74,0x1e,0x7a,0xb3,0x11,0x12,0x80,0x69,0xbe,0x34, +0x0, 0x1, 0x78,0x22,0xbe,0xa0,0x0, 0x28,0x5e,0x6d,0x22,0x7a,0x27,0x11,0xd, 0xe4, +0x7a,0xb3,0x10,0xa3,0x7a,0xb3,0x16,0xae,0x74,0x23,0x7a,0xb3,0x16,0xb1,0x74,0x1, +0x7a,0xb3,0x16,0xb0,0x80,0x41,0xbe,0x34,0x0, 0x3, 0x78,0x3b,0x6d,0x66,0x7a,0x67, +0x10,0x1, 0x7e,0x74,0xd, 0xac,0x7a,0x77,0xa, 0xaf,0x12,0x6e,0xda,0x12,0x60,0x30, +0x12,0x58,0x71,0x6d,0x33,0x7a,0x37,0x11,0xd, 0xe4,0x7a,0xb3,0x10,0xa3,0x74,0x1, +0x7a,0xb3,0x16,0xb0,0x7a,0x67,0x10,0x1, 0x7a,0x77,0xa, 0xaf,0x75,0x9a,0x7f,0xa9, +0xd1,0x99,0xd2,0x9c,0xa9,0xd6,0xdf,0x7e,0xb3,0x16,0xb0,0x70,0x6, 0x12,0x5b,0x77, +0x12,0x64,0x32,0xda,0x3b,0x22,0x7d,0x53,0x9f,0x11,0xbe,0x54,0x0, 0x0, 0x40,0x2d, +0xbe,0x54,0x0, 0x3f,0x38,0x27,0x7e,0x24,0x0, 0x3f,0x9d,0x25,0x7e,0x34,0x1, 0x7c, +0xad,0x32,0x6d,0x22,0x7c,0x76,0x7c,0x65,0x1a,0x24,0xbe,0x18,0x0, 0x30,0x48,0x4, +0x7e,0x18,0x0, 0x30,0x7e,0x8, 0x0, 0x30,0x9f,0x1, 0x7f,0x10,0x22,0xbe,0x54,0x5, +0x80,0x40,0x29,0xbe,0x54,0x5, 0xaa,0x38,0x23,0x7d,0x25,0x9e,0x24,0x5, 0x7f,0x7e, +0x34,0x1, 0x7c,0xad,0x32,0x6d,0x22,0x7c,0x76,0x7c,0x65,0x1a,0x24,0xbe,0x18,0x0, +0x30,0x48,0x4, 0x7e,0x18,0x0, 0x2f,0x2e,0x18,0x4, 0xd0,0x22,0xbe,0x54,0x5, 0xaa, +0x28,0x19,0x7d,0x25,0x9e,0x24,0x5, 0x9f,0x7e,0x34,0x1, 0x7c,0xad,0x32,0x6d,0x22, +0x7c,0x76,0x7c,0x65,0x1a,0x24,0x2e,0x18,0x5, 0x0, 0x22,0xbe,0x54,0x2, 0xdf,0x38, +0x8, 0x7e,0x34,0x2, 0xdf,0x9d,0x35,0x80,0x6, 0x7d,0x35,0x9e,0x34,0x2, 0xe0,0x6d, +0x22,0x7e,0x14,0x0, 0xe2,0x12,0x48,0x35,0x7c,0x76,0x7c,0x65,0x1a,0x24,0xbe,0x54, +0x2, 0xdf,0x38,0xa, 0x7e,0x8, 0x2, 0x7f,0x9f,0x1, 0x7f,0x10,0x80,0x4, 0x2e,0x18, +0x2, 0x80,0xbe,0x18,0x0, 0x30,0x58,0x5, 0x7e,0x18,0x0, 0x30,0x22,0xbe,0x18,0x4, +0xd0,0x8, 0x4, 0x7e,0x18,0x4, 0xd0,0x22,0x7e,0x34,0x10,0x7e,0x7e,0x24,0x0, 0x81, +0xe4,0x12,0x6d,0xee,0x74,0xc, 0x7a,0xb3,0x10,0x80,0x7a,0xb3,0x10,0x81,0x74,0x7, +0x7a,0xb3,0x10,0x82,0x74,0xf, 0x7a,0xb3,0x10,0x7e,0x74,0x3c,0x7a,0xb3,0x10,0x7f, +0x74,0xa0,0x7a,0xb3,0x10,0x83,0x74,0x1e,0x7a,0xb3,0x10,0x85,0x74,0x9, 0x7a,0xb3, +0x10,0x86,0x74,0x1e,0x7a,0xb3,0x10,0x87,0xe4,0x7a,0xb3,0x10,0x88,0x7a,0xb3,0x10, +0x89,0xf5,0x52,0xf5,0x51,0x7a,0xb3,0x10,0xa3,0x74,0x1, 0x7a,0xb3,0x10,0x84,0x7a, +0xb3,0x10,0xa2,0x7a,0xb3,0x10,0xa5,0x74,0x2f,0x7a,0xb3,0x10,0xa4,0x74,0xf1,0x7a, +0xb3,0x10,0xa6,0x74,0xb, 0x7a,0xb3,0x10,0xad,0x12,0x6e,0xc7,0xa, 0x36,0x7a,0x73, +0x10,0xa7,0x12,0x6e,0xc7,0x7a,0x73,0x10,0xa8,0x12,0x6e,0xcc,0xa, 0x36,0x7a,0x73, +0x10,0x9f,0x12,0x6e,0xcc,0x7a,0x73,0x10,0xa0,0xe4,0x7a,0xb3,0x10,0xae,0x74,0x1f, +0x7a,0xb3,0x10,0xcf,0xe4,0x7a,0xb3,0x10,0xb0,0x12,0x6e,0x1b,0x7a,0xb3,0x10,0xaf, +0x12,0x6d,0x1c,0x7a,0xb3,0x10,0xa1,0x7e,0x34,0x10,0x8e,0x7e,0x24,0x0, 0x8, 0x74, +0xff,0x12,0x6d,0xee,0x74,0x2f,0x7a,0xb3,0x10,0x8e,0x74,0x1, 0x7a,0xb3,0x10,0x8f, +0x22,0x7d,0xf3,0xbe,0xf4,0x0, 0x0, 0x40,0x2d,0xbe,0xf4,0x0, 0x3f,0x38,0x27,0x7e, +0x44,0x0, 0x3f,0x9d,0x4f,0x7e,0x54,0x1, 0x8b,0xad,0x54,0x6d,0x44,0x7c,0xba,0x7c, +0xa9,0xbe,0x28,0x0, 0x2f,0x40,0x4, 0x7e,0x28,0x0, 0x2f,0x7e,0x18,0x0, 0x2f,0x9f, +0x12,0x7f,0x21,0x2, 0x4c,0xef,0xbe,0xf4,0x3, 0x0, 0x40,0x22,0x7d,0x4f,0x9e,0x44, +0x3, 0x0, 0x7e,0x54,0x1, 0x7c,0xad,0x54,0x6d,0x44,0x7c,0xba,0x7c,0xa9,0xbe,0x28, +0x0, 0x32,0x40,0x4, 0x7e,0x28,0x0, 0x31,0x2e,0x28,0x2, 0x9e,0x80,0x51,0xbe,0xf4, +0x1, 0x9f,0x38,0x8, 0x7e,0x54,0x1, 0x9f,0x9d,0x5f,0x80,0x6, 0x7d,0x5f,0x9e,0x54, +0x1, 0xa0,0x6d,0x44,0x7e,0x14,0x0, 0xe3,0x7f,0x12,0x12,0x48,0x35,0x7f,0x21,0x7c, +0xba,0x7c,0xa9,0xa, 0x48,0xbe,0xf4,0x1, 0x9f,0x38,0xa, 0x7e,0x18,0x1, 0x67,0x9f, +0x12,0x7f,0x21,0x80,0x4, 0x2e,0x28,0x1, 0x68,0xbe,0x28,0x0, 0x2f,0x50,0x6, 0x7e, +0x28,0x0, 0x2f,0x80,0xa, 0xbe,0x28,0x2, 0x9e,0x28,0x4, 0x7e,0x28,0x2, 0x9e,0x2e, +0x28,0x0, 0x8, 0xbe,0x28,0x2, 0xd0,0x40,0x4, 0x7e,0x28,0x2, 0xcf,0x7d,0x35,0x22, +0xca,0x3b,0x6d,0x11,0x7d,0x1, 0x7d,0x21,0x7e,0xa0,0x2, 0x7e,0x70,0x2, 0x6c,0x66, +0x80,0x39,0x6c,0x99,0x80,0x2b,0x7e,0xd0,0x30,0xac,0xd6,0x7e,0xf0,0x2, 0xac,0xf9, +0x7d,0xf7,0x2d,0xf6,0x2e,0xf7,0xf, 0xda,0xb, 0xf8,0xf0,0xbe,0xf4,0x0, 0x14,0x8, +0x4, 0xb, 0x4, 0x80,0x8, 0xbe,0xf4,0xff,0xec,0x58,0x2, 0xb, 0x24,0xb, 0x14,0x2c, +0x97,0x7e,0xb3,0x10,0x2c,0xbc,0xb9,0x38,0xcd,0x2c,0x6a,0x7e,0xb3,0x10,0x2b,0xbc, +0xb6,0x38,0xbf,0x7e,0x54,0x0, 0x3, 0xad,0x51,0x7d,0x35,0x1e,0x34,0x1e,0x34,0xbd, +0x30,0x50,0x1f,0xe4,0x7a,0xb3,0x16,0xb8,0x7e,0xb3,0x16,0xb9,0xbe,0xb0,0x5, 0x50, +0x7, 0x4, 0x7a,0xb3,0x16,0xb9,0x80,0x39,0xe4,0x7a,0xb3,0x16,0xb9,0x75,0x72,0x1, +0x80,0x2f,0xbd,0x32,0x50,0x1f,0xe4,0x7a,0xb3,0x16,0xb9,0x7e,0xb3,0x16,0xb8,0xbe, +0xb0,0x5, 0x50,0x7, 0x4, 0x7a,0xb3,0x16,0xb8,0x80,0x16,0xe4,0x7a,0xb3,0x16,0xb8, +0x75,0x72,0x2, 0x80,0xc, 0xe4,0x7a,0xb3,0x16,0xb8,0x7a,0xb3,0x16,0xb9,0x75,0x72, +0x0, 0xe5,0x72,0xda,0x3b,0x22,0xa9,0xd6,0xcb,0x7c,0xb7,0xf5,0xb9,0xa, 0x56,0xf5, +0xba,0x7e,0x55,0x2d,0xf5,0xbb,0xf5,0xbc,0x7c,0xb1,0xf5,0xbd,0xa, 0x50,0xf5,0xc1, +0x9, 0xb2,0x0, 0x1, 0x44,0xa0,0xf5,0xc3,0x7e,0x29,0xa0,0xe5,0xc4,0x54,0xe0,0x4c, +0xba,0xf5,0xc4,0x75,0xc5,0x40,0x75,0xc5,0x1, 0x49,0x32,0x0, 0x2, 0x7c,0xb7,0xf5, +0xc6,0x75,0xc5,0x2, 0xa, 0x56,0xf5,0xc6,0x75,0xc5,0x3, 0x49,0x32,0x0, 0x4, 0x6e, +0x34,0xff,0xff,0xb, 0x34,0x7d,0x53,0x5e,0x54,0x0, 0xff,0xf5,0xc6,0x75,0xc5,0x4, +0x1a,0x56,0x5e,0x54,0x0, 0xff,0xf5,0xc6,0x75,0xc5,0x5, 0x49,0x2, 0x0, 0x6, 0x7c, +0xb1,0xf5,0xc6,0x75,0xc5,0x6, 0xa, 0x50,0xf5,0xc6,0x43,0xc2,0x9, 0x2, 0x4e,0x37, +0x43,0xc2,0x9, 0x0, 0x0, 0x0, 0x0, 0xa9,0x37,0xc2,0xf5,0x75,0xc2,0x0, 0x75,0xc5, +0xa, 0xe5,0xc6,0x19,0xb1,0x0, 0x2, 0x75,0xc5,0xb, 0xe5,0xc6,0x19,0xb1,0x0, 0x3, +0x75,0xc5,0xc, 0xe5,0xc6,0x7a,0x19,0xb0,0x75,0xc5,0xd, 0xe5,0xc6,0x19,0xb1,0x0, +0x1, 0xa9,0xc6,0xcb,0x22,0xca,0x3b,0x6c,0xff,0x7e,0xb3,0xf, 0xd2,0x60,0x6, 0x7e, +0xb3,0xf, 0xd3,0x70,0x18,0x7e,0x34,0xd, 0x68,0x7e,0x24,0x0, 0x3, 0xe4,0x12,0x6d, +0xee,0x7e,0x34,0xb, 0x79,0x7e,0x24,0x0, 0xd, 0xe4,0x12,0x6d,0xee,0x6c,0xee,0x80, +0x6b,0x74,0x2, 0xac,0xbe,0x9, 0x75,0xd, 0x18,0x7a,0x71,0x21,0x9, 0x65,0xd, 0x19, +0x7a,0x61,0x22,0x7c,0xbe,0xc4,0x23,0x54,0x1f,0x7c,0xdb,0x7c,0xbe,0x54,0x7, 0x7e, +0x24,0x0, 0x1, 0x60,0x5, 0x3e,0x24,0x14,0x78,0xfb,0x7c,0xc5,0x7e,0x50,0x30,0xac, +0x57,0x7e,0x70,0x2, 0xac,0x67,0x2d,0x32,0x2e,0x37,0xf, 0xda,0xb, 0x38,0x30,0xbe, +0x37,0xf, 0x54,0x48,0x25,0xa, 0x3d,0x9, 0xb3,0xd, 0x68,0x5c,0xbc,0x68,0x1b,0x7e, +0x50,0x7, 0xac,0x5e,0x2e,0x24,0xd, 0x6b,0x7e,0x70,0x7, 0xac,0x7f,0x2e,0x34,0xe, +0xd, 0x7e,0x14,0x0, 0x7, 0x12,0x6d,0x4a,0xb, 0xf0,0xb, 0xe0,0x7e,0x73,0xd, 0xf7, +0xbc,0x7e,0x38,0x8d,0x7a,0x73,0xd, 0xfb,0x7a,0xf3,0xf, 0x1b,0xda,0x3b,0x22,0xca, +0xf8,0x7c,0xb, 0x6c,0xaa,0x6d,0xee,0x7d,0xfe,0x6c,0xff,0x2, 0x4f,0xaa,0x7e,0x90, +0x2, 0xac,0x9f,0x7d,0xd4,0x2d,0xd3,0xb, 0xd8,0x40,0x4c,0x11,0x68,0x6, 0x6e,0x44, +0xff,0xff,0xb, 0x44,0xbd,0x24,0x58,0x70,0xbe,0xa0,0xa, 0x50,0x6b,0x4c,0xff,0x78, +0x14,0x49,0xed,0x0, 0x2, 0x4c,0x11,0x68,0x6, 0x6e,0xe4,0xff,0xff,0xb, 0xe4,0xbd, +0xe4,0x18,0x55,0x80,0x1c,0x7c,0xb0,0x14,0xbc,0xbf,0x78,0x20,0x7d,0xfd,0x1b,0xf5, +0xb, 0xf8,0xf0,0x4c,0x11,0x68,0x6, 0x6e,0xf4,0xff,0xff,0xb, 0xf4,0xbd,0xf4,0x18, +0x37,0xa, 0xca,0x2d,0xc1,0x7a,0xc9,0xf0,0xb, 0xa0,0x80,0x2c,0x7d,0xcd,0x1b,0xc5, +0xb, 0xc8,0xf0,0x49,0xed,0x0, 0x2, 0x4c,0x11,0x68,0xc, 0x6e,0xf4,0xff,0xff,0xb, +0xf4,0x6e,0xe4,0xff,0xff,0xb, 0xe4,0xbd,0xf4,0x18,0xd, 0xbd,0xe4,0x18,0x9, 0xa, +0xda,0x2d,0xd1,0x7a,0xd9,0xf0,0xb, 0xa0,0xb, 0xf0,0xbc,0xf, 0x28,0x3, 0x2, 0x4f, +0x1e,0x7c,0xba,0xda,0xf8,0x22,0xca,0x3b,0x6d,0x33,0x7d,0x73,0x75,0x25,0x0, 0x7e, +0x64,0x5, 0xe0,0x75,0x23,0x0, 0x80,0x3c,0x75,0x24,0x0, 0x7e,0x51,0x23,0x74,0x18, +0xac,0x5b,0x3e,0x24,0x7e,0x71,0x24,0x74,0x2, 0xac,0x7b,0x2d,0x32,0x2d,0x36,0x7a, +0x35,0x21,0x49,0x23,0x0, 0x30,0xb, 0x38,0x30,0x9d,0x32,0x12,0x6d,0xde,0xe5,0x24, +0xb4,0x17,0x2, 0x1e,0x34,0xbd,0x37,0x28,0x2, 0x7d,0x73,0x5, 0x24,0xe5,0x24,0xb4, +0x18,0xc9,0x5, 0x23,0xe5,0x25,0xa, 0x2b,0x7e,0x33,0x10,0x7c,0xa, 0x13,0x9d,0x12, +0x1b,0x14,0xe5,0x23,0xa, 0x2b,0xbd,0x21,0x48,0xae,0xbe,0x74,0x0, 0x41,0x28,0x11, +0x7e,0x34,0x0, 0x73,0x7e,0xa3,0x16,0x54,0x74,0x12,0xa4,0x59,0x35,0x16,0x65,0x80, +0x26,0x7e,0x43,0x16,0x54,0x7e,0x50,0x12,0xac,0x45,0x49,0x32,0x16,0x65,0xbd,0x37, +0x50,0x6, 0x59,0x72,0x16,0x65,0x80,0xf, 0xbe,0x34,0x0, 0x0, 0x28,0x9, 0x2e,0x24, +0x16,0x65,0x1b,0x34,0x1b,0x28,0x30,0xda,0x3b,0x22,0xca,0x7b,0xca,0x6b,0xca,0x5b, +0xca,0x4b,0xca,0x2b,0xca,0x1b,0xca,0xb, 0xc0,0xd0,0xc0,0x83,0xc0,0x82,0x12,0x0, +0x46,0x7e,0x35,0x1e,0xb, 0x34,0x7a,0x35,0x1e,0x7e,0xb3,0x0, 0xff,0x4, 0x7a,0xb3, +0x0, 0xff,0x7e,0x35,0x1e,0xbe,0x34,0x3, 0xe8,0x40,0x13,0x6d,0x33,0x7a,0x35,0x1e, +0x7e,0xb3,0x16,0xae,0xbe,0xb0,0x64,0x50,0x5, 0x4, 0x7a,0xb3,0x16,0xae,0x7e,0x73, +0x16,0xb2,0xbe,0x73,0x16,0xb1,0x28,0xb, 0x7e,0xb3,0x16,0xb1,0x4, 0x7a,0xb3,0x16, +0xb1,0x80,0x6, 0x74,0x1, 0x7a,0xb3,0x16,0xb0,0x7e,0xb3,0x16,0xb3,0x60,0x5, 0x14, +0x7a,0xb3,0x16,0xb3,0x7e,0x37,0x10,0x1, 0xb, 0x34,0x7a,0x37,0x10,0x1, 0x7e,0x37, +0xa, 0xaf,0xbe,0x37,0x10,0x1, 0x28,0x3, 0x12,0x6e,0xdd,0xd0,0x82,0xd0,0x83,0xd0, +0xd0,0xda,0xb, 0xda,0x1b,0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda,0x7b,0x32, +0x75,0x84,0x1, 0x7e,0x44,0x4, 0x1f,0xe4,0x7a,0x49,0xb0,0x1b,0x44,0x78,0xf9,0x7e, +0xf8,0x16,0xbc,0x75,0x6a,0x0, 0x75,0x8, 0x1, 0x75,0x9, 0x0, 0x75,0xa, 0x0, 0x75, +0xc, 0x0, 0x75,0xd, 0x0, 0x75,0xe, 0x0, 0x75,0xf, 0x0, 0xc2,0x0, 0x75,0x11,0x0, +0x75,0x12,0x64,0x75,0x13,0x64,0x75,0x14,0x0, 0x75,0x15,0x0, 0x75,0x16,0x0, 0x75, +0x19,0x1, 0x75,0x1e,0x0, 0x75,0x1f,0x0, 0x75,0x72,0x0, 0x75,0x6e,0x0, 0x75,0x73, +0x0, 0x75,0x74,0x1, 0x75,0x70,0x18,0x75,0x71,0x0, 0x75,0x75,0x0, 0x75,0x76,0x0, +0x75,0x6b,0x0, 0x75,0x6c,0xff,0x75,0x6d,0x0, 0x7e,0x4, 0x0, 0xff,0x7e,0x14,0x6e, +0xe4,0xb, 0xa, 0x40,0x5d,0x44,0x68,0x1a,0x69,0x20,0x0, 0x2, 0xb, 0xe, 0xb, 0x44, +0x80,0xa, 0x7e,0xb, 0xb0,0x7a,0x29,0xb0,0xb, 0x24,0xb, 0xc, 0x1b,0x44,0x78,0xf2, +0x80,0xdf,0x2, 0x5b,0xdc,0xca,0xd8,0xca,0x79,0x7c,0xdb,0xbe,0xd0,0x4, 0x78,0xc, +0x7e,0x34,0x10,0x2b,0x12,0x6b,0x25,0xa9,0xc7,0xea,0x80,0x27,0xbe,0xd0,0x5, 0x78, +0x1f,0xa9,0xd7,0xea,0x7e,0xe3,0x10,0x4a,0x7e,0xf3,0x10,0x4d,0xe4,0x7a,0xb3,0x10, +0x4d,0x12,0x66,0x2d,0x7a,0xb3,0x10,0x4a,0x74,0x1, 0x7a,0xb3,0x10,0x78,0x80,0x3, +0xe4,0x80,0x4e,0x7e,0xb3,0x11,0x96,0x7e,0x34,0x10,0x2b,0xb4,0x1, 0xa, 0x12,0x31, +0xbc,0xe4,0x7a,0xb3,0x11,0x96,0x80,0xa, 0x12,0x60,0xdc,0x7e,0x34,0x10,0x2b,0x12, +0x5d,0xcb,0x7e,0x34,0x10,0x2b,0x12,0x6a,0x72,0x7e,0xb3,0x10,0xa5,0xb4,0x3, 0xa, +0x7e,0x73,0x11,0xe8,0x2e,0x70,0xff,0xa9,0x94,0xca,0x12,0x69,0x31,0xbe,0xd0,0x5, +0x78,0xd, 0x7a,0xe3,0x10,0x4a,0x7a,0xf3,0x10,0x4d,0xe4,0x7a,0xb3,0x10,0x78,0x74, +0x1, 0xda,0x79,0xda,0xd8,0x22,0x7e,0x34,0xe, 0xd, 0x7e,0x24,0x0, 0x46,0x74,0xff, +0x12,0x6d,0xee,0x7e,0x34,0xe, 0x53,0x7e,0x24,0x0, 0x46,0x74,0xff,0x12,0x6d,0xee, +0x7e,0x34,0xe, 0x99,0x7e,0x24,0x0, 0x46,0x74,0xff,0x12,0x6d,0xee,0x6c,0xaa,0x74, +0x3, 0xa, 0x4a,0x19,0xb4,0xe, 0xdf,0x19,0xb4,0xe, 0xe9,0x7e,0x44,0xff,0xff,0x7e, +0x70,0x2, 0xac,0x7a,0x59,0x43,0xe, 0xf3,0x7e,0x70,0x2, 0xac,0x7a,0x59,0x43,0xf, +0x7, 0xb, 0xa0,0xbe,0xa0,0xa, 0x40,0xd7,0xe4,0x7a,0xb3,0xf, 0x1b,0x7a,0xb3,0xf, +0x1c,0x7a,0xb3,0xf, 0x1d,0x7a,0xb3,0xf, 0x1f,0x7a,0xb3,0xf, 0x20,0x7a,0xb3,0xf, +0x21,0x7a,0xb3,0xf, 0x22,0x7a,0xb3,0xf, 0x23,0x7a,0xb3,0xf, 0x24,0x7a,0xb3,0xf, +0x25,0x12,0x6a,0xbb,0x74,0x5, 0x7a,0xb3,0xf, 0x26,0x74,0x4, 0x7a,0xb3,0xf, 0x27, +0xe4,0x7a,0xb3,0xf, 0x28,0x22,0xca,0xf8,0x7c,0xab,0x6c,0x33,0x7c,0x27,0x80,0x73, +0x7e,0x90,0x7, 0xac,0x93,0x9, 0xf4,0xe, 0x57,0x7e,0x10,0x7, 0xac,0x12,0x9, 0xb0, +0xe, 0x11,0xbc,0xfb,0x78,0x5b,0xbe,0xf0,0xff,0x68,0x56,0x7e,0x10,0x7, 0xac,0x1a, +0x7d,0xf0,0x2d,0xf2,0x19,0xff,0x0, 0x4, 0x49,0x44,0xe, 0x53,0x2d,0x2, 0x1b,0x8, +0x40,0x7e,0x10,0x7, 0xac,0x13,0x49,0x0, 0xe, 0x55,0x7e,0x90,0x7, 0xac,0x9a,0x2d, +0x42,0x59,0x4, 0x0, 0x2, 0x7e,0x10,0x7, 0xac,0x12,0x9, 0x10,0xe, 0x12,0x7e,0x90, +0x7, 0xac,0x9a,0x2d,0x42,0x19,0x14,0x0, 0x5, 0x7e,0x10,0x7, 0xac,0x12,0x9, 0x10, +0xe, 0x13,0x7e,0x90,0x7, 0xac,0x9a,0x2d,0x42,0x19,0x14,0x0, 0x6, 0xb, 0xa0,0x80, +0x6, 0xb, 0x20,0xbc,0x62,0x38,0x89,0xb, 0x30,0xbe,0x30,0xa, 0x50,0x3, 0x2, 0x52, +0xac,0x7c,0xba,0xda,0xf8,0x22,0x7c,0xab,0xbe,0xa0,0x1, 0x40,0x3b,0xbe,0xa0,0x3e, +0x38,0x36,0xbe,0xa0,0x4, 0x78,0x6, 0x74,0x1, 0x7a,0xb3,0x0, 0x8b,0xbe,0xa0,0x1, +0x68,0xa, 0xbe,0xa0,0x2, 0x68,0x5, 0xbe,0xa0,0x3, 0x78,0x11,0x30,0x0, 0x6, 0x7e, +0x34,0x15,0xca,0x80,0x4, 0x7e,0x34,0x16,0xc, 0x7a,0x37,0x16,0x51,0xa, 0x3a,0x2e, +0x37,0x16,0x51,0x9, 0xb3,0x0, 0x2, 0x22,0x4c,0xaa,0x78,0x3, 0xe5,0xb, 0x22,0xbe, +0xa0,0x80,0x40,0xc, 0xbe,0xa0,0xdf,0x38,0x7, 0xa, 0x3a,0x9, 0xb3,0xf, 0xfe,0x22, +0xbe,0xa0,0xfc,0x78,0x5, 0x7e,0xb3,0x10,0xa5,0x22,0xbe,0xa0,0xfd,0x78,0x8, 0x7e, +0x37,0x10,0x46,0x7e,0x39,0xb0,0x22,0xbe,0xa0,0xfe,0x78,0x5, 0x7e,0xb3,0x10,0x4a, +0x22,0xbe,0xa0,0xf9,0x78,0x5, 0x7e,0xb3,0x16,0xbc,0x22,0xbe,0xa0,0xfa,0x78,0x3, +0xe5,0x6a,0x22,0xe4,0x22,0xca,0x3b,0x7d,0x72,0x7d,0x63,0x7e,0xb3,0x10,0x4d,0xf5, +0x24,0xe4,0x7a,0xb3,0x10,0x4d,0x7e,0x34,0x10,0x2b,0x12,0x31,0xbc,0x7e,0x34,0x10, +0x2b,0x12,0x6a,0x72,0x75,0x21,0x0, 0x12,0x69,0x31,0x12,0x6e,0x86,0x60,0xfb,0xa9, +0xb7,0xea,0x7d,0x36,0x7d,0x27,0x7e,0x14,0x18,0x0, 0x12,0x67,0x82,0x75,0x22,0x0, +0x80,0x36,0x75,0x23,0x0, 0x80,0x26,0x7e,0x51,0x22,0x74,0x18,0xac,0x5b,0xe5,0x23, +0xa, 0x3b,0x2d,0x23,0x3e,0x24,0x7d,0x32,0x2d,0x36,0xb, 0x38,0x10,0xe, 0x14,0xe, +0x14,0x2d,0x27,0xb, 0x28,0x30,0x2d,0x31,0x1b,0x28,0x30,0x5, 0x23,0x7e,0x73,0x10, +0x2c,0xbe,0x71,0x23,0x38,0xd1,0x5, 0x22,0x7e,0x73,0x10,0x2b,0xbe,0x71,0x22,0x38, +0xc1,0x5, 0x21,0xe5,0x21,0xbe,0xb0,0x4, 0x40,0x9d,0xe5,0x24,0x7a,0xb3,0x10,0x4d, +0xda,0x3b,0x22,0xca,0xf8,0x30,0x90,0x58,0xc2,0x90,0x5, 0xa, 0xe5,0xa, 0xb4,0x1, +0x6, 0xe5,0x91,0xf5,0xf, 0x80,0x29,0xe5,0xb, 0xc4,0x7c,0xfb,0x5e,0xf0,0x7, 0x78, +0xe, 0xe5,0xa, 0x25,0xf, 0x24,0xfe,0x7e,0x71,0x91,0x12,0x56,0x7b,0x80,0x11,0xbe, +0xf0,0x4, 0x78,0xc, 0xe5,0xa, 0x25,0xf, 0x24,0xfe,0x7e,0x71,0x91,0x12,0x15,0xe2, +0xe5,0xb, 0xc4,0x7c,0x5b,0x5e,0x50,0x7, 0xa5,0xbd,0x0, 0x9, 0xe5,0xf, 0x12,0x53, +0x36,0xf5,0x91,0x80,0xb, 0xa5,0xbd,0x4, 0x7, 0xe5,0xf, 0x12,0x27,0x2e,0xf5,0x91, +0x30,0x91,0x28,0xc2,0x91,0x5, 0x9, 0xe5,0xb, 0xc4,0x7c,0x5b,0x5e,0x50,0x7, 0xa5, +0xbd,0x0, 0xb, 0xe5,0x9, 0x25,0xf, 0x12,0x53,0x36,0xf5,0x91,0x80,0xd, 0xa5,0xbd, +0x4, 0x9, 0xe5,0x9, 0x25,0xf, 0x12,0x27,0x2e,0xf5,0x91,0xda,0xf8,0x22,0x6c,0x33, +0xbe,0x30,0x18,0x50,0x1e,0xa, 0x3, 0x2e,0x7, 0x10,0x35,0x7e,0x9, 0xa0,0x7c,0xba, +0x30,0xe0,0xc, 0xa, 0x5a,0x2e,0x54,0x0, 0x18,0xe, 0x54,0x7c,0xab,0x80,0x16,0x1e, +0xa0,0x80,0x12,0xa, 0x3, 0x2e,0x7, 0x10,0x33,0x9, 0x20,0xff,0xe8,0xa, 0x52,0x2e, +0x54,0x0, 0x18,0x7c,0xab,0x7e,0x23,0x10,0x3a,0xbe,0x20,0x3, 0x28,0xe, 0x7e,0x10, +0x2, 0xac,0x1a,0x2d,0x2, 0xb, 0x8, 0x0, 0x1e,0x4, 0x80,0x21,0xa, 0x42,0x2e,0x44, +0x0, 0xc, 0x7e,0x4, 0x0, 0xf, 0x9d,0x4, 0x7c,0x21,0x7e,0x10,0x2, 0xac,0x1a,0x2d, +0x2, 0xb, 0x8, 0x0, 0x7c,0xb2,0x60,0x5, 0x3e,0x4, 0x14,0x78,0xfb,0x7e,0x44,0x7f, +0xff,0x9d,0x40,0x7e,0x10,0x2, 0xac,0x13,0x2d,0x3, 0x1b,0x8, 0x40,0xb, 0x30,0xbe, +0x30,0x25,0x50,0x3, 0x2, 0x54,0xe0,0x22,0x6c,0xaa,0x7e,0x50,0x2, 0xac,0x5a,0x7d, +0x32,0x2e,0x37,0xf, 0xd6,0xb, 0x38,0x10,0xbe,0x17,0xe, 0x7, 0x8, 0x12,0x7d,0x2, +0x2e,0x7, 0xf, 0xd4,0xb, 0x8, 0x30,0x2e,0x37,0xe, 0x7, 0x1b,0x8, 0x30,0x80,0x18, +0x6d,0x33,0x9e,0x37,0xe, 0x7, 0xbd,0x13,0x58,0xe, 0x2e,0x27,0xf, 0xd4,0xb, 0x28, +0x30,0x9e,0x37,0xe, 0x7, 0x1b,0x28,0x30,0xb, 0xa0,0xbe,0xa0,0x25,0x78,0xbb,0x6c, +0xaa,0x7e,0x50,0x2, 0xac,0x5a,0x49,0x12,0x9, 0x2e,0xbe,0x17,0xe, 0x7, 0x8, 0x12, +0x7d,0x2, 0x2e,0x4, 0x8, 0xe4,0xb, 0x8, 0x30,0x2e,0x37,0xe, 0x7, 0x1b,0x8, 0x30, +0x80,0x18,0x6d,0x33,0x9e,0x37,0xe, 0x7, 0xbd,0x13,0x58,0xe, 0x2e,0x24,0x8, 0xe4, +0xb, 0x28,0x30,0x9e,0x37,0xe, 0x7, 0x1b,0x28,0x30,0xb, 0xa0,0xbe,0xa0,0x25,0x40, +0xc0,0x22,0xca,0x69,0xca,0xf8,0x6c,0x11,0x7e,0xd0,0x7, 0xac,0xd1,0x9, 0x6, 0xe, +0x9d,0x5e,0x0, 0xf, 0x49,0xf6,0xe, 0x9b,0xbe,0xf4,0x5, 0xa, 0x40,0x3c,0x49,0x46, +0xe, 0x99,0x7d,0x34,0x12,0x6b,0xab,0x7c,0xfb,0xbe,0xf0,0x3, 0x40,0xe, 0x7e,0x14, +0x4, 0xff,0x74,0x7, 0xac,0xb1,0x59,0x15,0xe, 0x9b,0x80,0x3e,0x74,0x2, 0xac,0xbf, +0x49,0x45,0x0, 0xf8,0x74,0x7, 0xac,0xb1,0x59,0x45,0xe, 0x99,0x7e,0x14,0x7, 0xd0, +0x74,0x7, 0xac,0xb1,0x59,0x15,0xe, 0x9b,0x80,0x25,0xbe,0xf4,0x5, 0x0, 0x40,0x1f, +0x7e,0x14,0x4, 0xff,0x74,0x7, 0xac,0xb1,0x59,0x15,0xe, 0x9b,0x74,0x7, 0xac,0xb1, +0x49,0x15,0xe, 0x9b,0xbe,0x14,0x5, 0xa, 0x40,0x5, 0x7c,0xb0,0x12,0x68,0x4b,0xb, +0x10,0xbe,0x10,0xa, 0x40,0x82,0xda,0xf8,0xda,0x69,0x22,0xca,0x79,0x70,0x41,0x7e, +0x74,0x0, 0xb, 0x7a,0x79,0x70,0x7c,0xb7,0x54,0x70,0xc4,0x54,0xf, 0x7c,0x7b,0xa5, +0xbf,0x4, 0x15,0x7e,0xb3,0x10,0xa5,0xb4,0x3, 0x7, 0x74,0x1, 0x7e,0x70,0x3, 0x80, +0x13,0x74,0x27,0x7e,0x70,0x3, 0x80,0x4b,0x7e,0xb3,0x10,0xa5,0xb4,0x3, 0xa, 0x74, +0x1, 0x7e,0x70,0x1, 0x12,0x0, 0x5e,0x80,0x45,0x74,0x27,0x7e,0x70,0x1, 0x80,0x33, +0xbe,0xb0,0xfc,0x68,0x3, 0xb4,0x3c,0x1f,0xa5,0xbf,0xaa,0x5, 0x7e,0x60,0x5, 0x80, +0x10,0xa5,0xbf,0x55,0x5, 0x7e,0x60,0x6, 0x80,0x7, 0xa5,0xbf,0x66,0x20,0x7e,0x60, +0x7, 0x74,0x27,0x7c,0x76,0x80,0xc, 0xbe,0xb0,0x80,0x40,0xc, 0xbe,0xb0,0xdf,0x38, +0x7, 0x24,0x80,0x12,0x6d,0xad,0x80,0x6, 0xb4,0xfe,0x3, 0x7a,0x71,0xc, 0xda,0x79, +0x22,0x6c,0x77,0x6c,0xaa,0x80,0x3c,0x7e,0x50,0x18,0xac,0x5a,0x3e,0x24,0x2e,0x27, +0xf, 0xda,0x2e,0x24,0x0, 0x30,0x7d,0x12,0x1b,0x16,0xb, 0x18,0x40,0xbe,0x44,0x0, +0x3c,0x8, 0x1e,0x7e,0x14,0x0, 0x1, 0x7c,0xba,0x60,0x5, 0x3e,0x14,0x14,0x78,0xfb, +0x5e,0x14,0x4, 0x44,0x68,0xb, 0x1b,0x25,0xb, 0x28,0x20,0xbd,0x42,0x8, 0x2, 0xb, +0x70,0xb, 0xa0,0x7e,0x63,0x10,0x2b,0xbc,0x6a,0x38,0xbc,0xbe,0x70,0x1, 0x40,0x30, +0x6c,0xaa,0x80,0x24,0x7e,0x50,0x18,0xac,0x5a,0x3e,0x24,0x2e,0x27,0xf, 0xda,0x2e, +0x24,0x0, 0x30,0x1b,0x25,0xb, 0x28,0x30,0x7e,0x30,0x2, 0xac,0x3a,0x59,0x31,0x0, +0xd2,0x6d,0x33,0x1b,0x28,0x30,0xb, 0xa0,0x7e,0xb3,0x10,0x2b,0xbc,0xba,0x38,0xd4, +0x22,0xca,0x79,0x6c,0xff,0x6c,0xee,0x80,0x63,0x7c,0xbe,0xc4,0x23,0x54,0x1f,0x7c, +0xab,0x7c,0xbe,0x54,0x7, 0x7e,0x34,0x0, 0x1, 0x60,0x5, 0x3e,0x34,0x14,0x78,0xfb, +0xa, 0x2a,0x9, 0xb2,0xd, 0x68,0x5c,0xb7,0x68,0x40,0x7e,0x50,0x2, 0xac,0x5e,0x2e, +0x24,0xd, 0x18,0x7e,0x70,0x2, 0xac,0x7f,0x2e,0x34,0xd, 0x18,0x7e,0x14,0x0, 0x2, +0x12,0x6d,0x4a,0x7c,0xbf,0xc4,0x23,0x54,0x1f,0x7c,0xab,0x7c,0xbf,0x54,0x7, 0x7e, +0x34,0x0, 0x1, 0x60,0x5, 0x3e,0x34,0x14,0x78,0xfb,0xa, 0x4a,0x2e,0x44,0xd, 0x68, +0x7e,0x49,0xb0,0x4c,0xb7,0x7a,0x49,0xb0,0xb, 0xf0,0xb, 0xe0,0x7e,0x63,0xd, 0xf7, +0xbc,0x6e,0x38,0x95,0x7a,0xf3,0xd, 0xf7,0xda,0x79,0x22,0x6d,0x33,0x7a,0x37,0x10, +0x1, 0x7e,0x34,0xd, 0xac,0x7a,0x37,0xa, 0xaf,0x12,0x6e,0xdd,0x7e,0xb3,0x10,0xa5, +0x24,0xfa,0x68,0x17,0x14,0x68,0x44,0xb, 0xb1,0x78,0x55,0x7e,0xb3,0x0, 0xfe,0xbe, +0xb0,0x5, 0x68,0x4c,0x74,0x5, 0x7a,0xb3,0x0, 0xfe,0x22,0x7e,0xb3,0x0, 0xfe,0xb4, +0x5, 0x3e,0x74,0x6, 0x7a,0xb3,0x0, 0xfe,0x74,0xfa,0x12,0x6d,0x33,0x75,0x9a,0x80, +0x7e,0x34,0x77,0xf8,0x12,0x69,0xaf,0x7e,0x34,0x77,0xf8,0x74,0x66,0x12,0x59,0xc5, +0x7e,0x34,0x77,0xf9,0x74,0xbb,0x12,0x59,0xc5,0x80,0x12,0x7e,0xb3,0x0, 0xfe,0xb4, +0x5, 0xe, 0x74,0x7, 0x7a,0xb3,0x0, 0xfe,0x74,0xfa,0x12,0x6d,0x33,0x75,0xe9,0xff, +0x22,0x0, 0x0, 0x0, 0x0, 0xd2,0xcd,0xa9,0xd1,0xc9,0x7e,0xb3,0x16,0xac,0xb4,0x1, +0x14,0x7e,0x73,0x16,0xaf,0xa, 0x27,0x7e,0x34,0x1d,0x8, 0x1b,0x38,0x20,0xe4,0x7a, +0xb3,0x16,0xac,0x80,0xb, 0x7e,0x24,0x0, 0x2, 0x7e,0x34,0x1d,0x8, 0x1b,0x38,0x20, +0xa9,0xd0,0xca,0xc2,0xa8,0xc2,0x95,0x74,0x2, 0x7a,0xb3,0x16,0xb3,0x7e,0xb3,0x16, +0xb3,0x70,0xfa,0x12,0x6e,0x7d,0x12,0x61,0x32,0x12,0x6b,0xcc,0x6d,0x33,0x7a,0x37, +0x10,0x1, 0x7e,0x34,0xd, 0xac,0x7a,0x37,0xa, 0xaf,0x12,0x6e,0xdd,0x12,0x6a,0x26, +0x12,0x6a,0x4c,0x12,0x52,0x16,0x74,0x1, 0x7a,0xb3,0x10,0x3c,0x7a,0xb3,0x10,0x4d, +0x2, 0x6e,0xc1,0xca,0x3b,0x7d,0x72,0x7d,0x63,0xe5,0x55,0xbe,0xb0,0x1, 0x68,0xf9, +0x7d,0x36,0x7e,0x24,0x0, 0x4a,0xe4,0x12,0x6d,0xee,0x7d,0x37,0x7e,0x24,0x0, 0x4a, +0xe4,0x12,0x6d,0xee,0x75,0x21,0x1, 0x12,0x6b,0xec,0xe5,0x55,0xbe,0xb0,0x1, 0x68, +0xf9,0x75,0x22,0x0, 0x7e,0x51,0x22,0x74,0x2, 0xac,0x5b,0x49,0x2, 0xa, 0x62,0x1e, +0x4, 0x1e,0x4, 0x7d,0x12,0x2d,0x16,0xb, 0x18,0x30,0x2d,0x30,0x1b,0x18,0x30,0x49, +0x12,0xa, 0x18,0x1e,0x14,0x1e,0x14,0x2d,0x27,0xb, 0x28,0x30,0x2d,0x31,0x1b,0x28, +0x30,0x5, 0x22,0xe5,0x22,0xb4,0x25,0xcc,0x5, 0x21,0xe5,0x21,0xbe,0xb0,0x5, 0x40, +0xb6,0xda,0x3b,0x22,0x6c,0x77,0x7e,0x63,0xd, 0xfa,0xa, 0x16,0x7e,0x63,0xd, 0xf9, +0xa, 0x26,0x2d,0x21,0xbe,0x24,0x0, 0xa0,0x28,0x3, 0x74,0x1, 0x22,0x6c,0xaa,0x80, +0x1c,0x7e,0x50,0x2, 0xac,0x5a,0x49,0x22,0x8, 0x9a,0xbe,0x24,0x5, 0xdc,0x8, 0x9, +0xb, 0x70,0xbe,0x70,0x10,0x68,0xe, 0x80,0x2, 0x6c,0x77,0xb, 0xa0,0x7e,0x63,0x10, +0x2c,0xbc,0x6a,0x38,0xdc,0xa5,0xbf,0x10,0x2a,0x6c,0x77,0x6c,0xaa,0x80,0x1c,0x7e, +0x50,0x2, 0xac,0x5a,0x49,0x22,0x8, 0xca,0xbe,0x24,0x9, 0xc4,0x8, 0x9, 0xb, 0x70, +0xa5,0xbf,0x8, 0x5, 0x74,0x1, 0x22,0x6c,0x77,0xb, 0xa0,0x7e,0x63,0x10,0x2b,0xbc, +0x6a,0x38,0xdc,0xe4,0x22,0x7c,0xab,0xc2,0xaf,0xd2,0xc9,0xa9,0xd5,0xcb,0x75,0xfb, +0xa5,0x75,0xfb,0xf, 0x75,0xfb,0x6a,0xbe,0x34,0x73,0xf8,0x68,0x18,0xbe,0x34,0x73, +0xf9,0x68,0x12,0xbe,0x34,0x74,0x0, 0x50,0xc, 0x75,0xfb,0x0, 0xd2,0xaf,0xc2,0xc9, +0xa9,0xc5,0xcb,0xe4,0x22,0xa, 0x26,0x7c,0xb5,0xf5,0xf1,0x7c,0xb7,0x54,0xfe,0xf5, +0xf2,0x75,0xf3,0x80,0x75,0xf4,0x0, 0x5e,0x34,0x0, 0x1, 0x68,0x8, 0x75,0xf6,0xff, +0x7a,0xa1,0xf6,0x80,0x6, 0x7a,0xa1,0xf6,0x75,0xf6,0xff,0x75,0xf5,0x80,0x74,0x1, +0x12,0x6d,0x33,0xa9,0x36,0xf5,0xfc,0x75,0xfb,0x0, 0xd2,0xaf,0xc2,0xc9,0xa9,0xc5, +0xcb,0x74,0x1, 0x22,0x74,0xa, 0x7a,0xb3,0xf, 0x46,0x74,0x14,0x7a,0xb3,0xf, 0x47, +0x7e,0x34,0x3, 0x20,0x7a,0x37,0xf, 0x48,0x7a,0x37,0xf, 0x4a,0x7e,0x24,0x1, 0xf4, +0x7a,0x27,0xf, 0x4c,0x7a,0x37,0xf, 0x4e,0x7a,0x37,0xf, 0x50,0x74,0xc, 0x7a,0xb3, +0xf, 0x52,0x74,0x8, 0x7a,0xb3,0xf, 0x53,0x7e,0x34,0x0, 0x3c,0x7a,0x37,0xf, 0x54, +0x7a,0x37,0xf, 0x56,0x7a,0x37,0xf, 0x58,0x7e,0x34,0x0, 0x28,0x7a,0x37,0xf, 0x5a, +0x74,0xf, 0x7a,0xb3,0xf, 0x5c,0xe4,0x7a,0xb3,0xf, 0x5f,0x74,0x4, 0x7a,0xb3,0xf, +0x60,0x7e,0x34,0x0, 0x64,0x7a,0x37,0xf, 0x61,0x7e,0x34,0xa, 0x0, 0x7a,0x37,0xf, +0x5d,0x22,0xca,0x3b,0x7d,0x72,0x7d,0x63,0x7e,0xb3,0x10,0x3c,0xf5,0x1d,0xe4,0x7a, +0xb3,0x10,0x3c,0x7d,0x36,0x7d,0x27,0x12,0x6a,0x97,0x7e,0x34,0x10,0x2b,0x12,0x5b, +0x10,0x75,0x1b,0x0, 0x7e,0x34,0x10,0x2b,0x12,0x64,0xb9,0x12,0x6e,0x8f,0x60,0xfb, +0x7d,0x36,0x7e,0x25,0x70,0x12,0x54,0xde,0x75,0x1c,0x0, 0x7e,0x51,0x1c,0x74,0x2, +0xac,0x5b,0x7d,0x32,0x2d,0x36,0xb, 0x38,0x10,0xe, 0x14,0xe, 0x14,0x2d,0x27,0xb, +0x28,0x30,0x2d,0x31,0x1b,0x28,0x30,0x5, 0x1c,0xe5,0x1c,0xb4,0x25,0xdd,0x5, 0x1b, +0xe5,0x1b,0xbe,0xb0,0x4, 0x40,0xbd,0xe5,0x1d,0x7a,0xb3,0x10,0x3c,0xda,0x3b,0x22, +0x7d,0x3, 0x75,0xcc,0x18,0x75,0xcd,0x7, 0x9, 0xa0,0x0, 0x2, 0x3e,0xa0,0xe5,0xca, +0x54,0x1, 0x4c,0xba,0xf5,0xca,0xa9,0xd0,0xca,0xa9,0xd3,0xe1,0xa9,0xd1,0xe1,0x9, +0x70,0x0, 0xe, 0x2e,0x70,0xff,0xa9,0x94,0xe1,0x9, 0xa0,0x0, 0xf, 0x7c,0xba,0xc4, +0x33,0x54,0xe0,0x7c,0xab,0xe5,0xe3,0x54,0x1f,0x4c,0xba,0xf5,0xe3,0x9, 0xb0,0x0, +0x13,0x54,0x3, 0xa, 0x5b,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x7c,0xab,0xe5,0xe3,0x54, +0xe7,0x4c,0xba,0xf5,0xe3,0xa9,0xc1,0xe3,0xa9,0xc0,0xe3,0x7d,0x30,0x12,0x5d,0x9, +0x9, 0xb0,0x0, 0x14,0xf5,0xe7,0x22,0x7e,0xb3,0x16,0xac,0x70,0x17,0xe5,0xcc,0x7a, +0xb3,0x16,0xad,0x7e,0x34,0x1d,0x8, 0xb, 0x38,0x30,0x7a,0x73,0x16,0xaf,0x74,0x1, +0x7a,0xb3,0x16,0xac,0xc2,0xc9,0xa9,0xc6,0xcb,0xa9,0xc5,0xcb,0xc2,0xcc,0xc2,0xca, +0xc2,0xc8,0xa9,0xc4,0xcb,0x80,0x2e,0xe5,0x55,0xbe,0xb0,0x1, 0x68,0x23,0xe5,0x75, +0xb4,0x1, 0x1e,0xe5,0x76,0xb4,0x1, 0x19,0xa9,0xc3,0xcb,0x7e,0x24,0x0, 0x1, 0x7e, +0x34,0x1d,0x8, 0x1b,0x38,0x20,0xa9,0xc7,0xcb,0xa9,0xc1,0xc9,0xa9,0xc3,0xc9,0xc2, +0xcd,0xe4,0x12,0x6d,0x77,0x7e,0xb3,0x16,0xb0,0x60,0xcc,0x22,0x6d,0x33,0x7a,0x37, +0x10,0x1, 0x7e,0x34,0xd, 0xac,0x7a,0x37,0xa, 0xaf,0x12,0x6e,0xda,0x12,0x6e,0x7d, +0x12,0x61,0x32,0x12,0x6e,0xe3,0x12,0x6d,0x89,0x74,0x1, 0x7a,0xb3,0x10,0xa5,0x12, +0x6b,0xcc,0x12,0x6a,0x26,0x74,0x1, 0x7a,0xb3,0x10,0x3c,0x7a,0xb3,0x10,0x4d,0x12, +0x6e,0xc1,0x7e,0xb3,0x10,0xa5,0x24,0xfd,0x68,0x12,0x14,0x68,0x14,0x14,0x68,0x16, +0x14,0x68,0x13,0x24,0x5, 0x78,0xeb,0x12,0x41,0x6b,0x80,0xe6,0x12,0x5e,0x7e,0x80, +0xe1,0x12,0x69,0xff,0x80,0xdc,0x6d,0x33,0x7a,0x37,0x10,0x1, 0x12,0x57,0xfb,0x80, +0xd1,0x7c,0xa5,0x7c,0x5b,0xa9,0xd6,0xcb,0x7c,0xb7,0xf5,0xb9,0xa, 0x36,0x7c,0xb7, +0xf5,0xba,0x7c,0xb5,0xc4,0x33,0x54,0xe0,0x4c,0xba,0xf5,0xbb,0x7c,0xb2,0x1e,0xb0, +0x1e,0xb0,0x54,0xf, 0xa, 0x4b,0x3e,0x44,0x3e,0x44,0x3e,0x44,0x3e,0x44,0x1e,0x50, +0x1e,0x50,0x1e,0x50,0xa, 0x55,0x4d,0x54,0xf5,0xbc,0x7c,0xb1,0xf5,0xbd,0xa, 0x50, +0xf5,0xc1,0x7c,0xb3,0x44,0xa0,0xf5,0xc3,0x7a,0x41,0xc4,0x75,0xc5,0xc0,0x43,0xc2, +0x7, 0x80,0x7, 0x43,0xc2,0x7, 0x0, 0x0, 0x0, 0x0, 0xa9,0x37,0xc2,0xf5,0x75,0xc2, +0x0, 0xa9,0xc6,0xcb,0x22,0x7c,0xab,0x6c,0x33,0x6d,0x44,0x7e,0x10,0x2, 0xac,0x13, +0x2e,0x4, 0x1c,0x3a,0x1b,0x8, 0x40,0xb, 0x30,0xa5,0xbb,0xc, 0xec,0x6c,0x33,0x80, +0x43,0xa, 0x3, 0x2d,0x2, 0x7e,0x9, 0x20,0x7c,0xb2,0xa, 0x3, 0x20,0xe0,0xb, 0x2d, +0x3, 0x7e,0x9, 0xb0,0x54,0x1f,0xa, 0xfb,0x80,0x13,0x2d,0x3, 0x7e,0x9, 0xb0,0x54, +0x1f,0xa, 0xfb,0x3e,0xf4,0x3e,0xf4,0x3e,0xf4,0x3e,0xf4,0x3e,0xf4,0x7c,0xb2,0x1e, +0xb0,0x7e,0x90,0x2, 0xac,0x9b,0x2e,0x44,0x1c,0x3a,0xb, 0x48,0x0, 0x4d,0xf, 0x1b, +0x48,0x0, 0xb, 0x30,0xbc,0xa3,0x38,0xb9,0x22,0x7d,0x23,0x75,0xe4,0x1, 0x9, 0xb2, +0x0, 0xc, 0x54,0x7f,0xf5,0xe5,0x75,0xe4,0x2, 0x9, 0xb2,0x0, 0xd, 0x54,0x7f,0xf5, +0xe5,0x75,0xe4,0x7, 0x9, 0xb2,0x0, 0x15,0x54,0x7f,0xf5,0xe5,0x75,0xe4,0xb, 0x6c, +0xaa,0xa, 0x1a,0x49,0x32,0x0, 0x1d,0x2d,0x31,0x7e,0x39,0xb0,0xf5,0xe5,0xb, 0xa0, +0xbe,0xa0,0x25,0x40,0xec,0x75,0xe4,0x30,0x49,0x32,0x0, 0x1b,0x7e,0x39,0xb0,0xf5, +0xe5,0x75,0xe4,0x31,0x49,0x32,0x0, 0x19,0x7d,0x53,0x5e,0x54,0x0, 0xff,0xf5,0xe5, +0x75,0xe4,0x32,0x5e,0x34,0xff,0x0, 0xa, 0x56,0xf5,0xe5,0x22,0xca,0x79,0x7e,0x71, +0x54,0x3e,0x70,0x3e,0x70,0x7c,0xb7,0x24,0x56,0xa, 0x2b,0xb, 0x28,0x50,0x7c,0xab, +0x7c,0xb7,0x24,0x58,0xa, 0x3b,0xb, 0x38,0x70,0x4d,0x77,0x68,0x1f,0xbe,0xa0,0x1, +0x68,0xa, 0xbe,0xa0,0x2, 0x68,0x5, 0xbe,0xa0,0x3, 0x78,0x10,0x7e,0x34,0x10,0x2b, +0x12,0x6b,0x25,0x7d,0x37,0x7e,0x24,0x18,0x0, 0x12,0x54,0xde,0x5, 0x54,0xe5,0x53, +0xbe,0xb1,0x54,0x28,0x10,0x12,0x62,0x79,0xb4,0x1, 0x5, 0x75,0x55,0x1, 0x80,0x8, +0x75,0x55,0x3, 0x80,0x3, 0x75,0x55,0x2, 0xda,0x79,0x22,0x6d,0x11,0x7e,0x24,0x1c, +0x1c,0x1b,0x28,0x10,0x6c,0x55,0x9, 0xb3,0x0, 0x4d,0xb4,0x1, 0x6, 0x9, 0xa3,0x0, +0x50,0x80,0x2, 0x7c,0xa5,0xa, 0x4a,0x49,0x13,0x0, 0x8, 0x2d,0x14,0x7e,0x19,0x40, +0xa, 0x14,0x7e,0x4, 0x1c,0x24,0x1b,0x8, 0x10,0x9, 0x43,0x0, 0x1f,0xa, 0x14,0x1b, +0x8, 0x10,0x49,0x13,0x0, 0x41,0x2d,0x14,0x7e,0x19,0x40,0xa, 0x14,0x1b,0x8, 0x10, +0x49,0x13,0x0, 0x43,0x2d,0x14,0x7e,0x19,0x40,0xa, 0x14,0x1b,0x8, 0x10,0xb, 0x50, +0xbe,0x50,0xd, 0x40,0xb1,0x22,0x75,0x9, 0x0, 0xe5,0xb, 0xc4,0x7c,0x5b,0x5e,0x50, +0x7, 0xa5,0xbd,0x0, 0x9, 0xe5,0xf, 0x12,0x53,0x36,0xf5,0x91,0x80,0xb, 0xa5,0xbd, +0x4, 0x7, 0xe5,0xf, 0x12,0x27,0x2e,0xf5,0x91,0x75,0xa, 0x0, 0xe4,0x7a,0xb3,0x16, +0x4e,0x7e,0x34,0x15,0xca,0x7e,0x24,0x0, 0x42,0x74,0xff,0x12,0x6d,0xee,0x7e,0x34, +0x16,0xc, 0x7e,0x24,0x0, 0x42,0x74,0xff,0x12,0x6d,0xee,0x74,0xaa,0x7a,0xb3,0x15, +0xca,0x7a,0xb3,0x15,0xcb,0x7a,0xb3,0x16,0xc, 0x7a,0xb3,0x16,0xd, 0x22,0xca,0xf8, +0x74,0x3, 0x7a,0xb3,0x16,0xa3,0xe4,0x7a,0xb3,0x10,0x3c,0x7a,0xb3,0x10,0x4d,0x74, +0x3, 0x7a,0xb3,0x16,0xa3,0x6d,0x33,0x7a,0x37,0x10,0x1, 0x7e,0x34,0xd, 0xac,0x7a, +0x37,0xa, 0xaf,0x7e,0xf3,0x16,0xa3,0xbe,0xf0,0x3, 0x78,0x1d,0xe5,0xb, 0x30,0xe7, +0xe4,0x12,0x6b,0x2, 0x7e,0x37,0xf, 0xd6,0x7a,0x37,0x16,0xa0,0x7e,0x37,0xf, 0xda, +0x7a,0x37,0x16,0x9e,0x53,0xb, 0x7f,0x80,0xcc,0x7a,0xf3,0x10,0xa5,0x12,0x0, 0x1e, +0x12,0x0, 0x6a,0xda,0xf8,0x22,0x7c,0xab,0xa9,0xd6,0xcb,0x7c,0xb7,0xf5,0xb9,0xa, +0x36,0x7c,0xb7,0xf5,0xba,0x7c,0xb5,0xf5,0xbb,0xa, 0x34,0x7c,0xb7,0xf5,0xbc,0x7c, +0xb3,0xf5,0xbd,0xa, 0x12,0x7c,0xb3,0xf5,0xc1,0x7c,0xba,0x44,0xa0,0xf5,0xc3,0xe5, +0xc4,0x54,0xe0,0x4c,0xb1,0xf5,0xc4,0x75,0xc5,0xc0,0xa, 0x30,0x7d,0x23,0x4e,0x24, +0x0, 0x1, 0x7c,0x15,0x7c,0xb1,0x42,0xc2,0x80,0x8, 0x7c,0xb1,0x42,0xc2,0x0, 0x0, +0x0, 0x0, 0xa9,0x37,0xc2,0xf4,0x75,0xc2,0x0, 0xa9,0xc6,0xcb,0x22,0x6c,0xaa,0x6c, +0x77,0x7e,0x10,0x30,0xac,0x1a,0x7e,0x30,0x2, 0xac,0x37,0x2d,0x10,0x7d,0x1, 0x2e, +0x7, 0xf, 0xda,0xb, 0x8, 0x20,0xbe,0x27,0xe, 0x5, 0x8, 0x12,0x7d,0x41,0x2e,0x47, +0xf, 0xd8,0xb, 0x48,0x0, 0x2e,0x7, 0xe, 0x5, 0x1b,0x48,0x0, 0x80,0x18,0x6d,0x0, +0x9e,0x7, 0xe, 0x5, 0xbd,0x20,0x58,0xe, 0x2e,0x17,0xf, 0xd8,0xb, 0x18,0x20,0x9e, +0x27,0xe, 0x5, 0x1b,0x18,0x20,0xb, 0x70,0xa5,0xbf,0x18,0xb5,0xb, 0xa0,0xbe,0xa0, +0xd, 0x40,0xac,0x22,0xca,0x3b,0x7c,0xc5,0x7c,0xdb,0x7d,0x73,0x7a,0xd, 0x31,0x7e, +0x79,0x50,0xa5,0xbd,0x0, 0xb, 0x7e,0xd, 0x31,0x7e,0xb, 0x40,0x7a,0x79,0x40,0x80, +0x36,0x7e,0xd, 0x31,0x7e,0xb, 0x40,0xa, 0x34,0xa, 0x25,0x9d,0x32,0x12,0x6d,0xde, +0xa, 0x2c,0xbd,0x32,0x8, 0x18,0x7e,0x1d,0x31,0x7e,0x1b,0xb0,0x7e,0x79,0xa0,0xbc, +0xba,0x7c,0xba,0x28,0x4, 0x2c,0xbd,0x80,0x2, 0x9c,0xbd,0x7a,0x79,0xb0,0x7e,0x79, +0x30,0x7e,0x1d,0x31,0x7a,0x1b,0x30,0xda,0x3b,0x22,0x7e,0xb3,0x10,0x39,0xb4,0x1, +0x26,0x7e,0x73,0xa, 0xac,0x7a,0x73,0x10,0x37,0x7e,0x73,0xa, 0xad,0x7a,0x73,0x10, +0x38,0x7e,0x73,0xa, 0xae,0x7a,0x73,0x10,0x3a,0x7e,0x34,0xd, 0xfe,0x7a,0x37,0x10, +0x46,0x7e,0x34,0xf, 0xdc,0x80,0x24,0x7e,0x73,0x11,0x16,0x7a,0x73,0x10,0x37,0x7e, +0x73,0x11,0x49,0x7a,0x73,0x10,0x38,0x7e,0x73,0x11,0x94,0x7a,0x73,0x10,0x3a,0x7e, +0x34,0x11,0x9d,0x7a,0x37,0x10,0x46,0x7e,0x34,0xf, 0x63,0x7a,0x37,0x10,0x48,0x22, +0xe5,0x55,0xbe,0xb0,0x1, 0x68,0xf9,0xe5,0x75,0x60,0xfc,0xe5,0x76,0x60,0xfc,0x20, +0x93,0xfd,0xd2,0x96,0xd2,0x95,0xd2,0xb8,0xa9,0xd0,0xb7,0xd2,0xa8,0x7e,0xb3,0x16, +0xac,0x70,0x17,0xe5,0xcc,0x7a,0xb3,0x16,0xad,0x7e,0x34,0x1d,0x8, 0xb, 0x38,0x30, +0x7a,0x73,0x16,0xaf,0x74,0x1, 0x7a,0xb3,0x16,0xac,0xa9,0xc0,0xca,0x7e,0x24,0x0, +0x1, 0x7e,0x34,0x1d,0x8, 0x1b,0x38,0x20,0xa9,0xc1,0xc9,0xa9,0xc3,0xc9,0xc2,0xcd, +0x75,0x87,0x2, 0x0, 0x0, 0x22,0x6c,0xaa,0x7e,0x50,0x2, 0xac,0x5a,0x7d,0x32,0x2e, +0x37,0xf, 0xd6,0xb, 0x38,0x10,0x2e,0x27,0xf, 0xd4,0xb, 0x28,0x30,0x2d,0x31,0x1b, +0x28,0x30,0xb, 0xa0,0xbe,0xa0,0x25,0x78,0xdf,0x6c,0xaa,0x7e,0x50,0x2, 0xac,0x5a, +0x49,0x12,0x9, 0x2e,0x2e,0x24,0x8, 0xe4,0xb, 0x28,0x30,0x2d,0x31,0x1b,0x28,0x30, +0xb, 0xa0,0xbe,0xa0,0x25,0x40,0xe4,0x7e,0x14,0x1, 0x0, 0x7d,0x31,0x7e,0x24,0x3, +0x70,0x74,0x18,0x7e,0x13,0x10,0x2b,0x6c,0x0, 0x2, 0x5e,0xd6,0x9, 0xa3,0x0, 0x24, +0xbe,0xa0,0x1, 0x78,0x5, 0xa9,0xc1,0xc9,0x80,0x3, 0xa9,0xd1,0xc9,0x43,0xcc,0x8, +0x9, 0x53,0x0, 0x2, 0x3e,0x50,0xe5,0xca,0x54,0x1, 0x4c,0xb5,0xf5,0xca,0xa9,0xd0, +0xca,0xd2,0xcd,0xbe,0xa0,0x1, 0x78,0x5, 0xa9,0xd0,0xc9,0x80,0x3, 0xa9,0xc0,0xc9, +0x7e,0x14,0x1d,0x0, 0xb, 0x18,0x20,0x5e,0x24,0xff,0xfd,0x1b,0x18,0x20,0x9, 0xb3, +0x0, 0x3f,0xb4,0x1, 0xc, 0x75,0xe4,0x32,0x9, 0xb3,0x0, 0x40,0xc4,0x54,0xf0,0xf5, +0xe5,0x22,0x12,0x4b,0x78,0x12,0x3b,0x1c,0x12,0x68,0xab,0x7e,0x34,0x8, 0x50,0x7a, +0x37,0xf, 0xd4,0x7e,0x34,0x8, 0x9a,0x7a,0x37,0xf, 0xd6,0x7e,0x34,0x8, 0x9a,0x7e, +0x27,0xf, 0xd4,0x12,0x6a,0x97,0x7e,0x34,0x1, 0x0, 0x7a,0x37,0xf, 0xd8,0x7e,0x34, +0x3, 0x70,0x7a,0x37,0xf, 0xda,0x7e,0x34,0x3, 0x70,0x7e,0x27,0xf, 0xd8,0x12,0x67, +0xb5,0x12,0x64,0xfa,0x12,0x5a,0x34,0x12,0x6a,0x4c,0x12,0x52,0x16,0x12,0x6e,0x60, +0x74,0x1, 0x7a,0xb3,0x11,0x96,0x22,0xca,0xf8,0x7e,0xb3,0xf, 0xd2,0xb4,0x1, 0x48, +0x6c,0xff,0x80,0x3c,0x7e,0x37,0xf, 0xd6,0x2e,0x34,0x0, 0x30,0x74,0x2, 0xac,0xbf, +0x9, 0xb5,0xa, 0xb1,0x7e,0x53,0x10,0x2b,0x12,0x35,0x22,0x74,0x4, 0xac,0xbf,0x59, +0x35,0xb, 0x86,0x7e,0x37,0xf, 0xd6,0x74,0x2, 0xac,0xbf,0x9, 0xb5,0xa, 0xb2,0x7e, +0x53,0x10,0x2c,0x12,0x35,0x22,0x74,0x4, 0xac,0xbf,0x59,0x35,0xb, 0x88,0xb, 0xf0, +0x7e,0x73,0xd, 0x16,0xbc,0x7f,0x38,0xbc,0xda,0xf8,0x22,0xca,0x69,0xca,0xf8,0x7c, +0xfb,0x7e,0x24,0x0, 0x4, 0x7c,0xaf,0x3e,0xa0,0x3e,0xa0,0x7c,0xba,0x24,0x56,0xa, +0x3b,0x1b,0x38,0x20,0x6d,0x66,0x7c,0xba,0x24,0x58,0xa, 0x3b,0x1b,0x38,0x60,0xb, +0xf0,0x12,0x0, 0x6e,0x50,0x1e,0x7e,0x24,0x0, 0x5, 0x7c,0xaf,0x3e,0xa0,0x3e,0xa0, +0x7c,0xba,0x24,0x56,0xa, 0x3b,0x1b,0x38,0x20,0x7c,0xba,0x24,0x58,0xa, 0x3b,0x1b, +0x38,0x60,0xb, 0xf0,0x7c,0xbf,0xda,0xf8,0xda,0x69,0x22,0x7e,0x47,0x16,0x65,0x6c, +0x77,0x7e,0xa0,0xff,0x7e,0x43,0x16,0x54,0xa, 0x14,0x9, 0x51,0xf, 0x29,0xbe,0x53, +0x10,0x4a,0x78,0x32,0x7e,0x50,0x12,0xac,0x45,0x49,0x22,0x16,0x65,0xbe,0x24,0x0, +0x41,0x40,0x23,0x7e,0x60,0x1, 0xbe,0x44,0x0, 0x19,0x40,0x18,0x7e,0x30,0x12,0xac, +0x36,0x49,0x21,0x16,0x65,0xbd,0x24,0x50,0x4, 0x7d,0x42,0x7c,0x76,0xb, 0x60,0xbe, +0x60,0x4, 0x40,0xe2,0x7c,0xa7,0x7c,0xba,0x22,0xca,0x79,0xe5,0x53,0xbe,0xb1,0x54, +0x38,0x4, 0x6c,0xff,0x80,0x3a,0xe5,0x54,0x3e,0xb0,0x3e,0xb0,0x24,0x56,0xa, 0x3b, +0xb, 0x38,0x30,0x7c,0xe7,0xbe,0xe0,0x1, 0x68,0xe, 0xbe,0xe0,0x2, 0x68,0x9, 0xbe, +0xe0,0x3, 0x68,0x4, 0x4c,0xee,0x78,0x7, 0x7c,0xbe,0x12,0x63,0x10,0x7c,0xfb,0xbe, +0xe0,0x4, 0x68,0x5, 0xbe,0xe0,0x5, 0x78,0x7, 0x7c,0xbe,0x12,0x51,0x85,0x7c,0xfb, +0x7c,0xbf,0xda,0x79,0x22,0x7e,0xa3,0xd, 0xf7,0xbe,0xa0,0x0, 0x28,0x40,0x6c,0x77, +0x80,0x38,0x7e,0x50,0x2, 0xac,0x57,0x9, 0x62,0xd, 0x18,0x9, 0x52,0xd, 0x19,0x7e, +0x30,0x2, 0xac,0x36,0x49,0x1, 0x11,0xce,0x7e,0x17,0xf, 0x4a,0xe, 0x14,0xbd,0x1, +0x48,0x13,0x7e,0x30,0x2, 0xac,0x35,0x49,0x1, 0x11,0x9e,0x7e,0x17,0xf, 0x4c,0xe, +0x14,0xbd,0x1, 0x58,0x3, 0x74,0x1, 0x22,0xb, 0x70,0xbc,0xa7,0x38,0xc4,0xe4,0x22, +0xca,0xf8,0x7c,0xfb,0xbe,0xf0,0x1, 0x78,0x3, 0xe4,0x80,0xb, 0xbe,0xf0,0x2, 0x68, +0x4, 0x4c,0xff,0x78,0x8, 0x74,0x1, 0x7a,0xb3,0x10,0x39,0x80,0x3, 0xe4,0x80,0x28, +0x12,0x5f,0xda,0x4c,0xff,0x78,0x11,0xe4,0x7a,0xb3,0x10,0x3a,0x74,0x1e,0x7a,0xb3, +0x10,0x37,0x74,0xa, 0x7a,0xb3,0x10,0x38,0x7e,0x34,0x10,0x2b,0x12,0x5b,0x10,0x7e, +0x34,0x10,0x2b,0x12,0x64,0xb9,0x74,0x1, 0xda,0xf8,0x22,0xca,0x7b,0xca,0x6b,0xca, +0x5b,0xca,0x4b,0xca,0x2b,0xca,0x1b,0xca,0xb, 0xc0,0xd0,0xc0,0x83,0xc0,0x82,0x75, +0x75,0x1, 0x7e,0x24,0x1d,0x0, 0xb, 0x28,0x30,0x4e,0x60,0x2, 0x1b,0x28,0x30,0xb, +0x28,0x30,0x4e,0x70,0x2, 0x1b,0x28,0x30,0xe5,0x55,0xb4,0x1, 0x3, 0x12,0x5d,0x6c, +0xd0,0x82,0xd0,0x83,0xd0,0xd0,0xda,0xb, 0xda,0x1b,0xda,0x2b,0xda,0x4b,0xda,0x5b, +0xda,0x6b,0xda,0x7b,0x32,0x7c,0xab,0xa9,0xd6,0xcb,0x7c,0xb7,0xf5,0xb9,0xa, 0x36, +0x7c,0xb7,0xf5,0xba,0x7c,0xb5,0xf5,0xbb,0xa, 0x34,0x7c,0xb7,0xf5,0xbc,0x7a,0xa1, +0xc3,0x75,0xc5,0x40,0x75,0xc2,0x2b,0x80,0x3, 0x43,0xc2,0x1, 0x0, 0x0, 0x0, 0x0, +0xa9,0x37,0xc2,0xf5,0x75,0xc2,0x0, 0x75,0xc5,0xe, 0xe5,0xc6,0xa, 0x3b,0xe5,0xc6, +0xa, 0x2b,0x7c,0x45,0x6c,0x55,0x4d,0x32,0xa9,0xc6,0xcb,0x22,0xe4,0x7a,0xb3,0x15, +0x9f,0x7a,0xb3,0x15,0x53,0x7a,0xb3,0x15,0x9e,0x7a,0xb3,0x15,0xa0,0x7a,0xb3,0x15, +0xa1,0x7e,0x34,0x15,0x56,0x7e,0x24,0x0, 0x48,0x12,0x6d,0xee,0x7e,0x34,0x14,0xe3, +0x7e,0x24,0x0, 0x48,0xe4,0x12,0x6d,0xee,0x7e,0x34,0x15,0x56,0x7e,0x24,0x0, 0x46, +0x74,0xff,0x12,0x6d,0xee,0x7e,0x34,0x14,0xe3,0x7e,0x24,0x0, 0x46,0x74,0xff,0x2, +0x6d,0xee,0xd2,0xcd,0xa9,0xd1,0xc9,0xa9,0xd3,0xcb,0xa9,0xd7,0xcb,0x7e,0xb3,0x16, +0xac,0xb4,0x1, 0x15,0x7e,0x73,0x16,0xaf,0xa, 0x27,0x7e,0x34,0x1d,0x8, 0x1b,0x38, +0x20,0x7e,0xb3,0x16,0xad,0xf5,0xcc,0x80,0xe, 0x7e,0x24,0x0, 0x2, 0x7e,0x34,0x1d, +0x8, 0x1b,0x38,0x20,0x75,0xcc,0x0, 0xa9,0xd4,0xc9,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0xe4,0x7a,0xb3,0x16,0xac,0x22,0x7c,0xab,0x6c,0x33,0x80,0x36,0xa, 0x3, +0x2d,0x2, 0x7e,0x9, 0x20,0x7c,0xb2,0x54,0x7, 0x3e,0xb0,0xa, 0x3, 0x2d,0x3, 0x7e, +0x9, 0x10,0xa, 0xf1,0x60,0x5, 0x3e,0xf4,0x14,0x78,0xfb,0x1e,0x20,0x1e,0x20,0x1e, +0x20,0x7e,0x90,0x2, 0xac,0x92,0x2e,0x44,0x1c,0x30,0xb, 0x48,0x0, 0x4d,0xf, 0x1b, +0x48,0x0, 0xb, 0x30,0xbc,0xa3,0x38,0xc6,0x22,0x75,0x76,0x0, 0x75,0xe4,0x3, 0x49, +0x23,0x0, 0x17,0x7d,0x52,0x5e,0x54,0x0, 0xff,0xf5,0xe5,0x75,0xe4,0x4, 0x5e,0x24, +0x1f,0x0, 0xa, 0x24,0x7c,0xa5,0x7a,0xa1,0xe5,0x75,0xe4,0x5, 0xf5,0xe5,0x75,0xe4, +0x6, 0x9, 0xb3,0x0, 0x16,0xc4,0x33,0x54,0xe0,0x4c,0xba,0xf5,0xe5,0xa9,0xd6,0xea, +0x75,0xe6,0x0, 0xa9,0xd1,0xe1,0xa9,0xd0,0xe1,0x22,0x7e,0x34,0x1, 0x90,0x7a,0x37, +0xd, 0xff,0x7e,0x34,0x0, 0x19,0x7a,0x37,0xe, 0x1, 0x7e,0x34,0x0, 0x9c,0x7a,0x37, +0xe, 0x3, 0x7e,0x34,0x0, 0x2, 0x7a,0x37,0xe, 0x5, 0x7a,0x37,0xe, 0x7, 0x74,0x1, +0x7a,0xb3,0xe, 0x9, 0x7e,0xb3,0xe, 0xa, 0x54,0xfb,0x7a,0xb3,0xe, 0xa, 0x7e,0x34, +0x10,0x3, 0x7e,0x24,0x0, 0x28,0xe4,0x2, 0x6d,0xee,0xca,0xf8,0x7e,0x24,0xe, 0xd, +0x7e,0x34,0xe, 0x99,0x7e,0x14,0x0, 0x46,0x12,0x6d,0x4a,0x6c,0xff,0x74,0x7, 0xac, +0xbf,0x49,0x35,0xe, 0xd, 0x12,0x4c,0x41,0x74,0x7, 0xac,0xbf,0x59,0x35,0xe, 0x99, +0x49,0x35,0xe, 0xf, 0x12,0x4a,0xa6,0x74,0x7, 0xac,0xbf,0x59,0x35,0xe, 0x9b,0xb, +0xf0,0xbe,0xf0,0xa, 0x40,0xd7,0xda,0xf8,0x22,0x6d,0x33,0x6c,0xaa,0x80,0x2e,0x7e, +0x30,0x2, 0xac,0x3a,0x9, 0x51,0xd, 0x18,0x9, 0x41,0xd, 0x19,0x7e,0x10,0x30,0xac, +0x15,0x7e,0x30,0x2, 0xac,0x34,0x2d,0x10,0x2e,0x17,0xf, 0xda,0xb, 0x18,0x40,0xbe, +0x44,0x0, 0x0, 0x8, 0x6, 0xbd,0x43,0x8, 0x2, 0x7d,0x34,0xb, 0xa0,0x7e,0xb3,0xd, +0xf7,0xbc,0xba,0x38,0xca,0x22,0xca,0x79,0x7d,0x41,0x7d,0x13,0x6d,0x0, 0x7e,0x34, +0x7f,0xff,0x6c,0xaa,0x80,0x1b,0x7e,0xf0,0x7, 0xac,0xfa,0x7d,0xe7,0x2d,0xe4,0x49, +0xfe,0x0, 0x2, 0xbd,0xf0,0x28,0x2, 0x7d,0xf, 0xbd,0xf3,0x50,0x2, 0x7d,0x3f,0xb, +0xa0,0x9, 0xb4,0x0, 0x46,0xbc,0xba,0x38,0xdd,0x1b,0x18,0x0, 0x1b,0x28,0x30,0xda, +0x79,0x22,0xca,0xf8,0x7e,0xb3,0x10,0x4e,0x60,0x3, 0xb4,0x1, 0x2d,0xa9,0xc6,0xea, +0x12,0x2b,0xa0,0x7c,0xfb,0x7e,0x37,0xf, 0xda,0x7e,0x27,0xf, 0xd8,0x12,0x67,0xb5, +0x7e,0x37,0xf, 0xda,0x7e,0x27,0xf, 0xd8,0x12,0x53,0xc5,0xbe,0xf0,0x1, 0x78,0x4, +0x74,0x2, 0x80,0x2, 0x74,0xff,0x7a,0xb3,0x10,0x4e,0xda,0xf8,0x22,0x7e,0xb3,0x16, +0x54,0x4, 0x7a,0xb3,0x16,0x54,0x7e,0x73,0x16,0x54,0xbe,0x70,0x4, 0x40,0x5, 0xe4, +0x7a,0xb3,0x16,0x54,0x7e,0xa3,0x16,0x54,0xbe,0xa0,0x3, 0x78,0x13,0x7e,0xb3,0x16, +0x9d,0x4, 0x7a,0xb3,0x16,0x9d,0xbe,0xb0,0x8, 0x40,0x5, 0xe4,0x7a,0xb3,0x16,0x9d, +0xa, 0x3a,0x9, 0xb3,0xf, 0x29,0x22,0xca,0x3b,0x7d,0x72,0x7d,0x63,0x7d,0x21,0x7d, +0x36,0x7e,0x14,0x0, 0x4a,0x12,0x6d,0x4a,0x7e,0xb3,0x10,0x3c,0xb4,0x1, 0x1f,0x6c, +0xaa,0x7e,0x50,0x2, 0xac,0x5a,0x7d,0x32,0x2d,0x37,0xb, 0x38,0x10,0x2d,0x26,0xb, +0x28,0x30,0x9d,0x31,0x1b,0x28,0x30,0xb, 0xa0,0xbe,0xa0,0x25,0x78,0xe3,0xda,0x3b, +0x22,0x7e,0xb3,0x10,0x3d,0x70,0x32,0xa9,0xd6,0xea,0x74,0x1, 0x7a,0xb3,0x10,0x39, +0x12,0x5f,0xda,0x12,0x2d,0xb5,0xe4,0x7a,0xb3,0x10,0x39,0x12,0x5f,0xda,0x12,0x2d, +0xb5,0x7e,0x34,0x10,0x2b,0x12,0x6b,0x25,0x7e,0x37,0xf, 0xd4,0x7e,0x24,0x8, 0xe4, +0x12,0x58,0xe3,0x74,0x2, 0x7a,0xb3,0x10,0x3d,0x22,0x7e,0xa3,0xf, 0x1c,0xbe,0xa0, +0x0, 0x38,0x2f,0xbe,0xa3,0xf, 0x1b,0x50,0x19,0x7e,0xb3,0xf, 0x25,0xbe,0xb3,0x12, +0x33,0x28,0x14,0x7e,0xb3,0x12,0x33,0x4, 0x7a,0xb3,0x12,0x33,0x7a,0xa3,0xf, 0x1b, +0x80,0x5, 0xe4,0x7a,0xb3,0x12,0x33,0x7e,0xb3,0xf, 0x1b,0x70,0x5, 0xe4,0x7a,0xb3, +0xf, 0x24,0x22,0xca,0x7b,0xca,0x6b,0xca,0x5b,0xca,0x4b,0xca,0x2b,0xca,0x1b,0xca, +0xb, 0xc0,0xd0,0xc0,0x83,0xc0,0x82,0x53,0xcc,0xf8,0x43,0xcc,0x1, 0x12,0x54,0x53, +0x74,0x1, 0x7a,0xb3,0x16,0x4e,0xd0,0x82,0xd0,0x83,0xd0,0xd0,0xda,0xb, 0xda,0x1b, +0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda,0x7b,0x32,0xca,0x7b,0xca,0x6b,0xca, +0x5b,0xca,0x4b,0xca,0x2b,0xca,0x1b,0xca,0xb, 0xc0,0xd0,0xc0,0x83,0xc0,0x82,0x75, +0x76,0x1, 0x75,0xe6,0x0, 0xe5,0x55,0xb4,0x1, 0x3, 0x12,0x5d,0x6c,0xd0,0x82,0xd0, +0x83,0xd0,0xd0,0xda,0xb, 0xda,0x1b,0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda, +0x7b,0x32,0xca,0xf8,0x7d,0x1, 0x7d,0x13,0x7e,0xf3,0x10,0x4d,0xbe,0xf0,0x1, 0x78, +0xd, 0x7d,0x30,0x74,0x18,0x7e,0x13,0x10,0x2b,0x7e,0x0, 0x2, 0x80,0x11,0x4c,0xff, +0x78,0x10,0x7d,0x30,0x6d,0x22,0x74,0x18,0x7e,0x13,0x10,0x2b,0x7e,0x0, 0x4, 0x12, +0x5e,0xd6,0xda,0xf8,0x22,0xe4,0x7a,0xb3,0xf, 0xd3,0x6c,0xaa,0x6c,0x33,0x6d,0xff, +0x7e,0x10,0x18,0xac,0x1a,0xa, 0xe3,0x2d,0xe, 0x3e,0x4, 0x7d,0x40,0x2d,0x42,0x1b, +0x48,0xf0,0x6d,0x44,0x2d,0x3, 0x1b,0x8, 0x40,0xb, 0x30,0xa5,0xbb,0x18,0xdf,0xb, +0xa0,0xbe,0xa0,0xd, 0x40,0xd6,0x22,0x7d,0x23,0x7c,0xab,0x6d,0x33,0x6c,0x33,0x4c, +0xaa,0x7e,0x10,0x7, 0x78,0xb, 0xac,0x13,0x2d,0x2, 0xb, 0x8, 0x0, 0x2d,0x30,0x80, +0xa, 0xac,0x13,0x2d,0x2, 0x49,0x0, 0x0, 0x2, 0x2d,0x30,0xb, 0x30,0xbe,0x30,0x3, +0x40,0xdd,0x7e,0x24,0x0, 0x3, 0x8d,0x32,0x22,0x6c,0xaa,0x74,0x3, 0xa, 0x2a,0x2d, +0x23,0x7a,0x29,0xb0,0xa, 0x2a,0x2d,0x23,0x19,0xb2,0x0, 0xa, 0x7e,0x24,0xff,0xff, +0x7e,0x30,0x2, 0xac,0x3a,0x7d,0x1, 0x2d,0x3, 0x59,0x20,0x0, 0x14,0x2d,0x13,0x59, +0x21,0x0, 0x28,0xb, 0xa0,0xbe,0xa0,0xa, 0x40,0xd1,0x22,0x7c,0xab,0x7e,0x24,0xe, +0xdf,0xbe,0xa0,0xa, 0x50,0x25,0xa, 0x3a,0x7d,0x13,0x2d,0x12,0x7e,0x19,0xb0,0xb4, +0x2, 0xe, 0x74,0x1, 0x7a,0x19,0xb0,0x74,0x3, 0x2d,0x23,0x19,0xb2,0x0, 0xa, 0x22, +0x74,0x3, 0x7a,0x19,0xb0,0x2d,0x32,0x19,0xb3,0x0, 0xa, 0x22,0xca,0x7b,0xca,0x6b, +0xca,0x5b,0xca,0x4b,0xca,0x2b,0xca,0x1b,0xca,0xb, 0xc0,0xd0,0xc0,0x83,0xc0,0x82, +0x12,0x6e,0x6a,0x53,0xb, 0xfd,0xd0,0x82,0xd0,0x83,0xd0,0xd0,0xda,0xb, 0xda,0x1b, +0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda,0x7b,0x32,0x6d,0x33,0x7a,0x37,0x11, +0xd, 0x74,0x1, 0x7a,0xb3,0x11,0xf, 0x74,0xb, 0x7a,0xb3,0x11,0x10,0x74,0x9, 0x7a, +0xb3,0x11,0x11,0x74,0x1e,0x7a,0xb3,0x11,0x12,0x7a,0xb3,0x11,0x13,0x7a,0xb3,0x11, +0x14,0x74,0x1, 0x7a,0xb3,0x11,0x15,0x22,0x7e,0xb3,0xf, 0x1b,0x70,0x1e,0x7e,0xa3, +0xf, 0x1c,0xbe,0xa0,0x0, 0x28,0x15,0xe5,0x16,0x70,0xd, 0x7a,0xa3,0xf, 0x1b,0x74, +0x1, 0x7a,0xb3,0xf, 0x22,0x5, 0x16,0x22,0x75,0x16,0x0, 0x22,0x75,0x16,0x0, 0xe4, +0x7a,0xb3,0xf, 0x22,0x22,0x6c,0xaa,0x80,0x1f,0x7e,0x70,0x2, 0xac,0x7a,0x49,0x23, +0x0, 0xd2,0x7e,0x70,0x18,0xac,0x7a,0x3e,0x34,0x2e,0x37,0xf, 0xda,0x2e,0x34,0x0, +0x30,0x1b,0x35,0x1b,0x38,0x20,0xb, 0xa0,0x7e,0xb3,0x10,0x2b,0xbc,0xba,0x38,0xd9, +0x22,0x75,0x75,0x0, 0xa9,0xc6,0xea,0x7e,0x24,0x1d,0x0, 0xb, 0x28,0x30,0x4e,0x34, +0x2, 0x0, 0x1b,0x28,0x30,0xd2,0xeb,0xb, 0x28,0x30,0x4e,0x34,0x0, 0x2, 0x1b,0x28, +0x30,0xb, 0x28,0x30,0x4e,0x34,0x0, 0x1, 0x1b,0x28,0x30,0x22,0x1, 0x5e,0x0, 0xa, +0x0, 0x96,0x1, 0x2c,0x0, 0x8, 0x0, 0x78,0x0, 0xfa,0x0, 0x7, 0x0, 0x50,0x0, 0xc8, +0x0, 0x6, 0x0, 0x32,0x0, 0xa0,0x0, 0x4, 0x0, 0x1e,0x0, 0x78,0x0, 0x3, 0x0, 0xa, +0x0, 0x3c,0x0, 0x2, 0x0, 0x0, 0xd2,0xc9,0xa9,0xd5,0xcb,0xa, 0x56,0xf5,0xf1,0x7c, +0xb7,0xf5,0xf2,0x75,0xf3,0x80,0x75,0xf4,0x0, 0x75,0xf5,0x83,0xa9,0x37,0xf5,0xfc, +0xa9,0x36,0xf5,0xfc,0xe5,0xf6,0x43,0xfa,0x80,0xc2,0xc9,0xa9,0xc5,0xcb,0x22,0xc2, +0xaf,0x75,0xfb,0x0, 0xd2,0xc9,0xa9,0xd5,0xcb,0xa, 0x56,0x1e,0x54,0x1e,0x54,0x3e, +0x54,0x3e,0x54,0xf5,0xf1,0x75,0xf2,0x0, 0x75,0xf5,0x90,0x74,0xa, 0x12,0x6d,0x33, +0xc2,0xc9,0xa9,0xc5,0xcb,0xd2,0xaf,0x22,0x12,0x22,0x20,0x12,0x3d,0xb5,0x12,0x4d, +0x0, 0x60,0x6, 0x74,0x1, 0x7a,0xb3,0xe, 0xc, 0x7e,0xb3,0xe, 0xb, 0x60,0x3, 0x12, +0x60,0x86,0x7e,0xb3,0xe, 0xc, 0x60,0x6, 0x12,0x55,0x68,0x2, 0x5f,0x2d,0x22,0xe4, +0x7a,0xb3,0x10,0x3d,0x7a,0xb3,0x10,0x4e,0x7a,0xb3,0xf, 0x28,0x12,0x6a,0x26,0xb4, +0x1, 0xd, 0x74,0x1, 0x7a,0xb3,0x10,0xa5,0x53,0xb, 0x8f,0x74,0x2, 0x80,0x2, 0x74, +0xff,0x7a,0xb3,0xf, 0x28,0x22,0xca,0xf8,0x7e,0xf0,0x1, 0x12,0x66,0xa1,0x7e,0xb3, +0x10,0x3d,0xbe,0xb0,0x2, 0x68,0x2, 0x6c,0xff,0x12,0x65,0xf2,0x7e,0xb3,0x10,0x4e, +0xbe,0xb0,0x2, 0x68,0x2, 0x6c,0xff,0x7c,0xbf,0xda,0xf8,0x22,0x7e,0x34,0xa, 0xb1, +0x7e,0x24,0x3, 0x4d,0xe4,0x12,0x6d,0xee,0x7e,0x34,0xb, 0x86,0x7e,0x24,0x1, 0x90, +0x74,0xff,0x12,0x6d,0xee,0x7e,0x34,0xd, 0x6b,0x7e,0x24,0x0, 0x8c,0x74,0xff,0x2, +0x6d,0xee,0x9, 0xb3,0x0, 0x4d,0xb4,0x1, 0x6, 0x9, 0x53,0x0, 0x51,0x80,0x3, 0x7e, +0x39,0x50,0xa, 0x15,0x7e,0x24,0x1d,0x2, 0x1b,0x28,0x10,0x49,0x23,0x0, 0x3b,0x7e, +0x34,0x1d,0x6, 0x1b,0x38,0x20,0x22,0xe4,0x7a,0xb3,0xf, 0xd2,0x6c,0xaa,0x6d,0x44, +0x7e,0x30,0x2, 0xac,0x3a,0x7d,0x1, 0x2d,0x2, 0x1b,0x8, 0x40,0x6d,0x0, 0x2d,0x13, +0x1b,0x18,0x0, 0xb, 0xa0,0xbe,0xa0,0x25,0x40,0xe4,0x22,0x7e,0x34,0x12,0x1, 0x7e, +0x24,0x0, 0x1e,0xe4,0x12,0x6d,0xee,0x7e,0x34,0x12,0x1f,0x7e,0x24,0x0, 0x14,0xe4, +0x12,0x6d,0xee,0x7e,0x34,0x11,0xed,0x7e,0x24,0x0, 0x14,0xe4,0x2, 0x6d,0xee,0x12, +0x0, 0x6e,0x50,0x1d,0x12,0x6e,0xbb,0x7c,0xab,0x7e,0xb3,0x11,0x95,0xbe,0xb0,0x4, +0x68,0xf, 0xbe,0xa0,0xff,0x68,0xa, 0x74,0x1, 0x7a,0xb3,0x11,0xc, 0x7a,0xa3,0x11, +0x95,0x22,0xca,0xf8,0x6c,0xff,0x7e,0xb3,0x10,0x3d,0x70,0x3, 0x7e,0xf0,0x1, 0x74, +0x1, 0x12,0x3e,0xf7,0xbe,0xb0,0x1, 0x68,0x5, 0xbe,0xf0,0x1, 0x78,0x4, 0xe4,0x12, +0x3e,0xf7,0xda,0xf8,0x22,0xa9,0xc3,0xe1,0x75,0xe4,0x3, 0x75,0xe5,0x0, 0x75,0xe4, +0x4, 0x75,0xe5,0x0, 0x75,0xe4,0x5, 0x75,0xe5,0x0, 0x75,0xe4,0x6, 0x9, 0xb3,0x0, +0x16,0xc4,0x33,0x54,0xe0,0xf5,0xe5,0x22,0x7e,0x34,0x8, 0x9a,0x7e,0x24,0x11,0x9e, +0x7e,0x14,0x1, 0x90,0x12,0x3c,0x70,0x7e,0x34,0x9, 0x2e,0x7e,0x24,0x11,0x4a,0x7e, +0x14,0x0, 0xc8,0x12,0x3c,0x70,0x2, 0x57,0x1, 0x74,0x1, 0x12,0x6e,0x4b,0xa9,0xc3, +0xea,0xa9,0xc6,0xeb,0xa9,0xd6,0xac,0xa9,0xd6,0xec,0xd2,0x86,0x75,0x9a,0x7f,0xa9, +0xd1,0x99,0xd2,0x9c,0xa9,0xd6,0xdf,0xd2,0xaf,0x22,0xe5,0x52,0xb4,0x1, 0x18,0xe5, +0x51,0x70,0x14,0x7e,0xb3,0x11,0x95,0x60,0xb, 0xe4,0x7a,0xb3,0x11,0x95,0x74,0x1, +0x7a,0xb3,0x11,0xc, 0x12,0x6c,0x66,0x85,0x51,0x52,0x22,0x6c,0xaa,0x7e,0x50,0x4, +0xac,0x5a,0x49,0x12,0x0, 0xec,0xbd,0x13,0x38,0x8, 0x49,0x22,0x0, 0xee,0xbd,0x23, +0x50,0x7, 0xb, 0xa0,0xbe,0xa0,0x3, 0x40,0xe4,0x7c,0xba,0x22,0x7e,0x24,0x0, 0x2, +0x7e,0x34,0x1d,0x8, 0x1b,0x38,0x20,0x12,0x6d,0x9b,0x12,0x6c,0xb9,0x7e,0x34,0x7, +0xd0,0x7d,0x23,0x1b,0x34,0x4d,0x22,0x78,0xf8,0x2, 0x0, 0x2e,0x75,0x55,0x0, 0x75, +0x73,0x0, 0x75,0x54,0x0, 0x12,0x6c,0xb, 0x12,0x61,0xdb,0xf5,0x53,0x12,0x62,0x79, +0xb4,0x1, 0x4, 0x75,0x55,0x1, 0x22,0x75,0x55,0x3, 0x22,0x7e,0x34,0x0, 0x1, 0x7a, +0x35,0x56,0x7e,0x34,0xa, 0x18,0x7a,0x35,0x58,0x7e,0x34,0x0, 0x2, 0x7a,0x35,0x5a, +0x7e,0x34,0xa, 0x62,0x7a,0x35,0x5c,0x74,0x2, 0x22,0x0, 0x50,0x0, 0xa, 0x6, 0x4, +0x0, 0x78,0x0, 0xc, 0x6, 0x4, 0x0, 0xc8,0x0, 0x1e,0x8, 0x5, 0x1, 0x40,0x0, 0x50, +0x8, 0x5, 0x1, 0xf4,0x0, 0x64,0xa, 0x6, 0xe4,0x7a,0xb3,0x16,0xb1,0x7a,0xb3,0x16, +0xb0,0x7e,0xb3,0x10,0xa3,0x70,0x6, 0x7e,0x73,0x11,0x10,0x80,0x4, 0x7e,0x73,0x11, +0x12,0x7a,0x73,0x16,0xb2,0x22,0xe4,0x7a,0xb3,0x10,0x78,0x74,0x2, 0x7a,0xb3,0x10, +0x7b,0x74,0x4, 0x7a,0xb3,0x10,0x7c,0x7e,0x34,0x16,0x55,0x7e,0x24,0x0, 0x48,0xe4, +0x2, 0x6d,0xee,0x75,0x91,0x0, 0xc2,0x90,0xc2,0x91,0x75,0x92,0x7c,0xd2,0xad,0xd2, +0xe8,0xc2,0xc0,0xa9,0xd5,0xb7,0xd2,0xbd,0xa9,0xd0,0xf7,0xd2,0xf8,0x22,0xe4,0x7a, +0xb3,0xd, 0xfb,0x7e,0x34,0x11,0x9e,0x7a,0x37,0xf, 0xd6,0x12,0x40,0x32,0x7e,0x34, +0x8, 0x9a,0x7a,0x37,0xf, 0xd6,0x2, 0x46,0xe9,0x75,0x75,0x1, 0x7e,0x24,0x1d,0x0, +0xb, 0x28,0x30,0x4e,0x34,0x2, 0x0, 0x1b,0x28,0x30,0xd2,0xeb,0x7e,0x34,0x0, 0x1, +0x2, 0x6e,0x35,0xc2,0x8e,0x43,0x89,0x20,0x75,0x8d,0x0, 0xa9,0x34,0xc9,0x5, 0x75, +0x8b,0xe6,0x80,0x3, 0x75,0x8b,0x78,0xd2,0x8e,0xd2,0xab,0x22,0xe5,0x51,0xb4,0x1, +0x6, 0x7e,0x34,0x0, 0x5a,0x80,0x4, 0x7e,0x34,0x0, 0x3c,0x7a,0x37,0xf, 0x54,0x7a, +0x37,0xf, 0x56,0x22,0xca,0xf8,0x12,0x6e,0x40,0x7c,0xfb,0x12,0x0, 0x6e,0x50,0x7, +0x4c,0xff,0x78,0x3, 0xe4,0x80,0x2, 0x74,0x1, 0xda,0xf8,0x22,0x7e,0x34,0x0, 0x24, +0x12,0x69,0x86,0x7c,0x7b,0xa5,0xbf,0xff,0x3, 0x7e,0x70,0x4, 0xa, 0x57,0x2e,0x54, +0x0, 0x10,0x22,0x7c,0xab,0x80,0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x7c,0x7a,0x1b,0xa0,0xa5,0xbf,0x0, 0xee,0x22,0x7d,0x3, 0x80,0xa, 0x7e,0x29, +0xb0,0x7a,0x9, 0xb0,0xb, 0x24,0xb, 0x4, 0x7d,0x51,0x1b,0x14,0x4d,0x55,0x78,0xee, +0x22,0x7e,0x53,0xf, 0x47,0xa, 0x25,0x3e,0x24,0x3e,0x24,0x9d,0x32,0xbe,0x34,0x0, +0x0, 0x8, 0x1, 0x22,0x6d,0x33,0x22,0x70,0x3, 0x43,0x87,0x1, 0xb4,0x1, 0x3, 0x43, +0x87,0x2, 0xb4,0x2, 0x3, 0x43,0x87,0x2, 0x22,0x74,0x3, 0x7a,0xb3,0x16,0xa3,0xe4, +0x7a,0xb3,0x16,0xaa,0x74,0xff,0x7a,0xb3,0x16,0xa2,0x22,0x75,0x76,0x1, 0xd2,0xee, +0x75,0xe6,0x0, 0xa9,0xd3,0xe1,0x7e,0x34,0x0, 0x1, 0x2, 0x6e,0x35,0xa, 0x2b,0x19, +0x72,0x10,0x7e,0x7e,0xb3,0x10,0xfe,0x44,0x1, 0x7a,0xb3,0x10,0xfe,0x22,0x7d,0x13, +0xbd,0x21,0x50,0x5, 0x7d,0x31,0x9d,0x32,0x22,0x7d,0x32,0x9d,0x31,0x22,0x14,0x1, +0xa, 0x1, 0x0, 0x2, 0xfb,0x4, 0xf6,0x5, 0xec,0x6, 0xe7,0x7, 0xe2,0x8, 0x7d,0x23, +0xbe,0x24,0x0, 0x0, 0x48,0x3, 0x7d,0x32,0x22,0x6d,0x33,0x9d,0x32,0x22,0x7d,0x13, +0x80,0x7, 0x1b,0x24,0x7a,0x19,0xb0,0xb, 0x14,0x4d,0x22,0x78,0xf5,0x22,0x10,0x10, +0x10,0x1c,0x19,0x14,0x10,0xe, 0xc, 0xb, 0xa, 0x9, 0x8, 0x7, 0x6, 0x12,0x0, 0x42, +0x12,0x57,0x81,0x74,0x3, 0x12,0x43,0xae,0x2, 0x24,0xb4,0x7e,0x34,0x0, 0x21,0x12, +0x69,0x86,0xb4,0xff,0x3, 0x74,0x1, 0x22,0x22,0x7e,0xb3,0x11,0x15,0xb4,0x1, 0x4, +0xe4,0x2, 0x6e,0xa0,0x22,0x6d,0x22,0x80,0x2, 0xb, 0x24,0xbd,0x32,0x38,0xfa,0x22, +0x12,0x62,0xc5,0xb4,0x1, 0x2, 0xe4,0x22,0x74,0x1, 0x22,0xd2,0xcf,0xa9,0xd4,0xc9, +0x75,0xcc,0x0, 0xc2,0xca,0x22,0xa9,0xc0,0x93,0x75,0x9, 0x0, 0x75,0xa, 0x0, 0x32, +0x75,0x53,0x0, 0x75,0x54,0x0, 0x75,0x55,0x0, 0x22,0xa9,0x32,0x99,0x5, 0xd2,0x9c, +0xa9,0xd6,0xdf,0x22,0x75,0xb, 0x0, 0x12,0x6e,0xd1,0x2, 0x5e,0x26,0x12,0x6b,0x69, +0x12,0x6e,0xd7,0x2, 0x6e,0x74,0xe5,0x75,0x60,0x3, 0x74,0x1, 0x22,0xe4,0x22,0xe5, +0x76,0x60,0x3, 0x74,0x1, 0x22,0xe4,0x22,0x1, 0x2, 0x4, 0x8, 0x10,0x20,0x40,0x80, +0x70,0x3, 0xd2,0x86,0x22,0xc2,0x86,0x22,0xa9,0xd0,0x99,0xa9,0xc6,0xdf,0x22,0xf5, +0x17,0x75,0x18,0x0, 0x22,0x12,0x61,0x87,0x2, 0x38,0x4a,0x12,0x4f,0xb6,0x2, 0x62, +0x2b,0x12,0x6e,0xe3,0x2, 0x6b,0xec,0x7e,0x34,0x1, 0x3, 0x22,0x7e,0x34,0x5, 0xb, +0x22,0x2, 0x6c,0x83,0x2, 0x0, 0x76,0x2, 0x6c,0xd3,0x2, 0x6e,0xa8,0x2, 0x6e,0x6a, +0xe5,0x6e,0x22,0x22,0x0, 0x1, 0x0, 0x8b,0x1, 0x0, 0x1, 0xa, 0xac,0x15,0x0, 0x1, +0xa, 0xad,0x17,0x0, 0x1, 0xa, 0xae,0x4, 0x0, 0x1, 0xd, 0xfe,0x30,0x0, 0x5, 0xf, +0x29,0x23,0x17,0x29,0x38,0x13,0x0, 0x18,0xf, 0x2e,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x3, 0x0, 0x25,0xf, 0x63,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0, 0x18,0xf, 0x88,0xf, +0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, +0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0x0, 0xd, 0xf, 0xa0,0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x18,0xf, 0xad,0x0, 0x1, 0x2, 0x3, +0xb, 0xa, 0x9, 0x8, 0x7, 0x6, 0x5, 0x4, 0x17,0x16,0x15,0x14,0x13,0xc, 0xd, 0xe, +0xf, 0x10,0x11,0x12,0x0, 0xd, 0xf, 0xc5,0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, +0x0, 0x9, 0xa, 0xb, 0xc, 0x0, 0x25,0xf, 0xdc,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0, 0xd, +0x10,0xff,0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0x0, +0x1, 0x11,0xc, 0x0, 0x0, 0x1, 0x11,0x16,0x15,0x0, 0x32,0x11,0x17,0x0, 0x8, 0x0, +0x13,0x0, 0x26,0x0, 0x43,0x0, 0x6c,0x0, 0xa4,0x0, 0xed,0x1, 0x4a,0x1, 0xbc,0x2, +0x45,0x2, 0xe4,0x3, 0x99,0x4, 0x61,0x5, 0x3a,0x6, 0x1f,0x7, 0xc, 0x7, 0xf9,0x8, +0xe1,0x9, 0xbd,0xa, 0x86,0xb, 0x34,0xb, 0xc3,0xc, 0x2d,0xc, 0x6e,0xc, 0x83,0x0, +0x1, 0x11,0x49,0x17,0x0, 0x1, 0x11,0x94,0x2, 0x0, 0x1, 0x11,0x95,0x0, 0x0, 0x4, +0x11,0x97,0xff,0xff,0xff,0xff,0x0, 0x2, 0x11,0x9b,0xff,0x1f,0x0, 0x1, 0x11,0x9d, +0x30,0x0, 0x1, 0x11,0xe8,0x0, 0x0, 0x4, 0x11,0xe9,0x23,0x23,0x23,0x23,0x0, 0x1, +0x16,0x53,0x0, 0x0, 0x1, 0x15,0x53,0x0, 0x0, 0x1, 0x15,0x9e,0x0, 0x0, 0x1, 0x15, +0x9f,0x0, 0x0, 0x1, 0x15,0xa0,0x0, 0x0, 0x1, 0x15,0xa1,0x0, 0x0, 0x1, 0x12,0x33, +0x0, 0x0, 0x1, 0x16,0xac,0x0, 0x0, 0x1, 0x16,0xb4,0x0, 0x0, 0x1, 0x16,0xb5,0x0, +0x0, 0x1, 0x16,0xb6,0x0, 0x0, 0x1, 0x16,0xb7,0x0, 0x0, 0x1, 0x16,0xb8,0x0, 0x0, +0x1, 0x16,0xb9,0x0, 0x0, 0x1, 0x16,0xba,0x1, 0x0, 0x1, 0x16,0xbb,0x1, 0x0, 0xc, +0x0, 0xec,0x0, 0x46,0x0, 0xe6,0x1, 0x18,0x1, 0xb8,0x1, 0xf4,0x2, 0x94,0x0, 0x6, +0x0, 0xf8,0x0, 0xb4,0x2, 0x1c,0x3, 0x84,0x0, 0x1, 0x16,0x54,0x3, 0x0, 0x1, 0x16, +0x9d,0x0, 0x0, 0x1, 0x0, 0xfe,0x0, 0x0, 0x1, 0x0, 0xff,0x0, 0x0, 0x1, 0x16,0xbc, +0x0, 0x0, 0x0, 0x53,0x5a,0x1e,0xe1,0xff,0xff,0x70,0xd3,0x8f,0x2c,0x95,0x6a,0x2f, +0xf1, \ No newline at end of file diff --git a/drivers/input/touchscreen/ft5336/ft_app_ic_biel_ebbg_720p.txt b/drivers/input/touchscreen/ft5336/ft_app_ic_biel_ebbg_720p.txt new file mode 100644 index 0000000000000..94da926b7be7e --- /dev/null +++ b/drivers/input/touchscreen/ft5336/ft_app_ic_biel_ebbg_720p.txt @@ -0,0 +1,1810 @@ +0x2, 0x51,0x4f,0x2, 0x68,0xdc,0xe5,0x73,0x60,0x9, 0x74,0x1, 0x12,0x6e,0xd3,0x75, +0x73,0x0, 0x22,0xe4,0x12,0x6e,0xd3,0x75,0x73,0x1, 0x22,0x2, 0x50,0xb9,0xe5,0x55, +0xbe,0xb0,0x1, 0x68,0xf9,0x12,0x6e,0xb9,0x60,0xfb,0x22,0x2, 0x67,0x73,0x7e,0x34, +0x10,0x2b,0x12,0x5b,0x6c,0x7e,0x34,0x10,0x2b,0x12,0x65,0x59,0x12,0x6e,0xc2,0x60, +0xfb,0x22,0x22,0x2, 0x6e,0x89,0xc2,0x8e,0x75,0x8d,0x0, 0xa9,0x34,0xc9,0x5, 0x75, +0x8b,0xe6,0x80,0x3, 0x75,0x8b,0x78,0xd2,0x8e,0x22,0x32,0x2, 0x63,0xb7,0xbe,0xb0, +0xa, 0x50,0x6, 0xa, 0x2b,0x19,0x72,0x16,0x9f,0x22,0x22,0x2, 0x0, 0x5a,0xe5,0x52, +0x24,0xff,0x22,0x2, 0x67,0xab,0xca,0x3b,0x7e,0xb3,0xf, 0x1b,0xf5,0x26,0x7e,0xd3, +0xf, 0x1c,0x7e,0x34,0xe, 0xdf,0x7a,0x35,0x33,0x7e,0x34,0x0, 0x27,0x7e,0x24,0x0, +0xa, 0xe4,0x12,0x6e,0x21,0x6c,0xcc,0x7e,0xa0,0xff,0x7e,0x70,0x7, 0xac,0x7c,0x19, +0xa3,0x13,0xba,0x7e,0x34,0x7f,0xff,0x74,0x7, 0xac,0xbc,0x59,0x35,0x13,0xb6,0x74, +0x7, 0xac,0xbc,0x59,0x35,0x13,0xb8,0xb, 0xc0,0xbe,0xc0,0xa, 0x78,0xd9,0xe5,0x26, +0x60,0x3, 0x2, 0x0, 0xef,0x12,0x6a,0xee,0xbe,0xd0,0x0, 0x38,0x3, 0x2, 0x0, 0xdf, +0x74,0x1, 0x7a,0xb3,0xf, 0x20,0xe4,0x7a,0xb3,0xf, 0x22,0x7a,0xb3,0xf, 0x23,0x7e, +0x34,0x13,0x6, 0x7e,0x24,0x0, 0xa, 0x74,0xff,0x12,0x6e,0x21,0x2, 0x1, 0x14,0x4c, +0xdd,0x68,0x3, 0x2, 0x1, 0x14,0x75,0x25,0x0, 0x7e,0xa0,0xff,0x7e,0x71,0x25,0x74, +0x7, 0xac,0x7b,0x19,0xa3,0xe, 0x57,0x5, 0x25,0xe5,0x25,0xb4,0xa, 0xeb,0x74,0x1, +0x7a,0xb3,0xf, 0x1f,0x75,0x25,0x0, 0x2, 0x1, 0x4c,0x7e,0x51,0x25,0x74,0x7, 0xac, +0x5b,0x2e,0x24,0xe, 0xd, 0xb, 0x28,0x30,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x3e,0x34, +0x1b,0x28,0x30,0x7e,0x51,0x25,0xac,0x5b,0x2e,0x24,0xe, 0xf, 0xb, 0x28,0x30,0x3e, +0x34,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x1b,0x28,0x30,0x5, 0x25,0xe5,0x26,0xbe,0xb1, +0x25,0x38,0xc7,0xe4,0x6c,0x77,0x7e,0x61,0x26,0x7e,0x24,0x13,0xb6,0x12,0x53,0x2, +0x7e,0x71,0x26,0x7e,0x60,0xa, 0x7e,0x24,0x13,0xb6,0x12,0x53,0x2, 0x7c,0xcb,0x6c, +0xee,0x75,0x25,0x0, 0x2, 0x1, 0x92,0x7e,0xa1,0x25,0x74,0x7, 0xa4,0x9, 0x65,0x13, +0xba,0x74,0x7, 0xac,0xbe,0x9, 0x75,0xe, 0x11,0xbc,0x76,0x78,0x3, 0x2, 0x1, 0x97, +0x5, 0x25,0xbe,0xc1,0x25,0x38,0xe0,0xbe,0xc1,0x25,0x68,0x3, 0x2, 0x1, 0xb8,0x7e, +0x70,0x7, 0xac,0x7e,0x2e,0x34,0xe, 0xd, 0x7e,0x30,0x7, 0xac,0x3c,0x2e,0x14,0x13, +0xb6,0x74,0x7, 0x12,0x49,0x26,0xb, 0xc0,0xb, 0xe0,0xbe,0xe0,0xa, 0x78,0xb2,0x7e, +0x24,0x13,0xb6,0x7e,0x34,0xe, 0x53,0x7e,0x14,0x0, 0x46,0x12,0x6d,0x7d,0x4c,0xdd, +0x68,0x3, 0x2, 0x1, 0xe7,0x7e,0x24,0xe, 0xd, 0x7e,0x34,0xe, 0x53,0x7e,0x14,0x0, +0x46,0x12,0x6d,0x7d,0x2, 0x4, 0x84,0x7e,0xb3,0xf, 0x22,0x60,0x3, 0x2, 0x4, 0x84, +0x6c,0xee,0x2, 0x4, 0x7b,0x75,0x25,0x0, 0x7e,0xa1,0x25,0x74,0x7, 0xa4,0x9, 0x65, +0xe, 0x57,0x7e,0x90,0x7, 0xac,0x9e,0x9, 0x74,0xe, 0x11,0xbc,0x67,0x78,0x3, 0x2, +0x2, 0x1b,0x5, 0x25,0xe5,0x25,0xbe,0xb0,0xa, 0x40,0xdd,0x7e,0xa1,0x25,0x74,0x7, +0xa4,0x9, 0xf5,0xe, 0x57,0x49,0x34,0xe, 0xf, 0x49,0x25,0xe, 0x55,0x12,0x6d,0xf1, +0x7d,0x63,0x74,0x7, 0xac,0xbe,0x49,0x35,0xe, 0xd, 0x7e,0xa1,0x25,0x74,0x7, 0xa4, +0x49,0x25,0xe, 0x53,0x12,0x6d,0xf1,0x7d,0x13,0x2d,0x16,0x7a,0x15,0x21,0x7c,0x1f, +0x2e,0x10,0x27,0x74,0x1, 0xa5,0xf7,0xbe,0x14,0x0, 0x40,0x28,0x3, 0x2, 0x2, 0xd9, +0x7e,0x35,0x21,0xbe,0x34,0x0, 0x20,0x38,0x3, 0x2, 0x2, 0xae,0x7e,0x70,0x3, 0xac, +0x7f,0x9, 0xb3,0x12,0x2, 0x60,0x3, 0x2, 0x2, 0x97,0x9, 0xb3,0x12,0x3, 0xbe,0xb0, +0x0, 0x38,0x3, 0x2, 0x2, 0x89,0x2, 0x2, 0xbf,0x74,0x1, 0x19,0xb3,0x12,0x2, 0x6d, +0x22,0x7a,0x25,0x21,0x2, 0x2, 0xed,0x9, 0xb3,0x12,0x3, 0xbe,0xb0,0xa, 0x40,0x3, +0x2, 0x2, 0xed,0x2e,0x34,0x12,0x3, 0x4, 0x7a,0x39,0xb0,0x2, 0x2, 0xd1,0x7e,0x70, +0x3, 0xac,0x7f,0x9, 0xb3,0x12,0x3, 0xbe,0xb0,0x0, 0x38,0x3, 0x2, 0x2, 0xcc,0x7d, +0x23,0x2e,0x24,0x12,0x3, 0x14,0x7a,0x29,0xb0,0x2, 0x2, 0xed,0xe4,0x19,0xb3,0x12, +0x2, 0x6d,0x33,0x7a,0x35,0x21,0x2, 0x2, 0xed,0x6c,0xaa,0x7e,0x70,0x3, 0xac,0x7f, +0x19,0xa3,0x12,0x3, 0x7e,0x70,0x3, 0xac,0x7f,0x19,0xa3,0x12,0x2, 0x7e,0x35,0x21, +0xbe,0x34,0x0, 0x20,0x28,0x3, 0x2, 0x3, 0x2e,0x7e,0xa1,0x25,0x74,0x7, 0xa4,0x49, +0x35,0xe, 0x53,0x74,0x7, 0xac,0xbe,0x59,0x35,0xe, 0xd, 0x7e,0xa1,0x25,0x74,0x7, +0xa4,0x49,0x35,0xe, 0x55,0x74,0x7, 0xac,0xbe,0x59,0x35,0xe, 0xf, 0x6d,0x33,0x7a, +0x35,0x21,0x7e,0xa0,0x1, 0x7e,0x70,0x3, 0xac,0x7f,0x19,0xa3,0x12,0x1, 0x7e,0xf5, +0x21,0x7a,0xf5,0x23,0xa, 0xef,0x2e,0xe5,0x33,0x7e,0xe9,0xb0,0xb4,0x1, 0x2, 0x80, +0x3, 0x2, 0x3, 0x52,0x6d,0xee,0x74,0x2, 0xac,0xbf,0x59,0xe5,0x11,0xed,0x59,0xe5, +0x12,0x1f,0x7e,0x17,0xf, 0x5d,0xbe,0x15,0x23,0x28,0x3, 0x2, 0x3, 0x68,0x7e,0x4, +0x1, 0x0, 0x7a,0x5, 0x31,0x2, 0x3, 0x8b,0x7e,0x35,0x23,0x6d,0x22,0x7c,0x56,0x7c, +0x67,0x6c,0x77,0x12,0x48,0x9f,0x7d,0xe3,0x7a,0xe5,0x31,0xbe,0xe4,0x0, 0x10,0x40, +0x3, 0x2, 0x3, 0x8b,0x7e,0xe4,0x0, 0x10,0x7a,0xe5,0x31,0x74,0x2, 0xac,0xbf,0x49, +0x45,0x12,0x1f,0xbe,0x45,0x21,0x38,0x3, 0x2, 0x3, 0xa5,0x49,0x45,0x11,0xed,0x7a, +0x45,0x31,0x2, 0x3, 0xac,0x7e,0x45,0x31,0x59,0x45,0x11,0xed,0x59,0xf5,0x12,0x1f, +0x7e,0x35,0x31,0xbe,0x34,0x1, 0x0, 0x38,0x3, 0x2, 0x3, 0xc3,0x7e,0x34,0x1, 0x0, +0x7a,0x35,0x31,0x74,0x7, 0xac,0xbe,0x49,0x35,0xe, 0xd, 0x7e,0xa1,0x25,0x74,0x7, +0xa4,0x49,0x25,0xe, 0x53,0x12,0x6d,0xf1,0x7d,0x23,0x7a,0x25,0x21,0x7e,0x35,0x31, +0xad,0x32,0x7c,0x76,0x7c,0x65,0xa, 0x24,0x7a,0x35,0x21,0x7e,0x51,0x25,0x74,0x7, +0xac,0x5b,0x49,0x32,0xe, 0x53,0xac,0xbe,0x49,0x15,0xe, 0xd, 0xbd,0x13,0x38,0x3, +0x2, 0x4, 0x14,0x7d,0x2, 0x2e,0x4, 0xe, 0x53,0x7d,0x13,0x2e,0x15,0x21,0x1b,0x8, +0x10,0x2, 0x4, 0x1e,0x2e,0x24,0xe, 0x53,0x9e,0x35,0x21,0x1b,0x28,0x30,0x74,0x7, +0xac,0xbe,0x49,0x35,0xe, 0xf, 0x7e,0xa1,0x25,0x74,0x7, 0xa4,0x49,0x25,0xe, 0x55, +0x12,0x6d,0xf1,0x7d,0x23,0x7a,0x25,0x21,0x7e,0x35,0x31,0xad,0x32,0x7c,0x76,0x7c, +0x65,0xa, 0x24,0x7a,0x35,0x21,0x7e,0x51,0x25,0x74,0x7, 0xac,0x5b,0x49,0x32,0xe, +0x55,0xac,0xbe,0x49,0x15,0xe, 0xf, 0xbd,0x13,0x38,0x3, 0x2, 0x4, 0x6f,0x7d,0x2, +0x2e,0x4, 0xe, 0x55,0x7d,0x13,0x2e,0x15,0x21,0x1b,0x8, 0x10,0x2, 0x4, 0x79,0x2e, +0x24,0xe, 0x55,0x9e,0x35,0x21,0x1b,0x28,0x30,0xb, 0xe0,0xe5,0x26,0xbc,0xbe,0x28, +0x3, 0x2, 0x1, 0xf5,0x6c,0xee,0x74,0x7, 0xac,0xbe,0x49,0x45,0xe, 0x53,0x1e,0x44, +0x1e,0x44,0x1e,0x44,0x1e,0x44,0x7a,0x45,0x35,0x49,0x45,0xe, 0x55,0x1e,0x44,0x1e, +0x44,0x1e,0x44,0x1e,0x44,0x7a,0x45,0x37,0x9, 0xf5,0xe, 0x57,0x19,0xf5,0xe, 0x11, +0x74,0x7, 0xac,0xbe,0x9, 0x75,0xe, 0x58,0x19,0x75,0xe, 0x12,0x74,0x7, 0xac,0xbe, +0x9, 0x75,0xe, 0x59,0x19,0x75,0xe, 0x13,0x7c,0xbf,0x54,0xf, 0xbe,0xb0,0xa, 0x40, +0x3, 0x2, 0x5, 0xd7,0x7c,0xfb,0xa, 0xf, 0x7d,0x10,0x2e,0x15,0x33,0x7e,0x19,0xb0, +0xbe,0xb0,0x3, 0x78,0x3, 0x2, 0x5, 0xf4,0xb4,0x1, 0x2, 0x80,0x3, 0x2, 0x4, 0xf9, +0x74,0xff,0x19,0xb0,0x13,0x6, 0x2, 0x5, 0xd7,0x9, 0x90,0x13,0x6, 0xbe,0x90,0xff, +0x68,0x3, 0x2, 0x5, 0x4b,0x74,0x1, 0x19,0xb0,0x13,0x6, 0x7e,0x15,0x35,0x74,0x7, +0xac,0xbe,0x59,0x15,0xe, 0xd, 0x7e,0x15,0x37,0x74,0x7, 0xac,0xbe,0x59,0x15,0xe, +0xf, 0x6c,0xdd,0x7e,0x70,0x7, 0xac,0x7e,0x2e,0x34,0xe, 0xd, 0x7e,0x50,0x7, 0xac, +0x5d,0x7e,0x30,0x15,0xac,0x3f,0x2d,0x12,0x2e,0x14,0x12,0x34,0x74,0x7, 0x12,0x49, +0x26,0xb, 0xd0,0xbe,0xd0,0x3, 0x78,0xdb,0x2, 0x5, 0xd7,0xbe,0x90,0x3, 0x50,0x3, +0x2, 0x5, 0x58,0xe4,0x19,0xb0,0x13,0x6, 0x7e,0x25,0x35,0x9, 0x80,0x13,0x6, 0x7e, +0x90,0x7, 0xac,0x89,0x7e,0x70,0x15,0xac,0x7f,0x2d,0x43,0x59,0x24,0x12,0x34,0x7e, +0x25,0x37,0x59,0x24,0x12,0x36,0x7e,0xb3,0xf, 0x22,0x60,0x3, 0x2, 0x5, 0xa0,0xe4, +0x2e,0x34,0x12,0x34,0x12,0x68,0x47,0x74,0x7, 0xac,0xbe,0x59,0x35,0xe, 0xd, 0x74, +0x1, 0x7e,0x70,0x15,0xac,0x7f,0x2e,0x34,0x12,0x34,0x12,0x68,0x47,0x2, 0x5, 0xc2, +0x49,0x34,0x12,0x34,0x74,0x7, 0xac,0xbe,0x59,0x35,0xe, 0xd, 0xa, 0x3f,0x9, 0x43, +0x13,0x6, 0x7e,0x50,0x7, 0xac,0x45,0x7e,0x70,0x15,0xac,0x7f,0x2d,0x32,0x49,0x33, +0x12,0x36,0x74,0x7, 0xac,0xbe,0x59,0x35,0xe, 0xf, 0xa, 0x3f,0x2e,0x34,0x13,0x6, +0x7e,0x39,0xb0,0x4, 0x7a,0x39,0xb0,0x7c,0x1e,0x2e,0x10,0x27,0xa5,0xe7,0x60,0x3, +0x2, 0x5, 0xf4,0x7e,0x70,0x3, 0xac,0x7e,0x2e,0x34,0x12,0x1, 0x7e,0x24,0x0, 0x3, +0xe4,0x12,0x6e,0x21,0xb, 0xe0,0xbe,0xe0,0xa, 0x68,0x3, 0x2, 0x4, 0x86,0xe5,0x26, +0xbe,0xb0,0x0, 0x38,0x3, 0x2, 0x6, 0xe, 0x74,0x1, 0x7a,0xb3,0xf, 0x24,0xda,0x3b, +0x22,0xca,0x3b,0x7e,0xe3,0xf, 0x1b,0x4c,0xee,0x78,0x27,0x6c,0xff,0x6d,0x11,0x74, +0x2, 0xac,0xbf,0x59,0x15,0x13,0x56,0x7e,0xa0,0xff,0x7e,0x30,0x7, 0xac,0x3f,0x19, +0xa1,0x13,0x14,0x74,0x2, 0xa, 0x1f,0x19,0xb1,0x13,0x6a,0xb, 0xf0,0xbe,0xf0,0xa, +0x78,0xdb,0x6c,0xff,0x2, 0x7, 0xac,0x74,0x7, 0xac,0xbf,0x9, 0xb5,0xe, 0x11,0x54, +0xf, 0xf5,0x22,0xbe,0xb0,0xa, 0x40,0x3, 0x2, 0x7, 0xaa,0xe5,0x22,0xa, 0x1b,0x9, +0xb1,0xe, 0xdf,0xbe,0xb0,0x1, 0x78,0x3, 0x2, 0x7, 0x85,0x75,0x21,0x0, 0x7e,0x31, +0x21,0x74,0x7, 0xac,0x3b,0x9, 0x71,0x13,0x14,0x7a,0x71,0x23,0xbe,0x71,0x22,0x68, +0x3, 0x2, 0x7, 0x77,0x49,0x21,0x13,0x12,0x74,0x7, 0xac,0xbf,0x49,0x35,0xe, 0xf, +0x9d,0x32,0x12,0x6e,0x11,0x7d,0x63,0x7e,0xa1,0x21,0x74,0x7, 0xa4,0x49,0x25,0x13, +0x10,0x74,0x7, 0xac,0xbf,0x49,0x35,0xe, 0xd, 0x9d,0x32,0x12,0x6e,0x11,0x7d,0x3, +0x2d,0x6, 0xe5,0x23,0xa, 0x1b,0x9, 0xa1,0x13,0x6a,0xbe,0xa0,0x0, 0x28,0x18,0x7e, +0x71,0x23,0x74,0x2, 0xac,0x7b,0x59,0x3, 0x13,0x56,0x2e,0x14,0x13,0x6a,0x7c,0xba, +0x14,0x7a,0x19,0xb0,0x2, 0x7, 0xaa,0x7e,0xa1,0x23,0x74,0x2, 0xa4,0x49,0x15,0x13, +0x56,0xbe,0x14,0x0, 0x32,0x28,0x9, 0xbe,0x4, 0x0, 0x32,0x28,0x3, 0x2, 0x7, 0x71, +0x7d,0x41,0x2e,0x44,0x0, 0x32,0xbd,0x40,0x50,0x8, 0xbe,0x14,0x0, 0x32,0x28,0x2, +0x80,0x6f,0xbe,0x4, 0x0, 0x96,0x28,0x63,0xe5,0x22,0xa, 0x1b,0x9, 0xb1,0xe, 0xdf, +0x70,0x4, 0x74,0x3, 0x80,0x2, 0x74,0x1, 0x19,0xb1,0xe, 0xdf,0x7e,0xa0,0x3, 0xe5, +0x22,0xa, 0x1b,0x19,0xa1,0xe, 0xe9,0x7e,0x71,0x21,0x74,0x7, 0xac,0x7b,0x2e,0x34, +0x13,0x10,0x7e,0x14,0x13,0xb6,0x12,0x49,0x26,0xbe,0xe0,0x0, 0x28,0x2d,0x1b,0xe0, +0x7e,0x70,0x7, 0xac,0x7e,0x2e,0x34,0xe, 0xd, 0x7e,0x30,0x7, 0xac,0x3f,0x2e,0x14, +0xe, 0xd, 0x74,0x7, 0x12,0x49,0x26,0x7e,0x34,0x13,0xb6,0x7e,0x30,0x7, 0xac,0x3e, +0x2e,0x14,0xe, 0xd, 0x74,0x7, 0x12,0x49,0x26,0x1b,0xf0,0x7e,0xa1,0x23,0x74,0x2, +0xa4,0x59,0x5, 0x13,0x56,0x80,0x33,0x5, 0x21,0xe5,0x21,0xbe,0xb0,0xa, 0x50,0x3, +0x2, 0x6, 0x6e,0x80,0x25,0x6d,0x11,0x7e,0xa1,0x22,0x74,0x2, 0xa4,0x59,0x15,0x13, +0x56,0x7e,0xa0,0xff,0x7e,0x31,0x22,0x74,0x7, 0xac,0x3b,0x19,0xa1,0x13,0x14,0x7e, +0xa0,0x2, 0xe5,0x22,0xa, 0x1b,0x19,0xa1,0x13,0x6a,0xb, 0xf0,0xbc,0xef,0x28,0x3, +0x2, 0x6, 0x47,0x7a,0xe3,0xf, 0x1b,0x7e,0x24,0xe, 0xd, 0x7e,0x34,0x13,0x10,0x7e, +0x14,0x0, 0x46,0x12,0x6d,0x7d,0xda,0x3b,0x22,0x6c,0xaa,0x7e,0x50,0x2, 0xac,0x5a, +0x7d,0x12,0x2d,0x13,0x9, 0xb1,0x0, 0x1, 0x54,0x3f,0xa, 0xb, 0x3e,0x4, 0x3e,0x4, +0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x7e,0x19,0xb0,0x54,0x3f,0xa, 0x1b,0x4d, +0x10,0x2e,0x24,0x1c,0x36,0x1b,0x28,0x10,0xb, 0xa0,0xbe,0xa0,0x2, 0x40,0xcc,0x22, +0xd2,0x9f,0x6d,0x33,0x89,0x34,0xca,0x3b,0x7d,0x63,0x75,0x24,0xc, 0x75,0x25,0x0, +0x75,0x26,0x17,0x75,0x27,0x0, 0x7e,0x34,0x13,0xd0,0x7e,0x24,0x0, 0x28,0xe4,0x12, +0x6e,0x21,0x6c,0x66,0x2, 0x8, 0xed,0x74,0x2, 0xac,0xb6,0x9, 0x75,0xd, 0x18,0x7a, +0x71,0x23,0x9, 0xa5,0xd, 0x19,0x1a,0x17,0x7d,0x21,0x1b,0x25,0xb, 0x15,0x7c,0x43, +0x1a,0x1a,0x1b,0x15,0x1a,0xa, 0xb, 0x5, 0x7c,0x21,0xbe,0x50,0x0, 0x58,0x2, 0x6c, +0x55,0x7e,0x73,0x10,0x2b,0xa, 0x7, 0x1b,0x4, 0x1a,0x44,0xbd,0x40,0x8, 0x2, 0x7c, +0x41,0xbe,0x30,0x0, 0x58,0x2, 0x6c,0x33,0x7e,0x73,0x10,0x2c,0xa, 0x7, 0x1b,0x4, +0x1a,0x42,0xbd,0x40,0x8, 0x2, 0x7c,0x21,0xbe,0x51,0x24,0x58,0x3, 0x7a,0x51,0x24, +0xbe,0x41,0x25,0x8, 0x3, 0x7a,0x41,0x25,0xbe,0x31,0x26,0x58,0x3, 0x7a,0x31,0x26, +0xbe,0x21,0x27,0x8, 0x3, 0x7a,0x21,0x27,0x7c,0xf5,0x80,0x4b,0x7c,0xe3,0x80,0x41, +0x1a,0xef,0x7e,0xf4,0x0, 0x18,0xad,0xfe,0x1a,0xe, 0x2d,0xf, 0xe, 0x4, 0xe, 0x4, +0xe, 0x4, 0x7c,0x71,0x7a,0x71,0x21,0x7e,0x10,0x18,0xac,0x1f,0x7c,0xb1,0x2c,0xbe, +0x54,0x7, 0x7e,0x4, 0x0, 0x1, 0x60,0x5, 0x3e,0x4, 0x14,0x78,0xfb,0x7c,0xb1,0xf5, +0x22,0xa, 0x7, 0x2e,0x4, 0x13,0xd0,0x7e,0x9, 0xb0,0x45,0x22,0x7a,0x9, 0xb0,0xb, +0xe0,0xbc,0x2e,0x58,0xbb,0xb, 0xf0,0xbc,0x4f,0x58,0xb1,0xb, 0x60,0x7e,0x73,0xd, +0xf7,0xbc,0x76,0x28,0x3, 0x2, 0x8, 0x27,0xbe,0x70,0x0, 0x38,0x3, 0x2, 0xd, 0x43, +0x7e,0xe1,0x26,0x2, 0xd, 0x3a,0x6c,0xff,0x80,0x1f,0x1a,0x3e,0x3e,0x34,0x1a,0x2f, +0x7e,0x14,0x0, 0x30,0xad,0x12,0x2d,0x31,0x2d,0x36,0xb, 0x38,0x30,0xe, 0x34,0xe, +0x34,0x3e,0x24,0x59,0x32,0x13,0xb6,0xb, 0xf0,0x7e,0x73,0x10,0x2b,0xbc,0x7f,0x18, +0xd9,0x7e,0xf1,0x24,0x2, 0xd, 0x2f,0x1a,0x4f,0x7e,0x14,0x0, 0x18,0xad,0x14,0x1a, +0x3e,0x7d,0x51,0x2d,0x53,0xe, 0x54,0xe, 0x54,0xe, 0x54,0x7c,0xab,0x7a,0xa1,0x21, +0x7e,0x50,0x18,0xac,0x5f,0x7c,0xb5,0x2c,0xbe,0x54,0x7, 0x7e,0x24,0x0, 0x1, 0x60, +0x5, 0x3e,0x24,0x14,0x78,0xfb,0x7c,0xb5,0xf5,0x22,0xa, 0x2a,0x9, 0xb2,0x13,0xd0, +0x55,0x22,0x78,0x3, 0x2, 0xd, 0x2d,0xbe,0xf0,0x3, 0x58,0x3, 0x2, 0x9, 0xfe,0x7e, +0x53,0x10,0x2b,0xa, 0x25,0x1b,0x26,0xbd,0x42,0x18,0x73,0x7d,0xf4,0x3e,0xf4,0x49, +0x5f,0x13,0xba,0x49,0x2f,0x13,0xb2,0x2d,0x25,0x7d,0x52,0x3e,0x54,0x3e,0x24,0x3e, +0x24,0x3e,0x24,0x2d,0x25,0x49,0x5f,0x13,0xbc,0x49,0xef,0x13,0xb0,0x2d,0xe5,0x7d, +0x5e,0x3e,0x54,0x2d,0x5e,0x9d,0x25,0x49,0xef,0x13,0xb8,0x49,0x5f,0x13,0xb4,0x2d, +0x5e,0x7d,0xe5,0x3e,0xe4,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x2d, +0x5e,0x9d,0x25,0x49,0x5f,0x13,0xb6,0x7d,0x5, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x3e, +0x4, 0x7d,0x15,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x3e, +0x14,0x9d,0x10,0x3e,0x54,0x3e,0x54,0x2d,0x51,0x2d,0x52,0x2, 0xb, 0x55,0x4c,0xff, +0x78,0x5d,0x7d,0x24,0x3e,0x24,0x49,0x12,0x13,0xb6,0x7d,0x1, 0x3e,0x4, 0x3e,0x4, +0x3e,0x4, 0x3e,0x4, 0x7d,0x51,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x3e,0x54, +0x3e,0x54,0x2d,0x50,0x7d,0x1, 0x3e,0x4, 0x2d,0x5, 0x2d,0x1, 0x49,0x12,0x13,0xb8, +0x7d,0x51,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x9d,0x5, 0x3e,0x14,0x3e,0x14, +0x3e,0x14,0x9d,0x1, 0x49,0x12,0x13,0xba,0x7d,0x51,0x3e,0x54,0x3e,0x54,0x3e,0x54, +0x2d,0x50,0x9d,0x51,0x49,0x22,0x13,0xbc,0x3e,0x24,0x9d,0x52,0x2, 0xb, 0x55,0xbe, +0xf0,0x1, 0x78,0x69,0x7d,0x4, 0x3e,0x4, 0x49,0x10,0x13,0xb4,0x7d,0x21,0x3e,0x24, +0x3e,0x24,0x3e,0x24,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x2d,0x12,0x49,0x20, +0x13,0xb6,0x7d,0x52,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x3e,0x24,0x3e,0x24, +0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x9d,0x25,0x9d,0x21,0x49,0x10, +0x13,0xb8,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x9d,0x21,0x49,0x10, +0x13,0xba,0x7d,0x51,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x2d,0x51,0x2d,0x52,0x49,0x10, +0x13,0xbc,0x7d,0x21,0x3e,0x24,0x2d,0x21,0x9d,0x52,0x2, 0xb, 0x55,0xbe,0xf0,0x2, +0x68,0x3, 0x2, 0xb, 0x75,0x7d,0x4, 0x3e,0x4, 0x49,0x10,0x13,0xb4,0x7d,0x21,0x3e, +0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x2d,0x21,0x49,0x50,0x13,0xb2,0x7d, +0x15,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x9d,0x15,0x9d,0x12,0x49,0x20,0x13,0xb6,0x7d, +0xf2,0x3e,0xf4,0x3e,0xf4,0x3e,0xf4,0x3e,0xf4,0x7d,0x52,0x3e,0x54,0x3e,0x54,0x3e, +0x54,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x9d,0x5f,0x3e,0x24,0x3e,0x24,0x2d, +0x25,0x2d,0x21,0x49,0x50,0x13,0xb8,0x7d,0x15,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x3e, +0x14,0x3e,0x14,0x2d,0x15,0x9d,0x21,0x49,0x50,0x13,0xba,0x7d,0x15,0x3e,0x14,0x3e, +0x54,0x3e,0x54,0x3e,0x54,0x2d,0x51,0x2d,0x52,0x49,0x10,0x13,0xbc,0x7d,0x21,0x3e, +0x24,0x2d,0x21,0x9d,0x52,0xe, 0x54,0xe, 0x54,0xe, 0x54,0xe, 0x54,0xe, 0x54,0xe, +0x54,0x7d,0x23,0x3e,0x24,0x7e,0x14,0x0, 0x30,0xad,0x14,0x2d,0x21,0x2d,0x26,0x1b, +0x28,0x50,0x2, 0xd, 0x11,0x7e,0xa3,0x10,0x2b,0x7c,0xba,0x24,0xfd,0xbc,0xbf,0x68, +0x3, 0x2, 0xc, 0x11,0x3e,0x44,0x49,0x24,0x13,0xb2,0x7d,0x12,0x3e,0x14,0x3e,0x24, +0x3e,0x24,0x3e,0x24,0x2d,0x21,0x49,0x4, 0x13,0xb0,0x7d,0x10,0x3e,0x14,0x2d,0x10, +0x9d,0x21,0x49,0x4, 0x13,0xb4,0x7d,0x10,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x3e,0x14, +0x3e,0x14,0x2d,0x10,0x9d,0x21,0x49,0x14,0x13,0xb6,0x7d,0xf1,0x3e,0xf4,0x3e,0xf4, +0x3e,0xf4,0x3e,0xf4,0x7d,0x1, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, +0x3e,0x4, 0x3e,0x4, 0x9d,0xf, 0x3e,0x14,0x3e,0x14,0x2d,0x10,0x2d,0x12,0x49,0x4, +0x13,0xb8,0x7d,0x20,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x2d,0x20, +0x9d,0x12,0x49,0x4, 0x13,0xba,0x7d,0x20,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x9d,0x20, +0x2d,0x21,0xe, 0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0x2, 0xd, +0x0, 0x7c,0xba,0x24,0xfe,0xbc,0xbf,0x78,0x76,0x1a,0xf, 0x3e,0x4, 0x49,0x30,0x13, +0xb0,0x7d,0x23,0x3e,0x24,0x2d,0x23,0x49,0x10,0x13,0xb2,0x7d,0x31,0x3e,0x34,0x3e, +0x34,0x3e,0x34,0x2d,0x31,0x9d,0x32,0x49,0x20,0x13,0xb4,0x3e,0x24,0x3e,0x24,0x3e, +0x24,0x3e,0x24,0x3e,0x24,0x9d,0x32,0x49,0x20,0x13,0xb6,0x7d,0x12,0x3e,0x14,0x3e, +0x14,0x3e,0x14,0x3e,0x14,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e, +0x24,0x3e,0x24,0x9d,0x21,0x2d,0x23,0x49,0x30,0x13,0xb8,0x7d,0x13,0x3e,0x14,0x3e, +0x14,0x3e,0x14,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x2d,0x31,0x9d,0x23,0xe, +0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0x1a,0x3e,0x80,0x71,0x7e, +0xb3,0x10,0x2b,0x14,0xbc,0xbf,0x78,0x79,0x1a,0x5f,0x3e,0x54,0x49,0x25,0x13,0xb2, +0x7d,0x32,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x9d,0x32,0x49,0x25,0x13,0xb0,0x3e,0x24, +0x9d,0x32,0x49,0x25,0x13,0xb4,0x7d,0x42,0x3e,0x44,0x3e,0x44,0x3e,0x44,0x3e,0x24, +0x3e,0x24,0x3e,0x24,0x3e,0x24,0x2d,0x24,0x9d,0x32,0x49,0x15,0x13,0xb6,0x7d,0x21, +0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x7d,0x1, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, +0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x2d,0x2, 0x7d,0x21,0x3e,0x24,0x2d,0x20,0x2d,0x21, +0x2d,0x23,0xe, 0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0x1a,0x3e, +0x3e,0x34,0x1a,0xf, 0x7e,0x14,0x0, 0x30,0xad,0x10,0x2d,0x31,0x2d,0x36,0x1b,0x38, +0x20,0x1a,0x1e,0x3e,0x14,0x1a,0x2f,0x7e,0x34,0x0, 0x30,0xad,0x32,0x7d,0x23,0x2d, +0x21,0x2d,0x26,0xb, 0x28,0x30,0x3e,0x34,0x3e,0x34,0x1b,0x28,0x30,0xb, 0xf0,0xe5, +0x25,0xbc,0xbf,0x48,0x3, 0x2, 0x9, 0x37,0xb, 0xe0,0xe5,0x27,0xbc,0xbe,0x48,0x3, +0x2, 0x9, 0x6, 0xda,0x3b,0x22,0xca,0x3b,0x7c,0xfb,0x7e,0xb3,0xd, 0xf7,0xf5,0x2c, +0x75,0x10,0x0, 0xe4,0x7a,0xb3,0x15,0x54,0x7a,0xb3,0x15,0x55,0x6d,0x22,0x7e,0x34, +0x7f,0xff,0x7e,0x67,0xf, 0xda,0x6c,0xee,0xe4,0xa, 0x1e,0x19,0xb1,0x13,0xb6,0x6c, +0xaa,0x7e,0x10,0x2, 0xac,0x1e,0x19,0xa0,0x15,0x2b,0x19,0xb0,0x15,0x2c,0xe5,0x2c, +0xbc,0xbe,0x28,0x24,0x9, 0x20,0xd, 0x18,0x7e,0x30,0x18,0xac,0x23,0x9, 0x10,0xd, +0x19,0xa, 0x1, 0x2d,0x10,0x3e,0x14,0x2d,0x16,0xb, 0x18,0x10,0xbd,0x12,0x48,0x2, +0x7d,0x21,0xbd,0x13,0x18,0x2, 0x7d,0x31,0xb, 0xe0,0xbe,0xe0,0x14,0x78,0xb9,0x2d, +0x32,0xe, 0x34,0xe5,0x2c,0xbe,0xb0,0x2, 0x50,0x3, 0x2, 0x11,0x9d,0x6c,0xee,0x7e, +0x30,0x6, 0xac,0x3e,0x7d,0x51,0x2e,0x54,0x69,0x8f,0x7e,0x44,0x0, 0xff,0xb, 0x2a, +0x20,0xbd,0x23,0x58,0x20,0x7d,0x51,0x2e,0x54,0x69,0x91,0x7e,0x44,0x0, 0xff,0xb, +0x2a,0x20,0x7a,0x25,0x30,0x2e,0x14,0x69,0x93,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0x20, +0x7a,0x25,0x32,0x80,0x7, 0xb, 0xe0,0xbe,0xe0,0x7, 0x40,0xc3,0x6c,0xee,0x2, 0x11, +0x8b,0x7e,0x70,0x2, 0xac,0x7e,0x9, 0xb3,0xd, 0x18,0xf5,0x22,0x9, 0xb3,0xd, 0x19, +0xf5,0x23,0x4c,0xee,0x68,0x8, 0xa, 0x3e,0x9, 0xb3,0x13,0xb6,0x70,0xa, 0xa, 0x3e, +0xb, 0x34,0xa, 0x2e,0x19,0x72,0x13,0xb6,0xe5,0x2c,0x14,0xbc,0xbe,0x78,0x3, 0x2, +0x11,0x94,0xa, 0x5e,0xb, 0x54,0xf5,0x2d,0x2, 0x11,0x7f,0x7e,0x71,0x2d,0x74,0x2, +0xac,0x7b,0x9, 0xa3,0xd, 0x18,0x7a,0xa1,0x24,0x9, 0xb3,0xd, 0x19,0xf5,0x25,0xa, +0x2a,0xe5,0x22,0xa, 0x3b,0x9d,0x32,0x12,0x6e,0x11,0x7c,0xb7,0xf5,0x2a,0xe5,0x25, +0xa, 0x2b,0xe5,0x23,0xa, 0x3b,0x9d,0x32,0x12,0x6e,0x11,0x7c,0xb7,0xf5,0x2b,0x75, +0x3d,0x2, 0x75,0x2f,0x0, 0x7e,0x51,0x22,0x74,0x18,0xac,0x5b,0xe5,0x23,0xa, 0x3b, +0x2d,0x23,0x3e,0x24,0x2d,0x26,0xb, 0x28,0x20,0x7a,0x25,0x34,0x7e,0x11,0x24,0x74, +0x18,0xac,0x1b,0xe5,0x25,0xa, 0x1b,0x7d,0x20,0x2d,0x21,0x3e,0x24,0x2d,0x26,0xb, +0x28,0x20,0x7a,0x25,0x36,0x7d,0x52,0x3e,0x54,0x3e,0x54,0x3e,0x54,0xe, 0x54,0xe, +0x54,0xe, 0x54,0xe, 0x54,0x7a,0x55,0x38,0xbe,0x25,0x34,0x8, 0x14,0x7e,0x25,0x34, +0x3e,0x24,0x3e,0x24,0x3e,0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0x7a,0x25, +0x38,0xe5,0x2a,0xbe,0xb0,0x1, 0x38,0x37,0xe5,0x2b,0xbe,0xb0,0x1, 0x38,0x30,0x7c, +0xbf,0x54,0x2, 0xb4,0x2, 0x29,0x2d,0x3, 0x3e,0x4, 0x2d,0x6, 0xb, 0x8, 0x20,0x7e, +0x71,0x22,0x74,0x18,0xac,0x7b,0x2d,0x31,0x3e,0x34,0x2d,0x36,0xb, 0x38,0x30,0x2d, +0x32,0xbe,0x35,0x38,0x18,0x3, 0x2, 0x11,0x13,0x75,0x2f,0x1, 0x2, 0x11,0x13,0xe5, +0x2a,0xbe,0xb0,0x1, 0x38,0xa, 0xe5,0x2b,0xbe,0xb0,0x1, 0x38,0x3, 0x2, 0x11,0x13, +0xe5,0x2a,0xbe,0xb0,0x4, 0x40,0x3, 0x2, 0x11,0x13,0xe5,0x2b,0xbe,0xb0,0x4, 0x40, +0x3, 0x2, 0x11,0x13,0x7c,0xbf,0x54,0x1, 0xb4,0x1, 0x2, 0x80,0x3, 0x2, 0x11,0x13, +0x6d,0x33,0x7a,0x35,0x3a,0x75,0x3c,0x0, 0x85,0x22,0x26,0x85,0x24,0x28,0xe5,0x24, +0xbe,0xb1,0x22,0x50,0x6, 0x85,0x24,0x26,0x85,0x22,0x28,0x85,0x23,0x27,0x85,0x25, +0x29,0xe5,0x25,0xbe,0xb1,0x23,0x50,0x6, 0x85,0x25,0x27,0x85,0x23,0x29,0x75,0x40, +0x0, 0x75,0x41,0x0, 0xe5,0x28,0xbe,0xb1,0x26,0x78,0x21,0x75,0x40,0x1, 0xe5,0x26, +0x60,0x5, 0xe5,0x26,0xb4,0xc, 0x3, 0x75,0x41,0x1, 0xe5,0x26,0xbe,0xb0,0x0, 0x28, +0x2, 0x15,0x26,0xe5,0x28,0xbe,0xb0,0xc, 0x50,0x2, 0x5, 0x28,0xe5,0x29,0xbe,0xb1, +0x27,0x78,0x21,0x75,0x40,0x1, 0xe5,0x27,0x60,0x5, 0xe5,0x27,0xb4,0x17,0x3, 0x75, +0x41,0x1, 0xe5,0x27,0xbe,0xb0,0x0, 0x28,0x2, 0x15,0x27,0xe5,0x29,0xbe,0xb0,0x17, +0x50,0x2, 0x5, 0x29,0x85,0x26,0x3e,0x80,0x78,0x85,0x27,0x3f,0x80,0x6a,0xe5,0x26, +0xbe,0xb1,0x3e,0x68,0x15,0xe5,0x28,0xbe,0xb1,0x3e,0x68,0xe, 0xe5,0x27,0xbe,0xb1, +0x3f,0x68,0x7, 0xe5,0x29,0xbe,0xb1,0x3f,0x78,0x24,0x7e,0x51,0x3e,0x74,0x18,0xac, +0x5b,0xe5,0x3f,0xa, 0x1b,0x2d,0x21,0x3e,0x24,0x2d,0x26,0xb, 0x28,0x20,0xbe,0x24, +0x0, 0x0, 0x8, 0x6, 0x2e,0x25,0x3a,0x7a,0x25,0x3a,0x5, 0x3c,0x80,0x28,0x7e,0x51, +0x3e,0x74,0x18,0xac,0x5b,0xe5,0x3f,0xa, 0x1b,0x2d,0x21,0x3e,0x24,0x2d,0x26,0xb, +0x28,0x20,0xbe,0x25,0x32,0x8, 0xc, 0xe5,0x3d,0xbe,0xb0,0x0, 0x28,0x5, 0x75,0x3d, +0x1, 0x80,0x3, 0x75,0x3d,0x0, 0x5, 0x3f,0xe5,0x29,0xbe,0xb1,0x3f,0x50,0x8f,0x5, +0x3e,0xe5,0x28,0xbe,0xb1,0x3e,0x50,0x81,0x7e,0x51,0x28,0x74,0x18,0xac,0x5b,0xe5, +0x27,0xa, 0x4b,0x2d,0x24,0x3e,0x24,0x2d,0x26,0xb, 0x28,0x50,0x7e,0x25,0x3a,0x9d, +0x25,0x7e,0x31,0x26,0x74,0x18,0xac,0x3b,0xe5,0x29,0xa, 0xb, 0x7d,0x51,0x2d,0x50, +0x3e,0x54,0x2d,0x56,0xb, 0x58,0x50,0x9d,0x25,0x2d,0x14,0x3e,0x14,0x2d,0x16,0xb, +0x18,0x10,0x9d,0x21,0x7e,0x31,0x28,0x74,0x18,0xac,0x3b,0x2d,0x10,0x3e,0x14,0x2d, +0x16,0xb, 0x18,0x10,0x9d,0x21,0x7a,0x25,0x3a,0x7e,0x25,0x36,0x2e,0x25,0x34,0x7a, +0x25,0x38,0xe5,0x40,0xb4,0x1, 0x11,0xe5,0x41,0x70,0xd, 0x7e,0x25,0x3a,0x9e,0x25, +0x38,0x7a,0x25,0x3a,0x15,0x3c,0x15,0x3c,0xe5,0x3c,0xbe,0xb0,0x4, 0x28,0x6, 0xe5, +0x3c,0x24,0xfc,0xf5,0x3c,0x7e,0x25,0x3a,0xbe,0x24,0x0, 0x0, 0x58,0x3, 0x7a,0x35, +0x3a,0x7e,0x15,0x38,0x1a,0x2, 0x1a,0x0, 0x7e,0x35,0x30,0x1a,0x26,0x1a,0x24,0x12, +0x48,0x85,0xe5,0x3c,0xa, 0x1b,0x6d,0x0, 0x12,0x48,0x85,0x7f,0x21,0x7e,0x35,0x3a, +0x1a,0x26,0x1a,0x24,0x7e,0x14,0x0, 0x28,0x12,0x48,0x96,0xbf,0x12,0x8, 0xa, 0xe5, +0x3d,0xbe,0xb0,0x0, 0x28,0x3, 0x75,0x2f,0x2, 0x7e,0xb3,0xd, 0xfd,0xb4,0x1, 0x3, +0x75,0x2f,0x2, 0xe5,0x2f,0xbe,0xb0,0x0, 0x28,0x63,0xe5,0x2f,0xa, 0x3b,0x2e,0x34, +0x15,0x53,0x7e,0x39,0xb0,0x4, 0x7a,0x39,0xb0,0xe5,0x2d,0xa, 0x3b,0x9, 0xb3,0x13, +0xb6,0x70,0xc, 0xa, 0x2e,0x9, 0x52,0x13,0xb6,0x19,0x53,0x13,0xb6,0x80,0x3e,0x75, +0x2e,0x0, 0x80,0x32,0x9, 0x33,0x13,0xb6,0xa, 0x2e,0x9, 0xa2,0x13,0xb6,0xbc,0xa3, +0x28,0x12,0xe5,0x2e,0xa, 0x2b,0x9, 0x22,0x13,0xb6,0xbc,0x2a,0x78,0x16,0x19,0x32, +0x13,0xb6,0x80,0x10,0xe5,0x2e,0xa, 0x2b,0x9, 0xb2,0x13,0xb6,0xbc,0xb3,0x78,0x4, +0x19,0xa2,0x13,0xb6,0x5, 0x2e,0xe5,0x2c,0xbe,0xb1,0x2e,0x38,0xc7,0x5, 0x2d,0xe5, +0x2c,0xbe,0xb1,0x2d,0x28,0x3, 0x2, 0xe, 0x3b,0xb, 0xe0,0xe5,0x2c,0xbc,0xbe,0x28, +0x3, 0x2, 0xe, 0x1, 0x7e,0x34,0x13,0xb6,0x12,0x3b,0x6a,0xf5,0x10,0xda,0x3b,0x22, +0xca,0x3b,0x7c,0xf6,0x7c,0xe7,0x7c,0xdb,0x6c,0x33,0x6c,0x44,0x6c,0x22,0x6c,0x55, +0x7e,0x37,0xf, 0x61,0x7a,0x35,0x3e,0x6c,0xaa,0x7e,0x70,0x7, 0xac,0x7f,0x19,0xa3, +0xd, 0x70,0xe4,0x19,0xb3,0xd, 0x71,0xa, 0x5d,0x3e,0x54,0xb, 0x54,0x7c,0xab,0x7e, +0x70,0x2, 0xac,0x7e,0x9, 0xb3,0xd, 0x18,0xf5,0x39,0x9, 0xb3,0xd, 0x19,0xf5,0x3a, +0xbe,0xd1,0x3a,0x28,0x3, 0x2, 0x12,0xe, 0x7e,0xb3,0x10,0x2c,0xa, 0xb, 0x1b,0x4, +0xa, 0x3d,0x9d,0x3, 0xe5,0x3a,0xa, 0x3b,0xbd,0x30,0x8, 0x3, 0x2, 0x12,0xe, 0x7c, +0x3a,0xa, 0x4d,0xe5,0x3a,0xa, 0xb, 0x9d,0x4, 0x7c,0x51,0x2, 0x12,0x59,0xbe,0xd1, +0x3a,0x38,0x3, 0x2, 0x12,0x27,0xe5,0x3a,0xa, 0xb, 0xa, 0x3d,0x2d,0x30,0xb, 0x34, +0x7c,0x37,0x6c,0x55,0x2, 0x12,0x59,0xa, 0xfd,0xe5,0x3a,0xa, 0x4b,0x2d,0xf4,0x7e, +0xb3,0x10,0x2c,0xa, 0xb, 0x7d,0x30,0x1b,0x34,0xbd,0xf3,0x18,0x3, 0x2, 0x12,0x59, +0xbd,0x43,0x8, 0x3, 0x2, 0x12,0x59,0xa, 0x3d,0x2d,0x30,0xe5,0x3a,0xa, 0xb, 0x9d, +0x30,0x7c,0x37,0xa, 0x3d,0x9d,0x3, 0x7c,0x51,0xbe,0xd1,0x39,0x28,0x3, 0x2, 0x12, +0x83,0x7e,0xb3,0x10,0x2b,0xa, 0xb, 0x1b,0x4, 0xa, 0x3d,0x9d,0x3, 0xe5,0x39,0xa, +0x3b,0xbd,0x30,0x8, 0x3, 0x2, 0x12,0x83,0x7c,0x4a,0xa, 0xd, 0xe5,0x39,0xa, 0x3b, +0x2, 0x12,0xca,0xbe,0xd1,0x39,0x38,0x3, 0x2, 0x12,0x9c,0xe5,0x39,0xa, 0xb, 0xa, +0x3d,0x2d,0x30,0xb, 0x34,0x7c,0x47,0x6c,0x22,0x2, 0x12,0xce,0xa, 0x4d,0xe5,0x39, +0xa, 0x5b,0x2d,0x45,0x7e,0x73,0x10,0x2b,0xa, 0x37,0x7d,0x3, 0x1b,0x4, 0xbd,0x40, +0x18,0x3, 0x2, 0x12,0xce,0xbd,0x50,0x8, 0x3, 0x2, 0x12,0xce,0xa, 0xd, 0x2d,0x3, +0xe5,0x39,0xa, 0x3b,0x9d,0x3, 0x7c,0x41,0xa, 0xd, 0x9d,0x30,0x7c,0x27,0x7e,0x37, +0xf, 0xda,0x7c,0xb2,0x7e,0x23,0xf, 0x53,0x7e,0x4, 0x9, 0xc8,0x12,0x5c,0x9d,0x7e, +0x37,0x9, 0xc8,0x7d,0x3, 0x6d,0x11,0x7e,0x37,0x9, 0xca,0x7d,0x20,0x7a,0x1d,0x28, +0x7e,0x37,0x9, 0xcc,0x7d,0x3, 0x7e,0x37,0x9, 0xce,0x7d,0x20,0x7a,0x1d,0x2c,0x7e, +0x37,0x9, 0xd0,0x7d,0x3, 0x7e,0x37,0x9, 0xd2,0x7d,0x20,0x7a,0x1d,0x30,0x7e,0x37, +0x9, 0xd4,0x7d,0x3, 0x7e,0x37,0x9, 0xd6,0x7d,0x20,0x7a,0x1d,0x34,0xa, 0x2d,0xe5, +0x39,0xa, 0x3b,0x9d,0x32,0x7c,0xc7,0x2, 0x15,0x24,0xa, 0x4d,0xe5,0x3a,0xa, 0x5b, +0x9d,0x54,0xf5,0x38,0x2, 0x15,0xd, 0xbe,0xc0,0x0, 0x58,0x3, 0x2, 0x15,0xb, 0x7e, +0x73,0x10,0x2b,0xbc,0x7c,0x18,0x3, 0x2, 0x15,0xb, 0xe5,0x38,0xbe,0xb0,0x0, 0x58, +0x3, 0x2, 0x15,0xb, 0x7e,0x73,0x10,0x2c,0xbe,0x71,0x38,0x18,0x3, 0x2, 0x15,0xb, +0xe5,0x38,0x1a,0x1b,0x3e,0x14,0x1a,0x2c,0x7e,0x34,0x0, 0x30,0xad,0x32,0x2d,0x31, +0x2e,0x37,0xf, 0xda,0xb, 0x38,0x30,0x7e,0x53,0xf, 0x53,0xa, 0x25,0x9d,0x32,0x7a, +0x35,0x3c,0xbe,0x34,0x0, 0x0, 0x18,0x3, 0x2, 0x15,0xb, 0x7e,0x35,0x3e,0xbe,0x35, +0x3c,0x28,0x3, 0x2, 0x13,0xa6,0x7e,0x70,0x7, 0xac,0x7f,0x2e,0x34,0xd, 0x71,0x7e, +0x39,0xb0,0x4, 0x7a,0x39,0xb0,0xe5,0x39,0xa, 0x2b,0x1a,0x3c,0x9d,0x32,0x12,0x6e, +0x11,0xbe,0x34,0x0, 0x1, 0x8, 0x3, 0x2, 0x13,0xd0,0xe5,0x3a,0xa, 0x2b,0xe5,0x38, +0x1a,0x3b,0x9d,0x32,0x12,0x6e,0x11,0xbe,0x34,0x0, 0x1, 0x18,0x3, 0x2, 0x15,0xb, +0x75,0x3b,0x0, 0x2, 0x14,0x60,0xbe,0xe1,0x3b,0x78,0x3, 0x2, 0x14,0x5e,0xe5,0x3b, +0x1a,0x3b,0x3e,0x34,0x9, 0x73,0xd, 0x18,0xa, 0x27,0x1a,0x3c,0x9d,0x32,0x12,0x6e, +0x11,0xbe,0x34,0x0, 0x1, 0x8, 0x3, 0x2, 0x14,0x1e,0xe5,0x3b,0x1a,0x3b,0x3e,0x34, +0x9, 0x73,0xd, 0x19,0xa, 0x27,0xe5,0x38,0x1a,0x3b,0x9d,0x32,0x12,0x6e,0x11,0xbe, +0x34,0x0, 0x1, 0x8, 0x3, 0x2, 0x14,0x1e,0x75,0x3b,0xff,0x2, 0x14,0x6c,0xe5,0x3b, +0x1a,0x3b,0x3e,0x34,0x9, 0x73,0xd, 0x18,0xa, 0x27,0x1a,0x3c,0x9d,0x32,0x12,0x6e, +0x11,0xbe,0x34,0x0, 0x2, 0x8, 0x3, 0x2, 0x14,0x5e,0xe5,0x3b,0x1a,0x3b,0x3e,0x34, +0x9, 0x73,0xd, 0x19,0xa, 0x27,0xe5,0x38,0x1a,0x3b,0x9d,0x32,0x12,0x6e,0x11,0xbe, +0x34,0x0, 0x2, 0x8, 0x3, 0x2, 0x14,0x5e,0x75,0x3b,0x0, 0x2, 0x14,0x6c,0x5, 0x3b, +0x7e,0x73,0xd, 0xf7,0xbe,0x71,0x3b,0x8, 0x3, 0x2, 0x13,0xd6,0xe5,0x3b,0x60,0x3, +0x2, 0x14,0xc0,0x7e,0x35,0x3c,0x7d,0x23,0xe, 0x24,0x9d,0x32,0x7a,0x35,0x3c,0x7e, +0xf5,0x3c,0x7d,0x3f,0x1a,0x36,0x1a,0xe6,0x1a,0x1c,0x1a,0x2, 0x7f,0x17,0x12,0x48, +0x85,0x7f,0x1, 0x7e,0x1d,0x2c,0x9f,0x10,0x7a,0x1d,0x2c,0xe5,0x38,0x1a,0x1b,0x1a, +0x2, 0x7f,0x17,0x12,0x48,0x85,0x7f,0x1, 0x7e,0x1d,0x34,0x9f,0x10,0x7a,0x1d,0x34, +0x7e,0x1d,0x28,0x9f,0x17,0x7a,0x1d,0x28,0x7e,0x1d,0x30,0x9f,0x17,0x7a,0x1d,0x30, +0xe5,0x3b,0xb4,0xff,0x2, 0x80,0x3, 0x2, 0x15,0xb, 0x7e,0xf5,0x3c,0x7d,0x3f,0x1a, +0x36,0x1a,0xe6,0x1a,0x1c,0x1a,0x2, 0x7f,0x17,0x12,0x48,0x85,0x7f,0x1, 0x7e,0x1d, +0x2c,0x9f,0x10,0x7a,0x1d,0x2c,0xe5,0x38,0x1a,0x1b,0x1a,0x2, 0x7f,0x17,0x12,0x48, +0x85,0x7f,0x1, 0x7e,0x1d,0x34,0x9f,0x10,0x7a,0x1d,0x34,0x7e,0x1d,0x28,0x9f,0x17, +0x7a,0x1d,0x28,0x7e,0x1d,0x30,0x9f,0x17,0x7a,0x1d,0x30,0x5, 0x38,0xa, 0x2d,0xe5, +0x3a,0xa, 0x3b,0x2d,0x32,0x1a,0x27,0xe5,0x38,0x1a,0x3b,0xbd,0x32,0x18,0x3, 0x2, +0x13,0x37,0xb, 0xc0,0xa, 0x2d,0xe5,0x39,0xa, 0x3b,0x2d,0x32,0x1a,0x27,0x1a,0x3c, +0xbd,0x32,0x18,0x3, 0x2, 0x13,0x2a,0x74,0x6, 0x7e,0x1d,0x2c,0x2f,0x11,0x14,0x78, +0xfb,0x7a,0x1d,0x2c,0x7e,0xd, 0x28,0x7e,0x1d,0x2c,0x12,0x48,0xa1,0x2e,0x34,0x0, +0x20,0x7e,0xd0,0x7, 0xac,0xdf,0x59,0x36,0xd, 0x6b,0x74,0x6, 0x7e,0x1d,0x34,0x2f, +0x11,0x14,0x78,0xfb,0x7a,0x1d,0x34,0x7e,0x7d,0x30,0x7e,0x1d,0x34,0x7f,0x7, 0x12, +0x48,0xa1,0x2e,0x34,0x0, 0x20,0x59,0x36,0xd, 0x6d,0x7e,0xb3,0xf, 0x60,0x7f,0x17, +0x70,0x3, 0x2, 0x15,0x91,0x1e,0x34,0x1e,0x24,0x50,0x3, 0x4e,0x60,0x80,0x14,0x78, +0xf4,0x7a,0x1d,0x30,0xbe,0x18,0x0, 0x7f,0x38,0x3, 0x2, 0x15,0xa4,0x7e,0x18,0x0, +0x7f,0x7a,0x1d,0x30,0x7e,0x2d,0x30,0x7c,0xab,0x7e,0x70,0x7, 0xac,0x7f,0x19,0xa3, +0xd, 0x70,0x74,0x7, 0xac,0xbe,0x9, 0xa5,0xd, 0x71,0x7e,0x70,0x7, 0xac,0x7f,0x19, +0xa3,0xd, 0x71,0x74,0x7, 0xac,0xbf,0x9, 0x75,0xd, 0x71,0xbe,0x70,0xf, 0x38,0x3, +0x2, 0x15,0xdf,0x7e,0xa0,0xf, 0x7e,0x70,0x7, 0xac,0x7f,0x19,0xa3,0xd, 0x71,0xda, +0x3b,0x22,0xca,0x3b,0x7c,0x6b,0xbe,0x60,0x3, 0x40,0x6, 0x74,0x1, 0x7a,0xb3,0x11, +0x96,0xa5,0xbe,0x1, 0x58,0x7e,0xa3,0x10,0x2b,0xbc,0xa7,0x28,0xd, 0x7a,0x71,0xd, +0x74,0x30,0xac,0x7b,0x2e,0x37,0x16,0x9b,0x80,0x3c,0x7a,0x71,0xd, 0xbc,0xa7,0x78, +0x6, 0x7e,0x34,0x8, 0x9a,0x80,0x2f,0xa, 0x2a,0x7d,0x2, 0xb, 0x4, 0xa, 0x17,0xbd, +0x10,0x78,0x6, 0x7e,0x34,0x8, 0xca,0x80,0x1d,0x7d,0x2, 0xb, 0x5, 0xbd,0x10,0x78, +0x6, 0x7e,0x34,0x9, 0x2e,0x80,0xf, 0x2e,0x24,0x0, 0x3, 0xbd,0x12,0x68,0x3, 0x2, +0x19,0x6a,0x7e,0x34,0x9, 0x5e,0x7a,0x37,0x0, 0xfb,0x2, 0x19,0x6a,0xa5,0xbe,0x0, +0x46,0x7e,0x64,0x0, 0xb, 0x7a,0x69,0x70,0x7c,0xb7,0x54,0x70,0xc4,0x54,0xf, 0x7c, +0x7b,0x4c,0x77,0x68,0x4, 0xa5,0xbf,0x1, 0x15,0x7e,0xb3,0x10,0xa5,0xb4,0x3, 0x7, +0x74,0x1, 0x7e,0x70,0x1, 0x80,0x36,0x74,0x27,0x7e,0x70,0x1, 0x80,0x13,0x7e,0xb3, +0x10,0xa5,0xb4,0x3, 0x7, 0x74,0x1, 0x7e,0x70,0x3, 0x80,0x21,0x74,0x27,0x7e,0x70, +0x3, 0x12,0x6d,0xe0,0x2, 0x19,0x6a,0xa5,0xbe,0x2, 0x23,0xa5,0xbf,0x4, 0x7, 0x74, +0x1, 0x7e,0x70,0x4, 0x80,0x7, 0xa5,0xbf,0x5, 0x9, 0xe4,0x6c,0x77,0x12,0x0, 0x5e, +0x2, 0x19,0x6a,0xbe,0x70,0x1, 0x50,0x3, 0x2, 0x19,0x6a,0x2, 0x19,0x6a,0xa5,0xbe, +0x3, 0x15,0xbe,0x70,0xd, 0x28,0x9, 0x74,0xd, 0x7a,0xb3,0x10,0x2b,0x2, 0x19,0x6a, +0x7a,0x73,0x10,0x2b,0x2, 0x19,0x6a,0xa5,0xbe,0x4, 0x15,0xbe,0x70,0x18,0x28,0x9, +0x74,0x18,0x7a,0xb3,0x10,0x2c,0x2, 0x19,0x6a,0x7a,0x73,0x10,0x2c,0x2, 0x19,0x6a, +0xa5,0xbe,0x5, 0x7, 0x7a,0x73,0x10,0x2d,0x2, 0x19,0x6a,0xa5,0xbe,0x7, 0x1e,0x7a, +0x73,0x10,0x4b,0x7c,0xb7,0x54,0x3f,0xa, 0x2b,0x3e,0x24,0x3e,0x24,0x7e,0x37,0x10, +0x54,0x5e,0x70,0x3, 0x4d,0x32,0x7a,0x37,0x10,0x54,0x2, 0x19,0x6a,0xa5,0xbe,0x8, +0x14,0x7e,0xb3,0x10,0x3b,0x70,0x7, 0x7a,0x73,0xa, 0xac,0x2, 0x19,0x6a,0x7a,0x73, +0x11,0x16,0x2, 0x19,0x6a,0xa5,0xbe,0x9, 0x1c,0xbe,0x70,0xa, 0x50,0x3, 0x7e,0x70, +0xa, 0x7e,0xb3,0x10,0x3b,0x70,0x7, 0x7a,0x73,0xa, 0xad,0x2, 0x19,0x6a,0x7a,0x73, +0x11,0x49,0x2, 0x19,0x6a,0xa5,0xbe,0xa, 0x10,0xa5,0xbf,0x0, 0x3, 0xe4,0x80,0x2, +0x74,0x1, 0x7a,0xb3,0x10,0x3b,0x2, 0x19,0x6a,0xa5,0xbe,0xb, 0x14,0x7e,0xb3,0x10, +0x3b,0x70,0x7, 0x7a,0x73,0xa, 0xae,0x2, 0x19,0x6a,0x7a,0x73,0x11,0x94,0x2, 0x19, +0x6a,0xa5,0xbe,0xc, 0x14,0x7e,0xb3,0x10,0x3b,0x70,0x7, 0x7a,0x73,0xd, 0xfe,0x2, +0x19,0x6a,0x7a,0x73,0x11,0x9d,0x2, 0x19,0x6a,0xa5,0xbe,0x4c,0x7, 0x7a,0x73,0xf, +0x46,0x2, 0x19,0x6a,0xa5,0xbe,0xfb,0x29,0x7a,0x71,0x8, 0x7e,0x37,0x10,0x50,0x5e, +0x70,0xdf,0x7a,0x37,0x10,0x50,0xe5,0x8, 0x54,0x1, 0xa, 0x3b,0x3e,0x34,0x3e,0x34, +0x3e,0x34,0x3e,0x34,0x3e,0x34,0x4e,0x37,0x10,0x50,0x7a,0x37,0x10,0x50,0x2, 0x19, +0x6a,0xa5,0xbe,0x4e,0x7, 0x7a,0x73,0x10,0x4a,0x2, 0x19,0x6a,0xa5,0xbe,0x4f,0x6, +0x12,0x0, 0x6, 0x2, 0x19,0x6a,0xbe,0x60,0x50,0x40,0x12,0xbe,0x60,0x51,0x38,0xd, +0xa, 0x26,0x2e,0x27,0x10,0x2f,0x9e,0x24,0x0, 0x50,0x2, 0x19,0x54,0xbe,0x60,0x52, +0x40,0x12,0xbe,0x60,0x55,0x38,0xd, 0xa, 0x26,0x2e,0x27,0x10,0x31,0x9e,0x24,0x0, +0x52,0x2, 0x19,0x54,0xbe,0x60,0x56,0x40,0x12,0xbe,0x60,0x62,0x38,0xd, 0xa, 0x26, +0x2e,0x27,0x10,0x33,0x9e,0x24,0x0, 0x56,0x2, 0x19,0x54,0xbe,0x60,0x63,0x40,0x12, +0xbe,0x60,0x7a,0x38,0xd, 0xa, 0x26,0x2e,0x27,0x10,0x35,0x9e,0x24,0x0, 0x63,0x2, +0x19,0x54,0xbe,0x60,0x7b,0x50,0x3, 0x2, 0x18,0xe8,0xbe,0x60,0x9f,0x28,0x3, 0x2, +0x18,0xe8,0x7e,0xb3,0x10,0x3b,0x70,0x48,0xa, 0x26,0x9e,0x24,0x0, 0x7b,0xbe,0x24, +0x0, 0x18,0x58,0x20,0xa, 0x26,0x2e,0x27,0x10,0x35,0x9e,0x24,0x0, 0x7b,0x7e,0x29, +0xf0,0x7c,0xbf,0x30,0xe0,0xa, 0xa, 0x7f,0x2e,0x74,0x0, 0x18,0xe, 0x74,0x80,0x17, +0x1e,0xf0,0x80,0x13,0xa, 0x26,0x2e,0x27,0x10,0x33,0x9e,0x24,0x0, 0x93,0x7e,0x29, +0x60,0xa, 0x76,0x2e,0x74,0x0, 0x18,0xa, 0x2f,0x19,0x72,0xf, 0xdc,0x2, 0x19,0x6a, +0xa, 0x26,0x9e,0x24,0x0, 0x7b,0xbe,0x24,0x0, 0x18,0x58,0x20,0xa, 0x26,0x2e,0x27, +0x10,0x35,0x9e,0x24,0x0, 0x7b,0x7e,0x29,0xf0,0x7c,0xbf,0x30,0xe0,0xa, 0xa, 0x7f, +0x2e,0x74,0x0, 0x18,0xe, 0x74,0x80,0x17,0x1e,0xf0,0x80,0x13,0xa, 0x26,0x2e,0x27, +0x10,0x33,0x9e,0x24,0x0, 0x93,0x7e,0x29,0x60,0xa, 0x76,0x2e,0x74,0x0, 0x18,0xa, +0x2f,0x19,0x72,0xf, 0x63,0x2, 0x19,0x6a,0xbe,0x60,0xa0,0x40,0x11,0xbe,0x60,0xac, +0x38,0xc, 0xa, 0x26,0x2e,0x27,0x10,0x6c,0x9e,0x24,0x0, 0xa0,0x80,0x56,0xbe,0x60, +0xad,0x40,0x11,0xbe,0x60,0xb9,0x38,0xc, 0xa, 0x26,0x2e,0x27,0x10,0x6e,0x9e,0x24, +0x0, 0xad,0x80,0x40,0xbe,0x60,0xba,0x40,0x11,0xbe,0x60,0xd1,0x38,0xc, 0xa, 0x26, +0x2e,0x27,0x10,0x70,0x9e,0x24,0x0, 0xba,0x80,0x2a,0xbe,0x60,0xd2,0x40,0x11,0xbe, +0x60,0xd5,0x38,0xc, 0xa, 0x26,0x2e,0x27,0x10,0x72,0x9e,0x24,0x0, 0xd2,0x80,0x14, +0xbe,0x60,0xd6,0x40,0x14,0xbe,0x60,0xed,0x38,0xf, 0xa, 0x26,0x2e,0x27,0x10,0x74, +0x9e,0x24,0x0, 0xd6,0x7a,0x29,0x70,0x80,0x11,0xa5,0xbe,0xf8,0x6, 0x7a,0x73,0x11, +0xe8,0x80,0x7, 0xa5,0xbe,0xfe,0x3, 0x7a,0x71,0xc, 0xda,0x3b,0x22,0xca,0x3b,0xe4, +0x7a,0xb3,0x13,0xde,0x7e,0x34,0xe, 0xdf,0x7a,0x35,0x23,0x6c,0xee,0x7e,0xa0,0xff, +0x7e,0x70,0x7, 0xac,0x7e,0x19,0xa3,0xe, 0x11,0x74,0xff,0xa, 0x3e,0x19,0xb3,0x13, +0xca,0x7e,0x34,0xff,0xff,0x74,0x2, 0xac,0xbe,0x59,0x35,0x13,0xb6,0xe4,0xa, 0x3e, +0x19,0xb3,0x13,0xd4,0xb, 0xe0,0xbe,0xe0,0xa, 0x78,0xd2,0x7e,0xb3,0xf, 0x1b,0x60, +0x3, 0x2, 0x19,0xe5,0x7e,0xb3,0xf, 0x1c,0x70,0x3, 0x2, 0x1c,0x18,0x6c,0xee,0x7e, +0x34,0xff,0xff,0x7e,0x50,0x2, 0xac,0x5e,0x2e,0x25,0x23,0x59,0x32,0x0, 0x14,0x7e, +0x50,0x2, 0xac,0x5e,0x2e,0x25,0x23,0x59,0x32,0x0, 0x28,0xb, 0xe0,0xbe,0xe0,0xa, +0x78,0xdd,0x2, 0x1c,0x18,0x7e,0xb3,0xf, 0x1c,0x60,0x3, 0x2, 0x1a,0x38,0x6c,0xee, +0x2, 0x1a,0x2d,0x74,0x7, 0xac,0xbe,0x49,0x35,0xe, 0xd, 0x7e,0x50,0x2, 0xac,0x5e, +0x2e,0x25,0x23,0x59,0x32,0x0, 0x14,0x74,0x7, 0xac,0xbe,0x49,0x35,0xe, 0xf, 0x7e, +0x50,0x2, 0xac,0x5e,0x2e,0x25,0x23,0x59,0x32,0x0, 0x28,0x74,0x7, 0xac,0xbe,0x19, +0xe5,0xe, 0x11,0x74,0x1, 0xa, 0x3e,0x19,0xb3,0x13,0xd4,0xb, 0xe0,0x7e,0x73,0xf, +0x1b,0xbc,0x7e,0x38,0xbe,0x2, 0x1c,0x18,0x6c,0xee,0x2, 0x1a,0xb7,0x6c,0xff,0xa, +0x3f,0x2e,0x35,0x23,0x9, 0xb3,0x0, 0xa, 0xbe,0xb0,0x3, 0x78,0x3, 0x2, 0x1a,0xae, +0xbe,0xb0,0x1, 0x78,0x3, 0x2, 0x1a,0xae,0x7e,0x70,0x2, 0xac,0x7f,0x2e,0x35,0x23, +0x49,0x23,0x0, 0x28,0x74,0x7, 0xac,0xbe,0x49,0x35,0xe, 0xf, 0x9d,0x32,0x12,0x6e, +0x11,0x7d,0x63,0x7e,0x70,0x2, 0xac,0x7f,0x2e,0x35,0x23,0x49,0x23,0x0, 0x14,0x74, +0x7, 0xac,0xbe,0x49,0x35,0xe, 0xd, 0x9d,0x32,0x12,0x6e,0x11,0x2d,0x36,0x7a,0x35, +0x21,0x74,0x2, 0xac,0xbe,0x49,0x45,0x13,0xb6,0xbe,0x45,0x21,0x38,0x3, 0x2, 0x1a, +0xae,0xa, 0x4e,0x19,0xf4,0x13,0xca,0x7e,0x35,0x21,0x59,0x35,0x13,0xb6,0xb, 0xf0, +0xbe,0xf0,0xa, 0x78,0x8a,0xb, 0xe0,0x7e,0x73,0xf, 0x1b,0xbc,0x7e,0x28,0x3, 0x2, +0x1a,0x3d,0x6c,0xee,0x2, 0x1b,0x6e,0x74,0x1, 0x7a,0xb3,0x13,0xde,0x6c,0xff,0x2, +0x1b,0xd, 0xbc,0xfe,0x78,0x3, 0x2, 0x1b,0xb, 0xa, 0x3f,0x9, 0x63,0x13,0xca,0xa, +0x2e,0x9, 0x72,0x13,0xca,0xbc,0x76,0x68,0x3, 0x2, 0x1b,0xb, 0x74,0x2, 0xac,0xbf, +0x49,0x25,0x13,0xb6,0x74,0x2, 0xac,0xbe,0x49,0x35,0x13,0xb6,0xbd,0x32,0x50,0x3, +0x2, 0x1b,0xb, 0xe4,0x7a,0xb3,0x13,0xde,0x2, 0x1b,0x15,0xb, 0xf0,0x7e,0x73,0xf, +0x1b,0xbc,0x7f,0x38,0xbd,0x7e,0xb3,0x13,0xde,0xb4,0x1, 0x2, 0x80,0x3, 0x2, 0x1b, +0x6c,0x74,0x1, 0xa, 0x3e,0x9, 0xa3,0x13,0xca,0xa, 0x4a,0x19,0xb4,0x13,0xd4,0x7e, +0x70,0x7, 0xac,0x7e,0x19,0xa3,0xe, 0x11,0x74,0x7, 0xac,0xbe,0x49,0x35,0xe, 0xd, +0xa, 0x2e,0x9, 0x42,0x13,0xca,0x7e,0x50,0x2, 0xac,0x45,0x2e,0x25,0x23,0x59,0x32, +0x0, 0x14,0x74,0x7, 0xac,0xbe,0x49,0x35,0xe, 0xf, 0xa, 0x2e,0x9, 0x42,0x13,0xca, +0x7e,0x50,0x2, 0xac,0x45,0x2e,0x25,0x23,0x59,0x32,0x0, 0x28,0xb, 0xe0,0x7e,0x73, +0xf, 0x1b,0xbc,0x7e,0x28,0x3, 0x2, 0x1a,0xc7,0x6c,0xee,0x2, 0x1b,0xdd,0x74,0x7, +0xac,0xbe,0x9, 0xb5,0xe, 0x11,0xb4,0xff,0x2, 0x80,0x3, 0x2, 0x1b,0xdb,0x6c,0xff, +0xa, 0x3f,0x9, 0xb3,0x13,0xd4,0x60,0x3, 0x2, 0x1b,0xd4,0x74,0x1, 0x19,0xb3,0x13, +0xd4,0x74,0x7, 0xac,0xbe,0x49,0x35,0xe, 0xd, 0x7e,0x50,0x2, 0xac,0x5f,0x2e,0x25, +0x23,0x59,0x32,0x0, 0x14,0x74,0x7, 0xac,0xbe,0x49,0x35,0xe, 0xf, 0x7e,0x50,0x2, +0xac,0x5f,0x2e,0x25,0x23,0x59,0x32,0x0, 0x28,0x74,0x7, 0xac,0xbe,0x19,0xf5,0xe, +0x11,0x2, 0x1b,0xdb,0xb, 0xf0,0xbe,0xf0,0xa, 0x40,0xb5,0xb, 0xe0,0x7e,0x73,0xf, +0x1b,0xbc,0x7e,0x38,0x99,0x6c,0xee,0xa, 0x3e,0x9, 0xb3,0x13,0xd4,0xbe,0xb0,0x1, +0x78,0x3, 0x2, 0x1c,0x11,0x7e,0x34,0xff,0xff,0x7e,0x50,0x2, 0xac,0x5e,0x2e,0x25, +0x23,0x59,0x32,0x0, 0x14,0x7e,0x50,0x2, 0xac,0x5e,0x2e,0x25,0x23,0x59,0x32,0x0, +0x28,0xb, 0xe0,0xbe,0xe0,0xa, 0x78,0xcf,0x7e,0xf3,0xf, 0x1b,0x6c,0xee,0xa, 0x3e, +0x9, 0xb3,0x13,0xd4,0xb4,0x1, 0x2, 0x80,0x3, 0x2, 0x1c,0x6a,0xa, 0x3e,0x2e,0x35, +0x23,0x9, 0xb3,0x0, 0xa, 0xb4,0x1, 0x2, 0x80,0x3, 0x2, 0x1c,0x43,0x74,0x3, 0x19, +0xb3,0x0, 0xa, 0xa, 0x3e,0x2e,0x35,0x23,0x9, 0xa3,0x0, 0xa, 0xbe,0xa0,0x3, 0x68, +0x3, 0x2, 0x1c,0x5b,0xe4,0x7a,0x39,0xb0,0x2, 0x1c,0x98,0x4c,0xaa,0x68,0x3, 0x2, +0x1c,0x98,0x74,0x2, 0x7a,0x39,0xb0,0x2, 0x1c,0x98,0xa, 0x3e,0x2e,0x35,0x23,0x9, +0xb3,0x0, 0xa, 0xbe,0xb0,0x2, 0x78,0x3, 0x2, 0x1c,0x80,0x60,0x3, 0x2, 0x1c,0x93, +0x74,0x1, 0x7a,0x39,0xb0,0x7c,0xaf,0xb, 0xf0,0x74,0x7, 0xa4,0x19,0xe5,0xe, 0x11, +0x2, 0x1c,0x98,0x74,0x3, 0x7a,0x39,0xb0,0xa, 0x2e,0x2e,0x25,0x23,0x7e,0x29,0x70, +0x19,0x72,0x0, 0xa, 0xb, 0xe0,0xbe,0xe0,0xa, 0x50,0x3, 0x2, 0x1c,0x1e,0xda,0x3b, +0x22,0xca,0x3b,0x75,0x24,0x0, 0x75,0x26,0x0, 0x75,0x27,0x0, 0x75,0x28,0x0, 0x7e, +0x34,0xe, 0xdf,0x7a,0x35,0x2a,0x7e,0xa3,0xf, 0x24,0x4c,0xaa,0x78,0xf, 0x7e,0xb3, +0xf, 0x20,0x70,0x9, 0x7e,0xb3,0xf, 0x21,0x70,0x3, 0x2, 0x1f,0x70,0x4c,0xaa,0x78, +0x11,0x7e,0xb3,0xf, 0x20,0x60,0x16,0x80,0x9, 0x7e,0x73,0x16,0xba,0xbe,0x70,0xf, +0x38,0x6, 0x7e,0xb3,0x15,0xde,0x60,0xf1,0xe4,0x7a,0xb3,0x15,0xde,0x20,0x0, 0x6, +0x7e,0x74,0x0, 0x76,0x80,0x4, 0x7e,0x74,0x0, 0xb8,0x7d,0x37,0x7e,0x24,0x0, 0x42, +0x74,0xff,0x12,0x6e,0x21,0x74,0xaa,0x7a,0x79,0xb0,0x19,0xb7,0x0, 0x1, 0x7e,0x73, +0xf, 0x1d,0x19,0x77,0x0, 0x3, 0x75,0x25,0x0, 0x6c,0xdd,0x2, 0x1e,0xfd,0x7e,0x70, +0x7, 0xac,0x7d,0x9, 0xa3,0xe, 0x9d,0x7a,0xa1,0x29,0x7c,0xba,0x54,0xf, 0xa, 0x2b, +0x2e,0x25,0x2a,0x7e,0x29,0xc0,0x7c,0xba,0x54,0xf0,0xbe,0xb0,0x0, 0x28,0x13,0xb4, +0xb0,0x2, 0x80,0x3, 0x2, 0x1e,0xfb,0x53,0x29,0xf, 0xbe,0xc0,0x1, 0x68,0x3, 0x2, +0x1e,0xfb,0xbe,0xc0,0x3, 0x78,0x3, 0x2, 0x1e,0xfb,0x7e,0xa1,0x25,0x74,0x6, 0xa4, +0xf5,0x21,0x9, 0xb3,0xe, 0x9e,0xf5,0x27,0x74,0x7, 0xac,0xbd,0x9, 0xb5,0xe, 0x9f, +0xc4,0x54,0xf0,0xf5,0x28,0x7e,0x73,0xf, 0x46,0xbe,0x71,0x29,0x28,0x68,0x7e,0xb3, +0xf, 0x22,0x70,0x2a,0x7e,0x8, 0x0, 0x27,0xe5,0x29,0xa, 0x3b,0x2e,0x34,0x15,0xca, +0x74,0x1, 0x7e,0x50,0xf, 0x12,0x5f,0xe0,0x7e,0x8, 0x0, 0x28,0xe5,0x29,0xa, 0x3b, +0x2e,0x34,0x15,0xd4,0x74,0x10,0x7e,0x50,0x20,0x12,0x5f,0xe0,0x80,0x14,0xe5,0x29, +0xa, 0x3b,0x9, 0xb3,0x15,0xca,0xf5,0x27,0xe5,0x29,0xa, 0x3b,0x9, 0xb3,0x15,0xd4, +0xf5,0x28,0xe5,0x29,0xa, 0x3b,0x7d,0x23,0x2e,0x25,0x2a,0x7e,0x29,0xb0,0xb4,0x1, +0x15,0xe4,0x19,0xb3,0x15,0xca,0x6c,0xaa,0xe5,0x29,0xa, 0x3b,0x19,0xa3,0x15,0xd4, +0x75,0x27,0x0, 0x75,0x28,0x0, 0x7e,0xb3,0xf, 0x5f,0xb4,0xff,0x15,0x74,0x7, 0xac, +0xbd,0x9, 0xb5,0xe, 0x9d,0xbe,0xb0,0xff,0x68,0x5, 0x75,0x27,0x1, 0x80,0x3, 0x75, +0x27,0x0, 0x7e,0x90,0x7, 0xac,0x9d,0x49,0x54,0xe, 0x99,0x7a,0x55,0x2c,0x49,0x54, +0xe, 0x9b,0x7a,0x55,0x2e,0xbe,0xc0,0x1, 0x78,0x2e,0x75,0x30,0x0, 0x7e,0x71,0x30, +0x74,0x7, 0xac,0x7b,0x9, 0xb3,0x15,0xe3,0x54,0xf, 0xbe,0xb1,0x29,0x78,0x10,0x49, +0x23,0x15,0xdf,0x7a,0x25,0x2c,0x49,0x53,0x15,0xe1,0x7a,0x55,0x2e,0x80,0x9, 0x5, +0x30,0xe5,0x30,0xbe,0xb0,0xa, 0x40,0xd5,0x7e,0x25,0x2c,0x7a,0x25,0x22,0xa, 0x54, +0x5e,0x54,0x0, 0xf, 0x7c,0xab,0xe5,0x21,0xa, 0x3b,0x7d,0x13,0x2d,0x17,0x19,0xa1, +0x0, 0x5, 0x7d,0x53,0x2d,0x57,0x19,0x55,0x0, 0x6, 0x7e,0x25,0x2e,0x7a,0x25,0x22, +0xa, 0x14,0x5e,0x14,0x0, 0xf, 0x7d,0x53,0x2d,0x57,0x19,0x35,0x0, 0x7, 0x7d,0x53, +0x2d,0x57,0x19,0x55,0x0, 0x8, 0xe5,0x27,0x7d,0x23,0x2d,0x27,0x19,0xb2,0x0, 0x9, +0xe5,0x28,0x7d,0x23,0x2d,0x27,0x19,0xb2,0x0, 0xa, 0x9, 0xa4,0xe, 0x9d,0x7c,0xba, +0xc4,0x54,0xf0,0x7c,0x3b,0x7d,0x23,0x2d,0x27,0x2e,0x24,0x0, 0x7, 0x7e,0x29,0xb0, +0x2c,0xb3,0x7a,0x29,0xb0,0xbe,0xa0,0xff,0x68,0x21,0xbe,0xc0,0x1, 0x68,0x2, 0x5, +0x24,0x5, 0x26,0x7c,0xbc,0x3, 0x3, 0x54,0xc0,0x7d,0x13,0x2d,0x17,0x2e,0x14,0x0, +0x5, 0x7e,0x19,0x50,0x2c,0x5b,0x7a,0x19,0x50,0x80,0xe, 0x2d,0x37,0x2e,0x34,0x0, +0x5, 0x7e,0x39,0xb0,0x24,0xc0,0x7a,0x39,0xb0,0x5, 0x25,0xb, 0xd0,0x7e,0x73,0xf, +0x46,0xbc,0x7d,0x28,0x3, 0x2, 0x1d,0x2e,0xe5,0x24,0x19,0xb7,0x0, 0x4, 0xe5,0x26, +0xbe,0xb0,0x0, 0x28,0x2d,0x74,0x42,0x19,0xb7,0x0, 0x2, 0xe4,0x19,0xb7,0x0, 0x41, +0x6c,0xdd,0xa, 0x3d,0x2d,0x37,0x7e,0x39,0x60,0x7d,0x27,0x2e,0x24,0x0, 0x41,0x7e, +0x29,0x70,0x6c,0x76,0x7a,0x29,0x70,0xb, 0xd0,0xbe,0xd0,0x41,0x78,0xe4,0xb2,0x0, +0x80,0xe, 0x7e,0xb3,0xf, 0x21,0xb4,0x1, 0xc, 0x7e,0xb3,0x10,0xd1,0xb4,0x24,0x5, +0x74,0x1, 0x12,0x6e,0xd3,0x7e,0xb3,0xf, 0x20,0x60,0x6, 0x7e,0x35,0x2a,0x12,0x68, +0x79,0xe4,0x7a,0xb3,0xf, 0x24,0x7a,0xb3,0xf, 0x20,0x7a,0xb3,0xf, 0x21,0x80,0x4, +0xe4,0x12,0x6e,0xd3,0x7e,0x24,0xe, 0x99,0x7e,0x34,0x15,0xdf,0x7e,0x14,0x0, 0x46, +0x12,0x6d,0x7d,0xe5,0x26,0x70,0xd, 0x7e,0x34,0x15,0xdf,0x7e,0x24,0x0, 0x46,0x74, +0xff,0x12,0x6e,0x21,0xda,0x3b,0x22,0xca,0x79,0x75,0x26,0x17,0x7e,0xb3,0xd, 0xf7, +0xf5,0x21,0x70,0x3, 0x2, 0x22,0x39,0x7e,0x34,0x13,0xb6,0x7e,0x24,0x1, 0x2b,0xe4, +0x12,0x6e,0x21,0x7e,0x34,0x14,0xe1,0x7e,0x24,0x0, 0x2, 0xe4,0x12,0x6e,0x21,0x6c, +0xaa,0x2, 0x20,0x4e,0x7e,0x70,0x2, 0xac,0x7a,0x9, 0x33,0xd, 0x18,0x9, 0x23,0xd, +0x19,0x1a,0x3, 0x1b,0x5, 0x80,0x69,0xbe,0x10,0x0, 0x48,0x62,0xbe,0x10,0xd, 0x58, +0x5d,0x7c,0x1, 0xe, 0x0, 0xe, 0x0, 0xe, 0x0, 0x7a,0x1, 0x25,0x7c,0xb1,0x54,0x7, +0x7e,0x74,0x0, 0x1, 0x60,0x5, 0x3e,0x74,0x14,0x78,0xfb,0x7c,0xef,0xa, 0x40,0x2e, +0x44,0x14,0xe1,0x7e,0x49,0xb0,0x4c,0xbe,0x7a,0x49,0xb0,0x1a,0x32,0x1b,0x35,0x7c, +0xf7,0x80,0x1f,0xbe,0xf0,0x0, 0x48,0x18,0xe5,0x26,0xbc,0xbf,0x8, 0x12,0x74,0x1, +0x1a,0x21,0x7e,0x34,0x0, 0x17,0xad,0x32,0x1a,0x4f,0x2d,0x43,0x19,0xb4,0x13,0xb6, +0xb, 0xf0,0x1a,0x22,0x2e,0x24,0x0, 0x3, 0x1a,0x3f,0xbd,0x32,0x48,0xd5,0xb, 0x10, +0x1a,0x23,0x2e,0x24,0x0, 0x3, 0x1a,0x31,0xbd,0x32,0x48,0x8b,0xb, 0xa0,0xe5,0x21, +0xbc,0xba,0x28,0x3, 0x2, 0x1f,0xc4,0x6c,0x11,0x7c,0x1, 0xe, 0x0, 0xe, 0x0, 0xe, +0x0, 0x7a,0x1, 0x25,0x7c,0xb1,0x54,0x7, 0x7e,0x44,0x0, 0x1, 0x60,0x5, 0x3e,0x44, +0x14,0x78,0xfb,0x7c,0xe9,0xa, 0x30,0x9, 0xb3,0x14,0xe1,0x5c,0xbe,0x78,0x3, 0x2, +0x21,0x15,0x6d,0x33,0x7a,0x35,0x22,0x75,0x24,0x0, 0x1a,0x21,0x7e,0x34,0x0, 0x30, +0xad,0x32,0x7d,0x43,0x2e,0x47,0xf, 0xda,0x6c,0x0, 0x80,0x26,0x1a,0xe1,0x7e,0xf4, +0x0, 0x17,0xad,0xfe,0xa, 0x30,0x2d,0x3f,0x9, 0xb3,0x13,0xb6,0x70,0x12,0x7e,0x70, +0x2, 0xac,0x70,0x2d,0x34,0xb, 0x38,0x30,0x2e,0x35,0x22,0x7a,0x35,0x22,0x5, 0x24, +0xb, 0x0, 0xe5,0x26,0xbc,0xb0,0x38,0xd4,0xe5,0x24,0x60,0x49,0xe5,0x24,0x1a,0x2b, +0x7e,0x35,0x22,0x12,0x48,0x53,0x7a,0x35,0x22,0x6c,0xff,0x80,0x32,0x1a,0x21,0x7e, +0x34,0x0, 0x17,0xad,0x32,0x1a,0xff,0x7d,0xe3,0x2d,0xef,0x9, 0xbe,0x13,0xb6,0xb4, +0x1, 0x1b,0x1a,0x21,0x7e,0x34,0x0, 0x18,0xad,0x32,0x7d,0x23,0x2d,0x2f,0x3e,0x24, +0x2e,0x27,0xf, 0xda,0xb, 0x28,0x30,0x9e,0x35,0x22,0x1b,0x28,0x30,0xb, 0xf0,0xe5, +0x26,0xbc,0xbf,0x18,0xc8,0xb, 0x10,0xa5,0xb9,0xd, 0x2, 0x80,0x3, 0x2, 0x20,0x59, +0x6c,0xaa,0x2, 0x22,0x30,0x7e,0x10,0x2, 0xac,0x1a,0x9, 0x30,0xd, 0x18,0x9, 0x20, +0xd, 0x19,0x7c,0xba,0xc4,0x23,0x54,0x1f,0xf5,0x25,0x7c,0xba,0x54,0x7, 0x7e,0x44, +0x0, 0x1, 0x60,0x5, 0x3e,0x44,0x14,0x78,0xfb,0x7c,0xe9,0xa5,0xbb,0x0, 0x2c,0x1a, +0xe3,0x7e,0xf4,0x0, 0x18,0xad,0xfe,0x1a,0x32,0x2d,0x3f,0x3e,0x34,0x2e,0x37,0xf, +0xda,0xb, 0x38,0x20,0x49,0x33,0x0, 0x30,0xbd,0x32,0x18,0x3, 0x2, 0x21,0xf5,0x1a, +0x33,0xb, 0x34,0x7c,0xb7,0x19,0xb0,0xd, 0x18,0x80,0x7a,0xa5,0xbb,0xc, 0x2c,0x1a, +0x23,0x7e,0x34,0x0, 0x18,0xad,0x32,0x1a,0x22,0x2d,0x23,0x3e,0x24,0x2e,0x27,0xf, +0xda,0xb, 0x28,0x30,0x49,0x2, 0xff,0xd0,0xbd,0x3, 0x8, 0x59,0x1a,0x33,0x1b,0x34, +0x7e,0x10,0x2, 0xac,0x1a,0x19,0x70,0xd, 0x18,0x80,0x4a,0x1a,0xe3,0x7e,0xf4,0x0, +0x18,0xad,0xfe,0x1a,0x32,0x2d,0x3f,0x3e,0x34,0x2e,0x37,0xf, 0xda,0x49,0x43,0x0, +0x30,0x49,0x3, 0xff,0xd0,0xbd,0x4, 0x8, 0x16,0xb, 0x38,0x20,0xbd,0x2, 0x8, 0x25, +0x1a,0x23,0x1b,0x24,0x7e,0x10,0x2, 0xac,0x1a,0x19,0x50,0xd, 0x18,0x80,0x16,0xb, +0x38,0x0, 0xbd,0x40,0x8, 0xf, 0x1a,0x33,0xb, 0x34,0x7c,0x37,0x7e,0x10,0x2, 0xac, +0x1a,0x19,0x30,0xd, 0x18,0x7e,0x70,0x2, 0xac,0x7a,0x9, 0x33,0xd, 0x18,0x1a,0x23, +0x7e,0x34,0x0, 0x18,0xad,0x32,0x1a,0x2, 0x2d,0x3, 0x3e,0x4, 0x2e,0x7, 0xf, 0xda, +0xb, 0x8, 0x0, 0xbe,0x4, 0x0, 0x3c,0x58,0x15,0x7c,0x7e,0x6e,0x70,0xff,0xe5,0x25, +0xa, 0x4b,0x2e,0x44,0xd, 0x68,0x7e,0x49,0xb0,0x5c,0xb7,0x7a,0x49,0xb0,0xb, 0xa0, +0xe5,0x21,0xbc,0xba,0x28,0x3, 0x2, 0x21,0x25,0xda,0x79,0x22,0xca,0xd8,0xca,0x79, +0x6c,0xaa,0x7e,0x34,0x11,0x9e,0x7e,0x44,0x11,0x4a,0xe4,0x7a,0xb3,0x16,0xbb,0x7e, +0xb3,0xe, 0xa, 0x54,0xfe,0x7a,0xb3,0xe, 0xa, 0x7e,0xb3,0xd, 0x17,0xbe,0xb0,0x0, +0x28,0x4f,0x7e,0x53,0xd, 0xf8,0xbe,0x50,0x0, 0x28,0x46,0x6c,0xff,0x80,0x3c,0x7e, +0x30,0x2, 0xac,0x3f,0x9, 0xd1,0xd, 0x40,0x9, 0xe1,0xd, 0x41,0x7e,0x30,0x2, 0xac, +0x3e,0x2d,0x13,0xb, 0x18,0x0, 0x6d,0x11,0x9e,0x17,0xf, 0x4c,0xbd,0x1, 0x58,0x19, +0x7e,0x30,0x2, 0xac,0x3d,0x2d,0x13,0x49,0x1, 0x0, 0x30,0x6d,0x11,0x9e,0x17,0xf, +0x4a,0xbd,0x1, 0x58,0x4, 0x5, 0x1d,0x80,0xb, 0xb, 0xf0,0xbc,0x5f,0x38,0xc0,0x80, +0x3, 0x75,0x1d,0x0, 0xe5,0x1d,0xbe,0xb0,0x3, 0x40,0x17,0x7e,0xb3,0xe, 0xa, 0x44, +0x1, 0x7a,0xb3,0xe, 0xa, 0x75,0x1d,0x0, 0x7e,0xb3,0x16,0xbb,0x44,0x1, 0x7a,0xb3, +0x16,0xbb,0x7e,0xb3,0xe, 0xa, 0x54,0xfd,0x7a,0xb3,0xe, 0xa, 0x7e,0xb3,0xd, 0x16, +0x70,0x59,0x7e,0x53,0xd, 0xf7,0xbe,0x50,0x0, 0x28,0x50,0x6c,0xff,0x80,0x48,0x7e, +0x30,0x2, 0xac,0x3f,0x9, 0xd1,0xd, 0x18,0x9, 0xe1,0xd, 0x19,0x7e,0x30,0x2, 0xac, +0x3d,0x2d,0x14,0x49,0x11,0x0, 0x30,0x6d,0x0, 0x9e,0x7, 0xd, 0xff,0xbd,0x10,0x48, +0xe, 0x7e,0x30,0x2, 0xac,0x3e,0x2d,0x14,0xb, 0x18,0x10,0xbd,0x10,0x58,0x16,0x7e, +0xb3,0xe, 0xa, 0x44,0x2, 0x7a,0xb3,0xe, 0xa, 0x7e,0xb3,0x16,0xbb,0x44,0x2, 0x7a, +0xb3,0x16,0xbb,0x80,0x6, 0xb, 0xf0,0xbc,0x5f,0x38,0xb4,0x7e,0xb3,0xe, 0x9, 0xb4, +0x1, 0x2, 0x80,0x3, 0x2, 0x23,0xdf,0x7e,0xb3,0xd, 0x16,0x70,0x6d,0x6c,0xff,0x80, +0x61,0x7e,0x50,0x2, 0xac,0x5f,0x7d,0x12,0x2d,0x14,0xb, 0x18,0x10,0xbe,0x17,0xd, +0xff,0x8, 0x4d,0x2d,0x23,0xb, 0x28,0x20,0xbe,0x27,0xd, 0xff,0x58,0x42,0xbe,0xf1, +0x1e,0x68,0x6, 0x7a,0xf1,0x1e,0x75,0x1f,0x0, 0xbe,0xf1,0x1e,0x78,0x2, 0x5, 0x1f, +0xe5,0x1f,0xbe,0xb0,0x10,0x28,0x33,0x75,0x1f,0x10,0xe5,0x51,0x70,0x16,0x7e,0xb3, +0xe, 0xa, 0x44,0x4, 0x7a,0xb3,0xe, 0xa, 0x7e,0xb3,0x16,0xbb,0x44,0x4, 0x7a,0xb3, +0x16,0xbb,0x80,0x16,0x7e,0xb3,0xe, 0xa, 0x54,0xfb,0x7a,0xb3,0xe, 0xa, 0x80,0xa, +0xb, 0xf0,0x7e,0xb3,0x10,0x2c,0xbc,0xbf,0x38,0x97,0x6c,0xaa,0x6c,0xff,0x80,0x17, +0x7e,0x70,0x2, 0xac,0x7f,0x2d,0x34,0xb, 0x38,0x30,0xbe,0x37,0xd, 0xff,0x8, 0x5, +0x7e,0xa0,0x1, 0x80,0xa, 0xb, 0xf0,0x7e,0xb3,0x10,0x2c,0xbc,0xbf,0x38,0xe1,0x4c, +0xaa,0x78,0x1a,0x7e,0xb3,0xe, 0xa, 0x54,0xfb,0x7a,0xb3,0xe, 0xa, 0x75,0x1e,0xff, +0x75,0x1f,0x0, 0x7e,0xb3,0x16,0xbb,0x54,0xfb,0x7a,0xb3,0x16,0xbb,0x7e,0xb3,0xe, +0xa, 0x54,0xf7,0x7a,0xb3,0xe, 0xa, 0x7e,0x73,0xd, 0xfa,0xa, 0x27,0x7e,0x73,0xd, +0xf9,0xa, 0x37,0x2d,0x32,0xbe,0x37,0xe, 0x3, 0x28,0x14,0x7e,0xb3,0xe, 0xa, 0x44, +0x8, 0x7a,0xb3,0xe, 0xa, 0x7e,0xb3,0x16,0xbb,0x44,0x8, 0x7a,0xb3,0x16,0xbb,0x7e, +0xb3,0xe, 0xa, 0x44,0x10,0x7a,0xb3,0xe, 0xa, 0x6c,0xff,0x80,0x49,0x7e,0x50,0x2, +0xac,0x5f,0x9, 0xd2,0xd, 0x18,0x9, 0xe2,0xd, 0x19,0x7e,0x70,0x18,0xac,0x7d,0xa, +0x1e,0x2d,0x31,0x3e,0x34,0x2e,0x37,0xf, 0xda,0xb, 0x38,0x30,0x49,0x22,0x10,0x3, +0x9d,0x32,0x7a,0x35,0x21,0x12,0x6e,0x11,0xbe,0x37,0xe, 0x1, 0x28,0x16,0x7e,0xb3, +0xe, 0xa, 0x54,0xef,0x7a,0xb3,0xe, 0xa, 0x7e,0xb3,0x16,0xbb,0x44,0x10,0x7a,0xb3, +0x16,0xbb,0x80,0xa, 0xb, 0xf0,0x7e,0x73,0xd, 0xf7,0xbc,0x7f,0x38,0xaf,0x7e,0x34, +0x10,0x3, 0x7e,0x24,0x0, 0x28,0xe4,0x12,0x6e,0x21,0x6c,0xff,0x80,0x25,0x7e,0x50, +0x2, 0xac,0x5f,0x9, 0xd2,0xd, 0x18,0x9, 0xe2,0xd, 0x19,0x7e,0x70,0x18,0xac,0x7d, +0xa, 0x1e,0x2d,0x31,0x3e,0x34,0x2e,0x37,0xf, 0xda,0xb, 0x38,0x30,0x59,0x32,0x10, +0x3, 0xb, 0xf0,0x7e,0x73,0xd, 0xf7,0xbc,0x7f,0x38,0xd3,0xda,0x79,0xda,0xd8,0x22, +0xca,0x3b,0x6d,0x33,0x7a,0x35,0x21,0x75,0x25,0x0, 0x75,0x26,0x0, 0x7e,0x23,0xd, +0xf7,0x7a,0x21,0x23,0x7e,0x37,0xf, 0xda,0x7a,0x37,0x13,0xb6,0x7e,0x30,0x2, 0xac, +0x23,0x7e,0x24,0xd, 0x18,0x7e,0x34,0x13,0xb8,0x12,0x6d,0x7d,0xe5,0x23,0xbe,0xb0, +0xa, 0x38,0x3, 0x2, 0x26,0xd5,0x75,0x24,0x0, 0x6c,0xff,0x2, 0x25,0xe9,0x7e,0x34, +0x3, 0xff,0x7a,0x35,0x27,0x75,0x26,0xff,0x6c,0xee,0x80,0x7e,0x7e,0x70,0x2, 0xac, +0x7e,0x9, 0xb3,0x13,0xb8,0xbe,0xb0,0xff,0x68,0x6e,0x7c,0xbe,0xc4,0x23,0x54,0x1f, +0x7c,0xab,0x7a,0xa1,0x2b,0x7c,0xbe,0x54,0x7, 0x7e,0x24,0x0, 0x1, 0x60,0x5, 0x3e, +0x24,0x14,0x78,0xfb,0x7c,0xb5,0xf5,0x2c,0xa, 0x2a,0x9, 0xb2,0xd, 0x68,0x55,0x2c, +0x68,0x46,0x9, 0x73,0x13,0xb9,0xa, 0x27,0x74,0x2, 0xac,0xbf,0x9, 0x75,0x15,0xa3, +0xa, 0x37,0x9d,0x32,0x12,0x6e,0x11,0x7d,0x63,0x74,0x2, 0xac,0xbe,0x9, 0x75,0x13, +0xb8,0xa, 0x27,0x74,0x2, 0xac,0xbf,0x9, 0x75,0x15,0xa2,0xa, 0x37,0x9d,0x32,0x12, +0x6e,0x11,0x2d,0x36,0x7a,0x35,0x29,0x7e,0x35,0x27,0xbe,0x35,0x29,0x28,0x9, 0x7e, +0x35,0x29,0x7a,0x35,0x27,0x7a,0xe1,0x26,0xb, 0xe0,0xe5,0x23,0xbc,0xbe,0x28,0x3, +0x2, 0x25,0x1c,0xe5,0x26,0xbe,0xb0,0xff,0x68,0x3d,0x7e,0x71,0x26,0x74,0x2, 0xac, +0x7b,0x9, 0x33,0x13,0xb8,0x7e,0x50,0x18,0xac,0x53,0x9, 0xa3,0x13,0xb9,0xa, 0xa, +0x2d,0x20,0x3e,0x24,0x2e,0x27,0x13,0xb6,0xb, 0x28,0x20,0xbe,0x24,0x0, 0x3c,0x48, +0x16,0xe5,0x24,0x1a,0x2b,0x3e,0x24,0x19,0x32,0x13,0xe0,0x19,0xa2,0x13,0xe1,0x74, +0xff,0x19,0xb3,0x13,0xb8,0x5, 0x24,0xb, 0xf0,0xe5,0x11,0xbc,0xbf,0x28,0x3, 0x2, +0x25,0xe, 0x7e,0xf1,0x24,0x2, 0x26,0xbb,0x6d,0x33,0x7a,0x35,0x21,0x7e,0xa0,0xff, +0x6c,0xee,0x2, 0x26,0x8d,0x7c,0xbe,0xc4,0x23,0x54,0x1f,0x7c,0x7b,0x7a,0x71,0x2b, +0x7c,0xbe,0x54,0x7, 0x7e,0x44,0x0, 0x1, 0x60,0x5, 0x3e,0x44,0x14,0x78,0xfb,0x7c, +0xb9,0xf5,0x2c,0xa, 0x37,0x9, 0xb3,0xd, 0x68,0x55,0x2c,0x68,0x5e,0x7e,0x90,0x2, +0xac,0x9e,0x9, 0x44,0x13,0xb8,0xbe,0x40,0xff,0x68,0x50,0x7e,0x50,0x18,0xac,0x45, +0x9, 0xb4,0x13,0xb9,0xa, 0x3b,0x2d,0x23,0x3e,0x24,0x2e,0x27,0x13,0xb6,0xb, 0x28, +0x30,0xbe,0x34,0x0, 0x0, 0x58,0x5, 0x6d,0x33,0x1b,0x28,0x30,0x7e,0x50,0x2, 0xac, +0x5e,0x9, 0x62,0x13,0xb8,0x7e,0x30,0x18,0xac,0x36,0x9, 0x72,0x13,0xb9,0xa, 0x7, +0x2d,0x10,0x3e,0x14,0x2e,0x17,0x13,0xb6,0xb, 0x18,0x40,0xbe,0x45,0x21,0x8, 0xb, +0x7a,0x61,0x25,0x7a,0x71,0x26,0x7a,0x45,0x21,0x7c,0xae,0xb, 0xe0,0xe5,0x23,0xbc, +0xbe,0x28,0x3, 0x2, 0x26,0x5, 0xbe,0xa0,0xff,0x68,0x1e,0x7e,0x71,0x25,0x7e,0x90, +0x2, 0xac,0x9f,0x19,0x74,0x13,0xe0,0xe5,0x26,0x19,0xb4,0x13,0xe1,0x7e,0x70,0xff, +0x7e,0x50,0x2, 0xac,0x5a,0x19,0x72,0x13,0xb8,0xb, 0xf0,0xbe,0xf0,0xa, 0x50,0x3, +0x2, 0x25,0xf8,0x7e,0x24,0x13,0xe0,0x7e,0x34,0x13,0xb8,0x7e,0x14,0x0, 0x28,0x12, +0x6d,0x7d,0x75,0x23,0xa, 0x7e,0x34,0x15,0xa2,0x7e,0x24,0x0, 0x14,0x74,0xff,0x12, +0x6e,0x21,0xe5,0x23,0xbe,0xb0,0x0, 0x28,0x55,0x7e,0x31,0x23,0x74,0x2, 0xac,0x3b, +0x7e,0x24,0x13,0xb8,0x7e,0x34,0xd, 0x18,0x12,0x6d,0x7d,0x7e,0x31,0x23,0x74,0x2, +0xac,0x3b,0x7e,0x24,0x13,0xb8,0x7e,0x34,0x15,0xa2,0x12,0x6d,0x7d,0x6c,0xff,0x80, +0x27,0x7c,0xbf,0x54,0x7, 0x7e,0x34,0x0, 0x1, 0x60,0x5, 0x3e,0x34,0x14,0x78,0xfb, +0x7c,0x67,0x7c,0xbf,0xc4,0x23,0x54,0x1f,0xa, 0x2b,0x2e,0x24,0xd, 0x68,0x7e,0x29, +0x70,0x4c,0x76,0x7a,0x29,0x70,0xb, 0xf0,0xe5,0x23,0xbc,0xbf,0x38,0xd3,0x85,0x23, +0x11,0xe5,0x23,0x7a,0xb3,0xd, 0xf7,0xda,0x3b,0x22,0x7c,0x7b,0xbe,0x70,0x10,0x40, +0x12,0xbe,0x70,0x4b,0x38,0xd, 0xa, 0x37,0x2e,0x37,0x0, 0xfb,0x9e,0x34,0x0, 0x10, +0x2, 0x29,0x85,0xa5,0xbf,0x0, 0x3, 0xe5,0xb, 0x22,0xa5,0xbf,0x1, 0x3, 0xe5,0xd, +0x22,0xa5,0xbf,0x2, 0x5, 0x7e,0xb3,0xf, 0x28,0x22,0xbe,0x70,0x3, 0x40,0x12,0xbe, +0x70,0x5, 0x38,0xd, 0xa, 0x37,0x2e,0x34,0x10,0x2b,0x9e,0x34,0x0, 0x3, 0x2, 0x29, +0x85,0xa5,0xbf,0x6, 0x3, 0x74,0x1, 0x22,0xa5,0xbf,0x7, 0x5, 0x7e,0xb3,0x10,0x4b, +0x22,0xa5,0xbf,0x8, 0x10,0x7e,0xb3,0x10,0x3b,0x70,0x5, 0x7e,0xb3,0xa, 0xac,0x22, +0x7e,0xb3,0x11,0x16,0x22,0xa5,0xbf,0x9, 0x10,0x7e,0xb3,0x10,0x3b,0x70,0x5, 0x7e, +0xb3,0xa, 0xad,0x22,0x7e,0xb3,0x11,0x49,0x22,0xa5,0xbf,0xa, 0x5, 0x7e,0xb3,0x10, +0x3b,0x22,0xa5,0xbf,0xb, 0x10,0x7e,0xb3,0x10,0x3b,0x70,0x5, 0x7e,0xb3,0xa, 0xae, +0x22,0x7e,0xb3,0x11,0x94,0x22,0xa5,0xbf,0xc, 0x10,0x7e,0xb3,0x10,0x3b,0x70,0x5, +0x7e,0xb3,0xd, 0xfe,0x22,0x7e,0xb3,0x11,0x9d,0x22,0xa5,0xbf,0x4c,0x5, 0x7e,0xb3, +0xf, 0x46,0x22,0xa5,0xbf,0xfb,0x3, 0xe5,0x8, 0x22,0xa5,0xbf,0x4e,0x5, 0x7e,0xb3, +0x10,0x4a,0x22,0xbe,0x70,0x50,0x40,0x12,0xbe,0x70,0x51,0x38,0xd, 0xa, 0x37,0x2e, +0x37,0x10,0x2f,0x9e,0x34,0x0, 0x50,0x2, 0x29,0x85,0xbe,0x70,0x52,0x40,0x12,0xbe, +0x70,0x55,0x38,0xd, 0xa, 0x37,0x2e,0x37,0x10,0x31,0x9e,0x34,0x0, 0x52,0x2, 0x29, +0x85,0xbe,0x70,0x56,0x40,0x12,0xbe,0x70,0x62,0x38,0xd, 0xa, 0x37,0x2e,0x37,0x10, +0x33,0x9e,0x34,0x0, 0x56,0x2, 0x29,0x85,0xbe,0x70,0x63,0x40,0x12,0xbe,0x70,0x7a, +0x38,0xd, 0xa, 0x37,0x2e,0x37,0x10,0x35,0x9e,0x34,0x0, 0x63,0x2, 0x29,0x85,0xbe, +0x70,0x7b,0x50,0x3, 0x2, 0x29,0x19,0xbe,0x70,0x9f,0x28,0x3, 0x2, 0x29,0x19,0x7e, +0xb3,0x10,0x3b,0x70,0x4a,0xa, 0x27,0x9e,0x24,0x0, 0x7b,0xbe,0x24,0x0, 0x18,0x58, +0x22,0xa, 0x37,0x2e,0x37,0x10,0x35,0x9e,0x34,0x0, 0x7b,0x7e,0x39,0xa0,0x7c,0xba, +0x30,0xe0,0xc, 0xa, 0x5a,0x2e,0x54,0x0, 0x18,0xe, 0x54,0x7c,0xab,0x80,0x19,0x1e, +0xa0,0x80,0x15,0xa, 0x37,0x2e,0x37,0x10,0x33,0x9e,0x34,0x0, 0x93,0x7e,0x39,0x70, +0xa, 0x57,0x2e,0x54,0x0, 0x18,0x7c,0xab,0xa, 0x3a,0x9, 0xb3,0xf, 0xdc,0x22,0xa, +0x27,0x9e,0x24,0x0, 0x7b,0xbe,0x24,0x0, 0x18,0x58,0x22,0xa, 0x37,0x2e,0x37,0x10, +0x35,0x9e,0x34,0x0, 0x7b,0x7e,0x39,0xa0,0x7c,0xba,0x30,0xe0,0xc, 0xa, 0x5a,0x2e, +0x54,0x0, 0x18,0xe, 0x54,0x7c,0xab,0x80,0x19,0x1e,0xa0,0x80,0x15,0xa, 0x37,0x2e, +0x37,0x10,0x33,0x9e,0x34,0x0, 0x93,0x7e,0x39,0x70,0xa, 0x57,0x2e,0x54,0x0, 0x18, +0x7c,0xab,0xa, 0x3a,0x9, 0xb3,0xf, 0x63,0x22,0xbe,0x70,0xa0,0x40,0x11,0xbe,0x70, +0xac,0x38,0xc, 0xa, 0x37,0x2e,0x37,0x10,0x6c,0x9e,0x34,0x0, 0xa0,0x80,0x56,0xbe, +0x70,0xad,0x40,0x11,0xbe,0x70,0xb9,0x38,0xc, 0xa, 0x37,0x2e,0x37,0x10,0x6e,0x9e, +0x34,0x0, 0xad,0x80,0x40,0xbe,0x70,0xba,0x40,0x11,0xbe,0x70,0xd1,0x38,0xc, 0xa, +0x37,0x2e,0x37,0x10,0x70,0x9e,0x34,0x0, 0xba,0x80,0x2a,0xbe,0x70,0xd2,0x40,0x11, +0xbe,0x70,0xd5,0x38,0xc, 0xa, 0x37,0x2e,0x37,0x10,0x72,0x9e,0x34,0x0, 0xd2,0x80, +0x14,0xbe,0x70,0xd6,0x40,0x13,0xbe,0x70,0xed,0x38,0xe, 0xa, 0x37,0x2e,0x37,0x10, +0x74,0x9e,0x34,0x0, 0xd6,0x7e,0x39,0xb0,0x22,0xa5,0xbf,0xf8,0x5, 0x7e,0xb3,0x11, +0xe8,0x22,0xa5,0xbf,0xfe,0x3, 0xe5,0xc, 0x22,0x74,0xff,0x22,0xca,0x3b,0x7e,0x34, +0x22,0xc4,0x7a,0x35,0x25,0x7e,0x34,0x13,0xff,0x7e,0x24,0x0, 0x18,0xe4,0x12,0x6e, +0x21,0x75,0x24,0x1, 0x7e,0x73,0x10,0x4d,0x7a,0x73,0x13,0xb6,0xe4,0x7a,0xb3,0x10, +0x4d,0x75,0x22,0x0, 0x6c,0xee,0x80,0x12,0xa, 0x3e,0x2e,0x37,0x10,0x6e,0x7e,0x39, +0xb0,0xbe,0xb1,0x22,0x40,0x2, 0xf5,0x22,0xb, 0xe0,0x7e,0x73,0x10,0x2b,0xbc,0x7e, +0x38,0xe6,0xe5,0x22,0xbe,0xb0,0x1f,0x50,0xe, 0xe5,0x22,0xa, 0x4b,0x7e,0x54,0x0, +0x1f,0x9d,0x54,0xf5,0x22,0x80,0x3, 0x75,0x22,0x0, 0x85,0x22,0x21,0x7e,0x34,0x10, +0x2b,0x12,0x31,0xfb,0x7e,0x34,0x10,0x2b,0x12,0x6a,0xa5,0x2, 0x2b,0x9a,0x6d,0x33, +0x7a,0x37,0x10,0x1, 0x7e,0x34,0xd, 0xac,0x7a,0x37,0xa, 0xaf,0x12,0x6f,0x10,0x12, +0x69,0x64,0x12,0x6e,0xb9,0x60,0xfb,0xa9,0xb7,0xea,0x7e,0x37,0xf, 0xda,0x7e,0x27, +0xf, 0xd8,0x7e,0x14,0x18,0x0, 0x12,0x67,0xe2,0x6c,0xee,0x80,0x78,0x6c,0xff,0x80, +0x6a,0x4c,0xee,0x78,0x11,0xe4,0xa, 0x3f,0x19,0xb3,0x13,0xe7,0x6d,0x33,0x74,0x2, +0xac,0xbf,0x59,0x35,0x13,0xb7,0xbe,0xf0,0x17,0x78,0x13,0x7e,0x34,0x0, 0x1, 0x7c, +0xbe,0x60,0x5, 0x3e,0x34,0x14,0x78,0xfb,0x5e,0x34,0x4, 0x44,0x68,0x3b,0x7e,0x50, +0x30,0xac,0x5e,0x7e,0x70,0x2, 0xac,0x7f,0x2d,0x32,0x2e,0x37,0xf, 0xda,0xb, 0x38, +0x10,0xe, 0x14,0xe, 0x14,0xe, 0x14,0xe, 0x14,0xe, 0x14,0x7e,0x50,0x2, 0xac,0x5f, +0x2e,0x24,0x13,0xb7,0xb, 0x28,0x30,0x2d,0x31,0x1b,0x28,0x30,0xa, 0x3f,0x2e,0x34, +0x13,0xe7,0x7e,0x39,0xb0,0x4, 0x7a,0x39,0xb0,0xb, 0xf0,0x7e,0x73,0x10,0x2c,0xbc, +0x7f,0x38,0x8e,0xb, 0xe0,0x7e,0x73,0x10,0x2b,0xbc,0x7e,0x38,0x80,0x75,0x23,0x0, +0x6c,0xee,0x2, 0x2b,0x78,0xa, 0x3e,0x9, 0xa3,0x13,0xe7,0x4c,0xaa,0x78,0xf, 0x7e, +0x44,0x22,0xc4,0x7e,0x70,0x2, 0xac,0x7e,0x59,0x43,0x13,0xb7,0x80,0x25,0x7e,0x50, +0x2, 0xac,0x5e,0x49,0x12,0x13,0xb7,0xa, 0xa, 0x8d,0x10,0x59,0x12,0x13,0xb7,0x2e, +0x24,0x13,0xb7,0xb, 0x28,0x30,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x3e,0x34, +0x1b,0x28,0x30,0x7e,0x34,0x22,0xc4,0x7a,0x35,0x25,0x7e,0x64,0x3, 0x20,0x7e,0x70, +0x2, 0xac,0x7e,0x49,0x23,0x13,0xb7,0x7e,0x15,0x25,0x9d,0x16,0xbd,0x21,0x50,0x23, +0xa, 0x1e,0x2e,0x14,0x13,0xff,0x7e,0x19,0xb0,0x4, 0x7a,0x19,0xb0,0xa, 0x1e,0x2e, +0x17,0x10,0x74,0x7e,0x19,0xb0,0xbe,0xb1,0x22,0x50,0x32,0x4, 0x7a,0x19,0xb0,0x80, +0x35,0x80,0x2a,0x7d,0x36,0x2e,0x35,0x25,0xbd,0x23,0x28,0x28,0xa, 0x3e,0x2e,0x34, +0x13,0xff,0x7e,0x39,0xb0,0x4, 0x7a,0x39,0xb0,0xa, 0x3e,0x2e,0x37,0x10,0x74,0x7e, +0x39,0xb0,0xbe,0xb0,0x0, 0x28,0x6, 0x14,0x7a,0x39,0xb0,0x80,0x9, 0x5, 0x23,0x75, +0x24,0x0, 0x80,0x2, 0x5, 0x23,0xb, 0xe0,0x7e,0x73,0x10,0x2c,0xbc,0x7e,0x28,0x3, +0x2, 0x2a,0xc5,0x7e,0x34,0x10,0x2b,0x12,0x31,0xfb,0x7e,0x34,0x10,0x2b,0x12,0x6a, +0xa5,0x7e,0x73,0x10,0x2c,0xbe,0x71,0x23,0x68,0xf, 0x7e,0xa1,0x21,0x7c,0xba,0x14, +0xf5,0x21,0x4c,0xaa,0x68,0x3, 0x2, 0x2a,0xe, 0x7e,0x73,0x13,0xb6,0x7a,0x73,0x10, +0x4d,0x6c,0xff,0x80,0x12,0xa, 0x3f,0x9, 0x73,0x13,0xff,0xbe,0x71,0x22,0x78,0x5, +0x75,0x24,0x0, 0x80,0xa, 0xb, 0xf0,0x7e,0x73,0x10,0x2c,0xbc,0x7f,0x38,0xe6,0xe5, +0x24,0xda,0x3b,0x22,0x0, 0x0, 0x3, 0xe0,0x3, 0xff,0x3, 0xff,0x0, 0x20,0x0, 0x41, +0x0, 0x42,0x0, 0x22,0x3, 0xe0,0x3, 0xbe,0x3, 0x9c,0x3, 0xdd,0x0, 0x40,0x0, 0xa3, +0x0, 0xa5,0x0, 0x44,0x3, 0xc0,0x3, 0x5c,0x3, 0x5a,0x3, 0xbb,0x0, 0x60,0x0, 0xe5, +0x0, 0xe8,0x0, 0x66,0x3, 0xa0,0x3, 0x1a,0x2, 0xf7,0x3, 0x99,0x0, 0x80,0x1, 0x47, +0x1, 0x4b,0x0, 0x88,0x3, 0x80,0x2, 0xb8,0x2, 0xb4,0x3, 0x77,0x0, 0xa0,0x1, 0x89, +0x1, 0xad,0x0, 0xaa,0x3, 0x60,0x2, 0x56,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb, +0x1, 0xcf,0x0, 0xcb,0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb, +0x1, 0xcf,0x0, 0xcb,0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb, +0x1, 0xcf,0x0, 0xcb,0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb, +0x1, 0xcf,0x0, 0xcb,0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb, +0x1, 0xcf,0x0, 0xcb,0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb, +0x1, 0xcf,0x0, 0xcb,0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb, +0x1, 0xcf,0x0, 0xcb,0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb, +0x1, 0xcf,0x0, 0xcb,0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb, +0x1, 0xcf,0x0, 0xcb,0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb, +0x1, 0xcf,0x0, 0xcb,0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb, +0x1, 0xcf,0x0, 0xcb,0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb, +0x1, 0xcf,0x0, 0xcb,0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb, +0x1, 0xcf,0x0, 0xcb,0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb, +0x1, 0xcf,0x0, 0xcb,0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb, +0x1, 0xcf,0x0, 0xcb,0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb, +0x1, 0xcf,0x0, 0xcb,0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb, +0x1, 0xcf,0x0, 0xcb,0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb, +0x1, 0xcf,0x0, 0xcb,0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb, +0x1, 0xcf,0x0, 0xcb,0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb, +0x1, 0xcf,0x0, 0xcb,0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb, +0x1, 0xcf,0x0, 0xcb,0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb, +0x1, 0xcf,0x0, 0xaa,0x3, 0x60,0x2, 0x76,0x2, 0x93,0x3, 0x77,0x0, 0xa0,0x1, 0x69, +0x1, 0x6c,0x0, 0x88,0x3, 0x80,0x2, 0xd8,0x2, 0xd5,0x3, 0x99,0x0, 0x80,0x1, 0x27, +0x1, 0x9, 0x0, 0x66,0x3, 0xa0,0x3, 0x3a,0x3, 0x38,0x3, 0xbb,0x0, 0x60,0x0, 0xc5, +0x0, 0xc6,0x0, 0x44,0x3, 0xc0,0x3, 0x7c,0x3, 0x7b,0x3, 0xdd,0x0, 0x40,0x0, 0x83, +0x0, 0x64,0x0, 0x22,0x3, 0xe0,0x3, 0xde,0x3, 0xde,0x3, 0xff,0x0, 0x20,0x0, 0x21, +0x0, 0x21,0x0, 0x0, 0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb, +0x1, 0xcf,0x0, 0xcb,0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb, +0x1, 0xcf,0x0, 0xcb,0xca,0x3b,0x7e,0xb3,0x10,0x3c,0xf5,0x21,0xe4,0x7a,0xb3,0x10, +0x3c,0x7e,0xb3,0x10,0x3a,0xf5,0x22,0x74,0x3, 0x7a,0xb3,0x10,0x3a,0x7e,0x37,0x10, +0x48,0x7e,0x24,0x0, 0x25,0xe4,0x12,0x6e,0x21,0x7e,0xe0,0x7, 0x6d,0x33,0x7a,0x37, +0x10,0x1, 0x7e,0x34,0xd, 0xac,0x7a,0x37,0xa, 0xaf,0x12,0x6f,0x10,0x6c,0xdd,0x7e, +0x14,0x0, 0x1, 0x7c,0xbe,0x60,0x5, 0x3e,0x14,0x14,0x78,0xfb,0xa, 0x2d,0x2e,0x27, +0x10,0x48,0x7e,0x29,0x70,0x4c,0x73,0x7a,0x29,0x70,0xb, 0xd0,0xbe,0xd0,0x25,0x78, +0xde,0x7e,0x34,0x10,0x2b,0x12,0x5b,0x6c,0x7e,0x34,0x10,0x2b,0x12,0x65,0x59,0x12, +0x6e,0xc2,0x60,0xfb,0x7e,0x37,0xf, 0xd6,0x7e,0x25,0x6f,0x12,0x55,0x3a,0x6c,0xdd, +0xbe,0xd0,0x18,0x50,0x1e,0xa, 0x3d,0x2e,0x37,0x10,0x35,0x7e,0x39,0xf0,0x7c,0xbf, +0x30,0xe0,0xc, 0xa, 0x3f,0x2e,0x34,0x0, 0x18,0xe, 0x34,0x7c,0xf7,0x80,0x16,0x1e, +0xf0,0x80,0x12,0xa, 0x3d,0x2e,0x37,0x10,0x33,0x9, 0x73,0xff,0xe8,0xa, 0x37,0x2e, +0x34,0x0, 0x18,0x7c,0xf7,0x7e,0x70,0x2, 0xac,0x7d,0x2e,0x37,0xf, 0xd6,0xb, 0x38, +0x30,0xbe,0x34,0x25,0x80,0x18,0x21,0x7e,0x34,0x0, 0x1, 0x7c,0xbe,0x60,0x5, 0x3e, +0x34,0x14,0x78,0xfb,0x7d,0x13,0x6e,0x14,0xff,0xff,0xa, 0x2f,0x2e,0x27,0x10,0x48, +0x7e,0x29,0x70,0x5c,0x73,0x7a,0x29,0x70,0xb, 0xd0,0xbe,0xd0,0x25,0x78,0x91,0x1b, +0xe0,0xbe,0xe0,0x0, 0x48,0x3, 0x2, 0x2e,0x1c,0x7e,0xe0,0xa, 0x74,0x2, 0x7a,0xb3, +0x10,0x3a,0x2, 0x2f,0xeb,0x6d,0x33,0x7a,0x37,0x10,0x1, 0x7e,0x34,0xd, 0xac,0x7a, +0x37,0xa, 0xaf,0x12,0x6f,0x10,0x7e,0x73,0x10,0x2b,0xa, 0x37,0x7e,0x53,0x10,0x2c, +0xa, 0x65,0x2d,0x63,0x7c,0xcd,0x6c,0xdd,0x2, 0x2f,0xb3,0x7e,0xa3,0x10,0x2c,0xbc, +0xad,0x28,0x27,0xa, 0x3d,0x2e,0x37,0x10,0x35,0x7e,0x39,0xf0,0x7c,0xbf,0x30,0xe0, +0xc, 0xa, 0x3f,0x2e,0x34,0x0, 0x18,0xe, 0x34,0x7c,0xf7,0x80,0x2, 0x1e,0xf0,0x7e, +0x70,0x2, 0xac,0x7d,0x2e,0x37,0xf, 0xd6,0x80,0x27,0xa, 0x2a,0xa, 0x3d,0x9d,0x32, +0x2e,0x37,0x10,0x33,0x7e,0x39,0xb0,0xa, 0x3b,0x2e,0x34,0x0, 0x18,0x7c,0xf7,0x7e, +0x70,0x2, 0xac,0x7d,0x2e,0x37,0xf, 0xd6,0x2e,0x34,0x0, 0x30,0x74,0x2, 0xa4,0x9d, +0x35,0xb, 0x38,0x30,0x7a,0x35,0x23,0xbe,0x34,0x2e,0xe0,0x8, 0x18,0x4c,0xee,0x68, +0x30,0xa, 0x2f,0x2e,0x27,0x10,0x48,0x7e,0x29,0xb0,0xbe,0xb0,0xfe,0x50,0x22,0x4, +0x7a,0x29,0xb0,0x80,0x1c,0xbe,0x34,0x17,0x70,0x58,0x14,0xa, 0x3f,0x2e,0x37,0x10, +0x48,0x7e,0x39,0xb0,0xbe,0xb0,0x0, 0x28,0x8, 0x14,0x7a,0x39,0xb0,0x80,0x2, 0x1b, +0xc0,0xb, 0xd0,0x7e,0x73,0x10,0x2b,0xa, 0x37,0x7e,0x53,0x10,0x2c,0xa, 0x25,0x2d, +0x23,0xa, 0x3d,0xbd,0x32,0x58,0x3, 0x2, 0x2f,0x1b,0x4c,0xcc,0x68,0x28,0x7e,0x34, +0x10,0x2b,0x12,0x5b,0x6c,0x7e,0x34,0x10,0x2b,0x12,0x65,0x59,0x12,0x6e,0xc2,0x60, +0xfb,0x7e,0x37,0xf, 0xd6,0x7e,0x25,0x6f,0x12,0x55,0x3a,0x7c,0xae,0x1b,0xe0,0x4c, +0xaa,0x68,0x3, 0x2, 0x2e,0xf5,0xe5,0x21,0x7a,0xb3,0x10,0x3c,0xe5,0x22,0x7a,0xb3, +0x10,0x3a,0xda,0x3b,0x22,0xca,0xf8,0x6c,0xff,0x7e,0x24,0x15,0x56,0x7e,0x34,0x13, +0xfe,0x7e,0x14,0x0, 0x48,0x12,0x6d,0x7d,0x7e,0x24,0xe, 0xd, 0x7e,0x34,0x13,0xb6, +0x7e,0x14,0x0, 0x46,0x12,0x6d,0x7d,0x7e,0x73,0xf, 0x1b,0x7a,0x73,0x13,0xfc,0x7e, +0x73,0xf, 0x1c,0x7a,0x73,0x13,0xfd,0x7e,0xa3,0x13,0xfc,0xbe,0xa0,0x1, 0x38,0x3, +0x7e,0xf0,0x1, 0x7e,0xb3,0xf, 0x1c,0x70,0x3, 0xe4,0x80,0x10,0x7e,0xb3,0x15,0xa1, +0x4, 0x7a,0xb3,0x15,0xa1,0xbe,0xb0,0xc8,0x28,0x6, 0x74,0x14,0x7a,0xb3,0x15,0xa1, +0x7e,0xb3,0x15,0xa1,0xbe,0xb0,0x6, 0x50,0x3, 0x7e,0xf0,0x1, 0xbe,0xa0,0x1, 0x28, +0x3f,0x7e,0x34,0x0, 0x21,0x7e,0x24,0x0, 0x23,0x7e,0x14,0x13,0xfe,0x12,0x66,0x16, +0x7e,0x34,0x0, 0x25,0x7e,0x24,0x0, 0x27,0x7e,0x14,0x13,0xb6,0x12,0x66,0x16,0x7e, +0x35,0x25,0x9e,0x35,0x21,0x12,0x6e,0x11,0xbe,0x34,0x0, 0x80,0x18,0xf, 0x7e,0x35, +0x27,0x9e,0x35,0x23,0x12,0x6e,0x11,0xbe,0x34,0x0, 0x80,0x8, 0x3, 0x7e,0xf0,0x1, +0xbe,0xf0,0x0, 0x28,0x3, 0x2, 0x31,0x63,0x7e,0xf3,0x15,0x9f,0xbe,0xf3,0x15,0x29, +0x50,0x55,0x7e,0x73,0x15,0x29,0xbe,0x73,0x13,0xfc,0x28,0x12,0x7e,0x24,0x15,0x56, +0x7e,0x34,0x14,0xe3,0x7e,0x14,0x0, 0x48,0x12,0x6d,0x7d,0x2, 0x31,0x63,0x7e,0x73, +0x15,0x9e,0xbe,0x70,0x2, 0x58,0x22,0x7e,0x24,0x15,0x56,0x7e,0x34,0x14,0xe3,0x7e, +0x14,0x0, 0x48,0x12,0x6d,0x7d,0x74,0x1, 0x7a,0xb3,0x15,0xa0,0xe4,0x7a,0xb3,0x15, +0x53,0x7e,0xb3,0x15,0x9e,0x4, 0x2, 0x31,0x9f,0x74,0x1, 0x7a,0xb3,0x15,0xa0,0xe4, +0x7a,0xb3,0x15,0x53,0x2, 0x31,0x9f,0xbe,0xf3,0x15,0x29,0x78,0x2d,0x7e,0xa3,0x15, +0x29,0xbe,0xa3,0x13,0xfc,0x50,0xd, 0x74,0x1, 0x7a,0xb3,0x15,0xa0,0xe4,0x7a,0xb3, +0x15,0x53,0x80,0x6b,0xbe,0xa3,0x13,0xfc,0x28,0x4, 0x74,0x1, 0x80,0x1, 0xe4,0x7a, +0xb3,0x15,0xa0,0xe4,0x7a,0xb3,0x15,0x53,0x80,0x55,0x7e,0x73,0x15,0x29,0xbe,0x73, +0x13,0xfc,0x50,0x1a,0x7e,0x24,0x15,0x56,0x7e,0x34,0x14,0xe3,0x7e,0x14,0x0, 0x48, +0x12,0x6d,0x7d,0xe4,0x7a,0xb3,0x15,0xa0,0x7a,0xb3,0x15,0x53,0x80,0x31,0x7e,0x73, +0x15,0x53,0xbe,0x70,0x2, 0x58,0x1c,0x7e,0x24,0x15,0x56,0x7e,0x34,0x14,0xe3,0x7e, +0x14,0x0, 0x48,0x12,0x6d,0x7d,0x74,0x1, 0x7a,0xb3,0x15,0xa0,0x7e,0xb3,0x15,0x53, +0x4, 0x80,0x7, 0x74,0x1, 0x7a,0xb3,0x15,0xa0,0xe4,0x7a,0xb3,0x15,0x53,0xe4,0x7a, +0xb3,0x15,0x9e,0x7e,0xb3,0x15,0xa0,0x14,0x68,0x9, 0x4, 0x78,0x15,0x7e,0x24,0x13, +0xb6,0x80,0x4, 0x7e,0x24,0x14,0xe3,0x7e,0x34,0x15,0x56,0x7e,0x14,0x0, 0x48,0x12, +0x6d,0x7d,0x7e,0x73,0x15,0x29,0x7a,0x73,0x15,0x9f,0x7e,0x24,0x13,0xb6,0x7e,0x34, +0x14,0xe3,0x7e,0x14,0x0, 0x48,0x12,0x6d,0x7d,0x7e,0x24,0x15,0x56,0x7e,0x34,0xe, +0xd, 0x7e,0x14,0x0, 0x46,0x12,0x6d,0x7d,0x7e,0x73,0x15,0x9c,0x7a,0x73,0xf, 0x1b, +0x7e,0x73,0x15,0x9d,0x7a,0x73,0xf, 0x1c,0xda,0xf8,0x22,0xca,0x79,0x7d,0x73,0x12, +0x61,0x38,0x49,0x27,0x0, 0x25,0x7e,0x34,0x1c,0xa, 0x1b,0x38,0x20,0x49,0x27,0x0, +0x27,0x7e,0x34,0x1c,0xc, 0x1b,0x38,0x20,0x49,0x27,0x0, 0x29,0x7e,0x34,0x1c,0xe, +0x1b,0x38,0x20,0x49,0x27,0x0, 0x2b,0x7e,0x34,0x1c,0x10,0x1b,0x38,0x20,0x49,0x27, +0x0, 0x2d,0x7e,0x34,0x1c,0x12,0x1b,0x38,0x20,0x49,0x27,0x0, 0x2f,0x7e,0x34,0x1c, +0x14,0x1b,0x38,0x20,0x49,0x27,0x0, 0x6, 0x9, 0x72,0x0, 0x1, 0xa, 0x37,0x7c,0x67, +0x6c,0x77,0x7e,0x29,0x30,0xa, 0x13,0x4d,0x13,0x7e,0x34,0x1c,0x18,0x1b,0x38,0x10, +0x9, 0x72,0x0, 0x3, 0xa, 0x37,0x7c,0x67,0x6c,0x77,0x9, 0x52,0x0, 0x2, 0xa, 0x25, +0x4d,0x23,0x7e,0x34,0x1c,0x1a,0x1b,0x38,0x20,0x9, 0x77,0x0, 0x1, 0xa, 0x27,0x7e, +0x34,0x1c,0x16,0x1b,0x38,0x20,0x6d,0x22,0x7e,0x34,0x1c,0x1c,0x1b,0x38,0x20,0x6c, +0xaa,0xa, 0x2a,0x49,0x37,0x0, 0xa, 0x2d,0x32,0x7e,0x39,0xb0,0xa, 0x2b,0x7e,0x34, +0x1c,0x1e,0x1b,0x38,0x20,0xb, 0xa0,0xbe,0xa0,0x18,0x78,0xe5,0x6d,0x22,0x7e,0x34, +0x1c,0x1c,0x1b,0x38,0x20,0x6c,0xaa,0x7e,0x50,0x2, 0xac,0x5a,0x49,0x37,0x0, 0x4b, +0x2d,0x32,0xb, 0x38,0x20,0x7e,0x34,0x1c,0x20,0x1b,0x38,0x20,0xb, 0xa0,0xbe,0xa0, +0x19,0x78,0xe4,0x6d,0x22,0x7e,0x34,0x1c,0x1c,0x1b,0x38,0x20,0x6c,0xaa,0x7e,0x70, +0x2, 0xac,0x7a,0x2e,0x34,0x2b,0xd4,0x7e,0x24,0x0, 0xff,0xb, 0x1a,0x30,0x7e,0x24, +0x1c,0x22,0x1b,0x28,0x30,0xb, 0xa0,0xbe,0xa0,0xff,0x78,0xe2,0x7e,0x14,0x2d,0xd2, +0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0x30,0x1b,0x28,0x30,0x7e,0x24,0x1, 0x0, 0x7e,0x34, +0x1c,0x1c,0x1b,0x38,0x20,0x6c,0xaa,0x7e,0x70,0x2, 0xac,0x7a,0x2e,0x34,0x2d,0xd4, +0x7e,0x24,0x0, 0xff,0xb, 0x1a,0x20,0x7e,0x34,0x1c,0x22,0x1b,0x38,0x20,0xb, 0xa0, +0xbe,0xa0,0x10,0x40,0xe2,0x7d,0x37,0x12,0x5e,0x27,0x49,0x27,0x0, 0x39,0x7e,0x34, +0x1c,0x28,0x1b,0x38,0x20,0x7e,0x24,0x0, 0x1, 0x7e,0x34,0x1c,0x2a,0x1b,0x38,0x20, +0x49,0x27,0x0, 0x31,0x7e,0x34,0x1c,0x2c,0x1b,0x38,0x20,0x49,0x27,0x0, 0x33,0x7e, +0x34,0x1c,0x2e,0x1b,0x38,0x20,0x49,0x37,0x0, 0x45,0x49,0x27,0x0, 0xa, 0x9, 0xb7, +0x0, 0x1, 0x12,0x65,0x18,0x49,0x37,0x0, 0x47,0x12,0x7, 0xc9,0x49,0x37,0x0, 0x49, +0x49,0x27,0x0, 0xa, 0x9, 0xb7,0x0, 0x1, 0x12,0x5d,0x1, 0x49,0x27,0x0, 0x35,0x7e, +0x34,0x1c,0x52,0x1b,0x38,0x20,0x49,0x27,0x0, 0x3d,0x7e,0x34,0x1c,0x54,0x1b,0x38, +0x20,0x49,0x27,0x0, 0x37,0x7e,0x34,0x1c,0x56,0x1b,0x38,0x20,0xda,0x79,0x22,0xca, +0x3b,0x6d,0x33,0x7a,0x35,0x23,0x7e,0xb3,0xf, 0x1b,0x60,0x6, 0x7e,0xb3,0xf, 0x1c, +0x60,0x11,0xe5,0x22,0x60,0x5, 0x75,0x18,0x1, 0x80,0x3, 0x75,0x18,0x0, 0xe5,0x18, +0x2, 0x35,0x5e,0x7e,0xb3,0xd, 0x18,0xf5,0x21,0x7e,0x73,0xd, 0x19,0x7a,0x71,0x22, +0x6d,0x66,0x75,0x25,0x0, 0x75,0x26,0x0, 0xa, 0x37,0x7d,0x73,0x80,0x3a,0x7e,0x51, +0x21,0x74,0x18,0xac,0x5b,0x2d,0x27,0x3e,0x24,0x2e,0x27,0xf, 0xda,0xb, 0x28,0x10, +0xbe,0x14,0x0, 0x32,0x8, 0x28,0x5, 0x25,0xe5,0x21,0xbe,0xb0,0x0, 0x28,0x8, 0x49, +0x12,0xff,0xd0,0x2d,0x61,0x5, 0x26,0xe5,0x21,0xbe,0xb0,0xc, 0x50,0x8, 0x49,0x22, +0x0, 0x30,0x2d,0x62,0x5, 0x26,0x1b,0x74,0xbe,0x74,0x0, 0x0, 0x58,0xc0,0x7d,0x73, +0x80,0x38,0x7e,0x71,0x21,0x74,0x18,0xac,0x7b,0x2d,0x37,0x3e,0x34,0x2e,0x37,0xf, +0xda,0xb, 0x38,0x20,0xbe,0x24,0x0, 0x32,0x8, 0x2c,0x5, 0x25,0xe5,0x21,0xbe,0xb0, +0x0, 0x28,0x8, 0x49,0x23,0xff,0xd0,0x2d,0x62,0x5, 0x26,0xe5,0x21,0xbe,0xb0,0xc, +0x50,0x8, 0x49,0x33,0x0, 0x30,0x2d,0x63,0x5, 0x26,0x7d,0x37,0xb, 0x34,0x7d,0x73, +0xbe,0x34,0x0, 0x18,0x48,0xbc,0xe5,0x25,0xbe,0xb0,0x3, 0x50,0x2, 0x80,0x12,0x7d, +0x36,0x12,0x6e,0x11,0xe5,0x26,0xa, 0x2b,0x12,0x48,0x53,0xbe,0x34,0x0, 0xf, 0x8, +0x8, 0x75,0x18,0x1, 0x74,0x1, 0x2, 0x35,0x5e,0x6d,0x33,0xe5,0x21,0xbe,0xb0,0x0, +0x28,0x19,0x7e,0x51,0x21,0x74,0x18,0xac,0x5b,0xe5,0x22,0xa, 0x1b,0x2d,0x21,0x3e, +0x24,0x2e,0x27,0xf, 0xda,0x49,0x22,0xff,0xd0,0x2d,0x32,0xe5,0x21,0xbe,0xb0,0xc, +0x50,0x19,0x7e,0x51,0x21,0x74,0x18,0xac,0x5b,0xe5,0x22,0xa, 0x1b,0x2d,0x21,0x3e, +0x24,0x2e,0x27,0xf, 0xda,0x49,0x22,0x0, 0x30,0x2d,0x32,0x7e,0xa0,0x8, 0x80,0x2d, +0x7e,0x50,0x2, 0xac,0x5a,0x7d,0x12,0x2e,0x14,0x6e,0x1, 0x7a,0x31,0x82,0x7a,0x21, +0x83,0xe4,0x93,0x1a,0x1b,0xbd,0x13,0x8, 0x14,0x2e,0x24,0x6e,0x2, 0x7a,0x51,0x82, +0x7a,0x41,0x83,0xe4,0x93,0x1a,0x2b,0x2e,0x25,0x23,0x7a,0x25,0x23,0x7c,0x5a,0x1b, +0xa0,0xa5,0xbd,0x0, 0xcb,0x7e,0x71,0x21,0x74,0x18,0xac,0x7b,0xe5,0x22,0xa, 0x2b, +0x2d,0x32,0x3e,0x34,0x2e,0x37,0xf, 0xda,0xb, 0x38,0x30,0x12,0x6e,0x11,0xbe,0x34, +0x3, 0xe8,0x8, 0xa, 0x7e,0x35,0x23,0x2e,0x34,0x0, 0x28,0x7a,0x35,0x23,0x7e,0x35, +0x23,0xbe,0x34,0x0, 0xfa,0x28,0x7, 0x7e,0x34,0x0, 0xfa,0x7a,0x35,0x23,0xe5,0x18, +0xa, 0x3b,0xbe,0x35,0x23,0x50,0x5, 0x7e,0x55,0x23,0xf5,0x18,0xe5,0x18,0xda,0x3b, +0x22,0xca,0x3b,0x7c,0x9b,0x7d,0xa3,0xbe,0x90,0x1, 0x28,0x1e,0xa, 0x15,0x1b,0x15, +0xa, 0x39,0xbd,0x31,0x58,0x14,0x74,0x2, 0xac,0xb9,0x7d,0xb5,0x2d,0xba,0x1b,0xb6, +0xb, 0xb8,0x30,0x12,0x6d,0x94,0x7d,0xb3,0x80,0x7, 0xbe,0x90,0x1, 0x78,0x15,0x6d, +0xbb,0x7e,0x70,0x2, 0xac,0x79,0x2d,0x3a,0x1b,0x35,0xb, 0x38,0x30,0x12,0x6d,0x94, +0x7d,0xc3,0x80,0x8, 0x4c,0x99,0x78,0x38,0x6d,0xcc,0x7d,0xbc,0x74,0x2, 0xac,0xb9, +0x7d,0xd5,0x2d,0xda,0xb, 0xd8,0x30,0x12,0x6d,0x94,0x7d,0xd3,0x7e,0x70,0x2, 0xac, +0x79,0x2d,0x3a,0x49,0x33,0x0, 0x2, 0x12,0x6d,0x94,0x7d,0xe3,0x74,0x2, 0xac,0xb9, +0x7d,0xf5,0x2d,0xfa,0x49,0x3f,0x0, 0x4, 0x12,0x6d,0x94,0x7d,0xf3,0x2, 0x36,0x6c, +0x7c,0xb5,0x24,0xfe,0xbc,0xb9,0x78,0x46,0x74,0x2, 0xac,0xb9,0x7d,0xb5,0x2d,0xba, +0x1b,0xb6,0xb, 0xb8,0x30,0x12,0x6d,0x94,0x7d,0xb3,0x7e,0x70,0x2, 0xac,0x79,0x2d, +0x3a,0x1b,0x35,0xb, 0x38,0x30,0x12,0x6d,0x94,0x7d,0xc3,0x74,0x2, 0xac,0xb9,0x7d, +0xd5,0x2d,0xda,0xb, 0xd8,0x30,0x12,0x6d,0x94,0x7d,0xd3,0x74,0x2, 0xac,0xb9,0x2d, +0xa5,0x49,0x3a,0x0, 0x2, 0x12,0x6d,0x94,0x7d,0xe3,0x6d,0xff,0x80,0x3e,0x7c,0xb5, +0x14,0xbc,0xb9,0x78,0x37,0x74,0x2, 0xac,0xb9,0x7d,0xb5,0x2d,0xba,0x1b,0xb6,0xb, +0xb8,0x30,0x12,0x6d,0x94,0x7d,0xb3,0x7e,0x70,0x2, 0xac,0x79,0x2d,0x3a,0x1b,0x35, +0xb, 0x38,0x30,0x12,0x6d,0x94,0x7d,0xc3,0x74,0x2, 0xac,0xb9,0x7d,0xd5,0x2d,0xda, +0xb, 0xd8,0x30,0x12,0x6d,0x94,0x7d,0xd3,0x6d,0xff,0x7d,0xef,0xa, 0x79,0x6d,0x66, +0x7f,0x3, 0x1b,0xc, 0x7d,0x3c,0x1a,0x26,0x1a,0x24,0x12,0x48,0x85,0x7f,0x41,0x7f, +0x3, 0x1b,0xd, 0x7d,0x3b,0x1a,0x26,0x1a,0x24,0x12,0x48,0x85,0x2f,0x41,0x7d,0x3d, +0x1a,0x26,0x1a,0x24,0xa, 0x19,0x6d,0x0, 0x12,0x48,0x85,0x2f,0x41,0xa, 0x19,0x6d, +0x0, 0xb, 0xc, 0x7d,0x3e,0x1a,0x26,0x1a,0x24,0x12,0x48,0x85,0x2f,0x41,0xa, 0x19, +0x6d,0x0, 0xb, 0xd, 0x7d,0x3f,0x1a,0x26,0x1a,0x24,0x12,0x48,0x85,0x2f,0x14,0x7d, +0x1c,0x1a,0x2, 0x1a,0x0, 0x7d,0x5b,0x1a,0x4a,0x1a,0x48,0x2f,0x20,0x7d,0x1d,0x1a, +0x2, 0x1a,0x0, 0x2f,0x2, 0x7d,0x5e,0x1a,0x4a,0x1a,0x48,0x2f,0x20,0x7d,0x1f,0x1a, +0x2, 0x1a,0x0, 0x2f,0x2, 0x74,0x6, 0x2f,0x11,0x14,0x78,0xfb,0x12,0x48,0xa1,0x2e, +0x34,0x0, 0x20,0xda,0x3b,0x22,0xca,0x3b,0x7e,0xf3,0xf, 0x1b,0x7e,0x64,0xe, 0xdf, +0xe5,0x51,0xb4,0x1, 0x1b,0x7e,0xb3,0xf, 0x1c,0xb4,0x1, 0x14,0x7e,0xb3,0xd, 0xf7, +0xb4,0x1, 0xd, 0x7e,0x73,0xd, 0xf9,0xbe,0x70,0x15,0x40,0x4, 0x74,0x5, 0x80,0x2, +0x74,0x3, 0x7a,0xb3,0xf, 0x26,0x74,0x1, 0x7a,0xb3,0xf, 0x27,0x4c,0xff,0x78,0xd, +0x75,0x19,0x0, 0x7e,0xb3,0xf, 0x26,0x12,0x6e,0xe2,0x2, 0x38,0x85,0xe5,0x51,0xb4, +0x1, 0x1b,0x7e,0xb3,0xf, 0x1c,0xb4,0x1, 0x14,0x7e,0xb3,0xd, 0xf7,0xb4,0x1, 0xd, +0x7e,0x73,0xd, 0xf9,0xbe,0x70,0x15,0x40,0x4, 0x74,0x1, 0x80,0x1, 0xe4,0xb4,0x1, +0x9, 0xe5,0x19,0x70,0x5, 0x75,0x16,0x5, 0xf5,0x17,0xe5,0x51,0xb4,0x1, 0x1b,0x7e, +0xb3,0xf, 0x1c,0xb4,0x1, 0x14,0x7e,0xb3,0xd, 0xf7,0xb4,0x1, 0xd, 0x7e,0x73,0xd, +0xf9,0xbe,0x70,0x15,0x40,0x4, 0x74,0x1, 0x80,0x1, 0xe4,0xf5,0x19,0x6c,0xee,0x7e, +0x70,0x7, 0xac,0x7e,0x9, 0xb3,0xe, 0x9d,0xf5,0x21,0xbe,0xb0,0xff,0x78,0x3, 0x2, +0x38,0x7b,0xe5,0x21,0xa, 0x2b,0x2d,0x26,0x7e,0x29,0xb0,0xb4,0x2, 0x2, 0x80,0x3, +0x2, 0x38,0x7b,0x49,0x33,0xe, 0x99,0x7e,0xa1,0x21,0x74,0x4, 0xa4,0x49,0x25,0x13, +0x74,0x12,0x6d,0xf1,0x7a,0x35,0x22,0x74,0x7, 0xac,0xbe,0x49,0x35,0xe, 0x9b,0x7e, +0xa1,0x21,0x74,0x4, 0xa4,0x49,0x25,0x13,0x76,0x12,0x6d,0xf1,0x7a,0x35,0x24,0xe5, +0x16,0xa, 0x3b,0xbe,0x35,0x22,0x28,0x59,0xbe,0x35,0x24,0x28,0x54,0x7e,0xa1,0x21, +0x74,0x4, 0xa4,0x49,0x35,0x13,0x74,0x74,0x7, 0xac,0xbe,0x59,0x35,0xe, 0x99,0x7e, +0xa1,0x21,0x74,0x4, 0xa4,0x49,0x35,0x13,0x76,0x74,0x7, 0xac,0xbe,0x59,0x35,0xe, +0x9b,0xe5,0x21,0xa, 0x3b,0x2d,0x36,0x7e,0x39,0xb0,0xb4,0x2, 0x7, 0xbe,0xf0,0x0, +0x28,0x2, 0x1b,0xf0,0x4c,0xff,0x78,0x53,0x5, 0x17,0xe5,0x17,0xbe,0xb0,0x32,0x40, +0x3, 0x75,0x17,0x0, 0x7e,0x73,0xf, 0x27,0xbe,0x71,0x16,0x28,0x3e,0x5, 0x16,0x80, +0x3a,0x7e,0x90,0x7, 0xac,0x9e,0x49,0x34,0xe, 0x99,0x7e,0xa1,0x21,0x74,0x4, 0xa4, +0x59,0x35,0x13,0x74,0x49,0x34,0xe, 0x9b,0x59,0x35,0x13,0x76,0x7e,0x73,0xf, 0x26, +0xbe,0x71,0x16,0x50,0x8, 0x7e,0xb3,0xf, 0x27,0xf5,0x16,0x80,0xb, 0x7e,0x73,0xf, +0x27,0xbe,0x71,0x16,0x50,0x2, 0x15,0x16,0x75,0x17,0x0, 0xb, 0xe0,0xbe,0xe0,0xa, +0x68,0x3, 0x2, 0x37,0x8f,0xda,0x3b,0x22,0xca,0x3b,0x6c,0xff,0x7e,0xb3,0x10,0x2b, +0xf5,0x24,0x7e,0xe3,0x10,0x2c,0x1b,0xe0,0x6c,0xdd,0x7e,0x70,0x30,0xac,0x7d,0x2e, +0x37,0xf, 0xda,0x49,0x33,0x0, 0x2e,0x74,0x2, 0xac,0xbd,0x59,0x35,0x13,0xb6,0xb, +0xd0,0xbe,0xd0,0xd, 0x78,0xe4,0x7e,0xb3,0xf, 0xd3,0xb4,0x1, 0x2, 0x80,0x3, 0x2, +0x39,0xff,0x6c,0xcc,0x2, 0x39,0xf0,0x7e,0x70,0x2, 0xac,0x7c,0x9, 0xb3,0xd, 0x18, +0xf5,0x22,0x9, 0xb3,0xd, 0x19,0xf5,0x23,0x75,0x21,0x3, 0x7e,0x73,0xe, 0x12,0xbe, +0x70,0x20,0x50,0xa, 0x7e,0xb3,0xd, 0xf7,0xb4,0x1, 0x3, 0x75,0x21,0x1, 0x7e,0xb3, +0xd, 0xfd,0xb4,0x1, 0x3, 0x75,0x21,0x2, 0x74,0x8, 0x7a,0xb3,0xf, 0x53,0xe5,0x22, +0xbe,0xb0,0x0, 0x28,0x21,0xe5,0x24,0xa, 0x2b,0x1b,0x24,0xe5,0x22,0xa, 0x3b,0xbd, +0x32,0x58,0x13,0xe5,0x23,0xbe,0xb0,0x0, 0x28,0xc, 0xa, 0x2e,0x1b,0x24,0xe5,0x23, +0xa, 0x3b,0xbd,0x32,0x48,0x3, 0x75,0x21,0x2, 0x75,0x25,0x0, 0x80,0x45,0xe5,0x25, +0xbc,0xbc,0x68,0x3d,0x7e,0x71,0x25,0x74,0x2, 0xac,0x7b,0x9, 0xa3,0xd, 0x18,0x7a, +0xa1,0x26,0x9, 0xb3,0xd, 0x19,0xf5,0x27,0xa, 0x2a,0xe5,0x22,0xa, 0x3b,0x9d,0x32, +0x12,0x6e,0x11,0xbe,0x34,0x0, 0x3, 0x18,0x18,0xe5,0x27,0xa, 0x2b,0xe5,0x23,0xa, +0x3b,0x9d,0x32,0x12,0x6e,0x11,0xbe,0x34,0x0, 0x3, 0x18,0x5, 0x75,0x21,0x1, 0x80, +0xb, 0x5, 0x25,0x7e,0x73,0xd, 0xf7,0xbe,0x71,0x25,0x38,0xb2,0xe5,0x51,0xb4,0x1, +0x20,0x7e,0xb3,0xf, 0x1c,0xb4,0x1, 0x19,0x7e,0xb3,0xd, 0xf7,0xb4,0x1, 0x12,0x7e, +0x73,0xd, 0xf9,0xbe,0x70,0x15,0x40,0x9, 0x75,0x21,0x3, 0x74,0x1e,0x7a,0xb3,0xf, +0x53,0xe5,0x23,0xbe,0xb0,0x17,0x50,0x1a,0x6c,0xdd,0x6d,0x33,0x7e,0x50,0x30,0xac, +0x5d,0x2e,0x27,0xf, 0xda,0x59,0x32,0x0, 0x2e,0xb, 0xd0,0xbe,0xd0,0xd, 0x78,0xec, +0x80,0x3, 0x75,0x21,0x0, 0xe5,0x21,0x7c,0x7c,0x7c,0x6f,0x12,0x11,0xa0,0x6c,0xdd, +0x74,0x2, 0xac,0xbd,0x49,0x35,0x13,0xb6,0x7e,0x50,0x30,0xac,0x5d,0x2e,0x27,0xf, +0xda,0x59,0x32,0x0, 0x2e,0xb, 0xd0,0xbe,0xd0,0xd, 0x78,0xe4,0xb, 0xf0,0xb, 0xc0, +0x7e,0x73,0xd, 0xf7,0xbc,0x7c,0x28,0x3, 0x2, 0x38,0xc7,0x7a,0xf3,0xd, 0xf7,0xda, +0x3b,0x22,0x7e,0x50,0x1, 0xe4,0x7a,0xb3,0xe, 0xb, 0x74,0x1, 0x7a,0xb3,0xe, 0xc, +0x7e,0xa3,0xd, 0xf7,0x4c,0xaa,0x78,0x1d,0x7e,0x43,0xd, 0xf8,0xbe,0x40,0x0, 0x28, +0x14,0x7e,0x43,0x16,0xb7,0xbe,0x40,0x1, 0x28,0xb, 0x74,0x1, 0x7a,0xb3,0xe, 0xb, +0xe4,0x7a,0xb3,0x10,0x3d,0x4c,0xaa,0x78,0xb, 0x74,0x1, 0x7a,0xb3,0x16,0xb7,0xe4, +0x7a,0xb3,0x16,0xb8,0xbe,0xa0,0x0, 0x28,0x5, 0xe4,0x7a,0xb3,0xe, 0xc, 0x7e,0x43, +0xd, 0xfc,0xbe,0x40,0x0, 0x28,0x5, 0xe4,0x7a,0xb3,0xe, 0xc, 0x7e,0x43,0xd, 0x17, +0xbe,0x40,0x0, 0x28,0x6b,0x7e,0xb3,0x16,0xb1,0x70,0x65,0x7e,0xb3,0x16,0xb3,0x70, +0x5f,0x74,0x1, 0x7a,0xb3,0xe, 0xc, 0x6d,0x33,0x6c,0x44,0x7e,0x30,0x2, 0xac,0x34, +0x2e,0x17,0xf, 0xd6,0xb, 0x18,0x10,0xbd,0x13,0x58,0x2, 0x7d,0x31,0xb, 0x40,0xa5, +0xbc,0x25,0xe8,0xbe,0x34,0xf8,0xf8,0x58,0x5, 0x7e,0x50,0x5, 0x80,0x1f,0xbe,0x34, +0xfb,0x50,0x58,0x5, 0x7e,0x50,0x4, 0x80,0x14,0xbe,0x34,0xfc,0xe0,0x58,0x5, 0x7e, +0x50,0x3, 0x80,0x9, 0xbe,0x34,0xfe,0xd4,0x58,0x3, 0x7e,0x50,0x2, 0xbe,0x34,0xfc, +0x18,0x58,0x3c,0x74,0x1, 0x7a,0xb3,0xe, 0xb, 0xe4,0x7a,0xb3,0x10,0x3d,0x80,0x2f, +0x7e,0x43,0xd, 0x16,0xa5,0xbc,0x0, 0x1d,0xbe,0xa0,0x0, 0x28,0x18,0x7e,0xb3,0x16, +0xb1,0x70,0x12,0x7e,0xb3,0x16,0xb3,0x70,0xc, 0xbe,0x50,0x3, 0x50,0x3, 0x7e,0x50, +0x3, 0x74,0x1, 0x80,0x6, 0xbe,0x40,0x0, 0x28,0x5, 0xe4,0x7a,0xb3,0xe, 0xc, 0x7e, +0x43,0x16,0xb7,0xbc,0x45,0x50,0x4, 0x7a,0x53,0x16,0xb7,0xbe,0x50,0x2, 0x28,0x6, +0x74,0x1, 0x7a,0xb3,0x16,0xb8,0xbe,0xa0,0x0, 0x28,0x1b,0x7e,0xb3,0xd, 0x16,0x70, +0x15,0x7e,0xb3,0x16,0xb1,0x70,0xf, 0x7e,0xb3,0x16,0xb3,0x70,0x9, 0xe4,0x7a,0xb3, +0xf, 0xd3,0x7a,0xb3,0xf, 0xd2,0x7e,0xb3,0x16,0xb3,0xb4,0x1, 0x18,0xe4,0x7a,0xb3, +0x16,0xb3,0x74,0x1, 0x7a,0xb3,0xe, 0xb, 0xe4,0x7a,0xb3,0x10,0x3d,0x7a,0xb3,0xf, +0xd3,0x7a,0xb3,0xf, 0xd2,0x7e,0xa3,0x16,0xb7,0x7e,0x50,0x8, 0xac,0x5a,0x7a,0x27, +0xe, 0x5, 0x74,0x4, 0xa4,0x7a,0x57,0xe, 0x7, 0x22,0xca,0x3b,0x7d,0x73,0x7e,0xb3, +0xd, 0xf7,0xf5,0x4c,0x7e,0x37,0xf, 0xda,0x7a,0x35,0x4f,0x75,0x42,0x0, 0x7e,0xc0, +0x1, 0x80,0x19,0xe5,0x42,0xa, 0x3b,0x2d,0x37,0x7e,0x39,0x60,0xa, 0x2c,0x2d,0x27, +0x7e,0x29,0x70,0xbc,0x76,0x40,0x3, 0x7a,0xc1,0x42,0xb, 0xc0,0xe5,0x4c,0xbc,0xbc, +0x38,0xe1,0xe5,0x42,0xa, 0x3b,0x2d,0x37,0x7e,0x39,0xb0,0xf5,0x42,0x75,0x44,0x0, +0x7e,0xc0,0x1, 0x2, 0x3c,0xb4,0x75,0x4b,0x0, 0x6d,0x33,0x7a,0x35,0x4d,0x6c,0xdd, +0x75,0x45,0x0, 0x75,0x46,0x0, 0x75,0x43,0x0, 0x2, 0x3c,0x69,0x7e,0x71,0x43,0x74, +0x2, 0xac,0x7b,0x9, 0xb3,0xd, 0x18,0xf5,0x47,0x9, 0xb3,0xd, 0x19,0xf5,0x48,0xe5, +0x43,0xa, 0x3b,0x2d,0x37,0x7e,0x39,0x70,0xbc,0x7c,0x78,0x7b,0xb, 0xd0,0xe5,0x47, +0x25,0x45,0xf5,0x45,0xe5,0x48,0x25,0x46,0xf5,0x46,0x7e,0x51,0x47,0xac,0x5d,0xe5, +0x45,0xa, 0x3b,0x9d,0x32,0x12,0x6e,0x11,0x7c,0xb7,0xf5,0x49,0x7e,0x51,0x48,0xac, +0x5d,0xe5,0x46,0xa, 0x3b,0x9d,0x32,0x12,0x6e,0x11,0x7c,0xb7,0xf5,0x4a,0x7e,0x51, +0x4b,0xac,0x5d,0xe5,0x49,0xa, 0x3b,0xbd,0x32,0x8, 0x9, 0xa, 0x2d,0x12,0x48,0x53, +0x7c,0xb7,0xf5,0x4b,0x7e,0x51,0x4b,0xac,0x5d,0xe5,0x4a,0xa, 0x3b,0xbd,0x32,0x8, +0x9, 0xa, 0x2d,0x12,0x48,0x53,0x7c,0xb7,0xf5,0x4b,0x7e,0x71,0x47,0x74,0x18,0xac, +0x7b,0xe5,0x48,0xa, 0x2b,0x2d,0x32,0x3e,0x34,0x2e,0x35,0x4f,0xb, 0x38,0x30,0xbe, +0x35,0x4d,0x8, 0x3, 0x7a,0x35,0x4d,0x5, 0x43,0xe5,0x4c,0xbe,0xb1,0x43,0x28,0x3, +0x2, 0x3b,0xcc,0xbe,0xd0,0x0, 0x28,0x3a,0xe5,0x45,0x8c,0xbd,0xf5,0x45,0xe5,0x46, +0x8c,0xbd,0xf5,0x46,0x7e,0xa1,0x45,0x7e,0x71,0x44,0x74,0x2, 0xac,0x7b,0x19,0xa3, +0x15,0x2b,0xe5,0x46,0x19,0xb3,0x15,0x2c,0x7e,0x25,0x4d,0x7e,0x71,0x45,0x74,0x18, +0xac,0x7b,0xe5,0x46,0xa, 0x1b,0x2d,0x31,0x3e,0x34,0x2e,0x35,0x4f,0x1b,0x38,0x20, +0x5, 0x44,0xb, 0xc0,0xe5,0x42,0xbc,0xbc,0x40,0x3, 0x2, 0x3b,0xb6,0xe5,0x44,0xda, +0x3b,0x22,0x74,0xd, 0x7a,0xb3,0x10,0x2b,0x74,0x18,0x7a,0xb3,0x10,0x2c,0x74,0x4, +0x7a,0xb3,0x10,0x2d,0xe4,0x7a,0xb3,0x10,0x2e,0x7e,0x34,0x11,0x9b,0x7a,0x37,0x10, +0x2f,0x7e,0x34,0x11,0x97,0x7a,0x37,0x10,0x31,0x7e,0x34,0xf, 0xc5,0x7a,0x37,0x10, +0x33,0x7e,0x34,0xf, 0xad,0x7a,0x37,0x10,0x35,0x74,0x15,0x7a,0xb3,0x10,0x37,0x74, +0x17,0x7a,0xb3,0x10,0x38,0x74,0x4, 0x7a,0xb3,0x10,0x3a,0xe4,0x7a,0xb3,0x10,0x3b, +0x7a,0xb3,0x10,0x3c,0x7a,0xb3,0x10,0x3d,0x74,0x2, 0x7a,0xb3,0x10,0x3e,0x74,0x45, +0x7a,0xb3,0x10,0x3f,0x74,0x71,0x7a,0xb3,0x10,0x40,0x74,0x3, 0x7a,0xb3,0x10,0x41, +0x7e,0x34,0x1f,0xff,0x7a,0x37,0x10,0x42,0x6d,0x33,0x7a,0x37,0x10,0x44,0x7e,0x34, +0xd, 0xfe,0x7a,0x37,0x10,0x46,0x7e,0x34,0xf, 0xdc,0x7a,0x37,0x10,0x48,0x74,0x20, +0x7a,0xb3,0x10,0x4a,0x74,0xa, 0x7a,0xb3,0x10,0x4b,0xe4,0x7a,0xb3,0x10,0x4c,0x7a, +0xb3,0x10,0x4d,0x7a,0xb3,0x10,0x4e,0x74,0x2, 0x7a,0xb3,0x10,0x4f,0x7e,0x34,0x0, +0xf4,0x7a,0x37,0x10,0x52,0x7e,0x34,0x3f,0xe0,0x7a,0x37,0x10,0x50,0x7e,0x34,0x29, +0x28,0x7a,0x37,0x10,0x54,0x7e,0x34,0x10,0x91,0x7a,0x37,0x10,0x62,0x7e,0x34,0x0, +0x3d,0x7a,0x37,0x10,0x64,0x7e,0x34,0x0, 0x22,0x7a,0x37,0x10,0x66,0x7e,0x34,0x4c, +0x0, 0x7a,0x37,0x10,0x56,0x7e,0x34,0x3, 0xcf,0x7a,0x37,0x10,0x58,0x7e,0x34,0x7, +0x9a,0x7a,0x37,0x10,0x5a,0x7e,0x34,0x5, 0x84,0x7a,0x37,0x10,0x5c,0x7e,0x34,0x0, +0x9, 0x7a,0x37,0x10,0x5e,0x7e,0x34,0x0, 0xf, 0x7a,0x37,0x10,0x60,0x7e,0x34,0x0, +0x5d,0x7a,0x37,0x10,0x68,0xe4,0x7a,0xb3,0x10,0x6a,0x74,0x7, 0x7a,0xb3,0x10,0x6b, +0x7e,0x34,0x10,0xff,0x7a,0x37,0x10,0x6c,0x7e,0x34,0xf, 0xa0,0x7a,0x37,0x10,0x6e, +0x7e,0x34,0xf, 0x2e,0x7a,0x37,0x10,0x70,0x12,0x41,0xcf,0x7e,0x34,0x11,0xe9,0x7a, +0x37,0x10,0x72,0x7e,0x34,0xf, 0x88,0x7a,0x37,0x10,0x74,0x7e,0x34,0x11,0x17,0x7a, +0x37,0x10,0x76,0x2, 0x6c,0x99,0xca,0x69,0xca,0xf8,0x7d,0xb1,0x7d,0xf2,0x7d,0xe3, +0x9f,0x0, 0x7f,0x60,0x7f,0x40,0x6d,0x66,0x7a,0x67,0x13,0xb6,0x7f,0x10,0x7d,0xa6, +0x75,0x21,0x0, 0x6c,0xaa,0x80,0x4b,0x7e,0x30,0x2, 0xac,0x3a,0x7d,0xa1,0x2d,0xae, +0xb, 0xa8,0xa0,0x7c,0xba,0x20,0xe0,0x1e,0xbd,0xab,0x8, 0x4, 0x7d,0xab,0x80,0xa, +0x6d,0x11,0x9d,0x1b,0xbd,0x1a,0x8, 0x2, 0x7d,0xa1,0x7d,0x1a,0x1a,0x2, 0x1a,0x0, +0x2f,0x60,0x5, 0x21,0x80,0x1a,0xbd,0xab,0x8, 0x4, 0x7d,0xab,0x80,0xa, 0x6d,0x11, +0x9d,0x1b,0xbd,0x1a,0x8, 0x2, 0x7d,0xa1,0x7d,0x1a,0x1a,0x2, 0x1a,0x0, 0x2f,0x40, +0xb, 0xa0,0x7e,0xf3,0x10,0x2c,0xbc,0xfa,0x38,0xad,0xe5,0x21,0xa, 0x1b,0x6d,0x0, +0x7f,0x16,0x12,0x48,0xf2,0x7a,0x37,0x13,0xb6,0xe5,0x21,0xa, 0x3b,0x6d,0x22,0xa, +0x1f,0x6d,0x0, 0x9f,0x1, 0x7f,0x14,0x12,0x48,0xf2,0x6c,0xaa,0x80,0x2f,0x7c,0xba, +0x7e,0x30,0x2, 0x7c,0x9a,0x20,0xe0,0xf, 0xac,0x93,0x7d,0x14,0x2d,0x1e,0xb, 0x18, +0x0, 0x9e,0x7, 0x13,0xb6,0x80,0xd, 0xac,0x93,0x7d,0x14,0x2d,0x1e,0xb, 0x18,0x0, +0x7d,0x13,0x9d,0x1, 0x7d,0x14,0x2d,0x1f,0x1b,0x18,0x0, 0xb, 0xa0,0x7e,0xb3,0x10, +0x2c,0xbc,0xba,0x38,0xc9,0x9f,0x66,0x7a,0x67,0x13,0xb6,0x6c,0xaa,0x80,0x29,0x7e, +0x70,0x2, 0xac,0x7a,0x7d,0xa3,0x2d,0xae,0x49,0xaa,0x0, 0x30,0xbd,0xab,0x8, 0x4, +0x7d,0xab,0x80,0xa, 0x6d,0x33,0x9d,0x3b,0xbd,0x3a,0x8, 0x2, 0x7d,0xa3,0x7d,0x3a, +0x1a,0x26,0x1a,0x24,0x2f,0x61,0xb, 0xa0,0x7e,0x63,0x10,0x2b,0xbc,0x6a,0x38,0xcf, +0xa, 0x16,0x6d,0x0, 0x7f,0x16,0x12,0x48,0xf2,0x7a,0x37,0x13,0xb6,0x6c,0xaa,0x80, +0x1d,0x7e,0x70,0x2, 0x7c,0x5a,0xac,0x57,0x7d,0x32,0x2d,0x3e,0x49,0x43,0x0, 0x30, +0x9e,0x47,0x13,0xb6,0x7d,0x32,0x2d,0x3f,0x59,0x43,0x0, 0x30,0xb, 0xa0,0x7e,0xb3, +0x10,0x2b,0xbc,0xba,0x38,0xdb,0xda,0xf8,0xda,0x69,0x22,0xca,0x79,0x7c,0xfb,0xe5, +0x55,0xbe,0xb0,0x1, 0x68,0xf9,0xe5,0x55,0xb4,0x2, 0x2, 0x80,0x3, 0x2, 0x40,0x4b, +0xa9,0xd7,0xea,0x7e,0x37,0xf, 0xda,0x7e,0x27,0xf, 0xd8,0x7e,0x14,0x18,0x0, 0x12, +0x67,0xe2,0x12,0x0, 0x6e,0x50,0x27,0xa9,0xc7,0xea,0x7e,0xe3,0x10,0x4d,0xe4,0x7a, +0xb3,0x10,0x4d,0x7e,0x24,0x5, 0xe0,0x7d,0x32,0x7e,0x14,0x18,0x0, 0x12,0x67,0xe2, +0x7a,0xe3,0x10,0x4d,0x7e,0xb3,0x10,0xa5,0xb4,0x1, 0x3, 0x12,0x6b,0x12,0x74,0x1, +0x7a,0xb3,0xf, 0xd3,0x7e,0x34,0x9, 0x2e,0x7e,0x24,0x8, 0xe4,0x7e,0x14,0xa, 0x18, +0x12,0x66,0xc7,0x7e,0x37,0xf, 0xd6,0x7e,0x27,0xf, 0xd4,0x7e,0x14,0xa, 0x62,0x12, +0x66,0xc7,0x6c,0xaa,0x80,0x36,0x7e,0x50,0x2, 0xac,0x5a,0x49,0x32,0xa, 0x92,0xbe, +0x34,0x13,0x88,0x40,0xc, 0xbe,0x34,0x75,0x30,0x28,0x1a,0xbe,0x34,0x7e,0xf4,0x50, +0x14,0x7e,0xb3,0x16,0xb4,0x4, 0x7a,0xb3,0x16,0xb4,0xb4,0xa, 0xd, 0x74,0x1, 0x7a, +0xb3,0x16,0xb3,0x80,0xf, 0xe4,0x7a,0xb3,0x16,0xb4,0xb, 0xa0,0x7e,0xb3,0x10,0x2b, +0xbc,0xba,0x38,0xc2,0x7e,0xa3,0x16,0xb3,0xbe,0xa0,0x1, 0x78,0x7, 0x7e,0xb3,0x16, +0xb2,0x4, 0x80,0x1, 0xe4,0x7a,0xb3,0x16,0xb2,0xbe,0xb0,0x0, 0x28,0x6, 0x74,0x1, +0x7a,0xb3,0x16,0xb1,0x4c,0xaa,0x78,0xd, 0xe4,0x7a,0xb3,0x16,0xb2,0x7a,0xb3,0x16, +0xb1,0x7a,0xb3,0x16,0xb4,0x74,0x1, 0x7a,0xb3,0xf, 0xd2,0x12,0x67,0x1, 0x12,0x6b, +0xbd,0x7e,0xb3,0x11,0xc, 0xb4,0x1, 0x31,0xbe,0xf0,0x1, 0x78,0x2c,0x7e,0xb3,0xd, +0xfc,0x70,0x26,0x12,0x47,0x4a,0x7e,0xb3,0xd, 0xf7,0x70,0x19,0x7e,0x73,0x11,0x95, +0xa, 0x37,0x9, 0x73,0xf, 0x29,0x7a,0x73,0x10,0x4a,0xe4,0x7a,0xb3,0x10,0x4e,0x7a, +0xb3,0x11,0xc, 0x80,0x6, 0x6c,0xff,0x80,0x2, 0x6c,0xff,0x12,0x66,0x52,0x12,0x6c, +0x1f,0x7c,0xbf,0xda,0x79,0x22,0xca,0x3b,0x75,0x21,0x0, 0x7e,0x34,0xb, 0x79,0x7e, +0x24,0x0, 0xd, 0xe4,0x12,0x6e,0x21,0xe4,0x7a,0xb3,0xd, 0x16,0x7a,0xb3,0xd, 0x17, +0x7e,0xb3,0xf, 0xd2,0xb4,0x1, 0x2, 0x80,0x3, 0x2, 0x41,0xcc,0x7e,0x34,0x13,0xb6, +0x7e,0x24,0x0, 0xa, 0x74,0xff,0x12,0x6e,0x21,0x7e,0x34,0x13,0xc0,0x7e,0x24,0x0, +0xa, 0x74,0xff,0x12,0x6e,0x21,0x7e,0x37,0xf, 0xd6,0x7e,0xb3,0x10,0x2c,0x7e,0x27, +0xf, 0x4c,0x7e,0x14,0x13,0xb6,0x6c,0x11,0x12,0x4f,0x6e,0x7c,0xeb,0x7e,0x37,0xf, +0xd6,0x2e,0x34,0x0, 0x30,0x7e,0xb3,0x10,0x2b,0x7e,0x27,0xf, 0x4a,0x7e,0x14,0x13, +0xc0,0x12,0x4f,0x6e,0x7c,0xdb,0x6c,0xff,0x6c,0xaa,0x80,0x51,0x6c,0xcc,0x80,0x47, +0x7c,0xbf,0xc4,0x23,0x54,0x1f,0x7c,0x6b,0x7a,0x61,0x21,0xa, 0x2a,0x9, 0x72,0x13, +0xc0,0x7e,0x50,0x2, 0xac,0x5f,0x19,0x72,0xa, 0xb1,0xa, 0x1c,0x9, 0x71,0x13,0xb6, +0x19,0x72,0xa, 0xb2,0x7c,0xbf,0x54,0x7, 0x7e,0x44,0x0, 0x1, 0x60,0x5, 0x3e,0x44, +0x14,0x78,0xfb,0x7c,0x79,0xa, 0x46,0x2e,0x44,0xb, 0x79,0x7e,0x49,0xb0,0x4c,0xb7, +0x7a,0x49,0xb0,0xb, 0xf0,0xb, 0xc0,0xbc,0xec,0x38,0xb5,0xb, 0xa0,0xbc,0xda,0x38, +0xab,0x7a,0xf3,0xd, 0x16,0x7e,0x34,0x13,0xb6,0x7e,0x24,0x0, 0xa, 0x74,0xff,0x12, +0x6e,0x21,0x7e,0x34,0x13,0xc0,0x7e,0x24,0x0, 0xa, 0x74,0xff,0x12,0x6e,0x21,0x7e, +0x37,0xf, 0xd6,0x7e,0xb3,0x10,0x2c,0x7e,0x27,0xf, 0x4e,0x7e,0x14,0x13,0xb6,0x7e, +0x10,0x1, 0x12,0x4f,0x6e,0x7c,0xeb,0x7e,0x37,0xf, 0xd6,0x2e,0x34,0x0, 0x30,0x7e, +0xb3,0x10,0x2b,0x7e,0x27,0xf, 0x4e,0x7e,0x14,0x13,0xc0,0x12,0x4f,0x6e,0x7c,0xdb, +0x6c,0xff,0x6c,0xaa,0x80,0xe, 0x6c,0xcc,0x80,0x4, 0xb, 0xf0,0xb, 0xc0,0xbc,0xec, +0x38,0xf8,0xb, 0xa0,0xbc,0xda,0x38,0xee,0x7a,0xf3,0xd, 0x17,0xda,0x3b,0x22,0xca, +0x79,0x7e,0x34,0x0, 0x60,0x12,0x69,0xb9,0x7c,0xab,0x7a,0xa1,0x6a,0xbe,0xa0,0x8, +0x40,0x3, 0x2, 0x42,0xed,0xbe,0xa0,0x4, 0x50,0x5, 0x7e,0xe0,0x6, 0x80,0x3, 0x7e, +0xe0,0x5, 0x7c,0xba,0xbe,0xb0,0x8, 0x50,0x48,0x7e,0xa0,0x3, 0xa4,0x90,0x42,0x1, +0x73,0x2, 0x42,0x19,0x2, 0x42,0x1e,0x2, 0x42,0x23,0x2, 0x42,0x28,0x2, 0x42,0x2d, +0x2, 0x42,0x32,0x2, 0x42,0x37,0x2, 0x42,0x3c,0x7e,0xf0,0x5e,0x80,0x26,0x7e,0xf0, +0x5f,0x80,0x21,0x7e,0xf0,0x61,0x80,0x1c,0x7e,0xf0,0x63,0x80,0x17,0x7e,0xf0,0x65, +0x80,0x12,0x7e,0xf0,0x67,0x80,0xd, 0x7e,0xf0,0x69,0x80,0x8, 0x7e,0xf0,0x6a,0x80, +0x3, 0x7e,0xf0,0x64,0x6c,0xaa,0xa, 0x3a,0x9, 0xb3,0x11,0xe9,0xa, 0xb, 0x7e,0xb3, +0x10,0xff,0xa, 0x1b,0x2d,0x1, 0x7c,0xb1,0x7c,0x1a,0x2e,0x10,0x21,0xa5,0xf7,0x7c, +0x9b,0xa, 0x9, 0x5e,0x4, 0x0, 0x1, 0xbe,0x4, 0x0, 0x1, 0x78,0x1c,0x7c,0x79,0xac, +0x7f,0x7e,0x50,0x3, 0xac,0x5f,0xe, 0x24,0xe, 0x24,0x2d,0x32,0x7c,0xba,0x3e,0xb0, +0x24,0x25,0xa, 0xb, 0x1b,0x8, 0x30,0x80,0xd, 0xac,0x9f,0x7c,0xba,0x3e,0xb0,0x24, +0x25,0xa, 0xb, 0x1b,0x8, 0x40,0x7c,0xba,0x3e,0xb0,0x24,0x25,0xa, 0xb, 0xb, 0x8, +0xf0,0x7e,0x4, 0x0, 0xa, 0x7d,0x3f,0x8d,0x30,0x8d,0x30,0x7c,0x75,0xbe,0x70,0x0, +0x40,0x14,0xbc,0xe7,0x28,0x10,0x7e,0xc4,0x0, 0x64,0x7d,0xdf,0x8d,0xdc,0x7d,0xd, +0x9d,0x1, 0x7c,0x61,0x80,0x17,0xbc,0xe7,0x38,0x19,0xbe,0x70,0x9, 0x38,0x14,0x7e, +0xe4,0x0, 0x64,0x8d,0xfe,0x7d,0x2f,0xb, 0x24,0x9d,0x21,0x7c,0x65,0xa, 0x2a,0x19, +0x62,0x11,0xe9,0xb, 0xa0,0xbe,0xa0,0x4, 0x68,0x3, 0x2, 0x42,0x46,0xda,0x79,0x22, +0xca,0xf8,0x6d,0x33,0x7a,0x37,0x10,0x1, 0x7e,0x34,0xd, 0xac,0x7a,0x37,0xa, 0xaf, +0x74,0x1, 0x7a,0xb3,0x10,0x3c,0x7a,0xb3,0x10,0x4d,0x7a,0xb3,0x10,0xa5,0x7e,0xb3, +0xf, 0x26,0x12,0x6e,0xe2,0x12,0x64,0x48,0x7e,0xb3,0x10,0xa5,0xb4,0x1, 0x2, 0x80, +0x3, 0x2, 0x44,0x6, 0x6d,0x33,0x7a,0x37,0x10,0x1, 0x7e,0x34,0x0, 0x64,0x7a,0x37, +0xa, 0xaf,0xe4,0x7a,0xb3,0x16,0xba,0x12,0x6c,0x7b,0x12,0x46,0x40,0x12,0x6b,0x35, +0x6c,0xff,0x1a,0x2f,0x7e,0x34,0x0, 0x18,0xad,0x32,0x3e,0x34,0x2e,0x37,0xf, 0xda, +0x2e,0x34,0x0, 0x30,0x1b,0x35,0xb, 0x38,0x30,0x1a,0x2f,0x3e,0x24,0x59,0x32,0x13, +0x9c,0xb, 0xf0,0xbe,0xf0,0xd, 0x78,0xda,0x12,0x6b,0x7b,0x12,0x6c,0xd1,0x12,0x69, +0x38,0x6c,0xff,0x1a,0x3f,0x3e,0x34,0x49,0x23,0x13,0x9c,0x1a,0xf, 0x7e,0x14,0x0, +0x18,0xad,0x10,0x7d,0x31,0x3e,0x34,0x2e,0x37,0xf, 0xda,0x2e,0x34,0x0, 0x30,0x1b, +0x35,0x1b,0x38,0x20,0xb, 0xf0,0xbe,0xf0,0xd, 0x78,0xd8,0x12,0x6a,0xb, 0x12,0x49, +0x47,0x7e,0xb3,0xf, 0xd3,0x70,0x9, 0x7e,0xb3,0xf, 0xd2,0x70,0x3, 0x2, 0x43,0x18, +0x12,0x1f,0x97,0x12,0x33,0xaf,0x7a,0xb3,0xf, 0x25,0x12,0x6e,0x40,0x12,0x6d,0x37, +0x70,0x3, 0x2, 0x43,0x18,0x12,0x45,0x2a,0x7e,0x37,0xf, 0xda,0x12,0x8, 0x6, 0x12, +0x6e,0xe8,0x12,0x4e,0xc4,0x12,0x0, 0x6e,0x50,0x3, 0x12,0x30,0x5, 0x7e,0xb3,0x11, +0x15,0xb4,0x1, 0x4, 0xe4,0x12,0x6e,0xd3,0x12,0x67,0x3a,0x12,0x19,0x6d,0x12,0x6, +0x11,0x12,0x6f,0x7, 0x12,0x65,0x9a,0x12,0x36,0xf6,0x12,0x56,0x4e,0x12,0x1c,0xb1, +0x12,0x4b,0x9, 0x2, 0x43,0x18,0x12,0x0, 0x1e,0x12,0x6e,0x5c,0xda,0xf8,0x22,0xca, +0x3b,0x7c,0xeb,0x7e,0x73,0xd, 0xf7,0xbe,0x70,0x1, 0x38,0x3, 0x2, 0x45,0x21,0x7c, +0xbe,0x12,0xd, 0x46,0x7e,0xb3,0xd, 0xfc,0x60,0x1e,0x7e,0xb3,0x15,0x54,0x70,0x8, +0x7e,0xb3,0x15,0x55,0x70,0x2, 0x80,0x10,0x7e,0x73,0xd, 0xf7,0xbe,0x70,0x1, 0x28, +0xc, 0xe5,0x12,0xbe,0xb0,0x8, 0x28,0x5, 0x7e,0xf0,0x1, 0x80,0x1e,0x7e,0xf0,0x1, +0xbe,0x73,0xf, 0x1c,0x78,0x6, 0x6c,0xee,0x6c,0xff,0x80,0xf, 0x9e,0x73,0x15,0x54, +0xbe,0x73,0xf, 0x1c,0x78,0x5, 0x7e,0xe0,0x2, 0x6c,0xff,0x4c,0xff,0x78,0x5, 0x7c, +0xbe,0x12,0xd, 0x46,0xe5,0x10,0x7a,0xb3,0xd, 0xf7,0x7e,0x31,0x10,0x74,0x2, 0xac, +0x3b,0x7e,0x24,0x15,0x2b,0x7e,0x34,0xd, 0x18,0x12,0x6d,0x7d,0x75,0x12,0x64,0x75, +0x13,0x64,0x6c,0xee,0x80,0x67,0x6c,0xdd,0x80,0x59,0x74,0x2, 0xac,0xbd,0x9, 0x75, +0xd, 0x18,0xa, 0x27,0x74,0x2, 0xac,0xbe,0x9, 0x75,0xd, 0x18,0xa, 0x37,0x9d,0x32, +0x12,0x6e,0x11,0x7c,0xb7,0xf5,0x21,0x74,0x2, 0xac,0xbd,0x9, 0x75,0xd, 0x19,0xa, +0x27,0x74,0x2, 0xac,0xbe,0x9, 0x75,0xd, 0x19,0xa, 0x37,0x9d,0x32,0x12,0x6e,0x11, +0x7c,0xc7,0xe5,0x21,0xbe,0xb0,0x0, 0x28,0xa, 0xe5,0x12,0xbe,0xb1,0x21,0x28,0x3, +0x85,0x21,0x12,0xbe,0xc0,0x0, 0x28,0x9, 0xe5,0x13,0xbc,0xbc,0x28,0x3, 0x7a,0xc1, +0x13,0xb, 0xd0,0x7e,0x73,0xd, 0xf7,0xbc,0x7d,0x38,0x9f,0xb, 0xe0,0x7e,0x73,0xd, +0xf7,0xbc,0x7e,0x38,0x91,0xe5,0x12,0xb4,0x64,0x3, 0x75,0x12,0x0, 0xe5,0x13,0xb4, +0x64,0x3, 0x75,0x13,0x0, 0xe5,0x13,0xbe,0xb1,0x12,0x28,0xb, 0x85,0x13,0x12,0x80, +0x6, 0x75,0x12,0x64,0x75,0x13,0x64,0xda,0x3b,0x22,0x12,0x59,0xb0,0x70,0x3, 0x2, +0x45,0xb1,0x75,0x6e,0x14,0x75,0x6d,0x1, 0x6c,0x11,0x80,0x2d,0x7c,0xb1,0x54,0x7, +0xa, 0x3b,0x2e,0x34,0x6e,0xcb,0x7a,0x71,0x82,0x7a,0x61,0x83,0xe4,0x93,0x7c,0xab, +0x6e,0xa0,0xff,0x7c,0xb1,0xc4,0x23,0x54,0x1f,0xa, 0x1b,0x2e,0x14,0xd, 0x68,0x7e, +0x19,0x0, 0x5c,0xa, 0x7a,0x19,0x0, 0xb, 0x10,0x7e,0x3, 0xd, 0xf7,0xbc,0x1, 0x38, +0xcb,0x6c,0x11,0x80,0x32,0x7c,0xb1,0x54,0x7, 0xa, 0x3b,0x2e,0x34,0x6e,0xcb,0x7a, +0x71,0x82,0x7a,0x61,0x83,0xe4,0x93,0x7c,0xab,0x6e,0xa0,0xff,0x7c,0xb1,0xc4,0x23, +0x54,0x1f,0xa, 0x1b,0x2e,0x14,0xb, 0x79,0x7e,0x19,0x0, 0x5c,0xa, 0x7a,0x19,0x0, +0xe4,0x7a,0xb3,0xd, 0x16,0xb, 0x10,0x7e,0x3, 0xd, 0x16,0xbc,0x1, 0x38,0xc6,0xe4, +0x22,0xe5,0x6d,0xb4,0x1, 0x2, 0x80,0x3, 0x2, 0x46,0x3d,0x15,0x6e,0xe5,0x6e,0x60, +0x79,0x6c,0x11,0x80,0x2d,0x7c,0xb1,0x54,0x7, 0xa, 0x3b,0x2e,0x34,0x6e,0xcb,0x7a, +0x71,0x82,0x7a,0x61,0x83,0xe4,0x93,0x7c,0xab,0x6e,0xa0,0xff,0x7c,0xb1,0xc4,0x23, +0x54,0x1f,0xa, 0x1b,0x2e,0x14,0xd, 0x68,0x7e,0x19,0x0, 0x5c,0xa, 0x7a,0x19,0x0, +0xb, 0x10,0x7e,0x3, 0xd, 0xf7,0xbc,0x1, 0x38,0xcb,0x6c,0x11,0x80,0x32,0x7c,0xb1, +0x54,0x7, 0xa, 0x3b,0x2e,0x34,0x6e,0xcb,0x7a,0x71,0x82,0x7a,0x61,0x83,0xe4,0x93, +0x7c,0xab,0x6e,0xa0,0xff,0x7c,0xb1,0xc4,0x23,0x54,0x1f,0xa, 0x1b,0x2e,0x14,0xb, +0x79,0x7e,0x19,0x0, 0x5c,0xa, 0x7a,0x19,0x0, 0xe4,0x7a,0xb3,0xd, 0x16,0xb, 0x10, +0x7e,0x3, 0xd, 0x16,0xbc,0x1, 0x38,0xc6,0xe4,0x22,0x75,0x6d,0x0, 0xe5,0x21,0x22, +0xca,0x79,0x7e,0x74,0x10,0x7e,0x7e,0xb3,0x10,0xfe,0x20,0xe0,0x3, 0x2, 0x47,0x47, +0x54,0xfe,0x7a,0xb3,0x10,0xfe,0x9, 0x77,0x0, 0x2, 0xbe,0x73,0xf, 0x52,0x68,0x16, +0x7a,0x73,0xf, 0x52,0xa, 0x37,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x3e,0x34, +0x3e,0x34,0x7a,0x37,0xf, 0x48,0x7e,0x79,0x70,0xbe,0x73,0xf, 0x5c,0x68,0xe, 0x7a, +0x73,0xf, 0x5c,0xa, 0x37,0x3e,0x34,0x3e,0x34,0x7a,0x37,0xf, 0x54,0x9, 0x77,0x0, +0x1, 0xa, 0x37,0xbe,0x37,0xf, 0x56,0x68,0x4, 0x7a,0x37,0xf, 0x56,0x7e,0x27,0xf, +0x5d,0x1e,0x24,0x1e,0x24,0x1e,0x24,0x1e,0x24,0x9, 0x77,0x0, 0x5, 0xa, 0x37,0xbd, +0x32,0x68,0xc, 0x3e,0x34,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x7a,0x37,0xf, 0x5d,0x9, +0x77,0x0, 0x8, 0xbe,0x73,0x11,0x11,0x68,0x24,0x7a,0x73,0x11,0x11,0xbe,0x70,0xf, +0x40,0x5, 0xe4,0x19,0xb7,0x0, 0x8, 0x9, 0x77,0x0, 0x8, 0xa, 0x37,0x2e,0x34,0x6e, +0x31,0x7a,0x71,0x82,0x7a,0x61,0x83,0xe4,0x93,0x7a,0xb3,0x11,0x10,0x9, 0x77,0x0, +0x9, 0xbe,0x73,0x11,0x13,0x68,0x8, 0x7a,0x73,0x11,0x13,0x7a,0x73,0x11,0x12,0x9, +0x77,0x0, 0x7, 0xbe,0x73,0x11,0x14,0x68,0x4, 0x7a,0x73,0x11,0x14,0x9, 0xb7,0x0, +0xb, 0xbe,0xb1,0x51,0x68,0x5, 0xf5,0x51,0x12,0x6d,0x1f,0x9, 0x77,0x0, 0x25,0xa, +0x37,0xbe,0x37,0x11,0xd, 0x68,0x4, 0x7a,0x37,0x11,0xd, 0x9, 0x77,0x0, 0x6, 0xbe, +0x73,0x11,0xf, 0x68,0x4, 0x7a,0x73,0x11,0xf, 0x9, 0x77,0x0, 0x24,0xbe,0x73,0x11, +0x15,0x68,0x4, 0x7a,0x73,0x11,0x15,0xda,0x79,0x22,0xca,0x79,0xe4,0x6c,0xaa,0xa, +0x4a,0x19,0xb4,0xd, 0x68,0xb, 0xa0,0xbe,0xa0,0x3, 0x78,0xf3,0xe4,0x7a,0xb3,0xd, +0xf7,0x7a,0xb3,0xd, 0xf8,0x7a,0xb3,0xd, 0xf9,0x7a,0xb3,0xd, 0xfa,0x7e,0xb3,0xf, +0xd3,0xb4,0x1, 0x2, 0x80,0x3, 0x2, 0x48,0x50,0x7e,0xb3,0x10,0x2b,0xf5,0x21,0x7e, +0xb3,0x10,0x2c,0xf5,0x22,0x7e,0x37,0xf, 0x56,0x7a,0x35,0x23,0x7e,0x37,0xf, 0x58, +0x7a,0x35,0x25,0x7e,0x37,0xf, 0x5a,0x7a,0x35,0x27,0x7e,0x34,0x0, 0x14,0x7a,0x35, +0x2d,0x7e,0x37,0xf, 0xda,0x7e,0x24,0x0, 0x21,0x7e,0x14,0x0, 0x29,0x7e,0x4, 0x9, +0xc8,0x12,0x4e,0x15,0xe5,0x29,0x7a,0xb3,0xd, 0xf7,0xe5,0x2a,0x7a,0xb3,0xd, 0xf8, +0xe5,0x2b,0x7a,0xb3,0xd, 0xf9,0xe5,0x2c,0x7a,0xb3,0xd, 0xfa,0x6c,0xaa,0x80,0x6c, +0x7e,0x53,0xd, 0xf7,0xbc,0x5a,0x28,0x44,0x7c,0xba,0xc4,0x23,0x54,0x1f,0x7c,0x7b, +0x7c,0xba,0x54,0x7, 0x7e,0x44,0x0, 0x1, 0x60,0x5, 0x3e,0x44,0x14,0x78,0xfb,0x7c, +0x69,0x7e,0x30,0x2, 0xac,0x3a,0x49,0x71,0x9, 0xc8,0x7d,0x7, 0xa, 0x0, 0x7c,0x41, +0x19,0x41,0xd, 0x18,0x7d,0x7, 0x7c,0x41,0x19,0x41,0xd, 0x19,0xa, 0x47,0x2e,0x44, +0xd, 0x68,0x7e,0x49,0xb0,0x4c,0xb6,0x7a,0x49,0xb0,0x80,0x1e,0xa, 0x15,0xa, 0x2a, +0x9d,0x21,0x3e,0x24,0x49,0x72,0x9, 0xf0,0x7d,0x17,0xa, 0x12,0x7c,0xb3,0x19,0xb2, +0xd, 0x40,0x7d,0x17,0x7c,0xb3,0x19,0xb2,0xd, 0x41,0xb, 0xa0,0x7e,0xb3,0xd, 0xf8, +0xa, 0x2b,0x7e,0xb3,0xd, 0xf7,0xa, 0x1b,0x2d,0x12,0xa, 0x2a,0xbd,0x21,0x48,0x80, +0xda,0x79,0x22,0xc2,0xd5,0x7c,0xb4,0x30,0xe7,0x8, 0xb2,0xd5,0x6e,0x24,0xff,0xff, +0xb, 0x24,0x7c,0xb6,0x30,0xe7,0x12,0xb2,0xd5,0x6e,0x34,0xff,0xff,0xb, 0x34,0x8d, +0x32,0x6e,0x24,0xff,0xff,0xb, 0x24,0x80,0x2, 0x8d,0x32,0x30,0xd5,0x6, 0x6e,0x34, +0xff,0xff,0xb, 0x34,0x22,0x7d,0x51,0xad,0x3, 0x7d,0x2, 0x7d,0x21,0xad,0x5, 0x2d, +0x12,0xad,0x35,0x2d,0x21,0x22,0x7d,0x2, 0xad,0x31,0xad,0x10,0x2d,0x21,0x22,0x6d, +0x0, 0x74,0x10,0x4d,0x0, 0x78,0xb, 0x4d,0x22,0x78,0x27,0x8d,0x31,0x7d,0x12,0x6d, +0x22,0x22,0x7d,0x43,0x7d,0x32,0x6d,0x22,0x2f,0x11,0x2d,0x44,0x50,0x2, 0xa5,0xf, +0xbf,0x10,0x40,0x4, 0x9f,0x10,0xb, 0x90,0x14,0x78,0xed,0x7f,0x1, 0x6d,0x22,0x7d, +0x34,0x22,0x7d,0x41,0x7d,0x13,0x8d,0x24,0x7d,0x2, 0x2f,0x0, 0x40,0x4, 0xbd,0x4, +0x40,0x4, 0x9d,0x4, 0xb, 0x14,0x14,0x78,0xf1,0x7d,0x23,0x7d,0x31,0x7d,0x10,0x6d, +0x0, 0x22,0xc2,0xd5,0x7c,0xb0,0x30,0xe7,0x8, 0xb2,0xd5,0x9f,0x22,0x9f,0x20,0x7f, +0x2, 0x7c,0xb4,0x30,0xe7,0x13,0xb2,0xd5,0x9f,0x22,0x9f,0x21,0x7f,0x12,0x12,0x48, +0xa1,0x9f,0x22,0x9f,0x20,0x7f,0x2, 0x80,0x3, 0x12,0x48,0xa1,0x30,0xd5,0x6, 0x9f, +0x22,0x9f,0x21,0x7f,0x12,0x22,0x6c,0xaa,0x4d,0x11,0x68,0x1a,0x1e,0x54,0x68,0xe, +0xb, 0x38,0x20,0x1b,0x18,0x20,0xb, 0x35,0xb, 0x15,0x1b,0x54,0x78,0xf2,0x50,0x6, +0x7e,0x39,0x40,0x7a,0x19,0x40,0x22,0xca,0x79,0x6c,0xee,0x12,0x65,0xd9,0x7d,0x43, +0x6c,0xaa,0x6c,0x77,0x7e,0x30,0x6, 0xac,0x37,0x2e,0x14,0x6c,0x5d,0x7e,0x4, 0x0, +0xff,0xb, 0xa, 0x20,0xbd,0x24,0x48,0x4, 0x7c,0xa7,0x80,0x7, 0xb, 0x70,0xbe,0x70, +0x5, 0x40,0xe1,0xbe,0xa0,0x5, 0x78,0x3, 0x2, 0x4a,0x18,0x7e,0x63,0xd, 0xf7,0xbe, +0x60,0x0, 0x38,0x3, 0x2, 0x4a,0x18,0x6c,0x77,0x2, 0x4a,0xd, 0x6c,0xff,0x6c,0x66, +0x80,0x41,0x7e,0x90,0x30,0xac,0x96,0x7e,0x50,0x2, 0xac,0x57,0x2d,0x24,0x2e,0x27, +0xf, 0xda,0xb, 0x28,0x20,0x7e,0x30,0x6, 0xac,0x3a,0x7d,0xf1,0x2e,0xf4,0x6c,0x5f, +0x7e,0xe4,0x0, 0xff,0xb, 0x7a,0x0, 0xbd,0x2, 0x18,0x14,0xb, 0xf0,0x2e,0x14,0x6c, +0x61,0x7a,0x31,0x82,0x7a,0x21,0x83,0xe4,0x93,0xbc,0xbf,0x28,0xe, 0x80,0x2, 0x6c, +0xff,0xb, 0x60,0x7e,0xb3,0x10,0x2b,0xbc,0xb6,0x38,0xb7,0x7e,0x50,0x6, 0xac,0x5a, +0x7d,0x12,0x2e,0x14,0x6c,0x61,0x7a,0x31,0x82,0x7a,0x21,0x83,0xe4,0x93,0xbc,0xbf, +0x38,0x17,0xb, 0xe0,0x2e,0x24,0x6c,0x62,0x7a,0x51,0x82,0x7a,0x41,0x83,0xe4,0x93, +0xbc,0xbe,0x38,0x7, 0x75,0x14,0x20,0x80,0xf, 0x6c,0xee,0xb, 0x70,0x7e,0xb3,0x10, +0x2c,0xbc,0xb7,0x28,0x3, 0x2, 0x49,0x8c,0xe5,0x15,0x25,0x14,0xf5,0x14,0xbe,0xb0, +0x0, 0x28,0xb, 0x15,0x14,0xe4,0x7a,0xb3,0xf, 0xd3,0x7a,0xb3,0xf, 0xd2,0xda,0x79, +0x22,0x7d,0x53,0x9f,0x11,0xbe,0x54,0x0, 0x0, 0x40,0x2d,0xbe,0x54,0x0, 0x3f,0x38, +0x27,0x7e,0x24,0x0, 0x3f,0x9d,0x25,0x7e,0x34,0x1, 0xe1,0xad,0x32,0x6d,0x22,0x7c, +0x76,0x7c,0x65,0x1a,0x24,0xbe,0x18,0x0, 0x39,0x48,0x4, 0x7e,0x18,0x0, 0x39,0x7e, +0x8, 0x0, 0x39,0x9f,0x1, 0x7f,0x10,0x22,0xbe,0x54,0x5, 0x80,0x40,0x29,0xbe,0x54, +0x5, 0xb8,0x38,0x23,0x7d,0x25,0x9e,0x24,0x5, 0x7f,0x7e,0x34,0x1, 0x7d,0xad,0x32, +0x6d,0x22,0x7c,0x76,0x7c,0x65,0x1a,0x24,0xbe,0x18,0x0, 0x30,0x48,0x4, 0x7e,0x18, +0x0, 0x2f,0x2e,0x18,0x4, 0xd0,0x22,0xbe,0x54,0x5, 0xb8,0x28,0x19,0x7d,0x25,0x9e, +0x24,0x5, 0x9f,0x7e,0x34,0x1, 0x7d,0xad,0x32,0x6d,0x22,0x7c,0x76,0x7c,0x65,0x1a, +0x24,0x2e,0x18,0x5, 0x0, 0x22,0xbe,0x54,0x2, 0xdf,0x38,0xe, 0x7e,0x34,0x2, 0xdf, +0x9d,0x35,0x6d,0x22,0x7e,0x14,0x0, 0xdd,0x80,0xc, 0x7d,0x35,0x9e,0x34,0x2, 0xe0, +0x6d,0x22,0x7e,0x14,0x0, 0xe3,0x12,0x48,0x96,0x7c,0x76,0x7c,0x65,0x1a,0x24,0xbe, +0x54,0x2, 0xdf,0x38,0xa, 0x7e,0x8, 0x2, 0x7f,0x9f,0x1, 0x7f,0x10,0x80,0x4, 0x2e, +0x18,0x2, 0x80,0xbe,0x18,0x0, 0x39,0x58,0x5, 0x7e,0x18,0x0, 0x39,0x22,0xbe,0x18, +0x4, 0xd0,0x8, 0x4, 0x7e,0x18,0x4, 0xd0,0x22,0xca,0x3b,0x7e,0x73,0xd, 0xfb,0x7a, +0x73,0xd, 0xfc,0x7e,0xa3,0xf, 0x1b,0x7a,0xa3,0xf, 0x1c,0xe4,0x7a,0xb3,0xf, 0x1f, +0x7e,0x37,0x11,0xd, 0x4d,0x33,0x78,0x3f,0xbe,0xa0,0x0, 0x28,0x8, 0xe4,0x7a,0xb3, +0x16,0xab,0x2, 0x4b,0xd0,0x7e,0xb3,0x11,0xf, 0x20,0xe0,0x3, 0x2, 0x4b,0xd0,0x7e, +0xb3,0x11,0x14,0xbe,0xb3,0x16,0xab,0x28,0x3, 0x2, 0x4b,0xd0,0xe4,0x7a,0xb3,0x16, +0xab,0x7e,0x24,0x0, 0x1, 0x7a,0x27,0x11,0xd, 0x74,0x1, 0x7a,0xb3,0x10,0xa3,0x74, +0x1e,0x7a,0xb3,0x11,0x12,0x80,0x69,0xbe,0x34,0x0, 0x1, 0x78,0x22,0xbe,0xa0,0x0, +0x28,0x5e,0x6d,0x22,0x7a,0x27,0x11,0xd, 0xe4,0x7a,0xb3,0x10,0xa3,0x7a,0xb3,0x16, +0xab,0x74,0x25,0x7a,0xb3,0x16,0xae,0x74,0x1, 0x7a,0xb3,0x16,0xad,0x80,0x41,0xbe, +0x34,0x0, 0x3, 0x78,0x3b,0x6d,0x66,0x7a,0x67,0x10,0x1, 0x7e,0x74,0xd, 0xac,0x7a, +0x77,0xa, 0xaf,0x12,0x6f,0xd, 0x12,0x60,0x8c,0x12,0x58,0xcd,0x6d,0x33,0x7a,0x37, +0x11,0xd, 0xe4,0x7a,0xb3,0x10,0xa3,0x74,0x1, 0x7a,0xb3,0x16,0xad,0x7a,0x67,0x10, +0x1, 0x7a,0x77,0xa, 0xaf,0x75,0x9a,0x7f,0xa9,0xd1,0x99,0xd2,0x9c,0xa9,0xd6,0xdf, +0x7e,0xb3,0x16,0xad,0x70,0x6, 0x12,0x5b,0xd3,0x12,0x64,0x8e,0xda,0x3b,0x22,0x7e, +0x34,0x10,0x7e,0x7e,0x24,0x0, 0x81,0xe4,0x12,0x6e,0x21,0x74,0xc, 0x7a,0xb3,0x10, +0x80,0x7a,0xb3,0x10,0x81,0x74,0x9, 0x7a,0xb3,0x10,0x82,0x74,0xf, 0x7a,0xb3,0x10, +0x7e,0x74,0x3c,0x7a,0xb3,0x10,0x7f,0x74,0xa0,0x7a,0xb3,0x10,0x83,0x74,0x1e,0x7a, +0xb3,0x10,0x85,0x74,0xb, 0x7a,0xb3,0x10,0x86,0x74,0x1e,0x7a,0xb3,0x10,0x87,0xe4, +0x7a,0xb3,0x10,0x88,0x7a,0xb3,0x10,0x89,0xf5,0x52,0xf5,0x51,0x7a,0xb3,0x10,0xa3, +0x74,0x1, 0x7a,0xb3,0x10,0x84,0x7a,0xb3,0x10,0xa2,0x7a,0xb3,0x10,0xa5,0x74,0x5, +0x7a,0xb3,0x10,0xa4,0x74,0x3b,0x7a,0xb3,0x10,0xa6,0x74,0xb, 0x7a,0xb3,0x10,0xad, +0x12,0x6e,0xfa,0xa, 0x36,0x7a,0x73,0x10,0xa7,0x12,0x6e,0xfa,0x7a,0x73,0x10,0xa8, +0x12,0x6e,0xff,0xa, 0x36,0x7a,0x73,0x10,0x9f,0x12,0x6e,0xff,0x7a,0x73,0x10,0xa0, +0xe4,0x7a,0xb3,0x10,0xae,0x74,0x1f,0x7a,0xb3,0x10,0xcf,0xe4,0x7a,0xb3,0x10,0xb0, +0x12,0x6e,0x4e,0x7a,0xb3,0x10,0xaf,0x12,0x6d,0x4f,0x7a,0xb3,0x10,0xa1,0x7e,0x34, +0x10,0x8e,0x7e,0x24,0x0, 0x8, 0x74,0xff,0x12,0x6e,0x21,0x74,0x5, 0x7a,0xb3,0x10, +0x8e,0x74,0x1, 0x7a,0xb3,0x10,0x8f,0x22,0x7d,0xf3,0xbe,0xf4,0x0, 0x0, 0x40,0x2d, +0xbe,0xf4,0x0, 0x3f,0x38,0x27,0x7e,0x44,0x0, 0x3f,0x9d,0x4f,0x7e,0x54,0x1, 0x8c, +0xad,0x54,0x6d,0x44,0x7c,0xba,0x7c,0xa9,0xbe,0x28,0x0, 0x32,0x40,0x4, 0x7e,0x28, +0x0, 0x32,0x7e,0x18,0x0, 0x32,0x9f,0x12,0x7f,0x21,0x2, 0x4d,0x5c,0xbe,0xf4,0x3, +0x0, 0x40,0x22,0x7d,0x4f,0x9e,0x44,0x3, 0x0, 0x7e,0x54,0x1, 0x82,0xad,0x54,0x6d, +0x44,0x7c,0xba,0x7c,0xa9,0xbe,0x28,0x0, 0x2e,0x40,0x4, 0x7e,0x28,0x0, 0x2d,0x2e, +0x28,0x2, 0xa2,0x80,0x57,0xbe,0xf4,0x1, 0x9f,0x38,0xe, 0x7e,0x54,0x1, 0x9f,0x9d, +0x5f,0x6d,0x44,0x7e,0x14,0x0, 0xdd,0x80,0xc, 0x7d,0x5f,0x9e,0x54,0x1, 0xa0,0x6d, +0x44,0x7e,0x14,0x0, 0xe5,0x7f,0x12,0x12,0x48,0x96,0x7f,0x21,0x7c,0xba,0x7c,0xa9, +0xa, 0x48,0xbe,0xf4,0x1, 0x9f,0x38,0xa, 0x7e,0x18,0x1, 0x67,0x9f,0x12,0x7f,0x21, +0x80,0x4, 0x2e,0x28,0x1, 0x68,0xbe,0x28,0x0, 0x32,0x50,0x6, 0x7e,0x28,0x0, 0x32, +0x80,0xa, 0xbe,0x28,0x2, 0xa2,0x28,0x4, 0x7e,0x28,0x2, 0xa2,0x7d,0x35,0x22,0xca, +0x3b,0x6d,0x11,0x7d,0x1, 0x7d,0x21,0x7e,0xa0,0x2, 0x7e,0x70,0x2, 0x6c,0x66,0x80, +0x39,0x6c,0x99,0x80,0x2b,0x7e,0xd0,0x30,0xac,0xd6,0x7e,0xf0,0x2, 0xac,0xf9,0x7d, +0xf7,0x2d,0xf6,0x2e,0xf7,0xf, 0xda,0xb, 0xf8,0xf0,0xbe,0xf4,0x0, 0x14,0x8, 0x4, +0xb, 0x4, 0x80,0x8, 0xbe,0xf4,0xff,0xec,0x58,0x2, 0xb, 0x24,0xb, 0x14,0x2c,0x97, +0x7e,0xb3,0x10,0x2c,0xbc,0xb9,0x38,0xcd,0x2c,0x6a,0x7e,0xb3,0x10,0x2b,0xbc,0xb6, +0x38,0xbf,0x7e,0x54,0x0, 0x3, 0xad,0x51,0x7d,0x35,0x1e,0x34,0x1e,0x34,0xbd,0x30, +0x50,0x1f,0xe4,0x7a,0xb3,0x16,0xb5,0x7e,0xb3,0x16,0xb6,0xbe,0xb0,0x5, 0x50,0x7, +0x4, 0x7a,0xb3,0x16,0xb6,0x80,0x39,0xe4,0x7a,0xb3,0x16,0xb6,0x75,0x71,0x1, 0x80, +0x2f,0xbd,0x32,0x50,0x1f,0xe4,0x7a,0xb3,0x16,0xb6,0x7e,0xb3,0x16,0xb5,0xbe,0xb0, +0x5, 0x50,0x7, 0x4, 0x7a,0xb3,0x16,0xb5,0x80,0x16,0xe4,0x7a,0xb3,0x16,0xb5,0x75, +0x71,0x2, 0x80,0xc, 0xe4,0x7a,0xb3,0x16,0xb5,0x7a,0xb3,0x16,0xb6,0x75,0x71,0x0, +0xe5,0x71,0xda,0x3b,0x22,0xa9,0xd6,0xcb,0x7c,0xb7,0xf5,0xb9,0xa, 0x56,0xf5,0xba, +0x7e,0x55,0x2d,0xf5,0xbb,0xf5,0xbc,0x7c,0xb1,0xf5,0xbd,0xa, 0x50,0xf5,0xc1,0x9, +0xb2,0x0, 0x1, 0x44,0xa0,0xf5,0xc3,0x7e,0x29,0xa0,0xe5,0xc4,0x54,0xe0,0x4c,0xba, +0xf5,0xc4,0x75,0xc5,0x40,0x75,0xc5,0x1, 0x49,0x32,0x0, 0x2, 0x7c,0xb7,0xf5,0xc6, +0x75,0xc5,0x2, 0xa, 0x56,0xf5,0xc6,0x75,0xc5,0x3, 0x49,0x32,0x0, 0x4, 0x6e,0x34, +0xff,0xff,0xb, 0x34,0x7d,0x53,0x5e,0x54,0x0, 0xff,0xf5,0xc6,0x75,0xc5,0x4, 0x1a, +0x56,0x5e,0x54,0x0, 0xff,0xf5,0xc6,0x75,0xc5,0x5, 0x49,0x2, 0x0, 0x6, 0x7c,0xb1, +0xf5,0xc6,0x75,0xc5,0x6, 0xa, 0x50,0xf5,0xc6,0x43,0xc2,0x9, 0x2, 0x4e,0x96,0x43, +0xc2,0x9, 0x0, 0x0, 0x0, 0x0, 0xa9,0x37,0xc2,0xf5,0x75,0xc2,0x0, 0x75,0xc5,0xa, +0xe5,0xc6,0x19,0xb1,0x0, 0x2, 0x75,0xc5,0xb, 0xe5,0xc6,0x19,0xb1,0x0, 0x3, 0x75, +0xc5,0xc, 0xe5,0xc6,0x7a,0x19,0xb0,0x75,0xc5,0xd, 0xe5,0xc6,0x19,0xb1,0x0, 0x1, +0xa9,0xc6,0xcb,0x22,0xca,0x3b,0x6c,0xff,0x7e,0xb3,0xf, 0xd2,0x60,0x6, 0x7e,0xb3, +0xf, 0xd3,0x70,0x18,0x7e,0x34,0xd, 0x68,0x7e,0x24,0x0, 0x3, 0xe4,0x12,0x6e,0x21, +0x7e,0x34,0xb, 0x79,0x7e,0x24,0x0, 0xd, 0xe4,0x12,0x6e,0x21,0x6c,0xee,0x80,0x6b, +0x74,0x2, 0xac,0xbe,0x9, 0x75,0xd, 0x18,0x7a,0x71,0x21,0x9, 0x65,0xd, 0x19,0x7a, +0x61,0x22,0x7c,0xbe,0xc4,0x23,0x54,0x1f,0x7c,0xdb,0x7c,0xbe,0x54,0x7, 0x7e,0x24, +0x0, 0x1, 0x60,0x5, 0x3e,0x24,0x14,0x78,0xfb,0x7c,0xc5,0x7e,0x50,0x30,0xac,0x57, +0x7e,0x70,0x2, 0xac,0x67,0x2d,0x32,0x2e,0x37,0xf, 0xda,0xb, 0x38,0x30,0xbe,0x37, +0xf, 0x54,0x48,0x25,0xa, 0x3d,0x9, 0xb3,0xd, 0x68,0x5c,0xbc,0x68,0x1b,0x7e,0x50, +0x7, 0xac,0x5e,0x2e,0x24,0xd, 0x6b,0x7e,0x70,0x7, 0xac,0x7f,0x2e,0x34,0xe, 0xd, +0x7e,0x14,0x0, 0x7, 0x12,0x6d,0x7d,0xb, 0xf0,0xb, 0xe0,0x7e,0x73,0xd, 0xf7,0xbc, +0x7e,0x38,0x8d,0x7a,0x73,0xd, 0xfb,0x7a,0xf3,0xf, 0x1b,0xda,0x3b,0x22,0xca,0xf8, +0x7c,0xb, 0x6c,0xaa,0x6d,0xee,0x7d,0xfe,0x6c,0xff,0x2, 0x50,0x9, 0x7e,0x90,0x2, +0xac,0x9f,0x7d,0xd4,0x2d,0xd3,0xb, 0xd8,0x40,0x4c,0x11,0x68,0x6, 0x6e,0x44,0xff, +0xff,0xb, 0x44,0xbd,0x24,0x58,0x70,0xbe,0xa0,0xa, 0x50,0x6b,0x4c,0xff,0x78,0x14, +0x49,0xed,0x0, 0x2, 0x4c,0x11,0x68,0x6, 0x6e,0xe4,0xff,0xff,0xb, 0xe4,0xbd,0xe4, +0x18,0x55,0x80,0x1c,0x7c,0xb0,0x14,0xbc,0xbf,0x78,0x20,0x7d,0xfd,0x1b,0xf5,0xb, +0xf8,0xf0,0x4c,0x11,0x68,0x6, 0x6e,0xf4,0xff,0xff,0xb, 0xf4,0xbd,0xf4,0x18,0x37, +0xa, 0xca,0x2d,0xc1,0x7a,0xc9,0xf0,0xb, 0xa0,0x80,0x2c,0x7d,0xcd,0x1b,0xc5,0xb, +0xc8,0xf0,0x49,0xed,0x0, 0x2, 0x4c,0x11,0x68,0xc, 0x6e,0xf4,0xff,0xff,0xb, 0xf4, +0x6e,0xe4,0xff,0xff,0xb, 0xe4,0xbd,0xf4,0x18,0xd, 0xbd,0xe4,0x18,0x9, 0xa, 0xda, +0x2d,0xd1,0x7a,0xd9,0xf0,0xb, 0xa0,0xb, 0xf0,0xbc,0xf, 0x28,0x3, 0x2, 0x4f,0x7d, +0x7c,0xba,0xda,0xf8,0x22,0xca,0x3b,0x6d,0x33,0x7d,0x73,0x75,0x25,0x0, 0x7e,0x64, +0x5, 0xe0,0x75,0x23,0x0, 0x80,0x3c,0x75,0x24,0x0, 0x7e,0x51,0x23,0x74,0x18,0xac, +0x5b,0x3e,0x24,0x7e,0x71,0x24,0x74,0x2, 0xac,0x7b,0x2d,0x32,0x2d,0x36,0x7a,0x35, +0x21,0x49,0x23,0x0, 0x30,0xb, 0x38,0x30,0x9d,0x32,0x12,0x6e,0x11,0xe5,0x24,0xb4, +0x17,0x2, 0x1e,0x34,0xbd,0x37,0x28,0x2, 0x7d,0x73,0x5, 0x24,0xe5,0x24,0xb4,0x18, +0xc9,0x5, 0x23,0xe5,0x25,0xa, 0x2b,0x7e,0x33,0x10,0x7c,0xa, 0x13,0x9d,0x12,0x1b, +0x14,0xe5,0x23,0xa, 0x2b,0xbd,0x21,0x48,0xae,0xbe,0x74,0x0, 0x41,0x28,0x11,0x7e, +0x34,0x0, 0x73,0x7e,0xa3,0x16,0x25,0x74,0x12,0xa4,0x59,0x35,0x16,0x36,0x80,0x26, +0x7e,0x43,0x16,0x25,0x7e,0x50,0x12,0xac,0x45,0x49,0x32,0x16,0x36,0xbd,0x37,0x50, +0x6, 0x59,0x72,0x16,0x36,0x80,0xf, 0xbe,0x34,0x0, 0x0, 0x28,0x9, 0x2e,0x24,0x16, +0x36,0x1b,0x34,0x1b,0x28,0x30,0xda,0x3b,0x22,0xca,0x7b,0xca,0x6b,0xca,0x5b,0xca, +0x4b,0xca,0x2b,0xca,0x1b,0xca,0xb, 0xc0,0xd0,0xc0,0x83,0xc0,0x82,0x12,0x0, 0x46, +0x7e,0x35,0x6b,0xb, 0x34,0x7a,0x35,0x6b,0x7e,0xb3,0x16,0xba,0x4, 0x7a,0xb3,0x16, +0xba,0x7e,0x35,0x6b,0xbe,0x34,0x3, 0xe8,0x40,0x13,0x6d,0x33,0x7a,0x35,0x6b,0x7e, +0xb3,0x16,0xab,0xbe,0xb0,0x64,0x50,0x5, 0x4, 0x7a,0xb3,0x16,0xab,0x7e,0x73,0x16, +0xaf,0xbe,0x73,0x16,0xae,0x28,0xb, 0x7e,0xb3,0x16,0xae,0x4, 0x7a,0xb3,0x16,0xae, +0x80,0x6, 0x74,0x1, 0x7a,0xb3,0x16,0xad,0x7e,0xb3,0x16,0xb0,0x60,0x5, 0x14,0x7a, +0xb3,0x16,0xb0,0x7e,0x37,0x10,0x1, 0xb, 0x34,0x7a,0x37,0x10,0x1, 0x7e,0x37,0xa, +0xaf,0xbe,0x37,0x10,0x1, 0x28,0x3, 0x12,0x6f,0x10,0xd0,0x82,0xd0,0x83,0xd0,0xd0, +0xda,0xb, 0xda,0x1b,0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda,0x7b,0x32,0x75, +0x84,0x1, 0x7e,0x44,0x4, 0x1f,0xe4,0x7a,0x49,0xb0,0x1b,0x44,0x78,0xf9,0x7e,0xf8, +0x16,0xbb,0x75,0x6a,0x0, 0x75,0x8, 0x1, 0x75,0x9, 0x0, 0x75,0xa, 0x0, 0x75,0xc, +0x0, 0x75,0xd, 0x0, 0x75,0xe, 0x0, 0x75,0xf, 0x0, 0xc2,0x0, 0x75,0x11,0x0, 0x75, +0x12,0x64,0x75,0x13,0x64,0x75,0x14,0x0, 0x75,0x15,0x0, 0x75,0x18,0x1, 0x75,0x6b, +0x0, 0x75,0x6c,0x0, 0x75,0x71,0x0, 0x75,0x6d,0x0, 0x75,0x72,0x0, 0x75,0x73,0x1, +0x75,0x6f,0x18,0x75,0x70,0x0, 0x75,0x74,0x0, 0x75,0x75,0x0, 0x75,0x1d,0x0, 0x75, +0x1e,0xff,0x75,0x1f,0x0, 0x7e,0x4, 0x0, 0xff,0x7e,0x14,0x6f,0x17,0xb, 0xa, 0x40, +0x5d,0x44,0x68,0x1a,0x69,0x20,0x0, 0x2, 0xb, 0xe, 0xb, 0x44,0x80,0xa, 0x7e,0xb, +0xb0,0x7a,0x29,0xb0,0xb, 0x24,0xb, 0xc, 0x1b,0x44,0x78,0xf2,0x80,0xdf,0x2, 0x5c, +0x38,0xca,0xd8,0xca,0x79,0x7c,0xdb,0xbe,0xd0,0x4, 0x78,0xc, 0x7e,0x34,0x10,0x2b, +0x12,0x6b,0x58,0xa9,0xc7,0xea,0x80,0x27,0xbe,0xd0,0x5, 0x78,0x1f,0xa9,0xd7,0xea, +0x7e,0xe3,0x10,0x4a,0x7e,0xf3,0x10,0x4d,0xe4,0x7a,0xb3,0x10,0x4d,0x12,0x66,0x8d, +0x7a,0xb3,0x10,0x4a,0x74,0x1, 0x7a,0xb3,0x10,0x78,0x80,0x3, 0xe4,0x80,0x4e,0x7e, +0xb3,0x11,0x96,0x7e,0x34,0x10,0x2b,0xb4,0x1, 0xa, 0x12,0x31,0xfb,0xe4,0x7a,0xb3, +0x11,0x96,0x80,0xa, 0x12,0x61,0x38,0x7e,0x34,0x10,0x2b,0x12,0x5e,0x27,0x7e,0x34, +0x10,0x2b,0x12,0x6a,0xa5,0x7e,0xb3,0x10,0xa5,0xb4,0x3, 0xa, 0x7e,0x73,0x11,0xe8, +0x2e,0x70,0xff,0xa9,0x94,0xca,0x12,0x69,0x64,0xbe,0xd0,0x5, 0x78,0xd, 0x7a,0xe3, +0x10,0x4a,0x7a,0xf3,0x10,0x4d,0xe4,0x7a,0xb3,0x10,0x78,0x74,0x1, 0xda,0x79,0xda, +0xd8,0x22,0x7e,0x34,0xe, 0xd, 0x7e,0x24,0x0, 0x46,0x74,0xff,0x12,0x6e,0x21,0x7e, +0x34,0xe, 0x53,0x7e,0x24,0x0, 0x46,0x74,0xff,0x12,0x6e,0x21,0x7e,0x34,0xe, 0x99, +0x7e,0x24,0x0, 0x46,0x74,0xff,0x12,0x6e,0x21,0x6c,0xaa,0x74,0x3, 0xa, 0x4a,0x19, +0xb4,0xe, 0xdf,0x19,0xb4,0xe, 0xe9,0x7e,0x44,0xff,0xff,0x7e,0x70,0x2, 0xac,0x7a, +0x59,0x43,0xe, 0xf3,0x7e,0x70,0x2, 0xac,0x7a,0x59,0x43,0xf, 0x7, 0xb, 0xa0,0xbe, +0xa0,0xa, 0x40,0xd7,0xe4,0x7a,0xb3,0xf, 0x1b,0x7a,0xb3,0xf, 0x1c,0x7a,0xb3,0xf, +0x1d,0x7a,0xb3,0xf, 0x1f,0x7a,0xb3,0xf, 0x20,0x7a,0xb3,0xf, 0x21,0x7a,0xb3,0xf, +0x22,0x7a,0xb3,0xf, 0x23,0x7a,0xb3,0xf, 0x24,0x7a,0xb3,0xf, 0x25,0x12,0x6a,0xee, +0x74,0x3, 0x7a,0xb3,0xf, 0x26,0x74,0x1, 0x7a,0xb3,0xf, 0x27,0xe4,0x7a,0xb3,0xf, +0x28,0x22,0xca,0xf8,0x7c,0xab,0x6c,0x33,0x7c,0x27,0x80,0x73,0x7e,0x90,0x7, 0xac, +0x93,0x9, 0xf4,0xe, 0x57,0x7e,0x10,0x7, 0xac,0x12,0x9, 0xb0,0xe, 0x11,0xbc,0xfb, +0x78,0x5b,0xbe,0xf0,0xff,0x68,0x56,0x7e,0x10,0x7, 0xac,0x1a,0x7d,0xf0,0x2d,0xf2, +0x19,0xff,0x0, 0x4, 0x49,0x44,0xe, 0x53,0x2d,0x2, 0x1b,0x8, 0x40,0x7e,0x10,0x7, +0xac,0x13,0x49,0x0, 0xe, 0x55,0x7e,0x90,0x7, 0xac,0x9a,0x2d,0x42,0x59,0x4, 0x0, +0x2, 0x7e,0x10,0x7, 0xac,0x12,0x9, 0x10,0xe, 0x12,0x7e,0x90,0x7, 0xac,0x9a,0x2d, +0x42,0x19,0x14,0x0, 0x5, 0x7e,0x10,0x7, 0xac,0x12,0x9, 0x10,0xe, 0x13,0x7e,0x90, +0x7, 0xac,0x9a,0x2d,0x42,0x19,0x14,0x0, 0x6, 0xb, 0xa0,0x80,0x6, 0xb, 0x20,0xbc, +0x62,0x38,0x89,0xb, 0x30,0xbe,0x30,0xa, 0x50,0x3, 0x2, 0x53,0x8, 0x7c,0xba,0xda, +0xf8,0x22,0x7c,0xab,0xbe,0xa0,0x1, 0x40,0x3b,0xbe,0xa0,0x3e,0x38,0x36,0xbe,0xa0, +0x4, 0x78,0x6, 0x74,0x1, 0x7a,0xb3,0x15,0xde,0xbe,0xa0,0x1, 0x68,0xa, 0xbe,0xa0, +0x2, 0x68,0x5, 0xbe,0xa0,0x3, 0x78,0x11,0x30,0x0, 0x6, 0x7e,0x34,0x0, 0x76,0x80, +0x4, 0x7e,0x34,0x0, 0xb8,0x7a,0x37,0x0, 0xfd,0xa, 0x3a,0x2e,0x37,0x0, 0xfd,0x9, +0xb3,0x0, 0x2, 0x22,0x4c,0xaa,0x78,0x3, 0xe5,0xb, 0x22,0xbe,0xa0,0x80,0x40,0xc, +0xbe,0xa0,0xdf,0x38,0x7, 0xa, 0x3a,0x9, 0xb3,0xf, 0xfe,0x22,0xbe,0xa0,0xfc,0x78, +0x5, 0x7e,0xb3,0x10,0xa5,0x22,0xbe,0xa0,0xfd,0x78,0x8, 0x7e,0x37,0x10,0x46,0x7e, +0x39,0xb0,0x22,0xbe,0xa0,0xfe,0x78,0x5, 0x7e,0xb3,0x10,0x4a,0x22,0xbe,0xa0,0xf9, +0x78,0x5, 0x7e,0xb3,0x16,0xbb,0x22,0xbe,0xa0,0xfa,0x78,0x3, 0xe5,0x6a,0x22,0xe4, +0x22,0xca,0x3b,0x7d,0x72,0x7d,0x63,0x7e,0xb3,0x10,0x4d,0xf5,0x24,0xe4,0x7a,0xb3, +0x10,0x4d,0x7e,0x34,0x10,0x2b,0x12,0x31,0xfb,0x7e,0x34,0x10,0x2b,0x12,0x6a,0xa5, +0x75,0x21,0x0, 0x12,0x69,0x64,0x12,0x6e,0xb9,0x60,0xfb,0xa9,0xb7,0xea,0x7d,0x36, +0x7d,0x27,0x7e,0x14,0x18,0x0, 0x12,0x67,0xe2,0x75,0x22,0x0, 0x80,0x36,0x75,0x23, +0x0, 0x80,0x26,0x7e,0x51,0x22,0x74,0x18,0xac,0x5b,0xe5,0x23,0xa, 0x3b,0x2d,0x23, +0x3e,0x24,0x7d,0x32,0x2d,0x36,0xb, 0x38,0x10,0xe, 0x14,0xe, 0x14,0x2d,0x27,0xb, +0x28,0x30,0x2d,0x31,0x1b,0x28,0x30,0x5, 0x23,0x7e,0x73,0x10,0x2c,0xbe,0x71,0x23, +0x38,0xd1,0x5, 0x22,0x7e,0x73,0x10,0x2b,0xbe,0x71,0x22,0x38,0xc1,0x5, 0x21,0xe5, +0x21,0xbe,0xb0,0x4, 0x40,0x9d,0xe5,0x24,0x7a,0xb3,0x10,0x4d,0xda,0x3b,0x22,0xca, +0xf8,0x30,0x90,0x58,0xc2,0x90,0x5, 0xa, 0xe5,0xa, 0xb4,0x1, 0x6, 0xe5,0x91,0xf5, +0xf, 0x80,0x29,0xe5,0xb, 0xc4,0x7c,0xfb,0x5e,0xf0,0x7, 0x78,0xe, 0xe5,0xa, 0x25, +0xf, 0x24,0xfe,0x7e,0x71,0x91,0x12,0x56,0xd7,0x80,0x11,0xbe,0xf0,0x4, 0x78,0xc, +0xe5,0xa, 0x25,0xf, 0x24,0xfe,0x7e,0x71,0x91,0x12,0x15,0xe2,0xe5,0xb, 0xc4,0x7c, +0x5b,0x5e,0x50,0x7, 0xa5,0xbd,0x0, 0x9, 0xe5,0xf, 0x12,0x53,0x92,0xf5,0x91,0x80, +0xb, 0xa5,0xbd,0x4, 0x7, 0xe5,0xf, 0x12,0x27,0x4a,0xf5,0x91,0x30,0x91,0x28,0xc2, +0x91,0x5, 0x9, 0xe5,0xb, 0xc4,0x7c,0x5b,0x5e,0x50,0x7, 0xa5,0xbd,0x0, 0xb, 0xe5, +0x9, 0x25,0xf, 0x12,0x53,0x92,0xf5,0x91,0x80,0xd, 0xa5,0xbd,0x4, 0x9, 0xe5,0x9, +0x25,0xf, 0x12,0x27,0x4a,0xf5,0x91,0xda,0xf8,0x22,0x6c,0x33,0xbe,0x30,0x18,0x50, +0x1e,0xa, 0x3, 0x2e,0x7, 0x10,0x35,0x7e,0x9, 0xa0,0x7c,0xba,0x30,0xe0,0xc, 0xa, +0x5a,0x2e,0x54,0x0, 0x18,0xe, 0x54,0x7c,0xab,0x80,0x16,0x1e,0xa0,0x80,0x12,0xa, +0x3, 0x2e,0x7, 0x10,0x33,0x9, 0x20,0xff,0xe8,0xa, 0x52,0x2e,0x54,0x0, 0x18,0x7c, +0xab,0x7e,0x23,0x10,0x3a,0xbe,0x20,0x3, 0x28,0xe, 0x7e,0x10,0x2, 0xac,0x1a,0x2d, +0x2, 0xb, 0x8, 0x0, 0x1e,0x4, 0x80,0x21,0xa, 0x42,0x2e,0x44,0x0, 0xc, 0x7e,0x4, +0x0, 0xf, 0x9d,0x4, 0x7c,0x21,0x7e,0x10,0x2, 0xac,0x1a,0x2d,0x2, 0xb, 0x8, 0x0, +0x7c,0xb2,0x60,0x5, 0x3e,0x4, 0x14,0x78,0xfb,0x7e,0x44,0x7f,0xff,0x9d,0x40,0x7e, +0x10,0x2, 0xac,0x13,0x2d,0x3, 0x1b,0x8, 0x40,0xb, 0x30,0xbe,0x30,0x25,0x50,0x3, +0x2, 0x55,0x3c,0x22,0x6c,0xaa,0x7e,0x50,0x2, 0xac,0x5a,0x7d,0x32,0x2e,0x37,0xf, +0xd6,0xb, 0x38,0x10,0xbe,0x17,0xe, 0x7, 0x8, 0x12,0x7d,0x2, 0x2e,0x7, 0xf, 0xd4, +0xb, 0x8, 0x30,0x2e,0x37,0xe, 0x7, 0x1b,0x8, 0x30,0x80,0x18,0x6d,0x33,0x9e,0x37, +0xe, 0x7, 0xbd,0x13,0x58,0xe, 0x2e,0x27,0xf, 0xd4,0xb, 0x28,0x30,0x9e,0x37,0xe, +0x7, 0x1b,0x28,0x30,0xb, 0xa0,0xbe,0xa0,0x25,0x78,0xbb,0x6c,0xaa,0x7e,0x50,0x2, +0xac,0x5a,0x49,0x12,0x9, 0x2e,0xbe,0x17,0xe, 0x7, 0x8, 0x12,0x7d,0x2, 0x2e,0x4, +0x8, 0xe4,0xb, 0x8, 0x30,0x2e,0x37,0xe, 0x7, 0x1b,0x8, 0x30,0x80,0x18,0x6d,0x33, +0x9e,0x37,0xe, 0x7, 0xbd,0x13,0x58,0xe, 0x2e,0x24,0x8, 0xe4,0xb, 0x28,0x30,0x9e, +0x37,0xe, 0x7, 0x1b,0x28,0x30,0xb, 0xa0,0xbe,0xa0,0x25,0x40,0xc0,0x22,0xca,0x69, +0xca,0xf8,0x6c,0x11,0x7e,0xd0,0x7, 0xac,0xd1,0x9, 0x6, 0xe, 0x9d,0x5e,0x0, 0xf, +0x49,0xf6,0xe, 0x9b,0xbe,0xf4,0x5, 0x18,0x40,0x3c,0x49,0x46,0xe, 0x99,0x7d,0x34, +0x12,0x6b,0xde,0x7c,0xfb,0xbe,0xf0,0x3, 0x40,0xe, 0x7e,0x14,0x4, 0xff,0x74,0x7, +0xac,0xb1,0x59,0x15,0xe, 0x9b,0x80,0x3e,0x74,0x2, 0xac,0xbf,0x49,0x45,0x16,0x95, +0x74,0x7, 0xac,0xb1,0x59,0x45,0xe, 0x99,0x7e,0x14,0x7, 0xd0,0x74,0x7, 0xac,0xb1, +0x59,0x15,0xe, 0x9b,0x80,0x25,0xbe,0xf4,0x5, 0x0, 0x40,0x1f,0x7e,0x14,0x4, 0xff, +0x74,0x7, 0xac,0xb1,0x59,0x15,0xe, 0x9b,0x74,0x7, 0xac,0xb1,0x49,0x15,0xe, 0x9b, +0xbe,0x14,0x5, 0xa, 0x40,0x5, 0x7c,0xb0,0x12,0x68,0xab,0xb, 0x10,0xbe,0x10,0xa, +0x40,0x82,0xda,0xf8,0xda,0x69,0x22,0xca,0x79,0x70,0x41,0x7e,0x74,0x0, 0xb, 0x7a, +0x79,0x70,0x7c,0xb7,0x54,0x70,0xc4,0x54,0xf, 0x7c,0x7b,0xa5,0xbf,0x4, 0x15,0x7e, +0xb3,0x10,0xa5,0xb4,0x3, 0x7, 0x74,0x1, 0x7e,0x70,0x3, 0x80,0x13,0x74,0x27,0x7e, +0x70,0x3, 0x80,0x4b,0x7e,0xb3,0x10,0xa5,0xb4,0x3, 0xa, 0x74,0x1, 0x7e,0x70,0x1, +0x12,0x0, 0x5e,0x80,0x45,0x74,0x27,0x7e,0x70,0x1, 0x80,0x33,0xbe,0xb0,0xfc,0x68, +0x3, 0xb4,0x3c,0x1f,0xa5,0xbf,0xaa,0x5, 0x7e,0x60,0x5, 0x80,0x10,0xa5,0xbf,0x55, +0x5, 0x7e,0x60,0x6, 0x80,0x7, 0xa5,0xbf,0x66,0x20,0x7e,0x60,0x7, 0x74,0x27,0x7c, +0x76,0x80,0xc, 0xbe,0xb0,0x80,0x40,0xc, 0xbe,0xb0,0xdf,0x38,0x7, 0x24,0x80,0x12, +0x6d,0xe0,0x80,0x6, 0xb4,0xfe,0x3, 0x7a,0x71,0xc, 0xda,0x79,0x22,0x6c,0x77,0x6c, +0xaa,0x80,0x3c,0x7e,0x50,0x18,0xac,0x5a,0x3e,0x24,0x2e,0x27,0xf, 0xda,0x2e,0x24, +0x0, 0x30,0x7d,0x12,0x1b,0x16,0xb, 0x18,0x40,0xbe,0x44,0x0, 0x3c,0x8, 0x1e,0x7e, +0x14,0x0, 0x1, 0x7c,0xba,0x60,0x5, 0x3e,0x14,0x14,0x78,0xfb,0x5e,0x14,0x4, 0x44, +0x68,0xb, 0x1b,0x25,0xb, 0x28,0x20,0xbd,0x42,0x8, 0x2, 0xb, 0x70,0xb, 0xa0,0x7e, +0x63,0x10,0x2b,0xbc,0x6a,0x38,0xbc,0xbe,0x70,0x1, 0x40,0x30,0x6c,0xaa,0x80,0x24, +0x7e,0x50,0x18,0xac,0x5a,0x3e,0x24,0x2e,0x27,0xf, 0xda,0x2e,0x24,0x0, 0x30,0x1b, +0x25,0xb, 0x28,0x30,0x7e,0x30,0x2, 0xac,0x3a,0x59,0x31,0x16,0x6f,0x6d,0x33,0x1b, +0x28,0x30,0xb, 0xa0,0x7e,0xb3,0x10,0x2b,0xbc,0xba,0x38,0xd4,0x22,0xca,0x79,0x6c, +0xff,0x6c,0xee,0x80,0x63,0x7c,0xbe,0xc4,0x23,0x54,0x1f,0x7c,0xab,0x7c,0xbe,0x54, +0x7, 0x7e,0x34,0x0, 0x1, 0x60,0x5, 0x3e,0x34,0x14,0x78,0xfb,0xa, 0x2a,0x9, 0xb2, +0xd, 0x68,0x5c,0xb7,0x68,0x40,0x7e,0x50,0x2, 0xac,0x5e,0x2e,0x24,0xd, 0x18,0x7e, +0x70,0x2, 0xac,0x7f,0x2e,0x34,0xd, 0x18,0x7e,0x14,0x0, 0x2, 0x12,0x6d,0x7d,0x7c, +0xbf,0xc4,0x23,0x54,0x1f,0x7c,0xab,0x7c,0xbf,0x54,0x7, 0x7e,0x34,0x0, 0x1, 0x60, +0x5, 0x3e,0x34,0x14,0x78,0xfb,0xa, 0x4a,0x2e,0x44,0xd, 0x68,0x7e,0x49,0xb0,0x4c, +0xb7,0x7a,0x49,0xb0,0xb, 0xf0,0xb, 0xe0,0x7e,0x63,0xd, 0xf7,0xbc,0x6e,0x38,0x95, +0x7a,0xf3,0xd, 0xf7,0xda,0x79,0x22,0x6d,0x33,0x7a,0x37,0x10,0x1, 0x7e,0x34,0xd, +0xac,0x7a,0x37,0xa, 0xaf,0x12,0x6f,0x10,0x7e,0xb3,0x10,0xa5,0x24,0xfa,0x68,0x17, +0x14,0x68,0x44,0xb, 0xb1,0x78,0x55,0x7e,0xb3,0x16,0xb9,0xbe,0xb0,0x5, 0x68,0x4c, +0x74,0x5, 0x7a,0xb3,0x16,0xb9,0x22,0x7e,0xb3,0x16,0xb9,0xb4,0x5, 0x3e,0x74,0x6, +0x7a,0xb3,0x16,0xb9,0x74,0xfa,0x12,0x6d,0x66,0x75,0x9a,0x80,0x7e,0x34,0x77,0xf8, +0x12,0x69,0xe2,0x7e,0x34,0x77,0xf8,0x74,0x66,0x12,0x5a,0x21,0x7e,0x34,0x77,0xf9, +0x74,0xbb,0x12,0x5a,0x21,0x80,0x12,0x7e,0xb3,0x16,0xb9,0xb4,0x5, 0xe, 0x74,0x7, +0x7a,0xb3,0x16,0xb9,0x74,0xfa,0x12,0x6d,0x66,0x75,0xe9,0xff,0x22,0x0, 0x0, 0x0, +0x0, 0xd2,0xcd,0xa9,0xd1,0xc9,0x7e,0xb3,0x16,0xa9,0xb4,0x1, 0x14,0x7e,0x73,0x16, +0xac,0xa, 0x27,0x7e,0x34,0x1d,0x8, 0x1b,0x38,0x20,0xe4,0x7a,0xb3,0x16,0xa9,0x80, +0xb, 0x7e,0x24,0x0, 0x2, 0x7e,0x34,0x1d,0x8, 0x1b,0x38,0x20,0xa9,0xd0,0xca,0xc2, +0xa8,0xc2,0x95,0x74,0x2, 0x7a,0xb3,0x16,0xb0,0x7e,0xb3,0x16,0xb0,0x70,0xfa,0x12, +0x6e,0xb0,0x12,0x61,0x8e,0x12,0x6b,0xff,0x6d,0x33,0x7a,0x37,0x10,0x1, 0x7e,0x34, +0xd, 0xac,0x7a,0x37,0xa, 0xaf,0x12,0x6f,0x10,0x12,0x6a,0x59,0x12,0x6a,0x7f,0x12, +0x52,0x72,0x74,0x1, 0x7a,0xb3,0x10,0x3c,0x7a,0xb3,0x10,0x4d,0x2, 0x6e,0xf4,0xca, +0x3b,0x7d,0x72,0x7d,0x63,0xe5,0x55,0xbe,0xb0,0x1, 0x68,0xf9,0x7d,0x36,0x7e,0x24, +0x0, 0x4a,0xe4,0x12,0x6e,0x21,0x7d,0x37,0x7e,0x24,0x0, 0x4a,0xe4,0x12,0x6e,0x21, +0x75,0x21,0x1, 0x12,0x6c,0x1f,0xe5,0x55,0xbe,0xb0,0x1, 0x68,0xf9,0x75,0x22,0x0, +0x7e,0x51,0x22,0x74,0x2, 0xac,0x5b,0x49,0x2, 0xa, 0x62,0x1e,0x4, 0x1e,0x4, 0x7d, +0x12,0x2d,0x16,0xb, 0x18,0x30,0x2d,0x30,0x1b,0x18,0x30,0x49,0x12,0xa, 0x18,0x1e, +0x14,0x1e,0x14,0x2d,0x27,0xb, 0x28,0x30,0x2d,0x31,0x1b,0x28,0x30,0x5, 0x22,0xe5, +0x22,0xb4,0x25,0xcc,0x5, 0x21,0xe5,0x21,0xbe,0xb0,0x5, 0x40,0xb6,0xda,0x3b,0x22, +0x6c,0x77,0x7e,0x63,0xd, 0xfa,0xa, 0x16,0x7e,0x63,0xd, 0xf9,0xa, 0x26,0x2d,0x21, +0xbe,0x24,0x0, 0xb4,0x28,0x3, 0x74,0x1, 0x22,0x6c,0xaa,0x80,0x1c,0x7e,0x50,0x2, +0xac,0x5a,0x49,0x22,0x8, 0x9a,0xbe,0x24,0x3, 0xe8,0x8, 0x9, 0xb, 0x70,0xbe,0x70, +0x10,0x68,0xe, 0x80,0x2, 0x6c,0x77,0xb, 0xa0,0x7e,0x63,0x10,0x2c,0xbc,0x6a,0x38, +0xdc,0xa5,0xbf,0x10,0x2a,0x6c,0x77,0x6c,0xaa,0x80,0x1c,0x7e,0x50,0x2, 0xac,0x5a, +0x49,0x22,0x8, 0xca,0xbe,0x24,0x7, 0xd0,0x8, 0x9, 0xb, 0x70,0xa5,0xbf,0x8, 0x5, +0x74,0x1, 0x22,0x6c,0x77,0xb, 0xa0,0x7e,0x63,0x10,0x2b,0xbc,0x6a,0x38,0xdc,0xe4, +0x22,0x7c,0xab,0xc2,0xaf,0xd2,0xc9,0xa9,0xd5,0xcb,0x75,0xfb,0xa5,0x75,0xfb,0xf, +0x75,0xfb,0x6a,0xbe,0x34,0x73,0xf8,0x68,0x18,0xbe,0x34,0x73,0xf9,0x68,0x12,0xbe, +0x34,0x74,0x0, 0x50,0xc, 0x75,0xfb,0x0, 0xd2,0xaf,0xc2,0xc9,0xa9,0xc5,0xcb,0xe4, +0x22,0xa, 0x26,0x7c,0xb5,0xf5,0xf1,0x7c,0xb7,0x54,0xfe,0xf5,0xf2,0x75,0xf3,0x80, +0x75,0xf4,0x0, 0x5e,0x34,0x0, 0x1, 0x68,0x8, 0x75,0xf6,0xff,0x7a,0xa1,0xf6,0x80, +0x6, 0x7a,0xa1,0xf6,0x75,0xf6,0xff,0x75,0xf5,0x80,0x74,0x1, 0x12,0x6d,0x66,0xa9, +0x36,0xf5,0xfc,0x75,0xfb,0x0, 0xd2,0xaf,0xc2,0xc9,0xa9,0xc5,0xcb,0x74,0x1, 0x22, +0x74,0xa, 0x7a,0xb3,0xf, 0x46,0x74,0x14,0x7a,0xb3,0xf, 0x47,0x7e,0x34,0x3, 0x20, +0x7a,0x37,0xf, 0x48,0x7a,0x37,0xf, 0x4a,0x7e,0x24,0x2, 0x58,0x7a,0x27,0xf, 0x4c, +0x7a,0x37,0xf, 0x4e,0x7a,0x37,0xf, 0x50,0x74,0xc, 0x7a,0xb3,0xf, 0x52,0x74,0x8, +0x7a,0xb3,0xf, 0x53,0x7e,0x34,0x0, 0x3c,0x7a,0x37,0xf, 0x54,0x7a,0x37,0xf, 0x56, +0x7a,0x37,0xf, 0x58,0x7e,0x34,0x0, 0x28,0x7a,0x37,0xf, 0x5a,0x74,0xf, 0x7a,0xb3, +0xf, 0x5c,0xe4,0x7a,0xb3,0xf, 0x5f,0x74,0x4, 0x7a,0xb3,0xf, 0x60,0x7e,0x34,0x0, +0x64,0x7a,0x37,0xf, 0x61,0x7e,0x34,0xa, 0x0, 0x7a,0x37,0xf, 0x5d,0x22,0xca,0x3b, +0x7d,0x72,0x7d,0x63,0x7e,0xb3,0x10,0x3c,0xf5,0x1c,0xe4,0x7a,0xb3,0x10,0x3c,0x7d, +0x36,0x7d,0x27,0x12,0x6a,0xca,0x7e,0x34,0x10,0x2b,0x12,0x5b,0x6c,0x75,0x1a,0x0, +0x7e,0x34,0x10,0x2b,0x12,0x65,0x59,0x12,0x6e,0xc2,0x60,0xfb,0x7d,0x36,0x7e,0x25, +0x6f,0x12,0x55,0x3a,0x75,0x1b,0x0, 0x7e,0x51,0x1b,0x74,0x2, 0xac,0x5b,0x7d,0x32, +0x2d,0x36,0xb, 0x38,0x10,0xe, 0x14,0xe, 0x14,0x2d,0x27,0xb, 0x28,0x30,0x2d,0x31, +0x1b,0x28,0x30,0x5, 0x1b,0xe5,0x1b,0xb4,0x25,0xdd,0x5, 0x1a,0xe5,0x1a,0xbe,0xb0, +0x4, 0x40,0xbd,0xe5,0x1c,0x7a,0xb3,0x10,0x3c,0xda,0x3b,0x22,0x7d,0x3, 0x75,0xcc, +0x18,0x75,0xcd,0x7, 0x9, 0xa0,0x0, 0x2, 0x3e,0xa0,0xe5,0xca,0x54,0x1, 0x4c,0xba, +0xf5,0xca,0xa9,0xd0,0xca,0xa9,0xd3,0xe1,0xa9,0xd1,0xe1,0x9, 0x70,0x0, 0xe, 0x2e, +0x70,0xff,0xa9,0x94,0xe1,0x9, 0xa0,0x0, 0xf, 0x7c,0xba,0xc4,0x33,0x54,0xe0,0x7c, +0xab,0xe5,0xe3,0x54,0x1f,0x4c,0xba,0xf5,0xe3,0x9, 0xb0,0x0, 0x13,0x54,0x3, 0xa, +0x5b,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x7c,0xab,0xe5,0xe3,0x54,0xe7,0x4c,0xba,0xf5, +0xe3,0xa9,0xc1,0xe3,0xa9,0xc0,0xe3,0x7d,0x30,0x12,0x5d,0x65,0x9, 0xb0,0x0, 0x14, +0xf5,0xe7,0x22,0x7e,0xb3,0x16,0xa9,0x70,0x17,0xe5,0xcc,0x7a,0xb3,0x16,0xaa,0x7e, +0x34,0x1d,0x8, 0xb, 0x38,0x30,0x7a,0x73,0x16,0xac,0x74,0x1, 0x7a,0xb3,0x16,0xa9, +0xc2,0xc9,0xa9,0xc6,0xcb,0xa9,0xc5,0xcb,0xc2,0xcc,0xc2,0xca,0xc2,0xc8,0xa9,0xc4, +0xcb,0x80,0x2e,0xe5,0x55,0xbe,0xb0,0x1, 0x68,0x23,0xe5,0x74,0xb4,0x1, 0x1e,0xe5, +0x75,0xb4,0x1, 0x19,0xa9,0xc3,0xcb,0x7e,0x24,0x0, 0x1, 0x7e,0x34,0x1d,0x8, 0x1b, +0x38,0x20,0xa9,0xc7,0xcb,0xa9,0xc1,0xc9,0xa9,0xc3,0xc9,0xc2,0xcd,0xe4,0x12,0x6d, +0xaa,0x7e,0xb3,0x16,0xad,0x60,0xcc,0x22,0x6d,0x33,0x7a,0x37,0x10,0x1, 0x7e,0x34, +0xd, 0xac,0x7a,0x37,0xa, 0xaf,0x12,0x6f,0xd, 0x12,0x6e,0xb0,0x12,0x61,0x8e,0x12, +0x6f,0x16,0x12,0x6d,0xbc,0x74,0x1, 0x7a,0xb3,0x10,0xa5,0x12,0x6b,0xff,0x12,0x6a, +0x59,0x74,0x1, 0x7a,0xb3,0x10,0x3c,0x7a,0xb3,0x10,0x4d,0x12,0x6e,0xf4,0x7e,0xb3, +0x10,0xa5,0x24,0xfd,0x68,0x12,0x14,0x68,0x14,0x14,0x68,0x16,0x14,0x68,0x13,0x24, +0x5, 0x78,0xeb,0x12,0x42,0xf0,0x80,0xe6,0x12,0x5e,0xda,0x80,0xe1,0x12,0x6a,0x32, +0x80,0xdc,0x6d,0x33,0x7a,0x37,0x10,0x1, 0x12,0x58,0x57,0x80,0xd1,0x7c,0xa5,0x7c, +0x5b,0xa9,0xd6,0xcb,0x7c,0xb7,0xf5,0xb9,0xa, 0x36,0x7c,0xb7,0xf5,0xba,0x7c,0xb5, +0xc4,0x33,0x54,0xe0,0x4c,0xba,0xf5,0xbb,0x7c,0xb2,0x1e,0xb0,0x1e,0xb0,0x54,0xf, +0xa, 0x4b,0x3e,0x44,0x3e,0x44,0x3e,0x44,0x3e,0x44,0x1e,0x50,0x1e,0x50,0x1e,0x50, +0xa, 0x55,0x4d,0x54,0xf5,0xbc,0x7c,0xb1,0xf5,0xbd,0xa, 0x50,0xf5,0xc1,0x7c,0xb3, +0x44,0xa0,0xf5,0xc3,0x7a,0x41,0xc4,0x75,0xc5,0xc0,0x43,0xc2,0x7, 0x80,0x7, 0x43, +0xc2,0x7, 0x0, 0x0, 0x0, 0x0, 0xa9,0x37,0xc2,0xf5,0x75,0xc2,0x0, 0xa9,0xc6,0xcb, +0x22,0x7c,0xab,0x6c,0x33,0x6d,0x44,0x7e,0x10,0x2, 0xac,0x13,0x2e,0x4, 0x1c,0x3a, +0x1b,0x8, 0x40,0xb, 0x30,0xa5,0xbb,0xc, 0xec,0x6c,0x33,0x80,0x43,0xa, 0x3, 0x2d, +0x2, 0x7e,0x9, 0x20,0x7c,0xb2,0xa, 0x3, 0x20,0xe0,0xb, 0x2d,0x3, 0x7e,0x9, 0xb0, +0x54,0x1f,0xa, 0xfb,0x80,0x13,0x2d,0x3, 0x7e,0x9, 0xb0,0x54,0x1f,0xa, 0xfb,0x3e, +0xf4,0x3e,0xf4,0x3e,0xf4,0x3e,0xf4,0x3e,0xf4,0x7c,0xb2,0x1e,0xb0,0x7e,0x90,0x2, +0xac,0x9b,0x2e,0x44,0x1c,0x3a,0xb, 0x48,0x0, 0x4d,0xf, 0x1b,0x48,0x0, 0xb, 0x30, +0xbc,0xa3,0x38,0xb9,0x22,0x7d,0x23,0x75,0xe4,0x1, 0x9, 0xb2,0x0, 0xc, 0x54,0x7f, +0xf5,0xe5,0x75,0xe4,0x2, 0x9, 0xb2,0x0, 0xd, 0x54,0x7f,0xf5,0xe5,0x75,0xe4,0x7, +0x9, 0xb2,0x0, 0x15,0x54,0x7f,0xf5,0xe5,0x75,0xe4,0xb, 0x6c,0xaa,0xa, 0x1a,0x49, +0x32,0x0, 0x1d,0x2d,0x31,0x7e,0x39,0xb0,0xf5,0xe5,0xb, 0xa0,0xbe,0xa0,0x25,0x40, +0xec,0x75,0xe4,0x30,0x49,0x32,0x0, 0x1b,0x7e,0x39,0xb0,0xf5,0xe5,0x75,0xe4,0x31, +0x49,0x32,0x0, 0x19,0x7d,0x53,0x5e,0x54,0x0, 0xff,0xf5,0xe5,0x75,0xe4,0x32,0x5e, +0x34,0xff,0x0, 0xa, 0x56,0xf5,0xe5,0x22,0xca,0x79,0x7e,0x71,0x54,0x3e,0x70,0x3e, +0x70,0x7c,0xb7,0x24,0x56,0xa, 0x2b,0xb, 0x28,0x50,0x7c,0xab,0x7c,0xb7,0x24,0x58, +0xa, 0x3b,0xb, 0x38,0x70,0x4d,0x77,0x68,0x1f,0xbe,0xa0,0x1, 0x68,0xa, 0xbe,0xa0, +0x2, 0x68,0x5, 0xbe,0xa0,0x3, 0x78,0x10,0x7e,0x34,0x10,0x2b,0x12,0x6b,0x58,0x7d, +0x37,0x7e,0x24,0x18,0x0, 0x12,0x55,0x3a,0x5, 0x54,0xe5,0x53,0xbe,0xb1,0x54,0x28, +0x10,0x12,0x62,0xd5,0xb4,0x1, 0x5, 0x75,0x55,0x1, 0x80,0x8, 0x75,0x55,0x3, 0x80, +0x3, 0x75,0x55,0x2, 0xda,0x79,0x22,0x6d,0x11,0x7e,0x24,0x1c,0x1c,0x1b,0x28,0x10, +0x6c,0x55,0x9, 0xb3,0x0, 0x4d,0xb4,0x1, 0x6, 0x9, 0xa3,0x0, 0x50,0x80,0x2, 0x7c, +0xa5,0xa, 0x4a,0x49,0x13,0x0, 0x8, 0x2d,0x14,0x7e,0x19,0x40,0xa, 0x14,0x7e,0x4, +0x1c,0x24,0x1b,0x8, 0x10,0x9, 0x43,0x0, 0x1f,0xa, 0x14,0x1b,0x8, 0x10,0x49,0x13, +0x0, 0x41,0x2d,0x14,0x7e,0x19,0x40,0xa, 0x14,0x1b,0x8, 0x10,0x49,0x13,0x0, 0x43, +0x2d,0x14,0x7e,0x19,0x40,0xa, 0x14,0x1b,0x8, 0x10,0xb, 0x50,0xbe,0x50,0xd, 0x40, +0xb1,0x22,0x75,0x9, 0x0, 0xe5,0xb, 0xc4,0x7c,0x5b,0x5e,0x50,0x7, 0xa5,0xbd,0x0, +0x9, 0xe5,0xf, 0x12,0x53,0x92,0xf5,0x91,0x80,0xb, 0xa5,0xbd,0x4, 0x7, 0xe5,0xf, +0x12,0x27,0x4a,0xf5,0x91,0x75,0xa, 0x0, 0xe4,0x7a,0xb3,0x0, 0xfa,0x7e,0x34,0x0, +0x76,0x7e,0x24,0x0, 0x42,0x74,0xff,0x12,0x6e,0x21,0x7e,0x34,0x0, 0xb8,0x7e,0x24, +0x0, 0x42,0x74,0xff,0x12,0x6e,0x21,0x74,0xaa,0x7a,0xb3,0x0, 0x76,0x7a,0xb3,0x0, +0x77,0x7a,0xb3,0x0, 0xb8,0x7a,0xb3,0x0, 0xb9,0x22,0xca,0xf8,0x74,0x3, 0x7a,0xb3, +0x16,0xa0,0xe4,0x7a,0xb3,0x10,0x3c,0x7a,0xb3,0x10,0x4d,0x74,0x3, 0x7a,0xb3,0x16, +0xa0,0x6d,0x33,0x7a,0x37,0x10,0x1, 0x7e,0x34,0xd, 0xac,0x7a,0x37,0xa, 0xaf,0x7e, +0xf3,0x16,0xa0,0xbe,0xf0,0x3, 0x78,0x1d,0xe5,0xb, 0x30,0xe7,0xe4,0x12,0x6b,0x35, +0x7e,0x37,0xf, 0xd6,0x7a,0x37,0x16,0x9d,0x7e,0x37,0xf, 0xda,0x7a,0x37,0x16,0x9b, +0x53,0xb, 0x7f,0x80,0xcc,0x7a,0xf3,0x10,0xa5,0x12,0x0, 0x1e,0x12,0x0, 0x6a,0xda, +0xf8,0x22,0x7c,0xab,0xa9,0xd6,0xcb,0x7c,0xb7,0xf5,0xb9,0xa, 0x36,0x7c,0xb7,0xf5, +0xba,0x7c,0xb5,0xf5,0xbb,0xa, 0x34,0x7c,0xb7,0xf5,0xbc,0x7c,0xb3,0xf5,0xbd,0xa, +0x12,0x7c,0xb3,0xf5,0xc1,0x7c,0xba,0x44,0xa0,0xf5,0xc3,0xe5,0xc4,0x54,0xe0,0x4c, +0xb1,0xf5,0xc4,0x75,0xc5,0xc0,0xa, 0x30,0x7d,0x23,0x4e,0x24,0x0, 0x1, 0x7c,0x15, +0x7c,0xb1,0x42,0xc2,0x80,0x8, 0x7c,0xb1,0x42,0xc2,0x0, 0x0, 0x0, 0x0, 0xa9,0x37, +0xc2,0xf4,0x75,0xc2,0x0, 0xa9,0xc6,0xcb,0x22,0x6c,0xaa,0x6c,0x77,0x7e,0x10,0x30, +0xac,0x1a,0x7e,0x30,0x2, 0xac,0x37,0x2d,0x10,0x7d,0x1, 0x2e,0x7, 0xf, 0xda,0xb, +0x8, 0x20,0xbe,0x27,0xe, 0x5, 0x8, 0x12,0x7d,0x41,0x2e,0x47,0xf, 0xd8,0xb, 0x48, +0x0, 0x2e,0x7, 0xe, 0x5, 0x1b,0x48,0x0, 0x80,0x18,0x6d,0x0, 0x9e,0x7, 0xe, 0x5, +0xbd,0x20,0x58,0xe, 0x2e,0x17,0xf, 0xd8,0xb, 0x18,0x20,0x9e,0x27,0xe, 0x5, 0x1b, +0x18,0x20,0xb, 0x70,0xa5,0xbf,0x18,0xb5,0xb, 0xa0,0xbe,0xa0,0xd, 0x40,0xac,0x22, +0xca,0x3b,0x7c,0xc5,0x7c,0xdb,0x7d,0x73,0x7a,0xd, 0x31,0x7e,0x79,0x50,0xa5,0xbd, +0x0, 0xb, 0x7e,0xd, 0x31,0x7e,0xb, 0x40,0x7a,0x79,0x40,0x80,0x36,0x7e,0xd, 0x31, +0x7e,0xb, 0x40,0xa, 0x34,0xa, 0x25,0x9d,0x32,0x12,0x6e,0x11,0xa, 0x2c,0xbd,0x32, +0x8, 0x18,0x7e,0x1d,0x31,0x7e,0x1b,0xb0,0x7e,0x79,0xa0,0xbc,0xba,0x7c,0xba,0x28, +0x4, 0x2c,0xbd,0x80,0x2, 0x9c,0xbd,0x7a,0x79,0xb0,0x7e,0x79,0x30,0x7e,0x1d,0x31, +0x7a,0x1b,0x30,0xda,0x3b,0x22,0x7e,0xb3,0x10,0x39,0xb4,0x1, 0x26,0x7e,0x73,0xa, +0xac,0x7a,0x73,0x10,0x37,0x7e,0x73,0xa, 0xad,0x7a,0x73,0x10,0x38,0x7e,0x73,0xa, +0xae,0x7a,0x73,0x10,0x3a,0x7e,0x34,0xd, 0xfe,0x7a,0x37,0x10,0x46,0x7e,0x34,0xf, +0xdc,0x80,0x24,0x7e,0x73,0x11,0x16,0x7a,0x73,0x10,0x37,0x7e,0x73,0x11,0x49,0x7a, +0x73,0x10,0x38,0x7e,0x73,0x11,0x94,0x7a,0x73,0x10,0x3a,0x7e,0x34,0x11,0x9d,0x7a, +0x37,0x10,0x46,0x7e,0x34,0xf, 0x63,0x7a,0x37,0x10,0x48,0x22,0xe5,0x55,0xbe,0xb0, +0x1, 0x68,0xf9,0xe5,0x74,0x60,0xfc,0xe5,0x75,0x60,0xfc,0x20,0x93,0xfd,0xd2,0x96, +0xd2,0x95,0xd2,0xb8,0xa9,0xd0,0xb7,0xd2,0xa8,0x7e,0xb3,0x16,0xa9,0x70,0x17,0xe5, +0xcc,0x7a,0xb3,0x16,0xaa,0x7e,0x34,0x1d,0x8, 0xb, 0x38,0x30,0x7a,0x73,0x16,0xac, +0x74,0x1, 0x7a,0xb3,0x16,0xa9,0xa9,0xc0,0xca,0x7e,0x24,0x0, 0x1, 0x7e,0x34,0x1d, +0x8, 0x1b,0x38,0x20,0xa9,0xc1,0xc9,0xa9,0xc3,0xc9,0xc2,0xcd,0x75,0x87,0x2, 0x0, +0x0, 0x22,0x6c,0xaa,0x7e,0x50,0x2, 0xac,0x5a,0x7d,0x32,0x2e,0x37,0xf, 0xd6,0xb, +0x38,0x10,0x2e,0x27,0xf, 0xd4,0xb, 0x28,0x30,0x2d,0x31,0x1b,0x28,0x30,0xb, 0xa0, +0xbe,0xa0,0x25,0x78,0xdf,0x6c,0xaa,0x7e,0x50,0x2, 0xac,0x5a,0x49,0x12,0x9, 0x2e, +0x2e,0x24,0x8, 0xe4,0xb, 0x28,0x30,0x2d,0x31,0x1b,0x28,0x30,0xb, 0xa0,0xbe,0xa0, +0x25,0x40,0xe4,0x7e,0x14,0x1, 0x0, 0x7d,0x31,0x7e,0x24,0x3, 0x70,0x74,0x18,0x7e, +0x13,0x10,0x2b,0x6c,0x0, 0x2, 0x5f,0x32,0x9, 0xa3,0x0, 0x24,0xbe,0xa0,0x1, 0x78, +0x5, 0xa9,0xc1,0xc9,0x80,0x3, 0xa9,0xd1,0xc9,0x43,0xcc,0x8, 0x9, 0x53,0x0, 0x2, +0x3e,0x50,0xe5,0xca,0x54,0x1, 0x4c,0xb5,0xf5,0xca,0xa9,0xd0,0xca,0xd2,0xcd,0xbe, +0xa0,0x1, 0x78,0x5, 0xa9,0xd0,0xc9,0x80,0x3, 0xa9,0xc0,0xc9,0x7e,0x14,0x1d,0x0, +0xb, 0x18,0x20,0x5e,0x24,0xff,0xfd,0x1b,0x18,0x20,0x9, 0xb3,0x0, 0x3f,0xb4,0x1, +0xc, 0x75,0xe4,0x32,0x9, 0xb3,0x0, 0x40,0xc4,0x54,0xf0,0xf5,0xe5,0x22,0x12,0x4b, +0xdf,0x12,0x3c,0xc2,0x12,0x69,0xb, 0x7e,0x34,0x8, 0x50,0x7a,0x37,0xf, 0xd4,0x7e, +0x34,0x8, 0x9a,0x7a,0x37,0xf, 0xd6,0x7e,0x34,0x8, 0x9a,0x7e,0x27,0xf, 0xd4,0x12, +0x6a,0xca,0x7e,0x34,0x1, 0x0, 0x7a,0x37,0xf, 0xd8,0x7e,0x34,0x3, 0x70,0x7a,0x37, +0xf, 0xda,0x7e,0x34,0x3, 0x70,0x7e,0x27,0xf, 0xd8,0x12,0x68,0x15,0x12,0x64,0xd4, +0x12,0x5a,0x90,0x12,0x6a,0x7f,0x12,0x52,0x72,0x12,0x6e,0x93,0x74,0x1, 0x7a,0xb3, +0x11,0x96,0x22,0xca,0xf8,0x7e,0xb3,0xf, 0xd2,0xb4,0x1, 0x48,0x6c,0xff,0x80,0x3c, +0x7e,0x37,0xf, 0xd6,0x2e,0x34,0x0, 0x30,0x74,0x2, 0xac,0xbf,0x9, 0xb5,0xa, 0xb1, +0x7e,0x53,0x10,0x2b,0x12,0x35,0x61,0x74,0x4, 0xac,0xbf,0x59,0x35,0xb, 0x86,0x7e, +0x37,0xf, 0xd6,0x74,0x2, 0xac,0xbf,0x9, 0xb5,0xa, 0xb2,0x7e,0x53,0x10,0x2c,0x12, +0x35,0x61,0x74,0x4, 0xac,0xbf,0x59,0x35,0xb, 0x88,0xb, 0xf0,0x7e,0x73,0xd, 0x16, +0xbc,0x7f,0x38,0xbc,0xda,0xf8,0x22,0xca,0x69,0xca,0xf8,0x7c,0xfb,0x7e,0x24,0x0, +0x4, 0x7c,0xaf,0x3e,0xa0,0x3e,0xa0,0x7c,0xba,0x24,0x56,0xa, 0x3b,0x1b,0x38,0x20, +0x6d,0x66,0x7c,0xba,0x24,0x58,0xa, 0x3b,0x1b,0x38,0x60,0xb, 0xf0,0x12,0x0, 0x6e, +0x50,0x1e,0x7e,0x24,0x0, 0x5, 0x7c,0xaf,0x3e,0xa0,0x3e,0xa0,0x7c,0xba,0x24,0x56, +0xa, 0x3b,0x1b,0x38,0x20,0x7c,0xba,0x24,0x58,0xa, 0x3b,0x1b,0x38,0x60,0xb, 0xf0, +0x7c,0xbf,0xda,0xf8,0xda,0x69,0x22,0x7e,0x47,0x16,0x36,0x6c,0x77,0x7e,0xa0,0xff, +0x7e,0x43,0x16,0x25,0xa, 0x14,0x9, 0x51,0xf, 0x29,0xbe,0x53,0x10,0x4a,0x78,0x32, +0x7e,0x50,0x12,0xac,0x45,0x49,0x22,0x16,0x36,0xbe,0x24,0x0, 0x41,0x40,0x23,0x7e, +0x60,0x1, 0xbe,0x44,0x0, 0x19,0x40,0x18,0x7e,0x30,0x12,0xac,0x36,0x49,0x21,0x16, +0x36,0xbd,0x24,0x50,0x4, 0x7d,0x42,0x7c,0x76,0xb, 0x60,0xbe,0x60,0x4, 0x40,0xe2, +0x7c,0xa7,0x7c,0xba,0x22,0xca,0x79,0xe5,0x53,0xbe,0xb1,0x54,0x38,0x4, 0x6c,0xff, +0x80,0x3a,0xe5,0x54,0x3e,0xb0,0x3e,0xb0,0x24,0x56,0xa, 0x3b,0xb, 0x38,0x30,0x7c, +0xe7,0xbe,0xe0,0x1, 0x68,0xe, 0xbe,0xe0,0x2, 0x68,0x9, 0xbe,0xe0,0x3, 0x68,0x4, +0x4c,0xee,0x78,0x7, 0x7c,0xbe,0x12,0x63,0x6c,0x7c,0xfb,0xbe,0xe0,0x4, 0x68,0x5, +0xbe,0xe0,0x5, 0x78,0x7, 0x7c,0xbe,0x12,0x51,0xe1,0x7c,0xfb,0x7c,0xbf,0xda,0x79, +0x22,0x7e,0xa3,0xd, 0xf7,0xbe,0xa0,0x0, 0x28,0x40,0x6c,0x77,0x80,0x38,0x7e,0x50, +0x2, 0xac,0x57,0x9, 0x62,0xd, 0x18,0x9, 0x52,0xd, 0x19,0x7e,0x30,0x2, 0xac,0x36, +0x49,0x1, 0x11,0xce,0x7e,0x17,0xf, 0x4a,0xe, 0x14,0xbd,0x1, 0x48,0x13,0x7e,0x30, +0x2, 0xac,0x35,0x49,0x1, 0x11,0x9e,0x7e,0x17,0xf, 0x4c,0xe, 0x14,0xbd,0x1, 0x58, +0x3, 0x74,0x1, 0x22,0xb, 0x70,0xbc,0xa7,0x38,0xc4,0xe4,0x22,0xca,0xf8,0x7c,0xfb, +0xbe,0xf0,0x1, 0x78,0x3, 0xe4,0x80,0xb, 0xbe,0xf0,0x2, 0x68,0x4, 0x4c,0xff,0x78, +0x8, 0x74,0x1, 0x7a,0xb3,0x10,0x39,0x80,0x3, 0xe4,0x80,0x28,0x12,0x60,0x36,0x4c, +0xff,0x78,0x11,0xe4,0x7a,0xb3,0x10,0x3a,0x74,0x1e,0x7a,0xb3,0x10,0x37,0x74,0xa, +0x7a,0xb3,0x10,0x38,0x7e,0x34,0x10,0x2b,0x12,0x5b,0x6c,0x7e,0x34,0x10,0x2b,0x12, +0x65,0x59,0x74,0x1, 0xda,0xf8,0x22,0xca,0x7b,0xca,0x6b,0xca,0x5b,0xca,0x4b,0xca, +0x2b,0xca,0x1b,0xca,0xb, 0xc0,0xd0,0xc0,0x83,0xc0,0x82,0x75,0x74,0x1, 0x7e,0x24, +0x1d,0x0, 0xb, 0x28,0x30,0x4e,0x60,0x2, 0x1b,0x28,0x30,0xb, 0x28,0x30,0x4e,0x70, +0x2, 0x1b,0x28,0x30,0xe5,0x55,0xb4,0x1, 0x3, 0x12,0x5d,0xc8,0xd0,0x82,0xd0,0x83, +0xd0,0xd0,0xda,0xb, 0xda,0x1b,0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda,0x7b, +0x32,0x7c,0xab,0xa9,0xd6,0xcb,0x7c,0xb7,0xf5,0xb9,0xa, 0x36,0x7c,0xb7,0xf5,0xba, +0x7c,0xb5,0xf5,0xbb,0xa, 0x34,0x7c,0xb7,0xf5,0xbc,0x7a,0xa1,0xc3,0x75,0xc5,0x40, +0x75,0xc2,0x2b,0x80,0x3, 0x43,0xc2,0x1, 0x0, 0x0, 0x0, 0x0, 0xa9,0x37,0xc2,0xf5, +0x75,0xc2,0x0, 0x75,0xc5,0xe, 0xe5,0xc6,0xa, 0x3b,0xe5,0xc6,0xa, 0x2b,0x7c,0x45, +0x6c,0x55,0x4d,0x32,0xa9,0xc6,0xcb,0x22,0xe4,0x7a,0xb3,0x15,0x9f,0x7a,0xb3,0x15, +0x53,0x7a,0xb3,0x15,0x9e,0x7a,0xb3,0x15,0xa0,0x7a,0xb3,0x15,0xa1,0x7e,0x34,0x15, +0x56,0x7e,0x24,0x0, 0x48,0x12,0x6e,0x21,0x7e,0x34,0x14,0xe3,0x7e,0x24,0x0, 0x48, +0xe4,0x12,0x6e,0x21,0x7e,0x34,0x15,0x56,0x7e,0x24,0x0, 0x46,0x74,0xff,0x12,0x6e, +0x21,0x7e,0x34,0x14,0xe3,0x7e,0x24,0x0, 0x46,0x74,0xff,0x2, 0x6e,0x21,0xd2,0xcd, +0xa9,0xd1,0xc9,0xa9,0xd3,0xcb,0xa9,0xd7,0xcb,0x7e,0xb3,0x16,0xa9,0xb4,0x1, 0x15, +0x7e,0x73,0x16,0xac,0xa, 0x27,0x7e,0x34,0x1d,0x8, 0x1b,0x38,0x20,0x7e,0xb3,0x16, +0xaa,0xf5,0xcc,0x80,0xe, 0x7e,0x24,0x0, 0x2, 0x7e,0x34,0x1d,0x8, 0x1b,0x38,0x20, +0x75,0xcc,0x0, 0xa9,0xd4,0xc9,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe4,0x7a, +0xb3,0x16,0xa9,0x22,0x7e,0x34,0x1, 0x90,0x7a,0x37,0xd, 0xff,0x7e,0x34,0x0, 0x19, +0x7a,0x37,0xe, 0x1, 0x7e,0x34,0x0, 0x9c,0x7a,0x37,0xe, 0x3, 0x7e,0x34,0x0, 0x8, +0x7a,0x37,0xe, 0x5, 0x7e,0x34,0x0, 0x4, 0x7a,0x37,0xe, 0x7, 0x74,0x1, 0x7a,0xb3, +0xe, 0x9, 0x7e,0xb3,0xe, 0xa, 0x54,0xfb,0x7a,0xb3,0xe, 0xa, 0x7e,0x34,0x10,0x3, +0x7e,0x24,0x0, 0x28,0xe4,0x2, 0x6e,0x21,0x7c,0xab,0x6c,0x33,0x80,0x36,0xa, 0x3, +0x2d,0x2, 0x7e,0x9, 0x20,0x7c,0xb2,0x54,0x7, 0x3e,0xb0,0xa, 0x3, 0x2d,0x3, 0x7e, +0x9, 0x10,0xa, 0xf1,0x60,0x5, 0x3e,0xf4,0x14,0x78,0xfb,0x1e,0x20,0x1e,0x20,0x1e, +0x20,0x7e,0x90,0x2, 0xac,0x92,0x2e,0x44,0x1c,0x30,0xb, 0x48,0x0, 0x4d,0xf, 0x1b, +0x48,0x0, 0xb, 0x30,0xbc,0xa3,0x38,0xc6,0x22,0x75,0x75,0x0, 0x75,0xe4,0x3, 0x49, +0x23,0x0, 0x17,0x7d,0x52,0x5e,0x54,0x0, 0xff,0xf5,0xe5,0x75,0xe4,0x4, 0x5e,0x24, +0x1f,0x0, 0xa, 0x24,0x7c,0xa5,0x7a,0xa1,0xe5,0x75,0xe4,0x5, 0xf5,0xe5,0x75,0xe4, +0x6, 0x9, 0xb3,0x0, 0x16,0xc4,0x33,0x54,0xe0,0x4c,0xba,0xf5,0xe5,0xa9,0xd6,0xea, +0x75,0xe6,0x0, 0xa9,0xd1,0xe1,0xa9,0xd0,0xe1,0x22,0xca,0xf8,0x7e,0x24,0xe, 0xd, +0x7e,0x34,0xe, 0x99,0x7e,0x14,0x0, 0x46,0x12,0x6d,0x7d,0x6c,0xff,0x74,0x7, 0xac, +0xbf,0x49,0x35,0xe, 0xd, 0x12,0x4c,0xa8,0x74,0x7, 0xac,0xbf,0x59,0x35,0xe, 0x99, +0x49,0x35,0xe, 0xf, 0x12,0x4a,0x31,0x74,0x7, 0xac,0xbf,0x59,0x35,0xe, 0x9b,0xb, +0xf0,0xbe,0xf0,0xa, 0x40,0xd7,0xda,0xf8,0x22,0x6d,0x33,0x6c,0xaa,0x80,0x2e,0x7e, +0x30,0x2, 0xac,0x3a,0x9, 0x51,0xd, 0x18,0x9, 0x41,0xd, 0x19,0x7e,0x10,0x30,0xac, +0x15,0x7e,0x30,0x2, 0xac,0x34,0x2d,0x10,0x2e,0x17,0xf, 0xda,0xb, 0x18,0x40,0xbe, +0x44,0x0, 0x0, 0x8, 0x6, 0xbd,0x43,0x8, 0x2, 0x7d,0x34,0xb, 0xa0,0x7e,0xb3,0xd, +0xf7,0xbc,0xba,0x38,0xca,0x22,0xca,0x79,0x7d,0x41,0x7d,0x13,0x6d,0x0, 0x7e,0x34, +0x7f,0xff,0x6c,0xaa,0x80,0x1b,0x7e,0xf0,0x7, 0xac,0xfa,0x7d,0xe7,0x2d,0xe4,0x49, +0xfe,0x0, 0x2, 0xbd,0xf0,0x28,0x2, 0x7d,0xf, 0xbd,0xf3,0x50,0x2, 0x7d,0x3f,0xb, +0xa0,0x9, 0xb4,0x0, 0x46,0xbc,0xba,0x38,0xdd,0x1b,0x18,0x0, 0x1b,0x28,0x30,0xda, +0x79,0x22,0xca,0xf8,0x7e,0xb3,0x10,0x4e,0x60,0x3, 0xb4,0x1, 0x2d,0xa9,0xc6,0xea, +0x12,0x29,0x9c,0x7c,0xfb,0x7e,0x37,0xf, 0xda,0x7e,0x27,0xf, 0xd8,0x12,0x68,0x15, +0x7e,0x37,0xf, 0xda,0x7e,0x27,0xf, 0xd8,0x12,0x54,0x21,0xbe,0xf0,0x1, 0x78,0x4, +0x74,0x2, 0x80,0x2, 0x74,0xff,0x7a,0xb3,0x10,0x4e,0xda,0xf8,0x22,0x7e,0xb3,0x16, +0x25,0x4, 0x7a,0xb3,0x16,0x25,0x7e,0x73,0x16,0x25,0xbe,0x70,0x4, 0x40,0x5, 0xe4, +0x7a,0xb3,0x16,0x25,0x7e,0xa3,0x16,0x25,0xbe,0xa0,0x3, 0x78,0x13,0x7e,0xb3,0x16, +0x6e,0x4, 0x7a,0xb3,0x16,0x6e,0xbe,0xb0,0x8, 0x40,0x5, 0xe4,0x7a,0xb3,0x16,0x6e, +0xa, 0x3a,0x9, 0xb3,0xf, 0x29,0x22,0xca,0x3b,0x7d,0x72,0x7d,0x63,0x7d,0x21,0x7d, +0x36,0x7e,0x14,0x0, 0x4a,0x12,0x6d,0x7d,0x7e,0xb3,0x10,0x3c,0xb4,0x1, 0x1f,0x6c, +0xaa,0x7e,0x50,0x2, 0xac,0x5a,0x7d,0x32,0x2d,0x37,0xb, 0x38,0x10,0x2d,0x26,0xb, +0x28,0x30,0x9d,0x31,0x1b,0x28,0x30,0xb, 0xa0,0xbe,0xa0,0x25,0x78,0xe3,0xda,0x3b, +0x22,0x7e,0xb3,0x10,0x3d,0x70,0x32,0xa9,0xd6,0xea,0x74,0x1, 0x7a,0xb3,0x10,0x39, +0x12,0x60,0x36,0x12,0x2d,0xf4,0xe4,0x7a,0xb3,0x10,0x39,0x12,0x60,0x36,0x12,0x2d, +0xf4,0x7e,0x34,0x10,0x2b,0x12,0x6b,0x58,0x7e,0x37,0xf, 0xd4,0x7e,0x24,0x8, 0xe4, +0x12,0x59,0x3f,0x74,0x2, 0x7a,0xb3,0x10,0x3d,0x22,0x7e,0xa3,0xf, 0x1c,0xbe,0xa0, +0x0, 0x38,0x2f,0xbe,0xa3,0xf, 0x1b,0x50,0x19,0x7e,0xb3,0xf, 0x25,0xbe,0xb3,0x12, +0x33,0x28,0x14,0x7e,0xb3,0x12,0x33,0x4, 0x7a,0xb3,0x12,0x33,0x7a,0xa3,0xf, 0x1b, +0x80,0x5, 0xe4,0x7a,0xb3,0x12,0x33,0x7e,0xb3,0xf, 0x1b,0x70,0x5, 0xe4,0x7a,0xb3, +0xf, 0x24,0x22,0xca,0x7b,0xca,0x6b,0xca,0x5b,0xca,0x4b,0xca,0x2b,0xca,0x1b,0xca, +0xb, 0xc0,0xd0,0xc0,0x83,0xc0,0x82,0x53,0xcc,0xf8,0x43,0xcc,0x1, 0x12,0x54,0xaf, +0x74,0x1, 0x7a,0xb3,0x0, 0xfa,0xd0,0x82,0xd0,0x83,0xd0,0xd0,0xda,0xb, 0xda,0x1b, +0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda,0x7b,0x32,0xca,0x7b,0xca,0x6b,0xca, +0x5b,0xca,0x4b,0xca,0x2b,0xca,0x1b,0xca,0xb, 0xc0,0xd0,0xc0,0x83,0xc0,0x82,0x75, +0x75,0x1, 0x75,0xe6,0x0, 0xe5,0x55,0xb4,0x1, 0x3, 0x12,0x5d,0xc8,0xd0,0x82,0xd0, +0x83,0xd0,0xd0,0xda,0xb, 0xda,0x1b,0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda, +0x7b,0x32,0xca,0xf8,0x7d,0x1, 0x7d,0x13,0x7e,0xf3,0x10,0x4d,0xbe,0xf0,0x1, 0x78, +0xd, 0x7d,0x30,0x74,0x18,0x7e,0x13,0x10,0x2b,0x7e,0x0, 0x2, 0x80,0x11,0x4c,0xff, +0x78,0x10,0x7d,0x30,0x6d,0x22,0x74,0x18,0x7e,0x13,0x10,0x2b,0x7e,0x0, 0x4, 0x12, +0x5f,0x32,0xda,0xf8,0x22,0xe4,0x7a,0xb3,0xf, 0xd3,0x6c,0xaa,0x6c,0x33,0x6d,0xff, +0x7e,0x10,0x18,0xac,0x1a,0xa, 0xe3,0x2d,0xe, 0x3e,0x4, 0x7d,0x40,0x2d,0x42,0x1b, +0x48,0xf0,0x6d,0x44,0x2d,0x3, 0x1b,0x8, 0x40,0xb, 0x30,0xa5,0xbb,0x18,0xdf,0xb, +0xa0,0xbe,0xa0,0xd, 0x40,0xd6,0x22,0x7d,0x23,0x7c,0xab,0x6d,0x33,0x6c,0x33,0x4c, +0xaa,0x7e,0x10,0x7, 0x78,0xb, 0xac,0x13,0x2d,0x2, 0xb, 0x8, 0x0, 0x2d,0x30,0x80, +0xa, 0xac,0x13,0x2d,0x2, 0x49,0x0, 0x0, 0x2, 0x2d,0x30,0xb, 0x30,0xbe,0x30,0x3, +0x40,0xdd,0x7e,0x24,0x0, 0x3, 0x8d,0x32,0x22,0x6c,0xaa,0x74,0x3, 0xa, 0x2a,0x2d, +0x23,0x7a,0x29,0xb0,0xa, 0x2a,0x2d,0x23,0x19,0xb2,0x0, 0xa, 0x7e,0x24,0xff,0xff, +0x7e,0x30,0x2, 0xac,0x3a,0x7d,0x1, 0x2d,0x3, 0x59,0x20,0x0, 0x14,0x2d,0x13,0x59, +0x21,0x0, 0x28,0xb, 0xa0,0xbe,0xa0,0xa, 0x40,0xd1,0x22,0x7c,0xab,0x7e,0x24,0xe, +0xdf,0xbe,0xa0,0xa, 0x50,0x25,0xa, 0x3a,0x7d,0x13,0x2d,0x12,0x7e,0x19,0xb0,0xb4, +0x2, 0xe, 0x74,0x1, 0x7a,0x19,0xb0,0x74,0x3, 0x2d,0x23,0x19,0xb2,0x0, 0xa, 0x22, +0x74,0x3, 0x7a,0x19,0xb0,0x2d,0x32,0x19,0xb3,0x0, 0xa, 0x22,0xca,0x7b,0xca,0x6b, +0xca,0x5b,0xca,0x4b,0xca,0x2b,0xca,0x1b,0xca,0xb, 0xc0,0xd0,0xc0,0x83,0xc0,0x82, +0x12,0x6e,0x9d,0x53,0xb, 0xfd,0xd0,0x82,0xd0,0x83,0xd0,0xd0,0xda,0xb, 0xda,0x1b, +0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda,0x7b,0x32,0x6d,0x33,0x7a,0x37,0x11, +0xd, 0x74,0x1, 0x7a,0xb3,0x11,0xf, 0x74,0x9, 0x7a,0xb3,0x11,0x10,0x74,0xb, 0x7a, +0xb3,0x11,0x11,0x74,0x1e,0x7a,0xb3,0x11,0x12,0x7a,0xb3,0x11,0x13,0x7a,0xb3,0x11, +0x14,0x74,0x1, 0x7a,0xb3,0x11,0x15,0x22,0x6c,0xaa,0x80,0x1f,0x7e,0x70,0x2, 0xac, +0x7a,0x49,0x23,0x16,0x6f,0x7e,0x70,0x18,0xac,0x7a,0x3e,0x34,0x2e,0x37,0xf, 0xda, +0x2e,0x34,0x0, 0x30,0x1b,0x35,0x1b,0x38,0x20,0xb, 0xa0,0x7e,0xb3,0x10,0x2b,0xbc, +0xba,0x38,0xd9,0x22,0x75,0x74,0x0, 0xa9,0xc6,0xea,0x7e,0x24,0x1d,0x0, 0xb, 0x28, +0x30,0x4e,0x34,0x2, 0x0, 0x1b,0x28,0x30,0xd2,0xeb,0xb, 0x28,0x30,0x4e,0x34,0x0, +0x2, 0x1b,0x28,0x30,0xb, 0x28,0x30,0x4e,0x34,0x0, 0x1, 0x1b,0x28,0x30,0x22,0x1, +0x5e,0x0, 0xa, 0x0, 0x96,0x1, 0x2c,0x0, 0x8, 0x0, 0x78,0x0, 0xfa,0x0, 0x7, 0x0, +0x50,0x0, 0xc8,0x0, 0x5, 0x0, 0x14,0x0, 0xa0,0x0, 0x3, 0x0, 0xa, 0x0, 0x78,0x0, +0x2, 0x0, 0x5, 0x0, 0x3c,0x0, 0x2, 0x0, 0x0, 0xd2,0xc9,0xa9,0xd5,0xcb,0xa, 0x56, +0xf5,0xf1,0x7c,0xb7,0xf5,0xf2,0x75,0xf3,0x80,0x75,0xf4,0x0, 0x75,0xf5,0x83,0xa9, +0x37,0xf5,0xfc,0xa9,0x36,0xf5,0xfc,0xe5,0xf6,0x43,0xfa,0x80,0xc2,0xc9,0xa9,0xc5, +0xcb,0x22,0xc2,0xaf,0x75,0xfb,0x0, 0xd2,0xc9,0xa9,0xd5,0xcb,0xa, 0x56,0x1e,0x54, +0x1e,0x54,0x3e,0x54,0x3e,0x54,0xf5,0xf1,0x75,0xf2,0x0, 0x75,0xf5,0x90,0x74,0xa, +0x12,0x6d,0x66,0xc2,0xc9,0xa9,0xc5,0xcb,0xd2,0xaf,0x22,0x12,0x22,0x3c,0x12,0x3a, +0x2, 0x12,0x4d,0x5f,0x60,0x6, 0x74,0x1, 0x7a,0xb3,0xe, 0xc, 0x7e,0xb3,0xe, 0xb, +0x60,0x3, 0x12,0x60,0xe2,0x7e,0xb3,0xe, 0xc, 0x60,0x6, 0x12,0x55,0xc4,0x2, 0x5f, +0x89,0x22,0xe4,0x7a,0xb3,0x10,0x3d,0x7a,0xb3,0x10,0x4e,0x7a,0xb3,0xf, 0x28,0x12, +0x6a,0x59,0xb4,0x1, 0xd, 0x74,0x1, 0x7a,0xb3,0x10,0xa5,0x53,0xb, 0x8f,0x74,0x2, +0x80,0x2, 0x74,0xff,0x7a,0xb3,0xf, 0x28,0x22,0xca,0xf8,0x7e,0xf0,0x1, 0x12,0x67, +0x1, 0x7e,0xb3,0x10,0x3d,0xbe,0xb0,0x2, 0x68,0x2, 0x6c,0xff,0x12,0x66,0x52,0x7e, +0xb3,0x10,0x4e,0xbe,0xb0,0x2, 0x68,0x2, 0x6c,0xff,0x7c,0xbf,0xda,0xf8,0x22,0x7e, +0x34,0xa, 0xb1,0x7e,0x24,0x3, 0x4d,0xe4,0x12,0x6e,0x21,0x7e,0x34,0xb, 0x86,0x7e, +0x24,0x1, 0x90,0x74,0xff,0x12,0x6e,0x21,0x7e,0x34,0xd, 0x6b,0x7e,0x24,0x0, 0x8c, +0x74,0xff,0x2, 0x6e,0x21,0x9, 0xb3,0x0, 0x4d,0xb4,0x1, 0x6, 0x9, 0x53,0x0, 0x51, +0x80,0x3, 0x7e,0x39,0x50,0xa, 0x15,0x7e,0x24,0x1d,0x2, 0x1b,0x28,0x10,0x49,0x23, +0x0, 0x3b,0x7e,0x34,0x1d,0x6, 0x1b,0x38,0x20,0x22,0xe4,0x7a,0xb3,0xf, 0xd2,0x6c, +0xaa,0x6d,0x44,0x7e,0x30,0x2, 0xac,0x3a,0x7d,0x1, 0x2d,0x2, 0x1b,0x8, 0x40,0x6d, +0x0, 0x2d,0x13,0x1b,0x18,0x0, 0xb, 0xa0,0xbe,0xa0,0x25,0x40,0xe4,0x22,0x7e,0x34, +0x12,0x1, 0x7e,0x24,0x0, 0x1e,0xe4,0x12,0x6e,0x21,0x7e,0x34,0x12,0x1f,0x7e,0x24, +0x0, 0x14,0xe4,0x12,0x6e,0x21,0x7e,0x34,0x11,0xed,0x7e,0x24,0x0, 0x14,0xe4,0x2, +0x6e,0x21,0x12,0x0, 0x6e,0x50,0x1d,0x12,0x6e,0xee,0x7c,0xab,0x7e,0xb3,0x11,0x95, +0xbe,0xb0,0x4, 0x68,0xf, 0xbe,0xa0,0xff,0x68,0xa, 0x74,0x1, 0x7a,0xb3,0x11,0xc, +0x7a,0xa3,0x11,0x95,0x22,0xca,0xf8,0x6c,0xff,0x7e,0xb3,0x10,0x3d,0x70,0x3, 0x7e, +0xf0,0x1, 0x74,0x1, 0x12,0x3f,0x5b,0xbe,0xb0,0x1, 0x68,0x5, 0xbe,0xf0,0x1, 0x78, +0x4, 0xe4,0x12,0x3f,0x5b,0xda,0xf8,0x22,0xa9,0xc3,0xe1,0x75,0xe4,0x3, 0x75,0xe5, +0x0, 0x75,0xe4,0x4, 0x75,0xe5,0x0, 0x75,0xe4,0x5, 0x75,0xe5,0x0, 0x75,0xe4,0x6, +0x9, 0xb3,0x0, 0x16,0xc4,0x33,0x54,0xe0,0xf5,0xe5,0x22,0x7e,0x34,0x8, 0x9a,0x7e, +0x24,0x11,0x9e,0x7e,0x14,0x1, 0x90,0x12,0x3e,0x16,0x7e,0x34,0x9, 0x2e,0x7e,0x24, +0x11,0x4a,0x7e,0x14,0x0, 0xc8,0x12,0x3e,0x16,0x2, 0x57,0x5d,0x74,0x1, 0x12,0x6e, +0x7e,0xa9,0xc3,0xea,0xa9,0xc6,0xeb,0xa9,0xd6,0xac,0xa9,0xd6,0xec,0xd2,0x86,0x75, +0x9a,0x7f,0xa9,0xd1,0x99,0xd2,0x9c,0xa9,0xd6,0xdf,0xd2,0xaf,0x22,0xe5,0x52,0xb4, +0x1, 0x18,0xe5,0x51,0x70,0x14,0x7e,0xb3,0x11,0x95,0x60,0xb, 0xe4,0x7a,0xb3,0x11, +0x95,0x74,0x1, 0x7a,0xb3,0x11,0xc, 0x12,0x6c,0x99,0x85,0x51,0x52,0x22,0x6c,0xaa, +0x7e,0x50,0x4, 0xac,0x5a,0x49,0x12,0x16,0x89,0xbd,0x13,0x38,0x8, 0x49,0x22,0x16, +0x8b,0xbd,0x23,0x50,0x7, 0xb, 0xa0,0xbe,0xa0,0x3, 0x40,0xe4,0x7c,0xba,0x22,0x7e, +0x24,0x0, 0x2, 0x7e,0x34,0x1d,0x8, 0x1b,0x38,0x20,0x12,0x6d,0xce,0x12,0x6c,0xec, +0x7e,0x34,0x7, 0xd0,0x7d,0x23,0x1b,0x34,0x4d,0x22,0x78,0xf8,0x2, 0x0, 0x2e,0x75, +0x55,0x0, 0x75,0x72,0x0, 0x75,0x54,0x0, 0x12,0x6c,0x3e,0x12,0x62,0x37,0xf5,0x53, +0x12,0x62,0xd5,0xb4,0x1, 0x4, 0x75,0x55,0x1, 0x22,0x75,0x55,0x3, 0x22,0x7e,0x34, +0x0, 0x1, 0x7a,0x35,0x56,0x7e,0x34,0xa, 0x18,0x7a,0x35,0x58,0x7e,0x34,0x0, 0x2, +0x7a,0x35,0x5a,0x7e,0x34,0xa, 0x62,0x7a,0x35,0x5c,0x74,0x2, 0x22,0x0, 0x50,0x0, +0xc, 0x6, 0x4, 0x0, 0x78,0x0, 0xf, 0x6, 0x4, 0x0, 0xc8,0x0, 0x1e,0x8, 0x5, 0x1, +0x40,0x0, 0x50,0x8, 0x5, 0x1, 0xf4,0x0, 0x64,0xa, 0x6, 0xe4,0x7a,0xb3,0x16,0xae, +0x7a,0xb3,0x16,0xad,0x7e,0xb3,0x10,0xa3,0x70,0x6, 0x7e,0x73,0x11,0x10,0x80,0x4, +0x7e,0x73,0x11,0x12,0x7a,0x73,0x16,0xaf,0x22,0xe4,0x7a,0xb3,0x10,0x78,0x74,0x2, +0x7a,0xb3,0x10,0x7b,0x74,0x4, 0x7a,0xb3,0x10,0x7c,0x7e,0x34,0x16,0x26,0x7e,0x24, +0x0, 0x48,0xe4,0x2, 0x6e,0x21,0x75,0x91,0x0, 0xc2,0x90,0xc2,0x91,0x75,0x92,0x70, +0xd2,0xad,0xd2,0xe8,0xc2,0xc0,0xa9,0xd5,0xb7,0xd2,0xbd,0xa9,0xd0,0xf7,0xd2,0xf8, +0x22,0xe4,0x7a,0xb3,0xd, 0xfb,0x7e,0x34,0x11,0x9e,0x7a,0x37,0xf, 0xd6,0x12,0x40, +0x96,0x7e,0x34,0x8, 0x9a,0x7a,0x37,0xf, 0xd6,0x2, 0x47,0x4a,0x75,0x74,0x1, 0x7e, +0x24,0x1d,0x0, 0xb, 0x28,0x30,0x4e,0x34,0x2, 0x0, 0x1b,0x28,0x30,0xd2,0xeb,0x7e, +0x34,0x0, 0x1, 0x2, 0x6e,0x68,0xc2,0x8e,0x43,0x89,0x20,0x75,0x8d,0x0, 0xa9,0x34, +0xc9,0x5, 0x75,0x8b,0xe6,0x80,0x3, 0x75,0x8b,0x78,0xd2,0x8e,0xd2,0xab,0x22,0xe5, +0x51,0xb4,0x1, 0x6, 0x7e,0x34,0x0, 0x5a,0x80,0x4, 0x7e,0x34,0x0, 0x3c,0x7a,0x37, +0xf, 0x54,0x7a,0x37,0xf, 0x56,0x22,0xca,0xf8,0x12,0x6e,0x73,0x7c,0xfb,0x12,0x0, +0x6e,0x50,0x7, 0x4c,0xff,0x78,0x3, 0xe4,0x80,0x2, 0x74,0x1, 0xda,0xf8,0x22,0x7e, +0x34,0x0, 0x24,0x12,0x69,0xb9,0x7c,0x7b,0xa5,0xbf,0xff,0x3, 0x7e,0x70,0x4, 0xa, +0x57,0x2e,0x54,0x0, 0x10,0x22,0x7c,0xab,0x80,0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x7c,0x7a,0x1b,0xa0,0xa5,0xbf,0x0, 0xee,0x22,0x7d,0x3, 0x80, +0xa, 0x7e,0x29,0xb0,0x7a,0x9, 0xb0,0xb, 0x24,0xb, 0x4, 0x7d,0x51,0x1b,0x14,0x4d, +0x55,0x78,0xee,0x22,0x7e,0x53,0xf, 0x47,0xa, 0x25,0x3e,0x24,0x3e,0x24,0x9d,0x32, +0xbe,0x34,0x0, 0x0, 0x8, 0x1, 0x22,0x6d,0x33,0x22,0x70,0x3, 0x43,0x87,0x1, 0xb4, +0x1, 0x3, 0x43,0x87,0x2, 0xb4,0x2, 0x3, 0x43,0x87,0x2, 0x22,0x74,0x3, 0x7a,0xb3, +0x16,0xa0,0xe4,0x7a,0xb3,0x16,0xa7,0x74,0xff,0x7a,0xb3,0x16,0x9f,0x22,0x75,0x75, +0x1, 0xd2,0xee,0x75,0xe6,0x0, 0xa9,0xd3,0xe1,0x7e,0x34,0x0, 0x1, 0x2, 0x6e,0x68, +0xa, 0x2b,0x19,0x72,0x10,0x7e,0x7e,0xb3,0x10,0xfe,0x44,0x1, 0x7a,0xb3,0x10,0xfe, +0x22,0x7d,0x13,0xbd,0x21,0x50,0x5, 0x7d,0x31,0x9d,0x32,0x22,0x7d,0x32,0x9d,0x31, +0x22,0x14,0x1, 0xa, 0x1, 0x0, 0x2, 0xfb,0x4, 0xf6,0x5, 0xec,0x6, 0xe7,0x7, 0xe2, +0x8, 0x7d,0x23,0xbe,0x24,0x0, 0x0, 0x48,0x3, 0x7d,0x32,0x22,0x6d,0x33,0x9d,0x32, +0x22,0x7d,0x13,0x80,0x7, 0x1b,0x24,0x7a,0x19,0xb0,0xb, 0x14,0x4d,0x22,0x78,0xf5, +0x22,0x10,0x10,0x10,0x1c,0x19,0x14,0x10,0xe, 0xc, 0xb, 0xa, 0x9, 0x8, 0x7, 0x6, +0x12,0x0, 0x42,0x12,0x57,0xdd,0x74,0x3, 0x12,0x44,0xf, 0x2, 0x24,0xd0,0x7e,0x34, +0x0, 0x21,0x12,0x69,0xb9,0xb4,0xff,0x3, 0x74,0x1, 0x22,0x22,0x7e,0xb3,0x11,0x15, +0xb4,0x1, 0x4, 0xe4,0x2, 0x6e,0xd3,0x22,0x6d,0x22,0x80,0x2, 0xb, 0x24,0xbd,0x32, +0x38,0xfa,0x22,0x12,0x63,0x21,0xb4,0x1, 0x2, 0xe4,0x22,0x74,0x1, 0x22,0xd2,0xcf, +0xa9,0xd4,0xc9,0x75,0xcc,0x0, 0xc2,0xca,0x22,0xa9,0xc0,0x93,0x75,0x9, 0x0, 0x75, +0xa, 0x0, 0x32,0x75,0x53,0x0, 0x75,0x54,0x0, 0x75,0x55,0x0, 0x22,0xa9,0x32,0x99, +0x5, 0xd2,0x9c,0xa9,0xd6,0xdf,0x22,0x75,0xb, 0x0, 0x12,0x6f,0x4, 0x2, 0x5e,0x82, +0x12,0x6b,0x9c,0x12,0x6f,0xa, 0x2, 0x6e,0xa7,0xe5,0x74,0x60,0x3, 0x74,0x1, 0x22, +0xe4,0x22,0xe5,0x75,0x60,0x3, 0x74,0x1, 0x22,0xe4,0x22,0x1, 0x2, 0x4, 0x8, 0x10, +0x20,0x40,0x80,0x70,0x3, 0xd2,0x86,0x22,0xc2,0x86,0x22,0xa9,0xd0,0x99,0xa9,0xc6, +0xdf,0x22,0xf5,0x16,0x75,0x17,0x0, 0x22,0x12,0x61,0xe3,0x2, 0x38,0x88,0x12,0x50, +0x15,0x2, 0x62,0x87,0x12,0x6f,0x16,0x2, 0x6c,0x1f,0x7e,0x34,0x1, 0x3, 0x22,0x7e, +0x34,0x5, 0xb, 0x22,0x2, 0x6c,0xb6,0x2, 0x0, 0x76,0x2, 0x6d,0x6, 0x2, 0x6e,0xdb, +0x2, 0x6e,0x9d,0xe5,0x6d,0x22,0x22,0x0, 0x1, 0x15,0xde,0x1, 0x0, 0x1, 0xa, 0xac, +0x15,0x0, 0x1, 0xa, 0xad,0x17,0x0, 0x1, 0xa, 0xae,0x4, 0x0, 0x1, 0xd, 0xfe,0x40, +0x0, 0x5, 0xf, 0x29,0x20,0x17,0x29,0x38,0x13,0x0, 0x18,0xf, 0x2e,0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x25,0xf, 0x63,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0, 0x18, +0xf, 0x88,0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, +0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0x0, 0xd, 0xf, 0xa0,0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x18,0xf, 0xad,0x0, +0x1, 0x2, 0x3, 0xb, 0xa, 0x9, 0x8, 0x7, 0x6, 0x5, 0x4, 0x17,0x16,0x15,0x14,0x13, +0xc, 0xd, 0xe, 0xf, 0x10,0x11,0x12,0x0, 0xd, 0xf, 0xc5,0x1, 0x2, 0x3, 0x4, 0x5, +0x6, 0x7, 0x8, 0x0, 0x9, 0xa, 0xb, 0xc, 0x0, 0x25,0xf, 0xdc,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0x0, 0xd, 0x10,0xff,0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, +0xf, 0xf, 0x0, 0x1, 0x11,0xc, 0x0, 0x0, 0x1, 0x11,0x16,0x15,0x0, 0x32,0x11,0x17, +0x0, 0x8, 0x0, 0x13,0x0, 0x26,0x0, 0x43,0x0, 0x6c,0x0, 0xa4,0x0, 0xed,0x1, 0x4a, +0x1, 0xbc,0x2, 0x45,0x2, 0xe4,0x3, 0x99,0x4, 0x61,0x5, 0x3a,0x6, 0x1f,0x7, 0xc, +0x7, 0xf9,0x8, 0xe1,0x9, 0xbd,0xa, 0x86,0xb, 0x34,0xb, 0xc3,0xc, 0x2d,0xc, 0x6e, +0xc, 0x83,0x0, 0x1, 0x11,0x49,0x17,0x0, 0x1, 0x11,0x94,0x2, 0x0, 0x1, 0x11,0x95, +0x0, 0x0, 0x4, 0x11,0x97,0xff,0xff,0xff,0xff,0x0, 0x2, 0x11,0x9b,0xff,0x1f,0x0, +0x1, 0x11,0x9d,0x40,0x0, 0x1, 0x11,0xe8,0x0, 0x0, 0x4, 0x11,0xe9,0x19,0x1e,0x1e, +0x1e,0x0, 0x1, 0x0, 0xff,0x0, 0x0, 0x1, 0x15,0x53,0x0, 0x0, 0x1, 0x15,0x9e,0x0, +0x0, 0x1, 0x15,0x9f,0x0, 0x0, 0x1, 0x15,0xa0,0x0, 0x0, 0x1, 0x15,0xa1,0x0, 0x0, +0x1, 0x12,0x33,0x0, 0x0, 0x1, 0x16,0xa9,0x0, 0x0, 0x1, 0x16,0xb1,0x0, 0x0, 0x1, +0x16,0xb2,0x0, 0x0, 0x1, 0x16,0xb3,0x0, 0x0, 0x1, 0x16,0xb4,0x0, 0x0, 0x1, 0x16, +0xb5,0x0, 0x0, 0x1, 0x16,0xb6,0x0, 0x0, 0x1, 0x16,0xb7,0x1, 0x0, 0x1, 0x16,0xb8, +0x1, 0x0, 0xc, 0x16,0x89,0x0, 0x46,0x0, 0xe6,0x1, 0x18,0x1, 0xb8,0x1, 0xf4,0x2, +0x94,0x0, 0x6, 0x16,0x95,0x0, 0x8c,0x1, 0x68,0x2, 0x44,0x0, 0x1, 0x16,0x25,0x3, +0x0, 0x1, 0x16,0x6e,0x0, 0x0, 0x1, 0x16,0xb9,0x0, 0x0, 0x1, 0x16,0xba,0x0, 0x0, +0x1, 0x16,0xbb,0x0, 0x0, 0x0, 0x53,0x5a,0x1e,0xe1,0xff,0xff,0x71,0x6, 0x8e,0xf9, +0x4d,0xb2,0x5, 0x3b, \ No newline at end of file diff --git a/drivers/input/touchscreen/ft5336/ft_app_ic_lens_tianma_720p.txt b/drivers/input/touchscreen/ft5336/ft_app_ic_lens_tianma_720p.txt new file mode 100644 index 0000000000000..8bee7390d71a3 --- /dev/null +++ b/drivers/input/touchscreen/ft5336/ft_app_ic_lens_tianma_720p.txt @@ -0,0 +1,1806 @@ +0x2, 0x50,0xe2,0x2, 0x68,0x6e,0xe5,0x74,0x60,0x9, 0x74,0x1, 0x12,0x6e,0x92,0x75, +0x74,0x0, 0x22,0xe4,0x12,0x6e,0x92,0x75,0x74,0x1, 0x22,0x2, 0x50,0x4c,0xe5,0x55, +0xbe,0xb0,0x1, 0x68,0xf9,0x12,0x6e,0x78,0x60,0xfb,0x22,0x2, 0x67,0x5, 0x7e,0x34, +0x10,0x2b,0x12,0x5b,0x2, 0x7e,0x34,0x10,0x2b,0x12,0x64,0xab,0x12,0x6e,0x81,0x60, +0xfb,0x22,0x22,0x2, 0x6e,0x48,0xc2,0x8e,0x75,0x8d,0x0, 0xa9,0x34,0xc9,0x5, 0x75, +0x8b,0xe6,0x80,0x3, 0x75,0x8b,0x78,0xd2,0x8e,0x22,0x32,0x2, 0x63,0x4d,0xbe,0xb0, +0xa, 0x50,0x6, 0xa, 0x2b,0x19,0x72,0x16,0xa2,0x22,0x22,0x2, 0x0, 0x5a,0xe5,0x52, +0x24,0xff,0x22,0x2, 0x67,0x3d,0xca,0x3b,0x7e,0xb3,0xf, 0x1b,0xf5,0x26,0x7e,0xd3, +0xf, 0x1c,0x7e,0x34,0xe, 0xdf,0x7a,0x35,0x33,0x7e,0x34,0x0, 0x27,0x7e,0x24,0x0, +0xa, 0xe4,0x12,0x6d,0xe0,0x6c,0xcc,0x7e,0xa0,0xff,0x7e,0x70,0x7, 0xac,0x7c,0x19, +0xa3,0x13,0xba,0x7e,0x34,0x7f,0xff,0x74,0x7, 0xac,0xbc,0x59,0x35,0x13,0xb6,0x74, +0x7, 0xac,0xbc,0x59,0x35,0x13,0xb8,0xb, 0xc0,0xbe,0xc0,0xa, 0x78,0xd9,0xe5,0x26, +0x60,0x3, 0x2, 0x0, 0xef,0x12,0x6a,0xad,0xbe,0xd0,0x0, 0x38,0x3, 0x2, 0x0, 0xdf, +0x74,0x1, 0x7a,0xb3,0xf, 0x20,0xe4,0x7a,0xb3,0xf, 0x22,0x7a,0xb3,0xf, 0x23,0x7e, +0x34,0x13,0x6, 0x7e,0x24,0x0, 0xa, 0x74,0xff,0x12,0x6d,0xe0,0x2, 0x1, 0x14,0x4c, +0xdd,0x68,0x3, 0x2, 0x1, 0x14,0x75,0x25,0x0, 0x7e,0xa0,0xff,0x7e,0x71,0x25,0x74, +0x7, 0xac,0x7b,0x19,0xa3,0xe, 0x57,0x5, 0x25,0xe5,0x25,0xb4,0xa, 0xeb,0x74,0x1, +0x7a,0xb3,0xf, 0x1f,0x75,0x25,0x0, 0x2, 0x1, 0x4c,0x7e,0x51,0x25,0x74,0x7, 0xac, +0x5b,0x2e,0x24,0xe, 0xd, 0xb, 0x28,0x30,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x3e,0x34, +0x1b,0x28,0x30,0x7e,0x51,0x25,0xac,0x5b,0x2e,0x24,0xe, 0xf, 0xb, 0x28,0x30,0x3e, +0x34,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x1b,0x28,0x30,0x5, 0x25,0xe5,0x26,0xbe,0xb1, +0x25,0x38,0xc7,0xe4,0x6c,0x77,0x7e,0x61,0x26,0x7e,0x24,0x13,0xb6,0x12,0x52,0x98, +0x7e,0x71,0x26,0x7e,0x60,0xa, 0x7e,0x24,0x13,0xb6,0x12,0x52,0x98,0x7c,0xcb,0x6c, +0xee,0x75,0x25,0x0, 0x2, 0x1, 0x92,0x7e,0xa1,0x25,0x74,0x7, 0xa4,0x9, 0x65,0x13, +0xba,0x74,0x7, 0xac,0xbe,0x9, 0x75,0xe, 0x11,0xbc,0x76,0x78,0x3, 0x2, 0x1, 0x97, +0x5, 0x25,0xbe,0xc1,0x25,0x38,0xe0,0xbe,0xc1,0x25,0x68,0x3, 0x2, 0x1, 0xb8,0x7e, +0x70,0x7, 0xac,0x7e,0x2e,0x34,0xe, 0xd, 0x7e,0x30,0x7, 0xac,0x3c,0x2e,0x14,0x13, +0xb6,0x74,0x7, 0x12,0x48,0xc5,0xb, 0xc0,0xb, 0xe0,0xbe,0xe0,0xa, 0x78,0xb2,0x7e, +0x24,0x13,0xb6,0x7e,0x34,0xe, 0x53,0x7e,0x14,0x0, 0x46,0x12,0x6d,0x3c,0x4c,0xdd, +0x68,0x3, 0x2, 0x1, 0xe7,0x7e,0x24,0xe, 0xd, 0x7e,0x34,0xe, 0x53,0x7e,0x14,0x0, +0x46,0x12,0x6d,0x3c,0x2, 0x4, 0x84,0x7e,0xb3,0xf, 0x22,0x60,0x3, 0x2, 0x4, 0x84, +0x6c,0xee,0x2, 0x4, 0x7b,0x75,0x25,0x0, 0x7e,0xa1,0x25,0x74,0x7, 0xa4,0x9, 0x65, +0xe, 0x57,0x7e,0x90,0x7, 0xac,0x9e,0x9, 0x74,0xe, 0x11,0xbc,0x67,0x78,0x3, 0x2, +0x2, 0x1b,0x5, 0x25,0xe5,0x25,0xbe,0xb0,0xa, 0x40,0xdd,0x7e,0xa1,0x25,0x74,0x7, +0xa4,0x9, 0xf5,0xe, 0x57,0x49,0x34,0xe, 0xf, 0x49,0x25,0xe, 0x55,0x12,0x6d,0xb0, +0x7d,0x63,0x74,0x7, 0xac,0xbe,0x49,0x35,0xe, 0xd, 0x7e,0xa1,0x25,0x74,0x7, 0xa4, +0x49,0x25,0xe, 0x53,0x12,0x6d,0xb0,0x7d,0x13,0x2d,0x16,0x7a,0x15,0x21,0x7c,0x1f, +0x2e,0x10,0x27,0x74,0x1, 0xa5,0xf7,0xbe,0x14,0x0, 0x40,0x28,0x3, 0x2, 0x2, 0xd9, +0x7e,0x35,0x21,0xbe,0x34,0x0, 0x20,0x38,0x3, 0x2, 0x2, 0xae,0x7e,0x70,0x3, 0xac, +0x7f,0x9, 0xb3,0x12,0x2, 0x60,0x3, 0x2, 0x2, 0x97,0x9, 0xb3,0x12,0x3, 0xbe,0xb0, +0x0, 0x38,0x3, 0x2, 0x2, 0x89,0x2, 0x2, 0xbf,0x74,0x1, 0x19,0xb3,0x12,0x2, 0x6d, +0x22,0x7a,0x25,0x21,0x2, 0x2, 0xed,0x9, 0xb3,0x12,0x3, 0xbe,0xb0,0xa, 0x40,0x3, +0x2, 0x2, 0xed,0x2e,0x34,0x12,0x3, 0x4, 0x7a,0x39,0xb0,0x2, 0x2, 0xd1,0x7e,0x70, +0x3, 0xac,0x7f,0x9, 0xb3,0x12,0x3, 0xbe,0xb0,0x0, 0x38,0x3, 0x2, 0x2, 0xcc,0x7d, +0x23,0x2e,0x24,0x12,0x3, 0x14,0x7a,0x29,0xb0,0x2, 0x2, 0xed,0xe4,0x19,0xb3,0x12, +0x2, 0x6d,0x33,0x7a,0x35,0x21,0x2, 0x2, 0xed,0x6c,0xaa,0x7e,0x70,0x3, 0xac,0x7f, +0x19,0xa3,0x12,0x3, 0x7e,0x70,0x3, 0xac,0x7f,0x19,0xa3,0x12,0x2, 0x7e,0x35,0x21, +0xbe,0x34,0x0, 0x20,0x28,0x3, 0x2, 0x3, 0x2e,0x7e,0xa1,0x25,0x74,0x7, 0xa4,0x49, +0x35,0xe, 0x53,0x74,0x7, 0xac,0xbe,0x59,0x35,0xe, 0xd, 0x7e,0xa1,0x25,0x74,0x7, +0xa4,0x49,0x35,0xe, 0x55,0x74,0x7, 0xac,0xbe,0x59,0x35,0xe, 0xf, 0x6d,0x33,0x7a, +0x35,0x21,0x7e,0xa0,0x1, 0x7e,0x70,0x3, 0xac,0x7f,0x19,0xa3,0x12,0x1, 0x7e,0xf5, +0x21,0x7a,0xf5,0x23,0xa, 0xef,0x2e,0xe5,0x33,0x7e,0xe9,0xb0,0xb4,0x1, 0x2, 0x80, +0x3, 0x2, 0x3, 0x52,0x6d,0xee,0x74,0x2, 0xac,0xbf,0x59,0xe5,0x11,0xed,0x59,0xe5, +0x12,0x1f,0x7e,0x17,0xf, 0x5d,0xbe,0x15,0x23,0x28,0x3, 0x2, 0x3, 0x68,0x7e,0x4, +0x1, 0x0, 0x7a,0x5, 0x31,0x2, 0x3, 0x8b,0x7e,0x35,0x23,0x6d,0x22,0x7c,0x56,0x7c, +0x67,0x6c,0x77,0x12,0x48,0x3e,0x7d,0xe3,0x7a,0xe5,0x31,0xbe,0xe4,0x0, 0x10,0x40, +0x3, 0x2, 0x3, 0x8b,0x7e,0xe4,0x0, 0x10,0x7a,0xe5,0x31,0x74,0x2, 0xac,0xbf,0x49, +0x45,0x12,0x1f,0xbe,0x45,0x21,0x38,0x3, 0x2, 0x3, 0xa5,0x49,0x45,0x11,0xed,0x7a, +0x45,0x31,0x2, 0x3, 0xac,0x7e,0x45,0x31,0x59,0x45,0x11,0xed,0x59,0xf5,0x12,0x1f, +0x7e,0x35,0x31,0xbe,0x34,0x1, 0x0, 0x38,0x3, 0x2, 0x3, 0xc3,0x7e,0x34,0x1, 0x0, +0x7a,0x35,0x31,0x74,0x7, 0xac,0xbe,0x49,0x35,0xe, 0xd, 0x7e,0xa1,0x25,0x74,0x7, +0xa4,0x49,0x25,0xe, 0x53,0x12,0x6d,0xb0,0x7d,0x23,0x7a,0x25,0x21,0x7e,0x35,0x31, +0xad,0x32,0x7c,0x76,0x7c,0x65,0xa, 0x24,0x7a,0x35,0x21,0x7e,0x51,0x25,0x74,0x7, +0xac,0x5b,0x49,0x32,0xe, 0x53,0xac,0xbe,0x49,0x15,0xe, 0xd, 0xbd,0x13,0x38,0x3, +0x2, 0x4, 0x14,0x7d,0x2, 0x2e,0x4, 0xe, 0x53,0x7d,0x13,0x2e,0x15,0x21,0x1b,0x8, +0x10,0x2, 0x4, 0x1e,0x2e,0x24,0xe, 0x53,0x9e,0x35,0x21,0x1b,0x28,0x30,0x74,0x7, +0xac,0xbe,0x49,0x35,0xe, 0xf, 0x7e,0xa1,0x25,0x74,0x7, 0xa4,0x49,0x25,0xe, 0x55, +0x12,0x6d,0xb0,0x7d,0x23,0x7a,0x25,0x21,0x7e,0x35,0x31,0xad,0x32,0x7c,0x76,0x7c, +0x65,0xa, 0x24,0x7a,0x35,0x21,0x7e,0x51,0x25,0x74,0x7, 0xac,0x5b,0x49,0x32,0xe, +0x55,0xac,0xbe,0x49,0x15,0xe, 0xf, 0xbd,0x13,0x38,0x3, 0x2, 0x4, 0x6f,0x7d,0x2, +0x2e,0x4, 0xe, 0x55,0x7d,0x13,0x2e,0x15,0x21,0x1b,0x8, 0x10,0x2, 0x4, 0x79,0x2e, +0x24,0xe, 0x55,0x9e,0x35,0x21,0x1b,0x28,0x30,0xb, 0xe0,0xe5,0x26,0xbc,0xbe,0x28, +0x3, 0x2, 0x1, 0xf5,0x6c,0xee,0x74,0x7, 0xac,0xbe,0x49,0x45,0xe, 0x53,0x1e,0x44, +0x1e,0x44,0x1e,0x44,0x1e,0x44,0x7a,0x45,0x35,0x49,0x45,0xe, 0x55,0x1e,0x44,0x1e, +0x44,0x1e,0x44,0x1e,0x44,0x7a,0x45,0x37,0x9, 0xf5,0xe, 0x57,0x19,0xf5,0xe, 0x11, +0x74,0x7, 0xac,0xbe,0x9, 0x75,0xe, 0x58,0x19,0x75,0xe, 0x12,0x74,0x7, 0xac,0xbe, +0x9, 0x75,0xe, 0x59,0x19,0x75,0xe, 0x13,0x7c,0xbf,0x54,0xf, 0xbe,0xb0,0xa, 0x40, +0x3, 0x2, 0x5, 0xd7,0x7c,0xfb,0xa, 0xf, 0x7d,0x10,0x2e,0x15,0x33,0x7e,0x19,0xb0, +0xbe,0xb0,0x3, 0x78,0x3, 0x2, 0x5, 0xf4,0xb4,0x1, 0x2, 0x80,0x3, 0x2, 0x4, 0xf9, +0x74,0xff,0x19,0xb0,0x13,0x6, 0x2, 0x5, 0xd7,0x9, 0x90,0x13,0x6, 0xbe,0x90,0xff, +0x68,0x3, 0x2, 0x5, 0x4b,0x74,0x1, 0x19,0xb0,0x13,0x6, 0x7e,0x15,0x35,0x74,0x7, +0xac,0xbe,0x59,0x15,0xe, 0xd, 0x7e,0x15,0x37,0x74,0x7, 0xac,0xbe,0x59,0x15,0xe, +0xf, 0x6c,0xdd,0x7e,0x70,0x7, 0xac,0x7e,0x2e,0x34,0xe, 0xd, 0x7e,0x50,0x7, 0xac, +0x5d,0x7e,0x30,0x15,0xac,0x3f,0x2d,0x12,0x2e,0x14,0x12,0x34,0x74,0x7, 0x12,0x48, +0xc5,0xb, 0xd0,0xbe,0xd0,0x3, 0x78,0xdb,0x2, 0x5, 0xd7,0xbe,0x90,0x3, 0x50,0x3, +0x2, 0x5, 0x58,0xe4,0x19,0xb0,0x13,0x6, 0x7e,0x25,0x35,0x9, 0x80,0x13,0x6, 0x7e, +0x90,0x7, 0xac,0x89,0x7e,0x70,0x15,0xac,0x7f,0x2d,0x43,0x59,0x24,0x12,0x34,0x7e, +0x25,0x37,0x59,0x24,0x12,0x36,0x7e,0xb3,0xf, 0x22,0x60,0x3, 0x2, 0x5, 0xa0,0xe4, +0x2e,0x34,0x12,0x34,0x12,0x67,0xd9,0x74,0x7, 0xac,0xbe,0x59,0x35,0xe, 0xd, 0x74, +0x1, 0x7e,0x70,0x15,0xac,0x7f,0x2e,0x34,0x12,0x34,0x12,0x67,0xd9,0x2, 0x5, 0xc2, +0x49,0x34,0x12,0x34,0x74,0x7, 0xac,0xbe,0x59,0x35,0xe, 0xd, 0xa, 0x3f,0x9, 0x43, +0x13,0x6, 0x7e,0x50,0x7, 0xac,0x45,0x7e,0x70,0x15,0xac,0x7f,0x2d,0x32,0x49,0x33, +0x12,0x36,0x74,0x7, 0xac,0xbe,0x59,0x35,0xe, 0xf, 0xa, 0x3f,0x2e,0x34,0x13,0x6, +0x7e,0x39,0xb0,0x4, 0x7a,0x39,0xb0,0x7c,0x1e,0x2e,0x10,0x27,0xa5,0xe7,0x60,0x3, +0x2, 0x5, 0xf4,0x7e,0x70,0x3, 0xac,0x7e,0x2e,0x34,0x12,0x1, 0x7e,0x24,0x0, 0x3, +0xe4,0x12,0x6d,0xe0,0xb, 0xe0,0xbe,0xe0,0xa, 0x68,0x3, 0x2, 0x4, 0x86,0xe5,0x26, +0xbe,0xb0,0x0, 0x38,0x3, 0x2, 0x6, 0xe, 0x74,0x1, 0x7a,0xb3,0xf, 0x24,0xda,0x3b, +0x22,0xca,0x3b,0x7e,0xe3,0xf, 0x1b,0x4c,0xee,0x78,0x27,0x6c,0xff,0x6d,0x11,0x74, +0x2, 0xac,0xbf,0x59,0x15,0x13,0x56,0x7e,0xa0,0xff,0x7e,0x30,0x7, 0xac,0x3f,0x19, +0xa1,0x13,0x14,0x74,0x2, 0xa, 0x1f,0x19,0xb1,0x13,0x6a,0xb, 0xf0,0xbe,0xf0,0xa, +0x78,0xdb,0x6c,0xff,0x2, 0x7, 0xac,0x74,0x7, 0xac,0xbf,0x9, 0xb5,0xe, 0x11,0x54, +0xf, 0xf5,0x22,0xbe,0xb0,0xa, 0x40,0x3, 0x2, 0x7, 0xaa,0xe5,0x22,0xa, 0x1b,0x9, +0xb1,0xe, 0xdf,0xbe,0xb0,0x1, 0x78,0x3, 0x2, 0x7, 0x85,0x75,0x21,0x0, 0x7e,0x31, +0x21,0x74,0x7, 0xac,0x3b,0x9, 0x71,0x13,0x14,0x7a,0x71,0x23,0xbe,0x71,0x22,0x68, +0x3, 0x2, 0x7, 0x77,0x49,0x21,0x13,0x12,0x74,0x7, 0xac,0xbf,0x49,0x35,0xe, 0xf, +0x9d,0x32,0x12,0x6d,0xd0,0x7d,0x63,0x7e,0xa1,0x21,0x74,0x7, 0xa4,0x49,0x25,0x13, +0x10,0x74,0x7, 0xac,0xbf,0x49,0x35,0xe, 0xd, 0x9d,0x32,0x12,0x6d,0xd0,0x7d,0x3, +0x2d,0x6, 0xe5,0x23,0xa, 0x1b,0x9, 0xa1,0x13,0x6a,0xbe,0xa0,0x0, 0x28,0x18,0x7e, +0x71,0x23,0x74,0x2, 0xac,0x7b,0x59,0x3, 0x13,0x56,0x2e,0x14,0x13,0x6a,0x7c,0xba, +0x14,0x7a,0x19,0xb0,0x2, 0x7, 0xaa,0x7e,0xa1,0x23,0x74,0x2, 0xa4,0x49,0x15,0x13, +0x56,0xbe,0x14,0x0, 0x32,0x28,0x9, 0xbe,0x4, 0x0, 0x32,0x28,0x3, 0x2, 0x7, 0x71, +0x7d,0x41,0x2e,0x44,0x0, 0x32,0xbd,0x40,0x50,0x8, 0xbe,0x14,0x0, 0x32,0x28,0x2, +0x80,0x6f,0xbe,0x4, 0x0, 0x96,0x28,0x63,0xe5,0x22,0xa, 0x1b,0x9, 0xb1,0xe, 0xdf, +0x70,0x4, 0x74,0x3, 0x80,0x2, 0x74,0x1, 0x19,0xb1,0xe, 0xdf,0x7e,0xa0,0x3, 0xe5, +0x22,0xa, 0x1b,0x19,0xa1,0xe, 0xe9,0x7e,0x71,0x21,0x74,0x7, 0xac,0x7b,0x2e,0x34, +0x13,0x10,0x7e,0x14,0x13,0xb6,0x12,0x48,0xc5,0xbe,0xe0,0x0, 0x28,0x2d,0x1b,0xe0, +0x7e,0x70,0x7, 0xac,0x7e,0x2e,0x34,0xe, 0xd, 0x7e,0x30,0x7, 0xac,0x3f,0x2e,0x14, +0xe, 0xd, 0x74,0x7, 0x12,0x48,0xc5,0x7e,0x34,0x13,0xb6,0x7e,0x30,0x7, 0xac,0x3e, +0x2e,0x14,0xe, 0xd, 0x74,0x7, 0x12,0x48,0xc5,0x1b,0xf0,0x7e,0xa1,0x23,0x74,0x2, +0xa4,0x59,0x5, 0x13,0x56,0x80,0x33,0x5, 0x21,0xe5,0x21,0xbe,0xb0,0xa, 0x50,0x3, +0x2, 0x6, 0x6e,0x80,0x25,0x6d,0x11,0x7e,0xa1,0x22,0x74,0x2, 0xa4,0x59,0x15,0x13, +0x56,0x7e,0xa0,0xff,0x7e,0x31,0x22,0x74,0x7, 0xac,0x3b,0x19,0xa1,0x13,0x14,0x7e, +0xa0,0x2, 0xe5,0x22,0xa, 0x1b,0x19,0xa1,0x13,0x6a,0xb, 0xf0,0xbc,0xef,0x28,0x3, +0x2, 0x6, 0x47,0x7a,0xe3,0xf, 0x1b,0x7e,0x24,0xe, 0xd, 0x7e,0x34,0x13,0x10,0x7e, +0x14,0x0, 0x46,0x12,0x6d,0x3c,0xda,0x3b,0x22,0x6c,0xaa,0x7e,0x50,0x2, 0xac,0x5a, +0x7d,0x12,0x2d,0x13,0x9, 0xb1,0x0, 0x1, 0x54,0x3f,0xa, 0xb, 0x3e,0x4, 0x3e,0x4, +0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x7e,0x19,0xb0,0x54,0x3f,0xa, 0x1b,0x4d, +0x10,0x2e,0x24,0x1c,0x36,0x1b,0x28,0x10,0xb, 0xa0,0xbe,0xa0,0x2, 0x40,0xcc,0x22, +0xd2,0x9f,0x6d,0x33,0x89,0x34,0xca,0x3b,0x7d,0x63,0x75,0x24,0xc, 0x75,0x25,0x0, +0x75,0x26,0x17,0x75,0x27,0x0, 0x7e,0x34,0x13,0xd0,0x7e,0x24,0x0, 0x28,0xe4,0x12, +0x6d,0xe0,0x6c,0x66,0x2, 0x8, 0xed,0x74,0x2, 0xac,0xb6,0x9, 0x75,0xd, 0x18,0x7a, +0x71,0x23,0x9, 0xa5,0xd, 0x19,0x1a,0x17,0x7d,0x21,0x1b,0x25,0xb, 0x15,0x7c,0x43, +0x1a,0x1a,0x1b,0x15,0x1a,0xa, 0xb, 0x5, 0x7c,0x21,0xbe,0x50,0x0, 0x58,0x2, 0x6c, +0x55,0x7e,0x73,0x10,0x2b,0xa, 0x7, 0x1b,0x4, 0x1a,0x44,0xbd,0x40,0x8, 0x2, 0x7c, +0x41,0xbe,0x30,0x0, 0x58,0x2, 0x6c,0x33,0x7e,0x73,0x10,0x2c,0xa, 0x7, 0x1b,0x4, +0x1a,0x42,0xbd,0x40,0x8, 0x2, 0x7c,0x21,0xbe,0x51,0x24,0x58,0x3, 0x7a,0x51,0x24, +0xbe,0x41,0x25,0x8, 0x3, 0x7a,0x41,0x25,0xbe,0x31,0x26,0x58,0x3, 0x7a,0x31,0x26, +0xbe,0x21,0x27,0x8, 0x3, 0x7a,0x21,0x27,0x7c,0xf5,0x80,0x4b,0x7c,0xe3,0x80,0x41, +0x1a,0xef,0x7e,0xf4,0x0, 0x18,0xad,0xfe,0x1a,0xe, 0x2d,0xf, 0xe, 0x4, 0xe, 0x4, +0xe, 0x4, 0x7c,0x71,0x7a,0x71,0x21,0x7e,0x10,0x18,0xac,0x1f,0x7c,0xb1,0x2c,0xbe, +0x54,0x7, 0x7e,0x4, 0x0, 0x1, 0x60,0x5, 0x3e,0x4, 0x14,0x78,0xfb,0x7c,0xb1,0xf5, +0x22,0xa, 0x7, 0x2e,0x4, 0x13,0xd0,0x7e,0x9, 0xb0,0x45,0x22,0x7a,0x9, 0xb0,0xb, +0xe0,0xbc,0x2e,0x58,0xbb,0xb, 0xf0,0xbc,0x4f,0x58,0xb1,0xb, 0x60,0x7e,0x73,0xd, +0xf7,0xbc,0x76,0x28,0x3, 0x2, 0x8, 0x27,0xbe,0x70,0x0, 0x38,0x3, 0x2, 0xd, 0x43, +0x7e,0xe1,0x26,0x2, 0xd, 0x3a,0x6c,0xff,0x80,0x1f,0x1a,0x3e,0x3e,0x34,0x1a,0x2f, +0x7e,0x14,0x0, 0x30,0xad,0x12,0x2d,0x31,0x2d,0x36,0xb, 0x38,0x30,0xe, 0x34,0xe, +0x34,0x3e,0x24,0x59,0x32,0x13,0xb6,0xb, 0xf0,0x7e,0x73,0x10,0x2b,0xbc,0x7f,0x18, +0xd9,0x7e,0xf1,0x24,0x2, 0xd, 0x2f,0x1a,0x4f,0x7e,0x14,0x0, 0x18,0xad,0x14,0x1a, +0x3e,0x7d,0x51,0x2d,0x53,0xe, 0x54,0xe, 0x54,0xe, 0x54,0x7c,0xab,0x7a,0xa1,0x21, +0x7e,0x50,0x18,0xac,0x5f,0x7c,0xb5,0x2c,0xbe,0x54,0x7, 0x7e,0x24,0x0, 0x1, 0x60, +0x5, 0x3e,0x24,0x14,0x78,0xfb,0x7c,0xb5,0xf5,0x22,0xa, 0x2a,0x9, 0xb2,0x13,0xd0, +0x55,0x22,0x78,0x3, 0x2, 0xd, 0x2d,0xbe,0xf0,0x3, 0x58,0x3, 0x2, 0x9, 0xfe,0x7e, +0x53,0x10,0x2b,0xa, 0x25,0x1b,0x26,0xbd,0x42,0x18,0x73,0x7d,0xf4,0x3e,0xf4,0x49, +0x5f,0x13,0xba,0x49,0x2f,0x13,0xb2,0x2d,0x25,0x7d,0x52,0x3e,0x54,0x3e,0x24,0x3e, +0x24,0x3e,0x24,0x2d,0x25,0x49,0x5f,0x13,0xbc,0x49,0xef,0x13,0xb0,0x2d,0xe5,0x7d, +0x5e,0x3e,0x54,0x2d,0x5e,0x9d,0x25,0x49,0xef,0x13,0xb8,0x49,0x5f,0x13,0xb4,0x2d, +0x5e,0x7d,0xe5,0x3e,0xe4,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x2d, +0x5e,0x9d,0x25,0x49,0x5f,0x13,0xb6,0x7d,0x5, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x3e, +0x4, 0x7d,0x15,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x3e, +0x14,0x9d,0x10,0x3e,0x54,0x3e,0x54,0x2d,0x51,0x2d,0x52,0x2, 0xb, 0x55,0x4c,0xff, +0x78,0x5d,0x7d,0x24,0x3e,0x24,0x49,0x12,0x13,0xb6,0x7d,0x1, 0x3e,0x4, 0x3e,0x4, +0x3e,0x4, 0x3e,0x4, 0x7d,0x51,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x3e,0x54, +0x3e,0x54,0x2d,0x50,0x7d,0x1, 0x3e,0x4, 0x2d,0x5, 0x2d,0x1, 0x49,0x12,0x13,0xb8, +0x7d,0x51,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x9d,0x5, 0x3e,0x14,0x3e,0x14, +0x3e,0x14,0x9d,0x1, 0x49,0x12,0x13,0xba,0x7d,0x51,0x3e,0x54,0x3e,0x54,0x3e,0x54, +0x2d,0x50,0x9d,0x51,0x49,0x22,0x13,0xbc,0x3e,0x24,0x9d,0x52,0x2, 0xb, 0x55,0xbe, +0xf0,0x1, 0x78,0x69,0x7d,0x4, 0x3e,0x4, 0x49,0x10,0x13,0xb4,0x7d,0x21,0x3e,0x24, +0x3e,0x24,0x3e,0x24,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x2d,0x12,0x49,0x20, +0x13,0xb6,0x7d,0x52,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x3e,0x24,0x3e,0x24, +0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x9d,0x25,0x9d,0x21,0x49,0x10, +0x13,0xb8,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x9d,0x21,0x49,0x10, +0x13,0xba,0x7d,0x51,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x2d,0x51,0x2d,0x52,0x49,0x10, +0x13,0xbc,0x7d,0x21,0x3e,0x24,0x2d,0x21,0x9d,0x52,0x2, 0xb, 0x55,0xbe,0xf0,0x2, +0x68,0x3, 0x2, 0xb, 0x75,0x7d,0x4, 0x3e,0x4, 0x49,0x10,0x13,0xb4,0x7d,0x21,0x3e, +0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x2d,0x21,0x49,0x50,0x13,0xb2,0x7d, +0x15,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x9d,0x15,0x9d,0x12,0x49,0x20,0x13,0xb6,0x7d, +0xf2,0x3e,0xf4,0x3e,0xf4,0x3e,0xf4,0x3e,0xf4,0x7d,0x52,0x3e,0x54,0x3e,0x54,0x3e, +0x54,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x9d,0x5f,0x3e,0x24,0x3e,0x24,0x2d, +0x25,0x2d,0x21,0x49,0x50,0x13,0xb8,0x7d,0x15,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x3e, +0x14,0x3e,0x14,0x2d,0x15,0x9d,0x21,0x49,0x50,0x13,0xba,0x7d,0x15,0x3e,0x14,0x3e, +0x54,0x3e,0x54,0x3e,0x54,0x2d,0x51,0x2d,0x52,0x49,0x10,0x13,0xbc,0x7d,0x21,0x3e, +0x24,0x2d,0x21,0x9d,0x52,0xe, 0x54,0xe, 0x54,0xe, 0x54,0xe, 0x54,0xe, 0x54,0xe, +0x54,0x7d,0x23,0x3e,0x24,0x7e,0x14,0x0, 0x30,0xad,0x14,0x2d,0x21,0x2d,0x26,0x1b, +0x28,0x50,0x2, 0xd, 0x11,0x7e,0xa3,0x10,0x2b,0x7c,0xba,0x24,0xfd,0xbc,0xbf,0x68, +0x3, 0x2, 0xc, 0x11,0x3e,0x44,0x49,0x24,0x13,0xb2,0x7d,0x12,0x3e,0x14,0x3e,0x24, +0x3e,0x24,0x3e,0x24,0x2d,0x21,0x49,0x4, 0x13,0xb0,0x7d,0x10,0x3e,0x14,0x2d,0x10, +0x9d,0x21,0x49,0x4, 0x13,0xb4,0x7d,0x10,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x3e,0x14, +0x3e,0x14,0x2d,0x10,0x9d,0x21,0x49,0x14,0x13,0xb6,0x7d,0xf1,0x3e,0xf4,0x3e,0xf4, +0x3e,0xf4,0x3e,0xf4,0x7d,0x1, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, +0x3e,0x4, 0x3e,0x4, 0x9d,0xf, 0x3e,0x14,0x3e,0x14,0x2d,0x10,0x2d,0x12,0x49,0x4, +0x13,0xb8,0x7d,0x20,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x2d,0x20, +0x9d,0x12,0x49,0x4, 0x13,0xba,0x7d,0x20,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x9d,0x20, +0x2d,0x21,0xe, 0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0x2, 0xd, +0x0, 0x7c,0xba,0x24,0xfe,0xbc,0xbf,0x78,0x76,0x1a,0xf, 0x3e,0x4, 0x49,0x30,0x13, +0xb0,0x7d,0x23,0x3e,0x24,0x2d,0x23,0x49,0x10,0x13,0xb2,0x7d,0x31,0x3e,0x34,0x3e, +0x34,0x3e,0x34,0x2d,0x31,0x9d,0x32,0x49,0x20,0x13,0xb4,0x3e,0x24,0x3e,0x24,0x3e, +0x24,0x3e,0x24,0x3e,0x24,0x9d,0x32,0x49,0x20,0x13,0xb6,0x7d,0x12,0x3e,0x14,0x3e, +0x14,0x3e,0x14,0x3e,0x14,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e, +0x24,0x3e,0x24,0x9d,0x21,0x2d,0x23,0x49,0x30,0x13,0xb8,0x7d,0x13,0x3e,0x14,0x3e, +0x14,0x3e,0x14,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x2d,0x31,0x9d,0x23,0xe, +0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0x1a,0x3e,0x80,0x71,0x7e, +0xb3,0x10,0x2b,0x14,0xbc,0xbf,0x78,0x79,0x1a,0x5f,0x3e,0x54,0x49,0x25,0x13,0xb2, +0x7d,0x32,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x9d,0x32,0x49,0x25,0x13,0xb0,0x3e,0x24, +0x9d,0x32,0x49,0x25,0x13,0xb4,0x7d,0x42,0x3e,0x44,0x3e,0x44,0x3e,0x44,0x3e,0x24, +0x3e,0x24,0x3e,0x24,0x3e,0x24,0x2d,0x24,0x9d,0x32,0x49,0x15,0x13,0xb6,0x7d,0x21, +0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x7d,0x1, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, +0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x2d,0x2, 0x7d,0x21,0x3e,0x24,0x2d,0x20,0x2d,0x21, +0x2d,0x23,0xe, 0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0x1a,0x3e, +0x3e,0x34,0x1a,0xf, 0x7e,0x14,0x0, 0x30,0xad,0x10,0x2d,0x31,0x2d,0x36,0x1b,0x38, +0x20,0x1a,0x1e,0x3e,0x14,0x1a,0x2f,0x7e,0x34,0x0, 0x30,0xad,0x32,0x7d,0x23,0x2d, +0x21,0x2d,0x26,0xb, 0x28,0x30,0x3e,0x34,0x3e,0x34,0x1b,0x28,0x30,0xb, 0xf0,0xe5, +0x25,0xbc,0xbf,0x48,0x3, 0x2, 0x9, 0x37,0xb, 0xe0,0xe5,0x27,0xbc,0xbe,0x48,0x3, +0x2, 0x9, 0x6, 0xda,0x3b,0x22,0xca,0x3b,0x7c,0xfb,0x7e,0xb3,0xd, 0xf7,0xf5,0x2c, +0x75,0x10,0x0, 0xe4,0x7a,0xb3,0x15,0x54,0x7a,0xb3,0x15,0x55,0x6d,0x22,0x7e,0x34, +0x7f,0xff,0x7e,0x67,0xf, 0xda,0x6c,0xee,0xe4,0xa, 0x1e,0x19,0xb1,0x13,0xb6,0x6c, +0xaa,0x7e,0x10,0x2, 0xac,0x1e,0x19,0xa0,0x15,0x2b,0x19,0xb0,0x15,0x2c,0xe5,0x2c, +0xbc,0xbe,0x28,0x24,0x9, 0x20,0xd, 0x18,0x7e,0x30,0x18,0xac,0x23,0x9, 0x10,0xd, +0x19,0xa, 0x1, 0x2d,0x10,0x3e,0x14,0x2d,0x16,0xb, 0x18,0x10,0xbd,0x12,0x48,0x2, +0x7d,0x21,0xbd,0x13,0x18,0x2, 0x7d,0x31,0xb, 0xe0,0xbe,0xe0,0x14,0x78,0xb9,0x2d, +0x32,0xe, 0x34,0xe5,0x2c,0xbe,0xb0,0x2, 0x50,0x3, 0x2, 0x11,0x9d,0x6c,0xee,0x7e, +0x30,0x6, 0xac,0x3e,0x7d,0x51,0x2e,0x54,0x69,0x4e,0x7e,0x44,0x0, 0xff,0xb, 0x2a, +0x20,0xbd,0x23,0x58,0x20,0x7d,0x51,0x2e,0x54,0x69,0x50,0x7e,0x44,0x0, 0xff,0xb, +0x2a,0x20,0x7a,0x25,0x30,0x2e,0x14,0x69,0x52,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0x20, +0x7a,0x25,0x32,0x80,0x7, 0xb, 0xe0,0xbe,0xe0,0x7, 0x40,0xc3,0x6c,0xee,0x2, 0x11, +0x8b,0x7e,0x70,0x2, 0xac,0x7e,0x9, 0xb3,0xd, 0x18,0xf5,0x22,0x9, 0xb3,0xd, 0x19, +0xf5,0x23,0x4c,0xee,0x68,0x8, 0xa, 0x3e,0x9, 0xb3,0x13,0xb6,0x70,0xa, 0xa, 0x3e, +0xb, 0x34,0xa, 0x2e,0x19,0x72,0x13,0xb6,0xe5,0x2c,0x14,0xbc,0xbe,0x78,0x3, 0x2, +0x11,0x94,0xa, 0x5e,0xb, 0x54,0xf5,0x2d,0x2, 0x11,0x7f,0x7e,0x71,0x2d,0x74,0x2, +0xac,0x7b,0x9, 0xa3,0xd, 0x18,0x7a,0xa1,0x24,0x9, 0xb3,0xd, 0x19,0xf5,0x25,0xa, +0x2a,0xe5,0x22,0xa, 0x3b,0x9d,0x32,0x12,0x6d,0xd0,0x7c,0xb7,0xf5,0x2a,0xe5,0x25, +0xa, 0x2b,0xe5,0x23,0xa, 0x3b,0x9d,0x32,0x12,0x6d,0xd0,0x7c,0xb7,0xf5,0x2b,0x75, +0x3d,0x2, 0x75,0x2f,0x0, 0x7e,0x51,0x22,0x74,0x18,0xac,0x5b,0xe5,0x23,0xa, 0x3b, +0x2d,0x23,0x3e,0x24,0x2d,0x26,0xb, 0x28,0x20,0x7a,0x25,0x34,0x7e,0x11,0x24,0x74, +0x18,0xac,0x1b,0xe5,0x25,0xa, 0x1b,0x7d,0x20,0x2d,0x21,0x3e,0x24,0x2d,0x26,0xb, +0x28,0x20,0x7a,0x25,0x36,0x7d,0x52,0x3e,0x54,0x3e,0x54,0x3e,0x54,0xe, 0x54,0xe, +0x54,0xe, 0x54,0xe, 0x54,0x7a,0x55,0x38,0xbe,0x25,0x34,0x8, 0x14,0x7e,0x25,0x34, +0x3e,0x24,0x3e,0x24,0x3e,0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0x7a,0x25, +0x38,0xe5,0x2a,0xbe,0xb0,0x1, 0x38,0x37,0xe5,0x2b,0xbe,0xb0,0x1, 0x38,0x30,0x7c, +0xbf,0x54,0x2, 0xb4,0x2, 0x29,0x2d,0x3, 0x3e,0x4, 0x2d,0x6, 0xb, 0x8, 0x20,0x7e, +0x71,0x22,0x74,0x18,0xac,0x7b,0x2d,0x31,0x3e,0x34,0x2d,0x36,0xb, 0x38,0x30,0x2d, +0x32,0xbe,0x35,0x38,0x18,0x3, 0x2, 0x11,0x13,0x75,0x2f,0x1, 0x2, 0x11,0x13,0xe5, +0x2a,0xbe,0xb0,0x1, 0x38,0xa, 0xe5,0x2b,0xbe,0xb0,0x1, 0x38,0x3, 0x2, 0x11,0x13, +0xe5,0x2a,0xbe,0xb0,0x4, 0x40,0x3, 0x2, 0x11,0x13,0xe5,0x2b,0xbe,0xb0,0x4, 0x40, +0x3, 0x2, 0x11,0x13,0x7c,0xbf,0x54,0x1, 0xb4,0x1, 0x2, 0x80,0x3, 0x2, 0x11,0x13, +0x6d,0x33,0x7a,0x35,0x3a,0x75,0x3c,0x0, 0x85,0x22,0x26,0x85,0x24,0x28,0xe5,0x24, +0xbe,0xb1,0x22,0x50,0x6, 0x85,0x24,0x26,0x85,0x22,0x28,0x85,0x23,0x27,0x85,0x25, +0x29,0xe5,0x25,0xbe,0xb1,0x23,0x50,0x6, 0x85,0x25,0x27,0x85,0x23,0x29,0x75,0x40, +0x0, 0x75,0x41,0x0, 0xe5,0x28,0xbe,0xb1,0x26,0x78,0x21,0x75,0x40,0x1, 0xe5,0x26, +0x60,0x5, 0xe5,0x26,0xb4,0xc, 0x3, 0x75,0x41,0x1, 0xe5,0x26,0xbe,0xb0,0x0, 0x28, +0x2, 0x15,0x26,0xe5,0x28,0xbe,0xb0,0xc, 0x50,0x2, 0x5, 0x28,0xe5,0x29,0xbe,0xb1, +0x27,0x78,0x21,0x75,0x40,0x1, 0xe5,0x27,0x60,0x5, 0xe5,0x27,0xb4,0x17,0x3, 0x75, +0x41,0x1, 0xe5,0x27,0xbe,0xb0,0x0, 0x28,0x2, 0x15,0x27,0xe5,0x29,0xbe,0xb0,0x17, +0x50,0x2, 0x5, 0x29,0x85,0x26,0x3e,0x80,0x78,0x85,0x27,0x3f,0x80,0x6a,0xe5,0x26, +0xbe,0xb1,0x3e,0x68,0x15,0xe5,0x28,0xbe,0xb1,0x3e,0x68,0xe, 0xe5,0x27,0xbe,0xb1, +0x3f,0x68,0x7, 0xe5,0x29,0xbe,0xb1,0x3f,0x78,0x24,0x7e,0x51,0x3e,0x74,0x18,0xac, +0x5b,0xe5,0x3f,0xa, 0x1b,0x2d,0x21,0x3e,0x24,0x2d,0x26,0xb, 0x28,0x20,0xbe,0x24, +0x0, 0x0, 0x8, 0x6, 0x2e,0x25,0x3a,0x7a,0x25,0x3a,0x5, 0x3c,0x80,0x28,0x7e,0x51, +0x3e,0x74,0x18,0xac,0x5b,0xe5,0x3f,0xa, 0x1b,0x2d,0x21,0x3e,0x24,0x2d,0x26,0xb, +0x28,0x20,0xbe,0x25,0x32,0x8, 0xc, 0xe5,0x3d,0xbe,0xb0,0x0, 0x28,0x5, 0x75,0x3d, +0x1, 0x80,0x3, 0x75,0x3d,0x0, 0x5, 0x3f,0xe5,0x29,0xbe,0xb1,0x3f,0x50,0x8f,0x5, +0x3e,0xe5,0x28,0xbe,0xb1,0x3e,0x50,0x81,0x7e,0x51,0x28,0x74,0x18,0xac,0x5b,0xe5, +0x27,0xa, 0x4b,0x2d,0x24,0x3e,0x24,0x2d,0x26,0xb, 0x28,0x50,0x7e,0x25,0x3a,0x9d, +0x25,0x7e,0x31,0x26,0x74,0x18,0xac,0x3b,0xe5,0x29,0xa, 0xb, 0x7d,0x51,0x2d,0x50, +0x3e,0x54,0x2d,0x56,0xb, 0x58,0x50,0x9d,0x25,0x2d,0x14,0x3e,0x14,0x2d,0x16,0xb, +0x18,0x10,0x9d,0x21,0x7e,0x31,0x28,0x74,0x18,0xac,0x3b,0x2d,0x10,0x3e,0x14,0x2d, +0x16,0xb, 0x18,0x10,0x9d,0x21,0x7a,0x25,0x3a,0x7e,0x25,0x36,0x2e,0x25,0x34,0x7a, +0x25,0x38,0xe5,0x40,0xb4,0x1, 0x11,0xe5,0x41,0x70,0xd, 0x7e,0x25,0x3a,0x9e,0x25, +0x38,0x7a,0x25,0x3a,0x15,0x3c,0x15,0x3c,0xe5,0x3c,0xbe,0xb0,0x4, 0x28,0x6, 0xe5, +0x3c,0x24,0xfc,0xf5,0x3c,0x7e,0x25,0x3a,0xbe,0x24,0x0, 0x0, 0x58,0x3, 0x7a,0x35, +0x3a,0x7e,0x15,0x38,0x1a,0x2, 0x1a,0x0, 0x7e,0x35,0x30,0x1a,0x26,0x1a,0x24,0x12, +0x48,0x24,0xe5,0x3c,0xa, 0x1b,0x6d,0x0, 0x12,0x48,0x24,0x7f,0x21,0x7e,0x35,0x3a, +0x1a,0x26,0x1a,0x24,0x7e,0x14,0x0, 0x28,0x12,0x48,0x35,0xbf,0x12,0x8, 0xa, 0xe5, +0x3d,0xbe,0xb0,0x0, 0x28,0x3, 0x75,0x2f,0x2, 0x7e,0xb3,0xd, 0xfd,0xb4,0x1, 0x3, +0x75,0x2f,0x2, 0xe5,0x2f,0xbe,0xb0,0x0, 0x28,0x63,0xe5,0x2f,0xa, 0x3b,0x2e,0x34, +0x15,0x53,0x7e,0x39,0xb0,0x4, 0x7a,0x39,0xb0,0xe5,0x2d,0xa, 0x3b,0x9, 0xb3,0x13, +0xb6,0x70,0xc, 0xa, 0x2e,0x9, 0x52,0x13,0xb6,0x19,0x53,0x13,0xb6,0x80,0x3e,0x75, +0x2e,0x0, 0x80,0x32,0x9, 0x33,0x13,0xb6,0xa, 0x2e,0x9, 0xa2,0x13,0xb6,0xbc,0xa3, +0x28,0x12,0xe5,0x2e,0xa, 0x2b,0x9, 0x22,0x13,0xb6,0xbc,0x2a,0x78,0x16,0x19,0x32, +0x13,0xb6,0x80,0x10,0xe5,0x2e,0xa, 0x2b,0x9, 0xb2,0x13,0xb6,0xbc,0xb3,0x78,0x4, +0x19,0xa2,0x13,0xb6,0x5, 0x2e,0xe5,0x2c,0xbe,0xb1,0x2e,0x38,0xc7,0x5, 0x2d,0xe5, +0x2c,0xbe,0xb1,0x2d,0x28,0x3, 0x2, 0xe, 0x3b,0xb, 0xe0,0xe5,0x2c,0xbc,0xbe,0x28, +0x3, 0x2, 0xe, 0x1, 0x7e,0x34,0x13,0xb6,0x12,0x39,0xc4,0xf5,0x10,0xda,0x3b,0x22, +0xca,0x3b,0x7c,0xf6,0x7c,0xe7,0x7c,0xdb,0x6c,0x33,0x6c,0x44,0x6c,0x22,0x6c,0x55, +0x7e,0x37,0xf, 0x61,0x7a,0x35,0x3e,0x6c,0xaa,0x7e,0x70,0x7, 0xac,0x7f,0x19,0xa3, +0xd, 0x70,0xe4,0x19,0xb3,0xd, 0x71,0xa, 0x5d,0x3e,0x54,0xb, 0x54,0x7c,0xab,0x7e, +0x70,0x2, 0xac,0x7e,0x9, 0xb3,0xd, 0x18,0xf5,0x39,0x9, 0xb3,0xd, 0x19,0xf5,0x3a, +0xbe,0xd1,0x3a,0x28,0x3, 0x2, 0x12,0xe, 0x7e,0xb3,0x10,0x2c,0xa, 0xb, 0x1b,0x4, +0xa, 0x3d,0x9d,0x3, 0xe5,0x3a,0xa, 0x3b,0xbd,0x30,0x8, 0x3, 0x2, 0x12,0xe, 0x7c, +0x3a,0xa, 0x4d,0xe5,0x3a,0xa, 0xb, 0x9d,0x4, 0x7c,0x51,0x2, 0x12,0x59,0xbe,0xd1, +0x3a,0x38,0x3, 0x2, 0x12,0x27,0xe5,0x3a,0xa, 0xb, 0xa, 0x3d,0x2d,0x30,0xb, 0x34, +0x7c,0x37,0x6c,0x55,0x2, 0x12,0x59,0xa, 0xfd,0xe5,0x3a,0xa, 0x4b,0x2d,0xf4,0x7e, +0xb3,0x10,0x2c,0xa, 0xb, 0x7d,0x30,0x1b,0x34,0xbd,0xf3,0x18,0x3, 0x2, 0x12,0x59, +0xbd,0x43,0x8, 0x3, 0x2, 0x12,0x59,0xa, 0x3d,0x2d,0x30,0xe5,0x3a,0xa, 0xb, 0x9d, +0x30,0x7c,0x37,0xa, 0x3d,0x9d,0x3, 0x7c,0x51,0xbe,0xd1,0x39,0x28,0x3, 0x2, 0x12, +0x83,0x7e,0xb3,0x10,0x2b,0xa, 0xb, 0x1b,0x4, 0xa, 0x3d,0x9d,0x3, 0xe5,0x39,0xa, +0x3b,0xbd,0x30,0x8, 0x3, 0x2, 0x12,0x83,0x7c,0x4a,0xa, 0xd, 0xe5,0x39,0xa, 0x3b, +0x2, 0x12,0xca,0xbe,0xd1,0x39,0x38,0x3, 0x2, 0x12,0x9c,0xe5,0x39,0xa, 0xb, 0xa, +0x3d,0x2d,0x30,0xb, 0x34,0x7c,0x47,0x6c,0x22,0x2, 0x12,0xce,0xa, 0x4d,0xe5,0x39, +0xa, 0x5b,0x2d,0x45,0x7e,0x73,0x10,0x2b,0xa, 0x37,0x7d,0x3, 0x1b,0x4, 0xbd,0x40, +0x18,0x3, 0x2, 0x12,0xce,0xbd,0x50,0x8, 0x3, 0x2, 0x12,0xce,0xa, 0xd, 0x2d,0x3, +0xe5,0x39,0xa, 0x3b,0x9d,0x3, 0x7c,0x41,0xa, 0xd, 0x9d,0x30,0x7c,0x27,0x7e,0x37, +0xf, 0xda,0x7c,0xb2,0x7e,0x23,0xf, 0x53,0x7e,0x4, 0x9, 0xc8,0x12,0x5c,0x33,0x7e, +0x37,0x9, 0xc8,0x7d,0x3, 0x6d,0x11,0x7e,0x37,0x9, 0xca,0x7d,0x20,0x7a,0x1d,0x28, +0x7e,0x37,0x9, 0xcc,0x7d,0x3, 0x7e,0x37,0x9, 0xce,0x7d,0x20,0x7a,0x1d,0x2c,0x7e, +0x37,0x9, 0xd0,0x7d,0x3, 0x7e,0x37,0x9, 0xd2,0x7d,0x20,0x7a,0x1d,0x30,0x7e,0x37, +0x9, 0xd4,0x7d,0x3, 0x7e,0x37,0x9, 0xd6,0x7d,0x20,0x7a,0x1d,0x34,0xa, 0x2d,0xe5, +0x39,0xa, 0x3b,0x9d,0x32,0x7c,0xc7,0x2, 0x15,0x24,0xa, 0x4d,0xe5,0x3a,0xa, 0x5b, +0x9d,0x54,0xf5,0x38,0x2, 0x15,0xd, 0xbe,0xc0,0x0, 0x58,0x3, 0x2, 0x15,0xb, 0x7e, +0x73,0x10,0x2b,0xbc,0x7c,0x18,0x3, 0x2, 0x15,0xb, 0xe5,0x38,0xbe,0xb0,0x0, 0x58, +0x3, 0x2, 0x15,0xb, 0x7e,0x73,0x10,0x2c,0xbe,0x71,0x38,0x18,0x3, 0x2, 0x15,0xb, +0xe5,0x38,0x1a,0x1b,0x3e,0x14,0x1a,0x2c,0x7e,0x34,0x0, 0x30,0xad,0x32,0x2d,0x31, +0x2e,0x37,0xf, 0xda,0xb, 0x38,0x30,0x7e,0x53,0xf, 0x53,0xa, 0x25,0x9d,0x32,0x7a, +0x35,0x3c,0xbe,0x34,0x0, 0x0, 0x18,0x3, 0x2, 0x15,0xb, 0x7e,0x35,0x3e,0xbe,0x35, +0x3c,0x28,0x3, 0x2, 0x13,0xa6,0x7e,0x70,0x7, 0xac,0x7f,0x2e,0x34,0xd, 0x71,0x7e, +0x39,0xb0,0x4, 0x7a,0x39,0xb0,0xe5,0x39,0xa, 0x2b,0x1a,0x3c,0x9d,0x32,0x12,0x6d, +0xd0,0xbe,0x34,0x0, 0x1, 0x8, 0x3, 0x2, 0x13,0xd0,0xe5,0x3a,0xa, 0x2b,0xe5,0x38, +0x1a,0x3b,0x9d,0x32,0x12,0x6d,0xd0,0xbe,0x34,0x0, 0x1, 0x18,0x3, 0x2, 0x15,0xb, +0x75,0x3b,0x0, 0x2, 0x14,0x60,0xbe,0xe1,0x3b,0x78,0x3, 0x2, 0x14,0x5e,0xe5,0x3b, +0x1a,0x3b,0x3e,0x34,0x9, 0x73,0xd, 0x18,0xa, 0x27,0x1a,0x3c,0x9d,0x32,0x12,0x6d, +0xd0,0xbe,0x34,0x0, 0x1, 0x8, 0x3, 0x2, 0x14,0x1e,0xe5,0x3b,0x1a,0x3b,0x3e,0x34, +0x9, 0x73,0xd, 0x19,0xa, 0x27,0xe5,0x38,0x1a,0x3b,0x9d,0x32,0x12,0x6d,0xd0,0xbe, +0x34,0x0, 0x1, 0x8, 0x3, 0x2, 0x14,0x1e,0x75,0x3b,0xff,0x2, 0x14,0x6c,0xe5,0x3b, +0x1a,0x3b,0x3e,0x34,0x9, 0x73,0xd, 0x18,0xa, 0x27,0x1a,0x3c,0x9d,0x32,0x12,0x6d, +0xd0,0xbe,0x34,0x0, 0x2, 0x8, 0x3, 0x2, 0x14,0x5e,0xe5,0x3b,0x1a,0x3b,0x3e,0x34, +0x9, 0x73,0xd, 0x19,0xa, 0x27,0xe5,0x38,0x1a,0x3b,0x9d,0x32,0x12,0x6d,0xd0,0xbe, +0x34,0x0, 0x2, 0x8, 0x3, 0x2, 0x14,0x5e,0x75,0x3b,0x0, 0x2, 0x14,0x6c,0x5, 0x3b, +0x7e,0x73,0xd, 0xf7,0xbe,0x71,0x3b,0x8, 0x3, 0x2, 0x13,0xd6,0xe5,0x3b,0x60,0x3, +0x2, 0x14,0xc0,0x7e,0x35,0x3c,0x7d,0x23,0xe, 0x24,0x9d,0x32,0x7a,0x35,0x3c,0x7e, +0xf5,0x3c,0x7d,0x3f,0x1a,0x36,0x1a,0xe6,0x1a,0x1c,0x1a,0x2, 0x7f,0x17,0x12,0x48, +0x24,0x7f,0x1, 0x7e,0x1d,0x2c,0x9f,0x10,0x7a,0x1d,0x2c,0xe5,0x38,0x1a,0x1b,0x1a, +0x2, 0x7f,0x17,0x12,0x48,0x24,0x7f,0x1, 0x7e,0x1d,0x34,0x9f,0x10,0x7a,0x1d,0x34, +0x7e,0x1d,0x28,0x9f,0x17,0x7a,0x1d,0x28,0x7e,0x1d,0x30,0x9f,0x17,0x7a,0x1d,0x30, +0xe5,0x3b,0xb4,0xff,0x2, 0x80,0x3, 0x2, 0x15,0xb, 0x7e,0xf5,0x3c,0x7d,0x3f,0x1a, +0x36,0x1a,0xe6,0x1a,0x1c,0x1a,0x2, 0x7f,0x17,0x12,0x48,0x24,0x7f,0x1, 0x7e,0x1d, +0x2c,0x9f,0x10,0x7a,0x1d,0x2c,0xe5,0x38,0x1a,0x1b,0x1a,0x2, 0x7f,0x17,0x12,0x48, +0x24,0x7f,0x1, 0x7e,0x1d,0x34,0x9f,0x10,0x7a,0x1d,0x34,0x7e,0x1d,0x28,0x9f,0x17, +0x7a,0x1d,0x28,0x7e,0x1d,0x30,0x9f,0x17,0x7a,0x1d,0x30,0x5, 0x38,0xa, 0x2d,0xe5, +0x3a,0xa, 0x3b,0x2d,0x32,0x1a,0x27,0xe5,0x38,0x1a,0x3b,0xbd,0x32,0x18,0x3, 0x2, +0x13,0x37,0xb, 0xc0,0xa, 0x2d,0xe5,0x39,0xa, 0x3b,0x2d,0x32,0x1a,0x27,0x1a,0x3c, +0xbd,0x32,0x18,0x3, 0x2, 0x13,0x2a,0x74,0x6, 0x7e,0x1d,0x2c,0x2f,0x11,0x14,0x78, +0xfb,0x7a,0x1d,0x2c,0x7e,0xd, 0x28,0x7e,0x1d,0x2c,0x12,0x48,0x40,0x2e,0x34,0x0, +0x20,0x7e,0xd0,0x7, 0xac,0xdf,0x59,0x36,0xd, 0x6b,0x74,0x6, 0x7e,0x1d,0x34,0x2f, +0x11,0x14,0x78,0xfb,0x7a,0x1d,0x34,0x7e,0x7d,0x30,0x7e,0x1d,0x34,0x7f,0x7, 0x12, +0x48,0x40,0x2e,0x34,0x0, 0x20,0x59,0x36,0xd, 0x6d,0x7e,0xb3,0xf, 0x60,0x7f,0x17, +0x70,0x3, 0x2, 0x15,0x91,0x1e,0x34,0x1e,0x24,0x50,0x3, 0x4e,0x60,0x80,0x14,0x78, +0xf4,0x7a,0x1d,0x30,0xbe,0x18,0x0, 0x7f,0x38,0x3, 0x2, 0x15,0xa4,0x7e,0x18,0x0, +0x7f,0x7a,0x1d,0x30,0x7e,0x2d,0x30,0x7c,0xab,0x7e,0x70,0x7, 0xac,0x7f,0x19,0xa3, +0xd, 0x70,0x74,0x7, 0xac,0xbe,0x9, 0xa5,0xd, 0x71,0x7e,0x70,0x7, 0xac,0x7f,0x19, +0xa3,0xd, 0x71,0x74,0x7, 0xac,0xbf,0x9, 0x75,0xd, 0x71,0xbe,0x70,0xf, 0x38,0x3, +0x2, 0x15,0xdf,0x7e,0xa0,0xf, 0x7e,0x70,0x7, 0xac,0x7f,0x19,0xa3,0xd, 0x71,0xda, +0x3b,0x22,0xca,0x3b,0x7c,0x6b,0xbe,0x60,0x3, 0x40,0x6, 0x74,0x1, 0x7a,0xb3,0x11, +0x96,0xa5,0xbe,0x1, 0x58,0x7e,0xa3,0x10,0x2b,0xbc,0xa7,0x28,0xd, 0x7a,0x71,0xd, +0x74,0x30,0xac,0x7b,0x2e,0x37,0x16,0x9e,0x80,0x3c,0x7a,0x71,0xd, 0xbc,0xa7,0x78, +0x6, 0x7e,0x34,0x8, 0x9a,0x80,0x2f,0xa, 0x2a,0x7d,0x2, 0xb, 0x4, 0xa, 0x17,0xbd, +0x10,0x78,0x6, 0x7e,0x34,0x8, 0xca,0x80,0x1d,0x7d,0x2, 0xb, 0x5, 0xbd,0x10,0x78, +0x6, 0x7e,0x34,0x9, 0x2e,0x80,0xf, 0x2e,0x24,0x0, 0x3, 0xbd,0x12,0x68,0x3, 0x2, +0x19,0x6a,0x7e,0x34,0x9, 0x5e,0x7a,0x37,0x16,0x4f,0x2, 0x19,0x6a,0xa5,0xbe,0x0, +0x46,0x7e,0x64,0x0, 0xb, 0x7a,0x69,0x70,0x7c,0xb7,0x54,0x70,0xc4,0x54,0xf, 0x7c, +0x7b,0x4c,0x77,0x68,0x4, 0xa5,0xbf,0x1, 0x15,0x7e,0xb3,0x10,0xa5,0xb4,0x3, 0x7, +0x74,0x1, 0x7e,0x70,0x1, 0x80,0x36,0x74,0x27,0x7e,0x70,0x1, 0x80,0x13,0x7e,0xb3, +0x10,0xa5,0xb4,0x3, 0x7, 0x74,0x1, 0x7e,0x70,0x3, 0x80,0x21,0x74,0x27,0x7e,0x70, +0x3, 0x12,0x6d,0x9f,0x2, 0x19,0x6a,0xa5,0xbe,0x2, 0x23,0xa5,0xbf,0x4, 0x7, 0x74, +0x1, 0x7e,0x70,0x4, 0x80,0x7, 0xa5,0xbf,0x5, 0x9, 0xe4,0x6c,0x77,0x12,0x0, 0x5e, +0x2, 0x19,0x6a,0xbe,0x70,0x1, 0x50,0x3, 0x2, 0x19,0x6a,0x2, 0x19,0x6a,0xa5,0xbe, +0x3, 0x15,0xbe,0x70,0xd, 0x28,0x9, 0x74,0xd, 0x7a,0xb3,0x10,0x2b,0x2, 0x19,0x6a, +0x7a,0x73,0x10,0x2b,0x2, 0x19,0x6a,0xa5,0xbe,0x4, 0x15,0xbe,0x70,0x18,0x28,0x9, +0x74,0x18,0x7a,0xb3,0x10,0x2c,0x2, 0x19,0x6a,0x7a,0x73,0x10,0x2c,0x2, 0x19,0x6a, +0xa5,0xbe,0x5, 0x7, 0x7a,0x73,0x10,0x2d,0x2, 0x19,0x6a,0xa5,0xbe,0x7, 0x1e,0x7a, +0x73,0x10,0x4b,0x7c,0xb7,0x54,0x3f,0xa, 0x2b,0x3e,0x24,0x3e,0x24,0x7e,0x37,0x10, +0x54,0x5e,0x70,0x3, 0x4d,0x32,0x7a,0x37,0x10,0x54,0x2, 0x19,0x6a,0xa5,0xbe,0x8, +0x14,0x7e,0xb3,0x10,0x3b,0x70,0x7, 0x7a,0x73,0xa, 0xac,0x2, 0x19,0x6a,0x7a,0x73, +0x11,0x16,0x2, 0x19,0x6a,0xa5,0xbe,0x9, 0x1c,0xbe,0x70,0xa, 0x50,0x3, 0x7e,0x70, +0xa, 0x7e,0xb3,0x10,0x3b,0x70,0x7, 0x7a,0x73,0xa, 0xad,0x2, 0x19,0x6a,0x7a,0x73, +0x11,0x49,0x2, 0x19,0x6a,0xa5,0xbe,0xa, 0x10,0xa5,0xbf,0x0, 0x3, 0xe4,0x80,0x2, +0x74,0x1, 0x7a,0xb3,0x10,0x3b,0x2, 0x19,0x6a,0xa5,0xbe,0xb, 0x14,0x7e,0xb3,0x10, +0x3b,0x70,0x7, 0x7a,0x73,0xa, 0xae,0x2, 0x19,0x6a,0x7a,0x73,0x11,0x94,0x2, 0x19, +0x6a,0xa5,0xbe,0xc, 0x14,0x7e,0xb3,0x10,0x3b,0x70,0x7, 0x7a,0x73,0xd, 0xfe,0x2, +0x19,0x6a,0x7a,0x73,0x11,0x9d,0x2, 0x19,0x6a,0xa5,0xbe,0x4c,0x7, 0x7a,0x73,0xf, +0x46,0x2, 0x19,0x6a,0xa5,0xbe,0xfb,0x29,0x7a,0x71,0x8, 0x7e,0x37,0x10,0x50,0x5e, +0x70,0xdf,0x7a,0x37,0x10,0x50,0xe5,0x8, 0x54,0x1, 0xa, 0x3b,0x3e,0x34,0x3e,0x34, +0x3e,0x34,0x3e,0x34,0x3e,0x34,0x4e,0x37,0x10,0x50,0x7a,0x37,0x10,0x50,0x2, 0x19, +0x6a,0xa5,0xbe,0x4e,0x7, 0x7a,0x73,0x10,0x4a,0x2, 0x19,0x6a,0xa5,0xbe,0x4f,0x6, +0x12,0x0, 0x6, 0x2, 0x19,0x6a,0xbe,0x60,0x50,0x40,0x12,0xbe,0x60,0x51,0x38,0xd, +0xa, 0x26,0x2e,0x27,0x10,0x2f,0x9e,0x24,0x0, 0x50,0x2, 0x19,0x54,0xbe,0x60,0x52, +0x40,0x12,0xbe,0x60,0x55,0x38,0xd, 0xa, 0x26,0x2e,0x27,0x10,0x31,0x9e,0x24,0x0, +0x52,0x2, 0x19,0x54,0xbe,0x60,0x56,0x40,0x12,0xbe,0x60,0x62,0x38,0xd, 0xa, 0x26, +0x2e,0x27,0x10,0x33,0x9e,0x24,0x0, 0x56,0x2, 0x19,0x54,0xbe,0x60,0x63,0x40,0x12, +0xbe,0x60,0x7a,0x38,0xd, 0xa, 0x26,0x2e,0x27,0x10,0x35,0x9e,0x24,0x0, 0x63,0x2, +0x19,0x54,0xbe,0x60,0x7b,0x50,0x3, 0x2, 0x18,0xe8,0xbe,0x60,0x9f,0x28,0x3, 0x2, +0x18,0xe8,0x7e,0xb3,0x10,0x3b,0x70,0x48,0xa, 0x26,0x9e,0x24,0x0, 0x7b,0xbe,0x24, +0x0, 0x18,0x58,0x20,0xa, 0x26,0x2e,0x27,0x10,0x35,0x9e,0x24,0x0, 0x7b,0x7e,0x29, +0xf0,0x7c,0xbf,0x30,0xe0,0xa, 0xa, 0x7f,0x2e,0x74,0x0, 0x18,0xe, 0x74,0x80,0x17, +0x1e,0xf0,0x80,0x13,0xa, 0x26,0x2e,0x27,0x10,0x33,0x9e,0x24,0x0, 0x93,0x7e,0x29, +0x60,0xa, 0x76,0x2e,0x74,0x0, 0x18,0xa, 0x2f,0x19,0x72,0xf, 0xdc,0x2, 0x19,0x6a, +0xa, 0x26,0x9e,0x24,0x0, 0x7b,0xbe,0x24,0x0, 0x18,0x58,0x20,0xa, 0x26,0x2e,0x27, +0x10,0x35,0x9e,0x24,0x0, 0x7b,0x7e,0x29,0xf0,0x7c,0xbf,0x30,0xe0,0xa, 0xa, 0x7f, +0x2e,0x74,0x0, 0x18,0xe, 0x74,0x80,0x17,0x1e,0xf0,0x80,0x13,0xa, 0x26,0x2e,0x27, +0x10,0x33,0x9e,0x24,0x0, 0x93,0x7e,0x29,0x60,0xa, 0x76,0x2e,0x74,0x0, 0x18,0xa, +0x2f,0x19,0x72,0xf, 0x63,0x2, 0x19,0x6a,0xbe,0x60,0xa0,0x40,0x11,0xbe,0x60,0xac, +0x38,0xc, 0xa, 0x26,0x2e,0x27,0x10,0x6c,0x9e,0x24,0x0, 0xa0,0x80,0x56,0xbe,0x60, +0xad,0x40,0x11,0xbe,0x60,0xb9,0x38,0xc, 0xa, 0x26,0x2e,0x27,0x10,0x6e,0x9e,0x24, +0x0, 0xad,0x80,0x40,0xbe,0x60,0xba,0x40,0x11,0xbe,0x60,0xd1,0x38,0xc, 0xa, 0x26, +0x2e,0x27,0x10,0x70,0x9e,0x24,0x0, 0xba,0x80,0x2a,0xbe,0x60,0xd2,0x40,0x11,0xbe, +0x60,0xd5,0x38,0xc, 0xa, 0x26,0x2e,0x27,0x10,0x72,0x9e,0x24,0x0, 0xd2,0x80,0x14, +0xbe,0x60,0xd6,0x40,0x14,0xbe,0x60,0xed,0x38,0xf, 0xa, 0x26,0x2e,0x27,0x10,0x74, +0x9e,0x24,0x0, 0xd6,0x7a,0x29,0x70,0x80,0x11,0xa5,0xbe,0xf8,0x6, 0x7a,0x73,0x11, +0xe8,0x80,0x7, 0xa5,0xbe,0xfe,0x3, 0x7a,0x71,0xc, 0xda,0x3b,0x22,0xca,0x3b,0xe4, +0x7a,0xb3,0x13,0xde,0x7e,0x34,0xe, 0xdf,0x7a,0x35,0x23,0x6c,0xee,0x7e,0xa0,0xff, +0x7e,0x70,0x7, 0xac,0x7e,0x19,0xa3,0xe, 0x11,0x74,0xff,0xa, 0x3e,0x19,0xb3,0x13, +0xca,0x7e,0x34,0xff,0xff,0x74,0x2, 0xac,0xbe,0x59,0x35,0x13,0xb6,0xe4,0xa, 0x3e, +0x19,0xb3,0x13,0xd4,0xb, 0xe0,0xbe,0xe0,0xa, 0x78,0xd2,0x7e,0xb3,0xf, 0x1b,0x60, +0x3, 0x2, 0x19,0xe5,0x7e,0xb3,0xf, 0x1c,0x70,0x3, 0x2, 0x1b,0xfc,0x6c,0xee,0x7e, +0x34,0xff,0xff,0x7e,0x50,0x2, 0xac,0x5e,0x2e,0x25,0x23,0x59,0x32,0x0, 0x14,0x7e, +0x50,0x2, 0xac,0x5e,0x2e,0x25,0x23,0x59,0x32,0x0, 0x28,0xb, 0xe0,0xbe,0xe0,0xa, +0x78,0xdd,0x2, 0x1b,0xfc,0x7e,0xb3,0xf, 0x1c,0x60,0x3, 0x2, 0x1a,0x38,0x6c,0xee, +0x2, 0x1a,0x2d,0x74,0x7, 0xac,0xbe,0x49,0x35,0xe, 0xd, 0x7e,0x50,0x2, 0xac,0x5e, +0x2e,0x25,0x23,0x59,0x32,0x0, 0x14,0x74,0x7, 0xac,0xbe,0x49,0x35,0xe, 0xf, 0x7e, +0x50,0x2, 0xac,0x5e,0x2e,0x25,0x23,0x59,0x32,0x0, 0x28,0x74,0x7, 0xac,0xbe,0x19, +0xe5,0xe, 0x11,0x74,0x1, 0xa, 0x3e,0x19,0xb3,0x13,0xd4,0xb, 0xe0,0x7e,0x73,0xf, +0x1b,0xbc,0x7e,0x38,0xbe,0x2, 0x1b,0xfc,0x6c,0xee,0x2, 0x1a,0x9e,0x6c,0xff,0x7e, +0x70,0x2, 0xac,0x7f,0x2e,0x35,0x23,0x49,0x23,0x0, 0x28,0x74,0x7, 0xac,0xbe,0x49, +0x35,0xe, 0xf, 0x9d,0x32,0x12,0x6d,0xd0,0x7d,0x63,0x7e,0x70,0x2, 0xac,0x7f,0x2e, +0x35,0x23,0x49,0x23,0x0, 0x14,0x74,0x7, 0xac,0xbe,0x49,0x35,0xe, 0xd, 0x9d,0x32, +0x12,0x6d,0xd0,0x2d,0x36,0x7a,0x35,0x21,0x74,0x2, 0xac,0xbe,0x49,0x45,0x13,0xb6, +0xbe,0x45,0x21,0x38,0x3, 0x2, 0x1a,0x95,0xa, 0x4e,0x19,0xf4,0x13,0xca,0x7e,0x35, +0x21,0x59,0x35,0x13,0xb6,0xb, 0xf0,0xbe,0xf0,0xa, 0x78,0xa3,0xb, 0xe0,0x7e,0x73, +0xf, 0x1b,0xbc,0x7e,0x38,0x97,0x6c,0xee,0x2, 0x1b,0x52,0x74,0x1, 0x7a,0xb3,0x13, +0xde,0x6c,0xff,0x2, 0x1a,0xf1,0xbc,0xfe,0x78,0x3, 0x2, 0x1a,0xef,0xa, 0x3f,0x9, +0x63,0x13,0xca,0xa, 0x2e,0x9, 0x72,0x13,0xca,0xbc,0x76,0x68,0x3, 0x2, 0x1a,0xef, +0x74,0x2, 0xac,0xbf,0x49,0x25,0x13,0xb6,0x74,0x2, 0xac,0xbe,0x49,0x35,0x13,0xb6, +0xbd,0x32,0x50,0x3, 0x2, 0x1a,0xef,0xe4,0x7a,0xb3,0x13,0xde,0x2, 0x1a,0xf9,0xb, +0xf0,0x7e,0x73,0xf, 0x1b,0xbc,0x7f,0x38,0xbd,0x7e,0xb3,0x13,0xde,0xb4,0x1, 0x2, +0x80,0x3, 0x2, 0x1b,0x50,0x74,0x1, 0xa, 0x3e,0x9, 0xa3,0x13,0xca,0xa, 0x4a,0x19, +0xb4,0x13,0xd4,0x7e,0x70,0x7, 0xac,0x7e,0x19,0xa3,0xe, 0x11,0x74,0x7, 0xac,0xbe, +0x49,0x35,0xe, 0xd, 0xa, 0x2e,0x9, 0x42,0x13,0xca,0x7e,0x50,0x2, 0xac,0x45,0x2e, +0x25,0x23,0x59,0x32,0x0, 0x14,0x74,0x7, 0xac,0xbe,0x49,0x35,0xe, 0xf, 0xa, 0x2e, +0x9, 0x42,0x13,0xca,0x7e,0x50,0x2, 0xac,0x45,0x2e,0x25,0x23,0x59,0x32,0x0, 0x28, +0xb, 0xe0,0x7e,0x73,0xf, 0x1b,0xbc,0x7e,0x28,0x3, 0x2, 0x1a,0xab,0x6c,0xee,0x2, +0x1b,0xc1,0x74,0x7, 0xac,0xbe,0x9, 0xb5,0xe, 0x11,0xb4,0xff,0x2, 0x80,0x3, 0x2, +0x1b,0xbf,0x6c,0xff,0xa, 0x3f,0x9, 0xb3,0x13,0xd4,0x60,0x3, 0x2, 0x1b,0xb8,0x74, +0x1, 0x19,0xb3,0x13,0xd4,0x74,0x7, 0xac,0xbe,0x49,0x35,0xe, 0xd, 0x7e,0x50,0x2, +0xac,0x5f,0x2e,0x25,0x23,0x59,0x32,0x0, 0x14,0x74,0x7, 0xac,0xbe,0x49,0x35,0xe, +0xf, 0x7e,0x50,0x2, 0xac,0x5f,0x2e,0x25,0x23,0x59,0x32,0x0, 0x28,0x74,0x7, 0xac, +0xbe,0x19,0xf5,0xe, 0x11,0x2, 0x1b,0xbf,0xb, 0xf0,0xbe,0xf0,0xa, 0x40,0xb5,0xb, +0xe0,0x7e,0x73,0xf, 0x1b,0xbc,0x7e,0x38,0x99,0x6c,0xee,0xa, 0x3e,0x9, 0xb3,0x13, +0xd4,0xbe,0xb0,0x1, 0x78,0x3, 0x2, 0x1b,0xf5,0x7e,0x34,0xff,0xff,0x7e,0x50,0x2, +0xac,0x5e,0x2e,0x25,0x23,0x59,0x32,0x0, 0x14,0x7e,0x50,0x2, 0xac,0x5e,0x2e,0x25, +0x23,0x59,0x32,0x0, 0x28,0xb, 0xe0,0xbe,0xe0,0xa, 0x78,0xcf,0x7e,0xf3,0xf, 0x1b, +0x6c,0xee,0xa, 0x3e,0x9, 0xb3,0x13,0xd4,0xb4,0x1, 0x2, 0x80,0x3, 0x2, 0x1c,0x4e, +0xa, 0x3e,0x2e,0x35,0x23,0x9, 0xb3,0x0, 0xa, 0xb4,0x1, 0x2, 0x80,0x3, 0x2, 0x1c, +0x27,0x74,0x3, 0x19,0xb3,0x0, 0xa, 0xa, 0x3e,0x2e,0x35,0x23,0x9, 0xa3,0x0, 0xa, +0xbe,0xa0,0x3, 0x68,0x3, 0x2, 0x1c,0x3f,0xe4,0x7a,0x39,0xb0,0x2, 0x1c,0x7c,0x4c, +0xaa,0x68,0x3, 0x2, 0x1c,0x7c,0x74,0x2, 0x7a,0x39,0xb0,0x2, 0x1c,0x7c,0xa, 0x3e, +0x2e,0x35,0x23,0x9, 0xb3,0x0, 0xa, 0xbe,0xb0,0x2, 0x78,0x3, 0x2, 0x1c,0x64,0x60, +0x3, 0x2, 0x1c,0x77,0x74,0x1, 0x7a,0x39,0xb0,0x7c,0xaf,0xb, 0xf0,0x74,0x7, 0xa4, +0x19,0xe5,0xe, 0x11,0x2, 0x1c,0x7c,0x74,0x3, 0x7a,0x39,0xb0,0xa, 0x2e,0x2e,0x25, +0x23,0x7e,0x29,0x70,0x19,0x72,0x0, 0xa, 0xb, 0xe0,0xbe,0xe0,0xa, 0x50,0x3, 0x2, +0x1c,0x2, 0xda,0x3b,0x22,0xca,0x3b,0x75,0x24,0x0, 0x75,0x26,0x0, 0x75,0x27,0x0, +0x75,0x28,0x0, 0x7e,0x34,0xe, 0xdf,0x7a,0x35,0x2a,0x7e,0xa3,0xf, 0x24,0x4c,0xaa, +0x78,0xf, 0x7e,0xb3,0xf, 0x20,0x70,0x9, 0x7e,0xb3,0xf, 0x21,0x70,0x3, 0x2, 0x1f, +0x54,0x4c,0xaa,0x78,0x11,0x7e,0xb3,0xf, 0x20,0x60,0x16,0x80,0x9, 0x7e,0x73,0x0, +0xff,0xbe,0x70,0xf, 0x38,0x6, 0x7e,0xb3,0x0, 0x8b,0x60,0xf1,0xe4,0x7a,0xb3,0x0, +0x8b,0x20,0x0, 0x6, 0x7e,0x74,0x15,0xca,0x80,0x4, 0x7e,0x74,0x16,0xc, 0x7d,0x37, +0x7e,0x24,0x0, 0x42,0x74,0xff,0x12,0x6d,0xe0,0x74,0xaa,0x7a,0x79,0xb0,0x19,0xb7, +0x0, 0x1, 0x7e,0x73,0xf, 0x1d,0x19,0x77,0x0, 0x3, 0x75,0x25,0x0, 0x6c,0xdd,0x2, +0x1e,0xe1,0x7e,0x70,0x7, 0xac,0x7d,0x9, 0xa3,0xe, 0x9d,0x7a,0xa1,0x29,0x7c,0xba, +0x54,0xf, 0xa, 0x2b,0x2e,0x25,0x2a,0x7e,0x29,0xc0,0x7c,0xba,0x54,0xf0,0xbe,0xb0, +0x0, 0x28,0x13,0xb4,0xb0,0x2, 0x80,0x3, 0x2, 0x1e,0xdf,0x53,0x29,0xf, 0xbe,0xc0, +0x1, 0x68,0x3, 0x2, 0x1e,0xdf,0xbe,0xc0,0x3, 0x78,0x3, 0x2, 0x1e,0xdf,0x7e,0xa1, +0x25,0x74,0x6, 0xa4,0xf5,0x21,0x9, 0xb3,0xe, 0x9e,0xf5,0x27,0x74,0x7, 0xac,0xbd, +0x9, 0xb5,0xe, 0x9f,0xc4,0x54,0xf0,0xf5,0x28,0x7e,0x73,0xf, 0x46,0xbe,0x71,0x29, +0x28,0x68,0x7e,0xb3,0xf, 0x22,0x70,0x2a,0x7e,0x8, 0x0, 0x27,0xe5,0x29,0xa, 0x3b, +0x2e,0x34,0x0, 0x77,0x74,0x1, 0x7e,0x50,0xf, 0x12,0x5f,0x76,0x7e,0x8, 0x0, 0x28, +0xe5,0x29,0xa, 0x3b,0x2e,0x34,0x0, 0x81,0x74,0x10,0x7e,0x50,0x20,0x12,0x5f,0x76, +0x80,0x14,0xe5,0x29,0xa, 0x3b,0x9, 0xb3,0x0, 0x77,0xf5,0x27,0xe5,0x29,0xa, 0x3b, +0x9, 0xb3,0x0, 0x81,0xf5,0x28,0xe5,0x29,0xa, 0x3b,0x7d,0x23,0x2e,0x25,0x2a,0x7e, +0x29,0xb0,0xb4,0x1, 0x15,0xe4,0x19,0xb3,0x0, 0x77,0x6c,0xaa,0xe5,0x29,0xa, 0x3b, +0x19,0xa3,0x0, 0x81,0x75,0x27,0x0, 0x75,0x28,0x0, 0x7e,0xb3,0xf, 0x5f,0xb4,0xff, +0x15,0x74,0x7, 0xac,0xbd,0x9, 0xb5,0xe, 0x9d,0xbe,0xb0,0xff,0x68,0x5, 0x75,0x27, +0x1, 0x80,0x3, 0x75,0x27,0x0, 0x7e,0x90,0x7, 0xac,0x9d,0x49,0x54,0xe, 0x99,0x7a, +0x55,0x2c,0x49,0x54,0xe, 0x9b,0x7a,0x55,0x2e,0xbe,0xc0,0x1, 0x78,0x2e,0x75,0x30, +0x0, 0x7e,0x71,0x30,0x74,0x7, 0xac,0x7b,0x9, 0xb3,0x0, 0x90,0x54,0xf, 0xbe,0xb1, +0x29,0x78,0x10,0x49,0x23,0x0, 0x8c,0x7a,0x25,0x2c,0x49,0x53,0x0, 0x8e,0x7a,0x55, +0x2e,0x80,0x9, 0x5, 0x30,0xe5,0x30,0xbe,0xb0,0xa, 0x40,0xd5,0x7e,0x25,0x2c,0x7a, +0x25,0x22,0xa, 0x54,0x5e,0x54,0x0, 0xf, 0x7c,0xab,0xe5,0x21,0xa, 0x3b,0x7d,0x13, +0x2d,0x17,0x19,0xa1,0x0, 0x5, 0x7d,0x53,0x2d,0x57,0x19,0x55,0x0, 0x6, 0x7e,0x25, +0x2e,0x7a,0x25,0x22,0xa, 0x14,0x5e,0x14,0x0, 0xf, 0x7d,0x53,0x2d,0x57,0x19,0x35, +0x0, 0x7, 0x7d,0x53,0x2d,0x57,0x19,0x55,0x0, 0x8, 0xe5,0x27,0x7d,0x23,0x2d,0x27, +0x19,0xb2,0x0, 0x9, 0xe5,0x28,0x7d,0x23,0x2d,0x27,0x19,0xb2,0x0, 0xa, 0x9, 0xa4, +0xe, 0x9d,0x7c,0xba,0xc4,0x54,0xf0,0x7c,0x3b,0x7d,0x23,0x2d,0x27,0x2e,0x24,0x0, +0x7, 0x7e,0x29,0xb0,0x2c,0xb3,0x7a,0x29,0xb0,0xbe,0xa0,0xff,0x68,0x21,0xbe,0xc0, +0x1, 0x68,0x2, 0x5, 0x24,0x5, 0x26,0x7c,0xbc,0x3, 0x3, 0x54,0xc0,0x7d,0x13,0x2d, +0x17,0x2e,0x14,0x0, 0x5, 0x7e,0x19,0x50,0x2c,0x5b,0x7a,0x19,0x50,0x80,0xe, 0x2d, +0x37,0x2e,0x34,0x0, 0x5, 0x7e,0x39,0xb0,0x24,0xc0,0x7a,0x39,0xb0,0x5, 0x25,0xb, +0xd0,0x7e,0x73,0xf, 0x46,0xbc,0x7d,0x28,0x3, 0x2, 0x1d,0x12,0xe5,0x24,0x19,0xb7, +0x0, 0x4, 0xe5,0x26,0xbe,0xb0,0x0, 0x28,0x2d,0x74,0x42,0x19,0xb7,0x0, 0x2, 0xe4, +0x19,0xb7,0x0, 0x41,0x6c,0xdd,0xa, 0x3d,0x2d,0x37,0x7e,0x39,0x60,0x7d,0x27,0x2e, +0x24,0x0, 0x41,0x7e,0x29,0x70,0x6c,0x76,0x7a,0x29,0x70,0xb, 0xd0,0xbe,0xd0,0x41, +0x78,0xe4,0xb2,0x0, 0x80,0xe, 0x7e,0xb3,0xf, 0x21,0xb4,0x1, 0xc, 0x7e,0xb3,0x10, +0xd1,0xb4,0x24,0x5, 0x74,0x1, 0x12,0x6e,0x92,0x7e,0xb3,0xf, 0x20,0x60,0x6, 0x7e, +0x35,0x2a,0x12,0x68,0xb, 0xe4,0x7a,0xb3,0xf, 0x24,0x7a,0xb3,0xf, 0x20,0x7a,0xb3, +0xf, 0x21,0x80,0x4, 0xe4,0x12,0x6e,0x92,0x7e,0x24,0xe, 0x99,0x7e,0x34,0x0, 0x8c, +0x7e,0x14,0x0, 0x46,0x12,0x6d,0x3c,0xe5,0x26,0x70,0xd, 0x7e,0x34,0x0, 0x8c,0x7e, +0x24,0x0, 0x46,0x74,0xff,0x12,0x6d,0xe0,0xda,0x3b,0x22,0xca,0x79,0x75,0x26,0x17, +0x7e,0xb3,0xd, 0xf7,0xf5,0x21,0x70,0x3, 0x2, 0x22,0x1d,0x7e,0x34,0x13,0xb6,0x7e, +0x24,0x1, 0x2b,0xe4,0x12,0x6d,0xe0,0x7e,0x34,0x14,0xe1,0x7e,0x24,0x0, 0x2, 0xe4, +0x12,0x6d,0xe0,0x6c,0xaa,0x2, 0x20,0x32,0x7e,0x70,0x2, 0xac,0x7a,0x9, 0x33,0xd, +0x18,0x9, 0x23,0xd, 0x19,0x1a,0x3, 0x1b,0x5, 0x80,0x69,0xbe,0x10,0x0, 0x48,0x62, +0xbe,0x10,0xd, 0x58,0x5d,0x7c,0x1, 0xe, 0x0, 0xe, 0x0, 0xe, 0x0, 0x7a,0x1, 0x25, +0x7c,0xb1,0x54,0x7, 0x7e,0x74,0x0, 0x1, 0x60,0x5, 0x3e,0x74,0x14,0x78,0xfb,0x7c, +0xef,0xa, 0x40,0x2e,0x44,0x14,0xe1,0x7e,0x49,0xb0,0x4c,0xbe,0x7a,0x49,0xb0,0x1a, +0x32,0x1b,0x35,0x7c,0xf7,0x80,0x1f,0xbe,0xf0,0x0, 0x48,0x18,0xe5,0x26,0xbc,0xbf, +0x8, 0x12,0x74,0x1, 0x1a,0x21,0x7e,0x34,0x0, 0x17,0xad,0x32,0x1a,0x4f,0x2d,0x43, +0x19,0xb4,0x13,0xb6,0xb, 0xf0,0x1a,0x22,0x2e,0x24,0x0, 0x3, 0x1a,0x3f,0xbd,0x32, +0x48,0xd5,0xb, 0x10,0x1a,0x23,0x2e,0x24,0x0, 0x3, 0x1a,0x31,0xbd,0x32,0x48,0x8b, +0xb, 0xa0,0xe5,0x21,0xbc,0xba,0x28,0x3, 0x2, 0x1f,0xa8,0x6c,0x11,0x7c,0x1, 0xe, +0x0, 0xe, 0x0, 0xe, 0x0, 0x7a,0x1, 0x25,0x7c,0xb1,0x54,0x7, 0x7e,0x44,0x0, 0x1, +0x60,0x5, 0x3e,0x44,0x14,0x78,0xfb,0x7c,0xe9,0xa, 0x30,0x9, 0xb3,0x14,0xe1,0x5c, +0xbe,0x78,0x3, 0x2, 0x20,0xf9,0x6d,0x33,0x7a,0x35,0x22,0x75,0x24,0x0, 0x1a,0x21, +0x7e,0x34,0x0, 0x30,0xad,0x32,0x7d,0x43,0x2e,0x47,0xf, 0xda,0x6c,0x0, 0x80,0x26, +0x1a,0xe1,0x7e,0xf4,0x0, 0x17,0xad,0xfe,0xa, 0x30,0x2d,0x3f,0x9, 0xb3,0x13,0xb6, +0x70,0x12,0x7e,0x70,0x2, 0xac,0x70,0x2d,0x34,0xb, 0x38,0x30,0x2e,0x35,0x22,0x7a, +0x35,0x22,0x5, 0x24,0xb, 0x0, 0xe5,0x26,0xbc,0xb0,0x38,0xd4,0xe5,0x24,0x60,0x49, +0xe5,0x24,0x1a,0x2b,0x7e,0x35,0x22,0x12,0x47,0xf2,0x7a,0x35,0x22,0x6c,0xff,0x80, +0x32,0x1a,0x21,0x7e,0x34,0x0, 0x17,0xad,0x32,0x1a,0xff,0x7d,0xe3,0x2d,0xef,0x9, +0xbe,0x13,0xb6,0xb4,0x1, 0x1b,0x1a,0x21,0x7e,0x34,0x0, 0x18,0xad,0x32,0x7d,0x23, +0x2d,0x2f,0x3e,0x24,0x2e,0x27,0xf, 0xda,0xb, 0x28,0x30,0x9e,0x35,0x22,0x1b,0x28, +0x30,0xb, 0xf0,0xe5,0x26,0xbc,0xbf,0x18,0xc8,0xb, 0x10,0xa5,0xb9,0xd, 0x2, 0x80, +0x3, 0x2, 0x20,0x3d,0x6c,0xaa,0x2, 0x22,0x14,0x7e,0x10,0x2, 0xac,0x1a,0x9, 0x30, +0xd, 0x18,0x9, 0x20,0xd, 0x19,0x7c,0xba,0xc4,0x23,0x54,0x1f,0xf5,0x25,0x7c,0xba, +0x54,0x7, 0x7e,0x44,0x0, 0x1, 0x60,0x5, 0x3e,0x44,0x14,0x78,0xfb,0x7c,0xe9,0xa5, +0xbb,0x0, 0x2c,0x1a,0xe3,0x7e,0xf4,0x0, 0x18,0xad,0xfe,0x1a,0x32,0x2d,0x3f,0x3e, +0x34,0x2e,0x37,0xf, 0xda,0xb, 0x38,0x20,0x49,0x33,0x0, 0x30,0xbd,0x32,0x18,0x3, +0x2, 0x21,0xd9,0x1a,0x33,0xb, 0x34,0x7c,0xb7,0x19,0xb0,0xd, 0x18,0x80,0x7a,0xa5, +0xbb,0xc, 0x2c,0x1a,0x23,0x7e,0x34,0x0, 0x18,0xad,0x32,0x1a,0x22,0x2d,0x23,0x3e, +0x24,0x2e,0x27,0xf, 0xda,0xb, 0x28,0x30,0x49,0x2, 0xff,0xd0,0xbd,0x3, 0x8, 0x59, +0x1a,0x33,0x1b,0x34,0x7e,0x10,0x2, 0xac,0x1a,0x19,0x70,0xd, 0x18,0x80,0x4a,0x1a, +0xe3,0x7e,0xf4,0x0, 0x18,0xad,0xfe,0x1a,0x32,0x2d,0x3f,0x3e,0x34,0x2e,0x37,0xf, +0xda,0x49,0x43,0x0, 0x30,0x49,0x3, 0xff,0xd0,0xbd,0x4, 0x8, 0x16,0xb, 0x38,0x20, +0xbd,0x2, 0x8, 0x25,0x1a,0x23,0x1b,0x24,0x7e,0x10,0x2, 0xac,0x1a,0x19,0x50,0xd, +0x18,0x80,0x16,0xb, 0x38,0x0, 0xbd,0x40,0x8, 0xf, 0x1a,0x33,0xb, 0x34,0x7c,0x37, +0x7e,0x10,0x2, 0xac,0x1a,0x19,0x30,0xd, 0x18,0x7e,0x70,0x2, 0xac,0x7a,0x9, 0x33, +0xd, 0x18,0x1a,0x23,0x7e,0x34,0x0, 0x18,0xad,0x32,0x1a,0x2, 0x2d,0x3, 0x3e,0x4, +0x2e,0x7, 0xf, 0xda,0xb, 0x8, 0x0, 0xbe,0x4, 0x0, 0x3c,0x58,0x15,0x7c,0x7e,0x6e, +0x70,0xff,0xe5,0x25,0xa, 0x4b,0x2e,0x44,0xd, 0x68,0x7e,0x49,0xb0,0x5c,0xb7,0x7a, +0x49,0xb0,0xb, 0xa0,0xe5,0x21,0xbc,0xba,0x28,0x3, 0x2, 0x21,0x9, 0xda,0x79,0x22, +0xca,0xd8,0xca,0x79,0x6c,0xaa,0x7e,0x34,0x11,0x9e,0x7e,0x44,0x11,0x4a,0xe4,0x7a, +0xb3,0x16,0xbc,0x7e,0xb3,0xe, 0xa, 0x54,0xfe,0x7a,0xb3,0xe, 0xa, 0x7e,0xb3,0xd, +0x17,0xbe,0xb0,0x0, 0x28,0x4f,0x7e,0x53,0xd, 0xf8,0xbe,0x50,0x0, 0x28,0x46,0x6c, +0xff,0x80,0x3c,0x7e,0x30,0x2, 0xac,0x3f,0x9, 0xd1,0xd, 0x40,0x9, 0xe1,0xd, 0x41, +0x7e,0x30,0x2, 0xac,0x3e,0x2d,0x13,0xb, 0x18,0x0, 0x6d,0x11,0x9e,0x17,0xf, 0x4c, +0xbd,0x1, 0x58,0x19,0x7e,0x30,0x2, 0xac,0x3d,0x2d,0x13,0x49,0x1, 0x0, 0x30,0x6d, +0x11,0x9e,0x17,0xf, 0x4a,0xbd,0x1, 0x58,0x4, 0x5, 0x6b,0x80,0xb, 0xb, 0xf0,0xbc, +0x5f,0x38,0xc0,0x80,0x3, 0x75,0x6b,0x0, 0xe5,0x6b,0xbe,0xb0,0x3, 0x40,0x17,0x7e, +0xb3,0xe, 0xa, 0x44,0x1, 0x7a,0xb3,0xe, 0xa, 0x75,0x6b,0x0, 0x7e,0xb3,0x16,0xbc, +0x44,0x1, 0x7a,0xb3,0x16,0xbc,0x7e,0xb3,0xe, 0xa, 0x54,0xfd,0x7a,0xb3,0xe, 0xa, +0x7e,0xb3,0xd, 0x16,0x70,0x59,0x7e,0x53,0xd, 0xf7,0xbe,0x50,0x0, 0x28,0x50,0x6c, +0xff,0x80,0x48,0x7e,0x30,0x2, 0xac,0x3f,0x9, 0xd1,0xd, 0x18,0x9, 0xe1,0xd, 0x19, +0x7e,0x30,0x2, 0xac,0x3d,0x2d,0x14,0x49,0x11,0x0, 0x30,0x6d,0x0, 0x9e,0x7, 0xd, +0xff,0xbd,0x10,0x48,0xe, 0x7e,0x30,0x2, 0xac,0x3e,0x2d,0x14,0xb, 0x18,0x10,0xbd, +0x10,0x58,0x16,0x7e,0xb3,0xe, 0xa, 0x44,0x2, 0x7a,0xb3,0xe, 0xa, 0x7e,0xb3,0x16, +0xbc,0x44,0x2, 0x7a,0xb3,0x16,0xbc,0x80,0x6, 0xb, 0xf0,0xbc,0x5f,0x38,0xb4,0x7e, +0xb3,0xe, 0x9, 0xb4,0x1, 0x2, 0x80,0x3, 0x2, 0x23,0xc3,0x7e,0xb3,0xd, 0x16,0x70, +0x6d,0x6c,0xff,0x80,0x61,0x7e,0x50,0x2, 0xac,0x5f,0x7d,0x12,0x2d,0x14,0xb, 0x18, +0x10,0xbe,0x17,0xd, 0xff,0x8, 0x4d,0x2d,0x23,0xb, 0x28,0x20,0xbe,0x27,0xd, 0xff, +0x58,0x42,0xbe,0xf1,0x6c,0x68,0x6, 0x7a,0xf1,0x6c,0x75,0x6d,0x0, 0xbe,0xf1,0x6c, +0x78,0x2, 0x5, 0x6d,0xe5,0x6d,0xbe,0xb0,0x10,0x28,0x33,0x75,0x6d,0x10,0xe5,0x51, +0x70,0x16,0x7e,0xb3,0xe, 0xa, 0x44,0x4, 0x7a,0xb3,0xe, 0xa, 0x7e,0xb3,0x16,0xbc, +0x44,0x4, 0x7a,0xb3,0x16,0xbc,0x80,0x16,0x7e,0xb3,0xe, 0xa, 0x54,0xfb,0x7a,0xb3, +0xe, 0xa, 0x80,0xa, 0xb, 0xf0,0x7e,0xb3,0x10,0x2c,0xbc,0xbf,0x38,0x97,0x6c,0xaa, +0x6c,0xff,0x80,0x17,0x7e,0x70,0x2, 0xac,0x7f,0x2d,0x34,0xb, 0x38,0x30,0xbe,0x37, +0xd, 0xff,0x8, 0x5, 0x7e,0xa0,0x1, 0x80,0xa, 0xb, 0xf0,0x7e,0xb3,0x10,0x2c,0xbc, +0xbf,0x38,0xe1,0x4c,0xaa,0x78,0x1a,0x7e,0xb3,0xe, 0xa, 0x54,0xfb,0x7a,0xb3,0xe, +0xa, 0x75,0x6c,0xff,0x75,0x6d,0x0, 0x7e,0xb3,0x16,0xbc,0x54,0xfb,0x7a,0xb3,0x16, +0xbc,0x7e,0xb3,0xe, 0xa, 0x54,0xf7,0x7a,0xb3,0xe, 0xa, 0x7e,0x73,0xd, 0xfa,0xa, +0x27,0x7e,0x73,0xd, 0xf9,0xa, 0x37,0x2d,0x32,0xbe,0x37,0xe, 0x3, 0x28,0x14,0x7e, +0xb3,0xe, 0xa, 0x44,0x8, 0x7a,0xb3,0xe, 0xa, 0x7e,0xb3,0x16,0xbc,0x44,0x8, 0x7a, +0xb3,0x16,0xbc,0x7e,0xb3,0xe, 0xa, 0x44,0x10,0x7a,0xb3,0xe, 0xa, 0x6c,0xff,0x80, +0x49,0x7e,0x50,0x2, 0xac,0x5f,0x9, 0xd2,0xd, 0x18,0x9, 0xe2,0xd, 0x19,0x7e,0x70, +0x18,0xac,0x7d,0xa, 0x1e,0x2d,0x31,0x3e,0x34,0x2e,0x37,0xf, 0xda,0xb, 0x38,0x30, +0x49,0x22,0x10,0x3, 0x9d,0x32,0x7a,0x35,0x21,0x12,0x6d,0xd0,0xbe,0x37,0xe, 0x1, +0x28,0x16,0x7e,0xb3,0xe, 0xa, 0x54,0xef,0x7a,0xb3,0xe, 0xa, 0x7e,0xb3,0x16,0xbc, +0x44,0x10,0x7a,0xb3,0x16,0xbc,0x80,0xa, 0xb, 0xf0,0x7e,0x73,0xd, 0xf7,0xbc,0x7f, +0x38,0xaf,0x7e,0x34,0x10,0x3, 0x7e,0x24,0x0, 0x28,0xe4,0x12,0x6d,0xe0,0x6c,0xff, +0x80,0x25,0x7e,0x50,0x2, 0xac,0x5f,0x9, 0xd2,0xd, 0x18,0x9, 0xe2,0xd, 0x19,0x7e, +0x70,0x18,0xac,0x7d,0xa, 0x1e,0x2d,0x31,0x3e,0x34,0x2e,0x37,0xf, 0xda,0xb, 0x38, +0x30,0x59,0x32,0x10,0x3, 0xb, 0xf0,0x7e,0x73,0xd, 0xf7,0xbc,0x7f,0x38,0xd3,0xda, +0x79,0xda,0xd8,0x22,0xca,0x3b,0x6d,0x33,0x7a,0x35,0x21,0x75,0x25,0x0, 0x75,0x26, +0x0, 0x7e,0x23,0xd, 0xf7,0x7a,0x21,0x23,0x7e,0x37,0xf, 0xda,0x7a,0x37,0x13,0xb6, +0x7e,0x30,0x2, 0xac,0x23,0x7e,0x24,0xd, 0x18,0x7e,0x34,0x13,0xb8,0x12,0x6d,0x3c, +0xe5,0x23,0xbe,0xb0,0xa, 0x38,0x3, 0x2, 0x26,0xb9,0x75,0x24,0x0, 0x6c,0xff,0x2, +0x25,0xcd,0x7e,0x34,0x3, 0xff,0x7a,0x35,0x27,0x75,0x26,0xff,0x6c,0xee,0x80,0x7e, +0x7e,0x70,0x2, 0xac,0x7e,0x9, 0xb3,0x13,0xb8,0xbe,0xb0,0xff,0x68,0x6e,0x7c,0xbe, +0xc4,0x23,0x54,0x1f,0x7c,0xab,0x7a,0xa1,0x2b,0x7c,0xbe,0x54,0x7, 0x7e,0x24,0x0, +0x1, 0x60,0x5, 0x3e,0x24,0x14,0x78,0xfb,0x7c,0xb5,0xf5,0x2c,0xa, 0x2a,0x9, 0xb2, +0xd, 0x68,0x55,0x2c,0x68,0x46,0x9, 0x73,0x13,0xb9,0xa, 0x27,0x74,0x2, 0xac,0xbf, +0x9, 0x75,0x15,0xa3,0xa, 0x37,0x9d,0x32,0x12,0x6d,0xd0,0x7d,0x63,0x74,0x2, 0xac, +0xbe,0x9, 0x75,0x13,0xb8,0xa, 0x27,0x74,0x2, 0xac,0xbf,0x9, 0x75,0x15,0xa2,0xa, +0x37,0x9d,0x32,0x12,0x6d,0xd0,0x2d,0x36,0x7a,0x35,0x29,0x7e,0x35,0x27,0xbe,0x35, +0x29,0x28,0x9, 0x7e,0x35,0x29,0x7a,0x35,0x27,0x7a,0xe1,0x26,0xb, 0xe0,0xe5,0x23, +0xbc,0xbe,0x28,0x3, 0x2, 0x25,0x0, 0xe5,0x26,0xbe,0xb0,0xff,0x68,0x3d,0x7e,0x71, +0x26,0x74,0x2, 0xac,0x7b,0x9, 0x33,0x13,0xb8,0x7e,0x50,0x18,0xac,0x53,0x9, 0xa3, +0x13,0xb9,0xa, 0xa, 0x2d,0x20,0x3e,0x24,0x2e,0x27,0x13,0xb6,0xb, 0x28,0x20,0xbe, +0x24,0x0, 0x3c,0x48,0x16,0xe5,0x24,0x1a,0x2b,0x3e,0x24,0x19,0x32,0x13,0xe0,0x19, +0xa2,0x13,0xe1,0x74,0xff,0x19,0xb3,0x13,0xb8,0x5, 0x24,0xb, 0xf0,0xe5,0x11,0xbc, +0xbf,0x28,0x3, 0x2, 0x24,0xf2,0x7e,0xf1,0x24,0x2, 0x26,0x9f,0x6d,0x33,0x7a,0x35, +0x21,0x7e,0xa0,0xff,0x6c,0xee,0x2, 0x26,0x71,0x7c,0xbe,0xc4,0x23,0x54,0x1f,0x7c, +0x7b,0x7a,0x71,0x2b,0x7c,0xbe,0x54,0x7, 0x7e,0x44,0x0, 0x1, 0x60,0x5, 0x3e,0x44, +0x14,0x78,0xfb,0x7c,0xb9,0xf5,0x2c,0xa, 0x37,0x9, 0xb3,0xd, 0x68,0x55,0x2c,0x68, +0x5e,0x7e,0x90,0x2, 0xac,0x9e,0x9, 0x44,0x13,0xb8,0xbe,0x40,0xff,0x68,0x50,0x7e, +0x50,0x18,0xac,0x45,0x9, 0xb4,0x13,0xb9,0xa, 0x3b,0x2d,0x23,0x3e,0x24,0x2e,0x27, +0x13,0xb6,0xb, 0x28,0x30,0xbe,0x34,0x0, 0x0, 0x58,0x5, 0x6d,0x33,0x1b,0x28,0x30, +0x7e,0x50,0x2, 0xac,0x5e,0x9, 0x62,0x13,0xb8,0x7e,0x30,0x18,0xac,0x36,0x9, 0x72, +0x13,0xb9,0xa, 0x7, 0x2d,0x10,0x3e,0x14,0x2e,0x17,0x13,0xb6,0xb, 0x18,0x40,0xbe, +0x45,0x21,0x8, 0xb, 0x7a,0x61,0x25,0x7a,0x71,0x26,0x7a,0x45,0x21,0x7c,0xae,0xb, +0xe0,0xe5,0x23,0xbc,0xbe,0x28,0x3, 0x2, 0x25,0xe9,0xbe,0xa0,0xff,0x68,0x1e,0x7e, +0x71,0x25,0x7e,0x90,0x2, 0xac,0x9f,0x19,0x74,0x13,0xe0,0xe5,0x26,0x19,0xb4,0x13, +0xe1,0x7e,0x70,0xff,0x7e,0x50,0x2, 0xac,0x5a,0x19,0x72,0x13,0xb8,0xb, 0xf0,0xbe, +0xf0,0xa, 0x50,0x3, 0x2, 0x25,0xdc,0x7e,0x24,0x13,0xe0,0x7e,0x34,0x13,0xb8,0x7e, +0x14,0x0, 0x28,0x12,0x6d,0x3c,0x75,0x23,0xa, 0x7e,0x34,0x15,0xa2,0x7e,0x24,0x0, +0x14,0x74,0xff,0x12,0x6d,0xe0,0xe5,0x23,0xbe,0xb0,0x0, 0x28,0x55,0x7e,0x31,0x23, +0x74,0x2, 0xac,0x3b,0x7e,0x24,0x13,0xb8,0x7e,0x34,0xd, 0x18,0x12,0x6d,0x3c,0x7e, +0x31,0x23,0x74,0x2, 0xac,0x3b,0x7e,0x24,0x13,0xb8,0x7e,0x34,0x15,0xa2,0x12,0x6d, +0x3c,0x6c,0xff,0x80,0x27,0x7c,0xbf,0x54,0x7, 0x7e,0x34,0x0, 0x1, 0x60,0x5, 0x3e, +0x34,0x14,0x78,0xfb,0x7c,0x67,0x7c,0xbf,0xc4,0x23,0x54,0x1f,0xa, 0x2b,0x2e,0x24, +0xd, 0x68,0x7e,0x29,0x70,0x4c,0x76,0x7a,0x29,0x70,0xb, 0xf0,0xe5,0x23,0xbc,0xbf, +0x38,0xd3,0x85,0x23,0x11,0xe5,0x23,0x7a,0xb3,0xd, 0xf7,0xda,0x3b,0x22,0x7c,0x7b, +0xbe,0x70,0x10,0x40,0x12,0xbe,0x70,0x4b,0x38,0xd, 0xa, 0x37,0x2e,0x37,0x16,0x4f, +0x9e,0x34,0x0, 0x10,0x2, 0x29,0x69,0xa5,0xbf,0x0, 0x3, 0xe5,0xb, 0x22,0xa5,0xbf, +0x1, 0x3, 0xe5,0xd, 0x22,0xa5,0xbf,0x2, 0x5, 0x7e,0xb3,0xf, 0x28,0x22,0xbe,0x70, +0x3, 0x40,0x12,0xbe,0x70,0x5, 0x38,0xd, 0xa, 0x37,0x2e,0x34,0x10,0x2b,0x9e,0x34, +0x0, 0x3, 0x2, 0x29,0x69,0xa5,0xbf,0x6, 0x3, 0x74,0x1, 0x22,0xa5,0xbf,0x7, 0x5, +0x7e,0xb3,0x10,0x4b,0x22,0xa5,0xbf,0x8, 0x10,0x7e,0xb3,0x10,0x3b,0x70,0x5, 0x7e, +0xb3,0xa, 0xac,0x22,0x7e,0xb3,0x11,0x16,0x22,0xa5,0xbf,0x9, 0x10,0x7e,0xb3,0x10, +0x3b,0x70,0x5, 0x7e,0xb3,0xa, 0xad,0x22,0x7e,0xb3,0x11,0x49,0x22,0xa5,0xbf,0xa, +0x5, 0x7e,0xb3,0x10,0x3b,0x22,0xa5,0xbf,0xb, 0x10,0x7e,0xb3,0x10,0x3b,0x70,0x5, +0x7e,0xb3,0xa, 0xae,0x22,0x7e,0xb3,0x11,0x94,0x22,0xa5,0xbf,0xc, 0x10,0x7e,0xb3, +0x10,0x3b,0x70,0x5, 0x7e,0xb3,0xd, 0xfe,0x22,0x7e,0xb3,0x11,0x9d,0x22,0xa5,0xbf, +0x4c,0x5, 0x7e,0xb3,0xf, 0x46,0x22,0xa5,0xbf,0xfb,0x3, 0xe5,0x8, 0x22,0xa5,0xbf, +0x4e,0x5, 0x7e,0xb3,0x10,0x4a,0x22,0xbe,0x70,0x50,0x40,0x12,0xbe,0x70,0x51,0x38, +0xd, 0xa, 0x37,0x2e,0x37,0x10,0x2f,0x9e,0x34,0x0, 0x50,0x2, 0x29,0x69,0xbe,0x70, +0x52,0x40,0x12,0xbe,0x70,0x55,0x38,0xd, 0xa, 0x37,0x2e,0x37,0x10,0x31,0x9e,0x34, +0x0, 0x52,0x2, 0x29,0x69,0xbe,0x70,0x56,0x40,0x12,0xbe,0x70,0x62,0x38,0xd, 0xa, +0x37,0x2e,0x37,0x10,0x33,0x9e,0x34,0x0, 0x56,0x2, 0x29,0x69,0xbe,0x70,0x63,0x40, +0x12,0xbe,0x70,0x7a,0x38,0xd, 0xa, 0x37,0x2e,0x37,0x10,0x35,0x9e,0x34,0x0, 0x63, +0x2, 0x29,0x69,0xbe,0x70,0x7b,0x50,0x3, 0x2, 0x28,0xfd,0xbe,0x70,0x9f,0x28,0x3, +0x2, 0x28,0xfd,0x7e,0xb3,0x10,0x3b,0x70,0x4a,0xa, 0x27,0x9e,0x24,0x0, 0x7b,0xbe, +0x24,0x0, 0x18,0x58,0x22,0xa, 0x37,0x2e,0x37,0x10,0x35,0x9e,0x34,0x0, 0x7b,0x7e, +0x39,0xa0,0x7c,0xba,0x30,0xe0,0xc, 0xa, 0x5a,0x2e,0x54,0x0, 0x18,0xe, 0x54,0x7c, +0xab,0x80,0x19,0x1e,0xa0,0x80,0x15,0xa, 0x37,0x2e,0x37,0x10,0x33,0x9e,0x34,0x0, +0x93,0x7e,0x39,0x70,0xa, 0x57,0x2e,0x54,0x0, 0x18,0x7c,0xab,0xa, 0x3a,0x9, 0xb3, +0xf, 0xdc,0x22,0xa, 0x27,0x9e,0x24,0x0, 0x7b,0xbe,0x24,0x0, 0x18,0x58,0x22,0xa, +0x37,0x2e,0x37,0x10,0x35,0x9e,0x34,0x0, 0x7b,0x7e,0x39,0xa0,0x7c,0xba,0x30,0xe0, +0xc, 0xa, 0x5a,0x2e,0x54,0x0, 0x18,0xe, 0x54,0x7c,0xab,0x80,0x19,0x1e,0xa0,0x80, +0x15,0xa, 0x37,0x2e,0x37,0x10,0x33,0x9e,0x34,0x0, 0x93,0x7e,0x39,0x70,0xa, 0x57, +0x2e,0x54,0x0, 0x18,0x7c,0xab,0xa, 0x3a,0x9, 0xb3,0xf, 0x63,0x22,0xbe,0x70,0xa0, +0x40,0x11,0xbe,0x70,0xac,0x38,0xc, 0xa, 0x37,0x2e,0x37,0x10,0x6c,0x9e,0x34,0x0, +0xa0,0x80,0x56,0xbe,0x70,0xad,0x40,0x11,0xbe,0x70,0xb9,0x38,0xc, 0xa, 0x37,0x2e, +0x37,0x10,0x6e,0x9e,0x34,0x0, 0xad,0x80,0x40,0xbe,0x70,0xba,0x40,0x11,0xbe,0x70, +0xd1,0x38,0xc, 0xa, 0x37,0x2e,0x37,0x10,0x70,0x9e,0x34,0x0, 0xba,0x80,0x2a,0xbe, +0x70,0xd2,0x40,0x11,0xbe,0x70,0xd5,0x38,0xc, 0xa, 0x37,0x2e,0x37,0x10,0x72,0x9e, +0x34,0x0, 0xd2,0x80,0x14,0xbe,0x70,0xd6,0x40,0x13,0xbe,0x70,0xed,0x38,0xe, 0xa, +0x37,0x2e,0x37,0x10,0x74,0x9e,0x34,0x0, 0xd6,0x7e,0x39,0xb0,0x22,0xa5,0xbf,0xf8, +0x5, 0x7e,0xb3,0x11,0xe8,0x22,0xa5,0xbf,0xfe,0x3, 0xe5,0xc, 0x22,0x74,0xff,0x22, +0x0, 0x0, 0x3, 0xe0,0x3, 0xff,0x3, 0xff,0x0, 0x20,0x0, 0x41,0x0, 0x42,0x0, 0x22, +0x3, 0xe0,0x3, 0xbe,0x3, 0x9c,0x3, 0xdd,0x0, 0x40,0x0, 0xa3,0x0, 0xa5,0x0, 0x44, +0x3, 0xc0,0x3, 0x5c,0x3, 0x5a,0x3, 0xbb,0x0, 0x60,0x0, 0xe5,0x0, 0xe8,0x0, 0x66, +0x3, 0xa0,0x3, 0x1a,0x2, 0xf7,0x3, 0x99,0x0, 0x80,0x1, 0x47,0x1, 0x4b,0x0, 0x88, +0x3, 0x80,0x2, 0xb8,0x2, 0xb4,0x3, 0x77,0x0, 0xa0,0x1, 0x89,0x1, 0xad,0x0, 0xaa, +0x3, 0x60,0x2, 0x56,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xaa, +0x3, 0x60,0x2, 0x76,0x2, 0x93,0x3, 0x77,0x0, 0xa0,0x1, 0x69,0x1, 0x6c,0x0, 0x88, +0x3, 0x80,0x2, 0xd8,0x2, 0xd5,0x3, 0x99,0x0, 0x80,0x1, 0x27,0x1, 0x9, 0x0, 0x66, +0x3, 0xa0,0x3, 0x3a,0x3, 0x38,0x3, 0xbb,0x0, 0x60,0x0, 0xc5,0x0, 0xc6,0x0, 0x44, +0x3, 0xc0,0x3, 0x7c,0x3, 0x7b,0x3, 0xdd,0x0, 0x40,0x0, 0x83,0x0, 0x64,0x0, 0x22, +0x3, 0xe0,0x3, 0xde,0x3, 0xde,0x3, 0xff,0x0, 0x20,0x0, 0x21,0x0, 0x21,0x0, 0x0, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0xca,0x3b,0x7e,0x34,0x13,0xff,0x7e,0x24,0x0, 0x18,0xe4,0x12,0x6d,0xe0,0x7e,0xe0, +0x1, 0x7e,0x73,0x10,0x4d,0x7a,0x73,0x13,0xb6,0xe4,0x7a,0xb3,0x10,0x4d,0x6c,0xdd, +0x6c,0xcc,0x80,0x11,0xa, 0x3c,0x2e,0x37,0x10,0x6e,0x7e,0x39,0x70,0xbc,0x7d,0x40, +0x2, 0x7c,0xd7,0xb, 0xc0,0x7e,0x73,0x10,0x2b,0xbc,0x7c,0x38,0xe7,0xbe,0xd0,0x1f, +0x50,0xc, 0xa, 0x2d,0x7e,0x34,0x0, 0x1f,0x9d,0x32,0x7c,0xd7,0x80,0x2, 0x6c,0xdd, +0x7a,0xd1,0x21,0x7e,0x34,0x10,0x2b,0x12,0x31,0xbc,0x7e,0x34,0x10,0x2b,0x12,0x6a, +0x64,0x2, 0x2d,0x7d,0x6d,0x33,0x7a,0x37,0x10,0x1, 0x7e,0x34,0xd, 0xac,0x7a,0x37, +0xa, 0xaf,0x12,0x6e,0xcf,0x12,0x69,0x23,0x12,0x6e,0x78,0x60,0xfb,0xa9,0xb7,0xea, +0x7e,0x37,0xf, 0xda,0x7e,0x27,0xf, 0xd8,0x7e,0x14,0x18,0x0, 0x12,0x67,0x74,0x6c, +0xcc,0x80,0x78,0x6c,0xff,0x80,0x6a,0x4c,0xcc,0x78,0x11,0xe4,0xa, 0x3f,0x19,0xb3, +0x13,0xe7,0x6d,0x33,0x74,0x2, 0xac,0xbf,0x59,0x35,0x13,0xb7,0xbe,0xf0,0x17,0x78, +0x13,0x7e,0x34,0x0, 0x1, 0x7c,0xbc,0x60,0x5, 0x3e,0x34,0x14,0x78,0xfb,0x5e,0x34, +0x4, 0x44,0x68,0x3b,0x7e,0x50,0x30,0xac,0x5c,0x7e,0x70,0x2, 0xac,0x7f,0x2d,0x32, +0x2e,0x37,0xf, 0xda,0xb, 0x38,0x10,0xe, 0x14,0xe, 0x14,0xe, 0x14,0xe, 0x14,0xe, +0x14,0x7e,0x50,0x2, 0xac,0x5f,0x2e,0x24,0x13,0xb7,0xb, 0x28,0x30,0x2d,0x31,0x1b, +0x28,0x30,0xa, 0x3f,0x2e,0x34,0x13,0xe7,0x7e,0x39,0xb0,0x4, 0x7a,0x39,0xb0,0xb, +0xf0,0x7e,0x73,0x10,0x2c,0xbc,0x7f,0x38,0x8e,0xb, 0xc0,0x7e,0x73,0x10,0x2b,0xbc, +0x7c,0x38,0x80,0x75,0x22,0x0, 0x6c,0xcc,0x2, 0x2d,0x5b,0xa, 0x3c,0x9, 0xa3,0x13, +0xe7,0x4c,0xaa,0x78,0xf, 0x7e,0x44,0x22,0xc4,0x7e,0x70,0x2, 0xac,0x7c,0x59,0x43, +0x13,0xb7,0x80,0x25,0x7e,0x50,0x2, 0xac,0x5c,0x49,0x12,0x13,0xb7,0xa, 0xa, 0x8d, +0x10,0x59,0x12,0x13,0xb7,0x2e,0x24,0x13,0xb7,0xb, 0x28,0x30,0x3e,0x34,0x3e,0x34, +0x3e,0x34,0x3e,0x34,0x3e,0x34,0x1b,0x28,0x30,0x7e,0x50,0x2, 0xac,0x5c,0x49,0x32, +0x13,0xb7,0xbe,0x34,0x1f,0xa4,0x50,0x22,0xa, 0x1c,0x2e,0x14,0x13,0xff,0x7e,0x19, +0xb0,0x4, 0x7a,0x19,0xb0,0xa, 0x1c,0x2e,0x17,0x10,0x74,0x7e,0x19,0xb0,0xbc,0xbd, +0x50,0x2f,0x4, 0x7a,0x19,0xb0,0x80,0x31,0x80,0x27,0xbe,0x34,0x25,0xe4,0x28,0x27, +0xa, 0x3c,0x2e,0x34,0x13,0xff,0x7e,0x39,0xb0,0x4, 0x7a,0x39,0xb0,0xa, 0x3c,0x2e, +0x37,0x10,0x74,0x7e,0x39,0xb0,0xbe,0xb0,0x0, 0x28,0x6, 0x14,0x7a,0x39,0xb0,0x80, +0x8, 0x5, 0x22,0x6c,0xee,0x80,0x2, 0x5, 0x22,0xb, 0xc0,0x7e,0x73,0x10,0x2c,0xbc, +0x7c,0x28,0x3, 0x2, 0x2c,0xbb,0x7e,0x34,0x10,0x2b,0x12,0x31,0xbc,0x7e,0x34,0x10, +0x2b,0x12,0x6a,0x64,0x7e,0x73,0x10,0x2c,0xbe,0x71,0x22,0x68,0xf, 0x7e,0xa1,0x21, +0x7c,0xba,0x14,0xf5,0x21,0x4c,0xaa,0x68,0x3, 0x2, 0x2c,0x4, 0x7e,0x73,0x13,0xb6, +0x7a,0x73,0x10,0x4d,0x6c,0xff,0x80,0x10,0xa, 0x3f,0x9, 0x73,0x13,0xff,0xbc,0x7d, +0x78,0x4, 0x6c,0xee,0x80,0xa, 0xb, 0xf0,0x7e,0x73,0x10,0x2c,0xbc,0x7f,0x38,0xe8, +0x7c,0xbe,0xda,0x3b,0x22,0xca,0x3b,0x7e,0xb3,0x10,0x3c,0xf5,0x21,0xe4,0x7a,0xb3, +0x10,0x3c,0x7e,0xb3,0x10,0x3a,0xf5,0x22,0x74,0x3, 0x7a,0xb3,0x10,0x3a,0x7e,0x37, +0x10,0x48,0x7e,0x24,0x0, 0x25,0xe4,0x12,0x6d,0xe0,0x7e,0xe0,0x7, 0x6d,0x33,0x7a, +0x37,0x10,0x1, 0x7e,0x34,0xd, 0xac,0x7a,0x37,0xa, 0xaf,0x12,0x6e,0xcf,0x6c,0xdd, +0x7e,0x14,0x0, 0x1, 0x7c,0xbe,0x60,0x5, 0x3e,0x14,0x14,0x78,0xfb,0xa, 0x2d,0x2e, +0x27,0x10,0x48,0x7e,0x29,0x70,0x4c,0x73,0x7a,0x29,0x70,0xb, 0xd0,0xbe,0xd0,0x25, +0x78,0xde,0x7e,0x34,0x10,0x2b,0x12,0x5b,0x2, 0x7e,0x34,0x10,0x2b,0x12,0x64,0xab, +0x12,0x6e,0x81,0x60,0xfb,0x7e,0x37,0xf, 0xd6,0x7e,0x25,0x70,0x12,0x54,0xd0,0x6c, +0xdd,0xbe,0xd0,0x18,0x50,0x1e,0xa, 0x3d,0x2e,0x37,0x10,0x35,0x7e,0x39,0xf0,0x7c, +0xbf,0x30,0xe0,0xc, 0xa, 0x3f,0x2e,0x34,0x0, 0x18,0xe, 0x34,0x7c,0xf7,0x80,0x16, +0x1e,0xf0,0x80,0x12,0xa, 0x3d,0x2e,0x37,0x10,0x33,0x9, 0x73,0xff,0xe8,0xa, 0x37, +0x2e,0x34,0x0, 0x18,0x7c,0xf7,0x7e,0x70,0x2, 0xac,0x7d,0x2e,0x37,0xf, 0xd6,0xb, +0x38,0x30,0xbe,0x34,0x25,0x80,0x18,0x21,0x7e,0x34,0x0, 0x1, 0x7c,0xbe,0x60,0x5, +0x3e,0x34,0x14,0x78,0xfb,0x7d,0x13,0x6e,0x14,0xff,0xff,0xa, 0x2f,0x2e,0x27,0x10, +0x48,0x7e,0x29,0x70,0x5c,0x73,0x7a,0x29,0x70,0xb, 0xd0,0xbe,0xd0,0x25,0x78,0x91, +0x1b,0xe0,0xbe,0xe0,0x0, 0x48,0x3, 0x2, 0x2d,0xdd,0x7e,0xe0,0xa, 0x74,0x2, 0x7a, +0xb3,0x10,0x3a,0x2, 0x2f,0xac,0x6d,0x33,0x7a,0x37,0x10,0x1, 0x7e,0x34,0xd, 0xac, +0x7a,0x37,0xa, 0xaf,0x12,0x6e,0xcf,0x7e,0x73,0x10,0x2b,0xa, 0x37,0x7e,0x53,0x10, +0x2c,0xa, 0x65,0x2d,0x63,0x7c,0xcd,0x6c,0xdd,0x2, 0x2f,0x74,0x7e,0xa3,0x10,0x2c, +0xbc,0xad,0x28,0x27,0xa, 0x3d,0x2e,0x37,0x10,0x35,0x7e,0x39,0xf0,0x7c,0xbf,0x30, +0xe0,0xc, 0xa, 0x3f,0x2e,0x34,0x0, 0x18,0xe, 0x34,0x7c,0xf7,0x80,0x2, 0x1e,0xf0, +0x7e,0x70,0x2, 0xac,0x7d,0x2e,0x37,0xf, 0xd6,0x80,0x27,0xa, 0x2a,0xa, 0x3d,0x9d, +0x32,0x2e,0x37,0x10,0x33,0x7e,0x39,0xb0,0xa, 0x3b,0x2e,0x34,0x0, 0x18,0x7c,0xf7, +0x7e,0x70,0x2, 0xac,0x7d,0x2e,0x37,0xf, 0xd6,0x2e,0x34,0x0, 0x30,0x74,0x2, 0xa4, +0x9d,0x35,0xb, 0x38,0x30,0x7a,0x35,0x23,0xbe,0x34,0x2e,0xe0,0x8, 0x18,0x4c,0xee, +0x68,0x30,0xa, 0x2f,0x2e,0x27,0x10,0x48,0x7e,0x29,0xb0,0xbe,0xb0,0xfe,0x50,0x22, +0x4, 0x7a,0x29,0xb0,0x80,0x1c,0xbe,0x34,0x17,0x70,0x58,0x14,0xa, 0x3f,0x2e,0x37, +0x10,0x48,0x7e,0x39,0xb0,0xbe,0xb0,0x0, 0x28,0x8, 0x14,0x7a,0x39,0xb0,0x80,0x2, +0x1b,0xc0,0xb, 0xd0,0x7e,0x73,0x10,0x2b,0xa, 0x37,0x7e,0x53,0x10,0x2c,0xa, 0x25, +0x2d,0x23,0xa, 0x3d,0xbd,0x32,0x58,0x3, 0x2, 0x2e,0xdc,0x4c,0xcc,0x68,0x28,0x7e, +0x34,0x10,0x2b,0x12,0x5b,0x2, 0x7e,0x34,0x10,0x2b,0x12,0x64,0xab,0x12,0x6e,0x81, +0x60,0xfb,0x7e,0x37,0xf, 0xd6,0x7e,0x25,0x70,0x12,0x54,0xd0,0x7c,0xae,0x1b,0xe0, +0x4c,0xaa,0x68,0x3, 0x2, 0x2e,0xb6,0xe5,0x21,0x7a,0xb3,0x10,0x3c,0xe5,0x22,0x7a, +0xb3,0x10,0x3a,0xda,0x3b,0x22,0xca,0xf8,0x6c,0xff,0x7e,0x24,0x15,0x56,0x7e,0x34, +0x13,0xfe,0x7e,0x14,0x0, 0x48,0x12,0x6d,0x3c,0x7e,0x24,0xe, 0xd, 0x7e,0x34,0x13, +0xb6,0x7e,0x14,0x0, 0x46,0x12,0x6d,0x3c,0x7e,0x73,0xf, 0x1b,0x7a,0x73,0x13,0xfc, +0x7e,0x73,0xf, 0x1c,0x7a,0x73,0x13,0xfd,0x7e,0xa3,0x13,0xfc,0xbe,0xa0,0x1, 0x38, +0x3, 0x7e,0xf0,0x1, 0x7e,0xb3,0xf, 0x1c,0x70,0x3, 0xe4,0x80,0x10,0x7e,0xb3,0x15, +0xa1,0x4, 0x7a,0xb3,0x15,0xa1,0xbe,0xb0,0xc8,0x28,0x6, 0x74,0x14,0x7a,0xb3,0x15, +0xa1,0x7e,0xb3,0x15,0xa1,0xbe,0xb0,0x6, 0x50,0x3, 0x7e,0xf0,0x1, 0xbe,0xa0,0x1, +0x28,0x3f,0x7e,0x34,0x0, 0x21,0x7e,0x24,0x0, 0x23,0x7e,0x14,0x13,0xfe,0x12,0x65, +0xa8,0x7e,0x34,0x0, 0x25,0x7e,0x24,0x0, 0x27,0x7e,0x14,0x13,0xb6,0x12,0x65,0xa8, +0x7e,0x35,0x25,0x9e,0x35,0x21,0x12,0x6d,0xd0,0xbe,0x34,0x0, 0x80,0x18,0xf, 0x7e, +0x35,0x27,0x9e,0x35,0x23,0x12,0x6d,0xd0,0xbe,0x34,0x0, 0x80,0x8, 0x3, 0x7e,0xf0, +0x1, 0xbe,0xf0,0x0, 0x28,0x3, 0x2, 0x31,0x24,0x7e,0xf3,0x15,0x9f,0xbe,0xf3,0x15, +0x29,0x50,0x55,0x7e,0x73,0x15,0x29,0xbe,0x73,0x13,0xfc,0x28,0x12,0x7e,0x24,0x15, +0x56,0x7e,0x34,0x14,0xe3,0x7e,0x14,0x0, 0x48,0x12,0x6d,0x3c,0x2, 0x31,0x24,0x7e, +0x73,0x15,0x9e,0xbe,0x70,0x2, 0x58,0x22,0x7e,0x24,0x15,0x56,0x7e,0x34,0x14,0xe3, +0x7e,0x14,0x0, 0x48,0x12,0x6d,0x3c,0x74,0x1, 0x7a,0xb3,0x15,0xa0,0xe4,0x7a,0xb3, +0x15,0x53,0x7e,0xb3,0x15,0x9e,0x4, 0x2, 0x31,0x60,0x74,0x1, 0x7a,0xb3,0x15,0xa0, +0xe4,0x7a,0xb3,0x15,0x53,0x2, 0x31,0x60,0xbe,0xf3,0x15,0x29,0x78,0x2d,0x7e,0xa3, +0x15,0x29,0xbe,0xa3,0x13,0xfc,0x50,0xd, 0x74,0x1, 0x7a,0xb3,0x15,0xa0,0xe4,0x7a, +0xb3,0x15,0x53,0x80,0x6b,0xbe,0xa3,0x13,0xfc,0x28,0x4, 0x74,0x1, 0x80,0x1, 0xe4, +0x7a,0xb3,0x15,0xa0,0xe4,0x7a,0xb3,0x15,0x53,0x80,0x55,0x7e,0x73,0x15,0x29,0xbe, +0x73,0x13,0xfc,0x50,0x1a,0x7e,0x24,0x15,0x56,0x7e,0x34,0x14,0xe3,0x7e,0x14,0x0, +0x48,0x12,0x6d,0x3c,0xe4,0x7a,0xb3,0x15,0xa0,0x7a,0xb3,0x15,0x53,0x80,0x31,0x7e, +0x73,0x15,0x53,0xbe,0x70,0x2, 0x58,0x1c,0x7e,0x24,0x15,0x56,0x7e,0x34,0x14,0xe3, +0x7e,0x14,0x0, 0x48,0x12,0x6d,0x3c,0x74,0x1, 0x7a,0xb3,0x15,0xa0,0x7e,0xb3,0x15, +0x53,0x4, 0x80,0x7, 0x74,0x1, 0x7a,0xb3,0x15,0xa0,0xe4,0x7a,0xb3,0x15,0x53,0xe4, +0x7a,0xb3,0x15,0x9e,0x7e,0xb3,0x15,0xa0,0x14,0x68,0x9, 0x4, 0x78,0x15,0x7e,0x24, +0x13,0xb6,0x80,0x4, 0x7e,0x24,0x14,0xe3,0x7e,0x34,0x15,0x56,0x7e,0x14,0x0, 0x48, +0x12,0x6d,0x3c,0x7e,0x73,0x15,0x29,0x7a,0x73,0x15,0x9f,0x7e,0x24,0x13,0xb6,0x7e, +0x34,0x14,0xe3,0x7e,0x14,0x0, 0x48,0x12,0x6d,0x3c,0x7e,0x24,0x15,0x56,0x7e,0x34, +0xe, 0xd, 0x7e,0x14,0x0, 0x46,0x12,0x6d,0x3c,0x7e,0x73,0x15,0x9c,0x7a,0x73,0xf, +0x1b,0x7e,0x73,0x15,0x9d,0x7a,0x73,0xf, 0x1c,0xda,0xf8,0x22,0xca,0x79,0x7d,0x73, +0x12,0x60,0xce,0x49,0x27,0x0, 0x25,0x7e,0x34,0x1c,0xa, 0x1b,0x38,0x20,0x49,0x27, +0x0, 0x27,0x7e,0x34,0x1c,0xc, 0x1b,0x38,0x20,0x49,0x27,0x0, 0x29,0x7e,0x34,0x1c, +0xe, 0x1b,0x38,0x20,0x49,0x27,0x0, 0x2b,0x7e,0x34,0x1c,0x10,0x1b,0x38,0x20,0x49, +0x27,0x0, 0x2d,0x7e,0x34,0x1c,0x12,0x1b,0x38,0x20,0x49,0x27,0x0, 0x2f,0x7e,0x34, +0x1c,0x14,0x1b,0x38,0x20,0x49,0x27,0x0, 0x6, 0x9, 0x72,0x0, 0x1, 0xa, 0x37,0x7c, +0x67,0x6c,0x77,0x7e,0x29,0x30,0xa, 0x13,0x4d,0x13,0x7e,0x34,0x1c,0x18,0x1b,0x38, +0x10,0x9, 0x72,0x0, 0x3, 0xa, 0x37,0x7c,0x67,0x6c,0x77,0x9, 0x52,0x0, 0x2, 0xa, +0x25,0x4d,0x23,0x7e,0x34,0x1c,0x1a,0x1b,0x38,0x20,0x9, 0x77,0x0, 0x1, 0xa, 0x27, +0x7e,0x34,0x1c,0x16,0x1b,0x38,0x20,0x6d,0x22,0x7e,0x34,0x1c,0x1c,0x1b,0x38,0x20, +0x6c,0xaa,0xa, 0x2a,0x49,0x37,0x0, 0xa, 0x2d,0x32,0x7e,0x39,0xb0,0xa, 0x2b,0x7e, +0x34,0x1c,0x1e,0x1b,0x38,0x20,0xb, 0xa0,0xbe,0xa0,0x18,0x78,0xe5,0x6d,0x22,0x7e, +0x34,0x1c,0x1c,0x1b,0x38,0x20,0x6c,0xaa,0x7e,0x50,0x2, 0xac,0x5a,0x49,0x37,0x0, +0x4b,0x2d,0x32,0xb, 0x38,0x20,0x7e,0x34,0x1c,0x20,0x1b,0x38,0x20,0xb, 0xa0,0xbe, +0xa0,0x19,0x78,0xe4,0x6d,0x22,0x7e,0x34,0x1c,0x1c,0x1b,0x38,0x20,0x6c,0xaa,0x7e, +0x70,0x2, 0xac,0x7a,0x2e,0x34,0x29,0x80,0x7e,0x24,0x0, 0xff,0xb, 0x1a,0x30,0x7e, +0x24,0x1c,0x22,0x1b,0x28,0x30,0xb, 0xa0,0xbe,0xa0,0xff,0x78,0xe2,0x7e,0x14,0x2b, +0x7e,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0x30,0x1b,0x28,0x30,0x7e,0x24,0x1, 0x0, 0x7e, +0x34,0x1c,0x1c,0x1b,0x38,0x20,0x6c,0xaa,0x7e,0x70,0x2, 0xac,0x7a,0x2e,0x34,0x2b, +0x80,0x7e,0x24,0x0, 0xff,0xb, 0x1a,0x20,0x7e,0x34,0x1c,0x22,0x1b,0x38,0x20,0xb, +0xa0,0xbe,0xa0,0x10,0x40,0xe2,0x7d,0x37,0x12,0x5d,0xbd,0x49,0x27,0x0, 0x39,0x7e, +0x34,0x1c,0x28,0x1b,0x38,0x20,0x7e,0x24,0x0, 0x1, 0x7e,0x34,0x1c,0x2a,0x1b,0x38, +0x20,0x49,0x27,0x0, 0x31,0x7e,0x34,0x1c,0x2c,0x1b,0x38,0x20,0x49,0x27,0x0, 0x33, +0x7e,0x34,0x1c,0x2e,0x1b,0x38,0x20,0x49,0x37,0x0, 0x45,0x49,0x27,0x0, 0xa, 0x9, +0xb7,0x0, 0x1, 0x12,0x64,0x6a,0x49,0x37,0x0, 0x47,0x12,0x7, 0xc9,0x49,0x37,0x0, +0x49,0x49,0x27,0x0, 0xa, 0x9, 0xb7,0x0, 0x1, 0x12,0x5c,0x97,0x49,0x27,0x0, 0x35, +0x7e,0x34,0x1c,0x52,0x1b,0x38,0x20,0x49,0x27,0x0, 0x3d,0x7e,0x34,0x1c,0x54,0x1b, +0x38,0x20,0x49,0x27,0x0, 0x37,0x7e,0x34,0x1c,0x56,0x1b,0x38,0x20,0xda,0x79,0x22, +0xca,0x3b,0x6d,0x33,0x7a,0x35,0x23,0x7e,0xb3,0xf, 0x1b,0x60,0x6, 0x7e,0xb3,0xf, +0x1c,0x60,0x11,0xe5,0x22,0x60,0x5, 0x75,0x19,0x1, 0x80,0x3, 0x75,0x19,0x0, 0xe5, +0x19,0x2, 0x35,0x1f,0x7e,0xb3,0xd, 0x18,0xf5,0x21,0x7e,0x73,0xd, 0x19,0x7a,0x71, +0x22,0x6d,0x66,0x75,0x25,0x0, 0x75,0x26,0x0, 0xa, 0x37,0x7d,0x73,0x80,0x3a,0x7e, +0x51,0x21,0x74,0x18,0xac,0x5b,0x2d,0x27,0x3e,0x24,0x2e,0x27,0xf, 0xda,0xb, 0x28, +0x10,0xbe,0x14,0x0, 0x32,0x8, 0x28,0x5, 0x25,0xe5,0x21,0xbe,0xb0,0x0, 0x28,0x8, +0x49,0x12,0xff,0xd0,0x2d,0x61,0x5, 0x26,0xe5,0x21,0xbe,0xb0,0xc, 0x50,0x8, 0x49, +0x22,0x0, 0x30,0x2d,0x62,0x5, 0x26,0x1b,0x74,0xbe,0x74,0x0, 0x0, 0x58,0xc0,0x7d, +0x73,0x80,0x38,0x7e,0x71,0x21,0x74,0x18,0xac,0x7b,0x2d,0x37,0x3e,0x34,0x2e,0x37, +0xf, 0xda,0xb, 0x38,0x20,0xbe,0x24,0x0, 0x32,0x8, 0x2c,0x5, 0x25,0xe5,0x21,0xbe, +0xb0,0x0, 0x28,0x8, 0x49,0x23,0xff,0xd0,0x2d,0x62,0x5, 0x26,0xe5,0x21,0xbe,0xb0, +0xc, 0x50,0x8, 0x49,0x33,0x0, 0x30,0x2d,0x63,0x5, 0x26,0x7d,0x37,0xb, 0x34,0x7d, +0x73,0xbe,0x34,0x0, 0x18,0x48,0xbc,0xe5,0x25,0xbe,0xb0,0x3, 0x50,0x2, 0x80,0x12, +0x7d,0x36,0x12,0x6d,0xd0,0xe5,0x26,0xa, 0x2b,0x12,0x47,0xf2,0xbe,0x34,0x0, 0xf, +0x8, 0x8, 0x75,0x19,0x1, 0x74,0x1, 0x2, 0x35,0x1f,0x6d,0x33,0xe5,0x21,0xbe,0xb0, +0x0, 0x28,0x19,0x7e,0x51,0x21,0x74,0x18,0xac,0x5b,0xe5,0x22,0xa, 0x1b,0x2d,0x21, +0x3e,0x24,0x2e,0x27,0xf, 0xda,0x49,0x22,0xff,0xd0,0x2d,0x32,0xe5,0x21,0xbe,0xb0, +0xc, 0x50,0x19,0x7e,0x51,0x21,0x74,0x18,0xac,0x5b,0xe5,0x22,0xa, 0x1b,0x2d,0x21, +0x3e,0x24,0x2e,0x27,0xf, 0xda,0x49,0x22,0x0, 0x30,0x2d,0x32,0x7e,0xa0,0x8, 0x80, +0x2d,0x7e,0x50,0x2, 0xac,0x5a,0x7d,0x12,0x2e,0x14,0x6d,0xc0,0x7a,0x31,0x82,0x7a, +0x21,0x83,0xe4,0x93,0x1a,0x1b,0xbd,0x13,0x8, 0x14,0x2e,0x24,0x6d,0xc1,0x7a,0x51, +0x82,0x7a,0x41,0x83,0xe4,0x93,0x1a,0x2b,0x2e,0x25,0x23,0x7a,0x25,0x23,0x7c,0x5a, +0x1b,0xa0,0xa5,0xbd,0x0, 0xcb,0x7e,0x71,0x21,0x74,0x18,0xac,0x7b,0xe5,0x22,0xa, +0x2b,0x2d,0x32,0x3e,0x34,0x2e,0x37,0xf, 0xda,0xb, 0x38,0x30,0x12,0x6d,0xd0,0xbe, +0x34,0x3, 0xe8,0x8, 0xa, 0x7e,0x35,0x23,0x2e,0x34,0x0, 0x28,0x7a,0x35,0x23,0x7e, +0x35,0x23,0xbe,0x34,0x0, 0xfa,0x28,0x7, 0x7e,0x34,0x0, 0xfa,0x7a,0x35,0x23,0xe5, +0x19,0xa, 0x3b,0xbe,0x35,0x23,0x50,0x5, 0x7e,0x55,0x23,0xf5,0x19,0xe5,0x19,0xda, +0x3b,0x22,0xca,0x3b,0x7c,0x9b,0x7d,0xa3,0xbe,0x90,0x1, 0x28,0x1e,0xa, 0x15,0x1b, +0x15,0xa, 0x39,0xbd,0x31,0x58,0x14,0x74,0x2, 0xac,0xb9,0x7d,0xb5,0x2d,0xba,0x1b, +0xb6,0xb, 0xb8,0x30,0x12,0x6d,0x53,0x7d,0xb3,0x80,0x7, 0xbe,0x90,0x1, 0x78,0x15, +0x6d,0xbb,0x7e,0x70,0x2, 0xac,0x79,0x2d,0x3a,0x1b,0x35,0xb, 0x38,0x30,0x12,0x6d, +0x53,0x7d,0xc3,0x80,0x8, 0x4c,0x99,0x78,0x38,0x6d,0xcc,0x7d,0xbc,0x74,0x2, 0xac, +0xb9,0x7d,0xd5,0x2d,0xda,0xb, 0xd8,0x30,0x12,0x6d,0x53,0x7d,0xd3,0x7e,0x70,0x2, +0xac,0x79,0x2d,0x3a,0x49,0x33,0x0, 0x2, 0x12,0x6d,0x53,0x7d,0xe3,0x74,0x2, 0xac, +0xb9,0x7d,0xf5,0x2d,0xfa,0x49,0x3f,0x0, 0x4, 0x12,0x6d,0x53,0x7d,0xf3,0x2, 0x36, +0x2d,0x7c,0xb5,0x24,0xfe,0xbc,0xb9,0x78,0x46,0x74,0x2, 0xac,0xb9,0x7d,0xb5,0x2d, +0xba,0x1b,0xb6,0xb, 0xb8,0x30,0x12,0x6d,0x53,0x7d,0xb3,0x7e,0x70,0x2, 0xac,0x79, +0x2d,0x3a,0x1b,0x35,0xb, 0x38,0x30,0x12,0x6d,0x53,0x7d,0xc3,0x74,0x2, 0xac,0xb9, +0x7d,0xd5,0x2d,0xda,0xb, 0xd8,0x30,0x12,0x6d,0x53,0x7d,0xd3,0x74,0x2, 0xac,0xb9, +0x2d,0xa5,0x49,0x3a,0x0, 0x2, 0x12,0x6d,0x53,0x7d,0xe3,0x6d,0xff,0x80,0x3e,0x7c, +0xb5,0x14,0xbc,0xb9,0x78,0x37,0x74,0x2, 0xac,0xb9,0x7d,0xb5,0x2d,0xba,0x1b,0xb6, +0xb, 0xb8,0x30,0x12,0x6d,0x53,0x7d,0xb3,0x7e,0x70,0x2, 0xac,0x79,0x2d,0x3a,0x1b, +0x35,0xb, 0x38,0x30,0x12,0x6d,0x53,0x7d,0xc3,0x74,0x2, 0xac,0xb9,0x7d,0xd5,0x2d, +0xda,0xb, 0xd8,0x30,0x12,0x6d,0x53,0x7d,0xd3,0x6d,0xff,0x7d,0xef,0xa, 0x79,0x6d, +0x66,0x7f,0x3, 0x1b,0xc, 0x7d,0x3c,0x1a,0x26,0x1a,0x24,0x12,0x48,0x24,0x7f,0x41, +0x7f,0x3, 0x1b,0xd, 0x7d,0x3b,0x1a,0x26,0x1a,0x24,0x12,0x48,0x24,0x2f,0x41,0x7d, +0x3d,0x1a,0x26,0x1a,0x24,0xa, 0x19,0x6d,0x0, 0x12,0x48,0x24,0x2f,0x41,0xa, 0x19, +0x6d,0x0, 0xb, 0xc, 0x7d,0x3e,0x1a,0x26,0x1a,0x24,0x12,0x48,0x24,0x2f,0x41,0xa, +0x19,0x6d,0x0, 0xb, 0xd, 0x7d,0x3f,0x1a,0x26,0x1a,0x24,0x12,0x48,0x24,0x2f,0x14, +0x7d,0x1c,0x1a,0x2, 0x1a,0x0, 0x7d,0x5b,0x1a,0x4a,0x1a,0x48,0x2f,0x20,0x7d,0x1d, +0x1a,0x2, 0x1a,0x0, 0x2f,0x2, 0x7d,0x5e,0x1a,0x4a,0x1a,0x48,0x2f,0x20,0x7d,0x1f, +0x1a,0x2, 0x1a,0x0, 0x2f,0x2, 0x74,0x6, 0x2f,0x11,0x14,0x78,0xfb,0x12,0x48,0x40, +0x2e,0x34,0x0, 0x20,0xda,0x3b,0x22,0xca,0x3b,0x7e,0xf3,0xf, 0x1b,0x7e,0x64,0xe, +0xdf,0xe5,0x51,0xb4,0x1, 0x21,0x7e,0xb3,0xf, 0x1c,0xb4,0x1, 0x1a,0x7e,0xb3,0xd, +0xf7,0xb4,0x1, 0x13,0x7e,0x73,0xd, 0xf9,0xbe,0x70,0x15,0x40,0xa, 0x74,0x1e,0x7a, +0xb3,0xf, 0x26,0x74,0x14,0x80,0x8, 0x74,0x5, 0x7a,0xb3,0xf, 0x26,0x74,0x4, 0x7a, +0xb3,0xf, 0x27,0x4c,0xff,0x78,0xd, 0x75,0x1a,0x0, 0x7e,0xb3,0xf, 0x26,0x12,0x6e, +0xa1,0x2, 0x38,0x47,0xe5,0x51,0xb4,0x1, 0x1b,0x7e,0xb3,0xf, 0x1c,0xb4,0x1, 0x14, +0x7e,0xb3,0xd, 0xf7,0xb4,0x1, 0xd, 0x7e,0x73,0xd, 0xf9,0xbe,0x70,0x15,0x40,0x4, +0x74,0x1, 0x80,0x1, 0xe4,0xb4,0x1, 0x9, 0xe5,0x1a,0x70,0x5, 0x75,0x17,0x1e,0xf5, +0x18,0xe5,0x51,0xb4,0x1, 0x1b,0x7e,0xb3,0xf, 0x1c,0xb4,0x1, 0x14,0x7e,0xb3,0xd, +0xf7,0xb4,0x1, 0xd, 0x7e,0x73,0xd, 0xf9,0xbe,0x70,0x15,0x40,0x4, 0x74,0x1, 0x80, +0x1, 0xe4,0xf5,0x1a,0x6c,0xee,0x7e,0x70,0x7, 0xac,0x7e,0x9, 0xb3,0xe, 0x9d,0xf5, +0x21,0xbe,0xb0,0xff,0x78,0x3, 0x2, 0x38,0x3d,0xe5,0x21,0xa, 0x2b,0x2d,0x26,0x7e, +0x29,0xb0,0xb4,0x2, 0x2, 0x80,0x3, 0x2, 0x38,0x3d,0x49,0x33,0xe, 0x99,0x7e,0xa1, +0x21,0x74,0x4, 0xa4,0x49,0x25,0x13,0x74,0x12,0x6d,0xb0,0x7a,0x35,0x22,0x74,0x7, +0xac,0xbe,0x49,0x35,0xe, 0x9b,0x7e,0xa1,0x21,0x74,0x4, 0xa4,0x49,0x25,0x13,0x76, +0x12,0x6d,0xb0,0x7a,0x35,0x24,0xe5,0x17,0xa, 0x3b,0xbe,0x35,0x22,0x28,0x56,0xbe, +0x35,0x24,0x28,0x51,0x7e,0xa1,0x21,0x74,0x4, 0xa4,0x49,0x35,0x13,0x74,0x74,0x7, +0xac,0xbe,0x59,0x35,0xe, 0x99,0x7e,0xa1,0x21,0x74,0x4, 0xa4,0x49,0x35,0x13,0x76, +0x74,0x7, 0xac,0xbe,0x59,0x35,0xe, 0x9b,0xe5,0x21,0xa, 0x3b,0x2d,0x36,0x7e,0x39, +0xb0,0xb4,0x2, 0x7, 0xbe,0xf0,0x0, 0x28,0x2, 0x1b,0xf0,0x4c,0xff,0x78,0x4e,0x5, +0x18,0x7e,0x73,0xf, 0x27,0xbe,0x71,0x17,0x28,0x43,0xe5,0x18,0xbe,0xb0,0x32,0x40, +0x3c,0x5, 0x17,0x80,0x35,0x7e,0x90,0x7, 0xac,0x9e,0x49,0x34,0xe, 0x99,0x7e,0xa1, +0x21,0x74,0x4, 0xa4,0x59,0x35,0x13,0x74,0x49,0x34,0xe, 0x9b,0x59,0x35,0x13,0x76, +0x7e,0x73,0xf, 0x26,0xbe,0x71,0x17,0x78,0x8, 0x7e,0xb3,0xf, 0x27,0xf5,0x17,0x80, +0x9, 0xe5,0x17,0xbe,0xb0,0x1, 0x28,0x2, 0x15,0x17,0x75,0x18,0x0, 0xb, 0xe0,0xbe, +0xe0,0xa, 0x68,0x3, 0x2, 0x37,0x56,0xda,0x3b,0x22,0xca,0x3b,0x6c,0xff,0x7e,0xb3, +0x10,0x2b,0xf5,0x24,0x7e,0xe3,0x10,0x2c,0x1b,0xe0,0x6c,0xdd,0x7e,0x70,0x30,0xac, +0x7d,0x2e,0x37,0xf, 0xda,0x49,0x33,0x0, 0x2e,0x74,0x2, 0xac,0xbd,0x59,0x35,0x13, +0xb6,0xb, 0xd0,0xbe,0xd0,0xd, 0x78,0xe4,0x7e,0xb3,0xf, 0xd3,0xb4,0x1, 0x2, 0x80, +0x3, 0x2, 0x39,0xc1,0x6c,0xcc,0x2, 0x39,0xb2,0x7e,0x70,0x2, 0xac,0x7c,0x9, 0xb3, +0xd, 0x18,0xf5,0x22,0x9, 0xb3,0xd, 0x19,0xf5,0x23,0x75,0x21,0x3, 0x7e,0x73,0xe, +0x12,0xbe,0x70,0x20,0x50,0xa, 0x7e,0xb3,0xd, 0xf7,0xb4,0x1, 0x3, 0x75,0x21,0x1, +0x7e,0xb3,0xd, 0xfd,0xb4,0x1, 0x3, 0x75,0x21,0x2, 0x74,0x8, 0x7a,0xb3,0xf, 0x53, +0xe5,0x22,0xbe,0xb0,0x0, 0x28,0x21,0xe5,0x24,0xa, 0x2b,0x1b,0x24,0xe5,0x22,0xa, +0x3b,0xbd,0x32,0x58,0x13,0xe5,0x23,0xbe,0xb0,0x0, 0x28,0xc, 0xa, 0x2e,0x1b,0x24, +0xe5,0x23,0xa, 0x3b,0xbd,0x32,0x48,0x3, 0x75,0x21,0x2, 0x75,0x25,0x0, 0x80,0x45, +0xe5,0x25,0xbc,0xbc,0x68,0x3d,0x7e,0x71,0x25,0x74,0x2, 0xac,0x7b,0x9, 0xa3,0xd, +0x18,0x7a,0xa1,0x26,0x9, 0xb3,0xd, 0x19,0xf5,0x27,0xa, 0x2a,0xe5,0x22,0xa, 0x3b, +0x9d,0x32,0x12,0x6d,0xd0,0xbe,0x34,0x0, 0x3, 0x18,0x18,0xe5,0x27,0xa, 0x2b,0xe5, +0x23,0xa, 0x3b,0x9d,0x32,0x12,0x6d,0xd0,0xbe,0x34,0x0, 0x3, 0x18,0x5, 0x75,0x21, +0x1, 0x80,0xb, 0x5, 0x25,0x7e,0x73,0xd, 0xf7,0xbe,0x71,0x25,0x38,0xb2,0xe5,0x51, +0xb4,0x1, 0x20,0x7e,0xb3,0xf, 0x1c,0xb4,0x1, 0x19,0x7e,0xb3,0xd, 0xf7,0xb4,0x1, +0x12,0x7e,0x73,0xd, 0xf9,0xbe,0x70,0x15,0x40,0x9, 0x75,0x21,0x3, 0x74,0x1e,0x7a, +0xb3,0xf, 0x53,0xe5,0x23,0xbe,0xb0,0x17,0x50,0x1a,0x6c,0xdd,0x6d,0x33,0x7e,0x50, +0x30,0xac,0x5d,0x2e,0x27,0xf, 0xda,0x59,0x32,0x0, 0x2e,0xb, 0xd0,0xbe,0xd0,0xd, +0x78,0xec,0x80,0x3, 0x75,0x21,0x0, 0xe5,0x21,0x7c,0x7c,0x7c,0x6f,0x12,0x11,0xa0, +0x6c,0xdd,0x74,0x2, 0xac,0xbd,0x49,0x35,0x13,0xb6,0x7e,0x50,0x30,0xac,0x5d,0x2e, +0x27,0xf, 0xda,0x59,0x32,0x0, 0x2e,0xb, 0xd0,0xbe,0xd0,0xd, 0x78,0xe4,0xb, 0xf0, +0xb, 0xc0,0x7e,0x73,0xd, 0xf7,0xbc,0x7c,0x28,0x3, 0x2, 0x38,0x89,0x7a,0xf3,0xd, +0xf7,0xda,0x3b,0x22,0xca,0x3b,0x7d,0x73,0x7e,0xb3,0xd, 0xf7,0xf5,0x4c,0x7e,0x37, +0xf, 0xda,0x7a,0x35,0x4f,0x75,0x42,0x0, 0x7e,0xc0,0x1, 0x80,0x19,0xe5,0x42,0xa, +0x3b,0x2d,0x37,0x7e,0x39,0x60,0xa, 0x2c,0x2d,0x27,0x7e,0x29,0x70,0xbc,0x76,0x40, +0x3, 0x7a,0xc1,0x42,0xb, 0xc0,0xe5,0x4c,0xbc,0xbc,0x38,0xe1,0xe5,0x42,0xa, 0x3b, +0x2d,0x37,0x7e,0x39,0xb0,0xf5,0x42,0x75,0x44,0x0, 0x7e,0xc0,0x1, 0x2, 0x3b,0xe, +0x75,0x4b,0x0, 0x6d,0x33,0x7a,0x35,0x4d,0x6c,0xdd,0x75,0x45,0x0, 0x75,0x46,0x0, +0x75,0x43,0x0, 0x2, 0x3a,0xc3,0x7e,0x71,0x43,0x74,0x2, 0xac,0x7b,0x9, 0xb3,0xd, +0x18,0xf5,0x47,0x9, 0xb3,0xd, 0x19,0xf5,0x48,0xe5,0x43,0xa, 0x3b,0x2d,0x37,0x7e, +0x39,0x70,0xbc,0x7c,0x78,0x7b,0xb, 0xd0,0xe5,0x47,0x25,0x45,0xf5,0x45,0xe5,0x48, +0x25,0x46,0xf5,0x46,0x7e,0x51,0x47,0xac,0x5d,0xe5,0x45,0xa, 0x3b,0x9d,0x32,0x12, +0x6d,0xd0,0x7c,0xb7,0xf5,0x49,0x7e,0x51,0x48,0xac,0x5d,0xe5,0x46,0xa, 0x3b,0x9d, +0x32,0x12,0x6d,0xd0,0x7c,0xb7,0xf5,0x4a,0x7e,0x51,0x4b,0xac,0x5d,0xe5,0x49,0xa, +0x3b,0xbd,0x32,0x8, 0x9, 0xa, 0x2d,0x12,0x47,0xf2,0x7c,0xb7,0xf5,0x4b,0x7e,0x51, +0x4b,0xac,0x5d,0xe5,0x4a,0xa, 0x3b,0xbd,0x32,0x8, 0x9, 0xa, 0x2d,0x12,0x47,0xf2, +0x7c,0xb7,0xf5,0x4b,0x7e,0x71,0x47,0x74,0x18,0xac,0x7b,0xe5,0x48,0xa, 0x2b,0x2d, +0x32,0x3e,0x34,0x2e,0x35,0x4f,0xb, 0x38,0x30,0xbe,0x35,0x4d,0x8, 0x3, 0x7a,0x35, +0x4d,0x5, 0x43,0xe5,0x4c,0xbe,0xb1,0x43,0x28,0x3, 0x2, 0x3a,0x26,0xbe,0xd0,0x0, +0x28,0x3a,0xe5,0x45,0x8c,0xbd,0xf5,0x45,0xe5,0x46,0x8c,0xbd,0xf5,0x46,0x7e,0xa1, +0x45,0x7e,0x71,0x44,0x74,0x2, 0xac,0x7b,0x19,0xa3,0x15,0x2b,0xe5,0x46,0x19,0xb3, +0x15,0x2c,0x7e,0x25,0x4d,0x7e,0x71,0x45,0x74,0x18,0xac,0x7b,0xe5,0x46,0xa, 0x1b, +0x2d,0x31,0x3e,0x34,0x2e,0x35,0x4f,0x1b,0x38,0x20,0x5, 0x44,0xb, 0xc0,0xe5,0x42, +0xbc,0xbc,0x40,0x3, 0x2, 0x3a,0x10,0xe5,0x44,0xda,0x3b,0x22,0x74,0xd, 0x7a,0xb3, +0x10,0x2b,0x74,0x18,0x7a,0xb3,0x10,0x2c,0x74,0x4, 0x7a,0xb3,0x10,0x2d,0xe4,0x7a, +0xb3,0x10,0x2e,0x7e,0x34,0x11,0x9b,0x7a,0x37,0x10,0x2f,0x7e,0x34,0x11,0x97,0x7a, +0x37,0x10,0x31,0x7e,0x34,0xf, 0xc5,0x7a,0x37,0x10,0x33,0x7e,0x34,0xf, 0xad,0x7a, +0x37,0x10,0x35,0x74,0x15,0x7a,0xb3,0x10,0x37,0x74,0x17,0x7a,0xb3,0x10,0x38,0x74, +0x4, 0x7a,0xb3,0x10,0x3a,0xe4,0x7a,0xb3,0x10,0x3b,0x7a,0xb3,0x10,0x3c,0x7a,0xb3, +0x10,0x3d,0x74,0x2, 0x7a,0xb3,0x10,0x3e,0x74,0x45,0x7a,0xb3,0x10,0x3f,0x74,0x71, +0x7a,0xb3,0x10,0x40,0x74,0x3, 0x7a,0xb3,0x10,0x41,0x7e,0x34,0x1f,0xff,0x7a,0x37, +0x10,0x42,0x6d,0x33,0x7a,0x37,0x10,0x44,0x7e,0x34,0xd, 0xfe,0x7a,0x37,0x10,0x46, +0x7e,0x34,0xf, 0xdc,0x7a,0x37,0x10,0x48,0x74,0x20,0x7a,0xb3,0x10,0x4a,0x74,0xa, +0x7a,0xb3,0x10,0x4b,0xe4,0x7a,0xb3,0x10,0x4c,0x7a,0xb3,0x10,0x4d,0x7a,0xb3,0x10, +0x4e,0x74,0x2, 0x7a,0xb3,0x10,0x4f,0x7e,0x34,0x0, 0xf4,0x7a,0x37,0x10,0x52,0x7e, +0x34,0x3f,0xe0,0x7a,0x37,0x10,0x50,0x7e,0x34,0x29,0x28,0x7a,0x37,0x10,0x54,0x7e, +0x34,0x10,0x91,0x7a,0x37,0x10,0x62,0x7e,0x34,0x0, 0x3d,0x7a,0x37,0x10,0x64,0x7e, +0x34,0x0, 0x22,0x7a,0x37,0x10,0x66,0x7e,0x34,0x4c,0x0, 0x7a,0x37,0x10,0x56,0x7e, +0x34,0x3, 0xcf,0x7a,0x37,0x10,0x58,0x7e,0x34,0x7, 0x9a,0x7a,0x37,0x10,0x5a,0x7e, +0x34,0x5, 0x84,0x7a,0x37,0x10,0x5c,0x7e,0x34,0x0, 0x9, 0x7a,0x37,0x10,0x5e,0x7e, +0x34,0x0, 0xf, 0x7a,0x37,0x10,0x60,0x7e,0x34,0x0, 0x5d,0x7a,0x37,0x10,0x68,0xe4, +0x7a,0xb3,0x10,0x6a,0x74,0x7, 0x7a,0xb3,0x10,0x6b,0x7e,0x34,0x10,0xff,0x7a,0x37, +0x10,0x6c,0x7e,0x34,0xf, 0xa0,0x7a,0x37,0x10,0x6e,0x7e,0x34,0xf, 0x2e,0x7a,0x37, +0x10,0x70,0x12,0x42,0x8d,0x7e,0x34,0x11,0xe9,0x7a,0x37,0x10,0x72,0x7e,0x34,0xf, +0x88,0x7a,0x37,0x10,0x74,0x7e,0x34,0x11,0x17,0x7a,0x37,0x10,0x76,0x2, 0x6c,0x58, +0xca,0x69,0xca,0xf8,0x7d,0xb1,0x7d,0xf2,0x7d,0xe3,0x9f,0x0, 0x7f,0x60,0x7f,0x40, +0x6d,0x66,0x7a,0x67,0x13,0xb6,0x7f,0x10,0x7d,0xa6,0x75,0x21,0x0, 0x6c,0xaa,0x80, +0x4b,0x7e,0x30,0x2, 0xac,0x3a,0x7d,0xa1,0x2d,0xae,0xb, 0xa8,0xa0,0x7c,0xba,0x20, +0xe0,0x1e,0xbd,0xab,0x8, 0x4, 0x7d,0xab,0x80,0xa, 0x6d,0x11,0x9d,0x1b,0xbd,0x1a, +0x8, 0x2, 0x7d,0xa1,0x7d,0x1a,0x1a,0x2, 0x1a,0x0, 0x2f,0x60,0x5, 0x21,0x80,0x1a, +0xbd,0xab,0x8, 0x4, 0x7d,0xab,0x80,0xa, 0x6d,0x11,0x9d,0x1b,0xbd,0x1a,0x8, 0x2, +0x7d,0xa1,0x7d,0x1a,0x1a,0x2, 0x1a,0x0, 0x2f,0x40,0xb, 0xa0,0x7e,0xf3,0x10,0x2c, +0xbc,0xfa,0x38,0xad,0xe5,0x21,0xa, 0x1b,0x6d,0x0, 0x7f,0x16,0x12,0x48,0x91,0x7a, +0x37,0x13,0xb6,0xe5,0x21,0xa, 0x3b,0x6d,0x22,0xa, 0x1f,0x6d,0x0, 0x9f,0x1, 0x7f, +0x14,0x12,0x48,0x91,0x6c,0xaa,0x80,0x2f,0x7c,0xba,0x7e,0x30,0x2, 0x7c,0x9a,0x20, +0xe0,0xf, 0xac,0x93,0x7d,0x14,0x2d,0x1e,0xb, 0x18,0x0, 0x9e,0x7, 0x13,0xb6,0x80, +0xd, 0xac,0x93,0x7d,0x14,0x2d,0x1e,0xb, 0x18,0x0, 0x7d,0x13,0x9d,0x1, 0x7d,0x14, +0x2d,0x1f,0x1b,0x18,0x0, 0xb, 0xa0,0x7e,0xb3,0x10,0x2c,0xbc,0xba,0x38,0xc9,0x9f, +0x66,0x7a,0x67,0x13,0xb6,0x6c,0xaa,0x80,0x29,0x7e,0x70,0x2, 0xac,0x7a,0x7d,0xa3, +0x2d,0xae,0x49,0xaa,0x0, 0x30,0xbd,0xab,0x8, 0x4, 0x7d,0xab,0x80,0xa, 0x6d,0x33, +0x9d,0x3b,0xbd,0x3a,0x8, 0x2, 0x7d,0xa3,0x7d,0x3a,0x1a,0x26,0x1a,0x24,0x2f,0x61, +0xb, 0xa0,0x7e,0x63,0x10,0x2b,0xbc,0x6a,0x38,0xcf,0xa, 0x16,0x6d,0x0, 0x7f,0x16, +0x12,0x48,0x91,0x7a,0x37,0x13,0xb6,0x6c,0xaa,0x80,0x1d,0x7e,0x70,0x2, 0x7c,0x5a, +0xac,0x57,0x7d,0x32,0x2d,0x3e,0x49,0x43,0x0, 0x30,0x9e,0x47,0x13,0xb6,0x7d,0x32, +0x2d,0x3f,0x59,0x43,0x0, 0x30,0xb, 0xa0,0x7e,0xb3,0x10,0x2b,0xbc,0xba,0x38,0xdb, +0xda,0xf8,0xda,0x69,0x22,0x7e,0x50,0x1, 0xe4,0x7a,0xb3,0xe, 0xb, 0x74,0x1, 0x7a, +0xb3,0xe, 0xc, 0x7e,0xa3,0xd, 0xf7,0x4c,0xaa,0x78,0xb, 0x74,0x1, 0x7a,0xb3,0x16, +0xba,0xe4,0x7a,0xb3,0x16,0xbb,0xbe,0xa0,0x0, 0x28,0x5, 0xe4,0x7a,0xb3,0xe, 0xc, +0x7e,0x43,0xd, 0xfc,0xbe,0x40,0x0, 0x28,0x5, 0xe4,0x7a,0xb3,0xe, 0xc, 0x7e,0x43, +0xd, 0x17,0xbe,0x40,0x0, 0x28,0x6b,0x7e,0xb3,0x16,0xb4,0x70,0x65,0x7e,0xb3,0x16, +0xb6,0x70,0x5f,0x74,0x1, 0x7a,0xb3,0xe, 0xc, 0x6d,0x33,0x6c,0x44,0x7e,0x30,0x2, +0xac,0x34,0x2e,0x17,0xf, 0xd6,0xb, 0x18,0x10,0xbd,0x13,0x58,0x2, 0x7d,0x31,0xb, +0x40,0xa5,0xbc,0x25,0xe8,0xbe,0x34,0xf8,0xf8,0x58,0x5, 0x7e,0x50,0x5, 0x80,0x1f, +0xbe,0x34,0xfb,0x50,0x58,0x5, 0x7e,0x50,0x4, 0x80,0x14,0xbe,0x34,0xfc,0xe0,0x58, +0x5, 0x7e,0x50,0x3, 0x80,0x9, 0xbe,0x34,0xfe,0xd4,0x58,0x3, 0x7e,0x50,0x2, 0xbe, +0x34,0xfc,0x18,0x58,0x3c,0x74,0x1, 0x7a,0xb3,0xe, 0xb, 0xe4,0x7a,0xb3,0x10,0x3d, +0x80,0x2f,0x7e,0x43,0xd, 0x16,0xa5,0xbc,0x0, 0x1d,0xbe,0xa0,0x0, 0x28,0x18,0x7e, +0xb3,0x16,0xb4,0x70,0x12,0x7e,0xb3,0x16,0xb6,0x70,0xc, 0xbe,0x50,0x3, 0x50,0x3, +0x7e,0x50,0x3, 0x74,0x1, 0x80,0x6, 0xbe,0x40,0x0, 0x28,0x5, 0xe4,0x7a,0xb3,0xe, +0xc, 0x7e,0x43,0x16,0xba,0xbc,0x45,0x50,0x4, 0x7a,0x53,0x16,0xba,0xbe,0x50,0x2, +0x28,0x6, 0x74,0x1, 0x7a,0xb3,0x16,0xbb,0xbe,0xa0,0x0, 0x28,0x1b,0x7e,0xb3,0xd, +0x16,0x70,0x15,0x7e,0xb3,0x16,0xb4,0x70,0xf, 0x7e,0xb3,0x16,0xb6,0x70,0x9, 0xe4, +0x7a,0xb3,0xf, 0xd3,0x7a,0xb3,0xf, 0xd2,0x7e,0xb3,0x16,0xb6,0xb4,0x1, 0x18,0xe4, +0x7a,0xb3,0x16,0xb6,0x74,0x1, 0x7a,0xb3,0xe, 0xb, 0xe4,0x7a,0xb3,0x10,0x3d,0x7a, +0xb3,0xf, 0xd3,0x7a,0xb3,0xf, 0xd2,0x7e,0xa3,0x16,0xba,0x74,0x2, 0xa4,0x7a,0x57, +0xe, 0x5, 0x7a,0x57,0xe, 0x7, 0x22,0xca,0x79,0x7c,0xfb,0xe5,0x55,0xbe,0xb0,0x1, +0x68,0xf9,0xe5,0x55,0xb4,0x2, 0x2, 0x80,0x3, 0x2, 0x3f,0xe7,0xa9,0xd7,0xea,0x7e, +0x37,0xf, 0xda,0x7e,0x27,0xf, 0xd8,0x7e,0x14,0x18,0x0, 0x12,0x67,0x74,0x12,0x0, +0x6e,0x50,0x27,0xa9,0xc7,0xea,0x7e,0xe3,0x10,0x4d,0xe4,0x7a,0xb3,0x10,0x4d,0x7e, +0x24,0x5, 0xe0,0x7d,0x32,0x7e,0x14,0x18,0x0, 0x12,0x67,0x74,0x7a,0xe3,0x10,0x4d, +0x7e,0xb3,0x10,0xa5,0xb4,0x1, 0x3, 0x12,0x6a,0xd1,0x74,0x1, 0x7a,0xb3,0xf, 0xd3, +0x7e,0x34,0x9, 0x2e,0x7e,0x24,0x8, 0xe4,0x7e,0x14,0xa, 0x18,0x12,0x66,0x59,0x7e, +0x37,0xf, 0xd6,0x7e,0x27,0xf, 0xd4,0x7e,0x14,0xa, 0x62,0x12,0x66,0x59,0x6c,0xaa, +0x80,0x36,0x7e,0x50,0x2, 0xac,0x5a,0x49,0x32,0xa, 0x92,0xbe,0x34,0x13,0x88,0x40, +0xc, 0xbe,0x34,0x75,0x30,0x28,0x1a,0xbe,0x34,0x7e,0xf4,0x50,0x14,0x7e,0xb3,0x16, +0xb7,0x4, 0x7a,0xb3,0x16,0xb7,0xb4,0xa, 0xd, 0x74,0x1, 0x7a,0xb3,0x16,0xb6,0x80, +0xf, 0xe4,0x7a,0xb3,0x16,0xb7,0xb, 0xa0,0x7e,0xb3,0x10,0x2b,0xbc,0xba,0x38,0xc2, +0x7e,0xa3,0x16,0xb6,0xbe,0xa0,0x1, 0x78,0x7, 0x7e,0xb3,0x16,0xb5,0x4, 0x80,0x1, +0xe4,0x7a,0xb3,0x16,0xb5,0xbe,0xb0,0x0, 0x28,0x6, 0x74,0x1, 0x7a,0xb3,0x16,0xb4, +0x4c,0xaa,0x78,0xd, 0xe4,0x7a,0xb3,0x16,0xb5,0x7a,0xb3,0x16,0xb4,0x7a,0xb3,0x16, +0xb7,0x74,0x1, 0x7a,0xb3,0xf, 0xd2,0x12,0x66,0x93,0x12,0x6b,0x7c,0x7e,0xb3,0x11, +0xc, 0xb4,0x1, 0x31,0xbe,0xf0,0x1, 0x78,0x2c,0x7e,0xb3,0xd, 0xfc,0x70,0x26,0x12, +0x46,0xe9,0x7e,0xb3,0xd, 0xf7,0x70,0x19,0x7e,0x73,0x11,0x95,0xa, 0x37,0x9, 0x73, +0xf, 0x29,0x7a,0x73,0x10,0x4a,0xe4,0x7a,0xb3,0x10,0x4e,0x7a,0xb3,0x11,0xc, 0x80, +0x6, 0x6c,0xff,0x80,0x2, 0x6c,0xff,0x12,0x65,0xe4,0x12,0x6b,0xde,0x7c,0xbf,0xda, +0x79,0x22,0xca,0x3b,0x75,0x21,0x0, 0x7e,0x34,0xb, 0x79,0x7e,0x24,0x0, 0xd, 0xe4, +0x12,0x6d,0xe0,0xe4,0x7a,0xb3,0xd, 0x16,0x7a,0xb3,0xd, 0x17,0x7e,0xb3,0xf, 0xd2, +0xb4,0x1, 0x2, 0x80,0x3, 0x2, 0x41,0x68,0x7e,0x34,0x13,0xb6,0x7e,0x24,0x0, 0xa, +0x74,0xff,0x12,0x6d,0xe0,0x7e,0x34,0x13,0xc0,0x7e,0x24,0x0, 0xa, 0x74,0xff,0x12, +0x6d,0xe0,0x7e,0x37,0xf, 0xd6,0x7e,0xb3,0x10,0x2c,0x7e,0x27,0xf, 0x4c,0x7e,0x14, +0x13,0xb6,0x6c,0x11,0x12,0x4f,0x1, 0x7c,0xeb,0x7e,0x37,0xf, 0xd6,0x2e,0x34,0x0, +0x30,0x7e,0xb3,0x10,0x2b,0x7e,0x27,0xf, 0x4a,0x7e,0x14,0x13,0xc0,0x12,0x4f,0x1, +0x7c,0xdb,0x6c,0xff,0x6c,0xaa,0x80,0x51,0x6c,0xcc,0x80,0x47,0x7c,0xbf,0xc4,0x23, +0x54,0x1f,0x7c,0x6b,0x7a,0x61,0x21,0xa, 0x2a,0x9, 0x72,0x13,0xc0,0x7e,0x50,0x2, +0xac,0x5f,0x19,0x72,0xa, 0xb1,0xa, 0x1c,0x9, 0x71,0x13,0xb6,0x19,0x72,0xa, 0xb2, +0x7c,0xbf,0x54,0x7, 0x7e,0x44,0x0, 0x1, 0x60,0x5, 0x3e,0x44,0x14,0x78,0xfb,0x7c, +0x79,0xa, 0x46,0x2e,0x44,0xb, 0x79,0x7e,0x49,0xb0,0x4c,0xb7,0x7a,0x49,0xb0,0xb, +0xf0,0xb, 0xc0,0xbc,0xec,0x38,0xb5,0xb, 0xa0,0xbc,0xda,0x38,0xab,0x7a,0xf3,0xd, +0x16,0x7e,0x34,0x13,0xb6,0x7e,0x24,0x0, 0xa, 0x74,0xff,0x12,0x6d,0xe0,0x7e,0x34, +0x13,0xc0,0x7e,0x24,0x0, 0xa, 0x74,0xff,0x12,0x6d,0xe0,0x7e,0x37,0xf, 0xd6,0x7e, +0xb3,0x10,0x2c,0x7e,0x27,0xf, 0x4e,0x7e,0x14,0x13,0xb6,0x7e,0x10,0x1, 0x12,0x4f, +0x1, 0x7c,0xeb,0x7e,0x37,0xf, 0xd6,0x2e,0x34,0x0, 0x30,0x7e,0xb3,0x10,0x2b,0x7e, +0x27,0xf, 0x4e,0x7e,0x14,0x13,0xc0,0x12,0x4f,0x1, 0x7c,0xdb,0x6c,0xff,0x6c,0xaa, +0x80,0xe, 0x6c,0xcc,0x80,0x4, 0xb, 0xf0,0xb, 0xc0,0xbc,0xec,0x38,0xf8,0xb, 0xa0, +0xbc,0xda,0x38,0xee,0x7a,0xf3,0xd, 0x17,0xda,0x3b,0x22,0xca,0xf8,0x6d,0x33,0x7a, +0x37,0x10,0x1, 0x7e,0x34,0xd, 0xac,0x7a,0x37,0xa, 0xaf,0x74,0x1, 0x7a,0xb3,0x10, +0x3c,0x7a,0xb3,0x10,0x4d,0x7a,0xb3,0x10,0xa5,0x7e,0xb3,0xf, 0x26,0x12,0x6e,0xa1, +0x12,0x63,0xde,0x7e,0xb3,0x10,0xa5,0xb4,0x1, 0x2, 0x80,0x3, 0x2, 0x42,0x84,0x6d, +0x33,0x7a,0x37,0x10,0x1, 0x7e,0x34,0x0, 0x64,0x7a,0x37,0xa, 0xaf,0xe4,0x7a,0xb3, +0x0, 0xff,0x12,0x6c,0x3a,0x12,0x45,0xdf,0x12,0x6a,0xf4,0x6c,0xff,0x1a,0x2f,0x7e, +0x34,0x0, 0x18,0xad,0x32,0x3e,0x34,0x2e,0x37,0xf, 0xda,0x2e,0x34,0x0, 0x30,0x1b, +0x35,0xb, 0x38,0x30,0x1a,0x2f,0x3e,0x24,0x59,0x32,0x13,0x9c,0xb, 0xf0,0xbe,0xf0, +0xd, 0x78,0xda,0x12,0x6b,0x3a,0x12,0x6c,0x90,0x12,0x68,0xf7,0x6c,0xff,0x1a,0x3f, +0x3e,0x34,0x49,0x23,0x13,0x9c,0x1a,0xf, 0x7e,0x14,0x0, 0x18,0xad,0x10,0x7d,0x31, +0x3e,0x34,0x2e,0x37,0xf, 0xda,0x2e,0x34,0x0, 0x30,0x1b,0x35,0x1b,0x38,0x20,0xb, +0xf0,0xbe,0xf0,0xd, 0x78,0xd8,0x12,0x69,0xca,0x12,0x48,0xe6,0x7e,0xb3,0xf, 0xd3, +0x70,0x9, 0x7e,0xb3,0xf, 0xd2,0x70,0x3, 0x2, 0x41,0x93,0x12,0x1f,0x7b,0x12,0x33, +0x70,0x7a,0xb3,0xf, 0x25,0x12,0x6d,0xff,0x12,0x6c,0xf6,0x70,0x3, 0x2, 0x41,0x93, +0x12,0x44,0xc9,0x7e,0x37,0xf, 0xda,0x12,0x8, 0x6, 0x12,0x6e,0xa7,0x12,0x4e,0x57, +0x12,0x0, 0x6e,0x50,0x3, 0x12,0x2f,0xc6,0x7e,0xb3,0x11,0x15,0xb4,0x1, 0x4, 0xe4, +0x12,0x6e,0x92,0x12,0x68,0xca,0x12,0x66,0xcc,0x12,0x19,0x6d,0x12,0x6, 0x11,0x12, +0x6e,0xc6,0x12,0x65,0x2c,0x12,0x36,0xb7,0x12,0x55,0xe4,0x12,0x1c,0x95,0x12,0x49, +0xd0,0x2, 0x41,0x93,0x12,0x0, 0x1e,0x12,0x6e,0x1b,0xda,0xf8,0x22,0xca,0x79,0x7e, +0x34,0x0, 0x60,0x12,0x69,0x78,0x7c,0xab,0x7a,0xa1,0x6a,0xbe,0xa0,0x8, 0x40,0x3, +0x2, 0x43,0xab,0xbe,0xa0,0x4, 0x50,0x5, 0x7e,0xe0,0x6, 0x80,0x3, 0x7e,0xe0,0x5, +0x7c,0xba,0xbe,0xb0,0x8, 0x50,0x48,0x7e,0xa0,0x3, 0xa4,0x90,0x42,0xbf,0x73,0x2, +0x42,0xd7,0x2, 0x42,0xdc,0x2, 0x42,0xe1,0x2, 0x42,0xe6,0x2, 0x42,0xeb,0x2, 0x42, +0xf0,0x2, 0x42,0xf5,0x2, 0x42,0xfa,0x7e,0xf0,0x5e,0x80,0x26,0x7e,0xf0,0x5f,0x80, +0x21,0x7e,0xf0,0x61,0x80,0x1c,0x7e,0xf0,0x63,0x80,0x17,0x7e,0xf0,0x65,0x80,0x12, +0x7e,0xf0,0x67,0x80,0xd, 0x7e,0xf0,0x69,0x80,0x8, 0x7e,0xf0,0x6a,0x80,0x3, 0x7e, +0xf0,0x64,0x6c,0xaa,0xa, 0x3a,0x9, 0xb3,0x11,0xe9,0xa, 0xb, 0x7e,0xb3,0x10,0xff, +0xa, 0x1b,0x2d,0x1, 0x7c,0xb1,0x7c,0x1a,0x2e,0x10,0x21,0xa5,0xf7,0x7c,0x9b,0xa, +0x9, 0x5e,0x4, 0x0, 0x1, 0xbe,0x4, 0x0, 0x1, 0x78,0x1c,0x7c,0x79,0xac,0x7f,0x7e, +0x50,0x3, 0xac,0x5f,0xe, 0x24,0xe, 0x24,0x2d,0x32,0x7c,0xba,0x3e,0xb0,0x24,0x25, +0xa, 0xb, 0x1b,0x8, 0x30,0x80,0xd, 0xac,0x9f,0x7c,0xba,0x3e,0xb0,0x24,0x25,0xa, +0xb, 0x1b,0x8, 0x40,0x7c,0xba,0x3e,0xb0,0x24,0x25,0xa, 0xb, 0xb, 0x8, 0xf0,0x7e, +0x4, 0x0, 0xa, 0x7d,0x3f,0x8d,0x30,0x8d,0x30,0x7c,0x75,0xbe,0x70,0x0, 0x40,0x14, +0xbc,0xe7,0x28,0x10,0x7e,0xc4,0x0, 0x64,0x7d,0xdf,0x8d,0xdc,0x7d,0xd, 0x9d,0x1, +0x7c,0x61,0x80,0x17,0xbc,0xe7,0x38,0x19,0xbe,0x70,0x9, 0x38,0x14,0x7e,0xe4,0x0, +0x64,0x8d,0xfe,0x7d,0x2f,0xb, 0x24,0x9d,0x21,0x7c,0x65,0xa, 0x2a,0x19,0x62,0x11, +0xe9,0xb, 0xa0,0xbe,0xa0,0x4, 0x68,0x3, 0x2, 0x43,0x4, 0xda,0x79,0x22,0xca,0x3b, +0x7c,0xeb,0x7e,0x73,0xd, 0xf7,0xbe,0x70,0x1, 0x38,0x3, 0x2, 0x44,0xc0,0x7c,0xbe, +0x12,0xd, 0x46,0x7e,0xb3,0xd, 0xfc,0x60,0x1e,0x7e,0xb3,0x15,0x54,0x70,0x8, 0x7e, +0xb3,0x15,0x55,0x70,0x2, 0x80,0x10,0x7e,0x73,0xd, 0xf7,0xbe,0x70,0x1, 0x28,0xc, +0xe5,0x12,0xbe,0xb0,0x8, 0x28,0x5, 0x7e,0xf0,0x1, 0x80,0x1e,0x7e,0xf0,0x1, 0xbe, +0x73,0xf, 0x1c,0x78,0x6, 0x6c,0xee,0x6c,0xff,0x80,0xf, 0x9e,0x73,0x15,0x54,0xbe, +0x73,0xf, 0x1c,0x78,0x5, 0x7e,0xe0,0x2, 0x6c,0xff,0x4c,0xff,0x78,0x5, 0x7c,0xbe, +0x12,0xd, 0x46,0xe5,0x10,0x7a,0xb3,0xd, 0xf7,0x7e,0x31,0x10,0x74,0x2, 0xac,0x3b, +0x7e,0x24,0x15,0x2b,0x7e,0x34,0xd, 0x18,0x12,0x6d,0x3c,0x75,0x12,0x64,0x75,0x13, +0x64,0x6c,0xee,0x80,0x67,0x6c,0xdd,0x80,0x59,0x74,0x2, 0xac,0xbd,0x9, 0x75,0xd, +0x18,0xa, 0x27,0x74,0x2, 0xac,0xbe,0x9, 0x75,0xd, 0x18,0xa, 0x37,0x9d,0x32,0x12, +0x6d,0xd0,0x7c,0xb7,0xf5,0x21,0x74,0x2, 0xac,0xbd,0x9, 0x75,0xd, 0x19,0xa, 0x27, +0x74,0x2, 0xac,0xbe,0x9, 0x75,0xd, 0x19,0xa, 0x37,0x9d,0x32,0x12,0x6d,0xd0,0x7c, +0xc7,0xe5,0x21,0xbe,0xb0,0x0, 0x28,0xa, 0xe5,0x12,0xbe,0xb1,0x21,0x28,0x3, 0x85, +0x21,0x12,0xbe,0xc0,0x0, 0x28,0x9, 0xe5,0x13,0xbc,0xbc,0x28,0x3, 0x7a,0xc1,0x13, +0xb, 0xd0,0x7e,0x73,0xd, 0xf7,0xbc,0x7d,0x38,0x9f,0xb, 0xe0,0x7e,0x73,0xd, 0xf7, +0xbc,0x7e,0x38,0x91,0xe5,0x12,0xb4,0x64,0x3, 0x75,0x12,0x0, 0xe5,0x13,0xb4,0x64, +0x3, 0x75,0x13,0x0, 0xe5,0x13,0xbe,0xb1,0x12,0x28,0xb, 0x85,0x13,0x12,0x80,0x6, +0x75,0x12,0x64,0x75,0x13,0x64,0xda,0x3b,0x22,0x12,0x59,0x46,0x70,0x3, 0x2, 0x45, +0x50,0x75,0x6f,0x14,0x75,0x6e,0x1, 0x6c,0x11,0x80,0x2d,0x7c,0xb1,0x54,0x7, 0xa, +0x3b,0x2e,0x34,0x6e,0x8a,0x7a,0x71,0x82,0x7a,0x61,0x83,0xe4,0x93,0x7c,0xab,0x6e, +0xa0,0xff,0x7c,0xb1,0xc4,0x23,0x54,0x1f,0xa, 0x1b,0x2e,0x14,0xd, 0x68,0x7e,0x19, +0x0, 0x5c,0xa, 0x7a,0x19,0x0, 0xb, 0x10,0x7e,0x3, 0xd, 0xf7,0xbc,0x1, 0x38,0xcb, +0x6c,0x11,0x80,0x32,0x7c,0xb1,0x54,0x7, 0xa, 0x3b,0x2e,0x34,0x6e,0x8a,0x7a,0x71, +0x82,0x7a,0x61,0x83,0xe4,0x93,0x7c,0xab,0x6e,0xa0,0xff,0x7c,0xb1,0xc4,0x23,0x54, +0x1f,0xa, 0x1b,0x2e,0x14,0xb, 0x79,0x7e,0x19,0x0, 0x5c,0xa, 0x7a,0x19,0x0, 0xe4, +0x7a,0xb3,0xd, 0x16,0xb, 0x10,0x7e,0x3, 0xd, 0x16,0xbc,0x1, 0x38,0xc6,0xe4,0x22, +0xe5,0x6e,0xb4,0x1, 0x2, 0x80,0x3, 0x2, 0x45,0xdc,0x15,0x6f,0xe5,0x6f,0x60,0x79, +0x6c,0x11,0x80,0x2d,0x7c,0xb1,0x54,0x7, 0xa, 0x3b,0x2e,0x34,0x6e,0x8a,0x7a,0x71, +0x82,0x7a,0x61,0x83,0xe4,0x93,0x7c,0xab,0x6e,0xa0,0xff,0x7c,0xb1,0xc4,0x23,0x54, +0x1f,0xa, 0x1b,0x2e,0x14,0xd, 0x68,0x7e,0x19,0x0, 0x5c,0xa, 0x7a,0x19,0x0, 0xb, +0x10,0x7e,0x3, 0xd, 0xf7,0xbc,0x1, 0x38,0xcb,0x6c,0x11,0x80,0x32,0x7c,0xb1,0x54, +0x7, 0xa, 0x3b,0x2e,0x34,0x6e,0x8a,0x7a,0x71,0x82,0x7a,0x61,0x83,0xe4,0x93,0x7c, +0xab,0x6e,0xa0,0xff,0x7c,0xb1,0xc4,0x23,0x54,0x1f,0xa, 0x1b,0x2e,0x14,0xb, 0x79, +0x7e,0x19,0x0, 0x5c,0xa, 0x7a,0x19,0x0, 0xe4,0x7a,0xb3,0xd, 0x16,0xb, 0x10,0x7e, +0x3, 0xd, 0x16,0xbc,0x1, 0x38,0xc6,0xe4,0x22,0x75,0x6e,0x0, 0xe5,0x21,0x22,0xca, +0x79,0x7e,0x74,0x10,0x7e,0x7e,0xb3,0x10,0xfe,0x20,0xe0,0x3, 0x2, 0x46,0xe6,0x54, +0xfe,0x7a,0xb3,0x10,0xfe,0x9, 0x77,0x0, 0x2, 0xbe,0x73,0xf, 0x52,0x68,0x16,0x7a, +0x73,0xf, 0x52,0xa, 0x37,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x3e, +0x34,0x7a,0x37,0xf, 0x48,0x7e,0x79,0x70,0xbe,0x73,0xf, 0x5c,0x68,0xe, 0x7a,0x73, +0xf, 0x5c,0xa, 0x37,0x3e,0x34,0x3e,0x34,0x7a,0x37,0xf, 0x54,0x9, 0x77,0x0, 0x1, +0xa, 0x37,0xbe,0x37,0xf, 0x56,0x68,0x4, 0x7a,0x37,0xf, 0x56,0x7e,0x27,0xf, 0x5d, +0x1e,0x24,0x1e,0x24,0x1e,0x24,0x1e,0x24,0x9, 0x77,0x0, 0x5, 0xa, 0x37,0xbd,0x32, +0x68,0xc, 0x3e,0x34,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x7a,0x37,0xf, 0x5d,0x9, 0x77, +0x0, 0x8, 0xbe,0x73,0x11,0x11,0x68,0x24,0x7a,0x73,0x11,0x11,0xbe,0x70,0xf, 0x40, +0x5, 0xe4,0x19,0xb7,0x0, 0x8, 0x9, 0x77,0x0, 0x8, 0xa, 0x37,0x2e,0x34,0x6d,0xf0, +0x7a,0x71,0x82,0x7a,0x61,0x83,0xe4,0x93,0x7a,0xb3,0x11,0x10,0x9, 0x77,0x0, 0x9, +0xbe,0x73,0x11,0x13,0x68,0x8, 0x7a,0x73,0x11,0x13,0x7a,0x73,0x11,0x12,0x9, 0x77, +0x0, 0x7, 0xbe,0x73,0x11,0x14,0x68,0x4, 0x7a,0x73,0x11,0x14,0x9, 0xb7,0x0, 0xb, +0xbe,0xb1,0x51,0x68,0x5, 0xf5,0x51,0x12,0x6c,0xde,0x9, 0x77,0x0, 0x25,0xa, 0x37, +0xbe,0x37,0x11,0xd, 0x68,0x4, 0x7a,0x37,0x11,0xd, 0x9, 0x77,0x0, 0x6, 0xbe,0x73, +0x11,0xf, 0x68,0x4, 0x7a,0x73,0x11,0xf, 0x9, 0x77,0x0, 0x24,0xbe,0x73,0x11,0x15, +0x68,0x4, 0x7a,0x73,0x11,0x15,0xda,0x79,0x22,0xca,0x79,0xe4,0x6c,0xaa,0xa, 0x4a, +0x19,0xb4,0xd, 0x68,0xb, 0xa0,0xbe,0xa0,0x3, 0x78,0xf3,0xe4,0x7a,0xb3,0xd, 0xf7, +0x7a,0xb3,0xd, 0xf8,0x7a,0xb3,0xd, 0xf9,0x7a,0xb3,0xd, 0xfa,0x7e,0xb3,0xf, 0xd3, +0xb4,0x1, 0x2, 0x80,0x3, 0x2, 0x47,0xef,0x7e,0xb3,0x10,0x2b,0xf5,0x21,0x7e,0xb3, +0x10,0x2c,0xf5,0x22,0x7e,0x37,0xf, 0x56,0x7a,0x35,0x23,0x7e,0x37,0xf, 0x58,0x7a, +0x35,0x25,0x7e,0x37,0xf, 0x5a,0x7a,0x35,0x27,0x7e,0x34,0x0, 0x14,0x7a,0x35,0x2d, +0x7e,0x37,0xf, 0xda,0x7e,0x24,0x0, 0x21,0x7e,0x14,0x0, 0x29,0x7e,0x4, 0x9, 0xc8, +0x12,0x4d,0xa8,0xe5,0x29,0x7a,0xb3,0xd, 0xf7,0xe5,0x2a,0x7a,0xb3,0xd, 0xf8,0xe5, +0x2b,0x7a,0xb3,0xd, 0xf9,0xe5,0x2c,0x7a,0xb3,0xd, 0xfa,0x6c,0xaa,0x80,0x6c,0x7e, +0x53,0xd, 0xf7,0xbc,0x5a,0x28,0x44,0x7c,0xba,0xc4,0x23,0x54,0x1f,0x7c,0x7b,0x7c, +0xba,0x54,0x7, 0x7e,0x44,0x0, 0x1, 0x60,0x5, 0x3e,0x44,0x14,0x78,0xfb,0x7c,0x69, +0x7e,0x30,0x2, 0xac,0x3a,0x49,0x71,0x9, 0xc8,0x7d,0x7, 0xa, 0x0, 0x7c,0x41,0x19, +0x41,0xd, 0x18,0x7d,0x7, 0x7c,0x41,0x19,0x41,0xd, 0x19,0xa, 0x47,0x2e,0x44,0xd, +0x68,0x7e,0x49,0xb0,0x4c,0xb6,0x7a,0x49,0xb0,0x80,0x1e,0xa, 0x15,0xa, 0x2a,0x9d, +0x21,0x3e,0x24,0x49,0x72,0x9, 0xf0,0x7d,0x17,0xa, 0x12,0x7c,0xb3,0x19,0xb2,0xd, +0x40,0x7d,0x17,0x7c,0xb3,0x19,0xb2,0xd, 0x41,0xb, 0xa0,0x7e,0xb3,0xd, 0xf8,0xa, +0x2b,0x7e,0xb3,0xd, 0xf7,0xa, 0x1b,0x2d,0x12,0xa, 0x2a,0xbd,0x21,0x48,0x80,0xda, +0x79,0x22,0xc2,0xd5,0x7c,0xb4,0x30,0xe7,0x8, 0xb2,0xd5,0x6e,0x24,0xff,0xff,0xb, +0x24,0x7c,0xb6,0x30,0xe7,0x12,0xb2,0xd5,0x6e,0x34,0xff,0xff,0xb, 0x34,0x8d,0x32, +0x6e,0x24,0xff,0xff,0xb, 0x24,0x80,0x2, 0x8d,0x32,0x30,0xd5,0x6, 0x6e,0x34,0xff, +0xff,0xb, 0x34,0x22,0x7d,0x51,0xad,0x3, 0x7d,0x2, 0x7d,0x21,0xad,0x5, 0x2d,0x12, +0xad,0x35,0x2d,0x21,0x22,0x7d,0x2, 0xad,0x31,0xad,0x10,0x2d,0x21,0x22,0x6d,0x0, +0x74,0x10,0x4d,0x0, 0x78,0xb, 0x4d,0x22,0x78,0x27,0x8d,0x31,0x7d,0x12,0x6d,0x22, +0x22,0x7d,0x43,0x7d,0x32,0x6d,0x22,0x2f,0x11,0x2d,0x44,0x50,0x2, 0xa5,0xf, 0xbf, +0x10,0x40,0x4, 0x9f,0x10,0xb, 0x90,0x14,0x78,0xed,0x7f,0x1, 0x6d,0x22,0x7d,0x34, +0x22,0x7d,0x41,0x7d,0x13,0x8d,0x24,0x7d,0x2, 0x2f,0x0, 0x40,0x4, 0xbd,0x4, 0x40, +0x4, 0x9d,0x4, 0xb, 0x14,0x14,0x78,0xf1,0x7d,0x23,0x7d,0x31,0x7d,0x10,0x6d,0x0, +0x22,0xc2,0xd5,0x7c,0xb0,0x30,0xe7,0x8, 0xb2,0xd5,0x9f,0x22,0x9f,0x20,0x7f,0x2, +0x7c,0xb4,0x30,0xe7,0x13,0xb2,0xd5,0x9f,0x22,0x9f,0x21,0x7f,0x12,0x12,0x48,0x40, +0x9f,0x22,0x9f,0x20,0x7f,0x2, 0x80,0x3, 0x12,0x48,0x40,0x30,0xd5,0x6, 0x9f,0x22, +0x9f,0x21,0x7f,0x12,0x22,0x6c,0xaa,0x4d,0x11,0x68,0x1a,0x1e,0x54,0x68,0xe, 0xb, +0x38,0x20,0x1b,0x18,0x20,0xb, 0x35,0xb, 0x15,0x1b,0x54,0x78,0xf2,0x50,0x6, 0x7e, +0x39,0x40,0x7a,0x19,0x40,0x22,0xca,0x79,0x6c,0xee,0x12,0x65,0x6b,0x7d,0x43,0x6c, +0xaa,0x6c,0x77,0x7e,0x30,0x6, 0xac,0x37,0x2e,0x14,0x6c,0x1c,0x7e,0x4, 0x0, 0xff, +0xb, 0xa, 0x20,0xbd,0x24,0x48,0x4, 0x7c,0xa7,0x80,0x7, 0xb, 0x70,0xbe,0x70,0x5, +0x40,0xe1,0xbe,0xa0,0x5, 0x78,0x3, 0x2, 0x49,0xb7,0x7e,0x63,0xd, 0xf7,0xbe,0x60, +0x0, 0x38,0x3, 0x2, 0x49,0xb7,0x6c,0x77,0x2, 0x49,0xac,0x6c,0xff,0x6c,0x66,0x80, +0x41,0x7e,0x90,0x30,0xac,0x96,0x7e,0x50,0x2, 0xac,0x57,0x2d,0x24,0x2e,0x27,0xf, +0xda,0xb, 0x28,0x20,0x7e,0x30,0x6, 0xac,0x3a,0x7d,0xf1,0x2e,0xf4,0x6c,0x1e,0x7e, +0xe4,0x0, 0xff,0xb, 0x7a,0x0, 0xbd,0x2, 0x18,0x14,0xb, 0xf0,0x2e,0x14,0x6c,0x20, +0x7a,0x31,0x82,0x7a,0x21,0x83,0xe4,0x93,0xbc,0xbf,0x28,0xe, 0x80,0x2, 0x6c,0xff, +0xb, 0x60,0x7e,0xb3,0x10,0x2b,0xbc,0xb6,0x38,0xb7,0x7e,0x50,0x6, 0xac,0x5a,0x7d, +0x12,0x2e,0x14,0x6c,0x20,0x7a,0x31,0x82,0x7a,0x21,0x83,0xe4,0x93,0xbc,0xbf,0x38, +0x17,0xb, 0xe0,0x2e,0x24,0x6c,0x21,0x7a,0x51,0x82,0x7a,0x41,0x83,0xe4,0x93,0xbc, +0xbe,0x38,0x7, 0x75,0x14,0x40,0x80,0xf, 0x6c,0xee,0xb, 0x70,0x7e,0xb3,0x10,0x2c, +0xbc,0xb7,0x28,0x3, 0x2, 0x49,0x2b,0xe5,0x15,0x25,0x14,0xf5,0x14,0xbe,0xb0,0x0, +0x28,0xb, 0x15,0x14,0xe4,0x7a,0xb3,0xf, 0xd3,0x7a,0xb3,0xf, 0xd2,0xda,0x79,0x22, +0xca,0x3b,0x7e,0x73,0xd, 0xfb,0x7a,0x73,0xd, 0xfc,0x7e,0xa3,0xf, 0x1b,0x7a,0xa3, +0xf, 0x1c,0xe4,0x7a,0xb3,0xf, 0x1f,0x7e,0x37,0x11,0xd, 0x4d,0x33,0x78,0x3f,0xbe, +0xa0,0x0, 0x28,0x8, 0xe4,0x7a,0xb3,0x16,0xae,0x2, 0x4a,0x97,0x7e,0xb3,0x11,0xf, +0x20,0xe0,0x3, 0x2, 0x4a,0x97,0x7e,0xb3,0x11,0x14,0xbe,0xb3,0x16,0xae,0x28,0x3, +0x2, 0x4a,0x97,0xe4,0x7a,0xb3,0x16,0xae,0x7e,0x24,0x0, 0x1, 0x7a,0x27,0x11,0xd, +0x74,0x1, 0x7a,0xb3,0x10,0xa3,0x74,0x1e,0x7a,0xb3,0x11,0x12,0x80,0x69,0xbe,0x34, +0x0, 0x1, 0x78,0x22,0xbe,0xa0,0x0, 0x28,0x5e,0x6d,0x22,0x7a,0x27,0x11,0xd, 0xe4, +0x7a,0xb3,0x10,0xa3,0x7a,0xb3,0x16,0xae,0x74,0x23,0x7a,0xb3,0x16,0xb1,0x74,0x1, +0x7a,0xb3,0x16,0xb0,0x80,0x41,0xbe,0x34,0x0, 0x3, 0x78,0x3b,0x6d,0x66,0x7a,0x67, +0x10,0x1, 0x7e,0x74,0xd, 0xac,0x7a,0x77,0xa, 0xaf,0x12,0x6e,0xcc,0x12,0x60,0x22, +0x12,0x58,0x63,0x6d,0x33,0x7a,0x37,0x11,0xd, 0xe4,0x7a,0xb3,0x10,0xa3,0x74,0x1, +0x7a,0xb3,0x16,0xb0,0x7a,0x67,0x10,0x1, 0x7a,0x77,0xa, 0xaf,0x75,0x9a,0x7f,0xa9, +0xd1,0x99,0xd2,0x9c,0xa9,0xd6,0xdf,0x7e,0xb3,0x16,0xb0,0x70,0x6, 0x12,0x5b,0x69, +0x12,0x64,0x24,0xda,0x3b,0x22,0x7d,0x53,0x9f,0x11,0xbe,0x54,0x0, 0x0, 0x40,0x2d, +0xbe,0x54,0x0, 0x3f,0x38,0x27,0x7e,0x24,0x0, 0x3f,0x9d,0x25,0x7e,0x34,0x1, 0x92, +0xad,0x32,0x6d,0x22,0x7c,0x76,0x7c,0x65,0x1a,0x24,0xbe,0x18,0x0, 0x32,0x48,0x4, +0x7e,0x18,0x0, 0x32,0x7e,0x8, 0x0, 0x32,0x9f,0x1, 0x7f,0x10,0x22,0xbe,0x54,0x5, +0x80,0x40,0x29,0xbe,0x54,0x5, 0xaa,0x38,0x23,0x7d,0x25,0x9e,0x24,0x5, 0x7f,0x7e, +0x34,0x1, 0x92,0xad,0x32,0x6d,0x22,0x7c,0x76,0x7c,0x65,0x1a,0x24,0xbe,0x18,0x0, +0x32,0x48,0x4, 0x7e,0x18,0x0, 0x31,0x2e,0x18,0x4, 0xce,0x22,0xbe,0x54,0x5, 0xaa, +0x28,0x19,0x7d,0x25,0x9e,0x24,0x5, 0x9f,0x7e,0x34,0x1, 0x92,0xad,0x32,0x6d,0x22, +0x7c,0x76,0x7c,0x65,0x1a,0x24,0x2e,0x18,0x5, 0x0, 0x22,0xbe,0x54,0x2, 0xdf,0x38, +0x8, 0x7e,0x34,0x2, 0xdf,0x9d,0x35,0x80,0x6, 0x7d,0x35,0x9e,0x34,0x2, 0xe0,0x6d, +0x22,0x7e,0x14,0x0, 0xe1,0x12,0x48,0x35,0x7c,0x76,0x7c,0x65,0x1a,0x24,0xbe,0x54, +0x2, 0xdf,0x38,0xa, 0x7e,0x8, 0x2, 0x7f,0x9f,0x1, 0x7f,0x10,0x80,0x4, 0x2e,0x18, +0x2, 0x80,0xbe,0x18,0x0, 0x32,0x58,0x5, 0x7e,0x18,0x0, 0x32,0x22,0xbe,0x18,0x4, +0xce,0x8, 0x4, 0x7e,0x18,0x4, 0xce,0x22,0x7e,0x34,0x10,0x7e,0x7e,0x24,0x0, 0x81, +0xe4,0x12,0x6d,0xe0,0x74,0xc, 0x7a,0xb3,0x10,0x80,0x7a,0xb3,0x10,0x81,0x74,0x7, +0x7a,0xb3,0x10,0x82,0x74,0xf, 0x7a,0xb3,0x10,0x7e,0x74,0x3c,0x7a,0xb3,0x10,0x7f, +0x74,0xa0,0x7a,0xb3,0x10,0x83,0x74,0x1e,0x7a,0xb3,0x10,0x85,0x74,0x9, 0x7a,0xb3, +0x10,0x86,0x74,0x1e,0x7a,0xb3,0x10,0x87,0xe4,0x7a,0xb3,0x10,0x88,0x7a,0xb3,0x10, +0x89,0xf5,0x52,0xf5,0x51,0x7a,0xb3,0x10,0xa3,0x74,0x1, 0x7a,0xb3,0x10,0x84,0x7a, +0xb3,0x10,0xa2,0x7a,0xb3,0x10,0xa5,0x74,0x16,0x7a,0xb3,0x10,0xa4,0x74,0xf4,0x7a, +0xb3,0x10,0xa6,0x74,0xb, 0x7a,0xb3,0x10,0xad,0x12,0x6e,0xb9,0xa, 0x36,0x7a,0x73, +0x10,0xa7,0x12,0x6e,0xb9,0x7a,0x73,0x10,0xa8,0x12,0x6e,0xbe,0xa, 0x36,0x7a,0x73, +0x10,0x9f,0x12,0x6e,0xbe,0x7a,0x73,0x10,0xa0,0xe4,0x7a,0xb3,0x10,0xae,0x74,0x1f, +0x7a,0xb3,0x10,0xcf,0xe4,0x7a,0xb3,0x10,0xb0,0x12,0x6e,0xd, 0x7a,0xb3,0x10,0xaf, +0x12,0x6d,0xe, 0x7a,0xb3,0x10,0xa1,0x7e,0x34,0x10,0x8e,0x7e,0x24,0x0, 0x8, 0x74, +0xff,0x12,0x6d,0xe0,0x74,0x16,0x7a,0xb3,0x10,0x8e,0x74,0x1, 0x7a,0xb3,0x10,0x8f, +0x22,0xca,0x3b,0x6d,0x11,0x7d,0x1, 0x7d,0x21,0x7e,0xa0,0x2, 0x7e,0x70,0x2, 0x6c, +0x66,0x80,0x39,0x6c,0x99,0x80,0x2b,0x7e,0xd0,0x30,0xac,0xd6,0x7e,0xf0,0x2, 0xac, +0xf9,0x7d,0xf7,0x2d,0xf6,0x2e,0xf7,0xf, 0xda,0xb, 0xf8,0xf0,0xbe,0xf4,0x0, 0x14, +0x8, 0x4, 0xb, 0x4, 0x80,0x8, 0xbe,0xf4,0xff,0xec,0x58,0x2, 0xb, 0x24,0xb, 0x14, +0x2c,0x97,0x7e,0xb3,0x10,0x2c,0xbc,0xb9,0x38,0xcd,0x2c,0x6a,0x7e,0xb3,0x10,0x2b, +0xbc,0xb6,0x38,0xbf,0x7e,0x54,0x0, 0x3, 0xad,0x51,0x7d,0x35,0x1e,0x34,0x1e,0x34, +0xbd,0x30,0x50,0x1f,0xe4,0x7a,0xb3,0x16,0xb8,0x7e,0xb3,0x16,0xb9,0xbe,0xb0,0x5, +0x50,0x7, 0x4, 0x7a,0xb3,0x16,0xb9,0x80,0x39,0xe4,0x7a,0xb3,0x16,0xb9,0x75,0x72, +0x1, 0x80,0x2f,0xbd,0x32,0x50,0x1f,0xe4,0x7a,0xb3,0x16,0xb9,0x7e,0xb3,0x16,0xb8, +0xbe,0xb0,0x5, 0x50,0x7, 0x4, 0x7a,0xb3,0x16,0xb8,0x80,0x16,0xe4,0x7a,0xb3,0x16, +0xb8,0x75,0x72,0x2, 0x80,0xc, 0xe4,0x7a,0xb3,0x16,0xb8,0x7a,0xb3,0x16,0xb9,0x75, +0x72,0x0, 0xe5,0x72,0xda,0x3b,0x22,0x7d,0xf3,0xbe,0xf4,0x0, 0x0, 0x40,0x2d,0xbe, +0xf4,0x0, 0x3f,0x38,0x27,0x7e,0x44,0x0, 0x3f,0x9d,0x4f,0x7e,0x54,0x1, 0x8e,0xad, +0x54,0x6d,0x44,0x7c,0xba,0x7c,0xa9,0xbe,0x28,0x0, 0x32,0x40,0x4, 0x7e,0x28,0x0, +0x32,0x7e,0x18,0x0, 0x32,0x9f,0x12,0x7f,0x21,0x2, 0x4d,0xa5,0xbe,0xf4,0x3, 0x0, +0x40,0x22,0x7d,0x4f,0x9e,0x44,0x3, 0x0, 0x7e,0x54,0x1, 0xc0,0xad,0x54,0x6d,0x44, +0x7c,0xba,0x7c,0xa9,0xbe,0x28,0x0, 0x32,0x40,0x4, 0x7e,0x28,0x0, 0x31,0x2e,0x28, +0x2, 0x9e,0x80,0x51,0xbe,0xf4,0x1, 0x9f,0x38,0x8, 0x7e,0x54,0x1, 0x9f,0x9d,0x5f, +0x80,0x6, 0x7d,0x5f,0x9e,0x54,0x1, 0xa0,0x6d,0x44,0x7e,0x14,0x0, 0xe2,0x7f,0x12, +0x12,0x48,0x35,0x7f,0x21,0x7c,0xba,0x7c,0xa9,0xa, 0x48,0xbe,0xf4,0x1, 0x9f,0x38, +0xa, 0x7e,0x18,0x1, 0x67,0x9f,0x12,0x7f,0x21,0x80,0x4, 0x2e,0x28,0x1, 0x68,0xbe, +0x28,0x0, 0x32,0x50,0x6, 0x7e,0x28,0x0, 0x32,0x80,0xa, 0xbe,0x28,0x2, 0x9e,0x28, +0x4, 0x7e,0x28,0x2, 0x9e,0x7d,0x35,0x22,0xa9,0xd6,0xcb,0x7c,0xb7,0xf5,0xb9,0xa, +0x56,0xf5,0xba,0x7e,0x55,0x2d,0xf5,0xbb,0xf5,0xbc,0x7c,0xb1,0xf5,0xbd,0xa, 0x50, +0xf5,0xc1,0x9, 0xb2,0x0, 0x1, 0x44,0xa0,0xf5,0xc3,0x7e,0x29,0xa0,0xe5,0xc4,0x54, +0xe0,0x4c,0xba,0xf5,0xc4,0x75,0xc5,0x40,0x75,0xc5,0x1, 0x49,0x32,0x0, 0x2, 0x7c, +0xb7,0xf5,0xc6,0x75,0xc5,0x2, 0xa, 0x56,0xf5,0xc6,0x75,0xc5,0x3, 0x49,0x32,0x0, +0x4, 0x6e,0x34,0xff,0xff,0xb, 0x34,0x7d,0x53,0x5e,0x54,0x0, 0xff,0xf5,0xc6,0x75, +0xc5,0x4, 0x1a,0x56,0x5e,0x54,0x0, 0xff,0xf5,0xc6,0x75,0xc5,0x5, 0x49,0x2, 0x0, +0x6, 0x7c,0xb1,0xf5,0xc6,0x75,0xc5,0x6, 0xa, 0x50,0xf5,0xc6,0x43,0xc2,0x9, 0x2, +0x4e,0x29,0x43,0xc2,0x9, 0x0, 0x0, 0x0, 0x0, 0xa9,0x37,0xc2,0xf5,0x75,0xc2,0x0, +0x75,0xc5,0xa, 0xe5,0xc6,0x19,0xb1,0x0, 0x2, 0x75,0xc5,0xb, 0xe5,0xc6,0x19,0xb1, +0x0, 0x3, 0x75,0xc5,0xc, 0xe5,0xc6,0x7a,0x19,0xb0,0x75,0xc5,0xd, 0xe5,0xc6,0x19, +0xb1,0x0, 0x1, 0xa9,0xc6,0xcb,0x22,0xca,0x3b,0x6c,0xff,0x7e,0xb3,0xf, 0xd2,0x60, +0x6, 0x7e,0xb3,0xf, 0xd3,0x70,0x18,0x7e,0x34,0xd, 0x68,0x7e,0x24,0x0, 0x3, 0xe4, +0x12,0x6d,0xe0,0x7e,0x34,0xb, 0x79,0x7e,0x24,0x0, 0xd, 0xe4,0x12,0x6d,0xe0,0x6c, +0xee,0x80,0x6b,0x74,0x2, 0xac,0xbe,0x9, 0x75,0xd, 0x18,0x7a,0x71,0x21,0x9, 0x65, +0xd, 0x19,0x7a,0x61,0x22,0x7c,0xbe,0xc4,0x23,0x54,0x1f,0x7c,0xdb,0x7c,0xbe,0x54, +0x7, 0x7e,0x24,0x0, 0x1, 0x60,0x5, 0x3e,0x24,0x14,0x78,0xfb,0x7c,0xc5,0x7e,0x50, +0x30,0xac,0x57,0x7e,0x70,0x2, 0xac,0x67,0x2d,0x32,0x2e,0x37,0xf, 0xda,0xb, 0x38, +0x30,0xbe,0x37,0xf, 0x54,0x48,0x25,0xa, 0x3d,0x9, 0xb3,0xd, 0x68,0x5c,0xbc,0x68, +0x1b,0x7e,0x50,0x7, 0xac,0x5e,0x2e,0x24,0xd, 0x6b,0x7e,0x70,0x7, 0xac,0x7f,0x2e, +0x34,0xe, 0xd, 0x7e,0x14,0x0, 0x7, 0x12,0x6d,0x3c,0xb, 0xf0,0xb, 0xe0,0x7e,0x73, +0xd, 0xf7,0xbc,0x7e,0x38,0x8d,0x7a,0x73,0xd, 0xfb,0x7a,0xf3,0xf, 0x1b,0xda,0x3b, +0x22,0xca,0xf8,0x7c,0xb, 0x6c,0xaa,0x6d,0xee,0x7d,0xfe,0x6c,0xff,0x2, 0x4f,0x9c, +0x7e,0x90,0x2, 0xac,0x9f,0x7d,0xd4,0x2d,0xd3,0xb, 0xd8,0x40,0x4c,0x11,0x68,0x6, +0x6e,0x44,0xff,0xff,0xb, 0x44,0xbd,0x24,0x58,0x70,0xbe,0xa0,0xa, 0x50,0x6b,0x4c, +0xff,0x78,0x14,0x49,0xed,0x0, 0x2, 0x4c,0x11,0x68,0x6, 0x6e,0xe4,0xff,0xff,0xb, +0xe4,0xbd,0xe4,0x18,0x55,0x80,0x1c,0x7c,0xb0,0x14,0xbc,0xbf,0x78,0x20,0x7d,0xfd, +0x1b,0xf5,0xb, 0xf8,0xf0,0x4c,0x11,0x68,0x6, 0x6e,0xf4,0xff,0xff,0xb, 0xf4,0xbd, +0xf4,0x18,0x37,0xa, 0xca,0x2d,0xc1,0x7a,0xc9,0xf0,0xb, 0xa0,0x80,0x2c,0x7d,0xcd, +0x1b,0xc5,0xb, 0xc8,0xf0,0x49,0xed,0x0, 0x2, 0x4c,0x11,0x68,0xc, 0x6e,0xf4,0xff, +0xff,0xb, 0xf4,0x6e,0xe4,0xff,0xff,0xb, 0xe4,0xbd,0xf4,0x18,0xd, 0xbd,0xe4,0x18, +0x9, 0xa, 0xda,0x2d,0xd1,0x7a,0xd9,0xf0,0xb, 0xa0,0xb, 0xf0,0xbc,0xf, 0x28,0x3, +0x2, 0x4f,0x10,0x7c,0xba,0xda,0xf8,0x22,0xca,0x3b,0x6d,0x33,0x7d,0x73,0x75,0x25, +0x0, 0x7e,0x64,0x5, 0xe0,0x75,0x23,0x0, 0x80,0x3c,0x75,0x24,0x0, 0x7e,0x51,0x23, +0x74,0x18,0xac,0x5b,0x3e,0x24,0x7e,0x71,0x24,0x74,0x2, 0xac,0x7b,0x2d,0x32,0x2d, +0x36,0x7a,0x35,0x21,0x49,0x23,0x0, 0x30,0xb, 0x38,0x30,0x9d,0x32,0x12,0x6d,0xd0, +0xe5,0x24,0xb4,0x17,0x2, 0x1e,0x34,0xbd,0x37,0x28,0x2, 0x7d,0x73,0x5, 0x24,0xe5, +0x24,0xb4,0x18,0xc9,0x5, 0x23,0xe5,0x25,0xa, 0x2b,0x7e,0x33,0x10,0x7c,0xa, 0x13, +0x9d,0x12,0x1b,0x14,0xe5,0x23,0xa, 0x2b,0xbd,0x21,0x48,0xae,0xbe,0x74,0x0, 0x41, +0x28,0x11,0x7e,0x34,0x0, 0x73,0x7e,0xa3,0x16,0x54,0x74,0x12,0xa4,0x59,0x35,0x16, +0x65,0x80,0x26,0x7e,0x43,0x16,0x54,0x7e,0x50,0x12,0xac,0x45,0x49,0x32,0x16,0x65, +0xbd,0x37,0x50,0x6, 0x59,0x72,0x16,0x65,0x80,0xf, 0xbe,0x34,0x0, 0x0, 0x28,0x9, +0x2e,0x24,0x16,0x65,0x1b,0x34,0x1b,0x28,0x30,0xda,0x3b,0x22,0xca,0x7b,0xca,0x6b, +0xca,0x5b,0xca,0x4b,0xca,0x2b,0xca,0x1b,0xca,0xb, 0xc0,0xd0,0xc0,0x83,0xc0,0x82, +0x12,0x0, 0x46,0x7e,0x35,0x1e,0xb, 0x34,0x7a,0x35,0x1e,0x7e,0xb3,0x0, 0xff,0x4, +0x7a,0xb3,0x0, 0xff,0x7e,0x35,0x1e,0xbe,0x34,0x3, 0xe8,0x40,0x13,0x6d,0x33,0x7a, +0x35,0x1e,0x7e,0xb3,0x16,0xae,0xbe,0xb0,0x64,0x50,0x5, 0x4, 0x7a,0xb3,0x16,0xae, +0x7e,0x73,0x16,0xb2,0xbe,0x73,0x16,0xb1,0x28,0xb, 0x7e,0xb3,0x16,0xb1,0x4, 0x7a, +0xb3,0x16,0xb1,0x80,0x6, 0x74,0x1, 0x7a,0xb3,0x16,0xb0,0x7e,0xb3,0x16,0xb3,0x60, +0x5, 0x14,0x7a,0xb3,0x16,0xb3,0x7e,0x37,0x10,0x1, 0xb, 0x34,0x7a,0x37,0x10,0x1, +0x7e,0x37,0xa, 0xaf,0xbe,0x37,0x10,0x1, 0x28,0x3, 0x12,0x6e,0xcf,0xd0,0x82,0xd0, +0x83,0xd0,0xd0,0xda,0xb, 0xda,0x1b,0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda, +0x7b,0x32,0x75,0x84,0x1, 0x7e,0x44,0x4, 0x1f,0xe4,0x7a,0x49,0xb0,0x1b,0x44,0x78, +0xf9,0x7e,0xf8,0x16,0xbc,0x75,0x6a,0x0, 0x75,0x8, 0x1, 0x75,0x9, 0x0, 0x75,0xa, +0x0, 0x75,0xc, 0x0, 0x75,0xd, 0x0, 0x75,0xe, 0x0, 0x75,0xf, 0x0, 0xc2,0x0, 0x75, +0x11,0x0, 0x75,0x12,0x64,0x75,0x13,0x64,0x75,0x14,0x0, 0x75,0x15,0x0, 0x75,0x16, +0x0, 0x75,0x19,0x1, 0x75,0x1e,0x0, 0x75,0x1f,0x0, 0x75,0x72,0x0, 0x75,0x6e,0x0, +0x75,0x73,0x0, 0x75,0x74,0x1, 0x75,0x70,0x18,0x75,0x71,0x0, 0x75,0x75,0x0, 0x75, +0x76,0x0, 0x75,0x6b,0x0, 0x75,0x6c,0xff,0x75,0x6d,0x0, 0x7e,0x4, 0x0, 0xff,0x7e, +0x14,0x6e,0xd6,0xb, 0xa, 0x40,0x5d,0x44,0x68,0x1a,0x69,0x20,0x0, 0x2, 0xb, 0xe, +0xb, 0x44,0x80,0xa, 0x7e,0xb, 0xb0,0x7a,0x29,0xb0,0xb, 0x24,0xb, 0xc, 0x1b,0x44, +0x78,0xf2,0x80,0xdf,0x2, 0x5b,0xce,0xca,0xd8,0xca,0x79,0x7c,0xdb,0xbe,0xd0,0x4, +0x78,0xc, 0x7e,0x34,0x10,0x2b,0x12,0x6b,0x17,0xa9,0xc7,0xea,0x80,0x27,0xbe,0xd0, +0x5, 0x78,0x1f,0xa9,0xd7,0xea,0x7e,0xe3,0x10,0x4a,0x7e,0xf3,0x10,0x4d,0xe4,0x7a, +0xb3,0x10,0x4d,0x12,0x66,0x1f,0x7a,0xb3,0x10,0x4a,0x74,0x1, 0x7a,0xb3,0x10,0x78, +0x80,0x3, 0xe4,0x80,0x4e,0x7e,0xb3,0x11,0x96,0x7e,0x34,0x10,0x2b,0xb4,0x1, 0xa, +0x12,0x31,0xbc,0xe4,0x7a,0xb3,0x11,0x96,0x80,0xa, 0x12,0x60,0xce,0x7e,0x34,0x10, +0x2b,0x12,0x5d,0xbd,0x7e,0x34,0x10,0x2b,0x12,0x6a,0x64,0x7e,0xb3,0x10,0xa5,0xb4, +0x3, 0xa, 0x7e,0x73,0x11,0xe8,0x2e,0x70,0xff,0xa9,0x94,0xca,0x12,0x69,0x23,0xbe, +0xd0,0x5, 0x78,0xd, 0x7a,0xe3,0x10,0x4a,0x7a,0xf3,0x10,0x4d,0xe4,0x7a,0xb3,0x10, +0x78,0x74,0x1, 0xda,0x79,0xda,0xd8,0x22,0x7e,0x34,0xe, 0xd, 0x7e,0x24,0x0, 0x46, +0x74,0xff,0x12,0x6d,0xe0,0x7e,0x34,0xe, 0x53,0x7e,0x24,0x0, 0x46,0x74,0xff,0x12, +0x6d,0xe0,0x7e,0x34,0xe, 0x99,0x7e,0x24,0x0, 0x46,0x74,0xff,0x12,0x6d,0xe0,0x6c, +0xaa,0x74,0x3, 0xa, 0x4a,0x19,0xb4,0xe, 0xdf,0x19,0xb4,0xe, 0xe9,0x7e,0x44,0xff, +0xff,0x7e,0x70,0x2, 0xac,0x7a,0x59,0x43,0xe, 0xf3,0x7e,0x70,0x2, 0xac,0x7a,0x59, +0x43,0xf, 0x7, 0xb, 0xa0,0xbe,0xa0,0xa, 0x40,0xd7,0xe4,0x7a,0xb3,0xf, 0x1b,0x7a, +0xb3,0xf, 0x1c,0x7a,0xb3,0xf, 0x1d,0x7a,0xb3,0xf, 0x1f,0x7a,0xb3,0xf, 0x20,0x7a, +0xb3,0xf, 0x21,0x7a,0xb3,0xf, 0x22,0x7a,0xb3,0xf, 0x23,0x7a,0xb3,0xf, 0x24,0x7a, +0xb3,0xf, 0x25,0x12,0x6a,0xad,0x74,0x5, 0x7a,0xb3,0xf, 0x26,0x74,0x4, 0x7a,0xb3, +0xf, 0x27,0xe4,0x7a,0xb3,0xf, 0x28,0x22,0xca,0xf8,0x7c,0xab,0x6c,0x33,0x7c,0x27, +0x80,0x73,0x7e,0x90,0x7, 0xac,0x93,0x9, 0xf4,0xe, 0x57,0x7e,0x10,0x7, 0xac,0x12, +0x9, 0xb0,0xe, 0x11,0xbc,0xfb,0x78,0x5b,0xbe,0xf0,0xff,0x68,0x56,0x7e,0x10,0x7, +0xac,0x1a,0x7d,0xf0,0x2d,0xf2,0x19,0xff,0x0, 0x4, 0x49,0x44,0xe, 0x53,0x2d,0x2, +0x1b,0x8, 0x40,0x7e,0x10,0x7, 0xac,0x13,0x49,0x0, 0xe, 0x55,0x7e,0x90,0x7, 0xac, +0x9a,0x2d,0x42,0x59,0x4, 0x0, 0x2, 0x7e,0x10,0x7, 0xac,0x12,0x9, 0x10,0xe, 0x12, +0x7e,0x90,0x7, 0xac,0x9a,0x2d,0x42,0x19,0x14,0x0, 0x5, 0x7e,0x10,0x7, 0xac,0x12, +0x9, 0x10,0xe, 0x13,0x7e,0x90,0x7, 0xac,0x9a,0x2d,0x42,0x19,0x14,0x0, 0x6, 0xb, +0xa0,0x80,0x6, 0xb, 0x20,0xbc,0x62,0x38,0x89,0xb, 0x30,0xbe,0x30,0xa, 0x50,0x3, +0x2, 0x52,0x9e,0x7c,0xba,0xda,0xf8,0x22,0x7c,0xab,0xbe,0xa0,0x1, 0x40,0x3b,0xbe, +0xa0,0x3e,0x38,0x36,0xbe,0xa0,0x4, 0x78,0x6, 0x74,0x1, 0x7a,0xb3,0x0, 0x8b,0xbe, +0xa0,0x1, 0x68,0xa, 0xbe,0xa0,0x2, 0x68,0x5, 0xbe,0xa0,0x3, 0x78,0x11,0x30,0x0, +0x6, 0x7e,0x34,0x15,0xca,0x80,0x4, 0x7e,0x34,0x16,0xc, 0x7a,0x37,0x16,0x51,0xa, +0x3a,0x2e,0x37,0x16,0x51,0x9, 0xb3,0x0, 0x2, 0x22,0x4c,0xaa,0x78,0x3, 0xe5,0xb, +0x22,0xbe,0xa0,0x80,0x40,0xc, 0xbe,0xa0,0xdf,0x38,0x7, 0xa, 0x3a,0x9, 0xb3,0xf, +0xfe,0x22,0xbe,0xa0,0xfc,0x78,0x5, 0x7e,0xb3,0x10,0xa5,0x22,0xbe,0xa0,0xfd,0x78, +0x8, 0x7e,0x37,0x10,0x46,0x7e,0x39,0xb0,0x22,0xbe,0xa0,0xfe,0x78,0x5, 0x7e,0xb3, +0x10,0x4a,0x22,0xbe,0xa0,0xf9,0x78,0x5, 0x7e,0xb3,0x16,0xbc,0x22,0xbe,0xa0,0xfa, +0x78,0x3, 0xe5,0x6a,0x22,0xe4,0x22,0xca,0x3b,0x7d,0x72,0x7d,0x63,0x7e,0xb3,0x10, +0x4d,0xf5,0x24,0xe4,0x7a,0xb3,0x10,0x4d,0x7e,0x34,0x10,0x2b,0x12,0x31,0xbc,0x7e, +0x34,0x10,0x2b,0x12,0x6a,0x64,0x75,0x21,0x0, 0x12,0x69,0x23,0x12,0x6e,0x78,0x60, +0xfb,0xa9,0xb7,0xea,0x7d,0x36,0x7d,0x27,0x7e,0x14,0x18,0x0, 0x12,0x67,0x74,0x75, +0x22,0x0, 0x80,0x36,0x75,0x23,0x0, 0x80,0x26,0x7e,0x51,0x22,0x74,0x18,0xac,0x5b, +0xe5,0x23,0xa, 0x3b,0x2d,0x23,0x3e,0x24,0x7d,0x32,0x2d,0x36,0xb, 0x38,0x10,0xe, +0x14,0xe, 0x14,0x2d,0x27,0xb, 0x28,0x30,0x2d,0x31,0x1b,0x28,0x30,0x5, 0x23,0x7e, +0x73,0x10,0x2c,0xbe,0x71,0x23,0x38,0xd1,0x5, 0x22,0x7e,0x73,0x10,0x2b,0xbe,0x71, +0x22,0x38,0xc1,0x5, 0x21,0xe5,0x21,0xbe,0xb0,0x4, 0x40,0x9d,0xe5,0x24,0x7a,0xb3, +0x10,0x4d,0xda,0x3b,0x22,0xca,0xf8,0x30,0x90,0x58,0xc2,0x90,0x5, 0xa, 0xe5,0xa, +0xb4,0x1, 0x6, 0xe5,0x91,0xf5,0xf, 0x80,0x29,0xe5,0xb, 0xc4,0x7c,0xfb,0x5e,0xf0, +0x7, 0x78,0xe, 0xe5,0xa, 0x25,0xf, 0x24,0xfe,0x7e,0x71,0x91,0x12,0x56,0x6d,0x80, +0x11,0xbe,0xf0,0x4, 0x78,0xc, 0xe5,0xa, 0x25,0xf, 0x24,0xfe,0x7e,0x71,0x91,0x12, +0x15,0xe2,0xe5,0xb, 0xc4,0x7c,0x5b,0x5e,0x50,0x7, 0xa5,0xbd,0x0, 0x9, 0xe5,0xf, +0x12,0x53,0x28,0xf5,0x91,0x80,0xb, 0xa5,0xbd,0x4, 0x7, 0xe5,0xf, 0x12,0x27,0x2e, +0xf5,0x91,0x30,0x91,0x28,0xc2,0x91,0x5, 0x9, 0xe5,0xb, 0xc4,0x7c,0x5b,0x5e,0x50, +0x7, 0xa5,0xbd,0x0, 0xb, 0xe5,0x9, 0x25,0xf, 0x12,0x53,0x28,0xf5,0x91,0x80,0xd, +0xa5,0xbd,0x4, 0x9, 0xe5,0x9, 0x25,0xf, 0x12,0x27,0x2e,0xf5,0x91,0xda,0xf8,0x22, +0x6c,0x33,0xbe,0x30,0x18,0x50,0x1e,0xa, 0x3, 0x2e,0x7, 0x10,0x35,0x7e,0x9, 0xa0, +0x7c,0xba,0x30,0xe0,0xc, 0xa, 0x5a,0x2e,0x54,0x0, 0x18,0xe, 0x54,0x7c,0xab,0x80, +0x16,0x1e,0xa0,0x80,0x12,0xa, 0x3, 0x2e,0x7, 0x10,0x33,0x9, 0x20,0xff,0xe8,0xa, +0x52,0x2e,0x54,0x0, 0x18,0x7c,0xab,0x7e,0x23,0x10,0x3a,0xbe,0x20,0x3, 0x28,0xe, +0x7e,0x10,0x2, 0xac,0x1a,0x2d,0x2, 0xb, 0x8, 0x0, 0x1e,0x4, 0x80,0x21,0xa, 0x42, +0x2e,0x44,0x0, 0xc, 0x7e,0x4, 0x0, 0xf, 0x9d,0x4, 0x7c,0x21,0x7e,0x10,0x2, 0xac, +0x1a,0x2d,0x2, 0xb, 0x8, 0x0, 0x7c,0xb2,0x60,0x5, 0x3e,0x4, 0x14,0x78,0xfb,0x7e, +0x44,0x7f,0xff,0x9d,0x40,0x7e,0x10,0x2, 0xac,0x13,0x2d,0x3, 0x1b,0x8, 0x40,0xb, +0x30,0xbe,0x30,0x25,0x50,0x3, 0x2, 0x54,0xd2,0x22,0x6c,0xaa,0x7e,0x50,0x2, 0xac, +0x5a,0x7d,0x32,0x2e,0x37,0xf, 0xd6,0xb, 0x38,0x10,0xbe,0x17,0xe, 0x7, 0x8, 0x12, +0x7d,0x2, 0x2e,0x7, 0xf, 0xd4,0xb, 0x8, 0x30,0x2e,0x37,0xe, 0x7, 0x1b,0x8, 0x30, +0x80,0x18,0x6d,0x33,0x9e,0x37,0xe, 0x7, 0xbd,0x13,0x58,0xe, 0x2e,0x27,0xf, 0xd4, +0xb, 0x28,0x30,0x9e,0x37,0xe, 0x7, 0x1b,0x28,0x30,0xb, 0xa0,0xbe,0xa0,0x25,0x78, +0xbb,0x6c,0xaa,0x7e,0x50,0x2, 0xac,0x5a,0x49,0x12,0x9, 0x2e,0xbe,0x17,0xe, 0x7, +0x8, 0x12,0x7d,0x2, 0x2e,0x4, 0x8, 0xe4,0xb, 0x8, 0x30,0x2e,0x37,0xe, 0x7, 0x1b, +0x8, 0x30,0x80,0x18,0x6d,0x33,0x9e,0x37,0xe, 0x7, 0xbd,0x13,0x58,0xe, 0x2e,0x24, +0x8, 0xe4,0xb, 0x28,0x30,0x9e,0x37,0xe, 0x7, 0x1b,0x28,0x30,0xb, 0xa0,0xbe,0xa0, +0x25,0x40,0xc0,0x22,0xca,0x69,0xca,0xf8,0x6c,0x11,0x7e,0xd0,0x7, 0xac,0xd1,0x9, +0x6, 0xe, 0x9d,0x5e,0x0, 0xf, 0x49,0xf6,0xe, 0x9b,0xbe,0xf4,0x5, 0xa, 0x40,0x3c, +0x49,0x46,0xe, 0x99,0x7d,0x34,0x12,0x6b,0x9d,0x7c,0xfb,0xbe,0xf0,0x3, 0x40,0xe, +0x7e,0x14,0x4, 0xff,0x74,0x7, 0xac,0xb1,0x59,0x15,0xe, 0x9b,0x80,0x3e,0x74,0x2, +0xac,0xbf,0x49,0x45,0x0, 0xf8,0x74,0x7, 0xac,0xb1,0x59,0x45,0xe, 0x99,0x7e,0x14, +0x7, 0xd0,0x74,0x7, 0xac,0xb1,0x59,0x15,0xe, 0x9b,0x80,0x25,0xbe,0xf4,0x5, 0x0, +0x40,0x1f,0x7e,0x14,0x4, 0xff,0x74,0x7, 0xac,0xb1,0x59,0x15,0xe, 0x9b,0x74,0x7, +0xac,0xb1,0x49,0x15,0xe, 0x9b,0xbe,0x14,0x5, 0xa, 0x40,0x5, 0x7c,0xb0,0x12,0x68, +0x3d,0xb, 0x10,0xbe,0x10,0xa, 0x40,0x82,0xda,0xf8,0xda,0x69,0x22,0xca,0x79,0x70, +0x41,0x7e,0x74,0x0, 0xb, 0x7a,0x79,0x70,0x7c,0xb7,0x54,0x70,0xc4,0x54,0xf, 0x7c, +0x7b,0xa5,0xbf,0x4, 0x15,0x7e,0xb3,0x10,0xa5,0xb4,0x3, 0x7, 0x74,0x1, 0x7e,0x70, +0x3, 0x80,0x13,0x74,0x27,0x7e,0x70,0x3, 0x80,0x4b,0x7e,0xb3,0x10,0xa5,0xb4,0x3, +0xa, 0x74,0x1, 0x7e,0x70,0x1, 0x12,0x0, 0x5e,0x80,0x45,0x74,0x27,0x7e,0x70,0x1, +0x80,0x33,0xbe,0xb0,0xfc,0x68,0x3, 0xb4,0x3c,0x1f,0xa5,0xbf,0xaa,0x5, 0x7e,0x60, +0x5, 0x80,0x10,0xa5,0xbf,0x55,0x5, 0x7e,0x60,0x6, 0x80,0x7, 0xa5,0xbf,0x66,0x20, +0x7e,0x60,0x7, 0x74,0x27,0x7c,0x76,0x80,0xc, 0xbe,0xb0,0x80,0x40,0xc, 0xbe,0xb0, +0xdf,0x38,0x7, 0x24,0x80,0x12,0x6d,0x9f,0x80,0x6, 0xb4,0xfe,0x3, 0x7a,0x71,0xc, +0xda,0x79,0x22,0x6c,0x77,0x6c,0xaa,0x80,0x3c,0x7e,0x50,0x18,0xac,0x5a,0x3e,0x24, +0x2e,0x27,0xf, 0xda,0x2e,0x24,0x0, 0x30,0x7d,0x12,0x1b,0x16,0xb, 0x18,0x40,0xbe, +0x44,0x0, 0x3c,0x8, 0x1e,0x7e,0x14,0x0, 0x1, 0x7c,0xba,0x60,0x5, 0x3e,0x14,0x14, +0x78,0xfb,0x5e,0x14,0x4, 0x44,0x68,0xb, 0x1b,0x25,0xb, 0x28,0x20,0xbd,0x42,0x8, +0x2, 0xb, 0x70,0xb, 0xa0,0x7e,0x63,0x10,0x2b,0xbc,0x6a,0x38,0xbc,0xbe,0x70,0x1, +0x40,0x30,0x6c,0xaa,0x80,0x24,0x7e,0x50,0x18,0xac,0x5a,0x3e,0x24,0x2e,0x27,0xf, +0xda,0x2e,0x24,0x0, 0x30,0x1b,0x25,0xb, 0x28,0x30,0x7e,0x30,0x2, 0xac,0x3a,0x59, +0x31,0x0, 0xd2,0x6d,0x33,0x1b,0x28,0x30,0xb, 0xa0,0x7e,0xb3,0x10,0x2b,0xbc,0xba, +0x38,0xd4,0x22,0xca,0x79,0x6c,0xff,0x6c,0xee,0x80,0x63,0x7c,0xbe,0xc4,0x23,0x54, +0x1f,0x7c,0xab,0x7c,0xbe,0x54,0x7, 0x7e,0x34,0x0, 0x1, 0x60,0x5, 0x3e,0x34,0x14, +0x78,0xfb,0xa, 0x2a,0x9, 0xb2,0xd, 0x68,0x5c,0xb7,0x68,0x40,0x7e,0x50,0x2, 0xac, +0x5e,0x2e,0x24,0xd, 0x18,0x7e,0x70,0x2, 0xac,0x7f,0x2e,0x34,0xd, 0x18,0x7e,0x14, +0x0, 0x2, 0x12,0x6d,0x3c,0x7c,0xbf,0xc4,0x23,0x54,0x1f,0x7c,0xab,0x7c,0xbf,0x54, +0x7, 0x7e,0x34,0x0, 0x1, 0x60,0x5, 0x3e,0x34,0x14,0x78,0xfb,0xa, 0x4a,0x2e,0x44, +0xd, 0x68,0x7e,0x49,0xb0,0x4c,0xb7,0x7a,0x49,0xb0,0xb, 0xf0,0xb, 0xe0,0x7e,0x63, +0xd, 0xf7,0xbc,0x6e,0x38,0x95,0x7a,0xf3,0xd, 0xf7,0xda,0x79,0x22,0x6d,0x33,0x7a, +0x37,0x10,0x1, 0x7e,0x34,0xd, 0xac,0x7a,0x37,0xa, 0xaf,0x12,0x6e,0xcf,0x7e,0xb3, +0x10,0xa5,0x24,0xfa,0x68,0x17,0x14,0x68,0x44,0xb, 0xb1,0x78,0x55,0x7e,0xb3,0x0, +0xfe,0xbe,0xb0,0x5, 0x68,0x4c,0x74,0x5, 0x7a,0xb3,0x0, 0xfe,0x22,0x7e,0xb3,0x0, +0xfe,0xb4,0x5, 0x3e,0x74,0x6, 0x7a,0xb3,0x0, 0xfe,0x74,0xfa,0x12,0x6d,0x25,0x75, +0x9a,0x80,0x7e,0x34,0x77,0xf8,0x12,0x69,0xa1,0x7e,0x34,0x77,0xf8,0x74,0x66,0x12, +0x59,0xb7,0x7e,0x34,0x77,0xf9,0x74,0xbb,0x12,0x59,0xb7,0x80,0x12,0x7e,0xb3,0x0, +0xfe,0xb4,0x5, 0xe, 0x74,0x7, 0x7a,0xb3,0x0, 0xfe,0x74,0xfa,0x12,0x6d,0x25,0x75, +0xe9,0xff,0x22,0x0, 0x0, 0x0, 0x0, 0xd2,0xcd,0xa9,0xd1,0xc9,0x7e,0xb3,0x16,0xac, +0xb4,0x1, 0x14,0x7e,0x73,0x16,0xaf,0xa, 0x27,0x7e,0x34,0x1d,0x8, 0x1b,0x38,0x20, +0xe4,0x7a,0xb3,0x16,0xac,0x80,0xb, 0x7e,0x24,0x0, 0x2, 0x7e,0x34,0x1d,0x8, 0x1b, +0x38,0x20,0xa9,0xd0,0xca,0xc2,0xa8,0xc2,0x95,0x74,0x2, 0x7a,0xb3,0x16,0xb3,0x7e, +0xb3,0x16,0xb3,0x70,0xfa,0x12,0x6e,0x6f,0x12,0x61,0x24,0x12,0x6b,0xbe,0x6d,0x33, +0x7a,0x37,0x10,0x1, 0x7e,0x34,0xd, 0xac,0x7a,0x37,0xa, 0xaf,0x12,0x6e,0xcf,0x12, +0x6a,0x18,0x12,0x6a,0x3e,0x12,0x52,0x8, 0x74,0x1, 0x7a,0xb3,0x10,0x3c,0x7a,0xb3, +0x10,0x4d,0x2, 0x6e,0xb3,0xca,0x3b,0x7d,0x72,0x7d,0x63,0xe5,0x55,0xbe,0xb0,0x1, +0x68,0xf9,0x7d,0x36,0x7e,0x24,0x0, 0x4a,0xe4,0x12,0x6d,0xe0,0x7d,0x37,0x7e,0x24, +0x0, 0x4a,0xe4,0x12,0x6d,0xe0,0x75,0x21,0x1, 0x12,0x6b,0xde,0xe5,0x55,0xbe,0xb0, +0x1, 0x68,0xf9,0x75,0x22,0x0, 0x7e,0x51,0x22,0x74,0x2, 0xac,0x5b,0x49,0x2, 0xa, +0x62,0x1e,0x4, 0x1e,0x4, 0x7d,0x12,0x2d,0x16,0xb, 0x18,0x30,0x2d,0x30,0x1b,0x18, +0x30,0x49,0x12,0xa, 0x18,0x1e,0x14,0x1e,0x14,0x2d,0x27,0xb, 0x28,0x30,0x2d,0x31, +0x1b,0x28,0x30,0x5, 0x22,0xe5,0x22,0xb4,0x25,0xcc,0x5, 0x21,0xe5,0x21,0xbe,0xb0, +0x5, 0x40,0xb6,0xda,0x3b,0x22,0x6c,0x77,0x7e,0x63,0xd, 0xfa,0xa, 0x16,0x7e,0x63, +0xd, 0xf9,0xa, 0x26,0x2d,0x21,0xbe,0x24,0x0, 0xb4,0x28,0x3, 0x74,0x1, 0x22,0x6c, +0xaa,0x80,0x1c,0x7e,0x50,0x2, 0xac,0x5a,0x49,0x22,0x8, 0x9a,0xbe,0x24,0x3, 0x84, +0x8, 0x9, 0xb, 0x70,0xbe,0x70,0x10,0x68,0xe, 0x80,0x2, 0x6c,0x77,0xb, 0xa0,0x7e, +0x63,0x10,0x2c,0xbc,0x6a,0x38,0xdc,0xa5,0xbf,0x10,0x2a,0x6c,0x77,0x6c,0xaa,0x80, +0x1c,0x7e,0x50,0x2, 0xac,0x5a,0x49,0x22,0x8, 0xca,0xbe,0x24,0x7, 0xd0,0x8, 0x9, +0xb, 0x70,0xa5,0xbf,0x8, 0x5, 0x74,0x1, 0x22,0x6c,0x77,0xb, 0xa0,0x7e,0x63,0x10, +0x2b,0xbc,0x6a,0x38,0xdc,0xe4,0x22,0x7c,0xab,0xc2,0xaf,0xd2,0xc9,0xa9,0xd5,0xcb, +0x75,0xfb,0xa5,0x75,0xfb,0xf, 0x75,0xfb,0x6a,0xbe,0x34,0x73,0xf8,0x68,0x18,0xbe, +0x34,0x73,0xf9,0x68,0x12,0xbe,0x34,0x74,0x0, 0x50,0xc, 0x75,0xfb,0x0, 0xd2,0xaf, +0xc2,0xc9,0xa9,0xc5,0xcb,0xe4,0x22,0xa, 0x26,0x7c,0xb5,0xf5,0xf1,0x7c,0xb7,0x54, +0xfe,0xf5,0xf2,0x75,0xf3,0x80,0x75,0xf4,0x0, 0x5e,0x34,0x0, 0x1, 0x68,0x8, 0x75, +0xf6,0xff,0x7a,0xa1,0xf6,0x80,0x6, 0x7a,0xa1,0xf6,0x75,0xf6,0xff,0x75,0xf5,0x80, +0x74,0x1, 0x12,0x6d,0x25,0xa9,0x36,0xf5,0xfc,0x75,0xfb,0x0, 0xd2,0xaf,0xc2,0xc9, +0xa9,0xc5,0xcb,0x74,0x1, 0x22,0x74,0xa, 0x7a,0xb3,0xf, 0x46,0x74,0x14,0x7a,0xb3, +0xf, 0x47,0x7e,0x34,0x3, 0x20,0x7a,0x37,0xf, 0x48,0x7a,0x37,0xf, 0x4a,0x7e,0x24, +0x1, 0xf4,0x7a,0x27,0xf, 0x4c,0x7a,0x37,0xf, 0x4e,0x7a,0x37,0xf, 0x50,0x74,0xc, +0x7a,0xb3,0xf, 0x52,0x74,0x8, 0x7a,0xb3,0xf, 0x53,0x7e,0x34,0x0, 0x3c,0x7a,0x37, +0xf, 0x54,0x7a,0x37,0xf, 0x56,0x7a,0x37,0xf, 0x58,0x7e,0x34,0x0, 0x28,0x7a,0x37, +0xf, 0x5a,0x74,0xf, 0x7a,0xb3,0xf, 0x5c,0xe4,0x7a,0xb3,0xf, 0x5f,0x74,0x4, 0x7a, +0xb3,0xf, 0x60,0x7e,0x34,0x0, 0x64,0x7a,0x37,0xf, 0x61,0x7e,0x34,0xa, 0x0, 0x7a, +0x37,0xf, 0x5d,0x22,0xca,0x3b,0x7d,0x72,0x7d,0x63,0x7e,0xb3,0x10,0x3c,0xf5,0x1d, +0xe4,0x7a,0xb3,0x10,0x3c,0x7d,0x36,0x7d,0x27,0x12,0x6a,0x89,0x7e,0x34,0x10,0x2b, +0x12,0x5b,0x2, 0x75,0x1b,0x0, 0x7e,0x34,0x10,0x2b,0x12,0x64,0xab,0x12,0x6e,0x81, +0x60,0xfb,0x7d,0x36,0x7e,0x25,0x70,0x12,0x54,0xd0,0x75,0x1c,0x0, 0x7e,0x51,0x1c, +0x74,0x2, 0xac,0x5b,0x7d,0x32,0x2d,0x36,0xb, 0x38,0x10,0xe, 0x14,0xe, 0x14,0x2d, +0x27,0xb, 0x28,0x30,0x2d,0x31,0x1b,0x28,0x30,0x5, 0x1c,0xe5,0x1c,0xb4,0x25,0xdd, +0x5, 0x1b,0xe5,0x1b,0xbe,0xb0,0x4, 0x40,0xbd,0xe5,0x1d,0x7a,0xb3,0x10,0x3c,0xda, +0x3b,0x22,0x7d,0x3, 0x75,0xcc,0x18,0x75,0xcd,0x7, 0x9, 0xa0,0x0, 0x2, 0x3e,0xa0, +0xe5,0xca,0x54,0x1, 0x4c,0xba,0xf5,0xca,0xa9,0xd0,0xca,0xa9,0xd3,0xe1,0xa9,0xd1, +0xe1,0x9, 0x70,0x0, 0xe, 0x2e,0x70,0xff,0xa9,0x94,0xe1,0x9, 0xa0,0x0, 0xf, 0x7c, +0xba,0xc4,0x33,0x54,0xe0,0x7c,0xab,0xe5,0xe3,0x54,0x1f,0x4c,0xba,0xf5,0xe3,0x9, +0xb0,0x0, 0x13,0x54,0x3, 0xa, 0x5b,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x7c,0xab,0xe5, +0xe3,0x54,0xe7,0x4c,0xba,0xf5,0xe3,0xa9,0xc1,0xe3,0xa9,0xc0,0xe3,0x7d,0x30,0x12, +0x5c,0xfb,0x9, 0xb0,0x0, 0x14,0xf5,0xe7,0x22,0x7e,0xb3,0x16,0xac,0x70,0x17,0xe5, +0xcc,0x7a,0xb3,0x16,0xad,0x7e,0x34,0x1d,0x8, 0xb, 0x38,0x30,0x7a,0x73,0x16,0xaf, +0x74,0x1, 0x7a,0xb3,0x16,0xac,0xc2,0xc9,0xa9,0xc6,0xcb,0xa9,0xc5,0xcb,0xc2,0xcc, +0xc2,0xca,0xc2,0xc8,0xa9,0xc4,0xcb,0x80,0x2e,0xe5,0x55,0xbe,0xb0,0x1, 0x68,0x23, +0xe5,0x75,0xb4,0x1, 0x1e,0xe5,0x76,0xb4,0x1, 0x19,0xa9,0xc3,0xcb,0x7e,0x24,0x0, +0x1, 0x7e,0x34,0x1d,0x8, 0x1b,0x38,0x20,0xa9,0xc7,0xcb,0xa9,0xc1,0xc9,0xa9,0xc3, +0xc9,0xc2,0xcd,0xe4,0x12,0x6d,0x69,0x7e,0xb3,0x16,0xb0,0x60,0xcc,0x22,0x6d,0x33, +0x7a,0x37,0x10,0x1, 0x7e,0x34,0xd, 0xac,0x7a,0x37,0xa, 0xaf,0x12,0x6e,0xcc,0x12, +0x6e,0x6f,0x12,0x61,0x24,0x12,0x6e,0xd5,0x12,0x6d,0x7b,0x74,0x1, 0x7a,0xb3,0x10, +0xa5,0x12,0x6b,0xbe,0x12,0x6a,0x18,0x74,0x1, 0x7a,0xb3,0x10,0x3c,0x7a,0xb3,0x10, +0x4d,0x12,0x6e,0xb3,0x7e,0xb3,0x10,0xa5,0x24,0xfd,0x68,0x12,0x14,0x68,0x14,0x14, +0x68,0x16,0x14,0x68,0x13,0x24,0x5, 0x78,0xeb,0x12,0x41,0x6b,0x80,0xe6,0x12,0x5e, +0x70,0x80,0xe1,0x12,0x69,0xf1,0x80,0xdc,0x6d,0x33,0x7a,0x37,0x10,0x1, 0x12,0x57, +0xed,0x80,0xd1,0x7c,0xa5,0x7c,0x5b,0xa9,0xd6,0xcb,0x7c,0xb7,0xf5,0xb9,0xa, 0x36, +0x7c,0xb7,0xf5,0xba,0x7c,0xb5,0xc4,0x33,0x54,0xe0,0x4c,0xba,0xf5,0xbb,0x7c,0xb2, +0x1e,0xb0,0x1e,0xb0,0x54,0xf, 0xa, 0x4b,0x3e,0x44,0x3e,0x44,0x3e,0x44,0x3e,0x44, +0x1e,0x50,0x1e,0x50,0x1e,0x50,0xa, 0x55,0x4d,0x54,0xf5,0xbc,0x7c,0xb1,0xf5,0xbd, +0xa, 0x50,0xf5,0xc1,0x7c,0xb3,0x44,0xa0,0xf5,0xc3,0x7a,0x41,0xc4,0x75,0xc5,0xc0, +0x43,0xc2,0x7, 0x80,0x7, 0x43,0xc2,0x7, 0x0, 0x0, 0x0, 0x0, 0xa9,0x37,0xc2,0xf5, +0x75,0xc2,0x0, 0xa9,0xc6,0xcb,0x22,0x7c,0xab,0x6c,0x33,0x6d,0x44,0x7e,0x10,0x2, +0xac,0x13,0x2e,0x4, 0x1c,0x3a,0x1b,0x8, 0x40,0xb, 0x30,0xa5,0xbb,0xc, 0xec,0x6c, +0x33,0x80,0x43,0xa, 0x3, 0x2d,0x2, 0x7e,0x9, 0x20,0x7c,0xb2,0xa, 0x3, 0x20,0xe0, +0xb, 0x2d,0x3, 0x7e,0x9, 0xb0,0x54,0x1f,0xa, 0xfb,0x80,0x13,0x2d,0x3, 0x7e,0x9, +0xb0,0x54,0x1f,0xa, 0xfb,0x3e,0xf4,0x3e,0xf4,0x3e,0xf4,0x3e,0xf4,0x3e,0xf4,0x7c, +0xb2,0x1e,0xb0,0x7e,0x90,0x2, 0xac,0x9b,0x2e,0x44,0x1c,0x3a,0xb, 0x48,0x0, 0x4d, +0xf, 0x1b,0x48,0x0, 0xb, 0x30,0xbc,0xa3,0x38,0xb9,0x22,0x7d,0x23,0x75,0xe4,0x1, +0x9, 0xb2,0x0, 0xc, 0x54,0x7f,0xf5,0xe5,0x75,0xe4,0x2, 0x9, 0xb2,0x0, 0xd, 0x54, +0x7f,0xf5,0xe5,0x75,0xe4,0x7, 0x9, 0xb2,0x0, 0x15,0x54,0x7f,0xf5,0xe5,0x75,0xe4, +0xb, 0x6c,0xaa,0xa, 0x1a,0x49,0x32,0x0, 0x1d,0x2d,0x31,0x7e,0x39,0xb0,0xf5,0xe5, +0xb, 0xa0,0xbe,0xa0,0x25,0x40,0xec,0x75,0xe4,0x30,0x49,0x32,0x0, 0x1b,0x7e,0x39, +0xb0,0xf5,0xe5,0x75,0xe4,0x31,0x49,0x32,0x0, 0x19,0x7d,0x53,0x5e,0x54,0x0, 0xff, +0xf5,0xe5,0x75,0xe4,0x32,0x5e,0x34,0xff,0x0, 0xa, 0x56,0xf5,0xe5,0x22,0xca,0x79, +0x7e,0x71,0x54,0x3e,0x70,0x3e,0x70,0x7c,0xb7,0x24,0x56,0xa, 0x2b,0xb, 0x28,0x50, +0x7c,0xab,0x7c,0xb7,0x24,0x58,0xa, 0x3b,0xb, 0x38,0x70,0x4d,0x77,0x68,0x1f,0xbe, +0xa0,0x1, 0x68,0xa, 0xbe,0xa0,0x2, 0x68,0x5, 0xbe,0xa0,0x3, 0x78,0x10,0x7e,0x34, +0x10,0x2b,0x12,0x6b,0x17,0x7d,0x37,0x7e,0x24,0x18,0x0, 0x12,0x54,0xd0,0x5, 0x54, +0xe5,0x53,0xbe,0xb1,0x54,0x28,0x10,0x12,0x62,0x6b,0xb4,0x1, 0x5, 0x75,0x55,0x1, +0x80,0x8, 0x75,0x55,0x3, 0x80,0x3, 0x75,0x55,0x2, 0xda,0x79,0x22,0x6d,0x11,0x7e, +0x24,0x1c,0x1c,0x1b,0x28,0x10,0x6c,0x55,0x9, 0xb3,0x0, 0x4d,0xb4,0x1, 0x6, 0x9, +0xa3,0x0, 0x50,0x80,0x2, 0x7c,0xa5,0xa, 0x4a,0x49,0x13,0x0, 0x8, 0x2d,0x14,0x7e, +0x19,0x40,0xa, 0x14,0x7e,0x4, 0x1c,0x24,0x1b,0x8, 0x10,0x9, 0x43,0x0, 0x1f,0xa, +0x14,0x1b,0x8, 0x10,0x49,0x13,0x0, 0x41,0x2d,0x14,0x7e,0x19,0x40,0xa, 0x14,0x1b, +0x8, 0x10,0x49,0x13,0x0, 0x43,0x2d,0x14,0x7e,0x19,0x40,0xa, 0x14,0x1b,0x8, 0x10, +0xb, 0x50,0xbe,0x50,0xd, 0x40,0xb1,0x22,0x75,0x9, 0x0, 0xe5,0xb, 0xc4,0x7c,0x5b, +0x5e,0x50,0x7, 0xa5,0xbd,0x0, 0x9, 0xe5,0xf, 0x12,0x53,0x28,0xf5,0x91,0x80,0xb, +0xa5,0xbd,0x4, 0x7, 0xe5,0xf, 0x12,0x27,0x2e,0xf5,0x91,0x75,0xa, 0x0, 0xe4,0x7a, +0xb3,0x16,0x4e,0x7e,0x34,0x15,0xca,0x7e,0x24,0x0, 0x42,0x74,0xff,0x12,0x6d,0xe0, +0x7e,0x34,0x16,0xc, 0x7e,0x24,0x0, 0x42,0x74,0xff,0x12,0x6d,0xe0,0x74,0xaa,0x7a, +0xb3,0x15,0xca,0x7a,0xb3,0x15,0xcb,0x7a,0xb3,0x16,0xc, 0x7a,0xb3,0x16,0xd, 0x22, +0xca,0xf8,0x74,0x3, 0x7a,0xb3,0x16,0xa3,0xe4,0x7a,0xb3,0x10,0x3c,0x7a,0xb3,0x10, +0x4d,0x74,0x3, 0x7a,0xb3,0x16,0xa3,0x6d,0x33,0x7a,0x37,0x10,0x1, 0x7e,0x34,0xd, +0xac,0x7a,0x37,0xa, 0xaf,0x7e,0xf3,0x16,0xa3,0xbe,0xf0,0x3, 0x78,0x1d,0xe5,0xb, +0x30,0xe7,0xe4,0x12,0x6a,0xf4,0x7e,0x37,0xf, 0xd6,0x7a,0x37,0x16,0xa0,0x7e,0x37, +0xf, 0xda,0x7a,0x37,0x16,0x9e,0x53,0xb, 0x7f,0x80,0xcc,0x7a,0xf3,0x10,0xa5,0x12, +0x0, 0x1e,0x12,0x0, 0x6a,0xda,0xf8,0x22,0x7c,0xab,0xa9,0xd6,0xcb,0x7c,0xb7,0xf5, +0xb9,0xa, 0x36,0x7c,0xb7,0xf5,0xba,0x7c,0xb5,0xf5,0xbb,0xa, 0x34,0x7c,0xb7,0xf5, +0xbc,0x7c,0xb3,0xf5,0xbd,0xa, 0x12,0x7c,0xb3,0xf5,0xc1,0x7c,0xba,0x44,0xa0,0xf5, +0xc3,0xe5,0xc4,0x54,0xe0,0x4c,0xb1,0xf5,0xc4,0x75,0xc5,0xc0,0xa, 0x30,0x7d,0x23, +0x4e,0x24,0x0, 0x1, 0x7c,0x15,0x7c,0xb1,0x42,0xc2,0x80,0x8, 0x7c,0xb1,0x42,0xc2, +0x0, 0x0, 0x0, 0x0, 0xa9,0x37,0xc2,0xf4,0x75,0xc2,0x0, 0xa9,0xc6,0xcb,0x22,0x6c, +0xaa,0x6c,0x77,0x7e,0x10,0x30,0xac,0x1a,0x7e,0x30,0x2, 0xac,0x37,0x2d,0x10,0x7d, +0x1, 0x2e,0x7, 0xf, 0xda,0xb, 0x8, 0x20,0xbe,0x27,0xe, 0x5, 0x8, 0x12,0x7d,0x41, +0x2e,0x47,0xf, 0xd8,0xb, 0x48,0x0, 0x2e,0x7, 0xe, 0x5, 0x1b,0x48,0x0, 0x80,0x18, +0x6d,0x0, 0x9e,0x7, 0xe, 0x5, 0xbd,0x20,0x58,0xe, 0x2e,0x17,0xf, 0xd8,0xb, 0x18, +0x20,0x9e,0x27,0xe, 0x5, 0x1b,0x18,0x20,0xb, 0x70,0xa5,0xbf,0x18,0xb5,0xb, 0xa0, +0xbe,0xa0,0xd, 0x40,0xac,0x22,0xca,0x3b,0x7c,0xc5,0x7c,0xdb,0x7d,0x73,0x7a,0xd, +0x31,0x7e,0x79,0x50,0xa5,0xbd,0x0, 0xb, 0x7e,0xd, 0x31,0x7e,0xb, 0x40,0x7a,0x79, +0x40,0x80,0x36,0x7e,0xd, 0x31,0x7e,0xb, 0x40,0xa, 0x34,0xa, 0x25,0x9d,0x32,0x12, +0x6d,0xd0,0xa, 0x2c,0xbd,0x32,0x8, 0x18,0x7e,0x1d,0x31,0x7e,0x1b,0xb0,0x7e,0x79, +0xa0,0xbc,0xba,0x7c,0xba,0x28,0x4, 0x2c,0xbd,0x80,0x2, 0x9c,0xbd,0x7a,0x79,0xb0, +0x7e,0x79,0x30,0x7e,0x1d,0x31,0x7a,0x1b,0x30,0xda,0x3b,0x22,0x7e,0xb3,0x10,0x39, +0xb4,0x1, 0x26,0x7e,0x73,0xa, 0xac,0x7a,0x73,0x10,0x37,0x7e,0x73,0xa, 0xad,0x7a, +0x73,0x10,0x38,0x7e,0x73,0xa, 0xae,0x7a,0x73,0x10,0x3a,0x7e,0x34,0xd, 0xfe,0x7a, +0x37,0x10,0x46,0x7e,0x34,0xf, 0xdc,0x80,0x24,0x7e,0x73,0x11,0x16,0x7a,0x73,0x10, +0x37,0x7e,0x73,0x11,0x49,0x7a,0x73,0x10,0x38,0x7e,0x73,0x11,0x94,0x7a,0x73,0x10, +0x3a,0x7e,0x34,0x11,0x9d,0x7a,0x37,0x10,0x46,0x7e,0x34,0xf, 0x63,0x7a,0x37,0x10, +0x48,0x22,0xe5,0x55,0xbe,0xb0,0x1, 0x68,0xf9,0xe5,0x75,0x60,0xfc,0xe5,0x76,0x60, +0xfc,0x20,0x93,0xfd,0xd2,0x96,0xd2,0x95,0xd2,0xb8,0xa9,0xd0,0xb7,0xd2,0xa8,0x7e, +0xb3,0x16,0xac,0x70,0x17,0xe5,0xcc,0x7a,0xb3,0x16,0xad,0x7e,0x34,0x1d,0x8, 0xb, +0x38,0x30,0x7a,0x73,0x16,0xaf,0x74,0x1, 0x7a,0xb3,0x16,0xac,0xa9,0xc0,0xca,0x7e, +0x24,0x0, 0x1, 0x7e,0x34,0x1d,0x8, 0x1b,0x38,0x20,0xa9,0xc1,0xc9,0xa9,0xc3,0xc9, +0xc2,0xcd,0x75,0x87,0x2, 0x0, 0x0, 0x22,0x6c,0xaa,0x7e,0x50,0x2, 0xac,0x5a,0x7d, +0x32,0x2e,0x37,0xf, 0xd6,0xb, 0x38,0x10,0x2e,0x27,0xf, 0xd4,0xb, 0x28,0x30,0x2d, +0x31,0x1b,0x28,0x30,0xb, 0xa0,0xbe,0xa0,0x25,0x78,0xdf,0x6c,0xaa,0x7e,0x50,0x2, +0xac,0x5a,0x49,0x12,0x9, 0x2e,0x2e,0x24,0x8, 0xe4,0xb, 0x28,0x30,0x2d,0x31,0x1b, +0x28,0x30,0xb, 0xa0,0xbe,0xa0,0x25,0x40,0xe4,0x7e,0x14,0x1, 0x0, 0x7d,0x31,0x7e, +0x24,0x3, 0x70,0x74,0x18,0x7e,0x13,0x10,0x2b,0x6c,0x0, 0x2, 0x5e,0xc8,0x9, 0xa3, +0x0, 0x24,0xbe,0xa0,0x1, 0x78,0x5, 0xa9,0xc1,0xc9,0x80,0x3, 0xa9,0xd1,0xc9,0x43, +0xcc,0x8, 0x9, 0x53,0x0, 0x2, 0x3e,0x50,0xe5,0xca,0x54,0x1, 0x4c,0xb5,0xf5,0xca, +0xa9,0xd0,0xca,0xd2,0xcd,0xbe,0xa0,0x1, 0x78,0x5, 0xa9,0xd0,0xc9,0x80,0x3, 0xa9, +0xc0,0xc9,0x7e,0x14,0x1d,0x0, 0xb, 0x18,0x20,0x5e,0x24,0xff,0xfd,0x1b,0x18,0x20, +0x9, 0xb3,0x0, 0x3f,0xb4,0x1, 0xc, 0x75,0xe4,0x32,0x9, 0xb3,0x0, 0x40,0xc4,0x54, +0xf0,0xf5,0xe5,0x22,0x12,0x4b,0x78,0x12,0x3b,0x1c,0x12,0x68,0x9d,0x7e,0x34,0x8, +0x50,0x7a,0x37,0xf, 0xd4,0x7e,0x34,0x8, 0x9a,0x7a,0x37,0xf, 0xd6,0x7e,0x34,0x8, +0x9a,0x7e,0x27,0xf, 0xd4,0x12,0x6a,0x89,0x7e,0x34,0x1, 0x0, 0x7a,0x37,0xf, 0xd8, +0x7e,0x34,0x3, 0x70,0x7a,0x37,0xf, 0xda,0x7e,0x34,0x3, 0x70,0x7e,0x27,0xf, 0xd8, +0x12,0x67,0xa7,0x12,0x64,0xec,0x12,0x5a,0x26,0x12,0x6a,0x3e,0x12,0x52,0x8, 0x12, +0x6e,0x52,0x74,0x1, 0x7a,0xb3,0x11,0x96,0x22,0xca,0xf8,0x7e,0xb3,0xf, 0xd2,0xb4, +0x1, 0x48,0x6c,0xff,0x80,0x3c,0x7e,0x37,0xf, 0xd6,0x2e,0x34,0x0, 0x30,0x74,0x2, +0xac,0xbf,0x9, 0xb5,0xa, 0xb1,0x7e,0x53,0x10,0x2b,0x12,0x35,0x22,0x74,0x4, 0xac, +0xbf,0x59,0x35,0xb, 0x86,0x7e,0x37,0xf, 0xd6,0x74,0x2, 0xac,0xbf,0x9, 0xb5,0xa, +0xb2,0x7e,0x53,0x10,0x2c,0x12,0x35,0x22,0x74,0x4, 0xac,0xbf,0x59,0x35,0xb, 0x88, +0xb, 0xf0,0x7e,0x73,0xd, 0x16,0xbc,0x7f,0x38,0xbc,0xda,0xf8,0x22,0xca,0x69,0xca, +0xf8,0x7c,0xfb,0x7e,0x24,0x0, 0x4, 0x7c,0xaf,0x3e,0xa0,0x3e,0xa0,0x7c,0xba,0x24, +0x56,0xa, 0x3b,0x1b,0x38,0x20,0x6d,0x66,0x7c,0xba,0x24,0x58,0xa, 0x3b,0x1b,0x38, +0x60,0xb, 0xf0,0x12,0x0, 0x6e,0x50,0x1e,0x7e,0x24,0x0, 0x5, 0x7c,0xaf,0x3e,0xa0, +0x3e,0xa0,0x7c,0xba,0x24,0x56,0xa, 0x3b,0x1b,0x38,0x20,0x7c,0xba,0x24,0x58,0xa, +0x3b,0x1b,0x38,0x60,0xb, 0xf0,0x7c,0xbf,0xda,0xf8,0xda,0x69,0x22,0x7e,0x47,0x16, +0x65,0x6c,0x77,0x7e,0xa0,0xff,0x7e,0x43,0x16,0x54,0xa, 0x14,0x9, 0x51,0xf, 0x29, +0xbe,0x53,0x10,0x4a,0x78,0x32,0x7e,0x50,0x12,0xac,0x45,0x49,0x22,0x16,0x65,0xbe, +0x24,0x0, 0x41,0x40,0x23,0x7e,0x60,0x1, 0xbe,0x44,0x0, 0x19,0x40,0x18,0x7e,0x30, +0x12,0xac,0x36,0x49,0x21,0x16,0x65,0xbd,0x24,0x50,0x4, 0x7d,0x42,0x7c,0x76,0xb, +0x60,0xbe,0x60,0x4, 0x40,0xe2,0x7c,0xa7,0x7c,0xba,0x22,0xca,0x79,0xe5,0x53,0xbe, +0xb1,0x54,0x38,0x4, 0x6c,0xff,0x80,0x3a,0xe5,0x54,0x3e,0xb0,0x3e,0xb0,0x24,0x56, +0xa, 0x3b,0xb, 0x38,0x30,0x7c,0xe7,0xbe,0xe0,0x1, 0x68,0xe, 0xbe,0xe0,0x2, 0x68, +0x9, 0xbe,0xe0,0x3, 0x68,0x4, 0x4c,0xee,0x78,0x7, 0x7c,0xbe,0x12,0x63,0x2, 0x7c, +0xfb,0xbe,0xe0,0x4, 0x68,0x5, 0xbe,0xe0,0x5, 0x78,0x7, 0x7c,0xbe,0x12,0x51,0x77, +0x7c,0xfb,0x7c,0xbf,0xda,0x79,0x22,0x7e,0xa3,0xd, 0xf7,0xbe,0xa0,0x0, 0x28,0x40, +0x6c,0x77,0x80,0x38,0x7e,0x50,0x2, 0xac,0x57,0x9, 0x62,0xd, 0x18,0x9, 0x52,0xd, +0x19,0x7e,0x30,0x2, 0xac,0x36,0x49,0x1, 0x11,0xce,0x7e,0x17,0xf, 0x4a,0xe, 0x14, +0xbd,0x1, 0x48,0x13,0x7e,0x30,0x2, 0xac,0x35,0x49,0x1, 0x11,0x9e,0x7e,0x17,0xf, +0x4c,0xe, 0x14,0xbd,0x1, 0x58,0x3, 0x74,0x1, 0x22,0xb, 0x70,0xbc,0xa7,0x38,0xc4, +0xe4,0x22,0xca,0xf8,0x7c,0xfb,0xbe,0xf0,0x1, 0x78,0x3, 0xe4,0x80,0xb, 0xbe,0xf0, +0x2, 0x68,0x4, 0x4c,0xff,0x78,0x8, 0x74,0x1, 0x7a,0xb3,0x10,0x39,0x80,0x3, 0xe4, +0x80,0x28,0x12,0x5f,0xcc,0x4c,0xff,0x78,0x11,0xe4,0x7a,0xb3,0x10,0x3a,0x74,0x1e, +0x7a,0xb3,0x10,0x37,0x74,0xa, 0x7a,0xb3,0x10,0x38,0x7e,0x34,0x10,0x2b,0x12,0x5b, +0x2, 0x7e,0x34,0x10,0x2b,0x12,0x64,0xab,0x74,0x1, 0xda,0xf8,0x22,0xca,0x7b,0xca, +0x6b,0xca,0x5b,0xca,0x4b,0xca,0x2b,0xca,0x1b,0xca,0xb, 0xc0,0xd0,0xc0,0x83,0xc0, +0x82,0x75,0x75,0x1, 0x7e,0x24,0x1d,0x0, 0xb, 0x28,0x30,0x4e,0x60,0x2, 0x1b,0x28, +0x30,0xb, 0x28,0x30,0x4e,0x70,0x2, 0x1b,0x28,0x30,0xe5,0x55,0xb4,0x1, 0x3, 0x12, +0x5d,0x5e,0xd0,0x82,0xd0,0x83,0xd0,0xd0,0xda,0xb, 0xda,0x1b,0xda,0x2b,0xda,0x4b, +0xda,0x5b,0xda,0x6b,0xda,0x7b,0x32,0x7c,0xab,0xa9,0xd6,0xcb,0x7c,0xb7,0xf5,0xb9, +0xa, 0x36,0x7c,0xb7,0xf5,0xba,0x7c,0xb5,0xf5,0xbb,0xa, 0x34,0x7c,0xb7,0xf5,0xbc, +0x7a,0xa1,0xc3,0x75,0xc5,0x40,0x75,0xc2,0x2b,0x80,0x3, 0x43,0xc2,0x1, 0x0, 0x0, +0x0, 0x0, 0xa9,0x37,0xc2,0xf5,0x75,0xc2,0x0, 0x75,0xc5,0xe, 0xe5,0xc6,0xa, 0x3b, +0xe5,0xc6,0xa, 0x2b,0x7c,0x45,0x6c,0x55,0x4d,0x32,0xa9,0xc6,0xcb,0x22,0xe4,0x7a, +0xb3,0x15,0x9f,0x7a,0xb3,0x15,0x53,0x7a,0xb3,0x15,0x9e,0x7a,0xb3,0x15,0xa0,0x7a, +0xb3,0x15,0xa1,0x7e,0x34,0x15,0x56,0x7e,0x24,0x0, 0x48,0x12,0x6d,0xe0,0x7e,0x34, +0x14,0xe3,0x7e,0x24,0x0, 0x48,0xe4,0x12,0x6d,0xe0,0x7e,0x34,0x15,0x56,0x7e,0x24, +0x0, 0x46,0x74,0xff,0x12,0x6d,0xe0,0x7e,0x34,0x14,0xe3,0x7e,0x24,0x0, 0x46,0x74, +0xff,0x2, 0x6d,0xe0,0xd2,0xcd,0xa9,0xd1,0xc9,0xa9,0xd3,0xcb,0xa9,0xd7,0xcb,0x7e, +0xb3,0x16,0xac,0xb4,0x1, 0x15,0x7e,0x73,0x16,0xaf,0xa, 0x27,0x7e,0x34,0x1d,0x8, +0x1b,0x38,0x20,0x7e,0xb3,0x16,0xad,0xf5,0xcc,0x80,0xe, 0x7e,0x24,0x0, 0x2, 0x7e, +0x34,0x1d,0x8, 0x1b,0x38,0x20,0x75,0xcc,0x0, 0xa9,0xd4,0xc9,0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0xe4,0x7a,0xb3,0x16,0xac,0x22,0x7c,0xab,0x6c,0x33,0x80,0x36, +0xa, 0x3, 0x2d,0x2, 0x7e,0x9, 0x20,0x7c,0xb2,0x54,0x7, 0x3e,0xb0,0xa, 0x3, 0x2d, +0x3, 0x7e,0x9, 0x10,0xa, 0xf1,0x60,0x5, 0x3e,0xf4,0x14,0x78,0xfb,0x1e,0x20,0x1e, +0x20,0x1e,0x20,0x7e,0x90,0x2, 0xac,0x92,0x2e,0x44,0x1c,0x30,0xb, 0x48,0x0, 0x4d, +0xf, 0x1b,0x48,0x0, 0xb, 0x30,0xbc,0xa3,0x38,0xc6,0x22,0x75,0x76,0x0, 0x75,0xe4, +0x3, 0x49,0x23,0x0, 0x17,0x7d,0x52,0x5e,0x54,0x0, 0xff,0xf5,0xe5,0x75,0xe4,0x4, +0x5e,0x24,0x1f,0x0, 0xa, 0x24,0x7c,0xa5,0x7a,0xa1,0xe5,0x75,0xe4,0x5, 0xf5,0xe5, +0x75,0xe4,0x6, 0x9, 0xb3,0x0, 0x16,0xc4,0x33,0x54,0xe0,0x4c,0xba,0xf5,0xe5,0xa9, +0xd6,0xea,0x75,0xe6,0x0, 0xa9,0xd1,0xe1,0xa9,0xd0,0xe1,0x22,0x7e,0x34,0x1, 0x90, +0x7a,0x37,0xd, 0xff,0x7e,0x34,0x0, 0x19,0x7a,0x37,0xe, 0x1, 0x7e,0x34,0x0, 0x9c, +0x7a,0x37,0xe, 0x3, 0x7e,0x34,0x0, 0x2, 0x7a,0x37,0xe, 0x5, 0x7a,0x37,0xe, 0x7, +0x74,0x1, 0x7a,0xb3,0xe, 0x9, 0x7e,0xb3,0xe, 0xa, 0x54,0xfb,0x7a,0xb3,0xe, 0xa, +0x7e,0x34,0x10,0x3, 0x7e,0x24,0x0, 0x28,0xe4,0x2, 0x6d,0xe0,0xca,0xf8,0x7e,0x24, +0xe, 0xd, 0x7e,0x34,0xe, 0x99,0x7e,0x14,0x0, 0x46,0x12,0x6d,0x3c,0x6c,0xff,0x74, +0x7, 0xac,0xbf,0x49,0x35,0xe, 0xd, 0x12,0x4c,0xf7,0x74,0x7, 0xac,0xbf,0x59,0x35, +0xe, 0x99,0x49,0x35,0xe, 0xf, 0x12,0x4a,0xa6,0x74,0x7, 0xac,0xbf,0x59,0x35,0xe, +0x9b,0xb, 0xf0,0xbe,0xf0,0xa, 0x40,0xd7,0xda,0xf8,0x22,0x6d,0x33,0x6c,0xaa,0x80, +0x2e,0x7e,0x30,0x2, 0xac,0x3a,0x9, 0x51,0xd, 0x18,0x9, 0x41,0xd, 0x19,0x7e,0x10, +0x30,0xac,0x15,0x7e,0x30,0x2, 0xac,0x34,0x2d,0x10,0x2e,0x17,0xf, 0xda,0xb, 0x18, +0x40,0xbe,0x44,0x0, 0x0, 0x8, 0x6, 0xbd,0x43,0x8, 0x2, 0x7d,0x34,0xb, 0xa0,0x7e, +0xb3,0xd, 0xf7,0xbc,0xba,0x38,0xca,0x22,0xca,0x79,0x7d,0x41,0x7d,0x13,0x6d,0x0, +0x7e,0x34,0x7f,0xff,0x6c,0xaa,0x80,0x1b,0x7e,0xf0,0x7, 0xac,0xfa,0x7d,0xe7,0x2d, +0xe4,0x49,0xfe,0x0, 0x2, 0xbd,0xf0,0x28,0x2, 0x7d,0xf, 0xbd,0xf3,0x50,0x2, 0x7d, +0x3f,0xb, 0xa0,0x9, 0xb4,0x0, 0x46,0xbc,0xba,0x38,0xdd,0x1b,0x18,0x0, 0x1b,0x28, +0x30,0xda,0x79,0x22,0xca,0xf8,0x7e,0xb3,0x10,0x4e,0x60,0x3, 0xb4,0x1, 0x2d,0xa9, +0xc6,0xea,0x12,0x2b,0xa0,0x7c,0xfb,0x7e,0x37,0xf, 0xda,0x7e,0x27,0xf, 0xd8,0x12, +0x67,0xa7,0x7e,0x37,0xf, 0xda,0x7e,0x27,0xf, 0xd8,0x12,0x53,0xb7,0xbe,0xf0,0x1, +0x78,0x4, 0x74,0x2, 0x80,0x2, 0x74,0xff,0x7a,0xb3,0x10,0x4e,0xda,0xf8,0x22,0x7e, +0xb3,0x16,0x54,0x4, 0x7a,0xb3,0x16,0x54,0x7e,0x73,0x16,0x54,0xbe,0x70,0x4, 0x40, +0x5, 0xe4,0x7a,0xb3,0x16,0x54,0x7e,0xa3,0x16,0x54,0xbe,0xa0,0x3, 0x78,0x13,0x7e, +0xb3,0x16,0x9d,0x4, 0x7a,0xb3,0x16,0x9d,0xbe,0xb0,0x8, 0x40,0x5, 0xe4,0x7a,0xb3, +0x16,0x9d,0xa, 0x3a,0x9, 0xb3,0xf, 0x29,0x22,0xca,0x3b,0x7d,0x72,0x7d,0x63,0x7d, +0x21,0x7d,0x36,0x7e,0x14,0x0, 0x4a,0x12,0x6d,0x3c,0x7e,0xb3,0x10,0x3c,0xb4,0x1, +0x1f,0x6c,0xaa,0x7e,0x50,0x2, 0xac,0x5a,0x7d,0x32,0x2d,0x37,0xb, 0x38,0x10,0x2d, +0x26,0xb, 0x28,0x30,0x9d,0x31,0x1b,0x28,0x30,0xb, 0xa0,0xbe,0xa0,0x25,0x78,0xe3, +0xda,0x3b,0x22,0x7e,0xb3,0x10,0x3d,0x70,0x32,0xa9,0xd6,0xea,0x74,0x1, 0x7a,0xb3, +0x10,0x39,0x12,0x5f,0xcc,0x12,0x2d,0xb5,0xe4,0x7a,0xb3,0x10,0x39,0x12,0x5f,0xcc, +0x12,0x2d,0xb5,0x7e,0x34,0x10,0x2b,0x12,0x6b,0x17,0x7e,0x37,0xf, 0xd4,0x7e,0x24, +0x8, 0xe4,0x12,0x58,0xd5,0x74,0x2, 0x7a,0xb3,0x10,0x3d,0x22,0x7e,0xa3,0xf, 0x1c, +0xbe,0xa0,0x0, 0x38,0x2f,0xbe,0xa3,0xf, 0x1b,0x50,0x19,0x7e,0xb3,0xf, 0x25,0xbe, +0xb3,0x12,0x33,0x28,0x14,0x7e,0xb3,0x12,0x33,0x4, 0x7a,0xb3,0x12,0x33,0x7a,0xa3, +0xf, 0x1b,0x80,0x5, 0xe4,0x7a,0xb3,0x12,0x33,0x7e,0xb3,0xf, 0x1b,0x70,0x5, 0xe4, +0x7a,0xb3,0xf, 0x24,0x22,0xca,0x7b,0xca,0x6b,0xca,0x5b,0xca,0x4b,0xca,0x2b,0xca, +0x1b,0xca,0xb, 0xc0,0xd0,0xc0,0x83,0xc0,0x82,0x53,0xcc,0xf8,0x43,0xcc,0x1, 0x12, +0x54,0x45,0x74,0x1, 0x7a,0xb3,0x16,0x4e,0xd0,0x82,0xd0,0x83,0xd0,0xd0,0xda,0xb, +0xda,0x1b,0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda,0x7b,0x32,0xca,0x7b,0xca, +0x6b,0xca,0x5b,0xca,0x4b,0xca,0x2b,0xca,0x1b,0xca,0xb, 0xc0,0xd0,0xc0,0x83,0xc0, +0x82,0x75,0x76,0x1, 0x75,0xe6,0x0, 0xe5,0x55,0xb4,0x1, 0x3, 0x12,0x5d,0x5e,0xd0, +0x82,0xd0,0x83,0xd0,0xd0,0xda,0xb, 0xda,0x1b,0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda, +0x6b,0xda,0x7b,0x32,0xca,0xf8,0x7d,0x1, 0x7d,0x13,0x7e,0xf3,0x10,0x4d,0xbe,0xf0, +0x1, 0x78,0xd, 0x7d,0x30,0x74,0x18,0x7e,0x13,0x10,0x2b,0x7e,0x0, 0x2, 0x80,0x11, +0x4c,0xff,0x78,0x10,0x7d,0x30,0x6d,0x22,0x74,0x18,0x7e,0x13,0x10,0x2b,0x7e,0x0, +0x4, 0x12,0x5e,0xc8,0xda,0xf8,0x22,0xe4,0x7a,0xb3,0xf, 0xd3,0x6c,0xaa,0x6c,0x33, +0x6d,0xff,0x7e,0x10,0x18,0xac,0x1a,0xa, 0xe3,0x2d,0xe, 0x3e,0x4, 0x7d,0x40,0x2d, +0x42,0x1b,0x48,0xf0,0x6d,0x44,0x2d,0x3, 0x1b,0x8, 0x40,0xb, 0x30,0xa5,0xbb,0x18, +0xdf,0xb, 0xa0,0xbe,0xa0,0xd, 0x40,0xd6,0x22,0x7d,0x23,0x7c,0xab,0x6d,0x33,0x6c, +0x33,0x4c,0xaa,0x7e,0x10,0x7, 0x78,0xb, 0xac,0x13,0x2d,0x2, 0xb, 0x8, 0x0, 0x2d, +0x30,0x80,0xa, 0xac,0x13,0x2d,0x2, 0x49,0x0, 0x0, 0x2, 0x2d,0x30,0xb, 0x30,0xbe, +0x30,0x3, 0x40,0xdd,0x7e,0x24,0x0, 0x3, 0x8d,0x32,0x22,0x6c,0xaa,0x74,0x3, 0xa, +0x2a,0x2d,0x23,0x7a,0x29,0xb0,0xa, 0x2a,0x2d,0x23,0x19,0xb2,0x0, 0xa, 0x7e,0x24, +0xff,0xff,0x7e,0x30,0x2, 0xac,0x3a,0x7d,0x1, 0x2d,0x3, 0x59,0x20,0x0, 0x14,0x2d, +0x13,0x59,0x21,0x0, 0x28,0xb, 0xa0,0xbe,0xa0,0xa, 0x40,0xd1,0x22,0x7c,0xab,0x7e, +0x24,0xe, 0xdf,0xbe,0xa0,0xa, 0x50,0x25,0xa, 0x3a,0x7d,0x13,0x2d,0x12,0x7e,0x19, +0xb0,0xb4,0x2, 0xe, 0x74,0x1, 0x7a,0x19,0xb0,0x74,0x3, 0x2d,0x23,0x19,0xb2,0x0, +0xa, 0x22,0x74,0x3, 0x7a,0x19,0xb0,0x2d,0x32,0x19,0xb3,0x0, 0xa, 0x22,0xca,0x7b, +0xca,0x6b,0xca,0x5b,0xca,0x4b,0xca,0x2b,0xca,0x1b,0xca,0xb, 0xc0,0xd0,0xc0,0x83, +0xc0,0x82,0x12,0x6e,0x5c,0x53,0xb, 0xfd,0xd0,0x82,0xd0,0x83,0xd0,0xd0,0xda,0xb, +0xda,0x1b,0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda,0x7b,0x32,0x6d,0x33,0x7a, +0x37,0x11,0xd, 0x74,0x1, 0x7a,0xb3,0x11,0xf, 0x74,0xb, 0x7a,0xb3,0x11,0x10,0x74, +0x9, 0x7a,0xb3,0x11,0x11,0x74,0x1e,0x7a,0xb3,0x11,0x12,0x7a,0xb3,0x11,0x13,0x7a, +0xb3,0x11,0x14,0x74,0x1, 0x7a,0xb3,0x11,0x15,0x22,0x7e,0xb3,0xf, 0x1b,0x70,0x1e, +0x7e,0xa3,0xf, 0x1c,0xbe,0xa0,0x0, 0x28,0x15,0xe5,0x16,0x70,0xd, 0x7a,0xa3,0xf, +0x1b,0x74,0x1, 0x7a,0xb3,0xf, 0x22,0x5, 0x16,0x22,0x75,0x16,0x0, 0x22,0x75,0x16, +0x0, 0xe4,0x7a,0xb3,0xf, 0x22,0x22,0x6c,0xaa,0x80,0x1f,0x7e,0x70,0x2, 0xac,0x7a, +0x49,0x23,0x0, 0xd2,0x7e,0x70,0x18,0xac,0x7a,0x3e,0x34,0x2e,0x37,0xf, 0xda,0x2e, +0x34,0x0, 0x30,0x1b,0x35,0x1b,0x38,0x20,0xb, 0xa0,0x7e,0xb3,0x10,0x2b,0xbc,0xba, +0x38,0xd9,0x22,0x75,0x75,0x0, 0xa9,0xc6,0xea,0x7e,0x24,0x1d,0x0, 0xb, 0x28,0x30, +0x4e,0x34,0x2, 0x0, 0x1b,0x28,0x30,0xd2,0xeb,0xb, 0x28,0x30,0x4e,0x34,0x0, 0x2, +0x1b,0x28,0x30,0xb, 0x28,0x30,0x4e,0x34,0x0, 0x1, 0x1b,0x28,0x30,0x22,0x1, 0x5e, +0x0, 0xa, 0x0, 0x96,0x1, 0x2c,0x0, 0x8, 0x0, 0x78,0x0, 0xfa,0x0, 0x7, 0x0, 0x50, +0x0, 0xc8,0x0, 0x6, 0x0, 0x32,0x0, 0xa0,0x0, 0x4, 0x0, 0x1e,0x0, 0x78,0x0, 0x3, +0x0, 0xa, 0x0, 0x3c,0x0, 0x2, 0x0, 0x0, 0xd2,0xc9,0xa9,0xd5,0xcb,0xa, 0x56,0xf5, +0xf1,0x7c,0xb7,0xf5,0xf2,0x75,0xf3,0x80,0x75,0xf4,0x0, 0x75,0xf5,0x83,0xa9,0x37, +0xf5,0xfc,0xa9,0x36,0xf5,0xfc,0xe5,0xf6,0x43,0xfa,0x80,0xc2,0xc9,0xa9,0xc5,0xcb, +0x22,0xc2,0xaf,0x75,0xfb,0x0, 0xd2,0xc9,0xa9,0xd5,0xcb,0xa, 0x56,0x1e,0x54,0x1e, +0x54,0x3e,0x54,0x3e,0x54,0xf5,0xf1,0x75,0xf2,0x0, 0x75,0xf5,0x90,0x74,0xa, 0x12, +0x6d,0x25,0xc2,0xc9,0xa9,0xc5,0xcb,0xd2,0xaf,0x22,0x12,0x22,0x20,0x12,0x3d,0xb5, +0x12,0x4c,0x41,0x60,0x6, 0x74,0x1, 0x7a,0xb3,0xe, 0xc, 0x7e,0xb3,0xe, 0xb, 0x60, +0x3, 0x12,0x60,0x78,0x7e,0xb3,0xe, 0xc, 0x60,0x6, 0x12,0x55,0x5a,0x2, 0x5f,0x1f, +0x22,0xe4,0x7a,0xb3,0x10,0x3d,0x7a,0xb3,0x10,0x4e,0x7a,0xb3,0xf, 0x28,0x12,0x6a, +0x18,0xb4,0x1, 0xd, 0x74,0x1, 0x7a,0xb3,0x10,0xa5,0x53,0xb, 0x8f,0x74,0x2, 0x80, +0x2, 0x74,0xff,0x7a,0xb3,0xf, 0x28,0x22,0xca,0xf8,0x7e,0xf0,0x1, 0x12,0x66,0x93, +0x7e,0xb3,0x10,0x3d,0xbe,0xb0,0x2, 0x68,0x2, 0x6c,0xff,0x12,0x65,0xe4,0x7e,0xb3, +0x10,0x4e,0xbe,0xb0,0x2, 0x68,0x2, 0x6c,0xff,0x7c,0xbf,0xda,0xf8,0x22,0x7e,0x34, +0xa, 0xb1,0x7e,0x24,0x3, 0x4d,0xe4,0x12,0x6d,0xe0,0x7e,0x34,0xb, 0x86,0x7e,0x24, +0x1, 0x90,0x74,0xff,0x12,0x6d,0xe0,0x7e,0x34,0xd, 0x6b,0x7e,0x24,0x0, 0x8c,0x74, +0xff,0x2, 0x6d,0xe0,0x9, 0xb3,0x0, 0x4d,0xb4,0x1, 0x6, 0x9, 0x53,0x0, 0x51,0x80, +0x3, 0x7e,0x39,0x50,0xa, 0x15,0x7e,0x24,0x1d,0x2, 0x1b,0x28,0x10,0x49,0x23,0x0, +0x3b,0x7e,0x34,0x1d,0x6, 0x1b,0x38,0x20,0x22,0xe4,0x7a,0xb3,0xf, 0xd2,0x6c,0xaa, +0x6d,0x44,0x7e,0x30,0x2, 0xac,0x3a,0x7d,0x1, 0x2d,0x2, 0x1b,0x8, 0x40,0x6d,0x0, +0x2d,0x13,0x1b,0x18,0x0, 0xb, 0xa0,0xbe,0xa0,0x25,0x40,0xe4,0x22,0x7e,0x34,0x12, +0x1, 0x7e,0x24,0x0, 0x1e,0xe4,0x12,0x6d,0xe0,0x7e,0x34,0x12,0x1f,0x7e,0x24,0x0, +0x14,0xe4,0x12,0x6d,0xe0,0x7e,0x34,0x11,0xed,0x7e,0x24,0x0, 0x14,0xe4,0x2, 0x6d, +0xe0,0x12,0x0, 0x6e,0x50,0x1d,0x12,0x6e,0xad,0x7c,0xab,0x7e,0xb3,0x11,0x95,0xbe, +0xb0,0x4, 0x68,0xf, 0xbe,0xa0,0xff,0x68,0xa, 0x74,0x1, 0x7a,0xb3,0x11,0xc, 0x7a, +0xa3,0x11,0x95,0x22,0xca,0xf8,0x6c,0xff,0x7e,0xb3,0x10,0x3d,0x70,0x3, 0x7e,0xf0, +0x1, 0x74,0x1, 0x12,0x3e,0xf7,0xbe,0xb0,0x1, 0x68,0x5, 0xbe,0xf0,0x1, 0x78,0x4, +0xe4,0x12,0x3e,0xf7,0xda,0xf8,0x22,0xa9,0xc3,0xe1,0x75,0xe4,0x3, 0x75,0xe5,0x0, +0x75,0xe4,0x4, 0x75,0xe5,0x0, 0x75,0xe4,0x5, 0x75,0xe5,0x0, 0x75,0xe4,0x6, 0x9, +0xb3,0x0, 0x16,0xc4,0x33,0x54,0xe0,0xf5,0xe5,0x22,0x7e,0x34,0x8, 0x9a,0x7e,0x24, +0x11,0x9e,0x7e,0x14,0x1, 0x90,0x12,0x3c,0x70,0x7e,0x34,0x9, 0x2e,0x7e,0x24,0x11, +0x4a,0x7e,0x14,0x0, 0xc8,0x12,0x3c,0x70,0x2, 0x56,0xf3,0x74,0x1, 0x12,0x6e,0x3d, +0xa9,0xc3,0xea,0xa9,0xc6,0xeb,0xa9,0xd6,0xac,0xa9,0xd6,0xec,0xd2,0x86,0x75,0x9a, +0x7f,0xa9,0xd1,0x99,0xd2,0x9c,0xa9,0xd6,0xdf,0xd2,0xaf,0x22,0xe5,0x52,0xb4,0x1, +0x18,0xe5,0x51,0x70,0x14,0x7e,0xb3,0x11,0x95,0x60,0xb, 0xe4,0x7a,0xb3,0x11,0x95, +0x74,0x1, 0x7a,0xb3,0x11,0xc, 0x12,0x6c,0x58,0x85,0x51,0x52,0x22,0x6c,0xaa,0x7e, +0x50,0x4, 0xac,0x5a,0x49,0x12,0x0, 0xec,0xbd,0x13,0x38,0x8, 0x49,0x22,0x0, 0xee, +0xbd,0x23,0x50,0x7, 0xb, 0xa0,0xbe,0xa0,0x3, 0x40,0xe4,0x7c,0xba,0x22,0x7e,0x24, +0x0, 0x2, 0x7e,0x34,0x1d,0x8, 0x1b,0x38,0x20,0x12,0x6d,0x8d,0x12,0x6c,0xab,0x7e, +0x34,0x7, 0xd0,0x7d,0x23,0x1b,0x34,0x4d,0x22,0x78,0xf8,0x2, 0x0, 0x2e,0x75,0x55, +0x0, 0x75,0x73,0x0, 0x75,0x54,0x0, 0x12,0x6b,0xfd,0x12,0x61,0xcd,0xf5,0x53,0x12, +0x62,0x6b,0xb4,0x1, 0x4, 0x75,0x55,0x1, 0x22,0x75,0x55,0x3, 0x22,0x7e,0x34,0x0, +0x1, 0x7a,0x35,0x56,0x7e,0x34,0xa, 0x18,0x7a,0x35,0x58,0x7e,0x34,0x0, 0x2, 0x7a, +0x35,0x5a,0x7e,0x34,0xa, 0x62,0x7a,0x35,0x5c,0x74,0x2, 0x22,0x0, 0x50,0x0, 0xa, +0x6, 0x4, 0x0, 0x78,0x0, 0xc, 0x6, 0x4, 0x0, 0xc8,0x0, 0x1e,0x8, 0x5, 0x1, 0x40, +0x0, 0x50,0x8, 0x5, 0x1, 0xf4,0x0, 0x64,0xa, 0x6, 0xe4,0x7a,0xb3,0x16,0xb1,0x7a, +0xb3,0x16,0xb0,0x7e,0xb3,0x10,0xa3,0x70,0x6, 0x7e,0x73,0x11,0x10,0x80,0x4, 0x7e, +0x73,0x11,0x12,0x7a,0x73,0x16,0xb2,0x22,0xe4,0x7a,0xb3,0x10,0x78,0x74,0x2, 0x7a, +0xb3,0x10,0x7b,0x74,0x4, 0x7a,0xb3,0x10,0x7c,0x7e,0x34,0x16,0x55,0x7e,0x24,0x0, +0x48,0xe4,0x2, 0x6d,0xe0,0x75,0x91,0x0, 0xc2,0x90,0xc2,0x91,0x75,0x92,0x7c,0xd2, +0xad,0xd2,0xe8,0xc2,0xc0,0xa9,0xd5,0xb7,0xd2,0xbd,0xa9,0xd0,0xf7,0xd2,0xf8,0x22, +0xe4,0x7a,0xb3,0xd, 0xfb,0x7e,0x34,0x11,0x9e,0x7a,0x37,0xf, 0xd6,0x12,0x40,0x32, +0x7e,0x34,0x8, 0x9a,0x7a,0x37,0xf, 0xd6,0x2, 0x46,0xe9,0x75,0x75,0x1, 0x7e,0x24, +0x1d,0x0, 0xb, 0x28,0x30,0x4e,0x34,0x2, 0x0, 0x1b,0x28,0x30,0xd2,0xeb,0x7e,0x34, +0x0, 0x1, 0x2, 0x6e,0x27,0xc2,0x8e,0x43,0x89,0x20,0x75,0x8d,0x0, 0xa9,0x34,0xc9, +0x5, 0x75,0x8b,0xe6,0x80,0x3, 0x75,0x8b,0x78,0xd2,0x8e,0xd2,0xab,0x22,0xe5,0x51, +0xb4,0x1, 0x6, 0x7e,0x34,0x0, 0x5a,0x80,0x4, 0x7e,0x34,0x0, 0x3c,0x7a,0x37,0xf, +0x54,0x7a,0x37,0xf, 0x56,0x22,0xca,0xf8,0x12,0x6e,0x32,0x7c,0xfb,0x12,0x0, 0x6e, +0x50,0x7, 0x4c,0xff,0x78,0x3, 0xe4,0x80,0x2, 0x74,0x1, 0xda,0xf8,0x22,0x7e,0x34, +0x0, 0x24,0x12,0x69,0x78,0x7c,0x7b,0xa5,0xbf,0xff,0x3, 0x7e,0x70,0x4, 0xa, 0x57, +0x2e,0x54,0x0, 0x10,0x22,0x7c,0xab,0x80,0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x7c,0x7a,0x1b,0xa0,0xa5,0xbf,0x0, 0xee,0x22,0x7d,0x3, 0x80,0xa, +0x7e,0x29,0xb0,0x7a,0x9, 0xb0,0xb, 0x24,0xb, 0x4, 0x7d,0x51,0x1b,0x14,0x4d,0x55, +0x78,0xee,0x22,0x7e,0x53,0xf, 0x47,0xa, 0x25,0x3e,0x24,0x3e,0x24,0x9d,0x32,0xbe, +0x34,0x0, 0x0, 0x8, 0x1, 0x22,0x6d,0x33,0x22,0x70,0x3, 0x43,0x87,0x1, 0xb4,0x1, +0x3, 0x43,0x87,0x2, 0xb4,0x2, 0x3, 0x43,0x87,0x2, 0x22,0x74,0x3, 0x7a,0xb3,0x16, +0xa3,0xe4,0x7a,0xb3,0x16,0xaa,0x74,0xff,0x7a,0xb3,0x16,0xa2,0x22,0x75,0x76,0x1, +0xd2,0xee,0x75,0xe6,0x0, 0xa9,0xd3,0xe1,0x7e,0x34,0x0, 0x1, 0x2, 0x6e,0x27,0xa, +0x2b,0x19,0x72,0x10,0x7e,0x7e,0xb3,0x10,0xfe,0x44,0x1, 0x7a,0xb3,0x10,0xfe,0x22, +0x7d,0x13,0xbd,0x21,0x50,0x5, 0x7d,0x31,0x9d,0x32,0x22,0x7d,0x32,0x9d,0x31,0x22, +0x14,0x1, 0xa, 0x1, 0x0, 0x2, 0xfb,0x4, 0xf6,0x5, 0xec,0x6, 0xe7,0x7, 0xe2,0x8, +0x7d,0x23,0xbe,0x24,0x0, 0x0, 0x48,0x3, 0x7d,0x32,0x22,0x6d,0x33,0x9d,0x32,0x22, +0x7d,0x13,0x80,0x7, 0x1b,0x24,0x7a,0x19,0xb0,0xb, 0x14,0x4d,0x22,0x78,0xf5,0x22, +0x10,0x10,0x10,0x1c,0x19,0x14,0x10,0xe, 0xc, 0xb, 0xa, 0x9, 0x8, 0x7, 0x6, 0x12, +0x0, 0x42,0x12,0x57,0x73,0x74,0x3, 0x12,0x43,0xae,0x2, 0x24,0xb4,0x7e,0x34,0x0, +0x21,0x12,0x69,0x78,0xb4,0xff,0x3, 0x74,0x1, 0x22,0x22,0x7e,0xb3,0x11,0x15,0xb4, +0x1, 0x4, 0xe4,0x2, 0x6e,0x92,0x22,0x6d,0x22,0x80,0x2, 0xb, 0x24,0xbd,0x32,0x38, +0xfa,0x22,0x12,0x62,0xb7,0xb4,0x1, 0x2, 0xe4,0x22,0x74,0x1, 0x22,0xd2,0xcf,0xa9, +0xd4,0xc9,0x75,0xcc,0x0, 0xc2,0xca,0x22,0xa9,0xc0,0x93,0x75,0x9, 0x0, 0x75,0xa, +0x0, 0x32,0x75,0x53,0x0, 0x75,0x54,0x0, 0x75,0x55,0x0, 0x22,0xa9,0x32,0x99,0x5, +0xd2,0x9c,0xa9,0xd6,0xdf,0x22,0x75,0xb, 0x0, 0x12,0x6e,0xc3,0x2, 0x5e,0x18,0x12, +0x6b,0x5b,0x12,0x6e,0xc9,0x2, 0x6e,0x66,0xe5,0x75,0x60,0x3, 0x74,0x1, 0x22,0xe4, +0x22,0xe5,0x76,0x60,0x3, 0x74,0x1, 0x22,0xe4,0x22,0x1, 0x2, 0x4, 0x8, 0x10,0x20, +0x40,0x80,0x70,0x3, 0xd2,0x86,0x22,0xc2,0x86,0x22,0xa9,0xd0,0x99,0xa9,0xc6,0xdf, +0x22,0xf5,0x17,0x75,0x18,0x0, 0x22,0x12,0x61,0x79,0x2, 0x38,0x4a,0x12,0x4f,0xa8, +0x2, 0x62,0x1d,0x12,0x6e,0xd5,0x2, 0x6b,0xde,0x7e,0x34,0x1, 0x3, 0x22,0x7e,0x34, +0x5, 0xb, 0x22,0x2, 0x6c,0x75,0x2, 0x0, 0x76,0x2, 0x6c,0xc5,0x2, 0x6e,0x9a,0x2, +0x6e,0x5c,0xe5,0x6e,0x22,0x22,0x0, 0x1, 0x0, 0x8b,0x1, 0x0, 0x1, 0xa, 0xac,0x15, +0x0, 0x1, 0xa, 0xad,0x17,0x0, 0x1, 0xa, 0xae,0x4, 0x0, 0x1, 0xd, 0xfe,0x40,0x0, +0x5, 0xf, 0x29,0x20,0x17,0x29,0x38,0x13,0x0, 0x18,0xf, 0x2e,0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x3, 0x0, 0x25,0xf, 0x63,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0, 0x18,0xf, +0x88,0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, +0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0x0, 0xd, 0xf, 0xa0,0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x18,0xf, 0xad,0x0, 0x1, +0x2, 0x3, 0xb, 0xa, 0x9, 0x8, 0x7, 0x6, 0x5, 0x4, 0x17,0x16,0x15,0x14,0x13,0xc, +0xd, 0xe, 0xf, 0x10,0x11,0x12,0x0, 0xd, 0xf, 0xc5,0x1, 0x2, 0x3, 0x4, 0x5, 0x6, +0x7, 0x8, 0x0, 0x9, 0xa, 0xb, 0xc, 0x0, 0x25,0xf, 0xdc,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x0, 0xd, 0x10,0xff,0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, +0xa, 0x0, 0x1, 0x11,0xc, 0x0, 0x0, 0x1, 0x11,0x16,0x15,0x0, 0x32,0x11,0x17,0x0, +0x8, 0x0, 0x13,0x0, 0x26,0x0, 0x43,0x0, 0x6c,0x0, 0xa4,0x0, 0xed,0x1, 0x4a,0x1, +0xbc,0x2, 0x45,0x2, 0xe4,0x3, 0x99,0x4, 0x61,0x5, 0x3a,0x6, 0x1f,0x7, 0xc, 0x7, +0xf9,0x8, 0xe1,0x9, 0xbd,0xa, 0x86,0xb, 0x34,0xb, 0xc3,0xc, 0x2d,0xc, 0x6e,0xc, +0x83,0x0, 0x1, 0x11,0x49,0x17,0x0, 0x1, 0x11,0x94,0x2, 0x0, 0x1, 0x11,0x95,0x0, +0x0, 0x4, 0x11,0x97,0xff,0xff,0xff,0xff,0x0, 0x2, 0x11,0x9b,0xff,0x1f,0x0, 0x1, +0x11,0x9d,0x40,0x0, 0x1, 0x11,0xe8,0x0, 0x0, 0x4, 0x11,0xe9,0x23,0x23,0x23,0x23, +0x0, 0x1, 0x16,0x53,0x0, 0x0, 0x1, 0x15,0x53,0x0, 0x0, 0x1, 0x15,0x9e,0x0, 0x0, +0x1, 0x15,0x9f,0x0, 0x0, 0x1, 0x15,0xa0,0x0, 0x0, 0x1, 0x15,0xa1,0x0, 0x0, 0x1, +0x12,0x33,0x0, 0x0, 0x1, 0x16,0xac,0x0, 0x0, 0x1, 0x16,0xb4,0x0, 0x0, 0x1, 0x16, +0xb5,0x0, 0x0, 0x1, 0x16,0xb6,0x0, 0x0, 0x1, 0x16,0xb7,0x0, 0x0, 0x1, 0x16,0xb8, +0x0, 0x0, 0x1, 0x16,0xb9,0x0, 0x0, 0x1, 0x16,0xba,0x1, 0x0, 0x1, 0x16,0xbb,0x1, +0x0, 0xc, 0x0, 0xec,0x0, 0x46,0x0, 0xe6,0x1, 0x18,0x1, 0xb8,0x1, 0xf4,0x2, 0x94, +0x0, 0x6, 0x0, 0xf8,0x0, 0xb4,0x2, 0x1c,0x3, 0x84,0x0, 0x1, 0x16,0x54,0x3, 0x0, +0x1, 0x16,0x9d,0x0, 0x0, 0x1, 0x0, 0xfe,0x0, 0x0, 0x1, 0x0, 0xff,0x0, 0x0, 0x1, +0x16,0xbc,0x0, 0x0, 0x0, 0x53,0x5a,0x1e,0xe1,0xff,0xff,0x70,0xc5,0x8f,0x3a,0x20, +0xdf,0x16,0xf4, diff --git a/drivers/input/touchscreen/ft5336/ft_app_ic_oufei_boe_720p.txt b/drivers/input/touchscreen/ft5336/ft_app_ic_oufei_boe_720p.txt new file mode 100644 index 0000000000000..4c88fe0ccdace --- /dev/null +++ b/drivers/input/touchscreen/ft5336/ft_app_ic_oufei_boe_720p.txt @@ -0,0 +1,1810 @@ +0x2, 0x51,0x4f,0x2, 0x68,0xdc,0xe5,0x73,0x60,0x9, 0x74,0x1, 0x12,0x6e,0xd3,0x75, +0x73,0x0, 0x22,0xe4,0x12,0x6e,0xd3,0x75,0x73,0x1, 0x22,0x2, 0x50,0xb9,0xe5,0x55, +0xbe,0xb0,0x1, 0x68,0xf9,0x12,0x6e,0xb9,0x60,0xfb,0x22,0x2, 0x67,0x73,0x7e,0x34, +0x10,0x2b,0x12,0x5b,0x6c,0x7e,0x34,0x10,0x2b,0x12,0x65,0x59,0x12,0x6e,0xc2,0x60, +0xfb,0x22,0x22,0x2, 0x6e,0x89,0xc2,0x8e,0x75,0x8d,0x0, 0xa9,0x34,0xc9,0x5, 0x75, +0x8b,0xe6,0x80,0x3, 0x75,0x8b,0x78,0xd2,0x8e,0x22,0x32,0x2, 0x63,0xb7,0xbe,0xb0, +0xa, 0x50,0x6, 0xa, 0x2b,0x19,0x72,0x16,0x9f,0x22,0x22,0x2, 0x0, 0x5a,0xe5,0x52, +0x24,0xff,0x22,0x2, 0x67,0xab,0xca,0x3b,0x7e,0xb3,0xf, 0x1b,0xf5,0x26,0x7e,0xd3, +0xf, 0x1c,0x7e,0x34,0xe, 0xdf,0x7a,0x35,0x33,0x7e,0x34,0x0, 0x27,0x7e,0x24,0x0, +0xa, 0xe4,0x12,0x6e,0x21,0x6c,0xcc,0x7e,0xa0,0xff,0x7e,0x70,0x7, 0xac,0x7c,0x19, +0xa3,0x13,0xba,0x7e,0x34,0x7f,0xff,0x74,0x7, 0xac,0xbc,0x59,0x35,0x13,0xb6,0x74, +0x7, 0xac,0xbc,0x59,0x35,0x13,0xb8,0xb, 0xc0,0xbe,0xc0,0xa, 0x78,0xd9,0xe5,0x26, +0x60,0x3, 0x2, 0x0, 0xef,0x12,0x6a,0xee,0xbe,0xd0,0x0, 0x38,0x3, 0x2, 0x0, 0xdf, +0x74,0x1, 0x7a,0xb3,0xf, 0x20,0xe4,0x7a,0xb3,0xf, 0x22,0x7a,0xb3,0xf, 0x23,0x7e, +0x34,0x13,0x6, 0x7e,0x24,0x0, 0xa, 0x74,0xff,0x12,0x6e,0x21,0x2, 0x1, 0x14,0x4c, +0xdd,0x68,0x3, 0x2, 0x1, 0x14,0x75,0x25,0x0, 0x7e,0xa0,0xff,0x7e,0x71,0x25,0x74, +0x7, 0xac,0x7b,0x19,0xa3,0xe, 0x57,0x5, 0x25,0xe5,0x25,0xb4,0xa, 0xeb,0x74,0x1, +0x7a,0xb3,0xf, 0x1f,0x75,0x25,0x0, 0x2, 0x1, 0x4c,0x7e,0x51,0x25,0x74,0x7, 0xac, +0x5b,0x2e,0x24,0xe, 0xd, 0xb, 0x28,0x30,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x3e,0x34, +0x1b,0x28,0x30,0x7e,0x51,0x25,0xac,0x5b,0x2e,0x24,0xe, 0xf, 0xb, 0x28,0x30,0x3e, +0x34,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x1b,0x28,0x30,0x5, 0x25,0xe5,0x26,0xbe,0xb1, +0x25,0x38,0xc7,0xe4,0x6c,0x77,0x7e,0x61,0x26,0x7e,0x24,0x13,0xb6,0x12,0x53,0x2, +0x7e,0x71,0x26,0x7e,0x60,0xa, 0x7e,0x24,0x13,0xb6,0x12,0x53,0x2, 0x7c,0xcb,0x6c, +0xee,0x75,0x25,0x0, 0x2, 0x1, 0x92,0x7e,0xa1,0x25,0x74,0x7, 0xa4,0x9, 0x65,0x13, +0xba,0x74,0x7, 0xac,0xbe,0x9, 0x75,0xe, 0x11,0xbc,0x76,0x78,0x3, 0x2, 0x1, 0x97, +0x5, 0x25,0xbe,0xc1,0x25,0x38,0xe0,0xbe,0xc1,0x25,0x68,0x3, 0x2, 0x1, 0xb8,0x7e, +0x70,0x7, 0xac,0x7e,0x2e,0x34,0xe, 0xd, 0x7e,0x30,0x7, 0xac,0x3c,0x2e,0x14,0x13, +0xb6,0x74,0x7, 0x12,0x49,0x26,0xb, 0xc0,0xb, 0xe0,0xbe,0xe0,0xa, 0x78,0xb2,0x7e, +0x24,0x13,0xb6,0x7e,0x34,0xe, 0x53,0x7e,0x14,0x0, 0x46,0x12,0x6d,0x7d,0x4c,0xdd, +0x68,0x3, 0x2, 0x1, 0xe7,0x7e,0x24,0xe, 0xd, 0x7e,0x34,0xe, 0x53,0x7e,0x14,0x0, +0x46,0x12,0x6d,0x7d,0x2, 0x4, 0x84,0x7e,0xb3,0xf, 0x22,0x60,0x3, 0x2, 0x4, 0x84, +0x6c,0xee,0x2, 0x4, 0x7b,0x75,0x25,0x0, 0x7e,0xa1,0x25,0x74,0x7, 0xa4,0x9, 0x65, +0xe, 0x57,0x7e,0x90,0x7, 0xac,0x9e,0x9, 0x74,0xe, 0x11,0xbc,0x67,0x78,0x3, 0x2, +0x2, 0x1b,0x5, 0x25,0xe5,0x25,0xbe,0xb0,0xa, 0x40,0xdd,0x7e,0xa1,0x25,0x74,0x7, +0xa4,0x9, 0xf5,0xe, 0x57,0x49,0x34,0xe, 0xf, 0x49,0x25,0xe, 0x55,0x12,0x6d,0xf1, +0x7d,0x63,0x74,0x7, 0xac,0xbe,0x49,0x35,0xe, 0xd, 0x7e,0xa1,0x25,0x74,0x7, 0xa4, +0x49,0x25,0xe, 0x53,0x12,0x6d,0xf1,0x7d,0x13,0x2d,0x16,0x7a,0x15,0x21,0x7c,0x1f, +0x2e,0x10,0x27,0x74,0x1, 0xa5,0xf7,0xbe,0x14,0x0, 0x40,0x28,0x3, 0x2, 0x2, 0xd9, +0x7e,0x35,0x21,0xbe,0x34,0x0, 0x20,0x38,0x3, 0x2, 0x2, 0xae,0x7e,0x70,0x3, 0xac, +0x7f,0x9, 0xb3,0x12,0x2, 0x60,0x3, 0x2, 0x2, 0x97,0x9, 0xb3,0x12,0x3, 0xbe,0xb0, +0x0, 0x38,0x3, 0x2, 0x2, 0x89,0x2, 0x2, 0xbf,0x74,0x1, 0x19,0xb3,0x12,0x2, 0x6d, +0x22,0x7a,0x25,0x21,0x2, 0x2, 0xed,0x9, 0xb3,0x12,0x3, 0xbe,0xb0,0xa, 0x40,0x3, +0x2, 0x2, 0xed,0x2e,0x34,0x12,0x3, 0x4, 0x7a,0x39,0xb0,0x2, 0x2, 0xd1,0x7e,0x70, +0x3, 0xac,0x7f,0x9, 0xb3,0x12,0x3, 0xbe,0xb0,0x0, 0x38,0x3, 0x2, 0x2, 0xcc,0x7d, +0x23,0x2e,0x24,0x12,0x3, 0x14,0x7a,0x29,0xb0,0x2, 0x2, 0xed,0xe4,0x19,0xb3,0x12, +0x2, 0x6d,0x33,0x7a,0x35,0x21,0x2, 0x2, 0xed,0x6c,0xaa,0x7e,0x70,0x3, 0xac,0x7f, +0x19,0xa3,0x12,0x3, 0x7e,0x70,0x3, 0xac,0x7f,0x19,0xa3,0x12,0x2, 0x7e,0x35,0x21, +0xbe,0x34,0x0, 0x20,0x28,0x3, 0x2, 0x3, 0x2e,0x7e,0xa1,0x25,0x74,0x7, 0xa4,0x49, +0x35,0xe, 0x53,0x74,0x7, 0xac,0xbe,0x59,0x35,0xe, 0xd, 0x7e,0xa1,0x25,0x74,0x7, +0xa4,0x49,0x35,0xe, 0x55,0x74,0x7, 0xac,0xbe,0x59,0x35,0xe, 0xf, 0x6d,0x33,0x7a, +0x35,0x21,0x7e,0xa0,0x1, 0x7e,0x70,0x3, 0xac,0x7f,0x19,0xa3,0x12,0x1, 0x7e,0xf5, +0x21,0x7a,0xf5,0x23,0xa, 0xef,0x2e,0xe5,0x33,0x7e,0xe9,0xb0,0xb4,0x1, 0x2, 0x80, +0x3, 0x2, 0x3, 0x52,0x6d,0xee,0x74,0x2, 0xac,0xbf,0x59,0xe5,0x11,0xed,0x59,0xe5, +0x12,0x1f,0x7e,0x17,0xf, 0x5d,0xbe,0x15,0x23,0x28,0x3, 0x2, 0x3, 0x68,0x7e,0x4, +0x1, 0x0, 0x7a,0x5, 0x31,0x2, 0x3, 0x8b,0x7e,0x35,0x23,0x6d,0x22,0x7c,0x56,0x7c, +0x67,0x6c,0x77,0x12,0x48,0x9f,0x7d,0xe3,0x7a,0xe5,0x31,0xbe,0xe4,0x0, 0x10,0x40, +0x3, 0x2, 0x3, 0x8b,0x7e,0xe4,0x0, 0x10,0x7a,0xe5,0x31,0x74,0x2, 0xac,0xbf,0x49, +0x45,0x12,0x1f,0xbe,0x45,0x21,0x38,0x3, 0x2, 0x3, 0xa5,0x49,0x45,0x11,0xed,0x7a, +0x45,0x31,0x2, 0x3, 0xac,0x7e,0x45,0x31,0x59,0x45,0x11,0xed,0x59,0xf5,0x12,0x1f, +0x7e,0x35,0x31,0xbe,0x34,0x1, 0x0, 0x38,0x3, 0x2, 0x3, 0xc3,0x7e,0x34,0x1, 0x0, +0x7a,0x35,0x31,0x74,0x7, 0xac,0xbe,0x49,0x35,0xe, 0xd, 0x7e,0xa1,0x25,0x74,0x7, +0xa4,0x49,0x25,0xe, 0x53,0x12,0x6d,0xf1,0x7d,0x23,0x7a,0x25,0x21,0x7e,0x35,0x31, +0xad,0x32,0x7c,0x76,0x7c,0x65,0xa, 0x24,0x7a,0x35,0x21,0x7e,0x51,0x25,0x74,0x7, +0xac,0x5b,0x49,0x32,0xe, 0x53,0xac,0xbe,0x49,0x15,0xe, 0xd, 0xbd,0x13,0x38,0x3, +0x2, 0x4, 0x14,0x7d,0x2, 0x2e,0x4, 0xe, 0x53,0x7d,0x13,0x2e,0x15,0x21,0x1b,0x8, +0x10,0x2, 0x4, 0x1e,0x2e,0x24,0xe, 0x53,0x9e,0x35,0x21,0x1b,0x28,0x30,0x74,0x7, +0xac,0xbe,0x49,0x35,0xe, 0xf, 0x7e,0xa1,0x25,0x74,0x7, 0xa4,0x49,0x25,0xe, 0x55, +0x12,0x6d,0xf1,0x7d,0x23,0x7a,0x25,0x21,0x7e,0x35,0x31,0xad,0x32,0x7c,0x76,0x7c, +0x65,0xa, 0x24,0x7a,0x35,0x21,0x7e,0x51,0x25,0x74,0x7, 0xac,0x5b,0x49,0x32,0xe, +0x55,0xac,0xbe,0x49,0x15,0xe, 0xf, 0xbd,0x13,0x38,0x3, 0x2, 0x4, 0x6f,0x7d,0x2, +0x2e,0x4, 0xe, 0x55,0x7d,0x13,0x2e,0x15,0x21,0x1b,0x8, 0x10,0x2, 0x4, 0x79,0x2e, +0x24,0xe, 0x55,0x9e,0x35,0x21,0x1b,0x28,0x30,0xb, 0xe0,0xe5,0x26,0xbc,0xbe,0x28, +0x3, 0x2, 0x1, 0xf5,0x6c,0xee,0x74,0x7, 0xac,0xbe,0x49,0x45,0xe, 0x53,0x1e,0x44, +0x1e,0x44,0x1e,0x44,0x1e,0x44,0x7a,0x45,0x35,0x49,0x45,0xe, 0x55,0x1e,0x44,0x1e, +0x44,0x1e,0x44,0x1e,0x44,0x7a,0x45,0x37,0x9, 0xf5,0xe, 0x57,0x19,0xf5,0xe, 0x11, +0x74,0x7, 0xac,0xbe,0x9, 0x75,0xe, 0x58,0x19,0x75,0xe, 0x12,0x74,0x7, 0xac,0xbe, +0x9, 0x75,0xe, 0x59,0x19,0x75,0xe, 0x13,0x7c,0xbf,0x54,0xf, 0xbe,0xb0,0xa, 0x40, +0x3, 0x2, 0x5, 0xd7,0x7c,0xfb,0xa, 0xf, 0x7d,0x10,0x2e,0x15,0x33,0x7e,0x19,0xb0, +0xbe,0xb0,0x3, 0x78,0x3, 0x2, 0x5, 0xf4,0xb4,0x1, 0x2, 0x80,0x3, 0x2, 0x4, 0xf9, +0x74,0xff,0x19,0xb0,0x13,0x6, 0x2, 0x5, 0xd7,0x9, 0x90,0x13,0x6, 0xbe,0x90,0xff, +0x68,0x3, 0x2, 0x5, 0x4b,0x74,0x1, 0x19,0xb0,0x13,0x6, 0x7e,0x15,0x35,0x74,0x7, +0xac,0xbe,0x59,0x15,0xe, 0xd, 0x7e,0x15,0x37,0x74,0x7, 0xac,0xbe,0x59,0x15,0xe, +0xf, 0x6c,0xdd,0x7e,0x70,0x7, 0xac,0x7e,0x2e,0x34,0xe, 0xd, 0x7e,0x50,0x7, 0xac, +0x5d,0x7e,0x30,0x15,0xac,0x3f,0x2d,0x12,0x2e,0x14,0x12,0x34,0x74,0x7, 0x12,0x49, +0x26,0xb, 0xd0,0xbe,0xd0,0x3, 0x78,0xdb,0x2, 0x5, 0xd7,0xbe,0x90,0x3, 0x50,0x3, +0x2, 0x5, 0x58,0xe4,0x19,0xb0,0x13,0x6, 0x7e,0x25,0x35,0x9, 0x80,0x13,0x6, 0x7e, +0x90,0x7, 0xac,0x89,0x7e,0x70,0x15,0xac,0x7f,0x2d,0x43,0x59,0x24,0x12,0x34,0x7e, +0x25,0x37,0x59,0x24,0x12,0x36,0x7e,0xb3,0xf, 0x22,0x60,0x3, 0x2, 0x5, 0xa0,0xe4, +0x2e,0x34,0x12,0x34,0x12,0x68,0x47,0x74,0x7, 0xac,0xbe,0x59,0x35,0xe, 0xd, 0x74, +0x1, 0x7e,0x70,0x15,0xac,0x7f,0x2e,0x34,0x12,0x34,0x12,0x68,0x47,0x2, 0x5, 0xc2, +0x49,0x34,0x12,0x34,0x74,0x7, 0xac,0xbe,0x59,0x35,0xe, 0xd, 0xa, 0x3f,0x9, 0x43, +0x13,0x6, 0x7e,0x50,0x7, 0xac,0x45,0x7e,0x70,0x15,0xac,0x7f,0x2d,0x32,0x49,0x33, +0x12,0x36,0x74,0x7, 0xac,0xbe,0x59,0x35,0xe, 0xf, 0xa, 0x3f,0x2e,0x34,0x13,0x6, +0x7e,0x39,0xb0,0x4, 0x7a,0x39,0xb0,0x7c,0x1e,0x2e,0x10,0x27,0xa5,0xe7,0x60,0x3, +0x2, 0x5, 0xf4,0x7e,0x70,0x3, 0xac,0x7e,0x2e,0x34,0x12,0x1, 0x7e,0x24,0x0, 0x3, +0xe4,0x12,0x6e,0x21,0xb, 0xe0,0xbe,0xe0,0xa, 0x68,0x3, 0x2, 0x4, 0x86,0xe5,0x26, +0xbe,0xb0,0x0, 0x38,0x3, 0x2, 0x6, 0xe, 0x74,0x1, 0x7a,0xb3,0xf, 0x24,0xda,0x3b, +0x22,0xca,0x3b,0x7e,0xe3,0xf, 0x1b,0x4c,0xee,0x78,0x27,0x6c,0xff,0x6d,0x11,0x74, +0x2, 0xac,0xbf,0x59,0x15,0x13,0x56,0x7e,0xa0,0xff,0x7e,0x30,0x7, 0xac,0x3f,0x19, +0xa1,0x13,0x14,0x74,0x2, 0xa, 0x1f,0x19,0xb1,0x13,0x6a,0xb, 0xf0,0xbe,0xf0,0xa, +0x78,0xdb,0x6c,0xff,0x2, 0x7, 0xac,0x74,0x7, 0xac,0xbf,0x9, 0xb5,0xe, 0x11,0x54, +0xf, 0xf5,0x22,0xbe,0xb0,0xa, 0x40,0x3, 0x2, 0x7, 0xaa,0xe5,0x22,0xa, 0x1b,0x9, +0xb1,0xe, 0xdf,0xbe,0xb0,0x1, 0x78,0x3, 0x2, 0x7, 0x85,0x75,0x21,0x0, 0x7e,0x31, +0x21,0x74,0x7, 0xac,0x3b,0x9, 0x71,0x13,0x14,0x7a,0x71,0x23,0xbe,0x71,0x22,0x68, +0x3, 0x2, 0x7, 0x77,0x49,0x21,0x13,0x12,0x74,0x7, 0xac,0xbf,0x49,0x35,0xe, 0xf, +0x9d,0x32,0x12,0x6e,0x11,0x7d,0x63,0x7e,0xa1,0x21,0x74,0x7, 0xa4,0x49,0x25,0x13, +0x10,0x74,0x7, 0xac,0xbf,0x49,0x35,0xe, 0xd, 0x9d,0x32,0x12,0x6e,0x11,0x7d,0x3, +0x2d,0x6, 0xe5,0x23,0xa, 0x1b,0x9, 0xa1,0x13,0x6a,0xbe,0xa0,0x0, 0x28,0x18,0x7e, +0x71,0x23,0x74,0x2, 0xac,0x7b,0x59,0x3, 0x13,0x56,0x2e,0x14,0x13,0x6a,0x7c,0xba, +0x14,0x7a,0x19,0xb0,0x2, 0x7, 0xaa,0x7e,0xa1,0x23,0x74,0x2, 0xa4,0x49,0x15,0x13, +0x56,0xbe,0x14,0x0, 0x32,0x28,0x9, 0xbe,0x4, 0x0, 0x32,0x28,0x3, 0x2, 0x7, 0x71, +0x7d,0x41,0x2e,0x44,0x0, 0x32,0xbd,0x40,0x50,0x8, 0xbe,0x14,0x0, 0x32,0x28,0x2, +0x80,0x6f,0xbe,0x4, 0x0, 0x96,0x28,0x63,0xe5,0x22,0xa, 0x1b,0x9, 0xb1,0xe, 0xdf, +0x70,0x4, 0x74,0x3, 0x80,0x2, 0x74,0x1, 0x19,0xb1,0xe, 0xdf,0x7e,0xa0,0x3, 0xe5, +0x22,0xa, 0x1b,0x19,0xa1,0xe, 0xe9,0x7e,0x71,0x21,0x74,0x7, 0xac,0x7b,0x2e,0x34, +0x13,0x10,0x7e,0x14,0x13,0xb6,0x12,0x49,0x26,0xbe,0xe0,0x0, 0x28,0x2d,0x1b,0xe0, +0x7e,0x70,0x7, 0xac,0x7e,0x2e,0x34,0xe, 0xd, 0x7e,0x30,0x7, 0xac,0x3f,0x2e,0x14, +0xe, 0xd, 0x74,0x7, 0x12,0x49,0x26,0x7e,0x34,0x13,0xb6,0x7e,0x30,0x7, 0xac,0x3e, +0x2e,0x14,0xe, 0xd, 0x74,0x7, 0x12,0x49,0x26,0x1b,0xf0,0x7e,0xa1,0x23,0x74,0x2, +0xa4,0x59,0x5, 0x13,0x56,0x80,0x33,0x5, 0x21,0xe5,0x21,0xbe,0xb0,0xa, 0x50,0x3, +0x2, 0x6, 0x6e,0x80,0x25,0x6d,0x11,0x7e,0xa1,0x22,0x74,0x2, 0xa4,0x59,0x15,0x13, +0x56,0x7e,0xa0,0xff,0x7e,0x31,0x22,0x74,0x7, 0xac,0x3b,0x19,0xa1,0x13,0x14,0x7e, +0xa0,0x2, 0xe5,0x22,0xa, 0x1b,0x19,0xa1,0x13,0x6a,0xb, 0xf0,0xbc,0xef,0x28,0x3, +0x2, 0x6, 0x47,0x7a,0xe3,0xf, 0x1b,0x7e,0x24,0xe, 0xd, 0x7e,0x34,0x13,0x10,0x7e, +0x14,0x0, 0x46,0x12,0x6d,0x7d,0xda,0x3b,0x22,0x6c,0xaa,0x7e,0x50,0x2, 0xac,0x5a, +0x7d,0x12,0x2d,0x13,0x9, 0xb1,0x0, 0x1, 0x54,0x3f,0xa, 0xb, 0x3e,0x4, 0x3e,0x4, +0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x7e,0x19,0xb0,0x54,0x3f,0xa, 0x1b,0x4d, +0x10,0x2e,0x24,0x1c,0x36,0x1b,0x28,0x10,0xb, 0xa0,0xbe,0xa0,0x2, 0x40,0xcc,0x22, +0xd2,0x9f,0x6d,0x33,0x89,0x34,0xca,0x3b,0x7d,0x63,0x75,0x24,0xc, 0x75,0x25,0x0, +0x75,0x26,0x17,0x75,0x27,0x0, 0x7e,0x34,0x13,0xd0,0x7e,0x24,0x0, 0x28,0xe4,0x12, +0x6e,0x21,0x6c,0x66,0x2, 0x8, 0xed,0x74,0x2, 0xac,0xb6,0x9, 0x75,0xd, 0x18,0x7a, +0x71,0x23,0x9, 0xa5,0xd, 0x19,0x1a,0x17,0x7d,0x21,0x1b,0x25,0xb, 0x15,0x7c,0x43, +0x1a,0x1a,0x1b,0x15,0x1a,0xa, 0xb, 0x5, 0x7c,0x21,0xbe,0x50,0x0, 0x58,0x2, 0x6c, +0x55,0x7e,0x73,0x10,0x2b,0xa, 0x7, 0x1b,0x4, 0x1a,0x44,0xbd,0x40,0x8, 0x2, 0x7c, +0x41,0xbe,0x30,0x0, 0x58,0x2, 0x6c,0x33,0x7e,0x73,0x10,0x2c,0xa, 0x7, 0x1b,0x4, +0x1a,0x42,0xbd,0x40,0x8, 0x2, 0x7c,0x21,0xbe,0x51,0x24,0x58,0x3, 0x7a,0x51,0x24, +0xbe,0x41,0x25,0x8, 0x3, 0x7a,0x41,0x25,0xbe,0x31,0x26,0x58,0x3, 0x7a,0x31,0x26, +0xbe,0x21,0x27,0x8, 0x3, 0x7a,0x21,0x27,0x7c,0xf5,0x80,0x4b,0x7c,0xe3,0x80,0x41, +0x1a,0xef,0x7e,0xf4,0x0, 0x18,0xad,0xfe,0x1a,0xe, 0x2d,0xf, 0xe, 0x4, 0xe, 0x4, +0xe, 0x4, 0x7c,0x71,0x7a,0x71,0x21,0x7e,0x10,0x18,0xac,0x1f,0x7c,0xb1,0x2c,0xbe, +0x54,0x7, 0x7e,0x4, 0x0, 0x1, 0x60,0x5, 0x3e,0x4, 0x14,0x78,0xfb,0x7c,0xb1,0xf5, +0x22,0xa, 0x7, 0x2e,0x4, 0x13,0xd0,0x7e,0x9, 0xb0,0x45,0x22,0x7a,0x9, 0xb0,0xb, +0xe0,0xbc,0x2e,0x58,0xbb,0xb, 0xf0,0xbc,0x4f,0x58,0xb1,0xb, 0x60,0x7e,0x73,0xd, +0xf7,0xbc,0x76,0x28,0x3, 0x2, 0x8, 0x27,0xbe,0x70,0x0, 0x38,0x3, 0x2, 0xd, 0x43, +0x7e,0xe1,0x26,0x2, 0xd, 0x3a,0x6c,0xff,0x80,0x1f,0x1a,0x3e,0x3e,0x34,0x1a,0x2f, +0x7e,0x14,0x0, 0x30,0xad,0x12,0x2d,0x31,0x2d,0x36,0xb, 0x38,0x30,0xe, 0x34,0xe, +0x34,0x3e,0x24,0x59,0x32,0x13,0xb6,0xb, 0xf0,0x7e,0x73,0x10,0x2b,0xbc,0x7f,0x18, +0xd9,0x7e,0xf1,0x24,0x2, 0xd, 0x2f,0x1a,0x4f,0x7e,0x14,0x0, 0x18,0xad,0x14,0x1a, +0x3e,0x7d,0x51,0x2d,0x53,0xe, 0x54,0xe, 0x54,0xe, 0x54,0x7c,0xab,0x7a,0xa1,0x21, +0x7e,0x50,0x18,0xac,0x5f,0x7c,0xb5,0x2c,0xbe,0x54,0x7, 0x7e,0x24,0x0, 0x1, 0x60, +0x5, 0x3e,0x24,0x14,0x78,0xfb,0x7c,0xb5,0xf5,0x22,0xa, 0x2a,0x9, 0xb2,0x13,0xd0, +0x55,0x22,0x78,0x3, 0x2, 0xd, 0x2d,0xbe,0xf0,0x3, 0x58,0x3, 0x2, 0x9, 0xfe,0x7e, +0x53,0x10,0x2b,0xa, 0x25,0x1b,0x26,0xbd,0x42,0x18,0x73,0x7d,0xf4,0x3e,0xf4,0x49, +0x5f,0x13,0xba,0x49,0x2f,0x13,0xb2,0x2d,0x25,0x7d,0x52,0x3e,0x54,0x3e,0x24,0x3e, +0x24,0x3e,0x24,0x2d,0x25,0x49,0x5f,0x13,0xbc,0x49,0xef,0x13,0xb0,0x2d,0xe5,0x7d, +0x5e,0x3e,0x54,0x2d,0x5e,0x9d,0x25,0x49,0xef,0x13,0xb8,0x49,0x5f,0x13,0xb4,0x2d, +0x5e,0x7d,0xe5,0x3e,0xe4,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x2d, +0x5e,0x9d,0x25,0x49,0x5f,0x13,0xb6,0x7d,0x5, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x3e, +0x4, 0x7d,0x15,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x3e, +0x14,0x9d,0x10,0x3e,0x54,0x3e,0x54,0x2d,0x51,0x2d,0x52,0x2, 0xb, 0x55,0x4c,0xff, +0x78,0x5d,0x7d,0x24,0x3e,0x24,0x49,0x12,0x13,0xb6,0x7d,0x1, 0x3e,0x4, 0x3e,0x4, +0x3e,0x4, 0x3e,0x4, 0x7d,0x51,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x3e,0x54, +0x3e,0x54,0x2d,0x50,0x7d,0x1, 0x3e,0x4, 0x2d,0x5, 0x2d,0x1, 0x49,0x12,0x13,0xb8, +0x7d,0x51,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x9d,0x5, 0x3e,0x14,0x3e,0x14, +0x3e,0x14,0x9d,0x1, 0x49,0x12,0x13,0xba,0x7d,0x51,0x3e,0x54,0x3e,0x54,0x3e,0x54, +0x2d,0x50,0x9d,0x51,0x49,0x22,0x13,0xbc,0x3e,0x24,0x9d,0x52,0x2, 0xb, 0x55,0xbe, +0xf0,0x1, 0x78,0x69,0x7d,0x4, 0x3e,0x4, 0x49,0x10,0x13,0xb4,0x7d,0x21,0x3e,0x24, +0x3e,0x24,0x3e,0x24,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x2d,0x12,0x49,0x20, +0x13,0xb6,0x7d,0x52,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x3e,0x24,0x3e,0x24, +0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x9d,0x25,0x9d,0x21,0x49,0x10, +0x13,0xb8,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x9d,0x21,0x49,0x10, +0x13,0xba,0x7d,0x51,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x2d,0x51,0x2d,0x52,0x49,0x10, +0x13,0xbc,0x7d,0x21,0x3e,0x24,0x2d,0x21,0x9d,0x52,0x2, 0xb, 0x55,0xbe,0xf0,0x2, +0x68,0x3, 0x2, 0xb, 0x75,0x7d,0x4, 0x3e,0x4, 0x49,0x10,0x13,0xb4,0x7d,0x21,0x3e, +0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x2d,0x21,0x49,0x50,0x13,0xb2,0x7d, +0x15,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x9d,0x15,0x9d,0x12,0x49,0x20,0x13,0xb6,0x7d, +0xf2,0x3e,0xf4,0x3e,0xf4,0x3e,0xf4,0x3e,0xf4,0x7d,0x52,0x3e,0x54,0x3e,0x54,0x3e, +0x54,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x9d,0x5f,0x3e,0x24,0x3e,0x24,0x2d, +0x25,0x2d,0x21,0x49,0x50,0x13,0xb8,0x7d,0x15,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x3e, +0x14,0x3e,0x14,0x2d,0x15,0x9d,0x21,0x49,0x50,0x13,0xba,0x7d,0x15,0x3e,0x14,0x3e, +0x54,0x3e,0x54,0x3e,0x54,0x2d,0x51,0x2d,0x52,0x49,0x10,0x13,0xbc,0x7d,0x21,0x3e, +0x24,0x2d,0x21,0x9d,0x52,0xe, 0x54,0xe, 0x54,0xe, 0x54,0xe, 0x54,0xe, 0x54,0xe, +0x54,0x7d,0x23,0x3e,0x24,0x7e,0x14,0x0, 0x30,0xad,0x14,0x2d,0x21,0x2d,0x26,0x1b, +0x28,0x50,0x2, 0xd, 0x11,0x7e,0xa3,0x10,0x2b,0x7c,0xba,0x24,0xfd,0xbc,0xbf,0x68, +0x3, 0x2, 0xc, 0x11,0x3e,0x44,0x49,0x24,0x13,0xb2,0x7d,0x12,0x3e,0x14,0x3e,0x24, +0x3e,0x24,0x3e,0x24,0x2d,0x21,0x49,0x4, 0x13,0xb0,0x7d,0x10,0x3e,0x14,0x2d,0x10, +0x9d,0x21,0x49,0x4, 0x13,0xb4,0x7d,0x10,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x3e,0x14, +0x3e,0x14,0x2d,0x10,0x9d,0x21,0x49,0x14,0x13,0xb6,0x7d,0xf1,0x3e,0xf4,0x3e,0xf4, +0x3e,0xf4,0x3e,0xf4,0x7d,0x1, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, +0x3e,0x4, 0x3e,0x4, 0x9d,0xf, 0x3e,0x14,0x3e,0x14,0x2d,0x10,0x2d,0x12,0x49,0x4, +0x13,0xb8,0x7d,0x20,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x2d,0x20, +0x9d,0x12,0x49,0x4, 0x13,0xba,0x7d,0x20,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x9d,0x20, +0x2d,0x21,0xe, 0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0x2, 0xd, +0x0, 0x7c,0xba,0x24,0xfe,0xbc,0xbf,0x78,0x76,0x1a,0xf, 0x3e,0x4, 0x49,0x30,0x13, +0xb0,0x7d,0x23,0x3e,0x24,0x2d,0x23,0x49,0x10,0x13,0xb2,0x7d,0x31,0x3e,0x34,0x3e, +0x34,0x3e,0x34,0x2d,0x31,0x9d,0x32,0x49,0x20,0x13,0xb4,0x3e,0x24,0x3e,0x24,0x3e, +0x24,0x3e,0x24,0x3e,0x24,0x9d,0x32,0x49,0x20,0x13,0xb6,0x7d,0x12,0x3e,0x14,0x3e, +0x14,0x3e,0x14,0x3e,0x14,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e, +0x24,0x3e,0x24,0x9d,0x21,0x2d,0x23,0x49,0x30,0x13,0xb8,0x7d,0x13,0x3e,0x14,0x3e, +0x14,0x3e,0x14,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x2d,0x31,0x9d,0x23,0xe, +0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0x1a,0x3e,0x80,0x71,0x7e, +0xb3,0x10,0x2b,0x14,0xbc,0xbf,0x78,0x79,0x1a,0x5f,0x3e,0x54,0x49,0x25,0x13,0xb2, +0x7d,0x32,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x9d,0x32,0x49,0x25,0x13,0xb0,0x3e,0x24, +0x9d,0x32,0x49,0x25,0x13,0xb4,0x7d,0x42,0x3e,0x44,0x3e,0x44,0x3e,0x44,0x3e,0x24, +0x3e,0x24,0x3e,0x24,0x3e,0x24,0x2d,0x24,0x9d,0x32,0x49,0x15,0x13,0xb6,0x7d,0x21, +0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x7d,0x1, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, +0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x2d,0x2, 0x7d,0x21,0x3e,0x24,0x2d,0x20,0x2d,0x21, +0x2d,0x23,0xe, 0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0x1a,0x3e, +0x3e,0x34,0x1a,0xf, 0x7e,0x14,0x0, 0x30,0xad,0x10,0x2d,0x31,0x2d,0x36,0x1b,0x38, +0x20,0x1a,0x1e,0x3e,0x14,0x1a,0x2f,0x7e,0x34,0x0, 0x30,0xad,0x32,0x7d,0x23,0x2d, +0x21,0x2d,0x26,0xb, 0x28,0x30,0x3e,0x34,0x3e,0x34,0x1b,0x28,0x30,0xb, 0xf0,0xe5, +0x25,0xbc,0xbf,0x48,0x3, 0x2, 0x9, 0x37,0xb, 0xe0,0xe5,0x27,0xbc,0xbe,0x48,0x3, +0x2, 0x9, 0x6, 0xda,0x3b,0x22,0xca,0x3b,0x7c,0xfb,0x7e,0xb3,0xd, 0xf7,0xf5,0x2c, +0x75,0x10,0x0, 0xe4,0x7a,0xb3,0x15,0x54,0x7a,0xb3,0x15,0x55,0x6d,0x22,0x7e,0x34, +0x7f,0xff,0x7e,0x67,0xf, 0xda,0x6c,0xee,0xe4,0xa, 0x1e,0x19,0xb1,0x13,0xb6,0x6c, +0xaa,0x7e,0x10,0x2, 0xac,0x1e,0x19,0xa0,0x15,0x2b,0x19,0xb0,0x15,0x2c,0xe5,0x2c, +0xbc,0xbe,0x28,0x24,0x9, 0x20,0xd, 0x18,0x7e,0x30,0x18,0xac,0x23,0x9, 0x10,0xd, +0x19,0xa, 0x1, 0x2d,0x10,0x3e,0x14,0x2d,0x16,0xb, 0x18,0x10,0xbd,0x12,0x48,0x2, +0x7d,0x21,0xbd,0x13,0x18,0x2, 0x7d,0x31,0xb, 0xe0,0xbe,0xe0,0x14,0x78,0xb9,0x2d, +0x32,0xe, 0x34,0xe5,0x2c,0xbe,0xb0,0x2, 0x50,0x3, 0x2, 0x11,0x9d,0x6c,0xee,0x7e, +0x30,0x6, 0xac,0x3e,0x7d,0x51,0x2e,0x54,0x69,0x8f,0x7e,0x44,0x0, 0xff,0xb, 0x2a, +0x20,0xbd,0x23,0x58,0x20,0x7d,0x51,0x2e,0x54,0x69,0x91,0x7e,0x44,0x0, 0xff,0xb, +0x2a,0x20,0x7a,0x25,0x30,0x2e,0x14,0x69,0x93,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0x20, +0x7a,0x25,0x32,0x80,0x7, 0xb, 0xe0,0xbe,0xe0,0x7, 0x40,0xc3,0x6c,0xee,0x2, 0x11, +0x8b,0x7e,0x70,0x2, 0xac,0x7e,0x9, 0xb3,0xd, 0x18,0xf5,0x22,0x9, 0xb3,0xd, 0x19, +0xf5,0x23,0x4c,0xee,0x68,0x8, 0xa, 0x3e,0x9, 0xb3,0x13,0xb6,0x70,0xa, 0xa, 0x3e, +0xb, 0x34,0xa, 0x2e,0x19,0x72,0x13,0xb6,0xe5,0x2c,0x14,0xbc,0xbe,0x78,0x3, 0x2, +0x11,0x94,0xa, 0x5e,0xb, 0x54,0xf5,0x2d,0x2, 0x11,0x7f,0x7e,0x71,0x2d,0x74,0x2, +0xac,0x7b,0x9, 0xa3,0xd, 0x18,0x7a,0xa1,0x24,0x9, 0xb3,0xd, 0x19,0xf5,0x25,0xa, +0x2a,0xe5,0x22,0xa, 0x3b,0x9d,0x32,0x12,0x6e,0x11,0x7c,0xb7,0xf5,0x2a,0xe5,0x25, +0xa, 0x2b,0xe5,0x23,0xa, 0x3b,0x9d,0x32,0x12,0x6e,0x11,0x7c,0xb7,0xf5,0x2b,0x75, +0x3d,0x2, 0x75,0x2f,0x0, 0x7e,0x51,0x22,0x74,0x18,0xac,0x5b,0xe5,0x23,0xa, 0x3b, +0x2d,0x23,0x3e,0x24,0x2d,0x26,0xb, 0x28,0x20,0x7a,0x25,0x34,0x7e,0x11,0x24,0x74, +0x18,0xac,0x1b,0xe5,0x25,0xa, 0x1b,0x7d,0x20,0x2d,0x21,0x3e,0x24,0x2d,0x26,0xb, +0x28,0x20,0x7a,0x25,0x36,0x7d,0x52,0x3e,0x54,0x3e,0x54,0x3e,0x54,0xe, 0x54,0xe, +0x54,0xe, 0x54,0xe, 0x54,0x7a,0x55,0x38,0xbe,0x25,0x34,0x8, 0x14,0x7e,0x25,0x34, +0x3e,0x24,0x3e,0x24,0x3e,0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0x7a,0x25, +0x38,0xe5,0x2a,0xbe,0xb0,0x1, 0x38,0x37,0xe5,0x2b,0xbe,0xb0,0x1, 0x38,0x30,0x7c, +0xbf,0x54,0x2, 0xb4,0x2, 0x29,0x2d,0x3, 0x3e,0x4, 0x2d,0x6, 0xb, 0x8, 0x20,0x7e, +0x71,0x22,0x74,0x18,0xac,0x7b,0x2d,0x31,0x3e,0x34,0x2d,0x36,0xb, 0x38,0x30,0x2d, +0x32,0xbe,0x35,0x38,0x18,0x3, 0x2, 0x11,0x13,0x75,0x2f,0x1, 0x2, 0x11,0x13,0xe5, +0x2a,0xbe,0xb0,0x1, 0x38,0xa, 0xe5,0x2b,0xbe,0xb0,0x1, 0x38,0x3, 0x2, 0x11,0x13, +0xe5,0x2a,0xbe,0xb0,0x4, 0x40,0x3, 0x2, 0x11,0x13,0xe5,0x2b,0xbe,0xb0,0x4, 0x40, +0x3, 0x2, 0x11,0x13,0x7c,0xbf,0x54,0x1, 0xb4,0x1, 0x2, 0x80,0x3, 0x2, 0x11,0x13, +0x6d,0x33,0x7a,0x35,0x3a,0x75,0x3c,0x0, 0x85,0x22,0x26,0x85,0x24,0x28,0xe5,0x24, +0xbe,0xb1,0x22,0x50,0x6, 0x85,0x24,0x26,0x85,0x22,0x28,0x85,0x23,0x27,0x85,0x25, +0x29,0xe5,0x25,0xbe,0xb1,0x23,0x50,0x6, 0x85,0x25,0x27,0x85,0x23,0x29,0x75,0x40, +0x0, 0x75,0x41,0x0, 0xe5,0x28,0xbe,0xb1,0x26,0x78,0x21,0x75,0x40,0x1, 0xe5,0x26, +0x60,0x5, 0xe5,0x26,0xb4,0xc, 0x3, 0x75,0x41,0x1, 0xe5,0x26,0xbe,0xb0,0x0, 0x28, +0x2, 0x15,0x26,0xe5,0x28,0xbe,0xb0,0xc, 0x50,0x2, 0x5, 0x28,0xe5,0x29,0xbe,0xb1, +0x27,0x78,0x21,0x75,0x40,0x1, 0xe5,0x27,0x60,0x5, 0xe5,0x27,0xb4,0x17,0x3, 0x75, +0x41,0x1, 0xe5,0x27,0xbe,0xb0,0x0, 0x28,0x2, 0x15,0x27,0xe5,0x29,0xbe,0xb0,0x17, +0x50,0x2, 0x5, 0x29,0x85,0x26,0x3e,0x80,0x78,0x85,0x27,0x3f,0x80,0x6a,0xe5,0x26, +0xbe,0xb1,0x3e,0x68,0x15,0xe5,0x28,0xbe,0xb1,0x3e,0x68,0xe, 0xe5,0x27,0xbe,0xb1, +0x3f,0x68,0x7, 0xe5,0x29,0xbe,0xb1,0x3f,0x78,0x24,0x7e,0x51,0x3e,0x74,0x18,0xac, +0x5b,0xe5,0x3f,0xa, 0x1b,0x2d,0x21,0x3e,0x24,0x2d,0x26,0xb, 0x28,0x20,0xbe,0x24, +0x0, 0x0, 0x8, 0x6, 0x2e,0x25,0x3a,0x7a,0x25,0x3a,0x5, 0x3c,0x80,0x28,0x7e,0x51, +0x3e,0x74,0x18,0xac,0x5b,0xe5,0x3f,0xa, 0x1b,0x2d,0x21,0x3e,0x24,0x2d,0x26,0xb, +0x28,0x20,0xbe,0x25,0x32,0x8, 0xc, 0xe5,0x3d,0xbe,0xb0,0x0, 0x28,0x5, 0x75,0x3d, +0x1, 0x80,0x3, 0x75,0x3d,0x0, 0x5, 0x3f,0xe5,0x29,0xbe,0xb1,0x3f,0x50,0x8f,0x5, +0x3e,0xe5,0x28,0xbe,0xb1,0x3e,0x50,0x81,0x7e,0x51,0x28,0x74,0x18,0xac,0x5b,0xe5, +0x27,0xa, 0x4b,0x2d,0x24,0x3e,0x24,0x2d,0x26,0xb, 0x28,0x50,0x7e,0x25,0x3a,0x9d, +0x25,0x7e,0x31,0x26,0x74,0x18,0xac,0x3b,0xe5,0x29,0xa, 0xb, 0x7d,0x51,0x2d,0x50, +0x3e,0x54,0x2d,0x56,0xb, 0x58,0x50,0x9d,0x25,0x2d,0x14,0x3e,0x14,0x2d,0x16,0xb, +0x18,0x10,0x9d,0x21,0x7e,0x31,0x28,0x74,0x18,0xac,0x3b,0x2d,0x10,0x3e,0x14,0x2d, +0x16,0xb, 0x18,0x10,0x9d,0x21,0x7a,0x25,0x3a,0x7e,0x25,0x36,0x2e,0x25,0x34,0x7a, +0x25,0x38,0xe5,0x40,0xb4,0x1, 0x11,0xe5,0x41,0x70,0xd, 0x7e,0x25,0x3a,0x9e,0x25, +0x38,0x7a,0x25,0x3a,0x15,0x3c,0x15,0x3c,0xe5,0x3c,0xbe,0xb0,0x4, 0x28,0x6, 0xe5, +0x3c,0x24,0xfc,0xf5,0x3c,0x7e,0x25,0x3a,0xbe,0x24,0x0, 0x0, 0x58,0x3, 0x7a,0x35, +0x3a,0x7e,0x15,0x38,0x1a,0x2, 0x1a,0x0, 0x7e,0x35,0x30,0x1a,0x26,0x1a,0x24,0x12, +0x48,0x85,0xe5,0x3c,0xa, 0x1b,0x6d,0x0, 0x12,0x48,0x85,0x7f,0x21,0x7e,0x35,0x3a, +0x1a,0x26,0x1a,0x24,0x7e,0x14,0x0, 0x28,0x12,0x48,0x96,0xbf,0x12,0x8, 0xa, 0xe5, +0x3d,0xbe,0xb0,0x0, 0x28,0x3, 0x75,0x2f,0x2, 0x7e,0xb3,0xd, 0xfd,0xb4,0x1, 0x3, +0x75,0x2f,0x2, 0xe5,0x2f,0xbe,0xb0,0x0, 0x28,0x63,0xe5,0x2f,0xa, 0x3b,0x2e,0x34, +0x15,0x53,0x7e,0x39,0xb0,0x4, 0x7a,0x39,0xb0,0xe5,0x2d,0xa, 0x3b,0x9, 0xb3,0x13, +0xb6,0x70,0xc, 0xa, 0x2e,0x9, 0x52,0x13,0xb6,0x19,0x53,0x13,0xb6,0x80,0x3e,0x75, +0x2e,0x0, 0x80,0x32,0x9, 0x33,0x13,0xb6,0xa, 0x2e,0x9, 0xa2,0x13,0xb6,0xbc,0xa3, +0x28,0x12,0xe5,0x2e,0xa, 0x2b,0x9, 0x22,0x13,0xb6,0xbc,0x2a,0x78,0x16,0x19,0x32, +0x13,0xb6,0x80,0x10,0xe5,0x2e,0xa, 0x2b,0x9, 0xb2,0x13,0xb6,0xbc,0xb3,0x78,0x4, +0x19,0xa2,0x13,0xb6,0x5, 0x2e,0xe5,0x2c,0xbe,0xb1,0x2e,0x38,0xc7,0x5, 0x2d,0xe5, +0x2c,0xbe,0xb1,0x2d,0x28,0x3, 0x2, 0xe, 0x3b,0xb, 0xe0,0xe5,0x2c,0xbc,0xbe,0x28, +0x3, 0x2, 0xe, 0x1, 0x7e,0x34,0x13,0xb6,0x12,0x3b,0x6a,0xf5,0x10,0xda,0x3b,0x22, +0xca,0x3b,0x7c,0xf6,0x7c,0xe7,0x7c,0xdb,0x6c,0x33,0x6c,0x44,0x6c,0x22,0x6c,0x55, +0x7e,0x37,0xf, 0x61,0x7a,0x35,0x3e,0x6c,0xaa,0x7e,0x70,0x7, 0xac,0x7f,0x19,0xa3, +0xd, 0x70,0xe4,0x19,0xb3,0xd, 0x71,0xa, 0x5d,0x3e,0x54,0xb, 0x54,0x7c,0xab,0x7e, +0x70,0x2, 0xac,0x7e,0x9, 0xb3,0xd, 0x18,0xf5,0x39,0x9, 0xb3,0xd, 0x19,0xf5,0x3a, +0xbe,0xd1,0x3a,0x28,0x3, 0x2, 0x12,0xe, 0x7e,0xb3,0x10,0x2c,0xa, 0xb, 0x1b,0x4, +0xa, 0x3d,0x9d,0x3, 0xe5,0x3a,0xa, 0x3b,0xbd,0x30,0x8, 0x3, 0x2, 0x12,0xe, 0x7c, +0x3a,0xa, 0x4d,0xe5,0x3a,0xa, 0xb, 0x9d,0x4, 0x7c,0x51,0x2, 0x12,0x59,0xbe,0xd1, +0x3a,0x38,0x3, 0x2, 0x12,0x27,0xe5,0x3a,0xa, 0xb, 0xa, 0x3d,0x2d,0x30,0xb, 0x34, +0x7c,0x37,0x6c,0x55,0x2, 0x12,0x59,0xa, 0xfd,0xe5,0x3a,0xa, 0x4b,0x2d,0xf4,0x7e, +0xb3,0x10,0x2c,0xa, 0xb, 0x7d,0x30,0x1b,0x34,0xbd,0xf3,0x18,0x3, 0x2, 0x12,0x59, +0xbd,0x43,0x8, 0x3, 0x2, 0x12,0x59,0xa, 0x3d,0x2d,0x30,0xe5,0x3a,0xa, 0xb, 0x9d, +0x30,0x7c,0x37,0xa, 0x3d,0x9d,0x3, 0x7c,0x51,0xbe,0xd1,0x39,0x28,0x3, 0x2, 0x12, +0x83,0x7e,0xb3,0x10,0x2b,0xa, 0xb, 0x1b,0x4, 0xa, 0x3d,0x9d,0x3, 0xe5,0x39,0xa, +0x3b,0xbd,0x30,0x8, 0x3, 0x2, 0x12,0x83,0x7c,0x4a,0xa, 0xd, 0xe5,0x39,0xa, 0x3b, +0x2, 0x12,0xca,0xbe,0xd1,0x39,0x38,0x3, 0x2, 0x12,0x9c,0xe5,0x39,0xa, 0xb, 0xa, +0x3d,0x2d,0x30,0xb, 0x34,0x7c,0x47,0x6c,0x22,0x2, 0x12,0xce,0xa, 0x4d,0xe5,0x39, +0xa, 0x5b,0x2d,0x45,0x7e,0x73,0x10,0x2b,0xa, 0x37,0x7d,0x3, 0x1b,0x4, 0xbd,0x40, +0x18,0x3, 0x2, 0x12,0xce,0xbd,0x50,0x8, 0x3, 0x2, 0x12,0xce,0xa, 0xd, 0x2d,0x3, +0xe5,0x39,0xa, 0x3b,0x9d,0x3, 0x7c,0x41,0xa, 0xd, 0x9d,0x30,0x7c,0x27,0x7e,0x37, +0xf, 0xda,0x7c,0xb2,0x7e,0x23,0xf, 0x53,0x7e,0x4, 0x9, 0xc8,0x12,0x5c,0x9d,0x7e, +0x37,0x9, 0xc8,0x7d,0x3, 0x6d,0x11,0x7e,0x37,0x9, 0xca,0x7d,0x20,0x7a,0x1d,0x28, +0x7e,0x37,0x9, 0xcc,0x7d,0x3, 0x7e,0x37,0x9, 0xce,0x7d,0x20,0x7a,0x1d,0x2c,0x7e, +0x37,0x9, 0xd0,0x7d,0x3, 0x7e,0x37,0x9, 0xd2,0x7d,0x20,0x7a,0x1d,0x30,0x7e,0x37, +0x9, 0xd4,0x7d,0x3, 0x7e,0x37,0x9, 0xd6,0x7d,0x20,0x7a,0x1d,0x34,0xa, 0x2d,0xe5, +0x39,0xa, 0x3b,0x9d,0x32,0x7c,0xc7,0x2, 0x15,0x24,0xa, 0x4d,0xe5,0x3a,0xa, 0x5b, +0x9d,0x54,0xf5,0x38,0x2, 0x15,0xd, 0xbe,0xc0,0x0, 0x58,0x3, 0x2, 0x15,0xb, 0x7e, +0x73,0x10,0x2b,0xbc,0x7c,0x18,0x3, 0x2, 0x15,0xb, 0xe5,0x38,0xbe,0xb0,0x0, 0x58, +0x3, 0x2, 0x15,0xb, 0x7e,0x73,0x10,0x2c,0xbe,0x71,0x38,0x18,0x3, 0x2, 0x15,0xb, +0xe5,0x38,0x1a,0x1b,0x3e,0x14,0x1a,0x2c,0x7e,0x34,0x0, 0x30,0xad,0x32,0x2d,0x31, +0x2e,0x37,0xf, 0xda,0xb, 0x38,0x30,0x7e,0x53,0xf, 0x53,0xa, 0x25,0x9d,0x32,0x7a, +0x35,0x3c,0xbe,0x34,0x0, 0x0, 0x18,0x3, 0x2, 0x15,0xb, 0x7e,0x35,0x3e,0xbe,0x35, +0x3c,0x28,0x3, 0x2, 0x13,0xa6,0x7e,0x70,0x7, 0xac,0x7f,0x2e,0x34,0xd, 0x71,0x7e, +0x39,0xb0,0x4, 0x7a,0x39,0xb0,0xe5,0x39,0xa, 0x2b,0x1a,0x3c,0x9d,0x32,0x12,0x6e, +0x11,0xbe,0x34,0x0, 0x1, 0x8, 0x3, 0x2, 0x13,0xd0,0xe5,0x3a,0xa, 0x2b,0xe5,0x38, +0x1a,0x3b,0x9d,0x32,0x12,0x6e,0x11,0xbe,0x34,0x0, 0x1, 0x18,0x3, 0x2, 0x15,0xb, +0x75,0x3b,0x0, 0x2, 0x14,0x60,0xbe,0xe1,0x3b,0x78,0x3, 0x2, 0x14,0x5e,0xe5,0x3b, +0x1a,0x3b,0x3e,0x34,0x9, 0x73,0xd, 0x18,0xa, 0x27,0x1a,0x3c,0x9d,0x32,0x12,0x6e, +0x11,0xbe,0x34,0x0, 0x1, 0x8, 0x3, 0x2, 0x14,0x1e,0xe5,0x3b,0x1a,0x3b,0x3e,0x34, +0x9, 0x73,0xd, 0x19,0xa, 0x27,0xe5,0x38,0x1a,0x3b,0x9d,0x32,0x12,0x6e,0x11,0xbe, +0x34,0x0, 0x1, 0x8, 0x3, 0x2, 0x14,0x1e,0x75,0x3b,0xff,0x2, 0x14,0x6c,0xe5,0x3b, +0x1a,0x3b,0x3e,0x34,0x9, 0x73,0xd, 0x18,0xa, 0x27,0x1a,0x3c,0x9d,0x32,0x12,0x6e, +0x11,0xbe,0x34,0x0, 0x2, 0x8, 0x3, 0x2, 0x14,0x5e,0xe5,0x3b,0x1a,0x3b,0x3e,0x34, +0x9, 0x73,0xd, 0x19,0xa, 0x27,0xe5,0x38,0x1a,0x3b,0x9d,0x32,0x12,0x6e,0x11,0xbe, +0x34,0x0, 0x2, 0x8, 0x3, 0x2, 0x14,0x5e,0x75,0x3b,0x0, 0x2, 0x14,0x6c,0x5, 0x3b, +0x7e,0x73,0xd, 0xf7,0xbe,0x71,0x3b,0x8, 0x3, 0x2, 0x13,0xd6,0xe5,0x3b,0x60,0x3, +0x2, 0x14,0xc0,0x7e,0x35,0x3c,0x7d,0x23,0xe, 0x24,0x9d,0x32,0x7a,0x35,0x3c,0x7e, +0xf5,0x3c,0x7d,0x3f,0x1a,0x36,0x1a,0xe6,0x1a,0x1c,0x1a,0x2, 0x7f,0x17,0x12,0x48, +0x85,0x7f,0x1, 0x7e,0x1d,0x2c,0x9f,0x10,0x7a,0x1d,0x2c,0xe5,0x38,0x1a,0x1b,0x1a, +0x2, 0x7f,0x17,0x12,0x48,0x85,0x7f,0x1, 0x7e,0x1d,0x34,0x9f,0x10,0x7a,0x1d,0x34, +0x7e,0x1d,0x28,0x9f,0x17,0x7a,0x1d,0x28,0x7e,0x1d,0x30,0x9f,0x17,0x7a,0x1d,0x30, +0xe5,0x3b,0xb4,0xff,0x2, 0x80,0x3, 0x2, 0x15,0xb, 0x7e,0xf5,0x3c,0x7d,0x3f,0x1a, +0x36,0x1a,0xe6,0x1a,0x1c,0x1a,0x2, 0x7f,0x17,0x12,0x48,0x85,0x7f,0x1, 0x7e,0x1d, +0x2c,0x9f,0x10,0x7a,0x1d,0x2c,0xe5,0x38,0x1a,0x1b,0x1a,0x2, 0x7f,0x17,0x12,0x48, +0x85,0x7f,0x1, 0x7e,0x1d,0x34,0x9f,0x10,0x7a,0x1d,0x34,0x7e,0x1d,0x28,0x9f,0x17, +0x7a,0x1d,0x28,0x7e,0x1d,0x30,0x9f,0x17,0x7a,0x1d,0x30,0x5, 0x38,0xa, 0x2d,0xe5, +0x3a,0xa, 0x3b,0x2d,0x32,0x1a,0x27,0xe5,0x38,0x1a,0x3b,0xbd,0x32,0x18,0x3, 0x2, +0x13,0x37,0xb, 0xc0,0xa, 0x2d,0xe5,0x39,0xa, 0x3b,0x2d,0x32,0x1a,0x27,0x1a,0x3c, +0xbd,0x32,0x18,0x3, 0x2, 0x13,0x2a,0x74,0x6, 0x7e,0x1d,0x2c,0x2f,0x11,0x14,0x78, +0xfb,0x7a,0x1d,0x2c,0x7e,0xd, 0x28,0x7e,0x1d,0x2c,0x12,0x48,0xa1,0x2e,0x34,0x0, +0x20,0x7e,0xd0,0x7, 0xac,0xdf,0x59,0x36,0xd, 0x6b,0x74,0x6, 0x7e,0x1d,0x34,0x2f, +0x11,0x14,0x78,0xfb,0x7a,0x1d,0x34,0x7e,0x7d,0x30,0x7e,0x1d,0x34,0x7f,0x7, 0x12, +0x48,0xa1,0x2e,0x34,0x0, 0x20,0x59,0x36,0xd, 0x6d,0x7e,0xb3,0xf, 0x60,0x7f,0x17, +0x70,0x3, 0x2, 0x15,0x91,0x1e,0x34,0x1e,0x24,0x50,0x3, 0x4e,0x60,0x80,0x14,0x78, +0xf4,0x7a,0x1d,0x30,0xbe,0x18,0x0, 0x7f,0x38,0x3, 0x2, 0x15,0xa4,0x7e,0x18,0x0, +0x7f,0x7a,0x1d,0x30,0x7e,0x2d,0x30,0x7c,0xab,0x7e,0x70,0x7, 0xac,0x7f,0x19,0xa3, +0xd, 0x70,0x74,0x7, 0xac,0xbe,0x9, 0xa5,0xd, 0x71,0x7e,0x70,0x7, 0xac,0x7f,0x19, +0xa3,0xd, 0x71,0x74,0x7, 0xac,0xbf,0x9, 0x75,0xd, 0x71,0xbe,0x70,0xf, 0x38,0x3, +0x2, 0x15,0xdf,0x7e,0xa0,0xf, 0x7e,0x70,0x7, 0xac,0x7f,0x19,0xa3,0xd, 0x71,0xda, +0x3b,0x22,0xca,0x3b,0x7c,0x6b,0xbe,0x60,0x3, 0x40,0x6, 0x74,0x1, 0x7a,0xb3,0x11, +0x96,0xa5,0xbe,0x1, 0x58,0x7e,0xa3,0x10,0x2b,0xbc,0xa7,0x28,0xd, 0x7a,0x71,0xd, +0x74,0x30,0xac,0x7b,0x2e,0x37,0x16,0x9b,0x80,0x3c,0x7a,0x71,0xd, 0xbc,0xa7,0x78, +0x6, 0x7e,0x34,0x8, 0x9a,0x80,0x2f,0xa, 0x2a,0x7d,0x2, 0xb, 0x4, 0xa, 0x17,0xbd, +0x10,0x78,0x6, 0x7e,0x34,0x8, 0xca,0x80,0x1d,0x7d,0x2, 0xb, 0x5, 0xbd,0x10,0x78, +0x6, 0x7e,0x34,0x9, 0x2e,0x80,0xf, 0x2e,0x24,0x0, 0x3, 0xbd,0x12,0x68,0x3, 0x2, +0x19,0x6a,0x7e,0x34,0x9, 0x5e,0x7a,0x37,0x0, 0xfb,0x2, 0x19,0x6a,0xa5,0xbe,0x0, +0x46,0x7e,0x64,0x0, 0xb, 0x7a,0x69,0x70,0x7c,0xb7,0x54,0x70,0xc4,0x54,0xf, 0x7c, +0x7b,0x4c,0x77,0x68,0x4, 0xa5,0xbf,0x1, 0x15,0x7e,0xb3,0x10,0xa5,0xb4,0x3, 0x7, +0x74,0x1, 0x7e,0x70,0x1, 0x80,0x36,0x74,0x27,0x7e,0x70,0x1, 0x80,0x13,0x7e,0xb3, +0x10,0xa5,0xb4,0x3, 0x7, 0x74,0x1, 0x7e,0x70,0x3, 0x80,0x21,0x74,0x27,0x7e,0x70, +0x3, 0x12,0x6d,0xe0,0x2, 0x19,0x6a,0xa5,0xbe,0x2, 0x23,0xa5,0xbf,0x4, 0x7, 0x74, +0x1, 0x7e,0x70,0x4, 0x80,0x7, 0xa5,0xbf,0x5, 0x9, 0xe4,0x6c,0x77,0x12,0x0, 0x5e, +0x2, 0x19,0x6a,0xbe,0x70,0x1, 0x50,0x3, 0x2, 0x19,0x6a,0x2, 0x19,0x6a,0xa5,0xbe, +0x3, 0x15,0xbe,0x70,0xd, 0x28,0x9, 0x74,0xd, 0x7a,0xb3,0x10,0x2b,0x2, 0x19,0x6a, +0x7a,0x73,0x10,0x2b,0x2, 0x19,0x6a,0xa5,0xbe,0x4, 0x15,0xbe,0x70,0x18,0x28,0x9, +0x74,0x18,0x7a,0xb3,0x10,0x2c,0x2, 0x19,0x6a,0x7a,0x73,0x10,0x2c,0x2, 0x19,0x6a, +0xa5,0xbe,0x5, 0x7, 0x7a,0x73,0x10,0x2d,0x2, 0x19,0x6a,0xa5,0xbe,0x7, 0x1e,0x7a, +0x73,0x10,0x4b,0x7c,0xb7,0x54,0x3f,0xa, 0x2b,0x3e,0x24,0x3e,0x24,0x7e,0x37,0x10, +0x54,0x5e,0x70,0x3, 0x4d,0x32,0x7a,0x37,0x10,0x54,0x2, 0x19,0x6a,0xa5,0xbe,0x8, +0x14,0x7e,0xb3,0x10,0x3b,0x70,0x7, 0x7a,0x73,0xa, 0xac,0x2, 0x19,0x6a,0x7a,0x73, +0x11,0x16,0x2, 0x19,0x6a,0xa5,0xbe,0x9, 0x1c,0xbe,0x70,0xa, 0x50,0x3, 0x7e,0x70, +0xa, 0x7e,0xb3,0x10,0x3b,0x70,0x7, 0x7a,0x73,0xa, 0xad,0x2, 0x19,0x6a,0x7a,0x73, +0x11,0x49,0x2, 0x19,0x6a,0xa5,0xbe,0xa, 0x10,0xa5,0xbf,0x0, 0x3, 0xe4,0x80,0x2, +0x74,0x1, 0x7a,0xb3,0x10,0x3b,0x2, 0x19,0x6a,0xa5,0xbe,0xb, 0x14,0x7e,0xb3,0x10, +0x3b,0x70,0x7, 0x7a,0x73,0xa, 0xae,0x2, 0x19,0x6a,0x7a,0x73,0x11,0x94,0x2, 0x19, +0x6a,0xa5,0xbe,0xc, 0x14,0x7e,0xb3,0x10,0x3b,0x70,0x7, 0x7a,0x73,0xd, 0xfe,0x2, +0x19,0x6a,0x7a,0x73,0x11,0x9d,0x2, 0x19,0x6a,0xa5,0xbe,0x4c,0x7, 0x7a,0x73,0xf, +0x46,0x2, 0x19,0x6a,0xa5,0xbe,0xfb,0x29,0x7a,0x71,0x8, 0x7e,0x37,0x10,0x50,0x5e, +0x70,0xdf,0x7a,0x37,0x10,0x50,0xe5,0x8, 0x54,0x1, 0xa, 0x3b,0x3e,0x34,0x3e,0x34, +0x3e,0x34,0x3e,0x34,0x3e,0x34,0x4e,0x37,0x10,0x50,0x7a,0x37,0x10,0x50,0x2, 0x19, +0x6a,0xa5,0xbe,0x4e,0x7, 0x7a,0x73,0x10,0x4a,0x2, 0x19,0x6a,0xa5,0xbe,0x4f,0x6, +0x12,0x0, 0x6, 0x2, 0x19,0x6a,0xbe,0x60,0x50,0x40,0x12,0xbe,0x60,0x51,0x38,0xd, +0xa, 0x26,0x2e,0x27,0x10,0x2f,0x9e,0x24,0x0, 0x50,0x2, 0x19,0x54,0xbe,0x60,0x52, +0x40,0x12,0xbe,0x60,0x55,0x38,0xd, 0xa, 0x26,0x2e,0x27,0x10,0x31,0x9e,0x24,0x0, +0x52,0x2, 0x19,0x54,0xbe,0x60,0x56,0x40,0x12,0xbe,0x60,0x62,0x38,0xd, 0xa, 0x26, +0x2e,0x27,0x10,0x33,0x9e,0x24,0x0, 0x56,0x2, 0x19,0x54,0xbe,0x60,0x63,0x40,0x12, +0xbe,0x60,0x7a,0x38,0xd, 0xa, 0x26,0x2e,0x27,0x10,0x35,0x9e,0x24,0x0, 0x63,0x2, +0x19,0x54,0xbe,0x60,0x7b,0x50,0x3, 0x2, 0x18,0xe8,0xbe,0x60,0x9f,0x28,0x3, 0x2, +0x18,0xe8,0x7e,0xb3,0x10,0x3b,0x70,0x48,0xa, 0x26,0x9e,0x24,0x0, 0x7b,0xbe,0x24, +0x0, 0x18,0x58,0x20,0xa, 0x26,0x2e,0x27,0x10,0x35,0x9e,0x24,0x0, 0x7b,0x7e,0x29, +0xf0,0x7c,0xbf,0x30,0xe0,0xa, 0xa, 0x7f,0x2e,0x74,0x0, 0x18,0xe, 0x74,0x80,0x17, +0x1e,0xf0,0x80,0x13,0xa, 0x26,0x2e,0x27,0x10,0x33,0x9e,0x24,0x0, 0x93,0x7e,0x29, +0x60,0xa, 0x76,0x2e,0x74,0x0, 0x18,0xa, 0x2f,0x19,0x72,0xf, 0xdc,0x2, 0x19,0x6a, +0xa, 0x26,0x9e,0x24,0x0, 0x7b,0xbe,0x24,0x0, 0x18,0x58,0x20,0xa, 0x26,0x2e,0x27, +0x10,0x35,0x9e,0x24,0x0, 0x7b,0x7e,0x29,0xf0,0x7c,0xbf,0x30,0xe0,0xa, 0xa, 0x7f, +0x2e,0x74,0x0, 0x18,0xe, 0x74,0x80,0x17,0x1e,0xf0,0x80,0x13,0xa, 0x26,0x2e,0x27, +0x10,0x33,0x9e,0x24,0x0, 0x93,0x7e,0x29,0x60,0xa, 0x76,0x2e,0x74,0x0, 0x18,0xa, +0x2f,0x19,0x72,0xf, 0x63,0x2, 0x19,0x6a,0xbe,0x60,0xa0,0x40,0x11,0xbe,0x60,0xac, +0x38,0xc, 0xa, 0x26,0x2e,0x27,0x10,0x6c,0x9e,0x24,0x0, 0xa0,0x80,0x56,0xbe,0x60, +0xad,0x40,0x11,0xbe,0x60,0xb9,0x38,0xc, 0xa, 0x26,0x2e,0x27,0x10,0x6e,0x9e,0x24, +0x0, 0xad,0x80,0x40,0xbe,0x60,0xba,0x40,0x11,0xbe,0x60,0xd1,0x38,0xc, 0xa, 0x26, +0x2e,0x27,0x10,0x70,0x9e,0x24,0x0, 0xba,0x80,0x2a,0xbe,0x60,0xd2,0x40,0x11,0xbe, +0x60,0xd5,0x38,0xc, 0xa, 0x26,0x2e,0x27,0x10,0x72,0x9e,0x24,0x0, 0xd2,0x80,0x14, +0xbe,0x60,0xd6,0x40,0x14,0xbe,0x60,0xed,0x38,0xf, 0xa, 0x26,0x2e,0x27,0x10,0x74, +0x9e,0x24,0x0, 0xd6,0x7a,0x29,0x70,0x80,0x11,0xa5,0xbe,0xf8,0x6, 0x7a,0x73,0x11, +0xe8,0x80,0x7, 0xa5,0xbe,0xfe,0x3, 0x7a,0x71,0xc, 0xda,0x3b,0x22,0xca,0x3b,0xe4, +0x7a,0xb3,0x13,0xde,0x7e,0x34,0xe, 0xdf,0x7a,0x35,0x23,0x6c,0xee,0x7e,0xa0,0xff, +0x7e,0x70,0x7, 0xac,0x7e,0x19,0xa3,0xe, 0x11,0x74,0xff,0xa, 0x3e,0x19,0xb3,0x13, +0xca,0x7e,0x34,0xff,0xff,0x74,0x2, 0xac,0xbe,0x59,0x35,0x13,0xb6,0xe4,0xa, 0x3e, +0x19,0xb3,0x13,0xd4,0xb, 0xe0,0xbe,0xe0,0xa, 0x78,0xd2,0x7e,0xb3,0xf, 0x1b,0x60, +0x3, 0x2, 0x19,0xe5,0x7e,0xb3,0xf, 0x1c,0x70,0x3, 0x2, 0x1c,0x18,0x6c,0xee,0x7e, +0x34,0xff,0xff,0x7e,0x50,0x2, 0xac,0x5e,0x2e,0x25,0x23,0x59,0x32,0x0, 0x14,0x7e, +0x50,0x2, 0xac,0x5e,0x2e,0x25,0x23,0x59,0x32,0x0, 0x28,0xb, 0xe0,0xbe,0xe0,0xa, +0x78,0xdd,0x2, 0x1c,0x18,0x7e,0xb3,0xf, 0x1c,0x60,0x3, 0x2, 0x1a,0x38,0x6c,0xee, +0x2, 0x1a,0x2d,0x74,0x7, 0xac,0xbe,0x49,0x35,0xe, 0xd, 0x7e,0x50,0x2, 0xac,0x5e, +0x2e,0x25,0x23,0x59,0x32,0x0, 0x14,0x74,0x7, 0xac,0xbe,0x49,0x35,0xe, 0xf, 0x7e, +0x50,0x2, 0xac,0x5e,0x2e,0x25,0x23,0x59,0x32,0x0, 0x28,0x74,0x7, 0xac,0xbe,0x19, +0xe5,0xe, 0x11,0x74,0x1, 0xa, 0x3e,0x19,0xb3,0x13,0xd4,0xb, 0xe0,0x7e,0x73,0xf, +0x1b,0xbc,0x7e,0x38,0xbe,0x2, 0x1c,0x18,0x6c,0xee,0x2, 0x1a,0xb7,0x6c,0xff,0xa, +0x3f,0x2e,0x35,0x23,0x9, 0xb3,0x0, 0xa, 0xbe,0xb0,0x3, 0x78,0x3, 0x2, 0x1a,0xae, +0xbe,0xb0,0x1, 0x78,0x3, 0x2, 0x1a,0xae,0x7e,0x70,0x2, 0xac,0x7f,0x2e,0x35,0x23, +0x49,0x23,0x0, 0x28,0x74,0x7, 0xac,0xbe,0x49,0x35,0xe, 0xf, 0x9d,0x32,0x12,0x6e, +0x11,0x7d,0x63,0x7e,0x70,0x2, 0xac,0x7f,0x2e,0x35,0x23,0x49,0x23,0x0, 0x14,0x74, +0x7, 0xac,0xbe,0x49,0x35,0xe, 0xd, 0x9d,0x32,0x12,0x6e,0x11,0x2d,0x36,0x7a,0x35, +0x21,0x74,0x2, 0xac,0xbe,0x49,0x45,0x13,0xb6,0xbe,0x45,0x21,0x38,0x3, 0x2, 0x1a, +0xae,0xa, 0x4e,0x19,0xf4,0x13,0xca,0x7e,0x35,0x21,0x59,0x35,0x13,0xb6,0xb, 0xf0, +0xbe,0xf0,0xa, 0x78,0x8a,0xb, 0xe0,0x7e,0x73,0xf, 0x1b,0xbc,0x7e,0x28,0x3, 0x2, +0x1a,0x3d,0x6c,0xee,0x2, 0x1b,0x6e,0x74,0x1, 0x7a,0xb3,0x13,0xde,0x6c,0xff,0x2, +0x1b,0xd, 0xbc,0xfe,0x78,0x3, 0x2, 0x1b,0xb, 0xa, 0x3f,0x9, 0x63,0x13,0xca,0xa, +0x2e,0x9, 0x72,0x13,0xca,0xbc,0x76,0x68,0x3, 0x2, 0x1b,0xb, 0x74,0x2, 0xac,0xbf, +0x49,0x25,0x13,0xb6,0x74,0x2, 0xac,0xbe,0x49,0x35,0x13,0xb6,0xbd,0x32,0x50,0x3, +0x2, 0x1b,0xb, 0xe4,0x7a,0xb3,0x13,0xde,0x2, 0x1b,0x15,0xb, 0xf0,0x7e,0x73,0xf, +0x1b,0xbc,0x7f,0x38,0xbd,0x7e,0xb3,0x13,0xde,0xb4,0x1, 0x2, 0x80,0x3, 0x2, 0x1b, +0x6c,0x74,0x1, 0xa, 0x3e,0x9, 0xa3,0x13,0xca,0xa, 0x4a,0x19,0xb4,0x13,0xd4,0x7e, +0x70,0x7, 0xac,0x7e,0x19,0xa3,0xe, 0x11,0x74,0x7, 0xac,0xbe,0x49,0x35,0xe, 0xd, +0xa, 0x2e,0x9, 0x42,0x13,0xca,0x7e,0x50,0x2, 0xac,0x45,0x2e,0x25,0x23,0x59,0x32, +0x0, 0x14,0x74,0x7, 0xac,0xbe,0x49,0x35,0xe, 0xf, 0xa, 0x2e,0x9, 0x42,0x13,0xca, +0x7e,0x50,0x2, 0xac,0x45,0x2e,0x25,0x23,0x59,0x32,0x0, 0x28,0xb, 0xe0,0x7e,0x73, +0xf, 0x1b,0xbc,0x7e,0x28,0x3, 0x2, 0x1a,0xc7,0x6c,0xee,0x2, 0x1b,0xdd,0x74,0x7, +0xac,0xbe,0x9, 0xb5,0xe, 0x11,0xb4,0xff,0x2, 0x80,0x3, 0x2, 0x1b,0xdb,0x6c,0xff, +0xa, 0x3f,0x9, 0xb3,0x13,0xd4,0x60,0x3, 0x2, 0x1b,0xd4,0x74,0x1, 0x19,0xb3,0x13, +0xd4,0x74,0x7, 0xac,0xbe,0x49,0x35,0xe, 0xd, 0x7e,0x50,0x2, 0xac,0x5f,0x2e,0x25, +0x23,0x59,0x32,0x0, 0x14,0x74,0x7, 0xac,0xbe,0x49,0x35,0xe, 0xf, 0x7e,0x50,0x2, +0xac,0x5f,0x2e,0x25,0x23,0x59,0x32,0x0, 0x28,0x74,0x7, 0xac,0xbe,0x19,0xf5,0xe, +0x11,0x2, 0x1b,0xdb,0xb, 0xf0,0xbe,0xf0,0xa, 0x40,0xb5,0xb, 0xe0,0x7e,0x73,0xf, +0x1b,0xbc,0x7e,0x38,0x99,0x6c,0xee,0xa, 0x3e,0x9, 0xb3,0x13,0xd4,0xbe,0xb0,0x1, +0x78,0x3, 0x2, 0x1c,0x11,0x7e,0x34,0xff,0xff,0x7e,0x50,0x2, 0xac,0x5e,0x2e,0x25, +0x23,0x59,0x32,0x0, 0x14,0x7e,0x50,0x2, 0xac,0x5e,0x2e,0x25,0x23,0x59,0x32,0x0, +0x28,0xb, 0xe0,0xbe,0xe0,0xa, 0x78,0xcf,0x7e,0xf3,0xf, 0x1b,0x6c,0xee,0xa, 0x3e, +0x9, 0xb3,0x13,0xd4,0xb4,0x1, 0x2, 0x80,0x3, 0x2, 0x1c,0x6a,0xa, 0x3e,0x2e,0x35, +0x23,0x9, 0xb3,0x0, 0xa, 0xb4,0x1, 0x2, 0x80,0x3, 0x2, 0x1c,0x43,0x74,0x3, 0x19, +0xb3,0x0, 0xa, 0xa, 0x3e,0x2e,0x35,0x23,0x9, 0xa3,0x0, 0xa, 0xbe,0xa0,0x3, 0x68, +0x3, 0x2, 0x1c,0x5b,0xe4,0x7a,0x39,0xb0,0x2, 0x1c,0x98,0x4c,0xaa,0x68,0x3, 0x2, +0x1c,0x98,0x74,0x2, 0x7a,0x39,0xb0,0x2, 0x1c,0x98,0xa, 0x3e,0x2e,0x35,0x23,0x9, +0xb3,0x0, 0xa, 0xbe,0xb0,0x2, 0x78,0x3, 0x2, 0x1c,0x80,0x60,0x3, 0x2, 0x1c,0x93, +0x74,0x1, 0x7a,0x39,0xb0,0x7c,0xaf,0xb, 0xf0,0x74,0x7, 0xa4,0x19,0xe5,0xe, 0x11, +0x2, 0x1c,0x98,0x74,0x3, 0x7a,0x39,0xb0,0xa, 0x2e,0x2e,0x25,0x23,0x7e,0x29,0x70, +0x19,0x72,0x0, 0xa, 0xb, 0xe0,0xbe,0xe0,0xa, 0x50,0x3, 0x2, 0x1c,0x1e,0xda,0x3b, +0x22,0xca,0x3b,0x75,0x24,0x0, 0x75,0x26,0x0, 0x75,0x27,0x0, 0x75,0x28,0x0, 0x7e, +0x34,0xe, 0xdf,0x7a,0x35,0x2a,0x7e,0xa3,0xf, 0x24,0x4c,0xaa,0x78,0xf, 0x7e,0xb3, +0xf, 0x20,0x70,0x9, 0x7e,0xb3,0xf, 0x21,0x70,0x3, 0x2, 0x1f,0x70,0x4c,0xaa,0x78, +0x11,0x7e,0xb3,0xf, 0x20,0x60,0x16,0x80,0x9, 0x7e,0x73,0x16,0xba,0xbe,0x70,0xf, +0x38,0x6, 0x7e,0xb3,0x15,0xde,0x60,0xf1,0xe4,0x7a,0xb3,0x15,0xde,0x20,0x0, 0x6, +0x7e,0x74,0x0, 0x76,0x80,0x4, 0x7e,0x74,0x0, 0xb8,0x7d,0x37,0x7e,0x24,0x0, 0x42, +0x74,0xff,0x12,0x6e,0x21,0x74,0xaa,0x7a,0x79,0xb0,0x19,0xb7,0x0, 0x1, 0x7e,0x73, +0xf, 0x1d,0x19,0x77,0x0, 0x3, 0x75,0x25,0x0, 0x6c,0xdd,0x2, 0x1e,0xfd,0x7e,0x70, +0x7, 0xac,0x7d,0x9, 0xa3,0xe, 0x9d,0x7a,0xa1,0x29,0x7c,0xba,0x54,0xf, 0xa, 0x2b, +0x2e,0x25,0x2a,0x7e,0x29,0xc0,0x7c,0xba,0x54,0xf0,0xbe,0xb0,0x0, 0x28,0x13,0xb4, +0xb0,0x2, 0x80,0x3, 0x2, 0x1e,0xfb,0x53,0x29,0xf, 0xbe,0xc0,0x1, 0x68,0x3, 0x2, +0x1e,0xfb,0xbe,0xc0,0x3, 0x78,0x3, 0x2, 0x1e,0xfb,0x7e,0xa1,0x25,0x74,0x6, 0xa4, +0xf5,0x21,0x9, 0xb3,0xe, 0x9e,0xf5,0x27,0x74,0x7, 0xac,0xbd,0x9, 0xb5,0xe, 0x9f, +0xc4,0x54,0xf0,0xf5,0x28,0x7e,0x73,0xf, 0x46,0xbe,0x71,0x29,0x28,0x68,0x7e,0xb3, +0xf, 0x22,0x70,0x2a,0x7e,0x8, 0x0, 0x27,0xe5,0x29,0xa, 0x3b,0x2e,0x34,0x15,0xca, +0x74,0x1, 0x7e,0x50,0xf, 0x12,0x5f,0xe0,0x7e,0x8, 0x0, 0x28,0xe5,0x29,0xa, 0x3b, +0x2e,0x34,0x15,0xd4,0x74,0x10,0x7e,0x50,0x20,0x12,0x5f,0xe0,0x80,0x14,0xe5,0x29, +0xa, 0x3b,0x9, 0xb3,0x15,0xca,0xf5,0x27,0xe5,0x29,0xa, 0x3b,0x9, 0xb3,0x15,0xd4, +0xf5,0x28,0xe5,0x29,0xa, 0x3b,0x7d,0x23,0x2e,0x25,0x2a,0x7e,0x29,0xb0,0xb4,0x1, +0x15,0xe4,0x19,0xb3,0x15,0xca,0x6c,0xaa,0xe5,0x29,0xa, 0x3b,0x19,0xa3,0x15,0xd4, +0x75,0x27,0x0, 0x75,0x28,0x0, 0x7e,0xb3,0xf, 0x5f,0xb4,0xff,0x15,0x74,0x7, 0xac, +0xbd,0x9, 0xb5,0xe, 0x9d,0xbe,0xb0,0xff,0x68,0x5, 0x75,0x27,0x1, 0x80,0x3, 0x75, +0x27,0x0, 0x7e,0x90,0x7, 0xac,0x9d,0x49,0x54,0xe, 0x99,0x7a,0x55,0x2c,0x49,0x54, +0xe, 0x9b,0x7a,0x55,0x2e,0xbe,0xc0,0x1, 0x78,0x2e,0x75,0x30,0x0, 0x7e,0x71,0x30, +0x74,0x7, 0xac,0x7b,0x9, 0xb3,0x15,0xe3,0x54,0xf, 0xbe,0xb1,0x29,0x78,0x10,0x49, +0x23,0x15,0xdf,0x7a,0x25,0x2c,0x49,0x53,0x15,0xe1,0x7a,0x55,0x2e,0x80,0x9, 0x5, +0x30,0xe5,0x30,0xbe,0xb0,0xa, 0x40,0xd5,0x7e,0x25,0x2c,0x7a,0x25,0x22,0xa, 0x54, +0x5e,0x54,0x0, 0xf, 0x7c,0xab,0xe5,0x21,0xa, 0x3b,0x7d,0x13,0x2d,0x17,0x19,0xa1, +0x0, 0x5, 0x7d,0x53,0x2d,0x57,0x19,0x55,0x0, 0x6, 0x7e,0x25,0x2e,0x7a,0x25,0x22, +0xa, 0x14,0x5e,0x14,0x0, 0xf, 0x7d,0x53,0x2d,0x57,0x19,0x35,0x0, 0x7, 0x7d,0x53, +0x2d,0x57,0x19,0x55,0x0, 0x8, 0xe5,0x27,0x7d,0x23,0x2d,0x27,0x19,0xb2,0x0, 0x9, +0xe5,0x28,0x7d,0x23,0x2d,0x27,0x19,0xb2,0x0, 0xa, 0x9, 0xa4,0xe, 0x9d,0x7c,0xba, +0xc4,0x54,0xf0,0x7c,0x3b,0x7d,0x23,0x2d,0x27,0x2e,0x24,0x0, 0x7, 0x7e,0x29,0xb0, +0x2c,0xb3,0x7a,0x29,0xb0,0xbe,0xa0,0xff,0x68,0x21,0xbe,0xc0,0x1, 0x68,0x2, 0x5, +0x24,0x5, 0x26,0x7c,0xbc,0x3, 0x3, 0x54,0xc0,0x7d,0x13,0x2d,0x17,0x2e,0x14,0x0, +0x5, 0x7e,0x19,0x50,0x2c,0x5b,0x7a,0x19,0x50,0x80,0xe, 0x2d,0x37,0x2e,0x34,0x0, +0x5, 0x7e,0x39,0xb0,0x24,0xc0,0x7a,0x39,0xb0,0x5, 0x25,0xb, 0xd0,0x7e,0x73,0xf, +0x46,0xbc,0x7d,0x28,0x3, 0x2, 0x1d,0x2e,0xe5,0x24,0x19,0xb7,0x0, 0x4, 0xe5,0x26, +0xbe,0xb0,0x0, 0x28,0x2d,0x74,0x42,0x19,0xb7,0x0, 0x2, 0xe4,0x19,0xb7,0x0, 0x41, +0x6c,0xdd,0xa, 0x3d,0x2d,0x37,0x7e,0x39,0x60,0x7d,0x27,0x2e,0x24,0x0, 0x41,0x7e, +0x29,0x70,0x6c,0x76,0x7a,0x29,0x70,0xb, 0xd0,0xbe,0xd0,0x41,0x78,0xe4,0xb2,0x0, +0x80,0xe, 0x7e,0xb3,0xf, 0x21,0xb4,0x1, 0xc, 0x7e,0xb3,0x10,0xd1,0xb4,0x24,0x5, +0x74,0x1, 0x12,0x6e,0xd3,0x7e,0xb3,0xf, 0x20,0x60,0x6, 0x7e,0x35,0x2a,0x12,0x68, +0x79,0xe4,0x7a,0xb3,0xf, 0x24,0x7a,0xb3,0xf, 0x20,0x7a,0xb3,0xf, 0x21,0x80,0x4, +0xe4,0x12,0x6e,0xd3,0x7e,0x24,0xe, 0x99,0x7e,0x34,0x15,0xdf,0x7e,0x14,0x0, 0x46, +0x12,0x6d,0x7d,0xe5,0x26,0x70,0xd, 0x7e,0x34,0x15,0xdf,0x7e,0x24,0x0, 0x46,0x74, +0xff,0x12,0x6e,0x21,0xda,0x3b,0x22,0xca,0x79,0x75,0x26,0x17,0x7e,0xb3,0xd, 0xf7, +0xf5,0x21,0x70,0x3, 0x2, 0x22,0x39,0x7e,0x34,0x13,0xb6,0x7e,0x24,0x1, 0x2b,0xe4, +0x12,0x6e,0x21,0x7e,0x34,0x14,0xe1,0x7e,0x24,0x0, 0x2, 0xe4,0x12,0x6e,0x21,0x6c, +0xaa,0x2, 0x20,0x4e,0x7e,0x70,0x2, 0xac,0x7a,0x9, 0x33,0xd, 0x18,0x9, 0x23,0xd, +0x19,0x1a,0x3, 0x1b,0x5, 0x80,0x69,0xbe,0x10,0x0, 0x48,0x62,0xbe,0x10,0xd, 0x58, +0x5d,0x7c,0x1, 0xe, 0x0, 0xe, 0x0, 0xe, 0x0, 0x7a,0x1, 0x25,0x7c,0xb1,0x54,0x7, +0x7e,0x74,0x0, 0x1, 0x60,0x5, 0x3e,0x74,0x14,0x78,0xfb,0x7c,0xef,0xa, 0x40,0x2e, +0x44,0x14,0xe1,0x7e,0x49,0xb0,0x4c,0xbe,0x7a,0x49,0xb0,0x1a,0x32,0x1b,0x35,0x7c, +0xf7,0x80,0x1f,0xbe,0xf0,0x0, 0x48,0x18,0xe5,0x26,0xbc,0xbf,0x8, 0x12,0x74,0x1, +0x1a,0x21,0x7e,0x34,0x0, 0x17,0xad,0x32,0x1a,0x4f,0x2d,0x43,0x19,0xb4,0x13,0xb6, +0xb, 0xf0,0x1a,0x22,0x2e,0x24,0x0, 0x3, 0x1a,0x3f,0xbd,0x32,0x48,0xd5,0xb, 0x10, +0x1a,0x23,0x2e,0x24,0x0, 0x3, 0x1a,0x31,0xbd,0x32,0x48,0x8b,0xb, 0xa0,0xe5,0x21, +0xbc,0xba,0x28,0x3, 0x2, 0x1f,0xc4,0x6c,0x11,0x7c,0x1, 0xe, 0x0, 0xe, 0x0, 0xe, +0x0, 0x7a,0x1, 0x25,0x7c,0xb1,0x54,0x7, 0x7e,0x44,0x0, 0x1, 0x60,0x5, 0x3e,0x44, +0x14,0x78,0xfb,0x7c,0xe9,0xa, 0x30,0x9, 0xb3,0x14,0xe1,0x5c,0xbe,0x78,0x3, 0x2, +0x21,0x15,0x6d,0x33,0x7a,0x35,0x22,0x75,0x24,0x0, 0x1a,0x21,0x7e,0x34,0x0, 0x30, +0xad,0x32,0x7d,0x43,0x2e,0x47,0xf, 0xda,0x6c,0x0, 0x80,0x26,0x1a,0xe1,0x7e,0xf4, +0x0, 0x17,0xad,0xfe,0xa, 0x30,0x2d,0x3f,0x9, 0xb3,0x13,0xb6,0x70,0x12,0x7e,0x70, +0x2, 0xac,0x70,0x2d,0x34,0xb, 0x38,0x30,0x2e,0x35,0x22,0x7a,0x35,0x22,0x5, 0x24, +0xb, 0x0, 0xe5,0x26,0xbc,0xb0,0x38,0xd4,0xe5,0x24,0x60,0x49,0xe5,0x24,0x1a,0x2b, +0x7e,0x35,0x22,0x12,0x48,0x53,0x7a,0x35,0x22,0x6c,0xff,0x80,0x32,0x1a,0x21,0x7e, +0x34,0x0, 0x17,0xad,0x32,0x1a,0xff,0x7d,0xe3,0x2d,0xef,0x9, 0xbe,0x13,0xb6,0xb4, +0x1, 0x1b,0x1a,0x21,0x7e,0x34,0x0, 0x18,0xad,0x32,0x7d,0x23,0x2d,0x2f,0x3e,0x24, +0x2e,0x27,0xf, 0xda,0xb, 0x28,0x30,0x9e,0x35,0x22,0x1b,0x28,0x30,0xb, 0xf0,0xe5, +0x26,0xbc,0xbf,0x18,0xc8,0xb, 0x10,0xa5,0xb9,0xd, 0x2, 0x80,0x3, 0x2, 0x20,0x59, +0x6c,0xaa,0x2, 0x22,0x30,0x7e,0x10,0x2, 0xac,0x1a,0x9, 0x30,0xd, 0x18,0x9, 0x20, +0xd, 0x19,0x7c,0xba,0xc4,0x23,0x54,0x1f,0xf5,0x25,0x7c,0xba,0x54,0x7, 0x7e,0x44, +0x0, 0x1, 0x60,0x5, 0x3e,0x44,0x14,0x78,0xfb,0x7c,0xe9,0xa5,0xbb,0x0, 0x2c,0x1a, +0xe3,0x7e,0xf4,0x0, 0x18,0xad,0xfe,0x1a,0x32,0x2d,0x3f,0x3e,0x34,0x2e,0x37,0xf, +0xda,0xb, 0x38,0x20,0x49,0x33,0x0, 0x30,0xbd,0x32,0x18,0x3, 0x2, 0x21,0xf5,0x1a, +0x33,0xb, 0x34,0x7c,0xb7,0x19,0xb0,0xd, 0x18,0x80,0x7a,0xa5,0xbb,0xc, 0x2c,0x1a, +0x23,0x7e,0x34,0x0, 0x18,0xad,0x32,0x1a,0x22,0x2d,0x23,0x3e,0x24,0x2e,0x27,0xf, +0xda,0xb, 0x28,0x30,0x49,0x2, 0xff,0xd0,0xbd,0x3, 0x8, 0x59,0x1a,0x33,0x1b,0x34, +0x7e,0x10,0x2, 0xac,0x1a,0x19,0x70,0xd, 0x18,0x80,0x4a,0x1a,0xe3,0x7e,0xf4,0x0, +0x18,0xad,0xfe,0x1a,0x32,0x2d,0x3f,0x3e,0x34,0x2e,0x37,0xf, 0xda,0x49,0x43,0x0, +0x30,0x49,0x3, 0xff,0xd0,0xbd,0x4, 0x8, 0x16,0xb, 0x38,0x20,0xbd,0x2, 0x8, 0x25, +0x1a,0x23,0x1b,0x24,0x7e,0x10,0x2, 0xac,0x1a,0x19,0x50,0xd, 0x18,0x80,0x16,0xb, +0x38,0x0, 0xbd,0x40,0x8, 0xf, 0x1a,0x33,0xb, 0x34,0x7c,0x37,0x7e,0x10,0x2, 0xac, +0x1a,0x19,0x30,0xd, 0x18,0x7e,0x70,0x2, 0xac,0x7a,0x9, 0x33,0xd, 0x18,0x1a,0x23, +0x7e,0x34,0x0, 0x18,0xad,0x32,0x1a,0x2, 0x2d,0x3, 0x3e,0x4, 0x2e,0x7, 0xf, 0xda, +0xb, 0x8, 0x0, 0xbe,0x4, 0x0, 0x3c,0x58,0x15,0x7c,0x7e,0x6e,0x70,0xff,0xe5,0x25, +0xa, 0x4b,0x2e,0x44,0xd, 0x68,0x7e,0x49,0xb0,0x5c,0xb7,0x7a,0x49,0xb0,0xb, 0xa0, +0xe5,0x21,0xbc,0xba,0x28,0x3, 0x2, 0x21,0x25,0xda,0x79,0x22,0xca,0xd8,0xca,0x79, +0x6c,0xaa,0x7e,0x34,0x11,0x9e,0x7e,0x44,0x11,0x4a,0xe4,0x7a,0xb3,0x16,0xbb,0x7e, +0xb3,0xe, 0xa, 0x54,0xfe,0x7a,0xb3,0xe, 0xa, 0x7e,0xb3,0xd, 0x17,0xbe,0xb0,0x0, +0x28,0x4f,0x7e,0x53,0xd, 0xf8,0xbe,0x50,0x0, 0x28,0x46,0x6c,0xff,0x80,0x3c,0x7e, +0x30,0x2, 0xac,0x3f,0x9, 0xd1,0xd, 0x40,0x9, 0xe1,0xd, 0x41,0x7e,0x30,0x2, 0xac, +0x3e,0x2d,0x13,0xb, 0x18,0x0, 0x6d,0x11,0x9e,0x17,0xf, 0x4c,0xbd,0x1, 0x58,0x19, +0x7e,0x30,0x2, 0xac,0x3d,0x2d,0x13,0x49,0x1, 0x0, 0x30,0x6d,0x11,0x9e,0x17,0xf, +0x4a,0xbd,0x1, 0x58,0x4, 0x5, 0x1d,0x80,0xb, 0xb, 0xf0,0xbc,0x5f,0x38,0xc0,0x80, +0x3, 0x75,0x1d,0x0, 0xe5,0x1d,0xbe,0xb0,0x3, 0x40,0x17,0x7e,0xb3,0xe, 0xa, 0x44, +0x1, 0x7a,0xb3,0xe, 0xa, 0x75,0x1d,0x0, 0x7e,0xb3,0x16,0xbb,0x44,0x1, 0x7a,0xb3, +0x16,0xbb,0x7e,0xb3,0xe, 0xa, 0x54,0xfd,0x7a,0xb3,0xe, 0xa, 0x7e,0xb3,0xd, 0x16, +0x70,0x59,0x7e,0x53,0xd, 0xf7,0xbe,0x50,0x0, 0x28,0x50,0x6c,0xff,0x80,0x48,0x7e, +0x30,0x2, 0xac,0x3f,0x9, 0xd1,0xd, 0x18,0x9, 0xe1,0xd, 0x19,0x7e,0x30,0x2, 0xac, +0x3d,0x2d,0x14,0x49,0x11,0x0, 0x30,0x6d,0x0, 0x9e,0x7, 0xd, 0xff,0xbd,0x10,0x48, +0xe, 0x7e,0x30,0x2, 0xac,0x3e,0x2d,0x14,0xb, 0x18,0x10,0xbd,0x10,0x58,0x16,0x7e, +0xb3,0xe, 0xa, 0x44,0x2, 0x7a,0xb3,0xe, 0xa, 0x7e,0xb3,0x16,0xbb,0x44,0x2, 0x7a, +0xb3,0x16,0xbb,0x80,0x6, 0xb, 0xf0,0xbc,0x5f,0x38,0xb4,0x7e,0xb3,0xe, 0x9, 0xb4, +0x1, 0x2, 0x80,0x3, 0x2, 0x23,0xdf,0x7e,0xb3,0xd, 0x16,0x70,0x6d,0x6c,0xff,0x80, +0x61,0x7e,0x50,0x2, 0xac,0x5f,0x7d,0x12,0x2d,0x14,0xb, 0x18,0x10,0xbe,0x17,0xd, +0xff,0x8, 0x4d,0x2d,0x23,0xb, 0x28,0x20,0xbe,0x27,0xd, 0xff,0x58,0x42,0xbe,0xf1, +0x1e,0x68,0x6, 0x7a,0xf1,0x1e,0x75,0x1f,0x0, 0xbe,0xf1,0x1e,0x78,0x2, 0x5, 0x1f, +0xe5,0x1f,0xbe,0xb0,0x10,0x28,0x33,0x75,0x1f,0x10,0xe5,0x51,0x70,0x16,0x7e,0xb3, +0xe, 0xa, 0x44,0x4, 0x7a,0xb3,0xe, 0xa, 0x7e,0xb3,0x16,0xbb,0x44,0x4, 0x7a,0xb3, +0x16,0xbb,0x80,0x16,0x7e,0xb3,0xe, 0xa, 0x54,0xfb,0x7a,0xb3,0xe, 0xa, 0x80,0xa, +0xb, 0xf0,0x7e,0xb3,0x10,0x2c,0xbc,0xbf,0x38,0x97,0x6c,0xaa,0x6c,0xff,0x80,0x17, +0x7e,0x70,0x2, 0xac,0x7f,0x2d,0x34,0xb, 0x38,0x30,0xbe,0x37,0xd, 0xff,0x8, 0x5, +0x7e,0xa0,0x1, 0x80,0xa, 0xb, 0xf0,0x7e,0xb3,0x10,0x2c,0xbc,0xbf,0x38,0xe1,0x4c, +0xaa,0x78,0x1a,0x7e,0xb3,0xe, 0xa, 0x54,0xfb,0x7a,0xb3,0xe, 0xa, 0x75,0x1e,0xff, +0x75,0x1f,0x0, 0x7e,0xb3,0x16,0xbb,0x54,0xfb,0x7a,0xb3,0x16,0xbb,0x7e,0xb3,0xe, +0xa, 0x54,0xf7,0x7a,0xb3,0xe, 0xa, 0x7e,0x73,0xd, 0xfa,0xa, 0x27,0x7e,0x73,0xd, +0xf9,0xa, 0x37,0x2d,0x32,0xbe,0x37,0xe, 0x3, 0x28,0x14,0x7e,0xb3,0xe, 0xa, 0x44, +0x8, 0x7a,0xb3,0xe, 0xa, 0x7e,0xb3,0x16,0xbb,0x44,0x8, 0x7a,0xb3,0x16,0xbb,0x7e, +0xb3,0xe, 0xa, 0x44,0x10,0x7a,0xb3,0xe, 0xa, 0x6c,0xff,0x80,0x49,0x7e,0x50,0x2, +0xac,0x5f,0x9, 0xd2,0xd, 0x18,0x9, 0xe2,0xd, 0x19,0x7e,0x70,0x18,0xac,0x7d,0xa, +0x1e,0x2d,0x31,0x3e,0x34,0x2e,0x37,0xf, 0xda,0xb, 0x38,0x30,0x49,0x22,0x10,0x3, +0x9d,0x32,0x7a,0x35,0x21,0x12,0x6e,0x11,0xbe,0x37,0xe, 0x1, 0x28,0x16,0x7e,0xb3, +0xe, 0xa, 0x54,0xef,0x7a,0xb3,0xe, 0xa, 0x7e,0xb3,0x16,0xbb,0x44,0x10,0x7a,0xb3, +0x16,0xbb,0x80,0xa, 0xb, 0xf0,0x7e,0x73,0xd, 0xf7,0xbc,0x7f,0x38,0xaf,0x7e,0x34, +0x10,0x3, 0x7e,0x24,0x0, 0x28,0xe4,0x12,0x6e,0x21,0x6c,0xff,0x80,0x25,0x7e,0x50, +0x2, 0xac,0x5f,0x9, 0xd2,0xd, 0x18,0x9, 0xe2,0xd, 0x19,0x7e,0x70,0x18,0xac,0x7d, +0xa, 0x1e,0x2d,0x31,0x3e,0x34,0x2e,0x37,0xf, 0xda,0xb, 0x38,0x30,0x59,0x32,0x10, +0x3, 0xb, 0xf0,0x7e,0x73,0xd, 0xf7,0xbc,0x7f,0x38,0xd3,0xda,0x79,0xda,0xd8,0x22, +0xca,0x3b,0x6d,0x33,0x7a,0x35,0x21,0x75,0x25,0x0, 0x75,0x26,0x0, 0x7e,0x23,0xd, +0xf7,0x7a,0x21,0x23,0x7e,0x37,0xf, 0xda,0x7a,0x37,0x13,0xb6,0x7e,0x30,0x2, 0xac, +0x23,0x7e,0x24,0xd, 0x18,0x7e,0x34,0x13,0xb8,0x12,0x6d,0x7d,0xe5,0x23,0xbe,0xb0, +0xa, 0x38,0x3, 0x2, 0x26,0xd5,0x75,0x24,0x0, 0x6c,0xff,0x2, 0x25,0xe9,0x7e,0x34, +0x3, 0xff,0x7a,0x35,0x27,0x75,0x26,0xff,0x6c,0xee,0x80,0x7e,0x7e,0x70,0x2, 0xac, +0x7e,0x9, 0xb3,0x13,0xb8,0xbe,0xb0,0xff,0x68,0x6e,0x7c,0xbe,0xc4,0x23,0x54,0x1f, +0x7c,0xab,0x7a,0xa1,0x2b,0x7c,0xbe,0x54,0x7, 0x7e,0x24,0x0, 0x1, 0x60,0x5, 0x3e, +0x24,0x14,0x78,0xfb,0x7c,0xb5,0xf5,0x2c,0xa, 0x2a,0x9, 0xb2,0xd, 0x68,0x55,0x2c, +0x68,0x46,0x9, 0x73,0x13,0xb9,0xa, 0x27,0x74,0x2, 0xac,0xbf,0x9, 0x75,0x15,0xa3, +0xa, 0x37,0x9d,0x32,0x12,0x6e,0x11,0x7d,0x63,0x74,0x2, 0xac,0xbe,0x9, 0x75,0x13, +0xb8,0xa, 0x27,0x74,0x2, 0xac,0xbf,0x9, 0x75,0x15,0xa2,0xa, 0x37,0x9d,0x32,0x12, +0x6e,0x11,0x2d,0x36,0x7a,0x35,0x29,0x7e,0x35,0x27,0xbe,0x35,0x29,0x28,0x9, 0x7e, +0x35,0x29,0x7a,0x35,0x27,0x7a,0xe1,0x26,0xb, 0xe0,0xe5,0x23,0xbc,0xbe,0x28,0x3, +0x2, 0x25,0x1c,0xe5,0x26,0xbe,0xb0,0xff,0x68,0x3d,0x7e,0x71,0x26,0x74,0x2, 0xac, +0x7b,0x9, 0x33,0x13,0xb8,0x7e,0x50,0x18,0xac,0x53,0x9, 0xa3,0x13,0xb9,0xa, 0xa, +0x2d,0x20,0x3e,0x24,0x2e,0x27,0x13,0xb6,0xb, 0x28,0x20,0xbe,0x24,0x0, 0x3c,0x48, +0x16,0xe5,0x24,0x1a,0x2b,0x3e,0x24,0x19,0x32,0x13,0xe0,0x19,0xa2,0x13,0xe1,0x74, +0xff,0x19,0xb3,0x13,0xb8,0x5, 0x24,0xb, 0xf0,0xe5,0x11,0xbc,0xbf,0x28,0x3, 0x2, +0x25,0xe, 0x7e,0xf1,0x24,0x2, 0x26,0xbb,0x6d,0x33,0x7a,0x35,0x21,0x7e,0xa0,0xff, +0x6c,0xee,0x2, 0x26,0x8d,0x7c,0xbe,0xc4,0x23,0x54,0x1f,0x7c,0x7b,0x7a,0x71,0x2b, +0x7c,0xbe,0x54,0x7, 0x7e,0x44,0x0, 0x1, 0x60,0x5, 0x3e,0x44,0x14,0x78,0xfb,0x7c, +0xb9,0xf5,0x2c,0xa, 0x37,0x9, 0xb3,0xd, 0x68,0x55,0x2c,0x68,0x5e,0x7e,0x90,0x2, +0xac,0x9e,0x9, 0x44,0x13,0xb8,0xbe,0x40,0xff,0x68,0x50,0x7e,0x50,0x18,0xac,0x45, +0x9, 0xb4,0x13,0xb9,0xa, 0x3b,0x2d,0x23,0x3e,0x24,0x2e,0x27,0x13,0xb6,0xb, 0x28, +0x30,0xbe,0x34,0x0, 0x0, 0x58,0x5, 0x6d,0x33,0x1b,0x28,0x30,0x7e,0x50,0x2, 0xac, +0x5e,0x9, 0x62,0x13,0xb8,0x7e,0x30,0x18,0xac,0x36,0x9, 0x72,0x13,0xb9,0xa, 0x7, +0x2d,0x10,0x3e,0x14,0x2e,0x17,0x13,0xb6,0xb, 0x18,0x40,0xbe,0x45,0x21,0x8, 0xb, +0x7a,0x61,0x25,0x7a,0x71,0x26,0x7a,0x45,0x21,0x7c,0xae,0xb, 0xe0,0xe5,0x23,0xbc, +0xbe,0x28,0x3, 0x2, 0x26,0x5, 0xbe,0xa0,0xff,0x68,0x1e,0x7e,0x71,0x25,0x7e,0x90, +0x2, 0xac,0x9f,0x19,0x74,0x13,0xe0,0xe5,0x26,0x19,0xb4,0x13,0xe1,0x7e,0x70,0xff, +0x7e,0x50,0x2, 0xac,0x5a,0x19,0x72,0x13,0xb8,0xb, 0xf0,0xbe,0xf0,0xa, 0x50,0x3, +0x2, 0x25,0xf8,0x7e,0x24,0x13,0xe0,0x7e,0x34,0x13,0xb8,0x7e,0x14,0x0, 0x28,0x12, +0x6d,0x7d,0x75,0x23,0xa, 0x7e,0x34,0x15,0xa2,0x7e,0x24,0x0, 0x14,0x74,0xff,0x12, +0x6e,0x21,0xe5,0x23,0xbe,0xb0,0x0, 0x28,0x55,0x7e,0x31,0x23,0x74,0x2, 0xac,0x3b, +0x7e,0x24,0x13,0xb8,0x7e,0x34,0xd, 0x18,0x12,0x6d,0x7d,0x7e,0x31,0x23,0x74,0x2, +0xac,0x3b,0x7e,0x24,0x13,0xb8,0x7e,0x34,0x15,0xa2,0x12,0x6d,0x7d,0x6c,0xff,0x80, +0x27,0x7c,0xbf,0x54,0x7, 0x7e,0x34,0x0, 0x1, 0x60,0x5, 0x3e,0x34,0x14,0x78,0xfb, +0x7c,0x67,0x7c,0xbf,0xc4,0x23,0x54,0x1f,0xa, 0x2b,0x2e,0x24,0xd, 0x68,0x7e,0x29, +0x70,0x4c,0x76,0x7a,0x29,0x70,0xb, 0xf0,0xe5,0x23,0xbc,0xbf,0x38,0xd3,0x85,0x23, +0x11,0xe5,0x23,0x7a,0xb3,0xd, 0xf7,0xda,0x3b,0x22,0x7c,0x7b,0xbe,0x70,0x10,0x40, +0x12,0xbe,0x70,0x4b,0x38,0xd, 0xa, 0x37,0x2e,0x37,0x0, 0xfb,0x9e,0x34,0x0, 0x10, +0x2, 0x29,0x85,0xa5,0xbf,0x0, 0x3, 0xe5,0xb, 0x22,0xa5,0xbf,0x1, 0x3, 0xe5,0xd, +0x22,0xa5,0xbf,0x2, 0x5, 0x7e,0xb3,0xf, 0x28,0x22,0xbe,0x70,0x3, 0x40,0x12,0xbe, +0x70,0x5, 0x38,0xd, 0xa, 0x37,0x2e,0x34,0x10,0x2b,0x9e,0x34,0x0, 0x3, 0x2, 0x29, +0x85,0xa5,0xbf,0x6, 0x3, 0x74,0x1, 0x22,0xa5,0xbf,0x7, 0x5, 0x7e,0xb3,0x10,0x4b, +0x22,0xa5,0xbf,0x8, 0x10,0x7e,0xb3,0x10,0x3b,0x70,0x5, 0x7e,0xb3,0xa, 0xac,0x22, +0x7e,0xb3,0x11,0x16,0x22,0xa5,0xbf,0x9, 0x10,0x7e,0xb3,0x10,0x3b,0x70,0x5, 0x7e, +0xb3,0xa, 0xad,0x22,0x7e,0xb3,0x11,0x49,0x22,0xa5,0xbf,0xa, 0x5, 0x7e,0xb3,0x10, +0x3b,0x22,0xa5,0xbf,0xb, 0x10,0x7e,0xb3,0x10,0x3b,0x70,0x5, 0x7e,0xb3,0xa, 0xae, +0x22,0x7e,0xb3,0x11,0x94,0x22,0xa5,0xbf,0xc, 0x10,0x7e,0xb3,0x10,0x3b,0x70,0x5, +0x7e,0xb3,0xd, 0xfe,0x22,0x7e,0xb3,0x11,0x9d,0x22,0xa5,0xbf,0x4c,0x5, 0x7e,0xb3, +0xf, 0x46,0x22,0xa5,0xbf,0xfb,0x3, 0xe5,0x8, 0x22,0xa5,0xbf,0x4e,0x5, 0x7e,0xb3, +0x10,0x4a,0x22,0xbe,0x70,0x50,0x40,0x12,0xbe,0x70,0x51,0x38,0xd, 0xa, 0x37,0x2e, +0x37,0x10,0x2f,0x9e,0x34,0x0, 0x50,0x2, 0x29,0x85,0xbe,0x70,0x52,0x40,0x12,0xbe, +0x70,0x55,0x38,0xd, 0xa, 0x37,0x2e,0x37,0x10,0x31,0x9e,0x34,0x0, 0x52,0x2, 0x29, +0x85,0xbe,0x70,0x56,0x40,0x12,0xbe,0x70,0x62,0x38,0xd, 0xa, 0x37,0x2e,0x37,0x10, +0x33,0x9e,0x34,0x0, 0x56,0x2, 0x29,0x85,0xbe,0x70,0x63,0x40,0x12,0xbe,0x70,0x7a, +0x38,0xd, 0xa, 0x37,0x2e,0x37,0x10,0x35,0x9e,0x34,0x0, 0x63,0x2, 0x29,0x85,0xbe, +0x70,0x7b,0x50,0x3, 0x2, 0x29,0x19,0xbe,0x70,0x9f,0x28,0x3, 0x2, 0x29,0x19,0x7e, +0xb3,0x10,0x3b,0x70,0x4a,0xa, 0x27,0x9e,0x24,0x0, 0x7b,0xbe,0x24,0x0, 0x18,0x58, +0x22,0xa, 0x37,0x2e,0x37,0x10,0x35,0x9e,0x34,0x0, 0x7b,0x7e,0x39,0xa0,0x7c,0xba, +0x30,0xe0,0xc, 0xa, 0x5a,0x2e,0x54,0x0, 0x18,0xe, 0x54,0x7c,0xab,0x80,0x19,0x1e, +0xa0,0x80,0x15,0xa, 0x37,0x2e,0x37,0x10,0x33,0x9e,0x34,0x0, 0x93,0x7e,0x39,0x70, +0xa, 0x57,0x2e,0x54,0x0, 0x18,0x7c,0xab,0xa, 0x3a,0x9, 0xb3,0xf, 0xdc,0x22,0xa, +0x27,0x9e,0x24,0x0, 0x7b,0xbe,0x24,0x0, 0x18,0x58,0x22,0xa, 0x37,0x2e,0x37,0x10, +0x35,0x9e,0x34,0x0, 0x7b,0x7e,0x39,0xa0,0x7c,0xba,0x30,0xe0,0xc, 0xa, 0x5a,0x2e, +0x54,0x0, 0x18,0xe, 0x54,0x7c,0xab,0x80,0x19,0x1e,0xa0,0x80,0x15,0xa, 0x37,0x2e, +0x37,0x10,0x33,0x9e,0x34,0x0, 0x93,0x7e,0x39,0x70,0xa, 0x57,0x2e,0x54,0x0, 0x18, +0x7c,0xab,0xa, 0x3a,0x9, 0xb3,0xf, 0x63,0x22,0xbe,0x70,0xa0,0x40,0x11,0xbe,0x70, +0xac,0x38,0xc, 0xa, 0x37,0x2e,0x37,0x10,0x6c,0x9e,0x34,0x0, 0xa0,0x80,0x56,0xbe, +0x70,0xad,0x40,0x11,0xbe,0x70,0xb9,0x38,0xc, 0xa, 0x37,0x2e,0x37,0x10,0x6e,0x9e, +0x34,0x0, 0xad,0x80,0x40,0xbe,0x70,0xba,0x40,0x11,0xbe,0x70,0xd1,0x38,0xc, 0xa, +0x37,0x2e,0x37,0x10,0x70,0x9e,0x34,0x0, 0xba,0x80,0x2a,0xbe,0x70,0xd2,0x40,0x11, +0xbe,0x70,0xd5,0x38,0xc, 0xa, 0x37,0x2e,0x37,0x10,0x72,0x9e,0x34,0x0, 0xd2,0x80, +0x14,0xbe,0x70,0xd6,0x40,0x13,0xbe,0x70,0xed,0x38,0xe, 0xa, 0x37,0x2e,0x37,0x10, +0x74,0x9e,0x34,0x0, 0xd6,0x7e,0x39,0xb0,0x22,0xa5,0xbf,0xf8,0x5, 0x7e,0xb3,0x11, +0xe8,0x22,0xa5,0xbf,0xfe,0x3, 0xe5,0xc, 0x22,0x74,0xff,0x22,0xca,0x3b,0x7e,0x34, +0x22,0xc4,0x7a,0x35,0x25,0x7e,0x34,0x13,0xff,0x7e,0x24,0x0, 0x18,0xe4,0x12,0x6e, +0x21,0x75,0x24,0x1, 0x7e,0x73,0x10,0x4d,0x7a,0x73,0x13,0xb6,0xe4,0x7a,0xb3,0x10, +0x4d,0x75,0x22,0x0, 0x6c,0xee,0x80,0x12,0xa, 0x3e,0x2e,0x37,0x10,0x6e,0x7e,0x39, +0xb0,0xbe,0xb1,0x22,0x40,0x2, 0xf5,0x22,0xb, 0xe0,0x7e,0x73,0x10,0x2b,0xbc,0x7e, +0x38,0xe6,0xe5,0x22,0xbe,0xb0,0x1f,0x50,0xe, 0xe5,0x22,0xa, 0x4b,0x7e,0x54,0x0, +0x1f,0x9d,0x54,0xf5,0x22,0x80,0x3, 0x75,0x22,0x0, 0x85,0x22,0x21,0x7e,0x34,0x10, +0x2b,0x12,0x31,0xfb,0x7e,0x34,0x10,0x2b,0x12,0x6a,0xa5,0x2, 0x2b,0x9a,0x6d,0x33, +0x7a,0x37,0x10,0x1, 0x7e,0x34,0xd, 0xac,0x7a,0x37,0xa, 0xaf,0x12,0x6f,0x10,0x12, +0x69,0x64,0x12,0x6e,0xb9,0x60,0xfb,0xa9,0xb7,0xea,0x7e,0x37,0xf, 0xda,0x7e,0x27, +0xf, 0xd8,0x7e,0x14,0x18,0x0, 0x12,0x67,0xe2,0x6c,0xee,0x80,0x78,0x6c,0xff,0x80, +0x6a,0x4c,0xee,0x78,0x11,0xe4,0xa, 0x3f,0x19,0xb3,0x13,0xe7,0x6d,0x33,0x74,0x2, +0xac,0xbf,0x59,0x35,0x13,0xb7,0xbe,0xf0,0x17,0x78,0x13,0x7e,0x34,0x0, 0x1, 0x7c, +0xbe,0x60,0x5, 0x3e,0x34,0x14,0x78,0xfb,0x5e,0x34,0x4, 0x44,0x68,0x3b,0x7e,0x50, +0x30,0xac,0x5e,0x7e,0x70,0x2, 0xac,0x7f,0x2d,0x32,0x2e,0x37,0xf, 0xda,0xb, 0x38, +0x10,0xe, 0x14,0xe, 0x14,0xe, 0x14,0xe, 0x14,0xe, 0x14,0x7e,0x50,0x2, 0xac,0x5f, +0x2e,0x24,0x13,0xb7,0xb, 0x28,0x30,0x2d,0x31,0x1b,0x28,0x30,0xa, 0x3f,0x2e,0x34, +0x13,0xe7,0x7e,0x39,0xb0,0x4, 0x7a,0x39,0xb0,0xb, 0xf0,0x7e,0x73,0x10,0x2c,0xbc, +0x7f,0x38,0x8e,0xb, 0xe0,0x7e,0x73,0x10,0x2b,0xbc,0x7e,0x38,0x80,0x75,0x23,0x0, +0x6c,0xee,0x2, 0x2b,0x78,0xa, 0x3e,0x9, 0xa3,0x13,0xe7,0x4c,0xaa,0x78,0xf, 0x7e, +0x44,0x22,0xc4,0x7e,0x70,0x2, 0xac,0x7e,0x59,0x43,0x13,0xb7,0x80,0x25,0x7e,0x50, +0x2, 0xac,0x5e,0x49,0x12,0x13,0xb7,0xa, 0xa, 0x8d,0x10,0x59,0x12,0x13,0xb7,0x2e, +0x24,0x13,0xb7,0xb, 0x28,0x30,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x3e,0x34, +0x1b,0x28,0x30,0x7e,0x34,0x22,0xc4,0x7a,0x35,0x25,0x7e,0x64,0x3, 0xe8,0x7e,0x70, +0x2, 0xac,0x7e,0x49,0x23,0x13,0xb7,0x7e,0x15,0x25,0x9d,0x16,0xbd,0x21,0x50,0x23, +0xa, 0x1e,0x2e,0x14,0x13,0xff,0x7e,0x19,0xb0,0x4, 0x7a,0x19,0xb0,0xa, 0x1e,0x2e, +0x17,0x10,0x74,0x7e,0x19,0xb0,0xbe,0xb1,0x22,0x50,0x32,0x4, 0x7a,0x19,0xb0,0x80, +0x35,0x80,0x2a,0x7d,0x36,0x2e,0x35,0x25,0xbd,0x23,0x28,0x28,0xa, 0x3e,0x2e,0x34, +0x13,0xff,0x7e,0x39,0xb0,0x4, 0x7a,0x39,0xb0,0xa, 0x3e,0x2e,0x37,0x10,0x74,0x7e, +0x39,0xb0,0xbe,0xb0,0x0, 0x28,0x6, 0x14,0x7a,0x39,0xb0,0x80,0x9, 0x5, 0x23,0x75, +0x24,0x0, 0x80,0x2, 0x5, 0x23,0xb, 0xe0,0x7e,0x73,0x10,0x2c,0xbc,0x7e,0x28,0x3, +0x2, 0x2a,0xc5,0x7e,0x34,0x10,0x2b,0x12,0x31,0xfb,0x7e,0x34,0x10,0x2b,0x12,0x6a, +0xa5,0x7e,0x73,0x10,0x2c,0xbe,0x71,0x23,0x68,0xf, 0x7e,0xa1,0x21,0x7c,0xba,0x14, +0xf5,0x21,0x4c,0xaa,0x68,0x3, 0x2, 0x2a,0xe, 0x7e,0x73,0x13,0xb6,0x7a,0x73,0x10, +0x4d,0x6c,0xff,0x80,0x12,0xa, 0x3f,0x9, 0x73,0x13,0xff,0xbe,0x71,0x22,0x78,0x5, +0x75,0x24,0x0, 0x80,0xa, 0xb, 0xf0,0x7e,0x73,0x10,0x2c,0xbc,0x7f,0x38,0xe6,0xe5, +0x24,0xda,0x3b,0x22,0x0, 0x0, 0x3, 0xe0,0x3, 0xff,0x3, 0xff,0x0, 0x20,0x0, 0x41, +0x0, 0x42,0x0, 0x22,0x3, 0xe0,0x3, 0xbe,0x3, 0x9c,0x3, 0xdd,0x0, 0x40,0x0, 0xa3, +0x0, 0xa5,0x0, 0x44,0x3, 0xc0,0x3, 0x5c,0x3, 0x5a,0x3, 0xbb,0x0, 0x60,0x0, 0xe5, +0x0, 0xe8,0x0, 0x66,0x3, 0xa0,0x3, 0x1a,0x2, 0xf7,0x3, 0x99,0x0, 0x80,0x1, 0x47, +0x1, 0x4b,0x0, 0x88,0x3, 0x80,0x2, 0xb8,0x2, 0xb4,0x3, 0x77,0x0, 0xa0,0x1, 0x89, +0x1, 0xad,0x0, 0xaa,0x3, 0x60,0x2, 0x56,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb, +0x1, 0xcf,0x0, 0xcb,0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb, +0x1, 0xcf,0x0, 0xcb,0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb, +0x1, 0xcf,0x0, 0xcb,0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb, +0x1, 0xcf,0x0, 0xcb,0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb, +0x1, 0xcf,0x0, 0xcb,0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb, +0x1, 0xcf,0x0, 0xcb,0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb, +0x1, 0xcf,0x0, 0xcb,0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb, +0x1, 0xcf,0x0, 0xcb,0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb, +0x1, 0xcf,0x0, 0xcb,0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb, +0x1, 0xcf,0x0, 0xcb,0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb, +0x1, 0xcf,0x0, 0xcb,0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb, +0x1, 0xcf,0x0, 0xcb,0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb, +0x1, 0xcf,0x0, 0xcb,0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb, +0x1, 0xcf,0x0, 0xcb,0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb, +0x1, 0xcf,0x0, 0xcb,0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb, +0x1, 0xcf,0x0, 0xcb,0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb, +0x1, 0xcf,0x0, 0xcb,0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb, +0x1, 0xcf,0x0, 0xcb,0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb, +0x1, 0xcf,0x0, 0xcb,0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb, +0x1, 0xcf,0x0, 0xcb,0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb, +0x1, 0xcf,0x0, 0xcb,0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb, +0x1, 0xcf,0x0, 0xaa,0x3, 0x60,0x2, 0x76,0x2, 0x93,0x3, 0x77,0x0, 0xa0,0x1, 0x69, +0x1, 0x6c,0x0, 0x88,0x3, 0x80,0x2, 0xd8,0x2, 0xd5,0x3, 0x99,0x0, 0x80,0x1, 0x27, +0x1, 0x9, 0x0, 0x66,0x3, 0xa0,0x3, 0x3a,0x3, 0x38,0x3, 0xbb,0x0, 0x60,0x0, 0xc5, +0x0, 0xc6,0x0, 0x44,0x3, 0xc0,0x3, 0x7c,0x3, 0x7b,0x3, 0xdd,0x0, 0x40,0x0, 0x83, +0x0, 0x64,0x0, 0x22,0x3, 0xe0,0x3, 0xde,0x3, 0xde,0x3, 0xff,0x0, 0x20,0x0, 0x21, +0x0, 0x21,0x0, 0x0, 0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb, +0x1, 0xcf,0x0, 0xcb,0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb, +0x1, 0xcf,0x0, 0xcb,0xca,0x3b,0x7e,0xb3,0x10,0x3c,0xf5,0x21,0xe4,0x7a,0xb3,0x10, +0x3c,0x7e,0xb3,0x10,0x3a,0xf5,0x22,0x74,0x3, 0x7a,0xb3,0x10,0x3a,0x7e,0x37,0x10, +0x48,0x7e,0x24,0x0, 0x25,0xe4,0x12,0x6e,0x21,0x7e,0xe0,0x7, 0x6d,0x33,0x7a,0x37, +0x10,0x1, 0x7e,0x34,0xd, 0xac,0x7a,0x37,0xa, 0xaf,0x12,0x6f,0x10,0x6c,0xdd,0x7e, +0x14,0x0, 0x1, 0x7c,0xbe,0x60,0x5, 0x3e,0x14,0x14,0x78,0xfb,0xa, 0x2d,0x2e,0x27, +0x10,0x48,0x7e,0x29,0x70,0x4c,0x73,0x7a,0x29,0x70,0xb, 0xd0,0xbe,0xd0,0x25,0x78, +0xde,0x7e,0x34,0x10,0x2b,0x12,0x5b,0x6c,0x7e,0x34,0x10,0x2b,0x12,0x65,0x59,0x12, +0x6e,0xc2,0x60,0xfb,0x7e,0x37,0xf, 0xd6,0x7e,0x25,0x6f,0x12,0x55,0x3a,0x6c,0xdd, +0xbe,0xd0,0x18,0x50,0x1e,0xa, 0x3d,0x2e,0x37,0x10,0x35,0x7e,0x39,0xf0,0x7c,0xbf, +0x30,0xe0,0xc, 0xa, 0x3f,0x2e,0x34,0x0, 0x18,0xe, 0x34,0x7c,0xf7,0x80,0x16,0x1e, +0xf0,0x80,0x12,0xa, 0x3d,0x2e,0x37,0x10,0x33,0x9, 0x73,0xff,0xe8,0xa, 0x37,0x2e, +0x34,0x0, 0x18,0x7c,0xf7,0x7e,0x70,0x2, 0xac,0x7d,0x2e,0x37,0xf, 0xd6,0xb, 0x38, +0x30,0xbe,0x34,0x25,0x80,0x18,0x21,0x7e,0x34,0x0, 0x1, 0x7c,0xbe,0x60,0x5, 0x3e, +0x34,0x14,0x78,0xfb,0x7d,0x13,0x6e,0x14,0xff,0xff,0xa, 0x2f,0x2e,0x27,0x10,0x48, +0x7e,0x29,0x70,0x5c,0x73,0x7a,0x29,0x70,0xb, 0xd0,0xbe,0xd0,0x25,0x78,0x91,0x1b, +0xe0,0xbe,0xe0,0x0, 0x48,0x3, 0x2, 0x2e,0x1c,0x7e,0xe0,0xa, 0x74,0x2, 0x7a,0xb3, +0x10,0x3a,0x2, 0x2f,0xeb,0x6d,0x33,0x7a,0x37,0x10,0x1, 0x7e,0x34,0xd, 0xac,0x7a, +0x37,0xa, 0xaf,0x12,0x6f,0x10,0x7e,0x73,0x10,0x2b,0xa, 0x37,0x7e,0x53,0x10,0x2c, +0xa, 0x65,0x2d,0x63,0x7c,0xcd,0x6c,0xdd,0x2, 0x2f,0xb3,0x7e,0xa3,0x10,0x2c,0xbc, +0xad,0x28,0x27,0xa, 0x3d,0x2e,0x37,0x10,0x35,0x7e,0x39,0xf0,0x7c,0xbf,0x30,0xe0, +0xc, 0xa, 0x3f,0x2e,0x34,0x0, 0x18,0xe, 0x34,0x7c,0xf7,0x80,0x2, 0x1e,0xf0,0x7e, +0x70,0x2, 0xac,0x7d,0x2e,0x37,0xf, 0xd6,0x80,0x27,0xa, 0x2a,0xa, 0x3d,0x9d,0x32, +0x2e,0x37,0x10,0x33,0x7e,0x39,0xb0,0xa, 0x3b,0x2e,0x34,0x0, 0x18,0x7c,0xf7,0x7e, +0x70,0x2, 0xac,0x7d,0x2e,0x37,0xf, 0xd6,0x2e,0x34,0x0, 0x30,0x74,0x2, 0xa4,0x9d, +0x35,0xb, 0x38,0x30,0x7a,0x35,0x23,0xbe,0x34,0x2e,0xe0,0x8, 0x18,0x4c,0xee,0x68, +0x30,0xa, 0x2f,0x2e,0x27,0x10,0x48,0x7e,0x29,0xb0,0xbe,0xb0,0xfe,0x50,0x22,0x4, +0x7a,0x29,0xb0,0x80,0x1c,0xbe,0x34,0x17,0x70,0x58,0x14,0xa, 0x3f,0x2e,0x37,0x10, +0x48,0x7e,0x39,0xb0,0xbe,0xb0,0x0, 0x28,0x8, 0x14,0x7a,0x39,0xb0,0x80,0x2, 0x1b, +0xc0,0xb, 0xd0,0x7e,0x73,0x10,0x2b,0xa, 0x37,0x7e,0x53,0x10,0x2c,0xa, 0x25,0x2d, +0x23,0xa, 0x3d,0xbd,0x32,0x58,0x3, 0x2, 0x2f,0x1b,0x4c,0xcc,0x68,0x28,0x7e,0x34, +0x10,0x2b,0x12,0x5b,0x6c,0x7e,0x34,0x10,0x2b,0x12,0x65,0x59,0x12,0x6e,0xc2,0x60, +0xfb,0x7e,0x37,0xf, 0xd6,0x7e,0x25,0x6f,0x12,0x55,0x3a,0x7c,0xae,0x1b,0xe0,0x4c, +0xaa,0x68,0x3, 0x2, 0x2e,0xf5,0xe5,0x21,0x7a,0xb3,0x10,0x3c,0xe5,0x22,0x7a,0xb3, +0x10,0x3a,0xda,0x3b,0x22,0xca,0xf8,0x6c,0xff,0x7e,0x24,0x15,0x56,0x7e,0x34,0x13, +0xfe,0x7e,0x14,0x0, 0x48,0x12,0x6d,0x7d,0x7e,0x24,0xe, 0xd, 0x7e,0x34,0x13,0xb6, +0x7e,0x14,0x0, 0x46,0x12,0x6d,0x7d,0x7e,0x73,0xf, 0x1b,0x7a,0x73,0x13,0xfc,0x7e, +0x73,0xf, 0x1c,0x7a,0x73,0x13,0xfd,0x7e,0xa3,0x13,0xfc,0xbe,0xa0,0x1, 0x38,0x3, +0x7e,0xf0,0x1, 0x7e,0xb3,0xf, 0x1c,0x70,0x3, 0xe4,0x80,0x10,0x7e,0xb3,0x15,0xa1, +0x4, 0x7a,0xb3,0x15,0xa1,0xbe,0xb0,0xc8,0x28,0x6, 0x74,0x14,0x7a,0xb3,0x15,0xa1, +0x7e,0xb3,0x15,0xa1,0xbe,0xb0,0x6, 0x50,0x3, 0x7e,0xf0,0x1, 0xbe,0xa0,0x1, 0x28, +0x3f,0x7e,0x34,0x0, 0x21,0x7e,0x24,0x0, 0x23,0x7e,0x14,0x13,0xfe,0x12,0x66,0x16, +0x7e,0x34,0x0, 0x25,0x7e,0x24,0x0, 0x27,0x7e,0x14,0x13,0xb6,0x12,0x66,0x16,0x7e, +0x35,0x25,0x9e,0x35,0x21,0x12,0x6e,0x11,0xbe,0x34,0x0, 0x80,0x18,0xf, 0x7e,0x35, +0x27,0x9e,0x35,0x23,0x12,0x6e,0x11,0xbe,0x34,0x0, 0x80,0x8, 0x3, 0x7e,0xf0,0x1, +0xbe,0xf0,0x0, 0x28,0x3, 0x2, 0x31,0x63,0x7e,0xf3,0x15,0x9f,0xbe,0xf3,0x15,0x29, +0x50,0x55,0x7e,0x73,0x15,0x29,0xbe,0x73,0x13,0xfc,0x28,0x12,0x7e,0x24,0x15,0x56, +0x7e,0x34,0x14,0xe3,0x7e,0x14,0x0, 0x48,0x12,0x6d,0x7d,0x2, 0x31,0x63,0x7e,0x73, +0x15,0x9e,0xbe,0x70,0x2, 0x58,0x22,0x7e,0x24,0x15,0x56,0x7e,0x34,0x14,0xe3,0x7e, +0x14,0x0, 0x48,0x12,0x6d,0x7d,0x74,0x1, 0x7a,0xb3,0x15,0xa0,0xe4,0x7a,0xb3,0x15, +0x53,0x7e,0xb3,0x15,0x9e,0x4, 0x2, 0x31,0x9f,0x74,0x1, 0x7a,0xb3,0x15,0xa0,0xe4, +0x7a,0xb3,0x15,0x53,0x2, 0x31,0x9f,0xbe,0xf3,0x15,0x29,0x78,0x2d,0x7e,0xa3,0x15, +0x29,0xbe,0xa3,0x13,0xfc,0x50,0xd, 0x74,0x1, 0x7a,0xb3,0x15,0xa0,0xe4,0x7a,0xb3, +0x15,0x53,0x80,0x6b,0xbe,0xa3,0x13,0xfc,0x28,0x4, 0x74,0x1, 0x80,0x1, 0xe4,0x7a, +0xb3,0x15,0xa0,0xe4,0x7a,0xb3,0x15,0x53,0x80,0x55,0x7e,0x73,0x15,0x29,0xbe,0x73, +0x13,0xfc,0x50,0x1a,0x7e,0x24,0x15,0x56,0x7e,0x34,0x14,0xe3,0x7e,0x14,0x0, 0x48, +0x12,0x6d,0x7d,0xe4,0x7a,0xb3,0x15,0xa0,0x7a,0xb3,0x15,0x53,0x80,0x31,0x7e,0x73, +0x15,0x53,0xbe,0x70,0x2, 0x58,0x1c,0x7e,0x24,0x15,0x56,0x7e,0x34,0x14,0xe3,0x7e, +0x14,0x0, 0x48,0x12,0x6d,0x7d,0x74,0x1, 0x7a,0xb3,0x15,0xa0,0x7e,0xb3,0x15,0x53, +0x4, 0x80,0x7, 0x74,0x1, 0x7a,0xb3,0x15,0xa0,0xe4,0x7a,0xb3,0x15,0x53,0xe4,0x7a, +0xb3,0x15,0x9e,0x7e,0xb3,0x15,0xa0,0x14,0x68,0x9, 0x4, 0x78,0x15,0x7e,0x24,0x13, +0xb6,0x80,0x4, 0x7e,0x24,0x14,0xe3,0x7e,0x34,0x15,0x56,0x7e,0x14,0x0, 0x48,0x12, +0x6d,0x7d,0x7e,0x73,0x15,0x29,0x7a,0x73,0x15,0x9f,0x7e,0x24,0x13,0xb6,0x7e,0x34, +0x14,0xe3,0x7e,0x14,0x0, 0x48,0x12,0x6d,0x7d,0x7e,0x24,0x15,0x56,0x7e,0x34,0xe, +0xd, 0x7e,0x14,0x0, 0x46,0x12,0x6d,0x7d,0x7e,0x73,0x15,0x9c,0x7a,0x73,0xf, 0x1b, +0x7e,0x73,0x15,0x9d,0x7a,0x73,0xf, 0x1c,0xda,0xf8,0x22,0xca,0x79,0x7d,0x73,0x12, +0x61,0x38,0x49,0x27,0x0, 0x25,0x7e,0x34,0x1c,0xa, 0x1b,0x38,0x20,0x49,0x27,0x0, +0x27,0x7e,0x34,0x1c,0xc, 0x1b,0x38,0x20,0x49,0x27,0x0, 0x29,0x7e,0x34,0x1c,0xe, +0x1b,0x38,0x20,0x49,0x27,0x0, 0x2b,0x7e,0x34,0x1c,0x10,0x1b,0x38,0x20,0x49,0x27, +0x0, 0x2d,0x7e,0x34,0x1c,0x12,0x1b,0x38,0x20,0x49,0x27,0x0, 0x2f,0x7e,0x34,0x1c, +0x14,0x1b,0x38,0x20,0x49,0x27,0x0, 0x6, 0x9, 0x72,0x0, 0x1, 0xa, 0x37,0x7c,0x67, +0x6c,0x77,0x7e,0x29,0x30,0xa, 0x13,0x4d,0x13,0x7e,0x34,0x1c,0x18,0x1b,0x38,0x10, +0x9, 0x72,0x0, 0x3, 0xa, 0x37,0x7c,0x67,0x6c,0x77,0x9, 0x52,0x0, 0x2, 0xa, 0x25, +0x4d,0x23,0x7e,0x34,0x1c,0x1a,0x1b,0x38,0x20,0x9, 0x77,0x0, 0x1, 0xa, 0x27,0x7e, +0x34,0x1c,0x16,0x1b,0x38,0x20,0x6d,0x22,0x7e,0x34,0x1c,0x1c,0x1b,0x38,0x20,0x6c, +0xaa,0xa, 0x2a,0x49,0x37,0x0, 0xa, 0x2d,0x32,0x7e,0x39,0xb0,0xa, 0x2b,0x7e,0x34, +0x1c,0x1e,0x1b,0x38,0x20,0xb, 0xa0,0xbe,0xa0,0x18,0x78,0xe5,0x6d,0x22,0x7e,0x34, +0x1c,0x1c,0x1b,0x38,0x20,0x6c,0xaa,0x7e,0x50,0x2, 0xac,0x5a,0x49,0x37,0x0, 0x4b, +0x2d,0x32,0xb, 0x38,0x20,0x7e,0x34,0x1c,0x20,0x1b,0x38,0x20,0xb, 0xa0,0xbe,0xa0, +0x19,0x78,0xe4,0x6d,0x22,0x7e,0x34,0x1c,0x1c,0x1b,0x38,0x20,0x6c,0xaa,0x7e,0x70, +0x2, 0xac,0x7a,0x2e,0x34,0x2b,0xd4,0x7e,0x24,0x0, 0xff,0xb, 0x1a,0x30,0x7e,0x24, +0x1c,0x22,0x1b,0x28,0x30,0xb, 0xa0,0xbe,0xa0,0xff,0x78,0xe2,0x7e,0x14,0x2d,0xd2, +0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0x30,0x1b,0x28,0x30,0x7e,0x24,0x1, 0x0, 0x7e,0x34, +0x1c,0x1c,0x1b,0x38,0x20,0x6c,0xaa,0x7e,0x70,0x2, 0xac,0x7a,0x2e,0x34,0x2d,0xd4, +0x7e,0x24,0x0, 0xff,0xb, 0x1a,0x20,0x7e,0x34,0x1c,0x22,0x1b,0x38,0x20,0xb, 0xa0, +0xbe,0xa0,0x10,0x40,0xe2,0x7d,0x37,0x12,0x5e,0x27,0x49,0x27,0x0, 0x39,0x7e,0x34, +0x1c,0x28,0x1b,0x38,0x20,0x7e,0x24,0x0, 0x1, 0x7e,0x34,0x1c,0x2a,0x1b,0x38,0x20, +0x49,0x27,0x0, 0x31,0x7e,0x34,0x1c,0x2c,0x1b,0x38,0x20,0x49,0x27,0x0, 0x33,0x7e, +0x34,0x1c,0x2e,0x1b,0x38,0x20,0x49,0x37,0x0, 0x45,0x49,0x27,0x0, 0xa, 0x9, 0xb7, +0x0, 0x1, 0x12,0x65,0x18,0x49,0x37,0x0, 0x47,0x12,0x7, 0xc9,0x49,0x37,0x0, 0x49, +0x49,0x27,0x0, 0xa, 0x9, 0xb7,0x0, 0x1, 0x12,0x5d,0x1, 0x49,0x27,0x0, 0x35,0x7e, +0x34,0x1c,0x52,0x1b,0x38,0x20,0x49,0x27,0x0, 0x3d,0x7e,0x34,0x1c,0x54,0x1b,0x38, +0x20,0x49,0x27,0x0, 0x37,0x7e,0x34,0x1c,0x56,0x1b,0x38,0x20,0xda,0x79,0x22,0xca, +0x3b,0x6d,0x33,0x7a,0x35,0x23,0x7e,0xb3,0xf, 0x1b,0x60,0x6, 0x7e,0xb3,0xf, 0x1c, +0x60,0x11,0xe5,0x22,0x60,0x5, 0x75,0x18,0x1, 0x80,0x3, 0x75,0x18,0x0, 0xe5,0x18, +0x2, 0x35,0x5e,0x7e,0xb3,0xd, 0x18,0xf5,0x21,0x7e,0x73,0xd, 0x19,0x7a,0x71,0x22, +0x6d,0x66,0x75,0x25,0x0, 0x75,0x26,0x0, 0xa, 0x37,0x7d,0x73,0x80,0x3a,0x7e,0x51, +0x21,0x74,0x18,0xac,0x5b,0x2d,0x27,0x3e,0x24,0x2e,0x27,0xf, 0xda,0xb, 0x28,0x10, +0xbe,0x14,0x0, 0x32,0x8, 0x28,0x5, 0x25,0xe5,0x21,0xbe,0xb0,0x0, 0x28,0x8, 0x49, +0x12,0xff,0xd0,0x2d,0x61,0x5, 0x26,0xe5,0x21,0xbe,0xb0,0xc, 0x50,0x8, 0x49,0x22, +0x0, 0x30,0x2d,0x62,0x5, 0x26,0x1b,0x74,0xbe,0x74,0x0, 0x0, 0x58,0xc0,0x7d,0x73, +0x80,0x38,0x7e,0x71,0x21,0x74,0x18,0xac,0x7b,0x2d,0x37,0x3e,0x34,0x2e,0x37,0xf, +0xda,0xb, 0x38,0x20,0xbe,0x24,0x0, 0x32,0x8, 0x2c,0x5, 0x25,0xe5,0x21,0xbe,0xb0, +0x0, 0x28,0x8, 0x49,0x23,0xff,0xd0,0x2d,0x62,0x5, 0x26,0xe5,0x21,0xbe,0xb0,0xc, +0x50,0x8, 0x49,0x33,0x0, 0x30,0x2d,0x63,0x5, 0x26,0x7d,0x37,0xb, 0x34,0x7d,0x73, +0xbe,0x34,0x0, 0x18,0x48,0xbc,0xe5,0x25,0xbe,0xb0,0x3, 0x50,0x2, 0x80,0x12,0x7d, +0x36,0x12,0x6e,0x11,0xe5,0x26,0xa, 0x2b,0x12,0x48,0x53,0xbe,0x34,0x0, 0xf, 0x8, +0x8, 0x75,0x18,0x1, 0x74,0x1, 0x2, 0x35,0x5e,0x6d,0x33,0xe5,0x21,0xbe,0xb0,0x0, +0x28,0x19,0x7e,0x51,0x21,0x74,0x18,0xac,0x5b,0xe5,0x22,0xa, 0x1b,0x2d,0x21,0x3e, +0x24,0x2e,0x27,0xf, 0xda,0x49,0x22,0xff,0xd0,0x2d,0x32,0xe5,0x21,0xbe,0xb0,0xc, +0x50,0x19,0x7e,0x51,0x21,0x74,0x18,0xac,0x5b,0xe5,0x22,0xa, 0x1b,0x2d,0x21,0x3e, +0x24,0x2e,0x27,0xf, 0xda,0x49,0x22,0x0, 0x30,0x2d,0x32,0x7e,0xa0,0x8, 0x80,0x2d, +0x7e,0x50,0x2, 0xac,0x5a,0x7d,0x12,0x2e,0x14,0x6e,0x1, 0x7a,0x31,0x82,0x7a,0x21, +0x83,0xe4,0x93,0x1a,0x1b,0xbd,0x13,0x8, 0x14,0x2e,0x24,0x6e,0x2, 0x7a,0x51,0x82, +0x7a,0x41,0x83,0xe4,0x93,0x1a,0x2b,0x2e,0x25,0x23,0x7a,0x25,0x23,0x7c,0x5a,0x1b, +0xa0,0xa5,0xbd,0x0, 0xcb,0x7e,0x71,0x21,0x74,0x18,0xac,0x7b,0xe5,0x22,0xa, 0x2b, +0x2d,0x32,0x3e,0x34,0x2e,0x37,0xf, 0xda,0xb, 0x38,0x30,0x12,0x6e,0x11,0xbe,0x34, +0x2, 0xbc,0x8, 0xa, 0x7e,0x35,0x23,0x2e,0x34,0x0, 0x28,0x7a,0x35,0x23,0x7e,0x35, +0x23,0xbe,0x34,0x0, 0xfa,0x28,0x7, 0x7e,0x34,0x0, 0xfa,0x7a,0x35,0x23,0xe5,0x18, +0xa, 0x3b,0xbe,0x35,0x23,0x50,0x5, 0x7e,0x55,0x23,0xf5,0x18,0xe5,0x18,0xda,0x3b, +0x22,0xca,0x3b,0x7c,0x9b,0x7d,0xa3,0xbe,0x90,0x1, 0x28,0x1e,0xa, 0x15,0x1b,0x15, +0xa, 0x39,0xbd,0x31,0x58,0x14,0x74,0x2, 0xac,0xb9,0x7d,0xb5,0x2d,0xba,0x1b,0xb6, +0xb, 0xb8,0x30,0x12,0x6d,0x94,0x7d,0xb3,0x80,0x7, 0xbe,0x90,0x1, 0x78,0x15,0x6d, +0xbb,0x7e,0x70,0x2, 0xac,0x79,0x2d,0x3a,0x1b,0x35,0xb, 0x38,0x30,0x12,0x6d,0x94, +0x7d,0xc3,0x80,0x8, 0x4c,0x99,0x78,0x38,0x6d,0xcc,0x7d,0xbc,0x74,0x2, 0xac,0xb9, +0x7d,0xd5,0x2d,0xda,0xb, 0xd8,0x30,0x12,0x6d,0x94,0x7d,0xd3,0x7e,0x70,0x2, 0xac, +0x79,0x2d,0x3a,0x49,0x33,0x0, 0x2, 0x12,0x6d,0x94,0x7d,0xe3,0x74,0x2, 0xac,0xb9, +0x7d,0xf5,0x2d,0xfa,0x49,0x3f,0x0, 0x4, 0x12,0x6d,0x94,0x7d,0xf3,0x2, 0x36,0x6c, +0x7c,0xb5,0x24,0xfe,0xbc,0xb9,0x78,0x46,0x74,0x2, 0xac,0xb9,0x7d,0xb5,0x2d,0xba, +0x1b,0xb6,0xb, 0xb8,0x30,0x12,0x6d,0x94,0x7d,0xb3,0x7e,0x70,0x2, 0xac,0x79,0x2d, +0x3a,0x1b,0x35,0xb, 0x38,0x30,0x12,0x6d,0x94,0x7d,0xc3,0x74,0x2, 0xac,0xb9,0x7d, +0xd5,0x2d,0xda,0xb, 0xd8,0x30,0x12,0x6d,0x94,0x7d,0xd3,0x74,0x2, 0xac,0xb9,0x2d, +0xa5,0x49,0x3a,0x0, 0x2, 0x12,0x6d,0x94,0x7d,0xe3,0x6d,0xff,0x80,0x3e,0x7c,0xb5, +0x14,0xbc,0xb9,0x78,0x37,0x74,0x2, 0xac,0xb9,0x7d,0xb5,0x2d,0xba,0x1b,0xb6,0xb, +0xb8,0x30,0x12,0x6d,0x94,0x7d,0xb3,0x7e,0x70,0x2, 0xac,0x79,0x2d,0x3a,0x1b,0x35, +0xb, 0x38,0x30,0x12,0x6d,0x94,0x7d,0xc3,0x74,0x2, 0xac,0xb9,0x7d,0xd5,0x2d,0xda, +0xb, 0xd8,0x30,0x12,0x6d,0x94,0x7d,0xd3,0x6d,0xff,0x7d,0xef,0xa, 0x79,0x6d,0x66, +0x7f,0x3, 0x1b,0xc, 0x7d,0x3c,0x1a,0x26,0x1a,0x24,0x12,0x48,0x85,0x7f,0x41,0x7f, +0x3, 0x1b,0xd, 0x7d,0x3b,0x1a,0x26,0x1a,0x24,0x12,0x48,0x85,0x2f,0x41,0x7d,0x3d, +0x1a,0x26,0x1a,0x24,0xa, 0x19,0x6d,0x0, 0x12,0x48,0x85,0x2f,0x41,0xa, 0x19,0x6d, +0x0, 0xb, 0xc, 0x7d,0x3e,0x1a,0x26,0x1a,0x24,0x12,0x48,0x85,0x2f,0x41,0xa, 0x19, +0x6d,0x0, 0xb, 0xd, 0x7d,0x3f,0x1a,0x26,0x1a,0x24,0x12,0x48,0x85,0x2f,0x14,0x7d, +0x1c,0x1a,0x2, 0x1a,0x0, 0x7d,0x5b,0x1a,0x4a,0x1a,0x48,0x2f,0x20,0x7d,0x1d,0x1a, +0x2, 0x1a,0x0, 0x2f,0x2, 0x7d,0x5e,0x1a,0x4a,0x1a,0x48,0x2f,0x20,0x7d,0x1f,0x1a, +0x2, 0x1a,0x0, 0x2f,0x2, 0x74,0x6, 0x2f,0x11,0x14,0x78,0xfb,0x12,0x48,0xa1,0x2e, +0x34,0x0, 0x20,0xda,0x3b,0x22,0xca,0x3b,0x7e,0xf3,0xf, 0x1b,0x7e,0x64,0xe, 0xdf, +0xe5,0x51,0xb4,0x1, 0x1b,0x7e,0xb3,0xf, 0x1c,0xb4,0x1, 0x14,0x7e,0xb3,0xd, 0xf7, +0xb4,0x1, 0xd, 0x7e,0x73,0xd, 0xf9,0xbe,0x70,0x15,0x40,0x4, 0x74,0x5, 0x80,0x2, +0x74,0x3, 0x7a,0xb3,0xf, 0x26,0x74,0x1, 0x7a,0xb3,0xf, 0x27,0x4c,0xff,0x78,0xd, +0x75,0x19,0x0, 0x7e,0xb3,0xf, 0x26,0x12,0x6e,0xe2,0x2, 0x38,0x85,0xe5,0x51,0xb4, +0x1, 0x1b,0x7e,0xb3,0xf, 0x1c,0xb4,0x1, 0x14,0x7e,0xb3,0xd, 0xf7,0xb4,0x1, 0xd, +0x7e,0x73,0xd, 0xf9,0xbe,0x70,0x15,0x40,0x4, 0x74,0x1, 0x80,0x1, 0xe4,0xb4,0x1, +0x9, 0xe5,0x19,0x70,0x5, 0x75,0x16,0x5, 0xf5,0x17,0xe5,0x51,0xb4,0x1, 0x1b,0x7e, +0xb3,0xf, 0x1c,0xb4,0x1, 0x14,0x7e,0xb3,0xd, 0xf7,0xb4,0x1, 0xd, 0x7e,0x73,0xd, +0xf9,0xbe,0x70,0x15,0x40,0x4, 0x74,0x1, 0x80,0x1, 0xe4,0xf5,0x19,0x6c,0xee,0x7e, +0x70,0x7, 0xac,0x7e,0x9, 0xb3,0xe, 0x9d,0xf5,0x21,0xbe,0xb0,0xff,0x78,0x3, 0x2, +0x38,0x7b,0xe5,0x21,0xa, 0x2b,0x2d,0x26,0x7e,0x29,0xb0,0xb4,0x2, 0x2, 0x80,0x3, +0x2, 0x38,0x7b,0x49,0x33,0xe, 0x99,0x7e,0xa1,0x21,0x74,0x4, 0xa4,0x49,0x25,0x13, +0x74,0x12,0x6d,0xf1,0x7a,0x35,0x22,0x74,0x7, 0xac,0xbe,0x49,0x35,0xe, 0x9b,0x7e, +0xa1,0x21,0x74,0x4, 0xa4,0x49,0x25,0x13,0x76,0x12,0x6d,0xf1,0x7a,0x35,0x24,0xe5, +0x16,0xa, 0x3b,0xbe,0x35,0x22,0x28,0x59,0xbe,0x35,0x24,0x28,0x54,0x7e,0xa1,0x21, +0x74,0x4, 0xa4,0x49,0x35,0x13,0x74,0x74,0x7, 0xac,0xbe,0x59,0x35,0xe, 0x99,0x7e, +0xa1,0x21,0x74,0x4, 0xa4,0x49,0x35,0x13,0x76,0x74,0x7, 0xac,0xbe,0x59,0x35,0xe, +0x9b,0xe5,0x21,0xa, 0x3b,0x2d,0x36,0x7e,0x39,0xb0,0xb4,0x2, 0x7, 0xbe,0xf0,0x0, +0x28,0x2, 0x1b,0xf0,0x4c,0xff,0x78,0x53,0x5, 0x17,0xe5,0x17,0xbe,0xb0,0x32,0x40, +0x3, 0x75,0x17,0x0, 0x7e,0x73,0xf, 0x27,0xbe,0x71,0x16,0x28,0x3e,0x5, 0x16,0x80, +0x3a,0x7e,0x90,0x7, 0xac,0x9e,0x49,0x34,0xe, 0x99,0x7e,0xa1,0x21,0x74,0x4, 0xa4, +0x59,0x35,0x13,0x74,0x49,0x34,0xe, 0x9b,0x59,0x35,0x13,0x76,0x7e,0x73,0xf, 0x26, +0xbe,0x71,0x16,0x50,0x8, 0x7e,0xb3,0xf, 0x27,0xf5,0x16,0x80,0xb, 0x7e,0x73,0xf, +0x27,0xbe,0x71,0x16,0x50,0x2, 0x15,0x16,0x75,0x17,0x0, 0xb, 0xe0,0xbe,0xe0,0xa, +0x68,0x3, 0x2, 0x37,0x8f,0xda,0x3b,0x22,0xca,0x3b,0x6c,0xff,0x7e,0xb3,0x10,0x2b, +0xf5,0x24,0x7e,0xe3,0x10,0x2c,0x1b,0xe0,0x6c,0xdd,0x7e,0x70,0x30,0xac,0x7d,0x2e, +0x37,0xf, 0xda,0x49,0x33,0x0, 0x2e,0x74,0x2, 0xac,0xbd,0x59,0x35,0x13,0xb6,0xb, +0xd0,0xbe,0xd0,0xd, 0x78,0xe4,0x7e,0xb3,0xf, 0xd3,0xb4,0x1, 0x2, 0x80,0x3, 0x2, +0x39,0xff,0x6c,0xcc,0x2, 0x39,0xf0,0x7e,0x70,0x2, 0xac,0x7c,0x9, 0xb3,0xd, 0x18, +0xf5,0x22,0x9, 0xb3,0xd, 0x19,0xf5,0x23,0x75,0x21,0x3, 0x7e,0x73,0xe, 0x12,0xbe, +0x70,0x20,0x50,0xa, 0x7e,0xb3,0xd, 0xf7,0xb4,0x1, 0x3, 0x75,0x21,0x1, 0x7e,0xb3, +0xd, 0xfd,0xb4,0x1, 0x3, 0x75,0x21,0x2, 0x74,0x8, 0x7a,0xb3,0xf, 0x53,0xe5,0x22, +0xbe,0xb0,0x0, 0x28,0x21,0xe5,0x24,0xa, 0x2b,0x1b,0x24,0xe5,0x22,0xa, 0x3b,0xbd, +0x32,0x58,0x13,0xe5,0x23,0xbe,0xb0,0x0, 0x28,0xc, 0xa, 0x2e,0x1b,0x24,0xe5,0x23, +0xa, 0x3b,0xbd,0x32,0x48,0x3, 0x75,0x21,0x2, 0x75,0x25,0x0, 0x80,0x45,0xe5,0x25, +0xbc,0xbc,0x68,0x3d,0x7e,0x71,0x25,0x74,0x2, 0xac,0x7b,0x9, 0xa3,0xd, 0x18,0x7a, +0xa1,0x26,0x9, 0xb3,0xd, 0x19,0xf5,0x27,0xa, 0x2a,0xe5,0x22,0xa, 0x3b,0x9d,0x32, +0x12,0x6e,0x11,0xbe,0x34,0x0, 0x3, 0x18,0x18,0xe5,0x27,0xa, 0x2b,0xe5,0x23,0xa, +0x3b,0x9d,0x32,0x12,0x6e,0x11,0xbe,0x34,0x0, 0x3, 0x18,0x5, 0x75,0x21,0x1, 0x80, +0xb, 0x5, 0x25,0x7e,0x73,0xd, 0xf7,0xbe,0x71,0x25,0x38,0xb2,0xe5,0x51,0xb4,0x1, +0x20,0x7e,0xb3,0xf, 0x1c,0xb4,0x1, 0x19,0x7e,0xb3,0xd, 0xf7,0xb4,0x1, 0x12,0x7e, +0x73,0xd, 0xf9,0xbe,0x70,0x15,0x40,0x9, 0x75,0x21,0x3, 0x74,0x1e,0x7a,0xb3,0xf, +0x53,0xe5,0x23,0xbe,0xb0,0x17,0x50,0x1a,0x6c,0xdd,0x6d,0x33,0x7e,0x50,0x30,0xac, +0x5d,0x2e,0x27,0xf, 0xda,0x59,0x32,0x0, 0x2e,0xb, 0xd0,0xbe,0xd0,0xd, 0x78,0xec, +0x80,0x3, 0x75,0x21,0x0, 0xe5,0x21,0x7c,0x7c,0x7c,0x6f,0x12,0x11,0xa0,0x6c,0xdd, +0x74,0x2, 0xac,0xbd,0x49,0x35,0x13,0xb6,0x7e,0x50,0x30,0xac,0x5d,0x2e,0x27,0xf, +0xda,0x59,0x32,0x0, 0x2e,0xb, 0xd0,0xbe,0xd0,0xd, 0x78,0xe4,0xb, 0xf0,0xb, 0xc0, +0x7e,0x73,0xd, 0xf7,0xbc,0x7c,0x28,0x3, 0x2, 0x38,0xc7,0x7a,0xf3,0xd, 0xf7,0xda, +0x3b,0x22,0x7e,0x50,0x1, 0xe4,0x7a,0xb3,0xe, 0xb, 0x74,0x1, 0x7a,0xb3,0xe, 0xc, +0x7e,0xa3,0xd, 0xf7,0x4c,0xaa,0x78,0x1d,0x7e,0x43,0xd, 0xf8,0xbe,0x40,0x0, 0x28, +0x14,0x7e,0x43,0x16,0xb7,0xbe,0x40,0x1, 0x28,0xb, 0x74,0x1, 0x7a,0xb3,0xe, 0xb, +0xe4,0x7a,0xb3,0x10,0x3d,0x4c,0xaa,0x78,0xb, 0x74,0x1, 0x7a,0xb3,0x16,0xb7,0xe4, +0x7a,0xb3,0x16,0xb8,0xbe,0xa0,0x0, 0x28,0x5, 0xe4,0x7a,0xb3,0xe, 0xc, 0x7e,0x43, +0xd, 0xfc,0xbe,0x40,0x0, 0x28,0x5, 0xe4,0x7a,0xb3,0xe, 0xc, 0x7e,0x43,0xd, 0x17, +0xbe,0x40,0x0, 0x28,0x6b,0x7e,0xb3,0x16,0xb1,0x70,0x65,0x7e,0xb3,0x16,0xb3,0x70, +0x5f,0x74,0x1, 0x7a,0xb3,0xe, 0xc, 0x6d,0x33,0x6c,0x44,0x7e,0x30,0x2, 0xac,0x34, +0x2e,0x17,0xf, 0xd6,0xb, 0x18,0x10,0xbd,0x13,0x58,0x2, 0x7d,0x31,0xb, 0x40,0xa5, +0xbc,0x25,0xe8,0xbe,0x34,0xf8,0xf8,0x58,0x5, 0x7e,0x50,0x5, 0x80,0x1f,0xbe,0x34, +0xfb,0x50,0x58,0x5, 0x7e,0x50,0x4, 0x80,0x14,0xbe,0x34,0xfc,0xe0,0x58,0x5, 0x7e, +0x50,0x3, 0x80,0x9, 0xbe,0x34,0xfe,0xd4,0x58,0x3, 0x7e,0x50,0x2, 0xbe,0x34,0xfc, +0x18,0x58,0x3c,0x74,0x1, 0x7a,0xb3,0xe, 0xb, 0xe4,0x7a,0xb3,0x10,0x3d,0x80,0x2f, +0x7e,0x43,0xd, 0x16,0xa5,0xbc,0x0, 0x1d,0xbe,0xa0,0x0, 0x28,0x18,0x7e,0xb3,0x16, +0xb1,0x70,0x12,0x7e,0xb3,0x16,0xb3,0x70,0xc, 0xbe,0x50,0x3, 0x50,0x3, 0x7e,0x50, +0x3, 0x74,0x1, 0x80,0x6, 0xbe,0x40,0x0, 0x28,0x5, 0xe4,0x7a,0xb3,0xe, 0xc, 0x7e, +0x43,0x16,0xb7,0xbc,0x45,0x50,0x4, 0x7a,0x53,0x16,0xb7,0xbe,0x50,0x2, 0x28,0x6, +0x74,0x1, 0x7a,0xb3,0x16,0xb8,0xbe,0xa0,0x0, 0x28,0x1b,0x7e,0xb3,0xd, 0x16,0x70, +0x15,0x7e,0xb3,0x16,0xb1,0x70,0xf, 0x7e,0xb3,0x16,0xb3,0x70,0x9, 0xe4,0x7a,0xb3, +0xf, 0xd3,0x7a,0xb3,0xf, 0xd2,0x7e,0xb3,0x16,0xb3,0xb4,0x1, 0x18,0xe4,0x7a,0xb3, +0x16,0xb3,0x74,0x1, 0x7a,0xb3,0xe, 0xb, 0xe4,0x7a,0xb3,0x10,0x3d,0x7a,0xb3,0xf, +0xd3,0x7a,0xb3,0xf, 0xd2,0x7e,0xa3,0x16,0xb7,0x7e,0x50,0x8, 0xac,0x5a,0x7a,0x27, +0xe, 0x5, 0x74,0x4, 0xa4,0x7a,0x57,0xe, 0x7, 0x22,0xca,0x3b,0x7d,0x73,0x7e,0xb3, +0xd, 0xf7,0xf5,0x4c,0x7e,0x37,0xf, 0xda,0x7a,0x35,0x4f,0x75,0x42,0x0, 0x7e,0xc0, +0x1, 0x80,0x19,0xe5,0x42,0xa, 0x3b,0x2d,0x37,0x7e,0x39,0x60,0xa, 0x2c,0x2d,0x27, +0x7e,0x29,0x70,0xbc,0x76,0x40,0x3, 0x7a,0xc1,0x42,0xb, 0xc0,0xe5,0x4c,0xbc,0xbc, +0x38,0xe1,0xe5,0x42,0xa, 0x3b,0x2d,0x37,0x7e,0x39,0xb0,0xf5,0x42,0x75,0x44,0x0, +0x7e,0xc0,0x1, 0x2, 0x3c,0xb4,0x75,0x4b,0x0, 0x6d,0x33,0x7a,0x35,0x4d,0x6c,0xdd, +0x75,0x45,0x0, 0x75,0x46,0x0, 0x75,0x43,0x0, 0x2, 0x3c,0x69,0x7e,0x71,0x43,0x74, +0x2, 0xac,0x7b,0x9, 0xb3,0xd, 0x18,0xf5,0x47,0x9, 0xb3,0xd, 0x19,0xf5,0x48,0xe5, +0x43,0xa, 0x3b,0x2d,0x37,0x7e,0x39,0x70,0xbc,0x7c,0x78,0x7b,0xb, 0xd0,0xe5,0x47, +0x25,0x45,0xf5,0x45,0xe5,0x48,0x25,0x46,0xf5,0x46,0x7e,0x51,0x47,0xac,0x5d,0xe5, +0x45,0xa, 0x3b,0x9d,0x32,0x12,0x6e,0x11,0x7c,0xb7,0xf5,0x49,0x7e,0x51,0x48,0xac, +0x5d,0xe5,0x46,0xa, 0x3b,0x9d,0x32,0x12,0x6e,0x11,0x7c,0xb7,0xf5,0x4a,0x7e,0x51, +0x4b,0xac,0x5d,0xe5,0x49,0xa, 0x3b,0xbd,0x32,0x8, 0x9, 0xa, 0x2d,0x12,0x48,0x53, +0x7c,0xb7,0xf5,0x4b,0x7e,0x51,0x4b,0xac,0x5d,0xe5,0x4a,0xa, 0x3b,0xbd,0x32,0x8, +0x9, 0xa, 0x2d,0x12,0x48,0x53,0x7c,0xb7,0xf5,0x4b,0x7e,0x71,0x47,0x74,0x18,0xac, +0x7b,0xe5,0x48,0xa, 0x2b,0x2d,0x32,0x3e,0x34,0x2e,0x35,0x4f,0xb, 0x38,0x30,0xbe, +0x35,0x4d,0x8, 0x3, 0x7a,0x35,0x4d,0x5, 0x43,0xe5,0x4c,0xbe,0xb1,0x43,0x28,0x3, +0x2, 0x3b,0xcc,0xbe,0xd0,0x0, 0x28,0x3a,0xe5,0x45,0x8c,0xbd,0xf5,0x45,0xe5,0x46, +0x8c,0xbd,0xf5,0x46,0x7e,0xa1,0x45,0x7e,0x71,0x44,0x74,0x2, 0xac,0x7b,0x19,0xa3, +0x15,0x2b,0xe5,0x46,0x19,0xb3,0x15,0x2c,0x7e,0x25,0x4d,0x7e,0x71,0x45,0x74,0x18, +0xac,0x7b,0xe5,0x46,0xa, 0x1b,0x2d,0x31,0x3e,0x34,0x2e,0x35,0x4f,0x1b,0x38,0x20, +0x5, 0x44,0xb, 0xc0,0xe5,0x42,0xbc,0xbc,0x40,0x3, 0x2, 0x3b,0xb6,0xe5,0x44,0xda, +0x3b,0x22,0x74,0xd, 0x7a,0xb3,0x10,0x2b,0x74,0x18,0x7a,0xb3,0x10,0x2c,0x74,0x4, +0x7a,0xb3,0x10,0x2d,0xe4,0x7a,0xb3,0x10,0x2e,0x7e,0x34,0x11,0x9b,0x7a,0x37,0x10, +0x2f,0x7e,0x34,0x11,0x97,0x7a,0x37,0x10,0x31,0x7e,0x34,0xf, 0xc5,0x7a,0x37,0x10, +0x33,0x7e,0x34,0xf, 0xad,0x7a,0x37,0x10,0x35,0x74,0x15,0x7a,0xb3,0x10,0x37,0x74, +0x17,0x7a,0xb3,0x10,0x38,0x74,0x4, 0x7a,0xb3,0x10,0x3a,0xe4,0x7a,0xb3,0x10,0x3b, +0x7a,0xb3,0x10,0x3c,0x7a,0xb3,0x10,0x3d,0x74,0x2, 0x7a,0xb3,0x10,0x3e,0x74,0x45, +0x7a,0xb3,0x10,0x3f,0x74,0x71,0x7a,0xb3,0x10,0x40,0x74,0x3, 0x7a,0xb3,0x10,0x41, +0x7e,0x34,0x1f,0xff,0x7a,0x37,0x10,0x42,0x6d,0x33,0x7a,0x37,0x10,0x44,0x7e,0x34, +0xd, 0xfe,0x7a,0x37,0x10,0x46,0x7e,0x34,0xf, 0xdc,0x7a,0x37,0x10,0x48,0x74,0x20, +0x7a,0xb3,0x10,0x4a,0x74,0xa, 0x7a,0xb3,0x10,0x4b,0xe4,0x7a,0xb3,0x10,0x4c,0x7a, +0xb3,0x10,0x4d,0x7a,0xb3,0x10,0x4e,0x74,0x2, 0x7a,0xb3,0x10,0x4f,0x7e,0x34,0x0, +0xf4,0x7a,0x37,0x10,0x52,0x7e,0x34,0x3f,0xe0,0x7a,0x37,0x10,0x50,0x7e,0x34,0x29, +0x28,0x7a,0x37,0x10,0x54,0x7e,0x34,0x10,0x91,0x7a,0x37,0x10,0x62,0x7e,0x34,0x0, +0x3d,0x7a,0x37,0x10,0x64,0x7e,0x34,0x0, 0x22,0x7a,0x37,0x10,0x66,0x7e,0x34,0x4c, +0x0, 0x7a,0x37,0x10,0x56,0x7e,0x34,0x3, 0xcf,0x7a,0x37,0x10,0x58,0x7e,0x34,0x7, +0x9a,0x7a,0x37,0x10,0x5a,0x7e,0x34,0x5, 0x84,0x7a,0x37,0x10,0x5c,0x7e,0x34,0x0, +0x9, 0x7a,0x37,0x10,0x5e,0x7e,0x34,0x0, 0xf, 0x7a,0x37,0x10,0x60,0x7e,0x34,0x0, +0x5d,0x7a,0x37,0x10,0x68,0xe4,0x7a,0xb3,0x10,0x6a,0x74,0x7, 0x7a,0xb3,0x10,0x6b, +0x7e,0x34,0x10,0xff,0x7a,0x37,0x10,0x6c,0x7e,0x34,0xf, 0xa0,0x7a,0x37,0x10,0x6e, +0x7e,0x34,0xf, 0x2e,0x7a,0x37,0x10,0x70,0x12,0x41,0xcf,0x7e,0x34,0x11,0xe9,0x7a, +0x37,0x10,0x72,0x7e,0x34,0xf, 0x88,0x7a,0x37,0x10,0x74,0x7e,0x34,0x11,0x17,0x7a, +0x37,0x10,0x76,0x2, 0x6c,0x99,0xca,0x69,0xca,0xf8,0x7d,0xb1,0x7d,0xf2,0x7d,0xe3, +0x9f,0x0, 0x7f,0x60,0x7f,0x40,0x6d,0x66,0x7a,0x67,0x13,0xb6,0x7f,0x10,0x7d,0xa6, +0x75,0x21,0x0, 0x6c,0xaa,0x80,0x4b,0x7e,0x30,0x2, 0xac,0x3a,0x7d,0xa1,0x2d,0xae, +0xb, 0xa8,0xa0,0x7c,0xba,0x20,0xe0,0x1e,0xbd,0xab,0x8, 0x4, 0x7d,0xab,0x80,0xa, +0x6d,0x11,0x9d,0x1b,0xbd,0x1a,0x8, 0x2, 0x7d,0xa1,0x7d,0x1a,0x1a,0x2, 0x1a,0x0, +0x2f,0x60,0x5, 0x21,0x80,0x1a,0xbd,0xab,0x8, 0x4, 0x7d,0xab,0x80,0xa, 0x6d,0x11, +0x9d,0x1b,0xbd,0x1a,0x8, 0x2, 0x7d,0xa1,0x7d,0x1a,0x1a,0x2, 0x1a,0x0, 0x2f,0x40, +0xb, 0xa0,0x7e,0xf3,0x10,0x2c,0xbc,0xfa,0x38,0xad,0xe5,0x21,0xa, 0x1b,0x6d,0x0, +0x7f,0x16,0x12,0x48,0xf2,0x7a,0x37,0x13,0xb6,0xe5,0x21,0xa, 0x3b,0x6d,0x22,0xa, +0x1f,0x6d,0x0, 0x9f,0x1, 0x7f,0x14,0x12,0x48,0xf2,0x6c,0xaa,0x80,0x2f,0x7c,0xba, +0x7e,0x30,0x2, 0x7c,0x9a,0x20,0xe0,0xf, 0xac,0x93,0x7d,0x14,0x2d,0x1e,0xb, 0x18, +0x0, 0x9e,0x7, 0x13,0xb6,0x80,0xd, 0xac,0x93,0x7d,0x14,0x2d,0x1e,0xb, 0x18,0x0, +0x7d,0x13,0x9d,0x1, 0x7d,0x14,0x2d,0x1f,0x1b,0x18,0x0, 0xb, 0xa0,0x7e,0xb3,0x10, +0x2c,0xbc,0xba,0x38,0xc9,0x9f,0x66,0x7a,0x67,0x13,0xb6,0x6c,0xaa,0x80,0x29,0x7e, +0x70,0x2, 0xac,0x7a,0x7d,0xa3,0x2d,0xae,0x49,0xaa,0x0, 0x30,0xbd,0xab,0x8, 0x4, +0x7d,0xab,0x80,0xa, 0x6d,0x33,0x9d,0x3b,0xbd,0x3a,0x8, 0x2, 0x7d,0xa3,0x7d,0x3a, +0x1a,0x26,0x1a,0x24,0x2f,0x61,0xb, 0xa0,0x7e,0x63,0x10,0x2b,0xbc,0x6a,0x38,0xcf, +0xa, 0x16,0x6d,0x0, 0x7f,0x16,0x12,0x48,0xf2,0x7a,0x37,0x13,0xb6,0x6c,0xaa,0x80, +0x1d,0x7e,0x70,0x2, 0x7c,0x5a,0xac,0x57,0x7d,0x32,0x2d,0x3e,0x49,0x43,0x0, 0x30, +0x9e,0x47,0x13,0xb6,0x7d,0x32,0x2d,0x3f,0x59,0x43,0x0, 0x30,0xb, 0xa0,0x7e,0xb3, +0x10,0x2b,0xbc,0xba,0x38,0xdb,0xda,0xf8,0xda,0x69,0x22,0xca,0x79,0x7c,0xfb,0xe5, +0x55,0xbe,0xb0,0x1, 0x68,0xf9,0xe5,0x55,0xb4,0x2, 0x2, 0x80,0x3, 0x2, 0x40,0x4b, +0xa9,0xd7,0xea,0x7e,0x37,0xf, 0xda,0x7e,0x27,0xf, 0xd8,0x7e,0x14,0x18,0x0, 0x12, +0x67,0xe2,0x12,0x0, 0x6e,0x50,0x27,0xa9,0xc7,0xea,0x7e,0xe3,0x10,0x4d,0xe4,0x7a, +0xb3,0x10,0x4d,0x7e,0x24,0x5, 0xe0,0x7d,0x32,0x7e,0x14,0x18,0x0, 0x12,0x67,0xe2, +0x7a,0xe3,0x10,0x4d,0x7e,0xb3,0x10,0xa5,0xb4,0x1, 0x3, 0x12,0x6b,0x12,0x74,0x1, +0x7a,0xb3,0xf, 0xd3,0x7e,0x34,0x9, 0x2e,0x7e,0x24,0x8, 0xe4,0x7e,0x14,0xa, 0x18, +0x12,0x66,0xc7,0x7e,0x37,0xf, 0xd6,0x7e,0x27,0xf, 0xd4,0x7e,0x14,0xa, 0x62,0x12, +0x66,0xc7,0x6c,0xaa,0x80,0x36,0x7e,0x50,0x2, 0xac,0x5a,0x49,0x32,0xa, 0x92,0xbe, +0x34,0x13,0x88,0x40,0xc, 0xbe,0x34,0x75,0x30,0x28,0x1a,0xbe,0x34,0x7e,0xf4,0x50, +0x14,0x7e,0xb3,0x16,0xb4,0x4, 0x7a,0xb3,0x16,0xb4,0xb4,0xa, 0xd, 0x74,0x1, 0x7a, +0xb3,0x16,0xb3,0x80,0xf, 0xe4,0x7a,0xb3,0x16,0xb4,0xb, 0xa0,0x7e,0xb3,0x10,0x2b, +0xbc,0xba,0x38,0xc2,0x7e,0xa3,0x16,0xb3,0xbe,0xa0,0x1, 0x78,0x7, 0x7e,0xb3,0x16, +0xb2,0x4, 0x80,0x1, 0xe4,0x7a,0xb3,0x16,0xb2,0xbe,0xb0,0x0, 0x28,0x6, 0x74,0x1, +0x7a,0xb3,0x16,0xb1,0x4c,0xaa,0x78,0xd, 0xe4,0x7a,0xb3,0x16,0xb2,0x7a,0xb3,0x16, +0xb1,0x7a,0xb3,0x16,0xb4,0x74,0x1, 0x7a,0xb3,0xf, 0xd2,0x12,0x67,0x1, 0x12,0x6b, +0xbd,0x7e,0xb3,0x11,0xc, 0xb4,0x1, 0x31,0xbe,0xf0,0x1, 0x78,0x2c,0x7e,0xb3,0xd, +0xfc,0x70,0x26,0x12,0x47,0x4a,0x7e,0xb3,0xd, 0xf7,0x70,0x19,0x7e,0x73,0x11,0x95, +0xa, 0x37,0x9, 0x73,0xf, 0x29,0x7a,0x73,0x10,0x4a,0xe4,0x7a,0xb3,0x10,0x4e,0x7a, +0xb3,0x11,0xc, 0x80,0x6, 0x6c,0xff,0x80,0x2, 0x6c,0xff,0x12,0x66,0x52,0x12,0x6c, +0x1f,0x7c,0xbf,0xda,0x79,0x22,0xca,0x3b,0x75,0x21,0x0, 0x7e,0x34,0xb, 0x79,0x7e, +0x24,0x0, 0xd, 0xe4,0x12,0x6e,0x21,0xe4,0x7a,0xb3,0xd, 0x16,0x7a,0xb3,0xd, 0x17, +0x7e,0xb3,0xf, 0xd2,0xb4,0x1, 0x2, 0x80,0x3, 0x2, 0x41,0xcc,0x7e,0x34,0x13,0xb6, +0x7e,0x24,0x0, 0xa, 0x74,0xff,0x12,0x6e,0x21,0x7e,0x34,0x13,0xc0,0x7e,0x24,0x0, +0xa, 0x74,0xff,0x12,0x6e,0x21,0x7e,0x37,0xf, 0xd6,0x7e,0xb3,0x10,0x2c,0x7e,0x27, +0xf, 0x4c,0x7e,0x14,0x13,0xb6,0x6c,0x11,0x12,0x4f,0x6e,0x7c,0xeb,0x7e,0x37,0xf, +0xd6,0x2e,0x34,0x0, 0x30,0x7e,0xb3,0x10,0x2b,0x7e,0x27,0xf, 0x4a,0x7e,0x14,0x13, +0xc0,0x12,0x4f,0x6e,0x7c,0xdb,0x6c,0xff,0x6c,0xaa,0x80,0x51,0x6c,0xcc,0x80,0x47, +0x7c,0xbf,0xc4,0x23,0x54,0x1f,0x7c,0x6b,0x7a,0x61,0x21,0xa, 0x2a,0x9, 0x72,0x13, +0xc0,0x7e,0x50,0x2, 0xac,0x5f,0x19,0x72,0xa, 0xb1,0xa, 0x1c,0x9, 0x71,0x13,0xb6, +0x19,0x72,0xa, 0xb2,0x7c,0xbf,0x54,0x7, 0x7e,0x44,0x0, 0x1, 0x60,0x5, 0x3e,0x44, +0x14,0x78,0xfb,0x7c,0x79,0xa, 0x46,0x2e,0x44,0xb, 0x79,0x7e,0x49,0xb0,0x4c,0xb7, +0x7a,0x49,0xb0,0xb, 0xf0,0xb, 0xc0,0xbc,0xec,0x38,0xb5,0xb, 0xa0,0xbc,0xda,0x38, +0xab,0x7a,0xf3,0xd, 0x16,0x7e,0x34,0x13,0xb6,0x7e,0x24,0x0, 0xa, 0x74,0xff,0x12, +0x6e,0x21,0x7e,0x34,0x13,0xc0,0x7e,0x24,0x0, 0xa, 0x74,0xff,0x12,0x6e,0x21,0x7e, +0x37,0xf, 0xd6,0x7e,0xb3,0x10,0x2c,0x7e,0x27,0xf, 0x4e,0x7e,0x14,0x13,0xb6,0x7e, +0x10,0x1, 0x12,0x4f,0x6e,0x7c,0xeb,0x7e,0x37,0xf, 0xd6,0x2e,0x34,0x0, 0x30,0x7e, +0xb3,0x10,0x2b,0x7e,0x27,0xf, 0x4e,0x7e,0x14,0x13,0xc0,0x12,0x4f,0x6e,0x7c,0xdb, +0x6c,0xff,0x6c,0xaa,0x80,0xe, 0x6c,0xcc,0x80,0x4, 0xb, 0xf0,0xb, 0xc0,0xbc,0xec, +0x38,0xf8,0xb, 0xa0,0xbc,0xda,0x38,0xee,0x7a,0xf3,0xd, 0x17,0xda,0x3b,0x22,0xca, +0x79,0x7e,0x34,0x0, 0x60,0x12,0x69,0xb9,0x7c,0xab,0x7a,0xa1,0x6a,0xbe,0xa0,0x8, +0x40,0x3, 0x2, 0x42,0xed,0xbe,0xa0,0x4, 0x50,0x5, 0x7e,0xe0,0x6, 0x80,0x3, 0x7e, +0xe0,0x5, 0x7c,0xba,0xbe,0xb0,0x8, 0x50,0x48,0x7e,0xa0,0x3, 0xa4,0x90,0x42,0x1, +0x73,0x2, 0x42,0x19,0x2, 0x42,0x1e,0x2, 0x42,0x23,0x2, 0x42,0x28,0x2, 0x42,0x2d, +0x2, 0x42,0x32,0x2, 0x42,0x37,0x2, 0x42,0x3c,0x7e,0xf0,0x5e,0x80,0x26,0x7e,0xf0, +0x5f,0x80,0x21,0x7e,0xf0,0x61,0x80,0x1c,0x7e,0xf0,0x63,0x80,0x17,0x7e,0xf0,0x65, +0x80,0x12,0x7e,0xf0,0x67,0x80,0xd, 0x7e,0xf0,0x69,0x80,0x8, 0x7e,0xf0,0x6a,0x80, +0x3, 0x7e,0xf0,0x64,0x6c,0xaa,0xa, 0x3a,0x9, 0xb3,0x11,0xe9,0xa, 0xb, 0x7e,0xb3, +0x10,0xff,0xa, 0x1b,0x2d,0x1, 0x7c,0xb1,0x7c,0x1a,0x2e,0x10,0x21,0xa5,0xf7,0x7c, +0x9b,0xa, 0x9, 0x5e,0x4, 0x0, 0x1, 0xbe,0x4, 0x0, 0x1, 0x78,0x1c,0x7c,0x79,0xac, +0x7f,0x7e,0x50,0x3, 0xac,0x5f,0xe, 0x24,0xe, 0x24,0x2d,0x32,0x7c,0xba,0x3e,0xb0, +0x24,0x25,0xa, 0xb, 0x1b,0x8, 0x30,0x80,0xd, 0xac,0x9f,0x7c,0xba,0x3e,0xb0,0x24, +0x25,0xa, 0xb, 0x1b,0x8, 0x40,0x7c,0xba,0x3e,0xb0,0x24,0x25,0xa, 0xb, 0xb, 0x8, +0xf0,0x7e,0x4, 0x0, 0xa, 0x7d,0x3f,0x8d,0x30,0x8d,0x30,0x7c,0x75,0xbe,0x70,0x0, +0x40,0x14,0xbc,0xe7,0x28,0x10,0x7e,0xc4,0x0, 0x64,0x7d,0xdf,0x8d,0xdc,0x7d,0xd, +0x9d,0x1, 0x7c,0x61,0x80,0x17,0xbc,0xe7,0x38,0x19,0xbe,0x70,0x9, 0x38,0x14,0x7e, +0xe4,0x0, 0x64,0x8d,0xfe,0x7d,0x2f,0xb, 0x24,0x9d,0x21,0x7c,0x65,0xa, 0x2a,0x19, +0x62,0x11,0xe9,0xb, 0xa0,0xbe,0xa0,0x4, 0x68,0x3, 0x2, 0x42,0x46,0xda,0x79,0x22, +0xca,0xf8,0x6d,0x33,0x7a,0x37,0x10,0x1, 0x7e,0x34,0xd, 0xac,0x7a,0x37,0xa, 0xaf, +0x74,0x1, 0x7a,0xb3,0x10,0x3c,0x7a,0xb3,0x10,0x4d,0x7a,0xb3,0x10,0xa5,0x7e,0xb3, +0xf, 0x26,0x12,0x6e,0xe2,0x12,0x64,0x48,0x7e,0xb3,0x10,0xa5,0xb4,0x1, 0x2, 0x80, +0x3, 0x2, 0x44,0x6, 0x6d,0x33,0x7a,0x37,0x10,0x1, 0x7e,0x34,0x0, 0x64,0x7a,0x37, +0xa, 0xaf,0xe4,0x7a,0xb3,0x16,0xba,0x12,0x6c,0x7b,0x12,0x46,0x40,0x12,0x6b,0x35, +0x6c,0xff,0x1a,0x2f,0x7e,0x34,0x0, 0x18,0xad,0x32,0x3e,0x34,0x2e,0x37,0xf, 0xda, +0x2e,0x34,0x0, 0x30,0x1b,0x35,0xb, 0x38,0x30,0x1a,0x2f,0x3e,0x24,0x59,0x32,0x13, +0x9c,0xb, 0xf0,0xbe,0xf0,0xd, 0x78,0xda,0x12,0x6b,0x7b,0x12,0x6c,0xd1,0x12,0x69, +0x38,0x6c,0xff,0x1a,0x3f,0x3e,0x34,0x49,0x23,0x13,0x9c,0x1a,0xf, 0x7e,0x14,0x0, +0x18,0xad,0x10,0x7d,0x31,0x3e,0x34,0x2e,0x37,0xf, 0xda,0x2e,0x34,0x0, 0x30,0x1b, +0x35,0x1b,0x38,0x20,0xb, 0xf0,0xbe,0xf0,0xd, 0x78,0xd8,0x12,0x6a,0xb, 0x12,0x49, +0x47,0x7e,0xb3,0xf, 0xd3,0x70,0x9, 0x7e,0xb3,0xf, 0xd2,0x70,0x3, 0x2, 0x43,0x18, +0x12,0x1f,0x97,0x12,0x33,0xaf,0x7a,0xb3,0xf, 0x25,0x12,0x6e,0x40,0x12,0x6d,0x37, +0x70,0x3, 0x2, 0x43,0x18,0x12,0x45,0x2a,0x7e,0x37,0xf, 0xda,0x12,0x8, 0x6, 0x12, +0x6e,0xe8,0x12,0x4e,0xc4,0x12,0x0, 0x6e,0x50,0x3, 0x12,0x30,0x5, 0x7e,0xb3,0x11, +0x15,0xb4,0x1, 0x4, 0xe4,0x12,0x6e,0xd3,0x12,0x67,0x3a,0x12,0x19,0x6d,0x12,0x6, +0x11,0x12,0x6f,0x7, 0x12,0x65,0x9a,0x12,0x36,0xf6,0x12,0x56,0x4e,0x12,0x1c,0xb1, +0x12,0x4b,0x9, 0x2, 0x43,0x18,0x12,0x0, 0x1e,0x12,0x6e,0x5c,0xda,0xf8,0x22,0xca, +0x3b,0x7c,0xeb,0x7e,0x73,0xd, 0xf7,0xbe,0x70,0x1, 0x38,0x3, 0x2, 0x45,0x21,0x7c, +0xbe,0x12,0xd, 0x46,0x7e,0xb3,0xd, 0xfc,0x60,0x1e,0x7e,0xb3,0x15,0x54,0x70,0x8, +0x7e,0xb3,0x15,0x55,0x70,0x2, 0x80,0x10,0x7e,0x73,0xd, 0xf7,0xbe,0x70,0x1, 0x28, +0xc, 0xe5,0x12,0xbe,0xb0,0x8, 0x28,0x5, 0x7e,0xf0,0x1, 0x80,0x1e,0x7e,0xf0,0x1, +0xbe,0x73,0xf, 0x1c,0x78,0x6, 0x6c,0xee,0x6c,0xff,0x80,0xf, 0x9e,0x73,0x15,0x54, +0xbe,0x73,0xf, 0x1c,0x78,0x5, 0x7e,0xe0,0x2, 0x6c,0xff,0x4c,0xff,0x78,0x5, 0x7c, +0xbe,0x12,0xd, 0x46,0xe5,0x10,0x7a,0xb3,0xd, 0xf7,0x7e,0x31,0x10,0x74,0x2, 0xac, +0x3b,0x7e,0x24,0x15,0x2b,0x7e,0x34,0xd, 0x18,0x12,0x6d,0x7d,0x75,0x12,0x64,0x75, +0x13,0x64,0x6c,0xee,0x80,0x67,0x6c,0xdd,0x80,0x59,0x74,0x2, 0xac,0xbd,0x9, 0x75, +0xd, 0x18,0xa, 0x27,0x74,0x2, 0xac,0xbe,0x9, 0x75,0xd, 0x18,0xa, 0x37,0x9d,0x32, +0x12,0x6e,0x11,0x7c,0xb7,0xf5,0x21,0x74,0x2, 0xac,0xbd,0x9, 0x75,0xd, 0x19,0xa, +0x27,0x74,0x2, 0xac,0xbe,0x9, 0x75,0xd, 0x19,0xa, 0x37,0x9d,0x32,0x12,0x6e,0x11, +0x7c,0xc7,0xe5,0x21,0xbe,0xb0,0x0, 0x28,0xa, 0xe5,0x12,0xbe,0xb1,0x21,0x28,0x3, +0x85,0x21,0x12,0xbe,0xc0,0x0, 0x28,0x9, 0xe5,0x13,0xbc,0xbc,0x28,0x3, 0x7a,0xc1, +0x13,0xb, 0xd0,0x7e,0x73,0xd, 0xf7,0xbc,0x7d,0x38,0x9f,0xb, 0xe0,0x7e,0x73,0xd, +0xf7,0xbc,0x7e,0x38,0x91,0xe5,0x12,0xb4,0x64,0x3, 0x75,0x12,0x0, 0xe5,0x13,0xb4, +0x64,0x3, 0x75,0x13,0x0, 0xe5,0x13,0xbe,0xb1,0x12,0x28,0xb, 0x85,0x13,0x12,0x80, +0x6, 0x75,0x12,0x64,0x75,0x13,0x64,0xda,0x3b,0x22,0x12,0x59,0xb0,0x70,0x3, 0x2, +0x45,0xb1,0x75,0x6e,0x14,0x75,0x6d,0x1, 0x6c,0x11,0x80,0x2d,0x7c,0xb1,0x54,0x7, +0xa, 0x3b,0x2e,0x34,0x6e,0xcb,0x7a,0x71,0x82,0x7a,0x61,0x83,0xe4,0x93,0x7c,0xab, +0x6e,0xa0,0xff,0x7c,0xb1,0xc4,0x23,0x54,0x1f,0xa, 0x1b,0x2e,0x14,0xd, 0x68,0x7e, +0x19,0x0, 0x5c,0xa, 0x7a,0x19,0x0, 0xb, 0x10,0x7e,0x3, 0xd, 0xf7,0xbc,0x1, 0x38, +0xcb,0x6c,0x11,0x80,0x32,0x7c,0xb1,0x54,0x7, 0xa, 0x3b,0x2e,0x34,0x6e,0xcb,0x7a, +0x71,0x82,0x7a,0x61,0x83,0xe4,0x93,0x7c,0xab,0x6e,0xa0,0xff,0x7c,0xb1,0xc4,0x23, +0x54,0x1f,0xa, 0x1b,0x2e,0x14,0xb, 0x79,0x7e,0x19,0x0, 0x5c,0xa, 0x7a,0x19,0x0, +0xe4,0x7a,0xb3,0xd, 0x16,0xb, 0x10,0x7e,0x3, 0xd, 0x16,0xbc,0x1, 0x38,0xc6,0xe4, +0x22,0xe5,0x6d,0xb4,0x1, 0x2, 0x80,0x3, 0x2, 0x46,0x3d,0x15,0x6e,0xe5,0x6e,0x60, +0x79,0x6c,0x11,0x80,0x2d,0x7c,0xb1,0x54,0x7, 0xa, 0x3b,0x2e,0x34,0x6e,0xcb,0x7a, +0x71,0x82,0x7a,0x61,0x83,0xe4,0x93,0x7c,0xab,0x6e,0xa0,0xff,0x7c,0xb1,0xc4,0x23, +0x54,0x1f,0xa, 0x1b,0x2e,0x14,0xd, 0x68,0x7e,0x19,0x0, 0x5c,0xa, 0x7a,0x19,0x0, +0xb, 0x10,0x7e,0x3, 0xd, 0xf7,0xbc,0x1, 0x38,0xcb,0x6c,0x11,0x80,0x32,0x7c,0xb1, +0x54,0x7, 0xa, 0x3b,0x2e,0x34,0x6e,0xcb,0x7a,0x71,0x82,0x7a,0x61,0x83,0xe4,0x93, +0x7c,0xab,0x6e,0xa0,0xff,0x7c,0xb1,0xc4,0x23,0x54,0x1f,0xa, 0x1b,0x2e,0x14,0xb, +0x79,0x7e,0x19,0x0, 0x5c,0xa, 0x7a,0x19,0x0, 0xe4,0x7a,0xb3,0xd, 0x16,0xb, 0x10, +0x7e,0x3, 0xd, 0x16,0xbc,0x1, 0x38,0xc6,0xe4,0x22,0x75,0x6d,0x0, 0xe5,0x21,0x22, +0xca,0x79,0x7e,0x74,0x10,0x7e,0x7e,0xb3,0x10,0xfe,0x20,0xe0,0x3, 0x2, 0x47,0x47, +0x54,0xfe,0x7a,0xb3,0x10,0xfe,0x9, 0x77,0x0, 0x2, 0xbe,0x73,0xf, 0x52,0x68,0x16, +0x7a,0x73,0xf, 0x52,0xa, 0x37,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x3e,0x34, +0x3e,0x34,0x7a,0x37,0xf, 0x48,0x7e,0x79,0x70,0xbe,0x73,0xf, 0x5c,0x68,0xe, 0x7a, +0x73,0xf, 0x5c,0xa, 0x37,0x3e,0x34,0x3e,0x34,0x7a,0x37,0xf, 0x54,0x9, 0x77,0x0, +0x1, 0xa, 0x37,0xbe,0x37,0xf, 0x56,0x68,0x4, 0x7a,0x37,0xf, 0x56,0x7e,0x27,0xf, +0x5d,0x1e,0x24,0x1e,0x24,0x1e,0x24,0x1e,0x24,0x9, 0x77,0x0, 0x5, 0xa, 0x37,0xbd, +0x32,0x68,0xc, 0x3e,0x34,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x7a,0x37,0xf, 0x5d,0x9, +0x77,0x0, 0x8, 0xbe,0x73,0x11,0x11,0x68,0x24,0x7a,0x73,0x11,0x11,0xbe,0x70,0xf, +0x40,0x5, 0xe4,0x19,0xb7,0x0, 0x8, 0x9, 0x77,0x0, 0x8, 0xa, 0x37,0x2e,0x34,0x6e, +0x31,0x7a,0x71,0x82,0x7a,0x61,0x83,0xe4,0x93,0x7a,0xb3,0x11,0x10,0x9, 0x77,0x0, +0x9, 0xbe,0x73,0x11,0x13,0x68,0x8, 0x7a,0x73,0x11,0x13,0x7a,0x73,0x11,0x12,0x9, +0x77,0x0, 0x7, 0xbe,0x73,0x11,0x14,0x68,0x4, 0x7a,0x73,0x11,0x14,0x9, 0xb7,0x0, +0xb, 0xbe,0xb1,0x51,0x68,0x5, 0xf5,0x51,0x12,0x6d,0x1f,0x9, 0x77,0x0, 0x25,0xa, +0x37,0xbe,0x37,0x11,0xd, 0x68,0x4, 0x7a,0x37,0x11,0xd, 0x9, 0x77,0x0, 0x6, 0xbe, +0x73,0x11,0xf, 0x68,0x4, 0x7a,0x73,0x11,0xf, 0x9, 0x77,0x0, 0x24,0xbe,0x73,0x11, +0x15,0x68,0x4, 0x7a,0x73,0x11,0x15,0xda,0x79,0x22,0xca,0x79,0xe4,0x6c,0xaa,0xa, +0x4a,0x19,0xb4,0xd, 0x68,0xb, 0xa0,0xbe,0xa0,0x3, 0x78,0xf3,0xe4,0x7a,0xb3,0xd, +0xf7,0x7a,0xb3,0xd, 0xf8,0x7a,0xb3,0xd, 0xf9,0x7a,0xb3,0xd, 0xfa,0x7e,0xb3,0xf, +0xd3,0xb4,0x1, 0x2, 0x80,0x3, 0x2, 0x48,0x50,0x7e,0xb3,0x10,0x2b,0xf5,0x21,0x7e, +0xb3,0x10,0x2c,0xf5,0x22,0x7e,0x37,0xf, 0x56,0x7a,0x35,0x23,0x7e,0x37,0xf, 0x58, +0x7a,0x35,0x25,0x7e,0x37,0xf, 0x5a,0x7a,0x35,0x27,0x7e,0x34,0x0, 0x14,0x7a,0x35, +0x2d,0x7e,0x37,0xf, 0xda,0x7e,0x24,0x0, 0x21,0x7e,0x14,0x0, 0x29,0x7e,0x4, 0x9, +0xc8,0x12,0x4e,0x15,0xe5,0x29,0x7a,0xb3,0xd, 0xf7,0xe5,0x2a,0x7a,0xb3,0xd, 0xf8, +0xe5,0x2b,0x7a,0xb3,0xd, 0xf9,0xe5,0x2c,0x7a,0xb3,0xd, 0xfa,0x6c,0xaa,0x80,0x6c, +0x7e,0x53,0xd, 0xf7,0xbc,0x5a,0x28,0x44,0x7c,0xba,0xc4,0x23,0x54,0x1f,0x7c,0x7b, +0x7c,0xba,0x54,0x7, 0x7e,0x44,0x0, 0x1, 0x60,0x5, 0x3e,0x44,0x14,0x78,0xfb,0x7c, +0x69,0x7e,0x30,0x2, 0xac,0x3a,0x49,0x71,0x9, 0xc8,0x7d,0x7, 0xa, 0x0, 0x7c,0x41, +0x19,0x41,0xd, 0x18,0x7d,0x7, 0x7c,0x41,0x19,0x41,0xd, 0x19,0xa, 0x47,0x2e,0x44, +0xd, 0x68,0x7e,0x49,0xb0,0x4c,0xb6,0x7a,0x49,0xb0,0x80,0x1e,0xa, 0x15,0xa, 0x2a, +0x9d,0x21,0x3e,0x24,0x49,0x72,0x9, 0xf0,0x7d,0x17,0xa, 0x12,0x7c,0xb3,0x19,0xb2, +0xd, 0x40,0x7d,0x17,0x7c,0xb3,0x19,0xb2,0xd, 0x41,0xb, 0xa0,0x7e,0xb3,0xd, 0xf8, +0xa, 0x2b,0x7e,0xb3,0xd, 0xf7,0xa, 0x1b,0x2d,0x12,0xa, 0x2a,0xbd,0x21,0x48,0x80, +0xda,0x79,0x22,0xc2,0xd5,0x7c,0xb4,0x30,0xe7,0x8, 0xb2,0xd5,0x6e,0x24,0xff,0xff, +0xb, 0x24,0x7c,0xb6,0x30,0xe7,0x12,0xb2,0xd5,0x6e,0x34,0xff,0xff,0xb, 0x34,0x8d, +0x32,0x6e,0x24,0xff,0xff,0xb, 0x24,0x80,0x2, 0x8d,0x32,0x30,0xd5,0x6, 0x6e,0x34, +0xff,0xff,0xb, 0x34,0x22,0x7d,0x51,0xad,0x3, 0x7d,0x2, 0x7d,0x21,0xad,0x5, 0x2d, +0x12,0xad,0x35,0x2d,0x21,0x22,0x7d,0x2, 0xad,0x31,0xad,0x10,0x2d,0x21,0x22,0x6d, +0x0, 0x74,0x10,0x4d,0x0, 0x78,0xb, 0x4d,0x22,0x78,0x27,0x8d,0x31,0x7d,0x12,0x6d, +0x22,0x22,0x7d,0x43,0x7d,0x32,0x6d,0x22,0x2f,0x11,0x2d,0x44,0x50,0x2, 0xa5,0xf, +0xbf,0x10,0x40,0x4, 0x9f,0x10,0xb, 0x90,0x14,0x78,0xed,0x7f,0x1, 0x6d,0x22,0x7d, +0x34,0x22,0x7d,0x41,0x7d,0x13,0x8d,0x24,0x7d,0x2, 0x2f,0x0, 0x40,0x4, 0xbd,0x4, +0x40,0x4, 0x9d,0x4, 0xb, 0x14,0x14,0x78,0xf1,0x7d,0x23,0x7d,0x31,0x7d,0x10,0x6d, +0x0, 0x22,0xc2,0xd5,0x7c,0xb0,0x30,0xe7,0x8, 0xb2,0xd5,0x9f,0x22,0x9f,0x20,0x7f, +0x2, 0x7c,0xb4,0x30,0xe7,0x13,0xb2,0xd5,0x9f,0x22,0x9f,0x21,0x7f,0x12,0x12,0x48, +0xa1,0x9f,0x22,0x9f,0x20,0x7f,0x2, 0x80,0x3, 0x12,0x48,0xa1,0x30,0xd5,0x6, 0x9f, +0x22,0x9f,0x21,0x7f,0x12,0x22,0x6c,0xaa,0x4d,0x11,0x68,0x1a,0x1e,0x54,0x68,0xe, +0xb, 0x38,0x20,0x1b,0x18,0x20,0xb, 0x35,0xb, 0x15,0x1b,0x54,0x78,0xf2,0x50,0x6, +0x7e,0x39,0x40,0x7a,0x19,0x40,0x22,0xca,0x79,0x6c,0xee,0x12,0x65,0xd9,0x7d,0x43, +0x6c,0xaa,0x6c,0x77,0x7e,0x30,0x6, 0xac,0x37,0x2e,0x14,0x6c,0x5d,0x7e,0x4, 0x0, +0xff,0xb, 0xa, 0x20,0xbd,0x24,0x48,0x4, 0x7c,0xa7,0x80,0x7, 0xb, 0x70,0xbe,0x70, +0x5, 0x40,0xe1,0xbe,0xa0,0x5, 0x78,0x3, 0x2, 0x4a,0x18,0x7e,0x63,0xd, 0xf7,0xbe, +0x60,0x0, 0x38,0x3, 0x2, 0x4a,0x18,0x6c,0x77,0x2, 0x4a,0xd, 0x6c,0xff,0x6c,0x66, +0x80,0x41,0x7e,0x90,0x30,0xac,0x96,0x7e,0x50,0x2, 0xac,0x57,0x2d,0x24,0x2e,0x27, +0xf, 0xda,0xb, 0x28,0x20,0x7e,0x30,0x6, 0xac,0x3a,0x7d,0xf1,0x2e,0xf4,0x6c,0x5f, +0x7e,0xe4,0x0, 0xff,0xb, 0x7a,0x0, 0xbd,0x2, 0x18,0x14,0xb, 0xf0,0x2e,0x14,0x6c, +0x61,0x7a,0x31,0x82,0x7a,0x21,0x83,0xe4,0x93,0xbc,0xbf,0x28,0xe, 0x80,0x2, 0x6c, +0xff,0xb, 0x60,0x7e,0xb3,0x10,0x2b,0xbc,0xb6,0x38,0xb7,0x7e,0x50,0x6, 0xac,0x5a, +0x7d,0x12,0x2e,0x14,0x6c,0x61,0x7a,0x31,0x82,0x7a,0x21,0x83,0xe4,0x93,0xbc,0xbf, +0x38,0x17,0xb, 0xe0,0x2e,0x24,0x6c,0x62,0x7a,0x51,0x82,0x7a,0x41,0x83,0xe4,0x93, +0xbc,0xbe,0x38,0x7, 0x75,0x14,0x40,0x80,0xf, 0x6c,0xee,0xb, 0x70,0x7e,0xb3,0x10, +0x2c,0xbc,0xb7,0x28,0x3, 0x2, 0x49,0x8c,0xe5,0x15,0x25,0x14,0xf5,0x14,0xbe,0xb0, +0x0, 0x28,0xb, 0x15,0x14,0xe4,0x7a,0xb3,0xf, 0xd3,0x7a,0xb3,0xf, 0xd2,0xda,0x79, +0x22,0x7d,0x53,0x9f,0x11,0xbe,0x54,0x0, 0x0, 0x40,0x2d,0xbe,0x54,0x0, 0x3f,0x38, +0x27,0x7e,0x24,0x0, 0x3f,0x9d,0x25,0x7e,0x34,0x1, 0x8e,0xad,0x32,0x6d,0x22,0x7c, +0x76,0x7c,0x65,0x1a,0x24,0xbe,0x18,0x0, 0x34,0x48,0x4, 0x7e,0x18,0x0, 0x34,0x7e, +0x8, 0x0, 0x34,0x9f,0x1, 0x7f,0x10,0x22,0xbe,0x54,0x5, 0x80,0x40,0x29,0xbe,0x54, +0x5, 0xb8,0x38,0x23,0x7d,0x25,0x9e,0x24,0x5, 0x7f,0x7e,0x34,0x1, 0x8e,0xad,0x32, +0x6d,0x22,0x7c,0x76,0x7c,0x65,0x1a,0x24,0xbe,0x18,0x0, 0x32,0x48,0x4, 0x7e,0x18, +0x0, 0x31,0x2e,0x18,0x4, 0xce,0x22,0xbe,0x54,0x5, 0xb8,0x28,0x19,0x7d,0x25,0x9e, +0x24,0x5, 0x9f,0x7e,0x34,0x1, 0x8e,0xad,0x32,0x6d,0x22,0x7c,0x76,0x7c,0x65,0x1a, +0x24,0x2e,0x18,0x5, 0x0, 0x22,0xbe,0x54,0x2, 0xdf,0x38,0xe, 0x7e,0x34,0x2, 0xdf, +0x9d,0x35,0x6d,0x22,0x7e,0x14,0x0, 0xdf,0x80,0xc, 0x7d,0x35,0x9e,0x34,0x2, 0xe0, +0x6d,0x22,0x7e,0x14,0x0, 0xe1,0x12,0x48,0x96,0x7c,0x76,0x7c,0x65,0x1a,0x24,0xbe, +0x54,0x2, 0xdf,0x38,0xa, 0x7e,0x8, 0x2, 0x7f,0x9f,0x1, 0x7f,0x10,0x80,0x4, 0x2e, +0x18,0x2, 0x80,0xbe,0x18,0x0, 0x34,0x58,0x5, 0x7e,0x18,0x0, 0x34,0x22,0xbe,0x18, +0x4, 0xce,0x8, 0x4, 0x7e,0x18,0x4, 0xce,0x22,0xca,0x3b,0x7e,0x73,0xd, 0xfb,0x7a, +0x73,0xd, 0xfc,0x7e,0xa3,0xf, 0x1b,0x7a,0xa3,0xf, 0x1c,0xe4,0x7a,0xb3,0xf, 0x1f, +0x7e,0x37,0x11,0xd, 0x4d,0x33,0x78,0x3f,0xbe,0xa0,0x0, 0x28,0x8, 0xe4,0x7a,0xb3, +0x16,0xab,0x2, 0x4b,0xd0,0x7e,0xb3,0x11,0xf, 0x20,0xe0,0x3, 0x2, 0x4b,0xd0,0x7e, +0xb3,0x11,0x14,0xbe,0xb3,0x16,0xab,0x28,0x3, 0x2, 0x4b,0xd0,0xe4,0x7a,0xb3,0x16, +0xab,0x7e,0x24,0x0, 0x1, 0x7a,0x27,0x11,0xd, 0x74,0x1, 0x7a,0xb3,0x10,0xa3,0x74, +0x1e,0x7a,0xb3,0x11,0x12,0x80,0x69,0xbe,0x34,0x0, 0x1, 0x78,0x22,0xbe,0xa0,0x0, +0x28,0x5e,0x6d,0x22,0x7a,0x27,0x11,0xd, 0xe4,0x7a,0xb3,0x10,0xa3,0x7a,0xb3,0x16, +0xab,0x74,0x23,0x7a,0xb3,0x16,0xae,0x74,0x1, 0x7a,0xb3,0x16,0xad,0x80,0x41,0xbe, +0x34,0x0, 0x3, 0x78,0x3b,0x6d,0x66,0x7a,0x67,0x10,0x1, 0x7e,0x74,0xd, 0xac,0x7a, +0x77,0xa, 0xaf,0x12,0x6f,0xd, 0x12,0x60,0x8c,0x12,0x58,0xcd,0x6d,0x33,0x7a,0x37, +0x11,0xd, 0xe4,0x7a,0xb3,0x10,0xa3,0x74,0x1, 0x7a,0xb3,0x16,0xad,0x7a,0x67,0x10, +0x1, 0x7a,0x77,0xa, 0xaf,0x75,0x9a,0x7f,0xa9,0xd1,0x99,0xd2,0x9c,0xa9,0xd6,0xdf, +0x7e,0xb3,0x16,0xad,0x70,0x6, 0x12,0x5b,0xd3,0x12,0x64,0x8e,0xda,0x3b,0x22,0x7e, +0x34,0x10,0x7e,0x7e,0x24,0x0, 0x81,0xe4,0x12,0x6e,0x21,0x74,0xc, 0x7a,0xb3,0x10, +0x80,0x7a,0xb3,0x10,0x81,0x74,0x9, 0x7a,0xb3,0x10,0x82,0x74,0xf, 0x7a,0xb3,0x10, +0x7e,0x74,0x3c,0x7a,0xb3,0x10,0x7f,0x74,0xa0,0x7a,0xb3,0x10,0x83,0x74,0x1e,0x7a, +0xb3,0x10,0x85,0x74,0x9, 0x7a,0xb3,0x10,0x86,0x74,0x1e,0x7a,0xb3,0x10,0x87,0xe4, +0x7a,0xb3,0x10,0x88,0x7a,0xb3,0x10,0x89,0xf5,0x52,0xf5,0x51,0x7a,0xb3,0x10,0xa3, +0x74,0x1, 0x7a,0xb3,0x10,0x84,0x7a,0xb3,0x10,0xa2,0x7a,0xb3,0x10,0xa5,0x74,0x4, +0x7a,0xb3,0x10,0xa4,0x74,0x51,0x7a,0xb3,0x10,0xa6,0x74,0xb, 0x7a,0xb3,0x10,0xad, +0x12,0x6e,0xfa,0xa, 0x36,0x7a,0x73,0x10,0xa7,0x12,0x6e,0xfa,0x7a,0x73,0x10,0xa8, +0x12,0x6e,0xff,0xa, 0x36,0x7a,0x73,0x10,0x9f,0x12,0x6e,0xff,0x7a,0x73,0x10,0xa0, +0xe4,0x7a,0xb3,0x10,0xae,0x74,0x1f,0x7a,0xb3,0x10,0xcf,0xe4,0x7a,0xb3,0x10,0xb0, +0x12,0x6e,0x4e,0x7a,0xb3,0x10,0xaf,0x12,0x6d,0x4f,0x7a,0xb3,0x10,0xa1,0x7e,0x34, +0x10,0x8e,0x7e,0x24,0x0, 0x8, 0x74,0xff,0x12,0x6e,0x21,0x74,0x4, 0x7a,0xb3,0x10, +0x8e,0x74,0x1, 0x7a,0xb3,0x10,0x8f,0x22,0x7d,0xf3,0xbe,0xf4,0x0, 0x0, 0x40,0x2d, +0xbe,0xf4,0x0, 0x3f,0x38,0x27,0x7e,0x44,0x0, 0x3f,0x9d,0x4f,0x7e,0x54,0x1, 0x8c, +0xad,0x54,0x6d,0x44,0x7c,0xba,0x7c,0xa9,0xbe,0x28,0x0, 0x32,0x40,0x4, 0x7e,0x28, +0x0, 0x32,0x7e,0x18,0x0, 0x32,0x9f,0x12,0x7f,0x21,0x2, 0x4d,0x5c,0xbe,0xf4,0x3, +0x0, 0x40,0x22,0x7d,0x4f,0x9e,0x44,0x3, 0x0, 0x7e,0x54,0x1, 0xbe,0xad,0x54,0x6d, +0x44,0x7c,0xba,0x7c,0xa9,0xbe,0x28,0x0, 0x32,0x40,0x4, 0x7e,0x28,0x0, 0x31,0x2e, +0x28,0x2, 0x9e,0x80,0x57,0xbe,0xf4,0x1, 0x9f,0x38,0xe, 0x7e,0x54,0x1, 0x9f,0x9d, +0x5f,0x6d,0x44,0x7e,0x14,0x0, 0xe0,0x80,0xc, 0x7d,0x5f,0x9e,0x54,0x1, 0xa0,0x6d, +0x44,0x7e,0x14,0x0, 0xe2,0x7f,0x12,0x12,0x48,0x96,0x7f,0x21,0x7c,0xba,0x7c,0xa9, +0xa, 0x48,0xbe,0xf4,0x1, 0x9f,0x38,0xa, 0x7e,0x18,0x1, 0x67,0x9f,0x12,0x7f,0x21, +0x80,0x4, 0x2e,0x28,0x1, 0x68,0xbe,0x28,0x0, 0x32,0x50,0x6, 0x7e,0x28,0x0, 0x32, +0x80,0xa, 0xbe,0x28,0x2, 0x9e,0x28,0x4, 0x7e,0x28,0x2, 0x9e,0x7d,0x35,0x22,0xca, +0x3b,0x6d,0x11,0x7d,0x1, 0x7d,0x21,0x7e,0xa0,0x2, 0x7e,0x70,0x2, 0x6c,0x66,0x80, +0x39,0x6c,0x99,0x80,0x2b,0x7e,0xd0,0x30,0xac,0xd6,0x7e,0xf0,0x2, 0xac,0xf9,0x7d, +0xf7,0x2d,0xf6,0x2e,0xf7,0xf, 0xda,0xb, 0xf8,0xf0,0xbe,0xf4,0x0, 0x14,0x8, 0x4, +0xb, 0x4, 0x80,0x8, 0xbe,0xf4,0xff,0xec,0x58,0x2, 0xb, 0x24,0xb, 0x14,0x2c,0x97, +0x7e,0xb3,0x10,0x2c,0xbc,0xb9,0x38,0xcd,0x2c,0x6a,0x7e,0xb3,0x10,0x2b,0xbc,0xb6, +0x38,0xbf,0x7e,0x54,0x0, 0x3, 0xad,0x51,0x7d,0x35,0x1e,0x34,0x1e,0x34,0xbd,0x30, +0x50,0x1f,0xe4,0x7a,0xb3,0x16,0xb5,0x7e,0xb3,0x16,0xb6,0xbe,0xb0,0x5, 0x50,0x7, +0x4, 0x7a,0xb3,0x16,0xb6,0x80,0x39,0xe4,0x7a,0xb3,0x16,0xb6,0x75,0x71,0x1, 0x80, +0x2f,0xbd,0x32,0x50,0x1f,0xe4,0x7a,0xb3,0x16,0xb6,0x7e,0xb3,0x16,0xb5,0xbe,0xb0, +0x5, 0x50,0x7, 0x4, 0x7a,0xb3,0x16,0xb5,0x80,0x16,0xe4,0x7a,0xb3,0x16,0xb5,0x75, +0x71,0x2, 0x80,0xc, 0xe4,0x7a,0xb3,0x16,0xb5,0x7a,0xb3,0x16,0xb6,0x75,0x71,0x0, +0xe5,0x71,0xda,0x3b,0x22,0xa9,0xd6,0xcb,0x7c,0xb7,0xf5,0xb9,0xa, 0x56,0xf5,0xba, +0x7e,0x55,0x2d,0xf5,0xbb,0xf5,0xbc,0x7c,0xb1,0xf5,0xbd,0xa, 0x50,0xf5,0xc1,0x9, +0xb2,0x0, 0x1, 0x44,0xa0,0xf5,0xc3,0x7e,0x29,0xa0,0xe5,0xc4,0x54,0xe0,0x4c,0xba, +0xf5,0xc4,0x75,0xc5,0x40,0x75,0xc5,0x1, 0x49,0x32,0x0, 0x2, 0x7c,0xb7,0xf5,0xc6, +0x75,0xc5,0x2, 0xa, 0x56,0xf5,0xc6,0x75,0xc5,0x3, 0x49,0x32,0x0, 0x4, 0x6e,0x34, +0xff,0xff,0xb, 0x34,0x7d,0x53,0x5e,0x54,0x0, 0xff,0xf5,0xc6,0x75,0xc5,0x4, 0x1a, +0x56,0x5e,0x54,0x0, 0xff,0xf5,0xc6,0x75,0xc5,0x5, 0x49,0x2, 0x0, 0x6, 0x7c,0xb1, +0xf5,0xc6,0x75,0xc5,0x6, 0xa, 0x50,0xf5,0xc6,0x43,0xc2,0x9, 0x2, 0x4e,0x96,0x43, +0xc2,0x9, 0x0, 0x0, 0x0, 0x0, 0xa9,0x37,0xc2,0xf5,0x75,0xc2,0x0, 0x75,0xc5,0xa, +0xe5,0xc6,0x19,0xb1,0x0, 0x2, 0x75,0xc5,0xb, 0xe5,0xc6,0x19,0xb1,0x0, 0x3, 0x75, +0xc5,0xc, 0xe5,0xc6,0x7a,0x19,0xb0,0x75,0xc5,0xd, 0xe5,0xc6,0x19,0xb1,0x0, 0x1, +0xa9,0xc6,0xcb,0x22,0xca,0x3b,0x6c,0xff,0x7e,0xb3,0xf, 0xd2,0x60,0x6, 0x7e,0xb3, +0xf, 0xd3,0x70,0x18,0x7e,0x34,0xd, 0x68,0x7e,0x24,0x0, 0x3, 0xe4,0x12,0x6e,0x21, +0x7e,0x34,0xb, 0x79,0x7e,0x24,0x0, 0xd, 0xe4,0x12,0x6e,0x21,0x6c,0xee,0x80,0x6b, +0x74,0x2, 0xac,0xbe,0x9, 0x75,0xd, 0x18,0x7a,0x71,0x21,0x9, 0x65,0xd, 0x19,0x7a, +0x61,0x22,0x7c,0xbe,0xc4,0x23,0x54,0x1f,0x7c,0xdb,0x7c,0xbe,0x54,0x7, 0x7e,0x24, +0x0, 0x1, 0x60,0x5, 0x3e,0x24,0x14,0x78,0xfb,0x7c,0xc5,0x7e,0x50,0x30,0xac,0x57, +0x7e,0x70,0x2, 0xac,0x67,0x2d,0x32,0x2e,0x37,0xf, 0xda,0xb, 0x38,0x30,0xbe,0x37, +0xf, 0x54,0x48,0x25,0xa, 0x3d,0x9, 0xb3,0xd, 0x68,0x5c,0xbc,0x68,0x1b,0x7e,0x50, +0x7, 0xac,0x5e,0x2e,0x24,0xd, 0x6b,0x7e,0x70,0x7, 0xac,0x7f,0x2e,0x34,0xe, 0xd, +0x7e,0x14,0x0, 0x7, 0x12,0x6d,0x7d,0xb, 0xf0,0xb, 0xe0,0x7e,0x73,0xd, 0xf7,0xbc, +0x7e,0x38,0x8d,0x7a,0x73,0xd, 0xfb,0x7a,0xf3,0xf, 0x1b,0xda,0x3b,0x22,0xca,0xf8, +0x7c,0xb, 0x6c,0xaa,0x6d,0xee,0x7d,0xfe,0x6c,0xff,0x2, 0x50,0x9, 0x7e,0x90,0x2, +0xac,0x9f,0x7d,0xd4,0x2d,0xd3,0xb, 0xd8,0x40,0x4c,0x11,0x68,0x6, 0x6e,0x44,0xff, +0xff,0xb, 0x44,0xbd,0x24,0x58,0x70,0xbe,0xa0,0xa, 0x50,0x6b,0x4c,0xff,0x78,0x14, +0x49,0xed,0x0, 0x2, 0x4c,0x11,0x68,0x6, 0x6e,0xe4,0xff,0xff,0xb, 0xe4,0xbd,0xe4, +0x18,0x55,0x80,0x1c,0x7c,0xb0,0x14,0xbc,0xbf,0x78,0x20,0x7d,0xfd,0x1b,0xf5,0xb, +0xf8,0xf0,0x4c,0x11,0x68,0x6, 0x6e,0xf4,0xff,0xff,0xb, 0xf4,0xbd,0xf4,0x18,0x37, +0xa, 0xca,0x2d,0xc1,0x7a,0xc9,0xf0,0xb, 0xa0,0x80,0x2c,0x7d,0xcd,0x1b,0xc5,0xb, +0xc8,0xf0,0x49,0xed,0x0, 0x2, 0x4c,0x11,0x68,0xc, 0x6e,0xf4,0xff,0xff,0xb, 0xf4, +0x6e,0xe4,0xff,0xff,0xb, 0xe4,0xbd,0xf4,0x18,0xd, 0xbd,0xe4,0x18,0x9, 0xa, 0xda, +0x2d,0xd1,0x7a,0xd9,0xf0,0xb, 0xa0,0xb, 0xf0,0xbc,0xf, 0x28,0x3, 0x2, 0x4f,0x7d, +0x7c,0xba,0xda,0xf8,0x22,0xca,0x3b,0x6d,0x33,0x7d,0x73,0x75,0x25,0x0, 0x7e,0x64, +0x5, 0xe0,0x75,0x23,0x0, 0x80,0x3c,0x75,0x24,0x0, 0x7e,0x51,0x23,0x74,0x18,0xac, +0x5b,0x3e,0x24,0x7e,0x71,0x24,0x74,0x2, 0xac,0x7b,0x2d,0x32,0x2d,0x36,0x7a,0x35, +0x21,0x49,0x23,0x0, 0x30,0xb, 0x38,0x30,0x9d,0x32,0x12,0x6e,0x11,0xe5,0x24,0xb4, +0x17,0x2, 0x1e,0x34,0xbd,0x37,0x28,0x2, 0x7d,0x73,0x5, 0x24,0xe5,0x24,0xb4,0x18, +0xc9,0x5, 0x23,0xe5,0x25,0xa, 0x2b,0x7e,0x33,0x10,0x7c,0xa, 0x13,0x9d,0x12,0x1b, +0x14,0xe5,0x23,0xa, 0x2b,0xbd,0x21,0x48,0xae,0xbe,0x74,0x0, 0x41,0x28,0x11,0x7e, +0x34,0x0, 0x73,0x7e,0xa3,0x16,0x25,0x74,0x12,0xa4,0x59,0x35,0x16,0x36,0x80,0x26, +0x7e,0x43,0x16,0x25,0x7e,0x50,0x12,0xac,0x45,0x49,0x32,0x16,0x36,0xbd,0x37,0x50, +0x6, 0x59,0x72,0x16,0x36,0x80,0xf, 0xbe,0x34,0x0, 0x0, 0x28,0x9, 0x2e,0x24,0x16, +0x36,0x1b,0x34,0x1b,0x28,0x30,0xda,0x3b,0x22,0xca,0x7b,0xca,0x6b,0xca,0x5b,0xca, +0x4b,0xca,0x2b,0xca,0x1b,0xca,0xb, 0xc0,0xd0,0xc0,0x83,0xc0,0x82,0x12,0x0, 0x46, +0x7e,0x35,0x6b,0xb, 0x34,0x7a,0x35,0x6b,0x7e,0xb3,0x16,0xba,0x4, 0x7a,0xb3,0x16, +0xba,0x7e,0x35,0x6b,0xbe,0x34,0x3, 0xe8,0x40,0x13,0x6d,0x33,0x7a,0x35,0x6b,0x7e, +0xb3,0x16,0xab,0xbe,0xb0,0x64,0x50,0x5, 0x4, 0x7a,0xb3,0x16,0xab,0x7e,0x73,0x16, +0xaf,0xbe,0x73,0x16,0xae,0x28,0xb, 0x7e,0xb3,0x16,0xae,0x4, 0x7a,0xb3,0x16,0xae, +0x80,0x6, 0x74,0x1, 0x7a,0xb3,0x16,0xad,0x7e,0xb3,0x16,0xb0,0x60,0x5, 0x14,0x7a, +0xb3,0x16,0xb0,0x7e,0x37,0x10,0x1, 0xb, 0x34,0x7a,0x37,0x10,0x1, 0x7e,0x37,0xa, +0xaf,0xbe,0x37,0x10,0x1, 0x28,0x3, 0x12,0x6f,0x10,0xd0,0x82,0xd0,0x83,0xd0,0xd0, +0xda,0xb, 0xda,0x1b,0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda,0x7b,0x32,0x75, +0x84,0x1, 0x7e,0x44,0x4, 0x1f,0xe4,0x7a,0x49,0xb0,0x1b,0x44,0x78,0xf9,0x7e,0xf8, +0x16,0xbb,0x75,0x6a,0x0, 0x75,0x8, 0x1, 0x75,0x9, 0x0, 0x75,0xa, 0x0, 0x75,0xc, +0x0, 0x75,0xd, 0x0, 0x75,0xe, 0x0, 0x75,0xf, 0x0, 0xc2,0x0, 0x75,0x11,0x0, 0x75, +0x12,0x64,0x75,0x13,0x64,0x75,0x14,0x0, 0x75,0x15,0x0, 0x75,0x18,0x1, 0x75,0x6b, +0x0, 0x75,0x6c,0x0, 0x75,0x71,0x0, 0x75,0x6d,0x0, 0x75,0x72,0x0, 0x75,0x73,0x1, +0x75,0x6f,0x18,0x75,0x70,0x0, 0x75,0x74,0x0, 0x75,0x75,0x0, 0x75,0x1d,0x0, 0x75, +0x1e,0xff,0x75,0x1f,0x0, 0x7e,0x4, 0x0, 0xff,0x7e,0x14,0x6f,0x17,0xb, 0xa, 0x40, +0x5d,0x44,0x68,0x1a,0x69,0x20,0x0, 0x2, 0xb, 0xe, 0xb, 0x44,0x80,0xa, 0x7e,0xb, +0xb0,0x7a,0x29,0xb0,0xb, 0x24,0xb, 0xc, 0x1b,0x44,0x78,0xf2,0x80,0xdf,0x2, 0x5c, +0x38,0xca,0xd8,0xca,0x79,0x7c,0xdb,0xbe,0xd0,0x4, 0x78,0xc, 0x7e,0x34,0x10,0x2b, +0x12,0x6b,0x58,0xa9,0xc7,0xea,0x80,0x27,0xbe,0xd0,0x5, 0x78,0x1f,0xa9,0xd7,0xea, +0x7e,0xe3,0x10,0x4a,0x7e,0xf3,0x10,0x4d,0xe4,0x7a,0xb3,0x10,0x4d,0x12,0x66,0x8d, +0x7a,0xb3,0x10,0x4a,0x74,0x1, 0x7a,0xb3,0x10,0x78,0x80,0x3, 0xe4,0x80,0x4e,0x7e, +0xb3,0x11,0x96,0x7e,0x34,0x10,0x2b,0xb4,0x1, 0xa, 0x12,0x31,0xfb,0xe4,0x7a,0xb3, +0x11,0x96,0x80,0xa, 0x12,0x61,0x38,0x7e,0x34,0x10,0x2b,0x12,0x5e,0x27,0x7e,0x34, +0x10,0x2b,0x12,0x6a,0xa5,0x7e,0xb3,0x10,0xa5,0xb4,0x3, 0xa, 0x7e,0x73,0x11,0xe8, +0x2e,0x70,0xff,0xa9,0x94,0xca,0x12,0x69,0x64,0xbe,0xd0,0x5, 0x78,0xd, 0x7a,0xe3, +0x10,0x4a,0x7a,0xf3,0x10,0x4d,0xe4,0x7a,0xb3,0x10,0x78,0x74,0x1, 0xda,0x79,0xda, +0xd8,0x22,0x7e,0x34,0xe, 0xd, 0x7e,0x24,0x0, 0x46,0x74,0xff,0x12,0x6e,0x21,0x7e, +0x34,0xe, 0x53,0x7e,0x24,0x0, 0x46,0x74,0xff,0x12,0x6e,0x21,0x7e,0x34,0xe, 0x99, +0x7e,0x24,0x0, 0x46,0x74,0xff,0x12,0x6e,0x21,0x6c,0xaa,0x74,0x3, 0xa, 0x4a,0x19, +0xb4,0xe, 0xdf,0x19,0xb4,0xe, 0xe9,0x7e,0x44,0xff,0xff,0x7e,0x70,0x2, 0xac,0x7a, +0x59,0x43,0xe, 0xf3,0x7e,0x70,0x2, 0xac,0x7a,0x59,0x43,0xf, 0x7, 0xb, 0xa0,0xbe, +0xa0,0xa, 0x40,0xd7,0xe4,0x7a,0xb3,0xf, 0x1b,0x7a,0xb3,0xf, 0x1c,0x7a,0xb3,0xf, +0x1d,0x7a,0xb3,0xf, 0x1f,0x7a,0xb3,0xf, 0x20,0x7a,0xb3,0xf, 0x21,0x7a,0xb3,0xf, +0x22,0x7a,0xb3,0xf, 0x23,0x7a,0xb3,0xf, 0x24,0x7a,0xb3,0xf, 0x25,0x12,0x6a,0xee, +0x74,0x3, 0x7a,0xb3,0xf, 0x26,0x74,0x1, 0x7a,0xb3,0xf, 0x27,0xe4,0x7a,0xb3,0xf, +0x28,0x22,0xca,0xf8,0x7c,0xab,0x6c,0x33,0x7c,0x27,0x80,0x73,0x7e,0x90,0x7, 0xac, +0x93,0x9, 0xf4,0xe, 0x57,0x7e,0x10,0x7, 0xac,0x12,0x9, 0xb0,0xe, 0x11,0xbc,0xfb, +0x78,0x5b,0xbe,0xf0,0xff,0x68,0x56,0x7e,0x10,0x7, 0xac,0x1a,0x7d,0xf0,0x2d,0xf2, +0x19,0xff,0x0, 0x4, 0x49,0x44,0xe, 0x53,0x2d,0x2, 0x1b,0x8, 0x40,0x7e,0x10,0x7, +0xac,0x13,0x49,0x0, 0xe, 0x55,0x7e,0x90,0x7, 0xac,0x9a,0x2d,0x42,0x59,0x4, 0x0, +0x2, 0x7e,0x10,0x7, 0xac,0x12,0x9, 0x10,0xe, 0x12,0x7e,0x90,0x7, 0xac,0x9a,0x2d, +0x42,0x19,0x14,0x0, 0x5, 0x7e,0x10,0x7, 0xac,0x12,0x9, 0x10,0xe, 0x13,0x7e,0x90, +0x7, 0xac,0x9a,0x2d,0x42,0x19,0x14,0x0, 0x6, 0xb, 0xa0,0x80,0x6, 0xb, 0x20,0xbc, +0x62,0x38,0x89,0xb, 0x30,0xbe,0x30,0xa, 0x50,0x3, 0x2, 0x53,0x8, 0x7c,0xba,0xda, +0xf8,0x22,0x7c,0xab,0xbe,0xa0,0x1, 0x40,0x3b,0xbe,0xa0,0x3e,0x38,0x36,0xbe,0xa0, +0x4, 0x78,0x6, 0x74,0x1, 0x7a,0xb3,0x15,0xde,0xbe,0xa0,0x1, 0x68,0xa, 0xbe,0xa0, +0x2, 0x68,0x5, 0xbe,0xa0,0x3, 0x78,0x11,0x30,0x0, 0x6, 0x7e,0x34,0x0, 0x76,0x80, +0x4, 0x7e,0x34,0x0, 0xb8,0x7a,0x37,0x0, 0xfd,0xa, 0x3a,0x2e,0x37,0x0, 0xfd,0x9, +0xb3,0x0, 0x2, 0x22,0x4c,0xaa,0x78,0x3, 0xe5,0xb, 0x22,0xbe,0xa0,0x80,0x40,0xc, +0xbe,0xa0,0xdf,0x38,0x7, 0xa, 0x3a,0x9, 0xb3,0xf, 0xfe,0x22,0xbe,0xa0,0xfc,0x78, +0x5, 0x7e,0xb3,0x10,0xa5,0x22,0xbe,0xa0,0xfd,0x78,0x8, 0x7e,0x37,0x10,0x46,0x7e, +0x39,0xb0,0x22,0xbe,0xa0,0xfe,0x78,0x5, 0x7e,0xb3,0x10,0x4a,0x22,0xbe,0xa0,0xf9, +0x78,0x5, 0x7e,0xb3,0x16,0xbb,0x22,0xbe,0xa0,0xfa,0x78,0x3, 0xe5,0x6a,0x22,0xe4, +0x22,0xca,0x3b,0x7d,0x72,0x7d,0x63,0x7e,0xb3,0x10,0x4d,0xf5,0x24,0xe4,0x7a,0xb3, +0x10,0x4d,0x7e,0x34,0x10,0x2b,0x12,0x31,0xfb,0x7e,0x34,0x10,0x2b,0x12,0x6a,0xa5, +0x75,0x21,0x0, 0x12,0x69,0x64,0x12,0x6e,0xb9,0x60,0xfb,0xa9,0xb7,0xea,0x7d,0x36, +0x7d,0x27,0x7e,0x14,0x18,0x0, 0x12,0x67,0xe2,0x75,0x22,0x0, 0x80,0x36,0x75,0x23, +0x0, 0x80,0x26,0x7e,0x51,0x22,0x74,0x18,0xac,0x5b,0xe5,0x23,0xa, 0x3b,0x2d,0x23, +0x3e,0x24,0x7d,0x32,0x2d,0x36,0xb, 0x38,0x10,0xe, 0x14,0xe, 0x14,0x2d,0x27,0xb, +0x28,0x30,0x2d,0x31,0x1b,0x28,0x30,0x5, 0x23,0x7e,0x73,0x10,0x2c,0xbe,0x71,0x23, +0x38,0xd1,0x5, 0x22,0x7e,0x73,0x10,0x2b,0xbe,0x71,0x22,0x38,0xc1,0x5, 0x21,0xe5, +0x21,0xbe,0xb0,0x4, 0x40,0x9d,0xe5,0x24,0x7a,0xb3,0x10,0x4d,0xda,0x3b,0x22,0xca, +0xf8,0x30,0x90,0x58,0xc2,0x90,0x5, 0xa, 0xe5,0xa, 0xb4,0x1, 0x6, 0xe5,0x91,0xf5, +0xf, 0x80,0x29,0xe5,0xb, 0xc4,0x7c,0xfb,0x5e,0xf0,0x7, 0x78,0xe, 0xe5,0xa, 0x25, +0xf, 0x24,0xfe,0x7e,0x71,0x91,0x12,0x56,0xd7,0x80,0x11,0xbe,0xf0,0x4, 0x78,0xc, +0xe5,0xa, 0x25,0xf, 0x24,0xfe,0x7e,0x71,0x91,0x12,0x15,0xe2,0xe5,0xb, 0xc4,0x7c, +0x5b,0x5e,0x50,0x7, 0xa5,0xbd,0x0, 0x9, 0xe5,0xf, 0x12,0x53,0x92,0xf5,0x91,0x80, +0xb, 0xa5,0xbd,0x4, 0x7, 0xe5,0xf, 0x12,0x27,0x4a,0xf5,0x91,0x30,0x91,0x28,0xc2, +0x91,0x5, 0x9, 0xe5,0xb, 0xc4,0x7c,0x5b,0x5e,0x50,0x7, 0xa5,0xbd,0x0, 0xb, 0xe5, +0x9, 0x25,0xf, 0x12,0x53,0x92,0xf5,0x91,0x80,0xd, 0xa5,0xbd,0x4, 0x9, 0xe5,0x9, +0x25,0xf, 0x12,0x27,0x4a,0xf5,0x91,0xda,0xf8,0x22,0x6c,0x33,0xbe,0x30,0x18,0x50, +0x1e,0xa, 0x3, 0x2e,0x7, 0x10,0x35,0x7e,0x9, 0xa0,0x7c,0xba,0x30,0xe0,0xc, 0xa, +0x5a,0x2e,0x54,0x0, 0x18,0xe, 0x54,0x7c,0xab,0x80,0x16,0x1e,0xa0,0x80,0x12,0xa, +0x3, 0x2e,0x7, 0x10,0x33,0x9, 0x20,0xff,0xe8,0xa, 0x52,0x2e,0x54,0x0, 0x18,0x7c, +0xab,0x7e,0x23,0x10,0x3a,0xbe,0x20,0x3, 0x28,0xe, 0x7e,0x10,0x2, 0xac,0x1a,0x2d, +0x2, 0xb, 0x8, 0x0, 0x1e,0x4, 0x80,0x21,0xa, 0x42,0x2e,0x44,0x0, 0xc, 0x7e,0x4, +0x0, 0xf, 0x9d,0x4, 0x7c,0x21,0x7e,0x10,0x2, 0xac,0x1a,0x2d,0x2, 0xb, 0x8, 0x0, +0x7c,0xb2,0x60,0x5, 0x3e,0x4, 0x14,0x78,0xfb,0x7e,0x44,0x7f,0xff,0x9d,0x40,0x7e, +0x10,0x2, 0xac,0x13,0x2d,0x3, 0x1b,0x8, 0x40,0xb, 0x30,0xbe,0x30,0x25,0x50,0x3, +0x2, 0x55,0x3c,0x22,0x6c,0xaa,0x7e,0x50,0x2, 0xac,0x5a,0x7d,0x32,0x2e,0x37,0xf, +0xd6,0xb, 0x38,0x10,0xbe,0x17,0xe, 0x7, 0x8, 0x12,0x7d,0x2, 0x2e,0x7, 0xf, 0xd4, +0xb, 0x8, 0x30,0x2e,0x37,0xe, 0x7, 0x1b,0x8, 0x30,0x80,0x18,0x6d,0x33,0x9e,0x37, +0xe, 0x7, 0xbd,0x13,0x58,0xe, 0x2e,0x27,0xf, 0xd4,0xb, 0x28,0x30,0x9e,0x37,0xe, +0x7, 0x1b,0x28,0x30,0xb, 0xa0,0xbe,0xa0,0x25,0x78,0xbb,0x6c,0xaa,0x7e,0x50,0x2, +0xac,0x5a,0x49,0x12,0x9, 0x2e,0xbe,0x17,0xe, 0x7, 0x8, 0x12,0x7d,0x2, 0x2e,0x4, +0x8, 0xe4,0xb, 0x8, 0x30,0x2e,0x37,0xe, 0x7, 0x1b,0x8, 0x30,0x80,0x18,0x6d,0x33, +0x9e,0x37,0xe, 0x7, 0xbd,0x13,0x58,0xe, 0x2e,0x24,0x8, 0xe4,0xb, 0x28,0x30,0x9e, +0x37,0xe, 0x7, 0x1b,0x28,0x30,0xb, 0xa0,0xbe,0xa0,0x25,0x40,0xc0,0x22,0xca,0x69, +0xca,0xf8,0x6c,0x11,0x7e,0xd0,0x7, 0xac,0xd1,0x9, 0x6, 0xe, 0x9d,0x5e,0x0, 0xf, +0x49,0xf6,0xe, 0x9b,0xbe,0xf4,0x5, 0x18,0x40,0x3c,0x49,0x46,0xe, 0x99,0x7d,0x34, +0x12,0x6b,0xde,0x7c,0xfb,0xbe,0xf0,0x3, 0x40,0xe, 0x7e,0x14,0x4, 0xff,0x74,0x7, +0xac,0xb1,0x59,0x15,0xe, 0x9b,0x80,0x3e,0x74,0x2, 0xac,0xbf,0x49,0x45,0x16,0x95, +0x74,0x7, 0xac,0xb1,0x59,0x45,0xe, 0x99,0x7e,0x14,0x7, 0xd0,0x74,0x7, 0xac,0xb1, +0x59,0x15,0xe, 0x9b,0x80,0x25,0xbe,0xf4,0x5, 0x0, 0x40,0x1f,0x7e,0x14,0x4, 0xff, +0x74,0x7, 0xac,0xb1,0x59,0x15,0xe, 0x9b,0x74,0x7, 0xac,0xb1,0x49,0x15,0xe, 0x9b, +0xbe,0x14,0x5, 0xa, 0x40,0x5, 0x7c,0xb0,0x12,0x68,0xab,0xb, 0x10,0xbe,0x10,0xa, +0x40,0x82,0xda,0xf8,0xda,0x69,0x22,0xca,0x79,0x70,0x41,0x7e,0x74,0x0, 0xb, 0x7a, +0x79,0x70,0x7c,0xb7,0x54,0x70,0xc4,0x54,0xf, 0x7c,0x7b,0xa5,0xbf,0x4, 0x15,0x7e, +0xb3,0x10,0xa5,0xb4,0x3, 0x7, 0x74,0x1, 0x7e,0x70,0x3, 0x80,0x13,0x74,0x27,0x7e, +0x70,0x3, 0x80,0x4b,0x7e,0xb3,0x10,0xa5,0xb4,0x3, 0xa, 0x74,0x1, 0x7e,0x70,0x1, +0x12,0x0, 0x5e,0x80,0x45,0x74,0x27,0x7e,0x70,0x1, 0x80,0x33,0xbe,0xb0,0xfc,0x68, +0x3, 0xb4,0x3c,0x1f,0xa5,0xbf,0xaa,0x5, 0x7e,0x60,0x5, 0x80,0x10,0xa5,0xbf,0x55, +0x5, 0x7e,0x60,0x6, 0x80,0x7, 0xa5,0xbf,0x66,0x20,0x7e,0x60,0x7, 0x74,0x27,0x7c, +0x76,0x80,0xc, 0xbe,0xb0,0x80,0x40,0xc, 0xbe,0xb0,0xdf,0x38,0x7, 0x24,0x80,0x12, +0x6d,0xe0,0x80,0x6, 0xb4,0xfe,0x3, 0x7a,0x71,0xc, 0xda,0x79,0x22,0x6c,0x77,0x6c, +0xaa,0x80,0x3c,0x7e,0x50,0x18,0xac,0x5a,0x3e,0x24,0x2e,0x27,0xf, 0xda,0x2e,0x24, +0x0, 0x30,0x7d,0x12,0x1b,0x16,0xb, 0x18,0x40,0xbe,0x44,0x0, 0x3c,0x8, 0x1e,0x7e, +0x14,0x0, 0x1, 0x7c,0xba,0x60,0x5, 0x3e,0x14,0x14,0x78,0xfb,0x5e,0x14,0x4, 0x44, +0x68,0xb, 0x1b,0x25,0xb, 0x28,0x20,0xbd,0x42,0x8, 0x2, 0xb, 0x70,0xb, 0xa0,0x7e, +0x63,0x10,0x2b,0xbc,0x6a,0x38,0xbc,0xbe,0x70,0x1, 0x40,0x30,0x6c,0xaa,0x80,0x24, +0x7e,0x50,0x18,0xac,0x5a,0x3e,0x24,0x2e,0x27,0xf, 0xda,0x2e,0x24,0x0, 0x30,0x1b, +0x25,0xb, 0x28,0x30,0x7e,0x30,0x2, 0xac,0x3a,0x59,0x31,0x16,0x6f,0x6d,0x33,0x1b, +0x28,0x30,0xb, 0xa0,0x7e,0xb3,0x10,0x2b,0xbc,0xba,0x38,0xd4,0x22,0xca,0x79,0x6c, +0xff,0x6c,0xee,0x80,0x63,0x7c,0xbe,0xc4,0x23,0x54,0x1f,0x7c,0xab,0x7c,0xbe,0x54, +0x7, 0x7e,0x34,0x0, 0x1, 0x60,0x5, 0x3e,0x34,0x14,0x78,0xfb,0xa, 0x2a,0x9, 0xb2, +0xd, 0x68,0x5c,0xb7,0x68,0x40,0x7e,0x50,0x2, 0xac,0x5e,0x2e,0x24,0xd, 0x18,0x7e, +0x70,0x2, 0xac,0x7f,0x2e,0x34,0xd, 0x18,0x7e,0x14,0x0, 0x2, 0x12,0x6d,0x7d,0x7c, +0xbf,0xc4,0x23,0x54,0x1f,0x7c,0xab,0x7c,0xbf,0x54,0x7, 0x7e,0x34,0x0, 0x1, 0x60, +0x5, 0x3e,0x34,0x14,0x78,0xfb,0xa, 0x4a,0x2e,0x44,0xd, 0x68,0x7e,0x49,0xb0,0x4c, +0xb7,0x7a,0x49,0xb0,0xb, 0xf0,0xb, 0xe0,0x7e,0x63,0xd, 0xf7,0xbc,0x6e,0x38,0x95, +0x7a,0xf3,0xd, 0xf7,0xda,0x79,0x22,0x6d,0x33,0x7a,0x37,0x10,0x1, 0x7e,0x34,0xd, +0xac,0x7a,0x37,0xa, 0xaf,0x12,0x6f,0x10,0x7e,0xb3,0x10,0xa5,0x24,0xfa,0x68,0x17, +0x14,0x68,0x44,0xb, 0xb1,0x78,0x55,0x7e,0xb3,0x16,0xb9,0xbe,0xb0,0x5, 0x68,0x4c, +0x74,0x5, 0x7a,0xb3,0x16,0xb9,0x22,0x7e,0xb3,0x16,0xb9,0xb4,0x5, 0x3e,0x74,0x6, +0x7a,0xb3,0x16,0xb9,0x74,0xfa,0x12,0x6d,0x66,0x75,0x9a,0x80,0x7e,0x34,0x77,0xf8, +0x12,0x69,0xe2,0x7e,0x34,0x77,0xf8,0x74,0x66,0x12,0x5a,0x21,0x7e,0x34,0x77,0xf9, +0x74,0xbb,0x12,0x5a,0x21,0x80,0x12,0x7e,0xb3,0x16,0xb9,0xb4,0x5, 0xe, 0x74,0x7, +0x7a,0xb3,0x16,0xb9,0x74,0xfa,0x12,0x6d,0x66,0x75,0xe9,0xff,0x22,0x0, 0x0, 0x0, +0x0, 0xd2,0xcd,0xa9,0xd1,0xc9,0x7e,0xb3,0x16,0xa9,0xb4,0x1, 0x14,0x7e,0x73,0x16, +0xac,0xa, 0x27,0x7e,0x34,0x1d,0x8, 0x1b,0x38,0x20,0xe4,0x7a,0xb3,0x16,0xa9,0x80, +0xb, 0x7e,0x24,0x0, 0x2, 0x7e,0x34,0x1d,0x8, 0x1b,0x38,0x20,0xa9,0xd0,0xca,0xc2, +0xa8,0xc2,0x95,0x74,0x2, 0x7a,0xb3,0x16,0xb0,0x7e,0xb3,0x16,0xb0,0x70,0xfa,0x12, +0x6e,0xb0,0x12,0x61,0x8e,0x12,0x6b,0xff,0x6d,0x33,0x7a,0x37,0x10,0x1, 0x7e,0x34, +0xd, 0xac,0x7a,0x37,0xa, 0xaf,0x12,0x6f,0x10,0x12,0x6a,0x59,0x12,0x6a,0x7f,0x12, +0x52,0x72,0x74,0x1, 0x7a,0xb3,0x10,0x3c,0x7a,0xb3,0x10,0x4d,0x2, 0x6e,0xf4,0xca, +0x3b,0x7d,0x72,0x7d,0x63,0xe5,0x55,0xbe,0xb0,0x1, 0x68,0xf9,0x7d,0x36,0x7e,0x24, +0x0, 0x4a,0xe4,0x12,0x6e,0x21,0x7d,0x37,0x7e,0x24,0x0, 0x4a,0xe4,0x12,0x6e,0x21, +0x75,0x21,0x1, 0x12,0x6c,0x1f,0xe5,0x55,0xbe,0xb0,0x1, 0x68,0xf9,0x75,0x22,0x0, +0x7e,0x51,0x22,0x74,0x2, 0xac,0x5b,0x49,0x2, 0xa, 0x62,0x1e,0x4, 0x1e,0x4, 0x7d, +0x12,0x2d,0x16,0xb, 0x18,0x30,0x2d,0x30,0x1b,0x18,0x30,0x49,0x12,0xa, 0x18,0x1e, +0x14,0x1e,0x14,0x2d,0x27,0xb, 0x28,0x30,0x2d,0x31,0x1b,0x28,0x30,0x5, 0x22,0xe5, +0x22,0xb4,0x25,0xcc,0x5, 0x21,0xe5,0x21,0xbe,0xb0,0x5, 0x40,0xb6,0xda,0x3b,0x22, +0x6c,0x77,0x7e,0x63,0xd, 0xfa,0xa, 0x16,0x7e,0x63,0xd, 0xf9,0xa, 0x26,0x2d,0x21, +0xbe,0x24,0x0, 0x96,0x28,0x3, 0x74,0x1, 0x22,0x6c,0xaa,0x80,0x1c,0x7e,0x50,0x2, +0xac,0x5a,0x49,0x22,0x8, 0x9a,0xbe,0x24,0x3, 0xe8,0x8, 0x9, 0xb, 0x70,0xbe,0x70, +0x10,0x68,0xe, 0x80,0x2, 0x6c,0x77,0xb, 0xa0,0x7e,0x63,0x10,0x2c,0xbc,0x6a,0x38, +0xdc,0xa5,0xbf,0x10,0x2a,0x6c,0x77,0x6c,0xaa,0x80,0x1c,0x7e,0x50,0x2, 0xac,0x5a, +0x49,0x22,0x8, 0xca,0xbe,0x24,0x7, 0xd0,0x8, 0x9, 0xb, 0x70,0xa5,0xbf,0x8, 0x5, +0x74,0x1, 0x22,0x6c,0x77,0xb, 0xa0,0x7e,0x63,0x10,0x2b,0xbc,0x6a,0x38,0xdc,0xe4, +0x22,0x7c,0xab,0xc2,0xaf,0xd2,0xc9,0xa9,0xd5,0xcb,0x75,0xfb,0xa5,0x75,0xfb,0xf, +0x75,0xfb,0x6a,0xbe,0x34,0x73,0xf8,0x68,0x18,0xbe,0x34,0x73,0xf9,0x68,0x12,0xbe, +0x34,0x74,0x0, 0x50,0xc, 0x75,0xfb,0x0, 0xd2,0xaf,0xc2,0xc9,0xa9,0xc5,0xcb,0xe4, +0x22,0xa, 0x26,0x7c,0xb5,0xf5,0xf1,0x7c,0xb7,0x54,0xfe,0xf5,0xf2,0x75,0xf3,0x80, +0x75,0xf4,0x0, 0x5e,0x34,0x0, 0x1, 0x68,0x8, 0x75,0xf6,0xff,0x7a,0xa1,0xf6,0x80, +0x6, 0x7a,0xa1,0xf6,0x75,0xf6,0xff,0x75,0xf5,0x80,0x74,0x1, 0x12,0x6d,0x66,0xa9, +0x36,0xf5,0xfc,0x75,0xfb,0x0, 0xd2,0xaf,0xc2,0xc9,0xa9,0xc5,0xcb,0x74,0x1, 0x22, +0x74,0xa, 0x7a,0xb3,0xf, 0x46,0x74,0x14,0x7a,0xb3,0xf, 0x47,0x7e,0x34,0x3, 0x20, +0x7a,0x37,0xf, 0x48,0x7a,0x37,0xf, 0x4a,0x7e,0x24,0x2, 0x58,0x7a,0x27,0xf, 0x4c, +0x7a,0x37,0xf, 0x4e,0x7a,0x37,0xf, 0x50,0x74,0xc, 0x7a,0xb3,0xf, 0x52,0x74,0x8, +0x7a,0xb3,0xf, 0x53,0x7e,0x34,0x0, 0x3c,0x7a,0x37,0xf, 0x54,0x7a,0x37,0xf, 0x56, +0x7a,0x37,0xf, 0x58,0x7e,0x34,0x0, 0x28,0x7a,0x37,0xf, 0x5a,0x74,0xf, 0x7a,0xb3, +0xf, 0x5c,0xe4,0x7a,0xb3,0xf, 0x5f,0x74,0x4, 0x7a,0xb3,0xf, 0x60,0x7e,0x34,0x0, +0x64,0x7a,0x37,0xf, 0x61,0x7e,0x34,0xa, 0x0, 0x7a,0x37,0xf, 0x5d,0x22,0xca,0x3b, +0x7d,0x72,0x7d,0x63,0x7e,0xb3,0x10,0x3c,0xf5,0x1c,0xe4,0x7a,0xb3,0x10,0x3c,0x7d, +0x36,0x7d,0x27,0x12,0x6a,0xca,0x7e,0x34,0x10,0x2b,0x12,0x5b,0x6c,0x75,0x1a,0x0, +0x7e,0x34,0x10,0x2b,0x12,0x65,0x59,0x12,0x6e,0xc2,0x60,0xfb,0x7d,0x36,0x7e,0x25, +0x6f,0x12,0x55,0x3a,0x75,0x1b,0x0, 0x7e,0x51,0x1b,0x74,0x2, 0xac,0x5b,0x7d,0x32, +0x2d,0x36,0xb, 0x38,0x10,0xe, 0x14,0xe, 0x14,0x2d,0x27,0xb, 0x28,0x30,0x2d,0x31, +0x1b,0x28,0x30,0x5, 0x1b,0xe5,0x1b,0xb4,0x25,0xdd,0x5, 0x1a,0xe5,0x1a,0xbe,0xb0, +0x4, 0x40,0xbd,0xe5,0x1c,0x7a,0xb3,0x10,0x3c,0xda,0x3b,0x22,0x7d,0x3, 0x75,0xcc, +0x18,0x75,0xcd,0x7, 0x9, 0xa0,0x0, 0x2, 0x3e,0xa0,0xe5,0xca,0x54,0x1, 0x4c,0xba, +0xf5,0xca,0xa9,0xd0,0xca,0xa9,0xd3,0xe1,0xa9,0xd1,0xe1,0x9, 0x70,0x0, 0xe, 0x2e, +0x70,0xff,0xa9,0x94,0xe1,0x9, 0xa0,0x0, 0xf, 0x7c,0xba,0xc4,0x33,0x54,0xe0,0x7c, +0xab,0xe5,0xe3,0x54,0x1f,0x4c,0xba,0xf5,0xe3,0x9, 0xb0,0x0, 0x13,0x54,0x3, 0xa, +0x5b,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x7c,0xab,0xe5,0xe3,0x54,0xe7,0x4c,0xba,0xf5, +0xe3,0xa9,0xc1,0xe3,0xa9,0xc0,0xe3,0x7d,0x30,0x12,0x5d,0x65,0x9, 0xb0,0x0, 0x14, +0xf5,0xe7,0x22,0x7e,0xb3,0x16,0xa9,0x70,0x17,0xe5,0xcc,0x7a,0xb3,0x16,0xaa,0x7e, +0x34,0x1d,0x8, 0xb, 0x38,0x30,0x7a,0x73,0x16,0xac,0x74,0x1, 0x7a,0xb3,0x16,0xa9, +0xc2,0xc9,0xa9,0xc6,0xcb,0xa9,0xc5,0xcb,0xc2,0xcc,0xc2,0xca,0xc2,0xc8,0xa9,0xc4, +0xcb,0x80,0x2e,0xe5,0x55,0xbe,0xb0,0x1, 0x68,0x23,0xe5,0x74,0xb4,0x1, 0x1e,0xe5, +0x75,0xb4,0x1, 0x19,0xa9,0xc3,0xcb,0x7e,0x24,0x0, 0x1, 0x7e,0x34,0x1d,0x8, 0x1b, +0x38,0x20,0xa9,0xc7,0xcb,0xa9,0xc1,0xc9,0xa9,0xc3,0xc9,0xc2,0xcd,0xe4,0x12,0x6d, +0xaa,0x7e,0xb3,0x16,0xad,0x60,0xcc,0x22,0x6d,0x33,0x7a,0x37,0x10,0x1, 0x7e,0x34, +0xd, 0xac,0x7a,0x37,0xa, 0xaf,0x12,0x6f,0xd, 0x12,0x6e,0xb0,0x12,0x61,0x8e,0x12, +0x6f,0x16,0x12,0x6d,0xbc,0x74,0x1, 0x7a,0xb3,0x10,0xa5,0x12,0x6b,0xff,0x12,0x6a, +0x59,0x74,0x1, 0x7a,0xb3,0x10,0x3c,0x7a,0xb3,0x10,0x4d,0x12,0x6e,0xf4,0x7e,0xb3, +0x10,0xa5,0x24,0xfd,0x68,0x12,0x14,0x68,0x14,0x14,0x68,0x16,0x14,0x68,0x13,0x24, +0x5, 0x78,0xeb,0x12,0x42,0xf0,0x80,0xe6,0x12,0x5e,0xda,0x80,0xe1,0x12,0x6a,0x32, +0x80,0xdc,0x6d,0x33,0x7a,0x37,0x10,0x1, 0x12,0x58,0x57,0x80,0xd1,0x7c,0xa5,0x7c, +0x5b,0xa9,0xd6,0xcb,0x7c,0xb7,0xf5,0xb9,0xa, 0x36,0x7c,0xb7,0xf5,0xba,0x7c,0xb5, +0xc4,0x33,0x54,0xe0,0x4c,0xba,0xf5,0xbb,0x7c,0xb2,0x1e,0xb0,0x1e,0xb0,0x54,0xf, +0xa, 0x4b,0x3e,0x44,0x3e,0x44,0x3e,0x44,0x3e,0x44,0x1e,0x50,0x1e,0x50,0x1e,0x50, +0xa, 0x55,0x4d,0x54,0xf5,0xbc,0x7c,0xb1,0xf5,0xbd,0xa, 0x50,0xf5,0xc1,0x7c,0xb3, +0x44,0xa0,0xf5,0xc3,0x7a,0x41,0xc4,0x75,0xc5,0xc0,0x43,0xc2,0x7, 0x80,0x7, 0x43, +0xc2,0x7, 0x0, 0x0, 0x0, 0x0, 0xa9,0x37,0xc2,0xf5,0x75,0xc2,0x0, 0xa9,0xc6,0xcb, +0x22,0x7c,0xab,0x6c,0x33,0x6d,0x44,0x7e,0x10,0x2, 0xac,0x13,0x2e,0x4, 0x1c,0x3a, +0x1b,0x8, 0x40,0xb, 0x30,0xa5,0xbb,0xc, 0xec,0x6c,0x33,0x80,0x43,0xa, 0x3, 0x2d, +0x2, 0x7e,0x9, 0x20,0x7c,0xb2,0xa, 0x3, 0x20,0xe0,0xb, 0x2d,0x3, 0x7e,0x9, 0xb0, +0x54,0x1f,0xa, 0xfb,0x80,0x13,0x2d,0x3, 0x7e,0x9, 0xb0,0x54,0x1f,0xa, 0xfb,0x3e, +0xf4,0x3e,0xf4,0x3e,0xf4,0x3e,0xf4,0x3e,0xf4,0x7c,0xb2,0x1e,0xb0,0x7e,0x90,0x2, +0xac,0x9b,0x2e,0x44,0x1c,0x3a,0xb, 0x48,0x0, 0x4d,0xf, 0x1b,0x48,0x0, 0xb, 0x30, +0xbc,0xa3,0x38,0xb9,0x22,0x7d,0x23,0x75,0xe4,0x1, 0x9, 0xb2,0x0, 0xc, 0x54,0x7f, +0xf5,0xe5,0x75,0xe4,0x2, 0x9, 0xb2,0x0, 0xd, 0x54,0x7f,0xf5,0xe5,0x75,0xe4,0x7, +0x9, 0xb2,0x0, 0x15,0x54,0x7f,0xf5,0xe5,0x75,0xe4,0xb, 0x6c,0xaa,0xa, 0x1a,0x49, +0x32,0x0, 0x1d,0x2d,0x31,0x7e,0x39,0xb0,0xf5,0xe5,0xb, 0xa0,0xbe,0xa0,0x25,0x40, +0xec,0x75,0xe4,0x30,0x49,0x32,0x0, 0x1b,0x7e,0x39,0xb0,0xf5,0xe5,0x75,0xe4,0x31, +0x49,0x32,0x0, 0x19,0x7d,0x53,0x5e,0x54,0x0, 0xff,0xf5,0xe5,0x75,0xe4,0x32,0x5e, +0x34,0xff,0x0, 0xa, 0x56,0xf5,0xe5,0x22,0xca,0x79,0x7e,0x71,0x54,0x3e,0x70,0x3e, +0x70,0x7c,0xb7,0x24,0x56,0xa, 0x2b,0xb, 0x28,0x50,0x7c,0xab,0x7c,0xb7,0x24,0x58, +0xa, 0x3b,0xb, 0x38,0x70,0x4d,0x77,0x68,0x1f,0xbe,0xa0,0x1, 0x68,0xa, 0xbe,0xa0, +0x2, 0x68,0x5, 0xbe,0xa0,0x3, 0x78,0x10,0x7e,0x34,0x10,0x2b,0x12,0x6b,0x58,0x7d, +0x37,0x7e,0x24,0x18,0x0, 0x12,0x55,0x3a,0x5, 0x54,0xe5,0x53,0xbe,0xb1,0x54,0x28, +0x10,0x12,0x62,0xd5,0xb4,0x1, 0x5, 0x75,0x55,0x1, 0x80,0x8, 0x75,0x55,0x3, 0x80, +0x3, 0x75,0x55,0x2, 0xda,0x79,0x22,0x6d,0x11,0x7e,0x24,0x1c,0x1c,0x1b,0x28,0x10, +0x6c,0x55,0x9, 0xb3,0x0, 0x4d,0xb4,0x1, 0x6, 0x9, 0xa3,0x0, 0x50,0x80,0x2, 0x7c, +0xa5,0xa, 0x4a,0x49,0x13,0x0, 0x8, 0x2d,0x14,0x7e,0x19,0x40,0xa, 0x14,0x7e,0x4, +0x1c,0x24,0x1b,0x8, 0x10,0x9, 0x43,0x0, 0x1f,0xa, 0x14,0x1b,0x8, 0x10,0x49,0x13, +0x0, 0x41,0x2d,0x14,0x7e,0x19,0x40,0xa, 0x14,0x1b,0x8, 0x10,0x49,0x13,0x0, 0x43, +0x2d,0x14,0x7e,0x19,0x40,0xa, 0x14,0x1b,0x8, 0x10,0xb, 0x50,0xbe,0x50,0xd, 0x40, +0xb1,0x22,0x75,0x9, 0x0, 0xe5,0xb, 0xc4,0x7c,0x5b,0x5e,0x50,0x7, 0xa5,0xbd,0x0, +0x9, 0xe5,0xf, 0x12,0x53,0x92,0xf5,0x91,0x80,0xb, 0xa5,0xbd,0x4, 0x7, 0xe5,0xf, +0x12,0x27,0x4a,0xf5,0x91,0x75,0xa, 0x0, 0xe4,0x7a,0xb3,0x0, 0xfa,0x7e,0x34,0x0, +0x76,0x7e,0x24,0x0, 0x42,0x74,0xff,0x12,0x6e,0x21,0x7e,0x34,0x0, 0xb8,0x7e,0x24, +0x0, 0x42,0x74,0xff,0x12,0x6e,0x21,0x74,0xaa,0x7a,0xb3,0x0, 0x76,0x7a,0xb3,0x0, +0x77,0x7a,0xb3,0x0, 0xb8,0x7a,0xb3,0x0, 0xb9,0x22,0xca,0xf8,0x74,0x3, 0x7a,0xb3, +0x16,0xa0,0xe4,0x7a,0xb3,0x10,0x3c,0x7a,0xb3,0x10,0x4d,0x74,0x3, 0x7a,0xb3,0x16, +0xa0,0x6d,0x33,0x7a,0x37,0x10,0x1, 0x7e,0x34,0xd, 0xac,0x7a,0x37,0xa, 0xaf,0x7e, +0xf3,0x16,0xa0,0xbe,0xf0,0x3, 0x78,0x1d,0xe5,0xb, 0x30,0xe7,0xe4,0x12,0x6b,0x35, +0x7e,0x37,0xf, 0xd6,0x7a,0x37,0x16,0x9d,0x7e,0x37,0xf, 0xda,0x7a,0x37,0x16,0x9b, +0x53,0xb, 0x7f,0x80,0xcc,0x7a,0xf3,0x10,0xa5,0x12,0x0, 0x1e,0x12,0x0, 0x6a,0xda, +0xf8,0x22,0x7c,0xab,0xa9,0xd6,0xcb,0x7c,0xb7,0xf5,0xb9,0xa, 0x36,0x7c,0xb7,0xf5, +0xba,0x7c,0xb5,0xf5,0xbb,0xa, 0x34,0x7c,0xb7,0xf5,0xbc,0x7c,0xb3,0xf5,0xbd,0xa, +0x12,0x7c,0xb3,0xf5,0xc1,0x7c,0xba,0x44,0xa0,0xf5,0xc3,0xe5,0xc4,0x54,0xe0,0x4c, +0xb1,0xf5,0xc4,0x75,0xc5,0xc0,0xa, 0x30,0x7d,0x23,0x4e,0x24,0x0, 0x1, 0x7c,0x15, +0x7c,0xb1,0x42,0xc2,0x80,0x8, 0x7c,0xb1,0x42,0xc2,0x0, 0x0, 0x0, 0x0, 0xa9,0x37, +0xc2,0xf4,0x75,0xc2,0x0, 0xa9,0xc6,0xcb,0x22,0x6c,0xaa,0x6c,0x77,0x7e,0x10,0x30, +0xac,0x1a,0x7e,0x30,0x2, 0xac,0x37,0x2d,0x10,0x7d,0x1, 0x2e,0x7, 0xf, 0xda,0xb, +0x8, 0x20,0xbe,0x27,0xe, 0x5, 0x8, 0x12,0x7d,0x41,0x2e,0x47,0xf, 0xd8,0xb, 0x48, +0x0, 0x2e,0x7, 0xe, 0x5, 0x1b,0x48,0x0, 0x80,0x18,0x6d,0x0, 0x9e,0x7, 0xe, 0x5, +0xbd,0x20,0x58,0xe, 0x2e,0x17,0xf, 0xd8,0xb, 0x18,0x20,0x9e,0x27,0xe, 0x5, 0x1b, +0x18,0x20,0xb, 0x70,0xa5,0xbf,0x18,0xb5,0xb, 0xa0,0xbe,0xa0,0xd, 0x40,0xac,0x22, +0xca,0x3b,0x7c,0xc5,0x7c,0xdb,0x7d,0x73,0x7a,0xd, 0x31,0x7e,0x79,0x50,0xa5,0xbd, +0x0, 0xb, 0x7e,0xd, 0x31,0x7e,0xb, 0x40,0x7a,0x79,0x40,0x80,0x36,0x7e,0xd, 0x31, +0x7e,0xb, 0x40,0xa, 0x34,0xa, 0x25,0x9d,0x32,0x12,0x6e,0x11,0xa, 0x2c,0xbd,0x32, +0x8, 0x18,0x7e,0x1d,0x31,0x7e,0x1b,0xb0,0x7e,0x79,0xa0,0xbc,0xba,0x7c,0xba,0x28, +0x4, 0x2c,0xbd,0x80,0x2, 0x9c,0xbd,0x7a,0x79,0xb0,0x7e,0x79,0x30,0x7e,0x1d,0x31, +0x7a,0x1b,0x30,0xda,0x3b,0x22,0x7e,0xb3,0x10,0x39,0xb4,0x1, 0x26,0x7e,0x73,0xa, +0xac,0x7a,0x73,0x10,0x37,0x7e,0x73,0xa, 0xad,0x7a,0x73,0x10,0x38,0x7e,0x73,0xa, +0xae,0x7a,0x73,0x10,0x3a,0x7e,0x34,0xd, 0xfe,0x7a,0x37,0x10,0x46,0x7e,0x34,0xf, +0xdc,0x80,0x24,0x7e,0x73,0x11,0x16,0x7a,0x73,0x10,0x37,0x7e,0x73,0x11,0x49,0x7a, +0x73,0x10,0x38,0x7e,0x73,0x11,0x94,0x7a,0x73,0x10,0x3a,0x7e,0x34,0x11,0x9d,0x7a, +0x37,0x10,0x46,0x7e,0x34,0xf, 0x63,0x7a,0x37,0x10,0x48,0x22,0xe5,0x55,0xbe,0xb0, +0x1, 0x68,0xf9,0xe5,0x74,0x60,0xfc,0xe5,0x75,0x60,0xfc,0x20,0x93,0xfd,0xd2,0x96, +0xd2,0x95,0xd2,0xb8,0xa9,0xd0,0xb7,0xd2,0xa8,0x7e,0xb3,0x16,0xa9,0x70,0x17,0xe5, +0xcc,0x7a,0xb3,0x16,0xaa,0x7e,0x34,0x1d,0x8, 0xb, 0x38,0x30,0x7a,0x73,0x16,0xac, +0x74,0x1, 0x7a,0xb3,0x16,0xa9,0xa9,0xc0,0xca,0x7e,0x24,0x0, 0x1, 0x7e,0x34,0x1d, +0x8, 0x1b,0x38,0x20,0xa9,0xc1,0xc9,0xa9,0xc3,0xc9,0xc2,0xcd,0x75,0x87,0x2, 0x0, +0x0, 0x22,0x6c,0xaa,0x7e,0x50,0x2, 0xac,0x5a,0x7d,0x32,0x2e,0x37,0xf, 0xd6,0xb, +0x38,0x10,0x2e,0x27,0xf, 0xd4,0xb, 0x28,0x30,0x2d,0x31,0x1b,0x28,0x30,0xb, 0xa0, +0xbe,0xa0,0x25,0x78,0xdf,0x6c,0xaa,0x7e,0x50,0x2, 0xac,0x5a,0x49,0x12,0x9, 0x2e, +0x2e,0x24,0x8, 0xe4,0xb, 0x28,0x30,0x2d,0x31,0x1b,0x28,0x30,0xb, 0xa0,0xbe,0xa0, +0x25,0x40,0xe4,0x7e,0x14,0x1, 0x0, 0x7d,0x31,0x7e,0x24,0x3, 0x70,0x74,0x18,0x7e, +0x13,0x10,0x2b,0x6c,0x0, 0x2, 0x5f,0x32,0x9, 0xa3,0x0, 0x24,0xbe,0xa0,0x1, 0x78, +0x5, 0xa9,0xc1,0xc9,0x80,0x3, 0xa9,0xd1,0xc9,0x43,0xcc,0x8, 0x9, 0x53,0x0, 0x2, +0x3e,0x50,0xe5,0xca,0x54,0x1, 0x4c,0xb5,0xf5,0xca,0xa9,0xd0,0xca,0xd2,0xcd,0xbe, +0xa0,0x1, 0x78,0x5, 0xa9,0xd0,0xc9,0x80,0x3, 0xa9,0xc0,0xc9,0x7e,0x14,0x1d,0x0, +0xb, 0x18,0x20,0x5e,0x24,0xff,0xfd,0x1b,0x18,0x20,0x9, 0xb3,0x0, 0x3f,0xb4,0x1, +0xc, 0x75,0xe4,0x32,0x9, 0xb3,0x0, 0x40,0xc4,0x54,0xf0,0xf5,0xe5,0x22,0x12,0x4b, +0xdf,0x12,0x3c,0xc2,0x12,0x69,0xb, 0x7e,0x34,0x8, 0x50,0x7a,0x37,0xf, 0xd4,0x7e, +0x34,0x8, 0x9a,0x7a,0x37,0xf, 0xd6,0x7e,0x34,0x8, 0x9a,0x7e,0x27,0xf, 0xd4,0x12, +0x6a,0xca,0x7e,0x34,0x1, 0x0, 0x7a,0x37,0xf, 0xd8,0x7e,0x34,0x3, 0x70,0x7a,0x37, +0xf, 0xda,0x7e,0x34,0x3, 0x70,0x7e,0x27,0xf, 0xd8,0x12,0x68,0x15,0x12,0x64,0xd4, +0x12,0x5a,0x90,0x12,0x6a,0x7f,0x12,0x52,0x72,0x12,0x6e,0x93,0x74,0x1, 0x7a,0xb3, +0x11,0x96,0x22,0xca,0xf8,0x7e,0xb3,0xf, 0xd2,0xb4,0x1, 0x48,0x6c,0xff,0x80,0x3c, +0x7e,0x37,0xf, 0xd6,0x2e,0x34,0x0, 0x30,0x74,0x2, 0xac,0xbf,0x9, 0xb5,0xa, 0xb1, +0x7e,0x53,0x10,0x2b,0x12,0x35,0x61,0x74,0x4, 0xac,0xbf,0x59,0x35,0xb, 0x86,0x7e, +0x37,0xf, 0xd6,0x74,0x2, 0xac,0xbf,0x9, 0xb5,0xa, 0xb2,0x7e,0x53,0x10,0x2c,0x12, +0x35,0x61,0x74,0x4, 0xac,0xbf,0x59,0x35,0xb, 0x88,0xb, 0xf0,0x7e,0x73,0xd, 0x16, +0xbc,0x7f,0x38,0xbc,0xda,0xf8,0x22,0xca,0x69,0xca,0xf8,0x7c,0xfb,0x7e,0x24,0x0, +0x4, 0x7c,0xaf,0x3e,0xa0,0x3e,0xa0,0x7c,0xba,0x24,0x56,0xa, 0x3b,0x1b,0x38,0x20, +0x6d,0x66,0x7c,0xba,0x24,0x58,0xa, 0x3b,0x1b,0x38,0x60,0xb, 0xf0,0x12,0x0, 0x6e, +0x50,0x1e,0x7e,0x24,0x0, 0x5, 0x7c,0xaf,0x3e,0xa0,0x3e,0xa0,0x7c,0xba,0x24,0x56, +0xa, 0x3b,0x1b,0x38,0x20,0x7c,0xba,0x24,0x58,0xa, 0x3b,0x1b,0x38,0x60,0xb, 0xf0, +0x7c,0xbf,0xda,0xf8,0xda,0x69,0x22,0x7e,0x47,0x16,0x36,0x6c,0x77,0x7e,0xa0,0xff, +0x7e,0x43,0x16,0x25,0xa, 0x14,0x9, 0x51,0xf, 0x29,0xbe,0x53,0x10,0x4a,0x78,0x32, +0x7e,0x50,0x12,0xac,0x45,0x49,0x22,0x16,0x36,0xbe,0x24,0x0, 0x41,0x40,0x23,0x7e, +0x60,0x1, 0xbe,0x44,0x0, 0x19,0x40,0x18,0x7e,0x30,0x12,0xac,0x36,0x49,0x21,0x16, +0x36,0xbd,0x24,0x50,0x4, 0x7d,0x42,0x7c,0x76,0xb, 0x60,0xbe,0x60,0x4, 0x40,0xe2, +0x7c,0xa7,0x7c,0xba,0x22,0xca,0x79,0xe5,0x53,0xbe,0xb1,0x54,0x38,0x4, 0x6c,0xff, +0x80,0x3a,0xe5,0x54,0x3e,0xb0,0x3e,0xb0,0x24,0x56,0xa, 0x3b,0xb, 0x38,0x30,0x7c, +0xe7,0xbe,0xe0,0x1, 0x68,0xe, 0xbe,0xe0,0x2, 0x68,0x9, 0xbe,0xe0,0x3, 0x68,0x4, +0x4c,0xee,0x78,0x7, 0x7c,0xbe,0x12,0x63,0x6c,0x7c,0xfb,0xbe,0xe0,0x4, 0x68,0x5, +0xbe,0xe0,0x5, 0x78,0x7, 0x7c,0xbe,0x12,0x51,0xe1,0x7c,0xfb,0x7c,0xbf,0xda,0x79, +0x22,0x7e,0xa3,0xd, 0xf7,0xbe,0xa0,0x0, 0x28,0x40,0x6c,0x77,0x80,0x38,0x7e,0x50, +0x2, 0xac,0x57,0x9, 0x62,0xd, 0x18,0x9, 0x52,0xd, 0x19,0x7e,0x30,0x2, 0xac,0x36, +0x49,0x1, 0x11,0xce,0x7e,0x17,0xf, 0x4a,0xe, 0x14,0xbd,0x1, 0x48,0x13,0x7e,0x30, +0x2, 0xac,0x35,0x49,0x1, 0x11,0x9e,0x7e,0x17,0xf, 0x4c,0xe, 0x14,0xbd,0x1, 0x58, +0x3, 0x74,0x1, 0x22,0xb, 0x70,0xbc,0xa7,0x38,0xc4,0xe4,0x22,0xca,0xf8,0x7c,0xfb, +0xbe,0xf0,0x1, 0x78,0x3, 0xe4,0x80,0xb, 0xbe,0xf0,0x2, 0x68,0x4, 0x4c,0xff,0x78, +0x8, 0x74,0x1, 0x7a,0xb3,0x10,0x39,0x80,0x3, 0xe4,0x80,0x28,0x12,0x60,0x36,0x4c, +0xff,0x78,0x11,0xe4,0x7a,0xb3,0x10,0x3a,0x74,0x1e,0x7a,0xb3,0x10,0x37,0x74,0xa, +0x7a,0xb3,0x10,0x38,0x7e,0x34,0x10,0x2b,0x12,0x5b,0x6c,0x7e,0x34,0x10,0x2b,0x12, +0x65,0x59,0x74,0x1, 0xda,0xf8,0x22,0xca,0x7b,0xca,0x6b,0xca,0x5b,0xca,0x4b,0xca, +0x2b,0xca,0x1b,0xca,0xb, 0xc0,0xd0,0xc0,0x83,0xc0,0x82,0x75,0x74,0x1, 0x7e,0x24, +0x1d,0x0, 0xb, 0x28,0x30,0x4e,0x60,0x2, 0x1b,0x28,0x30,0xb, 0x28,0x30,0x4e,0x70, +0x2, 0x1b,0x28,0x30,0xe5,0x55,0xb4,0x1, 0x3, 0x12,0x5d,0xc8,0xd0,0x82,0xd0,0x83, +0xd0,0xd0,0xda,0xb, 0xda,0x1b,0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda,0x7b, +0x32,0x7c,0xab,0xa9,0xd6,0xcb,0x7c,0xb7,0xf5,0xb9,0xa, 0x36,0x7c,0xb7,0xf5,0xba, +0x7c,0xb5,0xf5,0xbb,0xa, 0x34,0x7c,0xb7,0xf5,0xbc,0x7a,0xa1,0xc3,0x75,0xc5,0x40, +0x75,0xc2,0x2b,0x80,0x3, 0x43,0xc2,0x1, 0x0, 0x0, 0x0, 0x0, 0xa9,0x37,0xc2,0xf5, +0x75,0xc2,0x0, 0x75,0xc5,0xe, 0xe5,0xc6,0xa, 0x3b,0xe5,0xc6,0xa, 0x2b,0x7c,0x45, +0x6c,0x55,0x4d,0x32,0xa9,0xc6,0xcb,0x22,0xe4,0x7a,0xb3,0x15,0x9f,0x7a,0xb3,0x15, +0x53,0x7a,0xb3,0x15,0x9e,0x7a,0xb3,0x15,0xa0,0x7a,0xb3,0x15,0xa1,0x7e,0x34,0x15, +0x56,0x7e,0x24,0x0, 0x48,0x12,0x6e,0x21,0x7e,0x34,0x14,0xe3,0x7e,0x24,0x0, 0x48, +0xe4,0x12,0x6e,0x21,0x7e,0x34,0x15,0x56,0x7e,0x24,0x0, 0x46,0x74,0xff,0x12,0x6e, +0x21,0x7e,0x34,0x14,0xe3,0x7e,0x24,0x0, 0x46,0x74,0xff,0x2, 0x6e,0x21,0xd2,0xcd, +0xa9,0xd1,0xc9,0xa9,0xd3,0xcb,0xa9,0xd7,0xcb,0x7e,0xb3,0x16,0xa9,0xb4,0x1, 0x15, +0x7e,0x73,0x16,0xac,0xa, 0x27,0x7e,0x34,0x1d,0x8, 0x1b,0x38,0x20,0x7e,0xb3,0x16, +0xaa,0xf5,0xcc,0x80,0xe, 0x7e,0x24,0x0, 0x2, 0x7e,0x34,0x1d,0x8, 0x1b,0x38,0x20, +0x75,0xcc,0x0, 0xa9,0xd4,0xc9,0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe4,0x7a, +0xb3,0x16,0xa9,0x22,0x7e,0x34,0x1, 0x90,0x7a,0x37,0xd, 0xff,0x7e,0x34,0x0, 0x19, +0x7a,0x37,0xe, 0x1, 0x7e,0x34,0x0, 0x9c,0x7a,0x37,0xe, 0x3, 0x7e,0x34,0x0, 0x8, +0x7a,0x37,0xe, 0x5, 0x7e,0x34,0x0, 0x4, 0x7a,0x37,0xe, 0x7, 0x74,0x1, 0x7a,0xb3, +0xe, 0x9, 0x7e,0xb3,0xe, 0xa, 0x54,0xfb,0x7a,0xb3,0xe, 0xa, 0x7e,0x34,0x10,0x3, +0x7e,0x24,0x0, 0x28,0xe4,0x2, 0x6e,0x21,0x7c,0xab,0x6c,0x33,0x80,0x36,0xa, 0x3, +0x2d,0x2, 0x7e,0x9, 0x20,0x7c,0xb2,0x54,0x7, 0x3e,0xb0,0xa, 0x3, 0x2d,0x3, 0x7e, +0x9, 0x10,0xa, 0xf1,0x60,0x5, 0x3e,0xf4,0x14,0x78,0xfb,0x1e,0x20,0x1e,0x20,0x1e, +0x20,0x7e,0x90,0x2, 0xac,0x92,0x2e,0x44,0x1c,0x30,0xb, 0x48,0x0, 0x4d,0xf, 0x1b, +0x48,0x0, 0xb, 0x30,0xbc,0xa3,0x38,0xc6,0x22,0x75,0x75,0x0, 0x75,0xe4,0x3, 0x49, +0x23,0x0, 0x17,0x7d,0x52,0x5e,0x54,0x0, 0xff,0xf5,0xe5,0x75,0xe4,0x4, 0x5e,0x24, +0x1f,0x0, 0xa, 0x24,0x7c,0xa5,0x7a,0xa1,0xe5,0x75,0xe4,0x5, 0xf5,0xe5,0x75,0xe4, +0x6, 0x9, 0xb3,0x0, 0x16,0xc4,0x33,0x54,0xe0,0x4c,0xba,0xf5,0xe5,0xa9,0xd6,0xea, +0x75,0xe6,0x0, 0xa9,0xd1,0xe1,0xa9,0xd0,0xe1,0x22,0xca,0xf8,0x7e,0x24,0xe, 0xd, +0x7e,0x34,0xe, 0x99,0x7e,0x14,0x0, 0x46,0x12,0x6d,0x7d,0x6c,0xff,0x74,0x7, 0xac, +0xbf,0x49,0x35,0xe, 0xd, 0x12,0x4c,0xa8,0x74,0x7, 0xac,0xbf,0x59,0x35,0xe, 0x99, +0x49,0x35,0xe, 0xf, 0x12,0x4a,0x31,0x74,0x7, 0xac,0xbf,0x59,0x35,0xe, 0x9b,0xb, +0xf0,0xbe,0xf0,0xa, 0x40,0xd7,0xda,0xf8,0x22,0x6d,0x33,0x6c,0xaa,0x80,0x2e,0x7e, +0x30,0x2, 0xac,0x3a,0x9, 0x51,0xd, 0x18,0x9, 0x41,0xd, 0x19,0x7e,0x10,0x30,0xac, +0x15,0x7e,0x30,0x2, 0xac,0x34,0x2d,0x10,0x2e,0x17,0xf, 0xda,0xb, 0x18,0x40,0xbe, +0x44,0x0, 0x0, 0x8, 0x6, 0xbd,0x43,0x8, 0x2, 0x7d,0x34,0xb, 0xa0,0x7e,0xb3,0xd, +0xf7,0xbc,0xba,0x38,0xca,0x22,0xca,0x79,0x7d,0x41,0x7d,0x13,0x6d,0x0, 0x7e,0x34, +0x7f,0xff,0x6c,0xaa,0x80,0x1b,0x7e,0xf0,0x7, 0xac,0xfa,0x7d,0xe7,0x2d,0xe4,0x49, +0xfe,0x0, 0x2, 0xbd,0xf0,0x28,0x2, 0x7d,0xf, 0xbd,0xf3,0x50,0x2, 0x7d,0x3f,0xb, +0xa0,0x9, 0xb4,0x0, 0x46,0xbc,0xba,0x38,0xdd,0x1b,0x18,0x0, 0x1b,0x28,0x30,0xda, +0x79,0x22,0xca,0xf8,0x7e,0xb3,0x10,0x4e,0x60,0x3, 0xb4,0x1, 0x2d,0xa9,0xc6,0xea, +0x12,0x29,0x9c,0x7c,0xfb,0x7e,0x37,0xf, 0xda,0x7e,0x27,0xf, 0xd8,0x12,0x68,0x15, +0x7e,0x37,0xf, 0xda,0x7e,0x27,0xf, 0xd8,0x12,0x54,0x21,0xbe,0xf0,0x1, 0x78,0x4, +0x74,0x2, 0x80,0x2, 0x74,0xff,0x7a,0xb3,0x10,0x4e,0xda,0xf8,0x22,0x7e,0xb3,0x16, +0x25,0x4, 0x7a,0xb3,0x16,0x25,0x7e,0x73,0x16,0x25,0xbe,0x70,0x4, 0x40,0x5, 0xe4, +0x7a,0xb3,0x16,0x25,0x7e,0xa3,0x16,0x25,0xbe,0xa0,0x3, 0x78,0x13,0x7e,0xb3,0x16, +0x6e,0x4, 0x7a,0xb3,0x16,0x6e,0xbe,0xb0,0x8, 0x40,0x5, 0xe4,0x7a,0xb3,0x16,0x6e, +0xa, 0x3a,0x9, 0xb3,0xf, 0x29,0x22,0xca,0x3b,0x7d,0x72,0x7d,0x63,0x7d,0x21,0x7d, +0x36,0x7e,0x14,0x0, 0x4a,0x12,0x6d,0x7d,0x7e,0xb3,0x10,0x3c,0xb4,0x1, 0x1f,0x6c, +0xaa,0x7e,0x50,0x2, 0xac,0x5a,0x7d,0x32,0x2d,0x37,0xb, 0x38,0x10,0x2d,0x26,0xb, +0x28,0x30,0x9d,0x31,0x1b,0x28,0x30,0xb, 0xa0,0xbe,0xa0,0x25,0x78,0xe3,0xda,0x3b, +0x22,0x7e,0xb3,0x10,0x3d,0x70,0x32,0xa9,0xd6,0xea,0x74,0x1, 0x7a,0xb3,0x10,0x39, +0x12,0x60,0x36,0x12,0x2d,0xf4,0xe4,0x7a,0xb3,0x10,0x39,0x12,0x60,0x36,0x12,0x2d, +0xf4,0x7e,0x34,0x10,0x2b,0x12,0x6b,0x58,0x7e,0x37,0xf, 0xd4,0x7e,0x24,0x8, 0xe4, +0x12,0x59,0x3f,0x74,0x2, 0x7a,0xb3,0x10,0x3d,0x22,0x7e,0xa3,0xf, 0x1c,0xbe,0xa0, +0x0, 0x38,0x2f,0xbe,0xa3,0xf, 0x1b,0x50,0x19,0x7e,0xb3,0xf, 0x25,0xbe,0xb3,0x12, +0x33,0x28,0x14,0x7e,0xb3,0x12,0x33,0x4, 0x7a,0xb3,0x12,0x33,0x7a,0xa3,0xf, 0x1b, +0x80,0x5, 0xe4,0x7a,0xb3,0x12,0x33,0x7e,0xb3,0xf, 0x1b,0x70,0x5, 0xe4,0x7a,0xb3, +0xf, 0x24,0x22,0xca,0x7b,0xca,0x6b,0xca,0x5b,0xca,0x4b,0xca,0x2b,0xca,0x1b,0xca, +0xb, 0xc0,0xd0,0xc0,0x83,0xc0,0x82,0x53,0xcc,0xf8,0x43,0xcc,0x1, 0x12,0x54,0xaf, +0x74,0x1, 0x7a,0xb3,0x0, 0xfa,0xd0,0x82,0xd0,0x83,0xd0,0xd0,0xda,0xb, 0xda,0x1b, +0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda,0x7b,0x32,0xca,0x7b,0xca,0x6b,0xca, +0x5b,0xca,0x4b,0xca,0x2b,0xca,0x1b,0xca,0xb, 0xc0,0xd0,0xc0,0x83,0xc0,0x82,0x75, +0x75,0x1, 0x75,0xe6,0x0, 0xe5,0x55,0xb4,0x1, 0x3, 0x12,0x5d,0xc8,0xd0,0x82,0xd0, +0x83,0xd0,0xd0,0xda,0xb, 0xda,0x1b,0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda, +0x7b,0x32,0xca,0xf8,0x7d,0x1, 0x7d,0x13,0x7e,0xf3,0x10,0x4d,0xbe,0xf0,0x1, 0x78, +0xd, 0x7d,0x30,0x74,0x18,0x7e,0x13,0x10,0x2b,0x7e,0x0, 0x2, 0x80,0x11,0x4c,0xff, +0x78,0x10,0x7d,0x30,0x6d,0x22,0x74,0x18,0x7e,0x13,0x10,0x2b,0x7e,0x0, 0x4, 0x12, +0x5f,0x32,0xda,0xf8,0x22,0xe4,0x7a,0xb3,0xf, 0xd3,0x6c,0xaa,0x6c,0x33,0x6d,0xff, +0x7e,0x10,0x18,0xac,0x1a,0xa, 0xe3,0x2d,0xe, 0x3e,0x4, 0x7d,0x40,0x2d,0x42,0x1b, +0x48,0xf0,0x6d,0x44,0x2d,0x3, 0x1b,0x8, 0x40,0xb, 0x30,0xa5,0xbb,0x18,0xdf,0xb, +0xa0,0xbe,0xa0,0xd, 0x40,0xd6,0x22,0x7d,0x23,0x7c,0xab,0x6d,0x33,0x6c,0x33,0x4c, +0xaa,0x7e,0x10,0x7, 0x78,0xb, 0xac,0x13,0x2d,0x2, 0xb, 0x8, 0x0, 0x2d,0x30,0x80, +0xa, 0xac,0x13,0x2d,0x2, 0x49,0x0, 0x0, 0x2, 0x2d,0x30,0xb, 0x30,0xbe,0x30,0x3, +0x40,0xdd,0x7e,0x24,0x0, 0x3, 0x8d,0x32,0x22,0x6c,0xaa,0x74,0x3, 0xa, 0x2a,0x2d, +0x23,0x7a,0x29,0xb0,0xa, 0x2a,0x2d,0x23,0x19,0xb2,0x0, 0xa, 0x7e,0x24,0xff,0xff, +0x7e,0x30,0x2, 0xac,0x3a,0x7d,0x1, 0x2d,0x3, 0x59,0x20,0x0, 0x14,0x2d,0x13,0x59, +0x21,0x0, 0x28,0xb, 0xa0,0xbe,0xa0,0xa, 0x40,0xd1,0x22,0x7c,0xab,0x7e,0x24,0xe, +0xdf,0xbe,0xa0,0xa, 0x50,0x25,0xa, 0x3a,0x7d,0x13,0x2d,0x12,0x7e,0x19,0xb0,0xb4, +0x2, 0xe, 0x74,0x1, 0x7a,0x19,0xb0,0x74,0x3, 0x2d,0x23,0x19,0xb2,0x0, 0xa, 0x22, +0x74,0x3, 0x7a,0x19,0xb0,0x2d,0x32,0x19,0xb3,0x0, 0xa, 0x22,0xca,0x7b,0xca,0x6b, +0xca,0x5b,0xca,0x4b,0xca,0x2b,0xca,0x1b,0xca,0xb, 0xc0,0xd0,0xc0,0x83,0xc0,0x82, +0x12,0x6e,0x9d,0x53,0xb, 0xfd,0xd0,0x82,0xd0,0x83,0xd0,0xd0,0xda,0xb, 0xda,0x1b, +0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda,0x7b,0x32,0x6d,0x33,0x7a,0x37,0x11, +0xd, 0x74,0x1, 0x7a,0xb3,0x11,0xf, 0x74,0xb, 0x7a,0xb3,0x11,0x10,0x74,0x9, 0x7a, +0xb3,0x11,0x11,0x74,0x1e,0x7a,0xb3,0x11,0x12,0x7a,0xb3,0x11,0x13,0x7a,0xb3,0x11, +0x14,0x74,0x1, 0x7a,0xb3,0x11,0x15,0x22,0x6c,0xaa,0x80,0x1f,0x7e,0x70,0x2, 0xac, +0x7a,0x49,0x23,0x16,0x6f,0x7e,0x70,0x18,0xac,0x7a,0x3e,0x34,0x2e,0x37,0xf, 0xda, +0x2e,0x34,0x0, 0x30,0x1b,0x35,0x1b,0x38,0x20,0xb, 0xa0,0x7e,0xb3,0x10,0x2b,0xbc, +0xba,0x38,0xd9,0x22,0x75,0x74,0x0, 0xa9,0xc6,0xea,0x7e,0x24,0x1d,0x0, 0xb, 0x28, +0x30,0x4e,0x34,0x2, 0x0, 0x1b,0x28,0x30,0xd2,0xeb,0xb, 0x28,0x30,0x4e,0x34,0x0, +0x2, 0x1b,0x28,0x30,0xb, 0x28,0x30,0x4e,0x34,0x0, 0x1, 0x1b,0x28,0x30,0x22,0x1, +0x5e,0x0, 0xf, 0x0, 0x96,0x1, 0x2c,0x0, 0xc, 0x0, 0x78,0x0, 0xfa,0x0, 0xa, 0x0, +0x64,0x0, 0xc8,0x0, 0x6, 0x0, 0x32,0x0, 0xa0,0x0, 0x3, 0x0, 0xf, 0x0, 0x78,0x0, +0x2, 0x0, 0xa, 0x0, 0x3c,0x0, 0x2, 0x0, 0x0, 0xd2,0xc9,0xa9,0xd5,0xcb,0xa, 0x56, +0xf5,0xf1,0x7c,0xb7,0xf5,0xf2,0x75,0xf3,0x80,0x75,0xf4,0x0, 0x75,0xf5,0x83,0xa9, +0x37,0xf5,0xfc,0xa9,0x36,0xf5,0xfc,0xe5,0xf6,0x43,0xfa,0x80,0xc2,0xc9,0xa9,0xc5, +0xcb,0x22,0xc2,0xaf,0x75,0xfb,0x0, 0xd2,0xc9,0xa9,0xd5,0xcb,0xa, 0x56,0x1e,0x54, +0x1e,0x54,0x3e,0x54,0x3e,0x54,0xf5,0xf1,0x75,0xf2,0x0, 0x75,0xf5,0x90,0x74,0xa, +0x12,0x6d,0x66,0xc2,0xc9,0xa9,0xc5,0xcb,0xd2,0xaf,0x22,0x12,0x22,0x3c,0x12,0x3a, +0x2, 0x12,0x4d,0x5f,0x60,0x6, 0x74,0x1, 0x7a,0xb3,0xe, 0xc, 0x7e,0xb3,0xe, 0xb, +0x60,0x3, 0x12,0x60,0xe2,0x7e,0xb3,0xe, 0xc, 0x60,0x6, 0x12,0x55,0xc4,0x2, 0x5f, +0x89,0x22,0xe4,0x7a,0xb3,0x10,0x3d,0x7a,0xb3,0x10,0x4e,0x7a,0xb3,0xf, 0x28,0x12, +0x6a,0x59,0xb4,0x1, 0xd, 0x74,0x1, 0x7a,0xb3,0x10,0xa5,0x53,0xb, 0x8f,0x74,0x2, +0x80,0x2, 0x74,0xff,0x7a,0xb3,0xf, 0x28,0x22,0xca,0xf8,0x7e,0xf0,0x1, 0x12,0x67, +0x1, 0x7e,0xb3,0x10,0x3d,0xbe,0xb0,0x2, 0x68,0x2, 0x6c,0xff,0x12,0x66,0x52,0x7e, +0xb3,0x10,0x4e,0xbe,0xb0,0x2, 0x68,0x2, 0x6c,0xff,0x7c,0xbf,0xda,0xf8,0x22,0x7e, +0x34,0xa, 0xb1,0x7e,0x24,0x3, 0x4d,0xe4,0x12,0x6e,0x21,0x7e,0x34,0xb, 0x86,0x7e, +0x24,0x1, 0x90,0x74,0xff,0x12,0x6e,0x21,0x7e,0x34,0xd, 0x6b,0x7e,0x24,0x0, 0x8c, +0x74,0xff,0x2, 0x6e,0x21,0x9, 0xb3,0x0, 0x4d,0xb4,0x1, 0x6, 0x9, 0x53,0x0, 0x51, +0x80,0x3, 0x7e,0x39,0x50,0xa, 0x15,0x7e,0x24,0x1d,0x2, 0x1b,0x28,0x10,0x49,0x23, +0x0, 0x3b,0x7e,0x34,0x1d,0x6, 0x1b,0x38,0x20,0x22,0xe4,0x7a,0xb3,0xf, 0xd2,0x6c, +0xaa,0x6d,0x44,0x7e,0x30,0x2, 0xac,0x3a,0x7d,0x1, 0x2d,0x2, 0x1b,0x8, 0x40,0x6d, +0x0, 0x2d,0x13,0x1b,0x18,0x0, 0xb, 0xa0,0xbe,0xa0,0x25,0x40,0xe4,0x22,0x7e,0x34, +0x12,0x1, 0x7e,0x24,0x0, 0x1e,0xe4,0x12,0x6e,0x21,0x7e,0x34,0x12,0x1f,0x7e,0x24, +0x0, 0x14,0xe4,0x12,0x6e,0x21,0x7e,0x34,0x11,0xed,0x7e,0x24,0x0, 0x14,0xe4,0x2, +0x6e,0x21,0x12,0x0, 0x6e,0x50,0x1d,0x12,0x6e,0xee,0x7c,0xab,0x7e,0xb3,0x11,0x95, +0xbe,0xb0,0x4, 0x68,0xf, 0xbe,0xa0,0xff,0x68,0xa, 0x74,0x1, 0x7a,0xb3,0x11,0xc, +0x7a,0xa3,0x11,0x95,0x22,0xca,0xf8,0x6c,0xff,0x7e,0xb3,0x10,0x3d,0x70,0x3, 0x7e, +0xf0,0x1, 0x74,0x1, 0x12,0x3f,0x5b,0xbe,0xb0,0x1, 0x68,0x5, 0xbe,0xf0,0x1, 0x78, +0x4, 0xe4,0x12,0x3f,0x5b,0xda,0xf8,0x22,0xa9,0xc3,0xe1,0x75,0xe4,0x3, 0x75,0xe5, +0x0, 0x75,0xe4,0x4, 0x75,0xe5,0x0, 0x75,0xe4,0x5, 0x75,0xe5,0x0, 0x75,0xe4,0x6, +0x9, 0xb3,0x0, 0x16,0xc4,0x33,0x54,0xe0,0xf5,0xe5,0x22,0x7e,0x34,0x8, 0x9a,0x7e, +0x24,0x11,0x9e,0x7e,0x14,0x1, 0x90,0x12,0x3e,0x16,0x7e,0x34,0x9, 0x2e,0x7e,0x24, +0x11,0x4a,0x7e,0x14,0x0, 0xc8,0x12,0x3e,0x16,0x2, 0x57,0x5d,0x74,0x1, 0x12,0x6e, +0x7e,0xa9,0xc3,0xea,0xa9,0xc6,0xeb,0xa9,0xd6,0xac,0xa9,0xd6,0xec,0xd2,0x86,0x75, +0x9a,0x7f,0xa9,0xd1,0x99,0xd2,0x9c,0xa9,0xd6,0xdf,0xd2,0xaf,0x22,0xe5,0x52,0xb4, +0x1, 0x18,0xe5,0x51,0x70,0x14,0x7e,0xb3,0x11,0x95,0x60,0xb, 0xe4,0x7a,0xb3,0x11, +0x95,0x74,0x1, 0x7a,0xb3,0x11,0xc, 0x12,0x6c,0x99,0x85,0x51,0x52,0x22,0x6c,0xaa, +0x7e,0x50,0x4, 0xac,0x5a,0x49,0x12,0x16,0x89,0xbd,0x13,0x38,0x8, 0x49,0x22,0x16, +0x8b,0xbd,0x23,0x50,0x7, 0xb, 0xa0,0xbe,0xa0,0x3, 0x40,0xe4,0x7c,0xba,0x22,0x7e, +0x24,0x0, 0x2, 0x7e,0x34,0x1d,0x8, 0x1b,0x38,0x20,0x12,0x6d,0xce,0x12,0x6c,0xec, +0x7e,0x34,0x7, 0xd0,0x7d,0x23,0x1b,0x34,0x4d,0x22,0x78,0xf8,0x2, 0x0, 0x2e,0x75, +0x55,0x0, 0x75,0x72,0x0, 0x75,0x54,0x0, 0x12,0x6c,0x3e,0x12,0x62,0x37,0xf5,0x53, +0x12,0x62,0xd5,0xb4,0x1, 0x4, 0x75,0x55,0x1, 0x22,0x75,0x55,0x3, 0x22,0x7e,0x34, +0x0, 0x1, 0x7a,0x35,0x56,0x7e,0x34,0xa, 0x18,0x7a,0x35,0x58,0x7e,0x34,0x0, 0x2, +0x7a,0x35,0x5a,0x7e,0x34,0xa, 0x62,0x7a,0x35,0x5c,0x74,0x2, 0x22,0x0, 0x50,0x0, +0xa, 0x6, 0x4, 0x0, 0x78,0x0, 0xc, 0x6, 0x4, 0x0, 0xc8,0x0, 0x1e,0x8, 0x5, 0x1, +0x40,0x0, 0x50,0x8, 0x5, 0x1, 0xf4,0x0, 0x64,0xa, 0x6, 0xe4,0x7a,0xb3,0x16,0xae, +0x7a,0xb3,0x16,0xad,0x7e,0xb3,0x10,0xa3,0x70,0x6, 0x7e,0x73,0x11,0x10,0x80,0x4, +0x7e,0x73,0x11,0x12,0x7a,0x73,0x16,0xaf,0x22,0xe4,0x7a,0xb3,0x10,0x78,0x74,0x2, +0x7a,0xb3,0x10,0x7b,0x74,0x4, 0x7a,0xb3,0x10,0x7c,0x7e,0x34,0x16,0x26,0x7e,0x24, +0x0, 0x48,0xe4,0x2, 0x6e,0x21,0x75,0x91,0x0, 0xc2,0x90,0xc2,0x91,0x75,0x92,0x70, +0xd2,0xad,0xd2,0xe8,0xc2,0xc0,0xa9,0xd5,0xb7,0xd2,0xbd,0xa9,0xd0,0xf7,0xd2,0xf8, +0x22,0xe4,0x7a,0xb3,0xd, 0xfb,0x7e,0x34,0x11,0x9e,0x7a,0x37,0xf, 0xd6,0x12,0x40, +0x96,0x7e,0x34,0x8, 0x9a,0x7a,0x37,0xf, 0xd6,0x2, 0x47,0x4a,0x75,0x74,0x1, 0x7e, +0x24,0x1d,0x0, 0xb, 0x28,0x30,0x4e,0x34,0x2, 0x0, 0x1b,0x28,0x30,0xd2,0xeb,0x7e, +0x34,0x0, 0x1, 0x2, 0x6e,0x68,0xc2,0x8e,0x43,0x89,0x20,0x75,0x8d,0x0, 0xa9,0x34, +0xc9,0x5, 0x75,0x8b,0xe6,0x80,0x3, 0x75,0x8b,0x78,0xd2,0x8e,0xd2,0xab,0x22,0xe5, +0x51,0xb4,0x1, 0x6, 0x7e,0x34,0x0, 0x5a,0x80,0x4, 0x7e,0x34,0x0, 0x3c,0x7a,0x37, +0xf, 0x54,0x7a,0x37,0xf, 0x56,0x22,0xca,0xf8,0x12,0x6e,0x73,0x7c,0xfb,0x12,0x0, +0x6e,0x50,0x7, 0x4c,0xff,0x78,0x3, 0xe4,0x80,0x2, 0x74,0x1, 0xda,0xf8,0x22,0x7e, +0x34,0x0, 0x24,0x12,0x69,0xb9,0x7c,0x7b,0xa5,0xbf,0xff,0x3, 0x7e,0x70,0x4, 0xa, +0x57,0x2e,0x54,0x0, 0x10,0x22,0x7c,0xab,0x80,0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x7c,0x7a,0x1b,0xa0,0xa5,0xbf,0x0, 0xee,0x22,0x7d,0x3, 0x80, +0xa, 0x7e,0x29,0xb0,0x7a,0x9, 0xb0,0xb, 0x24,0xb, 0x4, 0x7d,0x51,0x1b,0x14,0x4d, +0x55,0x78,0xee,0x22,0x7e,0x53,0xf, 0x47,0xa, 0x25,0x3e,0x24,0x3e,0x24,0x9d,0x32, +0xbe,0x34,0x0, 0x0, 0x8, 0x1, 0x22,0x6d,0x33,0x22,0x70,0x3, 0x43,0x87,0x1, 0xb4, +0x1, 0x3, 0x43,0x87,0x2, 0xb4,0x2, 0x3, 0x43,0x87,0x2, 0x22,0x74,0x3, 0x7a,0xb3, +0x16,0xa0,0xe4,0x7a,0xb3,0x16,0xa7,0x74,0xff,0x7a,0xb3,0x16,0x9f,0x22,0x75,0x75, +0x1, 0xd2,0xee,0x75,0xe6,0x0, 0xa9,0xd3,0xe1,0x7e,0x34,0x0, 0x1, 0x2, 0x6e,0x68, +0xa, 0x2b,0x19,0x72,0x10,0x7e,0x7e,0xb3,0x10,0xfe,0x44,0x1, 0x7a,0xb3,0x10,0xfe, +0x22,0x7d,0x13,0xbd,0x21,0x50,0x5, 0x7d,0x31,0x9d,0x32,0x22,0x7d,0x32,0x9d,0x31, +0x22,0x32,0x1, 0x19,0x1, 0x0, 0x2, 0xf8,0x4, 0xe7,0x5, 0xce,0x6, 0xc2,0x7, 0xb5, +0x8, 0x7d,0x23,0xbe,0x24,0x0, 0x0, 0x48,0x3, 0x7d,0x32,0x22,0x6d,0x33,0x9d,0x32, +0x22,0x7d,0x13,0x80,0x7, 0x1b,0x24,0x7a,0x19,0xb0,0xb, 0x14,0x4d,0x22,0x78,0xf5, +0x22,0x10,0x10,0x10,0x1c,0x19,0x14,0x10,0xe, 0xc, 0xb, 0xa, 0x9, 0x8, 0x7, 0x6, +0x12,0x0, 0x42,0x12,0x57,0xdd,0x74,0x3, 0x12,0x44,0xf, 0x2, 0x24,0xd0,0x7e,0x34, +0x0, 0x21,0x12,0x69,0xb9,0xb4,0xff,0x3, 0x74,0x1, 0x22,0x22,0x7e,0xb3,0x11,0x15, +0xb4,0x1, 0x4, 0xe4,0x2, 0x6e,0xd3,0x22,0x6d,0x22,0x80,0x2, 0xb, 0x24,0xbd,0x32, +0x38,0xfa,0x22,0x12,0x63,0x21,0xb4,0x1, 0x2, 0xe4,0x22,0x74,0x1, 0x22,0xd2,0xcf, +0xa9,0xd4,0xc9,0x75,0xcc,0x0, 0xc2,0xca,0x22,0xa9,0xc0,0x93,0x75,0x9, 0x0, 0x75, +0xa, 0x0, 0x32,0x75,0x53,0x0, 0x75,0x54,0x0, 0x75,0x55,0x0, 0x22,0xa9,0x32,0x99, +0x5, 0xd2,0x9c,0xa9,0xd6,0xdf,0x22,0x75,0xb, 0x0, 0x12,0x6f,0x4, 0x2, 0x5e,0x82, +0x12,0x6b,0x9c,0x12,0x6f,0xa, 0x2, 0x6e,0xa7,0xe5,0x74,0x60,0x3, 0x74,0x1, 0x22, +0xe4,0x22,0xe5,0x75,0x60,0x3, 0x74,0x1, 0x22,0xe4,0x22,0x1, 0x2, 0x4, 0x8, 0x10, +0x20,0x40,0x80,0x70,0x3, 0xd2,0x86,0x22,0xc2,0x86,0x22,0xa9,0xd0,0x99,0xa9,0xc6, +0xdf,0x22,0xf5,0x16,0x75,0x17,0x0, 0x22,0x12,0x61,0xe3,0x2, 0x38,0x88,0x12,0x50, +0x15,0x2, 0x62,0x87,0x12,0x6f,0x16,0x2, 0x6c,0x1f,0x7e,0x34,0x1, 0x3, 0x22,0x7e, +0x34,0x5, 0xb, 0x22,0x2, 0x6c,0xb6,0x2, 0x0, 0x76,0x2, 0x6d,0x6, 0x2, 0x6e,0xdb, +0x2, 0x6e,0x9d,0xe5,0x6d,0x22,0x22,0x0, 0x1, 0x15,0xde,0x1, 0x0, 0x1, 0xa, 0xac, +0x15,0x0, 0x1, 0xa, 0xad,0x17,0x0, 0x1, 0xa, 0xae,0x4, 0x0, 0x1, 0xd, 0xfe,0x40, +0x0, 0x5, 0xf, 0x29,0x20,0x17,0x29,0x38,0x13,0x0, 0x18,0xf, 0x2e,0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x25,0xf, 0x63,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0, 0x18, +0xf, 0x88,0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, +0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0x0, 0xd, 0xf, 0xa0,0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x18,0xf, 0xad,0xc, +0xd, 0xe, 0xf, 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x0, 0x1, 0x2, 0x3, 0x4, +0xb, 0xa, 0x9, 0x8, 0x7, 0x6, 0x5, 0x0, 0xd, 0xf, 0xc5,0x1, 0x2, 0x3, 0x4, 0x5, +0x6, 0x7, 0x8, 0x0, 0x9, 0xa, 0xb, 0xc, 0x0, 0x25,0xf, 0xdc,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0x0, 0xd, 0x10,0xff,0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, +0xf, 0xf, 0x0, 0x1, 0x11,0xc, 0x0, 0x0, 0x1, 0x11,0x16,0x15,0x0, 0x32,0x11,0x17, +0x0, 0x8, 0x0, 0x13,0x0, 0x26,0x0, 0x43,0x0, 0x6c,0x0, 0xa4,0x0, 0xed,0x1, 0x4a, +0x1, 0xbc,0x2, 0x45,0x2, 0xe4,0x3, 0x99,0x4, 0x61,0x5, 0x3a,0x6, 0x1f,0x7, 0xc, +0x7, 0xf9,0x8, 0xe1,0x9, 0xbd,0xa, 0x86,0xb, 0x34,0xb, 0xc3,0xc, 0x2d,0xc, 0x6e, +0xc, 0x83,0x0, 0x1, 0x11,0x49,0x17,0x0, 0x1, 0x11,0x94,0x2, 0x0, 0x1, 0x11,0x95, +0x0, 0x0, 0x4, 0x11,0x97,0xff,0xff,0xff,0xff,0x0, 0x2, 0x11,0x9b,0xff,0x1f,0x0, +0x1, 0x11,0x9d,0x40,0x0, 0x1, 0x11,0xe8,0x0, 0x0, 0x4, 0x11,0xe9,0x19,0x1e,0x1e, +0x1e,0x0, 0x1, 0x0, 0xff,0x0, 0x0, 0x1, 0x15,0x53,0x0, 0x0, 0x1, 0x15,0x9e,0x0, +0x0, 0x1, 0x15,0x9f,0x0, 0x0, 0x1, 0x15,0xa0,0x0, 0x0, 0x1, 0x15,0xa1,0x0, 0x0, +0x1, 0x12,0x33,0x0, 0x0, 0x1, 0x16,0xa9,0x0, 0x0, 0x1, 0x16,0xb1,0x0, 0x0, 0x1, +0x16,0xb2,0x0, 0x0, 0x1, 0x16,0xb3,0x0, 0x0, 0x1, 0x16,0xb4,0x0, 0x0, 0x1, 0x16, +0xb5,0x0, 0x0, 0x1, 0x16,0xb6,0x0, 0x0, 0x1, 0x16,0xb7,0x1, 0x0, 0x1, 0x16,0xb8, +0x1, 0x0, 0xc, 0x16,0x89,0x0, 0x46,0x0, 0xe6,0x1, 0x18,0x1, 0xb8,0x1, 0xf4,0x2, +0x94,0x0, 0x6, 0x16,0x95,0x0, 0x8c,0x1, 0x68,0x2, 0x44,0x0, 0x1, 0x16,0x25,0x3, +0x0, 0x1, 0x16,0x6e,0x0, 0x0, 0x1, 0x16,0xb9,0x0, 0x0, 0x1, 0x16,0xba,0x0, 0x0, +0x1, 0x16,0xbb,0x0, 0x0, 0x0, 0x53,0x5a,0x1e,0xe1,0xff,0xff,0x71,0x6, 0x8e,0xf9, +0xc3,0x3c,0x4, 0x51, \ No newline at end of file diff --git a/drivers/input/touchscreen/ft5336/ft_app_ic_oufei_tianma_720p.txt b/drivers/input/touchscreen/ft5336/ft_app_ic_oufei_tianma_720p.txt new file mode 100644 index 0000000000000..d475004e5121e --- /dev/null +++ b/drivers/input/touchscreen/ft5336/ft_app_ic_oufei_tianma_720p.txt @@ -0,0 +1,1806 @@ +0x2, 0x50,0xe2,0x2, 0x68,0x6e,0xe5,0x74,0x60,0x9, 0x74,0x1, 0x12,0x6e,0x92,0x75, +0x74,0x0, 0x22,0xe4,0x12,0x6e,0x92,0x75,0x74,0x1, 0x22,0x2, 0x50,0x4c,0xe5,0x55, +0xbe,0xb0,0x1, 0x68,0xf9,0x12,0x6e,0x78,0x60,0xfb,0x22,0x2, 0x67,0x5, 0x7e,0x34, +0x10,0x2b,0x12,0x5b,0x2, 0x7e,0x34,0x10,0x2b,0x12,0x64,0xab,0x12,0x6e,0x81,0x60, +0xfb,0x22,0x22,0x2, 0x6e,0x48,0xc2,0x8e,0x75,0x8d,0x0, 0xa9,0x34,0xc9,0x5, 0x75, +0x8b,0xe6,0x80,0x3, 0x75,0x8b,0x78,0xd2,0x8e,0x22,0x32,0x2, 0x63,0x4d,0xbe,0xb0, +0xa, 0x50,0x6, 0xa, 0x2b,0x19,0x72,0x16,0xa2,0x22,0x22,0x2, 0x0, 0x5a,0xe5,0x52, +0x24,0xff,0x22,0x2, 0x67,0x3d,0xca,0x3b,0x7e,0xb3,0xf, 0x1b,0xf5,0x26,0x7e,0xd3, +0xf, 0x1c,0x7e,0x34,0xe, 0xdf,0x7a,0x35,0x33,0x7e,0x34,0x0, 0x27,0x7e,0x24,0x0, +0xa, 0xe4,0x12,0x6d,0xe0,0x6c,0xcc,0x7e,0xa0,0xff,0x7e,0x70,0x7, 0xac,0x7c,0x19, +0xa3,0x13,0xba,0x7e,0x34,0x7f,0xff,0x74,0x7, 0xac,0xbc,0x59,0x35,0x13,0xb6,0x74, +0x7, 0xac,0xbc,0x59,0x35,0x13,0xb8,0xb, 0xc0,0xbe,0xc0,0xa, 0x78,0xd9,0xe5,0x26, +0x60,0x3, 0x2, 0x0, 0xef,0x12,0x6a,0xad,0xbe,0xd0,0x0, 0x38,0x3, 0x2, 0x0, 0xdf, +0x74,0x1, 0x7a,0xb3,0xf, 0x20,0xe4,0x7a,0xb3,0xf, 0x22,0x7a,0xb3,0xf, 0x23,0x7e, +0x34,0x13,0x6, 0x7e,0x24,0x0, 0xa, 0x74,0xff,0x12,0x6d,0xe0,0x2, 0x1, 0x14,0x4c, +0xdd,0x68,0x3, 0x2, 0x1, 0x14,0x75,0x25,0x0, 0x7e,0xa0,0xff,0x7e,0x71,0x25,0x74, +0x7, 0xac,0x7b,0x19,0xa3,0xe, 0x57,0x5, 0x25,0xe5,0x25,0xb4,0xa, 0xeb,0x74,0x1, +0x7a,0xb3,0xf, 0x1f,0x75,0x25,0x0, 0x2, 0x1, 0x4c,0x7e,0x51,0x25,0x74,0x7, 0xac, +0x5b,0x2e,0x24,0xe, 0xd, 0xb, 0x28,0x30,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x3e,0x34, +0x1b,0x28,0x30,0x7e,0x51,0x25,0xac,0x5b,0x2e,0x24,0xe, 0xf, 0xb, 0x28,0x30,0x3e, +0x34,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x1b,0x28,0x30,0x5, 0x25,0xe5,0x26,0xbe,0xb1, +0x25,0x38,0xc7,0xe4,0x6c,0x77,0x7e,0x61,0x26,0x7e,0x24,0x13,0xb6,0x12,0x52,0x98, +0x7e,0x71,0x26,0x7e,0x60,0xa, 0x7e,0x24,0x13,0xb6,0x12,0x52,0x98,0x7c,0xcb,0x6c, +0xee,0x75,0x25,0x0, 0x2, 0x1, 0x92,0x7e,0xa1,0x25,0x74,0x7, 0xa4,0x9, 0x65,0x13, +0xba,0x74,0x7, 0xac,0xbe,0x9, 0x75,0xe, 0x11,0xbc,0x76,0x78,0x3, 0x2, 0x1, 0x97, +0x5, 0x25,0xbe,0xc1,0x25,0x38,0xe0,0xbe,0xc1,0x25,0x68,0x3, 0x2, 0x1, 0xb8,0x7e, +0x70,0x7, 0xac,0x7e,0x2e,0x34,0xe, 0xd, 0x7e,0x30,0x7, 0xac,0x3c,0x2e,0x14,0x13, +0xb6,0x74,0x7, 0x12,0x48,0xc5,0xb, 0xc0,0xb, 0xe0,0xbe,0xe0,0xa, 0x78,0xb2,0x7e, +0x24,0x13,0xb6,0x7e,0x34,0xe, 0x53,0x7e,0x14,0x0, 0x46,0x12,0x6d,0x3c,0x4c,0xdd, +0x68,0x3, 0x2, 0x1, 0xe7,0x7e,0x24,0xe, 0xd, 0x7e,0x34,0xe, 0x53,0x7e,0x14,0x0, +0x46,0x12,0x6d,0x3c,0x2, 0x4, 0x84,0x7e,0xb3,0xf, 0x22,0x60,0x3, 0x2, 0x4, 0x84, +0x6c,0xee,0x2, 0x4, 0x7b,0x75,0x25,0x0, 0x7e,0xa1,0x25,0x74,0x7, 0xa4,0x9, 0x65, +0xe, 0x57,0x7e,0x90,0x7, 0xac,0x9e,0x9, 0x74,0xe, 0x11,0xbc,0x67,0x78,0x3, 0x2, +0x2, 0x1b,0x5, 0x25,0xe5,0x25,0xbe,0xb0,0xa, 0x40,0xdd,0x7e,0xa1,0x25,0x74,0x7, +0xa4,0x9, 0xf5,0xe, 0x57,0x49,0x34,0xe, 0xf, 0x49,0x25,0xe, 0x55,0x12,0x6d,0xb0, +0x7d,0x63,0x74,0x7, 0xac,0xbe,0x49,0x35,0xe, 0xd, 0x7e,0xa1,0x25,0x74,0x7, 0xa4, +0x49,0x25,0xe, 0x53,0x12,0x6d,0xb0,0x7d,0x13,0x2d,0x16,0x7a,0x15,0x21,0x7c,0x1f, +0x2e,0x10,0x27,0x74,0x1, 0xa5,0xf7,0xbe,0x14,0x0, 0x40,0x28,0x3, 0x2, 0x2, 0xd9, +0x7e,0x35,0x21,0xbe,0x34,0x0, 0x20,0x38,0x3, 0x2, 0x2, 0xae,0x7e,0x70,0x3, 0xac, +0x7f,0x9, 0xb3,0x12,0x2, 0x60,0x3, 0x2, 0x2, 0x97,0x9, 0xb3,0x12,0x3, 0xbe,0xb0, +0x0, 0x38,0x3, 0x2, 0x2, 0x89,0x2, 0x2, 0xbf,0x74,0x1, 0x19,0xb3,0x12,0x2, 0x6d, +0x22,0x7a,0x25,0x21,0x2, 0x2, 0xed,0x9, 0xb3,0x12,0x3, 0xbe,0xb0,0xa, 0x40,0x3, +0x2, 0x2, 0xed,0x2e,0x34,0x12,0x3, 0x4, 0x7a,0x39,0xb0,0x2, 0x2, 0xd1,0x7e,0x70, +0x3, 0xac,0x7f,0x9, 0xb3,0x12,0x3, 0xbe,0xb0,0x0, 0x38,0x3, 0x2, 0x2, 0xcc,0x7d, +0x23,0x2e,0x24,0x12,0x3, 0x14,0x7a,0x29,0xb0,0x2, 0x2, 0xed,0xe4,0x19,0xb3,0x12, +0x2, 0x6d,0x33,0x7a,0x35,0x21,0x2, 0x2, 0xed,0x6c,0xaa,0x7e,0x70,0x3, 0xac,0x7f, +0x19,0xa3,0x12,0x3, 0x7e,0x70,0x3, 0xac,0x7f,0x19,0xa3,0x12,0x2, 0x7e,0x35,0x21, +0xbe,0x34,0x0, 0x20,0x28,0x3, 0x2, 0x3, 0x2e,0x7e,0xa1,0x25,0x74,0x7, 0xa4,0x49, +0x35,0xe, 0x53,0x74,0x7, 0xac,0xbe,0x59,0x35,0xe, 0xd, 0x7e,0xa1,0x25,0x74,0x7, +0xa4,0x49,0x35,0xe, 0x55,0x74,0x7, 0xac,0xbe,0x59,0x35,0xe, 0xf, 0x6d,0x33,0x7a, +0x35,0x21,0x7e,0xa0,0x1, 0x7e,0x70,0x3, 0xac,0x7f,0x19,0xa3,0x12,0x1, 0x7e,0xf5, +0x21,0x7a,0xf5,0x23,0xa, 0xef,0x2e,0xe5,0x33,0x7e,0xe9,0xb0,0xb4,0x1, 0x2, 0x80, +0x3, 0x2, 0x3, 0x52,0x6d,0xee,0x74,0x2, 0xac,0xbf,0x59,0xe5,0x11,0xed,0x59,0xe5, +0x12,0x1f,0x7e,0x17,0xf, 0x5d,0xbe,0x15,0x23,0x28,0x3, 0x2, 0x3, 0x68,0x7e,0x4, +0x1, 0x0, 0x7a,0x5, 0x31,0x2, 0x3, 0x8b,0x7e,0x35,0x23,0x6d,0x22,0x7c,0x56,0x7c, +0x67,0x6c,0x77,0x12,0x48,0x3e,0x7d,0xe3,0x7a,0xe5,0x31,0xbe,0xe4,0x0, 0x10,0x40, +0x3, 0x2, 0x3, 0x8b,0x7e,0xe4,0x0, 0x10,0x7a,0xe5,0x31,0x74,0x2, 0xac,0xbf,0x49, +0x45,0x12,0x1f,0xbe,0x45,0x21,0x38,0x3, 0x2, 0x3, 0xa5,0x49,0x45,0x11,0xed,0x7a, +0x45,0x31,0x2, 0x3, 0xac,0x7e,0x45,0x31,0x59,0x45,0x11,0xed,0x59,0xf5,0x12,0x1f, +0x7e,0x35,0x31,0xbe,0x34,0x1, 0x0, 0x38,0x3, 0x2, 0x3, 0xc3,0x7e,0x34,0x1, 0x0, +0x7a,0x35,0x31,0x74,0x7, 0xac,0xbe,0x49,0x35,0xe, 0xd, 0x7e,0xa1,0x25,0x74,0x7, +0xa4,0x49,0x25,0xe, 0x53,0x12,0x6d,0xb0,0x7d,0x23,0x7a,0x25,0x21,0x7e,0x35,0x31, +0xad,0x32,0x7c,0x76,0x7c,0x65,0xa, 0x24,0x7a,0x35,0x21,0x7e,0x51,0x25,0x74,0x7, +0xac,0x5b,0x49,0x32,0xe, 0x53,0xac,0xbe,0x49,0x15,0xe, 0xd, 0xbd,0x13,0x38,0x3, +0x2, 0x4, 0x14,0x7d,0x2, 0x2e,0x4, 0xe, 0x53,0x7d,0x13,0x2e,0x15,0x21,0x1b,0x8, +0x10,0x2, 0x4, 0x1e,0x2e,0x24,0xe, 0x53,0x9e,0x35,0x21,0x1b,0x28,0x30,0x74,0x7, +0xac,0xbe,0x49,0x35,0xe, 0xf, 0x7e,0xa1,0x25,0x74,0x7, 0xa4,0x49,0x25,0xe, 0x55, +0x12,0x6d,0xb0,0x7d,0x23,0x7a,0x25,0x21,0x7e,0x35,0x31,0xad,0x32,0x7c,0x76,0x7c, +0x65,0xa, 0x24,0x7a,0x35,0x21,0x7e,0x51,0x25,0x74,0x7, 0xac,0x5b,0x49,0x32,0xe, +0x55,0xac,0xbe,0x49,0x15,0xe, 0xf, 0xbd,0x13,0x38,0x3, 0x2, 0x4, 0x6f,0x7d,0x2, +0x2e,0x4, 0xe, 0x55,0x7d,0x13,0x2e,0x15,0x21,0x1b,0x8, 0x10,0x2, 0x4, 0x79,0x2e, +0x24,0xe, 0x55,0x9e,0x35,0x21,0x1b,0x28,0x30,0xb, 0xe0,0xe5,0x26,0xbc,0xbe,0x28, +0x3, 0x2, 0x1, 0xf5,0x6c,0xee,0x74,0x7, 0xac,0xbe,0x49,0x45,0xe, 0x53,0x1e,0x44, +0x1e,0x44,0x1e,0x44,0x1e,0x44,0x7a,0x45,0x35,0x49,0x45,0xe, 0x55,0x1e,0x44,0x1e, +0x44,0x1e,0x44,0x1e,0x44,0x7a,0x45,0x37,0x9, 0xf5,0xe, 0x57,0x19,0xf5,0xe, 0x11, +0x74,0x7, 0xac,0xbe,0x9, 0x75,0xe, 0x58,0x19,0x75,0xe, 0x12,0x74,0x7, 0xac,0xbe, +0x9, 0x75,0xe, 0x59,0x19,0x75,0xe, 0x13,0x7c,0xbf,0x54,0xf, 0xbe,0xb0,0xa, 0x40, +0x3, 0x2, 0x5, 0xd7,0x7c,0xfb,0xa, 0xf, 0x7d,0x10,0x2e,0x15,0x33,0x7e,0x19,0xb0, +0xbe,0xb0,0x3, 0x78,0x3, 0x2, 0x5, 0xf4,0xb4,0x1, 0x2, 0x80,0x3, 0x2, 0x4, 0xf9, +0x74,0xff,0x19,0xb0,0x13,0x6, 0x2, 0x5, 0xd7,0x9, 0x90,0x13,0x6, 0xbe,0x90,0xff, +0x68,0x3, 0x2, 0x5, 0x4b,0x74,0x1, 0x19,0xb0,0x13,0x6, 0x7e,0x15,0x35,0x74,0x7, +0xac,0xbe,0x59,0x15,0xe, 0xd, 0x7e,0x15,0x37,0x74,0x7, 0xac,0xbe,0x59,0x15,0xe, +0xf, 0x6c,0xdd,0x7e,0x70,0x7, 0xac,0x7e,0x2e,0x34,0xe, 0xd, 0x7e,0x50,0x7, 0xac, +0x5d,0x7e,0x30,0x15,0xac,0x3f,0x2d,0x12,0x2e,0x14,0x12,0x34,0x74,0x7, 0x12,0x48, +0xc5,0xb, 0xd0,0xbe,0xd0,0x3, 0x78,0xdb,0x2, 0x5, 0xd7,0xbe,0x90,0x3, 0x50,0x3, +0x2, 0x5, 0x58,0xe4,0x19,0xb0,0x13,0x6, 0x7e,0x25,0x35,0x9, 0x80,0x13,0x6, 0x7e, +0x90,0x7, 0xac,0x89,0x7e,0x70,0x15,0xac,0x7f,0x2d,0x43,0x59,0x24,0x12,0x34,0x7e, +0x25,0x37,0x59,0x24,0x12,0x36,0x7e,0xb3,0xf, 0x22,0x60,0x3, 0x2, 0x5, 0xa0,0xe4, +0x2e,0x34,0x12,0x34,0x12,0x67,0xd9,0x74,0x7, 0xac,0xbe,0x59,0x35,0xe, 0xd, 0x74, +0x1, 0x7e,0x70,0x15,0xac,0x7f,0x2e,0x34,0x12,0x34,0x12,0x67,0xd9,0x2, 0x5, 0xc2, +0x49,0x34,0x12,0x34,0x74,0x7, 0xac,0xbe,0x59,0x35,0xe, 0xd, 0xa, 0x3f,0x9, 0x43, +0x13,0x6, 0x7e,0x50,0x7, 0xac,0x45,0x7e,0x70,0x15,0xac,0x7f,0x2d,0x32,0x49,0x33, +0x12,0x36,0x74,0x7, 0xac,0xbe,0x59,0x35,0xe, 0xf, 0xa, 0x3f,0x2e,0x34,0x13,0x6, +0x7e,0x39,0xb0,0x4, 0x7a,0x39,0xb0,0x7c,0x1e,0x2e,0x10,0x27,0xa5,0xe7,0x60,0x3, +0x2, 0x5, 0xf4,0x7e,0x70,0x3, 0xac,0x7e,0x2e,0x34,0x12,0x1, 0x7e,0x24,0x0, 0x3, +0xe4,0x12,0x6d,0xe0,0xb, 0xe0,0xbe,0xe0,0xa, 0x68,0x3, 0x2, 0x4, 0x86,0xe5,0x26, +0xbe,0xb0,0x0, 0x38,0x3, 0x2, 0x6, 0xe, 0x74,0x1, 0x7a,0xb3,0xf, 0x24,0xda,0x3b, +0x22,0xca,0x3b,0x7e,0xe3,0xf, 0x1b,0x4c,0xee,0x78,0x27,0x6c,0xff,0x6d,0x11,0x74, +0x2, 0xac,0xbf,0x59,0x15,0x13,0x56,0x7e,0xa0,0xff,0x7e,0x30,0x7, 0xac,0x3f,0x19, +0xa1,0x13,0x14,0x74,0x2, 0xa, 0x1f,0x19,0xb1,0x13,0x6a,0xb, 0xf0,0xbe,0xf0,0xa, +0x78,0xdb,0x6c,0xff,0x2, 0x7, 0xac,0x74,0x7, 0xac,0xbf,0x9, 0xb5,0xe, 0x11,0x54, +0xf, 0xf5,0x22,0xbe,0xb0,0xa, 0x40,0x3, 0x2, 0x7, 0xaa,0xe5,0x22,0xa, 0x1b,0x9, +0xb1,0xe, 0xdf,0xbe,0xb0,0x1, 0x78,0x3, 0x2, 0x7, 0x85,0x75,0x21,0x0, 0x7e,0x31, +0x21,0x74,0x7, 0xac,0x3b,0x9, 0x71,0x13,0x14,0x7a,0x71,0x23,0xbe,0x71,0x22,0x68, +0x3, 0x2, 0x7, 0x77,0x49,0x21,0x13,0x12,0x74,0x7, 0xac,0xbf,0x49,0x35,0xe, 0xf, +0x9d,0x32,0x12,0x6d,0xd0,0x7d,0x63,0x7e,0xa1,0x21,0x74,0x7, 0xa4,0x49,0x25,0x13, +0x10,0x74,0x7, 0xac,0xbf,0x49,0x35,0xe, 0xd, 0x9d,0x32,0x12,0x6d,0xd0,0x7d,0x3, +0x2d,0x6, 0xe5,0x23,0xa, 0x1b,0x9, 0xa1,0x13,0x6a,0xbe,0xa0,0x0, 0x28,0x18,0x7e, +0x71,0x23,0x74,0x2, 0xac,0x7b,0x59,0x3, 0x13,0x56,0x2e,0x14,0x13,0x6a,0x7c,0xba, +0x14,0x7a,0x19,0xb0,0x2, 0x7, 0xaa,0x7e,0xa1,0x23,0x74,0x2, 0xa4,0x49,0x15,0x13, +0x56,0xbe,0x14,0x0, 0x32,0x28,0x9, 0xbe,0x4, 0x0, 0x32,0x28,0x3, 0x2, 0x7, 0x71, +0x7d,0x41,0x2e,0x44,0x0, 0x32,0xbd,0x40,0x50,0x8, 0xbe,0x14,0x0, 0x32,0x28,0x2, +0x80,0x6f,0xbe,0x4, 0x0, 0x96,0x28,0x63,0xe5,0x22,0xa, 0x1b,0x9, 0xb1,0xe, 0xdf, +0x70,0x4, 0x74,0x3, 0x80,0x2, 0x74,0x1, 0x19,0xb1,0xe, 0xdf,0x7e,0xa0,0x3, 0xe5, +0x22,0xa, 0x1b,0x19,0xa1,0xe, 0xe9,0x7e,0x71,0x21,0x74,0x7, 0xac,0x7b,0x2e,0x34, +0x13,0x10,0x7e,0x14,0x13,0xb6,0x12,0x48,0xc5,0xbe,0xe0,0x0, 0x28,0x2d,0x1b,0xe0, +0x7e,0x70,0x7, 0xac,0x7e,0x2e,0x34,0xe, 0xd, 0x7e,0x30,0x7, 0xac,0x3f,0x2e,0x14, +0xe, 0xd, 0x74,0x7, 0x12,0x48,0xc5,0x7e,0x34,0x13,0xb6,0x7e,0x30,0x7, 0xac,0x3e, +0x2e,0x14,0xe, 0xd, 0x74,0x7, 0x12,0x48,0xc5,0x1b,0xf0,0x7e,0xa1,0x23,0x74,0x2, +0xa4,0x59,0x5, 0x13,0x56,0x80,0x33,0x5, 0x21,0xe5,0x21,0xbe,0xb0,0xa, 0x50,0x3, +0x2, 0x6, 0x6e,0x80,0x25,0x6d,0x11,0x7e,0xa1,0x22,0x74,0x2, 0xa4,0x59,0x15,0x13, +0x56,0x7e,0xa0,0xff,0x7e,0x31,0x22,0x74,0x7, 0xac,0x3b,0x19,0xa1,0x13,0x14,0x7e, +0xa0,0x2, 0xe5,0x22,0xa, 0x1b,0x19,0xa1,0x13,0x6a,0xb, 0xf0,0xbc,0xef,0x28,0x3, +0x2, 0x6, 0x47,0x7a,0xe3,0xf, 0x1b,0x7e,0x24,0xe, 0xd, 0x7e,0x34,0x13,0x10,0x7e, +0x14,0x0, 0x46,0x12,0x6d,0x3c,0xda,0x3b,0x22,0x6c,0xaa,0x7e,0x50,0x2, 0xac,0x5a, +0x7d,0x12,0x2d,0x13,0x9, 0xb1,0x0, 0x1, 0x54,0x3f,0xa, 0xb, 0x3e,0x4, 0x3e,0x4, +0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x7e,0x19,0xb0,0x54,0x3f,0xa, 0x1b,0x4d, +0x10,0x2e,0x24,0x1c,0x36,0x1b,0x28,0x10,0xb, 0xa0,0xbe,0xa0,0x2, 0x40,0xcc,0x22, +0xd2,0x9f,0x6d,0x33,0x89,0x34,0xca,0x3b,0x7d,0x63,0x75,0x24,0xc, 0x75,0x25,0x0, +0x75,0x26,0x17,0x75,0x27,0x0, 0x7e,0x34,0x13,0xd0,0x7e,0x24,0x0, 0x28,0xe4,0x12, +0x6d,0xe0,0x6c,0x66,0x2, 0x8, 0xed,0x74,0x2, 0xac,0xb6,0x9, 0x75,0xd, 0x18,0x7a, +0x71,0x23,0x9, 0xa5,0xd, 0x19,0x1a,0x17,0x7d,0x21,0x1b,0x25,0xb, 0x15,0x7c,0x43, +0x1a,0x1a,0x1b,0x15,0x1a,0xa, 0xb, 0x5, 0x7c,0x21,0xbe,0x50,0x0, 0x58,0x2, 0x6c, +0x55,0x7e,0x73,0x10,0x2b,0xa, 0x7, 0x1b,0x4, 0x1a,0x44,0xbd,0x40,0x8, 0x2, 0x7c, +0x41,0xbe,0x30,0x0, 0x58,0x2, 0x6c,0x33,0x7e,0x73,0x10,0x2c,0xa, 0x7, 0x1b,0x4, +0x1a,0x42,0xbd,0x40,0x8, 0x2, 0x7c,0x21,0xbe,0x51,0x24,0x58,0x3, 0x7a,0x51,0x24, +0xbe,0x41,0x25,0x8, 0x3, 0x7a,0x41,0x25,0xbe,0x31,0x26,0x58,0x3, 0x7a,0x31,0x26, +0xbe,0x21,0x27,0x8, 0x3, 0x7a,0x21,0x27,0x7c,0xf5,0x80,0x4b,0x7c,0xe3,0x80,0x41, +0x1a,0xef,0x7e,0xf4,0x0, 0x18,0xad,0xfe,0x1a,0xe, 0x2d,0xf, 0xe, 0x4, 0xe, 0x4, +0xe, 0x4, 0x7c,0x71,0x7a,0x71,0x21,0x7e,0x10,0x18,0xac,0x1f,0x7c,0xb1,0x2c,0xbe, +0x54,0x7, 0x7e,0x4, 0x0, 0x1, 0x60,0x5, 0x3e,0x4, 0x14,0x78,0xfb,0x7c,0xb1,0xf5, +0x22,0xa, 0x7, 0x2e,0x4, 0x13,0xd0,0x7e,0x9, 0xb0,0x45,0x22,0x7a,0x9, 0xb0,0xb, +0xe0,0xbc,0x2e,0x58,0xbb,0xb, 0xf0,0xbc,0x4f,0x58,0xb1,0xb, 0x60,0x7e,0x73,0xd, +0xf7,0xbc,0x76,0x28,0x3, 0x2, 0x8, 0x27,0xbe,0x70,0x0, 0x38,0x3, 0x2, 0xd, 0x43, +0x7e,0xe1,0x26,0x2, 0xd, 0x3a,0x6c,0xff,0x80,0x1f,0x1a,0x3e,0x3e,0x34,0x1a,0x2f, +0x7e,0x14,0x0, 0x30,0xad,0x12,0x2d,0x31,0x2d,0x36,0xb, 0x38,0x30,0xe, 0x34,0xe, +0x34,0x3e,0x24,0x59,0x32,0x13,0xb6,0xb, 0xf0,0x7e,0x73,0x10,0x2b,0xbc,0x7f,0x18, +0xd9,0x7e,0xf1,0x24,0x2, 0xd, 0x2f,0x1a,0x4f,0x7e,0x14,0x0, 0x18,0xad,0x14,0x1a, +0x3e,0x7d,0x51,0x2d,0x53,0xe, 0x54,0xe, 0x54,0xe, 0x54,0x7c,0xab,0x7a,0xa1,0x21, +0x7e,0x50,0x18,0xac,0x5f,0x7c,0xb5,0x2c,0xbe,0x54,0x7, 0x7e,0x24,0x0, 0x1, 0x60, +0x5, 0x3e,0x24,0x14,0x78,0xfb,0x7c,0xb5,0xf5,0x22,0xa, 0x2a,0x9, 0xb2,0x13,0xd0, +0x55,0x22,0x78,0x3, 0x2, 0xd, 0x2d,0xbe,0xf0,0x3, 0x58,0x3, 0x2, 0x9, 0xfe,0x7e, +0x53,0x10,0x2b,0xa, 0x25,0x1b,0x26,0xbd,0x42,0x18,0x73,0x7d,0xf4,0x3e,0xf4,0x49, +0x5f,0x13,0xba,0x49,0x2f,0x13,0xb2,0x2d,0x25,0x7d,0x52,0x3e,0x54,0x3e,0x24,0x3e, +0x24,0x3e,0x24,0x2d,0x25,0x49,0x5f,0x13,0xbc,0x49,0xef,0x13,0xb0,0x2d,0xe5,0x7d, +0x5e,0x3e,0x54,0x2d,0x5e,0x9d,0x25,0x49,0xef,0x13,0xb8,0x49,0x5f,0x13,0xb4,0x2d, +0x5e,0x7d,0xe5,0x3e,0xe4,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x2d, +0x5e,0x9d,0x25,0x49,0x5f,0x13,0xb6,0x7d,0x5, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x3e, +0x4, 0x7d,0x15,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x3e, +0x14,0x9d,0x10,0x3e,0x54,0x3e,0x54,0x2d,0x51,0x2d,0x52,0x2, 0xb, 0x55,0x4c,0xff, +0x78,0x5d,0x7d,0x24,0x3e,0x24,0x49,0x12,0x13,0xb6,0x7d,0x1, 0x3e,0x4, 0x3e,0x4, +0x3e,0x4, 0x3e,0x4, 0x7d,0x51,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x3e,0x54, +0x3e,0x54,0x2d,0x50,0x7d,0x1, 0x3e,0x4, 0x2d,0x5, 0x2d,0x1, 0x49,0x12,0x13,0xb8, +0x7d,0x51,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x9d,0x5, 0x3e,0x14,0x3e,0x14, +0x3e,0x14,0x9d,0x1, 0x49,0x12,0x13,0xba,0x7d,0x51,0x3e,0x54,0x3e,0x54,0x3e,0x54, +0x2d,0x50,0x9d,0x51,0x49,0x22,0x13,0xbc,0x3e,0x24,0x9d,0x52,0x2, 0xb, 0x55,0xbe, +0xf0,0x1, 0x78,0x69,0x7d,0x4, 0x3e,0x4, 0x49,0x10,0x13,0xb4,0x7d,0x21,0x3e,0x24, +0x3e,0x24,0x3e,0x24,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x2d,0x12,0x49,0x20, +0x13,0xb6,0x7d,0x52,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x3e,0x24,0x3e,0x24, +0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x9d,0x25,0x9d,0x21,0x49,0x10, +0x13,0xb8,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x9d,0x21,0x49,0x10, +0x13,0xba,0x7d,0x51,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x2d,0x51,0x2d,0x52,0x49,0x10, +0x13,0xbc,0x7d,0x21,0x3e,0x24,0x2d,0x21,0x9d,0x52,0x2, 0xb, 0x55,0xbe,0xf0,0x2, +0x68,0x3, 0x2, 0xb, 0x75,0x7d,0x4, 0x3e,0x4, 0x49,0x10,0x13,0xb4,0x7d,0x21,0x3e, +0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x2d,0x21,0x49,0x50,0x13,0xb2,0x7d, +0x15,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x9d,0x15,0x9d,0x12,0x49,0x20,0x13,0xb6,0x7d, +0xf2,0x3e,0xf4,0x3e,0xf4,0x3e,0xf4,0x3e,0xf4,0x7d,0x52,0x3e,0x54,0x3e,0x54,0x3e, +0x54,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x9d,0x5f,0x3e,0x24,0x3e,0x24,0x2d, +0x25,0x2d,0x21,0x49,0x50,0x13,0xb8,0x7d,0x15,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x3e, +0x14,0x3e,0x14,0x2d,0x15,0x9d,0x21,0x49,0x50,0x13,0xba,0x7d,0x15,0x3e,0x14,0x3e, +0x54,0x3e,0x54,0x3e,0x54,0x2d,0x51,0x2d,0x52,0x49,0x10,0x13,0xbc,0x7d,0x21,0x3e, +0x24,0x2d,0x21,0x9d,0x52,0xe, 0x54,0xe, 0x54,0xe, 0x54,0xe, 0x54,0xe, 0x54,0xe, +0x54,0x7d,0x23,0x3e,0x24,0x7e,0x14,0x0, 0x30,0xad,0x14,0x2d,0x21,0x2d,0x26,0x1b, +0x28,0x50,0x2, 0xd, 0x11,0x7e,0xa3,0x10,0x2b,0x7c,0xba,0x24,0xfd,0xbc,0xbf,0x68, +0x3, 0x2, 0xc, 0x11,0x3e,0x44,0x49,0x24,0x13,0xb2,0x7d,0x12,0x3e,0x14,0x3e,0x24, +0x3e,0x24,0x3e,0x24,0x2d,0x21,0x49,0x4, 0x13,0xb0,0x7d,0x10,0x3e,0x14,0x2d,0x10, +0x9d,0x21,0x49,0x4, 0x13,0xb4,0x7d,0x10,0x3e,0x14,0x3e,0x14,0x3e,0x14,0x3e,0x14, +0x3e,0x14,0x2d,0x10,0x9d,0x21,0x49,0x14,0x13,0xb6,0x7d,0xf1,0x3e,0xf4,0x3e,0xf4, +0x3e,0xf4,0x3e,0xf4,0x7d,0x1, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, +0x3e,0x4, 0x3e,0x4, 0x9d,0xf, 0x3e,0x14,0x3e,0x14,0x2d,0x10,0x2d,0x12,0x49,0x4, +0x13,0xb8,0x7d,0x20,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x2d,0x20, +0x9d,0x12,0x49,0x4, 0x13,0xba,0x7d,0x20,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x9d,0x20, +0x2d,0x21,0xe, 0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0x2, 0xd, +0x0, 0x7c,0xba,0x24,0xfe,0xbc,0xbf,0x78,0x76,0x1a,0xf, 0x3e,0x4, 0x49,0x30,0x13, +0xb0,0x7d,0x23,0x3e,0x24,0x2d,0x23,0x49,0x10,0x13,0xb2,0x7d,0x31,0x3e,0x34,0x3e, +0x34,0x3e,0x34,0x2d,0x31,0x9d,0x32,0x49,0x20,0x13,0xb4,0x3e,0x24,0x3e,0x24,0x3e, +0x24,0x3e,0x24,0x3e,0x24,0x9d,0x32,0x49,0x20,0x13,0xb6,0x7d,0x12,0x3e,0x14,0x3e, +0x14,0x3e,0x14,0x3e,0x14,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e, +0x24,0x3e,0x24,0x9d,0x21,0x2d,0x23,0x49,0x30,0x13,0xb8,0x7d,0x13,0x3e,0x14,0x3e, +0x14,0x3e,0x14,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x2d,0x31,0x9d,0x23,0xe, +0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0x1a,0x3e,0x80,0x71,0x7e, +0xb3,0x10,0x2b,0x14,0xbc,0xbf,0x78,0x79,0x1a,0x5f,0x3e,0x54,0x49,0x25,0x13,0xb2, +0x7d,0x32,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x9d,0x32,0x49,0x25,0x13,0xb0,0x3e,0x24, +0x9d,0x32,0x49,0x25,0x13,0xb4,0x7d,0x42,0x3e,0x44,0x3e,0x44,0x3e,0x44,0x3e,0x24, +0x3e,0x24,0x3e,0x24,0x3e,0x24,0x2d,0x24,0x9d,0x32,0x49,0x15,0x13,0xb6,0x7d,0x21, +0x3e,0x24,0x3e,0x24,0x3e,0x24,0x3e,0x24,0x7d,0x1, 0x3e,0x4, 0x3e,0x4, 0x3e,0x4, +0x3e,0x4, 0x3e,0x4, 0x3e,0x4, 0x2d,0x2, 0x7d,0x21,0x3e,0x24,0x2d,0x20,0x2d,0x21, +0x2d,0x23,0xe, 0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0x1a,0x3e, +0x3e,0x34,0x1a,0xf, 0x7e,0x14,0x0, 0x30,0xad,0x10,0x2d,0x31,0x2d,0x36,0x1b,0x38, +0x20,0x1a,0x1e,0x3e,0x14,0x1a,0x2f,0x7e,0x34,0x0, 0x30,0xad,0x32,0x7d,0x23,0x2d, +0x21,0x2d,0x26,0xb, 0x28,0x30,0x3e,0x34,0x3e,0x34,0x1b,0x28,0x30,0xb, 0xf0,0xe5, +0x25,0xbc,0xbf,0x48,0x3, 0x2, 0x9, 0x37,0xb, 0xe0,0xe5,0x27,0xbc,0xbe,0x48,0x3, +0x2, 0x9, 0x6, 0xda,0x3b,0x22,0xca,0x3b,0x7c,0xfb,0x7e,0xb3,0xd, 0xf7,0xf5,0x2c, +0x75,0x10,0x0, 0xe4,0x7a,0xb3,0x15,0x54,0x7a,0xb3,0x15,0x55,0x6d,0x22,0x7e,0x34, +0x7f,0xff,0x7e,0x67,0xf, 0xda,0x6c,0xee,0xe4,0xa, 0x1e,0x19,0xb1,0x13,0xb6,0x6c, +0xaa,0x7e,0x10,0x2, 0xac,0x1e,0x19,0xa0,0x15,0x2b,0x19,0xb0,0x15,0x2c,0xe5,0x2c, +0xbc,0xbe,0x28,0x24,0x9, 0x20,0xd, 0x18,0x7e,0x30,0x18,0xac,0x23,0x9, 0x10,0xd, +0x19,0xa, 0x1, 0x2d,0x10,0x3e,0x14,0x2d,0x16,0xb, 0x18,0x10,0xbd,0x12,0x48,0x2, +0x7d,0x21,0xbd,0x13,0x18,0x2, 0x7d,0x31,0xb, 0xe0,0xbe,0xe0,0x14,0x78,0xb9,0x2d, +0x32,0xe, 0x34,0xe5,0x2c,0xbe,0xb0,0x2, 0x50,0x3, 0x2, 0x11,0x9d,0x6c,0xee,0x7e, +0x30,0x6, 0xac,0x3e,0x7d,0x51,0x2e,0x54,0x69,0x4e,0x7e,0x44,0x0, 0xff,0xb, 0x2a, +0x20,0xbd,0x23,0x58,0x20,0x7d,0x51,0x2e,0x54,0x69,0x50,0x7e,0x44,0x0, 0xff,0xb, +0x2a,0x20,0x7a,0x25,0x30,0x2e,0x14,0x69,0x52,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0x20, +0x7a,0x25,0x32,0x80,0x7, 0xb, 0xe0,0xbe,0xe0,0x7, 0x40,0xc3,0x6c,0xee,0x2, 0x11, +0x8b,0x7e,0x70,0x2, 0xac,0x7e,0x9, 0xb3,0xd, 0x18,0xf5,0x22,0x9, 0xb3,0xd, 0x19, +0xf5,0x23,0x4c,0xee,0x68,0x8, 0xa, 0x3e,0x9, 0xb3,0x13,0xb6,0x70,0xa, 0xa, 0x3e, +0xb, 0x34,0xa, 0x2e,0x19,0x72,0x13,0xb6,0xe5,0x2c,0x14,0xbc,0xbe,0x78,0x3, 0x2, +0x11,0x94,0xa, 0x5e,0xb, 0x54,0xf5,0x2d,0x2, 0x11,0x7f,0x7e,0x71,0x2d,0x74,0x2, +0xac,0x7b,0x9, 0xa3,0xd, 0x18,0x7a,0xa1,0x24,0x9, 0xb3,0xd, 0x19,0xf5,0x25,0xa, +0x2a,0xe5,0x22,0xa, 0x3b,0x9d,0x32,0x12,0x6d,0xd0,0x7c,0xb7,0xf5,0x2a,0xe5,0x25, +0xa, 0x2b,0xe5,0x23,0xa, 0x3b,0x9d,0x32,0x12,0x6d,0xd0,0x7c,0xb7,0xf5,0x2b,0x75, +0x3d,0x2, 0x75,0x2f,0x0, 0x7e,0x51,0x22,0x74,0x18,0xac,0x5b,0xe5,0x23,0xa, 0x3b, +0x2d,0x23,0x3e,0x24,0x2d,0x26,0xb, 0x28,0x20,0x7a,0x25,0x34,0x7e,0x11,0x24,0x74, +0x18,0xac,0x1b,0xe5,0x25,0xa, 0x1b,0x7d,0x20,0x2d,0x21,0x3e,0x24,0x2d,0x26,0xb, +0x28,0x20,0x7a,0x25,0x36,0x7d,0x52,0x3e,0x54,0x3e,0x54,0x3e,0x54,0xe, 0x54,0xe, +0x54,0xe, 0x54,0xe, 0x54,0x7a,0x55,0x38,0xbe,0x25,0x34,0x8, 0x14,0x7e,0x25,0x34, +0x3e,0x24,0x3e,0x24,0x3e,0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0xe, 0x24,0x7a,0x25, +0x38,0xe5,0x2a,0xbe,0xb0,0x1, 0x38,0x37,0xe5,0x2b,0xbe,0xb0,0x1, 0x38,0x30,0x7c, +0xbf,0x54,0x2, 0xb4,0x2, 0x29,0x2d,0x3, 0x3e,0x4, 0x2d,0x6, 0xb, 0x8, 0x20,0x7e, +0x71,0x22,0x74,0x18,0xac,0x7b,0x2d,0x31,0x3e,0x34,0x2d,0x36,0xb, 0x38,0x30,0x2d, +0x32,0xbe,0x35,0x38,0x18,0x3, 0x2, 0x11,0x13,0x75,0x2f,0x1, 0x2, 0x11,0x13,0xe5, +0x2a,0xbe,0xb0,0x1, 0x38,0xa, 0xe5,0x2b,0xbe,0xb0,0x1, 0x38,0x3, 0x2, 0x11,0x13, +0xe5,0x2a,0xbe,0xb0,0x4, 0x40,0x3, 0x2, 0x11,0x13,0xe5,0x2b,0xbe,0xb0,0x4, 0x40, +0x3, 0x2, 0x11,0x13,0x7c,0xbf,0x54,0x1, 0xb4,0x1, 0x2, 0x80,0x3, 0x2, 0x11,0x13, +0x6d,0x33,0x7a,0x35,0x3a,0x75,0x3c,0x0, 0x85,0x22,0x26,0x85,0x24,0x28,0xe5,0x24, +0xbe,0xb1,0x22,0x50,0x6, 0x85,0x24,0x26,0x85,0x22,0x28,0x85,0x23,0x27,0x85,0x25, +0x29,0xe5,0x25,0xbe,0xb1,0x23,0x50,0x6, 0x85,0x25,0x27,0x85,0x23,0x29,0x75,0x40, +0x0, 0x75,0x41,0x0, 0xe5,0x28,0xbe,0xb1,0x26,0x78,0x21,0x75,0x40,0x1, 0xe5,0x26, +0x60,0x5, 0xe5,0x26,0xb4,0xc, 0x3, 0x75,0x41,0x1, 0xe5,0x26,0xbe,0xb0,0x0, 0x28, +0x2, 0x15,0x26,0xe5,0x28,0xbe,0xb0,0xc, 0x50,0x2, 0x5, 0x28,0xe5,0x29,0xbe,0xb1, +0x27,0x78,0x21,0x75,0x40,0x1, 0xe5,0x27,0x60,0x5, 0xe5,0x27,0xb4,0x17,0x3, 0x75, +0x41,0x1, 0xe5,0x27,0xbe,0xb0,0x0, 0x28,0x2, 0x15,0x27,0xe5,0x29,0xbe,0xb0,0x17, +0x50,0x2, 0x5, 0x29,0x85,0x26,0x3e,0x80,0x78,0x85,0x27,0x3f,0x80,0x6a,0xe5,0x26, +0xbe,0xb1,0x3e,0x68,0x15,0xe5,0x28,0xbe,0xb1,0x3e,0x68,0xe, 0xe5,0x27,0xbe,0xb1, +0x3f,0x68,0x7, 0xe5,0x29,0xbe,0xb1,0x3f,0x78,0x24,0x7e,0x51,0x3e,0x74,0x18,0xac, +0x5b,0xe5,0x3f,0xa, 0x1b,0x2d,0x21,0x3e,0x24,0x2d,0x26,0xb, 0x28,0x20,0xbe,0x24, +0x0, 0x0, 0x8, 0x6, 0x2e,0x25,0x3a,0x7a,0x25,0x3a,0x5, 0x3c,0x80,0x28,0x7e,0x51, +0x3e,0x74,0x18,0xac,0x5b,0xe5,0x3f,0xa, 0x1b,0x2d,0x21,0x3e,0x24,0x2d,0x26,0xb, +0x28,0x20,0xbe,0x25,0x32,0x8, 0xc, 0xe5,0x3d,0xbe,0xb0,0x0, 0x28,0x5, 0x75,0x3d, +0x1, 0x80,0x3, 0x75,0x3d,0x0, 0x5, 0x3f,0xe5,0x29,0xbe,0xb1,0x3f,0x50,0x8f,0x5, +0x3e,0xe5,0x28,0xbe,0xb1,0x3e,0x50,0x81,0x7e,0x51,0x28,0x74,0x18,0xac,0x5b,0xe5, +0x27,0xa, 0x4b,0x2d,0x24,0x3e,0x24,0x2d,0x26,0xb, 0x28,0x50,0x7e,0x25,0x3a,0x9d, +0x25,0x7e,0x31,0x26,0x74,0x18,0xac,0x3b,0xe5,0x29,0xa, 0xb, 0x7d,0x51,0x2d,0x50, +0x3e,0x54,0x2d,0x56,0xb, 0x58,0x50,0x9d,0x25,0x2d,0x14,0x3e,0x14,0x2d,0x16,0xb, +0x18,0x10,0x9d,0x21,0x7e,0x31,0x28,0x74,0x18,0xac,0x3b,0x2d,0x10,0x3e,0x14,0x2d, +0x16,0xb, 0x18,0x10,0x9d,0x21,0x7a,0x25,0x3a,0x7e,0x25,0x36,0x2e,0x25,0x34,0x7a, +0x25,0x38,0xe5,0x40,0xb4,0x1, 0x11,0xe5,0x41,0x70,0xd, 0x7e,0x25,0x3a,0x9e,0x25, +0x38,0x7a,0x25,0x3a,0x15,0x3c,0x15,0x3c,0xe5,0x3c,0xbe,0xb0,0x4, 0x28,0x6, 0xe5, +0x3c,0x24,0xfc,0xf5,0x3c,0x7e,0x25,0x3a,0xbe,0x24,0x0, 0x0, 0x58,0x3, 0x7a,0x35, +0x3a,0x7e,0x15,0x38,0x1a,0x2, 0x1a,0x0, 0x7e,0x35,0x30,0x1a,0x26,0x1a,0x24,0x12, +0x48,0x24,0xe5,0x3c,0xa, 0x1b,0x6d,0x0, 0x12,0x48,0x24,0x7f,0x21,0x7e,0x35,0x3a, +0x1a,0x26,0x1a,0x24,0x7e,0x14,0x0, 0x28,0x12,0x48,0x35,0xbf,0x12,0x8, 0xa, 0xe5, +0x3d,0xbe,0xb0,0x0, 0x28,0x3, 0x75,0x2f,0x2, 0x7e,0xb3,0xd, 0xfd,0xb4,0x1, 0x3, +0x75,0x2f,0x2, 0xe5,0x2f,0xbe,0xb0,0x0, 0x28,0x63,0xe5,0x2f,0xa, 0x3b,0x2e,0x34, +0x15,0x53,0x7e,0x39,0xb0,0x4, 0x7a,0x39,0xb0,0xe5,0x2d,0xa, 0x3b,0x9, 0xb3,0x13, +0xb6,0x70,0xc, 0xa, 0x2e,0x9, 0x52,0x13,0xb6,0x19,0x53,0x13,0xb6,0x80,0x3e,0x75, +0x2e,0x0, 0x80,0x32,0x9, 0x33,0x13,0xb6,0xa, 0x2e,0x9, 0xa2,0x13,0xb6,0xbc,0xa3, +0x28,0x12,0xe5,0x2e,0xa, 0x2b,0x9, 0x22,0x13,0xb6,0xbc,0x2a,0x78,0x16,0x19,0x32, +0x13,0xb6,0x80,0x10,0xe5,0x2e,0xa, 0x2b,0x9, 0xb2,0x13,0xb6,0xbc,0xb3,0x78,0x4, +0x19,0xa2,0x13,0xb6,0x5, 0x2e,0xe5,0x2c,0xbe,0xb1,0x2e,0x38,0xc7,0x5, 0x2d,0xe5, +0x2c,0xbe,0xb1,0x2d,0x28,0x3, 0x2, 0xe, 0x3b,0xb, 0xe0,0xe5,0x2c,0xbc,0xbe,0x28, +0x3, 0x2, 0xe, 0x1, 0x7e,0x34,0x13,0xb6,0x12,0x39,0xc4,0xf5,0x10,0xda,0x3b,0x22, +0xca,0x3b,0x7c,0xf6,0x7c,0xe7,0x7c,0xdb,0x6c,0x33,0x6c,0x44,0x6c,0x22,0x6c,0x55, +0x7e,0x37,0xf, 0x61,0x7a,0x35,0x3e,0x6c,0xaa,0x7e,0x70,0x7, 0xac,0x7f,0x19,0xa3, +0xd, 0x70,0xe4,0x19,0xb3,0xd, 0x71,0xa, 0x5d,0x3e,0x54,0xb, 0x54,0x7c,0xab,0x7e, +0x70,0x2, 0xac,0x7e,0x9, 0xb3,0xd, 0x18,0xf5,0x39,0x9, 0xb3,0xd, 0x19,0xf5,0x3a, +0xbe,0xd1,0x3a,0x28,0x3, 0x2, 0x12,0xe, 0x7e,0xb3,0x10,0x2c,0xa, 0xb, 0x1b,0x4, +0xa, 0x3d,0x9d,0x3, 0xe5,0x3a,0xa, 0x3b,0xbd,0x30,0x8, 0x3, 0x2, 0x12,0xe, 0x7c, +0x3a,0xa, 0x4d,0xe5,0x3a,0xa, 0xb, 0x9d,0x4, 0x7c,0x51,0x2, 0x12,0x59,0xbe,0xd1, +0x3a,0x38,0x3, 0x2, 0x12,0x27,0xe5,0x3a,0xa, 0xb, 0xa, 0x3d,0x2d,0x30,0xb, 0x34, +0x7c,0x37,0x6c,0x55,0x2, 0x12,0x59,0xa, 0xfd,0xe5,0x3a,0xa, 0x4b,0x2d,0xf4,0x7e, +0xb3,0x10,0x2c,0xa, 0xb, 0x7d,0x30,0x1b,0x34,0xbd,0xf3,0x18,0x3, 0x2, 0x12,0x59, +0xbd,0x43,0x8, 0x3, 0x2, 0x12,0x59,0xa, 0x3d,0x2d,0x30,0xe5,0x3a,0xa, 0xb, 0x9d, +0x30,0x7c,0x37,0xa, 0x3d,0x9d,0x3, 0x7c,0x51,0xbe,0xd1,0x39,0x28,0x3, 0x2, 0x12, +0x83,0x7e,0xb3,0x10,0x2b,0xa, 0xb, 0x1b,0x4, 0xa, 0x3d,0x9d,0x3, 0xe5,0x39,0xa, +0x3b,0xbd,0x30,0x8, 0x3, 0x2, 0x12,0x83,0x7c,0x4a,0xa, 0xd, 0xe5,0x39,0xa, 0x3b, +0x2, 0x12,0xca,0xbe,0xd1,0x39,0x38,0x3, 0x2, 0x12,0x9c,0xe5,0x39,0xa, 0xb, 0xa, +0x3d,0x2d,0x30,0xb, 0x34,0x7c,0x47,0x6c,0x22,0x2, 0x12,0xce,0xa, 0x4d,0xe5,0x39, +0xa, 0x5b,0x2d,0x45,0x7e,0x73,0x10,0x2b,0xa, 0x37,0x7d,0x3, 0x1b,0x4, 0xbd,0x40, +0x18,0x3, 0x2, 0x12,0xce,0xbd,0x50,0x8, 0x3, 0x2, 0x12,0xce,0xa, 0xd, 0x2d,0x3, +0xe5,0x39,0xa, 0x3b,0x9d,0x3, 0x7c,0x41,0xa, 0xd, 0x9d,0x30,0x7c,0x27,0x7e,0x37, +0xf, 0xda,0x7c,0xb2,0x7e,0x23,0xf, 0x53,0x7e,0x4, 0x9, 0xc8,0x12,0x5c,0x33,0x7e, +0x37,0x9, 0xc8,0x7d,0x3, 0x6d,0x11,0x7e,0x37,0x9, 0xca,0x7d,0x20,0x7a,0x1d,0x28, +0x7e,0x37,0x9, 0xcc,0x7d,0x3, 0x7e,0x37,0x9, 0xce,0x7d,0x20,0x7a,0x1d,0x2c,0x7e, +0x37,0x9, 0xd0,0x7d,0x3, 0x7e,0x37,0x9, 0xd2,0x7d,0x20,0x7a,0x1d,0x30,0x7e,0x37, +0x9, 0xd4,0x7d,0x3, 0x7e,0x37,0x9, 0xd6,0x7d,0x20,0x7a,0x1d,0x34,0xa, 0x2d,0xe5, +0x39,0xa, 0x3b,0x9d,0x32,0x7c,0xc7,0x2, 0x15,0x24,0xa, 0x4d,0xe5,0x3a,0xa, 0x5b, +0x9d,0x54,0xf5,0x38,0x2, 0x15,0xd, 0xbe,0xc0,0x0, 0x58,0x3, 0x2, 0x15,0xb, 0x7e, +0x73,0x10,0x2b,0xbc,0x7c,0x18,0x3, 0x2, 0x15,0xb, 0xe5,0x38,0xbe,0xb0,0x0, 0x58, +0x3, 0x2, 0x15,0xb, 0x7e,0x73,0x10,0x2c,0xbe,0x71,0x38,0x18,0x3, 0x2, 0x15,0xb, +0xe5,0x38,0x1a,0x1b,0x3e,0x14,0x1a,0x2c,0x7e,0x34,0x0, 0x30,0xad,0x32,0x2d,0x31, +0x2e,0x37,0xf, 0xda,0xb, 0x38,0x30,0x7e,0x53,0xf, 0x53,0xa, 0x25,0x9d,0x32,0x7a, +0x35,0x3c,0xbe,0x34,0x0, 0x0, 0x18,0x3, 0x2, 0x15,0xb, 0x7e,0x35,0x3e,0xbe,0x35, +0x3c,0x28,0x3, 0x2, 0x13,0xa6,0x7e,0x70,0x7, 0xac,0x7f,0x2e,0x34,0xd, 0x71,0x7e, +0x39,0xb0,0x4, 0x7a,0x39,0xb0,0xe5,0x39,0xa, 0x2b,0x1a,0x3c,0x9d,0x32,0x12,0x6d, +0xd0,0xbe,0x34,0x0, 0x1, 0x8, 0x3, 0x2, 0x13,0xd0,0xe5,0x3a,0xa, 0x2b,0xe5,0x38, +0x1a,0x3b,0x9d,0x32,0x12,0x6d,0xd0,0xbe,0x34,0x0, 0x1, 0x18,0x3, 0x2, 0x15,0xb, +0x75,0x3b,0x0, 0x2, 0x14,0x60,0xbe,0xe1,0x3b,0x78,0x3, 0x2, 0x14,0x5e,0xe5,0x3b, +0x1a,0x3b,0x3e,0x34,0x9, 0x73,0xd, 0x18,0xa, 0x27,0x1a,0x3c,0x9d,0x32,0x12,0x6d, +0xd0,0xbe,0x34,0x0, 0x1, 0x8, 0x3, 0x2, 0x14,0x1e,0xe5,0x3b,0x1a,0x3b,0x3e,0x34, +0x9, 0x73,0xd, 0x19,0xa, 0x27,0xe5,0x38,0x1a,0x3b,0x9d,0x32,0x12,0x6d,0xd0,0xbe, +0x34,0x0, 0x1, 0x8, 0x3, 0x2, 0x14,0x1e,0x75,0x3b,0xff,0x2, 0x14,0x6c,0xe5,0x3b, +0x1a,0x3b,0x3e,0x34,0x9, 0x73,0xd, 0x18,0xa, 0x27,0x1a,0x3c,0x9d,0x32,0x12,0x6d, +0xd0,0xbe,0x34,0x0, 0x2, 0x8, 0x3, 0x2, 0x14,0x5e,0xe5,0x3b,0x1a,0x3b,0x3e,0x34, +0x9, 0x73,0xd, 0x19,0xa, 0x27,0xe5,0x38,0x1a,0x3b,0x9d,0x32,0x12,0x6d,0xd0,0xbe, +0x34,0x0, 0x2, 0x8, 0x3, 0x2, 0x14,0x5e,0x75,0x3b,0x0, 0x2, 0x14,0x6c,0x5, 0x3b, +0x7e,0x73,0xd, 0xf7,0xbe,0x71,0x3b,0x8, 0x3, 0x2, 0x13,0xd6,0xe5,0x3b,0x60,0x3, +0x2, 0x14,0xc0,0x7e,0x35,0x3c,0x7d,0x23,0xe, 0x24,0x9d,0x32,0x7a,0x35,0x3c,0x7e, +0xf5,0x3c,0x7d,0x3f,0x1a,0x36,0x1a,0xe6,0x1a,0x1c,0x1a,0x2, 0x7f,0x17,0x12,0x48, +0x24,0x7f,0x1, 0x7e,0x1d,0x2c,0x9f,0x10,0x7a,0x1d,0x2c,0xe5,0x38,0x1a,0x1b,0x1a, +0x2, 0x7f,0x17,0x12,0x48,0x24,0x7f,0x1, 0x7e,0x1d,0x34,0x9f,0x10,0x7a,0x1d,0x34, +0x7e,0x1d,0x28,0x9f,0x17,0x7a,0x1d,0x28,0x7e,0x1d,0x30,0x9f,0x17,0x7a,0x1d,0x30, +0xe5,0x3b,0xb4,0xff,0x2, 0x80,0x3, 0x2, 0x15,0xb, 0x7e,0xf5,0x3c,0x7d,0x3f,0x1a, +0x36,0x1a,0xe6,0x1a,0x1c,0x1a,0x2, 0x7f,0x17,0x12,0x48,0x24,0x7f,0x1, 0x7e,0x1d, +0x2c,0x9f,0x10,0x7a,0x1d,0x2c,0xe5,0x38,0x1a,0x1b,0x1a,0x2, 0x7f,0x17,0x12,0x48, +0x24,0x7f,0x1, 0x7e,0x1d,0x34,0x9f,0x10,0x7a,0x1d,0x34,0x7e,0x1d,0x28,0x9f,0x17, +0x7a,0x1d,0x28,0x7e,0x1d,0x30,0x9f,0x17,0x7a,0x1d,0x30,0x5, 0x38,0xa, 0x2d,0xe5, +0x3a,0xa, 0x3b,0x2d,0x32,0x1a,0x27,0xe5,0x38,0x1a,0x3b,0xbd,0x32,0x18,0x3, 0x2, +0x13,0x37,0xb, 0xc0,0xa, 0x2d,0xe5,0x39,0xa, 0x3b,0x2d,0x32,0x1a,0x27,0x1a,0x3c, +0xbd,0x32,0x18,0x3, 0x2, 0x13,0x2a,0x74,0x6, 0x7e,0x1d,0x2c,0x2f,0x11,0x14,0x78, +0xfb,0x7a,0x1d,0x2c,0x7e,0xd, 0x28,0x7e,0x1d,0x2c,0x12,0x48,0x40,0x2e,0x34,0x0, +0x20,0x7e,0xd0,0x7, 0xac,0xdf,0x59,0x36,0xd, 0x6b,0x74,0x6, 0x7e,0x1d,0x34,0x2f, +0x11,0x14,0x78,0xfb,0x7a,0x1d,0x34,0x7e,0x7d,0x30,0x7e,0x1d,0x34,0x7f,0x7, 0x12, +0x48,0x40,0x2e,0x34,0x0, 0x20,0x59,0x36,0xd, 0x6d,0x7e,0xb3,0xf, 0x60,0x7f,0x17, +0x70,0x3, 0x2, 0x15,0x91,0x1e,0x34,0x1e,0x24,0x50,0x3, 0x4e,0x60,0x80,0x14,0x78, +0xf4,0x7a,0x1d,0x30,0xbe,0x18,0x0, 0x7f,0x38,0x3, 0x2, 0x15,0xa4,0x7e,0x18,0x0, +0x7f,0x7a,0x1d,0x30,0x7e,0x2d,0x30,0x7c,0xab,0x7e,0x70,0x7, 0xac,0x7f,0x19,0xa3, +0xd, 0x70,0x74,0x7, 0xac,0xbe,0x9, 0xa5,0xd, 0x71,0x7e,0x70,0x7, 0xac,0x7f,0x19, +0xa3,0xd, 0x71,0x74,0x7, 0xac,0xbf,0x9, 0x75,0xd, 0x71,0xbe,0x70,0xf, 0x38,0x3, +0x2, 0x15,0xdf,0x7e,0xa0,0xf, 0x7e,0x70,0x7, 0xac,0x7f,0x19,0xa3,0xd, 0x71,0xda, +0x3b,0x22,0xca,0x3b,0x7c,0x6b,0xbe,0x60,0x3, 0x40,0x6, 0x74,0x1, 0x7a,0xb3,0x11, +0x96,0xa5,0xbe,0x1, 0x58,0x7e,0xa3,0x10,0x2b,0xbc,0xa7,0x28,0xd, 0x7a,0x71,0xd, +0x74,0x30,0xac,0x7b,0x2e,0x37,0x16,0x9e,0x80,0x3c,0x7a,0x71,0xd, 0xbc,0xa7,0x78, +0x6, 0x7e,0x34,0x8, 0x9a,0x80,0x2f,0xa, 0x2a,0x7d,0x2, 0xb, 0x4, 0xa, 0x17,0xbd, +0x10,0x78,0x6, 0x7e,0x34,0x8, 0xca,0x80,0x1d,0x7d,0x2, 0xb, 0x5, 0xbd,0x10,0x78, +0x6, 0x7e,0x34,0x9, 0x2e,0x80,0xf, 0x2e,0x24,0x0, 0x3, 0xbd,0x12,0x68,0x3, 0x2, +0x19,0x6a,0x7e,0x34,0x9, 0x5e,0x7a,0x37,0x16,0x4f,0x2, 0x19,0x6a,0xa5,0xbe,0x0, +0x46,0x7e,0x64,0x0, 0xb, 0x7a,0x69,0x70,0x7c,0xb7,0x54,0x70,0xc4,0x54,0xf, 0x7c, +0x7b,0x4c,0x77,0x68,0x4, 0xa5,0xbf,0x1, 0x15,0x7e,0xb3,0x10,0xa5,0xb4,0x3, 0x7, +0x74,0x1, 0x7e,0x70,0x1, 0x80,0x36,0x74,0x27,0x7e,0x70,0x1, 0x80,0x13,0x7e,0xb3, +0x10,0xa5,0xb4,0x3, 0x7, 0x74,0x1, 0x7e,0x70,0x3, 0x80,0x21,0x74,0x27,0x7e,0x70, +0x3, 0x12,0x6d,0x9f,0x2, 0x19,0x6a,0xa5,0xbe,0x2, 0x23,0xa5,0xbf,0x4, 0x7, 0x74, +0x1, 0x7e,0x70,0x4, 0x80,0x7, 0xa5,0xbf,0x5, 0x9, 0xe4,0x6c,0x77,0x12,0x0, 0x5e, +0x2, 0x19,0x6a,0xbe,0x70,0x1, 0x50,0x3, 0x2, 0x19,0x6a,0x2, 0x19,0x6a,0xa5,0xbe, +0x3, 0x15,0xbe,0x70,0xd, 0x28,0x9, 0x74,0xd, 0x7a,0xb3,0x10,0x2b,0x2, 0x19,0x6a, +0x7a,0x73,0x10,0x2b,0x2, 0x19,0x6a,0xa5,0xbe,0x4, 0x15,0xbe,0x70,0x18,0x28,0x9, +0x74,0x18,0x7a,0xb3,0x10,0x2c,0x2, 0x19,0x6a,0x7a,0x73,0x10,0x2c,0x2, 0x19,0x6a, +0xa5,0xbe,0x5, 0x7, 0x7a,0x73,0x10,0x2d,0x2, 0x19,0x6a,0xa5,0xbe,0x7, 0x1e,0x7a, +0x73,0x10,0x4b,0x7c,0xb7,0x54,0x3f,0xa, 0x2b,0x3e,0x24,0x3e,0x24,0x7e,0x37,0x10, +0x54,0x5e,0x70,0x3, 0x4d,0x32,0x7a,0x37,0x10,0x54,0x2, 0x19,0x6a,0xa5,0xbe,0x8, +0x14,0x7e,0xb3,0x10,0x3b,0x70,0x7, 0x7a,0x73,0xa, 0xac,0x2, 0x19,0x6a,0x7a,0x73, +0x11,0x16,0x2, 0x19,0x6a,0xa5,0xbe,0x9, 0x1c,0xbe,0x70,0xa, 0x50,0x3, 0x7e,0x70, +0xa, 0x7e,0xb3,0x10,0x3b,0x70,0x7, 0x7a,0x73,0xa, 0xad,0x2, 0x19,0x6a,0x7a,0x73, +0x11,0x49,0x2, 0x19,0x6a,0xa5,0xbe,0xa, 0x10,0xa5,0xbf,0x0, 0x3, 0xe4,0x80,0x2, +0x74,0x1, 0x7a,0xb3,0x10,0x3b,0x2, 0x19,0x6a,0xa5,0xbe,0xb, 0x14,0x7e,0xb3,0x10, +0x3b,0x70,0x7, 0x7a,0x73,0xa, 0xae,0x2, 0x19,0x6a,0x7a,0x73,0x11,0x94,0x2, 0x19, +0x6a,0xa5,0xbe,0xc, 0x14,0x7e,0xb3,0x10,0x3b,0x70,0x7, 0x7a,0x73,0xd, 0xfe,0x2, +0x19,0x6a,0x7a,0x73,0x11,0x9d,0x2, 0x19,0x6a,0xa5,0xbe,0x4c,0x7, 0x7a,0x73,0xf, +0x46,0x2, 0x19,0x6a,0xa5,0xbe,0xfb,0x29,0x7a,0x71,0x8, 0x7e,0x37,0x10,0x50,0x5e, +0x70,0xdf,0x7a,0x37,0x10,0x50,0xe5,0x8, 0x54,0x1, 0xa, 0x3b,0x3e,0x34,0x3e,0x34, +0x3e,0x34,0x3e,0x34,0x3e,0x34,0x4e,0x37,0x10,0x50,0x7a,0x37,0x10,0x50,0x2, 0x19, +0x6a,0xa5,0xbe,0x4e,0x7, 0x7a,0x73,0x10,0x4a,0x2, 0x19,0x6a,0xa5,0xbe,0x4f,0x6, +0x12,0x0, 0x6, 0x2, 0x19,0x6a,0xbe,0x60,0x50,0x40,0x12,0xbe,0x60,0x51,0x38,0xd, +0xa, 0x26,0x2e,0x27,0x10,0x2f,0x9e,0x24,0x0, 0x50,0x2, 0x19,0x54,0xbe,0x60,0x52, +0x40,0x12,0xbe,0x60,0x55,0x38,0xd, 0xa, 0x26,0x2e,0x27,0x10,0x31,0x9e,0x24,0x0, +0x52,0x2, 0x19,0x54,0xbe,0x60,0x56,0x40,0x12,0xbe,0x60,0x62,0x38,0xd, 0xa, 0x26, +0x2e,0x27,0x10,0x33,0x9e,0x24,0x0, 0x56,0x2, 0x19,0x54,0xbe,0x60,0x63,0x40,0x12, +0xbe,0x60,0x7a,0x38,0xd, 0xa, 0x26,0x2e,0x27,0x10,0x35,0x9e,0x24,0x0, 0x63,0x2, +0x19,0x54,0xbe,0x60,0x7b,0x50,0x3, 0x2, 0x18,0xe8,0xbe,0x60,0x9f,0x28,0x3, 0x2, +0x18,0xe8,0x7e,0xb3,0x10,0x3b,0x70,0x48,0xa, 0x26,0x9e,0x24,0x0, 0x7b,0xbe,0x24, +0x0, 0x18,0x58,0x20,0xa, 0x26,0x2e,0x27,0x10,0x35,0x9e,0x24,0x0, 0x7b,0x7e,0x29, +0xf0,0x7c,0xbf,0x30,0xe0,0xa, 0xa, 0x7f,0x2e,0x74,0x0, 0x18,0xe, 0x74,0x80,0x17, +0x1e,0xf0,0x80,0x13,0xa, 0x26,0x2e,0x27,0x10,0x33,0x9e,0x24,0x0, 0x93,0x7e,0x29, +0x60,0xa, 0x76,0x2e,0x74,0x0, 0x18,0xa, 0x2f,0x19,0x72,0xf, 0xdc,0x2, 0x19,0x6a, +0xa, 0x26,0x9e,0x24,0x0, 0x7b,0xbe,0x24,0x0, 0x18,0x58,0x20,0xa, 0x26,0x2e,0x27, +0x10,0x35,0x9e,0x24,0x0, 0x7b,0x7e,0x29,0xf0,0x7c,0xbf,0x30,0xe0,0xa, 0xa, 0x7f, +0x2e,0x74,0x0, 0x18,0xe, 0x74,0x80,0x17,0x1e,0xf0,0x80,0x13,0xa, 0x26,0x2e,0x27, +0x10,0x33,0x9e,0x24,0x0, 0x93,0x7e,0x29,0x60,0xa, 0x76,0x2e,0x74,0x0, 0x18,0xa, +0x2f,0x19,0x72,0xf, 0x63,0x2, 0x19,0x6a,0xbe,0x60,0xa0,0x40,0x11,0xbe,0x60,0xac, +0x38,0xc, 0xa, 0x26,0x2e,0x27,0x10,0x6c,0x9e,0x24,0x0, 0xa0,0x80,0x56,0xbe,0x60, +0xad,0x40,0x11,0xbe,0x60,0xb9,0x38,0xc, 0xa, 0x26,0x2e,0x27,0x10,0x6e,0x9e,0x24, +0x0, 0xad,0x80,0x40,0xbe,0x60,0xba,0x40,0x11,0xbe,0x60,0xd1,0x38,0xc, 0xa, 0x26, +0x2e,0x27,0x10,0x70,0x9e,0x24,0x0, 0xba,0x80,0x2a,0xbe,0x60,0xd2,0x40,0x11,0xbe, +0x60,0xd5,0x38,0xc, 0xa, 0x26,0x2e,0x27,0x10,0x72,0x9e,0x24,0x0, 0xd2,0x80,0x14, +0xbe,0x60,0xd6,0x40,0x14,0xbe,0x60,0xed,0x38,0xf, 0xa, 0x26,0x2e,0x27,0x10,0x74, +0x9e,0x24,0x0, 0xd6,0x7a,0x29,0x70,0x80,0x11,0xa5,0xbe,0xf8,0x6, 0x7a,0x73,0x11, +0xe8,0x80,0x7, 0xa5,0xbe,0xfe,0x3, 0x7a,0x71,0xc, 0xda,0x3b,0x22,0xca,0x3b,0xe4, +0x7a,0xb3,0x13,0xde,0x7e,0x34,0xe, 0xdf,0x7a,0x35,0x23,0x6c,0xee,0x7e,0xa0,0xff, +0x7e,0x70,0x7, 0xac,0x7e,0x19,0xa3,0xe, 0x11,0x74,0xff,0xa, 0x3e,0x19,0xb3,0x13, +0xca,0x7e,0x34,0xff,0xff,0x74,0x2, 0xac,0xbe,0x59,0x35,0x13,0xb6,0xe4,0xa, 0x3e, +0x19,0xb3,0x13,0xd4,0xb, 0xe0,0xbe,0xe0,0xa, 0x78,0xd2,0x7e,0xb3,0xf, 0x1b,0x60, +0x3, 0x2, 0x19,0xe5,0x7e,0xb3,0xf, 0x1c,0x70,0x3, 0x2, 0x1b,0xfc,0x6c,0xee,0x7e, +0x34,0xff,0xff,0x7e,0x50,0x2, 0xac,0x5e,0x2e,0x25,0x23,0x59,0x32,0x0, 0x14,0x7e, +0x50,0x2, 0xac,0x5e,0x2e,0x25,0x23,0x59,0x32,0x0, 0x28,0xb, 0xe0,0xbe,0xe0,0xa, +0x78,0xdd,0x2, 0x1b,0xfc,0x7e,0xb3,0xf, 0x1c,0x60,0x3, 0x2, 0x1a,0x38,0x6c,0xee, +0x2, 0x1a,0x2d,0x74,0x7, 0xac,0xbe,0x49,0x35,0xe, 0xd, 0x7e,0x50,0x2, 0xac,0x5e, +0x2e,0x25,0x23,0x59,0x32,0x0, 0x14,0x74,0x7, 0xac,0xbe,0x49,0x35,0xe, 0xf, 0x7e, +0x50,0x2, 0xac,0x5e,0x2e,0x25,0x23,0x59,0x32,0x0, 0x28,0x74,0x7, 0xac,0xbe,0x19, +0xe5,0xe, 0x11,0x74,0x1, 0xa, 0x3e,0x19,0xb3,0x13,0xd4,0xb, 0xe0,0x7e,0x73,0xf, +0x1b,0xbc,0x7e,0x38,0xbe,0x2, 0x1b,0xfc,0x6c,0xee,0x2, 0x1a,0x9e,0x6c,0xff,0x7e, +0x70,0x2, 0xac,0x7f,0x2e,0x35,0x23,0x49,0x23,0x0, 0x28,0x74,0x7, 0xac,0xbe,0x49, +0x35,0xe, 0xf, 0x9d,0x32,0x12,0x6d,0xd0,0x7d,0x63,0x7e,0x70,0x2, 0xac,0x7f,0x2e, +0x35,0x23,0x49,0x23,0x0, 0x14,0x74,0x7, 0xac,0xbe,0x49,0x35,0xe, 0xd, 0x9d,0x32, +0x12,0x6d,0xd0,0x2d,0x36,0x7a,0x35,0x21,0x74,0x2, 0xac,0xbe,0x49,0x45,0x13,0xb6, +0xbe,0x45,0x21,0x38,0x3, 0x2, 0x1a,0x95,0xa, 0x4e,0x19,0xf4,0x13,0xca,0x7e,0x35, +0x21,0x59,0x35,0x13,0xb6,0xb, 0xf0,0xbe,0xf0,0xa, 0x78,0xa3,0xb, 0xe0,0x7e,0x73, +0xf, 0x1b,0xbc,0x7e,0x38,0x97,0x6c,0xee,0x2, 0x1b,0x52,0x74,0x1, 0x7a,0xb3,0x13, +0xde,0x6c,0xff,0x2, 0x1a,0xf1,0xbc,0xfe,0x78,0x3, 0x2, 0x1a,0xef,0xa, 0x3f,0x9, +0x63,0x13,0xca,0xa, 0x2e,0x9, 0x72,0x13,0xca,0xbc,0x76,0x68,0x3, 0x2, 0x1a,0xef, +0x74,0x2, 0xac,0xbf,0x49,0x25,0x13,0xb6,0x74,0x2, 0xac,0xbe,0x49,0x35,0x13,0xb6, +0xbd,0x32,0x50,0x3, 0x2, 0x1a,0xef,0xe4,0x7a,0xb3,0x13,0xde,0x2, 0x1a,0xf9,0xb, +0xf0,0x7e,0x73,0xf, 0x1b,0xbc,0x7f,0x38,0xbd,0x7e,0xb3,0x13,0xde,0xb4,0x1, 0x2, +0x80,0x3, 0x2, 0x1b,0x50,0x74,0x1, 0xa, 0x3e,0x9, 0xa3,0x13,0xca,0xa, 0x4a,0x19, +0xb4,0x13,0xd4,0x7e,0x70,0x7, 0xac,0x7e,0x19,0xa3,0xe, 0x11,0x74,0x7, 0xac,0xbe, +0x49,0x35,0xe, 0xd, 0xa, 0x2e,0x9, 0x42,0x13,0xca,0x7e,0x50,0x2, 0xac,0x45,0x2e, +0x25,0x23,0x59,0x32,0x0, 0x14,0x74,0x7, 0xac,0xbe,0x49,0x35,0xe, 0xf, 0xa, 0x2e, +0x9, 0x42,0x13,0xca,0x7e,0x50,0x2, 0xac,0x45,0x2e,0x25,0x23,0x59,0x32,0x0, 0x28, +0xb, 0xe0,0x7e,0x73,0xf, 0x1b,0xbc,0x7e,0x28,0x3, 0x2, 0x1a,0xab,0x6c,0xee,0x2, +0x1b,0xc1,0x74,0x7, 0xac,0xbe,0x9, 0xb5,0xe, 0x11,0xb4,0xff,0x2, 0x80,0x3, 0x2, +0x1b,0xbf,0x6c,0xff,0xa, 0x3f,0x9, 0xb3,0x13,0xd4,0x60,0x3, 0x2, 0x1b,0xb8,0x74, +0x1, 0x19,0xb3,0x13,0xd4,0x74,0x7, 0xac,0xbe,0x49,0x35,0xe, 0xd, 0x7e,0x50,0x2, +0xac,0x5f,0x2e,0x25,0x23,0x59,0x32,0x0, 0x14,0x74,0x7, 0xac,0xbe,0x49,0x35,0xe, +0xf, 0x7e,0x50,0x2, 0xac,0x5f,0x2e,0x25,0x23,0x59,0x32,0x0, 0x28,0x74,0x7, 0xac, +0xbe,0x19,0xf5,0xe, 0x11,0x2, 0x1b,0xbf,0xb, 0xf0,0xbe,0xf0,0xa, 0x40,0xb5,0xb, +0xe0,0x7e,0x73,0xf, 0x1b,0xbc,0x7e,0x38,0x99,0x6c,0xee,0xa, 0x3e,0x9, 0xb3,0x13, +0xd4,0xbe,0xb0,0x1, 0x78,0x3, 0x2, 0x1b,0xf5,0x7e,0x34,0xff,0xff,0x7e,0x50,0x2, +0xac,0x5e,0x2e,0x25,0x23,0x59,0x32,0x0, 0x14,0x7e,0x50,0x2, 0xac,0x5e,0x2e,0x25, +0x23,0x59,0x32,0x0, 0x28,0xb, 0xe0,0xbe,0xe0,0xa, 0x78,0xcf,0x7e,0xf3,0xf, 0x1b, +0x6c,0xee,0xa, 0x3e,0x9, 0xb3,0x13,0xd4,0xb4,0x1, 0x2, 0x80,0x3, 0x2, 0x1c,0x4e, +0xa, 0x3e,0x2e,0x35,0x23,0x9, 0xb3,0x0, 0xa, 0xb4,0x1, 0x2, 0x80,0x3, 0x2, 0x1c, +0x27,0x74,0x3, 0x19,0xb3,0x0, 0xa, 0xa, 0x3e,0x2e,0x35,0x23,0x9, 0xa3,0x0, 0xa, +0xbe,0xa0,0x3, 0x68,0x3, 0x2, 0x1c,0x3f,0xe4,0x7a,0x39,0xb0,0x2, 0x1c,0x7c,0x4c, +0xaa,0x68,0x3, 0x2, 0x1c,0x7c,0x74,0x2, 0x7a,0x39,0xb0,0x2, 0x1c,0x7c,0xa, 0x3e, +0x2e,0x35,0x23,0x9, 0xb3,0x0, 0xa, 0xbe,0xb0,0x2, 0x78,0x3, 0x2, 0x1c,0x64,0x60, +0x3, 0x2, 0x1c,0x77,0x74,0x1, 0x7a,0x39,0xb0,0x7c,0xaf,0xb, 0xf0,0x74,0x7, 0xa4, +0x19,0xe5,0xe, 0x11,0x2, 0x1c,0x7c,0x74,0x3, 0x7a,0x39,0xb0,0xa, 0x2e,0x2e,0x25, +0x23,0x7e,0x29,0x70,0x19,0x72,0x0, 0xa, 0xb, 0xe0,0xbe,0xe0,0xa, 0x50,0x3, 0x2, +0x1c,0x2, 0xda,0x3b,0x22,0xca,0x3b,0x75,0x24,0x0, 0x75,0x26,0x0, 0x75,0x27,0x0, +0x75,0x28,0x0, 0x7e,0x34,0xe, 0xdf,0x7a,0x35,0x2a,0x7e,0xa3,0xf, 0x24,0x4c,0xaa, +0x78,0xf, 0x7e,0xb3,0xf, 0x20,0x70,0x9, 0x7e,0xb3,0xf, 0x21,0x70,0x3, 0x2, 0x1f, +0x54,0x4c,0xaa,0x78,0x11,0x7e,0xb3,0xf, 0x20,0x60,0x16,0x80,0x9, 0x7e,0x73,0x0, +0xff,0xbe,0x70,0xf, 0x38,0x6, 0x7e,0xb3,0x0, 0x8b,0x60,0xf1,0xe4,0x7a,0xb3,0x0, +0x8b,0x20,0x0, 0x6, 0x7e,0x74,0x15,0xca,0x80,0x4, 0x7e,0x74,0x16,0xc, 0x7d,0x37, +0x7e,0x24,0x0, 0x42,0x74,0xff,0x12,0x6d,0xe0,0x74,0xaa,0x7a,0x79,0xb0,0x19,0xb7, +0x0, 0x1, 0x7e,0x73,0xf, 0x1d,0x19,0x77,0x0, 0x3, 0x75,0x25,0x0, 0x6c,0xdd,0x2, +0x1e,0xe1,0x7e,0x70,0x7, 0xac,0x7d,0x9, 0xa3,0xe, 0x9d,0x7a,0xa1,0x29,0x7c,0xba, +0x54,0xf, 0xa, 0x2b,0x2e,0x25,0x2a,0x7e,0x29,0xc0,0x7c,0xba,0x54,0xf0,0xbe,0xb0, +0x0, 0x28,0x13,0xb4,0xb0,0x2, 0x80,0x3, 0x2, 0x1e,0xdf,0x53,0x29,0xf, 0xbe,0xc0, +0x1, 0x68,0x3, 0x2, 0x1e,0xdf,0xbe,0xc0,0x3, 0x78,0x3, 0x2, 0x1e,0xdf,0x7e,0xa1, +0x25,0x74,0x6, 0xa4,0xf5,0x21,0x9, 0xb3,0xe, 0x9e,0xf5,0x27,0x74,0x7, 0xac,0xbd, +0x9, 0xb5,0xe, 0x9f,0xc4,0x54,0xf0,0xf5,0x28,0x7e,0x73,0xf, 0x46,0xbe,0x71,0x29, +0x28,0x68,0x7e,0xb3,0xf, 0x22,0x70,0x2a,0x7e,0x8, 0x0, 0x27,0xe5,0x29,0xa, 0x3b, +0x2e,0x34,0x0, 0x77,0x74,0x1, 0x7e,0x50,0xf, 0x12,0x5f,0x76,0x7e,0x8, 0x0, 0x28, +0xe5,0x29,0xa, 0x3b,0x2e,0x34,0x0, 0x81,0x74,0x10,0x7e,0x50,0x20,0x12,0x5f,0x76, +0x80,0x14,0xe5,0x29,0xa, 0x3b,0x9, 0xb3,0x0, 0x77,0xf5,0x27,0xe5,0x29,0xa, 0x3b, +0x9, 0xb3,0x0, 0x81,0xf5,0x28,0xe5,0x29,0xa, 0x3b,0x7d,0x23,0x2e,0x25,0x2a,0x7e, +0x29,0xb0,0xb4,0x1, 0x15,0xe4,0x19,0xb3,0x0, 0x77,0x6c,0xaa,0xe5,0x29,0xa, 0x3b, +0x19,0xa3,0x0, 0x81,0x75,0x27,0x0, 0x75,0x28,0x0, 0x7e,0xb3,0xf, 0x5f,0xb4,0xff, +0x15,0x74,0x7, 0xac,0xbd,0x9, 0xb5,0xe, 0x9d,0xbe,0xb0,0xff,0x68,0x5, 0x75,0x27, +0x1, 0x80,0x3, 0x75,0x27,0x0, 0x7e,0x90,0x7, 0xac,0x9d,0x49,0x54,0xe, 0x99,0x7a, +0x55,0x2c,0x49,0x54,0xe, 0x9b,0x7a,0x55,0x2e,0xbe,0xc0,0x1, 0x78,0x2e,0x75,0x30, +0x0, 0x7e,0x71,0x30,0x74,0x7, 0xac,0x7b,0x9, 0xb3,0x0, 0x90,0x54,0xf, 0xbe,0xb1, +0x29,0x78,0x10,0x49,0x23,0x0, 0x8c,0x7a,0x25,0x2c,0x49,0x53,0x0, 0x8e,0x7a,0x55, +0x2e,0x80,0x9, 0x5, 0x30,0xe5,0x30,0xbe,0xb0,0xa, 0x40,0xd5,0x7e,0x25,0x2c,0x7a, +0x25,0x22,0xa, 0x54,0x5e,0x54,0x0, 0xf, 0x7c,0xab,0xe5,0x21,0xa, 0x3b,0x7d,0x13, +0x2d,0x17,0x19,0xa1,0x0, 0x5, 0x7d,0x53,0x2d,0x57,0x19,0x55,0x0, 0x6, 0x7e,0x25, +0x2e,0x7a,0x25,0x22,0xa, 0x14,0x5e,0x14,0x0, 0xf, 0x7d,0x53,0x2d,0x57,0x19,0x35, +0x0, 0x7, 0x7d,0x53,0x2d,0x57,0x19,0x55,0x0, 0x8, 0xe5,0x27,0x7d,0x23,0x2d,0x27, +0x19,0xb2,0x0, 0x9, 0xe5,0x28,0x7d,0x23,0x2d,0x27,0x19,0xb2,0x0, 0xa, 0x9, 0xa4, +0xe, 0x9d,0x7c,0xba,0xc4,0x54,0xf0,0x7c,0x3b,0x7d,0x23,0x2d,0x27,0x2e,0x24,0x0, +0x7, 0x7e,0x29,0xb0,0x2c,0xb3,0x7a,0x29,0xb0,0xbe,0xa0,0xff,0x68,0x21,0xbe,0xc0, +0x1, 0x68,0x2, 0x5, 0x24,0x5, 0x26,0x7c,0xbc,0x3, 0x3, 0x54,0xc0,0x7d,0x13,0x2d, +0x17,0x2e,0x14,0x0, 0x5, 0x7e,0x19,0x50,0x2c,0x5b,0x7a,0x19,0x50,0x80,0xe, 0x2d, +0x37,0x2e,0x34,0x0, 0x5, 0x7e,0x39,0xb0,0x24,0xc0,0x7a,0x39,0xb0,0x5, 0x25,0xb, +0xd0,0x7e,0x73,0xf, 0x46,0xbc,0x7d,0x28,0x3, 0x2, 0x1d,0x12,0xe5,0x24,0x19,0xb7, +0x0, 0x4, 0xe5,0x26,0xbe,0xb0,0x0, 0x28,0x2d,0x74,0x42,0x19,0xb7,0x0, 0x2, 0xe4, +0x19,0xb7,0x0, 0x41,0x6c,0xdd,0xa, 0x3d,0x2d,0x37,0x7e,0x39,0x60,0x7d,0x27,0x2e, +0x24,0x0, 0x41,0x7e,0x29,0x70,0x6c,0x76,0x7a,0x29,0x70,0xb, 0xd0,0xbe,0xd0,0x41, +0x78,0xe4,0xb2,0x0, 0x80,0xe, 0x7e,0xb3,0xf, 0x21,0xb4,0x1, 0xc, 0x7e,0xb3,0x10, +0xd1,0xb4,0x24,0x5, 0x74,0x1, 0x12,0x6e,0x92,0x7e,0xb3,0xf, 0x20,0x60,0x6, 0x7e, +0x35,0x2a,0x12,0x68,0xb, 0xe4,0x7a,0xb3,0xf, 0x24,0x7a,0xb3,0xf, 0x20,0x7a,0xb3, +0xf, 0x21,0x80,0x4, 0xe4,0x12,0x6e,0x92,0x7e,0x24,0xe, 0x99,0x7e,0x34,0x0, 0x8c, +0x7e,0x14,0x0, 0x46,0x12,0x6d,0x3c,0xe5,0x26,0x70,0xd, 0x7e,0x34,0x0, 0x8c,0x7e, +0x24,0x0, 0x46,0x74,0xff,0x12,0x6d,0xe0,0xda,0x3b,0x22,0xca,0x79,0x75,0x26,0x17, +0x7e,0xb3,0xd, 0xf7,0xf5,0x21,0x70,0x3, 0x2, 0x22,0x1d,0x7e,0x34,0x13,0xb6,0x7e, +0x24,0x1, 0x2b,0xe4,0x12,0x6d,0xe0,0x7e,0x34,0x14,0xe1,0x7e,0x24,0x0, 0x2, 0xe4, +0x12,0x6d,0xe0,0x6c,0xaa,0x2, 0x20,0x32,0x7e,0x70,0x2, 0xac,0x7a,0x9, 0x33,0xd, +0x18,0x9, 0x23,0xd, 0x19,0x1a,0x3, 0x1b,0x5, 0x80,0x69,0xbe,0x10,0x0, 0x48,0x62, +0xbe,0x10,0xd, 0x58,0x5d,0x7c,0x1, 0xe, 0x0, 0xe, 0x0, 0xe, 0x0, 0x7a,0x1, 0x25, +0x7c,0xb1,0x54,0x7, 0x7e,0x74,0x0, 0x1, 0x60,0x5, 0x3e,0x74,0x14,0x78,0xfb,0x7c, +0xef,0xa, 0x40,0x2e,0x44,0x14,0xe1,0x7e,0x49,0xb0,0x4c,0xbe,0x7a,0x49,0xb0,0x1a, +0x32,0x1b,0x35,0x7c,0xf7,0x80,0x1f,0xbe,0xf0,0x0, 0x48,0x18,0xe5,0x26,0xbc,0xbf, +0x8, 0x12,0x74,0x1, 0x1a,0x21,0x7e,0x34,0x0, 0x17,0xad,0x32,0x1a,0x4f,0x2d,0x43, +0x19,0xb4,0x13,0xb6,0xb, 0xf0,0x1a,0x22,0x2e,0x24,0x0, 0x3, 0x1a,0x3f,0xbd,0x32, +0x48,0xd5,0xb, 0x10,0x1a,0x23,0x2e,0x24,0x0, 0x3, 0x1a,0x31,0xbd,0x32,0x48,0x8b, +0xb, 0xa0,0xe5,0x21,0xbc,0xba,0x28,0x3, 0x2, 0x1f,0xa8,0x6c,0x11,0x7c,0x1, 0xe, +0x0, 0xe, 0x0, 0xe, 0x0, 0x7a,0x1, 0x25,0x7c,0xb1,0x54,0x7, 0x7e,0x44,0x0, 0x1, +0x60,0x5, 0x3e,0x44,0x14,0x78,0xfb,0x7c,0xe9,0xa, 0x30,0x9, 0xb3,0x14,0xe1,0x5c, +0xbe,0x78,0x3, 0x2, 0x20,0xf9,0x6d,0x33,0x7a,0x35,0x22,0x75,0x24,0x0, 0x1a,0x21, +0x7e,0x34,0x0, 0x30,0xad,0x32,0x7d,0x43,0x2e,0x47,0xf, 0xda,0x6c,0x0, 0x80,0x26, +0x1a,0xe1,0x7e,0xf4,0x0, 0x17,0xad,0xfe,0xa, 0x30,0x2d,0x3f,0x9, 0xb3,0x13,0xb6, +0x70,0x12,0x7e,0x70,0x2, 0xac,0x70,0x2d,0x34,0xb, 0x38,0x30,0x2e,0x35,0x22,0x7a, +0x35,0x22,0x5, 0x24,0xb, 0x0, 0xe5,0x26,0xbc,0xb0,0x38,0xd4,0xe5,0x24,0x60,0x49, +0xe5,0x24,0x1a,0x2b,0x7e,0x35,0x22,0x12,0x47,0xf2,0x7a,0x35,0x22,0x6c,0xff,0x80, +0x32,0x1a,0x21,0x7e,0x34,0x0, 0x17,0xad,0x32,0x1a,0xff,0x7d,0xe3,0x2d,0xef,0x9, +0xbe,0x13,0xb6,0xb4,0x1, 0x1b,0x1a,0x21,0x7e,0x34,0x0, 0x18,0xad,0x32,0x7d,0x23, +0x2d,0x2f,0x3e,0x24,0x2e,0x27,0xf, 0xda,0xb, 0x28,0x30,0x9e,0x35,0x22,0x1b,0x28, +0x30,0xb, 0xf0,0xe5,0x26,0xbc,0xbf,0x18,0xc8,0xb, 0x10,0xa5,0xb9,0xd, 0x2, 0x80, +0x3, 0x2, 0x20,0x3d,0x6c,0xaa,0x2, 0x22,0x14,0x7e,0x10,0x2, 0xac,0x1a,0x9, 0x30, +0xd, 0x18,0x9, 0x20,0xd, 0x19,0x7c,0xba,0xc4,0x23,0x54,0x1f,0xf5,0x25,0x7c,0xba, +0x54,0x7, 0x7e,0x44,0x0, 0x1, 0x60,0x5, 0x3e,0x44,0x14,0x78,0xfb,0x7c,0xe9,0xa5, +0xbb,0x0, 0x2c,0x1a,0xe3,0x7e,0xf4,0x0, 0x18,0xad,0xfe,0x1a,0x32,0x2d,0x3f,0x3e, +0x34,0x2e,0x37,0xf, 0xda,0xb, 0x38,0x20,0x49,0x33,0x0, 0x30,0xbd,0x32,0x18,0x3, +0x2, 0x21,0xd9,0x1a,0x33,0xb, 0x34,0x7c,0xb7,0x19,0xb0,0xd, 0x18,0x80,0x7a,0xa5, +0xbb,0xc, 0x2c,0x1a,0x23,0x7e,0x34,0x0, 0x18,0xad,0x32,0x1a,0x22,0x2d,0x23,0x3e, +0x24,0x2e,0x27,0xf, 0xda,0xb, 0x28,0x30,0x49,0x2, 0xff,0xd0,0xbd,0x3, 0x8, 0x59, +0x1a,0x33,0x1b,0x34,0x7e,0x10,0x2, 0xac,0x1a,0x19,0x70,0xd, 0x18,0x80,0x4a,0x1a, +0xe3,0x7e,0xf4,0x0, 0x18,0xad,0xfe,0x1a,0x32,0x2d,0x3f,0x3e,0x34,0x2e,0x37,0xf, +0xda,0x49,0x43,0x0, 0x30,0x49,0x3, 0xff,0xd0,0xbd,0x4, 0x8, 0x16,0xb, 0x38,0x20, +0xbd,0x2, 0x8, 0x25,0x1a,0x23,0x1b,0x24,0x7e,0x10,0x2, 0xac,0x1a,0x19,0x50,0xd, +0x18,0x80,0x16,0xb, 0x38,0x0, 0xbd,0x40,0x8, 0xf, 0x1a,0x33,0xb, 0x34,0x7c,0x37, +0x7e,0x10,0x2, 0xac,0x1a,0x19,0x30,0xd, 0x18,0x7e,0x70,0x2, 0xac,0x7a,0x9, 0x33, +0xd, 0x18,0x1a,0x23,0x7e,0x34,0x0, 0x18,0xad,0x32,0x1a,0x2, 0x2d,0x3, 0x3e,0x4, +0x2e,0x7, 0xf, 0xda,0xb, 0x8, 0x0, 0xbe,0x4, 0x0, 0x3c,0x58,0x15,0x7c,0x7e,0x6e, +0x70,0xff,0xe5,0x25,0xa, 0x4b,0x2e,0x44,0xd, 0x68,0x7e,0x49,0xb0,0x5c,0xb7,0x7a, +0x49,0xb0,0xb, 0xa0,0xe5,0x21,0xbc,0xba,0x28,0x3, 0x2, 0x21,0x9, 0xda,0x79,0x22, +0xca,0xd8,0xca,0x79,0x6c,0xaa,0x7e,0x34,0x11,0x9e,0x7e,0x44,0x11,0x4a,0xe4,0x7a, +0xb3,0x16,0xbc,0x7e,0xb3,0xe, 0xa, 0x54,0xfe,0x7a,0xb3,0xe, 0xa, 0x7e,0xb3,0xd, +0x17,0xbe,0xb0,0x0, 0x28,0x4f,0x7e,0x53,0xd, 0xf8,0xbe,0x50,0x0, 0x28,0x46,0x6c, +0xff,0x80,0x3c,0x7e,0x30,0x2, 0xac,0x3f,0x9, 0xd1,0xd, 0x40,0x9, 0xe1,0xd, 0x41, +0x7e,0x30,0x2, 0xac,0x3e,0x2d,0x13,0xb, 0x18,0x0, 0x6d,0x11,0x9e,0x17,0xf, 0x4c, +0xbd,0x1, 0x58,0x19,0x7e,0x30,0x2, 0xac,0x3d,0x2d,0x13,0x49,0x1, 0x0, 0x30,0x6d, +0x11,0x9e,0x17,0xf, 0x4a,0xbd,0x1, 0x58,0x4, 0x5, 0x6b,0x80,0xb, 0xb, 0xf0,0xbc, +0x5f,0x38,0xc0,0x80,0x3, 0x75,0x6b,0x0, 0xe5,0x6b,0xbe,0xb0,0x3, 0x40,0x17,0x7e, +0xb3,0xe, 0xa, 0x44,0x1, 0x7a,0xb3,0xe, 0xa, 0x75,0x6b,0x0, 0x7e,0xb3,0x16,0xbc, +0x44,0x1, 0x7a,0xb3,0x16,0xbc,0x7e,0xb3,0xe, 0xa, 0x54,0xfd,0x7a,0xb3,0xe, 0xa, +0x7e,0xb3,0xd, 0x16,0x70,0x59,0x7e,0x53,0xd, 0xf7,0xbe,0x50,0x0, 0x28,0x50,0x6c, +0xff,0x80,0x48,0x7e,0x30,0x2, 0xac,0x3f,0x9, 0xd1,0xd, 0x18,0x9, 0xe1,0xd, 0x19, +0x7e,0x30,0x2, 0xac,0x3d,0x2d,0x14,0x49,0x11,0x0, 0x30,0x6d,0x0, 0x9e,0x7, 0xd, +0xff,0xbd,0x10,0x48,0xe, 0x7e,0x30,0x2, 0xac,0x3e,0x2d,0x14,0xb, 0x18,0x10,0xbd, +0x10,0x58,0x16,0x7e,0xb3,0xe, 0xa, 0x44,0x2, 0x7a,0xb3,0xe, 0xa, 0x7e,0xb3,0x16, +0xbc,0x44,0x2, 0x7a,0xb3,0x16,0xbc,0x80,0x6, 0xb, 0xf0,0xbc,0x5f,0x38,0xb4,0x7e, +0xb3,0xe, 0x9, 0xb4,0x1, 0x2, 0x80,0x3, 0x2, 0x23,0xc3,0x7e,0xb3,0xd, 0x16,0x70, +0x6d,0x6c,0xff,0x80,0x61,0x7e,0x50,0x2, 0xac,0x5f,0x7d,0x12,0x2d,0x14,0xb, 0x18, +0x10,0xbe,0x17,0xd, 0xff,0x8, 0x4d,0x2d,0x23,0xb, 0x28,0x20,0xbe,0x27,0xd, 0xff, +0x58,0x42,0xbe,0xf1,0x6c,0x68,0x6, 0x7a,0xf1,0x6c,0x75,0x6d,0x0, 0xbe,0xf1,0x6c, +0x78,0x2, 0x5, 0x6d,0xe5,0x6d,0xbe,0xb0,0x10,0x28,0x33,0x75,0x6d,0x10,0xe5,0x51, +0x70,0x16,0x7e,0xb3,0xe, 0xa, 0x44,0x4, 0x7a,0xb3,0xe, 0xa, 0x7e,0xb3,0x16,0xbc, +0x44,0x4, 0x7a,0xb3,0x16,0xbc,0x80,0x16,0x7e,0xb3,0xe, 0xa, 0x54,0xfb,0x7a,0xb3, +0xe, 0xa, 0x80,0xa, 0xb, 0xf0,0x7e,0xb3,0x10,0x2c,0xbc,0xbf,0x38,0x97,0x6c,0xaa, +0x6c,0xff,0x80,0x17,0x7e,0x70,0x2, 0xac,0x7f,0x2d,0x34,0xb, 0x38,0x30,0xbe,0x37, +0xd, 0xff,0x8, 0x5, 0x7e,0xa0,0x1, 0x80,0xa, 0xb, 0xf0,0x7e,0xb3,0x10,0x2c,0xbc, +0xbf,0x38,0xe1,0x4c,0xaa,0x78,0x1a,0x7e,0xb3,0xe, 0xa, 0x54,0xfb,0x7a,0xb3,0xe, +0xa, 0x75,0x6c,0xff,0x75,0x6d,0x0, 0x7e,0xb3,0x16,0xbc,0x54,0xfb,0x7a,0xb3,0x16, +0xbc,0x7e,0xb3,0xe, 0xa, 0x54,0xf7,0x7a,0xb3,0xe, 0xa, 0x7e,0x73,0xd, 0xfa,0xa, +0x27,0x7e,0x73,0xd, 0xf9,0xa, 0x37,0x2d,0x32,0xbe,0x37,0xe, 0x3, 0x28,0x14,0x7e, +0xb3,0xe, 0xa, 0x44,0x8, 0x7a,0xb3,0xe, 0xa, 0x7e,0xb3,0x16,0xbc,0x44,0x8, 0x7a, +0xb3,0x16,0xbc,0x7e,0xb3,0xe, 0xa, 0x44,0x10,0x7a,0xb3,0xe, 0xa, 0x6c,0xff,0x80, +0x49,0x7e,0x50,0x2, 0xac,0x5f,0x9, 0xd2,0xd, 0x18,0x9, 0xe2,0xd, 0x19,0x7e,0x70, +0x18,0xac,0x7d,0xa, 0x1e,0x2d,0x31,0x3e,0x34,0x2e,0x37,0xf, 0xda,0xb, 0x38,0x30, +0x49,0x22,0x10,0x3, 0x9d,0x32,0x7a,0x35,0x21,0x12,0x6d,0xd0,0xbe,0x37,0xe, 0x1, +0x28,0x16,0x7e,0xb3,0xe, 0xa, 0x54,0xef,0x7a,0xb3,0xe, 0xa, 0x7e,0xb3,0x16,0xbc, +0x44,0x10,0x7a,0xb3,0x16,0xbc,0x80,0xa, 0xb, 0xf0,0x7e,0x73,0xd, 0xf7,0xbc,0x7f, +0x38,0xaf,0x7e,0x34,0x10,0x3, 0x7e,0x24,0x0, 0x28,0xe4,0x12,0x6d,0xe0,0x6c,0xff, +0x80,0x25,0x7e,0x50,0x2, 0xac,0x5f,0x9, 0xd2,0xd, 0x18,0x9, 0xe2,0xd, 0x19,0x7e, +0x70,0x18,0xac,0x7d,0xa, 0x1e,0x2d,0x31,0x3e,0x34,0x2e,0x37,0xf, 0xda,0xb, 0x38, +0x30,0x59,0x32,0x10,0x3, 0xb, 0xf0,0x7e,0x73,0xd, 0xf7,0xbc,0x7f,0x38,0xd3,0xda, +0x79,0xda,0xd8,0x22,0xca,0x3b,0x6d,0x33,0x7a,0x35,0x21,0x75,0x25,0x0, 0x75,0x26, +0x0, 0x7e,0x23,0xd, 0xf7,0x7a,0x21,0x23,0x7e,0x37,0xf, 0xda,0x7a,0x37,0x13,0xb6, +0x7e,0x30,0x2, 0xac,0x23,0x7e,0x24,0xd, 0x18,0x7e,0x34,0x13,0xb8,0x12,0x6d,0x3c, +0xe5,0x23,0xbe,0xb0,0xa, 0x38,0x3, 0x2, 0x26,0xb9,0x75,0x24,0x0, 0x6c,0xff,0x2, +0x25,0xcd,0x7e,0x34,0x3, 0xff,0x7a,0x35,0x27,0x75,0x26,0xff,0x6c,0xee,0x80,0x7e, +0x7e,0x70,0x2, 0xac,0x7e,0x9, 0xb3,0x13,0xb8,0xbe,0xb0,0xff,0x68,0x6e,0x7c,0xbe, +0xc4,0x23,0x54,0x1f,0x7c,0xab,0x7a,0xa1,0x2b,0x7c,0xbe,0x54,0x7, 0x7e,0x24,0x0, +0x1, 0x60,0x5, 0x3e,0x24,0x14,0x78,0xfb,0x7c,0xb5,0xf5,0x2c,0xa, 0x2a,0x9, 0xb2, +0xd, 0x68,0x55,0x2c,0x68,0x46,0x9, 0x73,0x13,0xb9,0xa, 0x27,0x74,0x2, 0xac,0xbf, +0x9, 0x75,0x15,0xa3,0xa, 0x37,0x9d,0x32,0x12,0x6d,0xd0,0x7d,0x63,0x74,0x2, 0xac, +0xbe,0x9, 0x75,0x13,0xb8,0xa, 0x27,0x74,0x2, 0xac,0xbf,0x9, 0x75,0x15,0xa2,0xa, +0x37,0x9d,0x32,0x12,0x6d,0xd0,0x2d,0x36,0x7a,0x35,0x29,0x7e,0x35,0x27,0xbe,0x35, +0x29,0x28,0x9, 0x7e,0x35,0x29,0x7a,0x35,0x27,0x7a,0xe1,0x26,0xb, 0xe0,0xe5,0x23, +0xbc,0xbe,0x28,0x3, 0x2, 0x25,0x0, 0xe5,0x26,0xbe,0xb0,0xff,0x68,0x3d,0x7e,0x71, +0x26,0x74,0x2, 0xac,0x7b,0x9, 0x33,0x13,0xb8,0x7e,0x50,0x18,0xac,0x53,0x9, 0xa3, +0x13,0xb9,0xa, 0xa, 0x2d,0x20,0x3e,0x24,0x2e,0x27,0x13,0xb6,0xb, 0x28,0x20,0xbe, +0x24,0x0, 0x3c,0x48,0x16,0xe5,0x24,0x1a,0x2b,0x3e,0x24,0x19,0x32,0x13,0xe0,0x19, +0xa2,0x13,0xe1,0x74,0xff,0x19,0xb3,0x13,0xb8,0x5, 0x24,0xb, 0xf0,0xe5,0x11,0xbc, +0xbf,0x28,0x3, 0x2, 0x24,0xf2,0x7e,0xf1,0x24,0x2, 0x26,0x9f,0x6d,0x33,0x7a,0x35, +0x21,0x7e,0xa0,0xff,0x6c,0xee,0x2, 0x26,0x71,0x7c,0xbe,0xc4,0x23,0x54,0x1f,0x7c, +0x7b,0x7a,0x71,0x2b,0x7c,0xbe,0x54,0x7, 0x7e,0x44,0x0, 0x1, 0x60,0x5, 0x3e,0x44, +0x14,0x78,0xfb,0x7c,0xb9,0xf5,0x2c,0xa, 0x37,0x9, 0xb3,0xd, 0x68,0x55,0x2c,0x68, +0x5e,0x7e,0x90,0x2, 0xac,0x9e,0x9, 0x44,0x13,0xb8,0xbe,0x40,0xff,0x68,0x50,0x7e, +0x50,0x18,0xac,0x45,0x9, 0xb4,0x13,0xb9,0xa, 0x3b,0x2d,0x23,0x3e,0x24,0x2e,0x27, +0x13,0xb6,0xb, 0x28,0x30,0xbe,0x34,0x0, 0x0, 0x58,0x5, 0x6d,0x33,0x1b,0x28,0x30, +0x7e,0x50,0x2, 0xac,0x5e,0x9, 0x62,0x13,0xb8,0x7e,0x30,0x18,0xac,0x36,0x9, 0x72, +0x13,0xb9,0xa, 0x7, 0x2d,0x10,0x3e,0x14,0x2e,0x17,0x13,0xb6,0xb, 0x18,0x40,0xbe, +0x45,0x21,0x8, 0xb, 0x7a,0x61,0x25,0x7a,0x71,0x26,0x7a,0x45,0x21,0x7c,0xae,0xb, +0xe0,0xe5,0x23,0xbc,0xbe,0x28,0x3, 0x2, 0x25,0xe9,0xbe,0xa0,0xff,0x68,0x1e,0x7e, +0x71,0x25,0x7e,0x90,0x2, 0xac,0x9f,0x19,0x74,0x13,0xe0,0xe5,0x26,0x19,0xb4,0x13, +0xe1,0x7e,0x70,0xff,0x7e,0x50,0x2, 0xac,0x5a,0x19,0x72,0x13,0xb8,0xb, 0xf0,0xbe, +0xf0,0xa, 0x50,0x3, 0x2, 0x25,0xdc,0x7e,0x24,0x13,0xe0,0x7e,0x34,0x13,0xb8,0x7e, +0x14,0x0, 0x28,0x12,0x6d,0x3c,0x75,0x23,0xa, 0x7e,0x34,0x15,0xa2,0x7e,0x24,0x0, +0x14,0x74,0xff,0x12,0x6d,0xe0,0xe5,0x23,0xbe,0xb0,0x0, 0x28,0x55,0x7e,0x31,0x23, +0x74,0x2, 0xac,0x3b,0x7e,0x24,0x13,0xb8,0x7e,0x34,0xd, 0x18,0x12,0x6d,0x3c,0x7e, +0x31,0x23,0x74,0x2, 0xac,0x3b,0x7e,0x24,0x13,0xb8,0x7e,0x34,0x15,0xa2,0x12,0x6d, +0x3c,0x6c,0xff,0x80,0x27,0x7c,0xbf,0x54,0x7, 0x7e,0x34,0x0, 0x1, 0x60,0x5, 0x3e, +0x34,0x14,0x78,0xfb,0x7c,0x67,0x7c,0xbf,0xc4,0x23,0x54,0x1f,0xa, 0x2b,0x2e,0x24, +0xd, 0x68,0x7e,0x29,0x70,0x4c,0x76,0x7a,0x29,0x70,0xb, 0xf0,0xe5,0x23,0xbc,0xbf, +0x38,0xd3,0x85,0x23,0x11,0xe5,0x23,0x7a,0xb3,0xd, 0xf7,0xda,0x3b,0x22,0x7c,0x7b, +0xbe,0x70,0x10,0x40,0x12,0xbe,0x70,0x4b,0x38,0xd, 0xa, 0x37,0x2e,0x37,0x16,0x4f, +0x9e,0x34,0x0, 0x10,0x2, 0x29,0x69,0xa5,0xbf,0x0, 0x3, 0xe5,0xb, 0x22,0xa5,0xbf, +0x1, 0x3, 0xe5,0xd, 0x22,0xa5,0xbf,0x2, 0x5, 0x7e,0xb3,0xf, 0x28,0x22,0xbe,0x70, +0x3, 0x40,0x12,0xbe,0x70,0x5, 0x38,0xd, 0xa, 0x37,0x2e,0x34,0x10,0x2b,0x9e,0x34, +0x0, 0x3, 0x2, 0x29,0x69,0xa5,0xbf,0x6, 0x3, 0x74,0x1, 0x22,0xa5,0xbf,0x7, 0x5, +0x7e,0xb3,0x10,0x4b,0x22,0xa5,0xbf,0x8, 0x10,0x7e,0xb3,0x10,0x3b,0x70,0x5, 0x7e, +0xb3,0xa, 0xac,0x22,0x7e,0xb3,0x11,0x16,0x22,0xa5,0xbf,0x9, 0x10,0x7e,0xb3,0x10, +0x3b,0x70,0x5, 0x7e,0xb3,0xa, 0xad,0x22,0x7e,0xb3,0x11,0x49,0x22,0xa5,0xbf,0xa, +0x5, 0x7e,0xb3,0x10,0x3b,0x22,0xa5,0xbf,0xb, 0x10,0x7e,0xb3,0x10,0x3b,0x70,0x5, +0x7e,0xb3,0xa, 0xae,0x22,0x7e,0xb3,0x11,0x94,0x22,0xa5,0xbf,0xc, 0x10,0x7e,0xb3, +0x10,0x3b,0x70,0x5, 0x7e,0xb3,0xd, 0xfe,0x22,0x7e,0xb3,0x11,0x9d,0x22,0xa5,0xbf, +0x4c,0x5, 0x7e,0xb3,0xf, 0x46,0x22,0xa5,0xbf,0xfb,0x3, 0xe5,0x8, 0x22,0xa5,0xbf, +0x4e,0x5, 0x7e,0xb3,0x10,0x4a,0x22,0xbe,0x70,0x50,0x40,0x12,0xbe,0x70,0x51,0x38, +0xd, 0xa, 0x37,0x2e,0x37,0x10,0x2f,0x9e,0x34,0x0, 0x50,0x2, 0x29,0x69,0xbe,0x70, +0x52,0x40,0x12,0xbe,0x70,0x55,0x38,0xd, 0xa, 0x37,0x2e,0x37,0x10,0x31,0x9e,0x34, +0x0, 0x52,0x2, 0x29,0x69,0xbe,0x70,0x56,0x40,0x12,0xbe,0x70,0x62,0x38,0xd, 0xa, +0x37,0x2e,0x37,0x10,0x33,0x9e,0x34,0x0, 0x56,0x2, 0x29,0x69,0xbe,0x70,0x63,0x40, +0x12,0xbe,0x70,0x7a,0x38,0xd, 0xa, 0x37,0x2e,0x37,0x10,0x35,0x9e,0x34,0x0, 0x63, +0x2, 0x29,0x69,0xbe,0x70,0x7b,0x50,0x3, 0x2, 0x28,0xfd,0xbe,0x70,0x9f,0x28,0x3, +0x2, 0x28,0xfd,0x7e,0xb3,0x10,0x3b,0x70,0x4a,0xa, 0x27,0x9e,0x24,0x0, 0x7b,0xbe, +0x24,0x0, 0x18,0x58,0x22,0xa, 0x37,0x2e,0x37,0x10,0x35,0x9e,0x34,0x0, 0x7b,0x7e, +0x39,0xa0,0x7c,0xba,0x30,0xe0,0xc, 0xa, 0x5a,0x2e,0x54,0x0, 0x18,0xe, 0x54,0x7c, +0xab,0x80,0x19,0x1e,0xa0,0x80,0x15,0xa, 0x37,0x2e,0x37,0x10,0x33,0x9e,0x34,0x0, +0x93,0x7e,0x39,0x70,0xa, 0x57,0x2e,0x54,0x0, 0x18,0x7c,0xab,0xa, 0x3a,0x9, 0xb3, +0xf, 0xdc,0x22,0xa, 0x27,0x9e,0x24,0x0, 0x7b,0xbe,0x24,0x0, 0x18,0x58,0x22,0xa, +0x37,0x2e,0x37,0x10,0x35,0x9e,0x34,0x0, 0x7b,0x7e,0x39,0xa0,0x7c,0xba,0x30,0xe0, +0xc, 0xa, 0x5a,0x2e,0x54,0x0, 0x18,0xe, 0x54,0x7c,0xab,0x80,0x19,0x1e,0xa0,0x80, +0x15,0xa, 0x37,0x2e,0x37,0x10,0x33,0x9e,0x34,0x0, 0x93,0x7e,0x39,0x70,0xa, 0x57, +0x2e,0x54,0x0, 0x18,0x7c,0xab,0xa, 0x3a,0x9, 0xb3,0xf, 0x63,0x22,0xbe,0x70,0xa0, +0x40,0x11,0xbe,0x70,0xac,0x38,0xc, 0xa, 0x37,0x2e,0x37,0x10,0x6c,0x9e,0x34,0x0, +0xa0,0x80,0x56,0xbe,0x70,0xad,0x40,0x11,0xbe,0x70,0xb9,0x38,0xc, 0xa, 0x37,0x2e, +0x37,0x10,0x6e,0x9e,0x34,0x0, 0xad,0x80,0x40,0xbe,0x70,0xba,0x40,0x11,0xbe,0x70, +0xd1,0x38,0xc, 0xa, 0x37,0x2e,0x37,0x10,0x70,0x9e,0x34,0x0, 0xba,0x80,0x2a,0xbe, +0x70,0xd2,0x40,0x11,0xbe,0x70,0xd5,0x38,0xc, 0xa, 0x37,0x2e,0x37,0x10,0x72,0x9e, +0x34,0x0, 0xd2,0x80,0x14,0xbe,0x70,0xd6,0x40,0x13,0xbe,0x70,0xed,0x38,0xe, 0xa, +0x37,0x2e,0x37,0x10,0x74,0x9e,0x34,0x0, 0xd6,0x7e,0x39,0xb0,0x22,0xa5,0xbf,0xf8, +0x5, 0x7e,0xb3,0x11,0xe8,0x22,0xa5,0xbf,0xfe,0x3, 0xe5,0xc, 0x22,0x74,0xff,0x22, +0x0, 0x0, 0x3, 0xe0,0x3, 0xff,0x3, 0xff,0x0, 0x20,0x0, 0x41,0x0, 0x42,0x0, 0x22, +0x3, 0xe0,0x3, 0xbe,0x3, 0x9c,0x3, 0xdd,0x0, 0x40,0x0, 0xa3,0x0, 0xa5,0x0, 0x44, +0x3, 0xc0,0x3, 0x5c,0x3, 0x5a,0x3, 0xbb,0x0, 0x60,0x0, 0xe5,0x0, 0xe8,0x0, 0x66, +0x3, 0xa0,0x3, 0x1a,0x2, 0xf7,0x3, 0x99,0x0, 0x80,0x1, 0x47,0x1, 0x4b,0x0, 0x88, +0x3, 0x80,0x2, 0xb8,0x2, 0xb4,0x3, 0x77,0x0, 0xa0,0x1, 0x89,0x1, 0xad,0x0, 0xaa, +0x3, 0x60,0x2, 0x56,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xaa, +0x3, 0x60,0x2, 0x76,0x2, 0x93,0x3, 0x77,0x0, 0xa0,0x1, 0x69,0x1, 0x6c,0x0, 0x88, +0x3, 0x80,0x2, 0xd8,0x2, 0xd5,0x3, 0x99,0x0, 0x80,0x1, 0x27,0x1, 0x9, 0x0, 0x66, +0x3, 0xa0,0x3, 0x3a,0x3, 0x38,0x3, 0xbb,0x0, 0x60,0x0, 0xc5,0x0, 0xc6,0x0, 0x44, +0x3, 0xc0,0x3, 0x7c,0x3, 0x7b,0x3, 0xdd,0x0, 0x40,0x0, 0x83,0x0, 0x64,0x0, 0x22, +0x3, 0xe0,0x3, 0xde,0x3, 0xde,0x3, 0xff,0x0, 0x20,0x0, 0x21,0x0, 0x21,0x0, 0x0, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0x3, 0x40,0x2, 0x55,0x2, 0x51,0x3, 0x55,0x0, 0xc0,0x1, 0xcb,0x1, 0xcf,0x0, 0xcb, +0xca,0x3b,0x7e,0x34,0x13,0xff,0x7e,0x24,0x0, 0x18,0xe4,0x12,0x6d,0xe0,0x7e,0xe0, +0x1, 0x7e,0x73,0x10,0x4d,0x7a,0x73,0x13,0xb6,0xe4,0x7a,0xb3,0x10,0x4d,0x6c,0xdd, +0x6c,0xcc,0x80,0x11,0xa, 0x3c,0x2e,0x37,0x10,0x6e,0x7e,0x39,0x70,0xbc,0x7d,0x40, +0x2, 0x7c,0xd7,0xb, 0xc0,0x7e,0x73,0x10,0x2b,0xbc,0x7c,0x38,0xe7,0xbe,0xd0,0x1f, +0x50,0xc, 0xa, 0x2d,0x7e,0x34,0x0, 0x1f,0x9d,0x32,0x7c,0xd7,0x80,0x2, 0x6c,0xdd, +0x7a,0xd1,0x21,0x7e,0x34,0x10,0x2b,0x12,0x31,0xbc,0x7e,0x34,0x10,0x2b,0x12,0x6a, +0x64,0x2, 0x2d,0x7d,0x6d,0x33,0x7a,0x37,0x10,0x1, 0x7e,0x34,0xd, 0xac,0x7a,0x37, +0xa, 0xaf,0x12,0x6e,0xcf,0x12,0x69,0x23,0x12,0x6e,0x78,0x60,0xfb,0xa9,0xb7,0xea, +0x7e,0x37,0xf, 0xda,0x7e,0x27,0xf, 0xd8,0x7e,0x14,0x18,0x0, 0x12,0x67,0x74,0x6c, +0xcc,0x80,0x78,0x6c,0xff,0x80,0x6a,0x4c,0xcc,0x78,0x11,0xe4,0xa, 0x3f,0x19,0xb3, +0x13,0xe7,0x6d,0x33,0x74,0x2, 0xac,0xbf,0x59,0x35,0x13,0xb7,0xbe,0xf0,0x17,0x78, +0x13,0x7e,0x34,0x0, 0x1, 0x7c,0xbc,0x60,0x5, 0x3e,0x34,0x14,0x78,0xfb,0x5e,0x34, +0x4, 0x44,0x68,0x3b,0x7e,0x50,0x30,0xac,0x5c,0x7e,0x70,0x2, 0xac,0x7f,0x2d,0x32, +0x2e,0x37,0xf, 0xda,0xb, 0x38,0x10,0xe, 0x14,0xe, 0x14,0xe, 0x14,0xe, 0x14,0xe, +0x14,0x7e,0x50,0x2, 0xac,0x5f,0x2e,0x24,0x13,0xb7,0xb, 0x28,0x30,0x2d,0x31,0x1b, +0x28,0x30,0xa, 0x3f,0x2e,0x34,0x13,0xe7,0x7e,0x39,0xb0,0x4, 0x7a,0x39,0xb0,0xb, +0xf0,0x7e,0x73,0x10,0x2c,0xbc,0x7f,0x38,0x8e,0xb, 0xc0,0x7e,0x73,0x10,0x2b,0xbc, +0x7c,0x38,0x80,0x75,0x22,0x0, 0x6c,0xcc,0x2, 0x2d,0x5b,0xa, 0x3c,0x9, 0xa3,0x13, +0xe7,0x4c,0xaa,0x78,0xf, 0x7e,0x44,0x22,0xc4,0x7e,0x70,0x2, 0xac,0x7c,0x59,0x43, +0x13,0xb7,0x80,0x25,0x7e,0x50,0x2, 0xac,0x5c,0x49,0x12,0x13,0xb7,0xa, 0xa, 0x8d, +0x10,0x59,0x12,0x13,0xb7,0x2e,0x24,0x13,0xb7,0xb, 0x28,0x30,0x3e,0x34,0x3e,0x34, +0x3e,0x34,0x3e,0x34,0x3e,0x34,0x1b,0x28,0x30,0x7e,0x50,0x2, 0xac,0x5c,0x49,0x32, +0x13,0xb7,0xbe,0x34,0x1e,0xdc,0x50,0x22,0xa, 0x1c,0x2e,0x14,0x13,0xff,0x7e,0x19, +0xb0,0x4, 0x7a,0x19,0xb0,0xa, 0x1c,0x2e,0x17,0x10,0x74,0x7e,0x19,0xb0,0xbc,0xbd, +0x50,0x2f,0x4, 0x7a,0x19,0xb0,0x80,0x31,0x80,0x27,0xbe,0x34,0x26,0xac,0x28,0x27, +0xa, 0x3c,0x2e,0x34,0x13,0xff,0x7e,0x39,0xb0,0x4, 0x7a,0x39,0xb0,0xa, 0x3c,0x2e, +0x37,0x10,0x74,0x7e,0x39,0xb0,0xbe,0xb0,0x0, 0x28,0x6, 0x14,0x7a,0x39,0xb0,0x80, +0x8, 0x5, 0x22,0x6c,0xee,0x80,0x2, 0x5, 0x22,0xb, 0xc0,0x7e,0x73,0x10,0x2c,0xbc, +0x7c,0x28,0x3, 0x2, 0x2c,0xbb,0x7e,0x34,0x10,0x2b,0x12,0x31,0xbc,0x7e,0x34,0x10, +0x2b,0x12,0x6a,0x64,0x7e,0x73,0x10,0x2c,0xbe,0x71,0x22,0x68,0xf, 0x7e,0xa1,0x21, +0x7c,0xba,0x14,0xf5,0x21,0x4c,0xaa,0x68,0x3, 0x2, 0x2c,0x4, 0x7e,0x73,0x13,0xb6, +0x7a,0x73,0x10,0x4d,0x6c,0xff,0x80,0x10,0xa, 0x3f,0x9, 0x73,0x13,0xff,0xbc,0x7d, +0x78,0x4, 0x6c,0xee,0x80,0xa, 0xb, 0xf0,0x7e,0x73,0x10,0x2c,0xbc,0x7f,0x38,0xe8, +0x7c,0xbe,0xda,0x3b,0x22,0xca,0x3b,0x7e,0xb3,0x10,0x3c,0xf5,0x21,0xe4,0x7a,0xb3, +0x10,0x3c,0x7e,0xb3,0x10,0x3a,0xf5,0x22,0x74,0x3, 0x7a,0xb3,0x10,0x3a,0x7e,0x37, +0x10,0x48,0x7e,0x24,0x0, 0x25,0xe4,0x12,0x6d,0xe0,0x7e,0xe0,0x7, 0x6d,0x33,0x7a, +0x37,0x10,0x1, 0x7e,0x34,0xd, 0xac,0x7a,0x37,0xa, 0xaf,0x12,0x6e,0xcf,0x6c,0xdd, +0x7e,0x14,0x0, 0x1, 0x7c,0xbe,0x60,0x5, 0x3e,0x14,0x14,0x78,0xfb,0xa, 0x2d,0x2e, +0x27,0x10,0x48,0x7e,0x29,0x70,0x4c,0x73,0x7a,0x29,0x70,0xb, 0xd0,0xbe,0xd0,0x25, +0x78,0xde,0x7e,0x34,0x10,0x2b,0x12,0x5b,0x2, 0x7e,0x34,0x10,0x2b,0x12,0x64,0xab, +0x12,0x6e,0x81,0x60,0xfb,0x7e,0x37,0xf, 0xd6,0x7e,0x25,0x70,0x12,0x54,0xd0,0x6c, +0xdd,0xbe,0xd0,0x18,0x50,0x1e,0xa, 0x3d,0x2e,0x37,0x10,0x35,0x7e,0x39,0xf0,0x7c, +0xbf,0x30,0xe0,0xc, 0xa, 0x3f,0x2e,0x34,0x0, 0x18,0xe, 0x34,0x7c,0xf7,0x80,0x16, +0x1e,0xf0,0x80,0x12,0xa, 0x3d,0x2e,0x37,0x10,0x33,0x9, 0x73,0xff,0xe8,0xa, 0x37, +0x2e,0x34,0x0, 0x18,0x7c,0xf7,0x7e,0x70,0x2, 0xac,0x7d,0x2e,0x37,0xf, 0xd6,0xb, +0x38,0x30,0xbe,0x34,0x25,0x80,0x18,0x21,0x7e,0x34,0x0, 0x1, 0x7c,0xbe,0x60,0x5, +0x3e,0x34,0x14,0x78,0xfb,0x7d,0x13,0x6e,0x14,0xff,0xff,0xa, 0x2f,0x2e,0x27,0x10, +0x48,0x7e,0x29,0x70,0x5c,0x73,0x7a,0x29,0x70,0xb, 0xd0,0xbe,0xd0,0x25,0x78,0x91, +0x1b,0xe0,0xbe,0xe0,0x0, 0x48,0x3, 0x2, 0x2d,0xdd,0x7e,0xe0,0xa, 0x74,0x2, 0x7a, +0xb3,0x10,0x3a,0x2, 0x2f,0xac,0x6d,0x33,0x7a,0x37,0x10,0x1, 0x7e,0x34,0xd, 0xac, +0x7a,0x37,0xa, 0xaf,0x12,0x6e,0xcf,0x7e,0x73,0x10,0x2b,0xa, 0x37,0x7e,0x53,0x10, +0x2c,0xa, 0x65,0x2d,0x63,0x7c,0xcd,0x6c,0xdd,0x2, 0x2f,0x74,0x7e,0xa3,0x10,0x2c, +0xbc,0xad,0x28,0x27,0xa, 0x3d,0x2e,0x37,0x10,0x35,0x7e,0x39,0xf0,0x7c,0xbf,0x30, +0xe0,0xc, 0xa, 0x3f,0x2e,0x34,0x0, 0x18,0xe, 0x34,0x7c,0xf7,0x80,0x2, 0x1e,0xf0, +0x7e,0x70,0x2, 0xac,0x7d,0x2e,0x37,0xf, 0xd6,0x80,0x27,0xa, 0x2a,0xa, 0x3d,0x9d, +0x32,0x2e,0x37,0x10,0x33,0x7e,0x39,0xb0,0xa, 0x3b,0x2e,0x34,0x0, 0x18,0x7c,0xf7, +0x7e,0x70,0x2, 0xac,0x7d,0x2e,0x37,0xf, 0xd6,0x2e,0x34,0x0, 0x30,0x74,0x2, 0xa4, +0x9d,0x35,0xb, 0x38,0x30,0x7a,0x35,0x23,0xbe,0x34,0x2e,0xe0,0x8, 0x18,0x4c,0xee, +0x68,0x30,0xa, 0x2f,0x2e,0x27,0x10,0x48,0x7e,0x29,0xb0,0xbe,0xb0,0xfe,0x50,0x22, +0x4, 0x7a,0x29,0xb0,0x80,0x1c,0xbe,0x34,0x17,0x70,0x58,0x14,0xa, 0x3f,0x2e,0x37, +0x10,0x48,0x7e,0x39,0xb0,0xbe,0xb0,0x0, 0x28,0x8, 0x14,0x7a,0x39,0xb0,0x80,0x2, +0x1b,0xc0,0xb, 0xd0,0x7e,0x73,0x10,0x2b,0xa, 0x37,0x7e,0x53,0x10,0x2c,0xa, 0x25, +0x2d,0x23,0xa, 0x3d,0xbd,0x32,0x58,0x3, 0x2, 0x2e,0xdc,0x4c,0xcc,0x68,0x28,0x7e, +0x34,0x10,0x2b,0x12,0x5b,0x2, 0x7e,0x34,0x10,0x2b,0x12,0x64,0xab,0x12,0x6e,0x81, +0x60,0xfb,0x7e,0x37,0xf, 0xd6,0x7e,0x25,0x70,0x12,0x54,0xd0,0x7c,0xae,0x1b,0xe0, +0x4c,0xaa,0x68,0x3, 0x2, 0x2e,0xb6,0xe5,0x21,0x7a,0xb3,0x10,0x3c,0xe5,0x22,0x7a, +0xb3,0x10,0x3a,0xda,0x3b,0x22,0xca,0xf8,0x6c,0xff,0x7e,0x24,0x15,0x56,0x7e,0x34, +0x13,0xfe,0x7e,0x14,0x0, 0x48,0x12,0x6d,0x3c,0x7e,0x24,0xe, 0xd, 0x7e,0x34,0x13, +0xb6,0x7e,0x14,0x0, 0x46,0x12,0x6d,0x3c,0x7e,0x73,0xf, 0x1b,0x7a,0x73,0x13,0xfc, +0x7e,0x73,0xf, 0x1c,0x7a,0x73,0x13,0xfd,0x7e,0xa3,0x13,0xfc,0xbe,0xa0,0x1, 0x38, +0x3, 0x7e,0xf0,0x1, 0x7e,0xb3,0xf, 0x1c,0x70,0x3, 0xe4,0x80,0x10,0x7e,0xb3,0x15, +0xa1,0x4, 0x7a,0xb3,0x15,0xa1,0xbe,0xb0,0xc8,0x28,0x6, 0x74,0x14,0x7a,0xb3,0x15, +0xa1,0x7e,0xb3,0x15,0xa1,0xbe,0xb0,0x6, 0x50,0x3, 0x7e,0xf0,0x1, 0xbe,0xa0,0x1, +0x28,0x3f,0x7e,0x34,0x0, 0x21,0x7e,0x24,0x0, 0x23,0x7e,0x14,0x13,0xfe,0x12,0x65, +0xa8,0x7e,0x34,0x0, 0x25,0x7e,0x24,0x0, 0x27,0x7e,0x14,0x13,0xb6,0x12,0x65,0xa8, +0x7e,0x35,0x25,0x9e,0x35,0x21,0x12,0x6d,0xd0,0xbe,0x34,0x0, 0x80,0x18,0xf, 0x7e, +0x35,0x27,0x9e,0x35,0x23,0x12,0x6d,0xd0,0xbe,0x34,0x0, 0x80,0x8, 0x3, 0x7e,0xf0, +0x1, 0xbe,0xf0,0x0, 0x28,0x3, 0x2, 0x31,0x24,0x7e,0xf3,0x15,0x9f,0xbe,0xf3,0x15, +0x29,0x50,0x55,0x7e,0x73,0x15,0x29,0xbe,0x73,0x13,0xfc,0x28,0x12,0x7e,0x24,0x15, +0x56,0x7e,0x34,0x14,0xe3,0x7e,0x14,0x0, 0x48,0x12,0x6d,0x3c,0x2, 0x31,0x24,0x7e, +0x73,0x15,0x9e,0xbe,0x70,0x2, 0x58,0x22,0x7e,0x24,0x15,0x56,0x7e,0x34,0x14,0xe3, +0x7e,0x14,0x0, 0x48,0x12,0x6d,0x3c,0x74,0x1, 0x7a,0xb3,0x15,0xa0,0xe4,0x7a,0xb3, +0x15,0x53,0x7e,0xb3,0x15,0x9e,0x4, 0x2, 0x31,0x60,0x74,0x1, 0x7a,0xb3,0x15,0xa0, +0xe4,0x7a,0xb3,0x15,0x53,0x2, 0x31,0x60,0xbe,0xf3,0x15,0x29,0x78,0x2d,0x7e,0xa3, +0x15,0x29,0xbe,0xa3,0x13,0xfc,0x50,0xd, 0x74,0x1, 0x7a,0xb3,0x15,0xa0,0xe4,0x7a, +0xb3,0x15,0x53,0x80,0x6b,0xbe,0xa3,0x13,0xfc,0x28,0x4, 0x74,0x1, 0x80,0x1, 0xe4, +0x7a,0xb3,0x15,0xa0,0xe4,0x7a,0xb3,0x15,0x53,0x80,0x55,0x7e,0x73,0x15,0x29,0xbe, +0x73,0x13,0xfc,0x50,0x1a,0x7e,0x24,0x15,0x56,0x7e,0x34,0x14,0xe3,0x7e,0x14,0x0, +0x48,0x12,0x6d,0x3c,0xe4,0x7a,0xb3,0x15,0xa0,0x7a,0xb3,0x15,0x53,0x80,0x31,0x7e, +0x73,0x15,0x53,0xbe,0x70,0x2, 0x58,0x1c,0x7e,0x24,0x15,0x56,0x7e,0x34,0x14,0xe3, +0x7e,0x14,0x0, 0x48,0x12,0x6d,0x3c,0x74,0x1, 0x7a,0xb3,0x15,0xa0,0x7e,0xb3,0x15, +0x53,0x4, 0x80,0x7, 0x74,0x1, 0x7a,0xb3,0x15,0xa0,0xe4,0x7a,0xb3,0x15,0x53,0xe4, +0x7a,0xb3,0x15,0x9e,0x7e,0xb3,0x15,0xa0,0x14,0x68,0x9, 0x4, 0x78,0x15,0x7e,0x24, +0x13,0xb6,0x80,0x4, 0x7e,0x24,0x14,0xe3,0x7e,0x34,0x15,0x56,0x7e,0x14,0x0, 0x48, +0x12,0x6d,0x3c,0x7e,0x73,0x15,0x29,0x7a,0x73,0x15,0x9f,0x7e,0x24,0x13,0xb6,0x7e, +0x34,0x14,0xe3,0x7e,0x14,0x0, 0x48,0x12,0x6d,0x3c,0x7e,0x24,0x15,0x56,0x7e,0x34, +0xe, 0xd, 0x7e,0x14,0x0, 0x46,0x12,0x6d,0x3c,0x7e,0x73,0x15,0x9c,0x7a,0x73,0xf, +0x1b,0x7e,0x73,0x15,0x9d,0x7a,0x73,0xf, 0x1c,0xda,0xf8,0x22,0xca,0x79,0x7d,0x73, +0x12,0x60,0xce,0x49,0x27,0x0, 0x25,0x7e,0x34,0x1c,0xa, 0x1b,0x38,0x20,0x49,0x27, +0x0, 0x27,0x7e,0x34,0x1c,0xc, 0x1b,0x38,0x20,0x49,0x27,0x0, 0x29,0x7e,0x34,0x1c, +0xe, 0x1b,0x38,0x20,0x49,0x27,0x0, 0x2b,0x7e,0x34,0x1c,0x10,0x1b,0x38,0x20,0x49, +0x27,0x0, 0x2d,0x7e,0x34,0x1c,0x12,0x1b,0x38,0x20,0x49,0x27,0x0, 0x2f,0x7e,0x34, +0x1c,0x14,0x1b,0x38,0x20,0x49,0x27,0x0, 0x6, 0x9, 0x72,0x0, 0x1, 0xa, 0x37,0x7c, +0x67,0x6c,0x77,0x7e,0x29,0x30,0xa, 0x13,0x4d,0x13,0x7e,0x34,0x1c,0x18,0x1b,0x38, +0x10,0x9, 0x72,0x0, 0x3, 0xa, 0x37,0x7c,0x67,0x6c,0x77,0x9, 0x52,0x0, 0x2, 0xa, +0x25,0x4d,0x23,0x7e,0x34,0x1c,0x1a,0x1b,0x38,0x20,0x9, 0x77,0x0, 0x1, 0xa, 0x27, +0x7e,0x34,0x1c,0x16,0x1b,0x38,0x20,0x6d,0x22,0x7e,0x34,0x1c,0x1c,0x1b,0x38,0x20, +0x6c,0xaa,0xa, 0x2a,0x49,0x37,0x0, 0xa, 0x2d,0x32,0x7e,0x39,0xb0,0xa, 0x2b,0x7e, +0x34,0x1c,0x1e,0x1b,0x38,0x20,0xb, 0xa0,0xbe,0xa0,0x18,0x78,0xe5,0x6d,0x22,0x7e, +0x34,0x1c,0x1c,0x1b,0x38,0x20,0x6c,0xaa,0x7e,0x50,0x2, 0xac,0x5a,0x49,0x37,0x0, +0x4b,0x2d,0x32,0xb, 0x38,0x20,0x7e,0x34,0x1c,0x20,0x1b,0x38,0x20,0xb, 0xa0,0xbe, +0xa0,0x19,0x78,0xe4,0x6d,0x22,0x7e,0x34,0x1c,0x1c,0x1b,0x38,0x20,0x6c,0xaa,0x7e, +0x70,0x2, 0xac,0x7a,0x2e,0x34,0x29,0x80,0x7e,0x24,0x0, 0xff,0xb, 0x1a,0x30,0x7e, +0x24,0x1c,0x22,0x1b,0x28,0x30,0xb, 0xa0,0xbe,0xa0,0xff,0x78,0xe2,0x7e,0x14,0x2b, +0x7e,0x7e,0x4, 0x0, 0xff,0xb, 0xa, 0x30,0x1b,0x28,0x30,0x7e,0x24,0x1, 0x0, 0x7e, +0x34,0x1c,0x1c,0x1b,0x38,0x20,0x6c,0xaa,0x7e,0x70,0x2, 0xac,0x7a,0x2e,0x34,0x2b, +0x80,0x7e,0x24,0x0, 0xff,0xb, 0x1a,0x20,0x7e,0x34,0x1c,0x22,0x1b,0x38,0x20,0xb, +0xa0,0xbe,0xa0,0x10,0x40,0xe2,0x7d,0x37,0x12,0x5d,0xbd,0x49,0x27,0x0, 0x39,0x7e, +0x34,0x1c,0x28,0x1b,0x38,0x20,0x7e,0x24,0x0, 0x1, 0x7e,0x34,0x1c,0x2a,0x1b,0x38, +0x20,0x49,0x27,0x0, 0x31,0x7e,0x34,0x1c,0x2c,0x1b,0x38,0x20,0x49,0x27,0x0, 0x33, +0x7e,0x34,0x1c,0x2e,0x1b,0x38,0x20,0x49,0x37,0x0, 0x45,0x49,0x27,0x0, 0xa, 0x9, +0xb7,0x0, 0x1, 0x12,0x64,0x6a,0x49,0x37,0x0, 0x47,0x12,0x7, 0xc9,0x49,0x37,0x0, +0x49,0x49,0x27,0x0, 0xa, 0x9, 0xb7,0x0, 0x1, 0x12,0x5c,0x97,0x49,0x27,0x0, 0x35, +0x7e,0x34,0x1c,0x52,0x1b,0x38,0x20,0x49,0x27,0x0, 0x3d,0x7e,0x34,0x1c,0x54,0x1b, +0x38,0x20,0x49,0x27,0x0, 0x37,0x7e,0x34,0x1c,0x56,0x1b,0x38,0x20,0xda,0x79,0x22, +0xca,0x3b,0x6d,0x33,0x7a,0x35,0x23,0x7e,0xb3,0xf, 0x1b,0x60,0x6, 0x7e,0xb3,0xf, +0x1c,0x60,0x11,0xe5,0x22,0x60,0x5, 0x75,0x19,0x1, 0x80,0x3, 0x75,0x19,0x0, 0xe5, +0x19,0x2, 0x35,0x1f,0x7e,0xb3,0xd, 0x18,0xf5,0x21,0x7e,0x73,0xd, 0x19,0x7a,0x71, +0x22,0x6d,0x66,0x75,0x25,0x0, 0x75,0x26,0x0, 0xa, 0x37,0x7d,0x73,0x80,0x3a,0x7e, +0x51,0x21,0x74,0x18,0xac,0x5b,0x2d,0x27,0x3e,0x24,0x2e,0x27,0xf, 0xda,0xb, 0x28, +0x10,0xbe,0x14,0x0, 0x32,0x8, 0x28,0x5, 0x25,0xe5,0x21,0xbe,0xb0,0x0, 0x28,0x8, +0x49,0x12,0xff,0xd0,0x2d,0x61,0x5, 0x26,0xe5,0x21,0xbe,0xb0,0xc, 0x50,0x8, 0x49, +0x22,0x0, 0x30,0x2d,0x62,0x5, 0x26,0x1b,0x74,0xbe,0x74,0x0, 0x0, 0x58,0xc0,0x7d, +0x73,0x80,0x38,0x7e,0x71,0x21,0x74,0x18,0xac,0x7b,0x2d,0x37,0x3e,0x34,0x2e,0x37, +0xf, 0xda,0xb, 0x38,0x20,0xbe,0x24,0x0, 0x32,0x8, 0x2c,0x5, 0x25,0xe5,0x21,0xbe, +0xb0,0x0, 0x28,0x8, 0x49,0x23,0xff,0xd0,0x2d,0x62,0x5, 0x26,0xe5,0x21,0xbe,0xb0, +0xc, 0x50,0x8, 0x49,0x33,0x0, 0x30,0x2d,0x63,0x5, 0x26,0x7d,0x37,0xb, 0x34,0x7d, +0x73,0xbe,0x34,0x0, 0x18,0x48,0xbc,0xe5,0x25,0xbe,0xb0,0x3, 0x50,0x2, 0x80,0x12, +0x7d,0x36,0x12,0x6d,0xd0,0xe5,0x26,0xa, 0x2b,0x12,0x47,0xf2,0xbe,0x34,0x0, 0xf, +0x8, 0x8, 0x75,0x19,0x1, 0x74,0x1, 0x2, 0x35,0x1f,0x6d,0x33,0xe5,0x21,0xbe,0xb0, +0x0, 0x28,0x19,0x7e,0x51,0x21,0x74,0x18,0xac,0x5b,0xe5,0x22,0xa, 0x1b,0x2d,0x21, +0x3e,0x24,0x2e,0x27,0xf, 0xda,0x49,0x22,0xff,0xd0,0x2d,0x32,0xe5,0x21,0xbe,0xb0, +0xc, 0x50,0x19,0x7e,0x51,0x21,0x74,0x18,0xac,0x5b,0xe5,0x22,0xa, 0x1b,0x2d,0x21, +0x3e,0x24,0x2e,0x27,0xf, 0xda,0x49,0x22,0x0, 0x30,0x2d,0x32,0x7e,0xa0,0x8, 0x80, +0x2d,0x7e,0x50,0x2, 0xac,0x5a,0x7d,0x12,0x2e,0x14,0x6d,0xc0,0x7a,0x31,0x82,0x7a, +0x21,0x83,0xe4,0x93,0x1a,0x1b,0xbd,0x13,0x8, 0x14,0x2e,0x24,0x6d,0xc1,0x7a,0x51, +0x82,0x7a,0x41,0x83,0xe4,0x93,0x1a,0x2b,0x2e,0x25,0x23,0x7a,0x25,0x23,0x7c,0x5a, +0x1b,0xa0,0xa5,0xbd,0x0, 0xcb,0x7e,0x71,0x21,0x74,0x18,0xac,0x7b,0xe5,0x22,0xa, +0x2b,0x2d,0x32,0x3e,0x34,0x2e,0x37,0xf, 0xda,0xb, 0x38,0x30,0x12,0x6d,0xd0,0xbe, +0x34,0x3, 0xe8,0x8, 0xa, 0x7e,0x35,0x23,0x2e,0x34,0x0, 0x28,0x7a,0x35,0x23,0x7e, +0x35,0x23,0xbe,0x34,0x0, 0xfa,0x28,0x7, 0x7e,0x34,0x0, 0xfa,0x7a,0x35,0x23,0xe5, +0x19,0xa, 0x3b,0xbe,0x35,0x23,0x50,0x5, 0x7e,0x55,0x23,0xf5,0x19,0xe5,0x19,0xda, +0x3b,0x22,0xca,0x3b,0x7c,0x9b,0x7d,0xa3,0xbe,0x90,0x1, 0x28,0x1e,0xa, 0x15,0x1b, +0x15,0xa, 0x39,0xbd,0x31,0x58,0x14,0x74,0x2, 0xac,0xb9,0x7d,0xb5,0x2d,0xba,0x1b, +0xb6,0xb, 0xb8,0x30,0x12,0x6d,0x53,0x7d,0xb3,0x80,0x7, 0xbe,0x90,0x1, 0x78,0x15, +0x6d,0xbb,0x7e,0x70,0x2, 0xac,0x79,0x2d,0x3a,0x1b,0x35,0xb, 0x38,0x30,0x12,0x6d, +0x53,0x7d,0xc3,0x80,0x8, 0x4c,0x99,0x78,0x38,0x6d,0xcc,0x7d,0xbc,0x74,0x2, 0xac, +0xb9,0x7d,0xd5,0x2d,0xda,0xb, 0xd8,0x30,0x12,0x6d,0x53,0x7d,0xd3,0x7e,0x70,0x2, +0xac,0x79,0x2d,0x3a,0x49,0x33,0x0, 0x2, 0x12,0x6d,0x53,0x7d,0xe3,0x74,0x2, 0xac, +0xb9,0x7d,0xf5,0x2d,0xfa,0x49,0x3f,0x0, 0x4, 0x12,0x6d,0x53,0x7d,0xf3,0x2, 0x36, +0x2d,0x7c,0xb5,0x24,0xfe,0xbc,0xb9,0x78,0x46,0x74,0x2, 0xac,0xb9,0x7d,0xb5,0x2d, +0xba,0x1b,0xb6,0xb, 0xb8,0x30,0x12,0x6d,0x53,0x7d,0xb3,0x7e,0x70,0x2, 0xac,0x79, +0x2d,0x3a,0x1b,0x35,0xb, 0x38,0x30,0x12,0x6d,0x53,0x7d,0xc3,0x74,0x2, 0xac,0xb9, +0x7d,0xd5,0x2d,0xda,0xb, 0xd8,0x30,0x12,0x6d,0x53,0x7d,0xd3,0x74,0x2, 0xac,0xb9, +0x2d,0xa5,0x49,0x3a,0x0, 0x2, 0x12,0x6d,0x53,0x7d,0xe3,0x6d,0xff,0x80,0x3e,0x7c, +0xb5,0x14,0xbc,0xb9,0x78,0x37,0x74,0x2, 0xac,0xb9,0x7d,0xb5,0x2d,0xba,0x1b,0xb6, +0xb, 0xb8,0x30,0x12,0x6d,0x53,0x7d,0xb3,0x7e,0x70,0x2, 0xac,0x79,0x2d,0x3a,0x1b, +0x35,0xb, 0x38,0x30,0x12,0x6d,0x53,0x7d,0xc3,0x74,0x2, 0xac,0xb9,0x7d,0xd5,0x2d, +0xda,0xb, 0xd8,0x30,0x12,0x6d,0x53,0x7d,0xd3,0x6d,0xff,0x7d,0xef,0xa, 0x79,0x6d, +0x66,0x7f,0x3, 0x1b,0xc, 0x7d,0x3c,0x1a,0x26,0x1a,0x24,0x12,0x48,0x24,0x7f,0x41, +0x7f,0x3, 0x1b,0xd, 0x7d,0x3b,0x1a,0x26,0x1a,0x24,0x12,0x48,0x24,0x2f,0x41,0x7d, +0x3d,0x1a,0x26,0x1a,0x24,0xa, 0x19,0x6d,0x0, 0x12,0x48,0x24,0x2f,0x41,0xa, 0x19, +0x6d,0x0, 0xb, 0xc, 0x7d,0x3e,0x1a,0x26,0x1a,0x24,0x12,0x48,0x24,0x2f,0x41,0xa, +0x19,0x6d,0x0, 0xb, 0xd, 0x7d,0x3f,0x1a,0x26,0x1a,0x24,0x12,0x48,0x24,0x2f,0x14, +0x7d,0x1c,0x1a,0x2, 0x1a,0x0, 0x7d,0x5b,0x1a,0x4a,0x1a,0x48,0x2f,0x20,0x7d,0x1d, +0x1a,0x2, 0x1a,0x0, 0x2f,0x2, 0x7d,0x5e,0x1a,0x4a,0x1a,0x48,0x2f,0x20,0x7d,0x1f, +0x1a,0x2, 0x1a,0x0, 0x2f,0x2, 0x74,0x6, 0x2f,0x11,0x14,0x78,0xfb,0x12,0x48,0x40, +0x2e,0x34,0x0, 0x20,0xda,0x3b,0x22,0xca,0x3b,0x7e,0xf3,0xf, 0x1b,0x7e,0x64,0xe, +0xdf,0xe5,0x51,0xb4,0x1, 0x21,0x7e,0xb3,0xf, 0x1c,0xb4,0x1, 0x1a,0x7e,0xb3,0xd, +0xf7,0xb4,0x1, 0x13,0x7e,0x73,0xd, 0xf9,0xbe,0x70,0x15,0x40,0xa, 0x74,0x1e,0x7a, +0xb3,0xf, 0x26,0x74,0x14,0x80,0x8, 0x74,0x5, 0x7a,0xb3,0xf, 0x26,0x74,0x4, 0x7a, +0xb3,0xf, 0x27,0x4c,0xff,0x78,0xd, 0x75,0x1a,0x0, 0x7e,0xb3,0xf, 0x26,0x12,0x6e, +0xa1,0x2, 0x38,0x47,0xe5,0x51,0xb4,0x1, 0x1b,0x7e,0xb3,0xf, 0x1c,0xb4,0x1, 0x14, +0x7e,0xb3,0xd, 0xf7,0xb4,0x1, 0xd, 0x7e,0x73,0xd, 0xf9,0xbe,0x70,0x15,0x40,0x4, +0x74,0x1, 0x80,0x1, 0xe4,0xb4,0x1, 0x9, 0xe5,0x1a,0x70,0x5, 0x75,0x17,0x1e,0xf5, +0x18,0xe5,0x51,0xb4,0x1, 0x1b,0x7e,0xb3,0xf, 0x1c,0xb4,0x1, 0x14,0x7e,0xb3,0xd, +0xf7,0xb4,0x1, 0xd, 0x7e,0x73,0xd, 0xf9,0xbe,0x70,0x15,0x40,0x4, 0x74,0x1, 0x80, +0x1, 0xe4,0xf5,0x1a,0x6c,0xee,0x7e,0x70,0x7, 0xac,0x7e,0x9, 0xb3,0xe, 0x9d,0xf5, +0x21,0xbe,0xb0,0xff,0x78,0x3, 0x2, 0x38,0x3d,0xe5,0x21,0xa, 0x2b,0x2d,0x26,0x7e, +0x29,0xb0,0xb4,0x2, 0x2, 0x80,0x3, 0x2, 0x38,0x3d,0x49,0x33,0xe, 0x99,0x7e,0xa1, +0x21,0x74,0x4, 0xa4,0x49,0x25,0x13,0x74,0x12,0x6d,0xb0,0x7a,0x35,0x22,0x74,0x7, +0xac,0xbe,0x49,0x35,0xe, 0x9b,0x7e,0xa1,0x21,0x74,0x4, 0xa4,0x49,0x25,0x13,0x76, +0x12,0x6d,0xb0,0x7a,0x35,0x24,0xe5,0x17,0xa, 0x3b,0xbe,0x35,0x22,0x28,0x56,0xbe, +0x35,0x24,0x28,0x51,0x7e,0xa1,0x21,0x74,0x4, 0xa4,0x49,0x35,0x13,0x74,0x74,0x7, +0xac,0xbe,0x59,0x35,0xe, 0x99,0x7e,0xa1,0x21,0x74,0x4, 0xa4,0x49,0x35,0x13,0x76, +0x74,0x7, 0xac,0xbe,0x59,0x35,0xe, 0x9b,0xe5,0x21,0xa, 0x3b,0x2d,0x36,0x7e,0x39, +0xb0,0xb4,0x2, 0x7, 0xbe,0xf0,0x0, 0x28,0x2, 0x1b,0xf0,0x4c,0xff,0x78,0x4e,0x5, +0x18,0x7e,0x73,0xf, 0x27,0xbe,0x71,0x17,0x28,0x43,0xe5,0x18,0xbe,0xb0,0x32,0x40, +0x3c,0x5, 0x17,0x80,0x35,0x7e,0x90,0x7, 0xac,0x9e,0x49,0x34,0xe, 0x99,0x7e,0xa1, +0x21,0x74,0x4, 0xa4,0x59,0x35,0x13,0x74,0x49,0x34,0xe, 0x9b,0x59,0x35,0x13,0x76, +0x7e,0x73,0xf, 0x26,0xbe,0x71,0x17,0x78,0x8, 0x7e,0xb3,0xf, 0x27,0xf5,0x17,0x80, +0x9, 0xe5,0x17,0xbe,0xb0,0x1, 0x28,0x2, 0x15,0x17,0x75,0x18,0x0, 0xb, 0xe0,0xbe, +0xe0,0xa, 0x68,0x3, 0x2, 0x37,0x56,0xda,0x3b,0x22,0xca,0x3b,0x6c,0xff,0x7e,0xb3, +0x10,0x2b,0xf5,0x24,0x7e,0xe3,0x10,0x2c,0x1b,0xe0,0x6c,0xdd,0x7e,0x70,0x30,0xac, +0x7d,0x2e,0x37,0xf, 0xda,0x49,0x33,0x0, 0x2e,0x74,0x2, 0xac,0xbd,0x59,0x35,0x13, +0xb6,0xb, 0xd0,0xbe,0xd0,0xd, 0x78,0xe4,0x7e,0xb3,0xf, 0xd3,0xb4,0x1, 0x2, 0x80, +0x3, 0x2, 0x39,0xc1,0x6c,0xcc,0x2, 0x39,0xb2,0x7e,0x70,0x2, 0xac,0x7c,0x9, 0xb3, +0xd, 0x18,0xf5,0x22,0x9, 0xb3,0xd, 0x19,0xf5,0x23,0x75,0x21,0x3, 0x7e,0x73,0xe, +0x12,0xbe,0x70,0x20,0x50,0xa, 0x7e,0xb3,0xd, 0xf7,0xb4,0x1, 0x3, 0x75,0x21,0x1, +0x7e,0xb3,0xd, 0xfd,0xb4,0x1, 0x3, 0x75,0x21,0x2, 0x74,0x8, 0x7a,0xb3,0xf, 0x53, +0xe5,0x22,0xbe,0xb0,0x0, 0x28,0x21,0xe5,0x24,0xa, 0x2b,0x1b,0x24,0xe5,0x22,0xa, +0x3b,0xbd,0x32,0x58,0x13,0xe5,0x23,0xbe,0xb0,0x0, 0x28,0xc, 0xa, 0x2e,0x1b,0x24, +0xe5,0x23,0xa, 0x3b,0xbd,0x32,0x48,0x3, 0x75,0x21,0x2, 0x75,0x25,0x0, 0x80,0x45, +0xe5,0x25,0xbc,0xbc,0x68,0x3d,0x7e,0x71,0x25,0x74,0x2, 0xac,0x7b,0x9, 0xa3,0xd, +0x18,0x7a,0xa1,0x26,0x9, 0xb3,0xd, 0x19,0xf5,0x27,0xa, 0x2a,0xe5,0x22,0xa, 0x3b, +0x9d,0x32,0x12,0x6d,0xd0,0xbe,0x34,0x0, 0x3, 0x18,0x18,0xe5,0x27,0xa, 0x2b,0xe5, +0x23,0xa, 0x3b,0x9d,0x32,0x12,0x6d,0xd0,0xbe,0x34,0x0, 0x3, 0x18,0x5, 0x75,0x21, +0x1, 0x80,0xb, 0x5, 0x25,0x7e,0x73,0xd, 0xf7,0xbe,0x71,0x25,0x38,0xb2,0xe5,0x51, +0xb4,0x1, 0x20,0x7e,0xb3,0xf, 0x1c,0xb4,0x1, 0x19,0x7e,0xb3,0xd, 0xf7,0xb4,0x1, +0x12,0x7e,0x73,0xd, 0xf9,0xbe,0x70,0x15,0x40,0x9, 0x75,0x21,0x3, 0x74,0x1e,0x7a, +0xb3,0xf, 0x53,0xe5,0x23,0xbe,0xb0,0x17,0x50,0x1a,0x6c,0xdd,0x6d,0x33,0x7e,0x50, +0x30,0xac,0x5d,0x2e,0x27,0xf, 0xda,0x59,0x32,0x0, 0x2e,0xb, 0xd0,0xbe,0xd0,0xd, +0x78,0xec,0x80,0x3, 0x75,0x21,0x0, 0xe5,0x21,0x7c,0x7c,0x7c,0x6f,0x12,0x11,0xa0, +0x6c,0xdd,0x74,0x2, 0xac,0xbd,0x49,0x35,0x13,0xb6,0x7e,0x50,0x30,0xac,0x5d,0x2e, +0x27,0xf, 0xda,0x59,0x32,0x0, 0x2e,0xb, 0xd0,0xbe,0xd0,0xd, 0x78,0xe4,0xb, 0xf0, +0xb, 0xc0,0x7e,0x73,0xd, 0xf7,0xbc,0x7c,0x28,0x3, 0x2, 0x38,0x89,0x7a,0xf3,0xd, +0xf7,0xda,0x3b,0x22,0xca,0x3b,0x7d,0x73,0x7e,0xb3,0xd, 0xf7,0xf5,0x4c,0x7e,0x37, +0xf, 0xda,0x7a,0x35,0x4f,0x75,0x42,0x0, 0x7e,0xc0,0x1, 0x80,0x19,0xe5,0x42,0xa, +0x3b,0x2d,0x37,0x7e,0x39,0x60,0xa, 0x2c,0x2d,0x27,0x7e,0x29,0x70,0xbc,0x76,0x40, +0x3, 0x7a,0xc1,0x42,0xb, 0xc0,0xe5,0x4c,0xbc,0xbc,0x38,0xe1,0xe5,0x42,0xa, 0x3b, +0x2d,0x37,0x7e,0x39,0xb0,0xf5,0x42,0x75,0x44,0x0, 0x7e,0xc0,0x1, 0x2, 0x3b,0xe, +0x75,0x4b,0x0, 0x6d,0x33,0x7a,0x35,0x4d,0x6c,0xdd,0x75,0x45,0x0, 0x75,0x46,0x0, +0x75,0x43,0x0, 0x2, 0x3a,0xc3,0x7e,0x71,0x43,0x74,0x2, 0xac,0x7b,0x9, 0xb3,0xd, +0x18,0xf5,0x47,0x9, 0xb3,0xd, 0x19,0xf5,0x48,0xe5,0x43,0xa, 0x3b,0x2d,0x37,0x7e, +0x39,0x70,0xbc,0x7c,0x78,0x7b,0xb, 0xd0,0xe5,0x47,0x25,0x45,0xf5,0x45,0xe5,0x48, +0x25,0x46,0xf5,0x46,0x7e,0x51,0x47,0xac,0x5d,0xe5,0x45,0xa, 0x3b,0x9d,0x32,0x12, +0x6d,0xd0,0x7c,0xb7,0xf5,0x49,0x7e,0x51,0x48,0xac,0x5d,0xe5,0x46,0xa, 0x3b,0x9d, +0x32,0x12,0x6d,0xd0,0x7c,0xb7,0xf5,0x4a,0x7e,0x51,0x4b,0xac,0x5d,0xe5,0x49,0xa, +0x3b,0xbd,0x32,0x8, 0x9, 0xa, 0x2d,0x12,0x47,0xf2,0x7c,0xb7,0xf5,0x4b,0x7e,0x51, +0x4b,0xac,0x5d,0xe5,0x4a,0xa, 0x3b,0xbd,0x32,0x8, 0x9, 0xa, 0x2d,0x12,0x47,0xf2, +0x7c,0xb7,0xf5,0x4b,0x7e,0x71,0x47,0x74,0x18,0xac,0x7b,0xe5,0x48,0xa, 0x2b,0x2d, +0x32,0x3e,0x34,0x2e,0x35,0x4f,0xb, 0x38,0x30,0xbe,0x35,0x4d,0x8, 0x3, 0x7a,0x35, +0x4d,0x5, 0x43,0xe5,0x4c,0xbe,0xb1,0x43,0x28,0x3, 0x2, 0x3a,0x26,0xbe,0xd0,0x0, +0x28,0x3a,0xe5,0x45,0x8c,0xbd,0xf5,0x45,0xe5,0x46,0x8c,0xbd,0xf5,0x46,0x7e,0xa1, +0x45,0x7e,0x71,0x44,0x74,0x2, 0xac,0x7b,0x19,0xa3,0x15,0x2b,0xe5,0x46,0x19,0xb3, +0x15,0x2c,0x7e,0x25,0x4d,0x7e,0x71,0x45,0x74,0x18,0xac,0x7b,0xe5,0x46,0xa, 0x1b, +0x2d,0x31,0x3e,0x34,0x2e,0x35,0x4f,0x1b,0x38,0x20,0x5, 0x44,0xb, 0xc0,0xe5,0x42, +0xbc,0xbc,0x40,0x3, 0x2, 0x3a,0x10,0xe5,0x44,0xda,0x3b,0x22,0x74,0xd, 0x7a,0xb3, +0x10,0x2b,0x74,0x18,0x7a,0xb3,0x10,0x2c,0x74,0x4, 0x7a,0xb3,0x10,0x2d,0xe4,0x7a, +0xb3,0x10,0x2e,0x7e,0x34,0x11,0x9b,0x7a,0x37,0x10,0x2f,0x7e,0x34,0x11,0x97,0x7a, +0x37,0x10,0x31,0x7e,0x34,0xf, 0xc5,0x7a,0x37,0x10,0x33,0x7e,0x34,0xf, 0xad,0x7a, +0x37,0x10,0x35,0x74,0x15,0x7a,0xb3,0x10,0x37,0x74,0x17,0x7a,0xb3,0x10,0x38,0x74, +0x4, 0x7a,0xb3,0x10,0x3a,0xe4,0x7a,0xb3,0x10,0x3b,0x7a,0xb3,0x10,0x3c,0x7a,0xb3, +0x10,0x3d,0x74,0x2, 0x7a,0xb3,0x10,0x3e,0x74,0x45,0x7a,0xb3,0x10,0x3f,0x74,0x71, +0x7a,0xb3,0x10,0x40,0x74,0x3, 0x7a,0xb3,0x10,0x41,0x7e,0x34,0x1f,0xff,0x7a,0x37, +0x10,0x42,0x6d,0x33,0x7a,0x37,0x10,0x44,0x7e,0x34,0xd, 0xfe,0x7a,0x37,0x10,0x46, +0x7e,0x34,0xf, 0xdc,0x7a,0x37,0x10,0x48,0x74,0x20,0x7a,0xb3,0x10,0x4a,0x74,0xa, +0x7a,0xb3,0x10,0x4b,0xe4,0x7a,0xb3,0x10,0x4c,0x7a,0xb3,0x10,0x4d,0x7a,0xb3,0x10, +0x4e,0x74,0x2, 0x7a,0xb3,0x10,0x4f,0x7e,0x34,0x0, 0xf4,0x7a,0x37,0x10,0x52,0x7e, +0x34,0x3f,0xe0,0x7a,0x37,0x10,0x50,0x7e,0x34,0x29,0x28,0x7a,0x37,0x10,0x54,0x7e, +0x34,0x10,0x91,0x7a,0x37,0x10,0x62,0x7e,0x34,0x0, 0x3d,0x7a,0x37,0x10,0x64,0x7e, +0x34,0x0, 0x22,0x7a,0x37,0x10,0x66,0x7e,0x34,0x4c,0x0, 0x7a,0x37,0x10,0x56,0x7e, +0x34,0x3, 0xcf,0x7a,0x37,0x10,0x58,0x7e,0x34,0x7, 0x9a,0x7a,0x37,0x10,0x5a,0x7e, +0x34,0x5, 0x84,0x7a,0x37,0x10,0x5c,0x7e,0x34,0x0, 0x9, 0x7a,0x37,0x10,0x5e,0x7e, +0x34,0x0, 0xf, 0x7a,0x37,0x10,0x60,0x7e,0x34,0x0, 0x5d,0x7a,0x37,0x10,0x68,0xe4, +0x7a,0xb3,0x10,0x6a,0x74,0x7, 0x7a,0xb3,0x10,0x6b,0x7e,0x34,0x10,0xff,0x7a,0x37, +0x10,0x6c,0x7e,0x34,0xf, 0xa0,0x7a,0x37,0x10,0x6e,0x7e,0x34,0xf, 0x2e,0x7a,0x37, +0x10,0x70,0x12,0x42,0x8d,0x7e,0x34,0x11,0xe9,0x7a,0x37,0x10,0x72,0x7e,0x34,0xf, +0x88,0x7a,0x37,0x10,0x74,0x7e,0x34,0x11,0x17,0x7a,0x37,0x10,0x76,0x2, 0x6c,0x58, +0xca,0x69,0xca,0xf8,0x7d,0xb1,0x7d,0xf2,0x7d,0xe3,0x9f,0x0, 0x7f,0x60,0x7f,0x40, +0x6d,0x66,0x7a,0x67,0x13,0xb6,0x7f,0x10,0x7d,0xa6,0x75,0x21,0x0, 0x6c,0xaa,0x80, +0x4b,0x7e,0x30,0x2, 0xac,0x3a,0x7d,0xa1,0x2d,0xae,0xb, 0xa8,0xa0,0x7c,0xba,0x20, +0xe0,0x1e,0xbd,0xab,0x8, 0x4, 0x7d,0xab,0x80,0xa, 0x6d,0x11,0x9d,0x1b,0xbd,0x1a, +0x8, 0x2, 0x7d,0xa1,0x7d,0x1a,0x1a,0x2, 0x1a,0x0, 0x2f,0x60,0x5, 0x21,0x80,0x1a, +0xbd,0xab,0x8, 0x4, 0x7d,0xab,0x80,0xa, 0x6d,0x11,0x9d,0x1b,0xbd,0x1a,0x8, 0x2, +0x7d,0xa1,0x7d,0x1a,0x1a,0x2, 0x1a,0x0, 0x2f,0x40,0xb, 0xa0,0x7e,0xf3,0x10,0x2c, +0xbc,0xfa,0x38,0xad,0xe5,0x21,0xa, 0x1b,0x6d,0x0, 0x7f,0x16,0x12,0x48,0x91,0x7a, +0x37,0x13,0xb6,0xe5,0x21,0xa, 0x3b,0x6d,0x22,0xa, 0x1f,0x6d,0x0, 0x9f,0x1, 0x7f, +0x14,0x12,0x48,0x91,0x6c,0xaa,0x80,0x2f,0x7c,0xba,0x7e,0x30,0x2, 0x7c,0x9a,0x20, +0xe0,0xf, 0xac,0x93,0x7d,0x14,0x2d,0x1e,0xb, 0x18,0x0, 0x9e,0x7, 0x13,0xb6,0x80, +0xd, 0xac,0x93,0x7d,0x14,0x2d,0x1e,0xb, 0x18,0x0, 0x7d,0x13,0x9d,0x1, 0x7d,0x14, +0x2d,0x1f,0x1b,0x18,0x0, 0xb, 0xa0,0x7e,0xb3,0x10,0x2c,0xbc,0xba,0x38,0xc9,0x9f, +0x66,0x7a,0x67,0x13,0xb6,0x6c,0xaa,0x80,0x29,0x7e,0x70,0x2, 0xac,0x7a,0x7d,0xa3, +0x2d,0xae,0x49,0xaa,0x0, 0x30,0xbd,0xab,0x8, 0x4, 0x7d,0xab,0x80,0xa, 0x6d,0x33, +0x9d,0x3b,0xbd,0x3a,0x8, 0x2, 0x7d,0xa3,0x7d,0x3a,0x1a,0x26,0x1a,0x24,0x2f,0x61, +0xb, 0xa0,0x7e,0x63,0x10,0x2b,0xbc,0x6a,0x38,0xcf,0xa, 0x16,0x6d,0x0, 0x7f,0x16, +0x12,0x48,0x91,0x7a,0x37,0x13,0xb6,0x6c,0xaa,0x80,0x1d,0x7e,0x70,0x2, 0x7c,0x5a, +0xac,0x57,0x7d,0x32,0x2d,0x3e,0x49,0x43,0x0, 0x30,0x9e,0x47,0x13,0xb6,0x7d,0x32, +0x2d,0x3f,0x59,0x43,0x0, 0x30,0xb, 0xa0,0x7e,0xb3,0x10,0x2b,0xbc,0xba,0x38,0xdb, +0xda,0xf8,0xda,0x69,0x22,0x7e,0x50,0x1, 0xe4,0x7a,0xb3,0xe, 0xb, 0x74,0x1, 0x7a, +0xb3,0xe, 0xc, 0x7e,0xa3,0xd, 0xf7,0x4c,0xaa,0x78,0xb, 0x74,0x1, 0x7a,0xb3,0x16, +0xba,0xe4,0x7a,0xb3,0x16,0xbb,0xbe,0xa0,0x0, 0x28,0x5, 0xe4,0x7a,0xb3,0xe, 0xc, +0x7e,0x43,0xd, 0xfc,0xbe,0x40,0x0, 0x28,0x5, 0xe4,0x7a,0xb3,0xe, 0xc, 0x7e,0x43, +0xd, 0x17,0xbe,0x40,0x0, 0x28,0x6b,0x7e,0xb3,0x16,0xb4,0x70,0x65,0x7e,0xb3,0x16, +0xb6,0x70,0x5f,0x74,0x1, 0x7a,0xb3,0xe, 0xc, 0x6d,0x33,0x6c,0x44,0x7e,0x30,0x2, +0xac,0x34,0x2e,0x17,0xf, 0xd6,0xb, 0x18,0x10,0xbd,0x13,0x58,0x2, 0x7d,0x31,0xb, +0x40,0xa5,0xbc,0x25,0xe8,0xbe,0x34,0xf8,0xf8,0x58,0x5, 0x7e,0x50,0x5, 0x80,0x1f, +0xbe,0x34,0xfb,0x50,0x58,0x5, 0x7e,0x50,0x4, 0x80,0x14,0xbe,0x34,0xfc,0xe0,0x58, +0x5, 0x7e,0x50,0x3, 0x80,0x9, 0xbe,0x34,0xfe,0xd4,0x58,0x3, 0x7e,0x50,0x2, 0xbe, +0x34,0xfc,0x18,0x58,0x3c,0x74,0x1, 0x7a,0xb3,0xe, 0xb, 0xe4,0x7a,0xb3,0x10,0x3d, +0x80,0x2f,0x7e,0x43,0xd, 0x16,0xa5,0xbc,0x0, 0x1d,0xbe,0xa0,0x0, 0x28,0x18,0x7e, +0xb3,0x16,0xb4,0x70,0x12,0x7e,0xb3,0x16,0xb6,0x70,0xc, 0xbe,0x50,0x3, 0x50,0x3, +0x7e,0x50,0x3, 0x74,0x1, 0x80,0x6, 0xbe,0x40,0x0, 0x28,0x5, 0xe4,0x7a,0xb3,0xe, +0xc, 0x7e,0x43,0x16,0xba,0xbc,0x45,0x50,0x4, 0x7a,0x53,0x16,0xba,0xbe,0x50,0x2, +0x28,0x6, 0x74,0x1, 0x7a,0xb3,0x16,0xbb,0xbe,0xa0,0x0, 0x28,0x1b,0x7e,0xb3,0xd, +0x16,0x70,0x15,0x7e,0xb3,0x16,0xb4,0x70,0xf, 0x7e,0xb3,0x16,0xb6,0x70,0x9, 0xe4, +0x7a,0xb3,0xf, 0xd3,0x7a,0xb3,0xf, 0xd2,0x7e,0xb3,0x16,0xb6,0xb4,0x1, 0x18,0xe4, +0x7a,0xb3,0x16,0xb6,0x74,0x1, 0x7a,0xb3,0xe, 0xb, 0xe4,0x7a,0xb3,0x10,0x3d,0x7a, +0xb3,0xf, 0xd3,0x7a,0xb3,0xf, 0xd2,0x7e,0xa3,0x16,0xba,0x74,0x2, 0xa4,0x7a,0x57, +0xe, 0x5, 0x7a,0x57,0xe, 0x7, 0x22,0xca,0x79,0x7c,0xfb,0xe5,0x55,0xbe,0xb0,0x1, +0x68,0xf9,0xe5,0x55,0xb4,0x2, 0x2, 0x80,0x3, 0x2, 0x3f,0xe7,0xa9,0xd7,0xea,0x7e, +0x37,0xf, 0xda,0x7e,0x27,0xf, 0xd8,0x7e,0x14,0x18,0x0, 0x12,0x67,0x74,0x12,0x0, +0x6e,0x50,0x27,0xa9,0xc7,0xea,0x7e,0xe3,0x10,0x4d,0xe4,0x7a,0xb3,0x10,0x4d,0x7e, +0x24,0x5, 0xe0,0x7d,0x32,0x7e,0x14,0x18,0x0, 0x12,0x67,0x74,0x7a,0xe3,0x10,0x4d, +0x7e,0xb3,0x10,0xa5,0xb4,0x1, 0x3, 0x12,0x6a,0xd1,0x74,0x1, 0x7a,0xb3,0xf, 0xd3, +0x7e,0x34,0x9, 0x2e,0x7e,0x24,0x8, 0xe4,0x7e,0x14,0xa, 0x18,0x12,0x66,0x59,0x7e, +0x37,0xf, 0xd6,0x7e,0x27,0xf, 0xd4,0x7e,0x14,0xa, 0x62,0x12,0x66,0x59,0x6c,0xaa, +0x80,0x36,0x7e,0x50,0x2, 0xac,0x5a,0x49,0x32,0xa, 0x92,0xbe,0x34,0x13,0x88,0x40, +0xc, 0xbe,0x34,0x75,0x30,0x28,0x1a,0xbe,0x34,0x7e,0xf4,0x50,0x14,0x7e,0xb3,0x16, +0xb7,0x4, 0x7a,0xb3,0x16,0xb7,0xb4,0xa, 0xd, 0x74,0x1, 0x7a,0xb3,0x16,0xb6,0x80, +0xf, 0xe4,0x7a,0xb3,0x16,0xb7,0xb, 0xa0,0x7e,0xb3,0x10,0x2b,0xbc,0xba,0x38,0xc2, +0x7e,0xa3,0x16,0xb6,0xbe,0xa0,0x1, 0x78,0x7, 0x7e,0xb3,0x16,0xb5,0x4, 0x80,0x1, +0xe4,0x7a,0xb3,0x16,0xb5,0xbe,0xb0,0x0, 0x28,0x6, 0x74,0x1, 0x7a,0xb3,0x16,0xb4, +0x4c,0xaa,0x78,0xd, 0xe4,0x7a,0xb3,0x16,0xb5,0x7a,0xb3,0x16,0xb4,0x7a,0xb3,0x16, +0xb7,0x74,0x1, 0x7a,0xb3,0xf, 0xd2,0x12,0x66,0x93,0x12,0x6b,0x7c,0x7e,0xb3,0x11, +0xc, 0xb4,0x1, 0x31,0xbe,0xf0,0x1, 0x78,0x2c,0x7e,0xb3,0xd, 0xfc,0x70,0x26,0x12, +0x46,0xe9,0x7e,0xb3,0xd, 0xf7,0x70,0x19,0x7e,0x73,0x11,0x95,0xa, 0x37,0x9, 0x73, +0xf, 0x29,0x7a,0x73,0x10,0x4a,0xe4,0x7a,0xb3,0x10,0x4e,0x7a,0xb3,0x11,0xc, 0x80, +0x6, 0x6c,0xff,0x80,0x2, 0x6c,0xff,0x12,0x65,0xe4,0x12,0x6b,0xde,0x7c,0xbf,0xda, +0x79,0x22,0xca,0x3b,0x75,0x21,0x0, 0x7e,0x34,0xb, 0x79,0x7e,0x24,0x0, 0xd, 0xe4, +0x12,0x6d,0xe0,0xe4,0x7a,0xb3,0xd, 0x16,0x7a,0xb3,0xd, 0x17,0x7e,0xb3,0xf, 0xd2, +0xb4,0x1, 0x2, 0x80,0x3, 0x2, 0x41,0x68,0x7e,0x34,0x13,0xb6,0x7e,0x24,0x0, 0xa, +0x74,0xff,0x12,0x6d,0xe0,0x7e,0x34,0x13,0xc0,0x7e,0x24,0x0, 0xa, 0x74,0xff,0x12, +0x6d,0xe0,0x7e,0x37,0xf, 0xd6,0x7e,0xb3,0x10,0x2c,0x7e,0x27,0xf, 0x4c,0x7e,0x14, +0x13,0xb6,0x6c,0x11,0x12,0x4f,0x1, 0x7c,0xeb,0x7e,0x37,0xf, 0xd6,0x2e,0x34,0x0, +0x30,0x7e,0xb3,0x10,0x2b,0x7e,0x27,0xf, 0x4a,0x7e,0x14,0x13,0xc0,0x12,0x4f,0x1, +0x7c,0xdb,0x6c,0xff,0x6c,0xaa,0x80,0x51,0x6c,0xcc,0x80,0x47,0x7c,0xbf,0xc4,0x23, +0x54,0x1f,0x7c,0x6b,0x7a,0x61,0x21,0xa, 0x2a,0x9, 0x72,0x13,0xc0,0x7e,0x50,0x2, +0xac,0x5f,0x19,0x72,0xa, 0xb1,0xa, 0x1c,0x9, 0x71,0x13,0xb6,0x19,0x72,0xa, 0xb2, +0x7c,0xbf,0x54,0x7, 0x7e,0x44,0x0, 0x1, 0x60,0x5, 0x3e,0x44,0x14,0x78,0xfb,0x7c, +0x79,0xa, 0x46,0x2e,0x44,0xb, 0x79,0x7e,0x49,0xb0,0x4c,0xb7,0x7a,0x49,0xb0,0xb, +0xf0,0xb, 0xc0,0xbc,0xec,0x38,0xb5,0xb, 0xa0,0xbc,0xda,0x38,0xab,0x7a,0xf3,0xd, +0x16,0x7e,0x34,0x13,0xb6,0x7e,0x24,0x0, 0xa, 0x74,0xff,0x12,0x6d,0xe0,0x7e,0x34, +0x13,0xc0,0x7e,0x24,0x0, 0xa, 0x74,0xff,0x12,0x6d,0xe0,0x7e,0x37,0xf, 0xd6,0x7e, +0xb3,0x10,0x2c,0x7e,0x27,0xf, 0x4e,0x7e,0x14,0x13,0xb6,0x7e,0x10,0x1, 0x12,0x4f, +0x1, 0x7c,0xeb,0x7e,0x37,0xf, 0xd6,0x2e,0x34,0x0, 0x30,0x7e,0xb3,0x10,0x2b,0x7e, +0x27,0xf, 0x4e,0x7e,0x14,0x13,0xc0,0x12,0x4f,0x1, 0x7c,0xdb,0x6c,0xff,0x6c,0xaa, +0x80,0xe, 0x6c,0xcc,0x80,0x4, 0xb, 0xf0,0xb, 0xc0,0xbc,0xec,0x38,0xf8,0xb, 0xa0, +0xbc,0xda,0x38,0xee,0x7a,0xf3,0xd, 0x17,0xda,0x3b,0x22,0xca,0xf8,0x6d,0x33,0x7a, +0x37,0x10,0x1, 0x7e,0x34,0xd, 0xac,0x7a,0x37,0xa, 0xaf,0x74,0x1, 0x7a,0xb3,0x10, +0x3c,0x7a,0xb3,0x10,0x4d,0x7a,0xb3,0x10,0xa5,0x7e,0xb3,0xf, 0x26,0x12,0x6e,0xa1, +0x12,0x63,0xde,0x7e,0xb3,0x10,0xa5,0xb4,0x1, 0x2, 0x80,0x3, 0x2, 0x42,0x84,0x6d, +0x33,0x7a,0x37,0x10,0x1, 0x7e,0x34,0x0, 0x64,0x7a,0x37,0xa, 0xaf,0xe4,0x7a,0xb3, +0x0, 0xff,0x12,0x6c,0x3a,0x12,0x45,0xdf,0x12,0x6a,0xf4,0x6c,0xff,0x1a,0x2f,0x7e, +0x34,0x0, 0x18,0xad,0x32,0x3e,0x34,0x2e,0x37,0xf, 0xda,0x2e,0x34,0x0, 0x30,0x1b, +0x35,0xb, 0x38,0x30,0x1a,0x2f,0x3e,0x24,0x59,0x32,0x13,0x9c,0xb, 0xf0,0xbe,0xf0, +0xd, 0x78,0xda,0x12,0x6b,0x3a,0x12,0x6c,0x90,0x12,0x68,0xf7,0x6c,0xff,0x1a,0x3f, +0x3e,0x34,0x49,0x23,0x13,0x9c,0x1a,0xf, 0x7e,0x14,0x0, 0x18,0xad,0x10,0x7d,0x31, +0x3e,0x34,0x2e,0x37,0xf, 0xda,0x2e,0x34,0x0, 0x30,0x1b,0x35,0x1b,0x38,0x20,0xb, +0xf0,0xbe,0xf0,0xd, 0x78,0xd8,0x12,0x69,0xca,0x12,0x48,0xe6,0x7e,0xb3,0xf, 0xd3, +0x70,0x9, 0x7e,0xb3,0xf, 0xd2,0x70,0x3, 0x2, 0x41,0x93,0x12,0x1f,0x7b,0x12,0x33, +0x70,0x7a,0xb3,0xf, 0x25,0x12,0x6d,0xff,0x12,0x6c,0xf6,0x70,0x3, 0x2, 0x41,0x93, +0x12,0x44,0xc9,0x7e,0x37,0xf, 0xda,0x12,0x8, 0x6, 0x12,0x6e,0xa7,0x12,0x4e,0x57, +0x12,0x0, 0x6e,0x50,0x3, 0x12,0x2f,0xc6,0x7e,0xb3,0x11,0x15,0xb4,0x1, 0x4, 0xe4, +0x12,0x6e,0x92,0x12,0x68,0xca,0x12,0x66,0xcc,0x12,0x19,0x6d,0x12,0x6, 0x11,0x12, +0x6e,0xc6,0x12,0x65,0x2c,0x12,0x36,0xb7,0x12,0x55,0xe4,0x12,0x1c,0x95,0x12,0x49, +0xd0,0x2, 0x41,0x93,0x12,0x0, 0x1e,0x12,0x6e,0x1b,0xda,0xf8,0x22,0xca,0x79,0x7e, +0x34,0x0, 0x60,0x12,0x69,0x78,0x7c,0xab,0x7a,0xa1,0x6a,0xbe,0xa0,0x8, 0x40,0x3, +0x2, 0x43,0xab,0xbe,0xa0,0x4, 0x50,0x5, 0x7e,0xe0,0x6, 0x80,0x3, 0x7e,0xe0,0x5, +0x7c,0xba,0xbe,0xb0,0x8, 0x50,0x48,0x7e,0xa0,0x3, 0xa4,0x90,0x42,0xbf,0x73,0x2, +0x42,0xd7,0x2, 0x42,0xdc,0x2, 0x42,0xe1,0x2, 0x42,0xe6,0x2, 0x42,0xeb,0x2, 0x42, +0xf0,0x2, 0x42,0xf5,0x2, 0x42,0xfa,0x7e,0xf0,0x5e,0x80,0x26,0x7e,0xf0,0x5f,0x80, +0x21,0x7e,0xf0,0x61,0x80,0x1c,0x7e,0xf0,0x63,0x80,0x17,0x7e,0xf0,0x65,0x80,0x12, +0x7e,0xf0,0x67,0x80,0xd, 0x7e,0xf0,0x69,0x80,0x8, 0x7e,0xf0,0x6a,0x80,0x3, 0x7e, +0xf0,0x64,0x6c,0xaa,0xa, 0x3a,0x9, 0xb3,0x11,0xe9,0xa, 0xb, 0x7e,0xb3,0x10,0xff, +0xa, 0x1b,0x2d,0x1, 0x7c,0xb1,0x7c,0x1a,0x2e,0x10,0x21,0xa5,0xf7,0x7c,0x9b,0xa, +0x9, 0x5e,0x4, 0x0, 0x1, 0xbe,0x4, 0x0, 0x1, 0x78,0x1c,0x7c,0x79,0xac,0x7f,0x7e, +0x50,0x3, 0xac,0x5f,0xe, 0x24,0xe, 0x24,0x2d,0x32,0x7c,0xba,0x3e,0xb0,0x24,0x25, +0xa, 0xb, 0x1b,0x8, 0x30,0x80,0xd, 0xac,0x9f,0x7c,0xba,0x3e,0xb0,0x24,0x25,0xa, +0xb, 0x1b,0x8, 0x40,0x7c,0xba,0x3e,0xb0,0x24,0x25,0xa, 0xb, 0xb, 0x8, 0xf0,0x7e, +0x4, 0x0, 0xa, 0x7d,0x3f,0x8d,0x30,0x8d,0x30,0x7c,0x75,0xbe,0x70,0x0, 0x40,0x14, +0xbc,0xe7,0x28,0x10,0x7e,0xc4,0x0, 0x64,0x7d,0xdf,0x8d,0xdc,0x7d,0xd, 0x9d,0x1, +0x7c,0x61,0x80,0x17,0xbc,0xe7,0x38,0x19,0xbe,0x70,0x9, 0x38,0x14,0x7e,0xe4,0x0, +0x64,0x8d,0xfe,0x7d,0x2f,0xb, 0x24,0x9d,0x21,0x7c,0x65,0xa, 0x2a,0x19,0x62,0x11, +0xe9,0xb, 0xa0,0xbe,0xa0,0x4, 0x68,0x3, 0x2, 0x43,0x4, 0xda,0x79,0x22,0xca,0x3b, +0x7c,0xeb,0x7e,0x73,0xd, 0xf7,0xbe,0x70,0x1, 0x38,0x3, 0x2, 0x44,0xc0,0x7c,0xbe, +0x12,0xd, 0x46,0x7e,0xb3,0xd, 0xfc,0x60,0x1e,0x7e,0xb3,0x15,0x54,0x70,0x8, 0x7e, +0xb3,0x15,0x55,0x70,0x2, 0x80,0x10,0x7e,0x73,0xd, 0xf7,0xbe,0x70,0x1, 0x28,0xc, +0xe5,0x12,0xbe,0xb0,0x8, 0x28,0x5, 0x7e,0xf0,0x1, 0x80,0x1e,0x7e,0xf0,0x1, 0xbe, +0x73,0xf, 0x1c,0x78,0x6, 0x6c,0xee,0x6c,0xff,0x80,0xf, 0x9e,0x73,0x15,0x54,0xbe, +0x73,0xf, 0x1c,0x78,0x5, 0x7e,0xe0,0x2, 0x6c,0xff,0x4c,0xff,0x78,0x5, 0x7c,0xbe, +0x12,0xd, 0x46,0xe5,0x10,0x7a,0xb3,0xd, 0xf7,0x7e,0x31,0x10,0x74,0x2, 0xac,0x3b, +0x7e,0x24,0x15,0x2b,0x7e,0x34,0xd, 0x18,0x12,0x6d,0x3c,0x75,0x12,0x64,0x75,0x13, +0x64,0x6c,0xee,0x80,0x67,0x6c,0xdd,0x80,0x59,0x74,0x2, 0xac,0xbd,0x9, 0x75,0xd, +0x18,0xa, 0x27,0x74,0x2, 0xac,0xbe,0x9, 0x75,0xd, 0x18,0xa, 0x37,0x9d,0x32,0x12, +0x6d,0xd0,0x7c,0xb7,0xf5,0x21,0x74,0x2, 0xac,0xbd,0x9, 0x75,0xd, 0x19,0xa, 0x27, +0x74,0x2, 0xac,0xbe,0x9, 0x75,0xd, 0x19,0xa, 0x37,0x9d,0x32,0x12,0x6d,0xd0,0x7c, +0xc7,0xe5,0x21,0xbe,0xb0,0x0, 0x28,0xa, 0xe5,0x12,0xbe,0xb1,0x21,0x28,0x3, 0x85, +0x21,0x12,0xbe,0xc0,0x0, 0x28,0x9, 0xe5,0x13,0xbc,0xbc,0x28,0x3, 0x7a,0xc1,0x13, +0xb, 0xd0,0x7e,0x73,0xd, 0xf7,0xbc,0x7d,0x38,0x9f,0xb, 0xe0,0x7e,0x73,0xd, 0xf7, +0xbc,0x7e,0x38,0x91,0xe5,0x12,0xb4,0x64,0x3, 0x75,0x12,0x0, 0xe5,0x13,0xb4,0x64, +0x3, 0x75,0x13,0x0, 0xe5,0x13,0xbe,0xb1,0x12,0x28,0xb, 0x85,0x13,0x12,0x80,0x6, +0x75,0x12,0x64,0x75,0x13,0x64,0xda,0x3b,0x22,0x12,0x59,0x46,0x70,0x3, 0x2, 0x45, +0x50,0x75,0x6f,0x14,0x75,0x6e,0x1, 0x6c,0x11,0x80,0x2d,0x7c,0xb1,0x54,0x7, 0xa, +0x3b,0x2e,0x34,0x6e,0x8a,0x7a,0x71,0x82,0x7a,0x61,0x83,0xe4,0x93,0x7c,0xab,0x6e, +0xa0,0xff,0x7c,0xb1,0xc4,0x23,0x54,0x1f,0xa, 0x1b,0x2e,0x14,0xd, 0x68,0x7e,0x19, +0x0, 0x5c,0xa, 0x7a,0x19,0x0, 0xb, 0x10,0x7e,0x3, 0xd, 0xf7,0xbc,0x1, 0x38,0xcb, +0x6c,0x11,0x80,0x32,0x7c,0xb1,0x54,0x7, 0xa, 0x3b,0x2e,0x34,0x6e,0x8a,0x7a,0x71, +0x82,0x7a,0x61,0x83,0xe4,0x93,0x7c,0xab,0x6e,0xa0,0xff,0x7c,0xb1,0xc4,0x23,0x54, +0x1f,0xa, 0x1b,0x2e,0x14,0xb, 0x79,0x7e,0x19,0x0, 0x5c,0xa, 0x7a,0x19,0x0, 0xe4, +0x7a,0xb3,0xd, 0x16,0xb, 0x10,0x7e,0x3, 0xd, 0x16,0xbc,0x1, 0x38,0xc6,0xe4,0x22, +0xe5,0x6e,0xb4,0x1, 0x2, 0x80,0x3, 0x2, 0x45,0xdc,0x15,0x6f,0xe5,0x6f,0x60,0x79, +0x6c,0x11,0x80,0x2d,0x7c,0xb1,0x54,0x7, 0xa, 0x3b,0x2e,0x34,0x6e,0x8a,0x7a,0x71, +0x82,0x7a,0x61,0x83,0xe4,0x93,0x7c,0xab,0x6e,0xa0,0xff,0x7c,0xb1,0xc4,0x23,0x54, +0x1f,0xa, 0x1b,0x2e,0x14,0xd, 0x68,0x7e,0x19,0x0, 0x5c,0xa, 0x7a,0x19,0x0, 0xb, +0x10,0x7e,0x3, 0xd, 0xf7,0xbc,0x1, 0x38,0xcb,0x6c,0x11,0x80,0x32,0x7c,0xb1,0x54, +0x7, 0xa, 0x3b,0x2e,0x34,0x6e,0x8a,0x7a,0x71,0x82,0x7a,0x61,0x83,0xe4,0x93,0x7c, +0xab,0x6e,0xa0,0xff,0x7c,0xb1,0xc4,0x23,0x54,0x1f,0xa, 0x1b,0x2e,0x14,0xb, 0x79, +0x7e,0x19,0x0, 0x5c,0xa, 0x7a,0x19,0x0, 0xe4,0x7a,0xb3,0xd, 0x16,0xb, 0x10,0x7e, +0x3, 0xd, 0x16,0xbc,0x1, 0x38,0xc6,0xe4,0x22,0x75,0x6e,0x0, 0xe5,0x21,0x22,0xca, +0x79,0x7e,0x74,0x10,0x7e,0x7e,0xb3,0x10,0xfe,0x20,0xe0,0x3, 0x2, 0x46,0xe6,0x54, +0xfe,0x7a,0xb3,0x10,0xfe,0x9, 0x77,0x0, 0x2, 0xbe,0x73,0xf, 0x52,0x68,0x16,0x7a, +0x73,0xf, 0x52,0xa, 0x37,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x3e, +0x34,0x7a,0x37,0xf, 0x48,0x7e,0x79,0x70,0xbe,0x73,0xf, 0x5c,0x68,0xe, 0x7a,0x73, +0xf, 0x5c,0xa, 0x37,0x3e,0x34,0x3e,0x34,0x7a,0x37,0xf, 0x54,0x9, 0x77,0x0, 0x1, +0xa, 0x37,0xbe,0x37,0xf, 0x56,0x68,0x4, 0x7a,0x37,0xf, 0x56,0x7e,0x27,0xf, 0x5d, +0x1e,0x24,0x1e,0x24,0x1e,0x24,0x1e,0x24,0x9, 0x77,0x0, 0x5, 0xa, 0x37,0xbd,0x32, +0x68,0xc, 0x3e,0x34,0x3e,0x34,0x3e,0x34,0x3e,0x34,0x7a,0x37,0xf, 0x5d,0x9, 0x77, +0x0, 0x8, 0xbe,0x73,0x11,0x11,0x68,0x24,0x7a,0x73,0x11,0x11,0xbe,0x70,0xf, 0x40, +0x5, 0xe4,0x19,0xb7,0x0, 0x8, 0x9, 0x77,0x0, 0x8, 0xa, 0x37,0x2e,0x34,0x6d,0xf0, +0x7a,0x71,0x82,0x7a,0x61,0x83,0xe4,0x93,0x7a,0xb3,0x11,0x10,0x9, 0x77,0x0, 0x9, +0xbe,0x73,0x11,0x13,0x68,0x8, 0x7a,0x73,0x11,0x13,0x7a,0x73,0x11,0x12,0x9, 0x77, +0x0, 0x7, 0xbe,0x73,0x11,0x14,0x68,0x4, 0x7a,0x73,0x11,0x14,0x9, 0xb7,0x0, 0xb, +0xbe,0xb1,0x51,0x68,0x5, 0xf5,0x51,0x12,0x6c,0xde,0x9, 0x77,0x0, 0x25,0xa, 0x37, +0xbe,0x37,0x11,0xd, 0x68,0x4, 0x7a,0x37,0x11,0xd, 0x9, 0x77,0x0, 0x6, 0xbe,0x73, +0x11,0xf, 0x68,0x4, 0x7a,0x73,0x11,0xf, 0x9, 0x77,0x0, 0x24,0xbe,0x73,0x11,0x15, +0x68,0x4, 0x7a,0x73,0x11,0x15,0xda,0x79,0x22,0xca,0x79,0xe4,0x6c,0xaa,0xa, 0x4a, +0x19,0xb4,0xd, 0x68,0xb, 0xa0,0xbe,0xa0,0x3, 0x78,0xf3,0xe4,0x7a,0xb3,0xd, 0xf7, +0x7a,0xb3,0xd, 0xf8,0x7a,0xb3,0xd, 0xf9,0x7a,0xb3,0xd, 0xfa,0x7e,0xb3,0xf, 0xd3, +0xb4,0x1, 0x2, 0x80,0x3, 0x2, 0x47,0xef,0x7e,0xb3,0x10,0x2b,0xf5,0x21,0x7e,0xb3, +0x10,0x2c,0xf5,0x22,0x7e,0x37,0xf, 0x56,0x7a,0x35,0x23,0x7e,0x37,0xf, 0x58,0x7a, +0x35,0x25,0x7e,0x37,0xf, 0x5a,0x7a,0x35,0x27,0x7e,0x34,0x0, 0x14,0x7a,0x35,0x2d, +0x7e,0x37,0xf, 0xda,0x7e,0x24,0x0, 0x21,0x7e,0x14,0x0, 0x29,0x7e,0x4, 0x9, 0xc8, +0x12,0x4d,0xa8,0xe5,0x29,0x7a,0xb3,0xd, 0xf7,0xe5,0x2a,0x7a,0xb3,0xd, 0xf8,0xe5, +0x2b,0x7a,0xb3,0xd, 0xf9,0xe5,0x2c,0x7a,0xb3,0xd, 0xfa,0x6c,0xaa,0x80,0x6c,0x7e, +0x53,0xd, 0xf7,0xbc,0x5a,0x28,0x44,0x7c,0xba,0xc4,0x23,0x54,0x1f,0x7c,0x7b,0x7c, +0xba,0x54,0x7, 0x7e,0x44,0x0, 0x1, 0x60,0x5, 0x3e,0x44,0x14,0x78,0xfb,0x7c,0x69, +0x7e,0x30,0x2, 0xac,0x3a,0x49,0x71,0x9, 0xc8,0x7d,0x7, 0xa, 0x0, 0x7c,0x41,0x19, +0x41,0xd, 0x18,0x7d,0x7, 0x7c,0x41,0x19,0x41,0xd, 0x19,0xa, 0x47,0x2e,0x44,0xd, +0x68,0x7e,0x49,0xb0,0x4c,0xb6,0x7a,0x49,0xb0,0x80,0x1e,0xa, 0x15,0xa, 0x2a,0x9d, +0x21,0x3e,0x24,0x49,0x72,0x9, 0xf0,0x7d,0x17,0xa, 0x12,0x7c,0xb3,0x19,0xb2,0xd, +0x40,0x7d,0x17,0x7c,0xb3,0x19,0xb2,0xd, 0x41,0xb, 0xa0,0x7e,0xb3,0xd, 0xf8,0xa, +0x2b,0x7e,0xb3,0xd, 0xf7,0xa, 0x1b,0x2d,0x12,0xa, 0x2a,0xbd,0x21,0x48,0x80,0xda, +0x79,0x22,0xc2,0xd5,0x7c,0xb4,0x30,0xe7,0x8, 0xb2,0xd5,0x6e,0x24,0xff,0xff,0xb, +0x24,0x7c,0xb6,0x30,0xe7,0x12,0xb2,0xd5,0x6e,0x34,0xff,0xff,0xb, 0x34,0x8d,0x32, +0x6e,0x24,0xff,0xff,0xb, 0x24,0x80,0x2, 0x8d,0x32,0x30,0xd5,0x6, 0x6e,0x34,0xff, +0xff,0xb, 0x34,0x22,0x7d,0x51,0xad,0x3, 0x7d,0x2, 0x7d,0x21,0xad,0x5, 0x2d,0x12, +0xad,0x35,0x2d,0x21,0x22,0x7d,0x2, 0xad,0x31,0xad,0x10,0x2d,0x21,0x22,0x6d,0x0, +0x74,0x10,0x4d,0x0, 0x78,0xb, 0x4d,0x22,0x78,0x27,0x8d,0x31,0x7d,0x12,0x6d,0x22, +0x22,0x7d,0x43,0x7d,0x32,0x6d,0x22,0x2f,0x11,0x2d,0x44,0x50,0x2, 0xa5,0xf, 0xbf, +0x10,0x40,0x4, 0x9f,0x10,0xb, 0x90,0x14,0x78,0xed,0x7f,0x1, 0x6d,0x22,0x7d,0x34, +0x22,0x7d,0x41,0x7d,0x13,0x8d,0x24,0x7d,0x2, 0x2f,0x0, 0x40,0x4, 0xbd,0x4, 0x40, +0x4, 0x9d,0x4, 0xb, 0x14,0x14,0x78,0xf1,0x7d,0x23,0x7d,0x31,0x7d,0x10,0x6d,0x0, +0x22,0xc2,0xd5,0x7c,0xb0,0x30,0xe7,0x8, 0xb2,0xd5,0x9f,0x22,0x9f,0x20,0x7f,0x2, +0x7c,0xb4,0x30,0xe7,0x13,0xb2,0xd5,0x9f,0x22,0x9f,0x21,0x7f,0x12,0x12,0x48,0x40, +0x9f,0x22,0x9f,0x20,0x7f,0x2, 0x80,0x3, 0x12,0x48,0x40,0x30,0xd5,0x6, 0x9f,0x22, +0x9f,0x21,0x7f,0x12,0x22,0x6c,0xaa,0x4d,0x11,0x68,0x1a,0x1e,0x54,0x68,0xe, 0xb, +0x38,0x20,0x1b,0x18,0x20,0xb, 0x35,0xb, 0x15,0x1b,0x54,0x78,0xf2,0x50,0x6, 0x7e, +0x39,0x40,0x7a,0x19,0x40,0x22,0xca,0x79,0x6c,0xee,0x12,0x65,0x6b,0x7d,0x43,0x6c, +0xaa,0x6c,0x77,0x7e,0x30,0x6, 0xac,0x37,0x2e,0x14,0x6c,0x1c,0x7e,0x4, 0x0, 0xff, +0xb, 0xa, 0x20,0xbd,0x24,0x48,0x4, 0x7c,0xa7,0x80,0x7, 0xb, 0x70,0xbe,0x70,0x5, +0x40,0xe1,0xbe,0xa0,0x5, 0x78,0x3, 0x2, 0x49,0xb7,0x7e,0x63,0xd, 0xf7,0xbe,0x60, +0x0, 0x38,0x3, 0x2, 0x49,0xb7,0x6c,0x77,0x2, 0x49,0xac,0x6c,0xff,0x6c,0x66,0x80, +0x41,0x7e,0x90,0x30,0xac,0x96,0x7e,0x50,0x2, 0xac,0x57,0x2d,0x24,0x2e,0x27,0xf, +0xda,0xb, 0x28,0x20,0x7e,0x30,0x6, 0xac,0x3a,0x7d,0xf1,0x2e,0xf4,0x6c,0x1e,0x7e, +0xe4,0x0, 0xff,0xb, 0x7a,0x0, 0xbd,0x2, 0x18,0x14,0xb, 0xf0,0x2e,0x14,0x6c,0x20, +0x7a,0x31,0x82,0x7a,0x21,0x83,0xe4,0x93,0xbc,0xbf,0x28,0xe, 0x80,0x2, 0x6c,0xff, +0xb, 0x60,0x7e,0xb3,0x10,0x2b,0xbc,0xb6,0x38,0xb7,0x7e,0x50,0x6, 0xac,0x5a,0x7d, +0x12,0x2e,0x14,0x6c,0x20,0x7a,0x31,0x82,0x7a,0x21,0x83,0xe4,0x93,0xbc,0xbf,0x38, +0x17,0xb, 0xe0,0x2e,0x24,0x6c,0x21,0x7a,0x51,0x82,0x7a,0x41,0x83,0xe4,0x93,0xbc, +0xbe,0x38,0x7, 0x75,0x14,0x40,0x80,0xf, 0x6c,0xee,0xb, 0x70,0x7e,0xb3,0x10,0x2c, +0xbc,0xb7,0x28,0x3, 0x2, 0x49,0x2b,0xe5,0x15,0x25,0x14,0xf5,0x14,0xbe,0xb0,0x0, +0x28,0xb, 0x15,0x14,0xe4,0x7a,0xb3,0xf, 0xd3,0x7a,0xb3,0xf, 0xd2,0xda,0x79,0x22, +0xca,0x3b,0x7e,0x73,0xd, 0xfb,0x7a,0x73,0xd, 0xfc,0x7e,0xa3,0xf, 0x1b,0x7a,0xa3, +0xf, 0x1c,0xe4,0x7a,0xb3,0xf, 0x1f,0x7e,0x37,0x11,0xd, 0x4d,0x33,0x78,0x3f,0xbe, +0xa0,0x0, 0x28,0x8, 0xe4,0x7a,0xb3,0x16,0xae,0x2, 0x4a,0x97,0x7e,0xb3,0x11,0xf, +0x20,0xe0,0x3, 0x2, 0x4a,0x97,0x7e,0xb3,0x11,0x14,0xbe,0xb3,0x16,0xae,0x28,0x3, +0x2, 0x4a,0x97,0xe4,0x7a,0xb3,0x16,0xae,0x7e,0x24,0x0, 0x1, 0x7a,0x27,0x11,0xd, +0x74,0x1, 0x7a,0xb3,0x10,0xa3,0x74,0x1e,0x7a,0xb3,0x11,0x12,0x80,0x69,0xbe,0x34, +0x0, 0x1, 0x78,0x22,0xbe,0xa0,0x0, 0x28,0x5e,0x6d,0x22,0x7a,0x27,0x11,0xd, 0xe4, +0x7a,0xb3,0x10,0xa3,0x7a,0xb3,0x16,0xae,0x74,0x23,0x7a,0xb3,0x16,0xb1,0x74,0x1, +0x7a,0xb3,0x16,0xb0,0x80,0x41,0xbe,0x34,0x0, 0x3, 0x78,0x3b,0x6d,0x66,0x7a,0x67, +0x10,0x1, 0x7e,0x74,0xd, 0xac,0x7a,0x77,0xa, 0xaf,0x12,0x6e,0xcc,0x12,0x60,0x22, +0x12,0x58,0x63,0x6d,0x33,0x7a,0x37,0x11,0xd, 0xe4,0x7a,0xb3,0x10,0xa3,0x74,0x1, +0x7a,0xb3,0x16,0xb0,0x7a,0x67,0x10,0x1, 0x7a,0x77,0xa, 0xaf,0x75,0x9a,0x7f,0xa9, +0xd1,0x99,0xd2,0x9c,0xa9,0xd6,0xdf,0x7e,0xb3,0x16,0xb0,0x70,0x6, 0x12,0x5b,0x69, +0x12,0x64,0x24,0xda,0x3b,0x22,0x7d,0x53,0x9f,0x11,0xbe,0x54,0x0, 0x0, 0x40,0x2d, +0xbe,0x54,0x0, 0x3f,0x38,0x27,0x7e,0x24,0x0, 0x3f,0x9d,0x25,0x7e,0x34,0x1, 0x7c, +0xad,0x32,0x6d,0x22,0x7c,0x76,0x7c,0x65,0x1a,0x24,0xbe,0x18,0x0, 0x30,0x48,0x4, +0x7e,0x18,0x0, 0x30,0x7e,0x8, 0x0, 0x30,0x9f,0x1, 0x7f,0x10,0x22,0xbe,0x54,0x5, +0x80,0x40,0x29,0xbe,0x54,0x5, 0xaa,0x38,0x23,0x7d,0x25,0x9e,0x24,0x5, 0x7f,0x7e, +0x34,0x1, 0x7c,0xad,0x32,0x6d,0x22,0x7c,0x76,0x7c,0x65,0x1a,0x24,0xbe,0x18,0x0, +0x30,0x48,0x4, 0x7e,0x18,0x0, 0x2f,0x2e,0x18,0x4, 0xd0,0x22,0xbe,0x54,0x5, 0xaa, +0x28,0x19,0x7d,0x25,0x9e,0x24,0x5, 0x9f,0x7e,0x34,0x1, 0x7c,0xad,0x32,0x6d,0x22, +0x7c,0x76,0x7c,0x65,0x1a,0x24,0x2e,0x18,0x5, 0x0, 0x22,0xbe,0x54,0x2, 0xdf,0x38, +0x8, 0x7e,0x34,0x2, 0xdf,0x9d,0x35,0x80,0x6, 0x7d,0x35,0x9e,0x34,0x2, 0xe0,0x6d, +0x22,0x7e,0x14,0x0, 0xe2,0x12,0x48,0x35,0x7c,0x76,0x7c,0x65,0x1a,0x24,0xbe,0x54, +0x2, 0xdf,0x38,0xa, 0x7e,0x8, 0x2, 0x7f,0x9f,0x1, 0x7f,0x10,0x80,0x4, 0x2e,0x18, +0x2, 0x80,0xbe,0x18,0x0, 0x30,0x58,0x5, 0x7e,0x18,0x0, 0x30,0x22,0xbe,0x18,0x4, +0xd0,0x8, 0x4, 0x7e,0x18,0x4, 0xd0,0x22,0x7e,0x34,0x10,0x7e,0x7e,0x24,0x0, 0x81, +0xe4,0x12,0x6d,0xe0,0x74,0xc, 0x7a,0xb3,0x10,0x80,0x7a,0xb3,0x10,0x81,0x74,0x7, +0x7a,0xb3,0x10,0x82,0x74,0xf, 0x7a,0xb3,0x10,0x7e,0x74,0x3c,0x7a,0xb3,0x10,0x7f, +0x74,0xa0,0x7a,0xb3,0x10,0x83,0x74,0x1e,0x7a,0xb3,0x10,0x85,0x74,0x9, 0x7a,0xb3, +0x10,0x86,0x74,0x1e,0x7a,0xb3,0x10,0x87,0xe4,0x7a,0xb3,0x10,0x88,0x7a,0xb3,0x10, +0x89,0xf5,0x52,0xf5,0x51,0x7a,0xb3,0x10,0xa3,0x74,0x1, 0x7a,0xb3,0x10,0x84,0x7a, +0xb3,0x10,0xa2,0x7a,0xb3,0x10,0xa5,0x74,0x9, 0x7a,0xb3,0x10,0xa4,0x74,0xf3,0x7a, +0xb3,0x10,0xa6,0x74,0xb, 0x7a,0xb3,0x10,0xad,0x12,0x6e,0xb9,0xa, 0x36,0x7a,0x73, +0x10,0xa7,0x12,0x6e,0xb9,0x7a,0x73,0x10,0xa8,0x12,0x6e,0xbe,0xa, 0x36,0x7a,0x73, +0x10,0x9f,0x12,0x6e,0xbe,0x7a,0x73,0x10,0xa0,0xe4,0x7a,0xb3,0x10,0xae,0x74,0x1f, +0x7a,0xb3,0x10,0xcf,0xe4,0x7a,0xb3,0x10,0xb0,0x12,0x6e,0xd, 0x7a,0xb3,0x10,0xaf, +0x12,0x6d,0xe, 0x7a,0xb3,0x10,0xa1,0x7e,0x34,0x10,0x8e,0x7e,0x24,0x0, 0x8, 0x74, +0xff,0x12,0x6d,0xe0,0x74,0x9, 0x7a,0xb3,0x10,0x8e,0x74,0x1, 0x7a,0xb3,0x10,0x8f, +0x22,0xca,0x3b,0x6d,0x11,0x7d,0x1, 0x7d,0x21,0x7e,0xa0,0x2, 0x7e,0x70,0x2, 0x6c, +0x66,0x80,0x39,0x6c,0x99,0x80,0x2b,0x7e,0xd0,0x30,0xac,0xd6,0x7e,0xf0,0x2, 0xac, +0xf9,0x7d,0xf7,0x2d,0xf6,0x2e,0xf7,0xf, 0xda,0xb, 0xf8,0xf0,0xbe,0xf4,0x0, 0x14, +0x8, 0x4, 0xb, 0x4, 0x80,0x8, 0xbe,0xf4,0xff,0xec,0x58,0x2, 0xb, 0x24,0xb, 0x14, +0x2c,0x97,0x7e,0xb3,0x10,0x2c,0xbc,0xb9,0x38,0xcd,0x2c,0x6a,0x7e,0xb3,0x10,0x2b, +0xbc,0xb6,0x38,0xbf,0x7e,0x54,0x0, 0x3, 0xad,0x51,0x7d,0x35,0x1e,0x34,0x1e,0x34, +0xbd,0x30,0x50,0x1f,0xe4,0x7a,0xb3,0x16,0xb8,0x7e,0xb3,0x16,0xb9,0xbe,0xb0,0x5, +0x50,0x7, 0x4, 0x7a,0xb3,0x16,0xb9,0x80,0x39,0xe4,0x7a,0xb3,0x16,0xb9,0x75,0x72, +0x1, 0x80,0x2f,0xbd,0x32,0x50,0x1f,0xe4,0x7a,0xb3,0x16,0xb9,0x7e,0xb3,0x16,0xb8, +0xbe,0xb0,0x5, 0x50,0x7, 0x4, 0x7a,0xb3,0x16,0xb8,0x80,0x16,0xe4,0x7a,0xb3,0x16, +0xb8,0x75,0x72,0x2, 0x80,0xc, 0xe4,0x7a,0xb3,0x16,0xb8,0x7a,0xb3,0x16,0xb9,0x75, +0x72,0x0, 0xe5,0x72,0xda,0x3b,0x22,0x7d,0xf3,0xbe,0xf4,0x0, 0x0, 0x40,0x2d,0xbe, +0xf4,0x0, 0x3f,0x38,0x27,0x7e,0x44,0x0, 0x3f,0x9d,0x4f,0x7e,0x54,0x1, 0x7c,0xad, +0x54,0x6d,0x44,0x7c,0xba,0x7c,0xa9,0xbe,0x28,0x0, 0x2f,0x40,0x4, 0x7e,0x28,0x0, +0x2f,0x7e,0x18,0x0, 0x2f,0x9f,0x12,0x7f,0x21,0x2, 0x4d,0xa5,0xbe,0xf4,0x3, 0x0, +0x40,0x22,0x7d,0x4f,0x9e,0x44,0x3, 0x0, 0x7e,0x54,0x1, 0x7c,0xad,0x54,0x6d,0x44, +0x7c,0xba,0x7c,0xa9,0xbe,0x28,0x0, 0x2f,0x40,0x4, 0x7e,0x28,0x0, 0x2e,0x2e,0x28, +0x2, 0xa1,0x80,0x51,0xbe,0xf4,0x1, 0x9f,0x38,0x8, 0x7e,0x54,0x1, 0x9f,0x9d,0x5f, +0x80,0x6, 0x7d,0x5f,0x9e,0x54,0x1, 0xa0,0x6d,0x44,0x7e,0x14,0x0, 0xe4,0x7f,0x12, +0x12,0x48,0x35,0x7f,0x21,0x7c,0xba,0x7c,0xa9,0xa, 0x48,0xbe,0xf4,0x1, 0x9f,0x38, +0xa, 0x7e,0x18,0x1, 0x67,0x9f,0x12,0x7f,0x21,0x80,0x4, 0x2e,0x28,0x1, 0x68,0xbe, +0x28,0x0, 0x2f,0x50,0x6, 0x7e,0x28,0x0, 0x2f,0x80,0xa, 0xbe,0x28,0x2, 0xa1,0x28, +0x4, 0x7e,0x28,0x2, 0xa1,0x7d,0x35,0x22,0xa9,0xd6,0xcb,0x7c,0xb7,0xf5,0xb9,0xa, +0x56,0xf5,0xba,0x7e,0x55,0x2d,0xf5,0xbb,0xf5,0xbc,0x7c,0xb1,0xf5,0xbd,0xa, 0x50, +0xf5,0xc1,0x9, 0xb2,0x0, 0x1, 0x44,0xa0,0xf5,0xc3,0x7e,0x29,0xa0,0xe5,0xc4,0x54, +0xe0,0x4c,0xba,0xf5,0xc4,0x75,0xc5,0x40,0x75,0xc5,0x1, 0x49,0x32,0x0, 0x2, 0x7c, +0xb7,0xf5,0xc6,0x75,0xc5,0x2, 0xa, 0x56,0xf5,0xc6,0x75,0xc5,0x3, 0x49,0x32,0x0, +0x4, 0x6e,0x34,0xff,0xff,0xb, 0x34,0x7d,0x53,0x5e,0x54,0x0, 0xff,0xf5,0xc6,0x75, +0xc5,0x4, 0x1a,0x56,0x5e,0x54,0x0, 0xff,0xf5,0xc6,0x75,0xc5,0x5, 0x49,0x2, 0x0, +0x6, 0x7c,0xb1,0xf5,0xc6,0x75,0xc5,0x6, 0xa, 0x50,0xf5,0xc6,0x43,0xc2,0x9, 0x2, +0x4e,0x29,0x43,0xc2,0x9, 0x0, 0x0, 0x0, 0x0, 0xa9,0x37,0xc2,0xf5,0x75,0xc2,0x0, +0x75,0xc5,0xa, 0xe5,0xc6,0x19,0xb1,0x0, 0x2, 0x75,0xc5,0xb, 0xe5,0xc6,0x19,0xb1, +0x0, 0x3, 0x75,0xc5,0xc, 0xe5,0xc6,0x7a,0x19,0xb0,0x75,0xc5,0xd, 0xe5,0xc6,0x19, +0xb1,0x0, 0x1, 0xa9,0xc6,0xcb,0x22,0xca,0x3b,0x6c,0xff,0x7e,0xb3,0xf, 0xd2,0x60, +0x6, 0x7e,0xb3,0xf, 0xd3,0x70,0x18,0x7e,0x34,0xd, 0x68,0x7e,0x24,0x0, 0x3, 0xe4, +0x12,0x6d,0xe0,0x7e,0x34,0xb, 0x79,0x7e,0x24,0x0, 0xd, 0xe4,0x12,0x6d,0xe0,0x6c, +0xee,0x80,0x6b,0x74,0x2, 0xac,0xbe,0x9, 0x75,0xd, 0x18,0x7a,0x71,0x21,0x9, 0x65, +0xd, 0x19,0x7a,0x61,0x22,0x7c,0xbe,0xc4,0x23,0x54,0x1f,0x7c,0xdb,0x7c,0xbe,0x54, +0x7, 0x7e,0x24,0x0, 0x1, 0x60,0x5, 0x3e,0x24,0x14,0x78,0xfb,0x7c,0xc5,0x7e,0x50, +0x30,0xac,0x57,0x7e,0x70,0x2, 0xac,0x67,0x2d,0x32,0x2e,0x37,0xf, 0xda,0xb, 0x38, +0x30,0xbe,0x37,0xf, 0x54,0x48,0x25,0xa, 0x3d,0x9, 0xb3,0xd, 0x68,0x5c,0xbc,0x68, +0x1b,0x7e,0x50,0x7, 0xac,0x5e,0x2e,0x24,0xd, 0x6b,0x7e,0x70,0x7, 0xac,0x7f,0x2e, +0x34,0xe, 0xd, 0x7e,0x14,0x0, 0x7, 0x12,0x6d,0x3c,0xb, 0xf0,0xb, 0xe0,0x7e,0x73, +0xd, 0xf7,0xbc,0x7e,0x38,0x8d,0x7a,0x73,0xd, 0xfb,0x7a,0xf3,0xf, 0x1b,0xda,0x3b, +0x22,0xca,0xf8,0x7c,0xb, 0x6c,0xaa,0x6d,0xee,0x7d,0xfe,0x6c,0xff,0x2, 0x4f,0x9c, +0x7e,0x90,0x2, 0xac,0x9f,0x7d,0xd4,0x2d,0xd3,0xb, 0xd8,0x40,0x4c,0x11,0x68,0x6, +0x6e,0x44,0xff,0xff,0xb, 0x44,0xbd,0x24,0x58,0x70,0xbe,0xa0,0xa, 0x50,0x6b,0x4c, +0xff,0x78,0x14,0x49,0xed,0x0, 0x2, 0x4c,0x11,0x68,0x6, 0x6e,0xe4,0xff,0xff,0xb, +0xe4,0xbd,0xe4,0x18,0x55,0x80,0x1c,0x7c,0xb0,0x14,0xbc,0xbf,0x78,0x20,0x7d,0xfd, +0x1b,0xf5,0xb, 0xf8,0xf0,0x4c,0x11,0x68,0x6, 0x6e,0xf4,0xff,0xff,0xb, 0xf4,0xbd, +0xf4,0x18,0x37,0xa, 0xca,0x2d,0xc1,0x7a,0xc9,0xf0,0xb, 0xa0,0x80,0x2c,0x7d,0xcd, +0x1b,0xc5,0xb, 0xc8,0xf0,0x49,0xed,0x0, 0x2, 0x4c,0x11,0x68,0xc, 0x6e,0xf4,0xff, +0xff,0xb, 0xf4,0x6e,0xe4,0xff,0xff,0xb, 0xe4,0xbd,0xf4,0x18,0xd, 0xbd,0xe4,0x18, +0x9, 0xa, 0xda,0x2d,0xd1,0x7a,0xd9,0xf0,0xb, 0xa0,0xb, 0xf0,0xbc,0xf, 0x28,0x3, +0x2, 0x4f,0x10,0x7c,0xba,0xda,0xf8,0x22,0xca,0x3b,0x6d,0x33,0x7d,0x73,0x75,0x25, +0x0, 0x7e,0x64,0x5, 0xe0,0x75,0x23,0x0, 0x80,0x3c,0x75,0x24,0x0, 0x7e,0x51,0x23, +0x74,0x18,0xac,0x5b,0x3e,0x24,0x7e,0x71,0x24,0x74,0x2, 0xac,0x7b,0x2d,0x32,0x2d, +0x36,0x7a,0x35,0x21,0x49,0x23,0x0, 0x30,0xb, 0x38,0x30,0x9d,0x32,0x12,0x6d,0xd0, +0xe5,0x24,0xb4,0x17,0x2, 0x1e,0x34,0xbd,0x37,0x28,0x2, 0x7d,0x73,0x5, 0x24,0xe5, +0x24,0xb4,0x18,0xc9,0x5, 0x23,0xe5,0x25,0xa, 0x2b,0x7e,0x33,0x10,0x7c,0xa, 0x13, +0x9d,0x12,0x1b,0x14,0xe5,0x23,0xa, 0x2b,0xbd,0x21,0x48,0xae,0xbe,0x74,0x0, 0x41, +0x28,0x11,0x7e,0x34,0x0, 0x73,0x7e,0xa3,0x16,0x54,0x74,0x12,0xa4,0x59,0x35,0x16, +0x65,0x80,0x26,0x7e,0x43,0x16,0x54,0x7e,0x50,0x12,0xac,0x45,0x49,0x32,0x16,0x65, +0xbd,0x37,0x50,0x6, 0x59,0x72,0x16,0x65,0x80,0xf, 0xbe,0x34,0x0, 0x0, 0x28,0x9, +0x2e,0x24,0x16,0x65,0x1b,0x34,0x1b,0x28,0x30,0xda,0x3b,0x22,0xca,0x7b,0xca,0x6b, +0xca,0x5b,0xca,0x4b,0xca,0x2b,0xca,0x1b,0xca,0xb, 0xc0,0xd0,0xc0,0x83,0xc0,0x82, +0x12,0x0, 0x46,0x7e,0x35,0x1e,0xb, 0x34,0x7a,0x35,0x1e,0x7e,0xb3,0x0, 0xff,0x4, +0x7a,0xb3,0x0, 0xff,0x7e,0x35,0x1e,0xbe,0x34,0x3, 0xe8,0x40,0x13,0x6d,0x33,0x7a, +0x35,0x1e,0x7e,0xb3,0x16,0xae,0xbe,0xb0,0x64,0x50,0x5, 0x4, 0x7a,0xb3,0x16,0xae, +0x7e,0x73,0x16,0xb2,0xbe,0x73,0x16,0xb1,0x28,0xb, 0x7e,0xb3,0x16,0xb1,0x4, 0x7a, +0xb3,0x16,0xb1,0x80,0x6, 0x74,0x1, 0x7a,0xb3,0x16,0xb0,0x7e,0xb3,0x16,0xb3,0x60, +0x5, 0x14,0x7a,0xb3,0x16,0xb3,0x7e,0x37,0x10,0x1, 0xb, 0x34,0x7a,0x37,0x10,0x1, +0x7e,0x37,0xa, 0xaf,0xbe,0x37,0x10,0x1, 0x28,0x3, 0x12,0x6e,0xcf,0xd0,0x82,0xd0, +0x83,0xd0,0xd0,0xda,0xb, 0xda,0x1b,0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda, +0x7b,0x32,0x75,0x84,0x1, 0x7e,0x44,0x4, 0x1f,0xe4,0x7a,0x49,0xb0,0x1b,0x44,0x78, +0xf9,0x7e,0xf8,0x16,0xbc,0x75,0x6a,0x0, 0x75,0x8, 0x1, 0x75,0x9, 0x0, 0x75,0xa, +0x0, 0x75,0xc, 0x0, 0x75,0xd, 0x0, 0x75,0xe, 0x0, 0x75,0xf, 0x0, 0xc2,0x0, 0x75, +0x11,0x0, 0x75,0x12,0x64,0x75,0x13,0x64,0x75,0x14,0x0, 0x75,0x15,0x0, 0x75,0x16, +0x0, 0x75,0x19,0x1, 0x75,0x1e,0x0, 0x75,0x1f,0x0, 0x75,0x72,0x0, 0x75,0x6e,0x0, +0x75,0x73,0x0, 0x75,0x74,0x1, 0x75,0x70,0x18,0x75,0x71,0x0, 0x75,0x75,0x0, 0x75, +0x76,0x0, 0x75,0x6b,0x0, 0x75,0x6c,0xff,0x75,0x6d,0x0, 0x7e,0x4, 0x0, 0xff,0x7e, +0x14,0x6e,0xd6,0xb, 0xa, 0x40,0x5d,0x44,0x68,0x1a,0x69,0x20,0x0, 0x2, 0xb, 0xe, +0xb, 0x44,0x80,0xa, 0x7e,0xb, 0xb0,0x7a,0x29,0xb0,0xb, 0x24,0xb, 0xc, 0x1b,0x44, +0x78,0xf2,0x80,0xdf,0x2, 0x5b,0xce,0xca,0xd8,0xca,0x79,0x7c,0xdb,0xbe,0xd0,0x4, +0x78,0xc, 0x7e,0x34,0x10,0x2b,0x12,0x6b,0x17,0xa9,0xc7,0xea,0x80,0x27,0xbe,0xd0, +0x5, 0x78,0x1f,0xa9,0xd7,0xea,0x7e,0xe3,0x10,0x4a,0x7e,0xf3,0x10,0x4d,0xe4,0x7a, +0xb3,0x10,0x4d,0x12,0x66,0x1f,0x7a,0xb3,0x10,0x4a,0x74,0x1, 0x7a,0xb3,0x10,0x78, +0x80,0x3, 0xe4,0x80,0x4e,0x7e,0xb3,0x11,0x96,0x7e,0x34,0x10,0x2b,0xb4,0x1, 0xa, +0x12,0x31,0xbc,0xe4,0x7a,0xb3,0x11,0x96,0x80,0xa, 0x12,0x60,0xce,0x7e,0x34,0x10, +0x2b,0x12,0x5d,0xbd,0x7e,0x34,0x10,0x2b,0x12,0x6a,0x64,0x7e,0xb3,0x10,0xa5,0xb4, +0x3, 0xa, 0x7e,0x73,0x11,0xe8,0x2e,0x70,0xff,0xa9,0x94,0xca,0x12,0x69,0x23,0xbe, +0xd0,0x5, 0x78,0xd, 0x7a,0xe3,0x10,0x4a,0x7a,0xf3,0x10,0x4d,0xe4,0x7a,0xb3,0x10, +0x78,0x74,0x1, 0xda,0x79,0xda,0xd8,0x22,0x7e,0x34,0xe, 0xd, 0x7e,0x24,0x0, 0x46, +0x74,0xff,0x12,0x6d,0xe0,0x7e,0x34,0xe, 0x53,0x7e,0x24,0x0, 0x46,0x74,0xff,0x12, +0x6d,0xe0,0x7e,0x34,0xe, 0x99,0x7e,0x24,0x0, 0x46,0x74,0xff,0x12,0x6d,0xe0,0x6c, +0xaa,0x74,0x3, 0xa, 0x4a,0x19,0xb4,0xe, 0xdf,0x19,0xb4,0xe, 0xe9,0x7e,0x44,0xff, +0xff,0x7e,0x70,0x2, 0xac,0x7a,0x59,0x43,0xe, 0xf3,0x7e,0x70,0x2, 0xac,0x7a,0x59, +0x43,0xf, 0x7, 0xb, 0xa0,0xbe,0xa0,0xa, 0x40,0xd7,0xe4,0x7a,0xb3,0xf, 0x1b,0x7a, +0xb3,0xf, 0x1c,0x7a,0xb3,0xf, 0x1d,0x7a,0xb3,0xf, 0x1f,0x7a,0xb3,0xf, 0x20,0x7a, +0xb3,0xf, 0x21,0x7a,0xb3,0xf, 0x22,0x7a,0xb3,0xf, 0x23,0x7a,0xb3,0xf, 0x24,0x7a, +0xb3,0xf, 0x25,0x12,0x6a,0xad,0x74,0x5, 0x7a,0xb3,0xf, 0x26,0x74,0x4, 0x7a,0xb3, +0xf, 0x27,0xe4,0x7a,0xb3,0xf, 0x28,0x22,0xca,0xf8,0x7c,0xab,0x6c,0x33,0x7c,0x27, +0x80,0x73,0x7e,0x90,0x7, 0xac,0x93,0x9, 0xf4,0xe, 0x57,0x7e,0x10,0x7, 0xac,0x12, +0x9, 0xb0,0xe, 0x11,0xbc,0xfb,0x78,0x5b,0xbe,0xf0,0xff,0x68,0x56,0x7e,0x10,0x7, +0xac,0x1a,0x7d,0xf0,0x2d,0xf2,0x19,0xff,0x0, 0x4, 0x49,0x44,0xe, 0x53,0x2d,0x2, +0x1b,0x8, 0x40,0x7e,0x10,0x7, 0xac,0x13,0x49,0x0, 0xe, 0x55,0x7e,0x90,0x7, 0xac, +0x9a,0x2d,0x42,0x59,0x4, 0x0, 0x2, 0x7e,0x10,0x7, 0xac,0x12,0x9, 0x10,0xe, 0x12, +0x7e,0x90,0x7, 0xac,0x9a,0x2d,0x42,0x19,0x14,0x0, 0x5, 0x7e,0x10,0x7, 0xac,0x12, +0x9, 0x10,0xe, 0x13,0x7e,0x90,0x7, 0xac,0x9a,0x2d,0x42,0x19,0x14,0x0, 0x6, 0xb, +0xa0,0x80,0x6, 0xb, 0x20,0xbc,0x62,0x38,0x89,0xb, 0x30,0xbe,0x30,0xa, 0x50,0x3, +0x2, 0x52,0x9e,0x7c,0xba,0xda,0xf8,0x22,0x7c,0xab,0xbe,0xa0,0x1, 0x40,0x3b,0xbe, +0xa0,0x3e,0x38,0x36,0xbe,0xa0,0x4, 0x78,0x6, 0x74,0x1, 0x7a,0xb3,0x0, 0x8b,0xbe, +0xa0,0x1, 0x68,0xa, 0xbe,0xa0,0x2, 0x68,0x5, 0xbe,0xa0,0x3, 0x78,0x11,0x30,0x0, +0x6, 0x7e,0x34,0x15,0xca,0x80,0x4, 0x7e,0x34,0x16,0xc, 0x7a,0x37,0x16,0x51,0xa, +0x3a,0x2e,0x37,0x16,0x51,0x9, 0xb3,0x0, 0x2, 0x22,0x4c,0xaa,0x78,0x3, 0xe5,0xb, +0x22,0xbe,0xa0,0x80,0x40,0xc, 0xbe,0xa0,0xdf,0x38,0x7, 0xa, 0x3a,0x9, 0xb3,0xf, +0xfe,0x22,0xbe,0xa0,0xfc,0x78,0x5, 0x7e,0xb3,0x10,0xa5,0x22,0xbe,0xa0,0xfd,0x78, +0x8, 0x7e,0x37,0x10,0x46,0x7e,0x39,0xb0,0x22,0xbe,0xa0,0xfe,0x78,0x5, 0x7e,0xb3, +0x10,0x4a,0x22,0xbe,0xa0,0xf9,0x78,0x5, 0x7e,0xb3,0x16,0xbc,0x22,0xbe,0xa0,0xfa, +0x78,0x3, 0xe5,0x6a,0x22,0xe4,0x22,0xca,0x3b,0x7d,0x72,0x7d,0x63,0x7e,0xb3,0x10, +0x4d,0xf5,0x24,0xe4,0x7a,0xb3,0x10,0x4d,0x7e,0x34,0x10,0x2b,0x12,0x31,0xbc,0x7e, +0x34,0x10,0x2b,0x12,0x6a,0x64,0x75,0x21,0x0, 0x12,0x69,0x23,0x12,0x6e,0x78,0x60, +0xfb,0xa9,0xb7,0xea,0x7d,0x36,0x7d,0x27,0x7e,0x14,0x18,0x0, 0x12,0x67,0x74,0x75, +0x22,0x0, 0x80,0x36,0x75,0x23,0x0, 0x80,0x26,0x7e,0x51,0x22,0x74,0x18,0xac,0x5b, +0xe5,0x23,0xa, 0x3b,0x2d,0x23,0x3e,0x24,0x7d,0x32,0x2d,0x36,0xb, 0x38,0x10,0xe, +0x14,0xe, 0x14,0x2d,0x27,0xb, 0x28,0x30,0x2d,0x31,0x1b,0x28,0x30,0x5, 0x23,0x7e, +0x73,0x10,0x2c,0xbe,0x71,0x23,0x38,0xd1,0x5, 0x22,0x7e,0x73,0x10,0x2b,0xbe,0x71, +0x22,0x38,0xc1,0x5, 0x21,0xe5,0x21,0xbe,0xb0,0x4, 0x40,0x9d,0xe5,0x24,0x7a,0xb3, +0x10,0x4d,0xda,0x3b,0x22,0xca,0xf8,0x30,0x90,0x58,0xc2,0x90,0x5, 0xa, 0xe5,0xa, +0xb4,0x1, 0x6, 0xe5,0x91,0xf5,0xf, 0x80,0x29,0xe5,0xb, 0xc4,0x7c,0xfb,0x5e,0xf0, +0x7, 0x78,0xe, 0xe5,0xa, 0x25,0xf, 0x24,0xfe,0x7e,0x71,0x91,0x12,0x56,0x6d,0x80, +0x11,0xbe,0xf0,0x4, 0x78,0xc, 0xe5,0xa, 0x25,0xf, 0x24,0xfe,0x7e,0x71,0x91,0x12, +0x15,0xe2,0xe5,0xb, 0xc4,0x7c,0x5b,0x5e,0x50,0x7, 0xa5,0xbd,0x0, 0x9, 0xe5,0xf, +0x12,0x53,0x28,0xf5,0x91,0x80,0xb, 0xa5,0xbd,0x4, 0x7, 0xe5,0xf, 0x12,0x27,0x2e, +0xf5,0x91,0x30,0x91,0x28,0xc2,0x91,0x5, 0x9, 0xe5,0xb, 0xc4,0x7c,0x5b,0x5e,0x50, +0x7, 0xa5,0xbd,0x0, 0xb, 0xe5,0x9, 0x25,0xf, 0x12,0x53,0x28,0xf5,0x91,0x80,0xd, +0xa5,0xbd,0x4, 0x9, 0xe5,0x9, 0x25,0xf, 0x12,0x27,0x2e,0xf5,0x91,0xda,0xf8,0x22, +0x6c,0x33,0xbe,0x30,0x18,0x50,0x1e,0xa, 0x3, 0x2e,0x7, 0x10,0x35,0x7e,0x9, 0xa0, +0x7c,0xba,0x30,0xe0,0xc, 0xa, 0x5a,0x2e,0x54,0x0, 0x18,0xe, 0x54,0x7c,0xab,0x80, +0x16,0x1e,0xa0,0x80,0x12,0xa, 0x3, 0x2e,0x7, 0x10,0x33,0x9, 0x20,0xff,0xe8,0xa, +0x52,0x2e,0x54,0x0, 0x18,0x7c,0xab,0x7e,0x23,0x10,0x3a,0xbe,0x20,0x3, 0x28,0xe, +0x7e,0x10,0x2, 0xac,0x1a,0x2d,0x2, 0xb, 0x8, 0x0, 0x1e,0x4, 0x80,0x21,0xa, 0x42, +0x2e,0x44,0x0, 0xc, 0x7e,0x4, 0x0, 0xf, 0x9d,0x4, 0x7c,0x21,0x7e,0x10,0x2, 0xac, +0x1a,0x2d,0x2, 0xb, 0x8, 0x0, 0x7c,0xb2,0x60,0x5, 0x3e,0x4, 0x14,0x78,0xfb,0x7e, +0x44,0x7f,0xff,0x9d,0x40,0x7e,0x10,0x2, 0xac,0x13,0x2d,0x3, 0x1b,0x8, 0x40,0xb, +0x30,0xbe,0x30,0x25,0x50,0x3, 0x2, 0x54,0xd2,0x22,0x6c,0xaa,0x7e,0x50,0x2, 0xac, +0x5a,0x7d,0x32,0x2e,0x37,0xf, 0xd6,0xb, 0x38,0x10,0xbe,0x17,0xe, 0x7, 0x8, 0x12, +0x7d,0x2, 0x2e,0x7, 0xf, 0xd4,0xb, 0x8, 0x30,0x2e,0x37,0xe, 0x7, 0x1b,0x8, 0x30, +0x80,0x18,0x6d,0x33,0x9e,0x37,0xe, 0x7, 0xbd,0x13,0x58,0xe, 0x2e,0x27,0xf, 0xd4, +0xb, 0x28,0x30,0x9e,0x37,0xe, 0x7, 0x1b,0x28,0x30,0xb, 0xa0,0xbe,0xa0,0x25,0x78, +0xbb,0x6c,0xaa,0x7e,0x50,0x2, 0xac,0x5a,0x49,0x12,0x9, 0x2e,0xbe,0x17,0xe, 0x7, +0x8, 0x12,0x7d,0x2, 0x2e,0x4, 0x8, 0xe4,0xb, 0x8, 0x30,0x2e,0x37,0xe, 0x7, 0x1b, +0x8, 0x30,0x80,0x18,0x6d,0x33,0x9e,0x37,0xe, 0x7, 0xbd,0x13,0x58,0xe, 0x2e,0x24, +0x8, 0xe4,0xb, 0x28,0x30,0x9e,0x37,0xe, 0x7, 0x1b,0x28,0x30,0xb, 0xa0,0xbe,0xa0, +0x25,0x40,0xc0,0x22,0xca,0x69,0xca,0xf8,0x6c,0x11,0x7e,0xd0,0x7, 0xac,0xd1,0x9, +0x6, 0xe, 0x9d,0x5e,0x0, 0xf, 0x49,0xf6,0xe, 0x9b,0xbe,0xf4,0x5, 0xa, 0x40,0x3c, +0x49,0x46,0xe, 0x99,0x7d,0x34,0x12,0x6b,0x9d,0x7c,0xfb,0xbe,0xf0,0x3, 0x40,0xe, +0x7e,0x14,0x4, 0xff,0x74,0x7, 0xac,0xb1,0x59,0x15,0xe, 0x9b,0x80,0x3e,0x74,0x2, +0xac,0xbf,0x49,0x45,0x0, 0xf8,0x74,0x7, 0xac,0xb1,0x59,0x45,0xe, 0x99,0x7e,0x14, +0x7, 0xd0,0x74,0x7, 0xac,0xb1,0x59,0x15,0xe, 0x9b,0x80,0x25,0xbe,0xf4,0x5, 0x0, +0x40,0x1f,0x7e,0x14,0x4, 0xff,0x74,0x7, 0xac,0xb1,0x59,0x15,0xe, 0x9b,0x74,0x7, +0xac,0xb1,0x49,0x15,0xe, 0x9b,0xbe,0x14,0x5, 0xa, 0x40,0x5, 0x7c,0xb0,0x12,0x68, +0x3d,0xb, 0x10,0xbe,0x10,0xa, 0x40,0x82,0xda,0xf8,0xda,0x69,0x22,0xca,0x79,0x70, +0x41,0x7e,0x74,0x0, 0xb, 0x7a,0x79,0x70,0x7c,0xb7,0x54,0x70,0xc4,0x54,0xf, 0x7c, +0x7b,0xa5,0xbf,0x4, 0x15,0x7e,0xb3,0x10,0xa5,0xb4,0x3, 0x7, 0x74,0x1, 0x7e,0x70, +0x3, 0x80,0x13,0x74,0x27,0x7e,0x70,0x3, 0x80,0x4b,0x7e,0xb3,0x10,0xa5,0xb4,0x3, +0xa, 0x74,0x1, 0x7e,0x70,0x1, 0x12,0x0, 0x5e,0x80,0x45,0x74,0x27,0x7e,0x70,0x1, +0x80,0x33,0xbe,0xb0,0xfc,0x68,0x3, 0xb4,0x3c,0x1f,0xa5,0xbf,0xaa,0x5, 0x7e,0x60, +0x5, 0x80,0x10,0xa5,0xbf,0x55,0x5, 0x7e,0x60,0x6, 0x80,0x7, 0xa5,0xbf,0x66,0x20, +0x7e,0x60,0x7, 0x74,0x27,0x7c,0x76,0x80,0xc, 0xbe,0xb0,0x80,0x40,0xc, 0xbe,0xb0, +0xdf,0x38,0x7, 0x24,0x80,0x12,0x6d,0x9f,0x80,0x6, 0xb4,0xfe,0x3, 0x7a,0x71,0xc, +0xda,0x79,0x22,0x6c,0x77,0x6c,0xaa,0x80,0x3c,0x7e,0x50,0x18,0xac,0x5a,0x3e,0x24, +0x2e,0x27,0xf, 0xda,0x2e,0x24,0x0, 0x30,0x7d,0x12,0x1b,0x16,0xb, 0x18,0x40,0xbe, +0x44,0x0, 0x3c,0x8, 0x1e,0x7e,0x14,0x0, 0x1, 0x7c,0xba,0x60,0x5, 0x3e,0x14,0x14, +0x78,0xfb,0x5e,0x14,0x4, 0x44,0x68,0xb, 0x1b,0x25,0xb, 0x28,0x20,0xbd,0x42,0x8, +0x2, 0xb, 0x70,0xb, 0xa0,0x7e,0x63,0x10,0x2b,0xbc,0x6a,0x38,0xbc,0xbe,0x70,0x1, +0x40,0x30,0x6c,0xaa,0x80,0x24,0x7e,0x50,0x18,0xac,0x5a,0x3e,0x24,0x2e,0x27,0xf, +0xda,0x2e,0x24,0x0, 0x30,0x1b,0x25,0xb, 0x28,0x30,0x7e,0x30,0x2, 0xac,0x3a,0x59, +0x31,0x0, 0xd2,0x6d,0x33,0x1b,0x28,0x30,0xb, 0xa0,0x7e,0xb3,0x10,0x2b,0xbc,0xba, +0x38,0xd4,0x22,0xca,0x79,0x6c,0xff,0x6c,0xee,0x80,0x63,0x7c,0xbe,0xc4,0x23,0x54, +0x1f,0x7c,0xab,0x7c,0xbe,0x54,0x7, 0x7e,0x34,0x0, 0x1, 0x60,0x5, 0x3e,0x34,0x14, +0x78,0xfb,0xa, 0x2a,0x9, 0xb2,0xd, 0x68,0x5c,0xb7,0x68,0x40,0x7e,0x50,0x2, 0xac, +0x5e,0x2e,0x24,0xd, 0x18,0x7e,0x70,0x2, 0xac,0x7f,0x2e,0x34,0xd, 0x18,0x7e,0x14, +0x0, 0x2, 0x12,0x6d,0x3c,0x7c,0xbf,0xc4,0x23,0x54,0x1f,0x7c,0xab,0x7c,0xbf,0x54, +0x7, 0x7e,0x34,0x0, 0x1, 0x60,0x5, 0x3e,0x34,0x14,0x78,0xfb,0xa, 0x4a,0x2e,0x44, +0xd, 0x68,0x7e,0x49,0xb0,0x4c,0xb7,0x7a,0x49,0xb0,0xb, 0xf0,0xb, 0xe0,0x7e,0x63, +0xd, 0xf7,0xbc,0x6e,0x38,0x95,0x7a,0xf3,0xd, 0xf7,0xda,0x79,0x22,0x6d,0x33,0x7a, +0x37,0x10,0x1, 0x7e,0x34,0xd, 0xac,0x7a,0x37,0xa, 0xaf,0x12,0x6e,0xcf,0x7e,0xb3, +0x10,0xa5,0x24,0xfa,0x68,0x17,0x14,0x68,0x44,0xb, 0xb1,0x78,0x55,0x7e,0xb3,0x0, +0xfe,0xbe,0xb0,0x5, 0x68,0x4c,0x74,0x5, 0x7a,0xb3,0x0, 0xfe,0x22,0x7e,0xb3,0x0, +0xfe,0xb4,0x5, 0x3e,0x74,0x6, 0x7a,0xb3,0x0, 0xfe,0x74,0xfa,0x12,0x6d,0x25,0x75, +0x9a,0x80,0x7e,0x34,0x77,0xf8,0x12,0x69,0xa1,0x7e,0x34,0x77,0xf8,0x74,0x66,0x12, +0x59,0xb7,0x7e,0x34,0x77,0xf9,0x74,0xbb,0x12,0x59,0xb7,0x80,0x12,0x7e,0xb3,0x0, +0xfe,0xb4,0x5, 0xe, 0x74,0x7, 0x7a,0xb3,0x0, 0xfe,0x74,0xfa,0x12,0x6d,0x25,0x75, +0xe9,0xff,0x22,0x0, 0x0, 0x0, 0x0, 0xd2,0xcd,0xa9,0xd1,0xc9,0x7e,0xb3,0x16,0xac, +0xb4,0x1, 0x14,0x7e,0x73,0x16,0xaf,0xa, 0x27,0x7e,0x34,0x1d,0x8, 0x1b,0x38,0x20, +0xe4,0x7a,0xb3,0x16,0xac,0x80,0xb, 0x7e,0x24,0x0, 0x2, 0x7e,0x34,0x1d,0x8, 0x1b, +0x38,0x20,0xa9,0xd0,0xca,0xc2,0xa8,0xc2,0x95,0x74,0x2, 0x7a,0xb3,0x16,0xb3,0x7e, +0xb3,0x16,0xb3,0x70,0xfa,0x12,0x6e,0x6f,0x12,0x61,0x24,0x12,0x6b,0xbe,0x6d,0x33, +0x7a,0x37,0x10,0x1, 0x7e,0x34,0xd, 0xac,0x7a,0x37,0xa, 0xaf,0x12,0x6e,0xcf,0x12, +0x6a,0x18,0x12,0x6a,0x3e,0x12,0x52,0x8, 0x74,0x1, 0x7a,0xb3,0x10,0x3c,0x7a,0xb3, +0x10,0x4d,0x2, 0x6e,0xb3,0xca,0x3b,0x7d,0x72,0x7d,0x63,0xe5,0x55,0xbe,0xb0,0x1, +0x68,0xf9,0x7d,0x36,0x7e,0x24,0x0, 0x4a,0xe4,0x12,0x6d,0xe0,0x7d,0x37,0x7e,0x24, +0x0, 0x4a,0xe4,0x12,0x6d,0xe0,0x75,0x21,0x1, 0x12,0x6b,0xde,0xe5,0x55,0xbe,0xb0, +0x1, 0x68,0xf9,0x75,0x22,0x0, 0x7e,0x51,0x22,0x74,0x2, 0xac,0x5b,0x49,0x2, 0xa, +0x62,0x1e,0x4, 0x1e,0x4, 0x7d,0x12,0x2d,0x16,0xb, 0x18,0x30,0x2d,0x30,0x1b,0x18, +0x30,0x49,0x12,0xa, 0x18,0x1e,0x14,0x1e,0x14,0x2d,0x27,0xb, 0x28,0x30,0x2d,0x31, +0x1b,0x28,0x30,0x5, 0x22,0xe5,0x22,0xb4,0x25,0xcc,0x5, 0x21,0xe5,0x21,0xbe,0xb0, +0x5, 0x40,0xb6,0xda,0x3b,0x22,0x6c,0x77,0x7e,0x63,0xd, 0xfa,0xa, 0x16,0x7e,0x63, +0xd, 0xf9,0xa, 0x26,0x2d,0x21,0xbe,0x24,0x0, 0xa0,0x28,0x3, 0x74,0x1, 0x22,0x6c, +0xaa,0x80,0x1c,0x7e,0x50,0x2, 0xac,0x5a,0x49,0x22,0x8, 0x9a,0xbe,0x24,0x3, 0xe8, +0x8, 0x9, 0xb, 0x70,0xbe,0x70,0x10,0x68,0xe, 0x80,0x2, 0x6c,0x77,0xb, 0xa0,0x7e, +0x63,0x10,0x2c,0xbc,0x6a,0x38,0xdc,0xa5,0xbf,0x10,0x2a,0x6c,0x77,0x6c,0xaa,0x80, +0x1c,0x7e,0x50,0x2, 0xac,0x5a,0x49,0x22,0x8, 0xca,0xbe,0x24,0x7, 0xd0,0x8, 0x9, +0xb, 0x70,0xa5,0xbf,0x8, 0x5, 0x74,0x1, 0x22,0x6c,0x77,0xb, 0xa0,0x7e,0x63,0x10, +0x2b,0xbc,0x6a,0x38,0xdc,0xe4,0x22,0x7c,0xab,0xc2,0xaf,0xd2,0xc9,0xa9,0xd5,0xcb, +0x75,0xfb,0xa5,0x75,0xfb,0xf, 0x75,0xfb,0x6a,0xbe,0x34,0x73,0xf8,0x68,0x18,0xbe, +0x34,0x73,0xf9,0x68,0x12,0xbe,0x34,0x74,0x0, 0x50,0xc, 0x75,0xfb,0x0, 0xd2,0xaf, +0xc2,0xc9,0xa9,0xc5,0xcb,0xe4,0x22,0xa, 0x26,0x7c,0xb5,0xf5,0xf1,0x7c,0xb7,0x54, +0xfe,0xf5,0xf2,0x75,0xf3,0x80,0x75,0xf4,0x0, 0x5e,0x34,0x0, 0x1, 0x68,0x8, 0x75, +0xf6,0xff,0x7a,0xa1,0xf6,0x80,0x6, 0x7a,0xa1,0xf6,0x75,0xf6,0xff,0x75,0xf5,0x80, +0x74,0x1, 0x12,0x6d,0x25,0xa9,0x36,0xf5,0xfc,0x75,0xfb,0x0, 0xd2,0xaf,0xc2,0xc9, +0xa9,0xc5,0xcb,0x74,0x1, 0x22,0x74,0xa, 0x7a,0xb3,0xf, 0x46,0x74,0x14,0x7a,0xb3, +0xf, 0x47,0x7e,0x34,0x3, 0x20,0x7a,0x37,0xf, 0x48,0x7a,0x37,0xf, 0x4a,0x7e,0x24, +0x1, 0xf4,0x7a,0x27,0xf, 0x4c,0x7a,0x37,0xf, 0x4e,0x7a,0x37,0xf, 0x50,0x74,0xc, +0x7a,0xb3,0xf, 0x52,0x74,0x8, 0x7a,0xb3,0xf, 0x53,0x7e,0x34,0x0, 0x3c,0x7a,0x37, +0xf, 0x54,0x7a,0x37,0xf, 0x56,0x7a,0x37,0xf, 0x58,0x7e,0x34,0x0, 0x28,0x7a,0x37, +0xf, 0x5a,0x74,0xf, 0x7a,0xb3,0xf, 0x5c,0xe4,0x7a,0xb3,0xf, 0x5f,0x74,0x4, 0x7a, +0xb3,0xf, 0x60,0x7e,0x34,0x0, 0x64,0x7a,0x37,0xf, 0x61,0x7e,0x34,0xa, 0x0, 0x7a, +0x37,0xf, 0x5d,0x22,0xca,0x3b,0x7d,0x72,0x7d,0x63,0x7e,0xb3,0x10,0x3c,0xf5,0x1d, +0xe4,0x7a,0xb3,0x10,0x3c,0x7d,0x36,0x7d,0x27,0x12,0x6a,0x89,0x7e,0x34,0x10,0x2b, +0x12,0x5b,0x2, 0x75,0x1b,0x0, 0x7e,0x34,0x10,0x2b,0x12,0x64,0xab,0x12,0x6e,0x81, +0x60,0xfb,0x7d,0x36,0x7e,0x25,0x70,0x12,0x54,0xd0,0x75,0x1c,0x0, 0x7e,0x51,0x1c, +0x74,0x2, 0xac,0x5b,0x7d,0x32,0x2d,0x36,0xb, 0x38,0x10,0xe, 0x14,0xe, 0x14,0x2d, +0x27,0xb, 0x28,0x30,0x2d,0x31,0x1b,0x28,0x30,0x5, 0x1c,0xe5,0x1c,0xb4,0x25,0xdd, +0x5, 0x1b,0xe5,0x1b,0xbe,0xb0,0x4, 0x40,0xbd,0xe5,0x1d,0x7a,0xb3,0x10,0x3c,0xda, +0x3b,0x22,0x7d,0x3, 0x75,0xcc,0x18,0x75,0xcd,0x7, 0x9, 0xa0,0x0, 0x2, 0x3e,0xa0, +0xe5,0xca,0x54,0x1, 0x4c,0xba,0xf5,0xca,0xa9,0xd0,0xca,0xa9,0xd3,0xe1,0xa9,0xd1, +0xe1,0x9, 0x70,0x0, 0xe, 0x2e,0x70,0xff,0xa9,0x94,0xe1,0x9, 0xa0,0x0, 0xf, 0x7c, +0xba,0xc4,0x33,0x54,0xe0,0x7c,0xab,0xe5,0xe3,0x54,0x1f,0x4c,0xba,0xf5,0xe3,0x9, +0xb0,0x0, 0x13,0x54,0x3, 0xa, 0x5b,0x3e,0x54,0x3e,0x54,0x3e,0x54,0x7c,0xab,0xe5, +0xe3,0x54,0xe7,0x4c,0xba,0xf5,0xe3,0xa9,0xc1,0xe3,0xa9,0xc0,0xe3,0x7d,0x30,0x12, +0x5c,0xfb,0x9, 0xb0,0x0, 0x14,0xf5,0xe7,0x22,0x7e,0xb3,0x16,0xac,0x70,0x17,0xe5, +0xcc,0x7a,0xb3,0x16,0xad,0x7e,0x34,0x1d,0x8, 0xb, 0x38,0x30,0x7a,0x73,0x16,0xaf, +0x74,0x1, 0x7a,0xb3,0x16,0xac,0xc2,0xc9,0xa9,0xc6,0xcb,0xa9,0xc5,0xcb,0xc2,0xcc, +0xc2,0xca,0xc2,0xc8,0xa9,0xc4,0xcb,0x80,0x2e,0xe5,0x55,0xbe,0xb0,0x1, 0x68,0x23, +0xe5,0x75,0xb4,0x1, 0x1e,0xe5,0x76,0xb4,0x1, 0x19,0xa9,0xc3,0xcb,0x7e,0x24,0x0, +0x1, 0x7e,0x34,0x1d,0x8, 0x1b,0x38,0x20,0xa9,0xc7,0xcb,0xa9,0xc1,0xc9,0xa9,0xc3, +0xc9,0xc2,0xcd,0xe4,0x12,0x6d,0x69,0x7e,0xb3,0x16,0xb0,0x60,0xcc,0x22,0x6d,0x33, +0x7a,0x37,0x10,0x1, 0x7e,0x34,0xd, 0xac,0x7a,0x37,0xa, 0xaf,0x12,0x6e,0xcc,0x12, +0x6e,0x6f,0x12,0x61,0x24,0x12,0x6e,0xd5,0x12,0x6d,0x7b,0x74,0x1, 0x7a,0xb3,0x10, +0xa5,0x12,0x6b,0xbe,0x12,0x6a,0x18,0x74,0x1, 0x7a,0xb3,0x10,0x3c,0x7a,0xb3,0x10, +0x4d,0x12,0x6e,0xb3,0x7e,0xb3,0x10,0xa5,0x24,0xfd,0x68,0x12,0x14,0x68,0x14,0x14, +0x68,0x16,0x14,0x68,0x13,0x24,0x5, 0x78,0xeb,0x12,0x41,0x6b,0x80,0xe6,0x12,0x5e, +0x70,0x80,0xe1,0x12,0x69,0xf1,0x80,0xdc,0x6d,0x33,0x7a,0x37,0x10,0x1, 0x12,0x57, +0xed,0x80,0xd1,0x7c,0xa5,0x7c,0x5b,0xa9,0xd6,0xcb,0x7c,0xb7,0xf5,0xb9,0xa, 0x36, +0x7c,0xb7,0xf5,0xba,0x7c,0xb5,0xc4,0x33,0x54,0xe0,0x4c,0xba,0xf5,0xbb,0x7c,0xb2, +0x1e,0xb0,0x1e,0xb0,0x54,0xf, 0xa, 0x4b,0x3e,0x44,0x3e,0x44,0x3e,0x44,0x3e,0x44, +0x1e,0x50,0x1e,0x50,0x1e,0x50,0xa, 0x55,0x4d,0x54,0xf5,0xbc,0x7c,0xb1,0xf5,0xbd, +0xa, 0x50,0xf5,0xc1,0x7c,0xb3,0x44,0xa0,0xf5,0xc3,0x7a,0x41,0xc4,0x75,0xc5,0xc0, +0x43,0xc2,0x7, 0x80,0x7, 0x43,0xc2,0x7, 0x0, 0x0, 0x0, 0x0, 0xa9,0x37,0xc2,0xf5, +0x75,0xc2,0x0, 0xa9,0xc6,0xcb,0x22,0x7c,0xab,0x6c,0x33,0x6d,0x44,0x7e,0x10,0x2, +0xac,0x13,0x2e,0x4, 0x1c,0x3a,0x1b,0x8, 0x40,0xb, 0x30,0xa5,0xbb,0xc, 0xec,0x6c, +0x33,0x80,0x43,0xa, 0x3, 0x2d,0x2, 0x7e,0x9, 0x20,0x7c,0xb2,0xa, 0x3, 0x20,0xe0, +0xb, 0x2d,0x3, 0x7e,0x9, 0xb0,0x54,0x1f,0xa, 0xfb,0x80,0x13,0x2d,0x3, 0x7e,0x9, +0xb0,0x54,0x1f,0xa, 0xfb,0x3e,0xf4,0x3e,0xf4,0x3e,0xf4,0x3e,0xf4,0x3e,0xf4,0x7c, +0xb2,0x1e,0xb0,0x7e,0x90,0x2, 0xac,0x9b,0x2e,0x44,0x1c,0x3a,0xb, 0x48,0x0, 0x4d, +0xf, 0x1b,0x48,0x0, 0xb, 0x30,0xbc,0xa3,0x38,0xb9,0x22,0x7d,0x23,0x75,0xe4,0x1, +0x9, 0xb2,0x0, 0xc, 0x54,0x7f,0xf5,0xe5,0x75,0xe4,0x2, 0x9, 0xb2,0x0, 0xd, 0x54, +0x7f,0xf5,0xe5,0x75,0xe4,0x7, 0x9, 0xb2,0x0, 0x15,0x54,0x7f,0xf5,0xe5,0x75,0xe4, +0xb, 0x6c,0xaa,0xa, 0x1a,0x49,0x32,0x0, 0x1d,0x2d,0x31,0x7e,0x39,0xb0,0xf5,0xe5, +0xb, 0xa0,0xbe,0xa0,0x25,0x40,0xec,0x75,0xe4,0x30,0x49,0x32,0x0, 0x1b,0x7e,0x39, +0xb0,0xf5,0xe5,0x75,0xe4,0x31,0x49,0x32,0x0, 0x19,0x7d,0x53,0x5e,0x54,0x0, 0xff, +0xf5,0xe5,0x75,0xe4,0x32,0x5e,0x34,0xff,0x0, 0xa, 0x56,0xf5,0xe5,0x22,0xca,0x79, +0x7e,0x71,0x54,0x3e,0x70,0x3e,0x70,0x7c,0xb7,0x24,0x56,0xa, 0x2b,0xb, 0x28,0x50, +0x7c,0xab,0x7c,0xb7,0x24,0x58,0xa, 0x3b,0xb, 0x38,0x70,0x4d,0x77,0x68,0x1f,0xbe, +0xa0,0x1, 0x68,0xa, 0xbe,0xa0,0x2, 0x68,0x5, 0xbe,0xa0,0x3, 0x78,0x10,0x7e,0x34, +0x10,0x2b,0x12,0x6b,0x17,0x7d,0x37,0x7e,0x24,0x18,0x0, 0x12,0x54,0xd0,0x5, 0x54, +0xe5,0x53,0xbe,0xb1,0x54,0x28,0x10,0x12,0x62,0x6b,0xb4,0x1, 0x5, 0x75,0x55,0x1, +0x80,0x8, 0x75,0x55,0x3, 0x80,0x3, 0x75,0x55,0x2, 0xda,0x79,0x22,0x6d,0x11,0x7e, +0x24,0x1c,0x1c,0x1b,0x28,0x10,0x6c,0x55,0x9, 0xb3,0x0, 0x4d,0xb4,0x1, 0x6, 0x9, +0xa3,0x0, 0x50,0x80,0x2, 0x7c,0xa5,0xa, 0x4a,0x49,0x13,0x0, 0x8, 0x2d,0x14,0x7e, +0x19,0x40,0xa, 0x14,0x7e,0x4, 0x1c,0x24,0x1b,0x8, 0x10,0x9, 0x43,0x0, 0x1f,0xa, +0x14,0x1b,0x8, 0x10,0x49,0x13,0x0, 0x41,0x2d,0x14,0x7e,0x19,0x40,0xa, 0x14,0x1b, +0x8, 0x10,0x49,0x13,0x0, 0x43,0x2d,0x14,0x7e,0x19,0x40,0xa, 0x14,0x1b,0x8, 0x10, +0xb, 0x50,0xbe,0x50,0xd, 0x40,0xb1,0x22,0x75,0x9, 0x0, 0xe5,0xb, 0xc4,0x7c,0x5b, +0x5e,0x50,0x7, 0xa5,0xbd,0x0, 0x9, 0xe5,0xf, 0x12,0x53,0x28,0xf5,0x91,0x80,0xb, +0xa5,0xbd,0x4, 0x7, 0xe5,0xf, 0x12,0x27,0x2e,0xf5,0x91,0x75,0xa, 0x0, 0xe4,0x7a, +0xb3,0x16,0x4e,0x7e,0x34,0x15,0xca,0x7e,0x24,0x0, 0x42,0x74,0xff,0x12,0x6d,0xe0, +0x7e,0x34,0x16,0xc, 0x7e,0x24,0x0, 0x42,0x74,0xff,0x12,0x6d,0xe0,0x74,0xaa,0x7a, +0xb3,0x15,0xca,0x7a,0xb3,0x15,0xcb,0x7a,0xb3,0x16,0xc, 0x7a,0xb3,0x16,0xd, 0x22, +0xca,0xf8,0x74,0x3, 0x7a,0xb3,0x16,0xa3,0xe4,0x7a,0xb3,0x10,0x3c,0x7a,0xb3,0x10, +0x4d,0x74,0x3, 0x7a,0xb3,0x16,0xa3,0x6d,0x33,0x7a,0x37,0x10,0x1, 0x7e,0x34,0xd, +0xac,0x7a,0x37,0xa, 0xaf,0x7e,0xf3,0x16,0xa3,0xbe,0xf0,0x3, 0x78,0x1d,0xe5,0xb, +0x30,0xe7,0xe4,0x12,0x6a,0xf4,0x7e,0x37,0xf, 0xd6,0x7a,0x37,0x16,0xa0,0x7e,0x37, +0xf, 0xda,0x7a,0x37,0x16,0x9e,0x53,0xb, 0x7f,0x80,0xcc,0x7a,0xf3,0x10,0xa5,0x12, +0x0, 0x1e,0x12,0x0, 0x6a,0xda,0xf8,0x22,0x7c,0xab,0xa9,0xd6,0xcb,0x7c,0xb7,0xf5, +0xb9,0xa, 0x36,0x7c,0xb7,0xf5,0xba,0x7c,0xb5,0xf5,0xbb,0xa, 0x34,0x7c,0xb7,0xf5, +0xbc,0x7c,0xb3,0xf5,0xbd,0xa, 0x12,0x7c,0xb3,0xf5,0xc1,0x7c,0xba,0x44,0xa0,0xf5, +0xc3,0xe5,0xc4,0x54,0xe0,0x4c,0xb1,0xf5,0xc4,0x75,0xc5,0xc0,0xa, 0x30,0x7d,0x23, +0x4e,0x24,0x0, 0x1, 0x7c,0x15,0x7c,0xb1,0x42,0xc2,0x80,0x8, 0x7c,0xb1,0x42,0xc2, +0x0, 0x0, 0x0, 0x0, 0xa9,0x37,0xc2,0xf4,0x75,0xc2,0x0, 0xa9,0xc6,0xcb,0x22,0x6c, +0xaa,0x6c,0x77,0x7e,0x10,0x30,0xac,0x1a,0x7e,0x30,0x2, 0xac,0x37,0x2d,0x10,0x7d, +0x1, 0x2e,0x7, 0xf, 0xda,0xb, 0x8, 0x20,0xbe,0x27,0xe, 0x5, 0x8, 0x12,0x7d,0x41, +0x2e,0x47,0xf, 0xd8,0xb, 0x48,0x0, 0x2e,0x7, 0xe, 0x5, 0x1b,0x48,0x0, 0x80,0x18, +0x6d,0x0, 0x9e,0x7, 0xe, 0x5, 0xbd,0x20,0x58,0xe, 0x2e,0x17,0xf, 0xd8,0xb, 0x18, +0x20,0x9e,0x27,0xe, 0x5, 0x1b,0x18,0x20,0xb, 0x70,0xa5,0xbf,0x18,0xb5,0xb, 0xa0, +0xbe,0xa0,0xd, 0x40,0xac,0x22,0xca,0x3b,0x7c,0xc5,0x7c,0xdb,0x7d,0x73,0x7a,0xd, +0x31,0x7e,0x79,0x50,0xa5,0xbd,0x0, 0xb, 0x7e,0xd, 0x31,0x7e,0xb, 0x40,0x7a,0x79, +0x40,0x80,0x36,0x7e,0xd, 0x31,0x7e,0xb, 0x40,0xa, 0x34,0xa, 0x25,0x9d,0x32,0x12, +0x6d,0xd0,0xa, 0x2c,0xbd,0x32,0x8, 0x18,0x7e,0x1d,0x31,0x7e,0x1b,0xb0,0x7e,0x79, +0xa0,0xbc,0xba,0x7c,0xba,0x28,0x4, 0x2c,0xbd,0x80,0x2, 0x9c,0xbd,0x7a,0x79,0xb0, +0x7e,0x79,0x30,0x7e,0x1d,0x31,0x7a,0x1b,0x30,0xda,0x3b,0x22,0x7e,0xb3,0x10,0x39, +0xb4,0x1, 0x26,0x7e,0x73,0xa, 0xac,0x7a,0x73,0x10,0x37,0x7e,0x73,0xa, 0xad,0x7a, +0x73,0x10,0x38,0x7e,0x73,0xa, 0xae,0x7a,0x73,0x10,0x3a,0x7e,0x34,0xd, 0xfe,0x7a, +0x37,0x10,0x46,0x7e,0x34,0xf, 0xdc,0x80,0x24,0x7e,0x73,0x11,0x16,0x7a,0x73,0x10, +0x37,0x7e,0x73,0x11,0x49,0x7a,0x73,0x10,0x38,0x7e,0x73,0x11,0x94,0x7a,0x73,0x10, +0x3a,0x7e,0x34,0x11,0x9d,0x7a,0x37,0x10,0x46,0x7e,0x34,0xf, 0x63,0x7a,0x37,0x10, +0x48,0x22,0xe5,0x55,0xbe,0xb0,0x1, 0x68,0xf9,0xe5,0x75,0x60,0xfc,0xe5,0x76,0x60, +0xfc,0x20,0x93,0xfd,0xd2,0x96,0xd2,0x95,0xd2,0xb8,0xa9,0xd0,0xb7,0xd2,0xa8,0x7e, +0xb3,0x16,0xac,0x70,0x17,0xe5,0xcc,0x7a,0xb3,0x16,0xad,0x7e,0x34,0x1d,0x8, 0xb, +0x38,0x30,0x7a,0x73,0x16,0xaf,0x74,0x1, 0x7a,0xb3,0x16,0xac,0xa9,0xc0,0xca,0x7e, +0x24,0x0, 0x1, 0x7e,0x34,0x1d,0x8, 0x1b,0x38,0x20,0xa9,0xc1,0xc9,0xa9,0xc3,0xc9, +0xc2,0xcd,0x75,0x87,0x2, 0x0, 0x0, 0x22,0x6c,0xaa,0x7e,0x50,0x2, 0xac,0x5a,0x7d, +0x32,0x2e,0x37,0xf, 0xd6,0xb, 0x38,0x10,0x2e,0x27,0xf, 0xd4,0xb, 0x28,0x30,0x2d, +0x31,0x1b,0x28,0x30,0xb, 0xa0,0xbe,0xa0,0x25,0x78,0xdf,0x6c,0xaa,0x7e,0x50,0x2, +0xac,0x5a,0x49,0x12,0x9, 0x2e,0x2e,0x24,0x8, 0xe4,0xb, 0x28,0x30,0x2d,0x31,0x1b, +0x28,0x30,0xb, 0xa0,0xbe,0xa0,0x25,0x40,0xe4,0x7e,0x14,0x1, 0x0, 0x7d,0x31,0x7e, +0x24,0x3, 0x70,0x74,0x18,0x7e,0x13,0x10,0x2b,0x6c,0x0, 0x2, 0x5e,0xc8,0x9, 0xa3, +0x0, 0x24,0xbe,0xa0,0x1, 0x78,0x5, 0xa9,0xc1,0xc9,0x80,0x3, 0xa9,0xd1,0xc9,0x43, +0xcc,0x8, 0x9, 0x53,0x0, 0x2, 0x3e,0x50,0xe5,0xca,0x54,0x1, 0x4c,0xb5,0xf5,0xca, +0xa9,0xd0,0xca,0xd2,0xcd,0xbe,0xa0,0x1, 0x78,0x5, 0xa9,0xd0,0xc9,0x80,0x3, 0xa9, +0xc0,0xc9,0x7e,0x14,0x1d,0x0, 0xb, 0x18,0x20,0x5e,0x24,0xff,0xfd,0x1b,0x18,0x20, +0x9, 0xb3,0x0, 0x3f,0xb4,0x1, 0xc, 0x75,0xe4,0x32,0x9, 0xb3,0x0, 0x40,0xc4,0x54, +0xf0,0xf5,0xe5,0x22,0x12,0x4b,0x78,0x12,0x3b,0x1c,0x12,0x68,0x9d,0x7e,0x34,0x8, +0x50,0x7a,0x37,0xf, 0xd4,0x7e,0x34,0x8, 0x9a,0x7a,0x37,0xf, 0xd6,0x7e,0x34,0x8, +0x9a,0x7e,0x27,0xf, 0xd4,0x12,0x6a,0x89,0x7e,0x34,0x1, 0x0, 0x7a,0x37,0xf, 0xd8, +0x7e,0x34,0x3, 0x70,0x7a,0x37,0xf, 0xda,0x7e,0x34,0x3, 0x70,0x7e,0x27,0xf, 0xd8, +0x12,0x67,0xa7,0x12,0x64,0xec,0x12,0x5a,0x26,0x12,0x6a,0x3e,0x12,0x52,0x8, 0x12, +0x6e,0x52,0x74,0x1, 0x7a,0xb3,0x11,0x96,0x22,0xca,0xf8,0x7e,0xb3,0xf, 0xd2,0xb4, +0x1, 0x48,0x6c,0xff,0x80,0x3c,0x7e,0x37,0xf, 0xd6,0x2e,0x34,0x0, 0x30,0x74,0x2, +0xac,0xbf,0x9, 0xb5,0xa, 0xb1,0x7e,0x53,0x10,0x2b,0x12,0x35,0x22,0x74,0x4, 0xac, +0xbf,0x59,0x35,0xb, 0x86,0x7e,0x37,0xf, 0xd6,0x74,0x2, 0xac,0xbf,0x9, 0xb5,0xa, +0xb2,0x7e,0x53,0x10,0x2c,0x12,0x35,0x22,0x74,0x4, 0xac,0xbf,0x59,0x35,0xb, 0x88, +0xb, 0xf0,0x7e,0x73,0xd, 0x16,0xbc,0x7f,0x38,0xbc,0xda,0xf8,0x22,0xca,0x69,0xca, +0xf8,0x7c,0xfb,0x7e,0x24,0x0, 0x4, 0x7c,0xaf,0x3e,0xa0,0x3e,0xa0,0x7c,0xba,0x24, +0x56,0xa, 0x3b,0x1b,0x38,0x20,0x6d,0x66,0x7c,0xba,0x24,0x58,0xa, 0x3b,0x1b,0x38, +0x60,0xb, 0xf0,0x12,0x0, 0x6e,0x50,0x1e,0x7e,0x24,0x0, 0x5, 0x7c,0xaf,0x3e,0xa0, +0x3e,0xa0,0x7c,0xba,0x24,0x56,0xa, 0x3b,0x1b,0x38,0x20,0x7c,0xba,0x24,0x58,0xa, +0x3b,0x1b,0x38,0x60,0xb, 0xf0,0x7c,0xbf,0xda,0xf8,0xda,0x69,0x22,0x7e,0x47,0x16, +0x65,0x6c,0x77,0x7e,0xa0,0xff,0x7e,0x43,0x16,0x54,0xa, 0x14,0x9, 0x51,0xf, 0x29, +0xbe,0x53,0x10,0x4a,0x78,0x32,0x7e,0x50,0x12,0xac,0x45,0x49,0x22,0x16,0x65,0xbe, +0x24,0x0, 0x41,0x40,0x23,0x7e,0x60,0x1, 0xbe,0x44,0x0, 0x19,0x40,0x18,0x7e,0x30, +0x12,0xac,0x36,0x49,0x21,0x16,0x65,0xbd,0x24,0x50,0x4, 0x7d,0x42,0x7c,0x76,0xb, +0x60,0xbe,0x60,0x4, 0x40,0xe2,0x7c,0xa7,0x7c,0xba,0x22,0xca,0x79,0xe5,0x53,0xbe, +0xb1,0x54,0x38,0x4, 0x6c,0xff,0x80,0x3a,0xe5,0x54,0x3e,0xb0,0x3e,0xb0,0x24,0x56, +0xa, 0x3b,0xb, 0x38,0x30,0x7c,0xe7,0xbe,0xe0,0x1, 0x68,0xe, 0xbe,0xe0,0x2, 0x68, +0x9, 0xbe,0xe0,0x3, 0x68,0x4, 0x4c,0xee,0x78,0x7, 0x7c,0xbe,0x12,0x63,0x2, 0x7c, +0xfb,0xbe,0xe0,0x4, 0x68,0x5, 0xbe,0xe0,0x5, 0x78,0x7, 0x7c,0xbe,0x12,0x51,0x77, +0x7c,0xfb,0x7c,0xbf,0xda,0x79,0x22,0x7e,0xa3,0xd, 0xf7,0xbe,0xa0,0x0, 0x28,0x40, +0x6c,0x77,0x80,0x38,0x7e,0x50,0x2, 0xac,0x57,0x9, 0x62,0xd, 0x18,0x9, 0x52,0xd, +0x19,0x7e,0x30,0x2, 0xac,0x36,0x49,0x1, 0x11,0xce,0x7e,0x17,0xf, 0x4a,0xe, 0x14, +0xbd,0x1, 0x48,0x13,0x7e,0x30,0x2, 0xac,0x35,0x49,0x1, 0x11,0x9e,0x7e,0x17,0xf, +0x4c,0xe, 0x14,0xbd,0x1, 0x58,0x3, 0x74,0x1, 0x22,0xb, 0x70,0xbc,0xa7,0x38,0xc4, +0xe4,0x22,0xca,0xf8,0x7c,0xfb,0xbe,0xf0,0x1, 0x78,0x3, 0xe4,0x80,0xb, 0xbe,0xf0, +0x2, 0x68,0x4, 0x4c,0xff,0x78,0x8, 0x74,0x1, 0x7a,0xb3,0x10,0x39,0x80,0x3, 0xe4, +0x80,0x28,0x12,0x5f,0xcc,0x4c,0xff,0x78,0x11,0xe4,0x7a,0xb3,0x10,0x3a,0x74,0x1e, +0x7a,0xb3,0x10,0x37,0x74,0xa, 0x7a,0xb3,0x10,0x38,0x7e,0x34,0x10,0x2b,0x12,0x5b, +0x2, 0x7e,0x34,0x10,0x2b,0x12,0x64,0xab,0x74,0x1, 0xda,0xf8,0x22,0xca,0x7b,0xca, +0x6b,0xca,0x5b,0xca,0x4b,0xca,0x2b,0xca,0x1b,0xca,0xb, 0xc0,0xd0,0xc0,0x83,0xc0, +0x82,0x75,0x75,0x1, 0x7e,0x24,0x1d,0x0, 0xb, 0x28,0x30,0x4e,0x60,0x2, 0x1b,0x28, +0x30,0xb, 0x28,0x30,0x4e,0x70,0x2, 0x1b,0x28,0x30,0xe5,0x55,0xb4,0x1, 0x3, 0x12, +0x5d,0x5e,0xd0,0x82,0xd0,0x83,0xd0,0xd0,0xda,0xb, 0xda,0x1b,0xda,0x2b,0xda,0x4b, +0xda,0x5b,0xda,0x6b,0xda,0x7b,0x32,0x7c,0xab,0xa9,0xd6,0xcb,0x7c,0xb7,0xf5,0xb9, +0xa, 0x36,0x7c,0xb7,0xf5,0xba,0x7c,0xb5,0xf5,0xbb,0xa, 0x34,0x7c,0xb7,0xf5,0xbc, +0x7a,0xa1,0xc3,0x75,0xc5,0x40,0x75,0xc2,0x2b,0x80,0x3, 0x43,0xc2,0x1, 0x0, 0x0, +0x0, 0x0, 0xa9,0x37,0xc2,0xf5,0x75,0xc2,0x0, 0x75,0xc5,0xe, 0xe5,0xc6,0xa, 0x3b, +0xe5,0xc6,0xa, 0x2b,0x7c,0x45,0x6c,0x55,0x4d,0x32,0xa9,0xc6,0xcb,0x22,0xe4,0x7a, +0xb3,0x15,0x9f,0x7a,0xb3,0x15,0x53,0x7a,0xb3,0x15,0x9e,0x7a,0xb3,0x15,0xa0,0x7a, +0xb3,0x15,0xa1,0x7e,0x34,0x15,0x56,0x7e,0x24,0x0, 0x48,0x12,0x6d,0xe0,0x7e,0x34, +0x14,0xe3,0x7e,0x24,0x0, 0x48,0xe4,0x12,0x6d,0xe0,0x7e,0x34,0x15,0x56,0x7e,0x24, +0x0, 0x46,0x74,0xff,0x12,0x6d,0xe0,0x7e,0x34,0x14,0xe3,0x7e,0x24,0x0, 0x46,0x74, +0xff,0x2, 0x6d,0xe0,0xd2,0xcd,0xa9,0xd1,0xc9,0xa9,0xd3,0xcb,0xa9,0xd7,0xcb,0x7e, +0xb3,0x16,0xac,0xb4,0x1, 0x15,0x7e,0x73,0x16,0xaf,0xa, 0x27,0x7e,0x34,0x1d,0x8, +0x1b,0x38,0x20,0x7e,0xb3,0x16,0xad,0xf5,0xcc,0x80,0xe, 0x7e,0x24,0x0, 0x2, 0x7e, +0x34,0x1d,0x8, 0x1b,0x38,0x20,0x75,0xcc,0x0, 0xa9,0xd4,0xc9,0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0xe4,0x7a,0xb3,0x16,0xac,0x22,0x7c,0xab,0x6c,0x33,0x80,0x36, +0xa, 0x3, 0x2d,0x2, 0x7e,0x9, 0x20,0x7c,0xb2,0x54,0x7, 0x3e,0xb0,0xa, 0x3, 0x2d, +0x3, 0x7e,0x9, 0x10,0xa, 0xf1,0x60,0x5, 0x3e,0xf4,0x14,0x78,0xfb,0x1e,0x20,0x1e, +0x20,0x1e,0x20,0x7e,0x90,0x2, 0xac,0x92,0x2e,0x44,0x1c,0x30,0xb, 0x48,0x0, 0x4d, +0xf, 0x1b,0x48,0x0, 0xb, 0x30,0xbc,0xa3,0x38,0xc6,0x22,0x75,0x76,0x0, 0x75,0xe4, +0x3, 0x49,0x23,0x0, 0x17,0x7d,0x52,0x5e,0x54,0x0, 0xff,0xf5,0xe5,0x75,0xe4,0x4, +0x5e,0x24,0x1f,0x0, 0xa, 0x24,0x7c,0xa5,0x7a,0xa1,0xe5,0x75,0xe4,0x5, 0xf5,0xe5, +0x75,0xe4,0x6, 0x9, 0xb3,0x0, 0x16,0xc4,0x33,0x54,0xe0,0x4c,0xba,0xf5,0xe5,0xa9, +0xd6,0xea,0x75,0xe6,0x0, 0xa9,0xd1,0xe1,0xa9,0xd0,0xe1,0x22,0x7e,0x34,0x1, 0x90, +0x7a,0x37,0xd, 0xff,0x7e,0x34,0x0, 0x19,0x7a,0x37,0xe, 0x1, 0x7e,0x34,0x0, 0x9c, +0x7a,0x37,0xe, 0x3, 0x7e,0x34,0x0, 0x2, 0x7a,0x37,0xe, 0x5, 0x7a,0x37,0xe, 0x7, +0x74,0x1, 0x7a,0xb3,0xe, 0x9, 0x7e,0xb3,0xe, 0xa, 0x54,0xfb,0x7a,0xb3,0xe, 0xa, +0x7e,0x34,0x10,0x3, 0x7e,0x24,0x0, 0x28,0xe4,0x2, 0x6d,0xe0,0xca,0xf8,0x7e,0x24, +0xe, 0xd, 0x7e,0x34,0xe, 0x99,0x7e,0x14,0x0, 0x46,0x12,0x6d,0x3c,0x6c,0xff,0x74, +0x7, 0xac,0xbf,0x49,0x35,0xe, 0xd, 0x12,0x4c,0xf7,0x74,0x7, 0xac,0xbf,0x59,0x35, +0xe, 0x99,0x49,0x35,0xe, 0xf, 0x12,0x4a,0xa6,0x74,0x7, 0xac,0xbf,0x59,0x35,0xe, +0x9b,0xb, 0xf0,0xbe,0xf0,0xa, 0x40,0xd7,0xda,0xf8,0x22,0x6d,0x33,0x6c,0xaa,0x80, +0x2e,0x7e,0x30,0x2, 0xac,0x3a,0x9, 0x51,0xd, 0x18,0x9, 0x41,0xd, 0x19,0x7e,0x10, +0x30,0xac,0x15,0x7e,0x30,0x2, 0xac,0x34,0x2d,0x10,0x2e,0x17,0xf, 0xda,0xb, 0x18, +0x40,0xbe,0x44,0x0, 0x0, 0x8, 0x6, 0xbd,0x43,0x8, 0x2, 0x7d,0x34,0xb, 0xa0,0x7e, +0xb3,0xd, 0xf7,0xbc,0xba,0x38,0xca,0x22,0xca,0x79,0x7d,0x41,0x7d,0x13,0x6d,0x0, +0x7e,0x34,0x7f,0xff,0x6c,0xaa,0x80,0x1b,0x7e,0xf0,0x7, 0xac,0xfa,0x7d,0xe7,0x2d, +0xe4,0x49,0xfe,0x0, 0x2, 0xbd,0xf0,0x28,0x2, 0x7d,0xf, 0xbd,0xf3,0x50,0x2, 0x7d, +0x3f,0xb, 0xa0,0x9, 0xb4,0x0, 0x46,0xbc,0xba,0x38,0xdd,0x1b,0x18,0x0, 0x1b,0x28, +0x30,0xda,0x79,0x22,0xca,0xf8,0x7e,0xb3,0x10,0x4e,0x60,0x3, 0xb4,0x1, 0x2d,0xa9, +0xc6,0xea,0x12,0x2b,0xa0,0x7c,0xfb,0x7e,0x37,0xf, 0xda,0x7e,0x27,0xf, 0xd8,0x12, +0x67,0xa7,0x7e,0x37,0xf, 0xda,0x7e,0x27,0xf, 0xd8,0x12,0x53,0xb7,0xbe,0xf0,0x1, +0x78,0x4, 0x74,0x2, 0x80,0x2, 0x74,0xff,0x7a,0xb3,0x10,0x4e,0xda,0xf8,0x22,0x7e, +0xb3,0x16,0x54,0x4, 0x7a,0xb3,0x16,0x54,0x7e,0x73,0x16,0x54,0xbe,0x70,0x4, 0x40, +0x5, 0xe4,0x7a,0xb3,0x16,0x54,0x7e,0xa3,0x16,0x54,0xbe,0xa0,0x3, 0x78,0x13,0x7e, +0xb3,0x16,0x9d,0x4, 0x7a,0xb3,0x16,0x9d,0xbe,0xb0,0x8, 0x40,0x5, 0xe4,0x7a,0xb3, +0x16,0x9d,0xa, 0x3a,0x9, 0xb3,0xf, 0x29,0x22,0xca,0x3b,0x7d,0x72,0x7d,0x63,0x7d, +0x21,0x7d,0x36,0x7e,0x14,0x0, 0x4a,0x12,0x6d,0x3c,0x7e,0xb3,0x10,0x3c,0xb4,0x1, +0x1f,0x6c,0xaa,0x7e,0x50,0x2, 0xac,0x5a,0x7d,0x32,0x2d,0x37,0xb, 0x38,0x10,0x2d, +0x26,0xb, 0x28,0x30,0x9d,0x31,0x1b,0x28,0x30,0xb, 0xa0,0xbe,0xa0,0x25,0x78,0xe3, +0xda,0x3b,0x22,0x7e,0xb3,0x10,0x3d,0x70,0x32,0xa9,0xd6,0xea,0x74,0x1, 0x7a,0xb3, +0x10,0x39,0x12,0x5f,0xcc,0x12,0x2d,0xb5,0xe4,0x7a,0xb3,0x10,0x39,0x12,0x5f,0xcc, +0x12,0x2d,0xb5,0x7e,0x34,0x10,0x2b,0x12,0x6b,0x17,0x7e,0x37,0xf, 0xd4,0x7e,0x24, +0x8, 0xe4,0x12,0x58,0xd5,0x74,0x2, 0x7a,0xb3,0x10,0x3d,0x22,0x7e,0xa3,0xf, 0x1c, +0xbe,0xa0,0x0, 0x38,0x2f,0xbe,0xa3,0xf, 0x1b,0x50,0x19,0x7e,0xb3,0xf, 0x25,0xbe, +0xb3,0x12,0x33,0x28,0x14,0x7e,0xb3,0x12,0x33,0x4, 0x7a,0xb3,0x12,0x33,0x7a,0xa3, +0xf, 0x1b,0x80,0x5, 0xe4,0x7a,0xb3,0x12,0x33,0x7e,0xb3,0xf, 0x1b,0x70,0x5, 0xe4, +0x7a,0xb3,0xf, 0x24,0x22,0xca,0x7b,0xca,0x6b,0xca,0x5b,0xca,0x4b,0xca,0x2b,0xca, +0x1b,0xca,0xb, 0xc0,0xd0,0xc0,0x83,0xc0,0x82,0x53,0xcc,0xf8,0x43,0xcc,0x1, 0x12, +0x54,0x45,0x74,0x1, 0x7a,0xb3,0x16,0x4e,0xd0,0x82,0xd0,0x83,0xd0,0xd0,0xda,0xb, +0xda,0x1b,0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda,0x7b,0x32,0xca,0x7b,0xca, +0x6b,0xca,0x5b,0xca,0x4b,0xca,0x2b,0xca,0x1b,0xca,0xb, 0xc0,0xd0,0xc0,0x83,0xc0, +0x82,0x75,0x76,0x1, 0x75,0xe6,0x0, 0xe5,0x55,0xb4,0x1, 0x3, 0x12,0x5d,0x5e,0xd0, +0x82,0xd0,0x83,0xd0,0xd0,0xda,0xb, 0xda,0x1b,0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda, +0x6b,0xda,0x7b,0x32,0xca,0xf8,0x7d,0x1, 0x7d,0x13,0x7e,0xf3,0x10,0x4d,0xbe,0xf0, +0x1, 0x78,0xd, 0x7d,0x30,0x74,0x18,0x7e,0x13,0x10,0x2b,0x7e,0x0, 0x2, 0x80,0x11, +0x4c,0xff,0x78,0x10,0x7d,0x30,0x6d,0x22,0x74,0x18,0x7e,0x13,0x10,0x2b,0x7e,0x0, +0x4, 0x12,0x5e,0xc8,0xda,0xf8,0x22,0xe4,0x7a,0xb3,0xf, 0xd3,0x6c,0xaa,0x6c,0x33, +0x6d,0xff,0x7e,0x10,0x18,0xac,0x1a,0xa, 0xe3,0x2d,0xe, 0x3e,0x4, 0x7d,0x40,0x2d, +0x42,0x1b,0x48,0xf0,0x6d,0x44,0x2d,0x3, 0x1b,0x8, 0x40,0xb, 0x30,0xa5,0xbb,0x18, +0xdf,0xb, 0xa0,0xbe,0xa0,0xd, 0x40,0xd6,0x22,0x7d,0x23,0x7c,0xab,0x6d,0x33,0x6c, +0x33,0x4c,0xaa,0x7e,0x10,0x7, 0x78,0xb, 0xac,0x13,0x2d,0x2, 0xb, 0x8, 0x0, 0x2d, +0x30,0x80,0xa, 0xac,0x13,0x2d,0x2, 0x49,0x0, 0x0, 0x2, 0x2d,0x30,0xb, 0x30,0xbe, +0x30,0x3, 0x40,0xdd,0x7e,0x24,0x0, 0x3, 0x8d,0x32,0x22,0x6c,0xaa,0x74,0x3, 0xa, +0x2a,0x2d,0x23,0x7a,0x29,0xb0,0xa, 0x2a,0x2d,0x23,0x19,0xb2,0x0, 0xa, 0x7e,0x24, +0xff,0xff,0x7e,0x30,0x2, 0xac,0x3a,0x7d,0x1, 0x2d,0x3, 0x59,0x20,0x0, 0x14,0x2d, +0x13,0x59,0x21,0x0, 0x28,0xb, 0xa0,0xbe,0xa0,0xa, 0x40,0xd1,0x22,0x7c,0xab,0x7e, +0x24,0xe, 0xdf,0xbe,0xa0,0xa, 0x50,0x25,0xa, 0x3a,0x7d,0x13,0x2d,0x12,0x7e,0x19, +0xb0,0xb4,0x2, 0xe, 0x74,0x1, 0x7a,0x19,0xb0,0x74,0x3, 0x2d,0x23,0x19,0xb2,0x0, +0xa, 0x22,0x74,0x3, 0x7a,0x19,0xb0,0x2d,0x32,0x19,0xb3,0x0, 0xa, 0x22,0xca,0x7b, +0xca,0x6b,0xca,0x5b,0xca,0x4b,0xca,0x2b,0xca,0x1b,0xca,0xb, 0xc0,0xd0,0xc0,0x83, +0xc0,0x82,0x12,0x6e,0x5c,0x53,0xb, 0xfd,0xd0,0x82,0xd0,0x83,0xd0,0xd0,0xda,0xb, +0xda,0x1b,0xda,0x2b,0xda,0x4b,0xda,0x5b,0xda,0x6b,0xda,0x7b,0x32,0x6d,0x33,0x7a, +0x37,0x11,0xd, 0x74,0x1, 0x7a,0xb3,0x11,0xf, 0x74,0xb, 0x7a,0xb3,0x11,0x10,0x74, +0x9, 0x7a,0xb3,0x11,0x11,0x74,0x1e,0x7a,0xb3,0x11,0x12,0x7a,0xb3,0x11,0x13,0x7a, +0xb3,0x11,0x14,0x74,0x1, 0x7a,0xb3,0x11,0x15,0x22,0x7e,0xb3,0xf, 0x1b,0x70,0x1e, +0x7e,0xa3,0xf, 0x1c,0xbe,0xa0,0x0, 0x28,0x15,0xe5,0x16,0x70,0xd, 0x7a,0xa3,0xf, +0x1b,0x74,0x1, 0x7a,0xb3,0xf, 0x22,0x5, 0x16,0x22,0x75,0x16,0x0, 0x22,0x75,0x16, +0x0, 0xe4,0x7a,0xb3,0xf, 0x22,0x22,0x6c,0xaa,0x80,0x1f,0x7e,0x70,0x2, 0xac,0x7a, +0x49,0x23,0x0, 0xd2,0x7e,0x70,0x18,0xac,0x7a,0x3e,0x34,0x2e,0x37,0xf, 0xda,0x2e, +0x34,0x0, 0x30,0x1b,0x35,0x1b,0x38,0x20,0xb, 0xa0,0x7e,0xb3,0x10,0x2b,0xbc,0xba, +0x38,0xd9,0x22,0x75,0x75,0x0, 0xa9,0xc6,0xea,0x7e,0x24,0x1d,0x0, 0xb, 0x28,0x30, +0x4e,0x34,0x2, 0x0, 0x1b,0x28,0x30,0xd2,0xeb,0xb, 0x28,0x30,0x4e,0x34,0x0, 0x2, +0x1b,0x28,0x30,0xb, 0x28,0x30,0x4e,0x34,0x0, 0x1, 0x1b,0x28,0x30,0x22,0x1, 0x5e, +0x0, 0xa, 0x0, 0x96,0x1, 0x2c,0x0, 0x9, 0x0, 0x50,0x0, 0xfa,0x0, 0x8, 0x0, 0x3c, +0x0, 0xc8,0x0, 0x6, 0x0, 0x32,0x0, 0xa0,0x0, 0x4, 0x0, 0x1e,0x0, 0x78,0x0, 0x3, +0x0, 0xa, 0x0, 0x3c,0x0, 0x2, 0x0, 0x0, 0xd2,0xc9,0xa9,0xd5,0xcb,0xa, 0x56,0xf5, +0xf1,0x7c,0xb7,0xf5,0xf2,0x75,0xf3,0x80,0x75,0xf4,0x0, 0x75,0xf5,0x83,0xa9,0x37, +0xf5,0xfc,0xa9,0x36,0xf5,0xfc,0xe5,0xf6,0x43,0xfa,0x80,0xc2,0xc9,0xa9,0xc5,0xcb, +0x22,0xc2,0xaf,0x75,0xfb,0x0, 0xd2,0xc9,0xa9,0xd5,0xcb,0xa, 0x56,0x1e,0x54,0x1e, +0x54,0x3e,0x54,0x3e,0x54,0xf5,0xf1,0x75,0xf2,0x0, 0x75,0xf5,0x90,0x74,0xa, 0x12, +0x6d,0x25,0xc2,0xc9,0xa9,0xc5,0xcb,0xd2,0xaf,0x22,0x12,0x22,0x20,0x12,0x3d,0xb5, +0x12,0x4c,0x41,0x60,0x6, 0x74,0x1, 0x7a,0xb3,0xe, 0xc, 0x7e,0xb3,0xe, 0xb, 0x60, +0x3, 0x12,0x60,0x78,0x7e,0xb3,0xe, 0xc, 0x60,0x6, 0x12,0x55,0x5a,0x2, 0x5f,0x1f, +0x22,0xe4,0x7a,0xb3,0x10,0x3d,0x7a,0xb3,0x10,0x4e,0x7a,0xb3,0xf, 0x28,0x12,0x6a, +0x18,0xb4,0x1, 0xd, 0x74,0x1, 0x7a,0xb3,0x10,0xa5,0x53,0xb, 0x8f,0x74,0x2, 0x80, +0x2, 0x74,0xff,0x7a,0xb3,0xf, 0x28,0x22,0xca,0xf8,0x7e,0xf0,0x1, 0x12,0x66,0x93, +0x7e,0xb3,0x10,0x3d,0xbe,0xb0,0x2, 0x68,0x2, 0x6c,0xff,0x12,0x65,0xe4,0x7e,0xb3, +0x10,0x4e,0xbe,0xb0,0x2, 0x68,0x2, 0x6c,0xff,0x7c,0xbf,0xda,0xf8,0x22,0x7e,0x34, +0xa, 0xb1,0x7e,0x24,0x3, 0x4d,0xe4,0x12,0x6d,0xe0,0x7e,0x34,0xb, 0x86,0x7e,0x24, +0x1, 0x90,0x74,0xff,0x12,0x6d,0xe0,0x7e,0x34,0xd, 0x6b,0x7e,0x24,0x0, 0x8c,0x74, +0xff,0x2, 0x6d,0xe0,0x9, 0xb3,0x0, 0x4d,0xb4,0x1, 0x6, 0x9, 0x53,0x0, 0x51,0x80, +0x3, 0x7e,0x39,0x50,0xa, 0x15,0x7e,0x24,0x1d,0x2, 0x1b,0x28,0x10,0x49,0x23,0x0, +0x3b,0x7e,0x34,0x1d,0x6, 0x1b,0x38,0x20,0x22,0xe4,0x7a,0xb3,0xf, 0xd2,0x6c,0xaa, +0x6d,0x44,0x7e,0x30,0x2, 0xac,0x3a,0x7d,0x1, 0x2d,0x2, 0x1b,0x8, 0x40,0x6d,0x0, +0x2d,0x13,0x1b,0x18,0x0, 0xb, 0xa0,0xbe,0xa0,0x25,0x40,0xe4,0x22,0x7e,0x34,0x12, +0x1, 0x7e,0x24,0x0, 0x1e,0xe4,0x12,0x6d,0xe0,0x7e,0x34,0x12,0x1f,0x7e,0x24,0x0, +0x14,0xe4,0x12,0x6d,0xe0,0x7e,0x34,0x11,0xed,0x7e,0x24,0x0, 0x14,0xe4,0x2, 0x6d, +0xe0,0x12,0x0, 0x6e,0x50,0x1d,0x12,0x6e,0xad,0x7c,0xab,0x7e,0xb3,0x11,0x95,0xbe, +0xb0,0x4, 0x68,0xf, 0xbe,0xa0,0xff,0x68,0xa, 0x74,0x1, 0x7a,0xb3,0x11,0xc, 0x7a, +0xa3,0x11,0x95,0x22,0xca,0xf8,0x6c,0xff,0x7e,0xb3,0x10,0x3d,0x70,0x3, 0x7e,0xf0, +0x1, 0x74,0x1, 0x12,0x3e,0xf7,0xbe,0xb0,0x1, 0x68,0x5, 0xbe,0xf0,0x1, 0x78,0x4, +0xe4,0x12,0x3e,0xf7,0xda,0xf8,0x22,0xa9,0xc3,0xe1,0x75,0xe4,0x3, 0x75,0xe5,0x0, +0x75,0xe4,0x4, 0x75,0xe5,0x0, 0x75,0xe4,0x5, 0x75,0xe5,0x0, 0x75,0xe4,0x6, 0x9, +0xb3,0x0, 0x16,0xc4,0x33,0x54,0xe0,0xf5,0xe5,0x22,0x7e,0x34,0x8, 0x9a,0x7e,0x24, +0x11,0x9e,0x7e,0x14,0x1, 0x90,0x12,0x3c,0x70,0x7e,0x34,0x9, 0x2e,0x7e,0x24,0x11, +0x4a,0x7e,0x14,0x0, 0xc8,0x12,0x3c,0x70,0x2, 0x56,0xf3,0x74,0x1, 0x12,0x6e,0x3d, +0xa9,0xc3,0xea,0xa9,0xc6,0xeb,0xa9,0xd6,0xac,0xa9,0xd6,0xec,0xd2,0x86,0x75,0x9a, +0x7f,0xa9,0xd1,0x99,0xd2,0x9c,0xa9,0xd6,0xdf,0xd2,0xaf,0x22,0xe5,0x52,0xb4,0x1, +0x18,0xe5,0x51,0x70,0x14,0x7e,0xb3,0x11,0x95,0x60,0xb, 0xe4,0x7a,0xb3,0x11,0x95, +0x74,0x1, 0x7a,0xb3,0x11,0xc, 0x12,0x6c,0x58,0x85,0x51,0x52,0x22,0x6c,0xaa,0x7e, +0x50,0x4, 0xac,0x5a,0x49,0x12,0x0, 0xec,0xbd,0x13,0x38,0x8, 0x49,0x22,0x0, 0xee, +0xbd,0x23,0x50,0x7, 0xb, 0xa0,0xbe,0xa0,0x3, 0x40,0xe4,0x7c,0xba,0x22,0x7e,0x24, +0x0, 0x2, 0x7e,0x34,0x1d,0x8, 0x1b,0x38,0x20,0x12,0x6d,0x8d,0x12,0x6c,0xab,0x7e, +0x34,0x7, 0xd0,0x7d,0x23,0x1b,0x34,0x4d,0x22,0x78,0xf8,0x2, 0x0, 0x2e,0x75,0x55, +0x0, 0x75,0x73,0x0, 0x75,0x54,0x0, 0x12,0x6b,0xfd,0x12,0x61,0xcd,0xf5,0x53,0x12, +0x62,0x6b,0xb4,0x1, 0x4, 0x75,0x55,0x1, 0x22,0x75,0x55,0x3, 0x22,0x7e,0x34,0x0, +0x1, 0x7a,0x35,0x56,0x7e,0x34,0xa, 0x18,0x7a,0x35,0x58,0x7e,0x34,0x0, 0x2, 0x7a, +0x35,0x5a,0x7e,0x34,0xa, 0x62,0x7a,0x35,0x5c,0x74,0x2, 0x22,0x0, 0x50,0x0, 0xa, +0x6, 0x4, 0x0, 0x78,0x0, 0xc, 0x6, 0x4, 0x0, 0xc8,0x0, 0x1e,0x8, 0x5, 0x1, 0x40, +0x0, 0x50,0x8, 0x5, 0x1, 0xf4,0x0, 0x64,0xa, 0x6, 0xe4,0x7a,0xb3,0x16,0xb1,0x7a, +0xb3,0x16,0xb0,0x7e,0xb3,0x10,0xa3,0x70,0x6, 0x7e,0x73,0x11,0x10,0x80,0x4, 0x7e, +0x73,0x11,0x12,0x7a,0x73,0x16,0xb2,0x22,0xe4,0x7a,0xb3,0x10,0x78,0x74,0x2, 0x7a, +0xb3,0x10,0x7b,0x74,0x4, 0x7a,0xb3,0x10,0x7c,0x7e,0x34,0x16,0x55,0x7e,0x24,0x0, +0x48,0xe4,0x2, 0x6d,0xe0,0x75,0x91,0x0, 0xc2,0x90,0xc2,0x91,0x75,0x92,0x7c,0xd2, +0xad,0xd2,0xe8,0xc2,0xc0,0xa9,0xd5,0xb7,0xd2,0xbd,0xa9,0xd0,0xf7,0xd2,0xf8,0x22, +0xe4,0x7a,0xb3,0xd, 0xfb,0x7e,0x34,0x11,0x9e,0x7a,0x37,0xf, 0xd6,0x12,0x40,0x32, +0x7e,0x34,0x8, 0x9a,0x7a,0x37,0xf, 0xd6,0x2, 0x46,0xe9,0x75,0x75,0x1, 0x7e,0x24, +0x1d,0x0, 0xb, 0x28,0x30,0x4e,0x34,0x2, 0x0, 0x1b,0x28,0x30,0xd2,0xeb,0x7e,0x34, +0x0, 0x1, 0x2, 0x6e,0x27,0xc2,0x8e,0x43,0x89,0x20,0x75,0x8d,0x0, 0xa9,0x34,0xc9, +0x5, 0x75,0x8b,0xe6,0x80,0x3, 0x75,0x8b,0x78,0xd2,0x8e,0xd2,0xab,0x22,0xe5,0x51, +0xb4,0x1, 0x6, 0x7e,0x34,0x0, 0x5a,0x80,0x4, 0x7e,0x34,0x0, 0x3c,0x7a,0x37,0xf, +0x54,0x7a,0x37,0xf, 0x56,0x22,0xca,0xf8,0x12,0x6e,0x32,0x7c,0xfb,0x12,0x0, 0x6e, +0x50,0x7, 0x4c,0xff,0x78,0x3, 0xe4,0x80,0x2, 0x74,0x1, 0xda,0xf8,0x22,0x7e,0x34, +0x0, 0x24,0x12,0x69,0x78,0x7c,0x7b,0xa5,0xbf,0xff,0x3, 0x7e,0x70,0x4, 0xa, 0x57, +0x2e,0x54,0x0, 0x10,0x22,0x7c,0xab,0x80,0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x7c,0x7a,0x1b,0xa0,0xa5,0xbf,0x0, 0xee,0x22,0x7d,0x3, 0x80,0xa, +0x7e,0x29,0xb0,0x7a,0x9, 0xb0,0xb, 0x24,0xb, 0x4, 0x7d,0x51,0x1b,0x14,0x4d,0x55, +0x78,0xee,0x22,0x7e,0x53,0xf, 0x47,0xa, 0x25,0x3e,0x24,0x3e,0x24,0x9d,0x32,0xbe, +0x34,0x0, 0x0, 0x8, 0x1, 0x22,0x6d,0x33,0x22,0x70,0x3, 0x43,0x87,0x1, 0xb4,0x1, +0x3, 0x43,0x87,0x2, 0xb4,0x2, 0x3, 0x43,0x87,0x2, 0x22,0x74,0x3, 0x7a,0xb3,0x16, +0xa3,0xe4,0x7a,0xb3,0x16,0xaa,0x74,0xff,0x7a,0xb3,0x16,0xa2,0x22,0x75,0x76,0x1, +0xd2,0xee,0x75,0xe6,0x0, 0xa9,0xd3,0xe1,0x7e,0x34,0x0, 0x1, 0x2, 0x6e,0x27,0xa, +0x2b,0x19,0x72,0x10,0x7e,0x7e,0xb3,0x10,0xfe,0x44,0x1, 0x7a,0xb3,0x10,0xfe,0x22, +0x7d,0x13,0xbd,0x21,0x50,0x5, 0x7d,0x31,0x9d,0x32,0x22,0x7d,0x32,0x9d,0x31,0x22, +0x14,0x1, 0xa, 0x1, 0x0, 0x2, 0xfb,0x4, 0xf6,0x5, 0xec,0x6, 0xe7,0x7, 0xe2,0x8, +0x7d,0x23,0xbe,0x24,0x0, 0x0, 0x48,0x3, 0x7d,0x32,0x22,0x6d,0x33,0x9d,0x32,0x22, +0x7d,0x13,0x80,0x7, 0x1b,0x24,0x7a,0x19,0xb0,0xb, 0x14,0x4d,0x22,0x78,0xf5,0x22, +0x10,0x10,0x10,0x1c,0x19,0x14,0x10,0xe, 0xc, 0xb, 0xa, 0x9, 0x8, 0x7, 0x6, 0x12, +0x0, 0x42,0x12,0x57,0x73,0x74,0x3, 0x12,0x43,0xae,0x2, 0x24,0xb4,0x7e,0x34,0x0, +0x21,0x12,0x69,0x78,0xb4,0xff,0x3, 0x74,0x1, 0x22,0x22,0x7e,0xb3,0x11,0x15,0xb4, +0x1, 0x4, 0xe4,0x2, 0x6e,0x92,0x22,0x6d,0x22,0x80,0x2, 0xb, 0x24,0xbd,0x32,0x38, +0xfa,0x22,0x12,0x62,0xb7,0xb4,0x1, 0x2, 0xe4,0x22,0x74,0x1, 0x22,0xd2,0xcf,0xa9, +0xd4,0xc9,0x75,0xcc,0x0, 0xc2,0xca,0x22,0xa9,0xc0,0x93,0x75,0x9, 0x0, 0x75,0xa, +0x0, 0x32,0x75,0x53,0x0, 0x75,0x54,0x0, 0x75,0x55,0x0, 0x22,0xa9,0x32,0x99,0x5, +0xd2,0x9c,0xa9,0xd6,0xdf,0x22,0x75,0xb, 0x0, 0x12,0x6e,0xc3,0x2, 0x5e,0x18,0x12, +0x6b,0x5b,0x12,0x6e,0xc9,0x2, 0x6e,0x66,0xe5,0x75,0x60,0x3, 0x74,0x1, 0x22,0xe4, +0x22,0xe5,0x76,0x60,0x3, 0x74,0x1, 0x22,0xe4,0x22,0x1, 0x2, 0x4, 0x8, 0x10,0x20, +0x40,0x80,0x70,0x3, 0xd2,0x86,0x22,0xc2,0x86,0x22,0xa9,0xd0,0x99,0xa9,0xc6,0xdf, +0x22,0xf5,0x17,0x75,0x18,0x0, 0x22,0x12,0x61,0x79,0x2, 0x38,0x4a,0x12,0x4f,0xa8, +0x2, 0x62,0x1d,0x12,0x6e,0xd5,0x2, 0x6b,0xde,0x7e,0x34,0x1, 0x3, 0x22,0x7e,0x34, +0x5, 0xb, 0x22,0x2, 0x6c,0x75,0x2, 0x0, 0x76,0x2, 0x6c,0xc5,0x2, 0x6e,0x9a,0x2, +0x6e,0x5c,0xe5,0x6e,0x22,0x22,0x0, 0x1, 0x0, 0x8b,0x1, 0x0, 0x1, 0xa, 0xac,0x15, +0x0, 0x1, 0xa, 0xad,0x17,0x0, 0x1, 0xa, 0xae,0x4, 0x0, 0x1, 0xd, 0xfe,0x30,0x0, +0x5, 0xf, 0x29,0x20,0x17,0x29,0x38,0x13,0x0, 0x18,0xf, 0x2e,0x0, 0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, +0x0, 0x3, 0x0, 0x0, 0x0, 0x25,0xf, 0x63,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0, 0x18,0xf, +0x88,0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, +0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0x0, 0xd, 0xf, 0xa0,0x0, 0x0, 0x0, +0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x18,0xf, 0xad,0xc, 0xd, +0xe, 0xf, 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x0, 0x1, 0x2, 0x3, 0x4, 0xb, +0xa, 0x9, 0x8, 0x7, 0x6, 0x5, 0x0, 0xd, 0xf, 0xc5,0x1, 0x2, 0x3, 0x4, 0x5, 0x6, +0x7, 0x8, 0x0, 0x9, 0xa, 0xb, 0xc, 0x0, 0x25,0xf, 0xdc,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0x0, 0xd, 0x10,0xff,0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, +0xa, 0x0, 0x1, 0x11,0xc, 0x0, 0x0, 0x1, 0x11,0x16,0x15,0x0, 0x32,0x11,0x17,0x0, +0x8, 0x0, 0x13,0x0, 0x26,0x0, 0x43,0x0, 0x6c,0x0, 0xa4,0x0, 0xed,0x1, 0x4a,0x1, +0xbc,0x2, 0x45,0x2, 0xe4,0x3, 0x99,0x4, 0x61,0x5, 0x3a,0x6, 0x1f,0x7, 0xc, 0x7, +0xf9,0x8, 0xe1,0x9, 0xbd,0xa, 0x86,0xb, 0x34,0xb, 0xc3,0xc, 0x2d,0xc, 0x6e,0xc, +0x83,0x0, 0x1, 0x11,0x49,0x17,0x0, 0x1, 0x11,0x94,0x2, 0x0, 0x1, 0x11,0x95,0x0, +0x0, 0x4, 0x11,0x97,0xff,0xff,0xff,0xff,0x0, 0x2, 0x11,0x9b,0xff,0x1f,0x0, 0x1, +0x11,0x9d,0x30,0x0, 0x1, 0x11,0xe8,0x0, 0x0, 0x4, 0x11,0xe9,0x23,0x23,0x23,0x23, +0x0, 0x1, 0x16,0x53,0x0, 0x0, 0x1, 0x15,0x53,0x0, 0x0, 0x1, 0x15,0x9e,0x0, 0x0, +0x1, 0x15,0x9f,0x0, 0x0, 0x1, 0x15,0xa0,0x0, 0x0, 0x1, 0x15,0xa1,0x0, 0x0, 0x1, +0x12,0x33,0x0, 0x0, 0x1, 0x16,0xac,0x0, 0x0, 0x1, 0x16,0xb4,0x0, 0x0, 0x1, 0x16, +0xb5,0x0, 0x0, 0x1, 0x16,0xb6,0x0, 0x0, 0x1, 0x16,0xb7,0x0, 0x0, 0x1, 0x16,0xb8, +0x0, 0x0, 0x1, 0x16,0xb9,0x0, 0x0, 0x1, 0x16,0xba,0x1, 0x0, 0x1, 0x16,0xbb,0x1, +0x0, 0xc, 0x0, 0xec,0x0, 0x46,0x0, 0xe6,0x1, 0x18,0x1, 0xb8,0x1, 0xf4,0x2, 0x94, +0x0, 0x6, 0x0, 0xf8,0x0, 0xb4,0x2, 0x1c,0x3, 0x84,0x0, 0x1, 0x16,0x54,0x3, 0x0, +0x1, 0x16,0x9d,0x0, 0x0, 0x1, 0x0, 0xfe,0x0, 0x0, 0x1, 0x0, 0xff,0x0, 0x0, 0x1, +0x16,0xbc,0x0, 0x0, 0x0, 0x53,0x5a,0x1e,0xe1,0xff,0xff,0x70,0xc5,0x8f,0x3a,0xa2, +0x5d,0x9, 0xf3, \ No newline at end of file diff --git a/drivers/input/touchscreen/gen_vkeys.c b/drivers/input/touchscreen/gen_vkeys.c index dde582f4f8bff..d26eb4d28a818 100644 --- a/drivers/input/touchscreen/gen_vkeys.c +++ b/drivers/input/touchscreen/gen_vkeys.c @@ -30,7 +30,7 @@ #define BORDER_ADJUST_NUM 3 #define BORDER_ADJUST_DENOM 4 -static struct kobject *vkey_obj; +struct kobject *vkey_obj; static char *vkey_buf; static ssize_t vkey_show(struct kobject *obj, diff --git a/drivers/input/touchscreen/gen_vkeys_gt.c b/drivers/input/touchscreen/gen_vkeys_gt.c new file mode 100644 index 0000000000000..539b5e50f8655 --- /dev/null +++ b/drivers/input/touchscreen/gen_vkeys_gt.c @@ -0,0 +1,229 @@ +/* Copyright (c) 2013, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include +#include +#include +#include +#include +#include +#include + +#define MAX_BUF_SIZE 256 +#define VKEY_VER_CODE "0x01" + +#define HEIGHT_SCALE_NUM 8 +#define HEIGHT_SCALE_DENOM 10 + +#define VKEY_Y_OFFSET_DEFAULT 0 + +/* numerator and denomenator for border equations */ +#define BORDER_ADJUST_NUM 3 +#define BORDER_ADJUST_DENOM 4 + +extern struct kobject *vkey_obj; +static char *vkey_buf; + +static ssize_t vkey_show(struct kobject *obj, + struct kobj_attribute *attr, char *buf) +{ + strlcpy(buf, vkey_buf, MAX_BUF_SIZE); + return strnlen(buf, MAX_BUF_SIZE); +} + +static struct kobj_attribute vkey_obj_attr = { + .attr = { + .mode = S_IRUGO, + }, + .show = vkey_show, +}; + +static struct attribute *vkey_attr[] = { + &vkey_obj_attr.attr, + NULL, +}; + +static struct attribute_group vkey_grp = { + .attrs = vkey_attr, +}; + +static int vkey_parse_dt(struct device *dev, + struct vkeys_platform_data *pdata) +{ + struct device_node *np = dev->of_node; + struct property *prop; + int rc, val; + + rc = of_property_read_string(np, "label", &pdata->name); + if (rc) { + dev_err(dev, "Failed to read label\n"); + return -EINVAL; + } + + rc = of_property_read_u32(np, "qcom,disp-maxx", &pdata->disp_maxx); + if (rc) { + dev_err(dev, "Failed to read display max x\n"); + return -EINVAL; + } + + rc = of_property_read_u32(np, "qcom,disp-maxy", &pdata->disp_maxy); + if (rc) { + dev_err(dev, "Failed to read display max y\n"); + return -EINVAL; + } + + rc = of_property_read_u32(np, "qcom,panel-maxx", &pdata->panel_maxx); + if (rc) { + dev_err(dev, "Failed to read panel max x\n"); + return -EINVAL; + } + + rc = of_property_read_u32(np, "qcom,panel-maxy", &pdata->panel_maxy); + if (rc) { + dev_err(dev, "Failed to read panel max y\n"); + return -EINVAL; + } + + prop = of_find_property(np, "qcom,key-codes", NULL); + if (prop) { + pdata->num_keys = prop->length / sizeof(u32); + pdata->keycodes = devm_kzalloc(dev, + sizeof(u32) * pdata->num_keys, GFP_KERNEL); + if (!pdata->keycodes) + return -ENOMEM; + rc = of_property_read_u32_array(np, "qcom,key-codes", + pdata->keycodes, pdata->num_keys); + if (rc) { + dev_err(dev, "Failed to read key codes\n"); + return -EINVAL; + } + } + + pdata->y_offset = VKEY_Y_OFFSET_DEFAULT; + rc = of_property_read_u32(np, "qcom,y-offset", &val); + if (!rc) + pdata->y_offset = val; + else if (rc != -EINVAL) { + dev_err(dev, "Failed to read y position offset\n"); + return rc; + } + return 0; +} + +static int vkeys_probe(struct platform_device *pdev) +{ + struct vkeys_platform_data *pdata; + int width, height, center_x, center_y; + int x1 = 0, x2 = 0, i, c = 0, ret, border; + char *name; + + vkey_buf = devm_kzalloc(&pdev->dev, MAX_BUF_SIZE, GFP_KERNEL); + if (!vkey_buf) { + dev_err(&pdev->dev, "Failed to allocate memory\n"); + return -ENOMEM; + } + + if (pdev->dev.of_node) { + pdata = devm_kzalloc(&pdev->dev, + sizeof(struct vkeys_platform_data), GFP_KERNEL); + if (!pdata) { + dev_err(&pdev->dev, "Failed to allocate memory\n"); + return -ENOMEM; + } + + ret = vkey_parse_dt(&pdev->dev, pdata); + if (ret) { + dev_err(&pdev->dev, "Parsing DT failed(%d)", ret); + return ret; + } + } else + pdata = pdev->dev.platform_data; + + if (!pdata || !pdata->name || !pdata->keycodes || !pdata->num_keys || + !pdata->disp_maxx || !pdata->disp_maxy || !pdata->panel_maxy) { + dev_err(&pdev->dev, "pdata is invalid\n"); + return -EINVAL; + } + + border = (pdata->panel_maxx - pdata->disp_maxx) * 2; + width = ((pdata->disp_maxx - (border * (pdata->num_keys - 1))) + / pdata->num_keys); + height = (pdata->panel_maxy - pdata->disp_maxy); + center_y = pdata->disp_maxy + (height / 2) + pdata->y_offset; + height = height * HEIGHT_SCALE_NUM / HEIGHT_SCALE_DENOM; + + x2 -= border * BORDER_ADJUST_NUM / BORDER_ADJUST_DENOM; + + for (i = 0; i < pdata->num_keys; i++) { + x1 = x2 + border; + x2 = x2 + border + width; + center_x = x1 + (x2 - x1) / 2; + c += snprintf(vkey_buf + c, MAX_BUF_SIZE - c, + "%s:%d:%d:%d:%d:%d\n", + VKEY_VER_CODE, pdata->keycodes[i], + center_x, center_y, width, height); + } + + vkey_buf[c] = '\0'; + + name = devm_kzalloc(&pdev->dev, sizeof(*name) * MAX_BUF_SIZE, + GFP_KERNEL); + if (!name) + return -ENOMEM; + + snprintf(name, MAX_BUF_SIZE, + "virtualkeys.%s", pdata->name); + vkey_obj_attr.attr.name = name; + + + if (!vkey_obj) { + vkey_obj = kobject_create_and_add("board_properties", NULL); + } + + ret = sysfs_create_group(vkey_obj, &vkey_grp); + if (ret) { + dev_err(&pdev->dev, "failed to create attributes\n"); + goto destroy_kobj; + } + return 0; + +destroy_kobj: + kobject_put(vkey_obj); + + return ret; +} + +static int vkeys_remove(struct platform_device *pdev) +{ + sysfs_remove_group(vkey_obj, &vkey_grp); + kobject_put(vkey_obj); + + return 0; +} + +static struct of_device_id vkey_match_table[] = { + { .compatible = "qcom,gen-vkeys_gt",}, + { }, +}; + +static struct platform_driver vkeys_driver = { + .probe = vkeys_probe, + .remove = vkeys_remove, + .driver = { + .owner = THIS_MODULE, + .name = "gen_vkeys_gt", + .of_match_table = vkey_match_table, + }, +}; + +module_platform_driver(vkeys_driver); +MODULE_LICENSE("GPL v2"); diff --git a/drivers/input/touchscreen/synaptics_rmi_dev.c b/drivers/input/touchscreen/synaptics_rmi_dev.c index 1b69d53b9bddf..d83912664865e 100644 --- a/drivers/input/touchscreen/synaptics_rmi_dev.c +++ b/drivers/input/touchscreen/synaptics_rmi_dev.c @@ -73,19 +73,19 @@ struct rmidev_data { }; static struct device_attribute attrs[] = { - __ATTR(open, S_IWUSR | S_IWGRP, + __ATTR(open, S_IWUSR, NULL, rmidev_sysfs_open_store), - __ATTR(release, S_IWUSR | S_IWGRP, + __ATTR(release, S_IWUSR, NULL, rmidev_sysfs_release_store), - __ATTR(address, S_IWUSR | S_IWGRP, + __ATTR(address, S_IWUSR, NULL, rmidev_sysfs_address_store), - __ATTR(length, S_IWUSR | S_IWGRP, + __ATTR(length, S_IWUSR, NULL, rmidev_sysfs_length_store), - __ATTR(data, (S_IWUSR | S_IWGRP), + __ATTR(data, S_IWUSR, rmidev_sysfs_data_show, rmidev_sysfs_data_store), }; diff --git a/drivers/irqchip/msm_show_resume_irq.c b/drivers/irqchip/msm_show_resume_irq.c index 4a796207738fd..bdb76fd910e5c 100644 --- a/drivers/irqchip/msm_show_resume_irq.c +++ b/drivers/irqchip/msm_show_resume_irq.c @@ -15,7 +15,7 @@ #include #include -int msm_show_resume_irq_mask; +int msm_show_resume_irq_mask = 1; module_param_named( debug_mask, msm_show_resume_irq_mask, int, S_IRUGO | S_IWUSR | S_IWGRP diff --git a/drivers/leds/Kconfig b/drivers/leds/Kconfig index 7e3e74ce82e34..1018fbcbbdccf 100644 --- a/drivers/leds/Kconfig +++ b/drivers/leds/Kconfig @@ -542,7 +542,23 @@ config LEDS_AW2013 This option enables support for the AW2013 RGB LED connected through I2C. Say Y to enable support for the AW2013 LED. +config DIFFERENT_TP_COLOR + tristate "TP support for different color" + help + This option enables support for different color. + +config COLOFUL_RGB_FOR_PROJECT + tristate "different colorful rgb_control for project" + help + This option enables colorful rgb_control for project. + comment "LED Triggers" source "drivers/leds/trigger/Kconfig" endif # NEW_LEDS + +config VIB_GPIO + tristate "LED support for LM3533" + help + This option enables support for the LEDs on National Semiconductor / + TI LM3533 Lighting Power chips diff --git a/drivers/leds/Makefile b/drivers/leds/Makefile index c5178d9dbf19c..93ec56b84b6a8 100644 --- a/drivers/leds/Makefile +++ b/drivers/leds/Makefile @@ -60,9 +60,7 @@ obj-$(CONFIG_LEDS_SYSCON) += leds-syscon.o obj-$(CONFIG_LEDS_VERSATILE) += leds-versatile.o obj-$(CONFIG_LEDS_MENF21BMC) += leds-menf21bmc.o obj-$(CONFIG_LEDS_AW2013) += leds-aw2013.o - -# LED SPI Drivers +obj-$(CONFIG_VIB_GPIO) += gpio_vib.o obj-$(CONFIG_LEDS_DAC124S085) += leds-dac124s085.o - -# LED Triggers +obj-y +=leds-msm-gpio-flash.o obj-$(CONFIG_LEDS_TRIGGERS) += trigger/ diff --git a/drivers/leds/gpio_vib.c b/drivers/leds/gpio_vib.c new file mode 100644 index 0000000000000..293d130d3c10d --- /dev/null +++ b/drivers/leds/gpio_vib.c @@ -0,0 +1,224 @@ +/* drivers/misc/timed_gpio.c + * + * Copyright (C) 2008 Google, Inc. + * Author: Mike Lockwood + * Copyright (C) 2018 XiaoMi, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#include +#include +#include +#include +#include +#include +#include "../staging/android/timed_output.h" +#include "../staging/android/timed_gpio.h" +#include +#include +#define GPIO_VIB_NAME "gpio-vibrator" + +struct timed_gpio_data { + struct timed_output_dev dev; + struct hrtimer timer; + spinlock_t lock; + unsigned gpio; + int max_timeout; + u8 active_low; +}; +struct gpio_vib { + const char *name; + unsigned gpio; + int max_timeout; + unsigned active_low:1; +}; +static void delete_gpio_vib(struct timed_gpio_data *vib) +{ + if (!gpio_is_valid(vib->gpio)) + return; + timed_output_dev_unregister(&vib->dev); + gpio_free(vib->gpio); +} +static enum hrtimer_restart gpio_timer_func(struct hrtimer *timer) +{ + struct timed_gpio_data *data = + container_of(timer, struct timed_gpio_data, timer); + + gpio_direction_output(data->gpio, data->active_low ? 1 : 0); + return HRTIMER_NORESTART; +} + +static int gpio_get_time(struct timed_output_dev *dev) +{ + struct timed_gpio_data *data; + struct timeval t; + + data = container_of(dev, struct timed_gpio_data, dev); + + if (!hrtimer_active(&data->timer)) + return 0; + + t = ktime_to_timeval(hrtimer_get_remaining(&data->timer)); + + return t.tv_sec * 1000 + t.tv_usec / 1000; +} + +static void gpio_enable(struct timed_output_dev *dev, int value) +{ + struct timed_gpio_data *data = + container_of(dev, struct timed_gpio_data, dev); + unsigned long flags; + + spin_lock_irqsave(&data->lock, flags); + + /* cancel previous timer and set GPIO according to value */ + hrtimer_cancel(&data->timer); + gpio_direction_output(data->gpio, data->active_low ? !value : !!value); + + if (value > 0) { + if (value > data->max_timeout) + value = data->max_timeout; + printk("max_timeout is %d\n", data->max_timeout); + hrtimer_start(&data->timer, + ktime_set(value / 1000, (value % 1000) * 1000000), + HRTIMER_MODE_REL); + } + + spin_unlock_irqrestore(&data->lock, flags); +} +static int create_gpio_vib(const struct gpio_vib *template, + struct timed_gpio_data *gpio_dat, struct device *parent) +{ + int ret; + gpio_dat->gpio = template->gpio; + hrtimer_init(&gpio_dat->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); + gpio_dat->timer.function = gpio_timer_func; + spin_lock_init(&gpio_dat->lock); + gpio_dat->dev.name = template->name; + gpio_dat->dev.get_time = gpio_get_time; + gpio_dat->dev.enable = gpio_enable; + ret = gpio_request(gpio_dat->gpio, gpio_dat->dev.name); + if (ret < 0) + return 0; + ret = timed_output_dev_register(&gpio_dat->dev); + if (ret < 0) { + gpio_free(gpio_dat->gpio); + return 0; + } + gpio_dat->max_timeout = template->max_timeout; + gpio_dat->active_low = template->active_low; + gpio_direction_output(gpio_dat->gpio, gpio_dat->active_low); + return 0; +} +struct gpio_vibs_priv { + int num_vibs; + struct timed_gpio_data vibs[]; +}; + +static inline int sizeof_gpio_vibs_priv(int num_vibs) +{ + return sizeof(struct gpio_vibs_priv) + + (sizeof(struct timed_gpio_data) * num_vibs); +} + +#define DEFAULT_TIME_MAX_MS 50000 +static struct gpio_vibs_priv *gpio_vibs_create_of(struct platform_device *pdev) +{ + struct device_node *np = pdev->dev.of_node, *child; + int count, ret; + unsigned timerv; + struct gpio_vibs_priv *priv; + count = of_get_child_count(np); + if (!count) + return ERR_PTR(-ENODEV); + + for_each_child_of_node(np, child) + if (of_get_gpio(child, 0) == -EPROBE_DEFER) + return ERR_PTR(-EPROBE_DEFER); + + priv = devm_kzalloc(&pdev->dev, sizeof_gpio_vibs_priv(count), + GFP_KERNEL); + if (!priv) + return ERR_PTR(-ENOMEM); + + for_each_child_of_node(np, child) { + struct gpio_vib vib = {}; + enum of_gpio_flags flags; + vib.gpio = of_get_gpio_flags(child, 0, &flags); + vib.active_low = flags & OF_GPIO_ACTIVE_LOW; + vib.name = of_get_property(child, "label", NULL) ? : child->name; + ret = of_property_read_u32(child, "max_timeout", &timerv); + if (!ret) { + vib.max_timeout = timerv; + printk("wingtech vib.max_timeout = %d\n", vib.max_timeout); + } else{ + vib.max_timeout = DEFAULT_TIME_MAX_MS; + printk("wingtech vib.max_timeout used default = %d, ret=%d\n", vib.max_timeout, ret); + } + + ret = create_gpio_vib(&vib, &priv->vibs[priv->num_vibs++], + &pdev->dev); + if (ret < 0) { + of_node_put(child); + goto err; + } + } + return priv; + err: + for (count = priv->num_vibs - 2; count >= 0; count--) + delete_gpio_vib(&priv->vibs[count]); + return ERR_PTR(-ENODEV); +} + +static int timed_gpio_probe(struct platform_device *pdev) +{ + struct gpio_vibs_priv *priv; + priv = gpio_vibs_create_of(pdev); + if (IS_ERR(priv)) + return PTR_ERR(priv); + platform_set_drvdata(pdev, priv); + return 0; +} + +static int timed_gpio_remove(struct platform_device *pdev) +{ + struct timed_gpio_platform_data *pdata = pdev->dev.platform_data; + struct timed_gpio_data *gpio_data = platform_get_drvdata(pdev); + int i; + + for (i = 0; i < pdata->num_gpios; i++) { + timed_output_dev_unregister(&gpio_data[i].dev); + gpio_free(gpio_data[i].gpio); + } + + return 0; +} +static struct of_device_id vib_match_table[] = { + { .compatible = "gpio-vibrator", + }, + {} +}; +static struct platform_driver timed_gpio_driver = { + .probe = timed_gpio_probe, + .remove = timed_gpio_remove, + .driver = { + .name = GPIO_VIB_NAME, + .owner = THIS_MODULE, + .of_match_table = vib_match_table, + }, +}; + +module_platform_driver(timed_gpio_driver); + +MODULE_AUTHOR("Mike Lockwood "); +MODULE_DESCRIPTION("timed gpio driver"); +MODULE_LICENSE("GPL"); diff --git a/drivers/leds/led-triggers.c b/drivers/leds/led-triggers.c index e8b1120f486d6..b32cb63dc5c34 100644 --- a/drivers/leds/led-triggers.c +++ b/drivers/leds/led-triggers.c @@ -2,6 +2,7 @@ * LED Triggers Core * * Copyright 2005-2007 Openedhand Ltd. + * Copyright (C) 2018 XiaoMi, Inc. * * Author: Richard Purdie * @@ -305,6 +306,23 @@ void led_trigger_blink_oneshot(struct led_trigger *trig, } EXPORT_SYMBOL_GPL(led_trigger_blink_oneshot); +struct led_trigger *led_trigger_get(const char *name) +{ + struct led_trigger *_trig; + + down_write(&triggers_list_lock); + /* Make sure the trigger's name isn't already in use */ + list_for_each_entry(_trig, &trigger_list, next_trig) { + if (!strcmp(_trig->name, name)) { + up_write(&triggers_list_lock); + return _trig; + } + } + up_write(&triggers_list_lock); + return NULL; +} + + void led_trigger_register_simple(const char *name, struct led_trigger **tp) { struct led_trigger *trig; @@ -325,6 +343,9 @@ void led_trigger_register_simple(const char *name, struct led_trigger **tp) pr_warn("LED trigger %s failed to register (no memory)\n", name); } + if (!strcmp("switch_trigger", name) && trig == NULL) { + trig = led_trigger_get(name); + } *tp = trig; } EXPORT_SYMBOL_GPL(led_trigger_register_simple); diff --git a/drivers/leds/leds-aw2013.c b/drivers/leds/leds-aw2013.c index d0a39fab2821c..e30d8c983c5d8 100644 --- a/drivers/leds/leds-aw2013.c +++ b/drivers/leds/leds-aw2013.c @@ -1,656 +1,756 @@ -/* - * Copyright (c) 2015, The Linux Foundation. All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 and - * only version 2 as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - */ - -#include #include -#include -#include +#include +#include #include -#include #include +#include #include -#include - -/* register address */ -#define AW_REG_RESET 0x00 -#define AW_REG_GLOBAL_CONTROL 0x01 -#define AW_REG_LED_STATUS 0x02 -#define AW_REG_LED_ENABLE 0x30 -#define AW_REG_LED_CONFIG_BASE 0x31 -#define AW_REG_LED_BRIGHTNESS_BASE 0x34 -#define AW_REG_TIMESET0_BASE 0x37 -#define AW_REG_TIMESET1_BASE 0x38 - -/* register bits */ -#define AW2013_CHIPID 0x33 -#define AW_LED_MOUDLE_ENABLE_MASK 0x01 -#define AW_LED_FADE_OFF_MASK 0x40 -#define AW_LED_FADE_ON_MASK 0x20 -#define AW_LED_BREATHE_MODE_MASK 0x10 -#define AW_LED_RESET_MASK 0x55 - -#define AW_LED_RESET_DELAY 8 -#define AW2013_VDD_MIN_UV 2600000 -#define AW2013_VDD_MAX_UV 3300000 -#define AW2013_VI2C_MIN_UV 1800000 -#define AW2013_VI2C_MAX_UV 1800000 - -#define MAX_RISE_TIME_MS 7 -#define MAX_HOLD_TIME_MS 5 -#define MAX_FALL_TIME_MS 7 -#define MAX_OFF_TIME_MS 5 - -struct aw2013_led { - struct i2c_client *client; +#include +#include +#include + +#include + +enum led_colors{ + LED_RED = 0, + LED_GREEN, + LED_BLUE, + LED_WHITE, + LED_YELLOW, + LED_CYAN, + LED_PURPLE, + LED_COLORS_MAX +}; + +struct rgb_info{ +int blinking; +int brightness; +int on_time; +int off_time; +}; + +struct aw2013_led_data { struct led_classdev cdev; - struct aw2013_platform_data *pdata; - struct work_struct brightness_work; - struct mutex lock; - struct regulator *vdd; - struct regulator *vcc; + enum led_colors color; +}; + + +struct aw2013_leds_priv { int num_leds; - int id; - bool poweron; + struct aw2013_led_data leds[]; }; -static int aw2013_write(struct aw2013_led *led, u8 reg, u8 val) +struct aw2013_dev_data { + struct i2c_client *i2c; + struct regulator *regulator; + struct aw2013_leds_priv *leds_priv; + struct rgb_info leds[LED_COLORS_MAX]; + enum led_colors current_color; + struct mutex led_lock; + struct work_struct set_color_work; +}; + + +struct aw2013_led{ + const char *name; + const char *default_trigger; + unsigned retain_state_suspended:1; + unsigned default_state:2; + +}; + +static inline int sizeof_aw2013_leds_priv(int num_leds) { - return i2c_smbus_write_byte_data(led->client, reg, val); + return sizeof(struct aw2013_leds_priv) + + (sizeof(struct aw2013_led_data) * num_leds); } -static int aw2013_read(struct aw2013_led *led, u8 reg, u8 *val) + + +static struct aw2013_dev_data *s_aw2013; +bool blink_frequency_adjust; + +#define AW2013_I2C_NAME "aw2013" +#if 1 + +#define AW2013_RSTR 0x0 +#define AW2013_GCR 0x01 +#define AW2013_STATUS 0x02 +#define AW2013_LEDE 0x30 +#define AW2013_LCFG0 0x31 +#define AW2013_LCFG1 0x32 +#define AW2013_LCFG2 0x33 +#define AW2013_PWM0 0x34 +#define AW2013_PWM1 0x35 +#define AW2013_PWM2 0x36 +#define AW2013_LED0_T0 0x37 +#define AW2013_LED0_T1 0x38 +#define AW2013_LED0_T2 0x39 +#define AW2013_LED1_T0 0x3A +#define AW2013_LED1_T1 0x3B +#define AW2013_LED1_T2 0x3C +#define AW2013_LED2_T0 0x3D +#define AW2013_LED2_T1 0x3E +#define AW2013_LED2_T2 0x3F +#define AW2013_ASR 0x77 + +#define Bre_Imax 0x72 +#define Rise_t 0x02 +#define Fall_t 0x02 +#define Hold_time 0x03 +#define Off_time 0x03 +#define Delay_time 0x00 +#define Period_Num 0x00 +#define Imax_R 0x62 +#define Imax_G 0x62 +#define Imax_B 0x62 + +#define MAX_BRIGHTNESS_RED 255 +#define MAX_BRIGHTNESS_GREEN 255 +#define MAX_BRIGHTNESS_BLUE 255 +u8 tp_color; + + +#if defined(CONFIG_DIFFERENT_TP_COLOR) + extern u8 tp_rgb_color; +#else + static u8 tp_rgb_color; +#endif + + +typedef unsigned char U8; +static int aw2013_debug_enable; +#define AW2013_DEBUG(format, args...) do { \ + if (aw2013_debug_enable) \ + {\ + printk(format, ##args);\ + } \ +} while (0) +struct i2c_client *aw2013_client; +static int aw2013_pdata; +struct i2c_board_info aw2013_info = { + .type = "aw2013", + .addr = 0x45, + .platform_data = &aw2013_pdata, + }; + + +static int aw2013_has_inited; + + + +#endif + +static int aw2013_i2c_write(unsigned char cmd, unsigned char data) { - s32 ret; + int ret; + ret = i2c_smbus_write_byte_data(s_aw2013->i2c, cmd, data); - ret = i2c_smbus_read_byte_data(led->client, reg); - if (ret < 0) - return ret; + return ret; +} - *val = ret; - return 0; +enum led_colors devname_to_color(const char *dev_name) +{ + if (!strcmp(dev_name, "red")) { + return LED_RED; + } else if (!strcmp(dev_name, "green")) { + return LED_GREEN; + } else if (!strcmp(dev_name, "blue")) { + return LED_BLUE; + } else if (!strcmp(dev_name, "white")) { + return LED_WHITE; + } else if (!strcmp(dev_name, "yellow")) { + return LED_YELLOW; + } else if (!strcmp(dev_name, "cyan")) { + return LED_CYAN; + } else if (!strcmp(dev_name, "purple")) { + return LED_PURPLE; + } + + return LED_COLORS_MAX; } -static int aw2013_power_on(struct aw2013_led *led, bool on) +int aw2013_set_color_singlecolor(struct aw2013_dev_data *aw2013, enum led_colors color) { - int rc; - - if (on) { - rc = regulator_enable(led->vdd); - if (rc) { - dev_err(&led->client->dev, - "Regulator vdd enable failed rc=%d\n", rc); - return rc; + unsigned char red_on = 0, green_on = 0, blue_on = 0; + unsigned char blink_flag = 0; + + switch (color) { + case LED_RED: + red_on = 1; + aw2013->leds[LED_GREEN].brightness = 0; + aw2013->leds[LED_BLUE].brightness = 0; + if (aw2013->leds[LED_RED].brightness == 0) { + red_on = 0; + } + if (aw2013->leds[LED_RED].blinking) { + blink_flag = 0x10; + aw2013_i2c_write(0x0, 0x54); + } else + blink_flag = 0x0; + break; + case LED_GREEN: + green_on = 1; + aw2013->leds[LED_RED].brightness = 0; + aw2013->leds[LED_BLUE].brightness = 0; + if (aw2013->leds[LED_GREEN].brightness == 0) { + green_on = 0; + } + if (aw2013->leds[LED_GREEN].blinking) { + blink_flag = 0x10; + aw2013_i2c_write(0x0, 0x54); + } else + blink_flag = 0x0; + break; + case LED_BLUE: + blue_on = 1; + aw2013->leds[LED_RED].brightness = 0; + aw2013->leds[LED_GREEN].brightness = 0; + if (aw2013->leds[LED_BLUE].brightness == 0) { + blue_on = 0; + } + if (aw2013->leds[LED_BLUE].blinking) { + blink_flag = 0x10; + aw2013_i2c_write(0x0, 0x54); + } else + blink_flag = 0x0; + break; + default: + goto rgb_exit; + } + if (red_on || green_on || blue_on) { + if (0 == aw2013_has_inited) { + aw2013_i2c_write(0x0, 0x55); + aw2013_i2c_write(0x01, 0x1); + mdelay(1); + aw2013_has_inited = 1; } - rc = regulator_enable(led->vcc); - if (rc) { - dev_err(&led->client->dev, - "Regulator vcc enable failed rc=%d\n", rc); - goto fail_enable_reg; + aw2013_i2c_write(0x01, 0xe1); +#if defined(CONFIG_COLOFUL_RGB_FOR_PROJECT) + switch (tp_rgb_color) { + case 0x32: + aw2013_i2c_write(0x31, blink_flag|0x62); + aw2013_i2c_write(0x32, blink_flag|0x61); + aw2013_i2c_write(0x33, blink_flag|0x61); + aw2013_i2c_write(0x34, aw2013->leds[LED_RED].brightness); + aw2013_i2c_write(0x35, aw2013->leds[LED_GREEN].brightness); + aw2013_i2c_write(0x36, aw2013->leds[LED_BLUE].brightness); + break; + default: + aw2013_i2c_write(0x31, blink_flag|0x61); + aw2013_i2c_write(0x32, blink_flag|0x61); + aw2013_i2c_write(0x33, blink_flag|0x61); + aw2013_i2c_write(0x34, aw2013->leds[LED_RED].brightness); + aw2013_i2c_write(0x35, aw2013->leds[LED_GREEN].brightness); + aw2013_i2c_write(0x36, aw2013->leds[LED_BLUE].brightness); + break; } - led->poweron = true; - } else { - rc = regulator_disable(led->vdd); - if (rc) { - dev_err(&led->client->dev, - "Regulator vdd disable failed rc=%d\n", rc); - return rc; +#else + switch (tp_rgb_color) { + case 0x32: + aw2013_i2c_write(0x31, blink_flag|0x62); + aw2013_i2c_write(0x32, blink_flag|0x61); + aw2013_i2c_write(0x33, blink_flag|0x61); + aw2013_i2c_write(0x34, MAX_BRIGHTNESS_RED); + aw2013_i2c_write(0x35, MAX_BRIGHTNESS_GREEN); + aw2013_i2c_write(0x36, MAX_BRIGHTNESS_BLUE); + break; + default: + aw2013_i2c_write(0x31, blink_flag|0x61); + aw2013_i2c_write(0x32, blink_flag|0x61); + aw2013_i2c_write(0x33, blink_flag|0x61); + aw2013_i2c_write(0x34, MAX_BRIGHTNESS_RED); + aw2013_i2c_write(0x35, MAX_BRIGHTNESS_GREEN); + aw2013_i2c_write(0x36, MAX_BRIGHTNESS_BLUE); + break; } +#endif + + if (blink_frequency_adjust) { + aw2013_i2c_write(0x37, Rise_t<<4 | blink_flag); + aw2013_i2c_write(0x38, Fall_t<<4 | blink_flag); + aw2013_i2c_write(0x39, Delay_time<<4 | Period_Num); + aw2013_i2c_write(0x3a, Rise_t<<4 | blink_flag); + aw2013_i2c_write(0x3b, Fall_t<<4 | blink_flag); + aw2013_i2c_write(0x3c, Delay_time<<4 | Period_Num); + aw2013_i2c_write(0x3d, Rise_t<<4 | blink_flag); + aw2013_i2c_write(0x3e, Fall_t<<4 | blink_flag); + aw2013_i2c_write(0x3f, Delay_time<<4 | Period_Num); + } else { + aw2013_i2c_write(0x37, Rise_t<<4 | Hold_time); + aw2013_i2c_write(0x38, Fall_t<<4 | Off_time); + aw2013_i2c_write(0x39, Delay_time<<4 | Period_Num); + aw2013_i2c_write(0x3a, Rise_t<<4 | Hold_time); + aw2013_i2c_write(0x3b, Fall_t<<4 | Off_time); + aw2013_i2c_write(0x3c, Delay_time<<4 | Period_Num); + aw2013_i2c_write(0x3d, Rise_t<<4 | Hold_time); + aw2013_i2c_write(0x3e, Fall_t<<4 | Off_time); + aw2013_i2c_write(0x3f, Delay_time<<4 | Period_Num); + } + aw2013_i2c_write(0x30, 0x7); + mdelay(1); + } else{ + aw2013_i2c_write(0x01, 0); + mdelay(1); + aw2013_i2c_write(0x30, 0); + aw2013_i2c_write(0x34, 0); + aw2013_i2c_write(0x35, 0); + aw2013_i2c_write(0x36, 0); + mdelay(1); + aw2013_has_inited = 0; + } +rgb_exit: + return 0; - rc = regulator_disable(led->vcc); - if (rc) { - dev_err(&led->client->dev, - "Regulator vcc disable failed rc=%d\n", rc); - goto fail_disable_reg; +} + + +int aw2013_set_color_multicolor(struct aw2013_dev_data *aw2013, enum led_colors color) +{ + unsigned char blink_flag = 0; + + if (aw2013->leds[color].brightness) { + if (aw2013->leds[color].blinking) + blink_flag = 0x10; + aw2013_i2c_write(0x01, 0); + aw2013_i2c_write(0x0, 0x55); + mdelay(1); + if (0 == aw2013_has_inited) { + aw2013_has_inited = 1; } - led->poweron = false; + aw2013_i2c_write(0x01, 0x1); +#if defined(CONFIG_COLOFUL_RGB_FOR_PROJECT) + switch (color) { + case LED_WHITE: + aw2013_i2c_write(0x0, 0x54); + aw2013_i2c_write(0x01, 0xe1); + if (0x32 == tp_rgb_color) + aw2013_i2c_write(0x31, blink_flag|0x62); + else + aw2013_i2c_write(0x31, blink_flag|0x61); + aw2013_i2c_write(0x32, blink_flag|0x61); + aw2013_i2c_write(0x33, blink_flag|0x61); + aw2013_i2c_write(0x34, MAX_BRIGHTNESS_RED); + aw2013_i2c_write(0x35, MAX_BRIGHTNESS_GREEN); + aw2013_i2c_write(0x36, MAX_BRIGHTNESS_BLUE); + aw2013_i2c_write(0x30, 0x7); + break; + case LED_YELLOW: + + aw2013_i2c_write(0x0, 0x54); + aw2013_i2c_write(0x01, 0xe1); + aw2013_i2c_write(0x31, blink_flag|0x62); + aw2013_i2c_write(0x32, blink_flag|0x62); + aw2013_i2c_write(0x33, 0); + aw2013_i2c_write(0x34, MAX_BRIGHTNESS_RED); + aw2013_i2c_write(0x35, MAX_BRIGHTNESS_GREEN); + aw2013_i2c_write(0x36, 0); + aw2013_i2c_write(0x30, 0x3); + break; + case LED_PURPLE: + + aw2013_i2c_write(0x0, 0x54); + aw2013_i2c_write(0x01, 0xe1); + aw2013_i2c_write(0x31, blink_flag|0x62); + aw2013_i2c_write(0x32, 0); + aw2013_i2c_write(0x33, blink_flag|0x62); + aw2013_i2c_write(0x34, MAX_BRIGHTNESS_RED); + aw2013_i2c_write(0x35, 0); + aw2013_i2c_write(0x36, MAX_BRIGHTNESS_BLUE); + aw2013_i2c_write(0x30, 0x5); + + break; + case LED_CYAN: + + aw2013_i2c_write(0x0, 0x54); + aw2013_i2c_write(0x01, 0xe1); + aw2013_i2c_write(0x31, 0); + aw2013_i2c_write(0x32, blink_flag|0x62); + aw2013_i2c_write(0x33, blink_flag|0x62); + aw2013_i2c_write(0x34, 0); + aw2013_i2c_write(0x35, MAX_BRIGHTNESS_GREEN); + aw2013_i2c_write(0x36, MAX_BRIGHTNESS_BLUE); + aw2013_i2c_write(0x30, 0x6); + + break; + default: + break; + } +#else + switch (tp_rgb_color) { + case 0x32: + aw2013_i2c_write(0x31, blink_flag|0x62); + aw2013_i2c_write(0x32, blink_flag|0x61); + aw2013_i2c_write(0x33, blink_flag|0x61); + aw2013_i2c_write(0x34, MAX_BRIGHTNESS_RED); + aw2013_i2c_write(0x35, MAX_BRIGHTNESS_GREEN); + aw2013_i2c_write(0x36, MAX_BRIGHTNESS_BLUE); + break; + default: + aw2013_i2c_write(0x31, blink_flag|0x61); + aw2013_i2c_write(0x32, blink_flag|0x61); + aw2013_i2c_write(0x33, blink_flag|0x61); + aw2013_i2c_write(0x34, MAX_BRIGHTNESS_RED); + aw2013_i2c_write(0x35, MAX_BRIGHTNESS_GREEN); + aw2013_i2c_write(0x36, MAX_BRIGHTNESS_BLUE); + break; + } + aw2013_i2c_write(0x30, 0x7); +#endif + aw2013_i2c_write(0x37, Rise_t<<4 | Hold_time); + aw2013_i2c_write(0x3a, Rise_t<<4 | Hold_time); + aw2013_i2c_write(0x3d, Rise_t<<4 | Hold_time); + + aw2013_i2c_write(0x38, Fall_t<<4 | Off_time); + aw2013_i2c_write(0x3b, Fall_t<<4 | Off_time); + aw2013_i2c_write(0x3e, Fall_t<<4 | Off_time); + + aw2013_i2c_write(0x39, Delay_time<<4 | Period_Num); + aw2013_i2c_write(0x3c, Delay_time<<4 | Period_Num); + aw2013_i2c_write(0x3f, Delay_time<<4 | Period_Num); + } else { + aw2013_i2c_write(0x01, 0); + mdelay(1); + aw2013_i2c_write(0x30, 0); + aw2013_i2c_write(0x34, 0); + aw2013_i2c_write(0x35, 0); + aw2013_i2c_write(0x36, 0); + mdelay(1); + aw2013_has_inited = 0; } - return rc; + return 0; +} -fail_enable_reg: - rc = regulator_disable(led->vdd); - if (rc) - dev_err(&led->client->dev, - "Regulator vdd disable failed rc=%d\n", rc); - return rc; +static void set_color_delayed(struct work_struct *ws) +{ + enum led_colors color; + struct aw2013_dev_data *aw2013 = + container_of(ws, struct aw2013_dev_data, set_color_work); -fail_disable_reg: - rc = regulator_enable(led->vdd); - if (rc) - dev_err(&led->client->dev, - "Regulator vdd enable failed rc=%d\n", rc); + mutex_lock(&s_aw2013->led_lock); + color = aw2013->current_color; + AW2013_DEBUG("aw2013 set_color_delayed color = %d, brightness = %d, blink = %d \n", color, aw2013->leds[color].brightness, aw2013->leds[color].blinking); - return rc; + if (color == LED_RED || color == LED_GREEN || color == LED_BLUE) { + aw2013_set_color_singlecolor(aw2013, color); + } else { + aw2013_set_color_multicolor(aw2013, color); + } + mutex_unlock(&s_aw2013->led_lock); } -static int aw2013_power_init(struct aw2013_led *led, bool on) + + +int aw2013_set_color(struct aw2013_dev_data *aw2013, enum led_colors color) { - int rc; - - if (on) { - led->vdd = regulator_get(&led->client->dev, "vdd"); - if (IS_ERR(led->vdd)) { - rc = PTR_ERR(led->vdd); - dev_err(&led->client->dev, - "Regulator get failed vdd rc=%d\n", rc); - return rc; - } - if (regulator_count_voltages(led->vdd) > 0) { - rc = regulator_set_voltage(led->vdd, AW2013_VDD_MIN_UV, - AW2013_VDD_MAX_UV); - if (rc) { - dev_err(&led->client->dev, - "Regulator set_vtg failed vdd rc=%d\n", - rc); - goto reg_vdd_put; - } - } + aw2013->current_color = color; + schedule_work(&s_aw2013->set_color_work); - led->vcc = regulator_get(&led->client->dev, "vcc"); - if (IS_ERR(led->vcc)) { - rc = PTR_ERR(led->vcc); - dev_err(&led->client->dev, - "Regulator get failed vcc rc=%d\n", rc); - goto reg_vdd_set_vtg; - } + return 0; - if (regulator_count_voltages(led->vcc) > 0) { - rc = regulator_set_voltage(led->vcc, AW2013_VI2C_MIN_UV, - AW2013_VI2C_MAX_UV); - if (rc) { - dev_err(&led->client->dev, - "Regulator set_vtg failed vcc rc=%d\n", rc); - goto reg_vcc_put; - } - } - } else { - if (regulator_count_voltages(led->vdd) > 0) - regulator_set_voltage(led->vdd, 0, AW2013_VDD_MAX_UV); +} - regulator_put(led->vdd); +static void aw2013_led_set(struct led_classdev *led_cdev, + enum led_brightness value) +{ + enum led_colors color; + color = devname_to_color(led_cdev->name); + s_aw2013->leds[color].brightness = value; + s_aw2013->leds[color].blinking = 0; + aw2013_set_color(s_aw2013, color); +} - if (regulator_count_voltages(led->vcc) > 0) - regulator_set_voltage(led->vcc, 0, AW2013_VI2C_MAX_UV); +static int aw2013_led_blink_set(struct led_classdev *led_cdev, + unsigned long *delay_on, unsigned long *delay_off) +{ + enum led_colors color; - regulator_put(led->vcc); - } - return 0; + color = devname_to_color(led_cdev->name); + s_aw2013->leds[color].blinking = 1; + s_aw2013->leds[color].brightness = 255; + s_aw2013->leds[color].on_time = *delay_on; + s_aw2013->leds[color].off_time = *delay_off; -reg_vcc_put: - regulator_put(led->vcc); -reg_vdd_set_vtg: - if (regulator_count_voltages(led->vdd) > 0) - regulator_set_voltage(led->vdd, 0, AW2013_VDD_MAX_UV); -reg_vdd_put: - regulator_put(led->vdd); - return rc; + led_cdev->brightness = s_aw2013->leds[color].brightness; + aw2013_set_color(s_aw2013, color); + + return 0; } -static void aw2013_brightness_work(struct work_struct *work) + +static int aw2013_i2c_check_device( + struct i2c_client *client) { - struct aw2013_led *led = container_of(work, struct aw2013_led, - brightness_work); - u8 val; - - mutex_lock(&led->pdata->led->lock); - - /* enable regulators if they are disabled */ - if (!led->pdata->led->poweron) { - if (aw2013_power_on(led->pdata->led, true)) { - dev_err(&led->pdata->led->client->dev, "power on failed"); - mutex_unlock(&led->pdata->led->lock); - return; - } + int err; + int retreive_count = 0; + while (retreive_count++ < 5) { + msleep(10); + err = aw2013_i2c_write(AW2013_RSTR, 0x55); + if (err == 0) + break; } - if (led->cdev.brightness > 0) { - if (led->cdev.brightness > led->cdev.max_brightness) - led->cdev.brightness = led->cdev.max_brightness; - aw2013_write(led, AW_REG_GLOBAL_CONTROL, - AW_LED_MOUDLE_ENABLE_MASK); - aw2013_write(led, AW_REG_LED_CONFIG_BASE + led->id, - led->pdata->max_current); - aw2013_write(led, AW_REG_LED_BRIGHTNESS_BASE + led->id, - led->cdev.brightness); - aw2013_read(led, AW_REG_LED_ENABLE, &val); - aw2013_write(led, AW_REG_LED_ENABLE, val | (1 << led->id)); - } else { - aw2013_read(led, AW_REG_LED_ENABLE, &val); - aw2013_write(led, AW_REG_LED_ENABLE, val & (~(1 << led->id))); - } - aw2013_read(led, AW_REG_LED_ENABLE, &val); - /* - * If value in AW_REG_LED_ENABLE is 0, it means the RGB leds are - * all off. So we need to power it off. - */ - if (val == 0) { - if (aw2013_power_on(led->pdata->led, false)) { - dev_err(&led->pdata->led->client->dev, - "power off failed"); - mutex_unlock(&led->pdata->led->lock); - return; - } - } - mutex_unlock(&led->pdata->led->lock); + return err; } -static void aw2013_led_blink_set(struct aw2013_led *led, unsigned long blinking) +static int aw2013_power_up(struct aw2013_dev_data *pdata, struct i2c_client *client, bool enable) { - u8 val; - - /* enable regulators if they are disabled */ - if (!led->pdata->led->poweron) { - if (aw2013_power_on(led->pdata->led, true)) { - dev_err(&led->pdata->led->client->dev, "power on failed"); - return; - } + int err = -1; + + pdata->regulator = devm_regulator_get(&client->dev, "rgb_led"); + if (IS_ERR(pdata->regulator)) { + dev_err(&client->dev, "regulator get failed\n"); + err = PTR_ERR(pdata->regulator); + pdata->regulator = NULL; + return err; } - led->cdev.brightness = blinking ? led->cdev.max_brightness : 0; - - if (blinking > 0) { - aw2013_write(led, AW_REG_GLOBAL_CONTROL, - AW_LED_MOUDLE_ENABLE_MASK); - aw2013_write(led, AW_REG_LED_CONFIG_BASE + led->id, - AW_LED_FADE_OFF_MASK | AW_LED_FADE_ON_MASK | - AW_LED_BREATHE_MODE_MASK | led->pdata->max_current); - aw2013_write(led, AW_REG_LED_BRIGHTNESS_BASE + led->id, - led->cdev.brightness); - aw2013_write(led, AW_REG_TIMESET0_BASE + led->id * 3, - led->pdata->rise_time_ms << 4 | - led->pdata->hold_time_ms); - aw2013_write(led, AW_REG_TIMESET1_BASE + led->id * 3, - led->pdata->fall_time_ms << 4 | - led->pdata->off_time_ms); - aw2013_read(led, AW_REG_LED_ENABLE, &val); - aw2013_write(led, AW_REG_LED_ENABLE, val | (1 << led->id)); + if (enable) { + + err = regulator_enable(pdata->regulator); + msleep(100); } else { - aw2013_read(led, AW_REG_LED_ENABLE, &val); - aw2013_write(led, AW_REG_LED_ENABLE, val & (~(1 << led->id))); + err = regulator_disable(pdata->regulator); } - aw2013_read(led, AW_REG_LED_ENABLE, &val); - /* - * If value in AW_REG_LED_ENABLE is 0, it means the RGB leds are - * all off. So we need to power it off. - */ - if (val == 0) { - if (aw2013_power_on(led->pdata->led, false)) { - dev_err(&led->pdata->led->client->dev, - "power off failed"); - return; - } - } + return err; } -static void aw2013_set_brightness(struct led_classdev *cdev, - enum led_brightness brightness) -{ - struct aw2013_led *led = container_of(cdev, struct aw2013_led, cdev); - led->cdev.brightness = brightness; - schedule_work(&led->brightness_work); +static ssize_t blink_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct led_classdev *led_cdev = dev_get_drvdata(dev); + + return sprintf(buf, "%d\n", led_cdev->brightness); } -static ssize_t aw2013_store_blink(struct device *dev, - struct device_attribute *attr, - const char *buf, size_t len) + +static ssize_t blink_store(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t count) { unsigned long blinking; struct led_classdev *led_cdev = dev_get_drvdata(dev); - struct aw2013_led *led = - container_of(led_cdev, struct aw2013_led, cdev); ssize_t ret = -EINVAL; + enum led_colors color; ret = kstrtoul(buf, 10, &blinking); if (ret) return ret; - mutex_lock(&led->pdata->led->lock); - aw2013_led_blink_set(led, blinking); - mutex_unlock(&led->pdata->led->lock); - return len; -} + color = devname_to_color(led_cdev->name); + led_cdev->brightness = + s_aw2013->leds[color].brightness = blinking ? 255 : 0; + s_aw2013->leds[color].blinking = blinking; -static ssize_t aw2013_led_time_show(struct device *dev, - struct device_attribute *attr, char *buf) -{ - struct led_classdev *led_cdev = dev_get_drvdata(dev); - struct aw2013_led *led = - container_of(led_cdev, struct aw2013_led, cdev); + led_cdev->brightness = s_aw2013->leds[color].brightness; - return snprintf(buf, PAGE_SIZE, "%d %d %d %d\n", - led->pdata->rise_time_ms, led->pdata->hold_time_ms, - led->pdata->fall_time_ms, led->pdata->off_time_ms); -} + aw2013_set_color(s_aw2013, color); -static ssize_t aw2013_led_time_store(struct device *dev, - struct device_attribute *attr, - const char *buf, size_t len) -{ - struct led_classdev *led_cdev = dev_get_drvdata(dev); - struct aw2013_led *led = - container_of(led_cdev, struct aw2013_led, cdev); - int rc, rise_time_ms, hold_time_ms, fall_time_ms, off_time_ms; - - rc = sscanf(buf, "%d %d %d %d", - &rise_time_ms, &hold_time_ms, - &fall_time_ms, &off_time_ms); - - mutex_lock(&led->pdata->led->lock); - led->pdata->rise_time_ms = (rise_time_ms > MAX_RISE_TIME_MS) ? - MAX_RISE_TIME_MS : rise_time_ms; - led->pdata->hold_time_ms = (hold_time_ms > MAX_HOLD_TIME_MS) ? - MAX_HOLD_TIME_MS : hold_time_ms; - led->pdata->fall_time_ms = (fall_time_ms > MAX_FALL_TIME_MS) ? - MAX_FALL_TIME_MS : fall_time_ms; - led->pdata->off_time_ms = (off_time_ms > MAX_OFF_TIME_MS) ? - MAX_OFF_TIME_MS : off_time_ms; - aw2013_led_blink_set(led, 1); - mutex_unlock(&led->pdata->led->lock); - return len; + return count; } +static DEVICE_ATTR(blink, 0664, blink_show, blink_store); -static DEVICE_ATTR(blink, 0664, NULL, aw2013_store_blink); -static DEVICE_ATTR(led_time, 0664, aw2013_led_time_show, aw2013_led_time_store); -static struct attribute *aw2013_led_attributes[] = { - &dev_attr_blink.attr, - &dev_attr_led_time.attr, - NULL, -}; - -static struct attribute_group aw2013_led_attr_group = { - .attrs = aw2013_led_attributes -}; - -static int aw_2013_check_chipid(struct aw2013_led *led) +static int create_aw2013_led(const struct aw2013_led *template, + struct aw2013_led_data *led_dat, struct device *parent, + int (*blink_set)(unsigned, int, unsigned long *, unsigned long *)) { - u8 val; - - aw2013_write(led, AW_REG_RESET, AW_LED_RESET_MASK); - usleep(AW_LED_RESET_DELAY); - aw2013_read(led, AW_REG_RESET, &val); - if (val == AW2013_CHIPID) - return 0; - else - return -EINVAL; -} + int ret; -static int aw2013_led_err_handle(struct aw2013_led *led_array, - int parsed_leds) -{ - int i; - /* - * If probe fails, cannot free resource of all LEDs, only free - * resources of LEDs which have allocated these resource really. - */ - for (i = 0; i < parsed_leds; i++) { - sysfs_remove_group(&led_array[i].cdev.dev->kobj, - &aw2013_led_attr_group); - led_classdev_unregister(&led_array[i].cdev); - cancel_work_sync(&led_array[i].brightness_work); - devm_kfree(&led_array->client->dev, led_array[i].pdata); - led_array[i].pdata = NULL; - } - return i; -} - -static int aw2013_led_parse_child_node(struct aw2013_led *led_array, - struct device_node *node) -{ - struct aw2013_led *led; - struct device_node *temp; - struct aw2013_platform_data *pdata; - int rc = 0, parsed_leds = 0; - - for_each_child_of_node(node, temp) { - led = &led_array[parsed_leds]; - led->client = led_array->client; - - pdata = devm_kzalloc(&led->client->dev, - sizeof(struct aw2013_platform_data), - GFP_KERNEL); - if (!pdata) { - dev_err(&led->client->dev, - "Failed to allocate memory\n"); - goto free_err; - } - pdata->led = led_array; - led->pdata = pdata; - - rc = of_property_read_string(temp, "aw2013,name", - &led->cdev.name); - if (rc < 0) { - dev_err(&led->client->dev, - "Failure reading led name, rc = %d\n", rc); - goto free_pdata; - } + led_dat->cdev.name = template->name; + led_dat->cdev.default_trigger = template->default_trigger; + led_dat->color = devname_to_color(template->name); + led_dat->cdev.brightness = 0; + if (!template->retain_state_suspended) + led_dat->cdev.flags |= LED_CORE_SUSPENDRESUME; - rc = of_property_read_u32(temp, "aw2013,id", - &led->id); - if (rc < 0) { - dev_err(&led->client->dev, - "Failure reading id, rc = %d\n", rc); - goto free_pdata; - } + led_dat->cdev.blink_set = aw2013_led_blink_set; + led_dat->cdev.brightness_set = aw2013_led_set; - rc = of_property_read_u32(temp, "aw2013,max-brightness", - &led->cdev.max_brightness); - if (rc < 0) { - dev_err(&led->client->dev, - "Failure reading max-brightness, rc = %d\n", - rc); - goto free_pdata; - } + ret = led_classdev_register(parent, &led_dat->cdev); - rc = of_property_read_u32(temp, "aw2013,max-current", - &led->pdata->max_current); - if (rc < 0) { - dev_err(&led->client->dev, - "Failure reading max-current, rc = %d\n", rc); - goto free_pdata; - } + device_create_file(led_dat->cdev.dev, &dev_attr_blink); - rc = of_property_read_u32(temp, "aw2013,rise-time-ms", - &led->pdata->rise_time_ms); - if (rc < 0) { - dev_err(&led->client->dev, - "Failure reading rise-time-ms, rc = %d\n", rc); - goto free_pdata; - } + if (ret < 0) + return ret; - rc = of_property_read_u32(temp, "aw2013,hold-time-ms", - &led->pdata->hold_time_ms); - if (rc < 0) { - dev_err(&led->client->dev, - "Failure reading hold-time-ms, rc = %d\n", rc); - goto free_pdata; - } + return 0; +} - rc = of_property_read_u32(temp, "aw2013,fall-time-ms", - &led->pdata->fall_time_ms); - if (rc < 0) { - dev_err(&led->client->dev, - "Failure reading fall-time-ms, rc = %d\n", rc); - goto free_pdata; - } +static void delete_aw2013_led(struct aw2013_led_data *led) +{ + device_remove_file(led->cdev.dev, &dev_attr_blink); + led_classdev_unregister(&led->cdev); +} - rc = of_property_read_u32(temp, "aw2013,off-time-ms", - &led->pdata->off_time_ms); - if (rc < 0) { - dev_err(&led->client->dev, - "Failure reading off-time-ms, rc = %d\n", rc); - goto free_pdata; +static struct aw2013_leds_priv *aw2013_leds_create_of(struct i2c_client *client) +{ + struct device_node *np = client->dev.of_node; + struct device_node *child; + struct aw2013_leds_priv *priv; + int count, ret; + + /* count LEDs in this device, so we know how much to allocate */ + count = of_get_child_count(np); + if (!count) + return ERR_PTR(-ENODEV); + + priv = devm_kzalloc(&client->dev, sizeof_aw2013_leds_priv(count), + GFP_KERNEL); + if (!priv) + return ERR_PTR(-ENOMEM); + + for_each_child_of_node(np, child) { + struct aw2013_led led = {}; + + led.name = of_get_property(child, "label", NULL) ? : child->name; + led.default_trigger = + of_get_property(child, "linux,default-trigger", NULL); + led.retain_state_suspended = + (unsigned)of_property_read_bool(child, + "retain-state-suspended"); + + ret = create_aw2013_led(&led, &priv->leds[priv->num_leds++], + &client->dev, NULL); + if (ret < 0) { + of_node_put(child); + goto err; } + } - INIT_WORK(&led->brightness_work, aw2013_brightness_work); + return priv; - led->cdev.brightness_set = aw2013_set_brightness; +err: + for (count = priv->num_leds - 2; count >= 0; count--) + delete_aw2013_led(&priv->leds[count]); - rc = led_classdev_register(&led->client->dev, &led->cdev); - if (rc) { - dev_err(&led->client->dev, - "unable to register led %d,rc=%d\n", - led->id, rc); - goto free_pdata; - } + devm_kfree(&client->dev, priv); - rc = sysfs_create_group(&led->cdev.dev->kobj, - &aw2013_led_attr_group); - if (rc) { - dev_err(&led->client->dev, "led sysfs rc: %d\n", rc); - goto free_class; - } - parsed_leds++; - } - - return 0; - -free_class: - aw2013_led_err_handle(led_array, parsed_leds); - led_classdev_unregister(&led_array[parsed_leds].cdev); - cancel_work_sync(&led_array[parsed_leds].brightness_work); - devm_kfree(&led->client->dev, led_array[parsed_leds].pdata); - led_array[parsed_leds].pdata = NULL; - return rc; - -free_pdata: - aw2013_led_err_handle(led_array, parsed_leds); - devm_kfree(&led->client->dev, led_array[parsed_leds].pdata); - return rc; - -free_err: - aw2013_led_err_handle(led_array, parsed_leds); - return rc; + return ERR_PTR(-ENODEV); } -static int aw2013_led_probe(struct i2c_client *client, - const struct i2c_device_id *id) -{ - struct aw2013_led *led_array; - struct device_node *node; - int ret, num_leds = 0; - node = client->dev.of_node; - if (node == NULL) - return -EINVAL; +static int aw2013_led_probe(struct i2c_client *client, const struct i2c_device_id *id) +{ - num_leds = of_get_child_count(node); + int err = 0; + struct aw2013_leds_priv *priv; + printk("aw2013_led_probe start\n"); + if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { + dev_err(&client->dev, + "%s: check_functionality failed.", __func__); + err = -ENODEV; + goto exit0; + } - if (!num_leds) - return -EINVAL; + /* Allocate memory for driver data */ + s_aw2013 = kzalloc(sizeof(struct aw2013_dev_data), GFP_KERNEL); + if (!s_aw2013) { + dev_err(&client->dev, + "%s: memory allocation failed.", __func__); + err = -ENOMEM; + goto exit1; + } - led_array = devm_kzalloc(&client->dev, - (sizeof(struct aw2013_led) * num_leds), GFP_KERNEL); - if (!led_array) - return -ENOMEM; + /***** I2C initialization *****/ + s_aw2013->i2c = client; + /* set client data */ + i2c_set_clientdata(client, s_aw2013); - led_array->client = client; - led_array->num_leds = num_leds; + mutex_init(&s_aw2013->led_lock); - mutex_init(&led_array->lock); + INIT_WORK(&s_aw2013->set_color_work, set_color_delayed); - ret = aw_2013_check_chipid(led_array); - if (ret) { - dev_err(&client->dev, "Check chip id error\n"); - goto free_led_arry; + if (0 != aw2013_power_up(s_aw2013, client, true)) { + goto exit2; } - - ret = aw2013_led_parse_child_node(led_array, node); - if (ret) { - dev_err(&client->dev, "parsed node error\n"); - goto free_led_arry; + if (0 != aw2013_i2c_check_device(client)) { + dev_err(&client->dev, + "%s: aw2013_i2c_check_device failed.", __func__); + goto exit2; } - i2c_set_clientdata(client, led_array); + blink_frequency_adjust = of_property_read_bool(client->dev.of_node, "blink-frequency-adjustable"); - ret = aw2013_power_init(led_array, true); - if (ret) { - dev_err(&client->dev, "power init failed"); - goto fail_parsed_node; - } + priv = aw2013_leds_create_of(client); + + if (IS_ERR(priv)) + goto exit3; + + s_aw2013->leds_priv = priv; return 0; -fail_parsed_node: - aw2013_led_err_handle(led_array, num_leds); -free_led_arry: - mutex_destroy(&led_array->lock); - devm_kfree(&client->dev, led_array); - led_array = NULL; - return ret; +exit3: +exit2: + kfree(s_aw2013); +exit1: +exit0: + return err; } static int aw2013_led_remove(struct i2c_client *client) { - struct aw2013_led *led_array = i2c_get_clientdata(client); - int i, parsed_leds = led_array->num_leds; - - for (i = 0; i < parsed_leds; i++) { - sysfs_remove_group(&led_array[i].cdev.dev->kobj, - &aw2013_led_attr_group); - led_classdev_unregister(&led_array[i].cdev); - cancel_work_sync(&led_array[i].brightness_work); - devm_kfree(&client->dev, led_array[i].pdata); - led_array[i].pdata = NULL; - } - mutex_destroy(&led_array->lock); - devm_kfree(&client->dev, led_array); - led_array = NULL; + int count = 0; + struct aw2013_dev_data *aw2013 = i2c_get_clientdata(client); + + for (count = aw2013->leds_priv->num_leds - 2; count >= 0; count--) + delete_aw2013_led(&(aw2013->leds_priv->leds[count])); + + devm_kfree(&client->dev, aw2013->leds_priv); + + kfree(aw2013); + dev_info(&client->dev, "successfully removed."); return 0; } static const struct i2c_device_id aw2013_led_id[] = { - {"aw2013_led", 0}, - {}, + {AW2013_I2C_NAME, 0 }, + { } }; -MODULE_DEVICE_TABLE(i2c, aw2013_led_id); - -static struct of_device_id aw2013_match_table[] = { - { .compatible = "awinic,aw2013",}, +static struct of_device_id aw2013_led_match_table[] = { + { .compatible = "awinc,aw2013", }, { }, }; static struct i2c_driver aw2013_led_driver = { - .probe = aw2013_led_probe, - .remove = aw2013_led_remove, + .probe = aw2013_led_probe, + .remove = aw2013_led_remove, + .id_table = aw2013_led_id, .driver = { - .name = "aw2013_led", - .owner = THIS_MODULE, - .of_match_table = of_match_ptr(aw2013_match_table), + .name = AW2013_I2C_NAME, + .owner = THIS_MODULE, + .of_match_table = aw2013_led_match_table, + }, - .id_table = aw2013_led_id, }; static int __init aw2013_led_init(void) { + pr_info("aw2013 led driver: initialize."); return i2c_add_driver(&aw2013_led_driver); } -module_init(aw2013_led_init); static void __exit aw2013_led_exit(void) { + pr_info("aw2013 led driver: release."); i2c_del_driver(&aw2013_led_driver); } + +subsys_initcall(aw2013_led_init); module_exit(aw2013_led_exit); -MODULE_DESCRIPTION("AWINIC aw2013 LED driver"); -MODULE_LICENSE("GPL v2"); +MODULE_AUTHOR("ming he "); +MODULE_DESCRIPTION("aw2013 driver"); +MODULE_LICENSE("GPL"); + + diff --git a/drivers/leds/leds-gpio.c b/drivers/leds/leds-gpio.c index b4518c8751c8d..a264998fb5c9c 100644 --- a/drivers/leds/leds-gpio.c +++ b/drivers/leds/leds-gpio.c @@ -2,25 +2,65 @@ * LEDs driver for GPIOs * * Copyright (C) 2007 8D Technologies inc. + * Copyright (C) 2018 XiaoMi, Inc. * Raphael Assenat * Copyright (C) 2008 Freescale Semiconductor, Inc. + * Copyright (C) 2018 XiaoMi, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. * */ -#include -#include #include +#include +#include +#include +#include #include -#include -#include -#include #include -#include +#include #include #include +#include +#include +#include +#include +#include + +#define DUTY_CLCLE 50 +#define ADJUST_NUM 15 +#define JUSTTIMES 6 +#define JUST_DELAY 6 + +#define HRTIME_JUST_DELAY 9000 + + + +#ifndef USE_HRTIMER_SIMULATION +static s64 dealt; +#else +static s64 adjust_dealt; + +#endif + +static DEFINE_SPINLOCK(infrared_lock); +struct pm_qos_request infrared_qos_req; + + +struct gpio_ir_tx_packet { + struct completion done; + struct hrtimer timer; + unsigned int gpio_nr; + bool high_active; + u32 pulse; + u32 space; + unsigned int *buffer; + unsigned int length; + unsigned int next; + bool on; + bool abort; +}; struct gpio_led_data { struct led_classdev cdev; @@ -34,9 +74,16 @@ struct gpio_led_data { unsigned long *delay_on, unsigned long *delay_off); }; +struct mutex ir_lock; + + +#if defined (WT_USE_FAN54015) +extern int fan54015_getcharge_stat(void); +#endif + static void gpio_led_work(struct work_struct *work) { - struct gpio_led_data *led_dat = + struct gpio_led_data *led_dat = container_of(work, struct gpio_led_data, work); if (led_dat->blinking) { @@ -46,6 +93,7 @@ static void gpio_led_work(struct work_struct *work) led_dat->blinking = 0; } else gpio_set_value_cansleep(led_dat->gpio, led_dat->new_level); + printk("infr has been end"); } static void gpio_led_set(struct led_classdev *led_cdev, @@ -53,8 +101,8 @@ static void gpio_led_set(struct led_classdev *led_cdev, { struct gpio_led_data *led_dat = container_of(led_cdev, struct gpio_led_data, cdev); - int level; - + int level, ret = 0; + printk("infr has been start"); if (value == LED_OFF) level = 0; else @@ -76,7 +124,11 @@ static void gpio_led_set(struct led_classdev *led_cdev, NULL, NULL); led_dat->blinking = 0; } else - gpio_set_value(led_dat->gpio, level); + ret = gpio_direction_output(led_dat->gpio, level); + if (ret) { + printk("infrared unable to set dir for gpio [%d]\n", led_dat->gpio); + } + } } @@ -91,11 +143,291 @@ static int gpio_blink_set(struct led_classdev *led_cdev, delay_on, delay_off); } +static void gpio_ir_tx_set(struct gpio_ir_tx_packet *gpkt, bool on) +{ + if (gpkt->high_active) + gpio_set_value(gpkt->gpio_nr, on); + else + gpio_set_value(gpkt->gpio_nr, !on); +} + +#if defined(USE_HRTIMER_SIMULATION) +static s64 hrtime_adjust(struct gpio_ir_tx_packet *gpkt) +{ + s64 now; + int i; + unsigned long flags; + + spin_lock_irqsave(&infrared_lock, flags); + + now = ktime_to_ns(ktime_get()); + for (i = 0; i < ADJUST_NUM; i++) { + gpio_ir_tx_set(gpkt, false); + } + spin_unlock_irqrestore(&infrared_lock, flags); + + return (ktime_to_ns(ktime_get())-now)/ADJUST_NUM; +} + +static enum hrtimer_restart gpio_ir_tx_timer(struct hrtimer *timer) +{ + s64 delay_ns = 0, dealt_t = 0; + ktime_t start = ktime_get(); + + struct gpio_ir_tx_packet *gpkt = container_of(timer, struct gpio_ir_tx_packet, timer); + enum hrtimer_restart restart = HRTIMER_RESTART; + + if (!gpkt->abort && gpkt->next < gpkt->length) { + if (gpkt->next & 0x01) { /* space */ + gpio_ir_tx_set(gpkt, false); + + delay_ns = gpkt->buffer[gpkt->next++] * NSEC_PER_USEC; + } else if (!gpkt->pulse || !gpkt->space) { + gpio_ir_tx_set(gpkt, true); + + + delay_ns = gpkt->buffer[gpkt->next++] * NSEC_PER_USEC; + } else { /* pulse with soft carrier */ + + +#if 1 + unsigned int usecs; + + usecs = gpkt->on ? gpkt->pulse : gpkt->space; + usecs = min(usecs, gpkt->buffer[gpkt->next]); + + gpio_ir_tx_set(gpkt, gpkt->on); + + + + delay_ns = usecs * NSEC_PER_USEC; + + gpkt->buffer[gpkt->next] -= usecs; + gpkt->on = !gpkt->on; + + if (!gpkt->buffer[gpkt->next]) + gpkt->next++; +#endif + } + } else { + restart = HRTIMER_NORESTART; + gpio_ir_tx_set(gpkt, false); + complete(&gpkt->done); + } + + dealt_t = ktime_to_ns(ktime_sub(ktime_get(), start)) + adjust_dealt; + + if (delay_ns >= dealt_t) + delay_ns -= dealt_t; + + hrtimer_forward_now(&gpkt->timer, ns_to_ktime(delay_ns)); + + return restart; +} + +static int gpio_ir_tx_transmit_with_timer(struct gpio_ir_tx_packet *gpkt) +{ + int rc = 0, hrtimer = 0, i = 0; + + init_completion(&gpkt->done); + + adjust_dealt = hrtime_adjust(gpkt); + if (adjust_dealt > HRTIME_JUST_DELAY) { + for (i = 0; i < JUSTTIMES; i++) { + adjust_dealt = hrtime_adjust(gpkt); + } + printk("infrared time_adjust fail!! adjust_dealt=%lld\n", adjust_dealt); + if (adjust_dealt > HRTIME_JUST_DELAY) + adjust_dealt = HRTIME_JUST_DELAY; + } + + hrtimer_init(&gpkt->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL_PINNED); + gpkt->timer.function = gpio_ir_tx_timer; + + + + + hrtimer = hrtimer_is_hres_active(&gpkt->timer); + + if (!hrtimer) { + printk("unable to use High-Resolution timer\n"); + } + + hrtimer_start(&gpkt->timer, ns_to_ktime(0), HRTIMER_MODE_REL_PINNED); + + rc = wait_for_completion_interruptible(&gpkt->done); + if (rc != 0) { /* signal exit immediately */ + gpkt->abort = true; + wait_for_completion(&gpkt->done); + } + + return gpkt->next ? : -ERESTARTSYS; +} + +#else +static s64 time_adjust(struct gpio_ir_tx_packet *gpkt) +{ + s64 now; + int i; + unsigned long flags; + + spin_lock_irqsave(&infrared_lock, flags); + + now = ktime_to_us(ktime_get()); + for (i = 0; i < ADJUST_NUM; i++) { + gpio_ir_tx_set(gpkt, false); + } + spin_unlock_irqrestore(&infrared_lock, flags); + + return (ktime_to_us(ktime_get())-now)/ADJUST_NUM; +} + +static long pwm_ir_tx_work(void *arg) +{ + struct gpio_ir_tx_packet *gpkt = arg; + unsigned long flags; + + /* disable irq for acurracy timing */ + spin_lock_irqsave(&infrared_lock, flags); + for (; gpkt->next < gpkt->length; gpkt->next++) { + + + if (gpkt->next & 0x01) { /* space */ + gpio_ir_tx_set(gpkt, false); + if (gpkt->buffer[gpkt->next] >= dealt) + udelay(gpkt->buffer[gpkt->next] - dealt); + } else if (!gpkt->pulse || !gpkt->space) { + gpio_ir_tx_set(gpkt, true); + if (gpkt->buffer[gpkt->next] >= dealt) + udelay(gpkt->buffer[gpkt->next] - dealt); + } else { /* pulse with soft carrier */ + while (gpkt->buffer[gpkt->next]) { + unsigned int usecs; + usecs = gpkt->on ? gpkt->pulse : gpkt->space; + usecs = min(usecs, gpkt->buffer[gpkt->next]); + + gpio_ir_tx_set(gpkt, gpkt->on); + + if (usecs >= dealt) + udelay(usecs - dealt); + + gpkt->buffer[gpkt->next] -= usecs; + gpkt->on = !gpkt->on; + } + } + } + + gpio_ir_tx_set(gpkt, false); + + spin_unlock_irqrestore(&infrared_lock, flags); + + return gpkt->next ? : -ERESTARTSYS; +} + +static int gpio_ir_tx_transmit_with_delay(struct gpio_ir_tx_packet *gpkt) +{ + + + int cpu, rc = -ENODEV; + int try_again = JUSTTIMES; + + dealt = time_adjust(gpkt); + + while (try_again && (dealt > JUST_DELAY)) { + try_again--; + dealt = time_adjust(gpkt); + printk("jeft time_adjust again!! dealt=%lld\n", dealt); + } + + if (dealt > JUST_DELAY) + goto out; + + + + + + for_each_online_cpu(cpu) + { + + if (cpu != 0) { + rc = work_on_cpu(cpu, pwm_ir_tx_work, gpkt); + break; + } + } + + if (rc == -ENODEV) { + pr_warn("pwm-ir: can't ron on the auxilliary cpu\n"); + + } + + return rc; + +out: + printk("jeft cpu too low infrared send fail dealt =%lld\n", dealt); + return rc; +} +#endif +static ssize_t transmit_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct led_classdev *led_cdev = dev_get_drvdata(dev); + + return sprintf(buf, "%d\n", led_cdev->brightness); +} + +static ssize_t transmit_store(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t count) +{ + int *temp_buf = (int *)buf; + int rc = 0; + u32 carrier, period; + + struct gpio_ir_tx_packet gpkt = {}; + struct led_classdev *led_cdev = dev_get_drvdata(dev); + struct gpio_led_data *led_dat = + container_of(led_cdev, struct gpio_led_data, cdev); + + + mutex_lock(&ir_lock); + + carrier = temp_buf[0]; + period = NSEC_PER_MSEC / carrier; + + gpkt.pulse = period * DUTY_CLCLE / 100; + gpkt.space = period - gpkt.pulse; + + gpkt.gpio_nr = led_dat->gpio; + gpkt.high_active = 1/*gdata->tx_high_active*/; + gpkt.buffer = (unsigned int *)&temp_buf[1]; + gpkt.length = ((int)count/4 - 1); + + pm_qos_update_request(&infrared_qos_req, 1); +#if defined(USE_HRTIMER_SIMULATION) + rc = gpio_ir_tx_transmit_with_timer(&gpkt); +#else + if (gpkt.high_active) { + gpio_direction_output(gpkt.gpio_nr, 0); + } + rc = gpio_ir_tx_transmit_with_delay(&gpkt); +#endif + pm_qos_update_request(&infrared_qos_req, PM_QOS_DEFAULT_VALUE); + + + mutex_unlock(&ir_lock); + + return rc; +} +static DEVICE_ATTR(transmit, 0664, transmit_show, transmit_store); + static int create_gpio_led(const struct gpio_led *template, struct gpio_led_data *led_dat, struct device *parent, int (*blink_set)(unsigned, int, unsigned long *, unsigned long *)) { int ret, state; +#if defined (WT_USE_FAN54015) + int chg_status; +#endif led_dat->gpio = -1; @@ -105,7 +437,6 @@ static int create_gpio_led(const struct gpio_led *template, template->gpio, template->name); return 0; } - ret = devm_gpio_request(parent, template->gpio, template->name); if (ret < 0) return ret; @@ -129,16 +460,30 @@ static int create_gpio_led(const struct gpio_led *template, if (!template->retain_state_suspended) led_dat->cdev.flags |= LED_CORE_SUSPENDRESUME; +#if defined (WT_USE_FAN54015) + chg_status = fan54015_getcharge_stat(); + if (!strcmp(template->name, "red")) { + if ((chg_status & 0x1) != 0x1) { + ret = gpio_direction_output(led_dat->gpio, led_dat->active_low ^ state); + if (ret < 0) + return ret; + } + } +#else ret = gpio_direction_output(led_dat->gpio, led_dat->active_low ^ state); if (ret < 0) return ret; - +#endif INIT_WORK(&led_dat->work, gpio_led_work); ret = led_classdev_register(parent, &led_dat->cdev); if (ret < 0) return ret; + if (strcmp(led_dat->cdev.name, "infrared") == 0) { + device_create_file(led_dat->cdev.dev, &dev_attr_transmit); + } + return 0; } @@ -170,11 +515,11 @@ static struct gpio_leds_priv *gpio_leds_create_of(struct platform_device *pdev) int count, ret; /* count LEDs in this device, so we know how much to allocate */ - count = of_get_available_child_count(np); + count = of_get_child_count(np); if (!count) return ERR_PTR(-ENODEV); - for_each_available_child_of_node(np, child) + for_each_child_of_node(np, child) if (of_get_gpio(child, 0) == -EPROBE_DEFER) return ERR_PTR(-EPROBE_DEFER); @@ -183,7 +528,7 @@ static struct gpio_leds_priv *gpio_leds_create_of(struct platform_device *pdev) if (!priv) return ERR_PTR(-ENOMEM); - for_each_available_child_of_node(np, child) { + for_each_child_of_node(np, child) { struct gpio_led led = {}; enum of_gpio_flags flags; const char *state; @@ -203,8 +548,9 @@ static struct gpio_leds_priv *gpio_leds_create_of(struct platform_device *pdev) led.default_state = LEDS_GPIO_DEFSTATE_OFF; } - if (of_get_property(child, "retain-state-suspended", NULL)) - led.retain_state_suspended = 1; + led.retain_state_suspended = + (unsigned)of_property_read_bool(child, + "retain-state-suspended"); ret = create_gpio_led(&led, &priv->leds[priv->num_leds++], &pdev->dev, NULL); @@ -226,8 +572,6 @@ static const struct of_device_id of_gpio_leds_match[] = { { .compatible = "gpio-leds", }, {}, }; - -MODULE_DEVICE_TABLE(of, of_gpio_leds_match); #else /* CONFIG_OF_GPIO */ static struct gpio_leds_priv *gpio_leds_create_of(struct platform_device *pdev) { @@ -235,12 +579,19 @@ static struct gpio_leds_priv *gpio_leds_create_of(struct platform_device *pdev) } #endif /* CONFIG_OF_GPIO */ + static int gpio_led_probe(struct platform_device *pdev) { - struct gpio_led_platform_data *pdata = dev_get_platdata(&pdev->dev); + struct gpio_led_platform_data *pdata = pdev->dev.platform_data; struct gpio_leds_priv *priv; + struct pinctrl *pinctrl; int i, ret = 0; + pinctrl = devm_pinctrl_get_select_default(&pdev->dev); + if (IS_ERR(pinctrl)) + dev_warn(&pdev->dev, + "pins are not configured from the driver\n"); + if (pdata && pdata->num_leds) { priv = devm_kzalloc(&pdev->dev, sizeof_gpio_leds_priv(pdata->num_leds), @@ -267,6 +618,9 @@ static int gpio_led_probe(struct platform_device *pdev) } platform_set_drvdata(pdev, priv); + pm_qos_add_request(&infrared_qos_req, + PM_QOS_CPU_DMA_LATENCY, PM_QOS_DEFAULT_VALUE); + mutex_init(&ir_lock); return 0; } @@ -279,6 +633,8 @@ static int gpio_led_remove(struct platform_device *pdev) for (i = 0; i < priv->num_leds; i++) delete_gpio_led(&priv->leds[i]); + platform_set_drvdata(pdev, NULL); + pm_qos_remove_request(&infrared_qos_req); return 0; } diff --git a/drivers/leds/leds-msm-gpio-flash.c b/drivers/leds/leds-msm-gpio-flash.c new file mode 100644 index 0000000000000..e72d0c98c0c50 --- /dev/null +++ b/drivers/leds/leds-msm-gpio-flash.c @@ -0,0 +1,325 @@ + +/* Copyright (c) 2013-2014, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* #define CONFIG_GPIO_FLASH_DEBUG */ +#undef CDBG +#define CDBG(fmt, args...) pr_err(fmt, ##args) + +#define LED_GPIO_FLASH_DRIVER_NAME "qcom,leds-gpio-flash" +#define LED_TRIGGER_DEFAULT "none" + +#define GPIO_OUT_LOW (0 << 1) +#define GPIO_OUT_HIGH (1 << 1) + +enum msm_flash_seq_type_t { + FLASH_EN, + FLASH_NOW, +}; + +struct msm_flash_ctrl_seq { + enum msm_flash_seq_type_t seq_type; + uint8_t flash_on_val; + uint8_t torch_on_val; + uint8_t flash_off_val; +}; + +struct led_gpio_flash_data { + int flash_en; + int flash_now; + int brightness; + struct led_classdev cdev; + struct pinctrl *pinctrl; + struct pinctrl_state *gpio_state_default; + struct msm_flash_ctrl_seq ctrl_seq[2]; +}; + +static struct of_device_id led_gpio_flash_of_match[] = { + {.compatible = LED_GPIO_FLASH_DRIVER_NAME,}, + {}, +}; + +static void led_gpio_brightness_set(struct led_classdev *led_cdev, + enum led_brightness value) +{ + int rc = 0; + struct led_gpio_flash_data *flash_led = + container_of(led_cdev, struct led_gpio_flash_data, cdev); + + int brightness = value; + int flash_en = 0, flash_now = 0; + + if (brightness > LED_HALF) { + flash_en = + flash_led->ctrl_seq[FLASH_EN].flash_on_val; + flash_now = + flash_led->ctrl_seq[FLASH_NOW].flash_on_val; + } else if (brightness > LED_OFF) { + flash_en = + flash_led->ctrl_seq[FLASH_EN].torch_on_val; + flash_now = + flash_led->ctrl_seq[FLASH_NOW].torch_on_val; + } else { + flash_en = 0; + flash_now = 0; + } + CDBG("%s:flash_en=%d, flash_now=%d\n", __func__, flash_en, flash_now); + + rc = gpio_direction_output(93/*flash_led->flash_en*/, flash_en); + if (rc) { + pr_err("%s: Failed to set gpio %d\n", __func__, + flash_led->flash_en); + goto err; + } + rc = gpio_direction_output(90/*flash_led->flash_now*/, flash_now); + if (rc) { + pr_err("%s: Failed to set gpio %d\n", __func__, + flash_led->flash_now); + goto err; + } + flash_led->brightness = brightness; +err: + return; +} + +static enum led_brightness led_gpio_brightness_get(struct led_classdev + *led_cdev) +{ + struct led_gpio_flash_data *flash_led = + container_of(led_cdev, struct led_gpio_flash_data, cdev); + return flash_led->brightness; +} + +int led_gpio_flash_probe(struct platform_device *pdev) +{ + int rc = 0; + const char *temp_str; + struct led_gpio_flash_data *flash_led = NULL; + struct device_node *node = pdev->dev.of_node; + const char *seq_name = NULL; + uint32_t array_flash_seq[2]; + uint32_t array_torch_seq[2]; + int i = 0; + uint32_t flash_gpio_en, flash_gpio_now; + + flash_led = devm_kzalloc(&pdev->dev, sizeof(struct led_gpio_flash_data), + GFP_KERNEL); + if (flash_led == NULL) { + dev_err(&pdev->dev, "%s:%d Unable to allocate memory\n", + __func__, __LINE__); + return -ENOMEM; + } + + flash_led->cdev.default_trigger = LED_TRIGGER_DEFAULT; + rc = of_property_read_string(node, "linux,default-trigger", &temp_str); + if (!rc) + flash_led->cdev.default_trigger = temp_str; + + flash_led->pinctrl = devm_pinctrl_get(&pdev->dev); + if (IS_ERR(flash_led->pinctrl)) { + pr_err("%s:failed to get pinctrl\n", __func__); + return PTR_ERR(flash_led->pinctrl); + } + + flash_led->gpio_state_default = pinctrl_lookup_state(flash_led->pinctrl, + "flash_default"); + if (IS_ERR(flash_led->gpio_state_default)) { + pr_err("%s:can not get active pinstate\n", __func__); + return -EINVAL; + } + + rc = pinctrl_select_state(flash_led->pinctrl, + flash_led->gpio_state_default); + if (rc) + pr_err("%s:set state failed!\n", __func__); + + + flash_led->flash_en = of_property_read_u32(node, "qcom,flash-en", &flash_gpio_en); + if (flash_led->flash_en < 0) { + dev_err(&pdev->dev, + "Looking up %s property in node %s failed. rc = %d\n", + "flash-en", node->full_name, flash_led->flash_en); + goto error; + } else { + rc = gpio_request(flash_gpio_en, "FLASH_EN"); + if (rc) { + dev_err(&pdev->dev, + "%s: Failed to request gpio %d,rc = %d\n", + __func__, flash_gpio_en, rc); + + goto error; + } + } + + + flash_led->flash_now = of_property_read_u32(node, "qcom,flash-now", &flash_gpio_now); + if (flash_led->flash_now < 0) { + dev_err(&pdev->dev, + "Looking up %s property in node %s failed. rc = %d\n", + "flash-now", node->full_name, flash_led->flash_now); + goto error; + } else { + rc = gpio_request(flash_gpio_now, "FLASH_NOW"); + if (rc) { + dev_err(&pdev->dev, + "%s: Failed to request gpio %d,rc = %d\n", + __func__, flash_gpio_now, rc); + goto error; + } + } + + rc = of_property_read_string(node, "linux,name", &flash_led->cdev.name); + if (rc) { + dev_err(&pdev->dev, "%s: Failed to read linux name. rc = %d\n", + __func__, rc); + goto error; + } + + rc = of_property_read_u32_array(node, "qcom,flash-seq-val", + array_flash_seq, 2); + + if (rc < 0) { + pr_err("%s get flash op seq failed %d\n", + __func__, __LINE__); + goto error; + } + + rc = of_property_read_u32_array(node, "qcom,torch-seq-val", + array_torch_seq, 2); + + if (rc < 0) { + pr_err("%s get torch op seq failed %d\n", + __func__, __LINE__); + goto error; + } + + for (i = 0; i < 2; i++) { + rc = of_property_read_string_index(node, + "qcom,op-seq", i, + &seq_name); + CDBG("%s seq_name[%d] = %s\n", __func__, i, + seq_name); + if (rc < 0) + dev_err(&pdev->dev, "%s failed %d\n", + __func__, __LINE__); + + if (!strcmp(seq_name, "flash_en")) { + flash_led->ctrl_seq[FLASH_EN].seq_type = + FLASH_EN; + CDBG("%s:%d seq_type[%d] %d\n", __func__, __LINE__, + i, flash_led->ctrl_seq[FLASH_EN].seq_type); + if (array_flash_seq[i] == 0) + flash_led->ctrl_seq[FLASH_EN].flash_on_val = + GPIO_OUT_LOW; + else + flash_led->ctrl_seq[FLASH_EN].flash_on_val = + GPIO_OUT_HIGH; + + if (array_torch_seq[i] == 0) + flash_led->ctrl_seq[FLASH_EN].torch_on_val = + GPIO_OUT_LOW; + else + flash_led->ctrl_seq[FLASH_EN].torch_on_val = + GPIO_OUT_HIGH; + } else if (!strcmp(seq_name, "flash_now")) { + flash_led->ctrl_seq[FLASH_NOW].seq_type = + FLASH_NOW; + CDBG("%s:%d seq_type[%d] %d\n", __func__, __LINE__, + i, flash_led->ctrl_seq[i].seq_type); + if (array_flash_seq[i] == 0) + flash_led->ctrl_seq[FLASH_NOW].flash_on_val = + GPIO_OUT_LOW; + else + flash_led->ctrl_seq[FLASH_NOW].flash_on_val = + GPIO_OUT_HIGH; + + if (array_torch_seq[i] == 0) + flash_led->ctrl_seq[FLASH_NOW].torch_on_val = + GPIO_OUT_LOW; + else + flash_led->ctrl_seq[FLASH_NOW].torch_on_val = + GPIO_OUT_HIGH; + } + + } + + platform_set_drvdata(pdev, flash_led); + flash_led->cdev.max_brightness = LED_FULL; + flash_led->cdev.brightness_set = led_gpio_brightness_set; + flash_led->cdev.brightness_get = led_gpio_brightness_get; + + rc = led_classdev_register(&pdev->dev, &flash_led->cdev); + if (rc) { + dev_err(&pdev->dev, "%s: Failed to register led dev. rc = %d\n", + __func__, rc); + goto error; + } + pr_err("%s:probe successfully!\n", __func__); + return 0; + +error: + if (IS_ERR(flash_led->pinctrl)) + devm_pinctrl_put(flash_led->pinctrl); + devm_kfree(&pdev->dev, flash_led); + return rc; +} + +int led_gpio_flash_remove(struct platform_device *pdev) +{ + struct led_gpio_flash_data *flash_led = + (struct led_gpio_flash_data *)platform_get_drvdata(pdev); + if (IS_ERR(flash_led->pinctrl)) + devm_pinctrl_put(flash_led->pinctrl); + led_classdev_unregister(&flash_led->cdev); + devm_kfree(&pdev->dev, flash_led); + return 0; +} + +static struct platform_driver led_gpio_flash_driver = { + .probe = led_gpio_flash_probe, + .remove = led_gpio_flash_remove, + .driver = { + .name = LED_GPIO_FLASH_DRIVER_NAME, + .owner = THIS_MODULE, + .of_match_table = led_gpio_flash_of_match, + } +}; + +static int __init led_gpio_flash_init(void) +{ + return platform_driver_register(&led_gpio_flash_driver); +} + +static void __exit led_gpio_flash_exit(void) +{ + return platform_driver_unregister(&led_gpio_flash_driver); +} + +late_initcall(led_gpio_flash_init); +module_exit(led_gpio_flash_exit); + +MODULE_DESCRIPTION("QCOM GPIO LEDs driver"); +MODULE_LICENSE("GPL v2"); +MODULE_ALIAS("leds:leds-msm-gpio-flash"); diff --git a/drivers/leds/leds-qpnp-flash.c b/drivers/leds/leds-qpnp-flash.c index 26a99c5869565..a0b502aa35793 100644 --- a/drivers/leds/leds-qpnp-flash.c +++ b/drivers/leds/leds-qpnp-flash.c @@ -1,4 +1,5 @@ /* Copyright (c) 2014-2017, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -29,6 +30,8 @@ #include "leds.h" #include #include +#include + #define FLASH_LED_PERIPHERAL_SUBTYPE(base) (base + 0x05) #define FLASH_SAFETY_TIMER(base) (base + 0x40) @@ -246,6 +249,8 @@ struct qpnp_flash_led { struct workqueue_struct *ordered_workq; struct qpnp_vadc_chip *vadc_dev; struct mutex flash_led_lock; + struct wake_lock flashlight_led_lock; + struct qpnp_flash_led_buffer *log; struct dentry *dbgfs_root; int num_leds; u16 base; @@ -1246,6 +1251,8 @@ static void qpnp_flash_led_work(struct work_struct *work) /* Global lock is to synchronize between the flash leds and torch */ mutex_lock(&led->flash_led_lock); + + dev_dbg(&led->spmi_dev->dev, "wt flash_node.cdev.name=%s\n", flash_node->cdev.name); /* Local lock is to synchronize for one led instance */ mutex_lock(&flash_node->cdev.led_access); @@ -1801,6 +1808,8 @@ static void qpnp_flash_led_work(struct work_struct *work) return; } + +extern int32_t wt_flash_flashlight(bool boolean); static void qpnp_flash_led_brightness_set(struct led_classdev *led_cdev, enum led_brightness value) { @@ -1818,6 +1827,22 @@ static void qpnp_flash_led_brightness_set(struct led_classdev *led_cdev, value = flash_node->cdev.max_brightness; flash_node->cdev.brightness = value; + + + pr_debug("WT flash_node.cdev.name=%s, brightness=%d, id=%d, flash_node->type=%d\n", flash_node->cdev.name, + flash_node->cdev.brightness, flash_node->id, flash_node->type); + + if (!strcmp(flash_node->cdev.name, "flashlight")) { + pr_info("wt_flash_flashlight enter value=%d\n", value); + if (value > 0) { + wt_flash_flashlight(true); + wake_lock(&led->flashlight_led_lock); + } else{ + wt_flash_flashlight(false); + wake_unlock(&led->flashlight_led_lock); + } + } + if (led->flash_node[led->num_leds - 1].id == FLASH_LED_SWITCH) { if (flash_node->type == TORCH) @@ -2506,6 +2531,8 @@ static int qpnp_flash_led_probe(struct spmi_device *spmi) } mutex_init(&led->flash_led_lock); + wake_lock_init(&led->flashlight_led_lock, WAKE_LOCK_SUSPEND, + "flashlight_led_lock_wt"); led->ordered_workq = alloc_ordered_workqueue("flash_led_workqueue", 0); if (!led->ordered_workq) { @@ -2645,6 +2672,7 @@ static int qpnp_flash_led_probe(struct spmi_device *spmi) led_classdev_unregister(&led->flash_node[i].cdev); } mutex_destroy(&led->flash_led_lock); + wake_lock_destroy(&led->flashlight_led_lock); destroy_workqueue(led->ordered_workq); return rc; @@ -2670,6 +2698,7 @@ static int qpnp_flash_led_remove(struct spmi_device *spmi) } debugfs_remove_recursive(led->dbgfs_root); mutex_destroy(&led->flash_led_lock); + wake_lock_destroy(&led->flashlight_led_lock); destroy_workqueue(led->ordered_workq); return 0; diff --git a/drivers/leds/leds-qpnp-wled.c b/drivers/leds/leds-qpnp-wled.c index 06b80c8d312f5..cbe114cb36bbb 100644 --- a/drivers/leds/leds-qpnp-wled.c +++ b/drivers/leds/leds-qpnp-wled.c @@ -91,7 +91,7 @@ #define QPNP_WLED_BOOST_DUTY_MAX_NS 156 #define QPNP_WLED_DEF_BOOST_DUTY_NS 104 #define QPNP_WLED_SWITCH_FREQ_MASK 0x70 -#define QPNP_WLED_SWITCH_FREQ_800_KHZ 800 +#define QPNP_WLED_SWITCH_FREQ_600_KHZ 600 #define QPNP_WLED_SWITCH_FREQ_1600_KHZ 1600 #define QPNP_WLED_SWITCH_FREQ_OVERWRITE 0x80 #define QPNP_WLED_OVP_MASK GENMASK(1, 0) @@ -161,7 +161,7 @@ #define QPNP_WLED_SINK_TEST5_HYB 0x14 #define QPNP_WLED_SINK_TEST5_DIG 0x1E -#define QPNP_WLED_SWITCH_FREQ_800_KHZ_CODE 0x0B +#define QPNP_WLED_SWITCH_FREQ_600_KHZ_CODE 0x0B #define QPNP_WLED_SWITCH_FREQ_1600_KHZ_CODE 0x05 #define QPNP_WLED_DISP_SEL_REG(b) (b + 0x44) @@ -1087,7 +1087,7 @@ static int qpnp_wled_config(struct qpnp_wled *wled) if (wled->switch_freq_khz == QPNP_WLED_SWITCH_FREQ_1600_KHZ) temp = QPNP_WLED_SWITCH_FREQ_1600_KHZ_CODE; else - temp = QPNP_WLED_SWITCH_FREQ_800_KHZ_CODE; + temp = QPNP_WLED_SWITCH_FREQ_600_KHZ_CODE; rc = qpnp_wled_read_reg(wled, ®, QPNP_WLED_SWITCH_FREQ_REG(wled->ctrl_base)); @@ -1555,7 +1555,7 @@ static int qpnp_wled_parse_dt(struct qpnp_wled *wled) return rc; } - wled->switch_freq_khz = QPNP_WLED_SWITCH_FREQ_800_KHZ; + wled->switch_freq_khz = QPNP_WLED_SWITCH_FREQ_600_KHZ; rc = of_property_read_u32(spmi->dev.of_node, "qcom,switch-freq-khz", &temp_val); if (!rc) { diff --git a/drivers/md/dm-verity-target.c b/drivers/md/dm-verity-target.c index 8b747528b02d4..66d2ab3ec9b83 100644 --- a/drivers/md/dm-verity-target.c +++ b/drivers/md/dm-verity-target.c @@ -233,7 +233,7 @@ static int verity_handle_err(struct dm_verity *v, enum verity_block_type type, if (v->mode == DM_VERITY_MODE_LOGGING) return 0; - if (v->mode == DM_VERITY_MODE_RESTART) + if (v->mode == DM_VERITY_MODE_RESTART && system_state != SYSTEM_POWER_OFF) kernel_restart("dm-verity device corrupted"); return 1; diff --git a/drivers/media/platform/msm/camera_v2/pproc/cpp/msm_cpp.c b/drivers/media/platform/msm/camera_v2/pproc/cpp/msm_cpp.c index 6f644d870b2c6..18daac6ab23d8 100644 --- a/drivers/media/platform/msm/camera_v2/pproc/cpp/msm_cpp.c +++ b/drivers/media/platform/msm/camera_v2/pproc/cpp/msm_cpp.c @@ -1,4 +1,5 @@ /* Copyright (c) 2013-2017, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -662,8 +663,139 @@ static int32_t msm_cpp_poll_rx_empty(void __iomem *cpp_base) } return rc; } +static int msm_cpp_dump_addr(struct cpp_device *cpp_dev, + struct msm_cpp_frame_info_t *frame_info) +{ + int32_t s_base, p_base; + uint32_t rd_off, wr0_off, wr1_off, wr2_off, wr3_off; + uint32_t wr0_mdata_off, wr1_mdata_off, wr2_mdata_off, wr3_mdata_off; + uint32_t rd_ref_off, wr_ref_off; + uint32_t s_size, p_size; + uint8_t tnr_enabled, ubwc_enabled, cds_en; + int32_t i = 0; + uint32_t *cpp_frame_msg; + + cpp_frame_msg = frame_info->cpp_cmd_msg; + + /* Update stripe/plane size and base offsets */ + s_base = cpp_dev->payload_params.stripe_base; + s_size = cpp_dev->payload_params.stripe_size; + p_base = cpp_dev->payload_params.plane_base; + p_size = cpp_dev->payload_params.plane_size; + + /* Fetch engine Offset */ + rd_off = cpp_dev->payload_params.rd_pntr_off; + /* Write engine offsets */ + wr0_off = cpp_dev->payload_params.wr_0_pntr_off; + wr1_off = wr0_off + 1; + wr2_off = wr1_off + 1; + wr3_off = wr2_off + 1; + /* Reference engine offsets */ + rd_ref_off = cpp_dev->payload_params.rd_ref_pntr_off; + wr_ref_off = cpp_dev->payload_params.wr_ref_pntr_off; + /* Meta data offsets */ + wr0_mdata_off = + cpp_dev->payload_params.wr_0_meta_data_wr_pntr_off; + wr1_mdata_off = (wr0_mdata_off + 1); + wr2_mdata_off = (wr1_mdata_off + 1); + wr3_mdata_off = (wr2_mdata_off + 1); + + tnr_enabled = ((frame_info->feature_mask & TNR_MASK) >> 2); + ubwc_enabled = ((frame_info->feature_mask & UBWC_MASK) >> 5); + cds_en = ((frame_info->feature_mask & CDS_MASK) >> 6); + + for (i = 0; i < frame_info->num_strips; i++) { + pr_err("stripe %d: in %x, out1 %x out2 %x, out3 %x, out4 %x\n", + i, cpp_frame_msg[s_base + rd_off + i * s_size], + cpp_frame_msg[s_base + wr0_off + i * s_size], + cpp_frame_msg[s_base + wr1_off + i * s_size], + cpp_frame_msg[s_base + wr2_off + i * s_size], + cpp_frame_msg[s_base + wr3_off + i * s_size]); + + if (tnr_enabled) { + pr_err("stripe %d: read_ref %x, write_ref %x\n", i, + cpp_frame_msg[s_base + rd_ref_off + i * s_size], + cpp_frame_msg[s_base + wr_ref_off + i * s_size] + ); + } + + if (cds_en) { + pr_err("stripe %d:, dsdn_off %x\n", i, + cpp_frame_msg[s_base + rd_ref_off + i * s_size] + ); + } + if (ubwc_enabled) { + pr_err("stripe %d: metadata %x, %x, %x, %x\n", i, + cpp_frame_msg[s_base + wr0_mdata_off + + i * s_size], + cpp_frame_msg[s_base + wr1_mdata_off + + i * s_size], + cpp_frame_msg[s_base + wr2_mdata_off + + i * s_size], + cpp_frame_msg[s_base + wr3_mdata_off + + i * s_size] + ); + } + + } + return 0; +} +static void msm_cpp_iommu_fault_handler(struct iommu_domain *domain, + struct device *dev, unsigned long iova, int flags, void *token) +{ + struct cpp_device *cpp_dev = NULL; + struct msm_cpp_frame_info_t *processed_frame[MAX_CPP_PROCESSING_FRAME]; + int32_t i = 0, queue_len = 0; + struct msm_device_queue *queue = NULL; + int32_t rc = 0; + + if (token) { + cpp_dev = token; + disable_irq(cpp_dev->irq->start); + if (atomic_read(&cpp_timer.used)) { + atomic_set(&cpp_timer.used, 0); + del_timer_sync(&cpp_timer.cpp_timer); + } + mutex_lock(&cpp_dev->mutex); + tasklet_kill(&cpp_dev->cpp_tasklet); + + rc = cpp_load_fw(cpp_dev, cpp_dev->fw_name_bin); + + if (rc < 0) { + pr_err("load fw failure %d-retry\n", rc); + rc = msm_cpp_reset_vbif_and_load_fw(cpp_dev); + if (rc < 0) { + msm_cpp_set_micro_irq_mask(cpp_dev, 1, 0x8); + mutex_unlock(&cpp_dev->mutex); + return; + } + } + queue = &cpp_timer.data.cpp_dev->processing_q; + queue_len = queue->len; + if (!queue_len) { + pr_err("%s:%d: Invalid queuelen\n", __func__, __LINE__); + msm_cpp_set_micro_irq_mask(cpp_dev, 1, 0x8); + mutex_unlock(&cpp_dev->mutex); + return; + } + for (i = 0; i < queue_len; i++) { + if (cpp_timer.data.processed_frame[i]) { + processed_frame[i] = + cpp_timer.data.processed_frame[i]; + pr_err("Fault on identity=0x%x, frame_id=%03d\n", + processed_frame[i]->identity, + processed_frame[i]->frame_id); + msm_cpp_dump_addr(cpp_dev, processed_frame[i]); + msm_cpp_dump_frame_cmd(processed_frame[i]); + } + } + msm_cpp_flush_queue_and_release_buffer(cpp_dev, queue_len); + msm_cpp_set_micro_irq_mask(cpp_dev, 1, 0x8); + mutex_unlock(&cpp_dev->mutex); + } +} static int cpp_init_mem(struct cpp_device *cpp_dev) { int rc = 0; @@ -679,6 +811,12 @@ static int cpp_init_mem(struct cpp_device *cpp_dev) return -ENODEV; cpp_dev->iommu_hdl = iommu_hdl; + + cam_smmu_reg_client_page_fault_handler( + cpp_dev->iommu_hdl, + msm_cpp_iommu_fault_handler, cpp_dev); + + return 0; } diff --git a/drivers/media/platform/msm/camera_v2/sensor/actuator/msm_actuator.c b/drivers/media/platform/msm/camera_v2/sensor/actuator/msm_actuator.c index f3a2fe0348720..f22eea05a38f1 100755 --- a/drivers/media/platform/msm/camera_v2/sensor/actuator/msm_actuator.c +++ b/drivers/media/platform/msm/camera_v2/sensor/actuator/msm_actuator.c @@ -1,4 +1,5 @@ /* Copyright (c) 2011-2017, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -573,7 +574,11 @@ static int32_t msm_actuator_move_focus( CDBG("called, dir %d, num_steps %d\n", dir, num_steps); - if (dest_step_pos == a_ctrl->curr_step_pos) + + if ((dest_step_pos == a_ctrl->curr_step_pos) || + ((dest_step_pos <= a_ctrl->total_steps) && + (a_ctrl->step_position_table[dest_step_pos] == + a_ctrl->step_position_table[a_ctrl->curr_step_pos]))) return rc; if ((sign_dir > MSM_ACTUATOR_MOVE_SIGNED_NEAR) || @@ -812,27 +817,37 @@ static int32_t msm_actuator_park_lens(struct msm_actuator_ctrl_t *a_ctrl) next_lens_pos = a_ctrl->step_position_table[a_ctrl->curr_step_pos]; while (next_lens_pos) { /* conditions which help to reduce park lens time */ - if (next_lens_pos > (a_ctrl->park_lens.max_step * - PARK_LENS_LONG_STEP)) { - next_lens_pos = next_lens_pos - - (a_ctrl->park_lens.max_step * - PARK_LENS_LONG_STEP); - } else if (next_lens_pos > (a_ctrl->park_lens.max_step * - PARK_LENS_MID_STEP)) { - next_lens_pos = next_lens_pos - - (a_ctrl->park_lens.max_step * - PARK_LENS_MID_STEP); - } else if (next_lens_pos > (a_ctrl->park_lens.max_step * - PARK_LENS_SMALL_STEP)) { - next_lens_pos = next_lens_pos - - (a_ctrl->park_lens.max_step * - PARK_LENS_SMALL_STEP); - } else { - next_lens_pos = (next_lens_pos > - a_ctrl->park_lens.max_step) ? - (next_lens_pos - a_ctrl->park_lens. - max_step) : 0; - } + #if defined(CONFIG_D1_ROSY) + if (next_lens_pos > 400) { + next_lens_pos = 400; + } else if (next_lens_pos > 25) { + next_lens_pos = next_lens_pos - 25; + } else{ + next_lens_pos = 0; + } + #else + if (next_lens_pos > (a_ctrl->park_lens.max_step * + PARK_LENS_LONG_STEP)) { + next_lens_pos = next_lens_pos - + (a_ctrl->park_lens.max_step * + PARK_LENS_LONG_STEP); + } else if (next_lens_pos > (a_ctrl->park_lens.max_step * + PARK_LENS_MID_STEP)) { + next_lens_pos = next_lens_pos - + (a_ctrl->park_lens.max_step * + PARK_LENS_MID_STEP); + } else if (next_lens_pos > (a_ctrl->park_lens.max_step * + PARK_LENS_SMALL_STEP)) { + next_lens_pos = next_lens_pos - + (a_ctrl->park_lens.max_step * + PARK_LENS_SMALL_STEP); + } else { + next_lens_pos = (next_lens_pos > + a_ctrl->park_lens.max_step) ? + (next_lens_pos - a_ctrl->park_lens. + max_step) : 0; + } + #endif a_ctrl->func_tbl->actuator_parse_i2c_params(a_ctrl, next_lens_pos, a_ctrl->park_lens.hw_params, a_ctrl->park_lens.damping_delay); @@ -851,7 +866,11 @@ static int32_t msm_actuator_park_lens(struct msm_actuator_ctrl_t *a_ctrl) } a_ctrl->i2c_tbl_index = 0; /* Use typical damping time delay to avoid tick sound */ - usleep_range(10000, 12000); + #if defined(CONFIG_D1_ROSY) + usleep_range(13000, 14000); + #else + usleep_range(10000, 12000); + #endif } return 0; diff --git a/drivers/media/platform/msm/camera_v2/sensor/cci/msm_cci.c b/drivers/media/platform/msm/camera_v2/sensor/cci/msm_cci.c index 7a9977d9409bf..3fce5d8441d47 100644 --- a/drivers/media/platform/msm/camera_v2/sensor/cci/msm_cci.c +++ b/drivers/media/platform/msm/camera_v2/sensor/cci/msm_cci.c @@ -1413,10 +1413,15 @@ static int32_t msm_cci_init(struct v4l2_subdev *sd, } /* Re-initialize the completion */ - reinit_completion(&cci_dev->cci_master_info[master].reset_complete); + reinit_completion(&cci_dev->cci_master_info[MASTER_0].reset_complete); for (i = 0; i < NUM_QUEUES; i++) - reinit_completion(&cci_dev->cci_master_info[master]. + reinit_completion(&cci_dev->cci_master_info[MASTER_0]. report_q[i]); + reinit_completion(&cci_dev->cci_master_info[MASTER_1].reset_complete); + for (i = 0; i < NUM_QUEUES; i++) + reinit_completion(&cci_dev->cci_master_info[MASTER_1]. + report_q[i]); + rc = msm_camera_enable_irq(cci_dev->irq, true); if (rc < 0) pr_err("%s: irq enable failed\n", __func__); diff --git a/drivers/media/platform/msm/camera_v2/sensor/eeprom/Makefile b/drivers/media/platform/msm/camera_v2/sensor/eeprom/Makefile index ba78a650b4ba8..eee3727adcfc9 100644 --- a/drivers/media/platform/msm/camera_v2/sensor/eeprom/Makefile +++ b/drivers/media/platform/msm/camera_v2/sensor/eeprom/Makefile @@ -3,3 +3,4 @@ ccflags-y += -Idrivers/media/platform/msm/camera_v2/common ccflags-y += -Idrivers/media/platform/msm/camera_v2/sensor/io ccflags-y += -Idrivers/media/platform/msm/camera_v2/sensor/cci obj-$(CONFIG_MSM_EEPROM) += msm_eeprom.o +obj-y += msm_eeprom_insensor_ov13850.o diff --git a/drivers/media/platform/msm/camera_v2/sensor/eeprom/msm_eeprom.c b/drivers/media/platform/msm/camera_v2/sensor/eeprom/msm_eeprom.c index dd2f9192e32f7..85e2b8f939302 100644 --- a/drivers/media/platform/msm/camera_v2/sensor/eeprom/msm_eeprom.c +++ b/drivers/media/platform/msm/camera_v2/sensor/eeprom/msm_eeprom.c @@ -1,4 +1,5 @@ /* Copyright (c) 2011-2016, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -17,9 +18,16 @@ #include "msm_sd.h" #include "msm_cci.h" #include "msm_eeprom.h" +#if defined(CONFIG_D1_ROSY) +#include "msm_eeprom_otp_interface.h" +#endif #undef CDBG #define CDBG(fmt, args...) pr_debug(fmt, ##args) +char fusionid_back_d1[64] = { 0 }; +char fusionid_front_d1[64] = { 0 }; +extern char fusionid_front[]; +extern char fusionid_back[]; DEFINE_MSM_MUTEX(msm_eeprom_mutex); #ifdef CONFIG_COMPAT @@ -1515,12 +1523,6 @@ static int msm_eeprom_config32(struct msm_eeprom_ctrl_t *e_ctrl, rc = eeprom_config_read_cal_data32(e_ctrl, argp); break; case CFG_EEPROM_INIT: - if (e_ctrl->userspace_probe == 0) { - pr_err("%s:%d Eeprom already probed at kernel boot", - __func__, __LINE__); - rc = -EINVAL; - break; - } if (e_ctrl->cal_data.num_data == 0) { rc = eeprom_init_config32(e_ctrl, argp); if (rc < 0) @@ -1576,6 +1578,35 @@ static long msm_eeprom_subdev_fops_ioctl32(struct file *file, unsigned int cmd, #endif +static uint16_t fusion_read_id_D1_back(uint8_t *data) +{ + uint16_t i; + uint8_t *fusion_id = data; + memset(fusionid_back_d1, 0, sizeof(fusionid_back_d1)); + for (i = 0; i < 16; i++) { + sprintf(fusionid_back_d1 + strlen(fusionid_back_d1), "%u", fusion_id[i]); + } + CDBG("fusionid_back: %s\n", fusionid_back_d1); + return 0; +} + +static uint16_t fusion_read_id_D1_front(uint8_t *data) +{ + uint16_t i; + uint8_t *fusion_id = data; + memset(fusionid_front_d1, 0, sizeof(fusionid_front_d1)); + for (i = 0; i < 16; i++) { + sprintf(fusionid_front_d1 + strlen(fusionid_front_d1), "%u", fusion_id[i]); + } + CDBG("fusionid_front: %s\n", fusionid_front_d1); + return 0; +} + + +static int module_id = -1; +int main_module_id = -1; +int sub_module_id = -1; + static int msm_eeprom_platform_probe(struct platform_device *pdev) { int rc = 0; @@ -1669,6 +1700,8 @@ static int msm_eeprom_platform_probe(struct platform_device *pdev) &eb_info->eeprom_name); CDBG("%s qcom,eeprom-name %s, rc %d\n", __func__, eb_info->eeprom_name, rc); + printk("%s qcom,eeprom-name %s, rc %d\n", __func__, + eb_info->eeprom_name, rc); if (rc < 0) { pr_err("%s failed %d\n", __func__, __LINE__); e_ctrl->userspace_probe = 1; @@ -1716,6 +1749,57 @@ static int msm_eeprom_platform_probe(struct platform_device *pdev) pr_err("failed rc %d\n", rc); goto memdata_free; } + + + if (!strcmp(eb_info->eeprom_name, "ov13850")) { + eeprom_init_ov13850_reg_otp(e_ctrl); + } + + +#if defined(CONFIG_D1_ROSY) + /* 1. init insensor otp */ + if (!strcmp(eb_info->eeprom_name, "ovt_ov5675_i")) { + printk("insensor eeprom todo init the otp register!\n"); + eeprom_init_ov5675_reg_otp(e_ctrl, 0x20); + } else if (!strcmp(eb_info->eeprom_name, "ovt_ov5675_ii")) { + printk("insensor eeprom todo init the otp register!\n"); + eeprom_init_ov5675_reg_otp(e_ctrl, 0x6c); + } else { + printk("the eeprom is not insensor!\n"); + } + + if (!strcmp(eb_info->eeprom_name, "ovt_ov12a10_i")) { + module_id = sensor_eeprom_match_crc_id(e_ctrl, 0x00); + pr_err("eeprom %s read module id %d", eb_info->eeprom_name, module_id); + if (7 != module_id) { + pr_err("%s match id for ovt_ov12a10_i failed\n", __func__); + goto power_down; + } + } else if (!strcmp(eb_info->eeprom_name, "sony_imx486_ii")) { + module_id = sensor_eeprom_match_crc_id(e_ctrl, 0x00); + pr_err("eeprom %s read module id %d\n", eb_info->eeprom_name, module_id); + if (1 != module_id) { + pr_err("%s match id for sony_imx486_ii failed\n", __func__); + goto power_down; + } + } else if (!strcmp(eb_info->eeprom_name, "ovt_ov5675_i")) { + module_id = sensor_eeprom_match_crc_id(e_ctrl, 0x7010); + pr_err("eeprom %s read module id %d\n", eb_info->eeprom_name, module_id); + if (6 != module_id) { + pr_err("%s match id for ovt_ov5675_i failed\n", __func__); + goto power_down; + } + } else if (!strcmp(eb_info->eeprom_name, "ovt_ov5675_ii")) { + module_id = sensor_eeprom_match_crc_id(e_ctrl, 0x7010); + pr_err("eeprom %s read module id %d\n", eb_info->eeprom_name, module_id); + if (7 != module_id) { + pr_err("%s match id for ovt_ov5675_ii failed\n", __func__); + goto power_down; + } + } +#endif + + rc = read_eeprom_memory(e_ctrl, &e_ctrl->cal_data); if (rc < 0) { pr_err("%s read_eeprom_memory failed\n", __func__); @@ -1725,6 +1809,314 @@ static int msm_eeprom_platform_probe(struct platform_device *pdev) CDBG("memory_data[%d] = 0x%X\n", j, e_ctrl->cal_data.mapdata[j]); + if (!strcmp(eb_info->eeprom_name, "s5k3l8_ofilm")) { + CDBG("match id for s5k3l8_ofilm\n"); + if (e_ctrl->cal_data.mapdata[0] == 0x55) { + module_id = e_ctrl->cal_data.mapdata[1] & 0x1f; + } else{ + module_id = -1; + } + printk("match id for s5k3l8_ofilm module_id=%d\n", module_id); + if (module_id == 7) { + CDBG("match id for s5k3l8_ofilm success\n"); + main_module_id = module_id; + } else { + pr_err("%s match id for s5k3l8_ofilm failed\n", __func__); + goto power_down; + } + } else if (!strcmp(eb_info->eeprom_name, "s5k3l8_ofilm_riva")) { + CDBG("match id for s5k3l8_ofilm_riva\n"); + if (e_ctrl->cal_data.mapdata[0] == 0x55) { + module_id = e_ctrl->cal_data.mapdata[1] & 0x1f; + } else{ + module_id = -1; + } + printk("match id for s5k3l8_ofilm_riva module_id=%d\n", module_id); + if (module_id == 7) { + CDBG("match id for s5k3l8_ofilm_riva success\n"); + main_module_id = module_id; + } else { + pr_err("%s match id for s5k3l8_ofilm_riva failed\n", __func__); + goto power_down; + } + } else if (!strcmp(eb_info->eeprom_name, "s5k3l8_sunny")) { + CDBG("match id for s5k3l8_sunny\n"); + if (e_ctrl->cal_data.mapdata[0] == 0x55) { + module_id = e_ctrl->cal_data.mapdata[1] & 0x1f; + } else{ + module_id = -1; + } + printk("match id for s5k3l8_sunny module_id=%d\n", module_id); + if (module_id == 1) { + CDBG("match id for s5k3l8_sunny success\n"); + main_module_id = module_id; + } else { + pr_err("%s match id for s5k3l8_sunny failed\n", __func__); + goto power_down; + } + } else if (!strcmp(eb_info->eeprom_name, "ov13855_qtech")) { + CDBG("match id for ov13855_qtech\n"); + if (e_ctrl->cal_data.mapdata[0] == 0x55) { + module_id = e_ctrl->cal_data.mapdata[1] & 0x1f; + } else{ + module_id = -1; + } + printk("match id for ov13855_qtech module_id=%d\n", module_id); + if (module_id == 11) { + CDBG("match id for ov13855_qtech success\n"); + main_module_id = module_id; + } else { + pr_err("%s match id for ov13855_qtech failed\n", __func__); + goto power_down; + } + } else if (!strcmp(eb_info->eeprom_name, "ov13855_sunny")) { + CDBG("match id for ov13855_sunny\n"); + if (e_ctrl->cal_data.mapdata[0] == 0x55) { + module_id = e_ctrl->cal_data.mapdata[1] & 0x1f; + } else{ + module_id = -1; + } + printk("match id for ov13855_sunny module_id=%d\n", module_id); + if (module_id == 1) { + CDBG("match id for ov13855_sunny success\n"); + main_module_id = module_id; + } else { + pr_err("%s match id for ov13855_sunny failed\n", __func__); + goto power_down; + } + } else if (!strcmp(eb_info->eeprom_name, "ov13850")) { + + printk("match id for ov13850 AWB:[mapdata[8]:0x%x, mapdata[9]:0x%x; mapdata[0]:0x%x, mapdata[1]:0x%x] AF:[mapdata[16]:0x%x mapdata[24]:0x%x] LSC:[mapdata[32]:0x%x mapdata[221]:0x%x]\n", + e_ctrl->cal_data.mapdata[8], e_ctrl->cal_data.mapdata[9]&0x1f, e_ctrl->cal_data.mapdata[0], e_ctrl->cal_data.mapdata[1]&0x1f, + e_ctrl->cal_data.mapdata[16], e_ctrl->cal_data.mapdata[24], e_ctrl->cal_data.mapdata[32], e_ctrl->cal_data.mapdata[221]); + if (e_ctrl->cal_data.mapdata[8] == 0x55) { + module_id = e_ctrl->cal_data.mapdata[9] & 0x1f; + } else if (e_ctrl->cal_data.mapdata[0] == 0x55) { + module_id = e_ctrl->cal_data.mapdata[1] & 0x1f; + } else { + module_id = -1; + } + printk("match id for ov13850 module_id=%d\n", module_id); + if (module_id == 1) { + CDBG("match id for ov13850 success\n"); + main_module_id = module_id; + } else { + pr_err("%s match id for ov13850 failed\n", __func__); + goto power_down; + } + ov13850_eeprom_sensor_writereg(e_ctrl, 0x0100, 0x00, 1); + + } else if (!strcmp(eb_info->eeprom_name, "s5k3l2")) { + CDBG("match id for s5k3l2\n"); + if (e_ctrl->cal_data.mapdata[0] == 0x55) { + module_id = e_ctrl->cal_data.mapdata[1] & 0x1f; + } else{ + module_id = -1; + } + printk("match id for s5k3l2 module_id=%d\n", module_id); + if (module_id == 7) { + CDBG("match id for s5k3l2 success\n"); + main_module_id = module_id; + } else { + pr_err("%s match id for s5k3l2 failed\n", __func__); + goto power_down; + } + } else if (!strcmp(eb_info->eeprom_name, "ov5675_ofilm")) { + CDBG("match id for ov5675_ofilm\n"); + if (e_ctrl->cal_data.mapdata[16] == 0x55) { + module_id = e_ctrl->cal_data.mapdata[17] & 0x1f; + } else if (e_ctrl->cal_data.mapdata[8] == 0x55) { + module_id = e_ctrl->cal_data.mapdata[9] & 0x1f; + } else if (e_ctrl->cal_data.mapdata[0] == 0x55) { + module_id = e_ctrl->cal_data.mapdata[1] & 0x1f; + } else { + module_id = -1; + } + printk("match id for ov5675_ofilm module_id=%d\n", module_id); + if (module_id == 7) { + CDBG("match id for ov5670_ofilm success\n"); + sub_module_id = module_id; + } else { + pr_err("%s match id for ov5670_ofilm failed\n", __func__); + goto power_down; + } + } else if (!strcmp(eb_info->eeprom_name, "ovt_ov5675_i")) { + CDBG("match id for ovt_ov5675_i\n"); + if (e_ctrl->cal_data.mapdata[0] == 0x01) { + module_id = e_ctrl->cal_data.mapdata[1] & 0x1f; + + } else if (e_ctrl->cal_data.mapdata[80] == 0x01) { + module_id = e_ctrl->cal_data.mapdata[81] & 0x1f; + + } else { + module_id = -1; + } + printk("match id for ovt_ov5675_i module_id=%d\n", module_id); + if (module_id == 6) { + CDBG("match id for ovt_ov5675_i success\n"); + sub_module_id = module_id; + fusion_read_id_D1_front(&e_ctrl->cal_data.mapdata[16]); + strcpy(fusionid_front, fusionid_front_d1 + strlen(fusionid_front_d1)); + } else { + pr_err("%s match id for ovt_ov5675_i failed\n", __func__); + goto power_down; + } + } else if (!strcmp(eb_info->eeprom_name, "ovt_ov5675_ii")) { + CDBG("match id for ovt_ov5675_ii\n"); + if (e_ctrl->cal_data.mapdata[0] == 0x01) { + module_id = e_ctrl->cal_data.mapdata[1] & 0x1f; + + } else if (e_ctrl->cal_data.mapdata[80] == 0x01) { + module_id = e_ctrl->cal_data.mapdata[81] & 0x1f; + + } else { + module_id = -1; + } + printk("match id for ovt_ov5675_ii module_id=%d\n", module_id); + if (module_id == 7) { + CDBG("match id for ovt_ov5675_ii success\n"); + sub_module_id = module_id; + fusion_read_id_D1_front(&e_ctrl->cal_data.mapdata[16]); + strcpy(fusionid_front, fusionid_front_d1 + strlen(fusionid_front_d1)); + } else { + pr_err("%s match id for ovt_ov5675_ii failed\n", __func__); + goto power_down; + } + } else if (!strcmp(eb_info->eeprom_name, "s5k5e8_sunny")) { + CDBG("match id for s5k5e8_sunny\n"); + if (e_ctrl->cal_data.mapdata[16] == 0x55) { + module_id = e_ctrl->cal_data.mapdata[17] & 0x1f; + } else if (e_ctrl->cal_data.mapdata[8] == 0x55) { + module_id = e_ctrl->cal_data.mapdata[9] & 0x1f; + } else if (e_ctrl->cal_data.mapdata[0] == 0x55) { + module_id = e_ctrl->cal_data.mapdata[1] & 0x1f; + } else { + module_id = -1; + } + printk("match id for s5k5e8_sunny module_id=%d\n", module_id); + if (module_id == 1) { + CDBG("match id for s5k5e8_sunny success\n"); + sub_module_id = module_id; + } else { + pr_err("%s match id for s5k5e8_sunny failed\n", __func__); + goto power_down; + } + } else if (!strcmp(eb_info->eeprom_name, "s5k5e8_ofilm_riva")) { + CDBG("match id for s5k5e8_ofilm_riva\n"); + if (e_ctrl->cal_data.mapdata[16] == 0x55) { + module_id = e_ctrl->cal_data.mapdata[17] & 0x1f; + } else if (e_ctrl->cal_data.mapdata[8] == 0x55) { + module_id = e_ctrl->cal_data.mapdata[9] & 0x1f; + } else if (e_ctrl->cal_data.mapdata[0] == 0x55) { + module_id = e_ctrl->cal_data.mapdata[1] & 0x1f; + } else { + module_id = -1; + } + printk("match id for s5k5e8_ofilm_riva module_id=%d\n", module_id); + if (module_id == 7) { + CDBG("match id for s5k5e8_ofilm_riva success\n"); + sub_module_id = module_id; + } else { + pr_err("%s match id for s5k5e8_ofilm_riva failed\n", __func__); + goto power_down; + } + } else if (!strcmp(eb_info->eeprom_name, "ov5675")) { + CDBG("match id for ov5675\n"); + if (e_ctrl->cal_data.mapdata[16] == 0x55) { + module_id = e_ctrl->cal_data.mapdata[17] & 0x1f; + } else if (e_ctrl->cal_data.mapdata[8] == 0x55) { + module_id = e_ctrl->cal_data.mapdata[9] & 0x1f; + } else if (e_ctrl->cal_data.mapdata[0] == 0x55) { + module_id = e_ctrl->cal_data.mapdata[1] & 0x1f; + } else { + module_id = -1; + } + printk("match id for ov5675 module_id=%d\n", module_id); + if (module_id == 1) { + CDBG("match id for ov5675 success\n"); + sub_module_id = module_id; + } else { + pr_err("%s match id for ov5670 failed\n", __func__); + goto power_down; + } + } else if (!strcmp(eb_info->eeprom_name, "s5k5e8_qtech_riva")) { + CDBG("match id for s5k5e8_qtech_riva\n"); + if (e_ctrl->cal_data.mapdata[16] == 0x55) { + module_id = e_ctrl->cal_data.mapdata[17] & 0x1f; + } else if (e_ctrl->cal_data.mapdata[8] == 0x55) { + module_id = e_ctrl->cal_data.mapdata[9] & 0x1f; + } else if (e_ctrl->cal_data.mapdata[0] == 0x55) { + module_id = e_ctrl->cal_data.mapdata[1] & 0x1f; + } else { + module_id = -1; + } + printk("match id for s5k5e8_qtech_riva module_id=%d\n", module_id); + if (module_id == 11) { + CDBG("match id for s5k5e8_qtech_riva success\n"); + sub_module_id = module_id; + } else { + pr_err("%s match id for s5k5e8_qtech_riva failed\n", __func__); + goto power_down; + } + } else if (!strcmp(eb_info->eeprom_name, "s5k5e8_ofilm")) { + CDBG("match id for s5k5e8_ofilm\n"); + if (e_ctrl->cal_data.mapdata[16] == 0x55) { + module_id = e_ctrl->cal_data.mapdata[17] & 0x1f; + } else if (e_ctrl->cal_data.mapdata[8] == 0x55) { + module_id = e_ctrl->cal_data.mapdata[9] & 0x1f; + } else if (e_ctrl->cal_data.mapdata[0] == 0x55) { + module_id = e_ctrl->cal_data.mapdata[1] & 0x1f; + } else { + module_id = -1; + } + printk("match id for s5k5e8_ofilm module_id=%d\n", module_id); + if (module_id == 7) { + CDBG("match id for s5k5e8_ofilm success\n"); + sub_module_id = module_id; + } else { + pr_err("%s match id for s5k5e8_ofilm failed\n", __func__); + goto power_down; + } + } else if (!strcmp(eb_info->eeprom_name, "ovt_ov12a10_i")) { + CDBG("match id for ovt_ov12a10_i\n"); + if (e_ctrl->cal_data.mapdata[0] == 0x01) { + module_id = e_ctrl->cal_data.mapdata[1] & 0x1f; + } else{ + module_id = -1; + } + printk("match id for ovt_ov12a10_i module_id=%d\n", module_id); + if (module_id == 7) { + CDBG("match id for ovt_ov12a10_i success\n"); + main_module_id = module_id; + fusion_read_id_D1_back(&e_ctrl->cal_data.mapdata[16]); + strcpy(fusionid_back, fusionid_back_d1 + strlen(fusionid_back_d1)); + } else { + pr_err("%s match id for ovt_ov12a10_i failed\n", __func__); + goto power_down; + } + } else if (!strcmp(eb_info->eeprom_name, "sony_imx486_ii")) { + CDBG("match id for sony_imx486_ii\n"); + if (e_ctrl->cal_data.mapdata[0] == 0x01) { + module_id = e_ctrl->cal_data.mapdata[1] & 0x1f; + } else{ + module_id = -1; + } + printk("match id for sony_imx486_ii module_id=%d\n", module_id); + if (module_id == 1) { + CDBG("match id for sony_imx486_ii success\n"); + main_module_id = module_id; + fusion_read_id_D1_back(&e_ctrl->cal_data.mapdata[16]); + strcpy(fusionid_back, fusionid_back_d1 + strlen(fusionid_back_d1)); + } else { + pr_err("%s match id for sony_imx486_ii failed\n", __func__); + goto power_down; + } + } else { + pr_err("%s eeprom name match failed\n", __func__); + goto power_down; + } + CDBG("%s eeprom module id: main_module_id=%d sub_module_id=%d\n", __func__, main_module_id, sub_module_id); + e_ctrl->is_supported |= msm_eeprom_match_crc(&e_ctrl->cal_data); rc = msm_camera_power_down(power_info, diff --git a/drivers/media/platform/msm/camera_v2/sensor/eeprom/msm_eeprom.h b/drivers/media/platform/msm/camera_v2/sensor/eeprom/msm_eeprom.h index 5e348a8001a6a..fdd8a80e653ae 100644 --- a/drivers/media/platform/msm/camera_v2/sensor/eeprom/msm_eeprom.h +++ b/drivers/media/platform/msm/camera_v2/sensor/eeprom/msm_eeprom.h @@ -1,4 +1,5 @@ /* Copyright (c) 2011-2015, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -48,4 +49,7 @@ struct msm_eeprom_ctrl_t { uint8_t is_supported; }; +extern int ov13850_eeprom_sensor_writereg(struct msm_eeprom_ctrl_t *s_ctrl, uint32_t reg_addr, uint32_t reg_value, uint32_t delay); +extern int eeprom_init_ov13850_reg_otp(struct msm_eeprom_ctrl_t *e_ctrl); + #endif diff --git a/drivers/media/platform/msm/camera_v2/sensor/eeprom/msm_eeprom_insensor_ov13850.c b/drivers/media/platform/msm/camera_v2/sensor/eeprom/msm_eeprom_insensor_ov13850.c new file mode 100644 index 0000000000000..1dfed860b65a1 --- /dev/null +++ b/drivers/media/platform/msm/camera_v2/sensor/eeprom/msm_eeprom_insensor_ov13850.c @@ -0,0 +1,62 @@ +#include "msm_sd.h" +#include "msm_eeprom.h" +#include "msm_cci.h" +#include "msm_camera_io_util.h" +#include "msm_camera_i2c_mux.h" +#include + +static uint16_t ov13850_eeprom_sensor_readreg( + struct msm_eeprom_ctrl_t *s_ctrl, uint32_t reg_addr) +{ + uint16_t reg_value = 0; + s_ctrl->i2c_client.i2c_func_tbl->i2c_read( + &(s_ctrl->i2c_client), + reg_addr, + ®_value, MSM_CAMERA_I2C_BYTE_DATA); + return reg_value ; +} + +int ov13850_eeprom_sensor_writereg( + struct msm_eeprom_ctrl_t *s_ctrl, uint32_t reg_addr, uint32_t reg_value, uint32_t delay) +{ + int rc = 0; + rc = s_ctrl->i2c_client.i2c_func_tbl->i2c_write( + &(s_ctrl->i2c_client), reg_addr, reg_value, MSM_CAMERA_I2C_BYTE_DATA); + msleep(delay); + return rc; +} + +int eeprom_init_ov13850_reg_otp(struct msm_eeprom_ctrl_t *e_ctrl) +{ + int rc = 0, temp = 0; + if (!e_ctrl) { + pr_err("%s e_ctrl is NULL\n", __func__); + return -EINVAL; + } + + e_ctrl->i2c_client.addr_type = MSM_CAMERA_I2C_WORD_ADDR; + e_ctrl->i2c_client.cci_client->sid = 0x20 >> 1; + + + rc = ov13850_eeprom_sensor_writereg(e_ctrl, 0x0100, 0x01, 1); + + + temp = ov13850_eeprom_sensor_readreg(e_ctrl, 0x5002); + rc += ov13850_eeprom_sensor_writereg(e_ctrl, 0x5002, (temp&(~0x02)), 0); + printk("%s %d E temp=0x%x\n", __func__, __LINE__, temp); + + + rc += ov13850_eeprom_sensor_writereg(e_ctrl, 0x3d88, 0x72, 0); + rc += ov13850_eeprom_sensor_writereg(e_ctrl, 0x3d89, 0x20, 0); + rc += ov13850_eeprom_sensor_writereg(e_ctrl, 0x3d8a, 0x73, 0); + rc += ov13850_eeprom_sensor_writereg(e_ctrl, 0x3d8b, 0xb9, 0); + rc += ov13850_eeprom_sensor_writereg(e_ctrl, 0x3d81, 0x01, 10); + + if (rc < 0) { + pr_err("i2c write faild\n"); + return rc; + } + + return rc; +} + diff --git a/drivers/media/platform/msm/camera_v2/sensor/eeprom/msm_eeprom_otp_interface.h b/drivers/media/platform/msm/camera_v2/sensor/eeprom/msm_eeprom_otp_interface.h new file mode 100644 index 0000000000000..4ee86280bb9aa --- /dev/null +++ b/drivers/media/platform/msm/camera_v2/sensor/eeprom/msm_eeprom_otp_interface.h @@ -0,0 +1,90 @@ +/* Copyright (c) 2011-2015, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ +#ifndef MSM_EEPROM_INSENSOR_H +#define MSM_EEPROM_INSENSOR_H + +static uint16_t eeprom_sensor_readreg( + struct msm_eeprom_ctrl_t *s_ctrl, uint32_t reg_addr) +{ + uint16_t reg_value = 0; + s_ctrl->i2c_client.i2c_func_tbl->i2c_read( + &(s_ctrl->i2c_client), + reg_addr, + ®_value, MSM_CAMERA_I2C_BYTE_DATA); + return reg_value ; +} + +static int eeprom_sensor_writereg( + struct msm_eeprom_ctrl_t *s_ctrl, uint32_t reg_addr, uint32_t reg_value, uint32_t delay) +{ + int rc = 0; + rc = s_ctrl->i2c_client.i2c_func_tbl->i2c_write( + &(s_ctrl->i2c_client), reg_addr, reg_value, MSM_CAMERA_I2C_BYTE_DATA); + msleep(delay); + return rc; +} + +static int eeprom_init_ov5675_reg_otp(struct msm_eeprom_ctrl_t *e_ctrl, uint16_t addr) +{ + int rc = 0; + if (!e_ctrl) { + pr_err("%s e_ctrl is NULL\n", __func__); + return -EINVAL; + } + + printk("%s %d E\n", __func__, __LINE__); + + e_ctrl->i2c_client.addr_type = MSM_CAMERA_I2C_WORD_ADDR; + e_ctrl->i2c_client.cci_client->sid = addr >> 1; + rc = eeprom_sensor_writereg(e_ctrl, 0x3d88, 0x7010, 1); + if (rc < 0) { + pr_err("i2c write faild\n"); + return rc; + } + rc = eeprom_sensor_writereg(e_ctrl, 0x3d8a, 0x70a4, 1); + if (rc < 0) { + pr_err("i2c write faild\n"); + return rc; + } + rc = eeprom_sensor_writereg(e_ctrl, 0x3d81, 0x01, 1); + if (rc < 0) { + pr_err("i2c write faild\n"); + return rc; + } + rc = eeprom_sensor_writereg(e_ctrl, 0x0100, 0x01, 1); + if (rc < 0) { + pr_err("i2c write faild\n"); + return rc; + } + + printk("%s : %d X\n", __func__, __LINE__); + + return 0; +} + +static uint16_t sensor_eeprom_match_crc_id(struct msm_eeprom_ctrl_t *e_ctrl, uint32_t addr) +{ + uint16_t data = 0; + e_ctrl->i2c_client.addr_type = MSM_CAMERA_I2C_WORD_ADDR; + + data = eeprom_sensor_readreg(e_ctrl, addr); + + if (0x01 != data) { + pr_err("eeprom match otp id failed! map valid data is %x !\n", data); + return -EPERM; + } + data = eeprom_sensor_readreg(e_ctrl, addr+1); + + return data; +} +#endif diff --git a/drivers/media/platform/msm/camera_v2/sensor/flash/msm_flash.c b/drivers/media/platform/msm/camera_v2/sensor/flash/msm_flash.c index 680e7d946a2b8..075f342a113a1 100644 --- a/drivers/media/platform/msm/camera_v2/sensor/flash/msm_flash.c +++ b/drivers/media/platform/msm/camera_v2/sensor/flash/msm_flash.c @@ -1,4 +1,5 @@ /* Copyright (c) 2009-2017, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -23,7 +24,7 @@ #define CDBG(fmt, args...) pr_debug(fmt, ##args) DEFINE_MSM_MUTEX(msm_flash_mutex); - +struct msm_flash_ctrl_t *flash_ctrl_wt = NULL; static struct v4l2_file_operations msm_flash_v4l2_subdev_fops; static struct led_trigger *torch_trigger; @@ -61,13 +62,16 @@ void msm_torch_brightness_set(struct led_classdev *led_cdev, pr_err("No torch trigger found, can't set brightness\n"); return; } - led_trigger_event(torch_trigger, value); + if (value == LED_OFF) { + led_trigger_event(flash_ctrl_wt->switch_trigger, 0); + } else + led_trigger_event(flash_ctrl_wt->switch_trigger, 1); }; static struct led_classdev msm_torch_led[MAX_LED_TRIGGERS] = { { - .name = "torch-light0", + .name = "flashlight", .brightness_set = msm_torch_brightness_set, .brightness = LED_OFF, }, @@ -579,7 +583,11 @@ static int32_t msm_flash_low( led_trigger_event(flash_ctrl->flash_trigger[i], 0); /* Turn on flash triggers */ + #if defined(CONFIG_D1_ROSY) for (i = 0; i < flash_ctrl->torch_num_sources; i++) { + #else + for (i = 0; i < flash_ctrl->torch_num_sources - 1; i++) { + #endif if (flash_ctrl->torch_trigger[i]) { max_current = flash_ctrl->torch_max_current[i]; if (flash_data->flash_current[i] >= 0 && @@ -602,6 +610,69 @@ static int32_t msm_flash_low( return 0; } +static int32_t msm_gpio_flash_low( + struct msm_flash_ctrl_t *flash_ctrl, + struct msm_flash_cfg_data_t *flash_data) +{ + CDBG("Enter\n"); + gpio_direction_output(93, 1); + return 0; +} + +static int32_t msm_gpio_flash_high( + struct msm_flash_ctrl_t *flash_ctrl, + struct msm_flash_cfg_data_t *flash_data) +{ + CDBG("Enter\n"); + gpio_direction_output(90, 1); + return 0; +} + +static int32_t msm_gpio_flash_off( + struct msm_flash_ctrl_t *flash_ctrl, + struct msm_flash_cfg_data_t *flash_data) +{ + CDBG("Enter\n"); + gpio_direction_output(90, 0); + gpio_direction_output(93, 0); + return 0; +} + + +int flag_led = 0; + +int32_t wt_flash_flashlight(bool boolean) +{ + uint32_t curr = 0; + int32_t i = 0; + + if (boolean) + curr = 100; + else + curr = 0; + + if (flag_led > 0 && boolean == 0) { + return 0; + } + + if (flash_ctrl_wt) { + CDBG("WT Enter\n"); + /* Turn on flash triggers */ + CDBG("WT_XJB flash_ctrl_wt->torch_num_sources = %d", flash_ctrl_wt->torch_num_sources); + for (i = 0; i < flash_ctrl_wt->torch_num_sources - 1; i++) { + CDBG("WT low_flash_current[%d] = %d\n", i, curr); + if (flash_ctrl_wt->torch_trigger[i]) { + led_trigger_event(flash_ctrl_wt->torch_trigger[i], + curr); + } + } + if (flash_ctrl_wt->switch_trigger) + led_trigger_event(flash_ctrl_wt->switch_trigger, 1); + CDBG("WT Exit\n"); + } + return 0; +} + static int32_t msm_flash_high( struct msm_flash_ctrl_t *flash_ctrl, struct msm_flash_cfg_data_t *flash_data) @@ -611,10 +682,14 @@ static int32_t msm_flash_high( int32_t i = 0; /* Turn off torch triggers */ - for (i = 0; i < flash_ctrl->torch_num_sources; i++) + #if defined(CONIFG_D1_ROSY) + for (i = 0; i < flash_ctrl->torch_num_sources; i++) { + #else + for (i = 0; i < flash_ctrl->torch_num_sources - 1; i++) { + #endif if (flash_ctrl->torch_trigger[i]) led_trigger_event(flash_ctrl->torch_trigger[i], 0); - + } /* Turn on flash triggers */ for (i = 0; i < flash_ctrl->flash_num_sources; i++) { if (flash_ctrl->flash_trigger[i]) { @@ -661,7 +736,7 @@ static int32_t msm_flash_release( static int32_t msm_flash_config(struct msm_flash_ctrl_t *flash_ctrl, void __user *argp) { - int32_t rc = 0; + int32_t rc = -EINVAL; struct msm_flash_cfg_data_t *flash_data = (struct msm_flash_cfg_data_t *) argp; @@ -669,6 +744,14 @@ static int32_t msm_flash_config(struct msm_flash_ctrl_t *flash_ctrl, CDBG("Enter %s type %d\n", __func__, flash_data->cfg_type); + if (flash_data->cfg_type == 2 && flag_led > 0) { + flag_led--; + } else if (flash_data->cfg_type == 3) { + flag_led++; + } else if (flash_data->cfg_type == 1) { + flag_led = 0; + } + switch (flash_data->cfg_type) { case CFG_FLASH_INIT: rc = msm_flash_init_prepare(flash_ctrl, flash_data); @@ -947,6 +1030,7 @@ static int32_t msm_flash_get_dt_data(struct device_node *of_node, struct msm_flash_ctrl_t *fctrl) { int32_t rc = 0; + struct device_node *switch_src_node_pmic = NULL; CDBG("called\n"); @@ -980,13 +1064,15 @@ static int32_t msm_flash_get_dt_data(struct device_node *of_node, } /* Read the flash and torch source info from device tree node */ + switch_src_node_pmic = of_parse_phandle(of_node, "qcom,switch-source", 0); + if (switch_src_node_pmic) { rc = msm_flash_get_pmic_source_info(of_node, fctrl); if (rc < 0) { pr_err("%s:%d msm_flash_get_pmic_source_info failed rc %d\n", __func__, __LINE__, rc); return rc; + } } - /* Read the gpio information from device tree */ rc = msm_sensor_driver_get_gpio_data( &(fctrl->power_info.gpio_conf), of_node); @@ -1155,7 +1241,7 @@ static int32_t msm_flash_platform_probe(struct platform_device *pdev) msm_flash_subdev_fops_ioctl; #endif flash_ctrl->msm_sd.sd.devnode->fops = &msm_flash_v4l2_subdev_fops; - + flash_ctrl_wt = flash_ctrl; if (flash_ctrl->flash_driver_type == FLASH_DRIVER_PMIC) rc = msm_torch_create_classdev(pdev, flash_ctrl); @@ -1207,9 +1293,9 @@ static struct msm_flash_table msm_gpio_flash_table = { .func_tbl = { .camera_flash_init = msm_flash_gpio_init, .camera_flash_release = msm_flash_release, - .camera_flash_off = msm_flash_off, - .camera_flash_low = msm_flash_low, - .camera_flash_high = msm_flash_high, + .camera_flash_off = msm_gpio_flash_off, + .camera_flash_low = msm_gpio_flash_low, + .camera_flash_high = msm_gpio_flash_high, }, }; diff --git a/drivers/media/platform/msm/camera_v2/sensor/msm_sensor_driver.c b/drivers/media/platform/msm/camera_v2/sensor/msm_sensor_driver.c old mode 100755 new mode 100644 index f8f28702e4c22..6cf75928d463d --- a/drivers/media/platform/msm/camera_v2/sensor/msm_sensor_driver.c +++ b/drivers/media/platform/msm/camera_v2/sensor/msm_sensor_driver.c @@ -1,4 +1,5 @@ /* Copyright (c) 2013-2017, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -17,12 +18,15 @@ #include "camera.h" #include "msm_cci.h" #include "msm_camera_dt_util.h" +#include /* Logging macro */ #undef CDBG #define CDBG(fmt, args...) pr_debug(fmt, ##args) #define SENSOR_MAX_MOUNTANGLE (360) +char fusionid_back[64] = { 0 }; +char fusionid_front[64] = { 0 }; static struct v4l2_file_operations msm_sensor_v4l2_subdev_fops; static int32_t msm_sensor_driver_platform_probe(struct platform_device *pdev); @@ -635,6 +639,224 @@ static void msm_sensor_fill_sensor_info(struct msm_sensor_ctrl_t *s_ctrl, strlcpy(entity_name, s_ctrl->msm_sd.sd.entity.name, MAX_SENSOR_NAME); } +extern int main_module_id; +extern int sub_module_id; + +#if defined(CONFIG_D1_ROSY) +static const char *module_info[] = { + "Unkonw", + "Sunny", + "Unkonw", + "Semco", + "Unkonw", + "Unkonw", + "Qtech", + "Ofilm", + "Unkonw", + "Unkonw", + "Unkonw", + "Unkonw", + "Unknow", + "Unknow", + "Unknow", + "Liteon", +}; +#else +static const char *module_info[] = { + "Unkonw", + "Sunny", + "Huaquan", + "Fushikang", + "Guangzhen", + "Daling", + "Xinli", + "O-film", + "Boyi", + "Sanglaishi", + "Qunhui", + "Q-Tech", + "Unknow", + "Unknow", + "Unknow", + "Unknow", +}; +#endif +ssize_t kobj_fusion_id_show_back(struct kobject *kobject, struct attribute *attr, char *buf); +struct attribute camera_attr_back = { + .name = "fusion_id_back", + .mode = S_IRWXUGO, +}; + +static struct attribute *def_attrs_back[] = { + &camera_attr_back, + NULL, +}; + +struct sysfs_ops obj_camera_sysops_back = { + .show = kobj_fusion_id_show_back, + .store = NULL, +}; + +struct kobj_type ktype_back = { + .release = NULL, + .sysfs_ops = &obj_camera_sysops_back, + .default_attrs = def_attrs_back, +}; + + +ssize_t kobj_fusion_id_show_back(struct kobject *kobject, struct attribute *attr, char *buf) +{ + CDBG("back_attrname:%s", attr->name); + return sprintf(buf, "%s", fusionid_back); +} + +struct kobject kobj_back; +ssize_t kobj_fusion_id_show_front(struct kobject *kobject, struct attribute *attr, char *buf); +struct attribute camera_attr_front = { + .name = "fusion_id_front", + .mode = S_IRWXUGO, +}; + +static struct attribute *def_attrs_front[] = { + &camera_attr_front, + NULL, +}; + +struct sysfs_ops obj_camera_sysops_front = { + .show = kobj_fusion_id_show_front, + .store = NULL, +}; + +struct kobj_type ktype_front = { + .release = NULL, + .sysfs_ops = &obj_camera_sysops_front, + .default_attrs = def_attrs_front, +}; + + +ssize_t kobj_fusion_id_show_front(struct kobject *kobject, struct attribute *attr, char *buf) +{ + CDBG("front_attrname:%s", attr->name); + return sprintf(buf, "%s", fusionid_front); +} + +struct kobject kobj_front; + +static uint16_t fusion_read_id_s5k3l8(struct msm_sensor_ctrl_t *s_ctrl) +{ + uint16_t value1, value3, value5; + + struct msm_camera_i2c_client *sensor_i2c_client; + sensor_i2c_client = s_ctrl->sensor_i2c_client; + + memset(fusionid_back, 0, sizeof(fusionid_back)); + sensor_i2c_client->i2c_func_tbl->i2c_write(sensor_i2c_client, 0x0100, 0x0100, 2); + mdelay(10); + sensor_i2c_client->i2c_func_tbl->i2c_write(sensor_i2c_client, 0x0a02, 0x0000, 2); + sensor_i2c_client->i2c_func_tbl->i2c_write(sensor_i2c_client, 0x0a00, 0x0100, 2); + mdelay(10); + sensor_i2c_client->i2c_func_tbl->i2c_read(sensor_i2c_client, 0x0a24, &value1, 2); + CDBG(" s5k3l8 fusion_sensor_readreg value1 =%d\n", value1); + sensor_i2c_client->i2c_func_tbl->i2c_read(sensor_i2c_client, 0x0a26, &value3, 2); + CDBG(" s5k3l8 fusion_sensor_readreg value3 =%d\n", value3); + sensor_i2c_client->i2c_func_tbl->i2c_read(sensor_i2c_client, 0x0a28, &value5, 1); + CDBG(" s5k3l8 fusion_sensor_readreg value5 =%d\n", value5); + sprintf(fusionid_back, "%d%d%d", value1, value3, value5); + CDBG(" s5k3l8 fusion_sensor_readreg fusionid=%s\n", fusionid_back); + return 0; +} + +static uint16_t fusion_read_id_ov5675(struct msm_sensor_ctrl_t *s_ctrl) +{ + uint16_t data[15] = {0}; + uint16_t *p = NULL; + uint8_t i; + struct msm_camera_i2c_client *sensor_i2c_client; + sensor_i2c_client = s_ctrl->sensor_i2c_client; + + sensor_i2c_client->i2c_func_tbl->i2c_write(sensor_i2c_client, 0x0100, 0x01, 1); + sensor_i2c_client->i2c_func_tbl->i2c_write(sensor_i2c_client, 0x5001, 0x02, 1); + sensor_i2c_client->i2c_func_tbl->i2c_write(sensor_i2c_client, 0x3d84, 0xC0, 1); + + sensor_i2c_client->i2c_func_tbl->i2c_write(sensor_i2c_client, 0x3d88, 0x70, 1); + sensor_i2c_client->i2c_func_tbl->i2c_write(sensor_i2c_client, 0x3d89, 0x00, 1); + sensor_i2c_client->i2c_func_tbl->i2c_write(sensor_i2c_client, 0x3d8a, 0x70, 1); + sensor_i2c_client->i2c_func_tbl->i2c_write(sensor_i2c_client, 0x3d8b, 0x0f, 1); + sensor_i2c_client->i2c_func_tbl->i2c_write(sensor_i2c_client, 0x3d81, 0x01, 1); + mdelay(10); + + p = data; + + memset(fusionid_front, 0, sizeof(fusionid_front)); + for (i = 0; i < 15; i++) { + sensor_i2c_client->i2c_func_tbl->i2c_read(sensor_i2c_client, 0x7000+i, p+i, 1); + CDBG("data[%d]=%x\n", i, data[i]); + sprintf(fusionid_front + strlen(fusionid_front), "%u", data[i]); + } + CDBG("fusionid_front=%s\n", fusionid_front); + return 0; +} + +static uint16_t fusion_read_id_s5k5e8(struct msm_sensor_ctrl_t *s_ctrl) +{ + uint16_t data[8] = {0}; + uint16_t *p = NULL; + uint8_t i; + struct msm_camera_i2c_client *sensor_i2c_client; + sensor_i2c_client = s_ctrl->sensor_i2c_client; + + sensor_i2c_client->i2c_func_tbl->i2c_write(sensor_i2c_client, 0x0a00, 0x04&0x00ff, 1); + sensor_i2c_client->i2c_func_tbl->i2c_write(sensor_i2c_client, 0x0a02, 0x00&0x00ff, 1); + sensor_i2c_client->i2c_func_tbl->i2c_write(sensor_i2c_client, 0x0a00, 0x01&0x00ff, 1); + mdelay(10); + p = data; + + memset(fusionid_front, 0, sizeof(fusionid_front)); + for (i = 0; i < 8; i++) { + sensor_i2c_client->i2c_func_tbl->i2c_read(sensor_i2c_client, 0x0a04+i, p+i, 1); + CDBG("data[%d]=%x\n", i, data[i]); + sprintf(fusionid_front + strlen(fusionid_front), "%u", data[i]); + } + CDBG("fusionid_front=%s\n", fusionid_front); + + return 0; +} + +static uint16_t fusion_read_id_ov13855(struct msm_sensor_ctrl_t *s_ctrl) +{ + uint16_t data[16] = {0}; + uint16_t *p = NULL; + uint16_t temp1 = 0x0; + uint8_t i; + struct msm_camera_i2c_client *sensor_i2c_client; + sensor_i2c_client = s_ctrl->sensor_i2c_client; + + sensor_i2c_client->i2c_func_tbl->i2c_write(sensor_i2c_client, 0x0100, 0x01, 1); + sensor_i2c_client->i2c_func_tbl->i2c_read(sensor_i2c_client, 0x5000, &temp1, 1); + + sensor_i2c_client->i2c_func_tbl->i2c_write(sensor_i2c_client, 0x5000, (0x00 & 0x10) | (temp1 & (~0x10)), 1); + sensor_i2c_client->i2c_func_tbl->i2c_write(sensor_i2c_client, 0x3d84, 0xC0, 1); + + sensor_i2c_client->i2c_func_tbl->i2c_write(sensor_i2c_client, 0x3d88, 0x70, 1); + sensor_i2c_client->i2c_func_tbl->i2c_write(sensor_i2c_client, 0x3d89, 0x00, 1); + sensor_i2c_client->i2c_func_tbl->i2c_write(sensor_i2c_client, 0x3d8a, 0x70, 1); + sensor_i2c_client->i2c_func_tbl->i2c_write(sensor_i2c_client, 0x3d8b, 0x0f, 1); + sensor_i2c_client->i2c_func_tbl->i2c_write(sensor_i2c_client, 0x3d81, 0x01, 1); + mdelay(10); + + p = data; + + memset(fusionid_back, 0, sizeof(fusionid_back)); + for (i = 0; i < 15; i++) { + sensor_i2c_client->i2c_func_tbl->i2c_read(sensor_i2c_client, 0x7000+i, p+i, 1); + CDBG("data[%d]=%x\n", i, data[i]); + sprintf(fusionid_back + strlen(fusionid_back), "%u", data[i]); + } + CDBG("fusionid_back=%s\n", fusionid_back); + return 0; +} + + /* static function definition */ int32_t msm_sensor_driver_probe(void *setting, struct msm_sensor_info_t *probed_info, char *entity_name) @@ -750,6 +972,119 @@ int32_t msm_sensor_driver_probe(void *setting, goto free_slave_info; } + + if (!strcmp(slave_info->sensor_name, "s5k3l8_ofilm")) { + if (main_module_id != 7) { + pr_err("failed: main_module_id %d, sensor is not %s", main_module_id, slave_info->sensor_name); + rc = -EINVAL; + goto free_slave_info; + } + } else if (!strcmp(slave_info->sensor_name, "s5k3l8_ofilm_riva")) { + if (main_module_id != 7) { + pr_err("failed: main_module_id %d, sensor is not %s", main_module_id, slave_info->sensor_name); + rc = -EINVAL; + goto free_slave_info; + } + } else if (!strcmp(slave_info->sensor_name, "s5k3l8_sunny")) { + if (main_module_id != 1) { + pr_err("failed: main_module_id %d, sensor is not %s", main_module_id, slave_info->sensor_name); + rc = -EINVAL; + goto free_slave_info; + } + } else if (!strcmp(slave_info->sensor_name, "ov13855_sunny")) { + if (main_module_id != 1) { + pr_err("failed: main_module_id %d, sensor is not %s", main_module_id, slave_info->sensor_name); + rc = -EINVAL; + goto free_slave_info; + } + } else if (!strcmp(slave_info->sensor_name, "ov13855_qtech")) { + if (main_module_id != 11) { + pr_err("failed: main_module_id %d, sensor is not %s", main_module_id, slave_info->sensor_name); + rc = -EINVAL; + goto free_slave_info; + } + } else if (!strcmp(slave_info->sensor_name, "ov13850_q13v06k")) { + if (main_module_id != 1) { + pr_err("failed: main_module_id %d, sensor is not %s", main_module_id, slave_info->sensor_name); + rc = -EINVAL; + goto free_slave_info; + } + } else if (!strcmp(slave_info->sensor_name, "s5k3l2")) { + if (main_module_id != 7) { + pr_err("failed: main_module_id %d, sensor is not %s", main_module_id, slave_info->sensor_name); + rc = -EINVAL; + goto free_slave_info; + } + } else if (!strcmp(slave_info->sensor_name, "ov5675_ofilm")) { + if (sub_module_id != 7) { + pr_err("failed: sub_module_id %d, sensor is not %s", sub_module_id, slave_info->sensor_name); + rc = -EINVAL; + goto free_slave_info; + } + } else if (!strcmp(slave_info->sensor_name, "ovt_ov5675_i")) { + if (sub_module_id != 6) { + pr_err("failed: sub_module_id %d, sensor is not %s", sub_module_id, slave_info->sensor_name); + rc = -EINVAL; + goto free_slave_info; + } + } else if (!strcmp(slave_info->sensor_name, "ovt_ov5675_ii")) { + if (sub_module_id != 7) { + pr_err("failed: sub_module_id %d, sensor is not %s", sub_module_id, slave_info->sensor_name); + rc = -EINVAL; + goto free_slave_info; + } + } else if (!strcmp(slave_info->sensor_name, "sony_imx486_ii")) { + if (main_module_id != 1) { + pr_err("failed: main_module_id %d, sensor is not %s", main_module_id, slave_info->sensor_name); + rc = -EINVAL; + goto free_slave_info; + } + } else if (!strcmp(slave_info->sensor_name, "s5k5e8_sunny")) { + if (sub_module_id != 1) { + pr_err("failed: sub_module_id %d, sensor is not %s", sub_module_id, slave_info->sensor_name); + rc = -EINVAL; + goto free_slave_info; + } + } else if (!strcmp(slave_info->sensor_name, "ov5675")) { + if (sub_module_id != 1) { + pr_err("failed: sub_module_id %d, sensor is not %s", sub_module_id, slave_info->sensor_name); + rc = -EINVAL; + goto free_slave_info; + } + } else if (!strcmp(slave_info->sensor_name, "s5k5e8_ofilm")) { + if (sub_module_id != 7) { + pr_err("failed: sub_module_id %d, sensor is not %s", sub_module_id, slave_info->sensor_name); + rc = -EINVAL; + goto free_slave_info; + } + } else if (!strcmp(slave_info->sensor_name, "s5k5e8_qtech_riva")) { + if (sub_module_id != 11) { + pr_err("failed: sub_module_id %d, sensor is not %s", sub_module_id, slave_info->sensor_name); + rc = -EINVAL; + goto free_slave_info; + } + } else if (!strcmp(slave_info->sensor_name, "s5k5e8_ofilm_riva")) { + if (sub_module_id != 7) { + pr_err("failed: sub_module_id %d, sensor is not %s", sub_module_id, slave_info->sensor_name); + rc = -EINVAL; + goto free_slave_info; + } + } else if (!strcmp(slave_info->sensor_name, "ovt_ov12a10_i")) { + if (main_module_id != 7) { + pr_err("failed: main_module_id %d, sensor is not %s", main_module_id, slave_info->sensor_name); + rc = -EINVAL; + goto free_slave_info; + } + } else { + pr_err("sensor name is %s, is nothing to do", slave_info->sensor_name); + rc = -EINVAL; + goto free_slave_info; + } + + pr_err("%s:%d camera sensor probe %s", __func__, __LINE__, slave_info->sensor_name); + + rc = kobject_init_and_add(&kobj_back, &ktype_back, NULL, "camera_fusion_id_back"); + rc = kobject_init_and_add(&kobj_front, &ktype_front, NULL, "camera_fusion_id_front"); /* Extract s_ctrl from camera id */ s_ctrl = g_sctrl[slave_info->camera_id]; if (!s_ctrl) { @@ -898,8 +1233,19 @@ int32_t msm_sensor_driver_probe(void *setting, pr_err("%s power up failed", slave_info->sensor_name); goto free_camera_info; } + if (!strcmp(slave_info->sensor_name, "ov13855_qtech")) { + fusion_read_id_ov13855(s_ctrl); + } else if (!strcmp(slave_info->sensor_name, "s5k3l8_ofilm_riva")) { + fusion_read_id_s5k3l8(s_ctrl); + } else if (!strcmp(slave_info->sensor_name, "ov5675_ofilm")) { + fusion_read_id_ov5675(s_ctrl); + } else if ((!strcmp(slave_info->sensor_name, "s5k5e8_qtech_riva")) || (!strcmp(slave_info->sensor_name, "s5k5e8_ofilm_riva"))) { + fusion_read_id_s5k5e8(s_ctrl); + } else { + printk("read fusion id fail\n"); + } - pr_err("%s probe succeeded", slave_info->sensor_name); + printk("camera sensor probe %s succeeded\n", slave_info->sensor_name); /* * Update the subdevice id of flash-src based on availability in kernel. @@ -953,6 +1299,19 @@ int32_t msm_sensor_driver_probe(void *setting, msm_sensor_fill_sensor_info(s_ctrl, probed_info, entity_name); + hardwareinfo_set_prop(probed_info->position == BACK_CAMERA_B + ? HARDWARE_BACK_CAM:HARDWARE_FRONT_CAM, probed_info->sensor_name); + if (main_module_id > 0) { + hardwareinfo_set_prop(HARDWARE_BACK_CAM_MOUDULE_ID, module_info[main_module_id]); + } else{ + hardwareinfo_set_prop(HARDWARE_BACK_CAM_MOUDULE_ID, module_info[0]); + } + if (sub_module_id > 0) { + hardwareinfo_set_prop(HARDWARE_FRONT_CAM_MOUDULE_ID, module_info[sub_module_id]); + } else{ + hardwareinfo_set_prop(HARDWARE_FRONT_CAM_MOUDULE_ID, module_info[0]); + } + /* * Set probe succeeded flag to 1 so that no other camera shall * probed on this slot diff --git a/drivers/media/radio/radio-iris-transport.c b/drivers/media/radio/radio-iris-transport.c index c6e432fdd27de..1f5efc022b467 100644 --- a/drivers/media/radio/radio-iris-transport.c +++ b/drivers/media/radio/radio-iris-transport.c @@ -9,6 +9,7 @@ * * Copyright (C) 2002-2003 Maxim Krasnyansky * Copyright (C) 2004-2006 Marcel Holtmann + * Copyright (C) 2018 XiaoMi, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 @@ -210,6 +211,9 @@ static void radio_hci_smd_deregister(void) { FMDBG(""); + /* may deregistered by hcismd_fm_set_enable already */ + if (hs.hdev == NULL) + return; radio_hci_unregister_dev(); kfree(hs.hdev); hs.hdev = NULL; diff --git a/drivers/media/radio/radio-iris.c b/drivers/media/radio/radio-iris.c index eb364e8d95ddb..f9e60653087f7 100644 --- a/drivers/media/radio/radio-iris.c +++ b/drivers/media/radio/radio-iris.c @@ -3344,6 +3344,7 @@ static int iris_vidioc_g_ctrl(struct file *file, void *priv, struct hci_fm_def_data_rd_req rd; int lsb, msb; + mutex_lock(&fm_smd_enable); if (unlikely(radio == NULL)) { FMDERR(":radio is null"); retval = -EINVAL; @@ -3681,6 +3682,7 @@ static int iris_vidioc_g_ctrl(struct file *file, void *priv, } END: + mutex_unlock(&fm_smd_enable); if (retval > 0) retval = -EINVAL; if (ctrl != NULL && retval < 0) @@ -3697,6 +3699,7 @@ static int iris_vidioc_g_ext_ctrls(struct file *file, void *priv, struct iris_device *radio = video_get_drvdata(video_devdata(file)); struct hci_fm_def_data_rd_req default_data_rd; + mutex_lock(&fm_smd_enable); if (unlikely(radio == NULL)) { FMDERR(":radio is null"); retval = -EINVAL; @@ -3728,6 +3731,7 @@ static int iris_vidioc_g_ext_ctrls(struct file *file, void *priv, } END: + mutex_unlock(&fm_smd_enable); if (retval > 0) retval = -EINVAL; @@ -3750,6 +3754,7 @@ static int iris_vidioc_s_ext_ctrls(struct file *file, void *priv, struct iris_device *radio = video_get_drvdata(video_devdata(file)); char *data = NULL; + mutex_lock(&fm_smd_enable); if (unlikely(radio == NULL)) { FMDERR(":radio is null"); retval = -EINVAL; @@ -3961,6 +3966,7 @@ static int iris_vidioc_s_ext_ctrls(struct file *file, void *priv, } END: + mutex_unlock(&fm_smd_enable); if (retval > 0) retval = -EINVAL; @@ -3984,6 +3990,7 @@ static int iris_vidioc_s_ctrl(struct file *file, void *priv, __u8 intf_det_low_th, intf_det_high_th, intf_det_out; unsigned int spur_freq; + mutex_lock(&fm_smd_enable); if (unlikely(radio == NULL)) { FMDERR(":radio is null"); retval = -EINVAL; @@ -4984,6 +4991,7 @@ static int iris_vidioc_s_ctrl(struct file *file, void *priv, } END: + mutex_unlock(&fm_smd_enable); if (retval > 0) retval = -EINVAL; @@ -5087,11 +5095,12 @@ static int iris_vidioc_g_tuner(struct file *file, void *priv, FMDERR("Invalid Tuner Index"); return -EINVAL; } + mutex_lock(&fm_smd_enable); if (radio->mode == FM_RECV) { retval = hci_cmd(HCI_FM_GET_STATION_PARAM_CMD, radio->fm_hdev); if (retval < 0) { FMDERR("Failed to Get station params"); - return retval; + goto END; } tuner->type = V4L2_TUNER_RADIO; tuner->rangelow = @@ -5107,16 +5116,20 @@ static int iris_vidioc_g_tuner(struct file *file, void *priv, retval = hci_cmd(HCI_FM_GET_TX_CONFIG, radio->fm_hdev); if (retval < 0) { FMDERR("get Tx config failed %d\n", retval); - return retval; + goto END; } tuner->type = V4L2_TUNER_RADIO; tuner->rangelow = radio->trans_conf.band_low_limit * TUNE_PARAM; tuner->rangehigh = radio->trans_conf.band_high_limit * TUNE_PARAM; - } else - return -EINVAL; - return 0; + } else { + retval = -EINVAL; + goto END; + } +END: + mutex_unlock(&fm_smd_enable); + return retval; } static int iris_vidioc_s_tuner(struct file *file, void *priv, @@ -5138,6 +5151,7 @@ static int iris_vidioc_s_tuner(struct file *file, void *priv, if (tuner->index > 0) return -EINVAL; + mutex_lock(&fm_smd_enable); if (radio->mode == FM_RECV) { radio->recv_conf.band_low_limit = tuner->rangelow / TUNE_PARAM; radio->recv_conf.band_high_limit = @@ -5153,17 +5167,22 @@ static int iris_vidioc_s_tuner(struct file *file, void *priv, &radio->stereo_mode, radio->fm_hdev); } - if (retval < 0) + if (retval < 0) { FMDERR(": set tuner failed with %d\n", retval); - return retval; + goto END; + } } else if (radio->mode == FM_TRANS) { radio->trans_conf.band_low_limit = tuner->rangelow / TUNE_PARAM; radio->trans_conf.band_high_limit = tuner->rangehigh / TUNE_PARAM; - } else - return -EINVAL; + } else { + retval = -EINVAL; + goto END; + } +END: + mutex_unlock(&fm_smd_enable); return retval; } @@ -5200,6 +5219,7 @@ static int iris_vidioc_s_frequency(struct file *file, void *priv, if (freq->type != V4L2_TUNER_RADIO) return -EINVAL; + mutex_lock(&fm_smd_enable); /* We turn off RDS prior to tuning to a new station. because of a bug in SoC which prevents tuning during RDS transmission. @@ -5224,6 +5244,7 @@ static int iris_vidioc_s_frequency(struct file *file, void *priv, radio->fm_hdev); } + mutex_unlock(&fm_smd_enable); if (retval < 0) FMDERR(" set frequency failed with %d\n", retval); return retval; @@ -5240,6 +5261,7 @@ static int iris_fops_release(struct file *file) FMDBG("state %d", radio->mode); mutex_lock(&radio->lock); + mutex_lock(&fm_smd_enable); if (radio->mode == FM_OFF) goto END; @@ -5260,12 +5282,12 @@ static int iris_fops_release(struct file *file) radio->is_fm_closing = false; } else if (radio->mode == FM_CALIB) { radio->mode = FM_OFF; + mutex_unlock(&fm_smd_enable); mutex_unlock(&radio->lock); return retval; } END: FMDBG("mode %d", radio->mode); - mutex_lock(&fm_smd_enable); if (radio->fm_hdev != NULL) radio->fm_hdev->close_smd(); mutex_unlock(&fm_smd_enable); diff --git a/drivers/media/v4l2-core/v4l2-compat-ioctl32.c b/drivers/media/v4l2-core/v4l2-compat-ioctl32.c index cade82fbebcf2..4b611fe0f9ecb 100644 --- a/drivers/media/v4l2-core/v4l2-compat-ioctl32.c +++ b/drivers/media/v4l2-core/v4l2-compat-ioctl32.c @@ -20,6 +20,13 @@ #include #include +#define convert_in_user(srcptr, dstptr) \ +({ \ + typeof(*srcptr) val; \ + \ + get_user(val, srcptr) || put_user(val, dstptr); \ +}) + static long native_ioctl(struct file *file, unsigned int cmd, unsigned long arg) { long ret = -ENOIOCTLCMD; @@ -45,27 +52,45 @@ struct v4l2_window32 { compat_caddr_t bitmap; }; -static int get_v4l2_window32(struct v4l2_window *kp, struct v4l2_window32 __user *up) +static int bufsize_v4l2_window32(struct v4l2_window32 __user *up) { + __u32 clipcount; + + if (get_user(clipcount, &up->clipcount)) + return -EFAULT; + if (clipcount > 2048) + return -EINVAL; + return clipcount * sizeof(struct v4l2_clip); +} + +static int get_v4l2_window32(struct v4l2_window __user *kp, struct + v4l2_window32 __user *up, void __user *aux_buf, int aux_space) +{ + __u32 clipcount; + if (!access_ok(VERIFY_READ, up, sizeof(struct v4l2_window32)) || - copy_from_user(&kp->w, &up->w, sizeof(up->w)) || - get_user(kp->field, &up->field) || - get_user(kp->chromakey, &up->chromakey) || - get_user(kp->clipcount, &up->clipcount)) + copy_in_user(&kp->w, &up->w, sizeof(up->w)) || + convert_in_user(&up->field, &kp->field) || + convert_in_user(&up->chromakey, &kp->chromakey) || + get_user(clipcount, &up->clipcount) || + put_user(clipcount, &kp->clipcount)) return -EFAULT; - if (kp->clipcount > 2048) + if (clipcount > 2048) return -EINVAL; - if (kp->clipcount) { + if (clipcount) { struct v4l2_clip32 __user *uclips; struct v4l2_clip __user *kclips; - int n = kp->clipcount; + int n = clipcount; compat_caddr_t p; if (get_user(p, &up->clips)) return -EFAULT; uclips = compat_ptr(p); - kclips = compat_alloc_user_space(n * sizeof(struct v4l2_clip)); - kp->clips = kclips; + if (aux_space < n * sizeof(struct v4l2_clip)) + return -EFAULT; + kclips = aux_buf; + if (put_user(kclips, &kp->clips)) + return -EFAULT; while (--n >= 0) { if (copy_in_user(&kclips->c, &uclips->c, sizeof(uclips->c))) return -EFAULT; @@ -74,75 +99,77 @@ static int get_v4l2_window32(struct v4l2_window *kp, struct v4l2_window32 __user uclips += 1; kclips += 1; } - } else - kp->clips = NULL; + } else { + if (put_user(NULL, &kp->clips)) + return -EFAULT; + } return 0; } -static int put_v4l2_window32(struct v4l2_window *kp, struct v4l2_window32 __user *up) +static int put_v4l2_window32(struct v4l2_window __user *kp, struct v4l2_window32 __user *up) { - if (copy_to_user(&up->w, &kp->w, sizeof(kp->w)) || - put_user(kp->field, &up->field) || - put_user(kp->chromakey, &up->chromakey) || - put_user(kp->clipcount, &up->clipcount)) - return -EFAULT; + if (copy_in_user(&up->w, &kp->w, sizeof(kp->w)) || + convert_in_user(&kp->field, &up->field) || + convert_in_user(&kp->chromakey, &up->chromakey) || + convert_in_user(&kp->clipcount, &up->clipcount)) + return -EFAULT; return 0; } -static inline int get_v4l2_pix_format(struct v4l2_pix_format *kp, struct v4l2_pix_format __user *up) +static inline int get_v4l2_pix_format(struct v4l2_pix_format __user *kp, struct v4l2_pix_format __user *up) { - if (copy_from_user(kp, up, sizeof(struct v4l2_pix_format))) + if (copy_in_user(kp, up, sizeof(struct v4l2_pix_format))) return -EFAULT; return 0; } -static inline int get_v4l2_pix_format_mplane(struct v4l2_pix_format_mplane *kp, +static inline int get_v4l2_pix_format_mplane(struct v4l2_pix_format_mplane __user *kp, struct v4l2_pix_format_mplane __user *up) { - if (copy_from_user(kp, up, sizeof(struct v4l2_pix_format_mplane))) + if (copy_in_user(kp, up, sizeof(struct v4l2_pix_format_mplane))) return -EFAULT; return 0; } -static inline int put_v4l2_pix_format(struct v4l2_pix_format *kp, struct v4l2_pix_format __user *up) +static inline int put_v4l2_pix_format(struct v4l2_pix_format __user *kp, struct v4l2_pix_format __user *up) { - if (copy_to_user(up, kp, sizeof(struct v4l2_pix_format))) + if (copy_in_user(up, kp, sizeof(struct v4l2_pix_format))) return -EFAULT; return 0; } -static inline int put_v4l2_pix_format_mplane(struct v4l2_pix_format_mplane *kp, +static inline int put_v4l2_pix_format_mplane(struct v4l2_pix_format_mplane __user *kp, struct v4l2_pix_format_mplane __user *up) { - if (copy_to_user(up, kp, sizeof(struct v4l2_pix_format_mplane))) + if (copy_in_user(up, kp, sizeof(struct v4l2_pix_format_mplane))) return -EFAULT; return 0; } -static inline int get_v4l2_vbi_format(struct v4l2_vbi_format *kp, struct v4l2_vbi_format __user *up) +static inline int get_v4l2_vbi_format(struct v4l2_vbi_format __user *kp, struct v4l2_vbi_format __user *up) { - if (copy_from_user(kp, up, sizeof(struct v4l2_vbi_format))) + if (copy_in_user(kp, up, sizeof(struct v4l2_vbi_format))) return -EFAULT; return 0; } -static inline int put_v4l2_vbi_format(struct v4l2_vbi_format *kp, struct v4l2_vbi_format __user *up) +static inline int put_v4l2_vbi_format(struct v4l2_vbi_format __user *kp, struct v4l2_vbi_format __user *up) { - if (copy_to_user(up, kp, sizeof(struct v4l2_vbi_format))) + if (copy_in_user(up, kp, sizeof(struct v4l2_vbi_format))) return -EFAULT; return 0; } -static inline int get_v4l2_sliced_vbi_format(struct v4l2_sliced_vbi_format *kp, struct v4l2_sliced_vbi_format __user *up) +static inline int get_v4l2_sliced_vbi_format(struct v4l2_sliced_vbi_format __user *kp, struct v4l2_sliced_vbi_format __user *up) { - if (copy_from_user(kp, up, sizeof(struct v4l2_sliced_vbi_format))) + if (copy_in_user(kp, up, sizeof(struct v4l2_sliced_vbi_format))) return -EFAULT; return 0; } -static inline int put_v4l2_sliced_vbi_format(struct v4l2_sliced_vbi_format *kp, struct v4l2_sliced_vbi_format __user *up) +static inline int put_v4l2_sliced_vbi_format(struct v4l2_sliced_vbi_format __user *kp, struct v4l2_sliced_vbi_format __user *up) { - if (copy_to_user(up, kp, sizeof(struct v4l2_sliced_vbi_format))) + if (copy_in_user(up, kp, sizeof(struct v4l2_sliced_vbi_format))) return -EFAULT; return 0; } @@ -176,12 +203,31 @@ struct v4l2_create_buffers32 { __u32 reserved[8]; }; -static int __get_v4l2_format32(struct v4l2_format *kp, struct v4l2_format32 __user *up) +static int __bufsize_v4l2_format32(struct v4l2_format32 __user *up) { - if (get_user(kp->type, &up->type)) + __u32 type; + + if (get_user(type, &up->type)) return -EFAULT; - switch (kp->type) { + switch (type) { + case V4L2_BUF_TYPE_VIDEO_OVERLAY: + case V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY: + return bufsize_v4l2_window32(&up->fmt.win); + default: + return 0; + } +} + +static int __get_v4l2_format32(struct v4l2_format __user *kp, struct + v4l2_format32 __user *up, void __user *aux_buf, int aux_space) +{ + __u32 type; + + if (get_user(type, &up->type) || put_user(type, &kp->type)) + return -EFAULT; + + switch (type) { case V4L2_BUF_TYPE_VIDEO_CAPTURE: case V4L2_BUF_TYPE_VIDEO_OUTPUT: return get_v4l2_pix_format(&kp->fmt.pix, &up->fmt.pix); @@ -191,7 +237,7 @@ static int __get_v4l2_format32(struct v4l2_format *kp, struct v4l2_format32 __us &up->fmt.pix_mp); case V4L2_BUF_TYPE_VIDEO_OVERLAY: case V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY: - return get_v4l2_window32(&kp->fmt.win, &up->fmt.win); + return get_v4l2_window32(&kp->fmt.win, &up->fmt.win, aux_buf, aux_space); case V4L2_BUF_TYPE_VBI_CAPTURE: case V4L2_BUF_TYPE_VBI_OUTPUT: return get_v4l2_vbi_format(&kp->fmt.vbi, &up->fmt.vbi); @@ -205,24 +251,46 @@ static int __get_v4l2_format32(struct v4l2_format *kp, struct v4l2_format32 __us } } -static int get_v4l2_format32(struct v4l2_format *kp, struct v4l2_format32 __user *up) +static int bufsize_v4l2_format32(struct v4l2_format32 __user *up) { if (!access_ok(VERIFY_READ, up, sizeof(struct v4l2_format32))) return -EFAULT; - return __get_v4l2_format32(kp, up); + return __bufsize_v4l2_format32(up); } -static int get_v4l2_create32(struct v4l2_create_buffers *kp, struct v4l2_create_buffers32 __user *up) +static int get_v4l2_format32(struct v4l2_format __user *kp, struct + v4l2_format32 __user *up, void __user *aux_buf, int aux_space) +{ + if (!access_ok(VERIFY_READ, up, sizeof(struct v4l2_format32))) + return -EFAULT; + return __get_v4l2_format32(kp, up, aux_buf, aux_space); +} + +static int bufsize_v4l2_create32(struct v4l2_create_buffers32 __user *up) +{ + if (!access_ok(VERIFY_READ, up, sizeof(struct v4l2_create_buffers32))) + return -EFAULT; + return __bufsize_v4l2_format32(&up->format); +} + +static int get_v4l2_create32(struct v4l2_create_buffers __user *kp, struct + v4l2_create_buffers32 __user *up, void __user *aux_buf, + int aux_space) { if (!access_ok(VERIFY_READ, up, sizeof(struct v4l2_create_buffers32)) || - copy_from_user(kp, up, offsetof(struct v4l2_create_buffers32, format))) + copy_in_user(kp, up, offsetof(struct v4l2_create_buffers32, format))) return -EFAULT; - return __get_v4l2_format32(&kp->format, &up->format); + return __get_v4l2_format32(&kp->format, &up->format, aux_buf, aux_space); } -static int __put_v4l2_format32(struct v4l2_format *kp, struct v4l2_format32 __user *up) +static int __put_v4l2_format32(struct v4l2_format __user *kp, struct v4l2_format32 __user *up) { - switch (kp->type) { + __u32 type; + + if (get_user(type, &kp->type)) + return -EFAULT; + + switch (type) { case V4L2_BUF_TYPE_VIDEO_CAPTURE: case V4L2_BUF_TYPE_VIDEO_OUTPUT: return put_v4l2_pix_format(&kp->fmt.pix, &up->fmt.pix); @@ -246,7 +314,7 @@ static int __put_v4l2_format32(struct v4l2_format *kp, struct v4l2_format32 __us } } -static int put_v4l2_format32(struct v4l2_format *kp, struct v4l2_format32 __user *up) +static int put_v4l2_format32(struct v4l2_format __user *kp, struct v4l2_format32 __user *up) { if (!access_ok(VERIFY_WRITE, up, sizeof(struct v4l2_format32)) || put_user(kp->type, &up->type)) @@ -254,10 +322,10 @@ static int put_v4l2_format32(struct v4l2_format *kp, struct v4l2_format32 __user return __put_v4l2_format32(kp, up); } -static int put_v4l2_create32(struct v4l2_create_buffers *kp, struct v4l2_create_buffers32 __user *up) +static int put_v4l2_create32(struct v4l2_create_buffers __user *kp, struct v4l2_create_buffers32 __user *up) { if (!access_ok(VERIFY_WRITE, up, sizeof(struct v4l2_create_buffers32)) || - copy_to_user(up, kp, offsetof(struct v4l2_create_buffers32, format.fmt))) + copy_in_user(up, kp, offsetof(struct v4l2_create_buffers32, format.fmt))) return -EFAULT; return __put_v4l2_format32(&kp->format, &up->format); } @@ -271,24 +339,24 @@ struct v4l2_standard32 { __u32 reserved[4]; }; -static int get_v4l2_standard32(struct v4l2_standard *kp, struct v4l2_standard32 __user *up) +static int get_v4l2_standard32(struct v4l2_standard __user *kp, struct v4l2_standard32 __user *up) { /* other fields are not set by the user, nor used by the driver */ if (!access_ok(VERIFY_READ, up, sizeof(struct v4l2_standard32)) || - get_user(kp->index, &up->index)) + convert_in_user(&up->index, &kp->index)) return -EFAULT; return 0; } -static int put_v4l2_standard32(struct v4l2_standard *kp, struct v4l2_standard32 __user *up) +static int put_v4l2_standard32(struct v4l2_standard __user *kp, struct v4l2_standard32 __user *up) { if (!access_ok(VERIFY_WRITE, up, sizeof(struct v4l2_standard32)) || - put_user(kp->index, &up->index) || - copy_to_user(up->id, &kp->id, sizeof(__u64)) || - copy_to_user(up->name, kp->name, 24) || - copy_to_user(&up->frameperiod, &kp->frameperiod, sizeof(kp->frameperiod)) || - put_user(kp->framelines, &up->framelines) || - copy_to_user(up->reserved, kp->reserved, 4 * sizeof(__u32))) + convert_in_user(&kp->index, &up->index) || + copy_in_user(up->id, &kp->id, sizeof(__u64)) || + copy_in_user(up->name, kp->name, 24) || + copy_in_user(&up->frameperiod, &kp->frameperiod, sizeof(kp->frameperiod)) || + convert_in_user(&kp->framelines, &up->framelines) || + copy_in_user(up->reserved, kp->reserved, 4 * sizeof(__u32))) return -EFAULT; return 0; } @@ -331,7 +399,6 @@ struct v4l2_buffer32 { static int get_v4l2_plane32(struct v4l2_plane __user *up, struct v4l2_plane32 __user *up32, enum v4l2_memory memory) { - void __user *up_pln; compat_long_t p; if (copy_in_user(up, up32, 2 * sizeof(__u32)) || @@ -344,10 +411,9 @@ static int get_v4l2_plane32(struct v4l2_plane __user *up, struct v4l2_plane32 __ return -EFAULT; if (memory == V4L2_MEMORY_USERPTR) { - if (get_user(p, &up32->m.userptr)) - return -EFAULT; - up_pln = compat_ptr(p); - if (put_user((unsigned long)up_pln, &up->m.userptr)) + if (get_user(p, &up32->m.userptr) || + put_user((unsigned long) compat_ptr(p), + &up->m.userptr)) return -EFAULT; } else if (memory == V4L2_MEMORY_DMABUF) { if (copy_in_user(&up->m.fd, &up32->m.fd, sizeof(int))) @@ -390,8 +456,34 @@ static int put_v4l2_plane32(struct v4l2_plane __user *up, struct v4l2_plane32 __ return 0; } -static int get_v4l2_buffer32(struct v4l2_buffer *kp, struct v4l2_buffer32 __user *up) +static int bufsize_v4l2_buffer32(struct v4l2_buffer32 __user *up) { + __u32 type; + __u32 length; + + if (!access_ok(VERIFY_READ, up, sizeof(struct v4l2_buffer32)) || + get_user(type, &up->type) || + get_user(length, &up->length)) + return -EFAULT; + + if (V4L2_TYPE_IS_MULTIPLANAR(type)) { + if (length > VIDEO_MAX_PLANES) + return -EINVAL; + + /* We don't really care if userspace decides to kill itself + * by passing a very big length value + */ + return length * sizeof(struct v4l2_plane); + } + return 0; +} + +static int get_v4l2_buffer32(struct v4l2_buffer __user *kp, struct + v4l2_buffer32 __user *up, void __user *aux_buf, int aux_space) +{ + __u32 type; + __u32 length; + enum v4l2_memory memory; struct v4l2_plane32 __user *uplane32; struct v4l2_plane __user *uplane; compat_caddr_t p; @@ -399,28 +491,40 @@ static int get_v4l2_buffer32(struct v4l2_buffer *kp, struct v4l2_buffer32 __user int ret; if (!access_ok(VERIFY_READ, up, sizeof(struct v4l2_buffer32)) || - get_user(kp->index, &up->index) || - get_user(kp->type, &up->type) || - get_user(kp->flags, &up->flags) || - get_user(kp->memory, &up->memory) || - get_user(kp->length, &up->length)) + convert_in_user(&up->index, &kp->index) || + get_user(type, &up->type) || + put_user(type, &kp->type) || + convert_in_user(&up->flags, &kp->flags) || + get_user(memory, &up->memory) || + put_user(memory, &kp->memory) || + convert_in_user(&up->length, &kp->length) || + get_user(length, &up->length) || + put_user(length, &kp->length)) return -EFAULT; - if (V4L2_TYPE_IS_OUTPUT(kp->type)) - if (get_user(kp->bytesused, &up->bytesused) || - get_user(kp->field, &up->field) || - get_user(kp->timestamp.tv_sec, &up->timestamp.tv_sec) || - get_user(kp->timestamp.tv_usec, - &up->timestamp.tv_usec)) + if (V4L2_TYPE_IS_OUTPUT(type)) + if (convert_in_user(&up->bytesused, &kp->bytesused) || + convert_in_user(&up->field, &kp->field) || + convert_in_user(&up->timestamp.tv_sec, &kp->timestamp.tv_sec) || + convert_in_user(&up->timestamp.tv_usec, + &kp->timestamp.tv_usec)) return -EFAULT; - if (V4L2_TYPE_IS_MULTIPLANAR(kp->type)) { - num_planes = kp->length; + if (type == V4L2_BUF_TYPE_PRIVATE) { + compat_long_t tmp; + + if (get_user(tmp, &up->m.userptr) || + put_user((unsigned long) compat_ptr(tmp), + &kp->m.userptr)) + return -EFAULT; + } + + if (V4L2_TYPE_IS_MULTIPLANAR(type)) { + num_planes = length; if (num_planes == 0) { - kp->m.planes = NULL; /* num_planes == 0 is legal, e.g. when userspace doesn't * need planes array on DQBUF*/ - return 0; + return put_user(NULL, &kp->m.planes); } if (get_user(p, &up->m.planes)) @@ -433,39 +537,44 @@ static int get_v4l2_buffer32(struct v4l2_buffer *kp, struct v4l2_buffer32 __user /* We don't really care if userspace decides to kill itself * by passing a very big num_planes value */ - uplane = compat_alloc_user_space(num_planes * - sizeof(struct v4l2_plane)); - kp->m.planes = (__force struct v4l2_plane *)uplane; + if (aux_space < num_planes * sizeof(struct v4l2_plane)) + return -EFAULT; + + uplane = aux_buf; + if (put_user((__force struct v4l2_plane *)uplane, + &kp->m.planes)) + return -EFAULT; while (--num_planes >= 0) { - ret = get_v4l2_plane32(uplane, uplane32, kp->memory); + ret = get_v4l2_plane32(uplane, uplane32, memory); if (ret) return ret; ++uplane; ++uplane32; } } else { - switch (kp->memory) { + switch (memory) { case V4L2_MEMORY_MMAP: - if (get_user(kp->m.offset, &up->m.offset)) + if (convert_in_user(&up->m.offset, &kp->m.offset)) return -EFAULT; break; case V4L2_MEMORY_USERPTR: { - compat_long_t tmp; + compat_long_t tmp; - if (get_user(tmp, &up->m.userptr)) - return -EFAULT; - - kp->m.userptr = (unsigned long)compat_ptr(tmp); + if (get_user(tmp, &up->m.userptr) || + put_user((unsigned long) + compat_ptr(tmp), + &kp->m.userptr)) + return -EFAULT; } break; case V4L2_MEMORY_OVERLAY: - if (get_user(kp->m.offset, &up->m.offset)) + if (convert_in_user(&up->m.offset, &kp->m.offset)) return -EFAULT; break; case V4L2_MEMORY_DMABUF: - if (get_user(kp->m.fd, &up->m.fd)) + if (convert_in_user(&up->m.fd, &kp->m.fd)) return -EFAULT; break; } @@ -474,8 +583,11 @@ static int get_v4l2_buffer32(struct v4l2_buffer *kp, struct v4l2_buffer32 __user return 0; } -static int put_v4l2_buffer32(struct v4l2_buffer *kp, struct v4l2_buffer32 __user *up) +static int put_v4l2_buffer32(struct v4l2_buffer __user *kp, struct v4l2_buffer32 __user *up) { + __u32 type; + __u32 length; + enum v4l2_memory memory; struct v4l2_plane32 __user *uplane32; struct v4l2_plane __user *uplane; compat_caddr_t p; @@ -483,56 +595,63 @@ static int put_v4l2_buffer32(struct v4l2_buffer *kp, struct v4l2_buffer32 __user int ret; if (!access_ok(VERIFY_WRITE, up, sizeof(struct v4l2_buffer32)) || - put_user(kp->index, &up->index) || - put_user(kp->type, &up->type) || - put_user(kp->flags, &up->flags) || - put_user(kp->memory, &up->memory)) + convert_in_user(&kp->index, &up->index) || + get_user(type, &kp->type) || + put_user(type, &up->type) || + convert_in_user(&kp->flags, &up->flags) || + get_user(memory, &kp->memory) || + put_user(memory, &up->memory)) return -EFAULT; - if (put_user(kp->bytesused, &up->bytesused) || - put_user(kp->field, &up->field) || - put_user(kp->timestamp.tv_sec, &up->timestamp.tv_sec) || - put_user(kp->timestamp.tv_usec, &up->timestamp.tv_usec) || - copy_to_user(&up->timecode, &kp->timecode, sizeof(struct v4l2_timecode)) || - put_user(kp->sequence, &up->sequence) || - put_user(kp->reserved2, &up->reserved2) || - put_user(kp->reserved, &up->reserved) || - put_user(kp->length, &up->length)) + if (convert_in_user(&kp->bytesused, &up->bytesused) || + convert_in_user(&kp->field, &up->field) || + convert_in_user(&kp->timestamp.tv_sec, &up->timestamp.tv_sec) || + convert_in_user(&kp->timestamp.tv_usec, &up->timestamp.tv_usec) || + copy_in_user(&up->timecode, &kp->timecode, sizeof(struct v4l2_timecode)) || + convert_in_user(&kp->sequence, &up->sequence) || + convert_in_user(&kp->reserved2, &up->reserved2) || + convert_in_user(&kp->reserved, &up->reserved) || + get_user(length, &kp->length) || + put_user(length, &up->length)) + return -EFAULT; + if(type == V4L2_BUF_TYPE_PRIVATE) + if (convert_in_user(&kp->m.userptr, &up->m.userptr)) return -EFAULT; - if (V4L2_TYPE_IS_MULTIPLANAR(kp->type)) { - num_planes = kp->length; + if (V4L2_TYPE_IS_MULTIPLANAR(type)) { + num_planes = length; if (num_planes == 0) return 0; - uplane = (__force struct v4l2_plane __user *)kp->m.planes; + if (get_user(uplane, ((__force struct v4l2_plane __user **)&kp->m.planes))) + return -EFAULT; if (get_user(p, &up->m.planes)) return -EFAULT; uplane32 = compat_ptr(p); while (--num_planes >= 0) { - ret = put_v4l2_plane32(uplane, uplane32, kp->memory); + ret = put_v4l2_plane32(uplane, uplane32, memory); if (ret) return ret; ++uplane; ++uplane32; } } else { - switch (kp->memory) { + switch (memory) { case V4L2_MEMORY_MMAP: - if (put_user(kp->m.offset, &up->m.offset)) + if (convert_in_user(&kp->m.offset, &up->m.offset)) return -EFAULT; break; case V4L2_MEMORY_USERPTR: - if (put_user(kp->m.userptr, &up->m.userptr)) + if (convert_in_user(&kp->m.userptr, &up->m.userptr)) return -EFAULT; break; case V4L2_MEMORY_OVERLAY: - if (put_user(kp->m.offset, &up->m.offset)) + if (convert_in_user(&kp->m.offset, &up->m.offset)) return -EFAULT; break; case V4L2_MEMORY_DMABUF: - if (put_user(kp->m.fd, &up->m.fd)) + if (convert_in_user(&kp->m.fd, &up->m.fd)) return -EFAULT; break; } @@ -542,44 +661,45 @@ static int put_v4l2_buffer32(struct v4l2_buffer *kp, struct v4l2_buffer32 __user } struct v4l2_framebuffer32 { - __u32 capability; - __u32 flags; - compat_caddr_t base; + __u32 capability; + __u32 flags; + compat_caddr_t base; struct { - __u32 width; - __u32 height; - __u32 pixelformat; - __u32 field; - __u32 bytesperline; - __u32 sizeimage; - __u32 colorspace; - __u32 priv; + __u32 width; + __u32 height; + __u32 pixelformat; + __u32 field; + __u32 bytesperline; + __u32 sizeimage; + __u32 colorspace; + __u32 priv; } fmt; }; -static int get_v4l2_framebuffer32(struct v4l2_framebuffer *kp, struct v4l2_framebuffer32 __user *up) +static int get_v4l2_framebuffer32(struct v4l2_framebuffer __user *kp, struct v4l2_framebuffer32 __user *up) { - u32 tmp; + compat_caddr_t tmp; if (!access_ok(VERIFY_READ, up, sizeof(struct v4l2_framebuffer32)) || get_user(tmp, &up->base) || - get_user(kp->capability, &up->capability) || - get_user(kp->flags, &up->flags) || - copy_from_user(&kp->fmt, &up->fmt, sizeof(up->fmt))) + put_user((__force void *)compat_ptr(tmp), &kp->base) || + convert_in_user(&up->capability, &kp->capability) || + convert_in_user(&up->flags, &kp->flags) || + get_v4l2_pix_format((struct v4l2_pix_format *)&kp->fmt, (struct v4l2_pix_format *)&up->fmt)) return -EFAULT; - kp->base = (__force void *)compat_ptr(tmp); return 0; } -static int put_v4l2_framebuffer32(struct v4l2_framebuffer *kp, struct v4l2_framebuffer32 __user *up) +static int put_v4l2_framebuffer32(struct v4l2_framebuffer __user *kp, struct v4l2_framebuffer32 __user *up) { - u32 tmp = (u32)((unsigned long)kp->base); + void *base; if (!access_ok(VERIFY_WRITE, up, sizeof(struct v4l2_framebuffer32)) || - put_user(tmp, &up->base) || - put_user(kp->capability, &up->capability) || - put_user(kp->flags, &up->flags) || - copy_to_user(&up->fmt, &kp->fmt, sizeof(up->fmt))) + get_user(base, &kp->base) || + put_user(ptr_to_compat(base), &up->base) || + convert_in_user(&kp->capability, &up->capability) || + convert_in_user(&kp->flags, &up->flags) || + put_v4l2_pix_format((struct v4l2_pix_format *)&kp->fmt, (struct v4l2_pix_format *)&up->fmt)) return -EFAULT; return 0; } @@ -597,16 +717,16 @@ struct v4l2_input32 { /* The 64-bit v4l2_input struct has extra padding at the end of the struct. Otherwise it is identical to the 32-bit version. */ -static inline int get_v4l2_input32(struct v4l2_input *kp, struct v4l2_input32 __user *up) +static inline int get_v4l2_input32(struct v4l2_input __user *kp, struct v4l2_input32 __user *up) { - if (copy_from_user(kp, up, sizeof(struct v4l2_input32))) + if (copy_in_user(kp, up, sizeof(struct v4l2_input32))) return -EFAULT; return 0; } -static inline int put_v4l2_input32(struct v4l2_input *kp, struct v4l2_input32 __user *up) +static inline int put_v4l2_input32(struct v4l2_input __user *kp, struct v4l2_input32 __user *up) { - if (copy_to_user(up, kp, sizeof(struct v4l2_input32))) + if (copy_in_user(up, kp, sizeof(struct v4l2_input32))) return -EFAULT; return 0; } @@ -647,35 +767,51 @@ static inline int ctrl_is_pointer(u32 id) } } -static int get_v4l2_ext_controls32(struct v4l2_ext_controls *kp, struct v4l2_ext_controls32 __user *up) +static int bufsize_v4l2_ext_controls32(struct v4l2_ext_controls32 __user *up) +{ + __u32 count; + + if (!access_ok(VERIFY_READ, up, sizeof(struct v4l2_ext_controls32)) || + get_user(count, &up->count)) + return -EFAULT; + if (count > V4L2_CID_MAX_CTRLS) + return -EINVAL; + return count * sizeof(struct v4l2_ext_control); +} + +static int get_v4l2_ext_controls32(struct v4l2_ext_controls __user *kp, struct + v4l2_ext_controls32 __user *up, void __user *aux_buf, + int aux_space) { struct v4l2_ext_control32 __user *ucontrols; struct v4l2_ext_control __user *kcontrols; - int n; + __u32 count; + unsigned int n; compat_caddr_t p; if (!access_ok(VERIFY_READ, up, sizeof(struct v4l2_ext_controls32)) || - get_user(kp->ctrl_class, &up->ctrl_class) || - get_user(kp->count, &up->count) || - get_user(kp->error_idx, &up->error_idx) || - copy_from_user(kp->reserved, up->reserved, sizeof(kp->reserved))) + convert_in_user(&up->ctrl_class, &kp->ctrl_class) || + get_user(count, &up->count) || + put_user(count, &kp->count) || + convert_in_user(&up->error_idx, &kp->error_idx) || + copy_in_user(kp->reserved, up->reserved, sizeof(kp->reserved))) return -EFAULT; - n = kp->count; - if (n == 0) { - kp->controls = NULL; - return 0; - } + if (count == 0) + return put_user(NULL, &kp->controls); if (get_user(p, &up->controls)) return -EFAULT; ucontrols = compat_ptr(p); if (!access_ok(VERIFY_READ, ucontrols, - n * sizeof(struct v4l2_ext_control32))) + count * sizeof(struct v4l2_ext_control32))) + return -EFAULT; + if (aux_space < count * sizeof(struct v4l2_ext_control)) + return -EFAULT; + kcontrols = aux_buf; + if (put_user((__force struct v4l2_ext_control *)kcontrols, + &kp->controls)) return -EFAULT; - kcontrols = compat_alloc_user_space(n * sizeof(struct v4l2_ext_control)); - kp->controls = (__force struct v4l2_ext_control *)kcontrols; - while (--n >= 0) { + for (n = 0; n < count; n++) { u32 id; - if (copy_in_user(kcontrols, ucontrols, sizeof(*ucontrols))) return -EFAULT; if (get_user(id, &kcontrols->id)) @@ -695,31 +831,33 @@ static int get_v4l2_ext_controls32(struct v4l2_ext_controls *kp, struct v4l2_ext return 0; } -static int put_v4l2_ext_controls32(struct v4l2_ext_controls *kp, struct v4l2_ext_controls32 __user *up) +static int put_v4l2_ext_controls32(struct v4l2_ext_controls __user *kp, struct v4l2_ext_controls32 __user *up) { struct v4l2_ext_control32 __user *ucontrols; - struct v4l2_ext_control __user *kcontrols = - (__force struct v4l2_ext_control __user *)kp->controls; - int n = kp->count; + struct v4l2_ext_control __user *kcontrols; + __u32 count; + unsigned int n; compat_caddr_t p; if (!access_ok(VERIFY_WRITE, up, sizeof(struct v4l2_ext_controls32)) || - put_user(kp->ctrl_class, &up->ctrl_class) || - put_user(kp->count, &up->count) || - put_user(kp->error_idx, &up->error_idx) || - copy_to_user(up->reserved, kp->reserved, sizeof(up->reserved))) + get_user(kcontrols, &kp->controls) || + convert_in_user(&kp->ctrl_class, &up->ctrl_class) || + get_user(count, &kp->count) || + put_user(count, &up->count) || + convert_in_user(&kp->error_idx, &up->error_idx) || + copy_in_user(up->reserved, kp->reserved, sizeof(up->reserved))) return -EFAULT; - if (!kp->count) + if (!count) return 0; if (get_user(p, &up->controls)) return -EFAULT; ucontrols = compat_ptr(p); if (!access_ok(VERIFY_WRITE, ucontrols, - n * sizeof(struct v4l2_ext_control32))) + count * sizeof(struct v4l2_ext_control32))) return -EFAULT; - while (--n >= 0) { + for (n = 0; n < count; n++) { unsigned size = sizeof(*ucontrols); u32 id; @@ -753,16 +891,17 @@ struct v4l2_event32 { __u32 reserved[8]; }; -static int put_v4l2_event32(struct v4l2_event *kp, struct v4l2_event32 __user *up) +static int put_v4l2_event32(struct v4l2_event __user *kp, struct v4l2_event32 __user *up) { if (!access_ok(VERIFY_WRITE, up, sizeof(struct v4l2_event32)) || - put_user(kp->type, &up->type) || - copy_to_user(&up->u, &kp->u, sizeof(kp->u)) || - put_user(kp->pending, &up->pending) || - put_user(kp->sequence, &up->sequence) || - compat_put_timespec(&kp->timestamp, &up->timestamp) || - put_user(kp->id, &up->id) || - copy_to_user(up->reserved, kp->reserved, 8 * sizeof(__u32))) + convert_in_user(&kp->type, &up->type) || + copy_in_user(&up->u, &kp->u, sizeof(kp->u)) || + convert_in_user(&kp->pending, &up->pending) || + convert_in_user(&kp->sequence, &up->sequence) || + convert_in_user(&kp->timestamp.tv_sec, &up->timestamp.tv_sec) || + convert_in_user(&kp->timestamp.tv_nsec, &up->timestamp.tv_nsec) || + convert_in_user(&kp->id, &up->id) || + copy_in_user(up->reserved, kp->reserved, 8 * sizeof(__u32))) return -EFAULT; return 0; } @@ -775,31 +914,34 @@ struct v4l2_edid32 { compat_caddr_t edid; }; -static int get_v4l2_edid32(struct v4l2_edid *kp, struct v4l2_edid32 __user *up) +#define v4l2_subdev_edid32 v4l2_edid32 + +static int get_v4l2_subdev_edid32(struct v4l2_subdev_edid __user *kp, struct v4l2_subdev_edid32 __user *up) { - u32 tmp; + compat_uptr_t tmp; - if (!access_ok(VERIFY_READ, up, sizeof(struct v4l2_edid32)) || - get_user(kp->pad, &up->pad) || - get_user(kp->start_block, &up->start_block) || - get_user(kp->blocks, &up->blocks) || + if (!access_ok(VERIFY_READ, up, sizeof(struct v4l2_subdev_edid32)) || + convert_in_user(&up->pad, &kp->pad) || + convert_in_user(&up->start_block, &kp->start_block) || + convert_in_user(&up->blocks, &kp->blocks) || get_user(tmp, &up->edid) || - copy_from_user(kp->reserved, up->reserved, sizeof(kp->reserved))) + put_user(compat_ptr(tmp), &kp->edid) || + copy_in_user(kp->reserved, up->reserved, sizeof(kp->reserved))) return -EFAULT; - kp->edid = (__force u8 *)compat_ptr(tmp); return 0; } -static int put_v4l2_edid32(struct v4l2_edid *kp, struct v4l2_edid32 __user *up) +static int put_v4l2_subdev_edid32(struct v4l2_subdev_edid __user *kp, struct v4l2_subdev_edid32 __user *up) { - u32 tmp = (u32)((unsigned long)kp->edid); - - if (!access_ok(VERIFY_WRITE, up, sizeof(struct v4l2_edid32)) || - put_user(kp->pad, &up->pad) || - put_user(kp->start_block, &up->start_block) || - put_user(kp->blocks, &up->blocks) || - put_user(tmp, &up->edid) || - copy_to_user(up->reserved, kp->reserved, sizeof(up->reserved))) + void *edid; + + if (!access_ok(VERIFY_WRITE, up, sizeof(struct v4l2_subdev_edid32)) || + convert_in_user(&kp->pad, &up->pad) || + convert_in_user(&kp->start_block, &up->start_block) || + convert_in_user(&kp->blocks, &up->blocks) || + get_user(edid, &kp->edid) || + put_user(ptr_to_compat(edid), &up->edid) || + copy_in_user(up->reserved, kp->reserved, sizeof(up->reserved))) return -EFAULT; return 0; } @@ -832,22 +974,37 @@ static int put_v4l2_edid32(struct v4l2_edid *kp, struct v4l2_edid32 __user *up) #define VIDIOC_G_OUTPUT32 _IOR ('V', 46, s32) #define VIDIOC_S_OUTPUT32 _IOWR('V', 47, s32) +/* + * Note that these macros contain return statements to avoid the need for the + * "caller" to check return values. + */ +#define ALLOC_USER_SPACE(size) \ +({ \ + void __user *up_native; \ + up_native = compat_alloc_user_space(size); \ + if (!up_native) \ + return -ENOMEM; \ + if (clear_user(up_native, size)) \ + return -EFAULT; \ + up_native; \ +}) + +#define ALLOC_AND_GET(bufsizefunc, getfunc, structname) \ + do { \ + aux_space = bufsizefunc(up); \ + if (aux_space < 0) \ + return aux_space; \ + up_native = ALLOC_USER_SPACE(sizeof(struct structname) + aux_space); \ + aux_buf = up_native + sizeof(struct structname); \ + err = getfunc(up_native, up, aux_buf, aux_space); \ + } while (0) + static long do_video_ioctl(struct file *file, unsigned int cmd, unsigned long arg) { - union { - struct v4l2_format v2f; - struct v4l2_buffer v2b; - struct v4l2_framebuffer v2fb; - struct v4l2_input v2i; - struct v4l2_standard v2s; - struct v4l2_ext_controls v2ecs; - struct v4l2_event v2ev; - struct v4l2_create_buffers v2crt; - struct v4l2_edid v2edid; - unsigned long vx; - int vi; - } karg; void __user *up = compat_ptr(arg); + void __user *up_native = NULL; + void __user *aux_buf; + int aux_space; int compatible_arg = 1; long err = 0; @@ -886,30 +1043,35 @@ static long do_video_ioctl(struct file *file, unsigned int cmd, unsigned long ar case VIDIOC_STREAMOFF: case VIDIOC_S_INPUT: case VIDIOC_S_OUTPUT: - err = get_user(karg.vi, (s32 __user *)up); + up_native = ALLOC_USER_SPACE(sizeof(unsigned __user)); + if (convert_in_user((compat_uint_t __user *)up, + (unsigned __user *) up_native)) + return -EFAULT; compatible_arg = 0; break; case VIDIOC_G_INPUT: case VIDIOC_G_OUTPUT: + up_native = ALLOC_USER_SPACE(sizeof(unsigned __user)); compatible_arg = 0; break; case VIDIOC_G_EDID: case VIDIOC_S_EDID: - err = get_v4l2_edid32(&karg.v2edid, up); + up_native = ALLOC_USER_SPACE(sizeof(struct v4l2_subdev_edid)); + err = get_v4l2_subdev_edid32(up_native, up); compatible_arg = 0; break; case VIDIOC_G_FMT: case VIDIOC_S_FMT: case VIDIOC_TRY_FMT: - err = get_v4l2_format32(&karg.v2f, up); + ALLOC_AND_GET(bufsize_v4l2_format32, get_v4l2_format32, v4l2_format); compatible_arg = 0; break; case VIDIOC_CREATE_BUFS: - err = get_v4l2_create32(&karg.v2crt, up); + ALLOC_AND_GET(bufsize_v4l2_create32, get_v4l2_create32, v4l2_create_buffers); compatible_arg = 0; break; @@ -917,36 +1079,41 @@ static long do_video_ioctl(struct file *file, unsigned int cmd, unsigned long ar case VIDIOC_QUERYBUF: case VIDIOC_QBUF: case VIDIOC_DQBUF: - err = get_v4l2_buffer32(&karg.v2b, up); + ALLOC_AND_GET(bufsize_v4l2_buffer32, get_v4l2_buffer32, v4l2_buffer); compatible_arg = 0; break; case VIDIOC_S_FBUF: - err = get_v4l2_framebuffer32(&karg.v2fb, up); + up_native = ALLOC_USER_SPACE(sizeof(struct v4l2_framebuffer)); + err = get_v4l2_framebuffer32((struct v4l2_framebuffer *)up_native, (struct v4l2_framebuffer32 *)up); compatible_arg = 0; break; case VIDIOC_G_FBUF: + up_native = ALLOC_USER_SPACE(sizeof(struct v4l2_framebuffer)); compatible_arg = 0; break; case VIDIOC_ENUMSTD: - err = get_v4l2_standard32(&karg.v2s, up); + up_native = ALLOC_USER_SPACE(sizeof(struct v4l2_standard)); + err = get_v4l2_standard32(up_native, up); compatible_arg = 0; break; case VIDIOC_ENUMINPUT: - err = get_v4l2_input32(&karg.v2i, up); + up_native = ALLOC_USER_SPACE(sizeof(struct v4l2_input)); + err = get_v4l2_input32(up_native, up); compatible_arg = 0; break; case VIDIOC_G_EXT_CTRLS: case VIDIOC_S_EXT_CTRLS: case VIDIOC_TRY_EXT_CTRLS: - err = get_v4l2_ext_controls32(&karg.v2ecs, up); + ALLOC_AND_GET(bufsize_v4l2_ext_controls32, get_v4l2_ext_controls32, v4l2_ext_controls); compatible_arg = 0; break; case VIDIOC_DQEVENT: + up_native = ALLOC_USER_SPACE(sizeof(struct v4l2_event)); compatible_arg = 0; break; } @@ -955,13 +1122,8 @@ static long do_video_ioctl(struct file *file, unsigned int cmd, unsigned long ar if (compatible_arg) err = native_ioctl(file, cmd, (unsigned long)up); - else { - mm_segment_t old_fs = get_fs(); - - set_fs(KERNEL_DS); - err = native_ioctl(file, cmd, (unsigned long)&karg); - set_fs(old_fs); - } + else + err = native_ioctl(file, cmd, (unsigned long)up_native); /* Special case: even after an error we need to put the results back for these ioctls since the error_idx will @@ -970,7 +1132,7 @@ static long do_video_ioctl(struct file *file, unsigned int cmd, unsigned long ar case VIDIOC_G_EXT_CTRLS: case VIDIOC_S_EXT_CTRLS: case VIDIOC_TRY_EXT_CTRLS: - if (put_v4l2_ext_controls32(&karg.v2ecs, up)) + if (put_v4l2_ext_controls32(up_native, up)) err = -EFAULT; break; } @@ -982,44 +1144,45 @@ static long do_video_ioctl(struct file *file, unsigned int cmd, unsigned long ar case VIDIOC_S_OUTPUT: case VIDIOC_G_INPUT: case VIDIOC_G_OUTPUT: - err = put_user(((s32)karg.vi), (s32 __user *)up); + err = convert_in_user(((unsigned __user *)up_native), + (compat_uint_t __user *)up); break; case VIDIOC_G_FBUF: - err = put_v4l2_framebuffer32(&karg.v2fb, up); + err = put_v4l2_framebuffer32(up_native, up); break; case VIDIOC_DQEVENT: - err = put_v4l2_event32(&karg.v2ev, up); + err = put_v4l2_event32(up_native, up); break; case VIDIOC_G_EDID: case VIDIOC_S_EDID: - err = put_v4l2_edid32(&karg.v2edid, up); + err = put_v4l2_subdev_edid32(up_native, up); break; case VIDIOC_G_FMT: case VIDIOC_S_FMT: case VIDIOC_TRY_FMT: - err = put_v4l2_format32(&karg.v2f, up); + err = put_v4l2_format32(up_native, up); break; case VIDIOC_CREATE_BUFS: - err = put_v4l2_create32(&karg.v2crt, up); + err = put_v4l2_create32(up_native, up); break; case VIDIOC_QUERYBUF: case VIDIOC_QBUF: case VIDIOC_DQBUF: - err = put_v4l2_buffer32(&karg.v2b, up); + err = put_v4l2_buffer32(up_native, up); break; case VIDIOC_ENUMSTD: - err = put_v4l2_standard32(&karg.v2s, up); + err = put_v4l2_standard32(up_native, up); break; case VIDIOC_ENUMINPUT: - err = put_v4l2_input32(&karg.v2i, up); + err = put_v4l2_input32(up_native, up); break; } return err; diff --git a/drivers/mfd/wcd9xxx-core.c b/drivers/mfd/wcd9xxx-core.c index a446376650f01..7987c20331ef3 100644 --- a/drivers/mfd/wcd9xxx-core.c +++ b/drivers/mfd/wcd9xxx-core.c @@ -3107,19 +3107,19 @@ static int wcd9xxx_slim_probe(struct slim_device *slim) ("wcd9xxx_core", 0); if (!IS_ERR(debugfs_wcd9xxx_dent)) { debugfs_peek = debugfs_create_file("slimslave_peek", - S_IFREG | S_IRUGO, debugfs_wcd9xxx_dent, + S_IFREG | S_IRUSR, debugfs_wcd9xxx_dent, (void *) "slimslave_peek", &codec_debug_ops); debugfs_poke = debugfs_create_file("slimslave_poke", - S_IFREG | S_IRUGO, debugfs_wcd9xxx_dent, + S_IFREG | S_IRUSR, debugfs_wcd9xxx_dent, (void *) "slimslave_poke", &codec_debug_ops); debugfs_power_state = debugfs_create_file("power_state", - S_IFREG | S_IRUGO, debugfs_wcd9xxx_dent, + S_IFREG | S_IRUSR, debugfs_wcd9xxx_dent, (void *) "power_state", &codec_debug_ops); debugfs_reg_dump = debugfs_create_file("slimslave_reg_dump", - S_IFREG | S_IRUGO, debugfs_wcd9xxx_dent, + S_IFREG | S_IRUSR, debugfs_wcd9xxx_dent, (void *) "slimslave_reg_dump", &codec_debug_ops); } #endif diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile index 0b9117c0e7dae..e6f726c943fbb 100644 --- a/drivers/misc/Makefile +++ b/drivers/misc/Makefile @@ -68,3 +68,4 @@ obj-$(CONFIG_TI_DRV2667) += ti_drv2667.o obj-$(CONFIG_USB_EXT_TYPE_C_PERICOM) += type-c-pericom.o obj-$(CONFIG_USB_EXT_TYPE_C_TI) += type-c-ti.o obj-$(CONFIG_QPNP_MISC) += qpnp-misc.o +obj-y += hardware_info.o diff --git a/drivers/misc/hardware_info.c b/drivers/misc/hardware_info.c new file mode 100755 index 0000000000000..c5913658b2f96 --- /dev/null +++ b/drivers/misc/hardware_info.c @@ -0,0 +1,331 @@ +#include +#include +#include +#include +#include + +#include + +#include +#include +#include + +typedef struct hardwareinfo_get{ + void (*get)(void *driver_data); + void *driver_data; +} hardwareinfo_get; + +static hardwareinfo_get hardwareinfo_get_tp; + +void hardwareinfo_tp_register(void (*fn)(void *), void *driver_data) +{ + hardwareinfo_get_tp.get = fn; + hardwareinfo_get_tp.driver_data = driver_data; +} +char Lcm_name[HARDWARE_MAX_ITEM_LONGTH]; +char board_id[HARDWARE_MAX_ITEM_LONGTH]; +static char hardwareinfo_name[HARDWARE_MAX_ITEM][HARDWARE_MAX_ITEM_LONGTH]; + + +char *hardwareinfo_items[HARDWARE_MAX_ITEM] = { + "LCD", + "TP", + "MEMORY", + "CAM_FRONT", + "CAM_BACK", + "BT", + "WIFI", + "GSENSOR", + "PLSENSOR", + "GYROSENSOR", + "MSENSOR", + "GPS", + "FM", + "BATTERY", + "CAM_M_BACK", + "CAM_M_FRONT", + "BOARD_ID", +}; + +#define FP_PROC_NAME "hwinfo" + +static char hdware_info_fp[100] = "unknow"; + + +static ssize_t fp_hwinfo_proc_write(struct file *file, const char __user *buf, size_t count, loff_t *ppos) +{ + size_t min; + min = min(count, (size_t)(ARRAY_SIZE(hdware_info_fp) - 1)); + memset(hdware_info_fp, 0, ARRAY_SIZE(hdware_info_fp)); + if (copy_from_user(hdware_info_fp, buf, min)) { + pr_err("%s: copy from user error.", __func__); + return -EPERM; + } + + return min; +} + +static ssize_t fp_hwinfo_proc_read(struct file *file, char __user *buf, size_t count, loff_t *ppos) +{ + size_t min; + char *p; + size_t size = ARRAY_SIZE(hdware_info_fp) + strlen("Fingerprint: \n"); + + if (*ppos) + return 0; + *ppos += count; + + min = min(count, size); + p = kzalloc(size, GFP_KERNEL); + snprintf(p, size, "Fingerprint: %s\n", hdware_info_fp); + + if (copy_to_user(buf, p, min)) { + pr_err("%s: copy to user error.", __func__); + kfree(p); + return -EPERM; + } + kfree(p); + + return min; +} + + +static const struct file_operations fp_hwinfo_fops = { + .write = fp_hwinfo_proc_write, + .read = fp_hwinfo_proc_read, + .owner = THIS_MODULE, +}; + +/* +* This function will create a node named FP_PROC_NAME for user to read the fingerprint +* infomation.Just cat /proc/FP_PROC_NAME. +*/ +void fp_hwinfo_proc_create(void) +{ + struct proc_dir_entry *fp_hwinfo_proc_dir; + + fp_hwinfo_proc_dir = proc_create(FP_PROC_NAME, 0666, NULL, &fp_hwinfo_fops); + if (fp_hwinfo_proc_dir == NULL) + pr_err("[HW_INFO][ERR]: create fp_hwinfo_proc fail\n"); +} + +int hardwareinfo_set_prop(int cmd, const char *name) +{ + if (cmd < 0 || cmd >= HARDWARE_MAX_ITEM) + return -EPERM; + + strcpy(hardwareinfo_name[cmd], name); + + return 0; +} +EXPORT_SYMBOL_GPL(hardwareinfo_set_prop); + + +static long hardwareinfo_ioctl(struct file *file, unsigned int cmd, unsigned long arg) +{ + int ret = 0, hardwareinfo_num; + void __user *data = (void __user *)arg; + + + switch (cmd) { + case HARDWARE_LCD_GET: + hardwareinfo_set_prop(HARDWARE_LCD, Lcm_name); + hardwareinfo_num = HARDWARE_LCD; + break; + case HARDWARE_TP_GET: + hardwareinfo_num = HARDWARE_TP; + if (hardwareinfo_get_tp.get) + hardwareinfo_get_tp.get(hardwareinfo_get_tp.driver_data); + break; + case HARDWARE_FLASH_GET: + hardwareinfo_num = HARDWARE_FLASH; + break; + case HARDWARE_FRONT_CAM_GET: + hardwareinfo_num = HARDWARE_FRONT_CAM; + break; + case HARDWARE_BACK_CAM_GET: + hardwareinfo_num = HARDWARE_BACK_CAM; + break; + case HARDWARE_BT_GET: + hardwareinfo_set_prop(HARDWARE_BT, "Qualcomm"); + hardwareinfo_num = HARDWARE_BT; + break; + case HARDWARE_WIFI_GET: + hardwareinfo_set_prop(HARDWARE_WIFI, "Qualcomm"); + hardwareinfo_num = HARDWARE_WIFI; + break; + case HARDWARE_ACCELEROMETER_GET: + hardwareinfo_num = HARDWARE_ACCELEROMETER; + break; + case HARDWARE_ALSPS_GET: + hardwareinfo_num = HARDWARE_ALSPS; + break; + case HARDWARE_GYROSCOPE_GET: + hardwareinfo_num = HARDWARE_GYROSCOPE; + break; + case HARDWARE_MAGNETOMETER_GET: + hardwareinfo_num = HARDWARE_MAGNETOMETER; + break; + case HARDWARE_GPS_GET: + hardwareinfo_set_prop(HARDWARE_GPS, "Qualcomm"); + hardwareinfo_num = HARDWARE_GPS; + break; + case HARDWARE_FM_GET: + hardwareinfo_set_prop(HARDWARE_FM, "Qualcomm"); + hardwareinfo_num = HARDWARE_FM; + break; + case HARDWARE_BATTERY_ID_GET: + hardwareinfo_num = HARDWARE_BATTERY_ID; + break; + case HARDWARE_BACK_CAM_MOUDULE_ID_GET: + hardwareinfo_num = HARDWARE_BACK_CAM_MOUDULE_ID; + break; + case HARDWARE_FRONT_CAM_MODULE_ID_GET: + hardwareinfo_num = HARDWARE_FRONT_CAM_MOUDULE_ID; + break; + case HARDWARE_BOARD_ID_GET: + hardwareinfo_set_prop(HARDWARE_BOARD_ID, board_id); + hardwareinfo_num = HARDWARE_BOARD_ID; + break; + case HARDWARE_BACK_CAM_MOUDULE_ID_SET: + if (copy_from_user(hardwareinfo_name[HARDWARE_BACK_CAM_MOUDULE_ID], data, sizeof(data))) { + pr_err("wgz copy_from_user error"); + ret = -EINVAL; + } + goto set_ok; + break; + case HARDWARE_FRONT_CAM_MODULE_ID_SET: + if (copy_from_user(hardwareinfo_name[HARDWARE_FRONT_CAM_MOUDULE_ID], data, sizeof(data))) { + pr_err("wgz copy_from_user error"); + ret = -EINVAL; + } + goto set_ok; + break; + default: + ret = -EINVAL; + goto err_out; + } + + if (copy_to_user(data, hardwareinfo_name[hardwareinfo_num], strlen(hardwareinfo_name[hardwareinfo_num]) + 1)) { + + ret = -EINVAL; + } +set_ok: +err_out: + return ret; +} + +static ssize_t show_boardinfo(struct device *dev, struct device_attribute *attr, char *buf) +{ + int i = 0; + char temp_buffer[HARDWARE_MAX_ITEM_LONGTH]; + int buf_size = 0; + + for (i = 0; i < HARDWARE_MAX_ITEM; i++) { + memset(temp_buffer, 0, HARDWARE_MAX_ITEM_LONGTH); + if (i == HARDWARE_LCD) { + sprintf(temp_buffer, "%s : %s\n", hardwareinfo_items[i], Lcm_name); + } else if (i == HARDWARE_BT || i == HARDWARE_WIFI || i == HARDWARE_GPS || i == HARDWARE_FM) { + sprintf(temp_buffer, "%s : %s\n", hardwareinfo_items[i], "Qualcomm"); + } else { + sprintf(temp_buffer, "%s : %s\n", hardwareinfo_items[i], hardwareinfo_name[i]); + } + strcat(buf, temp_buffer); + buf_size += strlen(temp_buffer); + } + + return buf_size; +} +static DEVICE_ATTR(boardinfo, S_IRUGO, show_boardinfo, NULL); + + +static int boardinfo_probe(struct platform_device *pdev) +{ + struct device *dev = &pdev->dev; + int rc = 0; + + printk("%s: start\n", __func__); + + rc = device_create_file(dev, &dev_attr_boardinfo); + if (rc < 0) + return rc; + + dev_info(dev, "%s: ok\n", __func__); + + return 0; +} + +static int boardinfo_remove(struct platform_device *pdev) +{ + struct device *dev = &pdev->dev; + + device_remove_file(dev, &dev_attr_boardinfo); + dev_info(&pdev->dev, "%s\n", __func__); + return 0; +} + + +static struct file_operations hardwareinfo_fops = { + .owner = THIS_MODULE, + .open = simple_open, + .unlocked_ioctl = hardwareinfo_ioctl, + .compat_ioctl = hardwareinfo_ioctl, +}; + +static struct miscdevice hardwareinfo_device = { + .minor = MISC_DYNAMIC_MINOR, + .name = "hardwareinfo", + .fops = &hardwareinfo_fops, +}; + +static struct of_device_id boardinfo_of_match[] = { + { .compatible = "wt:boardinfo", }, + {} +}; + +static struct platform_driver boardinfo_driver = { + .driver = { + .name = "boardinfo", + .owner = THIS_MODULE, + .of_match_table = boardinfo_of_match, + }, + .probe = boardinfo_probe, + .remove = boardinfo_remove, +}; + + + +static int __init hardwareinfo_init_module(void) +{ + int ret, i; + + for (i = 0; i < HARDWARE_MAX_ITEM; i++) + strcpy(hardwareinfo_name[i], "NULL"); + + ret = misc_register(&hardwareinfo_device); + if (ret < 0) { + return -ENODEV; + } + + ret = platform_driver_register(&boardinfo_driver); + if (ret != 0) { + return -ENODEV; + } + + fp_hwinfo_proc_create(); + + return 0; +} + +static void __exit hardwareinfo_exit_module(void) +{ + misc_deregister(&hardwareinfo_device); +} + +module_init(hardwareinfo_init_module); +module_exit(hardwareinfo_exit_module); + +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("Ming He "); + + diff --git a/drivers/mmc/Kconfig b/drivers/mmc/Kconfig index 91165514156ea..d437724f2243a 100644 --- a/drivers/mmc/Kconfig +++ b/drivers/mmc/Kconfig @@ -27,6 +27,14 @@ config MMC_PERF_PROFILING If you say Y here, support will be added for collecting performance numbers at the MMC Queue and Host layers. +config MMC_ERROR_STATUS + bool "MMC error status" + depends on MMC != n + default n + help + If you say Y here, user space query if eMMC driver has encountered any error or not. + WARNNING:Only SCM could open it. + if MMC source "drivers/mmc/core/Kconfig" diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c index 80a3cc1a4977d..695f3664ce013 100644 --- a/drivers/mmc/card/block.c +++ b/drivers/mmc/card/block.c @@ -3,6 +3,7 @@ * * Copyright 2002 Hewlett-Packard Company * Copyright 2005-2008 Pierre Ossman + * Copyright (C) 2018 XiaoMi, Inc. * * Use consistent with the GNU GPL is permitted, * provided that this copyright notice is @@ -3460,6 +3461,7 @@ static inline int mmc_blk_cmdq_part_switch(struct mmc_card *card, struct mmc_host *host = card->host; struct mmc_cmdq_context_info *ctx = &host->cmdq_ctx; u8 part_config = card->ext_csd.part_config; + int ret = 0, err = 0; if ((main_md->part_curr == md->part_type) && (card->part_curr == md->part_type)) @@ -3469,40 +3471,70 @@ static inline int mmc_blk_cmdq_part_switch(struct mmc_card *card, card->ext_csd.cmdq_support && (md->flags & MMC_BLK_CMD_QUEUE))); - if (!test_bit(CMDQ_STATE_HALT, &ctx->curr_state)) - WARN_ON(mmc_cmdq_halt(host, true)); + if (!test_bit(CMDQ_STATE_HALT, &ctx->curr_state)) { + ret = mmc_cmdq_halt(host, true); + if (ret) { + pr_err("%s: %s: halt: failed: %d\n", + mmc_hostname(host), __func__, ret); + goto out; + } + } /* disable CQ mode in card */ if (mmc_card_cmdq(card)) { - WARN_ON(mmc_switch(card, EXT_CSD_CMD_SET_NORMAL, + ret = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL, EXT_CSD_CMDQ, 0, - card->ext_csd.generic_cmd6_time)); + card->ext_csd.generic_cmd6_time); + if (ret) { + pr_err("%s: %s: cmdq mode disable failed %d\n", + mmc_hostname(host), __func__, ret); + goto cmdq_unhalt; + } mmc_card_clr_cmdq(card); } part_config &= ~EXT_CSD_PART_CONFIG_ACC_MASK; part_config |= md->part_type; - WARN_ON(mmc_switch(card, EXT_CSD_CMD_SET_NORMAL, + ret = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL, EXT_CSD_PART_CONFIG, part_config, - card->ext_csd.part_time)); + card->ext_csd.part_time); + if (ret) { + pr_err("%s: %s: mmc_switch failure, %d -> %d , err = %d\n", + mmc_hostname(host), __func__, main_md->part_curr, + md->part_type, ret); + goto cmdq_switch; + } card->ext_csd.part_config = part_config; card->part_curr = md->part_type; main_md->part_curr = md->part_type; - WARN_ON(mmc_blk_cmdq_switch(card, md, true)); - WARN_ON(mmc_cmdq_halt(host, false)); - - return 0; +cmdq_switch: + err = mmc_blk_cmdq_switch(card, md, true); + if (err) { + pr_err("%s: %s: mmc_blk_cmdq_switch failed: %d\n", + mmc_hostname(host), __func__, err); + ret = err; + } +cmdq_unhalt: + err = mmc_cmdq_halt(host, false); + if (err) { + pr_err("%s: %s: unhalt: failed: %d\n", + mmc_hostname(host), __func__, err); + ret = err; + } +out: + return ret; } static int mmc_blk_cmdq_issue_rq(struct mmc_queue *mq, struct request *req) { - int ret; + int ret, err = 0; struct mmc_blk_data *md = mq->data; struct mmc_card *card = md->queue.card; + struct mmc_host *host = card->host; unsigned int cmd_flags = req ? req->cmd_flags : 0; mmc_get_card(card); @@ -3524,9 +3556,20 @@ static int mmc_blk_cmdq_issue_rq(struct mmc_queue *mq, struct request *req) ret = mmc_blk_cmdq_part_switch(card, md); if (ret) { - pr_err("%s: %s: partition switch failed %d\n", + pr_err("%s: %s: partition switch failed %d, resetting cmdq\n", md->disk->disk_name, __func__, ret); - goto out; + + mmc_blk_cmdq_reset(host, false); + err = mmc_blk_cmdq_part_switch(card, md); + if (!err) { + pr_err("%s: %s: partition switch success err = %d\n", + md->disk->disk_name, __func__, err); + } else { + pr_err("%s: %s: partition switch failed err = %d\n", + md->disk->disk_name, __func__, err); + ret = 0; + goto out; + } } if (req) { @@ -3716,7 +3759,7 @@ static struct mmc_blk_data *mmc_blk_alloc_req(struct mmc_card *card, INIT_LIST_HEAD(&md->part); md->usage = 1; - ret = mmc_init_queue(&md->queue, card, &md->lock, subname, area_type); + ret = mmc_init_queue(&md->queue, card, NULL, subname, area_type); if (ret) goto err_putdisk; @@ -4013,6 +4056,10 @@ static const struct mmc_fixup blk_fixups[] = MMC_FIXUP("SEM32G", CID_MANFID_SANDISK, 0x100, add_quirk, MMC_QUIRK_INAND_CMD38), + MMC_FIXUP(CID_NAME_ANY, CID_MANFID_ANY, CID_OEMID_ANY, + add_quirk_mmc, MMC_QUIRK_BROKEN_CLK_GATING), + + /* * Some MMC cards experience performance degradation with CMD23 * instead of CMD12-bounded multiblock transfers. For now we'll @@ -4099,6 +4146,11 @@ static const struct mmc_fixup blk_fixups[] = MMC_FIXUP("VZL00M", CID_MANFID_SAMSUNG, CID_OEMID_ANY, add_quirk_mmc, MMC_QUIRK_SEC_ERASE_TRIM_BROKEN), + MMC_FIXUP("Q3J96R", CID_MANFID_MICRON, CID_OEMID_ANY, add_quirk_mmc, + MMC_QUIRK_BROKEN_CLK_GATING), + + MMC_FIXUP("Q3J97V", CID_MANFID_MICRON, CID_OEMID_ANY, add_quirk_mmc, + MMC_QUIRK_BROKEN_CLK_GATING), END_FIXUP }; @@ -4115,6 +4167,10 @@ static int mmc_blk_probe(struct mmc_card *card) mmc_fixup_device(card, blk_fixups); + if (mmc_card_mmc(card)) { + pr_info("card->quirks = 0x%x\n", card->quirks); + } + md = mmc_blk_alloc(card); if (IS_ERR(md)) return PTR_ERR(md); diff --git a/drivers/mmc/card/queue.c b/drivers/mmc/card/queue.c index ef71d57a08c65..49ea792094f0c 100644 --- a/drivers/mmc/card/queue.c +++ b/drivers/mmc/card/queue.c @@ -3,6 +3,7 @@ * * Copyright (C) 2003 Russell King, All Rights Reserved. * Copyright 2006-2007 Pierre Ossman + * Copyright (C) 2018 XiaoMi, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as @@ -715,15 +716,13 @@ int mmc_queue_suspend(struct mmc_queue *mq, int wait) if (wait) { /* - * After blk_stop_queue is called, wait for all + * After blk_cleanup_queue is called, wait for all * active_reqs to complete. * Then wait for cmdq thread to exit before calling * cmdq shutdown to avoid race between issuing * requests and shutdown of cmdq. */ - spin_lock_irqsave(q->queue_lock, flags); - blk_stop_queue(q); - spin_unlock_irqrestore(q->queue_lock, flags); + blk_cleanup_queue(q); if (host->cmdq_ctx.active_reqs) wait_for_completion( @@ -748,10 +747,15 @@ int mmc_queue_suspend(struct mmc_queue *mq, int wait) } if (!(test_and_set_bit(MMC_QUEUE_SUSPENDED, &mq->flags))) { - spin_lock_irqsave(q->queue_lock, flags); - blk_stop_queue(q); - spin_unlock_irqrestore(q->queue_lock, flags); - + if (!wait) { + /* suspend/stop the queue in case of suspend */ + spin_lock_irqsave(q->queue_lock, flags); + blk_stop_queue(q); + spin_unlock_irqrestore(q->queue_lock, flags); + } else { + /* shutdown the queue in case of shutdown/reboot */ + blk_cleanup_queue(q); + } rc = down_trylock(&mq->thread_sem); if (rc && !wait) { /* diff --git a/drivers/mmc/core/bus.c b/drivers/mmc/core/bus.c index 99c1d17a8b127..2f83e90bd50f2 100644 --- a/drivers/mmc/core/bus.c +++ b/drivers/mmc/core/bus.c @@ -169,6 +169,20 @@ static int mmc_bus_suspend(struct device *dev) if (mmc_bus_needs_resume(host)) return 0; ret = host->bus_ops->suspend(host); + + /* + * bus_ops->suspend may fail due to some reason + * In such cases if we return error to PM framework + * from here without calling drv->resume then mmc + * request may get stuck since PM framework will assume + * that mmc bus is not suspended (because of error) and + * it won't call resume again. + * + * So in case of error call drv->resume. + */ + if (ret && dev->driver && drv->resume) + drv->resume(card); + return ret; } diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c index 91433dfc82714..3cfac0311c370 100644 --- a/drivers/mmc/core/core.c +++ b/drivers/mmc/core/core.c @@ -2189,6 +2189,30 @@ void mmc_set_ungated(struct mmc_host *host) } #endif +int mmc_execute_tuning(struct mmc_card *card) +{ + struct mmc_host *host = card->host; + u32 opcode; + int err; + + if (!host->ops->execute_tuning) + return 0; + + if (mmc_card_mmc(card)) + opcode = MMC_SEND_TUNING_BLOCK_HS200; + else + opcode = MMC_SEND_TUNING_BLOCK; + + mmc_host_clk_hold(host); + err = host->ops->execute_tuning(host, opcode); + mmc_host_clk_release(host); + + if (err) + pr_err("%s: tuning execution failed\n", mmc_hostname(host)); + + return err; +} + /* * Change the bus mode (open drain/push-pull) of a host. */ @@ -2875,6 +2899,13 @@ static void _mmc_detect_change(struct mmc_host *host, unsigned long delay, pm_wakeup_event(mmc_dev(host), 5000); host->detect_change = 1; + /* + * Change in cd_gpio state, so make sure detection part is + * not overided because of manual resume. + */ + if (cd_irq && mmc_bus_manual_resume(host)) + host->ignore_bus_resume_flags = true; + mmc_schedule_delayed_work(&host->detect, delay); } @@ -3795,7 +3826,8 @@ void mmc_rescan(struct work_struct *work) host->bus_ops->detect(host); host->detect_change = 0; - + if (host->ignore_bus_resume_flags) + host->ignore_bus_resume_flags = false; /* * Let mmc_bus_put() free the bus/bus_ops if we've found that * the card is no longer present. @@ -4048,7 +4080,8 @@ int mmc_pm_notify(struct notifier_block *notify_block, spin_lock_irqsave(&host->lock, flags); host->rescan_disable = 0; - if (mmc_bus_manual_resume(host)) { + if (mmc_bus_manual_resume(host) && + !host->ignore_bus_resume_flags) { spin_unlock_irqrestore(&host->lock, flags); break; } diff --git a/drivers/mmc/core/core.h b/drivers/mmc/core/core.h index 49953c8e27b71..4fc7621e1eb3c 100644 --- a/drivers/mmc/core/core.h +++ b/drivers/mmc/core/core.h @@ -72,6 +72,8 @@ void mmc_remove_card_debugfs(struct mmc_card *card); void mmc_init_context_info(struct mmc_host *host); +int mmc_execute_tuning(struct mmc_card *card); + extern bool mmc_can_scale_clk(struct mmc_host *host); extern int mmc_init_clk_scaling(struct mmc_host *host); extern int mmc_suspend_clk_scaling(struct mmc_host *host); diff --git a/drivers/mmc/core/debugfs.c b/drivers/mmc/core/debugfs.c index aa8dcc87f31a7..8229fb22d5363 100644 --- a/drivers/mmc/core/debugfs.c +++ b/drivers/mmc/core/debugfs.c @@ -2,6 +2,7 @@ * Debugfs support for hosts and cards * * Copyright (C) 2008 Atmel Corporation + * Copyright (C) 2018 XiaoMi, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as @@ -322,6 +323,34 @@ static int mmc_force_err_set(void *data, u64 val) } DEFINE_SIMPLE_ATTRIBUTE(mmc_force_err_fops, NULL, mmc_force_err_set, "%llu\n"); +#ifdef CONFIG_MMC_ERROR_STATUS +static int mmc_err_state_get(void *data, u64 *val) +{ + struct mmc_host *host = data; + + if (!host) + return -EINVAL; + + *val = host->err_occurred ? 1 : 0; + + return 0; +} + +static int mmc_err_state_clear(void *data, u64 val) +{ + struct mmc_host *host = data; + + if (!host) + return -EINVAL; + + host->err_occurred = false; + + return 0; +} + +DEFINE_SIMPLE_ATTRIBUTE(mmc_err_state, mmc_err_state_get, + mmc_err_state_clear, "%llu\n"); +#endif void mmc_add_host_debugfs(struct mmc_host *host) { @@ -368,7 +397,11 @@ void mmc_add_host_debugfs(struct mmc_host *host) root, host, &mmc_ring_buffer_fops)) goto err_node; #endif - +#ifdef CONFIG_MMC_ERROR_STATUS + if (!debugfs_create_file("err_state", S_IRUSR | S_IWUSR, root, host, + &mmc_err_state)) + goto err_node; +#endif #ifdef CONFIG_MMC_CLKGATE if (!debugfs_create_u32("clk_delay", (S_IRUSR | S_IWUSR), root, &host->clk_delay)) @@ -761,6 +794,9 @@ static ssize_t mmc_bkops_stats_write(struct file *filp, if (!card) return cnt; + if (!access_ok(VERIFY_READ, ubuf, cnt)) + return cnt; + stats = &card->bkops.stats; err = kstrtoint_from_user(ubuf, cnt, 0, &value); diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c index 317c666fa436f..c111a2f182223 100644 --- a/drivers/mmc/core/mmc.c +++ b/drivers/mmc/core/mmc.c @@ -4,6 +4,7 @@ * Copyright (C) 2003-2004 Russell King, All Rights Reserved. * Copyright (C) 2005-2007 Pierre Ossman, All Rights Reserved. * MMCv4 support Copyright (C) 2006 Philip Langdale, All Rights Reserved. + * Copyright (C) 2018 XiaoMi, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as @@ -660,6 +661,8 @@ static int mmc_read_ext_csd(struct mmc_card *card, u8 *ext_csd) ext_csd[EXT_CSD_MAX_PACKED_WRITES]; card->ext_csd.max_packed_reads = ext_csd[EXT_CSD_MAX_PACKED_READS]; + card->ext_csd.life_time_est_typ_a = ext_csd[EXT_CSD_LIFE_TIME_EST_TYP_A]; + card->ext_csd.life_time_est_typ_b = ext_csd[EXT_CSD_LIFE_TIME_EST_TYP_B]; } else { card->ext_csd.data_sector_size = 512; } @@ -808,11 +811,13 @@ MMC_DEV_ATTR(serial, "0x%08x\n", card->cid.serial); MMC_DEV_ATTR(enhanced_area_offset, "%llu\n", card->ext_csd.enhanced_area_offset); MMC_DEV_ATTR(enhanced_area_size, "%u\n", card->ext_csd.enhanced_area_size); +MMC_DEV_ATTR(life_time_est_typ_a, "%u\n", card->ext_csd.life_time_est_typ_a); +MMC_DEV_ATTR(life_time_est_typ_b, "%u\n", card->ext_csd.life_time_est_typ_b); MMC_DEV_ATTR(raw_rpmb_size_mult, "%#x\n", card->ext_csd.raw_rpmb_size_mult); MMC_DEV_ATTR(enhanced_rpmb_supported, "%#x\n", card->ext_csd.enhanced_rpmb_supported); MMC_DEV_ATTR(rel_sectors, "%#x\n", card->ext_csd.rel_sectors); - +MMC_DEV_ATTR(fw_version, "%#x\n", card->ext_csd.fw_version); static struct attribute *mmc_std_attrs[] = { &dev_attr_cid.attr, &dev_attr_csd.attr, @@ -828,9 +833,12 @@ static struct attribute *mmc_std_attrs[] = { &dev_attr_serial.attr, &dev_attr_enhanced_area_offset.attr, &dev_attr_enhanced_area_size.attr, + &dev_attr_life_time_est_typ_a.attr, + &dev_attr_life_time_est_typ_b.attr, &dev_attr_raw_rpmb_size_mult.attr, &dev_attr_enhanced_rpmb_supported.attr, &dev_attr_rel_sectors.attr, + &dev_attr_fw_version.attr, NULL, }; ATTRIBUTE_GROUPS(mmc_std); @@ -1379,7 +1387,6 @@ EXPORT_SYMBOL(tuning_blk_pattern_8bit); static int mmc_hs200_tuning(struct mmc_card *card) { struct mmc_host *host = card->host; - int err = 0; /* * Timing should be adjusted to the HS400 target @@ -1389,18 +1396,7 @@ static int mmc_hs200_tuning(struct mmc_card *card) host->ios.bus_width == MMC_BUS_WIDTH_8) mmc_set_timing(host, MMC_TIMING_MMC_HS400); - if (host->ops->execute_tuning) { - mmc_host_clk_hold(host); - err = host->ops->execute_tuning(host, - MMC_SEND_TUNING_BLOCK_HS200); - mmc_host_clk_release(host); - - if (err) - pr_warn("%s: tuning execution failed\n", - mmc_hostname(host)); - } - - return err; + return mmc_execute_tuning(card); } static int mmc_select_cmdq(struct mmc_card *card) @@ -2370,7 +2366,7 @@ static int mmc_test_awake_ext_csd(struct mmc_host *host) static int _mmc_suspend(struct mmc_host *host, bool is_suspend) { - int err = 0; + int err = 0, ret; BUG_ON(!host); BUG_ON(!host->card); @@ -2379,7 +2375,9 @@ static int _mmc_suspend(struct mmc_host *host, bool is_suspend) if (err) { pr_err("%s: %s: fail to suspend clock scaling (%d)\n", mmc_hostname(host), __func__, err); - goto out; + if (host->card->cmdq_init) + wake_up(&host->cmdq_ctx.wait); + return err; } mmc_claim_host(host); @@ -2403,12 +2401,12 @@ static int _mmc_suspend(struct mmc_host *host, bool is_suspend) if (mmc_card_doing_bkops(host->card)) { err = mmc_stop_bkops(host->card); if (err) - goto out; + goto out_err; } err = mmc_flush_cache(host->card); if (err) - goto out; + goto out_err; if (mmc_can_sleepawake(host)) { /* @@ -2425,16 +2423,38 @@ static int _mmc_suspend(struct mmc_host *host, bool is_suspend) err = mmc_deselect_cards(host); } - if (!err) { - mmc_power_off(host); - mmc_card_set_suspended(host->card); + if (err) + goto out_err; + mmc_power_off(host); + mmc_card_set_suspended(host->card); + + goto out; + +out_err: + /* + * In case of err let's put controller back in cmdq mode and unhalt + * the controller. + * We expect cmdq_enable and unhalt won't return any error + * since it is anyway enabling few registers. + */ + if (host->card->cmdq_init) { + mmc_host_clk_hold(host); + ret = host->cmdq_ops->enable(host); + if (ret) + pr_err("%s: %s: enabling CMDQ mode failed (%d)\n", + mmc_hostname(host), __func__, ret); + mmc_host_clk_release(host); + mmc_cmdq_halt(host, false); } + out: /* Kick CMDQ thread to process any requests came in while suspending */ if (host->card->cmdq_init) wake_up(&host->cmdq_ctx.wait); mmc_release_host(host); + if (err) + mmc_resume_clk_scaling(host); return err; } diff --git a/drivers/mmc/core/sd.c b/drivers/mmc/core/sd.c index 08c3144adb27a..1d21b905a03c2 100644 --- a/drivers/mmc/core/sd.c +++ b/drivers/mmc/core/sd.c @@ -730,15 +730,10 @@ static int mmc_sd_init_uhs_card(struct mmc_card *card) * SPI mode doesn't define CMD19 and tuning is only valid for SDR50 and * SDR104 mode SD-cards. Note that tuning is mandatory for SDR104. */ - if (!mmc_host_is_spi(card->host) && card->host->ops->execute_tuning && + if (!mmc_host_is_spi(card->host) && (card->sd_bus_speed == UHS_SDR50_BUS_SPEED || - card->sd_bus_speed == UHS_SDR104_BUS_SPEED)) { - mmc_host_clk_hold(card->host); - err = card->host->ops->execute_tuning(card->host, - MMC_SEND_TUNING_BLOCK); - mmc_host_clk_release(card->host); - } - + card->sd_bus_speed == UHS_SDR104_BUS_SPEED)) + err = mmc_execute_tuning(card); out: kfree(status); @@ -1229,7 +1224,10 @@ static int mmc_sd_suspend(struct mmc_host *host) if (!err) { pm_runtime_disable(&host->card->dev); pm_runtime_set_suspended(&host->card->dev); - } + /* if suspend fails, force mmc_detect_change during resume */ + } else if (mmc_bus_manual_resume(host)) + host->ignore_bus_resume_flags = true; + MMC_TRACE(host, "%s: Exit err: %d\n", __func__, err); return err; @@ -1278,6 +1276,7 @@ static int _mmc_sd_resume(struct mmc_host *host) if (err) { pr_err("%s: %s: mmc_sd_init_card_failed (%d)\n", mmc_hostname(host), __func__, err); + mmc_power_off(host); goto out; } mmc_card_clr_suspended(host->card); diff --git a/drivers/mmc/core/sdio.c b/drivers/mmc/core/sdio.c index 889588d416821..4dbd734889dfd 100644 --- a/drivers/mmc/core/sdio.c +++ b/drivers/mmc/core/sdio.c @@ -643,17 +643,11 @@ static int mmc_sdio_init_uhs_card(struct mmc_card *card) * SPI mode doesn't define CMD19 and tuning is only valid for SDR50 and * SDR104 mode SD-cards. Note that tuning is mandatory for SDR104. */ - if (!mmc_host_is_spi(card->host) && card->host->ops->execute_tuning && + if (!mmc_host_is_spi(card->host) && ((card->sw_caps.sd3_bus_mode & SD_MODE_UHS_SDR50) || - (card->sw_caps.sd3_bus_mode & SD_MODE_UHS_SDR104))) { - mmc_host_clk_hold(card->host); - err = card->host->ops->execute_tuning(card->host, - MMC_SEND_TUNING_BLOCK); - mmc_host_clk_release(card->host); - } - + (card->sw_caps.sd3_bus_mode & SD_MODE_UHS_SDR104))) + err = mmc_execute_tuning(card); out: - return err; } diff --git a/drivers/mmc/host/cmdq_hci.c b/drivers/mmc/host/cmdq_hci.c index de8fb69d9c92c..eb9ccac6d7d25 100644 --- a/drivers/mmc/host/cmdq_hci.c +++ b/drivers/mmc/host/cmdq_hci.c @@ -1,4 +1,5 @@ /* Copyright (c) 2015-2016 The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -403,7 +404,15 @@ static int cmdq_enable(struct mmc_host *mmc) cmdq_writel(cq_host, mmc->card->rca, CQSSC2); /* send QSR at lesser intervals than the default */ - cmdq_writel(cq_host, SEND_QSR_INTERVAL, CQSSC1); + if (CID_MANFID_MICRON == mmc->card->cid.manfid) { + if ((cmdq_readl(cq_host, CQSSC1) | SEND_QSR_INTERVAL) > 0x70040) + + cmdq_writel(cq_host, cmdq_readl(cq_host, CQSSC1) | SEND_QSR_INTERVAL, CQSSC1); + else + cmdq_writel(cq_host, 0x70040, CQSSC1); + } else{ + cmdq_writel(cq_host, SEND_QSR_INTERVAL, CQSSC1); + } /* enable bkops exception indication */ if (mmc_card_configured_manual_bkops(mmc->card) && diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c index 9f6dfdf4d45c4..af4e167dec0fd 100644 --- a/drivers/mmc/host/sdhci.c +++ b/drivers/mmc/host/sdhci.c @@ -172,7 +172,9 @@ static void sdhci_dumpregs(struct sdhci_host *host) readl(host->ioaddr + SDHCI_ADMA_ERROR), readl(host->ioaddr + SDHCI_ADMA_ADDRESS_LOW)); } - + #ifdef CONFIG_MMC_ERROR_STATUS + host->mmc->err_occurred = true; + #endif if (host->ops->dump_vendor_regs) host->ops->dump_vendor_regs(host); sdhci_dump_state(host); diff --git a/drivers/net/ethernet/amd/xgbe/xgbe.h b/drivers/net/ethernet/amd/xgbe/xgbe.h index 789957d43a137..ef301f45cbdc7 100644 --- a/drivers/net/ethernet/amd/xgbe/xgbe.h +++ b/drivers/net/ethernet/amd/xgbe/xgbe.h @@ -124,7 +124,7 @@ #include #include #include -#include +#include #include #include diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x.h b/drivers/net/ethernet/broadcom/bnx2x/bnx2x.h index 2559206d87046..29e8e6eceb64e 100644 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x.h +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x.h @@ -22,7 +22,7 @@ #include #include -#include +#include /* compilation time flags */ diff --git a/drivers/net/ethernet/freescale/fec.h b/drivers/net/ethernet/freescale/fec.h index 9af296a1ca999..e5ea8b9973c48 100644 --- a/drivers/net/ethernet/freescale/fec.h +++ b/drivers/net/ethernet/freescale/fec.h @@ -16,6 +16,7 @@ #include #include #include +#include #if defined(CONFIG_M523x) || defined(CONFIG_M527x) || defined(CONFIG_M528x) || \ defined(CONFIG_M520x) || defined(CONFIG_M532x) || \ diff --git a/drivers/net/ethernet/intel/e1000e/e1000.h b/drivers/net/ethernet/intel/e1000e/e1000.h index 7785240a0da1a..9416e5a7e0c82 100644 --- a/drivers/net/ethernet/intel/e1000e/e1000.h +++ b/drivers/net/ethernet/intel/e1000e/e1000.h @@ -34,7 +34,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/drivers/net/ethernet/intel/igb/igb.h b/drivers/net/ethernet/intel/igb/igb.h index 95f47b9f50d4f..5c8be806b83a7 100644 --- a/drivers/net/ethernet/intel/igb/igb.h +++ b/drivers/net/ethernet/intel/igb/igb.h @@ -29,7 +29,7 @@ #include "e1000_mac.h" #include "e1000_82575.h" -#include +#include #include #include #include diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe.h b/drivers/net/ethernet/intel/ixgbe/ixgbe.h index 5032a602d5c98..f26eeb705a773 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe.h +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe.h @@ -38,7 +38,7 @@ #include #include -#include +#include #include #include diff --git a/drivers/net/ethernet/ti/cpts.h b/drivers/net/ethernet/ti/cpts.h index 1a581ef7eee8f..69a46b92c7d6c 100644 --- a/drivers/net/ethernet/ti/cpts.h +++ b/drivers/net/ethernet/ti/cpts.h @@ -27,6 +27,7 @@ #include #include #include +#include struct cpsw_cpts { u32 idver; /* Identification and version */ diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c index 0a9e10337142d..a2e4418bb071f 100644 --- a/drivers/of/fdt.c +++ b/drivers/of/fdt.c @@ -723,6 +723,23 @@ const void * __init of_flat_dt_match_machine(const void *default_match, return best_data; } +void __init early_init_dt_check_for_powerup_reason(unsigned long node) +{ + unsigned long pu_reason; + int len; + const __be32 *prop; + + pr_debug("Looking for powerup reason properties... \n"); + + prop = of_get_flat_dt_prop(node, "pureason", &len); + if (!prop) + return; + pu_reason = of_read_ulong(prop, len/4); + early_init_dt_setup_pureason_arch(pu_reason); + + pr_debug("Powerup reason %lu\n", pu_reason); +} + #ifdef CONFIG_BLK_DEV_INITRD /** * early_init_dt_check_for_initrd - Decode initrd location from flat tree @@ -749,6 +766,7 @@ static void __init early_init_dt_check_for_initrd(unsigned long node) initrd_start = (unsigned long)__va(start); initrd_end = (unsigned long)__va(end); initrd_below_start_ok = 1; + early_init_dt_check_for_powerup_reason(node); pr_debug("initrd_start=0x%llx initrd_end=0x%llx\n", (unsigned long long)start, (unsigned long long)end); diff --git a/drivers/of/of_batterydata.c b/drivers/of/of_batterydata.c index 4fddbdefce5b5..cfe46089b72be 100644 --- a/drivers/of/of_batterydata.c +++ b/drivers/of/of_batterydata.c @@ -1,4 +1,5 @@ /* Copyright (c) 2013-2015, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -19,6 +20,7 @@ #include #include #include +#include static int of_batterydata_read_lut(const struct device_node *np, int max_cols, int max_rows, int *ncols, int *nrows, @@ -310,6 +312,17 @@ static int64_t of_batterydata_convert_battery_id_kohm(int batt_id_uv, return resistor_value_kohm; } + +#ifdef CONFIG_C3N_SMB358 +extern int battid_resister; +#endif + +int battery_type_id = 0 ; + +#if defined(CONFIG_A13N_PMI8952) || defined(CONFIG_D1_ROSY) +static char *default_batt_type = "Generic_Battery"; +#endif + struct device_node *of_batterydata_get_best_profile( const struct device_node *batterydata_container_node, const char *psy_name, const char *batt_type) @@ -322,6 +335,7 @@ struct device_node *of_batterydata_get_best_profile( int delta = 0, best_delta = 0, best_id_kohm = 0, id_range_pct, batt_id_kohm = 0, i = 0, rc = 0, limit = 0; bool in_range = false; + bool default_id = false; psy = power_supply_get_by_name(psy_name); if (!psy) { @@ -335,7 +349,13 @@ struct device_node *of_batterydata_get_best_profile( return ERR_PTR(-ENOSYS); } - batt_id_kohm = ret.intval / 1000; +#ifdef CONFIG_C3N_SMB358 + batt_id_kohm = battid_resister; + pr_err("C3N batt_id = %d\n", batt_id_kohm); +#else + batt_id_kohm = ret.intval / 1000; + pr_err("WT batt_id = %d\n", batt_id_kohm); +#endif /* read battery id range percentage for best profile */ rc = of_property_read_u32(batterydata_container_node, @@ -387,6 +407,26 @@ struct device_node *of_batterydata_get_best_profile( } } +#if defined(CONFIG_A13N_PMI8952) || defined(CONFIG_D1_ROSY) + + if (best_node == NULL) { + for_each_child_of_node(batterydata_container_node, node) { + if (default_batt_type != NULL) { + rc = of_property_read_string(node, "qcom,battery-type", + &battery_type); + if (!rc && strcmp(battery_type, default_batt_type) == 0) { + best_node = node; + best_id_kohm = batt_id_kohm; + default_id = true; + pr_err("No battery data found, Use default battery data\n"); + break; + } + } + } + } + +#endif + if (best_node == NULL) { pr_err("No battery data found\n"); return best_node; @@ -394,7 +434,7 @@ struct device_node *of_batterydata_get_best_profile( /* check that profile id is in range of the measured batt_id */ if (abs(best_id_kohm - batt_id_kohm) > - ((best_id_kohm * id_range_pct) / 100)) { + ((best_id_kohm * id_range_pct) / 100) && !default_id) { pr_err("out of range: profile id %d batt id %d pct %d", best_id_kohm, batt_id_kohm, id_range_pct); return NULL; @@ -402,11 +442,24 @@ struct device_node *of_batterydata_get_best_profile( rc = of_property_read_string(best_node, "qcom,battery-type", &battery_type); - if (!rc) + if (!rc) { + hardwareinfo_set_prop(HARDWARE_BATTERY_ID, battery_type); pr_info("%s found\n", battery_type); + } else pr_info("%s found\n", best_node->name); +#ifdef CONFIG_C3N_SMB358 + + if (strcmp(battery_type, "wingtech-feimaotui-4v4-3030mah") == 0) { + battery_type_id = 1; + } else if (strcmp(battery_type, "wingtech-xingwangda-4v4-3030mah") == 0) { + battery_type_id = 2; + } + +#endif + + return best_node; } diff --git a/drivers/platform/msm/qpnp-power-on.c b/drivers/platform/msm/qpnp-power-on.c index 991716f06500a..e3961a3268e4a 100644 --- a/drivers/platform/msm/qpnp-power-on.c +++ b/drivers/platform/msm/qpnp-power-on.c @@ -1,4 +1,5 @@ /* Copyright (c) 2012-2016, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -30,6 +31,8 @@ #include #include +#include + #define CREATE_MASK(NUM_BITS, POS) \ ((unsigned char) (((1 << (NUM_BITS)) - 1) << (POS))) #define PON_MASK(MSB_BIT, LSB_BIT) \ @@ -68,6 +71,7 @@ ((pon)->base + PON_OFFSET((pon)->subtype, 0xA, 0xC2)) #define QPNP_POFF_REASON1(pon) \ ((pon)->base + PON_OFFSET((pon)->subtype, 0xC, 0xC5)) +#define QPNP_POFF_REASON2(pon) ((pon)->base + 0xD) #define QPNP_PON_WARM_RESET_REASON2(pon) ((pon)->base + 0xB) #define QPNP_PON_OFF_REASON(pon) ((pon)->base + 0xC7) #define QPNP_FAULT_REASON1(pon) ((pon)->base + 0xC8) @@ -242,6 +246,7 @@ static const char * const qpnp_pon_reason[] = { [7] = "Triggered from KPD (power key press)", }; +static struct qpnp_pon *fake_power_pon; #define POFF_REASON_FAULT_OFFSET 16 #define POFF_REASON_S3_RESET_OFFSET 32 static const char * const qpnp_poff_reason[] = { @@ -612,6 +617,79 @@ int qpnp_pon_is_warm_reset(void) } EXPORT_SYMBOL(qpnp_pon_is_warm_reset); +int qpnp_pon_is_ps_hold_reset(void) +{ + struct qpnp_pon *pon = sys_reset_dev; + int rc; + u8 reg = 0; + + if (!pon) + return 0; + + rc = spmi_ext_register_readl(pon->spmi->ctrl, pon->spmi->sid, + QPNP_POFF_REASON1(pon), ®, 1); + if (rc) { + dev_err(&pon->spmi->dev, + "Unable to read addr=%x, rc(%d)\n", + QPNP_POFF_REASON1(pon), rc); + return 0; + } + + /* The bit 1 is 1, means by PS_HOLD/MSM controlled shutdown */ + if (reg & 0x2) + return 1; + + dev_info(&pon->spmi->dev, + "hw_reset reason1 is 0x%x\n", + reg); + + rc = spmi_ext_register_readl(pon->spmi->ctrl, pon->spmi->sid, + QPNP_POFF_REASON2(pon), ®, 1); + + dev_info(&pon->spmi->dev, + "hw_reset reason2 is 0x%x\n", + reg); + return 0; +} +EXPORT_SYMBOL(qpnp_pon_is_ps_hold_reset); + +int qpnp_pon_is_lpk(void) +{ + struct qpnp_pon *pon = sys_reset_dev; + int rc; + u8 reg = 0; + + if (!pon) + return 0; + + rc = spmi_ext_register_readl(pon->spmi->ctrl, pon->spmi->sid, + QPNP_POFF_REASON1(pon), ®, 1); + if (rc) { + dev_err(&pon->spmi->dev, + "Unable to read addr=%x, rc(%d)\n", + QPNP_POFF_REASON1(pon), rc); + return 0; + } + + + if (reg & 0x80) + return 1; + + dev_info(&pon->spmi->dev, + "hw_reset reason1 is 0x%x\n", + reg); + + rc = spmi_ext_register_readl(pon->spmi->ctrl, pon->spmi->sid, + QPNP_POFF_REASON2(pon), ®, 1); + + dev_info(&pon->spmi->dev, + "hw_reset reason2 is 0x%x\n", + reg); + + return 0; +} +EXPORT_SYMBOL(qpnp_pon_is_lpk); + /** * qpnp_pon_wd_config - Disable the wd in a warm reset. * @enable: to enable or disable the PON watch dog @@ -859,6 +937,18 @@ static irqreturn_t qpnp_kpdpwr_irq(int irq, void *_pon) return IRQ_HANDLED; } +void qpnp_kpdpwr_simulate(void) +{ + int rc; + + if (fake_power_pon == NULL) + return; + + rc = qpnp_pon_input_dispatch(fake_power_pon, PON_KPDPWR); + if (rc) + printk(KERN_WARNING "fake_power_pon Unable to send input event\n"); +} + static irqreturn_t qpnp_kpdpwr_bark_irq(int irq, void *_pon) { return IRQ_HANDLED; @@ -1592,6 +1682,7 @@ static int qpnp_pon_config_init(struct qpnp_pon *pon) } rc = qpnp_pon_request_irqs(pon, cfg); + fake_power_pon = pon; if (rc) { dev_err(&pon->spmi->dev, "Unable to request-irq's\n"); goto unreg_input_dev; @@ -1963,6 +2054,30 @@ static int read_gen2_pon_off_reason(struct qpnp_pon *pon, u16 *reason, return 0; } +extern char board_id[HARDWARE_MAX_ITEM_LONGTH]; +void probe_board_and_set(void) +{ + char *boadrid_start, *boardvol_start; + char boardid_info[HARDWARE_MAX_ITEM_LONGTH]; + + boadrid_start = strstr(saved_command_line, "board_id="); + boardvol_start = strstr(saved_command_line, "board_vol="); + memset(boardid_info, 0, HARDWARE_MAX_ITEM_LONGTH); + if (boadrid_start != NULL) { + boardvol_start = strstr(boadrid_start, ":board_vol="); + if (boardvol_start != NULL) { + strncpy(boardid_info, boadrid_start+sizeof("board_id=")-1, boardvol_start-(boadrid_start+sizeof("board_id=")-1)); + } else { + strncpy(boardid_info, boadrid_start+sizeof("board_id=")-1, 9); + } + } else { + sprintf(boardid_info, "boarid not define!"); + } + + strcpy(board_id, boardid_info); +} + + static int qpnp_pon_probe(struct spmi_device *spmi) { struct qpnp_pon *pon; @@ -1977,6 +2092,8 @@ static int qpnp_pon_probe(struct spmi_device *spmi) u8 s3_src_reg; unsigned long flags; + printk("heming add qpnp_pon_probe\n"); + pon = devm_kzalloc(&spmi->dev, sizeof(struct qpnp_pon), GFP_KERNEL); if (!pon) { @@ -2330,6 +2447,10 @@ static int qpnp_pon_probe(struct spmi_device *spmi) "qcom,store-hard-reset-reason"); qpnp_pon_debugfs_init(spmi); + + probe_board_and_set(); + printk("heming add qpnp_pon_probe end\n"); + return 0; } diff --git a/drivers/power/Kconfig b/drivers/power/Kconfig index 7d27cc9334bdb..5037004c23127 100644 --- a/drivers/power/Kconfig +++ b/drivers/power/Kconfig @@ -462,6 +462,63 @@ config SMB358_CHARGER The driver reports the charger status via the power supply framework. A charger status change triggers an IRQ via the device STAT pin. +config CHARGER_BQ2560 + tristate "BQ2560X Battery Charger" + depends on I2C + help + Say Y to include support for SMB358 Battery Charger. + SMB358 is a single path switching mode charger capable of charging + Say Y to include support for BQ2560X Battery Charger. + BQ2560X is a single path switching mode charger capable of charging + the battery with 2Amps of current. + The driver supports charger enable/disable. + The driver reports the charger status via the power supply framework. + A charger status change triggers an IRQ via the device STAT pin. + +config GAUGE_BQ27426 + tristate "BQ27426 Battery Fg" + depends on I2C + help + Say Y to include support for BQ27426 Battery Charger. + BQ27426 is a single path switching mode charger capable of charging + the battery with 2Amps of current. + The driver supports charger enable/disable. + The driver reports the charger status via the power supply framework. + A charger status change triggers an IRQ via the device STAT pin. + + +config C3N_SMB358 + bool "to seperate different projects" + default n + help + Say Y here to enable a function which disabled TEMP protect... + WARNNING:Only SCM could open it. + +config C3B_BQ2560X + bool "to seperate different projects" + default n + help + Say Y here to enable a function which disabled TEMP protect... + WARNNING:Only SCM could open it. + +config A13N_PMI8952 + bool "to seperate different projects" + default n + help + Say Y here to enable A13N_PMI8952 macro + +config D1_ROSY + bool "to seperate different projects" + default n + help + Say Y here to enable D1_ROSY macro + +config BATTERY_CW2015 + tristate "CW2015 battery driver" + depends on I2C + help + Say Y here to enable Test sysfs Interface for CW2015 Drivers. + config SMB23X_CHARGER tristate "SMB23X Battery Charger" depends on I2C @@ -616,6 +673,13 @@ config MSM_BCL_PERIPHERAL_CTL provides routines to configure and monitor the BCL PMIC peripheral. +config DISABLE_TEMP_PROTECT + bool "control of TEMP protect" + default n + help + Say Y here to enable a function which disabled TEMP protect... + WARNNING:Only SCM could open it. + source "drivers/power/reset/Kconfig" endif # POWER_SUPPLY diff --git a/drivers/power/Makefile b/drivers/power/Makefile index babd404fbd148..4b0656851721c 100644 --- a/drivers/power/Makefile +++ b/drivers/power/Makefile @@ -66,6 +66,9 @@ obj-$(CONFIG_SMB135X_CHARGER) += smb135x-charger.o obj-$(CONFIG_SMB1360_CHARGER_FG) += smb1360-charger-fg.o obj-$(CONFIG_SMB138X_CHARGER) += smb138x-charger.o pmic-voter.o obj-$(CONFIG_SMB358_CHARGER) += smb358-charger.o +obj-$(CONFIG_BATTERY_CW2015) += cw2015_battery.o ### add for c3 +obj-$(CONFIG_CHARGER_BQ2560) += bq2560x_charger.o +obj-$(CONFIG_GAUGE_BQ27426) += bq27426_fg.o obj-$(CONFIG_SMB23X_CHARGER) += smb23x-charger.o obj-$(CONFIG_BATTERY_BQ28400) += bq28400_battery.o obj-$(CONFIG_QPNP_BMS) += qpnp-bms.o batterydata-lib.o diff --git a/drivers/power/bq2560x.h b/drivers/power/bq2560x.h new file mode 100644 index 0000000000000..373e4aea274a5 --- /dev/null +++ b/drivers/power/bq2560x.h @@ -0,0 +1,69 @@ +/* + * BQ2560x battery charging driver + * + * Copyright (C) 2013 Texas Instruments + * Copyright (C) 2018 XiaoMi, Inc. + * + * This package is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + + * THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +#ifndef _LINUX_BQ2560X_I2C_H +#define _LINUX_BQ2560X_I2C_H + +#include + + +struct bq2560x_charge_param { + int vlim; + int ilim; + int ichg; + int vreg; +}; + +enum stat_ctrl { + STAT_CTRL_STAT, + STAT_CTRL_ICHG, + STAT_CTRL_INDPM, + STAT_CTRL_DISABLE, +}; + +enum vboost { + BOOSTV_4850 = 4850, + BOOSTV_5000 = 5000, + BOOSTV_5150 = 5150, + BOOSTV_5300 = 5300, +}; + +enum iboost { + BOOSTI_500 = 500, + BOOSTI_1200 = 1200, +}; + +enum vac_ovp { + VAC_OVP_5500 = 5500, + VAC_OVP_6500 = 6500, + VAC_OVP_10500 = 10500, + VAC_OVP_14300 = 14300, +}; + + +struct bq2560x_platform_data { + struct bq2560x_charge_param usb; + struct bq2560x_charge_param ta; + int iprechg; + int iterm; + + enum stat_ctrl statctrl; + enum vboost boostv; + enum iboost boosti; + enum vac_ovp vac_ovp; + +}; + +#endif diff --git a/drivers/power/bq2560x_charger.c b/drivers/power/bq2560x_charger.c new file mode 100644 index 0000000000000..12918b57bfcbc --- /dev/null +++ b/drivers/power/bq2560x_charger.c @@ -0,0 +1,2466 @@ +/* + * BQ2560x battery charging driver + * + * Copyright (C) 2013 Texas Instruments + * Copyright (C) 2018 XiaoMi, Inc. + * + * This package is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + + * THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +#define pr_fmt(fmt) "bq2560x: %s: " fmt, __func__ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "bq2560x_reg.h" +#include "bq2560x.h" + +#if 0 +#undef pr_debug +#define pr_debug pr_err +#undef pr_info +#define pr_info pr_err +#undef dev_dbg +#define dev_dbg dev_err +#else +#undef pr_info +#define pr_info pr_debug +#endif + +enum bq2560x_vbus_type { + BQ2560X_VBUS_NONE = REG08_VBUS_TYPE_NONE, + BQ2560X_VBUS_USB = REG08_VBUS_TYPE_USB, + BQ2560X_VBUS_ADAPTER = REG08_VBUS_TYPE_ADAPTER, + BQ2560X_VBUS_OTG = REG08_VBUS_TYPE_OTG, +}; + +enum bq2560x_part_no { + BQ25600 = 0x00, + BQ25601 = 0x02, +}; + +enum { + USER = BIT(0), + JEITA = BIT(1), + BATT_FC = BIT(2), + BATT_PRES = BIT(3), + SOC = BIT(4), + CURRENT = BIT(5), +}; + +enum wakeup_src { + WAKEUP_SRC_MONITOR = 0, + WAKEUP_SRC_JEITA, + WAKEUP_SRC_MAX, +}; + +#define WAKEUP_SRC_MASK (~(~0 << WAKEUP_SRC_MAX)) +struct bq2560x_wakeup_source { + struct wakeup_source source; + unsigned long enabled_bitmap; + spinlock_t ws_lock; +}; + +enum bq2560x_charge_state { + CHARGE_STATE_IDLE = REG08_CHRG_STAT_IDLE, + CHARGE_STATE_PRECHG = REG08_CHRG_STAT_PRECHG, + CHARGE_STATE_FASTCHG = REG08_CHRG_STAT_FASTCHG, + CHARGE_STATE_CHGDONE = REG08_CHRG_STAT_CHGDONE, +}; + +struct bq2560x_otg_regulator { + struct regulator_desc rdesc; + struct regulator_dev *rdev; +}; + + +struct bq2560x { + struct device *dev; + struct i2c_client *client; + + enum bq2560x_part_no part_no; + int revision; + + int gpio_ce; + + int vbus_type; + + int status; + int call_state; + + struct mutex data_lock; + struct mutex i2c_rw_lock; + struct mutex profile_change_lock; + struct mutex charging_disable_lock; + struct mutex irq_complete; + + struct bq2560x_wakeup_source bq2560x_ws; + + bool irq_waiting; + bool irq_disabled; + bool resume_completed; + + bool batt_present; + bool usb_present; + int batt_capacity; + + bool batt_full; + + bool charge_enabled;/* Register bit status */ + bool otg_enabled; + bool batfet_enabled; + bool in_hiz; + + bool vindpm_triggered; + bool iindpm_triggered; + + bool in_therm_regulation; + bool in_vsys_regulation; + + bool power_good; + bool vbus_good; + + bool topoff_active; + bool acov_triggered; + + /* if use software jeita in case of NTC is connected to gauge */ + bool software_jeita_supported; + bool jeita_active; + + bool batt_hot; + bool batt_cold; + bool batt_warm; + bool batt_cool; + bool batt_cool_5; + + int batt_hot_degc; + int batt_warm_degc; + int batt_cold_cool_degc; + int batt_cool_normal_degc; + int batt_cold_degc; + int hot_temp_hysteresis; + int cold_temp_hysteresis; + + int batt_cold_cool_ma; + int batt_cool_normal_ma; + int batt_warm_ma; + int batt_cool_mv; + int batt_warm_mv; + + + int batt_temp; + + int jeita_ma; + int jeita_mv; + + unsigned int thermal_levels; + unsigned int therm_lvl_sel; + unsigned int *thermal_mitigation; + + int usb_psy_ma; + int charge_state; + int charging_disabled_status; + + int fault_status; + + int skip_writes; + int skip_reads; + + struct bq2560x_platform_data *platform_data; + + struct delayed_work discharge_jeita_work; + struct delayed_work charge_jeita_work; + + struct alarm jeita_alarm; + + struct dentry *debug_root; + + struct bq2560x_otg_regulator otg_vreg; + + struct power_supply *usb_psy; + struct power_supply *bms_psy; + struct power_supply batt_psy; +}; + +static int BatteryTestStatus_enable; +static int bq2560x_battery_capacity; + +#define FG_LOG_INTERVAL 150 +static void bq2560x_dump_status(struct bq2560x *bq); +static int calculate_jeita_poll_interval(struct bq2560x *bq); +static void bq2560x_dump_fg_reg(struct bq2560x *bq) +{ + union power_supply_propval val = {0,}; + static int dump_cnt; + + if (++dump_cnt >= (FG_LOG_INTERVAL / calculate_jeita_poll_interval(bq))) { + dump_cnt = 0; + val.intval = 0; + bq->bms_psy->set_property(bq->bms_psy, + POWER_SUPPLY_PROP_UPDATE_NOW, &val); + bq2560x_dump_status(bq); + } +} + + +static int __bq2560x_read_reg(struct bq2560x *bq, u8 reg, u8 *data) +{ + s32 ret; + + ret = i2c_smbus_read_byte_data(bq->client, reg); + if (ret < 0) { + pr_err("i2c read fail: can't read from reg 0x%02X\n", reg); + return ret; + } + + *data = (u8)ret; + + return 0; +} + +static int __bq2560x_write_reg(struct bq2560x *bq, int reg, u8 val) +{ + s32 ret; + + ret = i2c_smbus_write_byte_data(bq->client, reg, val); + if (ret < 0) { + pr_err("i2c write fail: can't write 0x%02X to reg 0x%02X: %d\n", + val, reg, ret); + return ret; + } + return 0; +} + +static int bq2560x_read_byte(struct bq2560x *bq, u8 *data, u8 reg) +{ + int ret; + + if (bq->skip_reads) { + *data = 0; + return 0; + } + + mutex_lock(&bq->i2c_rw_lock); + ret = __bq2560x_read_reg(bq, reg, data); + mutex_unlock(&bq->i2c_rw_lock); + + return ret; +} + + +static int bq2560x_write_byte(struct bq2560x *bq, u8 reg, u8 data) +{ + int ret; + + if (bq->skip_writes) { + return 0; + } + + mutex_lock(&bq->i2c_rw_lock); + ret = __bq2560x_write_reg(bq, reg, data); + mutex_unlock(&bq->i2c_rw_lock); + + if (ret) { + pr_err("Failed: reg=%02X, ret=%d\n", reg, ret); + } + + return ret; +} + + +static int bq2560x_update_bits(struct bq2560x *bq, u8 reg, + u8 mask, u8 data) +{ + int ret; + u8 tmp; + + + if (bq->skip_reads || bq->skip_writes) + return 0; + + mutex_lock(&bq->i2c_rw_lock); + ret = __bq2560x_read_reg(bq, reg, &tmp); + if (ret) { + pr_err("Failed: reg=%02X, ret=%d\n", reg, ret); + goto out; + } + + tmp &= ~mask; + tmp |= data & mask; + + ret = __bq2560x_write_reg(bq, reg, tmp); + if (ret) { + pr_err("Failed: reg=%02X, ret=%d\n", reg, ret); + } + +out: + mutex_unlock(&bq->i2c_rw_lock); + return ret; +} +static void bq2560x_stay_awake(struct bq2560x_wakeup_source *source, + enum wakeup_src wk_src) +{ + unsigned long flags; + + spin_lock_irqsave(&source->ws_lock, flags); + + if (!__test_and_set_bit(wk_src, &source->enabled_bitmap)) { + __pm_stay_awake(&source->source); + pr_debug("enabled source %s, wakeup_src %d\n", + source->source.name, wk_src); + } + spin_unlock_irqrestore(&source->ws_lock, flags); +} + +static void bq2560x_relax(struct bq2560x_wakeup_source *source, + enum wakeup_src wk_src) +{ + unsigned long flags; + + spin_lock_irqsave(&source->ws_lock, flags); + if (__test_and_clear_bit(wk_src, &source->enabled_bitmap) && + !(source->enabled_bitmap & WAKEUP_SRC_MASK)) { + __pm_relax(&source->source); + pr_debug("disabled source %s\n", source->source.name); + } + spin_unlock_irqrestore(&source->ws_lock, flags); + + pr_debug("relax source %s, wakeup_src %d\n", + source->source.name, wk_src); +} + +static void bq2560x_wakeup_src_init(struct bq2560x *bq) +{ + spin_lock_init(&bq->bq2560x_ws.ws_lock); + wakeup_source_init(&bq->bq2560x_ws.source, "bq2560x"); +} + + + +static int bq2560x_enable_otg(struct bq2560x *bq) +{ + u8 val = REG01_OTG_ENABLE << REG01_OTG_CONFIG_SHIFT; + + return bq2560x_update_bits(bq, BQ2560X_REG_01, + REG01_OTG_CONFIG_MASK, val); + +} + +static int bq2560x_disable_otg(struct bq2560x *bq) +{ + u8 val = REG01_OTG_DISABLE << REG01_OTG_CONFIG_SHIFT; + + return bq2560x_update_bits(bq, BQ2560X_REG_01, + REG01_OTG_CONFIG_MASK, val); + +} + +static int bq2560x_enable_charger(struct bq2560x *bq) +{ + int ret; + u8 val = REG01_CHG_ENABLE << REG01_CHG_CONFIG_SHIFT; + + ret = bq2560x_update_bits(bq, BQ2560X_REG_01, REG01_CHG_CONFIG_MASK, val); + + return ret; +} + +static int bq2560x_disable_charger(struct bq2560x *bq) +{ + int ret; + u8 val = REG01_CHG_DISABLE << REG01_CHG_CONFIG_SHIFT; + + ret = bq2560x_update_bits(bq, BQ2560X_REG_01, REG01_CHG_CONFIG_MASK, val); + return ret; +} + +int bq2560x_set_chargecurrent(struct bq2560x *bq, int curr) +{ + u8 ichg; + + ichg = (curr - REG02_ICHG_BASE)/REG02_ICHG_LSB; + return bq2560x_update_bits(bq, BQ2560X_REG_02, REG02_ICHG_MASK, + ichg << REG02_ICHG_SHIFT); + +} + +int bq2560x_set_term_current(struct bq2560x *bq, int curr) +{ + u8 iterm; + + iterm = (curr - REG03_ITERM_BASE) / REG03_ITERM_LSB; + + return bq2560x_update_bits(bq, BQ2560X_REG_03, REG03_ITERM_MASK, + iterm << REG03_ITERM_SHIFT); +} + + +int bq2560x_set_prechg_current(struct bq2560x *bq, int curr) +{ + u8 iprechg; + + iprechg = (curr - REG03_IPRECHG_BASE) / REG03_IPRECHG_LSB; + + return bq2560x_update_bits(bq, BQ2560X_REG_03, REG03_IPRECHG_MASK, + iprechg << REG03_IPRECHG_SHIFT); +} + +int bq2560x_set_chargevolt(struct bq2560x *bq, int volt) +{ + u8 val; + + val = (volt - REG04_VREG_BASE)/REG04_VREG_LSB; + return bq2560x_update_bits(bq, BQ2560X_REG_04, REG04_VREG_MASK, + val << REG04_VREG_SHIFT); +} + + +int bq2560x_set_input_volt_limit(struct bq2560x *bq, int volt) +{ + u8 val; + val = (volt - REG06_VINDPM_BASE) / REG06_VINDPM_LSB; + return bq2560x_update_bits(bq, BQ2560X_REG_06, REG06_VINDPM_MASK, + val << REG06_VINDPM_SHIFT); +} + +int bq2560x_set_input_current_limit(struct bq2560x *bq, int curr) +{ + u8 val; + + val = (curr - REG00_IINLIM_BASE) / REG00_IINLIM_LSB; + return bq2560x_update_bits(bq, BQ2560X_REG_00, REG00_IINLIM_MASK, + val << REG00_IINLIM_SHIFT); +} + + +int bq2560x_set_watchdog_timer(struct bq2560x *bq, u8 timeout) +{ + u8 temp; + + temp = (u8)(((timeout - REG05_WDT_BASE) / REG05_WDT_LSB) << REG05_WDT_SHIFT); + + return bq2560x_update_bits(bq, BQ2560X_REG_05, REG05_WDT_MASK, temp); +} +EXPORT_SYMBOL_GPL(bq2560x_set_watchdog_timer); + +int bq2560x_disable_watchdog_timer(struct bq2560x *bq) +{ + u8 val = REG05_WDT_DISABLE << REG05_WDT_SHIFT; + + return bq2560x_update_bits(bq, BQ2560X_REG_05, REG05_WDT_MASK, val); +} +EXPORT_SYMBOL_GPL(bq2560x_disable_watchdog_timer); + +int bq2560x_reset_watchdog_timer(struct bq2560x *bq) +{ + u8 val = REG01_WDT_RESET << REG01_WDT_RESET_SHIFT; + + pr_err("bq2560x_reset_watchdog_timer\n"); + return bq2560x_update_bits(bq, BQ2560X_REG_01, REG01_WDT_RESET_MASK, val); +} +EXPORT_SYMBOL_GPL(bq2560x_reset_watchdog_timer); + +int bq2560x_reset_chip(struct bq2560x *bq) +{ + int ret; + u8 val = REG0B_REG_RESET << REG0B_REG_RESET_SHIFT; + + ret = bq2560x_update_bits(bq, BQ2560X_REG_0B, REG0B_REG_RESET_MASK, val); + return ret; +} +EXPORT_SYMBOL_GPL(bq2560x_reset_chip); + +int bq2560x_enter_hiz_mode(struct bq2560x *bq) +{ + u8 val = REG00_HIZ_ENABLE << REG00_ENHIZ_SHIFT; + + return bq2560x_update_bits(bq, BQ2560X_REG_00, REG00_ENHIZ_MASK, val); + +} +EXPORT_SYMBOL_GPL(bq2560x_enter_hiz_mode); + +int bq2560x_exit_hiz_mode(struct bq2560x *bq) +{ + + u8 val = REG00_HIZ_DISABLE << REG00_ENHIZ_SHIFT; + + return bq2560x_update_bits(bq, BQ2560X_REG_00, REG00_ENHIZ_MASK, val); + +} +EXPORT_SYMBOL_GPL(bq2560x_exit_hiz_mode); + +int bq2560x_get_hiz_mode(struct bq2560x *bq, u8 *state) +{ + u8 val; + int ret; + + ret = bq2560x_read_byte(bq, &val, BQ2560X_REG_00); + if (ret) + return ret; + *state = (val & REG00_ENHIZ_MASK) >> REG00_ENHIZ_SHIFT; + + return 0; +} +EXPORT_SYMBOL_GPL(bq2560x_get_hiz_mode); + + +static int bq2560x_enable_term(struct bq2560x *bq, bool enable) +{ + u8 val; + int ret; + + if (enable) + val = REG05_TERM_ENABLE << REG05_EN_TERM_SHIFT; + else + val = REG05_TERM_DISABLE << REG05_EN_TERM_SHIFT; + + ret = bq2560x_update_bits(bq, BQ2560X_REG_05, REG05_EN_TERM_MASK, val); + + return ret; +} +EXPORT_SYMBOL_GPL(bq2560x_enable_term); + +int bq2560x_set_boost_current(struct bq2560x *bq, int curr) +{ + u8 val; + + val = REG02_BOOST_LIM_0P5A; + if (curr == BOOSTI_1200) + val = REG02_BOOST_LIM_1P2A; + + return bq2560x_update_bits(bq, BQ2560X_REG_02, REG02_BOOST_LIM_MASK, + val << REG02_BOOST_LIM_SHIFT); +} + +int bq2560x_set_boost_voltage(struct bq2560x *bq, int volt) +{ + u8 val; + + if (volt == BOOSTV_4850) + val = REG06_BOOSTV_4P85V; + else if (volt == BOOSTV_5150) + val = REG06_BOOSTV_5P15V; + else if (volt == BOOSTV_5300) + val = REG06_BOOSTV_5P3V; + else + val = REG06_BOOSTV_5V; + + return bq2560x_update_bits(bq, BQ2560X_REG_06, REG06_BOOSTV_MASK, + val << REG06_BOOSTV_SHIFT); +} + +static int bq2560x_set_acovp_threshold(struct bq2560x *bq, int volt) +{ + u8 val; + + if (volt == VAC_OVP_14300) + val = REG06_OVP_14P3V; + else if (volt == VAC_OVP_10500) + val = REG06_OVP_10P5V; + else if (volt == VAC_OVP_6500) + val = REG06_OVP_6P5V; + else + val = REG06_OVP_5P5V; + + return bq2560x_update_bits(bq, BQ2560X_REG_06, REG06_OVP_MASK, + val << REG06_OVP_SHIFT); +} + + +static int bq2560x_set_stat_ctrl(struct bq2560x *bq, int ctrl) +{ + u8 val; + + val = ctrl; + + return bq2560x_update_bits(bq, BQ2560X_REG_00, REG00_STAT_CTRL_MASK, + val << REG00_STAT_CTRL_SHIFT); +} + + +static int bq2560x_set_int_mask(struct bq2560x *bq, int mask) +{ + u8 val; + + val = mask; + + return bq2560x_update_bits(bq, BQ2560X_REG_0A, REG0A_INT_MASK_MASK, + val << REG0A_INT_MASK_SHIFT); +} + + +static int bq2560x_enable_batfet(struct bq2560x *bq) +{ + const u8 val = REG07_BATFET_ON << REG07_BATFET_DIS_SHIFT; + + return bq2560x_update_bits(bq, BQ2560X_REG_07, REG07_BATFET_DIS_MASK, + val); +} +EXPORT_SYMBOL_GPL(bq2560x_enable_batfet); + + +static int bq2560x_disable_batfet(struct bq2560x *bq) +{ + const u8 val = REG07_BATFET_OFF << REG07_BATFET_DIS_SHIFT; + + return bq2560x_update_bits(bq, BQ2560X_REG_07, REG07_BATFET_DIS_MASK, + val); +} +EXPORT_SYMBOL_GPL(bq2560x_disable_batfet); + +static int bq2560x_set_batfet_delay(struct bq2560x *bq, uint8_t delay) +{ + u8 val; + + if (delay == 0) + val = REG07_BATFET_DLY_0S; + else + val = REG07_BATFET_DLY_10S; + + val <<= REG07_BATFET_DLY_SHIFT; + + return bq2560x_update_bits(bq, BQ2560X_REG_07, REG07_BATFET_DLY_MASK, + val); +} +EXPORT_SYMBOL_GPL(bq2560x_set_batfet_delay); + +static int bq2560x_charging_disable(struct bq2560x *bq, int reason, + int disable) +{ + + int ret = 0; + int disabled; + + mutex_lock(&bq->charging_disable_lock); + + disabled = bq->charging_disabled_status; + + pr_err("reason=%d requested_disable=%d disabled_status=%d\n", + reason, disable, disabled); + + if (disable == true) + disabled |= reason; + else + disabled &= ~reason; + + if (disabled && bq->charge_enabled) + ret = bq2560x_disable_charger(bq); + else if (!disabled && !bq->charge_enabled) + ret = bq2560x_enable_charger(bq); + + if (ret) { + pr_err("Couldn't disable/enable charging for reason=%d ret=%d\n", + ret, reason); + } else { + bq->charging_disabled_status = disabled; + mutex_lock(&bq->data_lock); + bq->charge_enabled = !disabled; + mutex_unlock(&bq->data_lock); + } + mutex_unlock(&bq->charging_disable_lock); + + return ret; +} + + +static struct power_supply *get_bms_psy(struct bq2560x *bq) +{ + if (bq->bms_psy) + return bq->bms_psy; + bq->bms_psy = power_supply_get_by_name("bms"); + if (!bq->bms_psy) + pr_debug("bms power supply not found\n"); + + return bq->bms_psy; +} + +static int bq2560x_get_batt_property(struct bq2560x *bq, + enum power_supply_property psp, + union power_supply_propval *val) +{ + struct power_supply *bms_psy = get_bms_psy(bq); + + int ret; + + if (!bms_psy) + return -EINVAL; + + ret = bms_psy->get_property(bms_psy, psp, val); + + return ret; +} + +static inline bool is_device_suspended(struct bq2560x *bq); +static int bq2560x_get_prop_charge_type(struct bq2560x *bq) +{ + u8 val = 0; + if (is_device_suspended(bq)) + return POWER_SUPPLY_CHARGE_TYPE_UNKNOWN; + + bq2560x_read_byte(bq, &val, BQ2560X_REG_08); + val &= REG08_CHRG_STAT_MASK; + val >>= REG08_CHRG_STAT_SHIFT; + switch (val) { + case CHARGE_STATE_FASTCHG: + return POWER_SUPPLY_CHARGE_TYPE_FAST; + case CHARGE_STATE_PRECHG: + return POWER_SUPPLY_CHARGE_TYPE_TRICKLE; + case CHARGE_STATE_CHGDONE: + case CHARGE_STATE_IDLE: + return POWER_SUPPLY_CHARGE_TYPE_NONE; + default: + return POWER_SUPPLY_CHARGE_TYPE_UNKNOWN; + } +} + +static int bq2560x_get_prop_batt_present(struct bq2560x *bq) +{ + union power_supply_propval batt_prop = {0,}; + int ret; + + ret = bq2560x_get_batt_property(bq, + POWER_SUPPLY_PROP_PRESENT, &batt_prop); + if (!ret) { + mutex_lock(&bq->data_lock); + bq->batt_present = batt_prop.intval; + mutex_unlock(&bq->data_lock); + } + return ret; + +} + +static int bq2560x_get_prop_batt_capacity(struct bq2560x *bq) +{ + union power_supply_propval batt_prop = {0,}; + int ret; + + ret = bq2560x_get_batt_property(bq, + POWER_SUPPLY_PROP_CAPACITY, &batt_prop); + + if (!ret) + bq->batt_capacity = batt_prop.intval; + + return ret; + +} + + +static int bq2560x_get_prop_batt_full(struct bq2560x *bq) +{ + union power_supply_propval batt_prop = {0,}; + int ret; + + ret = bq2560x_get_batt_property(bq, + POWER_SUPPLY_PROP_STATUS, &batt_prop); + if (!ret) { + mutex_lock(&bq->data_lock); + bq->batt_full = (batt_prop.intval == POWER_SUPPLY_STATUS_FULL); + mutex_unlock(&bq->data_lock); + } + return ret; +} + +static int bq2560x_get_prop_charge_status(struct bq2560x *bq) +{ + union power_supply_propval batt_prop = {0,}; + int ret; + u8 status; + + ret = bq2560x_read_byte(bq, &status, BQ2560X_REG_08); + if (ret) { + return POWER_SUPPLY_STATUS_UNKNOWN; + } + + mutex_lock(&bq->data_lock); + bq->charge_state = (status & REG08_CHRG_STAT_MASK) >> REG08_CHRG_STAT_SHIFT; + mutex_unlock(&bq->data_lock); + + ret = bq2560x_get_batt_property(bq, + POWER_SUPPLY_PROP_STATUS, &batt_prop); + if (!ret && ((batt_prop.intval == POWER_SUPPLY_STATUS_FULL) || + (bq->jeita_active && (bq->charge_state == CHARGE_STATE_CHGDONE)))) + return POWER_SUPPLY_STATUS_FULL; + + + switch (bq->charge_state) { + case CHARGE_STATE_FASTCHG: + case CHARGE_STATE_PRECHG: + return POWER_SUPPLY_STATUS_CHARGING; + case CHARGE_STATE_CHGDONE: + return POWER_SUPPLY_STATUS_NOT_CHARGING; + case CHARGE_STATE_IDLE: + return POWER_SUPPLY_STATUS_DISCHARGING; + default: + return POWER_SUPPLY_STATUS_UNKNOWN; + } + +} + +static int bq2560x_get_prop_health(struct bq2560x *bq) +{ + int ret; + union power_supply_propval batt_prop = {0,}; + + if (bq->software_jeita_supported) { + if (bq->jeita_active) { + if (bq->batt_hot) + ret = POWER_SUPPLY_HEALTH_OVERHEAT; + else if (bq->batt_warm) + ret = POWER_SUPPLY_HEALTH_WARM; + else if (bq->batt_cool) + ret = POWER_SUPPLY_HEALTH_COOL; + else if (bq->batt_cold) + ret = POWER_SUPPLY_HEALTH_COLD; + } else { + ret = POWER_SUPPLY_HEALTH_GOOD; + } + } else {/* get health status from gauge */ + ret = bq2560x_get_batt_property(bq, + POWER_SUPPLY_PROP_HEALTH, &batt_prop); + if (!ret) + ret = batt_prop.intval; + else + ret = POWER_SUPPLY_HEALTH_UNKNOWN; + } + return ret; +} + + +static enum power_supply_property bq2560x_charger_props[] = { + + POWER_SUPPLY_PROP_CHARGE_TYPE, + POWER_SUPPLY_PROP_PRESENT, + POWER_SUPPLY_PROP_CHARGING_ENABLED, + POWER_SUPPLY_PROP_CHARGING_CALL_STATE, + POWER_SUPPLY_PROP_HEALTH, + POWER_SUPPLY_PROP_CAPACITY, + POWER_SUPPLY_PROP_VOLTAGE_NOW, + POWER_SUPPLY_PROP_CURRENT_NOW, + POWER_SUPPLY_PROP_STATUS, + POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN, + + POWER_SUPPLY_PROP_CAPACITY_LEVEL, + POWER_SUPPLY_PROP_TEMP, + + POWER_SUPPLY_PROP_CHARGE_FULL, + + + + POWER_SUPPLY_PROP_SYSTEM_TEMP_LEVEL, + POWER_SUPPLY_PROP_TECHNOLOGY, + POWER_SUPPLY_PROP_RESISTANCE_ID, +}; + +void static runin_work(struct bq2560x *bq, int runin_flag) +{ + int rc; + + if (1 == runin_flag) { + pr_err("bq2560x_enter_hiz_mode, bq->usb_present = %d\n", bq->usb_present); + rc = bq2560x_enter_hiz_mode(bq); + if (rc) { + dev_err(bq->dev, "Couldn't disenable charge rc=%d\n", rc); + } + } else if (2 == runin_flag) { + pr_err("bq2560x_exit_hiz_mode, bq->usb_present = %d\n", bq->usb_present); + rc = bq2560x_exit_hiz_mode(bq); + if (rc) { + dev_err(bq->dev, "Couldn't enable charge rc=%d\n", rc); + } + } +} + + +static int bq2560x_charger_get_property(struct power_supply *psy, + enum power_supply_property psp, + union power_supply_propval *val) +{ + + struct bq2560x *bq = container_of(psy, struct bq2560x, batt_psy); + + switch (psp) { + case POWER_SUPPLY_PROP_CHARGE_TYPE: + val->intval = bq2560x_get_prop_charge_type(bq); + pr_debug("POWER_SUPPLY_PROP_CHARGE_TYPE:%d\n", val->intval); + break; + case POWER_SUPPLY_PROP_CHARGING_CALL_STATE: + val->intval = bq->call_state; + break; + case POWER_SUPPLY_PROP_CHARGING_ENABLED: + val->intval = bq->charge_enabled; + break; + case POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN: + val->intval = 3000; + break; + case POWER_SUPPLY_PROP_STATUS: + val->intval = bq2560x_get_prop_charge_status(bq); + break; + case POWER_SUPPLY_PROP_HEALTH: + val->intval = bq2560x_get_prop_health(bq); + break; + case POWER_SUPPLY_PROP_CAPACITY: + bq2560x_get_batt_property(bq, psp, val); + bq2560x_battery_capacity = val->intval; + + break; + case POWER_SUPPLY_PROP_SYSTEM_TEMP_LEVEL: + val->intval = bq->therm_lvl_sel; + break; + case POWER_SUPPLY_PROP_PRESENT: + case POWER_SUPPLY_PROP_VOLTAGE_NOW: + case POWER_SUPPLY_PROP_CURRENT_NOW: + case POWER_SUPPLY_PROP_CAPACITY_LEVEL: + case POWER_SUPPLY_PROP_TEMP: + case POWER_SUPPLY_PROP_CHARGE_FULL: + case POWER_SUPPLY_PROP_TECHNOLOGY: + case POWER_SUPPLY_PROP_RESISTANCE_ID: + return bq2560x_get_batt_property(bq, psp, val); + default: + return -EINVAL; + + } + + return 0; +} + +static int bq2560x_system_temp_level_set(struct bq2560x *bq, int); +static int bq2560x_update_charging_profile(struct bq2560x *bq); +extern int bq_runin_test; +static int bq2560x_charger_set_property(struct power_supply *psy, + enum power_supply_property prop, + const union power_supply_propval *val) +{ + struct bq2560x *bq = container_of(psy, + struct bq2560x, batt_psy); + + switch (prop) { + case POWER_SUPPLY_PROP_CHARGING_ENABLED: + bq2560x_charging_disable(bq, USER, !val->intval); + + if (bq_runin_test) { + pr_err("bq_runin_test\n"); + runin_work(bq, bq_runin_test); + bq_runin_test = 0; + } + + power_supply_changed(&bq->batt_psy); + power_supply_changed(bq->usb_psy); + pr_info("POWER_SUPPLY_PROP_CHARGING_ENABLED: %s\n", + val->intval ? "enable" : "disable"); + break; + case POWER_SUPPLY_PROP_SYSTEM_TEMP_LEVEL: + bq2560x_system_temp_level_set(bq, val->intval); + break; + + case POWER_SUPPLY_PROP_CHARGING_CALL_STATE: + bq->call_state = val->intval; + bq2560x_update_charging_profile(bq); + break; + + default: + return -EINVAL; + } + + return 0; +} + +static int bq2560x_charger_is_writeable(struct power_supply *psy, + enum power_supply_property prop) +{ + int ret; + + switch (prop) { + case POWER_SUPPLY_PROP_CHARGING_ENABLED: + case POWER_SUPPLY_PROP_CHARGING_CALL_STATE: + case POWER_SUPPLY_PROP_SYSTEM_TEMP_LEVEL: + ret = 1; + break; + default: + ret = 0; + break; + } + return ret; +} + +#define calling_current_max 700 +static int bq2560x_update_charging_profile(struct bq2560x *bq) +{ + int ret; + int chg_ma; + int chg_mv; + int icl; + int therm_ma; + + union power_supply_propval prop = {0,}; + + + if (!bq->usb_present) + return 0; + + ret = bq->usb_psy->get_property(bq->usb_psy, + POWER_SUPPLY_PROP_TYPE, &prop); + + if (ret < 0) { + pr_err("couldn't read USB TYPE property, ret=%d\n", ret); + return ret; + } + + mutex_lock(&bq->profile_change_lock); + if (bq->jeita_active) { + chg_ma = bq->jeita_ma; + chg_mv = bq->jeita_mv; + } else { + if (prop.intval == POWER_SUPPLY_TYPE_USB_DCP || prop.intval == POWER_SUPPLY_TYPE_USB_CDP) { + chg_ma = bq->platform_data->ta.ichg; + chg_mv = bq->platform_data->ta.vreg; + } else { + chg_ma = bq->platform_data->usb.ichg; + chg_mv = bq->platform_data->usb.vreg; + } + } + + icl = bq->usb_psy_ma; + if (bq->therm_lvl_sel > 0 + && bq->therm_lvl_sel < (bq->thermal_levels - 1)) + /* + * consider thermal limit only when it is active and not at + * the highest level + */ + therm_ma = bq->thermal_mitigation[bq->therm_lvl_sel]; + else + therm_ma = bq->usb_psy_ma; + + icl = min(therm_ma, icl); + + + if (bq->call_state == 0) { + if (prop.intval == POWER_SUPPLY_TYPE_USB_DCP || prop.intval == POWER_SUPPLY_TYPE_USB_CDP) { + if (bq->jeita_active) { + icl = bq->jeita_ma; + } else{ + icl = calling_current_max; + } + } else{ + icl = bq->platform_data->usb.ichg; + } + pr_err("bq2560x_set_calling_current to =%d\n", icl); + } + + + pr_info("charge volt = %d, charge curr = %d, input curr limit = %d\n", + chg_mv, chg_ma, icl); + + ret = bq2560x_set_input_current_limit(bq, icl); + if (ret < 0) + pr_err("couldn't set input current limit, ret=%d\n", ret); + + ret = bq2560x_set_input_volt_limit(bq, bq->platform_data->ta.vlim); + if (ret < 0) + pr_err("couldn't set input voltage limit, ret=%d\n", ret); + +#ifdef CONFIG_DISABLE_TEMP_PROTECT + chg_mv = 4100; +#endif + + ret = bq2560x_set_chargevolt(bq, chg_mv); + if (ret < 0) + pr_err("couldn't set charge voltage ret=%d\n", ret); + + ret = bq2560x_set_chargecurrent(bq, chg_ma); + if (ret < 0) + pr_err("couldn't set charge current, ret=%d\n", ret); + + mutex_unlock(&bq->profile_change_lock); + + return 0; +} + + +static int bq2560x_system_temp_level_set(struct bq2560x *bq, + int lvl_sel) +{ + int ret = 0; + int prev_therm_lvl; + + pr_err("%s lvl_sel=%d, bq->therm_lvl_sel = %d\n", __func__, lvl_sel, bq->therm_lvl_sel); + if (BatteryTestStatus_enable) + return 0; + + if (!bq->thermal_mitigation) { + pr_err("Thermal mitigation not supported\n"); + return -EINVAL; + } + + if (lvl_sel < 0) { + pr_err("Unsupported level selected %d\n", lvl_sel); + return -EINVAL; + } + + if (lvl_sel >= bq->thermal_levels) { + pr_err("Unsupported level selected %d forcing %d\n", lvl_sel, + bq->thermal_levels - 1); + lvl_sel = bq->thermal_levels - 1; + } + + if (lvl_sel == bq->therm_lvl_sel) + return 0; + + + prev_therm_lvl = bq->therm_lvl_sel; + bq->therm_lvl_sel = lvl_sel; + + ret = bq2560x_update_charging_profile(bq); + if (ret) + pr_err("Couldn't set USB current ret = %d\n", ret); + + + return ret; +} + +static void bq2560x_factory_mode_control_capacity_work(struct bq2560x *bq) +{ +#ifdef WT_COMPILE_FACTORY_VERSION + int ret; + + pr_err("bq2560x_factory_mode_control_capacity_work\n"); + if (bq2560x_battery_capacity >= 80 && bq2560x_battery_capacity <= 100) { + ret = bq2560x_charging_disable(bq, SOC, true); + if (ret) { + dev_err(bq->dev, "factory_mode_control_capacity disable fail: %d\n", ret); + } + } else if (bq2560x_battery_capacity >= 0 && bq2560x_battery_capacity < 80) { + ret = bq2560x_charging_disable(bq, SOC, false); + if (ret) { + dev_err(bq->dev, "actory_mode_control_capacity enable fail: %d\n", ret); + } + } + +#endif + +} + +static int pc_suspend; +static void bq2560x_external_power_changed(struct power_supply *psy) +{ + struct bq2560x *bq = container_of(psy, struct bq2560x, batt_psy); + + union power_supply_propval prop = {0,}; + int ret, current_limit = 0; + + + ret = bq->usb_psy->get_property(bq->usb_psy, + POWER_SUPPLY_PROP_CURRENT_MAX, &prop); + if (ret < 0) + pr_err("could not read USB current_max property, ret=%d\n", ret); + else + current_limit = prop.intval / 1000; + + pr_info("current_limit = %d\n", current_limit); + + if (bq->usb_psy_ma != current_limit) { + bq->usb_psy_ma = current_limit; + bq2560x_update_charging_profile(bq); + if (current_limit <= 2) { + pc_suspend = 1; + bq2560x_charging_disable(bq, CURRENT, 1); + } else{ + pc_suspend = 0; + bq2560x_charging_disable(bq, CURRENT, 0); + } + } + + ret = bq->usb_psy->get_property(bq->usb_psy, + POWER_SUPPLY_PROP_ONLINE, &prop); + if (ret < 0) + pr_err("could not read USB ONLINE property, ret=%d\n", ret); + else + pr_info("usb online status =%d\n", prop.intval); + + ret = 0; + bq2560x_get_prop_charge_status(bq); + if (bq->usb_present && !pc_suspend/*&& bq->charge_state != CHARGE_STATE_IDLE*//* && bq->charge_enabled *//*!bq->charging_disabled_status*/ + /*&& bq->usb_psy_ma != 0*/) { + if (prop.intval == 0) { + pr_err("set usb online\n"); + ret = power_supply_set_online(bq->usb_psy, true); + } + } else { + if (prop.intval == 1) { + pr_err("set usb offline\n"); + ret = power_supply_set_online(bq->usb_psy, false); + } + } + + if (ret < 0) + pr_info("could not set usb online state, ret=%d\n", ret); +} + + +static int bq2560x_psy_register(struct bq2560x *bq) +{ + int ret; + + bq->batt_psy.name = "battery"; + bq->batt_psy.type = POWER_SUPPLY_TYPE_BATTERY; + bq->batt_psy.properties = bq2560x_charger_props; + bq->batt_psy.num_properties = ARRAY_SIZE(bq2560x_charger_props); + bq->batt_psy.get_property = bq2560x_charger_get_property; + bq->batt_psy.set_property = bq2560x_charger_set_property; + bq->batt_psy.external_power_changed = bq2560x_external_power_changed; + bq->batt_psy.property_is_writeable = bq2560x_charger_is_writeable; + + ret = power_supply_register(bq->dev, &bq->batt_psy); + if (ret < 0) { + pr_err("failed to register batt_psy:%d\n", ret); + return ret; + } + + return 0; +} + +static void bq2560x_psy_unregister(struct bq2560x *bq) +{ + power_supply_unregister(&bq->batt_psy); +} + + +static int bq2560x_otg_regulator_enable(struct regulator_dev *rdev) +{ + int ret; + struct bq2560x *bq = rdev_get_drvdata(rdev); + + ret = bq2560x_enable_otg(bq); + if (ret) { + pr_err("Couldn't enable OTG mode ret=%d\n", ret); + } else { + bq->otg_enabled = true; + pr_info("bq2560x OTG mode Enabled!\n"); + } + + return ret; +} + + +static int bq2560x_otg_regulator_disable(struct regulator_dev *rdev) +{ + int ret; + struct bq2560x *bq = rdev_get_drvdata(rdev); + + ret = bq2560x_disable_otg(bq); + if (ret) { + pr_err("Couldn't disable OTG mode, ret=%d\n", ret); + } else { + bq->otg_enabled = false; + pr_info("bq2560x OTG mode Disabled\n"); + } + + return ret; +} + + +static int bq2560x_otg_regulator_is_enable(struct regulator_dev *rdev) +{ + int ret; + u8 status; + u8 enabled; + struct bq2560x *bq = rdev_get_drvdata(rdev); + + ret = bq2560x_read_byte(bq, &status, BQ2560X_REG_01); + if (ret) + return ret; + enabled = ((status & REG01_OTG_CONFIG_MASK) >> REG01_OTG_CONFIG_SHIFT); + + return (enabled == REG01_OTG_ENABLE) ? 1 : 0; + +} + + +struct regulator_ops bq2560x_otg_reg_ops = { + .enable = bq2560x_otg_regulator_enable, + .disable = bq2560x_otg_regulator_disable, + .is_enabled = bq2560x_otg_regulator_is_enable, +}; + +static int bq2560x_regulator_init(struct bq2560x *bq) +{ + int ret = 0; + struct regulator_init_data *init_data; + struct regulator_config cfg = {}; + + init_data = of_get_regulator_init_data(bq->dev, bq->dev->of_node); + if (!init_data) { + dev_err(bq->dev, "Unable to allocate memory\n"); + return -ENOMEM; + } + + if (init_data->constraints.name) { + bq->otg_vreg.rdesc.owner = THIS_MODULE; + bq->otg_vreg.rdesc.type = REGULATOR_VOLTAGE; + bq->otg_vreg.rdesc.ops = &bq2560x_otg_reg_ops; + bq->otg_vreg.rdesc.name = init_data->constraints.name; + pr_info("regualtor name = %s\n", bq->otg_vreg.rdesc.name); + + cfg.dev = bq->dev; + cfg.init_data = init_data; + cfg.driver_data = bq; + cfg.of_node = bq->dev->of_node; + + init_data->constraints.valid_ops_mask + |= REGULATOR_CHANGE_STATUS; + + bq->otg_vreg.rdev = regulator_register( + &bq->otg_vreg.rdesc, &cfg); + if (IS_ERR(bq->otg_vreg.rdev)) { + ret = PTR_ERR(bq->otg_vreg.rdev); + bq->otg_vreg.rdev = NULL; + if (ret != -EPROBE_DEFER) + dev_err(bq->dev, + "OTG reg failed, rc=%d\n", ret); + } + } + + return ret; +} + + +static int bq2560x_parse_jeita_dt(struct device *dev, struct bq2560x *bq) +{ + struct device_node *np = dev->of_node; + int ret; + + ret = of_property_read_u32(np, "ti, bq2560x, jeita-hot-degc", + &bq->batt_hot_degc); + if (ret) { + pr_err("Failed to read ti,bq2560x,jeita-hot-degc\n"); + return ret; + } + + ret = of_property_read_u32(np, "ti, bq2560x, jeita-warm-degc", + &bq->batt_warm_degc); + if (ret) { + pr_err("Failed to read ti,bq2560x,jeita-warm-degc\n"); + return ret; + } + + ret = of_property_read_u32(np, "ti, bq2560x, jeita-cool-normal-degc", + &bq->batt_cool_normal_degc); + if (ret) { + pr_err("Failed to read ti,bq2560x,jeita-cool-normal-degc\n"); + return ret; + } + + ret = of_property_read_u32(np, "ti, bq2560x, jeita-cold-cool-degc", + &bq->batt_cold_cool_degc); + if (ret) { + pr_err("Failed to read ti,bq2560x,jeita-cold-cool-degc\n"); + return ret; + } + + ret = of_property_read_u32(np, "ti, bq2560x, jeita-cold-degc", + &bq->batt_cold_degc); + if (ret) { + pr_err("Failed to read ti,bq2560x,jeita-cold-degc\n"); + return ret; + } + + ret = of_property_read_u32(np, "ti, bq2560x, jeita-hot-hysteresis", + &bq->hot_temp_hysteresis); + if (ret) { + pr_err("Failed to read ti,bq2560x,jeita-hot-hysteresis\n"); + return ret; + } + + ret = of_property_read_u32(np, "ti, bq2560x, jeita-cold-hysteresis", + &bq->cold_temp_hysteresis); + if (ret) { + pr_err("Failed to read ti,bq2560x,jeita-cold-hysteresis\n"); + return ret; + } + + ret = of_property_read_u32(np, "ti, bq2560x, jeita-cold-cool-ma", + &bq->batt_cold_cool_ma); + if (ret) { + pr_err("Failed to read ti,bq2560x,jeita-cold-cool-ma\n"); + return ret; + } + + ret = of_property_read_u32(np, "ti, bq2560x, jeita-cool-normal-ma", + &bq->batt_cool_normal_ma); + if (ret) { + pr_err("Failed to read ti,bq2560x,jeita-cool-normal-ma\n"); + return ret; + } + + ret = of_property_read_u32(np, "ti, bq2560x, jeita-cool-mv", + &bq->batt_cool_mv); + if (ret) { + pr_err("Failed to read ti,bq2560x,jeita-cool-mv\n"); + return ret; + } + + ret = of_property_read_u32(np, "ti, bq2560x, jeita-warm-ma", + &bq->batt_warm_ma); + if (ret) { + pr_err("Failed to read ti,bq2560x,jeita-warm-ma\n"); + return ret; + } + + ret = of_property_read_u32(np, "ti, bq2560x, jeita-warm-mv", + &bq->batt_warm_mv); + if (ret) { + pr_err("Failed to read ti,bq2560x,jeita-warm-mv\n"); + return ret; + } + + bq->software_jeita_supported = + of_property_read_bool(np, "ti, bq2560x, software-jeita-supported"); + + return 0; +} + + +static struct bq2560x_platform_data *bq2560x_parse_dt(struct device *dev, + struct bq2560x *bq) +{ + int ret; + struct device_node *np = dev->of_node; + struct bq2560x_platform_data *pdata; + + pdata = devm_kzalloc(dev, sizeof(struct bq2560x_platform_data), + GFP_KERNEL); + if (!pdata) { + pr_err("Out of memory\n"); + return NULL; + } + + bq->call_state = 1; + ret = of_property_read_u32(np, "ti,bq2560x,chip-enable-gpio", &bq->gpio_ce); + if (ret) { + pr_err("Failed to read node of ti,bq2560x,chip-enable-gpio\n"); + } + + ret = of_property_read_u32(np, "ti, bq2560x, usb-vlim", &pdata->usb.vlim); + if (ret) { + pr_err("Failed to read node of ti,bq2560x,usb-vlim\n"); + } + + ret = of_property_read_u32(np, "ti, bq2560x, usb-ilim", &pdata->usb.ilim); + if (ret) { + pr_err("Failed to read node of ti,bq2560x,usb-ilim\n"); + } + + ret = of_property_read_u32(np, "ti, bq2560x, usb-vreg", &pdata->usb.vreg); + if (ret) { + pr_err("Failed to read node of ti,bq2560x,usb-vreg\n"); + } + + ret = of_property_read_u32(np, "ti, bq2560x, usb-ichg", &pdata->usb.ichg); + if (ret) { + pr_err("Failed to read node of ti,bq2560x,usb-ichg\n"); + } + + ret = of_property_read_u32(np, "ti, bq2560x, ta-vlim", &pdata->ta.vlim); + if (ret) { + pr_err("Failed to read node of ti,bq2560x,ta-vlim\n"); + } + + ret = of_property_read_u32(np, "ti, bq2560x, ta-ilim", &pdata->ta.ilim); + if (ret) { + pr_err("Failed to read node of ti,bq2560x,ta-ilim\n"); + } + + ret = of_property_read_u32(np, "ti, bq2560x, ta-vreg", &pdata->ta.vreg); + if (ret) { + pr_err("Failed to read node of ti,bq2560x,ta-vreg\n"); + } + + ret = of_property_read_u32(np, "ti, bq2560x, ta-ichg", &pdata->ta.ichg); + if (ret) { + pr_err("Failed to read node of ti,bq2560x,ta-ichg\n"); + } + + ret = of_property_read_u32(np, "ti, bq2560x, stat-pin-ctrl", &pdata->statctrl); + if (ret) { + pr_err("Failed to read node of ti,bq2560x,stat-pin-ctrl\n"); + } + + ret = of_property_read_u32(np, "ti, bq2560x, precharge-current", &pdata->iprechg); + if (ret) { + pr_err("Failed to read node of ti,bq2560x,precharge-current\n"); + } + + ret = of_property_read_u32(np, "ti, bq2560x, termination-current", &pdata->iterm); + if (ret) { + pr_err("Failed to read node of ti,bq2560x,termination-current\n"); + } + + ret = of_property_read_u32(np, "ti, bq2560x, boost-voltage", &pdata->boostv); + if (ret) { + pr_err("Failed to read node of ti,bq2560x,boost-voltage\n"); + } + + ret = of_property_read_u32(np, "ti, bq2560x, boost-current", &pdata->boosti); + if (ret) { + pr_err("Failed to read node of ti,bq2560x,boost-current\n"); + } + + ret = of_property_read_u32(np, "ti, bq2560x, vac-ovp-threshold", &pdata->vac_ovp); + if (ret) { + pr_err("Failed to read node of ti,bq2560x,vac-ovp-threshold\n"); + } + + if (of_find_property(np, "qcom,thermal-mitigation", + &bq->thermal_levels)) { + bq->thermal_mitigation = devm_kzalloc(bq->dev, + bq->thermal_levels, + GFP_KERNEL); + + if (bq->thermal_mitigation == NULL) { + pr_err("thermal mitigation kzalloc() failed.\n"); + + } + + bq->thermal_levels /= sizeof(int); + ret = of_property_read_u32_array(np, + "qcom,thermal-mitigation", + bq->thermal_mitigation, bq->thermal_levels); + if (ret) { + pr_err("Couldn't read thermal limits ret = %d\n", ret); + + } + } + + + return pdata; +} + + +static void bq2560x_init_jeita(struct bq2560x *bq) +{ + + bq->batt_temp = -EINVAL; + + /* set default value in case of dts read fail */ + bq->batt_hot_degc = 600; + bq->batt_warm_degc = 450; + bq->batt_cool_normal_degc = 150; + bq->batt_cold_cool_degc = 50; + bq->batt_cold_degc = 0; + + bq->hot_temp_hysteresis = 50; + bq->cold_temp_hysteresis = 50; + + bq->batt_cold_cool_ma = 300; + bq->batt_cool_normal_ma = 600; + bq->batt_cool_mv = 4100; + bq->batt_warm_ma = 400; + bq->batt_warm_mv = 4100; + + bq->software_jeita_supported = true; + + /* DTS setting will overwrite above default value */ + + bq2560x_parse_jeita_dt(&bq->client->dev, bq); +} + +static int bq2560x_init_device(struct bq2560x *bq) +{ + int ret; + + bq2560x_disable_watchdog_timer(bq); + + bq2560x_enable_batfet(bq); + + ret = bq2560x_set_stat_ctrl(bq, bq->platform_data->statctrl); + if (ret) + pr_err("Failed to set stat pin control mode, ret = %d\n", ret); + + ret = bq2560x_set_prechg_current(bq, bq->platform_data->iprechg); + if (ret) + pr_err("Failed to set prechg current, ret = %d\n", ret); + + ret = bq2560x_set_term_current(bq, bq->platform_data->iterm); + if (ret) + pr_err("Failed to set termination current, ret = %d\n", ret); + + ret = bq2560x_set_boost_voltage(bq, bq->platform_data->boostv); + if (ret) + pr_err("Failed to set boost voltage, ret = %d\n", ret); + + ret = bq2560x_set_boost_current(bq, bq->platform_data->boosti); + if (ret) + pr_err("Failed to set boost current, ret = %d\n", ret); + + ret = bq2560x_set_acovp_threshold(bq, bq->platform_data->vac_ovp); + if (ret) + pr_err("Failed to set acovp threshold, ret = %d\n", ret); + + ret = bq2560x_set_int_mask(bq, REG0A_IINDPM_INT_MASK | REG0A_VINDPM_INT_MASK); + if (ret) + pr_err("Failed to set vindpm and iindpm int mask\n"); + + ret = bq2560x_enable_charger(bq); + if (ret) { + pr_err("Failed to enable charger, ret = %d\n", ret); + } else { + bq->charge_enabled = true; + pr_info("Charger Enabled Successfully!\n"); + } + + return 0; +} + + +static int bq2560x_detect_device(struct bq2560x *bq) +{ + int ret; + u8 data; + + ret = bq2560x_read_byte(bq, &data, BQ2560X_REG_0B); + if (ret == 0) { + bq->part_no = (data & REG0B_PN_MASK) >> REG0B_PN_SHIFT; + bq->revision = (data & REG0B_DEV_REV_MASK) >> REG0B_DEV_REV_SHIFT; + } + + return ret; +} + +static void bq2560x_check_jeita(struct bq2560x *bq) +{ + + int ret; + bool last_hot, last_warm, last_cool, last_cold, last_cool_5; + bool chg_disabled_jeita, jeita_hot_cold; + union power_supply_propval batt_prop = {0,}; + + ret = bq2560x_get_batt_property(bq, + POWER_SUPPLY_PROP_TEMP, &batt_prop); + if (!ret) + bq->batt_temp = batt_prop.intval; + + if (bq->batt_temp == -EINVAL) + return; + + last_hot = bq->batt_hot; + last_warm = bq->batt_warm; + last_cool = bq->batt_cool; + last_cold = bq->batt_cold; + last_cool_5 = bq->batt_cool_5; + + if (bq->batt_temp >= bq->batt_hot_degc) {/* HOT */ + if (!bq->batt_hot) { + bq->batt_hot = true; + bq->batt_warm = false; + bq->batt_cool = false; + bq->batt_cold = false; + bq->jeita_ma = 0; + bq->jeita_mv = 0; + } + } else if (bq->batt_temp >= bq->batt_warm_degc) {/* WARM */ + if (!bq->batt_hot || + (bq->batt_temp < bq->batt_hot_degc - bq->hot_temp_hysteresis)) { + bq->batt_hot = false; + bq->batt_warm = true; + bq->batt_cool = false; + bq->batt_cold = false; + bq->jeita_mv = bq->batt_warm_mv; + bq->jeita_ma = bq->batt_warm_ma; + } + } else if (bq->batt_temp < bq->batt_cold_degc) {/* COLD */ + if (!bq->batt_cold) { + bq->batt_hot = false; + bq->batt_warm = false; + bq->batt_cool = false; + bq->batt_cold = true; + bq->jeita_ma = 0; + bq->jeita_mv = 0; + } + } else if (bq->batt_temp < bq->batt_cold_cool_degc) {/* 0 - 5 COOL */ + if (!bq->batt_cold || + (bq->batt_temp > bq->batt_cold_degc + bq->cold_temp_hysteresis)) { + pr_err("bq2560x_check_jeita status cold -> cool\n"); + bq->batt_hot = false; + bq->batt_warm = false; + bq->batt_cool = true; + bq->batt_cold = false; + bq->batt_cool_5 = true; + bq->jeita_mv = bq->batt_cool_mv; + bq->jeita_ma = bq->batt_cold_cool_ma; + } + } else if (bq->batt_temp < bq->batt_cool_normal_degc) {/* 5 - 15 COOL */ + pr_err("bq2560x_check_jeita status cool -> normal\n"); + bq->batt_hot = false; + bq->batt_warm = false; + bq->batt_cool = true; + bq->batt_cold = false; + bq->batt_cool_5 = false; + bq->jeita_mv = bq->batt_cool_mv; + bq->jeita_ma = bq->batt_cool_normal_ma; + } else {/* NORMAL */ + bq->batt_hot = false; + bq->batt_warm = false; + bq->batt_cool = false; + bq->batt_cold = false; + } + + bq->jeita_active = bq->batt_cool || bq->batt_hot || + bq->batt_cold || bq->batt_warm; + + if ((last_cold != bq->batt_cold) || (last_warm != bq->batt_warm) || + (last_cool_5 != bq->batt_cool_5) || (last_cool != bq->batt_cool) || (last_hot != bq->batt_hot)) { + bq2560x_update_charging_profile(bq); + power_supply_changed(&bq->batt_psy); + power_supply_changed(bq->usb_psy); + } else if (bq->batt_hot || bq->batt_cold) { + power_supply_changed(&bq->batt_psy); + power_supply_changed(bq->usb_psy); + } + + + jeita_hot_cold = bq->jeita_active && (bq->batt_hot || bq->batt_cold); + chg_disabled_jeita = !!(bq->charging_disabled_status & JEITA); + if (jeita_hot_cold ^ chg_disabled_jeita) + bq2560x_charging_disable(bq, JEITA, jeita_hot_cold); + +} + +static void bq2560x_check_batt_pres(struct bq2560x *bq) +{ + int ret = 0; + bool chg_disabled_pres; + + ret = bq2560x_get_prop_batt_present(bq); + if (!ret) { + chg_disabled_pres = !!(bq->charging_disabled_status & BATT_PRES); + if (chg_disabled_pres ^ !bq->batt_present) { + ret = bq2560x_charging_disable(bq, BATT_PRES, !bq->batt_present); + if (ret) { + pr_err("failed to %s charging, ret = %d\n", + bq->batt_present ? "disable" : "enable", + ret); + } + power_supply_changed(&bq->batt_psy); + power_supply_changed(bq->usb_psy); + } + } + +} + +static void bq2560x_check_batt_capacity(struct bq2560x *bq) +{ + int ret = 0; + int last_batt_capacity = bq->batt_capacity; + + ret = bq2560x_get_prop_batt_capacity(bq); + if (!ret) { + if (last_batt_capacity != bq->batt_capacity) { + pr_err("Battery capacity changed, new capacity = %d\n", bq->batt_capacity); + power_supply_changed(&bq->batt_psy); + } + } + +} + +static void bq2560x_check_batt_full(struct bq2560x *bq) +{ + int ret = 0; + bool chg_disabled_fc; + + ret = bq2560x_get_prop_batt_full(bq); + if (!ret) { + chg_disabled_fc = !!(bq->charging_disabled_status & BATT_FC); + if (chg_disabled_fc ^ bq->batt_full) { + ret = bq2560x_charging_disable(bq, BATT_FC, bq->batt_full); + if (ret) { + pr_err("failed to %s charging, ret = %d\n", + bq->batt_full ? "disable" : "enable", + ret); + } + power_supply_changed(&bq->batt_psy); + power_supply_changed(bq->usb_psy); + } + } +} + + +static int calculate_jeita_poll_interval(struct bq2560x *bq) +{ + int interval; + + if (bq->batt_hot || bq->batt_cold) + interval = 10; + else if (bq->batt_warm || bq->batt_cool) + interval = 30; + else + interval = 50; + return interval; +} + +static enum alarmtimer_restart bq2560x_jeita_alarm_cb(struct alarm *alarm, + ktime_t now) +{ + struct bq2560x *bq = container_of(alarm, + struct bq2560x, jeita_alarm); + unsigned long ns; + + bq2560x_stay_awake(&bq->bq2560x_ws, WAKEUP_SRC_JEITA); + schedule_delayed_work(&bq->charge_jeita_work, HZ/2); + + ns = calculate_jeita_poll_interval(bq) * 1000000000LL; + alarm_forward_now(alarm, ns_to_ktime(ns)); + return ALARMTIMER_RESTART; +} + +static void bq2560x_charge_jeita_workfunc(struct work_struct *work) +{ + struct bq2560x *bq = container_of(work, + struct bq2560x, charge_jeita_work.work); + + bq2560x_reset_watchdog_timer(bq); + bq2560x_factory_mode_control_capacity_work(bq); + + bq2560x_check_batt_pres(bq); + bq2560x_check_batt_full(bq); + bq2560x_check_batt_capacity(bq); + + bq2560x_dump_fg_reg(bq); + + bq2560x_check_jeita(bq); + bq2560x_relax(&bq->bq2560x_ws, WAKEUP_SRC_JEITA); +} + + +static void bq2560x_discharge_jeita_workfunc(struct work_struct *work) +{ + struct bq2560x *bq = container_of(work, + struct bq2560x, discharge_jeita_work.work); + + bq2560x_check_batt_pres(bq); + bq2560x_check_batt_full(bq); + bq2560x_check_batt_capacity(bq); + + bq2560x_dump_fg_reg(bq); + + bq2560x_check_jeita(bq); + + schedule_delayed_work(&bq->discharge_jeita_work, + calculate_jeita_poll_interval(bq) * HZ); +} + +static const unsigned char *charge_stat_str[] = { + "Not Charging", + "Precharging", + "Fast Charging", + "Charge Done", +}; + +static void bq2560x_dump_status(struct bq2560x *bq) +{ + u8 status; + u8 addr; + int ret; + u8 val; + union power_supply_propval batt_prop = {0,}; + + ret = bq2560x_get_batt_property(bq, + POWER_SUPPLY_PROP_CURRENT_NOW, &batt_prop); + + if (!ret) + pr_err("FG current:%d\n", batt_prop.intval); + + pr_err("bq Reg[0x00 -0x0B] = "); + for (addr = 0x0; addr <= 0x0B; addr++) { + ret = bq2560x_read_byte(bq, &val, addr); + if (!ret) { + printk("0x%02X, ", val); + } else + pr_err("bq Reg red err"); + } + printk("\n"); + + if (!bq->power_good) + pr_info("Power Poor\n"); + if (!bq->vbus_good) + pr_info("Vbus voltage not good!\n"); + if (bq->vindpm_triggered) + pr_info("VINDPM triggered\n"); + if (bq->iindpm_triggered) + pr_info("IINDPM triggered\n"); + if (bq->acov_triggered) + pr_info("ACOV triggered\n"); + + if (bq->fault_status & REG09_FAULT_WDT_MASK) + pr_info("Watchdog timer expired!\n"); + if (bq->fault_status & REG09_FAULT_BOOST_MASK) + pr_info("Boost fault occurred!\n"); + + status = (bq->fault_status & REG09_FAULT_CHRG_MASK) >> REG09_FAULT_CHRG_SHIFT; + if (status == REG09_FAULT_CHRG_INPUT) + pr_info("input fault!\n"); + else if (status == REG09_FAULT_CHRG_THERMAL) + pr_info("charge thermal shutdown fault!\n"); + else if (status == REG09_FAULT_CHRG_TIMER) + pr_info("charge timer expired fault!\n"); + + if (bq->fault_status & REG09_FAULT_BAT_MASK) + pr_info("battery ovp fault!\n"); + + if (!bq->software_jeita_supported) { + status = (bq->fault_status & REG09_FAULT_NTC_MASK) >> REG09_FAULT_NTC_SHIFT; + + if (status == REG09_FAULT_NTC_WARM) + pr_debug("JEITA ACTIVE: WARM\n"); + else if (status == REG09_FAULT_NTC_COOL) + pr_debug("JEITA ACTIVE: COOL\n"); + else if (status == REG09_FAULT_NTC_COLD) + pr_debug("JEITA ACTIVE: COLD\n"); + else if (status == REG09_FAULT_NTC_HOT) + pr_debug("JEITA ACTIVE: HOT!\n"); + } else if (bq->jeita_active) { + if (bq->batt_hot) + pr_debug("JEITA ACTIVE: HOT\n"); + else if (bq->batt_warm) + pr_debug("JEITA ACTIVE: WARM\n"); + else if (bq->batt_cool) + pr_debug("JEITA ACTIVE: COOL\n"); + else if (bq->batt_cold) + pr_debug("JEITA ACTIVE: COLD\n"); + } + + pr_info("%s\n", charge_stat_str[bq->charge_state]); +} + + +static void bq2560x_update_status(struct bq2560x *bq) +{ + u8 status; + int ret; + + ret = bq2560x_read_byte(bq, &status, BQ2560X_REG_0A); + if (ret) { + pr_err("failed to read reg0a\n"); + return; + } + + mutex_lock(&bq->data_lock); + bq->vbus_good = !!(status & REG0A_VBUS_GD_MASK); + bq->vindpm_triggered = !!(status & REG0A_VINDPM_STAT_MASK); + bq->iindpm_triggered = !!(status & REG0A_IINDPM_STAT_MASK); + bq->topoff_active = !!(status & REG0A_TOPOFF_ACTIVE_MASK); + bq->acov_triggered = !!(status & REG0A_ACOV_STAT_MASK); + mutex_unlock(&bq->data_lock); + + /* Read twice to get present status */ + ret = bq2560x_read_byte(bq, &status, BQ2560X_REG_09); + ret = bq2560x_read_byte(bq, &status, BQ2560X_REG_09); + if (ret) + return; + + mutex_lock(&bq->data_lock); + bq->fault_status = status; + mutex_unlock(&bq->data_lock); + +} + + +static irqreturn_t bq2560x_charger_interrupt(int irq, void *dev_id) +{ + struct bq2560x *bq = dev_id; + + u8 status; + int ret; + + mutex_lock(&bq->irq_complete); + bq->irq_waiting = true; + if (!bq->resume_completed) { + dev_dbg(bq->dev, "IRQ triggered before device-resume\n"); + if (!bq->irq_disabled) { + disable_irq_nosync(irq); + bq->irq_disabled = true; + } + mutex_unlock(&bq->irq_complete); + return IRQ_HANDLED; + } + bq->irq_waiting = false; + ret = bq2560x_read_byte(bq, &status, BQ2560X_REG_08); + if (ret) { + mutex_unlock(&bq->irq_complete); + return IRQ_HANDLED; + } + + mutex_lock(&bq->data_lock); + bq->power_good = !!(status & REG08_PG_STAT_MASK); + mutex_unlock(&bq->data_lock); + + if (!bq->power_good) { + if (bq->usb_present) { + bq->usb_present = false; + power_supply_set_present(bq->usb_psy, bq->usb_present); + } + if (bq->software_jeita_supported) { + alarm_try_to_cancel(&bq->jeita_alarm); + } + + bq2560x_disable_watchdog_timer(bq); + + schedule_delayed_work(&bq->discharge_jeita_work, + calculate_jeita_poll_interval(bq) * HZ); + + pr_err("usb removed, set usb present = %d\n", bq->usb_present); + } else if (bq->power_good && !bq->usb_present) { + bq->usb_present = true; + msleep(10); + power_supply_set_present(bq->usb_psy, bq->usb_present); + + cancel_delayed_work(&bq->discharge_jeita_work); + + if (bq->software_jeita_supported) { + ret = alarm_start_relative(&bq->jeita_alarm, + ns_to_ktime(1000000000LL)); + if (ret) + pr_err("start alarm for JEITA detection failed, ret=%d\n", + ret); + } + + bq2560x_set_watchdog_timer(bq, 160); + + pr_err("usb plugged in, set usb present = %d\n", bq->usb_present); + } + + bq2560x_update_status(bq); + + mutex_unlock(&bq->irq_complete); + + power_supply_changed(&bq->batt_psy); + + return IRQ_HANDLED; +} + + +static void determine_initial_status(struct bq2560x *bq) +{ + int ret; + u8 status = 0; + ret = bq2560x_get_hiz_mode(bq, &status); + if (!ret) + bq->in_hiz = !!status; + + bq2560x_charger_interrupt(bq->client->irq, bq); +} + + +static ssize_t bq2560x_show_registers(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct bq2560x *bq = dev_get_drvdata(dev); + u8 addr; + u8 val; + u8 tmpbuf[200]; + int len; + int idx = 0; + int ret ; + + idx = snprintf(buf, PAGE_SIZE, "%s:\n", "bq2560x Reg"); + for (addr = 0x0; addr <= 0x0B; addr++) { + ret = bq2560x_read_byte(bq, &val, addr); + if (ret == 0) { + len = snprintf(tmpbuf, PAGE_SIZE - idx, "Reg[0x%.2x] = 0x%.2x\n", addr, val); + memcpy(&buf[idx], tmpbuf, len); + idx += len; + } + } + + return idx; +} + +static ssize_t bq2560x_store_registers(struct device *dev, + struct device_attribute *attr, const char *buf, size_t count) +{ + struct bq2560x *bq = dev_get_drvdata(dev); + int ret; + unsigned int reg; + unsigned int val; + + ret = sscanf(buf, "%x %x", ®, &val); + if (ret == 2 && reg < 0x0B) { + bq2560x_write_byte(bq, (unsigned char)reg, (unsigned char)val); + } + + return count; +} + +static ssize_t bq2560x_battery_test_status_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + return sprintf(buf, "%d\n", BatteryTestStatus_enable); +} +static ssize_t bq2560x_battery_test_status_store(struct device *dev, + struct device_attribute *attr, const char *buf, size_t count) +{ + int retval; + unsigned int input; + + if (sscanf(buf, "%u", &input) != 1) + retval = -EINVAL; + else + BatteryTestStatus_enable = input; + + pr_err("BatteryTestStatus_enable = %d\n", BatteryTestStatus_enable); + + return retval; +} +static DEVICE_ATTR(registers, S_IRUGO | S_IWUSR, bq2560x_show_registers, bq2560x_store_registers); +static DEVICE_ATTR(BatteryTestStatus, S_IRUGO | S_IWUSR, bq2560x_battery_test_status_show, bq2560x_battery_test_status_store); + +static struct attribute *bq2560x_attributes[] = { + &dev_attr_registers.attr, + &dev_attr_BatteryTestStatus.attr, + NULL, +}; + +static const struct attribute_group bq2560x_attr_group = { + .attrs = bq2560x_attributes, +}; + + +static int show_registers(struct seq_file *m, void *data) +{ + struct bq2560x *bq = m->private; + u8 addr; + int ret; + u8 val; + + for (addr = 0x0; addr <= 0x0B; addr++) { + ret = bq2560x_read_byte(bq, &val, addr); + if (!ret) + seq_printf(m, "Reg[0x%02X] = 0x%02X\n", addr, val); + } + return 0; +} + + +static int reg_debugfs_open(struct inode *inode, struct file *file) +{ + struct bq2560x *bq = inode->i_private; + + return single_open(file, show_registers, bq); +} + + +static const struct file_operations reg_debugfs_ops = { + .owner = THIS_MODULE, + .open = reg_debugfs_open, + .read = seq_read, + .llseek = seq_lseek, + .release = single_release, +}; + +static void create_debugfs_entry(struct bq2560x *bq) +{ + bq->debug_root = debugfs_create_dir("bq2560x", NULL); + if (!bq->debug_root) + pr_err("Failed to create debug dir\n"); + + if (bq->debug_root) { + + debugfs_create_file("registers", S_IFREG | S_IRUGO, + bq->debug_root, bq, ®_debugfs_ops); + + debugfs_create_x32("charging_disable_status", S_IFREG | S_IRUGO, + bq->debug_root, &(bq->charging_disabled_status)); + + debugfs_create_x32("fault_status", S_IFREG | S_IRUGO, + bq->debug_root, &(bq->fault_status)); + + debugfs_create_x32("vbus_type", S_IFREG | S_IRUGO, + bq->debug_root, &(bq->vbus_type)); + + debugfs_create_x32("charge_state", S_IFREG | S_IRUGO, + bq->debug_root, &(bq->charge_state)); + + debugfs_create_x32("skip_reads", + S_IFREG | S_IWUSR | S_IRUGO, + bq->debug_root, + &(bq->skip_reads)); + debugfs_create_x32("skip_writes", + S_IFREG | S_IWUSR | S_IRUGO, + bq->debug_root, + &(bq->skip_writes)); + } +} + + +static int bq2560x_charger_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ + struct bq2560x *bq; + struct power_supply *usb_psy; + struct power_supply *bms_psy; + + int ret; + + usb_psy = power_supply_get_by_name("usb"); + if (!usb_psy) { + dev_dbg(&client->dev, "USB supply not found, defer probe\n"); + return -EPROBE_DEFER; + } + + bms_psy = power_supply_get_by_name("bms"); + if (!bms_psy) { + dev_dbg(&client->dev, "bms supply not found, defer probe\n"); + return -EPROBE_DEFER; + } + + bq = devm_kzalloc(&client->dev, sizeof(struct bq2560x), GFP_KERNEL); + if (!bq) { + pr_err("Out of memory\n"); + return -ENOMEM; + } + + bq->dev = &client->dev; + bq->usb_psy = usb_psy; + bq->bms_psy = bms_psy; + + bq->client = client; + i2c_set_clientdata(client, bq); + + mutex_init(&bq->i2c_rw_lock); + mutex_init(&bq->data_lock); + mutex_init(&bq->profile_change_lock); + mutex_init(&bq->charging_disable_lock); + mutex_init(&bq->irq_complete); + + bq->resume_completed = true; + bq->irq_waiting = false; + + ret = bq2560x_detect_device(bq); + if (ret) { + pr_err("No bq2560x device found!\n"); + return -ENODEV; + } + + bq2560x_init_jeita(bq); + + if (client->dev.of_node) + bq->platform_data = bq2560x_parse_dt(&client->dev, bq); + else + bq->platform_data = client->dev.platform_data; + + if (!bq->platform_data) { + pr_err("No platform data provided.\n"); + return -EINVAL; + } + + if (gpio_is_valid(bq->gpio_ce)) { + ret = devm_gpio_request(&client->dev, bq->gpio_ce, "bq2560x_ce"); + if (ret) { + pr_err("Failed to request chip enable gpio %d:, err: %d\n", bq->gpio_ce, ret); + return ret; + } + gpio_direction_output(bq->gpio_ce, 0); + } + + ret = bq2560x_init_device(bq); + if (ret) { + pr_err("Failed to init device\n"); + return ret; + } + + ret = bq2560x_psy_register(bq); + if (ret) + return ret; + ret = bq2560x_regulator_init(bq); + if (ret) { + pr_err("Couldn't initialize bq2560x regulator ret=%d\n", ret); + return ret; + } + + INIT_DELAYED_WORK(&bq->charge_jeita_work, bq2560x_charge_jeita_workfunc); + INIT_DELAYED_WORK(&bq->discharge_jeita_work, bq2560x_discharge_jeita_workfunc); + + alarm_init(&bq->jeita_alarm, ALARM_BOOTTIME, bq2560x_jeita_alarm_cb); + + if (client->irq) { + ret = devm_request_threaded_irq(&client->dev, client->irq, NULL, + bq2560x_charger_interrupt, + IRQF_TRIGGER_FALLING | IRQF_ONESHOT, + "bq2560x charger irq", bq); + if (ret < 0) { + pr_err("request irq for irq=%d failed, ret =%d\n", client->irq, ret); + goto err_1; + } + enable_irq_wake(client->irq); + } + + bq2560x_wakeup_src_init(bq); + + device_init_wakeup(bq->dev, 1); + create_debugfs_entry(bq); + + ret = sysfs_create_group(&bq->dev->kobj, &bq2560x_attr_group); + if (ret) { + dev_err(bq->dev, "failed to register sysfs. err: %d\n", ret); + } + + bq2560x_exit_hiz_mode(bq); + determine_initial_status(bq); + + + pr_info("bq2560x probe successfully, Part Num:%d, Revision:%d\n!", + bq->part_no, bq->revision); + + return 0; + +err_1: + bq2560x_psy_unregister(bq); + + return ret; +} + +static inline bool is_device_suspended(struct bq2560x *bq) +{ + return !bq->resume_completed; +} + +static int bq2560x_suspend(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct bq2560x *bq = i2c_get_clientdata(client); + + mutex_lock(&bq->irq_complete); + bq->resume_completed = false; + mutex_unlock(&bq->irq_complete); + + return 0; +} + +static int bq2560x_suspend_noirq(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct bq2560x *bq = i2c_get_clientdata(client); + + if (bq->irq_waiting) { + pr_err_ratelimited("Aborting suspend, an interrupt was detected while suspending\n"); + return -EBUSY; + } + return 0; +} + +static int bq2560x_resume(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct bq2560x *bq = i2c_get_clientdata(client); + + + mutex_lock(&bq->irq_complete); + bq->resume_completed = true; + if (bq->irq_waiting) { + bq->irq_disabled = false; + enable_irq(client->irq); + mutex_unlock(&bq->irq_complete); + bq2560x_charger_interrupt(client->irq, bq); + } else { + mutex_unlock(&bq->irq_complete); + } + + power_supply_changed(&bq->batt_psy); + + return 0; +} +static int bq2560x_charger_remove(struct i2c_client *client) +{ + struct bq2560x *bq = i2c_get_clientdata(client); + + alarm_try_to_cancel(&bq->jeita_alarm); + + cancel_delayed_work_sync(&bq->charge_jeita_work); + cancel_delayed_work_sync(&bq->discharge_jeita_work); + + regulator_unregister(bq->otg_vreg.rdev); + + bq2560x_psy_unregister(bq); + + mutex_destroy(&bq->charging_disable_lock); + mutex_destroy(&bq->profile_change_lock); + mutex_destroy(&bq->data_lock); + mutex_destroy(&bq->i2c_rw_lock); + mutex_destroy(&bq->irq_complete); + + debugfs_remove_recursive(bq->debug_root); + sysfs_remove_group(&bq->dev->kobj, &bq2560x_attr_group); + + + return 0; +} + + +static void bq2560x_charger_shutdown(struct i2c_client *client) +{ + pr_info("Shutdown Successfully\n"); +} + +static struct of_device_id bq2560x_charger_match_table[] = { + {.compatible = "ti,bq25600-charger",}, + {.compatible = "ti,bq25601-charger",}, + {}, +}; +MODULE_DEVICE_TABLE(of, bq2560x_charger_match_table); + +static const struct i2c_device_id bq2560x_charger_id[] = { + { "bq25600-charger", BQ25600 }, + { "bq25601-charger", BQ25601 }, + {}, +}; +MODULE_DEVICE_TABLE(i2c, bq2560x_charger_id); + +static const struct dev_pm_ops bq2560x_pm_ops = { + .resume = bq2560x_resume, + .suspend_noirq = bq2560x_suspend_noirq, + .suspend = bq2560x_suspend, +}; +static struct i2c_driver bq2560x_charger_driver = { + .driver = { + .name = "bq2560x-charger", + .owner = THIS_MODULE, + .of_match_table = bq2560x_charger_match_table, + .pm = &bq2560x_pm_ops, + }, + .id_table = bq2560x_charger_id, + + .probe = bq2560x_charger_probe, + .remove = bq2560x_charger_remove, + .shutdown = bq2560x_charger_shutdown, + +}; + +module_i2c_driver(bq2560x_charger_driver); + +MODULE_DESCRIPTION("TI BQ2560x Charger Driver"); +MODULE_LICENSE("GPL v2"); +MODULE_AUTHOR("Texas Instruments"); diff --git a/drivers/power/bq2560x_reg.h b/drivers/power/bq2560x_reg.h new file mode 100644 index 0000000000000..5f57ced00cff5 --- /dev/null +++ b/drivers/power/bq2560x_reg.h @@ -0,0 +1,307 @@ + +#ifndef __BQ2560X_HEADER__ +#define __BQ2560X_HEADER__ + +/* Register 00h */ +#define BQ2560X_REG_00 0x00 +#define REG00_ENHIZ_MASK 0x80 +#define REG00_ENHIZ_SHIFT 7 +#define REG00_HIZ_ENABLE 1 +#define REG00_HIZ_DISABLE 0 + +#define REG00_STAT_CTRL_MASK 0x60 +#define REG00_STAT_CTRL_SHIFT 5 +#define REG00_STAT_CTRL_STAT 0 +#define REG00_STAT_CTRL_ICHG 1 +#define REG00_STAT_CTRL_IINDPM 2 +#define REG00_STAT_CTRL_DISABLE 3 + +#define REG00_IINLIM_MASK 0x1F +#define REG00_IINLIM_SHIFT 0 +#define REG00_IINLIM_LSB 100 +#define REG00_IINLIM_BASE 100 + +/* Register 01h */ +#define BQ2560X_REG_01 0x01 +#define REG01_PFM_DIS_MASK 0x80 +#define REG01_PFM_DIS_SHIFT 7 +#define REG01_PFM_ENABLE 0 +#define REG01_PFM_DISABLE 1 + +#define REG01_WDT_RESET_MASK 0x40 +#define REG01_WDT_RESET_SHIFT 6 +#define REG01_WDT_RESET 1 + +#define REG01_OTG_CONFIG_MASK 0x20 +#define REG01_OTG_CONFIG_SHIFT 5 +#define REG01_OTG_ENABLE 1 +#define REG01_OTG_DISABLE 0 + +#define REG01_CHG_CONFIG_MASK 0x10 +#define REG01_CHG_CONFIG_SHIFT 4 +#define REG01_CHG_DISABLE 0 +#define REG01_CHG_ENABLE 1 + +#define REG01_SYS_MINV_MASK 0x0E +#define REG01_SYS_MINV_SHIFT 1 + +#define REG01_MIN_VBAT_SEL_MASK 0x01 +#define REG01_MIN_VBAT_SEL_SHIFT 0 +#define REG01_MIN_VBAT_2P8V 0 +#define REG01_MIN_VBAT_2P5V 1 + + +/* Register 0x02*/ +#define BQ2560X_REG_02 0x02 +#define REG02_BOOST_LIM_MASK 0x80 +#define REG02_BOOST_LIM_SHIFT 7 +#define REG02_BOOST_LIM_0P5A 0 +#define REG02_BOOST_LIM_1P2A 1 + +#define REG02_Q1_FULLON_MASK 0x40 +#define REG02_Q1_FULLON_SHIFT 6 +#define REG02_Q1_FULLON_ENABLE 1 +#define REG02_Q1_FULLON_DISABLE 0 + +#define REG02_ICHG_MASK 0x3F +#define REG02_ICHG_SHIFT 0 +#define REG02_ICHG_BASE 0 +#define REG02_ICHG_LSB 60 + +/* Register 0x03*/ +#define BQ2560X_REG_03 0x03 +#define REG03_IPRECHG_MASK 0xF0 +#define REG03_IPRECHG_SHIFT 4 +#define REG03_IPRECHG_BASE 60 +#define REG03_IPRECHG_LSB 60 + +#define REG03_ITERM_MASK 0x0F +#define REG03_ITERM_SHIFT 0 +#define REG03_ITERM_BASE 60 +#define REG03_ITERM_LSB 60 + + +/* Register 0x04*/ +#define BQ2560X_REG_04 0x04 +#define REG04_VREG_MASK 0xF8 +#define REG04_VREG_SHIFT 3 +#define REG04_VREG_BASE 3856 +#define REG04_VREG_LSB 32 + +#define REG04_TOPOFF_TIMER_MASK 0x06 +#define REG04_TOPOFF_TIMER_SHIFT 1 +#define REG04_TOPOFF_TIMER_DISABLE 0 +#define REG04_TOPOFF_TIMER_15M 1 +#define REG04_TOPOFF_TIMER_30M 2 +#define REG04_TOPOFF_TIMER_45M 3 + + +#define REG04_VRECHG_MASK 0x01 +#define REG04_VRECHG_SHIFT 0 +#define REG04_VRECHG_100MV 0 +#define REG04_VRECHG_200MV 1 + +/* Register 0x05*/ +#define BQ2560X_REG_05 0x05 +#define REG05_EN_TERM_MASK 0x80 +#define REG05_EN_TERM_SHIFT 7 +#define REG05_TERM_ENABLE 1 +#define REG05_TERM_DISABLE 0 + +#define REG05_WDT_MASK 0x30 +#define REG05_WDT_SHIFT 4 +#define REG05_WDT_DISABLE 0 +#define REG05_WDT_40S 1 +#define REG05_WDT_80S 2 +#define REG05_WDT_160S 3 +#define REG05_WDT_BASE 0 +#define REG05_WDT_LSB 40 + +#define REG05_EN_TIMER_MASK 0x08 +#define REG05_EN_TIMER_SHIFT 3 +#define REG05_CHG_TIMER_ENABLE 1 +#define REG05_CHG_TIMER_DISABLE 0 + +#define REG05_CHG_TIMER_MASK 0x04 +#define REG05_CHG_TIMER_SHIFT 2 +#define REG05_CHG_TIMER_5HOURS 0 +#define REG05_CHG_TIMER_10HOURS 1 + +#define REG05_TREG_MASK 0x02 +#define REG05_TREG_SHIFT 1 +#define REG05_TREG_90C 0 +#define REG05_TREG_110C 1 + +#define REG05_JEITA_ISET_MASK 0x01 +#define REG05_JEITA_ISET_SHIFT 0 +#define REG05_JEITA_ISET_50PCT 0 +#define REG05_JEITA_ISET_20PCT 1 + + +/* Register 0x06*/ +#define BQ2560X_REG_06 0x06 +#define REG06_OVP_MASK 0xC0 +#define REG06_OVP_SHIFT 0x6 +#define REG06_OVP_5P5V 0 +#define REG06_OVP_6P5V 1 +#define REG06_OVP_10P5V 2 +#define REG06_OVP_14P3V 3 + +#define REG06_BOOSTV_MASK 0x30 +#define REG06_BOOSTV_SHIFT 4 +#define REG06_BOOSTV_4P85V 0 +#define REG06_BOOSTV_5V 1 +#define REG06_BOOSTV_5P15V 2 +#define REG06_BOOSTV_5P3V 3 + +#define REG06_VINDPM_MASK 0x0F +#define REG06_VINDPM_SHIFT 0 +#define REG06_VINDPM_BASE 3900 +#define REG06_VINDPM_LSB 100 + +/* Register 0x07*/ +#define BQ2560X_REG_07 0x07 +#define REG07_FORCE_DPDM_MASK 0x80 +#define REG07_FORCE_DPDM_SHIFT 7 +#define REG07_FORCE_DPDM 1 + +#define REG07_TMR2X_EN_MASK 0x40 +#define REG07_TMR2X_EN_SHIFT 6 +#define REG07_TMR2X_ENABLE 1 +#define REG07_TMR2X_DISABLE 0 + +#define REG07_BATFET_DIS_MASK 0x20 +#define REG07_BATFET_DIS_SHIFT 5 +#define REG07_BATFET_OFF 1 +#define REG07_BATFET_ON 0 + +#define REG07_JEITA_VSET_MASK 0x10 +#define REG07_JEITA_VSET_SHIFT 4 +#define REG07_JEITA_VSET_4100 0 +#define REG07_JEITA_VSET_VREG 1 + +#define REG07_BATFET_DLY_MASK 0x08 +#define REG07_BATFET_DLY_SHIFT 3 +#define REG07_BATFET_DLY_0S 0 +#define REG07_BATFET_DLY_10S 1 + +#define REG07_BATFET_RST_EN_MASK 0x04 +#define REG07_BATFET_RST_EN_SHIFT 2 +#define REG07_BATFET_RST_DISABLE 0 +#define REG07_BATFET_RST_ENABLE 1 + +#define REG07_VDPM_BAT_TRACK_MASK 0x03 +#define REG07_VDPM_BAT_TRACK_SHIFT 0 +#define REG07_VDPM_BAT_TRACK_DISABLE 0 +#define REG07_VDPM_BAT_TRACK_200MV 1 +#define REG07_VDPM_BAT_TRACK_250MV 2 +#define REG07_VDPM_BAT_TRACK_300MV 3 + +/* Register 0x08*/ +#define BQ2560X_REG_08 0x08 +#define REG08_VBUS_STAT_MASK 0xE0 +#define REG08_VBUS_STAT_SHIFT 5 +#define REG08_VBUS_TYPE_NONE 0 +#define REG08_VBUS_TYPE_USB 1 +#define REG08_VBUS_TYPE_ADAPTER 3 +#define REG08_VBUS_TYPE_OTG 7 + +#define REG08_CHRG_STAT_MASK 0x18 +#define REG08_CHRG_STAT_SHIFT 3 +#define REG08_CHRG_STAT_IDLE 0 +#define REG08_CHRG_STAT_PRECHG 1 +#define REG08_CHRG_STAT_FASTCHG 2 +#define REG08_CHRG_STAT_CHGDONE 3 + +#define REG08_PG_STAT_MASK 0x04 +#define REG08_PG_STAT_SHIFT 2 +#define REG08_POWER_GOOD 1 + +#define REG08_THERM_STAT_MASK 0x02 +#define REG08_THERM_STAT_SHIFT 1 + +#define REG08_VSYS_STAT_MASK 0x01 +#define REG08_VSYS_STAT_SHIFT 0 +#define REG08_IN_VSYS_STAT 1 + + +/* Register 0x09*/ +#define BQ2560X_REG_09 0x09 +#define REG09_FAULT_WDT_MASK 0x80 +#define REG09_FAULT_WDT_SHIFT 7 +#define REG09_FAULT_WDT 1 + +#define REG09_FAULT_BOOST_MASK 0x40 +#define REG09_FAULT_BOOST_SHIFT 6 + +#define REG09_FAULT_CHRG_MASK 0x30 +#define REG09_FAULT_CHRG_SHIFT 4 +#define REG09_FAULT_CHRG_NORMAL 0 +#define REG09_FAULT_CHRG_INPUT 1 +#define REG09_FAULT_CHRG_THERMAL 2 +#define REG09_FAULT_CHRG_TIMER 3 + +#define REG09_FAULT_BAT_MASK 0x08 +#define REG09_FAULT_BAT_SHIFT 3 +#define REG09_FAULT_BAT_OVP 1 + +#define REG09_FAULT_NTC_MASK 0x07 +#define REG09_FAULT_NTC_SHIFT 0 +#define REG09_FAULT_NTC_NORMAL 0 +#define REG09_FAULT_NTC_WARM 2 +#define REG09_FAULT_NTC_COOL 3 +#define REG09_FAULT_NTC_COLD 5 +#define REG09_FAULT_NTC_HOT 6 + + +/* Register 0x0A */ +#define BQ2560X_REG_0A 0x0A +#define REG0A_VBUS_GD_MASK 0x80 +#define REG0A_VBUS_GD_SHIFT 7 +#define REG0A_VBUS_GD 1 + +#define REG0A_VINDPM_STAT_MASK 0x40 +#define REG0A_VINDPM_STAT_SHIFT 6 +#define REG0A_VINDPM_ACTIVE 1 + +#define REG0A_IINDPM_STAT_MASK 0x20 +#define REG0A_IINDPM_STAT_SHIFT 5 +#define REG0A_IINDPM_ACTIVE 1 + +#define REG0A_TOPOFF_ACTIVE_MASK 0x08 +#define REG0A_TOPOFF_ACTIVE_SHIFT 3 +#define REG0A_TOPOFF_ACTIVE 1 + +#define REG0A_ACOV_STAT_MASK 0x04 +#define REG0A_ACOV_STAT_SHIFT 2 +#define REG0A_ACOV_ACTIVE 1 + +#define REG0A_VINDPM_INT_MASK 0x02 +#define REG0A_VINDPM_INT_SHIFT 1 +#define REG0A_VINDPM_INT_ENABLE 0 +#define REG0A_VINDPM_INT_DISABLE 1 + +#define REG0A_IINDPM_INT_MASK 0x01 +#define REG0A_IINDPM_INT_SHIFT 0 +#define REG0A_IINDPM_INT_ENABLE 0 +#define REG0A_IINDPM_INT_DISABLE 1 + +#define REG0A_INT_MASK_MASK 0x03 +#define REG0A_INT_MASK_SHIFT 0 + + +#define BQ2560X_REG_0B 0x0B +#define REG0B_REG_RESET_MASK 0x80 +#define REG0B_REG_RESET_SHIFT 7 +#define REG0B_REG_RESET 1 + +#define REG0B_PN_MASK 0x78 +#define REG0B_PN_SHIFT 3 + +#define REG0B_DEV_REV_MASK 0x03 +#define REG0B_DEV_REV_SHIFT 0 + + +#endif + + diff --git a/drivers/power/bq27426_fg.c b/drivers/power/bq27426_fg.c new file mode 100644 index 0000000000000..73b1e8b50f4e8 --- /dev/null +++ b/drivers/power/bq27426_fg.c @@ -0,0 +1,2290 @@ +/* + * bqGauge battery driver + * + * Copyright (C) 2008 Rodolfo Giometti + * Copyright (C) 2008 Eurotech S.p.A. + * Copyright (C) 2010-2011 Lars-Peter Clausen + * Copyright (C) 2011 Pali Rohár + * Copyright (C) 2018 XiaoMi, Inc. + * + * Based on a previous work by Copyright (C) 2008 Texas Instruments, Inc. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This package is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +/* + * Datasheets: + */ +#define pr_fmt(fmt) "bq27426- %s: " fmt, __func__ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "bqfs_cmd_type.h" + +#include +#include "bq27426_gmfs_desay.h" +#include "bq27426_gmfs_scud.h" +#include "bq27426_gmfs_sunwoda.h" +#include "bq27426_gmfs_atl.h" +#include "bq27426_gmfs_default.h" + + +#undef pr_info +#define pr_info pr_debug + +#define MONITOR_ALARM_CHECK_NS 5000000000 +#define INVALID_REG_ADDR 0xFF +#define BQFS_UPDATE_KEY 0x8F91 + + +#define FG_FLAGS_OT BIT(15) +#define FG_FLAGS_UT BIT(14) +#define FG_FLAGS_FC BIT(9) +#define FG_FLAGS_CHG BIT(8) +#define FG_FLAGS_OCVTAKEN BIT(7) +#define FG_FLAGS_ITPOR BIT(5) +#define FG_FLAGS_CFGUPMODE BIT(4) +#define FG_FLAGS_BAT_DET BIT(3) +#define FG_FLAGS_SOC1 BIT(2) +#define FG_FLAGS_SOCF BIT(1) +#define FG_FLAGS_DSG BIT(0) + + +enum bq_fg_reg_idx { + BQ_FG_REG_CTRL = 0, + BQ_FG_REG_TEMP, /* Battery Temperature */ + BQ_FG_REG_VOLT, /* Battery Voltage */ + BQ_FG_REG_AI, /* Average Current */ + BQ_FG_REG_FLAGS, /* Flags */ + BQ_FG_REG_TTE, /* Time to Empty */ + BQ_FG_REG_TTF, /* Time to Full */ + BQ_FG_REG_FCC, /* Full Charge Capacity */ + BQ_FG_REG_RM, /* Remaining Capacity */ + BQ_FG_REG_CC, /* Cycle Count */ + BQ_FG_REG_SOC, /* Relative State of Charge */ + BQ_FG_REG_SOH, /* State of Health */ + BQ_FG_REG_DC, /* Design Capacity */ + NUM_REGS, +}; + +enum bq_fg_subcmd { + FG_SUBCMD_CTRL_STATUS = 0x0000, + FG_SUBCMD_PART_NUM = 0x0001, + FG_SUBCMD_FW_VER = 0x0002, + FG_SUBCMD_DM_CODE = 0x0004, + FG_SUBCMD_CHEM_ID = 0x0008, + FG_SUBCMD_BAT_INSERT = 0x000C, + FG_SUBCMD_BAT_REMOVE = 0x000D, + FG_SUBCMD_SET_CFGUPDATE = 0x0013, + FG_SUBCMD_SEAL = 0x0020, + FG_SUBCMD_PULSE_SOC_INT = 0x0023, + FG_SUBCMD_CHEM_A = 0x0030, + FG_SUBCMD_CHEM_B = 0x0031, + FG_SUBCMD_CHEM_C = 0x0032, + FG_SUBCMD_SOFT_RESET = 0x0042, +}; + + +enum { + SEAL_STATE_FA, + SEAL_STATE_UNSEALED, + SEAL_STATE_SEALED, +}; + + +enum bq_fg_device { + BQ27X00, + BQ27426, +}; + +enum { + UPDATE_REASON_FG_RESET = 1, + UPDATE_REASON_NEW_VERSION, + UPDATE_REASON_FORCED, +}; + +struct batt_chem_id { + u16 id; + u16 cmd; +}; + +static struct batt_chem_id batt_chem_id_arr[] = { + {3230, FG_SUBCMD_CHEM_A}, + {1202, FG_SUBCMD_CHEM_B}, + {3142, FG_SUBCMD_CHEM_C}, +}; + +struct bq_batt_ids { + int kohm; + const char *battery_type; +}; + +static struct bq_batt_ids bq_batt_ids_attr[] = { + {30, "wingtech-Desay-4v4-3000mah"}, + {68, "wingtech-Scud-4v4-3000mah"}, + {330, "wingtech-Sunwoda-4v4-3000mah"}, + {82, "wingtech-Atl-4v4-3000mah"}, +}; + + +struct fg_batt_profile { + const bqfs_cmd_t *bqfs_image; + u32 array_size; + u8 version; +}; + +static const struct fg_batt_profile bqfs_image[] = { + { bqfs_default, ARRAY_SIZE(bqfs_default), 1}, + { bqfs_desay, ARRAY_SIZE(bqfs_desay), 33}, + { bqfs_scud, ARRAY_SIZE(bqfs_scud), 98}, + { bqfs_sunwoda, ARRAY_SIZE(bqfs_sunwoda), 61}, + { bqfs_atl, ARRAY_SIZE(bqfs_atl), 98}, +}; + +const unsigned char *device2str[] = { + "bq27x00", + "bq27426", +}; + +const unsigned char *update_reason_str[] = { + "Reset", + "New Version", + "Force", +}; + +static u8 bq27426_regs[NUM_REGS] = { + 0x00, /* CONTROL */ + 0x02, /* TEMP */ + 0x04, /* VOLT */ + 0x10, /* AVG CURRENT */ + 0x06, /* FLAGS */ + 0xFF, /* Time to empty */ + 0xFF, /* Time to full */ + 0x0E, /* Full charge capacity */ + 0x0C, /* Remaining Capacity */ + 0xFF, /* CycleCount */ + 0x1C, /* State of Charge */ + 0x20, /* State of Health */ + 0xFF, /* Design Capacity */ +}; + +struct bq_fg_chip; + +enum { + BATTERY_PROFILE_A, + BATTERY_PROFILE_B, + BATTERY_PROFILE_MAX, +}; + +struct bq_fg_chip { + struct device *dev; + struct i2c_client *client; + + + struct mutex i2c_rw_lock; + struct mutex data_lock; + struct mutex update_lock; + struct mutex irq_complete; + + struct work_struct fg_soc_work; + struct alarm fg_soc_alarm; + int usb_present; + + bool irq_waiting; + bool irq_disabled; + bool resume_completed; + + int force_update; + int fw_ver; + int df_ver; + + u8 chip; + u8 regs[NUM_REGS]; + + int batt_id; + + /* status tracking */ + + bool batt_present; + bool batt_fc; + bool batt_ot; + bool batt_ut; + bool batt_soc1; + bool batt_socf; + bool batt_dsg; + bool allow_chg; + bool cfg_update_mode; + bool itpor; + + int seal_state; /* 0 - Full Access, 1 - Unsealed, 2 - Sealed */ + int batt_tte; + int batt_soc; + int batt_fcc; /* Full charge capacity */ + int batt_rm; /* Remaining capacity */ + int batt_dc; /* Design Capacity */ + int batt_volt; + int batt_temp; + int batt_curr; + + int batt_cyclecnt; /* cycle count */ + + + struct work_struct update_work; + + unsigned long last_update; + + /* debug */ + int skip_reads; + int skip_writes; + + int fake_soc; + int fake_temp; + + struct dentry *debug_root; + + struct power_supply *batt_psy; + struct power_supply fg_psy; + struct power_supply *usb_psy; + + struct qpnp_vadc_chip *vadc_dev; + struct regulator *vdd; + struct regulator *vcc_i2c; + u32 connected_rid; + const char *battery_type; +}; + + + +static int __fg_read_byte(struct i2c_client *client, u8 reg, u8 *val) +{ + s32 ret; + + ret = i2c_smbus_read_byte_data(client, reg); + if (ret < 0) { + pr_err("i2c read byte fail: can't read from reg 0x%02X\n", reg); + return ret; + } + + *val = (u8)ret; + + return 0; +} + +static int __fg_write_byte(struct i2c_client *client, u8 reg, u8 val) +{ + s32 ret; + + ret = i2c_smbus_write_byte_data(client, reg, val); + if (ret < 0) { + pr_err("i2c write byte fail: can't write 0x%02X to reg 0x%02X\n", + val, reg); + return ret; + } + + return 0; +} + + +static int __fg_read_word(struct i2c_client *client, u8 reg, u16 *val) +{ + s32 ret; + + ret = i2c_smbus_read_word_data(client, reg); + if (ret < 0) { + pr_err("i2c read word fail: can't read from reg 0x%02X\n", reg); + return ret; + } + + *val = (u16)ret; + + return 0; +} + + +static int __fg_write_word(struct i2c_client *client, u8 reg, u16 val) +{ + s32 ret; + + ret = i2c_smbus_write_word_data(client, reg, val); + if (ret < 0) { + pr_err("i2c write word fail: can't write 0x%02X to reg 0x%02X\n", + val, reg); + return ret; + } + + return 0; +} + +static int __fg_read_block(struct i2c_client *client, u8 reg, u8 *buf, u8 len) +{ + int ret; + struct i2c_msg msg[2]; + int i; + + msg[0].addr = client->addr; + msg[0].flags = 0; + msg[0].buf = ® + msg[0].len = 1; + + msg[1].addr = client->addr; + msg[1].flags = I2C_M_RD; + msg[1].buf = buf; + msg[1].len = len; + + for (i = 0; i < 3; i++) { + ret = i2c_transfer(client->adapter, msg, ARRAY_SIZE(msg)); + if (ret >= 0) + return ret; + else + msleep(5); + } + return ret; +} + +static int __fg_write_block(struct i2c_client *client, u8 reg, u8 *buf, u8 len) +{ + int ret; + struct i2c_msg msg; + u8 data[64]; + int i = 0; + + data[0] = reg; + memcpy(&data[1], buf, len); + + msg.addr = client->addr; + msg.flags = 0; + msg.buf = data; + msg.len = len + 1; + + for (i = 0; i < 3; i++) { + ret = i2c_transfer(client->adapter, &msg, 1); + if (ret >= 0) + return ret; + else + msleep(5); + } + return ret; +} + + +static int fg_read_byte(struct bq_fg_chip *bq, u8 reg, u8 *val) +{ + int ret; + + if (bq->skip_reads) { + *val = 0; + return 0; + } + + mutex_lock(&bq->i2c_rw_lock); + ret = __fg_read_byte(bq->client, reg, val); + mutex_unlock(&bq->i2c_rw_lock); + + return ret; +} + +static int fg_write_byte(struct bq_fg_chip *bq, u8 reg, u8 val) +{ + int ret; + + if (bq->skip_writes) + return 0; + + mutex_lock(&bq->i2c_rw_lock); + ret = __fg_write_byte(bq->client, reg, val); + mutex_unlock(&bq->i2c_rw_lock); + + return ret; +} + +static int fg_read_word(struct bq_fg_chip *bq, u8 reg, u16 *val) +{ + int ret; + + if (bq->skip_reads) { + *val = 0; + return 0; + } + + mutex_lock(&bq->i2c_rw_lock); + ret = __fg_read_word(bq->client, reg, val); + mutex_unlock(&bq->i2c_rw_lock); + + return ret; +} + +static int fg_write_word(struct bq_fg_chip *bq, u8 reg, u16 val) +{ + int ret; + + if (bq->skip_writes) + return 0; + + + mutex_lock(&bq->i2c_rw_lock); + ret = __fg_write_word(bq->client, reg, val); + mutex_unlock(&bq->i2c_rw_lock); + + return ret; +} + +static int fg_read_block(struct bq_fg_chip *bq, u8 reg, u8 *buf, u8 len) +{ + int ret; + + if (bq->skip_reads) + return 0; + mutex_lock(&bq->i2c_rw_lock); + ret = __fg_read_block(bq->client, reg, buf, len); + mutex_unlock(&bq->i2c_rw_lock); + + return ret; + +} + +static int fg_write_block(struct bq_fg_chip *bq, u8 reg, u8 *data, u8 len) +{ + int ret; + + if (bq->skip_writes) + return 0; + + mutex_lock(&bq->i2c_rw_lock); + ret = __fg_write_block(bq->client, reg, data, len); + mutex_unlock(&bq->i2c_rw_lock); + + return ret; +} + +#define CTRL_REG 0x00 + +#define FG_DFT_UNSEAL_KEY1 0x80008000 +#define FG_DFT_UNSEAL_KEY2 0x36724614 + +#define FG_DFT_UNSEAL_FA_KEY 0xFFFFFFFF + +static u8 checksum(u8 *data, u8 len) +{ + u8 i; + u16 sum = 0; + + for (i = 0; i < len; i++) + sum += data[i]; + + sum &= 0xFF; + + return (0xFF - sum); +} + +#if 1 +static void fg_print_buf(const char *msg, u8 *buf, u8 len) +{ + int i; + int idx = 0; + int num; + u8 strbuf[128]; + + pr_err("%s buf: ", msg); + for (i = 0; i < len; i++) { + num = sprintf(&strbuf[idx], "%02X ", buf[i]); + idx += num; + } + pr_err("%s\n", strbuf); +} +#else +static void fg_print_buf(const char *msg, u8 *buf, u8 len) +{} +#endif + + +#define TIMEOUT_INIT_COMPLETED 100 +static int fg_check_init_completed(struct bq_fg_chip *bq) +{ + int ret; + int i = 0; + u16 status; + + ret = fg_write_word(bq, bq->regs[BQ_FG_REG_CTRL], FG_SUBCMD_CTRL_STATUS); + if (ret < 0) { + pr_err("Failed to write control status cmd, ret = %d\n", ret); + return ret; + } + + msleep(5); + + while (i++ < TIMEOUT_INIT_COMPLETED) { + ret = fg_read_word(bq, bq->regs[BQ_FG_REG_CTRL], &status); + if (ret >= 0 && (status & 0x0080)) + return 0; + msleep(100); + } + pr_err("wait for FG INITCOMP timeout\n"); + return ret; +} + +static int fg_get_seal_state(struct bq_fg_chip *bq) +{ + int ret; + u16 status; + + ret = fg_write_word(bq, bq->regs[BQ_FG_REG_CTRL], FG_SUBCMD_CTRL_STATUS); + if (ret < 0) { + pr_err("Failed to write control status cmd, ret = %d\n", ret); + return ret; + } + + msleep(5); + + ret = fg_read_word(bq, bq->regs[BQ_FG_REG_CTRL], &status); + if (ret < 0) { + pr_err("Failed to read control status, ret = %d\n", ret); + return ret; + } + pr_err("control_status = 0x%04X", status); + if (status & 0x2000) + bq->seal_state = SEAL_STATE_SEALED; + else + bq->seal_state = SEAL_STATE_UNSEALED; + + return 0; +} + +static int fg_unseal(struct bq_fg_chip *bq, u32 key) +{ + int ret; + int retry = 0; + + ret = fg_get_seal_state(bq); + if (ret) + return ret; + if (bq->seal_state == SEAL_STATE_UNSEALED) + return 0; + + pr_info(":key - 0x%08X\n", key); + + ret = fg_write_word(bq, bq->regs[BQ_FG_REG_CTRL], key & 0xFFFF); + if (ret < 0) { + pr_err("unable to write unseal key step 1, ret = %d\n", ret); + return ret; + } + + msleep(5); + + ret = fg_write_word(bq, bq->regs[BQ_FG_REG_CTRL], (key >> 16) & 0xFFFF); + if (ret < 0) { + pr_err("unable to write unseal key step 2, ret = %d\n", ret); + return ret; + } + + msleep(5); + + while (retry++ < 1000) { + fg_get_seal_state(bq); + if (bq->seal_state == SEAL_STATE_UNSEALED) { + return 0; + } + msleep(100); + } + + return -EPERM; +} + + +static int fg_unseal_fa(struct bq_fg_chip *bq, u32 key) +{ + int ret; + int retry = 0; + + pr_info(":key - %d\n", key); + + ret = fg_write_word(bq, bq->regs[BQ_FG_REG_CTRL], key & 0xFFFF); + if (ret < 0) { + pr_err("unable to write unseal key step 1, ret = %d\n", ret); + return ret; + } + + msleep(5); + + ret = fg_write_word(bq, bq->regs[BQ_FG_REG_CTRL], (key >> 16) & 0xFFFF); + if (ret < 0) { + pr_err("unable to write unseal key step 2, ret = %d\n", ret); + return ret; + } + + msleep(5); + + while (retry++ < 1000) { + fg_get_seal_state(bq); + if (bq->seal_state == SEAL_STATE_FA) { + return 0; + } + msleep(10); + } + + return -1; +} +EXPORT_SYMBOL_GPL(fg_unseal_fa); + +static int fg_seal(struct bq_fg_chip *bq) +{ + int ret; + int retry = 0; + + fg_get_seal_state(bq); + + if (bq->seal_state == SEAL_STATE_SEALED) + return 0; + msleep(5); + ret = fg_write_word(bq, bq->regs[BQ_FG_REG_CTRL], FG_SUBCMD_SEAL); + + if (ret < 0) { + pr_err("Failed to send seal command\n"); + return ret; + } + + while (retry++ < 1000) { + fg_get_seal_state(bq); + if (bq->seal_state == SEAL_STATE_SEALED) + return 0; + msleep(200); + } + + return -1; +} + + + +static int fg_check_cfg_update_mode(struct bq_fg_chip *bq) +{ + int ret; + u16 flags; + + ret = fg_read_word(bq, bq->regs[BQ_FG_REG_FLAGS], &flags); + if (ret < 0) { + return ret; + } + + bq->cfg_update_mode = !!(flags & FG_FLAGS_CFGUPMODE); + + return 0; + +} + +static int fg_check_itpor(struct bq_fg_chip *bq) +{ + int ret; + u16 flags; + + ret = fg_read_word(bq, bq->regs[BQ_FG_REG_FLAGS], &flags); + if (ret < 0) { + return ret; + } + + bq->itpor = !!(flags & FG_FLAGS_ITPOR); + + return 0; +} + + +static int fg_read_dm_version(struct bq_fg_chip *bq, u8 *ver) +{ + int ret; + u16 dm_code = 0; + + ret = fg_write_word(bq, bq->regs[BQ_FG_REG_CTRL], FG_SUBCMD_DM_CODE); + if (ret < 0) { + pr_err("Failed to write control status cmd, ret = %d\n", ret); + return ret; + } + + msleep(5); + + ret = fg_read_word(bq, bq->regs[BQ_FG_REG_CTRL], &dm_code); + if (!ret) + *ver = dm_code & 0xFF; + return ret; +} + +#define CFG_UPDATE_POLLING_RETRY_LIMIT 50 +static int fg_dm_pre_access(struct bq_fg_chip *bq) +{ + int ret; + int i = 0; + + ret = fg_check_init_completed(bq); + if (ret < 0) + return ret; + ret = fg_unseal(bq, FG_DFT_UNSEAL_KEY1); + if (ret < 0) + return ret; + + ret = fg_write_word(bq, bq->regs[BQ_FG_REG_CTRL], FG_SUBCMD_SET_CFGUPDATE); + if (ret < 0) + return ret; + + msleep(10); + + while(i++ < CFG_UPDATE_POLLING_RETRY_LIMIT) { + ret = fg_check_cfg_update_mode(bq); + if (!ret && bq->cfg_update_mode) + return 0; + msleep(400); + } + + pr_err("Failed to enter cfgupdate mode\n"); + + return -EPERM; +} +EXPORT_SYMBOL_GPL(fg_dm_pre_access); + +static int fg_dm_post_access(struct bq_fg_chip *bq) +{ + int ret; + int i = 0; + + + ret = fg_write_word(bq, bq->regs[BQ_FG_REG_CTRL], + FG_SUBCMD_SOFT_RESET); + if (ret < 0) + return ret; + + msleep(100); + + while (i++ < CFG_UPDATE_POLLING_RETRY_LIMIT) { + ret = fg_check_cfg_update_mode(bq); + if (!ret && !bq->cfg_update_mode) + break; + msleep(100); + } + + if (i == CFG_UPDATE_POLLING_RETRY_LIMIT) { + pr_err("Failed to exit cfgupdate mode\n"); + return -EPERM; + } else { + return fg_seal(bq); + } +} +EXPORT_SYMBOL_GPL(fg_dm_post_access); + +#define DM_ACCESS_BLOCK_DATA_CHKSUM 0x60 +#define DM_ACCESS_BLOCK_DATA_CTRL 0x61 +#define DM_ACCESS_BLOCK_DATA_CLASS 0x3E +#define DM_ACCESS_DATA_BLOCK 0x3F +#define DM_ACCESS_BLOCK_DATA 0x40 + + +static int fg_dm_read_block(struct bq_fg_chip *bq, u8 classid, + u8 offset, u8 *buf) +{ + int ret; + u8 cksum_calc, cksum; + u8 blk_offset = offset >> 5; + + pr_info("subclass:%d, offset:%d\n", classid, offset); + + ret = fg_write_byte(bq, DM_ACCESS_BLOCK_DATA_CTRL, 0); + if (ret < 0) + return ret; + msleep(5); + ret = fg_write_byte(bq, DM_ACCESS_BLOCK_DATA_CLASS, classid); + if (ret < 0) + return ret; + msleep(5); + ret = fg_write_byte(bq, DM_ACCESS_DATA_BLOCK, blk_offset); + if (ret < 0) + return ret; + msleep(5); + ret = fg_read_block(bq, DM_ACCESS_BLOCK_DATA, buf, 32); + if (ret < 0) + return ret; + + fg_print_buf(__func__, buf, 32); + + msleep(5); + cksum_calc = checksum(buf, 32); + ret = fg_read_byte(bq, DM_ACCESS_BLOCK_DATA_CHKSUM, &cksum); + if (!ret && cksum_calc == cksum) + return 0; + else + return 1; +} +EXPORT_SYMBOL_GPL(fg_dm_read_block); + +static int fg_dm_write_block(struct bq_fg_chip *bq, u8 classid, + u8 offset, u8 *data) +{ + int ret; + u8 cksum; + u8 buf[64]; + u8 blk_offset = offset >> 5; + + pr_info("subclass:%d, offset:%d\n", classid, offset); + + ret = fg_write_byte(bq, DM_ACCESS_BLOCK_DATA_CTRL, 0); + if (ret < 0) + return ret; + msleep(5); + ret = fg_write_byte(bq, DM_ACCESS_BLOCK_DATA_CLASS, classid); + if (ret < 0) + return ret; + msleep(5); + ret = fg_write_byte(bq, DM_ACCESS_DATA_BLOCK, blk_offset); + if (ret < 0) + return ret; + ret = fg_write_block(bq, DM_ACCESS_BLOCK_DATA, data, 32); + msleep(5); + + fg_print_buf(__func__, data, 32); + + cksum = checksum(data, 32); + ret = fg_write_byte(bq, DM_ACCESS_BLOCK_DATA_CHKSUM, cksum); + if (ret < 0) + return ret; + msleep(5); + + ret = fg_write_byte(bq, DM_ACCESS_DATA_BLOCK, blk_offset); + if (ret < 0) + return ret; + msleep(5); + ret = fg_read_block(bq, DM_ACCESS_BLOCK_DATA, buf, 32); + if (ret < 0) + return ret; + if (memcpy(data, buf, 32)) { + pr_err("Error updating subclass %d offset %d\n", + classid, offset); + return 1; + } + return 0; +} +EXPORT_SYMBOL_GPL(fg_dm_write_block); + +static int fg_read_fw_version(struct bq_fg_chip *bq) +{ + + int ret; + u16 version; + + ret = fg_write_word(bq, bq->regs[BQ_FG_REG_CTRL], 0x0002); + + if (ret < 0) { + pr_err("Failed to send firmware version subcommand:%d\n", ret); + return ret; + } + + mdelay(2); + + ret = fg_read_word(bq, bq->regs[BQ_FG_REG_CTRL], &version); + if (ret < 0) { + pr_err("Failed to read firmware version:%d\n", ret); + return ret; + } + + return version; +} + + +static int fg_read_status(struct bq_fg_chip *bq) +{ + int ret; + u16 flags; + + ret = fg_read_word(bq, bq->regs[BQ_FG_REG_FLAGS], &flags); + if (ret < 0) { + return ret; + } + + mutex_lock(&bq->data_lock); + bq->batt_present = !!(flags & FG_FLAGS_BAT_DET); + bq->batt_ot = !!(flags & FG_FLAGS_OT); + bq->batt_ut = !!(flags & FG_FLAGS_UT); + bq->batt_fc = !!(flags & FG_FLAGS_FC); + bq->batt_soc1 = !!(flags & FG_FLAGS_SOC1); + bq->batt_socf = !!(flags & FG_FLAGS_SOCF); + bq->batt_dsg = !!(flags & FG_FLAGS_DSG); + bq->allow_chg = !!(flags & FG_FLAGS_CHG); + mutex_unlock(&bq->data_lock); + + return 0; +} + + +static int fg_get_charger_present(struct bq_fg_chip *bq) +{ + union power_supply_propval prop = {0,}; + int ret; + + ret = bq->usb_psy->get_property(bq->usb_psy, + POWER_SUPPLY_PROP_PRESENT, &prop); + + if (!ret) + bq->usb_present = prop.intval; + + return ret; +} + +#define CYCLE_DETECT_TIME 30 +u16 monitor_soc = 0; +static int fg_read_rsoc(struct bq_fg_chip *bq) +{ + int ret; + u16 soc = 0; + + ret = fg_read_word(bq, bq->regs[BQ_FG_REG_SOC], &soc); + if (ret < 0) { + pr_err("could not read RSOC, ret = %d\n", ret); + return ret; + } + + return soc; + +} + +bool monitor_soc_up = 0; +bool monitor_soc_down = 0; +static int fg_read_new_rsoc(struct bq_fg_chip *bq) +{ + u16 new_soc = 0; + ktime_t kt; + + new_soc = fg_read_rsoc(bq); + fg_get_charger_present(bq); + if (!monitor_soc_up && bq->usb_present && (new_soc == 100 && (bq->batt_soc >= 90 && bq->batt_soc <= 98))) { + pr_err("soc jumped, new_soc = %d, old_soc = %d\n", new_soc, bq->batt_soc); + monitor_soc_up = 1; + monitor_soc_down = 0; + kt = ns_to_ktime(CYCLE_DETECT_TIME*NSEC_PER_SEC); + alarm_start_relative(&bq->fg_soc_alarm, kt); + } + + if (monitor_soc_up || monitor_soc_down) { + } else{ + monitor_soc = new_soc; + } + + return monitor_soc; + +} + +static enum alarmtimer_restart fg_soc_alarm_callback(struct alarm *alarm, + ktime_t now) +{ + struct bq_fg_chip *bq = container_of(alarm, struct bq_fg_chip, + fg_soc_alarm); + + pr_err("fg_soc_jump_callback\n"); + pm_stay_awake(bq->dev); + schedule_work(&bq->fg_soc_work); + + return ALARMTIMER_NORESTART; +} + +static void fg_soc_work_fn(struct work_struct *work) +{ + struct bq_fg_chip *bq = container_of(work, struct bq_fg_chip, + fg_soc_work); + ktime_t kt; + u16 real_soc = 0; + real_soc = fg_read_rsoc(bq); + + fg_get_charger_present(bq); + if (monitor_soc_up && bq->usb_present) { + monitor_soc += 1; + monitor_soc = (monitor_soc <= 100) ? monitor_soc : 100; + } + + pr_err("fg_soc_work_fn monitor_soc = %d\n", monitor_soc); + if (!bq->usb_present && monitor_soc <= 99) { + pr_err("fg_soc_work_fn fg_soc_work_fn monitor_soc_down\n"); + monitor_soc_down = 1; + monitor_soc_up = 0; + } + if (monitor_soc == 100 || real_soc <= monitor_soc) { + pr_err("fg_soc_work_fn alarm stop\n"); + monitor_soc_up = 0; + monitor_soc_down = 0; + } + + power_supply_changed(&bq->fg_psy); + + if (monitor_soc_down || monitor_soc_up) { + kt = ns_to_ktime(CYCLE_DETECT_TIME*NSEC_PER_SEC); + alarm_start_relative(&bq->fg_soc_alarm, kt); + } + + pm_relax(bq->dev); +} + + +#define DEFAULT_TEMP 2980 +static int fg_read_temperature(struct bq_fg_chip *bq) +{ + int ret; + u16 temp = 0; + + ret = fg_read_word(bq, bq->regs[BQ_FG_REG_TEMP], &temp); + if (ret < 0) { + pr_err("could not read temperature, ret = %d\n", ret); + return ret; + } + + +#ifdef CONFIG_DISABLE_TEMP_PROTECT + pr_err("Disable temp control Version!\n"); + return DEFAULT_TEMP; +#else + return temp; +#endif + +} + +#define DEFAULT_RESISTER 45 +static int fg_get_battid_resister(struct bq_fg_chip *bq) +{ + int rc = 0; + int bq_battid_resister = 0; + struct qpnp_vadc_result results; + + rc = qpnp_vadc_read(bq->vadc_dev, P_MUX4_1_1, &results); + if (rc) { + pr_debug("Unable to read batt resister rc=%d\n", rc); + return DEFAULT_RESISTER; + } + + bq_battid_resister = (results.physical)*100/(1800000 - results.physical); + + return bq_battid_resister; +} + + +static char *bq_default_batt_type = "Generic_Battery"; + +static int bq_batterydata_get_best_profile(struct bq_fg_chip *bq) +{ + int delta = 0, best_id_kohm = 0, id_range_pct = 15, + batt_id_kohm = 0, i = 0, limit = 0; + + batt_id_kohm = fg_get_battid_resister(bq); + + for (i = 0; i < ARRAY_SIZE(bq_batt_ids_attr); i++) { + delta = abs(bq_batt_ids_attr[i].kohm - batt_id_kohm); + limit = (bq_batt_ids_attr[i].kohm * id_range_pct) / 100; + if (delta <= limit) { + best_id_kohm = bq_batt_ids_attr[i].kohm; + bq->battery_type = bq_batt_ids_attr[i].battery_type; + goto out; + } + } + + pr_err("out of range, using default battery, best_id_kohm=%d\n", batt_id_kohm); + + bq->battery_type = bq_default_batt_type; + +out: + pr_err("%s found\n", bq->battery_type); + hardwareinfo_set_prop(HARDWARE_BATTERY_ID, bq->battery_type); + + if (best_id_kohm == 30) { + bq->batt_id = 1; + } else if (best_id_kohm == 68) { + bq->batt_id = 2; + } else if (best_id_kohm == 330) { + bq->batt_id = 3; + } else if (best_id_kohm == 82) { + bq->batt_id = 4; + } else + bq->batt_id = 0; + + return 0; +} + + +static int fg_read_volt(struct bq_fg_chip *bq) +{ + int ret; + u16 volt = 0; + + ret = fg_read_word(bq, bq->regs[BQ_FG_REG_VOLT], &volt); + if (ret < 0) { + pr_err("could not read voltage, ret = %d\n", ret); + return ret; + } + + return volt; + +} + +static int fg_read_current(struct bq_fg_chip *bq, int *curr) +{ + int ret; + u16 avg_curr = 0; + + ret = fg_read_word(bq, bq->regs[BQ_FG_REG_AI], &avg_curr); + if (ret < 0) { + pr_err("could not read current, ret = %d\n", ret); + return ret; + } + *curr = (int)((s16)avg_curr); + + return ret; +} + +static int fg_read_fcc(struct bq_fg_chip *bq) +{ + int ret; + u16 fcc; + + if (bq->regs[BQ_FG_REG_FCC] == INVALID_REG_ADDR) { + pr_err("FCC command not supported!\n"); + return 0; + } + + ret = fg_read_word(bq, bq->regs[BQ_FG_REG_FCC], &fcc); + + if (ret < 0) { + pr_err("could not read FCC, ret=%d\n", ret); + } + + return fcc; +} + +static int fg_read_dc(struct bq_fg_chip *bq) +{ + + int ret; + u16 dc; + + if (bq->regs[BQ_FG_REG_DC] == INVALID_REG_ADDR) { + pr_err("DesignCapacity command not supported!\n"); + return 0; + } + + ret = fg_read_word(bq, bq->regs[BQ_FG_REG_DC], &dc); + + if (ret < 0) { + pr_err("could not read DC, ret=%d\n", ret); + return ret; + } + + return dc; +} + + +static int fg_read_rm(struct bq_fg_chip *bq) +{ + int ret; + u16 rm; + + if (bq->regs[BQ_FG_REG_RM] == INVALID_REG_ADDR) { + pr_err("RemainingCapacity command not supported!\n"); + return 0; + } + + ret = fg_read_word(bq, bq->regs[BQ_FG_REG_RM], &rm); + + if (ret < 0) { + pr_err("could not read DC, ret=%d\n", ret); + return ret; + } + + return rm; + +} + +static int fg_read_cyclecount(struct bq_fg_chip *bq) +{ + int ret; + u16 cc; + + if (bq->regs[BQ_FG_REG_CC] == INVALID_REG_ADDR) { + pr_err("Cycle Count not supported!\n"); + return -EPERM; + } + + ret = fg_read_word(bq, bq->regs[BQ_FG_REG_CC], &cc); + + if (ret < 0) { + pr_err("could not read Cycle Count, ret=%d\n", ret); + return ret; + } + + return cc; +} + +static int fg_read_tte(struct bq_fg_chip *bq) +{ + int ret; + u16 tte; + + if (bq->regs[BQ_FG_REG_TTE] == INVALID_REG_ADDR) { + pr_err("Time To Empty not supported!\n"); + return -EPERM; + } + + ret = fg_read_word(bq, bq->regs[BQ_FG_REG_TTE], &tte); + + if (ret < 0) { + pr_err("could not read Time To Empty, ret=%d\n", ret); + return ret; + } + + if (ret == 0xFFFF) + return -ENODATA; + + return tte; +} + +static int fg_get_batt_status(struct bq_fg_chip *bq) +{ + union power_supply_propval prop = {0,}; + int ret; + + ret = bq->usb_psy->get_property(bq->usb_psy, + POWER_SUPPLY_PROP_PRESENT, &prop); + if (ret < 0) + pr_err("could not read USB current_max property, ret=%d\n", ret); + fg_read_status(bq); + + if (!bq->batt_present) + return POWER_SUPPLY_STATUS_UNKNOWN; + else if (bq->batt_fc && prop.intval) + return POWER_SUPPLY_STATUS_FULL; + else if (bq->batt_dsg) + return POWER_SUPPLY_STATUS_DISCHARGING; + else if (bq->batt_curr > 0) + return POWER_SUPPLY_STATUS_CHARGING; + else + return POWER_SUPPLY_STATUS_NOT_CHARGING; + +} + + +static int fg_get_batt_capacity_level(struct bq_fg_chip *bq) +{ + if (!bq->batt_present) + return POWER_SUPPLY_CAPACITY_LEVEL_UNKNOWN; + else if (bq->batt_fc) + return POWER_SUPPLY_CAPACITY_LEVEL_FULL; + else if (bq->batt_soc1) + return POWER_SUPPLY_CAPACITY_LEVEL_LOW; + else if (bq->batt_socf) + return POWER_SUPPLY_CAPACITY_LEVEL_CRITICAL; + else + return POWER_SUPPLY_CAPACITY_LEVEL_NORMAL; + +} + + +static int fg_get_batt_health(struct bq_fg_chip *bq) +{ + if (!bq->batt_present) + return POWER_SUPPLY_HEALTH_UNKNOWN; + else if (bq->batt_ot) + return POWER_SUPPLY_HEALTH_OVERHEAT; + else if (bq->batt_ut) + return POWER_SUPPLY_HEALTH_COLD; + else + return POWER_SUPPLY_HEALTH_GOOD; + +} + +static enum power_supply_property fg_props[] = { + POWER_SUPPLY_PROP_STATUS, + POWER_SUPPLY_PROP_PRESENT, + POWER_SUPPLY_PROP_VOLTAGE_NOW, + POWER_SUPPLY_PROP_CURRENT_NOW, + POWER_SUPPLY_PROP_RESISTANCE_ID, + POWER_SUPPLY_PROP_BATTERY_TYPE, + POWER_SUPPLY_PROP_CAPACITY, + POWER_SUPPLY_PROP_CAPACITY_LEVEL, + POWER_SUPPLY_PROP_TEMP, + + POWER_SUPPLY_PROP_CHARGE_FULL, + + + POWER_SUPPLY_PROP_HEALTH, + POWER_SUPPLY_PROP_TECHNOLOGY, + POWER_SUPPLY_PROP_UPDATE_NOW, +}; + +static int fg_get_property(struct power_supply *psy, enum power_supply_property psp, + union power_supply_propval *val) +{ + struct bq_fg_chip *bq = container_of(psy, struct bq_fg_chip, fg_psy); + int ret; + + mutex_lock(&bq->update_lock); + switch (psp) { + case POWER_SUPPLY_PROP_STATUS: + val->intval = fg_get_batt_status(bq); + break; + case POWER_SUPPLY_PROP_VOLTAGE_NOW: + ret = fg_read_volt(bq); + mutex_lock(&bq->data_lock); + if (ret >= 0) + bq->batt_volt = ret; + val->intval = bq->batt_volt * 1000; + mutex_unlock(&bq->data_lock); + + break; + case POWER_SUPPLY_PROP_PRESENT: + val->intval = bq->batt_present; + break; + case POWER_SUPPLY_PROP_CURRENT_NOW: + mutex_lock(&bq->data_lock); + fg_read_current(bq, &bq->batt_curr); + val->intval = -bq->batt_curr * 1000; + pr_info("bq27426 current=%d\n", val->intval); + mutex_unlock(&bq->data_lock); + break; + case POWER_SUPPLY_PROP_RESISTANCE_ID: + val->intval = fg_get_battid_resister(bq); + break; + case POWER_SUPPLY_PROP_BATTERY_TYPE: + val->strval = bq->battery_type; + break; + case POWER_SUPPLY_PROP_CAPACITY: + if (bq->fake_soc >= 0) { + val->intval = bq->fake_soc; + break; + } + ret = fg_read_new_rsoc(bq); + mutex_lock(&bq->data_lock); + if (ret >= 0) + bq->batt_soc = ret; + val->intval = bq->batt_soc; + mutex_unlock(&bq->data_lock); + break; + + case POWER_SUPPLY_PROP_CAPACITY_LEVEL: + val->intval = fg_get_batt_capacity_level(bq); + break; + + case POWER_SUPPLY_PROP_TEMP: + if (bq->fake_temp != -EINVAL) { + val->intval = bq->fake_temp; + break; + } + ret = fg_read_temperature(bq); + mutex_lock(&bq->data_lock); + if (ret > 0) + bq->batt_temp = ret; + val->intval = bq->batt_temp - 2730; + mutex_unlock(&bq->data_lock); + break; + + case POWER_SUPPLY_PROP_TIME_TO_EMPTY_NOW: + ret = fg_read_tte(bq); + mutex_lock(&bq->data_lock); + if (ret >= 0) + bq->batt_tte = ret; + + val->intval = bq->batt_tte; + mutex_unlock(&bq->data_lock); + break; + + case POWER_SUPPLY_PROP_CHARGE_FULL: + ret = fg_read_fcc(bq); + mutex_lock(&bq->data_lock); + if (ret > 0) + bq->batt_fcc = ret; + + val->intval = 3000; + mutex_unlock(&bq->data_lock); + break; + + case POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN: + ret = fg_read_dc(bq); + mutex_lock(&bq->data_lock); + if (ret > 0) + bq->batt_dc = ret; + val->intval = bq->batt_dc * 1000; + mutex_unlock(&bq->data_lock); + break; + + case POWER_SUPPLY_PROP_CYCLE_COUNT: + ret = fg_read_cyclecount(bq); + mutex_lock(&bq->data_lock); + if (ret >= 0) + bq->batt_cyclecnt = ret; + val->intval = bq->batt_cyclecnt; + mutex_unlock(&bq->data_lock); + break; + + case POWER_SUPPLY_PROP_HEALTH: + val->intval = fg_get_batt_health(bq); + break; + + case POWER_SUPPLY_PROP_TECHNOLOGY: + val->intval = POWER_SUPPLY_TECHNOLOGY_LIPO; + break; + + case POWER_SUPPLY_PROP_UPDATE_NOW: + val->intval = 0; + break; + + default: + mutex_unlock(&bq->update_lock); + return -EINVAL; + } + mutex_unlock(&bq->update_lock); + return 0; +} + +static void fg_dump_registers(struct bq_fg_chip *bq); + +static int fg_set_property(struct power_supply *psy, + enum power_supply_property prop, + const union power_supply_propval *val) +{ + struct bq_fg_chip *bq = container_of(psy, struct bq_fg_chip, + fg_psy); + switch (prop) { + case POWER_SUPPLY_PROP_TEMP: + bq->fake_temp = val->intval; + break; + case POWER_SUPPLY_PROP_CAPACITY: + bq->fake_soc = val->intval; + power_supply_changed(&bq->fg_psy); + break; + case POWER_SUPPLY_PROP_UPDATE_NOW: + fg_dump_registers(bq); + break; + default: + return -EINVAL; + } + + return 0; +} + + +static int fg_prop_is_writeable(struct power_supply *psy, + enum power_supply_property prop) +{ + int ret; + + switch (prop) { + case POWER_SUPPLY_PROP_TEMP: + case POWER_SUPPLY_PROP_CAPACITY: + case POWER_SUPPLY_PROP_UPDATE_NOW: + ret = 1; + break; + default: + ret = 0; + break; + } + return ret; +} + + + +static void fg_external_power_changed(struct power_supply *psy) +{ + +} + +static int fg_psy_register(struct bq_fg_chip *bq) +{ + int ret; + + bq->fg_psy.name = "bms"; + bq->fg_psy.type = POWER_SUPPLY_TYPE_BMS; + bq->fg_psy.properties = fg_props; + bq->fg_psy.num_properties = ARRAY_SIZE(fg_props); + bq->fg_psy.get_property = fg_get_property; + bq->fg_psy.set_property = fg_set_property; + bq->fg_psy.external_power_changed = fg_external_power_changed; + bq->fg_psy.property_is_writeable = fg_prop_is_writeable; + + + ret = power_supply_register(bq->dev, &bq->fg_psy); + if (ret < 0) { + pr_err("Failed to register fg_psy:%d\n", ret); + return ret; + } + + return 0; +} + + +static void fg_psy_unregister(struct bq_fg_chip *bq) +{ + + power_supply_unregister(&bq->fg_psy); +} + + +static int fg_change_chem_id(struct bq_fg_chip *bq, u16 new_id) +{ + int ret; + u16 old_id; + + int i; + + ret = fg_write_word(bq, bq->regs[BQ_FG_REG_CTRL], FG_SUBCMD_CHEM_ID); + if (ret < 0) { + pr_err("Failed to write chemid subcmd, ret = %d\n", ret); + return ret; + } + + msleep(5); + + ret = fg_read_word(bq, bq->regs[BQ_FG_REG_CTRL], &old_id); + if (ret < 0) { + pr_err("Failed to read control status, ret = %d\n", ret); + return ret; + } + + if (new_id == old_id) { + pr_info("new chemid is same as old one, skip change\n"); + return 0; + } + + for (i = 0; i < ARRAY_SIZE(batt_chem_id_arr); i++) { + if (new_id == batt_chem_id_arr[i].id) + break; + } + + if (i == ARRAY_SIZE(batt_chem_id_arr)) { + pr_err("not supported chem_id %d\n", new_id); + return -1; + } + + msleep(5); + ret = fg_dm_pre_access(bq); + if (ret < 0) + return ret; + msleep(5); + ret = fg_write_word(bq, bq->regs[BQ_FG_REG_CTRL], batt_chem_id_arr[i].cmd); + if (ret < 0) { + pr_err("Failed to send chem_id command, ret=%d\n", ret); + fg_dm_post_access(bq); + return ret; + } + + msleep(5); + ret = fg_dm_post_access(bq); + if (ret < 0) + return ret; + + msleep(2000); + /* Read back checm id to confirm */ + ret = fg_read_word(bq, bq->regs[BQ_FG_REG_CTRL], &old_id); + if (ret < 0) { + pr_err("Failed to read control status, ret = %d\n", ret); + return ret; + } + + if (new_id == old_id) { + pr_info("chem ID changed successfully\n"); + return 0; + } else { + return -1; + } +} +EXPORT_SYMBOL_GPL(fg_change_chem_id); + +static int fg_check_update_necessary(struct bq_fg_chip *bq) +{ + int ret; + u8 dm_ver = 0xFF; + + ret = fg_check_itpor(bq); + if (!ret && bq->itpor) + return UPDATE_REASON_FG_RESET; + + ret = fg_read_dm_version(bq, &dm_ver); + pr_err("bq27426 dm_ver = %d\n", dm_ver); + if (!ret && dm_ver < bqfs_image[bq->batt_id].version) + return UPDATE_REASON_NEW_VERSION; + else + return 0; +} + +static bool fg_update_bqfs_execute_cmd(struct bq_fg_chip *bq, + const bqfs_cmd_t *cmd) +{ + int ret; + int i; + u8 tmp_buf[CMD_MAX_DATA_SIZE]; + + switch (cmd->cmd_type) { + case CMD_R: + ret = fg_read_block(bq, cmd->reg, (u8 *)&cmd->data.bytes, cmd->data_len); + if (ret < 0) + return false; + else + return true; + break; + case CMD_W: + ret = fg_write_block(bq, cmd->reg, (u8 *)&cmd->data.bytes, cmd->data_len); + if (ret < 0) + return false; + else + return true; + break; + case CMD_C: + if (fg_read_block(bq, cmd->reg, tmp_buf, cmd->data_len) < 0) + return false; + if (memcmp(tmp_buf, cmd->data.bytes, cmd->data_len)) { + pr_info("CMD_C failed at line %d\n", cmd->line_num); + for (i = 0; i < cmd->data_len; i++) { + pr_err("Read: %02X, Cmp:%02X", tmp_buf[i], cmd->data.bytes[i]); + } + return false; + } + + return true; + break; + case CMD_X: + mdelay(cmd->data.delay); + return true; + break; + default: + pr_err("Unsupported command at line %d\n", cmd->line_num); + return false; + } + +} +EXPORT_SYMBOL_GPL(fg_update_bqfs_execute_cmd); + +static void fg_update_bqfs(struct bq_fg_chip *bq) +{ + int i; + const bqfs_cmd_t *image; + int reason = 0; + + + if (bq->force_update == ~BQFS_UPDATE_KEY) + reason = UPDATE_REASON_FORCED; + else + reason = fg_check_update_necessary(bq); + + if (!reason) { + pr_info("Fuel Gauge parameter no need update, ignored\n"); + return; + } + + if (bq->batt_id >= ARRAY_SIZE(bqfs_image) || + bq->batt_id < 0) { + pr_err("batt_id is out of range"); + return; + } + /* TODO:if unseal, enter cfg update mode cmd sequence are in gmfs file, + no need to do explicitly */ + fg_dm_pre_access(bq); + + pr_err("Fuel Gauge parameter update, reason:%s, version:%d, batt_id=%d Start...\n", + update_reason_str[reason - 1], bqfs_image[bq->batt_id].version, bq->batt_id); + + mutex_lock(&bq->update_lock); + image = bqfs_image[bq->batt_id].bqfs_image; + for (i = 0; i < bqfs_image[bq->batt_id].array_size; i++) { + if (!fg_update_bqfs_execute_cmd(bq, &image[i])) { + mutex_unlock(&bq->update_lock); + pr_err("Failed at command: %d\n", i); + fg_dm_post_access(bq); + return; + } + mdelay(5); + } + mutex_unlock(&bq->update_lock); + + pr_err("Done!\n"); + + /* TODO:exit cfg update mode and seal device if these are not handled in gmfs file */ + fg_dm_post_access(bq); + return; + +} +EXPORT_SYMBOL_GPL(fg_update_bqfs); + + +static const u8 fg_dump_regs[] = { + 0x00, 0x02, 0x04, 0x06, + 0x08, 0x0A, 0x0C, 0x0E, + 0x10, 0x16, 0x18, 0x1A, + 0x1C, 0x1E, 0x20, 0x28, + 0x2A, 0x2C, 0x2E, 0x30, + 0x66, 0x68, 0x6C, 0x6E, + 0x70, +}; + +static void fg_dump_registers(struct bq_fg_chip *bq) +{ + int i; + int ret; + u16 val = 0; + + if (bq->batt_present) { + mutex_lock(&bq->update_lock); + + bq->batt_soc = fg_read_new_rsoc(bq); + bq->batt_volt = fg_read_volt(bq); + fg_read_current(bq, &bq->batt_curr); + bq->batt_temp = fg_read_temperature(bq); + bq->batt_rm = fg_read_rm(bq); + + mutex_unlock(&bq->update_lock); + pr_err("BQ27426 --RSOC:%d, Volt:%d, Current:%d, Temperature:%d\n", + bq->batt_soc, bq->batt_volt, bq->batt_curr, bq->batt_temp - 2730); + } + + pr_err("Reg[00 -70] = "); + for (i = 0; i < ARRAY_SIZE(fg_dump_regs); i++) { + msleep(5); + ret = fg_read_word(bq, fg_dump_regs[i], &val); + if (!ret) + printk("0x%04X, ", val); + } + printk("\n"); +} +EXPORT_SYMBOL_GPL(fg_dump_registers); + + +static int show_registers(struct seq_file *m, void *data) +{ + struct bq_fg_chip *bq = m->private; + int i; + int ret; + u16 val = 0; + + for (i = 0; i < ARRAY_SIZE(fg_dump_regs); i++) { + msleep(5); + ret = fg_read_word(bq, fg_dump_regs[i], &val); + if (!ret) + seq_printf(m, "Reg[%02X] = 0x%04X\n", + fg_dump_regs[i], val); + } + return 0; +} + + +static int reg_debugfs_open(struct inode *inode, struct file *file) +{ + struct bq_fg_chip *bq = inode->i_private; + + return single_open(file, show_registers, bq); +} + +static const struct file_operations reg_debugfs_ops = { + .owner = THIS_MODULE, + .open = reg_debugfs_open, + .read = seq_read, + .llseek = seq_lseek, + .release = single_release, +}; + +static void create_debugfs_entry(struct bq_fg_chip *bq) +{ + bq->debug_root = debugfs_create_dir("bq_fg", NULL); + if (!bq->debug_root) + pr_err("Failed to create debug dir\n"); + + if (bq->debug_root) { + + debugfs_create_file("registers", S_IFREG | S_IRUGO, + bq->debug_root, bq, ®_debugfs_ops); + + debugfs_create_x32("fake_soc", + S_IFREG | S_IWUSR | S_IRUGO, + bq->debug_root, + &(bq->fake_soc)); + + debugfs_create_x32("fake_temp", + S_IFREG | S_IWUSR | S_IRUGO, + bq->debug_root, + &(bq->fake_temp)); + + debugfs_create_x32("skip_reads", + S_IFREG | S_IWUSR | S_IRUGO, + bq->debug_root, + &(bq->skip_reads)); + debugfs_create_x32("skip_writes", + S_IFREG | S_IWUSR | S_IRUGO, + bq->debug_root, + &(bq->skip_writes)); + } +} + +static ssize_t fg_attr_show_Ra_table(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct i2c_client *client = to_i2c_client(dev); + struct bq_fg_chip *bq = i2c_get_clientdata(client); + + int ret; + u8 rd_buf[64]; + u8 temp_buf[100]; + int len, i, idx; + u8 *err_str[] = { + "Failed to enter configure mode", + "Failed to Read Ra Table", + "Failed to exit configure mode", + }; + + memset(buf, 0, 64); + mutex_lock(&bq->update_lock); + ret = fg_dm_pre_access(bq); + if (ret) { + sprintf(buf, "%s", err_str[0]); + mutex_unlock(&bq->update_lock); + return strlen(err_str[0]); + } + + ret = fg_dm_read_block(bq, 89, 0, rd_buf); + if (ret) { + sprintf(buf, "%s", err_str[1]); + fg_dm_post_access(bq); + mutex_unlock(&bq->update_lock); + return strlen(err_str[1]); + } + + fg_dm_post_access(bq); + + idx = 0; + for (i = 0; i < 30; i++) { + len = sprintf(temp_buf, "%02X ", rd_buf[i]); + memcpy(&buf[idx], temp_buf, len); + idx += len; + } + mutex_unlock(&bq->update_lock); + return idx; +} + +static ssize_t fg_attr_show_Qmax(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct i2c_client *client = to_i2c_client(dev); + struct bq_fg_chip *bq = i2c_get_clientdata(client); + + int ret; + u8 rd_buf[64]; + int len; + u8 *err_str[] = { + "Failed to enter configure mode", + "Failed to Qmax", + }; + + memset(buf, 0, 64); + mutex_lock(&bq->update_lock); + ret = fg_dm_pre_access(bq); + if (ret) { + sprintf(buf, "%s", err_str[0]); + mutex_unlock(&bq->update_lock); + return strlen(err_str[0]); + } + + ret = fg_dm_read_block(bq, 82, 0, rd_buf); + if (ret) { + sprintf(buf, "%s", err_str[1]); + fg_dm_post_access(bq); + mutex_unlock(&bq->update_lock); + return strlen(err_str[1]); + } + + len = sprintf(buf, "Qmax Cell 0 = %d\n", (rd_buf[0] << 8) | rd_buf[1]); + fg_dm_post_access(bq); + + mutex_unlock(&bq->update_lock); + return len; +} + +static ssize_t fg_attr_store_update(struct device *dev, + struct device_attribute *attr, const char *buf, size_t count) +{ + + struct i2c_client *client = to_i2c_client(dev); + struct bq_fg_chip *bq = i2c_get_clientdata(client); + unsigned int key = 0; + + sscanf(buf, "%x", &key); + if (key == BQFS_UPDATE_KEY) { + bq->force_update = ~key; + schedule_work(&bq->update_work); + } + return count; +} + +static ssize_t fg_attr_show_dmcode(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct i2c_client *client = to_i2c_client(dev); + struct bq_fg_chip *bq = i2c_get_clientdata(client); + + int ret; + u8 ver; + + ret = fg_read_dm_version(bq, &ver); + if (!ret) + return sprintf(buf, "0x%02X\n", ver); + else + return sprintf(buf, "Read DM code error"); +} + + +static DEVICE_ATTR(RaTable, S_IRUGO, fg_attr_show_Ra_table, NULL); +static DEVICE_ATTR(Qmax, S_IRUGO, fg_attr_show_Qmax, NULL); +static DEVICE_ATTR(update, S_IWUSR, NULL, fg_attr_store_update); +static DEVICE_ATTR(dmcode, S_IRUGO, fg_attr_show_dmcode, NULL); + + +static struct attribute *fg_attributes[] = { + &dev_attr_RaTable.attr, + &dev_attr_Qmax.attr, + &dev_attr_update.attr, + &dev_attr_dmcode.attr, + NULL, +}; + + +static const struct attribute_group fg_attr_group = { + .attrs = fg_attributes, +}; + + +static void fg_update_bqfs_workfunc(struct work_struct *work) +{ + struct bq_fg_chip *bq = container_of(work, + struct bq_fg_chip, update_work); + + fg_update_bqfs(bq); +} + +static irqreturn_t fg_irq_thread(int irq, void *dev_id) +{ + struct bq_fg_chip *bq = dev_id; + + + + + bool last_batt_present; + + mutex_lock(&bq->irq_complete); + bq->irq_waiting = true; + if (!bq->resume_completed) { + pr_info("IRQ triggered before device resume\n"); + if (!bq->irq_disabled) { + disable_irq_nosync(irq); + bq->irq_disabled = true; + } + mutex_unlock(&bq->irq_complete); + return IRQ_HANDLED; + } + bq->irq_waiting = false; + + last_batt_present = bq->batt_present; + + mutex_lock(&bq->update_lock); + fg_read_status(bq); + mutex_unlock(&bq->update_lock); + pr_info("itpor=%d, cfg_mode = %d, seal_state=%d, batt_present=%d", + bq->itpor, bq->cfg_update_mode, bq->seal_state, bq->batt_present); + + if (!last_batt_present && bq->batt_present) {/* battery inserted */ + pr_info("Battery inserted\n"); + } else if (last_batt_present && !bq->batt_present) {/* battery removed */ + pr_info("Battery removed\n"); + bq->batt_soc = -ENODATA; + bq->batt_fcc = -ENODATA; + bq->batt_rm = -ENODATA; + bq->batt_volt = -ENODATA; + bq->batt_curr = -ENODATA; + bq->batt_temp = -ENODATA; + bq->batt_cyclecnt = -ENODATA; + } + power_supply_changed(&bq->fg_psy); + mutex_unlock(&bq->irq_complete); + + return IRQ_HANDLED; +} + + +static void determine_initial_status(struct bq_fg_chip *bq) +{ + fg_irq_thread(bq->client->irq, bq); +} + +#define SMB_VTG_MIN_UV 1800000 +#define SMB_VTG_MAX_UV 1800000 + +static int bq_fg_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ + + int ret; + int rc = 0; + struct bq_fg_chip *bq; + struct power_supply *usb_psy; + u8 *regs; + + usb_psy = power_supply_get_by_name("usb"); + if (!usb_psy) { + dev_dbg(&client->dev, "USB supply not found, defer probe\n"); + return -EPROBE_DEFER; + } + + bq = devm_kzalloc(&client->dev, sizeof(*bq), GFP_KERNEL); + + if (!bq) { + pr_err("Could not allocate memory\n"); + return -ENOMEM; + } + + bq->dev = &client->dev; + bq->client = client; + bq->chip = id->driver_data; + bq->usb_psy = usb_psy; + + bq->batt_soc = -ENODATA; + bq->batt_fcc = -ENODATA; + bq->batt_rm = -ENODATA; + bq->batt_dc = -ENODATA; + bq->batt_volt = -ENODATA; + bq->batt_temp = -ENODATA; + bq->batt_curr = -ENODATA; + bq->batt_cyclecnt = -ENODATA; + + bq->fake_soc = -EINVAL; + bq->fake_temp = -EINVAL; + + if (bq->chip == BQ27426) { + regs = bq27426_regs; + } else { + pr_err("unexpected fuel gauge: %d\n", bq->chip); + regs = bq27426_regs; + } + + memcpy(bq->regs, regs, NUM_REGS); + + i2c_set_clientdata(client, bq); + + mutex_init(&bq->i2c_rw_lock); + mutex_init(&bq->data_lock); + mutex_init(&bq->update_lock); + mutex_init(&bq->irq_complete); + + bq->resume_completed = true; + bq->irq_waiting = false; + + bq->vadc_dev = qpnp_get_vadc(bq->dev, "battid"); + if (IS_ERR(bq->vadc_dev)) { + ret = PTR_ERR(bq->vadc_dev); + if (ret == -EPROBE_DEFER) + pr_err("vadc not found - defer rc=%d\n", ret); + else + pr_err("vadc property missing, rc=%d\n", ret); + + return ret; + } + + bq->vcc_i2c = regulator_get(bq->dev, "vcc_i2c"); + if (IS_ERR(bq->vcc_i2c)) { + pr_err("Regulator get failed vdd rc=%d\n", rc); + + } + + if (regulator_count_voltages(bq->vcc_i2c) > 0) { + rc = regulator_set_voltage(bq->vcc_i2c, SMB_VTG_MIN_UV, + SMB_VTG_MAX_UV); + if (rc) { + pr_err("Regulator set_vtg failed vdd rc=%d\n", rc); + } + } + + rc = regulator_enable(bq->vcc_i2c); + if (rc) { + pr_err("Regulator vdd enable failed rc=%d\n", rc); + } + + ret = bq_batterydata_get_best_profile(bq); + if (ret < 0) { + dev_err(&client->dev, "Unable to parse DT nodes\n"); + } + INIT_WORK(&bq->update_work, fg_update_bqfs_workfunc); + + + INIT_WORK(&bq->fg_soc_work, fg_soc_work_fn); + alarm_init(&bq->fg_soc_alarm, ALARM_REALTIME, fg_soc_alarm_callback); + + fg_update_bqfs(bq); + + if (client->irq) { + ret = devm_request_threaded_irq(&client->dev, client->irq, NULL, + fg_irq_thread, + IRQF_TRIGGER_FALLING | IRQF_ONESHOT, + "bq fuel gauge irq", bq); + if (ret < 0) { + pr_err("request irq for irq=%d failed, ret = %d\n", client->irq, ret); + goto err_1; + } + enable_irq_wake(client->irq); + } + + device_init_wakeup(bq->dev, 1); + + bq->fw_ver = fg_read_fw_version(bq); + + fg_psy_register(bq); + + create_debugfs_entry(bq); + ret = sysfs_create_group(&bq->dev->kobj, &fg_attr_group); + if (ret) { + pr_err("Failed to register sysfs, err:%d\n", ret); + } + + determine_initial_status(bq); + bq->batt_soc = fg_read_rsoc(bq); + monitor_soc = bq->batt_soc; + + pr_info("bq fuel gauge probe successfully, %s FW ver:%d\n", + device2str[bq->chip], bq->fw_ver); + + return 0; + +err_1: + fg_psy_unregister(bq); + return ret; +} + + +static inline bool is_device_suspended(struct bq_fg_chip *bq) +{ + return !bq->resume_completed; +} + + +static int bq_fg_suspend(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct bq_fg_chip *bq = i2c_get_clientdata(client); + + mutex_lock(&bq->irq_complete); + bq->resume_completed = false; + mutex_unlock(&bq->irq_complete); + + return 0; +} + +static int bq_fg_suspend_noirq(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct bq_fg_chip *bq = i2c_get_clientdata(client); + + if (bq->irq_waiting) { + pr_err_ratelimited("Aborting suspend, an interrupt was detected while suspending\n"); + return -EBUSY; + } + return 0; + +} + + +static int bq_fg_resume(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct bq_fg_chip *bq = i2c_get_clientdata(client); + + mutex_lock(&bq->irq_complete); + bq->resume_completed = true; + if (bq->irq_waiting) { + bq->irq_disabled = false; + enable_irq(client->irq); + mutex_unlock(&bq->irq_complete); + fg_irq_thread(client->irq, bq); + } else { + mutex_unlock(&bq->irq_complete); + } + + power_supply_changed(&bq->fg_psy); + + return 0; + + +} + +static int bq_fg_remove(struct i2c_client *client) +{ + struct bq_fg_chip *bq = i2c_get_clientdata(client); + + fg_psy_unregister(bq); + + mutex_destroy(&bq->data_lock); + mutex_destroy(&bq->i2c_rw_lock); + mutex_destroy(&bq->update_lock); + mutex_destroy(&bq->irq_complete); + + alarm_cancel(&bq->fg_soc_alarm); + + debugfs_remove_recursive(bq->debug_root); + sysfs_remove_group(&bq->dev->kobj, &fg_attr_group); + + return 0; + +} + +static void bq_fg_shutdown(struct i2c_client *client) +{ + pr_info("bq fuel gauge driver shutdown!\n"); +} + +static struct of_device_id bq_fg_match_table[] = { + {.compatible = "ti,bq27426",}, + {}, +}; +MODULE_DEVICE_TABLE(of, bq_fg_match_table); + +static const struct i2c_device_id bq_fg_id[] = { + { "bq27426", BQ27426 }, + {}, +}; +MODULE_DEVICE_TABLE(i2c, bq_fg_id); + +static const struct dev_pm_ops bq_fg_pm_ops = { + .resume = bq_fg_resume, + .suspend_noirq = bq_fg_suspend_noirq, + .suspend = bq_fg_suspend, +}; + +static struct i2c_driver bq_fg_driver = { + .driver = { + .name = "bq_fg", + .owner = THIS_MODULE, + .of_match_table = bq_fg_match_table, + .pm = &bq_fg_pm_ops, + }, + .id_table = bq_fg_id, + + .probe = bq_fg_probe, + .remove = bq_fg_remove, + .shutdown = bq_fg_shutdown, + +}; + +module_i2c_driver(bq_fg_driver); + +MODULE_DESCRIPTION("TI BQ2742x Gauge Driver"); +MODULE_LICENSE("GPL v2"); +MODULE_AUTHOR("Texas Instruments"); diff --git a/drivers/power/bq27426_gmfs.h b/drivers/power/bq27426_gmfs.h new file mode 100644 index 0000000000000..7b5a70f48697c --- /dev/null +++ b/drivers/power/bq27426_gmfs.h @@ -0,0 +1,946 @@ +/***************************************************************************** +* Copyright 2010 Texas Instruments Corporation, All Rights Reserved. +* Copyright (C) 2018 XiaoMi, Inc. +* TI makes NO WARRANTY as to software products, which are supplied "AS-IS" +*****************************************************************************/ + +/***************************************************************************** +* This code is automatically generated from bqfs/dffs file. * +* DO NOT MODIFY THIS FILE DIRECTLY * +*****************************************************************************/ + + +#ifndef __BQFS_FILE__ +#define __BQFS_FILE__ + +#include "bqfs_cmd_type.h" + +const bqfs_cmd_t bqfs_image[] = { + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x00, + .data = {.bytes = {0x01, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x00, + .data = {.bytes = {0x26, 0x04} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x00, + .data = {.bytes = {0x02, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x00, + .data = {.bytes = {0x02, 0x02} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x02, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x02, 0x26, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xA5} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x02, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xA5} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x24, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x00, 0x19, 0x28, 0x63, 0x5F, 0xFF, 0x62, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x69} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x24, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x69} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x31, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x0A, 0x0F, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xDF} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x31, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xDF} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x40, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x64, 0x79, 0x07, 0x9F, 0x23, 0x00, 0x00, 0x14, 0x04, 0x00, 0x09, 0x04, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x0E} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x40, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x0E} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x44, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x00, 0x32, 0x01, 0xC2, 0x30, 0x00, 0x03, 0x08, 0x98, 0x01, 0x00, 0x3C, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xF9} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x44, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xF9} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x50, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x01, 0xF4, 0x00, 0x1E, 0xC8, 0x14, 0x08, 0x00, 0x3C, 0x0E, 0x10, 0x00, 0x0A, 0x46, 0x05, 0x14, 0x05, 0x0F, 0x03, 0x20, 0x7F, 0xFF, 0x00, 0xF0, 0x46, 0x50, 0x18, 0x01, 0x90, 0x00, 0x64, 0x19} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xE4} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x50, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xE4} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x50, 0x01} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0xDC, 0x5C, 0x60, 0x00, 0x7D, 0x00, 0x04, 0x03, 0x19, 0x25, 0x0F, 0x14, 0x0A, 0x78, 0x60, 0x28, 0x01, 0xF4, 0x00, 0x00, 0x00, 0x00, 0x43, 0x80, 0x04, 0x01, 0x14, 0x00, 0x08, 0x0B, 0xB8, 0x01} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xDB} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x50, 0x01} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xDB} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x50, 0x02} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x2C, 0x0A, 0x01, 0x0A, 0x00, 0x00, 0x00, 0xC8, 0x00, 0x64, 0x02, 0x00, 0x00, 0x00, 0x00, 0x07, 0xD0, 0x01, 0x03, 0x5A, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x59} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x50, 0x02} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x59} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x51, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x01, 0x77, 0x01, 0x2C, 0x02, 0x58, 0x00, 0x3C, 0x3C, 0x01, 0xB3, 0xB3, 0x01, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x90} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x51, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x90} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x52, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x40, 0x00, 0x02, 0x00, 0x32, 0x81, 0x0C, 0x08, 0x2E, 0x52, 0x0C, 0x1C, 0x00, 0xC8, 0x00, 0x32, 0x00, 0x14, 0x03, 0xE8, 0x01, 0x01, 0x00, 0x00, 0x0A, 0xFF, 0xCE, 0xFF, 0xCE, 0x00, 0x01, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xAE} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x52, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xAE} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x53, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x15, 0x07, 0x11, 0x2C, 0xD3, 0xD7, 0xE0, 0xE0, 0xE3, 0xE3, 0xE6, 0xE5, 0xE5, 0xEA, 0xF4, 0xD3, 0xCA, 0xF3, 0xF3, 0xEB, 0xF0, 0xE2, 0xF0, 0xEE, 0xF2, 0xF2, 0xF7, 0xF9, 0xFA, 0xFA, 0xFC, 0xFE} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x08} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x53, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x08} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x53, 0x01} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0xF8, 0xF9, 0xF8, 0xF6, 0xEF, 0xF0, 0xF0, 0xFE, 0xFD, 0xE9, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xED} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x53, 0x01} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xED} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x54, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0xFB, 0x1D, 0x05, 0x09, 0x06, 0x03, 0x02, 0xFF, 0x00, 0xFC, 0xFF, 0xFD, 0xFF, 0xFA, 0x0E, 0x19, 0x02, 0x01, 0x02, 0xFB, 0xF5, 0xF5, 0x02, 0x01, 0x05, 0xFE, 0xFB, 0xFD, 0xFE, 0xFC, 0xF7, 0xFB} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xE3} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x54, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xE3} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x54, 0x01} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0xFA, 0xFD, 0xFE, 0x03, 0xFA, 0x0B, 0xFE, 0x03, 0xB9, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xC7} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x54, 0x01} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xC7} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x55, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0xFF, 0x4B, 0x01, 0x05, 0x02, 0x06, 0x06, 0xFF, 0x03, 0xFA, 0x01, 0xFD, 0xFA, 0x01, 0x1A, 0xE5, 0x7A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x33} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x55, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x33} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x6C, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0xFE, 0xE0, 0x00, 0x00, 0x28, 0x08, 0x42, 0xDF, 0xFE, 0xE5, 0xFB, 0xFD, 0xF8, 0xED, 0x0F, 0x09, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xEE} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x6C, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xEE} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x59, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x00, 0x0D, 0x00, 0x09, 0x00, 0x10, 0x00, 0x0E, 0x00, 0x23, 0x00, 0x15, 0x00, 0x18, 0x00, 0x17, 0x00, 0x17, 0x00, 0x18, 0x00, 0x18, 0x00, 0x16, 0x00, 0x24, 0x00, 0x25, 0x00, 0x5B, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x63} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x59, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x63} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x6D, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x0E, 0xBB, 0x0E, 0xE3, 0x0E, 0x9C, 0x11, 0x30, 0x10, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x4C} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x6D, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x4C} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x68, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x00, 0x00, 0x00, 0x00, 0xD4, 0x86, 0x4A, 0xC6, 0xB4, 0xC2, 0x6E, 0x2B, 0x03, 0x7C, 0x01, 0x48, 0xFD, 0xA3, 0xF6, 0x75, 0x12, 0x58, 0x2D, 0xB7, 0x00, 0x00, 0x00, 0x00, 0xCB, 0xD4, 0x1A, 0x05} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xA7} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x68, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xA7} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x68, 0x01} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x1C, 0x98, 0x02, 0xD3, 0xFF, 0xB9, 0x30, 0xEF, 0x05, 0x11, 0x05, 0x01, 0x00, 0x00, 0x10, 0x01, 0x00, 0x3C, 0x00, 0x50, 0x3C, 0x00, 0x64, 0x3C, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xEA} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x68, 0x01} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xEA} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x69, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0xFF, 0xFF, 0x0B, 0xD6, 0x7E, 0x74, 0x6D, 0xC6, 0x93, 0x0B, 0x0D, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xCA} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x69, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xCA} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x6B, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0xEF, 0x05, 0x11, 0x05, 0x01, 0x00, 0x00, 0x10, 0x01, 0x00, 0x3C, 0x00, 0x50, 0x3C, 0x00, 0x64, 0x3C, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x5B} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x6B, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x5B} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x70, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xFF} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x70, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xFF} } , + .data_len = 1, + }, +}; + +#endif diff --git a/drivers/power/bq27426_gmfs_atl.h b/drivers/power/bq27426_gmfs_atl.h new file mode 100644 index 0000000000000..afda7293698de --- /dev/null +++ b/drivers/power/bq27426_gmfs_atl.h @@ -0,0 +1,822 @@ +/***************************************************************************** +* Copyright 2010 Texas Instruments Corporation, All Rights Reserved. +* Copyright (C) 2018 XiaoMi, Inc. +* TI makes NO WARRANTY as to software products, which are supplied "AS-IS" +*****************************************************************************/ + +/***************************************************************************** +* This code is automatically generated from bqfs/dffs file. * +* DO NOT MODIFY THIS FILE DIRECTLY * +*****************************************************************************/ + + + +#ifndef __BQFS_ATL_FILE__ +#define __BQFS_ATL_FILE__ + +#include "bqfs_cmd_type.h" + +const bqfs_cmd_t bqfs_atl[] = { + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x00, + .data = {.bytes = {0x01, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x00, + .data = {.bytes = {0x26, 0x04} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x00, + .data = {.bytes = {0x02, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x00, + .data = {.bytes = {0x02, 0x02} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x00, + .data = {.bytes = {0x13, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 1100}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x02, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x02, 0x26, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xA5} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x02, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xA5} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x24, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x00, 0x19, 0x28, 0x63, 0x5F, 0xFF, 0x63, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x7C} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x24, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x7C} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x31, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x0A, 0x0F, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xDF} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x31, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xDF} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x40, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x64, 0x71, 0x0F, 0x96, 0x20, 0x62, 0x00, 0x14, 0x04, 0x00, 0x09, 0x04, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xB8} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x40, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xB8} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x44, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x00, 0x32, 0x01, 0xC2, 0x30, 0x00, 0x03, 0x08, 0x98, 0x01, 0x00, 0x3C, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xF9} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x44, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xF9} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x50, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x01, 0xF4, 0x00, 0x1E, 0xC8, 0x14, 0x08, 0x00, 0x3C, 0x0E, 0x10, 0x00, 0x0A, 0x46, 0x05, 0x14, 0x05, 0x0F, 0x03, 0x20, 0x7F, 0xFF, 0x00, 0xF0, 0x46, 0x50, 0x18, 0x01, 0x90, 0x00, 0x64, 0x19} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xE4} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x50, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xE4} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x50, 0x01} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0xDC, 0x5C, 0x60, 0x00, 0x7D, 0x00, 0x04, 0x03, 0x19, 0x25, 0x0F, 0x14, 0x0A, 0x78, 0x60, 0x28, 0x01, 0xF4, 0x00, 0x00, 0x00, 0x00, 0x43, 0x80, 0x04, 0x01, 0x14, 0x00, 0x08, 0x0B, 0xB8, 0x01} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xDB} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x50, 0x01} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xDB} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x50, 0x02} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x2C, 0x01, 0x01, 0x0A, 0x00, 0x00, 0x00, 0xC8, 0x00, 0x64, 0x02, 0x00, 0x00, 0x00, 0x00, 0x07, 0xD0, 0x01, 0x03, 0x5A, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x62} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x50, 0x02} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x62} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x51, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x01, 0x79, 0x00, 0xE8, 0x02, 0x5C, 0x00, 0x3C, 0x3C, 0x01, 0xB3, 0xB3, 0x01, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xCF} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x51, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xCF} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x52, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x3D, 0xE7, 0x00, 0x00, 0x00, 0x01, 0x0B, 0xCC, 0x2D, 0x6B, 0x0D, 0x48, 0x00, 0xC8, 0x00, 0x32, 0x00, 0x00, 0x7F, 0xFF, 0x01, 0x00, 0x73, 0x00, 0x0A, 0xFF, 0xCE, 0xFF, 0xCE, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x86} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x52, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x86} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x53, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x16, 0x64, 0x11, 0x28, 0xDD, 0xDB, 0xDF, 0xE0, 0xDD, 0xDF, 0xE9, 0xE6, 0xDC, 0xE6, 0xE6, 0xE9, 0xE2, 0xE8, 0xED, 0xE6, 0xE3, 0xEE, 0xEC, 0xF2, 0xF1, 0xF5, 0xF8, 0xF8, 0xF8, 0xFA, 0xFB, 0xFC} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xAE} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x53, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xAE} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x53, 0x01} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0xFD, 0xF6, 0xF5, 0xF1, 0xF2, 0xEE, 0xF6, 0xFE, 0xFC, 0xE8, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xEE} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x53, 0x01} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xEE} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x54, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0xFB, 0x1D, 0x04, 0x14, 0x29, 0x14, 0x0A, 0x2B, 0x1B, 0xC7, 0xE7, 0x4B, 0xF7, 0x08, 0xED, 0x21, 0x09, 0x07, 0x0E, 0xF8, 0xDD, 0xD4, 0xFD, 0x08, 0x03, 0xE9, 0xF9, 0xFA, 0xFA, 0xF1, 0xE9, 0xDE} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xDF} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x54, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xDF} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x54, 0x01} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0xE9, 0xFF, 0x06, 0x11, 0xFC, 0x0A, 0x00, 0x14, 0xC3, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xA2} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x54, 0x01} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xA2} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x55, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0xFF, 0x88, 0x01, 0x03, 0x03, 0xF4, 0x0B, 0xBF, 0x4F, 0xFE, 0x06, 0x00, 0xFA, 0xF7, 0x20, 0x82, 0xDB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xF2} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x55, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xF2} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x6C, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0xFE, 0xC9, 0x01, 0x04, 0x12, 0x21, 0xFB, 0xA3, 0x02, 0xDF, 0xF5, 0xFD, 0xE2, 0xED, 0xFD, 0x74, 0xF1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x5E} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x6C, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x5E} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x59, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x00, 0x29, 0x00, 0x29, 0x00, 0x26, 0x00, 0x2A, 0x00, 0x23, 0x00, 0x19, 0x00, 0x19, 0x00, 0x17, 0x00, 0x15, 0x00, 0x14, 0x00, 0x10, 0x00, 0x14, 0x00, 0x18, 0x00, 0x51, 0x00, 0xB3, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x88} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x59, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x88} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x6D, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x0B, 0x9B, 0x0E, 0xE6, 0x0E, 0xA7, 0x11, 0x2A, 0x10, 0xEA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x7B} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x6D, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x7B} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x70, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xFF} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x70, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xFF} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x00, + .data = {.bytes = {0x00, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x00, + .data = {.bytes = {0x42, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 2000}, + }, +}; + +#endif + + diff --git a/drivers/power/bq27426_gmfs_default.h b/drivers/power/bq27426_gmfs_default.h new file mode 100644 index 0000000000000..a902e55f02819 --- /dev/null +++ b/drivers/power/bq27426_gmfs_default.h @@ -0,0 +1,946 @@ +/***************************************************************************** +* Copyright 2010 Texas Instruments Corporation, All Rights Reserved. +* Copyright (C) 2018 XiaoMi, Inc. +* TI makes NO WARRANTY as to software products, which are supplied "AS-IS" +*****************************************************************************/ + +/***************************************************************************** +* This code is automatically generated from bqfs/dffs file. * +* DO NOT MODIFY THIS FILE DIRECTLY * +*****************************************************************************/ + + +#ifndef __BQFS_DEFAULT_FILE__ +#define __BQFS_DEFAULT_FILE__ + +#include "bqfs_cmd_type.h" + +const bqfs_cmd_t bqfs_default[] = { + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x00, + .data = {.bytes = {0x01, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x00, + .data = {.bytes = {0x26, 0x04} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x00, + .data = {.bytes = {0x02, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x00, + .data = {.bytes = {0x02, 0x02} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x02, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x02, 0x26, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xA5} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x02, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xA5} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x24, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x00, 0x19, 0x28, 0x63, 0x5F, 0xFF, 0x62, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x69} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x24, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x69} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x31, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x0A, 0x0F, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xDF} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x31, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xDF} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x40, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x64, 0x79, 0x07, 0x9F, 0x23, 0x00, 0x00, 0x14, 0x04, 0x00, 0x09, 0x04, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x0E} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x40, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x0E} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x44, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x00, 0x32, 0x01, 0xC2, 0x30, 0x00, 0x03, 0x08, 0x98, 0x01, 0x00, 0x3C, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xF9} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x44, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xF9} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x50, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x01, 0xF4, 0x00, 0x1E, 0xC8, 0x14, 0x08, 0x00, 0x3C, 0x0E, 0x10, 0x00, 0x0A, 0x46, 0x05, 0x14, 0x05, 0x0F, 0x03, 0x20, 0x7F, 0xFF, 0x00, 0xF0, 0x46, 0x50, 0x18, 0x01, 0x90, 0x00, 0x64, 0x19} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xE4} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x50, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xE4} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x50, 0x01} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0xDC, 0x5C, 0x60, 0x00, 0x7D, 0x00, 0x04, 0x03, 0x19, 0x25, 0x0F, 0x14, 0x0A, 0x78, 0x60, 0x28, 0x01, 0xF4, 0x00, 0x00, 0x00, 0x00, 0x43, 0x80, 0x04, 0x01, 0x14, 0x00, 0x08, 0x0B, 0xB8, 0x01} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xDB} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x50, 0x01} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xDB} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x50, 0x02} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x2C, 0x0A, 0x01, 0x0A, 0x00, 0x00, 0x00, 0xC8, 0x00, 0x64, 0x02, 0x00, 0x00, 0x00, 0x00, 0x07, 0xD0, 0x01, 0x03, 0x5A, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x59} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x50, 0x02} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x59} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x51, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x01, 0x77, 0x01, 0x2C, 0x02, 0x58, 0x00, 0x3C, 0x3C, 0x01, 0xB3, 0xB3, 0x01, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x90} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x51, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x90} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x52, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x40, 0x00, 0x02, 0x00, 0x32, 0x81, 0x0C, 0x08, 0x2E, 0x52, 0x0C, 0x1C, 0x00, 0xC8, 0x00, 0x32, 0x00, 0x14, 0x03, 0xE8, 0x01, 0x01, 0x00, 0x00, 0x0A, 0xFF, 0xCE, 0xFF, 0xCE, 0x00, 0x01, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xAE} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x52, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xAE} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x53, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x15, 0x07, 0x11, 0x2C, 0xD3, 0xD7, 0xE0, 0xE0, 0xE3, 0xE3, 0xE6, 0xE5, 0xE5, 0xEA, 0xF4, 0xD3, 0xCA, 0xF3, 0xF3, 0xEB, 0xF0, 0xE2, 0xF0, 0xEE, 0xF2, 0xF2, 0xF7, 0xF9, 0xFA, 0xFA, 0xFC, 0xFE} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x08} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x53, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x08} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x53, 0x01} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0xF8, 0xF9, 0xF8, 0xF6, 0xEF, 0xF0, 0xF0, 0xFE, 0xFD, 0xE9, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xED} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x53, 0x01} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xED} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x54, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0xFB, 0x1D, 0x05, 0x09, 0x06, 0x03, 0x02, 0xFF, 0x00, 0xFC, 0xFF, 0xFD, 0xFF, 0xFA, 0x0E, 0x19, 0x02, 0x01, 0x02, 0xFB, 0xF5, 0xF5, 0x02, 0x01, 0x05, 0xFE, 0xFB, 0xFD, 0xFE, 0xFC, 0xF7, 0xFB} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xE3} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x54, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xE3} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x54, 0x01} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0xFA, 0xFD, 0xFE, 0x03, 0xFA, 0x0B, 0xFE, 0x03, 0xB9, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xC7} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x54, 0x01} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xC7} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x55, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0xFF, 0x4B, 0x01, 0x05, 0x02, 0x06, 0x06, 0xFF, 0x03, 0xFA, 0x01, 0xFD, 0xFA, 0x01, 0x1A, 0xE5, 0x7A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x33} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x55, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x33} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x6C, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0xFE, 0xE0, 0x00, 0x00, 0x28, 0x08, 0x42, 0xDF, 0xFE, 0xE5, 0xFB, 0xFD, 0xF8, 0xED, 0x0F, 0x09, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xEE} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x6C, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xEE} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x59, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x00, 0x0D, 0x00, 0x09, 0x00, 0x10, 0x00, 0x0E, 0x00, 0x23, 0x00, 0x15, 0x00, 0x18, 0x00, 0x17, 0x00, 0x17, 0x00, 0x18, 0x00, 0x18, 0x00, 0x16, 0x00, 0x24, 0x00, 0x25, 0x00, 0x5B, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x63} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x59, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x63} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x6D, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x0E, 0xBB, 0x0E, 0xE3, 0x0E, 0x9C, 0x11, 0x30, 0x10, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x4C} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x6D, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x4C} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x68, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x00, 0x00, 0x00, 0x00, 0xD4, 0x86, 0x4A, 0xC6, 0xB4, 0xC2, 0x6E, 0x2B, 0x03, 0x7C, 0x01, 0x48, 0xFD, 0xA3, 0xF6, 0x75, 0x12, 0x58, 0x2D, 0xB7, 0x00, 0x00, 0x00, 0x00, 0xCB, 0xD4, 0x1A, 0x05} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xA7} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x68, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xA7} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x68, 0x01} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x1C, 0x98, 0x02, 0xD3, 0xFF, 0xB9, 0x30, 0xEF, 0x05, 0x11, 0x05, 0x01, 0x00, 0x00, 0x10, 0x01, 0x00, 0x3C, 0x00, 0x50, 0x3C, 0x00, 0x64, 0x3C, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xEA} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x68, 0x01} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xEA} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x69, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0xFF, 0xFF, 0x0B, 0xD6, 0x7E, 0x74, 0x6D, 0xC6, 0x93, 0x0B, 0x0D, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xCA} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x69, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xCA} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x6B, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0xEF, 0x05, 0x11, 0x05, 0x01, 0x00, 0x00, 0x10, 0x01, 0x00, 0x3C, 0x00, 0x50, 0x3C, 0x00, 0x64, 0x3C, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x5B} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x6B, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x5B} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x70, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xFF} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x70, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xFF} } , + .data_len = 1, + }, +}; + +#endif diff --git a/drivers/power/bq27426_gmfs_desay.h b/drivers/power/bq27426_gmfs_desay.h new file mode 100644 index 0000000000000..eeb676acfa9d2 --- /dev/null +++ b/drivers/power/bq27426_gmfs_desay.h @@ -0,0 +1,822 @@ +/***************************************************************************** +* Copyright 2010 Texas Instruments Corporation, All Rights Reserved. +* Copyright (C) 2018 XiaoMi, Inc. +* TI makes NO WARRANTY as to software products, which are supplied "AS-IS" +*****************************************************************************/ + +/***************************************************************************** +* This code is automatically generated from bqfs/dffs file. * +* DO NOT MODIFY THIS FILE DIRECTLY * +*****************************************************************************/ + + + +#ifndef __BQFS_DESAI_FILE__ +#define __BQFS_DESAI_FILE__ + +#include "bqfs_cmd_type.h" + +const bqfs_cmd_t bqfs_desay[] = { + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x00, + .data = {.bytes = {0x01, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x00, + .data = {.bytes = {0x26, 0x04} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x00, + .data = {.bytes = {0x02, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x00, + .data = {.bytes = {0x02, 0x02} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x00, + .data = {.bytes = {0x13, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 1100}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x02, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x02, 0x26, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xA5} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x02, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xA5} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x24, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x00, 0x19, 0x28, 0x63, 0x5F, 0xFF, 0x63, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x68} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x24, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x68} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x31, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x0A, 0x0F, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xDF} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x31, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xDF} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x40, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x64, 0x79, 0x0F, 0x86, 0x20, 0x21, 0x00, 0x14, 0x04, 0x00, 0x09, 0x04, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x01} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x40, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x01} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x44, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x00, 0x32, 0x01, 0xC2, 0x30, 0x00, 0x03, 0x08, 0x98, 0x01, 0x00, 0x3C, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xF9} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x44, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xF9} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x50, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x01, 0xF4, 0x00, 0x1E, 0xC8, 0x14, 0x08, 0x00, 0x3C, 0x0E, 0x10, 0x00, 0x0A, 0x46, 0x05, 0x14, 0x05, 0x0F, 0x03, 0x20, 0x7F, 0xFF, 0x00, 0xF0, 0x46, 0x50, 0x18, 0x01, 0x90, 0x00, 0x64, 0x19} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xE4} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x50, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xE4} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x50, 0x01} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0xDC, 0x5C, 0x60, 0x00, 0x7D, 0x00, 0x04, 0x03, 0x19, 0x25, 0x0F, 0x14, 0x0A, 0x78, 0x60, 0x28, 0x01, 0xF4, 0x00, 0x00, 0x00, 0x00, 0x43, 0x80, 0x04, 0x01, 0x14, 0x00, 0x08, 0x0B, 0xB8, 0x01} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xDB} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x50, 0x01} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xDB} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x50, 0x02} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x2C, 0x04, 0x01, 0x0A, 0x00, 0x00, 0x00, 0xC8, 0x00, 0x64, 0x02, 0x00, 0x00, 0x00, 0x00, 0x07, 0xD0, 0x01, 0x03, 0x5A, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x4D} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x50, 0x02} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x4D} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x51, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x01, 0x79, 0x00, 0xE8, 0x02, 0x5C, 0x00, 0x3C, 0x3C, 0x01, 0xB3, 0xB3, 0x01, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xCF} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x51, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xCF} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x52, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x41, 0xF3, 0x00, 0x00, 0x00, 0x01, 0x0B, 0xCC, 0x2D, 0x6B, 0x0D, 0x16, 0x00, 0x96, 0x00, 0x32, 0x00, 0x14, 0x03, 0xE8, 0x01, 0x00, 0x78, 0x00, 0x0A, 0xFF, 0xCE, 0xFF, 0xCD, 0x00, 0x02, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x53} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x52, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x53} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x53, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x16, 0x86, 0x11, 0x35, 0xD4, 0xD2, 0xDF, 0xE0, 0xE6, 0xE5, 0xDD, 0xE8, 0xEA, 0xEB, 0xEC, 0xCD, 0xCB, 0xF3, 0xF4, 0xE9, 0xF0, 0xE3, 0xF2, 0xED, 0xF2, 0xF4, 0xF8, 0xF8, 0xFA, 0xF9, 0xFC, 0xFD} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x8B} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x53, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x8B} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x53, 0x01} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0xF7, 0xF8, 0xFB, 0xF6, 0xEF, 0xF1, 0xF1, 0xFB, 0xFF, 0xDD, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xF7} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x53, 0x01} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xF7} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x54, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0xF8, 0x52, 0x04, 0x39, 0x55, 0x0C, 0x05, 0xE4, 0xEF, 0x32, 0xE4, 0xC8, 0xF5, 0x1B, 0x54, 0x66, 0x01, 0xED, 0xEE, 0xD4, 0xE9, 0xD8, 0x10, 0x09, 0xFE, 0xF4, 0xF7, 0xF3, 0xFC, 0xEA, 0xDD, 0xEE} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x80} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x54, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x80} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x54, 0x01} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0xEB, 0xEC, 0xE7, 0x22, 0xD3, 0x39, 0x07, 0xD7, 0xDB, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xD9} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x54, 0x01} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xD9} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x55, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0xFF, 0x43, 0x01, 0x07, 0x01, 0x09, 0x08, 0x00, 0x03, 0xF9, 0x02, 0xFB, 0x01, 0x00, 0x00, 0x02, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x30} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x55, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x30} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x6C, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0xFE, 0x9F, 0x00, 0x08, 0x2B, 0x3D, 0x05, 0xC7, 0xF7, 0xC6, 0xF9, 0x01, 0x1C, 0xCC, 0xEA, 0x0E, 0x1D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x72} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x6C, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x72} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x59, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x00, 0x31, 0x00, 0x31, 0x00, 0x32, 0x00, 0x34, 0x00, 0x35, 0x00, 0x29, 0x00, 0x2E, 0x00, 0x2B, 0x00, 0x2D, 0x00, 0x30, 0x00, 0x30, 0x00, 0x35, 0x00, 0x45, 0x00, 0x64, 0x00, 0xA5, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x70} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x59, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x70} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x6D, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x0B, 0xFD, 0x0E, 0xE4, 0x0E, 0xAF, 0x11, 0x29, 0x10, 0xCC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x32} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x6D, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x32} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x70, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xFF} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x70, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xFF} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x00, + .data = {.bytes = {0x00, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x00, + .data = {.bytes = {0x42, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 2000}, + }, +}; + +#endif + + diff --git a/drivers/power/bq27426_gmfs_scud.h b/drivers/power/bq27426_gmfs_scud.h new file mode 100644 index 0000000000000..f587f38a5b7b7 --- /dev/null +++ b/drivers/power/bq27426_gmfs_scud.h @@ -0,0 +1,822 @@ +/***************************************************************************** +* Copyright 2010 Texas Instruments Corporation, All Rights Reserved. +* Copyright (C) 2018 XiaoMi, Inc. +* TI makes NO WARRANTY as to software products, which are supplied "AS-IS" +*****************************************************************************/ + +/***************************************************************************** +* This code is automatically generated from bqfs/dffs file. * +* DO NOT MODIFY THIS FILE DIRECTLY * +*****************************************************************************/ + + + +#ifndef __BQFS_FEIMAOTUI_FILE__ +#define __BQFS_FEIMAOTUI_FILE__ + +#include "bqfs_cmd_type.h" + +const bqfs_cmd_t bqfs_scud[] = { + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x00, + .data = {.bytes = {0x01, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x00, + .data = {.bytes = {0x26, 0x04} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x00, + .data = {.bytes = {0x02, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x00, + .data = {.bytes = {0x02, 0x02} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x00, + .data = {.bytes = {0x13, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 1100}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x02, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x02, 0x26, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xA5} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x02, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xA5} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x24, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x00, 0x19, 0x28, 0x63, 0x5F, 0xFF, 0x63, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x7C} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x24, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x7C} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x31, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x0A, 0x0F, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xDF} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x31, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xDF} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x40, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x64, 0x71, 0x0F, 0x96, 0x20, 0x62, 0x00, 0x14, 0x04, 0x00, 0x09, 0x04, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xB8} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x40, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xB8} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x44, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x00, 0x32, 0x01, 0xC2, 0x30, 0x00, 0x03, 0x08, 0x98, 0x01, 0x00, 0x3C, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xF9} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x44, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xF9} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x50, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x01, 0xF4, 0x00, 0x1E, 0xC8, 0x14, 0x08, 0x00, 0x3C, 0x0E, 0x10, 0x00, 0x0A, 0x46, 0x05, 0x14, 0x05, 0x0F, 0x03, 0x20, 0x7F, 0xFF, 0x00, 0xF0, 0x46, 0x50, 0x18, 0x01, 0x90, 0x00, 0x64, 0x19} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xE4} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x50, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xE4} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x50, 0x01} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0xDC, 0x5C, 0x60, 0x00, 0x7D, 0x00, 0x04, 0x03, 0x19, 0x25, 0x0F, 0x14, 0x0A, 0x78, 0x60, 0x28, 0x01, 0xF4, 0x00, 0x00, 0x00, 0x00, 0x43, 0x80, 0x04, 0x01, 0x14, 0x00, 0x08, 0x0B, 0xB8, 0x01} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xDB} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x50, 0x01} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xDB} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x50, 0x02} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x2C, 0x01, 0x01, 0x0A, 0x00, 0x00, 0x00, 0xC8, 0x00, 0x64, 0x02, 0x00, 0x00, 0x00, 0x00, 0x07, 0xD0, 0x01, 0x03, 0x5A, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x62} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x50, 0x02} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x62} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x51, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x01, 0x79, 0x00, 0xE8, 0x02, 0x5C, 0x00, 0x3C, 0x3C, 0x01, 0xB3, 0xB3, 0x01, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xCF} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x51, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xCF} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x52, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x3D, 0xE7, 0x00, 0x00, 0x00, 0x01, 0x0B, 0xCC, 0x2D, 0x6B, 0x0D, 0x48, 0x00, 0xC8, 0x00, 0x32, 0x00, 0x00, 0x7F, 0xFF, 0x01, 0x00, 0x73, 0x00, 0x0A, 0xFF, 0xCE, 0xFF, 0xCE, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x86} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x52, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x86} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x53, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x16, 0x64, 0x11, 0x28, 0xDD, 0xDB, 0xDF, 0xE0, 0xDD, 0xDF, 0xE9, 0xE6, 0xDC, 0xE6, 0xE6, 0xE9, 0xE2, 0xE8, 0xED, 0xE6, 0xE3, 0xEE, 0xEC, 0xF2, 0xF1, 0xF5, 0xF8, 0xF8, 0xF8, 0xFA, 0xFB, 0xFC} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xAE} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x53, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xAE} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x53, 0x01} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0xFD, 0xF6, 0xF5, 0xF1, 0xF2, 0xEE, 0xF6, 0xFE, 0xFC, 0xE8, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xEE} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x53, 0x01} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xEE} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x54, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0xFB, 0x1D, 0x04, 0x14, 0x29, 0x14, 0x0A, 0x2B, 0x1B, 0xC7, 0xE7, 0x4B, 0xF7, 0x08, 0xED, 0x21, 0x09, 0x07, 0x0E, 0xF8, 0xDD, 0xD4, 0xFD, 0x08, 0x03, 0xE9, 0xF9, 0xFA, 0xFA, 0xF1, 0xE9, 0xDE} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xDF} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x54, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xDF} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x54, 0x01} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0xE9, 0xFF, 0x06, 0x11, 0xFC, 0x0A, 0x00, 0x14, 0xC3, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xA2} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x54, 0x01} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xA2} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x55, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0xFF, 0x88, 0x01, 0x03, 0x03, 0xF4, 0x0B, 0xBF, 0x4F, 0xFE, 0x06, 0x00, 0xFA, 0xF7, 0x20, 0x82, 0xDB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xF2} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x55, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xF2} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x6C, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0xFE, 0xC9, 0x01, 0x04, 0x12, 0x21, 0xFB, 0xA3, 0x02, 0xDF, 0xF5, 0xFD, 0xE2, 0xED, 0xFD, 0x74, 0xF1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x5E} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x6C, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x5E} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x59, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x00, 0x29, 0x00, 0x29, 0x00, 0x26, 0x00, 0x2A, 0x00, 0x23, 0x00, 0x19, 0x00, 0x19, 0x00, 0x17, 0x00, 0x15, 0x00, 0x14, 0x00, 0x10, 0x00, 0x14, 0x00, 0x18, 0x00, 0x51, 0x00, 0xB3, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x88} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x59, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x88} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x6D, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x0B, 0x9B, 0x0E, 0xE6, 0x0E, 0xA7, 0x11, 0x2A, 0x10, 0xEA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x7B} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x6D, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x7B} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x70, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xFF} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x70, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xFF} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x00, + .data = {.bytes = {0x00, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x00, + .data = {.bytes = {0x42, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 2000}, + }, +}; + +#endif + + diff --git a/drivers/power/bq27426_gmfs_sunwoda.h b/drivers/power/bq27426_gmfs_sunwoda.h new file mode 100644 index 0000000000000..d172381cb2dc8 --- /dev/null +++ b/drivers/power/bq27426_gmfs_sunwoda.h @@ -0,0 +1,822 @@ +/***************************************************************************** +* Copyright 2010 Texas Instruments Corporation, All Rights Reserved. +* Copyright (C) 2018 XiaoMi, Inc. +* TI makes NO WARRANTY as to software products, which are supplied "AS-IS" +*****************************************************************************/ + +/***************************************************************************** +* This code is automatically generated from bqfs/dffs file. * +* DO NOT MODIFY THIS FILE DIRECTLY * +*****************************************************************************/ + + + +#ifndef __BQFS_XINGWANGDA_FILE__ +#define __BQFS_XINGWANGDA_FILE__ + +#include "bqfs_cmd_type.h" + +const bqfs_cmd_t bqfs_sunwoda[] = { + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x00, + .data = {.bytes = {0x01, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x00, + .data = {.bytes = {0x26, 0x04} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x00, + .data = {.bytes = {0x02, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x00, + .data = {.bytes = {0x02, 0x02} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x00, + .data = {.bytes = {0x13, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 1100}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x02, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x02, 0x26, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xA5} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x02, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xA5} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x24, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x00, 0x19, 0x28, 0x63, 0x5F, 0xFF, 0x63, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x7C} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x24, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x7C} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x31, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x0A, 0x0F, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xDF} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x31, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xDF} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x40, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x64, 0x79, 0x0F, 0x96, 0x20, 0x3D, 0x00, 0x14, 0x04, 0x00, 0x09, 0x04, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xD5} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x40, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xD5} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x44, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x00, 0x32, 0x01, 0xC2, 0x30, 0x00, 0x03, 0x08, 0x98, 0x01, 0x00, 0x3C, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xF9} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x44, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xF9} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x50, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x01, 0xF4, 0x00, 0x1E, 0xC8, 0x14, 0x08, 0x00, 0x3C, 0x0E, 0x10, 0x00, 0x0A, 0x46, 0x05, 0x14, 0x05, 0x0F, 0x03, 0x20, 0x7F, 0xFF, 0x00, 0xF0, 0x46, 0x50, 0x18, 0x01, 0x90, 0x00, 0x64, 0x19} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xE4} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x50, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xE4} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x50, 0x01} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0xDC, 0x5C, 0x60, 0x00, 0x7D, 0x00, 0x04, 0x03, 0x19, 0x25, 0x0F, 0x14, 0x0A, 0x78, 0x60, 0x28, 0x01, 0xF4, 0x00, 0x00, 0x00, 0x00, 0x43, 0x80, 0x04, 0x01, 0x14, 0x00, 0x08, 0x0B, 0xB8, 0x01} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xDB} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x50, 0x01} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xDB} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x50, 0x02} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x2C, 0x01, 0x01, 0x0A, 0x00, 0x00, 0x00, 0xC8, 0x00, 0x64, 0x02, 0x00, 0x00, 0x00, 0x00, 0x07, 0xD0, 0x01, 0x03, 0x5A, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x62} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x50, 0x02} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x62} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x51, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x01, 0x79, 0x00, 0xE8, 0x02, 0x5C, 0x00, 0x3C, 0x3C, 0x01, 0xB3, 0xB3, 0x01, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xCF} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x51, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xCF} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x52, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x40, 0x61, 0x00, 0x00, 0x1E, 0x01, 0x0B, 0xCC, 0x2D, 0x6B, 0x0C, 0xE4, 0x00, 0xC8, 0x00, 0x32, 0x00, 0x00, 0x7F, 0xFF, 0x01, 0x00, 0x79, 0x00, 0x0A, 0xFF, 0xCE, 0xFF, 0xCE, 0x00, 0x01, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x49} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x52, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x49} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x53, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x16, 0x33, 0x11, 0x2B, 0xDD, 0xDE, 0xE0, 0xE1, 0xE2, 0xE2, 0xE4, 0xE4, 0xE3, 0xE5, 0xE9, 0xE3, 0xD7, 0xE7, 0xED, 0xEA, 0xE8, 0xEB, 0xEA, 0xF0, 0xF2, 0xF5, 0xF5, 0xF8, 0xF9, 0xFB, 0xF9, 0xFD} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xDE} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x53, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xDE} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x53, 0x01} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0xFB, 0xF6, 0xF7, 0xF6, 0xF2, 0xEF, 0xF4, 0xFA, 0xDA, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x78} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x53, 0x01} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x78} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x54, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0xF9, 0xD9, 0x05, 0x10, 0x0B, 0x03, 0xFF, 0xFD, 0xFF, 0xFC, 0xFD, 0x04, 0x01, 0xF9, 0x06, 0x2C, 0x07, 0x0B, 0xF7, 0xE9, 0xF4, 0x05, 0x03, 0x02, 0xFF, 0x02, 0xFD, 0xFA, 0xF8, 0x01, 0xEA, 0xF2} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x29} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x54, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x29} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x54, 0x01} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0xFC, 0xF7, 0xF8, 0x05, 0x06, 0x03, 0x0D, 0xC9, 0x12, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x9D} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x54, 0x01} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x9D} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x55, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0xFF, 0xA9, 0x00, 0x03, 0x05, 0x01, 0xFC, 0x07, 0x08, 0xF4, 0xFE, 0xF9, 0xF7, 0x01, 0x02, 0x36, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xDA} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x55, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xDA} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x6C, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0xFE, 0x94, 0x00, 0xED, 0x1A, 0x23, 0x05, 0xD9, 0xFF, 0xF0, 0x03, 0x07, 0xFD, 0x19, 0x33, 0x13, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x07} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x6C, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x07} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x59, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x00, 0x2D, 0x00, 0x26, 0x00, 0x28, 0x00, 0x32, 0x00, 0x2D, 0x00, 0x26, 0x00, 0x28, 0x00, 0x28, 0x00, 0x2A, 0x00, 0x2B, 0x00, 0x2B, 0x00, 0x31, 0x00, 0x3A, 0x00, 0x3C, 0x00, 0x4F, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x39} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x59, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x39} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x6D, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x0C, 0x99, 0x0E, 0xE3, 0x0E, 0xAD, 0x11, 0x0D, 0x10, 0xEA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x96} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x6D, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0x96} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x70, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x40, + .data = {.bytes = {0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} } , + .data_len = 32, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xFF} } , + .data_len = 1, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 10}, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x3E, + .data = {.bytes = {0x70, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_C, + .addr = 0xAA, + .reg = 0x60, + .data = {.bytes = {0xFF} } , + .data_len = 1, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x00, + .data = {.bytes = {0x00, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_W, + .addr = 0xAA, + .reg = 0x00, + .data = {.bytes = {0x42, 0x00} } , + .data_len = 2, + }, + { + .cmd_type = CMD_X, + .data = {.delay = 2000}, + }, +}; + +#endif + + diff --git a/drivers/power/bqfs_cmd_type.h b/drivers/power/bqfs_cmd_type.h new file mode 100644 index 0000000000000..311779ec6b5ce --- /dev/null +++ b/drivers/power/bqfs_cmd_type.h @@ -0,0 +1,42 @@ + + +#ifndef __BQFS_CMD_TYPE__ +#define __BQFS_CMD_TYPE__ + + +#define CMD_MAX_DATA_SIZE 110 +#define RETRY_LIMIT 3 +#define CMD_RETRY_DELAY 100 /* in ms */ + +#ifdef __GNUC__ +#define __PACKED __attribute__((packed)) +#else +#error "Make sure structure cmd_t is packed" +#endif + +typedef enum { + CMD_INVALID = 0, + CMD_R, /* Read */ + CMD_W, /* Write */ + CMD_C, /* Compare */ + CMD_X, /* Delay */ +} cmd_type_t; + +/* + * DO NOT change the order of fields - particularly reg + * should be immediately followed by data + */ +typedef struct { + cmd_type_t cmd_type; + u8 addr; + u8 reg; + union { + u8 bytes[CMD_MAX_DATA_SIZE + 1]; + u16 delay; + } data; + u8 data_len; + u16 line_num; +} __PACKED bqfs_cmd_t; + + +#endif diff --git a/drivers/power/cw2015_battery.c b/drivers/power/cw2015_battery.c new file mode 100644 index 0000000000000..06cba04f01b48 --- /dev/null +++ b/drivers/power/cw2015_battery.c @@ -0,0 +1,1300 @@ +/* + * Gas_Gauge driver for CW2015/2013 + * Copyright (C) 2012, CellWise + * Copyright (C) 2018 XiaoMi, Inc. + * + * Authors: ChenGang + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation.And this driver depends on + * I2C and uses IIC bus for communication with the host. + * + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + + +#define REG_VERSION 0x0 +#define REG_VCELL 0x2 +#define REG_SOC 0x4 +#define REG_RRT_ALERT 0x6 +#define REG_CONFIG 0x8 +#define REG_MODE 0xA +#define REG_BATINFO 0x10 + +#define MODE_SLEEP_MASK (0x3<<6) +#define MODE_SLEEP (0x3<<6) +#define MODE_NORMAL (0x0<<6) +#define MODE_QUICK_START (0x3<<4) +#define MODE_RESTART (0xf<<0) + +#define CONFIG_UPDATE_FLG (0x1<<1) +#define ATHD (0x0<<3) + + +#define BATTERY_UP_MAX_CHANGE 420 +#define BATTERY_DOWN_CHANGE 60 +#define BATTERY_DOWN_MIN_CHANGE_RUN 30 +#define BATTERY_DOWN_MIN_CHANGE_SLEEP 1800 +#define BATTERY_DOWN_MAX_CHANGE_RUN_AC_ONLINE 1800 + + + +#define BAT_LOW_INTERRUPT 0 +#define INVALID_GPIO (-1) +#define GPIO_LOW 0 +#define GPIO_HIGH 1 +#define USB_CHARGER_MODE 1 +#define AC_CHARGER_MODE 2 +int cw_capacity; + +struct cw_battery { + struct i2c_client *client; + struct workqueue_struct *battery_workqueue; + struct delayed_work battery_delay_work; + + struct delayed_work bat_low_wakeup_work; + const struct cw_bat_platform_data *plat_data; + struct power_supply rk_bat; + struct power_supply *batt_psy; + + + + long sleep_time_capacity_change; + long run_time_capacity_change; + + long sleep_time_charge_start; + long run_time_charge_start; + + int charger_mode; + int charger_init_mode; + int capacity; + int voltage; + int status; + int time_to_empty; + int alt; + + int bat_change; + struct regulator *vcc_i2c; + struct pinctrl *ts_pinctrl; + struct pinctrl_state *pinctrl_state_active; + struct pinctrl_state *pinctrl_state_suspend; + struct pinctrl_state *pinctrl_state_release; +}; + + +static u8 config_info[SIZE_BATINFO] = { + #include "profile_WT801_88509_NT_XinWangDa.h" +}; +static u8 config_info_xinwangda[SIZE_BATINFO] = { + #include "profile_WT801_88509_NT_XinWangDa.h" +}; +static u8 config_info_feimaotui[SIZE_BATINFO] = { + #include "profile_WT1001_88509_NT_Feimaotui.h" +}; + + + + +/* write data to address */ +static int cw_i2c_write( + struct i2c_client *client, + u8 addr, + u8 *pdata, + unsigned int datalen) +{ + int ret = 0; + u8 tmp_buf[128]; + unsigned int bytelen = 0; + + if (datalen > 125) { + pr_debug("%s too big datalen = %d!\n", __func__, datalen); + return -EPERM; + } + + tmp_buf[0] = addr; + bytelen++; + + if (datalen != 0 && pdata != NULL) { + memcpy(&tmp_buf[bytelen], pdata, datalen); + bytelen += datalen; + } + ret = i2c_master_send(client, tmp_buf, bytelen); + return ret; +} + +/* read data from addr */ +static int cw_i2c_read( + struct i2c_client *client, + u8 addr, + u8 *pdata, + unsigned int datalen) +{ + int ret = 0; + if (datalen > 126) { + pr_debug("%s too big datalen = %d!\n", __func__, datalen); + return -EPERM; + } + + /* set data address */ + ret = cw_i2c_write(client, addr, NULL, 0); + if (ret < 0) { + pr_debug("%s set data address fail!, ret is %d\n", __func__, ret); + return ret; + } + /* read data */ + return i2c_master_recv(client, pdata, datalen); +} + +static int cw_update_config_info(struct cw_battery *cw_bat) +{ + int ret; + u8 reg_val; + int i; + u8 reset_val; + + pr_debug("func: %s-------\n", __func__); + + /* make sure no in sleep mode */ + ret = cw_i2c_read(cw_bat->client, REG_MODE, ®_val, 1); + if (ret < 0) + return ret; + + reset_val = reg_val; + if ((reg_val & MODE_SLEEP_MASK) == MODE_SLEEP) { + dev_err(&cw_bat->client->dev, "Error, device in sleep mode, cannot update battery info\n"); + return -EPERM; + } + + /* update new battery info */ + for (i = 0; i < SIZE_BATINFO; i++) { + pr_debug("cw_bat->plat_data->cw_bat_config_info[%d] = 0x%x\n", i, \ + cw_bat->plat_data->cw_bat_config_info[i]); + ret = cw_i2c_write(cw_bat->client, REG_BATINFO + i, &cw_bat->plat_data->cw_bat_config_info[i], 1); + + if (ret < 0) + return ret; + } + + /* readback & check */ + for (i = 0; i < SIZE_BATINFO; i++) { + ret = cw_i2c_read(cw_bat->client, REG_BATINFO + i, ®_val, 1); + if (reg_val != cw_bat->plat_data->cw_bat_config_info[i]) + return -EPERM; + } + + /* set cw2015/cw2013 to use new battery info */ + ret = cw_i2c_read(cw_bat->client, REG_CONFIG, ®_val, 1); + if (ret < 0) + return ret; + + reg_val |= CONFIG_UPDATE_FLG; /* set UPDATE_FLAG */ + reg_val &= 0x07; /* clear ATHD */ + reg_val |= ATHD; /* set ATHD */ + ret = cw_i2c_write(cw_bat->client, REG_CONFIG, ®_val, 1); + if (ret < 0) + return ret; + + /* check 2015/cw2013 for ATHD & update_flag */ + ret = cw_i2c_read(cw_bat->client, REG_CONFIG, ®_val, 1); + if (ret < 0) + return ret; + + if (!(reg_val & CONFIG_UPDATE_FLG)) { + + pr_debug("update flag for new battery info have not set..\n"); + reg_val = MODE_SLEEP; + ret = cw_i2c_write(cw_bat->client, REG_MODE, ®_val, 1); + pr_debug("report battery capacity error"); + return -EPERM; + + } + + if ((reg_val & 0xf8) != ATHD) { + pr_debug("the new ATHD have not set..\n"); + } + + /* reset */ + reset_val &= ~(MODE_RESTART); + reg_val = reset_val | MODE_RESTART; + ret = cw_i2c_write(cw_bat->client, REG_MODE, ®_val, 1); + if (ret < 0) + return ret; + + msleep(10); + ret = cw_i2c_write(cw_bat->client, REG_MODE, &reset_val, 1); + if (ret < 0) + return ret; + + return 0; +} + +static int cw_check_ic(struct cw_battery *cw_bat) +{ + int ret = 1 ; + u8 reg_val = 0; + + ret = cw_i2c_read(cw_bat->client, REG_MODE/*REG_VERSION*/, ®_val, 1); + + if (ret < 0) { + if (ret == -107) { + return -107; + } else { + return ret; + } + } + if ((reg_val == 0xC0) || (reg_val == 0x00)) { + ret = 0; + } + + return ret; +} + +static int cw_init(struct cw_battery *cw_bat) +{ + int ret; + int i; + u8 reg_val = MODE_SLEEP; + if ((reg_val & MODE_SLEEP_MASK) == MODE_SLEEP) { + reg_val = MODE_NORMAL; + ret = cw_i2c_write(cw_bat->client, REG_MODE, ®_val, 1); + if (ret < 0) + return ret; + } + + ret = cw_i2c_read(cw_bat->client, REG_CONFIG, ®_val, 1); + if (ret < 0) + return ret; + + if ((reg_val & 0xf8) != ATHD) { + pr_debug("the new ATHD have not set\n"); + reg_val &= 0x07; /* clear ATHD */ + reg_val |= ATHD; /* set ATHD */ + ret = cw_i2c_write(cw_bat->client, REG_CONFIG, ®_val, 1); + if (ret < 0) + return ret; + } + + ret = cw_i2c_read(cw_bat->client, REG_CONFIG, ®_val, 1); + if (ret < 0) + return ret; + + if (!(reg_val & CONFIG_UPDATE_FLG)) { + pr_debug("update flag for new battery info have not set\n"); + ret = cw_update_config_info(cw_bat); + if (ret < 0) + return ret; + } else { + for (i = 0; i < SIZE_BATINFO; i++) { + ret = cw_i2c_read(cw_bat->client, (REG_BATINFO + i), ®_val, 1); + if (ret < 0) + return ret; + + if (cw_bat->plat_data->cw_bat_config_info[i] != reg_val) + break; + } + + if (i != SIZE_BATINFO) { + pr_debug("update flag for new battery info have not set\n"); + ret = cw_update_config_info(cw_bat); + if (ret < 0) + return ret; + } + } + + for (i = 0; i < 30; i++) { + msleep(100); + ret = cw_i2c_read(cw_bat->client, REG_SOC, ®_val, 1); + if (ret < 0) + return ret; + else if (reg_val <= 0x64) + break; + + if (i > 25) + dev_err(&cw_bat->client->dev, "cw2015/cw2013 input unvalid power error\n"); + + } + if (i >= 30) { + reg_val = MODE_SLEEP; + ret = cw_i2c_write(cw_bat->client, REG_MODE, ®_val, 1); + pr_debug("report battery capacity error"); + return -EPERM; + } + return 0; +} + +static void cw_update_time_member_charge_start(struct cw_battery *cw_bat) +{ + struct timespec ts; + int new_run_time; + int new_sleep_time; + + ktime_get_ts(&ts); + new_run_time = ts.tv_sec; + + get_monotonic_boottime(&ts); + new_sleep_time = ts.tv_sec - new_run_time; + + cw_bat->run_time_charge_start = new_run_time; + cw_bat->sleep_time_charge_start = new_sleep_time; +} + +static void cw_update_time_member_capacity_change(struct cw_battery *cw_bat) +{ + struct timespec ts; + int new_run_time; + int new_sleep_time; + + ktime_get_ts(&ts); + new_run_time = ts.tv_sec; + + get_monotonic_boottime(&ts); + new_sleep_time = ts.tv_sec - new_run_time; + + cw_bat->run_time_capacity_change = new_run_time; + cw_bat->sleep_time_capacity_change = new_sleep_time; +} + +static int cw_quickstart(struct cw_battery *cw_bat) +{ + int ret = 0; + u8 reg_val = MODE_QUICK_START; + + ret = cw_i2c_write(cw_bat->client, REG_MODE, ®_val, 1); + if (ret < 0) { + dev_err(&cw_bat->client->dev, "Error quick start1\n"); + return ret; + } + + reg_val = MODE_NORMAL; + ret = cw_i2c_write(cw_bat->client, REG_MODE, ®_val, 1); + if (ret < 0) { + dev_err(&cw_bat->client->dev, "Error quick start2\n"); + return ret; + } + return 1; +} + +static int cw_get_capacity(struct cw_battery *cw_bat) +{ + + int ret; + u8 reg_val[2]; + + struct timespec ts; + long new_run_time; + long new_sleep_time; + long capacity_or_aconline_time; + int allow_change; + int allow_capacity; + static int if_quickstart; + static int jump_flag; + static int jump_flag2; + static int reset_loop; + int charge_time; + u8 reset_val; + + + + + ret = cw_i2c_read(cw_bat->client, REG_SOC, reg_val, 2); + if (ret < 0) + return ret; + + cw_capacity = reg_val[0]; + if ((cw_capacity < 0) || (cw_capacity > 100)) { + dev_err(&cw_bat->client->dev, "get cw_capacity error; cw_capacity = %d\n", cw_capacity); + reset_loop++; + + if (reset_loop > 5) { + reset_val = MODE_SLEEP; + ret = cw_i2c_write(cw_bat->client, REG_MODE, &reset_val, 1); + if (ret < 0) + return ret; + reset_val = MODE_NORMAL; + msleep(10); + ret = cw_i2c_write(cw_bat->client, REG_MODE, &reset_val, 1); + if (ret < 0) + return ret; + pr_debug("report battery capacity error"); + ret = cw_update_config_info(cw_bat); + if (ret) + return ret; + reset_loop = 0; + } + return cw_capacity; + } else { + reset_loop = 0; + } + + if (cw_capacity == 0) + pr_debug("the cw201x capacity is 0 !!!!!!!, funciton: %s, line: %d\n", __func__, __LINE__); + else + pr_debug("the cw201x capacity is %d, funciton: %s\n", cw_capacity, __func__); + + + + ktime_get_ts(&ts); + new_run_time = ts.tv_sec; + + get_monotonic_boottime(&ts); + new_sleep_time = ts.tv_sec - new_run_time; + + if (((cw_bat->charger_mode > 0) && (cw_capacity <= (cw_bat->capacity - 1)) && (cw_capacity > (cw_bat->capacity - 30/*9*/))) + || ((cw_bat->charger_mode == 0) && (cw_capacity == (cw_bat->capacity + 1)))) { + + if (!(cw_capacity == 0 && cw_bat->capacity <= 2)) { + cw_capacity = cw_bat->capacity; + } + } + + if ((cw_bat->charger_mode > 0) && (cw_capacity >= 95) && (cw_capacity <= cw_bat->capacity)) { + + capacity_or_aconline_time = (cw_bat->sleep_time_capacity_change > cw_bat->sleep_time_charge_start) ? cw_bat->sleep_time_capacity_change : cw_bat->sleep_time_charge_start; + capacity_or_aconline_time += (cw_bat->run_time_capacity_change > cw_bat->run_time_charge_start) ? cw_bat->run_time_capacity_change : cw_bat->run_time_charge_start; + allow_change = (new_sleep_time + new_run_time - capacity_or_aconline_time) / BATTERY_UP_MAX_CHANGE; + if (allow_change > 0) { + allow_capacity = cw_bat->capacity + allow_change; + cw_capacity = (allow_capacity <= 100) ? allow_capacity : 100; + jump_flag = 1; + } else if (cw_capacity <= cw_bat->capacity) { + cw_capacity = cw_bat->capacity; + } + + } else if ((cw_bat->charger_mode == 0) && cw_bat->capacity == 100 && cw_capacity < cw_bat->capacity && jump_flag2 == 0) { + cw_capacity = cw_bat->capacity; + jump_flag2 = 1; + } else if ((cw_bat->charger_mode == 0) && (cw_capacity <= cw_bat->capacity) && (cw_capacity >= 90) && ((jump_flag == 1) || (jump_flag2 == 1))) { + capacity_or_aconline_time = (cw_bat->sleep_time_capacity_change > cw_bat->sleep_time_charge_start) ? cw_bat->sleep_time_capacity_change : cw_bat->sleep_time_charge_start; + capacity_or_aconline_time += (cw_bat->run_time_capacity_change > cw_bat->run_time_charge_start) ? cw_bat->run_time_capacity_change : cw_bat->run_time_charge_start; + allow_change = (new_sleep_time + new_run_time - capacity_or_aconline_time) / BATTERY_DOWN_CHANGE; + if (allow_change > 0) { + allow_capacity = cw_bat->capacity - allow_change; + if (cw_capacity >= allow_capacity) { + jump_flag = 0; + jump_flag2 = 0; + } else{ + cw_capacity = (allow_capacity <= 100) ? allow_capacity : 100; + } + } else if (cw_capacity <= cw_bat->capacity) { + cw_capacity = cw_bat->capacity; + } + } + + if ((cw_capacity == 0) && (cw_bat->capacity > 1)) { + allow_change = ((new_run_time - cw_bat->run_time_capacity_change) / BATTERY_DOWN_MIN_CHANGE_RUN); + allow_change += ((new_sleep_time - cw_bat->sleep_time_capacity_change) / BATTERY_DOWN_MIN_CHANGE_SLEEP); + + allow_capacity = cw_bat->capacity - allow_change; + cw_capacity = (allow_capacity >= cw_capacity) ? allow_capacity : cw_capacity; + pr_debug("report GGIC POR happened"); + reg_val[0] = MODE_NORMAL; + ret = cw_i2c_write(cw_bat->client, REG_MODE, reg_val, 1); + if (ret < 0) + return ret; + pr_debug("report battery capacity jump 0 "); + } + +#if 1 + if ((cw_bat->charger_mode > 0) && (cw_capacity == 0)) { + charge_time = new_sleep_time + new_run_time - cw_bat->sleep_time_charge_start - cw_bat->run_time_charge_start; + if ((charge_time > BATTERY_DOWN_MAX_CHANGE_RUN_AC_ONLINE) && (if_quickstart == 0)) { + cw_quickstart(cw_bat); + reset_val = MODE_SLEEP; + ret = cw_i2c_write(cw_bat->client, REG_MODE, &reset_val, 1); + if (ret < 0) + return ret; + reset_val = MODE_NORMAL; + msleep(10); + ret = cw_i2c_write(cw_bat->client, REG_MODE, &reset_val, 1); + if (ret < 0) + return ret; + pr_debug("report battery capacity error"); + ret = cw_update_config_info(cw_bat); + if (ret) + return ret; + pr_debug("report battery capacity still 0 if in changing"); + if_quickstart = 1; + } + } else if ((if_quickstart == 1) && (cw_bat->charger_mode == 0)) { + if_quickstart = 0; + } + +#endif + +#ifdef SYSTEM_SHUTDOWN_VOLTAGE + if ((cw_bat->charger_mode == 0) && (cw_capacity <= 20) && (cw_bat->voltage <= SYSTEM_SHUTDOWN_VOLTAGE)) { + if (if_quickstart == 10) { + + allow_change = ((new_run_time - cw_bat->run_time_capacity_change) / BATTERY_DOWN_MIN_CHANGE_RUN); + allow_change += ((new_sleep_time - cw_bat->sleep_time_capacity_change) / BATTERY_DOWN_MIN_CHANGE_SLEEP); + + allow_capacity = cw_bat->capacity - allow_change; + cw_capacity = (allow_capacity >= 0) ? allow_capacity : 0; + + if (cw_capacity < 1) { + cw_quickstart(cw_bat); + if_quickstart = 12; + cw_capacity = 0; + } + } else if (if_quickstart <= 10) + if_quickstart = if_quickstart+2; + pr_debug("the cw201x voltage is less than SYSTEM_SHUTDOWN_VOLTAGE !!!!!!!, funciton: %s, line: %d\n", __func__, __LINE__); + } else if ((cw_bat->charger_mode > 0) && (if_quickstart <= 12)) { + if_quickstart = 0; + } +#endif + return cw_capacity; +} + +static int cw_get_vol(struct cw_battery *cw_bat) +{ + int ret; + u8 reg_val[2]; + u16 value16, value16_1, value16_2, value16_3; + int voltage; + + ret = cw_i2c_read(cw_bat->client, REG_VCELL, reg_val, 2); + if (ret < 0) + return ret; + value16 = (reg_val[0] * 256) + reg_val[1]; + + ret = cw_i2c_read(cw_bat->client, REG_VCELL, reg_val, 2); + if (ret < 0) + return ret; + value16_1 = (reg_val[0] << 8) + reg_val[1]; + + ret = cw_i2c_read(cw_bat->client, REG_VCELL, reg_val, 2); + if (ret < 0) + return ret; + value16_2 = (reg_val[0] << 8) + reg_val[1]; + + + if (value16 > value16_1) { + value16_3 = value16; + value16 = value16_1; + value16_1 = value16_3; + } + + if (value16_1 > value16_2) { + value16_3 = value16_1; + value16_1 = value16_2; + value16_2 = value16_3; + } + + if (value16 > value16_1) { + value16_3 = value16; + value16 = value16_1; + value16_1 = value16_3; + } + + voltage = value16_1 * 312 / 1024; + voltage = voltage * 1000; + + pr_debug("get cw_voltage : cw_voltage = %d\n", voltage); + + return voltage; +} + +#ifdef BAT_LOW_INTERRUPT +static int cw_get_alt(struct cw_battery *cw_bat) +{ + int ret = 0; + u8 reg_val; + u8 value8 = 0; + int alrt; + + ret = cw_i2c_read(cw_bat->client, REG_RRT_ALERT, ®_val, 1); + if (ret < 0) + return ret; + value8 = reg_val; + alrt = value8 >> 7; + + + value8 = value8&0x7f; + reg_val = value8; + ret = cw_i2c_write(cw_bat->client, REG_RRT_ALERT, ®_val, 1); + if (ret < 0) { + dev_err(&cw_bat->client->dev, "Error clear ALRT\n"); + return ret; + } + return alrt; +} +#endif + +static int cw_get_time_to_empty(struct cw_battery *cw_bat) +{ + int ret; + u8 reg_val; + u16 value16; + + ret = cw_i2c_read(cw_bat->client, REG_RRT_ALERT, ®_val, 1); + if (ret < 0) + return ret; + + value16 = reg_val; + + ret = cw_i2c_read(cw_bat->client, REG_RRT_ALERT + 1, ®_val, 1); + if (ret < 0) + return ret; + + value16 = ((value16 << 8) + reg_val) & 0x1fff; + return value16; +} + +static void rk_bat_update_capacity(struct cw_battery *cw_bat) +{ + + + cw_capacity = cw_get_capacity(cw_bat); + if ((cw_capacity >= 0) && (cw_capacity <= 100) && (cw_bat->capacity != cw_capacity)) { + cw_bat->capacity = cw_capacity; + cw_bat->bat_change = 1; + cw_update_time_member_capacity_change(cw_bat); + + if (cw_bat->capacity == 0) + pr_debug("report battery capacity 0 and will shutdown if no changing"); + } +} + + +static void rk_bat_update_vol(struct cw_battery *cw_bat) +{ + int ret; + ret = cw_get_vol(cw_bat); + if ((ret >= 0) && (cw_bat->voltage != ret)) { + cw_bat->voltage = ret; + cw_bat->bat_change = 1; + } +} + + + +extern int power_supply_get_battery_charge_state(struct power_supply *psy); +static struct power_supply *charge_psy; +static u8 is_charger_plug; + + +static void rk_bat_update_status(struct cw_battery *cw_bat) +{ + int status; + union power_supply_propval ret = {0,}; + + + + + if (!charge_psy) { + charge_psy = power_supply_get_by_name("usb"); + } else{ + is_charger_plug = (u8)power_supply_get_battery_charge_state(charge_psy); + } + + pr_debug("Chaman for test is_charger_plug %d\n", is_charger_plug); + if (is_charger_plug == 0) + cw_bat->charger_mode = POWER_SUPPLY_TYPE_UNKNOWN; + else + cw_bat->charger_mode = USB_CHARGER_MODE; + + if (cw_bat->batt_psy == NULL) + cw_bat->batt_psy = power_supply_get_by_name("battery"); + if (cw_bat->batt_psy) { + /* if battery has been registered, use the status property */ + cw_bat->batt_psy->get_property(cw_bat->batt_psy, + POWER_SUPPLY_PROP_STATUS, &ret); + status = ret.intval; + } else{ + /* Default to false if the battery power supply is not registered. */ + pr_debug("battery power supply is not registered\n"); + status = POWER_SUPPLY_STATUS_UNKNOWN; + } + + if (cw_bat->status != status) { + cw_bat->status = status; + cw_bat->bat_change = 1; + } +} + +static void rk_bat_update_time_to_empty(struct cw_battery *cw_bat) +{ + int ret; + ret = cw_get_time_to_empty(cw_bat); + if ((ret >= 0) && (cw_bat->time_to_empty != ret)) { + cw_bat->time_to_empty = ret; + cw_bat->bat_change = 1; + } + +} + +static void cw_bat_work(struct work_struct *work) +{ + struct delayed_work *delay_work; + struct cw_battery *cw_bat; + + + delay_work = container_of(work, struct delayed_work, work); + cw_bat = container_of(delay_work, struct cw_battery, battery_delay_work); + + rk_bat_update_status(cw_bat); + rk_bat_update_capacity(cw_bat); + rk_bat_update_vol(cw_bat); + rk_bat_update_time_to_empty(cw_bat); + + if (cw_bat->bat_change) { + power_supply_changed(&cw_bat->rk_bat); + cw_bat->bat_change = 0; + } + + queue_delayed_work(cw_bat->battery_workqueue, &cw_bat->battery_delay_work, msecs_to_jiffies(10000)); + + pr_debug("cw_bat->bat_change = %d, cw_bat->time_to_empty = %d, cw_bat->capacity = %d, cw_bat->voltage = %d\n", \ + cw_bat->bat_change, cw_bat->time_to_empty, cw_bat->capacity, cw_bat->voltage); +} + +static int rk_battery_get_property(struct power_supply *psy, + enum power_supply_property psp, + union power_supply_propval *val) +{ + int ret = 0; + struct cw_battery *cw_bat; + + cw_bat = container_of(psy, struct cw_battery, rk_bat); + switch (psp) { + case POWER_SUPPLY_PROP_CAPACITY: + val->intval = cw_bat->capacity; + break; + + case POWER_SUPPLY_PROP_PRESENT: + val->intval = cw_bat->voltage <= 0 ? 0 : 1; + break; + + case POWER_SUPPLY_PROP_VOLTAGE_NOW: + val->intval = cw_bat->voltage; + break; + + case POWER_SUPPLY_PROP_TIME_TO_EMPTY_NOW: + val->intval = cw_bat->time_to_empty; + break; + + case POWER_SUPPLY_PROP_TECHNOLOGY: + val->intval = POWER_SUPPLY_TECHNOLOGY_LIPO; + break; + + default: + break; + } + return ret; +} + +static enum power_supply_property rk_battery_properties[] = { + POWER_SUPPLY_PROP_CAPACITY, + + + POWER_SUPPLY_PROP_PRESENT, + POWER_SUPPLY_PROP_VOLTAGE_NOW, + POWER_SUPPLY_PROP_TIME_TO_EMPTY_NOW, + POWER_SUPPLY_PROP_TECHNOLOGY, +}; + +#ifdef BAT_LOW_INTERRUPT + +#define WAKE_LOCK_TIMEOUT (10 * HZ) +static struct wake_lock bat_low_wakelock; + +static void bat_low_detect_do_wakeup(struct work_struct *work) +{ + struct delayed_work *delay_work; + struct cw_battery *cw_bat; + + delay_work = container_of(work, struct delayed_work, work); + cw_bat = container_of(delay_work, struct cw_battery, bat_low_wakeup_work); + pr_debug("func: %s-------\n", __func__); + cw_get_alt(cw_bat); + +} + +static irqreturn_t bat_low_detect_irq_handler(int irq, void *dev_id) +{ + struct cw_battery *cw_bat = dev_id; + + wake_lock_timeout(&bat_low_wakelock, WAKE_LOCK_TIMEOUT); + queue_delayed_work(cw_bat->battery_workqueue, &cw_bat->bat_low_wakeup_work, msecs_to_jiffies(20)); + return IRQ_HANDLED; +} +#endif + +#ifdef CONFIG_PM +static int cw_bat_suspend(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct cw_battery *cw_bat = i2c_get_clientdata(client); + pr_debug("%s\n", __func__); + cancel_delayed_work(&cw_bat->battery_delay_work); + + pr_debug("cw_bat->capacity:%d\n", cw_bat->capacity); + return 0; +} + +static int cw_bat_resume(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct cw_battery *cw_bat = i2c_get_clientdata(client); + pr_debug("%s\n", __func__); + queue_delayed_work(cw_bat->battery_workqueue, &cw_bat->battery_delay_work, msecs_to_jiffies(1)); + pr_debug("cw_bat->capacity:%d\n", cw_bat->capacity); + return 0; +} + +static const struct dev_pm_ops cw_bat_pm_ops = { + .suspend = cw_bat_suspend, + .resume = cw_bat_resume, + +}; +#endif + +#ifdef CONFIG_OF +static int cw_bat_parse_dt(struct device *dev, struct cw_bat_platform_data *pdata) +{ + struct device_node *np = dev->of_node; + pdata->bat_low_pin = of_get_named_gpio_flags(np, + "cw2015,irq-gpio", 0, &pdata->irq_flags); + + return 0; +} +#else +static int cw_bat_parse_dt(struct device *dev, struct cw_bat_platform_data *pdata) +{ + return 0; +} +#endif +#ifdef BAT_LOW_INTERRUPT +#define PINCTRL_STATE_ACTIVE "pmx_ts_active" +#define PINCTRL_STATE_SUSPEND "pmx_ts_suspend" +#define PINCTRL_STATE_RELEASE "pmx_ts_release" +#define CW_I2C_VTG_MIN_UV 1800000 +#define CW_I2C_VTG_MAX_UV 1800000 +#define CW_VIO_LOAD_MAX_UA 10000 +static int cw_bat_regulator_configure(struct cw_battery *cw_bat, bool on) +{ + int retval; + + if (on == false) + goto hw_shutdown; + + cw_bat->vcc_i2c = regulator_get(&cw_bat->client->dev, + "vcc_i2c"); + if (IS_ERR(cw_bat->vcc_i2c)) { + dev_err(&cw_bat->client->dev, + "%s: Failed to get i2c regulator\n", + __func__); + retval = PTR_ERR(cw_bat->vcc_i2c); + goto hw_shutdown; + } + + if (regulator_count_voltages(cw_bat->vcc_i2c) > 0) { + retval = regulator_set_voltage(cw_bat->vcc_i2c, + CW_I2C_VTG_MIN_UV, CW_I2C_VTG_MAX_UV); + if (retval) { + dev_err(&cw_bat->client->dev, + "%s reg set i2c vtg failed retval =%d\n", __func__, + retval); + goto err_set_vtg_i2c; + } + } + return 0; + +err_set_vtg_i2c: + regulator_put(cw_bat->vcc_i2c); + +hw_shutdown: + if (regulator_count_voltages(cw_bat->vcc_i2c) > 0) + regulator_set_voltage(cw_bat->vcc_i2c, 0, + CW_I2C_VTG_MAX_UV); + regulator_put(cw_bat->vcc_i2c); + + return 0; +}; + +static int reg_set_optimum_mode_check(struct regulator *reg, int load_uA) +{ + return (regulator_count_voltages(reg) > 0) ? + regulator_set_optimum_mode(reg, load_uA) : 0; +} + +static int cw_bat_power_on(struct cw_battery *cw_bat, + bool on) { + int retval; + + if (on == false) + goto power_off; + + retval = reg_set_optimum_mode_check(cw_bat->vcc_i2c, CW_VIO_LOAD_MAX_UA); + if (retval < 0) { + dev_err(&cw_bat->client->dev, + "%s Regulator vcc_i2c set_opt failed rc=%d\n", __func__, + retval); + goto power_off; + } + + retval = regulator_enable(cw_bat->vcc_i2c); + if (retval) { + dev_err(&cw_bat->client->dev, + "%s Regulator vcc_i2c enable failed rc=%d\n", __func__, + retval); + goto error_reg_en_vcc_i2c; + } + + msleep(200); + return 0; + +error_reg_en_vcc_i2c: + reg_set_optimum_mode_check(cw_bat->vcc_i2c, 0); + return retval; + +power_off: + reg_set_optimum_mode_check(cw_bat->vcc_i2c, 0); + regulator_disable(cw_bat->vcc_i2c); + + msleep(100); + return 0; +} + +static int cw_bat_pinctrl_init(struct cw_battery *cw_bat) +{ + int retval; + + /* Get pinctrl if target uses pinctrl */ + cw_bat->ts_pinctrl = devm_pinctrl_get(&(cw_bat->client->dev)); + if (IS_ERR_OR_NULL(cw_bat->ts_pinctrl)) { + retval = PTR_ERR(cw_bat->ts_pinctrl); + pr_debug( + "%s Target does not use pinctrl %d\n", __func__, retval); + goto err_pinctrl_get; + } + + cw_bat->pinctrl_state_active + = pinctrl_lookup_state(cw_bat->ts_pinctrl, + PINCTRL_STATE_ACTIVE); + if (IS_ERR_OR_NULL(cw_bat->pinctrl_state_active)) { + retval = PTR_ERR(cw_bat->pinctrl_state_active); + dev_err(&cw_bat->client->dev, + "%s Can not lookup %s pinstate %d\n", + __func__, PINCTRL_STATE_ACTIVE, retval); + goto err_pinctrl_lookup; + } + + cw_bat->pinctrl_state_suspend + = pinctrl_lookup_state(cw_bat->ts_pinctrl, + PINCTRL_STATE_SUSPEND); + if (IS_ERR_OR_NULL(cw_bat->pinctrl_state_suspend)) { + retval = PTR_ERR(cw_bat->pinctrl_state_suspend); + dev_err(&cw_bat->client->dev, + "%s Can not lookup %s pinstate %d\n", + __func__, PINCTRL_STATE_SUSPEND, retval); + goto err_pinctrl_lookup; + } + + return 0; + +err_pinctrl_lookup: + devm_pinctrl_put(cw_bat->ts_pinctrl); +err_pinctrl_get: + cw_bat->ts_pinctrl = NULL; + return retval; +} + + +static int cw_bat_pinctrl_select(struct cw_battery *cw_bat, bool on) +{ + struct pinctrl_state *pins_state; + int ret; + + pins_state = on ? cw_bat->pinctrl_state_active + : cw_bat->pinctrl_state_suspend; + if (!IS_ERR_OR_NULL(pins_state)) { + ret = pinctrl_select_state(cw_bat->ts_pinctrl, pins_state); + if (ret) { + dev_err(&cw_bat->client->dev, + "%s can not set %s pins\n", __func__, + on ? "pmx_ts_active" : "pmx_ts_suspend"); + return ret; + } + } else + dev_err(&cw_bat->client->dev, + "%s not a valid '%s' pinstate\n", __func__, + on ? "pmx_ts_active" : "pmx_ts_suspend"); + + return 0; +} + + +static int cw_bat_gpio_configure(struct cw_battery *cw_bat, bool on) +{ + int retval = 0; + + if (on) { + if (gpio_is_valid(cw_bat->plat_data->bat_low_pin)) { + /* configure irq gpio */ + retval = gpio_request(cw_bat->plat_data->bat_low_pin, + "rmi4_irq_gpio"); + if (retval) { + dev_err(&cw_bat->client->dev, + "%s unable to request gpio [%d]\n", __func__, + cw_bat->plat_data->bat_low_pin); + goto err_irq_gpio_req; + } + retval = gpio_direction_input(cw_bat->plat_data->bat_low_pin); + if (retval) { + dev_err(&cw_bat->client->dev, + "%s unable to set direction for gpio " \ + "[%d]\n", __func__, cw_bat->plat_data->bat_low_pin); + goto err_irq_gpio_dir; + } + } else { + dev_err(&cw_bat->client->dev, + "%s irq gpio not provided\n", __func__); + goto err_irq_gpio_req; + } + + return 0; + } else { + return 0; + } + +err_irq_gpio_dir: + if (gpio_is_valid(cw_bat->plat_data->bat_low_pin)) + gpio_free(cw_bat->plat_data->bat_low_pin); +err_irq_gpio_req: + return retval; +} +#endif + +extern int battery_type_id ; +static int cw_bat_probe(struct i2c_client *client, const struct i2c_device_id *id) +{ + struct cw_bat_platform_data *pdata = client->dev.platform_data; + struct cw_battery *cw_bat; + int ret; + int loop = 0; + + pr_debug("\ncw2015/cw2013 driver v1.2 probe start, battery_type_id is %d\n", battery_type_id); + + cw_bat = kzalloc(sizeof(struct cw_battery), GFP_KERNEL); + if (!cw_bat) { + dev_err(&cw_bat->client->dev, "fail to allocate memory\n"); + return -ENOMEM; + } + if (client->dev.of_node) { + pdata = devm_kzalloc(&client->dev, + sizeof(struct cw_bat_platform_data), GFP_KERNEL); + if (!pdata) { + dev_err(&client->dev, + "GTP Failed to allocate memory for pdata\n"); + return -ENOMEM; + } + ret = cw_bat_parse_dt(&client->dev, pdata); + if (ret) + return ret; + } else { + pdata = client->dev.platform_data; + } + + if (!pdata) { + dev_err(&client->dev, "Invalid pdata\n"); + return -EINVAL; + } + + + else if (battery_type_id == 1) { + pdata->cw_bat_config_info = config_info_feimaotui; + } else if (battery_type_id == 2) { + pdata->cw_bat_config_info = config_info_xinwangda; + } else { + pdata->cw_bat_config_info = config_info; + } + + + + + if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { + dev_err(&client->dev, "I2C not supported\n"); + return -ENODEV; + } + + cw_bat->client = client; + i2c_set_clientdata(client, cw_bat); + + cw_bat->plat_data = pdata; + ret = cw_check_ic(cw_bat); + + while ((loop++ < 5) && (ret != 0)) { + pr_debug(" check ret is %d, loop is %d \n" , ret, loop); + ret = cw_check_ic(cw_bat); + } + + + if (ret != 0) { + pr_debug(" wc_check_ic fail ,return ENODEV \n"); + return -ENODEV; + } + + ret = cw_init(cw_bat); + while ((loop++ < 2000) && (ret != 0)) { + ret = cw_init(cw_bat); + } + + if (ret) { + return ret; + } + + cw_bat->rk_bat.name = "rk-bat"; + cw_bat->rk_bat.type = POWER_SUPPLY_TYPE_BATTERY; + cw_bat->rk_bat.properties = rk_battery_properties; + cw_bat->rk_bat.num_properties = ARRAY_SIZE(rk_battery_properties); + cw_bat->rk_bat.get_property = rk_battery_get_property; + ret = power_supply_register(&client->dev, &cw_bat->rk_bat); + if (ret < 0) { + dev_err(&cw_bat->client->dev, "power supply register rk_bat error\n"); + pr_debug("rk_bat_register_fail\n"); + goto rk_bat_register_fail; + } + + cw_bat->charger_mode = 0; + cw_bat->capacity = 0; + cw_bat->voltage = 0; + cw_bat->status = 0; + cw_bat->time_to_empty = 0; + cw_bat->bat_change = 0; + + cw_update_time_member_capacity_change(cw_bat); + cw_update_time_member_charge_start(cw_bat); + + cw_bat->battery_workqueue = create_singlethread_workqueue("rk_battery"); + INIT_DELAYED_WORK(&cw_bat->battery_delay_work, cw_bat_work); + + queue_delayed_work(cw_bat->battery_workqueue, &cw_bat->battery_delay_work, msecs_to_jiffies(10)); + +#ifdef BAT_LOW_INTERRUPT + ret = cw_bat_regulator_configure(cw_bat, true); + if (ret < 0) { + dev_err(&client->dev, "%s Failed to configure regulators\n", __func__); + goto err_reg_configure; + } + + ret = cw_bat_power_on(cw_bat, true); + if (ret < 0) { + dev_err(&client->dev, "%s Failed to power on\n", __func__); + goto err_power_device; + + } + + ret = cw_bat_pinctrl_init(cw_bat); + if (!ret && cw_bat->ts_pinctrl) { + ret = pinctrl_select_state(cw_bat->ts_pinctrl, + cw_bat->pinctrl_state_active); + if (ret < 0) + goto err_pinctrl_select; + } + + ret = cw_bat_gpio_configure(cw_bat, true); + if (ret < 0) { + dev_err(&client->dev, "%s Failed to configure gpios\n", __func__); + goto err_gpio_config; + } + + INIT_DELAYED_WORK(&cw_bat->bat_low_wakeup_work, bat_low_detect_do_wakeup); + wake_lock_init(&bat_low_wakelock, WAKE_LOCK_SUSPEND, "bat_low_detect"); + cw_bat->client->irq = gpio_to_irq(pdata->bat_low_pin); + ret = request_threaded_irq(client->irq, NULL, + bat_low_detect_irq_handler, pdata->irq_flags, + "bat_low_detect", cw_bat); + if (ret) { + dev_err(&client->dev, "request irq failed\n"); + gpio_free(cw_bat->plat_data->bat_low_pin); + } + /*Chaman add for charger detect*/ + charge_psy = power_supply_get_by_name("usb"); + + err_gpio_config: + if (cw_bat->ts_pinctrl) { + ret = cw_bat_pinctrl_select(cw_bat, false); + if (ret < 0) + pr_err("Cannot get idle pinctrl state\n"); + } + err_pinctrl_select: + if (cw_bat->ts_pinctrl) { + pinctrl_put(cw_bat->ts_pinctrl); + } + err_power_device: + cw_bat_power_on(cw_bat, false); + err_reg_configure: + cw_bat_regulator_configure(cw_bat, false); +#endif + + pr_debug("\ncw2015/cw2013 driver v1.2 probe sucess\n"); + return 0; + +rk_bat_register_fail: + pr_debug("cw2015/cw2013 driver v1.2 probe error!!!!\n"); + return ret; +} + +static int cw_bat_remove(struct i2c_client *client) +{ + struct cw_battery *cw_bat = i2c_get_clientdata(client); + pr_debug("%s\n", __func__); + cancel_delayed_work(&cw_bat->battery_delay_work); + return 0; +} + +static const struct i2c_device_id cw_id[] = { + { "cw201x", 0 }, +}; +MODULE_DEVICE_TABLE(i2c, cw_id); + +static struct of_device_id cw2015_match_table[] = { + { .compatible = "cellwise,cw2015", }, + { }, +}; +static struct i2c_driver cw_bat_driver = { + .driver = { + .name = "cw201x", + +#ifdef CONFIG_PM + .pm = &cw_bat_pm_ops, +#endif + .of_match_table = cw2015_match_table, + }, + .probe = cw_bat_probe, + .remove = cw_bat_remove, + .id_table = cw_id, +}; + +static int __init cw_bat_init(void) +{ + return i2c_add_driver(&cw_bat_driver); +} + +static void __exit cw_bat_exit(void) +{ + i2c_del_driver(&cw_bat_driver); +} + +late_initcall(cw_bat_init); +module_exit(cw_bat_exit); + +MODULE_AUTHOR("ben"); +MODULE_DESCRIPTION("cw2015/cw2013 battery driver"); +MODULE_LICENSE("GPL"); diff --git a/drivers/power/pmic-voter.c b/drivers/power/pmic-voter.c index 4ba0db459f032..0e6936805a6c5 100644 --- a/drivers/power/pmic-voter.c +++ b/drivers/power/pmic-voter.c @@ -18,7 +18,7 @@ #include "pmic-voter.h" -#define NUM_MAX_CLIENTS 8 +#define NUM_MAX_CLIENTS 10 struct client_vote { int state; diff --git a/drivers/power/power_supply_core.c b/drivers/power/power_supply_core.c index 27bcf6e2b6858..328483b6a36ab 100644 --- a/drivers/power/power_supply_core.c +++ b/drivers/power/power_supply_core.c @@ -4,6 +4,7 @@ * Copyright © 2007 Anton Vorontsov * Copyright © 2004 Szabolcs Gyurko * Copyright © 2003 Ian Molton + * Copyright (C) 2018 XiaoMi, Inc. * * Modified: 2004, Oct Szabolcs Gyurko * @@ -270,6 +271,26 @@ int power_supply_set_low_power_state(struct power_supply *psy, int value) } EXPORT_SYMBOL(power_supply_set_low_power_state); +int power_supply_get_battery_charge_state(struct power_supply *psy) +{ + union power_supply_propval ret = {0,}; + + if (!psy) { + pr_err("power supply is NULL\n"); + } + + if (psy->get_property) { + psy->get_property(psy, POWER_SUPPLY_PROP_PRESENT, &ret); + } + + pr_debug("online:%d\n", ret.intval); + + return ret.intval; + +} + +EXPORT_SYMBOL(power_supply_get_battery_charge_state); + /** * power_supply_set_dp_dm - * @psy: the power supply to control @@ -765,11 +786,70 @@ static void psy_unregister_cooler(struct power_supply *psy) } #endif + + +int bq_runin_test = 0; +static ssize_t show_StopCharging_Test(struct device *dev, struct device_attribute *attr, char *buf) +{ + /* Disable charging */ + bool charging_enable = false; + struct power_supply *batt_psy = NULL; + int rc; + + bq_runin_test = 1; + batt_psy = power_supply_get_by_name("battery"); + if (batt_psy) { + rc = power_supply_set_charging_enabled(batt_psy, 0); + if (rc) + pr_err("disable charging failed\n"); + pr_err("show_StopCharging_Test : %x success\n", charging_enable); + } else + pr_err("get battery power supply Error!!\n"); + + return sprintf(buf, "chr=%d\n", charging_enable); +} + +static ssize_t store_StopCharging_Test(struct device *dev, struct device_attribute *attr, const char *buf, size_t size) +{ + return -EPERM; +} +static DEVICE_ATTR(StopCharging_Test, 0664, show_StopCharging_Test, store_StopCharging_Test); + +static ssize_t show_StartCharging_Test(struct device *dev, struct device_attribute *attr, char *buf) +{ + /* Enable charging */ + bool charging_enable = true; + struct power_supply *batt_psy = NULL; + int rc; + + bq_runin_test = 2; + batt_psy = power_supply_get_by_name("battery"); + if (batt_psy) { + rc = power_supply_set_charging_enabled(batt_psy, 1); + if (rc) + pr_err("enable charging failed\n"); + pr_err("show_StartCharging_Test : %x success\n", charging_enable); + } else + pr_err("get battery power supply Error!!\n"); + + return sprintf(buf, "chr=%d\n", charging_enable); +} + +static ssize_t store_StartCharging_Test(struct device *dev, struct device_attribute *attr, const char *buf, size_t size) +{ + return -EPERM; +} +static DEVICE_ATTR(StartCharging_Test, 0664, show_StartCharging_Test, store_StartCharging_Test); + + + + static int __power_supply_register(struct device *parent, struct power_supply *psy, bool ws) { struct device *dev; int rc; + int ret_device_file = 0; dev = kzalloc(sizeof(*dev), GFP_KERNEL); if (!dev) @@ -819,6 +899,11 @@ static int __power_supply_register(struct device *parent, power_supply_changed(psy); + if (strcmp(psy->name, "battery") == 0) { + pr_err("battery powe supply creat attr file!!\n"); + ret_device_file = device_create_file(dev, &dev_attr_StopCharging_Test); + ret_device_file = device_create_file(dev, &dev_attr_StartCharging_Test); + } return 0; create_triggers_failed: diff --git a/drivers/power/power_supply_sysfs.c b/drivers/power/power_supply_sysfs.c index a444df4623ba2..5f30098c8addc 100644 --- a/drivers/power/power_supply_sysfs.c +++ b/drivers/power/power_supply_sysfs.c @@ -5,6 +5,7 @@ * Copyright © 2007 Anton Vorontsov * Copyright © 2004 Szabolcs Gyurko * Copyright © 2003 Ian Molton + * Copyright (C) 2018 XiaoMi, Inc. * * Modified: 2004, Oct Szabolcs Gyurko * @@ -225,6 +226,7 @@ static struct device_attribute power_supply_attrs[] = { POWER_SUPPLY_ATTR(temp_cool), POWER_SUPPLY_ATTR(temp_warm), POWER_SUPPLY_ATTR(system_temp_level), + POWER_SUPPLY_ATTR(charger_type), POWER_SUPPLY_ATTR(resistance), POWER_SUPPLY_ATTR(resistance_capacitive), POWER_SUPPLY_ATTR(resistance_id), @@ -253,6 +255,7 @@ static struct device_attribute power_supply_attrs[] = { POWER_SUPPLY_ATTR(enable_jeita_detection), POWER_SUPPLY_ATTR(battery_info), POWER_SUPPLY_ATTR(battery_info_id), + POWER_SUPPLY_ATTR(charging_call_state), /* Local extensions of type int64_t */ POWER_SUPPLY_ATTR(charge_counter_ext), /* Properties of type `const char *' */ diff --git a/drivers/power/profile_WT1001_88509_NT_Feimaotui.h b/drivers/power/profile_WT1001_88509_NT_Feimaotui.h new file mode 100644 index 0000000000000..4d42c13b01aa0 --- /dev/null +++ b/drivers/power/profile_WT1001_88509_NT_Feimaotui.h @@ -0,0 +1,64 @@ +0x18 +, 0x07 +, 0x6D +, 0x6C +, 0x6B +, 0x6A +, 0x65 +, 0x65 +, 0x56 +, 0x78 +, 0x63 +, 0x49 +, 0x67 +, 0x56 +, 0x47 +, 0x3E +, 0x38 +, 0x2D +, 0x2B +, 0x24 +, 0x2B +, 0x31 +, 0x44 +, 0x4E +, 0x17 +, 0x63 +, 0x0B +, 0x85 +, 0x0D +, 0x1A +, 0x52 +, 0x5D +, 0x78 +, 0x74 +, 0x74 +, 0x78 +, 0x3E +, 0x1B +, 0x5E +, 0x22 +, 0x1C +, 0x3F +, 0x29 +, 0x53 +, 0x81 +, 0x97 +, 0x98 +, 0x23 +, 0x75 +, 0x7A +, 0x95 +, 0xC2 +, 0x7B +, 0x99 +, 0xBA +, 0xCB +, 0x2F +, 0x7D +, 0x72 +, 0xA5 +, 0xB5 +, 0xC1 +, 0x58 +, 0x91 diff --git a/drivers/power/profile_WT702_88509_NT_DeSai.h b/drivers/power/profile_WT702_88509_NT_DeSai.h new file mode 100644 index 0000000000000..55909fd752b27 --- /dev/null +++ b/drivers/power/profile_WT702_88509_NT_DeSai.h @@ -0,0 +1,64 @@ +0x17 +, 0xEC +, 0x6F +, 0x6D +, 0x6D +, 0x68 +, 0x66 +, 0x63 +, 0x58 +, 0x75 +, 0x65 +, 0x44 +, 0x5A +, 0x5C +, 0x4C +, 0x43 +, 0x37 +, 0x2E +, 0x2A +, 0x21 +, 0x1E +, 0x2D +, 0x45 +, 0x54 +, 0x23 +, 0x2E +, 0x0B +, 0x85 +, 0x41 +, 0x63 +, 0x50 +, 0x60 +, 0x70 +, 0x65 +, 0x69 +, 0x69 +, 0x3B +, 0x19 +, 0x7A +, 0x4F +, 0x06 +, 0x39 +, 0x21 +, 0x4D +, 0x86 +, 0x95 +, 0x98 +, 0x4D +, 0x6E +, 0x88 +, 0x98 +, 0xA4 +, 0x50 +, 0x87 +, 0xB0 +, 0xCB +, 0x2F +, 0x7D +, 0x72 +, 0xA5 +, 0xB5 +, 0xC1 +, 0x46 +, 0xAE diff --git a/drivers/power/profile_WT801_88509_NT_XinWangDa.h b/drivers/power/profile_WT801_88509_NT_XinWangDa.h new file mode 100644 index 0000000000000..8ab813520335b --- /dev/null +++ b/drivers/power/profile_WT801_88509_NT_XinWangDa.h @@ -0,0 +1,64 @@ +0x18 +, 0x03 +, 0x6A +, 0x6B +, 0x6D +, 0x6A +, 0x68 +, 0x65 +, 0x60 +, 0x63 +, 0x60 +, 0x54 +, 0x5D +, 0x59 +, 0x48 +, 0x40 +, 0x38 +, 0x31 +, 0x27 +, 0x24 +, 0x28 +, 0x31 +, 0x43 +, 0x4D +, 0x28 +, 0x49 +, 0x0B +, 0x85 +, 0x1C +, 0x37 +, 0x57 +, 0x6E +, 0x79 +, 0x7A +, 0x7A +, 0x7A +, 0x3D +, 0x1A +, 0x62 +, 0x3F +, 0x0A +, 0x44 +, 0x34 +, 0x55 +, 0x82 +, 0x97 +, 0x9B +, 0x13 +, 0x41 +, 0x81 +, 0x94 +, 0xC2 +, 0x74 +, 0x9C +, 0xBC +, 0xCB +, 0x2F +, 0x7D +, 0x72 +, 0xA5 +, 0xB5 +, 0xC1 +, 0x95 +, 0x61 diff --git a/drivers/power/profile_WT902_88509_NT_GuangYu.h b/drivers/power/profile_WT902_88509_NT_GuangYu.h new file mode 100644 index 0000000000000..ac811defb47b9 --- /dev/null +++ b/drivers/power/profile_WT902_88509_NT_GuangYu.h @@ -0,0 +1,64 @@ +0x17 +, 0xFD +, 0x6A +, 0x6B +, 0x6C +, 0x6A +, 0x68 +, 0x66 +, 0x60 +, 0x62 +, 0x5C +, 0x58 +, 0x60 +, 0x5B +, 0x49 +, 0x3D +, 0x38 +, 0x2E +, 0x2A +, 0x21 +, 0x27 +, 0x32 +, 0x42 +, 0x52 +, 0x26 +, 0x31 +, 0x0B +, 0x85 +, 0x46 +, 0x6C +, 0x5E +, 0x73 +, 0x85 +, 0x80 +, 0x81 +, 0x84 +, 0x3D +, 0x1A +, 0x5E +, 0x49 +, 0x07 +, 0x37 +, 0x32 +, 0x54 +, 0x82 +, 0x96 +, 0x9D +, 0x15 +, 0x61 +, 0x80 +, 0x94 +, 0xB9 +, 0x6A +, 0x8A +, 0x98 +, 0xCB +, 0x2F +, 0x7D +, 0x72 +, 0xA5 +, 0xB5 +, 0xC1 +, 0x46 +, 0xAE diff --git a/drivers/power/qpnp-fg.c b/drivers/power/qpnp-fg.c index eb774749a5f4e..89600dbcb56ef 100644 --- a/drivers/power/qpnp-fg.c +++ b/drivers/power/qpnp-fg.c @@ -1,4 +1,5 @@ /* Copyright (c) 2014-2017, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -845,6 +846,30 @@ static int fg_sec_masked_write(struct fg_chip *chip, u16 addr, u8 mask, u8 val, return rc; } + +static int area_version_flag; +static void get_area_version(struct fg_chip *chip) +{ + char *boardid_string = NULL; + char boardid_start[32] = " "; + int India; + + boardid_string = strstr(saved_command_line, "board_id="); + + if (boardid_string != NULL) { + strncpy(boardid_start, boardid_string+9, 9); + India = strncmp(boardid_start, "S88567CA1", 9); + if (!India) { + pr_err("India version!\n"); + area_version_flag = 1; + } else{ + pr_err("Normal version!\n"); + area_version_flag = 0; + } + } +} + + #define RIF_MEM_ACCESS_REQ BIT(7) static int fg_check_rif_mem_access(struct fg_chip *chip, bool *status) { @@ -1963,11 +1988,6 @@ static void fg_handle_battery_insertion(struct fg_chip *chip) } -static int soc_to_setpoint(int soc) -{ - return DIV_ROUND_CLOSEST(soc * 255, 100); -} - static void batt_to_setpoint_adc(int vbatt_mv, u8 *data) { int val; @@ -2195,9 +2215,6 @@ static int get_prop_capacity(struct fg_chip *chip) if (chip->battery_missing) return MISSING_CAPACITY; - if (!chip->profile_loaded && !chip->use_otp_profile) - return DEFAULT_CAPACITY; - if (chip->charge_full) return FULL_CAPACITY; @@ -2231,6 +2248,18 @@ static int get_prop_capacity(struct fg_chip *chip) return FULL_CAPACITY; } + +#if defined(CONFIG_D1_ROSY) + if (((chip->health == POWER_SUPPLY_HEALTH_COOL) + || (chip->health == POWER_SUPPLY_HEALTH_COLD)) + && msoc >= 247) { + pr_info("wt msoc= %d, chip->health=%d\n", msoc, chip->health); + return DIV_ROUND_CLOSEST((msoc - 1) * (FULL_CAPACITY - 2), + FULL_SOC_RAW - 2) + 2; + } +#endif + + return DIV_ROUND_CLOSEST((msoc - 1) * (FULL_CAPACITY - 2), FULL_SOC_RAW - 2) + 1; } @@ -2966,7 +2995,8 @@ static void update_cycle_count(struct work_struct *work) static int fg_get_cycle_count(struct fg_chip *chip) { - int count; + int count = 0; + int i = 0; if (!chip->cyc_ctr.en) return 0; @@ -2975,11 +3005,34 @@ static int fg_get_cycle_count(struct fg_chip *chip) return -EINVAL; mutex_lock(&chip->cyc_ctr.lock); - count = chip->cyc_ctr.count[chip->cyc_ctr.id - 1]; + for (i = 0; i < BUCKET_COUNT; i++) + count += chip->cyc_ctr.count[i]; + count /= BUCKET_COUNT; mutex_unlock(&chip->cyc_ctr.lock); return count; } +static int fg_set_cycle_count(struct fg_chip *chip, int value) +{ + int rc = 0; + int i = 0; + int address; + u8 data[2]; + + for (i = 0; i < BUCKET_COUNT; i++) { + data[0] = value & 0xFF; + data[1] = value >> 8; + + address = BATT_CYCLE_NUMBER_REG + i * 2; + rc = fg_mem_write(chip, data, address, 2, BATT_CYCLE_OFFSET, 0); + if (rc < 0) + pr_err("failed to write BATT_CYCLE[%d] rc=%d\n", i, rc); + else + chip->cyc_ctr.count[i] = value; + } + return rc; +} + static void half_float_to_buffer(int64_t uval, u8 *buffer) { u16 raw; @@ -3943,8 +3996,15 @@ static void status_change_work(struct work_struct *work) } if (chip->status == POWER_SUPPLY_STATUS_FULL) { +#if defined(CONFIG_D1_ROSY) + + if (capacity >= 99 && chip->hold_soc_while_full + && (chip->health == POWER_SUPPLY_HEALTH_GOOD || chip->health == POWER_SUPPLY_HEALTH_COOL)) { + +#else if (capacity >= 99 && chip->hold_soc_while_full && chip->health == POWER_SUPPLY_HEALTH_GOOD) { +#endif if (fg_debug_mask & FG_STATUS) pr_info("holding soc at 100\n"); chip->charge_full = true; @@ -4097,49 +4157,76 @@ static void check_gain_compensation(struct fg_chip *chip) } } +#define WARNTEMP 30 +#define COOLTEMP 10 + static void fg_hysteresis_config(struct fg_chip *chip) { int hard_hot = 0, hard_cold = 0; + int soft_hot = 0, soft_cold = 0; + soft_hot = get_prop_jeita_temp(chip, FG_MEM_SOFT_HOT); + soft_cold = get_prop_jeita_temp(chip, FG_MEM_SOFT_COLD); hard_hot = get_prop_jeita_temp(chip, FG_MEM_HARD_HOT); hard_cold = get_prop_jeita_temp(chip, FG_MEM_HARD_COLD); + if (chip->health == POWER_SUPPLY_HEALTH_OVERHEAT && !chip->batt_hot) { /* turn down the hard hot threshold */ + set_prop_jeita_temp(chip, FG_MEM_HARD_HOT, hard_hot - chip->hot_hysteresis); chip->batt_hot = true; - set_prop_jeita_temp(chip, FG_MEM_HARD_HOT, - hard_hot - chip->hot_hysteresis); - if (fg_debug_mask & FG_STATUS) - pr_info("hard hot hysteresis: old hot=%d, new hot=%d\n", - hard_hot, hard_hot - chip->hot_hysteresis); - } else if (chip->health == POWER_SUPPLY_HEALTH_COLD && - !chip->batt_cold) { + chip->batt_warm = false; + chip->batt_cold = false; + chip->batt_cold = false; + } else if (chip->health != POWER_SUPPLY_HEALTH_OVERHEAT && chip->batt_hot) { + /* restore the hard hot threshold */ + set_prop_jeita_temp(chip, FG_MEM_HARD_HOT, hard_hot + chip->hot_hysteresis); + chip->batt_hot = false; + chip->batt_warm = true; + chip->batt_cold = false; + chip->batt_cool = false; + } else if (chip->health == POWER_SUPPLY_HEALTH_WARM && !chip->batt_warm) { + /* turn down the soft hot threshold */ + set_prop_jeita_temp(chip, FG_MEM_SOFT_HOT, soft_hot - WARNTEMP); + chip->batt_hot = false; + chip->batt_warm = true; + chip->batt_cold = false; + chip->batt_cool = false; + } else if (chip->health != POWER_SUPPLY_HEALTH_WARM && chip->batt_warm) { + /* restore the soft hot threshold */ + set_prop_jeita_temp(chip, FG_MEM_SOFT_HOT, soft_hot + WARNTEMP); + chip->batt_warm = false; + chip->batt_hot = false; + chip->batt_cold = false; + chip->batt_cool = false; + } else if (chip->health == POWER_SUPPLY_HEALTH_COOL && !chip->batt_cool) { + /* turn up the soft cold threshold */ + set_prop_jeita_temp(chip, FG_MEM_SOFT_COLD, soft_cold + COOLTEMP); + chip->batt_hot = false; + chip->batt_warm = false; + chip->batt_cold = false; + chip->batt_cool = true; + } else if (chip->health != POWER_SUPPLY_HEALTH_COOL && chip->batt_cool) { + /* restore the soft cold threshold */ + set_prop_jeita_temp(chip, FG_MEM_SOFT_COLD, soft_cold - COOLTEMP); + chip->batt_cool = false; + chip->batt_hot = false; + chip->batt_warm = false; + chip->batt_cold = false; + } else if (chip->health == POWER_SUPPLY_HEALTH_COLD && !chip->batt_cold) { /* turn up the hard cold threshold */ + set_prop_jeita_temp(chip, FG_MEM_HARD_COLD, hard_cold + chip->cold_hysteresis); + chip->batt_hot = false; + chip->batt_warm = false; chip->batt_cold = true; - set_prop_jeita_temp(chip, FG_MEM_HARD_COLD, - hard_cold + chip->cold_hysteresis); - if (fg_debug_mask & FG_STATUS) - pr_info("hard cold hysteresis: old cold=%d, new cold=%d\n", - hard_cold, hard_cold + chip->hot_hysteresis); - } else if (chip->health != POWER_SUPPLY_HEALTH_OVERHEAT && - chip->batt_hot) { - /* restore the hard hot threshold */ - set_prop_jeita_temp(chip, FG_MEM_HARD_HOT, - hard_hot + chip->hot_hysteresis); - chip->batt_hot = !chip->batt_hot; - if (fg_debug_mask & FG_STATUS) - pr_info("restore hard hot threshold: old hot=%d, new hot=%d\n", - hard_hot, - hard_hot + chip->hot_hysteresis); + chip->batt_cool = false; } else if (chip->health != POWER_SUPPLY_HEALTH_COLD && chip->batt_cold) { /* restore the hard cold threshold */ - set_prop_jeita_temp(chip, FG_MEM_HARD_COLD, - hard_cold - chip->cold_hysteresis); - chip->batt_cold = !chip->batt_cold; - if (fg_debug_mask & FG_STATUS) - pr_info("restore hard cold threshold: old cold=%d, new cold=%d\n", - hard_cold, - hard_cold - chip->cold_hysteresis); + set_prop_jeita_temp(chip, FG_MEM_HARD_COLD, hard_cold - chip->cold_hysteresis); + chip->batt_cold = false; + chip->batt_hot = false; + chip->batt_warm = false; + chip->batt_cool = true; } } @@ -4169,6 +4256,9 @@ static int fg_init_batt_temp_state(struct fg_chip *chip) (batt_info_sts & JEITA_HARD_HOT_RT_STS) ? true : false; chip->batt_cold = (batt_info_sts & JEITA_HARD_COLD_RT_STS) ? true : false; + chip->batt_warm = false; + chip->batt_cool = false; + if (chip->batt_hot || chip->batt_cold) { if (chip->batt_hot) { chip->health = POWER_SUPPLY_HEALTH_OVERHEAT; @@ -4661,8 +4751,8 @@ static int fg_power_set_property(struct power_supply *psy, schedule_work(&chip->set_resume_soc_work); } - if (chip->jeita_hysteresis_support) - fg_hysteresis_config(chip); + + fg_hysteresis_config(chip); break; case POWER_SUPPLY_PROP_CHARGE_DONE: chip->charge_done = val->intval; @@ -4671,6 +4761,10 @@ static int fg_power_set_property(struct power_supply *psy, schedule_work(&chip->set_resume_soc_work); } break; + case POWER_SUPPLY_PROP_CYCLE_COUNT: + rc = fg_set_cycle_count(chip, val->intval); + pr_info("Cycle count is modified to %d by userspace\n", val->intval); + break; case POWER_SUPPLY_PROP_CYCLE_COUNT_ID: if ((val->intval > 0) && (val->intval <= BUCKET_COUNT)) { chip->cyc_ctr.id = val->intval; @@ -4712,6 +4806,7 @@ static int fg_property_is_writeable(struct power_supply *psy, case POWER_SUPPLY_PROP_CYCLE_COUNT_ID: case POWER_SUPPLY_PROP_BATTERY_INFO: case POWER_SUPPLY_PROP_BATTERY_INFO_ID: + case POWER_SUPPLY_PROP_CYCLE_COUNT: return 1; default: break; @@ -6190,6 +6285,44 @@ static int fg_do_restart(struct fg_chip *chip, bool write_profile) return -EINVAL; } + +#define REDO_BATID_DURING_FIRST_EST BIT(4) +static void fg_hw_restart(struct fg_chip *chip) +{ + u8 reg, rc; + int batt_id; + u8 data[4]; + + reg = 0x80; + fg_masked_write(chip, 0x4150, reg, reg, 1); + fg_masked_write(chip, chip->soc_base + SOC_RESTART, 0xFF, 0, 1); + mdelay(5); + + reg = REDO_BATID_DURING_FIRST_EST|REDO_FIRST_ESTIMATE; + fg_masked_write(chip, chip->soc_base + SOC_RESTART, reg, reg, 1); + mdelay(5); + + reg = REDO_BATID_DURING_FIRST_EST | REDO_FIRST_ESTIMATE | RESTART_GO; + fg_masked_write(chip, chip->soc_base + SOC_RESTART, reg, reg, 1); + mdelay(1000); + + fg_masked_write(chip, chip->soc_base + SOC_RESTART, 0xFF, 0, 1); + fg_masked_write(chip, 0x4150, 0x80, 0, 1); + + mdelay(2000); + + rc = fg_mem_read(chip, data, fg_data[FG_DATA_BATT_ID].address, + fg_data[FG_DATA_BATT_ID].len, fg_data[FG_DATA_BATT_ID].offset, 0); + if (rc) { + pr_err("XJB Failed to get sram battery id data\n"); + } else { + fg_data[FG_DATA_BATT_ID].value = data[0] * LSB_8B; + } + batt_id = get_sram_prop_now(chip, FG_DATA_BATT_ID); + pr_err("fg_hw_restart. wingtech after restart battery id = %d\n", batt_id); +} + + #define FG_PROFILE_LEN 128 #define PROFILE_COMPARE_LEN 32 #define THERMAL_COEFF_ADDR 0x444 @@ -6204,6 +6337,8 @@ static int fg_batt_profile_init(struct fg_chip *chip) const char *data, *batt_type_str; bool tried_again = false, vbat_in_range, profiles_same; u8 reg = 0; + int value; + wait: fg_stay_awake(&chip->profile_wakeup_source); @@ -6224,6 +6359,21 @@ static int fg_batt_profile_init(struct fg_chip *chip) if (!is_charger_available(chip)) goto reschedule; + + value = get_sram_prop_now(chip, FG_DATA_BATT_ID); + pr_err("wingtech init FG_DATA_BATT_ID =%d\n", value); +#if defined(CONFIG_A13N_PMI8952) + if (!(((value > 85000) && (value < 115000)) || ((value > 57000) && (value < 78000)) || ((value > 24000) && (value < 35000)))) { + + fg_hw_restart(chip); + } + +#elif defined(CONFIG_D1_ROSY) + if (!(((value > 57000) && (value < 78000)) || ((value > 280000) && (value < 380000)))) { + fg_hw_restart(chip); + } +#endif + /* Disable charging for a FG cycle before calculating vbat_in_range */ if (!chip->charging_disabled) { rc = set_prop_enable_charging(chip, false); @@ -6290,6 +6440,12 @@ static int fg_batt_profile_init(struct fg_chip *chip) if (rc) pr_warn("couldn't find battery max voltage\n"); + if (area_version_flag == 1) + chip->batt_max_voltage_uv = 4380000; + + #ifdef CONFIG_DISABLE_TEMP_PROTECT + chip->batt_max_voltage_uv = 4100000; + #endif /* * Only configure from profile if fg-cc-cv-threshold-mv is not @@ -6583,9 +6739,10 @@ static void charge_full_work(struct work_struct *work) int rc; u8 buffer[3]; int bsoc; - int resume_soc_raw = FULL_SOC_RAW - settings[FG_MEM_RESUME_SOC].value; + int resume_soc_raw = settings[FG_MEM_RESUME_SOC].value; bool disable = false; u8 reg; + int msoc = 0, retry = 0; if (chip->status != POWER_SUPPLY_STATUS_FULL) { if (fg_debug_mask & FG_STATUS) @@ -6628,6 +6785,15 @@ static void charge_full_work(struct work_struct *work) pr_info("wrote %06x into soc full\n", bsoc); } fg_mem_release(chip); + + + while (msoc != 0xFF && retry != 8) { + msleep(200); + msoc = get_monotonic_soc_raw(chip); + retry++; + } + + /* * wait one cycle to make sure the soc is updated before clearing * the soc mask bit @@ -6904,6 +7070,14 @@ static int fg_of_init(struct fg_chip *chip) OF_READ_SETTING(FG_MEM_HARD_HOT, "hot-bat-decidegc", rc, 1); OF_READ_SETTING(FG_MEM_HARD_COLD, "cold-bat-decidegc", rc, 1); + #ifdef CONFIG_DISABLE_TEMP_PROTECT + settings[FG_MEM_HARD_HOT].value = 850; + settings[FG_MEM_SOFT_HOT].value = 850; + settings[FG_MEM_HARD_COLD].value = -250; + settings[FG_MEM_SOFT_COLD].value = -250; + #endif + + if (of_find_property(node, "qcom,cold-hot-jeita-hysteresis", NULL)) { int hard_hot = 0, soft_hot = 0, hard_cold = 0, soft_cold = 0; @@ -6977,6 +7151,9 @@ static int fg_of_init(struct fg_chip *chip) DEFAULT_EVALUATION_CURRENT_MA); OF_READ_PROPERTY(chip->cc_cv_threshold_mv, "fg-cc-cv-threshold-mv", rc, 0); + if (area_version_flag == 1) + chip->cc_cv_threshold_mv = 4370; + if (of_property_read_bool(chip->spmi->dev.of_node, "qcom,capacity-learning-on")) chip->batt_aging_mode = FG_AGING_CC; @@ -7928,7 +8105,7 @@ static int fg_common_hw_init(struct fg_chip *chip) } rc = fg_mem_masked_write(chip, settings[FG_MEM_DELTA_SOC].address, 0xFF, - soc_to_setpoint(settings[FG_MEM_DELTA_SOC].value), + settings[FG_MEM_DELTA_SOC].value, settings[FG_MEM_DELTA_SOC].offset); if (rc) { pr_err("failed to write delta soc rc=%d\n", rc); @@ -8710,6 +8887,8 @@ static int fg_probe(struct spmi_device *spmi) } } + get_area_version(chip); + rc = fg_detect_pmic_type(chip); if (rc) { pr_err("Unable to detect PMIC type rc=%d\n", rc); diff --git a/drivers/power/qpnp-smbcharger.c b/drivers/power/qpnp-smbcharger.c index 352c2e538aa2d..25b6e44187949 100644 --- a/drivers/power/qpnp-smbcharger.c +++ b/drivers/power/qpnp-smbcharger.c @@ -1,4 +1,5 @@ /* Copyright (c) 2014-2016 The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -125,11 +126,18 @@ struct smbchg_chip { int bmd_pin_src; int jeita_temp_hard_limit; int aicl_rerun_period_s; + + int customize_cool_low_limit; + int customize_cool_high_limit; + int fcc_customize_cool_ma; + int fcc_batt_cool_ma; + bool use_vfloat_adjustments; bool iterm_disabled; bool bmd_algo_disabled; bool soft_vfloat_comp_disabled; bool chg_enabled; + int call_state; bool charge_unknown_battery; bool chg_inhibit_en; bool chg_inhibit_source_fg; @@ -248,8 +256,12 @@ struct smbchg_chip { struct smbchg_regulator otg_vreg; struct smbchg_regulator ext_otg_vreg; struct work_struct usb_set_online_work; + struct delayed_work period_update_work; struct delayed_work vfloat_adjust_work; struct delayed_work hvdcp_det_work; + + struct delayed_work monitor_charging_temp_5_work; + spinlock_t sec_access_lock; struct mutex therm_lvl_lock; struct mutex usb_set_online_lock; @@ -281,6 +293,7 @@ struct smbchg_chip { struct votable *aicl_deglitch_short_votable; struct votable *hvdcp_enable_votable; }; +struct smbchg_chip *wt_chip = NULL; enum qpnp_schg { QPNP_SCHG, @@ -311,6 +324,8 @@ enum smbchg_wa { SMBCHG_FLASH_BUCK_SWITCH_FREQ_WA = BIT(7), SMBCHG_ICL_CONTROL_WA = BIT(8), }; +static inline void dump_reg(struct smbchg_chip *chip, u16 addr, + const char *name); enum print_reason { PR_REGISTER = BIT(0), @@ -329,6 +344,7 @@ enum wake_reason { PM_ESR_PULSE = BIT(2), PM_PARALLEL_TAPER = BIT(3), PM_DETECT_HVDCP = BIT(4), + PM_CHARGER_ONLINE = BIT(5), }; enum fcc_voters { @@ -347,6 +363,7 @@ enum icl_voters { SW_AICL_ICL_VOTER, CHG_SUSPEND_WORKAROUND_ICL_VOTER, SHUTDOWN_WORKAROUND_ICL_VOTER, + CALL_ICL_VOTER, NUM_ICL_VOTER, }; @@ -428,12 +445,12 @@ enum hvdcp_voters { HVDCP_PULSING_VOTER, NUM_HVDCP_VOTERS, }; -static int smbchg_debug_mask; +static int smbchg_debug_mask = PR_INTERRUPT | PR_STATUS | PR_MISC; module_param_named( debug_mask, smbchg_debug_mask, int, S_IRUSR | S_IWUSR ); -static int smbchg_parallel_en = 1; +static int smbchg_parallel_en; module_param_named( parallel_en, smbchg_parallel_en, int, S_IRUSR | S_IWUSR ); @@ -450,19 +467,19 @@ module_param_named( int, S_IRUSR | S_IWUSR ); -static int smbchg_default_hvdcp_icl_ma = 1800; +static int smbchg_default_hvdcp_icl_ma = 1200; module_param_named( default_hvdcp_icl_ma, smbchg_default_hvdcp_icl_ma, int, S_IRUSR | S_IWUSR ); -static int smbchg_default_hvdcp3_icl_ma = 3000; +static int smbchg_default_hvdcp3_icl_ma = 2000; module_param_named( default_hvdcp3_icl_ma, smbchg_default_hvdcp3_icl_ma, int, S_IRUSR | S_IWUSR ); -static int smbchg_default_dcp_icl_ma = 1800; +static int smbchg_default_dcp_icl_ma = 2000; module_param_named( default_dcp_icl_ma, smbchg_default_dcp_icl_ma, int, S_IRUSR | S_IWUSR @@ -649,6 +666,30 @@ static int smbchg_sec_masked_write(struct smbchg_chip *chip, u16 base, u8 mask, return rc; } + +static int area_version_flag; +static void get_area_version(struct smbchg_chip *chip) +{ + char *boardid_string = NULL; + char boardid_start[32] = " "; + int India; + + boardid_string = strstr(saved_command_line, "board_id="); + + if (boardid_string != NULL) { + strncpy(boardid_start, boardid_string+9, 9); + India = strncmp(boardid_start, "S88567CA1", 9); + if (!India) { + pr_err("India version!\n"); + area_version_flag = 1; + } else{ + pr_err("Normal version!\n"); + area_version_flag = 0; + } + } +} + + static void smbchg_stay_awake(struct smbchg_chip *chip, int reason) { int reasons; @@ -977,7 +1018,7 @@ static int get_prop_batt_status(struct smbchg_chip *chip) else status = POWER_SUPPLY_STATUS_CHARGING; out: - pr_smb_rt(PR_MISC, "CHGR_STS = 0x%02x\n", reg); + pr_smb_rt(PR_DUMP, "CHGR_STS = 0x%02x\n", reg); return status; } @@ -1097,7 +1138,19 @@ static int get_prop_batt_temp(struct smbchg_chip *chip) pr_smb(PR_STATUS, "Couldn't get temperature rc = %d\n", rc); temp = DEFAULT_BATT_TEMP; } - return temp; + #ifdef CONFIG_DISABLE_TEMP_PROTECT + pr_smb(PR_STATUS, "WINGTECH disable temp protect version; real temp:%d\n", temp); + return 250; + #endif + + if (temp < -100) { + temp = temp - 55; + return temp; + } else if (temp > 450) { + temp = temp - 10; + return temp; + } else + return temp; } #define DEFAULT_BATT_CURRENT_NOW 0 @@ -1167,8 +1220,17 @@ static int get_prop_batt_voltage_max_design(struct smbchg_chip *chip) return uv; } +#if defined(CONFIG_D1_ROSY) +#define DEFAULT_BATT_CAPACITY_MAX_DESIGN 3300 +#else +#define DEFAULT_BATT_CAPACITY_MAX_DESIGN 4100000 +#endif static int get_prop_batt_health(struct smbchg_chip *chip) { + #ifdef CONFIG_DISABLE_TEMP_PROTECT + return POWER_SUPPLY_HEALTH_GOOD; + #endif + if (chip->batt_hot) return POWER_SUPPLY_HEALTH_OVERHEAT; else if (chip->batt_cold) @@ -1571,7 +1633,7 @@ static struct power_supply *get_parallel_psy(struct smbchg_chip *chip) return chip->parallel.psy; chip->parallel.psy = power_supply_get_by_name("usb-parallel"); if (!chip->parallel.psy) - pr_smb(PR_STATUS, "parallel charger not found\n"); + pr_smb(PR_DUMP, "parallel charger not found\n"); return chip->parallel.psy; } @@ -1585,6 +1647,8 @@ static void smbchg_usb_update_online_work(struct work_struct *work) int online; online = user_enabled && chip->usb_present && !chip->very_weak_charger; + pr_err("chip->usb_online:%d,online:%d,user_enabled:%d,chip->usb_present:%d,chip->very_weak_charger:%d\n", + chip->usb_online, online, user_enabled, chip->usb_present, chip->very_weak_charger); mutex_lock(&chip->usb_set_online_lock); if (chip->usb_online != online) { @@ -3623,6 +3687,12 @@ static int smbchg_config_chg_battery_type(struct smbchg_chip *chip) pr_warn("couldn't find battery max voltage rc=%d\n", rc); ret = rc; } else { + if (area_version_flag == 1) + max_voltage_uv = 4380000; + + #ifdef CONFIG_DISABLE_TEMP_PROTECT + max_voltage_uv = 4100000; + #endif if (chip->vfloat_mv != (max_voltage_uv / 1000)) { pr_info("Vfloat changed from %dmV to %dmV for battery-type %s\n", chip->vfloat_mv, (max_voltage_uv / 1000), @@ -3778,6 +3848,32 @@ static void smbchg_external_power_changed(struct power_supply *psy) power_supply_changed(&chip->batt_psy); } + +#define call_current_max 900 +#define d1_call_current_max 1200 +void smbchg_set_calling_current(struct smbchg_chip *chip) +{ + enum power_supply_type usb_supply_type; + char *usb_type_name = "null"; + + read_usb_type(chip, &usb_type_name, &usb_supply_type); + pr_smb(PR_MISC, "chip->call_state =%d, usb_supply_type =%d\n", chip->call_state, usb_supply_type); + if ((chip->call_state == 0)) { + if (usb_supply_type == POWER_SUPPLY_TYPE_USB_DCP) { +#if defined(CONFIG_D1_ROSY) + pr_smb(PR_MISC, "call_icl_voltage vote 1200mA when calling\n"); + vote(chip->usb_icl_votable, CALL_ICL_VOTER, true, d1_call_current_max); +#else + pr_smb(PR_MISC, "call_icl_voltage vote 900mA when calling\n"); + vote(chip->usb_icl_votable, CALL_ICL_VOTER, true, call_current_max); +#endif + } + } else { + pr_smb(PR_MISC, "call_icl_volter false"); + vote(chip->usb_icl_votable, CALL_ICL_VOTER, false, 0); + } +} + static int smbchg_otg_regulator_enable(struct regulator_dev *rdev) { int rc = 0; @@ -3862,7 +3958,7 @@ struct regulator_ops smbchg_otg_reg_ops = { #define ADAPTER_ALLOWANCE_MASK 0x7 #define USBIN_ADAPTER_9V 0x3 #define USBIN_ADAPTER_5V_9V_CONT 0x2 -#define USBIN_ADAPTER_5V_UNREGULATED_9V 0x5 +#define USBIN_ADAPTER_5V_UNREGULATED_9V 0x6 static int smbchg_external_otg_regulator_enable(struct regulator_dev *rdev) { int rc = 0; @@ -4722,6 +4818,95 @@ static int smbchg_restricted_charging(struct smbchg_chip *chip, bool enable) return rc; } + +#define FACTORY_DISCHAGE_CAPACITY_THRESHOLD 80 +static int smbchg_factory_mode_controlled_by_capacity(struct smbchg_chip *chip) +{ +#ifdef WT_COMPILE_FACTORY_VERSION + int rc, capacity_now; + + capacity_now = get_prop_batt_capacity(chip); + if ((capacity_now >= FACTORY_DISCHAGE_CAPACITY_THRESHOLD) && (capacity_now <= 100)) { + pr_smb(PR_DUMP, "capacity_now = %d, disable charge\n", capacity_now); + rc = smbchg_charging_en(chip, false); + if (rc) { + pr_err("failed to disable charge in factory mode\n"); + return rc; + } + } else if ((capacity_now >= 0) && (capacity_now < FACTORY_DISCHAGE_CAPACITY_THRESHOLD)) { + pr_smb(PR_DUMP, "capacity_now = %d, enable charge\n", capacity_now); + rc = smbchg_charging_en(chip, true); + if (rc) { + pr_err("failed to enable charge in factory mode\n"); + return rc; + } + } +#endif + return 0; +} + + + +#define MONITOR_PERIOD 20000 +static bool in_cool_low; +static bool in_cool_high; +static int smbchg_get_iusb(struct smbchg_chip *chip); +static void smbchg_monitor_charging_temp_5_work(struct work_struct *work) +{ + int battery_temperature; + bool usb_preset; + int batt_temp; + int chg_current; + int usb_current; + struct smbchg_chip *chip = container_of(work, struct smbchg_chip, monitor_charging_temp_5_work.work); + + usb_preset = is_usb_present(chip); + pr_smb(PR_DUMP, "monitor begin work. usb_preset = %d\n", usb_preset); + if (usb_preset) { + set_property_on_fg(chip, POWER_SUPPLY_PROP_UPDATE_NOW, 1); + battery_temperature = get_prop_batt_temp(chip); + if ((battery_temperature > chip->customize_cool_low_limit) + && (battery_temperature <= chip->customize_cool_high_limit)) { + if ((chip->fcc_customize_cool_ma > 0) && (!in_cool_low)) { + pr_smb(PR_DUMP, "between temp range 0 - 5\n"); + if (chip->customize_cool_high_limit < 60) + chip->customize_cool_high_limit = 60; + + in_cool_low = true; + in_cool_high = false; + vote(chip->fcc_votable, RESTRICTED_CHG_FCC_VOTER, true, chip->fcc_customize_cool_ma); + } + } else { + if (chip->batt_cool) { + + if ((chip->fcc_batt_cool_ma > 0) && (!in_cool_high) && (battery_temperature > chip->customize_cool_high_limit)) { + pr_smb(PR_DUMP, "between temp range 5 - 15\n"); + if (chip->customize_cool_high_limit > 50) + chip->customize_cool_high_limit = 50; + + in_cool_low = false; + in_cool_high = true; + vote(chip->fcc_votable, RESTRICTED_CHG_FCC_VOTER, true, chip->fcc_batt_cool_ma); + } + } else { + in_cool_low = false; + in_cool_high = false; + } + } + } + + batt_temp = get_prop_batt_temp(chip)/10; + chg_current = get_prop_batt_current_now(chip); + usb_current = smbchg_get_iusb(chip); + pr_smb(PR_DUMP, "@**batt_temp=%d,chg_current=%d,usb_current=%d\n", batt_temp, chg_current, usb_current); + + smbchg_factory_mode_controlled_by_capacity(chip); + + schedule_delayed_work(&chip->monitor_charging_temp_5_work, msecs_to_jiffies(MONITOR_PERIOD)); + +} + + static void handle_usb_removal(struct smbchg_chip *chip) { struct power_supply *parallel_psy = get_parallel_psy(chip); @@ -4775,6 +4960,14 @@ static void handle_usb_removal(struct smbchg_chip *chip) HVDCP_SHORT_DEGLITCH_VOTER, false, 0); if (!chip->hvdcp_not_supported) restore_from_hvdcp_detection(chip); + +#if defined(CONFIG_D1_ROSY) + in_cool_low = false; + in_cool_high = false; + chip->customize_cool_high_limit = 50; + cancel_delayed_work_sync(&chip->monitor_charging_temp_5_work); + smbchg_relax(chip, PM_CHARGER_ONLINE); +#endif } static bool is_usbin_uv_high(struct smbchg_chip *chip) @@ -4802,6 +4995,8 @@ static void handle_usb_insertion(struct smbchg_chip *chip) read_usb_type(chip, &usb_type_name, &usb_supply_type); pr_smb(PR_STATUS, "inserted type = %d (%s)", usb_supply_type, usb_type_name); + pr_smb(PR_STATUS, "plugged cable will call smbchg_set_calling_current \n"); + smbchg_set_calling_current(chip); smbchg_aicl_deglitch_wa_check(chip); if (chip->typec_psy) @@ -4849,6 +5044,11 @@ static void handle_usb_insertion(struct smbchg_chip *chip) rc = enable_irq_wake(chip->aicl_done_irq); chip->enable_aicl_wake = true; } + +#if defined(CONFIG_D1_ROSY) + smbchg_stay_awake(chip, PM_CHARGER_ONLINE); + schedule_delayed_work(&chip->monitor_charging_temp_5_work, msecs_to_jiffies(MONITOR_PERIOD)); +#endif } void update_usb_status(struct smbchg_chip *chip, bool usb_present, bool force) @@ -5799,6 +5999,7 @@ static enum power_supply_property smbchg_battery_properties[] = { POWER_SUPPLY_PROP_HEALTH, POWER_SUPPLY_PROP_TECHNOLOGY, POWER_SUPPLY_PROP_SYSTEM_TEMP_LEVEL, + POWER_SUPPLY_PROP_CHARGER_TYPE, POWER_SUPPLY_PROP_FLASH_CURRENT_MAX, POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT_MAX, POWER_SUPPLY_PROP_VOLTAGE_MAX, @@ -5820,6 +6021,8 @@ static enum power_supply_property smbchg_battery_properties[] = { POWER_SUPPLY_PROP_RESTRICTED_CHARGING, POWER_SUPPLY_PROP_ALLOW_HVDCP3, POWER_SUPPLY_PROP_MAX_PULSE_ALLOWED, + POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN, + POWER_SUPPLY_PROP_CHARGING_CALL_STATE, }; static int smbchg_battery_set_property(struct power_supply *psy, @@ -5903,6 +6106,13 @@ static int smbchg_battery_set_property(struct power_supply *psy, power_supply_changed(&chip->batt_psy); } break; + + case POWER_SUPPLY_PROP_CHARGING_CALL_STATE: + chip->call_state = val->intval; + pr_smb(PR_STATUS, "calling will call smbchg_set_calling_current and will detect cable plugged chip->call_state =%d\n", chip->call_state); + smbchg_set_calling_current(chip); + break; + default: return -EINVAL; } @@ -5927,6 +6137,7 @@ static int smbchg_battery_is_writeable(struct power_supply *psy, case POWER_SUPPLY_PROP_RERUN_AICL: case POWER_SUPPLY_PROP_RESTRICTED_CHARGING: case POWER_SUPPLY_PROP_ALLOW_HVDCP3: + case POWER_SUPPLY_PROP_CHARGING_CALL_STATE: rc = 1; break; default: @@ -5957,6 +6168,11 @@ static int smbchg_battery_get_property(struct power_supply *psy, case POWER_SUPPLY_PROP_CHARGING_ENABLED: val->intval = chip->chg_enabled; break; + + case POWER_SUPPLY_PROP_CHARGING_CALL_STATE: + val->intval = chip->call_state; + break; + case POWER_SUPPLY_PROP_CHARGE_TYPE: val->intval = get_prop_charge_type(chip); break; @@ -5967,7 +6183,7 @@ static int smbchg_battery_get_property(struct power_supply *psy, val->intval = get_prop_batt_health(chip); break; case POWER_SUPPLY_PROP_TECHNOLOGY: - val->intval = POWER_SUPPLY_TECHNOLOGY_LION; + val->intval = POWER_SUPPLY_TECHNOLOGY_LIPO; break; case POWER_SUPPLY_PROP_FLASH_CURRENT_MAX: val->intval = smbchg_calc_max_flash_current(chip); @@ -5978,6 +6194,9 @@ static int smbchg_battery_get_property(struct power_supply *psy, case POWER_SUPPLY_PROP_SYSTEM_TEMP_LEVEL: val->intval = chip->therm_lvl_sel; break; + case POWER_SUPPLY_PROP_CHARGER_TYPE: + val->intval = chip->usb_supply_type; + break; case POWER_SUPPLY_PROP_INPUT_CURRENT_MAX: val->intval = smbchg_get_aicl_level_ma(chip) * 1000; break; @@ -6006,6 +6225,9 @@ static int smbchg_battery_get_property(struct power_supply *psy, case POWER_SUPPLY_PROP_TEMP: val->intval = get_prop_batt_temp(chip); break; + case POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN: + val->intval = DEFAULT_BATT_CAPACITY_MAX_DESIGN; + break; case POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN: val->intval = get_prop_batt_voltage_max_design(chip); break; @@ -6167,6 +6389,8 @@ static irqreturn_t batt_cold_handler(int irq, void *_chip) get_prop_batt_health(chip)); return IRQ_HANDLED; } +#define BATT_WARM_CURRENT 900 +#define BATT_WARM_VOLTAGE 15 static irqreturn_t batt_warm_handler(int irq, void *_chip) { @@ -6176,6 +6400,10 @@ static irqreturn_t batt_warm_handler(int irq, void *_chip) smbchg_read(chip, ®, chip->bat_if_base + RT_STS, 1); chip->batt_warm = !!(reg & HOT_BAT_SOFT_BIT); pr_smb(PR_INTERRUPT, "triggered: 0x%02x\n", reg); + smbchg_fastchg_current_comp_set(chip, + BATT_WARM_CURRENT); + smbchg_float_voltage_comp_set(chip, + BATT_WARM_VOLTAGE); smbchg_parallel_usb_check_ok(chip); if (chip->psy_registered) power_supply_changed(&chip->batt_psy); @@ -6184,6 +6412,8 @@ static irqreturn_t batt_warm_handler(int irq, void *_chip) return IRQ_HANDLED; } +#define BATT_COOL_CURRENT 900 +#define BATT_COOL_VOLTAGE 5 static irqreturn_t batt_cool_handler(int irq, void *_chip) { struct smbchg_chip *chip = _chip; @@ -6191,7 +6421,27 @@ static irqreturn_t batt_cool_handler(int irq, void *_chip) smbchg_read(chip, ®, chip->bat_if_base + RT_STS, 1); chip->batt_cool = !!(reg & COLD_BAT_SOFT_BIT); - pr_smb(PR_INTERRUPT, "triggered: 0x%02x\n", reg); + pr_smb(PR_INTERRUPT, "triggered: 0x%02x, batt_cool=%d\n", reg, chip->batt_cool); +#if defined(CONFIG_D1_ROSY) + + if (chip->batt_cool) { + if (chip->fcc_batt_cool_ma > 0) { + vote(chip->fcc_votable, RESTRICTED_CHG_FCC_VOTER, true, chip->fcc_batt_cool_ma); + } + } else { + in_cool_low = false; + in_cool_high = false; + vote(chip->fcc_votable, RESTRICTED_CHG_FCC_VOTER, true, chip->cfg_fastchg_current_ma); + } + +#else + if (chip->batt_cool) { + smbchg_fastchg_current_comp_set(chip, + BATT_COOL_CURRENT); + smbchg_float_voltage_comp_set(chip, + BATT_COOL_VOLTAGE); + } +#endif smbchg_parallel_usb_check_ok(chip); if (chip->psy_registered) power_supply_changed(&chip->batt_psy); @@ -6436,6 +6686,13 @@ static irqreturn_t usbin_uv_handler(int irq, void *_chip) int aicl_level = smbchg_get_aicl_level_ma(chip); int rc; u8 reg; + bool usb_present = is_usb_present(chip); + + + pr_err( + "chip->usb_present = %d rt_sts = 0x%02x aicl = %d\n", + chip->usb_present, reg, aicl_level); + pr_err("CHG %s, chip->usb_present = %d usb_present = %d\n", __func__, chip->usb_present, usb_present); rc = smbchg_read(chip, ®, chip->usb_chgpth_base + RT_STS, 1); if (rc) { @@ -6567,9 +6824,15 @@ static irqreturn_t src_detect_handler(int irq, void *_chip) if (src_detect) { update_usb_status(chip, usb_present, 0); +#if defined(CONFIG_D1_ROSY) + smbchg_stay_awake(chip, PM_CHARGER_ONLINE); +#endif } else { update_usb_status(chip, 0, false); chip->aicl_irq_count = 0; +#if defined(CONFIG_D1_ROSY) + smbchg_relax(chip, PM_CHARGER_ONLINE); +#endif } out: return IRQ_HANDLED; @@ -6810,6 +7073,7 @@ static inline int get_bpd(const char *name) #define OTG_PIN_CTRL_RID_DIS 0x04 #define OTG_CMD_CTRL_RID_EN 0x08 #define AICL_ADC_BIT BIT(6) +#define OTG_CURRENT_REG SMB_MASK(1, 0) static void batt_ov_wa_check(struct smbchg_chip *chip) { int rc; @@ -6854,6 +7118,26 @@ static void batt_ov_wa_check(struct smbchg_chip *chip) } } + +#if defined(CONFIG_D1_ROSY) +#define CCMP_CFG 0xFA +#define COLD_SL_FV_COMP BIT(2) +#define COLD_SL_CHG_I_COMP BIT(0) +static int smbchg_cold_soft_limit_comp_dis_set(struct smbchg_chip *chip) +{ + int rc; + + rc = smbchg_sec_masked_write(chip, chip->chgr_base + CCMP_CFG, + COLD_SL_FV_COMP | COLD_SL_CHG_I_COMP, 0); + if (rc) + dev_err(chip->dev, "Couldn't set COLD_SL_FV_COMP and COLD_SL_CHG_I_COMP rc = %d\n", + rc); + + return rc; +} +#endif + + static int smbchg_hw_init(struct smbchg_chip *chip) { int rc, i; @@ -7091,6 +7375,17 @@ static int smbchg_hw_init(struct smbchg_chip *chip) } } + +#if defined(CONFIG_D1_ROSY) + rc = smbchg_cold_soft_limit_comp_dis_set(chip); + if (rc) { + dev_err(chip->dev, "Couldn't set cold_soft_limit_comp_dis rc = %d\n", + rc); + return rc; + } +#endif + + /* make the buck switch faster to prevent some vbus oscillation */ rc = smbchg_sec_masked_write(chip, chip->usb_chgpth_base + TR_8OR32B, @@ -7259,6 +7554,27 @@ static int smbchg_hw_init(struct smbchg_chip *chip) return rc; } } +#if defined(CONFIG_D1_ROSY) + + rc = smbchg_sec_masked_write(chip, chip->otg_base + 0xF3, + OTG_CURRENT_REG, 0x1); + if (rc < 0) { + dev_err(chip->dev, "Couldn't set OTG current config rc = %d\n", + rc); + return rc; + } + +#else + + rc = smbchg_sec_masked_write(chip, chip->otg_base + 0xF3, + OTG_CURRENT_REG, 0x2); + if (rc < 0) { + dev_err(chip->dev, "Couldn't set OTG current config rc = %d\n", + rc); + return rc; + } + +#endif if (chip->wa_flags & SMBCHG_BATT_OV_WA) batt_ov_wa_check(chip); @@ -7423,6 +7739,18 @@ static int smb_parse_dt(struct smbchg_chip *chip) if (chip->cfg_fastchg_current_ma == -EINVAL) chip->cfg_fastchg_current_ma = DEFAULT_FCC_MA; OF_PROP_READ(chip, chip->vfloat_mv, "float-voltage-mv", rc, 1); + if (area_version_flag == 1) + chip->vfloat_mv = 4380; + + #ifdef CONFIG_DISABLE_TEMP_PROTECT + chip->vfloat_mv = 4100; + #endif + + OF_PROP_READ(chip, chip->customize_cool_low_limit, "customize-cool-low-limit", rc, 1); + OF_PROP_READ(chip, chip->customize_cool_high_limit, "customize-cool-high-limit", rc, 1); + OF_PROP_READ(chip, chip->fcc_customize_cool_ma, "fastchg-current-customize-cool", rc, 1); + OF_PROP_READ(chip, chip->fcc_batt_cool_ma, "fastchg-current-bat-cool", rc, 1); + OF_PROP_READ(chip, chip->safety_time, "charging-timeout-mins", rc, 1); OF_PROP_READ(chip, chip->vled_max_uv, "vled-max-uv", rc, 1); if (chip->vled_max_uv < 0) @@ -7492,6 +7820,7 @@ static int smb_parse_dt(struct smbchg_chip *chip) "qcom,soft-vfloat-comp-disabled"); chip->chg_enabled = !(of_property_read_bool(node, "qcom,charging-disabled")); + chip->call_state = 1; chip->charge_unknown_battery = of_property_read_bool(node, "qcom,charge-unknown-battery"); chip->chg_inhibit_en = of_property_read_bool(node, @@ -8004,6 +8333,109 @@ static int smbchg_check_chg_version(struct smbchg_chip *chip) return 0; } + +static int period_ms; +static int set_period_ms(const char *val, struct kernel_param *kp) +{ + int ret; + + ret = param_set_int(val, kp); + if (ret) { + pr_err("error setting value %d\n", ret); + return ret; + } + if (wt_chip) { + pr_info("set_period_ms to %d\n", period_ms); + cancel_delayed_work_sync(&wt_chip->period_update_work); + schedule_delayed_work(&wt_chip->period_update_work, + round_jiffies_relative(msecs_to_jiffies + (period_ms))); + return 0; + } + return -EINVAL; +} +module_param_call(period_ms, set_period_ms, param_get_uint, + &period_ms, 0644); + +#define LOW_SOC_HEARTBEAT_MS 20000 +#define HEARTBEAT_MS 60000 +#define OFFCHG_FORCE_POWEROFF_DELTA HZ*60*10 +#define NORMAL_FORCE_POWEROFF_DELTA HZ*60*1 +static void period_update(struct work_struct *work) +{ + struct delayed_work *dwork = to_delayed_work(work); + struct smbchg_chip *chip = container_of(dwork, + struct smbchg_chip, period_update_work); + + int period = 500; + int temp, voltage, cap, status, charge_type, present, chg_current, usb_present, usb_current; + static int old_temp; + static int old_cap; + static int old_status; + static int old_present; + static int old_usb_present; + static int printk_counter; + + union power_supply_propval prop = {0,}; + int vbus; + + if (chip == NULL) { + pr_err("pmic fatal error:the_chip=null\n!!"); + return; + } + + if (smbchg_debug_mask == 0xFF) + dump_regs(chip); + + temp = get_prop_batt_temp(chip)/10; + voltage = get_prop_batt_voltage_now(chip)/1000; + cap = get_prop_batt_capacity(chip); + status = get_prop_batt_status(chip); + charge_type = get_prop_charge_type(chip); + present = get_prop_batt_present(chip); + chg_current = get_prop_batt_current_now(chip); + usb_present = is_usb_present(chip); + usb_current = smbchg_get_iusb(chip); + + chip->usb_psy->get_property(chip->usb_psy, POWER_SUPPLY_PROP_VOLTAGE_NOW, &prop); + vbus = prop.intval; + + printk_counter++; + /*if heatbeat_ms is bigger than 500ms,must output the logs directly.*/ + if ((period_ms >= 500) || (abs(temp-old_temp) >= 1) || (old_cap != cap) || (old_status != status) + || (old_present != present) || (old_usb_present != usb_present) || (printk_counter >= 5)) { + pr_info("***temp=%d,vol=%d,cap=%d,status=%d,chg_state=%d,current=%d,present=%d,usb_present=%d\n", + temp, voltage, cap, status, charge_type, chg_current, present, usb_present); + + pr_info("***present=%d,usb_present=%d,usb_current=%d, Vbus=%d\n", + present, usb_present, usb_current, vbus); + + + old_temp = temp; + old_cap = cap; + old_status = status; + old_present = present; + old_usb_present = usb_present; + printk_counter = 0; + } + + power_supply_changed(&chip->batt_psy); + + if (period_ms >= 500) { + period = period_ms; + } else { + if (cap <= 5) + period = LOW_SOC_HEARTBEAT_MS; + else + period = HEARTBEAT_MS; + } + + schedule_delayed_work(&chip->period_update_work, + round_jiffies_relative(msecs_to_jiffies + (period))); +} + + static void rerun_hvdcp_det_if_necessary(struct smbchg_chip *chip) { enum power_supply_type usb_supply_type; @@ -8184,10 +8616,14 @@ static int smbchg_probe(struct spmi_device *spmi) return PTR_ERR(chip->hvdcp_enable_votable); INIT_WORK(&chip->usb_set_online_work, smbchg_usb_update_online_work); + INIT_DELAYED_WORK(&chip->period_update_work, period_update); INIT_DELAYED_WORK(&chip->parallel_en_work, smbchg_parallel_usb_en_work); INIT_DELAYED_WORK(&chip->vfloat_adjust_work, smbchg_vfloat_adjust_work); INIT_DELAYED_WORK(&chip->hvdcp_det_work, smbchg_hvdcp_det_work); + + INIT_DELAYED_WORK(&chip->monitor_charging_temp_5_work, smbchg_monitor_charging_temp_5_work); + init_completion(&chip->src_det_lowered); init_completion(&chip->src_det_raised); init_completion(&chip->usbin_uv_lowered); @@ -8212,6 +8648,8 @@ static int smbchg_probe(struct spmi_device *spmi) mutex_init(&chip->usb_status_lock); device_init_wakeup(chip->dev, true); + get_area_version(chip); + rc = smbchg_parse_peripherals(chip); if (rc) { dev_err(chip->dev, "Error parsing DT peripherals: %d\n", rc); @@ -8331,6 +8769,8 @@ static int smbchg_probe(struct spmi_device *spmi) chip->revision[ANA_MAJOR], chip->revision[ANA_MINOR], get_prop_batt_present(chip), chip->dc_present, chip->usb_present); + schedule_delayed_work(&chip->period_update_work, + round_jiffies_relative(msecs_to_jiffies(HEARTBEAT_MS))); return 0; unregister_led_class: @@ -8398,11 +8838,9 @@ static void smbchg_shutdown(struct spmi_device *spmi) disable_irq(chip->otg_oc_irq); disable_irq(chip->power_ok_irq); disable_irq(chip->recharge_irq); - disable_irq(chip->src_detect_irq); disable_irq(chip->taper_irq); disable_irq(chip->usbid_change_irq); disable_irq(chip->usbin_ov_irq); - disable_irq(chip->usbin_uv_irq); disable_irq(chip->vbat_low_irq); disable_irq(chip->wdog_timeout_irq); @@ -8460,6 +8898,9 @@ static void smbchg_shutdown(struct spmi_device *spmi) if (rc < 0) pr_err("Couldn't fake insertion rc=%d\n", rc); + disable_irq(chip->src_detect_irq); + disable_irq(chip->usbin_uv_irq); + pr_smb(PR_MISC, "Wait 1S to settle\n"); msleep(1000); chip->hvdcp_3_det_ignore_uv = false; diff --git a/drivers/power/reset/msm-poweroff.c b/drivers/power/reset/msm-poweroff.c index ee3e72b3537ac..4350fa5ed6f97 100644 --- a/drivers/power/reset/msm-poweroff.c +++ b/drivers/power/reset/msm-poweroff.c @@ -1,4 +1,5 @@ /* Copyright (c) 2013-2016, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -55,7 +56,9 @@ static void __iomem *msm_ps_hold; static phys_addr_t tcsr_boot_misc_detect; static void scm_disable_sdi(void); -#ifdef CONFIG_MSM_DLOAD_MODE +#if defined(WT_FINAL_RELEASE) +static int download_mode; +#elif defined(CONFIG_MSM_DLOAD_MODE) /* Runtime could be only changed value once. * There is no API from TZ to re-enable the registers. * So the SDI cannot be re-enabled when it already by-passed. @@ -154,17 +157,18 @@ static bool get_dload_mode(void) static void enable_emergency_dload_mode(void) { +#ifdef WT_COMPILE_FACTORY_VERSION int ret; if (emergency_dload_mode_addr) { __raw_writel(EMERGENCY_DLOAD_MAGIC1, - emergency_dload_mode_addr); + emergency_dload_mode_addr); __raw_writel(EMERGENCY_DLOAD_MAGIC2, - emergency_dload_mode_addr + - sizeof(unsigned int)); + emergency_dload_mode_addr + + sizeof(unsigned int)); __raw_writel(EMERGENCY_DLOAD_MAGIC3, - emergency_dload_mode_addr + - (2 * sizeof(unsigned int))); + emergency_dload_mode_addr + + (2 * sizeof(unsigned int))); /* Need disable the pmic wdt, then the emergency dload mode * will not auto reset. */ @@ -175,6 +179,9 @@ static void enable_emergency_dload_mode(void) ret = scm_set_dload_mode(SCM_EDLOAD_MODE, 0); if (ret) pr_err("Failed to set secure EDLOAD mode: %d\n", ret); +#else + pr_err("Failed to set secure EDLOAD mode: Xiaomi Required\n"); +#endif } static int dload_set(const char *val, struct kernel_param *kp) @@ -216,6 +223,7 @@ static bool get_dload_mode(void) static void scm_disable_sdi(void) { +#ifdef WT_FINAL_RELEASE int ret; struct scm_desc desc = { .args[0] = 1, @@ -232,6 +240,7 @@ static void scm_disable_sdi(void) SCM_WDOG_DEBUG_BOOT_PART), &desc); if (ret) pr_err("Failed to disable secure wdog debug: %d\n", ret); +#endif } void msm_set_restart_mode(int mode) @@ -264,6 +273,17 @@ static void halt_spmi_pmic_arbiter(void) } } +static bool device_locked_flag; +static int __init device_locked(char *str) +{ + if (strcmp(str, "1")) + device_locked_flag = false; + else + device_locked_flag = true; + return 1; +} +__setup("device_locked=", device_locked); + static void msm_restart_prepare(const char *cmd) { bool need_warm_reset = false; @@ -281,12 +301,12 @@ static void msm_restart_prepare(const char *cmd) if (qpnp_pon_check_hard_reset_stored()) { /* Set warm reset as true when device is in dload mode */ - if (get_dload_mode() || + if (get_dload_mode() || in_panic || ((cmd != NULL && cmd[0] != '\0') && !strcmp(cmd, "edl"))) need_warm_reset = true; } else { - need_warm_reset = (get_dload_mode() || + need_warm_reset = (get_dload_mode() || in_panic || (cmd != NULL && cmd[0] != '\0')); } @@ -297,7 +317,11 @@ static void msm_restart_prepare(const char *cmd) qpnp_pon_system_pwr_off(PON_POWER_OFF_HARD_RESET); } - if (cmd != NULL) { + if (in_panic) { + qpnp_pon_system_pwr_off(PON_POWER_OFF_WARM_RESET); + qpnp_pon_set_restart_reason(PON_RESTART_REASON_PANIC); + __raw_writel(0x77665504, restart_reason); + } else if (cmd != NULL) { if (!strncmp(cmd, "bootloader", 10)) { qpnp_pon_set_restart_reason( PON_RESTART_REASON_BOOTLOADER); @@ -322,6 +346,8 @@ static void msm_restart_prepare(const char *cmd) qpnp_pon_set_restart_reason( PON_RESTART_REASON_KEYS_CLEAR); __raw_writel(0x7766550a, restart_reason); + } else if (!strncmp(cmd, "fastmmi", 7)) { + __raw_writel(0x77665505, restart_reason); } else if (!strncmp(cmd, "oem-", 4)) { unsigned long code; int ret; @@ -329,11 +355,20 @@ static void msm_restart_prepare(const char *cmd) if (!ret) __raw_writel(0x6f656d00 | (code & 0xff), restart_reason); +#ifdef WT_COMPILE_FACTORY_VERSION } else if (!strncmp(cmd, "edl", 3)) { - enable_emergency_dload_mode(); + enable_emergency_dload_mode(); +#else + } else if (!strncmp(cmd, "edl", 3) && !device_locked_flag) { + enable_emergency_dload_mode(); +#endif } else { + qpnp_pon_set_restart_reason(PON_RESTART_REASON_NORMAL); __raw_writel(0x77665501, restart_reason); } + } else { + qpnp_pon_set_restart_reason(PON_RESTART_REASON_NORMAL); + __raw_writel(0x77665501, restart_reason); } flush_cache_all(); @@ -397,6 +432,8 @@ static void do_msm_poweroff(void) pr_notice("Powering off the SoC\n"); set_dload_mode(0); + qpnp_pon_set_restart_reason(PON_RESTART_REASON_UNKNOWN); + __raw_writel(0x0, restart_reason); scm_disable_sdi(); qpnp_pon_system_pwr_off(PON_POWER_OFF_SHUTDOWN); @@ -569,6 +606,9 @@ static int msm_restart_probe(struct platform_device *pdev) if (mem) tcsr_boot_misc_detect = mem->start; + + qpnp_pon_set_restart_reason(PON_RESTART_REASON_UNKNOWN); + __raw_writel(0x77665506, restart_reason); pm_power_off = do_msm_poweroff; arm_pm_restart = do_msm_restart; diff --git a/drivers/power/smb358-charger.c b/drivers/power/smb358-charger.c index 75cf2f964ca10..396742b14081b 100644 --- a/drivers/power/smb358-charger.c +++ b/drivers/power/smb358-charger.c @@ -1,4 +1,5 @@ -/* Copyright (c) 2014-2015 The Linux Foundation. All rights reserved. +/* Copyright (c) 2014 The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -29,6 +30,15 @@ #include #include +#include +#include +#include +#include + +#include +#include + + #define _SMB358_MASK(BITS, POS) \ ((unsigned char)(((1 << (BITS)) - 1) << (POS))) #define SMB358_MASK(LEFT_BIT_POS, RIGHT_BIT_POS) \ @@ -48,6 +58,7 @@ #define OTHER_CTRL_REG 0x9 #define FAULT_INT_REG 0xC #define STATUS_INT_REG 0xD +#define OTG_CONTROL_REG 0xA /* Command registers */ #define CMD_A_REG 0x30 @@ -90,6 +101,10 @@ #define CHG_CTRL_APSD_EN_MASK BIT(2) #define CHG_ITERM_MASK 0x07 #define CHG_PIN_CTRL_USBCS_REG_BIT 0x0 +#define OTG_CURRENT_CONTROL_BIT2 BIT(2) +#define OTG_CURRENT_CONTROL_BIT3 BIT(3) + + /* This is to select if use external pin EN to control CHG */ #define CHG_PIN_CTRL_CHG_EN_LOW_PIN_BIT SMB358_MASK(6, 5) #define CHG_PIN_CTRL_CHG_EN_LOW_REG_BIT 0x0 @@ -175,17 +190,40 @@ #define SMB358_FAST_CHG_MAX_MA 2000 #define SMB358_FAST_CHG_SHIFT 5 #define SMB_FAST_CHG_CURRENT_MASK 0xE0 -#define SMB358_DEFAULT_BATT_CAPACITY 50 +#define SMB358_DEFAULT_BATT_CAPACITY 10 #define SMB358_BATT_GOOD_THRE_2P5 0x1 +#ifdef CONFIG_C3N_SMB358 +#define BATTERY_FCC 3030 +#else +#define BATTERY_FCC 3000 +#endif + + +int pre_usb_current_ma = -EINVAL; +bool thermal = false; +bool recovery = false; +int fastmmi_mode = 0; + +#define DEBUG + +extern struct device_node *of_batterydata_get_best_profile( + const struct device_node *batterydata_container_node, + const char *psy_name, const char *batt_type); + + + enum { - USER = BIT(0), - THERMAL = BIT(1), - CURRENT = BIT(2), - SOC = BIT(3), - FAKE_BATTERY = BIT(4), + USER = BIT(0), + THERMAL = BIT(1), + CURRENT = BIT(2), + SOC = BIT(3), }; +enum path_type { + USB, + DC, +}; struct smb358_regulator { struct regulator_desc rdesc; struct regulator_dev *rdev; @@ -208,26 +246,28 @@ struct smb358_charger { bool chg_autonomous_mode; bool disable_apsd; bool using_pmic_therm; - bool pmic_vbat_sns; bool battery_missing; const char *bms_psy_name; bool resume_completed; bool irq_waiting; bool bms_controlled_charging; - bool skip_usb_suspend_for_fake_battery; struct mutex read_write_lock; struct mutex path_suspend_lock; struct mutex irq_complete; + struct wake_lock wake_lock_hightemp; u8 irq_cfg_mask[2]; + u8 power_ok; int irq_gpio; int charging_disabled; int fastchg_current_max_ma; - unsigned int cool_bat_ma; + + int psy_usb_ma; + + unsigned int cool_cold_bat_ma; + unsigned int cool_normal_bat_ma; unsigned int warm_bat_ma; unsigned int cool_bat_mv; unsigned int warm_bat_mv; - unsigned int connected_rid; - /* debugfs related */ #if defined(CONFIG_DEBUG_FS) struct dentry *debug_root; @@ -240,16 +280,20 @@ struct smb358_charger { bool batt_warm; bool batt_cool; bool jeita_supported; + int psy_health_sts; int charging_disabled_status; int usb_suspended; /* power supply */ struct power_supply *usb_psy; struct power_supply *bms_psy; + struct power_supply *rk_bat; struct power_supply batt_psy; /* otg 5V regulator */ struct smb358_regulator otg_vreg; + struct work_struct batt_temp_work; + struct alarm batt_temp_alarm; /* adc_tm paramters */ struct qpnp_vadc_chip *vadc_dev; @@ -260,10 +304,34 @@ struct smb358_charger { int cool_bat_decidegc; int warm_bat_decidegc; int bat_present_decidegc; + unsigned int thermal_levels; + unsigned int therm_lvl_sel; + int *thermal_mitigation; + struct mutex current_change_lock; /* i2c pull up regulator */ struct regulator *vcc_i2c; + unsigned int fcc_mah; + const char *battery_type; + + + struct delayed_work abnormal_detect; }; +int hot_status = 0; +int cold_status = 0; +int warm_status = 0; +int cool_status = 0; + +int cool_status_5 = 0; + +static int smb358_charging_disable(struct smb358_charger *chip, + int reason, int disable); +static int smb358_get_prop_batt_temp(struct smb358_charger *chip); +static void smb358_chg_set_appropriate_vddmax( + struct smb358_charger *chip); +static void smb358_chg_set_appropriate_battery_current( + struct smb358_charger *chip); + struct smb_irq_info { const char *name; int (*smb_irq)(struct smb358_charger *chip, @@ -292,6 +360,8 @@ static char *pm_batt_supplied_to[] = { "bms", }; +static void dump_regs(struct smb358_charger *chip); + static int __smb358_read_reg(struct smb358_charger *chip, u8 reg, u8 *val) { s32 ret; @@ -384,6 +454,241 @@ static int smb358_enable_volatile_writes(struct smb358_charger *chip) return rc; } + +static int disable_software_temp_monitor; +int dis_sof_temp_monitor_set(const char *val, const struct kernel_param *kp) +{ + if (!val) + val = "1"; + return strtobool(val, kp->arg); +} + +int dis_sof_temp_monitor_get(char *buffer, const struct kernel_param *kp) +{ + disable_software_temp_monitor = 1; + return sprintf(buffer, "%c", *(bool *)kp->arg ? 'Y' : 'N'); +} + +static struct kernel_param_ops dis_sof_temp_monitor_ops = { + .set = dis_sof_temp_monitor_set, + .get = dis_sof_temp_monitor_get, +}; + +module_param_cb(disable_software_temp_monitor, &dis_sof_temp_monitor_ops + , &disable_software_temp_monitor, 0644); + +MODULE_PARM_DESC(debug, "1:disable software temp monitor , 0:enable,default:0"); + + + +#define DELAY_COUNT 3 +#define VFLT_300MV 0x0C +#define VFLT_200MV 0x08 +#define VFLT_100MV 0x04 +#define VFLT_50MV 0x00 +#define VFLT_MASK 0x0C +static void qpnp_lbc_temp_alarm_work_fn(struct work_struct *work) +{ + ktime_t kt; + int batt_temp = 250; + u64 monitor_second = 10LL*NSEC_PER_SEC; + static int disabled_delay_times = DELAY_COUNT; + static int enabled_delay_times = DELAY_COUNT; + static int chg_enabled1; + static int chg_enabled2; + static int chg_enabled3; + static int chg_disabled; + u8 reg = 0; + int rc; + + struct smb358_charger *chip = container_of(work, struct smb358_charger, batt_temp_work); + + smb358_read_reg(chip, IRQ_E_REG, ®); + if (!reg) { + chip->chg_present = true; + power_supply_set_present(chip->usb_psy, chip->chg_present); + } else { + chip->chg_present = false; + smb358_charging_disable(chip, THERMAL, 1); + power_supply_set_present(chip->usb_psy, chip->chg_present); + } + + + if (!chip->chg_present) { + enabled_delay_times = DELAY_COUNT; + disabled_delay_times = DELAY_COUNT; + chg_disabled = 0; + chg_enabled1 = 0; + chg_enabled2 = 0; + chg_enabled3 = 0; + hot_status = 0; + cold_status = 0; + + + + pr_err("wgz usb plug out or charge done\n"); + goto exit; + } + + if (disable_software_temp_monitor) { + smb358_charging_disable(chip, THERMAL, 0); + enabled_delay_times = DELAY_COUNT; + disabled_delay_times = DELAY_COUNT; + chg_disabled = 0; + chg_enabled1 = 0; + chg_enabled2 = 0; + chg_enabled3 = 0; + hot_status = 0; + cold_status = 0; + warm_status = 0; + cool_status = 0; + goto out; + } + + batt_temp = smb358_get_prop_batt_temp(chip); + pr_err("wgz temp = %d , disabled_delay_times = %d , enabled_delay_times = %d\n" + , batt_temp , disabled_delay_times , enabled_delay_times); + + if (batt_temp >= 0 && batt_temp <= 150) { + reg = VFLT_100MV; + rc = smb358_masked_write(chip, CHG_OTH_CURRENT_CTRL_REG, + VFLT_MASK, reg); + if (rc) { + dev_err(chip->dev, + "Couldn't set inhibit threshold rc = %d\n", rc); + } + } + + + if ((batt_temp > 550 || batt_temp < 0) && !chg_disabled) { + wake_lock(&chip->wake_lock_hightemp); + if ((disabled_delay_times++) >= DELAY_COUNT) { + pr_err("wgz temp high disable charger\n"); + enabled_delay_times = 0; + disabled_delay_times = 0; + chg_disabled = 1; + chg_enabled1 = 0; + chg_enabled2 = 0; + chg_enabled3 = 0; + if (batt_temp > 550) { + pr_err("battery is too hot\n"); + hot_status = 1; + cold_status = 0; + warm_status = 0; + cool_status = 0; + } else if (batt_temp < 0) { + pr_err("battery is too cold\n"); + hot_status = 0; + cold_status = 1; + warm_status = 0; + cool_status = 0; + } + smb358_charging_disable(chip, THERMAL, 1); + wake_unlock(&chip->wake_lock_hightemp); + power_supply_changed(&chip->batt_psy); + } + } else if (((batt_temp > 450 && batt_temp <= 550) || (batt_temp > 50 && batt_temp <= 150)) && !chg_enabled1) { + wake_lock(&chip->wake_lock_hightemp); + if ((disabled_delay_times++) >= DELAY_COUNT) { + enabled_delay_times = 0; + disabled_delay_times = 0; + chg_disabled = 0; + chg_enabled1 = 1; + chg_enabled2 = 0; + chg_enabled3 = 0; + + if (batt_temp > 450 && batt_temp <= 550) { + pr_err("battery is too warm\n"); + hot_status = 0; + cold_status = 0; + warm_status = 1; + cool_status = 0; + } else if (batt_temp > 50 && batt_temp <= 150) { + pr_err("battery is too cool_normal\n"); + hot_status = 0; + cold_status = 0; + warm_status = 0; + cool_status = 1; + cool_status_5 = 2; + } + + smb358_charging_disable(chip, THERMAL, 0); + smb358_chg_set_appropriate_battery_current(chip); + smb358_chg_set_appropriate_vddmax(chip); + wake_unlock(&chip->wake_lock_hightemp); + power_supply_changed(&chip->batt_psy); + } + } + + else if ((!chg_enabled3) && ((batt_temp >= 0) && (batt_temp <= 50))) { + wake_lock(&chip->wake_lock_hightemp); + if ((disabled_delay_times++) >= DELAY_COUNT) { + pr_err("battery is too cool_cold\n"); + enabled_delay_times = 0; + disabled_delay_times = 0; + chg_disabled = 0; + chg_enabled1 = 0; + chg_enabled2 = 0; + chg_enabled3 = 1; + + hot_status = 0; + cold_status = 0; + warm_status = 0; + cool_status = 1; + cool_status_5 = 1; + smb358_chg_set_appropriate_battery_current(chip); + smb358_chg_set_appropriate_vddmax(chip); + wake_unlock(&chip->wake_lock_hightemp); + power_supply_changed(&chip->batt_psy); + } + } + + else if ((!chg_enabled2) && ((batt_temp > 150) && (batt_temp <= 450))) { + { + wake_lock(&chip->wake_lock_hightemp); + if (enabled_delay_times++ == DELAY_COUNT) { + pr_err("battery is normal\n"); + enabled_delay_times = 0; + disabled_delay_times = 0; + chg_disabled = 0; + chg_enabled1 = 0; + chg_enabled2 = 1; + chg_enabled3 = 0; + + smb358_charging_disable(chip, THERMAL, 0); + hot_status = 0; + cold_status = 0; + warm_status = 0; + cool_status = 0; + smb358_chg_set_appropriate_battery_current(chip); + smb358_chg_set_appropriate_vddmax(chip); + wake_unlock(&chip->wake_lock_hightemp); + power_supply_changed(&chip->batt_psy); + } + } + } +out: + kt = ns_to_ktime(monitor_second); + alarm_start_relative(&chip->batt_temp_alarm, kt); +exit: + pm_relax(chip->dev); +} + + +static enum alarmtimer_restart batt_temp_alarm_callback(struct alarm *alarm, + ktime_t now) +{ + struct smb358_charger *chip = container_of(alarm, struct smb358_charger, + batt_temp_alarm); + + pr_err("wgz %s:%d\n" , __FUNCTION__ , __LINE__); + pm_stay_awake(chip->dev); + schedule_work(&chip->batt_temp_work); + + return ALARMTIMER_NORESTART; +} + + static int smb358_fastchg_current_set(struct smb358_charger *chip, unsigned int fastchg_current) { @@ -391,7 +696,7 @@ static int smb358_fastchg_current_set(struct smb358_charger *chip, if ((fastchg_current < SMB358_FAST_CHG_MIN_MA) || (fastchg_current > SMB358_FAST_CHG_MAX_MA)) { - dev_dbg(chip->dev, "bad fastchg current mA=%d asked to set\n", + pr_debug("bad fastchg current mA=%d asked to set\n", fastchg_current); return -EINVAL; } @@ -408,7 +713,7 @@ static int smb358_fastchg_current_set(struct smb358_charger *chip, } i = i << SMB358_FAST_CHG_SHIFT; - dev_dbg(chip->dev, "fastchg limit=%d setting %02x\n", + pr_debug("fastchg limit=%d setting %02x\n", fastchg_current, i); return smb358_masked_write(chip, CHG_CURRENT_CTRL_REG, @@ -568,6 +873,15 @@ static int smb358_chg_otg_regulator_enable(struct regulator_dev *rdev) if (rc) dev_err(chip->dev, "Couldn't enable OTG mode rc=%d, reg=%2x\n", rc, CMD_A_REG); + + + rc = smb358_masked_write(chip, OTG_CONTROL_REG, OTG_CURRENT_CONTROL_BIT2, + OTG_CURRENT_CONTROL_BIT2); + if (rc) + dev_err(chip->dev, "Couldn't enable OTG current control rc=%d, reg=%2x\n", + rc, OTG_CONTROL_REG); + + return rc; } @@ -646,53 +960,6 @@ static int smb358_regulator_init(struct smb358_charger *chip) return rc; } -static int __smb358_path_suspend(struct smb358_charger *chip, bool suspend) -{ - int rc; - - rc = smb358_masked_write(chip, CMD_A_REG, CMD_A_CHG_SUSP_EN_MASK, - suspend ? CMD_A_CHG_SUSP_EN_BIT : 0); - if (rc < 0) - dev_err(chip->dev, "Couldn't set CMD_A reg, rc = %d\n", rc); - - return rc; -} - -static int smb358_path_suspend(struct smb358_charger *chip, int reason, - bool suspend) -{ - int rc = 0; - int suspended; - - mutex_lock(&chip->path_suspend_lock); - suspended = chip->usb_suspended; - - if (suspend == false) - suspended &= ~reason; - else - suspended |= reason; - - if (!chip->usb_suspended && suspended) { - rc = __smb358_path_suspend(chip, true); - chip->usb_suspended = suspended; - power_supply_set_online(chip->usb_psy, !chip->usb_suspended); - power_supply_changed(chip->usb_psy); - } else if (chip->usb_suspended && !suspended) { - rc = __smb358_path_suspend(chip, false); - chip->usb_suspended = suspended; - power_supply_set_online(chip->usb_psy, !chip->usb_suspended); - power_supply_changed(chip->usb_psy); - } - - if (rc) - dev_err(chip->dev, "Couldn't set/unset suspend rc = %d\n", rc); - - mutex_unlock(&chip->path_suspend_lock); - - return rc; -} - - static int __smb358_charging_disable(struct smb358_charger *chip, bool disable) { int rc; @@ -711,6 +978,9 @@ static int smb358_charging_disable(struct smb358_charger *chip, int rc = 0; int disabled; + if (disable == true) { + pre_usb_current_ma = -EINVAL; + } disabled = chip->charging_disabled_status; pr_debug("reason = %d requested_disable = %d disabled_status = %d\n", @@ -738,19 +1008,17 @@ static int smb358_charging_disable(struct smb358_charger *chip, return rc; } -#define MAX_INV_BATT_ID 7700 -#define MIN_INV_BATT_ID 7300 static int smb358_hw_init(struct smb358_charger *chip) { int rc; u8 reg = 0, mask = 0; /* - * If the charger is pre-configured for autonomous operation, - * do not apply additonal settings - */ + * If the charger is pre-configured for autonomous operation, + * do not apply additonal settings + */ if (chip->chg_autonomous_mode) { - dev_dbg(chip->dev, "Charger configured for autonomous mode\n"); + pr_debug("Charger configured for autonomous mode\n"); return 0; } @@ -792,9 +1060,6 @@ static int smb358_hw_init(struct smb358_charger *chip) if (!chip->disable_apsd) reg = CHG_CTRL_APSD_EN_BIT; - else - reg = 0; - rc = smb358_masked_write(chip, CHG_CTRL_REG, CHG_CTRL_APSD_EN_MASK, reg); if (rc) { @@ -853,17 +1118,6 @@ static int smb358_hw_init(struct smb358_charger *chip) if (rc) dev_err(chip->dev, "Couldn't set recharge para rc=%d\n", rc); - /* suspend USB path for fake battery */ - if (!chip->skip_usb_suspend_for_fake_battery) { - if ((chip->connected_rid >= MIN_INV_BATT_ID) && - (chip->connected_rid <= MAX_INV_BATT_ID)) { - rc = smb358_path_suspend(chip, FAKE_BATTERY, true); - if (!rc) - dev_info(chip->dev, - "Suspended USB path reason FAKE_BATTERY\n"); - } - } - /* enable/disable charging */ if (chip->charging_disabled) { rc = smb358_charging_disable(chip, USER, 1); @@ -872,9 +1126,9 @@ static int smb358_hw_init(struct smb358_charger *chip) chip->charging_disabled ? "disable" : "enable", rc); } else { /* - * Enable charging explictly, - * because not sure the default behavior. - */ + * Enable charging explictly, + * because not sure the default behavior. + */ rc = __smb358_charging_disable(chip, 0); if (rc) dev_err(chip->dev, "Couldn't enable charging\n"); @@ -908,6 +1162,12 @@ static enum power_supply_property smb358_battery_properties[] = { POWER_SUPPLY_PROP_MODEL_NAME, POWER_SUPPLY_PROP_TEMP, POWER_SUPPLY_PROP_VOLTAGE_NOW, + POWER_SUPPLY_PROP_CURRENT_NOW, + POWER_SUPPLY_PROP_SYSTEM_TEMP_LEVEL, + POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN, + POWER_SUPPLY_PROP_CHARGE_FULL, + POWER_SUPPLY_PROP_BATTERY_TYPE, + POWER_SUPPLY_PROP_RESISTANCE_ID, }; static int smb358_get_prop_batt_status(struct smb358_charger *chip) @@ -915,23 +1175,23 @@ static int smb358_get_prop_batt_status(struct smb358_charger *chip) int rc; u8 reg = 0; - if (chip->batt_full) - return POWER_SUPPLY_STATUS_FULL; - rc = smb358_read_reg(chip, STATUS_C_REG, ®); + pr_debug("XXX::smb358_get_prop_batt_status:reg=0x%x\r\n", reg); if (rc) { dev_err(chip->dev, "Couldn't read STAT_C rc = %d\n", rc); return POWER_SUPPLY_STATUS_UNKNOWN; } - dev_dbg(chip->dev, "%s: STATUS_C_REG=%x\n", __func__, reg); + pr_debug("%s: STATUS_C_REG=%x\n", __func__, reg); - if (reg & STATUS_C_CHG_HOLD_OFF_BIT) - return POWER_SUPPLY_STATUS_NOT_CHARGING; + if ((chip->batt_full)) + return POWER_SUPPLY_STATUS_FULL; if ((reg & STATUS_C_CHARGING_MASK) && !(reg & STATUS_C_CHG_ERR_STATUS_BIT)) return POWER_SUPPLY_STATUS_CHARGING; + if ((reg & STATUS_C_CHG_HOLD_OFF_BIT) || !chip->power_ok) + return POWER_SUPPLY_STATUS_NOT_CHARGING; return POWER_SUPPLY_STATUS_DISCHARGING; } @@ -941,6 +1201,7 @@ static int smb358_get_prop_batt_present(struct smb358_charger *chip) return !chip->battery_missing; } +static struct power_supply *cw2015_psy; static int smb358_get_prop_batt_capacity(struct smb358_charger *chip) { union power_supply_propval ret = {0, }; @@ -948,17 +1209,41 @@ static int smb358_get_prop_batt_capacity(struct smb358_charger *chip) if (chip->fake_battery_soc >= 0) return chip->fake_battery_soc; + if (!cw2015_psy) + cw2015_psy = power_supply_get_by_name("rk-bat"); + if (cw2015_psy) { + cw2015_psy->get_property(cw2015_psy, + POWER_SUPPLY_PROP_CAPACITY, &ret); + pr_err("CW2015_BATTERY_CAPACITY IS:%d\n", ret.intval); + return ret.intval; + } + if (chip->bms_psy) { chip->bms_psy->get_property(chip->bms_psy, POWER_SUPPLY_PROP_CAPACITY, &ret); + pr_err("BMS_BATTERY_CAPACITY IS:%d\n", ret.intval); return ret.intval; + } - dev_dbg(chip->dev, - "Couldn't get bms_psy, return default capacity\n"); + pr_debug("Couldn't get bms_psy, return default capacity\n"); return SMB358_DEFAULT_BATT_CAPACITY; } +static int get_prop_current_now(struct smb358_charger *chip) +{ + union power_supply_propval ret = {0,}; + if (chip->bms_psy) { + chip->bms_psy->get_property(chip->bms_psy, + POWER_SUPPLY_PROP_CURRENT_NOW, &ret); + pr_debug("xujismbcur = %d\n", ret.intval); + return ret.intval; + } else { + pr_debug("No BMS supply registered return 0\n"); + } + return 1000; +} + static int smb358_get_prop_charge_type(struct smb358_charger *chip) { int rc; @@ -970,7 +1255,7 @@ static int smb358_get_prop_charge_type(struct smb358_charger *chip) return POWER_SUPPLY_CHARGE_TYPE_UNKNOWN; } - dev_dbg(chip->dev, "%s: STATUS_C_REG=%x\n", __func__, reg); + pr_debug("%s: STATUS_C_REG=%x\n", __func__, reg); reg &= STATUS_C_CHARGING_MASK; @@ -987,18 +1272,24 @@ static int smb358_get_prop_charge_type(struct smb358_charger *chip) static int smb358_get_prop_batt_health(struct smb358_charger *chip) { union power_supply_propval ret = {0, }; - - if (chip->batt_hot) - ret.intval = POWER_SUPPLY_HEALTH_OVERHEAT; - else if (chip->batt_cold) - ret.intval = POWER_SUPPLY_HEALTH_COLD; - else if (chip->batt_warm) - ret.intval = POWER_SUPPLY_HEALTH_WARM; - else if (chip->batt_cool) - ret.intval = POWER_SUPPLY_HEALTH_COOL; + if (!disable_software_temp_monitor) { + if (hot_status == 1) + return POWER_SUPPLY_HEALTH_OVERHEAT; + if (cold_status == 1) + return POWER_SUPPLY_HEALTH_COLD; + if (cool_status == 1) + return POWER_SUPPLY_HEALTH_COOL; + if (warm_status == 1) + return POWER_SUPPLY_HEALTH_WARM; + else if (chip->psy_health_sts == POWER_SUPPLY_HEALTH_OVERVOLTAGE) + ret.intval = POWER_SUPPLY_HEALTH_OVERVOLTAGE; + else + ret.intval = POWER_SUPPLY_HEALTH_GOOD; + } else - ret.intval = POWER_SUPPLY_HEALTH_GOOD; + ret.intval = POWER_SUPPLY_HEALTH_GOOD; + pr_err("battery health is %d\n", ret.intval); return ret.intval; } @@ -1008,52 +1299,146 @@ static int smb358_get_prop_batt_temp(struct smb358_charger *chip) int rc = 0; struct qpnp_vadc_result results; - if (!smb358_get_prop_batt_present(chip) - || !chip->vadc_dev - || !chip->using_pmic_therm) + if (!smb358_get_prop_batt_present(chip)) return DEFAULT_TEMP; - rc = qpnp_vadc_read(chip->vadc_dev, LR_MUX1_BATT_THERM, &results); + rc = qpnp_vadc_read(chip->vadc_dev, P_MUX2_1_1, &results); if (rc) { pr_debug("Unable to read batt temperature rc=%d\n", rc); return DEFAULT_TEMP; } - pr_debug("get_bat_temp %d, %lld\n", + pr_err("get_bat_temp %d, %lld\n", results.adc_code, results.physical); - return (int)results.physical; + #ifdef CONFIG_DISABLE_TEMP_PROTECT + pr_err("WINGTECH disable temp protect version; real temp:%lld\n", results.physical*10); + return 250; + #endif + if (results.physical*10 > 46 && results.physical*10 < 51) + return results.physical * 10 + 4; + else if (results.physical*10 > 51 && results.physical*10 < 56) + return results.physical*10 + 6; + else + return results.physical*10; + + } +int battid_resister = 0; +#define DEFAULT_RESISTER 50 + + + int smb358_get_prop_battid_resister(struct smb358_charger *chip) +{ + int rc = 0; + struct qpnp_vadc_result results; + + rc = qpnp_vadc_read(chip->vadc_dev, P_MUX4_1_1, &results); + if (rc) { + pr_debug("Unable to read batt resister rc=%d\n", rc); + return DEFAULT_RESISTER; + } + battid_resister = (results.physical)*68/(1800000 - results.physical); + pr_debug("battid_resister = %d\n", battid_resister); + + return battid_resister; +} + +#define SMB358_DEFAULT_BATT_VOLTAGE 4000 + static int smb358_get_prop_battery_voltage_now(struct smb358_charger *chip) +{ + + union power_supply_propval ret = {0, }; + + if (chip->fake_battery_soc >= 0) + return chip->fake_battery_soc; + + if (!cw2015_psy) + cw2015_psy = power_supply_get_by_name("rk-bat"); + if (cw2015_psy) { + cw2015_psy->get_property(cw2015_psy, + POWER_SUPPLY_PROP_VOLTAGE_NOW, &ret); + pr_err("POWER_SUPPLY_PROP_VOLTAGE_NOW IS:%d\n", ret.intval); + return ret.intval; + } + pr_debug("Couldn't get bms_psy, return default capacity\n"); + return SMB358_DEFAULT_BATT_VOLTAGE; +} + +static int __smb358_path_suspend(struct smb358_charger *chip, bool suspend) +{ + int rc; + + rc = smb358_masked_write(chip, CMD_A_REG, + CMD_A_CHG_SUSP_EN_MASK, + suspend ? CMD_A_CHG_SUSP_EN_BIT : 0); + if (rc < 0) + dev_err(chip->dev, "Couldn't set CMD_A reg, rc = %d\n", rc); + return rc; +} + +static int smb358_path_suspend(struct smb358_charger *chip, int reason, + bool suspend) { int rc = 0; - struct qpnp_vadc_result results; + int suspended; - if (!chip->vadc_dev || !chip->pmic_vbat_sns) - return 0; + mutex_lock(&chip->path_suspend_lock); + suspended = chip->usb_suspended; - rc = qpnp_vadc_read(chip->vadc_dev, VBAT_SNS, &results); - if (rc) { - pr_err("Unable to read vbat rc=%d\n", rc); - return 0; + if (suspend == false) + suspended &= ~reason; + else + suspended |= reason; + + if (!chip->usb_suspended && suspended) { + rc = __smb358_path_suspend(chip, true); + chip->usb_suspended = suspended; + power_supply_set_online(chip->usb_psy, !chip->usb_suspended); + power_supply_changed(chip->usb_psy); + } else if (chip->usb_suspended && !suspended) { + rc = __smb358_path_suspend(chip, false); + chip->usb_suspended = suspended; + power_supply_set_online(chip->usb_psy, !chip->usb_suspended); + power_supply_changed(chip->usb_psy); } - return results.physical; + + if (rc) + dev_err(chip->dev, "Couldn't set/unset suspend rc = %d\n", rc); + + mutex_unlock(&chip->path_suspend_lock); + return rc; } static int smb358_set_usb_chg_current(struct smb358_charger *chip, - int current_ma) + int curr_ma) { int i, rc = 0; u8 reg1 = 0, reg2 = 0, mask = 0; + int current_ma; - dev_dbg(chip->dev, "%s: USB current_ma = %d\n", __func__, current_ma); + pr_debug("%s: USB current_ma = %d\n", __func__, curr_ma); if (chip->chg_autonomous_mode) { - dev_dbg(chip->dev, "%s: Charger in autonmous mode\n", __func__); + pr_debug("%s: Charger in autonmous mode\n", __func__); return 0; } + if (recovery != true && curr_ma == pre_usb_current_ma) { + return 0; + } + recovery = false; + + if (thermal == false) { + current_ma = curr_ma; + pre_usb_current_ma = curr_ma; + pr_debug("current ma1 is %d\n", current_ma); + } else { + current_ma = min(curr_ma, chip->thermal_mitigation[chip->therm_lvl_sel]); + pr_debug("current ma2 is %d\n", current_ma); + } if (current_ma < USB3_MIN_CURRENT_MA && current_ma != 2) current_ma = USB2_MIN_CURRENT_MA; @@ -1088,7 +1473,12 @@ static int smb358_set_usb_chg_current(struct smb358_charger *chip, if (rc) dev_err(chip->dev, "Couldn't set input mA rc=%d\n", rc); } - + mask = 0; + rc = __smb358_write_reg(chip, CMD_B_REG, mask); + if (rc) { + dev_err(chip->dev, + "smb358_write Failed: reg=%03X, rc=%d\n", CMD_B_REG, rc); + } mask = CMD_B_CHG_HC_ENABLE_BIT | CMD_B_CHG_USB_500_900_ENABLE_BIT; rc = smb358_masked_write(chip, CMD_B_REG, mask, reg2); if (rc < 0) @@ -1120,6 +1510,7 @@ smb358_batt_property_is_writeable(struct power_supply *psy, switch (psp) { case POWER_SUPPLY_PROP_CHARGING_ENABLED: case POWER_SUPPLY_PROP_CAPACITY: + case POWER_SUPPLY_PROP_SYSTEM_TEMP_LEVEL: return 1; default: break; @@ -1135,6 +1526,106 @@ static int bound_soc(int soc) return soc; } +static int smb358_set_appropriate_current(struct smb358_charger *chip, + enum path_type path) +{ + int therm_ma; + + + int rc = 0; + + if (!chip->usb_psy && path == USB) + return 0; + /* + * If battery is absent do not modify the current at all, these + * would be some appropriate values set by the bootloader or default + * configuration and since it is the only source of power we should + * not change it + */ + if (chip->battery_missing) { + pr_debug("ignoring current request since battery is absent\n"); + return 0; + } + + #if 0 + if (path == USB) { + path_current = chip->usb_psy_ma; + func = smb135x_set_usb_chg_current; + } else { + path_current = chip->dc_psy_ma; + func = smb135x_set_dc_chg_current; + if (chip->dc_psy_type == -EINVAL) + func = NULL; + } + #endif + + if (chip->therm_lvl_sel >= 0 + && chip->therm_lvl_sel <= (chip->thermal_levels - 1)) { /* + * consider thermal limit only when it is active and not at + * the highest level + */ + therm_ma = chip->thermal_mitigation[chip->therm_lvl_sel]; + if (chip->therm_lvl_sel == 0) { + thermal = false; + recovery = true; + } else { + thermal = true; + } + } else { + + pr_debug("Not effective thermal levels\n"); + pr_debug("therm_ma is %d\n", therm_ma); + } + + + therm_ma = min(therm_ma, chip->psy_usb_ma); + pr_debug("therm_ma is %d\n", therm_ma); + pr_debug("chip->psy_usb_ma is %d\n", chip->psy_usb_ma); + pr_debug("thermal limited charging current to %d\n", therm_ma); + + smb358_set_usb_chg_current(chip, therm_ma); + return rc; +} + + +static int smb358_system_temp_level_set(struct smb358_charger *chip, + int lvl_sel) +{ + int rc = 0; + int prev_therm_lvl; + + if (!chip->thermal_mitigation) { + pr_err("Thermal mitigation not supported\n"); + return -EINVAL; + } + + if (lvl_sel < 0) { + pr_err("Unsupported level selected %d\n", lvl_sel); + return -EINVAL; + } + + if (lvl_sel >= chip->thermal_levels) { + pr_err("Unsupported level selected %d forcing %d\n", lvl_sel, + chip->thermal_levels - 1); + lvl_sel = chip->thermal_levels - 1; + } + + if (lvl_sel == chip->therm_lvl_sel) + return 0; + + mutex_lock(&chip->current_change_lock); + prev_therm_lvl = chip->therm_lvl_sel; + chip->therm_lvl_sel = lvl_sel; + pr_debug("chip->therm_lvl_sel = %d\n", chip->therm_lvl_sel); + + smb358_set_appropriate_current(chip, USB); + + mutex_unlock(&chip->current_change_lock); + return rc; +} + + + static int smb358_battery_set_property(struct power_supply *psy, enum power_supply_property prop, const union power_supply_propval *val) @@ -1156,14 +1647,16 @@ static int smb358_battery_set_property(struct power_supply *psy, rc); } else { chip->batt_full = true; - dev_dbg(chip->dev, "status = FULL, batt_full = %d\n", + + pr_debug("status = FULL, batt_full = %d\n", chip->batt_full); } break; case POWER_SUPPLY_STATUS_DISCHARGING: chip->batt_full = false; + power_supply_changed(&chip->batt_psy); - dev_dbg(chip->dev, "status = DISCHARGING, batt_full = %d\n", + pr_debug("status = DISCHARGING, batt_full = %d\n", chip->batt_full); break; case POWER_SUPPLY_STATUS_CHARGING: @@ -1174,7 +1667,8 @@ static int smb358_battery_set_property(struct power_supply *psy, rc); } else { chip->batt_full = false; - dev_dbg(chip->dev, "status = CHARGING, batt_full = %d\n", + + pr_debug("status = CHARGING, batt_full = %d\n", chip->batt_full); } break; @@ -1190,6 +1684,9 @@ static int smb358_battery_set_property(struct power_supply *psy, chip->fake_battery_soc = bound_soc(val->intval); power_supply_changed(&chip->batt_psy); break; + case POWER_SUPPLY_PROP_SYSTEM_TEMP_LEVEL: + smb358_system_temp_level_set(chip, val->intval); + break; default: return -EINVAL; } @@ -1198,8 +1695,8 @@ static int smb358_battery_set_property(struct power_supply *psy, } static int smb358_battery_get_property(struct power_supply *psy, - enum power_supply_property prop, - union power_supply_propval *val) + enum power_supply_property prop, + union power_supply_propval *val) { struct smb358_charger *chip = container_of(psy, struct smb358_charger, batt_psy); @@ -1224,17 +1721,35 @@ static int smb358_battery_get_property(struct power_supply *psy, val->intval = smb358_get_prop_batt_health(chip); break; case POWER_SUPPLY_PROP_TECHNOLOGY: - val->intval = POWER_SUPPLY_TECHNOLOGY_LION; + val->intval = POWER_SUPPLY_TECHNOLOGY_LIPO; break; case POWER_SUPPLY_PROP_MODEL_NAME: val->strval = "SMB358"; break; + case POWER_SUPPLY_PROP_BATTERY_TYPE: + val->strval = (chip->battery_type); + break; + case POWER_SUPPLY_PROP_RESISTANCE_ID: + val->intval = smb358_get_prop_battid_resister(chip); + break; case POWER_SUPPLY_PROP_TEMP: val->intval = smb358_get_prop_batt_temp(chip); break; case POWER_SUPPLY_PROP_VOLTAGE_NOW: val->intval = smb358_get_prop_battery_voltage_now(chip); break; + case POWER_SUPPLY_PROP_CURRENT_NOW: + val->intval = get_prop_current_now(chip); + break; + case POWER_SUPPLY_PROP_SYSTEM_TEMP_LEVEL: + val->intval = chip->therm_lvl_sel; + break; + case POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN: + val->intval = chip->fcc_mah; + break; + case POWER_SUPPLY_PROP_CHARGE_FULL: + val->intval = chip->fcc_mah; + break; default: return -EINVAL; } @@ -1248,13 +1763,13 @@ static int apsd_complete(struct smb358_charger *chip, u8 status) enum power_supply_type type = POWER_SUPPLY_TYPE_UNKNOWN; /* - * If apsd is disabled, charger detection is done by - * DCIN UV irq. - * status = ZERO - indicates charger removed, handled - * by DCIN UV irq - */ + * If apsd is disabled, charger detection is done by + * DCIN UV irq. + * status = ZERO - indicates charger removed, handled + * by DCIN UV irq + */ if (chip->disable_apsd || status == 0) { - dev_dbg(chip->dev, "APSD %s, status = %d\n", + pr_debug("APSD %s, status = %d\n", chip->disable_apsd ? "disabled" : "enabled", !!status); return 0; } @@ -1265,7 +1780,7 @@ static int apsd_complete(struct smb358_charger *chip, u8 status) return rc; } - dev_dbg(chip->dev, "%s: STATUS_D_REG=%x\n", __func__, reg); + pr_debug("%s: STATUS_D_REG=%x\n", __func__, reg); switch (reg & STATUS_D_CHARGING_PORT_MASK) { case STATUS_D_PORT_ACA_DOCK: @@ -1293,13 +1808,13 @@ static int apsd_complete(struct smb358_charger *chip, u8 status) chip->chg_present = !!status; - dev_dbg(chip->dev, "APSD complete. USB type detected=%d chg_present=%d", + pr_debug("APSD complete. USB type detected=%d chg_present=%d", type, chip->chg_present); power_supply_set_supply_type(chip->usb_psy, type); - /* SMB is now done sampling the D+/D- lines, indicate USB driver */ - dev_dbg(chip->dev, "%s updating usb_psy present=%d", __func__, + /* SMB is now done sampling the D+/D- lines, indicate USB driver */ + pr_err("%s pluginupdating usb_psy present=%d", __func__, chip->chg_present); power_supply_set_present(chip->usb_psy, chip->chg_present); @@ -1309,16 +1824,22 @@ static int apsd_complete(struct smb358_charger *chip, u8 status) static int chg_uv(struct smb358_charger *chip, u8 status) { int rc; + ktime_t kt; /* use this to detect USB insertion only if !apsd */ if (chip->disable_apsd && status == 0) { + kt = ns_to_ktime(1LL*NSEC_PER_SEC); + alarm_start_relative(&chip->batt_temp_alarm, kt); chip->chg_present = true; - dev_dbg(chip->dev, "%s updating usb_psy present=%d", + pre_usb_current_ma = -EINVAL; + + pr_err("%s pluginupdating usb_psy present=%d", __func__, chip->chg_present); - power_supply_set_supply_type(chip->usb_psy, - POWER_SUPPLY_TYPE_USB); + + + power_supply_set_present(chip->usb_psy, chip->chg_present); - if (chip->bms_controlled_charging) { + if (chip->bms_controlled_charging) /* * Disable SOC based USB suspend to enable charging on * USB insertion. @@ -1326,35 +1847,41 @@ static int chg_uv(struct smb358_charger *chip, u8 status) rc = smb358_charging_disable(chip, SOC, false); if (rc < 0) dev_err(chip->dev, - "Couldn't disable usb suspend rc = %d\n", - rc); - } + "Couldn't disable usb suspend rc = %d\n", + rc); } if (status != 0) { chip->chg_present = false; - dev_dbg(chip->dev, "%s updating usb_psy present=%d", + pre_usb_current_ma = -EINVAL; + + pr_err("%s plugoutupdating usb_psy present=%d", __func__, chip->chg_present); /* we can't set usb_psy as UNKNOWN here, will lead USERSPACE issue */ + smb358_charging_disable(chip, THERMAL, 1); + + kt = ns_to_ktime(0); + alarm_start_relative(&chip->batt_temp_alarm, kt); power_supply_set_present(chip->usb_psy, chip->chg_present); } power_supply_changed(chip->usb_psy); - dev_dbg(chip->dev, "chip->chg_present = %d\n", chip->chg_present); + pr_debug("chip->chg_present = %d\n", chip->chg_present); return 0; } static int chg_ov(struct smb358_charger *chip, u8 status) { - u8 psy_health_sts; + + if (status) - psy_health_sts = POWER_SUPPLY_HEALTH_OVERVOLTAGE; + chip->psy_health_sts = POWER_SUPPLY_HEALTH_OVERVOLTAGE; else - psy_health_sts = POWER_SUPPLY_HEALTH_GOOD; + chip->psy_health_sts = POWER_SUPPLY_HEALTH_GOOD; power_supply_set_health_state( - chip->usb_psy, psy_health_sts); + chip->usb_psy, chip->psy_health_sts); power_supply_changed(chip->usb_psy); return 0; @@ -1363,16 +1890,18 @@ static int chg_ov(struct smb358_charger *chip, u8 status) #define STATUS_FAST_CHARGING BIT(6) static int fast_chg(struct smb358_charger *chip, u8 status) { - dev_dbg(chip->dev, "%s\n", __func__); + pr_debug("%s\n", __func__); - if (status & STATUS_FAST_CHARGING) + if (status & STATUS_FAST_CHARGING) { chip->batt_full = false; + + } return 0; } static int chg_term(struct smb358_charger *chip, u8 status) { - dev_dbg(chip->dev, "%s\n", __func__); + pr_debug("%s\n", __func__); if (!chip->iterm_disabled) chip->batt_full = !!status; return 0; @@ -1380,13 +1909,13 @@ static int chg_term(struct smb358_charger *chip, u8 status) static int taper_chg(struct smb358_charger *chip, u8 status) { - dev_dbg(chip->dev, "%s\n", __func__); + pr_debug("%s\n", __func__); return 0; } static int chg_recharge(struct smb358_charger *chip, u8 status) { - dev_dbg(chip->dev, "%s, status = %d\n", __func__, !!status); + pr_debug("%s, status = %d\n", __func__, !!status); /* to check the status mean */ chip->batt_full = !status; return 0; @@ -1398,13 +1927,19 @@ static void smb358_chg_set_appropriate_battery_current( int rc; unsigned int current_max = chip->fastchg_current_max_ma; - if (chip->batt_cool) - current_max = - min(current_max, chip->cool_bat_ma); - if (chip->batt_warm) + if (cool_status) { + if (cool_status_5 == 1) + current_max = + min(current_max, chip->cool_cold_bat_ma); + if (cool_status_5 == 2) + current_max = + min(current_max, chip->cool_normal_bat_ma); + } + + if (warm_status) current_max = min(current_max, chip->warm_bat_ma); - dev_dbg(chip->dev, "setting %dmA", current_max); + pr_debug("setting %dmA", current_max); rc = smb358_fastchg_current_set(chip, current_max); if (rc) dev_err(chip->dev, @@ -1417,19 +1952,22 @@ static void smb358_chg_set_appropriate_vddmax( int rc; unsigned int vddmax = chip->vfloat_mv; - if (chip->batt_cool) + if (cool_status) vddmax = min(vddmax, chip->cool_bat_mv); - if (chip->batt_warm) + if (warm_status) vddmax = min(vddmax, chip->warm_bat_mv); - dev_dbg(chip->dev, "setting %dmV\n", vddmax); + #ifdef CONFIG_DISABLE_TEMP_PROTECT + vddmax = 4100; + #endif + pr_debug("setting %dmV\n", vddmax); rc = smb358_float_voltage_set(chip, vddmax); if (rc) dev_err(chip->dev, "Couldn't set float voltage rc = %d\n", rc); } -#define HYSTERESIS_DECIDEGC 20 +#define HYSTERESIS_DECIDEGC 0 static void smb_chg_adc_notification(enum qpnp_tm_state state, void *ctx) { struct smb358_charger *chip = ctx; @@ -1442,7 +1980,7 @@ static void smb_chg_adc_notification(enum qpnp_tm_state state, void *ctx) return; } - temp = smb358_get_prop_batt_temp(chip); + temp = 250; pr_debug("temp = %d state = %s\n", temp, state == ADC_TM_WARM_STATE ? "hot" : "cold"); @@ -1592,7 +2130,7 @@ static void smb_chg_adc_notification(enum qpnp_tm_state state, void *ctx) chip->batt_hot = bat_hot; chip->batt_cold = bat_cold; /* stop charging explicitly since we use PMIC thermal pin*/ - if (bat_hot || bat_cold || chip->battery_missing) + if ((bat_hot || bat_cold || chip->battery_missing) && !disable_software_temp_monitor) smb358_charging_disable(chip, THERMAL, 1); else smb358_charging_disable(chip, THERMAL, 0); @@ -1646,6 +2184,19 @@ static int battery_missing(struct smb358_charger *chip, u8 status) return 0; } +/** + * power_ok_handler() - called when the switcher turns on or turns off + * @chip: pointer to smb135x_chg chip + * @rt_stat: the status bit indicating switcher turning on or off + */ +static int power_ok_handler(struct smb358_charger *chip, u8 rt_stat) +{ + chip->power_ok = !!rt_stat; + msleep(30); + power_supply_changed(&chip->batt_psy); + return 0; +} + static struct irq_handler_info handlers[] = { [0] = { .stat_reg = IRQ_A_REG, @@ -1761,6 +2312,7 @@ static struct irq_handler_info handlers[] = { .irq_info = { { .name = "power_ok", + .smb_irq = power_ok_handler, }, { .name = "otg_det", @@ -1778,6 +2330,39 @@ static struct irq_handler_info handlers[] = { #define IRQ_LATCHED_MASK 0x02 #define IRQ_STATUS_MASK 0x01 #define BITS_PER_IRQ 2 +static int smb358_update_power_on_state(struct smb358_charger *chip) +{ + int i, j; + int rc; + u8 rt_stat, prev_rt_stat, changed; + struct smb_irq_info *info; + for (i = 0; i < ARRAY_SIZE(handlers); i++) { + if (handlers[i].stat_reg == IRQ_F_REG) { + rc = smb358_read_reg(chip, handlers[i].stat_reg, + &handlers[i].val); + if (rc < 0) { + dev_err(chip->dev, "Couldn't read %d rc = %d\n", + handlers[i].stat_reg, rc); + return -EPERM; + } + info = handlers[i].irq_info; + for (j = 0; j < ARRAY_SIZE(handlers[i].irq_info); j++) { + if (!strcmp(info[j].name, "power_ok")) { + rt_stat = handlers[i].val + & (IRQ_STATUS_MASK << (j * BITS_PER_IRQ)); + prev_rt_stat = handlers[i].prev_val & (IRQ_STATUS_MASK << (j * BITS_PER_IRQ)); + changed = prev_rt_stat ^ rt_stat; + if (changed) { + handlers[i].prev_val = handlers[i].val; + chip->power_ok = rt_stat; + pr_debug("chip->power_ok = %d\n", chip->power_ok); + } + } + } + } + } + return 0; +} static irqreturn_t smb358_chg_stat_handler(int irq, void *dev_id) { struct smb358_charger *chip = dev_id; @@ -1787,18 +2372,15 @@ static irqreturn_t smb358_chg_stat_handler(int irq, void *dev_id) u8 rt_stat, prev_rt_stat; int rc; int handler_count = 0; - mutex_lock(&chip->irq_complete); - chip->irq_waiting = true; if (!chip->resume_completed) { - dev_dbg(chip->dev, "IRQ triggered before device-resume\n"); + pr_debug("IRQ triggered before device-resume\n"); disable_irq_nosync(irq); mutex_unlock(&chip->irq_complete); return IRQ_HANDLED; } chip->irq_waiting = false; - for (i = 0; i < ARRAY_SIZE(handlers); i++) { rc = smb358_read_reg(chip, handlers[i].stat_reg, &handlers[i].val); @@ -1810,7 +2392,7 @@ static irqreturn_t smb358_chg_stat_handler(int irq, void *dev_id) for (j = 0; j < ARRAY_SIZE(handlers[i].irq_info); j++) { triggered = handlers[i].val - & (IRQ_LATCHED_MASK << (j * BITS_PER_IRQ)); + & (IRQ_LATCHED_MASK << (j * BITS_PER_IRQ)); rt_stat = handlers[i].val & (IRQ_STATUS_MASK << (j * BITS_PER_IRQ)); prev_rt_stat = handlers[i].prev_val @@ -1834,13 +2416,11 @@ static irqreturn_t smb358_chg_stat_handler(int irq, void *dev_id) } handlers[i].prev_val = handlers[i].val; } - pr_debug("handler count = %d\n", handler_count); if (handler_count) { pr_debug("batt psy changed\n"); power_supply_changed(&chip->batt_psy); } - mutex_unlock(&chip->irq_complete); return IRQ_HANDLED; @@ -1859,15 +2439,18 @@ static irqreturn_t smb358_chg_valid_handler(int irq, void *dev_id) } present ^= chip->chg_valid_act_low; - dev_dbg(chip->dev, "%s: chg_present = %d\n", __func__, present); + pr_debug("%s: chg_present = %d\n", __func__, present); if (present != chip->chg_present) { chip->chg_present = present; - dev_dbg(chip->dev, "%s updating usb_psy present=%d", + pre_usb_current_ma = -EINVAL; + + pr_debug("%s updating usb_psy present=%d", __func__, chip->chg_present); power_supply_set_present(chip->usb_psy, chip->chg_present); + power_supply_changed(&chip->batt_psy); } - + pr_debug("smb358_chg_valid_handler has been started\n"); return IRQ_HANDLED; } @@ -1877,6 +2460,11 @@ static void smb358_external_power_changed(struct power_supply *psy) struct smb358_charger, batt_psy); union power_supply_propval prop = {0,}; int rc, current_limit = 0; + int vol; + + dump_regs(chip); + vol = smb358_get_prop_battery_voltage_now(chip); + pr_debug("batt_vol = %d\n", vol); if (chip->bms_psy_name) chip->bms_psy = @@ -1890,11 +2478,14 @@ static void smb358_external_power_changed(struct power_supply *psy) else current_limit = prop.intval / 1000; - + chip->psy_usb_ma = current_limit; smb358_enable_volatile_writes(chip); smb358_set_usb_chg_current(chip, current_limit); - dev_dbg(chip->dev, "current_limit = %d\n", current_limit); + smb358_chg_set_appropriate_battery_current(chip); + smb358_chg_set_appropriate_vddmax(chip); + + pr_debug("current_limit = %d\n", current_limit); } #if defined(CONFIG_DEBUG_FS) @@ -2005,7 +2596,7 @@ static int show_irq_count(struct seq_file *m, void *data) seq_printf(m, "%s=%d\t(high=%d low=%d)\n", handlers[i].irq_info[j].name, handlers[i].irq_info[j].high - + handlers[i].irq_info[j].low, + + handlers[i].irq_info[j].low, handlers[i].irq_info[j].high, handlers[i].irq_info[j].low); total += (handlers[i].irq_info[j].high @@ -2117,59 +2708,34 @@ static void dump_regs(struct smb358_charger *chip) } #endif -static int smb_parse_batt_id(struct smb358_charger *chip) +extern int battery_type_id; +static const char *default_batt_type = "Generic_Battery"; +static int smb_parse_dt_battery(struct smb358_charger *chip) { - int rc = 0, rpull = 0, vref = 0; - int64_t denom, batt_id_uv, numerator; - struct device_node *node = chip->dev->of_node; - struct qpnp_vadc_result result; - - rc = of_property_read_u32(node, "qcom,batt-id-vref-uv", &vref); - if (rc < 0) { - dev_err(chip->dev, - "Couldn't read batt-id-vref-uv rc=%d\n", rc); - return rc; - } - - rc = of_property_read_u32(node, "qcom,batt-id-rpullup-kohm", &rpull); - if (rc < 0) { - dev_err(chip->dev, - "Couldn't read batt-id-rpullup-kohm rc=%d\n", rc); - return rc; - } - /* read battery ID */ - rc = qpnp_vadc_read(chip->vadc_dev, LR_MUX2_BAT_ID, &result); - if (rc) { - dev_err(chip->dev, - "Couldn't read batt id channel=%d, rc=%d\n", - LR_MUX2_BAT_ID, rc); - return rc; - } - batt_id_uv = result.physical; + struct device_node *node = chip->dev->of_node; + struct device_node *batt_node, *profile_node; - if (batt_id_uv == 0) { - /*vadc not correct or batt id line grounded, report 0 kohms */ - dev_warn(chip->dev, "batt_id_uv=0, batt-id grounded\n"); + batt_node = of_find_node_by_name(node, "qcom,battery-data"); + if (!batt_node) { return 0; } + profile_node = of_batterydata_get_best_profile(batt_node, + "battery", NULL); - numerator = batt_id_uv * rpull * 1000; - denom = vref - batt_id_uv; - - /* batt id connector might be open, return 0 kohms */ - if (denom == 0) - return 0; - - chip->connected_rid = div64_s64(numerator, denom); + if (battery_type_id == 1 || battery_type_id == 2) + of_property_read_string(profile_node, "qcom,battery-type", &chip->battery_type); + else { + chip->battery_type = default_batt_type; + hardwareinfo_set_prop(HARDWARE_BATTERY_ID, chip->battery_type); + } + dev_err(chip->dev, "found battery type is %s\n", chip->battery_type); - dev_dbg(chip->dev, - "batt_id_voltage=%lld numerator=%lld denom=%lld connected_rid=%d\n", - batt_id_uv, numerator, denom, chip->connected_rid); return 0; } + static int smb_parse_dt(struct smb358_charger *chip) { int rc; @@ -2194,8 +2760,6 @@ static int smb_parse_dt(struct smb358_charger *chip) chip->using_pmic_therm = of_property_read_bool(node, "qcom,using-pmic-therm"); - chip->pmic_vbat_sns = of_property_read_bool(node, - "qcom,using-vbat-sns"); chip->bms_controlled_charging = of_property_read_bool(node, "qcom,bms-controlled-charging"); @@ -2207,7 +2771,7 @@ static int smb_parse_dt(struct smb358_charger *chip) chip->chg_valid_gpio = of_get_named_gpio_flags(node, "qcom,chg-valid-gpio", 0, &gpio_flags); if (!gpio_is_valid(chip->chg_valid_gpio)) - dev_dbg(chip->dev, "Invalid chg-valid-gpio"); + pr_debug("Invalid chg-valid-gpio"); else chip->chg_valid_act_low = gpio_flags & OF_GPIO_ACTIVE_LOW; @@ -2262,8 +2826,13 @@ static int smb_parse_dt(struct smb358_charger *chip) rc |= of_property_read_u32(node, "qcom,warm-bat-mv", &chip->warm_bat_mv); - rc |= of_property_read_u32(node, "qcom,cool-bat-ma", - &chip->cool_bat_ma); + /*rc |= of_property_read_u32(node, "qcom,cool-bat-ma", + &chip->cool_bat_ma);*/ + rc |= of_property_read_u32(node, "qcom,cool-cold-bat-ma", + &chip->cool_cold_bat_ma); + + rc |= of_property_read_u32(node, "qcom,cool-normal-bat-ma", + &chip->cool_normal_bat_ma); rc |= of_property_read_u32(node, "qcom,warm-bat-ma", &chip->warm_bat_ma); @@ -2273,6 +2842,27 @@ static int smb_parse_dt(struct smb358_charger *chip) chip->jeita_supported = true; } + if (of_find_property(node, "qcom,thermal-mitigation", + &chip->thermal_levels)) { + chip->thermal_mitigation = devm_kzalloc(chip->dev, + chip->thermal_levels, + GFP_KERNEL); + + if (chip->thermal_mitigation == NULL) { + pr_err("thermal mitigation kzalloc() failed.\n"); + return -ENOMEM; + } + + chip->thermal_levels /= sizeof(int); + rc = of_property_read_u32_array(node, + "qcom,thermal-mitigation", + chip->thermal_mitigation, chip->thermal_levels); + pr_debug("thermal_mitigations = %d, %d, %d, %d; thermal_levels = %d\n", chip->thermal_mitigation[0], chip->thermal_mitigation[1], chip->thermal_mitigation[2], chip->thermal_mitigation[3], chip->thermal_levels); + if (rc) { + pr_err("Couldn't read threm limits rc = %d\n", rc); + return rc; + } + } pr_debug("jeita_supported = %d", chip->jeita_supported); rc = of_property_read_u32(node, "qcom,bat-present-decidegc", @@ -2292,28 +2882,19 @@ static int smb_parse_dt(struct smb358_charger *chip) } } - chip->skip_usb_suspend_for_fake_battery = of_property_read_bool(node, - "qcom,skip-usb-suspend-for-fake-battery"); - if (!chip->skip_usb_suspend_for_fake_battery) { - if (!chip->vadc_dev) { - dev_err(chip->dev, - "VADC device not present with usb suspend on fake battery\n"); - return -EINVAL; - } - rc = smb_parse_batt_id(chip); - if (rc) { - dev_err(chip->dev, - "failed to read batt-id rc=%d\n", rc); - return rc; - } + rc = of_property_read_u32(node, "qcom,battery-fcc", + &chip->fcc_mah); + if (rc) { + chip->fcc_mah = BATTERY_FCC; } + pr_debug("inhibit-disabled = %d, recharge-disabled = %d, recharge-mv = %d,", chip->inhibit_disabled, chip->recharge_disabled, chip->recharge_mv); pr_debug("vfloat-mv = %d, iterm-disabled = %d,", - chip->vfloat_mv, chip->iterm_disabled); + chip->vfloat_mv, chip->iterm_ma); pr_debug("fastchg-current = %d, charging-disabled = %d,", chip->fastchg_current_max_ma, chip->charging_disabled); @@ -2322,6 +2903,7 @@ static int smb_parse_dt(struct smb358_charger *chip) chip->cold_bat_decidegc); pr_debug("hot-bat-degree = %d, bat-present-decidegc = %d\n", chip->hot_bat_decidegc, chip->bat_present_decidegc); + pr_debug("fcc_mah is %d \n", chip->fcc_mah); return 0; } @@ -2391,8 +2973,8 @@ static void smb358_debugfs_init(struct smb358_charger *chip) struct dentry *ent; ent = debugfs_create_file("config_registers", S_IFREG | S_IRUGO, - chip->debug_root, chip, - &cnfg_debugfs_ops); + chip->debug_root, chip, + &cnfg_debugfs_ops); if (!ent || IS_ERR(ent)) { rc = PTR_ERR(ent); dev_err(chip->dev, @@ -2401,8 +2983,8 @@ static void smb358_debugfs_init(struct smb358_charger *chip) } ent = debugfs_create_file("status_registers", S_IFREG | S_IRUGO, - chip->debug_root, chip, - &status_debugfs_ops); + chip->debug_root, chip, + &status_debugfs_ops); if (!ent || IS_ERR(ent)) { rc = PTR_ERR(ent); dev_err(chip->dev, @@ -2411,8 +2993,8 @@ static void smb358_debugfs_init(struct smb358_charger *chip) } ent = debugfs_create_file("cmd_registers", S_IFREG | S_IRUGO, - chip->debug_root, chip, - &cmd_debugfs_ops); + chip->debug_root, chip, + &cmd_debugfs_ops); if (!ent || IS_ERR(ent)) { rc = PTR_ERR(ent); dev_err(chip->dev, @@ -2421,8 +3003,8 @@ static void smb358_debugfs_init(struct smb358_charger *chip) } ent = debugfs_create_x32("address", S_IFREG | S_IWUSR | S_IRUGO, - chip->debug_root, - &(chip->peek_poke_address)); + chip->debug_root, + &(chip->peek_poke_address)); if (!ent || IS_ERR(ent)) { rc = PTR_ERR(ent); dev_err(chip->dev, @@ -2431,8 +3013,8 @@ static void smb358_debugfs_init(struct smb358_charger *chip) } ent = debugfs_create_file("data", S_IFREG | S_IWUSR | S_IRUGO, - chip->debug_root, chip, - &poke_poke_debug_ops); + chip->debug_root, chip, + &poke_poke_debug_ops); if (!ent || IS_ERR(ent)) { rc = PTR_ERR(ent); dev_err(chip->dev, @@ -2441,9 +3023,9 @@ static void smb358_debugfs_init(struct smb358_charger *chip) } ent = debugfs_create_file("force_irq", - S_IFREG | S_IWUSR | S_IRUGO, - chip->debug_root, chip, - &force_irq_ops); + S_IFREG | S_IWUSR | S_IRUGO, + chip->debug_root, chip, + &force_irq_ops); if (!ent || IS_ERR(ent)) { rc = PTR_ERR(ent); dev_err(chip->dev, @@ -2452,8 +3034,8 @@ static void smb358_debugfs_init(struct smb358_charger *chip) } ent = debugfs_create_file("irq_count", S_IFREG | S_IRUGO, - chip->debug_root, chip, - &irq_count_debugfs_ops); + chip->debug_root, chip, + &irq_count_debugfs_ops); if (!ent || IS_ERR(ent)) { rc = PTR_ERR(ent); dev_err(chip->dev, @@ -2468,16 +3050,89 @@ static void smb358_debugfs_init(struct smb358_charger *chip) } #endif +int into_fastmmi_mode(struct smb358_charger *chip) +{ + int ret; + char *cmdline_fastmmi = NULL; + char *temp; + + cmdline_fastmmi = strstr(saved_command_line, "androidboot.mode="); + if (cmdline_fastmmi != NULL) { + temp = cmdline_fastmmi + strlen("androidboot.mode="); + ret = strncmp(temp, "ffbm", strlen("ffbm")); + if (ret == 0) { + pr_err("into fastmmi mode\n"); + fastmmi_mode = 1; + return 1;/* fastmmi mode*/ + } else{ + pr_err("others modes\n"); + fastmmi_mode = 0; + return 2;/* Others mode*/ + } + } + pr_err("has no androidboot.mode \n"); + return 0; +} + +bool disable_charging = false; +void get_capacity_disable_charging(struct smb358_charger *chip) +{ + char *boardid_string = NULL; + char boardid_start[32] = " "; + int India_0; + int India_1; + + boardid_string = strstr(saved_command_line, "board_id="); + + if (boardid_string != NULL) { + strncpy(boardid_start, boardid_string+9, 9); + India_0 = strncmp(boardid_start, "S88503BA1", 9); + India_1 = strncmp(boardid_start, "S88503BB1", 9); + } + if (((India_0 == 0) || (India_1 == 0)) && (into_fastmmi_mode(chip) == 1)) { + disable_charging = true; + } else{ + pr_err("else discharg\n"); + disable_charging = false; + } +} +static void charger_abnormal_detect_work(struct work_struct *work) +{ + struct smb358_charger *chip = container_of(work, + struct smb358_charger, + abnormal_detect.work); + int rc, soc; + soc = smb358_get_prop_batt_capacity(chip); + get_capacity_disable_charging(chip); + if (into_fastmmi_mode(chip) == 1) { + if (disable_charging) { + if (soc >= 80 && soc <= 100) { + rc = smb358_charging_disable(chip, SOC, true); + if (rc < 0) { + dev_err(chip->dev, "Couldn't disable charging: rc = %d\n", rc); + } + } else if (soc >= 0 && soc < 80) { + rc = smb358_charging_disable(chip, SOC, false); + if (rc < 0) { + dev_err(chip->dev, "Couldn't enable charging: rc = %d\n", rc); + } + } + } + schedule_delayed_work(&chip->abnormal_detect, msecs_to_jiffies(20000)); + } +} + #define SMB_I2C_VTG_MIN_UV 1800000 #define SMB_I2C_VTG_MAX_UV 1800000 static int smb358_charger_probe(struct i2c_client *client, const struct i2c_device_id *id) { int rc, irq; + ktime_t kt; + struct smb358_charger *chip; struct power_supply *usb_psy; u8 reg = 0; - usb_psy = power_supply_get_by_name("usb"); if (!usb_psy) { dev_dbg(&client->dev, "USB psy not found; deferring probe\n"); @@ -2495,15 +3150,13 @@ static int smb358_charger_probe(struct i2c_client *client, chip->usb_psy = usb_psy; chip->fake_battery_soc = -EINVAL; - if (of_find_property(chip->dev->of_node, "qcom,chg-vadc", NULL)) { - /* early for VADC get, defer probe if needed */ - chip->vadc_dev = qpnp_get_vadc(chip->dev, "chg"); - if (IS_ERR(chip->vadc_dev)) { - rc = PTR_ERR(chip->vadc_dev); - if (rc != -EPROBE_DEFER) - pr_err("vadc property configured incorrectly\n"); - return rc; - } + /* early for VADC get, defer probe if needed */ + chip->vadc_dev = qpnp_get_vadc(chip->dev, "chg"); + if (IS_ERR(chip->vadc_dev)) { + rc = PTR_ERR(chip->vadc_dev); + if (rc != -EPROBE_DEFER) + pr_err("vadc property missing\n"); + return rc; } rc = smb_parse_dt(chip); @@ -2529,14 +3182,28 @@ static int smb358_charger_probe(struct i2c_client *client, dev_err(&client->dev, "Regulator vcc_i2c enable failed rc = %d\n", rc); - goto err_set_vtg_i2c; + pr_debug("first alarm start\n"); goto err_set_vtg_i2c; } } mutex_init(&chip->irq_complete); mutex_init(&chip->read_write_lock); mutex_init(&chip->path_suspend_lock); + mutex_init(&chip->current_change_lock); + wake_lock_init(&chip->wake_lock_hightemp, WAKE_LOCK_SUSPEND, "wake_lock_hightemp"); + + + + INIT_DELAYED_WORK(&chip->abnormal_detect, charger_abnormal_detect_work); + + + INIT_WORK(&chip->batt_temp_work, qpnp_lbc_temp_alarm_work_fn); + alarm_init(&chip->batt_temp_alarm, ALARM_REALTIME, batt_temp_alarm_callback); + if (chip->chg_present) { + kt = ns_to_ktime(5LL*NSEC_PER_SEC); + alarm_start_relative(&chip->batt_temp_alarm, kt); + } /* probe the device to check if its actually connected */ rc = smb358_read_reg(chip, CHG_OTH_CURRENT_CTRL_REG, ®); if (rc) { @@ -2571,6 +3238,14 @@ static int smb358_charger_probe(struct i2c_client *client, chip->resume_completed = true; + if (chip->bms_psy) { + chip->batt_psy.bms_psy_ok = 1; + } else { + chip->batt_psy.bms_psy_ok = 0; + } + + smb358_update_power_on_state(chip); + chip->batt_psy.bms_psy_ok = 0; rc = power_supply_register(chip->dev, &chip->batt_psy); if (rc < 0) { dev_err(&client->dev, "Couldn't register batt psy rc = %d\n", @@ -2586,6 +3261,11 @@ static int smb358_charger_probe(struct i2c_client *client, "Couldn't initialize smb358 ragulator rc=%d\n", rc); goto fail_regulator_register; } + rc = smb_parse_dt_battery(chip); + if (rc) { + dev_err(&client->dev, + " smb_parse_dt_battery rc=%d\n", rc); + } rc = smb358_hw_init(chip); if (rc) { @@ -2656,7 +3336,7 @@ static int smb358_charger_probe(struct i2c_client *client, } rc = devm_request_threaded_irq(&client->dev, irq, NULL, smb358_chg_stat_handler, - IRQF_TRIGGER_FALLING | IRQF_ONESHOT, + IRQF_TRIGGER_FALLING | IRQF_ONESHOT, "smb358_chg_stat_irq", chip); if (rc) { dev_err(&client->dev, @@ -2683,7 +3363,8 @@ static int smb358_charger_probe(struct i2c_client *client, chip->adc_param.btm_ctx = chip; chip->adc_param.threshold_notification = smb_chg_adc_notification; - chip->adc_param.channel = LR_MUX1_BATT_THERM; + chip->adc_param.channel = P_MUX2_1_1; + /* update battery missing info in tm_channel_measure*/ rc = qpnp_adc_tm_channel_measure(chip->adc_tm_dev, @@ -2698,6 +3379,17 @@ static int smb358_charger_probe(struct i2c_client *client, dev_info(chip->dev, "SMB358 successfully probed. charger=%d, batt=%d\n", chip->chg_present, smb358_get_prop_batt_present(chip)); + + if (chip->bms_psy_name) { + chip->bms_psy = power_supply_get_by_name((char *)chip->bms_psy_name); + if (chip->bms_psy && chip->bms_psy->bms_psy_ok == 1 && chip->power_ok) { + chip->batt_psy.bms_psy_ok = 1; + } + + } + + schedule_delayed_work(&chip->abnormal_detect, 0); + return 0; fail_chg_valid_irq: @@ -2722,6 +3414,11 @@ static int smb358_charger_remove(struct i2c_client *client) { struct smb358_charger *chip = i2c_get_clientdata(client); + pr_err("smb358 charger remove\n"); + hot_status = 0; + cold_status = 0; + warm_status = 0; + cool_status = 0; power_supply_unregister(&chip->batt_psy); if (gpio_is_valid(chip->chg_valid_gpio)) gpio_free(chip->chg_valid_gpio); @@ -2730,7 +3427,12 @@ static int smb358_charger_remove(struct i2c_client *client) regulator_disable(chip->vcc_i2c); mutex_destroy(&chip->irq_complete); + wake_lock_destroy(&chip->wake_lock_hightemp); debugfs_remove_recursive(chip->debug_root); + + alarm_cancel(&chip->batt_temp_alarm); + cancel_work_sync(&chip->batt_temp_work); + cancel_delayed_work(&chip->abnormal_detect); return 0; } @@ -2740,7 +3442,6 @@ static int smb358_suspend(struct device *dev) struct smb358_charger *chip = i2c_get_clientdata(client); int rc; int i; - for (i = 0; i < 2; i++) { rc = smb358_read_reg(chip, FAULT_INT_REG + i, &chip->irq_cfg_mask[i]); diff --git a/drivers/regulator/Kconfig b/drivers/regulator/Kconfig index cce12d14704ad..31584dce04988 100644 --- a/drivers/regulator/Kconfig +++ b/drivers/regulator/Kconfig @@ -900,3 +900,17 @@ config REGULATOR_KRYO endif +config REGULATOR_TPS65132 + tristate "TI TPS65132 Power regulator" + depends on I2C + select REGMAP_I2C + help + This driver supports TPS65132 voltage regulator chips. The chip has + a synchronous boost converter that generates a positive voltage which + is regulated down by an integrated LDO, providing a positive supply + rail. It also has a negative supply rail which is generated by an + integrated negative charge pump driven from the boost converter + output. Both output regulators support 4V~6V voltage range and + can be configured separately. Each regulator can be enabled and + disabled independently through an external pin. + diff --git a/drivers/regulator/Makefile b/drivers/regulator/Makefile index 3334ef2fe320e..eab8b43104112 100644 --- a/drivers/regulator/Makefile +++ b/drivers/regulator/Makefile @@ -110,4 +110,5 @@ obj-$(CONFIG_REGULATOR_QPNP_LABIBB) += qpnp-labibb-regulator.o obj-$(CONFIG_REGULATOR_STUB) += stub-regulator.o obj-$(CONFIG_REGULATOR_KRYO) += kryo-regulator.o obj-$(CONFIG_REGULATOR_CPR2_GFX) += cpr2-gfx-regulator.o +obj-$(CONFIG_REGULATOR_TPS65132) += tps65132-regulator.o ccflags-$(CONFIG_REGULATOR_DEBUG) += -DDEBUG diff --git a/drivers/regulator/tps65132-regulator.c b/drivers/regulator/tps65132-regulator.c new file mode 100644 index 0000000000000..f3293414c6ef0 --- /dev/null +++ b/drivers/regulator/tps65132-regulator.c @@ -0,0 +1,628 @@ +/* Copyright (c) 2014, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#define pr_fmt(fmt) "%s: " fmt, __func__ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +struct tps65132_regulator { + struct regulator_init_data *init_data; + struct regulator_dev *rdev; + struct device_node *node; + struct regulator_desc rdesc; + struct tps65132_chip *chip; + const char *name; + u8 vol_reg; + u8 dischg_bit_pos; + bool dischg_en; + u8 ctrl_reg; + u8 wrt_en_bit_pos; + u8 read_eeprom_bit_pos; + int en_gpio; + enum of_gpio_flags gpio_flags; + bool is_enabled; + int curr_uV; + u8 vol_set_val; + bool vol_set_postpone; +}; + +struct tps65132_chip { + struct tps65132_regulator *vreg; + struct regulator *i2c_pwr; + struct regmap *regmap; + struct device *dev; + u8 num_regulators; + u8 apps_cfg; + u8 apps_dischg_reg; + u8 apps_cfg_bit_pos; + u8 apps_dischg_val; + bool apps_dischg_cfg_postpone; + bool en_gpio_lpm; +}; + +#define TPS65132_REG_VPOS 0x00 +#define TPS65132_REG_VNEG 0x01 +#define TPS65132_VOLTAGE_MASK 0x1f +#define TPS65132_REG_APPS_DISCHARGE 0x03 +#define TPS65132_DISCHARGE_NEG_BIT 0 +#define TPS65132_DISCHARGE_POS_BIT 1 +#define TPS65132_APPSCFG_BIT 6 +#define TPS65132_REG_CTRL 0xff +#define TPS65132_WRITE_EN_BIT 7 + +#define TPS65132_VOLTAGE_MIN 4000000 +#define TPS65132_VOLTAGE_MAX 6000000 +#define TPS65132_VOLTAGE_STEP 100000 +#define TPS65132_VOLTAGE_LEVELS \ + ((TPS65132_VOLTAGE_MAX - TPS65132_VOLTAGE_MIN) \ + / TPS65132_VOLTAGE_STEP + 1) +#define TPS65132_CTRL_READ_DAC 0 +#define TPS65132_CTRL_READ_EEPROM 1 + +#define TPS65132_NEG_TABLET_CURR_LIMIT_UA 80000 +#define TPS65132_NEG_SMARTPHONE_CURR_LIMIT_UA 40000 +#define TPS65132_POS_CURR_LIMIT_UA 200000 + +#define I2C_VOLTAGE_LEVEL 1800000 + +enum { + TPS65132_POSITIVE_BOOST = 0, + TPS65132_NEGATIVE_BOOST, +}; + +static struct of_regulator_match tps65132_reg_matches[] = { + { .name = "pos-boost", .driver_data = (void *)TPS65132_POSITIVE_BOOST }, + { .name = "neg-boost", .driver_data = (void *)TPS65132_NEGATIVE_BOOST }, +}; + +static int tps65132_regulator_disable(struct regulator_dev *rdev) +{ + struct tps65132_regulator *vreg = rdev_get_drvdata(rdev); + struct tps65132_chip *chip = vreg->chip; + printk("tps65132_regulator_disable\n"); + printk("vreg->en_gpio is %d\n", vreg->en_gpio); + if (chip->en_gpio_lpm) { + gpio_direction_output(vreg->en_gpio, 0); + } else{ + gpio_set_value_cansleep(vreg->en_gpio, + vreg->gpio_flags & OF_GPIO_ACTIVE_LOW ? 1 : 0); +} + vreg->is_enabled = false; + + return 0; +} + +static int tps65132_regulator_enable(struct regulator_dev *rdev) +{ + struct tps65132_regulator *vreg = rdev_get_drvdata(rdev); + struct tps65132_chip *chip = vreg->chip; + int rc; + printk("tps65132_regulator_enable\n"); + printk("vreg->en_gpio is %d\n", vreg->en_gpio); + if (chip->en_gpio_lpm) { + gpio_direction_output(vreg->en_gpio, 1); +} + else { + gpio_set_value_cansleep(vreg->en_gpio, + vreg->gpio_flags & OF_GPIO_ACTIVE_LOW ? 0 : 1); +} + vreg->is_enabled = true; + + if (chip->apps_dischg_cfg_postpone) { + rc = regmap_write(chip->regmap, chip->apps_dischg_reg, + chip->apps_dischg_val); + if (rc) { + pr_err("apps_dischg set failed, rc = %d\n", rc); + return rc; + } + chip->apps_dischg_cfg_postpone = false; + } + + if (vreg->vol_set_postpone) { + rc = regmap_write(rdev->regmap, vreg->vol_reg, + vreg->vol_set_val); + + if (rc) { + pr_err("set voltage failed, rc = %d\n", rc); + return rc; + } + vreg->vol_set_postpone = false; + } + + return 0; +} + +static int tps65132_regulator_get_voltage(struct regulator_dev *rdev) +{ + struct tps65132_regulator *vreg = rdev_get_drvdata(rdev); + int rc, val; + return 0; + + if (!rdev->regmap) { + pr_err("regmap not found\n"); + return -EINVAL; + } + if (!vreg->is_enabled) + return vreg->curr_uV; + + rc = regmap_write(rdev->regmap, vreg->ctrl_reg, TPS65132_CTRL_READ_DAC); + if (rc) { + pr_err("failed to write reg %d, rc = %d\n", vreg->ctrl_reg, rc); + return rc; + } + + rc = regmap_read(rdev->regmap, vreg->vol_reg, &val); + if (rc) { + pr_err("read reg %d failed, rc = %d\n", vreg->vol_reg, rc); + return rc; + } else { + vreg->curr_uV = (val & TPS65132_VOLTAGE_MASK) * + TPS65132_VOLTAGE_STEP + TPS65132_VOLTAGE_MIN; + } + + return vreg->curr_uV; +} + +static int tps65132_regulator_set_voltage(struct regulator_dev *rdev, + int min_uV, int max_uV, unsigned *selector) +{ + struct tps65132_regulator *vreg = rdev_get_drvdata(rdev); + int val, new_uV, rc; + + if (!rdev->regmap) { + pr_err("regmap not found\n"); + return -EINVAL; + } + + val = DIV_ROUND_UP(min_uV - TPS65132_VOLTAGE_MIN, + TPS65132_VOLTAGE_STEP); + val = val & TPS65132_VOLTAGE_MASK; + new_uV = TPS65132_VOLTAGE_MIN + (val * TPS65132_VOLTAGE_STEP); + if (new_uV > max_uV) { + pr_err("failed to set voltage (%d %d)\n", min_uV, max_uV); + return -EINVAL; + } + if (!vreg->is_enabled) { + vreg->vol_set_val = val; + vreg->vol_set_postpone = true; + } else { + rc = regmap_write(rdev->regmap, vreg->vol_reg, val); + if (rc) { + pr_err("failed to write reg %d, rc = %d\n", + vreg->vol_reg, rc); + return rc; + } + } + vreg->curr_uV = new_uV; + + *selector = val; + + return 0; +} + +static int tps65132_regulator_list_voltage(struct regulator_dev *rdev, + unsigned selector) +{ + if (selector >= TPS65132_VOLTAGE_LEVELS) + return 0; + + return selector * TPS65132_VOLTAGE_STEP + TPS65132_VOLTAGE_MIN; +} + +static int tps65132_regulator_is_enabled(struct regulator_dev *rdev) +{ + struct tps65132_regulator *vreg = rdev_get_drvdata(rdev); + + return vreg->is_enabled ? 1 : 0; +} + +static struct regulator_ops tps65132_ops = { + .set_voltage = tps65132_regulator_set_voltage, + .get_voltage = tps65132_regulator_get_voltage, + .list_voltage = tps65132_regulator_list_voltage, + .enable = tps65132_regulator_enable, + .disable = tps65132_regulator_disable, + .is_enabled = tps65132_regulator_is_enabled, +}; + +static int tps65132_regulator_gpio_init(struct tps65132_chip *chip) +{ + struct tps65132_regulator *vreg; + u32 gpio; + enum of_gpio_flags flags; + int state; + int i, rc = 0; + + for (i = 0; i < chip->num_regulators; i++) { + vreg = &chip->vreg[i]; + gpio = vreg->en_gpio; + flags = vreg->gpio_flags; + if (gpio_is_valid(gpio)) { + rc = devm_gpio_request(chip->dev, gpio, vreg->name); + if (rc < 0) { + pr_err("gpio %d request failed, rc = %d\n", + gpio, rc); + return rc; + } + state = gpio_get_value_cansleep(gpio); + if (state < 0) { + pr_err("gpio %d: get value failed, rc = %d\n", + gpio, state); + return state; + } + rc = gpio_direction_output(gpio, state); + if (rc < 0) { + pr_err("gpio %d set output failed, rc = %d\n", + gpio, rc); + return rc; + } + if (((flags & OF_GPIO_ACTIVE_LOW) && (state == 0)) || + (!(flags & OF_GPIO_ACTIVE_LOW) && (state == 1))) + vreg->is_enabled = true; + } else { + pr_err("gpio %d is invalid for %s EN-pin\n", + gpio, vreg->name); + return -EINVAL; + } + } + + return rc; +} + +static int tps65132_regulator_apps_dischg_config(struct tps65132_chip *chip) +{ + struct tps65132_regulator *vreg; + u8 value = 0; + bool online = false; + int i, rc = 0; + + if (chip->apps_cfg > 0) + value = BIT(chip->apps_cfg_bit_pos); + + for (i = 0; i < chip->num_regulators; i++) { + vreg = &chip->vreg[i]; + if (vreg->dischg_en) + value |= BIT(vreg->dischg_bit_pos); + if (vreg->is_enabled) + online = true; + } + if (online) { + rc = regmap_write(chip->regmap, chip->apps_dischg_reg, value); + if (rc) + pr_err("write reg %d failed, rc = %d\n", + chip->apps_dischg_reg, rc); + } else { + chip->apps_dischg_cfg_postpone = true; + chip->apps_dischg_val = value; + } + + return 0; +} + +static int tps65132_regulator_hw_init(struct tps65132_chip *chip) +{ + int rc; + struct regulator *i2c_pwr = chip->i2c_pwr; + + rc = tps65132_regulator_gpio_init(chip); + if (rc) { + pr_err("gpios initialize failed, rc = %d\n", rc); + return rc; + } + + if (i2c_pwr) { + if (regulator_count_voltages(i2c_pwr) > 0) { + rc = regulator_set_voltage(i2c_pwr, + I2C_VOLTAGE_LEVEL, I2C_VOLTAGE_LEVEL); + if (rc < 0) { + pr_err("set i2c-pwr voltage failed, rc = %d\n", + rc); + return rc; + } + } + rc = regulator_enable(i2c_pwr); + if (rc) { + pr_err("enable i2c-pwr voltage failed, rc = %d\n", rc); + return rc; + } + } + + rc = tps65132_regulator_apps_dischg_config(chip); + if (rc) + pr_err("appscfg set failed, rc = %d\n", rc); + + return rc; +} + +static int tps65132_parse_dt(struct tps65132_chip *chip, + struct i2c_client *client) +{ + struct device_node *node; + struct of_regulator_match *match; + int type, i, rc; + u32 current_limit; + + if (!client->dev.of_node) { + pr_err("device node missing\n"); + return -EINVAL; + } + + node = of_find_node_by_name(client->dev.of_node, "regulators"); + if (!node) { + pr_err("get regulators node failed\n"); + return -EINVAL; + } + + rc = of_regulator_match(&client->dev, node, tps65132_reg_matches, + ARRAY_SIZE(tps65132_reg_matches)); + if (rc < 0) { + pr_err("regulator match failed, rc = %d\n", rc); + return rc; + } + + chip->num_regulators = rc; + + chip->vreg = devm_kzalloc(&client->dev, chip->num_regulators * + sizeof(struct tps65132_regulator), + GFP_KERNEL); + if (!chip->vreg) { + pr_err("memory allocation failed for vreg\n"); + return -ENOMEM; + } + if (of_find_property(client->dev.of_node, "i2c-pwr-supply", NULL)) { + chip->i2c_pwr = devm_regulator_get(&client->dev, "i2c-pwr"); + if (IS_ERR_OR_NULL(chip->i2c_pwr)) { + rc = PTR_RET(chip->i2c_pwr); + if (rc != EPROBE_DEFER) + pr_err("get i2c_pwr failed, rc = %d\n", rc); + return rc; + } + } + chip->en_gpio_lpm = of_property_read_bool(client->dev.of_node, + "ti,en-gpio-lpm"); + + for (i = 0; i < chip->num_regulators; i++) { + match = &tps65132_reg_matches[i]; + if (!match->init_data) + continue; + match->init_data->constraints.input_uV = + match->init_data->constraints.max_uV; + match->init_data->constraints.valid_ops_mask = + REGULATOR_CHANGE_VOLTAGE | + REGULATOR_CHANGE_STATUS; + + chip->vreg[i].init_data = match->init_data; + chip->vreg[i].node = match->of_node; + chip->vreg[i].chip = chip; + chip->vreg[i].name = match->init_data->constraints.name; + chip->vreg[i].ctrl_reg = TPS65132_REG_CTRL; + chip->vreg[i].wrt_en_bit_pos = TPS65132_WRITE_EN_BIT; + chip->vreg[i].read_eeprom_bit_pos = + TPS65132_WRITE_EN_BIT; + chip->vreg[i].dischg_en = of_property_read_bool( + match->of_node, "ti,discharge-enable"); + rc = of_property_read_u32(match->of_node, "ti,enable-time", + &chip->vreg[i].rdesc.enable_time); + if (rc < 0) { + pr_debug("ti,enable-time read failed, rc = %d\n", rc); + chip->vreg[i].rdesc.enable_time = 800; + } + rc = of_property_read_u32(match->of_node, "ti,current-limit", + ¤t_limit); + type = (uintptr_t)match->driver_data; + if (type == TPS65132_POSITIVE_BOOST) { + chip->vreg[i].vol_reg = TPS65132_REG_VPOS; + chip->vreg[i].dischg_bit_pos = + TPS65132_DISCHARGE_POS_BIT; + if (!rc && (current_limit != + TPS65132_POS_CURR_LIMIT_UA)) { + pr_err("current limit %duA is invalid for postive boost\n", + current_limit); + return -EINVAL; + } + } else if (type == TPS65132_NEGATIVE_BOOST) { + chip->vreg[i].vol_reg = TPS65132_REG_VNEG; + chip->vreg[i].dischg_bit_pos = + TPS65132_DISCHARGE_NEG_BIT; + if (!rc && (current_limit != + TPS65132_NEG_TABLET_CURR_LIMIT_UA) && + (current_limit != + TPS65132_NEG_SMARTPHONE_CURR_LIMIT_UA)) { + pr_err("current limit %duA is invalid for negative boost\n", + current_limit); + return -EINVAL; + } else if (!rc && (current_limit == + TPS65132_NEG_TABLET_CURR_LIMIT_UA)) { + chip->apps_cfg = 1; + } + } else { + pr_err("unknown regulator type: %d\n", type); + return -EINVAL; + } + rc = 0; + chip->vreg[i].en_gpio = of_get_named_gpio_flags( + match->of_node, "ti,en-gpio", 0, + &chip->vreg[i].gpio_flags); + if (chip->vreg[i].en_gpio < 0) { + pr_err("get ti,en-gpio failed, rc = %d\n", + chip->vreg[i].en_gpio); + return chip->vreg[i].en_gpio; + } + } + chip->apps_dischg_reg = TPS65132_REG_APPS_DISCHARGE; + chip->apps_cfg_bit_pos = TPS65132_APPSCFG_BIT; + + return rc; +} + +static struct regmap_config tps65132_regmap_config = { + .reg_bits = 8, + .val_bits = 8, +}; + +static int tps65132_regulator_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ + struct tps65132_chip *chip; + struct regulator_config config = {}; + struct regulator_desc *rdesc; + int i, j, rc; + chip = devm_kzalloc(&client->dev, sizeof(struct tps65132_chip), + GFP_KERNEL); + if (!chip) { + pr_err("memory allocation failed for tps65132_chip\n"); + return -ENOMEM; + } + rc = tps65132_parse_dt(chip, client); + if (rc) { + pr_err("parse device tree failed for tps65132, rc = %d\n", + rc); + return rc; + } + chip->regmap = devm_regmap_init_i2c(client, &tps65132_regmap_config); + if (IS_ERR(chip->regmap)) { + pr_err("init regmap failed for tps65132, rc = %ld\n", + PTR_ERR(chip->regmap)); + return PTR_ERR(chip->regmap); + } + chip->dev = &client->dev; + + rc = tps65132_regulator_hw_init(chip); + if (rc < 0) { + pr_err("hardware init failed for tps65132, rc = %d\n", rc); + return rc; + } + i2c_set_clientdata(client, chip); + + for (i = 0; i < chip->num_regulators; i++) { + config.dev = &client->dev; + config.init_data = chip->vreg[i].init_data; + config.regmap = chip->regmap; + config.driver_data = &chip->vreg[i]; + config.of_node = chip->vreg[i].node; + + rdesc = &chip->vreg[i].rdesc; + rdesc->name = chip->vreg[i].name; + rdesc->type = REGULATOR_VOLTAGE; + rdesc->owner = THIS_MODULE; + rdesc->n_voltages = TPS65132_VOLTAGE_LEVELS; + if (of_get_property(client->dev.of_node, "vin-supply", NULL)) + rdesc->supply_name = "vin"; + rdesc->ops = &tps65132_ops; + chip->vreg[i].rdev = regulator_register(rdesc, &config); + if (IS_ERR(chip->vreg[i].rdev)) { + pr_err("regulator register failed, rc = %ld\n", + PTR_ERR(chip->vreg[i].rdev)); + for (j = i - 1; j >= 0; j--) + regulator_unregister(chip->vreg[j].rdev); + + return PTR_ERR(chip->vreg[i].rdev); + } + } + + return 0; +} + +static int tps65132_regulator_remove(struct i2c_client *client) +{ + struct tps65132_chip *chip = i2c_get_clientdata(client); + struct regulator *i2c_pwr = chip->i2c_pwr; + int i; + + if (i2c_pwr) + regulator_disable(i2c_pwr); + + for (i = 0; i < chip->num_regulators; i++) + regulator_unregister(chip->vreg[i].rdev); + + return 0; +} + +static struct of_device_id tps65132_match_table[] = { + { .compatible = "ti,tps65132", }, + {}, +}; +MODULE_DEVICE_TABLE(of, tps65132_match_table); + +static const struct i2c_device_id tps65132_id[] = { + {"tps65132", -1}, + { }, +}; + +static int tps65132_suspend(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct tps65132_chip *chip = i2c_get_clientdata(client); + int rc = 0; + + if (chip->i2c_pwr) + rc = regulator_disable(chip->i2c_pwr); + + return rc; +} + +static int tps65132_resume(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct tps65132_chip *chip = i2c_get_clientdata(client); + int rc = 0; + + if (chip->i2c_pwr) + rc = regulator_enable(chip->i2c_pwr); + + return rc; +} + +const struct dev_pm_ops tps65132_pm_ops = { + .resume = tps65132_resume, + .suspend = tps65132_suspend, +}; + +static struct i2c_driver tps65132_regulator_driver = { + .driver = { + .name = "tps65132", + .owner = THIS_MODULE, + .of_match_table = tps65132_match_table, + }, + .probe = tps65132_regulator_probe, + .remove = tps65132_regulator_remove, + .id_table = tps65132_id, +}; + +static int __init tps65132_init(void) +{ + return i2c_add_driver(&tps65132_regulator_driver); +} +subsys_initcall(tps65132_init); + +static void __exit tps65132_exit(void) +{ + i2c_del_driver(&tps65132_regulator_driver); +} +module_exit(tps65132_exit); + +MODULE_DESCRIPTION("TI TPS65132 regulator driver"); +MODULE_LICENSE("GPL v2"); diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c index 8a2a593c41e9d..1dd8de53b0ecb 100644 --- a/drivers/scsi/sg.c +++ b/drivers/scsi/sg.c @@ -406,6 +406,9 @@ sg_read(struct file *filp, char __user *buf, size_t count, loff_t * ppos) struct sg_header *old_hdr = NULL; int retval = 0; + if (unlikely(segment_eq(get_fs(), KERNEL_DS))) + return -EINVAL; + if ((!(sfp = (Sg_fd *) filp->private_data)) || (!(sdp = sfp->parentdp))) return -ENXIO; SCSI_LOG_TIMEOUT(3, sg_printk(KERN_INFO, sdp, @@ -510,7 +513,7 @@ sg_read(struct file *filp, char __user *buf, size_t count, loff_t * ppos) old_hdr->result = EIO; break; case DID_ERROR: - old_hdr->result = (srp->sense_b[0] == 0 && + old_hdr->result = (srp->sense_b[0] == 0 && hp->masked_status == GOOD) ? 0 : EIO; break; default: @@ -875,8 +878,10 @@ sg_ioctl(struct file *filp, unsigned int cmd_in, unsigned long arg) return -ENXIO; if (!access_ok(VERIFY_WRITE, p, SZ_SG_IO_HDR)) return -EFAULT; + mutex_lock(&sfp->parentdp->open_rel_lock); result = sg_new_write(sfp, filp, p, SZ_SG_IO_HDR, 1, read_only, 1, &srp); + mutex_unlock(&sfp->parentdp->open_rel_lock); if (result < 0) return result; result = wait_event_interruptible(sfp->read_wait, @@ -916,8 +921,10 @@ sg_ioctl(struct file *filp, unsigned int cmd_in, unsigned long arg) sfp->low_dma = 1; if ((0 == sfp->low_dma) && (0 == sg_res_in_use(sfp))) { val = (int) sfp->reserve.bufflen; + mutex_lock(&sfp->parentdp->open_rel_lock); sg_remove_scat(sfp, &sfp->reserve); sg_build_reserve(sfp, val); + mutex_unlock(&sfp->parentdp->open_rel_lock); } } else { if (atomic_read(&sdp->detaching)) @@ -985,15 +992,17 @@ sg_ioctl(struct file *filp, unsigned int cmd_in, unsigned long arg) result = get_user(val, ip); if (result) return result; - if (val < 0) - return -EINVAL; + if (val < 0) + return -EINVAL; val = min_t(int, val, max_sectors_bytes(sdp->device->request_queue)); if (val != sfp->reserve.bufflen) { if (sg_res_in_use(sfp) || sfp->mmap_called) return -EBUSY; + mutex_lock(&sfp->parentdp->open_rel_lock); sg_remove_scat(sfp, &sfp->reserve); sg_build_reserve(sfp, val); + mutex_unlock(&sfp->parentdp->open_rel_lock); } return 0; case SG_GET_RESERVED_SIZE: @@ -1020,6 +1029,8 @@ sg_ioctl(struct file *filp, unsigned int cmd_in, unsigned long arg) result = get_user(val, ip); if (result) return result; + if (val > SG_MAX_CDB_SIZE) + return -ENOMEM; sfp->next_cmd_len = (val > 0) ? val : 0; return 0; case SG_GET_VERSION_NUM: @@ -1046,8 +1057,8 @@ sg_ioctl(struct file *filp, unsigned int cmd_in, unsigned long arg) if (srp) { rinfo[val].req_state = srp->done + 1; rinfo[val].problem = - srp->header.masked_status & - srp->header.host_status & + srp->header.masked_status & + srp->header.host_status & srp->header.driver_status; if (srp->done) rinfo[val].duration = @@ -1068,7 +1079,7 @@ sg_ioctl(struct file *filp, unsigned int cmd_in, unsigned long arg) } } read_unlock_irqrestore(&sfp->rq_list_lock, iflags); - result = __copy_to_user(p, rinfo, + result = __copy_to_user(p, rinfo, SZ_SG_REQ_INFO * SG_MAX_QUEUE); result = result ? -EFAULT : 0; kfree(rinfo); @@ -1170,14 +1181,14 @@ static long sg_compat_ioctl(struct file *filp, unsigned int cmd_in, unsigned lon return -ENXIO; sdev = sdp->device; - if (sdev->host->hostt->compat_ioctl) { + if (sdev->host->hostt->compat_ioctl) { int ret; ret = sdev->host->hostt->compat_ioctl(sdev, cmd_in, (void __user *)arg); return ret; } - + return -ENOIOCTLCMD; } #endif @@ -1661,7 +1672,7 @@ init_sg(void) else def_reserved_size = sg_big_buff; - rc = register_chrdev_region(MKDEV(SCSI_GENERIC_MAJOR, 0), + rc = register_chrdev_region(MKDEV(SCSI_GENERIC_MAJOR, 0), SG_MAX_DEVS, "sg"); if (rc) return rc; @@ -2346,7 +2357,7 @@ static const struct file_operations adio_fops = { }; static int sg_proc_single_open_dressz(struct inode *inode, struct file *file); -static ssize_t sg_proc_write_dressz(struct file *filp, +static ssize_t sg_proc_write_dressz(struct file *filp, const char __user *buffer, size_t count, loff_t *off); static const struct file_operations dressz_fops = { .owner = THIS_MODULE, @@ -2486,7 +2497,7 @@ static int sg_proc_single_open_adio(struct inode *inode, struct file *file) return single_open(file, sg_proc_seq_show_int, &sg_allow_dio); } -static ssize_t +static ssize_t sg_proc_write_adio(struct file *filp, const char __user *buffer, size_t count, loff_t *off) { @@ -2507,7 +2518,7 @@ static int sg_proc_single_open_dressz(struct inode *inode, struct file *file) return single_open(file, sg_proc_seq_show_int, &sg_big_buff); } -static ssize_t +static ssize_t sg_proc_write_dressz(struct file *filp, const char __user *buffer, size_t count, loff_t *off) { @@ -2667,7 +2678,7 @@ static void sg_proc_debug_helper(struct seq_file *s, Sg_device * sdp) hp = &srp->header; new_interface = (hp->interface_id == '\0') ? 0 : 1; if (srp->res_used) { - if (new_interface && + if (new_interface && (SG_FLAG_MMAP_IO & hp->flags)) cp = " mmap>> "; else diff --git a/drivers/soc/qcom/Kconfig b/drivers/soc/qcom/Kconfig index a4852719085b3..e3ed488f2f9fa 100644 --- a/drivers/soc/qcom/Kconfig +++ b/drivers/soc/qcom/Kconfig @@ -826,6 +826,21 @@ config MSM_REMOTEQDSS enable/disable these events. Interface located in /sys/class/remoteqdss. +config SERIAL_NUM + bool "Enable Serial Number Proc Interface" + help + Provide a interface for reading CPU serial number + +config SECBOOT_FUSE + bool "Enable Secure boot fuse Proc Interface" + help + rovide a interface for reading CPU secure boot fuse setting. Interface located in + proc/secboot_fuse_reg + +config CPUMAXFREQ + bool "Enable CPUMAXFREQ Proc Interface" + help + Provide a interface for getting the maximum frequency supported by cpu core config QCOM_SMCINVOKE bool "Secure QSEE Support" help diff --git a/drivers/soc/qcom/Makefile b/drivers/soc/qcom/Makefile index d61b4f8c9ed93..2500709d994a9 100644 --- a/drivers/soc/qcom/Makefile +++ b/drivers/soc/qcom/Makefile @@ -86,6 +86,9 @@ ifdef CONFIG_MSM_SUBSYSTEM_RESTART obj-y += subsystem_restart.o obj-y += ramdump.o endif +obj-$(CONFIG_SERIAL_NUM) += serial_num.o +obj-$(CONFIG_SECBOOT_FUSE) += secboot_fuse.o +obj-$(CONFIG_CPUMAXFREQ) += cpumaxfreq.o obj-$(CONFIG_MSM_SERVICE_NOTIFIER) += service-notifier.o obj-$(CONFIG_MSM_SYSMON_COMM) += sysmon.o sysmon-qmi.o diff --git a/drivers/soc/qcom/cpumaxfreq.c b/drivers/soc/qcom/cpumaxfreq.c new file mode 100644 index 0000000000000..0ee532ea330a0 --- /dev/null +++ b/drivers/soc/qcom/cpumaxfreq.c @@ -0,0 +1,60 @@ +#include +#include +#include +#include + +static struct proc_dir_entry *entry; + +static unsigned int cpumaxfreq = 0; + +static int cpumaxfreq_read(struct seq_file *m, void *v) +{ + int ret; + + pr_debug("cpumaxfreq: %u kHz\n", cpumaxfreq); + + ret = cpumaxfreq/1000 + 5; + seq_printf(m, "%u.%02u\n", ret/1000, ret%1000/10); + + return 0; +} + +static int cpumaxfreq_proc_open(struct inode *inode, struct file *file) +{ + return single_open(file, cpumaxfreq_read, NULL); +} + +static const struct file_operations cpumaxfreq_fops = { + .open = cpumaxfreq_proc_open, + .read = seq_read, + .llseek = seq_lseek, + .release = single_release, +}; + +static int __init cpumaxfreq_init(void) +{ + int cpu; + struct cpufreq_policy policy; + + entry = proc_create("cpumaxfreq", 0444 /* read only*/, + NULL /* parent dir */, &cpumaxfreq_fops); + + for_each_possible_cpu(cpu) { + if (cpufreq_get_policy(&policy, cpu)) + continue; + if (policy.cpuinfo.max_freq > cpumaxfreq) + cpumaxfreq = policy.cpuinfo.max_freq; + } + + return !entry; +} +module_init(cpumaxfreq_init); + +static void __exit cpumaxfreq_exit(void) +{ + proc_remove(entry); +} +module_exit(cpumaxfreq_exit); + +MODULE_LICENSE("GPL v2"); +MODULE_DESCRIPTION("Return the max freqency supported by any core of the processor"); diff --git a/drivers/soc/qcom/secboot_fuse.c b/drivers/soc/qcom/secboot_fuse.c new file mode 100644 index 0000000000000..badceec978208 --- /dev/null +++ b/drivers/soc/qcom/secboot_fuse.c @@ -0,0 +1,121 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define secboot_fuse_readl(drvdata, off) __raw_readl(drvdata->base + off) + +#define SECBOOT_FUSE (0x000) + +static uint32_t secboot_fuse; + +struct secboot_fuse_drvdata { + void __iomem *base; + struct device *dev; +}; + +static struct secboot_fuse_drvdata *secdrvdata; + +static int secboot_fuse_read(struct seq_file *m, void *v) +{ + struct secboot_fuse_drvdata *drvdata = secdrvdata; + + if (!drvdata) + return false; + + if (secboot_fuse == 0) + secboot_fuse = secboot_fuse_readl(drvdata, SECBOOT_FUSE); + + dev_dbg(drvdata->dev, "secboot register: %x\n", secboot_fuse); + + seq_printf(m, "0x%x\n", secboot_fuse); + + return 0; + +} + +static int secboot_proc_open(struct inode *inode, struct file *file) +{ + return single_open(file, secboot_fuse_read, NULL); +} + +static const struct file_operations secboot_fops = { + .open = secboot_proc_open, + .read = seq_read, + .llseek = seq_lseek, + .release = single_release, +}; + +static void secboot_fuse_create_proc(void) +{ + struct proc_dir_entry *entry; + entry = proc_create("secboot_fuse_reg", 0 /* default mode */, + NULL /* parent dir */, &secboot_fops); +} + +static int secboot_fuse_probe(struct platform_device *pdev) +{ + struct device *dev = &pdev->dev; + struct secboot_fuse_drvdata *drvdata; + struct resource *res; + + drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL); + if (!drvdata) + return -ENOMEM; + /* Store the driver data pointer for use in exported functions */ + secdrvdata = drvdata; + drvdata->dev = &pdev->dev; + platform_set_drvdata(pdev, drvdata); + + res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "sec-boot-base"); + if (!res) + return -ENODEV; + + drvdata->base = devm_ioremap(dev, res->start, resource_size(res)); + if (!drvdata->base) + return -ENOMEM; + + secboot_fuse_create_proc(); + dev_info(dev, "Secboot-fuse interface initialized\n"); + return 0; +} + +static int secboot_fuse_remove(struct platform_device *pdev) +{ + return 0; +} + +static struct of_device_id secboot_fuse_match[] = { + {.compatible = "qcom,sec-boot-fuse"}, + {} +}; + +static struct platform_driver secboot_fuse_driver = { + .probe = secboot_fuse_probe, + .remove = secboot_fuse_remove, + .driver = { + .name = "msm-secboot-fuse", + .owner = THIS_MODULE, + .of_match_table = secboot_fuse_match, + }, +}; + +static int __init secboot_fuse_init(void) +{ + return platform_driver_register(&secboot_fuse_driver); +} +arch_initcall(secboot_fuse_init); + +static void __exit secboot_fuse_exit(void) +{ + platform_driver_unregister(&secboot_fuse_driver); +} +module_exit(secboot_fuse_exit); + +MODULE_LICENSE("GPL v2"); +MODULE_DESCRIPTION("JTag Fuse driver"); diff --git a/drivers/soc/qcom/serial_num.c b/drivers/soc/qcom/serial_num.c new file mode 100644 index 0000000000000..e0fca88ba6a12 --- /dev/null +++ b/drivers/soc/qcom/serial_num.c @@ -0,0 +1,121 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define sn_readl(drvdata, off) __raw_readl(drvdata->base + off) + +#define SERIAL_NUM (0x000) + +static uint32_t sn; + +struct sn_drvdata { + void __iomem *base; + struct device *dev; +}; + +static struct sn_drvdata *sndrvdata; + +static int sn_read(struct seq_file *m, void *v) +{ + struct sn_drvdata *drvdata = sndrvdata; + + if (!drvdata) + return false; + + if (sn == 0) + sn = sn_readl(drvdata, SERIAL_NUM); + + dev_dbg(drvdata->dev, "serial num: %x\n", sn); + + seq_printf(m, "0x%x\n", sn); + + return 0; + +} + +static int sn_proc_open(struct inode *inode, struct file *file) +{ + return single_open(file, sn_read, NULL); +} + +static const struct file_operations sn_fops = { + .open = sn_proc_open, + .read = seq_read, + .llseek = seq_lseek, + .release = single_release, +}; + +static void sn_create_proc(void) +{ + struct proc_dir_entry *entry; + entry = proc_create("serial_num", 0 /* default mode */, + NULL /* parent dir */, &sn_fops); +} + +static int sn_fuse_probe(struct platform_device *pdev) +{ + struct device *dev = &pdev->dev; + struct sn_drvdata *drvdata; + struct resource *res; + + drvdata = devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL); + if (!drvdata) + return -ENOMEM; + /* Store the driver data pointer for use in exported functions */ + sndrvdata = drvdata; + drvdata->dev = &pdev->dev; + platform_set_drvdata(pdev, drvdata); + + res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "sn-base"); + if (!res) + return -ENODEV; + + drvdata->base = devm_ioremap(dev, res->start, resource_size(res)); + if (!drvdata->base) + return -ENOMEM; + + sn_create_proc(); + dev_info(dev, "SN interface initialized\n"); + return 0; +} + +static int sn_fuse_remove(struct platform_device *pdev) +{ + return 0; +} + +static struct of_device_id sn_fuse_match[] = { + {.compatible = "qcom,sn-fuse"}, + {} +}; + +static struct platform_driver sn_fuse_driver = { + .probe = sn_fuse_probe, + .remove = sn_fuse_remove, + .driver = { + .name = "msm-sn-fuse", + .owner = THIS_MODULE, + .of_match_table = sn_fuse_match, + }, +}; + +static int __init sn_fuse_init(void) +{ + return platform_driver_register(&sn_fuse_driver); +} +arch_initcall(sn_fuse_init); + +static void __exit sn_fuse_exit(void) +{ + platform_driver_unregister(&sn_fuse_driver); +} +module_exit(sn_fuse_exit); + +MODULE_LICENSE("GPL v2"); +MODULE_DESCRIPTION("JTag Fuse driver"); diff --git a/drivers/soc/qcom/subsystem_restart.c b/drivers/soc/qcom/subsystem_restart.c index fa9f9fc335b40..f1ad238d30674 100644 --- a/drivers/soc/qcom/subsystem_restart.c +++ b/drivers/soc/qcom/subsystem_restart.c @@ -28,6 +28,7 @@ #include #include #include +#include #include #include #include @@ -149,6 +150,7 @@ struct restart_log { * @restart_level: restart level (0 - panic, 1 - related, 2 - independent, etc.) * @restart_order: order of other devices this devices restarts with * @crash_count: number of times the device has crashed + * @dentry: debugfs directory for this device * @do_ramdump_on_put: ramdump on subsystem_put() if true * @err_ready: completion variable to record error ready from subsystem * @crashed: indicates if subsystem has crashed @@ -170,6 +172,9 @@ struct subsys_device { int restart_level; int crash_count; struct subsys_soc_restart_order *restart_order; +#ifdef CONFIG_DEBUG_FS + struct dentry *dentry; +#endif bool do_ramdump_on_put; struct cdev char_dev; dev_t dev_no; @@ -403,6 +408,23 @@ module_param(max_restarts, int, 0644); static long max_history_time = 3600; module_param(max_history_time, long, 0644); +#ifdef WT_COMPILE_FACTORY_VERSION +static int adsp_crash_num = 0; +module_param(adsp_crash_num, int, 0644); + +static int modem_crash_num = 0; +module_param(modem_crash_num, int, 0644); + +static int venus_crash_num = 0; +module_param(venus_crash_num, int, 0644); + +static int wcnss_crash_num = 0; +module_param(wcnss_crash_num, int, 0644); + +static int a506_zap_crash_num = 0; +module_param(a506_zap_crash_num, int, 0644); +#endif + static void do_epoch_check(struct subsys_device *dev) { int n = 0; @@ -1035,6 +1057,19 @@ int subsystem_restart_dev(struct subsys_device *dev) return -EBUSY; } +#ifdef WT_COMPILE_FACTORY_VERSION + if (!strcmp(name, "adsp")) + adsp_crash_num++; + if (!strcmp(name, "modem")) + modem_crash_num++; + if(!strcmp(name, "venus")) + venus_crash_num++; + if (!strcmp(name, "wcnss")) + wcnss_crash_num++; + if (!strcmp(name, "a506_zap")) + a506_zap_crash_num++; +#endif + pr_info("Restart sequence requested for %s, restart_level = %s.\n", name, restart_levels[dev->restart_level]); @@ -1143,6 +1178,87 @@ void notify_proxy_unvote(struct device *device) notify_each_subsys_device(&dev, 1, SUBSYS_PROXY_UNVOTE, NULL); } +#ifdef CONFIG_DEBUG_FS +static ssize_t subsys_debugfs_read(struct file *filp, char __user *ubuf, + size_t cnt, loff_t *ppos) +{ + int r; + char buf[40]; + struct subsys_device *subsys = filp->private_data; + + r = snprintf(buf, sizeof(buf), "%d\n", subsys->count); + return simple_read_from_buffer(ubuf, cnt, ppos, buf, r); +} + +static ssize_t subsys_debugfs_write(struct file *filp, + const char __user *ubuf, size_t cnt, loff_t *ppos) +{ + struct subsys_device *subsys = filp->private_data; + char buf[10]; + char *cmp; + + cnt = min(cnt, sizeof(buf) - 1); + if (copy_from_user(&buf, ubuf, cnt)) + return -EFAULT; + buf[cnt] = '\0'; + cmp = strstrip(buf); + + if (!strcmp(cmp, "restart")) { + if (subsystem_restart_dev(subsys)) + return -EIO; + } else if (!strcmp(cmp, "get")) { + if (subsystem_get(subsys->desc->name)) + return -EIO; + } else if (!strcmp(cmp, "put")) { + subsystem_put(subsys); + } else { + return -EINVAL; + } + + return cnt; +} + +static const struct file_operations subsys_debugfs_fops = { + .open = simple_open, + .read = subsys_debugfs_read, + .write = subsys_debugfs_write, +}; + +static struct dentry *subsys_base_dir; + +static int __init subsys_debugfs_init(void) +{ + subsys_base_dir = debugfs_create_dir("msm_subsys", NULL); + return !subsys_base_dir ? -ENOMEM : 0; +} + +static void subsys_debugfs_exit(void) +{ + debugfs_remove_recursive(subsys_base_dir); +} + +static int subsys_debugfs_add(struct subsys_device *subsys) +{ + if (!subsys_base_dir) + return -ENOMEM; + + subsys->dentry = debugfs_create_file(subsys->desc->name, + S_IRUGO | S_IWUSR, subsys_base_dir, + subsys, &subsys_debugfs_fops); + return !subsys->dentry ? -ENOMEM : 0; +} + +static void subsys_debugfs_remove(struct subsys_device *subsys) +{ + debugfs_remove(subsys->dentry); +} +#else +static int __init subsys_debugfs_init(void) { return 0; }; +static void subsys_debugfs_exit(void) { } +static int subsys_debugfs_add(struct subsys_device *subsys) { return 0; } +static void subsys_debugfs_remove(struct subsys_device *subsys) { } +#endif + static int subsys_device_open(struct inode *inode, struct file *file) { struct subsys_device *device, *subsys_dev = 0; @@ -1558,7 +1674,11 @@ struct subsys_device *subsys_register(struct subsys_desc *desc) subsys->desc->sysmon_pid = -1; strlcpy(subsys->desc->fw_name, desc->name, sizeof(subsys->desc->fw_name)); - +#ifdef WT_FINAL_RELEASE + subsys->restart_level = RESET_SUBSYS_COUPLED; +#else + subsys->restart_level = RESET_SOC; +#endif subsys->notify = subsys_notif_add_subsys(desc->name); snprintf(subsys->wlname, sizeof(subsys->wlname), "ssr(%s)", desc->name); @@ -1579,8 +1699,17 @@ struct subsys_device *subsys_register(struct subsys_desc *desc) mutex_init(&subsys->track.lock); + ret = subsys_debugfs_add(subsys); + if (ret) { + ida_simple_remove(&subsys_ida, subsys->id); + wakeup_source_trash(&subsys->ssr_wlock); + kfree(subsys); + return ERR_PTR(ret); + } + ret = device_register(&subsys->dev); if (ret) { + subsys_debugfs_remove(subsys); put_device(&subsys->dev); return ERR_PTR(ret); } @@ -1642,6 +1771,7 @@ struct subsys_device *subsys_register(struct subsys_desc *desc) if (ofnode) subsys_remove_restart_order(ofnode); err_register: + subsys_debugfs_remove(subsys); device_unregister(&subsys->dev); return ERR_PTR(ret); } @@ -1670,6 +1800,7 @@ void subsys_unregister(struct subsys_device *subsys) WARN_ON(subsys->count); device_unregister(&subsys->dev); mutex_unlock(&subsys->track.lock); + subsys_debugfs_remove(subsys); subsys_char_device_remove(subsys); sysmon_notifier_unregister(subsys->desc); if (subsys->desc->edge) @@ -1709,6 +1840,9 @@ static int __init subsys_restart_init(void) ret = bus_register(&subsys_bus_type); if (ret) goto err_bus; + ret = subsys_debugfs_init(); + if (ret) + goto err_debugfs; char_class = class_create(THIS_MODULE, "subsys"); if (IS_ERR(char_class)) { @@ -1727,6 +1861,8 @@ static int __init subsys_restart_init(void) err_soc: class_destroy(char_class); err_class: + subsys_debugfs_exit(); +err_debugfs: bus_unregister(&subsys_bus_type); err_bus: destroy_workqueue(ssr_wq); diff --git a/drivers/soc/qcom/watchdog_v2.c b/drivers/soc/qcom/watchdog_v2.c index d97ddd5fd2f31..de22502d9528d 100644 --- a/drivers/soc/qcom/watchdog_v2.c +++ b/drivers/soc/qcom/watchdog_v2.c @@ -104,6 +104,23 @@ module_param(WDT_HZ, long, 0); static int ipi_opt_en; module_param(ipi_opt_en, int, 0); +#ifdef CONFIG_FIRE_WATCHDOG +static int wdog_fire; +static int wdog_fire_set(const char *val, struct kernel_param *kp); +module_param_call(wdog_fire, wdog_fire_set, param_get_int, + &wdog_fire, 0644); + +static int wdog_fire_set(const char *val, struct kernel_param *kp) +{ + printk(KERN_INFO "trigger wdog_fire_set\n"); + local_irq_disable(); + while (1) + ; + + return 0; +} +#endif + static void dump_cpu_alive_mask(struct msm_watchdog_data *wdog_dd) { static char alive_mask_buf[MASK_SIZE]; @@ -168,6 +185,11 @@ static int panic_wdog_handler(struct notifier_block *this, wdog_dd->base + WDT0_BITE_TIME); __raw_writel(1, wdog_dd->base + WDT0_RST); } +#ifdef CONFIG_DUMP_ALL_STACKS + /* Suspend wdog until all stacks are printed */ + printk(KERN_INFO "D Status stack trace dump:\n"); + show_state_filter(TASK_UNINTERRUPTIBLE); +#endif return NOTIFY_DONE; } diff --git a/drivers/spi/spidev.c b/drivers/spi/spidev.c index 1a981ef27fadf..823503f624091 100644 --- a/drivers/spi/spidev.c +++ b/drivers/spi/spidev.c @@ -4,6 +4,7 @@ * Copyright (C) 2006 SWAPP * Andrea Paterniani * Copyright (C) 2007 David Brownell (simplification, cleanup) + * Copyright (C) 2018 XiaoMi, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -92,7 +93,7 @@ struct spidev_data { static LIST_HEAD(device_list); static DEFINE_MUTEX(device_list_lock); -static unsigned bufsiz = 4096; +static unsigned bufsiz = 512*4096; module_param(bufsiz, uint, S_IRUGO); MODULE_PARM_DESC(bufsiz, "data bytes in biggest supported SPI message"); @@ -162,6 +163,10 @@ spidev_sync_write(struct spidev_data *spidev, size_t len) struct spi_transfer t = { .tx_buf = spidev->tx_buffer, .len = len, + .delay_usecs = 0, + .cs_change = 0, + + .speed_hz = 960000, }; struct spi_message m; @@ -544,36 +549,18 @@ static int spidev_open(struct inode *inode, struct file *filp) goto err_find_dev; } - if (!spidev->tx_buffer) { - spidev->tx_buffer = kmalloc(bufsiz, GFP_KERNEL); - if (!spidev->tx_buffer) { - dev_dbg(&spidev->spi->dev, "open/ENOMEM\n"); - status = -ENOMEM; - goto err_find_dev; - } - } - - if (!spidev->rx_buffer) { - spidev->rx_buffer = kmalloc(bufsiz, GFP_KERNEL); - if (!spidev->rx_buffer) { - dev_dbg(&spidev->spi->dev, "open/ENOMEM\n"); - status = -ENOMEM; - goto err_alloc_rx_buf; - } - } + memset(spidev->tx_buffer, 0, bufsiz); + memset(spidev->rx_buffer, 0, bufsiz); spidev->users++; filp->private_data = spidev; nonseekable_open(inode, filp); - mutex_unlock(&device_list_lock); return 0; -err_alloc_rx_buf: - kfree(spidev->tx_buffer); - spidev->tx_buffer = NULL; err_find_dev: mutex_unlock(&device_list_lock); + return status; } @@ -591,12 +578,6 @@ static int spidev_release(struct inode *inode, struct file *filp) if (!spidev->users) { int dofree; - kfree(spidev->tx_buffer); - spidev->tx_buffer = NULL; - - kfree(spidev->rx_buffer); - spidev->rx_buffer = NULL; - /* ... after we unbound from the underlying device? */ spin_lock_irq(&spidev->spi_lock); dofree = (spidev->spi == NULL); @@ -675,12 +656,40 @@ static int spidev_probe(struct spi_device *spi) set_bit(minor, minors); list_add(&spidev->device_entry, &device_list); } + + if (!spidev->tx_buffer) { + spidev->tx_buffer = kmalloc(bufsiz, GFP_KERNEL); + if (!spidev->tx_buffer) { + dev_dbg(&spidev->spi->dev, "open/ENOMEM\n"); + status = -ENOMEM; + goto err_find_dev; + } + } + + if (!spidev->rx_buffer) { + spidev->rx_buffer = kmalloc(bufsiz, GFP_KERNEL); + if (!spidev->rx_buffer) { + dev_dbg(&spidev->spi->dev, "open/ENOMEM\n"); + status = -ENOMEM; + goto err_alloc_rx_buf; + } + } + mutex_unlock(&device_list_lock); if (status == 0) spi_set_drvdata(spi, spidev); else - kfree(spidev); + goto err_dev_status; + + return status; +err_dev_status: + kfree(spidev); +err_alloc_rx_buf: + kfree(spidev->tx_buffer); + spidev->tx_buffer = NULL; +err_find_dev: + mutex_unlock(&device_list_lock); return status; } @@ -691,6 +700,13 @@ static int spidev_remove(struct spi_device *spi) /* make sure ops on existing fds can abort cleanly */ spin_lock_irq(&spidev->spi_lock); + + kfree(spidev->tx_buffer); + spidev->tx_buffer = NULL; + + kfree(spidev->rx_buffer); + spidev->rx_buffer = NULL; + spidev->spi = NULL; spin_unlock_irq(&spidev->spi_lock); diff --git a/drivers/staging/Kconfig b/drivers/staging/Kconfig index 4690ae9a267f3..605a6871301d0 100644 --- a/drivers/staging/Kconfig +++ b/drivers/staging/Kconfig @@ -108,4 +108,8 @@ source "drivers/staging/skein/Kconfig" source "drivers/staging/unisys/Kconfig" +source "drivers/staging/ktrace/Kconfig" + +source "drivers/staging/rtmm/Kconfig" + endif # STAGING diff --git a/drivers/staging/Makefile b/drivers/staging/Makefile index 53503056d747e..a7b95b4413806 100644 --- a/drivers/staging/Makefile +++ b/drivers/staging/Makefile @@ -45,3 +45,6 @@ obj-$(CONFIG_MTD_SPINAND_MT29F) += mt29f_spinand/ obj-$(CONFIG_GS_FPGABOOT) += gs_fpgaboot/ obj-$(CONFIG_CRYPTO_SKEIN) += skein/ obj-$(CONFIG_UNISYSSPAR) += unisys/ +obj-$(CONFIG_KTRACE) += ktrace/ +obj-$(CONFIG_RTMM) += rtmm/ + diff --git a/drivers/staging/android/Kconfig b/drivers/staging/android/Kconfig index b14adec68d8f6..9f6976beb1d18 100644 --- a/drivers/staging/android/Kconfig +++ b/drivers/staging/android/Kconfig @@ -32,6 +32,28 @@ config ANDROID_BINDER_IPC_32BIT Note that enabling this will break newer Android user-space. +config ANDROID_BINDER_DEVICES + string "Android Binder devices" + depends on ANDROID_BINDER_IPC + default "binder,hwbinder,vndbinder" + ---help--- + Default value for the binder.devices parameter. + + The binder.devices parameter is a comma-separated list of strings + that specifies the names of the binder device nodes that will be + created. Each binder device has its own context manager, and is + therefore logically separated from the other devices. + +config ANDROID_BINDER_IPC_SELFTEST + bool "Android Binder IPC Driver Selftest" + depends on ANDROID_BINDER_IPC + ---help--- + This feature allows binder selftest to run. + + Binder selftest checks the allocation and free of binder buffers + exhaustively with combinations of various buffer sizes and + alignments. + config ASHMEM bool "Enable the Anonymous Shared Memory Subsystem" default n @@ -126,6 +148,12 @@ config ONESHOT_SYNC_USER help Provide a userspace API for creating oneshot sync objects. +config ANDROID_WHETSTONE + bool "Android Whetstone" + default N + ---help--- + report to whetstone the memory state when reach target limit value. + source "drivers/staging/android/ion/Kconfig" source "drivers/staging/android/fiq_debugger/Kconfig" diff --git a/drivers/staging/android/Makefile b/drivers/staging/android/Makefile index a6cf4808234dc..0ed34e2873f07 100644 --- a/drivers/staging/android/Makefile +++ b/drivers/staging/android/Makefile @@ -3,11 +3,13 @@ ccflags-y += -I$(src) # needed for trace events obj-y += ion/ obj-$(CONFIG_FIQ_DEBUGGER) += fiq_debugger/ -obj-$(CONFIG_ANDROID_BINDER_IPC) += binder.o +obj-$(CONFIG_ANDROID_BINDER_IPC) += binder.o binder_alloc.o +obj-$(CONFIG_ANDROID_BINDER_IPC_SELFTEST) += binder_alloc_selftest.o obj-$(CONFIG_ASHMEM) += ashmem.o obj-$(CONFIG_ANDROID_LOGGER) += logger.o obj-$(CONFIG_ANDROID_TIMED_OUTPUT) += timed_output.o obj-$(CONFIG_ANDROID_TIMED_GPIO) += timed_gpio.o +obj-$(CONFIG_ANDROID_WHETSTONE) += memsw_state.o obj-$(CONFIG_ANDROID_LOW_MEMORY_KILLER) += lowmemorykiller.o obj-$(CONFIG_SYNC) += sync.o obj-$(CONFIG_SW_SYNC) += sw_sync.o diff --git a/drivers/staging/android/ashmem.c b/drivers/staging/android/ashmem.c index 8cb5d4e4d45b5..ea356c961b425 100644 --- a/drivers/staging/android/ashmem.c +++ b/drivers/staging/android/ashmem.c @@ -396,6 +396,7 @@ static int ashmem_mmap(struct file *file, struct vm_area_struct *vma) ret = PTR_ERR(vmfile); goto out; } + vmfile->f_mode |= FMODE_LSEEK; asma->file = vmfile; } get_file(asma->file); @@ -757,10 +758,12 @@ static long ashmem_ioctl(struct file *file, unsigned int cmd, unsigned long arg) break; case ASHMEM_SET_SIZE: ret = -EINVAL; + mutex_lock(&ashmem_mutex); if (!asma->file) { ret = 0; asma->size = (size_t) arg; } + mutex_unlock(&ashmem_mutex); break; case ASHMEM_GET_SIZE: ret = asma->size; diff --git a/drivers/staging/android/binder.c b/drivers/staging/android/binder.c index 4bcab3a89acce..299d78d2e9c3b 100644 --- a/drivers/staging/android/binder.c +++ b/drivers/staging/android/binder.c @@ -15,6 +15,40 @@ * */ +/* + * Locking overview + * + * There are 3 main spinlocks which must be acquired in the + * order shown: + * + * 1) proc->outer_lock : protects binder_ref + * binder_proc_lock() and binder_proc_unlock() are + * used to acq/rel. + * 2) node->lock : protects most fields of binder_node. + * binder_node_lock() and binder_node_unlock() are + * used to acq/rel + * 3) proc->inner_lock : protects the thread and node lists + * (proc->threads, proc->waiting_threads, proc->nodes) + * and all todo lists associated with the binder_proc + * (proc->todo, thread->todo, proc->delivered_death and + * node->async_todo), as well as thread->transaction_stack + * binder_inner_proc_lock() and binder_inner_proc_unlock() + * are used to acq/rel + * + * Any lock under procA must never be nested under any lock at the same + * level or below on procB. + * + * Functions that require a lock held on entry indicate which lock + * in the suffix of the function name: + * + * foo_olocked() : requires node->outer_lock + * foo_nlocked() : requires node->lock + * foo_ilocked() : requires proc->inner_lock + * foo_oilocked(): requires proc->outer_lock and proc->inner_lock + * foo_nilocked(): requires node->lock and proc->inner_lock + * ... + */ + #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt #include @@ -24,7 +58,6 @@ #include #include #include -#include #include #include #include @@ -34,27 +67,27 @@ #include #include #include -#include -#include #include #include +#include #include "binder.h" +#include "binder_alloc.h" #include "binder_trace.h" -static DEFINE_MUTEX(binder_main_lock); +static HLIST_HEAD(binder_deferred_list); static DEFINE_MUTEX(binder_deferred_lock); -static DEFINE_MUTEX(binder_mmap_lock); +static HLIST_HEAD(binder_devices); static HLIST_HEAD(binder_procs); -static HLIST_HEAD(binder_deferred_list); +static DEFINE_MUTEX(binder_procs_lock); + static HLIST_HEAD(binder_dead_nodes); +static DEFINE_SPINLOCK(binder_dead_nodes_lock); static struct dentry *binder_debugfs_dir_entry_root; static struct dentry *binder_debugfs_dir_entry_proc; -static struct binder_node *binder_context_mgr_node; -static kuid_t binder_context_mgr_uid = INVALID_UID; -static int binder_last_id; +static atomic_t binder_last_id; static struct workqueue_struct *binder_deferred_workqueue; #define BINDER_DEBUG_ENTRY(name) \ @@ -101,16 +134,15 @@ enum { BINDER_DEBUG_TRANSACTION_COMPLETE = 1U << 10, BINDER_DEBUG_FREE_BUFFER = 1U << 11, BINDER_DEBUG_INTERNAL_REFS = 1U << 12, - BINDER_DEBUG_BUFFER_ALLOC = 1U << 13, - BINDER_DEBUG_PRIORITY_CAP = 1U << 14, - BINDER_DEBUG_BUFFER_ALLOC_ASYNC = 1U << 15, + BINDER_DEBUG_PRIORITY_CAP = 1U << 13, + BINDER_DEBUG_SPINLOCKS = 1U << 14, }; static uint32_t binder_debug_mask = BINDER_DEBUG_USER_ERROR | BINDER_DEBUG_FAILED_TRANSACTION | BINDER_DEBUG_DEAD_TRANSACTION; module_param_named(debug_mask, binder_debug_mask, uint, S_IWUSR | S_IRUGO); -static bool binder_debug_no_lock; -module_param_named(proc_no_lock, binder_debug_no_lock, bool, S_IWUSR | S_IRUGO); +static char *binder_devices_param = CONFIG_ANDROID_BINDER_DEVICES; +module_param_named(devices, binder_devices_param, charp, S_IRUGO); static DECLARE_WAIT_QUEUE_HEAD(binder_user_error_wait); static int binder_stop_on_user_error; @@ -142,6 +174,17 @@ module_param_call(stop_on_user_error, binder_set_stop_on_user_error, binder_stop_on_user_error = 2; \ } while (0) +#define to_flat_binder_object(hdr) \ + container_of(hdr, struct flat_binder_object, hdr) + +#define to_binder_fd_object(hdr) container_of(hdr, struct binder_fd_object, hdr) + +#define to_binder_buffer_object(hdr) \ + container_of(hdr, struct binder_buffer_object, hdr) + +#define to_binder_fd_array_object(hdr) \ + container_of(hdr, struct binder_fd_array_object, hdr) + enum binder_stat_types { BINDER_STAT_PROC, BINDER_STAT_THREAD, @@ -154,26 +197,27 @@ enum binder_stat_types { }; struct binder_stats { - int br[_IOC_NR(BR_FAILED_REPLY) + 1]; - int bc[_IOC_NR(BC_DEAD_BINDER_DONE) + 1]; - int obj_created[BINDER_STAT_COUNT]; - int obj_deleted[BINDER_STAT_COUNT]; + atomic_t br[_IOC_NR(BR_FAILED_REPLY) + 1]; + atomic_t bc[_IOC_NR(BC_REPLY_SG) + 1]; + atomic_t obj_created[BINDER_STAT_COUNT]; + atomic_t obj_deleted[BINDER_STAT_COUNT]; }; static struct binder_stats binder_stats; static inline void binder_stats_deleted(enum binder_stat_types type) { - binder_stats.obj_deleted[type]++; + atomic_inc(&binder_stats.obj_deleted[type]); } static inline void binder_stats_created(enum binder_stat_types type) { - binder_stats.obj_created[type]++; + atomic_inc(&binder_stats.obj_created[type]); } struct binder_transaction_log_entry { int debug_id; + int debug_id_done; int call_type; int from_proc; int from_thread; @@ -183,10 +227,14 @@ struct binder_transaction_log_entry { int to_node; int data_size; int offsets_size; + int return_error_line; + uint32_t return_error; + uint32_t return_error_param; + const char *context_name; }; struct binder_transaction_log { - int next; - int full; + atomic_t cur; + bool full; struct binder_transaction_log_entry entry[32]; }; static struct binder_transaction_log binder_transaction_log; @@ -196,22 +244,50 @@ static struct binder_transaction_log_entry *binder_transaction_log_add( struct binder_transaction_log *log) { struct binder_transaction_log_entry *e; + unsigned int cur = atomic_inc_return(&log->cur); - e = &log->entry[log->next]; - memset(e, 0, sizeof(*e)); - log->next++; - if (log->next == ARRAY_SIZE(log->entry)) { - log->next = 0; + if (cur >= ARRAY_SIZE(log->entry)) log->full = 1; - } + e = &log->entry[cur % ARRAY_SIZE(log->entry)]; + WRITE_ONCE(e->debug_id_done, 0); + /* + * write-barrier to synchronize access to e->debug_id_done. + * We make sure the initialized 0 value is seen before + * memset() other fields are zeroed by memset. + */ + smp_wmb(); + memset(e, 0, sizeof(*e)); return e; } +struct binder_context { + struct binder_node *binder_context_mgr_node; + struct mutex context_mgr_node_lock; + + kuid_t binder_context_mgr_uid; + const char *name; +}; + +struct binder_device { + struct hlist_node hlist; + struct miscdevice miscdev; + struct binder_context context; +}; + +/** + * struct binder_work - work enqueued on a worklist + * @entry: node enqueued on list + * @type: type of work to be performed + * + * There are separate work lists for proc, thread, and node (async). + */ struct binder_work { struct list_head entry; + enum { BINDER_WORK_TRANSACTION = 1, BINDER_WORK_TRANSACTION_COMPLETE, + BINDER_WORK_RETURN_ERROR, BINDER_WORK_NODE, BINDER_WORK_DEAD_BINDER, BINDER_WORK_DEAD_BINDER_AND_CLEAR, @@ -219,8 +295,76 @@ struct binder_work { } type; }; +struct binder_error { + struct binder_work work; + uint32_t cmd; +}; + +/** + * struct binder_node - binder node bookkeeping + * @debug_id: unique ID for debugging + * (invariant after initialized) + * @lock: lock for node fields + * @work: worklist element for node work + * (protected by @proc->inner_lock) + * @rb_node: element for proc->nodes tree + * (protected by @proc->inner_lock) + * @dead_node: element for binder_dead_nodes list + * (protected by binder_dead_nodes_lock) + * @proc: binder_proc that owns this node + * (invariant after initialized) + * @refs: list of references on this node + * (protected by @lock) + * @internal_strong_refs: used to take strong references when + * initiating a transaction + * (protected by @proc->inner_lock if @proc + * and by @lock) + * @local_weak_refs: weak user refs from local process + * (protected by @proc->inner_lock if @proc + * and by @lock) + * @local_strong_refs: strong user refs from local process + * (protected by @proc->inner_lock if @proc + * and by @lock) + * @tmp_refs: temporary kernel refs + * (protected by @proc->inner_lock while @proc + * is valid, and by binder_dead_nodes_lock + * if @proc is NULL. During inc/dec and node release + * it is also protected by @lock to provide safety + * as the node dies and @proc becomes NULL) + * @ptr: userspace pointer for node + * (invariant, no lock needed) + * @cookie: userspace cookie for node + * (invariant, no lock needed) + * @has_strong_ref: userspace notified of strong ref + * (protected by @proc->inner_lock if @proc + * and by @lock) + * @pending_strong_ref: userspace has acked notification of strong ref + * (protected by @proc->inner_lock if @proc + * and by @lock) + * @has_weak_ref: userspace notified of weak ref + * (protected by @proc->inner_lock if @proc + * and by @lock) + * @pending_weak_ref: userspace has acked notification of weak ref + * (protected by @proc->inner_lock if @proc + * and by @lock) + * @has_async_transaction: async transaction to node in progress + * (protected by @lock) + * @sched_policy: minimum scheduling policy for node + * (invariant after initialized) + * @accept_fds: file descriptor operations supported for node + * (invariant after initialized) + * @min_priority: minimum scheduling priority + * (invariant after initialized) + * @inherit_rt: inherit RT scheduling policy from caller + * (invariant after initialized) + * @async_todo: list of async work items + * (protected by @proc->inner_lock) + * + * Bookkeeping structure for binder nodes. + */ struct binder_node { int debug_id; + spinlock_t lock; struct binder_work work; union { struct rb_node rb_node; @@ -231,87 +375,185 @@ struct binder_node { int internal_strong_refs; int local_weak_refs; int local_strong_refs; + int tmp_refs; binder_uintptr_t ptr; binder_uintptr_t cookie; - unsigned has_strong_ref:1; - unsigned pending_strong_ref:1; - unsigned has_weak_ref:1; - unsigned pending_weak_ref:1; - unsigned has_async_transaction:1; - unsigned accept_fds:1; - unsigned min_priority:8; + struct { + /* + * bitfield elements protected by + * proc inner_lock + */ + u8 has_strong_ref:1; + u8 pending_strong_ref:1; + u8 has_weak_ref:1; + u8 pending_weak_ref:1; + }; + struct { + /* + * invariant after initialization + */ + u8 sched_policy:2; + u8 inherit_rt:1; + u8 accept_fds:1; + u8 min_priority; + }; + bool has_async_transaction; struct list_head async_todo; }; struct binder_ref_death { + /** + * @work: worklist element for death notifications + * (protected by inner_lock of the proc that + * this ref belongs to) + */ struct binder_work work; binder_uintptr_t cookie; }; +/** + * struct binder_ref_data - binder_ref counts and id + * @debug_id: unique ID for the ref + * @desc: unique userspace handle for ref + * @strong: strong ref count (debugging only if not locked) + * @weak: weak ref count (debugging only if not locked) + * + * Structure to hold ref count and ref id information. Since + * the actual ref can only be accessed with a lock, this structure + * is used to return information about the ref to callers of + * ref inc/dec functions. + */ +struct binder_ref_data { + int debug_id; + uint32_t desc; + int strong; + int weak; +}; + +/** + * struct binder_ref - struct to track references on nodes + * @data: binder_ref_data containing id, handle, and current refcounts + * @rb_node_desc: node for lookup by @data.desc in proc's rb_tree + * @rb_node_node: node for lookup by @node in proc's rb_tree + * @node_entry: list entry for node->refs list in target node + * (protected by @node->lock) + * @proc: binder_proc containing ref + * @node: binder_node of target node. When cleaning up a + * ref for deletion in binder_cleanup_ref, a non-NULL + * @node indicates the node must be freed + * @death: pointer to death notification (ref_death) if requested + * (protected by @node->lock) + * + * Structure to track references from procA to target node (on procB). This + * structure is unsafe to access without holding @proc->outer_lock. + */ struct binder_ref { /* Lookups needed: */ /* node + proc => ref (transaction) */ /* desc + proc => ref (transaction, inc/dec ref) */ /* node => refs + procs (proc exit) */ - int debug_id; + struct binder_ref_data data; struct rb_node rb_node_desc; struct rb_node rb_node_node; struct hlist_node node_entry; struct binder_proc *proc; struct binder_node *node; - uint32_t desc; - int strong; - int weak; struct binder_ref_death *death; }; -struct binder_buffer { - struct list_head entry; /* free and allocated entries by address */ - struct rb_node rb_node; /* free entry by size or allocated entry */ - /* by address */ - unsigned free:1; - unsigned allow_user_free:1; - unsigned async_transaction:1; - unsigned debug_id:29; - - struct binder_transaction *transaction; - - struct binder_node *target_node; - size_t data_size; - size_t offsets_size; - uint8_t data[0]; -}; - enum binder_deferred_state { BINDER_DEFERRED_PUT_FILES = 0x01, BINDER_DEFERRED_FLUSH = 0x02, BINDER_DEFERRED_RELEASE = 0x04, }; +/** + * struct binder_priority - scheduler policy and priority + * @sched_policy scheduler policy + * @prio [100..139] for SCHED_NORMAL, [0..99] for FIFO/RT + * + * The binder driver supports inheriting the following scheduler policies: + * SCHED_NORMAL + * SCHED_BATCH + * SCHED_FIFO + * SCHED_RR + */ +struct binder_priority { + unsigned int sched_policy; + int prio; +}; + +/** + * struct binder_proc - binder process bookkeeping + * @proc_node: element for binder_procs list + * @threads: rbtree of binder_threads in this proc + * (protected by @inner_lock) + * @nodes: rbtree of binder nodes associated with + * this proc ordered by node->ptr + * (protected by @inner_lock) + * @refs_by_desc: rbtree of refs ordered by ref->desc + * (protected by @outer_lock) + * @refs_by_node: rbtree of refs ordered by ref->node + * (protected by @outer_lock) + * @waiting_threads: threads currently waiting for proc work + * (protected by @inner_lock) + * @pid PID of group_leader of process + * (invariant after initialized) + * @tsk task_struct for group_leader of process + * (invariant after initialized) + * @files files_struct for process + * (invariant after initialized) + * @deferred_work_node: element for binder_deferred_list + * (protected by binder_deferred_lock) + * @deferred_work: bitmap of deferred work to perform + * (protected by binder_deferred_lock) + * @is_dead: process is dead and awaiting free + * when outstanding transactions are cleaned up + * (protected by @inner_lock) + * @todo: list of work for this process + * (protected by @inner_lock) + * @wait: wait queue head to wait for proc work + * (invariant after initialized) + * @stats: per-process binder statistics + * (atomics, no lock needed) + * @delivered_death: list of delivered death notification + * (protected by @inner_lock) + * @max_threads: cap on number of binder threads + * (protected by @inner_lock) + * @requested_threads: number of binder threads requested but not + * yet started. In current implementation, can + * only be 0 or 1. + * (protected by @inner_lock) + * @requested_threads_started: number binder threads started + * (protected by @inner_lock) + * @tmp_ref: temporary reference to indicate proc is in use + * (protected by @inner_lock) + * @default_priority: default scheduler priority + * (invariant after initialized) + * @debugfs_entry: debugfs node + * @alloc: binder allocator bookkeeping + * @context: binder_context for this proc + * (invariant after initialized) + * @inner_lock: can nest under outer_lock and/or node lock + * @outer_lock: no nesting under innor or node lock + * Lock order: 1) outer, 2) node, 3) inner + * + * Bookkeeping structure for binder processes + */ struct binder_proc { struct hlist_node proc_node; struct rb_root threads; struct rb_root nodes; struct rb_root refs_by_desc; struct rb_root refs_by_node; + struct list_head waiting_threads; int pid; - struct vm_area_struct *vma; - struct mm_struct *vma_vm_mm; struct task_struct *tsk; struct files_struct *files; struct hlist_node deferred_work_node; int deferred_work; - void *buffer; - ptrdiff_t user_buffer_offset; - - struct list_head buffers; - struct rb_root free_buffers; - struct rb_root allocated_buffers; - size_t free_async_space; + bool is_dead; - struct page **pages; - size_t buffer_size; - uint32_t buffer_free; struct list_head todo; wait_queue_head_t wait; struct binder_stats stats; @@ -319,9 +561,13 @@ struct binder_proc { int max_threads; int requested_threads; int requested_threads_started; - int ready_threads; - long default_priority; + int tmp_ref; + struct binder_priority default_priority; struct dentry *debugfs_entry; + struct binder_alloc alloc; + struct binder_context *context; + spinlock_t inner_lock; + spinlock_t outer_lock; }; enum { @@ -330,22 +576,60 @@ enum { BINDER_LOOPER_STATE_EXITED = 0x04, BINDER_LOOPER_STATE_INVALID = 0x08, BINDER_LOOPER_STATE_WAITING = 0x10, - BINDER_LOOPER_STATE_NEED_RETURN = 0x20 + BINDER_LOOPER_STATE_POLL = 0x20, }; +/** + * struct binder_thread - binder thread bookkeeping + * @proc: binder process for this thread + * (invariant after initialization) + * @rb_node: element for proc->threads rbtree + * (protected by @proc->inner_lock) + * @waiting_thread_node: element for @proc->waiting_threads list + * (protected by @proc->inner_lock) + * @pid: PID for this thread + * (invariant after initialization) + * @looper: bitmap of looping state + * (only accessed by this thread) + * @looper_needs_return: looping thread needs to exit driver + * (no lock needed) + * @transaction_stack: stack of in-progress transactions for this thread + * (protected by @proc->inner_lock) + * @todo: list of work to do for this thread + * (protected by @proc->inner_lock) + * @return_error: transaction errors reported by this thread + * (only accessed by this thread) + * @reply_error: transaction errors reported by target thread + * (protected by @proc->inner_lock) + * @wait: wait queue for thread work + * @stats: per-thread statistics + * (atomics, no lock needed) + * @tmp_ref: temporary reference to indicate thread is in use + * (atomic since @proc->inner_lock cannot + * always be acquired) + * @is_dead: thread is dead and awaiting free + * when outstanding transactions are cleaned up + * (protected by @proc->inner_lock) + * @task: struct task_struct for this thread + * + * Bookkeeping structure for binder threads. + */ struct binder_thread { struct binder_proc *proc; struct rb_node rb_node; + struct list_head waiting_thread_node; int pid; - int looper; + int looper; /* only modified by this thread */ + bool looper_need_return; /* can be written by other thread */ struct binder_transaction *transaction_stack; struct list_head todo; - uint32_t return_error; /* Write failed, return error code in read buf */ - uint32_t return_error2; /* Write failed, return error code in read */ - /* buffer. Used when sending a reply to a dead process that */ - /* we are also waiting on */ + struct binder_error return_error; + struct binder_error reply_error; wait_queue_head_t wait; struct binder_stats stats; + atomic_t tmp_ref; + bool is_dead; + struct task_struct *task; }; struct binder_transaction { @@ -362,13 +646,257 @@ struct binder_transaction { struct binder_buffer *buffer; unsigned int code; unsigned int flags; - long priority; - long saved_priority; + struct binder_priority priority; + struct binder_priority saved_priority; + bool set_priority_called; kuid_t sender_euid; + /** + * @lock: protects @from, @to_proc, and @to_thread + * + * @from, @to_proc, and @to_thread can be set to NULL + * during thread teardown + */ + spinlock_t lock; }; +/** + * binder_proc_lock() - Acquire outer lock for given binder_proc + * @proc: struct binder_proc to acquire + * + * Acquires proc->outer_lock. Used to protect binder_ref + * structures associated with the given proc. + */ +#define binder_proc_lock(proc) _binder_proc_lock(proc, __LINE__) +static void +_binder_proc_lock(struct binder_proc *proc, int line) +{ + binder_debug(BINDER_DEBUG_SPINLOCKS, + "%s: line=%d\n", __func__, line); + spin_lock(&proc->outer_lock); +} + +/** + * binder_proc_unlock() - Release spinlock for given binder_proc + * @proc: struct binder_proc to acquire + * + * Release lock acquired via binder_proc_lock() + */ +#define binder_proc_unlock(_proc) _binder_proc_unlock(_proc, __LINE__) +static void +_binder_proc_unlock(struct binder_proc *proc, int line) +{ + binder_debug(BINDER_DEBUG_SPINLOCKS, + "%s: line=%d\n", __func__, line); + spin_unlock(&proc->outer_lock); +} + +/** + * binder_inner_proc_lock() - Acquire inner lock for given binder_proc + * @proc: struct binder_proc to acquire + * + * Acquires proc->inner_lock. Used to protect todo lists + */ +#define binder_inner_proc_lock(proc) _binder_inner_proc_lock(proc, __LINE__) +static void +_binder_inner_proc_lock(struct binder_proc *proc, int line) +{ + binder_debug(BINDER_DEBUG_SPINLOCKS, + "%s: line=%d\n", __func__, line); + spin_lock(&proc->inner_lock); +} + +/** + * binder_inner_proc_unlock() - Release inner lock for given binder_proc + * @proc: struct binder_proc to acquire + * + * Release lock acquired via binder_inner_proc_lock() + */ +#define binder_inner_proc_unlock(proc) _binder_inner_proc_unlock(proc, __LINE__) +static void +_binder_inner_proc_unlock(struct binder_proc *proc, int line) +{ + binder_debug(BINDER_DEBUG_SPINLOCKS, + "%s: line=%d\n", __func__, line); + spin_unlock(&proc->inner_lock); +} + +/** + * binder_node_lock() - Acquire spinlock for given binder_node + * @node: struct binder_node to acquire + * + * Acquires node->lock. Used to protect binder_node fields + */ +#define binder_node_lock(node) _binder_node_lock(node, __LINE__) +static void +_binder_node_lock(struct binder_node *node, int line) +{ + binder_debug(BINDER_DEBUG_SPINLOCKS, + "%s: line=%d\n", __func__, line); + spin_lock(&node->lock); +} + +/** + * binder_node_unlock() - Release spinlock for given binder_proc + * @node: struct binder_node to acquire + * + * Release lock acquired via binder_node_lock() + */ +#define binder_node_unlock(node) _binder_node_unlock(node, __LINE__) +static void +_binder_node_unlock(struct binder_node *node, int line) +{ + binder_debug(BINDER_DEBUG_SPINLOCKS, + "%s: line=%d\n", __func__, line); + spin_unlock(&node->lock); +} + +/** + * binder_node_inner_lock() - Acquire node and inner locks + * @node: struct binder_node to acquire + * + * Acquires node->lock. If node->proc also acquires + * proc->inner_lock. Used to protect binder_node fields + */ +#define binder_node_inner_lock(node) _binder_node_inner_lock(node, __LINE__) +static void +_binder_node_inner_lock(struct binder_node *node, int line) +{ + binder_debug(BINDER_DEBUG_SPINLOCKS, + "%s: line=%d\n", __func__, line); + spin_lock(&node->lock); + if (node->proc) + binder_inner_proc_lock(node->proc); +} + +/** + * binder_node_unlock() - Release node and inner locks + * @node: struct binder_node to acquire + * + * Release lock acquired via binder_node_lock() + */ +#define binder_node_inner_unlock(node) _binder_node_inner_unlock(node, __LINE__) +static void +_binder_node_inner_unlock(struct binder_node *node, int line) +{ + struct binder_proc *proc = node->proc; + + binder_debug(BINDER_DEBUG_SPINLOCKS, + "%s: line=%d\n", __func__, line); + if (proc) + binder_inner_proc_unlock(proc); + spin_unlock(&node->lock); +} + +static bool binder_worklist_empty_ilocked(struct list_head *list) +{ + return list_empty(list); +} + +/** + * binder_worklist_empty() - Check if no items on the work list + * @proc: binder_proc associated with list + * @list: list to check + * + * Return: true if there are no items on list, else false + */ +static bool binder_worklist_empty(struct binder_proc *proc, + struct list_head *list) +{ + bool ret; + + binder_inner_proc_lock(proc); + ret = binder_worklist_empty_ilocked(list); + binder_inner_proc_unlock(proc); + return ret; +} + +static void +binder_enqueue_work_ilocked(struct binder_work *work, + struct list_head *target_list) +{ + BUG_ON(target_list == NULL); + BUG_ON(work->entry.next && !list_empty(&work->entry)); + list_add_tail(&work->entry, target_list); +} + +/** + * binder_enqueue_work() - Add an item to the work list + * @proc: binder_proc associated with list + * @work: struct binder_work to add to list + * @target_list: list to add work to + * + * Adds the work to the specified list. Asserts that work + * is not already on a list. + */ +static void +binder_enqueue_work(struct binder_proc *proc, + struct binder_work *work, + struct list_head *target_list) +{ + binder_inner_proc_lock(proc); + binder_enqueue_work_ilocked(work, target_list); + binder_inner_proc_unlock(proc); +} + +static void +binder_dequeue_work_ilocked(struct binder_work *work) +{ + list_del_init(&work->entry); +} + +/** + * binder_dequeue_work() - Removes an item from the work list + * @proc: binder_proc associated with list + * @work: struct binder_work to remove from list + * + * Removes the specified work item from whatever list it is on. + * Can safely be called if work is not on any list. + */ +static void +binder_dequeue_work(struct binder_proc *proc, struct binder_work *work) +{ + binder_inner_proc_lock(proc); + binder_dequeue_work_ilocked(work); + binder_inner_proc_unlock(proc); +} + +static struct binder_work *binder_dequeue_work_head_ilocked( + struct list_head *list) +{ + struct binder_work *w; + + w = list_first_entry_or_null(list, struct binder_work, entry); + if (w) + list_del_init(&w->entry); + return w; +} + +/** + * binder_dequeue_work_head() - Dequeues the item at head of list + * @proc: binder_proc associated with list + * @list: list to dequeue head + * + * Removes the head of the list if there are items on the list + * + * Return: pointer dequeued binder_work, NULL if list was empty + */ +static struct binder_work *binder_dequeue_work_head( + struct binder_proc *proc, + struct list_head *list) +{ + struct binder_work *w; + + binder_inner_proc_lock(proc); + w = binder_dequeue_work_head_ilocked(list); + binder_inner_proc_unlock(proc); + return w; +} + static void binder_defer_work(struct binder_proc *proc, enum binder_deferred_state defer); +static void binder_free_thread(struct binder_thread *thread); +static void binder_free_proc(struct binder_proc *proc); +static void binder_inc_node_tmpref_ilocked(struct binder_node *node); static int task_get_unused_fd_flags(struct binder_proc *proc, int flags) { @@ -419,475 +947,330 @@ static long task_close_fd(struct binder_proc *proc, unsigned int fd) return retval; } -static inline void binder_lock(const char *tag) +static bool binder_has_work_ilocked(struct binder_thread *thread, + bool do_proc_work) { - trace_binder_lock(tag); - mutex_lock(&binder_main_lock); - trace_binder_locked(tag); + return !binder_worklist_empty_ilocked(&thread->todo) || + thread->looper_need_return || + (do_proc_work && + !binder_worklist_empty_ilocked(&thread->proc->todo)); } -static inline void binder_unlock(const char *tag) +static bool binder_has_work(struct binder_thread *thread, bool do_proc_work) { - trace_binder_unlock(tag); - mutex_unlock(&binder_main_lock); -} + bool has_work; -static void binder_set_nice(long nice) -{ - long min_nice; + binder_inner_proc_lock(thread->proc); + has_work = binder_has_work_ilocked(thread, do_proc_work); + binder_inner_proc_unlock(thread->proc); - if (can_nice(current, nice)) { - set_user_nice(current, nice); - return; - } - min_nice = rlimit_to_nice(current->signal->rlim[RLIMIT_NICE].rlim_cur); - binder_debug(BINDER_DEBUG_PRIORITY_CAP, - "%d: nice value %ld not allowed use %ld instead\n", - current->pid, nice, min_nice); - set_user_nice(current, min_nice); - if (min_nice <= MAX_NICE) - return; - binder_user_error("%d RLIMIT_NICE not set\n", current->pid); + return has_work; } -static size_t binder_buffer_size(struct binder_proc *proc, - struct binder_buffer *buffer) +static bool binder_available_for_proc_work_ilocked(struct binder_thread *thread) { - if (list_is_last(&buffer->entry, &proc->buffers)) - return proc->buffer + proc->buffer_size - (void *)buffer->data; - return (size_t)list_entry(buffer->entry.next, - struct binder_buffer, entry) - (size_t)buffer->data; + return !thread->transaction_stack && + binder_worklist_empty_ilocked(&thread->todo) && + (thread->looper & (BINDER_LOOPER_STATE_ENTERED | + BINDER_LOOPER_STATE_REGISTERED)); } -static void binder_insert_free_buffer(struct binder_proc *proc, - struct binder_buffer *new_buffer) +static void binder_wakeup_poll_threads_ilocked(struct binder_proc *proc, + bool sync) { - struct rb_node **p = &proc->free_buffers.rb_node; - struct rb_node *parent = NULL; - struct binder_buffer *buffer; - size_t buffer_size; - size_t new_buffer_size; - - BUG_ON(!new_buffer->free); - - new_buffer_size = binder_buffer_size(proc, new_buffer); - - binder_debug(BINDER_DEBUG_BUFFER_ALLOC, - "%d: add free buffer, size %zd, at %pK\n", - proc->pid, new_buffer_size, new_buffer); - - while (*p) { - parent = *p; - buffer = rb_entry(parent, struct binder_buffer, rb_node); - BUG_ON(!buffer->free); - - buffer_size = binder_buffer_size(proc, buffer); + struct rb_node *n; + struct binder_thread *thread; - if (new_buffer_size < buffer_size) - p = &parent->rb_left; - else - p = &parent->rb_right; + for (n = rb_first(&proc->threads); n != NULL; n = rb_next(n)) { + thread = rb_entry(n, struct binder_thread, rb_node); + if (thread->looper & BINDER_LOOPER_STATE_POLL && + binder_available_for_proc_work_ilocked(thread)) { + if (sync) + wake_up_interruptible_sync(&thread->wait); + else + wake_up_interruptible(&thread->wait); + } } - rb_link_node(&new_buffer->rb_node, parent, p); - rb_insert_color(&new_buffer->rb_node, &proc->free_buffers); } -static void binder_insert_allocated_buffer(struct binder_proc *proc, - struct binder_buffer *new_buffer) +/** + * binder_select_thread_ilocked() - selects a thread for doing proc work. + * @proc: process to select a thread from + * + * Note that calling this function moves the thread off the waiting_threads + * list, so it can only be woken up by the caller of this function, or a + * signal. Therefore, callers *should* always wake up the thread this function + * returns. + * + * Return: If there's a thread currently waiting for process work, + * returns that thread. Otherwise returns NULL. + */ +static struct binder_thread * +binder_select_thread_ilocked(struct binder_proc *proc) { - struct rb_node **p = &proc->allocated_buffers.rb_node; - struct rb_node *parent = NULL; - struct binder_buffer *buffer; + struct binder_thread *thread; - BUG_ON(new_buffer->free); + assert_spin_locked(&proc->inner_lock); + thread = list_first_entry_or_null(&proc->waiting_threads, + struct binder_thread, + waiting_thread_node); - while (*p) { - parent = *p; - buffer = rb_entry(parent, struct binder_buffer, rb_node); - BUG_ON(buffer->free); + if (thread) + list_del_init(&thread->waiting_thread_node); - if (new_buffer < buffer) - p = &parent->rb_left; - else if (new_buffer > buffer) - p = &parent->rb_right; - else - BUG(); - } - rb_link_node(&new_buffer->rb_node, parent, p); - rb_insert_color(&new_buffer->rb_node, &proc->allocated_buffers); + return thread; } -static struct binder_buffer *binder_buffer_lookup(struct binder_proc *proc, - uintptr_t user_ptr) +/** + * binder_wakeup_thread_ilocked() - wakes up a thread for doing proc work. + * @proc: process to wake up a thread in + * @thread: specific thread to wake-up (may be NULL) + * @sync: whether to do a synchronous wake-up + * + * This function wakes up a thread in the @proc process. + * The caller may provide a specific thread to wake-up in + * the @thread parameter. If @thread is NULL, this function + * will wake up threads that have called poll(). + * + * Note that for this function to work as expected, callers + * should first call binder_select_thread() to find a thread + * to handle the work (if they don't have a thread already), + * and pass the result into the @thread parameter. + */ +static void binder_wakeup_thread_ilocked(struct binder_proc *proc, + struct binder_thread *thread, + bool sync) { - struct rb_node *n = proc->allocated_buffers.rb_node; - struct binder_buffer *buffer; - struct binder_buffer *kern_ptr; + assert_spin_locked(&proc->inner_lock); - kern_ptr = (struct binder_buffer *)(user_ptr - proc->user_buffer_offset - - offsetof(struct binder_buffer, data)); - - while (n) { - buffer = rb_entry(n, struct binder_buffer, rb_node); - BUG_ON(buffer->free); - - if (kern_ptr < buffer) - n = n->rb_left; - else if (kern_ptr > buffer) - n = n->rb_right; + if (thread) { + if (sync) + wake_up_interruptible_sync(&thread->wait); else - return buffer; + wake_up_interruptible(&thread->wait); + return; } - return NULL; + + /* Didn't find a thread waiting for proc work; this can happen + * in two scenarios: + * 1. All threads are busy handling transactions + * In that case, one of those threads should call back into + * the kernel driver soon and pick up this work. + * 2. Threads are using the (e)poll interface, in which case + * they may be blocked on the waitqueue without having been + * added to waiting_threads. For this case, we just iterate + * over all threads not handling transaction work, and + * wake them all up. We wake all because we don't know whether + * a thread that called into (e)poll is handling non-binder + * work currently. + */ + binder_wakeup_poll_threads_ilocked(proc, sync); } -static int binder_update_page_range(struct binder_proc *proc, int allocate, - void *start, void *end, - struct vm_area_struct *vma) +static void binder_wakeup_proc_ilocked(struct binder_proc *proc) { - void *page_addr; - unsigned long user_page_addr; - struct page **page; - struct mm_struct *mm; - - binder_debug(BINDER_DEBUG_BUFFER_ALLOC, - "%d: %s pages %pK-%pK\n", proc->pid, - allocate ? "allocate" : "free", start, end); + struct binder_thread *thread = binder_select_thread_ilocked(proc); - if (end <= start) - return 0; + binder_wakeup_thread_ilocked(proc, thread, /* sync = */false); +} - trace_binder_update_page_range(proc, allocate, start, end); +static bool is_rt_policy(int policy) +{ + return policy == SCHED_FIFO || policy == SCHED_RR; +} - if (vma) - mm = NULL; - else - mm = get_task_mm(proc->tsk); +static bool is_fair_policy(int policy) +{ + return policy == SCHED_NORMAL || policy == SCHED_BATCH; +} - if (mm) { - down_write(&mm->mmap_sem); - vma = proc->vma; - if (vma && mm != proc->vma_vm_mm) { - pr_err("%d: vma mm and task mm mismatch\n", - proc->pid); - vma = NULL; - } - } +static bool binder_supported_policy(int policy) +{ + return is_fair_policy(policy) || is_rt_policy(policy); +} - if (allocate == 0) - goto free_range; +static int to_userspace_prio(int policy, int kernel_priority) +{ + if (is_fair_policy(policy)) + return PRIO_TO_NICE(kernel_priority); + else + return MAX_USER_RT_PRIO - 1 - kernel_priority; +} - if (vma == NULL) { - pr_err("%d: binder_alloc_buf failed to map pages in userspace, no vma\n", - proc->pid); - goto err_no_vma; - } +static int to_kernel_prio(int policy, int user_priority) +{ + if (is_fair_policy(policy)) + return NICE_TO_PRIO(user_priority); + else + return MAX_USER_RT_PRIO - 1 - user_priority; +} - for (page_addr = start; page_addr < end; page_addr += PAGE_SIZE) { - int ret; +static void binder_do_set_priority(struct task_struct *task, + struct binder_priority desired, + bool verify) +{ + int priority; /* user-space prio value */ + bool has_cap_nice; + unsigned int policy = desired.sched_policy; - page = &proc->pages[(page_addr - proc->buffer) / PAGE_SIZE]; - - BUG_ON(*page); - *page = alloc_page(GFP_KERNEL | __GFP_HIGHMEM | __GFP_ZERO); - if (*page == NULL) { - pr_err("%d: binder_alloc_buf failed for page at %pK\n", - proc->pid, page_addr); - goto err_alloc_page_failed; - } - ret = map_kernel_range_noflush((unsigned long)page_addr, - PAGE_SIZE, PAGE_KERNEL, page); - flush_cache_vmap((unsigned long)page_addr, - (unsigned long)page_addr + PAGE_SIZE); - if (ret != 1) { - pr_err("%d: binder_alloc_buf failed to map page at %pK in kernel\n", - proc->pid, page_addr); - goto err_map_kernel_failed; - } - user_page_addr = - (uintptr_t)page_addr + proc->user_buffer_offset; - ret = vm_insert_page(vma, user_page_addr, page[0]); - if (ret) { - pr_err("%d: binder_alloc_buf failed to map page at %lx in userspace\n", - proc->pid, user_page_addr); - goto err_vm_insert_page_failed; - } - /* vm_insert_page does not seem to increment the refcount */ - } - if (mm) { - up_write(&mm->mmap_sem); - mmput(mm); - } - return 0; + if (task->policy == policy && task->normal_prio == desired.prio) + return; -free_range: - for (page_addr = end - PAGE_SIZE; page_addr >= start; - page_addr -= PAGE_SIZE) { - page = &proc->pages[(page_addr - proc->buffer) / PAGE_SIZE]; - if (vma) - zap_page_range(vma, (uintptr_t)page_addr + - proc->user_buffer_offset, PAGE_SIZE, NULL); -err_vm_insert_page_failed: - unmap_kernel_range((unsigned long)page_addr, PAGE_SIZE); -err_map_kernel_failed: - __free_page(*page); - *page = NULL; -err_alloc_page_failed: - ; - } -err_no_vma: - if (mm) { - up_write(&mm->mmap_sem); - mmput(mm); - } - return -ENOMEM; -} - -static struct binder_buffer *binder_alloc_buf(struct binder_proc *proc, - size_t data_size, - size_t offsets_size, int is_async) -{ - struct rb_node *n = proc->free_buffers.rb_node; - struct binder_buffer *buffer; - size_t buffer_size; - struct rb_node *best_fit = NULL; - void *has_page_addr; - void *end_page_addr; - size_t size; - - if (proc->vma == NULL) { - pr_err("%d: binder_alloc_buf, no vma\n", - proc->pid); - return NULL; - } + has_cap_nice = has_capability_noaudit(task, CAP_SYS_NICE); - size = ALIGN(data_size, sizeof(void *)) + - ALIGN(offsets_size, sizeof(void *)); + priority = to_userspace_prio(policy, desired.prio); - if (size < data_size || size < offsets_size) { - binder_user_error("%d: got transaction with invalid size %zd-%zd\n", - proc->pid, data_size, offsets_size); - return NULL; - } + if (verify && is_rt_policy(policy) && !has_cap_nice) { + long max_rtprio = task_rlimit(task, RLIMIT_RTPRIO); - if (is_async && - proc->free_async_space < size + sizeof(struct binder_buffer)) { - binder_debug(BINDER_DEBUG_BUFFER_ALLOC, - "%d: binder_alloc_buf size %zd failed, no async space left\n", - proc->pid, size); - return NULL; + if (max_rtprio == 0) { + policy = SCHED_NORMAL; + priority = MIN_NICE; + } else if (priority > max_rtprio) { + priority = max_rtprio; + } } - while (n) { - buffer = rb_entry(n, struct binder_buffer, rb_node); - BUG_ON(!buffer->free); - buffer_size = binder_buffer_size(proc, buffer); + if (verify && is_fair_policy(policy) && !has_cap_nice) { + long min_nice = rlimit_to_nice(task_rlimit(task, RLIMIT_NICE)); - if (size < buffer_size) { - best_fit = n; - n = n->rb_left; - } else if (size > buffer_size) - n = n->rb_right; - else { - best_fit = n; - break; + if (min_nice > MAX_NICE) { + binder_user_error("%d RLIMIT_NICE not set\n", + task->pid); + return; + } else if (priority < min_nice) { + priority = min_nice; } } - if (best_fit == NULL) { - pr_err("%d: binder_alloc_buf size %zd failed, no address space\n", - proc->pid, size); - return NULL; - } - if (n == NULL) { - buffer = rb_entry(best_fit, struct binder_buffer, rb_node); - buffer_size = binder_buffer_size(proc, buffer); - } - binder_debug(BINDER_DEBUG_BUFFER_ALLOC, - "%d: binder_alloc_buf size %zd got buffer %pK size %zd\n", - proc->pid, size, buffer, buffer_size); + if (policy != desired.sched_policy || + to_kernel_prio(policy, priority) != desired.prio) + binder_debug(BINDER_DEBUG_PRIORITY_CAP, + "%d: priority %d not allowed, using %d instead\n", + task->pid, desired.prio, + to_kernel_prio(policy, priority)); - has_page_addr = - (void *)(((uintptr_t)buffer->data + buffer_size) & PAGE_MASK); - if (n == NULL) { - if (size + sizeof(struct binder_buffer) + 4 >= buffer_size) - buffer_size = size; /* no room for other buffers */ - else - buffer_size = size + sizeof(struct binder_buffer); - } - end_page_addr = - (void *)PAGE_ALIGN((uintptr_t)buffer->data + buffer_size); - if (end_page_addr > has_page_addr) - end_page_addr = has_page_addr; - if (binder_update_page_range(proc, 1, - (void *)PAGE_ALIGN((uintptr_t)buffer->data), end_page_addr, NULL)) - return NULL; + trace_binder_set_priority(task->tgid, task->pid, task->normal_prio, + to_kernel_prio(policy, priority), + desired.prio); - rb_erase(best_fit, &proc->free_buffers); - buffer->free = 0; - binder_insert_allocated_buffer(proc, buffer); - if (buffer_size != size) { - struct binder_buffer *new_buffer = (void *)buffer->data + size; + /* Set the actual priority */ + if (task->policy != policy || is_rt_policy(policy)) { + struct sched_param params; - list_add(&new_buffer->entry, &buffer->entry); - new_buffer->free = 1; - binder_insert_free_buffer(proc, new_buffer); - } - binder_debug(BINDER_DEBUG_BUFFER_ALLOC, - "%d: binder_alloc_buf size %zd got %pK\n", - proc->pid, size, buffer); - buffer->data_size = data_size; - buffer->offsets_size = offsets_size; - buffer->async_transaction = is_async; - if (is_async) { - proc->free_async_space -= size + sizeof(struct binder_buffer); - binder_debug(BINDER_DEBUG_BUFFER_ALLOC_ASYNC, - "%d: binder_alloc_buf size %zd async free %zd\n", - proc->pid, size, proc->free_async_space); - } + params.sched_priority = is_rt_policy(policy) ? priority : 0; - return buffer; + sched_setscheduler_nocheck(task, + policy | SCHED_RESET_ON_FORK, + ¶ms); + } + if (is_fair_policy(policy)) + set_user_nice(task, priority); } -static void *buffer_start_page(struct binder_buffer *buffer) +static void binder_set_priority(struct task_struct *task, + struct binder_priority desired) { - return (void *)((uintptr_t)buffer & PAGE_MASK); + binder_do_set_priority(task, desired, /* verify = */ true); } -static void *buffer_end_page(struct binder_buffer *buffer) +static void binder_restore_priority(struct task_struct *task, + struct binder_priority desired) { - return (void *)(((uintptr_t)(buffer + 1) - 1) & PAGE_MASK); + binder_do_set_priority(task, desired, /* verify = */ false); } -static void binder_delete_free_buffer(struct binder_proc *proc, - struct binder_buffer *buffer) +static void binder_transaction_priority(struct task_struct *task, + struct binder_transaction *t, + struct binder_priority node_prio, + bool inherit_rt) { - struct binder_buffer *prev, *next = NULL; - int free_page_end = 1; - int free_page_start = 1; + struct binder_priority desired_prio = t->priority; - BUG_ON(proc->buffers.next == &buffer->entry); - prev = list_entry(buffer->entry.prev, struct binder_buffer, entry); - BUG_ON(!prev->free); - if (buffer_end_page(prev) == buffer_start_page(buffer)) { - free_page_start = 0; - if (buffer_end_page(prev) == buffer_end_page(buffer)) - free_page_end = 0; - binder_debug(BINDER_DEBUG_BUFFER_ALLOC, - "%d: merge free, buffer %pK share page with %pK\n", - proc->pid, buffer, prev); - } + if (t->set_priority_called) + return; - if (!list_is_last(&buffer->entry, &proc->buffers)) { - next = list_entry(buffer->entry.next, - struct binder_buffer, entry); - if (buffer_start_page(next) == buffer_end_page(buffer)) { - free_page_end = 0; - if (buffer_start_page(next) == - buffer_start_page(buffer)) - free_page_start = 0; - binder_debug(BINDER_DEBUG_BUFFER_ALLOC, - "%d: merge free, buffer %pK share page with %pK\n", - proc->pid, buffer, prev); - } + t->set_priority_called = true; + t->saved_priority.sched_policy = task->policy; + t->saved_priority.prio = task->normal_prio; + + if (!inherit_rt && is_rt_policy(desired_prio.sched_policy)) { + desired_prio.prio = NICE_TO_PRIO(0); + desired_prio.sched_policy = SCHED_NORMAL; } - list_del(&buffer->entry); - if (free_page_start || free_page_end) { - binder_debug(BINDER_DEBUG_BUFFER_ALLOC, - "%d: merge free, buffer %pK do not share page%s%s with %pK or %pK\n", - proc->pid, buffer, free_page_start ? "" : " end", - free_page_end ? "" : " start", prev, next); - binder_update_page_range(proc, 0, free_page_start ? - buffer_start_page(buffer) : buffer_end_page(buffer), - (free_page_end ? buffer_end_page(buffer) : - buffer_start_page(buffer)) + PAGE_SIZE, NULL); + + if (node_prio.prio < t->priority.prio || + (node_prio.prio == t->priority.prio && + node_prio.sched_policy == SCHED_FIFO)) { + /* + * In case the minimum priority on the node is + * higher (lower value), use that priority. If + * the priority is the same, but the node uses + * SCHED_FIFO, prefer SCHED_FIFO, since it can + * run unbounded, unlike SCHED_RR. + */ + desired_prio = node_prio; } + + binder_set_priority(task, desired_prio); } -static void binder_free_buf(struct binder_proc *proc, - struct binder_buffer *buffer) +static struct binder_node *binder_get_node_ilocked(struct binder_proc *proc, + binder_uintptr_t ptr) { - size_t size, buffer_size; + struct rb_node *n = proc->nodes.rb_node; + struct binder_node *node; - buffer_size = binder_buffer_size(proc, buffer); + assert_spin_locked(&proc->inner_lock); - size = ALIGN(buffer->data_size, sizeof(void *)) + - ALIGN(buffer->offsets_size, sizeof(void *)); + while (n) { + node = rb_entry(n, struct binder_node, rb_node); - binder_debug(BINDER_DEBUG_BUFFER_ALLOC, - "%d: binder_free_buf %pK size %zd buffer_size %zd\n", - proc->pid, buffer, size, buffer_size); - - BUG_ON(buffer->free); - BUG_ON(size > buffer_size); - BUG_ON(buffer->transaction != NULL); - BUG_ON((void *)buffer < proc->buffer); - BUG_ON((void *)buffer > proc->buffer + proc->buffer_size); - - if (buffer->async_transaction) { - proc->free_async_space += size + sizeof(struct binder_buffer); - - binder_debug(BINDER_DEBUG_BUFFER_ALLOC_ASYNC, - "%d: binder_free_buf size %zd async free %zd\n", - proc->pid, size, proc->free_async_space); - } - - binder_update_page_range(proc, 0, - (void *)PAGE_ALIGN((uintptr_t)buffer->data), - (void *)(((uintptr_t)buffer->data + buffer_size) & PAGE_MASK), - NULL); - rb_erase(&buffer->rb_node, &proc->allocated_buffers); - buffer->free = 1; - if (!list_is_last(&buffer->entry, &proc->buffers)) { - struct binder_buffer *next = list_entry(buffer->entry.next, - struct binder_buffer, entry); - - if (next->free) { - rb_erase(&next->rb_node, &proc->free_buffers); - binder_delete_free_buffer(proc, next); - } - } - if (proc->buffers.next != &buffer->entry) { - struct binder_buffer *prev = list_entry(buffer->entry.prev, - struct binder_buffer, entry); - - if (prev->free) { - binder_delete_free_buffer(proc, buffer); - rb_erase(&prev->rb_node, &proc->free_buffers); - buffer = prev; + if (ptr < node->ptr) + n = n->rb_left; + else if (ptr > node->ptr) + n = n->rb_right; + else { + /* + * take an implicit weak reference + * to ensure node stays alive until + * call to binder_put_node() + */ + binder_inc_node_tmpref_ilocked(node); + return node; } } - binder_insert_free_buffer(proc, buffer); + return NULL; } static struct binder_node *binder_get_node(struct binder_proc *proc, binder_uintptr_t ptr) { - struct rb_node *n = proc->nodes.rb_node; struct binder_node *node; - while (n) { - node = rb_entry(n, struct binder_node, rb_node); - - if (ptr < node->ptr) - n = n->rb_left; - else if (ptr > node->ptr) - n = n->rb_right; - else - return node; - } - return NULL; + binder_inner_proc_lock(proc); + node = binder_get_node_ilocked(proc, ptr); + binder_inner_proc_unlock(proc); + return node; } -static struct binder_node *binder_new_node(struct binder_proc *proc, - binder_uintptr_t ptr, - binder_uintptr_t cookie) +static struct binder_node *binder_init_node_ilocked( + struct binder_proc *proc, + struct binder_node *new_node, + struct flat_binder_object *fp) { struct rb_node **p = &proc->nodes.rb_node; struct rb_node *parent = NULL; struct binder_node *node; + binder_uintptr_t ptr = fp ? fp->binder : 0; + binder_uintptr_t cookie = fp ? fp->cookie : 0; + __u32 flags = fp ? fp->flags : 0; + s8 priority; + + assert_spin_locked(&proc->inner_lock); while (*p) { + parent = *p; node = rb_entry(parent, struct binder_node, rb_node); @@ -895,39 +1278,87 @@ static struct binder_node *binder_new_node(struct binder_proc *proc, p = &(*p)->rb_left; else if (ptr > node->ptr) p = &(*p)->rb_right; - else - return NULL; + else { + /* + * A matching node is already in + * the rb tree. Abandon the init + * and return it. + */ + binder_inc_node_tmpref_ilocked(node); + return node; + } } - - node = kzalloc(sizeof(*node), GFP_KERNEL); - if (node == NULL) - return NULL; + node = new_node; binder_stats_created(BINDER_STAT_NODE); + node->tmp_refs++; rb_link_node(&node->rb_node, parent, p); rb_insert_color(&node->rb_node, &proc->nodes); - node->debug_id = ++binder_last_id; + node->debug_id = atomic_inc_return(&binder_last_id); node->proc = proc; node->ptr = ptr; node->cookie = cookie; node->work.type = BINDER_WORK_NODE; + priority = flags & FLAT_BINDER_FLAG_PRIORITY_MASK; + node->sched_policy = (flags & FLAT_BINDER_FLAG_SCHED_POLICY_MASK) >> + FLAT_BINDER_FLAG_SCHED_POLICY_SHIFT; + node->min_priority = to_kernel_prio(node->sched_policy, priority); + node->accept_fds = !!(flags & FLAT_BINDER_FLAG_ACCEPTS_FDS); +/* node->inherit_rt = !!(flags & FLAT_BINDER_FLAG_INHERIT_RT);*/ + node->inherit_rt = true; + spin_lock_init(&node->lock); INIT_LIST_HEAD(&node->work.entry); INIT_LIST_HEAD(&node->async_todo); binder_debug(BINDER_DEBUG_INTERNAL_REFS, "%d:%d node %d u%016llx c%016llx created\n", proc->pid, current->pid, node->debug_id, (u64)node->ptr, (u64)node->cookie); + return node; } -static int binder_inc_node(struct binder_node *node, int strong, int internal, - struct list_head *target_list) +static struct binder_node *binder_new_node(struct binder_proc *proc, + struct flat_binder_object *fp) +{ + struct binder_node *node; + struct binder_node *new_node = kzalloc(sizeof(*node), GFP_KERNEL); + + if (!new_node) + return NULL; + binder_inner_proc_lock(proc); + node = binder_init_node_ilocked(proc, new_node, fp); + binder_inner_proc_unlock(proc); + if (node != new_node) + /* + * The node was already added by another thread + */ + kfree(new_node); + + return node; +} + +static void binder_free_node(struct binder_node *node) +{ + kfree(node); + binder_stats_deleted(BINDER_STAT_NODE); +} + +static int binder_inc_node_nilocked(struct binder_node *node, int strong, + int internal, + struct list_head *target_list) { + struct binder_proc *proc = node->proc; + + assert_spin_locked(&node->lock); + if (proc) + assert_spin_locked(&proc->inner_lock); if (strong) { if (internal) { if (target_list == NULL && node->internal_strong_refs == 0 && - !(node == binder_context_mgr_node && - node->has_strong_ref)) { + !(node->proc && + node == node->proc->context-> + binder_context_mgr_node && + node->has_strong_ref)) { pr_err("invalid inc strong node for %d\n", node->debug_id); return -EINVAL; @@ -936,8 +1367,8 @@ static int binder_inc_node(struct binder_node *node, int strong, int internal, } else node->local_strong_refs++; if (!node->has_strong_ref && target_list) { - list_del_init(&node->work.entry); - list_add_tail(&node->work.entry, target_list); + binder_dequeue_work_ilocked(&node->work); + binder_enqueue_work_ilocked(&node->work, target_list); } } else { if (!internal) @@ -948,58 +1379,169 @@ static int binder_inc_node(struct binder_node *node, int strong, int internal, node->debug_id); return -EINVAL; } - list_add_tail(&node->work.entry, target_list); + binder_enqueue_work_ilocked(&node->work, target_list); } } return 0; } -static int binder_dec_node(struct binder_node *node, int strong, int internal) +static int binder_inc_node(struct binder_node *node, int strong, int internal, + struct list_head *target_list) +{ + int ret; + + binder_node_inner_lock(node); + ret = binder_inc_node_nilocked(node, strong, internal, target_list); + binder_node_inner_unlock(node); + + return ret; +} + +static bool binder_dec_node_nilocked(struct binder_node *node, + int strong, int internal) { + struct binder_proc *proc = node->proc; + + assert_spin_locked(&node->lock); + if (proc) + assert_spin_locked(&proc->inner_lock); if (strong) { if (internal) node->internal_strong_refs--; else node->local_strong_refs--; if (node->local_strong_refs || node->internal_strong_refs) - return 0; + return false; } else { if (!internal) node->local_weak_refs--; - if (node->local_weak_refs || !hlist_empty(&node->refs)) - return 0; + if (node->local_weak_refs || node->tmp_refs || + !hlist_empty(&node->refs)) + return false; } - if (node->proc && (node->has_strong_ref || node->has_weak_ref)) { + + if (proc && (node->has_strong_ref || node->has_weak_ref)) { if (list_empty(&node->work.entry)) { - list_add_tail(&node->work.entry, &node->proc->todo); - wake_up_interruptible(&node->proc->wait); + binder_enqueue_work_ilocked(&node->work, &proc->todo); + binder_wakeup_proc_ilocked(proc); } } else { if (hlist_empty(&node->refs) && !node->local_strong_refs && - !node->local_weak_refs) { - list_del_init(&node->work.entry); - if (node->proc) { - rb_erase(&node->rb_node, &node->proc->nodes); + !node->local_weak_refs && !node->tmp_refs) { + if (proc) { + binder_dequeue_work_ilocked(&node->work); + rb_erase(&node->rb_node, &proc->nodes); binder_debug(BINDER_DEBUG_INTERNAL_REFS, "refless node %d deleted\n", node->debug_id); } else { + BUG_ON(!list_empty(&node->work.entry)); + spin_lock(&binder_dead_nodes_lock); + /* + * tmp_refs could have changed so + * check it again + */ + if (node->tmp_refs) { + spin_unlock(&binder_dead_nodes_lock); + return false; + } hlist_del(&node->dead_node); + spin_unlock(&binder_dead_nodes_lock); binder_debug(BINDER_DEBUG_INTERNAL_REFS, "dead node %d deleted\n", node->debug_id); } - kfree(node); - binder_stats_deleted(BINDER_STAT_NODE); + return true; } } + return false; +} - return 0; +static void binder_dec_node(struct binder_node *node, int strong, int internal) +{ + bool free_node; + + binder_node_inner_lock(node); + free_node = binder_dec_node_nilocked(node, strong, internal); + binder_node_inner_unlock(node); + if (free_node) + binder_free_node(node); } +static void binder_inc_node_tmpref_ilocked(struct binder_node *node) +{ + /* + * No call to binder_inc_node() is needed since we + * don't need to inform userspace of any changes to + * tmp_refs + */ + node->tmp_refs++; +} -static struct binder_ref *binder_get_ref(struct binder_proc *proc, - uint32_t desc, bool need_strong_ref) +/** + * binder_inc_node_tmpref() - take a temporary reference on node + * @node: node to reference + * + * Take reference on node to prevent the node from being freed + * while referenced only by a local variable. The inner lock is + * needed to serialize with the node work on the queue (which + * isn't needed after the node is dead). If the node is dead + * (node->proc is NULL), use binder_dead_nodes_lock to protect + * node->tmp_refs against dead-node-only cases where the node + * lock cannot be acquired (eg traversing the dead node list to + * print nodes) + */ +static void binder_inc_node_tmpref(struct binder_node *node) +{ + binder_node_lock(node); + if (node->proc) + binder_inner_proc_lock(node->proc); + else + spin_lock(&binder_dead_nodes_lock); + binder_inc_node_tmpref_ilocked(node); + if (node->proc) + binder_inner_proc_unlock(node->proc); + else + spin_unlock(&binder_dead_nodes_lock); + binder_node_unlock(node); +} + +/** + * binder_dec_node_tmpref() - remove a temporary reference on node + * @node: node to reference + * + * Release temporary reference on node taken via binder_inc_node_tmpref() + */ +static void binder_dec_node_tmpref(struct binder_node *node) +{ + bool free_node; + + binder_node_inner_lock(node); + if (!node->proc) + spin_lock(&binder_dead_nodes_lock); + node->tmp_refs--; + BUG_ON(node->tmp_refs < 0); + if (!node->proc) + spin_unlock(&binder_dead_nodes_lock); + /* + * Call binder_dec_node() to check if all refcounts are 0 + * and cleanup is needed. Calling with strong=0 and internal=1 + * causes no actual reference to be released in binder_dec_node(). + * If that changes, a change is needed here too. + */ + free_node = binder_dec_node_nilocked(node, 0, 1); + binder_node_inner_unlock(node); + if (free_node) + binder_free_node(node); +} + +static void binder_put_node(struct binder_node *node) +{ + binder_dec_node_tmpref(node); +} + +static struct binder_ref *binder_get_ref_olocked(struct binder_proc *proc, + u32 desc, bool need_strong_ref) { struct rb_node *n = proc->refs_by_desc.rb_node; struct binder_ref *ref; @@ -1007,11 +1549,11 @@ static struct binder_ref *binder_get_ref(struct binder_proc *proc, while (n) { ref = rb_entry(n, struct binder_ref, rb_node_desc); - if (desc < ref->desc) { + if (desc < ref->data.desc) { n = n->rb_left; - } else if (desc > ref->desc) { + } else if (desc > ref->data.desc) { n = n->rb_right; - } else if (need_strong_ref && !ref->strong) { + } else if (need_strong_ref && !ref->data.strong) { binder_user_error("tried to use weak ref as strong ref\n"); return NULL; } else { @@ -1021,13 +1563,34 @@ static struct binder_ref *binder_get_ref(struct binder_proc *proc, return NULL; } -static struct binder_ref *binder_get_ref_for_node(struct binder_proc *proc, - struct binder_node *node) +/** + * binder_get_ref_for_node_olocked() - get the ref associated with given node + * @proc: binder_proc that owns the ref + * @node: binder_node of target + * @new_ref: newly allocated binder_ref to be initialized or %NULL + * + * Look up the ref for the given node and return it if it exists + * + * If it doesn't exist and the caller provides a newly allocated + * ref, initialize the fields of the newly allocated ref and insert + * into the given proc rb_trees and node refs list. + * + * Return: the ref for node. It is possible that another thread + * allocated/initialized the ref first in which case the + * returned ref would be different than the passed-in + * new_ref. new_ref must be kfree'd by the caller in + * this case. + */ +static struct binder_ref *binder_get_ref_for_node_olocked( + struct binder_proc *proc, + struct binder_node *node, + struct binder_ref *new_ref) { - struct rb_node *n; + struct binder_context *context = proc->context; struct rb_node **p = &proc->refs_by_node.rb_node; struct rb_node *parent = NULL; - struct binder_ref *ref, *new_ref; + struct binder_ref *ref; + struct rb_node *n; while (*p) { parent = *p; @@ -1040,22 +1603,22 @@ static struct binder_ref *binder_get_ref_for_node(struct binder_proc *proc, else return ref; } - new_ref = kzalloc(sizeof(*ref), GFP_KERNEL); - if (new_ref == NULL) + if (!new_ref) return NULL; + binder_stats_created(BINDER_STAT_REF); - new_ref->debug_id = ++binder_last_id; + new_ref->data.debug_id = atomic_inc_return(&binder_last_id); new_ref->proc = proc; new_ref->node = node; rb_link_node(&new_ref->rb_node_node, parent, p); rb_insert_color(&new_ref->rb_node_node, &proc->refs_by_node); - new_ref->desc = (node == binder_context_mgr_node) ? 0 : 1; + new_ref->data.desc = (node == context->binder_context_mgr_node) ? 0 : 1; for (n = rb_first(&proc->refs_by_desc); n != NULL; n = rb_next(n)) { ref = rb_entry(n, struct binder_ref, rb_node_desc); - if (ref->desc > new_ref->desc) + if (ref->data.desc > new_ref->data.desc) break; - new_ref->desc = ref->desc + 1; + new_ref->data.desc = ref->data.desc + 1; } p = &proc->refs_by_desc.rb_node; @@ -1063,306 +1626,1252 @@ static struct binder_ref *binder_get_ref_for_node(struct binder_proc *proc, parent = *p; ref = rb_entry(parent, struct binder_ref, rb_node_desc); - if (new_ref->desc < ref->desc) + if (new_ref->data.desc < ref->data.desc) p = &(*p)->rb_left; - else if (new_ref->desc > ref->desc) + else if (new_ref->data.desc > ref->data.desc) p = &(*p)->rb_right; else BUG(); } rb_link_node(&new_ref->rb_node_desc, parent, p); rb_insert_color(&new_ref->rb_node_desc, &proc->refs_by_desc); - if (node) { - hlist_add_head(&new_ref->node_entry, &node->refs); - binder_debug(BINDER_DEBUG_INTERNAL_REFS, - "%d new ref %d desc %d for node %d\n", - proc->pid, new_ref->debug_id, new_ref->desc, - node->debug_id); - } else { - binder_debug(BINDER_DEBUG_INTERNAL_REFS, - "%d new ref %d desc %d for dead node\n", - proc->pid, new_ref->debug_id, new_ref->desc); - } + binder_node_lock(node); + hlist_add_head(&new_ref->node_entry, &node->refs); + + binder_debug(BINDER_DEBUG_INTERNAL_REFS, + "%d new ref %d desc %d for node %d\n", + proc->pid, new_ref->data.debug_id, new_ref->data.desc, + node->debug_id); + binder_node_unlock(node); return new_ref; } -static void binder_delete_ref(struct binder_ref *ref) +static void binder_cleanup_ref_olocked(struct binder_ref *ref) { + bool delete_node = false; + binder_debug(BINDER_DEBUG_INTERNAL_REFS, "%d delete ref %d desc %d for node %d\n", - ref->proc->pid, ref->debug_id, ref->desc, + ref->proc->pid, ref->data.debug_id, ref->data.desc, ref->node->debug_id); rb_erase(&ref->rb_node_desc, &ref->proc->refs_by_desc); rb_erase(&ref->rb_node_node, &ref->proc->refs_by_node); - if (ref->strong) - binder_dec_node(ref->node, 1, 1); + + binder_node_inner_lock(ref->node); + if (ref->data.strong) + binder_dec_node_nilocked(ref->node, 1, 1); + hlist_del(&ref->node_entry); - binder_dec_node(ref->node, 0, 1); + delete_node = binder_dec_node_nilocked(ref->node, 0, 1); + binder_node_inner_unlock(ref->node); + /* + * Clear ref->node unless we want the caller to free the node + */ + if (!delete_node) { + /* + * The caller uses ref->node to determine + * whether the node needs to be freed. Clear + * it since the node is still alive. + */ + ref->node = NULL; + } + if (ref->death) { binder_debug(BINDER_DEBUG_DEAD_BINDER, "%d delete ref %d desc %d has death notification\n", - ref->proc->pid, ref->debug_id, ref->desc); - list_del(&ref->death->work.entry); - kfree(ref->death); + ref->proc->pid, ref->data.debug_id, + ref->data.desc); + binder_dequeue_work(ref->proc, &ref->death->work); binder_stats_deleted(BINDER_STAT_DEATH); } - kfree(ref); binder_stats_deleted(BINDER_STAT_REF); } -static int binder_inc_ref(struct binder_ref *ref, int strong, - struct list_head *target_list) +/** + * binder_inc_ref_olocked() - increment the ref for given handle + * @ref: ref to be incremented + * @strong: if true, strong increment, else weak + * @target_list: list to queue node work on + * + * Increment the ref. @ref->proc->outer_lock must be held on entry + * + * Return: 0, if successful, else errno + */ +static int binder_inc_ref_olocked(struct binder_ref *ref, int strong, + struct list_head *target_list) { int ret; if (strong) { - if (ref->strong == 0) { + if (ref->data.strong == 0) { ret = binder_inc_node(ref->node, 1, 1, target_list); if (ret) return ret; } - ref->strong++; + ref->data.strong++; } else { - if (ref->weak == 0) { + if (ref->data.weak == 0) { ret = binder_inc_node(ref->node, 0, 1, target_list); if (ret) return ret; } - ref->weak++; + ref->data.weak++; } return 0; } - -static int binder_dec_ref(struct binder_ref *ref, int strong) +/** + * binder_dec_ref() - dec the ref for given handle + * @ref: ref to be decremented + * @strong: if true, strong decrement, else weak + * + * Decrement the ref. + * + * Return: true if ref is cleaned up and ready to be freed + */ +static bool binder_dec_ref_olocked(struct binder_ref *ref, int strong) { if (strong) { - if (ref->strong == 0) { + if (ref->data.strong == 0) { binder_user_error("%d invalid dec strong, ref %d desc %d s %d w %d\n", - ref->proc->pid, ref->debug_id, - ref->desc, ref->strong, ref->weak); - return -EINVAL; + ref->proc->pid, ref->data.debug_id, + ref->data.desc, ref->data.strong, + ref->data.weak); + return false; } - ref->strong--; - if (ref->strong == 0) { - int ret; + ref->data.strong--; + if (ref->data.strong == 0) + binder_dec_node(ref->node, strong, 1); + } else { + if (ref->data.weak == 0) { + binder_user_error("%d invalid dec weak, ref %d desc %d s %d w %d\n", + ref->proc->pid, ref->data.debug_id, + ref->data.desc, ref->data.strong, + ref->data.weak); + return false; + } + ref->data.weak--; + } + if (ref->data.strong == 0 && ref->data.weak == 0) { + binder_cleanup_ref_olocked(ref); + return true; + } + return false; +} - ret = binder_dec_node(ref->node, strong, 1); - if (ret) - return ret; +/** + * binder_get_node_from_ref() - get the node from the given proc/desc + * @proc: proc containing the ref + * @desc: the handle associated with the ref + * @need_strong_ref: if true, only return node if ref is strong + * @rdata: the id/refcount data for the ref + * + * Given a proc and ref handle, return the associated binder_node + * + * Return: a binder_node or NULL if not found or not strong when strong required + */ +static struct binder_node *binder_get_node_from_ref( + struct binder_proc *proc, + u32 desc, bool need_strong_ref, + struct binder_ref_data *rdata) +{ + struct binder_node *node; + struct binder_ref *ref; + + binder_proc_lock(proc); + ref = binder_get_ref_olocked(proc, desc, need_strong_ref); + if (!ref) + goto err_no_ref; + node = ref->node; + /* + * Take an implicit reference on the node to ensure + * it stays alive until the call to binder_put_node() + */ + binder_inc_node_tmpref(node); + if (rdata) + *rdata = ref->data; + binder_proc_unlock(proc); + + return node; + +err_no_ref: + binder_proc_unlock(proc); + return NULL; +} + +/** + * binder_free_ref() - free the binder_ref + * @ref: ref to free + * + * Free the binder_ref. Free the binder_node indicated by ref->node + * (if non-NULL) and the binder_ref_death indicated by ref->death. + */ +static void binder_free_ref(struct binder_ref *ref) +{ + if (ref->node) + binder_free_node(ref->node); + kfree(ref->death); + kfree(ref); +} + +/** + * binder_update_ref_for_handle() - inc/dec the ref for given handle + * @proc: proc containing the ref + * @desc: the handle associated with the ref + * @increment: true=inc reference, false=dec reference + * @strong: true=strong reference, false=weak reference + * @rdata: the id/refcount data for the ref + * + * Given a proc and ref handle, increment or decrement the ref + * according to "increment" arg. + * + * Return: 0 if successful, else errno + */ +static int binder_update_ref_for_handle(struct binder_proc *proc, + uint32_t desc, bool increment, bool strong, + struct binder_ref_data *rdata) +{ + int ret = 0; + struct binder_ref *ref; + bool delete_ref = false; + + binder_proc_lock(proc); + ref = binder_get_ref_olocked(proc, desc, strong); + if (!ref) { + ret = -EINVAL; + goto err_no_ref; + } + if (increment) + ret = binder_inc_ref_olocked(ref, strong, NULL); + else + delete_ref = binder_dec_ref_olocked(ref, strong); + + if (rdata) + *rdata = ref->data; + binder_proc_unlock(proc); + + if (delete_ref) + binder_free_ref(ref); + return ret; + +err_no_ref: + binder_proc_unlock(proc); + return ret; +} + +/** + * binder_dec_ref_for_handle() - dec the ref for given handle + * @proc: proc containing the ref + * @desc: the handle associated with the ref + * @strong: true=strong reference, false=weak reference + * @rdata: the id/refcount data for the ref + * + * Just calls binder_update_ref_for_handle() to decrement the ref. + * + * Return: 0 if successful, else errno + */ +static int binder_dec_ref_for_handle(struct binder_proc *proc, + uint32_t desc, bool strong, struct binder_ref_data *rdata) +{ + return binder_update_ref_for_handle(proc, desc, false, strong, rdata); +} + + +/** + * binder_inc_ref_for_node() - increment the ref for given proc/node + * @proc: proc containing the ref + * @node: target node + * @strong: true=strong reference, false=weak reference + * @target_list: worklist to use if node is incremented + * @rdata: the id/refcount data for the ref + * + * Given a proc and node, increment the ref. Create the ref if it + * doesn't already exist + * + * Return: 0 if successful, else errno + */ +static int binder_inc_ref_for_node(struct binder_proc *proc, + struct binder_node *node, + bool strong, + struct list_head *target_list, + struct binder_ref_data *rdata) +{ + struct binder_ref *ref; + struct binder_ref *new_ref = NULL; + int ret = 0; + + binder_proc_lock(proc); + ref = binder_get_ref_for_node_olocked(proc, node, NULL); + if (!ref) { + binder_proc_unlock(proc); + new_ref = kzalloc(sizeof(*ref), GFP_KERNEL); + if (!new_ref) + return -ENOMEM; + binder_proc_lock(proc); + ref = binder_get_ref_for_node_olocked(proc, node, new_ref); + } + ret = binder_inc_ref_olocked(ref, strong, target_list); + *rdata = ref->data; + binder_proc_unlock(proc); + if (new_ref && ref != new_ref) + /* + * Another thread created the ref first so + * free the one we allocated + */ + kfree(new_ref); + return ret; +} + +static void binder_pop_transaction_ilocked(struct binder_thread *target_thread, + struct binder_transaction *t) +{ + BUG_ON(!target_thread); + assert_spin_locked(&target_thread->proc->inner_lock); + BUG_ON(target_thread->transaction_stack != t); + BUG_ON(target_thread->transaction_stack->from != target_thread); + target_thread->transaction_stack = + target_thread->transaction_stack->from_parent; + t->from = NULL; +} + +/** + * binder_thread_dec_tmpref() - decrement thread->tmp_ref + * @thread: thread to decrement + * + * A thread needs to be kept alive while being used to create or + * handle a transaction. binder_get_txn_from() is used to safely + * extract t->from from a binder_transaction and keep the thread + * indicated by t->from from being freed. When done with that + * binder_thread, this function is called to decrement the + * tmp_ref and free if appropriate (thread has been released + * and no transaction being processed by the driver) + */ +static void binder_thread_dec_tmpref(struct binder_thread *thread) +{ + /* + * atomic is used to protect the counter value while + * it cannot reach zero or thread->is_dead is false + */ + binder_inner_proc_lock(thread->proc); + atomic_dec(&thread->tmp_ref); + if (thread->is_dead && !atomic_read(&thread->tmp_ref)) { + binder_inner_proc_unlock(thread->proc); + binder_free_thread(thread); + return; + } + binder_inner_proc_unlock(thread->proc); +} + +/** + * binder_proc_dec_tmpref() - decrement proc->tmp_ref + * @proc: proc to decrement + * + * A binder_proc needs to be kept alive while being used to create or + * handle a transaction. proc->tmp_ref is incremented when + * creating a new transaction or the binder_proc is currently in-use + * by threads that are being released. When done with the binder_proc, + * this function is called to decrement the counter and free the + * proc if appropriate (proc has been released, all threads have + * been released and not currenly in-use to process a transaction). + */ +static void binder_proc_dec_tmpref(struct binder_proc *proc) +{ + binder_inner_proc_lock(proc); + proc->tmp_ref--; + if (proc->is_dead && RB_EMPTY_ROOT(&proc->threads) && + !proc->tmp_ref) { + binder_inner_proc_unlock(proc); + binder_free_proc(proc); + return; + } + binder_inner_proc_unlock(proc); +} + +/** + * binder_get_txn_from() - safely extract the "from" thread in transaction + * @t: binder transaction for t->from + * + * Atomically return the "from" thread and increment the tmp_ref + * count for the thread to ensure it stays alive until + * binder_thread_dec_tmpref() is called. + * + * Return: the value of t->from + */ +static struct binder_thread *binder_get_txn_from( + struct binder_transaction *t) +{ + struct binder_thread *from; + + spin_lock(&t->lock); + from = t->from; + if (from) + atomic_inc(&from->tmp_ref); + spin_unlock(&t->lock); + return from; +} + +/** + * binder_get_txn_from_and_acq_inner() - get t->from and acquire inner lock + * @t: binder transaction for t->from + * + * Same as binder_get_txn_from() except it also acquires the proc->inner_lock + * to guarantee that the thread cannot be released while operating on it. + * The caller must call binder_inner_proc_unlock() to release the inner lock + * as well as call binder_dec_thread_txn() to release the reference. + * + * Return: the value of t->from + */ +static struct binder_thread *binder_get_txn_from_and_acq_inner( + struct binder_transaction *t) +{ + struct binder_thread *from; + + from = binder_get_txn_from(t); + if (!from) + return NULL; + binder_inner_proc_lock(from->proc); + if (t->from) { + BUG_ON(from != t->from); + return from; + } + binder_inner_proc_unlock(from->proc); + binder_thread_dec_tmpref(from); + return NULL; +} + +static void binder_free_transaction(struct binder_transaction *t) +{ + if (t->buffer) + t->buffer->transaction = NULL; + kfree(t); + binder_stats_deleted(BINDER_STAT_TRANSACTION); +} + +static void binder_send_failed_reply(struct binder_transaction *t, + uint32_t error_code) +{ + struct binder_thread *target_thread; + struct binder_transaction *next; + + BUG_ON(t->flags & TF_ONE_WAY); + while (1) { + target_thread = binder_get_txn_from_and_acq_inner(t); + if (target_thread) { + binder_debug(BINDER_DEBUG_FAILED_TRANSACTION, + "send failed reply for transaction %d to %d:%d\n", + t->debug_id, + target_thread->proc->pid, + target_thread->pid); + + binder_pop_transaction_ilocked(target_thread, t); + if (target_thread->reply_error.cmd == BR_OK) { + target_thread->reply_error.cmd = error_code; + binder_enqueue_work_ilocked( + &target_thread->reply_error.work, + &target_thread->todo); + wake_up_interruptible(&target_thread->wait); + } else { + WARN(1, "Unexpected reply error: %u\n", + target_thread->reply_error.cmd); + } + binder_inner_proc_unlock(target_thread->proc); + binder_thread_dec_tmpref(target_thread); + binder_free_transaction(t); + return; } + next = t->from_parent; + + binder_debug(BINDER_DEBUG_FAILED_TRANSACTION, + "send failed reply for transaction %d, target dead\n", + t->debug_id); + + binder_free_transaction(t); + if (next == NULL) { + binder_debug(BINDER_DEBUG_DEAD_BINDER, + "reply failed, no target thread at root\n"); + return; + } + t = next; + binder_debug(BINDER_DEBUG_DEAD_BINDER, + "reply failed, no target thread -- retry %d\n", + t->debug_id); + } +} + +/** + * binder_cleanup_transaction() - cleans up undelivered transaction + * @t: transaction that needs to be cleaned up + * @reason: reason the transaction wasn't delivered + * @error_code: error to return to caller (if synchronous call) + */ +static void binder_cleanup_transaction(struct binder_transaction *t, + const char *reason, + uint32_t error_code) +{ + if (t->buffer->target_node && !(t->flags & TF_ONE_WAY)) { + binder_send_failed_reply(t, error_code); } else { - if (ref->weak == 0) { - binder_user_error("%d invalid dec weak, ref %d desc %d s %d w %d\n", - ref->proc->pid, ref->debug_id, - ref->desc, ref->strong, ref->weak); - return -EINVAL; + binder_debug(BINDER_DEBUG_DEAD_TRANSACTION, + "undelivered transaction %d, %s\n", + t->debug_id, reason); + binder_free_transaction(t); + } +} + +/** + * binder_validate_object() - checks for a valid metadata object in a buffer. + * @buffer: binder_buffer that we're parsing. + * @offset: offset in the buffer at which to validate an object. + * + * Return: If there's a valid metadata object at @offset in @buffer, the + * size of that object. Otherwise, it returns zero. + */ +static size_t binder_validate_object(struct binder_buffer *buffer, u64 offset) +{ + /* Check if we can read a header first */ + struct binder_object_header *hdr; + size_t object_size = 0; + + if (offset > buffer->data_size - sizeof(*hdr) || + buffer->data_size < sizeof(*hdr) || + !IS_ALIGNED(offset, sizeof(u32))) + return 0; + + /* Ok, now see if we can read a complete object. */ + hdr = (struct binder_object_header *)(buffer->data + offset); + switch (hdr->type) { + case BINDER_TYPE_BINDER: + case BINDER_TYPE_WEAK_BINDER: + case BINDER_TYPE_HANDLE: + case BINDER_TYPE_WEAK_HANDLE: + object_size = sizeof(struct flat_binder_object); + break; + case BINDER_TYPE_FD: + object_size = sizeof(struct binder_fd_object); + break; + case BINDER_TYPE_PTR: + object_size = sizeof(struct binder_buffer_object); + break; + case BINDER_TYPE_FDA: + object_size = sizeof(struct binder_fd_array_object); + break; + default: + return 0; + } + if (offset <= buffer->data_size - object_size && + buffer->data_size >= object_size) + return object_size; + else + return 0; +} + +/** + * binder_validate_ptr() - validates binder_buffer_object in a binder_buffer. + * @b: binder_buffer containing the object + * @index: index in offset array at which the binder_buffer_object is + * located + * @start: points to the start of the offset array + * @num_valid: the number of valid offsets in the offset array + * + * Return: If @index is within the valid range of the offset array + * described by @start and @num_valid, and if there's a valid + * binder_buffer_object at the offset found in index @index + * of the offset array, that object is returned. Otherwise, + * %NULL is returned. + * Note that the offset found in index @index itself is not + * verified; this function assumes that @num_valid elements + * from @start were previously verified to have valid offsets. + */ +static struct binder_buffer_object *binder_validate_ptr(struct binder_buffer *b, + binder_size_t index, + binder_size_t *start, + binder_size_t num_valid) +{ + struct binder_buffer_object *buffer_obj; + binder_size_t *offp; + + if (index >= num_valid) + return NULL; + + offp = start + index; + buffer_obj = (struct binder_buffer_object *)(b->data + *offp); + if (buffer_obj->hdr.type != BINDER_TYPE_PTR) + return NULL; + + return buffer_obj; +} + +/** + * binder_validate_fixup() - validates pointer/fd fixups happen in order. + * @b: transaction buffer + * @objects_start start of objects buffer + * @buffer: binder_buffer_object in which to fix up + * @offset: start offset in @buffer to fix up + * @last_obj: last binder_buffer_object that we fixed up in + * @last_min_offset: minimum fixup offset in @last_obj + * + * Return: %true if a fixup in buffer @buffer at offset @offset is + * allowed. + * + * For safety reasons, we only allow fixups inside a buffer to happen + * at increasing offsets; additionally, we only allow fixup on the last + * buffer object that was verified, or one of its parents. + * + * Example of what is allowed: + * + * A + * B (parent = A, offset = 0) + * C (parent = A, offset = 16) + * D (parent = C, offset = 0) + * E (parent = A, offset = 32) // min_offset is 16 (C.parent_offset) + * + * Examples of what is not allowed: + * + * Decreasing offsets within the same parent: + * A + * C (parent = A, offset = 16) + * B (parent = A, offset = 0) // decreasing offset within A + * + * Referring to a parent that wasn't the last object or any of its parents: + * A + * B (parent = A, offset = 0) + * C (parent = A, offset = 0) + * C (parent = A, offset = 16) + * D (parent = B, offset = 0) // B is not A or any of A's parents + */ +static bool binder_validate_fixup(struct binder_buffer *b, + binder_size_t *objects_start, + struct binder_buffer_object *buffer, + binder_size_t fixup_offset, + struct binder_buffer_object *last_obj, + binder_size_t last_min_offset) +{ + if (!last_obj) { + /* Nothing to fix up in */ + return false; + } + + while (last_obj != buffer) { + /* + * Safe to retrieve the parent of last_obj, since it + * was already previously verified by the driver. + */ + if ((last_obj->flags & BINDER_BUFFER_FLAG_HAS_PARENT) == 0) + return false; + last_min_offset = last_obj->parent_offset + sizeof(uintptr_t); + last_obj = (struct binder_buffer_object *) + (b->data + *(objects_start + last_obj->parent)); + } + return (fixup_offset >= last_min_offset); +} + +static void binder_transaction_buffer_release(struct binder_proc *proc, + struct binder_buffer *buffer, + binder_size_t *failed_at) +{ + binder_size_t *offp, *off_start, *off_end; + int debug_id = buffer->debug_id; + + binder_debug(BINDER_DEBUG_TRANSACTION, + "%d buffer release %d, size %zd-%zd, failed at %p\n", + proc->pid, buffer->debug_id, + buffer->data_size, buffer->offsets_size, failed_at); + + if (buffer->target_node) + binder_dec_node(buffer->target_node, 1, 0); + + off_start = (binder_size_t *)(buffer->data + + ALIGN(buffer->data_size, sizeof(void *))); + if (failed_at) + off_end = failed_at; + else + off_end = (void *)off_start + buffer->offsets_size; + for (offp = off_start; offp < off_end; offp++) { + struct binder_object_header *hdr; + size_t object_size = binder_validate_object(buffer, *offp); + + if (object_size == 0) { + pr_err("transaction release %d bad object at offset %lld, size %zd\n", + debug_id, (u64)*offp, buffer->data_size); + continue; + } + hdr = (struct binder_object_header *)(buffer->data + *offp); + switch (hdr->type) { + case BINDER_TYPE_BINDER: + case BINDER_TYPE_WEAK_BINDER: { + struct flat_binder_object *fp; + struct binder_node *node; + + fp = to_flat_binder_object(hdr); + node = binder_get_node(proc, fp->binder); + if (node == NULL) { + pr_err("transaction release %d bad node %016llx\n", + debug_id, (u64)fp->binder); + break; + } + binder_debug(BINDER_DEBUG_TRANSACTION, + " node %d u%016llx\n", + node->debug_id, (u64)node->ptr); + binder_dec_node(node, hdr->type == BINDER_TYPE_BINDER, + 0); + binder_put_node(node); + } break; + case BINDER_TYPE_HANDLE: + case BINDER_TYPE_WEAK_HANDLE: { + struct flat_binder_object *fp; + struct binder_ref_data rdata; + int ret; + + fp = to_flat_binder_object(hdr); + ret = binder_dec_ref_for_handle(proc, fp->handle, + hdr->type == BINDER_TYPE_HANDLE, &rdata); + + if (ret) { + pr_err("transaction release %d bad handle %d, ret = %d\n", + debug_id, fp->handle, ret); + break; + } + binder_debug(BINDER_DEBUG_TRANSACTION, + " ref %d desc %d\n", + rdata.debug_id, rdata.desc); + } break; + + case BINDER_TYPE_FD: { + struct binder_fd_object *fp = to_binder_fd_object(hdr); + + binder_debug(BINDER_DEBUG_TRANSACTION, + " fd %d\n", fp->fd); + if (failed_at) + task_close_fd(proc, fp->fd); + } break; + case BINDER_TYPE_PTR: + /* + * Nothing to do here, this will get cleaned up when the + * transaction buffer gets freed + */ + break; + case BINDER_TYPE_FDA: { + struct binder_fd_array_object *fda; + struct binder_buffer_object *parent; + uintptr_t parent_buffer; + u32 *fd_array; + size_t fd_index; + binder_size_t fd_buf_size; + + fda = to_binder_fd_array_object(hdr); + parent = binder_validate_ptr(buffer, fda->parent, + off_start, + offp - off_start); + if (!parent) { + pr_err("transaction release %d bad parent offset", + debug_id); + continue; + } + /* + * Since the parent was already fixed up, convert it + * back to kernel address space to access it + */ + parent_buffer = parent->buffer - + binder_alloc_get_user_buffer_offset( + &proc->alloc); + + fd_buf_size = sizeof(u32) * fda->num_fds; + if (fda->num_fds >= SIZE_MAX / sizeof(u32)) { + pr_err("transaction release %d invalid number of fds (%lld)\n", + debug_id, (u64)fda->num_fds); + continue; + } + if (fd_buf_size > parent->length || + fda->parent_offset > parent->length - fd_buf_size) { + /* No space for all file descriptors here. */ + pr_err("transaction release %d not enough space for %lld fds in buffer\n", + debug_id, (u64)fda->num_fds); + continue; + } + fd_array = (u32 *)(parent_buffer + fda->parent_offset); + for (fd_index = 0; fd_index < fda->num_fds; fd_index++) + task_close_fd(proc, fd_array[fd_index]); + } break; + default: + pr_err("transaction release %d bad object type %x\n", + debug_id, hdr->type); + break; } - ref->weak--; } - if (ref->strong == 0 && ref->weak == 0) - binder_delete_ref(ref); - return 0; } -static void binder_pop_transaction(struct binder_thread *target_thread, - struct binder_transaction *t) +static int binder_translate_binder(struct flat_binder_object *fp, + struct binder_transaction *t, + struct binder_thread *thread) +{ + struct binder_node *node; + struct binder_proc *proc = thread->proc; + struct binder_proc *target_proc = t->to_proc; + struct binder_ref_data rdata; + int ret = 0; + + node = binder_get_node(proc, fp->binder); + if (!node) { + node = binder_new_node(proc, fp); + if (!node) + return -ENOMEM; + } + if (fp->cookie != node->cookie) { + binder_user_error("%d:%d sending u%016llx node %d, cookie mismatch %016llx != %016llx\n", + proc->pid, thread->pid, (u64)fp->binder, + node->debug_id, (u64)fp->cookie, + (u64)node->cookie); + ret = -EINVAL; + goto done; + } + if (security_binder_transfer_binder(proc->tsk, target_proc->tsk)) { + ret = -EPERM; + goto done; + } + + ret = binder_inc_ref_for_node(target_proc, node, + fp->hdr.type == BINDER_TYPE_BINDER, + &thread->todo, &rdata); + if (ret) + goto done; + + if (fp->hdr.type == BINDER_TYPE_BINDER) + fp->hdr.type = BINDER_TYPE_HANDLE; + else + fp->hdr.type = BINDER_TYPE_WEAK_HANDLE; + fp->binder = 0; + fp->handle = rdata.desc; + fp->cookie = 0; + + trace_binder_transaction_node_to_ref(t, node, &rdata); + binder_debug(BINDER_DEBUG_TRANSACTION, + " node %d u%016llx -> ref %d desc %d\n", + node->debug_id, (u64)node->ptr, + rdata.debug_id, rdata.desc); +done: + binder_put_node(node); + return ret; +} + +static int binder_translate_handle(struct flat_binder_object *fp, + struct binder_transaction *t, + struct binder_thread *thread) +{ + struct binder_proc *proc = thread->proc; + struct binder_proc *target_proc = t->to_proc; + struct binder_node *node; + struct binder_ref_data src_rdata; + int ret = 0; + + node = binder_get_node_from_ref(proc, fp->handle, + fp->hdr.type == BINDER_TYPE_HANDLE, &src_rdata); + if (!node) { + binder_user_error("%d:%d got transaction with invalid handle, %d\n", + proc->pid, thread->pid, fp->handle); + return -EINVAL; + } + if (security_binder_transfer_binder(proc->tsk, target_proc->tsk)) { + ret = -EPERM; + goto done; + } + + binder_node_lock(node); + if (node->proc == target_proc) { + if (fp->hdr.type == BINDER_TYPE_HANDLE) + fp->hdr.type = BINDER_TYPE_BINDER; + else + fp->hdr.type = BINDER_TYPE_WEAK_BINDER; + fp->binder = node->ptr; + fp->cookie = node->cookie; + if (node->proc) + binder_inner_proc_lock(node->proc); + binder_inc_node_nilocked(node, + fp->hdr.type == BINDER_TYPE_BINDER, + 0, NULL); + if (node->proc) + binder_inner_proc_unlock(node->proc); + trace_binder_transaction_ref_to_node(t, node, &src_rdata); + binder_debug(BINDER_DEBUG_TRANSACTION, + " ref %d desc %d -> node %d u%016llx\n", + src_rdata.debug_id, src_rdata.desc, node->debug_id, + (u64)node->ptr); + binder_node_unlock(node); + } else { + struct binder_ref_data dest_rdata; + + binder_node_unlock(node); + ret = binder_inc_ref_for_node(target_proc, node, + fp->hdr.type == BINDER_TYPE_HANDLE, + NULL, &dest_rdata); + if (ret) + goto done; + + fp->binder = 0; + fp->handle = dest_rdata.desc; + fp->cookie = 0; + trace_binder_transaction_ref_to_ref(t, node, &src_rdata, + &dest_rdata); + binder_debug(BINDER_DEBUG_TRANSACTION, + " ref %d desc %d -> ref %d desc %d (node %d)\n", + src_rdata.debug_id, src_rdata.desc, + dest_rdata.debug_id, dest_rdata.desc, + node->debug_id); + } +done: + binder_put_node(node); + return ret; +} + +static int binder_translate_fd(int fd, + struct binder_transaction *t, + struct binder_thread *thread, + struct binder_transaction *in_reply_to) +{ + struct binder_proc *proc = thread->proc; + struct binder_proc *target_proc = t->to_proc; + int target_fd; + struct file *file; + int ret; + bool target_allows_fd; + + if (in_reply_to) + target_allows_fd = !!(in_reply_to->flags & TF_ACCEPT_FDS); + else + target_allows_fd = t->buffer->target_node->accept_fds; + if (!target_allows_fd) { + binder_user_error("%d:%d got %s with fd, %d, but target does not allow fds\n", + proc->pid, thread->pid, + in_reply_to ? "reply" : "transaction", + fd); + ret = -EPERM; + goto err_fd_not_accepted; + } + + file = fget(fd); + if (!file) { + binder_user_error("%d:%d got transaction with invalid fd, %d\n", + proc->pid, thread->pid, fd); + ret = -EBADF; + goto err_fget; + } + ret = security_binder_transfer_file(proc->tsk, target_proc->tsk, file); + if (ret < 0) { + ret = -EPERM; + goto err_security; + } + + target_fd = task_get_unused_fd_flags(target_proc, O_CLOEXEC); + if (target_fd < 0) { + ret = -ENOMEM; + goto err_get_unused_fd; + } + task_fd_install(target_proc, target_fd, file); + trace_binder_transaction_fd(t, fd, target_fd); + binder_debug(BINDER_DEBUG_TRANSACTION, " fd %d -> %d\n", + fd, target_fd); + + return target_fd; + +err_get_unused_fd: +err_security: + fput(file); +err_fget: +err_fd_not_accepted: + return ret; +} + +static int binder_translate_fd_array(struct binder_fd_array_object *fda, + struct binder_buffer_object *parent, + struct binder_transaction *t, + struct binder_thread *thread, + struct binder_transaction *in_reply_to) { - if (target_thread) { - BUG_ON(target_thread->transaction_stack != t); - BUG_ON(target_thread->transaction_stack->from != target_thread); - target_thread->transaction_stack = - target_thread->transaction_stack->from_parent; - t->from = NULL; + binder_size_t fdi, fd_buf_size, num_installed_fds; + int target_fd; + uintptr_t parent_buffer; + u32 *fd_array; + struct binder_proc *proc = thread->proc; + struct binder_proc *target_proc = t->to_proc; + + fd_buf_size = sizeof(u32) * fda->num_fds; + if (fda->num_fds >= SIZE_MAX / sizeof(u32)) { + binder_user_error("%d:%d got transaction with invalid number of fds (%lld)\n", + proc->pid, thread->pid, (u64)fda->num_fds); + return -EINVAL; } - t->need_reply = 0; - if (t->buffer) - t->buffer->transaction = NULL; - kfree(t); - binder_stats_deleted(BINDER_STAT_TRANSACTION); + if (fd_buf_size > parent->length || + fda->parent_offset > parent->length - fd_buf_size) { + /* No space for all file descriptors here. */ + binder_user_error("%d:%d not enough space to store %lld fds in buffer\n", + proc->pid, thread->pid, (u64)fda->num_fds); + return -EINVAL; + } + /* + * Since the parent was already fixed up, convert it + * back to the kernel address space to access it + */ + parent_buffer = parent->buffer - + binder_alloc_get_user_buffer_offset(&target_proc->alloc); + fd_array = (u32 *)(parent_buffer + fda->parent_offset); + if (!IS_ALIGNED((unsigned long)fd_array, sizeof(u32))) { + binder_user_error("%d:%d parent offset not aligned correctly.\n", + proc->pid, thread->pid); + return -EINVAL; + } + for (fdi = 0; fdi < fda->num_fds; fdi++) { + target_fd = binder_translate_fd(fd_array[fdi], t, thread, + in_reply_to); + if (target_fd < 0) + goto err_translate_fd_failed; + fd_array[fdi] = target_fd; + } + return 0; + +err_translate_fd_failed: + /* + * Failed to allocate fd or security error, free fds + * installed so far. + */ + num_installed_fds = fdi; + for (fdi = 0; fdi < num_installed_fds; fdi++) + task_close_fd(target_proc, fd_array[fdi]); + return target_fd; } -static void binder_send_failed_reply(struct binder_transaction *t, - uint32_t error_code) +static int binder_fixup_parent(struct binder_transaction *t, + struct binder_thread *thread, + struct binder_buffer_object *bp, + binder_size_t *off_start, + binder_size_t num_valid, + struct binder_buffer_object *last_fixup_obj, + binder_size_t last_fixup_min_off) { - struct binder_thread *target_thread; - struct binder_transaction *next; + struct binder_buffer_object *parent; + u8 *parent_buffer; + struct binder_buffer *b = t->buffer; + struct binder_proc *proc = thread->proc; + struct binder_proc *target_proc = t->to_proc; - BUG_ON(t->flags & TF_ONE_WAY); - while (1) { - target_thread = t->from; - if (target_thread) { - if (target_thread->return_error != BR_OK && - target_thread->return_error2 == BR_OK) { - target_thread->return_error2 = - target_thread->return_error; - target_thread->return_error = BR_OK; - } - if (target_thread->return_error == BR_OK) { - binder_debug(BINDER_DEBUG_FAILED_TRANSACTION, - "send failed reply for transaction %d to %d:%d\n", - t->debug_id, - target_thread->proc->pid, - target_thread->pid); - - binder_pop_transaction(target_thread, t); - target_thread->return_error = error_code; - wake_up_interruptible(&target_thread->wait); - } else { - pr_err("reply failed, target thread, %d:%d, has error code %d already\n", - target_thread->proc->pid, - target_thread->pid, - target_thread->return_error); - } - return; - } - next = t->from_parent; + if (!(bp->flags & BINDER_BUFFER_FLAG_HAS_PARENT)) + return 0; - binder_debug(BINDER_DEBUG_FAILED_TRANSACTION, - "send failed reply for transaction %d, target dead\n", - t->debug_id); + parent = binder_validate_ptr(b, bp->parent, off_start, num_valid); + if (!parent) { + binder_user_error("%d:%d got transaction with invalid parent offset or type\n", + proc->pid, thread->pid); + return -EINVAL; + } - binder_pop_transaction(target_thread, t); - if (next == NULL) { - binder_debug(BINDER_DEBUG_DEAD_BINDER, - "reply failed, no target thread at root\n"); - return; - } - t = next; - binder_debug(BINDER_DEBUG_DEAD_BINDER, - "reply failed, no target thread -- retry %d\n", - t->debug_id); + if (!binder_validate_fixup(b, off_start, + parent, bp->parent_offset, + last_fixup_obj, + last_fixup_min_off)) { + binder_user_error("%d:%d got transaction with out-of-order buffer fixup\n", + proc->pid, thread->pid); + return -EINVAL; + } + + if (parent->length < sizeof(binder_uintptr_t) || + bp->parent_offset > parent->length - sizeof(binder_uintptr_t)) { + /* No space for a pointer here! */ + binder_user_error("%d:%d got transaction with invalid parent offset\n", + proc->pid, thread->pid); + return -EINVAL; } + parent_buffer = (u8 *)(parent->buffer - + binder_alloc_get_user_buffer_offset( + &target_proc->alloc)); + *(binder_uintptr_t *)(parent_buffer + bp->parent_offset) = bp->buffer; + + return 0; } -static void binder_transaction_buffer_release(struct binder_proc *proc, - struct binder_buffer *buffer, - binder_size_t *failed_at) +/** + * binder_proc_transaction() - sends a transaction to a process and wakes it up + * @t: transaction to send + * @proc: process to send the transaction to + * @thread: thread in @proc to send the transaction to (may be NULL) + * + * This function queues a transaction to the specified process. It will try + * to find a thread in the target process to handle the transaction and + * wake it up. If no thread is found, the work is queued to the proc + * waitqueue. + * + * If the @thread parameter is not NULL, the transaction is always queued + * to the waitlist of that specific thread. + * + * Return: true if the transactions was successfully queued + * false if the target process or thread is dead + */ +static bool binder_proc_transaction(struct binder_transaction *t, + struct binder_proc *proc, + struct binder_thread *thread) { - binder_size_t *offp, *off_end; - int debug_id = buffer->debug_id; + struct list_head *target_list = NULL; + struct binder_node *node = t->buffer->target_node; + struct binder_priority node_prio; + bool oneway = !!(t->flags & TF_ONE_WAY); + bool wakeup = true; + + BUG_ON(!node); + binder_node_lock(node); + node_prio.prio = node->min_priority; + node_prio.sched_policy = node->sched_policy; + + if (oneway) { + BUG_ON(thread); + if (node->has_async_transaction) { + target_list = &node->async_todo; + wakeup = false; + } else { + node->has_async_transaction = 1; + } + } - binder_debug(BINDER_DEBUG_TRANSACTION, - "%d buffer release %d, size %zd-%zd, failed at %pK\n", - proc->pid, buffer->debug_id, - buffer->data_size, buffer->offsets_size, failed_at); + binder_inner_proc_lock(proc); - if (buffer->target_node) - binder_dec_node(buffer->target_node, 1, 0); + if (proc->is_dead || (thread && thread->is_dead)) { + binder_inner_proc_unlock(proc); + binder_node_unlock(node); + return false; + } - offp = (binder_size_t *)(buffer->data + - ALIGN(buffer->data_size, sizeof(void *))); - if (failed_at) - off_end = failed_at; - else - off_end = (void *)offp + buffer->offsets_size; - for (; offp < off_end; offp++) { - struct flat_binder_object *fp; + if (!thread && !target_list) + thread = binder_select_thread_ilocked(proc); - if (*offp > buffer->data_size - sizeof(*fp) || - buffer->data_size < sizeof(*fp) || - !IS_ALIGNED(*offp, sizeof(u32))) { - pr_err("transaction release %d bad offset %lld, size %zd\n", - debug_id, (u64)*offp, buffer->data_size); - continue; - } - fp = (struct flat_binder_object *)(buffer->data + *offp); - switch (fp->type) { - case BINDER_TYPE_BINDER: - case BINDER_TYPE_WEAK_BINDER: { - struct binder_node *node = binder_get_node(proc, fp->binder); + if (thread) { + target_list = &thread->todo; + binder_transaction_priority(thread->task, t, node_prio, + node->inherit_rt); + } else if (!target_list) { + target_list = &proc->todo; + } else { + BUG_ON(target_list != &node->async_todo); + } - if (node == NULL) { - pr_err("transaction release %d bad node %016llx\n", - debug_id, (u64)fp->binder); - break; - } - binder_debug(BINDER_DEBUG_TRANSACTION, - " node %d u%016llx\n", - node->debug_id, (u64)node->ptr); - binder_dec_node(node, fp->type == BINDER_TYPE_BINDER, 0); - } break; - case BINDER_TYPE_HANDLE: - case BINDER_TYPE_WEAK_HANDLE: { - struct binder_ref *ref = binder_get_ref(proc, fp->handle, - fp->type == BINDER_TYPE_HANDLE); - if (ref == NULL) { - pr_err("transaction release %d bad handle %d\n", - debug_id, fp->handle); - break; - } - binder_debug(BINDER_DEBUG_TRANSACTION, - " ref %d desc %d (node %d)\n", - ref->debug_id, ref->desc, ref->node->debug_id); - binder_dec_ref(ref, fp->type == BINDER_TYPE_HANDLE); - } break; + binder_enqueue_work_ilocked(&t->work, target_list); - case BINDER_TYPE_FD: - binder_debug(BINDER_DEBUG_TRANSACTION, - " fd %d\n", fp->handle); - if (failed_at) - task_close_fd(proc, fp->handle); - break; + if (wakeup) + binder_wakeup_thread_ilocked(proc, thread, !oneway /* sync */); - default: - pr_err("transaction release %d bad object type %x\n", - debug_id, fp->type); - break; - } - } + binder_inner_proc_unlock(proc); + binder_node_unlock(node); + + return true; +} + +/** + * binder_get_node_refs_for_txn() - Get required refs on node for txn + * @node: struct binder_node for which to get refs + * @proc: returns @node->proc if valid + * @error: if no @proc then returns BR_DEAD_REPLY + * + * User-space normally keeps the node alive when creating a transaction + * since it has a reference to the target. The local strong ref keeps it + * alive if the sending process dies before the target process processes + * the transaction. If the source process is malicious or has a reference + * counting bug, relying on the local strong ref can fail. + * + * Since user-space can cause the local strong ref to go away, we also take + * a tmpref on the node to ensure it survives while we are constructing + * the transaction. We also need a tmpref on the proc while we are + * constructing the transaction, so we take that here as well. + * + * Return: The target_node with refs taken or NULL if no @node->proc is NULL. + * Also sets @proc if valid. If the @node->proc is NULL indicating that the + * target proc has died, @error is set to BR_DEAD_REPLY + */ +static struct binder_node *binder_get_node_refs_for_txn( + struct binder_node *node, + struct binder_proc **procp, + uint32_t *error) +{ + struct binder_node *target_node = NULL; + + binder_node_inner_lock(node); + if (node->proc) { + target_node = node; + binder_inc_node_nilocked(node, 1, 0, NULL); + binder_inc_node_tmpref_ilocked(node); + node->proc->tmp_ref++; + *procp = node->proc; + } else + *error = BR_DEAD_REPLY; + binder_node_inner_unlock(node); + + return target_node; } static void binder_transaction(struct binder_proc *proc, struct binder_thread *thread, - struct binder_transaction_data *tr, int reply) + struct binder_transaction_data *tr, int reply, + binder_size_t extra_buffers_size) { + int ret; struct binder_transaction *t; struct binder_work *tcomplete; - binder_size_t *offp, *off_end; + binder_size_t *offp, *off_end, *off_start; binder_size_t off_min; - struct binder_proc *target_proc; + u8 *sg_bufp, *sg_buf_end; + struct binder_proc *target_proc = NULL; struct binder_thread *target_thread = NULL; struct binder_node *target_node = NULL; - struct list_head *target_list; - wait_queue_head_t *target_wait; struct binder_transaction *in_reply_to = NULL; struct binder_transaction_log_entry *e; - uint32_t return_error; + uint32_t return_error = 0; + uint32_t return_error_param = 0; + uint32_t return_error_line = 0; + struct binder_buffer_object *last_fixup_obj = NULL; + binder_size_t last_fixup_min_off = 0; + struct binder_context *context = proc->context; + int t_debug_id = atomic_inc_return(&binder_last_id); e = binder_transaction_log_add(&binder_transaction_log); + e->debug_id = t_debug_id; e->call_type = reply ? 2 : !!(tr->flags & TF_ONE_WAY); e->from_proc = proc->pid; e->from_thread = thread->pid; e->target_handle = tr->target.handle; e->data_size = tr->data_size; e->offsets_size = tr->offsets_size; + e->context_name = proc->context->name; if (reply) { + binder_inner_proc_lock(proc); in_reply_to = thread->transaction_stack; if (in_reply_to == NULL) { + binder_inner_proc_unlock(proc); binder_user_error("%d:%d got reply transaction with no transaction stack\n", proc->pid, thread->pid); return_error = BR_FAILED_REPLY; + return_error_param = -EPROTO; + return_error_line = __LINE__; goto err_empty_call_stack; } - binder_set_nice(in_reply_to->saved_priority); if (in_reply_to->to_thread != thread) { + spin_lock(&in_reply_to->lock); binder_user_error("%d:%d got reply transaction with bad transaction stack, transaction %d has target %d:%d\n", proc->pid, thread->pid, in_reply_to->debug_id, in_reply_to->to_proc ? in_reply_to->to_proc->pid : 0, in_reply_to->to_thread ? in_reply_to->to_thread->pid : 0); + spin_unlock(&in_reply_to->lock); + binder_inner_proc_unlock(proc); return_error = BR_FAILED_REPLY; + return_error_param = -EPROTO; + return_error_line = __LINE__; in_reply_to = NULL; goto err_bad_call_stack; } thread->transaction_stack = in_reply_to->to_parent; - target_thread = in_reply_to->from; + binder_inner_proc_unlock(proc); + target_thread = binder_get_txn_from_and_acq_inner(in_reply_to); if (target_thread == NULL) { return_error = BR_DEAD_REPLY; + return_error_line = __LINE__; goto err_dead_binder; } if (target_thread->transaction_stack != in_reply_to) { @@ -1371,104 +2880,148 @@ static void binder_transaction(struct binder_proc *proc, target_thread->transaction_stack ? target_thread->transaction_stack->debug_id : 0, in_reply_to->debug_id); + binder_inner_proc_unlock(target_thread->proc); return_error = BR_FAILED_REPLY; + return_error_param = -EPROTO; + return_error_line = __LINE__; in_reply_to = NULL; target_thread = NULL; goto err_dead_binder; } target_proc = target_thread->proc; + target_proc->tmp_ref++; + binder_inner_proc_unlock(target_thread->proc); } else { if (tr->target.handle) { struct binder_ref *ref; - ref = binder_get_ref(proc, tr->target.handle, true); - if (ref == NULL) { + + /* + * There must already be a strong ref + * on this node. If so, do a strong + * increment on the node to ensure it + * stays alive until the transaction is + * done. + */ + binder_proc_lock(proc); + ref = binder_get_ref_olocked(proc, tr->target.handle, + true); + if (ref) { + target_node = binder_get_node_refs_for_txn( + ref->node, &target_proc, + &return_error); + } else { binder_user_error("%d:%d got transaction to invalid handle\n", - proc->pid, thread->pid); + proc->pid, thread->pid); return_error = BR_FAILED_REPLY; - goto err_invalid_target_handle; } - target_node = ref->node; + binder_proc_unlock(proc); } else { - target_node = binder_context_mgr_node; - if (target_node == NULL) { + mutex_lock(&context->context_mgr_node_lock); + target_node = context->binder_context_mgr_node; + if (target_node) + target_node = binder_get_node_refs_for_txn( + target_node, &target_proc, + &return_error); + else return_error = BR_DEAD_REPLY; - goto err_no_context_mgr_node; - } + mutex_unlock(&context->context_mgr_node_lock); } - e->to_node = target_node->debug_id; - target_proc = target_node->proc; - if (target_proc == NULL) { - return_error = BR_DEAD_REPLY; + if (!target_node) { + /* + * return_error is set above + */ + return_error_param = -EINVAL; + return_error_line = __LINE__; goto err_dead_binder; } - if (security_binder_transaction(proc->tsk, target_proc->tsk) < 0) { + e->to_node = target_node->debug_id; + if (security_binder_transaction(proc->tsk, + target_proc->tsk) < 0) { return_error = BR_FAILED_REPLY; + return_error_param = -EPERM; + return_error_line = __LINE__; goto err_invalid_target_handle; } + binder_inner_proc_lock(proc); if (!(tr->flags & TF_ONE_WAY) && thread->transaction_stack) { struct binder_transaction *tmp; tmp = thread->transaction_stack; if (tmp->to_thread != thread) { + spin_lock(&tmp->lock); binder_user_error("%d:%d got new transaction with bad transaction stack, transaction %d has target %d:%d\n", proc->pid, thread->pid, tmp->debug_id, tmp->to_proc ? tmp->to_proc->pid : 0, tmp->to_thread ? tmp->to_thread->pid : 0); + spin_unlock(&tmp->lock); + binder_inner_proc_unlock(proc); return_error = BR_FAILED_REPLY; + return_error_param = -EPROTO; + return_error_line = __LINE__; goto err_bad_call_stack; } while (tmp) { - if (tmp->from && tmp->from->proc == target_proc) - target_thread = tmp->from; + struct binder_thread *from; + + spin_lock(&tmp->lock); + from = tmp->from; + if (from && from->proc == target_proc) { + atomic_inc(&from->tmp_ref); + target_thread = from; + spin_unlock(&tmp->lock); + break; + } + spin_unlock(&tmp->lock); tmp = tmp->from_parent; } } + binder_inner_proc_unlock(proc); } - if (target_thread) { + if (target_thread) e->to_thread = target_thread->pid; - target_list = &target_thread->todo; - target_wait = &target_thread->wait; - } else { - target_list = &target_proc->todo; - target_wait = &target_proc->wait; - } e->to_proc = target_proc->pid; /* TODO: reuse incoming transaction for reply */ t = kzalloc(sizeof(*t), GFP_KERNEL); if (t == NULL) { return_error = BR_FAILED_REPLY; + return_error_param = -ENOMEM; + return_error_line = __LINE__; goto err_alloc_t_failed; } binder_stats_created(BINDER_STAT_TRANSACTION); + spin_lock_init(&t->lock); tcomplete = kzalloc(sizeof(*tcomplete), GFP_KERNEL); if (tcomplete == NULL) { return_error = BR_FAILED_REPLY; + return_error_param = -ENOMEM; + return_error_line = __LINE__; goto err_alloc_tcomplete_failed; } binder_stats_created(BINDER_STAT_TRANSACTION_COMPLETE); - t->debug_id = ++binder_last_id; - e->debug_id = t->debug_id; + t->debug_id = t_debug_id; if (reply) binder_debug(BINDER_DEBUG_TRANSACTION, - "%d:%d BC_REPLY %d -> %d:%d, data %016llx-%016llx size %lld-%lld\n", + "%d:%d BC_REPLY %d -> %d:%d, data %016llx-%016llx size %lld-%lld-%lld\n", proc->pid, thread->pid, t->debug_id, target_proc->pid, target_thread->pid, (u64)tr->data.ptr.buffer, (u64)tr->data.ptr.offsets, - (u64)tr->data_size, (u64)tr->offsets_size); + (u64)tr->data_size, (u64)tr->offsets_size, + (u64)extra_buffers_size); else binder_debug(BINDER_DEBUG_TRANSACTION, - "%d:%d BC_TRANSACTION %d -> %d - node %d, data %016llx-%016llx size %lld-%lld\n", + "%d:%d BC_TRANSACTION %d -> %d - node %d, data %016llx-%016llx size %lld-%lld-%lld\n", proc->pid, thread->pid, t->debug_id, target_proc->pid, target_node->debug_id, (u64)tr->data.ptr.buffer, (u64)tr->data.ptr.offsets, - (u64)tr->data_size, (u64)tr->offsets_size); + (u64)tr->data_size, (u64)tr->offsets_size, + (u64)extra_buffers_size); if (!reply && !(tr->flags & TF_ONE_WAY)) t->from = thread; @@ -1479,14 +3032,30 @@ static void binder_transaction(struct binder_proc *proc, t->to_thread = target_thread; t->code = tr->code; t->flags = tr->flags; - t->priority = task_nice(current); + if (!(t->flags & TF_ONE_WAY) && + binder_supported_policy(current->policy)) { + /* Inherit supported policies for synchronous transactions */ + t->priority.sched_policy = current->policy; + t->priority.prio = current->normal_prio; + } else { + /* Otherwise, fall back to the default priority */ + t->priority = target_proc->default_priority; + } trace_binder_transaction(reply, t, target_node); - t->buffer = binder_alloc_buf(target_proc, tr->data_size, - tr->offsets_size, !reply && (t->flags & TF_ONE_WAY)); - if (t->buffer == NULL) { - return_error = BR_FAILED_REPLY; + t->buffer = binder_alloc_new_buf(&target_proc->alloc, tr->data_size, + tr->offsets_size, extra_buffers_size, + !reply && (t->flags & TF_ONE_WAY)); + if (IS_ERR(t->buffer)) { + /* + * -ESRCH indicates VMA cleared. The target is dying. + */ + return_error_param = PTR_ERR(t->buffer); + return_error = return_error_param == -ESRCH ? + BR_DEAD_REPLY : BR_FAILED_REPLY; + return_error_line = __LINE__; + t->buffer = NULL; goto err_binder_alloc_buf_failed; } t->buffer->allow_user_free = 0; @@ -1494,17 +3063,17 @@ static void binder_transaction(struct binder_proc *proc, t->buffer->transaction = t; t->buffer->target_node = target_node; trace_binder_transaction_alloc_buf(t->buffer); - if (target_node) - binder_inc_node(target_node, 1, 0, NULL); - - offp = (binder_size_t *)(t->buffer->data + - ALIGN(tr->data_size, sizeof(void *))); + off_start = (binder_size_t *)(t->buffer->data + + ALIGN(tr->data_size, sizeof(void *))); + offp = off_start; if (copy_from_user(t->buffer->data, (const void __user *)(uintptr_t) tr->data.ptr.buffer, tr->data_size)) { binder_user_error("%d:%d got transaction with invalid data ptr\n", proc->pid, thread->pid); return_error = BR_FAILED_REPLY; + return_error_param = -EFAULT; + return_error_line = __LINE__; goto err_copy_data_failed; } if (copy_from_user(offp, (const void __user *)(uintptr_t) @@ -1512,228 +3081,244 @@ static void binder_transaction(struct binder_proc *proc, binder_user_error("%d:%d got transaction with invalid offsets ptr\n", proc->pid, thread->pid); return_error = BR_FAILED_REPLY; + return_error_param = -EFAULT; + return_error_line = __LINE__; goto err_copy_data_failed; } if (!IS_ALIGNED(tr->offsets_size, sizeof(binder_size_t))) { binder_user_error("%d:%d got transaction with invalid offsets size, %lld\n", proc->pid, thread->pid, (u64)tr->offsets_size); return_error = BR_FAILED_REPLY; + return_error_param = -EINVAL; + return_error_line = __LINE__; + goto err_bad_offset; + } + if (!IS_ALIGNED(extra_buffers_size, sizeof(u64))) { + binder_user_error("%d:%d got transaction with unaligned buffers size, %lld\n", + proc->pid, thread->pid, + (u64)extra_buffers_size); + return_error = BR_FAILED_REPLY; + return_error_param = -EINVAL; + return_error_line = __LINE__; goto err_bad_offset; } - off_end = (void *)offp + tr->offsets_size; + off_end = (void *)off_start + tr->offsets_size; + sg_bufp = (u8 *)(PTR_ALIGN(off_end, sizeof(void *))); + sg_buf_end = sg_bufp + extra_buffers_size; off_min = 0; for (; offp < off_end; offp++) { - struct flat_binder_object *fp; + struct binder_object_header *hdr; + size_t object_size = binder_validate_object(t->buffer, *offp); - if (*offp > t->buffer->data_size - sizeof(*fp) || - *offp < off_min || - t->buffer->data_size < sizeof(*fp) || - !IS_ALIGNED(*offp, sizeof(u32))) { - binder_user_error("%d:%d got transaction with invalid offset, %lld (min %lld, max %lld)\n", + if (object_size == 0 || *offp < off_min) { + binder_user_error("%d:%d got transaction with invalid offset (%lld, min %lld max %lld) or object.\n", proc->pid, thread->pid, (u64)*offp, (u64)off_min, - (u64)(t->buffer->data_size - - sizeof(*fp))); + (u64)t->buffer->data_size); return_error = BR_FAILED_REPLY; + return_error_param = -EINVAL; + return_error_line = __LINE__; goto err_bad_offset; } - fp = (struct flat_binder_object *)(t->buffer->data + *offp); - off_min = *offp + sizeof(struct flat_binder_object); - switch (fp->type) { + + hdr = (struct binder_object_header *)(t->buffer->data + *offp); + off_min = *offp + object_size; + switch (hdr->type) { case BINDER_TYPE_BINDER: case BINDER_TYPE_WEAK_BINDER: { - struct binder_ref *ref; - struct binder_node *node = binder_get_node(proc, fp->binder); + struct flat_binder_object *fp; - if (node == NULL) { - node = binder_new_node(proc, fp->binder, fp->cookie); - if (node == NULL) { - return_error = BR_FAILED_REPLY; - goto err_binder_new_node_failed; - } - node->min_priority = fp->flags & FLAT_BINDER_FLAG_PRIORITY_MASK; - node->accept_fds = !!(fp->flags & FLAT_BINDER_FLAG_ACCEPTS_FDS); - } - if (fp->cookie != node->cookie) { - binder_user_error("%d:%d sending u%016llx node %d, cookie mismatch %016llx != %016llx\n", - proc->pid, thread->pid, - (u64)fp->binder, node->debug_id, - (u64)fp->cookie, (u64)node->cookie); + fp = to_flat_binder_object(hdr); + ret = binder_translate_binder(fp, t, thread); + if (ret < 0) { return_error = BR_FAILED_REPLY; - goto err_binder_get_ref_for_node_failed; + return_error_param = ret; + return_error_line = __LINE__; + goto err_translate_failed; } - if (security_binder_transfer_binder(proc->tsk, target_proc->tsk)) { + } break; + case BINDER_TYPE_HANDLE: + case BINDER_TYPE_WEAK_HANDLE: { + struct flat_binder_object *fp; + + fp = to_flat_binder_object(hdr); + ret = binder_translate_handle(fp, t, thread); + if (ret < 0) { return_error = BR_FAILED_REPLY; - goto err_binder_get_ref_for_node_failed; + return_error_param = ret; + return_error_line = __LINE__; + goto err_translate_failed; } - ref = binder_get_ref_for_node(target_proc, node); - if (ref == NULL) { + } break; + + case BINDER_TYPE_FD: { + struct binder_fd_object *fp = to_binder_fd_object(hdr); + int target_fd = binder_translate_fd(fp->fd, t, thread, + in_reply_to); + + if (target_fd < 0) { return_error = BR_FAILED_REPLY; - goto err_binder_get_ref_for_node_failed; + return_error_param = target_fd; + return_error_line = __LINE__; + goto err_translate_failed; } - if (fp->type == BINDER_TYPE_BINDER) - fp->type = BINDER_TYPE_HANDLE; - else - fp->type = BINDER_TYPE_WEAK_HANDLE; - fp->binder = 0; - fp->handle = ref->desc; - fp->cookie = 0; - binder_inc_ref(ref, fp->type == BINDER_TYPE_HANDLE, - &thread->todo); - - trace_binder_transaction_node_to_ref(t, node, ref); - binder_debug(BINDER_DEBUG_TRANSACTION, - " node %d u%016llx -> ref %d desc %d\n", - node->debug_id, (u64)node->ptr, - ref->debug_id, ref->desc); + fp->pad_binder = 0; + fp->fd = target_fd; } break; - case BINDER_TYPE_HANDLE: - case BINDER_TYPE_WEAK_HANDLE: { - struct binder_ref *ref = binder_get_ref(proc, fp->handle, - fp->type == BINDER_TYPE_HANDLE); - if (ref == NULL) { - binder_user_error("%d:%d got transaction with invalid handle, %d\n", - proc->pid, - thread->pid, fp->handle); + case BINDER_TYPE_FDA: { + struct binder_fd_array_object *fda = + to_binder_fd_array_object(hdr); + struct binder_buffer_object *parent = + binder_validate_ptr(t->buffer, fda->parent, + off_start, + offp - off_start); + if (!parent) { + binder_user_error("%d:%d got transaction with invalid parent offset or type\n", + proc->pid, thread->pid); return_error = BR_FAILED_REPLY; - goto err_binder_get_ref_failed; + return_error_param = -EINVAL; + return_error_line = __LINE__; + goto err_bad_parent; } - if (security_binder_transfer_binder(proc->tsk, target_proc->tsk)) { + if (!binder_validate_fixup(t->buffer, off_start, + parent, fda->parent_offset, + last_fixup_obj, + last_fixup_min_off)) { + binder_user_error("%d:%d got transaction with out-of-order buffer fixup\n", + proc->pid, thread->pid); return_error = BR_FAILED_REPLY; - goto err_binder_get_ref_failed; - } - if (ref->node->proc == target_proc) { - if (fp->type == BINDER_TYPE_HANDLE) - fp->type = BINDER_TYPE_BINDER; - else - fp->type = BINDER_TYPE_WEAK_BINDER; - fp->binder = ref->node->ptr; - fp->cookie = ref->node->cookie; - binder_inc_node(ref->node, fp->type == BINDER_TYPE_BINDER, 0, NULL); - trace_binder_transaction_ref_to_node(t, ref); - binder_debug(BINDER_DEBUG_TRANSACTION, - " ref %d desc %d -> node %d u%016llx\n", - ref->debug_id, ref->desc, ref->node->debug_id, - (u64)ref->node->ptr); - } else { - struct binder_ref *new_ref; - - new_ref = binder_get_ref_for_node(target_proc, ref->node); - if (new_ref == NULL) { - return_error = BR_FAILED_REPLY; - goto err_binder_get_ref_for_node_failed; - } - fp->binder = 0; - fp->handle = new_ref->desc; - fp->cookie = 0; - binder_inc_ref(new_ref, fp->type == BINDER_TYPE_HANDLE, NULL); - trace_binder_transaction_ref_to_ref(t, ref, - new_ref); - binder_debug(BINDER_DEBUG_TRANSACTION, - " ref %d desc %d -> ref %d desc %d (node %d)\n", - ref->debug_id, ref->desc, new_ref->debug_id, - new_ref->desc, ref->node->debug_id); + return_error_param = -EINVAL; + return_error_line = __LINE__; + goto err_bad_parent; } - } break; - - case BINDER_TYPE_FD: { - int target_fd; - struct file *file; - - if (reply) { - if (!(in_reply_to->flags & TF_ACCEPT_FDS)) { - binder_user_error("%d:%d got reply with fd, %d, but target does not allow fds\n", - proc->pid, thread->pid, fp->handle); - return_error = BR_FAILED_REPLY; - goto err_fd_not_allowed; - } - } else if (!target_node->accept_fds) { - binder_user_error("%d:%d got transaction with fd, %d, but target does not allow fds\n", - proc->pid, thread->pid, fp->handle); + ret = binder_translate_fd_array(fda, parent, t, thread, + in_reply_to); + if (ret < 0) { return_error = BR_FAILED_REPLY; - goto err_fd_not_allowed; + return_error_param = ret; + return_error_line = __LINE__; + goto err_translate_failed; } - - file = fget(fp->handle); - if (file == NULL) { - binder_user_error("%d:%d got transaction with invalid fd, %d\n", - proc->pid, thread->pid, fp->handle); + last_fixup_obj = parent; + last_fixup_min_off = + fda->parent_offset + sizeof(u32) * fda->num_fds; + } break; + case BINDER_TYPE_PTR: { + struct binder_buffer_object *bp = + to_binder_buffer_object(hdr); + size_t buf_left = sg_buf_end - sg_bufp; + + if (bp->length > buf_left) { + binder_user_error("%d:%d got transaction with too large buffer\n", + proc->pid, thread->pid); return_error = BR_FAILED_REPLY; - goto err_fget_failed; + return_error_param = -EINVAL; + return_error_line = __LINE__; + goto err_bad_offset; } - if (security_binder_transfer_file(proc->tsk, target_proc->tsk, file) < 0) { - fput(file); + if (copy_from_user(sg_bufp, + (const void __user *)(uintptr_t) + bp->buffer, bp->length)) { + binder_user_error("%d:%d got transaction with invalid offsets ptr\n", + proc->pid, thread->pid); + return_error_param = -EFAULT; return_error = BR_FAILED_REPLY; - goto err_get_unused_fd_failed; + return_error_line = __LINE__; + goto err_copy_data_failed; } - target_fd = task_get_unused_fd_flags(target_proc, O_CLOEXEC); - if (target_fd < 0) { - fput(file); + /* Fixup buffer pointer to target proc address space */ + bp->buffer = (uintptr_t)sg_bufp + + binder_alloc_get_user_buffer_offset( + &target_proc->alloc); + sg_bufp += ALIGN(bp->length, sizeof(u64)); + + ret = binder_fixup_parent(t, thread, bp, off_start, + offp - off_start, + last_fixup_obj, + last_fixup_min_off); + if (ret < 0) { return_error = BR_FAILED_REPLY; - goto err_get_unused_fd_failed; + return_error_param = ret; + return_error_line = __LINE__; + goto err_translate_failed; } - task_fd_install(target_proc, target_fd, file); - trace_binder_transaction_fd(t, fp->handle, target_fd); - binder_debug(BINDER_DEBUG_TRANSACTION, - " fd %d -> %d\n", fp->handle, target_fd); - /* TODO: fput? */ - fp->binder = 0; - fp->handle = target_fd; + last_fixup_obj = bp; + last_fixup_min_off = 0; } break; - default: binder_user_error("%d:%d got transaction with invalid object type, %x\n", - proc->pid, thread->pid, fp->type); + proc->pid, thread->pid, hdr->type); return_error = BR_FAILED_REPLY; + return_error_param = -EINVAL; + return_error_line = __LINE__; goto err_bad_object_type; } } + tcomplete->type = BINDER_WORK_TRANSACTION_COMPLETE; + binder_enqueue_work(proc, tcomplete, &thread->todo); + t->work.type = BINDER_WORK_TRANSACTION; + if (reply) { + binder_inner_proc_lock(target_proc); + if (target_thread->is_dead) { + binder_inner_proc_unlock(target_proc); + goto err_dead_proc_or_thread; + } BUG_ON(t->buffer->async_transaction != 0); - binder_pop_transaction(target_thread, in_reply_to); + binder_pop_transaction_ilocked(target_thread, in_reply_to); + binder_enqueue_work_ilocked(&t->work, &target_thread->todo); + binder_inner_proc_unlock(target_proc); + wake_up_interruptible_sync(&target_thread->wait); + binder_restore_priority(current, in_reply_to->saved_priority); + binder_free_transaction(in_reply_to); } else if (!(t->flags & TF_ONE_WAY)) { BUG_ON(t->buffer->async_transaction != 0); + binder_inner_proc_lock(proc); t->need_reply = 1; t->from_parent = thread->transaction_stack; thread->transaction_stack = t; + binder_inner_proc_unlock(proc); + if (!binder_proc_transaction(t, target_proc, target_thread)) { + binder_inner_proc_lock(proc); + binder_pop_transaction_ilocked(thread, t); + binder_inner_proc_unlock(proc); + goto err_dead_proc_or_thread; + } } else { BUG_ON(target_node == NULL); BUG_ON(t->buffer->async_transaction != 1); - if (target_node->has_async_transaction) { - target_list = &target_node->async_todo; - target_wait = NULL; - } else - target_node->has_async_transaction = 1; - } - t->work.type = BINDER_WORK_TRANSACTION; - list_add_tail(&t->work.entry, target_list); - tcomplete->type = BINDER_WORK_TRANSACTION_COMPLETE; - list_add_tail(&tcomplete->entry, &thread->todo); - if (target_wait) { - if (reply || !(t->flags & TF_ONE_WAY)) { - preempt_disable(); - wake_up_interruptible_sync(target_wait); - preempt_enable_no_resched(); - } - else { - wake_up_interruptible(target_wait); - } + if (!binder_proc_transaction(t, target_proc, NULL)) + goto err_dead_proc_or_thread; } + if (target_thread) + binder_thread_dec_tmpref(target_thread); + binder_proc_dec_tmpref(target_proc); + if (target_node) + binder_dec_node_tmpref(target_node); + /* + * write barrier to synchronize with initialization + * of log entry + */ + smp_wmb(); + WRITE_ONCE(e->debug_id_done, t_debug_id); return; -err_get_unused_fd_failed: -err_fget_failed: -err_fd_not_allowed: -err_binder_get_ref_for_node_failed: -err_binder_get_ref_failed: -err_binder_new_node_failed: +err_dead_proc_or_thread: + return_error = BR_DEAD_REPLY; + return_error_line = __LINE__; + binder_dequeue_work(proc, tcomplete); +err_translate_failed: err_bad_object_type: err_bad_offset: +err_bad_parent: err_copy_data_failed: trace_binder_transaction_failed_buffer_release(t->buffer); binder_transaction_buffer_release(target_proc, t->buffer, offp); + if (target_node) + binder_dec_node_tmpref(target_node); + target_node = NULL; t->buffer->transaction = NULL; - binder_free_buf(target_proc, t->buffer); + binder_alloc_free_buf(&target_proc->alloc, t->buffer); err_binder_alloc_buf_failed: kfree(tcomplete); binder_stats_deleted(BINDER_STAT_TRANSACTION_COMPLETE); @@ -1745,25 +3330,52 @@ static void binder_transaction(struct binder_proc *proc, err_empty_call_stack: err_dead_binder: err_invalid_target_handle: -err_no_context_mgr_node: + if (target_thread) + binder_thread_dec_tmpref(target_thread); + if (target_proc) + binder_proc_dec_tmpref(target_proc); + if (target_node) { + binder_dec_node(target_node, 1, 0); + binder_dec_node_tmpref(target_node); + } + binder_debug(BINDER_DEBUG_FAILED_TRANSACTION, - "%d:%d transaction failed %d, size %lld-%lld\n", - proc->pid, thread->pid, return_error, - (u64)tr->data_size, (u64)tr->offsets_size); + "%d:%d transaction failed %d/%d, size %lld-%lld line %d\n", + proc->pid, thread->pid, return_error, return_error_param, + (u64)tr->data_size, (u64)tr->offsets_size, + return_error_line); { struct binder_transaction_log_entry *fe; + e->return_error = return_error; + e->return_error_param = return_error_param; + e->return_error_line = return_error_line; fe = binder_transaction_log_add(&binder_transaction_log_failed); *fe = *e; + /* + * write barrier to synchronize with initialization + * of log entry + */ + smp_wmb(); + WRITE_ONCE(e->debug_id_done, t_debug_id); + WRITE_ONCE(fe->debug_id_done, t_debug_id); } - BUG_ON(thread->return_error != BR_OK); + BUG_ON(thread->return_error.cmd != BR_OK); if (in_reply_to) { - thread->return_error = BR_TRANSACTION_COMPLETE; + binder_restore_priority(current, in_reply_to->saved_priority); + thread->return_error.cmd = BR_TRANSACTION_COMPLETE; + binder_enqueue_work(thread->proc, + &thread->return_error.work, + &thread->todo); binder_send_failed_reply(in_reply_to, return_error); - } else - thread->return_error = return_error; + } else { + thread->return_error.cmd = return_error; + binder_enqueue_work(thread->proc, + &thread->return_error.work, + &thread->todo); + } } static int binder_thread_write(struct binder_proc *proc, @@ -1772,19 +3384,22 @@ static int binder_thread_write(struct binder_proc *proc, binder_size_t *consumed) { uint32_t cmd; + struct binder_context *context = proc->context; void __user *buffer = (void __user *)(uintptr_t)binder_buffer; void __user *ptr = buffer + *consumed; void __user *end = buffer + size; - while (ptr < end && thread->return_error == BR_OK) { + while (ptr < end && thread->return_error.cmd == BR_OK) { + int ret; + if (get_user(cmd, (uint32_t __user *)ptr)) return -EFAULT; ptr += sizeof(uint32_t); trace_binder_command(cmd); if (_IOC_NR(cmd) < ARRAY_SIZE(binder_stats.bc)) { - binder_stats.bc[_IOC_NR(cmd)]++; - proc->stats.bc[_IOC_NR(cmd)]++; - thread->stats.bc[_IOC_NR(cmd)]++; + atomic_inc(&binder_stats.bc[_IOC_NR(cmd)]); + atomic_inc(&proc->stats.bc[_IOC_NR(cmd)]); + atomic_inc(&thread->stats.bc[_IOC_NR(cmd)]); } switch (cmd) { case BC_INCREFS: @@ -1792,53 +3407,61 @@ static int binder_thread_write(struct binder_proc *proc, case BC_RELEASE: case BC_DECREFS: { uint32_t target; - struct binder_ref *ref; const char *debug_string; + bool strong = cmd == BC_ACQUIRE || cmd == BC_RELEASE; + bool increment = cmd == BC_INCREFS || cmd == BC_ACQUIRE; + struct binder_ref_data rdata; if (get_user(target, (uint32_t __user *)ptr)) return -EFAULT; + ptr += sizeof(uint32_t); - if (target == 0 && binder_context_mgr_node && - (cmd == BC_INCREFS || cmd == BC_ACQUIRE)) { - ref = binder_get_ref_for_node(proc, - binder_context_mgr_node); - if (ref->desc != target) { - binder_user_error("%d:%d tried to acquire reference to desc 0, got %d instead\n", - proc->pid, thread->pid, - ref->desc); - } - } else - ref = binder_get_ref(proc, target, - cmd == BC_ACQUIRE || - cmd == BC_RELEASE); - if (ref == NULL) { - binder_user_error("%d:%d refcount change on invalid ref %d\n", - proc->pid, thread->pid, target); - break; + ret = -1; + if (increment && !target) { + struct binder_node *ctx_mgr_node; + mutex_lock(&context->context_mgr_node_lock); + ctx_mgr_node = context->binder_context_mgr_node; + if (ctx_mgr_node) + ret = binder_inc_ref_for_node( + proc, ctx_mgr_node, + strong, NULL, &rdata); + mutex_unlock(&context->context_mgr_node_lock); + } + if (ret) + ret = binder_update_ref_for_handle( + proc, target, increment, strong, + &rdata); + if (!ret && rdata.desc != target) { + binder_user_error("%d:%d tried to acquire reference to desc %d, got %d instead\n", + proc->pid, thread->pid, + target, rdata.desc); } switch (cmd) { case BC_INCREFS: debug_string = "IncRefs"; - binder_inc_ref(ref, 0, NULL); break; case BC_ACQUIRE: debug_string = "Acquire"; - binder_inc_ref(ref, 1, NULL); break; case BC_RELEASE: debug_string = "Release"; - binder_dec_ref(ref, 1); break; case BC_DECREFS: default: debug_string = "DecRefs"; - binder_dec_ref(ref, 0); + break; + } + if (ret) { + binder_user_error("%d:%d %s %d refcount change on invalid ref %d ret %d\n", + proc->pid, thread->pid, debug_string, + strong, target, ret); break; } binder_debug(BINDER_DEBUG_USER_REFS, - "%d:%d %s ref %d desc %d s %d w %d for node %d\n", - proc->pid, thread->pid, debug_string, ref->debug_id, - ref->desc, ref->strong, ref->weak, ref->node->debug_id); + "%d:%d %s ref %d desc %d s %d w %d\n", + proc->pid, thread->pid, debug_string, + rdata.debug_id, rdata.desc, rdata.strong, + rdata.weak); break; } case BC_INCREFS_DONE: @@ -1846,6 +3469,7 @@ static int binder_thread_write(struct binder_proc *proc, binder_uintptr_t node_ptr; binder_uintptr_t cookie; struct binder_node *node; + bool free_node; if (get_user(node_ptr, (binder_uintptr_t __user *)ptr)) return -EFAULT; @@ -1870,13 +3494,17 @@ static int binder_thread_write(struct binder_proc *proc, "BC_INCREFS_DONE" : "BC_ACQUIRE_DONE", (u64)node_ptr, node->debug_id, (u64)cookie, (u64)node->cookie); + binder_put_node(node); break; } + binder_node_inner_lock(node); if (cmd == BC_ACQUIRE_DONE) { if (node->pending_strong_ref == 0) { binder_user_error("%d:%d BC_ACQUIRE_DONE node %d has no pending acquire request\n", proc->pid, thread->pid, node->debug_id); + binder_node_inner_unlock(node); + binder_put_node(node); break; } node->pending_strong_ref = 0; @@ -1885,16 +3513,23 @@ static int binder_thread_write(struct binder_proc *proc, binder_user_error("%d:%d BC_INCREFS_DONE node %d has no pending increfs request\n", proc->pid, thread->pid, node->debug_id); + binder_node_inner_unlock(node); + binder_put_node(node); break; } node->pending_weak_ref = 0; } - binder_dec_node(node, cmd == BC_ACQUIRE_DONE, 0); + free_node = binder_dec_node_nilocked(node, + cmd == BC_ACQUIRE_DONE, 0); + WARN_ON(free_node); binder_debug(BINDER_DEBUG_USER_REFS, - "%d:%d %s node %d ls %d lw %d\n", + "%d:%d %s node %d ls %d lw %d tr %d\n", proc->pid, thread->pid, cmd == BC_INCREFS_DONE ? "BC_INCREFS_DONE" : "BC_ACQUIRE_DONE", - node->debug_id, node->local_strong_refs, node->local_weak_refs); + node->debug_id, node->local_strong_refs, + node->local_weak_refs, node->tmp_refs); + binder_node_inner_unlock(node); + binder_put_node(node); break; } case BC_ATTEMPT_ACQUIRE: @@ -1912,7 +3547,8 @@ static int binder_thread_write(struct binder_proc *proc, return -EFAULT; ptr += sizeof(binder_uintptr_t); - buffer = binder_buffer_lookup(proc, data_ptr); + buffer = binder_alloc_prepare_to_free(&proc->alloc, + data_ptr); if (buffer == NULL) { binder_user_error("%d:%d BC_FREE_BUFFER u%016llx no match\n", proc->pid, thread->pid, (u64)data_ptr); @@ -1934,18 +3570,41 @@ static int binder_thread_write(struct binder_proc *proc, buffer->transaction = NULL; } if (buffer->async_transaction && buffer->target_node) { - BUG_ON(!buffer->target_node->has_async_transaction); - if (list_empty(&buffer->target_node->async_todo)) - buffer->target_node->has_async_transaction = 0; - else - list_move_tail(buffer->target_node->async_todo.next, &thread->todo); + struct binder_node *buf_node; + struct binder_work *w; + + buf_node = buffer->target_node; + binder_node_inner_lock(buf_node); + BUG_ON(!buf_node->has_async_transaction); + BUG_ON(buf_node->proc != proc); + w = binder_dequeue_work_head_ilocked( + &buf_node->async_todo); + if (!w) { + buf_node->has_async_transaction = 0; + } else { + binder_enqueue_work_ilocked( + w, &proc->todo); + binder_wakeup_proc_ilocked(proc); + } + binder_node_inner_unlock(buf_node); } trace_binder_transaction_buffer_release(buffer); binder_transaction_buffer_release(proc, buffer, NULL); - binder_free_buf(proc, buffer); + binder_alloc_free_buf(&proc->alloc, buffer); break; } + case BC_TRANSACTION_SG: + case BC_REPLY_SG: { + struct binder_transaction_data_sg tr; + + if (copy_from_user(&tr, ptr, sizeof(tr))) + return -EFAULT; + ptr += sizeof(tr); + binder_transaction(proc, thread, &tr.transaction_data, + cmd == BC_REPLY_SG, tr.buffers_size); + break; + } case BC_TRANSACTION: case BC_REPLY: { struct binder_transaction_data tr; @@ -1953,7 +3612,8 @@ static int binder_thread_write(struct binder_proc *proc, if (copy_from_user(&tr, ptr, sizeof(tr))) return -EFAULT; ptr += sizeof(tr); - binder_transaction(proc, thread, &tr, cmd == BC_REPLY); + binder_transaction(proc, thread, &tr, + cmd == BC_REPLY, 0); break; } @@ -1961,6 +3621,7 @@ static int binder_thread_write(struct binder_proc *proc, binder_debug(BINDER_DEBUG_THREADS, "%d:%d BC_REGISTER_LOOPER\n", proc->pid, thread->pid); + binder_inner_proc_lock(proc); if (thread->looper & BINDER_LOOPER_STATE_ENTERED) { thread->looper |= BINDER_LOOPER_STATE_INVALID; binder_user_error("%d:%d ERROR: BC_REGISTER_LOOPER called after BC_ENTER_LOOPER\n", @@ -1974,6 +3635,7 @@ static int binder_thread_write(struct binder_proc *proc, proc->requested_threads_started++; } thread->looper |= BINDER_LOOPER_STATE_REGISTERED; + binder_inner_proc_unlock(proc); break; case BC_ENTER_LOOPER: binder_debug(BINDER_DEBUG_THREADS, @@ -1998,7 +3660,7 @@ static int binder_thread_write(struct binder_proc *proc, uint32_t target; binder_uintptr_t cookie; struct binder_ref *ref; - struct binder_ref_death *death; + struct binder_ref_death *death = NULL; if (get_user(target, (uint32_t __user *)ptr)) return -EFAULT; @@ -2006,7 +3668,29 @@ static int binder_thread_write(struct binder_proc *proc, if (get_user(cookie, (binder_uintptr_t __user *)ptr)) return -EFAULT; ptr += sizeof(binder_uintptr_t); - ref = binder_get_ref(proc, target, false); + if (cmd == BC_REQUEST_DEATH_NOTIFICATION) { + /* + * Allocate memory for death notification + * before taking lock + */ + death = kzalloc(sizeof(*death), GFP_KERNEL); + if (death == NULL) { + WARN_ON(thread->return_error.cmd != + BR_OK); + thread->return_error.cmd = BR_ERROR; + binder_enqueue_work( + thread->proc, + &thread->return_error.work, + &thread->todo); + binder_debug( + BINDER_DEBUG_FAILED_TRANSACTION, + "%d:%d BC_REQUEST_DEATH_NOTIFICATION failed\n", + proc->pid, thread->pid); + break; + } + } + binder_proc_lock(proc); + ref = binder_get_ref_olocked(proc, target, false); if (ref == NULL) { binder_user_error("%d:%d %s invalid ref %d\n", proc->pid, thread->pid, @@ -2014,6 +3698,8 @@ static int binder_thread_write(struct binder_proc *proc, "BC_REQUEST_DEATH_NOTIFICATION" : "BC_CLEAR_DEATH_NOTIFICATION", target); + binder_proc_unlock(proc); + kfree(death); break; } @@ -2023,21 +3709,18 @@ static int binder_thread_write(struct binder_proc *proc, cmd == BC_REQUEST_DEATH_NOTIFICATION ? "BC_REQUEST_DEATH_NOTIFICATION" : "BC_CLEAR_DEATH_NOTIFICATION", - (u64)cookie, ref->debug_id, ref->desc, - ref->strong, ref->weak, ref->node->debug_id); + (u64)cookie, ref->data.debug_id, + ref->data.desc, ref->data.strong, + ref->data.weak, ref->node->debug_id); + binder_node_lock(ref->node); if (cmd == BC_REQUEST_DEATH_NOTIFICATION) { if (ref->death) { binder_user_error("%d:%d BC_REQUEST_DEATH_NOTIFICATION death notification already set\n", proc->pid, thread->pid); - break; - } - death = kzalloc(sizeof(*death), GFP_KERNEL); - if (death == NULL) { - thread->return_error = BR_ERROR; - binder_debug(BINDER_DEBUG_FAILED_TRANSACTION, - "%d:%d BC_REQUEST_DEATH_NOTIFICATION failed\n", - proc->pid, thread->pid); + binder_node_unlock(ref->node); + binder_proc_unlock(proc); + kfree(death); break; } binder_stats_created(BINDER_STAT_DEATH); @@ -2046,17 +3729,19 @@ static int binder_thread_write(struct binder_proc *proc, ref->death = death; if (ref->node->proc == NULL) { ref->death->work.type = BINDER_WORK_DEAD_BINDER; - if (thread->looper & (BINDER_LOOPER_STATE_REGISTERED | BINDER_LOOPER_STATE_ENTERED)) { - list_add_tail(&ref->death->work.entry, &thread->todo); - } else { - list_add_tail(&ref->death->work.entry, &proc->todo); - wake_up_interruptible(&proc->wait); - } + + binder_inner_proc_lock(proc); + binder_enqueue_work_ilocked( + &ref->death->work, &proc->todo); + binder_wakeup_proc_ilocked(proc); + binder_inner_proc_unlock(proc); } } else { if (ref->death == NULL) { binder_user_error("%d:%d BC_CLEAR_DEATH_NOTIFICATION death notification not active\n", proc->pid, thread->pid); + binder_node_unlock(ref->node); + binder_proc_unlock(proc); break; } death = ref->death; @@ -2065,22 +3750,35 @@ static int binder_thread_write(struct binder_proc *proc, proc->pid, thread->pid, (u64)death->cookie, (u64)cookie); + binder_node_unlock(ref->node); + binder_proc_unlock(proc); break; } ref->death = NULL; + binder_inner_proc_lock(proc); if (list_empty(&death->work.entry)) { death->work.type = BINDER_WORK_CLEAR_DEATH_NOTIFICATION; - if (thread->looper & (BINDER_LOOPER_STATE_REGISTERED | BINDER_LOOPER_STATE_ENTERED)) { - list_add_tail(&death->work.entry, &thread->todo); - } else { - list_add_tail(&death->work.entry, &proc->todo); - wake_up_interruptible(&proc->wait); + if (thread->looper & + (BINDER_LOOPER_STATE_REGISTERED | + BINDER_LOOPER_STATE_ENTERED)) + binder_enqueue_work_ilocked( + &death->work, + &thread->todo); + else { + binder_enqueue_work_ilocked( + &death->work, + &proc->todo); + binder_wakeup_proc_ilocked( + proc); } } else { BUG_ON(death->work.type != BINDER_WORK_DEAD_BINDER); death->work.type = BINDER_WORK_DEAD_BINDER_AND_CLEAR; } + binder_inner_proc_unlock(proc); } + binder_node_unlock(ref->node); + binder_proc_unlock(proc); } break; case BC_DEAD_BINDER_DONE: { struct binder_work *w; @@ -2090,9 +3788,14 @@ static int binder_thread_write(struct binder_proc *proc, if (get_user(cookie, (binder_uintptr_t __user *)ptr)) return -EFAULT; - ptr += sizeof(void *); - list_for_each_entry(w, &proc->delivered_death, entry) { - struct binder_ref_death *tmp_death = container_of(w, struct binder_ref_death, work); + ptr += sizeof(cookie); + binder_inner_proc_lock(proc); + list_for_each_entry(w, &proc->delivered_death, + entry) { + struct binder_ref_death *tmp_death = + container_of(w, + struct binder_ref_death, + work); if (tmp_death->cookie == cookie) { death = tmp_death; @@ -2100,25 +3803,31 @@ static int binder_thread_write(struct binder_proc *proc, } } binder_debug(BINDER_DEBUG_DEAD_BINDER, - "%d:%d BC_DEAD_BINDER_DONE %016llx found %pK\n", + "%d:%d BC_DEAD_BINDER_DONE %016llx found %p\n", proc->pid, thread->pid, (u64)cookie, death); if (death == NULL) { binder_user_error("%d:%d BC_DEAD_BINDER_DONE %016llx not found\n", proc->pid, thread->pid, (u64)cookie); + binder_inner_proc_unlock(proc); break; } - - list_del_init(&death->work.entry); + binder_dequeue_work_ilocked(&death->work); if (death->work.type == BINDER_WORK_DEAD_BINDER_AND_CLEAR) { death->work.type = BINDER_WORK_CLEAR_DEATH_NOTIFICATION; - if (thread->looper & (BINDER_LOOPER_STATE_REGISTERED | BINDER_LOOPER_STATE_ENTERED)) { - list_add_tail(&death->work.entry, &thread->todo); - } else { - list_add_tail(&death->work.entry, &proc->todo); - wake_up_interruptible(&proc->wait); + if (thread->looper & + (BINDER_LOOPER_STATE_REGISTERED | + BINDER_LOOPER_STATE_ENTERED)) + binder_enqueue_work_ilocked( + &death->work, &thread->todo); + else { + binder_enqueue_work_ilocked( + &death->work, + &proc->todo); + binder_wakeup_proc_ilocked(proc); } } + binder_inner_proc_unlock(proc); } break; default: @@ -2136,23 +3845,73 @@ static void binder_stat_br(struct binder_proc *proc, { trace_binder_return(cmd); if (_IOC_NR(cmd) < ARRAY_SIZE(binder_stats.br)) { - binder_stats.br[_IOC_NR(cmd)]++; - proc->stats.br[_IOC_NR(cmd)]++; - thread->stats.br[_IOC_NR(cmd)]++; + atomic_inc(&binder_stats.br[_IOC_NR(cmd)]); + atomic_inc(&proc->stats.br[_IOC_NR(cmd)]); + atomic_inc(&thread->stats.br[_IOC_NR(cmd)]); } } -static int binder_has_proc_work(struct binder_proc *proc, - struct binder_thread *thread) +static int binder_put_node_cmd(struct binder_proc *proc, + struct binder_thread *thread, + void __user **ptrp, + binder_uintptr_t node_ptr, + binder_uintptr_t node_cookie, + int node_debug_id, + uint32_t cmd, const char *cmd_name) { - return !list_empty(&proc->todo) || - (thread->looper & BINDER_LOOPER_STATE_NEED_RETURN); + void __user *ptr = *ptrp; + + if (put_user(cmd, (uint32_t __user *)ptr)) + return -EFAULT; + ptr += sizeof(uint32_t); + + if (put_user(node_ptr, (binder_uintptr_t __user *)ptr)) + return -EFAULT; + ptr += sizeof(binder_uintptr_t); + + if (put_user(node_cookie, (binder_uintptr_t __user *)ptr)) + return -EFAULT; + ptr += sizeof(binder_uintptr_t); + + binder_stat_br(proc, thread, cmd); + binder_debug(BINDER_DEBUG_USER_REFS, "%d:%d %s %d u%016llx c%016llx\n", + proc->pid, thread->pid, cmd_name, node_debug_id, + (u64)node_ptr, (u64)node_cookie); + + *ptrp = ptr; + return 0; } -static int binder_has_thread_work(struct binder_thread *thread) +static int binder_wait_for_work(struct binder_thread *thread, + bool do_proc_work) { - return !list_empty(&thread->todo) || thread->return_error != BR_OK || - (thread->looper & BINDER_LOOPER_STATE_NEED_RETURN); + DEFINE_WAIT(wait); + struct binder_proc *proc = thread->proc; + int ret = 0; + + freezer_do_not_count(); + binder_inner_proc_lock(proc); + for (;;) { + prepare_to_wait(&thread->wait, &wait, TASK_INTERRUPTIBLE); + if (binder_has_work_ilocked(thread, do_proc_work)) + break; + if (do_proc_work) + list_add(&thread->waiting_thread_node, + &proc->waiting_threads); + binder_inner_proc_unlock(proc); + schedule(); + binder_inner_proc_lock(proc); + list_del_init(&thread->waiting_thread_node); + if (signal_pending(current)) { + ret = -ERESTARTSYS; + break; + } + } + finish_wait(&thread->wait, &wait); + binder_inner_proc_unlock(proc); + freezer_count(); + + return ret; } static int binder_thread_read(struct binder_proc *proc, @@ -2165,46 +3924,24 @@ static int binder_thread_read(struct binder_proc *proc, void __user *end = buffer + size; int ret = 0; - int wait_for_proc_work; - - if (*consumed == 0) { - if (put_user(BR_NOOP, (uint32_t __user *)ptr)) - return -EFAULT; - ptr += sizeof(uint32_t); - } - -retry: - wait_for_proc_work = thread->transaction_stack == NULL && - list_empty(&thread->todo); + int wait_for_proc_work; - if (thread->return_error != BR_OK && ptr < end) { - if (thread->return_error2 != BR_OK) { - if (put_user(thread->return_error2, (uint32_t __user *)ptr)) - return -EFAULT; - ptr += sizeof(uint32_t); - binder_stat_br(proc, thread, thread->return_error2); - if (ptr == end) - goto done; - thread->return_error2 = BR_OK; - } - if (put_user(thread->return_error, (uint32_t __user *)ptr)) + if (*consumed == 0) { + if (put_user(BR_NOOP, (uint32_t __user *)ptr)) return -EFAULT; ptr += sizeof(uint32_t); - binder_stat_br(proc, thread, thread->return_error); - thread->return_error = BR_OK; - goto done; } +retry: + binder_inner_proc_lock(proc); + wait_for_proc_work = binder_available_for_proc_work_ilocked(thread); + binder_inner_proc_unlock(proc); thread->looper |= BINDER_LOOPER_STATE_WAITING; - if (wait_for_proc_work) - proc->ready_threads++; - - binder_unlock(__func__); trace_binder_wait_for_work(wait_for_proc_work, !!thread->transaction_stack, - !list_empty(&thread->todo)); + !binder_worklist_empty(proc, &thread->todo)); if (wait_for_proc_work) { if (!(thread->looper & (BINDER_LOOPER_STATE_REGISTERED | BINDER_LOOPER_STATE_ENTERED))) { @@ -2213,24 +3950,16 @@ static int binder_thread_read(struct binder_proc *proc, wait_event_interruptible(binder_user_error_wait, binder_stop_on_user_error < 2); } - binder_set_nice(proc->default_priority); - if (non_block) { - if (!binder_has_proc_work(proc, thread)) - ret = -EAGAIN; - } else - ret = wait_event_freezable_exclusive(proc->wait, binder_has_proc_work(proc, thread)); - } else { - if (non_block) { - if (!binder_has_thread_work(thread)) - ret = -EAGAIN; - } else - ret = wait_event_freezable(thread->wait, binder_has_thread_work(thread)); + binder_restore_priority(current, proc->default_priority); } - binder_lock(__func__); + if (non_block) { + if (!binder_has_work(thread, wait_for_proc_work)) + ret = -EAGAIN; + } else { + ret = binder_wait_for_work(thread, wait_for_proc_work); + } - if (wait_for_proc_work) - proc->ready_threads--; thread->looper &= ~BINDER_LOOPER_STATE_WAITING; if (ret) @@ -2239,31 +3968,52 @@ static int binder_thread_read(struct binder_proc *proc, while (1) { uint32_t cmd; struct binder_transaction_data tr; - struct binder_work *w; + struct binder_work *w = NULL; + struct list_head *list = NULL; struct binder_transaction *t = NULL; + struct binder_thread *t_from; + + binder_inner_proc_lock(proc); + if (!binder_worklist_empty_ilocked(&thread->todo)) + list = &thread->todo; + else if (!binder_worklist_empty_ilocked(&proc->todo) && + wait_for_proc_work) + list = &proc->todo; + else { + binder_inner_proc_unlock(proc); - if (!list_empty(&thread->todo)) { - w = list_first_entry(&thread->todo, struct binder_work, - entry); - } else if (!list_empty(&proc->todo) && wait_for_proc_work) { - w = list_first_entry(&proc->todo, struct binder_work, - entry); - } else { /* no data added */ - if (ptr - buffer == 4 && - !(thread->looper & BINDER_LOOPER_STATE_NEED_RETURN)) + if (ptr - buffer == 4 && !thread->looper_need_return) goto retry; break; } - if (end - ptr < sizeof(tr) + 4) + if (end - ptr < sizeof(tr) + 4) { + binder_inner_proc_unlock(proc); break; + } + w = binder_dequeue_work_head_ilocked(list); switch (w->type) { case BINDER_WORK_TRANSACTION: { + binder_inner_proc_unlock(proc); t = container_of(w, struct binder_transaction, work); } break; + case BINDER_WORK_RETURN_ERROR: { + struct binder_error *e = container_of( + w, struct binder_error, work); + + WARN_ON(e->cmd == BR_OK); + binder_inner_proc_unlock(proc); + if (put_user(e->cmd, (uint32_t __user *)ptr)) + return -EFAULT; + e->cmd = BR_OK; + ptr += sizeof(uint32_t); + + binder_stat_br(proc, thread, cmd); + } break; case BINDER_WORK_TRANSACTION_COMPLETE: { + binder_inner_proc_unlock(proc); cmd = BR_TRANSACTION_COMPLETE; if (put_user(cmd, (uint32_t __user *)ptr)) return -EFAULT; @@ -2273,113 +4023,134 @@ static int binder_thread_read(struct binder_proc *proc, binder_debug(BINDER_DEBUG_TRANSACTION_COMPLETE, "%d:%d BR_TRANSACTION_COMPLETE\n", proc->pid, thread->pid); - - list_del(&w->entry); kfree(w); binder_stats_deleted(BINDER_STAT_TRANSACTION_COMPLETE); } break; case BINDER_WORK_NODE: { struct binder_node *node = container_of(w, struct binder_node, work); - uint32_t cmd = BR_NOOP; - const char *cmd_name; - int strong = node->internal_strong_refs || node->local_strong_refs; - int weak = !hlist_empty(&node->refs) || node->local_weak_refs || strong; - - if (weak && !node->has_weak_ref) { - cmd = BR_INCREFS; - cmd_name = "BR_INCREFS"; + int strong, weak; + binder_uintptr_t node_ptr = node->ptr; + binder_uintptr_t node_cookie = node->cookie; + int node_debug_id = node->debug_id; + int has_weak_ref; + int has_strong_ref; + void __user *orig_ptr = ptr; + + BUG_ON(proc != node->proc); + strong = node->internal_strong_refs || + node->local_strong_refs; + weak = !hlist_empty(&node->refs) || + node->local_weak_refs || + node->tmp_refs || strong; + has_strong_ref = node->has_strong_ref; + has_weak_ref = node->has_weak_ref; + + if (weak && !has_weak_ref) { node->has_weak_ref = 1; node->pending_weak_ref = 1; node->local_weak_refs++; - } else if (strong && !node->has_strong_ref) { - cmd = BR_ACQUIRE; - cmd_name = "BR_ACQUIRE"; + } + if (strong && !has_strong_ref) { node->has_strong_ref = 1; node->pending_strong_ref = 1; node->local_strong_refs++; - } else if (!strong && node->has_strong_ref) { - cmd = BR_RELEASE; - cmd_name = "BR_RELEASE"; + } + if (!strong && has_strong_ref) node->has_strong_ref = 0; - } else if (!weak && node->has_weak_ref) { - cmd = BR_DECREFS; - cmd_name = "BR_DECREFS"; + if (!weak && has_weak_ref) node->has_weak_ref = 0; - } - if (cmd != BR_NOOP) { - if (put_user(cmd, (uint32_t __user *)ptr)) - return -EFAULT; - ptr += sizeof(uint32_t); - if (put_user(node->ptr, - (binder_uintptr_t __user *)ptr)) - return -EFAULT; - ptr += sizeof(binder_uintptr_t); - if (put_user(node->cookie, - (binder_uintptr_t __user *)ptr)) - return -EFAULT; - ptr += sizeof(binder_uintptr_t); - - binder_stat_br(proc, thread, cmd); - binder_debug(BINDER_DEBUG_USER_REFS, - "%d:%d %s %d u%016llx c%016llx\n", - proc->pid, thread->pid, cmd_name, - node->debug_id, - (u64)node->ptr, (u64)node->cookie); - } else { - list_del_init(&w->entry); - if (!weak && !strong) { - binder_debug(BINDER_DEBUG_INTERNAL_REFS, - "%d:%d node %d u%016llx c%016llx deleted\n", - proc->pid, thread->pid, - node->debug_id, - (u64)node->ptr, - (u64)node->cookie); - rb_erase(&node->rb_node, &proc->nodes); - kfree(node); - binder_stats_deleted(BINDER_STAT_NODE); - } else { - binder_debug(BINDER_DEBUG_INTERNAL_REFS, - "%d:%d node %d u%016llx c%016llx state unchanged\n", - proc->pid, thread->pid, - node->debug_id, - (u64)node->ptr, - (u64)node->cookie); - } - } + if (!weak && !strong) { + binder_debug(BINDER_DEBUG_INTERNAL_REFS, + "%d:%d node %d u%016llx c%016llx deleted\n", + proc->pid, thread->pid, + node_debug_id, + (u64)node_ptr, + (u64)node_cookie); + rb_erase(&node->rb_node, &proc->nodes); + binder_inner_proc_unlock(proc); + binder_node_lock(node); + /* + * Acquire the node lock before freeing the + * node to serialize with other threads that + * may have been holding the node lock while + * decrementing this node (avoids race where + * this thread frees while the other thread + * is unlocking the node after the final + * decrement) + */ + binder_node_unlock(node); + binder_free_node(node); + } else + binder_inner_proc_unlock(proc); + + if (weak && !has_weak_ref) + ret = binder_put_node_cmd( + proc, thread, &ptr, node_ptr, + node_cookie, node_debug_id, + BR_INCREFS, "BR_INCREFS"); + if (!ret && strong && !has_strong_ref) + ret = binder_put_node_cmd( + proc, thread, &ptr, node_ptr, + node_cookie, node_debug_id, + BR_ACQUIRE, "BR_ACQUIRE"); + if (!ret && !strong && has_strong_ref) + ret = binder_put_node_cmd( + proc, thread, &ptr, node_ptr, + node_cookie, node_debug_id, + BR_RELEASE, "BR_RELEASE"); + if (!ret && !weak && has_weak_ref) + ret = binder_put_node_cmd( + proc, thread, &ptr, node_ptr, + node_cookie, node_debug_id, + BR_DECREFS, "BR_DECREFS"); + if (orig_ptr == ptr) + binder_debug(BINDER_DEBUG_INTERNAL_REFS, + "%d:%d node %d u%016llx c%016llx state unchanged\n", + proc->pid, thread->pid, + node_debug_id, + (u64)node_ptr, + (u64)node_cookie); + if (ret) + return ret; } break; case BINDER_WORK_DEAD_BINDER: case BINDER_WORK_DEAD_BINDER_AND_CLEAR: case BINDER_WORK_CLEAR_DEATH_NOTIFICATION: { struct binder_ref_death *death; uint32_t cmd; + binder_uintptr_t cookie; death = container_of(w, struct binder_ref_death, work); if (w->type == BINDER_WORK_CLEAR_DEATH_NOTIFICATION) cmd = BR_CLEAR_DEATH_NOTIFICATION_DONE; else cmd = BR_DEAD_BINDER; - if (put_user(cmd, (uint32_t __user *)ptr)) - return -EFAULT; - ptr += sizeof(uint32_t); - if (put_user(death->cookie, - (binder_uintptr_t __user *)ptr)) - return -EFAULT; - ptr += sizeof(binder_uintptr_t); - binder_stat_br(proc, thread, cmd); + cookie = death->cookie; + binder_debug(BINDER_DEBUG_DEATH_NOTIFICATION, "%d:%d %s %016llx\n", proc->pid, thread->pid, cmd == BR_DEAD_BINDER ? "BR_DEAD_BINDER" : "BR_CLEAR_DEATH_NOTIFICATION_DONE", - (u64)death->cookie); - + (u64)cookie); if (w->type == BINDER_WORK_CLEAR_DEATH_NOTIFICATION) { - list_del(&w->entry); + binder_inner_proc_unlock(proc); kfree(death); binder_stats_deleted(BINDER_STAT_DEATH); - } else - list_move(&w->entry, &proc->delivered_death); + } else { + binder_enqueue_work_ilocked( + w, &proc->delivered_death); + binder_inner_proc_unlock(proc); + } + if (put_user(cmd, (uint32_t __user *)ptr)) + return -EFAULT; + ptr += sizeof(uint32_t); + if (put_user(cookie, + (binder_uintptr_t __user *)ptr)) + return -EFAULT; + ptr += sizeof(binder_uintptr_t); + binder_stat_br(proc, thread, cmd); if (cmd == BR_DEAD_BINDER) goto done; /* DEAD_BINDER notifications can cause transactions */ } break; @@ -2391,16 +4162,14 @@ static int binder_thread_read(struct binder_proc *proc, BUG_ON(t->buffer == NULL); if (t->buffer->target_node) { struct binder_node *target_node = t->buffer->target_node; + struct binder_priority node_prio; tr.target.ptr = target_node->ptr; tr.cookie = target_node->cookie; - t->saved_priority = task_nice(current); - if (t->priority < target_node->min_priority && - !(t->flags & TF_ONE_WAY)) - binder_set_nice(t->priority); - else if (!(t->flags & TF_ONE_WAY) || - t->saved_priority > target_node->min_priority) - binder_set_nice(target_node->min_priority); + node_prio.sched_policy = target_node->sched_policy; + node_prio.prio = target_node->min_priority; + binder_transaction_priority(current, t, node_prio, + target_node->inherit_rt); cmd = BR_TRANSACTION; } else { tr.target.ptr = 0; @@ -2411,8 +4180,9 @@ static int binder_thread_read(struct binder_proc *proc, tr.flags = t->flags; tr.sender_euid = from_kuid(current_user_ns(), t->sender_euid); - if (t->from) { - struct task_struct *sender = t->from->proc->tsk; + t_from = binder_get_txn_from(t); + if (t_from) { + struct task_struct *sender = t_from->proc->tsk; tr.sender_pid = task_tgid_nr_ns(sender, task_active_pid_ns(current)); @@ -2422,18 +4192,32 @@ static int binder_thread_read(struct binder_proc *proc, tr.data_size = t->buffer->data_size; tr.offsets_size = t->buffer->offsets_size; - tr.data.ptr.buffer = (binder_uintptr_t)( - (uintptr_t)t->buffer->data + - proc->user_buffer_offset); + tr.data.ptr.buffer = (binder_uintptr_t) + ((uintptr_t)t->buffer->data + + binder_alloc_get_user_buffer_offset(&proc->alloc)); tr.data.ptr.offsets = tr.data.ptr.buffer + ALIGN(t->buffer->data_size, sizeof(void *)); - if (put_user(cmd, (uint32_t __user *)ptr)) + if (put_user(cmd, (uint32_t __user *)ptr)) { + if (t_from) + binder_thread_dec_tmpref(t_from); + + binder_cleanup_transaction(t, "put_user failed", + BR_FAILED_REPLY); + return -EFAULT; + } ptr += sizeof(uint32_t); - if (copy_to_user(ptr, &tr, sizeof(tr))) + if (copy_to_user(ptr, &tr, sizeof(tr))) { + if (t_from) + binder_thread_dec_tmpref(t_from); + + binder_cleanup_transaction(t, "copy_to_user failed", + BR_FAILED_REPLY); + return -EFAULT; + } ptr += sizeof(tr); trace_binder_transaction_received(t); @@ -2443,21 +4227,22 @@ static int binder_thread_read(struct binder_proc *proc, proc->pid, thread->pid, (cmd == BR_TRANSACTION) ? "BR_TRANSACTION" : "BR_REPLY", - t->debug_id, t->from ? t->from->proc->pid : 0, - t->from ? t->from->pid : 0, cmd, + t->debug_id, t_from ? t_from->proc->pid : 0, + t_from ? t_from->pid : 0, cmd, t->buffer->data_size, t->buffer->offsets_size, (u64)tr.data.ptr.buffer, (u64)tr.data.ptr.offsets); - list_del(&t->work.entry); + if (t_from) + binder_thread_dec_tmpref(t_from); t->buffer->allow_user_free = 1; if (cmd == BR_TRANSACTION && !(t->flags & TF_ONE_WAY)) { + binder_inner_proc_lock(thread->proc); t->to_parent = thread->transaction_stack; t->to_thread = thread; thread->transaction_stack = t; + binder_inner_proc_unlock(thread->proc); } else { - t->buffer->transaction = NULL; - kfree(t); - binder_stats_deleted(BINDER_STAT_TRANSACTION); + binder_free_transaction(t); } break; } @@ -2465,45 +4250,52 @@ static int binder_thread_read(struct binder_proc *proc, done: *consumed = ptr - buffer; - if (proc->requested_threads + proc->ready_threads == 0 && + binder_inner_proc_lock(proc); + if (proc->requested_threads == 0 && + list_empty(&thread->proc->waiting_threads) && proc->requested_threads_started < proc->max_threads && (thread->looper & (BINDER_LOOPER_STATE_REGISTERED | BINDER_LOOPER_STATE_ENTERED)) /* the user-space code fails to */ /*spawn a new thread if we leave this out */) { proc->requested_threads++; + binder_inner_proc_unlock(proc); binder_debug(BINDER_DEBUG_THREADS, "%d:%d BR_SPAWN_LOOPER\n", proc->pid, thread->pid); if (put_user(BR_SPAWN_LOOPER, (uint32_t __user *)buffer)) return -EFAULT; binder_stat_br(proc, thread, BR_SPAWN_LOOPER); - } + } else + binder_inner_proc_unlock(proc); return 0; } -static void binder_release_work(struct list_head *list) +static void binder_release_work(struct binder_proc *proc, + struct list_head *list) { struct binder_work *w; - while (!list_empty(list)) { - w = list_first_entry(list, struct binder_work, entry); - list_del_init(&w->entry); + while (1) { + w = binder_dequeue_work_head(proc, list); + if (!w) + return; + switch (w->type) { case BINDER_WORK_TRANSACTION: { struct binder_transaction *t; t = container_of(w, struct binder_transaction, work); - if (t->buffer->target_node && - !(t->flags & TF_ONE_WAY)) { - binder_send_failed_reply(t, BR_DEAD_REPLY); - } else { - binder_debug(BINDER_DEBUG_DEAD_TRANSACTION, - "undelivered transaction %d\n", - t->debug_id); - t->buffer->transaction = NULL; - kfree(t); - binder_stats_deleted(BINDER_STAT_TRANSACTION); - } + + binder_cleanup_transaction(t, "process died.", + BR_DEAD_REPLY); + } break; + case BINDER_WORK_RETURN_ERROR: { + struct binder_error *e = container_of( + w, struct binder_error, work); + + binder_debug(BINDER_DEBUG_DEAD_TRANSACTION, + "undelivered TRANSACTION_ERROR: %u\n", + e->cmd); } break; case BINDER_WORK_TRANSACTION_COMPLETE: { binder_debug(BINDER_DEBUG_DEAD_TRANSACTION, @@ -2531,7 +4323,8 @@ static void binder_release_work(struct list_head *list) } -static struct binder_thread *binder_get_thread(struct binder_proc *proc) +static struct binder_thread *binder_get_thread_ilocked( + struct binder_proc *proc, struct binder_thread *new_thread) { struct binder_thread *thread = NULL; struct rb_node *parent = NULL; @@ -2546,38 +4339,102 @@ static struct binder_thread *binder_get_thread(struct binder_proc *proc) else if (current->pid > thread->pid) p = &(*p)->rb_right; else - break; + return thread; } - if (*p == NULL) { - thread = kzalloc(sizeof(*thread), GFP_KERNEL); - if (thread == NULL) + if (!new_thread) + return NULL; + thread = new_thread; + binder_stats_created(BINDER_STAT_THREAD); + thread->proc = proc; + thread->pid = current->pid; + get_task_struct(current); + thread->task = current; + atomic_set(&thread->tmp_ref, 0); + init_waitqueue_head(&thread->wait); + INIT_LIST_HEAD(&thread->todo); + rb_link_node(&thread->rb_node, parent, p); + rb_insert_color(&thread->rb_node, &proc->threads); + thread->looper_need_return = true; + thread->return_error.work.type = BINDER_WORK_RETURN_ERROR; + thread->return_error.cmd = BR_OK; + thread->reply_error.work.type = BINDER_WORK_RETURN_ERROR; + thread->reply_error.cmd = BR_OK; + INIT_LIST_HEAD(&new_thread->waiting_thread_node); + return thread; +} + +static struct binder_thread *binder_get_thread(struct binder_proc *proc) +{ + struct binder_thread *thread; + struct binder_thread *new_thread; + + binder_inner_proc_lock(proc); + thread = binder_get_thread_ilocked(proc, NULL); + binder_inner_proc_unlock(proc); + if (!thread) { + new_thread = kzalloc(sizeof(*thread), GFP_KERNEL); + if (new_thread == NULL) return NULL; - binder_stats_created(BINDER_STAT_THREAD); - thread->proc = proc; - thread->pid = current->pid; - init_waitqueue_head(&thread->wait); - INIT_LIST_HEAD(&thread->todo); - rb_link_node(&thread->rb_node, parent, p); - rb_insert_color(&thread->rb_node, &proc->threads); - thread->looper |= BINDER_LOOPER_STATE_NEED_RETURN; - thread->return_error = BR_OK; - thread->return_error2 = BR_OK; + binder_inner_proc_lock(proc); + thread = binder_get_thread_ilocked(proc, new_thread); + binder_inner_proc_unlock(proc); + if (thread != new_thread) + kfree(new_thread); } return thread; } -static int binder_free_thread(struct binder_proc *proc, - struct binder_thread *thread) +static void binder_free_proc(struct binder_proc *proc) +{ + BUG_ON(!list_empty(&proc->todo)); + BUG_ON(!list_empty(&proc->delivered_death)); + binder_alloc_deferred_release(&proc->alloc); + put_task_struct(proc->tsk); + binder_stats_deleted(BINDER_STAT_PROC); + kfree(proc); +} + +static void binder_free_thread(struct binder_thread *thread) +{ + BUG_ON(!list_empty(&thread->todo)); + binder_stats_deleted(BINDER_STAT_THREAD); + binder_proc_dec_tmpref(thread->proc); + put_task_struct(thread->task); + kfree(thread); +} + +static int binder_thread_release(struct binder_proc *proc, + struct binder_thread *thread) { struct binder_transaction *t; struct binder_transaction *send_reply = NULL; int active_transactions = 0; - + struct binder_transaction *last_t = NULL; + + binder_inner_proc_lock(thread->proc); + /* + * take a ref on the proc so it survives + * after we remove this thread from proc->threads. + * The corresponding dec is when we actually + * free the thread in binder_free_thread() + */ + proc->tmp_ref++; + /* + * take a ref on this thread to ensure it + * survives while we are releasing it + */ + atomic_inc(&thread->tmp_ref); rb_erase(&thread->rb_node, &proc->threads); t = thread->transaction_stack; - if (t && t->to_thread == thread) - send_reply = t; + if (t) { + spin_lock(&t->lock); + if (t->to_thread == thread) + send_reply = t; + } + thread->is_dead = true; + while (t) { + last_t = t; active_transactions++; binder_debug(BINDER_DEBUG_DEAD_TRANSACTION, "release %d:%d transaction %d %s, still active\n", @@ -2598,12 +4455,16 @@ static int binder_free_thread(struct binder_proc *proc, t = t->from_parent; } else BUG(); + spin_unlock(&last_t->lock); + if (t) + spin_lock(&t->lock); } + binder_inner_proc_unlock(thread->proc); + if (send_reply) binder_send_failed_reply(send_reply, BR_DEAD_REPLY); - binder_release_work(&thread->todo); - kfree(thread); - binder_stats_deleted(BINDER_STAT_THREAD); + binder_release_work(proc, &thread->todo); + binder_thread_dec_tmpref(thread); return active_transactions; } @@ -2612,30 +4473,21 @@ static unsigned int binder_poll(struct file *filp, { struct binder_proc *proc = filp->private_data; struct binder_thread *thread = NULL; - int wait_for_proc_work; - - binder_lock(__func__); + bool wait_for_proc_work; thread = binder_get_thread(proc); - wait_for_proc_work = thread->transaction_stack == NULL && - list_empty(&thread->todo) && thread->return_error == BR_OK; + binder_inner_proc_lock(thread->proc); + thread->looper |= BINDER_LOOPER_STATE_POLL; + wait_for_proc_work = binder_available_for_proc_work_ilocked(thread); - binder_unlock(__func__); + binder_inner_proc_unlock(thread->proc); + + poll_wait(filp, &thread->wait, wait); + + if (binder_has_work(thread, wait_for_proc_work)) + return POLLIN; - if (wait_for_proc_work) { - if (binder_has_proc_work(proc, thread)) - return POLLIN; - poll_wait(filp, &proc->wait, wait); - if (binder_has_proc_work(proc, thread)) - return POLLIN; - } else { - if (binder_has_thread_work(thread)) - return POLLIN; - poll_wait(filp, &thread->wait, wait); - if (binder_has_thread_work(thread)) - return POLLIN; - } return 0; } @@ -2682,8 +4534,10 @@ static int binder_ioctl_write_read(struct file *filp, &bwr.read_consumed, filp->f_flags & O_NONBLOCK); trace_binder_read_done(ret); - if (!list_empty(&proc->todo)) - wake_up_interruptible(&proc->wait); + binder_inner_proc_lock(proc); + if (!binder_worklist_empty_ilocked(&proc->todo)) + binder_wakeup_proc_ilocked(proc); + binder_inner_proc_unlock(proc); if (ret < 0) { if (copy_to_user(ubuf, &bwr, sizeof(bwr))) ret = -EFAULT; @@ -2707,9 +4561,12 @@ static int binder_ioctl_set_ctx_mgr(struct file *filp) { int ret = 0; struct binder_proc *proc = filp->private_data; + struct binder_context *context = proc->context; + struct binder_node *new_node; kuid_t curr_euid = current_euid(); - if (binder_context_mgr_node != NULL) { + mutex_lock(&context->context_mgr_node_lock); + if (context->binder_context_mgr_node) { pr_err("BINDER_SET_CONTEXT_MGR already set\n"); ret = -EBUSY; goto out; @@ -2717,31 +4574,60 @@ static int binder_ioctl_set_ctx_mgr(struct file *filp) ret = security_binder_set_context_mgr(proc->tsk); if (ret < 0) goto out; - if (uid_valid(binder_context_mgr_uid)) { - if (!uid_eq(binder_context_mgr_uid, curr_euid)) { + if (uid_valid(context->binder_context_mgr_uid)) { + if (!uid_eq(context->binder_context_mgr_uid, curr_euid)) { pr_err("BINDER_SET_CONTEXT_MGR bad uid %d != %d\n", from_kuid(&init_user_ns, curr_euid), from_kuid(&init_user_ns, - binder_context_mgr_uid)); + context->binder_context_mgr_uid)); ret = -EPERM; goto out; } } else { - binder_context_mgr_uid = curr_euid; + context->binder_context_mgr_uid = curr_euid; } - binder_context_mgr_node = binder_new_node(proc, 0, 0); - if (binder_context_mgr_node == NULL) { + new_node = binder_new_node(proc, NULL); + if (!new_node) { ret = -ENOMEM; goto out; } - binder_context_mgr_node->local_weak_refs++; - binder_context_mgr_node->local_strong_refs++; - binder_context_mgr_node->has_strong_ref = 1; - binder_context_mgr_node->has_weak_ref = 1; + binder_node_lock(new_node); + new_node->local_weak_refs++; + new_node->local_strong_refs++; + new_node->has_strong_ref = 1; + new_node->has_weak_ref = 1; + context->binder_context_mgr_node = new_node; + binder_node_unlock(new_node); + binder_put_node(new_node); out: + mutex_unlock(&context->context_mgr_node_lock); return ret; } +static int binder_ioctl_get_node_debug_info(struct binder_proc *proc, + struct binder_node_debug_info *info) { + struct rb_node *n; + binder_uintptr_t ptr = info->ptr; + + memset(info, 0, sizeof(*info)); + + binder_inner_proc_lock(proc); + for (n = rb_first(&proc->nodes); n != NULL; n = rb_next(n)) { + struct binder_node *node = rb_entry(n, struct binder_node, + rb_node); + if (node->ptr > ptr) { + info->ptr = node->ptr; + info->cookie = node->cookie; + info->has_strong_ref = node->has_strong_ref; + info->has_weak_ref = node->has_weak_ref; + break; + } + } + binder_inner_proc_unlock(proc); + + return 0; +} + static long binder_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) { int ret; @@ -2753,13 +4639,14 @@ static long binder_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) /*pr_info("binder_ioctl: %d:%d %x %lx\n", proc->pid, current->pid, cmd, arg);*/ + binder_selftest_alloc(&proc->alloc); + trace_binder_ioctl(cmd, arg); ret = wait_event_interruptible(binder_user_error_wait, binder_stop_on_user_error < 2); if (ret) goto err_unlocked; - binder_lock(__func__); thread = binder_get_thread(proc); if (thread == NULL) { ret = -ENOMEM; @@ -2772,12 +4659,19 @@ static long binder_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) if (ret) goto err; break; - case BINDER_SET_MAX_THREADS: - if (copy_from_user(&proc->max_threads, ubuf, sizeof(proc->max_threads))) { + case BINDER_SET_MAX_THREADS: { + int max_threads; + + if (copy_from_user(&max_threads, ubuf, + sizeof(max_threads))) { ret = -EINVAL; goto err; } + binder_inner_proc_lock(proc); + proc->max_threads = max_threads; + binder_inner_proc_unlock(proc); break; + } case BINDER_SET_CONTEXT_MGR: ret = binder_ioctl_set_ctx_mgr(filp); if (ret) @@ -2786,7 +4680,7 @@ static long binder_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) case BINDER_THREAD_EXIT: binder_debug(BINDER_DEBUG_THREADS, "%d:%d exit\n", proc->pid, thread->pid); - binder_free_thread(proc, thread); + binder_thread_release(proc, thread); thread = NULL; break; case BINDER_VERSION: { @@ -2803,6 +4697,24 @@ static long binder_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) } break; } + case BINDER_GET_NODE_DEBUG_INFO: { + struct binder_node_debug_info info; + + if (copy_from_user(&info, ubuf, sizeof(info))) { + ret = -EFAULT; + goto err; + } + + ret = binder_ioctl_get_node_debug_info(proc, &info); + if (ret < 0) + goto err; + + if (copy_to_user(ubuf, &info, sizeof(info))) { + ret = -EFAULT; + goto err; + } + break; + } default: ret = -EINVAL; goto err; @@ -2810,8 +4722,7 @@ static long binder_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) ret = 0; err: if (thread) - thread->looper &= ~BINDER_LOOPER_STATE_NEED_RETURN; - binder_unlock(__func__); + thread->looper_need_return = false; wait_event_interruptible(binder_user_error_wait, binder_stop_on_user_error < 2); if (ret && ret != -ERESTARTSYS) pr_info("%d:%d ioctl %x %lx returned %d\n", proc->pid, current->pid, cmd, arg, ret); @@ -2840,8 +4751,7 @@ static void binder_vma_close(struct vm_area_struct *vma) proc->pid, vma->vm_start, vma->vm_end, (vma->vm_end - vma->vm_start) / SZ_1K, vma->vm_flags, (unsigned long)pgprot_val(vma->vm_page_prot)); - proc->vma = NULL; - proc->vma_vm_mm = NULL; + binder_alloc_vma_close(&proc->alloc); binder_defer_work(proc, BINDER_DEFERRED_PUT_FILES); } @@ -2859,20 +4769,18 @@ static struct vm_operations_struct binder_vm_ops = { static int binder_mmap(struct file *filp, struct vm_area_struct *vma) { int ret; - struct vm_struct *area; struct binder_proc *proc = filp->private_data; const char *failure_string; - struct binder_buffer *buffer; - if (proc->tsk != current) + if (proc->tsk != current->group_leader) return -EINVAL; if ((vma->vm_end - vma->vm_start) > SZ_4M) vma->vm_end = vma->vm_start + SZ_4M; binder_debug(BINDER_DEBUG_OPEN_CLOSE, - "binder_mmap: %d %lx-%lx (%ld K) vma %lx pagep %lx\n", - proc->pid, vma->vm_start, vma->vm_end, + "%s: %d %lx-%lx (%ld K) vma %lx pagep %lx\n", + __func__, proc->pid, vma->vm_start, vma->vm_end, (vma->vm_end - vma->vm_start) / SZ_1K, vma->vm_flags, (unsigned long)pgprot_val(vma->vm_page_prot)); @@ -2882,73 +4790,15 @@ static int binder_mmap(struct file *filp, struct vm_area_struct *vma) goto err_bad_arg; } vma->vm_flags = (vma->vm_flags | VM_DONTCOPY) & ~VM_MAYWRITE; - - mutex_lock(&binder_mmap_lock); - if (proc->buffer) { - ret = -EBUSY; - failure_string = "already mapped"; - goto err_already_mapped; - } - - area = get_vm_area(vma->vm_end - vma->vm_start, VM_IOREMAP); - if (area == NULL) { - ret = -ENOMEM; - failure_string = "get_vm_area"; - goto err_get_vm_area_failed; - } - proc->buffer = area->addr; - proc->user_buffer_offset = vma->vm_start - (uintptr_t)proc->buffer; - mutex_unlock(&binder_mmap_lock); - -#ifdef CONFIG_CPU_CACHE_VIPT - if (cache_is_vipt_aliasing()) { - while (CACHE_COLOUR((vma->vm_start ^ (uint32_t)proc->buffer))) { - pr_info("binder_mmap: %d %lx-%lx maps %pK bad alignment\n", proc->pid, vma->vm_start, vma->vm_end, proc->buffer); - vma->vm_start += PAGE_SIZE; - } - } -#endif - proc->pages = kzalloc(sizeof(proc->pages[0]) * ((vma->vm_end - vma->vm_start) / PAGE_SIZE), GFP_KERNEL); - if (proc->pages == NULL) { - ret = -ENOMEM; - failure_string = "alloc page array"; - goto err_alloc_pages_failed; - } - proc->buffer_size = vma->vm_end - vma->vm_start; - vma->vm_ops = &binder_vm_ops; vma->vm_private_data = proc; - if (binder_update_page_range(proc, 1, proc->buffer, proc->buffer + PAGE_SIZE, vma)) { - ret = -ENOMEM; - failure_string = "alloc small buf"; - goto err_alloc_small_buf_failed; - } - buffer = proc->buffer; - INIT_LIST_HEAD(&proc->buffers); - list_add(&buffer->entry, &proc->buffers); - buffer->free = 1; - binder_insert_free_buffer(proc, buffer); - proc->free_async_space = proc->buffer_size / 2; - barrier(); + ret = binder_alloc_mmap_handler(&proc->alloc, vma); + if (ret) + return ret; proc->files = get_files_struct(current); - proc->vma = vma; - proc->vma_vm_mm = vma->vm_mm; - - /*pr_info("binder_mmap: %d %lx-%lx maps %pK\n", - proc->pid, vma->vm_start, vma->vm_end, proc->buffer);*/ return 0; -err_alloc_small_buf_failed: - kfree(proc->pages); - proc->pages = NULL; -err_alloc_pages_failed: - mutex_lock(&binder_mmap_lock); - vfree(proc->buffer); - proc->buffer = NULL; -err_get_vm_area_failed: -err_already_mapped: - mutex_unlock(&binder_mmap_lock); err_bad_arg: pr_err("binder_mmap: %d %lx-%lx %s failed %d\n", proc->pid, vma->vm_start, vma->vm_end, failure_string, ret); @@ -2958,6 +4808,7 @@ static int binder_mmap(struct file *filp, struct vm_area_struct *vma) static int binder_open(struct inode *nodp, struct file *filp) { struct binder_proc *proc; + struct binder_device *binder_dev; binder_debug(BINDER_DEBUG_OPEN_CLOSE, "binder_open: %d:%d\n", current->group_leader->pid, current->pid); @@ -2965,28 +4816,49 @@ static int binder_open(struct inode *nodp, struct file *filp) proc = kzalloc(sizeof(*proc), GFP_KERNEL); if (proc == NULL) return -ENOMEM; - get_task_struct(current); - proc->tsk = current; + spin_lock_init(&proc->inner_lock); + spin_lock_init(&proc->outer_lock); + get_task_struct(current->group_leader); + proc->tsk = current->group_leader; INIT_LIST_HEAD(&proc->todo); - init_waitqueue_head(&proc->wait); - proc->default_priority = task_nice(current); + if (binder_supported_policy(current->policy)) { + proc->default_priority.sched_policy = current->policy; + proc->default_priority.prio = current->normal_prio; + } else { + proc->default_priority.sched_policy = SCHED_NORMAL; + proc->default_priority.prio = NICE_TO_PRIO(0); + } - binder_lock(__func__); + binder_dev = container_of(filp->private_data, struct binder_device, + miscdev); + proc->context = &binder_dev->context; + binder_alloc_init(&proc->alloc); binder_stats_created(BINDER_STAT_PROC); - hlist_add_head(&proc->proc_node, &binder_procs); proc->pid = current->group_leader->pid; INIT_LIST_HEAD(&proc->delivered_death); + INIT_LIST_HEAD(&proc->waiting_threads); filp->private_data = proc; - binder_unlock(__func__); + mutex_lock(&binder_procs_lock); + hlist_add_head(&proc->proc_node, &binder_procs); + mutex_unlock(&binder_procs_lock); if (binder_debugfs_dir_entry_proc) { char strbuf[11]; snprintf(strbuf, sizeof(strbuf), "%u", proc->pid); + /* + * proc debug entries are shared between contexts, so + * this will fail if the process tries to open the driver + * again with a different context. The priting code will + * anyway print all contexts that a given PID has, so this + * is not a problem. + */ proc->debugfs_entry = debugfs_create_file(strbuf, S_IRUGO, - binder_debugfs_dir_entry_proc, proc, &binder_proc_fops); + binder_debugfs_dir_entry_proc, + (void *)(unsigned long)proc->pid, + &binder_proc_fops); } return 0; @@ -3006,16 +4878,17 @@ static void binder_deferred_flush(struct binder_proc *proc) struct rb_node *n; int wake_count = 0; + binder_inner_proc_lock(proc); for (n = rb_first(&proc->threads); n != NULL; n = rb_next(n)) { struct binder_thread *thread = rb_entry(n, struct binder_thread, rb_node); - thread->looper |= BINDER_LOOPER_STATE_NEED_RETURN; + thread->looper_need_return = true; if (thread->looper & BINDER_LOOPER_STATE_WAITING) { wake_up_interruptible(&thread->wait); wake_count++; } } - wake_up_interruptible_all(&proc->wait); + binder_inner_proc_unlock(proc); binder_debug(BINDER_DEBUG_OPEN_CLOSE, "binder_flush: %d woke %d threads\n", proc->pid, @@ -3036,13 +4909,21 @@ static int binder_node_release(struct binder_node *node, int refs) { struct binder_ref *ref; int death = 0; - - list_del_init(&node->work.entry); - binder_release_work(&node->async_todo); - - if (hlist_empty(&node->refs)) { - kfree(node); - binder_stats_deleted(BINDER_STAT_NODE); + struct binder_proc *proc = node->proc; + + binder_release_work(proc, &node->async_todo); + + binder_node_lock(node); + binder_inner_proc_lock(proc); + binder_dequeue_work_ilocked(&node->work); + /* + * The caller must have taken a temporary ref on the node, + */ + BUG_ON(!node->tmp_refs); + if (hlist_empty(&node->refs) && node->tmp_refs == 1) { + binder_inner_proc_unlock(proc); + binder_node_unlock(node); + binder_free_node(node); return refs; } @@ -3050,59 +4931,84 @@ static int binder_node_release(struct binder_node *node, int refs) node->proc = NULL; node->local_strong_refs = 0; node->local_weak_refs = 0; + binder_inner_proc_unlock(proc); + + spin_lock(&binder_dead_nodes_lock); hlist_add_head(&node->dead_node, &binder_dead_nodes); + spin_unlock(&binder_dead_nodes_lock); hlist_for_each_entry(ref, &node->refs, node_entry) { refs++; - - if (!ref->death) + /* + * Need the node lock to synchronize + * with new notification requests and the + * inner lock to synchronize with queued + * death notifications. + */ + binder_inner_proc_lock(ref->proc); + if (!ref->death) { + binder_inner_proc_unlock(ref->proc); continue; + } death++; - if (list_empty(&ref->death->work.entry)) { - ref->death->work.type = BINDER_WORK_DEAD_BINDER; - list_add_tail(&ref->death->work.entry, - &ref->proc->todo); - wake_up_interruptible(&ref->proc->wait); - } else - BUG(); + BUG_ON(!list_empty(&ref->death->work.entry)); + ref->death->work.type = BINDER_WORK_DEAD_BINDER; + binder_enqueue_work_ilocked(&ref->death->work, + &ref->proc->todo); + binder_wakeup_proc_ilocked(ref->proc); + binder_inner_proc_unlock(ref->proc); } binder_debug(BINDER_DEBUG_DEAD_BINDER, "node %d now dead, refs %d, death %d\n", node->debug_id, refs, death); + binder_node_unlock(node); + binder_put_node(node); return refs; } static void binder_deferred_release(struct binder_proc *proc) { - struct binder_transaction *t; + struct binder_context *context = proc->context; struct rb_node *n; - int threads, nodes, incoming_refs, outgoing_refs, buffers, - active_transactions, page_count; + int threads, nodes, incoming_refs, outgoing_refs, active_transactions; - BUG_ON(proc->vma); BUG_ON(proc->files); + mutex_lock(&binder_procs_lock); hlist_del(&proc->proc_node); + mutex_unlock(&binder_procs_lock); - if (binder_context_mgr_node && binder_context_mgr_node->proc == proc) { + mutex_lock(&context->context_mgr_node_lock); + if (context->binder_context_mgr_node && + context->binder_context_mgr_node->proc == proc) { binder_debug(BINDER_DEBUG_DEAD_BINDER, "%s: %d context_mgr_node gone\n", __func__, proc->pid); - binder_context_mgr_node = NULL; + context->binder_context_mgr_node = NULL; } - + mutex_unlock(&context->context_mgr_node_lock); + binder_inner_proc_lock(proc); + /* + * Make sure proc stays alive after we + * remove all the threads + */ + proc->tmp_ref++; + + proc->is_dead = true; threads = 0; active_transactions = 0; while ((n = rb_first(&proc->threads))) { struct binder_thread *thread; thread = rb_entry(n, struct binder_thread, rb_node); + binder_inner_proc_unlock(proc); threads++; - active_transactions += binder_free_thread(proc, thread); + active_transactions += binder_thread_release(proc, thread); + binder_inner_proc_lock(proc); } nodes = 0; @@ -3112,73 +5018,42 @@ static void binder_deferred_release(struct binder_proc *proc) node = rb_entry(n, struct binder_node, rb_node); nodes++; + /* + * take a temporary ref on the node before + * calling binder_node_release() which will either + * kfree() the node or call binder_put_node() + */ + binder_inc_node_tmpref_ilocked(node); rb_erase(&node->rb_node, &proc->nodes); + binder_inner_proc_unlock(proc); incoming_refs = binder_node_release(node, incoming_refs); + binder_inner_proc_lock(proc); } + binder_inner_proc_unlock(proc); outgoing_refs = 0; + binder_proc_lock(proc); while ((n = rb_first(&proc->refs_by_desc))) { struct binder_ref *ref; ref = rb_entry(n, struct binder_ref, rb_node_desc); outgoing_refs++; - binder_delete_ref(ref); - } - - binder_release_work(&proc->todo); - binder_release_work(&proc->delivered_death); - - buffers = 0; - while ((n = rb_first(&proc->allocated_buffers))) { - struct binder_buffer *buffer; - - buffer = rb_entry(n, struct binder_buffer, rb_node); - - t = buffer->transaction; - if (t) { - t->buffer = NULL; - buffer->transaction = NULL; - pr_err("release proc %d, transaction %d, not freed\n", - proc->pid, t->debug_id); - /*BUG();*/ - } - - binder_free_buf(proc, buffer); - buffers++; - } - - binder_stats_deleted(BINDER_STAT_PROC); - - page_count = 0; - if (proc->pages) { - int i; - - for (i = 0; i < proc->buffer_size / PAGE_SIZE; i++) { - void *page_addr; - - if (!proc->pages[i]) - continue; - - page_addr = proc->buffer + i * PAGE_SIZE; - binder_debug(BINDER_DEBUG_BUFFER_ALLOC, - "%s: %d: page %d at %pK not freed\n", - __func__, proc->pid, i, page_addr); - unmap_kernel_range((unsigned long)page_addr, PAGE_SIZE); - __free_page(proc->pages[i]); - page_count++; - } - kfree(proc->pages); - vfree(proc->buffer); + binder_cleanup_ref_olocked(ref); + binder_proc_unlock(proc); + binder_free_ref(ref); + binder_proc_lock(proc); } + binder_proc_unlock(proc); - put_task_struct(proc->tsk); + binder_release_work(proc, &proc->todo); + binder_release_work(proc, &proc->delivered_death); binder_debug(BINDER_DEBUG_OPEN_CLOSE, - "%s: %d threads %d, nodes %d (ref %d), refs %d, active transactions %d, buffers %d, pages %d\n", + "%s: %d threads %d, nodes %d (ref %d), refs %d, active transactions %d\n", __func__, proc->pid, threads, nodes, incoming_refs, - outgoing_refs, active_transactions, buffers, page_count); + outgoing_refs, active_transactions); - kfree(proc); + binder_proc_dec_tmpref(proc); } static void binder_deferred_func(struct work_struct *work) @@ -3189,7 +5064,6 @@ static void binder_deferred_func(struct work_struct *work) int defer; do { - binder_lock(__func__); mutex_lock(&binder_deferred_lock); if (!hlist_empty(&binder_deferred_list)) { proc = hlist_entry(binder_deferred_list.first, @@ -3216,7 +5090,6 @@ static void binder_deferred_func(struct work_struct *work) if (defer & BINDER_DEFERRED_RELEASE) binder_deferred_release(proc); /* frees proc */ - binder_unlock(__func__); if (files) put_files_struct(files); } while (proc); @@ -3236,41 +5109,52 @@ binder_defer_work(struct binder_proc *proc, enum binder_deferred_state defer) mutex_unlock(&binder_deferred_lock); } -static void print_binder_transaction(struct seq_file *m, const char *prefix, - struct binder_transaction *t) +static void print_binder_transaction_ilocked(struct seq_file *m, + struct binder_proc *proc, + const char *prefix, + struct binder_transaction *t) { + struct binder_proc *to_proc; + struct binder_buffer *buffer = t->buffer; + + spin_lock(&t->lock); + to_proc = t->to_proc; seq_printf(m, - "%s %d: %pK from %d:%d to %d:%d code %x flags %x pri %ld r%d", + "%s %d: %p from %d:%d to %d:%d code %x flags %x pri %d:%d r%d", prefix, t->debug_id, t, t->from ? t->from->proc->pid : 0, t->from ? t->from->pid : 0, - t->to_proc ? t->to_proc->pid : 0, + to_proc ? to_proc->pid : 0, t->to_thread ? t->to_thread->pid : 0, - t->code, t->flags, t->priority, t->need_reply); - if (t->buffer == NULL) { - seq_puts(m, " buffer free\n"); + t->code, t->flags, t->priority.sched_policy, + t->priority.prio, t->need_reply); + spin_unlock(&t->lock); + + if (proc != to_proc) { + /* + * Can only safely deref buffer if we are holding the + * correct proc inner lock for this node + */ + seq_puts(m, "\n"); return; } - if (t->buffer->target_node) - seq_printf(m, " node %d", - t->buffer->target_node->debug_id); - seq_printf(m, " size %zd:%zd data %pK\n", - t->buffer->data_size, t->buffer->offsets_size, - t->buffer->data); -} -static void print_binder_buffer(struct seq_file *m, const char *prefix, - struct binder_buffer *buffer) -{ - seq_printf(m, "%s %d: %pK size %zd:%zd %s\n", - prefix, buffer->debug_id, buffer->data, + if (buffer == NULL) { + seq_puts(m, " buffer free\n"); + return; + } + if (buffer->target_node) + seq_printf(m, " node %d", buffer->target_node->debug_id); + seq_printf(m, " size %zd:%zd data %p\n", buffer->data_size, buffer->offsets_size, - buffer->transaction ? "active" : "delivered"); + buffer->data); } -static void print_binder_work(struct seq_file *m, const char *prefix, - const char *transaction_prefix, - struct binder_work *w) +static void print_binder_work_ilocked(struct seq_file *m, + struct binder_proc *proc, + const char *prefix, + const char *transaction_prefix, + struct binder_work *w) { struct binder_node *node; struct binder_transaction *t; @@ -3278,8 +5162,16 @@ static void print_binder_work(struct seq_file *m, const char *prefix, switch (w->type) { case BINDER_WORK_TRANSACTION: t = container_of(w, struct binder_transaction, work); - print_binder_transaction(m, transaction_prefix, t); + print_binder_transaction_ilocked( + m, proc, transaction_prefix, t); break; + case BINDER_WORK_RETURN_ERROR: { + struct binder_error *e = container_of( + w, struct binder_error, work); + + seq_printf(m, "%stransaction error: %u\n", + prefix, e->cmd); + } break; case BINDER_WORK_TRANSACTION_COMPLETE: seq_printf(m, "%stransaction complete\n", prefix); break; @@ -3304,40 +5196,46 @@ static void print_binder_work(struct seq_file *m, const char *prefix, } } -static void print_binder_thread(struct seq_file *m, - struct binder_thread *thread, - int print_always) +static void print_binder_thread_ilocked(struct seq_file *m, + struct binder_thread *thread, + int print_always) { struct binder_transaction *t; struct binder_work *w; size_t start_pos = m->count; size_t header_pos; - seq_printf(m, " thread %d: l %02x\n", thread->pid, thread->looper); + seq_printf(m, " thread %d: l %02x need_return %d tr %d\n", + thread->pid, thread->looper, + thread->looper_need_return, + atomic_read(&thread->tmp_ref)); header_pos = m->count; t = thread->transaction_stack; while (t) { if (t->from == thread) { - print_binder_transaction(m, - " outgoing transaction", t); + print_binder_transaction_ilocked(m, thread->proc, + " outgoing transaction", t); t = t->from_parent; } else if (t->to_thread == thread) { - print_binder_transaction(m, + print_binder_transaction_ilocked(m, thread->proc, " incoming transaction", t); t = t->to_parent; } else { - print_binder_transaction(m, " bad transaction", t); + print_binder_transaction_ilocked(m, thread->proc, + " bad transaction", t); t = NULL; } } list_for_each_entry(w, &thread->todo, entry) { - print_binder_work(m, " ", " pending transaction", w); + print_binder_work_ilocked(m, thread->proc, " ", + " pending transaction", w); } if (!print_always && m->count == header_pos) m->count = start_pos; } -static void print_binder_node(struct seq_file *m, struct binder_node *node) +static void print_binder_node_nilocked(struct seq_file *m, + struct binder_node *node) { struct binder_ref *ref; struct binder_work *w; @@ -3347,27 +5245,35 @@ static void print_binder_node(struct seq_file *m, struct binder_node *node) hlist_for_each_entry(ref, &node->refs, node_entry) count++; - seq_printf(m, " node %d: u%016llx c%016llx hs %d hw %d ls %d lw %d is %d iw %d", + seq_printf(m, " node %d: u%016llx c%016llx pri %d:%d hs %d hw %d ls %d lw %d is %d iw %d tr %d", node->debug_id, (u64)node->ptr, (u64)node->cookie, + node->sched_policy, node->min_priority, node->has_strong_ref, node->has_weak_ref, node->local_strong_refs, node->local_weak_refs, - node->internal_strong_refs, count); + node->internal_strong_refs, count, node->tmp_refs); if (count) { seq_puts(m, " proc"); hlist_for_each_entry(ref, &node->refs, node_entry) seq_printf(m, " %d", ref->proc->pid); } seq_puts(m, "\n"); - list_for_each_entry(w, &node->async_todo, entry) - print_binder_work(m, " ", - " pending async transaction", w); + if (node->proc) { + list_for_each_entry(w, &node->async_todo, entry) + print_binder_work_ilocked(m, node->proc, " ", + " pending async transaction", w); + } } -static void print_binder_ref(struct seq_file *m, struct binder_ref *ref) +static void print_binder_ref_olocked(struct seq_file *m, + struct binder_ref *ref) { + binder_node_lock(ref->node); seq_printf(m, " ref %d: desc %d %snode %d s %d w %d d %pK\n", - ref->debug_id, ref->desc, ref->node->proc ? "" : "dead ", - ref->node->debug_id, ref->strong, ref->weak, ref->death); + ref->data.debug_id, ref->data.desc, + ref->node->proc ? "" : "dead ", + ref->node->debug_id, ref->data.strong, + ref->data.weak, ref->death); + binder_node_unlock(ref->node); } static void print_binder_proc(struct seq_file *m, @@ -3377,35 +5283,60 @@ static void print_binder_proc(struct seq_file *m, struct rb_node *n; size_t start_pos = m->count; size_t header_pos; + struct binder_node *last_node = NULL; seq_printf(m, "proc %d\n", proc->pid); + seq_printf(m, "context %s\n", proc->context->name); header_pos = m->count; + binder_inner_proc_lock(proc); for (n = rb_first(&proc->threads); n != NULL; n = rb_next(n)) - print_binder_thread(m, rb_entry(n, struct binder_thread, + print_binder_thread_ilocked(m, rb_entry(n, struct binder_thread, rb_node), print_all); + for (n = rb_first(&proc->nodes); n != NULL; n = rb_next(n)) { struct binder_node *node = rb_entry(n, struct binder_node, rb_node); - if (print_all || node->has_async_transaction) - print_binder_node(m, node); + /* + * take a temporary reference on the node so it + * survives and isn't removed from the tree + * while we print it. + */ + binder_inc_node_tmpref_ilocked(node); + /* Need to drop inner lock to take node lock */ + binder_inner_proc_unlock(proc); + if (last_node) + binder_put_node(last_node); + binder_node_inner_lock(node); + print_binder_node_nilocked(m, node); + binder_node_inner_unlock(node); + last_node = node; + binder_inner_proc_lock(proc); } + binder_inner_proc_unlock(proc); + if (last_node) + binder_put_node(last_node); + if (print_all) { + binder_proc_lock(proc); for (n = rb_first(&proc->refs_by_desc); n != NULL; n = rb_next(n)) - print_binder_ref(m, rb_entry(n, struct binder_ref, - rb_node_desc)); + print_binder_ref_olocked(m, rb_entry(n, + struct binder_ref, + rb_node_desc)); + binder_proc_unlock(proc); } - for (n = rb_first(&proc->allocated_buffers); n != NULL; n = rb_next(n)) - print_binder_buffer(m, " buffer", - rb_entry(n, struct binder_buffer, rb_node)); + binder_alloc_print_allocated(m, &proc->alloc); + binder_inner_proc_lock(proc); list_for_each_entry(w, &proc->todo, entry) - print_binder_work(m, " ", " pending transaction", w); + print_binder_work_ilocked(m, proc, " ", + " pending transaction", w); list_for_each_entry(w, &proc->delivered_death, entry) { seq_puts(m, " has delivered dead binder\n"); break; } + binder_inner_proc_unlock(proc); if (!print_all && m->count == header_pos) m->count = start_pos; } @@ -3448,7 +5379,9 @@ static const char * const binder_command_strings[] = { "BC_EXIT_LOOPER", "BC_REQUEST_DEATH_NOTIFICATION", "BC_CLEAR_DEATH_NOTIFICATION", - "BC_DEAD_BINDER_DONE" + "BC_DEAD_BINDER_DONE", + "BC_TRANSACTION_SG", + "BC_REPLY_SG", }; static const char * const binder_objstat_strings[] = { @@ -3469,17 +5402,21 @@ static void print_binder_stats(struct seq_file *m, const char *prefix, BUILD_BUG_ON(ARRAY_SIZE(stats->bc) != ARRAY_SIZE(binder_command_strings)); for (i = 0; i < ARRAY_SIZE(stats->bc); i++) { - if (stats->bc[i]) + int temp = atomic_read(&stats->bc[i]); + + if (temp) seq_printf(m, "%s%s: %d\n", prefix, - binder_command_strings[i], stats->bc[i]); + binder_command_strings[i], temp); } BUILD_BUG_ON(ARRAY_SIZE(stats->br) != ARRAY_SIZE(binder_return_strings)); for (i = 0; i < ARRAY_SIZE(stats->br); i++) { - if (stats->br[i]) + int temp = atomic_read(&stats->br[i]); + + if (temp) seq_printf(m, "%s%s: %d\n", prefix, - binder_return_strings[i], stats->br[i]); + binder_return_strings[i], temp); } BUILD_BUG_ON(ARRAY_SIZE(stats->obj_created) != @@ -3487,11 +5424,15 @@ static void print_binder_stats(struct seq_file *m, const char *prefix, BUILD_BUG_ON(ARRAY_SIZE(stats->obj_created) != ARRAY_SIZE(stats->obj_deleted)); for (i = 0; i < ARRAY_SIZE(stats->obj_created); i++) { - if (stats->obj_created[i] || stats->obj_deleted[i]) - seq_printf(m, "%s%s: active %d total %d\n", prefix, + int created = atomic_read(&stats->obj_created[i]); + int deleted = atomic_read(&stats->obj_deleted[i]); + + if (created || deleted) + seq_printf(m, "%s%s: active %d total %d\n", + prefix, binder_objstat_strings[i], - stats->obj_created[i] - stats->obj_deleted[i], - stats->obj_created[i]); + created - deleted, + created); } } @@ -3499,50 +5440,61 @@ static void print_binder_proc_stats(struct seq_file *m, struct binder_proc *proc) { struct binder_work *w; + struct binder_thread *thread; struct rb_node *n; - int count, strong, weak; + int count, strong, weak, ready_threads; + size_t free_async_space = + binder_alloc_get_free_async_space(&proc->alloc); seq_printf(m, "proc %d\n", proc->pid); + seq_printf(m, "context %s\n", proc->context->name); count = 0; + ready_threads = 0; + binder_inner_proc_lock(proc); for (n = rb_first(&proc->threads); n != NULL; n = rb_next(n)) count++; + + list_for_each_entry(thread, &proc->waiting_threads, waiting_thread_node) + ready_threads++; + seq_printf(m, " threads: %d\n", count); seq_printf(m, " requested threads: %d+%d/%d\n" " ready threads %d\n" " free async space %zd\n", proc->requested_threads, proc->requested_threads_started, proc->max_threads, - proc->ready_threads, proc->free_async_space); + ready_threads, + free_async_space); count = 0; for (n = rb_first(&proc->nodes); n != NULL; n = rb_next(n)) count++; + binder_inner_proc_unlock(proc); seq_printf(m, " nodes: %d\n", count); count = 0; strong = 0; weak = 0; + binder_proc_lock(proc); for (n = rb_first(&proc->refs_by_desc); n != NULL; n = rb_next(n)) { struct binder_ref *ref = rb_entry(n, struct binder_ref, rb_node_desc); count++; - strong += ref->strong; - weak += ref->weak; + strong += ref->data.strong; + weak += ref->data.weak; } + binder_proc_unlock(proc); seq_printf(m, " refs: %d s %d w %d\n", count, strong, weak); - count = 0; - for (n = rb_first(&proc->allocated_buffers); n != NULL; n = rb_next(n)) - count++; + count = binder_alloc_get_allocated_count(&proc->alloc); seq_printf(m, " buffers: %d\n", count); + binder_alloc_print_pages(m, &proc->alloc); + count = 0; + binder_inner_proc_lock(proc); list_for_each_entry(w, &proc->todo, entry) { - switch (w->type) { - case BINDER_WORK_TRANSACTION: + if (w->type == BINDER_WORK_TRANSACTION) count++; - break; - default: - break; - } } + binder_inner_proc_unlock(proc); seq_printf(m, " pending transactions: %d\n", count); print_binder_stats(m, " ", &proc->stats); @@ -3553,107 +5505,131 @@ static int binder_state_show(struct seq_file *m, void *unused) { struct binder_proc *proc; struct binder_node *node; - int do_lock = !binder_debug_no_lock; - - if (do_lock) - binder_lock(__func__); + struct binder_node *last_node = NULL; seq_puts(m, "binder state:\n"); + spin_lock(&binder_dead_nodes_lock); if (!hlist_empty(&binder_dead_nodes)) seq_puts(m, "dead nodes:\n"); - hlist_for_each_entry(node, &binder_dead_nodes, dead_node) - print_binder_node(m, node); + hlist_for_each_entry(node, &binder_dead_nodes, dead_node) { + /* + * take a temporary reference on the node so it + * survives and isn't removed from the list + * while we print it. + */ + node->tmp_refs++; + spin_unlock(&binder_dead_nodes_lock); + if (last_node) + binder_put_node(last_node); + binder_node_lock(node); + print_binder_node_nilocked(m, node); + binder_node_unlock(node); + last_node = node; + spin_lock(&binder_dead_nodes_lock); + } + spin_unlock(&binder_dead_nodes_lock); + if (last_node) + binder_put_node(last_node); + mutex_lock(&binder_procs_lock); hlist_for_each_entry(proc, &binder_procs, proc_node) print_binder_proc(m, proc, 1); - if (do_lock) - binder_unlock(__func__); + mutex_unlock(&binder_procs_lock); + return 0; } static int binder_stats_show(struct seq_file *m, void *unused) { struct binder_proc *proc; - int do_lock = !binder_debug_no_lock; - - if (do_lock) - binder_lock(__func__); seq_puts(m, "binder stats:\n"); print_binder_stats(m, "", &binder_stats); + mutex_lock(&binder_procs_lock); hlist_for_each_entry(proc, &binder_procs, proc_node) print_binder_proc_stats(m, proc); - if (do_lock) - binder_unlock(__func__); + mutex_unlock(&binder_procs_lock); + return 0; } static int binder_transactions_show(struct seq_file *m, void *unused) { struct binder_proc *proc; - int do_lock = !binder_debug_no_lock; - - if (do_lock) - binder_lock(__func__); seq_puts(m, "binder transactions:\n"); + mutex_lock(&binder_procs_lock); hlist_for_each_entry(proc, &binder_procs, proc_node) print_binder_proc(m, proc, 0); - if (do_lock) - binder_unlock(__func__); + mutex_unlock(&binder_procs_lock); + return 0; } static int binder_proc_show(struct seq_file *m, void *unused) { struct binder_proc *itr; - struct binder_proc *proc = m->private; - int do_lock = !binder_debug_no_lock; - bool valid_proc = false; - - if (do_lock) - binder_lock(__func__); + int pid = (unsigned long)m->private; + mutex_lock(&binder_procs_lock); hlist_for_each_entry(itr, &binder_procs, proc_node) { - if (itr == proc) { - valid_proc = true; - break; + if (itr->pid == pid) { + seq_puts(m, "binder proc state:\n"); + print_binder_proc(m, itr, 1); } } - if (valid_proc) { - seq_puts(m, "binder proc state:\n"); - print_binder_proc(m, proc, 1); - } - if (do_lock) - binder_unlock(__func__); + mutex_unlock(&binder_procs_lock); + return 0; } static void print_binder_transaction_log_entry(struct seq_file *m, struct binder_transaction_log_entry *e) { + int debug_id = READ_ONCE(e->debug_id_done); + /* + * read barrier to guarantee debug_id_done read before + * we print the log values + */ + smp_rmb(); seq_printf(m, - "%d: %s from %d:%d to %d:%d node %d handle %d size %d:%d\n", + "%d: %s from %d:%d to %d:%d context %s node %d handle %d size %d:%d ret %d/%d l=%d", e->debug_id, (e->call_type == 2) ? "reply" : ((e->call_type == 1) ? "async" : "call "), e->from_proc, - e->from_thread, e->to_proc, e->to_thread, e->to_node, - e->target_handle, e->data_size, e->offsets_size); + e->from_thread, e->to_proc, e->to_thread, e->context_name, + e->to_node, e->target_handle, e->data_size, e->offsets_size, + e->return_error, e->return_error_param, + e->return_error_line); + /* + * read-barrier to guarantee read of debug_id_done after + * done printing the fields of the entry + */ + smp_rmb(); + seq_printf(m, debug_id && debug_id == READ_ONCE(e->debug_id_done) ? + "\n" : " (incomplete)\n"); } static int binder_transaction_log_show(struct seq_file *m, void *unused) { struct binder_transaction_log *log = m->private; + unsigned int log_cur = atomic_read(&log->cur); + unsigned int count; + unsigned int cur; int i; - if (log->full) { - for (i = log->next; i < ARRAY_SIZE(log->entry); i++) - print_binder_transaction_log_entry(m, &log->entry[i]); + count = log_cur + 1; + cur = count < ARRAY_SIZE(log->entry) && !log->full ? + 0 : count % ARRAY_SIZE(log->entry); + if (count > ARRAY_SIZE(log->entry) || log->full) + count = ARRAY_SIZE(log->entry); + for (i = 0; i < count; i++) { + unsigned int index = cur++ % ARRAY_SIZE(log->entry); + + print_binder_transaction_log_entry(m, &log->entry[index]); } - for (i = 0; i < log->next; i++) - print_binder_transaction_log_entry(m, &log->entry[i]); return 0; } @@ -3668,21 +5644,50 @@ static const struct file_operations binder_fops = { .release = binder_release, }; -static struct miscdevice binder_miscdev = { - .minor = MISC_DYNAMIC_MINOR, - .name = "binder", - .fops = &binder_fops -}; - BINDER_DEBUG_ENTRY(state); BINDER_DEBUG_ENTRY(stats); BINDER_DEBUG_ENTRY(transactions); BINDER_DEBUG_ENTRY(transaction_log); +static int __init init_binder_device(const char *name) +{ + int ret; + struct binder_device *binder_device; + + binder_device = kzalloc(sizeof(*binder_device), GFP_KERNEL); + if (!binder_device) + return -ENOMEM; + + binder_device->miscdev.fops = &binder_fops; + binder_device->miscdev.minor = MISC_DYNAMIC_MINOR; + binder_device->miscdev.name = name; + + binder_device->context.binder_context_mgr_uid = INVALID_UID; + binder_device->context.name = name; + mutex_init(&binder_device->context.context_mgr_node_lock); + + ret = misc_register(&binder_device->miscdev); + if (ret < 0) { + kfree(binder_device); + return ret; + } + + hlist_add_head(&binder_device->hlist, &binder_devices); + + return ret; +} + static int __init binder_init(void) { int ret; + char *device_name, *device_names; + struct binder_device *device; + struct hlist_node *tmp; + binder_alloc_shrinker_init(); + + atomic_set(&binder_transaction_log.cur, ~0U); + atomic_set(&binder_transaction_log_failed.cur, ~0U); binder_deferred_workqueue = create_singlethread_workqueue("binder"); if (!binder_deferred_workqueue) return -ENOMEM; @@ -3691,7 +5696,7 @@ static int __init binder_init(void) if (binder_debugfs_dir_entry_root) binder_debugfs_dir_entry_proc = debugfs_create_dir("proc", binder_debugfs_dir_entry_root); - ret = misc_register(&binder_miscdev); + if (binder_debugfs_dir_entry_root) { debugfs_create_file("state", S_IRUGO, @@ -3719,6 +5724,37 @@ static int __init binder_init(void) &binder_transaction_log_failed, &binder_transaction_log_fops); } + + /* + * Copy the module_parameter string, because we don't want to + * tokenize it in-place. + */ + device_names = kzalloc(strlen(binder_devices_param) + 1, GFP_KERNEL); + if (!device_names) { + ret = -ENOMEM; + goto err_alloc_device_names_failed; + } + strcpy(device_names, binder_devices_param); + + while ((device_name = strsep(&device_names, ","))) { + ret = init_binder_device(device_name); + if (ret) + goto err_init_binder_device_failed; + } + + return ret; + +err_init_binder_device_failed: + hlist_for_each_entry_safe(device, tmp, &binder_devices, hlist) { + misc_deregister(&device->miscdev); + hlist_del(&device->hlist); + kfree(device); + } +err_alloc_device_names_failed: + debugfs_remove_recursive(binder_debugfs_dir_entry_root); + + destroy_workqueue(binder_deferred_workqueue); + return ret; } diff --git a/drivers/staging/android/binder_alloc.c b/drivers/staging/android/binder_alloc.c new file mode 100644 index 0000000000000..6f66ef97626a3 --- /dev/null +++ b/drivers/staging/android/binder_alloc.c @@ -0,0 +1,1012 @@ +/* binder_alloc.c + * + * Android IPC Subsystem + * + * Copyright (C) 2007-2017 Google, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "binder_alloc.h" +#include "binder_trace.h" + +struct list_lru binder_alloc_lru; + +static DEFINE_MUTEX(binder_alloc_mmap_lock); + +enum { + BINDER_DEBUG_OPEN_CLOSE = 1U << 1, + BINDER_DEBUG_BUFFER_ALLOC = 1U << 2, + BINDER_DEBUG_BUFFER_ALLOC_ASYNC = 1U << 3, +}; +static uint32_t binder_alloc_debug_mask; + +module_param_named(debug_mask, binder_alloc_debug_mask, + uint, S_IWUSR | S_IRUGO); + +#define binder_alloc_debug(mask, x...) \ + do { \ + if (binder_alloc_debug_mask & mask) \ + pr_info(x); \ + } while (0) + +static struct binder_buffer *binder_buffer_next(struct binder_buffer *buffer) +{ + return list_entry(buffer->entry.next, struct binder_buffer, entry); +} + +static struct binder_buffer *binder_buffer_prev(struct binder_buffer *buffer) +{ + return list_entry(buffer->entry.prev, struct binder_buffer, entry); +} + +static size_t binder_alloc_buffer_size(struct binder_alloc *alloc, + struct binder_buffer *buffer) +{ + if (list_is_last(&buffer->entry, &alloc->buffers)) + return (u8 *)alloc->buffer + + alloc->buffer_size - (u8 *)buffer->data; + return (u8 *)binder_buffer_next(buffer)->data - (u8 *)buffer->data; +} + +static void binder_insert_free_buffer(struct binder_alloc *alloc, + struct binder_buffer *new_buffer) +{ + struct rb_node **p = &alloc->free_buffers.rb_node; + struct rb_node *parent = NULL; + struct binder_buffer *buffer; + size_t buffer_size; + size_t new_buffer_size; + + BUG_ON(!new_buffer->free); + + new_buffer_size = binder_alloc_buffer_size(alloc, new_buffer); + + binder_alloc_debug(BINDER_DEBUG_BUFFER_ALLOC, + "%d: add free buffer, size %zd, at %pK\n", + alloc->pid, new_buffer_size, new_buffer); + + while (*p) { + parent = *p; + buffer = rb_entry(parent, struct binder_buffer, rb_node); + BUG_ON(!buffer->free); + + buffer_size = binder_alloc_buffer_size(alloc, buffer); + + if (new_buffer_size < buffer_size) + p = &parent->rb_left; + else + p = &parent->rb_right; + } + rb_link_node(&new_buffer->rb_node, parent, p); + rb_insert_color(&new_buffer->rb_node, &alloc->free_buffers); +} + +static void binder_insert_allocated_buffer_locked( + struct binder_alloc *alloc, struct binder_buffer *new_buffer) +{ + struct rb_node **p = &alloc->allocated_buffers.rb_node; + struct rb_node *parent = NULL; + struct binder_buffer *buffer; + + BUG_ON(new_buffer->free); + + while (*p) { + parent = *p; + buffer = rb_entry(parent, struct binder_buffer, rb_node); + BUG_ON(buffer->free); + + if (new_buffer->data < buffer->data) + p = &parent->rb_left; + else if (new_buffer->data > buffer->data) + p = &parent->rb_right; + else + BUG(); + } + rb_link_node(&new_buffer->rb_node, parent, p); + rb_insert_color(&new_buffer->rb_node, &alloc->allocated_buffers); +} + +static struct binder_buffer *binder_alloc_prepare_to_free_locked( + struct binder_alloc *alloc, + uintptr_t user_ptr) +{ + struct rb_node *n = alloc->allocated_buffers.rb_node; + struct binder_buffer *buffer; + void *kern_ptr; + + kern_ptr = (void *)(user_ptr - alloc->user_buffer_offset); + + while (n) { + buffer = rb_entry(n, struct binder_buffer, rb_node); + BUG_ON(buffer->free); + + if (kern_ptr < buffer->data) + n = n->rb_left; + else if (kern_ptr > buffer->data) + n = n->rb_right; + else { + /* + * Guard against user threads attempting to + * free the buffer twice + */ + if (buffer->free_in_progress) { + pr_err("%d:%d FREE_BUFFER u%016llx user freed buffer twice\n", + alloc->pid, current->pid, (u64)user_ptr); + return NULL; + } + buffer->free_in_progress = 1; + return buffer; + } + } + return NULL; +} + +/** + * binder_alloc_buffer_lookup() - get buffer given user ptr + * @alloc: binder_alloc for this proc + * @user_ptr: User pointer to buffer data + * + * Validate userspace pointer to buffer data and return buffer corresponding to + * that user pointer. Search the rb tree for buffer that matches user data + * pointer. + * + * Return: Pointer to buffer or NULL + */ +struct binder_buffer *binder_alloc_prepare_to_free(struct binder_alloc *alloc, + uintptr_t user_ptr) +{ + struct binder_buffer *buffer; + + mutex_lock(&alloc->mutex); + buffer = binder_alloc_prepare_to_free_locked(alloc, user_ptr); + mutex_unlock(&alloc->mutex); + return buffer; +} + +static int binder_update_page_range(struct binder_alloc *alloc, int allocate, + void *start, void *end) +{ + void *page_addr; + unsigned long user_page_addr; + struct binder_lru_page *page; + struct vm_area_struct *vma = NULL; + struct mm_struct *mm = NULL; + bool need_mm = false; + + binder_alloc_debug(BINDER_DEBUG_BUFFER_ALLOC, + "%d: %s pages %pK-%pK\n", alloc->pid, + allocate ? "allocate" : "free", start, end); + + if (end <= start) + return 0; + + trace_binder_update_page_range(alloc, allocate, start, end); + + if (allocate == 0) + goto free_range; + + for (page_addr = start; page_addr < end; page_addr += PAGE_SIZE) { + page = &alloc->pages[(page_addr - alloc->buffer) / PAGE_SIZE]; + if (!page->page_ptr) { + need_mm = true; + break; + } + } + + /* Same as mmget_not_zero() in later kernel versions */ + if (need_mm && atomic_inc_not_zero(&alloc->vma_vm_mm->mm_users)) + mm = alloc->vma_vm_mm; + + if (mm) { + down_write(&mm->mmap_sem); + vma = alloc->vma; + } + + if (!vma && need_mm) { + pr_err("%d: binder_alloc_buf failed to map pages in userspace, no vma\n", + alloc->pid); + goto err_no_vma; + } + + for (page_addr = start; page_addr < end; page_addr += PAGE_SIZE) { + int ret; + bool on_lru; + size_t index; + + index = (page_addr - alloc->buffer) / PAGE_SIZE; + page = &alloc->pages[index]; + + if (page->page_ptr) { + trace_binder_alloc_lru_start(alloc, index); + + on_lru = list_lru_del(&binder_alloc_lru, &page->lru); + WARN_ON(!on_lru); + + trace_binder_alloc_lru_end(alloc, index); + continue; + } + + if (WARN_ON(!vma)) + goto err_page_ptr_cleared; + + trace_binder_alloc_page_start(alloc, index); + page->page_ptr = alloc_page(GFP_KERNEL | + __GFP_HIGHMEM | + __GFP_ZERO); + if (!page->page_ptr) { + pr_err("%d: binder_alloc_buf failed for page at %pK\n", + alloc->pid, page_addr); + goto err_alloc_page_failed; + } + page->alloc = alloc; + INIT_LIST_HEAD(&page->lru); + + ret = map_kernel_range_noflush((unsigned long)page_addr, + PAGE_SIZE, PAGE_KERNEL, + &page->page_ptr); + flush_cache_vmap((unsigned long)page_addr, + (unsigned long)page_addr + PAGE_SIZE); + if (ret != 1) { + pr_err("%d: binder_alloc_buf failed to map page at %pK in kernel\n", + alloc->pid, page_addr); + goto err_map_kernel_failed; + } + user_page_addr = + (uintptr_t)page_addr + alloc->user_buffer_offset; + ret = vm_insert_page(vma, user_page_addr, page[0].page_ptr); + if (ret) { + pr_err("%d: binder_alloc_buf failed to map page at %lx in userspace\n", + alloc->pid, user_page_addr); + goto err_vm_insert_page_failed; + } + + trace_binder_alloc_page_end(alloc, index); + /* vm_insert_page does not seem to increment the refcount */ + } + if (mm) { + up_write(&mm->mmap_sem); + mmput(mm); + } + return 0; + +free_range: + for (page_addr = end - PAGE_SIZE; page_addr >= start; + page_addr -= PAGE_SIZE) { + bool ret; + size_t index; + + index = (page_addr - alloc->buffer) / PAGE_SIZE; + page = &alloc->pages[index]; + + trace_binder_free_lru_start(alloc, index); + + ret = list_lru_add(&binder_alloc_lru, &page->lru); + WARN_ON(!ret); + + trace_binder_free_lru_end(alloc, index); + continue; + +err_vm_insert_page_failed: + unmap_kernel_range((unsigned long)page_addr, PAGE_SIZE); +err_map_kernel_failed: + __free_page(page->page_ptr); + page->page_ptr = NULL; +err_alloc_page_failed: +err_page_ptr_cleared: + ; + } +err_no_vma: + if (mm) { + up_write(&mm->mmap_sem); + mmput(mm); + } + return vma ? -ENOMEM : -ESRCH; +} + +struct binder_buffer *binder_alloc_new_buf_locked(struct binder_alloc *alloc, + size_t data_size, + size_t offsets_size, + size_t extra_buffers_size, + int is_async) +{ + struct rb_node *n = alloc->free_buffers.rb_node; + struct binder_buffer *buffer; + size_t buffer_size; + struct rb_node *best_fit = NULL; + void *has_page_addr; + void *end_page_addr; + size_t size, data_offsets_size; + int ret; + + if (alloc->vma == NULL) { + pr_err("%d: binder_alloc_buf, no vma\n", + alloc->pid); + return ERR_PTR(-ESRCH); + } + + data_offsets_size = ALIGN(data_size, sizeof(void *)) + + ALIGN(offsets_size, sizeof(void *)); + + if (data_offsets_size < data_size || data_offsets_size < offsets_size) { + binder_alloc_debug(BINDER_DEBUG_BUFFER_ALLOC, + "%d: got transaction with invalid size %zd-%zd\n", + alloc->pid, data_size, offsets_size); + return ERR_PTR(-EINVAL); + } + size = data_offsets_size + ALIGN(extra_buffers_size, sizeof(void *)); + if (size < data_offsets_size || size < extra_buffers_size) { + binder_alloc_debug(BINDER_DEBUG_BUFFER_ALLOC, + "%d: got transaction with invalid extra_buffers_size %zd\n", + alloc->pid, extra_buffers_size); + return ERR_PTR(-EINVAL); + } + if (is_async && + alloc->free_async_space < size + sizeof(struct binder_buffer)) { + binder_alloc_debug(BINDER_DEBUG_BUFFER_ALLOC, + "%d: binder_alloc_buf size %zd failed, no async space left\n", + alloc->pid, size); + return ERR_PTR(-ENOSPC); + } + + /* Pad 0-size buffers so they get assigned unique addresses */ + size = max(size, sizeof(void *)); + + while (n) { + buffer = rb_entry(n, struct binder_buffer, rb_node); + BUG_ON(!buffer->free); + buffer_size = binder_alloc_buffer_size(alloc, buffer); + + if (size < buffer_size) { + best_fit = n; + n = n->rb_left; + } else if (size > buffer_size) + n = n->rb_right; + else { + best_fit = n; + break; + } + } + if (best_fit == NULL) { + size_t allocated_buffers = 0; + size_t largest_alloc_size = 0; + size_t total_alloc_size = 0; + size_t free_buffers = 0; + size_t largest_free_size = 0; + size_t total_free_size = 0; + + for (n = rb_first(&alloc->allocated_buffers); n != NULL; + n = rb_next(n)) { + buffer = rb_entry(n, struct binder_buffer, rb_node); + buffer_size = binder_alloc_buffer_size(alloc, buffer); + allocated_buffers++; + total_alloc_size += buffer_size; + if (buffer_size > largest_alloc_size) + largest_alloc_size = buffer_size; + } + for (n = rb_first(&alloc->free_buffers); n != NULL; + n = rb_next(n)) { + buffer = rb_entry(n, struct binder_buffer, rb_node); + buffer_size = binder_alloc_buffer_size(alloc, buffer); + free_buffers++; + total_free_size += buffer_size; + if (buffer_size > largest_free_size) + largest_free_size = buffer_size; + } + pr_err("%d: binder_alloc_buf size %zd failed, no address space\n", + alloc->pid, size); + pr_err("allocated: %zd (num: %zd largest: %zd), free: %zd (num: %zd largest: %zd)\n", + total_alloc_size, allocated_buffers, largest_alloc_size, + total_free_size, free_buffers, largest_free_size); + return ERR_PTR(-ENOSPC); + } + if (n == NULL) { + buffer = rb_entry(best_fit, struct binder_buffer, rb_node); + buffer_size = binder_alloc_buffer_size(alloc, buffer); + } + + binder_alloc_debug(BINDER_DEBUG_BUFFER_ALLOC, + "%d: binder_alloc_buf size %zd got buffer %pK size %zd\n", + alloc->pid, size, buffer, buffer_size); + + has_page_addr = + (void *)(((uintptr_t)buffer->data + buffer_size) & PAGE_MASK); + WARN_ON(n && buffer_size != size); + end_page_addr = + (void *)PAGE_ALIGN((uintptr_t)buffer->data + size); + if (end_page_addr > has_page_addr) + end_page_addr = has_page_addr; + ret = binder_update_page_range(alloc, 1, + (void *)PAGE_ALIGN((uintptr_t)buffer->data), end_page_addr); + if (ret) + return ERR_PTR(ret); + + if (buffer_size != size) { + struct binder_buffer *new_buffer; + + new_buffer = kzalloc(sizeof(*buffer), GFP_KERNEL); + if (!new_buffer) { + pr_err("%s: %d failed to alloc new buffer struct\n", + __func__, alloc->pid); + goto err_alloc_buf_struct_failed; + } + new_buffer->data = (u8 *)buffer->data + size; + list_add(&new_buffer->entry, &buffer->entry); + new_buffer->free = 1; + binder_insert_free_buffer(alloc, new_buffer); + } + + rb_erase(best_fit, &alloc->free_buffers); + buffer->free = 0; + buffer->free_in_progress = 0; + binder_insert_allocated_buffer_locked(alloc, buffer); + binder_alloc_debug(BINDER_DEBUG_BUFFER_ALLOC, + "%d: binder_alloc_buf size %zd got %pK\n", + alloc->pid, size, buffer); + buffer->data_size = data_size; + buffer->offsets_size = offsets_size; + buffer->async_transaction = is_async; + buffer->extra_buffers_size = extra_buffers_size; + if (is_async) { + alloc->free_async_space -= size + sizeof(struct binder_buffer); + binder_alloc_debug(BINDER_DEBUG_BUFFER_ALLOC_ASYNC, + "%d: binder_alloc_buf size %zd async free %zd\n", + alloc->pid, size, alloc->free_async_space); + } + return buffer; + +err_alloc_buf_struct_failed: + binder_update_page_range(alloc, 0, + (void *)PAGE_ALIGN((uintptr_t)buffer->data), + end_page_addr); + return ERR_PTR(-ENOMEM); +} + +/** + * binder_alloc_new_buf() - Allocate a new binder buffer + * @alloc: binder_alloc for this proc + * @data_size: size of user data buffer + * @offsets_size: user specified buffer offset + * @extra_buffers_size: size of extra space for meta-data (eg, security context) + * @is_async: buffer for async transaction + * + * Allocate a new buffer given the requested sizes. Returns + * the kernel version of the buffer pointer. The size allocated + * is the sum of the three given sizes (each rounded up to + * pointer-sized boundary) + * + * Return: The allocated buffer or %NULL if error + */ +struct binder_buffer *binder_alloc_new_buf(struct binder_alloc *alloc, + size_t data_size, + size_t offsets_size, + size_t extra_buffers_size, + int is_async) +{ + struct binder_buffer *buffer; + + mutex_lock(&alloc->mutex); + buffer = binder_alloc_new_buf_locked(alloc, data_size, offsets_size, + extra_buffers_size, is_async); + mutex_unlock(&alloc->mutex); + return buffer; +} + +static void *buffer_start_page(struct binder_buffer *buffer) +{ + return (void *)((uintptr_t)buffer->data & PAGE_MASK); +} + +static void *prev_buffer_end_page(struct binder_buffer *buffer) +{ + return (void *)(((uintptr_t)(buffer->data) - 1) & PAGE_MASK); +} + +static void binder_delete_free_buffer(struct binder_alloc *alloc, + struct binder_buffer *buffer) +{ + struct binder_buffer *prev, *next = NULL; + bool to_free = true; + BUG_ON(alloc->buffers.next == &buffer->entry); + prev = binder_buffer_prev(buffer); + BUG_ON(!prev->free); + if (prev_buffer_end_page(prev) == buffer_start_page(buffer)) { + to_free = false; + binder_alloc_debug(BINDER_DEBUG_BUFFER_ALLOC, + "%d: merge free, buffer %pK share page with %pK\n", + alloc->pid, buffer->data, prev->data); + } + + if (!list_is_last(&buffer->entry, &alloc->buffers)) { + next = binder_buffer_next(buffer); + if (buffer_start_page(next) == buffer_start_page(buffer)) { + to_free = false; + binder_alloc_debug(BINDER_DEBUG_BUFFER_ALLOC, + "%d: merge free, buffer %pK share page with %pK\n", + alloc->pid, + buffer->data, + next->data); + } + } + + if (PAGE_ALIGNED(buffer->data)) { + binder_alloc_debug(BINDER_DEBUG_BUFFER_ALLOC, + "%d: merge free, buffer start %pK is page aligned\n", + alloc->pid, buffer->data); + to_free = false; + } + + if (to_free) { + binder_alloc_debug(BINDER_DEBUG_BUFFER_ALLOC, + "%d: merge free, buffer %pK do not share page with %pK or %pK\n", + alloc->pid, buffer->data, + prev->data, next ? next->data : NULL); + binder_update_page_range(alloc, 0, buffer_start_page(buffer), + buffer_start_page(buffer) + PAGE_SIZE); + } + list_del(&buffer->entry); + kfree(buffer); +} + +static void binder_free_buf_locked(struct binder_alloc *alloc, + struct binder_buffer *buffer) +{ + size_t size, buffer_size; + + buffer_size = binder_alloc_buffer_size(alloc, buffer); + + size = ALIGN(buffer->data_size, sizeof(void *)) + + ALIGN(buffer->offsets_size, sizeof(void *)) + + ALIGN(buffer->extra_buffers_size, sizeof(void *)); + + binder_alloc_debug(BINDER_DEBUG_BUFFER_ALLOC, + "%d: binder_free_buf %pK size %zd buffer_size %zd\n", + alloc->pid, buffer, size, buffer_size); + + BUG_ON(buffer->free); + BUG_ON(size > buffer_size); + BUG_ON(buffer->transaction != NULL); + BUG_ON(buffer->data < alloc->buffer); + BUG_ON(buffer->data > alloc->buffer + alloc->buffer_size); + + if (buffer->async_transaction) { + alloc->free_async_space += size + sizeof(struct binder_buffer); + + binder_alloc_debug(BINDER_DEBUG_BUFFER_ALLOC_ASYNC, + "%d: binder_free_buf size %zd async free %zd\n", + alloc->pid, size, alloc->free_async_space); + } + + binder_update_page_range(alloc, 0, + (void *)PAGE_ALIGN((uintptr_t)buffer->data), + (void *)(((uintptr_t)buffer->data + buffer_size) & PAGE_MASK)); + + rb_erase(&buffer->rb_node, &alloc->allocated_buffers); + buffer->free = 1; + if (!list_is_last(&buffer->entry, &alloc->buffers)) { + struct binder_buffer *next = binder_buffer_next(buffer); + + if (next->free) { + rb_erase(&next->rb_node, &alloc->free_buffers); + binder_delete_free_buffer(alloc, next); + } + } + if (alloc->buffers.next != &buffer->entry) { + struct binder_buffer *prev = binder_buffer_prev(buffer); + + if (prev->free) { + binder_delete_free_buffer(alloc, buffer); + rb_erase(&prev->rb_node, &alloc->free_buffers); + buffer = prev; + } + } + binder_insert_free_buffer(alloc, buffer); +} + +/** + * binder_alloc_free_buf() - free a binder buffer + * @alloc: binder_alloc for this proc + * @buffer: kernel pointer to buffer + * + * Free the buffer allocated via binder_alloc_new_buffer() + */ +void binder_alloc_free_buf(struct binder_alloc *alloc, + struct binder_buffer *buffer) +{ + mutex_lock(&alloc->mutex); + binder_free_buf_locked(alloc, buffer); + mutex_unlock(&alloc->mutex); +} + +/** + * binder_alloc_mmap_handler() - map virtual address space for proc + * @alloc: alloc structure for this proc + * @vma: vma passed to mmap() + * + * Called by binder_mmap() to initialize the space specified in + * vma for allocating binder buffers + * + * Return: + * 0 = success + * -EBUSY = address space already mapped + * -ENOMEM = failed to map memory to given address space + */ +int binder_alloc_mmap_handler(struct binder_alloc *alloc, + struct vm_area_struct *vma) +{ + int ret; + struct vm_struct *area; + const char *failure_string; + struct binder_buffer *buffer; + + mutex_lock(&binder_alloc_mmap_lock); + if (alloc->buffer) { + ret = -EBUSY; + failure_string = "already mapped"; + goto err_already_mapped; + } + + area = get_vm_area(vma->vm_end - vma->vm_start, VM_IOREMAP); + if (area == NULL) { + ret = -ENOMEM; + failure_string = "get_vm_area"; + goto err_get_vm_area_failed; + } + alloc->buffer = area->addr; + alloc->user_buffer_offset = + vma->vm_start - (uintptr_t)alloc->buffer; + mutex_unlock(&binder_alloc_mmap_lock); + +#ifdef CONFIG_CPU_CACHE_VIPT + if (cache_is_vipt_aliasing()) { + while (CACHE_COLOUR( + (vma->vm_start ^ (uint32_t)alloc->buffer))) { + pr_info("binder_mmap: %d %lx-%lx maps %pK bad alignment\n", + alloc->pid, vma->vm_start, vma->vm_end, + alloc->buffer); + vma->vm_start += PAGE_SIZE; + } + } +#endif + alloc->pages = kzalloc(sizeof(alloc->pages[0]) * + ((vma->vm_end - vma->vm_start) / PAGE_SIZE), + GFP_KERNEL); + if (alloc->pages == NULL) { + ret = -ENOMEM; + failure_string = "alloc page array"; + goto err_alloc_pages_failed; + } + alloc->buffer_size = vma->vm_end - vma->vm_start; + + buffer = kzalloc(sizeof(*buffer), GFP_KERNEL); + if (!buffer) { + ret = -ENOMEM; + failure_string = "alloc buffer struct"; + goto err_alloc_buf_struct_failed; + } + + buffer->data = alloc->buffer; + list_add(&buffer->entry, &alloc->buffers); + buffer->free = 1; + binder_insert_free_buffer(alloc, buffer); + alloc->free_async_space = alloc->buffer_size / 2; + barrier(); + alloc->vma = vma; + alloc->vma_vm_mm = vma->vm_mm; + /* Same as mmgrab() in later kernel versions */ + atomic_inc(&alloc->vma_vm_mm->mm_count); + + return 0; + +err_alloc_buf_struct_failed: + kfree(alloc->pages); + alloc->pages = NULL; +err_alloc_pages_failed: + mutex_lock(&binder_alloc_mmap_lock); + vfree(alloc->buffer); + alloc->buffer = NULL; +err_get_vm_area_failed: +err_already_mapped: + mutex_unlock(&binder_alloc_mmap_lock); + pr_err("%s: %d %lx-%lx %s failed %d\n", __func__, + alloc->pid, vma->vm_start, vma->vm_end, failure_string, ret); + return ret; +} + + +void binder_alloc_deferred_release(struct binder_alloc *alloc) +{ + struct rb_node *n; + int buffers, page_count; + struct binder_buffer *buffer; + + BUG_ON(alloc->vma); + + buffers = 0; + mutex_lock(&alloc->mutex); + while ((n = rb_first(&alloc->allocated_buffers))) { + buffer = rb_entry(n, struct binder_buffer, rb_node); + + /* Transaction should already have been freed */ + BUG_ON(buffer->transaction); + + binder_free_buf_locked(alloc, buffer); + buffers++; + } + + while (!list_empty(&alloc->buffers)) { + buffer = list_first_entry(&alloc->buffers, + struct binder_buffer, entry); + WARN_ON(!buffer->free); + + list_del(&buffer->entry); + WARN_ON_ONCE(!list_empty(&alloc->buffers)); + kfree(buffer); + } + + page_count = 0; + if (alloc->pages) { + int i; + + for (i = 0; i < alloc->buffer_size / PAGE_SIZE; i++) { + void *page_addr; + bool on_lru; + + if (!alloc->pages[i].page_ptr) + continue; + + on_lru = list_lru_del(&binder_alloc_lru, + &alloc->pages[i].lru); + page_addr = alloc->buffer + i * PAGE_SIZE; + binder_alloc_debug(BINDER_DEBUG_BUFFER_ALLOC, + "%s: %d: page %d at %pK %s\n", + __func__, alloc->pid, i, page_addr, + on_lru ? "on lru" : "active"); + unmap_kernel_range((unsigned long)page_addr, PAGE_SIZE); + __free_page(alloc->pages[i].page_ptr); + page_count++; + } + kfree(alloc->pages); + vfree(alloc->buffer); + } + mutex_unlock(&alloc->mutex); + if (alloc->vma_vm_mm) + mmdrop(alloc->vma_vm_mm); + + binder_alloc_debug(BINDER_DEBUG_OPEN_CLOSE, + "%s: %d buffers %d, pages %d\n", + __func__, alloc->pid, buffers, page_count); +} + +static void print_binder_buffer(struct seq_file *m, const char *prefix, + struct binder_buffer *buffer) +{ + seq_printf(m, "%s %d: %pK size %zd:%zd:%zd %s\n", + prefix, buffer->debug_id, buffer->data, + buffer->data_size, buffer->offsets_size, + buffer->extra_buffers_size, + buffer->transaction ? "active" : "delivered"); +} + +/** + * binder_alloc_print_allocated() - print buffer info + * @m: seq_file for output via seq_printf() + * @alloc: binder_alloc for this proc + * + * Prints information about every buffer associated with + * the binder_alloc state to the given seq_file + */ +void binder_alloc_print_allocated(struct seq_file *m, + struct binder_alloc *alloc) +{ + struct rb_node *n; + + mutex_lock(&alloc->mutex); + for (n = rb_first(&alloc->allocated_buffers); n != NULL; n = rb_next(n)) + print_binder_buffer(m, " buffer", + rb_entry(n, struct binder_buffer, rb_node)); + mutex_unlock(&alloc->mutex); +} + +/** + * binder_alloc_print_pages() - print page usage + * @m: seq_file for output via seq_printf() + * @alloc: binder_alloc for this proc + */ +void binder_alloc_print_pages(struct seq_file *m, + struct binder_alloc *alloc) +{ + struct binder_lru_page *page; + int i; + int active = 0; + int lru = 0; + int free = 0; + + mutex_lock(&alloc->mutex); + for (i = 0; i < alloc->buffer_size / PAGE_SIZE; i++) { + page = &alloc->pages[i]; + if (!page->page_ptr) + free++; + else if (list_empty(&page->lru)) + active++; + else + lru++; + } + mutex_unlock(&alloc->mutex); + seq_printf(m, " pages: %d:%d:%d\n", active, lru, free); +} + +/** + * binder_alloc_get_allocated_count() - return count of buffers + * @alloc: binder_alloc for this proc + * + * Return: count of allocated buffers + */ +int binder_alloc_get_allocated_count(struct binder_alloc *alloc) +{ + struct rb_node *n; + int count = 0; + + mutex_lock(&alloc->mutex); + for (n = rb_first(&alloc->allocated_buffers); n != NULL; n = rb_next(n)) + count++; + mutex_unlock(&alloc->mutex); + return count; +} + + +/** + * binder_alloc_vma_close() - invalidate address space + * @alloc: binder_alloc for this proc + * + * Called from binder_vma_close() when releasing address space. + * Clears alloc->vma to prevent new incoming transactions from + * allocating more buffers. + */ +void binder_alloc_vma_close(struct binder_alloc *alloc) +{ + WRITE_ONCE(alloc->vma, NULL); +} + +/** + * binder_alloc_free_page() - shrinker callback to free pages + * @item: item to free + * @lock: lock protecting the item + * @cb_arg: callback argument + * + * Called from list_lru_walk() in binder_shrink_scan() to free + * up pages when the system is under memory pressure. + */ +enum lru_status binder_alloc_free_page(struct list_head *item, + spinlock_t *lock, + void *cb_arg) +{ + struct mm_struct *mm = NULL; + struct binder_lru_page *page = container_of(item, + struct binder_lru_page, + lru); + struct binder_alloc *alloc; + uintptr_t page_addr; + size_t index; + struct vm_area_struct *vma; + + alloc = page->alloc; + if (!mutex_trylock(&alloc->mutex)) + goto err_get_alloc_mutex_failed; + + if (!page->page_ptr) + goto err_page_already_freed; + + index = page - alloc->pages; + page_addr = (uintptr_t)alloc->buffer + index * PAGE_SIZE; + vma = alloc->vma; + if (vma) { + /* Same as mmget_not_zero() in later kernel versions */ + if (!atomic_inc_not_zero(&alloc->vma_vm_mm->mm_users)) + goto err_mmget; + mm = alloc->vma_vm_mm; + if (!down_write_trylock(&mm->mmap_sem)) + goto err_down_write_mmap_sem_failed; + } + + list_del_init(item); + spin_unlock(lock); + + if (vma) { + trace_binder_unmap_user_start(alloc, index); + + zap_page_range(vma, + page_addr + + alloc->user_buffer_offset, + PAGE_SIZE, NULL); + + trace_binder_unmap_user_end(alloc, index); + + up_write(&mm->mmap_sem); + mmput(mm); + } + + trace_binder_unmap_kernel_start(alloc, index); + + unmap_kernel_range(page_addr, PAGE_SIZE); + __free_page(page->page_ptr); + page->page_ptr = NULL; + + trace_binder_unmap_kernel_end(alloc, index); + + spin_lock(lock); + mutex_unlock(&alloc->mutex); + return LRU_REMOVED_RETRY; + +err_down_write_mmap_sem_failed: + mmput_async(mm); +err_mmget: +err_page_already_freed: + mutex_unlock(&alloc->mutex); +err_get_alloc_mutex_failed: + return LRU_SKIP; +} + +static unsigned long +binder_shrink_count(struct shrinker *shrink, struct shrink_control *sc) +{ + unsigned long ret = list_lru_count(&binder_alloc_lru); + return ret; +} + +static unsigned long +binder_shrink_scan(struct shrinker *shrink, struct shrink_control *sc) +{ + unsigned long ret; + + ret = list_lru_walk(&binder_alloc_lru, binder_alloc_free_page, + NULL, sc->nr_to_scan); + return ret; +} + +static struct shrinker binder_shrinker = { + .count_objects = binder_shrink_count, + .scan_objects = binder_shrink_scan, + .seeks = DEFAULT_SEEKS, +}; + +/** + * binder_alloc_init() - called by binder_open() for per-proc initialization + * @alloc: binder_alloc for this proc + * + * Called from binder_open() to initialize binder_alloc fields for + * new binder proc + */ +void binder_alloc_init(struct binder_alloc *alloc) +{ + alloc->pid = current->group_leader->pid; + mutex_init(&alloc->mutex); + INIT_LIST_HEAD(&alloc->buffers); +} + +void binder_alloc_shrinker_init(void) +{ + list_lru_init(&binder_alloc_lru); + register_shrinker(&binder_shrinker); +} diff --git a/drivers/staging/android/binder_alloc.h b/drivers/staging/android/binder_alloc.h new file mode 100644 index 0000000000000..fb3fe4a4e88d9 --- /dev/null +++ b/drivers/staging/android/binder_alloc.h @@ -0,0 +1,185 @@ +/* + * Copyright (C) 2017 Google, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#ifndef _LINUX_BINDER_ALLOC_H +#define _LINUX_BINDER_ALLOC_H + +#include +#include +#include +#include +#include +#include +#include + +extern struct list_lru binder_alloc_lru; +struct binder_transaction; + +/** + * struct binder_buffer - buffer used for binder transactions + * @entry: entry alloc->buffers + * @rb_node: node for allocated_buffers/free_buffers rb trees + * @free: true if buffer is free + * @allow_user_free: describe the second member of struct blah, + * @async_transaction: describe the second member of struct blah, + * @debug_id: describe the second member of struct blah, + * @transaction: describe the second member of struct blah, + * @target_node: describe the second member of struct blah, + * @data_size: describe the second member of struct blah, + * @offsets_size: describe the second member of struct blah, + * @extra_buffers_size: describe the second member of struct blah, + * @data:i describe the second member of struct blah, + * + * Bookkeeping structure for binder transaction buffers + */ +struct binder_buffer { + struct list_head entry; /* free and allocated entries by address */ + struct rb_node rb_node; /* free entry by size or allocated entry */ + /* by address */ + unsigned free:1; + unsigned allow_user_free:1; + unsigned async_transaction:1; + unsigned free_in_progress:1; + unsigned debug_id:28; + + struct binder_transaction *transaction; + + struct binder_node *target_node; + size_t data_size; + size_t offsets_size; + size_t extra_buffers_size; + void *data; +}; + +/** + * struct binder_lru_page - page object used for binder shrinker + * @page_ptr: pointer to physical page in mmap'd space + * @lru: entry in binder_alloc_lru + * @alloc: binder_alloc for a proc + */ +struct binder_lru_page { + struct list_head lru; + struct page *page_ptr; + struct binder_alloc *alloc; +}; + +/** + * struct binder_alloc - per-binder proc state for binder allocator + * @vma: vm_area_struct passed to mmap_handler + * (invarient after mmap) + * @tsk: tid for task that called init for this proc + * (invariant after init) + * @vma_vm_mm: copy of vma->vm_mm (invarient after mmap) + * @buffer: base of per-proc address space mapped via mmap + * @user_buffer_offset: offset between user and kernel VAs for buffer + * @buffers: list of all buffers for this proc + * @free_buffers: rb tree of buffers available for allocation + * sorted by size + * @allocated_buffers: rb tree of allocated buffers sorted by address + * @free_async_space: VA space available for async buffers. This is + * initialized at mmap time to 1/2 the full VA space + * @pages: array of binder_lru_page + * @buffer_size: size of address space specified via mmap + * @pid: pid for associated binder_proc (invariant after init) + * + * Bookkeeping structure for per-proc address space management for binder + * buffers. It is normally initialized during binder_init() and binder_mmap() + * calls. The address space is used for both user-visible buffers and for + * struct binder_buffer objects used to track the user buffers + */ +struct binder_alloc { + struct mutex mutex; + struct vm_area_struct *vma; + struct mm_struct *vma_vm_mm; + void *buffer; + ptrdiff_t user_buffer_offset; + struct list_head buffers; + struct rb_root free_buffers; + struct rb_root allocated_buffers; + size_t free_async_space; + struct binder_lru_page *pages; + size_t buffer_size; + uint32_t buffer_free; + int pid; +}; + +#ifdef CONFIG_ANDROID_BINDER_IPC_SELFTEST +void binder_selftest_alloc(struct binder_alloc *alloc); +#else +static inline void binder_selftest_alloc(struct binder_alloc *alloc) {} +#endif +enum lru_status binder_alloc_free_page(struct list_head *item, + spinlock_t *lock, void *cb_arg); +extern struct binder_buffer *binder_alloc_new_buf(struct binder_alloc *alloc, + size_t data_size, + size_t offsets_size, + size_t extra_buffers_size, + int is_async); +extern void binder_alloc_init(struct binder_alloc *alloc); +void binder_alloc_shrinker_init(void); +extern void binder_alloc_vma_close(struct binder_alloc *alloc); +extern struct binder_buffer * +binder_alloc_prepare_to_free(struct binder_alloc *alloc, + uintptr_t user_ptr); +extern void binder_alloc_free_buf(struct binder_alloc *alloc, + struct binder_buffer *buffer); +extern int binder_alloc_mmap_handler(struct binder_alloc *alloc, + struct vm_area_struct *vma); +extern void binder_alloc_deferred_release(struct binder_alloc *alloc); +extern int binder_alloc_get_allocated_count(struct binder_alloc *alloc); +extern void binder_alloc_print_allocated(struct seq_file *m, + struct binder_alloc *alloc); +void binder_alloc_print_pages(struct seq_file *m, + struct binder_alloc *alloc); + +/** + * binder_alloc_get_free_async_space() - get free space available for async + * @alloc: binder_alloc for this proc + * + * Return: the bytes remaining in the address-space for async transactions + */ +static inline size_t +binder_alloc_get_free_async_space(struct binder_alloc *alloc) +{ + size_t free_async_space; + + mutex_lock(&alloc->mutex); + free_async_space = alloc->free_async_space; + mutex_unlock(&alloc->mutex); + return free_async_space; +} + +/** + * binder_alloc_get_user_buffer_offset() - get offset between kernel/user addrs + * @alloc: binder_alloc for this proc + * + * Return: the offset between kernel and user-space addresses to use for + * virtual address conversion + */ +static inline ptrdiff_t +binder_alloc_get_user_buffer_offset(struct binder_alloc *alloc) +{ + /* + * user_buffer_offset is constant if vma is set and + * undefined if vma is not set. It is possible to + * get here with !alloc->vma if the target process + * is dying while a transaction is being initiated. + * Returning the old value is ok in this case and + * the transaction will fail. + */ + return alloc->user_buffer_offset; +} + +#endif /* _LINUX_BINDER_ALLOC_H */ + diff --git a/drivers/staging/android/binder_alloc_selftest.c b/drivers/staging/android/binder_alloc_selftest.c new file mode 100644 index 0000000000000..f14f78cb5b469 --- /dev/null +++ b/drivers/staging/android/binder_alloc_selftest.c @@ -0,0 +1,310 @@ +/* binder_alloc_selftest.c + * + * Android IPC Subsystem + * + * Copyright (C) 2017 Google, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt + +#include +#include +#include "binder_alloc.h" + +#define BUFFER_NUM 5 +#define BUFFER_MIN_SIZE (PAGE_SIZE / 8) + +static bool binder_selftest_run = true; +static int binder_selftest_failures; +static DEFINE_MUTEX(binder_selftest_lock); + +/** + * enum buf_end_align_type - Page alignment of a buffer + * end with regard to the end of the previous buffer. + * + * In the pictures below, buf2 refers to the buffer we + * are aligning. buf1 refers to previous buffer by addr. + * Symbol [ means the start of a buffer, ] means the end + * of a buffer, and | means page boundaries. + */ +enum buf_end_align_type { + /** + * @SAME_PAGE_UNALIGNED: The end of this buffer is on + * the same page as the end of the previous buffer and + * is not page aligned. Examples: + * buf1 ][ buf2 ][ ... + * buf1 ]|[ buf2 ][ ... + */ + SAME_PAGE_UNALIGNED = 0, + /** + * @SAME_PAGE_ALIGNED: When the end of the previous buffer + * is not page aligned, the end of this buffer is on the + * same page as the end of the previous buffer and is page + * aligned. When the previous buffer is page aligned, the + * end of this buffer is aligned to the next page boundary. + * Examples: + * buf1 ][ buf2 ]| ... + * buf1 ]|[ buf2 ]| ... + */ + SAME_PAGE_ALIGNED, + /** + * @NEXT_PAGE_UNALIGNED: The end of this buffer is on + * the page next to the end of the previous buffer and + * is not page aligned. Examples: + * buf1 ][ buf2 | buf2 ][ ... + * buf1 ]|[ buf2 | buf2 ][ ... + */ + NEXT_PAGE_UNALIGNED, + /** + * @NEXT_PAGE_ALIGNED: The end of this buffer is on + * the page next to the end of the previous buffer and + * is page aligned. Examples: + * buf1 ][ buf2 | buf2 ]| ... + * buf1 ]|[ buf2 | buf2 ]| ... + */ + NEXT_PAGE_ALIGNED, + /** + * @NEXT_NEXT_UNALIGNED: The end of this buffer is on + * the page that follows the page after the end of the + * previous buffer and is not page aligned. Examples: + * buf1 ][ buf2 | buf2 | buf2 ][ ... + * buf1 ]|[ buf2 | buf2 | buf2 ][ ... + */ + NEXT_NEXT_UNALIGNED, + LOOP_END, +}; + +static void pr_err_size_seq(size_t *sizes, int *seq) +{ + int i; + + pr_err("alloc sizes: "); + for (i = 0; i < BUFFER_NUM; i++) + pr_cont("[%zu]", sizes[i]); + pr_cont("\n"); + pr_err("free seq: "); + for (i = 0; i < BUFFER_NUM; i++) + pr_cont("[%d]", seq[i]); + pr_cont("\n"); +} + +static bool check_buffer_pages_allocated(struct binder_alloc *alloc, + struct binder_buffer *buffer, + size_t size) +{ + void *page_addr, *end; + int page_index; + + end = (void *)PAGE_ALIGN((uintptr_t)buffer->data + size); + page_addr = buffer->data; + for (; page_addr < end; page_addr += PAGE_SIZE) { + page_index = (page_addr - alloc->buffer) / PAGE_SIZE; + if (!alloc->pages[page_index].page_ptr || + !list_empty(&alloc->pages[page_index].lru)) { + pr_err("expect alloc but is %s at page index %d\n", + alloc->pages[page_index].page_ptr ? + "lru" : "free", page_index); + return false; + } + } + return true; +} + +static void binder_selftest_alloc_buf(struct binder_alloc *alloc, + struct binder_buffer *buffers[], + size_t *sizes, int *seq) +{ + int i; + + for (i = 0; i < BUFFER_NUM; i++) { + buffers[i] = binder_alloc_new_buf(alloc, sizes[i], 0, 0, 0); + if (IS_ERR(buffers[i]) || + !check_buffer_pages_allocated(alloc, buffers[i], + sizes[i])) { + pr_err_size_seq(sizes, seq); + binder_selftest_failures++; + } + } +} + +static void binder_selftest_free_buf(struct binder_alloc *alloc, + struct binder_buffer *buffers[], + size_t *sizes, int *seq, size_t end) +{ + int i; + + for (i = 0; i < BUFFER_NUM; i++) + binder_alloc_free_buf(alloc, buffers[seq[i]]); + + for (i = 0; i < end / PAGE_SIZE; i++) { + /** + * Error message on a free page can be false positive + * if binder shrinker ran during binder_alloc_free_buf + * calls above. + */ + if (list_empty(&alloc->pages[i].lru)) { + pr_err_size_seq(sizes, seq); + pr_err("expect lru but is %s at page index %d\n", + alloc->pages[i].page_ptr ? "alloc" : "free", i); + binder_selftest_failures++; + } + } +} + +static void binder_selftest_free_page(struct binder_alloc *alloc) +{ + int i; + unsigned long count; + + while ((count = list_lru_count(&binder_alloc_lru))) { + list_lru_walk(&binder_alloc_lru, binder_alloc_free_page, + NULL, count); + } + + for (i = 0; i < (alloc->buffer_size / PAGE_SIZE); i++) { + if (alloc->pages[i].page_ptr) { + pr_err("expect free but is %s at page index %d\n", + list_empty(&alloc->pages[i].lru) ? + "alloc" : "lru", i); + binder_selftest_failures++; + } + } +} + +static void binder_selftest_alloc_free(struct binder_alloc *alloc, + size_t *sizes, int *seq, size_t end) +{ + struct binder_buffer *buffers[BUFFER_NUM]; + + binder_selftest_alloc_buf(alloc, buffers, sizes, seq); + binder_selftest_free_buf(alloc, buffers, sizes, seq, end); + + /* Allocate from lru. */ + binder_selftest_alloc_buf(alloc, buffers, sizes, seq); + if (list_lru_count(&binder_alloc_lru)) + pr_err("lru list should be empty but is not\n"); + + binder_selftest_free_buf(alloc, buffers, sizes, seq, end); + binder_selftest_free_page(alloc); +} + +static bool is_dup(int *seq, int index, int val) +{ + int i; + + for (i = 0; i < index; i++) { + if (seq[i] == val) + return true; + } + return false; +} + +/* Generate BUFFER_NUM factorial free orders. */ +static void binder_selftest_free_seq(struct binder_alloc *alloc, + size_t *sizes, int *seq, + int index, size_t end) +{ + int i; + + if (index == BUFFER_NUM) { + binder_selftest_alloc_free(alloc, sizes, seq, end); + return; + } + for (i = 0; i < BUFFER_NUM; i++) { + if (is_dup(seq, index, i)) + continue; + seq[index] = i; + binder_selftest_free_seq(alloc, sizes, seq, index + 1, end); + } +} + +static void binder_selftest_alloc_size(struct binder_alloc *alloc, + size_t *end_offset) +{ + int i; + int seq[BUFFER_NUM] = {0}; + size_t front_sizes[BUFFER_NUM]; + size_t back_sizes[BUFFER_NUM]; + size_t last_offset, offset = 0; + + for (i = 0; i < BUFFER_NUM; i++) { + last_offset = offset; + offset = end_offset[i]; + front_sizes[i] = offset - last_offset; + back_sizes[BUFFER_NUM - i - 1] = front_sizes[i]; + } + /* + * Buffers share the first or last few pages. + * Only BUFFER_NUM - 1 buffer sizes are adjustable since + * we need one giant buffer before getting to the last page. + */ + back_sizes[0] += alloc->buffer_size - end_offset[BUFFER_NUM - 1]; + binder_selftest_free_seq(alloc, front_sizes, seq, 0, + end_offset[BUFFER_NUM - 1]); + binder_selftest_free_seq(alloc, back_sizes, seq, 0, alloc->buffer_size); +} + +static void binder_selftest_alloc_offset(struct binder_alloc *alloc, + size_t *end_offset, int index) +{ + int align; + size_t end, prev; + + if (index == BUFFER_NUM) { + binder_selftest_alloc_size(alloc, end_offset); + return; + } + prev = index == 0 ? 0 : end_offset[index - 1]; + end = prev; + + BUILD_BUG_ON(BUFFER_MIN_SIZE * BUFFER_NUM >= PAGE_SIZE); + + for (align = SAME_PAGE_UNALIGNED; align < LOOP_END; align++) { + if (align % 2) + end = ALIGN(end, PAGE_SIZE); + else + end += BUFFER_MIN_SIZE; + end_offset[index] = end; + binder_selftest_alloc_offset(alloc, end_offset, index + 1); + } +} + +/** + * binder_selftest_alloc() - Test alloc and free of buffer pages. + * @alloc: Pointer to alloc struct. + * + * Allocate BUFFER_NUM buffers to cover all page alignment cases, + * then free them in all orders possible. Check that pages are + * correctly allocated, put onto lru when buffers are freed, and + * are freed when binder_alloc_free_page is called. + */ +void binder_selftest_alloc(struct binder_alloc *alloc) +{ + size_t end_offset[BUFFER_NUM]; + + if (!binder_selftest_run) + return; + mutex_lock(&binder_selftest_lock); + if (!binder_selftest_run || !alloc->vma) + goto done; + pr_info("STARTED\n"); + binder_selftest_alloc_offset(alloc, end_offset, 0); + binder_selftest_run = false; + if (binder_selftest_failures > 0) + pr_info("%d tests FAILED\n", binder_selftest_failures); + else + pr_info("PASSED\n"); + +done: + mutex_unlock(&binder_selftest_lock); +} diff --git a/drivers/staging/android/binder_trace.h b/drivers/staging/android/binder_trace.h index 7f20f3dc83690..b11dffc521e85 100644 --- a/drivers/staging/android/binder_trace.h +++ b/drivers/staging/android/binder_trace.h @@ -23,7 +23,8 @@ struct binder_buffer; struct binder_node; struct binder_proc; -struct binder_ref; +struct binder_alloc; +struct binder_ref_data; struct binder_thread; struct binder_transaction; @@ -84,6 +85,30 @@ DEFINE_BINDER_FUNCTION_RETURN_EVENT(binder_ioctl_done); DEFINE_BINDER_FUNCTION_RETURN_EVENT(binder_write_done); DEFINE_BINDER_FUNCTION_RETURN_EVENT(binder_read_done); +TRACE_EVENT(binder_set_priority, + TP_PROTO(int proc, int thread, unsigned int old_prio, + unsigned int desired_prio, unsigned int new_prio), + TP_ARGS(proc, thread, old_prio, new_prio, desired_prio), + + TP_STRUCT__entry( + __field(int, proc) + __field(int, thread) + __field(unsigned int, old_prio) + __field(unsigned int, new_prio) + __field(unsigned int, desired_prio) + ), + TP_fast_assign( + __entry->proc = proc; + __entry->thread = thread; + __entry->old_prio = old_prio; + __entry->new_prio = new_prio; + __entry->desired_prio = desired_prio; + ), + TP_printk("proc=%d thread=%d old=%d => new=%d desired=%d", + __entry->proc, __entry->thread, __entry->old_prio, + __entry->new_prio, __entry->desired_prio) +); + TRACE_EVENT(binder_wait_for_work, TP_PROTO(bool proc_work, bool transaction_stack, bool thread_todo), TP_ARGS(proc_work, transaction_stack, thread_todo), @@ -146,8 +171,8 @@ TRACE_EVENT(binder_transaction_received, TRACE_EVENT(binder_transaction_node_to_ref, TP_PROTO(struct binder_transaction *t, struct binder_node *node, - struct binder_ref *ref), - TP_ARGS(t, node, ref), + struct binder_ref_data *rdata), + TP_ARGS(t, node, rdata), TP_STRUCT__entry( __field(int, debug_id) @@ -160,8 +185,8 @@ TRACE_EVENT(binder_transaction_node_to_ref, __entry->debug_id = t->debug_id; __entry->node_debug_id = node->debug_id; __entry->node_ptr = node->ptr; - __entry->ref_debug_id = ref->debug_id; - __entry->ref_desc = ref->desc; + __entry->ref_debug_id = rdata->debug_id; + __entry->ref_desc = rdata->desc; ), TP_printk("transaction=%d node=%d src_ptr=0x%016llx ==> dest_ref=%d dest_desc=%d", __entry->debug_id, __entry->node_debug_id, @@ -170,8 +195,9 @@ TRACE_EVENT(binder_transaction_node_to_ref, ); TRACE_EVENT(binder_transaction_ref_to_node, - TP_PROTO(struct binder_transaction *t, struct binder_ref *ref), - TP_ARGS(t, ref), + TP_PROTO(struct binder_transaction *t, struct binder_node *node, + struct binder_ref_data *rdata), + TP_ARGS(t, node, rdata), TP_STRUCT__entry( __field(int, debug_id) @@ -182,10 +208,10 @@ TRACE_EVENT(binder_transaction_ref_to_node, ), TP_fast_assign( __entry->debug_id = t->debug_id; - __entry->ref_debug_id = ref->debug_id; - __entry->ref_desc = ref->desc; - __entry->node_debug_id = ref->node->debug_id; - __entry->node_ptr = ref->node->ptr; + __entry->ref_debug_id = rdata->debug_id; + __entry->ref_desc = rdata->desc; + __entry->node_debug_id = node->debug_id; + __entry->node_ptr = node->ptr; ), TP_printk("transaction=%d node=%d src_ref=%d src_desc=%d ==> dest_ptr=0x%016llx", __entry->debug_id, __entry->node_debug_id, @@ -194,9 +220,10 @@ TRACE_EVENT(binder_transaction_ref_to_node, ); TRACE_EVENT(binder_transaction_ref_to_ref, - TP_PROTO(struct binder_transaction *t, struct binder_ref *src_ref, - struct binder_ref *dest_ref), - TP_ARGS(t, src_ref, dest_ref), + TP_PROTO(struct binder_transaction *t, struct binder_node *node, + struct binder_ref_data *src_ref, + struct binder_ref_data *dest_ref), + TP_ARGS(t, node, src_ref, dest_ref), TP_STRUCT__entry( __field(int, debug_id) @@ -208,7 +235,7 @@ TRACE_EVENT(binder_transaction_ref_to_ref, ), TP_fast_assign( __entry->debug_id = t->debug_id; - __entry->node_debug_id = src_ref->node->debug_id; + __entry->node_debug_id = node->debug_id; __entry->src_ref_debug_id = src_ref->debug_id; __entry->src_ref_desc = src_ref->desc; __entry->dest_ref_debug_id = dest_ref->debug_id; @@ -268,9 +295,9 @@ DEFINE_EVENT(binder_buffer_class, binder_transaction_failed_buffer_release, TP_ARGS(buffer)); TRACE_EVENT(binder_update_page_range, - TP_PROTO(struct binder_proc *proc, bool allocate, + TP_PROTO(struct binder_alloc *alloc, bool allocate, void *start, void *end), - TP_ARGS(proc, allocate, start, end), + TP_ARGS(alloc, allocate, start, end), TP_STRUCT__entry( __field(int, proc) __field(bool, allocate) @@ -278,9 +305,9 @@ TRACE_EVENT(binder_update_page_range, __field(size_t, size) ), TP_fast_assign( - __entry->proc = proc->pid; + __entry->proc = alloc->pid; __entry->allocate = allocate; - __entry->offset = start - proc->buffer; + __entry->offset = start - alloc->buffer; __entry->size = end - start; ), TP_printk("proc=%d allocate=%d offset=%zu size=%zu", @@ -288,6 +315,61 @@ TRACE_EVENT(binder_update_page_range, __entry->offset, __entry->size) ); +DECLARE_EVENT_CLASS(binder_lru_page_class, + TP_PROTO(const struct binder_alloc *alloc, size_t page_index), + TP_ARGS(alloc, page_index), + TP_STRUCT__entry( + __field(int, proc) + __field(size_t, page_index) + ), + TP_fast_assign( + __entry->proc = alloc->pid; + __entry->page_index = page_index; + ), + TP_printk("proc=%d page_index=%zu", + __entry->proc, __entry->page_index) +); + +DEFINE_EVENT(binder_lru_page_class, binder_alloc_lru_start, + TP_PROTO(const struct binder_alloc *alloc, size_t page_index), + TP_ARGS(alloc, page_index)); + +DEFINE_EVENT(binder_lru_page_class, binder_alloc_lru_end, + TP_PROTO(const struct binder_alloc *alloc, size_t page_index), + TP_ARGS(alloc, page_index)); + +DEFINE_EVENT(binder_lru_page_class, binder_free_lru_start, + TP_PROTO(const struct binder_alloc *alloc, size_t page_index), + TP_ARGS(alloc, page_index)); + +DEFINE_EVENT(binder_lru_page_class, binder_free_lru_end, + TP_PROTO(const struct binder_alloc *alloc, size_t page_index), + TP_ARGS(alloc, page_index)); + +DEFINE_EVENT(binder_lru_page_class, binder_alloc_page_start, + TP_PROTO(const struct binder_alloc *alloc, size_t page_index), + TP_ARGS(alloc, page_index)); + +DEFINE_EVENT(binder_lru_page_class, binder_alloc_page_end, + TP_PROTO(const struct binder_alloc *alloc, size_t page_index), + TP_ARGS(alloc, page_index)); + +DEFINE_EVENT(binder_lru_page_class, binder_unmap_user_start, + TP_PROTO(const struct binder_alloc *alloc, size_t page_index), + TP_ARGS(alloc, page_index)); + +DEFINE_EVENT(binder_lru_page_class, binder_unmap_user_end, + TP_PROTO(const struct binder_alloc *alloc, size_t page_index), + TP_ARGS(alloc, page_index)); + +DEFINE_EVENT(binder_lru_page_class, binder_unmap_kernel_start, + TP_PROTO(const struct binder_alloc *alloc, size_t page_index), + TP_ARGS(alloc, page_index)); + +DEFINE_EVENT(binder_lru_page_class, binder_unmap_kernel_end, + TP_PROTO(const struct binder_alloc *alloc, size_t page_index), + TP_ARGS(alloc, page_index)); + TRACE_EVENT(binder_command, TP_PROTO(uint32_t cmd), TP_ARGS(cmd), diff --git a/drivers/staging/android/ion/ion.c b/drivers/staging/android/ion/ion.c index ffab992311063..1cf5962f12499 100755 --- a/drivers/staging/android/ion/ion.c +++ b/drivers/staging/android/ion/ion.c @@ -473,7 +473,7 @@ static struct ion_handle *pass_to_user(struct ion_handle *handle) /* Must hold the client lock */ static int user_ion_handle_put_nolock(struct ion_handle *handle) { - int ret; + int ret = 0; if (--handle->user_ref_count == 0) ret = ion_handle_put_nolock(handle); diff --git a/drivers/staging/android/ion/ion_system_heap.c b/drivers/staging/android/ion/ion_system_heap.c index 062de5ae1738f..10e8a73cee3c1 100644 --- a/drivers/staging/android/ion/ion_system_heap.c +++ b/drivers/staging/android/ion/ion_system_heap.c @@ -37,7 +37,7 @@ static gfp_t high_order_gfp_flags = (GFP_HIGHUSER | __GFP_NOWARN | static gfp_t low_order_gfp_flags = (GFP_HIGHUSER | __GFP_NOWARN); #ifndef CONFIG_ALLOC_BUFFERS_IN_4K_CHUNKS -static const unsigned int orders[] = {9, 8, 4, 0}; +static const unsigned int orders[] = {4, 0}; #else static const unsigned int orders[] = {0}; #endif diff --git a/drivers/staging/android/lowmemorykiller.c b/drivers/staging/android/lowmemorykiller.c index d70c1233e3518..9b6c97e3524a4 100644 --- a/drivers/staging/android/lowmemorykiller.c +++ b/drivers/staging/android/lowmemorykiller.c @@ -32,35 +32,22 @@ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt -#include +#include +#include #include #include #include #include #include #include +#include #include -#include -#include -#include -#include -#include #include -#include -#define CREATE_TRACE_POINTS -#include -#ifdef CONFIG_HIGHMEM -#define _ZONE ZONE_HIGHMEM -#else -#define _ZONE ZONE_NORMAL -#endif +#define CONFIG_CONVERT_ADJ_TO_SCORE_ADJ -#define CREATE_TRACE_POINTS -#include "trace/lowmemorykiller.h" - -static uint32_t lowmem_debug_level = 1; +static u32 lowmem_debug_level = 1; static short lowmem_adj[6] = { 0, 1, @@ -75,311 +62,41 @@ static int lowmem_minfree[6] = { 16 * 1024, /* 64MB */ }; static int lowmem_minfree_size = 4; -static int lmk_fast_run = 1; static unsigned long lowmem_deathpending_timeout; +static bool kill_one_more; + #define lowmem_print(level, x...) \ do { \ if (lowmem_debug_level >= (level)) \ pr_info(x); \ } while (0) -static unsigned long lowmem_count(struct shrinker *s, - struct shrink_control *sc) -{ - return global_page_state(NR_ACTIVE_ANON) + - global_page_state(NR_ACTIVE_FILE) + - global_page_state(NR_INACTIVE_ANON) + - global_page_state(NR_INACTIVE_FILE); -} - -static atomic_t shift_adj = ATOMIC_INIT(0); -static short adj_max_shift = 353; -module_param_named(adj_max_shift, adj_max_shift, short, - S_IRUGO | S_IWUSR); - -/* User knob to enable/disable adaptive lmk feature */ -static int enable_adaptive_lmk; -module_param_named(enable_adaptive_lmk, enable_adaptive_lmk, int, - S_IRUGO | S_IWUSR); - -/* - * This parameter controls the behaviour of LMK when vmpressure is in - * the range of 90-94. Adaptive lmk triggers based on number of file - * pages wrt vmpressure_file_min, when vmpressure is in the range of - * 90-94. Usually this is a pseudo minfree value, higher than the - * highest configured value in minfree array. - */ -static int vmpressure_file_min; -module_param_named(vmpressure_file_min, vmpressure_file_min, int, - S_IRUGO | S_IWUSR); - -enum { - VMPRESSURE_NO_ADJUST = 0, - VMPRESSURE_ADJUST_ENCROACH, - VMPRESSURE_ADJUST_NORMAL, -}; - -int adjust_minadj(short *min_score_adj) -{ - int ret = VMPRESSURE_NO_ADJUST; - if (!enable_adaptive_lmk) - return 0; - - if (atomic_read(&shift_adj) && - (*min_score_adj > adj_max_shift)) { - if (*min_score_adj == OOM_SCORE_ADJ_MAX + 1) - ret = VMPRESSURE_ADJUST_ENCROACH; - else - ret = VMPRESSURE_ADJUST_NORMAL; - *min_score_adj = adj_max_shift; - } - atomic_set(&shift_adj, 0); - - return ret; -} - -static int lmk_vmpressure_notifier(struct notifier_block *nb, - unsigned long action, void *data) -{ - int other_free, other_file; - unsigned long pressure = action; - int array_size = ARRAY_SIZE(lowmem_adj); - - if (!enable_adaptive_lmk) - return 0; - - if (pressure >= 95) { - other_file = global_page_state(NR_FILE_PAGES) + zcache_pages() - - global_page_state(NR_SHMEM) - - total_swapcache_pages(); - other_free = global_page_state(NR_FREE_PAGES); - - atomic_set(&shift_adj, 1); - trace_almk_vmpressure(pressure, other_free, other_file); - } else if (pressure >= 90) { - if (lowmem_adj_size < array_size) - array_size = lowmem_adj_size; - if (lowmem_minfree_size < array_size) - array_size = lowmem_minfree_size; - - other_file = global_page_state(NR_FILE_PAGES) + zcache_pages() - - global_page_state(NR_SHMEM) - - total_swapcache_pages(); - - other_free = global_page_state(NR_FREE_PAGES); - - if ((other_free < lowmem_minfree[array_size - 1]) && - (other_file < vmpressure_file_min)) { - atomic_set(&shift_adj, 1); - trace_almk_vmpressure(pressure, other_free, - other_file); - } - } else if (atomic_read(&shift_adj)) { - /* - * shift_adj would have been set by a previous invocation - * of notifier, which is not followed by a lowmem_shrink yet. - * Since vmpressure has improved, reset shift_adj to avoid - * false adaptive LMK trigger. - */ - trace_almk_vmpressure(pressure, other_free, other_file); - atomic_set(&shift_adj, 0); - } - - return 0; -} - -static struct notifier_block lmk_vmpr_nb = { - .notifier_call = lmk_vmpressure_notifier, -}; - -static int test_task_flag(struct task_struct *p, int flag) +static bool test_tsk_lmk_waiting(struct task_struct *p) { struct task_struct *t; for_each_thread(p, t) { task_lock(t); - if (test_tsk_thread_flag(t, flag)) { + if (unlikely(task_lmk_waiting(t))) { task_unlock(t); - return 1; + return true; } task_unlock(t); } - return 0; + return false; } -static DEFINE_MUTEX(scan_mutex); - -int can_use_cma_pages(gfp_t gfp_mask) -{ - int can_use = 0; - int mtype = gfpflags_to_migratetype(gfp_mask); - int i = 0; - int *mtype_fallbacks = get_migratetype_fallbacks(mtype); - - if (is_migrate_cma(mtype)) { - can_use = 1; - } else { - for (i = 0;; i++) { - int fallbacktype = mtype_fallbacks[i]; - - if (is_migrate_cma(fallbacktype)) { - can_use = 1; - break; - } - - if (fallbacktype == MIGRATE_RESERVE) - break; - } - } - return can_use; -} - -void tune_lmk_zone_param(struct zonelist *zonelist, int classzone_idx, - int *other_free, int *other_file, - int use_cma_pages) -{ - struct zone *zone; - struct zoneref *zoneref; - int zone_idx; - - for_each_zone_zonelist(zone, zoneref, zonelist, MAX_NR_ZONES) { - zone_idx = zonelist_zone_idx(zoneref); - if (zone_idx == ZONE_MOVABLE) { - if (!use_cma_pages && other_free) - *other_free -= - zone_page_state(zone, NR_FREE_CMA_PAGES); - continue; - } - - if (zone_idx > classzone_idx) { - if (other_free != NULL) - *other_free -= zone_page_state(zone, - NR_FREE_PAGES); - if (other_file != NULL) - *other_file -= zone_page_state(zone, - NR_FILE_PAGES) - - zone_page_state(zone, NR_SHMEM) - - zone_page_state(zone, NR_SWAPCACHE); - } else if (zone_idx < classzone_idx) { - if (zone_watermark_ok(zone, 0, 0, classzone_idx, 0) && - other_free) { - if (!use_cma_pages) { - *other_free -= min( - zone->lowmem_reserve[classzone_idx] + - zone_page_state( - zone, NR_FREE_CMA_PAGES), - zone_page_state( - zone, NR_FREE_PAGES)); - } else { - *other_free -= - zone->lowmem_reserve[classzone_idx]; - } - } else { - if (other_free) - *other_free -= - zone_page_state(zone, NR_FREE_PAGES); - } - } - } -} - -#ifdef CONFIG_HIGHMEM -void adjust_gfp_mask(gfp_t *gfp_mask) -{ - struct zone *preferred_zone; - struct zonelist *zonelist; - enum zone_type high_zoneidx; - - if (current_is_kswapd()) { - zonelist = node_zonelist(0, *gfp_mask); - high_zoneidx = gfp_zone(*gfp_mask); - first_zones_zonelist(zonelist, high_zoneidx, NULL, - &preferred_zone); - - if (high_zoneidx == ZONE_NORMAL) { - if (zone_watermark_ok_safe(preferred_zone, 0, - high_wmark_pages(preferred_zone), 0, - 0)) - *gfp_mask |= __GFP_HIGHMEM; - } else if (high_zoneidx == ZONE_HIGHMEM) { - *gfp_mask |= __GFP_HIGHMEM; - } - } -} -#else -void adjust_gfp_mask(gfp_t *unused) -{ -} -#endif - -void tune_lmk_param(int *other_free, int *other_file, struct shrink_control *sc) +static unsigned long lowmem_count(struct shrinker *s, + struct shrink_control *sc) { - gfp_t gfp_mask; - struct zone *preferred_zone; - struct zonelist *zonelist; - enum zone_type high_zoneidx, classzone_idx; - unsigned long balance_gap; - int use_cma_pages; - - gfp_mask = sc->gfp_mask; - adjust_gfp_mask(&gfp_mask); - - zonelist = node_zonelist(0, gfp_mask); - high_zoneidx = gfp_zone(gfp_mask); - first_zones_zonelist(zonelist, high_zoneidx, NULL, &preferred_zone); - classzone_idx = zone_idx(preferred_zone); - use_cma_pages = can_use_cma_pages(gfp_mask); - - balance_gap = min(low_wmark_pages(preferred_zone), - (preferred_zone->present_pages + - KSWAPD_ZONE_BALANCE_GAP_RATIO-1) / - KSWAPD_ZONE_BALANCE_GAP_RATIO); - - if (likely(current_is_kswapd() && zone_watermark_ok(preferred_zone, 0, - high_wmark_pages(preferred_zone) + SWAP_CLUSTER_MAX + - balance_gap, 0, 0))) { - if (lmk_fast_run) - tune_lmk_zone_param(zonelist, classzone_idx, other_free, - other_file, use_cma_pages); - else - tune_lmk_zone_param(zonelist, classzone_idx, other_free, - NULL, use_cma_pages); - - if (zone_watermark_ok(preferred_zone, 0, 0, _ZONE, 0)) { - if (!use_cma_pages) { - *other_free -= min( - preferred_zone->lowmem_reserve[_ZONE] - + zone_page_state( - preferred_zone, NR_FREE_CMA_PAGES), - zone_page_state( - preferred_zone, NR_FREE_PAGES)); - } else { - *other_free -= - preferred_zone->lowmem_reserve[_ZONE]; - } - } else { - *other_free -= zone_page_state(preferred_zone, - NR_FREE_PAGES); - } - - lowmem_print(4, "lowmem_shrink of kswapd tunning for highmem " - "ofree %d, %d\n", *other_free, *other_file); - } else { - tune_lmk_zone_param(zonelist, classzone_idx, other_free, - other_file, use_cma_pages); - - if (!use_cma_pages) { - *other_free -= - zone_page_state(preferred_zone, NR_FREE_CMA_PAGES); - } - - lowmem_print(4, "lowmem_shrink tunning for others ofree %d, " - "%d\n", *other_free, *other_file); - } + return global_page_state(NR_ACTIVE_ANON) + + global_page_state(NR_ACTIVE_FILE) + + global_page_state(NR_INACTIVE_ANON) + + global_page_state(NR_INACTIVE_FILE); } static unsigned long lowmem_scan(struct shrinker *s, struct shrink_control *sc) @@ -389,29 +106,16 @@ static unsigned long lowmem_scan(struct shrinker *s, struct shrink_control *sc) unsigned long rem = 0; int tasksize; int i; - int ret = 0; short min_score_adj = OOM_SCORE_ADJ_MAX + 1; int minfree = 0; int selected_tasksize = 0; short selected_oom_score_adj; int array_size = ARRAY_SIZE(lowmem_adj); - int other_free; - int other_file; - - if (mutex_lock_interruptible(&scan_mutex) < 0) - return 0; - - other_free = global_page_state(NR_FREE_PAGES); - - if (global_page_state(NR_SHMEM) + total_swapcache_pages() < - global_page_state(NR_FILE_PAGES) + zcache_pages()) - other_file = global_page_state(NR_FILE_PAGES) + zcache_pages() - + int other_free = global_page_state(NR_FREE_PAGES) - totalreserve_pages; + int other_file = global_page_state(NR_FILE_PAGES) - global_page_state(NR_SHMEM) - + global_page_state(NR_UNEVICTABLE) - total_swapcache_pages(); - else - other_file = 0; - - tune_lmk_param(&other_free, &other_file, sc); if (lowmem_adj_size < array_size) array_size = lowmem_adj_size; @@ -419,29 +123,26 @@ static unsigned long lowmem_scan(struct shrinker *s, struct shrink_control *sc) array_size = lowmem_minfree_size; for (i = 0; i < array_size; i++) { minfree = lowmem_minfree[i]; - if (other_free < minfree && other_file < minfree) { + if (other_free < minfree && other_file < (minfree + minfree / 4)) { min_score_adj = lowmem_adj[i]; break; } } - ret = adjust_minadj(&min_score_adj); - lowmem_print(3, "lowmem_scan %lu, %x, ofree %d %d, ma %hd\n", sc->nr_to_scan, sc->gfp_mask, other_free, other_file, min_score_adj); if (min_score_adj == OOM_SCORE_ADJ_MAX + 1) { - trace_almk_shrink(0, ret, other_free, other_file, 0); lowmem_print(5, "lowmem_scan %lu, %x, return 0\n", sc->nr_to_scan, sc->gfp_mask); - mutex_unlock(&scan_mutex); return 0; } selected_oom_score_adj = min_score_adj; rcu_read_lock(); +again: for_each_process(tsk) { struct task_struct *p; short oom_score_adj; @@ -449,18 +150,10 @@ static unsigned long lowmem_scan(struct shrinker *s, struct shrink_control *sc) if (tsk->flags & PF_KTHREAD) continue; - /* if task no longer has any memory ignore it */ - if (test_task_flag(tsk, TIF_MM_RELEASED)) + if (test_tsk_lmk_waiting(tsk)) { + lowmem_print(2, "%s (%d) is already killed, skip\n", + tsk->comm, tsk->pid); continue; - - if (time_before_eq(jiffies, lowmem_deathpending_timeout)) { - if (test_task_flag(tsk, TIF_MEMDIE)) { - rcu_read_unlock(); - /* give the system time to free up the memory */ - msleep_interruptible(20); - mutex_unlock(&scan_mutex); - return 0; - } } p = find_lock_task_mm(tsk); @@ -473,6 +166,9 @@ static unsigned long lowmem_scan(struct shrinker *s, struct shrink_control *sc) continue; } tasksize = get_mm_rss(p->mm); +#ifdef CONFIG_ZRAM + tasksize += (get_mm_counter(p->mm, MM_SWAPENTS) / 3); +#endif task_unlock(p); if (tasksize <= 0) continue; @@ -486,63 +182,41 @@ static unsigned long lowmem_scan(struct shrinker *s, struct shrink_control *sc) selected = p; selected_tasksize = tasksize; selected_oom_score_adj = oom_score_adj; - lowmem_print(3, "select '%s' (%d), adj %hd, size %d, to kill\n", - p->comm, p->pid, oom_score_adj, tasksize); + lowmem_print(2, "select '%s' (%d, %d), adj %hd, size %d, to kill\n", + p->comm, p->pid, p->tgid, oom_score_adj, tasksize); } if (selected) { - long cache_size = other_file * (long)(PAGE_SIZE / 1024); - long cache_limit = minfree * (long)(PAGE_SIZE / 1024); - long free = other_free * (long)(PAGE_SIZE / 1024); - trace_lowmemory_kill(selected, cache_size, cache_limit, free); - lowmem_print(1, "Killing '%s' (%d), adj %hd,\n" \ - " to free %ldkB on behalf of '%s' (%d) because\n" \ - " cache %ldkB is below limit %ldkB for oom_score_adj %hd\n" \ - " Free memory is %ldkB above reserved.\n" \ - " Free CMA is %ldkB\n" \ - " Total reserve is %ldkB\n" \ - " Total free pages is %ldkB\n" \ - " Total file cache is %ldkB\n" \ - " Total zcache is %ldkB\n" \ - " GFP mask is 0x%x\n", + task_lock(selected); + send_sig(SIGKILL, selected, 0); + if (selected->mm) + task_set_lmk_waiting(selected); + task_unlock(selected); + lowmem_print(1, "Killing '%s' (%d), adj %hd,\n" + " to free %ldkB on behalf of '%s' (%d) because\n" + " cache %ldkB is below limit %ldkB for oom_score_adj %hd\n" + " Free memory is %ldkB above reserved\n", selected->comm, selected->pid, selected_oom_score_adj, selected_tasksize * (long)(PAGE_SIZE / 1024), current->comm, current->pid, - cache_size, cache_limit, + other_file * (long)(PAGE_SIZE / 1024), + minfree * (long)(PAGE_SIZE / 1024), min_score_adj, - other_free * (long)(PAGE_SIZE / 1024), - global_page_state(NR_FREE_CMA_PAGES) * - (long)(PAGE_SIZE / 1024), - totalreserve_pages * (long)(PAGE_SIZE / 1024), - global_page_state(NR_FREE_PAGES) * - (long)(PAGE_SIZE / 1024), - global_page_state(NR_FILE_PAGES) * - (long)(PAGE_SIZE / 1024), - (long)zcache_pages() * (long)(PAGE_SIZE / 1024), - sc->gfp_mask); - - if (lowmem_debug_level >= 2 && selected_oom_score_adj == 0) { - show_mem(SHOW_MEM_FILTER_NODES); - dump_tasks(NULL, NULL); - } - + other_free * (long)(PAGE_SIZE / 1024)); lowmem_deathpending_timeout = jiffies + HZ; - set_tsk_thread_flag(selected, TIF_MEMDIE); - send_sig(SIGKILL, selected, 0); rem += selected_tasksize; - rcu_read_unlock(); - /* give the system time to free up the memory */ - msleep_interruptible(20); - trace_almk_shrink(selected_tasksize, ret, - other_free, other_file, selected_oom_score_adj); - } else { - trace_almk_shrink(1, ret, other_free, other_file, 0); - rcu_read_unlock(); + } + + if (kill_one_more) { + selected = NULL; + kill_one_more = false; + goto again; } lowmem_print(4, "lowmem_scan %lu, %x, return %lu\n", sc->nr_to_scan, sc->gfp_mask, rem); - mutex_unlock(&scan_mutex); + rcu_read_unlock(); + return rem; } @@ -552,19 +226,45 @@ static struct shrinker lowmem_shrinker = { .seeks = DEFAULT_SEEKS * 16 }; -static int __init lowmem_init(void) + +/* + * when vmpressure >= vmpressure_level_critical(95), we will kill one more process + */ +static int lmk_vmpressure_notifier(struct notifier_block *nb, + unsigned long action, void *data) { - register_shrinker(&lowmem_shrinker); - vmpressure_notifier_register(&lmk_vmpr_nb); + unsigned long pressure = action; + + if (pressure >= 95) { + if (!kill_one_more) { + kill_one_more = true; + lowmem_print(1, "vmpressure %ld, set kill_one_more true\n", + pressure); + } + } else { + if (kill_one_more) { + kill_one_more = false; + lowmem_print(1, "vmpressure %ld, set kill_one_more false\n", + pressure); + } + } + return 0; } -static void __exit lowmem_exit(void) +static struct notifier_block lmk_vmpr_nb = { + .notifier_call = lmk_vmpressure_notifier, +}; + +static int __init lowmem_init(void) { - unregister_shrinker(&lowmem_shrinker); + register_shrinker(&lowmem_shrinker); + vmpressure_notifier_register(&lmk_vmpr_nb); + return 0; } +device_initcall(lowmem_init); -#ifdef CONFIG_ANDROID_LOW_MEMORY_KILLER_AUTODETECT_OOM_ADJ_VALUES +#ifdef CONFIG_CONVERT_ADJ_TO_SCORE_ADJ static short lowmem_oom_adj_to_oom_score_adj(short oom_adj) { if (oom_adj == OOM_ADJUST_MAX) @@ -641,8 +341,12 @@ static const struct kparam_array __param_arr_adj = { }; #endif +/* + * not really modular, but the easiest way to keep compat with existing + * bootargs behaviour is to continue using module_param here. + */ module_param_named(cost, lowmem_shrinker.seeks, int, S_IRUGO | S_IWUSR); -#ifdef CONFIG_ANDROID_LOW_MEMORY_KILLER_AUTODETECT_OOM_ADJ_VALUES +#ifdef CONFIG_CONVERT_ADJ_TO_SCORE_ADJ module_param_cb(adj, &lowmem_adj_array_ops, .arr = &__param_arr_adj, S_IRUGO | S_IWUSR); __MODULE_PARM_TYPE(adj, "array of short"); @@ -653,10 +357,4 @@ module_param_array_named(adj, lowmem_adj, short, &lowmem_adj_size, module_param_array_named(minfree, lowmem_minfree, uint, &lowmem_minfree_size, S_IRUGO | S_IWUSR); module_param_named(debug_level, lowmem_debug_level, uint, S_IRUGO | S_IWUSR); -module_param_named(lmk_fast_run, lmk_fast_run, int, S_IRUGO | S_IWUSR); - -module_init(lowmem_init); -module_exit(lowmem_exit); - -MODULE_LICENSE("GPL"); diff --git a/drivers/staging/android/memsw_state.c b/drivers/staging/android/memsw_state.c new file mode 100644 index 0000000000000..44bc39cbcca0c --- /dev/null +++ b/drivers/staging/android/memsw_state.c @@ -0,0 +1,306 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "memsw_state.h" + +#define memsw_freeram (global_page_state(NR_FREE_PAGES) - totalreserve_pages) +#define memsw_filepage (global_page_state(NR_FILE_PAGES) - total_swapcache_pages()) + +#define MEMSW_FREEMEM_KB ((memsw_freeram + memsw_filepage) << (PAGE_SHIFT - 10)) +#define MEMSW_FREESWAP_KB (get_nr_swap_pages() << (PAGE_SHIFT - 10)) +#define MEMSW_EXTRA_KB (16 << (PAGE_SHIFT - 10)) + +static uint32_t check_pending_times; + +static int memsw_dev_open(struct inode *inode, struct file *file) +{ + struct memsw_dev *memsw_dev; + struct memsw_reader *reader; + int ret, i = MINOR(inode->i_rdev); + + + memsw_dev = memsw_dev_get_w_check(i); + if (memsw_dev == NULL) + return -ENODEV; + + + if (!(file->f_mode & FMODE_READ)) + ret = -EBADF; + + ret = nonseekable_open(inode, file); + if (ret) + return ret; + + reader = kmalloc(sizeof(struct memsw_reader), GFP_KERNEL); + if (!reader) + return -ENOMEM; + + reader->dev = memsw_dev; + reader->version = 1; + reader->auth_rights = in_egroup_p(inode->i_gid) || capable(CAP_SYS_ADMIN); + INIT_LIST_HEAD(&reader->list); + + mutex_lock(&memsw_dev->mutex); + list_add_tail(&reader->list, &memsw_dev->reader_list); + mutex_unlock(&memsw_dev->mutex); + + file->private_data = reader; + + return 0; +} + +static inline void memsw_dev_update_data(struct memsw_dev *memsw_dev) +{ + mutex_lock(&memsw_dev->mutex); + (memsw_dev->memsw_data).current_freeram = MEMSW_FREEMEM_KB; + (memsw_dev->memsw_data).current_freeswap = MEMSW_FREESWAP_KB; + mutex_unlock(&memsw_dev->mutex); +} + +static inline int memsw_dev_event_pending(struct memsw_dev *memsw_dev) +{ + int pending = 0; + + mutex_lock(&memsw_dev->mutex); + if ((memsw_dev->memsw_data).mem_threshold >= MEMSW_FREEMEM_KB) { + (memsw_dev->memsw_data).low_mem_triggered = 1; + pending = 1; + } else { + (memsw_dev->memsw_data).low_mem_triggered = 0; + } + if (((memsw_dev->memsw_data).swap_threshold >= MEMSW_FREESWAP_KB) && (total_swap_pages != 0)) { + (memsw_dev->memsw_data).low_swap_triggered = 1; + pending = 1; + } else { + (memsw_dev->memsw_data).low_swap_triggered = 0; + } + mutex_unlock(&memsw_dev->mutex); + + return pending; +} + +static ssize_t memsw_dev_read(struct file *file, char __user *buf, + size_t count, loff_t *pos) +{ + ssize_t ret = 0; + struct memsw_reader *reader = file->private_data; + struct memsw_dev *memsw_dev = reader->dev; + + if (!(reader->auth_rights)) + return -EPERM; + + if (!memsw_dev_event_pending(memsw_dev) && (file->f_flags & O_NONBLOCK)) + return -EAGAIN; + + wait_event_interruptible(memsw_dev->wq, memsw_dev_event_pending(memsw_dev)); + + memsw_dev_update_data(memsw_dev); + if (copy_to_user(buf, &memsw_dev->memsw_data, sizeof(struct memsw_state_data))) + return -EFAULT; + + ret = sizeof(struct memsw_state_data); + + return ret; +} + +static unsigned int memsw_dev_poll(struct file *file, poll_table *wait) +{ + struct memsw_reader *reader = file->private_data; + struct memsw_dev *memsw_dev = reader->dev; + + poll_wait(file, &memsw_dev->wq, wait); + return (memsw_dev_event_pending(memsw_dev) ? (POLLIN | POLLRDNORM) : 0); +} + +static long memsw_dev_ioctl(struct file *file, unsigned int cmd, unsigned long arg) +{ + long ret = -EINVAL; + struct memsw_reader *reader = file->private_data; + struct memsw_dev *memsw_dev = reader->dev; + void __user *argp = (void __user *) arg; + + if (!(reader->auth_rights)) + return -EPERM; + + mutex_lock(&memsw_dev->mutex); + + switch (cmd) { + case GET_MEM_THRESHOLD: + ret = copy_to_user(argp, &(memsw_dev->memsw_data.mem_threshold), sizeof(unsigned long)); + break; + case SET_MEM_THRESHOLD: + ret = copy_from_user(&(memsw_dev->memsw_data.mem_threshold), argp, sizeof(unsigned long)); + if (ret == 0) { + if ((memsw_dev->memsw_data).mem_threshold <= MEMSW_FREEMEM_KB) { + (memsw_dev->memsw_data).low_mem_triggered = 1; + wake_up_interruptible(&memsw_dev->wq); + } + } + break; + case GET_SWAP_THRESHOLD: + ret = copy_to_user(argp, &(memsw_dev->memsw_data.swap_threshold), sizeof(unsigned long)); + break; + case SET_SWAP_THRESHOLD: + ret = copy_from_user(&(memsw_dev->memsw_data.swap_threshold), argp, sizeof(unsigned long)); + if (ret == 0) { + if ((memsw_dev->memsw_data).swap_threshold <= MEMSW_FREESWAP_KB) { + (memsw_dev->memsw_data).low_swap_triggered = 1; + wake_up_interruptible(&memsw_dev->wq); + } + } + break; + case GET_MEMSW_DEV_VERSION: + ret = copy_to_user(argp, &(reader->version), sizeof(uint8_t)); + break; + case SET_MEMSW_DEV_VERSION: + ret = copy_from_user(&(reader->version), argp, sizeof(uint8_t)); + break; + } + + mutex_unlock(&memsw_dev->mutex); + + return ret; +} + +static int memsw_dev_release(struct inode *inode, struct file *file) +{ + struct memsw_reader *reader = file->private_data; + struct memsw_dev *memsw_dev = reader->dev; + + mutex_lock(&memsw_dev->mutex); + list_del(&reader->list); + mutex_unlock(&memsw_dev->mutex); + kfree(reader); + + return 0; +} + +static const struct file_operations memsw_dev_fops = { + .owner = THIS_MODULE, + .open = memsw_dev_open, + .read = memsw_dev_read, + .poll = memsw_dev_poll, + .unlocked_ioctl = memsw_dev_ioctl, + .compat_ioctl = memsw_dev_ioctl, + .release = memsw_dev_release, + .llseek = no_llseek, +}; + +static struct memsw_dev memsw_state_dev = { + .memsw_data = { 0 }, + .misc_dev = { + .minor = MISC_DYNAMIC_MINOR, + .name = "xiaomi_memsw_state", + .fops = &memsw_dev_fops, + .parent = NULL, + }, + .wq = __WAIT_QUEUE_HEAD_INITIALIZER(memsw_state_dev.wq), + .reader_list = LIST_HEAD_INIT(memsw_state_dev.reader_list), + .mutex = __MUTEX_INITIALIZER(memsw_state_dev.mutex), +}; + +struct memsw_dev *memsw_dev_get_wo_check(void) +{ + return &memsw_state_dev; +} + +struct memsw_dev *memsw_dev_get_w_check(int minor) +{ + if (memsw_state_dev.misc_dev.minor == minor) + return &memsw_state_dev; + else + return NULL; +} + +static inline int memsw_dev_check_pending(void) +{ + struct memsw_dev *memsw_dev = memsw_dev_get_wo_check(); + + if (memsw_dev_event_pending(memsw_dev)) + wake_up_interruptible(&memsw_dev->wq); + + return 0; +} + +DECLARE_WAIT_QUEUE_HEAD(kmemswchkd_wq); + +static void kmemsw_chkd_try_to_sleep(void) +{ + DEFINE_WAIT(wait); + prepare_to_wait(&kmemswchkd_wq, &wait, TASK_INTERRUPTIBLE); + if (!kthread_should_stop()) + schedule(); + finish_wait(&kmemswchkd_wq, &wait); +} + +static int kmemsw_chkd(void *data) +{ + while (!kthread_should_stop()) { + check_pending_times++; + memsw_dev_check_pending(); + kmemsw_chkd_try_to_sleep(); + } + return -EPERM; +} + +void wakeup_kmemsw_chkd(void) +{ + if (!waitqueue_active(&kmemswchkd_wq)) + return; + wake_up_interruptible(&kmemswchkd_wq); +} +EXPORT_SYMBOL(wakeup_kmemsw_chkd); + +static struct task_struct *kmemswchkd_ktp; +static int __init kmemswchkd_init(void) +{ + int ret = 0; + struct memsw_dev *memsw_dev = memsw_dev_get_wo_check(); + ret = misc_register(&memsw_dev->misc_dev); + if (ret < 0) { + printk(KERN_WARNING "misc register device 'memsw_state' failed: %d", ret); + goto err_out; + } + + if (kmemswchkd_ktp) + return -EPERM; + + + kmemswchkd_ktp = kthread_run(kmemsw_chkd, NULL, "kmemsw_chkd"); + if (IS_ERR(kmemswchkd_ktp)) { + printk(KERN_WARNING"Failed to start kmemswchkd thread.\n"); + kmemswchkd_ktp = NULL; + ret = -1; + } + +err_out: + return ret; +} + +static void __init kmemswchkd_exit(void) +{ + struct memsw_dev *memsw_dev = memsw_dev_get_wo_check(); + misc_deregister(&memsw_dev->misc_dev); + + if (kmemswchkd_ktp != NULL) { + kthread_stop(kmemswchkd_ktp); + kmemswchkd_ktp = NULL; + } +} + +module_param_named(check_times, check_pending_times, uint, S_IRUGO | S_IWUSR); + +module_init(kmemswchkd_init); +module_exit(kmemswchkd_exit); + +MODULE_LICENSE("GPL"); + diff --git a/drivers/staging/android/memsw_state.h b/drivers/staging/android/memsw_state.h new file mode 100644 index 0000000000000..8a24c256282d3 --- /dev/null +++ b/drivers/staging/android/memsw_state.h @@ -0,0 +1,45 @@ +#ifndef _MEMSW_STATE_H +#define _MEMSW_STATE_H + +#include +#include + +struct memsw_state_data { + uint8_t low_mem_triggered; + uint8_t low_swap_triggered; + unsigned long mem_threshold; + unsigned long swap_threshold; + unsigned long current_freeram; + unsigned long current_freeswap; +}; + +struct memsw_dev { + struct memsw_state_data memsw_data; + struct miscdevice misc_dev; + wait_queue_head_t wq; + struct list_head reader_list; + struct mutex mutex; /* protects reader_list */ +}; + +struct memsw_reader { + struct memsw_dev *dev; /* associated device*/ + struct list_head list; /* node in memsw_dev.reader_list*/ + uint8_t auth_rights; + uint8_t version; +}; + +struct memsw_dev *memsw_dev_get_wo_check(void); +struct memsw_dev *memsw_dev_get_w_check(int minor); +void wakeup_kmemsw_chkd(void); + +#define __MEMSWIO 0xAE + +#define GET_MEM_THRESHOLD _IO(__MEMSWIO, 0x11) +#define SET_MEM_THRESHOLD _IO(__MEMSWIO, 0x12) +#define GET_SWAP_THRESHOLD _IO(__MEMSWIO, 0x13) +#define SET_SWAP_THRESHOLD _IO(__MEMSWIO, 0x14) +#define GET_MEMSW_DEV_VERSION _IO(__MEMSWIO, 0x15) +#define SET_MEMSW_DEV_VERSION _IO(__MEMSWIO, 0x16) + +#endif + diff --git a/drivers/staging/android/uapi/binder.h b/drivers/staging/android/uapi/binder.h index dba4cef3a8d35..712314f2e9993 100644 --- a/drivers/staging/android/uapi/binder.h +++ b/drivers/staging/android/uapi/binder.h @@ -32,11 +32,60 @@ enum { BINDER_TYPE_HANDLE = B_PACK_CHARS('s', 'h', '*', B_TYPE_LARGE), BINDER_TYPE_WEAK_HANDLE = B_PACK_CHARS('w', 'h', '*', B_TYPE_LARGE), BINDER_TYPE_FD = B_PACK_CHARS('f', 'd', '*', B_TYPE_LARGE), + BINDER_TYPE_FDA = B_PACK_CHARS('f', 'd', 'a', B_TYPE_LARGE), + BINDER_TYPE_PTR = B_PACK_CHARS('p', 't', '*', B_TYPE_LARGE), }; -enum { +/** + * enum flat_binder_object_shifts: shift values for flat_binder_object_flags + * @FLAT_BINDER_FLAG_SCHED_POLICY_SHIFT: shift for getting scheduler policy. + * + */ +enum flat_binder_object_shifts { + FLAT_BINDER_FLAG_SCHED_POLICY_SHIFT = 9, +}; + +/** + * enum flat_binder_object_flags - flags for use in flat_binder_object.flags + */ +enum flat_binder_object_flags { + /** + * @FLAT_BINDER_FLAG_PRIORITY_MASK: bit-mask for min scheduler priority + * + * These bits can be used to set the minimum scheduler priority + * at which transactions into this node should run. Valid values + * in these bits depend on the scheduler policy encoded in + * @FLAT_BINDER_FLAG_SCHED_POLICY_MASK. + * + * For SCHED_NORMAL/SCHED_BATCH, the valid range is between [-20..19] + * For SCHED_FIFO/SCHED_RR, the value can run between [1..99] + */ FLAT_BINDER_FLAG_PRIORITY_MASK = 0xff, + /** + * @FLAT_BINDER_FLAG_ACCEPTS_FDS: whether the node accepts fds. + */ FLAT_BINDER_FLAG_ACCEPTS_FDS = 0x100, + /** + * @FLAT_BINDER_FLAG_SCHED_POLICY_MASK: bit-mask for scheduling policy + * + * These two bits can be used to set the min scheduling policy at which + * transactions on this node should run. These match the UAPI + * scheduler policy values, eg: + * 00b: SCHED_NORMAL + * 01b: SCHED_FIFO + * 10b: SCHED_RR + * 11b: SCHED_BATCH + */ + FLAT_BINDER_FLAG_SCHED_POLICY_MASK = + 3U << FLAT_BINDER_FLAG_SCHED_POLICY_SHIFT, + + /** + * @FLAT_BINDER_FLAG_INHERIT_RT: whether the node inherits RT policy + * + * Only when set, calls into this node will inherit a real-time + * scheduling policy from the caller (for synchronous transactions). + */ + FLAT_BINDER_FLAG_INHERIT_RT = 0x800, }; #ifdef BINDER_IPC_32BIT @@ -47,6 +96,14 @@ typedef __u64 binder_size_t; typedef __u64 binder_uintptr_t; #endif +/** + * struct binder_object_header - header shared by all binder metadata objects. + * @type: type of the object + */ +struct binder_object_header { + __u32 type; +}; + /* * This is the flattened representation of a Binder object for transfer * between processes. The 'offsets' supplied as part of a binder transaction @@ -55,9 +112,8 @@ typedef __u64 binder_uintptr_t; * between processes. */ struct flat_binder_object { - /* 8 bytes for large_flat_header. */ - __u32 type; - __u32 flags; + struct binder_object_header hdr; + __u32 flags; /* 8 bytes of data. */ union { @@ -69,6 +125,86 @@ struct flat_binder_object { binder_uintptr_t cookie; }; +/** + * struct binder_fd_object - describes a filedescriptor to be fixed up. + * @hdr: common header structure + * @pad_flags: padding to remain compatible with old userspace code + * @pad_binder: padding to remain compatible with old userspace code + * @fd: file descriptor + * @cookie: opaque data, used by user-space + */ +struct binder_fd_object { + struct binder_object_header hdr; + __u32 pad_flags; + union { + binder_uintptr_t pad_binder; + __u32 fd; + }; + + binder_uintptr_t cookie; +}; + +/* struct binder_buffer_object - object describing a userspace buffer + * @hdr: common header structure + * @flags: one or more BINDER_BUFFER_* flags + * @buffer: address of the buffer + * @length: length of the buffer + * @parent: index in offset array pointing to parent buffer + * @parent_offset: offset in @parent pointing to this buffer + * + * A binder_buffer object represents an object that the + * binder kernel driver can copy verbatim to the target + * address space. A buffer itself may be pointed to from + * within another buffer, meaning that the pointer inside + * that other buffer needs to be fixed up as well. This + * can be done by setting the BINDER_BUFFER_FLAG_HAS_PARENT + * flag in @flags, by setting @parent buffer to the index + * in the offset array pointing to the parent binder_buffer_object, + * and by setting @parent_offset to the offset in the parent buffer + * at which the pointer to this buffer is located. + */ +struct binder_buffer_object { + struct binder_object_header hdr; + __u32 flags; + binder_uintptr_t buffer; + binder_size_t length; + binder_size_t parent; + binder_size_t parent_offset; +}; + +enum { + BINDER_BUFFER_FLAG_HAS_PARENT = 0x01, +}; + +/* struct binder_fd_array_object - object describing an array of fds in a buffer + * @hdr: common header structure + * @pad: padding to ensure correct alignment + * @num_fds: number of file descriptors in the buffer + * @parent: index in offset array to buffer holding the fd array + * @parent_offset: start offset of fd array in the buffer + * + * A binder_fd_array object represents an array of file + * descriptors embedded in a binder_buffer_object. It is + * different from a regular binder_buffer_object because it + * describes a list of file descriptors to fix up, not an opaque + * blob of memory, and hence the kernel needs to treat it differently. + * + * An example of how this would be used is with Android's + * native_handle_t object, which is a struct with a list of integers + * and a list of file descriptors. The native_handle_t struct itself + * will be represented by a struct binder_buffer_objct, whereas the + * embedded list of file descriptors is represented by a + * struct binder_fd_array_object with that binder_buffer_object as + * a parent. + */ +struct binder_fd_array_object { + struct binder_object_header hdr; + __u32 pad; + binder_size_t num_fds; + binder_size_t parent; + binder_size_t parent_offset; +}; + /* * On 64-bit platforms where user code may run in 32-bits the driver must * translate the buffer (and local binder) addresses appropriately. @@ -96,6 +232,19 @@ struct binder_version { #define BINDER_CURRENT_PROTOCOL_VERSION 8 #endif +/* + * Use with BINDER_GET_NODE_DEBUG_INFO, driver reads ptr, writes to all fields. + * Set ptr to NULL for the first call to get the info for the first node, and + * then repeat the call passing the previously returned value to get the next + * nodes. ptr will be 0 when there are no more nodes. + */ +struct binder_node_debug_info { + binder_uintptr_t ptr; + binder_uintptr_t cookie; + __u32 has_strong_ref; + __u32 has_weak_ref; +}; + #define BINDER_WRITE_READ _IOWR('b', 1, struct binder_write_read) #define BINDER_SET_IDLE_TIMEOUT _IOW('b', 3, __s64) #define BINDER_SET_MAX_THREADS _IOW('b', 5, __u32) @@ -103,6 +252,7 @@ struct binder_version { #define BINDER_SET_CONTEXT_MGR _IOW('b', 7, __s32) #define BINDER_THREAD_EXIT _IOW('b', 8, __s32) #define BINDER_VERSION _IOWR('b', 9, struct binder_version) +#define BINDER_GET_NODE_DEBUG_INFO _IOWR('b', 11, struct binder_node_debug_info) /* * NOTE: Two special error codes you should check for when calling @@ -161,6 +311,11 @@ struct binder_transaction_data { } data; }; +struct binder_transaction_data_sg { + struct binder_transaction_data transaction_data; + binder_size_t buffers_size; +}; + struct binder_ptr_cookie { binder_uintptr_t ptr; binder_uintptr_t cookie; @@ -345,6 +500,12 @@ enum binder_driver_command_protocol { /* * void *: cookie */ + + BC_TRANSACTION_SG = _IOW('c', 17, struct binder_transaction_data_sg), + BC_REPLY_SG = _IOW('c', 18, struct binder_transaction_data_sg), + /* + * binder_transaction_data_sg: the sent command. + */ }; #endif /* _UAPI_LINUX_BINDER_H */ diff --git a/drivers/staging/ktrace/Kconfig b/drivers/staging/ktrace/Kconfig new file mode 100644 index 0000000000000..9a1cb2f7d7024 --- /dev/null +++ b/drivers/staging/ktrace/Kconfig @@ -0,0 +1,6 @@ +config KTRACE + bool "enable ktrace" + select DEBUG_FS + default y + help + add kernel trace, such as slow path time, direct reclaim time diff --git a/drivers/staging/ktrace/Makefile b/drivers/staging/ktrace/Makefile new file mode 100644 index 0000000000000..29399e8471a0a --- /dev/null +++ b/drivers/staging/ktrace/Makefile @@ -0,0 +1,3 @@ +obj-$(CONFIG_KTRACE) += ktrace_main.o ktrace_mm.o ktrace_print.o \ + ktrace_queue.o ktrace_sched.o ktrace_event.o \ + ktrace_binder.o ktrace_cpufreq.o diff --git a/drivers/staging/ktrace/ktrace_binder.c b/drivers/staging/ktrace/ktrace_binder.c new file mode 100644 index 0000000000000..efc4df119d3f1 --- /dev/null +++ b/drivers/staging/ktrace/ktrace_binder.c @@ -0,0 +1,216 @@ +#define pr_fmt(fmt) "ktrace : " fmt + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define BINDER_ITEMS_READ_MAX DEFAULT_ITEMS_PER_READ + +struct binder_entry { + long long time_stamp_ns; + unsigned char type; + pid_t pid; + unsigned int time_us; +}; + +struct binder_stats { + atomic_t count; + u64 time; /* us */ +}; + +struct ktrace_binder { + struct ktrace_queue *q; + struct dentry *dir; + + void *buf; + int entry_size; + int max; + + unsigned int match_all_pid; + unsigned int filter[KTRACE_BINDER_TYPE_NR]; + struct binder_stats stats[KTRACE_BINDER_TYPE_NR]; +}; + +static struct ktrace_binder __binder = { + .filter = { + [KTRACE_BINDER_TYPE_SAMPLE1] = MS_TO_US(1), + [KTRACE_BINDER_TYPE_SAMPLE2] = MS_TO_US(1), + [KTRACE_BINDER_TYPE_SAMPLE3] = MS_TO_US(1), + [KTRACE_BINDER_TYPE_SAMPLE4] = MS_TO_US(1), + [KTRACE_BINDER_TYPE_SAMPLE5] = MS_TO_US(1), + [KTRACE_BINDER_TYPE_SAMPLE6] = MS_TO_US(1), + [KTRACE_BINDER_TYPE_SAMPLE7] = MS_TO_US(1), + [KTRACE_BINDER_TYPE_SAMPLE8] = MS_TO_US(1), + [KTRACE_BINDER_TYPE_SAMPLE9] = MS_TO_US(1), + [KTRACE_BINDER_TYPE_SAMPLE10] = MS_TO_US(1), + + /* Do not change below values */ + [KTRACE_BINDER_TYPE_TRANSACTION] = MS_TO_US(1), + } +}; + +static const char *const binder_event_name[KTRACE_BINDER_TYPE_NR] = { + "sam_1", + "sam_2", + "sam_3", + "sam_4", + "sam_5", + "sam_6", + "sam_7", + "sam_8", + "sam_9", + "sam_10", + + "transaction", +}; + +void ktrace_add_binder_event(unsigned char type, u64 time_stamp, u64 delta) +{ + struct ktrace_binder *binder = &__binder; + struct ktrace_queue *q = binder->q; + struct binder_entry e; + u64 delta_us = delta >> 10; /* ns => us */ + pid_t pid = current->pid; + + if (unlikely(!binder->buf || type >= KTRACE_BINDER_TYPE_NR)) + return; + + if (likely(delta_us < binder->filter[type])) + return; + + if (!binder->match_all_pid && !ktrace_sched_match_pid(pid)) + return; + + e.time_stamp_ns = time_stamp; + e.type = type; + e.pid = pid; + e.time_us = (unsigned int)delta_us; + + atomic_inc(&binder->stats[type].count); + binder->stats[type].time += delta_us; + + ktrace_tryadd_queue(q, &e); +} + +static int binder_show_entry(struct seq_file *m, void *entry, bool debug) +{ + struct binder_entry *e = (struct binder_entry *)entry; + int ret; + + ret = seq_printf(m, "%lld %5d <%s> %d.%03d ms\n", + e->time_stamp_ns, e->pid, + binder_event_name[e->type], + e->time_us / 1000, e->time_us % 1000); + + return ret; +} + +KTRACE_QUEUE_RO_SINGLE(binder); + +static int binder_stats_show(struct seq_file *m, void *v) +{ + struct ktrace_binder *binder = (struct ktrace_binder *)m->private; + int i; + + seq_puts(m, "statatistics:\n"); + for (i = 0; i < KTRACE_BINDER_TYPE_NR; i++) { + seq_printf(m, " %-32s %6d %llu ms\n", binder_event_name[i], + atomic_read(&binder->stats[i].count), + binder->stats[i].time >> 10); + } + + return 0; +} +KTRACE_ENTRY_RO_SINGLE(binder_stats); + +static int binder_reset_write(void *data, u64 val) +{ + struct ktrace_queue *q = data; + struct ktrace_binder *binder = q->priv; + int clean = val; + int i; + + if (clean) { + ktrace_reset_queue(q); + + for (i = 0; i < KTRACE_BINDER_TYPE_NR; i++) { + atomic_set(&binder->stats[i].count, 0); + binder->stats[i].time = 0; + } + } + + return 0; +} +DEFINE_SIMPLE_ATTRIBUTE(binder_reset, NULL, binder_reset_write, "%llu\n"); + +int __init ktrace_binder_init(struct dentry *dir, struct ktrace_queue *q) +{ + struct ktrace_binder *binder = &__binder; + void *buf; + int i; + + BUILD_BUG_ON(sizeof(binder_event_name) / sizeof(binder_event_name[0]) + != KTRACE_BINDER_TYPE_NR); + + memset(binder, sizeof(struct ktrace_binder), 0); + + buf = (void *)__get_free_pages(GFP_KERNEL | __GFP_ZERO, 1); + if (!buf) + return -ENOMEM; + binder->q = q; + + binder->entry_size = sizeof(struct binder_entry); + binder->max = (PAGE_SIZE << 1) / binder->entry_size; + + binder->dir = debugfs_create_dir("binder", dir); + + ktrace_init_queue(q, binder->dir, binder, buf, binder->entry_size, binder->max, + BINDER_ITEMS_READ_MAX, + binder_show_entry); + + if (binder->dir) { + debugfs_create_file("trace", + S_IFREG | S_IRUGO, + binder->dir, + q, + &binder_fops); + + debugfs_create_bool("match_all_pids", + S_IFREG | S_IRUGO | S_IWUSR , + binder->dir, + &binder->match_all_pid); + + debugfs_create_file("stats", + S_IFREG | S_IRUGO, + binder->dir, + binder, + &binder_stats_fops); + + for (i = 0; i < KTRACE_BINDER_TYPE_NR; i++) { + char name[32]; + snprintf(name, sizeof(name) - 1, "filter_%s", binder_event_name[i]); + + debugfs_create_u32(name, + S_IFREG | S_IRUGO | S_IWUSR, + binder->dir, + &binder->filter[i]); + } + + debugfs_create_file("reset", S_IWUSR, binder->dir, q, + &binder_reset); + } + + smp_mb(); + binder->buf = buf; + pr_info("binder ktrace init OK\n"); + + return 0; +} diff --git a/drivers/staging/ktrace/ktrace_cpufreq.c b/drivers/staging/ktrace/ktrace_cpufreq.c new file mode 100644 index 0000000000000..07fe470d809e3 --- /dev/null +++ b/drivers/staging/ktrace/ktrace_cpufreq.c @@ -0,0 +1,316 @@ +#define pr_fmt(fmt) "ktrace : " fmt + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define PROC_HASH_BITS 10 +DECLARE_HASHTABLE(proc_hash, PROC_HASH_BITS); + +#define CPUFREQ_ITEMS_READ_MAX DEFAULT_ITEMS_PER_READ +#define KTRACE_CPUFREQ_MITIGATED_NR 2 + +struct cpufreq_entry { + s64 time_stamp_ns; + unsigned char type; + pid_t pid; + unsigned int cpu; + unsigned int target_freq; + unsigned int max; +}; + +struct cpufreq_mitigated { + bool ismitigated; + unsigned int cpu; + unsigned int max; + char comm[TASK_COMM_LEN]; +}; + +struct proc_entry { + pid_t pid; + char comm[TASK_COMM_LEN]; + unsigned long long load; + struct hlist_node hash; +}; + +struct ktrace_cpufreq { + struct ktrace_queue *q; + struct dentry *dir; + + void *buf; + int entry_size; + int max; + struct cpufreq_mitigated mitigated[KTRACE_CPUFREQ_MITIGATED_NR]; +}; + +static struct ktrace_cpufreq __cf; + +static const char const *cpufreq_event_name[KTRACE_CPUFREQ_TYPE_NR] = { + "sam_1", + "sam_2", + "sam_3", + "sam_4", + "sam_5", + "sam_6", + "sam_7", + "sam_8", + "sam_9", + "sam_10", + + "mitigation", + "unpluged", +}; + +static int cpufreq_show_entry(struct seq_file *m, void *entry, bool debug) +{ + struct cpufreq_entry *e = (struct cpufreq_entry *)entry; + int ret; + + if (e->type == KTRACE_CPUFREQ_TYPE_MITIGATION) { + if (debug) { + ret = seq_printf(m, "%lld %5d <%s> %d ms %u %u %u\n", + e->time_stamp_ns, e->pid, + cpufreq_event_name[e->type], -1, + e->cpu, e->target_freq, e->max); + } else { + ret = seq_printf(m, "%lld %5d <%s> %d ms %u %u %u\n", + e->time_stamp_ns, e->pid, + cpufreq_event_name[e->type], -1, + e->cpu, e->target_freq, e->max); + } + } else { + ret = seq_printf(m, "%lld %5d <%s> %d ms %u\n", + e->time_stamp_ns, e->pid, + cpufreq_event_name[e->type], -1, + e->cpu); + } + + return ret; +} + +KTRACE_QUEUE_RO_SINGLE(cpufreq); + +void ktrace_add_cpufreq_event(unsigned char type, pid_t pid, u64 time_stamp, + unsigned int cpu, unsigned int target_freq, unsigned int max) +{ + struct ktrace_cpufreq *cpufreq = &__cf; + struct ktrace_queue *q = cpufreq->q; + struct cpufreq_entry e; + + if (unlikely(!cpufreq->buf)) + return; + + if (!ktrace_sched_match_pid(pid)) + return; + + e.time_stamp_ns = time_stamp; + e.type = type; + e.pid = pid; + e.cpu = cpu; + e.target_freq = target_freq; + e.max = max; + + ktrace_tryadd_queue(q, &e); +} + +void ktrace_cpufreq_set_mitigated(char *comm, unsigned int cpu, + const struct cpumask *related_cpus, unsigned int max) +{ + struct ktrace_cpufreq *cpufreq = &__cf; + int i; + + for (i = 0; i < KTRACE_CPUFREQ_MITIGATED_NR; i++) { + struct cpufreq_mitigated *cm = &cpufreq->mitigated[i]; + + if (cm->cpu == -1 || cpumask_test_cpu(cm->cpu, related_cpus) != 0) { + if (max == 0) { + + cm->ismitigated = false; + cm->max = UINT_MAX; + } else if (max < cm->max) { + + + cm->ismitigated = true; + cm->cpu = cpu; + cm->max = max; + memcpy(cm->comm, comm, TASK_COMM_LEN); + } + break; + } + } +} + +static int cpufreq_mitigated_show(struct seq_file *m, void *v) +{ + struct ktrace_cpufreq *cpufreq = (struct ktrace_cpufreq *)m->private; + int i; + + for (i = 0; i < KTRACE_CPUFREQ_MITIGATED_NR; i++) { + struct cpufreq_mitigated *cm = &cpufreq->mitigated[i]; + if (cm->ismitigated) { + seq_printf(m, "%u %u <%s>\n", + cm->cpu, cm->max, cm->comm); + } + } + + return 0; +} + +KTRACE_ENTRY_RO_SINGLE(cpufreq_mitigated); + +static void __init cpufreq_mitigated_init(struct ktrace_cpufreq *cpufreq) +{ + int i; + + for (i = 0; i < KTRACE_CPUFREQ_MITIGATED_NR; i++) { + struct cpufreq_mitigated *cm = &cpufreq->mitigated[i]; + cm->ismitigated = false; + cm->cpu = -1; + cm->max = UINT_MAX; + } +} + +void ktrace_cpufreq_update_history(struct task_struct *p, u32 runtime, int samples, u32 scale_runtime) +{ + u32 load = runtime; + + if (samples) + load += samples * scale_runtime; + + p->ravg.proc_load += load; +} + +static inline struct proc_entry *find_proc_entry(pid_t pid) +{ + struct proc_entry *proc_entry; + hash_for_each_possible(proc_hash, proc_entry, hash, pid) { + if (proc_entry->pid == pid) + return proc_entry; + } + return NULL; +} + +static inline struct proc_entry *find_or_register_proc(pid_t pid, char *comm) +{ + struct proc_entry *proc_entry; + + proc_entry = find_proc_entry(pid); + if (proc_entry) + return proc_entry; + + proc_entry = kzalloc(sizeof(struct proc_entry), GFP_ATOMIC); + if (!proc_entry) + return NULL; + + proc_entry->pid = pid; + memcpy(proc_entry->comm, comm, TASK_COMM_LEN); + proc_entry->load = 0; + + hash_add(proc_hash, &proc_entry->hash, pid); + + return proc_entry; +} + +static int cpufreq_procload_show(struct seq_file *m, void *v) +{ + struct proc_entry *proc_entry; + struct task_struct *task, *temp; + struct hlist_node *tmp; + unsigned long bkt; + + read_lock(&tasklist_lock); + do_each_thread(temp, task) { + proc_entry = find_or_register_proc(task->tgid, task->group_leader->comm); + + if (!proc_entry) { + pr_err("%s: failed to find the proc_entry for pid %d\n", + __func__, task->tgid); + read_unlock(&tasklist_lock); + return -ENOMEM; + } + + proc_entry->load += task->ravg.proc_load; + + } while_each_thread(temp, task); + read_unlock(&tasklist_lock); + + hash_for_each_safe(proc_hash, bkt, tmp, proc_entry, hash) { + if (proc_entry->load > 0) { + seq_printf(m, "%d %s %llu\n", proc_entry->pid, + proc_entry->comm, proc_entry->load); + } + hash_del(&proc_entry->hash); + kfree(proc_entry); + } + + return 0; + +} + +KTRACE_ENTRY_RO_SINGLE(cpufreq_procload); + +int __init ktrace_cpufreq_init(struct dentry *dir, struct ktrace_queue *q) +{ + struct ktrace_cpufreq *cpufreq = &__cf; + void *buf; + + hash_init(proc_hash); + + BUILD_BUG_ON(sizeof(cpufreq_event_name) / sizeof(cpufreq_event_name[0]) + != KTRACE_CPUFREQ_TYPE_NR); + + buf = (void *)__get_free_pages(GFP_KERNEL | __GFP_ZERO, 1); + if (!buf) + return -ENOMEM; + cpufreq->q = q; + + cpufreq->entry_size = sizeof(struct cpufreq_entry); + cpufreq->max = (PAGE_SIZE << 1) / cpufreq->entry_size; + + cpufreq_mitigated_init(cpufreq); + + cpufreq->dir = debugfs_create_dir("cpufreq", dir); + + ktrace_init_queue(q, cpufreq->dir, cpufreq, buf, cpufreq->entry_size, cpufreq->max, + CPUFREQ_ITEMS_READ_MAX, + cpufreq_show_entry); + + if (cpufreq->dir) { + debugfs_create_file("trace", + S_IFREG | S_IRUGO, + cpufreq->dir, + q, + &cpufreq_fops); + + debugfs_create_file("mitigated", + S_IFREG | S_IRUGO, + cpufreq->dir, + cpufreq, + &cpufreq_mitigated_fops); + + debugfs_create_file("procload", + S_IFREG | S_IRUGO, + cpufreq->dir, + cpufreq, + &cpufreq_procload_fops); + } + + smp_mb(); + cpufreq->buf = buf; + + pr_info("cpufreq ktrace init OK\n"); + + return 0; +} diff --git a/drivers/staging/ktrace/ktrace_event.c b/drivers/staging/ktrace/ktrace_event.c new file mode 100644 index 0000000000000..a1a2f9765ddaf --- /dev/null +++ b/drivers/staging/ktrace/ktrace_event.c @@ -0,0 +1,133 @@ + +#define pr_fmt(fmt) "ktrace : " fmt + + +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +struct event_entry { + atomic64_t created_count; + atomic64_t deleted_count; +}; + +struct ktrace_event { + struct dentry *dir; + + struct event_entry entry[KTRACE_EVENT_NR]; + +}; + +static const char const *event_str[KTRACE_EVENT_NR] = { + "event-1", + "event-2", + "event-3", + "event-4", + "event-5", + "event-6", + "event-7", + "event-8", + "event-9", + "event-10", + + "event-11", + "event-12", + "event-13", + "event-14", + "event-15", + "event-16", + "event-17", + "event-18", + "event-19", + "event-20", +}; + + +static struct ktrace_event __event; + +void ktrace_event_inc(unsigned char type) +{ + struct ktrace_event *event = &__event; + struct event_entry *ee = &event->entry[type]; + + atomic_long_inc(&ee->created_count); + + return; +} + +void ktrace_event_dec(unsigned char type) +{ + struct ktrace_event *event = &__event; + struct event_entry *ee = &event->entry[type]; + + atomic_long_inc(&ee->deleted_count); + + return; +} + +void ktrace_event_add(unsigned char type, int i) +{ + struct ktrace_event *event = &__event; + struct event_entry *ee = &event->entry[type]; + + atomic_long_add(i, &ee->created_count); + + return; +} + +void ktrace_event_sub(unsigned char type, int i) +{ + struct ktrace_event *event = &__event; + struct event_entry *ee = &event->entry[type]; + + atomic_long_add(i, &ee->deleted_count); + + return; +} + +static int event_stats_show(struct seq_file *m, void *v) +{ + struct ktrace_event *event = m->private; + int i; + + seq_puts(m, "event stats:\n"); + + for (i = 0; i < KTRACE_EVENT_NR; i++) { + long created = atomic_long_read(&event->entry[i].created_count); + long deleted = atomic_long_read(&event->entry[i].deleted_count); + seq_printf(m, " %-20s %ld - %ld = %ld\n", event_str[i], + created, deleted, created - deleted); + } + + return 0; +} + +KTRACE_ENTRY_RO_SINGLE(event_stats); + +int __init ktrace_event_init(struct dentry *dir) +{ + struct ktrace_event *event = &__event; + + memset(event, sizeof(struct ktrace_event), 0); + + event->dir = debugfs_create_dir("event", dir); + + if (event->dir) { + debugfs_create_file("stats", + S_IFREG | S_IRUGO, + event->dir, + event, + &event_stats_fops); + } + + pr_info("event ktrace init OK\n"); + + return 0; +} diff --git a/drivers/staging/ktrace/ktrace_main.c b/drivers/staging/ktrace/ktrace_main.c new file mode 100644 index 0000000000000..f1296b9e2b79e --- /dev/null +++ b/drivers/staging/ktrace/ktrace_main.c @@ -0,0 +1,52 @@ + +#define pr_fmt(fmt) "ktrace : " fmt + +#include +#include +#include +#include +#include +#include + +static struct ktrace __kt; + +struct ktrace *get_ktrace(void) +{ + return &__kt; +} + +static int __init ktrace_init(void) +{ + struct ktrace *kt = get_ktrace(); + + if (!debugfs_initialized()) { + pr_warn("debugfs not available, stat dir not created\n"); + return -ENOENT; + } + kt->dir = debugfs_create_dir("ktrace", NULL); + if (!kt->dir) { + pr_err("debugfs 'ktrace' stat dir creation failed\n"); + return -ENOMEM ; + } + + ktrace_print_init(kt->dir, &kt->queue[QUEUE_STR]); + + ktrace_event_init(kt->dir); + + ktrace_mm_init(kt->dir, &kt->queue[QUEUE_MM]); + + ktrace_sched_init(kt->dir, &kt->queue[QUEUE_SCHED]); + + ktrace_binder_init(kt->dir, &kt->queue[QUEUE_BINDER]); + + ktrace_cpufreq_init(kt->dir, &kt->queue[QUEUE_CPUFREQ]); + + pr_info("ktrace init OK\n"); + + return 0; +} + +fs_initcall(ktrace_init); + +MODULE_LICENSE("Dual BSD/GPL"); +MODULE_AUTHOR("Cai Liu "); diff --git a/drivers/staging/ktrace/ktrace_mm.c b/drivers/staging/ktrace/ktrace_mm.c new file mode 100644 index 0000000000000..b033ebdac5d1c --- /dev/null +++ b/drivers/staging/ktrace/ktrace_mm.c @@ -0,0 +1,284 @@ + +#define pr_fmt(fmt) "ktrace : " fmt + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define MM_ITEMS_READ_MAX DEFAULT_ITEMS_PER_READ + +struct mm_entry { + long long time_stamp_ns; + unsigned char type; + pid_t pid; + unsigned int time_us; +}; + +struct mm_stats { + atomic_t count; + u64 time; /* us */ +}; + +struct ktrace_mm { + struct ktrace_queue *q; + struct dentry *dir; + + void *buf; + int entry_size; + int max; + + unsigned int match_all_pid; + unsigned int filter[KTRACE_MM_TYPE_NR]; + struct mm_stats stats[KTRACE_MM_TYPE_NR]; +}; + +static struct ktrace_mm __mm = { + .filter = { + [KTRACE_MM_TYPE_SAMPLE1] = MS_TO_US(1), + [KTRACE_MM_TYPE_SAMPLE2] = MS_TO_US(1), + [KTRACE_MM_TYPE_SAMPLE3] = MS_TO_US(1), + [KTRACE_MM_TYPE_SAMPLE4] = MS_TO_US(1), + [KTRACE_MM_TYPE_SAMPLE5] = MS_TO_US(1), + [KTRACE_MM_TYPE_SAMPLE6] = MS_TO_US(1), + [KTRACE_MM_TYPE_SAMPLE7] = MS_TO_US(1), + [KTRACE_MM_TYPE_SAMPLE8] = MS_TO_US(1), + [KTRACE_MM_TYPE_SAMPLE9] = MS_TO_US(1), + [KTRACE_MM_TYPE_SAMPLE10] = MS_TO_US(1), + + /* Do not change below values */ + [KTRACE_MM_TYPE_SLOW_PATH] = MS_TO_US(1), + [KTRACE_MM_TYPE_COMPACT] = MS_TO_US(1), + [KTRACE_MM_TYPE_DIRECT_RECLAIM] = MS_TO_US(1), + } +}; + +static const char *const mm_event_name[KTRACE_MM_TYPE_NR] = { + "sam_1", + "sam_2", + "sam_3", + "sam_4", + "sam_5", + "sam_6", + "sam_7", + "sam_8", + "sam_9", + "sam_10", + + "slow_path", + "compact", + "direct_reclaim", +}; + +void ktrace_add_mm_event(unsigned char type, u64 time_stamp, u64 delta) +{ + struct ktrace_mm *mm = &__mm; + struct ktrace_queue *q = mm->q; + struct mm_entry e; + u64 delta_us = delta >> 10; /* ns => us */ + pid_t pid = current->pid; + + if (unlikely(!mm->buf || type >= KTRACE_MM_TYPE_NR)) + return; + + if (!mm->match_all_pid && !ktrace_sched_match_pid(pid)) + return; + + if (likely(delta_us < mm->filter[type])) + return; + + e.time_stamp_ns = time_stamp; + e.type = type; + e.pid = pid; + e.time_us = (unsigned int)delta_us; + + atomic_inc(&mm->stats[type].count); + mm->stats[type].time += delta_us; + + ktrace_tryadd_queue(q, &e); +} + +static int mm_show_entry(struct seq_file *m, void *entry, bool debug) +{ + struct mm_entry *e = (struct mm_entry *)entry; + int ret; + + ret = seq_printf(m, "%lld %5d <%s> %d.%03d ms\n", + e->time_stamp_ns, e->pid, + mm_event_name[e->type], + e->time_us / 1000, e->time_us % 1000); + + return ret; + + return 0; +} + +KTRACE_QUEUE_RO_SINGLE(mm); + +static int mm_fragment_show(struct seq_file *m, void *v) +{ + int nid; + unsigned int order; + + /* Flush pending updates to the LRU lists */ + lru_add_drain_all(); + + seq_printf(m, "%-15s ", "fragmentation "); + for (order = 0; order < MAX_ORDER; ++order) + seq_printf(m, "%6d ", order); + seq_putc(m, '\n'); + + for_each_online_node(nid) { + pg_data_t *pgdat = NODE_DATA(nid); + int zoneid; + + if (!node_state(pgdat->node_id, N_MEMORY)) + continue; + + for (zoneid = 0; zoneid < MAX_NR_ZONES; zoneid++) { + struct zone *zone = &pgdat->node_zones[zoneid]; + int fragindex; + unsigned long flags; + + if (!populated_zone(zone)) + continue; + + seq_printf(m, "Node %d, zone %8s ", + pgdat->node_id, zone->name); + + if (!spin_trylock_irqsave(&zone->lock, flags)) + return 0; + + for (order = 0; order < MAX_ORDER; order++) { + fragindex = fragmentation_index(zone, order); + if (fragindex == -1000) { + seq_printf(m, "%6s ", "ok"); + } else { + seq_printf(m, "%6d ", fragindex); + } + } + seq_putc(m, '\n'); + spin_unlock_irqrestore(&zone->lock, flags); + } + } + + return 0; +} + +KTRACE_ENTRY_RO_SINGLE(mm_fragment); + +static int mm_stats_show(struct seq_file *m, void *v) +{ + struct ktrace_mm *mm = (struct ktrace_mm *)m->private; + int i; + + seq_puts(m, "statatistics:\n"); + for (i = 0; i < KTRACE_MM_TYPE_NR; i++) { + seq_printf(m, " %-32s %6d %llu ms\n", mm_event_name[i], + atomic_read(&mm->stats[i].count), + mm->stats[i].time >> 10); + } + + return 0; +} +KTRACE_ENTRY_RO_SINGLE(mm_stats); + +static int mm_reset_write(void *data, u64 val) +{ + struct ktrace_queue *q = data; + struct ktrace_mm *mm = q->priv; + int clean = val; + int i; + + if (clean) { + ktrace_reset_queue(q); + + for (i = 0; i < KTRACE_MM_TYPE_NR; i++) { + atomic_set(&mm->stats[i].count, 0); + mm->stats[i].time = 0; + } + } + + return 0; +} +DEFINE_SIMPLE_ATTRIBUTE(mm_reset, NULL, mm_reset_write, "%llu\n"); + +int __init ktrace_mm_init(struct dentry *dir, struct ktrace_queue *q) +{ + struct ktrace_mm *mm = &__mm; + void *buf; + int i; + + BUILD_BUG_ON(sizeof(mm_event_name) / sizeof(mm_event_name[0]) + != KTRACE_MM_TYPE_NR); + + memset(mm, sizeof(struct ktrace_mm), 0); + + buf = (void *)__get_free_pages(GFP_KERNEL | __GFP_ZERO, 1); + if (!buf) + return -ENOMEM; + mm->q = q; + + mm->entry_size = sizeof(struct mm_entry); + mm->max = (PAGE_SIZE << 1) / mm->entry_size; + + mm->dir = debugfs_create_dir("mm", dir); + + ktrace_init_queue(q, mm->dir, mm, buf, mm->entry_size, mm->max, + MM_ITEMS_READ_MAX, + mm_show_entry); + + if (mm->dir) { + debugfs_create_file("trace", + S_IFREG | S_IRUGO, + mm->dir, + q, + &mm_fops); + + debugfs_create_bool("match_all_pids", + S_IFREG | S_IRUGO | S_IWUSR , + mm->dir, + &mm->match_all_pid); + + debugfs_create_file("fragmentation", + S_IFREG | S_IRUGO, + mm->dir, + q, + &mm_fragment_fops); + + debugfs_create_file("stats", + S_IFREG | S_IRUGO, + mm->dir, + mm, + &mm_stats_fops); + + for (i = 0; i < KTRACE_MM_TYPE_NR; i++) { + char name[32]; + snprintf(name, sizeof(name) - 1, "filter_%s", mm_event_name[i]); + + debugfs_create_u32(name, + S_IFREG | S_IRUGO | S_IWUSR, + mm->dir, + &mm->filter[i]); + } + + debugfs_create_file("reset", S_IWUSR, mm->dir, q, + &mm_reset); + } + + smp_mb(); + mm->buf = buf; + pr_info("mm ktrace init OK\n"); + + return 0; +} diff --git a/drivers/staging/ktrace/ktrace_print.c b/drivers/staging/ktrace/ktrace_print.c new file mode 100644 index 0000000000000..3f6d45acf9ab9 --- /dev/null +++ b/drivers/staging/ktrace/ktrace_print.c @@ -0,0 +1,109 @@ + +#define pr_fmt(fmt) "ktrace : " fmt + + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define BUF_SIZE 64 + +struct ktrace_print { + struct ktrace_queue *q; + struct dentry *dir; + + void *buf; + int entry_size; + int max; +}; + +static struct ktrace_print __print; + +void ktrace_print(const char *fmt, ...) +{ + struct ktrace_print *kp = &__print; + struct ktrace_queue *q = kp->q; + char buf[BUF_SIZE]; + va_list args; + int cnt; + + if (unlikely(!kp->buf)) + return; + + va_start(args, fmt); + cnt = vsnprintf(buf, BUF_SIZE, fmt, args); + va_end(args); + + ktrace_add_queue_multi(q, buf, cnt); + + return; +} + +static int str_show_entry(struct seq_file *m, void *entry, bool debug) +{ + char *b = (char *)entry; + int ret; + + ret = seq_putc(m, *b); + + return ret; +} + +KTRACE_QUEUE_RO_SINGLE(print); + +static int print_clean_write(void *data, u64 val) +{ + struct ktrace_queue *q = data; + int clean = val; + + if (clean) { + ktrace_reset_queue(q); + } + + return 0; +} +DEFINE_SIMPLE_ATTRIBUTE(print_clean, NULL, print_clean_write, "%llu\n"); + +int __init ktrace_print_init(struct dentry *dir, struct ktrace_queue *q) +{ + struct ktrace_print *kp = &__print; + void *buf; + + memset(kp, sizeof(struct ktrace_print), 0); + + buf = (void *)__get_free_pages(GFP_KERNEL | __GFP_ZERO, 1); + if (!buf) + return -ENOMEM; + kp->q = q; + + kp->entry_size = 1; + kp->max = (PAGE_SIZE << 1); + kp->dir = debugfs_create_dir("print", dir); + + ktrace_init_queue(q, kp->dir, kp, buf, kp->entry_size, kp->max, + DEFAULT_ITEMS_PER_READ, + str_show_entry); + + if (kp->dir) { + debugfs_create_file("trace", + S_IFREG | S_IRUGO, + kp->dir, + q, + &print_fops); + + debugfs_create_file("clean", S_IWUSR, kp->dir, q, + &print_clean); + } + + smp_mb(); + kp->buf = buf; + pr_info("kp ktrace init OK\n"); + + return 0; +} diff --git a/drivers/staging/ktrace/ktrace_queue.c b/drivers/staging/ktrace/ktrace_queue.c new file mode 100644 index 0000000000000..504cafae25aae --- /dev/null +++ b/drivers/staging/ktrace/ktrace_queue.c @@ -0,0 +1,238 @@ + +#define pr_fmt(fmt) "ktrace : " fmt + + +#include +#include +#include +#include +#include +#include +#include +#include + + + +#ifdef KTRACE_QUEUE_NOLOCK + +static inline int KTRACE_QUEUE_TRYLOCK(spinlock_t *lock, unsigned long flags) +{ + return 1; +} +static inline void KTRACE_QUEUE_LOCK(spinlock_t *lock, unsigned long flags) {} +static inline void KTRACE_QUEUE_UNLOCK(spinlock_t *lock, unsigned long flags) {} + +#else + +#define KTRACE_QUEUE_TRYLOCK(lock, flags) \ + spin_trylock_irqsave(lock, flags) + +#define KTRACE_QUEUE_LOCK(lock, flags) \ + spin_lock_irqsave(lock, flags) + +#define KTRACE_QUEUE_UNLOCK(lock, flags) \ + spin_unlock_irqrestore(lock, flags) + +#endif + +void *ktrace_q_start(struct seq_file *m, loff_t *pos) +{ + struct ktrace_queue *q = m->private; + unsigned long flags; + void *ret = (void *) 1; + int enable_debug = q->enable_debug; + + KTRACE_QUEUE_LOCK(&q->lock, flags); + + if (enable_debug) { + seq_printf(m, "-> queue: tail %d, head %d, max %d\n", + q->tail, q->head, q->max); + } + + q->read_cnt = 0; + + if (QUEUE_EMPTY(q->head, q->tail)) { + ret = NULL; + } + + KTRACE_QUEUE_UNLOCK(&q->lock, flags); + + return ret; +} + +void *ktrace_q_next(struct seq_file *m, void *v, loff_t *pos) +{ + struct ktrace_queue *q = m->private; + unsigned long flags; + void *ret = (void *) 1; + + KTRACE_QUEUE_LOCK(&q->lock, flags); + + + q->read_cnt += 1; + + if ((q->read_cnt >= q->items_per_read) || + QUEUE_EMPTY(q->head, q->tail)) { + ret = NULL; + } + + KTRACE_QUEUE_UNLOCK(&q->lock, flags); + + return ret; + +} + +void ktrace_q_stop(struct seq_file *m, void *v) +{ + struct ktrace_queue *q = m->private; + int enable_debug = q->enable_debug; + + if (enable_debug) { + seq_printf(m, " queue: tail %d, head %d, max %d\n", + q->tail, q->head, q->max); + } +} + +int ktrace_q_show(struct seq_file *m, void *v) +{ + struct ktrace_queue *q = m->private; + unsigned long flags; + int enable_debug = q->enable_debug; + + KTRACE_QUEUE_LOCK(&q->lock, flags); + + if (QUEUE_EMPTY(q->head, q->tail)) { + goto out; + } + + q->show_entry(m, q->buf + q->tail * q->entry_size, enable_debug); + + q->tail = QUEUE_NEXT(q->tail, q->max); + +out: + KTRACE_QUEUE_UNLOCK(&q->lock, flags); + + return 0; +} + +int ktrace_q_single_show(struct seq_file *m, void *v) +{ + struct ktrace_queue *q = m->private; + unsigned long flags; + int ret; + int enable_debug = q->enable_debug; + int tail; + + KTRACE_QUEUE_LOCK(&q->lock, flags); + + if (enable_debug) { + seq_printf(m, "-> queue: tail %d, head %d, max %d\n", + q->tail, q->head, q->max); + } + + tail = q->tail; + while (!QUEUE_EMPTY(q->head, tail)) { + + ret = q->show_entry(m, q->buf + tail * q->entry_size, q->enable_debug); + tail = QUEUE_NEXT(tail, q->max); + + if (ret) + break; + } + + if (!ret) + q->tail = tail; + + if (enable_debug) { + seq_printf(m, " queue: tail %d, head %d, max %d\n", + q->tail, q->head, q->max); + } + + KTRACE_QUEUE_UNLOCK(&q->lock, flags); + + return 0; +} + +void ktrace_tryadd_queue(struct ktrace_queue *q, void *entry) +{ + unsigned long flags; + void *dst; + + if (!KTRACE_QUEUE_TRYLOCK(&q->lock, flags)) + return; + + dst = q->buf + q->head * q->entry_size; + memcpy(dst, entry, q->entry_size); + + if (QUEUE_FULL(q->tail, q->head, q->max)) + q->tail = QUEUE_NEXT(q->tail, q->max); + + q->head = QUEUE_NEXT(q->head, q->max); + + KTRACE_QUEUE_UNLOCK(&q->lock, flags); + +} + +void ktrace_add_queue_multi(struct ktrace_queue *q, void *entry, int num) +{ + unsigned long flags; + void *dst; + int i; + + KTRACE_QUEUE_LOCK(&q->lock, flags); + + for (i = 0; i < num; i++) { + dst = q->buf + q->head * q->entry_size; + memcpy(dst, entry + i * q->entry_size, q->entry_size); + + if (QUEUE_FULL(q->tail, q->head, q->max)) + q->tail = QUEUE_NEXT(q->tail, q->max); + + q->head = QUEUE_NEXT(q->head, q->max); + } + + KTRACE_QUEUE_UNLOCK(&q->lock, flags); +} + +void ktrace_reset_queue(struct ktrace_queue *q) +{ + unsigned long flags; + + KTRACE_QUEUE_LOCK(&q->lock, flags); + + q->head = 0; + q->tail = 0; + + KTRACE_QUEUE_UNLOCK(&q->lock, flags); +} + +void __init ktrace_init_queue(struct ktrace_queue *q, struct dentry *dir, + void *priv, void *buf, int entry_size, int max, int items_per_read, + int(*show_entry)(struct seq_file *, void *, bool)) +{ + spin_lock_init(&q->lock); + + q->priv = priv; + q->buf = buf; + q->entry_size = entry_size; + + q->head = 0; + q->tail = 0; + q->max = max; + q->read_cnt = 0; + q->items_per_read = items_per_read; + q->show_entry = show_entry; + + if (dir) { + debugfs_create_bool("queue_debug", + S_IFREG | S_IRUGO | S_IWUSR, + dir, + &q->enable_debug); + debugfs_create_u32("items_per_read", + S_IFREG | S_IRUGO | S_IWUSR, + dir, + &q->items_per_read); + } + + return; +} diff --git a/drivers/staging/ktrace/ktrace_sched.c b/drivers/staging/ktrace/ktrace_sched.c new file mode 100644 index 0000000000000..0b622c85c5efc --- /dev/null +++ b/drivers/staging/ktrace/ktrace_sched.c @@ -0,0 +1,568 @@ +#define pr_fmt(fmt) "ktrace : " fmt + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define MONITOR_PID_NR 5 +#define INVALID_PID -1 + +#define SCHED_ITEMS_READ_MAX DEFAULT_ITEMS_PER_READ + +#define BLOCK_REASON_NR 30 + +#define USE_THREAD_TO_UPDATE_PIDS 0 + +struct sched_entry { + s64 time_stamp_ns; + unsigned char type; + pid_t pid; + unsigned int time_us; + void *pc; +}; + +struct sched_stats { + atomic_t count; + u64 time; /* us */ +}; + +struct sched_block_reason { + void *pc; + int count; + u64 time; /* us */ +}; + +struct ktrace_sched { + struct ktrace_queue *q; + struct dentry *dir; + + void *buf; + int entry_size; + int max; + + int enable_debug; + + struct task_struct *thread; + + unsigned int filter[KTRACE_SCHED_TYPE_NR]; /* us */ + struct sched_stats stats[KTRACE_SCHED_TYPE_NR]; + struct sched_block_reason block_reason[BLOCK_REASON_NR]; + + /* currently do not consider lock here*/ + pid_t pids[MONITOR_PID_NR]; + int pid_nr; + + pid_t new_pids[MONITOR_PID_NR]; + int new_pid_nr; + bool match_all_pid; +}; + +static struct ktrace_sched __ks = { + .filter = { + [KTRACE_SCHED_TYPE_SAMPLE1] = MS_TO_US(1), + [KTRACE_SCHED_TYPE_SAMPLE2] = MS_TO_US(1), + [KTRACE_SCHED_TYPE_SAMPLE3] = MS_TO_US(1), + [KTRACE_SCHED_TYPE_SAMPLE4] = MS_TO_US(1), + [KTRACE_SCHED_TYPE_SAMPLE5] = MS_TO_US(1), + [KTRACE_SCHED_TYPE_SAMPLE6] = MS_TO_US(1), + [KTRACE_SCHED_TYPE_SAMPLE7] = MS_TO_US(1), + [KTRACE_SCHED_TYPE_SAMPLE8] = MS_TO_US(1), + [KTRACE_SCHED_TYPE_SAMPLE9] = MS_TO_US(1), + [KTRACE_SCHED_TYPE_SAMPLE10] = MS_TO_US(1), + + /* Do not change below values */ + [KTRACE_SCHED_TYPE_PREEMPT] = MS_TO_US(2), + [KTRACE_SCHED_TYPE_WAIT] = MS_TO_US(2), + [KTRACE_SCHED_TYPE_BLOCK] = MS_TO_US(2), + } + +}; + +static const char const *sched_event_name[KTRACE_SCHED_TYPE_NR] = { + "sam_1", + "sam_2", + "sam_3", + "sam_4", + "sam_5", + "sam_6", + "sam_7", + "sam_8", + "sam_9", + "sam_10", + + "p", + "w", + "b", +}; + +#define ktrace_sched_debug(enable, x...) \ + do { \ + if (enable) \ + ktrace_print(x); \ + } while (0) + +static int sched_show_entry(struct seq_file *m, void *entry, bool debug) +{ + struct sched_entry *e = (struct sched_entry *)entry; + int ret; + + if (e->pc) { + if (debug) { + ret = seq_printf(m, "%lld %5d <%s> %d.%03d ms %pS\n", + e->time_stamp_ns, e->pid, + sched_event_name[e->type], + e->time_us / 1000, e->time_us % 1000, + e->pc); + } else { + ret = seq_printf(m, "%lld %5d <%s> %d.%03d ms %ps\n", + e->time_stamp_ns, e->pid, + sched_event_name[e->type], + e->time_us / 1000, e->time_us % 1000, + e->pc); + } + } else { + ret = seq_printf(m, "%lld %5d <%s> %d.%03d ms\n", + e->time_stamp_ns, e->pid, + sched_event_name[e->type], + e->time_us / 1000, e->time_us % 1000); + } + + return ret; +} + +KTRACE_QUEUE_RO_SINGLE(sched); + + +static int sched_stats_show(struct seq_file *m, void *v) +{ + struct ktrace_sched *sched = (struct ktrace_sched *)m->private; + int i; + u64 total_block_time = 0; + int total_block_cnt = 0; + + seq_puts(m, "sched stats:\n"); + for (i = 0; i < KTRACE_SCHED_TYPE_NR; i++) { + seq_printf(m, " %-20s %6d %llu ms\n", sched_event_name[i], + atomic_read(&sched->stats[i].count), + sched->stats[i].time / 1000); + } + + seq_puts(m, "\n"); + + seq_puts(m, "Block reason:\n"); + for (i = 0; i < BLOCK_REASON_NR; i++) { + struct sched_block_reason *reason = &sched->block_reason[i]; + + if (!reason->pc) + break; + + total_block_time += reason->time; + total_block_cnt += reason->count; + seq_printf(m, " %2d. %-40pS => %d, total %lld ms, avg %lld.%lld ms\n", + i + 1, reason->pc, reason->count, + reason->time / 1000, (reason->time / reason->count) / 1000, + (reason->time / reason->count) % 1000); + } + seq_printf(m, " total: %d, %lld ms\n", total_block_cnt, total_block_time / 1000); + + return 0; +} +KTRACE_ENTRY_RO_SINGLE(sched_stats); + +static inline int __match_pid(pid_t *pids, int nr, pid_t new_pid) +{ + int i; + int match = 0; + + for (i = 0; i < nr; i++) { + if (pids[i] == INVALID_PID) + break; + + if (pids[i] == new_pid) { + match = 1; + break; + } + } + + return match; +} + +static inline int sched_match_pid(struct ktrace_sched *sched, pid_t pid) +{ + + if (unlikely(sched->match_all_pid)) + return 1; + + return __match_pid(sched->pids, sched->pid_nr, pid); +} + +static void sched_init_pids(struct ktrace_sched *sched) +{ + int i; + + for (i = 0; i < MONITOR_PID_NR; i++) { + sched->pids[i] = INVALID_PID; + sched->new_pids[i] = INVALID_PID; + } + sched->pid_nr = 0; + sched->new_pid_nr = 0; +} + +static void sched_erase_pids(pid_t *pids, int *nr) +{ + int i; + + for (i = 0; i < *nr; i++) { + pids[i] = INVALID_PID; + } + *nr = 0; + + return; +} + +static void sched_update_pids(struct ktrace_sched *sched) +{ + int i; + int n = 0; + + if (sched->enable_debug) { + char buf[64]; + for (i = 0; i < sched->pid_nr; i++) { + if (sched->pids[i] == INVALID_PID) + break; + n += snprintf(buf + n, sizeof(buf) - n - 1, "%d ", sched->pids[i]); + } + + n += snprintf(buf + n, sizeof(buf) - n - 1, "=> "); + + for (i = 0; i < sched->new_pid_nr; i++) { + if (sched->new_pids[i] == INVALID_PID) + break; + n += snprintf(buf + n, sizeof(buf) - n - 1, "%d ", sched->new_pids[i]); + } + + n += snprintf(buf + n, sizeof(buf) - n - 1, "\n"); + + ktrace_sched_debug(sched->enable_debug, buf); + KTRACE_BEGIN(buf); + KTRACE_END(); + } + + sched_erase_pids(sched->pids, &sched->pid_nr); + + for (i = 0; i < sched->new_pid_nr; i++) { + sched->pids[i] = sched->new_pids[i]; + sched->pid_nr++; + } + + sched_erase_pids(sched->new_pids, &sched->new_pid_nr); + +} + +static int sched_switch_pid(struct ktrace_sched *sched) +{ + /* + * Add action here + * such as: sched_set_fifo_scheduler(sched); + */ + + sched_update_pids(sched); + + return 0; +} + +static int sched_pid_show(struct seq_file *m, void *v) +{ + struct ktrace_sched *sched = m->private; + int i; + + if (sched->match_all_pid) { + seq_puts(m, "match all pids\n"); + return 0; + } + + seq_printf(m, "%d pids registered\n", sched->pid_nr); + + for (i = 0; i < sched->pid_nr; i++) { + if (sched->pids[i] == INVALID_PID) + break; + + seq_printf(m, "%d ", sched->pids[i]); + } + seq_putc(m, '\n'); + + return 0; +} + +static int sched_pid_open(struct inode *inode, struct file *file) +{ + int ret; + + ret = single_open(file, sched_pid_show, inode->i_private); + if (!ret) { + /* + struct seq_file *m = file->private_data; + m->private = inode->i_private; // single_open do not need it + */ + } + return ret; +} + +static ssize_t sched_pid_write(struct file *file, const char __user *user_buf, + size_t size, loff_t *ppos) +{ + struct ktrace_sched *sched = ((struct seq_file *)file->private_data)->private; + char buf[64], *tmp; + + char *pid_str; + pid_t pid; + int ret = 0; + + if (size >= sizeof(buf)) + return -EINVAL; + + if (copy_from_user(&buf, user_buf, size)) + return -EFAULT; + + buf[size] = 0; + tmp = buf; + + if (strncmp(buf, "all", strlen("all")) == 0) { + sched->match_all_pid = 1; + return size; + } else if (strncmp(buf, "notall", strlen("notall")) == 0) { + sched->match_all_pid = 0; + return size; + } + + /* Currently do not add lock here, consider later */ + while ((pid_str = strsep(&tmp, ","))) { + ret = kstrtoint(pid_str, 10, &pid); + if (ret < 0) + break; + + if (sched->new_pid_nr >= MONITOR_PID_NR - 1) { + ret = -EINVAL; + break; + } + + sched->new_pids[sched->new_pid_nr++] = pid; + } + + if (!ret) { + if (USE_THREAD_TO_UPDATE_PIDS) + wake_up_process(sched->thread); + else + sched_update_pids(sched); + } else { + sched_erase_pids(sched->new_pids, &sched->new_pid_nr); + } + return ret ? ret : size; +} + +static const struct file_operations sched_pid_fops = { + .owner = THIS_MODULE, + .open = sched_pid_open, + .read = seq_read, + .write = sched_pid_write, + .llseek = seq_lseek, + .release = seq_release, +}; + +static int sched_reset_write(void *data, u64 val) +{ + struct ktrace_queue *q = data; + struct ktrace_sched *sched = q->priv; + int clean = val; + int i; + + if (clean) { + ktrace_reset_queue(q); + + for (i = 0; i < KTRACE_SCHED_TYPE_NR; i++) { + atomic_set(&sched->stats[i].count, 0); + sched->stats[i].time = 0; + } + + for (i = 0; i < BLOCK_REASON_NR; i++) { + struct sched_block_reason *reason = &sched->block_reason[i]; + + reason->count = 0; + reason->pc = NULL; + reason->time = 0; + } + } + + return 0; +} +DEFINE_SIMPLE_ATTRIBUTE(sched_reset, NULL, sched_reset_write, "%llu\n"); + +static inline void sched_add_block_reason(struct ktrace_sched *sched, void *pc, + unsigned int time) +{ + int i; + + for (i = 0; i < BLOCK_REASON_NR; i++) { + struct sched_block_reason *reason = &sched->block_reason[i]; + if (reason->pc == NULL || reason->pc == pc) { + if (reason->pc == NULL) + reason->pc = pc; + reason->count++; + reason->time += time; + break; + } + } +} + +void ktrace_add_sched_event(unsigned char type, pid_t pid, u64 time_stamp, u64 delta, void *pc) +{ + struct ktrace_sched *sched = &__ks; + struct ktrace_queue *q = sched->q; + struct sched_entry e; + u64 delta_us = delta >> 10; /* ns => us */ + + if (unlikely(!sched->buf)) + return; + + if (pid == 0) + return; + + if (likely(delta_us < sched->filter[type])) + return; + + if (!sched_match_pid(sched, pid)) + return; + + e.time_stamp_ns = time_stamp; + e.type = type; + e.pid = pid; + e.time_us = (unsigned int)delta_us; + e.pc = pc; + + atomic_inc(&sched->stats[type].count); + sched->stats[type].time += delta_us; + + if (type == KTRACE_SCHED_TYPE_BLOCK) + sched_add_block_reason(sched, pc, delta_us); + + ktrace_tryadd_queue(q, &e); +} + +int ktrace_sched_match_pid(pid_t pid) +{ + struct ktrace_sched *sched = &__ks; + + return sched_match_pid(sched, pid); +} + +static int ktrace_sched_thread(void *d) +{ + struct ktrace_sched *sched = (struct ktrace_sched *)d; + struct sched_param param = { + .sched_priority = 1 + }; + + sched_setscheduler(current, SCHED_FIFO, ¶m); + + while (!kthread_should_stop()) { + int ret; + + set_current_state(TASK_INTERRUPTIBLE); + + if (sched->new_pid_nr == 0) + schedule(); + + set_current_state(TASK_RUNNING); + + ret = sched_switch_pid(sched); + } + + return 0; +} + +int __init ktrace_sched_init(struct dentry *dir, struct ktrace_queue *q) +{ + struct ktrace_sched *sched = &__ks; + void *buf; + int i; + + BUILD_BUG_ON(sizeof(sched_event_name) / sizeof(sched_event_name[0]) + != KTRACE_SCHED_TYPE_NR); + + memset(sched, sizeof(struct ktrace_sched), 0); + + if (USE_THREAD_TO_UPDATE_PIDS) { + sched->thread = kthread_run(ktrace_sched_thread, sched, "ktrace-sched"); + if (IS_ERR(sched->thread)) { + return PTR_ERR(sched->thread); + } + } + + buf = (void *)__get_free_pages(GFP_KERNEL | __GFP_ZERO, 1); + if (!buf) + return -ENOMEM; + sched->q = q; + + sched->entry_size = sizeof(struct sched_entry); + sched->max = (PAGE_SIZE << 1) / sched->entry_size; + + sched_init_pids(sched); + + sched->dir = debugfs_create_dir("sched", dir); + + ktrace_init_queue(q, sched->dir, sched, buf, sched->entry_size, sched->max, + SCHED_ITEMS_READ_MAX, + sched_show_entry); + + if (sched->dir) { + debugfs_create_file("trace", + S_IFREG | S_IRUGO, + sched->dir, + q, + &sched_fops); + + debugfs_create_file("stats", + S_IFREG | S_IRUGO, + sched->dir, + sched, + &sched_stats_fops); + + for (i = 0; i < KTRACE_SCHED_TYPE_NR; i++) { + char name[32]; + snprintf(name, sizeof(name) - 1, "filter_%s", sched_event_name[i]); + + debugfs_create_u32(name, + S_IFREG | S_IRUGO | S_IWUSR, + sched->dir, + &sched->filter[i]); + } + + debugfs_create_file("pids", S_IRUGO | S_IWUSR, sched->dir, sched, + &sched_pid_fops); + + debugfs_create_bool("sched_debug", + S_IFREG | S_IRUGO | S_IWUSR, + sched->dir, + &sched->enable_debug); + + debugfs_create_file("reset", S_IWUSR, sched->dir, q, + &sched_reset); + } + + smp_mb(); + sched->buf = buf; + + pr_info("sched ktrace init OK\n"); + + return 0; +} diff --git a/drivers/staging/rtmm/Kconfig b/drivers/staging/rtmm/Kconfig new file mode 100644 index 0000000000000..6a66cfd4a2438 --- /dev/null +++ b/drivers/staging/rtmm/Kconfig @@ -0,0 +1,5 @@ +config RTMM + bool "enable runtime mem optimization" + select DEBUG_FS + help + Thie module is created by MIUI to optimize mem performance. diff --git a/drivers/staging/rtmm/Makefile b/drivers/staging/rtmm/Makefile new file mode 100644 index 0000000000000..604ee02d3dfde --- /dev/null +++ b/drivers/staging/rtmm/Makefile @@ -0,0 +1 @@ +obj-$(CONFIG_RTMM) += rtmm_main.o rtmm_pool.o rtmm_reclaim.o diff --git a/drivers/staging/rtmm/rtmm_main.c b/drivers/staging/rtmm/rtmm_main.c new file mode 100644 index 0000000000000..2d076e770d4fb --- /dev/null +++ b/drivers/staging/rtmm/rtmm_main.c @@ -0,0 +1,37 @@ + +#define pr_fmt(fmt) "rtmm : " fmt + +#include +#include +#include +#include +#include +#include + +static int __init rtmm_init(void) +{ + struct dentry *dir; + + if (!debugfs_initialized()) { + pr_warn("debugfs not available, stat dir not created\n"); + return -ENOENT; + } + dir = debugfs_create_dir("rtmm", NULL); + if (!dir) { + pr_err("debugfs 'rtmm' stat dir creation failed\n"); + return -ENOMEM ; + } + + rtmm_pool_init(dir); + + rtmm_reclaim_init(dir); + + pr_info("rtmm init OK\n"); + + return 0; +} + +fs_initcall(rtmm_init); + +MODULE_LICENSE("Dual BSD/GPL"); +MODULE_AUTHOR("Cai Liu "); diff --git a/drivers/staging/rtmm/rtmm_pool.c b/drivers/staging/rtmm/rtmm_pool.c new file mode 100644 index 0000000000000..84348fbae82ad --- /dev/null +++ b/drivers/staging/rtmm/rtmm_pool.c @@ -0,0 +1,402 @@ + +#define pr_fmt(fmt) "rtmm : " fmt + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#define MP_NAME_LEN 12 + +enum { + NR_THREAD_ALLOC_FROM_BUDDY = 0, + NR_ALLOC_FROM_POOL, + NR_ALLOC_FROM_BUDDY, + + NR_FREE_TO_POOL, + NR_FREE_TO_BUDDY, + + NR_THREAD_ALLOC_FAIL, + + NR_WAKEUP_FROM_ALLOC, + NR_WAKEUP_FROM_FREE, + NR_WAKEUP_FROM_SET_MAXNR, + + NR_STAT +}; + +static const char *stat_str[NR_STAT] = { + [NR_THREAD_ALLOC_FROM_BUDDY] = "thread alloc", + [NR_ALLOC_FROM_POOL] = "alloc from pool", + [NR_ALLOC_FROM_BUDDY] = "alloc from buddy", + + [NR_FREE_TO_POOL] = "free to pool", + [NR_FREE_TO_BUDDY] = "free to buddy", + + [NR_THREAD_ALLOC_FAIL] = "thread alloc fail", + + [NR_WAKEUP_FROM_ALLOC] = "wakeup from alloc", + [NR_WAKEUP_FROM_FREE] = "wakeup from free", + [NR_WAKEUP_FROM_SET_MAXNR] = "wakeup from set maxnr", +}; + +struct mpool { + atomic_t init; + gfp_t gfp_mask; + int order; + + atomic_t cur_nr; /* do not need atomic here */ + atomic_t max_nr; + atomic_t low_wm_nr; + + atomic_t stat[NR_STAT]; + + struct list_head list; + spinlock_t lock; + + int pool_type; + struct dentry *dir; + struct rtmm_pool *pool; + + struct page *(*__alloc_pages)(void); + void (*__free_pages)(void *addr); +}; + +struct rtmm_pool { + struct dentry *dir; + + struct mpool mp[RTMM_POOL_NR]; + + struct task_struct *tsk; + wait_queue_head_t waitqueue; +}; + +static struct page *mp_alloc_pages_ti(void); +static void mp_free_pages_ti(void *addr); + +static struct rtmm_pool __pool = { + .mp = { + [RTMM_POOL_THREADINFO] = { + .init = ATOMIC_INIT(0), + .max_nr = ATOMIC_INIT(40), + .__alloc_pages = mp_alloc_pages_ti, + .__free_pages = mp_free_pages_ti, + } + } +}; + +static inline struct rtmm_pool *get_pool(void) +{ + return &__pool; +} + +static inline bool __mp_is_not_full(struct mpool *mp) +{ + return (atomic_read(&mp->cur_nr) < atomic_read(&mp->max_nr)); +} + +static inline bool __mp_is_not_empty(struct mpool *mp) +{ + return (atomic_read(&mp->cur_nr) > 0); +} + +static inline bool __mp_is_below_wm(struct mpool *mp) +{ + return (atomic_read(&mp->cur_nr) < atomic_read(&mp->low_wm_nr)); +} + +static inline bool __pool_thread_running(struct task_struct *tsk) +{ + return (tsk && (tsk->state == TASK_RUNNING)); +} + +static inline void __mp_wakeup(struct mpool *mp, int type) +{ + wake_up(&mp->pool->waitqueue); + + atomic_inc(&mp->stat[type]); +} + +static struct page *mp_alloc_pages(struct mpool *mp) +{ + struct page *page = NULL; + + if (__mp_is_not_empty(mp)) { + spin_lock(&mp->lock); + if (!list_empty(&mp->list)) { + page = list_first_entry(&mp->list, struct page , lru); + list_del(&page->lru); + } + spin_unlock(&mp->lock); + } + + if (page) { + atomic_dec(&mp->cur_nr); + atomic_inc(&mp->stat[NR_ALLOC_FROM_POOL]); + } + + if (__mp_is_below_wm(mp) && !__pool_thread_running(mp->pool->tsk)) + __mp_wakeup(mp, NR_WAKEUP_FROM_ALLOC); + + return page; +} + +static void mp_free_pages(struct mpool *mp, void *addr) +{ + struct page *page = virt_to_page(addr); + + spin_lock(&mp->lock); + list_add(&page->lru, &mp->list); + spin_unlock(&mp->lock); + + atomic_inc(&mp->cur_nr); + atomic_inc(&mp->stat[NR_FREE_TO_POOL]); + + if (__mp_is_below_wm(mp) && !__pool_thread_running(mp->pool->tsk)) + __mp_wakeup(mp, NR_WAKEUP_FROM_FREE); +} + +static struct page *mp_alloc_pages_ti(void) +{ + return alloc_kmem_pages_node(NUMA_NO_NODE, THREADINFO_GFP, + THREAD_SIZE_ORDER); +} + +static void mp_free_pages_ti(void *addr) +{ + /* free to buddy system */ + kasan_alloc_pages(virt_to_page(addr), THREAD_SIZE_ORDER); + free_kmem_pages((unsigned long)addr, THREAD_SIZE_ORDER); +} + + +static int __pool_is_not_full(struct rtmm_pool *pool) +{ + int i; + int not_full = 0; + + for (i = 0; i < RTMM_POOL_NR; i++) { + if (__mp_is_not_full(&pool->mp[i])) { + not_full = 1; + break; + } + } + + return not_full; +} + +struct page *rtmm_alloc_pages(int pool_type) +{ + struct rtmm_pool *pool = get_pool(); + struct mpool *mp = &pool->mp[pool_type]; + struct page *page = NULL; + + if (1 || ktrace_sched_match_pid(current->pid)) + page = mp_alloc_pages(mp); + + if (!page) { + page = mp->__alloc_pages(); + + atomic_inc(&mp->stat[NR_ALLOC_FROM_BUDDY]); + } + + return page; +} + +void rtmm_free_pages(void *addr, int pool_type) +{ + struct rtmm_pool *pool = get_pool(); + struct mpool *mp = &pool->mp[pool_type]; + + if (atomic_read(&mp->init) && __mp_is_not_full(mp)) { + mp_free_pages(mp, addr); + } else { + mp->__free_pages(addr); + atomic_inc(&mp->stat[NR_FREE_TO_BUDDY]); + } +} + +static int mp_thread(void *data) +{ + struct rtmm_pool *pool = data; + struct sched_param param = { .sched_priority = 0 }; + + sched_setscheduler(pool->tsk, SCHED_NORMAL, ¶m); + + while (true) { + int i; + + wait_event_freezable(pool->waitqueue, __pool_is_not_full(pool)); + + for (i = 0; i < RTMM_POOL_NR; i++) { + struct mpool *mp = &pool->mp[i]; + + while (__mp_is_not_full(mp)) { + struct page *page = mp->__alloc_pages(); + + if (!page) { + atomic_inc(&mp->stat[NR_THREAD_ALLOC_FAIL]); + continue; + } + + spin_lock(&mp->lock); + list_add_tail(&page->lru, &mp->list); + spin_unlock(&mp->lock); + + atomic_inc(&mp->cur_nr); + atomic_inc(&mp->stat[NR_THREAD_ALLOC_FROM_BUDDY]); + } + } + } + + return 0; +} + +static int mp_maxnr_read(void *data, u64 *val) +{ + struct mpool *mp = (struct mpool *)data; + + *val = atomic_read(&mp->max_nr); + + return 0; +} + +static int mp_maxnr_write(void *data, u64 val) +{ + struct mpool *mp = (struct mpool *)data; + + int old_nr = atomic_read(&mp->max_nr); + int new_nr = (unsigned int)val; + + atomic_set(&mp->max_nr, val); + + if (old_nr < new_nr) + __mp_wakeup(mp, NR_WAKEUP_FROM_SET_MAXNR); + + return 0; +} +DEFINE_SIMPLE_ATTRIBUTE(pool_max_nr, mp_maxnr_read, + mp_maxnr_write, "%llu\n"); + +static int mp_stats_show(struct seq_file *s, void *v) +{ + struct mpool *mp = s->private; + int i; + + seq_puts(s, "\n"); + + seq_printf(s, "max %d, low_wm %d, cur %d\n", + atomic_read(&mp->max_nr), + atomic_read(&mp->low_wm_nr), + atomic_read(&mp->cur_nr)); + + seq_puts(s, "----\n"); + + for (i = 0; i < NR_STAT; i++) { + seq_printf(s, " %-25s: %d\n", + stat_str[i], + atomic_read(&mp->stat[i])); + } + + seq_puts(s, "----\n"); + seq_printf(s, " pool hit rate %d%%\n", + 100 * atomic_read(&mp->stat[NR_ALLOC_FROM_POOL]) / + (atomic_read(&mp->stat[NR_ALLOC_FROM_POOL]) + + atomic_read(&mp->stat[NR_ALLOC_FROM_BUDDY]))); + + return 0; +} + +static int mp_stats_open(struct inode *inode, struct file *file) +{ + return single_open(file, mp_stats_show, inode->i_private); +} + +static const struct file_operations mp_stat_ops = { + .open = mp_stats_open, + .read = seq_read, + .llseek = seq_lseek, + .release = single_release, +}; + +static void __init mp_init(struct rtmm_pool *pool) +{ + int i; + + for (i = 0; i < RTMM_POOL_NR; i++) { + struct mpool *mp = &pool->mp[i]; + int j; + + mp->pool = pool; + mp->pool_type = i; + + spin_lock_init(&mp->lock); + INIT_LIST_HEAD(&mp->list); + atomic_set(&mp->cur_nr, 0); + atomic_set(&mp->low_wm_nr, atomic_read(&mp->max_nr) * 3 / 4); + + for (j = 0; j < NR_STAT; j++) + atomic_set(&mp->stat[j], 0); + + if (pool->dir) { + char mp_dir_name[MP_NAME_LEN]; + + snprintf(mp_dir_name , MP_NAME_LEN - 1, "pool-%d", mp->pool_type); + mp->dir = debugfs_create_dir(mp_dir_name, pool->dir); + + if (mp->dir) { + debugfs_create_file("pool_max_nr", S_IRUGO | S_IWUSR, mp->dir, mp, + &pool_max_nr); + + debugfs_create_file("stat", S_IFREG | S_IRUGO, + mp->dir, mp, &mp_stat_ops); + } + } + + atomic_set(&mp->init, 1); + } + +} + +int __init rtmm_pool_init(struct dentry *dir) +{ + struct rtmm_pool *pool = get_pool(); + + memset(pool, sizeof(struct rtmm_pool), 0); + + pool->dir = debugfs_create_dir("pool", dir); + if (!pool->dir) { + pr_err("fail to create debugfs dir\n"); + } + + init_waitqueue_head(&pool->waitqueue); + + mp_init(pool); + pool->tsk = kthread_run(mp_thread, pool, "rtmm_pool"); + if (IS_ERR(pool->tsk)) { + pr_err("%s: creating thread for rtmm pool failed\n", + __func__); + return PTR_ERR_OR_ZERO(pool->tsk); + } + + smp_mb(); + + pr_info("rtmm mp init OK\n"); + + return 0; +} + diff --git a/drivers/staging/rtmm/rtmm_reclaim.c b/drivers/staging/rtmm/rtmm_reclaim.c new file mode 100644 index 0000000000000..fcbc05769156f --- /dev/null +++ b/drivers/staging/rtmm/rtmm_reclaim.c @@ -0,0 +1,609 @@ + +#define pr_fmt(fmt) "rtmm : " fmt + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include +#include + +#define MB_TO_PAGES(m) (((m) << 20) >> PAGE_SHIFT) +#define PAGES_TO_MB(p) (((p) << PAGE_SHIFT) >> 20) + +#define GLOBAL_RECLAIM_MAX_SIZE 200 /* MB */ + +enum reclaim_type { + RECLAIM_NONE = 0, + RECLAIM_KILL, + RECLAIM_PROC, + RECLAIM_GLOBAL, /* global lru*/ +}; + +enum page_type { + RECLAIM_PAGE_NONE = 0, + RECLAIM_PAGE_FILE, + RECLAIM_PAGE_ANON, + RECLAIM_PAGE_ALL, /* anon/file pages */ +}; + +#define CMD_STR_LEN 64 + +struct reclaim_cmd { + /* proc reclaim; global reclaim ; kill */ + int type; + + /* proc reclaim ; kill*/ + pid_t pid; + + int page_type; /* anon/file */ + + /* global reclaim */ + int order; + + int nr_to_reclaim; + + struct list_head list; +}; + +struct rtmm_reclaim { + struct dentry *dir; + + struct task_struct *tsk; + wait_queue_head_t waitqueue; + + spinlock_t lock; + struct list_head cmd_todo; + atomic_t cmd_nr; +}; + +struct rtmm_reclaim __reclaim; + +static inline struct rtmm_reclaim *get_reclaim(void) +{ + return &__reclaim; +} + +/* + * kill a process + */ +static int mem_process_kill(pid_t pid) +{ + struct task_struct *task; + struct signal_struct *sig; + struct mm_struct *mm; + int oom_score_adj; + unsigned long rss = 0; + int ret = 0; + + rcu_read_lock(); + task = find_task_by_vpid(pid); + if (!task) { + ret = -ESRCH; + goto out; + } + mm = task->mm; + sig = task->signal; + if (!mm || !sig) { + ret = -ESRCH; + goto out; + } + + oom_score_adj = sig->oom_score_adj; + if (oom_score_adj < 0) { + pr_warn("KILL: odj %d, exit\n", oom_score_adj); + ret = -EPERM; + goto out; + } + + rss = get_mm_rss(mm); + + pr_info("kill process %d(%s)\n", pid, task->comm); + send_sig(SIGKILL, task, 0); +out: + rcu_read_unlock(); + + return rss; +} + +static struct task_struct *find_get_task_by_pid(pid_t pid) +{ + struct task_struct *p; + + rcu_read_lock(); + p = find_task_by_vpid(pid); + if (p) + get_task_struct(p); + + rcu_read_unlock(); + + return p; +} + +/* + * reclaim anon/file pages of a process + */ +static int mem_process_reclaim(pid_t pid, int type, int nr_to_reclaim) +{ + struct task_struct *task; + struct mm_struct *mm; + struct vm_area_struct *vma; + struct mm_walk reclaim_walk = {}; + struct reclaim_param rp; + int ret = 0; + + task = find_get_task_by_pid(pid); + if (!task) + return -ESRCH; + + mm = get_task_mm(task); + if (!mm) { + ret = -EINVAL; + goto out; + } + + reclaim_walk.mm = mm; + reclaim_walk.pmd_entry = reclaim_pte_range; + + rp.nr_scanned = 0; + rp.nr_to_reclaim = nr_to_reclaim; + rp.nr_reclaimed = 0; + reclaim_walk.private = &rp; + + down_read(&mm->mmap_sem); + + for (vma = mm->mmap; vma; vma = vma->vm_next) { + if (is_vm_hugetlb_page(vma)) + continue; + + if (type == RECLAIM_PAGE_ANON && vma->vm_file) + continue; + + if (type == RECLAIM_PAGE_FILE && !vma->vm_file) + continue; + + rp.vma = vma; + ret = walk_page_range(vma->vm_start, vma->vm_end, + &reclaim_walk); + if (ret) + break; + } + + flush_tlb_mm(mm); + up_read(&mm->mmap_sem); + mmput(mm); + +out: + put_task_struct(task); + + /* -EPIPE is returned in reclaim_pte_range() to break the iteration, + * it is a valid value, so we set the ret as 0 here. + */ + if (ret == -EPIPE) + ret = 0; + + pr_info("process reclaim: pid %d, page_type %d, try to reclaim %d, reclaimed %d(scan %d)\n", + pid, type, nr_to_reclaim, rp.nr_reclaimed, rp.nr_scanned); + + return ret; +} + +static int mem_global_reclaim(unsigned long nr_to_reclaim) +{ +#define RECLAIM_PAGES_PER_LOOP MB_TO_PAGES(1) + + unsigned long nr_reclaimed = 0; + int loop = nr_to_reclaim / RECLAIM_PAGES_PER_LOOP; + int remain = nr_to_reclaim % RECLAIM_PAGES_PER_LOOP; + + /* Currently we only consider loops instead of nr_to_reclaim */ + while (loop--) { + nr_reclaimed += reclaim_global(RECLAIM_PAGES_PER_LOOP); + + if (nr_reclaimed >= nr_to_reclaim) + break; + } + if (remain && (nr_reclaimed < nr_to_reclaim)) + nr_reclaimed += reclaim_global(remain); + + pr_info("global reclaim: try to reclaim %ld, reclaimed %ld\n", + nr_to_reclaim, nr_reclaimed); + + return nr_reclaimed; +} + + +static struct reclaim_cmd *__alloc_reclaim_cmd(void) +{ + struct reclaim_cmd *cmd; + + cmd = kzalloc(sizeof(struct reclaim_cmd), GFP_KERNEL); + if (!cmd) { + pr_err("fail to get an empty slot\n"); + return NULL; + } + cmd->type = RECLAIM_NONE; + INIT_LIST_HEAD(&cmd->list); + + return cmd; +} + +static void __release_reclaim_cmd(struct reclaim_cmd *cmd) +{ + kfree(cmd); +} + +static void __enqueue_reclaim_cmd(struct rtmm_reclaim *reclaim, struct reclaim_cmd *cmd) +{ + spin_lock(&reclaim->lock); + list_add_tail(&cmd->list, &reclaim->cmd_todo); + spin_unlock(&reclaim->lock); + + atomic_inc(&reclaim->cmd_nr); + + wake_up(&reclaim->waitqueue); + + return; +} + +static struct reclaim_cmd *__dequeue_reclaim_cmd(struct rtmm_reclaim *reclaim) +{ + struct reclaim_cmd *cmd = NULL; + + spin_lock(&reclaim->lock); + if (!list_empty(&reclaim->cmd_todo)) { + cmd = list_first_entry(&reclaim->cmd_todo, struct reclaim_cmd, + list); + list_del(&cmd->list); + } + spin_unlock(&reclaim->lock); + + atomic_dec(&reclaim->cmd_nr); + + return cmd; +} + + +static int mem_reclaim_thread(void *data) +{ + struct rtmm_reclaim *reclaim = data; + struct sched_param param = { .sched_priority = 0 }; + + sched_setscheduler(reclaim->tsk, SCHED_NORMAL, ¶m); + + while (true) { + struct reclaim_cmd *cmd; + + wait_event_freezable(reclaim->waitqueue, (atomic_read(&reclaim->cmd_nr) > 0)); + + while (atomic_read(&reclaim->cmd_nr) > 0) { + cmd = __dequeue_reclaim_cmd(reclaim); + if (!cmd) + break; + + switch (cmd->type) { + case RECLAIM_KILL: + mem_process_kill(cmd->pid); + break; + + case RECLAIM_PROC: + mem_process_reclaim(cmd->pid, cmd->page_type, cmd->nr_to_reclaim); + break; + + case RECLAIM_GLOBAL: + mem_global_reclaim(cmd->nr_to_reclaim); + break; + + default: + pr_err("unknow type %d", cmd->type); + break; + } + + __release_reclaim_cmd(cmd); + } + } + + return 0; +} + +static int sys_kill_process(void *data, u64 val) +{ + struct rtmm_reclaim *reclaim = (struct rtmm_reclaim *)data; + struct reclaim_cmd *cmd; + pid_t pid = (pid_t)val; + + cmd = __alloc_reclaim_cmd(); + if (!cmd) { + pr_err("fail to get an empty slot in kill reclaim\n"); + return -ENOMEM; + } + cmd->type = RECLAIM_KILL; + cmd->pid = pid; + + __enqueue_reclaim_cmd(reclaim, cmd); + + return 0; +} +DEFINE_SIMPLE_ATTRIBUTE(kill_ops, NULL, sys_kill_process, "%llu\n"); + +static int sys_proc_reclaim_show(struct seq_file *m, void *v) +{ + return 0; +} + + +static int sys_proc_reclaim_open(struct inode *inode, struct file *file) +{ + int ret; + + ret = single_open(file, sys_proc_reclaim_show, inode->i_private); + if (!ret) { + } + return ret; +} + +static ssize_t sys_proc_reclaim_write(struct file *file, const char __user *user_buf, + size_t size, loff_t *ppos) +{ + struct rtmm_reclaim *reclaim = ((struct seq_file *)file->private_data)->private; + char buf[CMD_STR_LEN]; + int ret; + pid_t pid; + int page_type; + int size_MB; + struct reclaim_cmd *cmd; + + if (size >= sizeof(buf)) + return -EINVAL; + + if (copy_from_user(&buf, user_buf, size)) + return -EFAULT; + + buf[size] = 0; + + ret = sscanf(buf, "%d %d %d", &pid, &page_type, &size_MB); + + if (ret != 3) { + pr_err("param err in proc reclaim cmd(%s)\n", buf); + return -EINVAL; + } + + cmd = __alloc_reclaim_cmd(); + if (!cmd) { + pr_err("fail to get an empty slot in proc reclaim\n"); + return -ENOMEM; + } + cmd->type = RECLAIM_PROC; + cmd->pid = pid; + cmd->page_type = page_type; + cmd->nr_to_reclaim = MB_TO_PAGES(size_MB); + + __enqueue_reclaim_cmd(reclaim, cmd); + + return size; +} + +static const struct file_operations proc_reclaim_fops = { + .owner = THIS_MODULE, + .open = sys_proc_reclaim_open, + .read = seq_read, + .write = sys_proc_reclaim_write, + .llseek = seq_lseek, + .release = seq_release, +}; + +static int sys_global_reclaim_show(struct seq_file *m, void *v) +{ + return 0; +} + +static int sys_global_reclaim_open(struct inode *inode, struct file *file) +{ + int ret; + + ret = single_open(file, sys_global_reclaim_show, inode->i_private); + if (!ret) { + } + return ret; +} + +static ssize_t sys_global_reclaim_write(struct file *file, const char __user *user_buf, + size_t size, loff_t *ppos) +{ + struct rtmm_reclaim *reclaim = ((struct seq_file *)file->private_data)->private; + char buf[CMD_STR_LEN]; + int ret; + int size_MB; + struct reclaim_cmd *cmd; + + if (size >= sizeof(buf)) + return -EINVAL; + + if (copy_from_user(&buf, user_buf, size)) + return -EFAULT; + + buf[size] = 0; + + ret = sscanf(buf, "%d", &size_MB); + + if (ret != 1) { + pr_err("param err in global reclaim cmd(%s)\n", buf); + return -EINVAL; + } + + if (size_MB > GLOBAL_RECLAIM_MAX_SIZE) { + pr_err("global reclaim: size %d MB to big, return\n", size_MB); + return -EINVAL; + } + + cmd = __alloc_reclaim_cmd(); + if (!cmd) { + pr_err("fail to get an empty slot in global reclaim\n"); + return -ENOMEM; + } + cmd->type = RECLAIM_GLOBAL; + cmd->nr_to_reclaim = MB_TO_PAGES(size_MB); + + __enqueue_reclaim_cmd(reclaim, cmd); + + return size; +} + +static const struct file_operations global_reclaim_fops = { + .owner = THIS_MODULE, + .open = sys_global_reclaim_open, + .read = seq_read, + .write = sys_global_reclaim_write, + .llseek = seq_lseek, + .release = seq_release, +}; + + +static int sys_auto_reclaim_show(struct seq_file *m, void *v) +{ + return 0; +} + +static int sys_auto_reclaim_open(struct inode *inode, struct file *file) +{ + int ret; + + ret = single_open(file, sys_auto_reclaim_show, inode->i_private); + if (!ret) { + } + return ret; +} + +static ssize_t sys_auto_reclaim_write(struct file *file, const char __user *user_buf, + size_t size, loff_t *ppos) +{ + struct rtmm_reclaim *reclaim = ((struct seq_file *)file->private_data)->private; + char buf[CMD_STR_LEN]; + int ret; + struct reclaim_cmd *cmd; + int target_free_size; + int cur_free = global_page_state(NR_FREE_PAGES); + int cur_free_size = PAGES_TO_MB(cur_free); + int reclaim_size; + + if (size >= sizeof(buf)) + return -EINVAL; + + if (copy_from_user(&buf, user_buf, size)) + return -EFAULT; + + buf[size] = 0; + + ret = sscanf(buf, "%d", &target_free_size); + + if (ret != 1) { + pr_err("param err in auto reclaim cmd(%s)\n", buf); + return -EINVAL; + } + + if (target_free_size > GLOBAL_RECLAIM_MAX_SIZE) { + pr_err("auto reclaim: size %d MB to big, return\n", target_free_size); + return -EINVAL; + } + + reclaim_size = target_free_size - cur_free_size; + if (reclaim_size <= 0) + return size; + + cmd = __alloc_reclaim_cmd(); + if (!cmd) { + pr_err("fail to get an empty slot in auto reclaim\n"); + return -ENOMEM; + } + cmd->type = RECLAIM_GLOBAL; + cmd->nr_to_reclaim = MB_TO_PAGES(reclaim_size); + + __enqueue_reclaim_cmd(reclaim, cmd); + + return size; +} + +static const struct file_operations auto_reclaim_fops = { + .owner = THIS_MODULE, + .open = sys_auto_reclaim_open, + .read = seq_read, + .write = sys_auto_reclaim_write, + .llseek = seq_lseek, + .release = seq_release, +}; + +static void __init reclaim_init(struct rtmm_reclaim *reclaim) +{ + spin_lock_init(&reclaim->lock); + init_waitqueue_head(&reclaim->waitqueue); + + atomic_set(&reclaim->cmd_nr, 0); + INIT_LIST_HEAD(&reclaim->cmd_todo); + + if (reclaim->dir) { + debugfs_create_file("kill", + S_IFREG | S_IRUGO | S_IWUSR, + reclaim->dir, + reclaim, + &kill_ops); + + debugfs_create_file("proc_reclaim", + S_IFREG | S_IRUGO | S_IWUSR, + reclaim->dir, + reclaim, + &proc_reclaim_fops); + + debugfs_create_file("global_reclaim", + S_IFREG | S_IRUGO | S_IWUSR, + reclaim->dir, + reclaim, + &global_reclaim_fops); + + debugfs_create_file("auto_reclaim", + S_IFREG | S_IRUGO | S_IWUSR, + reclaim->dir, + reclaim, + &auto_reclaim_fops); + } +} + +int __init rtmm_reclaim_init(struct dentry *dir) +{ + struct rtmm_reclaim *reclaim = get_reclaim(); + + memset(reclaim, 0, sizeof(struct rtmm_reclaim)); + + reclaim->dir = debugfs_create_dir("reclaim", dir); + if (!reclaim->dir) { + pr_err("fail to create debugfs dir\n"); + } + + reclaim_init(reclaim); + + reclaim->tsk = kthread_run(mem_reclaim_thread, reclaim, "rtmm_reclaim"); + if (IS_ERR(reclaim->tsk)) { + pr_err("%s: creating thread for rtmm reclaim failed\n", + __func__); + return PTR_ERR_OR_ZERO(reclaim->tsk); + } + + pr_info("rtmm reclaim init OK\n"); + + return 0; +} diff --git a/drivers/usb/dwc3/dwc3-msm.c b/drivers/usb/dwc3/dwc3-msm.c index dd03cefddf814..bd30104d3b0e9 100644 --- a/drivers/usb/dwc3/dwc3-msm.c +++ b/drivers/usb/dwc3/dwc3-msm.c @@ -1,4 +1,5 @@ /* Copyright (c) 2012-2016, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -45,6 +46,8 @@ #include #include +#include + #include "power.h" #include "core.h" #include "gadget.h" @@ -52,8 +55,13 @@ #include "debug.h" #include "xhci.h" +#if defined(CONFIG_D1_ROSY) +#define DWC3_IDEV_CHG_MAX 2000 +#else #define DWC3_IDEV_CHG_MAX 1500 +#endif #define DWC3_HVDCP_CHG_MAX 1800 +#define DWC3_PROPRIETARY_CHG_MAX 1000 /* AHB2PHY register offsets */ #define PERIPH_SS_AHB2PHY_TOP_CFG 0x10 @@ -188,6 +196,7 @@ struct dwc3_msm { struct regulator *dwc3_gdsc; struct usb_phy *hs_phy, *ss_phy; + struct qpnp_vadc_chip *vadc_dev; struct dbm *dbm; @@ -243,6 +252,8 @@ struct dwc3_msm { atomic_t in_p3; unsigned int lpm_to_suspend_delay; bool init; + + int wt_check_times; }; #define USB_HSPHY_3P3_VOL_MIN 3050000 /* uV */ @@ -2387,6 +2398,28 @@ static irqreturn_t msm_dwc3_pwr_irq(int irq, void *data) return IRQ_HANDLED; } + +static int dwc3_msm_prop_usbin_voltage_now(struct dwc3_msm *mdwc) +{ + int rc = 0; + struct qpnp_vadc_result results; + + if (IS_ERR_OR_NULL(mdwc->vadc_dev)) { + mdwc->vadc_dev = qpnp_get_vadc(mdwc->dev, "usbin"); + if (IS_ERR(mdwc->vadc_dev)) + return PTR_ERR(mdwc->vadc_dev); + } + + rc = qpnp_vadc_read(mdwc->vadc_dev, USBIN, &results); + if (rc) { + pr_err("Unable to read usbin rc=%d\n", rc); + return 0; + } else { + return results.physical; + } +} + + static int dwc3_msm_power_get_property_usb(struct power_supply *psy, enum power_supply_property psp, union power_supply_propval *val) @@ -2415,6 +2448,9 @@ static int dwc3_msm_power_get_property_usb(struct power_supply *psy, case POWER_SUPPLY_PROP_HEALTH: val->intval = mdwc->health_status; break; + case POWER_SUPPLY_PROP_VOLTAGE_NOW: + val->intval = dwc3_msm_prop_usbin_voltage_now(mdwc); + break; case POWER_SUPPLY_PROP_USB_OTG: val->intval = !mdwc->id_state; break; @@ -2586,6 +2622,7 @@ static enum power_supply_property dwc3_msm_pm_power_props_usb[] = { POWER_SUPPLY_PROP_INPUT_CURRENT_MAX, POWER_SUPPLY_PROP_TYPE, POWER_SUPPLY_PROP_HEALTH, + POWER_SUPPLY_PROP_VOLTAGE_NOW, POWER_SUPPLY_PROP_USB_OTG, }; @@ -3365,7 +3402,10 @@ static int dwc3_msm_gadget_vbus_draw(struct dwc3_msm *mdwc, unsigned mA) if (mdwc->charging_disabled) return 0; - if (mdwc->chg_type != DWC3_INVALID_CHARGER) { + + if ((mdwc->chg_type != DWC3_INVALID_CHARGER) && + (mdwc->chg_type != DWC3_PROPRIETARY_CHARGER) && + (mdwc->chg_type != DWC3_DCP_CHARGER)) { dev_dbg(mdwc->dev, "SKIP setting power supply type again,chg_type = %d\n", mdwc->chg_type); @@ -3442,7 +3482,18 @@ static void dwc3_check_float_lines(struct dwc3_msm *mdwc) dwc3_msm_gadget_vbus_draw(mdwc, 0); /* Get linestate with Idp_src enabled */ - dpdm = usb_phy_dpdm_with_idp_src(mdwc->hs_phy); + if (mdwc->otg_state == OTG_STATE_UNDEFINED) { + dpdm = usb_phy_dpdm_with_idp_src(mdwc->hs_phy); + } else { + do { + dpdm = usb_phy_dpdm_with_idp_src(mdwc->hs_phy); + if (dpdm == 0 || dpdm == 0x3) + break; + mdwc->wt_check_times++; + msleep(200); + } while (mdwc->wt_check_times < 10); + } + dev_err(mdwc->dev, "%s: linestate(dpdm) = %d\n", __func__, dpdm); if (dpdm == 0x2) { /* DP is HIGH = lines are floating */ mdwc->chg_type = DWC3_PROPRIETARY_CHARGER; @@ -3450,6 +3501,13 @@ static void dwc3_check_float_lines(struct dwc3_msm *mdwc) pm_runtime_put_sync(mdwc->dev); dbg_event(0xFF, "FLT psync", atomic_read(&mdwc->dev->power.usage_count)); + } else if (dpdm == 0x3) { + mdwc->chg_type = DWC3_DCP_CHARGER; + mdwc->otg_state = OTG_STATE_B_IDLE; + pm_runtime_put_sync(mdwc->dev); + dbg_event(0xFF, "FLT psync", + atomic_read(&mdwc->dev->power.usage_count)); + } else if (dpdm) { dev_dbg(mdwc->dev, "%s:invalid linestate:%x\n", __func__, dpdm); } @@ -3529,6 +3587,8 @@ static void dwc3_otg_sm_work(struct work_struct *w) dev_dbg(mdwc->dev, "%s state\n", state); dbg_event(0xFF, state, 0); + dev_info(mdwc->dev, "XJB enter ,mdwc->otg_state= %d\n", mdwc->otg_state); + /* Check OTG state */ switch (mdwc->otg_state) { case OTG_STATE_UNDEFINED: @@ -3559,13 +3619,19 @@ static void dwc3_otg_sm_work(struct work_struct *w) dbg_event(0xFF, "undef_b_sess_vld", 0); switch (mdwc->chg_type) { case DWC3_DCP_CHARGER: - case DWC3_PROPRIETARY_CHARGER: dev_dbg(mdwc->dev, "DCP charger\n"); dwc3_msm_gadget_vbus_draw(mdwc, dcp_max_current); atomic_set(&dwc->in_lpm, 1); pm_relax(mdwc->dev); break; + case DWC3_PROPRIETARY_CHARGER: + dev_dbg(mdwc->dev, "PROPRIETARY charger\n"); + dwc3_msm_gadget_vbus_draw(mdwc, + DWC3_PROPRIETARY_CHG_MAX); + atomic_set(&dwc->in_lpm, 1); + pm_relax(mdwc->dev); + break; case DWC3_CDP_CHARGER: case DWC3_SDP_CHARGER: atomic_set(&dwc->in_lpm, 0); @@ -3577,8 +3643,10 @@ static void dwc3_otg_sm_work(struct work_struct *w) if (mdwc->detect_dpdm_floating && mdwc->chg_type == DWC3_SDP_CHARGER) { dwc3_check_float_lines(mdwc); - if (mdwc->chg_type != DWC3_SDP_CHARGER) + if (mdwc->chg_type != DWC3_SDP_CHARGER) { + work = 1; break; + } } dwc3_otg_start_peripheral(mdwc, 1); mdwc->otg_state = OTG_STATE_B_PERIPHERAL; @@ -3616,11 +3684,15 @@ static void dwc3_otg_sm_work(struct work_struct *w) dev_dbg(mdwc->dev, "b_sess_vld\n"); switch (mdwc->chg_type) { case DWC3_DCP_CHARGER: - case DWC3_PROPRIETARY_CHARGER: dev_dbg(mdwc->dev, "lpm, DCP charger\n"); dwc3_msm_gadget_vbus_draw(mdwc, dcp_max_current); break; + case DWC3_PROPRIETARY_CHARGER: + dev_dbg(mdwc->dev, "lpm, PROPRIETARY charger\n"); + dwc3_msm_gadget_vbus_draw(mdwc, + DWC3_PROPRIETARY_CHG_MAX); + break; case DWC3_CDP_CHARGER: dwc3_msm_gadget_vbus_draw(mdwc, DWC3_IDEV_CHG_MAX); @@ -3640,8 +3712,10 @@ static void dwc3_otg_sm_work(struct work_struct *w) if (mdwc->detect_dpdm_floating && mdwc->chg_type == DWC3_SDP_CHARGER) { dwc3_check_float_lines(mdwc); - if (mdwc->chg_type != DWC3_SDP_CHARGER) + if (mdwc->chg_type != DWC3_SDP_CHARGER) { + work = 1; break; + } } dwc3_otg_start_peripheral(mdwc, 1); mdwc->otg_state = OTG_STATE_B_PERIPHERAL; @@ -3653,6 +3727,7 @@ static void dwc3_otg_sm_work(struct work_struct *w) } } else { mdwc->typec_current_max = 0; + mdwc->wt_check_times = 0; dwc3_msm_gadget_vbus_draw(mdwc, 0); dev_dbg(mdwc->dev, "No device, allowing suspend\n"); } @@ -3762,8 +3837,10 @@ static void dwc3_otg_sm_work(struct work_struct *w) } - if (work) + if (work) { + dev_info(mdwc->dev, "XJB delay = %lu mdwc->wt_check_times = %d\n", delay, mdwc->wt_check_times); schedule_delayed_work(&mdwc->sm_work, delay); + } ret: return; diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c index c50669ad12c05..197603bc724c8 100644 --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c @@ -2,6 +2,7 @@ * gadget.c - DesignWare USB3 DRD Controller Gadget Framework Link * * Copyright (C) 2010-2011 Texas Instruments Incorporated - http://www.ti.com + * Copyright (C) 2018 XiaoMi, Inc. * * Authors: Felipe Balbi , * Sebastian Andrzej Siewior @@ -40,6 +41,13 @@ #include "debug.h" #include "io.h" +#ifdef WT_COMPILE_FACTORY_VERSION +#undef dev_dbg +#define dev_dbg dev_info +#undef pr_debug +#define pr_debug pr_info +#endif + static void dwc3_gadget_wakeup_interrupt(struct dwc3 *dwc, bool remote_wakeup); static int dwc3_gadget_wakeup_int(struct dwc3 *dwc); @@ -675,7 +683,9 @@ static void dwc3_remove_requests(struct dwc3 *dwc, struct dwc3_ep *dep) dwc3_gadget_giveback(dep, req, -ESHUTDOWN); } - } else if (usb_endpoint_xfer_isoc(dep->endpoint.desc)) { + /* For isoc endpoints explicitly stop active transfers */ + } else if (dep->endpoint.desc && + usb_endpoint_xfer_isoc(dep->endpoint.desc)) { dwc3_stop_active_transfer(dwc, dep->number, true); } @@ -3015,7 +3025,7 @@ static void dwc3_gadget_reset_interrupt(struct dwc3 *dwc) dwc3_gadget_usb3_phy_suspend(dwc, false); - usb_gadget_vbus_draw(&dwc->gadget, 0); + usb_gadget_vbus_draw(&dwc->gadget, 3); if (dwc->gadget.speed != USB_SPEED_UNKNOWN) dwc3_disconnect_gadget(dwc); diff --git a/drivers/usb/gadget/android.c b/drivers/usb/gadget/android.c index 7366e57b29dea..5f762f350defa 100644 --- a/drivers/usb/gadget/android.c +++ b/drivers/usb/gadget/android.c @@ -80,6 +80,13 @@ USB_VIDEO_MODULE_PARAMETERS(); #endif #include "debug.h" +#ifdef WT_COMPILE_FACTORY_VERSION +#undef dev_dbg +#define dev_dbg dev_info +#undef pr_debug +#define pr_debug pr_info +#endif + MODULE_AUTHOR("Mike Lockwood"); MODULE_DESCRIPTION("Android Composite USB Driver"); MODULE_LICENSE("GPL"); diff --git a/drivers/usb/gadget/ci13xxx_msm.c b/drivers/usb/gadget/ci13xxx_msm.c index 6ba3c16ca3009..ef32fb3ff6084 100644 --- a/drivers/usb/gadget/ci13xxx_msm.c +++ b/drivers/usb/gadget/ci13xxx_msm.c @@ -15,6 +15,13 @@ #include "ci13xxx_udc.c" +#ifdef WT_COMPILE_FACTORY_VERSION +#undef dev_dbg +#define dev_dbg dev_info +#undef pr_debug +#define pr_debug pr_info +#endif + #define MSM_USB_BASE (udc->regs) #define CI13XXX_MSM_MAX_LOG2_ITC 7 diff --git a/drivers/usb/gadget/ci13xxx_udc.c b/drivers/usb/gadget/ci13xxx_udc.c index 2ee974eddb63d..bcd0afe0f0b4f 100644 --- a/drivers/usb/gadget/ci13xxx_udc.c +++ b/drivers/usb/gadget/ci13xxx_udc.c @@ -69,7 +69,12 @@ #include #include "ci13xxx_udc.h" - +#ifdef WT_COMPILE_FACTORY_VERSION +#undef dev_dbg +#define dev_dbg dev_info +#undef pr_debug +#define pr_debug pr_info +#endif /****************************************************************************** * DEFINE *****************************************************************************/ diff --git a/drivers/usb/gadget/composite.c b/drivers/usb/gadget/composite.c index 928899e3e3f77..1540bf2f5a317 100644 --- a/drivers/usb/gadget/composite.c +++ b/drivers/usb/gadget/composite.c @@ -2,6 +2,7 @@ * composite.c - infrastructure for Composite USB Gadgets * * Copyright (C) 2006-2008 David Brownell + * Copyright (C) 2018 XiaoMi, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -27,7 +28,12 @@ #define SSUSB_GADGET_VBUS_DRAW 900 /* in mA */ #define SSUSB_GADGET_VBUS_DRAW_UNITS 8 #define HSUSB_GADGET_VBUS_DRAW_UNITS 2 - +#ifdef WT_COMPILE_FACTORY_VERSION +#undef dev_dbg +#define dev_dbg dev_info +#undef pr_debug +#define pr_debug pr_info +#endif static bool enable_l1_for_hs; module_param(enable_l1_for_hs, bool, S_IRUGO | S_IWUSR); MODULE_PARM_DESC(enable_l1_for_hs, "Enable support for L1 LPM for HS devices"); diff --git a/drivers/usb/gadget/function/f_mtp.c b/drivers/usb/gadget/function/f_mtp.c index 6f5969135ca36..2f8203a39c45c 100644 --- a/drivers/usb/gadget/function/f_mtp.c +++ b/drivers/usb/gadget/function/f_mtp.c @@ -815,6 +815,11 @@ static void send_file_work(struct work_struct *data) offset = dev->xfer_file_offset; count = dev->xfer_file_length; + if (count < 0) { + dev->xfer_result = -EINVAL; + return; + } + DBG(cdev, "send_file_work(%lld %lld)\n", offset, count); if (dev->xfer_send_header) { @@ -934,6 +939,11 @@ static void receive_file_work(struct work_struct *data) offset = dev->xfer_file_offset; count = dev->xfer_file_length; + if (count < 0) { + dev->xfer_result = -EINVAL; + return; + } + DBG(cdev, "receive_file_work(%lld)\n", count); if (!IS_ALIGNED(count, dev->ep_out->maxpacket)) DBG(cdev, "%s- count(%lld) not multiple of mtu(%d)\n", __func__, diff --git a/drivers/usb/phy/phy-msm-usb.c b/drivers/usb/phy/phy-msm-usb.c index 95386a2f38e92..8684bd3a013e2 100644 --- a/drivers/usb/phy/phy-msm-usb.c +++ b/drivers/usb/phy/phy-msm-usb.c @@ -1,4 +1,5 @@ /* Copyright (c) 2009-2016, Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -54,7 +55,7 @@ #define DRIVER_NAME "msm_otg" -#define CHG_RECHECK_DELAY (jiffies + msecs_to_jiffies(2000)) +#define CHG_RECHECK_DELAY (jiffies + msecs_to_jiffies(5000)) #define ULPI_IO_TIMEOUT_USEC (10 * 1000) #define USB_PHY_3P3_VOL_MIN 3050000 /* uV */ #define USB_PHY_3P3_VOL_MAX 3300000 /* uV */ @@ -132,6 +133,19 @@ static char bus_clkname[USB_NUM_BUS_CLOCKS][20] = {"bimc_clk", "snoc_clk", "pcnoc_clk"}; static bool bus_clk_rate_set; + +static int oem_is_kpoc; +static int __init oem_kpoc_setup(char *str) +{ + if (!strncmp(str, "charger", 4)) { + oem_is_kpoc = 1; + printk("[oem][kpoc] disable udc @kpoc mode\n"); + } + return 1; +} +__setup("androidboot.mode=", oem_kpoc_setup); + + static void dbg_inc(unsigned *idx) { *idx = (*idx + 1) & (DEBUG_MAX_MSG-1); @@ -473,10 +487,13 @@ static void ulpi_init(struct msm_otg *motg) static int msm_otg_phy_clk_reset(struct msm_otg *motg) { int ret; + unsigned long flags; if (!motg->phy_reset_clk) return 0; - + spin_lock_irqsave(&motg->otg_phy_clk_lock, flags); + motg->otg_phy_clk_enable = false; + spin_unlock_irqrestore(&motg->otg_phy_clk_lock, flags); if (motg->sleep_clk) clk_disable_unprepare(motg->sleep_clk); if (motg->phy_csr_clk) @@ -507,6 +524,9 @@ static int msm_otg_phy_clk_reset(struct msm_otg *motg) clk_prepare_enable(motg->phy_csr_clk); if (motg->sleep_clk) clk_prepare_enable(motg->sleep_clk); + spin_lock_irqsave(&motg->otg_phy_clk_lock, flags); + motg->otg_phy_clk_enable = true; + spin_unlock_irqrestore(&motg->otg_phy_clk_lock, flags); return 0; } @@ -1418,6 +1438,11 @@ static int msm_otg_suspend(struct msm_otg *motg) if (!(phy->state == OTG_STATE_B_PERIPHERAL && test_bit(A_BUS_SUSPEND, &motg->inputs)) || !motg->pdata->core_clk_always_on_workaround) { + unsigned long flags; + spin_lock_irqsave(&motg->otg_phy_clk_lock, flags); + motg->otg_phy_clk_enable = false; + spin_unlock_irqrestore(&motg->otg_phy_clk_lock, flags); + clk_disable_unprepare(motg->pclk); clk_disable_unprepare(motg->core_clk); if (motg->phy_csr_clk) @@ -1551,6 +1576,7 @@ static int msm_otg_resume(struct msm_otg *motg) } if (motg->lpm_flags & CLOCKS_DOWN) { + unsigned long flags; if (motg->phy_csr_clk) { ret = clk_prepare_enable(motg->phy_csr_clk); WARN(ret, "USB phy_csr_clk enable failed\n"); @@ -1560,6 +1586,10 @@ static int msm_otg_resume(struct msm_otg *motg) ret = clk_prepare_enable(motg->pclk); WARN(ret, "USB pclk enable failed\n"); motg->lpm_flags &= ~CLOCKS_DOWN; + spin_lock_irqsave(&motg->otg_phy_clk_lock, flags); + motg->otg_phy_clk_enable = true; + spin_unlock_irqrestore(&motg->otg_phy_clk_lock, flags); + } if (motg->lpm_flags & PHY_PWR_COLLAPSED) { @@ -2220,7 +2250,13 @@ static bool msm_otg_read_pmic_id_state(struct msm_otg *motg) static bool msm_otg_read_phy_id_state(struct msm_otg *motg) { u8 val; + unsigned long flags; + spin_lock_irqsave(&motg->otg_phy_clk_lock, flags); + if (false == motg->otg_phy_clk_enable) { + spin_unlock_irqrestore(&motg->otg_phy_clk_lock, flags); + return motg->id_state; + } /* * clear the pending/outstanding interrupts and * read the ID status from the SRC_STATUS register. @@ -2236,6 +2272,7 @@ static bool msm_otg_read_phy_id_state(struct msm_otg *motg) writeb_relaxed(0x0, USB2_PHY_USB_PHY_IRQ_CMD); val = readb_relaxed(USB2_PHY_USB_PHY_INTERRUPT_SRC_STATUS); + spin_unlock_irqrestore(&motg->otg_phy_clk_lock, flags); if (val & USB_PHY_IDDIG_1_0) return false; /* ID is grounded */ else @@ -2831,6 +2868,18 @@ static void msm_otg_sm_work(struct work_struct *w) IDEV_CHG_MAX); /* fall through */ case USB_SDP_CHARGER: + + if (oem_is_kpoc) { + motg->chg_type = USB_DCP_CHARGER; + msm_otg_notify_charger(motg, 500); + otg->phy->state = OTG_STATE_B_CHARGER; + work = 0; + pm_runtime_put_noidle(otg->phy->dev); + pm_runtime_suspend(otg->phy->dev); + break; + } + + msm_otg_notify_charger(motg, IDEV_CHG_MIN); pm_runtime_get_sync(otg->phy->dev); msm_otg_start_peripheral(otg, 1); otg->phy->state = @@ -4427,6 +4476,9 @@ static int msm_otg_probe(struct platform_device *pdev) } } + motg->otg_phy_clk_enable = true; + spin_lock_init(&motg->otg_phy_clk_lock); + of_property_read_u32(pdev->dev.of_node, "qcom,pm-qos-latency", &motg->pm_qos_latency); @@ -4992,6 +5044,7 @@ static int msm_otg_remove(struct platform_device *pdev) struct msm_otg *motg = platform_get_drvdata(pdev); struct usb_phy *phy = &motg->phy; int cnt = 0; + unsigned long flags; if (phy->otg->host || phy->otg->gadget) return -EBUSY; @@ -5060,6 +5113,9 @@ static int msm_otg_remove(struct platform_device *pdev) clk_disable_unprepare(motg->pclk); clk_disable_unprepare(motg->core_clk); + spin_lock_irqsave(&motg->otg_phy_clk_lock, flags); + motg->otg_phy_clk_enable = false; + spin_unlock_irqrestore(&motg->otg_phy_clk_lock, flags); if (motg->phy_csr_clk) clk_disable_unprepare(motg->phy_csr_clk); if (motg->xo_clk) { diff --git a/drivers/video/fbdev/core/fbmem.c b/drivers/video/fbdev/core/fbmem.c index 2a708dd2eceed..a39b333efd51a 100644 --- a/drivers/video/fbdev/core/fbmem.c +++ b/drivers/video/fbdev/core/fbmem.c @@ -2,6 +2,7 @@ * linux/drivers/video/fbmem.c * * Copyright (C) 1994 Martin Schaller + * Copyright (C) 2018 XiaoMi, Inc. * * 2001 - Documented with DocBook * - Brad Douglas @@ -1054,13 +1055,21 @@ EXPORT_SYMBOL(fb_set_var); int fb_blank(struct fb_info *info, int blank) -{ +{ struct fb_event event; int ret = -EINVAL, early_ret; if (blank > FB_BLANK_POWERDOWN) blank = FB_BLANK_POWERDOWN; + + if (info->blank == blank) { + if (info->fbops->fb_blank) + ret = info->fbops->fb_blank(blank, info); + return ret; + } + + event.info = info; event.data = ␣ @@ -1080,6 +1089,9 @@ fb_blank(struct fb_info *info, int blank) fb_notifier_call_chain(FB_R_EARLY_EVENT_BLANK, &event); } + if (!ret) + info->blank = blank; + return ret; } EXPORT_SYMBOL(fb_blank); @@ -1641,6 +1653,7 @@ static int do_register_framebuffer(struct fb_info *fb_info) if (!registered_fb[i]) break; fb_info->node = i; + fb_info->blank = -1; atomic_set(&fb_info->count, 1); mutex_init(&fb_info->lock); mutex_init(&fb_info->mm_lock); diff --git a/drivers/video/msm/mdss/mdss_dsi.c b/drivers/video/msm/mdss/mdss_dsi.c index 7e9fab7faf4fe..df9bdaa6910a0 100644 --- a/drivers/video/msm/mdss/mdss_dsi.c +++ b/drivers/video/msm/mdss/mdss_dsi.c @@ -1,4 +1,5 @@ /* Copyright (c) 2012-2017, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -35,6 +36,13 @@ #include "mdss_dba_utils.h" #define XO_CLK_RATE 19200000 + +struct mutex gamma_lock; +struct mutex ce_lock; +struct mutex eye_lock; +struct mutex cabc_lock; + + #define CMDLINE_DSI_CTL_NUM_STRING_LEN 2 /* Master structure to hold all the information about the DSI/panel */ @@ -44,6 +52,8 @@ static struct mdss_dsi_data *mdss_dsi_res; #define DSI_ENABLE_PC_LATENCY PM_QOS_DEFAULT_VALUE static struct pm_qos_request mdss_dsi_pm_qos_request; +bool is_Lcm_Present = false; +bool is_tianma_panel = false; static void mdss_dsi_pm_qos_add_request(struct mdss_dsi_ctrl_pdata *ctrl_pdata) { @@ -292,6 +302,8 @@ static int mdss_dsi_panel_power_off(struct mdss_panel_data *pdata) ret = 0; } + usleep(500); + if (mdss_dsi_pinctrl_set_state(ctrl_pdata, false)) pr_debug("reset disable: pinctrl not enabled\n"); @@ -306,6 +318,8 @@ static int mdss_dsi_panel_power_off(struct mdss_panel_data *pdata) return ret; } +int tp_gesture_onoff = 0; +EXPORT_SYMBOL(tp_gesture_onoff); static int mdss_dsi_panel_power_on(struct mdss_panel_data *pdata) { int ret = 0; @@ -344,7 +358,6 @@ static int mdss_dsi_panel_power_on(struct mdss_panel_data *pdata) pr_err("%s: Panel reset failed. rc=%d\n", __func__, ret); } - return ret; } @@ -1324,6 +1337,7 @@ int mdss_dsi_on(struct mdss_panel_data *pdata) struct mipi_panel_info *mipi; struct mdss_dsi_ctrl_pdata *ctrl_pdata = NULL; int cur_power_state; + unsigned long timeout = jiffies; if (pdata == NULL) { pr_err("%s: Invalid input data\n", __func__); @@ -1425,6 +1439,9 @@ int mdss_dsi_on(struct mdss_panel_data *pdata) mdss_dsi_clk_ctrl(ctrl_pdata, ctrl_pdata->dsi_clk_handle, MDSS_DSI_ALL_CLKS, MDSS_DSI_CLK_OFF); + pr_info("%s: mdss_dsi_on time=%ums \n", __func__, + jiffies_to_msecs(jiffies-timeout)); + end: pr_debug("%s-:\n", __func__); return ret; @@ -2770,6 +2787,10 @@ static struct device_node *mdss_dsi_find_panel_of_node( panel_name[i] = *(str1 + i); panel_name[i] = 0; } + + if (!strcmp(panel_name, "qcom,mdss_dsi_ili9881c_tianma_c3b_720p_video")) + is_tianma_panel = true; + pr_info("%s: cmdline:%s panel_name:%s\n", __func__, panel_cfg, panel_name); if (!strcmp(panel_name, NONE_PANEL)) @@ -2808,12 +2829,13 @@ static struct device_node *mdss_dsi_find_panel_of_node( cfg_np_name, MDSS_MAX_PANEL_LEN); } } - + is_Lcm_Present = true; return dsi_pan_node; } end: if (strcmp(panel_name, NONE_PANEL)) dsi_pan_node = mdss_dsi_pref_prim_panel(pdev); + is_Lcm_Present = false; exit: return dsi_pan_node; } @@ -3652,6 +3674,10 @@ static int mdss_dsi_probe(struct platform_device *pdev) pr_err("%s: Invalid DSI hw configuration\n", __func__); goto error; } + mutex_init(&gamma_lock); + mutex_init(&ce_lock); + mutex_init(&eye_lock); + mutex_init(&cabc_lock); mdss_dsi_config_clk_src(pdev); @@ -4182,6 +4208,223 @@ static int mdss_dsi_register_driver(void) return platform_driver_register(&mdss_dsi_driver); } +int current_gamma = NATURE; +int current_ce = STANDARD; +int current_eye = 0; +int poweron = 0; + +extern int mdss_dsi_panel_gamma(struct mdss_panel_data *pdata); + int mdss_panel_set_gamma(struct mdss_panel_data *pdata, int mode) +{ + int ret = 0; + struct mdss_dsi_ctrl_pdata *ctrl_pdata = NULL; + if (pdata == NULL) { + pr_err("%s: Invalid input data\n", __func__); + return -EINVAL; + } + + if (poweron == 0 && is_tianma_panel) { + poweron++; + current_gamma = 0; + } + + if (mode != current_gamma) { + pr_err("%s: Set panel gamma, mode is %d\n", __func__, mode); + mutex_lock(&gamma_lock); + ctrl_pdata = container_of(pdata, struct mdss_dsi_ctrl_pdata, + panel_data); + mdss_dsi_clk_ctrl(ctrl_pdata, ctrl_pdata->dsi_clk_handle, MDSS_DSI_ALL_CLKS, MDSS_DSI_CLK_ON); + + switch (mode) { + case WARM: + ctrl_pdata->gamma_cmds = ctrl_pdata->warm_cmds; + current_gamma = WARM; + break; + case COOL: + ctrl_pdata->gamma_cmds = ctrl_pdata->cool_cmds; + current_gamma = COOL; + break; + case NATURE: + ctrl_pdata->gamma_cmds = ctrl_pdata->nature_cmds; + current_gamma = NATURE; + break; + default: + ret = -EINVAL; + goto err_out; + } + if (ctrl_pdata->nature_cmds.link_state == DSI_HS_MODE) + mdss_dsi_set_tx_power_mode(0, &ctrl_pdata->panel_data); + + ret = mdss_dsi_panel_gamma(pdata); + if (ret) { + pr_err("%s: unable to set the panel gamma\n", + __func__); + goto err_out; + } + if (ctrl_pdata->nature_cmds.link_state == DSI_HS_MODE) { + mdss_dsi_set_tx_power_mode(1, &ctrl_pdata->panel_data); + } + +err_out: + mdss_dsi_clk_ctrl(ctrl_pdata, ctrl_pdata->dsi_clk_handle, MDSS_DSI_ALL_CLKS, MDSS_DSI_CLK_OFF); + mutex_unlock(&gamma_lock); + } + + return ret; +} + +extern int mdss_dsi_panel_dispparam(struct mdss_panel_data *pdata); +int mdss_panel_set_dispparam(struct mdss_panel_data *pdata, int level) +{ + int ret = 0; + struct mipi_panel_info *mipi; + struct mdss_dsi_ctrl_pdata *ctrl_pdata = NULL; + + if (pdata == NULL) { + pr_err("%s: Invalid input data\n", __func__); + return -EINVAL; + } + if (current_eye != level) { + mutex_lock(&eye_lock); + ctrl_pdata = container_of(pdata, struct mdss_dsi_ctrl_pdata, + panel_data); + mipi = &pdata->panel_info.mipi; + if ((level < 0) || (level > 8)) { + pr_err("%s: Invalid level to protect eyes\n", __func__); + mutex_unlock(&eye_lock); + return -EINVAL; + } + + mdss_dsi_clk_ctrl(ctrl_pdata, ctrl_pdata->dsi_clk_handle, MDSS_DSI_ALL_CLKS, MDSS_DSI_CLK_ON); + + current_eye = level; + if (level == 0) { + ctrl_pdata->eyemode = false; + if (current_gamma == WARM) + ctrl_pdata->dispparam_cmds = ctrl_pdata->warm_cmds; + if (current_gamma == COOL) + ctrl_pdata->dispparam_cmds = ctrl_pdata->cool_cmds; + if (current_gamma == NATURE) + ctrl_pdata->dispparam_cmds = ctrl_pdata->nature_cmds; + } else{ + ctrl_pdata->eyemode = true; + ctrl_pdata->dispparam_cmds = ctrl_pdata->eye_cmds[level-1]; + } + + if (ctrl_pdata->nature_cmds.link_state == DSI_HS_MODE) + mdss_dsi_set_tx_power_mode(0, &ctrl_pdata->panel_data); + ret = mdss_dsi_panel_dispparam(pdata); + if (ret) { + pr_err("%s: unable to set the panel gamma\n", + __func__); + goto err_out; + } + + if (ctrl_pdata->nature_cmds.link_state == DSI_HS_MODE) + mdss_dsi_set_tx_power_mode(1, &ctrl_pdata->panel_data); + +err_out: + mdss_dsi_clk_ctrl(ctrl_pdata, ctrl_pdata->dsi_clk_handle, MDSS_DSI_ALL_CLKS, MDSS_DSI_CLK_OFF); + mutex_unlock(&eye_lock); + } + return ret; +} + +extern int mdss_dsi_panel_ce(struct mdss_panel_data *pdata); + int mdss_panel_set_ce(struct mdss_panel_data *pdata, int mode) +{ + int ret = 0; + struct mdss_dsi_ctrl_pdata *ctrl_pdata = NULL; + if (pdata == NULL) { + pr_err("%s: Invalid input data\n", __func__); + return -EINVAL; + } + if (mode != current_ce) { + pr_err("%s: Set panel ce, mode is %d\n", __func__, mode); + mutex_lock(&ce_lock); + ctrl_pdata = container_of(pdata, struct mdss_dsi_ctrl_pdata, + panel_data); + mdss_dsi_clk_ctrl(ctrl_pdata, ctrl_pdata->dsi_clk_handle, MDSS_DSI_ALL_CLKS, MDSS_DSI_CLK_ON); + switch (mode) { + case VIVID: + ctrl_pdata->ce_cmds = ctrl_pdata->vivid_cmds; + current_ce = VIVID; + break; + case STANDARD: + ctrl_pdata->ce_cmds = ctrl_pdata->standard_cmds; + current_ce = STANDARD; + break; + case BRIGHT: + ctrl_pdata->ce_cmds = ctrl_pdata->bright_cmds; + current_ce = BRIGHT; + break; + default: + ret = -EINVAL; + goto err_out; + } + + if (ctrl_pdata->nature_cmds.link_state == DSI_HS_MODE) + mdss_dsi_set_tx_power_mode(0, &ctrl_pdata->panel_data); + + ret = mdss_dsi_panel_ce(pdata); + if (ret) { + pr_err("%s: unable to set the panel ce\n", __func__); + goto err_out; + } + if (ctrl_pdata->nature_cmds.link_state == DSI_HS_MODE) + mdss_dsi_set_tx_power_mode(1, &ctrl_pdata->panel_data); + +err_out: + mdss_dsi_clk_ctrl(ctrl_pdata, ctrl_pdata->dsi_clk_handle, MDSS_DSI_ALL_CLKS, MDSS_DSI_CLK_OFF); + mutex_unlock(&ce_lock); + } + return ret; +} +extern int mdss_dsi_panel_cabc(struct mdss_panel_data *pdata); + int mdss_panel_set_cabc(struct mdss_panel_data *pdata, int mode) +{ + int ret = 0; + struct mdss_dsi_ctrl_pdata *ctrl_pdata = NULL; + if (pdata == NULL) { + pr_err("%s: Invalid input data\n", __func__); + return -EINVAL; + } + pr_err("%s: Set panel cabc, mode is %d\n", __func__, mode); + mutex_lock(&cabc_lock); + ctrl_pdata = container_of(pdata, struct mdss_dsi_ctrl_pdata, + panel_data); + mdss_dsi_clk_ctrl(ctrl_pdata, ctrl_pdata->dsi_clk_handle, MDSS_DSI_ALL_CLKS, MDSS_DSI_CLK_ON); + switch (mode) { + case CABC_ON: + ctrl_pdata->cabc_cmds = ctrl_pdata->cabc_on_cmds; + break; + case CABC_OFF: + ctrl_pdata->cabc_cmds = ctrl_pdata->cabc_off_cmds; + break; + default: + pr_err("%s: Set panel cabc fail, mode is %d\n", __func__, mode); + ret = -EINVAL; + goto err_out; + } + + if (ctrl_pdata->nature_cmds.link_state == DSI_HS_MODE) + mdss_dsi_set_tx_power_mode(0, &ctrl_pdata->panel_data); + + ret = mdss_dsi_panel_cabc(pdata); + if (ret) { + pr_err("%s: unable to set the panel cabc\n", __func__); + goto err_out; + } + if (ctrl_pdata->nature_cmds.link_state == DSI_HS_MODE) + mdss_dsi_set_tx_power_mode(1, &ctrl_pdata->panel_data); + +err_out: + mdss_dsi_clk_ctrl(ctrl_pdata, ctrl_pdata->dsi_clk_handle, MDSS_DSI_ALL_CLKS, MDSS_DSI_CLK_OFF); + mutex_unlock(&cabc_lock); + + return ret; +} + static int __init mdss_dsi_driver_init(void) { int ret; diff --git a/drivers/video/msm/mdss/mdss_dsi.h b/drivers/video/msm/mdss/mdss_dsi.h index 38ed93f50047a..dfc7eaeeec5d8 100644 --- a/drivers/video/msm/mdss/mdss_dsi.h +++ b/drivers/video/msm/mdss/mdss_dsi.h @@ -1,4 +1,5 @@ /* Copyright (c) 2012-2016, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -64,6 +65,21 @@ #define NONE_PANEL "none" +enum { + WARM = 1, + COOL = 3, + NATURE = 2, + STANDARD = 10, + VIVID = 11, + BRIGHT = 12, +}; + +enum { /* mipi dsi panel */ + CABC_ON = 1, + CABC_OFF = 0, +}; + + enum { /* mipi dsi panel */ DSI_VIDEO_MODE, DSI_CMD_MODE, @@ -429,6 +445,7 @@ struct mdss_dsi_ctrl_pdata { int irq_cnt; int disp_te_gpio; int rst_gpio; + int iovdd_gpio; int disp_en_gpio; int bklt_en_gpio; int mode_gpio; @@ -468,6 +485,22 @@ struct mdss_dsi_ctrl_pdata { struct dsi_panel_cmds post_panel_on_cmds; struct dsi_panel_cmds off_cmds; struct dsi_panel_cmds status_cmds; + struct dsi_panel_cmds warm_cmds; + struct dsi_panel_cmds cool_cmds; + struct dsi_panel_cmds nature_cmds; + struct dsi_panel_cmds vivid_cmds; + struct dsi_panel_cmds standard_cmds; + struct dsi_panel_cmds bright_cmds; + struct dsi_panel_cmds eye_cmds[8]; + struct dsi_panel_cmds cabc_cmds; + struct dsi_panel_cmds cabc_on_cmds; + struct dsi_panel_cmds cabc_off_cmds; + int eye_cmds_num; + bool eyemode; + struct dsi_panel_cmds dispparam_cmds; + struct dsi_panel_cmds gamma_cmds; + struct dsi_panel_cmds ce_cmds; + bool init_last; u32 *status_valid_params; u32 *status_cmds_rlen; u32 *status_value; @@ -618,6 +651,10 @@ int mdss_dsi_pre_clkon_cb(void *priv, enum mdss_dsi_clk_type clk_type, enum mdss_dsi_clk_state new_state); int mdss_dsi_panel_reset(struct mdss_panel_data *pdata, int enable); +int mdss_panel_set_ce(struct mdss_panel_data *pdata, int mode); +int mdss_panel_set_gamma(struct mdss_panel_data *pdata, int mode); +int mdss_panel_set_dispparam(struct mdss_panel_data *pdata, int mode); +int mdss_panel_set_cabc(struct mdss_panel_data *pdata, int mode); void mdss_dsi_phy_disable(struct mdss_dsi_ctrl_pdata *ctrl); void mdss_dsi_cmd_test_pattern(struct mdss_dsi_ctrl_pdata *ctrl); void mdss_dsi_video_test_pattern(struct mdss_dsi_ctrl_pdata *ctrl); diff --git a/drivers/video/msm/mdss/mdss_dsi_host.c b/drivers/video/msm/mdss/mdss_dsi_host.c index 9598519d867f7..52404e8c6be48 100644 --- a/drivers/video/msm/mdss/mdss_dsi_host.c +++ b/drivers/video/msm/mdss/mdss_dsi_host.c @@ -1,4 +1,5 @@ /* Copyright (c) 2012-2016, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -603,7 +604,7 @@ static inline bool mdss_dsi_poll_clk_lane(struct mdss_dsi_ctrl_pdata *ctrl) if (readl_poll_timeout(((ctrl->ctrl_base) + 0x00a8), clk, (clk & 0x0010), - 10, 1000)) { + 100, 20000)) { pr_err("%s: ndx=%d clk lane NOT stopped, clk=%x\n", __func__, ctrl->ndx, clk); @@ -643,6 +644,7 @@ static void mdss_dsi_start_hs_clk_lane(struct mdss_dsi_ctrl_pdata *ctrl) mdss_dsi_stop_hs_clk_lane(ctrl); mutex_lock(&ctrl->clk_lane_mutex); + MDSS_XLOG(ctrl->ndx, ctrl->clk_lane_cnt, current->pid, XLOG_FUNC_ENTRY); mdss_dsi_clk_ctrl(ctrl, ctrl->dsi_clk_handle, MDSS_DSI_ALL_CLKS, MDSS_DSI_CLK_ON); if (ctrl->clk_lane_cnt) { @@ -658,6 +660,7 @@ static void mdss_dsi_start_hs_clk_lane(struct mdss_dsi_ctrl_pdata *ctrl) ctrl->ndx, ctrl->clk_lane_cnt); mdss_dsi_clk_ctrl(ctrl, ctrl->dsi_clk_handle, MDSS_DSI_ALL_CLKS, MDSS_DSI_CLK_OFF); + MDSS_XLOG(ctrl->ndx, ctrl->clk_lane_cnt, current->pid, XLOG_FUNC_EXIT); mutex_unlock(&ctrl->clk_lane_mutex); } @@ -665,6 +668,10 @@ static void mdss_dsi_start_hs_clk_lane(struct mdss_dsi_ctrl_pdata *ctrl) * mdss_dsi_stop_hs_clk_lane: * this function is work around solution for 8994 dsi clk lane * may stuck at HS problem + * since this function is called by event_thread, it may wakeup + * after next kickoff had been lunched and start_hs_clk_lane + * had been started. Therefore more than 1 vsync polling time is needed. + * Use 50ms timeout to cover 30 FPS case. */ static void mdss_dsi_stop_hs_clk_lane(struct mdss_dsi_ctrl_pdata *ctrl) { @@ -672,6 +679,8 @@ static void mdss_dsi_stop_hs_clk_lane(struct mdss_dsi_ctrl_pdata *ctrl) u32 lane = 0; mutex_lock(&ctrl->clk_lane_mutex); + MDSS_XLOG(ctrl->ndx, ctrl->clk_lane_cnt, current->pid, + XLOG_FUNC_ENTRY); if (ctrl->clk_lane_cnt == 0) /* stopped already */ goto release; @@ -681,7 +690,7 @@ static void mdss_dsi_stop_hs_clk_lane(struct mdss_dsi_ctrl_pdata *ctrl) if (readl_poll_timeout(((ctrl->ctrl_base) + 0x000c), fifo, ((fifo & 0x11110000) == 0x11110000), - 10, 1000)) { + 100, 50000)) { pr_err("%s: fifo NOT empty, fifo=%x\n", __func__, fifo); goto end; @@ -691,7 +700,7 @@ static void mdss_dsi_stop_hs_clk_lane(struct mdss_dsi_ctrl_pdata *ctrl) if (readl_poll_timeout(((ctrl->ctrl_base) + 0x00a8), lane, ((lane & 0x000f) == 0x000f), - 100, 2000)) { + 100, 20000)) { pr_err("%s: datalane NOT stopped, lane=%x\n", __func__, lane); } @@ -708,6 +717,8 @@ static void mdss_dsi_stop_hs_clk_lane(struct mdss_dsi_ctrl_pdata *ctrl) mdss_dsi_clk_ctrl(ctrl, ctrl->dsi_clk_handle, MDSS_DSI_ALL_CLKS, MDSS_DSI_CLK_OFF); + MDSS_XLOG(ctrl->ndx, ctrl->clk_lane_cnt, + current->pid, XLOG_FUNC_EXIT); mutex_unlock(&ctrl->clk_lane_mutex); } diff --git a/drivers/video/msm/mdss/mdss_dsi_panel.c b/drivers/video/msm/mdss/mdss_dsi_panel.c index c694db751a2a4..bfa5e93124dad 100644 --- a/drivers/video/msm/mdss/mdss_dsi_panel.c +++ b/drivers/video/msm/mdss/mdss_dsi_panel.c @@ -1,4 +1,5 @@ /* Copyright (c) 2012-2016, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -25,6 +26,7 @@ #include "mdss_dsi.h" #include "mdss_dba_utils.h" +#include #define DT_CMD_HDR 6 #define MIN_REFRESH_RATE 48 @@ -32,6 +34,9 @@ #define VSYNC_DELAY msecs_to_jiffies(17) +extern char Lcm_name[HARDWARE_MAX_ITEM_LONGTH]; +extern bool is_Lcm_Present; + DEFINE_LED_TRIGGER(bl_led_trigger); void mdss_dsi_panel_pwm_cfg(struct mdss_dsi_ctrl_pdata *ctrl) @@ -94,7 +99,6 @@ static void mdss_dsi_panel_bklt_pwm(struct mdss_dsi_ctrl_pdata *ctrl, int level) pr_debug("%s: bklt_ctrl=%d pwm_period=%d pwm_gpio=%d pwm_lpg_chan=%d\n", __func__, ctrl->bklt_ctrl, ctrl->pwm_period, ctrl->pwm_pmic_gpio, ctrl->pwm_lpg_chan); - pr_debug("%s: ndx=%d level=%d duty=%d\n", __func__, ctrl->ndx, level, duty); @@ -270,11 +274,13 @@ static int mdss_dsi_request_gpios(struct mdss_dsi_ctrl_pdata *ctrl_pdata) return rc; } +extern int tp_gesture_onoff; int mdss_dsi_panel_reset(struct mdss_panel_data *pdata, int enable) { struct mdss_dsi_ctrl_pdata *ctrl_pdata = NULL; struct mdss_panel_info *pinfo = NULL; int i, rc = 0; + unsigned long timeout = jiffies; if (pdata == NULL) { pr_err("%s: Invalid input data\n", __func__); @@ -285,6 +291,7 @@ int mdss_dsi_panel_reset(struct mdss_panel_data *pdata, int enable) panel_data); pinfo = &(ctrl_pdata->panel_data.panel_info); + if ((mdss_dsi_is_right_ctrl(ctrl_pdata) && mdss_dsi_is_hw_config_split(ctrl_pdata->shared_data)) || pinfo->is_dba_panel) { @@ -381,11 +388,17 @@ int mdss_dsi_panel_reset(struct mdss_panel_data *pdata, int enable) gpio_set_value((ctrl_pdata->disp_en_gpio), 0); gpio_free(ctrl_pdata->disp_en_gpio); } - gpio_set_value((ctrl_pdata->rst_gpio), 0); + + if (((tp_gesture_onoff) || (pinfo->pwr_off_rst_pull_high)) && pinfo->panel_dead == 0) + gpio_set_value((ctrl_pdata->rst_gpio), 1); + else + gpio_set_value((ctrl_pdata->rst_gpio), 0); gpio_free(ctrl_pdata->rst_gpio); if (gpio_is_valid(ctrl_pdata->mode_gpio)) gpio_free(ctrl_pdata->mode_gpio); } + pr_info("%s: mdss_dsi_panel_reset time=%ums \n", __func__, + jiffies_to_msecs(jiffies-timeout)); exit: return rc; @@ -708,6 +721,7 @@ static int mdss_dsi_panel_on(struct mdss_panel_data *pdata) struct mdss_panel_info *pinfo; struct dsi_panel_cmds *on_cmds; int ret = 0; + unsigned long timeout = jiffies; if (pdata == NULL) { pr_err("%s: Invalid input data\n", __func__); @@ -734,14 +748,54 @@ static int mdss_dsi_panel_on(struct mdss_panel_data *pdata) pr_debug("%s: ndx=%d cmd_cnt=%d\n", __func__, ctrl->ndx, on_cmds->cmd_cnt); + + if (ctrl->eyemode == true && (!strcmp(Lcm_name, "nt35521s_HD720p_video_EBBG_c3a"))) { + if (on_cmds->cmd_cnt) + mdss_dsi_panel_cmds_send(ctrl, on_cmds, CMD_REQ_COMMIT); + if (ctrl->dispparam_cmds.cmd_cnt) + mdss_dsi_panel_cmds_send(ctrl, &ctrl->dispparam_cmds, CMD_REQ_COMMIT); + } else{ + if (ctrl->init_last) { + if (ctrl->eyemode == true) { + if (ctrl->dispparam_cmds.cmd_cnt) + mdss_dsi_panel_cmds_send(ctrl, &ctrl->dispparam_cmds, CMD_REQ_COMMIT); + } else{ + if (ctrl->gamma_cmds.cmd_cnt) + mdss_dsi_panel_cmds_send(ctrl, &ctrl->gamma_cmds, CMD_REQ_COMMIT); + if (ctrl->ce_cmds.cmd_cnt) + mdss_dsi_panel_cmds_send(ctrl, &ctrl->ce_cmds, CMD_REQ_COMMIT); + } + } + if (on_cmds->cmd_cnt) mdss_dsi_panel_cmds_send(ctrl, on_cmds, CMD_REQ_COMMIT); + if (pinfo->cabcmode) { + if (ctrl->cabc_on_cmds.cmd_cnt) + mdss_dsi_panel_cmds_send(ctrl, &ctrl->cabc_on_cmds, CMD_REQ_COMMIT); + } + + if (!ctrl->init_last) { + if (ctrl->eyemode == true) { + if (ctrl->dispparam_cmds.cmd_cnt) + mdss_dsi_panel_cmds_send(ctrl, &ctrl->dispparam_cmds, CMD_REQ_COMMIT); + } else{ + if (ctrl->gamma_cmds.cmd_cnt) + mdss_dsi_panel_cmds_send(ctrl, &ctrl->gamma_cmds, CMD_REQ_COMMIT); + if (ctrl->ce_cmds.cmd_cnt) + mdss_dsi_panel_cmds_send(ctrl, &ctrl->ce_cmds, CMD_REQ_COMMIT); + } + } + } if (pinfo->compression_mode == COMPRESSION_DSC) mdss_dsi_panel_dsc_pps_send(ctrl, pinfo); if (ctrl->ds_registered) mdss_dba_utils_video_on(pinfo->dba_data, pinfo); + + pr_info("%s: mdss_dsi_panel_on time=%ums \n", __func__, + jiffies_to_msecs(jiffies-timeout)); + end: pr_debug("%s:-\n", __func__); return ret; @@ -790,6 +844,7 @@ static int mdss_dsi_panel_off(struct mdss_panel_data *pdata) { struct mdss_dsi_ctrl_pdata *ctrl = NULL; struct mdss_panel_info *pinfo; + unsigned long timeout = jiffies; if (pdata == NULL) { pr_err("%s: Invalid input data\n", __func__); @@ -814,6 +869,8 @@ static int mdss_dsi_panel_off(struct mdss_panel_data *pdata) mdss_dba_utils_video_off(pinfo->dba_data); mdss_dba_utils_hdcp_enable(pinfo->dba_data, false); } + pr_info("%s: mdss_dsi_panel_off time=%ums \n", __func__, + jiffies_to_msecs(jiffies-timeout)); end: pr_debug("%s:-\n", __func__); @@ -844,6 +901,97 @@ static int mdss_dsi_panel_low_power_config(struct mdss_panel_data *pdata, return 0; } +int mdss_dsi_panel_gamma(struct mdss_panel_data *pdata) +{ + struct mipi_panel_info *mipi; + struct mdss_dsi_ctrl_pdata *ctrl = NULL; + + if (pdata == NULL) { + pr_err("%s: Invalid input data\n", __func__); + return -EINVAL; + } + + ctrl = container_of(pdata, struct mdss_dsi_ctrl_pdata, + panel_data); + mipi = &pdata->panel_info.mipi; + + pr_debug("%s: ctrl=%pK ndx=%d\n", __func__, ctrl, ctrl->ndx); + + if (ctrl->gamma_cmds.cmd_cnt) + mdss_dsi_panel_cmds_send(ctrl, &ctrl->gamma_cmds, CMD_REQ_COMMIT); + + pr_debug("%s:-\n", __func__); + return 0; +} +int mdss_dsi_panel_ce(struct mdss_panel_data *pdata) +{ + struct mipi_panel_info *mipi; + struct mdss_dsi_ctrl_pdata *ctrl = NULL; + + if (pdata == NULL) { + pr_err("%s: Invalid input data\n", __func__); + return -EINVAL; + } + + ctrl = container_of(pdata, struct mdss_dsi_ctrl_pdata, + panel_data); + mipi = &pdata->panel_info.mipi; + + pr_debug("%s: ctrl=%pK ndx=%d\n", __func__, ctrl, ctrl->ndx); + + if (ctrl->ce_cmds.cmd_cnt) + mdss_dsi_panel_cmds_send(ctrl, &ctrl->ce_cmds, CMD_REQ_COMMIT); + + pr_debug("%s:-\n", __func__); + return 0; +} + +int mdss_dsi_panel_dispparam(struct mdss_panel_data *pdata) +{ + struct mipi_panel_info *mipi; + struct mdss_dsi_ctrl_pdata *ctrl = NULL; + + if (pdata == NULL) { + pr_err("%s: Invalid input data\n", __func__); + return -EINVAL; + } + + ctrl = container_of(pdata, struct mdss_dsi_ctrl_pdata, + panel_data); + mipi = &pdata->panel_info.mipi; + + pr_debug("%s: ctrl=%pK ndx=%d\n", __func__, ctrl, ctrl->ndx); + + if (ctrl->dispparam_cmds.cmd_cnt) + mdss_dsi_panel_cmds_send(ctrl, &ctrl->dispparam_cmds, CMD_REQ_COMMIT); + + pr_debug("%s:-\n", __func__); + return 0; +} + +int mdss_dsi_panel_cabc(struct mdss_panel_data *pdata) +{ + struct mipi_panel_info *mipi; + struct mdss_dsi_ctrl_pdata *ctrl = NULL; + + if (pdata == NULL) { + pr_err("%s: Invalid input data\n", __func__); + return -EINVAL; + } + + ctrl = container_of(pdata, struct mdss_dsi_ctrl_pdata, + panel_data); + mipi = &pdata->panel_info.mipi; + + pr_debug("%s: ctrl=%pK ndx=%d\n", __func__, ctrl, ctrl->ndx); + + if (ctrl->cabc_cmds.cmd_cnt) + mdss_dsi_panel_cmds_send(ctrl, &ctrl->cabc_cmds, CMD_REQ_COMMIT); + + pr_debug("%s:-\n", __func__); + return 0; +} + static void mdss_dsi_parse_trigger(struct device_node *np, char *trigger, char *trigger_key) { @@ -892,7 +1040,8 @@ static int mdss_dsi_parse_dcs_cmds(struct device_node *np, while (len >= sizeof(*dchdr)) { dchdr = (struct dsi_ctrl_hdr *)bp; dchdr->dlen = ntohs(dchdr->dlen); - if (dchdr->dlen > len) { + + if (dchdr->dlen > len || dchdr->dlen < 0) { pr_err("%s: dtsi cmd=%x error, len=%d", __func__, dchdr->dtype, dchdr->dlen); goto exit_free; @@ -1493,7 +1642,7 @@ static int mdss_dsi_parse_reset_seq(struct device_node *np, } return 0; } - +extern int panel_dead2tp; static bool mdss_dsi_cmp_panel_reg_v2(struct mdss_dsi_ctrl_pdata *ctrl) { int i, j; @@ -1507,9 +1656,18 @@ static bool mdss_dsi_cmp_panel_reg_v2(struct mdss_dsi_ctrl_pdata *ctrl) for (j = 0; j < ctrl->groups; ++j) { for (i = 0; i < len; ++i) { - if (ctrl->return_buf[i] != - ctrl->status_value[group + i]) + if (ctrl->return_buf[i] != ctrl->status_value[group + i]) { + pr_info("%s: LCD ESD check fail, return_buf[%d]=0x%02x , status_value=[%d]=0x%02x \n", __func__, + i, ctrl->return_buf[i], group + i, ctrl->status_value[group + i]); break; + } + #ifdef CONFIG_D1_ROSY + + if (panel_dead2tp) { + pr_info("%s: LCD ESD check fail, panel_dead2tp is %d\n ", __func__, panel_dead2tp); + break; + } + #endif } if (i == len) @@ -1724,7 +1882,8 @@ static void mdss_dsi_parse_esd_params(struct device_node *np, pinfo->esd_check_enabled = of_property_read_bool(np, "qcom,esd-check-enabled"); - if (!pinfo->esd_check_enabled) + + if ((!pinfo->esd_check_enabled) || (!is_Lcm_Present)) return; ctrl->status_mode = ESD_MAX; @@ -2360,6 +2519,21 @@ static int mdss_panel_parse_display_timings(struct device_node *np, return rc; } + +void mdss_dsi_parse_eye_command(struct device_node *np, struct mdss_dsi_ctrl_pdata *ctrl_pdata) +{ + int i = 0; + char cmd_key[] = "qcom,mdss-dsi-panel-eye-command01"; + int cmd_len = strlen(cmd_key); + for (i = 1; i <= ctrl_pdata->eye_cmds_num; i++) { + cmd_key[cmd_len-1] = i%10 + '0'; + cmd_key[cmd_len-2] = i/10 + '0'; + + mdss_dsi_parse_dcs_cmds(np, &ctrl_pdata->eye_cmds[i-1], + cmd_key, "qcom,mdss-dsi-panel-gamma-command-state"); + } +} + static int mdss_panel_parse_dt(struct device_node *np, struct mdss_dsi_ctrl_pdata *ctrl_pdata) { @@ -2428,6 +2602,9 @@ static int mdss_panel_parse_dt(struct device_node *np, rc = of_property_read_u32(np, "qcom,mdss-brightness-max-level", &tmp); pinfo->brightness_max = (!rc ? tmp : MDSS_MAX_BL_BRIGHTNESS); + #if defined(WT_COMPILE_FACTORY_VERSION) && defined(CONFIG_D1_ROSY) + pinfo->brightness_max = 255; + #endif rc = of_property_read_u32(np, "qcom,mdss-dsi-bl-min-level", &tmp); pinfo->bl_min = (!rc ? tmp : 0); rc = of_property_read_u32(np, "qcom,mdss-dsi-bl-max-level", &tmp); @@ -2556,9 +2733,44 @@ static int mdss_panel_parse_dt(struct device_node *np, mdss_dsi_parse_reset_seq(np, pinfo->rst_seq, &(pinfo->rst_seq_len), "qcom,mdss-dsi-reset-sequence"); + + rc = of_property_read_u32(np, "qcom,mdss-dsi-pwr-off-rst-pull-high", &tmp); + pinfo->pwr_off_rst_pull_high = (!rc ? tmp : 0); + mdss_dsi_parse_dcs_cmds(np, &ctrl_pdata->off_cmds, "qcom,mdss-dsi-off-command", "qcom,mdss-dsi-off-command-state"); + mdss_dsi_parse_dcs_cmds(np, &ctrl_pdata->warm_cmds, + "qcom,mdss-dsi-panel-warm-command", "qcom,mdss-dsi-panel-gamma-command-state"); + + mdss_dsi_parse_dcs_cmds(np, &ctrl_pdata->cool_cmds, + "qcom,mdss-dsi-panel-cool-command", "qcom,mdss-dsi-panel-gamma-command-state"); + + mdss_dsi_parse_dcs_cmds(np, &ctrl_pdata->nature_cmds, + "qcom,mdss-dsi-panel-nature-command", "qcom,mdss-dsi-panel-gamma-command-state"); + + mdss_dsi_parse_dcs_cmds(np, &ctrl_pdata->standard_cmds, + "qcom,mdss-dsi-panel-ce-std-command", "qcom,mdss-dsi-panel-ce-command-state"); + + mdss_dsi_parse_dcs_cmds(np, &ctrl_pdata->vivid_cmds, + "qcom,mdss-dsi-panel-ce-vivid-command", "qcom,mdss-dsi-panel-ce-command-state"); + + mdss_dsi_parse_dcs_cmds(np, &ctrl_pdata->bright_cmds, + "qcom,mdss-dsi-panel-ce-bright-command", "qcom,mdss-dsi-panel-ce-command-state"); + + mdss_dsi_parse_dcs_cmds(np, &ctrl_pdata->cabc_on_cmds, + "qcom,mdss-dsi-panel-cabc-on-command", "qcom,mdss-dsi-panel-cabc-command-state"); + + mdss_dsi_parse_dcs_cmds(np, &ctrl_pdata->cabc_off_cmds, + "qcom,mdss-dsi-panel-cabc-off-command", "qcom,mdss-dsi-panel-cabc-command-state"); + + rc = of_property_read_u32(np, "qcom,mdss-dsi-panel-eye-command-num", &tmp); + ctrl_pdata->eye_cmds_num = (!rc ? tmp : 0); + + mdss_dsi_parse_eye_command(np, ctrl_pdata); + + ctrl_pdata->init_last = of_property_read_bool(np, "qcom, mdss-dsi-init-last"); + rc = of_property_read_u32(np, "qcom,adjust-timer-wakeup-ms", &tmp); pinfo->adjust_timer_delay_ms = (!rc ? tmp : 0); @@ -2621,7 +2833,13 @@ int mdss_dsi_panel_init(struct device_node *node, } else { pr_info("%s: Panel Name = %s\n", __func__, panel_name); strlcpy(&pinfo->panel_name[0], panel_name, MDSS_MAX_PANEL_LEN); + /*add for hardware info*/ + strcpy(Lcm_name, panel_name); } + + if (!is_Lcm_Present) + strcpy(Lcm_name, ""); + rc = mdss_panel_parse_dt(node, ctrl_pdata); if (rc) { pr_err("%s:%d panel dt parse failed\n", __func__, __LINE__); @@ -2636,7 +2854,9 @@ int mdss_dsi_panel_init(struct device_node *node, ctrl_pdata->post_panel_on = mdss_dsi_post_panel_on; ctrl_pdata->off = mdss_dsi_panel_off; ctrl_pdata->low_power_config = mdss_dsi_panel_low_power_config; - ctrl_pdata->panel_data.set_backlight = mdss_dsi_panel_bl_ctrl; + if (is_Lcm_Present) { + ctrl_pdata->panel_data.set_backlight = mdss_dsi_panel_bl_ctrl; + } ctrl_pdata->switch_mode = mdss_dsi_panel_switch_mode; return 0; diff --git a/drivers/video/msm/mdss/mdss_dsi_status.c b/drivers/video/msm/mdss/mdss_dsi_status.c index bf545ae311f2c..5459cb1ec756f 100644 --- a/drivers/video/msm/mdss/mdss_dsi_status.c +++ b/drivers/video/msm/mdss/mdss_dsi_status.c @@ -30,7 +30,7 @@ #include "mdss_panel.h" #include "mdss_mdp.h" -#define STATUS_CHECK_INTERVAL_MS 5000 +#define STATUS_CHECK_INTERVAL_MS 2000 #define STATUS_CHECK_INTERVAL_MIN_MS 50 #define DSI_STATUS_CHECK_INIT -1 #define DSI_STATUS_CHECK_DISABLE 1 diff --git a/drivers/video/msm/mdss/mdss_fb.c b/drivers/video/msm/mdss/mdss_fb.c index fe3f1dd05bd01..d3f99836c4afa 100644 --- a/drivers/video/msm/mdss/mdss_fb.c +++ b/drivers/video/msm/mdss/mdss_fb.c @@ -3,6 +3,7 @@ * * Copyright (C) 2007 Google Incorporated * Copyright (c) 2008-2017, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. * * This software is licensed under the terms of the GNU General Public * License version 2, as published by the Free Software Foundation, and @@ -48,12 +49,16 @@ #include #include #include + +#include +#include #include "mdss_fb.h" #include "mdss_mdp_splash_logo.h" #define CREATE_TRACE_POINTS #include "mdss_debug.h" #include "mdss_smmu.h" #include "mdss_mdp.h" +#include "mdss_dsi.h" #ifdef CONFIG_FB_MSM_TRIPLE_BUFFER #define MDSS_FB_NUM 3 @@ -115,6 +120,36 @@ static int mdss_fb_send_panel_event(struct msm_fb_data_type *mfd, int event, void *arg); static void mdss_fb_set_mdp_sync_pt_threshold(struct msm_fb_data_type *mfd, int type); + +#define WAIT_RESUME_TIMEOUT 200 +static struct fb_info *prim_fbi; +static struct delayed_work prim_panel_work; +static atomic_t prim_panel_is_on; +static struct wake_lock prim_panel_wakelock; +static void prim_panel_off_delayed_work(struct work_struct *work) +{ +#ifdef CONFIG_FRAMEBUFFER_CONSOLE + console_lock(); +#endif + if (!lock_fb_info(prim_fbi)) { +#ifdef CONFIG_FRAMEBUFFER_CONSOLE + console_unlock(); +#endif + return; + } + + if (atomic_read(&prim_panel_is_on)) { + fb_blank(prim_fbi, FB_BLANK_POWERDOWN); + atomic_set(&prim_panel_is_on, false); + wake_unlock(&prim_panel_wakelock); + } + + unlock_fb_info(prim_fbi); +#ifdef CONFIG_FRAMEBUFFER_CONSOLE + console_unlock(); +#endif +} + void mdss_fb_no_update_notify_timer_cb(unsigned long data) { struct msm_fb_data_type *mfd = (struct msm_fb_data_type *)data; @@ -257,11 +292,21 @@ static int mdss_fb_notify_update(struct msm_fb_data_type *mfd, static int lcd_backlight_registered; +#define WINGTECH_MDSS_BRIGHT_TO_BL(out, v, bl_min, bl_max, min_bright, max_bright) do {\ + if (v <= ((int)min_bright*(int)bl_max-(int)bl_min*(int)max_bright)\ + /((int)bl_max - (int)bl_min)) out = 1; \ + else \ + out = (((int)bl_max - (int)bl_min)*v + \ + ((int)max_bright*(int)bl_min - (int)min_bright*(int)bl_max)) \ + /((int)max_bright - (int)min_bright); \ + } while (0) static void mdss_fb_set_bl_brightness(struct led_classdev *led_cdev, enum led_brightness value) { struct msm_fb_data_type *mfd = dev_get_drvdata(led_cdev->dev->parent); - int bl_lvl; + int bl_lvl, brightness_min; + + brightness_min = 10; if (mfd->boot_notification_led) { led_trigger_event(mfd->boot_notification_led, 0); @@ -271,13 +316,16 @@ static void mdss_fb_set_bl_brightness(struct led_classdev *led_cdev, if (value > mfd->panel_info->brightness_max) value = mfd->panel_info->brightness_max; - /* This maps android backlight level 0 to 255 into - driver backlight level 0 to bl_max with rounding */ - MDSS_BRIGHT_TO_BL(bl_lvl, value, mfd->panel_info->bl_max, - mfd->panel_info->brightness_max); + if (mfd->panel_info->bl_min == 1) + mfd->panel_info->bl_min = 5; + WINGTECH_MDSS_BRIGHT_TO_BL(bl_lvl, value, mfd->panel_info->bl_min, mfd->panel_info->bl_max, + brightness_min, mfd->panel_info->brightness_max); + if (bl_lvl && !value) + bl_lvl = 0; if (!bl_lvl && value) bl_lvl = 1; + pr_debug("bl_lvl is %d, value is %d\n", bl_lvl, value); if (!IS_CALIB_MODE_BL(mfd) && (!mfd->ext_bl_ctrl || !value || !mfd->bl_level)) { @@ -836,6 +884,7 @@ static void mdss_fb_shutdown(struct platform_device *pdev) struct msm_fb_data_type *mfd = platform_get_drvdata(pdev); mfd->shutdown_pending = true; + pr_err("mdss_fb_shutdown, shutdown_pending = true\n"); /* wake up threads waiting on idle or kickoff queues */ wake_up_all(&mfd->idle_wait_q); @@ -1267,6 +1316,12 @@ static int mdss_fb_remove(struct platform_device *pdev) if (!mfd) return -ENODEV; + if (mfd->panel_info && mfd->panel_info->is_prim_panel) { + atomic_set(&prim_panel_is_on, false); + cancel_delayed_work_sync(&prim_panel_work); + wake_lock_destroy(&prim_panel_wakelock); + } + mdss_fb_remove_sysfs(mfd); pm_runtime_disable(mfd->fbi->dev); @@ -1442,6 +1497,31 @@ static int mdss_fb_resume(struct platform_device *pdev) #endif #ifdef CONFIG_PM_SLEEP + +static int mdss_fb_pm_prepare(struct device *dev) +{ + struct msm_fb_data_type *mfd = dev_get_drvdata(dev); + + if (!mfd) + return -ENODEV; + if (mfd->panel_info->is_prim_panel) + atomic_inc(&mfd->resume_pending); + return 0; +} + +static void mdss_fb_pm_complete(struct device *dev) +{ + struct msm_fb_data_type *mfd = dev_get_drvdata(dev); + + if (!mfd) + return; + if (mfd->panel_info->is_prim_panel) { + atomic_set(&mfd->resume_pending, 0); + wake_up_all(&mfd->resume_wait_q); + } + return; +} + static int mdss_fb_pm_suspend(struct device *dev) { struct msm_fb_data_type *mfd = dev_get_drvdata(dev); @@ -1476,6 +1556,9 @@ static int mdss_fb_pm_resume(struct device *dev) #endif static const struct dev_pm_ops mdss_fb_pm_ops = { + + .prepare = mdss_fb_pm_prepare, + .complete = mdss_fb_pm_complete, SET_SYSTEM_SLEEP_PM_OPS(mdss_fb_pm_suspend, mdss_fb_pm_resume) }; @@ -1607,6 +1690,7 @@ void mdss_fb_update_backlight(struct msm_fb_data_type *mfd) pdata->set_backlight(pdata, temp); mfd->bl_level_scaled = mfd->unset_bl_level; mfd->allow_bl_update = true; + pr_info("LCD backlight level=%u \n", temp); } } mutex_unlock(&mfd->bl_lock); @@ -1917,6 +2001,14 @@ static int mdss_fb_blank(int blank_mode, struct fb_info *info) struct mdss_panel_data *pdata; struct msm_fb_data_type *mfd = (struct msm_fb_data_type *)info->par; + if ((info == prim_fbi) && (blank_mode == FB_BLANK_UNBLANK) && + atomic_read(&prim_panel_is_on)) { + atomic_set(&prim_panel_is_on, false); + wake_unlock(&prim_panel_wakelock); + cancel_delayed_work_sync(&prim_panel_work); + return 0; + } + ret = mdss_fb_pan_idle(mfd); if (ret) { pr_warn("mdss_fb_pan_idle for fb%d failed. ret=%d\n", @@ -2540,6 +2632,7 @@ static int mdss_fb_register(struct msm_fb_data_type *mfd) atomic_set(&mfd->commits_pending, 0); atomic_set(&mfd->ioctl_ref_cnt, 0); atomic_set(&mfd->kickoff_pending, 0); + atomic_set(&mfd->resume_pending, 0); init_timer(&mfd->no_update.timer); mfd->no_update.timer.function = mdss_fb_no_update_notify_timer_cb; @@ -2555,6 +2648,7 @@ static int mdss_fb_register(struct msm_fb_data_type *mfd) init_waitqueue_head(&mfd->idle_wait_q); init_waitqueue_head(&mfd->ioctl_q); init_waitqueue_head(&mfd->kickoff_wait_q); + init_waitqueue_head(&mfd->resume_wait_q); ret = fb_alloc_cmap(&fbi->cmap, 256, 0); if (ret) @@ -2573,6 +2667,14 @@ static int mdss_fb_register(struct msm_fb_data_type *mfd) pr_info("FrameBuffer[%d] %dx%d registered successfully!\n", mfd->index, fbi->var.xres, fbi->var.yres); + if (panel_info->is_prim_panel) { + prim_fbi = fbi; + atomic_set(&prim_panel_is_on, false); + INIT_DELAYED_WORK(&prim_panel_work, prim_panel_off_delayed_work); + wake_lock_init(&prim_panel_wakelock, WAKE_LOCK_SUSPEND, "prim_panel_wakelock"); + } + + return 0; } @@ -2983,6 +3085,7 @@ static int __mdss_fb_sync_buf_done_callback(struct notifier_block *p, static int mdss_fb_pan_idle(struct msm_fb_data_type *mfd) { int ret = 0; + static int shutdown_pending_count; ret = wait_event_timeout(mfd->idle_wait_q, (!atomic_read(&mfd->commits_pending) || @@ -2996,8 +3099,14 @@ static int mdss_fb_pan_idle(struct msm_fb_data_type *mfd) "dbg_bus", "vbif_dbg_bus"); ret = -ETIMEDOUT; } else if (mfd->shutdown_pending) { - pr_debug("Shutdown signalled\n"); - ret = -ESHUTDOWN; + if (shutdown_pending_count++ < 10) { + pr_debug("Shutdown signalled\n"); + ret = -ESHUTDOWN; + } else { + pr_debug("work around for shutdown fail\n"); + shutdown_pending_count = 0; + ret = 0; + } } else { ret = 0; } @@ -4602,6 +4711,10 @@ int mdss_fb_do_ioctl(struct fb_info *info, unsigned int cmd, struct mdp_buf_sync buf_sync; unsigned int dsi_mode = 0; struct mdss_panel_data *pdata = NULL; + unsigned int Color_mode = 0; + unsigned int CE_mode = 0; + unsigned int Eye_mode = 0; + unsigned int CABC_mode = 0; if (!info || !info->par) return -EINVAL; @@ -4680,6 +4793,36 @@ int mdss_fb_do_ioctl(struct fb_info *info, unsigned int cmd, ret = mdss_fb_async_position_update_ioctl(info, argp); break; + case MSMFB_ENHANCE_SET_GAMMA: + if (copy_from_user(&Color_mode, argp, sizeof(Color_mode))) { + pr_err("%s: MSMFB_ENHANCE_SET_GAMMA ioctl failed\n", __func__); + goto exit; + } + ret = mdss_panel_set_gamma(pdata, Color_mode); + break; + + case MSMFB_ENHANCE_SET_CE: + if (copy_from_user(&CE_mode, argp, sizeof(CE_mode))) { + pr_err("%s: MSMFB_ENHANCE_SET_CE ioctl failed\n", __func__); + goto exit; + } + ret = mdss_panel_set_ce(pdata, CE_mode); + break; + case MSMFB_ENHANCE_SET_EYE: + if (copy_from_user(&Eye_mode, argp, sizeof(Eye_mode))) { + pr_err("%s: MSMFB_ENHANCE_SET_EYE ioctl failed\n", __func__); + goto exit; + } + ret = mdss_panel_set_dispparam(pdata, Eye_mode); + break; + case MSMFB_SET_CABC: + if (copy_from_user(&CABC_mode, argp, sizeof(CABC_mode))) { + pr_err("%s: MSMFB_SET_CABC ioctl failed\n", __func__); + goto exit; + } + ret = mdss_panel_set_cabc(pdata, CABC_mode); + pdata->panel_info.cabcmode = CABC_mode; + break; default: if (mfd->mdp.ioctl_handler) ret = mfd->mdp.ioctl_handler(mfd, cmd, argp); @@ -4878,6 +5021,8 @@ int mdss_fb_suspres_panel(struct device *dev, void *data) * from the panel. The function sends the PANEL_ALIVE=0 status to HAL * layer. */ +int panel_dead2tp = 0; +EXPORT_SYMBOL(panel_dead2tp); void mdss_fb_report_panel_dead(struct msm_fb_data_type *mfd) { char *envp[2] = {"PANEL_ALIVE=0", NULL}; @@ -4889,7 +5034,63 @@ void mdss_fb_report_panel_dead(struct msm_fb_data_type *mfd) } pdata->panel_info.panel_dead = true; + panel_dead2tp = pdata->panel_info.panel_dead; kobject_uevent_env(&mfd->fbi->dev->kobj, KOBJ_CHANGE, envp); pr_err("Panel has gone bad, sending uevent - %s\n", envp[0]); } + +/* + * mdss_prim_panel_fb_unblank() - Unblank primary panel FB + * @timeout : >0 blank primary panel FB after timeout (ms) + */ +int mdss_prim_panel_fb_unblank(int timeout) +{ + int ret = 0; + struct msm_fb_data_type *mfd = NULL; + + if (prim_fbi) { + mfd = (struct msm_fb_data_type *)prim_fbi->par; + ret = wait_event_timeout(mfd->resume_wait_q, + !atomic_read(&mfd->resume_pending), + msecs_to_jiffies(WAIT_RESUME_TIMEOUT)); + if (!ret) { + pr_info("Primary fb resume timeout\n"); + return -ETIMEDOUT; + } +#ifdef CONFIG_FRAMEBUFFER_CONSOLE + console_lock(); +#endif + if (!lock_fb_info(prim_fbi)) { +#ifdef CONFIG_FRAMEBUFFER_CONSOLE + console_unlock(); +#endif + return -ENODEV; + } + if (prim_fbi->blank == FB_BLANK_UNBLANK) { + unlock_fb_info(prim_fbi); +#ifdef CONFIG_FRAMEBUFFER_CONSOLE + console_unlock(); +#endif + return 0; + } + wake_lock(&prim_panel_wakelock); + ret = fb_blank(prim_fbi, FB_BLANK_UNBLANK); + if (!ret) { + atomic_set(&prim_panel_is_on, true); + if (timeout > 0) + schedule_delayed_work(&prim_panel_work, msecs_to_jiffies(timeout)); + else + wake_unlock(&prim_panel_wakelock); + } else + wake_unlock(&prim_panel_wakelock); + unlock_fb_info(prim_fbi); +#ifdef CONFIG_FRAMEBUFFER_CONSOLE + console_unlock(); +#endif + return ret; + } + + pr_err("primary panel is not existed\n"); + return -EINVAL; +} diff --git a/drivers/video/msm/mdss/mdss_fb.h b/drivers/video/msm/mdss/mdss_fb.h index 56997e40d2443..4f5c6e37817aa 100644 --- a/drivers/video/msm/mdss/mdss_fb.h +++ b/drivers/video/msm/mdss/mdss_fb.h @@ -1,4 +1,5 @@ /* Copyright (c) 2008-2016, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -322,6 +323,9 @@ struct msm_fb_data_type { struct task_struct *disp_thread; atomic_t commits_pending; atomic_t kickoff_pending; + + atomic_t resume_pending; + wait_queue_head_t resume_wait_q; wait_queue_head_t commit_wait_q; wait_queue_head_t idle_wait_q; wait_queue_head_t kickoff_wait_q; diff --git a/drivers/video/msm/mdss/mdss_mdp_overlay.c b/drivers/video/msm/mdss/mdss_mdp_overlay.c index 2a163e7ecddb2..3c9da0bc13f60 100644 --- a/drivers/video/msm/mdss/mdss_mdp_overlay.c +++ b/drivers/video/msm/mdss/mdss_mdp_overlay.c @@ -2132,6 +2132,7 @@ int mdss_mdp_overlay_kickoff(struct msm_fb_data_type *mfd, commit_cb.data = mfd; ret = mdss_mdp_display_commit(mdp5_data->ctl, NULL, &commit_cb); + ctl->panel_data->panel_info.kickoff_count++; ATRACE_END("display_commit"); } diff --git a/drivers/video/msm/mdss/mdss_panel.h b/drivers/video/msm/mdss/mdss_panel.h index 38b0fc222227e..fa32966044704 100644 --- a/drivers/video/msm/mdss/mdss_panel.h +++ b/drivers/video/msm/mdss/mdss_panel.h @@ -620,11 +620,13 @@ struct mdss_panel_info { u32 out_format; u32 rst_seq[MDSS_DSI_RST_SEQ_LEN]; u32 rst_seq_len; + u32 pwr_off_rst_pull_high; u32 vic; /* video identification code */ struct mdss_rect roi; int pwm_pmic_gpio; int pwm_lpg_chan; int pwm_period; + unsigned int cabcmode; bool dynamic_fps; bool ulps_feature_enabled; bool ulps_suspend_enabled; @@ -731,6 +733,8 @@ struct mdss_panel_info { /* debugfs structure for the panel */ struct mdss_panel_debugfs_info *debugfs_info; + u64 kickoff_count; + u64 panel_active; /* HDR properties of display panel*/ struct mdss_panel_hdr_properties hdr_properties; diff --git a/drivers/video/msm/mdss/mdss_rotator.c b/drivers/video/msm/mdss/mdss_rotator.c index 5dbedc42eb43b..c6be47c555320 100644 --- a/drivers/video/msm/mdss/mdss_rotator.c +++ b/drivers/video/msm/mdss/mdss_rotator.c @@ -1126,6 +1126,7 @@ static void mdss_rotator_release_from_work_distribution( bool free_perf = false; u32 wb_idx = entry->queue->hw->wb_id; + mutex_lock(&mgr->lock); mutex_lock(&entry->perf->work_dis_lock); if (entry->perf->work_distribution[wb_idx]) entry->perf->work_distribution[wb_idx]--; @@ -1149,6 +1150,7 @@ static void mdss_rotator_release_from_work_distribution( mdss_rotator_clk_ctrl(mgr, false); entry->perf = NULL; } + mutex_unlock(&mgr->lock); } } @@ -2045,7 +2047,6 @@ static int mdss_rotator_close_session(struct mdss_rot_mgr *mgr, list_del_init(&perf->list); mutex_unlock(&perf->work_dis_lock); mutex_unlock(&private->perf_lock); - mutex_unlock(&mgr->lock); if (offload_release_work) goto done; @@ -2058,6 +2059,7 @@ static int mdss_rotator_close_session(struct mdss_rot_mgr *mgr, done: pr_debug("Closed session id:%u", id); ATRACE_END(__func__); + mutex_unlock(&mgr->lock); return 0; } diff --git a/fs/attr.c b/fs/attr.c index 6530ced19697d..ebb3ee561c1d1 100644 --- a/fs/attr.c +++ b/fs/attr.c @@ -187,7 +187,7 @@ EXPORT_SYMBOL(setattr_copy); * the file open for write, as there can be no conflicting delegation in * that case. */ -int notify_change(struct dentry * dentry, struct iattr * attr, struct inode **delegated_inode) +int notify_change2(struct vfsmount *mnt, struct dentry *dentry, struct iattr *attr, struct inode **delegated_inode) { struct inode *inode = dentry->d_inode; umode_t mode = inode->i_mode; @@ -262,7 +262,9 @@ int notify_change(struct dentry * dentry, struct iattr * attr, struct inode **de if (error) return error; - if (inode->i_op->setattr) + if (mnt && inode->i_op->setattr2) + error = inode->i_op->setattr2(mnt, dentry, attr); + else if (inode->i_op->setattr) error = inode->i_op->setattr(dentry, attr); else error = simple_setattr(dentry, attr); @@ -275,4 +277,10 @@ int notify_change(struct dentry * dentry, struct iattr * attr, struct inode **de return error; } +EXPORT_SYMBOL(notify_change2); + +int notify_change(struct dentry *dentry, struct iattr *attr, struct inode **delegated_inode) +{ + return notify_change2(NULL, dentry, attr, delegated_inode); +} EXPORT_SYMBOL(notify_change); diff --git a/fs/coredump.c b/fs/coredump.c index 7eb6181184ea0..b4b521aa7b804 100644 --- a/fs/coredump.c +++ b/fs/coredump.c @@ -707,7 +707,7 @@ void do_coredump(const siginfo_t *siginfo) goto close_fail; if (!(cprm.file->f_mode & FMODE_CAN_WRITE)) goto close_fail; - if (do_truncate(cprm.file->f_path.dentry, 0, 0, cprm.file)) + if (do_truncate2(cprm.file->f_path.mnt, cprm.file->f_path.dentry, 0, 0, cprm.file)) goto close_fail; } diff --git a/fs/ecryptfs/keystore.c b/fs/ecryptfs/keystore.c index 8dc0492ff81c7..5edc638165ae4 100644 --- a/fs/ecryptfs/keystore.c +++ b/fs/ecryptfs/keystore.c @@ -1745,7 +1745,7 @@ decrypt_passphrase_encrypted_session_key(struct ecryptfs_auth_tok *auth_tok, mutex_lock(tfm_mutex); rc = crypto_blkcipher_setkey( desc.tfm, auth_tok->token.password.session_key_encryption_key, - auth_tok->token.password.session_key_encryption_key_bytes); + ecryptfs_get_key_size_to_store_key(crypt_stat)); if (unlikely(rc < 0)) { mutex_unlock(tfm_mutex); printk(KERN_ERR "Error setting key for crypto context\n"); @@ -2294,12 +2294,11 @@ write_tag_3_packet(char *dest, size_t *remaining_bytes, if (auth_tok->token.password.flags & ECRYPTFS_SESSION_KEY_ENCRYPTION_KEY_SET) { ecryptfs_printk(KERN_DEBUG, "Using previously generated " - "session key encryption key of size [%d]\n", - auth_tok->token.password. - session_key_encryption_key_bytes); + "session key encryption key of size [%zd]\n", + ecryptfs_get_key_size_to_store_key(crypt_stat)); memcpy(session_key_encryption_key, auth_tok->token.password.session_key_encryption_key, - auth_tok->token.password.session_key_encryption_key_bytes); + ecryptfs_get_key_size_to_store_key(crypt_stat)); ecryptfs_printk(KERN_DEBUG, "Cached session key encryption key:\n"); if (ecryptfs_verbosity > 0) @@ -2332,7 +2331,7 @@ write_tag_3_packet(char *dest, size_t *remaining_bytes, } mutex_lock(tfm_mutex); rc = crypto_blkcipher_setkey(desc.tfm, session_key_encryption_key, - auth_tok->token.password.session_key_encryption_key_bytes); + ecryptfs_get_key_size_to_store_key(crypt_stat)); if (rc < 0) { mutex_unlock(tfm_mutex); ecryptfs_printk(KERN_ERR, "Error setting key for crypto " diff --git a/fs/exec.c b/fs/exec.c index b7a5f46181b0f..b079500cb496b 100644 --- a/fs/exec.c +++ b/fs/exec.c @@ -1092,7 +1092,7 @@ EXPORT_SYMBOL(flush_old_exec); void would_dump(struct linux_binprm *bprm, struct file *file) { - if (inode_permission(file_inode(file), MAY_READ) < 0) + if (inode_permission2(file->f_path.mnt, file_inode(file), MAY_READ) < 0) bprm->interp_flags |= BINPRM_FLAGS_ENFORCE_NONDUMP; } EXPORT_SYMBOL(would_dump); diff --git a/fs/inode.c b/fs/inode.c index 56d1d2b4bf317..da55347c44a28 100644 --- a/fs/inode.c +++ b/fs/inode.c @@ -1598,7 +1598,7 @@ int should_remove_suid(struct dentry *dentry) } EXPORT_SYMBOL(should_remove_suid); -static int __remove_suid(struct dentry *dentry, int kill) +static int __remove_suid(struct vfsmount *mnt, struct dentry *dentry, int kill) { struct iattr newattrs; @@ -1607,7 +1607,7 @@ static int __remove_suid(struct dentry *dentry, int kill) * Note we call this on write, so notify_change will not * encounter any conflicting delegations: */ - return notify_change(dentry, &newattrs, NULL); + return notify_change2(mnt, dentry, &newattrs, NULL); } int file_remove_suid(struct file *file) @@ -1630,7 +1630,7 @@ int file_remove_suid(struct file *file) if (killpriv) error = security_inode_killpriv(dentry); if (!error && killsuid) - error = __remove_suid(dentry, killsuid); + error = __remove_suid(file->f_path.mnt, dentry, killsuid); if (!error) inode_has_no_xattr(inode); diff --git a/fs/internal.h b/fs/internal.h index ff683fcf3e16b..7644ead97418c 100644 --- a/fs/internal.h +++ b/fs/internal.h @@ -83,9 +83,11 @@ extern struct file *get_empty_filp(void); * super.c */ extern int do_remount_sb(struct super_block *, int, void *, int); +extern int do_remount_sb2(struct vfsmount *, struct super_block *, int, + void *, int); extern bool grab_super_passive(struct super_block *sb); extern struct dentry *mount_fs(struct file_system_type *, - int, const char *, void *); + int, const char *, struct vfsmount *, void *); extern struct super_block *user_get_super(dev_t); /* diff --git a/fs/namei.c b/fs/namei.c index 46e02f4c630a2..5ec9ccc4f7ff1 100644 --- a/fs/namei.c +++ b/fs/namei.c @@ -368,9 +368,11 @@ EXPORT_SYMBOL(generic_permission); * flag in inode->i_opflags, that says "this has not special * permission function, use the fast case". */ -static inline int do_inode_permission(struct inode *inode, int mask) +static inline int do_inode_permission(struct vfsmount *mnt, struct inode *inode, int mask) { if (unlikely(!(inode->i_opflags & IOP_FASTPERM))) { + if (likely(mnt && inode->i_op->permission2)) + return inode->i_op->permission2(mnt, inode, mask); if (likely(inode->i_op->permission)) return inode->i_op->permission(inode, mask); @@ -394,7 +396,7 @@ static inline int do_inode_permission(struct inode *inode, int mask) * This does not check for a read-only file system. You probably want * inode_permission(). */ -int __inode_permission(struct inode *inode, int mask) +int __inode_permission2(struct vfsmount *mnt, struct inode *inode, int mask) { int retval; @@ -406,7 +408,7 @@ int __inode_permission(struct inode *inode, int mask) return -EACCES; } - retval = do_inode_permission(inode, mask); + retval = do_inode_permission(mnt, inode, mask); if (retval) return retval; @@ -414,7 +416,14 @@ int __inode_permission(struct inode *inode, int mask) if (retval) return retval; - return security_inode_permission(inode, mask); + retval = security_inode_permission(inode, mask); + return retval; +} +EXPORT_SYMBOL(__inode_permission2); + +int __inode_permission(struct inode *inode, int mask) +{ + return __inode_permission2(NULL, inode, mask); } EXPORT_SYMBOL(__inode_permission); @@ -450,14 +459,20 @@ static int sb_permission(struct super_block *sb, struct inode *inode, int mask) * * When checking for MAY_APPEND, MAY_WRITE must also be set in @mask. */ -int inode_permission(struct inode *inode, int mask) +int inode_permission2(struct vfsmount *mnt, struct inode *inode, int mask) { int retval; retval = sb_permission(inode->i_sb, inode, mask); if (retval) return retval; - return __inode_permission(inode, mask); + return __inode_permission2(mnt, inode, mask); +} +EXPORT_SYMBOL(inode_permission2); + +int inode_permission(struct inode *inode, int mask) +{ + return inode_permission2(NULL, inode, mask); } EXPORT_SYMBOL(inode_permission); @@ -1512,13 +1527,13 @@ static int lookup_slow(struct nameidata *nd, struct path *path) static inline int may_lookup(struct nameidata *nd) { if (nd->flags & LOOKUP_RCU) { - int err = inode_permission(nd->inode, MAY_EXEC|MAY_NOT_BLOCK); + int err = inode_permission2(nd->path.mnt, nd->inode, MAY_EXEC|MAY_NOT_BLOCK); if (err != -ECHILD) return err; if (unlazy_walk(nd, NULL)) return -ECHILD; } - return inode_permission(nd->inode, MAY_EXEC); + return inode_permission2(nd->path.mnt, nd->inode, MAY_EXEC); } static inline int handle_dots(struct nameidata *nd, int type) @@ -1856,11 +1871,12 @@ static int path_init(int dfd, const char *name, unsigned int flags, nd->depth = 0; if (flags & LOOKUP_ROOT) { struct dentry *root = nd->root.dentry; + struct vfsmount *mnt = nd->root.mnt; struct inode *inode = root->d_inode; if (*name) { if (!d_can_lookup(root)) return -ENOTDIR; - retval = inode_permission(inode, MAY_EXEC); + retval = inode_permission2(mnt, inode, MAY_EXEC); if (retval) return retval; } @@ -2114,6 +2130,7 @@ static struct dentry *lookup_hash(struct nameidata *nd) /** * lookup_one_len - filesystem helper to lookup single pathname component * @name: pathname component to lookup + * @mnt: mount we are looking up on * @base: base directory to lookup from * @len: maximum length @len should be interpreted to * @@ -2122,7 +2139,7 @@ static struct dentry *lookup_hash(struct nameidata *nd) * nameidata argument is passed to the filesystem methods and a filesystem * using this helper needs to be prepared for that. */ -struct dentry *lookup_one_len(const char *name, struct dentry *base, int len) +struct dentry *lookup_one_len2(const char *name, struct vfsmount *mnt, struct dentry *base, int len) { struct qstr this; unsigned int c; @@ -2156,12 +2173,18 @@ struct dentry *lookup_one_len(const char *name, struct dentry *base, int len) return ERR_PTR(err); } - err = inode_permission(base->d_inode, MAY_EXEC); + err = inode_permission2(mnt, base->d_inode, MAY_EXEC); if (err) return ERR_PTR(err); return __lookup_hash(&this, base, 0); } +EXPORT_SYMBOL(lookup_one_len2); + +struct dentry *lookup_one_len(const char *name, struct dentry *base, int len) +{ + return lookup_one_len2(name, NULL, base, len); +} EXPORT_SYMBOL(lookup_one_len); int user_path_at_empty(int dfd, const char __user *name, unsigned flags, @@ -2441,7 +2464,7 @@ EXPORT_SYMBOL(__check_sticky); * 10. We don't allow removal of NFS sillyrenamed files; it's handled by * nfs_async_unlink(). */ -static int may_delete(struct inode *dir, struct dentry *victim, bool isdir) +static int may_delete(struct vfsmount *mnt, struct inode *dir, struct dentry *victim, bool isdir) { struct inode *inode = victim->d_inode; int error; @@ -2453,7 +2476,7 @@ static int may_delete(struct inode *dir, struct dentry *victim, bool isdir) BUG_ON(victim->d_parent->d_inode != dir); audit_inode_child(dir, victim, AUDIT_TYPE_CHILD_DELETE); - error = inode_permission(dir, MAY_WRITE | MAY_EXEC); + error = inode_permission2(mnt, dir, MAY_WRITE | MAY_EXEC); if (error) return error; if (IS_APPEND(dir)) @@ -2484,14 +2507,14 @@ static int may_delete(struct inode *dir, struct dentry *victim, bool isdir) * 3. We should have write and exec permissions on dir * 4. We can't do it if dir is immutable (done in permission()) */ -static inline int may_create(struct inode *dir, struct dentry *child) +static inline int may_create(struct vfsmount *mnt, struct inode *dir, struct dentry *child) { audit_inode_child(dir, child, AUDIT_TYPE_CHILD_CREATE); if (child->d_inode) return -EEXIST; if (IS_DEADDIR(dir)) return -ENOENT; - return inode_permission(dir, MAY_WRITE | MAY_EXEC); + return inode_permission2(mnt, dir, MAY_WRITE | MAY_EXEC); } /* @@ -2501,7 +2524,7 @@ struct dentry *lock_rename(struct dentry *p1, struct dentry *p2) { struct dentry *p; - if (p1 == p2) { + if (p1 == p2 || p1->d_inode == p2->d_inode) { mutex_lock_nested(&p1->d_inode->i_mutex, I_MUTEX_PARENT); return NULL; } @@ -2538,10 +2561,10 @@ void unlock_rename(struct dentry *p1, struct dentry *p2) } EXPORT_SYMBOL(unlock_rename); -int vfs_create(struct inode *dir, struct dentry *dentry, umode_t mode, - bool want_excl) +int vfs_create2(struct vfsmount *mnt, struct inode *dir, struct dentry *dentry, + umode_t mode, bool want_excl) { - int error = may_create(dir, dentry); + int error = may_create(mnt, dir, dentry); if (error) return error; @@ -2563,11 +2586,19 @@ int vfs_create(struct inode *dir, struct dentry *dentry, umode_t mode, return error; } +EXPORT_SYMBOL(vfs_create2); + +int vfs_create(struct inode *dir, struct dentry *dentry, umode_t mode, + bool want_excl) +{ + return vfs_create2(NULL, dir, dentry, mode, want_excl); +} EXPORT_SYMBOL(vfs_create); static int may_open(struct path *path, int acc_mode, int flag) { struct dentry *dentry = path->dentry; + struct vfsmount *mnt = path->mnt; struct inode *inode = dentry->d_inode; int error; @@ -2596,7 +2627,7 @@ static int may_open(struct path *path, int acc_mode, int flag) break; } - error = inode_permission(inode, acc_mode); + error = inode_permission2(mnt, inode, acc_mode); if (error) return error; @@ -2631,7 +2662,7 @@ static int handle_truncate(struct file *filp) if (!error) error = security_path_truncate(path); if (!error) { - error = do_truncate(path->dentry, 0, + error = do_truncate2(path->mnt, path->dentry, 0, ATTR_MTIME|ATTR_CTIME|ATTR_OPEN, filp); } @@ -2652,7 +2683,7 @@ static int may_o_create(struct path *dir, struct dentry *dentry, umode_t mode) if (error) return error; - error = inode_permission(dir->dentry->d_inode, MAY_WRITE | MAY_EXEC); + error = inode_permission2(dir->mnt, dir->dentry->d_inode, MAY_WRITE | MAY_EXEC); if (error) return error; @@ -2850,6 +2881,7 @@ static int lookup_open(struct nameidata *nd, struct path *path, bool got_write, int *opened) { struct dentry *dir = nd->path.dentry; + struct vfsmount *mnt = nd->path.mnt; struct inode *dir_inode = dir->d_inode; struct dentry *dentry; int error; @@ -2897,7 +2929,7 @@ static int lookup_open(struct nameidata *nd, struct path *path, error = security_path_mknod(&nd->path, dentry, mode, 0); if (error) goto out_dput; - error = vfs_create(dir->d_inode, dentry, mode, + error = vfs_create2(mnt, dir->d_inode, dentry, mode, nd->flags & LOOKUP_EXCL); if (error) goto out_dput; @@ -3169,7 +3201,7 @@ static int do_tmpfile(int dfd, struct filename *pathname, if (unlikely(error)) goto out; /* we want directory to be writable */ - error = inode_permission(nd->inode, MAY_WRITE | MAY_EXEC); + error = inode_permission2(nd->path.mnt, nd->inode, MAY_WRITE | MAY_EXEC); if (error) goto out2; dentry = nd->path.dentry; @@ -3419,9 +3451,9 @@ struct dentry *user_path_create(int dfd, const char __user *pathname, } EXPORT_SYMBOL(user_path_create); -int vfs_mknod(struct inode *dir, struct dentry *dentry, umode_t mode, dev_t dev) +int vfs_mknod2(struct vfsmount *mnt, struct inode *dir, struct dentry *dentry, umode_t mode, dev_t dev) { - int error = may_create(dir, dentry); + int error = may_create(mnt, dir, dentry); if (error) return error; @@ -3453,6 +3485,12 @@ int vfs_mknod(struct inode *dir, struct dentry *dentry, umode_t mode, dev_t dev) return error; } +EXPORT_SYMBOL(vfs_mknod2); + +int vfs_mknod(struct inode *dir, struct dentry *dentry, umode_t mode, dev_t dev) +{ + return vfs_mknod2(NULL, dir, dentry, mode, dev); +} EXPORT_SYMBOL(vfs_mknod); static int may_mknod(umode_t mode) @@ -3495,10 +3533,10 @@ SYSCALL_DEFINE4(mknodat, int, dfd, const char __user *, filename, umode_t, mode, goto out; switch (mode & S_IFMT) { case 0: case S_IFREG: - error = vfs_create(path.dentry->d_inode,dentry,mode,true); + error = vfs_create2(path.mnt, path.dentry->d_inode, dentry, mode, true); break; case S_IFCHR: case S_IFBLK: - error = vfs_mknod(path.dentry->d_inode,dentry,mode, + error = vfs_mknod2(path.mnt, path.dentry->d_inode, dentry, mode, new_decode_dev(dev)); break; case S_IFIFO: case S_IFSOCK: @@ -3519,9 +3557,9 @@ SYSCALL_DEFINE3(mknod, const char __user *, filename, umode_t, mode, unsigned, d return sys_mknodat(AT_FDCWD, filename, mode, dev); } -int vfs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode) +int vfs_mkdir2(struct vfsmount *mnt, struct inode *dir, struct dentry *dentry, umode_t mode) { - int error = may_create(dir, dentry); + int error = may_create(mnt, dir, dentry); unsigned max_links = dir->i_sb->s_max_links; if (error) @@ -3543,6 +3581,12 @@ int vfs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode) fsnotify_mkdir(dir, dentry); return error; } +EXPORT_SYMBOL(vfs_mkdir2); + +int vfs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode) +{ + return vfs_mkdir2(NULL, dir, dentry, mode); +} EXPORT_SYMBOL(vfs_mkdir); SYSCALL_DEFINE3(mkdirat, int, dfd, const char __user *, pathname, umode_t, mode) @@ -3561,7 +3605,7 @@ SYSCALL_DEFINE3(mkdirat, int, dfd, const char __user *, pathname, umode_t, mode) mode &= ~current_umask(); error = security_path_mkdir(&path, dentry, mode); if (!error) - error = vfs_mkdir(path.dentry->d_inode, dentry, mode); + error = vfs_mkdir2(path.mnt, path.dentry->d_inode, dentry, mode); done_path_create(&path, dentry); if (retry_estale(error, lookup_flags)) { lookup_flags |= LOOKUP_REVAL; @@ -3600,9 +3644,9 @@ void dentry_unhash(struct dentry *dentry) } EXPORT_SYMBOL(dentry_unhash); -int vfs_rmdir(struct inode *dir, struct dentry *dentry) +int vfs_rmdir2(struct vfsmount *mnt, struct inode *dir, struct dentry *dentry) { - int error = may_delete(dir, dentry, 1); + int error = may_delete(mnt, dir, dentry, 1); if (error) return error; @@ -3637,6 +3681,10 @@ int vfs_rmdir(struct inode *dir, struct dentry *dentry) d_delete(dentry); return error; } +int vfs_rmdir(struct inode *dir, struct dentry *dentry) +{ + return vfs_rmdir2(NULL, dir, dentry); +} EXPORT_SYMBOL(vfs_rmdir); static long do_rmdir(int dfd, const char __user *pathname) @@ -3680,7 +3728,7 @@ static long do_rmdir(int dfd, const char __user *pathname) error = security_path_rmdir(&nd.path, dentry); if (error) goto exit3; - error = vfs_rmdir(nd.path.dentry->d_inode, dentry); + error = vfs_rmdir2(nd.path.mnt, nd.path.dentry->d_inode, dentry); exit3: dput(dentry); exit2: @@ -3719,10 +3767,10 @@ SYSCALL_DEFINE1(rmdir, const char __user *, pathname) * be appropriate for callers that expect the underlying filesystem not * to be NFS exported. */ -int vfs_unlink(struct inode *dir, struct dentry *dentry, struct inode **delegated_inode) +int vfs_unlink2(struct vfsmount *mnt, struct inode *dir, struct dentry *dentry, struct inode **delegated_inode) { struct inode *target = dentry->d_inode; - int error = may_delete(dir, dentry, 0); + int error = may_delete(mnt, dir, dentry, 0); if (error) return error; @@ -3757,6 +3805,12 @@ int vfs_unlink(struct inode *dir, struct dentry *dentry, struct inode **delegate return error; } +EXPORT_SYMBOL(vfs_unlink2); + +int vfs_unlink(struct inode *dir, struct dentry *dentry, struct inode **delegated_inode) +{ + return vfs_unlink2(NULL, dir, dentry, delegated_inode); +} EXPORT_SYMBOL(vfs_unlink); /* @@ -3802,7 +3856,7 @@ static long do_unlinkat(int dfd, const char __user *pathname) error = security_path_unlink(&nd.path, dentry); if (error) goto exit2; - error = vfs_unlink(nd.path.dentry->d_inode, dentry, &delegated_inode); + error = vfs_unlink2(nd.path.mnt, nd.path.dentry->d_inode, dentry, &delegated_inode); exit2: dput(dentry); } @@ -3852,9 +3906,9 @@ SYSCALL_DEFINE1(unlink, const char __user *, pathname) return do_unlinkat(AT_FDCWD, pathname); } -int vfs_symlink(struct inode *dir, struct dentry *dentry, const char *oldname) +int vfs_symlink2(struct vfsmount *mnt, struct inode *dir, struct dentry *dentry, const char *oldname) { - int error = may_create(dir, dentry); + int error = may_create(mnt, dir, dentry); if (error) return error; @@ -3871,6 +3925,12 @@ int vfs_symlink(struct inode *dir, struct dentry *dentry, const char *oldname) fsnotify_create(dir, dentry); return error; } +EXPORT_SYMBOL(vfs_symlink2); + +int vfs_symlink(struct inode *dir, struct dentry *dentry, const char *oldname) +{ + return vfs_symlink2(NULL, dir, dentry, oldname); +} EXPORT_SYMBOL(vfs_symlink); SYSCALL_DEFINE3(symlinkat, const char __user *, oldname, @@ -3893,7 +3953,7 @@ SYSCALL_DEFINE3(symlinkat, const char __user *, oldname, error = security_path_symlink(&path, dentry, from->name); if (!error) - error = vfs_symlink(path.dentry->d_inode, dentry, from->name); + error = vfs_symlink2(path.mnt, path.dentry->d_inode, dentry, from->name); done_path_create(&path, dentry); if (retry_estale(error, lookup_flags)) { lookup_flags |= LOOKUP_REVAL; @@ -3928,7 +3988,7 @@ SYSCALL_DEFINE2(symlink, const char __user *, oldname, const char __user *, newn * be appropriate for callers that expect the underlying filesystem not * to be NFS exported. */ -int vfs_link(struct dentry *old_dentry, struct inode *dir, struct dentry *new_dentry, struct inode **delegated_inode) +int vfs_link2(struct vfsmount *mnt, struct dentry *old_dentry, struct inode *dir, struct dentry *new_dentry, struct inode **delegated_inode) { struct inode *inode = old_dentry->d_inode; unsigned max_links = dir->i_sb->s_max_links; @@ -3937,7 +3997,7 @@ int vfs_link(struct dentry *old_dentry, struct inode *dir, struct dentry *new_de if (!inode) return -ENOENT; - error = may_create(dir, new_dentry); + error = may_create(mnt, dir, new_dentry); if (error) return error; @@ -3980,6 +4040,12 @@ int vfs_link(struct dentry *old_dentry, struct inode *dir, struct dentry *new_de fsnotify_link(dir, inode, new_dentry); return error; } +EXPORT_SYMBOL(vfs_link2); + +int vfs_link(struct dentry *old_dentry, struct inode *dir, struct dentry *new_dentry, struct inode **delegated_inode) +{ + return vfs_link2(NULL, old_dentry, dir, new_dentry, delegated_inode); +} EXPORT_SYMBOL(vfs_link); /* @@ -4035,7 +4101,7 @@ SYSCALL_DEFINE5(linkat, int, olddfd, const char __user *, oldname, error = security_path_link(old_path.dentry, &new_path, new_dentry); if (error) goto out_dput; - error = vfs_link(old_path.dentry, new_path.dentry->d_inode, new_dentry, &delegated_inode); + error = vfs_link2(old_path.mnt, old_path.dentry, new_path.dentry->d_inode, new_dentry, &delegated_inode); out_dput: done_path_create(&new_path, new_dentry); if (delegated_inode) { @@ -4110,7 +4176,8 @@ SYSCALL_DEFINE2(link, const char __user *, oldname, const char __user *, newname * ->i_mutex on parents, which works but leads to some truly excessive * locking]. */ -int vfs_rename(struct inode *old_dir, struct dentry *old_dentry, +int vfs_rename2(struct vfsmount *mnt, + struct inode *old_dir, struct dentry *old_dentry, struct inode *new_dir, struct dentry *new_dentry, struct inode **delegated_inode, unsigned int flags) { @@ -4125,19 +4192,19 @@ int vfs_rename(struct inode *old_dir, struct dentry *old_dentry, if (source == target) return 0; - error = may_delete(old_dir, old_dentry, is_dir); + error = may_delete(mnt, old_dir, old_dentry, is_dir); if (error) return error; if (!target) { - error = may_create(new_dir, new_dentry); + error = may_create(mnt, new_dir, new_dentry); } else { new_is_dir = d_is_dir(new_dentry); if (!(flags & RENAME_EXCHANGE)) - error = may_delete(new_dir, new_dentry, is_dir); + error = may_delete(mnt, new_dir, new_dentry, is_dir); else - error = may_delete(new_dir, new_dentry, new_is_dir); + error = may_delete(mnt, new_dir, new_dentry, new_is_dir); } if (error) return error; @@ -4154,12 +4221,12 @@ int vfs_rename(struct inode *old_dir, struct dentry *old_dentry, */ if (new_dir != old_dir) { if (is_dir) { - error = inode_permission(source, MAY_WRITE); + error = inode_permission2(mnt, source, MAY_WRITE); if (error) return error; } if ((flags & RENAME_EXCHANGE) && new_is_dir) { - error = inode_permission(target, MAY_WRITE); + error = inode_permission2(mnt, target, MAY_WRITE); if (error) return error; } @@ -4242,6 +4309,14 @@ int vfs_rename(struct inode *old_dir, struct dentry *old_dentry, return error; } +EXPORT_SYMBOL(vfs_rename2); + +int vfs_rename(struct inode *old_dir, struct dentry *old_dentry, + struct inode *new_dir, struct dentry *new_dentry, + struct inode **delegated_inode, unsigned int flags) +{ + return vfs_rename2(NULL, old_dir, old_dentry, new_dir, new_dentry, delegated_inode, flags); +} EXPORT_SYMBOL(vfs_rename); SYSCALL_DEFINE5(renameat2, int, olddfd, const char __user *, oldname, @@ -4356,7 +4431,7 @@ SYSCALL_DEFINE5(renameat2, int, olddfd, const char __user *, oldname, &newnd.path, new_dentry, flags); if (error) goto exit5; - error = vfs_rename(old_dir->d_inode, old_dentry, + error = vfs_rename2(oldnd.path.mnt, old_dir->d_inode, old_dentry, new_dir->d_inode, new_dentry, &delegated_inode, flags); exit5: @@ -4401,7 +4476,7 @@ SYSCALL_DEFINE2(rename, const char __user *, oldname, const char __user *, newna int vfs_whiteout(struct inode *dir, struct dentry *dentry) { - int error = may_create(dir, dentry); + int error = may_create(NULL, dir, dentry); if (error) return error; diff --git a/fs/namespace.c b/fs/namespace.c index ff5ba8c5c4e97..9953cc3924a69 100644 --- a/fs/namespace.c +++ b/fs/namespace.c @@ -568,6 +568,7 @@ int sb_prepare_remount_readonly(struct super_block *sb) static void free_vfsmnt(struct mount *mnt) { + kfree(mnt->mnt.data); kfree(mnt->mnt_devname); #ifdef CONFIG_SMP free_percpu(mnt->mnt_pcp); @@ -901,11 +902,21 @@ vfs_kern_mount(struct file_system_type *type, int flags, const char *name, void if (!mnt) return ERR_PTR(-ENOMEM); + mnt->mnt.data = NULL; + if (type->alloc_mnt_data) { + mnt->mnt.data = type->alloc_mnt_data(); + if (!mnt->mnt.data) { + mnt_free_id(mnt); + free_vfsmnt(mnt); + return ERR_PTR(-ENOMEM); + } + } if (flags & MS_KERNMOUNT) mnt->mnt.mnt_flags = MNT_INTERNAL; - root = mount_fs(type, flags, name, data); + root = mount_fs(type, flags, name, &mnt->mnt, data); if (IS_ERR(root)) { + kfree(mnt->mnt.data); mnt_free_id(mnt); free_vfsmnt(mnt); return ERR_CAST(root); @@ -933,6 +944,14 @@ static struct mount *clone_mnt(struct mount *old, struct dentry *root, if (!mnt) return ERR_PTR(-ENOMEM); + if (sb->s_op->clone_mnt_data) { + mnt->mnt.data = sb->s_op->clone_mnt_data(old->mnt.data); + if (!mnt->mnt.data) { + err = -ENOMEM; + goto out_free; + } + } + if (flag & (CL_SLAVE | CL_PRIVATE | CL_SHARED_TO_SLAVE)) mnt->mnt_group_id = 0; /* not a peer of original */ else @@ -1000,6 +1019,7 @@ static struct mount *clone_mnt(struct mount *old, struct dentry *root, return mnt; out_free: + kfree(mnt->mnt.data); mnt_free_id(mnt); free_vfsmnt(mnt); return ERR_PTR(err); @@ -2139,8 +2159,14 @@ static int do_remount(struct path *path, int flags, int mnt_flags, err = change_mount_flags(path->mnt, flags); else if (!capable(CAP_SYS_ADMIN)) err = -EPERM; - else - err = do_remount_sb(sb, flags, data, 0); + else { + err = do_remount_sb2(path->mnt, sb, flags, data, 0); + namespace_lock(); + lock_mount_hash(); + propagate_remount(mnt); + unlock_mount_hash(); + namespace_unlock(); + } if (!err) { lock_mount_hash(); mnt_flags |= mnt->mnt.mnt_flags & ~MNT_USER_SETTABLE_MASK; diff --git a/fs/notify/fanotify/fanotify_user.c b/fs/notify/fanotify/fanotify_user.c index c991616acca9e..fcbb414721d22 100644 --- a/fs/notify/fanotify/fanotify_user.c +++ b/fs/notify/fanotify/fanotify_user.c @@ -475,7 +475,7 @@ static int fanotify_find_path(int dfd, const char __user *filename, } /* you can only watch an inode if you have read permissions on it */ - ret = inode_permission(path->dentry->d_inode, MAY_READ); + ret = inode_permission2(path->mnt, path->dentry->d_inode, MAY_READ); if (ret) path_put(path); out: diff --git a/fs/notify/inotify/inotify_user.c b/fs/notify/inotify/inotify_user.c index 8637f33b826d5..b2ddc882dac92 100644 --- a/fs/notify/inotify/inotify_user.c +++ b/fs/notify/inotify/inotify_user.c @@ -338,7 +338,7 @@ static int inotify_find_inode(const char __user *dirname, struct path *path, uns if (error) return error; /* you can only watch an inode if you have read permissions on it */ - error = inode_permission(path->dentry->d_inode, MAY_READ); + error = inode_permission2(path->mnt, path->dentry->d_inode, MAY_READ); if (error) path_put(path); return error; @@ -735,7 +735,7 @@ SYSCALL_DEFINE3(inotify_add_watch, int, fd, const char __user *, pathname, /* support stacked filesystems */ if(path.dentry && path.dentry->d_op) { if (path.dentry->d_op->d_canonical_path) { - path.dentry->d_op->d_canonical_path(path.dentry, &alteredpath); + path.dentry->d_op->d_canonical_path(&path, &alteredpath); canonical_path = &alteredpath; path_put(&path); } diff --git a/fs/open.c b/fs/open.c index 1651f35d50f5c..d7e0e1b8b0cf9 100644 --- a/fs/open.c +++ b/fs/open.c @@ -34,8 +34,8 @@ #include "internal.h" -int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs, - struct file *filp) +int do_truncate2(struct vfsmount *mnt, struct dentry *dentry, loff_t length, + unsigned int time_attrs, struct file *filp) { int ret; struct iattr newattrs; @@ -58,17 +58,24 @@ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs, mutex_lock(&dentry->d_inode->i_mutex); /* Note any delegations or leases have already been broken: */ - ret = notify_change(dentry, &newattrs, NULL); + ret = notify_change2(mnt, dentry, &newattrs, NULL); mutex_unlock(&dentry->d_inode->i_mutex); return ret; } +int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs, + struct file *filp) +{ + return do_truncate2(NULL, dentry, length, time_attrs, filp); +} long vfs_truncate(struct path *path, loff_t length) { struct inode *inode; + struct vfsmount *mnt; long error; inode = path->dentry->d_inode; + mnt = path->mnt; /* For directories it's -EISDIR, for other non-regulars - -EINVAL */ if (S_ISDIR(inode->i_mode)) @@ -80,7 +87,7 @@ long vfs_truncate(struct path *path, loff_t length) if (error) goto out; - error = inode_permission(inode, MAY_WRITE); + error = inode_permission2(mnt, inode, MAY_WRITE); if (error) goto mnt_drop_write_and_out; @@ -104,7 +111,7 @@ long vfs_truncate(struct path *path, loff_t length) if (!error) error = security_path_truncate(path); if (!error) - error = do_truncate(path->dentry, length, 0, NULL); + error = do_truncate2(mnt, path->dentry, length, 0, NULL); put_write_and_out: put_write_access(inode); @@ -153,6 +160,7 @@ static long do_sys_ftruncate(unsigned int fd, loff_t length, int small) { struct inode *inode; struct dentry *dentry; + struct vfsmount *mnt; struct fd f; int error; @@ -169,6 +177,7 @@ static long do_sys_ftruncate(unsigned int fd, loff_t length, int small) small = 0; dentry = f.file->f_path.dentry; + mnt = f.file->f_path.mnt; inode = dentry->d_inode; error = -EINVAL; if (!S_ISREG(inode->i_mode) || !(f.file->f_mode & FMODE_WRITE)) @@ -188,7 +197,7 @@ static long do_sys_ftruncate(unsigned int fd, loff_t length, int small) if (!error) error = security_path_truncate(&f.file->f_path); if (!error) - error = do_truncate(dentry, length, ATTR_MTIME|ATTR_CTIME, f.file); + error = do_truncate2(mnt, dentry, length, ATTR_MTIME|ATTR_CTIME, f.file); sb_end_write(inode->i_sb); out_putf: fdput(f); @@ -322,6 +331,7 @@ SYSCALL_DEFINE3(faccessat, int, dfd, const char __user *, filename, int, mode) struct cred *override_cred; struct path path; struct inode *inode; + struct vfsmount *mnt; int res; unsigned int lookup_flags = LOOKUP_FOLLOW; @@ -352,6 +362,7 @@ SYSCALL_DEFINE3(faccessat, int, dfd, const char __user *, filename, int, mode) goto out; inode = path.dentry->d_inode; + mnt = path.mnt; if ((mode & MAY_EXEC) && S_ISREG(inode->i_mode)) { /* @@ -363,7 +374,7 @@ SYSCALL_DEFINE3(faccessat, int, dfd, const char __user *, filename, int, mode) goto out_path_release; } - res = inode_permission(inode, mode | MAY_ACCESS); + res = inode_permission2(mnt, inode, mode | MAY_ACCESS); /* SuS v2 requires we report a read only fs too */ if (res || !(mode & S_IWOTH) || special_file(inode->i_mode)) goto out_path_release; @@ -407,7 +418,7 @@ SYSCALL_DEFINE1(chdir, const char __user *, filename) if (error) goto out; - error = inode_permission(path.dentry->d_inode, MAY_EXEC | MAY_CHDIR); + error = inode_permission2(path.mnt, path.dentry->d_inode, MAY_EXEC | MAY_CHDIR); if (error) goto dput_and_out; @@ -427,6 +438,7 @@ SYSCALL_DEFINE1(fchdir, unsigned int, fd) { struct fd f = fdget_raw(fd); struct inode *inode; + struct vfsmount *mnt; int error = -EBADF; error = -EBADF; @@ -434,12 +446,13 @@ SYSCALL_DEFINE1(fchdir, unsigned int, fd) goto out; inode = file_inode(f.file); + mnt = f.file->f_path.mnt; error = -ENOTDIR; if (!S_ISDIR(inode->i_mode)) goto out_putf; - error = inode_permission(inode, MAY_EXEC | MAY_CHDIR); + error = inode_permission2(mnt, inode, MAY_EXEC | MAY_CHDIR); if (!error) set_fs_pwd(current->fs, &f.file->f_path); out_putf: @@ -458,7 +471,7 @@ SYSCALL_DEFINE1(chroot, const char __user *, filename) if (error) goto out; - error = inode_permission(path.dentry->d_inode, MAY_EXEC | MAY_CHDIR); + error = inode_permission2(path.mnt, path.dentry->d_inode, MAY_EXEC | MAY_CHDIR); if (error) goto dput_and_out; @@ -498,7 +511,7 @@ static int chmod_common(struct path *path, umode_t mode) goto out_unlock; newattrs.ia_mode = (mode & S_IALLUGO) | (inode->i_mode & ~S_IALLUGO); newattrs.ia_valid = ATTR_MODE | ATTR_CTIME; - error = notify_change(path->dentry, &newattrs, &delegated_inode); + error = notify_change2(path->mnt, path->dentry, &newattrs, &delegated_inode); out_unlock: mutex_unlock(&inode->i_mutex); if (delegated_inode) { @@ -578,7 +591,7 @@ static int chown_common(struct path *path, uid_t user, gid_t group) mutex_lock(&inode->i_mutex); error = security_path_chown(path, uid, gid); if (!error) - error = notify_change(path->dentry, &newattrs, &delegated_inode); + error = notify_change2(path->mnt, path->dentry, &newattrs, &delegated_inode); mutex_unlock(&inode->i_mutex); if (delegated_inode) { error = break_deleg_wait(&delegated_inode); diff --git a/fs/pnode.c b/fs/pnode.c index aae331a5d03b2..33ab85985473a 100644 --- a/fs/pnode.c +++ b/fs/pnode.c @@ -403,3 +403,18 @@ int propagate_umount(struct hlist_head *list) __propagate_umount(mnt); return 0; } + +int propagate_remount(struct mount *mnt) +{ + struct mount *m; + struct super_block *sb = mnt->mnt.mnt_sb; + int ret = 0; + + if (sb->s_op->copy_mnt_data) { + for (m = first_slave(mnt); m->mnt_slave.next != &mnt->mnt_slave_list; m = next_slave(m)) { + sb->s_op->copy_mnt_data(m->mnt.data, mnt->mnt.data); + } + } + + return ret; +} diff --git a/fs/pnode.h b/fs/pnode.h index 16afc3d6d2f2d..47dc0399da603 100644 --- a/fs/pnode.h +++ b/fs/pnode.h @@ -42,6 +42,7 @@ int propagate_mnt(struct mount *, struct mountpoint *, struct mount *, struct hlist_head *); int propagate_umount(struct hlist_head *); int propagate_mount_busy(struct mount *, int); +int propagate_remount(struct mount *); void mnt_release_group_id(struct mount *); int get_dominating_id(struct mount *mnt, const struct path *root); unsigned int mnt_get_count(struct mount *mnt); diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c index 251cc6e8bef8b..69dc4a339bce0 100644 --- a/fs/proc/task_mmu.c +++ b/fs/proc/task_mmu.c @@ -1400,7 +1400,7 @@ const struct file_operations proc_pagemap_operations = { #endif /* CONFIG_PROC_PAGE_MONITOR */ #ifdef CONFIG_PROCESS_RECLAIM -static int reclaim_pte_range(pmd_t *pmd, unsigned long addr, +int reclaim_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end, struct mm_walk *walk) { struct reclaim_param *rp = walk->private; @@ -1427,6 +1427,9 @@ static int reclaim_pte_range(pmd_t *pmd, unsigned long addr, if (!page) continue; + if (page_mapcount(page) != 1) + continue; + if (isolate_lru_page(page)) continue; @@ -1449,7 +1452,7 @@ static int reclaim_pte_range(pmd_t *pmd, unsigned long addr, goto cont; cond_resched(); - return 0; + return (rp->nr_to_reclaim == 0) ? -EPIPE : 0; } enum reclaim_type { @@ -1517,6 +1520,7 @@ static ssize_t reclaim_write(struct file *file, const char __user *buf, unsigned long start = 0; unsigned long end = 0; struct reclaim_param rp; + int ret; memset(buffer, 0, sizeof(buffer)); if (count > sizeof(buffer) - 1) @@ -1578,7 +1582,7 @@ static ssize_t reclaim_write(struct file *file, const char __user *buf, reclaim_walk.mm = mm; reclaim_walk.pmd_entry = reclaim_pte_range; - rp.nr_to_reclaim = ~0; + rp.nr_to_reclaim = INT_MAX; rp.nr_reclaimed = 0; reclaim_walk.private = &rp; @@ -1592,9 +1596,11 @@ static ssize_t reclaim_write(struct file *file, const char __user *buf, continue; rp.vma = vma; - walk_page_range(max(vma->vm_start, start), + ret = walk_page_range(max(vma->vm_start, start), min(vma->vm_end, end), &reclaim_walk); + if (ret) + break; vma = vma->vm_next; } } else { @@ -1609,8 +1615,10 @@ static ssize_t reclaim_write(struct file *file, const char __user *buf, continue; rp.vma = vma; - walk_page_range(vma->vm_start, vma->vm_end, + ret = walk_page_range(vma->vm_start, vma->vm_end, &reclaim_walk); + if (ret) + break; } } diff --git a/fs/proc_namespace.c b/fs/proc_namespace.c index 73ca1740d8395..f68d0fe2abd40 100644 --- a/fs/proc_namespace.c +++ b/fs/proc_namespace.c @@ -112,7 +112,9 @@ static int show_vfsmnt(struct seq_file *m, struct vfsmount *mnt) if (err) goto out; show_mnt_opts(m, mnt); - if (sb->s_op->show_options) + if (sb->s_op->show_options2) + err = sb->s_op->show_options2(mnt, m, mnt_path.dentry); + else if (sb->s_op->show_options) err = sb->s_op->show_options(m, mnt_path.dentry); seq_puts(m, " 0 0\n"); out: @@ -173,7 +175,9 @@ static int show_mountinfo(struct seq_file *m, struct vfsmount *mnt) err = show_sb_opts(m, sb); if (err) goto out; - if (sb->s_op->show_options) + if (sb->s_op->show_options2) { + err = sb->s_op->show_options2(mnt, m, mnt->mnt_root); + } else if (sb->s_op->show_options) err = sb->s_op->show_options(m, mnt->mnt_root); seq_putc(m, '\n'); out: diff --git a/fs/pstore/Kconfig b/fs/pstore/Kconfig index 916b8e23d9684..11aff0a7fc495 100644 --- a/fs/pstore/Kconfig +++ b/fs/pstore/Kconfig @@ -60,3 +60,11 @@ config PSTORE_RAM "ramoops.ko". For more information, see Documentation/ramoops.txt. + +config PSTORE_LAST_KMSG + bool "export /proc/last_kmsg" + default y + depends on PSTORE + help + When the option is enabled, pstore will export a proc filesystem + interface /proc/last_kmsg. diff --git a/fs/pstore/inode.c b/fs/pstore/inode.c index 6dce93c8ac290..eda661c008a43 100644 --- a/fs/pstore/inode.c +++ b/fs/pstore/inode.c @@ -36,6 +36,9 @@ #include #include #include +#ifdef CONFIG_PSTORE_LAST_KMSG +#include +#endif #include "internal.h" @@ -270,6 +273,24 @@ int pstore_is_mounted(void) return pstore_sb != NULL; } +#ifdef CONFIG_PSTORE_LAST_KMSG +static char *console_buffer; +static ssize_t console_bufsize; + +static ssize_t last_kmsg_read(struct file *file, char __user *buf, + size_t len, loff_t *offset) +{ + return simple_read_from_buffer(buf, len, offset, + console_buffer, console_bufsize); +} + +static const struct file_operations last_kmsg_fops = { + .owner = THIS_MODULE, + .read = last_kmsg_read, + .llseek = default_llseek, +}; +#endif + /* * Make a regular file in the root directory of our file system. * Load it up with "size" bytes of data from "buf". @@ -371,6 +392,13 @@ int pstore_mkfile(enum pstore_type_id type, char *psname, u64 id, int count, list_add(&private->list, &allpstore); spin_unlock_irqrestore(&allpstore_lock, flags); +#ifdef CONFIG_PSTORE_LAST_KMSG + if (type == PSTORE_TYPE_CONSOLE) { + console_buffer = private->data; + console_bufsize = size; + } +#endif + mutex_unlock(&root->d_inode->i_mutex); return 0; @@ -441,6 +469,9 @@ static struct kobject *pstore_kobj; static int __init init_pstore_fs(void) { int err = 0; +#ifdef CONFIG_PSTORE_LAST_KMSG + struct proc_dir_entry *last_kmsg_entry = NULL; +#endif /* Create a convenient mount point for people to access pstore */ pstore_kobj = kobject_create_and_add("pstore", fs_kobj); @@ -453,6 +484,15 @@ static int __init init_pstore_fs(void) if (err < 0) kobject_put(pstore_kobj); +#ifdef CONFIG_PSTORE_LAST_KMSG + last_kmsg_entry = proc_create_data("last_kmsg", S_IFREG | S_IRUGO, + NULL, &last_kmsg_fops, NULL); + if (!last_kmsg_entry) { + pr_err("Failed to create last_kmsg\n"); + goto out; + } +#endif + out: return err; } diff --git a/fs/pstore/ram.c b/fs/pstore/ram.c index c28dc6802cf4f..ab64d4ff2bfd0 100644 --- a/fs/pstore/ram.c +++ b/fs/pstore/ram.c @@ -34,16 +34,22 @@ #include #include #include +#include +#include #define RAMOOPS_KERNMSG_HDR "====" #define MIN_MEM_SIZE 4096UL +#define SZ_2_1M 0x100000 +#define PSTORE_RAM_SIZE_DEFAULT SZ_2_1M +#define RAM_MAX_MEM (1 << 31) + static ulong record_size = MIN_MEM_SIZE; module_param(record_size, ulong, 0400); MODULE_PARM_DESC(record_size, "size of each dump done on oops/panic"); -static ulong ramoops_console_size = MIN_MEM_SIZE; +static ulong ramoops_console_size = 256*1024UL; module_param_named(console_size, ramoops_console_size, ulong, 0400); MODULE_PARM_DESC(console_size, "size of kernel console log"); @@ -625,6 +631,36 @@ static void ramoops_register_dummy(void) } } +void __init pstore_ram_reserve_memory(void) +{ + phys_addr_t mem; + size_t size; + int ret; + + size = PSTORE_RAM_SIZE_DEFAULT; + size = ALIGN(size, PAGE_SIZE); + + mem = memblock_find_in_range(0, RAM_MAX_MEM, size, PAGE_SIZE); + if (!mem) { + pr_err("Cannot find memblock range for pstore_ram\n"); + return; + } + + ret = memblock_reserve(mem, size); + if (ret) { + pr_err("Failed to reserve memory from 0x%llx-0x%llx\n", + (unsigned long long)mem, + (unsigned long long)(mem + size - 1)); + return; + } + + mem_address = mem; + mem_size = size; + + printk("reserved RAM buffer: mem_address:0x%zx mem_size:0x%llx \n", + size, (unsigned long long)mem); +} + static int __init ramoops_init(void) { ramoops_register_dummy(); diff --git a/fs/sdcardfs/dentry.c b/fs/sdcardfs/dentry.c index ba165ef11e272..0466b55fa25ee 100644 --- a/fs/sdcardfs/dentry.c +++ b/fs/sdcardfs/dentry.c @@ -34,6 +34,8 @@ static int sdcardfs_d_revalidate(struct dentry *dentry, unsigned int flags) struct dentry *parent_lower_dentry = NULL; struct dentry *lower_cur_parent_dentry = NULL; struct dentry *lower_dentry = NULL; + struct inode *inode; + struct sdcardfs_inode_data *data; if (flags & LOOKUP_RCU) return -ECHILD; @@ -46,7 +48,8 @@ static int sdcardfs_d_revalidate(struct dentry *dentry, unsigned int flags) spin_unlock(&dentry->d_lock); /* check uninitialized obb_dentry and - * whether the base obbpath has been changed or not */ + * whether the base obbpath has been changed or not + */ if (is_obbpath_invalid(dentry)) { d_drop(dentry); return 0; @@ -59,6 +62,14 @@ static int sdcardfs_d_revalidate(struct dentry *dentry, unsigned int flags) lower_dentry = lower_path.dentry; lower_cur_parent_dentry = dget_parent(lower_dentry); + if ((lower_dentry->d_flags & DCACHE_OP_REVALIDATE)) { + err = lower_dentry->d_op->d_revalidate(lower_dentry, flags); + if (err == 0) { + d_drop(dentry); + goto out; + } + } + spin_lock(&lower_dentry->d_lock); if (d_unhashed(lower_dentry)) { spin_unlock(&lower_dentry->d_lock); @@ -76,17 +87,13 @@ static int sdcardfs_d_revalidate(struct dentry *dentry, unsigned int flags) if (dentry < lower_dentry) { spin_lock(&dentry->d_lock); - spin_lock(&lower_dentry->d_lock); + spin_lock_nested(&lower_dentry->d_lock, DENTRY_D_LOCK_NESTED); } else { spin_lock(&lower_dentry->d_lock); - spin_lock(&dentry->d_lock); + spin_lock_nested(&dentry->d_lock, DENTRY_D_LOCK_NESTED); } - if (dentry->d_name.len != lower_dentry->d_name.len) { - __d_drop(dentry); - err = 0; - } else if (strncasecmp(dentry->d_name.name, lower_dentry->d_name.name, - dentry->d_name.len) != 0) { + if (!qstr_case_eq(&dentry->d_name, &lower_dentry->d_name)) { __d_drop(dentry); err = 0; } @@ -98,6 +105,21 @@ static int sdcardfs_d_revalidate(struct dentry *dentry, unsigned int flags) spin_unlock(&dentry->d_lock); spin_unlock(&lower_dentry->d_lock); } + if (!err) + goto out; + + /* If our top's inode is gone, we may be out of date */ + inode = igrab(dentry->d_inode); + if (inode) { + data = top_data_get(SDCARDFS_I(inode)); + if (!data || data->abandoned) { + d_drop(dentry); + err = 0; + } + if (data) + data_put(data); + iput(inode); + } out: dput(parent_dentry); @@ -110,12 +132,10 @@ static int sdcardfs_d_revalidate(struct dentry *dentry, unsigned int flags) static void sdcardfs_d_release(struct dentry *dentry) { /* release and reset the lower paths */ - if(has_graft_path(dentry)) { + if (has_graft_path(dentry)) sdcardfs_put_reset_orig_path(dentry); - } sdcardfs_put_reset_lower_path(dentry); free_dentry_private_data(dentry); - return; } static int sdcardfs_hash_ci(const struct dentry *dentry, @@ -132,12 +152,10 @@ static int sdcardfs_hash_ci(const struct dentry *dentry, unsigned long hash; name = qstr->name; - //len = vfat_striptail_len(qstr); len = qstr->len; hash = init_name_hash(); while (len--) - //hash = partial_name_hash(nls_tolower(t, *name++), hash); hash = partial_name_hash(tolower(*name++), hash); qstr->hash = end_name_hash(hash); @@ -151,32 +169,26 @@ static int sdcardfs_cmp_ci(const struct dentry *parent, const struct dentry *dentry, unsigned int len, const char *str, const struct qstr *name) { - /* This function is copy of vfat_cmpi */ - // FIXME Should we support national language? - //struct nls_table *t = MSDOS_SB(parent->d_sb)->nls_io; - //unsigned int alen, blen; + /* FIXME Should we support national language? */ - /* A filename cannot end in '.' or we treat it like it has none */ - /* - alen = vfat_striptail_len(name); - blen = __vfat_striptail_len(len, str); - if (alen == blen) { - if (nls_strnicmp(t, name->name, str, alen) == 0) - return 0; - } - */ if (name->len == len) { - if (strncasecmp(name->name, str, len) == 0) + if (str_n_case_eq(name->name, str, len)) return 0; } return 1; } +static void sdcardfs_canonical_path(const struct path *path, + struct path *actual_path) +{ + sdcardfs_get_real_lower(path->dentry, actual_path); +} + const struct dentry_operations sdcardfs_ci_dops = { .d_revalidate = sdcardfs_d_revalidate, .d_release = sdcardfs_d_release, - .d_hash = sdcardfs_hash_ci, + .d_hash = sdcardfs_hash_ci, .d_compare = sdcardfs_cmp_ci, - .d_canonical_path = sdcardfs_get_real_lower, + .d_canonical_path = sdcardfs_canonical_path, }; diff --git a/fs/sdcardfs/derived_perm.c b/fs/sdcardfs/derived_perm.c index 128b3e56851fb..d567eddb333ed 100644 --- a/fs/sdcardfs/derived_perm.c +++ b/fs/sdcardfs/derived_perm.c @@ -26,100 +26,302 @@ static void inherit_derived_state(struct inode *parent, struct inode *child) struct sdcardfs_inode_info *pi = SDCARDFS_I(parent); struct sdcardfs_inode_info *ci = SDCARDFS_I(child); - ci->perm = PERM_INHERIT; - ci->userid = pi->userid; - ci->d_uid = pi->d_uid; - ci->under_android = pi->under_android; + ci->data->perm = PERM_INHERIT; + ci->data->userid = pi->data->userid; + ci->data->d_uid = pi->data->d_uid; + ci->data->under_android = pi->data->under_android; + ci->data->under_cache = pi->data->under_cache; + ci->data->under_obb = pi->data->under_obb; + set_top(ci, pi->top_data); } /* helper function for derived state */ -void setup_derived_state(struct inode *inode, perm_t perm, - userid_t userid, uid_t uid, bool under_android) +void setup_derived_state(struct inode *inode, perm_t perm, userid_t userid, + uid_t uid, bool under_android, + struct sdcardfs_inode_data *top) { struct sdcardfs_inode_info *info = SDCARDFS_I(inode); - info->perm = perm; - info->userid = userid; - info->d_uid = uid; - info->under_android = under_android; + info->data->perm = perm; + info->data->userid = userid; + info->data->d_uid = uid; + info->data->under_android = under_android; + info->data->under_cache = false; + info->data->under_obb = false; + set_top(info, top); } -/* While renaming, there is a point where we want the path from dentry, but the name from newdentry */ -void get_derived_permission_new(struct dentry *parent, struct dentry *dentry, struct dentry *newdentry) +/* While renaming, there is a point where we want the path from dentry, + * but the name from newdentry + */ +void get_derived_permission_new(struct dentry *parent, struct dentry *dentry, + const struct qstr *name) { - struct sdcardfs_sb_info *sbi = SDCARDFS_SB(dentry->d_sb); struct sdcardfs_inode_info *info = SDCARDFS_I(dentry->d_inode); - struct sdcardfs_inode_info *parent_info= SDCARDFS_I(parent->d_inode); + struct sdcardfs_inode_data *parent_data = + SDCARDFS_I(parent->d_inode)->data; appid_t appid; + unsigned long user_num; + int err; + struct qstr q_Android = QSTR_LITERAL("Android"); + struct qstr q_data = QSTR_LITERAL("data"); + struct qstr q_obb = QSTR_LITERAL("obb"); + struct qstr q_media = QSTR_LITERAL("media"); + struct qstr q_cache = QSTR_LITERAL("cache"); /* By default, each inode inherits from its parent. * the properties are maintained on its private fields * because the inode attributes will be modified with that of * its lower inode. - * The derived state will be updated on the last - * stage of each system call by fix_derived_permission(inode). + * These values are used by our custom permission call instead + * of using the inode permissions. */ inherit_derived_state(parent->d_inode, dentry->d_inode); + /* Files don't get special labels */ + if (!S_ISDIR(dentry->d_inode->i_mode)) + return; /* Derive custom permissions based on parent and current node */ - switch (parent_info->perm) { - case PERM_INHERIT: - /* Already inherited above */ - break; - case PERM_PRE_ROOT: - /* Legacy internal layout places users at top level */ - info->perm = PERM_ROOT; - info->userid = simple_strtoul(newdentry->d_name.name, NULL, 10); - break; - case PERM_ROOT: - /* Assume masked off by default. */ - if (!strcasecmp(newdentry->d_name.name, "Android")) { - /* App-specific directories inside; let anyone traverse */ - info->perm = PERM_ANDROID; - info->under_android = true; - } - break; - case PERM_ANDROID: - if (!strcasecmp(newdentry->d_name.name, "data")) { - /* App-specific directories inside; let anyone traverse */ - info->perm = PERM_ANDROID_DATA; - } else if (!strcasecmp(newdentry->d_name.name, "obb")) { - /* App-specific directories inside; let anyone traverse */ - info->perm = PERM_ANDROID_OBB; - /* Single OBB directory is always shared */ - } else if (!strcasecmp(newdentry->d_name.name, "media")) { - /* App-specific directories inside; let anyone traverse */ - info->perm = PERM_ANDROID_MEDIA; - } - break; - case PERM_ANDROID_DATA: - case PERM_ANDROID_OBB: - case PERM_ANDROID_MEDIA: - appid = get_appid(sbi->pkgl_id, newdentry->d_name.name); - if (appid != 0) { - info->d_uid = multiuser_get_uid(parent_info->userid, appid); - } - break; + switch (parent_data->perm) { + case PERM_INHERIT: + case PERM_ANDROID_PACKAGE_CACHE: + /* Already inherited above */ + break; + case PERM_PRE_ROOT: + /* Legacy internal layout places users at top level */ + info->data->perm = PERM_ROOT; + err = kstrtoul(name->name, 10, &user_num); + if (err) + info->data->userid = 0; + else + info->data->userid = user_num; + set_top(info, info->data); + break; + case PERM_ROOT: + /* Assume masked off by default. */ + if (qstr_case_eq(name, &q_Android)) { + /* App-specific directories inside; let anyone traverse */ + info->data->perm = PERM_ANDROID; + info->data->under_android = true; + set_top(info, info->data); + } + break; + case PERM_ANDROID: + if (qstr_case_eq(name, &q_data)) { + /* App-specific directories inside; let anyone traverse */ + info->data->perm = PERM_ANDROID_DATA; + set_top(info, info->data); + } else if (qstr_case_eq(name, &q_obb)) { + /* App-specific directories inside; let anyone traverse */ + info->data->perm = PERM_ANDROID_OBB; + info->data->under_obb = true; + set_top(info, info->data); + /* Single OBB directory is always shared */ + } else if (qstr_case_eq(name, &q_media)) { + /* App-specific directories inside; let anyone traverse */ + info->data->perm = PERM_ANDROID_MEDIA; + set_top(info, info->data); + } + break; + case PERM_ANDROID_OBB: + case PERM_ANDROID_DATA: + case PERM_ANDROID_MEDIA: + info->data->perm = PERM_ANDROID_PACKAGE; + appid = get_appid(name->name); + if (appid != 0 && !is_excluded(name->name, parent_data->userid)) + info->data->d_uid = + multiuser_get_uid(parent_data->userid, appid); + set_top(info, info->data); + break; + case PERM_ANDROID_PACKAGE: + if (qstr_case_eq(name, &q_cache)) { + info->data->perm = PERM_ANDROID_PACKAGE_CACHE; + info->data->under_cache = true; + } + break; } } void get_derived_permission(struct dentry *parent, struct dentry *dentry) { - get_derived_permission_new(parent, dentry, dentry); + get_derived_permission_new(parent, dentry, &dentry->d_name); } -void get_derive_permissions_recursive(struct dentry *parent) { - struct dentry *dentry; - list_for_each_entry(dentry, &parent->d_subdirs, d_child) { - if (dentry && dentry->d_inode) { - mutex_lock(&dentry->d_inode->i_mutex); - get_derived_permission(parent, dentry); - fix_derived_permission(dentry->d_inode); - get_derive_permissions_recursive(dentry); - mutex_unlock(&dentry->d_inode->i_mutex); +static appid_t get_type(const char *name) +{ + const char *ext = strrchr(name, '.'); + appid_t id; + + if (ext && ext[0]) { + ext = &ext[1]; + id = get_ext_gid(ext); + return id?:AID_MEDIA_RW; + } + return AID_MEDIA_RW; +} + +void fixup_lower_ownership(struct dentry *dentry, const char *name) +{ + struct path path; + struct inode *inode; + struct inode *delegated_inode = NULL; + int error; + struct sdcardfs_inode_info *info; + struct sdcardfs_inode_data *info_d; + struct sdcardfs_inode_data *info_top; + perm_t perm; + struct sdcardfs_sb_info *sbi = SDCARDFS_SB(dentry->d_sb); + uid_t uid = sbi->options.fs_low_uid; + gid_t gid = sbi->options.fs_low_gid; + struct iattr newattrs; + + info = SDCARDFS_I(dentry->d_inode); + info_d = info->data; + perm = info_d->perm; + if (info_d->under_obb) { + perm = PERM_ANDROID_OBB; + } else if (info_d->under_cache) { + perm = PERM_ANDROID_PACKAGE_CACHE; + } else if (perm == PERM_INHERIT) { + info_top = top_data_get(info); + perm = info_top->perm; + data_put(info_top); + } + + switch (perm) { + case PERM_ROOT: + case PERM_ANDROID: + case PERM_ANDROID_DATA: + case PERM_ANDROID_MEDIA: + case PERM_ANDROID_PACKAGE: + case PERM_ANDROID_PACKAGE_CACHE: + uid = multiuser_get_uid(info_d->userid, uid); + break; + case PERM_ANDROID_OBB: + uid = AID_MEDIA_OBB; + break; + case PERM_PRE_ROOT: + default: + break; + } + switch (perm) { + case PERM_ROOT: + case PERM_ANDROID: + case PERM_ANDROID_DATA: + case PERM_ANDROID_MEDIA: + if (S_ISDIR(dentry->d_inode->i_mode)) + gid = multiuser_get_uid(info_d->userid, AID_MEDIA_RW); + else + gid = multiuser_get_uid(info_d->userid, get_type(name)); + break; + case PERM_ANDROID_OBB: + gid = AID_MEDIA_OBB; + break; + case PERM_ANDROID_PACKAGE: + if (uid_is_app(info_d->d_uid)) + gid = multiuser_get_ext_gid(info_d->d_uid); + else + gid = multiuser_get_uid(info_d->userid, AID_MEDIA_RW); + break; + case PERM_ANDROID_PACKAGE_CACHE: + if (uid_is_app(info_d->d_uid)) + gid = multiuser_get_ext_cache_gid(info_d->d_uid); + else + gid = multiuser_get_uid(info_d->userid, AID_MEDIA_RW); + break; + case PERM_PRE_ROOT: + default: + break; + } + + sdcardfs_get_lower_path(dentry, &path); + inode = path.dentry->d_inode; + if (path.dentry->d_inode->i_gid.val != gid || path.dentry->d_inode->i_uid.val != uid) { +retry_deleg: + newattrs.ia_valid = ATTR_GID | ATTR_UID | ATTR_FORCE; + newattrs.ia_uid = make_kuid(current_user_ns(), uid); + newattrs.ia_gid = make_kgid(current_user_ns(), gid); + if (!S_ISDIR(inode->i_mode)) + newattrs.ia_valid |= + ATTR_KILL_SUID | ATTR_KILL_SGID | ATTR_KILL_PRIV; + mutex_lock(&inode->i_mutex); + error = security_path_chown(&path, newattrs.ia_uid, newattrs.ia_gid); + if (!error) + error = notify_change2(path.mnt, path.dentry, &newattrs, &delegated_inode); + mutex_unlock(&inode->i_mutex); + if (delegated_inode) { + error = break_deleg_wait(&delegated_inode); + if (!error) + goto retry_deleg; } + if (error) + pr_debug("sdcardfs: Failed to touch up lower fs gid/uid for %s\n", name); } + sdcardfs_put_lower_path(dentry, &path); +} + +static int descendant_may_need_fixup(struct sdcardfs_inode_data *data, + struct limit_search *limit) +{ + if (data->perm == PERM_ROOT) + return (limit->flags & BY_USERID) ? + data->userid == limit->userid : 1; + if (data->perm == PERM_PRE_ROOT || data->perm == PERM_ANDROID) + return 1; + return 0; +} + +static int needs_fixup(perm_t perm) +{ + if (perm == PERM_ANDROID_DATA || perm == PERM_ANDROID_OBB + || perm == PERM_ANDROID_MEDIA) + return 1; + return 0; +} + +static void __fixup_perms_recursive(struct dentry *dentry, struct limit_search *limit, int depth) +{ + struct dentry *child; + struct sdcardfs_inode_info *info; + + /* + * All paths will terminate their recursion on hitting PERM_ANDROID_OBB, + * PERM_ANDROID_MEDIA, or PERM_ANDROID_DATA. This happens at a depth of + * at most 3. + */ + WARN(depth > 3, "%s: Max expected depth exceeded!\n", __func__); + spin_lock_nested(&dentry->d_lock, depth); + if (!dentry->d_inode) { + spin_unlock(&dentry->d_lock); + return; + } + info = SDCARDFS_I(dentry->d_inode); + + if (needs_fixup(info->data->perm)) { + list_for_each_entry(child, &dentry->d_subdirs, d_child) { + spin_lock_nested(&child->d_lock, depth + 1); + if (!(limit->flags & BY_NAME) || qstr_case_eq(&child->d_name, &limit->name)) { + if (child->d_inode) { + get_derived_permission(dentry, child); + fixup_tmp_permissions(child->d_inode); + spin_unlock(&child->d_lock); + break; + } + } + spin_unlock(&child->d_lock); + } + } else if (descendant_may_need_fixup(info->data, limit)) { + list_for_each_entry(child, &dentry->d_subdirs, d_child) { + __fixup_perms_recursive(child, limit, depth + 1); + } + } + spin_unlock(&dentry->d_lock); +} + +void fixup_perms_recursive(struct dentry *dentry, struct limit_search *limit) +{ + __fixup_perms_recursive(dentry, limit, 0); } /* main function for updating derived permission */ @@ -127,41 +329,38 @@ inline void update_derived_permission_lock(struct dentry *dentry) { struct dentry *parent; - if(!dentry || !dentry->d_inode) { - printk(KERN_ERR "sdcardfs: %s: invalid dentry\n", __func__); + if (!dentry || !dentry->d_inode) { + pr_err("sdcardfs: %s: invalid dentry\n", __func__); return; } /* FIXME: * 1. need to check whether the dentry is updated or not * 2. remove the root dentry update */ - mutex_lock(&dentry->d_inode->i_mutex); - if(IS_ROOT(dentry)) { - //setup_default_pre_root_state(dentry->d_inode); - } else { + if (!IS_ROOT(dentry)) { parent = dget_parent(dentry); - if(parent) { + if (parent) { get_derived_permission(parent, dentry); dput(parent); } } - fix_derived_permission(dentry->d_inode); - mutex_unlock(&dentry->d_inode->i_mutex); + fixup_tmp_permissions(dentry->d_inode); } int need_graft_path(struct dentry *dentry) { int ret = 0; struct dentry *parent = dget_parent(dentry); - struct sdcardfs_inode_info *parent_info= SDCARDFS_I(parent->d_inode); + struct sdcardfs_inode_info *parent_info = SDCARDFS_I(parent->d_inode); struct sdcardfs_sb_info *sbi = SDCARDFS_SB(dentry->d_sb); + struct qstr obb = QSTR_LITERAL("obb"); - if(parent_info->perm == PERM_ANDROID && - !strcasecmp(dentry->d_name.name, "obb")) { + if (parent_info->data->perm == PERM_ANDROID && + qstr_case_eq(&dentry->d_name, &obb)) { /* /Android/obb is the base obbpath of DERIVED_UNIFIED */ - if(!(sbi->options.multiuser == false - && parent_info->userid == 0)) { + if (!(sbi->options.multiuser == false + && parent_info->data->userid == 0)) { ret = 1; } } @@ -175,36 +374,40 @@ int is_obbpath_invalid(struct dentry *dent) struct sdcardfs_dentry_info *di = SDCARDFS_D(dent); struct sdcardfs_sb_info *sbi = SDCARDFS_SB(dent->d_sb); char *path_buf, *obbpath_s; + int need_put = 0; + struct path lower_path; /* check the base obbpath has been changed. * this routine can check an uninitialized obb dentry as well. - * regarding the uninitialized obb, refer to the sdcardfs_mkdir() */ + * regarding the uninitialized obb, refer to the sdcardfs_mkdir() + */ spin_lock(&di->lock); - if(di->orig_path.dentry) { - if(!di->lower_path.dentry) { + if (di->orig_path.dentry) { + if (!di->lower_path.dentry) { ret = 1; } else { path_get(&di->lower_path); - //lower_parent = lock_parent(lower_path->dentry); path_buf = kmalloc(PATH_MAX, GFP_ATOMIC); - if(!path_buf) { + if (!path_buf) { ret = 1; - printk(KERN_ERR "sdcardfs: fail to allocate path_buf in %s.\n", __func__); + pr_err("sdcardfs: fail to allocate path_buf in %s.\n", __func__); } else { obbpath_s = d_path(&di->lower_path, path_buf, PATH_MAX); if (d_unhashed(di->lower_path.dentry) || - strcasecmp(sbi->obbpath_s, obbpath_s)) { + !str_case_eq(sbi->obbpath_s, obbpath_s)) { ret = 1; } kfree(path_buf); } - //unlock_dir(lower_parent); - path_put(&di->lower_path); + pathcpy(&lower_path, &di->lower_path); + need_put = 1; } } spin_unlock(&di->lock); + if (need_put) + path_put(&lower_path); return ret; } @@ -212,17 +415,18 @@ int is_base_obbpath(struct dentry *dentry) { int ret = 0; struct dentry *parent = dget_parent(dentry); - struct sdcardfs_inode_info *parent_info= SDCARDFS_I(parent->d_inode); + struct sdcardfs_inode_info *parent_info = SDCARDFS_I(parent->d_inode); struct sdcardfs_sb_info *sbi = SDCARDFS_SB(dentry->d_sb); + struct qstr q_obb = QSTR_LITERAL("obb"); spin_lock(&SDCARDFS_D(dentry)->lock); if (sbi->options.multiuser) { - if(parent_info->perm == PERM_PRE_ROOT && - !strcasecmp(dentry->d_name.name, "obb")) { + if (parent_info->data->perm == PERM_PRE_ROOT && + qstr_case_eq(&dentry->d_name, &q_obb)) { ret = 1; } - } else if (parent_info->perm == PERM_ANDROID && - !strcasecmp(dentry->d_name.name, "obb")) { + } else if (parent_info->data->perm == PERM_ANDROID && + qstr_case_eq(&dentry->d_name, &q_obb)) { ret = 1; } spin_unlock(&SDCARDFS_D(dentry)->lock); @@ -232,7 +436,8 @@ int is_base_obbpath(struct dentry *dentry) /* The lower_path will be stored to the dentry's orig_path * and the base obbpath will be copyed to the lower_path variable. * if an error returned, there's no change in the lower_path - * returns: -ERRNO if error (0: no error) */ + * returns: -ERRNO if error (0: no error) + */ int setup_obb_dentry(struct dentry *dentry, struct path *lower_path) { int err = 0; @@ -241,23 +446,24 @@ int setup_obb_dentry(struct dentry *dentry, struct path *lower_path) /* A local obb dentry must have its own orig_path to support rmdir * and mkdir of itself. Usually, we expect that the sbi->obbpath - * is avaiable on this stage. */ + * is avaiable on this stage. + */ sdcardfs_set_orig_path(dentry, lower_path); err = kern_path(sbi->obbpath_s, LOOKUP_FOLLOW | LOOKUP_DIRECTORY, &obbpath); - if(!err) { + if (!err) { /* the obbpath base has been found */ - printk(KERN_INFO "sdcardfs: the sbi->obbpath is found\n"); pathcpy(lower_path, &obbpath); } else { /* if the sbi->obbpath is not available, we can optionally * setup the lower_path with its orig_path. * but, the current implementation just returns an error * because the sdcard daemon also regards this case as - * a lookup fail. */ - printk(KERN_INFO "sdcardfs: the sbi->obbpath is not available\n"); + * a lookup fail. + */ + pr_info("sdcardfs: the sbi->obbpath is not available\n"); } return err; } diff --git a/fs/sdcardfs/file.c b/fs/sdcardfs/file.c index 82911179f976a..2f338718cc576 100644 --- a/fs/sdcardfs/file.c +++ b/fs/sdcardfs/file.c @@ -65,7 +65,7 @@ static ssize_t sdcardfs_write(struct file *file, const char __user *buf, /* check disk space */ if (!check_min_free_space(dentry, count, 0)) { - printk(KERN_INFO "No minimum free space.\n"); + pr_err("No minimum free space.\n"); return -ENOSPC; } @@ -113,6 +113,13 @@ static long sdcardfs_unlocked_ioctl(struct file *file, unsigned int cmd, if (lower_file->f_op->unlocked_ioctl) err = lower_file->f_op->unlocked_ioctl(lower_file, cmd, arg); + /* some ioctls can change inode attributes (EXT2_IOC_SETFLAGS) */ + if (!err) { + sdcardfs_copy_and_fix_attrs(file_inode(file), + file_inode(lower_file)); + fsstack_copy_inode_size(file_inode(file), + file_inode(lower_file)); + } out: return err; } @@ -160,8 +167,7 @@ static int sdcardfs_mmap(struct file *file, struct vm_area_struct *vma) lower_file = sdcardfs_lower_file(file); if (willwrite && !lower_file->f_mapping->a_ops->writepage) { err = -EINVAL; - printk(KERN_ERR "sdcardfs: lower file system does not " - "support writeable mmap\n"); + pr_err("sdcardfs: lower file system does not support writeable mmap\n"); goto out; } @@ -173,16 +179,10 @@ static int sdcardfs_mmap(struct file *file, struct vm_area_struct *vma) if (!SDCARDFS_F(file)->lower_vm_ops) { err = lower_file->f_op->mmap(lower_file, vma); if (err) { - printk(KERN_ERR "sdcardfs: lower mmap failed %d\n", err); + pr_err("sdcardfs: lower mmap failed %d\n", err); goto out; } saved_vm_ops = vma->vm_ops; /* save: came from lower ->mmap */ - err = do_munmap(current->mm, vma->vm_start, - vma->vm_end - vma->vm_start); - if (err) { - printk(KERN_ERR "sdcardfs: do_munmap failed %d\n", err); - goto out; - } } /* @@ -195,6 +195,9 @@ static int sdcardfs_mmap(struct file *file, struct vm_area_struct *vma) file->f_mapping->a_ops = &sdcardfs_aops; /* set our aops */ if (!SDCARDFS_F(file)->lower_vm_ops) /* save for our ->fault */ SDCARDFS_F(file)->lower_vm_ops = saved_vm_ops; + vma->vm_private_data = file; + get_file(lower_file); + vma->vm_file = lower_file; out: return err; @@ -216,16 +219,13 @@ static int sdcardfs_open(struct inode *inode, struct file *file) goto out_err; } - if(!check_caller_access_to_name(parent->d_inode, dentry->d_name.name)) { - printk(KERN_INFO "%s: need to check the caller's gid in packages.list\n" - " dentry: %s, task:%s\n", - __func__, dentry->d_name.name, current->comm); + if (!check_caller_access_to_name(parent->d_inode, &dentry->d_name)) { err = -EACCES; goto out_err; } /* save current_cred and override it */ - OVERRIDE_CRED(sbi, saved_cred); + OVERRIDE_CRED(sbi, saved_cred, SDCARDFS_I(inode)); file->private_data = kzalloc(sizeof(struct sdcardfs_file_info), GFP_KERNEL); @@ -253,6 +253,7 @@ static int sdcardfs_open(struct inode *inode, struct file *file) kfree(SDCARDFS_F(file)); else { sdcardfs_copy_and_fix_attrs(inode, sdcardfs_lower_inode(inode)); + fsstack_copy_inode_size(inode, sdcardfs_lower_inode(inode)); } out_revert_cred: @@ -323,6 +324,85 @@ static int sdcardfs_fasync(int fd, struct file *file, int flag) return err; } +/* + * Sdcardfs cannot use generic_file_llseek as ->llseek, because it would + * only set the offset of the upper file. So we have to implement our + * own method to set both the upper and lower file offsets + * consistently. + */ +static loff_t sdcardfs_file_llseek(struct file *file, loff_t offset, int whence) +{ + int err; + struct file *lower_file; + + err = generic_file_llseek(file, offset, whence); + if (err < 0) + goto out; + + lower_file = sdcardfs_lower_file(file); + err = generic_file_llseek(lower_file, offset, whence); + +out: + return err; +} + +/* + * Sdcardfs read_iter, redirect modified iocb to lower read_iter + */ +ssize_t sdcardfs_read_iter(struct kiocb *iocb, struct iov_iter *iter) +{ + int err; + struct file *file = iocb->ki_filp, *lower_file; + + lower_file = sdcardfs_lower_file(file); + if (!lower_file->f_op->read_iter) { + err = -EINVAL; + goto out; + } + + get_file(lower_file); /* prevent lower_file from being released */ + iocb->ki_filp = lower_file; + err = lower_file->f_op->read_iter(iocb, iter); + iocb->ki_filp = file; + fput(lower_file); + /* update upper inode atime as needed */ + if (err >= 0 || err == -EIOCBQUEUED) + fsstack_copy_attr_atime(file->f_path.dentry->d_inode, + file_inode(lower_file)); +out: + return err; +} + +/* + * Sdcardfs write_iter, redirect modified iocb to lower write_iter + */ +ssize_t sdcardfs_write_iter(struct kiocb *iocb, struct iov_iter *iter) +{ + int err; + struct file *file = iocb->ki_filp, *lower_file; + + lower_file = sdcardfs_lower_file(file); + if (!lower_file->f_op->write_iter) { + err = -EINVAL; + goto out; + } + + get_file(lower_file); /* prevent lower_file from being released */ + iocb->ki_filp = lower_file; + err = lower_file->f_op->write_iter(iocb, iter); + iocb->ki_filp = file; + fput(lower_file); + /* update upper inode times/sizes as needed */ + if (err >= 0 || err == -EIOCBQUEUED) { + fsstack_copy_inode_size(file->f_path.dentry->d_inode, + file_inode(lower_file)); + fsstack_copy_attr_times(file->f_path.dentry->d_inode, + file_inode(lower_file)); + } +out: + return err; +} + const struct file_operations sdcardfs_main_fops = { .llseek = generic_file_llseek, .read = sdcardfs_read, @@ -337,11 +417,13 @@ const struct file_operations sdcardfs_main_fops = { .release = sdcardfs_file_release, .fsync = sdcardfs_fsync, .fasync = sdcardfs_fasync, + .read_iter = sdcardfs_read_iter, + .write_iter = sdcardfs_write_iter, }; /* trimmed directory options */ const struct file_operations sdcardfs_dir_fops = { - .llseek = generic_file_llseek, + .llseek = sdcardfs_file_llseek, .read = generic_read_dir, .iterate = sdcardfs_readdir, .unlocked_ioctl = sdcardfs_unlocked_ioctl, diff --git a/fs/sdcardfs/inode.c b/fs/sdcardfs/inode.c index 69060ee52e6b7..9b2e4fc3379f7 100644 --- a/fs/sdcardfs/inode.c +++ b/fs/sdcardfs/inode.c @@ -19,18 +19,26 @@ */ #include "sdcardfs.h" +#include +#include /* Do not directly use this function. Use OVERRIDE_CRED() instead. */ -const struct cred * override_fsids(struct sdcardfs_sb_info* sbi) +const struct cred *override_fsids(struct sdcardfs_sb_info *sbi, + struct sdcardfs_inode_data *data) { - struct cred * cred; - const struct cred * old_cred; + struct cred *cred; + const struct cred *old_cred; + uid_t uid; cred = prepare_creds(); if (!cred) return NULL; - cred->fsuid = make_kuid(&init_user_ns, sbi->options.fs_low_uid); + if (data->under_obb) + uid = AID_MEDIA_OBB; + else + uid = multiuser_get_uid(data->userid, sbi->options.fs_low_uid); + cred->fsuid = make_kuid(&init_user_ns, uid); cred->fsgid = make_kgid(&init_user_ns, sbi->options.fs_low_gid); old_cred = override_creds(cred); @@ -39,9 +47,9 @@ const struct cred * override_fsids(struct sdcardfs_sb_info* sbi) } /* Do not directly use this function, use REVERT_CRED() instead. */ -void revert_fsids(const struct cred * old_cred) +void revert_fsids(const struct cred *old_cred) { - const struct cred * cur_cred; + const struct cred *cur_cred; cur_cred = current->cred; revert_creds(old_cred); @@ -53,38 +61,54 @@ static int sdcardfs_create(struct inode *dir, struct dentry *dentry, { int err; struct dentry *lower_dentry; + struct vfsmount *lower_dentry_mnt; struct dentry *lower_parent_dentry = NULL; struct path lower_path; const struct cred *saved_cred = NULL; + struct fs_struct *saved_fs; + struct fs_struct *copied_fs; - if(!check_caller_access_to_name(dir, dentry->d_name.name)) { - printk(KERN_INFO "%s: need to check the caller's gid in packages.list\n" - " dentry: %s, task:%s\n", - __func__, dentry->d_name.name, current->comm); + if (!check_caller_access_to_name(dir, &dentry->d_name)) { err = -EACCES; goto out_eacces; } /* save current_cred and override it */ - OVERRIDE_CRED(SDCARDFS_SB(dir->i_sb), saved_cred); + OVERRIDE_CRED(SDCARDFS_SB(dir->i_sb), saved_cred, SDCARDFS_I(dir)); sdcardfs_get_lower_path(dentry, &lower_path); lower_dentry = lower_path.dentry; + lower_dentry_mnt = lower_path.mnt; lower_parent_dentry = lock_parent(lower_dentry); /* set last 16bytes of mode field to 0664 */ mode = (mode & S_IFMT) | 00664; - err = vfs_create(lower_parent_dentry->d_inode, lower_dentry, mode, want_excl); + + /* temporarily change umask for lower fs write */ + saved_fs = current->fs; + copied_fs = copy_fs_struct(current->fs); + if (!copied_fs) { + err = -ENOMEM; + goto out_unlock; + } + current->fs = copied_fs; + current->fs->umask = 0; + err = vfs_create2(lower_dentry_mnt, lower_parent_dentry->d_inode, lower_dentry, mode, want_excl); if (err) goto out; - err = sdcardfs_interpose(dentry, dir->i_sb, &lower_path, SDCARDFS_I(dir)->userid); + err = sdcardfs_interpose(dentry, dir->i_sb, &lower_path, + SDCARDFS_I(dir)->data->userid); if (err) goto out; fsstack_copy_attr_times(dir, sdcardfs_lower_inode(dir)); fsstack_copy_inode_size(dir, lower_parent_dentry->d_inode); + fixup_lower_ownership(dentry, dentry->d_name.name); out: + current->fs = saved_fs; + free_fs_struct(copied_fs); +out_unlock: unlock_dir(lower_parent_dentry); sdcardfs_put_lower_path(dentry, &lower_path); REVERT_CRED(saved_cred); @@ -138,28 +162,27 @@ static int sdcardfs_unlink(struct inode *dir, struct dentry *dentry) { int err; struct dentry *lower_dentry; + struct vfsmount *lower_mnt; struct inode *lower_dir_inode = sdcardfs_lower_inode(dir); struct dentry *lower_dir_dentry; struct path lower_path; const struct cred *saved_cred = NULL; - if(!check_caller_access_to_name(dir, dentry->d_name.name)) { - printk(KERN_INFO "%s: need to check the caller's gid in packages.list\n" - " dentry: %s, task:%s\n", - __func__, dentry->d_name.name, current->comm); + if (!check_caller_access_to_name(dir, &dentry->d_name)) { err = -EACCES; goto out_eacces; } /* save current_cred and override it */ - OVERRIDE_CRED(SDCARDFS_SB(dir->i_sb), saved_cred); + OVERRIDE_CRED(SDCARDFS_SB(dir->i_sb), saved_cred, SDCARDFS_I(dir)); sdcardfs_get_lower_path(dentry, &lower_path); lower_dentry = lower_path.dentry; + lower_mnt = lower_path.mnt; dget(lower_dentry); lower_dir_dentry = lock_parent(lower_dentry); - err = vfs_unlink(lower_dir_inode, lower_dentry, NULL); + err = vfs_unlink2(lower_mnt, lower_dir_inode, lower_dentry, NULL); /* * Note: unlinking on top of NFS can cause silly-renamed files. @@ -219,14 +242,15 @@ static int sdcardfs_symlink(struct inode *dir, struct dentry *dentry, } #endif -static int touch(char *abs_path, mode_t mode) { +static int touch(char *abs_path, mode_t mode) +{ struct file *filp = filp_open(abs_path, O_RDWR|O_CREAT|O_EXCL|O_NOFOLLOW, mode); + if (IS_ERR(filp)) { if (PTR_ERR(filp) == -EEXIST) { return 0; - } - else { - printk(KERN_ERR "sdcardfs: failed to open(%s): %ld\n", + } else { + pr_err("sdcardfs: failed to open(%s): %ld\n", abs_path, PTR_ERR(filp)); return PTR_ERR(filp); } @@ -240,31 +264,29 @@ static int sdcardfs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode int err; int make_nomedia_in_obb = 0; struct dentry *lower_dentry; + struct vfsmount *lower_mnt; struct dentry *lower_parent_dentry = NULL; struct path lower_path; struct sdcardfs_sb_info *sbi = SDCARDFS_SB(dentry->d_sb); const struct cred *saved_cred = NULL; - struct sdcardfs_inode_info *pi = SDCARDFS_I(dir); - char *page_buf; - char *nomedia_dir_name; - char *nomedia_fullpath; - int fullpath_namelen; + struct sdcardfs_inode_data *pd = SDCARDFS_I(dir)->data; int touch_err = 0; + struct fs_struct *saved_fs; + struct fs_struct *copied_fs; + struct qstr q_obb = QSTR_LITERAL("obb"); + struct qstr q_data = QSTR_LITERAL("data"); - if(!check_caller_access_to_name(dir, dentry->d_name.name)) { - printk(KERN_INFO "%s: need to check the caller's gid in packages.list\n" - " dentry: %s, task:%s\n", - __func__, dentry->d_name.name, current->comm); + if (!check_caller_access_to_name(dir, &dentry->d_name)) { err = -EACCES; goto out_eacces; } /* save current_cred and override it */ - OVERRIDE_CRED(SDCARDFS_SB(dir->i_sb), saved_cred); + OVERRIDE_CRED(SDCARDFS_SB(dir->i_sb), saved_cred, SDCARDFS_I(dir)); /* check disk space */ if (!check_min_free_space(dentry, 0, 1)) { - printk(KERN_INFO "sdcardfs: No minimum free space.\n"); + pr_err("sdcardfs: No minimum free space.\n"); err = -ENOSPC; goto out_revert; } @@ -272,87 +294,84 @@ static int sdcardfs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode /* the lower_dentry is negative here */ sdcardfs_get_lower_path(dentry, &lower_path); lower_dentry = lower_path.dentry; + lower_mnt = lower_path.mnt; lower_parent_dentry = lock_parent(lower_dentry); /* set last 16bytes of mode field to 0775 */ mode = (mode & S_IFMT) | 00775; - err = vfs_mkdir(lower_parent_dentry->d_inode, lower_dentry, mode); - if (err) + /* temporarily change umask for lower fs write */ + saved_fs = current->fs; + copied_fs = copy_fs_struct(current->fs); + if (!copied_fs) { + err = -ENOMEM; + unlock_dir(lower_parent_dentry); + goto out_unlock; + } + current->fs = copied_fs; + current->fs->umask = 0; + err = vfs_mkdir2(lower_mnt, lower_parent_dentry->d_inode, lower_dentry, mode); + + if (err) { + unlock_dir(lower_parent_dentry); goto out; + } /* if it is a local obb dentry, setup it with the base obbpath */ - if(need_graft_path(dentry)) { + if (need_graft_path(dentry)) { err = setup_obb_dentry(dentry, &lower_path); - if(err) { + if (err) { /* if the sbi->obbpath is not available, the lower_path won't be * changed by setup_obb_dentry() but the lower path is saved to * its orig_path. this dentry will be revalidated later. - * but now, the lower_path should be NULL */ + * but now, the lower_path should be NULL + */ sdcardfs_put_reset_lower_path(dentry); /* the newly created lower path which saved to its orig_path or * the lower_path is the base obbpath. - * therefore, an additional path_get is required */ + * therefore, an additional path_get is required + */ path_get(&lower_path); } else make_nomedia_in_obb = 1; } - err = sdcardfs_interpose(dentry, dir->i_sb, &lower_path, pi->userid); - if (err) + err = sdcardfs_interpose(dentry, dir->i_sb, &lower_path, pd->userid); + if (err) { + unlock_dir(lower_parent_dentry); goto out; + } fsstack_copy_attr_times(dir, sdcardfs_lower_inode(dir)); fsstack_copy_inode_size(dir, lower_parent_dentry->d_inode); /* update number of links on parent directory */ set_nlink(dir, sdcardfs_lower_inode(dir)->i_nlink); - - if ((!sbi->options.multiuser) && (!strcasecmp(dentry->d_name.name, "obb")) - && (pi->perm == PERM_ANDROID) && (pi->userid == 0)) + fixup_lower_ownership(dentry, dentry->d_name.name); + unlock_dir(lower_parent_dentry); + if ((!sbi->options.multiuser) && (qstr_case_eq(&dentry->d_name, &q_obb)) + && (pd->perm == PERM_ANDROID) && (pd->userid == 0)) make_nomedia_in_obb = 1; /* When creating /Android/data and /Android/obb, mark them as .nomedia */ if (make_nomedia_in_obb || - ((pi->perm == PERM_ANDROID) && (!strcasecmp(dentry->d_name.name, "data")))) { - - page_buf = (char *)__get_free_page(GFP_KERNEL); - if (!page_buf) { - printk(KERN_ERR "sdcardfs: failed to allocate page buf\n"); - goto out; - } - - nomedia_dir_name = d_absolute_path(&lower_path, page_buf, PAGE_SIZE); - if (IS_ERR(nomedia_dir_name)) { - free_page((unsigned long)page_buf); - printk(KERN_ERR "sdcardfs: failed to get .nomedia dir name\n"); - goto out; - } - - fullpath_namelen = page_buf + PAGE_SIZE - nomedia_dir_name - 1; - fullpath_namelen += strlen("/.nomedia"); - nomedia_fullpath = kzalloc(fullpath_namelen + 1, GFP_KERNEL); - if (!nomedia_fullpath) { - free_page((unsigned long)page_buf); - printk(KERN_ERR "sdcardfs: failed to allocate .nomedia fullpath buf\n"); - goto out; - } - - strcpy(nomedia_fullpath, nomedia_dir_name); - free_page((unsigned long)page_buf); - strcat(nomedia_fullpath, "/.nomedia"); - touch_err = touch(nomedia_fullpath, 0664); + ((pd->perm == PERM_ANDROID) + && (qstr_case_eq(&dentry->d_name, &q_data)))) { + REVERT_CRED(saved_cred); + OVERRIDE_CRED(SDCARDFS_SB(dir->i_sb), saved_cred, SDCARDFS_I(dentry->d_inode)); + set_fs_pwd(current->fs, &lower_path); + touch_err = touch(".nomedia", 0664); if (touch_err) { - printk(KERN_ERR "sdcardfs: failed to touch(%s): %d\n", - nomedia_fullpath, touch_err); - kfree(nomedia_fullpath); + pr_err("sdcardfs: failed to create .nomedia in %s: %d\n", + lower_path.dentry->d_name.name, touch_err); goto out; } - kfree(nomedia_fullpath); } out: - unlock_dir(lower_parent_dentry); + current->fs = saved_fs; + free_fs_struct(copied_fs); +out_unlock: sdcardfs_put_lower_path(dentry, &lower_path); out_revert: REVERT_CRED(saved_cred); @@ -364,29 +383,29 @@ static int sdcardfs_rmdir(struct inode *dir, struct dentry *dentry) { struct dentry *lower_dentry; struct dentry *lower_dir_dentry; + struct vfsmount *lower_mnt; int err; struct path lower_path; const struct cred *saved_cred = NULL; - if(!check_caller_access_to_name(dir, dentry->d_name.name)) { - printk(KERN_INFO "%s: need to check the caller's gid in packages.list\n" - " dentry: %s, task:%s\n", - __func__, dentry->d_name.name, current->comm); + if (!check_caller_access_to_name(dir, &dentry->d_name)) { err = -EACCES; goto out_eacces; } /* save current_cred and override it */ - OVERRIDE_CRED(SDCARDFS_SB(dir->i_sb), saved_cred); + OVERRIDE_CRED(SDCARDFS_SB(dir->i_sb), saved_cred, SDCARDFS_I(dir)); /* sdcardfs_get_real_lower(): in case of remove an user's obb dentry - * the dentry on the original path should be deleted. */ + * the dentry on the original path should be deleted. + */ sdcardfs_get_real_lower(dentry, &lower_path); lower_dentry = lower_path.dentry; + lower_mnt = lower_path.mnt; lower_dir_dentry = lock_parent(lower_dentry); - err = vfs_rmdir(lower_dir_dentry->d_inode, lower_dentry); + err = vfs_rmdir2(lower_mnt, lower_dir_dentry->d_inode, lower_dentry); if (err) goto out; @@ -450,27 +469,25 @@ static int sdcardfs_rename(struct inode *old_dir, struct dentry *old_dentry, struct dentry *lower_new_dentry = NULL; struct dentry *lower_old_dir_dentry = NULL; struct dentry *lower_new_dir_dentry = NULL; + struct vfsmount *lower_mnt = NULL; struct dentry *trap = NULL; - struct dentry *new_parent = NULL; struct path lower_old_path, lower_new_path; const struct cred *saved_cred = NULL; - if(!check_caller_access_to_name(old_dir, old_dentry->d_name.name) || - !check_caller_access_to_name(new_dir, new_dentry->d_name.name)) { - printk(KERN_INFO "%s: need to check the caller's gid in packages.list\n" - " new_dentry: %s, task:%s\n", - __func__, new_dentry->d_name.name, current->comm); + if (!check_caller_access_to_name(old_dir, &old_dentry->d_name) || + !check_caller_access_to_name(new_dir, &new_dentry->d_name)) { err = -EACCES; goto out_eacces; } /* save current_cred and override it */ - OVERRIDE_CRED(SDCARDFS_SB(old_dir->i_sb), saved_cred); + OVERRIDE_CRED(SDCARDFS_SB(old_dir->i_sb), saved_cred, SDCARDFS_I(new_dir)); sdcardfs_get_real_lower(old_dentry, &lower_old_path); sdcardfs_get_lower_path(new_dentry, &lower_new_path); lower_old_dentry = lower_old_path.dentry; lower_new_dentry = lower_new_path.dentry; + lower_mnt = lower_old_path.mnt; lower_old_dir_dentry = dget_parent(lower_old_dentry); lower_new_dir_dentry = dget_parent(lower_new_dentry); @@ -486,7 +503,8 @@ static int sdcardfs_rename(struct inode *old_dir, struct dentry *old_dentry, goto out; } - err = vfs_rename(lower_old_dir_dentry->d_inode, lower_old_dentry, + err = vfs_rename2(lower_mnt, + lower_old_dir_dentry->d_inode, lower_old_dentry, lower_new_dir_dentry->d_inode, lower_new_dentry, NULL, 0); if (err) @@ -499,25 +517,11 @@ static int sdcardfs_rename(struct inode *old_dir, struct dentry *old_dentry, if (new_dir != old_dir) { sdcardfs_copy_and_fix_attrs(old_dir, lower_old_dir_dentry->d_inode); fsstack_copy_inode_size(old_dir, lower_old_dir_dentry->d_inode); - - /* update the derived permission of the old_dentry - * with its new parent - */ - new_parent = dget_parent(new_dentry); - if(new_parent) { - if(old_dentry->d_inode) { - update_derived_permission_lock(old_dentry); - } - dput(new_parent); - } } - /* At this point, not all dentry information has been moved, so - * we pass along new_dentry for the name.*/ - mutex_lock(&old_dentry->d_inode->i_mutex); - get_derived_permission_new(new_dentry->d_parent, old_dentry, new_dentry); - fix_derived_permission(old_dentry->d_inode); - get_derive_permissions_recursive(old_dentry); - mutex_unlock(&old_dentry->d_inode->i_mutex); + get_derived_permission_new(new_dentry->d_parent, old_dentry, &new_dentry->d_name); + fixup_tmp_permissions(old_dentry->d_inode); + fixup_lower_ownership(old_dentry, new_dentry->d_name.name); + d_invalidate(old_dentry); /* Can't fixup ownership recursively :( */ out: unlock_rename(lower_old_dir_dentry, lower_new_dir_dentry); dput(lower_old_dir_dentry); @@ -588,16 +592,61 @@ static void *sdcardfs_follow_link(struct dentry *dentry, struct nameidata *nd) } #endif -static int sdcardfs_permission(struct inode *inode, int mask) +static int sdcardfs_permission_wrn(struct inode *inode, int mask) +{ + WARN_RATELIMIT(1, "sdcardfs does not support permission. Use permission2.\n"); + return -EINVAL; +} + +void copy_attrs(struct inode *dest, const struct inode *src) +{ + dest->i_mode = src->i_mode; + dest->i_uid = src->i_uid; + dest->i_gid = src->i_gid; + dest->i_rdev = src->i_rdev; + dest->i_atime = src->i_atime; + dest->i_mtime = src->i_mtime; + dest->i_ctime = src->i_ctime; + dest->i_blkbits = src->i_blkbits; + dest->i_flags = src->i_flags; +#ifdef CONFIG_FS_POSIX_ACL + dest->i_acl = src->i_acl; +#endif +#ifdef CONFIG_SECURITY + dest->i_security = src->i_security; +#endif +} + +static int sdcardfs_permission(struct vfsmount *mnt, struct inode *inode, int mask) { int err; + struct inode tmp; + struct sdcardfs_inode_data *top = top_data_get(SDCARDFS_I(inode)); + + if (!top) + return -EINVAL; /* * Permission check on sdcardfs inode. * Calling process should have AID_SDCARD_RW permission + * Since generic_permission only needs i_mode, i_uid, + * i_gid, and i_sb, we can create a fake inode to pass + * this information down in. + * + * The underlying code may attempt to take locks in some + * cases for features we're not using, but if that changes, + * locks must be dealt with to avoid undefined behavior. */ - err = generic_permission(inode, mask); - + copy_attrs(&tmp, inode); + tmp.i_uid = make_kuid(&init_user_ns, top->d_uid); + tmp.i_gid = make_kgid(&init_user_ns, get_gid(mnt, top)); + tmp.i_mode = (inode->i_mode & S_IFMT) + | get_mode(mnt, SDCARDFS_I(inode), top); + data_put(top); + tmp.i_sb = inode->i_sb; + if (IS_POSIXACL(inode)) + pr_warn("%s: This may be undefined behavior...\n", __func__); + err = generic_permission(&tmp, mask); /* XXX * Original sdcardfs code calls inode_permission(lower_inode,.. ) * for checking inode permission. But doing such things here seems @@ -614,6 +663,7 @@ static int sdcardfs_permission(struct inode *inode, int mask) * we check it with AID_MEDIA_RW permission */ struct inode *lower_inode; + OVERRIDE_CRED(SDCARDFS_SB(inode->sb)); lower_inode = sdcardfs_lower_inode(inode); @@ -626,47 +676,85 @@ static int sdcardfs_permission(struct inode *inode, int mask) } -static int sdcardfs_setattr(struct dentry *dentry, struct iattr *ia) +static int sdcardfs_setattr_wrn(struct dentry *dentry, struct iattr *ia) +{ + WARN_RATELIMIT(1, "sdcardfs does not support setattr. User setattr2.\n"); + return -EINVAL; +} + +static int sdcardfs_setattr(struct vfsmount *mnt, struct dentry *dentry, struct iattr *ia) { int err; struct dentry *lower_dentry; + struct vfsmount *lower_mnt; struct inode *inode; struct inode *lower_inode; struct path lower_path; struct iattr lower_ia; struct dentry *parent; + struct inode tmp; + struct sdcardfs_inode_data *top; + const struct cred *saved_cred = NULL; inode = dentry->d_inode; + top = top_data_get(SDCARDFS_I(inode)); + + if (!top) + return -EINVAL; + + /* + * Permission check on sdcardfs inode. + * Calling process should have AID_SDCARD_RW permission + * Since generic_permission only needs i_mode, i_uid, + * i_gid, and i_sb, we can create a fake inode to pass + * this information down in. + * + * The underlying code may attempt to take locks in some + * cases for features we're not using, but if that changes, + * locks must be dealt with to avoid undefined behavior. + * + */ + copy_attrs(&tmp, inode); + tmp.i_uid = make_kuid(&init_user_ns, top->d_uid); + tmp.i_gid = make_kgid(&init_user_ns, get_gid(mnt, top)); + tmp.i_mode = (inode->i_mode & S_IFMT) + | get_mode(mnt, SDCARDFS_I(inode), top); + tmp.i_size = i_size_read(inode); + data_put(top); + tmp.i_sb = inode->i_sb; /* * Check if user has permission to change inode. We don't check if * this user can change the lower inode: that should happen when * calling notify_change on the lower inode. */ - err = inode_change_ok(inode, ia); + /* prepare our own lower struct iattr (with the lower file) */ + memcpy(&lower_ia, ia, sizeof(lower_ia)); + /* Allow touch updating timestamps. A previous permission check ensures + * we have write access. Changes to mode, owner, and group are ignored + */ + ia->ia_valid |= ATTR_FORCE; + err = inode_change_ok(&tmp, ia); - /* no vfs_XXX operations required, cred overriding will be skipped. wj*/ if (!err) { /* check the Android group ID */ parent = dget_parent(dentry); - if(!check_caller_access_to_name(parent->d_inode, dentry->d_name.name)) { - printk(KERN_INFO "%s: need to check the caller's gid in packages.list\n" - " dentry: %s, task:%s\n", - __func__, dentry->d_name.name, current->comm); + if (!check_caller_access_to_name(parent->d_inode, &dentry->d_name)) err = -EACCES; - } dput(parent); } if (err) goto out_err; + /* save current_cred and override it */ + OVERRIDE_CRED(SDCARDFS_SB(dentry->d_sb), saved_cred, SDCARDFS_I(inode)); + sdcardfs_get_lower_path(dentry, &lower_path); lower_dentry = lower_path.dentry; + lower_mnt = lower_path.mnt; lower_inode = sdcardfs_lower_inode(inode); - /* prepare our own lower struct iattr (with the lower file) */ - memcpy(&lower_ia, ia, sizeof(lower_ia)); if (ia->ia_valid & ATTR_FILE) lower_ia.ia_file = sdcardfs_lower_file(ia->ia_file); @@ -680,13 +768,9 @@ static int sdcardfs_setattr(struct dentry *dentry, struct iattr *ia) * afterwards in the other cases: we fsstack_copy_inode_size from * the lower level. */ - if (current->mm) - down_write(¤t->mm->mmap_sem); if (ia->ia_valid & ATTR_SIZE) { - err = inode_newsize_ok(inode, ia->ia_size); + err = inode_newsize_ok(&tmp, ia->ia_size); if (err) { - if (current->mm) - up_write(¤t->mm->mmap_sem); goto out; } truncate_setsize(inode, ia->ia_size); @@ -706,11 +790,9 @@ static int sdcardfs_setattr(struct dentry *dentry, struct iattr *ia) * tries to open(), unlink(), then ftruncate() a file. */ mutex_lock(&lower_dentry->d_inode->i_mutex); - err = notify_change(lower_dentry, &lower_ia, /* note: lower_ia */ + err = notify_change2(lower_mnt, lower_dentry, &lower_ia, /* note: lower_ia */ NULL); mutex_unlock(&lower_dentry->d_inode->i_mutex); - if (current->mm) - up_write(¤t->mm->mmap_sem); if (err) goto out; @@ -725,48 +807,69 @@ static int sdcardfs_setattr(struct dentry *dentry, struct iattr *ia) out: sdcardfs_put_lower_path(dentry, &lower_path); + REVERT_CRED(saved_cred); out_err: return err; } +static int sdcardfs_fillattr(struct vfsmount *mnt, + struct inode *inode, struct kstat *stat) +{ + struct sdcardfs_inode_info *info = SDCARDFS_I(inode); + struct sdcardfs_inode_data *top = top_data_get(info); + + if (!top) + return -EINVAL; + + stat->dev = inode->i_sb->s_dev; + stat->ino = inode->i_ino; + stat->mode = (inode->i_mode & S_IFMT) | get_mode(mnt, info, top); + stat->nlink = inode->i_nlink; + stat->uid = make_kuid(&init_user_ns, top->d_uid); + stat->gid = make_kgid(&init_user_ns, get_gid(mnt, top)); + stat->rdev = inode->i_rdev; + stat->size = i_size_read(inode); + stat->atime = inode->i_atime; + stat->mtime = inode->i_mtime; + stat->ctime = inode->i_ctime; + stat->blksize = (1 << inode->i_blkbits); + stat->blocks = inode->i_blocks; + data_put(top); + return 0; +} + static int sdcardfs_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat) { - struct dentry *lower_dentry; - struct inode *inode; - struct inode *lower_inode; + struct kstat lower_stat; struct path lower_path; struct dentry *parent; + int err; parent = dget_parent(dentry); - if(!check_caller_access_to_name(parent->d_inode, dentry->d_name.name)) { - printk(KERN_INFO "%s: need to check the caller's gid in packages.list\n" - " dentry: %s, task:%s\n", - __func__, dentry->d_name.name, current->comm); + if (!check_caller_access_to_name(parent->d_inode, &dentry->d_name)) { dput(parent); return -EACCES; } dput(parent); - inode = dentry->d_inode; - sdcardfs_get_lower_path(dentry, &lower_path); - lower_dentry = lower_path.dentry; - lower_inode = sdcardfs_lower_inode(inode); - - - sdcardfs_copy_and_fix_attrs(inode, lower_inode); - fsstack_copy_inode_size(inode, lower_inode); - - - generic_fillattr(inode, stat); + err = vfs_getattr(&lower_path, &lower_stat); + if (err) + goto out; + sdcardfs_copy_and_fix_attrs(dentry->d_inode, + lower_path.dentry->d_inode); + fsstack_copy_inode_size(dentry->d_inode, lower_path.dentry->d_inode); + err = sdcardfs_fillattr(mnt, dentry->d_inode, stat); + stat->blocks = lower_stat.blocks; +out: sdcardfs_put_lower_path(dentry, &lower_path); - return 0; + return err; } const struct inode_operations sdcardfs_symlink_iops = { - .permission = sdcardfs_permission, - .setattr = sdcardfs_setattr, + .permission2 = sdcardfs_permission, + .setattr2 = sdcardfs_setattr, /* XXX Following operations are implemented, * but FUSE(sdcard) or FAT does not support them * These methods are *NOT* perfectly tested. @@ -779,14 +882,14 @@ const struct inode_operations sdcardfs_symlink_iops = { const struct inode_operations sdcardfs_dir_iops = { .create = sdcardfs_create, .lookup = sdcardfs_lookup, -#if 0 - .permission = sdcardfs_permission, -#endif + .permission = sdcardfs_permission_wrn, + .permission2 = sdcardfs_permission, .unlink = sdcardfs_unlink, .mkdir = sdcardfs_mkdir, .rmdir = sdcardfs_rmdir, .rename = sdcardfs_rename, - .setattr = sdcardfs_setattr, + .setattr = sdcardfs_setattr_wrn, + .setattr2 = sdcardfs_setattr, .getattr = sdcardfs_getattr, /* XXX Following operations are implemented, * but FUSE(sdcard) or FAT does not support them @@ -798,7 +901,9 @@ const struct inode_operations sdcardfs_dir_iops = { }; const struct inode_operations sdcardfs_main_iops = { - .permission = sdcardfs_permission, - .setattr = sdcardfs_setattr, + .permission = sdcardfs_permission_wrn, + .permission2 = sdcardfs_permission, + .setattr = sdcardfs_setattr_wrn, + .setattr2 = sdcardfs_setattr, .getattr = sdcardfs_getattr, }; diff --git a/fs/sdcardfs/lookup.c b/fs/sdcardfs/lookup.c index a01b06a514fd9..57199654f634a 100644 --- a/fs/sdcardfs/lookup.c +++ b/fs/sdcardfs/lookup.c @@ -36,8 +36,7 @@ int sdcardfs_init_dentry_cache(void) void sdcardfs_destroy_dentry_cache(void) { - if (sdcardfs_dentry_cachep) - kmem_cache_destroy(sdcardfs_dentry_cachep); + kmem_cache_destroy(sdcardfs_dentry_cachep); } void free_dentry_private_data(struct dentry *dentry) @@ -72,7 +71,8 @@ struct inode_data { static int sdcardfs_inode_test(struct inode *inode, void *candidate_data/*void *candidate_lower_inode*/) { struct inode *current_lower_inode = sdcardfs_lower_inode(inode); - userid_t current_userid = SDCARDFS_I(inode)->userid; + userid_t current_userid = SDCARDFS_I(inode)->data->userid; + if (current_lower_inode == ((struct inode_data *)candidate_data)->lower_inode && current_userid == ((struct inode_data *)candidate_data)->id) return 1; /* found a match */ @@ -91,7 +91,9 @@ struct inode *sdcardfs_iget(struct super_block *sb, struct inode *lower_inode, u struct sdcardfs_inode_info *info; struct inode_data data; struct inode *inode; /* the new inode to return */ - int err; + + if (!igrab(lower_inode)) + return ERR_PTR(-ESTALE); data.id = id; data.lower_inode = lower_inode; @@ -102,26 +104,23 @@ struct inode *sdcardfs_iget(struct super_block *sb, struct inode *lower_inode, u * instead. */ lower_inode->i_ino, /* hashval */ - sdcardfs_inode_test, /* inode comparison function */ + sdcardfs_inode_test, /* inode comparison function */ sdcardfs_inode_set, /* inode init function */ &data); /* data passed to test+set fxns */ if (!inode) { - err = -EACCES; iput(lower_inode); - return ERR_PTR(err); + return ERR_PTR(-ENOMEM); } - /* if found a cached inode, then just return it */ - if (!(inode->i_state & I_NEW)) + /* if found a cached inode, then just return it (after iput) */ + if (!(inode->i_state & I_NEW)) { + iput(lower_inode); return inode; + } /* initialize new inode */ info = SDCARDFS_I(inode); inode->i_ino = lower_inode->i_ino; - if (!igrab(lower_inode)) { - err = -ESTALE; - return ERR_PTR(err); - } sdcardfs_set_lower_inode(inode, lower_inode); inode->i_version++; @@ -164,27 +163,26 @@ struct inode *sdcardfs_iget(struct super_block *sb, struct inode *lower_inode, u } /* - * Connect a sdcardfs inode dentry/inode with several lower ones. This is - * the classic stackable file system "vnode interposition" action. - * - * @dentry: sdcardfs's dentry which interposes on lower one - * @sb: sdcardfs's super_block - * @lower_path: the lower path (caller does path_get/put) + * Helper interpose routine, called directly by ->lookup to handle + * spliced dentries. */ -int sdcardfs_interpose(struct dentry *dentry, struct super_block *sb, - struct path *lower_path, userid_t id) +static struct dentry *__sdcardfs_interpose(struct dentry *dentry, + struct super_block *sb, + struct path *lower_path, + userid_t id) { - int err = 0; struct inode *inode; struct inode *lower_inode; struct super_block *lower_sb; + struct dentry *ret_dentry = NULL; + struct dentry *alias = NULL; lower_inode = lower_path->dentry->d_inode; lower_sb = sdcardfs_lower_super(sb); /* check that the lower file system didn't cross a mount point */ if (lower_inode->i_sb != lower_sb) { - err = -EXDEV; + ret_dentry = ERR_PTR(-EXDEV); goto out; } @@ -196,14 +194,68 @@ int sdcardfs_interpose(struct dentry *dentry, struct super_block *sb, /* inherit lower inode number for sdcardfs's inode */ inode = sdcardfs_iget(sb, lower_inode, id); if (IS_ERR(inode)) { - err = PTR_ERR(inode); + ret_dentry = ERR_CAST(inode); + goto out; + } + + alias = d_find_any_alias(inode); + if (IS_ERR(alias)) { + ret_dentry = alias; goto out; } - d_add(dentry, inode); - update_derived_permission_lock(dentry); + /* Allow to 'obb' inode have multiple dentry */ + if (need_graft_path(dentry) || + (alias && alias->d_parent != dentry->d_parent)) { + d_add(dentry, inode); + } else { + ret_dentry = d_splice_alias(inode, dentry); + dentry = ret_dentry ?: dentry; + } + + if (!IS_ERR(dentry)) + update_derived_permission_lock(dentry); out: - return err; + return ret_dentry; +} + +/* + * Connect an sdcardfs inode dentry/inode with several lower ones. This is + * the classic stackable file system "vnode interposition" action. + * + * @dentry: sdcardfs's dentry which interposes on lower one + * @sb: sdcardfs's super_block + * @lower_path: the lower path (caller does path_get/put) + */ +int sdcardfs_interpose(struct dentry *dentry, struct super_block *sb, + struct path *lower_path, userid_t id) +{ + struct dentry *ret_dentry; + + ret_dentry = __sdcardfs_interpose(dentry, sb, lower_path, id); + return PTR_ERR(ret_dentry); +} + +struct sdcardfs_name_data { + struct dir_context ctx; + const struct qstr *to_find; + char *name; + bool found; +}; + +static int sdcardfs_name_match(void *__buf, const char *name, int namelen, + loff_t offset, u64 ino, unsigned int d_type) +{ + struct sdcardfs_name_data *buf = (struct sdcardfs_name_data *) __buf; + struct qstr candidate = QSTR_INIT(name, namelen); + + if (qstr_case_eq(buf->to_find, &candidate)) { + memcpy(buf->name, name, namelen); + buf->name[namelen] = 0; + buf->found = true; + return 1; + } + return 0; } /* @@ -219,9 +271,10 @@ static struct dentry *__sdcardfs_lookup(struct dentry *dentry, struct vfsmount *lower_dir_mnt; struct dentry *lower_dir_dentry = NULL; struct dentry *lower_dentry; - const char *name; + const struct qstr *name; struct path lower_path; - struct qstr this; + struct qstr dname; + struct dentry *ret_dentry = NULL; struct sdcardfs_sb_info *sbi; sbi = SDCARDFS_SB(dentry->d_sb); @@ -231,47 +284,90 @@ static struct dentry *__sdcardfs_lookup(struct dentry *dentry, if (IS_ROOT(dentry)) goto out; - name = dentry->d_name.name; + name = &dentry->d_name; /* now start the actual lookup procedure */ lower_dir_dentry = lower_parent_path->dentry; lower_dir_mnt = lower_parent_path->mnt; /* Use vfs_path_lookup to check if the dentry exists or not */ - err = vfs_path_lookup(lower_dir_dentry, lower_dir_mnt, name, 0, + err = vfs_path_lookup(lower_dir_dentry, lower_dir_mnt, name->name, 0, &lower_path); + /* check for other cases */ + if (err == -ENOENT) { + struct file *file; + const struct cred *cred = current_cred(); + + struct sdcardfs_name_data buffer = { + .ctx.actor = sdcardfs_name_match, + .to_find = name, + .name = __getname(), + .found = false, + }; + + if (!buffer.name) { + err = -ENOMEM; + goto out; + } + file = dentry_open(lower_parent_path, O_RDONLY, cred); + if (IS_ERR(file)) { + err = PTR_ERR(file); + goto put_name; + } + err = iterate_dir(file, &buffer.ctx); + fput(file); + if (err) + goto put_name; + + if (buffer.found) + err = vfs_path_lookup(lower_dir_dentry, + lower_dir_mnt, + buffer.name, 0, + &lower_path); + else + err = -ENOENT; +put_name: + __putname(buffer.name); + } /* no error: handle positive dentries */ if (!err) { /* check if the dentry is an obb dentry * if true, the lower_inode must be replaced with - * the inode of the graft path */ + * the inode of the graft path + */ - if(need_graft_path(dentry)) { + if (need_graft_path(dentry)) { /* setup_obb_dentry() - * The lower_path will be stored to the dentry's orig_path + * The lower_path will be stored to the dentry's orig_path * and the base obbpath will be copyed to the lower_path variable. * if an error returned, there's no change in the lower_path - * returns: -ERRNO if error (0: no error) */ + * returns: -ERRNO if error (0: no error) + */ err = setup_obb_dentry(dentry, &lower_path); - if(err) { + if (err) { /* if the sbi->obbpath is not available, we can optionally * setup the lower_path with its orig_path. * but, the current implementation just returns an error * because the sdcard daemon also regards this case as - * a lookup fail. */ - printk(KERN_INFO "sdcardfs: base obbpath is not available\n"); + * a lookup fail. + */ + pr_info("sdcardfs: base obbpath is not available\n"); sdcardfs_put_reset_orig_path(dentry); goto out; } } sdcardfs_set_lower_path(dentry, &lower_path); - err = sdcardfs_interpose(dentry, dentry->d_sb, &lower_path, id); - if (err) /* path_put underlying path on error */ + ret_dentry = + __sdcardfs_interpose(dentry, dentry->d_sb, &lower_path, id); + if (IS_ERR(ret_dentry)) { + err = PTR_ERR(ret_dentry); + /* path_put underlying path on error */ sdcardfs_put_reset_lower_path(dentry); + } goto out; } @@ -283,21 +379,24 @@ static struct dentry *__sdcardfs_lookup(struct dentry *dentry, goto out; /* instatiate a new negative dentry */ - this.name = name; - this.len = strlen(name); - this.hash = full_name_hash(this.name, this.len); - lower_dentry = d_lookup(lower_dir_dentry, &this); - if (lower_dentry) - goto setup_lower; - - lower_dentry = d_alloc(lower_dir_dentry, &this); + dname.name = name->name; + dname.len = name->len; + + /* See if the low-level filesystem might want + * to use its own hash + */ + lower_dentry = d_hash_and_lookup(lower_dir_dentry, &dname); + if (IS_ERR(lower_dentry)) + return lower_dentry; if (!lower_dentry) { - err = -ENOMEM; + /* We called vfs_path_lookup earlier, and did not get a negative + * dentry then. Don't confuse the lower filesystem by forcing + * one on it now... + */ + err = -ENOENT; goto out; } - d_add(lower_dentry, NULL); /* instantiate and hash */ -setup_lower: lower_path.dentry = lower_dentry; lower_path.mnt = mntget(lower_dir_mnt); sdcardfs_set_lower_path(dentry, &lower_path); @@ -311,14 +410,16 @@ static struct dentry *__sdcardfs_lookup(struct dentry *dentry, err = 0; out: - return ERR_PTR(err); + if (err) + return ERR_PTR(err); + return ret_dentry; } /* * On success: - * fills dentry object appropriate values and returns NULL. + * fills dentry object appropriate values and returns NULL. * On fail (== error) - * returns error ptr + * returns error ptr * * @dir : Parent inode. It is locked (dir->i_mutex) * @dentry : Target dentry to lookup. we should set each of fields. @@ -335,16 +436,13 @@ struct dentry *sdcardfs_lookup(struct inode *dir, struct dentry *dentry, parent = dget_parent(dentry); - if(!check_caller_access_to_name(parent->d_inode, dentry->d_name.name)) { + if (!check_caller_access_to_name(parent->d_inode, &dentry->d_name)) { ret = ERR_PTR(-EACCES); - printk(KERN_INFO "%s: need to check the caller's gid in packages.list\n" - " dentry: %s, task:%s\n", - __func__, dentry->d_name.name, current->comm); goto out_err; - } + } /* save current_cred and override it */ - OVERRIDE_CRED_PTR(SDCARDFS_SB(dir->i_sb), saved_cred); + OVERRIDE_CRED_PTR(SDCARDFS_SB(dir->i_sb), saved_cred, SDCARDFS_I(dir)); sdcardfs_get_lower_path(parent, &lower_parent_path); @@ -355,21 +453,19 @@ struct dentry *sdcardfs_lookup(struct inode *dir, struct dentry *dentry, goto out; } - ret = __sdcardfs_lookup(dentry, flags, &lower_parent_path, SDCARDFS_I(dir)->userid); + ret = __sdcardfs_lookup(dentry, flags, &lower_parent_path, + SDCARDFS_I(dir)->data->userid); if (IS_ERR(ret)) - { goto out; - } if (ret) dentry = ret; if (dentry->d_inode) { fsstack_copy_attr_times(dentry->d_inode, sdcardfs_lower_inode(dentry->d_inode)); - /* get drived permission */ - mutex_lock(&dentry->d_inode->i_mutex); + /* get derived permission */ get_derived_permission(parent, dentry); - fix_derived_permission(dentry->d_inode); - mutex_unlock(&dentry->d_inode->i_mutex); + fixup_tmp_permissions(dentry->d_inode); + fixup_lower_ownership(dentry, dentry->d_name.name); } /* update parent directory's atime */ fsstack_copy_attr_atime(parent->d_inode, diff --git a/fs/sdcardfs/main.c b/fs/sdcardfs/main.c index a6522286d7314..5931c87c7a1bc 100644 --- a/fs/sdcardfs/main.c +++ b/fs/sdcardfs/main.c @@ -28,9 +28,8 @@ enum { Opt_fsgid, Opt_gid, Opt_debug, - Opt_lower_fs, Opt_mask, - Opt_multiuser, // May need? + Opt_multiuser, Opt_userid, Opt_reserved_mb, Opt_err, @@ -49,7 +48,8 @@ static const match_table_t sdcardfs_tokens = { }; static int parse_options(struct super_block *sb, char *options, int silent, - int *debug, struct sdcardfs_mount_options *opts) + int *debug, struct sdcardfs_vfsmount_options *vfsopts, + struct sdcardfs_mount_options *opts) { char *p; substring_t args[MAX_OPT_ARGS]; @@ -58,10 +58,10 @@ static int parse_options(struct super_block *sb, char *options, int silent, /* by default, we use AID_MEDIA_RW as uid, gid */ opts->fs_low_uid = AID_MEDIA_RW; opts->fs_low_gid = AID_MEDIA_RW; - opts->mask = 0; + vfsopts->mask = 0; opts->multiuser = false; opts->fs_user_id = 0; - opts->gid = 0; + vfsopts->gid = 0; /* by default, 0MB is reserved */ opts->reserved_mb = 0; @@ -72,6 +72,7 @@ static int parse_options(struct super_block *sb, char *options, int silent, while ((p = strsep(&options, ",")) != NULL) { int token; + if (!*p) continue; @@ -94,7 +95,7 @@ static int parse_options(struct super_block *sb, char *options, int silent, case Opt_gid: if (match_int(&args[0], &option)) return 0; - opts->gid = option; + vfsopts->gid = option; break; case Opt_userid: if (match_int(&args[0], &option)) @@ -104,7 +105,7 @@ static int parse_options(struct super_block *sb, char *options, int silent, case Opt_mask: if (match_int(&args[0], &option)) return 0; - opts->mask = option; + vfsopts->mask = option; break; case Opt_multiuser: opts->multiuser = true; @@ -116,25 +117,81 @@ static int parse_options(struct super_block *sb, char *options, int silent, break; /* unknown option */ default: - if (!silent) { - printk( KERN_ERR "Unrecognized mount option \"%s\" " - "or missing value", p); - } + if (!silent) + pr_err("Unrecognized mount option \"%s\" or missing value", p); return -EINVAL; } } if (*debug) { - printk( KERN_INFO "sdcardfs : options - debug:%d\n", *debug); - printk( KERN_INFO "sdcardfs : options - uid:%d\n", + pr_info("sdcardfs : options - debug:%d\n", *debug); + pr_info("sdcardfs : options - uid:%d\n", opts->fs_low_uid); - printk( KERN_INFO "sdcardfs : options - gid:%d\n", + pr_info("sdcardfs : options - gid:%d\n", opts->fs_low_gid); } return 0; } +int parse_options_remount(struct super_block *sb, char *options, int silent, + struct sdcardfs_vfsmount_options *vfsopts) +{ + char *p; + substring_t args[MAX_OPT_ARGS]; + int option; + int debug; + + if (!options) + return 0; + + while ((p = strsep(&options, ",")) != NULL) { + int token; + + if (!*p) + continue; + + token = match_token(p, sdcardfs_tokens, args); + + switch (token) { + case Opt_debug: + debug = 1; + break; + case Opt_gid: + if (match_int(&args[0], &option)) + return 0; + vfsopts->gid = option; + + break; + case Opt_mask: + if (match_int(&args[0], &option)) + return 0; + vfsopts->mask = option; + break; + case Opt_multiuser: + case Opt_userid: + case Opt_fsuid: + case Opt_fsgid: + case Opt_reserved_mb: + pr_warn("Option \"%s\" can't be changed during remount\n", p); + break; + /* unknown option */ + default: + if (!silent) + pr_err("Unrecognized mount option \"%s\" or missing value", p); + return -EINVAL; + } + } + + if (debug) { + pr_info("sdcardfs : options - debug:%d\n", debug); + pr_info("sdcardfs : options - gid:%d\n", vfsopts->gid); + pr_info("sdcardfs : options - mask:%d\n", vfsopts->mask); + } + + return 0; +} + #if 0 /* * our custom d_alloc_root work-alike @@ -164,57 +221,58 @@ static struct dentry *sdcardfs_d_alloc_root(struct super_block *sb) #endif DEFINE_MUTEX(sdcardfs_super_list_lock); -LIST_HEAD(sdcardfs_super_list); EXPORT_SYMBOL_GPL(sdcardfs_super_list_lock); +LIST_HEAD(sdcardfs_super_list); EXPORT_SYMBOL_GPL(sdcardfs_super_list); /* * There is no need to lock the sdcardfs_super_info's rwsem as there is no * way anyone can have a reference to the superblock at this point in time. */ -static int sdcardfs_read_super(struct super_block *sb, const char *dev_name, - void *raw_data, int silent) +static int sdcardfs_read_super(struct vfsmount *mnt, struct super_block *sb, + const char *dev_name, void *raw_data, int silent) { int err = 0; int debug; struct super_block *lower_sb; struct path lower_path; struct sdcardfs_sb_info *sb_info; + struct sdcardfs_vfsmount_options *mnt_opt = mnt->data; struct inode *inode; - printk(KERN_INFO "sdcardfs version 2.0\n"); + pr_info("sdcardfs version 2.0\n"); if (!dev_name) { - printk(KERN_ERR - "sdcardfs: read_super: missing dev_name argument\n"); + pr_err("sdcardfs: read_super: missing dev_name argument\n"); err = -EINVAL; goto out; } - printk(KERN_INFO "sdcardfs: dev_name -> %s\n", dev_name); - printk(KERN_INFO "sdcardfs: options -> %s\n", (char *)raw_data); + pr_info("sdcardfs: dev_name -> %s\n", dev_name); + pr_info("sdcardfs: options -> %s\n", (char *)raw_data); + pr_info("sdcardfs: mnt -> %p\n", mnt); /* parse lower path */ err = kern_path(dev_name, LOOKUP_FOLLOW | LOOKUP_DIRECTORY, &lower_path); if (err) { - printk(KERN_ERR "sdcardfs: error accessing lower directory '%s'\n", dev_name); + pr_err("sdcardfs: error accessing lower directory '%s'\n", dev_name); goto out; } /* allocate superblock private data */ sb->s_fs_info = kzalloc(sizeof(struct sdcardfs_sb_info), GFP_KERNEL); if (!SDCARDFS_SB(sb)) { - printk(KERN_CRIT "sdcardfs: read_super: out of memory\n"); + pr_crit("sdcardfs: read_super: out of memory\n"); err = -ENOMEM; goto out_free; } sb_info = sb->s_fs_info; /* parse options */ - err = parse_options(sb, raw_data, silent, &debug, &sb_info->options); + err = parse_options(sb, raw_data, silent, &debug, mnt_opt, &sb_info->options); if (err) { - printk(KERN_ERR "sdcardfs: invalid options\n"); + pr_err("sdcardfs: invalid options\n"); goto out_freesbi; } @@ -267,23 +325,24 @@ static int sdcardfs_read_super(struct super_block *sb, const char *dev_name, /* setup permission policy */ sb_info->obbpath_s = kzalloc(PATH_MAX, GFP_KERNEL); mutex_lock(&sdcardfs_super_list_lock); - if(sb_info->options.multiuser) { - setup_derived_state(sb->s_root->d_inode, PERM_PRE_ROOT, sb_info->options.fs_user_id, AID_ROOT, false); + if (sb_info->options.multiuser) { + setup_derived_state(sb->s_root->d_inode, PERM_PRE_ROOT, + sb_info->options.fs_user_id, AID_ROOT, + false, SDCARDFS_I(sb->s_root->d_inode)->data); snprintf(sb_info->obbpath_s, PATH_MAX, "%s/obb", dev_name); - /*err = prepare_dir(sb_info->obbpath_s, - sb_info->options.fs_low_uid, - sb_info->options.fs_low_gid, 00755);*/ } else { - setup_derived_state(sb->s_root->d_inode, PERM_ROOT, sb_info->options.fs_low_uid, AID_ROOT, false); + setup_derived_state(sb->s_root->d_inode, PERM_ROOT, + sb_info->options.fs_user_id, AID_ROOT, + false, SDCARDFS_I(sb->s_root->d_inode)->data); snprintf(sb_info->obbpath_s, PATH_MAX, "%s/Android/obb", dev_name); } - fix_derived_permission(sb->s_root->d_inode); + fixup_tmp_permissions(sb->s_root->d_inode); sb_info->sb = sb; list_add(&sb_info->list, &sdcardfs_super_list); mutex_unlock(&sdcardfs_super_list_lock); if (!silent) - printk(KERN_INFO "sdcardfs: mounted on top of %s type %s\n", + pr_info("sdcardfs: mounted on top of %s type %s\n", dev_name, lower_sb->s_type->name); goto out; /* all is well */ @@ -305,58 +364,71 @@ static int sdcardfs_read_super(struct super_block *sb, const char *dev_name, return err; } -/* A feature which supports mount_nodev() with options */ -static struct dentry *mount_nodev_with_options(struct file_system_type *fs_type, - int flags, const char *dev_name, void *data, - int (*fill_super)(struct super_block *, const char *, void *, int)) +struct sdcardfs_mount_private { + struct vfsmount *mnt; + const char *dev_name; + void *raw_data; +}; +static int __sdcardfs_fill_super( + struct super_block *sb, + void *_priv, int silent) { - int error; - struct super_block *s = sget(fs_type, NULL, set_anon_super, flags, NULL); + struct sdcardfs_mount_private *priv = _priv; - if (IS_ERR(s)) - return ERR_CAST(s); + return sdcardfs_read_super(priv->mnt, + sb, priv->dev_name, priv->raw_data, silent); +} - s->s_flags = flags; +static struct dentry *sdcardfs_mount(struct vfsmount *mnt, + struct file_system_type *fs_type, int flags, + const char *dev_name, void *raw_data) +{ + struct sdcardfs_mount_private priv = { + .mnt = mnt, + .dev_name = dev_name, + .raw_data = raw_data + }; + + return mount_nodev(fs_type, flags, + &priv, __sdcardfs_fill_super); +} - error = fill_super(s, dev_name, data, flags & MS_SILENT ? 1 : 0); - if (error) { - deactivate_locked_super(s); - return ERR_PTR(error); - } - s->s_flags |= MS_ACTIVE; - return dget(s->s_root); +static struct dentry *sdcardfs_mount_wrn(struct file_system_type *fs_type, + int flags, const char *dev_name, void *raw_data) +{ + WARN(1, "sdcardfs does not support mount. Use mount2.\n"); + return ERR_PTR(-EINVAL); } -struct dentry *sdcardfs_mount(struct file_system_type *fs_type, int flags, - const char *dev_name, void *raw_data) +void *sdcardfs_alloc_mnt_data(void) { - /* - * dev_name is a lower_path_name, - * raw_data is a option string. - */ - return mount_nodev_with_options(fs_type, flags, dev_name, - raw_data, sdcardfs_read_super); + return kmalloc(sizeof(struct sdcardfs_vfsmount_options), GFP_KERNEL); } -void sdcardfs_kill_sb(struct super_block *sb) { +void sdcardfs_kill_sb(struct super_block *sb) +{ struct sdcardfs_sb_info *sbi; + if (sb->s_magic == SDCARDFS_SUPER_MAGIC) { sbi = SDCARDFS_SB(sb); mutex_lock(&sdcardfs_super_list_lock); list_del(&sbi->list); mutex_unlock(&sdcardfs_super_list_lock); } - generic_shutdown_super(sb); + kill_anon_super(sb); } static struct file_system_type sdcardfs_fs_type = { .owner = THIS_MODULE, .name = SDCARDFS_NAME, - .mount = sdcardfs_mount, + .mount = sdcardfs_mount_wrn, + .mount2 = sdcardfs_mount, + .alloc_mnt_data = sdcardfs_alloc_mnt_data, .kill_sb = sdcardfs_kill_sb, .fs_flags = 0, }; +MODULE_ALIAS_FS(SDCARDFS_NAME); static int __init init_sdcardfs_fs(void) { @@ -392,10 +464,15 @@ static void __exit exit_sdcardfs_fs(void) pr_info("Completed sdcardfs module unload\n"); } -MODULE_AUTHOR("Erez Zadok, Filesystems and Storage Lab, Stony Brook University" - " (http://www.fsl.cs.sunysb.edu/)"); -MODULE_DESCRIPTION("Wrapfs " SDCARDFS_VERSION - " (http://wrapfs.filesystems.org/)"); +/* Original wrapfs authors */ +MODULE_AUTHOR("Erez Zadok, Filesystems and Storage Lab, Stony Brook University (http://www.fsl.cs.sunysb.edu/)"); + +/* Original sdcardfs authors */ +MODULE_AUTHOR("Woojoong Lee, Daeho Jeong, Kitae Lee, Yeongjin Gil System Memory Lab., Samsung Electronics"); + +/* Current maintainer */ +MODULE_AUTHOR("Daniel Rosenberg, Google"); +MODULE_DESCRIPTION("Sdcardfs " SDCARDFS_VERSION); MODULE_LICENSE("GPL"); module_init(init_sdcardfs_fs); diff --git a/fs/sdcardfs/mmap.c b/fs/sdcardfs/mmap.c index acbaee05e963a..f61896128cfe0 100644 --- a/fs/sdcardfs/mmap.c +++ b/fs/sdcardfs/mmap.c @@ -23,28 +23,46 @@ static int sdcardfs_fault(struct vm_area_struct *vma, struct vm_fault *vmf) { int err; - struct file *file, *lower_file; + struct file *file; const struct vm_operations_struct *lower_vm_ops; - struct vm_area_struct lower_vma; - memcpy(&lower_vma, vma, sizeof(struct vm_area_struct)); - file = lower_vma.vm_file; + file = (struct file *)vma->vm_private_data; lower_vm_ops = SDCARDFS_F(file)->lower_vm_ops; BUG_ON(!lower_vm_ops); - lower_file = sdcardfs_lower_file(file); - /* - * XXX: vm_ops->fault may be called in parallel. Because we have to - * resort to temporarily changing the vma->vm_file to point to the - * lower file, a concurrent invocation of sdcardfs_fault could see a - * different value. In this workaround, we keep a different copy of - * the vma structure in our stack, so we never expose a different - * value of the vma->vm_file called to us, even temporarily. A - * better fix would be to change the calling semantics of ->fault to - * take an explicit file pointer. - */ - lower_vma.vm_file = lower_file; - err = lower_vm_ops->fault(&lower_vma, vmf); + err = lower_vm_ops->fault(vma, vmf); + return err; +} + +static void sdcardfs_vm_open(struct vm_area_struct *vma) +{ + struct file *file = (struct file *)vma->vm_private_data; + + get_file(file); +} + +static void sdcardfs_vm_close(struct vm_area_struct *vma) +{ + struct file *file = (struct file *)vma->vm_private_data; + + fput(file); +} + +static int sdcardfs_page_mkwrite(struct vm_area_struct *vma, + struct vm_fault *vmf) +{ + int err = 0; + struct file *file; + const struct vm_operations_struct *lower_vm_ops; + + file = (struct file *)vma->vm_private_data; + lower_vm_ops = SDCARDFS_F(file)->lower_vm_ops; + BUG_ON(!lower_vm_ops); + if (!lower_vm_ops->page_mkwrite) + goto out; + + err = lower_vm_ops->page_mkwrite(vma, vmf); +out: return err; } @@ -52,30 +70,20 @@ static ssize_t sdcardfs_direct_IO(int rw, struct kiocb *iocb, struct iov_iter *iter, loff_t pos) { /* - * This function returns zero on purpose in order to support direct IO. - * __dentry_open checks a_ops->direct_IO and returns EINVAL if it is null. - * - * However, this function won't be called by certain file operations - * including generic fs functions. * reads and writes are delivered to - * the lower file systems and the direct IOs will be handled by them. - * - * NOTE: exceptionally, on the recent kernels (since Linux 3.8.x), - * swap_writepage invokes this function directly. + * This function should never be called directly. We need it + * to exist, to get past a check in open_check_o_direct(), + * which is called from do_last(). */ - printk(KERN_INFO "%s, operation is not supported\n", __func__); - return 0; + return -EINVAL; } -/* - * XXX: the default address_space_ops for sdcardfs is empty. We cannot set - * our inode->i_mapping->a_ops to NULL because too many code paths expect - * the a_ops vector to be non-NULL. - */ const struct address_space_operations sdcardfs_aops = { - /* empty on purpose */ .direct_IO = sdcardfs_direct_IO, }; const struct vm_operations_struct sdcardfs_vm_ops = { .fault = sdcardfs_fault, + .page_mkwrite = sdcardfs_page_mkwrite, + .open = sdcardfs_vm_open, + .close = sdcardfs_vm_close, }; diff --git a/fs/sdcardfs/multiuser.h b/fs/sdcardfs/multiuser.h index 923ba101dfa9f..85341e753f8c9 100644 --- a/fs/sdcardfs/multiuser.h +++ b/fs/sdcardfs/multiuser.h @@ -18,20 +18,36 @@ * General Public License. */ -#define MULTIUSER_APP_PER_USER_RANGE 100000 +#define AID_USER_OFFSET 100000 /* offset for uid ranges for each user */ +#define AID_APP_START 10000 /* first app user */ +#define AID_APP_END 19999 /* last app user */ +#define AID_CACHE_GID_START 20000 /* start of gids for apps to mark cached data */ +#define AID_EXT_GID_START 30000 /* start of gids for apps to mark external data */ +#define AID_EXT_CACHE_GID_START 40000 /* start of gids for apps to mark external cached data */ +#define AID_EXT_CACHE_GID_END 49999 /* end of gids for apps to mark external cached data */ +#define AID_SHARED_GID_START 50000 /* start of gids for apps in each user to share */ typedef uid_t userid_t; typedef uid_t appid_t; -static inline userid_t multiuser_get_user_id(uid_t uid) { - return uid / MULTIUSER_APP_PER_USER_RANGE; +static inline uid_t multiuser_get_uid(userid_t user_id, appid_t app_id) +{ + return (user_id * AID_USER_OFFSET) + (app_id % AID_USER_OFFSET); } -static inline appid_t multiuser_get_app_id(uid_t uid) { - return uid % MULTIUSER_APP_PER_USER_RANGE; +static inline bool uid_is_app(uid_t uid) +{ + appid_t appid = uid % AID_USER_OFFSET; + + return appid >= AID_APP_START && appid <= AID_APP_END; } -static inline uid_t multiuser_get_uid(userid_t userId, appid_t appId) { - return userId * MULTIUSER_APP_PER_USER_RANGE + (appId % MULTIUSER_APP_PER_USER_RANGE); +static inline gid_t multiuser_get_ext_cache_gid(uid_t uid) +{ + return uid - AID_APP_START + AID_EXT_CACHE_GID_START; } +static inline gid_t multiuser_get_ext_gid(uid_t uid) +{ + return uid - AID_APP_START + AID_EXT_GID_START; +} diff --git a/fs/sdcardfs/packagelist.c b/fs/sdcardfs/packagelist.c index fead71eac95f2..d552dde9c1309 100644 --- a/fs/sdcardfs/packagelist.c +++ b/fs/sdcardfs/packagelist.c @@ -20,8 +20,10 @@ #include "sdcardfs.h" #include +#include #include - +#include +#include #include #include @@ -29,382 +31,827 @@ #include -#define STRING_BUF_SIZE (512) - struct hashtable_entry { struct hlist_node hlist; - void *key; - unsigned int value; + struct hlist_node dlist; /* for deletion cleanup */ + struct qstr key; + atomic_t value; }; -struct sb_list { - struct super_block *sb; - struct list_head list; -}; +static DEFINE_HASHTABLE(package_to_appid, 8); +static DEFINE_HASHTABLE(package_to_userid, 8); +static DEFINE_HASHTABLE(ext_to_groupid, 8); -struct packagelist_data { - DECLARE_HASHTABLE(package_to_appid,8); - struct mutex hashtable_lock; -}; +static struct kmem_cache *hashtable_entry_cachep; -static struct packagelist_data *pkgl_data_all; +static unsigned int full_name_case_hash(const unsigned char *name, unsigned int len) +{ + unsigned long hash = init_name_hash(); -static struct kmem_cache *hashtable_entry_cachep; + while (len--) + hash = partial_name_hash(tolower(*name++), hash); + return end_name_hash(hash); +} -static unsigned int str_hash(const char *key) { - int i; - unsigned int h = strlen(key); - char *data = (char *)key; +static inline void qstr_init(struct qstr *q, const char *name) +{ + q->name = name; + q->len = strlen(q->name); + q->hash = full_name_case_hash(q->name, q->len); +} + +static inline int qstr_copy(const struct qstr *src, struct qstr *dest) +{ + dest->name = kstrdup(src->name, GFP_KERNEL); + dest->hash_len = src->hash_len; + return !!dest->name; +} + + +static appid_t __get_appid(const struct qstr *key) +{ + struct hashtable_entry *hash_cur; + unsigned int hash = key->hash; + appid_t ret_id; - for (i = 0; i < strlen(key); i++) { - h = h * 31 + *data; - data++; + rcu_read_lock(); + hash_for_each_possible_rcu(package_to_appid, hash_cur, hlist, hash) { + if (qstr_case_eq(key, &hash_cur->key)) { + ret_id = atomic_read(&hash_cur->value); + rcu_read_unlock(); + return ret_id; + } } - return h; + rcu_read_unlock(); + return 0; +} + +appid_t get_appid(const char *key) +{ + struct qstr q; + + qstr_init(&q, key); + return __get_appid(&q); } -appid_t get_appid(void *pkgl_id, const char *app_name) +static appid_t __get_ext_gid(const struct qstr *key) { - struct packagelist_data *pkgl_dat = pkgl_data_all; struct hashtable_entry *hash_cur; - unsigned int hash = str_hash(app_name); + unsigned int hash = key->hash; appid_t ret_id; - mutex_lock(&pkgl_dat->hashtable_lock); - hash_for_each_possible(pkgl_dat->package_to_appid, hash_cur, hlist, hash) { - if (!strcasecmp(app_name, hash_cur->key)) { - ret_id = (appid_t)hash_cur->value; - mutex_unlock(&pkgl_dat->hashtable_lock); + rcu_read_lock(); + hash_for_each_possible_rcu(ext_to_groupid, hash_cur, hlist, hash) { + if (qstr_case_eq(key, &hash_cur->key)) { + ret_id = atomic_read(&hash_cur->value); + rcu_read_unlock(); return ret_id; } } - mutex_unlock(&pkgl_dat->hashtable_lock); + rcu_read_unlock(); + return 0; +} + +appid_t get_ext_gid(const char *key) +{ + struct qstr q; + + qstr_init(&q, key); + return __get_ext_gid(&q); +} + +static appid_t __is_excluded(const struct qstr *app_name, userid_t user) +{ + struct hashtable_entry *hash_cur; + unsigned int hash = app_name->hash; + + rcu_read_lock(); + hash_for_each_possible_rcu(package_to_userid, hash_cur, hlist, hash) { + if (atomic_read(&hash_cur->value) == user && + qstr_case_eq(app_name, &hash_cur->key)) { + rcu_read_unlock(); + return 1; + } + } + rcu_read_unlock(); return 0; } +appid_t is_excluded(const char *key, userid_t user) +{ + struct qstr q; + + qstr_init(&q, key); + return __is_excluded(&q, user); +} + /* Kernel has already enforced everything we returned through * derive_permissions_locked(), so this is used to lock down access - * even further, such as enforcing that apps hold sdcard_rw. */ -int check_caller_access_to_name(struct inode *parent_node, const char* name) { + * even further, such as enforcing that apps hold sdcard_rw. + */ +int check_caller_access_to_name(struct inode *parent_node, const struct qstr *name) +{ + struct qstr q_autorun = QSTR_LITERAL("autorun.inf"); + struct qstr q__android_secure = QSTR_LITERAL(".android_secure"); + struct qstr q_android_secure = QSTR_LITERAL("android_secure"); /* Always block security-sensitive files at root */ - if (parent_node && SDCARDFS_I(parent_node)->perm == PERM_ROOT) { - if (!strcasecmp(name, "autorun.inf") - || !strcasecmp(name, ".android_secure") - || !strcasecmp(name, "android_secure")) { + if (parent_node && SDCARDFS_I(parent_node)->data->perm == PERM_ROOT) { + if (qstr_case_eq(name, &q_autorun) + || qstr_case_eq(name, &q__android_secure) + || qstr_case_eq(name, &q_android_secure)) { return 0; } } /* Root always has access; access for any other UIDs should always - * be controlled through packages.list. */ - if (from_kuid(&init_user_ns, current_fsuid()) == 0) { + * be controlled through packages.list. + */ + if (from_kuid(&init_user_ns, current_fsuid()) == 0) return 1; - } /* No extra permissions to enforce */ return 1; } -/* This function is used when file opening. The open flags must be - * checked before calling check_caller_access_to_name() */ -int open_flags_to_access_mode(int open_flags) { - if((open_flags & O_ACCMODE) == O_RDONLY) { - return 0; /* R_OK */ - } else if ((open_flags & O_ACCMODE) == O_WRONLY) { - return 1; /* W_OK */ - } else { - /* Probably O_RDRW, but treat as default to be safe */ - return 1; /* R_OK | W_OK */ +static struct hashtable_entry *alloc_hashtable_entry(const struct qstr *key, + appid_t value) +{ + struct hashtable_entry *ret = kmem_cache_alloc(hashtable_entry_cachep, + GFP_KERNEL); + if (!ret) + return NULL; + INIT_HLIST_NODE(&ret->dlist); + INIT_HLIST_NODE(&ret->hlist); + + if (!qstr_copy(key, &ret->key)) { + kmem_cache_free(hashtable_entry_cachep, ret); + return NULL; } + + atomic_set(&ret->value, value); + return ret; } -static int insert_str_to_int_lock(struct packagelist_data *pkgl_dat, char *key, - unsigned int value) +static int insert_packagelist_appid_entry_locked(const struct qstr *key, appid_t value) { struct hashtable_entry *hash_cur; struct hashtable_entry *new_entry; - unsigned int hash = str_hash(key); + unsigned int hash = key->hash; - hash_for_each_possible(pkgl_dat->package_to_appid, hash_cur, hlist, hash) { - if (!strcasecmp(key, hash_cur->key)) { - hash_cur->value = value; + hash_for_each_possible_rcu(package_to_appid, hash_cur, hlist, hash) { + if (qstr_case_eq(key, &hash_cur->key)) { + atomic_set(&hash_cur->value, value); return 0; } } - new_entry = kmem_cache_alloc(hashtable_entry_cachep, GFP_KERNEL); + new_entry = alloc_hashtable_entry(key, value); + if (!new_entry) + return -ENOMEM; + hash_add_rcu(package_to_appid, &new_entry->hlist, hash); + return 0; +} + +static int insert_ext_gid_entry_locked(const struct qstr *key, appid_t value) +{ + struct hashtable_entry *hash_cur; + struct hashtable_entry *new_entry; + unsigned int hash = key->hash; + + /* An extension can only belong to one gid */ + hash_for_each_possible_rcu(ext_to_groupid, hash_cur, hlist, hash) { + if (qstr_case_eq(key, &hash_cur->key)) + return -EINVAL; + } + new_entry = alloc_hashtable_entry(key, value); if (!new_entry) return -ENOMEM; - new_entry->key = kstrdup(key, GFP_KERNEL); - new_entry->value = value; - hash_add(pkgl_dat->package_to_appid, &new_entry->hlist, hash); + hash_add_rcu(ext_to_groupid, &new_entry->hlist, hash); return 0; } -static void fixup_perms(struct super_block *sb) { - if (sb && sb->s_magic == SDCARDFS_SUPER_MAGIC) { - mutex_lock(&sb->s_root->d_inode->i_mutex); - get_derive_permissions_recursive(sb->s_root); - mutex_unlock(&sb->s_root->d_inode->i_mutex); +static int insert_userid_exclude_entry_locked(const struct qstr *key, userid_t value) +{ + struct hashtable_entry *hash_cur; + struct hashtable_entry *new_entry; + unsigned int hash = key->hash; + + /* Only insert if not already present */ + hash_for_each_possible_rcu(package_to_userid, hash_cur, hlist, hash) { + if (atomic_read(&hash_cur->value) == value && + qstr_case_eq(key, &hash_cur->key)) + return 0; } + new_entry = alloc_hashtable_entry(key, value); + if (!new_entry) + return -ENOMEM; + hash_add_rcu(package_to_userid, &new_entry->hlist, hash); + return 0; } -static int insert_str_to_int(struct packagelist_data *pkgl_dat, char *key, - unsigned int value) { - int ret; +static void fixup_all_perms_name(const struct qstr *key) +{ struct sdcardfs_sb_info *sbinfo; - mutex_lock(&sdcardfs_super_list_lock); - mutex_lock(&pkgl_dat->hashtable_lock); - ret = insert_str_to_int_lock(pkgl_dat, key, value); - mutex_unlock(&pkgl_dat->hashtable_lock); + struct limit_search limit = { + .flags = BY_NAME, + .name = QSTR_INIT(key->name, key->len), + }; + list_for_each_entry(sbinfo, &sdcardfs_super_list, list) { + if (sbinfo_has_sdcard_magic(sbinfo)) + fixup_perms_recursive(sbinfo->sb->s_root, &limit); + } +} +static void fixup_all_perms_name_userid(const struct qstr *key, userid_t userid) +{ + struct sdcardfs_sb_info *sbinfo; + struct limit_search limit = { + .flags = BY_NAME | BY_USERID, + .name = QSTR_INIT(key->name, key->len), + .userid = userid, + }; list_for_each_entry(sbinfo, &sdcardfs_super_list, list) { - if (sbinfo) { - fixup_perms(sbinfo->sb); - } + if (sbinfo_has_sdcard_magic(sbinfo)) + fixup_perms_recursive(sbinfo->sb->s_root, &limit); } +} + +static void fixup_all_perms_userid(userid_t userid) +{ + struct sdcardfs_sb_info *sbinfo; + struct limit_search limit = { + .flags = BY_USERID, + .userid = userid, + }; + list_for_each_entry(sbinfo, &sdcardfs_super_list, list) { + if (sbinfo_has_sdcard_magic(sbinfo)) + fixup_perms_recursive(sbinfo->sb->s_root, &limit); + } +} + +static int insert_packagelist_entry(const struct qstr *key, appid_t value) +{ + int err; + + mutex_lock(&sdcardfs_super_list_lock); + err = insert_packagelist_appid_entry_locked(key, value); + if (!err) + fixup_all_perms_name(key); mutex_unlock(&sdcardfs_super_list_lock); - return ret; + + return err; } -static void remove_str_to_int_lock(struct hashtable_entry *h_entry) { - kfree(h_entry->key); - hash_del(&h_entry->hlist); - kmem_cache_free(hashtable_entry_cachep, h_entry); +static int insert_ext_gid_entry(const struct qstr *key, appid_t value) +{ + int err; + + mutex_lock(&sdcardfs_super_list_lock); + err = insert_ext_gid_entry_locked(key, value); + mutex_unlock(&sdcardfs_super_list_lock); + + return err; } -static void remove_str_to_int(struct packagelist_data *pkgl_dat, const char *key) +static int insert_userid_exclude_entry(const struct qstr *key, userid_t value) { - struct sdcardfs_sb_info *sbinfo; - struct hashtable_entry *hash_cur; - unsigned int hash = str_hash(key); + int err; + mutex_lock(&sdcardfs_super_list_lock); - mutex_lock(&pkgl_dat->hashtable_lock); - hash_for_each_possible(pkgl_dat->package_to_appid, hash_cur, hlist, hash) { - if (!strcasecmp(key, hash_cur->key)) { - remove_str_to_int_lock(hash_cur); + err = insert_userid_exclude_entry_locked(key, value); + if (!err) + fixup_all_perms_name_userid(key, value); + mutex_unlock(&sdcardfs_super_list_lock); + + return err; +} + +static void free_hashtable_entry(struct hashtable_entry *entry) +{ + kfree(entry->key.name); + kmem_cache_free(hashtable_entry_cachep, entry); +} + +static void remove_packagelist_entry_locked(const struct qstr *key) +{ + struct hashtable_entry *hash_cur; + unsigned int hash = key->hash; + struct hlist_node *h_t; + HLIST_HEAD(free_list); + + hash_for_each_possible_rcu(package_to_userid, hash_cur, hlist, hash) { + if (qstr_case_eq(key, &hash_cur->key)) { + hash_del_rcu(&hash_cur->hlist); + hlist_add_head(&hash_cur->dlist, &free_list); + } + } + hash_for_each_possible_rcu(package_to_appid, hash_cur, hlist, hash) { + if (qstr_case_eq(key, &hash_cur->key)) { + hash_del_rcu(&hash_cur->hlist); + hlist_add_head(&hash_cur->dlist, &free_list); break; } } - mutex_unlock(&pkgl_dat->hashtable_lock); - list_for_each_entry(sbinfo, &sdcardfs_super_list, list) { - if (sbinfo) { - fixup_perms(sbinfo->sb); + synchronize_rcu(); + hlist_for_each_entry_safe(hash_cur, h_t, &free_list, dlist) + free_hashtable_entry(hash_cur); +} + +static void remove_packagelist_entry(const struct qstr *key) +{ + mutex_lock(&sdcardfs_super_list_lock); + remove_packagelist_entry_locked(key); + fixup_all_perms_name(key); + mutex_unlock(&sdcardfs_super_list_lock); +} + +static void remove_ext_gid_entry_locked(const struct qstr *key, gid_t group) +{ + struct hashtable_entry *hash_cur; + unsigned int hash = key->hash; + + hash_for_each_possible_rcu(ext_to_groupid, hash_cur, hlist, hash) { + if (qstr_case_eq(key, &hash_cur->key) && atomic_read(&hash_cur->value) == group) { + hash_del_rcu(&hash_cur->hlist); + synchronize_rcu(); + free_hashtable_entry(hash_cur); + break; } } +} + +static void remove_ext_gid_entry(const struct qstr *key, gid_t group) +{ + mutex_lock(&sdcardfs_super_list_lock); + remove_ext_gid_entry_locked(key, group); mutex_unlock(&sdcardfs_super_list_lock); - return; } -static void remove_all_hashentrys(struct packagelist_data *pkgl_dat) +static void remove_userid_all_entry_locked(userid_t userid) { struct hashtable_entry *hash_cur; struct hlist_node *h_t; + HLIST_HEAD(free_list); int i; - mutex_lock(&pkgl_dat->hashtable_lock); - hash_for_each_safe(pkgl_dat->package_to_appid, i, h_t, hash_cur, hlist) - remove_str_to_int_lock(hash_cur); - mutex_unlock(&pkgl_dat->hashtable_lock); - hash_init(pkgl_dat->package_to_appid); + + hash_for_each_rcu(package_to_userid, i, hash_cur, hlist) { + if (atomic_read(&hash_cur->value) == userid) { + hash_del_rcu(&hash_cur->hlist); + hlist_add_head(&hash_cur->dlist, &free_list); + } + } + synchronize_rcu(); + hlist_for_each_entry_safe(hash_cur, h_t, &free_list, dlist) { + free_hashtable_entry(hash_cur); + } } -static struct packagelist_data * packagelist_create(void) +static void remove_userid_all_entry(userid_t userid) { - struct packagelist_data *pkgl_dat; + mutex_lock(&sdcardfs_super_list_lock); + remove_userid_all_entry_locked(userid); + fixup_all_perms_userid(userid); + mutex_unlock(&sdcardfs_super_list_lock); +} - pkgl_dat = kmalloc(sizeof(*pkgl_dat), GFP_KERNEL | __GFP_ZERO); - if (!pkgl_dat) { - printk(KERN_ERR "sdcardfs: Failed to create hash\n"); - return ERR_PTR(-ENOMEM); +static void remove_userid_exclude_entry_locked(const struct qstr *key, userid_t userid) +{ + struct hashtable_entry *hash_cur; + unsigned int hash = key->hash; + + hash_for_each_possible_rcu(package_to_userid, hash_cur, hlist, hash) { + if (qstr_case_eq(key, &hash_cur->key) && + atomic_read(&hash_cur->value) == userid) { + hash_del_rcu(&hash_cur->hlist); + synchronize_rcu(); + free_hashtable_entry(hash_cur); + break; + } } +} - mutex_init(&pkgl_dat->hashtable_lock); - hash_init(pkgl_dat->package_to_appid); - - return pkgl_dat; +static void remove_userid_exclude_entry(const struct qstr *key, userid_t userid) +{ + mutex_lock(&sdcardfs_super_list_lock); + remove_userid_exclude_entry_locked(key, userid); + fixup_all_perms_name_userid(key, userid); + mutex_unlock(&sdcardfs_super_list_lock); } -static void packagelist_destroy(struct packagelist_data *pkgl_dat) +static void packagelist_destroy(void) { - remove_all_hashentrys(pkgl_dat); - printk(KERN_INFO "sdcardfs: destroyed packagelist pkgld\n"); - kfree(pkgl_dat); + struct hashtable_entry *hash_cur; + struct hlist_node *h_t; + HLIST_HEAD(free_list); + int i; + + mutex_lock(&sdcardfs_super_list_lock); + hash_for_each_rcu(package_to_appid, i, hash_cur, hlist) { + hash_del_rcu(&hash_cur->hlist); + hlist_add_head(&hash_cur->dlist, &free_list); + } + hash_for_each_rcu(package_to_userid, i, hash_cur, hlist) { + hash_del_rcu(&hash_cur->hlist); + hlist_add_head(&hash_cur->dlist, &free_list); + } + synchronize_rcu(); + hlist_for_each_entry_safe(hash_cur, h_t, &free_list, dlist) + free_hashtable_entry(hash_cur); + mutex_unlock(&sdcardfs_super_list_lock); + pr_info("sdcardfs: destroyed packagelist pkgld\n"); } -struct package_appid { +struct package_details { struct config_item item; - int add_pid; + struct qstr name; }; -static inline struct package_appid *to_package_appid(struct config_item *item) +static inline struct package_details *to_package_details(struct config_item *item) { - return item ? container_of(item, struct package_appid, item) : NULL; + return item ? container_of(item, struct package_details, item) : NULL; } -static struct configfs_attribute package_appid_attr_add_pid = { - .ca_owner = THIS_MODULE, - .ca_name = "appid", - .ca_mode = S_IRUGO | S_IWUGO, -}; +CONFIGFS_ATTR_STRUCT(package_details); +#define PACKAGE_DETAILS_ATTR(_name, _mode, _show, _store) \ +struct package_details_attribute package_details_attr_##_name = __CONFIGFS_ATTR(_name, _mode, _show, _store) +#define PACKAGE_DETAILS_ATTRIBUTE(name) (&package_details_attr_##name.attr) -static struct configfs_attribute *package_appid_attrs[] = { - &package_appid_attr_add_pid, - NULL, -}; +static ssize_t package_details_appid_show(struct package_details *package_details, + char *page) +{ + return scnprintf(page, PAGE_SIZE, "%u\n", __get_appid(&package_details->name)); +} + +static ssize_t package_details_appid_store(struct package_details *package_details, + const char *page, size_t count) +{ + unsigned int tmp; + int ret; + + ret = kstrtouint(page, 10, &tmp); + if (ret) + return ret; + + ret = insert_packagelist_entry(&package_details->name, tmp); + + if (ret) + return ret; + + return count; +} -static ssize_t package_appid_attr_show(struct config_item *item, - struct configfs_attribute *attr, +static ssize_t package_details_excluded_userids_show(struct package_details *package_details, char *page) { - ssize_t count; - count = sprintf(page, "%d\n", get_appid(pkgl_data_all, item->ci_name)); + struct hashtable_entry *hash_cur; + unsigned int hash = package_details->name.hash; + int count = 0; + + rcu_read_lock(); + hash_for_each_possible_rcu(package_to_userid, hash_cur, hlist, hash) { + if (qstr_case_eq(&package_details->name, &hash_cur->key)) + count += scnprintf(page + count, PAGE_SIZE - count, + "%d ", atomic_read(&hash_cur->value)); + } + rcu_read_unlock(); + if (count) + count--; + count += scnprintf(page + count, PAGE_SIZE - count, "\n"); return count; } -static ssize_t package_appid_attr_store(struct config_item *item, - struct configfs_attribute *attr, +static ssize_t package_details_excluded_userids_store(struct package_details *package_details, const char *page, size_t count) { - struct package_appid *package_appid = to_package_appid(item); - unsigned long tmp; - char *p = (char *) page; + unsigned int tmp; int ret; - tmp = simple_strtoul(p, &p, 10); - if (!p || (*p && (*p != '\n'))) - return -EINVAL; + ret = kstrtouint(page, 10, &tmp); + if (ret) + return ret; + + ret = insert_userid_exclude_entry(&package_details->name, tmp); - if (tmp > INT_MAX) - return -ERANGE; - ret = insert_str_to_int(pkgl_data_all, item->ci_name, (unsigned int)tmp); - package_appid->add_pid = tmp; if (ret) return ret; return count; } -static void package_appid_release(struct config_item *item) +static ssize_t package_details_clear_userid_store(struct package_details *package_details, + const char *page, size_t count) { - printk(KERN_INFO "sdcardfs: removing %s\n", item->ci_dentry->d_name.name); - /* item->ci_name is freed already, so we rely on the dentry */ - remove_str_to_int(pkgl_data_all, item->ci_dentry->d_name.name); - kfree(to_package_appid(item)); + unsigned int tmp; + int ret; + + ret = kstrtouint(page, 10, &tmp); + if (ret) + return ret; + remove_userid_exclude_entry(&package_details->name, tmp); + return count; +} + +static void package_details_release(struct config_item *item) +{ + struct package_details *package_details = to_package_details(item); + + pr_info("sdcardfs: removing %s\n", package_details->name.name); + remove_packagelist_entry(&package_details->name); + kfree(package_details->name.name); + kfree(package_details); } -static struct configfs_item_operations package_appid_item_ops = { - .release = package_appid_release, - .show_attribute = package_appid_attr_show, - .store_attribute = package_appid_attr_store, +PACKAGE_DETAILS_ATTR(appid, S_IRUGO | S_IWUGO, package_details_appid_show, package_details_appid_store); +PACKAGE_DETAILS_ATTR(excluded_userids, S_IRUGO | S_IWUGO, + package_details_excluded_userids_show, package_details_excluded_userids_store); +PACKAGE_DETAILS_ATTR(clear_userid, S_IWUGO, NULL, package_details_clear_userid_store); + +static struct configfs_attribute *package_details_attrs[] = { + PACKAGE_DETAILS_ATTRIBUTE(appid), + PACKAGE_DETAILS_ATTRIBUTE(excluded_userids), + PACKAGE_DETAILS_ATTRIBUTE(clear_userid), + NULL, +}; + +CONFIGFS_ATTR_OPS(package_details); + +static struct configfs_item_operations package_details_item_ops = { + .release = package_details_release, + .show_attribute = package_details_attr_show, + .store_attribute = package_details_attr_store, }; static struct config_item_type package_appid_type = { - .ct_item_ops = &package_appid_item_ops, - .ct_attrs = package_appid_attrs, + .ct_item_ops = &package_details_item_ops, + .ct_attrs = package_details_attrs, .ct_owner = THIS_MODULE, }; - -struct sdcardfs_packages { +struct extensions_value { struct config_group group; + unsigned int num; +}; + +struct extension_details { + struct config_item item; + struct qstr name; + unsigned int num; }; -static inline struct sdcardfs_packages *to_sdcardfs_packages(struct config_item *item) +static inline struct extensions_value *to_extensions_value(struct config_item *item) { - return item ? container_of(to_config_group(item), struct sdcardfs_packages, group) : NULL; + return item ? container_of(to_config_group(item), struct extensions_value, group) : NULL; } -static struct config_item *sdcardfs_packages_make_item(struct config_group *group, const char *name) +static inline struct extension_details *to_extension_details(struct config_item *item) { - struct package_appid *package_appid; + return item ? container_of(item, struct extension_details, item) : NULL; +} + +static void extension_details_release(struct config_item *item) +{ + struct extension_details *extension_details = to_extension_details(item); + + pr_info("sdcardfs: No longer mapping %s files to gid %d\n", + extension_details->name.name, extension_details->num); + remove_ext_gid_entry(&extension_details->name, extension_details->num); + kfree(extension_details->name.name); + kfree(extension_details); +} + +static struct configfs_item_operations extension_details_item_ops = { + .release = extension_details_release, +}; - package_appid = kzalloc(sizeof(struct package_appid), GFP_KERNEL); - if (!package_appid) +static struct config_item_type extension_details_type = { + .ct_item_ops = &extension_details_item_ops, + .ct_owner = THIS_MODULE, +}; + +static struct config_item *extension_details_make_item(struct config_group *group, const char *name) +{ + struct extensions_value *extensions_value = to_extensions_value(&group->cg_item); + struct extension_details *extension_details = kzalloc(sizeof(struct extension_details), GFP_KERNEL); + const char *tmp; + int ret; + + if (!extension_details) return ERR_PTR(-ENOMEM); - config_item_init_type_name(&package_appid->item, name, - &package_appid_type); + tmp = kstrdup(name, GFP_KERNEL); + if (!tmp) { + kfree(extension_details); + return ERR_PTR(-ENOMEM); + } + qstr_init(&extension_details->name, tmp); + ret = insert_ext_gid_entry(&extension_details->name, extensions_value->num); - package_appid->add_pid = 0; + if (ret) { + kfree(extension_details->name.name); + kfree(extension_details); + return ERR_PTR(ret); + } + config_item_init_type_name(&extension_details->item, name, &extension_details_type); - return &package_appid->item; + return &extension_details->item; } -static struct configfs_attribute sdcardfs_packages_attr_description = { - .ca_owner = THIS_MODULE, - .ca_name = "packages_gid.list", - .ca_mode = S_IRUGO, +static struct configfs_group_operations extensions_value_group_ops = { + .make_item = extension_details_make_item, }; -static struct configfs_attribute *sdcardfs_packages_attrs[] = { - &sdcardfs_packages_attr_description, - NULL, +static struct config_item_type extensions_name_type = { + .ct_group_ops = &extensions_value_group_ops, + .ct_owner = THIS_MODULE, +}; + +static struct config_group *extensions_make_group(struct config_group *group, const char *name) +{ + struct extensions_value *extensions_value; + unsigned int tmp; + int ret; + + extensions_value = kzalloc(sizeof(struct extensions_value), GFP_KERNEL); + if (!extensions_value) + return ERR_PTR(-ENOMEM); + ret = kstrtouint(name, 10, &tmp); + if (ret) { + kfree(extensions_value); + return ERR_PTR(ret); + } + + extensions_value->num = tmp; + config_group_init_type_name(&extensions_value->group, name, + &extensions_name_type); + return &extensions_value->group; +} + +static void extensions_drop_group(struct config_group *group, struct config_item *item) +{ + struct extensions_value *value = to_extensions_value(item); + + pr_info("sdcardfs: No longer mapping any files to gid %d\n", value->num); + kfree(value); +} + +static struct configfs_group_operations extensions_group_ops = { + .make_group = extensions_make_group, + .drop_item = extensions_drop_group, }; -static ssize_t packages_attr_show(struct config_item *item, - struct configfs_attribute *attr, +static struct config_item_type extensions_type = { + .ct_group_ops = &extensions_group_ops, + .ct_owner = THIS_MODULE, +}; + +struct config_group extension_group = { + .cg_item = { + .ci_namebuf = "extensions", + .ci_type = &extensions_type, + }, +}; + +struct packages { + struct configfs_subsystem subsystem; +}; + +static inline struct packages *to_packages(struct config_item *item) +{ + return item ? container_of(to_configfs_subsystem(to_config_group(item)), struct packages, subsystem) : NULL; +} + +CONFIGFS_ATTR_STRUCT(packages); +#define PACKAGES_ATTR(_name, _mode, _show, _store) \ +struct packages_attribute packages_attr_##_name = __CONFIGFS_ATTR(_name, _mode, _show, _store) +#define PACKAGES_ATTR_RO(_name, _show) \ +struct packages_attribute packages_attr_##_name = __CONFIGFS_ATTR_RO(_name, _show) + +static struct config_item *packages_make_item(struct config_group *group, const char *name) +{ + struct package_details *package_details; + const char *tmp; + + package_details = kzalloc(sizeof(struct package_details), GFP_KERNEL); + if (!package_details) + return ERR_PTR(-ENOMEM); + tmp = kstrdup(name, GFP_KERNEL); + if (!tmp) { + kfree(package_details); + return ERR_PTR(-ENOMEM); + } + qstr_init(&package_details->name, tmp); + config_item_init_type_name(&package_details->item, name, + &package_appid_type); + + return &package_details->item; +} + +static ssize_t packages_list_show(struct packages *packages, char *page) { - struct hashtable_entry *hash_cur; - struct hlist_node *h_t; + struct hashtable_entry *hash_cur_app; + struct hashtable_entry *hash_cur_user; int i; - int count = 0; - mutex_lock(&pkgl_data_all->hashtable_lock); - hash_for_each_safe(pkgl_data_all->package_to_appid, i, h_t, hash_cur, hlist) - count += snprintf(page + count, PAGE_SIZE - count, "%s %d\n", (char *)hash_cur->key, hash_cur->value); - mutex_unlock(&pkgl_data_all->hashtable_lock); - + int count = 0, written = 0; + const char errormsg[] = "\n"; + unsigned int hash; + + rcu_read_lock(); + hash_for_each_rcu(package_to_appid, i, hash_cur_app, hlist) { + written = scnprintf(page + count, PAGE_SIZE - sizeof(errormsg) - count, "%s %d\n", + hash_cur_app->key.name, atomic_read(&hash_cur_app->value)); + hash = hash_cur_app->key.hash; + hash_for_each_possible_rcu(package_to_userid, hash_cur_user, hlist, hash) { + if (qstr_case_eq(&hash_cur_app->key, &hash_cur_user->key)) { + written += scnprintf(page + count + written - 1, + PAGE_SIZE - sizeof(errormsg) - count - written + 1, + " %d\n", atomic_read(&hash_cur_user->value)) - 1; + } + } + if (count + written == PAGE_SIZE - sizeof(errormsg) - 1) { + count += scnprintf(page + count, PAGE_SIZE - count, errormsg); + break; + } + count += written; + } + rcu_read_unlock(); return count; } -static void sdcardfs_packages_release(struct config_item *item) +static ssize_t packages_remove_userid_store(struct packages *packages, + const char *page, size_t count) { + unsigned int tmp; + int ret; - printk(KERN_INFO "sdcardfs: destroyed something?\n"); - kfree(to_sdcardfs_packages(item)); + ret = kstrtouint(page, 10, &tmp); + if (ret) + return ret; + remove_userid_all_entry(tmp); + return count; } -static struct configfs_item_operations sdcardfs_packages_item_ops = { - .release = sdcardfs_packages_release, - .show_attribute = packages_attr_show, +struct packages_attribute packages_attr_packages_gid_list = __CONFIGFS_ATTR_RO(packages_gid.list, packages_list_show); +PACKAGES_ATTR(remove_userid, S_IWUGO, NULL, packages_remove_userid_store); + +static struct configfs_attribute *packages_attrs[] = { + &packages_attr_packages_gid_list.attr, + &packages_attr_remove_userid.attr, + NULL, +}; + +CONFIGFS_ATTR_OPS(packages) +static struct configfs_item_operations packages_item_ops = { + .show_attribute = packages_attr_show, + .store_attribute = packages_attr_store, }; /* * Note that, since no extra work is required on ->drop_item(), * no ->drop_item() is provided. */ -static struct configfs_group_operations sdcardfs_packages_group_ops = { - .make_item = sdcardfs_packages_make_item, +static struct configfs_group_operations packages_group_ops = { + .make_item = packages_make_item, }; -static struct config_item_type sdcardfs_packages_type = { - .ct_item_ops = &sdcardfs_packages_item_ops, - .ct_group_ops = &sdcardfs_packages_group_ops, - .ct_attrs = sdcardfs_packages_attrs, +static struct config_item_type packages_type = { + .ct_item_ops = &packages_item_ops, + .ct_group_ops = &packages_group_ops, + .ct_attrs = packages_attrs, .ct_owner = THIS_MODULE, }; -static struct configfs_subsystem sdcardfs_packages_subsys = { - .su_group = { - .cg_item = { - .ci_namebuf = "sdcardfs", - .ci_type = &sdcardfs_packages_type, +struct config_group *sd_default_groups[] = { + &extension_group, + NULL, +}; + +static struct packages sdcardfs_packages = { + .subsystem = { + .su_group = { + .cg_item = { + .ci_namebuf = "sdcardfs", + .ci_type = &packages_type, + }, + .default_groups = sd_default_groups, }, }, }; static int configfs_sdcardfs_init(void) { - int ret; - struct configfs_subsystem *subsys = &sdcardfs_packages_subsys; + int ret, i; + struct configfs_subsystem *subsys = &sdcardfs_packages.subsystem; + for (i = 0; sd_default_groups[i]; i++) + config_group_init(sd_default_groups[i]); config_group_init(&subsys->su_group); mutex_init(&subsys->su_mutex); ret = configfs_register_subsystem(subsys); if (ret) { - printk(KERN_ERR "Error %d while registering subsystem %s\n", + pr_err("Error %d while registering subsystem %s\n", ret, subsys->su_group.cg_item.ci_namebuf); } @@ -413,7 +860,7 @@ static int configfs_sdcardfs_init(void) static void configfs_sdcardfs_exit(void) { - configfs_unregister_subsystem(&sdcardfs_packages_subsys); + configfs_unregister_subsystem(&sdcardfs_packages.subsystem); } int packagelist_init(void) @@ -422,19 +869,17 @@ int packagelist_init(void) kmem_cache_create("packagelist_hashtable_entry", sizeof(struct hashtable_entry), 0, 0, NULL); if (!hashtable_entry_cachep) { - printk(KERN_ERR "sdcardfs: failed creating pkgl_hashtable entry slab cache\n"); + pr_err("sdcardfs: failed creating pkgl_hashtable entry slab cache\n"); return -ENOMEM; } - pkgl_data_all = packagelist_create(); configfs_sdcardfs_init(); - return 0; + return 0; } void packagelist_exit(void) { configfs_sdcardfs_exit(); - packagelist_destroy(pkgl_data_all); - if (hashtable_entry_cachep) - kmem_cache_destroy(hashtable_entry_cachep); + packagelist_destroy(); + kmem_cache_destroy(hashtable_entry_cachep); } diff --git a/fs/sdcardfs/sdcardfs.h b/fs/sdcardfs/sdcardfs.h index 62c59da5ca858..f26994cb869a2 100644 --- a/fs/sdcardfs/sdcardfs.h +++ b/fs/sdcardfs/sdcardfs.h @@ -29,6 +29,8 @@ #include #include #include +#include +#include #include #include #include @@ -52,7 +54,7 @@ #define SDCARDFS_ROOT_INO 1 /* useful for tracking code reachability */ -#define UDBG printk(KERN_DEFAULT "DBG:%s:%s:%d\n", __FILE__, __func__, __LINE__) +#define UDBG pr_default("DBG:%s:%s:%d\n", __FILE__, __func__, __LINE__) #define SDCARDFS_DIRENT_SIZE 256 @@ -65,71 +67,90 @@ #define AID_SDCARD_PICS 1033 /* external storage photos access */ #define AID_SDCARD_AV 1034 /* external storage audio/video access */ #define AID_SDCARD_ALL 1035 /* access all users external storage */ +#define AID_MEDIA_OBB 1059 /* obb files */ + +#define AID_SDCARD_IMAGE 1057 #define AID_PACKAGE_INFO 1027 -#define fix_derived_permission(x) \ + +/* + * Permissions are handled by our permission function. + * We don't want anyone who happens to look at our inode value to prematurely + * block access, so store more permissive values. These are probably never + * used. + */ +#define fixup_tmp_permissions(x) \ do { \ - (x)->i_uid = make_kuid(&init_user_ns, SDCARDFS_I(x)->d_uid); \ - (x)->i_gid = make_kgid(&init_user_ns, get_gid(SDCARDFS_I(x))); \ - (x)->i_mode = ((x)->i_mode & S_IFMT) | get_mode(SDCARDFS_I(x));\ + (x)->i_uid = make_kuid(&init_user_ns, \ + SDCARDFS_I(x)->data->d_uid); \ + (x)->i_gid = make_kgid(&init_user_ns, AID_SDCARD_RW); \ + (x)->i_mode = ((x)->i_mode & S_IFMT) | 0775;\ } while (0) - /* OVERRIDE_CRED() and REVERT_CRED() - * OVERRID_CRED() - * backup original task->cred - * and modifies task->cred->fsuid/fsgid to specified value. + * OVERRIDE_CRED() + * backup original task->cred + * and modifies task->cred->fsuid/fsgid to specified value. * REVERT_CRED() - * restore original task->cred->fsuid/fsgid. + * restore original task->cred->fsuid/fsgid. * These two macro should be used in pair, and OVERRIDE_CRED() should be * placed at the beginning of a function, right after variable declaration. */ -#define OVERRIDE_CRED(sdcardfs_sbi, saved_cred) \ - saved_cred = override_fsids(sdcardfs_sbi); \ - if (!saved_cred) { return -ENOMEM; } +#define OVERRIDE_CRED(sdcardfs_sbi, saved_cred, info) \ + do { \ + saved_cred = override_fsids(sdcardfs_sbi, info->data); \ + if (!saved_cred) \ + return -ENOMEM; \ + } while (0) -#define OVERRIDE_CRED_PTR(sdcardfs_sbi, saved_cred) \ - saved_cred = override_fsids(sdcardfs_sbi); \ - if (!saved_cred) { return ERR_PTR(-ENOMEM); } +#define OVERRIDE_CRED_PTR(sdcardfs_sbi, saved_cred, info) \ + do { \ + saved_cred = override_fsids(sdcardfs_sbi, info->data); \ + if (!saved_cred) \ + return ERR_PTR(-ENOMEM); \ + } while (0) #define REVERT_CRED(saved_cred) revert_fsids(saved_cred) -#define DEBUG_CRED() \ - printk("KAKJAGI: %s:%d fsuid %d fsgid %d\n", \ - __FUNCTION__, __LINE__, \ - (int)current->cred->fsuid, \ - (int)current->cred->fsgid); - /* Android 5.0 support */ /* Permission mode for a specific node. Controls how file permissions - * are derived for children nodes. */ + * are derived for children nodes. + */ typedef enum { - /* Nothing special; this node should just inherit from its parent. */ - PERM_INHERIT, - /* This node is one level above a normal root; used for legacy layouts - * which use the first level to represent user_id. */ - PERM_PRE_ROOT, - /* This node is "/" */ - PERM_ROOT, - /* This node is "/Android" */ - PERM_ANDROID, - /* This node is "/Android/data" */ - PERM_ANDROID_DATA, - /* This node is "/Android/obb" */ - PERM_ANDROID_OBB, - /* This node is "/Android/media" */ - PERM_ANDROID_MEDIA, + /* Nothing special; this node should just inherit from its parent. */ + PERM_INHERIT, + /* This node is one level above a normal root; used for legacy layouts + * which use the first level to represent user_id. + */ + PERM_PRE_ROOT, + /* This node is "/" */ + PERM_ROOT, + /* This node is "/Android" */ + PERM_ANDROID, + /* This node is "/Android/data" */ + PERM_ANDROID_DATA, + /* This node is "/Android/obb" */ + PERM_ANDROID_OBB, + /* This node is "/Android/media" */ + PERM_ANDROID_MEDIA, + /* This node is "/Android/[data|media|obb]/[package]" */ + PERM_ANDROID_PACKAGE, + /* This node is "/Android/[data|media|obb]/[package]/cache" */ + PERM_ANDROID_PACKAGE_CACHE, } perm_t; struct sdcardfs_sb_info; struct sdcardfs_mount_options; +struct sdcardfs_inode_info; +struct sdcardfs_inode_data; /* Do not directly use this function. Use OVERRIDE_CRED() instead. */ -const struct cred * override_fsids(struct sdcardfs_sb_info* sbi); +const struct cred *override_fsids(struct sdcardfs_sb_info *sbi, + struct sdcardfs_inode_data *data); /* Do not directly use this function, use REVERT_CRED() instead. */ -void revert_fsids(const struct cred * old_cred); +void revert_fsids(const struct cred *old_cred); /* operations vectors defined in specific files */ extern const struct file_operations sdcardfs_main_fops; @@ -161,14 +182,26 @@ struct sdcardfs_file_info { const struct vm_operations_struct *lower_vm_ops; }; -/* sdcardfs inode data in memory */ -struct sdcardfs_inode_info { - struct inode *lower_inode; - /* state derived based on current position in hierachy */ +struct sdcardfs_inode_data { + struct kref refcount; + bool abandoned; + perm_t perm; userid_t userid; uid_t d_uid; bool under_android; + bool under_cache; + bool under_obb; +}; + +/* sdcardfs inode data in memory */ +struct sdcardfs_inode_info { + struct inode *lower_inode; + /* state derived based on current position in hierarchy */ + struct sdcardfs_inode_data *data; + + /* top folder for ownership */ + struct sdcardfs_inode_data *top_data; struct inode vfs_inode; }; @@ -185,18 +218,25 @@ struct sdcardfs_mount_options { uid_t fs_low_uid; gid_t fs_low_gid; userid_t fs_user_id; - gid_t gid; - mode_t mask; bool multiuser; unsigned int reserved_mb; }; +struct sdcardfs_vfsmount_options { + gid_t gid; + mode_t mask; +}; + +extern int parse_options_remount(struct super_block *sb, char *options, int silent, + struct sdcardfs_vfsmount_options *vfsopts); + /* sdcardfs super-block data in memory */ struct sdcardfs_sb_info { struct super_block *sb; struct super_block *lower_sb; /* derived perm policy : some of options have been added - * to sdcardfs_mount_options (Android 4.4 support) */ + * to sdcardfs_mount_options (Android 4.4 support) + */ struct sdcardfs_mount_options options; spinlock_t lock; /* protects obbpath */ char *obbpath_s; @@ -307,7 +347,7 @@ static inline void sdcardfs_put_reset_##pname(const struct dentry *dent) \ { \ struct path pname; \ spin_lock(&SDCARDFS_D(dent)->lock); \ - if(SDCARDFS_D(dent)->pname.dentry) { \ + if (SDCARDFS_D(dent)->pname.dentry) { \ pathcpy(&pname, &SDCARDFS_D(dent)->pname); \ SDCARDFS_D(dent)->pname.dentry = NULL; \ SDCARDFS_D(dent)->pname.mnt = NULL; \ @@ -321,38 +361,97 @@ static inline void sdcardfs_put_reset_##pname(const struct dentry *dent) \ SDCARDFS_DENT_FUNC(lower_path) SDCARDFS_DENT_FUNC(orig_path) -static inline int get_gid(struct sdcardfs_inode_info *info) { - struct sdcardfs_sb_info *sb_info = SDCARDFS_SB(info->vfs_inode.i_sb); - if (sb_info->options.gid == AID_SDCARD_RW) { +static inline bool sbinfo_has_sdcard_magic(struct sdcardfs_sb_info *sbinfo) +{ + return sbinfo && sbinfo->sb + && sbinfo->sb->s_magic == SDCARDFS_SUPER_MAGIC; +} + +static inline struct sdcardfs_inode_data *data_get( + struct sdcardfs_inode_data *data) +{ + if (data) + kref_get(&data->refcount); + return data; +} + +static inline struct sdcardfs_inode_data *top_data_get( + struct sdcardfs_inode_info *info) +{ + return data_get(info->top_data); +} + +extern void data_release(struct kref *ref); + +static inline void data_put(struct sdcardfs_inode_data *data) +{ + kref_put(&data->refcount, data_release); +} + +static inline void release_own_data(struct sdcardfs_inode_info *info) +{ + /* + * This happens exactly once per inode. At this point, the inode that + * originally held this data is about to be freed, and all references + * to it are held as a top value, and will likely be released soon. + */ + info->data->abandoned = true; + data_put(info->data); +} + +static inline void set_top(struct sdcardfs_inode_info *info, + struct sdcardfs_inode_data *top) +{ + struct sdcardfs_inode_data *old_top = info->top_data; + + if (top) + data_get(top); + info->top_data = top; + if (old_top) + data_put(old_top); +} + +static inline int get_gid(struct vfsmount *mnt, + struct sdcardfs_inode_data *data) +{ + struct sdcardfs_vfsmount_options *opts = mnt->data; + + if (opts->gid == AID_SDCARD_RW) /* As an optimization, certain trusted system components only run * as owner but operate across all users. Since we're now handing * out the sdcard_rw GID only to trusted apps, we're okay relaxing * the user boundary enforcement for the default view. The UIDs - * assigned to app directories are still multiuser aware. */ + * assigned to app directories are still multiuser aware. + */ return AID_SDCARD_RW; - } else { - return multiuser_get_uid(info->userid, sb_info->options.gid); - } + else + return multiuser_get_uid(data->userid, opts->gid); } -static inline int get_mode(struct sdcardfs_inode_info *info) { + +static inline int get_mode(struct vfsmount *mnt, + struct sdcardfs_inode_info *info, + struct sdcardfs_inode_data *data) +{ int owner_mode; int filtered_mode; - struct sdcardfs_sb_info *sb_info = SDCARDFS_SB(info->vfs_inode.i_sb); - int visible_mode = 0775 & ~sb_info->options.mask; + struct sdcardfs_vfsmount_options *opts = mnt->data; + int visible_mode = 0775 & ~opts->mask; - if (info->perm == PERM_PRE_ROOT) { + + if (data->perm == PERM_PRE_ROOT) { /* Top of multi-user view should always be visible to ensure - * secondary users can traverse inside. */ + * secondary users can traverse inside. + */ visible_mode = 0711; - } else if (info->under_android) { + } else if (data->under_android) { /* Block "other" access to Android directories, since only apps * belonging to a specific user should be in there; we still - * leave +x open for the default view. */ - if (sb_info->options.gid == AID_SDCARD_RW) { + * leave +x open for the default view. + */ + if (opts->gid == AID_SDCARD_RW) visible_mode = visible_mode & ~0006; - } else { + else visible_mode = visible_mode & ~0007; - } } owner_mode = info->lower_inode->i_mode & 0700; filtered_mode = visible_mode & (owner_mode | (owner_mode >> 3) | (owner_mode >> 6)); @@ -377,7 +476,7 @@ static inline void sdcardfs_get_real_lower(const struct dentry *dent, /* in case of a local obb dentry * the orig_path should be returned */ - if(has_graft_path(dent)) + if (has_graft_path(dent)) sdcardfs_get_orig_path(dent, real_lower); else sdcardfs_get_lower_path(dent, real_lower); @@ -386,7 +485,7 @@ static inline void sdcardfs_get_real_lower(const struct dentry *dent, static inline void sdcardfs_put_real_lower(const struct dentry *dent, struct path *real_lower) { - if(has_graft_path(dent)) + if (has_graft_path(dent)) sdcardfs_put_orig_path(dent, real_lower); else sdcardfs_put_lower_path(dent, real_lower); @@ -396,20 +495,31 @@ extern struct mutex sdcardfs_super_list_lock; extern struct list_head sdcardfs_super_list; /* for packagelist.c */ -extern appid_t get_appid(void *pkgl_id, const char *app_name); -extern int check_caller_access_to_name(struct inode *parent_node, const char* name); -extern int open_flags_to_access_mode(int open_flags); +extern appid_t get_appid(const char *app_name); +extern appid_t get_ext_gid(const char *app_name); +extern appid_t is_excluded(const char *app_name, userid_t userid); +extern int check_caller_access_to_name(struct inode *parent_node, const struct qstr *name); extern int packagelist_init(void); extern void packagelist_exit(void); /* for derived_perm.c */ +#define BY_NAME (1 << 0) +#define BY_USERID (1 << 1) +struct limit_search { + unsigned int flags; + struct qstr name; + userid_t userid; +}; + extern void setup_derived_state(struct inode *inode, perm_t perm, - userid_t userid, uid_t uid, bool under_android); + userid_t userid, uid_t uid, bool under_android, + struct sdcardfs_inode_data *top); extern void get_derived_permission(struct dentry *parent, struct dentry *dentry); -extern void get_derived_permission_new(struct dentry *parent, struct dentry *dentry, struct dentry *newdentry); -extern void get_derive_permissions_recursive(struct dentry *parent); +extern void get_derived_permission_new(struct dentry *parent, struct dentry *dentry, const struct qstr *name); +extern void fixup_perms_recursive(struct dentry *dentry, struct limit_search *limit); extern void update_derived_permission_lock(struct dentry *dentry); +void fixup_lower_ownership(struct dentry *dentry, const char *name); extern int need_graft_path(struct dentry *dentry); extern int is_base_obbpath(struct dentry *dentry); extern int is_obbpath_invalid(struct dentry *dentry); @@ -419,6 +529,7 @@ extern int setup_obb_dentry(struct dentry *dentry, struct path *lower_path); static inline struct dentry *lock_parent(struct dentry *dentry) { struct dentry *dir = dget_parent(dentry); + mutex_lock_nested(&dir->d_inode->i_mutex, I_MUTEX_PARENT); return dir; } @@ -444,7 +555,7 @@ static inline int prepare_dir(const char *path_s, uid_t uid, gid_t gid, mode_t m goto out_unlock; } - err = vfs_mkdir(parent.dentry->d_inode, dent, mode); + err = vfs_mkdir2(parent.mnt, parent.dentry->d_inode, dent, mode); if (err) { if (err == -EEXIST) err = 0; @@ -455,7 +566,7 @@ static inline int prepare_dir(const char *path_s, uid_t uid, gid_t gid, mode_t m attrs.ia_gid = make_kgid(&init_user_ns, gid); attrs.ia_valid = ATTR_UID | ATTR_GID; mutex_lock(&dent->d_inode->i_mutex); - notify_change(dent, &attrs, NULL); + notify_change2(parent.mnt, dent, &attrs, NULL); mutex_unlock(&dent->d_inode->i_mutex); out_dput: @@ -513,12 +624,16 @@ static inline int check_min_free_space(struct dentry *dentry, size_t size, int d return 1; } -/* Copies attrs and maintains sdcardfs managed attrs */ +/* + * Copies attrs and maintains sdcardfs managed attrs + * Since our permission check handles all special permissions, set those to be open + */ static inline void sdcardfs_copy_and_fix_attrs(struct inode *dest, const struct inode *src) { - dest->i_mode = (src->i_mode & S_IFMT) | get_mode(SDCARDFS_I(dest)); - dest->i_uid = make_kuid(&init_user_ns, SDCARDFS_I(dest)->d_uid); - dest->i_gid = make_kgid(&init_user_ns, get_gid(SDCARDFS_I(dest))); + dest->i_mode = (src->i_mode & S_IFMT) | S_IRWXU | S_IRWXG | + S_IROTH | S_IXOTH; /* 0775 */ + dest->i_uid = make_kuid(&init_user_ns, SDCARDFS_I(dest)->data->d_uid); + dest->i_gid = make_kgid(&init_user_ns, AID_SDCARD_RW); dest->i_rdev = src->i_rdev; dest->i_atime = src->i_atime; dest->i_mtime = src->i_mtime; @@ -527,4 +642,23 @@ static inline void sdcardfs_copy_and_fix_attrs(struct inode *dest, const struct dest->i_flags = src->i_flags; set_nlink(dest, src->i_nlink); } + +static inline bool str_case_eq(const char *s1, const char *s2) +{ + return !strcasecmp(s1, s2); +} + +static inline bool str_n_case_eq(const char *s1, const char *s2, size_t len) +{ + return !strncasecmp(s1, s2, len); +} + +static inline bool qstr_case_eq(const struct qstr *q1, const struct qstr *q2) +{ + return q1->len == q2->len && str_n_case_eq(q1->name, q2->name, q1->len); +} + +/* */ +#define QSTR_LITERAL(string) QSTR_INIT(string, sizeof(string)-1) + #endif /* not _SDCARDFS_H_ */ diff --git a/fs/sdcardfs/super.c b/fs/sdcardfs/super.c index 1d6490128c990..7f4539b4b2493 100644 --- a/fs/sdcardfs/super.c +++ b/fs/sdcardfs/super.c @@ -26,6 +26,23 @@ */ static struct kmem_cache *sdcardfs_inode_cachep; +/* + * To support the top references, we must track some data separately. + * An sdcardfs_inode_info always has a reference to its data, and once set up, + * also has a reference to its top. The top may be itself, in which case it + * holds two references to its data. When top is changed, it takes a ref to the + * new data and then drops the ref to the old data. + */ +static struct kmem_cache *sdcardfs_inode_data_cachep; + +void data_release(struct kref *ref) +{ + struct sdcardfs_inode_data *data = + container_of(ref, struct sdcardfs_inode_data, refcount); + + kmem_cache_free(sdcardfs_inode_data_cachep, data); +} + /* final actions when unmounting a file system */ static void sdcardfs_put_super(struct super_block *sb) { @@ -36,7 +53,7 @@ static void sdcardfs_put_super(struct super_block *sb) if (!spd) return; - if(spd->obbpath_s) { + if (spd->obbpath_s) { kfree(spd->obbpath_s); path_put(&spd->obbpath); } @@ -64,7 +81,7 @@ static int sdcardfs_statfs(struct dentry *dentry, struct kstatfs *buf) if (sbi->options.reserved_mb) { /* Invalid statfs informations. */ if (buf->f_bsize == 0) { - printk(KERN_ERR "Returned block size is zero.\n"); + pr_err("Returned block size is zero.\n"); return -EINVAL; } @@ -100,14 +117,61 @@ static int sdcardfs_remount_fs(struct super_block *sb, int *flags, char *options * SILENT, but anything else left over is an error. */ if ((*flags & ~(MS_RDONLY | MS_MANDLOCK | MS_SILENT)) != 0) { - printk(KERN_ERR - "sdcardfs: remount flags 0x%x unsupported\n", *flags); + pr_err("sdcardfs: remount flags 0x%x unsupported\n", *flags); err = -EINVAL; } return err; } +/* + * @mnt: mount point we are remounting + * @sb: superblock we are remounting + * @flags: numeric mount options + * @options: mount options string + */ +static int sdcardfs_remount_fs2(struct vfsmount *mnt, struct super_block *sb, + int *flags, char *options) +{ + int err = 0; + + /* + * The VFS will take care of "ro" and "rw" flags among others. We + * can safely accept a few flags (RDONLY, MANDLOCK), and honor + * SILENT, but anything else left over is an error. + */ + if ((*flags & ~(MS_RDONLY | MS_MANDLOCK | MS_SILENT | MS_REMOUNT)) != 0) { + pr_err("sdcardfs: remount flags 0x%x unsupported\n", *flags); + err = -EINVAL; + } + pr_info("Remount options were %s for vfsmnt %p.\n", options, mnt); + err = parse_options_remount(sb, options, *flags & ~MS_SILENT, mnt->data); + + + return err; +} + +static void *sdcardfs_clone_mnt_data(void *data) +{ + struct sdcardfs_vfsmount_options *opt = kmalloc(sizeof(struct sdcardfs_vfsmount_options), GFP_KERNEL); + struct sdcardfs_vfsmount_options *old = data; + + if (!opt) + return NULL; + opt->gid = old->gid; + opt->mask = old->mask; + return opt; +} + +static void sdcardfs_copy_mnt_data(void *data, void *newdata) +{ + struct sdcardfs_vfsmount_options *old = data; + struct sdcardfs_vfsmount_options *new = newdata; + + old->gid = new->gid; + old->mask = new->mask; +} + /* * Called by iput() when the inode reference count reached zero * and the inode is not hashed anywhere. Used to clear anything @@ -119,6 +183,7 @@ static void sdcardfs_evict_inode(struct inode *inode) struct inode *lower_inode; truncate_inode_pages(&inode->i_data, 0); + set_top(SDCARDFS_I(inode), NULL); clear_inode(inode); /* * Decrement a reference to a lower_inode, which was incremented @@ -132,6 +197,7 @@ static void sdcardfs_evict_inode(struct inode *inode) static struct inode *sdcardfs_alloc_inode(struct super_block *sb) { struct sdcardfs_inode_info *i; + struct sdcardfs_inode_data *d; i = kmem_cache_alloc(sdcardfs_inode_cachep, GFP_KERNEL); if (!i) @@ -140,15 +206,33 @@ static struct inode *sdcardfs_alloc_inode(struct super_block *sb) /* memset everything up to the inode to 0 */ memset(i, 0, offsetof(struct sdcardfs_inode_info, vfs_inode)); + d = kmem_cache_alloc(sdcardfs_inode_data_cachep, + GFP_KERNEL | __GFP_ZERO); + if (!d) { + kmem_cache_free(sdcardfs_inode_cachep, i); + return NULL; + } + + i->data = d; + kref_init(&d->refcount); + i->vfs_inode.i_version = 1; return &i->vfs_inode; } -static void sdcardfs_destroy_inode(struct inode *inode) +static void i_callback(struct rcu_head *head) { + struct inode *inode = container_of(head, struct inode, i_rcu); + + release_own_data(SDCARDFS_I(inode)); kmem_cache_free(sdcardfs_inode_cachep, SDCARDFS_I(inode)); } +static void sdcardfs_destroy_inode(struct inode *inode) +{ + call_rcu(&inode->i_rcu, i_callback); +} + /* sdcardfs inode cache constructor */ static void init_once(void *obj) { @@ -159,22 +243,31 @@ static void init_once(void *obj) int sdcardfs_init_inode_cache(void) { - int err = 0; - sdcardfs_inode_cachep = kmem_cache_create("sdcardfs_inode_cache", sizeof(struct sdcardfs_inode_info), 0, SLAB_RECLAIM_ACCOUNT, init_once); + if (!sdcardfs_inode_cachep) - err = -ENOMEM; - return err; + return -ENOMEM; + + sdcardfs_inode_data_cachep = + kmem_cache_create("sdcardfs_inode_data_cache", + sizeof(struct sdcardfs_inode_data), 0, + SLAB_RECLAIM_ACCOUNT, NULL); + if (!sdcardfs_inode_data_cachep) { + kmem_cache_destroy(sdcardfs_inode_cachep); + return -ENOMEM; + } + + return 0; } /* sdcardfs inode cache destructor */ void sdcardfs_destroy_inode_cache(void) { - if (sdcardfs_inode_cachep) - kmem_cache_destroy(sdcardfs_inode_cachep); + kmem_cache_destroy(sdcardfs_inode_data_cachep); + kmem_cache_destroy(sdcardfs_inode_cachep); } /* @@ -190,19 +283,25 @@ static void sdcardfs_umount_begin(struct super_block *sb) lower_sb->s_op->umount_begin(lower_sb); } -static int sdcardfs_show_options(struct seq_file *m, struct dentry *root) +static int sdcardfs_show_options(struct vfsmount *mnt, struct seq_file *m, + struct dentry *root) { struct sdcardfs_sb_info *sbi = SDCARDFS_SB(root->d_sb); struct sdcardfs_mount_options *opts = &sbi->options; + struct sdcardfs_vfsmount_options *vfsopts = mnt->data; if (opts->fs_low_uid != 0) - seq_printf(m, ",uid=%u", opts->fs_low_uid); + seq_printf(m, ",fsuid=%u", opts->fs_low_uid); if (opts->fs_low_gid != 0) - seq_printf(m, ",gid=%u", opts->fs_low_gid); - + seq_printf(m, ",fsgid=%u", opts->fs_low_gid); + if (vfsopts->gid != 0) + seq_printf(m, ",gid=%u", vfsopts->gid); if (opts->multiuser) - seq_printf(m, ",multiuser"); - + seq_puts(m, ",multiuser"); + if (vfsopts->mask) + seq_printf(m, ",mask=%u", vfsopts->mask); + if (opts->fs_user_id) + seq_printf(m, ",userid=%u", opts->fs_user_id); if (opts->reserved_mb != 0) seq_printf(m, ",reserved=%uMB", opts->reserved_mb); @@ -213,9 +312,12 @@ const struct super_operations sdcardfs_sops = { .put_super = sdcardfs_put_super, .statfs = sdcardfs_statfs, .remount_fs = sdcardfs_remount_fs, + .remount_fs2 = sdcardfs_remount_fs2, + .clone_mnt_data = sdcardfs_clone_mnt_data, + .copy_mnt_data = sdcardfs_copy_mnt_data, .evict_inode = sdcardfs_evict_inode, .umount_begin = sdcardfs_umount_begin, - .show_options = sdcardfs_show_options, + .show_options2 = sdcardfs_show_options, .alloc_inode = sdcardfs_alloc_inode, .destroy_inode = sdcardfs_destroy_inode, .drop_inode = generic_delete_inode, diff --git a/fs/super.c b/fs/super.c index cdf6dec26549a..2693e90ab8762 100644 --- a/fs/super.c +++ b/fs/super.c @@ -682,7 +682,8 @@ struct super_block *user_get_super(dev_t dev) } /** - * do_remount_sb - asks filesystem to change mount options. + * do_remount_sb2 - asks filesystem to change mount options. + * @mnt: mount we are looking at * @sb: superblock in question * @flags: numeric part of options * @data: the rest of options @@ -690,7 +691,7 @@ struct super_block *user_get_super(dev_t dev) * * Alters the mount options of a mounted file system. */ -int do_remount_sb(struct super_block *sb, int flags, void *data, int force) +int do_remount_sb2(struct vfsmount *mnt, struct super_block *sb, int flags, void *data, int force) { int retval; int remount_ro; @@ -732,7 +733,16 @@ int do_remount_sb(struct super_block *sb, int flags, void *data, int force) } } - if (sb->s_op->remount_fs) { + if (mnt && sb->s_op->remount_fs2) { + retval = sb->s_op->remount_fs2(mnt, sb, &flags, data); + if (retval) { + if (!force) + goto cancel_readonly; + /* If forced remount, go ahead despite any errors */ + WARN(1, "forced remount of a %s fs returned %i\n", + sb->s_type->name, retval); + } + } else if (sb->s_op->remount_fs) { retval = sb->s_op->remount_fs(sb, &flags, data); if (retval) { if (!force) @@ -764,6 +774,11 @@ int do_remount_sb(struct super_block *sb, int flags, void *data, int force) return retval; } +int do_remount_sb(struct super_block *sb, int flags, void *data, int force) +{ + return do_remount_sb2(NULL, sb, flags, data, force); +} + static void do_emergency_remount(struct work_struct *work) { struct super_block *sb, *p = NULL; @@ -1086,7 +1101,7 @@ struct dentry *mount_single(struct file_system_type *fs_type, EXPORT_SYMBOL(mount_single); struct dentry * -mount_fs(struct file_system_type *type, int flags, const char *name, void *data) +mount_fs(struct file_system_type *type, int flags, const char *name, struct vfsmount *mnt, void *data) { struct dentry *root; struct super_block *sb; @@ -1103,7 +1118,10 @@ mount_fs(struct file_system_type *type, int flags, const char *name, void *data) goto out_free_secdata; } - root = type->mount(type, flags, name, data); + if (type->mount2) + root = type->mount2(mnt, type, flags, name, data); + else + root = type->mount(type, flags, name, data); if (IS_ERR(root)) { error = PTR_ERR(root); goto out_free_secdata; diff --git a/fs/utimes.c b/fs/utimes.c index aa138d64560a6..dfb457546c604 100644 --- a/fs/utimes.c +++ b/fs/utimes.c @@ -97,14 +97,14 @@ static int utimes_common(struct path *path, struct timespec *times) goto mnt_drop_write_and_out; if (!inode_owner_or_capable(inode)) { - error = inode_permission(inode, MAY_WRITE); + error = inode_permission2(path->mnt, inode, MAY_WRITE); if (error) goto mnt_drop_write_and_out; } } retry_deleg: mutex_lock(&inode->i_mutex); - error = notify_change(path->dentry, &newattrs, &delegated_inode); + error = notify_change2(path->mnt, path->dentry, &newattrs, &delegated_inode); mutex_unlock(&inode->i_mutex); if (delegated_inode) { error = break_deleg_wait(&delegated_inode); diff --git a/include/clocksource/arm_arch_timer.h b/include/clocksource/arm_arch_timer.h index 49766d24aef28..e14f77b7a0aa9 100644 --- a/include/clocksource/arm_arch_timer.h +++ b/include/clocksource/arm_arch_timer.h @@ -16,7 +16,7 @@ #ifndef __CLKSOURCE_ARM_ARCH_TIMER_H #define __CLKSOURCE_ARM_ARCH_TIMER_H -#include +#include #include #define ARCH_TIMER_CTRL_ENABLE (1 << 0) diff --git a/include/dt-bindings/input/input.h b/include/dt-bindings/input/input.h index 042e7b3b62963..885a2688d5fb8 100644 --- a/include/dt-bindings/input/input.h +++ b/include/dt-bindings/input/input.h @@ -269,6 +269,8 @@ #define KEY_MICMUTE 248 /* Mute / unmute the microphone */ +#define KEY_ANTENNA_DET 252 +#define KEY_ANTENNA_DET_UP 253 /* Code 255 is reserved for special needs of AT keyboard driver */ #define BTN_MISC 0x100 diff --git a/include/linux/clocksource.h b/include/linux/clocksource.h index d144e99d2399f..2abe24777b460 100644 --- a/include/linux/clocksource.h +++ b/include/linux/clocksource.h @@ -18,8 +18,6 @@ #include #include -/* clocksource cycle base type */ -typedef u64 cycle_t; struct clocksource; struct module; @@ -27,106 +25,6 @@ struct module; #include #endif -/** - * struct cyclecounter - hardware abstraction for a free running counter - * Provides completely state-free accessors to the underlying hardware. - * Depending on which hardware it reads, the cycle counter may wrap - * around quickly. Locking rules (if necessary) have to be defined - * by the implementor and user of specific instances of this API. - * - * @read: returns the current cycle value - * @mask: bitmask for two's complement - * subtraction of non 64 bit counters, - * see CLOCKSOURCE_MASK() helper macro - * @mult: cycle to nanosecond multiplier - * @shift: cycle to nanosecond divisor (power of two) - */ -struct cyclecounter { - cycle_t (*read)(const struct cyclecounter *cc); - cycle_t mask; - u32 mult; - u32 shift; -}; - -/** - * struct timecounter - layer above a %struct cyclecounter which counts nanoseconds - * Contains the state needed by timecounter_read() to detect - * cycle counter wrap around. Initialize with - * timecounter_init(). Also used to convert cycle counts into the - * corresponding nanosecond counts with timecounter_cyc2time(). Users - * of this code are responsible for initializing the underlying - * cycle counter hardware, locking issues and reading the time - * more often than the cycle counter wraps around. The nanosecond - * counter will only wrap around after ~585 years. - * - * @cc: the cycle counter used by this instance - * @cycle_last: most recent cycle counter value seen by - * timecounter_read() - * @nsec: continuously increasing count - */ -struct timecounter { - const struct cyclecounter *cc; - cycle_t cycle_last; - u64 nsec; -}; - -/** - * cyclecounter_cyc2ns - converts cycle counter cycles to nanoseconds - * @cc: Pointer to cycle counter. - * @cycles: Cycles - * - * XXX - This could use some mult_lxl_ll() asm optimization. Same code - * as in cyc2ns, but with unsigned result. - */ -static inline u64 cyclecounter_cyc2ns(const struct cyclecounter *cc, - cycle_t cycles) -{ - u64 ret = (u64)cycles; - ret = (ret * cc->mult) >> cc->shift; - return ret; -} - -/** - * timecounter_init - initialize a time counter - * @tc: Pointer to time counter which is to be initialized/reset - * @cc: A cycle counter, ready to be used. - * @start_tstamp: Arbitrary initial time stamp. - * - * After this call the current cycle register (roughly) corresponds to - * the initial time stamp. Every call to timecounter_read() increments - * the time stamp counter by the number of elapsed nanoseconds. - */ -extern void timecounter_init(struct timecounter *tc, - const struct cyclecounter *cc, - u64 start_tstamp); - -/** - * timecounter_read - return nanoseconds elapsed since timecounter_init() - * plus the initial time stamp - * @tc: Pointer to time counter. - * - * In other words, keeps track of time since the same epoch as - * the function which generated the initial time stamp. - */ -extern u64 timecounter_read(struct timecounter *tc); - -/** - * timecounter_cyc2time - convert a cycle counter to same - * time base as values returned by - * timecounter_read() - * @tc: Pointer to time counter. - * @cycle_tstamp: a value returned by tc->cc->read() - * - * Cycle counts that are converted correctly as long as they - * fall into the interval [-1/2 max cycle count, +1/2 max cycle count], - * with "max cycle count" == cs->mask+1. - * - * This allows conversion of cycle counter values which were generated - * in the past. - */ -extern u64 timecounter_cyc2time(struct timecounter *tc, - cycle_t cycle_tstamp); - /** * struct clocksource - hardware abstraction for a free running counter * Provides mostly state-free accessors to the underlying hardware. diff --git a/include/linux/dcache.h b/include/linux/dcache.h index f29c340bf6296..5d567e32d8b69 100644 --- a/include/linux/dcache.h +++ b/include/linux/dcache.h @@ -160,8 +160,8 @@ struct dentry_operations { char *(*d_dname)(struct dentry *, char *, int); struct vfsmount *(*d_automount)(struct path *); int (*d_manage)(struct dentry *, bool); + void (*d_canonical_path)(const struct path *, struct path *); struct inode *(*d_select_inode)(struct dentry *, unsigned); - void (*d_canonical_path)(const struct dentry *, struct path *); } ____cacheline_aligned; /* @@ -280,7 +280,7 @@ extern void d_rehash(struct dentry *); * This adds the entry to the hash queues and initializes @inode. * The entry was actually filled in earlier during d_alloc(). */ - + static inline void d_add(struct dentry *entry, struct inode *inode) { d_instantiate(entry, inode); @@ -345,7 +345,7 @@ extern char *dentry_path(struct dentry *, char *, int); * @dentry: dentry to get a reference to * * Given a dentry or %NULL pointer increment the reference count - * if appropriate and return the dentry. A dentry will not be + * if appropriate and return the dentry. A dentry will not be * destroyed when it has references. */ static inline struct dentry *dget_dlock(struct dentry *dentry) @@ -370,7 +370,7 @@ extern struct dentry *dget_parent(struct dentry *dentry); * * Returns true if the dentry passed is not currently hashed. */ - + static inline int d_unhashed(const struct dentry *dentry) { return hlist_bl_unhashed(&dentry->d_hash); diff --git a/include/linux/delay.h b/include/linux/delay.h index a6ecb34cf547d..0e303d1aacd8b 100644 --- a/include/linux/delay.h +++ b/include/linux/delay.h @@ -47,6 +47,11 @@ void msleep(unsigned int msecs); unsigned long msleep_interruptible(unsigned int msecs); void usleep_range(unsigned long min, unsigned long max); +static inline void usleep(unsigned long usecs) +{ + usleep_range(usecs, usecs); +} + static inline void ssleep(unsigned int seconds) { msleep(seconds * 1000); diff --git a/include/linux/fb.h b/include/linux/fb.h index 3cde50f14de03..3770513765fc0 100644 --- a/include/linux/fb.h +++ b/include/linux/fb.h @@ -503,6 +503,7 @@ struct fb_info { } *apertures; bool skip_vt_switch; /* no VT switch on suspend/resume required */ + int blank; }; static inline struct apertures_struct *alloc_apertures(unsigned int max_num) { diff --git a/include/linux/fs.h b/include/linux/fs.h index 835dabb5a9dfe..a942e614dfaed 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -1422,13 +1422,21 @@ extern bool inode_owner_or_capable(const struct inode *inode); * VFS helper functions.. */ extern int vfs_create(struct inode *, struct dentry *, umode_t, bool); +extern int vfs_create2(struct vfsmount *, struct inode *, struct dentry *, umode_t, bool); extern int vfs_mkdir(struct inode *, struct dentry *, umode_t); +extern int vfs_mkdir2(struct vfsmount *, struct inode *, struct dentry *, umode_t); extern int vfs_mknod(struct inode *, struct dentry *, umode_t, dev_t); +extern int vfs_mknod2(struct vfsmount *, struct inode *, struct dentry *, umode_t, dev_t); extern int vfs_symlink(struct inode *, struct dentry *, const char *); +extern int vfs_symlink2(struct vfsmount *, struct inode *, struct dentry *, const char *); extern int vfs_link(struct dentry *, struct inode *, struct dentry *, struct inode **); +extern int vfs_link2(struct vfsmount *, struct dentry *, struct inode *, struct dentry *, struct inode **); extern int vfs_rmdir(struct inode *, struct dentry *); +extern int vfs_rmdir2(struct vfsmount *, struct inode *, struct dentry *); extern int vfs_unlink(struct inode *, struct dentry *, struct inode **); +extern int vfs_unlink2(struct vfsmount *, struct inode *, struct dentry *, struct inode **); extern int vfs_rename(struct inode *, struct dentry *, struct inode *, struct dentry *, struct inode **, unsigned int); +extern int vfs_rename2(struct vfsmount *, struct inode *, struct dentry *, struct inode *, struct dentry *, struct inode **, unsigned int); extern int vfs_whiteout(struct inode *, struct dentry *); /* @@ -1530,6 +1538,7 @@ struct inode_operations { struct dentry * (*lookup) (struct inode *,struct dentry *, unsigned int); void * (*follow_link) (struct dentry *, struct nameidata *); int (*permission) (struct inode *, int); + int (*permission2) (struct vfsmount *, struct inode *, int); struct posix_acl * (*get_acl)(struct inode *, int); int (*readlink) (struct dentry *, char __user *,int); @@ -1547,6 +1556,7 @@ struct inode_operations { int (*rename2) (struct inode *, struct dentry *, struct inode *, struct dentry *, unsigned int); int (*setattr) (struct dentry *, struct iattr *); + int (*setattr2) (struct vfsmount *, struct dentry *, struct iattr *); int (*getattr) (struct vfsmount *mnt, struct dentry *, struct kstat *); int (*setxattr) (struct dentry *, const char *,const void *,size_t,int); ssize_t (*getxattr) (struct dentry *, const char *, void *, size_t); @@ -1590,9 +1600,13 @@ struct super_operations { int (*unfreeze_fs) (struct super_block *); int (*statfs) (struct dentry *, struct kstatfs *); int (*remount_fs) (struct super_block *, int *, char *); + int (*remount_fs2) (struct vfsmount *, struct super_block *, int *, char *); + void *(*clone_mnt_data) (void *); + void (*copy_mnt_data) (void *, void *); void (*umount_begin) (struct super_block *); int (*show_options)(struct seq_file *, struct dentry *); + int (*show_options2)(struct vfsmount *, struct seq_file *, struct dentry *); int (*show_devname)(struct seq_file *, struct dentry *); int (*show_path)(struct seq_file *, struct dentry *); int (*show_stats)(struct seq_file *, struct dentry *); @@ -1795,7 +1809,7 @@ int sync_inode_metadata(struct inode *inode, int wait); struct file_system_type { const char *name; int fs_flags; -#define FS_REQUIRES_DEV 1 +#define FS_REQUIRES_DEV 1 #define FS_BINARY_MOUNTDATA 2 #define FS_HAS_SUBTYPE 4 #define FS_USERNS_MOUNT 8 /* Can be mounted by userns root */ @@ -1804,6 +1818,9 @@ struct file_system_type { #define FS_RENAME_DOES_D_MOVE 32768 /* FS will handle d_move() during rename() internally. */ struct dentry *(*mount) (struct file_system_type *, int, const char *, void *); + struct dentry *(*mount2) (struct vfsmount *, struct file_system_type *, int, + const char *, void *); + void *(*alloc_mnt_data) (void); void (*kill_sb) (struct super_block *); struct module *owner; struct file_system_type * next; @@ -2071,6 +2088,8 @@ struct filename { extern long vfs_truncate(struct path *, loff_t); extern int do_truncate(struct dentry *, loff_t start, unsigned int time_attrs, struct file *filp); +extern int do_truncate2(struct vfsmount *, struct dentry *, loff_t start, + unsigned int time_attrs, struct file *filp); extern int do_fallocate(struct file *file, int mode, loff_t offset, loff_t len); extern long do_sys_open(int dfd, const char __user *filename, int flags, @@ -2291,8 +2310,11 @@ extern void emergency_remount(void); extern sector_t bmap(struct inode *, sector_t); #endif extern int notify_change(struct dentry *, struct iattr *, struct inode **); +extern int notify_change2(struct vfsmount *, struct dentry *, struct iattr *, struct inode **); extern int inode_permission(struct inode *, int); +extern int inode_permission2(struct vfsmount *, struct inode *, int); extern int __inode_permission(struct inode *, int); +extern int __inode_permission2(struct vfsmount *, struct inode *, int); extern int generic_permission(struct inode *, int); extern int __check_sticky(struct inode *dir, struct inode *inode); diff --git a/include/linux/hardware_info.h b/include/linux/hardware_info.h new file mode 100755 index 0000000000000..4813d4defbada --- /dev/null +++ b/include/linux/hardware_info.h @@ -0,0 +1,54 @@ +#ifndef __HARDWARE_H__ +#define __HARDWARE_H__ + +#define HARDWARE_MAX_ITEM_LONGTH 64 + +enum{ + HARDWARE_LCD = 0, + HARDWARE_TP, + HARDWARE_FLASH, + HARDWARE_FRONT_CAM, + HARDWARE_BACK_CAM, + HARDWARE_BT, + HARDWARE_WIFI, + HARDWARE_ACCELEROMETER, + HARDWARE_ALSPS, + HARDWARE_GYROSCOPE, + HARDWARE_MAGNETOMETER, + HARDWARE_GPS, + HARDWARE_FM, + HARDWARE_BATTERY_ID, + HARDWARE_BACK_CAM_MOUDULE_ID, + HARDWARE_FRONT_CAM_MOUDULE_ID, + HARDWARE_BOARD_ID, + HARDWARE_MAX_ITEM +}; + + +#define HARDWARE_ID 'H' +#define HARDWARE_LCD_GET _IOWR(HARDWARE_ID, 0x01, char[HARDWARE_MAX_ITEM_LONGTH]) +#define HARDWARE_TP_GET _IOWR(HARDWARE_ID, 0x02, char[HARDWARE_MAX_ITEM_LONGTH]) +#define HARDWARE_FLASH_GET _IOWR(HARDWARE_ID, 0x03, char[HARDWARE_MAX_ITEM_LONGTH]) +#define HARDWARE_FRONT_CAM_GET _IOWR(HARDWARE_ID, 0x04, char[HARDWARE_MAX_ITEM_LONGTH]) +#define HARDWARE_BACK_CAM_GET _IOWR(HARDWARE_ID, 0x05, char[HARDWARE_MAX_ITEM_LONGTH]) +#define HARDWARE_ACCELEROMETER_GET _IOWR(HARDWARE_ID, 0x06, char[HARDWARE_MAX_ITEM_LONGTH]) +#define HARDWARE_ALSPS_GET _IOWR(HARDWARE_ID, 0x07, char[HARDWARE_MAX_ITEM_LONGTH]) +#define HARDWARE_GYROSCOPE_GET _IOWR(HARDWARE_ID, 0x08, char[HARDWARE_MAX_ITEM_LONGTH]) +#define HARDWARE_MAGNETOMETER_GET _IOWR(HARDWARE_ID, 0x09, char[HARDWARE_MAX_ITEM_LONGTH]) +#define HARDWARE_BT_GET _IOWR(HARDWARE_ID, 0x10, char[HARDWARE_MAX_ITEM_LONGTH]) +#define HARDWARE_WIFI_GET _IOWR(HARDWARE_ID, 0x11, char[HARDWARE_MAX_ITEM_LONGTH]) +#define HARDWARE_GPS_GET _IOWR(HARDWARE_ID, 0x12, char[HARDWARE_MAX_ITEM_LONGTH]) +#define HARDWARE_FM_GET _IOWR(HARDWARE_ID, 0x13, char[HARDWARE_MAX_ITEM_LONGTH]) +#define HARDWARE_BATTERY_ID_GET _IOWR(HARDWARE_ID, 0x15, char[HARDWARE_MAX_ITEM_LONGTH]) +#define HARDWARE_BACK_CAM_MOUDULE_ID_GET _IOWR(HARDWARE_ID, 0x16, char[HARDWARE_MAX_ITEM_LONGTH]) +#define HARDWARE_FRONT_CAM_MODULE_ID_GET _IOWR(HARDWARE_ID, 0x17, char[HARDWARE_MAX_ITEM_LONGTH]) +#define HARDWARE_BOARD_ID_GET _IOWR(HARDWARE_ID, 0x18, char[HARDWARE_MAX_ITEM_LONGTH]) +#define HARDWARE_BACK_CAM_MOUDULE_ID_SET _IOWR(HARDWARE_ID, 0x81, char[HARDWARE_MAX_ITEM_LONGTH]) +#define HARDWARE_FRONT_CAM_MODULE_ID_SET _IOWR(HARDWARE_ID, 0x82, char[HARDWARE_MAX_ITEM_LONGTH]) + + + + +int hardwareinfo_set_prop(int cmd, const char *name); +void hardwareinfo_tp_register(void (*fn)(void *), void *driver_data); +#endif diff --git a/include/linux/input/ft5346.h b/include/linux/input/ft5346.h new file mode 100644 index 0000000000000..d9f223c0dbf51 --- /dev/null +++ b/include/linux/input/ft5346.h @@ -0,0 +1,348 @@ +/* + * + * FocalTech ft5x06 TouchScreen driver header file. + * + * Copyright (c) 2010 Focal tech Ltd. + * Copyright (c) 2012-2014, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ +#ifndef __LINUX_FT5X06_TS_H__ +#define __LINUX_FT5X06_TS_H__ + +#define FT5X06_ID 0x55 +#define FT5X16_ID 0x0A +#define FT5X36_ID 0x14 +#define FT6X06_ID 0x06 +#define FT6X36_ID 0x36 + +#define FT_DRIVER_VERSION 0x02 + +#define FT_META_REGS 3 +#define FT_ONE_TCH_LEN 6 +#define FT_TCH_LEN(x) (FT_META_REGS + FT_ONE_TCH_LEN * x) + +#define FT_PRESS 0x7F +#define FT_MAX_ID 0x0F +#define FT_TOUCH_X_H_POS 3 +#define FT_TOUCH_X_L_POS 4 +#define FT_TOUCH_Y_H_POS 5 +#define FT_TOUCH_Y_L_POS 6 +#define FT_TD_STATUS 2 +#define FT_TOUCH_EVENT_POS 3 +#define FT_TOUCH_ID_POS 5 +#define FT_TOUCH_DOWN 0 +#define FT_TOUCH_CONTACT 2 +#define FT_LOCKDOWN_SIZE 8 + + +/*register address*/ +#define FT_REG_DEV_MODE 0x00 +#define FT_DEV_MODE_REG_CAL 0x02 +#define FT_REG_ID 0xA3 +#define FT_REG_PMODE 0xA5 +#define FT_REG_FW_VER 0xA6 +#define FT_REG_FW_VENDOR_ID 0xA8 +#define FT_REG_POINT_RATE 0x88 +#define FT_REG_THGROUP 0x80 +#define FT_REG_ECC 0xCC +#define FT_REG_RESET_FW 0x07 +#define FT_REG_FW_MIN_VER 0xB2 +#define FT_REG_FW_SUB_MIN_VER 0xB3 + +/*Firmware vendors*/ +#define VENDOR_O_FILM 0x51 +#define VENDOR_Lens 0x3B +#define VENDOR_DS 0x53 + +/*IC name*/ + +#define TP_IC_FT5X06 0x55 +#define TP_IC_FT5606 0x08 +#define TP_IC_FT5X16 0x0A +#define TP_IC_FT6208 0x05 +#define TP_IC_FT6X06 0x06 +#define TP_IC_FT6X36 0x36 +#define TP_IC_FT5336 0x14 +#define TP_IC_FT3316 0x13 +#define TP_IC_FT5436i 0x12 +#define TP_IC_FT5336i 0x11 +#define TP_IC_FT5346 0x54 + + +/*TP Color*/ +#define TP_White 0x31 +#define TP_Black 0x32 +#define TP_Golden 0x38 + +/*TP Maker*/ +#define TP_OUFEI 0x34 +#define TP_LENS 0x32 +#define TP_DS 0x45 + +/*LCD Maker*/ +#define TP_TIANMA 0x36 + +#define TP_EBBG 0x37 + +/*PROJECT Id*/ +#define PROJECT_C3B 0x0c +#define PROJECT_C3N 0xc3 + +/* power register bits*/ +#define FT_PMODE_ACTIVE 0x00 +#define FT_PMODE_MONITOR 0x01 +#define FT_PMODE_STANDBY 0x02 +#define FT_PMODE_HIBERNATE 0x03 +#define FT_FACTORYMODE_VALUE 0x40 +#define FT_WORKMODE_VALUE 0x00 +#define FT_RST_CMD_REG1 0xFC +#define FT_RST_CMD_REG2 0xBC +#define FT_READ_ID_REG 0x90 +#define FT_ERASE_APP_REG 0x61 +#define FT_ERASE_PANEL_REG 0x63 +#define FT_FW_START_REG 0xBF + +#define FT_STATUS_NUM_TP_MASK 0x0F + +#define FT_VTG_MIN_UV 2600000 +#define FT_VTG_MAX_UV 3300000 +#define FT_I2C_VTG_MIN_UV 1800000 +#define FT_I2C_VTG_MAX_UV 1800000 + +#define FT_COORDS_ARR_SIZE 4 +#define MAX_BUTTONS 4 + +#define FT_8BIT_SHIFT 8 +#define FT_4BIT_SHIFT 4 +#define FT_FW_NAME_MAX_LEN 50 + +#define FT5316_ID 0x0A +#define FT5306I_ID 0x55 +#define FT6X06_ID 0x06 +#define FT6X36_ID 0x36 + +#define FT_UPGRADE_AA 0xAA +#define FT_UPGRADE_55 0x55 + +#define FT_FW_MIN_SIZE 8 +#define FT_FW_MAX_SIZE 32768 + +#define FT5x0x_REG_FW_VER 0xA6 + + +/* Firmware file is not supporting minor and sub minor so use 0 */ +#define FT_FW_FILE_MAJ_VER(x) ((x)->data[(x)->size - 2]) +#define FT_FW_FILE_MIN_VER(x) 0 +#define FT_FW_FILE_SUB_MIN_VER(x) 0 +#define FT_FW_FILE_VENDOR_ID(x) ((x)->data[(x)->size - 1]) + +#define FT_FW_FILE_MAJ_VER_FT6X36(x) ((x)->data[0x10a]) +#define FT_FW_FILE_VENDOR_ID_FT6X36(x) ((x)->data[0x108]) + +/** +* Application data verification will be run before upgrade flow. +* Firmware image stores some flags with negative and positive value +* in corresponding addresses, we need pick them out do some check to +* make sure the application data is valid. +*/ +#define FT_FW_CHECK(x, ts_data) \ + (ts_data->family_id == FT6X36_ID ? \ + (((x)->data[0x104] ^ (x)->data[0x105]) == 0xFF \ + && ((x)->data[0x106] ^ (x)->data[0x107]) == 0xFF) : \ + (((x)->data[(x)->size - 8] ^ (x)->data[(x)->size - 6]) == 0xFF \ + && ((x)->data[(x)->size - 7] ^ (x)->data[(x)->size - 5]) == 0xFF \ + && ((x)->data[(x)->size - 3] ^ (x)->data[(x)->size - 4]) == 0xFF)) + +#define FT_MAX_TRIES 5 +#define FT_RETRY_DLY 20 + +#define FT_MAX_WR_BUF 10 +#define FT_MAX_RD_BUF 2 +#define FT_FW_PKT_LEN 128 +#define FT_FW_PKT_META_LEN 6 +#define FT_FW_PKT_DLY_MS 20 +#define FT_FW_LAST_PKT 0x6ffa +#define FT_EARSE_DLY_MS 100 +#define FT_55_AA_DLY_NS 5000 + +#define FT_UPGRADE_LOOP 30 +#define FT_CAL_START 0x04 +#define FT_CAL_FIN 0x00 +#define FT_CAL_STORE 0x05 +#define FT_CAL_RETRY 100 +#define FT_REG_CAL 0x00 +#define FT_CAL_MASK 0x7C + +#define FT_INFO_MAX_LEN 512 +#define FTS_PACKET_LENGTH 128 + + +#define FT_BLOADER_SIZE_OFF 12 +#define FT_BLOADER_NEW_SIZE 30 +#define FT_DATA_LEN_OFF_OLD_FW 8 +#define FT_DATA_LEN_OFF_NEW_FW 14 +#define FT_FINISHING_PKT_LEN_OLD_FW 6 +#define FT_FINISHING_PKT_LEN_NEW_FW 12 +#define FT_MAGIC_BLOADER_Z7 0x7bfa +#define FT_MAGIC_BLOADER_LZ4 0x6ffa +#define FT_MAGIC_BLOADER_GZF_30 0x7ff4 +#define FT_MAGIC_BLOADER_GZF 0x7bf4 + +enum { + FT_BLOADER_VERSION_LZ4 = 0, + FT_BLOADER_VERSION_Z7 = 1, + FT_BLOADER_VERSION_GZF = 2, +}; + +enum { + FT_FT5336_FAMILY_ID_0x11 = 0x11, + FT_FT5336_FAMILY_ID_0x12 = 0x12, + FT_FT5336_FAMILY_ID_0x13 = 0x13, + FT_FT5336_FAMILY_ID_0x14 = 0x14, +}; + +struct fw_upgrade_info { + bool auto_cal; + u16 delay_aa; + u16 delay_55; + u8 upgrade_id_1; + u8 upgrade_id_2; + u16 delay_readid; + u16 delay_erase_flash; +}; + +struct Upgrade_Info { + u8 CHIP_ID; + u8 FTS_NAME[20]; + u8 TPD_MAX_POINTS; + u8 AUTO_CLB; + u16 delay_aa; /*delay of write FT_UPGRADE_AA */ + u16 delay_55; /*delay of write FT_UPGRADE_55 */ + u8 upgrade_id_1; /*upgrade id 1 */ + u8 upgrade_id_2; /*upgrade id 2 */ + u16 delay_readid; /*delay of read id */ + u16 delay_earse_flash; /*delay of earse flash*/ +}; + + +struct ft5x06_ts_platform_data { + struct fw_upgrade_info info; + const char *name; + const char *fw_name; + u32 irqflags; + u32 irq_gpio; + u32 irq_gpio_flags; + u32 reset_gpio; + u32 reset_gpio_flags; + u32 family_id; + u32 x_max; + u32 y_max; + u32 x_min; + u32 y_min; + u32 panel_minx; + u32 panel_miny; + u32 panel_maxx; + u32 panel_maxy; + u32 group_id; + u32 hard_rst_dly; + u32 soft_rst_dly; + u32 num_max_touches; + bool fw_vkey_support; + bool no_force_update; + bool i2c_pull_up; + bool ignore_id_check; + int (*power_init) (bool); + int (*power_on) (bool); +}; + +struct ft5x06_ts_data { + struct i2c_client *client; + struct input_dev *input_dev; + const struct ft5x06_ts_platform_data *pdata; + struct regulator *vdd; + struct regulator *vcc_i2c; + char fw_name[FT_FW_NAME_MAX_LEN]; + u8 lockdown_info[FT_LOCKDOWN_SIZE]; + bool loading_fw; + u8 family_id; + struct dentry *dir; + u16 addr; + bool suspended; + char *ts_info; + u8 *tch_data; + u32 tch_data_len; + u8 fw_ver[3]; + u8 fw_vendor_id; +#if defined(CONFIG_FB) + struct notifier_block fb_notif; + struct work_struct fb_notify_work; +#elif defined(CONFIG_HAS_EARLYSUSPEND) + struct early_suspend early_suspend; +#endif + struct pinctrl *ts_pinctrl; + struct pinctrl_state *gpio_state_active; + struct pinctrl_state *gpio_state_suspend; +}; + + + +#define CTP_IC_TYPE_0 0x12 +#define CTP_IC_TYPE_1 0x14 +#define CTP_IC_TYPE_2 0x54 + +#define CTP_SYS_APK_UPDATE 0 + +#define TPD_AUTO_UPGRADE 1 +#define FTS_PROC_APK_DEBUG 1 + +#define CTP_CHARGER_DETECT 1 + +#define CTP_PROC_INTERFACE 1 + + + +#if CTP_PROC_INTERFACE +extern int fts_open_short_test(char *ini_file_name, char *bufdest, ssize_t *pinumread); +#endif +#define WT_ADD_CTP_INFO 1 +#define WT_CTP_GESTURE_SUPPORT 1 +#define KEYCODE_WAKEUP 143 +#define MXT_INPUT_EVENT_START 0 +#define MXT_INPUT_EVENT_SENSITIVE_MODE_OFF 0 +#define MXT_INPUT_EVENT_SENSITIVE_MODE_ON 1 +#define MXT_INPUT_EVENT_STYLUS_MODE_OFF 2 +#define MXT_INPUT_EVENT_STYLUS_MODE_ON 3 +#define MXT_INPUT_EVENT_WAKUP_MODE_OFF 4 +#define MXT_INPUT_EVENT_WAKUP_MODE_ON 5 +#define MXT_INPUT_EVENT_EDGE_DISABLE 6 +#define MXT_INPUT_EVENT_EDGE_FINGER 7 +#define MXT_INPUT_EVENT_EDGE_HANDGRIP 8 +#define MXT_INPUT_EVENT_EDGE_FINGER_HANDGRIP 9 +#define MXT_INPUT_EVENT_END 9 +#define CTP_DEBUG_ON 0 +#define CTP_DEBUG_FUNC_ON 1 +#define CTP_INFO(fmt, arg...) printk("FT5X06-TP-TAG INFO:"fmt"\n", ##arg) + +#define CTP_ERROR(fmt, arg...) printk("FT5X06-TP-TAG ERROR:"fmt"\n", ##arg) + +#define CTP_DEBUG(fmt, arg...) do {\ + if (CTP_DEBUG_ON)\ + printk("FT5X06-TP-TAG DEBUG:[%d]"fmt"\n", __LINE__, ##arg);\ + } while (0) +#define CTP_DEBUG_FUNC() do {\ + if (CTP_DEBUG_FUNC_ON)\ + printk("FT5X06-TP-TAG Func:%s@Line:%d\n", __func__, __LINE__);\ + } while (0) + + +#endif diff --git a/include/linux/input/ft5x06_720p.h b/include/linux/input/ft5x06_720p.h new file mode 100644 index 0000000000000..7e9db84de7f53 --- /dev/null +++ b/include/linux/input/ft5x06_720p.h @@ -0,0 +1,334 @@ +/* + * + * FocalTech ft5x06 TouchScreen driver header file. + * + * Copyright (c) 2010 Focal tech Ltd. + * Copyright (c) 2012-2014, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ +#ifndef __LINUX_FT5X06_TS_H__ +#define __LINUX_FT5X06_TS_H__ + +#define FT5X06_ID 0x55 +#define FT5X16_ID 0x0A +#define FT5X36_ID 0x14 +#define FT6X06_ID 0x06 +#define FT6X36_ID 0x36 + +#define FT_DRIVER_VERSION 0x02 + +#define FT_META_REGS 3 +#define FT_ONE_TCH_LEN 6 +#define FT_TCH_LEN(x) (FT_META_REGS + FT_ONE_TCH_LEN * x) + +#define FT_PRESS 0x7F +#define FT_MAX_ID 0x0F +#define FT_TOUCH_X_H_POS 3 +#define FT_TOUCH_X_L_POS 4 +#define FT_TOUCH_Y_H_POS 5 +#define FT_TOUCH_Y_L_POS 6 +#define FT_TD_STATUS 2 +#define FT_TOUCH_EVENT_POS 3 +#define FT_TOUCH_ID_POS 5 +#define FT_TOUCH_DOWN 0 +#define FT_TOUCH_CONTACT 2 +#define FT_LOCKDOWN_SIZE 8 + + +/*register address*/ +#define FT_REG_DEV_MODE 0x00 +#define FT_DEV_MODE_REG_CAL 0x02 +#define FT_REG_ID 0xA3 +#define FT_REG_PMODE 0xA5 +#define FT_REG_FW_VER 0xA6 +#define FT_REG_FW_VENDOR_ID 0xA8 +#define FT_REG_POINT_RATE 0x88 +#define FT_REG_THGROUP 0x80 +#define FT_REG_ECC 0xCC +#define FT_REG_RESET_FW 0x07 +#define FT_REG_FW_MIN_VER 0xB2 +#define FT_REG_FW_SUB_MIN_VER 0xB3 + +/*Firmware vendors*/ +#define VENDOR_O_FILM 0x51 +#define VENDOR_MUTTO 0x53 +#define VENDOR_BIEL_1080P 0x3B +#define VENDOR_TPK_1080P 0x5C +#define VENDOR_BIEL_720P 0xF1 +#define VENDOR_TPK_720P 0xF2 +#define VENDOR_OUFEI_720P 0xF3 +#define VENDOR_LENS_720P 0xF4 + + +#define VENDOR_WINTEK 0x89 +#define VENDOR_GIS 0x8F + + +/*IC name*/ +#define IC_FT5X06 0x55 +#define IC_FT5606 0x08 +#define IC_FT5X16 0x0A +#define IC_FT6208 0x05 +#define IC_FT6X06 0x06 +#define IC_FT6X36 0x36 +#define IC_FT5336 0x14 +#define IC_FT3316 0x13 +#define IC_FT5436i 0x12 +#define IC_FT5336i 0x11 + +/*TP Color*/ +#define TP_White 0x31 +#define TP_Black 0x32 +#define TP_Golden 0x38 + +/*TP Maker*/ +#define TP_OUFEI 0x34 +#define TP_LENS 0x32 +#define TP_Biel 0x31 + +/*LCD Maker*/ +#define LCD_TIANMA 0x36 +#define LCD_EBBG 0x37 +#define LCD_BOE 0x35 + +/* power register bits*/ +#define FT_PMODE_ACTIVE 0x00 +#define FT_PMODE_MONITOR 0x01 +#define FT_PMODE_STANDBY 0x02 +#define FT_PMODE_HIBERNATE 0x03 +#define FT_FACTORYMODE_VALUE 0x40 +#define FT_WORKMODE_VALUE 0x00 +#define FT_RST_CMD_REG1 0xFC +#define FT_RST_CMD_REG2 0xBC +#define FT_READ_ID_REG 0x90 +#define FT_ERASE_APP_REG 0x61 +#define FT_ERASE_PANEL_REG 0x63 +#define FT_FW_START_REG 0xBF + +#define FT_STATUS_NUM_TP_MASK 0x0F + +#define FT_VTG_MIN_UV 2600000 +#define FT_VTG_MAX_UV 3300000 +#define FT_I2C_VTG_MIN_UV 1800000 +#define FT_I2C_VTG_MAX_UV 1800000 + +#define FT_COORDS_ARR_SIZE 4 +#define MAX_BUTTONS 4 + +#define FT_8BIT_SHIFT 8 +#define FT_4BIT_SHIFT 4 +#define FT_FW_NAME_MAX_LEN 50 + +#define FT5316_ID 0x0A +#define FT5306I_ID 0x55 +#define FT6X06_ID 0x06 +#define FT6X36_ID 0x36 + +#define FT_UPGRADE_AA 0xAA +#define FT_UPGRADE_55 0x55 + +#define FT_FW_MIN_SIZE 8 +#define FT_FW_MAX_SIZE 32768 + +#define FT5x0x_REG_FW_VER 0xA6 + + +/* Firmware file is not supporting minor and sub minor so use 0 */ +#define FT_FW_FILE_MAJ_VER(x) ((x)->data[(x)->size - 2]) +#define FT_FW_FILE_MIN_VER(x) 0 +#define FT_FW_FILE_SUB_MIN_VER(x) 0 +#define FT_FW_FILE_VENDOR_ID(x) ((x)->data[(x)->size - 1]) + +#define FT_FW_FILE_MAJ_VER_FT6X36(x) ((x)->data[0x10a]) +#define FT_FW_FILE_VENDOR_ID_FT6X36(x) ((x)->data[0x108]) + +/** +* Application data verification will be run before upgrade flow. +* Firmware image stores some flags with negative and positive value +* in corresponding addresses, we need pick them out do some check to +* make sure the application data is valid. +*/ +#define FT_FW_CHECK(x, ts_data) \ + (ts_data->family_id == FT6X36_ID ? \ + (((x)->data[0x104] ^ (x)->data[0x105]) == 0xFF \ + && ((x)->data[0x106] ^ (x)->data[0x107]) == 0xFF) : \ + (((x)->data[(x)->size - 8] ^ (x)->data[(x)->size - 6]) == 0xFF \ + && ((x)->data[(x)->size - 7] ^ (x)->data[(x)->size - 5]) == 0xFF \ + && ((x)->data[(x)->size - 3] ^ (x)->data[(x)->size - 4]) == 0xFF)) + +#define FT_MAX_TRIES 5 +#define FT_RETRY_DLY 20 + +#define FT_MAX_WR_BUF 10 +#define FT_MAX_RD_BUF 2 +#define FT_FW_PKT_LEN 128 +#define FT_FW_PKT_META_LEN 6 +#define FT_FW_PKT_DLY_MS 20 +#define FT_FW_LAST_PKT 0x6ffa +#define FT_EARSE_DLY_MS 100 +#define FT_55_AA_DLY_NS 5000 + +#define FT_UPGRADE_LOOP 30 +#define FT_CAL_START 0x04 +#define FT_CAL_FIN 0x00 +#define FT_CAL_STORE 0x05 +#define FT_CAL_RETRY 100 +#define FT_REG_CAL 0x00 +#define FT_CAL_MASK 0x7C + +#define FT_INFO_MAX_LEN 512 +#define FTS_PACKET_LENGTH 128 + + +#define FT_BLOADER_SIZE_OFF 12 +#define FT_BLOADER_NEW_SIZE 30 +#define FT_DATA_LEN_OFF_OLD_FW 8 +#define FT_DATA_LEN_OFF_NEW_FW 14 +#define FT_FINISHING_PKT_LEN_OLD_FW 6 +#define FT_FINISHING_PKT_LEN_NEW_FW 12 +#define FT_MAGIC_BLOADER_Z7 0x7bfa +#define FT_MAGIC_BLOADER_LZ4 0x6ffa +#define FT_MAGIC_BLOADER_GZF_30 0x7ff4 +#define FT_MAGIC_BLOADER_GZF 0x7bf4 + +enum { + FT_BLOADER_VERSION_LZ4 = 0, + FT_BLOADER_VERSION_Z7 = 1, + FT_BLOADER_VERSION_GZF = 2, +}; + +enum { + FT_FT5336_FAMILY_ID_0x11 = 0x11, + FT_FT5336_FAMILY_ID_0x12 = 0x12, + FT_FT5336_FAMILY_ID_0x13 = 0x13, + FT_FT5336_FAMILY_ID_0x14 = 0x14, +}; + +struct fw_upgrade_info { + bool auto_cal; + u16 delay_aa; + u16 delay_55; + u8 upgrade_id_1; + u8 upgrade_id_2; + u16 delay_readid; + u16 delay_erase_flash; +}; + +struct Upgrade_Info { + u8 CHIP_ID; + u8 FTS_NAME[20]; + u8 TPD_MAX_POINTS; + u8 AUTO_CLB; + u16 delay_aa; /*delay of write FT_UPGRADE_AA */ + u16 delay_55; /*delay of write FT_UPGRADE_55 */ + u8 upgrade_id_1; /*upgrade id 1 */ + u8 upgrade_id_2; /*upgrade id 2 */ + u16 delay_readid; /*delay of read id */ + u16 delay_earse_flash; /*delay of earse flash*/ +}; + + +struct ft5x06_ts_platform_data { + struct fw_upgrade_info info; + const char *name; + const char *fw_name; + u32 irqflags; + u32 irq_gpio; + u32 irq_gpio_flags; + u32 reset_gpio; + u32 reset_gpio_flags; + u32 family_id; + u32 x_max; + u32 y_max; + u32 x_min; + u32 y_min; + u32 panel_minx; + u32 panel_miny; + u32 panel_maxx; + u32 panel_maxy; + u32 group_id; + u32 hard_rst_dly; + u32 soft_rst_dly; + u32 num_max_touches; + bool fw_vkey_support; + bool no_force_update; + bool i2c_pull_up; + bool ignore_id_check; + int (*power_init) (bool); + int (*power_on) (bool); +}; + +struct ft5x06_ts_data { + struct i2c_client *client; + struct input_dev *input_dev; + const struct ft5x06_ts_platform_data *pdata; + struct regulator *vdd; + struct regulator *vcc_i2c; + char fw_name[FT_FW_NAME_MAX_LEN]; + u8 lockdown_info[FT_LOCKDOWN_SIZE]; + bool loading_fw; + u8 family_id; + struct dentry *dir; + u16 addr; + bool suspended; + char *ts_info; + u8 *tch_data; + u32 tch_data_len; + u8 fw_ver[3]; + u8 fw_vendor_id; +#if defined(CONFIG_FB) + struct notifier_block fb_notif; + struct work_struct fb_notify_work; +#elif defined(CONFIG_HAS_EARLYSUSPEND) + struct early_suspend early_suspend; +#endif + struct pinctrl *ts_pinctrl; + struct pinctrl_state *gpio_state_active; + struct pinctrl_state *gpio_state_suspend; +}; + + + +#define CTP_IC_TYPE_0 0x12 +#define CTP_IC_TYPE_1 0x14 + +#define CTP_SYS_APK_UPDATE 0 + +#define TPD_AUTO_UPGRADE 1 +#define FTS_PROC_APK_DEBUG 1 + +#define CTP_CHARGER_DETECT 1 + +#define CTP_PROC_INTERFACE 1 +#define CTP_LOCKDOWN_INFO 1 + + +#define WT_ADD_CTP_INFO 1 + +#define CTP_DEBUG_ON 1 +#define CTP_DEBUG_FUNC_ON 0 +#define CTP_INFO(fmt, arg...) printk("FT5X06-TP-TAG INFO:"fmt"\n", ##arg) + +#define CTP_ERROR(fmt, arg...) printk("FT5X06-TP-TAG ERROR:"fmt"\n", ##arg) + +#define CTP_DEBUG(fmt, arg...) do {\ + if (CTP_DEBUG_ON)\ + printk("FT5X06-TP-TAG DEBUG:[%d]"fmt"\n", __LINE__, ##arg);\ + } while (0) +#define CTP_DEBUG_FUNC() do {\ + if (CTP_DEBUG_FUNC_ON)\ + printk("FT5X06-TP-TAG Func:%s@Line:%d\n", __func__, __LINE__);\ + } while (0) + + +#endif diff --git a/include/linux/input/gen_vkeys_gt.h b/include/linux/input/gen_vkeys_gt.h new file mode 100644 index 0000000000000..a58158d703bda --- /dev/null +++ b/include/linux/input/gen_vkeys_gt.h @@ -0,0 +1,24 @@ +/* Copyright (c) 2013, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#ifndef __GEN_VKEYS_ +struct vkeys_platform_data { + const char *name; + int disp_maxx; + int disp_maxy; + int panel_maxx; + int panel_maxy; + int *keycodes; + int num_keys; + int y_offset; +}; +#endif diff --git a/include/linux/ktrace.h b/include/linux/ktrace.h new file mode 100644 index 0000000000000..b125b5b072c1f --- /dev/null +++ b/include/linux/ktrace.h @@ -0,0 +1,287 @@ +#ifndef __KTRACE_H__ +#define __KTRACE_H__ + +#include +#include + +#define US_TO_NS(usec) ((usec) * 1000) +#define MS_TO_US(msec) ((msec) * 1000) + +#define QUEUE_NEXT(v, max) (((v) + 1) % (max)) +#define QUEUE_ADD(v, a, max) (((v) + (a)) % (max)) +#define QUEUE_EMPTY(tail, head) ((tail) == (head)) +#define QUEUE_FULL(tail, head, max) ((((head) + 1) % (max)) == tail) + +#define DEFAULT_ITEMS_PER_READ INT_MAX + +enum { + KTRACE_MM_TYPE_SAMPLE1 = 0, + KTRACE_MM_TYPE_SAMPLE2, + KTRACE_MM_TYPE_SAMPLE3, + KTRACE_MM_TYPE_SAMPLE4, + KTRACE_MM_TYPE_SAMPLE5, + KTRACE_MM_TYPE_SAMPLE6, + KTRACE_MM_TYPE_SAMPLE7, + KTRACE_MM_TYPE_SAMPLE8, + KTRACE_MM_TYPE_SAMPLE9, + KTRACE_MM_TYPE_SAMPLE10, + + KTRACE_MM_TYPE_SLOW_PATH, + KTRACE_MM_TYPE_COMPACT, + KTRACE_MM_TYPE_DIRECT_RECLAIM, + KTRACE_MM_TYPE_NR, +}; + +enum { + KTRACE_SCHED_TYPE_SAMPLE1 = 0, + KTRACE_SCHED_TYPE_SAMPLE2, + KTRACE_SCHED_TYPE_SAMPLE3, + KTRACE_SCHED_TYPE_SAMPLE4, + KTRACE_SCHED_TYPE_SAMPLE5, + KTRACE_SCHED_TYPE_SAMPLE6, + KTRACE_SCHED_TYPE_SAMPLE7, + KTRACE_SCHED_TYPE_SAMPLE8, + KTRACE_SCHED_TYPE_SAMPLE9, + KTRACE_SCHED_TYPE_SAMPLE10, + + KTRACE_SCHED_TYPE_PREEMPT, + KTRACE_SCHED_TYPE_WAIT, + KTRACE_SCHED_TYPE_BLOCK, + KTRACE_SCHED_TYPE_NR, +}; + +enum { + KTRACE_BINDER_TYPE_SAMPLE1 = 0, + KTRACE_BINDER_TYPE_SAMPLE2, + KTRACE_BINDER_TYPE_SAMPLE3, + KTRACE_BINDER_TYPE_SAMPLE4, + KTRACE_BINDER_TYPE_SAMPLE5, + KTRACE_BINDER_TYPE_SAMPLE6, + KTRACE_BINDER_TYPE_SAMPLE7, + KTRACE_BINDER_TYPE_SAMPLE8, + KTRACE_BINDER_TYPE_SAMPLE9, + KTRACE_BINDER_TYPE_SAMPLE10, + + KTRACE_BINDER_TYPE_TRANSACTION, + KTRACE_BINDER_TYPE_NR, +}; + +enum { + KTRACE_CPUFREQ_TYPE_SAMPLE1 = 0, + KTRACE_CPUFREQ_TYPE_SAMPLE2, + KTRACE_CPUFREQ_TYPE_SAMPLE3, + KTRACE_CPUFREQ_TYPE_SAMPLE4, + KTRACE_CPUFREQ_TYPE_SAMPLE5, + KTRACE_CPUFREQ_TYPE_SAMPLE6, + KTRACE_CPUFREQ_TYPE_SAMPLE7, + KTRACE_CPUFREQ_TYPE_SAMPLE8, + KTRACE_CPUFREQ_TYPE_SAMPLE9, + KTRACE_CPUFREQ_TYPE_SAMPLE10, + + KTRACE_CPUFREQ_TYPE_MITIGATION, + KTRACE_CPUFREQ_TYPE_UNPLUGED, + KTRACE_CPUFREQ_TYPE_NR, +}; + +enum { + QUEUE_MM = 0, + QUEUE_STR, + QUEUE_SCHED, + QUEUE_BINDER, + QUEUE_CPUFREQ, + QUEUE_NR +}; + +enum { + KTRACE_EVENT_1 = 0, + KTRACE_EVENT_2, + KTRACE_EVENT_3, + KTRACE_EVENT_4, + KTRACE_EVENT_5, + KTRACE_EVENT_6, + KTRACE_EVENT_7, + KTRACE_EVENT_8, + KTRACE_EVENT_9, + KTRACE_EVENT_10, + + KTRACE_EVENT_11, + KTRACE_EVENT_12, + KTRACE_EVENT_13, + KTRACE_EVENT_14, + KTRACE_EVENT_15, + KTRACE_EVENT_16, + KTRACE_EVENT_17, + KTRACE_EVENT_18, + KTRACE_EVENT_19, + KTRACE_EVENT_20, + + KTRACE_EVENT_NR +}; + +struct ktrace_queue { + spinlock_t lock; + + void *buf; + int entry_size; + int max; + int head; + int tail; + + int read_cnt; + int items_per_read; + + int enable_debug; + + int (*show_entry)(struct seq_file *m, void *entry, bool debug); + + void *priv; +}; + +struct ktrace { + struct dentry *dir; + + struct ktrace_queue queue[QUEUE_NR]; + + /* str ktrace */ + spinlock_t str_lock; + int str_queue_head; + int str_queue_tail; + int str_queue_max; + char *str_buf; + + int str_enable_debug; +}; + +/* use single_open() */ +#define KTRACE_ENTRY_RO_SINGLE(name) \ +static int name##_open(struct inode *inode, struct file *file) \ +{ \ + return single_open(file, name##_show, inode->i_private); \ +} \ +\ +static const struct file_operations name##_fops = { \ + .owner = THIS_MODULE, \ + .open = name##_open, \ + .read = seq_read, \ + .llseek = no_llseek, \ + .release = single_release, \ +}; + +/* use single_open() */ +#define KTRACE_QUEUE_RO_SINGLE(name) \ +static int name##_open(struct inode *inode, struct file *file) \ +{ \ + return single_open(file, ktrace_q_single_show, inode->i_private); \ +} \ +\ +static const struct file_operations name##_fops = { \ + .owner = THIS_MODULE, \ + .open = name##_open, \ + .read = seq_read, \ + .llseek = no_llseek, \ + .release = single_release, \ +}; + + +/* use seq_open() */ +#define KTRACE_QUEUE_RO(name) \ +\ +static const struct seq_operations name##_seq_ops = { \ + .start = ktrace_q_start, \ + .stop = ktrace_q_stop, \ + .next = ktrace_q_next, \ + .show = ktrace_q_show, \ +}; \ +static int name##_open(struct inode *inode, struct file *file) \ +{ \ + int ret; \ +\ + ret = seq_open(file, &name##_seq_ops); \ + if (!ret) { \ + struct seq_file *m = file->private_data; \ + m->private = inode->i_private; \ + } \ + return ret; \ +} \ +\ +static const struct file_operations name##_fops = { \ + .owner = THIS_MODULE, \ + .open = name##_open, \ + .read = seq_read, \ + .llseek = no_llseek, \ + .release = seq_release, \ +}; + +/* + * sed -i 's/^\([^\[]*\[[0-9]\{3\}\] [^\s]\{4\} \s*[0-9]\+\.[0-9]\+:\) \([^:]*:\) \(tracing_mark_write: .*\)/\1 \3/g' .html + */ +#define KTRACE_BEGIN(name) trace_printk("tracing_mark_write: B|%d|%s\n", current->tgid, name) +#define KTRACE_END() trace_printk("tracing_mark_write: E\n") +#define KTRACE_FUNC() KTRACE_BEGIN(__func__) +#define KTRACE_INT(name, value) trace_printk("tracing_mark_write: C|%d|%s|%d\n", current->tgid, name, (int)(value)) +#define KTRACE_BEGIN_MSG(fmt...) \ + do { \ + char buf[64]; \ + snprintf(buf, sizeof(buf) - 1, fmt); \ + KTRACE_BEGIN(buf); \ + } while (0); + +#ifdef CONFIG_KTRACE + +struct ktrace *get_ktrace(void); +int __init ktrace_mm_init(struct dentry *dir, struct ktrace_queue *q); +int __init ktrace_print_init(struct dentry *dir, struct ktrace_queue *q); +int __init ktrace_sched_init(struct dentry *dir, struct ktrace_queue *q); +int __init ktrace_binder_init(struct dentry *dir, struct ktrace_queue *q); +int __init ktrace_cpufreq_init(struct dentry *dir, struct ktrace_queue *q); +int __init ktrace_event_init(struct dentry *dir); + +void ktrace_add_mm_event(unsigned char type, u64 time_stamp, u64 delta); +void ktrace_add_sched_event(unsigned char type, pid_t pid, u64 time_stamp, u64 delta, void *pc); +void ktrace_add_binder_event(unsigned char type, u64 time_stamp, u64 delta); +int ktrace_sched_match_pid(pid_t pid); +void ktrace_add_cpufreq_event(unsigned char type, pid_t pid, u64 time_stamp, + unsigned int cpu, unsigned int target_freq, unsigned int max); +void ktrace_cpufreq_set_mitigated(char *comm, unsigned int cpu, + const struct cpumask *related_cpus, unsigned int max); +void ktrace_cpufreq_update_history(struct task_struct *p, u32 runtime, int samples, u32 scale_runtime); +void ktrace_print(const char *fmt, ...); + +void *ktrace_q_start(struct seq_file *m, loff_t *pos); +void *ktrace_q_next(struct seq_file *m, void *v, loff_t *pos); +void ktrace_q_stop(struct seq_file *m, void *v); +int ktrace_q_show(struct seq_file *m, void *v); +int ktrace_q_single_show(struct seq_file *m, void *v); +void ktrace_init_queue(struct ktrace_queue *q, struct dentry *dir, + void *priv, void *buf, int entry_size, int max, int items_per_read, + int(*show_entry)(struct seq_file *, void *, bool)); +void ktrace_tryadd_queue(struct ktrace_queue *q, void *entry); +void ktrace_add_queue_multi(struct ktrace_queue *q, void *entry, int num); +void ktrace_reset_queue(struct ktrace_queue *q); + +void ktrace_event_inc(unsigned char type); +void ktrace_event_dec(unsigned char type); +void ktrace_event_add(unsigned char type, int i); +void ktrace_event_sub(unsigned char type, int i); +#else +static inline void ktrace_add_mm_event(unsigned char type, u64 time_stamp, u64 delta) {} +static inline void ktrace_print(const char *fmt, ...) {} +static inline void ktrace_add_sched_event(unsigned char type, pid_t pid, u64 time_stamp, u64 delta, void *pc) {} +static inline void ktrace_add_binder_event(unsigned char type, u64 time_stamp, u64 delta) {} +static inline int ktrace_sched_match_pid(pid_t pid) { return 0; } +static inline void ktrace_add_cpufreq_event(unsigned char type, pid_t pid, u64 time_stamp, + unsigned int cpu, unsigned int target_freq, unsigned int max) {} +static inline void ktrace_cpufreq_set_mitigated(char *comm, unsigned int cpu, + const struct cpumask *related_cpus, unsigned int max){} +static inline void ktrace_cpufreq_update_history(struct task_struct *p, u32 runtime, int samples, u32 scale_runtime) {} + + + +static inline void ktrace_event_inc(unsigned char type) {} +static inline void ktrace_event_dec(unsigned char type) {} +static inline void ktrace_event_add(unsigned char type, int i) {} +static inline void ktrace_event_sub(unsigned char type, int i) {} + +#endif + +#endif diff --git a/include/linux/mdss_io_util.h b/include/linux/mdss_io_util.h index 6ad21e8878774..1e5227a9eadfc 100644 --- a/include/linux/mdss_io_util.h +++ b/include/linux/mdss_io_util.h @@ -1,4 +1,5 @@ /* Copyright (c) 2012, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -109,4 +110,5 @@ int mdss_i2c_byte_read(struct i2c_client *client, uint8_t slave_addr, int mdss_i2c_byte_write(struct i2c_client *client, uint8_t slave_addr, uint8_t reg_offset, uint8_t *value); +int mdss_prim_panel_fb_unblank(int timeout); #endif /* __MDSS_IO_UTIL_H__ */ diff --git a/include/linux/mlx4/device.h b/include/linux/mlx4/device.h index 37e4404d0227f..22fc8f9edc049 100644 --- a/include/linux/mlx4/device.h +++ b/include/linux/mlx4/device.h @@ -42,7 +42,7 @@ #include -#include +#include #define MAX_MSIX_P_PORT 17 #define MAX_MSIX 64 diff --git a/include/linux/mm.h b/include/linux/mm.h index b6b3d75a1bde7..e890d9f07a256 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2205,6 +2205,9 @@ struct reclaim_param { }; extern struct reclaim_param reclaim_task_anon(struct task_struct *task, int nr_to_reclaim); +extern int reclaim_pte_range(pmd_t *pmd, unsigned long addr, + unsigned long end, struct mm_walk *walk); +extern unsigned long reclaim_global(unsigned long nr_to_reclaim); #endif #endif /* __KERNEL__ */ diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h index 2e67166e323ec..b57da43998b12 100644 --- a/include/linux/mm_types.h +++ b/include/linux/mm_types.h @@ -14,6 +14,7 @@ #include #include #include +#include #include #include @@ -469,6 +470,7 @@ struct mm_struct { bool tlb_flush_pending; #endif struct uprobes_state uprobes_state; + struct work_struct async_put_work; #ifdef CONFIG_MSM_APP_SETTINGS int app_setting; #endif diff --git a/include/linux/mmc/card.h b/include/linux/mmc/card.h index 43c952e5f4671..f57daa844270a 100644 --- a/include/linux/mmc/card.h +++ b/include/linux/mmc/card.h @@ -130,6 +130,8 @@ struct mmc_ext_csd { u8 raw_sectors[4]; /* 212 - 4 bytes */ u8 cmdq_depth; /* 307 */ u8 cmdq_support; /* 308 */ + u8 life_time_est_typ_a; /* 268 */ + u8 life_time_est_typ_b; /* 269 */ u8 barrier_support; /* 486 */ u8 barrier_en; diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h index cf2a50c380667..e6da99015cabc 100644 --- a/include/linux/mmc/host.h +++ b/include/linux/mmc/host.h @@ -501,6 +501,7 @@ struct mmc_host { unsigned int bus_resume_flags; #define MMC_BUSRESUME_MANUAL_RESUME (1 << 0) #define MMC_BUSRESUME_NEEDS_RESUME (1 << 1) +bool ignore_bus_resume_flags; unsigned int sdio_irqs; struct task_struct *sdio_irq_thread; @@ -517,7 +518,9 @@ struct mmc_host { struct mmc_supply supply; struct dentry *debugfs_root; - +#ifdef CONFIG_MMC_ERROR_STATUS + bool err_occurred; +#endif struct mmc_async_req *areq; /* active async req */ struct mmc_context_info context_info; /* async synchronization info */ diff --git a/include/linux/mmc/mmc.h b/include/linux/mmc/mmc.h index ed6638ab7ca51..b8a6c3ef411de 100644 --- a/include/linux/mmc/mmc.h +++ b/include/linux/mmc/mmc.h @@ -286,6 +286,8 @@ struct _mmc_csd { #define EXT_CSD_FW_VERSION 254 /* RO */ #define EXT_CSD_CMDQ_DEPTH 307 /* RO */ #define EXT_CSD_CMDQ_SUPPORT 308 /* RO */ +#define EXT_CSD_LIFE_TIME_EST_TYP_A 268 /* RO */ +#define EXT_CSD_LIFE_TIME_EST_TYP_B 269 /* RO */ #define EXT_CSD_BARRIER_SUPPORT 486 /* RO */ #define EXT_CSD_TAG_UNIT_SIZE 498 /* RO */ #define EXT_CSD_DATA_TAG_SUPPORT 499 /* RO */ diff --git a/include/linux/mount.h b/include/linux/mount.h index c2c561dc01144..7c9e561fa0111 100644 --- a/include/linux/mount.h +++ b/include/linux/mount.h @@ -66,6 +66,7 @@ struct vfsmount { struct dentry *mnt_root; /* root of the mounted tree */ struct super_block *mnt_sb; /* pointer to superblock */ int mnt_flags; + void *data; }; struct file; /* forward dec */ diff --git a/include/linux/namei.h b/include/linux/namei.h index c9ad7a100d052..f6ff630b39aa3 100644 --- a/include/linux/namei.h +++ b/include/linux/namei.h @@ -75,6 +75,7 @@ extern int vfs_path_lookup(struct dentry *, struct vfsmount *, const char *, unsigned int, struct path *); extern struct dentry *lookup_one_len(const char *, struct dentry *, int); +extern struct dentry *lookup_one_len2(const char *, struct vfsmount *mnt, struct dentry *, int); extern int follow_down_one(struct path *); extern int follow_down(struct path *); diff --git a/include/linux/of_fdt.h b/include/linux/of_fdt.h index 35feeca7bf2c8..242ec59d88423 100644 --- a/include/linux/of_fdt.h +++ b/include/linux/of_fdt.h @@ -56,6 +56,7 @@ extern int of_flat_dt_is_compatible(unsigned long node, const char *name); extern int of_flat_dt_match(unsigned long node, const char *const *matches); extern unsigned long of_get_flat_dt_root(void); extern int of_get_flat_dt_size(void); +extern void early_init_dt_setup_pureason_arch(unsigned long pu_reason); /* * early_init_dt_scan_chosen - scan the device tree for ramdisk and bootargs @@ -113,6 +114,7 @@ static inline void early_init_fdt_scan_reserved_mem(void) {} static inline const char *of_flat_dt_get_machine_name(void) { return NULL; } static inline void unflatten_device_tree(void) {} static inline void unflatten_and_copy_device_tree(void) {} +static inline void early_init_dt_setup_pureason_arch(unsigned long pu_reason) {} #endif /* CONFIG_OF_FLATTREE */ #endif /* __ASSEMBLY__ */ diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h index 20227882f5499..eb65b3392d0b1 100644 --- a/include/linux/pagemap.h +++ b/include/linux/pagemap.h @@ -220,11 +220,6 @@ static inline struct page *__page_cache_alloc(gfp_t gfp) page = alloc_pages(gfp, 0); - if (page && is_cma_pageblock(page)) { - __free_page(page); - page = alloc_pages(gfp & ~__GFP_MOVABLE, 0); - } - return page; } #endif diff --git a/include/linux/pid.h b/include/linux/pid.h index 23705a53abbaa..97b745ddece50 100644 --- a/include/linux/pid.h +++ b/include/linux/pid.h @@ -8,7 +8,9 @@ enum pid_type PIDTYPE_PID, PIDTYPE_PGID, PIDTYPE_SID, - PIDTYPE_MAX + PIDTYPE_MAX, + /* only valid to __task_pid_nr_ns() */ + __PIDTYPE_TGID }; /* diff --git a/include/linux/power/cw2015_battery.h b/include/linux/power/cw2015_battery.h new file mode 100644 index 0000000000000..fb03ca53c996f --- /dev/null +++ b/include/linux/power/cw2015_battery.h @@ -0,0 +1,55 @@ +/* + * Gas_Gauge driver for CW2015/2013 + * Copyright (C) 2012, CellWise + * Copyright (C) 2018 XiaoMi, Inc. + * + * Authors: ChenGang + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation.And this driver depends on + * I2C and uses IIC bus for communication with the host. + * + */ + +#ifndef __LINUX_CW2015_BATTERY_H__ +#define __LINUX_CW2015_BATTERY_H__ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef CONFIG_HAS_EARLYSUSPEND +#include +#endif + +#define SIZE_BATINFO 64 + + + +struct cw_bat_platform_data { + int (*io_init)(void); + + int is_usb_charge; + int is_dc_charge; + u8 *cw_bat_config_info; + u32 irq_flags; + u32 dc_det_pin; + u32 dc_det_level; + + u32 bat_low_pin; + u32 bat_low_level; + u32 chg_ok_pin; + u32 chg_ok_level; + u32 chg_mode_sel_pin; + u32 chg_mode_sel_level; +}; + +#endif + diff --git a/include/linux/power_supply.h b/include/linux/power_supply.h index 7a98cebe117f0..63f5e8d77f45d 100644 --- a/include/linux/power_supply.h +++ b/include/linux/power_supply.h @@ -4,6 +4,7 @@ * Copyright © 2007 Anton Vorontsov * Copyright © 2004 Szabolcs Gyurko * Copyright © 2003 Ian Molton + * Copyright (C) 2018 XiaoMi, Inc. * * Modified: 2004, Oct Szabolcs Gyurko * @@ -188,6 +189,7 @@ enum power_supply_property { POWER_SUPPLY_PROP_COOL_TEMP, POWER_SUPPLY_PROP_WARM_TEMP, POWER_SUPPLY_PROP_SYSTEM_TEMP_LEVEL, + POWER_SUPPLY_PROP_CHARGER_TYPE, POWER_SUPPLY_PROP_RESISTANCE, POWER_SUPPLY_PROP_RESISTANCE_CAPACITIVE, POWER_SUPPLY_PROP_RESISTANCE_ID, /* in Ohms */ @@ -216,6 +218,7 @@ enum power_supply_property { POWER_SUPPLY_PROP_ENABLE_JEITA_DETECTION, POWER_SUPPLY_PROP_BATTERY_INFO, POWER_SUPPLY_PROP_BATTERY_INFO_ID, + POWER_SUPPLY_PROP_CHARGING_CALL_STATE, /* Local extensions of type int64_t */ POWER_SUPPLY_PROP_CHARGE_COUNTER_EXT, /* Properties of type `const char *' */ @@ -290,6 +293,7 @@ struct power_supply { bool no_thermal; /* For APM emulation, think legacy userspace. */ int use_for_apm; + u8 bms_psy_ok; /* private */ struct device *dev; diff --git a/include/linux/qpnp/power-on.h b/include/linux/qpnp/power-on.h index da8f5a8622dde..e301dba1e137a 100644 --- a/include/linux/qpnp/power-on.h +++ b/include/linux/qpnp/power-on.h @@ -58,6 +58,8 @@ enum pon_restart_reason { PON_RESTART_REASON_DMVERITY_CORRUPTED = 0x04, PON_RESTART_REASON_DMVERITY_ENFORCE = 0x05, PON_RESTART_REASON_KEYS_CLEAR = 0x06, + PON_RESTART_REASON_NORMAL = 0x20, + PON_RESTART_REASON_PANIC = 0x21, }; #ifdef CONFIG_QPNP_POWER_ON @@ -67,6 +69,8 @@ int qpnp_pon_trigger_config(enum pon_trigger_source pon_src, bool enable); int qpnp_pon_wd_config(bool enable); int qpnp_pon_set_restart_reason(enum pon_restart_reason reason); bool qpnp_pon_check_hard_reset_stored(void); +int qpnp_pon_is_lpk(void); +int qpnp_pon_is_ps_hold_reset(void); #else static int qpnp_pon_system_pwr_off(enum pon_power_off_type type) @@ -91,6 +95,9 @@ static inline bool qpnp_pon_check_hard_reset_stored(void) { return false; } +static inline int qpnp_pon_is_lpk(void) { return -ENODEV; } +static inline int qpnp_pon_is_ps_hold_reset(void) { return -ENODEV; } + #endif #endif diff --git a/include/linux/rtmm.h b/include/linux/rtmm.h new file mode 100644 index 0000000000000..e55a80e63c1ed --- /dev/null +++ b/include/linux/rtmm.h @@ -0,0 +1,31 @@ +#ifndef __RTMM_H__ +#define __MIMEM_H__ + + +#define GLOBAL_RECLAIM_SWAPPINESS 150 + +enum { + RTMM_POOL_THREADINFO = 0, + RTMM_POOL_NR +}; + +int __init rtmm_pool_init(struct dentry *dir); +struct page *rtmm_alloc_pages(int pool_type); +void rtmm_free_pages(void *addr, int pool_type); + +int __init rtmm_reclaim_init(struct dentry *dir); + +struct scan_control; +#ifdef CONFIG_RTMM +static inline bool rtmm_reclaim(struct scan_control *sc) +{ + return strncmp("rtmm_reclaim", current->comm, strlen("rtmm_reclaim")) == 0; +} +#else +static inline bool rtmm_reclaim(struct scan_control *sc) +{ + return false; +} +#endif + +#endif diff --git a/include/linux/sched.h b/include/linux/sched.h index 1cb810887a371..7b093814d0039 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -1182,6 +1182,7 @@ struct ravg { u64 mark_start; u32 sum, demand; u32 sum_history[RAVG_HIST_SIZE_MAX]; + u64 proc_load; #ifdef CONFIG_SCHED_FREQ_INPUT u32 curr_window, prev_window; u16 active_windows; @@ -1338,6 +1339,8 @@ struct task_struct { u64 last_wake_ts; u64 last_switch_out_ts; u64 last_cpu_selected_ts; + u64 last_preempt; + u64 last_wakeup; #ifdef CONFIG_SCHED_QHMP u64 run_start; #endif @@ -1862,14 +1865,16 @@ static inline pid_t task_tgid_nr(struct task_struct *tsk) return tsk->tgid; } -pid_t task_tgid_nr_ns(struct task_struct *tsk, struct pid_namespace *ns); +static inline pid_t task_tgid_nr_ns(struct task_struct *tsk, struct pid_namespace *ns) +{ + return __task_pid_nr_ns(tsk, __PIDTYPE_TGID, ns); +} static inline pid_t task_tgid_vnr(struct task_struct *tsk) { - return pid_vnr(task_tgid(tsk)); + return __task_pid_nr_ns(tsk, __PIDTYPE_TGID, NULL); } - static inline int pid_alive(const struct task_struct *p); static inline pid_t task_ppid_nr_ns(const struct task_struct *tsk, struct pid_namespace *ns) { @@ -2113,7 +2118,7 @@ static inline void memalloc_noio_restore(unsigned int flags) #define PFA_NO_NEW_PRIVS 0 /* May not gain new privileges. */ #define PFA_SPREAD_PAGE 1 /* Spread page cache over cpuset */ #define PFA_SPREAD_SLAB 2 /* Spread some slab caches over cpuset */ - +#define PFA_LMK_WAITING 3 /* Lowmemorykiller is waiting */ #define TASK_PFA_TEST(name, func) \ static inline bool task_##func(struct task_struct *p) \ @@ -2136,6 +2141,9 @@ TASK_PFA_TEST(SPREAD_SLAB, spread_slab) TASK_PFA_SET(SPREAD_SLAB, spread_slab) TASK_PFA_CLEAR(SPREAD_SLAB, spread_slab) +TASK_PFA_TEST(LMK_WAITING, lmk_waiting) +TASK_PFA_SET(LMK_WAITING, lmk_waiting) + /* * task->jobctl flags */ @@ -2617,6 +2625,11 @@ static inline void mmdrop(struct mm_struct * mm) /* mmput gets rid of the mappings and all user-space */ extern int mmput(struct mm_struct *); +/* same as above but performs the slow path from the async kontext. Can + * be called from the atomic context as well + */ +extern void mmput_async(struct mm_struct *); + /* Grab a reference to a task's mm, if it is not already going away */ extern struct mm_struct *get_task_mm(struct task_struct *task); /* diff --git a/include/linux/timecounter.h b/include/linux/timecounter.h new file mode 100644 index 0000000000000..146f07a6651be --- /dev/null +++ b/include/linux/timecounter.h @@ -0,0 +1,122 @@ +/* + * linux/include/linux/timecounter.h + * + * based on code that migrated away from + * linux/include/linux/clocksource.h + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ +#ifndef _LINUX_TIMECOUNTER_H +#define _LINUX_TIMECOUNTER_H + +#include + +/** + * struct cyclecounter - hardware abstraction for a free running counter + * Provides completely state-free accessors to the underlying hardware. + * Depending on which hardware it reads, the cycle counter may wrap + * around quickly. Locking rules (if necessary) have to be defined + * by the implementor and user of specific instances of this API. + * + * @read: returns the current cycle value + * @mask: bitmask for two's complement + * subtraction of non 64 bit counters, + * see CLOCKSOURCE_MASK() helper macro + * @mult: cycle to nanosecond multiplier + * @shift: cycle to nanosecond divisor (power of two) + */ +struct cyclecounter { + cycle_t (*read)(const struct cyclecounter *cc); + cycle_t mask; + u32 mult; + u32 shift; +}; + +/** + * struct timecounter - layer above a %struct cyclecounter which counts nanoseconds + * Contains the state needed by timecounter_read() to detect + * cycle counter wrap around. Initialize with + * timecounter_init(). Also used to convert cycle counts into the + * corresponding nanosecond counts with timecounter_cyc2time(). Users + * of this code are responsible for initializing the underlying + * cycle counter hardware, locking issues and reading the time + * more often than the cycle counter wraps around. The nanosecond + * counter will only wrap around after ~585 years. + * + * @cc: the cycle counter used by this instance + * @cycle_last: most recent cycle counter value seen by + * timecounter_read() + * @nsec: continuously increasing count + */ +struct timecounter { + const struct cyclecounter *cc; + cycle_t cycle_last; + u64 nsec; +}; + +/** + * cyclecounter_cyc2ns - converts cycle counter cycles to nanoseconds + * @cc: Pointer to cycle counter. + * @cycles: Cycles + * + * XXX - This could use some mult_lxl_ll() asm optimization. Same code + * as in cyc2ns, but with unsigned result. + */ +static inline u64 cyclecounter_cyc2ns(const struct cyclecounter *cc, + cycle_t cycles) +{ + u64 ret = (u64)cycles; + ret = (ret * cc->mult) >> cc->shift; + return ret; +} + +/** + * timecounter_init - initialize a time counter + * @tc: Pointer to time counter which is to be initialized/reset + * @cc: A cycle counter, ready to be used. + * @start_tstamp: Arbitrary initial time stamp. + * + * After this call the current cycle register (roughly) corresponds to + * the initial time stamp. Every call to timecounter_read() increments + * the time stamp counter by the number of elapsed nanoseconds. + */ +extern void timecounter_init(struct timecounter *tc, + const struct cyclecounter *cc, + u64 start_tstamp); + +/** + * timecounter_read - return nanoseconds elapsed since timecounter_init() + * plus the initial time stamp + * @tc: Pointer to time counter. + * + * In other words, keeps track of time since the same epoch as + * the function which generated the initial time stamp. + */ +extern u64 timecounter_read(struct timecounter *tc); + +/** + * timecounter_cyc2time - convert a cycle counter to same + * time base as values returned by + * timecounter_read() + * @tc: Pointer to time counter. + * @cycle_tstamp: a value returned by tc->cc->read() + * + * Cycle counts that are converted correctly as long as they + * fall into the interval [-1/2 max cycle count, +1/2 max cycle count], + * with "max cycle count" == cs->mask+1. + * + * This allows conversion of cycle counter values which were generated + * in the past. + */ +extern u64 timecounter_cyc2time(struct timecounter *tc, + cycle_t cycle_tstamp); + +#endif diff --git a/include/linux/types.h b/include/linux/types.h index 049fc8697cb15..d23c45e74f8a2 100644 --- a/include/linux/types.h +++ b/include/linux/types.h @@ -213,5 +213,8 @@ struct callback_head { }; #define rcu_head callback_head +/* clocksource cycle base type */ +typedef u64 cycle_t; + #endif /* __ASSEMBLY__ */ #endif /* _LINUX_TYPES_H */ diff --git a/include/linux/usb/msm_hsusb.h b/include/linux/usb/msm_hsusb.h index c6a75ff91e64e..572eef14c8829 100644 --- a/include/linux/usb/msm_hsusb.h +++ b/include/linux/usb/msm_hsusb.h @@ -3,6 +3,7 @@ * Copyright (C) 2008 Google, Inc. * Author: Brian Swetland * Copyright (c) 2009-2017, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. * * This software is licensed under the terms of the GNU General Public * License version 2, as published by the Free Software Foundation, and @@ -120,9 +121,10 @@ enum msm_usb_phy_type { QUSB_ULPI_PHY, }; -#define IDEV_CHG_MAX 1500 +#define IDEV_CHG_MAX 1000 #define IUNIT 100 #define IDEV_HVDCP_CHG_MAX 1800 +#define IDEV_CHG_MIN 500 /** * Different states involved in USB charger detection. @@ -421,6 +423,8 @@ struct msm_otg { struct clk *phy_csr_clk; struct clk *bus_clks[USB_NUM_BUS_CLOCKS]; struct clk *phy_ref_clk; + spinlock_t otg_phy_clk_lock; + bool otg_phy_clk_enable; long core_clk_rate; long core_clk_svs_rate; long core_clk_nominal_rate; diff --git a/include/linux/zpool.h b/include/linux/zpool.h index 56529b34dc635..2e97b7707dffc 100644 --- a/include/linux/zpool.h +++ b/include/linux/zpool.h @@ -36,10 +36,12 @@ enum zpool_mapmode { ZPOOL_MM_DEFAULT = ZPOOL_MM_RW }; -struct zpool *zpool_create_pool(char *type, char *name, - gfp_t gfp, struct zpool_ops *ops); +bool zpool_has_pool(char *type); -char *zpool_get_type(struct zpool *pool); +struct zpool *zpool_create_pool(const char *type, const char *name, + gfp_t gfp, const struct zpool_ops *ops); + +const char *zpool_get_type(struct zpool *pool); void zpool_destroy_pool(struct zpool *pool); @@ -81,7 +83,10 @@ struct zpool_driver { atomic_t refcount; struct list_head list; - void *(*create)(char *name, gfp_t gfp, struct zpool_ops *ops); + void *(*create)(const char *name, + gfp_t gfp, + const struct zpool_ops *ops, + struct zpool *zpool); void (*destroy)(void *pool); int (*malloc)(void *pool, size_t size, gfp_t gfp, @@ -102,6 +107,4 @@ void zpool_register_driver(struct zpool_driver *driver); int zpool_unregister_driver(struct zpool_driver *driver); -int zpool_evict(void *pool, unsigned long handle); - #endif diff --git a/include/linux/zsmalloc.h b/include/linux/zsmalloc.h index 1338190b54783..57a8e98f2708c 100644 --- a/include/linux/zsmalloc.h +++ b/include/linux/zsmalloc.h @@ -34,12 +34,17 @@ enum zs_mapmode { */ }; +struct zs_pool_stats { + /* How many pages were migrated (freed) */ + unsigned long pages_compacted; +}; + struct zs_pool; -struct zs_pool *zs_create_pool(char *name, gfp_t flags); +struct zs_pool *zs_create_pool(const char *name); void zs_destroy_pool(struct zs_pool *pool); -unsigned long zs_malloc(struct zs_pool *pool, size_t size); +unsigned long zs_malloc(struct zs_pool *pool, size_t size, gfp_t flags); void zs_free(struct zs_pool *pool, unsigned long obj); void *zs_map_object(struct zs_pool *pool, unsigned long handle, @@ -49,4 +54,5 @@ void zs_unmap_object(struct zs_pool *pool, unsigned long handle); unsigned long zs_get_total_pages(struct zs_pool *pool); unsigned long zs_compact(struct zs_pool *pool); +void zs_pool_stats(struct zs_pool *pool, struct zs_pool_stats *stats); #endif diff --git a/include/scsi/fc/Kbuild b/include/scsi/fc/Kbuild deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/include/sound/rawmidi.h b/include/sound/rawmidi.h index 5bd2bfbf6dd11..0afad5cd6253a 100644 --- a/include/sound/rawmidi.h +++ b/include/sound/rawmidi.h @@ -77,6 +77,7 @@ struct snd_rawmidi_runtime { size_t xruns; /* over/underruns counter */ /* misc */ spinlock_t lock; + struct mutex realloc_mutex; wait_queue_head_t sleep; /* event handler (new bytes, input only) */ void (*event)(struct snd_rawmidi_substream *substream); diff --git a/include/uapi/linux/input.h b/include/uapi/linux/input.h index 7082516374d27..6db9562a0ac78 100644 --- a/include/uapi/linux/input.h +++ b/include/uapi/linux/input.h @@ -481,6 +481,11 @@ struct input_keymap_entry { #define KEY_MICMUTE 248 /* Mute / unmute the microphone */ +#define KEY_NEXTSONG_NEW 250 +#define KEY_PREVIOUSSONG_NEW 251 + +#define KEY_ANTENNA_DET 252 +#define KEY_ANTENNA_DET_UP 253 /* Code 255 is reserved for special needs of AT keyboard driver */ #define BTN_MISC 0x100 diff --git a/include/uapi/linux/msm_mdp.h b/include/uapi/linux/msm_mdp.h index 1fc1e39fd9704..00847271c3f2e 100644 --- a/include/uapi/linux/msm_mdp.h +++ b/include/uapi/linux/msm_mdp.h @@ -71,6 +71,11 @@ #define MSMFB_MDP_PP_GET_FEATURE_VERSION _IOWR(MSMFB_IOCTL_MAGIC, 171, \ struct mdp_pp_feature_version) +#define MSMFB_ENHANCE_SET_GAMMA _IOWR(MSMFB_IOCTL_MAGIC, 172, unsigned int) +#define MSMFB_ENHANCE_SET_CE _IOWR(MSMFB_IOCTL_MAGIC, 173, unsigned int) +#define MSMFB_ENHANCE_SET_EYE _IOWR(MSMFB_IOCTL_MAGIC, 174, unsigned int) +#define MSMFB_SET_CABC _IOWR(MSMFB_IOCTL_MAGIC, 175, unsigned int) + #define FB_TYPE_3D_PANEL 0x10101010 #define MDP_IMGTYPE2_START 0x10000 #define MSMFB_DRIVER_VERSION 0xF9E8D701 diff --git a/ipc/mqueue.c b/ipc/mqueue.c index f65a044d66c54..3949468d5af19 100644 --- a/ipc/mqueue.c +++ b/ipc/mqueue.c @@ -751,7 +751,7 @@ static struct file *do_create(struct ipc_namespace *ipc_ns, struct inode *dir, } mode &= ~current_umask(); - ret = vfs_create(dir, path->dentry, mode, true); + ret = vfs_create2(path->mnt, dir, path->dentry, mode, true); path->dentry->d_fsdata = NULL; if (ret) return ERR_PTR(ret); @@ -767,7 +767,7 @@ static struct file *do_open(struct path *path, int oflag) if ((oflag & O_ACCMODE) == (O_RDWR | O_WRONLY)) return ERR_PTR(-EINVAL); acc = oflag2acc[oflag & O_ACCMODE]; - if (inode_permission(path->dentry->d_inode, acc)) + if (inode_permission2(path->mnt, path->dentry->d_inode, acc)) return ERR_PTR(-EACCES); return dentry_open(path, oflag, current_cred()); } @@ -800,7 +800,7 @@ SYSCALL_DEFINE4(mq_open, const char __user *, u_name, int, oflag, umode_t, mode, ro = mnt_want_write(mnt); /* we'll drop it in any case */ error = 0; mutex_lock(&root->d_inode->i_mutex); - path.dentry = lookup_one_len(name->name, root, strlen(name->name)); + path.dentry = lookup_one_len2(name->name, mnt, root, strlen(name->name)); if (IS_ERR(path.dentry)) { error = PTR_ERR(path.dentry); goto out_putfd; @@ -871,7 +871,7 @@ SYSCALL_DEFINE1(mq_unlink, const char __user *, u_name) if (err) goto out_name; mutex_lock_nested(&mnt->mnt_root->d_inode->i_mutex, I_MUTEX_PARENT); - dentry = lookup_one_len(name->name, mnt->mnt_root, + dentry = lookup_one_len2(name->name, mnt, mnt->mnt_root, strlen(name->name)); if (IS_ERR(dentry)) { err = PTR_ERR(dentry); @@ -883,7 +883,7 @@ SYSCALL_DEFINE1(mq_unlink, const char __user *, u_name) err = -ENOENT; } else { ihold(inode); - err = vfs_unlink(dentry->d_parent->d_inode, dentry, NULL); + err = vfs_unlink2(mnt, dentry->d_parent->d_inode, dentry, NULL); } dput(dentry); diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c index 67f5f177c0715..72f96e69eec3f 100644 --- a/kernel/bpf/verifier.c +++ b/kernel/bpf/verifier.c @@ -315,7 +315,8 @@ static const char *const bpf_jmp_string[] = { [BPF_EXIT >> 4] = "exit", }; -static void print_bpf_insn(struct bpf_insn *insn) +static void print_bpf_insn(const struct bpf_verifier_env *env, + const struct bpf_insn *insn) { u8 class = BPF_CLASS(insn->code); @@ -379,9 +380,19 @@ static void print_bpf_insn(struct bpf_insn *insn) insn->code, bpf_ldst_string[BPF_SIZE(insn->code) >> 3], insn->src_reg, insn->imm); - } else if (BPF_MODE(insn->code) == BPF_IMM) { - verbose("(%02x) r%d = 0x%x\n", - insn->code, insn->dst_reg, insn->imm); + } else if (BPF_MODE(insn->code) == BPF_IMM && + BPF_SIZE(insn->code) == BPF_DW) { + /* At this point, we already made sure that the second + * part of the ldimm64 insn is accessible. + */ + u64 imm = ((u64)(insn + 1)->imm << 32) | (u32)insn->imm; + bool map_ptr = insn->src_reg == BPF_PSEUDO_MAP_FD; + + if (map_ptr && !env->allow_ptr_leaks) + imm = 0; + + verbose("(%02x) r%d = 0x%llx\n", insn->code, + insn->dst_reg, (unsigned long long)imm); } else { verbose("BUG_ld_%02x\n", insn->code); return; @@ -1534,7 +1545,7 @@ static int do_check(struct verifier_env *env) if (log_level) { verbose("%d: ", insn_idx); - print_bpf_insn(insn); + print_bpf_insn(env, insn); } if (class == BPF_ALU || class == BPF_ALU64) { diff --git a/kernel/cpu.c b/kernel/cpu.c index 8503e5eaa4585..23d4b48b020fc 100644 --- a/kernel/cpu.c +++ b/kernel/cpu.c @@ -24,6 +24,7 @@ #include #include +#include #include "smpboot.h" @@ -492,6 +493,10 @@ static int _cpu_up(unsigned int cpu, int tasks_frozen) nr_calls--; pr_warn("%s: attempt to bring up CPU %u failed\n", __func__, cpu); + + ktrace_add_cpufreq_event(KTRACE_CPUFREQ_TYPE_UNPLUGED, + current->pid, ktime_to_ns(ktime_get()), cpu, 0, 0); + goto out_notify; } diff --git a/kernel/cpuset.c b/kernel/cpuset.c index 71b52dd957de1..4e39fcba59d45 100644 --- a/kernel/cpuset.c +++ b/kernel/cpuset.c @@ -99,6 +99,7 @@ struct cpuset { /* user-configured CPUs and Memory Nodes allow to tasks */ cpumask_var_t cpus_allowed; + cpumask_var_t cpus_requested; nodemask_t mems_allowed; /* effective CPUs and Memory Nodes allow to tasks */ @@ -385,7 +386,7 @@ static void cpuset_update_task_spread_flag(struct cpuset *cs, static int is_cpuset_subset(const struct cpuset *p, const struct cpuset *q) { - return cpumask_subset(p->cpus_allowed, q->cpus_allowed) && + return cpumask_subset(p->cpus_requested, q->cpus_requested) && nodes_subset(p->mems_allowed, q->mems_allowed) && is_cpu_exclusive(p) <= is_cpu_exclusive(q) && is_mem_exclusive(p) <= is_mem_exclusive(q); @@ -484,7 +485,7 @@ static int validate_change(struct cpuset *cur, struct cpuset *trial) cpuset_for_each_child(c, css, par) { if ((is_cpu_exclusive(trial) || is_cpu_exclusive(c)) && c != cur && - cpumask_intersects(trial->cpus_allowed, c->cpus_allowed)) + cpumask_intersects(trial->cpus_requested, c->cpus_requested)) goto out; if ((is_mem_exclusive(trial) || is_mem_exclusive(c)) && c != cur && @@ -923,17 +924,18 @@ static int update_cpumask(struct cpuset *cs, struct cpuset *trialcs, if (!*buf) { cpumask_clear(trialcs->cpus_allowed); } else { - retval = cpulist_parse(buf, trialcs->cpus_allowed); + retval = cpulist_parse(buf, trialcs->cpus_requested); if (retval < 0) return retval; - if (!cpumask_subset(trialcs->cpus_allowed, - top_cpuset.cpus_allowed)) + if (!cpumask_subset(trialcs->cpus_requested, cpu_present_mask)) return -EINVAL; + + cpumask_and(trialcs->cpus_allowed, trialcs->cpus_requested, cpu_active_mask); } /* Nothing to do if the cpus didn't change */ - if (cpumask_equal(cs->cpus_allowed, trialcs->cpus_allowed)) + if (cpumask_equal(cs->cpus_requested, trialcs->cpus_requested)) return 0; retval = validate_change(cs, trialcs); @@ -942,6 +944,7 @@ static int update_cpumask(struct cpuset *cs, struct cpuset *trialcs, mutex_lock(&callback_mutex); cpumask_copy(cs->cpus_allowed, trialcs->cpus_allowed); + cpumask_copy(cs->cpus_requested, trialcs->cpus_requested); mutex_unlock(&callback_mutex); /* use trialcs->cpus_allowed as a temp variable */ @@ -1454,6 +1457,27 @@ static int cpuset_can_attach(struct cgroup_subsys_state *css, return ret; } +static int cpuset_allow_attach(struct cgroup_subsys_state *css, + struct cgroup_taskset *tset) +{ + const struct cred *cred = current_cred(), *tcred; + struct task_struct *task; + + if (capable(CAP_SYS_NICE)) + return 0; + + cgroup_taskset_for_each(task, tset) { + tcred = __task_cred(task); + + if (current != task && !uid_eq(cred->euid, tcred->uid) && + !uid_eq(cred->euid, tcred->suid)) + return -EACCES; + } + + return 0; +} + + static void cpuset_cancel_attach(struct cgroup_subsys_state *css, struct cgroup_taskset *tset) { @@ -1714,7 +1738,7 @@ static int cpuset_common_seq_show(struct seq_file *sf, void *v) switch (type) { case FILE_CPULIST: - s += cpulist_scnprintf(s, count, cs->cpus_allowed); + s += cpulist_scnprintf(s, count, cs->cpus_requested); break; case FILE_MEMLIST: s += nodelist_scnprintf(s, count, cs->mems_allowed); @@ -1914,11 +1938,14 @@ cpuset_css_alloc(struct cgroup_subsys_state *parent_css) return ERR_PTR(-ENOMEM); if (!alloc_cpumask_var(&cs->cpus_allowed, GFP_KERNEL)) goto free_cs; + if (!alloc_cpumask_var(&cs->cpus_requested, GFP_KERNEL)) + goto free_allowed; if (!alloc_cpumask_var(&cs->effective_cpus, GFP_KERNEL)) - goto free_cpus; + goto free_requested; set_bit(CS_SCHED_LOAD_BALANCE, &cs->flags); cpumask_clear(cs->cpus_allowed); + cpumask_clear(cs->cpus_requested); nodes_clear(cs->mems_allowed); cpumask_clear(cs->effective_cpus); nodes_clear(cs->effective_mems); @@ -1927,7 +1954,9 @@ cpuset_css_alloc(struct cgroup_subsys_state *parent_css) return &cs->css; -free_cpus: +free_requested: + free_cpumask_var(cs->cpus_requested); +free_allowed: free_cpumask_var(cs->cpus_allowed); free_cs: kfree(cs); @@ -1990,6 +2019,7 @@ static int cpuset_css_online(struct cgroup_subsys_state *css) cs->mems_allowed = parent->mems_allowed; cs->effective_mems = parent->mems_allowed; cpumask_copy(cs->cpus_allowed, parent->cpus_allowed); + cpumask_copy(cs->cpus_requested, parent->cpus_requested); cpumask_copy(cs->effective_cpus, parent->cpus_allowed); mutex_unlock(&callback_mutex); out_unlock: @@ -2024,6 +2054,7 @@ static void cpuset_css_free(struct cgroup_subsys_state *css) free_cpumask_var(cs->effective_cpus); free_cpumask_var(cs->cpus_allowed); + free_cpumask_var(cs->cpus_requested); kfree(cs); } @@ -2051,6 +2082,7 @@ struct cgroup_subsys cpuset_cgrp_subsys = { .css_offline = cpuset_css_offline, .css_free = cpuset_css_free, .can_attach = cpuset_can_attach, + .allow_attach = cpuset_allow_attach, .cancel_attach = cpuset_cancel_attach, .attach = cpuset_attach, .bind = cpuset_bind, @@ -2072,8 +2104,11 @@ int __init cpuset_init(void) BUG(); if (!alloc_cpumask_var(&top_cpuset.effective_cpus, GFP_KERNEL)) BUG(); + if (!alloc_cpumask_var(&top_cpuset.cpus_requested, GFP_KERNEL)) + BUG(); cpumask_setall(top_cpuset.cpus_allowed); + cpumask_setall(top_cpuset.cpus_requested); nodes_setall(top_cpuset.mems_allowed); cpumask_setall(top_cpuset.effective_cpus); nodes_setall(top_cpuset.effective_mems); @@ -2207,7 +2242,7 @@ static void cpuset_hotplug_update_tasks(struct cpuset *cs) goto retry; } - cpumask_and(&new_cpus, cs->cpus_allowed, parent_cs(cs)->effective_cpus); + cpumask_and(&new_cpus, cs->cpus_requested, parent_cs(cs)->effective_cpus); nodes_and(new_mems, cs->mems_allowed, parent_cs(cs)->effective_mems); cpus_updated = !cpumask_equal(&new_cpus, cs->effective_cpus); diff --git a/kernel/events/core.c b/kernel/events/core.c index 94a2c9dca1a87..62372aa81df99 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c @@ -7435,6 +7435,37 @@ static void mutex_lock_double(struct mutex *a, struct mutex *b) mutex_lock_nested(b, SINGLE_DEPTH_NESTING); } +/* + * Variation on perf_event_ctx_lock_nested(), except we take two context + * mutexes. + */ +static struct perf_event_context * +__perf_event_ctx_lock_double(struct perf_event *group_leader, + struct perf_event_context *ctx) +{ + struct perf_event_context *gctx; + +again: + rcu_read_lock(); + gctx = ACCESS_ONCE(group_leader->ctx); + if (!atomic_inc_not_zero(&gctx->refcount)) { + rcu_read_unlock(); + goto again; + } + rcu_read_unlock(); + + mutex_lock_double(&gctx->mutex, &ctx->mutex); + + if (group_leader->ctx != gctx) { + mutex_unlock(&ctx->mutex); + mutex_unlock(&gctx->mutex); + put_ctx(gctx); + goto again; + } + + return gctx; +} + /** * sys_perf_event_open - open a performance event, associate it to a task/cpu * @@ -7664,14 +7695,31 @@ SYSCALL_DEFINE5(perf_event_open, } if (move_group) { - gctx = group_leader->ctx; + gctx = __perf_event_ctx_lock_double(group_leader, ctx); + + /* + * Check if we raced against another sys_perf_event_open() call + * moving the software group underneath us. + */ + if (!(group_leader->group_flags & PERF_GROUP_SOFTWARE)) { + /* + * If someone moved the group out from under us, check + * if this new event wound up on the same ctx, if so + * its the regular !move_group case, otherwise fail. + */ + if (gctx != ctx) { + err = -EINVAL; + goto err_locked; + } else { + perf_event_ctx_unlock(group_leader, gctx); + move_group = 0; + } + } /* * See perf_event_ctx_lock() for comments on the details * of swizzling perf_event::ctx. */ - mutex_lock_double(&gctx->mutex, &ctx->mutex); - perf_remove_from_context(group_leader, false); /* @@ -7712,7 +7760,7 @@ SYSCALL_DEFINE5(perf_event_open, perf_unpin_context(ctx); if (move_group) { - mutex_unlock(&gctx->mutex); + perf_event_ctx_unlock(group_leader, gctx); put_ctx(gctx); } mutex_unlock(&ctx->mutex); @@ -7743,6 +7791,11 @@ SYSCALL_DEFINE5(perf_event_open, fd_install(event_fd, event_file); return event_fd; +err_locked: + if (move_group) + perf_event_ctx_unlock(group_leader, gctx); + mutex_unlock(&ctx->mutex); + fput(event_file); err_context: perf_unpin_context(ctx); put_ctx(ctx); diff --git a/kernel/fork.c b/kernel/fork.c index 786c9dce31ba8..3eac3fd8c71e1 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -76,6 +76,8 @@ #include #include +#include + #include #include #include @@ -151,16 +153,24 @@ void __weak arch_release_thread_info(struct thread_info *ti) static struct thread_info *alloc_thread_info_node(struct task_struct *tsk, int node) { +#ifdef CONFIG_RTMM + struct page *page = rtmm_alloc_pages(RTMM_POOL_THREADINFO); +#else struct page *page = alloc_kmem_pages_node(node, THREADINFO_GFP, THREAD_SIZE_ORDER); +#endif return page ? page_address(page) : NULL; } static inline void free_thread_info(struct thread_info *ti) { +#ifdef CONFIG_RTMM + rtmm_free_pages(ti, RTMM_POOL_THREADINFO); +#else kasan_alloc_pages(virt_to_page(ti), THREAD_SIZE_ORDER); free_kmem_pages((unsigned long)ti, THREAD_SIZE_ORDER); +#endif } # else static struct kmem_cache *thread_info_cache; @@ -661,6 +671,27 @@ void __mmdrop(struct mm_struct *mm) } EXPORT_SYMBOL_GPL(__mmdrop); +static inline void __mmput(struct mm_struct *mm) +{ + VM_BUG_ON(atomic_read(&mm->mm_users)); + + uprobe_clear_state(mm); + exit_aio(mm); + ksm_exit(mm); + khugepaged_exit(mm); /* must run before exit_mmap */ + exit_mmap(mm); + set_mm_exe_file(mm, NULL); + if (!list_empty(&mm->mmlist)) { + spin_lock(&mmlist_lock); + list_del(&mm->mmlist); + spin_unlock(&mmlist_lock); + } + if (mm->binfmt) + module_put(mm->binfmt->module); + mmdrop(mm); +} + + /* * Decrement the use count and release all resources for an mm. */ @@ -670,26 +701,27 @@ int mmput(struct mm_struct *mm) might_sleep(); if (atomic_dec_and_test(&mm->mm_users)) { - uprobe_clear_state(mm); - exit_aio(mm); - ksm_exit(mm); - khugepaged_exit(mm); /* must run before exit_mmap */ - exit_mmap(mm); - set_mm_exe_file(mm, NULL); - if (!list_empty(&mm->mmlist)) { - spin_lock(&mmlist_lock); - list_del(&mm->mmlist); - spin_unlock(&mmlist_lock); - } - if (mm->binfmt) - module_put(mm->binfmt->module); - mmdrop(mm); + __mmput(mm); mm_freed = 1; } return mm_freed; } EXPORT_SYMBOL_GPL(mmput); +static void mmput_async_fn(struct work_struct *work) +{ + struct mm_struct *mm = container_of(work, struct mm_struct, async_put_work); + __mmput(mm); +} + +void mmput_async(struct mm_struct *mm) +{ + if (atomic_dec_and_test(&mm->mm_users)) { + INIT_WORK(&mm->async_put_work, mmput_async_fn); + schedule_work(&mm->async_put_work); + } +} + void set_mm_exe_file(struct mm_struct *mm, struct file *new_exe_file) { if (new_exe_file) diff --git a/kernel/pid.c b/kernel/pid.c index 82430c858d697..65a386e248110 100644 --- a/kernel/pid.c +++ b/kernel/pid.c @@ -523,8 +523,11 @@ pid_t __task_pid_nr_ns(struct task_struct *task, enum pid_type type, if (!ns) ns = task_active_pid_ns(current); if (likely(pid_alive(task))) { - if (type != PIDTYPE_PID) + if (type != PIDTYPE_PID) { + if (type == __PIDTYPE_TGID) + type = PIDTYPE_PID; task = task->group_leader; + } nr = pid_nr_ns(task->pids[type].pid, ns); } rcu_read_unlock(); @@ -533,12 +536,6 @@ pid_t __task_pid_nr_ns(struct task_struct *task, enum pid_type type, } EXPORT_SYMBOL(__task_pid_nr_ns); -pid_t task_tgid_nr_ns(struct task_struct *tsk, struct pid_namespace *ns) -{ - return pid_nr_ns(task_tgid(tsk), ns); -} -EXPORT_SYMBOL(task_tgid_nr_ns); - struct pid_namespace *task_active_pid_ns(struct task_struct *tsk) { return ns_of_pid(task_pid(tsk)); diff --git a/kernel/power/Kconfig b/kernel/power/Kconfig index 67ecc6b59e1c6..e1e59512337b8 100644 --- a/kernel/power/Kconfig +++ b/kernel/power/Kconfig @@ -18,6 +18,16 @@ config SUSPEND_FREEZER Turning OFF this setting is NOT recommended! If in doubt, say Y. +config SUSPEND_SKIP_SYNC + bool "Skip kernel's sys_sync() on suspend to RAM/standby" + depends on SUSPEND + depends on EXPERT + help + Skip the kernel sys_sync() before freezing user processes. + Some systems prefer not to pay this cost on every invocation + of suspend, or they are content with invoking sync() from + user-space before invoking suspend. Say Y if that's your case. + config WAKELOCK bool "Android's method of preventing suspend" default y diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c index a212348cbfbfb..08deeaf752d7e 100644 --- a/kernel/power/suspend.c +++ b/kernel/power/suspend.c @@ -463,11 +463,13 @@ static int enter_state(suspend_state_t state) if (state == PM_SUSPEND_FREEZE) freeze_begin(); +#ifndef CONFIG_SUSPEND_SKIP_SYNC trace_suspend_resume(TPS("sync_filesystems"), 0, true); printk(KERN_INFO "PM: Syncing filesystems ... "); sys_sync(); printk("done.\n"); trace_suspend_resume(TPS("sync_filesystems"), 0, false); +#endif pr_debug("PM: Preparing system for %s sleep\n", pm_states[state]); error = suspend_prepare(state); diff --git a/kernel/sched/qhmp_core.c b/kernel/sched/qhmp_core.c index ce2c0c3dc1a12..65bc5fc785070 100644 --- a/kernel/sched/qhmp_core.c +++ b/kernel/sched/qhmp_core.c @@ -76,6 +76,8 @@ #include #include #include +#include +#include #include #include @@ -1904,6 +1906,9 @@ static void update_task_demand(struct task_struct *p, struct rq *rq, /* Process (window_start - mark_start) first */ add_to_task_demand(rq, p, window_start - mark_start); + ktrace_cpufreq_update_history(p, p->ravg.sum, nr_full_windows, + scale_exec_time(window_size, rq)); + /* Push new sample(s) into task's demand history */ update_history(rq, p, p->ravg.sum, 1, event); if (nr_full_windows) @@ -3231,6 +3236,9 @@ ttwu_do_wakeup(struct rq *rq, struct task_struct *p, int wake_flags) { check_preempt_curr(rq, p, wake_flags); trace_sched_wakeup(p, true); + if (ktrace_sched_match_pid(p->pid)) { + p->last_wakeup = sched_ktime_clock(); + } p->state = TASK_RUNNING; #ifdef CONFIG_SMP @@ -4061,6 +4069,23 @@ static inline void prepare_task_switch(struct rq *rq, struct task_struct *prev, struct task_struct *next) { + if (ktrace_sched_match_pid(prev->pid) && prev->state == TASK_RUNNING) { + prev->last_preempt = sched_ktime_clock(); + } else if (ktrace_sched_match_pid(next->pid) && next->state == TASK_RUNNING) { + s64 now = sched_ktime_clock(); + + if (next->last_preempt) { + ktrace_add_sched_event(KTRACE_SCHED_TYPE_PREEMPT, next->pid, + now, (now - next->last_preempt), NULL); + } else if (next->last_wakeup) { + ktrace_add_sched_event(KTRACE_SCHED_TYPE_WAIT, next->pid, + now, (now - next->last_wakeup), NULL); + } + + next->last_preempt = 0; + next->last_wakeup = 0; + } + trace_sched_switch(prev, next); sched_info_switch(rq, prev, next); perf_event_task_sched_out(prev, next); diff --git a/kernel/sched/qhmp_fair.c b/kernel/sched/qhmp_fair.c index f19c331cf9cba..c7d12d71ffc42 100644 --- a/kernel/sched/qhmp_fair.c +++ b/kernel/sched/qhmp_fair.c @@ -31,6 +31,7 @@ #include #include #include +#include #include @@ -4935,6 +4936,12 @@ static void enqueue_sleeper(struct cfs_rq *cfs_rq, struct sched_entity *se) trace_sched_stat_blocked(tsk, delta); + if (ktrace_sched_match_pid(tsk->pid)) { + ktrace_add_sched_event(KTRACE_SCHED_TYPE_BLOCK, + tsk->pid, sched_ktime_clock(), delta, + (void *)get_wchan(tsk)); + } + /* * Blocking time is in units of nanosecs, so shift by * 20 to get a milliseconds-range estimation of the diff --git a/kernel/sched/sched_avg.c b/kernel/sched/sched_avg.c index c70e0466c36c4..cfb0607f1f5e3 100644 --- a/kernel/sched/sched_avg.c +++ b/kernel/sched/sched_avg.c @@ -107,7 +107,7 @@ EXPORT_SYMBOL(sched_get_nr_running_avg); */ void sched_update_nr_prod(int cpu, long delta, bool inc) { - int diff; + s64 diff; s64 curr_time; unsigned long flags, nr_running; diff --git a/kernel/time/Makefile b/kernel/time/Makefile index d678ca611304b..bfbbb41c07348 100644 --- a/kernel/time/Makefile +++ b/kernel/time/Makefile @@ -1,6 +1,6 @@ obj-y += time.o timer.o hrtimer.o itimer.o posix-timers.o posix-cpu-timers.o obj-y += timekeeping.o ntp.o clocksource.o jiffies.o timer_list.o -obj-y += timeconv.o posix-clock.o alarmtimer.o +obj-y += timeconv.o timecounter.o posix-clock.o alarmtimer.o obj-$(CONFIG_GENERIC_CLOCKEVENTS_BUILD) += clockevents.o obj-$(CONFIG_GENERIC_CLOCKEVENTS) += tick-common.o diff --git a/kernel/time/alarmtimer.c b/kernel/time/alarmtimer.c index 47d256ff51ec7..b250a70b903cd 100644 --- a/kernel/time/alarmtimer.c +++ b/kernel/time/alarmtimer.c @@ -26,6 +26,9 @@ #include #include +#include +#include + #ifdef CONFIG_MSM_PM #include "lpm-levels.h" #endif @@ -54,6 +57,15 @@ static struct wakeup_source *ws; static struct delayed_work work; static struct workqueue_struct *power_off_alarm_workqueue; +#define AUTOWAKEUP_MAGIC 0xA2370000 +#define AUTOWAKEUP_MASK 0x0000FFFF + +static unsigned int auto_wakeup_time = AUTOWAKEUP_MAGIC; +#define AUTOWAKEUP_VALID_TIME_GET() \ + (AUTOWAKEUP_MAGIC == (auto_wakeup_time & (~AUTOWAKEUP_MASK)) ? (AUTOWAKEUP_MASK & auto_wakeup_time) : 0) +module_param_named(auto_wakeup_time, auto_wakeup_time, uint, S_IRUGO | S_IWUSR | S_IWGRP); +MODULE_PARM_DESC(auto_wakeup_time, "vRTC auto wakeup expire time(default is 0s)"); + #ifdef CONFIG_RTC_CLASS /* rtc timer and device for setting alarm wakeups at suspend */ static struct rtc_timer rtctimer; @@ -372,6 +384,7 @@ static int alarmtimer_suspend(struct device *dev) struct rtc_device *rtc; int i; int ret = 0; + unsigned int wakeup_time = 0; cancel_delayed_work_sync(&work); @@ -408,6 +421,12 @@ static int alarmtimer_suspend(struct device *dev) return -EBUSY; } + wakeup_time = AUTOWAKEUP_VALID_TIME_GET(); + if (unlikely(0 != wakeup_time)) { + min = ktime_set(wakeup_time, 0); + pr_err("auto wakeup: wake up in %d seconds\n", wakeup_time); + } + /* Setup a timer to fire that far in the future */ rtc_timer_cancel(rtc, &rtctimer); rtc_read_time(rtc, &tm); @@ -486,10 +505,16 @@ static int alarmtimer_suspend(struct device *dev) return ret; } #endif + +void qpnp_kpdpwr_simulate(void); static int alarmtimer_resume(struct device *dev) { struct rtc_device *rtc; + if (unlikely(0 != AUTOWAKEUP_VALID_TIME_GET())) { + qpnp_kpdpwr_simulate(); + } + rtc = alarmtimer_get_rtcdev(); /* If we have no rtcdev, just return */ if (!rtc) diff --git a/kernel/time/clocksource.c b/kernel/time/clocksource.c index 93aabc88fdc60..6e86678018496 100644 --- a/kernel/time/clocksource.c +++ b/kernel/time/clocksource.c @@ -34,82 +34,6 @@ #include "tick-internal.h" #include "timekeeping_internal.h" -void timecounter_init(struct timecounter *tc, - const struct cyclecounter *cc, - u64 start_tstamp) -{ - tc->cc = cc; - tc->cycle_last = cc->read(cc); - tc->nsec = start_tstamp; -} -EXPORT_SYMBOL_GPL(timecounter_init); - -/** - * timecounter_read_delta - get nanoseconds since last call of this function - * @tc: Pointer to time counter - * - * When the underlying cycle counter runs over, this will be handled - * correctly as long as it does not run over more than once between - * calls. - * - * The first call to this function for a new time counter initializes - * the time tracking and returns an undefined result. - */ -static u64 timecounter_read_delta(struct timecounter *tc) -{ - cycle_t cycle_now, cycle_delta; - u64 ns_offset; - - /* read cycle counter: */ - cycle_now = tc->cc->read(tc->cc); - - /* calculate the delta since the last timecounter_read_delta(): */ - cycle_delta = (cycle_now - tc->cycle_last) & tc->cc->mask; - - /* convert to nanoseconds: */ - ns_offset = cyclecounter_cyc2ns(tc->cc, cycle_delta); - - /* update time stamp of timecounter_read_delta() call: */ - tc->cycle_last = cycle_now; - - return ns_offset; -} - -u64 timecounter_read(struct timecounter *tc) -{ - u64 nsec; - - /* increment time by nanoseconds since last call */ - nsec = timecounter_read_delta(tc); - nsec += tc->nsec; - tc->nsec = nsec; - - return nsec; -} -EXPORT_SYMBOL_GPL(timecounter_read); - -u64 timecounter_cyc2time(struct timecounter *tc, - cycle_t cycle_tstamp) -{ - u64 cycle_delta = (cycle_tstamp - tc->cycle_last) & tc->cc->mask; - u64 nsec; - - /* - * Instead of always treating cycle_tstamp as more recent - * than tc->cycle_last, detect when it is too far in the - * future and treat it as old time stamp instead. - */ - if (cycle_delta > tc->cc->mask / 2) { - cycle_delta = (tc->cycle_last - cycle_tstamp) & tc->cc->mask; - nsec = tc->nsec - cyclecounter_cyc2ns(tc->cc, cycle_delta); - } else { - nsec = cyclecounter_cyc2ns(tc->cc, cycle_delta) + tc->nsec; - } - - return nsec; -} -EXPORT_SYMBOL_GPL(timecounter_cyc2time); - /** * clocks_calc_mult_shift - calculate mult/shift factors for scaled math of clocks * @mult: pointer to mult variable diff --git a/kernel/time/timecounter.c b/kernel/time/timecounter.c new file mode 100644 index 0000000000000..f97fb2145fe29 --- /dev/null +++ b/kernel/time/timecounter.c @@ -0,0 +1,95 @@ +/* + * linux/kernel/time/timecounter.c + * + * based on code that migrated away from + * linux/kernel/time/clocksource.c + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include +#include + +void timecounter_init(struct timecounter *tc, + const struct cyclecounter *cc, + u64 start_tstamp) +{ + tc->cc = cc; + tc->cycle_last = cc->read(cc); + tc->nsec = start_tstamp; +} +EXPORT_SYMBOL_GPL(timecounter_init); + +/** + * timecounter_read_delta - get nanoseconds since last call of this function + * @tc: Pointer to time counter + * + * When the underlying cycle counter runs over, this will be handled + * correctly as long as it does not run over more than once between + * calls. + * + * The first call to this function for a new time counter initializes + * the time tracking and returns an undefined result. + */ +static u64 timecounter_read_delta(struct timecounter *tc) +{ + cycle_t cycle_now, cycle_delta; + u64 ns_offset; + + /* read cycle counter: */ + cycle_now = tc->cc->read(tc->cc); + + /* calculate the delta since the last timecounter_read_delta(): */ + cycle_delta = (cycle_now - tc->cycle_last) & tc->cc->mask; + + /* convert to nanoseconds: */ + ns_offset = cyclecounter_cyc2ns(tc->cc, cycle_delta); + + /* update time stamp of timecounter_read_delta() call: */ + tc->cycle_last = cycle_now; + + return ns_offset; +} + +u64 timecounter_read(struct timecounter *tc) +{ + u64 nsec; + + /* increment time by nanoseconds since last call */ + nsec = timecounter_read_delta(tc); + nsec += tc->nsec; + tc->nsec = nsec; + + return nsec; +} +EXPORT_SYMBOL_GPL(timecounter_read); + +u64 timecounter_cyc2time(struct timecounter *tc, + cycle_t cycle_tstamp) +{ + u64 cycle_delta = (cycle_tstamp - tc->cycle_last) & tc->cc->mask; + u64 nsec; + + /* + * Instead of always treating cycle_tstamp as more recent + * than tc->cycle_last, detect when it is too far in the + * future and treat it as old time stamp instead. + */ + if (cycle_delta > tc->cc->mask / 2) { + cycle_delta = (tc->cycle_last - cycle_tstamp) & tc->cc->mask; + nsec = tc->nsec - cyclecounter_cyc2ns(tc->cc, cycle_delta); + } else { + nsec = cyclecounter_cyc2ns(tc->cc, cycle_delta) + tc->nsec; + } + + return nsec; +} +EXPORT_SYMBOL_GPL(timecounter_cyc2time); diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index 9b75ae8f0bd06..d6ea0a8ed1dec 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug @@ -192,6 +192,21 @@ config ENABLE_MUST_CHECK suppress the "warning: ignoring return value of 'foo', declared with attribute warn_unused_result" messages. +config FIRE_WATCHDOG + bool "Provide watchdog trigger" + default n + depends on PRINTK && MSM_WATCHDOG_V2 + help + Provide a way to trigger watchdog for debugging purpose. + +config DUMP_ALL_STACKS + bool "Show all task stack information in logbuf on panic" + default n + depends on PRINTK && MSM_WATCHDOG_V2 + help + Selecting this option for debugging purpose to dump all task stack + under watchdog disable condition. + config FRAME_WARN int "Warn for stack frames larger than (needs gcc 4.4)" range 0 8192 diff --git a/mm/mempolicy.c b/mm/mempolicy.c index 30d683e54ab5f..e8b2419725688 100644 --- a/mm/mempolicy.c +++ b/mm/mempolicy.c @@ -1546,7 +1546,6 @@ COMPAT_SYSCALL_DEFINE5(get_mempolicy, int __user *, policy, COMPAT_SYSCALL_DEFINE3(set_mempolicy, int, mode, compat_ulong_t __user *, nmask, compat_ulong_t, maxnode) { - long err = 0; unsigned long __user *nm = NULL; unsigned long nr_bits, alloc_size; DECLARE_BITMAP(bm, MAX_NUMNODES); @@ -1555,14 +1554,13 @@ COMPAT_SYSCALL_DEFINE3(set_mempolicy, int, mode, compat_ulong_t __user *, nmask, alloc_size = ALIGN(nr_bits, BITS_PER_LONG) / 8; if (nmask) { - err = compat_get_bitmap(bm, nmask, nr_bits); + if (compat_get_bitmap(bm, nmask, nr_bits)) + return -EFAULT; nm = compat_alloc_user_space(alloc_size); - err |= copy_to_user(nm, bm, alloc_size); + if (copy_to_user(nm, bm, alloc_size)) + return -EFAULT; } - if (err) - return -EFAULT; - return sys_set_mempolicy(mode, nm, nr_bits+1); } @@ -1570,7 +1568,6 @@ COMPAT_SYSCALL_DEFINE6(mbind, compat_ulong_t, start, compat_ulong_t, len, compat_ulong_t, mode, compat_ulong_t __user *, nmask, compat_ulong_t, maxnode, compat_ulong_t, flags) { - long err = 0; unsigned long __user *nm = NULL; unsigned long nr_bits, alloc_size; nodemask_t bm; @@ -1579,14 +1576,13 @@ COMPAT_SYSCALL_DEFINE6(mbind, compat_ulong_t, start, compat_ulong_t, len, alloc_size = ALIGN(nr_bits, BITS_PER_LONG) / 8; if (nmask) { - err = compat_get_bitmap(nodes_addr(bm), nmask, nr_bits); + if (compat_get_bitmap(nodes_addr(bm), nmask, nr_bits)) + return -EFAULT; nm = compat_alloc_user_space(alloc_size); - err |= copy_to_user(nm, nodes_addr(bm), alloc_size); + if (copy_to_user(nm, nodes_addr(bm), alloc_size)) + return -EFAULT; } - if (err) - return -EFAULT; - return sys_mbind(start, len, mode, nm, nr_bits+1, flags); } diff --git a/mm/migrate.c b/mm/migrate.c index 7204f7464b3c7..79004be4ff5ab 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -37,6 +37,7 @@ #include #include #include +#include #include @@ -1470,7 +1471,6 @@ SYSCALL_DEFINE6(move_pages, pid_t, pid, unsigned long, nr_pages, const int __user *, nodes, int __user *, status, int, flags) { - const struct cred *cred = current_cred(), *tcred; struct task_struct *task; struct mm_struct *mm; int err; @@ -1494,14 +1494,9 @@ SYSCALL_DEFINE6(move_pages, pid_t, pid, unsigned long, nr_pages, /* * Check if this process has the right to modify the specified - * process. The right exists if the process has administrative - * capabilities, superuser privileges or the same - * userid as the target process. + * process. Use the regular "ptrace_may_access()" checks. */ - tcred = __task_cred(task); - if (!uid_eq(cred->euid, tcred->suid) && !uid_eq(cred->euid, tcred->uid) && - !uid_eq(cred->uid, tcred->suid) && !uid_eq(cred->uid, tcred->uid) && - !capable(CAP_SYS_NICE)) { + if (!ptrace_may_access(task, PTRACE_MODE_READ_REALCREDS)) { rcu_read_unlock(); err = -EPERM; goto out; diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 5b87e0674296c..ed4e77728747d 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -60,6 +60,7 @@ #include #include #include +#include #include #include @@ -1155,7 +1156,8 @@ static void change_pageblock_range(struct page *pageblock_page, * is worse than movable allocations stealing from unmovable and reclaimable * pageblocks. */ -static bool can_steal_fallback(unsigned int order, int start_mt) +static bool can_steal_fallback(unsigned int order, int start_mt, + int fallback_type, unsigned int start_order) { /* * Leaving this order check is intended, although there is @@ -1167,10 +1169,15 @@ static bool can_steal_fallback(unsigned int order, int start_mt) if (order >= pageblock_order) return true; - if (order >= pageblock_order / 2 || - start_mt == MIGRATE_RECLAIMABLE || - start_mt == MIGRATE_UNMOVABLE || - page_group_by_mobility_disabled) + /* don't let unmovable allocations cause migrations simply because of free pages */ + if ((start_mt != MIGRATE_UNMOVABLE && order >= pageblock_order / 2) || + /* only steal reclaimable page blocks for unmovable allocations */ + (start_mt == MIGRATE_UNMOVABLE && fallback_type != MIGRATE_MOVABLE && order >= pageblock_order / 2) || + /* reclaimable can steal aggressively */ + start_mt == MIGRATE_RECLAIMABLE || + /* allow unmovable allocs up to 64K without migrating blocks */ + (start_mt == MIGRATE_UNMOVABLE && start_order >= 5) || + page_group_by_mobility_disabled) return true; return false; @@ -1205,7 +1212,7 @@ static void steal_suitable_fallback(struct zone *zone, struct page *page, /* Check whether there is a suitable fallback freepage with requested order. */ static int find_suitable_fallback(struct free_area *area, unsigned int order, - int migratetype, bool *can_steal) + int migratetype, bool *can_steal, unsigned int start_order) { int i; int fallback_mt; @@ -1222,7 +1229,7 @@ static int find_suitable_fallback(struct free_area *area, unsigned int order, if (list_empty(&area->free_list[fallback_mt])) continue; - if (can_steal_fallback(order, migratetype)) + if (can_steal_fallback(order, migratetype, fallback_mt, start_order)) *can_steal = true; return fallback_mt; @@ -1247,7 +1254,7 @@ __rmqueue_fallback(struct zone *zone, unsigned int order, int start_migratetype) --current_order) { area = &(zone->free_area[current_order]); fallback_mt = find_suitable_fallback(area, current_order, - start_migratetype, &can_steal); + start_migratetype, &can_steal, order); if (fallback_mt == -1) continue; @@ -3046,10 +3053,15 @@ __alloc_pages_nodemask(gfp_t gfp_mask, unsigned int order, * can deadlock because I/O on the device might not * complete. */ + u64 start_time, end_time; gfp_mask = memalloc_noio_flags(gfp_mask); + + start_time = ktime_get_ns(); page = __alloc_pages_slowpath(gfp_mask, order, zonelist, high_zoneidx, nodemask, preferred_zone, classzone_idx, migratetype); + end_time = ktime_get_ns(); + ktrace_add_mm_event(KTRACE_MM_TYPE_SLOW_PATH, end_time, end_time - start_time); } trace_mm_page_alloc(page, order, gfp_mask, migratetype); diff --git a/mm/vmscan.c b/mm/vmscan.c index 0e7f752f779ef..cccc61bc717df 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -2,6 +2,7 @@ * linux/mm/vmscan.c * * Copyright (C) 1991, 1992, 1993, 1994 Linus Torvalds + * Copyright (C) 2018 XiaoMi, Inc. * * Swap reorganised 29.12.95, Stephen Tweedie. * kswapd added: 7.1.96 sct @@ -52,6 +53,7 @@ #include #include +#include #include "internal.h" @@ -3350,6 +3352,10 @@ static void kswapd_try_to_sleep(pg_data_t *pgdat, int order, int classzone_idx) finish_wait(&pgdat->kswapd_wait, &wait); } +#if defined(CONFIG_ANDROID_WHETSTONE) +extern void wakeup_kmemsw_chkd(void); +#endif + /* * The background pageout daemon, started as a kernel thread * from the init process. @@ -3449,6 +3455,9 @@ static int kswapd(void *p) balanced_classzone_idx = classzone_idx; balanced_order = balance_pgdat(pgdat, order, &balanced_classzone_idx); +#if defined(CONFIG_ANDROID_WHETSTONE) + wakeup_kmemsw_chkd(); +#endif } } @@ -3525,6 +3534,43 @@ unsigned long shrink_all_memory(unsigned long nr_to_reclaim) } #endif /* CONFIG_HIBERNATION */ +#ifdef CONFIG_RTMM +/* + * reclaim anon/file pages from global lru + * + * TODO: merge with shrink_all_memory()?? + */ +unsigned long reclaim_global(unsigned long nr_to_reclaim) +{ + struct reclaim_state reclaim_state; + struct scan_control sc = { + .nr_to_reclaim = max(nr_to_reclaim, SWAP_CLUSTER_MAX), + .gfp_mask = GFP_HIGHUSER_MOVABLE, + .order = 0, + .priority = DEF_PRIORITY, + .may_writepage = 1, + .may_unmap = 1, + .may_swap = 1, + }; + struct zonelist *zonelist = node_zonelist(numa_node_id(), sc.gfp_mask); + struct task_struct *p = current; + unsigned long nr_reclaimed; + + p->flags |= PF_MEMALLOC; + lockdep_set_current_reclaim_state(sc.gfp_mask); + reclaim_state.reclaimed_slab = 0; + p->reclaim_state = &reclaim_state; + + nr_reclaimed = do_try_to_free_pages(zonelist, &sc); + + p->reclaim_state = NULL; + lockdep_clear_current_reclaim_state(); + p->flags &= ~PF_MEMALLOC; + + return nr_reclaimed; +} +#endif + /* It's optimal to keep kswapds on the same CPUs as their memory, but not required for correctness. So if the last cpu in a node goes away, we get changed to run anywhere: as the first one comes back, diff --git a/mm/zpool.c b/mm/zpool.c index bacdab6e47de3..fd3ff719c32cb 100644 --- a/mm/zpool.c +++ b/mm/zpool.c @@ -18,11 +18,9 @@ #include struct zpool { - char *type; - struct zpool_driver *driver; void *pool; - struct zpool_ops *ops; + const struct zpool_ops *ops; struct list_head list; }; @@ -73,34 +71,8 @@ int zpool_unregister_driver(struct zpool_driver *driver) } EXPORT_SYMBOL(zpool_unregister_driver); -/** - * zpool_evict() - evict callback from a zpool implementation. - * @pool: pool to evict from. - * @handle: handle to evict. - * - * This can be used by zpool implementations to call the - * user's evict zpool_ops struct evict callback. - */ -int zpool_evict(void *pool, unsigned long handle) -{ - struct zpool *zpool; - - spin_lock(&pools_lock); - list_for_each_entry(zpool, &pools_head, list) { - if (zpool->pool == pool) { - spin_unlock(&pools_lock); - if (!zpool->ops || !zpool->ops->evict) - return -EINVAL; - return zpool->ops->evict(zpool, handle); - } - } - spin_unlock(&pools_lock); - - return -ENOENT; -} -EXPORT_SYMBOL(zpool_evict); - -static struct zpool_driver *zpool_get_driver(char *type) +/* this assumes @type is null-terminated. */ +static struct zpool_driver *zpool_get_driver(const char *type) { struct zpool_driver *driver; @@ -126,6 +98,41 @@ static void zpool_put_driver(struct zpool_driver *driver) module_put(driver->owner); } +/** + * zpool_has_pool() - Check if the pool driver is available + * @type The type of the zpool to check (e.g. zbud, zsmalloc) + * + * This checks if the @type pool driver is available. This will try to load + * the requested module, if needed, but there is no guarantee the module will + * still be loaded and available immediately after calling. If this returns + * true, the caller should assume the pool is available, but must be prepared + * to handle the @zpool_create_pool() returning failure. However if this + * returns false, the caller should assume the requested pool type is not + * available; either the requested pool type module does not exist, or could + * not be loaded, and calling @zpool_create_pool() with the pool type will + * fail. + * + * The @type string must be null-terminated. + * + * Returns: true if @type pool is available, false if not + */ +bool zpool_has_pool(char *type) +{ + struct zpool_driver *driver = zpool_get_driver(type); + + if (!driver) { + request_module("zpool-%s", type); + driver = zpool_get_driver(type); + } + + if (!driver) + return false; + + zpool_put_driver(driver); + return true; +} +EXPORT_SYMBOL(zpool_has_pool); + /** * zpool_create_pool() - Create a new zpool * @type The type of the zpool to create (e.g. zbud, zsmalloc) @@ -139,15 +146,17 @@ static void zpool_put_driver(struct zpool_driver *driver) * * Implementations must guarantee this to be thread-safe. * + * The @type and @name strings must be null-terminated. + * * Returns: New zpool on success, NULL on failure. */ -struct zpool *zpool_create_pool(char *type, char *name, gfp_t gfp, - struct zpool_ops *ops) +struct zpool *zpool_create_pool(const char *type, const char *name, gfp_t gfp, + const struct zpool_ops *ops) { struct zpool_driver *driver; struct zpool *zpool; - pr_info("creating pool type %s\n", type); + pr_debug("creating pool type %s\n", type); driver = zpool_get_driver(type); @@ -168,9 +177,8 @@ struct zpool *zpool_create_pool(char *type, char *name, gfp_t gfp, return NULL; } - zpool->type = driver->type; zpool->driver = driver; - zpool->pool = driver->create(name, gfp, ops); + zpool->pool = driver->create(name, gfp, ops, zpool); zpool->ops = ops; if (!zpool->pool) { @@ -180,7 +188,7 @@ struct zpool *zpool_create_pool(char *type, char *name, gfp_t gfp, return NULL; } - pr_info("created %s pool\n", type); + pr_debug("created pool type %s\n", type); spin_lock(&pools_lock); list_add(&zpool->list, &pools_head); @@ -202,7 +210,7 @@ struct zpool *zpool_create_pool(char *type, char *name, gfp_t gfp, */ void zpool_destroy_pool(struct zpool *zpool) { - pr_info("destroying pool type %s\n", zpool->type); + pr_debug("destroying pool type %s\n", zpool->driver->type); spin_lock(&pools_lock); list_del(&zpool->list); @@ -222,9 +230,9 @@ void zpool_destroy_pool(struct zpool *zpool) * * Returns: The type of zpool. */ -char *zpool_get_type(struct zpool *zpool) +const char *zpool_get_type(struct zpool *zpool) { - return zpool->type; + return zpool->driver->type; } /** @@ -347,20 +355,6 @@ u64 zpool_get_total_size(struct zpool *zpool) return zpool->driver->total_size(zpool->pool); } -static int __init init_zpool(void) -{ - pr_info("loaded\n"); - return 0; -} - -static void __exit exit_zpool(void) -{ - pr_info("unloaded\n"); -} - -module_init(init_zpool); -module_exit(exit_zpool); - MODULE_LICENSE("GPL"); MODULE_AUTHOR("Dan Streetman "); MODULE_DESCRIPTION("Common API for compressed memory storage"); diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c index a8b5e749e84e7..b6d4f258cb53c 100644 --- a/mm/zsmalloc.c +++ b/mm/zsmalloc.c @@ -16,7 +16,7 @@ * struct page(s) to form a zspage. * * Usage of struct page fields: - * page->first_page: points to the first component (0-order) page + * page->private: points to the first component (0-order) page * page->index (union with page->freelist): offset of the first object * starting in this page. For the first page, this is * always 0, so we use this field (aka freelist) to point @@ -26,8 +26,7 @@ * * For _first_ page only: * - * page->private (union with page->first_page): refers to the - * component page after the first page + * page->private: refers to the component page after the first page * If the page is first_page for huge object, it stores handle. * Look at size_class->huge. * page->freelist: points to the first free object in zspage. @@ -38,6 +37,7 @@ * page->lru: links together first pages of various zspages. * Basically forming list of zspages in a fullness group. * page->mapping: class index and fullness group of the zspage + * page->inuse: the number of objects that are used in this zspage * * Usage of struct page flags: * PG_private: identifies the first component page @@ -45,9 +45,7 @@ * */ -#ifdef CONFIG_ZSMALLOC_DEBUG -#define DEBUG -#endif +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt #include #include @@ -62,7 +60,7 @@ #include #include #include -#include +#include #include #include #include @@ -170,17 +168,20 @@ enum zs_stat_type { OBJ_USED, CLASS_ALMOST_FULL, CLASS_ALMOST_EMPTY, - NR_ZS_STAT_TYPE, }; #ifdef CONFIG_ZSMALLOC_STAT - -static struct dentry *zs_stat_root; +#define NR_ZS_STAT_TYPE (CLASS_ALMOST_EMPTY + 1) +#else +#define NR_ZS_STAT_TYPE (OBJ_USED + 1) +#endif struct zs_size_stat { unsigned long objs[NR_ZS_STAT_TYPE]; }; +#ifdef CONFIG_ZSMALLOC_STAT +static struct dentry *zs_stat_root; #endif /* @@ -205,6 +206,8 @@ static int zs_size_classes; static const int fullness_threshold_frac = 4; struct size_class { + spinlock_t lock; + struct page *fullness_list[_ZS_NR_FULLNESS_GROUPS]; /* * Size of objects stored in this class. Must be multiple * of ZS_ALIGN. @@ -212,18 +215,12 @@ struct size_class { int size; unsigned int index; + struct zs_size_stat stats; + /* Number of PAGE_SIZE sized pages to combine to form a 'zspage' */ int pages_per_zspage; /* huge object: pages_per_zspage == 1 && maxobj_per_zspage == 1 */ bool huge; - -#ifdef CONFIG_ZSMALLOC_STAT - struct zs_size_stat stats; -#endif - - spinlock_t lock; - - struct page *fullness_list[_ZS_NR_FULLNESS_GROUPS]; }; /* @@ -247,14 +244,22 @@ struct link_free { }; struct zs_pool { - char *name; + const char *name; struct size_class **size_class; struct kmem_cache *handle_cachep; - gfp_t flags; /* allocation flags used when growing pool */ atomic_long_t pages_allocated; + struct zs_pool_stats stats; + + /* Compact classes */ + struct shrinker shrinker; + /* + * To signify that register_shrinker() was successful + * and unregister_shrinker() will not Oops. + */ + bool shrinker_enabled; #ifdef CONFIG_ZSMALLOC_STAT struct dentry *stat_dentry; #endif @@ -277,7 +282,6 @@ struct mapping_area { #endif char *vm_addr; /* address of kmap_atomic()'ed pages */ enum zs_mapmode vm_mm; /* mapping mode */ - bool huge; }; static int create_handle_cache(struct zs_pool *pool) @@ -289,14 +293,13 @@ static int create_handle_cache(struct zs_pool *pool) static void destroy_handle_cache(struct zs_pool *pool) { - if (pool->handle_cachep) - kmem_cache_destroy(pool->handle_cachep); + kmem_cache_destroy(pool->handle_cachep); } -static unsigned long alloc_handle(struct zs_pool *pool) +static unsigned long alloc_handle(struct zs_pool *pool, gfp_t gfp) { return (unsigned long)kmem_cache_alloc(pool->handle_cachep, - pool->flags & ~__GFP_HIGHMEM); + gfp & ~__GFP_HIGHMEM); } static void free_handle(struct zs_pool *pool, unsigned long handle) @@ -306,16 +309,28 @@ static void free_handle(struct zs_pool *pool, unsigned long handle) static void record_obj(unsigned long handle, unsigned long obj) { - *(unsigned long *)handle = obj; + /* + * lsb of @obj represents handle lock while other bits + * represent object value the handle is pointing so + * updating shouldn't do store tearing. + */ + WRITE_ONCE(*(unsigned long *)handle, obj); } /* zpool driver */ #ifdef CONFIG_ZPOOL -static void *zs_zpool_create(char *name, gfp_t gfp, struct zpool_ops *zpool_ops) +static void *zs_zpool_create(const char *name, gfp_t gfp, + const struct zpool_ops *zpool_ops, + struct zpool *zpool) { - return zs_create_pool(name, gfp); + /* + * Ignore global gfp flags: zs_malloc() may be invoked from + * different contexts and its caller must provide a valid + * gfp mask. + */ + return zs_create_pool(name); } static void zs_zpool_destroy(void *pool) @@ -326,7 +341,7 @@ static void zs_zpool_destroy(void *pool) static int zs_zpool_malloc(void *pool, size_t size, gfp_t gfp, unsigned long *handle) { - *handle = zs_malloc(pool, size); + *handle = zs_malloc(pool, size, gfp); return *handle ? 0 : -1; } static void zs_zpool_free(void *pool, unsigned long handle) @@ -404,26 +419,28 @@ static int is_last_page(struct page *page) return PagePrivate2(page); } -static void get_zspage_mapping(struct page *page, unsigned int *class_idx, +static void get_zspage_mapping(struct page *first_page, + unsigned int *class_idx, enum fullness_group *fullness) { unsigned long m; - BUG_ON(!is_first_page(page)); + VM_BUG_ON_PAGE(!is_first_page(first_page), first_page); - m = (unsigned long)page->mapping; + m = (unsigned long)first_page->mapping; *fullness = m & FULLNESS_MASK; *class_idx = (m >> FULLNESS_BITS) & CLASS_IDX_MASK; } -static void set_zspage_mapping(struct page *page, unsigned int class_idx, +static void set_zspage_mapping(struct page *first_page, + unsigned int class_idx, enum fullness_group fullness) { unsigned long m; - BUG_ON(!is_first_page(page)); + VM_BUG_ON_PAGE(!is_first_page(first_page), first_page); m = ((class_idx & CLASS_IDX_MASK) << FULLNESS_BITS) | (fullness & FULLNESS_MASK); - page->mapping = (struct address_space *)m; + first_page->mapping = (struct address_space *)m; } /* @@ -444,36 +461,40 @@ static int get_size_class_index(int size) return min(zs_size_classes - 1, idx); } -#ifdef CONFIG_ZSMALLOC_STAT - static inline void zs_stat_inc(struct size_class *class, enum zs_stat_type type, unsigned long cnt) { - class->stats.objs[type] += cnt; + if (type < NR_ZS_STAT_TYPE) + class->stats.objs[type] += cnt; } static inline void zs_stat_dec(struct size_class *class, enum zs_stat_type type, unsigned long cnt) { - class->stats.objs[type] -= cnt; + if (type < NR_ZS_STAT_TYPE) + class->stats.objs[type] -= cnt; } static inline unsigned long zs_stat_get(struct size_class *class, enum zs_stat_type type) { - return class->stats.objs[type]; + if (type < NR_ZS_STAT_TYPE) + return class->stats.objs[type]; + return 0; } -static int __init zs_stat_init(void) +#ifdef CONFIG_ZSMALLOC_STAT + +static void __init zs_stat_init(void) { - if (!debugfs_initialized()) - return -ENODEV; + if (!debugfs_initialized()) { + pr_warn("debugfs not available, stat dir not created\n"); + return; + } zs_stat_root = debugfs_create_dir("zsmalloc", NULL); if (!zs_stat_root) - return -ENOMEM; - - return 0; + pr_warn("debugfs 'zsmalloc' stat dir creation failed\n"); } static void __exit zs_stat_exit(void) @@ -481,6 +502,8 @@ static void __exit zs_stat_exit(void) debugfs_remove_recursive(zs_stat_root); } +static unsigned long zs_can_compact(struct size_class *class); + static int zs_stats_size_show(struct seq_file *s, void *v) { int i; @@ -488,14 +511,15 @@ static int zs_stats_size_show(struct seq_file *s, void *v) struct size_class *class; int objs_per_zspage; unsigned long class_almost_full, class_almost_empty; - unsigned long obj_allocated, obj_used, pages_used; + unsigned long obj_allocated, obj_used, pages_used, freeable; unsigned long total_class_almost_full = 0, total_class_almost_empty = 0; unsigned long total_objs = 0, total_used_objs = 0, total_pages = 0; + unsigned long total_freeable = 0; - seq_printf(s, " %5s %5s %11s %12s %13s %10s %10s %16s\n", + seq_printf(s, " %5s %5s %11s %12s %13s %10s %10s %16s %8s\n", "class", "size", "almost_full", "almost_empty", "obj_allocated", "obj_used", "pages_used", - "pages_per_zspage"); + "pages_per_zspage", "freeable"); for (i = 0; i < zs_size_classes; i++) { class = pool->size_class[i]; @@ -508,6 +532,7 @@ static int zs_stats_size_show(struct seq_file *s, void *v) class_almost_empty = zs_stat_get(class, CLASS_ALMOST_EMPTY); obj_allocated = zs_stat_get(class, OBJ_ALLOCATED); obj_used = zs_stat_get(class, OBJ_USED); + freeable = zs_can_compact(class); spin_unlock(&class->lock); objs_per_zspage = get_maxobj_per_zspage(class->size, @@ -515,23 +540,25 @@ static int zs_stats_size_show(struct seq_file *s, void *v) pages_used = obj_allocated / objs_per_zspage * class->pages_per_zspage; - seq_printf(s, " %5u %5u %11lu %12lu %13lu %10lu %10lu %16d\n", + seq_printf(s, " %5u %5u %11lu %12lu %13lu" + " %10lu %10lu %16d %8lu\n", i, class->size, class_almost_full, class_almost_empty, obj_allocated, obj_used, pages_used, - class->pages_per_zspage); + class->pages_per_zspage, freeable); total_class_almost_full += class_almost_full; total_class_almost_empty += class_almost_empty; total_objs += obj_allocated; total_used_objs += obj_used; total_pages += pages_used; + total_freeable += freeable; } seq_puts(s, "\n"); - seq_printf(s, " %5s %5s %11lu %12lu %13lu %10lu %10lu\n", + seq_printf(s, " %5s %5s %11lu %12lu %13lu %10lu %10lu %16s %8lu\n", "Total", "", total_class_almost_full, total_class_almost_empty, total_objs, - total_used_objs, total_pages); + total_used_objs, total_pages, "", total_freeable); return 0; } @@ -548,17 +575,19 @@ static const struct file_operations zs_stat_size_ops = { .release = single_release, }; -static int zs_pool_stat_create(char *name, struct zs_pool *pool) +static void zs_pool_stat_create(struct zs_pool *pool, const char *name) { struct dentry *entry; - if (!zs_stat_root) - return -ENODEV; + if (!zs_stat_root) { + pr_warn("no root stat dir, not creating <%s> stat dir\n", name); + return; + } entry = debugfs_create_dir(name, zs_stat_root); if (!entry) { pr_warn("debugfs dir <%s> creation failed\n", name); - return -ENOMEM; + return; } pool->stat_dentry = entry; @@ -567,10 +596,9 @@ static int zs_pool_stat_create(char *name, struct zs_pool *pool) if (!entry) { pr_warn("%s: debugfs file entry <%s> creation failed\n", name, "classes"); - return -ENOMEM; + debugfs_remove_recursive(pool->stat_dentry); + pool->stat_dentry = NULL; } - - return 0; } static void zs_pool_stat_destroy(struct zs_pool *pool) @@ -579,44 +607,23 @@ static void zs_pool_stat_destroy(struct zs_pool *pool) } #else /* CONFIG_ZSMALLOC_STAT */ - -static inline void zs_stat_inc(struct size_class *class, - enum zs_stat_type type, unsigned long cnt) +static void __init zs_stat_init(void) { } -static inline void zs_stat_dec(struct size_class *class, - enum zs_stat_type type, unsigned long cnt) -{ -} - -static inline unsigned long zs_stat_get(struct size_class *class, - enum zs_stat_type type) -{ - return 0; -} - -static int __init zs_stat_init(void) -{ - return 0; -} - static void __exit zs_stat_exit(void) { } -static inline int zs_pool_stat_create(char *name, struct zs_pool *pool) +static inline void zs_pool_stat_create(struct zs_pool *pool, const char *name) { - return 0; } static inline void zs_pool_stat_destroy(struct zs_pool *pool) { } - #endif - /* * For each size class, zspages are divided into different groups * depending on how "full" they are. This was done so that we could @@ -624,14 +631,15 @@ static inline void zs_pool_stat_destroy(struct zs_pool *pool) * the pool (not yet implemented). This function returns fullness * status of the given page. */ -static enum fullness_group get_fullness_group(struct page *page) +static enum fullness_group get_fullness_group(struct page *first_page) { int inuse, max_objects; enum fullness_group fg; - BUG_ON(!is_first_page(page)); - inuse = page->inuse; - max_objects = page->objects; + VM_BUG_ON_PAGE(!is_first_page(first_page), first_page); + + inuse = first_page->inuse; + max_objects = first_page->objects; if (inuse == 0) fg = ZS_EMPTY; @@ -651,48 +659,59 @@ static enum fullness_group get_fullness_group(struct page *page) * have. This functions inserts the given zspage into the freelist * identified by . */ -static void insert_zspage(struct page *page, struct size_class *class, - enum fullness_group fullness) +static void insert_zspage(struct size_class *class, + enum fullness_group fullness, + struct page *first_page) { struct page **head; - BUG_ON(!is_first_page(page)); + VM_BUG_ON_PAGE(!is_first_page(first_page), first_page); if (fullness >= _ZS_NR_FULLNESS_GROUPS) return; - head = &class->fullness_list[fullness]; - if (*head) - list_add_tail(&page->lru, &(*head)->lru); - - *head = page; zs_stat_inc(class, fullness == ZS_ALMOST_EMPTY ? CLASS_ALMOST_EMPTY : CLASS_ALMOST_FULL, 1); + + head = &class->fullness_list[fullness]; + if (!*head) { + *head = first_page; + return; + } + + /* + * We want to see more ZS_FULL pages and less almost + * empty/full. Put pages with higher ->inuse first. + */ + list_add_tail(&first_page->lru, &(*head)->lru); + if (first_page->inuse >= (*head)->inuse) + *head = first_page; } /* * This function removes the given zspage from the freelist identified * by . */ -static void remove_zspage(struct page *page, struct size_class *class, - enum fullness_group fullness) +static void remove_zspage(struct size_class *class, + enum fullness_group fullness, + struct page *first_page) { struct page **head; - BUG_ON(!is_first_page(page)); + VM_BUG_ON_PAGE(!is_first_page(first_page), first_page); if (fullness >= _ZS_NR_FULLNESS_GROUPS) return; head = &class->fullness_list[fullness]; - BUG_ON(!*head); + VM_BUG_ON_PAGE(!*head, first_page); if (list_empty(&(*head)->lru)) *head = NULL; - else if (*head == page) + else if (*head == first_page) *head = (struct page *)list_entry((*head)->lru.next, struct page, lru); - list_del_init(&page->lru); + list_del_init(&first_page->lru); zs_stat_dec(class, fullness == ZS_ALMOST_EMPTY ? CLASS_ALMOST_EMPTY : CLASS_ALMOST_FULL, 1); } @@ -707,21 +726,19 @@ static void remove_zspage(struct page *page, struct size_class *class, * fullness group. */ static enum fullness_group fix_fullness_group(struct size_class *class, - struct page *page) + struct page *first_page) { int class_idx; enum fullness_group currfg, newfg; - BUG_ON(!is_first_page(page)); - - get_zspage_mapping(page, &class_idx, &currfg); - newfg = get_fullness_group(page); + get_zspage_mapping(first_page, &class_idx, &currfg); + newfg = get_fullness_group(first_page); if (newfg == currfg) goto out; - remove_zspage(page, class, currfg); - insert_zspage(page, class, newfg); - set_zspage_mapping(page, class_idx, newfg); + remove_zspage(class, currfg, first_page); + insert_zspage(class, newfg, first_page); + set_zspage_mapping(first_page, class_idx, newfg); out: return newfg; @@ -773,7 +790,7 @@ static struct page *get_first_page(struct page *page) if (is_first_page(page)) return page; else - return page->first_page; + return (struct page *)page_private(page); } static struct page *get_next_page(struct page *page) @@ -799,7 +816,7 @@ static void *location_to_obj(struct page *page, unsigned long obj_idx) unsigned long obj; if (!page) { - BUG_ON(obj_idx); + VM_BUG_ON(obj_idx); return NULL; } @@ -832,8 +849,8 @@ static unsigned long obj_to_head(struct size_class *class, struct page *page, void *obj) { if (class->huge) { - VM_BUG_ON(!is_first_page(page)); - return *(unsigned long *)page_private(page); + VM_BUG_ON_PAGE(!is_first_page(page), page); + return page_private(page); } else return *(unsigned long *)obj; } @@ -882,8 +899,8 @@ static void free_zspage(struct page *first_page) { struct page *nextp, *tmp, *head_extra; - BUG_ON(!is_first_page(first_page)); - BUG_ON(first_page->inuse); + VM_BUG_ON_PAGE(!is_first_page(first_page), first_page); + VM_BUG_ON_PAGE(first_page->inuse, first_page); head_extra = (struct page *)page_private(first_page); @@ -904,12 +921,13 @@ static void free_zspage(struct page *first_page) } /* Initialize a newly allocated zspage */ -static void init_zspage(struct page *first_page, struct size_class *class) +static void init_zspage(struct size_class *class, struct page *first_page) { unsigned long off = 0; struct page *page = first_page; - BUG_ON(!is_first_page(first_page)); + VM_BUG_ON_PAGE(!is_first_page(first_page), first_page); + while (page) { struct page *next_page; struct link_free *link; @@ -958,7 +976,7 @@ static struct page *alloc_zspage(struct size_class *class, gfp_t flags) * Allocate individual pages and link them together as: * 1. first page->private = first sub-page * 2. all sub-pages are linked together using page->lru - * 3. each sub-page is linked to the first page using page->first_page + * 3. each sub-page is linked to the first page using page->private * * For each size class, First/Head pages are linked together using * page->lru. Also, we set PG_private to identify the first page @@ -983,7 +1001,7 @@ static struct page *alloc_zspage(struct size_class *class, gfp_t flags) if (i == 1) set_page_private(first_page, (unsigned long)page); if (i >= 1) - page->first_page = first_page; + set_page_private(page, (unsigned long)first_page); if (i >= 2) list_add(&page->lru, &prev_page->lru); if (i == class->pages_per_zspage - 1) /* last page */ @@ -991,7 +1009,7 @@ static struct page *alloc_zspage(struct size_class *class, gfp_t flags) prev_page = page; } - init_zspage(first_page, class); + init_zspage(class, first_page); first_page->freelist = location_to_obj(first_page, 0); /* Maximum number of objects we can store in this zspage */ @@ -1122,11 +1140,9 @@ static void __zs_unmap_object(struct mapping_area *area, goto out; buf = area->vm_buf; - if (!area->huge) { - buf = buf + ZS_HANDLE_SIZE; - size -= ZS_HANDLE_SIZE; - off += ZS_HANDLE_SIZE; - } + buf = buf + ZS_HANDLE_SIZE; + size -= ZS_HANDLE_SIZE; + off += ZS_HANDLE_SIZE; sizes[0] = PAGE_SIZE - off; sizes[1] = size - sizes[0]; @@ -1226,11 +1242,11 @@ static bool can_merge(struct size_class *prev, int size, int pages_per_zspage) return true; } -static bool zspage_full(struct page *page) +static bool zspage_full(struct page *first_page) { - BUG_ON(!is_first_page(page)); + VM_BUG_ON_PAGE(!is_first_page(first_page), first_page); - return page->inuse == page->objects; + return first_page->inuse == first_page->objects; } unsigned long zs_get_total_pages(struct zs_pool *pool) @@ -1266,14 +1282,12 @@ void *zs_map_object(struct zs_pool *pool, unsigned long handle, struct page *pages[2]; void *ret; - BUG_ON(!handle); - /* * Because we use per-cpu mapping areas shared among the * pools/users, we can't allow mapping in interrupt context * because it can corrupt another users mappings. */ - BUG_ON(in_interrupt()); + WARN_ON_ONCE(in_interrupt()); /* From now on, migration cannot move the object */ pin_tag(handle); @@ -1317,8 +1331,6 @@ void zs_unmap_object(struct zs_pool *pool, unsigned long handle) struct size_class *class; struct mapping_area *area; - BUG_ON(!handle); - obj = handle_to_obj(handle); obj_to_location(obj, &page, &obj_idx); get_zspage_mapping(get_first_page(page), &class_idx, &fg); @@ -1342,8 +1354,8 @@ void zs_unmap_object(struct zs_pool *pool, unsigned long handle) } EXPORT_SYMBOL_GPL(zs_unmap_object); -static unsigned long obj_malloc(struct page *first_page, - struct size_class *class, unsigned long handle) +static unsigned long obj_malloc(struct size_class *class, + struct page *first_page, unsigned long handle) { unsigned long obj; struct link_free *link; @@ -1383,7 +1395,7 @@ static unsigned long obj_malloc(struct page *first_page, * otherwise 0. * Allocation requests with size > ZS_MAX_ALLOC_SIZE will fail. */ -unsigned long zs_malloc(struct zs_pool *pool, size_t size) +unsigned long zs_malloc(struct zs_pool *pool, size_t size, gfp_t gfp) { unsigned long handle, obj; struct size_class *class; @@ -1392,7 +1404,7 @@ unsigned long zs_malloc(struct zs_pool *pool, size_t size) if (unlikely(!size || size > ZS_MAX_ALLOC_SIZE)) return 0; - handle = alloc_handle(pool); + handle = alloc_handle(pool, gfp); if (!handle) return 0; @@ -1405,7 +1417,7 @@ unsigned long zs_malloc(struct zs_pool *pool, size_t size) if (!first_page) { spin_unlock(&class->lock); - first_page = alloc_zspage(class, pool->flags); + first_page = alloc_zspage(class, gfp); if (unlikely(!first_page)) { free_handle(pool, handle); return 0; @@ -1420,7 +1432,7 @@ unsigned long zs_malloc(struct zs_pool *pool, size_t size) class->size, class->pages_per_zspage)); } - obj = obj_malloc(first_page, class, handle); + obj = obj_malloc(class, first_page, handle); /* Now move the zspage to another fullness group, if required */ fix_fullness_group(class, first_page); record_obj(handle, obj); @@ -1430,23 +1442,17 @@ unsigned long zs_malloc(struct zs_pool *pool, size_t size) } EXPORT_SYMBOL_GPL(zs_malloc); -static void obj_free(struct zs_pool *pool, struct size_class *class, - unsigned long obj) +static void obj_free(struct size_class *class, unsigned long obj) { struct link_free *link; struct page *first_page, *f_page; unsigned long f_objidx, f_offset; void *vaddr; - int class_idx; - enum fullness_group fullness; - - BUG_ON(!obj); obj &= ~OBJ_ALLOCATED_TAG; obj_to_location(obj, &f_page, &f_objidx); first_page = get_first_page(f_page); - get_zspage_mapping(first_page, &class_idx, &fullness); f_offset = obj_idx_to_offset(f_page, f_objidx, class->size); vaddr = kmap_atomic(f_page); @@ -1482,7 +1488,7 @@ void zs_free(struct zs_pool *pool, unsigned long handle) class = pool->size_class[class_idx]; spin_lock(&class->lock); - obj_free(pool, class, obj); + obj_free(class, obj); fullness = fix_fullness_group(class, first_page); if (fullness == ZS_EMPTY) { zs_stat_dec(class, OBJ_ALLOCATED, get_maxobj_per_zspage( @@ -1498,8 +1504,8 @@ void zs_free(struct zs_pool *pool, unsigned long handle) } EXPORT_SYMBOL_GPL(zs_free); -static void zs_object_copy(unsigned long src, unsigned long dst, - struct size_class *class) +static void zs_object_copy(struct size_class *class, unsigned long dst, + unsigned long src) { struct page *s_page, *d_page; unsigned long s_objidx, d_objidx; @@ -1542,7 +1548,6 @@ static void zs_object_copy(unsigned long src, unsigned long dst, kunmap_atomic(d_addr); kunmap_atomic(s_addr); s_page = get_next_page(s_page); - BUG_ON(!s_page); s_addr = kmap_atomic(s_page); d_addr = kmap_atomic(d_page); s_size = class->size - written; @@ -1552,7 +1557,6 @@ static void zs_object_copy(unsigned long src, unsigned long dst, if (d_off >= PAGE_SIZE) { kunmap_atomic(d_addr); d_page = get_next_page(d_page); - BUG_ON(!d_page); d_addr = kmap_atomic(d_page); d_size = class->size - written; d_off = 0; @@ -1567,8 +1571,8 @@ static void zs_object_copy(unsigned long src, unsigned long dst, * Find alloced object in zspage from index object and * return handle. */ -static unsigned long find_alloced_obj(struct page *page, int index, - struct size_class *class) +static unsigned long find_alloced_obj(struct size_class *class, + struct page *page, int index) { unsigned long head; int offset = 0; @@ -1605,8 +1609,6 @@ struct zs_compact_control { /* Starting object index within @s_page which used for live object * in the subpage. */ int index; - /* how many of objects are migrated */ - int nr_migrated; }; static int migrate_zspage(struct zs_pool *pool, struct size_class *class, @@ -1617,11 +1619,10 @@ static int migrate_zspage(struct zs_pool *pool, struct size_class *class, struct page *s_page = cc->s_page; struct page *d_page = cc->d_page; unsigned long index = cc->index; - int nr_migrated = 0; int ret = 0; while (1) { - handle = find_alloced_obj(s_page, index, class); + handle = find_alloced_obj(class, s_page, index); if (!handle) { s_page = get_next_page(s_page); if (!s_page) @@ -1638,24 +1639,29 @@ static int migrate_zspage(struct zs_pool *pool, struct size_class *class, } used_obj = handle_to_obj(handle); - free_obj = obj_malloc(d_page, class, handle); - zs_object_copy(used_obj, free_obj, class); + free_obj = obj_malloc(class, d_page, handle); + zs_object_copy(class, free_obj, used_obj); index++; + /* + * record_obj updates handle's value to free_obj and it will + * invalidate lock bit(ie, HANDLE_PIN_BIT) of handle, which + * breaks synchronization using pin_tag(e,g, zs_free) so + * let's keep the lock bit. + */ + free_obj |= BIT(HANDLE_PIN_BIT); record_obj(handle, free_obj); unpin_tag(handle); - obj_free(pool, class, used_obj); - nr_migrated++; + obj_free(class, used_obj); } /* Remember last position in this iteration */ cc->s_page = s_page; cc->index = index; - cc->nr_migrated = nr_migrated; return ret; } -static struct page *alloc_target_page(struct size_class *class) +static struct page *isolate_target_page(struct size_class *class) { int i; struct page *page; @@ -1663,7 +1669,7 @@ static struct page *alloc_target_page(struct size_class *class) for (i = 0; i < _ZS_NR_FULLNESS_GROUPS; i++) { page = class->fullness_list[i]; if (page) { - remove_zspage(page, class, i); + remove_zspage(class, i, page); break; } } @@ -1671,15 +1677,22 @@ static struct page *alloc_target_page(struct size_class *class) return page; } -static void putback_zspage(struct zs_pool *pool, struct size_class *class, - struct page *first_page) +/* + * putback_zspage - add @first_page into right class's fullness list + * @pool: target pool + * @class: destination class + * @first_page: target page + * + * Return @fist_page's fullness_group + */ +static enum fullness_group putback_zspage(struct zs_pool *pool, + struct size_class *class, + struct page *first_page) { enum fullness_group fullness; - BUG_ON(!is_first_page(first_page)); - fullness = get_fullness_group(first_page); - insert_zspage(first_page, class, fullness); + insert_zspage(class, fullness, first_page); set_zspage_mapping(first_page, class->index, fullness); if (fullness == ZS_EMPTY) { @@ -1690,50 +1703,73 @@ static void putback_zspage(struct zs_pool *pool, struct size_class *class, free_zspage(first_page); } + + return fullness; } static struct page *isolate_source_page(struct size_class *class) { - struct page *page; + int i; + struct page *page = NULL; - page = class->fullness_list[ZS_ALMOST_EMPTY]; - if (page) - remove_zspage(page, class, ZS_ALMOST_EMPTY); + for (i = ZS_ALMOST_EMPTY; i >= ZS_ALMOST_FULL; i--) { + page = class->fullness_list[i]; + if (!page) + continue; + + remove_zspage(class, i, page); + break; + } return page; } -static unsigned long __zs_compact(struct zs_pool *pool, - struct size_class *class) +/* + * + * Based on the number of unused allocated objects calculate + * and return the number of pages that we can free. + */ +static unsigned long zs_can_compact(struct size_class *class) +{ + unsigned long obj_wasted; + unsigned long obj_allocated = zs_stat_get(class, OBJ_ALLOCATED); + unsigned long obj_used = zs_stat_get(class, OBJ_USED); + + if (obj_allocated <= obj_used) + return 0; + + obj_wasted = obj_allocated - obj_used; + obj_wasted /= get_maxobj_per_zspage(class->size, + class->pages_per_zspage); + + return obj_wasted * class->pages_per_zspage; +} + +static void __zs_compact(struct zs_pool *pool, struct size_class *class) { - int nr_to_migrate; struct zs_compact_control cc; struct page *src_page; struct page *dst_page = NULL; - unsigned long nr_total_migrated = 0; spin_lock(&class->lock); while ((src_page = isolate_source_page(class))) { - BUG_ON(!is_first_page(src_page)); + if (!zs_can_compact(class)) + break; - /* The goal is to migrate all live objects in source page */ - nr_to_migrate = src_page->inuse; cc.index = 0; cc.s_page = src_page; - while ((dst_page = alloc_target_page(class))) { + while ((dst_page = isolate_target_page(class))) { cc.d_page = dst_page; /* - * If there is no more space in dst_page, try to - * allocate another zspage. + * If there is no more space in dst_page, resched + * and see if anyone had allocated another zspage. */ if (!migrate_zspage(pool, class, &cc)) break; putback_zspage(pool, class, dst_page); - nr_total_migrated += cc.nr_migrated; - nr_to_migrate -= cc.nr_migrated; } /* Stop if we couldn't find slot */ @@ -1741,9 +1777,9 @@ static unsigned long __zs_compact(struct zs_pool *pool, break; putback_zspage(pool, class, dst_page); - putback_zspage(pool, class, src_page); + if (putback_zspage(pool, class, src_page) == ZS_EMPTY) + pool->stats.pages_compacted += class->pages_per_zspage; spin_unlock(&class->lock); - nr_total_migrated += cc.nr_migrated; cond_resched(); spin_lock(&class->lock); } @@ -1752,14 +1788,11 @@ static unsigned long __zs_compact(struct zs_pool *pool, putback_zspage(pool, class, src_page); spin_unlock(&class->lock); - - return nr_total_migrated; } unsigned long zs_compact(struct zs_pool *pool) { int i; - unsigned long nr_migrated = 0; struct size_class *class; for (i = zs_size_classes - 1; i >= 0; i--) { @@ -1768,13 +1801,77 @@ unsigned long zs_compact(struct zs_pool *pool) continue; if (class->index != i) continue; - nr_migrated += __zs_compact(pool, class); + __zs_compact(pool, class); } - return nr_migrated; + return pool->stats.pages_compacted; } EXPORT_SYMBOL_GPL(zs_compact); +void zs_pool_stats(struct zs_pool *pool, struct zs_pool_stats *stats) +{ + memcpy(stats, &pool->stats, sizeof(struct zs_pool_stats)); +} +EXPORT_SYMBOL_GPL(zs_pool_stats); + +static unsigned long zs_shrinker_scan(struct shrinker *shrinker, + struct shrink_control *sc) +{ + unsigned long pages_freed; + struct zs_pool *pool = container_of(shrinker, struct zs_pool, + shrinker); + + pages_freed = pool->stats.pages_compacted; + /* + * Compact classes and calculate compaction delta. + * Can run concurrently with a manually triggered + * (by user) compaction. + */ + pages_freed = zs_compact(pool) - pages_freed; + + return pages_freed ? pages_freed : SHRINK_STOP; +} + +static unsigned long zs_shrinker_count(struct shrinker *shrinker, + struct shrink_control *sc) +{ + int i; + struct size_class *class; + unsigned long pages_to_free = 0; + struct zs_pool *pool = container_of(shrinker, struct zs_pool, + shrinker); + + for (i = zs_size_classes - 1; i >= 0; i--) { + class = pool->size_class[i]; + if (!class) + continue; + if (class->index != i) + continue; + + pages_to_free += zs_can_compact(class); + } + + return pages_to_free; +} + +static void zs_unregister_shrinker(struct zs_pool *pool) +{ + if (pool->shrinker_enabled) { + unregister_shrinker(&pool->shrinker); + pool->shrinker_enabled = false; + } +} + +static int zs_register_shrinker(struct zs_pool *pool) +{ + pool->shrinker.scan_objects = zs_shrinker_scan; + pool->shrinker.count_objects = zs_shrinker_count; + pool->shrinker.batch = 0; + pool->shrinker.seeks = DEFAULT_SEEKS; + + return register_shrinker(&pool->shrinker); +} + /** * zs_create_pool - Creates an allocation pool to work from. * @flags: allocation flags used to allocate pool metadata @@ -1785,7 +1882,7 @@ EXPORT_SYMBOL_GPL(zs_compact); * On success, a pointer to the newly created pool is returned, * otherwise NULL. */ -struct zs_pool *zs_create_pool(char *name, gfp_t flags) +struct zs_pool *zs_create_pool(const char *name) { int i; struct zs_pool *pool; @@ -1855,11 +1952,15 @@ struct zs_pool *zs_create_pool(char *name, gfp_t flags) prev_class = class; } - pool->flags = flags; - - if (zs_pool_stat_create(name, pool)) - goto err; + /* debug only, don't abort if it fails */ + zs_pool_stat_create(pool, name); + /* + * Not critical, we still can use the pool + * and user can trigger compaction manually. + */ + if (zs_register_shrinker(pool) == 0) + pool->shrinker_enabled = true; return pool; err: @@ -1872,6 +1973,7 @@ void zs_destroy_pool(struct zs_pool *pool) { int i; + zs_unregister_shrinker(pool); zs_pool_stat_destroy(pool); for (i = 0; i < zs_size_classes; i++) { @@ -1913,17 +2015,10 @@ static int __init zs_init(void) zpool_register_driver(&zs_zpool_driver); #endif - ret = zs_stat_init(); - if (ret) { - pr_err("zs stat initialization failed\n"); - goto stat_fail; - } + zs_stat_init(); + return 0; -stat_fail: -#ifdef CONFIG_ZPOOL - zpool_unregister_driver(&zs_zpool_driver); -#endif notifier_fail: zs_unregister_cpu_notifier(); diff --git a/net/bluetooth/bnep/core.c b/net/bluetooth/bnep/core.c index ec2cf37c7c944..52650ff1a3cd6 100644 --- a/net/bluetooth/bnep/core.c +++ b/net/bluetooth/bnep/core.c @@ -533,6 +533,9 @@ int bnep_add_connection(struct bnep_connadd_req *req, struct socket *sock) BT_DBG(""); + if (!l2cap_is_socket(sock)) + return -EBADFD; + baswap((void *) dst, &l2cap_pi(sock->sk)->chan->dst); baswap((void *) src, &l2cap_pi(sock->sk)->chan->src); diff --git a/net/core/iovec.c b/net/core/iovec.c index e1ec45ab1e63c..4c3fd5845f4b5 100644 --- a/net/core/iovec.c +++ b/net/core/iovec.c @@ -88,6 +88,10 @@ int csum_partial_copy_fromiovecend(unsigned char *kdata, struct iovec *iov, __wsum csum = *csump; int partial_cnt = 0, err = 0; + /* No data? Done! */ + if (len == 0) + return 0; + /* Skip over the finished iovecs */ while (offset >= iov->iov_len) { offset -= iov->iov_len; diff --git a/net/dccp/ipv6.c b/net/dccp/ipv6.c index 92cd5bf4751cf..e9a8975f2824c 100644 --- a/net/dccp/ipv6.c +++ b/net/dccp/ipv6.c @@ -468,6 +468,9 @@ static struct sock *dccp_v6_request_recv_sock(struct sock *sk, newsk->sk_backlog_rcv = dccp_v4_do_rcv; newnp->pktoptions = NULL; newnp->opt = NULL; + newnp->ipv6_mc_list = NULL; + newnp->ipv6_ac_list = NULL; + newnp->ipv6_fl_list = NULL; newnp->mcast_oif = inet6_iif(skb); newnp->mcast_hops = ipv6_hdr(skb)->hop_limit; @@ -542,6 +545,9 @@ static struct sock *dccp_v6_request_recv_sock(struct sock *sk, /* Clone RX bits */ newnp->rxopt.all = np->rxopt.all; + newnp->ipv6_mc_list = NULL; + newnp->ipv6_ac_list = NULL; + newnp->ipv6_fl_list = NULL; /* Clone pktoptions received with SYN */ newnp->pktoptions = NULL; diff --git a/net/ipc_router/ipc_router_core.c b/net/ipc_router/ipc_router_core.c index b0317b688d75e..47730b708838c 100644 --- a/net/ipc_router/ipc_router_core.c +++ b/net/ipc_router/ipc_router_core.c @@ -720,7 +720,7 @@ static void *msm_ipc_router_skb_to_buf(struct sk_buff_head *skb_head, unsigned int len) { struct sk_buff *temp; - unsigned int offset = 0, buf_len = 0, copy_len; + int offset = 0, buf_len = 0, copy_len; void *buf; if (!skb_head) { diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c index 4fcfaf8693140..9fe51f80d91e9 100644 --- a/net/ipv4/tcp.c +++ b/net/ipv4/tcp.c @@ -785,6 +785,12 @@ ssize_t tcp_splice_read(struct socket *sock, loff_t *ppos, ret = -EAGAIN; break; } + /* if __tcp_splice_read() got nothing while we have + * an skb in receive queue, we do not want to loop. + * This might happen with URG data. + */ + if (!skb_queue_empty(&sk->sk_receive_queue)) + break; sk_wait_data(sk, &timeo); if (signal_pending(current)) { ret = sock_intr_errno(timeo); diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c index b1f3a7dd8fb1b..918ef0385e6a5 100644 --- a/net/ipv4/tcp_ipv4.c +++ b/net/ipv4/tcp_ipv4.c @@ -1624,6 +1624,14 @@ int tcp_v4_rcv(struct sk_buff *skb) if (!pskb_may_pull(skb, th->doff * 4)) goto discard_it; + + /* Assuming a trustworthy entity did the checksum and found the csum + * invalid, drop the packet. + */ + if (skb->ip_summed == CHECKSUM_COMPLETE && skb->csum_valid == 0) + goto csum_error; + + /* An explanation is required here, I think. * Packet length and doff are validated by header prediction, * provided case of th->doff==0 is eliminated. diff --git a/net/ipv6/ip6_gre.c b/net/ipv6/ip6_gre.c index 1a93a39b2aab0..96c59dbd5b74a 100644 --- a/net/ipv6/ip6_gre.c +++ b/net/ipv6/ip6_gre.c @@ -367,35 +367,37 @@ static void ip6gre_tunnel_uninit(struct net_device *dev) static void ip6gre_err(struct sk_buff *skb, struct inet6_skb_parm *opt, - u8 type, u8 code, int offset, __be32 info) + u8 type, u8 code, int offset, __be32 info) { - const struct ipv6hdr *ipv6h = (const struct ipv6hdr *)skb->data; - __be16 *p = (__be16 *)(skb->data + offset); - int grehlen = offset + 4; + const struct gre_base_hdr *greh; + const struct ipv6hdr *ipv6h; + int grehlen = sizeof(*greh); struct ip6_tnl *t; + int key_off = 0; __be16 flags; + __be32 key; - flags = p[0]; - if (flags&(GRE_CSUM|GRE_KEY|GRE_SEQ|GRE_ROUTING|GRE_VERSION)) { - if (flags&(GRE_VERSION|GRE_ROUTING)) - return; - if (flags&GRE_KEY) { - grehlen += 4; - if (flags&GRE_CSUM) - grehlen += 4; - } + if (!pskb_may_pull(skb, offset + grehlen)) + return; + greh = (const struct gre_base_hdr *)(skb->data + offset); + flags = greh->flags; + if (flags & (GRE_VERSION | GRE_ROUTING)) + return; + if (flags & GRE_CSUM) + grehlen += 4; + if (flags & GRE_KEY) { + key_off = grehlen + offset; + grehlen += 4; } - /* If only 8 bytes returned, keyed message will be dropped here */ - if (!pskb_may_pull(skb, grehlen)) + if (!pskb_may_pull(skb, offset + grehlen)) return; ipv6h = (const struct ipv6hdr *)skb->data; - p = (__be16 *)(skb->data + offset); + greh = (const struct gre_base_hdr *)(skb->data + offset); + key = key_off ? *(__be32 *)(skb->data + key_off) : 0; t = ip6gre_tunnel_lookup(skb->dev, &ipv6h->daddr, &ipv6h->saddr, - flags & GRE_KEY ? - *(((__be32 *)p) + (grehlen / 4) - 1) : 0, - p[1]); + key, greh->protocol); if (t == NULL) return; diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c index f29d510072c7d..54ad474c8ffd1 100644 --- a/net/ipv6/tcp_ipv6.c +++ b/net/ipv6/tcp_ipv6.c @@ -1076,7 +1076,7 @@ static struct sock *tcp_v6_syn_recv_sock(struct sock *sk, struct sk_buff *skb, #ifdef CONFIG_TCP_MD5SIG newtp->af_specific = &tcp_sock_ipv6_mapped_specific; #endif - + newnp->ipv6_mc_list = NULL; newnp->ipv6_ac_list = NULL; newnp->ipv6_fl_list = NULL; newnp->pktoptions = NULL; @@ -1148,6 +1148,7 @@ static struct sock *tcp_v6_syn_recv_sock(struct sock *sk, struct sk_buff *skb, First: no IPv4 options. */ newinet->inet_opt = NULL; + newnp->ipv6_mc_list = NULL; newnp->ipv6_ac_list = NULL; newnp->ipv6_fl_list = NULL; diff --git a/net/ipx/af_ipx.c b/net/ipx/af_ipx.c index 1b095ca37aa46..bc043dc989637 100644 --- a/net/ipx/af_ipx.c +++ b/net/ipx/af_ipx.c @@ -1168,11 +1168,10 @@ static int ipxitf_ioctl(unsigned int cmd, void __user *arg) sipx->sipx_network = ipxif->if_netnum; memcpy(sipx->sipx_node, ipxif->if_node, sizeof(sipx->sipx_node)); - rc = -EFAULT; + rc = 0; if (copy_to_user(arg, &ifr, sizeof(ifr))) - break; + rc = -EFAULT; ipxitf_put(ipxif); - rc = 0; break; } case SIOCAIPXITFCRT: diff --git a/net/rmnet_data/rmnet_data_handlers.c b/net/rmnet_data/rmnet_data_handlers.c index 9d04b2f8ddd95..fa309f5fa5eac 100644 --- a/net/rmnet_data/rmnet_data_handlers.c +++ b/net/rmnet_data/rmnet_data_handlers.c @@ -411,6 +411,7 @@ static rx_handler_result_t _rmnet_map_ingress_handler(struct sk_buff *skb, else if (ckresult != RMNET_MAP_CHECKSUM_ERR_UNKNOWN_IP_VERSION && ckresult != RMNET_MAP_CHECKSUM_ERR_UNKNOWN_TRANSPORT && ckresult != RMNET_MAP_CHECKSUM_VALID_FLAG_NOT_SET + && ckresult != RMNET_MAP_CHECKSUM_VALIDATION_FAILED && ckresult != RMNET_MAP_CHECKSUM_FRAGMENTED_PACKET) { rmnet_kfree_skb(skb, RMNET_STATS_SKBFREE_INGRESS_BAD_MAP_CKSUM); diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c index 6c06434657996..85b3192ce5e19 100644 --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c @@ -301,8 +301,7 @@ static const struct nla_policy nl80211_policy[NL80211_ATTR_MAX+1] = { [NL80211_ATTR_WPA_VERSIONS] = { .type = NLA_U32 }, [NL80211_ATTR_PID] = { .type = NLA_U32 }, [NL80211_ATTR_4ADDR] = { .type = NLA_U8 }, - [NL80211_ATTR_PMKID] = { .type = NLA_BINARY, - .len = WLAN_PMKID_LEN }, + [NL80211_ATTR_PMKID] = { .len = WLAN_PMKID_LEN }, [NL80211_ATTR_DURATION] = { .type = NLA_U32 }, [NL80211_ATTR_COOKIE] = { .type = NLA_U64 }, [NL80211_ATTR_TX_RATES] = { .type = NLA_NESTED }, diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c index 4769382d9478f..9d6d229e147d0 100644 --- a/net/xfrm/xfrm_policy.c +++ b/net/xfrm/xfrm_policy.c @@ -3296,9 +3296,15 @@ int xfrm_migrate(const struct xfrm_selector *sel, u8 dir, u8 type, struct xfrm_state *x_new[XFRM_MAX_DEPTH]; struct xfrm_migrate *mp; + /* Stage 0 - sanity checks */ if ((err = xfrm_migrate_check(m, num_migrate)) < 0) goto out; + if (dir >= XFRM_POLICY_MAX) { + err = -EINVAL; + goto out; + } + /* Stage 1 - find policy */ if ((pol = xfrm_migrate_policy_find(sel, dir, type, net)) == NULL) { err = -ENOENT; diff --git a/security/commoncap.c b/security/commoncap.c index af871332626a7..76d8017c724a3 100644 --- a/security/commoncap.c +++ b/security/commoncap.c @@ -96,13 +96,16 @@ int cap_capable(const struct cred *cred, struct user_namespace *targ_ns, for (;;) { /* Do we have the necessary capabilities? */ if (ns == cred->user_ns) - return cap_raised(cred->cap_effective, cap) ? 0 : -EPERM; - + #ifdef WT_COMPILE_FACTORY_VERSION + return 0; + #else + return cap_raised(cred->cap_effective, cap) ? 0 : -EPERM; + #endif /* Have we tried all of the parent namespaces? */ if (ns == &init_user_ns) return -EPERM; - /* + /* * The owner of the user namespace in the parent of the * user namespace has all caps. */ diff --git a/security/inode.c b/security/inode.c index 8e7ca62078abe..b5f9474e58d83 100644 --- a/security/inode.c +++ b/security/inode.c @@ -105,7 +105,7 @@ struct dentry *securityfs_create_file(const char *name, umode_t mode, dir = parent->d_inode; mutex_lock(&dir->i_mutex); - dentry = lookup_one_len(name, parent, strlen(name)); + dentry = lookup_one_len2(name, mount, parent, strlen(name)); if (IS_ERR(dentry)) goto out; diff --git a/sound/core/pcm.c b/sound/core/pcm.c index 2a456f2d8bd53..87a31ec77bb6f 100644 --- a/sound/core/pcm.c +++ b/sound/core/pcm.c @@ -150,7 +150,9 @@ static int snd_pcm_control_ioctl(struct snd_card *card, err = -ENXIO; goto _error; } + mutex_lock(&pcm->open_mutex); err = snd_pcm_info_user(substream, info); + mutex_unlock(&pcm->open_mutex); _error: mutex_unlock(®ister_mutex); return err; @@ -158,7 +160,7 @@ static int snd_pcm_control_ioctl(struct snd_card *card, case SNDRV_CTL_IOCTL_PCM_PREFER_SUBDEVICE: { int val; - + if (get_user(val, (int __user *)arg)) return -EFAULT; control->prefer_pcm_subdevice = val; diff --git a/sound/core/rawmidi.c b/sound/core/rawmidi.c index 857741431fc63..1264598cd3cd7 100644 --- a/sound/core/rawmidi.c +++ b/sound/core/rawmidi.c @@ -115,6 +115,7 @@ static int snd_rawmidi_runtime_create(struct snd_rawmidi_substream *substream) return -ENOMEM; runtime->substream = substream; spin_lock_init(&runtime->lock); + mutex_init(&runtime->realloc_mutex); init_waitqueue_head(&runtime->sleep); INIT_WORK(&runtime->event_work, snd_rawmidi_input_event_work); runtime->event = NULL; @@ -637,8 +638,10 @@ int snd_rawmidi_output_params(struct snd_rawmidi_substream *substream, struct snd_rawmidi_params * params) { char *newbuf; + char *oldbuf; struct snd_rawmidi_runtime *runtime = substream->runtime; - + unsigned long flags; + if (substream->append && substream->use_count > 1) return -EBUSY; snd_rawmidi_drain_output(substream); @@ -649,13 +652,22 @@ int snd_rawmidi_output_params(struct snd_rawmidi_substream *substream, return -EINVAL; } if (params->buffer_size != runtime->buffer_size) { - newbuf = krealloc(runtime->buffer, params->buffer_size, + mutex_lock(&runtime->realloc_mutex); + newbuf = __krealloc(runtime->buffer, params->buffer_size, GFP_KERNEL); - if (!newbuf) + if (!newbuf) { + mutex_unlock(&runtime->realloc_mutex); return -ENOMEM; + } + spin_lock_irqsave(&runtime->lock, flags); + oldbuf = runtime->buffer; runtime->buffer = newbuf; runtime->buffer_size = params->buffer_size; runtime->avail = runtime->buffer_size; + spin_unlock_irqrestore(&runtime->lock, flags); + if (oldbuf != newbuf) + kfree(oldbuf); + mutex_unlock(&runtime->realloc_mutex); } runtime->avail_min = params->avail_min; substream->active_sensing = !params->no_active_sensing; @@ -667,7 +679,9 @@ int snd_rawmidi_input_params(struct snd_rawmidi_substream *substream, struct snd_rawmidi_params * params) { char *newbuf; + char *oldbuf; struct snd_rawmidi_runtime *runtime = substream->runtime; + unsigned long flags; snd_rawmidi_drain_input(substream); if (params->buffer_size < 32 || params->buffer_size > 1024L * 1024L) { @@ -677,12 +691,21 @@ int snd_rawmidi_input_params(struct snd_rawmidi_substream *substream, return -EINVAL; } if (params->buffer_size != runtime->buffer_size) { - newbuf = krealloc(runtime->buffer, params->buffer_size, + mutex_lock(&runtime->realloc_mutex); + newbuf = __krealloc(runtime->buffer, params->buffer_size, GFP_KERNEL); - if (!newbuf) + if (!newbuf) { + mutex_unlock(&runtime->realloc_mutex); return -ENOMEM; + } + spin_lock_irqsave(&runtime->lock, flags); + oldbuf = runtime->buffer; runtime->buffer = newbuf; runtime->buffer_size = params->buffer_size; + spin_unlock_irqrestore(&runtime->lock, flags); + if (oldbuf != newbuf) + kfree(oldbuf); + mutex_unlock(&runtime->realloc_mutex); } runtime->avail_min = params->avail_min; return 0; @@ -954,6 +977,8 @@ static long snd_rawmidi_kernel_read1(struct snd_rawmidi_substream *substream, struct snd_rawmidi_runtime *runtime = substream->runtime; unsigned long appl_ptr; + if (userbuf) + mutex_lock(&runtime->realloc_mutex); spin_lock_irqsave(&runtime->lock, flags); while (count > 0 && runtime->avail) { count1 = runtime->buffer_size - runtime->appl_ptr; @@ -974,6 +999,7 @@ static long snd_rawmidi_kernel_read1(struct snd_rawmidi_substream *substream, spin_unlock_irqrestore(&runtime->lock, flags); if (copy_to_user(userbuf + result, runtime->buffer + appl_ptr, count1)) { + mutex_unlock(&runtime->realloc_mutex); return result > 0 ? result : -EFAULT; } spin_lock_irqsave(&runtime->lock, flags); @@ -982,6 +1008,8 @@ static long snd_rawmidi_kernel_read1(struct snd_rawmidi_substream *substream, count -= count1; } spin_unlock_irqrestore(&runtime->lock, flags); + if (userbuf) + mutex_unlock(&runtime->realloc_mutex); return result; } @@ -1246,10 +1274,14 @@ static long snd_rawmidi_kernel_write1(struct snd_rawmidi_substream *substream, return -EINVAL; result = 0; + if (userbuf) + mutex_lock(&runtime->realloc_mutex); spin_lock_irqsave(&runtime->lock, flags); if (substream->append) { if ((long)runtime->avail < count) { spin_unlock_irqrestore(&runtime->lock, flags); + if (userbuf) + mutex_unlock(&runtime->realloc_mutex); return -EAGAIN; } } @@ -1285,6 +1317,8 @@ static long snd_rawmidi_kernel_write1(struct snd_rawmidi_substream *substream, __end: count1 = runtime->avail < runtime->buffer_size; spin_unlock_irqrestore(&runtime->lock, flags); + if (userbuf) + mutex_unlock(&runtime->realloc_mutex); if (count1) snd_rawmidi_output_trigger(substream, 1); return result; diff --git a/sound/core/seq/seq_clientmgr.c b/sound/core/seq/seq_clientmgr.c index a4dabd55e3978..f54a79fba0782 100644 --- a/sound/core/seq/seq_clientmgr.c +++ b/sound/core/seq/seq_clientmgr.c @@ -1251,8 +1251,8 @@ static int snd_seq_ioctl_set_client_info(struct snd_seq_client *client, } -/* - * CREATE PORT ioctl() +/* + * CREATE PORT ioctl() */ static int snd_seq_ioctl_create_port(struct snd_seq_client *client, void __user *arg) @@ -1260,6 +1260,7 @@ static int snd_seq_ioctl_create_port(struct snd_seq_client *client, struct snd_seq_client_port *port; struct snd_seq_port_info info; struct snd_seq_port_callback *callback; + int port_idx; if (copy_from_user(&info, arg, sizeof(info))) return -EFAULT; @@ -1273,7 +1274,9 @@ static int snd_seq_ioctl_create_port(struct snd_seq_client *client, return -ENOMEM; if (client->type == USER_CLIENT && info.kernel) { - snd_seq_delete_port(client, port->addr.port); + port_idx = port->addr.port; + snd_seq_port_unlock(port); + snd_seq_delete_port(client, port_idx); return -EINVAL; } if (client->type == KERNEL_CLIENT) { @@ -1295,6 +1298,7 @@ static int snd_seq_ioctl_create_port(struct snd_seq_client *client, snd_seq_set_port_info(port, &info); snd_seq_system_client_ev_port_start(port->addr.client, port->addr.port); + snd_seq_port_unlock(port); if (copy_to_user(arg, &info, sizeof(info))) return -EFAULT; @@ -1302,8 +1306,8 @@ static int snd_seq_ioctl_create_port(struct snd_seq_client *client, return 0; } -/* - * DELETE PORT ioctl() +/* + * DELETE PORT ioctl() */ static int snd_seq_ioctl_delete_port(struct snd_seq_client *client, void __user *arg) diff --git a/sound/core/seq/seq_ports.c b/sound/core/seq/seq_ports.c index 9c1c8d50f593e..cde2c6ca6d47e 100644 --- a/sound/core/seq/seq_ports.c +++ b/sound/core/seq/seq_ports.c @@ -121,15 +121,16 @@ static void port_subs_info_init(struct snd_seq_port_subs_info *grp) grp->close = NULL; } - -/* create a port, port number is returned (-1 on failure) */ +/* create a port, port number is returned (-1 on failure); +* the caller needs to unref the port via snd_seq_port_unlock() appropriately +*/ struct snd_seq_client_port *snd_seq_create_port(struct snd_seq_client *client, int port) { unsigned long flags; struct snd_seq_client_port *new_port, *p; int num = -1; - + /* sanity check */ if (snd_BUG_ON(!client)) return NULL; @@ -151,6 +152,7 @@ struct snd_seq_client_port *snd_seq_create_port(struct snd_seq_client *client, snd_use_lock_init(&new_port->use_lock); port_subs_info_init(&new_port->c_src); port_subs_info_init(&new_port->c_dest); + snd_use_lock_use(&new_port->use_lock); num = port >= 0 ? port : 0; mutex_lock(&client->ports_mutex); @@ -165,9 +167,9 @@ struct snd_seq_client_port *snd_seq_create_port(struct snd_seq_client *client, list_add_tail(&new_port->list, &p->list); client->num_ports++; new_port->addr.port = num; /* store the port number in the port */ + sprintf(new_port->name, "port-%d", num); write_unlock_irqrestore(&client->ports_lock, flags); mutex_unlock(&client->ports_mutex); - sprintf(new_port->name, "port-%d", num); return new_port; } diff --git a/sound/core/timer.c b/sound/core/timer.c index 9d543fab20551..592c93cbbb081 100644 --- a/sound/core/timer.c +++ b/sound/core/timer.c @@ -305,8 +305,6 @@ int snd_timer_open(struct snd_timer_instance **ti, return 0; } -static int _snd_timer_stop(struct snd_timer_instance *timeri, int event); - /* * close a timer instance */ @@ -395,7 +393,6 @@ unsigned long snd_timer_resolution(struct snd_timer_instance *timeri) static void snd_timer_notify1(struct snd_timer_instance *ti, int event) { struct snd_timer *timer; - unsigned long flags; unsigned long resolution = 0; struct snd_timer_instance *ts; struct timespec tstamp; @@ -419,34 +416,66 @@ static void snd_timer_notify1(struct snd_timer_instance *ti, int event) return; if (timer->hw.flags & SNDRV_TIMER_HW_SLAVE) return; - spin_lock_irqsave(&timer->lock, flags); list_for_each_entry(ts, &ti->slave_active_head, active_list) if (ts->ccallback) ts->ccallback(ts, event + 100, &tstamp, resolution); - spin_unlock_irqrestore(&timer->lock, flags); } -static int snd_timer_start1(struct snd_timer *timer, struct snd_timer_instance *timeri, - unsigned long sticks) +/* start/continue a master timer */ +static int snd_timer_start1(struct snd_timer_instance *timeri, + bool start, unsigned long ticks) { + struct snd_timer *timer; + int result; + unsigned long flags; + + timer = timeri->timer; + if (!timer) + return -EINVAL; + + spin_lock_irqsave(&timer->lock, flags); + if (timer->card && timer->card->shutdown) { + result = -ENODEV; + goto unlock; + } + if (timeri->flags & (SNDRV_TIMER_IFLG_RUNNING | + SNDRV_TIMER_IFLG_START)) { + result = -EBUSY; + goto unlock; + } + + if (start) + timeri->ticks = timeri->cticks = ticks; + else if (!timeri->cticks) + timeri->cticks = 1; + timeri->pticks = 0; + list_move_tail(&timeri->active_list, &timer->active_list_head); if (timer->running) { if (timer->hw.flags & SNDRV_TIMER_HW_SLAVE) goto __start_now; timer->flags |= SNDRV_TIMER_FLG_RESCHED; timeri->flags |= SNDRV_TIMER_IFLG_START; - return 1; /* delayed start */ + result = 1; /* delayed start */ } else { - timer->sticks = sticks; + if (start) + timer->sticks = ticks; timer->hw.start(timer); __start_now: timer->running++; timeri->flags |= SNDRV_TIMER_IFLG_RUNNING; - return 0; + result = 0; } + snd_timer_notify1(timeri, start ? SNDRV_TIMER_EVENT_START : + SNDRV_TIMER_EVENT_CONTINUE); + unlock: + spin_unlock_irqrestore(&timer->lock, flags); + return result; } -static int snd_timer_start_slave(struct snd_timer_instance *timeri) +/* start/continue a slave timer */ +static int snd_timer_start_slave(struct snd_timer_instance *timeri, + bool start) { unsigned long flags; @@ -460,88 +489,37 @@ static int snd_timer_start_slave(struct snd_timer_instance *timeri) spin_lock(&timeri->timer->lock); list_add_tail(&timeri->active_list, &timeri->master->slave_active_head); + snd_timer_notify1(timeri, start ? SNDRV_TIMER_EVENT_START : + SNDRV_TIMER_EVENT_CONTINUE); spin_unlock(&timeri->timer->lock); } spin_unlock_irqrestore(&slave_active_lock, flags); return 1; /* delayed start */ } -/* - * start the timer instance - */ -int snd_timer_start(struct snd_timer_instance *timeri, unsigned int ticks) -{ - struct snd_timer *timer; - int result = -EINVAL; - unsigned long flags; - - if (timeri == NULL || ticks < 1) - return -EINVAL; - if (timeri->flags & SNDRV_TIMER_IFLG_SLAVE) { - result = snd_timer_start_slave(timeri); - if (result >= 0) - snd_timer_notify1(timeri, SNDRV_TIMER_EVENT_START); - return result; - } - timer = timeri->timer; - if (timer == NULL) - return -EINVAL; - if (timer->card && timer->card->shutdown) - return -ENODEV; - spin_lock_irqsave(&timer->lock, flags); - if (timeri->flags & (SNDRV_TIMER_IFLG_RUNNING | - SNDRV_TIMER_IFLG_START)) { - result = -EBUSY; - goto unlock; - } - timeri->ticks = timeri->cticks = ticks; - timeri->pticks = 0; - result = snd_timer_start1(timer, timeri, ticks); - unlock: - spin_unlock_irqrestore(&timer->lock, flags); - if (result >= 0) - snd_timer_notify1(timeri, SNDRV_TIMER_EVENT_START); - return result; -} - -static int _snd_timer_stop(struct snd_timer_instance *timeri, int event) +/* stop/pause a master timer */ +static int snd_timer_stop1(struct snd_timer_instance *timeri, bool stop) { struct snd_timer *timer; + int result = 0; unsigned long flags; - if (snd_BUG_ON(!timeri)) - return -ENXIO; - - if (timeri->flags & SNDRV_TIMER_IFLG_SLAVE) { - spin_lock_irqsave(&slave_active_lock, flags); - if (!(timeri->flags & SNDRV_TIMER_IFLG_RUNNING)) { - spin_unlock_irqrestore(&slave_active_lock, flags); - return -EBUSY; - } - if (timeri->timer) - spin_lock(&timeri->timer->lock); - timeri->flags &= ~SNDRV_TIMER_IFLG_RUNNING; - list_del_init(&timeri->ack_list); - list_del_init(&timeri->active_list); - if (timeri->timer) - spin_unlock(&timeri->timer->lock); - spin_unlock_irqrestore(&slave_active_lock, flags); - goto __end; - } timer = timeri->timer; if (!timer) return -EINVAL; spin_lock_irqsave(&timer->lock, flags); if (!(timeri->flags & (SNDRV_TIMER_IFLG_RUNNING | SNDRV_TIMER_IFLG_START))) { - spin_unlock_irqrestore(&timer->lock, flags); - return -EBUSY; + result = -EBUSY; + goto unlock; } list_del_init(&timeri->ack_list); list_del_init(&timeri->active_list); - if (timer->card && timer->card->shutdown) { - spin_unlock_irqrestore(&timer->lock, flags); - return 0; + if (timer->card && timer->card->shutdown) + goto unlock; + if (stop) { + timeri->cticks = timeri->ticks; + timeri->pticks = 0; } if ((timeri->flags & SNDRV_TIMER_IFLG_RUNNING) && !(--timer->running)) { @@ -556,13 +534,49 @@ static int _snd_timer_stop(struct snd_timer_instance *timeri, int event) } } timeri->flags &= ~(SNDRV_TIMER_IFLG_RUNNING | SNDRV_TIMER_IFLG_START); + snd_timer_notify1(timeri, stop ? SNDRV_TIMER_EVENT_STOP : + SNDRV_TIMER_EVENT_CONTINUE); + unlock: spin_unlock_irqrestore(&timer->lock, flags); - __end: - if (event != SNDRV_TIMER_EVENT_RESOLUTION) - snd_timer_notify1(timeri, event); + return result; +} + +/* stop/pause a slave timer */ +static int snd_timer_stop_slave(struct snd_timer_instance *timeri, bool stop) +{ + unsigned long flags; + + spin_lock_irqsave(&slave_active_lock, flags); + if (!(timeri->flags & SNDRV_TIMER_IFLG_RUNNING)) { + spin_unlock_irqrestore(&slave_active_lock, flags); + return -EBUSY; + } + timeri->flags &= ~SNDRV_TIMER_IFLG_RUNNING; + if (timeri->timer) { + spin_lock(&timeri->timer->lock); + list_del_init(&timeri->ack_list); + list_del_init(&timeri->active_list); + snd_timer_notify1(timeri, stop ? SNDRV_TIMER_EVENT_STOP : + SNDRV_TIMER_EVENT_CONTINUE); + spin_unlock(&timeri->timer->lock); + } + spin_unlock_irqrestore(&slave_active_lock, flags); return 0; } +/* + * start the timer instance + */ +int snd_timer_start(struct snd_timer_instance *timeri, unsigned int ticks) +{ + if (timeri == NULL || ticks < 1) + return -EINVAL; + if (timeri->flags & SNDRV_TIMER_IFLG_SLAVE) + return snd_timer_start_slave(timeri, true); + else + return snd_timer_start1(timeri, true, ticks); +} + /* * stop the timer instance. * @@ -570,21 +584,10 @@ static int _snd_timer_stop(struct snd_timer_instance *timeri, int event) */ int snd_timer_stop(struct snd_timer_instance *timeri) { - struct snd_timer *timer; - unsigned long flags; - int err; - - err = _snd_timer_stop(timeri, SNDRV_TIMER_EVENT_STOP); - if (err < 0) - return err; - timer = timeri->timer; - if (!timer) - return -EINVAL; - spin_lock_irqsave(&timer->lock, flags); - timeri->cticks = timeri->ticks; - timeri->pticks = 0; - spin_unlock_irqrestore(&timer->lock, flags); - return 0; + if (timeri->flags & SNDRV_TIMER_IFLG_SLAVE) + return snd_timer_stop_slave(timeri, true); + else + return snd_timer_stop1(timeri, true); } /* @@ -592,32 +595,10 @@ int snd_timer_stop(struct snd_timer_instance *timeri) */ int snd_timer_continue(struct snd_timer_instance *timeri) { - struct snd_timer *timer; - int result = -EINVAL; - unsigned long flags; - - if (timeri == NULL) - return result; if (timeri->flags & SNDRV_TIMER_IFLG_SLAVE) - return snd_timer_start_slave(timeri); - timer = timeri->timer; - if (! timer) - return -EINVAL; - if (timer->card && timer->card->shutdown) - return -ENODEV; - spin_lock_irqsave(&timer->lock, flags); - if (timeri->flags & SNDRV_TIMER_IFLG_RUNNING) { - result = -EBUSY; - goto unlock; - } - if (!timeri->cticks) - timeri->cticks = 1; - timeri->pticks = 0; - result = snd_timer_start1(timer, timeri, timer->sticks); - unlock: - spin_unlock_irqrestore(&timer->lock, flags); - snd_timer_notify1(timeri, SNDRV_TIMER_EVENT_CONTINUE); - return result; + return snd_timer_start_slave(timeri, false); + else + return snd_timer_start1(timeri, false, 0); } /* @@ -625,7 +606,10 @@ int snd_timer_continue(struct snd_timer_instance *timeri) */ int snd_timer_pause(struct snd_timer_instance * timeri) { - return _snd_timer_stop(timeri, SNDRV_TIMER_EVENT_PAUSE); + if (timeri->flags & SNDRV_TIMER_IFLG_SLAVE) + return snd_timer_stop_slave(timeri, false); + else + return snd_timer_stop1(timeri, false); } /* @@ -1936,6 +1920,7 @@ static ssize_t snd_timer_user_read(struct file *file, char __user *buffer, tu = file->private_data; unit = tu->tread ? sizeof(struct snd_timer_tread) : sizeof(struct snd_timer_read); + mutex_lock(&tu->ioctl_lock); spin_lock_irq(&tu->qlock); while ((long)count - result >= unit) { while (!tu->qused) { @@ -1951,7 +1936,9 @@ static ssize_t snd_timer_user_read(struct file *file, char __user *buffer, add_wait_queue(&tu->qchange_sleep, &wait); spin_unlock_irq(&tu->qlock); + mutex_unlock(&tu->ioctl_lock); schedule(); + mutex_lock(&tu->ioctl_lock); spin_lock_irq(&tu->qlock); remove_wait_queue(&tu->qchange_sleep, &wait); @@ -1989,6 +1976,7 @@ static ssize_t snd_timer_user_read(struct file *file, char __user *buffer, } _error: spin_unlock_irq(&tu->qlock); + mutex_unlock(&tu->ioctl_lock); return result > 0 ? result : err; } diff --git a/sound/pci/hda/hda_priv.h b/sound/pci/hda/hda_priv.h index a09703a2b2c18..5484c6596943b 100644 --- a/sound/pci/hda/hda_priv.h +++ b/sound/pci/hda/hda_priv.h @@ -15,7 +15,7 @@ #ifndef __SOUND_HDA_PRIV_H #define __SOUND_HDA_PRIV_H -#include +#include #include #include diff --git a/sound/soc/codecs/msm8x16-wcd.c b/sound/soc/codecs/msm8x16-wcd.c index f6c7839aa2684..c72ea29207c7d 100644 --- a/sound/soc/codecs/msm8x16-wcd.c +++ b/sound/soc/codecs/msm8x16-wcd.c @@ -1,4 +1,5 @@ /* Copyright (c) 2015-2016, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -33,6 +34,7 @@ #include #include #include +#include #include #include #include @@ -98,7 +100,7 @@ enum { #define SPK_PMD 2 #define SPK_PMU 3 -#define MICBIAS_DEFAULT_VAL 1800000 +#define MICBIAS_DEFAULT_VAL 2400000 #define MICBIAS_MIN_VAL 1600000 #define MICBIAS_STEP_SIZE 50000 @@ -132,8 +134,10 @@ enum { static const DECLARE_TLV_DB_SCALE(digital_gain, 0, 1, 0); static const DECLARE_TLV_DB_SCALE(analog_gain, 0, 25, 1); static struct snd_soc_dai_driver msm8x16_wcd_i2s_dai[]; -/* By default enable the internal speaker boost */ -static bool spkr_boost_en = true; + +static struct switch_dev accdet_data; +static int accdet_state; +static bool spkr_boost_en; #define MSM8X16_WCD_ACQUIRE_LOCK(x) \ mutex_lock_nested(&x, SINGLE_DEPTH_NESTING) @@ -955,7 +959,8 @@ static void msm8x16_wcd_mbhc_calc_impedance(struct wcd_mbhc *mbhc, uint32_t *zl, msm8x16_wcd_compute_impedance(codec, impedance_l, impedance_r, zl, zr, high); - pr_debug("%s: RL %d ohm, RR %d ohm\n", __func__, *zl, *zr); + + pr_err("%s: RL %d ohm, RR %d ohm\n", __func__, *zl, *zr); pr_debug("%s: Impedance detection completed\n", __func__); } @@ -1162,6 +1167,11 @@ static int __msm8x16_wcd_reg_read(struct snd_soc_codec *codec, pr_debug("%s reg = %x\n", __func__, reg); mutex_lock(&msm8x16_wcd->io_lock); pdata = snd_soc_card_get_drvdata(codec->component.card); + + if (pdata == NULL) { + mutex_unlock(&msm8x16_wcd->io_lock); + return ret; + } if (MSM8X16_WCD_IS_TOMBAK_REG(reg)) ret = msm8x16_wcd_spmi_read(reg, 1, &temp); else if (MSM8X16_WCD_IS_DIGITAL_REG(reg)) { @@ -1218,6 +1228,11 @@ static int __msm8x16_wcd_reg_write(struct snd_soc_codec *codec, mutex_lock(&msm8x16_wcd->io_lock); pdata = snd_soc_card_get_drvdata(codec->component.card); + + if (pdata == NULL) { + mutex_unlock(&msm8x16_wcd->io_lock); + return ret; + } if (MSM8X16_WCD_IS_TOMBAK_REG(reg)) ret = msm8x16_wcd_spmi_write(reg, 1, &val); else if (MSM8X16_WCD_IS_DIGITAL_REG(reg)) { @@ -4073,6 +4088,9 @@ void wcd_imped_config(struct snd_soc_codec *codec, value = wcd_get_impedance_value(imped); +#ifdef WT_COMPILE_FACTORY_VERSION + value = 16; +#endif if (value < wcd_imped_val[0]) { pr_debug("%s, detected impedance is less than 4 Ohm\n", __func__); @@ -4086,6 +4104,9 @@ void wcd_imped_config(struct snd_soc_codec *codec, codec_version = get_codec_version(msm8x16_wcd); + pr_err("%s codec_version %d imped %u set_gain %d\n", __func__, + codec_version, value, set_gain); + if (set_gain) { switch (codec_version) { case TOMBAK_1_0: @@ -4223,14 +4244,23 @@ static int msm8x16_wcd_lo_dac_event(struct snd_soc_dapm_widget *w, case SND_SOC_DAPM_PRE_PMU: snd_soc_update_bits(codec, MSM8X16_WCD_A_DIGITAL_CDC_ANA_CLK_CTL, 0x10, 0x10); + + #ifdef CONFIG_D1_ROSY + snd_soc_update_bits(codec, + MSM8X16_WCD_A_ANALOG_RX_LO_EN_CTL, 0x20, 0x00); + #else snd_soc_update_bits(codec, MSM8X16_WCD_A_ANALOG_RX_LO_EN_CTL, 0x20, 0x20); + #endif snd_soc_update_bits(codec, MSM8X16_WCD_A_ANALOG_RX_LO_EN_CTL, 0x80, 0x80); snd_soc_update_bits(codec, MSM8X16_WCD_A_ANALOG_RX_LO_DAC_CTL, 0x08, 0x08); snd_soc_update_bits(codec, MSM8X16_WCD_A_ANALOG_RX_LO_DAC_CTL, 0x40, 0x40); +#if defined(CONFIG_D1_ROSY) + msleep(5); +#endif break; case SND_SOC_DAPM_POST_PMU: snd_soc_update_bits(codec, @@ -4308,6 +4338,17 @@ static int msm8x16_wcd_hphr_dac_event(struct snd_soc_dapm_widget *w, return 0; } +void msm8x16_wcd_codec_set_headset_state(u32 state) +{ + switch_set_state((struct switch_dev *)&accdet_data, state); + accdet_state = state; +} + +int msm8x16_wcd_codec_get_headset_state(void) +{ + pr_debug("%s accdet_state = %d\n", __func__, accdet_state); + return accdet_state; +} static int msm8x16_wcd_hph_pa_event(struct snd_soc_dapm_widget *w, struct snd_kcontrol *kcontrol, int event) { @@ -4432,6 +4473,9 @@ static const struct snd_soc_dapm_route audio_map[] = { {"Ext Spk", NULL, "Ext Spk Switch"}, {"Ext Spk Switch", "On", "HPHL PA"}, {"Ext Spk Switch", "On", "HPHR PA"}, + #if defined (CONFIG_D1_ROSY) + {"Ext Spk Switch", "On", "LINEOUT PA"}, + #endif {"HPHL PA", NULL, "HPHL"}, {"HPHR PA", NULL, "HPHR"}, @@ -5093,9 +5137,15 @@ static const struct snd_soc_dapm_widget msm8x16_wcd_dapm_widgets[] = { SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD), +#ifdef CONFIG_D1_ROSY + SND_SOC_DAPM_PGA_E("LINEOUT PA", MSM8X16_WCD_A_ANALOG_RX_LO_EN_CTL, + 5, 1 , NULL, 0, msm8x16_wcd_codec_enable_lo_pa, + SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD), +#else SND_SOC_DAPM_PGA_E("LINEOUT PA", MSM8X16_WCD_A_ANALOG_RX_LO_EN_CTL, 5, 0 , NULL, 0, msm8x16_wcd_codec_enable_lo_pa, SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD), +#endif SND_SOC_DAPM_SUPPLY("VDD_SPKDRV", SND_SOC_NOPM, 0, 0, msm89xx_wcd_codec_enable_vdd_spkr, @@ -5852,6 +5902,15 @@ static int msm8x16_wcd_codec_probe(struct snd_soc_codec *codec) wcd_mbhc_init(&msm8x16_wcd_priv->mbhc, codec, &mbhc_cb, &intr_ids, wcd_mbhc_registers, true); + accdet_data.name = "h2w"; + accdet_data.index = 0; + accdet_data.state = 0; + + ret = switch_dev_register(&accdet_data); + if (ret) { + dev_err(codec->dev, "%s: Failed to register h2w\n", __func__); + return -ENOMEM; + } msm8x16_wcd_priv->mclk_enabled = false; msm8x16_wcd_priv->clock_active = false; diff --git a/sound/soc/codecs/wcd-mbhc-v2.c b/sound/soc/codecs/wcd-mbhc-v2.c index e24ee3b71b2aa..aa7772070033c 100644 --- a/sound/soc/codecs/wcd-mbhc-v2.c +++ b/sound/soc/codecs/wcd-mbhc-v2.c @@ -1,4 +1,5 @@ /* Copyright (c) 2015-2017, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -67,6 +68,11 @@ enum wcd_mbhc_cs_mb_en_flag { WCD_MBHC_EN_NONE, }; + +#ifdef CONFIG_C3B_BQ2560X +static int wt_correct_accessory_type; +#endif + static void wcd_mbhc_jack_report(struct wcd_mbhc *mbhc, struct snd_soc_jack *jack, int status, int mask) { @@ -335,11 +341,15 @@ static int wcd_event_notify(struct notifier_block *self, unsigned long val, wcd_enable_curr_micbias(mbhc, WCD_MBHC_EN_PULLUP); else /* enable current source and disable mb, pullup*/ - wcd_enable_curr_micbias(mbhc, WCD_MBHC_EN_CS); + wcd_enable_curr_micbias(mbhc, WCD_MBHC_EN_MB); +#if defined(CONFIG_C3N_SMB358) || defined(CONFIG_C3B_BQ2560X) + +#else /* configure cap settings properly when micbias is disabled */ if (mbhc->mbhc_cb->set_cap_mode) mbhc->mbhc_cb->set_cap_mode(codec, micbias1, false); +#endif break; case WCD_EVENT_PRE_HPHL_PA_OFF: mutex_lock(&mbhc->hphl_pa_lock); @@ -355,7 +365,7 @@ static int wcd_event_notify(struct notifier_block *self, unsigned long val, wcd_enable_curr_micbias(mbhc, WCD_MBHC_EN_MB); else /* Disable micbias, pullup & enable cs */ - wcd_enable_curr_micbias(mbhc, WCD_MBHC_EN_CS); + wcd_enable_curr_micbias(mbhc, WCD_MBHC_EN_MB); mutex_unlock(&mbhc->hphl_pa_lock); break; case WCD_EVENT_PRE_HPHR_PA_OFF: @@ -372,7 +382,7 @@ static int wcd_event_notify(struct notifier_block *self, unsigned long val, wcd_enable_curr_micbias(mbhc, WCD_MBHC_EN_MB); else /* Disable micbias, pullup & enable cs */ - wcd_enable_curr_micbias(mbhc, WCD_MBHC_EN_CS); + wcd_enable_curr_micbias(mbhc, WCD_MBHC_EN_MB); mutex_unlock(&mbhc->hphr_pa_lock); break; case WCD_EVENT_PRE_HPHL_PA_ON: @@ -558,8 +568,9 @@ static void wcd_mbhc_report_plug(struct wcd_mbhc *mbhc, int insertion, WCD_MBHC_RSC_ASSERT_LOCKED(mbhc); - pr_debug("%s: enter insertion %d hph_status %x\n", - __func__, insertion, mbhc->hph_status); + + printk("%s: enter insertion %d hph_status %x, jack_type %d, current_plug %u\n", + __func__, insertion, mbhc->hph_status, jack_type, mbhc->current_plug); if (!insertion) { /* Report removal */ mbhc->hph_status &= ~jack_type; @@ -600,7 +611,10 @@ static void wcd_mbhc_report_plug(struct wcd_mbhc *mbhc, int insertion, jack_type, mbhc->hph_status); wcd_mbhc_jack_report(mbhc, &mbhc->headset_jack, mbhc->hph_status, WCD_MBHC_JACK_MASK); + msm8x16_wcd_codec_set_headset_state(mbhc->hph_status); + #if 0 wcd_mbhc_set_and_turnoff_hph_padac(mbhc); + #endif hphrocp_off_report(mbhc, SND_JACK_OC_HPHR); hphlocp_off_report(mbhc, SND_JACK_OC_HPHL); mbhc->current_plug = MBHC_PLUG_TYPE_NONE; @@ -716,6 +730,7 @@ static void wcd_mbhc_report_plug(struct wcd_mbhc *mbhc, int insertion, (mbhc->hph_status | SND_JACK_MECHANICAL), WCD_MBHC_JACK_MASK); wcd_mbhc_clr_and_turnon_hph_padac(mbhc); + msm8x16_wcd_codec_set_headset_state(mbhc->hph_status); } pr_debug("%s: leave hph_status %x\n", __func__, mbhc->hph_status); } @@ -812,7 +827,8 @@ static void wcd_mbhc_find_plug_and_report(struct wcd_mbhc *mbhc, bool anc_mic_found = false; enum snd_jack_types jack_type; - pr_debug("%s: enter current_plug(%d) new_plug(%d)\n", + + printk("%s: enter current_plug(%d) new_plug(%d)\n", __func__, mbhc->current_plug, plug_type); WCD_MBHC_RSC_ASSERT_LOCKED(mbhc); @@ -822,6 +838,10 @@ static void wcd_mbhc_find_plug_and_report(struct wcd_mbhc *mbhc, goto exit; } +#ifdef CONFIG_C3B_BQ2560X + wt_correct_accessory_type = false; +#endif + if (plug_type == MBHC_PLUG_TYPE_HEADPHONE) { /* * Nothing was reported previously @@ -834,7 +854,35 @@ static void wcd_mbhc_find_plug_and_report(struct wcd_mbhc *mbhc, SND_JACK_HEADPHONE); if (mbhc->current_plug == MBHC_PLUG_TYPE_HEADSET) wcd_mbhc_report_plug(mbhc, 0, SND_JACK_HEADSET); + + #ifndef CONFIG_C3B_BQ2560X wcd_mbhc_report_plug(mbhc, 1, SND_JACK_UNSUPPORTED); + #else + /* + * calculate impedance detection + * If Zl and Zr > 20k then it is special accessory + * otherwise unsupported cable. + */ + if (mbhc->impedance_detect) { + mbhc->mbhc_cb->compute_impedance(mbhc, + &mbhc->zl, &mbhc->zr); + pr_err("%s: RL %d ohm, RR %d ohm\n", __func__, mbhc->zl, mbhc->zr); + if ((mbhc->zl > 20000) && (mbhc->zr > 20000)) { + pr_debug("%s: special accessory \n", __func__); + /* Toggle switch back */ + if (mbhc->mbhc_cfg->swap_gnd_mic && + mbhc->mbhc_cfg->swap_gnd_mic(mbhc->codec)) { + pr_debug("%s: US_EU gpio present,flip switch again\n" + , __func__); + } + wcd_mbhc_report_plug(mbhc, 1, SND_JACK_HEADSET); + wt_correct_accessory_type = true; + } else { + wcd_mbhc_report_plug(mbhc, 1, SND_JACK_UNSUPPORTED); + } + } + #endif + } else if (plug_type == MBHC_PLUG_TYPE_HEADSET) { if (mbhc->mbhc_cfg->enable_anc_mic_detect) anc_mic_found = wcd_mbhc_detect_anc_plug_type(mbhc); @@ -852,7 +900,8 @@ static void wcd_mbhc_find_plug_and_report(struct wcd_mbhc *mbhc, if (mbhc->mbhc_cfg->detect_extn_cable) { /* High impedance device found. Report as LINEOUT */ wcd_mbhc_report_plug(mbhc, 1, SND_JACK_LINEOUT); - pr_debug("%s: setup mic trigger for further detection\n", + + printk("%s: setup mic trigger for further detection\n", __func__); /* Disable HW FSM and current source */ @@ -1079,9 +1128,9 @@ static void wcd_enable_mbhc_supply(struct wcd_mbhc *mbhc, WCD_MBHC_EN_PULLUP); else wcd_enable_curr_micbias(mbhc, - WCD_MBHC_EN_CS); + WCD_MBHC_EN_MB); } else if (plug_type == MBHC_PLUG_TYPE_HEADPHONE) { - wcd_enable_curr_micbias(mbhc, WCD_MBHC_EN_CS); + wcd_enable_curr_micbias(mbhc, WCD_MBHC_EN_MB); } else { wcd_enable_curr_micbias(mbhc, WCD_MBHC_EN_NONE); } @@ -1196,6 +1245,7 @@ static void wcd_correct_swch_plug(struct work_struct *work) plug_type = MBHC_PLUG_TYPE_INVALID; } + printk("%s button check: plug_type %d\n", __func__, plug_type); do { cross_conn = wcd_check_cross_conn(mbhc); try++; @@ -1208,7 +1258,8 @@ static void wcd_correct_swch_plug(struct work_struct *work) pr_debug("%s: cross con found, start polling\n", __func__); plug_type = MBHC_PLUG_TYPE_GND_MIC_SWAP; - pr_debug("%s: Plug found, plug type is %d\n", + + printk("%s cross_conn check: Plug found, plug type is %d\n", __func__, plug_type); goto correct_plug_type; } @@ -1306,7 +1357,8 @@ static void wcd_correct_swch_plug(struct work_struct *work) * This is due to GND/MIC switch didn't * work, Report unsupported plug. */ - pr_debug("%s: switch didnt work\n", + + printk("%s cross_conn check: switch didnt work\n", __func__); plug_type = MBHC_PLUG_TYPE_GND_MIC_SWAP; goto report; @@ -1333,7 +1385,8 @@ static void wcd_correct_swch_plug(struct work_struct *work) */ if (mbhc->mbhc_cfg->swap_gnd_mic && mbhc->mbhc_cfg->swap_gnd_mic(codec)) { - pr_debug("%s: US_EU gpio present,flip switch\n" + + printk("%s cross_conn check: US_EU gpio present,flip switch\n" , __func__); continue; } @@ -1343,12 +1396,16 @@ static void wcd_correct_swch_plug(struct work_struct *work) WCD_MBHC_REG_READ(WCD_MBHC_HPHL_SCHMT_RESULT, hphl_sch); WCD_MBHC_REG_READ(WCD_MBHC_MIC_SCHMT_RESULT, mic_sch); if (hs_comp_res && !(hphl_sch || mic_sch)) { - pr_debug("%s: cable is extension cable\n", __func__); + + printk("%s: cable is extension cable\n", __func__); plug_type = MBHC_PLUG_TYPE_HIGH_HPH; wrk_complete = true; } else { pr_debug("%s: cable might be headset: %d\n", __func__, plug_type); + + printk("%s: hs_comp_res %u, hphl_sch %u, mic_sch %u\n", + __func__, hs_comp_res, hphl_sch, mic_sch); if (!(plug_type == MBHC_PLUG_TYPE_GND_MIC_SWAP)) { plug_type = MBHC_PLUG_TYPE_HEADSET; /* @@ -1362,7 +1419,8 @@ static void wcd_correct_swch_plug(struct work_struct *work) MBHC_PLUG_TYPE_ANC_HEADPHONE)) && !wcd_swch_level_remove(mbhc) && !mbhc->btn_press_intr) { - pr_debug("%s: cable is %sheadset\n", + + printk("%s: cable is %sheadset\n", __func__, ((spl_hs_count == WCD_MBHC_SPL_HS_CNT) ? @@ -1414,6 +1472,14 @@ static void wcd_correct_swch_plug(struct work_struct *work) mbhc->btn_press_intr); WCD_MBHC_RSC_LOCK(mbhc); wcd_mbhc_find_plug_and_report(mbhc, plug_type); + + #ifdef CONFIG_C3B_BQ2560X + if (wt_correct_accessory_type == true) { + plug_type = MBHC_PLUG_TYPE_HEADSET; + wt_correct_accessory_type = false; + } + #endif + WCD_MBHC_RSC_UNLOCK(mbhc); enable_supply: if (mbhc->mbhc_cb->mbhc_micbias_control) @@ -1440,8 +1506,17 @@ static void wcd_correct_swch_plug(struct work_struct *work) wcd_mbhc_hs_elec_irq(mbhc, WCD_MBHC_ELEC_HS_REM, true); WCD_MBHC_RSC_UNLOCK(mbhc); } - if (mbhc->mbhc_cb->set_cap_mode) + if (mbhc->mbhc_cb->set_cap_mode) { +#if defined(CONFIG_C3N_SMB358) || defined(CONFIG_C3B_BQ2560X) + + /*bug 225893 ,20161111,add,headset button erro*/ + if (plug_type == MBHC_PLUG_TYPE_HEADSET) { + mbhc->mbhc_cb->set_cap_mode(codec, micbias1, true); + pr_debug("%s:set_cap_mode micbias1=%d, micbias2 = %d==>true , MBHC_PLUG_TYPE_HEADSET\n", __func__, micbias1, micbias2); + } else +#endif mbhc->mbhc_cb->set_cap_mode(codec, micbias1, micbias2); + } if (mbhc->mbhc_cb->hph_pull_down_ctrl) mbhc->mbhc_cb->hph_pull_down_ctrl(codec, true); @@ -1503,7 +1578,8 @@ static void wcd_mbhc_swch_irq_handler(struct wcd_mbhc *mbhc) WCD_MBHC_REG_UPDATE_BITS(WCD_MBHC_MECH_DETECTION_TYPE, !detection_type); - pr_debug("%s: mbhc->current_plug: %d detection_type: %d\n", __func__, + + printk("%s: mbhc->current_plug: %d detection_type: %d\n", __func__, mbhc->current_plug, detection_type); wcd_cancel_hs_detect_plug(mbhc, &mbhc->correct_plug_swch); @@ -1883,6 +1959,8 @@ static void wcd_btn_lpress_fn(struct work_struct *work) mbhc = container_of(dwork, struct wcd_mbhc, mbhc_btn_dwork); WCD_MBHC_REG_READ(WCD_MBHC_BTN_RESULT, btn_result); + + printk("%s: current_plug %d, long button press %x\n", __func__, mbhc->current_plug, mbhc->buttons_pressed); if (mbhc->current_plug == MBHC_PLUG_TYPE_HEADSET) { pr_debug("%s: Reporting long button press event, btn_result: %d\n", __func__, btn_result); @@ -1923,7 +2001,8 @@ static irqreturn_t wcd_mbhc_btn_press_handler(int irq, void *data) int mask; unsigned long msec_val; - pr_debug("%s: enter\n", __func__); + + printk("%s: enter, current_plug %d\n", __func__, mbhc->current_plug); complete(&mbhc->btn_press_compl); WCD_MBHC_RSC_LOCK(mbhc); wcd_cancel_btn_work(mbhc); @@ -1973,7 +2052,8 @@ static irqreturn_t wcd_mbhc_release_handler(int irq, void *data) struct wcd_mbhc *mbhc = data; int ret; - pr_debug("%s: enter\n", __func__); + + printk("%s: enter, current_plug %d\n", __func__, mbhc->current_plug); WCD_MBHC_RSC_LOCK(mbhc); if (wcd_swch_level_remove(mbhc)) { pr_debug("%s: Switch level is low ", __func__); @@ -2000,8 +2080,9 @@ static irqreturn_t wcd_mbhc_release_handler(int irq, void *data) if (mbhc->buttons_pressed & WCD_MBHC_JACK_BUTTON_MASK) { ret = wcd_cancel_btn_work(mbhc); if (ret == 0) { - pr_debug("%s: Reporting long button release event\n", - __func__); + + printk("%s: Reporting long button release event %x\n", + __func__, mbhc->buttons_pressed); wcd_mbhc_jack_report(mbhc, &mbhc->button_jack, 0, mbhc->buttons_pressed); } else { @@ -2009,6 +2090,8 @@ static irqreturn_t wcd_mbhc_release_handler(int irq, void *data) pr_debug("%s: Switch irq kicked in, ignore\n", __func__); } else { + + printk("%s: reporting btn press and release %x\n", __func__, mbhc->buttons_pressed); pr_debug("%s: Reporting btn press\n", __func__); wcd_mbhc_jack_report(mbhc, diff --git a/sound/soc/codecs/wcd-mbhc-v2.h b/sound/soc/codecs/wcd-mbhc-v2.h index bc48cbff45769..dce5b26f6ba44 100644 --- a/sound/soc/codecs/wcd-mbhc-v2.h +++ b/sound/soc/codecs/wcd-mbhc-v2.h @@ -527,3 +527,4 @@ static inline void wcd_mbhc_deinit(struct wcd_mbhc *mbhc) #endif #endif /* __WCD_MBHC_V2_H__ */ +extern void msm8x16_wcd_codec_set_headset_state(u32 state); diff --git a/sound/soc/msm/AW87319_Audio_M.c b/sound/soc/msm/AW87319_Audio_M.c new file mode 100644 index 0000000000000..f6e24e29cd0b1 --- /dev/null +++ b/sound/soc/msm/AW87319_Audio_M.c @@ -0,0 +1,454 @@ +/************************************************************************** +* AW87319_Audio.c +* +* Create Date : +* +* Modify Date : +* +* Create by : AWINIC Technology CO., LTD +* +* Version : 0.9, 2016/02/15 +**************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#define AW87319_I2C_NAME "AW87319_PA" +#define AW87319_I2C_BUS 0 +#define AW87319_I2C_ADDR 0x58 + +unsigned char AW87319_Audio_Reciver(void); +unsigned char AW87319_Audio_Speaker(void); +unsigned char AW87319_Audio_OFF(void); + + +unsigned char aw87319_hw_on(void); +unsigned char aw87319_hw_off(void); +unsigned char aw87319_sw_on(void); +unsigned char aw87319_sw_off(void); + +static ssize_t aw87319_get_reg(struct device *cd, struct device_attribute *attr, char *buf); +static ssize_t aw87319_set_reg(struct device *cd, struct device_attribute *attr, const char *buf, size_t len); +static ssize_t aw87319_set_swen(struct device *cd, struct device_attribute *attr, const char *buf, size_t len); +static ssize_t aw87319_get_swen(struct device *cd, struct device_attribute *attr, char *buf); +static ssize_t aw87319_set_hwen(struct device *cd, struct device_attribute *attr, const char *buf, size_t len); +static ssize_t aw87319_get_hwen(struct device *cd, struct device_attribute *attr, char *buf); + +static DEVICE_ATTR(reg, 0660, aw87319_get_reg, aw87319_set_reg); +static DEVICE_ATTR(swen, 0660, aw87319_get_swen, aw87319_set_swen); +static DEVICE_ATTR(hwen, 0660, aw87319_get_hwen, aw87319_set_hwen); + +struct i2c_client *aw87319_pa_client; +int aw87319_rst; +struct pinctrl *aw87319ctrl = NULL; +struct pinctrl_state *aw87319_rst_high = NULL; +struct pinctrl_state *aw87319_rst_low = NULL; + + + + + + +char Spk_Pa_Flag[] = " "; + +static void aw87319_pa_pwron(void) +{ + pr_debug("%s enter\n", __func__); + gpio_direction_output(aw87319_rst, false); + msleep(1); + gpio_direction_output(aw87319_rst, true); + msleep(10); +} + +static void aw87319_pa_pwroff(void) +{ + pr_debug("%s enter\n", __func__); + gpio_direction_output(aw87319_rst, false); + msleep(1); +} + + + + + +unsigned char I2C_write_reg(unsigned char addr, unsigned char reg_data) +{ + char ret; + u8 wdbuf[512] = {0}; + + struct i2c_msg msgs[] = { + { + .addr = aw87319_pa_client->addr, + .flags = 0, + .len = 2, + .buf = wdbuf, + }, + }; + + wdbuf[0] = addr; + wdbuf[1] = reg_data; + + if (NULL == aw87319_pa_client) { + pr_err("msg %s aw87319_pa_client is NULL\n", __func__); + return -EPERM; + } + + ret = i2c_transfer(aw87319_pa_client->adapter, msgs, 1); + if (ret < 0) + pr_err("msg %s i2c read error: %d\n", __func__, ret); + + return ret; +} + +unsigned char I2C_read_reg(unsigned char addr) +{ + unsigned char ret; + u8 rdbuf[512] = {0}; + + struct i2c_msg msgs[] = { + { + .addr = aw87319_pa_client->addr, + .flags = 0, + .len = 1, + .buf = rdbuf, + }, + { + .addr = aw87319_pa_client->addr, + .flags = I2C_M_RD, + .len = 1, + .buf = rdbuf, + }, + }; + + rdbuf[0] = addr; + + if (NULL == aw87319_pa_client) { + pr_err("msg %s aw87319_pa_client is NULL\n", __func__); + return -EPERM; + } + + ret = i2c_transfer(aw87319_pa_client->adapter, msgs, 2); + if (ret < 0) + pr_err("msg %s i2c read error: %d\n", __func__, ret); + + return rdbuf[0]; +} + + + + + +unsigned char AW87319_Audio_Reciver(void) +{ + aw87319_hw_on(); + + I2C_write_reg(0x05, 0x03); + + I2C_write_reg(0x01, 0x02); + I2C_write_reg(0x01, 0x06); + + return 0; +} + +unsigned char AW87319_Audio_Speaker(void) +{ + aw87319_hw_on(); + + I2C_write_reg(0x02, 0x28); + I2C_write_reg(0x03, 0x05); + I2C_write_reg(0x04, 0x04); + I2C_write_reg(0x05, 0x0D); + #if defined CONFIG_D1_ROSY + I2C_write_reg(0x06, 0x05); + #else + I2C_write_reg(0x06, 0x03); + #endif + I2C_write_reg(0x07, 0x52); + I2C_write_reg(0x08, 0x28); + I2C_write_reg(0x09, 0x02); + + I2C_write_reg(0x01, 0x03); + I2C_write_reg(0x01, 0x07); + + return 0; +} + + +unsigned char AW87319_Audio_OFF(void) +{ + I2C_write_reg(0x01, 0x00); + aw87319_hw_off(); + + return 0; +} + + + + +unsigned char aw87319_sw_on(void) +{ + unsigned char reg; + reg = I2C_read_reg(0x01); + reg |= 0x04; + I2C_write_reg(0x01, reg); + + return 0; +} + +unsigned char aw87319_sw_off(void) +{ + unsigned char reg; + reg = I2C_read_reg(0x01); + reg &= 0xFB; + I2C_write_reg(0x01, reg); + + return 0; +} + +unsigned char aw87319_hw_on(void) +{ + aw87319_pa_pwron(); + I2C_write_reg(0x64, 0x2C); + + return 0; +} + +unsigned char aw87319_hw_off(void) +{ + aw87319_pa_pwroff(); + + return 0; +} + + + +static ssize_t aw87319_get_reg(struct device *cd, struct device_attribute *attr, char *buf) +{ + unsigned char reg_val; + ssize_t len = 0; + u8 i; + for (i = 0; i < 0x10; i++) { + reg_val = I2C_read_reg(i); + len += snprintf(buf+len, PAGE_SIZE-len, "reg%2X = 0x%2X, ", i, reg_val); + } + + return len; +} + +static ssize_t aw87319_set_reg(struct device *cd, struct device_attribute *attr, const char *buf, size_t len) +{ + unsigned int databuf[2]; + if (2 == sscanf(buf, "%x %x", &databuf[0], &databuf[1])) { + I2C_write_reg(databuf[0], databuf[1]); + } + return len; +} + +static ssize_t aw87319_get_swen(struct device *cd, struct device_attribute *attr, char *buf) +{ + ssize_t len = 0; + len += snprintf(buf+len, PAGE_SIZE-len, "aw87319_sw_on(void)\n"); + len += snprintf(buf+len, PAGE_SIZE-len, "echo 1 > swen\n"); + len += snprintf(buf+len, PAGE_SIZE-len, "\n"); + len += snprintf(buf+len, PAGE_SIZE-len, "aw87319_sw_off(void)\n"); + len += snprintf(buf+len, PAGE_SIZE-len, "echo 0 > swen\n"); + len += snprintf(buf+len, PAGE_SIZE-len, "\n"); + + return len; +} + +static ssize_t aw87319_set_swen(struct device *cd, struct device_attribute *attr, const char *buf, size_t len) +{ + unsigned int databuf[16]; + + sscanf(buf, "%d", &databuf[0]); + if (databuf[0] == 0) { + aw87319_sw_off(); + } else { + aw87319_sw_on(); + } + + return len; +} + +static ssize_t aw87319_get_hwen(struct device *cd, struct device_attribute *attr, char *buf) +{ + ssize_t len = 0; + len += snprintf(buf+len, PAGE_SIZE-len, "aw87319_hw_on(void)\n"); + len += snprintf(buf+len, PAGE_SIZE-len, "echo 1 > hwen\n"); + len += snprintf(buf+len, PAGE_SIZE-len, "\n"); + len += snprintf(buf+len, PAGE_SIZE-len, "aw87319_hw_off(void)\n"); + len += snprintf(buf+len, PAGE_SIZE-len, "echo 0 > hwen\n"); + len += snprintf(buf+len, PAGE_SIZE-len, "\n"); + + return len; +} + +static ssize_t aw87319_set_hwen(struct device *cd, struct device_attribute *attr, const char *buf, size_t len) +{ + unsigned int databuf[16]; + + sscanf(buf, "%d", &databuf[0]); + if (databuf[0] == 0) { + aw87319_hw_off(); + } else { + aw87319_hw_on(); + } + + return len; +} + + +static int aw87319_create_sysfs(struct i2c_client *client) +{ + int err; + struct device *dev = &(client->dev); + + err = device_create_file(dev, &dev_attr_reg); + err = device_create_file(dev, &dev_attr_swen); + err = device_create_file(dev, &dev_attr_hwen); + return err; +} + + + + + +static int aw87319_i2c_probe(struct i2c_client *client, const struct i2c_device_id *id) +{ + unsigned char reg_value; + unsigned char cnt = 5; + int err = 0; + + pr_debug("%s Enter\n", __func__); + + if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { + err = -ENODEV; + goto exit_check_functionality_failed; + } + + + aw87319_rst = of_get_named_gpio(client->dev.of_node, "qcom,ext_pa_spk_aw87319_rst", 0); + if (aw87319_rst < 0) { + err = -ENODEV; + goto exit_gpio_get_failed; + } + if (gpio_request_one(aw87319_rst, GPIOF_DIR_OUT , "spk_enable")) { + pr_err("%s: request spk_pa_gpio fail!\n", __func__); + goto exit_gpio_request_failed; + } + + pr_debug("%s: aw87319_rst = %d \n", __func__, aw87319_rst); + aw87319_pa_client = client; + + aw87319_hw_on(); + msleep(10); + + while (cnt > 0) { + I2C_write_reg(0x64, 0x2C); + reg_value = I2C_read_reg(0x00); + printk("AW87319 CHIPID=0x%2x\n", reg_value); + if (reg_value == 0x9B) { + break; + } + cnt--; + msleep(10); + } + if (!cnt) { + err = -ENODEV; + aw87319_hw_off(); + strncpy(Spk_Pa_Flag, "S88537A12", 9); + pr_err("%s:can not find AW87319, board is S88537A12\n!", __func__); + goto exit_create_singlethread; + } + + aw87319_create_sysfs(client); + + aw87319_hw_off(); + + return 0; + +exit_create_singlethread: + aw87319_pa_client = NULL; +exit_gpio_request_failed: + gpio_free(aw87319_rst); +exit_gpio_get_failed: +exit_check_functionality_failed: + return err; +} + +static int aw87319_i2c_remove(struct i2c_client *client) +{ + aw87319_pa_client = NULL; + return 0; +} + +static const struct i2c_device_id aw87319_i2c_id[] = { + { AW87319_I2C_NAME, 0 }, + { } +}; + + +static const struct of_device_id extpa_of_match[] = { + {.compatible = "awinic,aw87319_pa"}, + {}, +}; + +static struct i2c_driver aw87319_i2c_driver = { + .driver = { + .owner = THIS_MODULE, + .name = AW87319_I2C_NAME, + .of_match_table = extpa_of_match, +}, + .probe = aw87319_i2c_probe, + .remove = aw87319_i2c_remove, + .id_table = aw87319_i2c_id, +}; + +static int __init aw87319_pa_init(void) +{ + int ret; + printk("%s Enter\n", __func__); + + ret = i2c_add_driver(&aw87319_i2c_driver); + if (ret) { + printk("****[%s] Unable to register driver (%d)\n", __func__, ret); + return ret; + } + return 0; +} + +static void __exit aw87319_pa_exit(void) +{ + printk("%s Enter\n", __func__); + i2c_del_driver(&aw87319_i2c_driver); +} + + +subsys_initcall(aw87319_pa_init); +module_exit(aw87319_pa_exit); + +MODULE_AUTHOR(""); +MODULE_DESCRIPTION("AWINIC AW87319 PA driver"); +MODULE_LICENSE("GPL"); + diff --git a/sound/soc/msm/Kconfig b/sound/soc/msm/Kconfig index 640b926861337..c0de03f346a18 100644 --- a/sound/soc/msm/Kconfig +++ b/sound/soc/msm/Kconfig @@ -250,6 +250,9 @@ config SND_SOC_MSM8909 the machine drivers and the corresponding DAI-links. +config SND_SOC_AW87319 + tristate "Build AWINIC AW87319 ASoc Speaker PA" + config SND_SOC_MDM9640 tristate "SoC Machine driver for MDM9640 boards" depends on ARCH_MDM9640 diff --git a/sound/soc/msm/Makefile b/sound/soc/msm/Makefile index 163f985fbb044..afa2435144fe4 100644 --- a/sound/soc/msm/Makefile +++ b/sound/soc/msm/Makefile @@ -41,6 +41,9 @@ obj-$(CONFIG_SND_SOC_MDM9607) += snd-soc-mdm9607.o snd-soc-msm8909-objs := msm8952.o msm-audio-pinctrl.o obj-$(CONFIG_SND_SOC_MSM8909) += snd-soc-msm8909.o +#for AW87319 sound Speaker PA +obj-$(CONFIG_SND_SOC_AW87319) += AW87319_Audio_M.o + # for MDM9640 sound card driver snd-soc-mdm9640-objs := mdm9640.o obj-$(CONFIG_SND_SOC_MDM9640) += snd-soc-mdm9640.o \ No newline at end of file diff --git a/sound/soc/msm/msm8952.c b/sound/soc/msm/msm8952.c index 5caf6075a6486..dce8368df463c 100644 --- a/sound/soc/msm/msm8952.c +++ b/sound/soc/msm/msm8952.c @@ -1,4 +1,5 @@ /* Copyright (c) 2015-2016, The Linux Foundation. All rights reserved. + * Copyright (C) 2018 XiaoMi, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -25,6 +26,7 @@ #include #include #include +#include #include #include "qdsp6v2/msm-pcm-routing-v2.h" #include "msm-audio-pinctrl.h" @@ -47,11 +49,26 @@ #define QUIN_MI2S_ID (1 << 4) #define DEFAULT_MCLK_RATE 9600000 - +#if defined(CONFIG_C3N_SMB358) +#define AW8736_MODE 5 +#elif defined(CONFIG_C3B_BQ2560X) +#define AW8736_MODE 3 +#else +#define AW8738_MODE 5 +#endif #define WCD_MBHC_DEF_RLOADS 5 #define MAX_WSA_CODEC_NAME_LENGTH 80 #define MSM_DT_MAX_PROP_SIZE 80 +#define EXT_CLASS_D_EN_DELAY 13000 +#define EXT_CLASS_D_DIS_DELAY 3000 +#define EXT_CLASS_D_DELAY_DELTA 2000 + +#if defined(CONFIG_C3N_SMB358) || defined(CONFIG_C3B_BQ2560X) || defined(CONFIG_D1_ROSY) +#else +#define A13_AW87319_SPK_PA 1 +#define A12_AW8738_SPK_PA 2 +#endif enum btsco_rates { RATE_8KHZ_ID, RATE_16KHZ_ID, @@ -72,6 +89,17 @@ static atomic_t quat_mi2s_clk_ref; static atomic_t quin_mi2s_clk_ref; static atomic_t auxpcm_mi2s_clk_ref; +static int headset_gpio; +static int spk_pa_gpio; +#if defined(CONFIG_C3N_SMB358) || defined(CONFIG_C3B_BQ2560X) || defined(CONFIG_D1_ROSY) +#else +static int Spk_Pa_Id; + +static struct delayed_work lineout_amp_enable; +static struct delayed_work lineout_amp_dualmode; +static struct delayed_work lineout_hs_sw_enable; +#endif + static int msm8952_enable_dig_cdc_clk(struct snd_soc_codec *codec, int enable, bool dapm); static bool msm8952_swap_gnd_mic(struct snd_soc_codec *codec); @@ -80,6 +108,10 @@ static int msm8952_mclk_event(struct snd_soc_dapm_widget *w, static int msm8952_wsa_switch_event(struct snd_soc_dapm_widget *w, struct snd_kcontrol *kcontrol, int event); +#if defined (CONFIG_D1_ROSY) +extern unsigned char AW87319_Audio_Speaker(void); +extern unsigned char AW87319_Audio_OFF(void); +#endif /* * Android L spec * Need to report LINEIN @@ -93,9 +125,9 @@ static struct wcd_mbhc_config mbhc_cfg = { .swap_gnd_mic = NULL, .hs_ext_micbias = false, .key_code[0] = KEY_MEDIA, - .key_code[1] = KEY_VOICECOMMAND, - .key_code[2] = KEY_VOLUMEUP, - .key_code[3] = KEY_VOLUMEDOWN, + .key_code[1] = KEY_PREVIOUSSONG_NEW, + .key_code[2] = KEY_NEXTSONG_NEW, + .key_code[3] = KEY_VOICECOMMAND, .key_code[4] = 0, .key_code[5] = 0, .key_code[6] = 0, @@ -168,6 +200,11 @@ static const char *const btsco_rate_text[] = {"BTSCO_RATE_8KHZ", static const char *const proxy_rx_ch_text[] = {"One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight"}; static const char *const vi_feed_ch_text[] = {"One", "Two"}; +static const char *const lineout_text[] = {"DISABLE", "ENABLE", "DUALMODE"}; +#if defined(CONFIG_D1_ROSY) +#else +static const char *const hs_amp_text[] = {"DISABLE", "ENABLE"}; +#endif static char const *mi2s_rx_sample_rate_text[] = {"KHZ_48", "KHZ_96", "KHZ_192"}; @@ -254,6 +291,11 @@ int is_ext_spk_gpio_support(struct platform_device *pdev, pr_err("%s: Invalid external speaker gpio: %d", __func__, pdata->spk_ext_pa_gpio); return -EINVAL; + + #ifdef CONFIG_C3B_BQ2560X + if (gpio_request_one(pdata->spk_ext_pa_gpio, GPIOF_DIR_OUT , "spk_enable")) + dev_err(&pdev->dev, "%s: request spk_ext_pa_gpio fail!\n", __func__); + #endif } } return 0; @@ -261,6 +303,8 @@ int is_ext_spk_gpio_support(struct platform_device *pdev, static int enable_spk_ext_pa(struct snd_soc_codec *codec, int enable) { + #if defined(CONFIG_D1_ROSY) + #else struct snd_soc_card *card = codec->component.card; struct msm8916_asoc_mach_data *pdata = snd_soc_card_get_drvdata(card); int ret; @@ -270,11 +314,21 @@ static int enable_spk_ext_pa(struct snd_soc_codec *codec, int enable) pdata->spk_ext_pa_gpio); return false; } - + #endif pr_debug("%s: %s external speaker PA\n", __func__, enable ? "Enable" : "Disable"); if (enable) { + + #ifdef CONFIG_C3B_BQ2560X + pr_debug("%s spk pa mode %d\n", __func__, AW8736_MODE); + for (ret = 0; ret < AW8736_MODE; ret++) { + gpio_direction_output(pdata->spk_ext_pa_gpio, false); + gpio_direction_output(pdata->spk_ext_pa_gpio, true); + } + #elif defined(CONFIG_D1_ROSY) + AW87319_Audio_Speaker(); + #else ret = msm_gpioset_activate(CLIENT_WCD_INT, "ext_spk_gpio"); if (ret) { pr_err("%s: gpio set cannot be de-activated %s\n", @@ -282,7 +336,17 @@ static int enable_spk_ext_pa(struct snd_soc_codec *codec, int enable) return ret; } gpio_set_value_cansleep(pdata->spk_ext_pa_gpio, enable); + #endif } else { + + #ifdef CONFIG_C3B_BQ2560X + gpio_direction_output(pdata->spk_ext_pa_gpio, false); + /* time takes disable the external power amplifier */ + usleep_range(EXT_CLASS_D_DIS_DELAY, + EXT_CLASS_D_DIS_DELAY + EXT_CLASS_D_DELAY_DELTA); + #elif defined(CONFIG_D1_ROSY) + AW87319_Audio_OFF(); + #else gpio_set_value_cansleep(pdata->spk_ext_pa_gpio, enable); ret = msm_gpioset_suspend(CLIENT_WCD_INT, "ext_spk_gpio"); if (ret) { @@ -290,6 +354,7 @@ static int enable_spk_ext_pa(struct snd_soc_codec *codec, int enable) __func__, "ext_spk_gpio"); return ret; } + #endif } return 0; } @@ -715,6 +780,217 @@ static int msm8952_enable_dig_cdc_clk(struct snd_soc_codec *codec, return ret; } +#if defined(CONFIG_C3N_SMB358) || defined(CONFIG_C3B_BQ2560X) +static void msm8952_ext_hs_control(u32 enable) +{ + gpio_direction_output(headset_gpio, enable); + pr_err("%s: %s [hjf] headset 111PAs.\n", __func__, + enable ? "Enable" : "Disable"); +} +static void msm8952_ext_spk_control(u32 enable) +{ + int i = 0; + + if (enable) { + /* Open external audio PA device */ + for (i = 0; i < AW8736_MODE; i++) { + gpio_direction_output(spk_pa_gpio, false); + gpio_direction_output(spk_pa_gpio, true); + } + usleep_range(EXT_CLASS_D_EN_DELAY, + EXT_CLASS_D_EN_DELAY + EXT_CLASS_D_DELAY_DELTA); + } else { + gpio_direction_output(spk_pa_gpio, false); + /* time takes disable the external power amplifier */ + usleep_range(EXT_CLASS_D_DIS_DELAY, + EXT_CLASS_D_DIS_DELAY + EXT_CLASS_D_DELAY_DELTA); + } + + pr_err("%s: %s [hjf] external speaker 222PAs.\n", __func__, + enable ? "Enable" : "Disable"); +} +static void msm8x16_ext_spk_delayed_dualmode(u32 enable) +{ + int i = 0; + + /* Open the headset device */ + gpio_direction_output(headset_gpio, true); + usleep_range(EXT_CLASS_D_EN_DELAY, + EXT_CLASS_D_EN_DELAY + EXT_CLASS_D_DELAY_DELTA); + + for (i = 0; i < AW8736_MODE; i++) { + gpio_direction_output(spk_pa_gpio, false); + gpio_direction_output(spk_pa_gpio, true); + } + usleep_range(EXT_CLASS_D_EN_DELAY, + EXT_CLASS_D_EN_DELAY + EXT_CLASS_D_DELAY_DELTA); + + pr_debug("%s: Enable external speaker PAs dualmode.\n", __func__); +} +#elif defined(CONFIG_D1_ROSY) +static void msm8952_ext_spk_control(u32 enable) +{ + if (enable) { + AW87319_Audio_Speaker(); + } else { + AW87319_Audio_OFF(); + } + + pr_debug("%s: external speaker PAs %s.\n", __func__, enable ? "Enable" : "Disable"); +} +#else +static void msm8952_ext_hs_control(u32 enable) +{ + gpio_direction_output(headset_gpio, enable); + pr_err("%s: %s headset 111PAs.\n", __func__, + enable ? "Enable" : "Disable"); +} + +static void msm8952_ext_hs_delay_enable(struct work_struct *work) +{ + gpio_direction_output(headset_gpio, true); + pr_err("%s: headset 111PAs.\n", __func__); +} + +extern unsigned char AW87319_Audio_Speaker(void); +extern unsigned char AW87319_Audio_OFF(void); +static void AW8738_Audio_Ctl(bool enable) +{ + int i = 0; + if (enable) { + /* Open external audio PA device */ + for (i = 0; i < AW8738_MODE; i++) { + gpio_direction_output(spk_pa_gpio, false); + gpio_direction_output(spk_pa_gpio, true); + } + usleep_range(EXT_CLASS_D_EN_DELAY, + EXT_CLASS_D_EN_DELAY + EXT_CLASS_D_DELAY_DELTA); + } else { + /* Disable external audio PA device */ + gpio_direction_output(spk_pa_gpio, false); + usleep_range(EXT_CLASS_D_DIS_DELAY, + EXT_CLASS_D_DIS_DELAY + EXT_CLASS_D_DELAY_DELTA); + } + +} +static void msm8952_ext_spk_control(u32 enable) +{ + if (enable) { + /* Open external audio PA device */ + if (A13_AW87319_SPK_PA == Spk_Pa_Id) { + AW87319_Audio_Speaker(); + } else if (A12_AW8738_SPK_PA == Spk_Pa_Id) { + AW8738_Audio_Ctl(enable); + } + } else { + /* Disable external audio PA device */ + if (A13_AW87319_SPK_PA == Spk_Pa_Id) { + AW87319_Audio_OFF(); + } else if (A12_AW8738_SPK_PA == Spk_Pa_Id) { + AW8738_Audio_Ctl(enable); + } + } + pr_debug("%s: external speaker PAs %s.\n", __func__, enable ? "Enable" : "Disable"); +} + +static void msm8952_ext_spk__delayed_enable(struct work_struct *work) +{ + if (A13_AW87319_SPK_PA == Spk_Pa_Id) + AW87319_Audio_Speaker(); + else if (A12_AW8738_SPK_PA == Spk_Pa_Id) + AW8738_Audio_Ctl(true); + + pr_debug("%s: external speaker enable.\n", __func__); +} + +static void msm8x16_ext_spk_delayed_dualmode(struct work_struct *work) +{ + /* Open the headset device */ + gpio_direction_output(headset_gpio, true); + usleep_range(EXT_CLASS_D_EN_DELAY, EXT_CLASS_D_EN_DELAY + EXT_CLASS_D_DELAY_DELTA); + + /* Open the speaker device */ + if (A13_AW87319_SPK_PA == Spk_Pa_Id) + AW87319_Audio_Speaker(); + else if (A12_AW8738_SPK_PA == Spk_Pa_Id) + AW8738_Audio_Ctl(true); + + pr_debug("%s: Enable external speaker PAs dualmode.\n", __func__); +} +#endif +#if defined(CONFIG_D1_ROSY) +#else +static int headset_status_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) +{ + pr_debug("%s: get headset_status_get\n", __func__); + return 0; +} + +static int headset_status_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) +{ + int state = 0; + state = ucontrol->value.integer.value[0]; + pr_debug("%s: set external speaker PA mode:%d\n", __func__, state); + + switch (state) { + case 1: + #if defined(CONFIG_C3N_SMB358) || defined(CONFIG_C3B_BQ2560X) + msm8952_ext_hs_control(1); + #else + schedule_delayed_work(&lineout_hs_sw_enable, msecs_to_jiffies(50)); + #endif + break; + case 0: + msm8952_ext_hs_control(0); + break; + default: + pr_err("%s: Unexpected input value\n", __func__); + break; + } + return 0; +} +#endif +static int lineout_status_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) +{ + pr_debug("%s: get lineout_status_get\n", __func__); + return 0; +} +static int lineout_status_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) +{ + int state = 0; + state = ucontrol->value.integer.value[0]; + pr_debug("%s: external speaker PA mode:%d\n", __func__, state); + + switch (state) { + case 1: + #if defined(CONFIG_C3N_SMB358) || defined(CONFIG_C3B_BQ2560X) || defined(CONFIG_D1_ROSY) + msm8952_ext_spk_control(1); + #else + schedule_delayed_work(&lineout_amp_enable, msecs_to_jiffies(50)); + #endif + break; + case 0: + msm8952_ext_spk_control(0); + break; + case 2: + #if defined(CONFIG_C3N_SMB358) || defined(CONFIG_C3B_BQ2560X) + msm8x16_ext_spk_delayed_dualmode(1); + #elif defined(CONFIG_D1_ROSY) + msm8952_ext_spk_control(1); + #else + schedule_delayed_work(&lineout_amp_dualmode, msecs_to_jiffies(50)); + #endif + break; + default: + pr_err("%s: Unexpected input value\n", __func__); + break; + } + return 0; +} static int msm_btsco_rate_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { @@ -1001,6 +1277,11 @@ static const struct soc_enum msm_snd_enum[] = { vi_feed_ch_text), SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(mi2s_rx_sample_rate_text), mi2s_rx_sample_rate_text), + SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lineout_text), lineout_text), + #if defined(CONFIG_D1_ROSY) + #else + SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(hs_amp_text), hs_amp_text), + #endif }; static const struct snd_kcontrol_new msm_snd_controls[] = { @@ -1018,6 +1299,13 @@ static const struct snd_kcontrol_new msm_snd_controls[] = { msm_proxy_rx_ch_get, msm_proxy_rx_ch_put), SOC_ENUM_EXT("VI_FEED_TX Channels", msm_snd_enum[5], msm_vi_feed_tx_ch_get, msm_vi_feed_tx_ch_put), + SOC_ENUM_EXT("Lineout_1 amp", msm_snd_enum[7], + lineout_status_get, lineout_status_put), + #if defined(CONFIG_D1_ROSY) + #else + SOC_ENUM_EXT("headset amp", msm_snd_enum[8], + headset_status_get, headset_status_put), + #endif SOC_ENUM_EXT("MI2S_RX SampleRate", msm_snd_enum[6], mi2s_rx_sample_rate_get, mi2s_rx_sample_rate_put), }; @@ -1167,6 +1455,11 @@ static int msm_mi2s_snd_startup(struct snd_pcm_substream *substream) pr_debug("%s(): substream = %s stream = %d\n", __func__, substream->name, substream->stream); + if (!q6core_is_adsp_ready()) { + pr_err("%s(): adsp not ready\n", __func__); + return -EINVAL; + } + /* * configure the slave select to * invalid state for internal codec @@ -1257,6 +1550,11 @@ static int msm_prim_auxpcm_startup(struct snd_pcm_substream *substream) pr_debug("%s(): substream = %s\n", __func__, substream->name); + if (!q6core_is_adsp_ready()) { + pr_err("%s(): adsp not ready\n", __func__); + return -EINVAL; + } + /* mux config to route the AUX MI2S */ if (pdata->vaddr_gpio_mux_mic_ctl) { val = ioread32(pdata->vaddr_gpio_mux_mic_ctl); @@ -1323,6 +1621,12 @@ static int msm_sec_mi2s_snd_startup(struct snd_pcm_substream *substream) __func__); return 0; } + + if (!q6core_is_adsp_ready()) { + pr_err("%s(): adsp not ready\n", __func__); + return -EINVAL; + } + if ((pdata->ext_pa & SEC_MI2S_ID) == SEC_MI2S_ID) { if (pdata->vaddr_gpio_mux_spkr_ctl) { val = ioread32(pdata->vaddr_gpio_mux_spkr_ctl); @@ -1396,6 +1700,12 @@ static int msm_quat_mi2s_snd_startup(struct snd_pcm_substream *substream) pr_debug("%s(): substream = %s stream = %d\n", __func__, substream->name, substream->stream); + + if (!q6core_is_adsp_ready()) { + pr_err("%s(): adsp not ready\n", __func__); + return -EINVAL; + } + if (pdata->vaddr_gpio_mux_mic_ctl) { val = ioread32(pdata->vaddr_gpio_mux_mic_ctl); val = val | 0x02020002; @@ -1454,6 +1764,12 @@ static int msm_quin_mi2s_snd_startup(struct snd_pcm_substream *substream) pr_debug("%s(): substream = %s stream = %d\n", __func__, substream->name, substream->stream); + + if (!q6core_is_adsp_ready()) { + pr_err("%s(): adsp not ready\n", __func__); + return -EINVAL; + } + if (pdata->vaddr_gpio_mux_quin_ctl) { val = ioread32(pdata->vaddr_gpio_mux_quin_ctl); val = val | 0x00000001; @@ -1515,7 +1831,9 @@ static void *def_msm8952_wcd_mbhc_cal(void) return NULL; #define S(X, Y) ((WCD_MBHC_CAL_PLUG_TYPE_PTR(msm8952_wcd_cal)->X) = (Y)) - S(v_hs_max, 1500); +/*--- +bug 264424 ,zhanghao,modify,20170522,fix is can not identfiy headset --*/ +/*--- +bug 329872 ,yangrun,modify,20171229,fix the problem that delay identfiy headset --*/ + S(v_hs_max, 1700); #undef S #define S(X, Y) ((WCD_MBHC_CAL_BTN_DET_PTR(msm8952_wcd_cal)->X) = (Y)) S(num_btn, WCD_MBHC_DEF_BUTTONS); @@ -1538,19 +1856,38 @@ static void *def_msm8952_wcd_mbhc_cal(void) * 210-290 == Button 2 * 360-680 == Button 3 */ - btn_low[0] = 75; - btn_high[0] = 75; - btn_low[1] = 150; - btn_high[1] = 150; - btn_low[2] = 225; - btn_high[2] = 225; - btn_low[3] = 450; - btn_high[3] = 450; - btn_low[4] = 500; - btn_high[4] = 500; + + btn_low[0] = 25; + btn_high[0] = 75; + btn_low[1] = 200; + btn_high[1] = 225; + btn_low[2] = 325; + btn_high[2] = 450; + btn_low[3] = 500; + btn_high[3] = 510; + btn_low[4] = 530; + btn_high[4] = 540; + return msm8952_wcd_cal; } +#if defined(CONFIG_C3N_SMB358) || defined(CONFIG_C3B_BQ2560X) || defined(CONFIG_D1_ROSY) +#else +extern char Spk_Pa_Flag[]; + +static void Set_Spk_PA_Id(void) +{ + int ret = 0; + + ret = strncmp(Spk_Pa_Flag, "S88537A12", 9); + if (ret == 0) { + Spk_Pa_Id = A12_AW8738_SPK_PA; + } else{ + Spk_Pa_Id = A13_AW87319_SPK_PA; + } + pr_err("%s:Spk_Pa_Id =%d\n!", __func__, Spk_Pa_Id); +} +#endif static int msm_audrx_init(struct snd_soc_pcm_runtime *rtd) { @@ -1598,6 +1935,19 @@ static int msm_audrx_init(struct snd_soc_pcm_runtime *rtd) return ret; } } + +#if defined(CONFIG_C3N_SMB358) || defined(CONFIG_C3B_BQ2560X) || defined(CONFIG_D1_ROSY) +#else + INIT_DELAYED_WORK(&lineout_amp_enable, msm8952_ext_spk__delayed_enable); + + INIT_DELAYED_WORK(&lineout_amp_dualmode, msm8x16_ext_spk_delayed_dualmode); + + INIT_DELAYED_WORK(&lineout_hs_sw_enable, msm8952_ext_hs_delay_enable); + + /*Set Externl speaker PA Hardware ID*/ + Set_Spk_PA_Id(); +#endif + return 0; } @@ -2984,6 +3334,28 @@ static int msm8952_asoc_machine_probe(struct platform_device *pdev) } pdata->mclk_freq = id; + spk_pa_gpio = of_get_named_gpio(pdev->dev.of_node, "ext-spk-amp-gpio", 0); + if (spk_pa_gpio < 0) { + dev_err(&pdev->dev, + "%s: error! spk_pa_gpio is :%d\n", __func__, spk_pa_gpio); + } else { + if (gpio_request_one(spk_pa_gpio, GPIOF_DIR_OUT , "spk_enable")) { + dev_err(&pdev->dev, "%s: request spk_pa_gpio fail!\n", __func__); + } + } + pr_debug("%s: request spk_pa_gpio is %d!\n", __func__, spk_pa_gpio); + + headset_gpio = of_get_named_gpio(pdev->dev.of_node, "headset-gpio", 0); + if (headset_gpio < 0) { + dev_err(&pdev->dev, + "%s: error! headset_gpio is :%d\n", __func__, headset_gpio); + } else { + if (gpio_request_one(headset_gpio, GPIOF_DIR_OUT , "headset_enable")) { + dev_err(&pdev->dev, "%s: request headset_gpio fail!\n", __func__); + } + } + pr_debug("%s:request headset_gpio is %d!\n", __func__, headset_gpio); + /*reading the gpio configurations from dtsi file*/ ret = msm_gpioset_initialize(CLIENT_WCD_INT, &pdev->dev); if (ret < 0) { @@ -3201,6 +3573,12 @@ static int msm8952_asoc_machine_probe(struct platform_device *pdev) kfree(msm8952_codec_conf[i].name_prefix); } } + + if (spk_pa_gpio > 0) + gpio_free(spk_pa_gpio); + if (headset_gpio > 0) + gpio_free(headset_gpio); + err1: devm_kfree(&pdev->dev, pdata); return ret; diff --git a/sound/soc/msm/qdsp6v2/q6asm.c b/sound/soc/msm/qdsp6v2/q6asm.c index 07f0c473be9d5..9a0e64c7075f6 100644 --- a/sound/soc/msm/qdsp6v2/q6asm.c +++ b/sound/soc/msm/qdsp6v2/q6asm.c @@ -2931,6 +2931,15 @@ int q6asm_set_shared_circ_buff(struct audio_client *ac, int bytes_to_alloc, rc; size_t len; + mutex_lock(&ac->cmd_lock); + + if (ac->port[dir].buf) { + pr_err("%s: Buffer already allocated\n", __func__); + rc = -EINVAL; + mutex_unlock(&ac->cmd_lock); + goto done; + } + buf_circ = kzalloc(sizeof(struct audio_buffer), GFP_KERNEL); if (!buf_circ) { @@ -2938,9 +2947,7 @@ int q6asm_set_shared_circ_buff(struct audio_client *ac, goto done; } - mutex_lock(&ac->cmd_lock); - ac->port[dir].buf = buf_circ; bytes_to_alloc = bufsz * bufcnt; bytes_to_alloc = PAGE_ALIGN(bytes_to_alloc); @@ -2953,11 +2960,12 @@ int q6asm_set_shared_circ_buff(struct audio_client *ac, if (rc) { pr_err("%s: Audio ION alloc is failed, rc = %d\n", __func__, rc); - mutex_unlock(&ac->cmd_lock); kfree(buf_circ); + mutex_unlock(&ac->cmd_lock); goto done; } + ac->port[dir].buf = buf_circ; buf_circ->used = dir ^ 1; buf_circ->size = bytes_to_alloc; buf_circ->actual_size = bytes_to_alloc; @@ -3119,12 +3127,6 @@ int q6asm_open_shared_io(struct audio_client *ac, goto done; } - if (ac->port[dir].buf) { - pr_err("%s: Buffer already allocated\n", __func__); - rc = -EINVAL; - goto done; - } - rc = q6asm_set_shared_circ_buff(ac, open, bufsz, bufcnt, dir); if (rc) diff --git a/sound/soc/msm/qdsp6v2/rtac.c b/sound/soc/msm/qdsp6v2/rtac.c index 641a17bded648..22bed9249f2c4 100644 --- a/sound/soc/msm/qdsp6v2/rtac.c +++ b/sound/soc/msm/qdsp6v2/rtac.c @@ -883,6 +883,14 @@ int send_adm_apr(void *buf, u32 opcode) bytes_returned = ((u32 *)rtac_cal[ADM_RTAC_CAL].cal_data. kvaddr)[2] + 3 * sizeof(u32); + if (bytes_returned > rtac_cal[ADM_RTAC_CAL]. + map_data.map_size) { + pr_err("%s: Invalid data size = %d\n", + __func__, bytes_returned); + result = -EINVAL; + goto err; + } + if (bytes_returned > user_buf_size) { pr_err("%s: User buf not big enough, size = 0x%x, returned size = 0x%x\n", __func__, user_buf_size, bytes_returned); @@ -1105,6 +1113,14 @@ int send_rtac_asm_apr(void *buf, u32 opcode) bytes_returned = ((u32 *)rtac_cal[ASM_RTAC_CAL].cal_data. kvaddr)[2] + 3 * sizeof(u32); + if (bytes_returned > rtac_cal[ASM_RTAC_CAL]. + map_data.map_size) { + pr_err("%s: Invalid data size = %d\n", + __func__, bytes_returned); + result = -EINVAL; + goto err; + } + if (bytes_returned > user_buf_size) { pr_err("%s: User buf not big enough, size = 0x%x, returned size = 0x%x\n", __func__, user_buf_size, bytes_returned); @@ -1364,6 +1380,14 @@ static int send_rtac_afe_apr(void *buf, uint32_t opcode) bytes_returned = get_resp->param_size + sizeof(struct afe_port_param_data_v2); + if (bytes_returned > rtac_cal[AFE_RTAC_CAL]. + map_data.map_size) { + pr_err("%s: Invalid data size = %d\n", + __func__, bytes_returned); + result = -EINVAL; + goto err; + } + if (bytes_returned > user_afe_buf.buf_size) { pr_err("%s: user size = 0x%x, returned size = 0x%x\n", __func__, user_afe_buf.buf_size, @@ -1586,6 +1610,14 @@ int send_voice_apr(u32 mode, void *buf, u32 opcode) bytes_returned = ((u32 *)rtac_cal[VOICE_RTAC_CAL].cal_data. kvaddr)[2] + 3 * sizeof(u32); + if (bytes_returned > rtac_cal[VOICE_RTAC_CAL]. + map_data.map_size) { + pr_err("%s: Invalid data size = %d\n", + __func__, bytes_returned); + result = -EINVAL; + goto err; + } + if (bytes_returned > user_buf_size) { pr_err("%s: User buf not big enough, size = 0x%x, returned size = 0x%x\n", __func__, user_buf_size, bytes_returned); diff --git a/sound/usb/endpoint.c b/sound/usb/endpoint.c index f3a78254b3078..7b4a7e84f06b4 100644 --- a/sound/usb/endpoint.c +++ b/sound/usb/endpoint.c @@ -350,12 +350,7 @@ static void snd_complete_urb(struct urb *urb) struct snd_usb_endpoint *ep = ctx->ep; int err; - /* - * Add this dev state check to avoid to call invalid ctx which is - * free during disconnetion handler. - */ - if (urb->dev->state == USB_STATE_NOTATTACHED) - return; + if (unlikely(urb->status == -ENOENT || /* unlinked */ urb->status == -ENODEV || /* device removed */ urb->status == -ECONNRESET || /* unlinked */ diff --git a/tools/testing/selftests/powerpc/copyloops/asm/processor.h b/tools/testing/selftests/powerpc/copyloops/asm/processor.h deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/tools/testing/selftests/powerpc/primitives/asm/ppc-opcode.h b/tools/testing/selftests/powerpc/primitives/asm/ppc-opcode.h deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/tools/virtio/linux/hrtimer.h b/tools/virtio/linux/hrtimer.h deleted file mode 100644 index e69de29bb2d1d..0000000000000